From b44f9dfe540144014052d442c45513978562515a Mon Sep 17 00:00:00 2001 From: Ariel Antonitis Date: Thu, 8 Aug 2019 01:27:06 -0400 Subject: [PATCH] Separated rom.s into multiple files. --- .gitignore | 1 + asm/agb_flash.s | 113 +- asm/alloc.s | 401 + asm/apprentice.s | 3951 + asm/bard_music.s | 117 + asm/battle_ai_script_commands.s | 6656 + asm/battle_ai_switch_items.s | 3010 + asm/battle_anim.s | 4546 + asm/battle_anim_effects_1.s | 9979 + asm/battle_anim_effects_2.s | 7929 + asm/battle_anim_effects_3.s | 13087 + asm/battle_anim_mon_movement.s | 2592 + asm/battle_anim_mons.s | 6842 + asm/battle_anim_sound_tasks.s | 1070 + asm/battle_anim_special.s | 6196 + asm/battle_anim_status_effects.s | 980 + asm/battle_anim_utility_funcs.s | 3277 + asm/battle_arena.s | 1709 + asm/battle_bg.s | 1997 + asm/battle_controller_link_opponent.s | 6754 + asm/battle_controller_link_partner.s | 6152 + asm/battle_controller_opponent.s | 7181 + asm/battle_controller_player.s | 11337 + asm/battle_controller_player_partner.s | 6916 + asm/battle_controller_recorded_opponent.s | 4867 + asm/battle_controller_recorded_player.s | 6685 + asm/battle_controller_safari.s | 1580 + asm/battle_controller_wally.s | 5214 + asm/battle_controllers.s | 4019 + asm/battle_dome.s | 13896 + asm/battle_factory.s | 2322 + asm/battle_factory_screen.s | 10919 + asm/battle_gfx_sfx_util.s | 4070 + asm/battle_interface.s | 6009 + asm/battle_intro.s | 2168 + asm/battle_main.s | 16886 + asm/battle_message.s | 3317 + asm/battle_palace.s | 600 + asm/battle_pike.s | 3298 + asm/battle_pyramid.s | 3801 + asm/battle_pyramid_bag.s | 4120 + asm/battle_records.s | 1321 + asm/battle_script_commands.s | 33949 + asm/battle_setup.s | 3824 + asm/battle_tent.s | 1146 + asm/battle_tower.s | 8307 + asm/battle_transition.s | 10448 + asm/battle_tv.s | 5092 + asm/battle_util.s | 13131 + asm/battle_util2.s | 626 + asm/berry.s | 1083 + asm/berry_blender.s | 9269 + asm/berry_crush.s | 7556 + asm/berry_fix_program.s | 450 + asm/berry_powder.s | 389 + asm/berry_tag_screen.s | 2333 + asm/bg.s | 3248 + asm/bike.s | 2296 + asm/birch_pc.s | 261 + asm/blit.s | 812 + asm/braille_puzzles.s | 689 + asm/bug.s | 826 + asm/cable_car.s | 2970 + asm/cable_club.s | 2890 + asm/clear_save_data_screen.s | 161 + asm/clock.s | 184 + asm/coins.s | 214 + asm/contest.s | 16451 + asm/contest_ai.s | 5638 + asm/contest_effect.s | 3258 + asm/contest_link_80F57C4.s | 6122 + asm/contest_link_80FC4F4.s | 1443 + asm/contest_link_81D9DE4.s | 766 + asm/contest_painting.s | 1331 + asm/contest_painting_effects.s | 3632 + asm/coord_event_weather.s | 154 + asm/credits.s | 4032 + asm/dark.s | 2375 + asm/daycare.s | 3267 + asm/decompress.s | 1027 + asm/decoration.s | 7691 + asm/decoration_inventory.s | 483 + asm/dewford_trend.s | 1011 + asm/diploma.s | 281 + asm/dma3_manager.s | 576 + asm/dodrio_berry_picking.s | 12350 + asm/dragon.s | 880 + asm/dynamic_placeholder_text_util.s | 100 + asm/easy_chat.s | 11329 + asm/egg_hatch.s | 1900 + asm/electric.s | 2774 + asm/ereader_helpers.s | 1304 + asm/ereader_screen.s | 904 + asm/event_data.s | 620 + asm/event_obj_lock.s | 504 + asm/event_object_movement.s | 24874 + asm/evolution_graphics.s | 1831 + asm/evolution_scene.s | 4510 + asm/faraway_island.s | 1426 + asm/field_camera.s | 1189 + asm/field_control_avatar.s | 2623 + asm/field_door.s | 784 + asm/field_effect.s | 9007 + asm/field_effect_helpers.s | 4766 + asm/field_message_box.s | 357 + asm/field_player_avatar.s | 5654 + asm/field_poison.s | 830 + asm/field_region_map.s | 335 + asm/field_screen_effect.s | 2830 + asm/field_special_scene.s | 905 + asm/field_specials.s | 8665 + asm/field_tasks.s | 1976 + asm/field_weather.s | 2730 + asm/field_weather_effect.s | 5724 + asm/fieldmap.s | 2356 + asm/fight.s | 1746 + asm/fire.s | 2501 + asm/fldeff_cut.s | 1584 + asm/fldeff_escalator.s | 383 + asm/fldeff_flash.s | 781 + asm/fldeff_misc.s | 2674 + asm/fldeff_rocksmash.s | 495 + asm/fldeff_softboiled.s | 363 + asm/fldeff_strength.s | 102 + asm/fldeff_sweetscent.s | 237 + asm/fldeff_teleport.s | 89 + asm/flying.s | 2596 + asm/frontier_pass.s | 3758 + asm/frontier_util.s | 6956 + asm/ghost.s | 3289 + asm/gpu_regs.s | 370 + asm/ground.s | 1786 + asm/gym_leader_rematch.s | 211 + asm/hall_of_fame.s | 4003 + asm/heal_location.s | 84 + asm/hof_pc.s | 78 + asm/ice.s | 2982 + asm/intro.s | 6619 + asm/intro_credits_graphics.s | 1187 + asm/item.s | 2329 + asm/item_icon.s | 293 + asm/item_menu.s | 6891 + asm/item_menu_icons.s | 669 + asm/item_use.s | 3071 + asm/landmark.s | 128 + asm/libagbsyscall.s | 11 +- asm/libc.s | 224 +- asm/libgcc.s | 33 +- asm/libgcnmultiboot.s | 26 +- asm/libisagbprn.s | 13 +- asm/librfu.s | 25 +- asm/librfu_intr.s | 23 +- asm/librfu_rfu.s | 445 +- asm/librfu_stwi.s | 119 +- asm/libs.s.bak | 8850 - asm/lilycove_lady.s | 2081 + asm/link.s | 5552 + asm/link_rfu.s | 13454 + asm/list_menu.s | 3160 + asm/load_save.s | 805 + asm/lottery_corner.s | 563 + asm/m4a.s | 191 +- asm/mail.s | 1001 + asm/mail_data.s | 596 + asm/main.s | 772 + asm/main_menu.s | 6078 + asm/map_name_popup.s | 599 + asm/match_call.s | 2644 + asm/math_util.s | 241 + asm/mauville_old_man.s | 2101 + asm/menu.s | 6741 + asm/menu_helpers.s | 1031 + asm/menu_specialized.s | 3711 + asm/metatile_behavior.s | 2603 + asm/mevent2.s | 1528 + asm/mevent_801BAAC.s | 2649 + asm/mevent_client.s | 584 + asm/mevent_news.s | 324 + asm/mevent_server.s | 925 + asm/mevent_server_helpers.s | 377 + asm/mirage_tower.s | 1501 + asm/mon_markings.s | 986 + asm/money.s | 398 + asm/mossdeep_gym.s | 727 + asm/move_relearner.s | 1753 + asm/multiboot.s | 895 + asm/mystery_event_script.s | 930 + asm/mystery_gift.s | 2628 + asm/naming_screen.s | 5023 + asm/new_game.s | 400 + asm/normal.s | 1978 + asm/option_menu.s | 295 + asm/overworld.s | 7254 + asm/palette.s | 2851 + asm/party_menu.s | 19359 + asm/play_time.s | 134 + asm/player_pc.s | 3730 + asm/poison.s | 362 + asm/pokeball.s | 2997 + asm/pokeblock.spokeblock.s | 3156 + asm/pokeblock_feed.s | 2051 + asm/pokedex.s | 14131 + asm/pokedex_area_screen.s | 2218 + asm/pokedex_cry_screen.s | 1047 + asm/pokemon.s | 15735 + asm/pokemon_animation.s | 12140 + asm/pokemon_icon.s | 857 + asm/pokemon_jump.s | 9428 + asm/pokemon_storage_system.s | 24275 + asm/pokemon_summary_screen.s | 10232 + asm/pokenav.s | 859 + asm/pokenav_main_menu.s | 1510 + asm/pokenav_match_call_data.s | 1066 + asm/pokenav_match_call_ui.s | 2226 + asm/pokenav_unk_1.s | 912 + asm/pokenav_unk_10.s | 2312 + asm/pokenav_unk_2.s | 2363 + asm/pokenav_unk_3.s | 1075 + asm/pokenav_unk_4.s | 10544 + asm/post_battle_event_funcs.s | 172 + asm/psychic.s | 2266 + asm/random.s | 70 + asm/rayquaza_scene.s | 6286 + asm/record_mixing.s | 6437 + asm/recorded_battle.s | 4384 + asm/region_map.s | 4355 + asm/reset_rtc_screen.s | 1394 + asm/reset_save_heap.s | 68 + asm/reshow_battle_screen.s | 1123 + asm/roamer.s | 543 + asm/rock.s | 1543 + asm/rom.s | 973185 ------------------- asm/rom_8034C54.s | 1355 + asm/rom_81520A8.s | 784 + asm/rotating_gate.s | 1197 + asm/roulette.s | 10119 + asm/roulette_util.s | 1465 + asm/rtc.s | 822 + asm/safari_zone.s | 578 + asm/save.s | 2162 + asm/save_failed_screen.s | 778 + asm/save_location.s | 216 + asm/scanline_effect.s | 2387 + asm/scrcmd.s | 5836 + asm/script.s | 911 + asm/script_menu.s | 1969 + asm/script_movement.s | 598 + asm/script_pokemon_util_80F87D8.s | 1798 + asm/secret_base.s | 6108 + asm/shop.s | 3010 + asm/siirtc.s | 119 +- asm/slot_machine.s | 11825 + asm/smokescreen.s | 222 + asm/sound.s | 1524 + asm/sprite.s | 4644 + asm/start_menu.s | 2697 + asm/starter_choose.s | 1132 + asm/string_util.s | 1149 + asm/task.s | 539 + asm/text.s | 4565 + asm/text_window.s | 692 + asm/tileset_anims.s | 2104 + asm/time_events.s | 240 + asm/title_screen.s | 1434 + asm/trade.s | 15875 + asm/trader.s | 593 + asm/trainer_card.s | 5564 + asm/trainer_hill.s | 2752 + asm/trainer_pokemon_sprites.s | 1332 + asm/trainer_see.s | 1713 + asm/trig.s | 94 + asm/tv.s | 18086 + asm/union_room.s | 11361 + asm/union_room_battle.s | 2690 + asm/union_room_chat.s | 5960 + asm/union_room_player_avatar.s | 287 + asm/unk0.s | 166 + asm/unk_81BAD84.s | 57 + asm/unk_pokedex_area_screen_helper.s | 189 + asm/unk_text_util_2.s | 614 + asm/unk_transition.s | 1646 + asm/use_pokeblock.s | 4126 + asm/util.s | 563 + asm/walda_phrase.s | 648 + asm/wallclock.s | 1598 + asm/water.s | 3774 + asm/wild_encounter.s | 2437 + asm/window.s | 2667 + asmdiff.sh | 0 funcmap_jp.txt | 16311 + funcmap_us.txt | 15772 + ld_script_jp.txt | 274 +- pokeemerald_jp.cfg | 5071 +- separate_asm.py | 421 + update_config.py | 13 +- 295 files changed, 1010651 insertions(+), 985095 deletions(-) create mode 100644 asm/alloc.s create mode 100644 asm/apprentice.s create mode 100644 asm/bard_music.s create mode 100644 asm/battle_ai_script_commands.s create mode 100644 asm/battle_ai_switch_items.s create mode 100644 asm/battle_anim.s create mode 100644 asm/battle_anim_effects_1.s create mode 100644 asm/battle_anim_effects_2.s create mode 100644 asm/battle_anim_effects_3.s create mode 100644 asm/battle_anim_mon_movement.s create mode 100644 asm/battle_anim_mons.s create mode 100644 asm/battle_anim_sound_tasks.s create mode 100644 asm/battle_anim_special.s create mode 100644 asm/battle_anim_status_effects.s create mode 100644 asm/battle_anim_utility_funcs.s create mode 100644 asm/battle_arena.s create mode 100644 asm/battle_bg.s create mode 100644 asm/battle_controller_link_opponent.s create mode 100644 asm/battle_controller_link_partner.s create mode 100644 asm/battle_controller_opponent.s create mode 100644 asm/battle_controller_player.s create mode 100644 asm/battle_controller_player_partner.s create mode 100644 asm/battle_controller_recorded_opponent.s create mode 100644 asm/battle_controller_recorded_player.s create mode 100644 asm/battle_controller_safari.s create mode 100644 asm/battle_controller_wally.s create mode 100644 asm/battle_controllers.s create mode 100644 asm/battle_dome.s create mode 100644 asm/battle_factory.s create mode 100644 asm/battle_factory_screen.s create mode 100644 asm/battle_gfx_sfx_util.s create mode 100644 asm/battle_interface.s create mode 100644 asm/battle_intro.s create mode 100644 asm/battle_main.s create mode 100644 asm/battle_message.s create mode 100644 asm/battle_palace.s create mode 100644 asm/battle_pike.s create mode 100644 asm/battle_pyramid.s create mode 100644 asm/battle_pyramid_bag.s create mode 100644 asm/battle_records.s create mode 100644 asm/battle_script_commands.s create mode 100644 asm/battle_setup.s create mode 100644 asm/battle_tent.s create mode 100644 asm/battle_tower.s create mode 100644 asm/battle_transition.s create mode 100644 asm/battle_tv.s create mode 100644 asm/battle_util.s create mode 100644 asm/battle_util2.s create mode 100644 asm/berry.s create mode 100644 asm/berry_blender.s create mode 100644 asm/berry_crush.s create mode 100644 asm/berry_fix_program.s create mode 100644 asm/berry_powder.s create mode 100644 asm/berry_tag_screen.s create mode 100644 asm/bg.s create mode 100644 asm/bike.s create mode 100644 asm/birch_pc.s create mode 100644 asm/blit.s create mode 100644 asm/braille_puzzles.s create mode 100644 asm/bug.s create mode 100644 asm/cable_car.s create mode 100644 asm/cable_club.s create mode 100644 asm/clear_save_data_screen.s create mode 100644 asm/clock.s create mode 100644 asm/coins.s create mode 100644 asm/contest.s create mode 100644 asm/contest_ai.s create mode 100644 asm/contest_effect.s create mode 100644 asm/contest_link_80F57C4.s create mode 100644 asm/contest_link_80FC4F4.s create mode 100644 asm/contest_link_81D9DE4.s create mode 100644 asm/contest_painting.s create mode 100644 asm/contest_painting_effects.s create mode 100644 asm/coord_event_weather.s create mode 100644 asm/credits.s create mode 100644 asm/dark.s create mode 100644 asm/daycare.s create mode 100644 asm/decompress.s create mode 100644 asm/decoration.s create mode 100644 asm/decoration_inventory.s create mode 100644 asm/dewford_trend.s create mode 100644 asm/diploma.s create mode 100644 asm/dma3_manager.s create mode 100644 asm/dodrio_berry_picking.s create mode 100644 asm/dragon.s create mode 100644 asm/dynamic_placeholder_text_util.s create mode 100644 asm/easy_chat.s create mode 100644 asm/egg_hatch.s create mode 100644 asm/electric.s create mode 100644 asm/ereader_helpers.s create mode 100644 asm/ereader_screen.s create mode 100644 asm/event_data.s create mode 100644 asm/event_obj_lock.s create mode 100644 asm/event_object_movement.s create mode 100644 asm/evolution_graphics.s create mode 100644 asm/evolution_scene.s create mode 100644 asm/faraway_island.s create mode 100644 asm/field_camera.s create mode 100644 asm/field_control_avatar.s create mode 100644 asm/field_door.s create mode 100644 asm/field_effect.s create mode 100644 asm/field_effect_helpers.s create mode 100644 asm/field_message_box.s create mode 100644 asm/field_player_avatar.s create mode 100644 asm/field_poison.s create mode 100644 asm/field_region_map.s create mode 100644 asm/field_screen_effect.s create mode 100644 asm/field_special_scene.s create mode 100644 asm/field_specials.s create mode 100644 asm/field_tasks.s create mode 100644 asm/field_weather.s create mode 100644 asm/field_weather_effect.s create mode 100644 asm/fieldmap.s create mode 100644 asm/fight.s create mode 100644 asm/fire.s create mode 100644 asm/fldeff_cut.s create mode 100644 asm/fldeff_escalator.s create mode 100644 asm/fldeff_flash.s create mode 100644 asm/fldeff_misc.s create mode 100644 asm/fldeff_rocksmash.s create mode 100644 asm/fldeff_softboiled.s create mode 100644 asm/fldeff_strength.s create mode 100644 asm/fldeff_sweetscent.s create mode 100644 asm/fldeff_teleport.s create mode 100644 asm/flying.s create mode 100644 asm/frontier_pass.s create mode 100644 asm/frontier_util.s create mode 100644 asm/ghost.s create mode 100644 asm/gpu_regs.s create mode 100644 asm/ground.s create mode 100644 asm/gym_leader_rematch.s create mode 100644 asm/hall_of_fame.s create mode 100644 asm/heal_location.s create mode 100644 asm/hof_pc.s create mode 100644 asm/ice.s create mode 100644 asm/intro.s create mode 100644 asm/intro_credits_graphics.s create mode 100644 asm/item.s create mode 100644 asm/item_icon.s create mode 100644 asm/item_menu.s create mode 100644 asm/item_menu_icons.s create mode 100644 asm/item_use.s create mode 100644 asm/landmark.s delete mode 100644 asm/libs.s.bak create mode 100644 asm/lilycove_lady.s create mode 100644 asm/link.s create mode 100644 asm/link_rfu.s create mode 100644 asm/list_menu.s create mode 100644 asm/load_save.s create mode 100644 asm/lottery_corner.s create mode 100644 asm/mail.s create mode 100644 asm/mail_data.s create mode 100644 asm/main.s create mode 100644 asm/main_menu.s create mode 100644 asm/map_name_popup.s create mode 100644 asm/match_call.s create mode 100644 asm/math_util.s create mode 100644 asm/mauville_old_man.s create mode 100644 asm/menu.s create mode 100644 asm/menu_helpers.s create mode 100644 asm/menu_specialized.s create mode 100644 asm/metatile_behavior.s create mode 100644 asm/mevent2.s create mode 100644 asm/mevent_801BAAC.s create mode 100644 asm/mevent_client.s create mode 100644 asm/mevent_news.s create mode 100644 asm/mevent_server.s create mode 100644 asm/mevent_server_helpers.s create mode 100644 asm/mirage_tower.s create mode 100644 asm/mon_markings.s create mode 100644 asm/money.s create mode 100644 asm/mossdeep_gym.s create mode 100644 asm/move_relearner.s create mode 100644 asm/multiboot.s create mode 100644 asm/mystery_event_script.s create mode 100644 asm/mystery_gift.s create mode 100644 asm/naming_screen.s create mode 100644 asm/new_game.s create mode 100644 asm/normal.s create mode 100644 asm/option_menu.s create mode 100644 asm/overworld.s create mode 100644 asm/palette.s create mode 100644 asm/party_menu.s create mode 100644 asm/play_time.s create mode 100644 asm/player_pc.s create mode 100644 asm/poison.s create mode 100644 asm/pokeball.s create mode 100644 asm/pokeblock.spokeblock.s create mode 100644 asm/pokeblock_feed.s create mode 100644 asm/pokedex.s create mode 100644 asm/pokedex_area_screen.s create mode 100644 asm/pokedex_cry_screen.s create mode 100644 asm/pokemon.s create mode 100644 asm/pokemon_animation.s create mode 100644 asm/pokemon_icon.s create mode 100644 asm/pokemon_jump.s create mode 100644 asm/pokemon_storage_system.s create mode 100644 asm/pokemon_summary_screen.s create mode 100644 asm/pokenav.s create mode 100644 asm/pokenav_main_menu.s create mode 100644 asm/pokenav_match_call_data.s create mode 100644 asm/pokenav_match_call_ui.s create mode 100644 asm/pokenav_unk_1.s create mode 100644 asm/pokenav_unk_10.s create mode 100644 asm/pokenav_unk_2.s create mode 100644 asm/pokenav_unk_3.s create mode 100644 asm/pokenav_unk_4.s create mode 100644 asm/post_battle_event_funcs.s create mode 100644 asm/psychic.s create mode 100644 asm/random.s create mode 100644 asm/rayquaza_scene.s create mode 100644 asm/record_mixing.s create mode 100644 asm/recorded_battle.s create mode 100644 asm/region_map.s create mode 100644 asm/reset_rtc_screen.s create mode 100644 asm/reset_save_heap.s create mode 100644 asm/reshow_battle_screen.s create mode 100644 asm/roamer.s create mode 100644 asm/rock.s delete mode 100644 asm/rom.s create mode 100644 asm/rom_8034C54.s create mode 100644 asm/rom_81520A8.s create mode 100644 asm/rotating_gate.s create mode 100644 asm/roulette.s create mode 100644 asm/roulette_util.s create mode 100644 asm/rtc.s create mode 100644 asm/safari_zone.s create mode 100644 asm/save.s create mode 100644 asm/save_failed_screen.s create mode 100644 asm/save_location.s create mode 100644 asm/scanline_effect.s create mode 100644 asm/scrcmd.s create mode 100644 asm/script.s create mode 100644 asm/script_menu.s create mode 100644 asm/script_movement.s create mode 100644 asm/script_pokemon_util_80F87D8.s create mode 100644 asm/secret_base.s create mode 100644 asm/shop.s create mode 100644 asm/slot_machine.s create mode 100644 asm/smokescreen.s create mode 100644 asm/sound.s create mode 100644 asm/sprite.s create mode 100644 asm/start_menu.s create mode 100644 asm/starter_choose.s create mode 100644 asm/string_util.s create mode 100644 asm/task.s create mode 100644 asm/text.s create mode 100644 asm/text_window.s create mode 100644 asm/tileset_anims.s create mode 100644 asm/time_events.s create mode 100644 asm/title_screen.s create mode 100644 asm/trade.s create mode 100644 asm/trader.s create mode 100644 asm/trainer_card.s create mode 100644 asm/trainer_hill.s create mode 100644 asm/trainer_pokemon_sprites.s create mode 100644 asm/trainer_see.s create mode 100644 asm/trig.s create mode 100644 asm/tv.s create mode 100644 asm/union_room.s create mode 100644 asm/union_room_battle.s create mode 100644 asm/union_room_chat.s create mode 100644 asm/union_room_player_avatar.s create mode 100644 asm/unk0.s create mode 100644 asm/unk_81BAD84.s create mode 100644 asm/unk_pokedex_area_screen_helper.s create mode 100644 asm/unk_text_util_2.s create mode 100644 asm/unk_transition.s create mode 100644 asm/use_pokeblock.s create mode 100644 asm/util.s create mode 100644 asm/walda_phrase.s create mode 100644 asm/wallclock.s create mode 100644 asm/water.s create mode 100644 asm/wild_encounter.s create mode 100644 asm/window.s mode change 100644 => 100755 asmdiff.sh create mode 100644 funcmap_jp.txt create mode 100644 funcmap_us.txt create mode 100644 separate_asm.py diff --git a/.gitignore b/.gitignore index 3e46a5d..29ce58c 100644 --- a/.gitignore +++ b/.gitignore @@ -35,3 +35,4 @@ porymap.project.cfg .vscode/ .ropeproject/ .ccls-cache/ +__pycache__/ diff --git a/asm/agb_flash.s b/asm/agb_flash.s index 3080566..c1328a3 100644 --- a/asm/agb_flash.s +++ b/asm/agb_flash.s @@ -1,7 +1,7 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - .text - .syntax unified +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified thumb_func_start SwitchFlashBank SwitchFlashBank: @ 0x0828FDE4 @@ -120,8 +120,8 @@ _0828FEC0: pop {r0} bx r0 .align 2, 0 -_0828FEC4: .4byte gUnknown_3001A6A -_0828FEC8: .4byte gUnknown_30075E0 +_0828FEC4: .4byte 0x03001A6A +_0828FEC8: .4byte 0x030075E0 thumb_func_end FlashTimerIntr thumb_func_start SetFlashTimerIntr @@ -145,10 +145,10 @@ SetFlashTimerIntr: @ 0x0828FECC movs r0, #0 b _0828FF02 .align 2, 0 -_0828FEF0: .4byte gUnknown_3001A68 -_0828FEF4: .4byte gUnknown_3001A6C +_0828FEF0: .4byte 0x03001A68 +_0828FEF4: .4byte 0x03001A6C _0828FEF8: .4byte 0x04000100 -_0828FEFC: .4byte FlashTimerIntr +_0828FEFC: .4byte 0x0828FEA5 _0828FF00: movs r0, #1 _0828FF02: @@ -225,14 +225,14 @@ StartFlashTimer: @ 0x0828FF08 pop {r0} bx r0 .align 2, 0 -_0828FF8C: .4byte gUnknown_3007604 -_0828FF90: .4byte gUnknown_3001A70 +_0828FF8C: .4byte 0x03007604 +_0828FF90: .4byte 0x03001A70 _0828FF94: .4byte 0x04000208 -_0828FF98: .4byte gUnknown_3001A6C +_0828FF98: .4byte 0x03001A6C _0828FF9C: .4byte 0x04000200 -_0828FFA0: .4byte gUnknown_3001A68 -_0828FFA4: .4byte gUnknown_30075E0 -_0828FFA8: .4byte gUnknown_3001A6A +_0828FFA0: .4byte 0x03001A68 +_0828FFA4: .4byte 0x030075E0 +_0828FFA8: .4byte 0x03001A6A _0828FFAC: .4byte 0x04000202 thumb_func_end StartFlashTimer @@ -263,10 +263,10 @@ StopFlashTimer: @ 0x0828FFB0 bx lr .align 2, 0 _0828FFE0: .4byte 0x04000208 -_0828FFE4: .4byte gUnknown_3001A6C +_0828FFE4: .4byte 0x03001A6C _0828FFE8: .4byte 0x04000200 -_0828FFEC: .4byte gUnknown_3001A68 -_0828FFF0: .4byte gUnknown_3001A70 +_0828FFEC: .4byte 0x03001A68 +_0828FFF0: .4byte 0x03001A70 thumb_func_end StopFlashTimer thumb_func_start ReadFlash1 @@ -291,9 +291,9 @@ SetReadFlash1: @ 0x0828FFF8 lsls r0, r0, #0xf b _0829002C .align 2, 0 -_08290014: .4byte gUnknown_30075E4 -_08290018: .4byte ReadFlash1 -_0829001C: .4byte SetReadFlash1 +_08290014: .4byte 0x030075E4 +_08290018: .4byte 0x0828FFF5 +_0829001C: .4byte 0x0828FFF9 _08290020: ldrh r0, [r3] strh r0, [r2] @@ -376,9 +376,9 @@ _08290094: .align 2, 0 _082900A8: .4byte 0x04000204 _082900AC: .4byte 0x0000FFFC -_082900B0: .4byte gUnknown_30075F0 -_082900B4: .4byte ReadFlash_Core -_082900B8: .4byte ReadFlash +_082900B0: .4byte 0x030075F0 +_082900B4: .4byte 0x08290039 +_082900B8: .4byte 0x0829005D _082900BC: ldrh r0, [r3] strh r0, [r2] @@ -409,7 +409,7 @@ _082900C8: pop {r0} bx r0 .align 2, 0 -_082900F4: .4byte gUnknown_30075F0 +_082900F4: .4byte 0x030075F0 thumb_func_end ReadFlash thumb_func_start VerifyFlashSector_Core @@ -484,9 +484,9 @@ _0829015C: .align 2, 0 _08290170: .4byte 0x04000204 _08290174: .4byte 0x0000FFFC -_08290178: .4byte gUnknown_30075F0 -_0829017C: .4byte VerifyFlashSector_Core -_08290180: .4byte VerifyFlashSector +_08290178: .4byte 0x030075F0 +_0829017C: .4byte 0x082900F9 +_08290180: .4byte 0x08290129 _08290184: ldrh r0, [r3] strh r0, [r2] @@ -516,7 +516,7 @@ _08290190: pop {r1} bx r1 .align 2, 0 -_082901BC: .4byte gUnknown_30075F0 +_082901BC: .4byte 0x030075F0 thumb_func_end VerifyFlashSector thumb_func_start VerifyFlashSectorNBytes @@ -558,11 +558,11 @@ _082901E8: lsls r0, r0, #0xf b _08290228 .align 2, 0 -_08290208: .4byte gUnknown_30075F0 +_08290208: .4byte 0x030075F0 _0829020C: .4byte 0x04000204 _08290210: .4byte 0x0000FFFC -_08290214: .4byte VerifyFlashSector_Core -_08290218: .4byte VerifyFlashSector +_08290214: .4byte 0x082900F9 +_08290218: .4byte 0x08290129 _0829021C: ldrh r0, [r3] strh r0, [r2] @@ -592,7 +592,7 @@ _08290228: pop {r1} bx r1 .align 2, 0 -_08290254: .4byte gUnknown_30075F0 +_08290254: .4byte 0x030075F0 thumb_func_end VerifyFlashSectorNBytes thumb_func_start ProgramFlashSectorAndVerify @@ -631,7 +631,7 @@ _08290290: pop {r1} bx r1 .align 2, 0 -_08290298: .4byte gUnknown_30075EC +_08290298: .4byte 0x030075EC thumb_func_end ProgramFlashSectorAndVerify thumb_func_start ProgramFlashSectorAndVerifyNBytes @@ -672,7 +672,7 @@ _082902D8: pop {r1} bx r1 .align 2, 0 -_082902E0: .4byte gUnknown_30075EC +_082902E0: .4byte 0x030075EC thumb_func_end ProgramFlashSectorAndVerifyNBytes thumb_func_start IdentifyFlash @@ -694,7 +694,7 @@ IdentifyFlash: @ 0x082902E4 .align 2, 0 _08290304: .4byte 0x04000204 _08290308: .4byte 0x0000FFFC -_0829030C: .4byte gUnknown_890ED54 +_0829030C: .4byte 0x0890ED54 _08290310: adds r2, #4 _08290312: @@ -742,13 +742,13 @@ _08290326: pop {r1} bx r1 .align 2, 0 -_08290368: .4byte gUnknown_30075F4 -_0829036C: .4byte gUnknown_30075EC -_08290370: .4byte gUnknown_30075FC -_08290374: .4byte gUnknown_3007600 -_08290378: .4byte gUnknown_30075E8 -_0829037C: .4byte gUnknown_3007604 -_08290380: .4byte gUnknown_30075F0 +_08290368: .4byte 0x030075F4 +_0829036C: .4byte 0x030075EC +_08290370: .4byte 0x030075FC +_08290374: .4byte 0x03007600 +_08290378: .4byte 0x030075E8 +_0829037C: .4byte 0x03007604 +_08290380: .4byte 0x030075F0 thumb_func_end IdentifyFlash thumb_func_start WaitForFlashWrite_Common @@ -771,7 +771,7 @@ WaitForFlashWrite_Common: @ 0x08290384 mov sb, r1 b _082903E8 .align 2, 0 -_082903A8: .4byte gUnknown_30075E4 +_082903A8: .4byte 0x030075E4 _082903AC: .4byte 0x0E005555 _082903B0: movs r0, #0xf0 @@ -802,7 +802,7 @@ _082903DE: mov r8, r7 b _08290410 .align 2, 0 -_082903E4: .4byte gUnknown_30075E0 +_082903E4: .4byte 0x030075E0 _082903E8: ldr r1, [r6] adds r0, r4, #0 @@ -882,10 +882,10 @@ EraseFlashChip_MX: @ 0x08290424 .align 2, 0 _08290480: .4byte 0x04000204 _08290484: .4byte 0x0000FFFC -_08290488: .4byte gUnknown_30075F0 +_08290488: .4byte 0x030075F0 _0829048C: .4byte 0x0E005555 _08290490: .4byte 0x0E002AAA -_08290494: .4byte gUnknown_30075E8 +_08290494: .4byte 0x030075E8 thumb_func_end EraseFlashChip_MX thumb_func_start EraseFlashSector_MX @@ -902,7 +902,7 @@ EraseFlashSector_MX: @ 0x08290498 ldr r0, _082904B4 b _08290558 .align 2, 0 -_082904B0: .4byte gUnknown_30075F0 +_082904B0: .4byte 0x030075F0 _082904B4: .4byte 0x000080FF _082904B8: lsrs r0, r6, #4 @@ -965,10 +965,10 @@ _082904C8: .align 2, 0 _08290530: .4byte 0x04000204 _08290534: .4byte 0x0000FFFC -_08290538: .4byte gUnknown_30075F0 +_08290538: .4byte 0x030075F0 _0829053C: .4byte 0x0E005555 _08290540: .4byte 0x0E002AAA -_08290544: .4byte gUnknown_30075E8 +_08290544: .4byte 0x030075E8 _08290548: ldr r2, _08290560 ldrh r0, [r2] @@ -1044,12 +1044,12 @@ ProgramFlashByte_MX: @ 0x08290568 lsrs r0, r0, #0x10 b _082905F4 .align 2, 0 -_082905D8: .4byte gUnknown_30075F0 +_082905D8: .4byte 0x030075F0 _082905DC: .4byte 0x04000204 _082905E0: .4byte 0x0000FFFC _082905E4: .4byte 0x0E005555 _082905E8: .4byte 0x0E002AAA -_082905EC: .4byte gUnknown_30075E8 +_082905EC: .4byte 0x030075E8 _082905F0: movs r0, #0x80 lsls r0, r0, #8 @@ -1086,7 +1086,7 @@ sub_082905FC: @ 0x082905FC .align 2, 0 _08290628: .4byte 0x0E005555 _0829062C: .4byte 0x0E002AAA -_08290630: .4byte gUnknown_30075E8 +_08290630: .4byte 0x030075E8 thumb_func_end sub_082905FC thumb_func_start ProgramFlashSector_MX @@ -1104,7 +1104,7 @@ ProgramFlashSector_MX: @ 0x08290634 ldr r0, _08290650 b _082906CE .align 2, 0 -_0829064C: .4byte gUnknown_30075F0 +_0829064C: .4byte 0x030075F0 _08290650: .4byte 0x000080FF _08290654: adds r0, r4, #0 @@ -1143,8 +1143,8 @@ _08290654: .align 2, 0 _0829069C: .4byte 0x04000204 _082906A0: .4byte 0x0000FFFC -_082906A4: .4byte gUnknown_30075F0 -_082906A8: .4byte gUnknown_30075F8 +_082906A4: .4byte 0x030075F0 +_082906A8: .4byte 0x030075F8 _082906AC: ldrh r0, [r6] subs r0, #1 @@ -1171,3 +1171,4 @@ _082906CE: bx r1 .align 2, 0 thumb_func_end ProgramFlashSector_MX + diff --git a/asm/alloc.s b/asm/alloc.s new file mode 100644 index 0000000..617e1c7 --- /dev/null +++ b/asm/alloc.s @@ -0,0 +1,401 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start PutMemBlockHeader +PutMemBlockHeader: @ 0x08000988 + push {r4, lr} + movs r4, #0 + strh r4, [r0] + ldr r4, _080009A0 + strh r4, [r0, #2] + str r3, [r0, #4] + str r1, [r0, #8] + str r2, [r0, #0xc] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080009A0: .4byte 0x0000A3A3 + thumb_func_end PutMemBlockHeader + + thumb_func_start PutFirstMemBlockHeader +PutFirstMemBlockHeader: @ 0x080009A4 + push {lr} + adds r2, r0, #0 + adds r3, r1, #0 + subs r3, #0x10 + adds r1, r2, #0 + bl PutMemBlockHeader + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PutFirstMemBlockHeader + + thumb_func_start AllocInternal +AllocInternal: @ 0x080009B8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r4, #0 + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _080009CC + lsrs r0, r1, #2 + adds r0, #1 + lsls r1, r0, #2 +_080009CC: + movs r2, #1 +_080009CE: + ldrh r0, [r4] + cmp r0, #0 + bne _08000A0C + ldr r3, [r4, #4] + cmp r3, r1 + blo _08000A0C + subs r0, r3, r1 + cmp r0, #0x1f + bhi _080009E4 + strh r2, [r4] + b _08000A06 +_080009E4: + subs r3, #0x10 + subs r3, r3, r1 + adds r0, r1, #0 + adds r0, #0x10 + adds r5, r4, r0 + strh r2, [r4] + str r1, [r4, #4] + ldr r2, [r4, #0xc] + adds r0, r5, #0 + adds r1, r4, #0 + bl PutMemBlockHeader + str r5, [r4, #0xc] + ldr r0, [r5, #0xc] + cmp r0, r6 + beq _08000A06 + str r5, [r0, #8] +_08000A06: + adds r0, r4, #0 + adds r0, #0x10 + b _08000A24 +_08000A0C: + ldr r0, [r4, #0xc] + cmp r0, r6 + beq _08000A16 + adds r4, r0, #0 + b _080009CE +_08000A16: + ldr r0, _08000A2C + movs r1, #0xae + ldr r2, _08000A30 + movs r3, #1 + bl AGBAssert + movs r0, #0 +_08000A24: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08000A2C: .4byte 0x0829BDF4 +_08000A30: .4byte 0x0829BE08 + thumb_func_end AllocInternal + + thumb_func_start FreeInternal +FreeInternal: @ 0x08000A34 + push {r4, r5, r6, r7, lr} + cmp r1, #0 + bne _08000A50 + ldr r0, _08000A48 + ldr r2, _08000A4C + movs r1, #0xc3 + movs r3, #1 + bl AGBAssert + b _08000AF6 + .align 2, 0 +_08000A48: .4byte 0x0829BDF4 +_08000A4C: .4byte 0x0829BE0C +_08000A50: + adds r6, r0, #0 + adds r4, r1, #0 + subs r4, #0x10 + ldrh r0, [r4, #2] + ldr r7, _08000AFC + cmp r0, r7 + beq _08000A6A + ldr r0, _08000B00 + ldr r2, _08000B04 + movs r1, #0xcc + movs r3, #1 + bl AGBAssert +_08000A6A: + ldrh r0, [r4] + cmp r0, #1 + beq _08000A7C + ldr r0, _08000B00 + ldr r2, _08000B08 + movs r1, #0xcd + movs r3, #1 + bl AGBAssert +_08000A7C: + movs r0, #0 + strh r0, [r4] + ldr r0, [r4, #0xc] + cmp r0, r6 + beq _08000AB8 + ldrh r5, [r0] + cmp r5, #0 + bne _08000AB8 + ldrh r0, [r0, #2] + cmp r0, r7 + beq _08000A9E + ldr r0, _08000B00 + ldr r2, _08000B0C + movs r1, #0xd3 + movs r3, #1 + bl AGBAssert +_08000A9E: + ldr r0, [r4, #4] + adds r0, #0x10 + ldr r2, [r4, #0xc] + ldr r1, [r2, #4] + adds r0, r0, r1 + str r0, [r4, #4] + strh r5, [r2, #2] + ldr r0, [r4, #0xc] + ldr r0, [r0, #0xc] + str r0, [r4, #0xc] + cmp r0, r6 + beq _08000AB8 + str r4, [r0, #8] +_08000AB8: + cmp r4, r6 + beq _08000AF6 + ldr r0, [r4, #8] + ldrh r5, [r0] + cmp r5, #0 + bne _08000AF6 + ldrh r1, [r0, #2] + ldr r0, _08000AFC + cmp r1, r0 + beq _08000AD8 + ldr r0, _08000B00 + ldr r2, _08000B10 + movs r1, #0xe4 + movs r3, #1 + bl AGBAssert +_08000AD8: + ldr r1, [r4, #8] + ldr r0, [r4, #0xc] + str r0, [r1, #0xc] + ldr r1, [r4, #0xc] + cmp r1, r6 + beq _08000AE8 + ldr r0, [r4, #8] + str r0, [r1, #8] +_08000AE8: + strh r5, [r4, #2] + ldr r0, [r4, #8] + ldr r1, [r0, #4] + adds r1, #0x10 + ldr r2, [r4, #4] + adds r1, r1, r2 + str r1, [r0, #4] +_08000AF6: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08000AFC: .4byte 0x0000A3A3 +_08000B00: .4byte 0x0829BDF4 +_08000B04: .4byte 0x0829BE18 +_08000B08: .4byte 0x0829BE40 +_08000B0C: .4byte 0x0829BE54 +_08000B10: .4byte 0x0829BE80 + thumb_func_end FreeInternal + + thumb_func_start AllocZeroedInternal +AllocZeroedInternal: @ 0x08000B14 + push {r4, r5, lr} + sub sp, #4 + adds r4, r1, #0 + bl AllocInternal + adds r5, r0, #0 + cmp r5, #0 + beq _08000B48 + movs r0, #3 + ands r0, r4 + cmp r0, #0 + beq _08000B32 + lsrs r0, r4, #2 + adds r0, #1 + lsls r4, r0, #2 +_08000B32: + movs r0, #0 + str r0, [sp] + lsls r2, r4, #9 + lsrs r2, r2, #0xb + movs r0, #0xa0 + lsls r0, r0, #0x13 + orrs r2, r0 + mov r0, sp + adds r1, r5, #0 + bl CpuSet +_08000B48: + adds r0, r5, #0 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end AllocZeroedInternal + + thumb_func_start CheckMemBlockInternal +CheckMemBlockInternal: @ 0x08000B54 + push {r4, r5, lr} + adds r5, r0, #0 + adds r3, r1, #0 + subs r3, #0x10 + ldrh r2, [r3, #2] + ldr r0, _08000BA0 + cmp r2, r0 + bne _08000B9A + ldr r0, [r3, #0xc] + ldrh r1, [r0, #2] + adds r4, r0, #0 + cmp r1, r2 + bne _08000B9A + cmp r4, r5 + beq _08000B78 + ldr r0, [r4, #8] + cmp r0, r3 + bne _08000B9A +_08000B78: + ldr r2, [r3, #8] + ldrh r1, [r2, #2] + ldr r0, _08000BA0 + cmp r1, r0 + bne _08000B9A + cmp r2, r5 + beq _08000B8C + ldr r0, [r2, #0xc] + cmp r0, r3 + bne _08000B9A +_08000B8C: + cmp r4, r5 + beq _08000BA4 + ldr r0, [r3, #4] + adds r0, #0x10 + adds r0, r3, r0 + cmp r4, r0 + beq _08000BA4 +_08000B9A: + movs r0, #0 + b _08000BA6 + .align 2, 0 +_08000BA0: .4byte 0x0000A3A3 +_08000BA4: + movs r0, #1 +_08000BA6: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end CheckMemBlockInternal + + thumb_func_start InitHeap +InitHeap: @ 0x08000BAC + push {lr} + ldr r2, _08000BC0 + str r0, [r2] + ldr r2, _08000BC4 + str r1, [r2] + bl PutFirstMemBlockHeader + pop {r0} + bx r0 + .align 2, 0 +_08000BC0: .4byte 0x03000004 +_08000BC4: .4byte 0x03000008 + thumb_func_end InitHeap + + thumb_func_start Alloc +Alloc: @ 0x08000BC8 + push {lr} + adds r1, r0, #0 + ldr r0, _08000BD8 + ldr r0, [r0] + bl AllocInternal + pop {r1} + bx r1 + .align 2, 0 +_08000BD8: .4byte 0x03000004 + thumb_func_end Alloc + + thumb_func_start AllocZeroed +AllocZeroed: @ 0x08000BDC + push {lr} + adds r1, r0, #0 + ldr r0, _08000BEC + ldr r0, [r0] + bl AllocZeroedInternal + pop {r1} + bx r1 + .align 2, 0 +_08000BEC: .4byte 0x03000004 + thumb_func_end AllocZeroed + + thumb_func_start Free +Free: @ 0x08000BF0 + push {lr} + adds r1, r0, #0 + ldr r0, _08000C00 + ldr r0, [r0] + bl FreeInternal + pop {r0} + bx r0 + .align 2, 0 +_08000C00: .4byte 0x03000004 + thumb_func_end Free + + thumb_func_start CheckMemBlock +CheckMemBlock: @ 0x08000C04 + push {lr} + adds r1, r0, #0 + ldr r0, _08000C14 + ldr r0, [r0] + bl CheckMemBlockInternal + pop {r1} + bx r1 + .align 2, 0 +_08000C14: .4byte 0x03000004 + thumb_func_end CheckMemBlock + + thumb_func_start CheckHeap +CheckHeap: @ 0x08000C18 + push {r4, r5, lr} + ldr r0, _08000C3C + ldr r4, [r0] + adds r5, r0, #0 +_08000C20: + ldr r0, [r5] + adds r1, r4, #0 + adds r1, #0x10 + bl CheckMemBlockInternal + cmp r0, #0 + beq _08000C40 + ldr r4, [r4, #0xc] + ldr r0, [r5] + cmp r4, r0 + bne _08000C20 + movs r0, #1 + b _08000C42 + .align 2, 0 +_08000C3C: .4byte 0x03000004 +_08000C40: + movs r0, #0 +_08000C42: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end CheckHeap + diff --git a/asm/apprentice.s b/asm/apprentice.s new file mode 100644 index 0000000..0a2a75c --- /dev/null +++ b/asm/apprentice.s @@ -0,0 +1,3951 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start CopyFriendsApprenticeChallengeText +CopyFriendsApprenticeChallengeText: @ 0x0819F888 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r2, _0819F914 + ldr r1, [r2] + lsls r0, r5, #4 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r1, r1, r0 + adds r1, #0xde + ldrb r1, [r1] + movs r6, #0 + adds r7, r2, #0 + ldr r0, _0819F918 + mov r8, r0 + cmp r1, #0 + beq _0819F8C8 +_0819F8AE: + adds r0, r1, #0 + movs r1, #0xa + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r1, #0 + beq _0819F8C8 + cmp r6, #3 + bls _0819F8AE +_0819F8C8: + lsls r4, r5, #4 + adds r4, r4, r5 + lsls r4, r4, #2 + ldr r1, [r7] + adds r1, r4, r1 + movs r0, #0x8a + lsls r0, r0, #1 + adds r1, r1, r0 + mov r0, r8 + bl StringCopy7 + ldr r0, _0819F91C + ldr r1, [r7] + adds r1, r1, r4 + adds r1, #0xde + ldrb r1, [r1] + movs r2, #1 + adds r3, r6, #0 + bl ConvertIntToDecimalStringN + ldr r1, _0819F920 + ldr r0, [r7] + adds r0, r0, r4 + adds r0, #0xdc + ldrb r0, [r0] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x19 + adds r0, r0, r1 + ldr r1, [r0] + ldr r0, _0819F924 + bl StringExpandPlaceholders + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0819F914: .4byte 0x03005AF0 +_0819F918: .4byte 0x02021C40 +_0819F91C: .4byte 0x02021C54 +_0819F920: .4byte 0x085DC95C +_0819F924: .4byte 0x02021C7C + thumb_func_end CopyFriendsApprenticeChallengeText + + thumb_func_start Apprentice_EnableBothScriptContexts +Apprentice_EnableBothScriptContexts: @ 0x0819F928 + push {lr} + bl EnableBothScriptContexts + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Apprentice_EnableBothScriptContexts + + thumb_func_start ResetApprenticeStruct +ResetApprenticeStruct: @ 0x0819F934 + push {r4, r5, lr} + adds r3, r0, #0 + movs r2, #0 + adds r4, r3, #0 + adds r4, #0x28 + ldr r0, _0819F974 + adds r5, r0, #0 +_0819F942: + lsls r0, r2, #1 + adds r0, r4, r0 + ldrh r1, [r0] + orrs r1, r5 + strh r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #5 + bls _0819F942 + adds r1, r3, #0 + adds r1, #0x38 + movs r0, #0xff + strb r0, [r1] + ldrb r1, [r3] + movs r0, #0x20 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r3] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0819F974: .4byte 0x0000FFFF + thumb_func_end ResetApprenticeStruct + + thumb_func_start ResetAllApprenticeData +ResetAllApprenticeData: @ 0x0819F978 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r3, _0819FA78 + ldr r1, [r3] + adds r1, #0xb2 + ldrb r2, [r1] + movs r0, #0x19 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + movs r0, #0 + mov ip, r0 + adds r5, r3, #0 + mov r8, r0 + ldr r1, _0819FA7C + mov sl, r1 +_0819F99E: + movs r2, #0 + mov r3, ip + lsls r7, r3, #4 + movs r4, #1 + add r4, ip + mov sb, r4 + adds r0, r7, r3 + lsls r3, r0, #2 +_0819F9AE: + ldr r1, [r5] + lsls r0, r2, #1 + adds r0, r0, r3 + movs r4, #0x82 + lsls r4, r4, #1 + adds r1, r1, r4 + adds r1, r1, r0 + ldrh r0, [r1] + mov r4, sl + orrs r0, r4 + strh r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #5 + bls _0819F9AE + ldr r2, [r5] + mov r0, ip + adds r3, r7, r0 + lsls r3, r3, #2 + adds r2, r2, r3 + adds r2, #0xdc + ldrb r1, [r2] + movs r0, #0x20 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r5] + adds r0, r0, r3 + movs r1, #0x8a + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] + ldr r1, [r5] + adds r1, r1, r3 + adds r1, #0xdc + ldrb r2, [r1] + movs r0, #0x61 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r0, [r5] + adds r0, r0, r3 + adds r0, #0xde + mov r4, r8 + strb r4, [r0] + ldr r0, [r5] + adds r0, r0, r3 + adds r0, #0xdd + strb r4, [r0] + movs r2, #0 + ldr r6, _0819FA78 + movs r4, #0x88 + lsls r4, r4, #1 +_0819FA20: + ldr r0, [r6] + adds r1, r2, r3 + adds r0, r0, r4 + adds r0, r0, r1 + mov r1, r8 + strb r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #3 + bls _0819FA20 + ldr r0, [r5] + mov r3, ip + adds r2, r7, r3 + lsls r2, r2, #2 + adds r0, r0, r2 + ldr r4, _0819FA80 + ldrb r1, [r4] + ldr r3, _0819FA84 + adds r0, r0, r3 + strb r1, [r0] + ldr r0, [r5] + movs r4, #0x8e + lsls r4, r4, #1 + adds r0, r0, r4 + adds r0, r0, r2 + mov r1, r8 + str r1, [r0] + mov r3, sb + lsls r0, r3, #0x18 + lsrs r0, r0, #0x18 + mov ip, r0 + cmp r0, #3 + bls _0819F99E + bl Script_ResetPlayerApprentice + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0819FA78: .4byte 0x03005AF0 +_0819FA7C: .4byte 0x0000FFFF +_0819FA80: .4byte 0x0829BDA5 +_0819FA84: .4byte 0x0000011B + thumb_func_end ResetAllApprenticeData + + thumb_func_start IsPlayersApprenticeActive +IsPlayersApprenticeActive: @ 0x0819FA88 + ldr r0, _0819FA9C + ldr r0, [r0] + adds r0, #0xb1 + ldrb r0, [r0] + movs r1, #3 + ands r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + bx lr + .align 2, 0 +_0819FA9C: .4byte 0x03005AF0 + thumb_func_end IsPlayersApprenticeActive + + thumb_func_start sub_0819FAA0 +sub_0819FAA0: @ 0x0819FAA0 + push {r4, r5, lr} + ldr r2, _0819FAE0 + ldr r0, [r2] + adds r0, #0xde + ldrb r0, [r0] + cmp r0, #0 + bne _0819FAE8 + adds r4, r2, #0 + ldr r5, _0819FAE4 +_0819FAB2: + bl Random + ldr r2, [r4] + lsls r0, r0, #0x10 + movs r1, #0xe0 + lsls r1, r1, #0xb + ands r1, r0 + lsrs r1, r1, #0x10 + adds r1, r1, r5 + ldrb r0, [r1] + adds r2, #0xb0 + strb r0, [r2] + ldr r0, [r4] + adds r1, r0, #0 + adds r1, #0xb0 + adds r0, #0xdc + ldrb r0, [r0] + lsls r0, r0, #0x1b + ldrb r1, [r1] + lsrs r0, r0, #0x1b + cmp r1, r0 + beq _0819FAB2 + b _0819FB10 + .align 2, 0 +_0819FAE0: .4byte 0x03005AF0 +_0819FAE4: .4byte 0x085DCB74 +_0819FAE8: + adds r4, r2, #0 +_0819FAEA: + bl Random + ldr r2, [r4] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xf + ands r0, r1 + adds r2, #0xb0 + strb r0, [r2] + ldr r0, [r4] + adds r1, r0, #0 + adds r1, #0xb0 + adds r0, #0xdc + ldrb r0, [r0] + lsls r0, r0, #0x1b + ldrb r1, [r1] + lsrs r0, r0, #0x1b + cmp r1, r0 + beq _0819FAEA +_0819FB10: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0819FAA0 + + thumb_func_start SetPlayersApprenticeLvlMode +SetPlayersApprenticeLvlMode: @ 0x0819FB18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0819FB34 + ldr r2, [r1] + adds r2, #0xb1 + movs r1, #3 + ands r0, r1 + ldrb r3, [r2] + subs r1, #7 + ands r1, r3 + orrs r1, r0 + strb r1, [r2] + bx lr + .align 2, 0 +_0819FB34: .4byte 0x03005AF0 + thumb_func_end SetPlayersApprenticeLvlMode + + thumb_func_start sub_0819FB38 +sub_0819FB38: @ 0x0819FB38 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + movs r5, #0 +_0819FB3E: + mov r1, sp + adds r0, r1, r5 + strb r5, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #9 + bls _0819FB3E + movs r5, #0 +_0819FB50: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __umodsi3 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r7, sp + adds r2, r7, r4 + ldrb r3, [r2] + adds r1, r7, r0 + ldrb r0, [r1] + strb r0, [r2] + strb r3, [r1] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x31 + bls _0819FB50 + movs r5, #0 + ldr r6, _0819FBCC + movs r4, #0xf +_0819FB94: + ldr r3, [r6] + adds r3, #0xb4 + adds r3, r3, r5 + lsls r2, r5, #1 + mov r1, sp + adds r0, r1, r2 + ldrb r0, [r0] + adds r1, r4, #0 + ands r1, r0 + lsls r1, r1, #4 + adds r2, #1 + mov r7, sp + adds r0, r7, r2 + ldrb r2, [r0] + adds r0, r4, #0 + ands r0, r2 + orrs r1, r0 + strb r1, [r3] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #2 + bls _0819FB94 + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0819FBCC: .4byte 0x03005AF0 + thumb_func_end sub_0819FB38 + + thumb_func_start sub_0819FBD0 +sub_0819FBD0: @ 0x0819FBD0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r5, #0 + cmp r0, #2 + bne _0819FC24 + ldr r6, _0819FC20 +_0819FBDE: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r3, #0 + movs r2, #0 + ldr r1, [r6] + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r4, r0, #1 + adds r1, #2 +_0819FBFE: + lsls r0, r2, #1 + adds r0, r0, r4 + adds r0, r1, r0 + ldrh r0, [r0] + cmp r0, #0 + beq _0819FC10 + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 +_0819FC10: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #4 + bls _0819FBFE + cmp r3, #3 + bhi _0819FBDE + b _0819FC32 + .align 2, 0 +_0819FC20: .4byte 0x0300602C +_0819FC24: + cmp r0, #1 + bne _0819FC32 + ldrb r0, [r2] + adds r1, r1, r0 + ldrb r5, [r1] + adds r0, #1 + strb r0, [r2] +_0819FC32: + adds r0, r5, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0819FBD0 + + thumb_func_start sub_0819FC3C +sub_0819FC3C: @ 0x0819FC3C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + movs r5, #0 + mov r0, sp + adds r0, #0xc + str r0, [sp, #0x14] + mov r1, sp + adds r1, #0x10 + str r1, [sp, #0x18] + adds r1, r0, #0 +_0819FC58: + adds r0, r1, r5 + strb r5, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #2 + bls _0819FC58 + movs r5, #0 + ldr r6, [sp, #0x14] +_0819FC6A: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r2, r6, r4 + ldrb r3, [r2] + adds r1, r6, r0 + ldrb r0, [r1] + strb r0, [r2] + strb r3, [r1] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #9 + bls _0819FC6A + movs r5, #0 + ldr r2, _0819FE64 +_0819FCA8: + mov r4, sp + adds r1, r4, r5 + adds r0, r5, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #9 + bls _0819FCA8 + movs r5, #0 +_0819FCBE: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r6, sp + adds r2, r6, r4 + ldrb r3, [r2] + adds r1, r6, r0 + ldrb r0, [r1] + strb r0, [r2] + strb r3, [r1] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x31 + bls _0819FCBE + ldr r4, _0819FE68 + movs r0, #0x30 + bl AllocZeroed + str r0, [r4] + movs r1, #0 + strb r1, [r0] + movs r5, #0 + movs r2, #4 +_0819FD0C: + movs r3, #0 +_0819FD0E: + ldr r0, [r4] + lsls r1, r3, #2 + adds r1, r1, r3 + adds r1, r5, r1 + adds r0, #0x20 + adds r0, r0, r1 + strb r2, [r0] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #2 + bls _0819FD0E + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #4 + bls _0819FD0C + movs r0, #0 + ldr r7, [sp, #0x18] + strb r0, [r7] + movs r5, #0 +_0819FD38: + ldr r0, _0819FE6C + ldr r3, [r0] + lsls r4, r5, #2 + adds r3, r3, r4 + mov r1, sp + adds r6, r1, r5 + ldrb r0, [r6] + adds r3, #0xb8 + movs r2, #3 + ands r2, r0 + ldrb r0, [r3] + movs r7, #4 + rsbs r7, r7, #0 + adds r1, r7, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3] + ldrb r0, [r6] + adds r5, #1 + str r5, [sp, #0x1c] + mov r8, r4 + cmp r0, #3 + beq _0819FE3A + ldrb r0, [r6] + ldr r1, [sp, #0x14] + ldr r2, [sp, #0x18] + bl sub_0819FBD0 + ldr r1, _0819FE6C + ldr r3, [r1] + add r3, r8 + adds r3, #0xb8 + movs r2, #3 + ands r2, r0 + lsls r2, r2, #2 + ldrb r0, [r3] + movs r4, #0xd + rsbs r4, r4, #0 + adds r1, r4, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3] + ldr r7, _0819FE6C + ldr r0, [r7] + add r0, r8 + adds r0, #0xb8 + ldrb r0, [r0] + lsls r0, r0, #0x1c + lsrs r7, r0, #0x1e + ldrb r0, [r6] + cmp r0, #2 + bne _0819FE3A + lsls r0, r7, #2 + adds r0, r0, r7 + mov sl, r0 + ldr r0, _0819FE68 + mov sb, r0 +_0819FDAA: + bl Random + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r1, #3 + ands r4, r1 + movs r3, #0 + mov r6, sb + ldr r2, [r6] + ldrb r0, [r2] + adds r1, r0, #1 + lsls r5, r7, #2 + cmp r3, r1 + bge _0819FDEA + adds r2, #0x20 + mov r6, sl + adds r0, r2, r6 + ldrb r0, [r0] + cmp r0, r4 + beq _0819FDEA + adds r6, r1, #0 + adds r1, r5, r7 +_0819FDD6: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, r6 + bge _0819FDEA + adds r0, r3, r1 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, r4 + bne _0819FDD6 +_0819FDEA: + mov r1, sb + ldr r0, [r1] + ldrb r0, [r0] + adds r0, #1 + ldr r1, _0819FE68 + cmp r3, r0 + bne _0819FDAA + ldr r0, [r1] + orrs r5, r7 + ldrb r2, [r0] + adds r1, r5, r2 + adds r0, #0x20 + adds r0, r0, r1 + strb r4, [r0] + ldr r6, _0819FE6C + ldr r2, [r6] + add r2, r8 + adds r2, #0xb8 + movs r7, #3 + ands r4, r7 + lsls r3, r4, #4 + ldrb r0, [r2] + movs r4, #0x31 + rsbs r4, r4, #0 + adds r1, r4, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2] + ldr r0, [r6] + add r0, r8 + adds r0, #0xb8 + ldrb r0, [r0] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1e + bl sub_0819FE70 + ldr r1, [r6] + add r1, r8 + adds r1, #0xba + strh r0, [r1] +_0819FE3A: + ldr r6, [sp, #0x1c] + lsls r0, r6, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #8 + bhi _0819FE46 + b _0819FD38 +_0819FE46: + ldr r4, _0819FE68 + ldr r0, [r4] + bl Free + movs r0, #0 + str r0, [r4] + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0819FE64: .4byte 0x085DCAFF +_0819FE68: .4byte 0x0300602C +_0819FE6C: .4byte 0x03005AF0 + thumb_func_end sub_0819FC3C + + thumb_func_start sub_0819FE70 +sub_0819FE70: @ 0x0819FE70 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + movs r0, #0 + str r0, [sp, #0xc] + movs r7, #0 + ldr r1, [sp] + cmp r1, #2 + bhi _0819FEBC + ldr r2, _0819FEB8 + ldr r1, [r2] + adds r0, r1, #0 + adds r0, #0xb4 + ldr r3, [sp] + adds r0, r0, r3 + ldrb r4, [r0] + adds r1, #0xb2 + ldrb r0, [r1] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1d + asrs r0, r3 + movs r1, #1 + ands r0, r1 + lsls r0, r0, #2 + asrs r4, r0 + movs r0, #0xf + ands r4, r0 + adds r0, r2, #0 + b _0819FEC0 + .align 2, 0 +_0819FEB8: .4byte 0x03005AF0 +_0819FEBC: + movs r4, #0 + ldr r0, _0819FF80 +_0819FEC0: + ldr r3, _0819FF84 + lsls r2, r4, #1 + ldr r4, [r0] + adds r0, r4, #0 + adds r0, #0xb0 + ldrb r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #4 + adds r2, r2, r0 + adds r3, #0xc + adds r2, r2, r3 + ldrh r2, [r2] + str r2, [sp, #8] + ldr r1, _0819FF88 + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r6, [r0] + movs r3, #0 + adds r4, #0xb1 + ldrb r1, [r4] + movs r0, #3 + ands r0, r1 + movs r5, #0x3c + cmp r0, #1 + bne _0819FEF6 + movs r5, #0x32 +_0819FEF6: + ldrh r1, [r6] + ldr r4, _0819FF8C + cmp r1, r4 + beq _0819FF28 + movs r2, #0xfe + lsls r2, r2, #8 + adds r0, r2, #0 + ands r0, r1 + lsls r1, r5, #9 + cmp r0, r1 + bgt _0819FF28 + adds r5, r2, #0 + adds r2, r1, #0 +_0819FF10: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r0, r3, #1 + adds r0, r0, r6 + ldrh r1, [r0] + cmp r1, r4 + beq _0819FF28 + adds r0, r5, #0 + ands r0, r1 + cmp r0, r2 + ble _0819FF10 +_0819FF28: + adds r5, r3, #0 + movs r0, #0 + str r0, [sp, #4] +_0819FF2E: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0819FF44 + ldr r1, [sp, #0xc] + cmp r1, #1 + bne _0819FFBC +_0819FF44: + ldr r2, _0819FF90 + mov r8, r2 +_0819FF48: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x3a + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, [sp, #8] + adds r1, r4, #0 + bl CanSpeciesLearnTMHM + adds r2, r0, #0 + cmp r2, #0 + beq _0819FF48 + ldr r3, _0819FF94 + adds r0, r4, r3 + bl ItemIdToBattleMoveId + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + movs r2, #1 + cmp r5, #4 + bhi _0819FF98 + movs r3, #0 + b _0819FFA2 + .align 2, 0 +_0819FF80: .4byte 0x03005AF0 +_0819FF84: .4byte 0x085DC21C +_0819FF88: .4byte 0x082F9D04 +_0819FF8C: .4byte 0x0000FFFF +_0819FF90: .4byte 0x000001FF +_0819FF94: .4byte 0x00000121 +_0819FF98: + subs r0, r5, #4 + b _0819FF9E +_0819FF9C: + adds r0, r3, #1 +_0819FF9E: + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 +_0819FFA2: + cmp r3, r5 + bhs _0819FFB6 + lsls r0, r3, #1 + adds r0, r0, r6 + ldrh r0, [r0] + mov r1, r8 + ands r0, r1 + cmp r0, r7 + bne _0819FF9C + movs r2, #0 +_0819FFB6: + cmp r2, #1 + bne _0819FF48 + b _081A0022 +_0819FFBC: + cmp r5, #4 + bhi _0819FFC6 + movs r2, #1 + str r2, [sp, #0xc] + b _081A0044 +_0819FFC6: + subs r4, r5, #4 + ldr r3, _081A0000 + mov sl, r3 + mov r8, r3 + lsls r0, r4, #0x18 + mov sb, r0 +_0819FFD2: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r4, #0 + bl __modsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r6 + ldrh r0, [r0] + mov r7, r8 + ands r7, r0 + movs r2, #1 + mov r1, sb + lsrs r3, r1, #0x18 + cmp r3, r5 + bhs _081A001E + lsls r0, r3, #1 + adds r0, r0, r6 + ldrh r1, [r0] + mov r0, r8 + b _081A0016 + .align 2, 0 +_081A0000: .4byte 0x000001FF +_081A0004: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, r5 + bhs _081A001E + lsls r0, r3, #1 + adds r0, r0, r6 + ldrh r0, [r0] + mov r1, sl +_081A0016: + ands r0, r1 + cmp r0, r7 + bne _081A0004 + movs r2, #0 +_081A001E: + cmp r2, #1 + bne _0819FFD2 +_081A0022: + ldr r0, [sp] + adds r1, r7, #0 + bl sub_081A0070 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081A0044 + ldr r0, _081A0068 + adds r0, r7, r0 + ldrb r0, [r0] + cmp r0, #0 + bne _081A004C + ldr r0, [sp, #4] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] +_081A0044: + ldr r2, [sp, #4] + cmp r2, #4 + bhi _081A004C + b _0819FF2E +_081A004C: + ldr r0, _081A006C + ldr r1, [r0] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r0, r7, #0 + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081A0068: .4byte 0x085DC99C +_081A006C: .4byte 0x0300602C + thumb_func_end sub_0819FE70 + + thumb_func_start sub_081A0070 +sub_081A0070: @ 0x081A0070 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + movs r3, #0 + ldr r0, _081A009C + mov ip, r0 + ldr r2, [r0] + lsls r1, r4, #2 + adds r0, r1, r4 + lsls r6, r0, #1 + adds r2, #2 + adds r7, r1, #0 +_081A008C: + lsls r0, r3, #1 + adds r0, r0, r6 + adds r0, r2, r0 + ldrh r0, [r0] + cmp r0, r5 + bne _081A00A0 + movs r0, #0 + b _081A00BE + .align 2, 0 +_081A009C: .4byte 0x0300602C +_081A00A0: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #4 + bls _081A008C + mov r2, ip + ldr r1, [r2] + adds r0, r7, r4 + ldrb r2, [r1] + adds r0, r0, r2 + lsls r0, r0, #1 + adds r1, #2 + adds r1, r1, r0 + strh r5, [r1] + movs r0, #1 +_081A00BE: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_081A0070 + + thumb_func_start GetLatestLearnedMoves +GetLatestLearnedMoves: @ 0x081A00C4 + push {r4, r5, r6, r7, lr} + mov ip, r1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _081A0150 + ldr r0, [r0] + adds r0, #0xb1 + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + movs r4, #0x3c + cmp r0, #1 + bne _081A00E0 + movs r4, #0x32 +_081A00E0: + ldr r1, _081A0154 + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r6, [r0] + movs r5, #0 + ldrh r1, [r6] + ldr r3, _081A0158 + cmp r1, r3 + beq _081A011C + movs r2, #0xfe + lsls r2, r2, #8 + adds r0, r2, #0 + ands r0, r1 + lsls r1, r4, #9 + cmp r0, r1 + bgt _081A011C + adds r4, r2, #0 + adds r2, r1, #0 +_081A0104: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #1 + adds r0, r0, r6 + ldrh r1, [r0] + cmp r1, r3 + beq _081A011C + adds r0, r4, #0 + ands r0, r1 + cmp r0, r2 + ble _081A0104 +_081A011C: + adds r4, r5, #0 + cmp r4, #4 + bls _081A0124 + movs r4, #4 +_081A0124: + movs r2, #0 + cmp r2, r4 + bhs _081A0148 + ldr r7, _081A015C +_081A012C: + lsls r3, r2, #1 + add r3, ip + adds r2, #1 + subs r0, r5, r2 + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r1, [r0] + adds r0, r7, #0 + ands r0, r1 + strh r0, [r3] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + cmp r2, r4 + blo _081A012C +_081A0148: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A0150: .4byte 0x03005AF0 +_081A0154: .4byte 0x082F9D04 +_081A0158: .4byte 0x0000FFFF +_081A015C: .4byte 0x000001FF + thumb_func_end GetLatestLearnedMoves + + thumb_func_start sub_081A0160 +sub_081A0160: @ 0x081A0160 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + ldr r1, _081A0190 + ldr r2, [r1] + adds r0, r2, #0 + adds r0, #0xb1 + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1c + adds r7, r1, #0 + cmp r0, #2 + bhi _081A0194 + movs r0, #0 + b _081A025A + .align 2, 0 +_081A0190: .4byte 0x03005AF0 +_081A0194: + movs r4, #0 + movs r3, #0 + adds r0, r2, #0 + adds r0, #0xb8 + ldrb r0, [r0] + lsls r0, r0, #0x1e + ldr r1, _081A0268 + mov ip, r1 + lsls r6, r6, #1 + lsls r5, r5, #1 + mov sb, r5 + cmp r0, #0 + beq _081A01D0 + adds r2, r7, #0 +_081A01B0: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #8 + bhi _081A01D0 + ldr r0, [r2] + lsls r1, r3, #2 + adds r0, r0, r1 + adds r0, #0xb8 + ldrb r0, [r0] + lsls r0, r0, #0x1e + cmp r0, #0 + bne _081A01B0 +_081A01D0: + ldr r0, [r7] + adds r0, #0xb0 + ldrb r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #4 + adds r0, r6, r0 + mov r1, ip + adds r1, #0xc + adds r0, r0, r1 + ldrh r0, [r0] + mov r1, sp + bl GetLatestLearnedMoves + movs r3, #0 + cmp r3, r4 + bhs _081A0254 + ldr r1, [r7] + adds r0, r1, #0 + adds r0, #0xb1 + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1c + subs r0, #3 + cmp r3, r0 + bge _081A0254 + adds r6, r7, #0 + adds r5, r1, #0 +_081A0208: + lsls r0, r3, #2 + adds r2, r5, r0 + adds r0, r2, #0 + adds r0, #0xb8 + ldrb r1, [r0] + lsls r0, r1, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #2 + bne _081A023A + lsls r0, r1, #0x1c + lsrs r0, r0, #0x1e + cmp r0, r8 + bne _081A023A + lsrs r0, r1, #6 + cmp r0, #0 + beq _081A023A + lsls r0, r1, #0x1a + lsrs r0, r0, #0x1e + lsls r0, r0, #1 + mov r7, sp + adds r1, r7, r0 + adds r0, r2, #0 + adds r0, #0xba + ldrh r0, [r0] + strh r0, [r1] +_081A023A: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, r4 + bhs _081A0254 + ldr r0, [r6] + adds r0, #0xb1 + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1c + subs r0, #3 + cmp r3, r0 + blt _081A0208 +_081A0254: + mov r0, sp + add r0, sb + ldrh r0, [r0] +_081A025A: + add sp, #8 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081A0268: .4byte 0x085DC21C + thumb_func_end sub_081A0160 + + thumb_func_start sub_081A026C +sub_081A026C: @ 0x081A026C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r5, #0 + ldr r7, _081A0380 + adds r6, r7, #0 + movs r4, #0 +_081A0282: + ldr r0, [r6] + lsls r2, r5, #1 + adds r2, r2, r5 + lsls r2, r2, #2 + adds r0, r0, r2 + adds r1, r0, #0 + adds r1, #0xe0 + strh r4, [r1] + adds r0, #0xea + strh r4, [r0] + movs r3, #0 +_081A0298: + ldr r0, [r6] + lsls r1, r3, #1 + adds r1, r1, r2 + adds r0, #0xe2 + adds r0, r0, r1 + strh r4, [r0] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #3 + bls _081A0298 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #2 + bls _081A0282 + ldr r0, [r7] + adds r0, #0xb1 + ldrb r0, [r0] + lsrs r3, r0, #6 + movs r5, #0 +_081A02C2: + lsls r0, r3, #2 + mov r1, sp + adds r2, r1, r0 + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r0, #0xe0 + ldr r1, [r7] + adds r1, r1, r0 + str r1, [r2] + adds r0, r3, #1 + movs r1, #3 + bl __modsi3 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #2 + bls _081A02C2 + movs r5, #0 + ldr r7, _081A0380 + ldr r6, _081A0384 +_081A02F2: + ldr r0, [r7] + mov ip, r0 + adds r0, #0xb4 + adds r0, r0, r5 + ldrb r2, [r0] + mov r0, ip + adds r0, #0xb2 + ldrb r0, [r0] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1d + asrs r0, r5 + movs r1, #1 + ands r0, r1 + lsls r0, r0, #2 + asrs r2, r0 + movs r0, #0xf + ands r2, r0 + lsls r0, r5, #2 + mov r1, sp + adds r3, r1, r0 + ldr r4, [r3] + lsls r2, r2, #1 + mov r0, ip + adds r0, #0xb0 + ldrb r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #4 + adds r2, r2, r0 + adds r2, r2, r6 + ldrh r0, [r2] + strh r0, [r4] + ldr r1, [r3] + ldrh r0, [r1] + adds r1, #2 + bl GetLatestLearnedMoves + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #2 + bls _081A02F2 + movs r5, #0 + cmp r5, r8 + bhs _081A03B6 + ldr r7, _081A0380 +_081A034E: + ldr r1, [r7] + lsls r0, r5, #2 + adds r4, r1, r0 + adds r0, r4, #0 + adds r0, #0xb8 + ldrb r2, [r0] + lsls r0, r2, #0x1e + lsrs r1, r0, #0x1e + lsls r0, r2, #0x1c + lsrs r3, r0, #0x1e + adds r6, r3, #0 + cmp r1, #1 + bne _081A0388 + lsrs r0, r2, #6 + cmp r0, #0 + beq _081A03AC + lsls r0, r3, #2 + add r0, sp + ldr r1, [r0] + adds r0, r4, #0 + adds r0, #0xba + ldrh r0, [r0] + strh r0, [r1, #0xa] + b _081A03AC + .align 2, 0 +_081A0380: .4byte 0x03005AF0 +_081A0384: .4byte 0x085DC228 +_081A0388: + cmp r1, #2 + bne _081A03AC + lsls r0, r2, #0x18 + lsrs r0, r0, #0x1e + cmp r0, #0 + beq _081A03AC + lsls r2, r2, #0x1a + lsrs r2, r2, #0x1e + lsls r0, r6, #2 + add r0, sp + ldr r1, [r0] + lsls r2, r2, #1 + adds r1, #2 + adds r1, r1, r2 + adds r0, r4, #0 + adds r0, #0xba + ldrh r0, [r0] + strh r0, [r1] +_081A03AC: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, r8 + blo _081A034E +_081A03B6: + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081A026C + + thumb_func_start CreateMenuWithAnswers +CreateMenuWithAnswers: @ 0x081A03C4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r7, #2 + cmp r0, #6 + bls _081A03DC + b _081A054C +_081A03DC: + lsls r0, r0, #2 + ldr r1, _081A03E8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081A03E8: .4byte 0x081A03EC +_081A03EC: @ jump table + .4byte _081A0408 @ case 0 + .4byte _081A0424 @ case 1 + .4byte _081A04A0 @ case 2 + .4byte _081A04E8 @ case 3 + .4byte _081A0514 @ case 4 + .4byte _081A054C @ case 5 + .4byte _081A0530 @ case 6 +_081A0408: + movs r0, #0x12 + mov sl, r0 + movs r5, #8 + movs r1, #8 + str r1, [sp, #0x18] + ldr r0, _081A041C + str r0, [sp, #0xc] + ldr r0, _081A0420 + str r0, [sp, #0x10] + b _081A0556 + .align 2, 0 +_081A041C: .4byte 0x085CAB0D +_081A0420: .4byte 0x085CAB13 +_081A0424: + movs r7, #3 + movs r0, #0x12 + mov sl, r0 + movs r5, #6 + movs r1, #8 + str r1, [sp, #0x18] + movs r4, #0 + ldr r0, _081A0494 + mov sb, r0 + ldr r0, _081A0498 + ldr r3, [r0] + movs r1, #0xb2 + adds r1, r1, r3 + mov ip, r1 + adds r6, r3, #0 + adds r6, #0xb0 + ldr r0, _081A049C + mov r8, r0 +_081A0448: + adds r0, r3, #0 + adds r0, #0xb4 + adds r0, r0, r4 + ldrb r2, [r0] + mov r1, ip + ldrb r0, [r1] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1d + asrs r0, r4 + movs r1, #1 + ands r0, r1 + lsls r0, r0, #2 + asrs r2, r0 + movs r0, #0xf + ands r2, r0 + lsls r2, r2, #1 + ldrb r1, [r6] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #4 + adds r2, r2, r0 + add r2, r8 + ldrh r1, [r2] + lsls r0, r4, #2 + mov r2, sp + adds r2, r2, r0 + adds r2, #0xc + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + add r0, sb + str r0, [r2] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #2 + bls _081A0448 + b _081A0556 + .align 2, 0 +_081A0494: .4byte 0x082EA31C +_081A0498: .4byte 0x03005AF0 +_081A049C: .4byte 0x085DC228 +_081A04A0: + movs r0, #0x12 + mov sl, r0 + movs r5, #8 + movs r1, #8 + str r1, [sp, #0x18] + ldr r0, _081A04DC + ldr r0, [r0] + adds r0, #0xb1 + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1c + cmp r0, #2 + bls _081A04BC + b _081A05C2 +_081A04BC: + ldr r0, _081A04E0 + ldr r3, [r0] + ldrh r1, [r3, #2] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r2, _081A04E4 + adds r0, r0, r2 + str r0, [sp, #0x10] + ldrh r1, [r3] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + str r0, [sp, #0xc] + b _081A0556 + .align 2, 0 +_081A04DC: .4byte 0x03005AF0 +_081A04E0: .4byte 0x03006030 +_081A04E4: .4byte 0x082EA31C +_081A04E8: + movs r0, #0x11 + mov sl, r0 + movs r5, #8 + movs r1, #8 + str r1, [sp, #0x18] + ldr r0, _081A050C + ldr r2, [r0] + ldrh r0, [r2, #4] + lsls r0, r0, #3 + ldr r1, _081A0510 + adds r0, r0, r1 + str r0, [sp, #0xc] + ldrh r0, [r2, #6] + lsls r0, r0, #3 + adds r0, r0, r1 + str r0, [sp, #0x10] + b _081A0556 + .align 2, 0 +_081A050C: .4byte 0x03006030 +_081A0510: .4byte 0x082EACC4 +_081A0514: + movs r0, #0x12 + mov sl, r0 + movs r5, #8 + movs r1, #8 + str r1, [sp, #0x18] + ldr r0, _081A0528 + str r0, [sp, #0xc] + ldr r0, _081A052C + str r0, [sp, #0x10] + b _081A0556 + .align 2, 0 +_081A0528: .4byte 0x085CC47F +_081A052C: .4byte 0x085CC486 +_081A0530: + movs r0, #0x14 + mov sl, r0 + movs r5, #8 + movs r1, #4 + str r1, [sp, #0x18] + ldr r0, _081A0544 + str r0, [sp, #0xc] + ldr r0, _081A0548 + str r0, [sp, #0x10] + b _081A0556 + .align 2, 0 +_081A0544: .4byte 0x085CAAD8 +_081A0548: .4byte 0x085CAADB +_081A054C: + movs r0, #0 + mov sl, r0 + movs r5, #0 + movs r1, #8 + str r1, [sp, #0x18] +_081A0556: + lsls r3, r7, #1 + mov r0, sl + adds r1, r5, #0 + ldr r2, [sp, #0x18] + bl CreateAndShowWindow + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r5, #0 + movs r1, #0 + bl SetStandardWindowBorderStyle + movs r4, #0 + cmp r4, r7 + bhs _081A05A2 +_081A0574: + lsls r0, r4, #2 + add r0, sp + adds r0, #0xc + ldr r2, [r0] + lsls r0, r4, #4 + adds r0, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + adds r0, r5, #0 + movs r1, #1 + movs r3, #8 + bl AddTextPrinterParameterized + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r7 + blo _081A0574 +_081A05A2: + movs r0, #0x10 + str r0, [sp] + str r7, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + adds r0, r5, #0 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl sub_081984B0 + movs r0, #1 + adds r1, r7, #0 + adds r2, r5, #0 + bl CreateChooseAnswerTask +_081A05C2: + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CreateMenuWithAnswers + + thumb_func_start Task_ChooseAnswer +Task_ChooseAnswer: @ 0x081A05D4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _081A05F4 + adds r4, r0, r1 + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _081A05F8 + bl Menu_ProcessInputNoWrap + b _081A05FC + .align 2, 0 +_081A05F4: .4byte 0x03005B68 +_081A05F8: + bl Menu_ProcessInput +_081A05FC: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + movs r0, #2 + rsbs r0, r0, #0 + cmp r1, r0 + beq _081A0640 + adds r0, #1 + cmp r1, r0 + bne _081A062C + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _081A0640 + movs r0, #5 + bl PlaySE + ldr r1, _081A0628 + movs r0, #0x7f + strh r0, [r1] + b _081A0630 + .align 2, 0 +_081A0628: .4byte 0x02037290 +_081A062C: + ldr r0, _081A0648 + strh r1, [r0] +_081A0630: + ldrb r0, [r4, #0xc] + bl RemoveAndHideWindow + adds r0, r5, #0 + bl DestroyTask + bl EnableBothScriptContexts +_081A0640: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081A0648: .4byte 0x02037290 + thumb_func_end Task_ChooseAnswer + + thumb_func_start CreateAndShowWindow +CreateAndShowWindow: @ 0x081A064C + push {r4, r5, lr} + sub sp, #0x20 + adds r4, r0, #0 + adds r5, r1, #0 + lsls r4, r4, #0x18 + lsls r5, r5, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #0x80 + lsls r0, r0, #0x11 + adds r4, r4, r0 + lsrs r4, r4, #0x18 + adds r5, r5, r0 + lsrs r5, r5, #0x18 + str r2, [sp] + str r3, [sp, #4] + movs r0, #0xf + str r0, [sp, #8] + movs r0, #0x5c + str r0, [sp, #0xc] + add r0, sp, #0x10 + movs r1, #0 + adds r2, r4, #0 + adds r3, r5, #0 + bl CreateWindowTemplate + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + str r0, [sp, #0x18] + str r1, [sp, #0x1c] + add r0, sp, #0x18 + bl AddWindow + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl PutWindowTilemap + adds r0, r4, #0 + movs r1, #3 + bl CopyWindowToVram + adds r0, r4, #0 + add sp, #0x20 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end CreateAndShowWindow + + thumb_func_start RemoveAndHideWindow +RemoveAndHideWindow: @ 0x081A06B0 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #1 + bl ClearStdWindowAndFrameToTransparent + adds r0, r4, #0 + bl RemoveWindow + pop {r4} + pop {r0} + bx r0 + thumb_func_end RemoveAndHideWindow + + thumb_func_start CreateChooseAnswerTask +CreateChooseAnswerTask: @ 0x081A06CC + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + ldr r0, _081A0700 + movs r1, #0x50 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _081A0704 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r1, r0, r1 + strh r4, [r1, #0x10] + cmp r5, #3 + bls _081A0708 + movs r0, #1 + b _081A070A + .align 2, 0 +_081A0700: .4byte 0x081A05D5 +_081A0704: .4byte 0x03005B60 +_081A0708: + movs r0, #0 +_081A070A: + strh r0, [r1, #0x12] + ldr r1, _081A0720 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r6, [r0, #0x14] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081A0720: .4byte 0x03005B60 + thumb_func_end CreateChooseAnswerTask + + thumb_func_start CallApprenticeFunction +CallApprenticeFunction: @ 0x081A0724 + push {lr} + ldr r1, _081A073C + ldr r0, _081A0740 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + thumb_func_end CallApprenticeFunction + + thumb_func_start sub_081A0738 +sub_081A0738: @ 0x081A0738 + bx r0 + .align 2, 0 +_081A073C: .4byte 0x085DCB0C +_081A0740: .4byte 0x02037280 + thumb_func_end sub_081A0738 + + thumb_func_start Script_ResetPlayerApprentice +Script_ResetPlayerApprentice: @ 0x081A0744 + push {r4, r5, r6, r7, lr} + bl sub_0819FAA0 + ldr r3, _081A0800 + ldr r1, [r3] + adds r1, #0xb1 + ldrb r2, [r1] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r3] + adds r1, #0xb1 + ldrb r2, [r1] + movs r0, #0x3d + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r3] + adds r1, #0xb1 + ldrb r2, [r1] + movs r0, #0x3f + ands r0, r2 + strb r0, [r1] + ldr r1, [r3] + adds r1, #0xb2 + ldrb r2, [r1] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + movs r4, #0 + movs r1, #0 +_081A0786: + ldr r0, [r3] + adds r0, #0xb4 + adds r0, r0, r4 + strb r1, [r0] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #2 + bls _081A0786 + movs r4, #0 + ldr r5, _081A0800 + movs r0, #4 + rsbs r0, r0, #0 + mov ip, r0 + movs r7, #0xd + rsbs r7, r7, #0 + movs r6, #0x31 + rsbs r6, r6, #0 +_081A07AA: + ldr r1, [r5] + lsls r3, r4, #2 + adds r1, r1, r3 + adds r1, #0xb8 + ldrb r2, [r1] + mov r0, ip + ands r0, r2 + strb r0, [r1] + ldr r1, [r5] + adds r1, r1, r3 + adds r1, #0xb8 + ldrb r2, [r1] + adds r0, r7, #0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r5] + adds r1, r1, r3 + adds r1, #0xb8 + ldrb r2, [r1] + adds r0, r6, #0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r5] + adds r1, r1, r3 + adds r1, #0xb8 + ldrb r2, [r1] + movs r0, #0x3f + ands r0, r2 + strb r0, [r1] + ldr r0, [r5] + adds r0, r0, r3 + adds r0, #0xba + movs r1, #0 + strh r1, [r0] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #8 + bls _081A07AA + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A0800: .4byte 0x03005AF0 + thumb_func_end Script_ResetPlayerApprentice + + thumb_func_start Script_IsPlayersApprenticeActive +Script_IsPlayersApprenticeActive: @ 0x081A0804 + push {lr} + bl IsPlayersApprenticeActive + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _081A081C + ldr r0, _081A0818 + strh r1, [r0] + b _081A0822 + .align 2, 0 +_081A0818: .4byte 0x02037290 +_081A081C: + ldr r1, _081A0828 + movs r0, #1 + strh r0, [r1] +_081A0822: + pop {r0} + bx r0 + .align 2, 0 +_081A0828: .4byte 0x02037290 + thumb_func_end Script_IsPlayersApprenticeActive + + thumb_func_start Script_CreateApprenticeMenu +Script_CreateApprenticeMenu: @ 0x081A082C + push {lr} + ldr r0, _081A083C + ldrb r0, [r0] + bl SetPlayersApprenticeLvlMode + pop {r0} + bx r0 + .align 2, 0 +_081A083C: .4byte 0x02037282 + thumb_func_end Script_CreateApprenticeMenu + + thumb_func_start sub_081A0840 +sub_081A0840: @ 0x081A0840 + push {lr} + bl sub_0819FAA0 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081A0840 + + thumb_func_start sub_081A084C +sub_081A084C: @ 0x081A084C + push {lr} + bl sub_0819FC3C + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081A084C + + thumb_func_start sub_081A0858 +sub_081A0858: @ 0x081A0858 + ldr r0, _081A0878 + ldr r2, [r0] + adds r2, #0xb1 + ldrb r3, [r2] + lsls r1, r3, #0x1a + lsrs r1, r1, #0x1c + adds r1, #1 + movs r0, #0xf + ands r1, r0 + lsls r1, r1, #2 + movs r0, #0x3d + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + bx lr + .align 2, 0 +_081A0878: .4byte 0x03005AF0 + thumb_func_end sub_081A0858 + + thumb_func_start sub_081A087C +sub_081A087C: @ 0x081A087C + ldr r1, _081A0890 + ldr r0, _081A0894 + ldr r0, [r0] + adds r0, #0xb1 + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1c + strh r0, [r1] + bx lr + .align 2, 0 +_081A0890: .4byte 0x02037290 +_081A0894: .4byte 0x03005AF0 + thumb_func_end sub_081A087C + + thumb_func_start sub_081A0898 +sub_081A0898: @ 0x081A0898 + push {lr} + ldr r3, _081A08B4 + ldr r0, [r3] + adds r0, #0xb1 + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1c + subs r1, r0, #3 + cmp r1, #0 + bge _081A08BC + ldr r1, _081A08B8 + movs r0, #0 + strh r0, [r1] + b _081A08E4 + .align 2, 0 +_081A08B4: .4byte 0x03005AF0 +_081A08B8: .4byte 0x02037290 +_081A08BC: + ldr r2, _081A08DC + cmp r1, #8 + ble _081A08C6 + movs r0, #1 + strh r0, [r2] +_081A08C6: + ldr r0, [r3] + lsls r1, r1, #2 + adds r0, r0, r1 + adds r0, #0xb8 + ldrb r0, [r0] + lsls r0, r0, #0x1e + cmp r0, #0 + bne _081A08E0 + movs r0, #1 + b _081A08E2 + .align 2, 0 +_081A08DC: .4byte 0x02037290 +_081A08E0: + movs r0, #0 +_081A08E2: + strh r0, [r2] +_081A08E4: + pop {r0} + bx r0 + thumb_func_end sub_081A0898 + + thumb_func_start Script_SetPlayersApprenticeLvlMode +Script_SetPlayersApprenticeLvlMode: @ 0x081A08E8 + push {lr} + ldr r0, _081A08F8 + ldrb r0, [r0] + bl CreateMenuWithAnswers + pop {r0} + bx r0 + .align 2, 0 +_081A08F8: .4byte 0x02037282 + thumb_func_end Script_SetPlayersApprenticeLvlMode + + thumb_func_start Task_WaitForPrintingMessage +Task_WaitForPrintingMessage: @ 0x081A08FC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl RunTextPrintersAndIsPrinter0Active + lsls r0, r0, #0x10 + cmp r0, #0 + bne _081A0930 + adds r0, r4, #0 + bl DestroyTask + ldr r0, _081A0924 + ldrh r0, [r0] + cmp r0, #0 + beq _081A092C + ldr r0, _081A0928 + bl ExecuteFuncAfterButtonPress + b _081A0930 + .align 2, 0 +_081A0924: .4byte 0x02037282 +_081A0928: .4byte 0x080988C5 +_081A092C: + bl EnableBothScriptContexts +_081A0930: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Task_WaitForPrintingMessage + + thumb_func_start PrintMessage +PrintMessage: @ 0x081A0938 + push {lr} + ldr r1, _081A0950 + ldrh r0, [r1] + cmp r0, #6 + bne _081A095C + ldr r1, _081A0954 + ldr r0, _081A0958 + ldr r0, [r0] + adds r0, #0xb0 + ldrb r0, [r0] + lsls r0, r0, #3 + b _081A0B2E + .align 2, 0 +_081A0950: .4byte 0x02037284 +_081A0954: .4byte 0x085DC61C +_081A0958: .4byte 0x03005AF0 +_081A095C: + cmp r0, #7 + bne _081A0978 + ldr r1, _081A0970 + ldr r0, _081A0974 + ldr r0, [r0] + adds r0, #0xb0 + ldrb r0, [r0] + lsls r0, r0, #3 + adds r1, #4 + b _081A0B2E + .align 2, 0 +_081A0970: .4byte 0x085DC61C +_081A0974: .4byte 0x03005AF0 +_081A0978: + cmp r0, #8 + bne _081A0994 + ldr r1, _081A098C + ldr r0, _081A0990 + ldr r0, [r0] + adds r0, #0xb0 + ldrb r0, [r0] + lsls r0, r0, #3 + b _081A0B2E + .align 2, 0 +_081A098C: .4byte 0x085DC7DC +_081A0990: .4byte 0x03005AF0 +_081A0994: + cmp r0, #9 + bne _081A09B0 + ldr r1, _081A09A8 + ldr r0, _081A09AC + ldr r0, [r0] + adds r0, #0xb0 + ldrb r0, [r0] + lsls r0, r0, #3 + adds r1, #4 + b _081A0B2E + .align 2, 0 +_081A09A8: .4byte 0x085DC7DC +_081A09AC: .4byte 0x03005AF0 +_081A09B0: + cmp r0, #4 + bne _081A09CC + ldr r1, _081A09C4 + ldr r0, _081A09C8 + ldr r0, [r0] + adds r0, #0xb0 + ldrb r0, [r0] + lsls r0, r0, #3 + b _081A0B2E + .align 2, 0 +_081A09C4: .4byte 0x085DC85C +_081A09C8: .4byte 0x03005AF0 +_081A09CC: + cmp r0, #5 + bne _081A09E8 + ldr r1, _081A09E0 + ldr r0, _081A09E4 + ldr r0, [r0] + adds r0, #0xb0 + ldrb r0, [r0] + lsls r0, r0, #3 + adds r1, #4 + b _081A0B2E + .align 2, 0 +_081A09E0: .4byte 0x085DC85C +_081A09E4: .4byte 0x03005AF0 +_081A09E8: + cmp r0, #0xa + bne _081A0A08 + ldr r2, _081A0A00 + ldr r0, _081A0A04 + ldr r0, [r0] + adds r0, #0xb0 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + b _081A0A9E + .align 2, 0 +_081A0A00: .4byte 0x085DC69C +_081A0A04: .4byte 0x03005AF0 +_081A0A08: + cmp r0, #0xb + bne _081A0A24 + ldr r1, _081A0A1C + ldr r0, _081A0A20 + ldr r0, [r0] + adds r0, #0xb0 + ldrb r0, [r0] + lsls r0, r0, #3 + b _081A0B2E + .align 2, 0 +_081A0A1C: .4byte 0x085DC8DC +_081A0A20: .4byte 0x03005AF0 +_081A0A24: + cmp r0, #0xc + bne _081A0A44 + ldr r2, _081A0A3C + ldr r0, _081A0A40 + ldr r0, [r0] + adds r0, #0xb0 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0xc + b _081A0A9E + .align 2, 0 +_081A0A3C: .4byte 0x085DC69C +_081A0A40: .4byte 0x03005AF0 +_081A0A44: + cmp r0, #0xd + bne _081A0A64 + ldr r2, _081A0A5C + ldr r0, _081A0A60 + ldr r0, [r0] + adds r0, #0xb0 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #4 + b _081A0A9E + .align 2, 0 +_081A0A5C: .4byte 0x085DC69C +_081A0A60: .4byte 0x03005AF0 +_081A0A64: + ldrh r0, [r1] + cmp r0, #0x10 + bne _081A0A88 + ldr r2, _081A0A80 + ldr r0, _081A0A84 + ldr r0, [r0] + adds r0, #0xb0 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x10 + b _081A0A9E + .align 2, 0 +_081A0A80: .4byte 0x085DC69C +_081A0A84: .4byte 0x03005AF0 +_081A0A88: + cmp r0, #0xe + bne _081A0AAC + ldr r2, _081A0AA4 + ldr r0, _081A0AA8 + ldr r0, [r0] + adds r0, #0xb0 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #8 +_081A0A9E: + adds r0, r0, r2 + ldr r1, [r0] + b _081A0B42 + .align 2, 0 +_081A0AA4: .4byte 0x085DC69C +_081A0AA8: .4byte 0x03005AF0 +_081A0AAC: + cmp r0, #0xf + bne _081A0AC8 + ldr r1, _081A0AC0 + ldr r0, _081A0AC4 + ldr r0, [r0] + adds r0, #0xb0 + ldrb r0, [r0] + lsls r0, r0, #3 + adds r1, #4 + b _081A0B2E + .align 2, 0 +_081A0AC0: .4byte 0x085DC8DC +_081A0AC4: .4byte 0x03005AF0 +_081A0AC8: + cmp r0, #0 + bne _081A0AE4 + ldr r1, _081A0ADC + ldr r0, _081A0AE0 + ldr r0, [r0] + adds r0, #0xb0 + ldrb r0, [r0] + lsls r0, r0, #4 + b _081A0B2E + .align 2, 0 +_081A0ADC: .4byte 0x085DC51C +_081A0AE0: .4byte 0x03005AF0 +_081A0AE4: + cmp r0, #1 + bne _081A0B00 + ldr r1, _081A0AF8 + ldr r0, _081A0AFC + ldr r0, [r0] + adds r0, #0xb0 + ldrb r0, [r0] + lsls r0, r0, #4 + adds r1, #4 + b _081A0B2E + .align 2, 0 +_081A0AF8: .4byte 0x085DC51C +_081A0AFC: .4byte 0x03005AF0 +_081A0B00: + cmp r0, #2 + bne _081A0B1C + ldr r1, _081A0B14 + ldr r0, _081A0B18 + ldr r0, [r0] + adds r0, #0xb0 + ldrb r0, [r0] + lsls r0, r0, #4 + adds r1, #8 + b _081A0B2E + .align 2, 0 +_081A0B14: .4byte 0x085DC51C +_081A0B18: .4byte 0x03005AF0 +_081A0B1C: + cmp r0, #3 + bne _081A0B3C + ldr r1, _081A0B34 + ldr r0, _081A0B38 + ldr r0, [r0] + adds r0, #0xb0 + ldrb r0, [r0] + lsls r0, r0, #4 + adds r1, #0xc +_081A0B2E: + adds r0, r0, r1 + ldr r1, [r0] + b _081A0B42 + .align 2, 0 +_081A0B34: .4byte 0x085DC51C +_081A0B38: .4byte 0x03005AF0 +_081A0B3C: + bl EnableBothScriptContexts + b _081A0B56 +_081A0B42: + ldr r0, _081A0B5C + bl StringExpandPlaceholders + movs r0, #1 + bl AddTextPrinterForMessage + ldr r0, _081A0B60 + movs r1, #1 + bl CreateTask +_081A0B56: + pop {r0} + bx r0 + .align 2, 0 +_081A0B5C: .4byte 0x02021C7C +_081A0B60: .4byte 0x081A08FD + thumb_func_end PrintMessage + + thumb_func_start Script_PrintMessage +Script_PrintMessage: @ 0x081A0B64 + push {lr} + bl ScriptContext2_Enable + bl FreezeEventObjects + bl sub_0808B1C8 + bl sub_0808B658 + movs r0, #0 + movs r1, #1 + bl ClearDialogWindowAndFrame + bl PrintMessage + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Script_PrintMessage + + thumb_func_start sub_081A0B88 +sub_081A0B88: @ 0x081A0B88 + push {lr} + ldr r0, _081A0BA4 + ldr r2, [r0] + adds r0, r2, #0 + adds r0, #0xb1 + ldrb r0, [r0] + lsls r1, r0, #0x1a + lsrs r0, r1, #0x1c + cmp r0, #2 + bhi _081A0BAC + ldr r1, _081A0BA8 + movs r0, #2 + b _081A0BFC + .align 2, 0 +_081A0BA4: .4byte 0x03005AF0 +_081A0BA8: .4byte 0x02037290 +_081A0BAC: + lsrs r0, r1, #0x1c + cmp r0, #0xb + bhi _081A0BF8 + lsrs r0, r1, #0x1c + subs r0, #3 + lsls r0, r0, #2 + adds r0, r2, r0 + adds r0, #0xb8 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #2 + beq _081A0BE0 + cmp r0, #2 + bgt _081A0BD0 + cmp r0, #1 + beq _081A0BD6 + b _081A0BF8 +_081A0BD0: + cmp r0, #3 + beq _081A0BEC + b _081A0BF8 +_081A0BD6: + ldr r1, _081A0BDC + movs r0, #4 + b _081A0BFC + .align 2, 0 +_081A0BDC: .4byte 0x02037290 +_081A0BE0: + ldr r1, _081A0BE8 + movs r0, #3 + b _081A0BFC + .align 2, 0 +_081A0BE8: .4byte 0x02037290 +_081A0BEC: + ldr r1, _081A0BF4 + movs r0, #1 + b _081A0BFC + .align 2, 0 +_081A0BF4: .4byte 0x02037290 +_081A0BF8: + ldr r1, _081A0C04 + movs r0, #5 +_081A0BFC: + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_081A0C04: .4byte 0x02037290 + thumb_func_end sub_081A0B88 + + thumb_func_start sub_081A0C08 +sub_081A0C08: @ 0x081A0C08 + push {r4, lr} + ldr r0, _081A0C3C + ldrh r0, [r0] + cmp r0, #0 + beq _081A0C36 + ldr r4, _081A0C40 + ldr r0, _081A0C44 + ldr r2, [r0] + adds r2, #0xb2 + ldrb r3, [r2] + lsls r0, r3, #0x1d + lsrs r0, r0, #0x1d + movs r1, #1 + ldrb r4, [r4] + lsls r1, r4 + orrs r1, r0 + movs r0, #7 + ands r1, r0 + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] +_081A0C36: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081A0C3C: .4byte 0x02037282 +_081A0C40: .4byte 0x02037284 +_081A0C44: .4byte 0x03005AF0 + thumb_func_end sub_081A0C08 + + thumb_func_start sub_081A0C48 +sub_081A0C48: @ 0x081A0C48 + push {lr} + ldr r0, _081A0C80 + ldr r3, [r0] + adds r0, r3, #0 + adds r0, #0xb1 + ldrb r0, [r0] + lsls r1, r0, #0x1a + lsrs r0, r1, #0x1c + cmp r0, #2 + bls _081A0C96 + subs r0, #3 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _081A0C84 + ldrh r0, [r0] + cmp r0, #0 + beq _081A0C88 + lsls r2, r2, #2 + adds r2, r3, r2 + adds r2, #0xb8 + ldrb r1, [r2] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2] + b _081A0C96 + .align 2, 0 +_081A0C80: .4byte 0x03005AF0 +_081A0C84: .4byte 0x02037282 +_081A0C88: + lsls r0, r2, #2 + adds r0, r3, r0 + adds r0, #0xb8 + ldrb r2, [r0] + movs r1, #0x3f + ands r1, r2 + strb r1, [r0] +_081A0C96: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081A0C48 + + thumb_func_start sub_081A0C9C +sub_081A0C9C: @ 0x081A0C9C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + movs r5, #0 + movs r2, #0 + ldr r1, _081A0D4C + ldr r0, [r1] + adds r0, #0xb8 + ldrb r0, [r0] + lsls r0, r0, #0x1e + ldr r3, _081A0D50 + mov sb, r3 + cmp r0, #0 + beq _081A0CDC + adds r3, r1, #0 +_081A0CBC: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #8 + bhi _081A0CDC + ldr r0, [r3] + lsls r1, r2, #2 + adds r0, r0, r1 + adds r0, #0xb8 + ldrb r0, [r0] + lsls r0, r0, #0x1e + cmp r0, #0 + bne _081A0CBC +_081A0CDC: + mov r4, sb + movs r0, #8 + bl AllocZeroed + adds r7, r0, #0 + str r7, [r4] + ldr r0, _081A0D54 + ldrh r0, [r0] + cmp r0, #2 + bne _081A0D5C + ldr r0, _081A0D4C + ldr r0, [r0] + mov ip, r0 + mov r6, ip + adds r6, #0xb1 + ldrb r0, [r6] + lsls r1, r0, #0x1a + lsrs r0, r1, #0x1c + cmp r0, #2 + bls _081A0D06 + b _081A0EA8 +_081A0D06: + mov r3, ip + adds r3, #0xb4 + adds r0, r3, r0 + ldrb r0, [r0] + lsrs r5, r0, #4 + ldr r4, _081A0D58 + lsls r2, r5, #1 + mov r5, ip + adds r5, #0xb0 + ldrb r1, [r5] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #4 + adds r2, r2, r0 + adds r4, #0xc + adds r2, r2, r4 + ldrh r0, [r2] + strh r0, [r7, #2] + ldrb r0, [r6] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1c + adds r3, r3, r0 + ldrb r0, [r3] + movs r1, #0xf + ands r1, r0 + lsls r1, r1, #1 + ldrb r2, [r5] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #4 + adds r1, r1, r0 + adds r1, r1, r4 + ldrh r0, [r1] + b _081A0EA6 + .align 2, 0 +_081A0D4C: .4byte 0x03005AF0 +_081A0D50: .4byte 0x03006030 +_081A0D54: .4byte 0x02037282 +_081A0D58: .4byte 0x085DC21C +_081A0D5C: + cmp r0, #3 + bne _081A0E2C + ldr r0, _081A0E24 + mov r8, r0 + ldr r4, [r0] + movs r1, #0xb1 + adds r1, r1, r4 + mov ip, r1 + ldrb r0, [r1] + lsls r2, r0, #0x1a + lsrs r0, r2, #0x1c + cmp r0, #2 + bhi _081A0D78 + b _081A0EA8 +_081A0D78: + adds r1, r0, #0 + adds r0, r5, #3 + cmp r1, r0 + blt _081A0D82 + b _081A0EA8 +_081A0D82: + adds r0, r1, #0 + subs r0, #3 + lsls r0, r0, #2 + adds r0, r4, r0 + adds r0, #0xb8 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #2 + beq _081A0D98 + b _081A0EA8 +_081A0D98: + adds r0, r1, #0 + subs r0, #3 + lsls r0, r0, #2 + adds r0, r4, r0 + adds r0, #0xb8 + ldrb r0, [r0] + lsls r0, r0, #0x1c + lsrs r6, r0, #0x1e + adds r0, r4, #0 + adds r0, #0xb2 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + asrs r1, r6 + movs r0, #1 + ands r1, r0 + adds r0, r4, #0 + adds r0, #0xb4 + adds r0, r0, r6 + ldrb r5, [r0] + lsls r1, r1, #2 + asrs r5, r1 + movs r0, #0xf + ands r5, r0 + ldr r3, _081A0E28 + lsls r2, r5, #1 + adds r0, r4, #0 + adds r0, #0xb0 + ldrb r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #4 + adds r2, r2, r0 + adds r3, #0xc + adds r2, r2, r3 + ldrh r0, [r2] + strh r0, [r7] + mov r3, ip + ldrb r0, [r3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1c + subs r0, #3 + lsls r0, r0, #2 + adds r0, r4, r0 + adds r0, #0xb8 + ldrb r2, [r0] + lsls r2, r2, #0x1a + lsrs r2, r2, #0x1e + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_081A0160 + mov r1, sb + ldr r2, [r1] + strh r0, [r2, #4] + mov r3, r8 + ldr r1, [r3] + adds r0, r1, #0 + adds r0, #0xb1 + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1c + subs r0, #3 + lsls r0, r0, #2 + adds r1, r1, r0 + adds r1, #0xba + ldrh r0, [r1] + strh r0, [r2, #6] + b _081A0EA8 + .align 2, 0 +_081A0E24: .4byte 0x03005AF0 +_081A0E28: .4byte 0x085DC21C +_081A0E2C: + cmp r0, #4 + bne _081A0EA8 + ldr r0, _081A0EB4 + ldr r4, [r0] + adds r0, r4, #0 + adds r0, #0xb1 + ldrb r0, [r0] + lsls r2, r0, #0x1a + lsrs r0, r2, #0x1c + cmp r0, #2 + bls _081A0EA8 + adds r1, r0, #0 + adds r0, r5, #3 + cmp r1, r0 + bge _081A0EA8 + adds r0, r1, #0 + subs r0, #3 + lsls r0, r0, #2 + adds r0, r4, r0 + adds r0, #0xb8 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _081A0EA8 + adds r0, r1, #0 + subs r0, #3 + lsls r0, r0, #2 + adds r0, r4, r0 + adds r0, #0xb8 + ldrb r0, [r0] + lsls r0, r0, #0x1c + lsrs r6, r0, #0x1e + adds r0, r4, #0 + adds r0, #0xb2 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + asrs r1, r6 + movs r0, #1 + ands r1, r0 + adds r0, r4, #0 + adds r0, #0xb4 + adds r0, r0, r6 + ldrb r2, [r0] + lsls r1, r1, #2 + asrs r2, r1 + movs r0, #0xf + ands r2, r0 + ldr r3, _081A0EB8 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r0, #0xb0 + ldrb r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #4 + adds r2, r2, r0 + adds r3, #0xc + adds r2, r2, r3 + ldrh r0, [r2] +_081A0EA6: + strh r0, [r7] +_081A0EA8: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A0EB4: .4byte 0x03005AF0 +_081A0EB8: .4byte 0x085DC21C + thumb_func_end sub_081A0C9C + + thumb_func_start sub_081A0EBC +sub_081A0EBC: @ 0x081A0EBC + push {r4, lr} + ldr r4, _081A0ED0 + ldr r0, [r4] + bl Free + movs r0, #0 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081A0ED0: .4byte 0x03006030 + thumb_func_end sub_081A0EBC + + thumb_func_start sub_081A0ED4 +sub_081A0ED4: @ 0x081A0ED4 + push {r4, r5, r6, r7, lr} + sub sp, #0x10 + ldr r0, _081A0EEC + ldrh r0, [r0] + cmp r0, #1 + beq _081A0F00 + cmp r0, #1 + bgt _081A0EF0 + cmp r0, #0 + beq _081A0EF6 + b _081A10F2 + .align 2, 0 +_081A0EEC: .4byte 0x02037282 +_081A0EF0: + cmp r0, #2 + beq _081A0F08 + b _081A10F2 +_081A0EF6: + ldr r5, _081A0EFC + b _081A0F0A + .align 2, 0 +_081A0EFC: .4byte 0x02021C40 +_081A0F00: + ldr r5, _081A0F04 + b _081A0F0A + .align 2, 0 +_081A0F04: .4byte 0x02021C54 +_081A0F08: + ldr r5, _081A0F20 +_081A0F0A: + ldr r0, _081A0F24 + ldrh r0, [r0] + cmp r0, #9 + bls _081A0F14 + b _081A10F2 +_081A0F14: + lsls r0, r0, #2 + ldr r1, _081A0F28 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081A0F20: .4byte 0x02021C68 +_081A0F24: .4byte 0x02037284 +_081A0F28: .4byte 0x081A0F2C +_081A0F2C: @ jump table + .4byte _081A0F54 @ case 0 + .4byte _081A0F70 @ case 1 + .4byte _081A0F8C @ case 2 + .4byte _081A0FA8 @ case 3 + .4byte _081A0FC0 @ case 4 + .4byte _081A0FD8 @ case 5 + .4byte _081A0FFC @ case 6 + .4byte _081A106C @ case 7 + .4byte _081A1048 @ case 8 + .4byte _081A108C @ case 9 +_081A0F54: + ldr r0, _081A0F68 + ldr r0, [r0] + ldrh r0, [r0] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + ldr r0, _081A0F6C + adds r1, r1, r0 + b _081A107C + .align 2, 0 +_081A0F68: .4byte 0x03006030 +_081A0F6C: .4byte 0x082EA31C +_081A0F70: + ldr r0, _081A0F84 + ldr r0, [r0] + ldrh r0, [r0, #2] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + ldr r0, _081A0F88 + adds r1, r1, r0 + b _081A107C + .align 2, 0 +_081A0F84: .4byte 0x03006030 +_081A0F88: .4byte 0x082EA31C +_081A0F8C: + ldr r0, _081A0FA0 + ldr r0, [r0] + ldrh r0, [r0] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + ldr r0, _081A0FA4 + adds r1, r1, r0 + b _081A107C + .align 2, 0 +_081A0FA0: .4byte 0x03006030 +_081A0FA4: .4byte 0x082EA31C +_081A0FA8: + ldr r0, _081A0FB8 + ldr r0, [r0] + ldrh r1, [r0, #4] + lsls r1, r1, #3 + ldr r0, _081A0FBC + adds r1, r1, r0 + b _081A107C + .align 2, 0 +_081A0FB8: .4byte 0x03006030 +_081A0FBC: .4byte 0x082EACC4 +_081A0FC0: + ldr r0, _081A0FD0 + ldr r0, [r0] + ldrh r1, [r0, #6] + lsls r1, r1, #3 + ldr r0, _081A0FD4 + adds r1, r1, r0 + b _081A107C + .align 2, 0 +_081A0FD0: .4byte 0x03006030 +_081A0FD4: .4byte 0x082EACC4 +_081A0FD8: + ldr r0, _081A0FF8 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0xb1 + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1c + subs r0, #3 + lsls r0, r0, #2 + adds r1, r1, r0 + adds r1, #0xba + ldrh r0, [r1] + bl ItemId_GetName + adds r1, r0, #0 + b _081A107C + .align 2, 0 +_081A0FF8: .4byte 0x03005AF0 +_081A0FFC: + movs r3, #0 + ldr r7, _081A1040 + ldr r6, _081A1044 + ldr r0, [r7] + adds r4, r0, #0 + adds r4, #0xb0 +_081A1008: + mov r0, sp + adds r2, r0, r3 + ldrb r1, [r4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #4 + adds r0, r3, r0 + adds r0, r0, r6 + ldrb r0, [r0] + strb r0, [r2] + cmp r0, #0xff + beq _081A102A + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #6 + bls _081A1008 +_081A102A: + cmp r3, #3 + bne _081A1034 + mov r1, sp + movs r0, #0xff + strb r0, [r1, #3] +_081A1034: + adds r0, r5, #0 + mov r1, sp + bl StringCopy + b _081A10F2 + .align 2, 0 +_081A1040: .4byte 0x03005AF0 +_081A1044: .4byte 0x085DC21C +_081A1048: + ldr r0, _081A105C + ldr r0, [r0] + adds r0, #0xb1 + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + cmp r0, #1 + bne _081A1064 + ldr r1, _081A1060 + b _081A107C + .align 2, 0 +_081A105C: .4byte 0x03005AF0 +_081A1060: .4byte 0x085CAB0D +_081A1064: + ldr r1, _081A1068 + b _081A107C + .align 2, 0 +_081A1068: .4byte 0x085CAB13 +_081A106C: + ldr r0, _081A1084 + ldr r0, [r0] + movs r1, #0x82 + lsls r1, r1, #1 + adds r0, r0, r1 + bl FrontierSpeechToString + ldr r1, _081A1088 +_081A107C: + adds r0, r5, #0 + bl StringCopy + b _081A10F2 + .align 2, 0 +_081A1084: .4byte 0x03005AF0 +_081A1088: .4byte 0x02021C7C +_081A108C: + ldr r0, _081A10C4 + ldr r3, [r0] + adds r1, r3, #0 + adds r1, #0xb1 + ldrb r1, [r1] + lsls r4, r1, #0x18 + lsrs r1, r4, #0x1e + adds r7, r0, #0 + cmp r1, #2 + bhi _081A10C8 + adds r0, r3, #0 + adds r0, #0xb4 + adds r0, r0, r1 + ldrb r2, [r0] + adds r0, r3, #0 + adds r0, #0xb2 + ldrb r0, [r0] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1d + asrs r0, r1 + movs r1, #1 + ands r0, r1 + lsls r0, r0, #2 + asrs r2, r0 + movs r0, #0xf + ands r2, r0 + b _081A10CA + .align 2, 0 +_081A10C4: .4byte 0x03005AF0 +_081A10C8: + movs r2, #0 +_081A10CA: + ldr r3, _081A10FC + lsls r2, r2, #1 + ldr r0, [r7] + adds r0, #0xb0 + ldrb r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #4 + adds r2, r2, r0 + adds r3, #0xc + adds r2, r2, r3 + ldrh r0, [r2] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + ldr r0, _081A1100 + adds r1, r1, r0 + adds r0, r5, #0 + bl StringCopy +_081A10F2: + add sp, #0x10 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A10FC: .4byte 0x085DC21C +_081A1100: .4byte 0x082EA31C + thumb_func_end sub_081A0ED4 + + thumb_func_start sub_081A1104 +sub_081A1104: @ 0x081A1104 + ldr r0, _081A111C + ldr r2, [r0] + ldr r0, _081A1120 + ldrb r1, [r0] + adds r2, #0xb1 + lsls r1, r1, #6 + ldrb r3, [r2] + movs r0, #0x3f + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + bx lr + .align 2, 0 +_081A111C: .4byte 0x03005AF0 +_081A1120: .4byte 0x02037282 + thumb_func_end sub_081A1104 + + thumb_func_start sub_081A1124 +sub_081A1124: @ 0x081A1124 + push {lr} + bl sub_081AA9A0 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081A1124 + + thumb_func_start sub_081A1130 +sub_081A1130: @ 0x081A1130 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r1, _081A1208 + ldr r3, [r1] + adds r0, r3, #0 + adds r0, #0xb1 + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1c + adds r7, r1, #0 + cmp r0, #2 + bhi _081A114E + b _081A126E +_081A114E: + movs r5, #0 + movs r2, #0 + adds r0, r3, #0 + adds r0, #0xb8 + ldrb r0, [r0] + lsls r0, r0, #0x1e + ldr r1, _081A120C + mov ip, r1 + ldr r1, _081A1210 + mov r8, r1 + cmp r0, #0 + beq _081A1188 + adds r3, r7, #0 +_081A1168: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #8 + bhi _081A1188 + ldr r0, [r3] + lsls r1, r2, #2 + adds r0, r0, r1 + adds r0, #0xb8 + ldrb r0, [r0] + lsls r0, r0, #0x1e + cmp r0, #0 + bne _081A1168 +_081A1188: + movs r4, #0 + cmp r4, r5 + bhs _081A122E + ldr r0, [r7] + adds r0, #0xb1 + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1c + subs r0, #3 + cmp r4, r0 + bge _081A122E + adds r6, r7, #0 + mov sb, r4 +_081A11A2: + ldr r3, [r6] + lsls r0, r4, #2 + adds r2, r3, r0 + adds r0, r2, #0 + adds r0, #0xb8 + ldrb r1, [r0] + lsls r0, r1, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _081A1214 + lsrs r0, r1, #6 + cmp r0, #0 + beq _081A1214 + adds r0, r2, #0 + adds r0, #0xba + ldrh r0, [r0] + mov r2, ip + ldrh r2, [r2] + cmp r0, r2 + bne _081A1214 + adds r0, r3, #0 + adds r0, #0xb1 + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1c + subs r0, #3 + lsls r0, r0, #2 + adds r0, r3, r0 + adds r0, #0xb8 + ldrb r2, [r0] + movs r1, #0x3f + ands r1, r2 + strb r1, [r0] + ldr r1, [r6] + adds r0, r1, #0 + adds r0, #0xb1 + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1c + subs r0, #3 + lsls r0, r0, #2 + adds r1, r1, r0 + mov r2, ip + ldrh r0, [r2] + adds r1, #0xba + strh r0, [r1] + mov r1, sb + mov r0, r8 + strh r1, [r0] + b _081A126E + .align 2, 0 +_081A1208: .4byte 0x03005AF0 +_081A120C: .4byte 0x02037282 +_081A1210: .4byte 0x02037290 +_081A1214: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r5 + bhs _081A122E + ldr r0, [r6] + adds r0, #0xb1 + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1c + subs r0, #3 + cmp r4, r0 + blt _081A11A2 +_081A122E: + ldr r2, [r7] + adds r0, r2, #0 + adds r0, #0xb1 + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1c + subs r0, #3 + lsls r0, r0, #2 + adds r2, r2, r0 + adds r2, #0xb8 + ldrb r1, [r2] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2] + ldr r1, [r7] + adds r0, r1, #0 + adds r0, #0xb1 + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1c + subs r0, #3 + lsls r0, r0, #2 + adds r1, r1, r0 + mov r2, ip + ldrh r0, [r2] + adds r1, #0xba + strh r0, [r1] + movs r0, #1 + mov r1, r8 + strh r0, [r1] +_081A126E: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081A1130 + + thumb_func_start sub_081A127C +sub_081A127C: @ 0x081A127C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _081A12C0 + ldr r1, [r0] + movs r2, #0x8a + lsls r2, r2, #1 + adds r1, r1, r2 + ldrb r1, [r1] + adds r4, r0, #0 + cmp r1, #0xff + beq _081A132E + movs r5, #0 +_081A129A: + ldr r1, [r4] + adds r2, r5, #1 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r3, r1, r0 + movs r5, #0x8a + lsls r5, r5, #1 + adds r0, r3, r5 + ldrb r0, [r0] + cmp r0, #0xff + bne _081A12C4 + adds r0, r3, #0 + adds r0, #0xdc + adds r1, #0xdc + movs r2, #0x44 + bl memcpy + b _081A132E + .align 2, 0 +_081A12C0: .4byte 0x03005AF0 +_081A12C4: + adds r5, r2, #0 + cmp r5, #2 + ble _081A129A + ldr r0, _081A133C + mov sl, r0 + movs r2, #1 + rsbs r2, r2, #0 + mov sb, r2 + movs r5, #1 + ldr r7, _081A1340 + movs r0, #0x90 + lsls r0, r0, #1 + mov r8, r0 + movs r6, #0x44 +_081A12E0: + ldr r0, [r7] + add r0, r8 + adds r0, #0x34 + bl GetTrainerId + adds r4, r0, #0 + ldr r0, [r7] + adds r0, #0xa + bl GetTrainerId + cmp r4, r0 + bne _081A1308 + ldr r0, [r7] + adds r0, r0, r6 + adds r0, #0xde + ldrb r0, [r0] + cmp r0, sl + bge _081A1308 + mov sl, r0 + mov sb, r5 +_081A1308: + movs r2, #0x44 + add r8, r2 + adds r6, #0x44 + adds r5, #1 + cmp r5, #3 + ble _081A12E0 + mov r5, sb + cmp r5, #0 + ble _081A132E + ldr r0, _081A1340 + ldr r1, [r0] + lsls r0, r5, #4 + add r0, sb + lsls r0, r0, #2 + adds r0, r1, r0 + adds r0, #0xdc + adds r1, #0xdc + bl memcpy +_081A132E: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A133C: .4byte 0x0000FFFF +_081A1340: .4byte 0x03005AF0 + thumb_func_end sub_081A127C + + thumb_func_start sub_081A1344 +sub_081A1344: @ 0x081A1344 + push {r4, r5, lr} + ldr r4, _081A1384 + ldr r2, [r4] + adds r0, r2, #0 + adds r0, #0xb0 + ldrb r0, [r0] + adds r2, #0xdc + movs r1, #0x1f + ands r1, r0 + ldrb r3, [r2] + movs r0, #0x20 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldr r2, [r4] + adds r0, r2, #0 + adds r0, #0xb1 + ldrb r1, [r0] + lsls r1, r1, #0x1e + adds r2, #0xdc + lsrs r1, r1, #0x19 + ldrb r3, [r2] + movs r0, #0x61 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + movs r2, #0 + ldr r0, [r4] + b _081A1398 + .align 2, 0 +_081A1384: .4byte 0x03005AF0 +_081A1388: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #8 + bhi _081A13A2 + ldr r0, [r4] + lsls r1, r2, #2 + adds r0, r0, r1 +_081A1398: + adds r0, #0xb8 + ldrb r0, [r0] + lsls r0, r0, #0x1e + cmp r0, #0 + bne _081A1388 +_081A13A2: + ldr r4, _081A140C + ldr r0, [r4] + adds r0, #0xdd + strb r2, [r0] + ldr r0, [r4] + adds r1, r0, #0 + adds r1, #0xde + ldrb r0, [r1] + cmp r0, #0xfe + bhi _081A13BA + adds r0, #1 + strb r0, [r1] +_081A13BA: + ldr r0, [r4] + adds r0, #0xdd + ldrb r0, [r0] + bl sub_081A026C + movs r2, #0 + adds r3, r4, #0 + movs r4, #0x88 + lsls r4, r4, #1 + adds r5, r3, #0 +_081A13CE: + ldr r0, [r3] + adds r1, r0, r4 + adds r1, r1, r2 + adds r0, #0xa + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #3 + bls _081A13CE + ldr r1, [r5] + movs r2, #0x8a + lsls r2, r2, #1 + adds r0, r1, r2 + bl StringCopy + ldr r1, [r5] + ldr r0, _081A1410 + ldrb r0, [r0] + ldr r2, _081A1414 + adds r1, r1, r2 + strb r0, [r1] + ldr r0, [r5] + adds r0, #0xdc + bl CalcApprenticeChecksum + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081A140C: .4byte 0x03005AF0 +_081A1410: .4byte 0x0829BDA5 +_081A1414: .4byte 0x0000011B + thumb_func_end sub_081A1344 + + thumb_func_start sub_081A1418 +sub_081A1418: @ 0x081A1418 + push {lr} + ldr r2, _081A1460 + ldr r0, _081A1464 + ldr r0, [r0] + adds r0, #0xdc + ldrb r1, [r0] + lsls r1, r1, #0x1b + lsrs r1, r1, #0x1b + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #4 + adds r0, r0, r2 + ldrb r2, [r0, #0xa] + movs r1, #0 + ldr r3, _081A1468 + ldrb r0, [r3] + cmp r0, r2 + beq _081A144E +_081A143C: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x1d + bhi _081A144E + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _081A143C +_081A144E: + cmp r1, #0x1e + beq _081A1474 + ldr r0, _081A146C + adds r0, r1, r0 + ldrb r1, [r0] + ldr r0, _081A1470 + bl VarSet + b _081A14A0 + .align 2, 0 +_081A1460: .4byte 0x085DC21C +_081A1464: .4byte 0x03005AF0 +_081A1468: .4byte 0x085BBE20 +_081A146C: .4byte 0x085BBE52 +_081A1470: .4byte 0x00004010 +_081A1474: + movs r1, #0 + ldr r3, _081A14A4 + ldrb r0, [r3] + cmp r0, r2 + beq _081A1490 +_081A147E: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x13 + bhi _081A1490 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _081A147E +_081A1490: + cmp r1, #0x14 + beq _081A14A0 + ldr r0, _081A14A8 + adds r0, r1, r0 + ldrb r1, [r0] + ldr r0, _081A14AC + bl VarSet +_081A14A0: + pop {r0} + bx r0 + .align 2, 0 +_081A14A4: .4byte 0x085BBE3E +_081A14A8: .4byte 0x085BBE70 +_081A14AC: .4byte 0x00004010 + thumb_func_end sub_081A1418 + + thumb_func_start Script_SetPlayerApprenticeTrainerGfxId +Script_SetPlayerApprenticeTrainerGfxId: @ 0x081A14B0 + push {lr} + ldr r2, _081A14F4 + ldr r0, _081A14F8 + ldr r0, [r0] + adds r0, #0xb0 + ldrb r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #4 + adds r0, r0, r2 + ldrb r2, [r0, #0xa] + movs r1, #0 + ldr r3, _081A14FC + ldrb r0, [r3] + cmp r0, r2 + beq _081A14E2 +_081A14D0: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x1d + bhi _081A14E2 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _081A14D0 +_081A14E2: + cmp r1, #0x1e + beq _081A1508 + ldr r0, _081A1500 + adds r0, r1, r0 + ldrb r1, [r0] + ldr r0, _081A1504 + bl VarSet + b _081A1534 + .align 2, 0 +_081A14F4: .4byte 0x085DC21C +_081A14F8: .4byte 0x03005AF0 +_081A14FC: .4byte 0x085BBE20 +_081A1500: .4byte 0x085BBE52 +_081A1504: .4byte 0x00004010 +_081A1508: + movs r1, #0 + ldr r3, _081A1538 + ldrb r0, [r3] + cmp r0, r2 + beq _081A1524 +_081A1512: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x13 + bhi _081A1524 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _081A1512 +_081A1524: + cmp r1, #0x14 + beq _081A1534 + ldr r0, _081A153C + adds r0, r1, r0 + ldrb r1, [r0] + ldr r0, _081A1540 + bl VarSet +_081A1534: + pop {r0} + bx r0 + .align 2, 0 +_081A1538: .4byte 0x085BBE3E +_081A153C: .4byte 0x085BBE70 +_081A1540: .4byte 0x00004010 + thumb_func_end Script_SetPlayerApprenticeTrainerGfxId + + thumb_func_start sub_081A1544 +sub_081A1544: @ 0x081A1544 + ldr r1, _081A154C + movs r0, #1 + strh r0, [r1] + bx lr + .align 2, 0 +_081A154C: .4byte 0x02037280 + thumb_func_end sub_081A1544 + + thumb_func_start sub_081A1550 +sub_081A1550: @ 0x081A1550 + ldr r1, _081A1558 + movs r0, #1 + strh r0, [r1] + bx lr + .align 2, 0 +_081A1558: .4byte 0x02037280 + thumb_func_end sub_081A1550 + + thumb_func_start sub_081A155C +sub_081A155C: @ 0x081A155C + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _081A1580 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _081A1576 + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081A157C +_081A1576: + adds r0, r2, #0 + bl SwitchTaskToFollowupFunc +_081A157C: + pop {r0} + bx r0 + .align 2, 0 +_081A1580: .4byte 0x03002360 + thumb_func_end sub_081A155C + + thumb_func_start Task_ExecuteFuncAfterButtonPress +Task_ExecuteFuncAfterButtonPress: @ 0x081A1584 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _081A15C8 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _081A159E + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081A15C0 +_081A159E: + ldr r2, _081A15CC + ldr r1, _081A15D0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #8] + movs r3, #0xa + ldrsh r0, [r0, r3] + lsls r0, r0, #0x10 + orrs r1, r0 + str r1, [r2] + bl _call_via_r1 + adds r0, r4, #0 + bl DestroyTask +_081A15C0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081A15C8: .4byte 0x03002360 +_081A15CC: .4byte 0x03006034 +_081A15D0: .4byte 0x03005B60 + thumb_func_end Task_ExecuteFuncAfterButtonPress + + thumb_func_start ExecuteFuncAfterButtonPress +ExecuteFuncAfterButtonPress: @ 0x081A15D4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _081A15FC + movs r1, #1 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _081A1600 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #8] + lsrs r4, r4, #0x10 + strh r4, [r1, #0xa] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081A15FC: .4byte 0x081A1585 +_081A1600: .4byte 0x03005B60 + thumb_func_end ExecuteFuncAfterButtonPress + + thumb_func_start sub_081A1604 +sub_081A1604: @ 0x081A1604 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _081A1624 + adds r0, r4, #0 + movs r1, #1 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r4, #0 + adds r2, r5, #0 + bl SetTaskFuncWithFollowupFunc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081A1624: .4byte 0x081A155D + thumb_func_end sub_081A1604 + diff --git a/asm/bard_music.s b/asm/bard_music.s new file mode 100644 index 0000000..6b333e9 --- /dev/null +++ b/asm/bard_music.s @@ -0,0 +1,117 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start CalcWordPitch +CalcWordPitch: @ 0x0817C69C + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r3, #0 + strh r3, [r0, #0x16] + subs r1, #1 + strh r1, [r0, #0x18] + strh r2, [r0, #0x1a] + strh r3, [r0, #0x1c] + bx lr + .align 2, 0 + thumb_func_end CalcWordPitch + + thumb_func_start GetWordPhonemes +GetWordPhonemes: @ 0x0817C6B0 + push {r4, lr} + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _0817C6E0 + lsls r0, r1, #1 + adds r0, #1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r4, #0x14] + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r0, [r1] + movs r2, #0 + ldrsh r1, [r1, r2] + movs r2, #2 + rsbs r2, r2, #0 + cmp r1, r2 + bne _0817C6E8 + ldr r0, _0817C6E4 + bl m4aMPlayStop + b _0817C6F0 + .align 2, 0 +_0817C6E0: .4byte 0x085D2B4C +_0817C6E4: .4byte 0x03007510 +_0817C6E8: + cmp r1, r2 + blt _0817C6F8 + cmp r1, #0 + bgt _0817C6F8 +_0817C6F0: + ldrh r0, [r4, #0x1c] + adds r0, #1 + strh r0, [r4, #0x1c] + b _0817C6FC +_0817C6F8: + bl m4aSongNumStart +_0817C6FC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end GetWordPhonemes + + thumb_func_start GetWordSounds +GetWordSounds: @ 0x0817C704 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r1, #0x1c + ldrsh r0, [r6, r1] + cmp r0, #0 + beq _0817C716 + movs r0, #0 + strh r0, [r6, #0x1c] + b _0817C74E +_0817C716: + ldr r4, _0817C75C + ldr r5, _0817C760 + ldrh r2, [r6, #0x14] + adds r0, r4, #0 + adds r1, r5, #0 + bl m4aMPlayVolumeControl + ldr r2, _0817C764 + movs r3, #0x18 + ldrsh r1, [r6, r3] + lsls r0, r1, #2 + adds r0, r0, r1 + movs r3, #0x1a + ldrsh r1, [r6, r3] + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, [r0] + movs r2, #0x16 + ldrsh r0, [r6, r2] + lsls r0, r0, #1 + adds r0, r0, r1 + movs r3, #0 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + adds r1, r5, #0 + bl m4aMPlayPitchControl +_0817C74E: + ldrh r0, [r6, #0x16] + adds r0, #1 + strh r0, [r6, #0x16] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0817C75C: .4byte 0x03007510 +_0817C760: .4byte 0x0000FFFF +_0817C764: .4byte 0x085D2AC0 + thumb_func_end GetWordSounds + diff --git a/asm/battle_ai_script_commands.s b/asm/battle_ai_script_commands.s new file mode 100644 index 0000000..1467c7a --- /dev/null +++ b/asm/battle_ai_script_commands.s @@ -0,0 +1,6656 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start BattleAI_HandleItemUseBeforeAISetup +BattleAI_HandleItemUseBeforeAISetup: @ 0x08130920 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r1, _08130990 + ldr r0, [r1] + ldr r3, [r0, #0x18] + movs r4, #0 + mov ip, r1 + ldr r2, _08130994 + movs r1, #0 +_08130934: + adds r0, r3, r4 + strb r1, [r0] + adds r4, #1 + cmp r4, #0x53 + bls _08130934 + ldr r0, [r2] + ldr r1, _08130998 + ands r0, r1 + cmp r0, #8 + bne _08130982 + movs r4, #0 + ldr r6, _0813099C + ldr r5, _081309A0 +_0813094E: + lsls r1, r4, #1 + ldrh r0, [r6] + lsls r0, r0, #5 + adds r1, r1, r0 + adds r1, r1, r5 + ldrh r3, [r1] + cmp r3, #0 + beq _0813097C + mov r0, ip + ldr r2, [r0] + ldr r1, [r2, #0x18] + adds r0, r1, #0 + adds r0, #0x50 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r1, #0x48 + adds r1, r1, r0 + strh r3, [r1] + ldr r1, [r2, #0x18] + adds r1, #0x50 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0813097C: + adds r4, #1 + cmp r4, #3 + ble _0813094E +_08130982: + adds r0, r7, #0 + bl BattleAI_SetupAIData + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08130990: .4byte 0x0202414C +_08130994: .4byte 0x02022C90 +_08130998: .4byte 0x0A7F098A +_0813099C: .4byte 0x0203886A +_081309A0: .4byte 0x082E3846 + thumb_func_end BattleAI_HandleItemUseBeforeAISetup + + thumb_func_start BattleAI_SetupAIData +BattleAI_SetupAIData: @ 0x081309A4 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _081309DC + ldr r0, [r0] + ldr r1, [r0, #0x14] + movs r4, #0 + ldr r6, _081309E0 + movs r3, #0 +_081309B6: + adds r0, r1, r4 + strb r3, [r0] + adds r4, #1 + cmp r4, #0x1b + bls _081309B6 + movs r4, #0 + ldr r3, _081309DC + movs r5, #1 +_081309C6: + adds r1, r2, #0 + ands r1, r5 + cmp r1, #0 + beq _081309E4 + ldr r0, [r3] + ldr r0, [r0, #0x14] + adds r0, #4 + adds r0, r0, r4 + movs r1, #0x64 + b _081309EC + .align 2, 0 +_081309DC: .4byte 0x0202414C +_081309E0: .4byte 0x02023D08 +_081309E4: + ldr r0, [r3] + ldr r0, [r0, #0x14] + adds r0, #4 + adds r0, r0, r4 +_081309EC: + strb r1, [r0] + lsrs r2, r2, #1 + adds r4, #1 + cmp r4, #3 + ble _081309C6 + ldrb r0, [r6] + movs r1, #0 + movs r2, #0xff + bl CheckMoveLimitations + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r4, #0 + ldr r5, _08130A98 +_08130A08: + ldr r7, _08130A9C + lsls r0, r4, #2 + adds r0, r0, r7 + ldr r0, [r0] + ands r0, r6 + cmp r0, #0 + beq _08130A22 + ldr r0, [r5] + ldr r0, [r0, #0x14] + adds r0, #4 + adds r0, r0, r4 + movs r1, #0 + strb r1, [r0] +_08130A22: + bl Random + ldr r1, [r5] + ldr r2, [r1, #0x14] + adds r2, #0x18 + adds r2, r2, r4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xf + ands r0, r1 + movs r1, #0x64 + subs r1, r1, r0 + strb r1, [r2] + adds r4, #1 + cmp r4, #3 + ble _08130A08 + ldr r0, _08130A98 + ldr r0, [r0] + ldr r0, [r0, #0x1c] + adds r0, #0x20 + movs r1, #0 + strb r1, [r0] + ldr r0, _08130AA0 + ldr r6, _08130AA4 + ldrb r2, [r6] + strb r2, [r0] + ldr r0, _08130AA8 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08130AB4 + ldr r5, _08130AAC + bl Random + adds r4, r0, #0 + ldrb r0, [r6] + bl GetBattlerSide + movs r3, #2 + adds r1, r3, #0 + ands r1, r4 + movs r2, #1 + eors r0, r2 + adds r1, r1, r0 + strb r1, [r5] + ldr r0, _08130AB0 + ldrb r1, [r0] + ldrb r2, [r5] + lsls r0, r2, #2 + adds r0, r0, r7 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _08130ABC + eors r2, r3 + strb r2, [r5] + b _08130ABC + .align 2, 0 +_08130A98: .4byte 0x0202414C +_08130A9C: .4byte 0x082FACB4 +_08130AA0: .4byte 0x0203A808 +_08130AA4: .4byte 0x02023D08 +_08130AA8: .4byte 0x02022C90 +_08130AAC: .4byte 0x02023EB0 +_08130AB0: .4byte 0x02023EB4 +_08130AB4: + ldr r0, _08130AD0 + movs r1, #1 + eors r1, r2 + strb r1, [r0] +_08130ABC: + ldr r0, _08130AD4 + ldr r1, [r0] + movs r0, #0x80 + lsls r0, r0, #0x11 + ands r0, r1 + cmp r0, #0 + beq _08130AD8 + bl GetAiScriptsInRecordedBattle + b _08130B3A + .align 2, 0 +_08130AD0: .4byte 0x02023EB0 +_08130AD4: .4byte 0x02022C90 +_08130AD8: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08130AF4 + ldr r0, _08130AF0 + ldr r0, [r0] + ldr r1, [r0, #0x14] + movs r0, #0x80 + lsls r0, r0, #0x17 + str r0, [r1, #0xc] + b _08130BBA + .align 2, 0 +_08130AF0: .4byte 0x0202414C +_08130AF4: + movs r0, #0x80 + lsls r0, r0, #3 + ands r0, r1 + cmp r0, #0 + beq _08130B10 + ldr r0, _08130B0C + ldr r0, [r0] + ldr r1, [r0, #0x14] + movs r0, #0x80 + lsls r0, r0, #0x16 + str r0, [r1, #0xc] + b _08130BBA + .align 2, 0 +_08130B0C: .4byte 0x0202414C +_08130B10: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08130B2C + ldr r0, _08130B28 + ldr r0, [r0] + ldr r1, [r0, #0x14] + movs r0, #0x80 + lsls r0, r0, #0x18 + str r0, [r1, #0xc] + b _08130BBA + .align 2, 0 +_08130B28: .4byte 0x0202414C +_08130B2C: + movs r0, #0x80 + lsls r0, r0, #0xc + ands r0, r1 + cmp r0, #0 + beq _08130B48 + bl GetAiScriptsInBattleFactory +_08130B3A: + ldr r1, _08130B44 + ldr r1, [r1] + ldr r1, [r1, #0x14] + str r0, [r1, #0xc] + b _08130BBA + .align 2, 0 +_08130B44: .4byte 0x0202414C +_08130B48: + ldr r0, _08130B5C + ands r0, r1 + cmp r0, #0 + beq _08130B64 + ldr r0, _08130B60 + ldr r0, [r0] + ldr r1, [r0, #0x14] + movs r0, #7 + str r0, [r1, #0xc] + b _08130BBA + .align 2, 0 +_08130B5C: .4byte 0x0C3F0900 +_08130B60: .4byte 0x0202414C +_08130B64: + movs r0, #0x80 + lsls r0, r0, #8 + ands r1, r0 + cmp r1, #0 + beq _08130BA4 + ldr r0, _08130B94 + ldr r0, [r0] + ldr r3, [r0, #0x14] + ldr r2, _08130B98 + ldr r0, _08130B9C + ldrh r1, [r0] + lsls r1, r1, #5 + adds r2, #0x14 + adds r1, r1, r2 + ldr r0, _08130BA0 + ldrh r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r2 + ldr r1, [r1] + ldr r0, [r0] + orrs r1, r0 + str r1, [r3, #0xc] + b _08130BBA + .align 2, 0 +_08130B94: .4byte 0x0202414C +_08130B98: .4byte 0x082E383C +_08130B9C: .4byte 0x0203886A +_08130BA0: .4byte 0x0203886C +_08130BA4: + ldr r0, _08130BDC + ldr r0, [r0] + ldr r2, [r0, #0x14] + ldr r1, _08130BE0 + ldr r0, _08130BE4 + ldrh r0, [r0] + lsls r0, r0, #5 + adds r1, #0x14 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r2, #0xc] +_08130BBA: + ldr r0, _08130BE8 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08130BD4 + ldr r0, _08130BDC + ldr r0, [r0] + ldr r2, [r0, #0x14] + ldr r0, [r2, #0xc] + movs r1, #0x80 + orrs r0, r1 + str r0, [r2, #0xc] +_08130BD4: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08130BDC: .4byte 0x0202414C +_08130BE0: .4byte 0x082E383C +_08130BE4: .4byte 0x0203886A +_08130BE8: .4byte 0x02022C90 + thumb_func_end BattleAI_SetupAIData + + thumb_func_start BattleAI_ChooseMoveOrAction +BattleAI_ChooseMoveOrAction: @ 0x08130BEC + push {lr} + ldr r0, _08130C00 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08130C04 + bl ChooseMoveOrAction_Doubles + b _08130C08 + .align 2, 0 +_08130C00: .4byte 0x02022C90 +_08130C04: + bl ChooseMoveOrAction_Singles +_08130C08: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + thumb_func_end BattleAI_ChooseMoveOrAction + + thumb_func_start ChooseMoveOrAction_Singles +ChooseMoveOrAction_Singles: @ 0x08130C10 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + bl RecordLastUsedMoveByTarget + ldr r1, _08130C78 + ldr r0, [r1] + ldr r0, [r0, #0x14] + ldr r0, [r0, #0xc] + cmp r0, #0 + beq _08130C60 + adds r4, r1, #0 + movs r5, #0 +_08130C2C: + ldr r0, [r4] + ldr r2, [r0, #0x14] + ldr r0, [r2, #0xc] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08130C40 + strb r5, [r2] + bl BattleAI_DoAIProcessing +_08130C40: + ldr r0, [r4] + ldr r1, [r0, #0x14] + ldr r0, [r1, #0xc] + lsrs r0, r0, #1 + str r0, [r1, #0xc] + ldrb r0, [r1, #0x11] + adds r0, #1 + strb r0, [r1, #0x11] + ldr r0, [r4] + ldr r0, [r0, #0x14] + strb r5, [r0, #1] + ldr r0, [r4] + ldr r0, [r0, #0x14] + ldr r0, [r0, #0xc] + cmp r0, #0 + bne _08130C2C +_08130C60: + ldr r1, _08130C78 + ldr r0, [r1] + ldr r3, [r0, #0x14] + ldrb r2, [r3, #0x10] + movs r0, #2 + ands r0, r2 + mov ip, r1 + cmp r0, #0 + beq _08130C7C + movs r0, #4 + b _08130D14 + .align 2, 0 +_08130C78: .4byte 0x0202414C +_08130C7C: + movs r0, #4 + ands r0, r2 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _08130C8C + movs r0, #5 + b _08130D14 +_08130C8C: + movs r6, #1 + mov r1, sp + ldrb r0, [r3, #4] + strb r0, [r1] + add r0, sp, #4 + strb r2, [r0] + movs r3, #1 + mov r8, r0 + ldr r1, _08130D20 + ldr r0, _08130D24 + ldrb r2, [r0] + mov r5, sp + mov r7, r8 + movs r0, #0x58 + muls r0, r2, r0 + adds r1, r1, r0 + adds r4, r1, #0 + adds r4, #0xe +_08130CB0: + ldrh r0, [r4] + cmp r0, #0 + beq _08130CFA + ldrb r1, [r5] + mov r2, ip + ldr r0, [r2] + ldr r0, [r0, #0x14] + adds r0, #4 + adds r2, r0, r3 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r1, r0 + bne _08130CDE + mov r0, sp + adds r1, r0, r6 + ldrb r0, [r2] + strb r0, [r1] + adds r1, r6, #0 + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r1, r7, r1 + strb r3, [r1] +_08130CDE: + ldrb r1, [r5] + mov r2, ip + ldr r0, [r2] + ldr r0, [r0, #0x14] + adds r0, #4 + adds r2, r0, r3 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r1, r0 + bge _08130CFA + movs r6, #1 + ldrb r0, [r2] + strb r0, [r5] + strb r3, [r7] +_08130CFA: + adds r4, #2 + adds r3, #1 + cmp r3, #3 + ble _08130CB0 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r6, #0 + bl __modsi3 + add r0, r8 + ldrb r0, [r0] +_08130D14: + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08130D20: .4byte 0x02023D28 +_08130D24: .4byte 0x0203A808 + thumb_func_end ChooseMoveOrAction_Singles + + thumb_func_start ChooseMoveOrAction_Doubles +ChooseMoveOrAction_Doubles: @ 0x08130D28 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x24 + movs r0, #0 + mov r8, r0 + mov r1, sp + adds r1, #0xc + str r1, [sp, #0x1c] + mov r2, sp + adds r2, #8 + str r2, [sp, #0x18] + str r1, [sp, #0x20] + mov sl, sp +_08130D48: + ldr r0, _08130D70 + ldrb r0, [r0] + cmp r8, r0 + beq _08130D62 + movs r0, #0x58 + mov r7, r8 + muls r7, r0, r7 + adds r0, r7, #0 + ldr r1, _08130D74 + adds r0, r0, r1 + ldrh r0, [r0, #0x28] + cmp r0, #0 + bne _08130D7C +_08130D62: + movs r0, #0xff + ldr r2, [sp, #0x20] + strb r0, [r2] + ldr r0, _08130D78 + mov r7, sl + strh r0, [r7] + b _08130EE2 + .align 2, 0 +_08130D70: .4byte 0x0203A808 +_08130D74: .4byte 0x02023D28 +_08130D78: .4byte 0x0000FFFF +_08130D7C: + ldr r0, _08130D9C + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xa + ands r0, r1 + cmp r0, #0 + beq _08130DA4 + ldr r0, _08130DA0 + ldr r0, [r0] + adds r0, #0x92 + ldrb r0, [r0] + lsrs r0, r0, #4 + bl BattleAI_SetupAIData + b _08130DAA + .align 2, 0 +_08130D9C: .4byte 0x02022C90 +_08130DA0: .4byte 0x02024140 +_08130DA4: + movs r0, #0xf + bl BattleAI_SetupAIData +_08130DAA: + ldr r0, _08130E24 + mov r1, r8 + strb r1, [r0] + movs r1, #1 + mov r2, r8 + ands r2, r1 + ldr r0, _08130E28 + ldrb r0, [r0] + ands r1, r0 + cmp r2, r1 + beq _08130DC4 + bl RecordLastUsedMoveByTarget +_08130DC4: + ldr r2, _08130E2C + ldr r0, [r2] + ldr r0, [r0, #0x14] + movs r1, #0 + strb r1, [r0, #0x11] + ldr r0, [r2] + ldr r0, [r0, #0x14] + strb r1, [r0, #1] + ldr r0, [r2] + ldr r0, [r0, #0x14] + ldr r4, [r0, #0xc] + mov sb, r2 + cmp r4, #0 + beq _08130E0C + mov r5, sb + movs r6, #0 +_08130DE4: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _08130DF6 + ldr r0, [r5] + ldr r0, [r0, #0x14] + strb r6, [r0] + bl BattleAI_DoAIProcessing +_08130DF6: + asrs r4, r4, #1 + ldr r0, [r5] + ldr r1, [r0, #0x14] + ldrb r0, [r1, #0x11] + adds r0, #1 + strb r0, [r1, #0x11] + ldr r0, [r5] + ldr r0, [r0, #0x14] + strb r6, [r0, #1] + cmp r4, #0 + bne _08130DE4 +_08130E0C: + mov r2, sb + ldr r0, [r2] + ldr r3, [r0, #0x14] + ldrb r1, [r3, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08130E30 + movs r0, #4 + ldr r7, [sp, #0x20] + strb r0, [r7] + b _08130EE2 + .align 2, 0 +_08130E24: .4byte 0x02023EB0 +_08130E28: .4byte 0x0203A808 +_08130E2C: .4byte 0x0202414C +_08130E30: + movs r0, #4 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _08130E44 + movs r0, #5 + ldr r1, [sp, #0x20] + strb r0, [r1] + b _08130EE2 +_08130E44: + add r1, sp, #0x10 + ldrb r0, [r3, #4] + strb r0, [r1] + add r0, sp, #0x14 + strb r2, [r0] + movs r5, #1 + movs r3, #1 + adds r6, r1, #0 + ldr r0, _08130F6C + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + ldr r2, _08130F70 + adds r0, r0, r2 + adds r4, r0, #2 + add r7, sp, #0x14 +_08130E64: + ldrh r0, [r4] + cmp r0, #0 + beq _08130EA6 + ldrb r1, [r6] + mov r2, sb + ldr r0, [r2] + ldr r0, [r0, #0x14] + adds r0, #4 + adds r2, r0, r3 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r1, r0 + bne _08130E8A + adds r0, r6, r5 + ldrb r1, [r2] + strb r1, [r0] + adds r0, r7, r5 + strb r3, [r0] + adds r5, #1 +_08130E8A: + ldrb r1, [r6] + mov r2, sb + ldr r0, [r2] + ldr r0, [r0, #0x14] + adds r0, #4 + adds r2, r0, r3 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r1, r0 + bge _08130EA6 + ldrb r0, [r2] + strb r0, [r6] + strb r3, [r7] + movs r5, #1 +_08130EA6: + adds r4, #2 + adds r3, #1 + cmp r3, #3 + ble _08130E64 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r5, #0 + bl __modsi3 + add r0, sp + adds r0, #0x14 + ldrb r0, [r0] + ldr r7, [sp, #0x20] + strb r0, [r7] + ldrb r2, [r6] + mov r0, sl + strh r2, [r0] + ldr r0, _08130F6C + ldrb r1, [r0] + movs r0, #2 + eors r0, r1 + cmp r8, r0 + bne _08130EE2 + cmp r2, #0x63 + bgt _08130EE2 + ldr r0, _08130F74 + mov r1, sl + strh r0, [r1] +_08130EE2: + ldr r2, [sp, #0x20] + adds r2, #1 + str r2, [sp, #0x20] + movs r7, #2 + add sl, r7 + movs r0, #1 + add r8, r0 + mov r1, r8 + cmp r1, #3 + bgt _08130EF8 + b _08130D48 +_08130EF8: + mov r0, sp + ldrh r5, [r0] + movs r0, #0 + ldr r2, [sp, #0x18] + strb r0, [r2] + movs r4, #1 + mov r8, r4 + ldr r6, _08130F78 + ldr r3, [sp, #0x18] + mov r1, sp + adds r1, #2 +_08130F0E: + lsls r0, r5, #0x10 + asrs r2, r0, #0x10 + movs r7, #0 + ldrsh r0, [r1, r7] + cmp r2, r0 + bne _08130F22 + adds r0, r3, r4 + mov r7, r8 + strb r7, [r0] + adds r4, #1 +_08130F22: + movs r7, #0 + ldrsh r0, [r1, r7] + cmp r2, r0 + bge _08130F32 + ldrh r5, [r1] + mov r0, r8 + strb r0, [r3] + movs r4, #1 +_08130F32: + adds r1, #2 + movs r2, #1 + add r8, r2 + mov r7, r8 + cmp r7, #3 + ble _08130F0E + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r4, #0 + bl __modsi3 + ldr r1, [sp, #0x18] + adds r0, r1, r0 + ldrb r0, [r0] + strb r0, [r6] + ldrb r0, [r6] + ldr r2, [sp, #0x1c] + adds r0, r2, r0 + ldrb r0, [r0] + add sp, #0x24 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08130F6C: .4byte 0x0203A808 +_08130F70: .4byte 0x02023D34 +_08130F74: .4byte 0x0000FFFF +_08130F78: .4byte 0x02023EB0 + thumb_func_end ChooseMoveOrAction_Doubles + + thumb_func_start BattleAI_DoAIProcessing +BattleAI_DoAIProcessing: @ 0x08130F7C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r7, _08130FF4 + ldr r0, [r7] + ldr r0, [r0, #0x14] + ldrb r0, [r0] + adds r6, r7, #0 + cmp r0, #2 + bne _08130F94 + b _0813109A +_08130F94: + mov sb, r7 + ldr r0, _08130FF8 + mov r8, r0 +_08130F9A: + mov r1, sb + ldr r0, [r1] + ldr r2, [r0, #0x14] + ldrb r0, [r2] + cmp r0, #1 + beq _08131008 + cmp r0, #1 + bgt _0813108E + cmp r0, #0 + bne _0813108E + ldr r1, _08130FFC + ldrb r0, [r2, #0x11] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + mov r1, r8 + str r0, [r1] + ldr r5, _08131000 + ldrb r4, [r2, #1] + ldr r0, _08131004 + ldrb r1, [r0] + movs r0, #0x58 + adds r3, r1, #0 + muls r3, r0, r3 + adds r0, r4, r3 + adds r1, r5, #0 + adds r1, #0x24 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _08130FE4 + lsls r0, r4, #1 + adds r0, r0, r3 + adds r1, r5, #0 + adds r1, #0xc + adds r0, r0, r1 + ldrh r0, [r0] +_08130FE4: + strh r0, [r2, #2] + ldr r0, [r6] + ldr r1, [r0, #0x14] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0813108E + .align 2, 0 +_08130FF4: .4byte 0x0202414C +_08130FF8: .4byte 0x0203A804 +_08130FFC: .4byte 0x0828A480 +_08131000: .4byte 0x02023D28 +_08131004: .4byte 0x0203A808 +_08131008: + ldrh r1, [r2, #2] + cmp r1, #0 + beq _08131028 + ldr r1, _08131024 + mov r2, r8 + ldr r0, [r2] + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + b _0813103E + .align 2, 0 +_08131024: .4byte 0x0858F64C +_08131028: + adds r0, r2, #4 + ldrb r2, [r2, #1] + adds r0, r0, r2 + strb r1, [r0] + mov r1, sb + ldr r0, [r1] + ldr r2, [r0, #0x14] + ldrb r1, [r2, #0x10] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #0x10] +_0813103E: + ldr r2, _08131074 + ldr r0, [r2] + ldr r3, [r0, #0x14] + ldrb r1, [r3, #0x10] + movs r0, #1 + ands r0, r1 + adds r6, r2, #0 + cmp r0, #0 + beq _0813108E + ldrb r0, [r3, #1] + adds r0, #1 + strb r0, [r3, #1] + ldr r0, [r6] + ldr r2, [r0, #0x14] + ldrb r0, [r2, #1] + cmp r0, #3 + bhi _08131078 + ldrb r1, [r2, #0x10] + movs r0, #8 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _08131078 + strb r0, [r2] + b _08131082 + .align 2, 0 +_08131074: .4byte 0x0202414C +_08131078: + ldr r0, [r6] + ldr r1, [r0, #0x14] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_08131082: + ldr r0, [r6] + ldr r2, [r0, #0x14] + ldrb r1, [r2, #0x10] + movs r0, #0xfe + ands r0, r1 + strb r0, [r2, #0x10] +_0813108E: + ldr r0, [r7] + ldr r0, [r0, #0x14] + ldrb r0, [r0] + cmp r0, #2 + beq _0813109A + b _08130F9A +_0813109A: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BattleAI_DoAIProcessing + + thumb_func_start RecordLastUsedMoveByTarget +RecordLastUsedMoveByTarget: @ 0x081310A8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r7, #0 + ldr r4, _081310F4 + ldr r0, [r4] + ldr r2, [r0, #0x18] + ldr r3, _081310F8 + ldrb r1, [r3] + lsls r0, r1, #4 + adds r2, r2, r0 + ldr r5, _081310FC + lsls r1, r1, #1 + adds r1, r1, r5 + ldrh r0, [r2] + mov r8, r4 + mov ip, r3 + ldrh r1, [r1] + cmp r0, r1 + beq _08131118 + adds r6, r5, #0 + movs r5, #0 +_081310D4: + mov r1, r8 + ldr r0, [r1] + ldr r4, [r0, #0x18] + mov r0, ip + ldrb r1, [r0] + lsls r3, r1, #4 + adds r0, r5, r3 + adds r2, r4, r0 + ldrh r0, [r2] + cmp r0, #0 + bne _08131100 + lsls r0, r1, #1 + adds r0, r0, r6 + ldrh r0, [r0] + strh r0, [r2] + b _08131118 + .align 2, 0 +_081310F4: .4byte 0x0202414C +_081310F8: .4byte 0x02023EB0 +_081310FC: .4byte 0x02023EEC +_08131100: + adds r5, #2 + adds r7, #1 + cmp r7, #3 + bgt _08131118 + adds r0, r5, r3 + adds r0, r4, r0 + lsls r1, r1, #1 + adds r1, r1, r6 + ldrh r0, [r0] + ldrh r1, [r1] + cmp r0, r1 + bne _081310D4 +_08131118: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordLastUsedMoveByTarget + + thumb_func_start ClearBattlerMoveHistory +ClearBattlerMoveHistory: @ 0x08131124 + push {r4, lr} + lsls r0, r0, #0x18 + ldr r4, _08131148 + movs r3, #0 + lsrs r1, r0, #0x14 + movs r2, #3 +_08131130: + ldr r0, [r4] + ldr r0, [r0, #0x18] + adds r0, r0, r1 + strh r3, [r0] + adds r1, #2 + subs r2, #1 + cmp r2, #0 + bge _08131130 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08131148: .4byte 0x0202414C + thumb_func_end ClearBattlerMoveHistory + + thumb_func_start RecordAbilityBattle +RecordAbilityBattle: @ 0x0813114C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08131160 + ldr r2, [r2] + ldr r2, [r2, #0x18] + adds r2, #0x40 + adds r2, r2, r0 + strb r1, [r2] + bx lr + .align 2, 0 +_08131160: .4byte 0x0202414C + thumb_func_end RecordAbilityBattle + + thumb_func_start ClearBattlerAbilityHistory +ClearBattlerAbilityHistory: @ 0x08131164 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08131178 + ldr r1, [r1] + ldr r1, [r1, #0x18] + adds r1, #0x40 + adds r1, r1, r0 + movs r0, #0 + strb r0, [r1] + bx lr + .align 2, 0 +_08131178: .4byte 0x0202414C + thumb_func_end ClearBattlerAbilityHistory + + thumb_func_start RecordItemEffectBattle +RecordItemEffectBattle: @ 0x0813117C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08131190 + ldr r2, [r2] + ldr r2, [r2, #0x18] + adds r2, #0x44 + adds r2, r2, r0 + strb r1, [r2] + bx lr + .align 2, 0 +_08131190: .4byte 0x0202414C + thumb_func_end RecordItemEffectBattle + + thumb_func_start ClearBattlerItemEffectHistory +ClearBattlerItemEffectHistory: @ 0x08131194 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081311A8 + ldr r1, [r1] + ldr r1, [r1, #0x18] + adds r1, #0x44 + adds r1, r1, r0 + movs r0, #0 + strb r0, [r1] + bx lr + .align 2, 0 +_081311A8: .4byte 0x0202414C + thumb_func_end ClearBattlerItemEffectHistory + + thumb_func_start BattleAICmd_if_random_less_than +BattleAICmd_if_random_less_than: @ 0x081311AC + push {lr} + bl Random + lsls r0, r0, #0x10 + movs r1, #0xff + lsls r1, r1, #0x10 + ldr r3, _081311E0 + ldr r2, [r3] + ands r1, r0 + lsrs r1, r1, #0x10 + ldrb r0, [r2, #1] + cmp r1, r0 + bhs _081311E4 + ldrb r1, [r2, #2] + ldrb r0, [r2, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _081311E8 + .align 2, 0 +_081311E0: .4byte 0x0203A804 +_081311E4: + adds r0, r2, #6 + str r0, [r3] +_081311E8: + pop {r0} + bx r0 + thumb_func_end BattleAICmd_if_random_less_than + + thumb_func_start BattleAICmd_if_random_greater_than +BattleAICmd_if_random_greater_than: @ 0x081311EC + push {lr} + bl Random + lsls r0, r0, #0x10 + movs r1, #0xff + lsls r1, r1, #0x10 + ldr r3, _08131220 + ldr r2, [r3] + ands r1, r0 + lsrs r1, r1, #0x10 + ldrb r0, [r2, #1] + cmp r1, r0 + bls _08131224 + ldrb r1, [r2, #2] + ldrb r0, [r2, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08131228 + .align 2, 0 +_08131220: .4byte 0x0203A804 +_08131224: + adds r0, r2, #6 + str r0, [r3] +_08131228: + pop {r0} + bx r0 + thumb_func_end BattleAICmd_if_random_greater_than + + thumb_func_start BattleAICmd_if_random_equal +BattleAICmd_if_random_equal: @ 0x0813122C + push {lr} + bl Random + lsls r0, r0, #0x10 + movs r1, #0xff + lsls r1, r1, #0x10 + ldr r3, _08131260 + ldr r2, [r3] + ands r1, r0 + lsrs r1, r1, #0x10 + ldrb r0, [r2, #1] + cmp r1, r0 + bne _08131264 + ldrb r1, [r2, #2] + ldrb r0, [r2, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08131268 + .align 2, 0 +_08131260: .4byte 0x0203A804 +_08131264: + adds r0, r2, #6 + str r0, [r3] +_08131268: + pop {r0} + bx r0 + thumb_func_end BattleAICmd_if_random_equal + + thumb_func_start BattleAICmd_if_random_not_equal +BattleAICmd_if_random_not_equal: @ 0x0813126C + push {lr} + bl Random + lsls r0, r0, #0x10 + movs r1, #0xff + lsls r1, r1, #0x10 + ldr r3, _081312A0 + ldr r2, [r3] + ands r1, r0 + lsrs r1, r1, #0x10 + ldrb r0, [r2, #1] + cmp r1, r0 + beq _081312A4 + ldrb r1, [r2, #2] + ldrb r0, [r2, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _081312A8 + .align 2, 0 +_081312A0: .4byte 0x0203A804 +_081312A4: + adds r0, r2, #6 + str r0, [r3] +_081312A8: + pop {r0} + bx r0 + thumb_func_end BattleAICmd_if_random_not_equal + + thumb_func_start BattleAICmd_score +BattleAICmd_score: @ 0x081312AC + push {r4, lr} + ldr r2, _081312E8 + ldr r0, [r2] + ldr r0, [r0, #0x14] + adds r1, r0, #4 + ldrb r0, [r0, #1] + adds r1, r1, r0 + ldr r3, _081312EC + ldr r0, [r3] + ldrb r0, [r0, #1] + ldrb r4, [r1] + adds r0, r0, r4 + strb r0, [r1] + ldr r0, [r2] + ldr r1, [r0, #0x14] + adds r0, r1, #4 + ldrb r1, [r1, #1] + adds r1, r0, r1 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bge _081312DC + movs r0, #0 + strb r0, [r1] +_081312DC: + ldr r0, [r3] + adds r0, #2 + str r0, [r3] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081312E8: .4byte 0x0202414C +_081312EC: .4byte 0x0203A804 + thumb_func_end BattleAICmd_score + + thumb_func_start BattleAICmd_if_hp_less_than +BattleAICmd_if_hp_less_than: @ 0x081312F0 + push {r4, lr} + ldr r0, _08131304 + ldr r1, [r0] + ldrb r1, [r1, #1] + adds r4, r0, #0 + cmp r1, #1 + bne _0813130C + ldr r0, _08131308 + b _0813130E + .align 2, 0 +_08131304: .4byte 0x0203A804 +_08131308: .4byte 0x0203A808 +_0813130C: + ldr r0, _08131344 +_0813130E: + ldrb r1, [r0] + ldr r2, _08131348 + movs r0, #0x58 + muls r1, r0, r1 + adds r1, r1, r2 + ldrh r2, [r1, #0x28] + movs r0, #0x64 + muls r0, r2, r0 + ldrh r1, [r1, #0x2c] + bl __divsi3 + ldr r2, [r4] + ldrb r1, [r2, #2] + cmp r0, r1 + bhs _0813134C + ldrb r1, [r2, #3] + ldrb r0, [r2, #4] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #6] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _08131350 + .align 2, 0 +_08131344: .4byte 0x02023EB0 +_08131348: .4byte 0x02023D28 +_0813134C: + adds r0, r2, #7 + str r0, [r4] +_08131350: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BattleAICmd_if_hp_less_than + + thumb_func_start BattleAICmd_if_hp_more_than +BattleAICmd_if_hp_more_than: @ 0x08131358 + push {r4, lr} + ldr r0, _0813136C + ldr r1, [r0] + ldrb r1, [r1, #1] + adds r4, r0, #0 + cmp r1, #1 + bne _08131374 + ldr r0, _08131370 + b _08131376 + .align 2, 0 +_0813136C: .4byte 0x0203A804 +_08131370: .4byte 0x0203A808 +_08131374: + ldr r0, _081313AC +_08131376: + ldrb r1, [r0] + ldr r2, _081313B0 + movs r0, #0x58 + muls r1, r0, r1 + adds r1, r1, r2 + ldrh r2, [r1, #0x28] + movs r0, #0x64 + muls r0, r2, r0 + ldrh r1, [r1, #0x2c] + bl __divsi3 + ldr r2, [r4] + ldrb r1, [r2, #2] + cmp r0, r1 + bls _081313B4 + ldrb r1, [r2, #3] + ldrb r0, [r2, #4] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #6] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _081313B8 + .align 2, 0 +_081313AC: .4byte 0x02023EB0 +_081313B0: .4byte 0x02023D28 +_081313B4: + adds r0, r2, #7 + str r0, [r4] +_081313B8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BattleAICmd_if_hp_more_than + + thumb_func_start BattleAICmd_if_hp_equal +BattleAICmd_if_hp_equal: @ 0x081313C0 + push {r4, lr} + ldr r0, _081313D4 + ldr r1, [r0] + ldrb r1, [r1, #1] + adds r4, r0, #0 + cmp r1, #1 + bne _081313DC + ldr r0, _081313D8 + b _081313DE + .align 2, 0 +_081313D4: .4byte 0x0203A804 +_081313D8: .4byte 0x0203A808 +_081313DC: + ldr r0, _08131414 +_081313DE: + ldrb r1, [r0] + ldr r2, _08131418 + movs r0, #0x58 + muls r1, r0, r1 + adds r1, r1, r2 + ldrh r2, [r1, #0x28] + movs r0, #0x64 + muls r0, r2, r0 + ldrh r1, [r1, #0x2c] + bl __divsi3 + ldr r2, [r4] + ldrb r1, [r2, #2] + cmp r0, r1 + bne _0813141C + ldrb r1, [r2, #3] + ldrb r0, [r2, #4] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #6] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _08131420 + .align 2, 0 +_08131414: .4byte 0x02023EB0 +_08131418: .4byte 0x02023D28 +_0813141C: + adds r0, r2, #7 + str r0, [r4] +_08131420: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BattleAICmd_if_hp_equal + + thumb_func_start BattleAICmd_if_hp_not_equal +BattleAICmd_if_hp_not_equal: @ 0x08131428 + push {r4, lr} + ldr r0, _0813143C + ldr r1, [r0] + ldrb r1, [r1, #1] + adds r4, r0, #0 + cmp r1, #1 + bne _08131444 + ldr r0, _08131440 + b _08131446 + .align 2, 0 +_0813143C: .4byte 0x0203A804 +_08131440: .4byte 0x0203A808 +_08131444: + ldr r0, _0813147C +_08131446: + ldrb r1, [r0] + ldr r2, _08131480 + movs r0, #0x58 + muls r1, r0, r1 + adds r1, r1, r2 + ldrh r2, [r1, #0x28] + movs r0, #0x64 + muls r0, r2, r0 + ldrh r1, [r1, #0x2c] + bl __divsi3 + ldr r2, [r4] + ldrb r1, [r2, #2] + cmp r0, r1 + beq _08131484 + ldrb r1, [r2, #3] + ldrb r0, [r2, #4] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #6] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _08131488 + .align 2, 0 +_0813147C: .4byte 0x02023EB0 +_08131480: .4byte 0x02023D28 +_08131484: + adds r0, r2, #7 + str r0, [r4] +_08131488: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BattleAICmd_if_hp_not_equal + + thumb_func_start BattleAICmd_if_status +BattleAICmd_if_status: @ 0x08131490 + push {r4, r5, lr} + ldr r0, _081314A4 + ldr r1, [r0] + ldrb r1, [r1, #1] + adds r5, r0, #0 + cmp r1, #1 + bne _081314AC + ldr r0, _081314A8 + b _081314AE + .align 2, 0 +_081314A4: .4byte 0x0203A804 +_081314A8: .4byte 0x0203A808 +_081314AC: + ldr r0, _081314F0 +_081314AE: + ldrb r4, [r0] + ldr r3, [r5] + ldrb r2, [r3, #2] + ldrb r0, [r3, #3] + lsls r0, r0, #8 + orrs r2, r0 + ldrb r0, [r3, #4] + lsls r0, r0, #0x10 + orrs r2, r0 + ldrb r0, [r3, #5] + lsls r0, r0, #0x18 + orrs r2, r0 + ldr r1, _081314F4 + movs r0, #0x58 + muls r0, r4, r0 + adds r1, #0x4c + adds r0, r0, r1 + ldr r0, [r0] + ands r0, r2 + cmp r0, #0 + beq _081314F8 + ldrb r1, [r3, #6] + ldrb r0, [r3, #7] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r3, #8] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r3, #9] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r5] + b _081314FE + .align 2, 0 +_081314F0: .4byte 0x02023EB0 +_081314F4: .4byte 0x02023D28 +_081314F8: + adds r0, r3, #0 + adds r0, #0xa + str r0, [r5] +_081314FE: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end BattleAICmd_if_status + + thumb_func_start BattleAICmd_if_not_status +BattleAICmd_if_not_status: @ 0x08131504 + push {r4, r5, lr} + ldr r0, _08131518 + ldr r1, [r0] + ldrb r1, [r1, #1] + adds r5, r0, #0 + cmp r1, #1 + bne _08131520 + ldr r0, _0813151C + b _08131522 + .align 2, 0 +_08131518: .4byte 0x0203A804 +_0813151C: .4byte 0x0203A808 +_08131520: + ldr r0, _08131564 +_08131522: + ldrb r4, [r0] + ldr r3, [r5] + ldrb r2, [r3, #2] + ldrb r0, [r3, #3] + lsls r0, r0, #8 + orrs r2, r0 + ldrb r0, [r3, #4] + lsls r0, r0, #0x10 + orrs r2, r0 + ldrb r0, [r3, #5] + lsls r0, r0, #0x18 + orrs r2, r0 + ldr r1, _08131568 + movs r0, #0x58 + muls r0, r4, r0 + adds r1, #0x4c + adds r0, r0, r1 + ldr r0, [r0] + ands r0, r2 + cmp r0, #0 + bne _0813156C + ldrb r1, [r3, #6] + ldrb r0, [r3, #7] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r3, #8] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r3, #9] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r5] + b _08131572 + .align 2, 0 +_08131564: .4byte 0x02023EB0 +_08131568: .4byte 0x02023D28 +_0813156C: + adds r0, r3, #0 + adds r0, #0xa + str r0, [r5] +_08131572: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end BattleAICmd_if_not_status + + thumb_func_start BattleAICmd_if_status2 +BattleAICmd_if_status2: @ 0x08131578 + push {r4, r5, lr} + ldr r0, _0813158C + ldr r1, [r0] + ldrb r1, [r1, #1] + adds r5, r0, #0 + cmp r1, #1 + bne _08131594 + ldr r0, _08131590 + b _08131596 + .align 2, 0 +_0813158C: .4byte 0x0203A804 +_08131590: .4byte 0x0203A808 +_08131594: + ldr r0, _081315D8 +_08131596: + ldrb r4, [r0] + ldr r3, [r5] + ldrb r2, [r3, #2] + ldrb r0, [r3, #3] + lsls r0, r0, #8 + orrs r2, r0 + ldrb r0, [r3, #4] + lsls r0, r0, #0x10 + orrs r2, r0 + ldrb r0, [r3, #5] + lsls r0, r0, #0x18 + orrs r2, r0 + ldr r1, _081315DC + movs r0, #0x58 + muls r0, r4, r0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r0, [r0] + ands r0, r2 + cmp r0, #0 + beq _081315E0 + ldrb r1, [r3, #6] + ldrb r0, [r3, #7] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r3, #8] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r3, #9] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r5] + b _081315E6 + .align 2, 0 +_081315D8: .4byte 0x02023EB0 +_081315DC: .4byte 0x02023D28 +_081315E0: + adds r0, r3, #0 + adds r0, #0xa + str r0, [r5] +_081315E6: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end BattleAICmd_if_status2 + + thumb_func_start BattleAICmd_if_not_status2 +BattleAICmd_if_not_status2: @ 0x081315EC + push {r4, r5, lr} + ldr r0, _08131600 + ldr r1, [r0] + ldrb r1, [r1, #1] + adds r5, r0, #0 + cmp r1, #1 + bne _08131608 + ldr r0, _08131604 + b _0813160A + .align 2, 0 +_08131600: .4byte 0x0203A804 +_08131604: .4byte 0x0203A808 +_08131608: + ldr r0, _0813164C +_0813160A: + ldrb r4, [r0] + ldr r3, [r5] + ldrb r2, [r3, #2] + ldrb r0, [r3, #3] + lsls r0, r0, #8 + orrs r2, r0 + ldrb r0, [r3, #4] + lsls r0, r0, #0x10 + orrs r2, r0 + ldrb r0, [r3, #5] + lsls r0, r0, #0x18 + orrs r2, r0 + ldr r1, _08131650 + movs r0, #0x58 + muls r0, r4, r0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r0, [r0] + ands r0, r2 + cmp r0, #0 + bne _08131654 + ldrb r1, [r3, #6] + ldrb r0, [r3, #7] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r3, #8] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r3, #9] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r5] + b _0813165A + .align 2, 0 +_0813164C: .4byte 0x02023EB0 +_08131650: .4byte 0x02023D28 +_08131654: + adds r0, r3, #0 + adds r0, #0xa + str r0, [r5] +_0813165A: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end BattleAICmd_if_not_status2 + + thumb_func_start BattleAICmd_if_status3 +BattleAICmd_if_status3: @ 0x08131660 + push {r4, r5, lr} + ldr r0, _08131674 + ldr r1, [r0] + ldrb r1, [r1, #1] + adds r5, r0, #0 + cmp r1, #1 + bne _0813167C + ldr r0, _08131678 + b _0813167E + .align 2, 0 +_08131674: .4byte 0x0203A804 +_08131678: .4byte 0x0203A808 +_0813167C: + ldr r0, _081316BC +_0813167E: + ldrb r4, [r0] + ldr r3, [r5] + ldrb r1, [r3, #2] + ldrb r0, [r3, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r3, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r3, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + ldr r2, _081316C0 + lsls r0, r4, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r0, r1 + cmp r0, #0 + beq _081316C4 + ldrb r1, [r3, #6] + ldrb r0, [r3, #7] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r3, #8] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r3, #9] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r5] + b _081316CA + .align 2, 0 +_081316BC: .4byte 0x02023EB0 +_081316C0: .4byte 0x02023F50 +_081316C4: + adds r0, r3, #0 + adds r0, #0xa + str r0, [r5] +_081316CA: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end BattleAICmd_if_status3 + + thumb_func_start BattleAICmd_if_not_status3 +BattleAICmd_if_not_status3: @ 0x081316D0 + push {r4, r5, lr} + ldr r0, _081316E4 + ldr r1, [r0] + ldrb r1, [r1, #1] + adds r5, r0, #0 + cmp r1, #1 + bne _081316EC + ldr r0, _081316E8 + b _081316EE + .align 2, 0 +_081316E4: .4byte 0x0203A804 +_081316E8: .4byte 0x0203A808 +_081316EC: + ldr r0, _0813172C +_081316EE: + ldrb r4, [r0] + ldr r3, [r5] + ldrb r1, [r3, #2] + ldrb r0, [r3, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r3, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r3, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + ldr r2, _08131730 + lsls r0, r4, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r0, r1 + cmp r0, #0 + bne _08131734 + ldrb r1, [r3, #6] + ldrb r0, [r3, #7] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r3, #8] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r3, #9] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r5] + b _0813173A + .align 2, 0 +_0813172C: .4byte 0x02023EB0 +_08131730: .4byte 0x02023F50 +_08131734: + adds r0, r3, #0 + adds r0, #0xa + str r0, [r5] +_0813173A: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end BattleAICmd_if_not_status3 + + thumb_func_start BattleAICmd_if_side_affecting +BattleAICmd_if_side_affecting: @ 0x08131740 + push {r4, lr} + ldr r0, _08131750 + ldr r0, [r0] + ldrb r0, [r0, #1] + cmp r0, #1 + bne _08131758 + ldr r0, _08131754 + b _0813175A + .align 2, 0 +_08131750: .4byte 0x0203A804 +_08131754: .4byte 0x0203A808 +_08131758: + ldr r0, _081317A4 +_0813175A: + ldrb r0, [r0] + bl GetBattlerPosition + movs r2, #1 + ands r2, r0 + ldr r4, _081317A8 + ldr r3, [r4] + ldrb r1, [r3, #2] + ldrb r0, [r3, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r3, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r3, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + ldr r0, _081317AC + lsls r2, r2, #1 + adds r2, r2, r0 + ldrh r0, [r2] + ands r0, r1 + cmp r0, #0 + beq _081317B0 + ldrb r1, [r3, #6] + ldrb r0, [r3, #7] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r3, #8] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r3, #9] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _081317B6 + .align 2, 0 +_081317A4: .4byte 0x02023EB0 +_081317A8: .4byte 0x0203A804 +_081317AC: .4byte 0x02023F32 +_081317B0: + adds r0, r3, #0 + adds r0, #0xa + str r0, [r4] +_081317B6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end BattleAICmd_if_side_affecting + + thumb_func_start BattleAICmd_if_not_side_affecting +BattleAICmd_if_not_side_affecting: @ 0x081317BC + push {r4, lr} + ldr r0, _081317CC + ldr r0, [r0] + ldrb r0, [r0, #1] + cmp r0, #1 + bne _081317D4 + ldr r0, _081317D0 + b _081317D6 + .align 2, 0 +_081317CC: .4byte 0x0203A804 +_081317D0: .4byte 0x0203A808 +_081317D4: + ldr r0, _08131820 +_081317D6: + ldrb r0, [r0] + bl GetBattlerPosition + movs r2, #1 + ands r2, r0 + ldr r4, _08131824 + ldr r3, [r4] + ldrb r1, [r3, #2] + ldrb r0, [r3, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r3, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r3, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + ldr r0, _08131828 + lsls r2, r2, #1 + adds r2, r2, r0 + ldrh r0, [r2] + ands r0, r1 + cmp r0, #0 + bne _0813182C + ldrb r1, [r3, #6] + ldrb r0, [r3, #7] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r3, #8] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r3, #9] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _08131832 + .align 2, 0 +_08131820: .4byte 0x02023EB0 +_08131824: .4byte 0x0203A804 +_08131828: .4byte 0x02023F32 +_0813182C: + adds r0, r3, #0 + adds r0, #0xa + str r0, [r4] +_08131832: + pop {r4} + pop {r0} + bx r0 + thumb_func_end BattleAICmd_if_not_side_affecting + + thumb_func_start BattleAICmd_if_less_than +BattleAICmd_if_less_than: @ 0x08131838 + push {lr} + ldr r0, _08131864 + ldr r0, [r0] + ldr r0, [r0, #0x14] + ldr r3, _08131868 + ldr r2, [r3] + ldr r0, [r0, #8] + ldrb r1, [r2, #1] + cmp r0, r1 + bhs _0813186C + ldrb r1, [r2, #2] + ldrb r0, [r2, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08131870 + .align 2, 0 +_08131864: .4byte 0x0202414C +_08131868: .4byte 0x0203A804 +_0813186C: + adds r0, r2, #6 + str r0, [r3] +_08131870: + pop {r0} + bx r0 + thumb_func_end BattleAICmd_if_less_than + + thumb_func_start BattleAICmd_if_more_than +BattleAICmd_if_more_than: @ 0x08131874 + push {lr} + ldr r0, _081318A0 + ldr r0, [r0] + ldr r0, [r0, #0x14] + ldr r3, _081318A4 + ldr r2, [r3] + ldr r0, [r0, #8] + ldrb r1, [r2, #1] + cmp r0, r1 + bls _081318A8 + ldrb r1, [r2, #2] + ldrb r0, [r2, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _081318AC + .align 2, 0 +_081318A0: .4byte 0x0202414C +_081318A4: .4byte 0x0203A804 +_081318A8: + adds r0, r2, #6 + str r0, [r3] +_081318AC: + pop {r0} + bx r0 + thumb_func_end BattleAICmd_if_more_than + + thumb_func_start BattleAICmd_if_equal +BattleAICmd_if_equal: @ 0x081318B0 + push {lr} + ldr r0, _081318DC + ldr r0, [r0] + ldr r0, [r0, #0x14] + ldr r3, _081318E0 + ldr r2, [r3] + ldr r0, [r0, #8] + ldrb r1, [r2, #1] + cmp r0, r1 + bne _081318E4 + ldrb r1, [r2, #2] + ldrb r0, [r2, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _081318E8 + .align 2, 0 +_081318DC: .4byte 0x0202414C +_081318E0: .4byte 0x0203A804 +_081318E4: + adds r0, r2, #6 + str r0, [r3] +_081318E8: + pop {r0} + bx r0 + thumb_func_end BattleAICmd_if_equal + + thumb_func_start BattleAICmd_if_not_equal +BattleAICmd_if_not_equal: @ 0x081318EC + push {lr} + ldr r0, _08131918 + ldr r0, [r0] + ldr r0, [r0, #0x14] + ldr r3, _0813191C + ldr r2, [r3] + ldr r0, [r0, #8] + ldrb r1, [r2, #1] + cmp r0, r1 + beq _08131920 + ldrb r1, [r2, #2] + ldrb r0, [r2, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08131924 + .align 2, 0 +_08131918: .4byte 0x0202414C +_0813191C: .4byte 0x0203A804 +_08131920: + adds r0, r2, #6 + str r0, [r3] +_08131924: + pop {r0} + bx r0 + thumb_func_end BattleAICmd_if_not_equal + + thumb_func_start BattleAICmd_if_less_than_ptr +BattleAICmd_if_less_than_ptr: @ 0x08131928 + push {lr} + ldr r3, _08131968 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + ldr r0, _0813196C + ldr r0, [r0] + ldr r0, [r0, #0x14] + ldr r0, [r0, #8] + ldrb r1, [r1] + cmp r0, r1 + bhs _08131970 + ldrb r1, [r2, #5] + ldrb r0, [r2, #6] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #7] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #8] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08131976 + .align 2, 0 +_08131968: .4byte 0x0203A804 +_0813196C: .4byte 0x0202414C +_08131970: + adds r0, r2, #0 + adds r0, #9 + str r0, [r3] +_08131976: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BattleAICmd_if_less_than_ptr + + thumb_func_start BattleAICmd_if_more_than_ptr +BattleAICmd_if_more_than_ptr: @ 0x0813197C + push {lr} + ldr r3, _081319BC + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + ldr r0, _081319C0 + ldr r0, [r0] + ldr r0, [r0, #0x14] + ldr r0, [r0, #8] + ldrb r1, [r1] + cmp r0, r1 + bls _081319C4 + ldrb r1, [r2, #5] + ldrb r0, [r2, #6] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #7] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #8] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _081319CA + .align 2, 0 +_081319BC: .4byte 0x0203A804 +_081319C0: .4byte 0x0202414C +_081319C4: + adds r0, r2, #0 + adds r0, #9 + str r0, [r3] +_081319CA: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BattleAICmd_if_more_than_ptr + + thumb_func_start BattleAICmd_if_equal_ptr +BattleAICmd_if_equal_ptr: @ 0x081319D0 + push {lr} + ldr r3, _08131A10 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + ldr r0, _08131A14 + ldr r0, [r0] + ldr r0, [r0, #0x14] + ldr r0, [r0, #8] + ldrb r1, [r1] + cmp r0, r1 + bne _08131A18 + ldrb r1, [r2, #5] + ldrb r0, [r2, #6] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #7] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #8] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08131A1E + .align 2, 0 +_08131A10: .4byte 0x0203A804 +_08131A14: .4byte 0x0202414C +_08131A18: + adds r0, r2, #0 + adds r0, #9 + str r0, [r3] +_08131A1E: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BattleAICmd_if_equal_ptr + + thumb_func_start BattleAICmd_if_not_equal_ptr +BattleAICmd_if_not_equal_ptr: @ 0x08131A24 + push {lr} + ldr r3, _08131A64 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + ldr r0, _08131A68 + ldr r0, [r0] + ldr r0, [r0, #0x14] + ldr r0, [r0, #8] + ldrb r1, [r1] + cmp r0, r1 + beq _08131A6C + ldrb r1, [r2, #5] + ldrb r0, [r2, #6] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #7] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #8] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08131A72 + .align 2, 0 +_08131A64: .4byte 0x0203A804 +_08131A68: .4byte 0x0202414C +_08131A6C: + adds r0, r2, #0 + adds r0, #9 + str r0, [r3] +_08131A72: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BattleAICmd_if_not_equal_ptr + + thumb_func_start BattleAICmd_if_move +BattleAICmd_if_move: @ 0x08131A78 + push {lr} + ldr r3, _08131AAC + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldr r0, _08131AB0 + ldr r0, [r0] + ldr r0, [r0, #0x14] + ldrh r0, [r0, #2] + cmp r0, r1 + bne _08131AB4 + ldrb r1, [r2, #3] + ldrb r0, [r2, #4] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #6] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08131AB8 + .align 2, 0 +_08131AAC: .4byte 0x0203A804 +_08131AB0: .4byte 0x0202414C +_08131AB4: + adds r0, r2, #7 + str r0, [r3] +_08131AB8: + pop {r0} + bx r0 + thumb_func_end BattleAICmd_if_move + + thumb_func_start BattleAICmd_if_not_move +BattleAICmd_if_not_move: @ 0x08131ABC + push {lr} + ldr r3, _08131AF0 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldr r0, _08131AF4 + ldr r0, [r0] + ldr r0, [r0, #0x14] + ldrh r0, [r0, #2] + cmp r0, r1 + beq _08131AF8 + ldrb r1, [r2, #3] + ldrb r0, [r2, #4] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #6] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08131AFC + .align 2, 0 +_08131AF0: .4byte 0x0203A804 +_08131AF4: .4byte 0x0202414C +_08131AF8: + adds r0, r2, #7 + str r0, [r3] +_08131AFC: + pop {r0} + bx r0 + thumb_func_end BattleAICmd_if_not_move + + thumb_func_start BattleAICmd_if_in_bytes +BattleAICmd_if_in_bytes: @ 0x08131B00 + push {r4, lr} + ldr r2, _08131B4C + ldr r1, [r2] + ldrb r3, [r1, #1] + ldrb r0, [r1, #2] + lsls r0, r0, #8 + orrs r3, r0 + ldrb r0, [r1, #3] + lsls r0, r0, #0x10 + orrs r3, r0 + ldrb r0, [r1, #4] + lsls r0, r0, #0x18 + orrs r3, r0 + ldrb r0, [r3] + cmp r0, #0xff + beq _08131B5C + ldr r0, _08131B50 + ldr r0, [r0] + ldr r0, [r0, #0x14] + ldr r1, [r0, #8] + adds r4, r2, #0 +_08131B2A: + ldrb r0, [r3] + cmp r1, r0 + bne _08131B54 + ldr r2, [r4] + ldrb r1, [r2, #5] + ldrb r0, [r2, #6] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #7] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #8] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _08131B62 + .align 2, 0 +_08131B4C: .4byte 0x0203A804 +_08131B50: .4byte 0x0202414C +_08131B54: + adds r3, #1 + ldrb r0, [r3] + cmp r0, #0xff + bne _08131B2A +_08131B5C: + ldr r0, [r2] + adds r0, #9 + str r0, [r2] +_08131B62: + pop {r4} + pop {r0} + bx r0 + thumb_func_end BattleAICmd_if_in_bytes + + thumb_func_start BattleAICmd_if_not_in_bytes +BattleAICmd_if_not_in_bytes: @ 0x08131B68 + push {r4, lr} + ldr r2, _08131BA4 + ldr r1, [r2] + ldrb r3, [r1, #1] + ldrb r0, [r1, #2] + lsls r0, r0, #8 + orrs r3, r0 + ldrb r0, [r1, #3] + lsls r0, r0, #0x10 + orrs r3, r0 + ldrb r0, [r1, #4] + lsls r0, r0, #0x18 + orrs r3, r0 + ldrb r0, [r3] + adds r4, r2, #0 + cmp r0, #0xff + beq _08131BB4 + ldr r0, _08131BA8 + ldr r0, [r0] + ldr r0, [r0, #0x14] + ldr r2, [r0, #8] + adds r1, r4, #0 +_08131B94: + ldrb r0, [r3] + cmp r2, r0 + bne _08131BAC + ldr r0, [r1] + adds r0, #9 + str r0, [r1] + b _08131BCC + .align 2, 0 +_08131BA4: .4byte 0x0203A804 +_08131BA8: .4byte 0x0202414C +_08131BAC: + adds r3, #1 + ldrb r0, [r3] + cmp r0, #0xff + bne _08131B94 +_08131BB4: + ldr r2, [r4] + ldrb r1, [r2, #5] + ldrb r0, [r2, #6] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #7] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #8] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] +_08131BCC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BattleAICmd_if_not_in_bytes + + thumb_func_start BattleAICmd_if_in_hwords +BattleAICmd_if_in_hwords: @ 0x08131BD4 + push {r4, r5, lr} + ldr r2, _08131C20 + ldr r1, [r2] + ldrb r3, [r1, #1] + ldrb r0, [r1, #2] + lsls r0, r0, #8 + orrs r3, r0 + ldrb r0, [r1, #3] + lsls r0, r0, #0x10 + orrs r3, r0 + ldrb r0, [r1, #4] + lsls r0, r0, #0x18 + orrs r3, r0 + ldrh r0, [r3] + ldr r5, _08131C24 + cmp r0, r5 + beq _08131C34 + ldr r0, _08131C28 + ldr r0, [r0] + ldr r0, [r0, #0x14] + ldr r1, [r0, #8] + adds r4, r2, #0 +_08131C00: + ldrh r0, [r3] + cmp r1, r0 + bne _08131C2C + ldr r2, [r4] + ldrb r1, [r2, #5] + ldrb r0, [r2, #6] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #7] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #8] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _08131C3A + .align 2, 0 +_08131C20: .4byte 0x0203A804 +_08131C24: .4byte 0x0000FFFF +_08131C28: .4byte 0x0202414C +_08131C2C: + adds r3, #2 + ldrh r0, [r3] + cmp r0, r5 + bne _08131C00 +_08131C34: + ldr r0, [r2] + adds r0, #9 + str r0, [r2] +_08131C3A: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end BattleAICmd_if_in_hwords + + thumb_func_start BattleAICmd_if_not_in_hwords +BattleAICmd_if_not_in_hwords: @ 0x08131C40 + push {r4, r5, lr} + ldr r2, _08131C7C + ldr r1, [r2] + ldrb r3, [r1, #1] + ldrb r0, [r1, #2] + lsls r0, r0, #8 + orrs r3, r0 + ldrb r0, [r1, #3] + lsls r0, r0, #0x10 + orrs r3, r0 + ldrb r0, [r1, #4] + lsls r0, r0, #0x18 + orrs r3, r0 + ldrh r0, [r3] + ldr r4, _08131C80 + adds r5, r2, #0 + cmp r0, r4 + beq _08131C90 + ldr r0, _08131C84 + ldr r0, [r0] + ldr r0, [r0, #0x14] + ldr r2, [r0, #8] + adds r1, r5, #0 +_08131C6E: + ldrh r0, [r3] + cmp r2, r0 + bne _08131C88 + ldr r0, [r1] + adds r0, #9 + str r0, [r1] + b _08131CA8 + .align 2, 0 +_08131C7C: .4byte 0x0203A804 +_08131C80: .4byte 0x0000FFFF +_08131C84: .4byte 0x0202414C +_08131C88: + adds r3, #2 + ldrh r0, [r3] + cmp r0, r4 + bne _08131C6E +_08131C90: + ldr r2, [r5] + ldrb r1, [r2, #5] + ldrb r0, [r2, #6] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #7] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #8] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r5] +_08131CA8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BattleAICmd_if_not_in_hwords + + thumb_func_start BattleAICmd_if_user_has_attacking_move +BattleAICmd_if_user_has_attacking_move: @ 0x08131CB0 + push {r4, r5, lr} + movs r3, #0 + ldr r4, _08131CF0 + ldr r1, _08131CF4 + ldr r0, _08131CF8 + ldrb r2, [r0] + ldr r5, _08131CFC + movs r0, #0x58 + muls r0, r2, r0 + adds r1, #0xc + adds r2, r0, r1 +_08131CC6: + ldrh r0, [r2] + cmp r0, #0 + beq _08131CDA + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrb r0, [r1, #1] + cmp r0, #0 + bne _08131CE2 +_08131CDA: + adds r2, #2 + adds r3, #1 + cmp r3, #3 + ble _08131CC6 +_08131CE2: + cmp r3, #4 + bne _08131D00 + ldr r0, [r4] + adds r0, #5 + str r0, [r4] + b _08131D18 + .align 2, 0 +_08131CF0: .4byte 0x0203A804 +_08131CF4: .4byte 0x02023D28 +_08131CF8: .4byte 0x0203A808 +_08131CFC: .4byte 0x082ED220 +_08131D00: + ldr r2, [r4] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] +_08131D18: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BattleAICmd_if_user_has_attacking_move + + thumb_func_start BattleAICmd_if_user_has_no_attacking_moves +BattleAICmd_if_user_has_no_attacking_moves: @ 0x08131D20 + push {r4, r5, lr} + movs r3, #0 + ldr r4, _08131D60 + ldr r1, _08131D64 + ldr r0, _08131D68 + ldrb r2, [r0] + ldr r5, _08131D6C + movs r0, #0x58 + muls r0, r2, r0 + adds r1, #0xc + adds r2, r0, r1 +_08131D36: + ldrh r0, [r2] + cmp r0, #0 + beq _08131D4A + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrb r0, [r1, #1] + cmp r0, #0 + bne _08131D52 +_08131D4A: + adds r2, #2 + adds r3, #1 + cmp r3, #3 + ble _08131D36 +_08131D52: + cmp r3, #4 + beq _08131D70 + ldr r0, [r4] + adds r0, #5 + str r0, [r4] + b _08131D88 + .align 2, 0 +_08131D60: .4byte 0x0203A804 +_08131D64: .4byte 0x02023D28 +_08131D68: .4byte 0x0203A808 +_08131D6C: .4byte 0x082ED220 +_08131D70: + ldr r2, [r4] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] +_08131D88: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BattleAICmd_if_user_has_no_attacking_moves + + thumb_func_start BattleAICmd_get_turn_count +BattleAICmd_get_turn_count: @ 0x08131D90 + ldr r0, _08131DA8 + ldr r0, [r0] + ldr r1, [r0, #0x14] + ldr r0, _08131DAC + ldrb r0, [r0, #0x13] + str r0, [r1, #8] + ldr r1, _08131DB0 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + bx lr + .align 2, 0 +_08131DA8: .4byte 0x0202414C +_08131DAC: .4byte 0x03005A70 +_08131DB0: .4byte 0x0203A804 + thumb_func_end BattleAICmd_get_turn_count + + thumb_func_start BattleAICmd_get_type +BattleAICmd_get_type: @ 0x08131DB4 + push {r4, lr} + ldr r1, _08131DCC + ldr r0, [r1] + ldrb r0, [r0, #1] + adds r4, r1, #0 + cmp r0, #4 + bhi _08131E8E + lsls r0, r0, #2 + ldr r1, _08131DD0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08131DCC: .4byte 0x0203A804 +_08131DD0: .4byte 0x08131DD4 +_08131DD4: @ jump table + .4byte _08131E0C @ case 0 + .4byte _08131DE8 @ case 1 + .4byte _08131E54 @ case 2 + .4byte _08131E30 @ case 3 + .4byte _08131E78 @ case 4 +_08131DE8: + ldr r0, _08131E00 + ldr r0, [r0] + ldr r3, [r0, #0x14] + ldr r2, _08131E04 + ldr r0, _08131E08 + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + adds r0, #0x21 + ldrb r0, [r0] + b _08131E8C + .align 2, 0 +_08131E00: .4byte 0x0202414C +_08131E04: .4byte 0x02023D28 +_08131E08: .4byte 0x0203A808 +_08131E0C: + ldr r0, _08131E24 + ldr r0, [r0] + ldr r3, [r0, #0x14] + ldr r2, _08131E28 + ldr r0, _08131E2C + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + adds r0, #0x21 + ldrb r0, [r0] + b _08131E8C + .align 2, 0 +_08131E24: .4byte 0x0202414C +_08131E28: .4byte 0x02023D28 +_08131E2C: .4byte 0x02023EB0 +_08131E30: + ldr r0, _08131E48 + ldr r0, [r0] + ldr r3, [r0, #0x14] + ldr r2, _08131E4C + ldr r0, _08131E50 + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + adds r0, #0x22 + ldrb r0, [r0] + b _08131E8C + .align 2, 0 +_08131E48: .4byte 0x0202414C +_08131E4C: .4byte 0x02023D28 +_08131E50: .4byte 0x0203A808 +_08131E54: + ldr r0, _08131E6C + ldr r0, [r0] + ldr r3, [r0, #0x14] + ldr r2, _08131E70 + ldr r0, _08131E74 + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + adds r0, #0x22 + ldrb r0, [r0] + b _08131E8C + .align 2, 0 +_08131E6C: .4byte 0x0202414C +_08131E70: .4byte 0x02023D28 +_08131E74: .4byte 0x02023EB0 +_08131E78: + ldr r0, _08131E9C + ldr r0, [r0] + ldr r3, [r0, #0x14] + ldr r2, _08131EA0 + ldrh r1, [r3, #2] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #2] +_08131E8C: + str r0, [r3, #8] +_08131E8E: + ldr r0, [r4] + adds r0, #2 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08131E9C: .4byte 0x0202414C +_08131EA0: .4byte 0x082ED220 + thumb_func_end BattleAICmd_get_type + + thumb_func_start BattleAI_GetWantedBattler +BattleAI_GetWantedBattler: @ 0x08131EA4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08131EB8 + ldr r0, _08131EB4 + ldrb r0, [r0] + b _08131EE0 + .align 2, 0 +_08131EB4: .4byte 0x0203A808 +_08131EB8: + cmp r0, #1 + ble _08131EC4 + cmp r0, #2 + beq _08131ED8 + cmp r0, #3 + beq _08131ED0 +_08131EC4: + ldr r0, _08131ECC + ldrb r0, [r0] + b _08131EE0 + .align 2, 0 +_08131ECC: .4byte 0x02023EB0 +_08131ED0: + ldr r0, _08131ED4 + b _08131EDA + .align 2, 0 +_08131ED4: .4byte 0x0203A808 +_08131ED8: + ldr r0, _08131EE4 +_08131EDA: + ldrb r1, [r0] + movs r0, #2 + eors r0, r1 +_08131EE0: + pop {r1} + bx r1 + .align 2, 0 +_08131EE4: .4byte 0x02023EB0 + thumb_func_end BattleAI_GetWantedBattler + + thumb_func_start BattleAICmd_is_of_type +BattleAICmd_is_of_type: @ 0x08131EE8 + push {r4, lr} + ldr r4, _08131F24 + ldr r0, [r4] + ldrb r0, [r0, #1] + bl BattleAI_GetWantedBattler + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08131F28 + movs r1, #0x58 + muls r0, r1, r0 + adds r3, r0, r2 + adds r1, r3, #0 + adds r1, #0x21 + ldr r0, [r4] + ldrb r1, [r1] + ldrb r2, [r0, #2] + cmp r1, r2 + beq _08131F18 + adds r0, r3, #0 + adds r0, #0x22 + ldrb r0, [r0] + cmp r0, r2 + bne _08131F30 +_08131F18: + ldr r0, _08131F2C + ldr r0, [r0] + ldr r1, [r0, #0x14] + movs r0, #1 + b _08131F38 + .align 2, 0 +_08131F24: .4byte 0x0203A804 +_08131F28: .4byte 0x02023D28 +_08131F2C: .4byte 0x0202414C +_08131F30: + ldr r0, _08131F48 + ldr r0, [r0] + ldr r1, [r0, #0x14] + movs r0, #0 +_08131F38: + str r0, [r1, #8] + ldr r1, _08131F4C + ldr r0, [r1] + adds r0, #3 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08131F48: .4byte 0x0202414C +_08131F4C: .4byte 0x0203A804 + thumb_func_end BattleAICmd_is_of_type + + thumb_func_start BattleAICmd_get_considered_move_power +BattleAICmd_get_considered_move_power: @ 0x08131F50 + ldr r0, _08131F70 + ldr r0, [r0] + ldr r3, [r0, #0x14] + ldr r2, _08131F74 + ldrh r1, [r3, #2] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #1] + str r0, [r3, #8] + ldr r1, _08131F78 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + bx lr + .align 2, 0 +_08131F70: .4byte 0x0202414C +_08131F74: .4byte 0x082ED220 +_08131F78: .4byte 0x0203A804 + thumb_func_end BattleAICmd_get_considered_move_power + + thumb_func_start BattleAICmd_get_how_powerful_move_is +BattleAICmd_get_how_powerful_move_is: @ 0x08131F7C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + movs r3, #0 + ldr r0, _081320BC + ldrh r1, [r0] + ldr r5, _081320C0 + ldr r6, _081320C4 + ldr r2, _081320C8 + cmp r1, r5 + beq _08131FBA + ldr r0, [r2] + ldr r0, [r0, #0x14] + ldrh r1, [r0, #2] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r4, [r0] + ldr r1, _081320BC +_08131FAA: + ldrh r0, [r1] + cmp r4, r0 + beq _08131FBA + adds r1, #2 + adds r3, #1 + ldrh r0, [r1] + cmp r0, r5 + bne _08131FAA +_08131FBA: + ldr r0, [r2] + ldr r0, [r0, #0x14] + ldrh r1, [r0, #2] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r0, [r0, #1] + cmp r0, #1 + bhi _08131FD0 + b _0813215A +_08131FD0: + lsls r0, r3, #1 + ldr r1, _081320BC + adds r0, r0, r1 + ldrh r3, [r0] + ldr r0, _081320C0 + cmp r3, r0 + beq _08131FE0 + b _0813215A +_08131FE0: + ldr r0, _081320CC + movs r1, #0 + strh r1, [r0] + ldr r0, _081320D0 + ldr r0, [r0] + strb r1, [r0, #0x13] + ldr r0, _081320D4 + movs r2, #1 + strb r2, [r0, #0xe] + ldr r0, _081320D8 + strb r1, [r0] + ldr r0, _081320DC + strb r2, [r0] + movs r6, #0 + mov sb, r3 + ldr r2, _081320BC + ldrh r2, [r2] + str r2, [sp, #0x10] +_08132004: + movs r3, #0 + ldr r5, _081320E0 + lsls r4, r6, #1 + ldr r7, _081320E4 + lsls r0, r6, #2 + mov r8, r0 + adds r1, r6, #1 + mov sl, r1 + ldr r2, [sp, #0x10] + cmp r2, sb + beq _08132048 + ldr r2, _081320C4 + ldrb r1, [r7] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r4, r0 + adds r1, r5, #0 + adds r1, #0xc + adds r0, r0, r1 + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r2, [r0] + ldr r1, _081320BC +_08132038: + ldrh r0, [r1] + cmp r2, r0 + beq _08132048 + adds r1, #2 + adds r3, #1 + ldrh r0, [r1] + cmp r0, sb + bne _08132038 +_08132048: + ldrb r1, [r7] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r4, r0 + adds r1, r5, #0 + adds r1, #0xc + adds r1, r0, r1 + ldrh r0, [r1] + cmp r0, #0 + beq _081320F4 + lsls r0, r3, #1 + ldr r2, _081320BC + adds r0, r0, r2 + ldrh r0, [r0] + cmp r0, sb + bne _081320F4 + ldr r0, _081320C4 + ldrh r2, [r1] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #1] + cmp r0, #1 + bls _081320F4 + ldr r5, _081320E8 + strh r2, [r5] + ldrb r0, [r7] + ldr r4, _081320EC + ldrb r1, [r4] + bl AI_CalcDmg + ldrh r0, [r5] + ldrb r1, [r7] + ldrb r2, [r4] + bl TypeCalc + mov r4, sp + add r4, r8 + ldr r2, _081320F0 + ldr r0, _081320C8 + ldr r0, [r0] + ldr r0, [r0, #0x14] + adds r0, #0x18 + adds r0, r0, r6 + ldrb r1, [r0] + ldr r0, [r2] + muls r0, r1, r0 + movs r1, #0x64 + bl __divsi3 + str r0, [r4] + cmp r0, #0 + bne _081320FC + movs r0, #1 + str r0, [r4] + b _081320FC + .align 2, 0 +_081320BC: .4byte 0x0858F7D8 +_081320C0: .4byte 0x0000FFFF +_081320C4: .4byte 0x082ED220 +_081320C8: .4byte 0x0202414C +_081320CC: .4byte 0x020240A4 +_081320D0: .4byte 0x02024140 +_081320D4: .4byte 0x02024118 +_081320D8: .4byte 0x02023F20 +_081320DC: .4byte 0x02023EB5 +_081320E0: .4byte 0x02023D28 +_081320E4: .4byte 0x0203A808 +_081320E8: .4byte 0x02023E8E +_081320EC: .4byte 0x02023EB0 +_081320F0: .4byte 0x02023E94 +_081320F4: + mov r1, sp + add r1, r8 + movs r0, #0 + str r0, [r1] +_081320FC: + mov r6, sl + cmp r6, #3 + bgt _08132104 + b _08132004 +_08132104: + movs r6, #0 + ldr r2, _08132148 + ldr r0, [r2] + ldr r0, [r0, #0x14] + ldrb r0, [r0, #1] + lsls r0, r0, #2 + add r0, sp + ldr r1, [sp] + ldr r0, [r0] + ldr r5, _0813214C + cmp r1, r0 + bgt _0813213A + adds r4, r2, #0 + mov r3, sp +_08132120: + adds r3, #4 + adds r6, #1 + cmp r6, #3 + bgt _0813213A + ldr r0, [r4] + ldr r0, [r0, #0x14] + ldrb r0, [r0, #1] + lsls r0, r0, #2 + add r0, sp + ldr r1, [r3] + ldr r0, [r0] + cmp r1, r0 + ble _08132120 +_0813213A: + cmp r6, #4 + bne _08132150 + ldr r0, [r2] + ldr r1, [r0, #0x14] + movs r0, #2 + str r0, [r1, #8] + b _08132164 + .align 2, 0 +_08132148: .4byte 0x0202414C +_0813214C: .4byte 0x0203A804 +_08132150: + ldr r0, [r2] + ldr r1, [r0, #0x14] + movs r0, #1 + str r0, [r1, #8] + b _08132164 +_0813215A: + ldr r0, [r2] + ldr r1, [r0, #0x14] + movs r0, #0 + str r0, [r1, #8] + ldr r5, _0813217C +_08132164: + ldr r0, [r5] + adds r0, #1 + str r0, [r5] + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0813217C: .4byte 0x0203A804 + thumb_func_end BattleAICmd_get_how_powerful_move_is + + thumb_func_start BattleAICmd_get_last_used_battler_move +BattleAICmd_get_last_used_battler_move: @ 0x08132180 + push {lr} + ldr r0, _0813219C + ldr r1, [r0] + ldrb r1, [r1, #1] + adds r3, r0, #0 + cmp r1, #1 + bne _081321AC + ldr r0, _081321A0 + ldr r0, [r0] + ldr r2, [r0, #0x14] + ldr r1, _081321A4 + ldr r0, _081321A8 + b _081321B6 + .align 2, 0 +_0813219C: .4byte 0x0203A804 +_081321A0: .4byte 0x0202414C +_081321A4: .4byte 0x02023EEC +_081321A8: .4byte 0x0203A808 +_081321AC: + ldr r0, _081321CC + ldr r0, [r0] + ldr r2, [r0, #0x14] + ldr r1, _081321D0 + ldr r0, _081321D4 +_081321B6: + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + str r0, [r2, #8] + ldr r0, [r3] + adds r0, #2 + str r0, [r3] + pop {r0} + bx r0 + .align 2, 0 +_081321CC: .4byte 0x0202414C +_081321D0: .4byte 0x02023EEC +_081321D4: .4byte 0x02023EB0 + thumb_func_end BattleAICmd_get_last_used_battler_move + + thumb_func_start BattleAICmd_if_equal_ +BattleAICmd_if_equal_: @ 0x081321D8 + push {lr} + ldr r3, _08132204 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldr r0, _08132208 + ldr r0, [r0] + ldr r0, [r0, #0x14] + ldr r0, [r0, #8] + cmp r1, r0 + bne _0813220C + ldrb r1, [r2, #2] + ldrb r0, [r2, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08132210 + .align 2, 0 +_08132204: .4byte 0x0203A804 +_08132208: .4byte 0x0202414C +_0813220C: + adds r0, r2, #6 + str r0, [r3] +_08132210: + pop {r0} + bx r0 + thumb_func_end BattleAICmd_if_equal_ + + thumb_func_start BattleAICmd_if_not_equal_ +BattleAICmd_if_not_equal_: @ 0x08132214 + push {lr} + ldr r3, _08132240 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldr r0, _08132244 + ldr r0, [r0] + ldr r0, [r0, #0x14] + ldr r0, [r0, #8] + cmp r1, r0 + beq _08132248 + ldrb r1, [r2, #2] + ldrb r0, [r2, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _0813224C + .align 2, 0 +_08132240: .4byte 0x0203A804 +_08132244: .4byte 0x0202414C +_08132248: + adds r0, r2, #6 + str r0, [r3] +_0813224C: + pop {r0} + bx r0 + thumb_func_end BattleAICmd_if_not_equal_ + + thumb_func_start BattleAICmd_if_user_goes +BattleAICmd_if_user_goes: @ 0x08132250 + push {lr} + ldr r0, _08132288 + ldrb r0, [r0] + ldr r1, _0813228C + ldrb r1, [r1] + movs r2, #1 + bl GetWhoStrikesFirst + ldr r3, _08132290 + ldr r2, [r3] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r2, #1] + cmp r0, r1 + bne _08132294 + ldrb r1, [r2, #2] + ldrb r0, [r2, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08132298 + .align 2, 0 +_08132288: .4byte 0x0203A808 +_0813228C: .4byte 0x02023EB0 +_08132290: .4byte 0x0203A804 +_08132294: + adds r0, r2, #6 + str r0, [r3] +_08132298: + pop {r0} + bx r0 + thumb_func_end BattleAICmd_if_user_goes + + thumb_func_start BattleAICmd_if_user_doesnt_go +BattleAICmd_if_user_doesnt_go: @ 0x0813229C + push {lr} + ldr r0, _081322D4 + ldrb r0, [r0] + ldr r1, _081322D8 + ldrb r1, [r1] + movs r2, #1 + bl GetWhoStrikesFirst + ldr r3, _081322DC + ldr r2, [r3] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r2, #1] + cmp r0, r1 + beq _081322E0 + ldrb r1, [r2, #2] + ldrb r0, [r2, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _081322E4 + .align 2, 0 +_081322D4: .4byte 0x0203A808 +_081322D8: .4byte 0x02023EB0 +_081322DC: .4byte 0x0203A804 +_081322E0: + adds r0, r2, #6 + str r0, [r3] +_081322E4: + pop {r0} + bx r0 + thumb_func_end BattleAICmd_if_user_doesnt_go + + thumb_func_start BattleAICmd_nullsub_2B +BattleAICmd_nullsub_2B: @ 0x081322E8 + bx lr + .align 2, 0 + thumb_func_end BattleAICmd_nullsub_2B + + thumb_func_start BattleAICmd_nullsub_32 +BattleAICmd_nullsub_32: @ 0x081322EC + bx lr + .align 2, 0 + thumb_func_end BattleAICmd_nullsub_32 + + thumb_func_start BattleAICmd_count_usable_party_mons +BattleAICmd_count_usable_party_mons: @ 0x081322F0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _08132310 + ldr r0, [r0] + ldr r1, [r0, #0x14] + movs r0, #0 + str r0, [r1, #8] + ldr r0, _08132314 + ldr r0, [r0] + ldrb r0, [r0, #1] + cmp r0, #1 + bne _0813231C + ldr r0, _08132318 + b _0813231E + .align 2, 0 +_08132310: .4byte 0x0202414C +_08132314: .4byte 0x0203A804 +_08132318: .4byte 0x0203A808 +_0813231C: + ldr r0, _08132364 +_0813231E: + ldrb r5, [r0] + adds r0, r5, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + ldr r1, _08132368 + mov r8, r1 + cmp r0, #0 + bne _08132334 + ldr r0, _0813236C + mov r8, r0 +_08132334: + ldr r0, _08132370 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08132378 + ldr r4, _08132374 + lsls r0, r5, #1 + adds r0, r0, r4 + ldrb r7, [r0] + adds r0, r5, #0 + bl GetBattlerPosition + movs r1, #2 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r4 + ldrb r6, [r0] + b _08132382 + .align 2, 0 +_08132364: .4byte 0x02023EB0 +_08132368: .4byte 0x020243E8 +_0813236C: .4byte 0x02024190 +_08132370: .4byte 0x02022C90 +_08132374: .4byte 0x02023D12 +_08132378: + ldr r1, _081323E0 + lsls r0, r5, #1 + adds r0, r0, r1 + ldrb r6, [r0] + adds r7, r6, #0 +_08132382: + movs r5, #0 +_08132384: + cmp r5, r7 + beq _081323C8 + cmp r5, r6 + beq _081323C8 + movs r0, #0x64 + muls r0, r5, r0 + mov r1, r8 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _081323C8 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + cmp r0, #0 + beq _081323C8 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + movs r1, #0xce + lsls r1, r1, #1 + cmp r0, r1 + beq _081323C8 + ldr r0, _081323E4 + ldr r0, [r0] + ldr r1, [r0, #0x14] + ldr r0, [r1, #8] + adds r0, #1 + str r0, [r1, #8] +_081323C8: + adds r5, #1 + cmp r5, #5 + ble _08132384 + ldr r1, _081323E8 + ldr r0, [r1] + adds r0, #2 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081323E0: .4byte 0x02023D12 +_081323E4: .4byte 0x0202414C +_081323E8: .4byte 0x0203A804 + thumb_func_end BattleAICmd_count_usable_party_mons + + thumb_func_start BattleAICmd_get_considered_move +BattleAICmd_get_considered_move: @ 0x081323EC + ldr r0, _08132400 + ldr r0, [r0] + ldr r1, [r0, #0x14] + ldrh r0, [r1, #2] + str r0, [r1, #8] + ldr r1, _08132404 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + bx lr + .align 2, 0 +_08132400: .4byte 0x0202414C +_08132404: .4byte 0x0203A804 + thumb_func_end BattleAICmd_get_considered_move + + thumb_func_start BattleAICmd_get_considered_move_effect +BattleAICmd_get_considered_move_effect: @ 0x08132408 + ldr r0, _08132428 + ldr r0, [r0] + ldr r3, [r0, #0x14] + ldr r2, _0813242C + ldrh r1, [r3, #2] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0] + str r0, [r3, #8] + ldr r1, _08132430 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + bx lr + .align 2, 0 +_08132428: .4byte 0x0202414C +_0813242C: .4byte 0x082ED220 +_08132430: .4byte 0x0203A804 + thumb_func_end BattleAICmd_get_considered_move_effect + + thumb_func_start BattleAICmd_get_ability +BattleAICmd_get_ability: @ 0x08132434 + push {r4, r5, r6, r7, lr} + ldr r0, _08132448 + ldr r1, [r0] + ldrb r1, [r1, #1] + mov ip, r0 + cmp r1, #1 + bne _08132450 + ldr r0, _0813244C + b _08132452 + .align 2, 0 +_08132448: .4byte 0x0203A804 +_0813244C: .4byte 0x0203A808 +_08132450: + ldr r0, _08132474 +_08132452: + ldrb r3, [r0] + ldr r0, _08132478 + ldrb r0, [r0] + cmp r0, r3 + beq _08132524 + ldr r7, _0813247C + ldr r5, [r7] + ldr r0, [r5, #0x18] + adds r0, #0x40 + adds r2, r0, r3 + ldrb r0, [r2] + adds r6, r7, #0 + cmp r0, #0 + beq _08132480 + ldr r1, [r5, #0x14] + str r0, [r1, #8] + b _08132538 + .align 2, 0 +_08132474: .4byte 0x02023EB0 +_08132478: .4byte 0x02023D08 +_0813247C: .4byte 0x0202414C +_08132480: + ldr r1, _081324B0 + movs r0, #0x58 + muls r0, r3, r0 + adds r4, r0, r1 + adds r0, r4, #0 + adds r0, #0x20 + ldrb r0, [r0] + adds r2, r1, #0 + cmp r0, #0x17 + beq _0813249C + cmp r0, #0x2a + beq _0813249C + cmp r0, #0x47 + bne _081324B4 +_0813249C: + ldr r0, [r6] + ldr r1, [r0, #0x14] + movs r0, #0x58 + muls r0, r3, r0 + adds r0, r0, r2 + adds r0, #0x20 + ldrb r0, [r0] + str r0, [r1, #8] + b _08132538 + .align 2, 0 +_081324B0: .4byte 0x02023D28 +_081324B4: + ldr r6, _081324F0 + ldrh r0, [r4] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r2, r1, r6 + ldrb r0, [r2, #0x16] + cmp r0, #0 + beq _0813251C + ldrb r0, [r2, #0x17] + cmp r0, #0 + beq _08132514 + bl Random + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _081324F8 + ldr r0, [r7] + ldr r2, [r0, #0x14] + ldrh r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r0, [r0, #0x16] + str r0, [r2, #8] + ldr r0, _081324F4 + mov ip, r0 + b _08132538 + .align 2, 0 +_081324F0: .4byte 0x082F0D54 +_081324F4: .4byte 0x0203A804 +_081324F8: + ldr r0, [r7] + ldr r2, [r0, #0x14] + ldrh r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r0, [r0, #0x17] + str r0, [r2, #8] + ldr r1, _08132510 + mov ip, r1 + b _08132538 + .align 2, 0 +_08132510: .4byte 0x0203A804 +_08132514: + ldr r1, [r5, #0x14] + ldrb r0, [r2, #0x16] + str r0, [r1, #8] + b _08132538 +_0813251C: + ldr r1, [r5, #0x14] + ldrb r0, [r2, #0x17] + str r0, [r1, #8] + b _08132538 +_08132524: + ldr r0, _08132548 + ldr r0, [r0] + ldr r2, [r0, #0x14] + ldr r1, _0813254C + movs r0, #0x58 + muls r0, r3, r0 + adds r0, r0, r1 + adds r0, #0x20 + ldrb r0, [r0] + str r0, [r2, #8] +_08132538: + mov r1, ip + ldr r0, [r1] + adds r0, #2 + str r0, [r1] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08132548: .4byte 0x0202414C +_0813254C: .4byte 0x02023D28 + thumb_func_end BattleAICmd_get_ability + + thumb_func_start BattleAICmd_check_ability +BattleAICmd_check_ability: @ 0x08132550 + push {r4, r5, r6, lr} + ldr r4, _08132588 + ldr r0, [r4] + ldrb r0, [r0, #1] + bl BattleAI_GetWantedBattler + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, [r4] + ldrb r3, [r0, #2] + ldrb r0, [r0, #1] + cmp r0, #0 + beq _0813256E + cmp r0, #2 + bne _081325F0 +_0813256E: + ldr r0, _0813258C + ldr r4, [r0] + ldr r1, [r4, #0x18] + adds r1, #0x40 + adds r2, r1, r5 + ldrb r1, [r2] + adds r6, r0, #0 + cmp r1, #0 + beq _08132590 + adds r3, r1, #0 + ldr r0, [r4, #0x14] + str r3, [r0, #8] + b _081325FE + .align 2, 0 +_08132588: .4byte 0x0203A804 +_0813258C: .4byte 0x0202414C +_08132590: + ldr r1, _081325B8 + movs r0, #0x58 + muls r0, r5, r0 + adds r4, r0, r1 + adds r0, r4, #0 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x17 + beq _081325AA + cmp r0, #0x2a + beq _081325AA + cmp r0, #0x47 + bne _081325BC +_081325AA: + movs r0, #0x58 + muls r0, r5, r0 + adds r0, r0, r1 + adds r0, #0x20 + ldrb r3, [r0] + b _081325FE + .align 2, 0 +_081325B8: .4byte 0x02023D28 +_081325BC: + ldr r2, _081325E4 + ldrh r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r2 + ldrb r4, [r1, #0x16] + cmp r4, #0 + beq _081325EC + ldrb r2, [r1, #0x17] + cmp r2, #0 + beq _081325E8 + adds r0, r3, #0 + cmp r4, r0 + beq _08132602 + cmp r2, r0 + beq _08132602 + adds r3, r4, #0 + b _081325FE + .align 2, 0 +_081325E4: .4byte 0x082F0D54 +_081325E8: + ldrb r3, [r1, #0x16] + b _081325FE +_081325EC: + ldrb r3, [r1, #0x17] + b _081325FE +_081325F0: + ldr r1, _08132610 + movs r0, #0x58 + muls r0, r5, r0 + adds r0, r0, r1 + adds r0, #0x20 + ldrb r3, [r0] + ldr r6, _08132614 +_081325FE: + cmp r3, #0 + bne _0813261C +_08132602: + ldr r0, [r6] + ldr r1, [r0, #0x14] + movs r0, #2 + str r0, [r1, #8] + ldr r2, _08132618 + b _0813263C + .align 2, 0 +_08132610: .4byte 0x02023D28 +_08132614: .4byte 0x0202414C +_08132618: .4byte 0x0203A804 +_0813261C: + ldr r0, _08132630 + ldr r1, [r0] + adds r2, r0, #0 + ldrb r1, [r1, #2] + cmp r3, r1 + bne _08132634 + ldr r0, [r6] + ldr r1, [r0, #0x14] + movs r0, #1 + b _0813263A + .align 2, 0 +_08132630: .4byte 0x0203A804 +_08132634: + ldr r0, [r6] + ldr r1, [r0, #0x14] + movs r0, #0 +_0813263A: + str r0, [r1, #8] +_0813263C: + ldr r0, [r2] + adds r0, #3 + str r0, [r2] + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end BattleAICmd_check_ability + + thumb_func_start BattleAICmd_get_highest_type_effectiveness +BattleAICmd_get_highest_type_effectiveness: @ 0x08132648 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _08132704 + movs r1, #0 + strh r1, [r0] + ldr r0, _08132708 + ldr r0, [r0] + strb r1, [r0, #0x13] + ldr r0, _0813270C + movs r3, #0 + movs r2, #1 + strb r2, [r0, #0xe] + ldr r0, _08132710 + strb r1, [r0] + ldr r0, _08132714 + strb r2, [r0] + ldr r0, _08132718 + ldr r0, [r0] + ldr r0, [r0, #0x14] + str r3, [r0, #8] + movs r5, #0 + ldr r4, _0813271C + ldr r7, _08132720 + ldr r0, _08132724 + mov r8, r0 + ldr r6, _08132728 +_0813267E: + movs r0, #0x28 + str r0, [r4] + lsls r1, r5, #1 + ldrb r2, [r6] + movs r0, #0x58 + muls r0, r2, r0 + adds r1, r1, r0 + add r1, r8 + ldrh r0, [r1] + strh r0, [r7] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _081326EC + ldrh r0, [r7] + ldrb r1, [r6] + ldr r2, _0813272C + ldrb r2, [r2] + bl TypeCalc + ldr r0, [r4] + cmp r0, #0x78 + bne _081326AE + movs r0, #0x50 + str r0, [r4] +_081326AE: + ldr r0, [r4] + cmp r0, #0xf0 + bne _081326B8 + movs r0, #0xa0 + str r0, [r4] +_081326B8: + ldr r0, [r4] + cmp r0, #0x1e + bne _081326C2 + movs r0, #0x14 + str r0, [r4] +_081326C2: + ldr r0, [r4] + cmp r0, #0xf + bne _081326CC + movs r0, #0xa + str r0, [r4] +_081326CC: + ldr r0, _08132710 + ldrb r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _081326DC + movs r0, #0 + str r0, [r4] +_081326DC: + ldr r0, _08132718 + ldr r0, [r0] + ldr r2, [r0, #0x14] + ldr r0, [r2, #8] + ldr r1, [r4] + cmp r0, r1 + bhs _081326EC + str r1, [r2, #8] +_081326EC: + adds r5, #1 + cmp r5, #3 + ble _0813267E + ldr r1, _08132730 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08132704: .4byte 0x020240A4 +_08132708: .4byte 0x02024140 +_0813270C: .4byte 0x02024118 +_08132710: .4byte 0x02023F20 +_08132714: .4byte 0x02023EB5 +_08132718: .4byte 0x0202414C +_0813271C: .4byte 0x02023E94 +_08132720: .4byte 0x02023E8E +_08132724: .4byte 0x02023D34 +_08132728: .4byte 0x0203A808 +_0813272C: .4byte 0x02023EB0 +_08132730: .4byte 0x0203A804 + thumb_func_end BattleAICmd_get_highest_type_effectiveness + + thumb_func_start BattleAICmd_if_type_effectiveness +BattleAICmd_if_type_effectiveness: @ 0x08132734 + push {r4, r5, lr} + ldr r0, _081327CC + movs r1, #0 + strh r1, [r0] + ldr r0, _081327D0 + ldr r0, [r0] + strb r1, [r0, #0x13] + ldr r0, _081327D4 + movs r2, #1 + strb r2, [r0, #0xe] + ldr r5, _081327D8 + strb r1, [r5] + ldr r0, _081327DC + strb r2, [r0] + ldr r4, _081327E0 + movs r0, #0x28 + str r0, [r4] + ldr r1, _081327E4 + ldr r0, _081327E8 + ldr r0, [r0] + ldr r0, [r0, #0x14] + ldrh r0, [r0, #2] + strh r0, [r1] + ldrh r0, [r1] + ldr r1, _081327EC + ldrb r1, [r1] + ldr r2, _081327F0 + ldrb r2, [r2] + bl TypeCalc + ldr r0, [r4] + cmp r0, #0x78 + bne _0813277A + movs r0, #0x50 + str r0, [r4] +_0813277A: + ldr r0, [r4] + cmp r0, #0xf0 + bne _08132784 + movs r0, #0xa0 + str r0, [r4] +_08132784: + ldr r0, [r4] + cmp r0, #0x1e + bne _0813278E + movs r0, #0x14 + str r0, [r4] +_0813278E: + ldr r0, [r4] + cmp r0, #0xf + bne _08132798 + movs r0, #0xa + str r0, [r4] +_08132798: + ldrb r1, [r5] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _081327A6 + movs r0, #0 + str r0, [r4] +_081327A6: + ldrb r0, [r4] + ldr r3, _081327F4 + ldr r2, [r3] + ldrb r1, [r2, #1] + cmp r0, r1 + bne _081327F8 + ldrb r1, [r2, #2] + ldrb r0, [r2, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _081327FC + .align 2, 0 +_081327CC: .4byte 0x020240A4 +_081327D0: .4byte 0x02024140 +_081327D4: .4byte 0x02024118 +_081327D8: .4byte 0x02023F20 +_081327DC: .4byte 0x02023EB5 +_081327E0: .4byte 0x02023E94 +_081327E4: .4byte 0x02023E8E +_081327E8: .4byte 0x0202414C +_081327EC: .4byte 0x0203A808 +_081327F0: .4byte 0x02023EB0 +_081327F4: .4byte 0x0203A804 +_081327F8: + adds r0, r2, #6 + str r0, [r3] +_081327FC: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BattleAICmd_if_type_effectiveness + + thumb_func_start BattleAICmd_nullsub_33 +BattleAICmd_nullsub_33: @ 0x08132804 + bx lr + .align 2, 0 + thumb_func_end BattleAICmd_nullsub_33 + + thumb_func_start BattleAICmd_nullsub_52 +BattleAICmd_nullsub_52: @ 0x08132808 + bx lr + .align 2, 0 + thumb_func_end BattleAICmd_nullsub_52 + + thumb_func_start BattleAICmd_if_status_in_party +BattleAICmd_if_status_in_party: @ 0x0813280C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _08132824 + ldr r0, [r0] + ldrb r0, [r0, #1] + cmp r0, #1 + bne _0813284C + ldr r0, _08132828 + b _0813284E + .align 2, 0 +_08132824: .4byte 0x0203A804 +_08132828: .4byte 0x0203A808 +_0813282C: + ldr r3, _08132848 + ldr r2, [r3] + ldrb r1, [r2, #6] + ldrb r0, [r2, #7] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #8] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #9] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _081328CE + .align 2, 0 +_08132848: .4byte 0x0203A804 +_0813284C: + ldr r0, _081328DC +_0813284E: + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + ldr r1, _081328E0 + mov sb, r1 + cmp r0, #0 + bne _08132862 + ldr r0, _081328E4 + mov sb, r0 +_08132862: + ldr r0, _081328E8 + ldr r1, [r0] + ldrb r7, [r1, #2] + ldrb r0, [r1, #3] + lsls r0, r0, #8 + orrs r7, r0 + ldrb r0, [r1, #4] + lsls r0, r0, #0x10 + orrs r7, r0 + ldrb r0, [r1, #5] + lsls r0, r0, #0x18 + orrs r7, r0 + movs r1, #0 + mov r8, r1 + movs r0, #0xce + lsls r0, r0, #1 + mov sl, r0 +_08132884: + movs r0, #0x64 + mov r4, r8 + muls r4, r0, r4 + add r4, sb + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r0, r4, #0 + movs r1, #0x37 + bl GetMonData + cmp r5, #0 + beq _081328BC + cmp r5, sl + beq _081328BC + cmp r6, #0 + beq _081328BC + cmp r0, r7 + beq _0813282C +_081328BC: + movs r1, #1 + add r8, r1 + mov r0, r8 + cmp r0, #5 + ble _08132884 + ldr r1, _081328E8 + ldr r0, [r1] + adds r0, #0xa + str r0, [r1] +_081328CE: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081328DC: .4byte 0x02023EB0 +_081328E0: .4byte 0x020243E8 +_081328E4: .4byte 0x02024190 +_081328E8: .4byte 0x0203A804 + thumb_func_end BattleAICmd_if_status_in_party + + thumb_func_start BattleAICmd_if_status_not_in_party +BattleAICmd_if_status_not_in_party: @ 0x081328EC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _08132904 + ldr r0, [r0] + ldrb r0, [r0, #1] + cmp r0, #1 + bne _0813290C + ldr r0, _08132908 + b _0813290E + .align 2, 0 +_08132904: .4byte 0x0203A804 +_08132908: .4byte 0x0203A808 +_0813290C: + ldr r0, _081329B8 +_0813290E: + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + ldr r1, _081329BC + mov sl, r1 + cmp r0, #0 + bne _08132922 + ldr r0, _081329C0 + mov sl, r0 +_08132922: + ldr r2, _081329C4 + ldr r1, [r2] + ldrb r7, [r1, #2] + ldrb r0, [r1, #3] + lsls r0, r0, #8 + orrs r7, r0 + ldrb r0, [r1, #4] + lsls r0, r0, #0x10 + orrs r7, r0 + ldrb r0, [r1, #5] + lsls r0, r0, #0x18 + orrs r7, r0 + movs r1, #0 + mov r8, r1 + mov sb, r2 +_08132940: + movs r0, #0x64 + mov r4, r8 + muls r4, r0, r4 + add r4, sl + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r0, r4, #0 + movs r1, #0x37 + bl GetMonData + cmp r5, #0 + beq _08132984 + movs r1, #0xce + lsls r1, r1, #1 + cmp r5, r1 + beq _08132984 + cmp r6, #0 + beq _08132984 + cmp r0, r7 + bne _08132984 + mov r1, sb + ldr r0, [r1] + adds r0, #0xa + str r0, [r1] +_08132984: + movs r0, #1 + add r8, r0 + mov r1, r8 + cmp r1, #5 + ble _08132940 + ldr r3, _081329C4 + ldr r2, [r3] + ldrb r1, [r2, #6] + ldrb r0, [r2, #7] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #8] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #9] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081329B8: .4byte 0x02023EB0 +_081329BC: .4byte 0x020243E8 +_081329C0: .4byte 0x02024190 +_081329C4: .4byte 0x0203A804 + thumb_func_end BattleAICmd_if_status_not_in_party + + thumb_func_start BattleAICmd_get_weather +BattleAICmd_get_weather: @ 0x081329C8 + push {lr} + ldr r2, _08132A28 + ldrh r1, [r2] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + beq _081329E0 + ldr r0, _08132A2C + ldr r0, [r0] + ldr r1, [r0, #0x14] + movs r0, #1 + str r0, [r1, #8] +_081329E0: + ldrh r1, [r2] + movs r0, #0x18 + ands r0, r1 + cmp r0, #0 + beq _081329F4 + ldr r0, _08132A2C + ldr r0, [r0] + ldr r1, [r0, #0x14] + movs r0, #2 + str r0, [r1, #8] +_081329F4: + ldrh r1, [r2] + movs r0, #0x60 + ands r0, r1 + cmp r0, #0 + beq _08132A08 + ldr r0, _08132A2C + ldr r0, [r0] + ldr r1, [r0, #0x14] + movs r0, #0 + str r0, [r1, #8] +_08132A08: + ldrh r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08132A1C + ldr r0, _08132A2C + ldr r0, [r0] + ldr r1, [r0, #0x14] + movs r0, #3 + str r0, [r1, #8] +_08132A1C: + ldr r1, _08132A30 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08132A28: .4byte 0x02024070 +_08132A2C: .4byte 0x0202414C +_08132A30: .4byte 0x0203A804 + thumb_func_end BattleAICmd_get_weather + + thumb_func_start BattleAICmd_if_effect +BattleAICmd_if_effect: @ 0x08132A34 + push {lr} + ldr r2, _08132A6C + ldr r0, _08132A70 + ldr r0, [r0] + ldr r0, [r0, #0x14] + ldrh r1, [r0, #2] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r3, _08132A74 + ldr r2, [r3] + ldrb r0, [r0] + ldrb r1, [r2, #1] + cmp r0, r1 + bne _08132A78 + ldrb r1, [r2, #2] + ldrb r0, [r2, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08132A7C + .align 2, 0 +_08132A6C: .4byte 0x082ED220 +_08132A70: .4byte 0x0202414C +_08132A74: .4byte 0x0203A804 +_08132A78: + adds r0, r2, #6 + str r0, [r3] +_08132A7C: + pop {r0} + bx r0 + thumb_func_end BattleAICmd_if_effect + + thumb_func_start BattleAICmd_if_not_effect +BattleAICmd_if_not_effect: @ 0x08132A80 + push {lr} + ldr r2, _08132AB8 + ldr r0, _08132ABC + ldr r0, [r0] + ldr r0, [r0, #0x14] + ldrh r1, [r0, #2] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r3, _08132AC0 + ldr r2, [r3] + ldrb r0, [r0] + ldrb r1, [r2, #1] + cmp r0, r1 + beq _08132AC4 + ldrb r1, [r2, #2] + ldrb r0, [r2, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08132AC8 + .align 2, 0 +_08132AB8: .4byte 0x082ED220 +_08132ABC: .4byte 0x0202414C +_08132AC0: .4byte 0x0203A804 +_08132AC4: + adds r0, r2, #6 + str r0, [r3] +_08132AC8: + pop {r0} + bx r0 + thumb_func_end BattleAICmd_if_not_effect + + thumb_func_start BattleAICmd_if_stat_level_less_than +BattleAICmd_if_stat_level_less_than: @ 0x08132ACC + push {r4, lr} + ldr r0, _08132AE0 + ldr r1, [r0] + ldrb r1, [r1, #1] + adds r4, r0, #0 + cmp r1, #1 + bne _08132AE8 + ldr r0, _08132AE4 + b _08132AEA + .align 2, 0 +_08132AE0: .4byte 0x0203A804 +_08132AE4: .4byte 0x0203A808 +_08132AE8: + ldr r0, _08132B20 +_08132AEA: + ldrb r3, [r0] + ldr r1, _08132B24 + ldr r2, [r4] + movs r0, #0x58 + muls r0, r3, r0 + ldrb r3, [r2, #2] + adds r0, r0, r3 + adds r1, #0x18 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrb r1, [r2, #3] + cmp r0, r1 + bge _08132B28 + ldrb r1, [r2, #4] + ldrb r0, [r2, #5] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #6] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #7] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _08132B2E + .align 2, 0 +_08132B20: .4byte 0x02023EB0 +_08132B24: .4byte 0x02023D28 +_08132B28: + adds r0, r2, #0 + adds r0, #8 + str r0, [r4] +_08132B2E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end BattleAICmd_if_stat_level_less_than + + thumb_func_start BattleAICmd_if_stat_level_more_than +BattleAICmd_if_stat_level_more_than: @ 0x08132B34 + push {r4, lr} + ldr r0, _08132B48 + ldr r1, [r0] + ldrb r1, [r1, #1] + adds r4, r0, #0 + cmp r1, #1 + bne _08132B50 + ldr r0, _08132B4C + b _08132B52 + .align 2, 0 +_08132B48: .4byte 0x0203A804 +_08132B4C: .4byte 0x0203A808 +_08132B50: + ldr r0, _08132B88 +_08132B52: + ldrb r3, [r0] + ldr r1, _08132B8C + ldr r2, [r4] + movs r0, #0x58 + muls r0, r3, r0 + ldrb r3, [r2, #2] + adds r0, r0, r3 + adds r1, #0x18 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrb r1, [r2, #3] + cmp r0, r1 + ble _08132B90 + ldrb r1, [r2, #4] + ldrb r0, [r2, #5] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #6] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #7] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _08132B96 + .align 2, 0 +_08132B88: .4byte 0x02023EB0 +_08132B8C: .4byte 0x02023D28 +_08132B90: + adds r0, r2, #0 + adds r0, #8 + str r0, [r4] +_08132B96: + pop {r4} + pop {r0} + bx r0 + thumb_func_end BattleAICmd_if_stat_level_more_than + + thumb_func_start BattleAICmd_if_stat_level_equal +BattleAICmd_if_stat_level_equal: @ 0x08132B9C + push {r4, lr} + ldr r0, _08132BB0 + ldr r1, [r0] + ldrb r1, [r1, #1] + adds r4, r0, #0 + cmp r1, #1 + bne _08132BB8 + ldr r0, _08132BB4 + b _08132BBA + .align 2, 0 +_08132BB0: .4byte 0x0203A804 +_08132BB4: .4byte 0x0203A808 +_08132BB8: + ldr r0, _08132BF0 +_08132BBA: + ldrb r3, [r0] + ldr r1, _08132BF4 + ldr r2, [r4] + movs r0, #0x58 + muls r0, r3, r0 + ldrb r3, [r2, #2] + adds r0, r0, r3 + adds r1, #0x18 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrb r1, [r2, #3] + cmp r0, r1 + bne _08132BF8 + ldrb r1, [r2, #4] + ldrb r0, [r2, #5] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #6] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #7] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _08132BFE + .align 2, 0 +_08132BF0: .4byte 0x02023EB0 +_08132BF4: .4byte 0x02023D28 +_08132BF8: + adds r0, r2, #0 + adds r0, #8 + str r0, [r4] +_08132BFE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end BattleAICmd_if_stat_level_equal + + thumb_func_start BattleAICmd_if_stat_level_not_equal +BattleAICmd_if_stat_level_not_equal: @ 0x08132C04 + push {r4, lr} + ldr r0, _08132C18 + ldr r1, [r0] + ldrb r1, [r1, #1] + adds r4, r0, #0 + cmp r1, #1 + bne _08132C20 + ldr r0, _08132C1C + b _08132C22 + .align 2, 0 +_08132C18: .4byte 0x0203A804 +_08132C1C: .4byte 0x0203A808 +_08132C20: + ldr r0, _08132C58 +_08132C22: + ldrb r3, [r0] + ldr r1, _08132C5C + ldr r2, [r4] + movs r0, #0x58 + muls r0, r3, r0 + ldrb r3, [r2, #2] + adds r0, r0, r3 + adds r1, #0x18 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrb r1, [r2, #3] + cmp r0, r1 + beq _08132C60 + ldrb r1, [r2, #4] + ldrb r0, [r2, #5] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #6] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #7] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _08132C66 + .align 2, 0 +_08132C58: .4byte 0x02023EB0 +_08132C5C: .4byte 0x02023D28 +_08132C60: + adds r0, r2, #0 + adds r0, #8 + str r0, [r4] +_08132C66: + pop {r4} + pop {r0} + bx r0 + thumb_func_end BattleAICmd_if_stat_level_not_equal + + thumb_func_start BattleAICmd_if_can_faint +BattleAICmd_if_can_faint: @ 0x08132C6C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r2, _08132D1C + ldr r0, _08132D20 + mov r8, r0 + ldr r0, [r0] + ldr r0, [r0, #0x14] + ldrh r1, [r0, #2] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #1] + cmp r0, #1 + bls _08132D50 + ldr r0, _08132D24 + movs r1, #0 + strh r1, [r0] + ldr r0, _08132D28 + ldr r0, [r0] + strb r1, [r0, #0x13] + ldr r0, _08132D2C + movs r7, #1 + strb r7, [r0, #0xe] + ldr r0, _08132D30 + strb r1, [r0] + ldr r0, _08132D34 + strb r7, [r0] + ldr r5, _08132D38 + mov r1, r8 + ldr r0, [r1] + ldr r0, [r0, #0x14] + ldrh r0, [r0, #2] + strh r0, [r5] + ldr r4, _08132D3C + ldrb r0, [r4] + ldr r6, _08132D40 + ldrb r1, [r6] + bl AI_CalcDmg + ldrh r0, [r5] + ldrb r1, [r4] + ldrb r2, [r6] + bl TypeCalc + ldr r4, _08132D44 + mov r1, r8 + ldr r0, [r1] + ldr r1, [r0, #0x14] + adds r0, r1, #0 + adds r0, #0x18 + ldrb r1, [r1, #1] + adds r0, r0, r1 + ldrb r1, [r0] + ldr r0, [r4] + muls r0, r1, r0 + movs r1, #0x64 + bl __divsi3 + str r0, [r4] + cmp r0, #0 + bne _08132CEC + str r7, [r4] +_08132CEC: + ldr r2, _08132D48 + ldrb r1, [r6] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + ldrh r1, [r0, #0x28] + ldr r0, [r4] + cmp r1, r0 + bgt _08132D50 + ldr r3, _08132D4C + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08132D58 + .align 2, 0 +_08132D1C: .4byte 0x082ED220 +_08132D20: .4byte 0x0202414C +_08132D24: .4byte 0x020240A4 +_08132D28: .4byte 0x02024140 +_08132D2C: .4byte 0x02024118 +_08132D30: .4byte 0x02023F20 +_08132D34: .4byte 0x02023EB5 +_08132D38: .4byte 0x02023E8E +_08132D3C: .4byte 0x0203A808 +_08132D40: .4byte 0x02023EB0 +_08132D44: .4byte 0x02023E94 +_08132D48: .4byte 0x02023D28 +_08132D4C: .4byte 0x0203A804 +_08132D50: + ldr r1, _08132D64 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] +_08132D58: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08132D64: .4byte 0x0203A804 + thumb_func_end BattleAICmd_if_can_faint + + thumb_func_start BattleAICmd_if_cant_faint +BattleAICmd_if_cant_faint: @ 0x08132D68 + push {r4, r5, r6, r7, lr} + ldr r2, _08132E04 + ldr r7, _08132E08 + ldr r0, [r7] + ldr r0, [r0, #0x14] + ldrh r1, [r0, #2] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #1] + cmp r0, #1 + bls _08132E38 + ldr r0, _08132E0C + movs r1, #0 + strh r1, [r0] + ldr r0, _08132E10 + ldr r0, [r0] + strb r1, [r0, #0x13] + ldr r0, _08132E14 + movs r2, #1 + strb r2, [r0, #0xe] + ldr r0, _08132E18 + strb r1, [r0] + ldr r0, _08132E1C + strb r2, [r0] + ldr r6, _08132E20 + ldr r0, [r7] + ldr r0, [r0, #0x14] + ldrh r0, [r0, #2] + strh r0, [r6] + ldr r4, _08132E24 + ldrb r0, [r4] + ldr r5, _08132E28 + ldrb r1, [r5] + bl AI_CalcDmg + ldrh r0, [r6] + ldrb r1, [r4] + ldrb r2, [r5] + bl TypeCalc + ldr r4, _08132E2C + ldr r0, [r7] + ldr r1, [r0, #0x14] + adds r0, r1, #0 + adds r0, #0x18 + ldrb r1, [r1, #1] + adds r0, r0, r1 + ldrb r1, [r0] + ldr r0, [r4] + muls r0, r1, r0 + movs r1, #0x64 + bl __divsi3 + str r0, [r4] + ldr r3, _08132E30 + ldrb r2, [r5] + movs r1, #0x58 + muls r1, r2, r1 + adds r1, r1, r3 + ldrh r1, [r1, #0x28] + cmp r1, r0 + ble _08132E38 + ldr r3, _08132E34 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08132E40 + .align 2, 0 +_08132E04: .4byte 0x082ED220 +_08132E08: .4byte 0x0202414C +_08132E0C: .4byte 0x020240A4 +_08132E10: .4byte 0x02024140 +_08132E14: .4byte 0x02024118 +_08132E18: .4byte 0x02023F20 +_08132E1C: .4byte 0x02023EB5 +_08132E20: .4byte 0x02023E8E +_08132E24: .4byte 0x0203A808 +_08132E28: .4byte 0x02023EB0 +_08132E2C: .4byte 0x02023E94 +_08132E30: .4byte 0x02023D28 +_08132E34: .4byte 0x0203A804 +_08132E38: + ldr r1, _08132E48 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] +_08132E40: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08132E48: .4byte 0x0203A804 + thumb_func_end BattleAICmd_if_cant_faint + + thumb_func_start BattleAICmd_if_has_move +BattleAICmd_if_has_move: @ 0x08132E4C + push {r4, r5, r6, r7, lr} + ldr r0, _08132E68 + ldr r5, [r0] + adds r7, r5, #2 + ldrb r1, [r5, #1] + adds r6, r0, #0 + cmp r1, #1 + beq _08132E76 + cmp r1, #1 + bgt _08132E6C + cmp r1, #0 + beq _08132F10 + b _08132F74 + .align 2, 0 +_08132E68: .4byte 0x0203A804 +_08132E6C: + cmp r1, #2 + beq _08132F10 + cmp r1, #3 + beq _08132EB8 + b _08132F74 +_08132E76: + movs r4, #0 + ldr r3, _08132EB0 + ldr r2, _08132EB4 + ldrb r1, [r2] + movs r0, #0x58 + muls r0, r1, r0 + adds r3, #0xc + adds r0, r0, r3 + ldrh r0, [r0] + ldrh r5, [r5, #2] + cmp r0, r5 + beq _08132EA8 + movs r5, #0x58 +_08132E90: + adds r4, #1 + cmp r4, #3 + bgt _08132EA8 + lsls r1, r4, #1 + ldrb r0, [r2] + muls r0, r5, r0 + adds r1, r1, r0 + adds r1, r1, r3 + ldrh r0, [r1] + ldrh r1, [r7] + cmp r0, r1 + bne _08132E90 +_08132EA8: + cmp r4, #4 + beq _08132F4C + b _08132F5C + .align 2, 0 +_08132EB0: .4byte 0x02023D28 +_08132EB4: .4byte 0x0203A808 +_08132EB8: + ldr r3, _08132ED4 + ldr r2, _08132ED8 + ldrb r1, [r2] + movs r0, #2 + eors r0, r1 + movs r1, #0x58 + muls r1, r0, r1 + adds r0, r1, r3 + ldrh r0, [r0, #0x28] + cmp r0, #0 + bne _08132EDC + adds r0, r5, #0 + b _08132F4E + .align 2, 0 +_08132ED4: .4byte 0x02023D28 +_08132ED8: .4byte 0x0203A808 +_08132EDC: + movs r4, #0 + adds r3, #0xc + adds r0, r1, r3 + ldrh r0, [r0] + ldrh r5, [r5, #2] + cmp r0, r5 + beq _08132EA8 + mov ip, r3 + adds r5, r2, #0 + movs r3, #2 +_08132EF0: + adds r4, #1 + cmp r4, #3 + bgt _08132EA8 + lsls r1, r4, #1 + ldrb r0, [r5] + adds r2, r3, #0 + eors r2, r0 + movs r0, #0x58 + muls r0, r2, r0 + adds r1, r1, r0 + add r1, ip + ldrh r0, [r1] + ldrh r1, [r7] + cmp r0, r1 + bne _08132EF0 + b _08132EA8 +_08132F10: + movs r4, #0 + ldr r3, _08132F54 + ldr r0, [r3] + ldr r1, [r0, #0x18] + ldr r2, _08132F58 + ldrb r0, [r2] + lsls r0, r0, #4 + adds r1, r1, r0 + ldrh r0, [r1] + ldrh r1, [r7] + cmp r0, r1 + beq _08132F48 + adds r7, r3, #0 + adds r5, r2, #0 + adds r3, r1, #0 +_08132F2E: + adds r4, #1 + cmp r4, #3 + bgt _08132F48 + ldr r0, [r7] + ldr r2, [r0, #0x18] + lsls r1, r4, #1 + ldrb r0, [r5] + lsls r0, r0, #4 + adds r1, r1, r0 + adds r2, r2, r1 + ldrh r0, [r2] + cmp r0, r3 + bne _08132F2E +_08132F48: + cmp r4, #4 + bne _08132F5C +_08132F4C: + ldr r0, [r6] +_08132F4E: + adds r0, #8 + str r0, [r6] + b _08132F74 + .align 2, 0 +_08132F54: .4byte 0x0202414C +_08132F58: .4byte 0x02023EB0 +_08132F5C: + ldr r2, [r6] + ldrb r1, [r2, #4] + ldrb r0, [r2, #5] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #6] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #7] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r6] +_08132F74: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BattleAICmd_if_has_move + + thumb_func_start BattleAICmd_if_doesnt_have_move +BattleAICmd_if_doesnt_have_move: @ 0x08132F7C + push {r4, r5, r6, r7, lr} + ldr r1, _08132F98 + ldr r0, [r1] + adds r6, r0, #2 + ldrb r0, [r0, #1] + adds r5, r1, #0 + cmp r0, #1 + beq _08132FA4 + cmp r0, #1 + bgt _08132F9C + cmp r0, #0 + beq _08132FE8 + b _0813304C + .align 2, 0 +_08132F98: .4byte 0x0203A804 +_08132F9C: + cmp r0, #2 + beq _08132FE8 + cmp r0, #3 + bne _0813304C +_08132FA4: + movs r3, #0 + ldr r2, _08132FE0 + ldr r4, _08132FE4 + ldrb r1, [r4] + movs r0, #0x58 + muls r0, r1, r0 + adds r2, #0xc + adds r0, r0, r2 + ldrh r0, [r0] + ldrh r1, [r6] + cmp r0, r1 + beq _08132FDA + adds r7, r4, #0 + movs r6, #0x58 + adds r4, r2, #0 + adds r2, r1, #0 +_08132FC4: + adds r3, #1 + cmp r3, #3 + bgt _08132FDA + lsls r1, r3, #1 + ldrb r0, [r7] + muls r0, r6, r0 + adds r1, r1, r0 + adds r1, r1, r4 + ldrh r0, [r1] + cmp r0, r2 + bne _08132FC4 +_08132FDA: + cmp r3, #4 + bne _08133024 + b _08133034 + .align 2, 0 +_08132FE0: .4byte 0x02023D28 +_08132FE4: .4byte 0x0203A808 +_08132FE8: + movs r3, #0 + ldr r4, _0813302C + ldr r0, [r4] + ldr r1, [r0, #0x18] + ldr r2, _08133030 + ldrb r0, [r2] + lsls r0, r0, #4 + adds r1, r1, r0 + ldrh r0, [r1] + ldrh r1, [r6] + cmp r0, r1 + beq _08133020 + adds r7, r4, #0 + adds r6, r2, #0 + adds r4, r1, #0 +_08133006: + adds r3, #1 + cmp r3, #3 + bgt _08133020 + ldr r0, [r7] + ldr r2, [r0, #0x18] + lsls r1, r3, #1 + ldrb r0, [r6] + lsls r0, r0, #4 + adds r1, r1, r0 + adds r2, r2, r1 + ldrh r0, [r2] + cmp r0, r4 + bne _08133006 +_08133020: + cmp r3, #4 + beq _08133034 +_08133024: + ldr r0, [r5] + adds r0, #8 + str r0, [r5] + b _0813304C + .align 2, 0 +_0813302C: .4byte 0x0202414C +_08133030: .4byte 0x02023EB0 +_08133034: + ldr r2, [r5] + ldrb r1, [r2, #4] + ldrb r0, [r2, #5] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #6] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #7] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r5] +_0813304C: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BattleAICmd_if_doesnt_have_move + + thumb_func_start BattleAICmd_if_has_move_with_effect +BattleAICmd_if_has_move_with_effect: @ 0x08133054 + push {r4, r5, r6, r7, lr} + ldr r1, _0813306C + ldr r0, [r1] + ldrb r0, [r0, #1] + adds r5, r1, #0 + cmp r0, #1 + beq _08133078 + cmp r0, #1 + bgt _08133070 + cmp r0, #0 + beq _081330C4 + b _08133144 + .align 2, 0 +_0813306C: .4byte 0x0203A804 +_08133070: + cmp r0, #2 + beq _081330C4 + cmp r0, #3 + bne _08133144 +_08133078: + movs r3, #0 + ldr r1, _081330B4 + ldr r0, _081330B8 + ldrb r2, [r0] + ldr r6, _081330BC + movs r0, #0x58 + muls r0, r2, r0 + adds r1, #0xc + adds r2, r0, r1 + ldr r4, _081330C0 +_0813308C: + ldrh r0, [r2] + cmp r0, #0 + beq _081330A6 + adds r1, r0, #0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r1, [r4] + ldrb r0, [r0] + ldrb r1, [r1, #2] + cmp r0, r1 + beq _081330AE +_081330A6: + adds r2, #2 + adds r3, #1 + cmp r3, #3 + ble _0813308C +_081330AE: + cmp r3, #4 + beq _08133110 + b _0813312C + .align 2, 0 +_081330B4: .4byte 0x02023D28 +_081330B8: .4byte 0x0203A808 +_081330BC: .4byte 0x082ED220 +_081330C0: .4byte 0x0203A804 +_081330C4: + movs r3, #0 + ldr r1, _08133118 + ldr r0, _0813311C + ldrb r2, [r0] + ldr r0, _08133120 + mov ip, r0 + ldr r7, _08133124 + ldr r6, _08133128 + movs r0, #0x58 + muls r0, r2, r0 + adds r1, #0xc + adds r4, r0, r1 +_081330DC: + lsls r2, r3, #1 + ldrh r0, [r4] + cmp r0, #0 + beq _08133104 + ldr r0, [r7] + ldr r1, [r0, #0x18] + ldrb r0, [r6] + lsls r0, r0, #4 + adds r0, r2, r0 + adds r1, r1, r0 + ldrh r1, [r1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, ip + ldr r1, [r5] + ldrb r0, [r0] + ldrb r1, [r1, #2] + cmp r0, r1 + beq _0813310C +_08133104: + adds r4, #2 + adds r3, #1 + cmp r3, #3 + ble _081330DC +_0813310C: + cmp r3, #4 + bne _0813312C +_08133110: + ldr r0, [r5] + adds r0, #7 + str r0, [r5] + b _08133144 + .align 2, 0 +_08133118: .4byte 0x02023D28 +_0813311C: .4byte 0x0203A808 +_08133120: .4byte 0x082ED220 +_08133124: .4byte 0x0202414C +_08133128: .4byte 0x02023EB0 +_0813312C: + ldr r2, [r5] + ldrb r1, [r2, #3] + ldrb r0, [r2, #4] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #6] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r5] +_08133144: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BattleAICmd_if_has_move_with_effect + + thumb_func_start BattleAICmd_if_doesnt_have_move_with_effect +BattleAICmd_if_doesnt_have_move_with_effect: @ 0x0813314C + push {r4, r5, r6, lr} + ldr r1, _08133164 + ldr r0, [r1] + ldrb r0, [r0, #1] + adds r4, r1, #0 + cmp r0, #1 + beq _08133170 + cmp r0, #1 + bgt _08133168 + cmp r0, #0 + beq _081331BC + b _08133228 + .align 2, 0 +_08133164: .4byte 0x0203A804 +_08133168: + cmp r0, #2 + beq _081331BC + cmp r0, #3 + bne _08133228 +_08133170: + movs r3, #0 + ldr r1, _081331AC + ldr r0, _081331B0 + ldrb r2, [r0] + ldr r6, _081331B4 + movs r0, #0x58 + muls r0, r2, r0 + adds r1, #0xc + adds r2, r0, r1 + ldr r5, _081331B8 +_08133184: + ldrh r0, [r2] + cmp r0, #0 + beq _0813319E + adds r1, r0, #0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r1, [r5] + ldrb r0, [r0] + ldrb r1, [r1, #2] + cmp r0, r1 + beq _081331A6 +_0813319E: + adds r2, #2 + adds r3, #1 + cmp r3, #3 + ble _08133184 +_081331A6: + cmp r3, #4 + bne _081331F6 + b _08133210 + .align 2, 0 +_081331AC: .4byte 0x02023D28 +_081331B0: .4byte 0x0203A808 +_081331B4: .4byte 0x082ED220 +_081331B8: .4byte 0x0203A804 +_081331BC: + movs r3, #0 + ldr r0, _08133200 + ldr r0, [r0] + ldr r1, [r0, #0x18] + ldr r0, _08133204 + ldrb r0, [r0] + ldr r6, _08133208 + lsls r0, r0, #4 + adds r2, r0, r1 + ldr r5, _0813320C +_081331D0: + ldrh r0, [r2] + cmp r0, #0 + beq _081331EA + adds r1, r0, #0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r1, [r5] + ldrb r0, [r0] + ldrb r1, [r1, #2] + cmp r0, r1 + beq _081331F2 +_081331EA: + adds r2, #2 + adds r3, #1 + cmp r3, #3 + ble _081331D0 +_081331F2: + cmp r3, #4 + beq _08133210 +_081331F6: + ldr r0, [r4] + adds r0, #7 + str r0, [r4] + b _08133228 + .align 2, 0 +_08133200: .4byte 0x0202414C +_08133204: .4byte 0x02023EB0 +_08133208: .4byte 0x082ED220 +_0813320C: .4byte 0x0203A804 +_08133210: + ldr r2, [r4] + ldrb r1, [r2, #3] + ldrb r0, [r2, #4] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #6] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] +_08133228: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BattleAICmd_if_doesnt_have_move_with_effect + + thumb_func_start BattleAICmd_if_any_move_disabled_or_encored +BattleAICmd_if_any_move_disabled_or_encored: @ 0x08133230 + push {r4, r5, lr} + ldr r0, _08133244 + ldr r1, [r0] + ldrb r1, [r1, #1] + adds r5, r0, #0 + cmp r1, #1 + bne _0813324C + ldr r0, _08133248 + b _0813324E + .align 2, 0 +_08133244: .4byte 0x0203A804 +_08133248: .4byte 0x0203A808 +_0813324C: + ldr r0, _0813326C +_0813324E: + ldrb r3, [r0] + adds r4, r5, #0 + ldr r2, [r4] + ldrb r0, [r2, #2] + cmp r0, #0 + bne _08133274 + ldr r0, _08133270 + lsls r1, r3, #3 + subs r1, r1, r3 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r0, [r1, #4] + cmp r0, #0 + beq _08133278 + b _0813328E + .align 2, 0 +_0813326C: .4byte 0x02023EB0 +_08133270: .4byte 0x02023F60 +_08133274: + cmp r0, #1 + beq _0813327E +_08133278: + adds r0, r2, #7 + str r0, [r4] + b _081332B0 +_0813327E: + ldr r0, _081332A8 + lsls r1, r3, #3 + subs r1, r1, r3 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r0, [r1, #6] + cmp r0, #0 + beq _081332AC +_0813328E: + ldrb r1, [r2, #3] + ldrb r0, [r2, #4] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #6] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _081332B0 + .align 2, 0 +_081332A8: .4byte 0x02023F60 +_081332AC: + adds r0, r2, #7 + str r0, [r5] +_081332B0: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BattleAICmd_if_any_move_disabled_or_encored + + thumb_func_start BattleAICmd_if_curr_move_disabled_or_encored +BattleAICmd_if_curr_move_disabled_or_encored: @ 0x081332B8 + push {r4, lr} + ldr r4, _081332CC + ldr r3, [r4] + ldrb r0, [r3, #1] + cmp r0, #0 + beq _081332D0 + cmp r0, #1 + beq _081332FC + b _0813333C + .align 2, 0 +_081332CC: .4byte 0x0203A804 +_081332D0: + ldr r2, _081332F0 + ldr r0, _081332F4 + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, _081332F8 + ldr r1, [r1] + ldr r1, [r1, #0x14] + ldrh r0, [r0, #4] + ldrh r1, [r1, #2] + cmp r0, r1 + beq _08133318 + b _0813333C + .align 2, 0 +_081332F0: .4byte 0x02023F60 +_081332F4: .4byte 0x02023D08 +_081332F8: .4byte 0x0202414C +_081332FC: + ldr r2, _08133330 + ldr r0, _08133334 + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, _08133338 + ldr r1, [r1] + ldr r1, [r1, #0x14] + ldrh r0, [r0, #6] + ldrh r1, [r1, #2] + cmp r0, r1 + bne _0813333C +_08133318: + ldrb r1, [r3, #2] + ldrb r0, [r3, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r3, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r3, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _08133340 + .align 2, 0 +_08133330: .4byte 0x02023F60 +_08133334: .4byte 0x02023D08 +_08133338: .4byte 0x0202414C +_0813333C: + adds r0, r3, #6 + str r0, [r4] +_08133340: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BattleAICmd_if_curr_move_disabled_or_encored + + thumb_func_start BattleAICmd_flee +BattleAICmd_flee: @ 0x08133348 + ldr r0, _08133358 + ldr r0, [r0] + ldr r2, [r0, #0x14] + ldrb r1, [r2, #0x10] + movs r0, #0xb + orrs r0, r1 + strb r0, [r2, #0x10] + bx lr + .align 2, 0 +_08133358: .4byte 0x0202414C + thumb_func_end BattleAICmd_flee + + thumb_func_start BattleAICmd_if_random_safari_flee +BattleAICmd_if_random_safari_flee: @ 0x0813335C + push {r4, lr} + ldr r0, _081333A0 + ldr r0, [r0] + adds r0, #0x7b + ldrb r0, [r0] + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r4 + bhs _081333A8 + ldr r3, _081333A4 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _081333B0 + .align 2, 0 +_081333A0: .4byte 0x02024140 +_081333A4: .4byte 0x0203A804 +_081333A8: + ldr r1, _081333B8 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] +_081333B0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081333B8: .4byte 0x0203A804 + thumb_func_end BattleAICmd_if_random_safari_flee + + thumb_func_start BattleAICmd_watch +BattleAICmd_watch: @ 0x081333BC + ldr r0, _081333CC + ldr r0, [r0] + ldr r2, [r0, #0x14] + ldrb r1, [r2, #0x10] + movs r0, #0xd + orrs r0, r1 + strb r0, [r2, #0x10] + bx lr + .align 2, 0 +_081333CC: .4byte 0x0202414C + thumb_func_end BattleAICmd_watch + + thumb_func_start BattleAICmd_get_hold_effect +BattleAICmd_get_hold_effect: @ 0x081333D0 + push {r4, lr} + ldr r0, _081333E0 + ldr r0, [r0] + ldrb r0, [r0, #1] + cmp r0, #1 + bne _081333E8 + ldr r0, _081333E4 + b _081333EA + .align 2, 0 +_081333E0: .4byte 0x0203A804 +_081333E4: .4byte 0x0203A808 +_081333E8: + ldr r0, _08133408 +_081333EA: + ldrb r2, [r0] + ldr r0, _0813340C + ldrb r0, [r0] + cmp r0, r2 + beq _08133414 + ldr r4, _08133410 + ldr r0, [r4] + ldr r0, [r0, #0x18] + adds r0, #0x44 + adds r0, r0, r2 + ldrb r0, [r0] + bl sub_080D6CF8 + ldr r1, [r4] + b _08133426 + .align 2, 0 +_08133408: .4byte 0x02023EB0 +_0813340C: .4byte 0x02023D08 +_08133410: .4byte 0x0202414C +_08133414: + ldr r1, _0813343C + movs r0, #0x58 + muls r0, r2, r0 + adds r0, r0, r1 + ldrh r0, [r0, #0x2e] + bl sub_080D6CF8 + ldr r1, _08133440 + ldr r1, [r1] +_08133426: + ldr r1, [r1, #0x14] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [r1, #8] + ldr r1, _08133444 + ldr r0, [r1] + adds r0, #2 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813343C: .4byte 0x02023D28 +_08133440: .4byte 0x0202414C +_08133444: .4byte 0x0203A804 + thumb_func_end BattleAICmd_get_hold_effect + + thumb_func_start BattleAICmd_if_holds_item +BattleAICmd_if_holds_item: @ 0x08133448 + push {r4, lr} + ldr r0, _08133474 + ldr r0, [r0] + ldrb r0, [r0, #1] + bl BattleAI_GetWantedBattler + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + movs r0, #1 + ldr r1, _08133478 + ldrb r2, [r1] + adds r1, r3, #0 + ands r1, r0 + ands r0, r2 + cmp r1, r0 + bne _08133480 + ldr r1, _0813347C + movs r0, #0x58 + muls r0, r3, r0 + adds r0, r0, r1 + ldrh r3, [r0, #0x2e] + b _0813348C + .align 2, 0 +_08133474: .4byte 0x0203A804 +_08133478: .4byte 0x0203A808 +_0813347C: .4byte 0x02023D28 +_08133480: + ldr r0, _081334B4 + ldr r0, [r0] + ldr r0, [r0, #0x18] + adds r0, #0x44 + adds r0, r0, r3 + ldrb r3, [r0] +_0813348C: + ldr r4, _081334B8 + ldr r2, [r4] + ldrb r1, [r2, #2] + ldrb r0, [r2, #3] + orrs r0, r1 + cmp r0, r3 + bne _081334BC + ldrb r1, [r2, #4] + ldrb r0, [r2, #5] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #6] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #7] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _081334C2 + .align 2, 0 +_081334B4: .4byte 0x0202414C +_081334B8: .4byte 0x0203A804 +_081334BC: + adds r0, r2, #0 + adds r0, #8 + str r0, [r4] +_081334C2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end BattleAICmd_if_holds_item + + thumb_func_start BattleAICmd_get_gender +BattleAICmd_get_gender: @ 0x081334C8 + push {lr} + ldr r0, _081334D8 + ldr r0, [r0] + ldrb r0, [r0, #1] + cmp r0, #1 + bne _081334E0 + ldr r0, _081334DC + b _081334E2 + .align 2, 0 +_081334D8: .4byte 0x0203A804 +_081334DC: .4byte 0x0203A808 +_081334E0: + ldr r0, _08133510 +_081334E2: + ldrb r1, [r0] + ldr r2, _08133514 + movs r0, #0x58 + muls r1, r0, r1 + adds r0, r1, r2 + ldrh r0, [r0] + adds r2, #0x48 + adds r1, r1, r2 + ldr r1, [r1] + bl GetGenderFromSpeciesAndPersonality + ldr r1, _08133518 + ldr r1, [r1] + ldr r1, [r1, #0x14] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [r1, #8] + ldr r1, _0813351C + ldr r0, [r1] + adds r0, #2 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08133510: .4byte 0x02023EB0 +_08133514: .4byte 0x02023D28 +_08133518: .4byte 0x0202414C +_0813351C: .4byte 0x0203A804 + thumb_func_end BattleAICmd_get_gender + + thumb_func_start BattleAICmd_is_first_turn_for +BattleAICmd_is_first_turn_for: @ 0x08133520 + push {r4, lr} + ldr r0, _08133534 + ldr r1, [r0] + ldrb r1, [r1, #1] + adds r4, r0, #0 + cmp r1, #1 + bne _0813353C + ldr r0, _08133538 + b _0813353E + .align 2, 0 +_08133534: .4byte 0x0203A804 +_08133538: .4byte 0x0203A808 +_0813353C: + ldr r0, _08133560 +_0813353E: + ldrb r3, [r0] + ldr r0, _08133564 + ldr r0, [r0] + ldr r2, [r0, #0x14] + ldr r1, _08133568 + lsls r0, r3, #3 + subs r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #0x16] + str r0, [r2, #8] + ldr r0, [r4] + adds r0, #2 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08133560: .4byte 0x02023EB0 +_08133564: .4byte 0x0202414C +_08133568: .4byte 0x02023F60 + thumb_func_end BattleAICmd_is_first_turn_for + + thumb_func_start BattleAICmd_get_stockpile_count +BattleAICmd_get_stockpile_count: @ 0x0813356C + push {r4, lr} + ldr r0, _08133580 + ldr r1, [r0] + ldrb r1, [r1, #1] + adds r4, r0, #0 + cmp r1, #1 + bne _08133588 + ldr r0, _08133584 + b _0813358A + .align 2, 0 +_08133580: .4byte 0x0203A804 +_08133584: .4byte 0x0203A808 +_08133588: + ldr r0, _081335AC +_0813358A: + ldrb r3, [r0] + ldr r0, _081335B0 + ldr r0, [r0] + ldr r2, [r0, #0x14] + ldr r1, _081335B4 + lsls r0, r3, #3 + subs r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #9] + str r0, [r2, #8] + ldr r0, [r4] + adds r0, #2 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081335AC: .4byte 0x02023EB0 +_081335B0: .4byte 0x0202414C +_081335B4: .4byte 0x02023F60 + thumb_func_end BattleAICmd_get_stockpile_count + + thumb_func_start BattleAICmd_is_double_battle +BattleAICmd_is_double_battle: @ 0x081335B8 + ldr r0, _081335D4 + ldr r0, [r0] + ldr r2, [r0, #0x14] + ldr r0, _081335D8 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + str r0, [r2, #8] + ldr r1, _081335DC + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + bx lr + .align 2, 0 +_081335D4: .4byte 0x0202414C +_081335D8: .4byte 0x02022C90 +_081335DC: .4byte 0x0203A804 + thumb_func_end BattleAICmd_is_double_battle + + thumb_func_start BattleAICmd_get_used_held_item +BattleAICmd_get_used_held_item: @ 0x081335E0 + push {r4, lr} + ldr r0, _081335F4 + ldr r1, [r0] + ldrb r1, [r1, #1] + adds r4, r0, #0 + cmp r1, #1 + bne _081335FC + ldr r0, _081335F8 + b _081335FE + .align 2, 0 +_081335F4: .4byte 0x0203A804 +_081335F8: .4byte 0x0203A808 +_081335FC: + ldr r0, _08133620 +_081335FE: + ldrb r3, [r0] + ldr r0, _08133624 + ldr r0, [r0] + ldr r2, [r0, #0x14] + ldr r0, _08133628 + ldr r1, [r0] + lsls r0, r3, #1 + adds r0, r0, r1 + adds r0, #0xb8 + ldrb r0, [r0] + str r0, [r2, #8] + ldr r0, [r4] + adds r0, #2 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08133620: .4byte 0x02023EB0 +_08133624: .4byte 0x0202414C +_08133628: .4byte 0x02024140 + thumb_func_end BattleAICmd_get_used_held_item + + thumb_func_start BattleAICmd_get_move_type_from_result +BattleAICmd_get_move_type_from_result: @ 0x0813362C + ldr r0, _0813364C + ldr r0, [r0] + ldr r3, [r0, #0x14] + ldr r2, _08133650 + ldr r1, [r3, #8] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #2] + str r0, [r3, #8] + ldr r1, _08133654 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + bx lr + .align 2, 0 +_0813364C: .4byte 0x0202414C +_08133650: .4byte 0x082ED220 +_08133654: .4byte 0x0203A804 + thumb_func_end BattleAICmd_get_move_type_from_result + + thumb_func_start BattleAICmd_get_move_power_from_result +BattleAICmd_get_move_power_from_result: @ 0x08133658 + ldr r0, _08133678 + ldr r0, [r0] + ldr r3, [r0, #0x14] + ldr r2, _0813367C + ldr r1, [r3, #8] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #1] + str r0, [r3, #8] + ldr r1, _08133680 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + bx lr + .align 2, 0 +_08133678: .4byte 0x0202414C +_0813367C: .4byte 0x082ED220 +_08133680: .4byte 0x0203A804 + thumb_func_end BattleAICmd_get_move_power_from_result + + thumb_func_start BattleAICmd_get_move_effect_from_result +BattleAICmd_get_move_effect_from_result: @ 0x08133684 + ldr r0, _081336A4 + ldr r0, [r0] + ldr r3, [r0, #0x14] + ldr r2, _081336A8 + ldr r1, [r3, #8] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0] + str r0, [r3, #8] + ldr r1, _081336AC + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + bx lr + .align 2, 0 +_081336A4: .4byte 0x0202414C +_081336A8: .4byte 0x082ED220 +_081336AC: .4byte 0x0203A804 + thumb_func_end BattleAICmd_get_move_effect_from_result + + thumb_func_start BattleAICmd_get_protect_count +BattleAICmd_get_protect_count: @ 0x081336B0 + push {r4, lr} + ldr r0, _081336C4 + ldr r1, [r0] + ldrb r1, [r1, #1] + adds r4, r0, #0 + cmp r1, #1 + bne _081336CC + ldr r0, _081336C8 + b _081336CE + .align 2, 0 +_081336C4: .4byte 0x0203A804 +_081336C8: .4byte 0x0203A808 +_081336CC: + ldr r0, _081336F0 +_081336CE: + ldrb r3, [r0] + ldr r0, _081336F4 + ldr r0, [r0] + ldr r2, [r0, #0x14] + ldr r1, _081336F8 + lsls r0, r3, #3 + subs r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #8] + str r0, [r2, #8] + ldr r0, [r4] + adds r0, #2 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081336F0: .4byte 0x02023EB0 +_081336F4: .4byte 0x0202414C +_081336F8: .4byte 0x02023F60 + thumb_func_end BattleAICmd_get_protect_count + + thumb_func_start BattleAICmd_nullsub_53 +BattleAICmd_nullsub_53: @ 0x081336FC + bx lr + .align 2, 0 + thumb_func_end BattleAICmd_nullsub_53 + + thumb_func_start BattleAICmd_nullsub_54 +BattleAICmd_nullsub_54: @ 0x08133700 + bx lr + .align 2, 0 + thumb_func_end BattleAICmd_nullsub_54 + + thumb_func_start BattleAICmd_nullsub_55 +BattleAICmd_nullsub_55: @ 0x08133704 + bx lr + .align 2, 0 + thumb_func_end BattleAICmd_nullsub_55 + + thumb_func_start BattleAICmd_nullsub_56 +BattleAICmd_nullsub_56: @ 0x08133708 + bx lr + .align 2, 0 + thumb_func_end BattleAICmd_nullsub_56 + + thumb_func_start BattleAICmd_nullsub_57 +BattleAICmd_nullsub_57: @ 0x0813370C + bx lr + .align 2, 0 + thumb_func_end BattleAICmd_nullsub_57 + + thumb_func_start BattleAICmd_nullsub_2A +BattleAICmd_nullsub_2A: @ 0x08133710 + bx lr + .align 2, 0 + thumb_func_end BattleAICmd_nullsub_2A + + thumb_func_start BattleAICmd_call +BattleAICmd_call: @ 0x08133714 + push {r4, lr} + ldr r4, _08133740 + ldr r0, [r4] + adds r0, #5 + bl sub_081339A0 + ldr r2, [r4] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08133740: .4byte 0x0203A804 + thumb_func_end BattleAICmd_call + + thumb_func_start BattleAICmd_goto +BattleAICmd_goto: @ 0x08133744 + ldr r3, _08133760 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + bx lr + .align 2, 0 +_08133760: .4byte 0x0203A804 + thumb_func_end BattleAICmd_goto + + thumb_func_start BattleAICmd_end +BattleAICmd_end: @ 0x08133764 + push {lr} + bl ScrSpecial_TraderMenuGiveDecoration + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0813377E + ldr r0, _08133784 + ldr r0, [r0] + ldr r2, [r0, #0x14] + ldrb r1, [r2, #0x10] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #0x10] +_0813377E: + pop {r0} + bx r0 + .align 2, 0 +_08133784: .4byte 0x0202414C + thumb_func_end BattleAICmd_end + + thumb_func_start BattleAICmd_if_level_cond +BattleAICmd_if_level_cond: @ 0x08133788 + push {r4, r5, lr} + ldr r5, _081337A0 + ldr r4, [r5] + ldrb r0, [r4, #1] + cmp r0, #1 + beq _081337DC + cmp r0, #1 + bgt _081337A4 + cmp r0, #0 + beq _081337AA + b _08133858 + .align 2, 0 +_081337A0: .4byte 0x0203A804 +_081337A4: + cmp r0, #2 + beq _0813380C + b _08133858 +_081337AA: + ldr r3, _081337D0 + ldr r0, _081337D4 + ldrb r0, [r0] + movs r2, #0x58 + adds r1, r0, #0 + muls r1, r2, r1 + adds r1, r1, r3 + adds r1, #0x2a + ldr r0, _081337D8 + ldrb r0, [r0] + muls r0, r2, r0 + adds r0, r0, r3 + adds r0, #0x2a + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bhi _0813382E + b _08133854 + .align 2, 0 +_081337D0: .4byte 0x02023D28 +_081337D4: .4byte 0x0203A808 +_081337D8: .4byte 0x02023EB0 +_081337DC: + ldr r3, _08133800 + ldr r0, _08133804 + ldrb r0, [r0] + movs r2, #0x58 + adds r1, r0, #0 + muls r1, r2, r1 + adds r1, r1, r3 + adds r1, #0x2a + ldr r0, _08133808 + ldrb r0, [r0] + muls r0, r2, r0 + adds r0, r0, r3 + adds r0, #0x2a + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + blo _0813382E + b _08133854 + .align 2, 0 +_08133800: .4byte 0x02023D28 +_08133804: .4byte 0x0203A808 +_08133808: .4byte 0x02023EB0 +_0813380C: + ldr r3, _08133848 + ldr r0, _0813384C + ldrb r0, [r0] + movs r2, #0x58 + adds r1, r0, #0 + muls r1, r2, r1 + adds r1, r1, r3 + adds r1, #0x2a + ldr r0, _08133850 + ldrb r0, [r0] + muls r0, r2, r0 + adds r0, r0, r3 + adds r0, #0x2a + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bne _08133854 +_0813382E: + ldrb r1, [r4, #2] + ldrb r0, [r4, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r4, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r4, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r5] + b _08133858 + .align 2, 0 +_08133848: .4byte 0x02023D28 +_0813384C: .4byte 0x0203A808 +_08133850: .4byte 0x02023EB0 +_08133854: + adds r0, r4, #6 + str r0, [r5] +_08133858: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BattleAICmd_if_level_cond + + thumb_func_start BattleAICmd_if_target_taunted +BattleAICmd_if_target_taunted: @ 0x08133860 + push {lr} + ldr r2, _08133894 + ldr r0, _08133898 + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #0x13] + lsls r0, r0, #0x1c + cmp r0, #0 + beq _081338A0 + ldr r3, _0813389C + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _081338A8 + .align 2, 0 +_08133894: .4byte 0x02023F60 +_08133898: .4byte 0x02023EB0 +_0813389C: .4byte 0x0203A804 +_081338A0: + ldr r1, _081338AC + ldr r0, [r1] + adds r0, #5 + str r0, [r1] +_081338A8: + pop {r0} + bx r0 + .align 2, 0 +_081338AC: .4byte 0x0203A804 + thumb_func_end BattleAICmd_if_target_taunted + + thumb_func_start BattleAICmd_if_target_not_taunted +BattleAICmd_if_target_not_taunted: @ 0x081338B0 + push {lr} + ldr r2, _081338E4 + ldr r0, _081338E8 + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #0x13] + lsls r0, r0, #0x1c + cmp r0, #0 + bne _081338F0 + ldr r3, _081338EC + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _081338F8 + .align 2, 0 +_081338E4: .4byte 0x02023F60 +_081338E8: .4byte 0x02023EB0 +_081338EC: .4byte 0x0203A804 +_081338F0: + ldr r1, _081338FC + ldr r0, [r1] + adds r0, #5 + str r0, [r1] +_081338F8: + pop {r0} + bx r0 + .align 2, 0 +_081338FC: .4byte 0x0203A804 + thumb_func_end BattleAICmd_if_target_not_taunted + + thumb_func_start BattleAICmd_if_target_is_ally +BattleAICmd_if_target_is_ally: @ 0x08133900 + push {lr} + ldr r0, _08133934 + ldrb r3, [r0] + movs r0, #1 + ldr r1, _08133938 + ldrb r2, [r1] + adds r1, r0, #0 + ands r1, r3 + ands r0, r2 + cmp r1, r0 + bne _08133940 + ldr r3, _0813393C + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08133948 + .align 2, 0 +_08133934: .4byte 0x0203A808 +_08133938: .4byte 0x02023EB0 +_0813393C: .4byte 0x0203A804 +_08133940: + ldr r1, _0813394C + ldr r0, [r1] + adds r0, #5 + str r0, [r1] +_08133948: + pop {r0} + bx r0 + .align 2, 0 +_0813394C: .4byte 0x0203A804 + thumb_func_end BattleAICmd_if_target_is_ally + + thumb_func_start BattleAICmd_if_flash_fired +BattleAICmd_if_flash_fired: @ 0x08133950 + push {r4, lr} + ldr r4, _0813398C + ldr r0, [r4] + ldrb r0, [r0, #1] + bl BattleAI_GetWantedBattler + lsls r0, r0, #0x18 + ldr r1, _08133990 + ldr r1, [r1] + ldr r1, [r1, #4] + lsrs r0, r0, #0x16 + adds r1, r1, r0 + ldr r0, [r1] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08133994 + ldr r2, [r4] + ldrb r1, [r2, #2] + ldrb r0, [r2, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _0813399A + .align 2, 0 +_0813398C: .4byte 0x0203A804 +_08133990: .4byte 0x0202414C +_08133994: + ldr r0, [r4] + adds r0, #6 + str r0, [r4] +_0813399A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end BattleAICmd_if_flash_fired + + thumb_func_start sub_081339A0 +sub_081339A0: @ 0x081339A0 + push {r4, lr} + ldr r1, _081339C0 + ldr r1, [r1] + ldr r3, [r1, #0x1c] + adds r4, r3, #0 + adds r4, #0x20 + ldrb r1, [r4] + adds r2, r1, #1 + strb r2, [r4] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x16 + adds r3, r3, r1 + str r0, [r3] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081339C0: .4byte 0x0202414C + thumb_func_end sub_081339A0 + + thumb_func_start AIStackPushVar_cursor +AIStackPushVar_cursor: @ 0x081339C4 + ldr r0, _081339E4 + ldr r0, [r0] + ldr r2, [r0, #0x1c] + adds r3, r2, #0 + adds r3, #0x20 + ldrb r0, [r3] + adds r1, r0, #1 + strb r1, [r3] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r2, r2, r0 + ldr r0, _081339E8 + ldr r0, [r0] + str r0, [r2] + bx lr + .align 2, 0 +_081339E4: .4byte 0x0202414C +_081339E8: .4byte 0x0203A804 + thumb_func_end AIStackPushVar_cursor + diff --git a/asm/battle_ai_switch_items.s b/asm/battle_ai_switch_items.s new file mode 100644 index 0000000..40c275b --- /dev/null +++ b/asm/battle_ai_switch_items.s @@ -0,0 +1,3010 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ShouldSwitchIfPerishSong +ShouldSwitchIfPerishSong: @ 0x080627DC + push {lr} + ldr r1, _08062824 + ldr r0, _08062828 + ldrb r2, [r0] + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08062834 + ldr r0, _0806282C + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #0xf] + lsls r0, r0, #0x1c + cmp r0, #0 + bne _08062834 + ldr r0, _08062830 + ldr r0, [r0] + adds r0, r2, r0 + movs r1, #0xa5 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r1, #6 + strb r1, [r0] + movs r0, #1 + movs r1, #2 + movs r2, #0 + bl BtlController_EmitTwoReturnValues + movs r0, #1 + b _08062836 + .align 2, 0 +_08062824: .4byte 0x02023F50 +_08062828: .4byte 0x02023D08 +_0806282C: .4byte 0x02023F60 +_08062830: .4byte 0x02024140 +_08062834: + movs r0, #0 +_08062836: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ShouldSwitchIfPerishSong + + thumb_func_start ShouldSwitchIfWonderGuard +ShouldSwitchIfWonderGuard: @ 0x0806283C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r0, _080628F4 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08062856 + b _08062A10 +_08062856: + ldr r0, _080628F8 + ldrb r0, [r0] + bl GetBattlerPosition + movs r1, #1 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + ldr r4, _080628FC + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x58 + muls r0, r1, r0 + adds r0, r0, r4 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x19 + beq _08062882 + b _08062A10 +_08062882: + mov r0, sl + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + movs r6, #0 + mov r8, r4 + movs r7, #0x58 + adds r0, r2, #0 + muls r0, r7, r0 + adds r4, r0, r4 + movs r0, #0x20 + adds r0, r0, r4 + mov sb, r0 +_0806289E: + lsls r1, r6, #1 + ldr r5, _080628F8 + ldrb r0, [r5] + muls r0, r7, r0 + adds r1, r1, r0 + mov r0, r8 + adds r0, #0xc + adds r1, r1, r0 + ldrh r0, [r1] + cmp r0, #0 + beq _080628CC + ldrh r1, [r4] + mov r3, sb + ldrb r2, [r3] + bl AI_TypeCalc + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r0, #2 + ands r1, r0 + cmp r1, #0 + beq _080628CC + b _08062A10 +_080628CC: + adds r6, #1 + cmp r6, #3 + ble _0806289E + ldr r0, _080628F4 + ldr r0, [r0] + ldr r1, _08062900 + ands r0, r1 + cmp r0, #0 + beq _08062934 + ldrb r1, [r5] + movs r0, #2 + ands r0, r1 + adds r1, r5, #0 + cmp r0, #0 + bne _08062904 + movs r4, #0 + movs r0, #3 + str r0, [sp] + b _0806293C + .align 2, 0 +_080628F4: .4byte 0x02022C90 +_080628F8: .4byte 0x02023D08 +_080628FC: .4byte 0x02023D28 +_08062900: .4byte 0x00808000 +_08062904: + movs r4, #3 + movs r3, #6 + str r3, [sp] + b _0806293C +_0806290C: + ldr r0, _0806292C + ldrb r0, [r0] + ldr r1, _08062930 + ldr r1, [r1] + adds r0, r0, r1 + movs r1, #0xa5 + lsls r1, r1, #2 + adds r0, r0, r1 + strb r6, [r0] + movs r0, #1 + movs r1, #2 + movs r2, #0 + bl BtlController_EmitTwoReturnValues + movs r0, #1 + b _08062A12 + .align 2, 0 +_0806292C: .4byte 0x02023D08 +_08062930: .4byte 0x02024140 +_08062934: + movs r4, #0 + movs r3, #6 + str r3, [sp] + adds r1, r5, #0 +_0806293C: + ldrb r0, [r1] + bl GetBattlerSide + lsls r0, r0, #0x18 + ldr r1, _08062A24 + mov sb, r1 + cmp r0, #0 + bne _08062950 + ldr r3, _08062A28 + mov sb, r3 +_08062950: + adds r6, r4, #0 + ldr r0, [sp] + cmp r6, r0 + bge _08062A10 +_08062958: + movs r0, #0x64 + adds r5, r6, #0 + muls r5, r0, r5 + mov r1, sb + adds r4, r1, r5 + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _08062A08 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + cmp r0, #0 + beq _08062A08 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + movs r1, #0xce + lsls r1, r1, #1 + cmp r0, r1 + beq _08062A08 + ldr r1, _08062A2C + ldr r0, _08062A30 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r6, r0 + beq _08062A08 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + adds r0, r4, #0 + movs r1, #0x2e + bl GetMonData + mov r0, sl + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + movs r4, #0 + mov r8, r5 + ldr r1, _08062A34 + movs r0, #0x58 + muls r0, r2, r0 + adds r5, r0, r1 + adds r7, r5, #0 + adds r7, #0x20 +_080629C4: + adds r1, r4, #0 + adds r1, #0xd + mov r0, sb + add r0, r8 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + beq _08062A02 + ldrh r1, [r5] + ldrb r2, [r7] + bl AI_TypeCalc + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r0, #2 + ands r1, r0 + cmp r1, #0 + beq _08062A02 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bls _0806290C +_08062A02: + adds r4, #1 + cmp r4, #3 + ble _080629C4 +_08062A08: + adds r6, #1 + ldr r3, [sp] + cmp r6, r3 + blt _08062958 +_08062A10: + movs r0, #0 +_08062A12: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08062A24: .4byte 0x020243E8 +_08062A28: .4byte 0x02024190 +_08062A2C: .4byte 0x02023D12 +_08062A30: .4byte 0x02023D08 +_08062A34: .4byte 0x02023D28 + thumb_func_end ShouldSwitchIfWonderGuard + + thumb_func_start FindMonThatAbsorbsOpponentsMove +FindMonThatAbsorbsOpponentsMove: @ 0x08062A38 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + movs r0, #1 + bl HasSuperEffectiveMoveAgainstOpponents + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08062A66 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08062A66 + b _08062C90 +_08062A66: + ldr r1, _08062ACC + ldr r5, _08062AD0 + ldrb r3, [r5] + lsls r0, r3, #1 + adds r4, r0, r1 + ldrh r1, [r4] + cmp r1, #0 + bne _08062A78 + b _08062C90 +_08062A78: + ldr r0, _08062AD4 + cmp r1, r0 + bne _08062A80 + b _08062C90 +_08062A80: + ldr r2, _08062AD8 + ldrh r1, [r4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #1] + cmp r0, #0 + bne _08062A94 + b _08062C90 +_08062A94: + ldr r0, _08062ADC + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08062AFE + mov r8, r3 + mov r0, r8 + bl GetBattlerPosition + movs r4, #2 + eors r0, r4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + ldr r1, _08062AE0 + ldrb r1, [r1] + ldr r2, _08062AE4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _08062AE8 + ldrb r7, [r5] + b _08062B02 + .align 2, 0 +_08062ACC: .4byte 0x02023EF4 +_08062AD0: .4byte 0x02023D08 +_08062AD4: .4byte 0x0000FFFF +_08062AD8: .4byte 0x082ED220 +_08062ADC: .4byte 0x02022C90 +_08062AE0: .4byte 0x02023EB4 +_08062AE4: .4byte 0x082FACB4 +_08062AE8: + ldrb r0, [r5] + bl GetBattlerPosition + eors r0, r4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + b _08062B02 +_08062AFE: + adds r7, r3, #0 + mov r8, r7 +_08062B02: + ldr r3, _08062B24 + ldr r1, _08062B28 + ldr r2, _08062B2C + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0, #2] + cmp r0, #0xa + bne _08062B30 + movs r0, #0x12 + b _08062B42 + .align 2, 0 +_08062B24: .4byte 0x082ED220 +_08062B28: .4byte 0x02023EF4 +_08062B2C: .4byte 0x02023D08 +_08062B30: + cmp r0, #0xb + bne _08062B3A + movs r1, #0xb + str r1, [sp] + b _08062B44 +_08062B3A: + cmp r0, #0xd + beq _08062B40 + b _08062C90 +_08062B40: + movs r0, #0xa +_08062B42: + str r0, [sp] +_08062B44: + ldr r1, _08062B74 + ldrb r3, [r2] + movs r0, #0x58 + muls r0, r3, r0 + adds r0, r0, r1 + adds r0, #0x20 + ldrb r0, [r0] + ldr r1, [sp] + cmp r0, r1 + bne _08062B5A + b _08062C90 +_08062B5A: + ldr r0, _08062B78 + ldr r0, [r0] + ldr r1, _08062B7C + ands r0, r1 + cmp r0, #0 + beq _08062BB0 + movs r0, #2 + ands r3, r0 + cmp r3, #0 + bne _08062B80 + movs r4, #0 + movs r0, #3 + b _08062BB4 + .align 2, 0 +_08062B74: .4byte 0x02023D28 +_08062B78: .4byte 0x02022C90 +_08062B7C: .4byte 0x00808000 +_08062B80: + movs r4, #3 + movs r1, #6 + mov sl, r1 + b _08062BB6 +_08062B88: + ldr r0, _08062BA8 + ldrb r0, [r0] + ldr r1, _08062BAC + ldr r1, [r1] + adds r0, r0, r1 + movs r2, #0xa5 + lsls r2, r2, #2 + adds r0, r0, r2 + strb r5, [r0] + movs r0, #1 + movs r1, #2 + movs r2, #0 + bl BtlController_EmitTwoReturnValues + movs r0, #1 + b _08062C92 + .align 2, 0 +_08062BA8: .4byte 0x02023D08 +_08062BAC: .4byte 0x02024140 +_08062BB0: + movs r4, #0 + movs r0, #6 +_08062BB4: + mov sl, r0 +_08062BB6: + ldrb r0, [r2] + bl GetBattlerSide + lsls r0, r0, #0x18 + ldr r1, _08062C58 + str r1, [sp, #4] + cmp r0, #0 + bne _08062BCA + ldr r2, _08062C5C + str r2, [sp, #4] +_08062BCA: + adds r5, r4, #0 + cmp r5, sl + bge _08062C90 + ldr r0, _08062C60 + mov sb, r0 +_08062BD4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, [sp, #4] + adds r6, r1, r0 + adds r0, r6, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _08062C8A + adds r0, r6, #0 + movs r1, #0x41 + bl GetMonData + cmp r0, #0 + beq _08062C8A + adds r0, r6, #0 + movs r1, #0x41 + bl GetMonData + movs r1, #0xce + lsls r1, r1, #1 + cmp r0, r1 + beq _08062C8A + ldr r1, _08062C64 + mov r2, r8 + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r5, r0 + beq _08062C8A + lsls r0, r7, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r5, r0 + beq _08062C8A + ldr r0, _08062C68 + ldr r1, [r0] + adds r0, r2, r1 + adds r0, #0x5c + ldrb r0, [r0] + cmp r5, r0 + beq _08062C8A + adds r0, r7, r1 + adds r0, #0x5c + ldrb r0, [r0] + cmp r5, r0 + beq _08062C8A + adds r0, r6, #0 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r6, #0 + movs r1, #0x2e + bl GetMonData + cmp r0, #0 + beq _08062C6C + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + add r0, sb + ldrb r0, [r0, #0x17] + b _08062C76 + .align 2, 0 +_08062C58: .4byte 0x020243E8 +_08062C5C: .4byte 0x02024190 +_08062C60: .4byte 0x082F0D54 +_08062C64: .4byte 0x02023D12 +_08062C68: .4byte 0x02024140 +_08062C6C: + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + add r0, sb + ldrb r0, [r0, #0x16] +_08062C76: + ldr r1, [sp] + cmp r1, r0 + bne _08062C8A + bl Random + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _08062C8A + b _08062B88 +_08062C8A: + adds r5, #1 + cmp r5, sl + blt _08062BD4 +_08062C90: + movs r0, #0 +_08062C92: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end FindMonThatAbsorbsOpponentsMove + + thumb_func_start ShouldSwitchIfNaturalCure +ShouldSwitchIfNaturalCure: @ 0x08062CA4 + push {r4, r5, lr} + ldr r3, _08062CFC + ldr r5, _08062D00 + ldrb r4, [r5] + movs r0, #0x58 + adds r2, r4, #0 + muls r2, r0, r2 + adds r0, r3, #0 + adds r0, #0x4c + adds r0, r2, r0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + beq _08062D6C + adds r1, r2, r3 + adds r0, r1, #0 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x1e + bne _08062D6C + ldrh r0, [r1, #0x2c] + ldrh r1, [r1, #0x28] + lsrs r0, r0, #1 + cmp r1, r0 + blo _08062D6C + ldr r1, _08062D04 + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r0] + cmp r1, #0 + beq _08062CEA + ldr r0, _08062D08 + cmp r1, r0 + bne _08062D0C +_08062CEA: + bl Random + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _08062D0C + ldrb r0, [r5] + b _08062D74 + .align 2, 0 +_08062CFC: .4byte 0x02023D28 +_08062D00: .4byte 0x02023D08 +_08062D04: .4byte 0x02023EF4 +_08062D08: .4byte 0x0000FFFF +_08062D0C: + ldr r2, _08062D38 + ldr r1, _08062D3C + ldr r4, _08062D40 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #1] + cmp r0, #0 + bne _08062D44 + bl Random + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _08062D44 + ldrb r0, [r4] + b _08062D74 + .align 2, 0 +_08062D38: .4byte 0x082ED220 +_08062D3C: .4byte 0x02023EF4 +_08062D40: .4byte 0x02023D08 +_08062D44: + movs r0, #8 + movs r1, #1 + bl FindMonWithFlagsAndSuperEffective + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08062D8E + movs r0, #4 + movs r1, #1 + bl FindMonWithFlagsAndSuperEffective + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08062D8E + bl Random + movs r1, #1 + ands r1, r0 + cmp r1, #0 + bne _08062D70 +_08062D6C: + movs r0, #0 + b _08062D90 +_08062D70: + ldr r0, _08062D98 + ldrb r0, [r0] +_08062D74: + ldr r1, _08062D9C + ldr r1, [r1] + adds r0, r0, r1 + movs r1, #0xa5 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r1, #6 + strb r1, [r0] + movs r0, #1 + movs r1, #2 + movs r2, #0 + bl BtlController_EmitTwoReturnValues +_08062D8E: + movs r0, #1 +_08062D90: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08062D98: .4byte 0x02023D08 +_08062D9C: .4byte 0x02024140 + thumb_func_end ShouldSwitchIfNaturalCure + + thumb_func_start HasSuperEffectiveMoveAgainstOpponents +HasSuperEffectiveMoveAgainstOpponents: @ 0x08062DA0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldr r0, _08062E48 + ldrb r0, [r0] + bl GetBattlerPosition + movs r1, #1 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r0, _08062E4C + ldrb r1, [r0] + ldr r2, _08062E50 + lsls r0, r3, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _08062E3A + movs r4, #0 + ldr r6, _08062E54 + movs r7, #0x58 + adds r0, r3, #0 + muls r0, r7, r0 + adds r5, r0, r6 + movs r0, #0x20 + adds r0, r0, r5 + mov r8, r0 +_08062DEE: + lsls r1, r4, #1 + ldr r0, _08062E48 + ldrb r0, [r0] + muls r0, r7, r0 + adds r1, r1, r0 + adds r0, r6, #0 + adds r0, #0xc + adds r1, r1, r0 + ldrh r0, [r1] + cmp r0, #0 + beq _08062E34 + ldrh r1, [r5] + mov r3, r8 + ldrb r2, [r3] + bl AI_TypeCalc + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r0, #2 + ands r1, r0 + cmp r1, #0 + beq _08062E34 + mov r0, sb + cmp r0, #0 + bne _08062E5C + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __umodsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08062E5C +_08062E34: + adds r4, #1 + cmp r4, #3 + ble _08062DEE +_08062E3A: + ldr r0, _08062E58 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08062E60 + b _08062EDE + .align 2, 0 +_08062E48: .4byte 0x02023D08 +_08062E4C: .4byte 0x02023EB4 +_08062E50: .4byte 0x082FACB4 +_08062E54: .4byte 0x02023D28 +_08062E58: .4byte 0x02022C90 +_08062E5C: + movs r0, #1 + b _08062EE0 +_08062E60: + movs r1, #2 + mov r0, sl + eors r0, r1 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r0, _08062EF0 + ldrb r1, [r0] + ldr r2, _08062EF4 + lsls r0, r3, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _08062EDE + movs r4, #0 + ldr r6, _08062EF8 + movs r7, #0x58 + adds r0, r3, #0 + muls r0, r7, r0 + adds r5, r0, r6 + movs r3, #0x20 + adds r3, r3, r5 + mov r8, r3 +_08062E92: + lsls r1, r4, #1 + ldr r0, _08062EFC + ldrb r0, [r0] + muls r0, r7, r0 + adds r1, r1, r0 + adds r0, r6, #0 + adds r0, #0xc + adds r1, r1, r0 + ldrh r0, [r1] + cmp r0, #0 + beq _08062ED8 + ldrh r1, [r5] + mov r3, r8 + ldrb r2, [r3] + bl AI_TypeCalc + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r0, #2 + ands r1, r0 + cmp r1, #0 + beq _08062ED8 + mov r0, sb + cmp r0, #0 + bne _08062E5C + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __umodsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08062E5C +_08062ED8: + adds r4, #1 + cmp r4, #3 + ble _08062E92 +_08062EDE: + movs r0, #0 +_08062EE0: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08062EF0: .4byte 0x02023EB4 +_08062EF4: .4byte 0x082FACB4 +_08062EF8: .4byte 0x02023D28 +_08062EFC: .4byte 0x02023D08 + thumb_func_end HasSuperEffectiveMoveAgainstOpponents + + thumb_func_start AreStatsRaised +AreStatsRaised: @ 0x08062F00 + push {r4, lr} + movs r4, #0 + ldr r1, _08062F40 + ldr r0, _08062F44 + ldrb r2, [r0] + movs r0, #0x58 + muls r0, r2, r0 + adds r1, #0x18 + adds r2, r0, r1 + movs r3, #7 +_08062F14: + ldrb r1, [r2] + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #6 + ble _08062F2A + subs r1, #6 + lsls r0, r4, #0x18 + asrs r0, r0, #0x18 + adds r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_08062F2A: + adds r2, #1 + subs r3, #1 + cmp r3, #0 + bge _08062F14 + movs r0, #0 + cmp r4, #3 + bls _08062F3A + movs r0, #1 +_08062F3A: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08062F40: .4byte 0x02023D28 +_08062F44: .4byte 0x02023D08 + thumb_func_end AreStatsRaised + + thumb_func_start FindMonWithFlagsAndSuperEffective +FindMonWithFlagsAndSuperEffective: @ 0x08062F48 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp, #4] + ldr r2, _08062FD8 + ldr r1, _08062FDC + ldrb r3, [r1] + lsls r0, r3, #1 + adds r4, r0, r2 + ldrh r2, [r4] + adds r5, r1, #0 + cmp r2, #0 + bne _08062F74 + b _080631D2 +_08062F74: + ldr r0, _08062FE0 + cmp r2, r0 + bne _08062F7C + b _080631D2 +_08062F7C: + ldr r0, _08062FE4 + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, #0xff + bne _08062F88 + b _080631D2 +_08062F88: + ldr r2, _08062FE8 + ldrh r1, [r4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #1] + cmp r0, #0 + bne _08062F9C + b _080631D2 +_08062F9C: + ldr r0, _08062FEC + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08063010 + mov sb, r3 + mov r0, sb + bl GetBattlerPosition + movs r4, #2 + eors r0, r4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + ldr r1, _08062FF0 + ldrb r1, [r1] + ldr r2, _08062FF4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _08062FF8 + ldrb r5, [r5] + mov sl, r5 + b _08063014 + .align 2, 0 +_08062FD8: .4byte 0x02023EF4 +_08062FDC: .4byte 0x02023D08 +_08062FE0: .4byte 0x0000FFFF +_08062FE4: .4byte 0x02023F14 +_08062FE8: .4byte 0x082ED220 +_08062FEC: .4byte 0x02022C90 +_08062FF0: .4byte 0x02023EB4 +_08062FF4: .4byte 0x082FACB4 +_08062FF8: + ldrb r0, [r5] + bl GetBattlerPosition + eors r0, r4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + b _08063014 +_08063010: + mov sb, r3 + mov sl, sb +_08063014: + ldr r0, _08063038 + ldr r0, [r0] + ldr r1, _0806303C + ands r0, r1 + cmp r0, #0 + beq _08063074 + ldr r2, _08063040 + ldrb r1, [r2] + movs r0, #2 + ands r0, r1 + adds r5, r2, #0 + cmp r0, #0 + bne _08063044 + movs r4, #0 + movs r0, #3 + str r0, [sp, #8] + b _0806307C + .align 2, 0 +_08063038: .4byte 0x02022C90 +_0806303C: .4byte 0x00808000 +_08063040: .4byte 0x02023D08 +_08063044: + movs r4, #3 + movs r1, #6 + str r1, [sp, #8] + b _0806307C +_0806304C: + ldr r0, _0806306C + ldrb r0, [r0] + ldr r1, _08063070 + ldr r1, [r1] + adds r0, r0, r1 + movs r2, #0xa5 + lsls r2, r2, #2 + adds r0, r0, r2 + strb r6, [r0] + movs r0, #1 + movs r1, #2 + movs r2, #0 + bl BtlController_EmitTwoReturnValues + movs r0, #1 + b _080631D4 + .align 2, 0 +_0806306C: .4byte 0x02023D08 +_08063070: .4byte 0x02024140 +_08063074: + movs r4, #0 + movs r0, #6 + str r0, [sp, #8] + ldr r5, _08063094 +_0806307C: + ldrb r0, [r5] + bl GetBattlerSide + lsls r0, r0, #0x18 + ldr r1, _08063098 + str r1, [sp, #0xc] + cmp r0, #0 + bne _08063090 + ldr r2, _0806309C + str r2, [sp, #0xc] +_08063090: + adds r6, r4, #0 + b _080631CA + .align 2, 0 +_08063094: .4byte 0x02023D08 +_08063098: .4byte 0x020243E8 +_0806309C: .4byte 0x02024190 +_080630A0: + movs r0, #0x64 + muls r0, r6, r0 + ldr r1, [sp, #0xc] + adds r5, r1, r0 + adds r0, r5, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + bne _080630B6 + b _080631C8 +_080630B6: + adds r0, r5, #0 + movs r1, #0x41 + bl GetMonData + cmp r0, #0 + bne _080630C4 + b _080631C8 +_080630C4: + adds r0, r5, #0 + movs r1, #0x41 + bl GetMonData + movs r1, #0xce + lsls r1, r1, #1 + cmp r0, r1 + beq _080631C8 + ldr r1, _08063130 + mov r2, sb + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r6, r0 + beq _080631C8 + mov r2, sl + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r6, r0 + beq _080631C8 + ldr r0, _08063134 + ldr r1, [r0] + mov r2, sb + adds r0, r2, r1 + adds r0, #0x5c + ldrb r0, [r0] + cmp r6, r0 + beq _080631C8 + mov r2, sl + adds r0, r2, r1 + adds r0, #0x5c + ldrb r0, [r0] + cmp r6, r0 + beq _080631C8 + adds r0, r5, #0 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r5, #0 + movs r1, #0x2e + bl GetMonData + cmp r0, #0 + beq _0806313C + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + ldr r1, _08063138 + adds r0, r0, r1 + ldrb r2, [r0, #0x17] + b _08063148 + .align 2, 0 +_08063130: .4byte 0x02023D12 +_08063134: .4byte 0x02024140 +_08063138: .4byte 0x082F0D54 +_0806313C: + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + ldr r2, _080631E4 + adds r0, r0, r2 + ldrb r2, [r0, #0x16] +_08063148: + ldr r1, _080631E8 + ldr r5, _080631EC + ldrb r0, [r5] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + adds r1, r4, #0 + bl AI_TypeCalc + ldr r1, [sp] + ands r1, r0 + cmp r1, #0 + beq _080631C8 + ldr r1, _080631F0 + ldrb r0, [r5] + adds r0, r0, r1 + ldrb r0, [r0] + mov sb, r0 + movs r4, #0 + movs r0, #0x64 + adds r1, r6, #0 + muls r1, r0, r1 + mov r8, r1 + ldr r1, _080631F4 + movs r0, #0x58 + mov r2, sb + muls r2, r0, r2 + adds r0, r2, #0 + adds r5, r0, r1 + adds r7, r5, #0 + adds r7, #0x20 +_08063186: + adds r1, r4, #0 + adds r1, #0xd + ldr r0, [sp, #0xc] + add r0, r8 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + beq _080631C2 + ldrh r1, [r5] + ldrb r2, [r7] + bl AI_TypeCalc + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r0, #2 + ands r1, r0 + cmp r1, #0 + beq _080631C2 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, [sp, #4] + bl __modsi3 + cmp r0, #0 + bne _080631C2 + b _0806304C +_080631C2: + adds r4, #1 + cmp r4, #3 + ble _08063186 +_080631C8: + adds r6, #1 +_080631CA: + ldr r0, [sp, #8] + cmp r6, r0 + bge _080631D2 + b _080630A0 +_080631D2: + movs r0, #0 +_080631D4: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080631E4: .4byte 0x082F0D54 +_080631E8: .4byte 0x02023EF4 +_080631EC: .4byte 0x02023D08 +_080631F0: .4byte 0x02023F14 +_080631F4: .4byte 0x02023D28 + thumb_func_end FindMonWithFlagsAndSuperEffective + + thumb_func_start ShouldSwitch +ShouldSwitch: @ 0x080631F8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r6, _080632E0 + ldr r4, _080632E4 + ldrb r2, [r4] + movs r5, #0x58 + adds r0, r2, #0 + muls r0, r5, r0 + adds r1, r6, #0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _080632E8 + ands r0, r1 + cmp r0, #0 + beq _08063222 + b _08063450 +_08063222: + ldr r0, _080632EC + lsls r1, r2, #2 + adds r1, r1, r0 + ldr r1, [r1] + movs r0, #0x80 + lsls r0, r0, #3 + ands r1, r0 + cmp r1, #0 + beq _08063236 + b _08063450 +_08063236: + str r1, [sp] + movs r0, #0xc + adds r1, r2, #0 + movs r2, #0x17 + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _0806324E + b _08063450 +_0806324E: + ldrb r1, [r4] + str r0, [sp] + movs r0, #0xc + movs r2, #0x47 + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _08063266 + b _08063450 +_08063266: + str r0, [sp] + movs r0, #0xe + movs r1, #0 + movs r2, #0x2a + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08063298 + ldrb r0, [r4] + muls r0, r5, r0 + adds r1, r0, r6 + adds r0, r1, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #8 + bne _0806328C + b _08063450 +_0806328C: + adds r0, r1, #0 + adds r0, #0x22 + ldrb r0, [r0] + cmp r0, #8 + bne _08063298 + b _08063450 +_08063298: + ldr r0, _080632F0 + ldr r1, [r0] + movs r0, #0x80 + lsls r0, r0, #0xb + ands r0, r1 + cmp r0, #0 + beq _080632A8 + b _08063450 +_080632A8: + movs r0, #0 + mov sl, r0 + movs r0, #1 + ands r1, r0 + cmp r1, #0 + beq _08063312 + ldrb r7, [r4] + adds r0, r7, #0 + bl GetBattlerPosition + movs r5, #2 + eors r0, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + ldr r1, _080632F4 + ldrb r1, [r1] + ldr r2, _080632F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _080632FC + ldrb r6, [r4] + b _08063316 + .align 2, 0 +_080632E0: .4byte 0x02023D28 +_080632E4: .4byte 0x02023D08 +_080632E8: .4byte 0x0400E000 +_080632EC: .4byte 0x02023F50 +_080632F0: .4byte 0x02022C90 +_080632F4: .4byte 0x02023EB4 +_080632F8: .4byte 0x082FACB4 +_080632FC: + ldrb r0, [r4] + bl GetBattlerPosition + eors r0, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + b _08063316 +_08063312: + ldrb r6, [r4] + adds r7, r6, #0 +_08063316: + ldr r0, _08063338 + ldr r0, [r0] + ldr r1, _0806333C + ands r0, r1 + cmp r0, #0 + beq _0806334C + ldr r2, _08063340 + ldrb r1, [r2] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08063344 + movs r4, #0 + movs r1, #3 + mov r8, r1 + b _08063354 + .align 2, 0 +_08063338: .4byte 0x02022C90 +_0806333C: .4byte 0x00808000 +_08063340: .4byte 0x02023D08 +_08063344: + movs r4, #3 + movs r0, #6 + mov r8, r0 + b _08063354 +_0806334C: + movs r4, #0 + movs r1, #6 + mov r8, r1 + ldr r2, _0806343C +_08063354: + ldrb r0, [r2] + bl GetBattlerSide + lsls r0, r0, #0x18 + ldr r1, _08063440 + mov sb, r1 + cmp r0, #0 + bne _08063368 + ldr r0, _08063444 + mov sb, r0 +_08063368: + adds r5, r4, #0 + cmp r5, r8 + bge _080633D6 +_0806336E: + movs r0, #0x64 + muls r0, r5, r0 + mov r1, sb + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _080633D0 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + cmp r0, #0 + beq _080633D0 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + movs r1, #0xce + lsls r1, r1, #1 + cmp r0, r1 + beq _080633D0 + ldr r1, _08063448 + lsls r0, r7, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r5, r0 + beq _080633D0 + lsls r0, r6, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r5, r0 + beq _080633D0 + ldr r0, _0806344C + ldr r1, [r0] + adds r0, r7, r1 + adds r0, #0x5c + ldrb r0, [r0] + cmp r5, r0 + beq _080633D0 + adds r0, r6, r1 + adds r0, #0x5c + ldrb r0, [r0] + cmp r5, r0 + beq _080633D0 + movs r0, #1 + add sl, r0 +_080633D0: + adds r5, #1 + cmp r5, r8 + blt _0806336E +_080633D6: + mov r1, sl + cmp r1, #0 + beq _08063450 + bl ShouldSwitchIfPerishSong + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08063436 + bl ShouldSwitchIfWonderGuard + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08063436 + bl FindMonThatAbsorbsOpponentsMove + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08063436 + bl ShouldSwitchIfNaturalCure + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08063436 + movs r0, #0 + bl HasSuperEffectiveMoveAgainstOpponents + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08063450 + bl AreStatsRaised + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08063450 + movs r0, #8 + movs r1, #2 + bl FindMonWithFlagsAndSuperEffective + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08063436 + movs r0, #4 + movs r1, #3 + bl FindMonWithFlagsAndSuperEffective + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08063450 +_08063436: + movs r0, #1 + b _08063452 + .align 2, 0 +_0806343C: .4byte 0x02023D08 +_08063440: .4byte 0x020243E8 +_08063444: .4byte 0x02024190 +_08063448: .4byte 0x02023D12 +_0806344C: .4byte 0x02024140 +_08063450: + movs r0, #0 +_08063452: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ShouldSwitch + + thumb_func_start AI_TrySwitchOrUseItem +AI_TrySwitchOrUseItem: @ 0x08063464 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r4, _080634E0 + ldrb r0, [r4] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r5, r6, #0 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + ldr r1, _080634E4 + mov r8, r1 + cmp r0, #0 + bne _0806348C + ldr r2, _080634E8 + mov r8, r2 +_0806348C: + ldr r7, _080634EC + ldr r0, [r7] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + bne _0806349A + b _080635CA +_0806349A: + bl ShouldSwitch + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080634A6 + b _080635C0 +_080634A6: + ldrb r0, [r4] + ldr r2, _080634F0 + ldr r1, [r2] + adds r0, r0, r1 + movs r1, #0xa5 + lsls r1, r1, #2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #6 + bne _0806359C + bl GetMostSuitableMonToSwitchInto + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #6 + bne _0806358A + ldr r0, [r7] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _080634F4 + adds r0, r6, #0 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r6, r5, #0 + b _0806350C + .align 2, 0 +_080634E0: .4byte 0x02023D08 +_080634E4: .4byte 0x020243E8 +_080634E8: .4byte 0x02024190 +_080634EC: .4byte 0x02022C90 +_080634F0: .4byte 0x02024140 +_080634F4: + adds r0, r5, #0 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r0, #2 + eors r5, r0 + adds r0, r5, #0 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_0806350C: + ldr r0, _0806352C + ldr r0, [r0] + ldr r1, _08063530 + ands r0, r1 + cmp r0, #0 + beq _0806353C + ldr r0, _08063534 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08063538 + movs r0, #0 + movs r7, #3 + b _08063540 + .align 2, 0 +_0806352C: .4byte 0x02022C90 +_08063530: .4byte 0x00808000 +_08063534: .4byte 0x02023D08 +_08063538: + movs r0, #3 + b _0806353E +_0806353C: + movs r0, #0 +_0806353E: + movs r7, #6 +_08063540: + adds r4, r0, #0 + cmp r4, r7 + bge _0806358A +_08063546: + movs r0, #0x64 + muls r0, r4, r0 + add r0, r8 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _08063584 + ldr r1, _080635B4 + lsls r0, r6, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r4, r0 + beq _08063584 + lsls r0, r5, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r4, r0 + beq _08063584 + ldr r0, _080635B8 + ldr r1, [r0] + adds r0, r6, r1 + adds r0, #0x5c + ldrb r0, [r0] + cmp r4, r0 + beq _08063584 + adds r0, r5, r1 + adds r0, #0x5c + ldrb r0, [r0] + cmp r4, r0 + bne _0806358A +_08063584: + adds r4, #1 + cmp r4, r7 + blt _08063546 +_0806358A: + ldr r0, _080635BC + ldrb r0, [r0] + ldr r2, _080635B8 + ldr r1, [r2] + adds r0, r0, r1 + movs r1, #0xa5 + lsls r1, r1, #2 + adds r0, r0, r1 + strb r4, [r0] +_0806359C: + ldr r0, _080635BC + ldrb r1, [r0] + ldr r0, [r2] + adds r0, r1, r0 + adds r1, r0, #0 + adds r1, #0x5c + movs r2, #0xa5 + lsls r2, r2, #2 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r1] + b _080635DC + .align 2, 0 +_080635B4: .4byte 0x02023D12 +_080635B8: .4byte 0x02024140 +_080635BC: .4byte 0x02023D08 +_080635C0: + bl ShouldUseItem + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080635DC +_080635CA: + ldr r0, _080635E8 + ldrb r0, [r0] + movs r2, #1 + eors r2, r0 + lsls r2, r2, #8 + movs r0, #1 + movs r1, #0 + bl BtlController_EmitTwoReturnValues +_080635DC: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080635E8: .4byte 0x02023D08 + thumb_func_end AI_TrySwitchOrUseItem + + thumb_func_start ModulateByTypeEffectiveness +ModulateByTypeEffectiveness: @ 0x080635EC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r6, r3, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sb, r1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + movs r7, #0 + ldr r0, _08063670 + mov sl, r0 + ldrb r0, [r0] + cmp r0, #0xff + beq _0806365E + mov r5, sl +_0806361A: + ldrb r0, [r5] + cmp r0, #0xfe + beq _08063650 + ldr r1, [sp] + cmp r0, r1 + bne _08063650 + ldrb r4, [r5, #1] + cmp r4, sb + bne _0806363A + ldrb r1, [r6] + ldrb r0, [r5, #2] + muls r0, r1, r0 + movs r1, #0xa + bl __divsi3 + strb r0, [r6] +_0806363A: + cmp r4, r8 + bne _08063650 + cmp sb, r8 + beq _08063650 + ldrb r1, [r6] + ldrb r0, [r5, #2] + muls r0, r1, r0 + movs r1, #0xa + bl __divsi3 + strb r0, [r6] +_08063650: + adds r5, #3 + adds r7, #3 + mov r1, sl + adds r0, r7, r1 + ldrb r0, [r0] + cmp r0, #0xff + bne _0806361A +_0806365E: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08063670: .4byte 0x082EBB38 + thumb_func_end ModulateByTypeEffectiveness + + thumb_func_start GetMostSuitableMonToSwitchInto +GetMostSuitableMonToSwitchInto: @ 0x08063674 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x24 + ldr r4, _080636B4 + ldrb r2, [r4] + ldr r0, _080636B8 + ldr r0, [r0] + adds r0, r2, r0 + adds r1, r0, #0 + adds r1, #0x5c + ldrb r0, [r1] + cmp r0, #6 + beq _08063696 + b _08063A34 +_08063696: + ldr r0, _080636BC + ldr r1, [r0] + movs r0, #0x80 + lsls r0, r0, #0xb + ands r0, r1 + cmp r0, #0 + beq _080636C4 + ldr r1, _080636C0 + lsls r0, r2, #1 + adds r0, r0, r1 + ldrb r0, [r0] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _08063A34 + .align 2, 0 +_080636B4: .4byte 0x02023D08 +_080636B8: .4byte 0x02024140 +_080636BC: .4byte 0x02022C90 +_080636C0: .4byte 0x02023D12 +_080636C4: + movs r0, #1 + ands r1, r0 + cmp r1, #0 + beq _08063750 + str r2, [sp, #0x10] + adds r0, r2, #0 + bl GetBattlerPosition + movs r5, #2 + eors r0, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + ldr r1, _080636FC + ldrb r1, [r1] + ldr r2, _08063700 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _08063704 + ldrb r4, [r4] + str r4, [sp, #0x14] + b _0806371A + .align 2, 0 +_080636FC: .4byte 0x02023EB4 +_08063700: .4byte 0x082FACB4 +_08063704: + ldrb r0, [r4] + bl GetBattlerPosition + eors r0, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x14] +_0806371A: + bl Random + movs r3, #2 + ands r0, r3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + ldr r0, _08063748 + ldrb r1, [r0] + ldr r2, _0806374C + ldr r4, [sp, #4] + lsls r0, r4, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _0806376E + eors r4, r3 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + b _0806376E + .align 2, 0 +_08063748: .4byte 0x02023EB4 +_0806374C: .4byte 0x082FACB4 +_08063750: + adds r0, r2, #0 + bl GetBattlerPosition + movs r1, #1 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + ldrb r4, [r4] + str r4, [sp, #0x14] + str r4, [sp, #0x10] +_0806376E: + ldr r0, _08063790 + ldr r0, [r0] + ldr r1, _08063794 + ands r0, r1 + cmp r0, #0 + beq _080637A6 + ldr r2, _08063798 + ldrb r1, [r2] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0806379C + movs r0, #0 + str r0, [sp, #0x18] + movs r1, #3 + str r1, [sp, #0x1c] + b _080637B0 + .align 2, 0 +_08063790: .4byte 0x02022C90 +_08063794: .4byte 0x00808000 +_08063798: .4byte 0x02023D08 +_0806379C: + movs r4, #3 + str r4, [sp, #0x18] + movs r0, #6 + str r0, [sp, #0x1c] + b _080637B0 +_080637A6: + movs r1, #0 + str r1, [sp, #0x18] + movs r2, #6 + str r2, [sp, #0x1c] + ldr r2, _0806389C +_080637B0: + ldrb r0, [r2] + bl GetBattlerSide + lsls r0, r0, #0x18 + ldr r4, _080638A0 + str r4, [sp, #0x20] + cmp r0, #0 + bne _080637C4 + ldr r0, _080638A4 + str r0, [sp, #0x20] +_080637C4: + movs r1, #0 + mov sb, r1 +_080637C8: + movs r2, #0 + str r2, [sp, #8] + movs r4, #6 + str r4, [sp, #0xc] + ldr r7, [sp, #0x18] + ldr r0, [sp, #0x1c] + cmp r7, r0 + blt _080637DA + b _080638D6 +_080637DA: + lsls r0, r7, #2 + ldr r1, _080638A8 + adds r0, r0, r1 + mov r8, r0 + mov sl, sp +_080637E4: + movs r0, #0x64 + muls r0, r7, r0 + ldr r2, [sp, #0x20] + adds r4, r2, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0 + beq _080638BC + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _080638BC + mov r4, r8 + ldr r0, [r4] + mov r1, sb + ands r0, r1 + cmp r0, #0 + bne _080638BC + ldr r1, _080638AC + ldr r2, [sp, #0x10] + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, r7 + beq _080638BC + ldr r4, [sp, #0x14] + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, r7 + beq _080638BC + ldr r0, _080638B0 + ldr r1, [r0] + adds r0, r2, r1 + adds r0, #0x5c + ldrb r0, [r0] + cmp r7, r0 + beq _080638BC + adds r0, r4, r1 + adds r0, #0x5c + ldrb r0, [r0] + cmp r7, r0 + beq _080638BC + ldr r1, _080638B4 + lsls r0, r5, #3 + subs r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r5, [r0, #6] + ldrb r6, [r0, #7] + movs r0, #0xa + mov r1, sl + strb r0, [r1] + movs r0, #0x58 + ldr r2, [sp, #4] + adds r4, r2, #0 + muls r4, r0, r4 + ldr r0, _080638B8 + adds r4, r4, r0 + adds r0, r4, #0 + adds r0, #0x21 + ldrb r0, [r0] + adds r1, r5, #0 + adds r2, r6, #0 + mov r3, sp + bl ModulateByTypeEffectiveness + adds r4, #0x22 + ldrb r0, [r4] + adds r1, r5, #0 + adds r2, r6, #0 + mov r3, sp + bl ModulateByTypeEffectiveness + ldr r2, [sp, #8] + mov r1, sl + ldrb r1, [r1] + cmp r2, r1 + bhs _080638CA + mov r2, sl + ldrb r2, [r2] + str r2, [sp, #8] + lsls r0, r7, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0xc] + b _080638CA + .align 2, 0 +_0806389C: .4byte 0x02023D08 +_080638A0: .4byte 0x020243E8 +_080638A4: .4byte 0x02024190 +_080638A8: .4byte 0x082FACB4 +_080638AC: .4byte 0x02023D12 +_080638B0: .4byte 0x02024140 +_080638B4: .4byte 0x082F0D54 +_080638B8: .4byte 0x02023D28 +_080638BC: + mov r4, r8 + ldr r0, [r4] + mov r1, sb + orrs r1, r0 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 +_080638CA: + movs r2, #4 + add r8, r2 + adds r7, #1 + ldr r4, [sp, #0x1c] + cmp r7, r4 + blt _080637E4 +_080638D6: + ldr r0, [sp, #0xc] + cmp r0, #6 + beq _08063938 + movs r7, #0 + movs r0, #0x64 + ldr r1, [sp, #0xc] + adds r5, r1, #0 + muls r5, r0, r5 +_080638E6: + adds r1, r7, #0 + adds r1, #0xd + ldr r2, [sp, #0x20] + adds r0, r2, r5 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0 + beq _0806390E + ldr r0, _08063930 + ldrb r1, [r0] + adds r0, r4, #0 + ldr r2, [sp, #4] + bl TypeCalc + movs r1, #2 + ands r1, r0 + cmp r1, #0 + bne _08063914 +_0806390E: + adds r7, #1 + cmp r7, #3 + ble _080638E6 +_08063914: + cmp r7, #4 + beq _0806391A + b _08063A32 +_0806391A: + ldr r4, [sp, #0xc] + lsls r0, r4, #2 + ldr r1, _08063934 + adds r0, r0, r1 + ldr r0, [r0] + mov r2, sb + orrs r2, r0 + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + b _0806393C + .align 2, 0 +_08063930: .4byte 0x02023D08 +_08063934: .4byte 0x082FACB4 +_08063938: + movs r4, #0x3f + mov sb, r4 +_0806393C: + mov r0, sb + cmp r0, #0x3f + beq _08063944 + b _080637C8 +_08063944: + ldr r0, _08063A44 + movs r1, #0 + strh r1, [r0] + ldr r0, _08063A48 + ldr r0, [r0] + strb r1, [r0, #0x13] + ldr r0, _08063A4C + movs r2, #1 + strb r2, [r0, #0xe] + ldr r0, _08063A50 + strb r1, [r0] + ldr r0, _08063A54 + strb r2, [r0] + movs r1, #0 + str r1, [sp, #8] + movs r2, #6 + str r2, [sp, #0xc] + ldr r7, [sp, #0x18] + ldr r4, [sp, #0x1c] + cmp r7, r4 + bge _08063A32 +_0806396E: + movs r0, #0x64 + adds r6, r7, #0 + muls r6, r0, r6 + ldr r0, [sp, #0x20] + adds r4, r0, r6 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + adds r1, r7, #1 + mov sl, r1 + cmp r0, #0 + beq _08063A2A + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _08063A2A + ldr r1, _08063A58 + ldr r2, [sp, #0x10] + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, r7 + beq _08063A2A + ldr r4, [sp, #0x14] + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, r7 + beq _08063A2A + ldr r0, _08063A48 + ldr r1, [r0] + adds r0, r2, r1 + adds r0, #0x5c + ldrb r0, [r0] + cmp r7, r0 + beq _08063A2A + adds r0, r4, r1 + adds r0, #0x5c + ldrb r0, [r0] + cmp r7, r0 + beq _08063A2A + movs r5, #0 + mov sb, r6 + ldr r0, _08063A5C + mov r8, r0 + ldr r6, _08063A60 +_080639D2: + adds r1, r5, #0 + adds r1, #0xd + ldr r0, [sp, #0x20] + add r0, sb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r0, #0 + mov r1, r8 + str r0, [r1] + cmp r4, #0 + beq _08063A0E + ldr r0, _08063A64 + lsls r1, r4, #1 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #1] + cmp r0, #1 + beq _08063A0E + ldrb r0, [r6] + ldr r1, [sp, #4] + bl AI_CalcDmg + ldrb r1, [r6] + adds r0, r4, #0 + ldr r2, [sp, #4] + bl TypeCalc +_08063A0E: + mov r2, r8 + ldr r0, [r2] + ldr r4, [sp, #8] + cmp r4, r0 + bge _08063A24 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #8] + lsls r0, r7, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0xc] +_08063A24: + adds r5, #1 + cmp r5, #3 + ble _080639D2 +_08063A2A: + mov r7, sl + ldr r0, [sp, #0x1c] + cmp r7, r0 + blt _0806396E +_08063A32: + ldr r0, [sp, #0xc] +_08063A34: + add sp, #0x24 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08063A44: .4byte 0x020240A4 +_08063A48: .4byte 0x02024140 +_08063A4C: .4byte 0x02024118 +_08063A50: .4byte 0x02023F20 +_08063A54: .4byte 0x02023EB5 +_08063A58: .4byte 0x02023D12 +_08063A5C: .4byte 0x02023E94 +_08063A60: .4byte 0x02023D08 +_08063A64: .4byte 0x082ED220 + thumb_func_end GetMostSuitableMonToSwitchInto + + thumb_func_start GetAI_ItemType +GetAI_ItemType: @ 0x08063A68 + push {r4, lr} + adds r2, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x13 + bne _08063A78 + movs r0, #1 + b _08063ABE +_08063A78: + ldrb r1, [r2, #4] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08063A86 + movs r0, #2 + b _08063ABE +_08063A86: + ldrb r4, [r2, #3] + movs r3, #0x3f + adds r0, r3, #0 + ands r0, r4 + cmp r0, #0 + beq _08063A96 + movs r0, #3 + b _08063ABE +_08063A96: + ldrb r1, [r2] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _08063AAC + ldrb r0, [r2, #1] + cmp r0, #0 + bne _08063AAC + ldrb r0, [r2, #2] + cmp r0, #0 + beq _08063AB0 +_08063AAC: + movs r0, #4 + b _08063ABE +_08063AB0: + movs r0, #0x80 + ands r0, r4 + cmp r0, #0 + bne _08063ABC + movs r0, #6 + b _08063ABE +_08063ABC: + movs r0, #5 +_08063ABE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetAI_ItemType + + thumb_func_start ShouldUseItem +ShouldUseItem: @ 0x08063AC4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + movs r0, #0 + mov sl, r0 + movs r7, #0 + ldr r0, _08063BAC + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + beq _08063AF6 + ldr r0, _08063BB0 + ldrb r0, [r0] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _08063AF6 + b _08063F60 +_08063AF6: + ldr r0, _08063BB0 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + ldr r5, _08063BB4 + cmp r0, #0 + bne _08063B08 + ldr r5, _08063BB8 +_08063B08: + movs r1, #0 + mov r8, r1 +_08063B0C: + movs r0, #0x64 + mov r2, r8 + muls r2, r0, r2 + adds r0, r2, #0 + adds r4, r5, r0 + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _08063B48 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + cmp r0, #0 + beq _08063B48 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + movs r1, #0xce + lsls r1, r1, #1 + cmp r0, r1 + beq _08063B48 + mov r0, sl + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 +_08063B48: + movs r0, #1 + add r8, r0 + mov r1, r8 + cmp r1, #5 + ble _08063B0C + movs r2, #0 + mov r8, r2 +_08063B56: + ldr r1, _08063BBC + mov r0, r8 + cmp r0, #0 + beq _08063B72 + ldr r0, [r1] + ldr r0, [r0, #0x18] + adds r0, #0x50 + ldrb r0, [r0] + mov r2, r8 + subs r0, r0, r2 + adds r0, #1 + cmp sl, r0 + ble _08063B72 + b _08063F54 +_08063B72: + ldr r0, [r1] + ldr r0, [r0, #0x18] + mov r2, r8 + lsls r1, r2, #1 + adds r0, #0x48 + adds r0, r0, r1 + ldrh r0, [r0] + mov sb, r0 + str r1, [sp] + cmp r0, #0 + bne _08063B8A + b _08063F54 +_08063B8A: + ldr r1, _08063BC0 + subs r0, #0xd + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + cmp r1, #0 + bne _08063B9A + b _08063F54 +_08063B9A: + mov r0, sb + cmp r0, #0xaf + bne _08063BCC + ldr r0, _08063BC4 + ldr r0, [r0] + ldr r1, _08063BC8 + adds r5, r0, r1 + b _08063BCE + .align 2, 0 +_08063BAC: .4byte 0x02022C90 +_08063BB0: .4byte 0x02023D08 +_08063BB4: .4byte 0x020243E8 +_08063BB8: .4byte 0x02024190 +_08063BBC: .4byte 0x0202414C +_08063BC0: .4byte 0x082EEF14 +_08063BC4: .4byte 0x03005AEC +_08063BC8: .4byte 0x00003214 +_08063BCC: + adds r5, r1, #0 +_08063BCE: + mov r2, sb + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + adds r1, r5, #0 + bl GetAI_ItemType + ldr r4, _08063C08 + ldrb r1, [r4] + lsrs r1, r1, #1 + ldr r3, _08063C0C + ldr r2, [r3] + adds r1, r1, r2 + adds r1, #0xc4 + strb r0, [r1] + ldrb r0, [r4] + lsrs r0, r0, #1 + ldr r1, [r3] + adds r0, r0, r1 + adds r0, #0xc4 + ldrb r0, [r0] + subs r0, #1 + cmp r0, #5 + bls _08063BFE + b _08063F08 +_08063BFE: + lsls r0, r0, #2 + ldr r1, _08063C10 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08063C08: .4byte 0x02023D08 +_08063C0C: .4byte 0x02024140 +_08063C10: .4byte 0x08063C14 +_08063C14: @ jump table + .4byte _08063C2C @ case 0 + .4byte _08063C58 @ case 1 + .4byte _08063CA0 @ case 2 + .4byte _08063DF8 @ case 3 + .4byte _08063ED8 @ case 4 + .4byte _08063F60 @ case 5 +_08063C2C: + ldr r2, _08063C50 + ldr r0, _08063C54 + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + ldrh r1, [r0, #0x2c] + ldrh r0, [r0, #0x28] + lsrs r1, r1, #2 + cmp r0, r1 + blo _08063C44 + b _08063F08 +_08063C44: + cmp r0, #0 + bne _08063C4A + b _08063F08 +_08063C4A: + movs r7, #1 + b _08063F0C + .align 2, 0 +_08063C50: .4byte 0x02023D28 +_08063C54: .4byte 0x02023D08 +_08063C58: + mov r0, sb + movs r1, #4 + movs r2, #4 + bl GetItemEffectParamOffset + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _08063C6C + b _08063F08 +_08063C6C: + ldr r2, _08063C98 + ldr r0, _08063C9C + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r1, r0, r2 + ldrh r2, [r1, #0x28] + cmp r2, #0 + bne _08063C80 + b _08063F08 +_08063C80: + ldrh r3, [r1, #0x2c] + lsrs r0, r3, #2 + cmp r2, r0 + blo _08063C4A + adds r0, r2, #0 + subs r0, r3, r0 + adds r1, r5, r4 + ldrb r1, [r1] + cmp r0, r1 + bgt _08063C96 + b _08063F08 +_08063C96: + b _08063C4A + .align 2, 0 +_08063C98: .4byte 0x02023D28 +_08063C9C: .4byte 0x02023D08 +_08063CA0: + ldr r3, _08063DEC + ldrb r0, [r3] + lsrs r0, r0, #1 + ldr r2, _08063DF0 + ldr r1, [r2] + adds r0, r0, r1 + adds r0, #0xc6 + movs r1, #0 + strb r1, [r0] + ldrb r1, [r5, #3] + movs r6, #0x20 + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08063CE4 + ldr r1, _08063DF4 + ldrb r4, [r3] + movs r0, #0x58 + muls r0, r4, r0 + adds r1, #0x4c + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + beq _08063CE4 + lsrs r1, r4, #1 + ldr r0, [r2] + adds r1, r1, r0 + adds r1, #0xc6 + ldrb r0, [r1] + orrs r0, r6 + strb r0, [r1] + movs r7, #1 +_08063CE4: + ldrb r1, [r5, #3] + movs r6, #0x10 + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08063D1E + ldr r1, _08063DF4 + ldrb r4, [r3] + movs r0, #0x58 + muls r0, r4, r0 + adds r1, #0x4c + adds r0, r0, r1 + ldr r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + bne _08063D0E + movs r0, #0x80 + ands r1, r0 + cmp r1, #0 + beq _08063D1E +_08063D0E: + lsrs r1, r4, #1 + ldr r0, [r2] + adds r1, r1, r0 + adds r1, #0xc6 + ldrb r0, [r1] + orrs r0, r6 + strb r0, [r1] + movs r7, #1 +_08063D1E: + ldrb r1, [r5, #3] + movs r6, #8 + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08063D50 + ldr r1, _08063DF4 + ldrb r4, [r3] + movs r0, #0x58 + muls r0, r4, r0 + adds r1, #0x4c + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08063D50 + lsrs r1, r4, #1 + ldr r0, [r2] + adds r1, r1, r0 + adds r1, #0xc6 + ldrb r0, [r1] + orrs r0, r6 + strb r0, [r1] + movs r7, #1 +_08063D50: + ldrb r1, [r5, #3] + movs r6, #4 + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08063D82 + ldr r1, _08063DF4 + ldrb r4, [r3] + movs r0, #0x58 + muls r0, r4, r0 + adds r1, #0x4c + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08063D82 + lsrs r1, r4, #1 + ldr r0, [r2] + adds r1, r1, r0 + adds r1, #0xc6 + ldrb r0, [r1] + orrs r0, r6 + strb r0, [r1] + movs r7, #1 +_08063D82: + ldrb r1, [r5, #3] + movs r6, #2 + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08063DB4 + ldr r1, _08063DF4 + ldrb r4, [r3] + movs r0, #0x58 + muls r0, r4, r0 + adds r1, #0x4c + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08063DB4 + lsrs r1, r4, #1 + ldr r0, [r2] + adds r1, r1, r0 + adds r1, #0xc6 + ldrb r0, [r1] + orrs r0, r6 + strb r0, [r1] + movs r7, #1 +_08063DB4: + ldrb r1, [r5, #3] + movs r4, #1 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08063DC2 + b _08063F08 +_08063DC2: + ldr r1, _08063DF4 + ldrb r3, [r3] + movs r0, #0x58 + muls r0, r3, r0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _08063DDA + b _08063F08 +_08063DDA: + lsrs r1, r3, #1 + ldr r0, [r2] + adds r1, r1, r0 + adds r1, #0xc6 + ldrb r0, [r1] + orrs r0, r4 + strb r0, [r1] + b _08063C4A + .align 2, 0 +_08063DEC: .4byte 0x02023D08 +_08063DF0: .4byte 0x02024140 +_08063DF4: .4byte 0x02023D28 +_08063DF8: + ldr r4, _08063ECC + ldrb r0, [r4] + lsrs r0, r0, #1 + ldr r3, _08063ED0 + ldr r1, [r3] + adds r0, r0, r1 + adds r0, #0xc6 + movs r1, #0 + strb r1, [r0] + ldr r1, _08063ED4 + ldrb r2, [r4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #0x16] + cmp r0, #0 + beq _08063F08 + ldrb r1, [r5] + movs r6, #0xf + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _08063E38 + lsrs r2, r2, #1 + ldr r0, [r3] + adds r2, r2, r0 + adds r2, #0xc6 + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] +_08063E38: + ldrb r1, [r5, #1] + movs r7, #0xf0 + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0 + beq _08063E56 + ldrb r0, [r4] + lsrs r0, r0, #1 + ldr r1, [r3] + adds r0, r0, r1 + adds r0, #0xc6 + ldrb r1, [r0] + movs r2, #2 + orrs r1, r2 + strb r1, [r0] +_08063E56: + ldrb r1, [r5, #1] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _08063E72 + ldrb r0, [r4] + lsrs r0, r0, #1 + ldr r1, [r3] + adds r0, r0, r1 + adds r0, #0xc6 + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_08063E72: + ldrb r1, [r5, #2] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _08063E8E + ldrb r0, [r4] + lsrs r0, r0, #1 + ldr r1, [r3] + adds r0, r0, r1 + adds r0, #0xc6 + ldrb r1, [r0] + movs r2, #8 + orrs r1, r2 + strb r1, [r0] +_08063E8E: + ldrb r1, [r5, #2] + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0 + beq _08063EAA + ldrb r0, [r4] + lsrs r0, r0, #1 + ldr r1, [r3] + adds r0, r0, r1 + adds r0, #0xc6 + ldrb r1, [r0] + movs r2, #0x20 + orrs r1, r2 + strb r1, [r0] +_08063EAA: + ldrb r1, [r5] + movs r0, #0x30 + ands r0, r1 + cmp r0, #0 + bne _08063EB6 + b _08063C4A +_08063EB6: + ldrb r0, [r4] + lsrs r0, r0, #1 + ldr r1, [r3] + adds r0, r0, r1 + adds r0, #0xc6 + ldrb r1, [r0] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0] + b _08063C4A + .align 2, 0 +_08063ECC: .4byte 0x02023D08 +_08063ED0: .4byte 0x02024140 +_08063ED4: .4byte 0x02023F60 +_08063ED8: + ldr r4, _08063F40 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r2, _08063F44 + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #0x16] + cmp r0, #0 + beq _08063F08 + ldr r0, _08063F48 + lsls r1, r3, #1 + adds r1, r1, r3 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #4] + cmp r0, #0 + bne _08063F08 + b _08063C4A +_08063F08: + cmp r7, #0 + beq _08063F54 +_08063F0C: + movs r0, #1 + movs r1, #1 + movs r2, #0 + bl BtlController_EmitTwoReturnValues + ldr r0, _08063F40 + ldrb r0, [r0] + lsrs r0, r0, #1 + ldr r1, _08063F4C + ldr r1, [r1] + lsls r0, r0, #1 + adds r0, r0, r1 + adds r0, #0xc0 + mov r1, sb + strb r1, [r0] + ldr r0, _08063F50 + ldr r0, [r0] + ldr r0, [r0, #0x18] + adds r0, #0x48 + ldr r2, [sp] + adds r0, r0, r2 + movs r1, #0 + strh r1, [r0] + adds r0, r7, #0 + b _08063F62 + .align 2, 0 +_08063F40: .4byte 0x02023D08 +_08063F44: .4byte 0x02023F60 +_08063F48: .4byte 0x02023F38 +_08063F4C: .4byte 0x02024140 +_08063F50: .4byte 0x0202414C +_08063F54: + movs r0, #1 + add r8, r0 + mov r1, r8 + cmp r1, #3 + bgt _08063F60 + b _08063B56 +_08063F60: + movs r0, #0 +_08063F62: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ShouldUseItem + diff --git a/asm/battle_anim.s b/asm/battle_anim.s new file mode 100644 index 0000000..43d96f6 --- /dev/null +++ b/asm/battle_anim.s @@ -0,0 +1,4546 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ClearBattleAnimationVars +ClearBattleAnimationVars: @ 0x080A31FC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r0, _080A3290 + movs r1, #0 + strb r1, [r0] + ldr r0, _080A3294 + strb r1, [r0] + ldr r0, _080A3298 + strb r1, [r0] + ldr r0, _080A329C + strb r1, [r0] + ldr r0, _080A32A0 + movs r1, #0 + str r1, [r0] + ldr r0, _080A32A4 + str r1, [r0] + ldr r0, _080A32A8 + movs r2, #0 + strh r1, [r0] + ldr r0, _080A32AC + strb r2, [r0] + ldr r4, _080A32B0 + ldr r5, _080A32B4 + ldr r6, _080A32B8 + ldr r7, _080A32BC + ldr r0, _080A32C0 + mov ip, r0 + ldr r1, _080A32C4 + mov r8, r1 + ldr r0, _080A32C8 + mov sb, r0 + ldr r1, _080A32CC + adds r3, r1, #0 + ldr r1, _080A32D0 + movs r2, #7 +_080A3246: + ldrh r0, [r1] + orrs r0, r3 + strh r0, [r1] + adds r1, #2 + subs r2, #1 + cmp r2, #0 + bge _080A3246 + ldr r1, _080A32D4 + movs r2, #0 + adds r0, r1, #0 + adds r0, #0xe +_080A325C: + strh r2, [r0] + subs r0, #2 + cmp r0, r1 + bge _080A325C + movs r1, #0 + movs r0, #0xff + strb r0, [r4] + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r4, #1] + strb r1, [r5] + strb r1, [r6] + movs r0, #0 + strh r1, [r7] + mov r1, ip + strb r0, [r1] + mov r1, r8 + strb r0, [r1] + mov r1, sb + strb r0, [r1] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A3290: .4byte 0x0203809C +_080A3294: .4byte 0x0203809D +_080A3298: .4byte 0x0203809E +_080A329C: .4byte 0x0203809F +_080A32A0: .4byte 0x020380A0 +_080A32A4: .4byte 0x020380A4 +_080A32A8: .4byte 0x020380A8 +_080A32AC: .4byte 0x020380BA +_080A32B0: .4byte 0x020380D0 +_080A32B4: .4byte 0x020380D2 +_080A32B8: .4byte 0x020380D3 +_080A32BC: .4byte 0x020380D4 +_080A32C0: .4byte 0x020380D6 +_080A32C4: .4byte 0x020380D7 +_080A32C8: .4byte 0x020380E0 +_080A32CC: .4byte 0x0000FFFF +_080A32D0: .4byte 0x020380AA +_080A32D4: .4byte 0x020380BE + thumb_func_end ClearBattleAnimationVars + + thumb_func_start DoMoveAnim +DoMoveAnim: @ 0x080A32D8 + push {lr} + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r2, _080A32FC + ldr r0, _080A3300 + ldrb r0, [r0] + strb r0, [r2] + ldr r2, _080A3304 + ldr r0, _080A3308 + ldrb r0, [r0] + strb r0, [r2] + ldr r0, _080A330C + movs r2, #1 + bl LaunchBattleAnimation + pop {r0} + bx r0 + .align 2, 0 +_080A32FC: .4byte 0x020380D6 +_080A3300: .4byte 0x02023EAF +_080A3304: .4byte 0x020380D7 +_080A3308: .4byte 0x02023EB0 +_080A330C: .4byte 0x082772F8 + thumb_func_end DoMoveAnim + + thumb_func_start LaunchBattleAnimation +LaunchBattleAnimation: @ 0x080A3310 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + str r0, [sp] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r8, r1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sb, r2 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A33B0 + bl sub_080A7B40 + movs r0, #0 + bl UpdateOamPriorityInAllHealthboxes + movs r4, #0 + mov r0, r8 + lsls r0, r0, #2 + mov sl, r0 + ldr r6, _080A3364 + movs r7, #0x64 + ldr r5, _080A3368 +_080A334C: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A3370 + ldrh r0, [r6] + muls r0, r7, r0 + ldr r1, _080A336C + b _080A3376 + .align 2, 0 +_080A3364: .4byte 0x02023D12 +_080A3368: .4byte 0x020380D8 +_080A336C: .4byte 0x020243E8 +_080A3370: + ldrh r0, [r6] + muls r0, r7, r0 + ldr r1, _080A3398 +_080A3376: + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + strh r0, [r5] + adds r6, #2 + adds r5, #2 + adds r4, #1 + cmp r4, #3 + ble _080A334C + ldr r3, _080A339C + ldr r5, _080A33A0 + ldr r1, _080A33A4 + mov ip, r1 + ldr r7, _080A33A8 + ldr r6, _080A33AC + b _080A33D8 + .align 2, 0 +_080A3398: .4byte 0x02024190 +_080A339C: .4byte 0x020380D4 +_080A33A0: .4byte 0x020380D0 +_080A33A4: .4byte 0x0203809D +_080A33A8: .4byte 0x02038098 +_080A33AC: .4byte 0x080A35AD +_080A33B0: + ldr r3, _080A33E4 + ldr r5, _080A33E8 + mov r0, r8 + lsls r0, r0, #2 + mov sl, r0 + ldr r1, _080A33EC + mov ip, r1 + ldr r7, _080A33F0 + ldr r6, _080A33F4 + ldr r2, _080A33F8 + ldr r1, _080A33FC + movs r4, #3 +_080A33C8: + ldr r0, [r2] + ldr r0, [r0, #0x18] + ldrh r0, [r0] + strh r0, [r1] + adds r1, #2 + subs r4, #1 + cmp r4, #0 + bge _080A33C8 +_080A33D8: + mov r0, sb + cmp r0, #0 + bne _080A3400 + strh r0, [r3] + b _080A3404 + .align 2, 0 +_080A33E4: .4byte 0x020380D4 +_080A33E8: .4byte 0x020380D0 +_080A33EC: .4byte 0x0203809D +_080A33F0: .4byte 0x02038098 +_080A33F4: .4byte 0x080A35AD +_080A33F8: .4byte 0x02039BD4 +_080A33FC: .4byte 0x020380D8 +_080A3400: + mov r1, r8 + strh r1, [r3] +_080A3404: + ldr r1, _080A3458 + movs r2, #0 + adds r0, r1, #0 + adds r0, #0xe +_080A340C: + strh r2, [r0] + subs r0, #2 + cmp r0, r1 + bge _080A340C + movs r0, #0xff + strb r0, [r5] + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r5, #1] + ldr r0, [sp] + add r0, sl + ldr r0, [r0] + ldr r1, _080A345C + str r0, [r1] + movs r0, #1 + mov r1, ip + strb r0, [r1] + movs r0, #0 + ldr r1, _080A3460 + strb r0, [r1] + str r6, [r7] + ldr r0, _080A3464 + adds r2, r0, #0 + ldr r1, _080A3468 + movs r4, #7 +_080A343E: + ldrh r0, [r1] + orrs r0, r2 + strh r0, [r1] + adds r1, #2 + subs r4, #1 + cmp r4, #0 + bge _080A343E + mov r1, sb + cmp r1, #0 + beq _080A348A + movs r4, #0 + ldr r2, _080A346C + b _080A3472 + .align 2, 0 +_080A3458: .4byte 0x020380BE +_080A345C: .4byte 0x02038090 +_080A3460: .4byte 0x0203809C +_080A3464: .4byte 0x0000FFFF +_080A3468: .4byte 0x020380AA +_080A346C: .4byte 0x082772F0 +_080A3470: + adds r4, #1 +_080A3472: + lsls r0, r4, #1 + adds r0, r0, r2 + ldrh r0, [r0] + ldr r1, _080A34AC + cmp r0, r1 + beq _080A348A + cmp r8, r0 + bne _080A3470 + ldr r0, _080A34B0 + movs r2, #0x80 + bl m4aMPlayVolumeControl +_080A348A: + ldr r0, _080A34B4 + movs r1, #0 + strh r1, [r0] + ldr r0, _080A34B8 + strh r1, [r0] + ldr r0, _080A34BC + strh r1, [r0] + ldr r0, _080A34C0 + strh r1, [r0] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A34AC: .4byte 0x0000FFFF +_080A34B0: .4byte 0x030074D0 +_080A34B4: .4byte 0x02022AD8 +_080A34B8: .4byte 0x02022ADA +_080A34BC: .4byte 0x02022ADC +_080A34C0: .4byte 0x02022ADE + thumb_func_end LaunchBattleAnimation + + thumb_func_start DestroyAnimSprite +DestroyAnimSprite: @ 0x080A34C4 + push {r4, lr} + adds r4, r0, #0 + bl FreeSpriteOamMatrix + adds r0, r4, #0 + bl DestroySprite + ldr r1, _080A34E0 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A34E0: .4byte 0x0203809E + thumb_func_end DestroyAnimSprite + + thumb_func_start DestroyAnimVisualTask +DestroyAnimVisualTask: @ 0x080A34E4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + ldr r1, _080A34FC + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080A34FC: .4byte 0x0203809E + thumb_func_end DestroyAnimVisualTask + + thumb_func_start DestroyAnimSoundTask +DestroyAnimSoundTask: @ 0x080A3500 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + ldr r1, _080A3518 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080A3518: .4byte 0x0203809F + thumb_func_end DestroyAnimSoundTask + + thumb_func_start AddSpriteIndex +AddSpriteIndex: @ 0x080A351C + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + movs r2, #0 + ldr r4, _080A3534 + ldr r1, _080A3538 +_080A3528: + ldrh r0, [r1] + cmp r0, r4 + bne _080A353C + strh r3, [r1] + b _080A3544 + .align 2, 0 +_080A3534: .4byte 0x0000FFFF +_080A3538: .4byte 0x020380AA +_080A353C: + adds r1, #2 + adds r2, #1 + cmp r2, #7 + ble _080A3528 +_080A3544: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AddSpriteIndex + + thumb_func_start ClearSpriteIndex +ClearSpriteIndex: @ 0x080A354C + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + movs r2, #0 + ldr r0, _080A3568 + adds r4, r0, #0 + ldr r1, _080A356C +_080A355A: + ldrh r0, [r1] + cmp r0, r3 + bne _080A3570 + orrs r0, r4 + strh r0, [r1] + b _080A3578 + .align 2, 0 +_080A3568: .4byte 0x0000FFFF +_080A356C: .4byte 0x020380AA +_080A3570: + adds r1, #2 + adds r2, #1 + cmp r2, #7 + ble _080A355A +_080A3578: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ClearSpriteIndex + + thumb_func_start WaitAnimFrameCount +WaitAnimFrameCount: @ 0x080A3580 + push {lr} + ldr r2, _080A3598 + ldrb r1, [r2] + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + bgt _080A35A4 + ldr r0, _080A359C + ldr r1, _080A35A0 + str r1, [r0] + movs r0, #0 + b _080A35A6 + .align 2, 0 +_080A3598: .4byte 0x0203809C +_080A359C: .4byte 0x02038098 +_080A35A0: .4byte 0x080A35AD +_080A35A4: + subs r0, r1, #1 +_080A35A6: + strb r0, [r2] + pop {r0} + bx r0 + thumb_func_end WaitAnimFrameCount + + thumb_func_start ScriptCmd_hang1 +ScriptCmd_hang1: @ 0x080A35AC + push {r4, lr} + ldr r4, _080A35DC +_080A35B0: + ldr r0, _080A35E0 + ldr r0, [r0] + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r0, [r0] + bl _call_via_r0 + thumb_func_end ScriptCmd_hang1 + + thumb_func_start RunAnimScriptCommand +RunAnimScriptCommand: @ 0x080A35C0 + ldr r0, _080A35E4 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _080A35D4 + ldr r0, _080A35E8 + ldrb r0, [r0] + cmp r0, #0 + bne _080A35B0 +_080A35D4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A35DC: .4byte 0x084FE5A4 +_080A35E0: .4byte 0x02038090 +_080A35E4: .4byte 0x0203809C +_080A35E8: .4byte 0x0203809D + thumb_func_end RunAnimScriptCommand + + thumb_func_start ScriptCmd_loadspritegfx +ScriptCmd_loadspritegfx: @ 0x080A35EC + push {r4, r5, r6, lr} + ldr r6, _080A3638 + ldr r0, [r6] + adds r1, r0, #1 + str r1, [r6] + ldrb r4, [r0, #1] + ldrb r0, [r1, #1] + lsls r0, r0, #8 + orrs r4, r0 + lsls r5, r4, #3 + ldr r0, _080A363C + adds r0, r5, r0 + bl LoadCompressedSpriteSheetUsingHeap + ldr r0, _080A3640 + adds r5, r5, r0 + adds r0, r5, #0 + bl LoadCompressedSpritePaletteUsingHeap + ldr r0, [r6] + adds r0, #2 + str r0, [r6] + ldr r0, _080A3644 + adds r4, r4, r0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r4, #0 + bl AddSpriteIndex + ldr r1, _080A3648 + movs r0, #1 + strb r0, [r1] + ldr r1, _080A364C + ldr r0, _080A3650 + str r0, [r1] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080A3638: .4byte 0x02038090 +_080A363C: .4byte 0x084E99D0 +_080A3640: .4byte 0x084EA2D8 +_080A3644: .4byte 0xFFFFD8F0 +_080A3648: .4byte 0x0203809C +_080A364C: .4byte 0x02038098 +_080A3650: .4byte 0x080A3581 + thumb_func_end ScriptCmd_loadspritegfx + + thumb_func_start ScriptCmd_unloadspritegfx +ScriptCmd_unloadspritegfx: @ 0x080A3654 + push {r4, r5, r6, lr} + ldr r6, _080A3694 + ldr r0, [r6] + adds r1, r0, #1 + str r1, [r6] + ldrb r4, [r0, #1] + ldrb r0, [r1, #1] + lsls r0, r0, #8 + orrs r4, r0 + ldr r1, _080A3698 + ldr r0, _080A369C + adds r4, r4, r0 + lsls r0, r4, #3 + adds r0, r0, r1 + ldrh r5, [r0, #6] + adds r0, r5, #0 + bl FreeSpriteTilesByTag + adds r0, r5, #0 + bl FreeSpritePaletteByTag + ldr r0, [r6] + adds r0, #2 + str r0, [r6] + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r4, #0 + bl ClearSpriteIndex + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080A3694: .4byte 0x02038090 +_080A3698: .4byte 0x084FD250 +_080A369C: .4byte 0xFFFFD8F0 + thumb_func_end ScriptCmd_unloadspritegfx + + thumb_func_start ScriptCmd_createsprite +ScriptCmd_createsprite: @ 0x080A36A0 + push {r4, r5, r6, r7, lr} + ldr r5, _080A3708 + ldr r1, [r5] + adds r3, r1, #1 + str r3, [r5] + ldrb r2, [r1, #1] + ldrb r0, [r3, #1] + lsls r0, r0, #8 + adds r2, r2, r0 + ldrb r0, [r3, #2] + lsls r0, r0, #0x10 + adds r2, r2, r0 + ldrb r0, [r3, #3] + lsls r0, r0, #0x18 + adds r7, r2, r0 + adds r0, r1, #5 + str r0, [r5] + ldrb r4, [r1, #5] + adds r0, r1, #6 + str r0, [r5] + ldrb r0, [r1, #6] + adds r1, #7 + str r1, [r5] + cmp r0, #0 + beq _080A36F0 + adds r6, r5, #0 + ldr r5, _080A370C + adds r3, r0, #0 +_080A36D8: + ldr r2, [r6] + ldrb r1, [r2] + ldrb r0, [r2, #1] + lsls r0, r0, #8 + orrs r1, r0 + strh r1, [r5] + adds r2, #2 + str r2, [r6] + adds r5, #2 + subs r3, #1 + cmp r3, #0 + bne _080A36D8 +_080A36F0: + movs r0, #0x80 + ands r0, r4 + cmp r0, #0 + beq _080A3720 + movs r0, #0x80 + eors r4, r0 + cmp r4, #0x3f + bls _080A3710 + adds r0, r4, #0 + subs r0, #0x40 + b _080A3712 + .align 2, 0 +_080A3708: .4byte 0x02038090 +_080A370C: .4byte 0x020380BE +_080A3710: + rsbs r0, r4, #0 +_080A3712: + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080A371C + b _080A3732 + .align 2, 0 +_080A371C: .4byte 0x020380D7 +_080A3720: + cmp r4, #0x3f + bls _080A372A + adds r0, r4, #0 + subs r0, #0x40 + b _080A372C +_080A372A: + rsbs r0, r4, #0 +_080A372C: + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080A3788 +_080A3732: + ldrb r0, [r0] + bl GetBattlerSpriteSubpriority + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r4, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + bgt _080A3750 + movs r6, #3 +_080A3750: + ldr r5, _080A378C + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r6, #0x18 + lsrs r3, r3, #0x18 + adds r0, r7, #0 + adds r1, r4, #0 + bl CreateSpriteAndAnimate + ldr r1, _080A3790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A3788: .4byte 0x020380D6 +_080A378C: .4byte 0x020380D7 +_080A3790: .4byte 0x0203809E + thumb_func_end ScriptCmd_createsprite + + thumb_func_start ScriptCmd_createvisualtask +ScriptCmd_createvisualtask: @ 0x080A3794 + push {r4, r5, r6, r7, lr} + ldr r4, _080A3804 + ldr r1, [r4] + adds r3, r1, #1 + str r3, [r4] + ldrb r2, [r1, #1] + ldrb r0, [r3, #1] + lsls r0, r0, #8 + adds r2, r2, r0 + ldrb r0, [r3, #2] + lsls r0, r0, #0x10 + adds r2, r2, r0 + ldrb r0, [r3, #3] + lsls r0, r0, #0x18 + adds r6, r2, r0 + adds r0, r1, #5 + str r0, [r4] + ldrb r7, [r1, #5] + adds r0, r1, #6 + str r0, [r4] + ldrb r0, [r1, #6] + adds r1, #7 + str r1, [r4] + cmp r0, #0 + beq _080A37E4 + adds r5, r4, #0 + ldr r4, _080A3808 + adds r3, r0, #0 +_080A37CC: + ldr r2, [r5] + ldrb r1, [r2] + ldrb r0, [r2, #1] + lsls r0, r0, #8 + orrs r1, r0 + strh r1, [r4] + adds r2, #2 + str r2, [r5] + adds r4, #2 + subs r3, #1 + cmp r3, #0 + bne _080A37CC +_080A37E4: + adds r0, r6, #0 + adds r1, r7, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl _call_via_r6 + ldr r1, _080A380C + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A3804: .4byte 0x02038090 +_080A3808: .4byte 0x020380BE +_080A380C: .4byte 0x0203809E + thumb_func_end ScriptCmd_createvisualtask + + thumb_func_start ScriptCmd_delay +ScriptCmd_delay: @ 0x080A3810 + push {r4, lr} + ldr r1, _080A3840 + ldr r0, [r1] + adds r2, r0, #1 + str r2, [r1] + ldr r3, _080A3844 + ldrb r0, [r0, #1] + strb r0, [r3] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A382E + movs r4, #1 + rsbs r4, r4, #0 + adds r0, r4, #0 + strb r0, [r3] +_080A382E: + adds r0, r2, #1 + str r0, [r1] + ldr r1, _080A3848 + ldr r0, _080A384C + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A3840: .4byte 0x02038090 +_080A3844: .4byte 0x0203809C +_080A3848: .4byte 0x02038098 +_080A384C: .4byte 0x080A3581 + thumb_func_end ScriptCmd_delay + + thumb_func_start ScriptCmd_waitbgfadein +ScriptCmd_waitbgfadein: @ 0x080A3850 + push {lr} + ldr r0, _080A3868 + ldrb r2, [r0] + cmp r2, #0 + bne _080A3874 + ldr r0, _080A386C + ldr r1, [r0] + adds r1, #1 + str r1, [r0] + ldr r0, _080A3870 + strb r2, [r0] + b _080A387A + .align 2, 0 +_080A3868: .4byte 0x0203809E +_080A386C: .4byte 0x02038090 +_080A3870: .4byte 0x0203809C +_080A3874: + ldr r1, _080A3880 + movs r0, #1 + strb r0, [r1] +_080A387A: + pop {r0} + bx r0 + .align 2, 0 +_080A3880: .4byte 0x0203809C + thumb_func_end ScriptCmd_waitbgfadein + + thumb_func_start ScriptCmd_hang2 +ScriptCmd_hang2: @ 0x080A3884 + bx lr + .align 2, 0 + thumb_func_end ScriptCmd_hang2 + + thumb_func_start ScriptCmd_stopsound +ScriptCmd_stopsound: @ 0x080A3888 + bx lr + .align 2, 0 + thumb_func_end ScriptCmd_stopsound + + thumb_func_start ScriptCmd_end +ScriptCmd_end: @ 0x080A388C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r0, #0 + mov r8, r0 + ldr r0, _080A38BC + ldrb r0, [r0] + cmp r0, #0 + bne _080A38B4 + ldr r0, _080A38C0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A38B4 + ldr r1, _080A38C4 + ldrb r0, [r1] + cmp r0, #0xff + bne _080A38B4 + ldrb r0, [r1, #1] + cmp r0, #0xff + beq _080A38CC +_080A38B4: + ldr r1, _080A38C8 + movs r0, #0 + strh r0, [r1] + b _080A38E6 + .align 2, 0 +_080A38BC: .4byte 0x0203809E +_080A38C0: .4byte 0x0203809F +_080A38C4: .4byte 0x020380D0 +_080A38C8: .4byte 0x020380CE +_080A38CC: + bl IsSEPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A3904 + ldr r1, _080A38F0 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x5a + bhi _080A38F8 +_080A38E6: + ldr r1, _080A38F4 + movs r0, #1 + strb r0, [r1] + b _080A396A + .align 2, 0 +_080A38F0: .4byte 0x020380CE +_080A38F4: .4byte 0x0203809C +_080A38F8: + ldr r0, _080A3974 + bl m4aMPlayStop + ldr r0, _080A3978 + bl m4aMPlayStop +_080A3904: + ldr r1, _080A397C + movs r0, #0 + strh r0, [r1] + movs r5, #0 + ldr r7, _080A3980 + ldr r6, _080A3984 + ldr r4, _080A3988 +_080A3912: + ldrh r0, [r4] + cmp r0, r7 + beq _080A3936 + lsls r0, r0, #3 + adds r0, r0, r6 + ldrh r0, [r0, #6] + bl FreeSpriteTilesByTag + ldrh r0, [r4] + lsls r0, r0, #3 + adds r0, r0, r6 + ldrh r0, [r0, #6] + bl FreeSpritePaletteByTag + ldrh r1, [r4] + adds r0, r7, #0 + orrs r0, r1 + strh r0, [r4] +_080A3936: + adds r4, #2 + adds r5, #1 + cmp r5, #7 + ble _080A3912 + mov r1, r8 + cmp r1, #0 + bne _080A396A + ldr r0, _080A398C + ldr r1, _080A3980 + movs r2, #0x80 + lsls r2, r2, #1 + bl m4aMPlayVolumeControl + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A3964 + bl sub_080A7B40 + movs r0, #1 + bl UpdateOamPriorityInAllHealthboxes +_080A3964: + ldr r0, _080A3990 + mov r1, r8 + strb r1, [r0] +_080A396A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A3974: .4byte 0x03007510 +_080A3978: .4byte 0x03007550 +_080A397C: .4byte 0x020380CE +_080A3980: .4byte 0x0000FFFF +_080A3984: .4byte 0x084FD250 +_080A3988: .4byte 0x020380AA +_080A398C: .4byte 0x030074D0 +_080A3990: .4byte 0x0203809D + thumb_func_end ScriptCmd_end + + thumb_func_start ScriptCmd_playse +ScriptCmd_playse: @ 0x080A3994 + push {r4, lr} + ldr r4, _080A39B8 + ldr r0, [r4] + adds r1, r0, #1 + str r1, [r4] + ldrb r0, [r0, #1] + ldrb r1, [r1, #1] + lsls r1, r1, #8 + orrs r0, r1 + bl PlaySE + ldr r0, [r4] + adds r0, #2 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A39B8: .4byte 0x02038090 + thumb_func_end ScriptCmd_playse + + thumb_func_start sub_080A39BC +sub_080A39BC: @ 0x080A39BC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + ldr r1, _080A3A04 + mov r8, r1 + adds r6, r0, r1 + ldr r1, _080A3A08 + movs r2, #0 + ldrsh r0, [r6, r2] + adds r0, r0, r1 + ldrb r5, [r0] + ldr r1, _080A3A0C + lsls r0, r5, #4 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r4, r0, r1 + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + movs r3, #4 + ldrsh r0, [r6, r3] + cmp r0, #0 + bne _080A3A10 + adds r0, r7, #0 + bl DestroyAnimVisualTask + b _080A3A86 + .align 2, 0 +_080A3A04: .4byte 0x03005B68 +_080A3A08: .4byte 0x02023E88 +_080A3A0C: .4byte 0x020205AC +_080A3A10: + ldr r0, _080A3A4C + movs r1, #0xa + bl CreateTask + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + mov r1, r8 + subs r1, #8 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r1, r0, r1 + strh r5, [r1, #8] + ldrh r0, [r4, #0x24] + ldrh r3, [r4, #0x20] + adds r0, r0, r3 + strh r0, [r1, #0xa] + ldrh r0, [r4, #0x26] + ldrh r4, [r4, #0x22] + adds r0, r0, r4 + strh r0, [r1, #0xc] + movs r3, #2 + ldrsh r0, [r6, r3] + cmp r0, #0 + bne _080A3A58 + ldr r0, _080A3A50 + ldrh r0, [r0] + strh r0, [r1, #0xe] + ldr r0, _080A3A54 + b _080A3A60 + .align 2, 0 +_080A3A4C: .4byte 0x080A40A1 +_080A3A50: .4byte 0x02022ACC +_080A3A54: .4byte 0x02022ACE +_080A3A58: + ldr r0, _080A3A90 + ldrh r0, [r0] + strh r0, [r1, #0xe] + ldr r0, _080A3A94 +_080A3A60: + ldrh r0, [r0] + strh r0, [r1, #0x10] + ldr r1, _080A3A98 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r6, #2] + strh r1, [r0, #0x12] + ldrh r1, [r6] + strh r1, [r0, #0x14] + ldr r1, _080A3A9C + movs r3, #6 + ldrsh r0, [r6, r3] + adds r0, r0, r1 + strb r2, [r0] + adds r0, r7, #0 + bl DestroyAnimVisualTask +_080A3A86: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A3A90: .4byte 0x02022AD0 +_080A3A94: .4byte 0x02022AD2 +_080A3A98: .4byte 0x03005B60 +_080A3A9C: .4byte 0x020380D0 + thumb_func_end sub_080A39BC + + thumb_func_start ScriptCmd_monbg +ScriptCmd_monbg: @ 0x080A3AA0 + push {r4, r5, lr} + ldr r1, _080A3AB8 + ldr r2, [r1] + adds r0, r2, #1 + str r0, [r1] + ldrb r0, [r2, #1] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _080A3AC0 + ldr r0, _080A3ABC + b _080A3AC2 + .align 2, 0 +_080A3AB8: .4byte 0x02038090 +_080A3ABC: .4byte 0x020380D7 +_080A3AC0: + ldr r0, _080A3AF4 +_080A3AC2: + ldrb r4, [r0] + adds r0, r4, #0 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A3B2E + adds r0, r4, #0 + bl GetBattlerPosition + lsls r0, r0, #0x18 + movs r1, #0xff + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _080A3AEE + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A3AF8 +_080A3AEE: + movs r5, #0 + b _080A3AFA + .align 2, 0 +_080A3AF4: .4byte 0x020380D6 +_080A3AF8: + movs r5, #1 +_080A3AFA: + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl MoveBattlerSpriteToBG + ldr r0, _080A3B60 + movs r1, #0xa + bl CreateTask + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _080A3B64 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r1, _080A3B68 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #0 + strh r4, [r0, #8] + strh r5, [r0, #0xa] + movs r1, #1 + strh r1, [r0, #0xc] + strh r2, [r0, #0xe] +_080A3B2E: + movs r0, #2 + eors r4, r0 + adds r0, r4, #0 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A3BA0 + adds r0, r4, #0 + bl GetBattlerPosition + lsls r0, r0, #0x18 + movs r1, #0xff + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _080A3B5C + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A3B6C +_080A3B5C: + movs r5, #0 + b _080A3B6E + .align 2, 0 +_080A3B60: .4byte 0x080A39BD +_080A3B64: .4byte 0x0203809E +_080A3B68: .4byte 0x03005B60 +_080A3B6C: + movs r5, #1 +_080A3B6E: + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl MoveBattlerSpriteToBG + ldr r0, _080A3BBC + movs r1, #0xa + bl CreateTask + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _080A3BC0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r1, _080A3BC4 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r4, [r0, #8] + strh r5, [r0, #0xa] + movs r1, #1 + strh r1, [r0, #0xc] + strh r1, [r0, #0xe] +_080A3BA0: + ldr r1, _080A3BC8 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + ldr r1, _080A3BCC + movs r0, #1 + strb r0, [r1] + ldr r1, _080A3BD0 + ldr r0, _080A3BD4 + str r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A3BBC: .4byte 0x080A39BD +_080A3BC0: .4byte 0x0203809E +_080A3BC4: .4byte 0x03005B60 +_080A3BC8: .4byte 0x02038090 +_080A3BCC: .4byte 0x0203809C +_080A3BD0: .4byte 0x02038098 +_080A3BD4: .4byte 0x080A3581 + thumb_func_end ScriptCmd_monbg + + thumb_func_start IsBattlerSpriteVisible +IsBattlerSpriteVisible: @ 0x080A3BD8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r5, r4, #0 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A3BF8 + ldr r0, _080A3BF4 + ldrb r0, [r0] + cmp r4, r0 + beq _080A3C3C + b _080A3C4C + .align 2, 0 +_080A3BF4: .4byte 0x020380D6 +_080A3BF8: + adds r0, r4, #0 + bl IsBattlerSpritePresent + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A3C4C + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A3C3C + ldr r0, _080A3C40 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r5, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080A3C3C + ldr r2, _080A3C44 + ldr r0, _080A3C48 + adds r0, r5, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + blt _080A3C4C +_080A3C3C: + movs r0, #1 + b _080A3C4E + .align 2, 0 +_080A3C40: .4byte 0x02024174 +_080A3C44: .4byte 0x020205AC +_080A3C48: .4byte 0x02023E88 +_080A3C4C: + movs r0, #0 +_080A3C4E: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end IsBattlerSpriteVisible + + thumb_func_start MoveBattlerSpriteToBG +MoveBattlerSpriteToBG: @ 0x080A3C54 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x28 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r6, r5, #0 + lsls r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sb, r2 + cmp r1, #0 + beq _080A3C72 + b _080A3E26 +_080A3C72: + bl IsContest + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080A3CA4 + ldr r1, _080A3C9C + movs r2, #0x80 + lsls r2, r2, #6 + movs r0, #0 + movs r3, #1 + bl RequestDma3Fill + ldr r1, _080A3CA0 + movs r2, #0x80 + lsls r2, r2, #5 + movs r0, #0xff + movs r3, #0 + bl RequestDma3Fill + b _080A3CC0 + .align 2, 0 +_080A3C9C: .4byte 0x06008000 +_080A3CA0: .4byte 0x0600F000 +_080A3CA4: + ldr r1, _080A3DC0 + movs r2, #0x80 + lsls r2, r2, #6 + movs r0, #0 + movs r3, #1 + bl RequestDma3Fill + ldr r1, _080A3DC4 + movs r2, #0x80 + lsls r2, r2, #5 + movs r0, #0xff + movs r3, #0 + bl RequestDma3Fill +_080A3CC0: + add r0, sp, #0x10 + bl sub_080A63F8 + add r0, sp, #0x20 + movs r1, #0 + strh r1, [r0] + ldr r1, [sp, #0x10] + ldr r2, _080A3DC8 + bl CpuSet + mov r0, sp + adds r0, #0x22 + movs r1, #0xff + strh r1, [r0] + ldr r1, [sp, #0x14] + ldr r2, _080A3DCC + bl CpuSet + movs r0, #1 + movs r1, #4 + movs r2, #2 + bl SetAnimBgAttribute + movs r0, #1 + movs r1, #0 + movs r2, #1 + bl SetAnimBgAttribute + movs r0, #1 + movs r1, #1 + movs r2, #0 + bl SetAnimBgAttribute + ldr r0, _080A3DD0 + adds r0, r6, r0 + ldrb r4, [r0] + ldr r5, _080A3DD4 + ldr r0, _080A3DD8 + lsls r1, r4, #4 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r0, [r1, #0x24] + ldrh r1, [r1, #0x20] + adds r0, r0, r1 + rsbs r0, r0, #0 + adds r0, #0x20 + strh r0, [r5] + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A3D42 + ldr r0, _080A3DDC + ldr r0, [r0] + ldr r0, [r0, #0x18] + ldrh r0, [r0] + bl IsSpeciesNotUnown + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A3D42 + ldrh r0, [r5] + subs r0, #1 + strh r0, [r5] +_080A3D42: + ldr r5, _080A3DE0 + ldr r2, _080A3DD8 + lsls r1, r4, #4 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r0, [r1, #0x26] + ldrh r1, [r1, #0x22] + adds r0, r0, r1 + rsbs r0, r0, #0 + adds r0, #0x20 + strh r0, [r5] + mov r0, sb + cmp r0, #0 + beq _080A3D78 + ldr r0, _080A3DD0 + adds r0, r6, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_080A3D78: + ldr r0, _080A3DD4 + ldrh r1, [r0] + movs r0, #0x14 + bl SetGpuReg + ldrh r1, [r5] + movs r0, #0x16 + bl SetGpuReg + lsls r4, r6, #5 + ldr r0, _080A3DE4 + adds r4, r4, r0 + add r0, sp, #0x10 + ldrb r1, [r0, #8] + lsls r1, r1, #4 + adds r0, r4, #0 + movs r2, #0x20 + bl LoadPalette + add r0, sp, #0x10 + ldrb r1, [r0, #8] + lsls r1, r1, #5 + movs r0, #0xa0 + lsls r0, r0, #0x13 + adds r1, r1, r0 + ldr r2, _080A3DE8 + adds r0, r4, #0 + bl CpuSet + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A3DEC + movs r3, #0 + b _080A3DF6 + .align 2, 0 +_080A3DC0: .4byte 0x06004000 +_080A3DC4: .4byte 0x0600E000 +_080A3DC8: .4byte 0x01000800 +_080A3DCC: .4byte 0x01000400 +_080A3DD0: .4byte 0x02023E88 +_080A3DD4: .4byte 0x02022ACC +_080A3DD8: .4byte 0x020205AC +_080A3DDC: .4byte 0x02039BD4 +_080A3DE0: .4byte 0x02022ACE +_080A3DE4: .4byte 0x020375B4 +_080A3DE8: .4byte 0x04000008 +_080A3DEC: + adds r0, r6, #0 + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 +_080A3DF6: + add r0, sp, #0x10 + ldrb r0, [r0, #8] + str r0, [sp] + ldr r0, [sp, #0x10] + str r0, [sp, #4] + ldr r0, [sp, #0x14] + str r0, [sp, #8] + add r0, sp, #0x10 + ldrh r0, [r0, #0xa] + str r0, [sp, #0xc] + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl sub_0811980C + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A3E20 + b _080A3F2E +_080A3E20: + bl sub_080A3F68 + b _080A3F2E +_080A3E26: + ldr r1, _080A3F3C + movs r2, #0x80 + lsls r2, r2, #6 + movs r0, #0 + movs r3, #1 + bl RequestDma3Fill + ldr r1, _080A3F40 + movs r7, #0x80 + lsls r7, r7, #5 + movs r0, #0 + adds r2, r7, #0 + movs r3, #1 + bl RequestDma3Fill + add r0, sp, #0x10 + movs r1, #2 + bl sub_080A6458 + add r0, sp, #0x24 + movs r4, #0 + strh r4, [r0] + ldr r1, [sp, #0x10] + adds r1, r1, r7 + ldr r2, _080A3F44 + bl CpuSet + mov r0, sp + adds r0, #0x26 + strh r4, [r0] + ldr r1, [sp, #0x14] + movs r2, #0x80 + lsls r2, r2, #4 + mov r8, r2 + add r1, r8 + ldr r2, _080A3F48 + bl CpuSet + movs r0, #2 + movs r1, #4 + movs r2, #2 + bl SetAnimBgAttribute + movs r0, #2 + movs r1, #0 + movs r2, #1 + bl SetAnimBgAttribute + movs r0, #2 + movs r1, #1 + movs r2, #0 + bl SetAnimBgAttribute + ldr r0, _080A3F4C + adds r2, r5, r0 + ldrb r4, [r2] + ldr r5, _080A3F50 + ldr r3, _080A3F54 + lsls r1, r4, #4 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrh r0, [r1, #0x24] + ldrh r4, [r1, #0x20] + adds r0, r0, r4 + rsbs r0, r0, #0 + adds r0, #0x20 + strh r0, [r5] + ldr r4, _080A3F58 + ldrh r0, [r1, #0x26] + ldrh r1, [r1, #0x22] + adds r0, r0, r1 + rsbs r0, r0, #0 + adds r0, #0x20 + strh r0, [r4] + mov r0, sb + cmp r0, #0 + beq _080A3ED6 + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_080A3ED6: + ldrh r1, [r5] + movs r0, #0x18 + bl SetGpuReg + ldrh r1, [r4] + movs r0, #0x1a + bl SetGpuReg + lsls r4, r6, #5 + ldr r0, _080A3F5C + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x90 + movs r2, #0x20 + bl LoadPalette + ldr r1, _080A3F60 + ldr r2, _080A3F64 + adds r0, r4, #0 + bl CpuSet + adds r0, r6, #0 + bl GetBattlerPosition + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + add r0, sp, #0x10 + ldrb r0, [r0, #8] + str r0, [sp] + ldr r0, [sp, #0x10] + adds r0, r0, r7 + str r0, [sp, #4] + ldr r0, [sp, #0x14] + add r0, r8 + str r0, [sp, #8] + add r0, sp, #0x10 + ldrh r0, [r0, #0xa] + str r0, [sp, #0xc] + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl sub_0811980C +_080A3F2E: + add sp, #0x28 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A3F3C: .4byte 0x06006000 +_080A3F40: .4byte 0x0600F000 +_080A3F44: .4byte 0x01000800 +_080A3F48: .4byte 0x01000400 +_080A3F4C: .4byte 0x02023E88 +_080A3F50: .4byte 0x02022AD0 +_080A3F54: .4byte 0x020205AC +_080A3F58: .4byte 0x02022AD2 +_080A3F5C: .4byte 0x020375B4 +_080A3F60: .4byte 0x05000120 +_080A3F64: .4byte 0x04000008 + thumb_func_end MoveBattlerSpriteToBG + + thumb_func_start sub_080A3F68 +sub_080A3F68: @ 0x080A3F68 + push {r4, r5, r6, r7, lr} + sub sp, #0x10 + ldr r0, _080A3FE4 + ldr r0, [r0] + ldr r0, [r0, #0x18] + ldrh r0, [r0] + bl IsSpeciesNotUnown + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A3FDA + mov r0, sp + bl sub_080A63F8 + ldr r6, [sp, #4] + movs r5, #0 + movs r0, #7 + mov ip, r0 + movs r7, #0 +_080A3F8E: + movs r4, #0 + adds r3, r7, r6 + mov r1, ip + lsls r0, r1, #1 + adds r2, r0, r6 +_080A3F98: + ldrh r1, [r3] + ldrh r0, [r2] + strh r0, [r3] + strh r1, [r2] + adds r3, #2 + subs r2, #2 + adds r4, #1 + cmp r4, #3 + ble _080A3F98 + movs r0, #0x20 + add ip, r0 + adds r7, #0x40 + adds r5, #1 + cmp r5, #7 + ble _080A3F8E + movs r5, #0 + movs r1, #0x80 + lsls r1, r1, #3 + adds r3, r1, #0 +_080A3FBE: + adds r2, r5, #1 + lsls r0, r5, #6 + adds r1, r0, r6 + movs r4, #7 +_080A3FC6: + ldrh r0, [r1] + eors r0, r3 + strh r0, [r1] + adds r1, #2 + subs r4, #1 + cmp r4, #0 + bge _080A3FC6 + adds r5, r2, #0 + cmp r5, #7 + ble _080A3FBE +_080A3FDA: + add sp, #0x10 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A3FE4: .4byte 0x02039BD4 + thumb_func_end sub_080A3F68 + + thumb_func_start sub_080A3FE8 +sub_080A3FE8: @ 0x080A3FE8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r1 + adds r6, r2, #0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r3, r3, #0x18 + movs r0, #0x40 + mov ip, r0 + cmp r3, #0 + bne _080A4004 + movs r1, #0x20 + mov ip, r1 +_080A4004: + lsls r0, r5, #0x1c + lsrs r5, r0, #0x10 + movs r0, #0 + cmp r0, ip + bge _080A4034 + ldr r7, _080A4040 +_080A4010: + adds r4, r0, #1 + lsls r0, r0, #6 + mov r1, r8 + adds r3, r0, r1 + movs r2, #0x1f +_080A401A: + ldrh r1, [r3] + adds r0, r7, #0 + ands r0, r1 + orrs r0, r5 + adds r0, r0, r6 + strh r0, [r3] + adds r3, #2 + subs r2, #1 + cmp r2, #0 + bge _080A401A + adds r0, r4, #0 + cmp r0, ip + blt _080A4010 +_080A4034: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A4040: .4byte 0x00000FFF + thumb_func_end sub_080A3FE8 + + thumb_func_start sub_080A4044 +sub_080A4044: @ 0x080A4044 + push {r4, lr} + sub sp, #0x10 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r0, sp + bl sub_080A63F8 + cmp r4, #0 + beq _080A4064 + bl IsContest + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + beq _080A4080 +_080A4064: + movs r0, #1 + bl sub_080A6530 + ldr r0, _080A4078 + movs r1, #0 + strh r1, [r0] + ldr r0, _080A407C + strh r1, [r0] + b _080A408E + .align 2, 0 +_080A4078: .4byte 0x02022ACC +_080A407C: .4byte 0x02022ACE +_080A4080: + movs r0, #2 + bl sub_080A6530 + ldr r0, _080A4098 + strh r4, [r0] + ldr r0, _080A409C + strh r4, [r0] +_080A408E: + add sp, #0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A4098: .4byte 0x02022AD0 +_080A409C: .4byte 0x02022AD2 + thumb_func_end sub_080A4044 + + thumb_func_start task_pA_ma0A_obj_to_bg_pal +task_pA_ma0A_obj_to_bg_pal: @ 0x080A40A0 + push {r4, r5, r6, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080A411C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r5, r1, r2 + ldrb r4, [r5, #8] + ldrb r6, [r5, #0x14] + mov r0, sp + bl sub_080A63F8 + ldr r0, _080A4120 + lsls r1, r4, #4 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r2, [r1, #0x24] + ldrh r0, [r1, #0x20] + adds r2, r2, r0 + ldrh r0, [r5, #0xa] + subs r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldrh r2, [r1, #0x26] + ldrh r1, [r1, #0x22] + adds r2, r2, r1 + ldrh r0, [r5, #0xc] + subs r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + movs r1, #0x12 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _080A4138 + ldr r1, _080A4124 + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + ldrh r3, [r5, #0xe] + adds r0, r0, r3 + strh r0, [r1] + ldr r1, _080A4128 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + ldrh r5, [r5, #0x10] + adds r0, r0, r5 + strh r0, [r1] + lsls r0, r6, #5 + ldr r2, _080A412C + adds r0, r0, r2 + mov r1, sp + ldrb r1, [r1, #8] + lsls r1, r1, #5 + ldr r3, _080A4130 + adds r2, r2, r3 + adds r1, r1, r2 + ldr r2, _080A4134 + bl CpuSet + b _080A415E + .align 2, 0 +_080A411C: .4byte 0x03005B60 +_080A4120: .4byte 0x020205AC +_080A4124: .4byte 0x02022ACC +_080A4128: .4byte 0x02022ACE +_080A412C: .4byte 0x020379B4 +_080A4130: .4byte 0xFFFFFE00 +_080A4134: .4byte 0x04000008 +_080A4138: + ldr r1, _080A4168 + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + ldrh r3, [r5, #0xe] + adds r0, r0, r3 + strh r0, [r1] + ldr r1, _080A416C + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + ldrh r5, [r5, #0x10] + adds r0, r0, r5 + strh r0, [r1] + lsls r0, r6, #5 + ldr r1, _080A4170 + adds r0, r0, r1 + subs r1, #0xe0 + ldr r2, _080A4174 + bl CpuSet +_080A415E: + add sp, #0x10 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080A4168: .4byte 0x02022AD0 +_080A416C: .4byte 0x02022AD2 +_080A4170: .4byte 0x020379B4 +_080A4174: .4byte 0x04000008 + thumb_func_end task_pA_ma0A_obj_to_bg_pal + + thumb_func_start ScriptCmd_clearmonbg +ScriptCmd_clearmonbg: @ 0x080A4178 + push {r4, r5, lr} + ldr r0, _080A418C + ldr r2, [r0] + adds r1, r2, #1 + str r1, [r0] + ldrb r4, [r2, #1] + cmp r4, #0 + bne _080A4190 + movs r4, #2 + b _080A419A + .align 2, 0 +_080A418C: .4byte 0x02038090 +_080A4190: + cmp r4, #1 + bne _080A4196 + movs r4, #3 +_080A4196: + cmp r4, #0 + beq _080A419E +_080A419A: + cmp r4, #2 + bne _080A41A8 +_080A419E: + ldr r0, _080A41A4 + b _080A41AA + .align 2, 0 +_080A41A4: .4byte 0x020380D6 +_080A41A8: + ldr r0, _080A4200 +_080A41AA: + ldrb r5, [r0] + ldr r3, _080A4204 + ldrb r0, [r3] + cmp r0, #0xff + beq _080A41D0 + ldr r2, _080A4208 + ldr r0, _080A420C + adds r0, r5, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] +_080A41D0: + cmp r4, #1 + bls _080A4210 + ldrb r0, [r3, #1] + cmp r0, #0xff + beq _080A4210 + ldr r3, _080A4208 + ldr r2, _080A420C + movs r1, #2 + adds r0, r5, #0 + eors r0, r1 + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + b _080A4212 + .align 2, 0 +_080A4200: .4byte 0x020380D7 +_080A4204: .4byte 0x020380D0 +_080A4208: .4byte 0x020205AC +_080A420C: .4byte 0x02023E88 +_080A4210: + movs r4, #0 +_080A4212: + ldr r0, _080A423C + movs r1, #5 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080A4240 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #8] + strh r5, [r1, #0xc] + ldr r1, _080A4244 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A423C: .4byte 0x080A4249 +_080A4240: .4byte 0x03005B60 +_080A4244: .4byte 0x02038090 + thumb_func_end ScriptCmd_clearmonbg + + thumb_func_start sub_080A4248 +sub_080A4248: @ 0x080A4248 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _080A4288 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r1, r0, r1 + ldrh r0, [r1, #0xa] + adds r0, #1 + strh r0, [r1, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + beq _080A42D2 + ldrb r0, [r1, #0xc] + bl GetBattlerPosition + lsls r0, r0, #0x18 + movs r1, #0xff + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _080A4284 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A428C +_080A4284: + movs r4, #0 + b _080A428E + .align 2, 0 +_080A4288: .4byte 0x03005B60 +_080A428C: + movs r4, #1 +_080A428E: + ldr r6, _080A42D8 + ldrb r0, [r6] + cmp r0, #0xff + beq _080A42A6 + adds r0, r4, #0 + bl sub_080A4044 + ldrb r0, [r6] + bl DestroyTask + movs r0, #0xff + strb r0, [r6] +_080A42A6: + ldr r0, _080A42DC + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r2, #8 + ldrsh r0, [r1, r2] + cmp r0, #1 + ble _080A42CC + movs r0, #1 + eors r4, r0 + adds r0, r4, #0 + bl sub_080A4044 + ldrb r0, [r6, #1] + bl DestroyTask + movs r0, #0xff + strb r0, [r6, #1] +_080A42CC: + adds r0, r5, #0 + bl DestroyTask +_080A42D2: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080A42D8: .4byte 0x020380D0 +_080A42DC: .4byte 0x03005B60 + thumb_func_end sub_080A4248 + + thumb_func_start ScriptCmd_monbg_22 +ScriptCmd_monbg_22: @ 0x080A42E0 + push {r4, r5, lr} + ldr r0, _080A42F4 + ldr r2, [r0] + adds r1, r2, #1 + str r1, [r0] + ldrb r5, [r2, #1] + cmp r5, #0 + bne _080A42F8 + movs r5, #2 + b _080A4302 + .align 2, 0 +_080A42F4: .4byte 0x02038090 +_080A42F8: + cmp r5, #1 + bne _080A42FE + movs r5, #3 +_080A42FE: + cmp r5, #0 + beq _080A4306 +_080A4302: + cmp r5, #2 + bne _080A4310 +_080A4306: + ldr r0, _080A430C + b _080A4312 + .align 2, 0 +_080A430C: .4byte 0x020380D6 +_080A4310: + ldr r0, _080A4344 +_080A4312: + ldrb r4, [r0] + adds r0, r4, #0 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A4352 + adds r0, r4, #0 + bl GetBattlerPosition + lsls r0, r0, #0x18 + movs r1, #0xff + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _080A433E + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A4348 +_080A433E: + movs r1, #0 + b _080A434A + .align 2, 0 +_080A4344: .4byte 0x020380D7 +_080A4348: + movs r1, #1 +_080A434A: + adds r0, r4, #0 + movs r2, #0 + bl MoveBattlerSpriteToBG +_080A4352: + movs r0, #2 + eors r4, r0 + cmp r5, #1 + bls _080A4392 + adds r0, r4, #0 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A4392 + adds r0, r4, #0 + bl GetBattlerPosition + lsls r0, r0, #0x18 + movs r1, #0xff + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _080A4384 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A4388 +_080A4384: + movs r1, #0 + b _080A438A +_080A4388: + movs r1, #1 +_080A438A: + adds r0, r4, #0 + movs r2, #0 + bl MoveBattlerSpriteToBG +_080A4392: + ldr r1, _080A43A0 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A43A0: .4byte 0x02038090 + thumb_func_end ScriptCmd_monbg_22 + + thumb_func_start ScriptCmd_clearmonbg_23 +ScriptCmd_clearmonbg_23: @ 0x080A43A4 + push {r4, r5, r6, lr} + ldr r0, _080A43B8 + ldr r2, [r0] + adds r1, r2, #1 + str r1, [r0] + ldrb r5, [r2, #1] + cmp r5, #0 + bne _080A43BC + movs r5, #2 + b _080A43C6 + .align 2, 0 +_080A43B8: .4byte 0x02038090 +_080A43BC: + cmp r5, #1 + bne _080A43C2 + movs r5, #3 +_080A43C2: + cmp r5, #0 + beq _080A43CA +_080A43C6: + cmp r5, #2 + bne _080A43D4 +_080A43CA: + ldr r0, _080A43D0 + b _080A43D6 + .align 2, 0 +_080A43D0: .4byte 0x020380D6 +_080A43D4: + ldr r0, _080A4434 +_080A43D6: + ldrb r6, [r0] + adds r0, r6, #0 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A4400 + ldr r2, _080A4438 + ldr r0, _080A443C + adds r0, r6, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] +_080A4400: + cmp r5, #1 + bls _080A4440 + movs r0, #2 + adds r4, r6, #0 + eors r4, r0 + adds r0, r4, #0 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A4440 + ldr r2, _080A4438 + ldr r0, _080A443C + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + b _080A4442 + .align 2, 0 +_080A4434: .4byte 0x020380D7 +_080A4438: .4byte 0x020205AC +_080A443C: .4byte 0x02023E88 +_080A4440: + movs r5, #0 +_080A4442: + ldr r0, _080A446C + movs r1, #5 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080A4470 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r5, [r1, #8] + strh r6, [r1, #0xc] + ldr r1, _080A4474 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080A446C: .4byte 0x080A4479 +_080A4470: .4byte 0x03005B60 +_080A4474: .4byte 0x02038090 + thumb_func_end ScriptCmd_clearmonbg_23 + + thumb_func_start sub_080A4478 +sub_080A4478: @ 0x080A4478 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _080A44BC + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r1, r0, r1 + ldrh r0, [r1, #0xa] + adds r0, #1 + strh r0, [r1, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + beq _080A4506 + ldrb r4, [r1, #0xc] + adds r0, r4, #0 + bl GetBattlerPosition + lsls r0, r0, #0x18 + movs r1, #0xff + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _080A44B6 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A44C0 +_080A44B6: + movs r5, #0 + b _080A44C2 + .align 2, 0 +_080A44BC: .4byte 0x03005B60 +_080A44C0: + movs r5, #1 +_080A44C2: + adds r0, r4, #0 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A44D4 + adds r0, r5, #0 + bl sub_080A4044 +_080A44D4: + ldr r0, _080A450C + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r2, #8 + ldrsh r0, [r1, r2] + cmp r0, #1 + ble _080A4500 + movs r0, #2 + eors r4, r0 + adds r0, r4, #0 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A4500 + movs r0, #1 + eors r5, r0 + adds r0, r5, #0 + bl sub_080A4044 +_080A4500: + adds r0, r6, #0 + bl DestroyTask +_080A4506: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080A450C: .4byte 0x03005B60 + thumb_func_end sub_080A4478 + + thumb_func_start ScriptCmd_setalpha +ScriptCmd_setalpha: @ 0x080A4510 + push {r4, r5, lr} + ldr r2, _080A4544 + ldr r0, [r2] + adds r1, r0, #1 + str r1, [r2] + ldrb r5, [r0, #1] + adds r0, r1, #1 + str r0, [r2] + ldrb r4, [r1, #1] + lsls r4, r4, #8 + adds r0, #1 + str r0, [r2] + movs r1, #0xfd + lsls r1, r1, #6 + movs r0, #0x50 + bl SetGpuReg + orrs r5, r4 + movs r0, #0x52 + adds r1, r5, #0 + bl SetGpuReg + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A4544: .4byte 0x02038090 + thumb_func_end ScriptCmd_setalpha + + thumb_func_start ScriptCmd_setbldcnt +ScriptCmd_setbldcnt: @ 0x080A4548 + push {lr} + ldr r3, _080A456C + ldr r0, [r3] + adds r2, r0, #1 + str r2, [r3] + ldrb r1, [r0, #1] + adds r0, r2, #1 + str r0, [r3] + ldrb r2, [r2, #1] + lsls r2, r2, #8 + adds r0, #1 + str r0, [r3] + orrs r1, r2 + movs r0, #0x50 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 +_080A456C: .4byte 0x02038090 + thumb_func_end ScriptCmd_setbldcnt + + thumb_func_start ScriptCmd_blendoff +ScriptCmd_blendoff: @ 0x080A4570 + push {lr} + ldr r1, _080A4590 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 +_080A4590: .4byte 0x02038090 + thumb_func_end ScriptCmd_blendoff + + thumb_func_start ScriptCmd_call +ScriptCmd_call: @ 0x080A4594 + push {r4, lr} + ldr r4, _080A45C0 + ldr r1, [r4] + adds r3, r1, #1 + str r3, [r4] + ldr r2, _080A45C4 + adds r0, r1, #5 + str r0, [r2] + ldrb r1, [r1, #1] + ldrb r0, [r3, #1] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r3, #2] + lsls r0, r0, #0x10 + adds r1, r1, r0 + ldrb r0, [r3, #3] + lsls r0, r0, #0x18 + adds r1, r1, r0 + str r1, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A45C0: .4byte 0x02038090 +_080A45C4: .4byte 0x02038094 + thumb_func_end ScriptCmd_call + + thumb_func_start ScriptCmd_return +ScriptCmd_return: @ 0x080A45C8 + ldr r0, _080A45D4 + ldr r1, _080A45D8 + ldr r1, [r1] + str r1, [r0] + bx lr + .align 2, 0 +_080A45D4: .4byte 0x02038090 +_080A45D8: .4byte 0x02038094 + thumb_func_end ScriptCmd_return + + thumb_func_start ScriptCmd_setarg +ScriptCmd_setarg: @ 0x080A45DC + push {r4, r5, lr} + ldr r5, _080A4608 + ldr r1, [r5] + adds r0, r1, #1 + str r0, [r5] + ldrb r2, [r1, #1] + adds r3, r0, #1 + str r3, [r5] + ldrb r4, [r0, #1] + ldrb r0, [r3, #1] + lsls r0, r0, #8 + orrs r4, r0 + adds r1, #4 + str r1, [r5] + ldr r0, _080A460C + lsls r2, r2, #1 + adds r2, r2, r0 + strh r4, [r2] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A4608: .4byte 0x02038090 +_080A460C: .4byte 0x020380BE + thumb_func_end ScriptCmd_setarg + + thumb_func_start ScriptCmd_choosetwoturnanim +ScriptCmd_choosetwoturnanim: @ 0x080A4610 + push {lr} + ldr r3, _080A4648 + ldr r2, [r3] + adds r0, r2, #1 + str r0, [r3] + ldr r0, _080A464C + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080A462A + adds r0, r2, #5 + str r0, [r3] +_080A462A: + ldr r2, [r3] + ldrb r1, [r2] + ldrb r0, [r2, #1] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r2, #2] + lsls r0, r0, #0x10 + adds r1, r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x18 + adds r1, r1, r0 + str r1, [r3] + pop {r0} + bx r0 + .align 2, 0 +_080A4648: .4byte 0x02038090 +_080A464C: .4byte 0x020380D2 + thumb_func_end ScriptCmd_choosetwoturnanim + + thumb_func_start ScriptCmd_jumpifmoveturn +ScriptCmd_jumpifmoveturn: @ 0x080A4650 + push {r4, r5, lr} + ldr r5, _080A4680 + ldr r4, [r5] + adds r2, r4, #1 + str r2, [r5] + ldrb r1, [r4, #1] + adds r3, r2, #1 + str r3, [r5] + ldr r0, _080A4684 + ldrb r0, [r0] + cmp r1, r0 + bne _080A4688 + ldrb r1, [r2, #1] + ldrb r0, [r3, #1] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r3, #2] + lsls r0, r0, #0x10 + adds r1, r1, r0 + ldrb r0, [r3, #3] + lsls r0, r0, #0x18 + adds r1, r1, r0 + str r1, [r5] + b _080A468C + .align 2, 0 +_080A4680: .4byte 0x02038090 +_080A4684: .4byte 0x020380D2 +_080A4688: + adds r0, r4, #6 + str r0, [r5] +_080A468C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ScriptCmd_jumpifmoveturn + + thumb_func_start ScriptCmd_goto +ScriptCmd_goto: @ 0x080A4694 + ldr r3, _080A46B4 + ldr r0, [r3] + adds r2, r0, #1 + str r2, [r3] + ldrb r1, [r0, #1] + ldrb r0, [r2, #1] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r2, #2] + lsls r0, r0, #0x10 + adds r1, r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x18 + adds r1, r1, r0 + str r1, [r3] + bx lr + .align 2, 0 +_080A46B4: .4byte 0x02038090 + thumb_func_end ScriptCmd_goto + + thumb_func_start IsContest +IsContest: @ 0x080A46B8 + push {lr} + ldr r0, _080A46D0 + ldr r1, _080A46D4 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080A46D8 + movs r0, #0 + b _080A46DA + .align 2, 0 +_080A46D0: .4byte 0x03002360 +_080A46D4: .4byte 0x00000439 +_080A46D8: + movs r0, #1 +_080A46DA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsContest + + thumb_func_start ScriptCmd_fadetobg +ScriptCmd_fadetobg: @ 0x080A46E0 + push {r4, lr} + ldr r1, _080A4714 + ldr r2, [r1] + adds r0, r2, #1 + str r0, [r1] + ldrb r4, [r2, #1] + adds r0, #1 + str r0, [r1] + ldr r0, _080A4718 + movs r1, #5 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080A471C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #8] + ldr r1, _080A4720 + movs r0, #1 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A4714: .4byte 0x02038090 +_080A4718: .4byte 0x080A47BD +_080A471C: .4byte 0x03005B60 +_080A4720: .4byte 0x020380D3 + thumb_func_end ScriptCmd_fadetobg + + thumb_func_start ScriptCmd_fadetobgfromset +ScriptCmd_fadetobgfromset: @ 0x080A4724 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r2, _080A4764 + ldr r1, [r2] + adds r0, r1, #1 + str r0, [r2] + ldrb r3, [r1, #1] + mov r8, r3 + ldrb r7, [r0, #1] + ldrb r6, [r0, #2] + adds r1, #4 + str r1, [r2] + ldr r0, _080A4768 + movs r1, #5 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r5, r4, #0 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A4770 + ldr r1, _080A476C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r6, [r0, #8] + b _080A47A2 + .align 2, 0 +_080A4764: .4byte 0x02038090 +_080A4768: .4byte 0x080A47BD +_080A476C: .4byte 0x03005B60 +_080A4770: + ldr r0, _080A478C + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A4794 + ldr r1, _080A4790 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r7, [r0, #8] + b _080A47A2 + .align 2, 0 +_080A478C: .4byte 0x020380D7 +_080A4790: .4byte 0x03005B60 +_080A4794: + ldr r1, _080A47B4 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + mov r1, r8 + strh r1, [r0, #8] +_080A47A2: + ldr r1, _080A47B8 + movs r0, #1 + strb r0, [r1] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A47B4: .4byte 0x03005B60 +_080A47B8: .4byte 0x020380D3 + thumb_func_end ScriptCmd_fadetobgfromset + + thumb_func_start Task_FadeToBg +Task_FadeToBg: @ 0x080A47BC + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _080A47F0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrh r6, [r4, #0x1c] + movs r0, #0x1c + ldrsh r3, [r4, r0] + adds r7, r1, #0 + cmp r3, #0 + bne _080A47F4 + str r3, [sp] + movs r0, #0xe8 + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginHardwarePaletteFade + ldrh r0, [r4, #0x1c] + adds r0, #1 + strh r0, [r4, #0x1c] + b _080A4884 + .align 2, 0 +_080A47F0: .4byte 0x03005B60 +_080A47F4: + ldr r2, _080A4810 + ldrb r1, [r2, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080A4884 + cmp r3, #1 + bne _080A4818 + adds r0, r6, #1 + strh r0, [r4, #0x1c] + ldr r1, _080A4814 + movs r0, #2 + strb r0, [r1] + b _080A485C + .align 2, 0 +_080A4810: .4byte 0x02037C74 +_080A4814: .4byte 0x020380D3 +_080A4818: + cmp r3, #2 + bne _080A485C + ldrh r0, [r4, #8] + lsls r2, r0, #0x10 + asrs r1, r2, #0x10 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _080A4830 + bl LoadDefaultBg + b _080A4836 +_080A4830: + lsrs r0, r2, #0x10 + bl LoadMoveBg +_080A4836: + movs r0, #1 + str r0, [sp] + movs r0, #0xe8 + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginHardwarePaletteFade + ldr r1, _080A4858 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #0x1c] + adds r1, #1 + strh r1, [r0, #0x1c] + b _080A4884 + .align 2, 0 +_080A4858: .4byte 0x03005B60 +_080A485C: + ldrb r1, [r2, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _080A4884 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r7 + movs r1, #0x1c + ldrsh r0, [r0, r1] + cmp r0, #3 + bne _080A4884 + adds r0, r5, #0 + bl DestroyTask + ldr r0, _080A488C + strb r4, [r0] +_080A4884: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A488C: .4byte 0x020380D3 + thumb_func_end Task_FadeToBg + + thumb_func_start LoadMoveBg +LoadMoveBg: @ 0x080A4890 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A4918 + ldr r6, _080A4900 + lsls r4, r7, #1 + adds r4, r4, r7 + lsls r4, r4, #2 + adds r0, r6, #0 + adds r0, #8 + adds r0, r4, r0 + ldr r0, [r0] + ldr r5, _080A4904 + adds r1, r5, #0 + bl LZDecompressVram + bl sub_080A665C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r5, #0 + movs r3, #0 + bl sub_080A3FE8 + ldr r1, _080A4908 + ldr r0, _080A490C + str r5, [r0] + str r1, [r0, #4] + ldr r1, _080A4910 + str r1, [r0, #8] + ldr r0, [r0, #8] + adds r0, r4, r6 + ldr r0, [r0] + ldr r1, _080A4914 + bl LZDecompressWram + adds r6, #4 + adds r4, r4, r6 + ldr r4, [r4] + bl sub_080A665C + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x14 + adds r0, r4, #0 + movs r2, #0x20 + bl LoadCompressedPalette + b _080A4946 + .align 2, 0 +_080A4900: .4byte 0x084FE460 +_080A4904: .4byte 0x0201C000 +_080A4908: .4byte 0x0600D000 +_080A490C: .4byte 0x040000D4 +_080A4910: .4byte 0x84000200 +_080A4914: .4byte 0x06002000 +_080A4918: + ldr r5, _080A494C + lsls r4, r7, #1 + adds r4, r4, r7 + lsls r4, r4, #2 + adds r0, r5, #0 + adds r0, #8 + adds r0, r4, r0 + ldr r0, [r0] + ldr r1, _080A4950 + bl LZDecompressWram + adds r0, r4, r5 + ldr r0, [r0] + ldr r1, _080A4954 + bl LZDecompressWram + adds r5, #4 + adds r4, r4, r5 + ldr r0, [r4] + movs r1, #0x20 + movs r2, #0x20 + bl LoadCompressedPalette +_080A4946: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A494C: .4byte 0x084FE460 +_080A4950: .4byte 0x0600D000 +_080A4954: .4byte 0x06008000 + thumb_func_end LoadMoveBg + + thumb_func_start LoadDefaultBg +LoadDefaultBg: @ 0x080A4958 + push {lr} + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A496A + bl LoadContestBgAfterMoveAnim + b _080A496E +_080A496A: + bl DrawMainBattleBackground +_080A496E: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LoadDefaultBg + + thumb_func_start ScriptCmd_restorebg +ScriptCmd_restorebg: @ 0x080A4974 + push {lr} + ldr r1, _080A49A4 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + ldr r0, _080A49A8 + movs r1, #5 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080A49AC + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r0, _080A49B0 + strh r0, [r1, #8] + ldr r1, _080A49B4 + movs r0, #1 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080A49A4: .4byte 0x02038090 +_080A49A8: .4byte 0x080A47BD +_080A49AC: .4byte 0x03005B60 +_080A49B0: .4byte 0x0000FFFF +_080A49B4: .4byte 0x020380D3 + thumb_func_end ScriptCmd_restorebg + + thumb_func_start ScriptCmd_waitbgfadeout +ScriptCmd_waitbgfadeout: @ 0x080A49B8 + push {lr} + ldr r0, _080A49D0 + ldrb r0, [r0] + cmp r0, #2 + bne _080A49DC + ldr r1, _080A49D4 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + ldr r1, _080A49D8 + movs r0, #0 + b _080A49E0 + .align 2, 0 +_080A49D0: .4byte 0x020380D3 +_080A49D4: .4byte 0x02038090 +_080A49D8: .4byte 0x0203809C +_080A49DC: + ldr r1, _080A49E8 + movs r0, #1 +_080A49E0: + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080A49E8: .4byte 0x0203809C + thumb_func_end ScriptCmd_waitbgfadeout + + thumb_func_start ScriptCmd_waitforvisualfinish +ScriptCmd_waitforvisualfinish: @ 0x080A49EC + push {lr} + ldr r0, _080A4A04 + ldrb r2, [r0] + cmp r2, #0 + bne _080A4A10 + ldr r0, _080A4A08 + ldr r1, [r0] + adds r1, #1 + str r1, [r0] + ldr r0, _080A4A0C + strb r2, [r0] + b _080A4A16 + .align 2, 0 +_080A4A04: .4byte 0x020380D3 +_080A4A08: .4byte 0x02038090 +_080A4A0C: .4byte 0x0203809C +_080A4A10: + ldr r1, _080A4A1C + movs r0, #1 + strb r0, [r1] +_080A4A16: + pop {r0} + bx r0 + .align 2, 0 +_080A4A1C: .4byte 0x0203809C + thumb_func_end ScriptCmd_waitforvisualfinish + + thumb_func_start ScriptCmd_changebg +ScriptCmd_changebg: @ 0x080A4A20 + push {r4, lr} + ldr r4, _080A4A3C + ldr r1, [r4] + adds r0, r1, #1 + str r0, [r4] + ldrb r0, [r1, #1] + bl LoadMoveBg + ldr r0, [r4] + adds r0, #1 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A4A3C: .4byte 0x02038090 + thumb_func_end ScriptCmd_changebg + + thumb_func_start BattleAnimAdjustPanning +BattleAnimAdjustPanning: @ 0x080A4A40 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A4A88 + ldr r0, _080A4A80 + ldr r1, [r0] + ldr r0, _080A4A84 + ldrb r2, [r0] + ldr r1, [r1, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080A4A88 + adds r0, r2, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + movs r4, #0xc0 + cmp r0, #0 + beq _080A4B1A + movs r4, #0x3f + b _080A4B1A + .align 2, 0 +_080A4A80: .4byte 0x02024174 +_080A4A84: .4byte 0x020380D6 +_080A4A88: + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A4AB0 + ldr r0, _080A4AA8 + ldr r1, _080A4AAC + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bne _080A4B14 + cmp r0, #2 + bne _080A4B14 + cmp r4, #0x3f + beq _080A4B26 + b _080A4B14 + .align 2, 0 +_080A4AA8: .4byte 0x020380D6 +_080A4AAC: .4byte 0x020380D7 +_080A4AB0: + ldr r0, _080A4AD8 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A4AEE + ldr r0, _080A4ADC + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A4B1A + lsls r0, r4, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0x3f + bne _080A4AE0 + movs r4, #0xc0 + b _080A4B1A + .align 2, 0 +_080A4AD8: .4byte 0x020380D6 +_080A4ADC: .4byte 0x020380D7 +_080A4AE0: + movs r0, #0x40 + rsbs r0, r0, #0 + cmp r1, r0 + beq _080A4B1A + rsbs r0, r1, #0 + lsls r0, r0, #0x18 + b _080A4B18 +_080A4AEE: + ldr r0, _080A4B10 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080A4B14 + lsls r0, r4, #0x18 + asrs r0, r0, #0x18 + movs r1, #0x40 + rsbs r1, r1, #0 + cmp r0, r1 + bne _080A4B1A + movs r4, #0x3f + b _080A4B1A + .align 2, 0 +_080A4B10: .4byte 0x020380D7 +_080A4B14: + lsls r0, r4, #0x18 + rsbs r0, r0, #0 +_080A4B18: + lsrs r4, r0, #0x18 +_080A4B1A: + lsls r0, r4, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0x3f + ble _080A4B26 + movs r4, #0x3f + b _080A4B34 +_080A4B26: + lsls r0, r4, #0x18 + asrs r0, r0, #0x18 + movs r1, #0x40 + rsbs r1, r1, #0 + cmp r0, r1 + bge _080A4B34 + movs r4, #0xc0 +_080A4B34: + lsls r0, r4, #0x18 + asrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end BattleAnimAdjustPanning + + thumb_func_start BattleAnimAdjustPanning2 +BattleAnimAdjustPanning2: @ 0x080A4B40 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A4B88 + ldr r0, _080A4B80 + ldr r1, [r0] + ldr r0, _080A4B84 + ldrb r2, [r0] + ldr r1, [r1, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080A4B88 + adds r0, r2, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + movs r4, #0xc0 + cmp r0, #0 + beq _080A4BA6 + movs r4, #0x3f + b _080A4BA6 + .align 2, 0 +_080A4B80: .4byte 0x02024174 +_080A4B84: .4byte 0x020380D6 +_080A4B88: + ldr r0, _080A4BB0 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A4BA0 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A4BA6 +_080A4BA0: + lsls r0, r4, #0x18 + rsbs r0, r0, #0 + lsrs r4, r0, #0x18 +_080A4BA6: + lsls r0, r4, #0x18 + asrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080A4BB0: .4byte 0x020380D6 + thumb_func_end BattleAnimAdjustPanning2 + + thumb_func_start KeepPanInRange +KeepPanInRange: @ 0x080A4BB4 + push {lr} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + asrs r2, r0, #0x10 + cmp r2, #0x3f + ble _080A4BC4 + movs r1, #0x3f + b _080A4BCE +_080A4BC4: + movs r0, #0x40 + rsbs r0, r0, #0 + cmp r2, r0 + bge _080A4BCE + ldr r1, _080A4BD8 +_080A4BCE: + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 +_080A4BD8: .4byte 0x0000FFC0 + thumb_func_end KeepPanInRange + + thumb_func_start CalculatePanIncrement +CalculatePanIncrement: @ 0x080A4BDC + push {lr} + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + adds r3, r2, #0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r0, r1 + bge _080A4BFA + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _080A4C0A + b _080A4C08 +_080A4BFA: + cmp r0, r1 + ble _080A4C10 + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _080A4C08 + rsbs r0, r0, #0 +_080A4C08: + rsbs r0, r0, #0 +_080A4C0A: + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _080A4C12 +_080A4C10: + movs r0, #0 +_080A4C12: + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CalculatePanIncrement + + thumb_func_start ScriptCmd_playsewithpan +ScriptCmd_playsewithpan: @ 0x080A4C1C + push {r4, r5, lr} + ldr r5, _080A4C50 + ldr r0, [r5] + adds r1, r0, #1 + str r1, [r5] + ldrb r4, [r0, #1] + ldrb r0, [r1, #1] + lsls r0, r0, #8 + orrs r4, r0 + movs r0, #2 + ldrsb r0, [r1, r0] + bl BattleAnimAdjustPanning + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r4, #0 + bl PlaySE12WithPanning + ldr r0, [r5] + adds r0, #3 + str r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A4C50: .4byte 0x02038090 + thumb_func_end ScriptCmd_playsewithpan + + thumb_func_start ScriptCmd_setpan +ScriptCmd_setpan: @ 0x080A4C54 + push {r4, lr} + ldr r4, _080A4C7C + ldr r1, [r4] + adds r0, r1, #1 + str r0, [r4] + movs r0, #1 + ldrsb r0, [r1, r0] + bl BattleAnimAdjustPanning + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + bl SE12PanpotControl + ldr r0, [r4] + adds r0, #1 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A4C7C: .4byte 0x02038090 + thumb_func_end ScriptCmd_setpan + + thumb_func_start ScriptCmd_panse_1B +ScriptCmd_panse_1B: @ 0x080A4C80 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _080A4D30 + mov sl, r0 + ldr r0, [r0] + adds r1, r0, #1 + mov r2, sl + str r1, [r2] + ldrb r0, [r0, #1] + mov sb, r0 + ldrb r0, [r1, #1] + lsls r0, r0, #8 + mov r2, sb + orrs r2, r0 + mov sb, r2 + ldrb r4, [r1, #3] + ldrb r6, [r1, #4] + ldrb r7, [r1, #5] + movs r0, #2 + ldrsb r0, [r1, r0] + bl BattleAnimAdjustPanning + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + adds r0, r4, #0 + bl BattleAnimAdjustPanning + mov r8, r0 + lsls r5, r5, #0x18 + asrs r5, r5, #0x18 + mov r0, r8 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + mov r8, r0 + lsls r6, r6, #0x18 + asrs r6, r6, #0x18 + adds r0, r5, #0 + mov r1, r8 + adds r2, r6, #0 + bl CalculatePanIncrement + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _080A4D34 + movs r1, #1 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080A4D38 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r5, [r1, #8] + mov r2, r8 + strh r2, [r1, #0xa] + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + strh r4, [r1, #0xc] + strh r7, [r1, #0xe] + strh r5, [r1, #0x10] + mov r0, sb + adds r1, r5, #0 + bl PlaySE12WithPanning + ldr r1, _080A4D3C + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + mov r1, sl + ldr r0, [r1] + adds r0, #6 + str r0, [r1] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A4D30: .4byte 0x02038090 +_080A4D34: .4byte 0x080A4D41 +_080A4D38: .4byte 0x03005B60 +_080A4D3C: .4byte 0x0203809F + thumb_func_end ScriptCmd_panse_1B + + thumb_func_start Task_PanFromInitialToTarget +Task_PanFromInitialToTarget: @ 0x080A4D40 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r7, #0 + ldr r1, _080A4D84 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r2, r0, r1 + ldrh r0, [r2, #0x18] + adds r1, r0, #1 + strh r1, [r2, #0x18] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r3, #0xe + ldrsh r1, [r2, r3] + cmp r0, r1 + blt _080A4DC4 + strh r7, [r2, #0x18] + ldrh r6, [r2, #8] + ldrh r3, [r2, #0xa] + movs r4, #0x10 + ldrsh r0, [r2, r4] + movs r4, #0xc + ldrsh r1, [r2, r4] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + strh r4, [r2, #0x10] + cmp r1, #0 + bne _080A4D88 + lsls r2, r3, #0x10 + b _080A4DAC + .align 2, 0 +_080A4D84: .4byte 0x03005B60 +_080A4D88: + lsls r1, r6, #0x10 + lsls r0, r3, #0x10 + asrs r3, r0, #0x10 + adds r2, r0, #0 + cmp r1, r2 + bge _080A4D9E + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + cmp r0, r3 + blt _080A4DA8 + b _080A4DAC +_080A4D9E: + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + cmp r0, r3 + bgt _080A4DA8 + movs r7, #1 +_080A4DA8: + cmp r7, #0 + beq _080A4DBC +_080A4DAC: + lsrs r4, r2, #0x10 + adds r0, r5, #0 + bl DestroyTask + ldr r1, _080A4DCC + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] +_080A4DBC: + lsls r0, r4, #0x18 + asrs r0, r0, #0x18 + bl SE12PanpotControl +_080A4DC4: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A4DCC: .4byte 0x0203809F + thumb_func_end Task_PanFromInitialToTarget + + thumb_func_start ScriptCmd_panse_26 +ScriptCmd_panse_26: @ 0x080A4DD0 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + ldr r0, _080A4E54 + mov sb, r0 + ldr r0, [r0] + adds r1, r0, #1 + mov r2, sb + str r1, [r2] + ldrb r0, [r0, #1] + mov r8, r0 + ldrb r0, [r1, #1] + lsls r0, r0, #8 + mov r2, r8 + orrs r2, r0 + mov r8, r2 + ldrb r4, [r1, #2] + ldrb r5, [r1, #3] + ldrb r6, [r1, #4] + ldrb r1, [r1, #5] + mov sl, r1 + ldr r0, _080A4E58 + movs r1, #1 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080A4E5C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + strh r4, [r1, #8] + lsls r5, r5, #0x18 + asrs r5, r5, #0x18 + strh r5, [r1, #0xa] + lsls r6, r6, #0x18 + asrs r6, r6, #0x18 + strh r6, [r1, #0xc] + mov r0, sl + strh r0, [r1, #0xe] + strh r4, [r1, #0x10] + mov r0, r8 + adds r1, r4, #0 + bl PlaySE12WithPanning + ldr r1, _080A4E60 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + mov r1, sb + ldr r0, [r1] + adds r0, #6 + str r0, [r1] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080A4E54: .4byte 0x02038090 +_080A4E58: .4byte 0x080A4D41 +_080A4E5C: .4byte 0x03005B60 +_080A4E60: .4byte 0x0203809F + thumb_func_end ScriptCmd_panse_26 + + thumb_func_start ScriptCmd_panse_27 +ScriptCmd_panse_27: @ 0x080A4E64 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _080A4F14 + mov sl, r0 + ldr r0, [r0] + adds r1, r0, #1 + mov r2, sl + str r1, [r2] + ldrb r0, [r0, #1] + mov sb, r0 + ldrb r0, [r1, #1] + lsls r0, r0, #8 + mov r2, sb + orrs r2, r0 + mov sb, r2 + ldrb r4, [r1, #3] + ldrb r0, [r1, #4] + mov r8, r0 + ldrb r7, [r1, #5] + movs r0, #2 + ldrsb r0, [r1, r0] + bl BattleAnimAdjustPanning2 + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + adds r0, r4, #0 + bl BattleAnimAdjustPanning2 + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + mov r1, r8 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov r8, r1 + mov r0, r8 + bl BattleAnimAdjustPanning2 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _080A4F18 + movs r1, #1 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080A4F1C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + lsls r6, r6, #0x18 + asrs r6, r6, #0x18 + strh r6, [r1, #8] + lsls r5, r5, #0x18 + asrs r5, r5, #0x18 + strh r5, [r1, #0xa] + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + strh r4, [r1, #0xc] + strh r7, [r1, #0xe] + strh r6, [r1, #0x10] + mov r0, sb + adds r1, r6, #0 + bl PlaySE12WithPanning + ldr r1, _080A4F20 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + mov r2, sl + ldr r0, [r2] + adds r0, #6 + str r0, [r2] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A4F14: .4byte 0x02038090 +_080A4F18: .4byte 0x080A4D41 +_080A4F1C: .4byte 0x03005B60 +_080A4F20: .4byte 0x0203809F + thumb_func_end ScriptCmd_panse_27 + + thumb_func_start ScriptCmd_loopsewithpan +ScriptCmd_loopsewithpan: @ 0x080A4F24 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + ldr r6, _080A4F9C + ldr r0, [r6] + adds r1, r0, #1 + str r1, [r6] + ldrb r5, [r0, #1] + ldrb r0, [r1, #1] + lsls r0, r0, #8 + orrs r5, r0 + ldrb r0, [r1, #3] + mov r8, r0 + ldrb r2, [r1, #4] + mov sb, r2 + movs r0, #2 + ldrsb r0, [r1, r0] + bl BattleAnimAdjustPanning + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _080A4FA0 + movs r1, #1 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080A4FA4 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r5, [r1, #8] + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + strh r4, [r1, #0xa] + mov r2, r8 + strh r2, [r1, #0xc] + mov r2, sb + strh r2, [r1, #0xe] + mov r2, r8 + strh r2, [r1, #0x18] + ldr r1, [r1] + bl _call_via_r1 + ldr r1, _080A4FA8 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r0, [r6] + adds r0, #5 + str r0, [r6] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080A4F9C: .4byte 0x02038090 +_080A4FA0: .4byte 0x080A4FAD +_080A4FA4: .4byte 0x03005B60 +_080A4FA8: .4byte 0x0203809F + thumb_func_end ScriptCmd_loopsewithpan + + thumb_func_start Task_LoopAndPlaySE +Task_LoopAndPlaySE: @ 0x080A4FAC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _080A5000 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r2, r0, r1 + ldrh r0, [r2, #0x18] + adds r1, r0, #1 + strh r1, [r2, #0x18] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r3, #0xc + ldrsh r1, [r2, r3] + cmp r0, r1 + blt _080A4FFA + movs r0, #0 + strh r0, [r2, #0x18] + ldrh r0, [r2, #8] + ldrb r1, [r2, #0xa] + ldrh r4, [r2, #0xe] + subs r4, #1 + strh r4, [r2, #0xe] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + bl PlaySE12WithPanning + cmp r4, #0 + bne _080A4FFA + adds r0, r5, #0 + bl DestroyTask + ldr r1, _080A5004 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] +_080A4FFA: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A5000: .4byte 0x03005B60 +_080A5004: .4byte 0x0203809F + thumb_func_end Task_LoopAndPlaySE + + thumb_func_start ScriptCmd_waitplaysewithpan +ScriptCmd_waitplaysewithpan: @ 0x080A5008 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + ldr r6, _080A506C + ldr r0, [r6] + adds r1, r0, #1 + str r1, [r6] + ldrb r5, [r0, #1] + ldrb r0, [r1, #1] + lsls r0, r0, #8 + orrs r5, r0 + ldrb r0, [r1, #3] + mov r8, r0 + movs r0, #2 + ldrsb r0, [r1, r0] + bl BattleAnimAdjustPanning + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _080A5070 + movs r1, #1 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080A5074 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r5, [r1, #8] + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + strh r4, [r1, #0xa] + mov r0, r8 + strh r0, [r1, #0xc] + ldr r1, _080A5078 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r0, [r6] + adds r0, #4 + str r0, [r6] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080A506C: .4byte 0x02038090 +_080A5070: .4byte 0x080A507D +_080A5074: .4byte 0x03005B60 +_080A5078: .4byte 0x0203809F + thumb_func_end ScriptCmd_waitplaysewithpan + + thumb_func_start Task_WaitAndPlaySE +Task_WaitAndPlaySE: @ 0x080A507C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _080A50B8 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r2, r0, r1 + ldrh r0, [r2, #0xc] + subs r1, r0, #1 + strh r1, [r2, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _080A50B0 + ldrh r0, [r2, #8] + movs r1, #0xa + ldrsb r1, [r2, r1] + bl PlaySE12WithPanning + adds r0, r4, #0 + bl DestroyTask + ldr r1, _080A50BC + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] +_080A50B0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A50B8: .4byte 0x03005B60 +_080A50BC: .4byte 0x0203809F + thumb_func_end Task_WaitAndPlaySE + + thumb_func_start ScriptCmd_createsoundtask +ScriptCmd_createsoundtask: @ 0x080A50C0 + push {r4, r5, r6, lr} + ldr r4, _080A5128 + ldr r1, [r4] + adds r3, r1, #1 + str r3, [r4] + ldrb r2, [r1, #1] + ldrb r0, [r3, #1] + lsls r0, r0, #8 + adds r2, r2, r0 + ldrb r0, [r3, #2] + lsls r0, r0, #0x10 + adds r2, r2, r0 + ldrb r0, [r3, #3] + lsls r0, r0, #0x18 + adds r6, r2, r0 + adds r0, r1, #5 + str r0, [r4] + ldrb r0, [r1, #5] + adds r1, #6 + str r1, [r4] + cmp r0, #0 + beq _080A510A + adds r5, r4, #0 + ldr r4, _080A512C + adds r3, r0, #0 +_080A50F2: + ldr r2, [r5] + ldrb r1, [r2] + ldrb r0, [r2, #1] + lsls r0, r0, #8 + orrs r1, r0 + strh r1, [r4] + adds r2, #2 + str r2, [r5] + adds r4, #2 + subs r3, #1 + cmp r3, #0 + bne _080A50F2 +_080A510A: + adds r0, r6, #0 + movs r1, #1 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl _call_via_r6 + ldr r1, _080A5130 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080A5128: .4byte 0x02038090 +_080A512C: .4byte 0x020380BE +_080A5130: .4byte 0x0203809F + thumb_func_end ScriptCmd_createsoundtask + + thumb_func_start ScriptCmd_waitsound +ScriptCmd_waitsound: @ 0x080A5134 + push {r4, r5, lr} + ldr r0, _080A516C + ldrb r5, [r0] + cmp r5, #0 + bne _080A517C + bl IsSEPlaying + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _080A5194 + ldr r4, _080A5170 + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x5a + bls _080A5182 + ldr r0, _080A5174 + bl m4aMPlayStop + ldr r0, _080A5178 + bl m4aMPlayStop + strh r5, [r4] + b _080A51A6 + .align 2, 0 +_080A516C: .4byte 0x0203809F +_080A5170: .4byte 0x020380CE +_080A5174: .4byte 0x03007510 +_080A5178: .4byte 0x03007550 +_080A517C: + ldr r1, _080A518C + movs r0, #0 + strh r0, [r1] +_080A5182: + ldr r1, _080A5190 + movs r0, #1 + strb r0, [r1] + b _080A51A6 + .align 2, 0 +_080A518C: .4byte 0x020380CE +_080A5190: .4byte 0x0203809C +_080A5194: + ldr r0, _080A51AC + movs r2, #0 + strh r1, [r0] + ldr r1, _080A51B0 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + ldr r0, _080A51B4 + strb r2, [r0] +_080A51A6: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A51AC: .4byte 0x020380CE +_080A51B0: .4byte 0x02038090 +_080A51B4: .4byte 0x0203809C + thumb_func_end ScriptCmd_waitsound + + thumb_func_start ScriptCmd_jumpargeq +ScriptCmd_jumpargeq: @ 0x080A51B8 + push {r4, r5, r6, lr} + ldr r5, _080A51F8 + ldr r4, [r5] + adds r3, r4, #1 + str r3, [r5] + ldrb r2, [r4, #1] + ldrb r1, [r3, #1] + ldrb r0, [r3, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldr r0, _080A51FC + lsls r2, r2, #1 + adds r2, r2, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r6, #0 + ldrsh r0, [r2, r6] + cmp r1, r0 + bne _080A5200 + ldrb r1, [r3, #3] + ldrb r0, [r3, #4] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r3, #5] + lsls r0, r0, #0x10 + adds r1, r1, r0 + ldrb r0, [r3, #6] + lsls r0, r0, #0x18 + adds r1, r1, r0 + str r1, [r5] + b _080A5206 + .align 2, 0 +_080A51F8: .4byte 0x02038090 +_080A51FC: .4byte 0x020380BE +_080A5200: + adds r0, r4, #0 + adds r0, #8 + str r0, [r5] +_080A5206: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end ScriptCmd_jumpargeq + + thumb_func_start ScriptCmd_jumpifcontest +ScriptCmd_jumpifcontest: @ 0x080A520C + push {r4, lr} + ldr r4, _080A523C + ldr r0, [r4] + adds r0, #1 + str r0, [r4] + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A5240 + ldr r2, [r4] + ldrb r1, [r2] + ldrb r0, [r2, #1] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r2, #2] + lsls r0, r0, #0x10 + adds r1, r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x18 + adds r1, r1, r0 + str r1, [r4] + b _080A5246 + .align 2, 0 +_080A523C: .4byte 0x02038090 +_080A5240: + ldr r0, [r4] + adds r0, #4 + str r0, [r4] +_080A5246: + pop {r4} + pop {r0} + bx r0 + thumb_func_end ScriptCmd_jumpifcontest + + thumb_func_start ScriptCmd_monbgprio_28 +ScriptCmd_monbgprio_28: @ 0x080A524C + push {r4, lr} + ldr r0, _080A5260 + ldr r1, [r0] + ldrb r2, [r1, #1] + adds r1, #2 + str r1, [r0] + cmp r2, #0 + beq _080A5268 + ldr r0, _080A5264 + b _080A526A + .align 2, 0 +_080A5260: .4byte 0x02038090 +_080A5264: .4byte 0x020380D7 +_080A5268: + ldr r0, _080A52A0 +_080A526A: + ldrb r0, [r0] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A529A + cmp r4, #0 + beq _080A5286 + cmp r4, #3 + bne _080A529A +_080A5286: + movs r0, #1 + movs r1, #4 + movs r2, #1 + bl SetAnimBgAttribute + movs r0, #2 + movs r1, #4 + movs r2, #2 + bl SetAnimBgAttribute +_080A529A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A52A0: .4byte 0x020380D6 + thumb_func_end ScriptCmd_monbgprio_28 + + thumb_func_start ScriptCmd_monbgprio_29 +ScriptCmd_monbgprio_29: @ 0x080A52A4 + push {lr} + ldr r0, _080A52D0 + ldr r1, [r0] + adds r1, #1 + str r1, [r0] + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A52CC + movs r0, #1 + movs r1, #4 + movs r2, #1 + bl SetAnimBgAttribute + movs r0, #2 + movs r1, #4 + movs r2, #2 + bl SetAnimBgAttribute +_080A52CC: + pop {r0} + bx r0 + .align 2, 0 +_080A52D0: .4byte 0x02038090 + thumb_func_end ScriptCmd_monbgprio_29 + + thumb_func_start ScriptCmd_monbgprio_2A +ScriptCmd_monbgprio_2A: @ 0x080A52D4 + push {r4, r5, r6, r7, lr} + ldr r1, _080A5304 + ldr r0, [r1] + ldrb r6, [r0, #1] + adds r0, #2 + str r0, [r1] + ldr r7, _080A5308 + ldrb r0, [r7] + bl GetBattlerSide + adds r4, r0, #0 + ldr r5, _080A530C + ldrb r0, [r5] + bl GetBattlerSide + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + beq _080A5340 + cmp r6, #0 + beq _080A5310 + ldrb r0, [r5] + b _080A5312 + .align 2, 0 +_080A5304: .4byte 0x02038090 +_080A5308: .4byte 0x020380D6 +_080A530C: .4byte 0x020380D7 +_080A5310: + ldrb r0, [r7] +_080A5312: + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A5340 + cmp r4, #0 + beq _080A532C + cmp r4, #3 + bne _080A5340 +_080A532C: + movs r0, #1 + movs r1, #4 + movs r2, #1 + bl SetAnimBgAttribute + movs r0, #2 + movs r1, #4 + movs r2, #2 + bl SetAnimBgAttribute +_080A5340: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ScriptCmd_monbgprio_2A + + thumb_func_start ScriptCmd_invisible +ScriptCmd_invisible: @ 0x080A5348 + push {r4, lr} + ldr r4, _080A537C + ldr r0, [r4] + ldrb r0, [r0, #1] + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xff + beq _080A5370 + ldr r1, _080A5380 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_080A5370: + ldr r0, [r4] + adds r0, #2 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A537C: .4byte 0x02038090 +_080A5380: .4byte 0x020205AC + thumb_func_end ScriptCmd_invisible + + thumb_func_start ScriptCmd_visible +ScriptCmd_visible: @ 0x080A5384 + push {r4, lr} + ldr r4, _080A53BC + ldr r0, [r4] + ldrb r0, [r0, #1] + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xff + beq _080A53AE + ldr r1, _080A53C0 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] +_080A53AE: + ldr r0, [r4] + adds r0, #2 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A53BC: .4byte 0x02038090 +_080A53C0: .4byte 0x020205AC + thumb_func_end ScriptCmd_visible + + thumb_func_start ScriptCmd_doublebattle_2D +ScriptCmd_doublebattle_2D: @ 0x080A53C4 + push {r4, r5, r6, r7, lr} + ldr r1, _080A5410 + ldr r0, [r1] + ldrb r7, [r0, #1] + adds r0, #2 + str r0, [r1] + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A546E + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A546E + ldr r6, _080A5414 + ldrb r0, [r6] + bl GetBattlerSide + adds r4, r0, #0 + ldr r5, _080A5418 + ldrb r0, [r5] + bl GetBattlerSide + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + bne _080A546E + cmp r7, #0 + bne _080A541C + ldrb r0, [r6] + bl GetBattlerSpriteBGPriorityRank + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #0 + b _080A5428 + .align 2, 0 +_080A5410: .4byte 0x02038090 +_080A5414: .4byte 0x020380D6 +_080A5418: .4byte 0x020380D7 +_080A541C: + ldrb r0, [r5] + bl GetBattlerSpriteBGPriorityRank + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #1 +_080A5428: + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xff + beq _080A546E + ldr r1, _080A5464 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r2, r0, r1 + adds r3, r2, #0 + adds r3, #0x3e + ldrb r1, [r3] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3] + cmp r4, #2 + bne _080A5458 + ldrb r0, [r2, #5] + movs r1, #0xc + orrs r0, r1 + strb r0, [r2, #5] +_080A5458: + cmp r4, #1 + bne _080A5468 + movs r0, #0 + bl sub_080A4044 + b _080A546E + .align 2, 0 +_080A5464: .4byte 0x020205AC +_080A5468: + movs r0, #1 + bl sub_080A4044 +_080A546E: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end ScriptCmd_doublebattle_2D + + thumb_func_start ScriptCmd_doublebattle_2E +ScriptCmd_doublebattle_2E: @ 0x080A5474 + push {r4, r5, r6, r7, lr} + ldr r1, _080A54C0 + ldr r0, [r1] + ldrb r7, [r0, #1] + adds r0, #2 + str r0, [r1] + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A5500 + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A5500 + ldr r6, _080A54C4 + ldrb r0, [r6] + bl GetBattlerSide + adds r4, r0, #0 + ldr r5, _080A54C8 + ldrb r0, [r5] + bl GetBattlerSide + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + bne _080A5500 + cmp r7, #0 + bne _080A54CC + ldrb r0, [r6] + bl GetBattlerSpriteBGPriorityRank + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #0 + b _080A54D8 + .align 2, 0 +_080A54C0: .4byte 0x02038090 +_080A54C4: .4byte 0x020380D6 +_080A54C8: .4byte 0x020380D7 +_080A54CC: + ldrb r0, [r5] + bl GetBattlerSpriteBGPriorityRank + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #1 +_080A54D8: + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xff + beq _080A5500 + cmp r4, #2 + bne _080A5500 + ldr r1, _080A5508 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r2, [r0, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #8 + orrs r1, r2 + strb r1, [r0, #5] +_080A5500: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A5508: .4byte 0x020205AC + thumb_func_end ScriptCmd_doublebattle_2E + + thumb_func_start sub_080A550C +sub_080A550C: @ 0x080A550C + push {lr} + ldr r0, _080A5528 + bl m4aMPlayStop + ldr r0, _080A552C + bl m4aMPlayStop + ldr r1, _080A5530 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080A5528: .4byte 0x03007510 +_080A552C: .4byte 0x03007550 +_080A5530: .4byte 0x02038090 + thumb_func_end sub_080A550C + diff --git a/asm/battle_anim_effects_1.s b/asm/battle_anim_effects_1.s new file mode 100644 index 0000000..cd63342 --- /dev/null +++ b/asm/battle_anim_effects_1.s @@ -0,0 +1,9979 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start AnimMovePowderParticle +AnimMovePowderParticle: @ 0x080FF090 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _080FF0C4 + ldrh r0, [r5] + ldrh r1, [r4, #0x20] + adds r0, r0, r1 + strh r0, [r4, #0x20] + ldrh r0, [r5, #2] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] + ldrh r0, [r5, #4] + strh r0, [r4, #0x2e] + ldrh r0, [r5, #6] + strh r0, [r4, #0x30] + ldr r0, _080FF0C8 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FF0CC + ldrh r0, [r5, #8] + rsbs r0, r0, #0 + b _080FF0CE + .align 2, 0 +_080FF0C4: .4byte 0x020380BE +_080FF0C8: .4byte 0x020380D6 +_080FF0CC: + ldrh r0, [r5, #8] +_080FF0CE: + strh r0, [r4, #0x34] + ldr r0, _080FF0E0 + ldrh r0, [r0, #0xa] + strh r0, [r4, #0x36] + ldr r0, _080FF0E4 + str r0, [r4, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FF0E0: .4byte 0x020380BE +_080FF0E4: .4byte 0x080FF0E9 + thumb_func_end AnimMovePowderParticle + + thumb_func_start AnimMovePowderParticleStep +AnimMovePowderParticleStep: @ 0x080FF0E8 + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x2e] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r0, #0 + ble _080FF124 + subs r0, r1, #1 + strh r0, [r4, #0x2e] + ldrh r1, [r4, #0x32] + lsls r0, r1, #0x10 + asrs r0, r0, #0x18 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x30] + adds r1, 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, r0, r1 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x38] + b _080FF12A +_080FF124: + adds r0, r4, #0 + bl DestroyAnimSprite +_080FF12A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end AnimMovePowderParticleStep + + thumb_func_start AnimPowerAbsorptionOrb +AnimPowerAbsorptionOrb: @ 0x080FF130 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldr r0, _080FF170 + ldrh r0, [r0, #4] + strh r0, [r4, #0x2e] + ldr r5, _080FF174 + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x32] + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x36] + ldr r0, _080FF178 + str r0, [r4, #0x1c] + ldr r1, _080FF17C + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FF170: .4byte 0x020380BE +_080FF174: .4byte 0x020380D6 +_080FF178: .4byte 0x080A67B5 +_080FF17C: .4byte 0x080A6015 + thumb_func_end AnimPowerAbsorptionOrb + + thumb_func_start AnimSolarbeamBigOrb +AnimSolarbeamBigOrb: @ 0x080FF180 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldr r5, _080FF1C8 + ldrb r1, [r5, #6] + adds r0, r4, #0 + bl StartSpriteAnim + ldrh r0, [r5, #4] + strh r0, [r4, #0x2e] + ldr r5, _080FF1CC + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x32] + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x36] + ldr r0, _080FF1D0 + str r0, [r4, #0x1c] + ldr r1, _080FF1D4 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FF1C8: .4byte 0x020380BE +_080FF1CC: .4byte 0x020380D7 +_080FF1D0: .4byte 0x080A67B5 +_080FF1D4: .4byte 0x080A34C5 + thumb_func_end AnimSolarbeamBigOrb + + thumb_func_start AnimSolarbeamSmallOrb +AnimSolarbeamSmallOrb: @ 0x080FF1D8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldr r6, _080FF228 + ldrh r0, [r6, #4] + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x20] + strh r0, [r4, #0x30] + ldr r5, _080FF22C + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x22] + strh r0, [r4, #0x34] + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl InitAnimLinearTranslation + ldrh r0, [r6, #6] + strh r0, [r4, #0x38] + ldr r1, _080FF230 + str r1, [r4, #0x1c] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080FF228: .4byte 0x020380BE +_080FF22C: .4byte 0x020380D7 +_080FF230: .4byte 0x080FF235 + thumb_func_end AnimSolarbeamSmallOrb + + thumb_func_start AnimSolarbeamSmallOrbStep +AnimSolarbeamSmallOrbStep: @ 0x080FF234 + push {r4, lr} + adds r4, r0, #0 + bl AnimTranslateLinear + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FF24A + adds r0, r4, #0 + bl DestroySprite + b _080FF29E +_080FF24A: + movs r1, #0x38 + ldrsh r0, [r4, r1] + cmp r0, #0x7f + ble _080FF264 + ldr r0, _080FF260 + ldrb r0, [r0] + bl GetBattlerSpriteSubpriority + adds r0, #1 + b _080FF26E + .align 2, 0 +_080FF260: .4byte 0x020380D7 +_080FF264: + ldr r0, _080FF2A4 + ldrb r0, [r0] + bl GetBattlerSpriteSubpriority + adds r0, #6 +_080FF26E: + adds r1, r4, #0 + adds r1, #0x43 + strb r0, [r1] + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r1, #5 + bl Sin + ldrh r1, [r4, #0x24] + adds r0, r0, r1 + strh r0, [r4, #0x24] + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r1, #0xe + bl Cos + ldrh r1, [r4, #0x26] + adds r0, r0, r1 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x38] + adds r0, #0xf + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x38] +_080FF29E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FF2A4: .4byte 0x020380D7 + thumb_func_end AnimSolarbeamSmallOrbStep + + thumb_func_start AnimTask_CreateSmallSolarbeamOrbs +AnimTask_CreateSmallSolarbeamOrbs: @ 0x080FF2A8 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r0, #0 + ldr r1, _080FF318 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r5, r0, r1 + ldrh r0, [r5, #8] + subs r0, #1 + movs r2, #0 + strh r0, [r5, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _080FF302 + ldrh r0, [r5, #0xa] + adds r0, #1 + strh r0, [r5, #0xa] + movs r0, #6 + strh r0, [r5, #8] + ldr r1, _080FF31C + movs r0, #0xf + strh r0, [r1] + strh r2, [r1, #2] + movs r0, #0x50 + strh r0, [r1, #4] + strh r2, [r1, #6] + ldr r4, _080FF320 + ldr r0, _080FF324 + ldrb r0, [r0] + bl GetBattlerSpriteSubpriority + adds r3, r0, #0 + adds r3, #1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + bl CreateSpriteAndAnimate +_080FF302: + movs r1, #0xa + ldrsh r0, [r5, r1] + cmp r0, #0xf + bne _080FF310 + adds r0, r6, #0 + bl DestroyAnimVisualTask +_080FF310: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080FF318: .4byte 0x03005B60 +_080FF31C: .4byte 0x020380BE +_080FF320: .4byte 0x0856DDF4 +_080FF324: .4byte 0x020380D7 + thumb_func_end AnimTask_CreateSmallSolarbeamOrbs + + thumb_func_start AnimAbsorptionOrb +AnimAbsorptionOrb: @ 0x080FF328 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimTarget + ldr r6, _080FF36C + ldrh r0, [r6, #6] + strh r0, [r4, #0x2e] + ldr r5, _080FF370 + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x32] + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x36] + ldrh r0, [r6, #4] + strh r0, [r4, #0x38] + adds r0, r4, #0 + bl InitAnimArcTranslation + ldr r0, _080FF374 + str r0, [r4, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080FF36C: .4byte 0x020380BE +_080FF370: .4byte 0x020380D6 +_080FF374: .4byte 0x080FF379 + thumb_func_end AnimAbsorptionOrb + + thumb_func_start AnimAbsorptionOrbStep +AnimAbsorptionOrbStep: @ 0x080FF378 + push {r4, lr} + adds r4, r0, #0 + bl TranslateAnimHorizontalArc + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FF38C + adds r0, r4, #0 + bl DestroyAnimSprite +_080FF38C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AnimAbsorptionOrbStep + + thumb_func_start AnimHyperBeamOrb +AnimHyperBeamOrb: @ 0x080FF394 + push {r4, r5, lr} + adds r5, r0, #0 + bl Random2 + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #7 + ands r1, r0 + adds r0, r5, #0 + bl StartSpriteAnim + ldr r4, _080FF3DC + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FF3E0 + ldrh r0, [r5, #0x20] + subs r0, #0x14 + b _080FF3E4 + .align 2, 0 +_080FF3DC: .4byte 0x020380D6 +_080FF3E0: + ldrh r0, [r5, #0x20] + adds r0, #0x14 +_080FF3E4: + strh r0, [r5, #0x20] + bl Random2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x40 + strh r0, [r5, #0x2e] + ldrh r0, [r5, #0x20] + strh r0, [r5, #0x30] + ldr r4, _080FF444 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x32] + ldrh r0, [r5, #0x22] + strh r0, [r5, #0x34] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x36] + adds r0, r5, #0 + bl InitAnimFastLinearTranslationWithSpeed + bl Random2 + 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, _080FF448 + str r1, [r5, #0x1c] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FF444: .4byte 0x020380D7 +_080FF448: .4byte 0x080FF44D + thumb_func_end AnimHyperBeamOrb + + thumb_func_start AnimHyperBeamOrbStep +AnimHyperBeamOrbStep: @ 0x080FF44C + push {r4, lr} + adds r4, r0, #0 + bl AnimFastTranslateLinear + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FF462 + adds r0, r4, #0 + bl DestroyAnimSprite + b _080FF492 +_080FF462: + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r1, #0xc + bl Cos + ldrh r1, [r4, #0x26] + adds r0, r0, r1 + strh r0, [r4, #0x26] + movs r1, #0x38 + ldrsh r0, [r4, r1] + cmp r0, #0x7e + bgt _080FF47E + ldrh r0, [r4, #0x3a] + b _080FF482 +_080FF47E: + ldrh r0, [r4, #0x3a] + adds r0, #1 +_080FF482: + 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] +_080FF492: + pop {r4} + pop {r0} + bx r0 + thumb_func_end AnimHyperBeamOrbStep + + thumb_func_start AnimLeechSeed +AnimLeechSeed: @ 0x080FF498 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldr r0, _080FF4F8 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FF4B8 + ldr r1, _080FF4FC + ldrh r0, [r1, #4] + rsbs r0, r0, #0 + strh r0, [r1, #4] +_080FF4B8: + ldr r4, _080FF4FC + ldrh r0, [r4, #8] + strh r0, [r6, #0x2e] + ldr r5, _080FF500 + ldrb r0, [r5] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #4] + adds r0, r0, r1 + strh r0, [r6, #0x32] + ldrb r0, [r5] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #6] + adds r0, r0, r1 + strh r0, [r6, #0x36] + ldrh r0, [r4, #0xa] + strh r0, [r6, #0x38] + adds r0, r6, #0 + bl InitAnimArcTranslation + ldr r0, _080FF504 + str r0, [r6, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080FF4F8: .4byte 0x020380D6 +_080FF4FC: .4byte 0x020380BE +_080FF500: .4byte 0x020380D7 +_080FF504: .4byte 0x080FF509 + thumb_func_end AnimLeechSeed + + thumb_func_start AnimLeechSeedStep +AnimLeechSeedStep: @ 0x080FF508 + push {r4, lr} + adds r4, r0, #0 + bl TranslateAnimHorizontalArc + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FF532 + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + movs r0, #0xa + strh r0, [r4, #0x2e] + ldr r0, _080FF538 + str r0, [r4, #0x1c] + ldr r1, _080FF53C + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 +_080FF532: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FF538: .4byte 0x080A5D79 +_080FF53C: .4byte 0x080FF541 + thumb_func_end AnimLeechSeedStep + + thumb_func_start AnimLeechSeedSprouts +AnimLeechSeedSprouts: @ 0x080FF540 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAnim + movs r0, #0x3c + strh r0, [r4, #0x2e] + ldr r0, _080FF570 + str r0, [r4, #0x1c] + ldr r1, _080FF574 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FF570: .4byte 0x080A5D79 +_080FF574: .4byte 0x080A34C5 + thumb_func_end AnimLeechSeedSprouts + + thumb_func_start AnimSporeParticle +AnimSporeParticle: @ 0x080FF578 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimTarget + ldr r5, _080FF5BC + ldrb r1, [r5, #8] + adds r0, r4, #0 + bl StartSpriteAnim + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #1 + bne _080FF5A2 + ldrb r0, [r4, #1] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #4 + orrs r1, r0 + strb r1, [r4, #1] +_080FF5A2: + ldrh r0, [r5, #6] + strh r0, [r4, #0x2e] + ldrh r0, [r5, #4] + strh r0, [r4, #0x30] + ldr r1, _080FF5C0 + str r1, [r4, #0x1c] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FF5BC: .4byte 0x020380BE +_080FF5C0: .4byte 0x080FF5C5 + thumb_func_end AnimSporeParticle + + thumb_func_start AnimSporeParticleStep +AnimSporeParticleStep: @ 0x080FF5C4 + 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, #3 + rsbs r1, r1, #0 + bl Cos + ldrh r1, [r4, #0x32] + adds r1, #0x18 + strh r1, [r4, #0x32] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + adds r0, r0, r1 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x30] + subs r0, #0x40 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x7f + bhi _080FF618 + ldr r0, _080FF614 + ldrb r0, [r0] + bl GetBattlerSpriteBGPriority + movs r1, #3 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r4, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + b _080FF63C + .align 2, 0 +_080FF614: .4byte 0x020380D7 +_080FF618: + ldr r0, _080FF668 + ldrb r0, [r0] + bl GetBattlerSpriteBGPriority + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #3 + bls _080FF62C + movs r2, #3 +_080FF62C: + movs r0, #3 + ands r2, r0 + lsls r2, r2, #2 + ldrb r1, [r4, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 +_080FF63C: + strb r0, [r4, #5] + ldrh r0, [r4, #0x30] + adds r0, #2 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x2e] + subs r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _080FF660 + adds r0, r4, #0 + bl DestroyAnimSprite +_080FF660: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FF668: .4byte 0x020380D7 + thumb_func_end AnimSporeParticleStep + + thumb_func_start AnimTask_SporeDoubleBattle +AnimTask_SporeDoubleBattle: @ 0x080FF66C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FF686 + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FF68E +_080FF686: + adds r0, r4, #0 + bl DestroyAnimVisualTask + b _080FF6C0 +_080FF68E: + ldr r0, _080FF6AC + ldrb r0, [r0] + bl GetBattlerSpriteBGPriorityRank + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080FF6B0 + movs r0, #2 + movs r1, #4 + movs r2, #3 + bl SetAnimBgAttribute + b _080FF6BA + .align 2, 0 +_080FF6AC: .4byte 0x020380D7 +_080FF6B0: + movs r0, #1 + movs r1, #4 + movs r2, #1 + bl SetAnimBgAttribute +_080FF6BA: + adds r0, r4, #0 + bl DestroyAnimVisualTask +_080FF6C0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AnimTask_SporeDoubleBattle + + thumb_func_start AnimPetalDanceBigFlower +AnimPetalDanceBigFlower: @ 0x080FF6C8 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0 + bl InitSpritePosToAnimAttacker + ldr r5, _080FF710 + ldrh r0, [r5, #6] + 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, _080FF714 + ldrb r0, [r0] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r5, [r5, #4] + adds r0, r0, r5 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl InitAnimLinearTranslation + movs r0, #0x40 + strh r0, [r4, #0x38] + ldr r1, _080FF718 + str r1, [r4, #0x1c] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FF710: .4byte 0x020380BE +_080FF714: .4byte 0x020380D6 +_080FF718: .4byte 0x080FF71D + thumb_func_end AnimPetalDanceBigFlower + + thumb_func_start AnimPetalDanceBigFlowerStep +AnimPetalDanceBigFlowerStep: @ 0x080FF71C + push {r4, lr} + adds r4, r0, #0 + bl AnimTranslateLinear + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FF788 + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r1, #0x20 + bl Sin + ldrh r1, [r4, #0x24] + adds r0, r0, r1 + strh r0, [r4, #0x24] + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r1, #5 + rsbs r1, r1, #0 + bl Cos + ldrh r1, [r4, #0x26] + adds r0, r0, r1 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x38] + subs r0, #0x40 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x7f + bhi _080FF768 + ldr r0, _080FF764 + ldrb r0, [r0] + bl GetBattlerSpriteSubpriority + subs r0, #1 + b _080FF772 + .align 2, 0 +_080FF764: .4byte 0x020380D6 +_080FF768: + ldr r0, _080FF784 + ldrb r0, [r0] + bl GetBattlerSpriteSubpriority + adds r0, #1 +_080FF772: + adds r1, r4, #0 + adds r1, #0x43 + strb r0, [r1] + ldrh r0, [r4, #0x38] + adds r0, #5 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x38] + b _080FF78E + .align 2, 0 +_080FF784: .4byte 0x020380D6 +_080FF788: + adds r0, r4, #0 + bl DestroyAnimSprite +_080FF78E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end AnimPetalDanceBigFlowerStep + + thumb_func_start AnimPetalDanceSmallFlower +AnimPetalDanceSmallFlower: @ 0x080FF794 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldr r5, _080FF7DC + ldrh r0, [r5, #6] + 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, _080FF7E0 + ldrb r0, [r0] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r5, [r5, #4] + adds r0, r0, r5 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl InitAnimLinearTranslation + movs r0, #0x40 + strh r0, [r4, #0x38] + ldr r1, _080FF7E4 + str r1, [r4, #0x1c] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FF7DC: .4byte 0x020380BE +_080FF7E0: .4byte 0x020380D6 +_080FF7E4: .4byte 0x080FF7E9 + thumb_func_end AnimPetalDanceSmallFlower + + thumb_func_start AnimPetalDanceSmallFlowerStep +AnimPetalDanceSmallFlowerStep: @ 0x080FF7E8 + push {r4, lr} + adds r4, r0, #0 + bl AnimTranslateLinear + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FF840 + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r1, #8 + bl Sin + ldrh r1, [r4, #0x24] + adds r0, r0, r1 + strh r0, [r4, #0x24] + ldrh r1, [r4, #0x38] + adds r0, r1, #0 + subs r0, #0x3b + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #4 + bls _080FF820 + adds r0, r1, #0 + subs r0, #0xbb + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #4 + bhi _080FF834 +_080FF820: + ldrb r2, [r4, #3] + lsls r1, r2, #0x1a + lsrs r1, r1, #0x1b + movs r0, #8 + eors r1, r0 + lsls r1, r1, #1 + subs r0, #0x47 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #3] +_080FF834: + ldrh r0, [r4, #0x38] + adds r0, #5 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x38] + b _080FF846 +_080FF840: + adds r0, r4, #0 + bl DestroyAnimSprite +_080FF846: + pop {r4} + pop {r0} + bx r0 + thumb_func_end AnimPetalDanceSmallFlowerStep + + thumb_func_start AnimRazorLeafParticle +AnimRazorLeafParticle: @ 0x080FF84C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _080FF888 + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x20] + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x22] + ldr r1, _080FF88C + ldrh r0, [r1] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #2] + strh r0, [r4, #0x30] + ldrh r0, [r1, #4] + strh r0, [r4, #0x32] + ldr r0, _080FF890 + str r0, [r4, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FF888: .4byte 0x020380D6 +_080FF88C: .4byte 0x020380BE +_080FF890: .4byte 0x080FF895 + thumb_func_end AnimRazorLeafParticle + + thumb_func_start AnimRazorLeafParticleStep1 +AnimRazorLeafParticleStep1: @ 0x080FF894 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0x32] + movs r2, #0x32 + ldrsh r3, [r1, r2] + cmp r3, #0 + bne _080FF8C8 + ldrh r0, [r1, #0x30] + movs r2, #1 + ands r2, r0 + cmp r2, #0 + beq _080FF8B6 + movs r0, #0x80 + strh r0, [r1, #0x2e] + strh r3, [r1, #0x30] + strh r3, [r1, #0x32] + b _080FF8BC +_080FF8B6: + strh r2, [r1, #0x2e] + strh r2, [r1, #0x30] + strh r2, [r1, #0x32] +_080FF8BC: + ldr r0, _080FF8C4 + str r0, [r1, #0x1c] + b _080FF8DC + .align 2, 0 +_080FF8C4: .4byte 0x080FF8E1 +_080FF8C8: + subs r0, #1 + strh r0, [r1, #0x32] + ldrh r0, [r1, #0x2e] + ldrh r2, [r1, #0x20] + adds r0, r0, r2 + strh r0, [r1, #0x20] + ldrh r0, [r1, #0x30] + ldrh r2, [r1, #0x22] + adds r0, r0, r2 + strh r0, [r1, #0x22] +_080FF8DC: + pop {r0} + bx r0 + thumb_func_end AnimRazorLeafParticleStep1 + + thumb_func_start AnimRazorLeafParticleStep2 +AnimRazorLeafParticleStep2: @ 0x080FF8E0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080FF900 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FF904 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r1, #0x19 + bl Sin + rsbs r0, r0, #0 + b _080FF90E + .align 2, 0 +_080FF900: .4byte 0x020380D6 +_080FF904: + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r1, #0x19 + bl Sin +_080FF90E: + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x2e] + adds r0, #2 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _080FF92E + ldrh r0, [r4, #0x26] + adds r0, #1 + strh r0, [r4, #0x26] +_080FF92E: + movs r1, #0x30 + ldrsh r0, [r4, r1] + cmp r0, #0x50 + ble _080FF93C + adds r0, r4, #0 + bl DestroyAnimSprite +_080FF93C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AnimRazorLeafParticleStep2 + + thumb_func_start AnimTranslateLinearSingleSineWave +AnimTranslateLinearSingleSineWave: @ 0x080FF944 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldr r0, _080FF998 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FF964 + ldr r1, _080FF99C + ldrh r0, [r1, #4] + rsbs r0, r0, #0 + strh r0, [r1, #4] +_080FF964: + ldr r6, _080FF99C + ldrh r0, [r6, #8] + strh r0, [r5, #0x2e] + movs r1, #0xc + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _080FF9A4 + ldr r4, _080FF9A0 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r6, #4] + adds r0, r0, r1 + strh r0, [r5, #0x32] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r6, [r6, #6] + adds r0, r0, r6 + b _080FF9C4 + .align 2, 0 +_080FF998: .4byte 0x020380D6 +_080FF99C: .4byte 0x020380BE +_080FF9A0: .4byte 0x020380D7 +_080FF9A4: + ldr r0, _080FF9F0 + ldrb r0, [r0] + adds r2, r5, #0 + adds r2, #0x32 + adds r3, r5, #0 + adds r3, #0x36 + movs r1, #1 + bl SetAverageBattlerPositions + ldrh r0, [r6, #4] + ldrh r1, [r5, #0x32] + adds r0, r0, r1 + strh r0, [r5, #0x32] + ldrh r0, [r6, #6] + ldrh r1, [r5, #0x36] + adds r0, r0, r1 +_080FF9C4: + strh r0, [r5, #0x36] + ldr r0, _080FF9F4 + ldrh r0, [r0, #0xa] + strh r0, [r5, #0x38] + adds r0, r5, #0 + bl InitAnimArcTranslation + ldr r0, _080FF9F8 + ldrb r0, [r0] + bl GetBattlerSide + adds r4, r0, #0 + ldr r0, _080FF9F0 + ldrb r0, [r0] + bl GetBattlerSide + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + bne _080FF9FC + movs r0, #1 + b _080FF9FE + .align 2, 0 +_080FF9F0: .4byte 0x020380D7 +_080FF9F4: .4byte 0x020380BE +_080FF9F8: .4byte 0x020380D6 +_080FF9FC: + movs r0, #0 +_080FF9FE: + strh r0, [r5, #0x2e] + ldr r0, _080FFA0C + str r0, [r5, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080FFA0C: .4byte 0x080FFA11 + thumb_func_end AnimTranslateLinearSingleSineWave + + thumb_func_start AnimTranslateLinearSingleSineWaveStep +AnimTranslateLinearSingleSineWaveStep: @ 0x080FFA10 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + movs r7, #0 + ldrh r5, [r6, #0x2e] + ldrh r4, [r6, #0x3c] + movs r0, #1 + strh r0, [r6, #0x2e] + adds r0, r6, #0 + bl TranslateAnimHorizontalArc + ldrh r0, [r6, #0x3c] + strh r5, [r6, #0x2e] + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + cmp r4, #0xc8 + ble _080FFA42 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x37 + bgt _080FFA42 + ldrh r0, [r6, #6] + cmp r0, #0 + bne _080FFA48 + adds r0, #1 + strh r0, [r6, #6] +_080FFA42: + ldrh r0, [r6, #6] + cmp r0, #0 + beq _080FFA7A +_080FFA48: + movs r1, #0x2e + ldrsh r0, [r6, r1] + cmp r0, #0 + beq _080FFA7A + adds r3, r6, #0 + adds r3, #0x3e + ldrb r2, [r3] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r6, #6] + adds r0, #1 + strh r0, [r6, #6] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x1e + bne _080FFA7A + movs r7, #1 +_080FFA7A: + movs r2, #0x20 + ldrsh r0, [r6, r2] + movs r2, #0x24 + ldrsh r1, [r6, r2] + adds r0, r0, r1 + adds r0, #0x10 + movs r1, #0x88 + lsls r1, r1, #1 + cmp r0, r1 + bhi _080FFAA4 + movs r0, #0x22 + ldrsh r1, [r6, r0] + movs r2, #0x26 + ldrsh r0, [r6, r2] + adds r1, r1, r0 + cmp r1, #0xa0 + bgt _080FFAA4 + movs r0, #0x10 + rsbs r0, r0, #0 + cmp r1, r0 + bge _080FFAA6 +_080FFAA4: + movs r7, #1 +_080FFAA6: + cmp r7, #0 + beq _080FFAB0 + adds r0, r6, #0 + bl DestroyAnimSprite +_080FFAB0: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AnimTranslateLinearSingleSineWaveStep + + thumb_func_start AnimMoveTwisterParticle +AnimMoveTwisterParticle: @ 0x080FFAB8 + push {r4, lr} + adds r4, r0, #0 + bl IsDoubleBattle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080FFADA + ldr r0, _080FFB00 + ldrb r0, [r0] + adds r2, r4, #0 + adds r2, #0x20 + adds r3, r4, #0 + adds r3, #0x22 + movs r1, #1 + bl SetAverageBattlerPositions +_080FFADA: + ldrh r0, [r4, #0x22] + adds r0, #0x20 + strh r0, [r4, #0x22] + ldr r1, _080FFB04 + ldrh r0, [r1] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #2] + strh r0, [r4, #0x30] + ldrh r0, [r1, #4] + strh r0, [r4, #0x32] + ldrh r0, [r1, #6] + strh r0, [r4, #0x34] + ldrh r0, [r1, #8] + strh r0, [r4, #0x36] + ldr r0, _080FFB08 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FFB00: .4byte 0x020380D7 +_080FFB04: .4byte 0x020380BE +_080FFB08: .4byte 0x080FFB0D + thumb_func_end AnimMoveTwisterParticle + + thumb_func_start AnimMoveTwisterParticleStep +AnimMoveTwisterParticleStep: @ 0x080FFB0C + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x30] + movs r2, #0x30 + ldrsh r0, [r4, r2] + cmp r0, #0xff + bne _080FFB22 + ldrh r0, [r4, #0x22] + subs r0, #2 + strh r0, [r4, #0x22] + b _080FFB30 +_080FFB22: + cmp r0, #0 + ble _080FFB30 + ldrh r0, [r4, #0x22] + subs r0, #2 + strh r0, [r4, #0x22] + subs r0, r1, #2 + strh r0, [r4, #0x30] +_080FFB30: + 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 _080FFB48 + adds r0, r2, r3 + strh r0, [r4, #0x38] +_080FFB48: + 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, #5 + bl Sin + strh r0, [r4, #0x26] + movs r1, #0x38 + ldrsh r0, [r4, r1] + cmp r0, #0x7f + bgt _080FFB88 + ldr r0, _080FFB84 + ldrb r0, [r0] + bl GetBattlerSpriteBGPriority + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, #1 + b _080FFB96 + .align 2, 0 +_080FFB84: .4byte 0x020380D7 +_080FFB88: + ldr r0, _080FFBC0 + ldrb r0, [r0] + bl GetBattlerSpriteBGPriority + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #1 +_080FFB96: + movs r1, #3 + ands r0, r1 + lsls r0, r0, #2 + ldrb r2, [r4, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #5] + ldrh r0, [r4, #0x2e] + subs r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080FFBBA + adds r0, r4, #0 + bl DestroyAnimSprite +_080FFBBA: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FFBC0: .4byte 0x020380D7 + thumb_func_end AnimMoveTwisterParticleStep + + thumb_func_start AnimConstrictBinding +AnimConstrictBinding: @ 0x080FFBC4 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0 + bl InitSpritePosToAnimTarget + adds r2, r5, #0 + adds r2, #0x2c + ldrb r0, [r2] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2] + ldr r4, _080FFBF8 + ldrb r1, [r4, #4] + adds r0, r5, #0 + bl StartSpriteAffineAnim + ldrh r0, [r4, #4] + strh r0, [r5, #0x3a] + ldrh r0, [r4, #6] + strh r0, [r5, #0x3c] + ldr r0, _080FFBFC + str r0, [r5, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FFBF8: .4byte 0x020380BE +_080FFBFC: .4byte 0x080FFC01 + thumb_func_end AnimConstrictBinding + + thumb_func_start AnimConstrictBindingStep1 +AnimConstrictBindingStep1: @ 0x080FFC00 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080FFC30 + ldrh r1, [r0, #0xe] + ldr r0, _080FFC34 + cmp r1, r0 + bne _080FFC2A + adds r2, r4, #0 + adds r2, #0x2c + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + movs r0, #1 + bl GetAnimBattlerSpriteId + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x2e] + ldr r0, _080FFC38 + str r0, [r4, #0x1c] +_080FFC2A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FFC30: .4byte 0x020380BE +_080FFC34: .4byte 0x0000FFFF +_080FFC38: .4byte 0x080FFC3D + thumb_func_end AnimConstrictBindingStep1 + + thumb_func_start AnimConstrictBindingStep2 +AnimConstrictBindingStep2: @ 0x080FFC3C + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + bl GetAnimBattlerSpriteId + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080FFC54 + ldrh r0, [r4, #0x2e] + adds r0, #0xb + b _080FFC58 +_080FFC54: + ldrh r0, [r4, #0x2e] + subs r0, #0xb +_080FFC58: + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #6 + bne _080FFC74 + movs r0, #0 + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x32] + movs r1, #1 + eors r0, r1 + strh r0, [r4, #0x32] +_080FFC74: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080FFCA2 + ldrh r0, [r4, #0x3c] + subs r0, #1 + strh r0, [r4, #0x3c] + lsls r0, r0, #0x10 + cmp r0, #0 + ble _080FFC9C + ldrh r1, [r4, #0x3a] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAffineAnim + b _080FFCA2 +_080FFC9C: + adds r0, r4, #0 + bl DestroyAnimSprite +_080FFCA2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end AnimConstrictBindingStep2 + + thumb_func_start sub_080FFCA8 +sub_080FFCA8: @ 0x080FFCA8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #1 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r0, _080FFCE4 + mov sl, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + mov r2, sl + adds r7, r0, r2 + adds r0, r7, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + bge _080FFCE8 + adds r0, r4, #0 + bl DestroyAnimVisualTask + b _080FFD6C + .align 2, 0 +_080FFCE4: .4byte 0x020205AC +_080FFCE8: + adds r0, r1, #0 + movs r1, #1 + bl PrepareBattlerSpriteForRotScale + ldr r0, _080FFD7C + lsls r6, r4, #2 + adds r6, r6, r4 + lsls r6, r6, #3 + adds r6, r6, r0 + ldrb r0, [r7, #5] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1e + strh r0, [r6, #0x24] + ldr r0, _080FFD80 + mov sb, r0 + ldrb r0, [r0] + bl GetBattlerSpriteBGPriority + movs r1, #3 + mov r8, r1 + mov r1, r8 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r7, #5] + movs r5, #0xd + rsbs r5, r5, #0 + adds r0, r5, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r7, #5] + movs r0, #3 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + lsls r4, r1, #4 + adds r4, r4, r1 + lsls r4, r4, #2 + add r4, sl + ldrb r0, [r4, #5] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1e + strh r0, [r6, #0x26] + mov r2, sb + ldrb r1, [r2] + movs r0, #2 + eors r0, r1 + bl GetBattlerSpriteBGPriority + mov r1, r8 + ands r1, r0 + lsls r1, r1, #2 + ldrb r0, [r4, #5] + ands r5, r0 + orrs r5, r1 + strb r5, [r4, #5] + ldr r1, _080FFD84 + ldrh r0, [r1] + strh r0, [r6, #8] + ldrh r0, [r1, #2] + strh r0, [r6, #0xa] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r6, #0x1e] + ldr r0, _080FFD88 + str r0, [r6] +_080FFD6C: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080FFD7C: .4byte 0x03005B60 +_080FFD80: .4byte 0x020380D7 +_080FFD84: .4byte 0x020380BE +_080FFD88: .4byte 0x080FFD8D + thumb_func_end sub_080FFCA8 + + thumb_func_start sub_080FFD8C +sub_080FFD8C: @ 0x080FFD8C + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r0, #0 + ldr r1, _080FFE0C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrh r1, [r4, #8] + ldrh r0, [r4, #0x1c] + adds r1, r1, r0 + strh r1, [r4, #0x1c] + ldr r2, _080FFE10 + lsls r0, r6, #4 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r5, r0, r2 + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + strh r1, [r5, #0x24] + ldr r0, _080FFE14 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FFDD6 + ldrh r0, [r5, #0x24] + rsbs r0, r0, #0 + strh r0, [r5, #0x24] +_080FFDD6: + 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 SetSpriteRotScale + adds r0, r6, #0 + bl SetBattlerSpriteYOffsetFromYScale + ldrh r0, [r4, #0xa] + subs r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bne _080FFE04 + strh r0, [r4, #8] + ldr r0, _080FFE18 + str r0, [r4] +_080FFE04: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080FFE0C: .4byte 0x03005B60 +_080FFE10: .4byte 0x020205AC +_080FFE14: .4byte 0x020380D7 +_080FFE18: .4byte 0x080FFE1D + thumb_func_end sub_080FFD8C + + thumb_func_start sub_080FFE1C +sub_080FFE1C: @ 0x080FFE1C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r0, _080FFEA0 + ldrh r1, [r0, #0xe] + ldr r0, _080FFEA4 + cmp r1, r0 + bne _080FFEB0 + ldr r0, _080FFEA8 + lsls r2, r3, #2 + adds r1, r2, r3 + lsls r1, r1, #3 + adds r7, r1, r0 + movs r1, #8 + ldrsh r5, [r7, r1] + adds r4, r0, #0 + cmp r5, #0 + bne _080FFEC4 + movs r0, #1 + bl GetAnimBattlerSpriteId + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl ResetSpriteRotScale + ldr r6, _080FFEAC + lsls r1, r4, #4 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r1, r1, r6 + strh r5, [r1, #0x24] + strh r5, [r1, #0x26] + movs r5, #3 + ldrh r2, [r7, #0x24] + ands r2, r5 + lsls r2, r2, #2 + ldrb r3, [r1, #5] + movs r4, #0xd + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1, #5] + movs r0, #3 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrh r0, [r7, #0x26] + ands r0, r5 + lsls r0, r0, #2 + ldrb r2, [r1, #5] + ands r4, r2 + orrs r4, r0 + strb r4, [r1, #5] + ldrh r0, [r7, #8] + adds r0, #1 + strh r0, [r7, #8] + b _080FFEDE + .align 2, 0 +_080FFEA0: .4byte 0x020380BE +_080FFEA4: .4byte 0x0000FFFF +_080FFEA8: .4byte 0x03005B60 +_080FFEAC: .4byte 0x020205AC +_080FFEB0: + ldr r1, _080FFEE4 + lsls r2, r3, #2 + adds r0, r2, r3 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r4, #8 + ldrsh r0, [r0, r4] + adds r4, r1, #0 + cmp r0, #0 + beq _080FFEDE +_080FFEC4: + adds r1, r2, r3 + lsls r1, r1, #3 + adds r1, r1, r4 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + bne _080FFEDE + adds r0, r3, #0 + bl DestroyAnimVisualTask +_080FFEDE: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080FFEE4: .4byte 0x03005B60 + thumb_func_end sub_080FFE1C + + thumb_func_start AnimMimicOrb +AnimMimicOrb: @ 0x080FFEE8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _080FFEFA + cmp r0, #1 + beq _080FFF54 + b _080FFFA6 +_080FFEFA: + ldr r6, _080FFF4C + ldrb r0, [r6] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FFF12 + ldr r1, _080FFF50 + movs r2, #0 + ldrsh r0, [r1, r2] + rsbs r0, r0, #0 + strh r0, [r1] +_080FFF12: + ldrb r0, [r6] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + ldr r4, _080FFF50 + lsrs r0, r0, #0x18 + ldrh r1, [r4] + adds r0, r0, r1 + strh r0, [r5, #0x20] + ldrb r0, [r6] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r4, [r4, #2] + adds r0, r0, r4 + strh r0, [r5, #0x22] + adds r2, r5, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] + b _080FFFA6 + .align 2, 0 +_080FFF4C: .4byte 0x020380D7 +_080FFF50: .4byte 0x020380BE +_080FFF54: + adds r2, r5, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + 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 _080FFFA6 + adds r0, r5, #0 + movs r1, #1 + bl ChangeSpriteAffineAnim + movs r0, #0x19 + strh r0, [r5, #0x2e] + ldr r4, _080FFFAC + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x32] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x36] + ldr r0, _080FFFB0 + str r0, [r5, #0x1c] + ldr r1, _080FFFB4 + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 +_080FFFA6: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080FFFAC: .4byte 0x020380D6 +_080FFFB0: .4byte 0x080A6989 +_080FFFB4: .4byte 0x080A34C5 + thumb_func_end AnimMimicOrb + + thumb_func_start AnimIngrainRoot +AnimIngrainRoot: @ 0x080FFFB8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _08100024 + ldr r4, _08100030 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + ldr r4, _08100034 + ldrh r0, [r4] + strh r0, [r5, #0x24] + ldrh r0, [r4, #2] + strh r0, [r5, #0x26] + ldrb r0, [r4, #4] + adds r0, #0x1e + adds r1, r5, #0 + adds r1, #0x43 + strb r0, [r1] + ldrb r1, [r4, #6] + adds r0, r5, #0 + bl StartSpriteAnim + ldrh r0, [r4, #8] + strh r0, [r5, #0x32] + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] + movs r2, #0x22 + ldrsh r0, [r5, r2] + movs r2, #0x26 + ldrsh r1, [r5, r2] + adds r0, r0, r1 + cmp r0, #0x78 + ble _08100024 + ldrh r0, [r5, #0x22] + adds r1, r0, #0 + subs r1, #0x78 + ldrh r2, [r5, #0x26] + adds r0, r0, r2 + adds r1, r1, r0 + strh r1, [r5, #0x22] +_08100024: + ldr r0, _08100038 + str r0, [r5, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08100030: .4byte 0x020380D6 +_08100034: .4byte 0x020380BE +_08100038: .4byte 0x0810012D + thumb_func_end AnimIngrainRoot + + thumb_func_start AnimFrenzyPlantRoot +AnimFrenzyPlantRoot: @ 0x0810003C + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + sub sp, #4 + mov sb, r0 + ldr r4, _08100118 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + mov r8, r0 + mov r0, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r6, _0810011C + ldrb r0, [r6] + movs r1, #2 + bl GetBattlerSpriteCoord + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldrb r0, [r6] + movs r1, #3 + bl GetBattlerSpriteCoord + adds r2, r0, #0 + lsls r2, r2, #0x18 + subs r4, r4, r5 + lsls r4, r4, #0x10 + lsrs r2, r2, #0x18 + mov r1, r8 + subs r2, r2, r1 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + lsrs r3, r4, #0x10 + mov sl, r3 + asrs r4, r4, #0x10 + ldr r6, _08100120 + movs r1, #0 + ldrsh r0, [r6, r1] + muls r0, r4, r0 + movs r1, #0x64 + str r2, [sp] + bl __divsi3 + adds r5, r5, r0 + mov r3, sb + strh r5, [r3, #0x20] + ldr r2, [sp] + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + movs r3, #0 + ldrsh r1, [r6, r3] + muls r0, r1, r0 + movs r1, #0x64 + bl __divsi3 + add r8, r0 + mov r1, r8 + mov r0, sb + strh r1, [r0, #0x22] + ldrh r0, [r6, #2] + mov r3, sb + strh r0, [r3, #0x24] + ldrh r0, [r6, #4] + strh r0, [r3, #0x26] + ldrb r0, [r6, #6] + adds r0, #0x1e + mov r1, sb + adds r1, #0x43 + strb r0, [r1] + ldrb r1, [r6, #8] + mov r0, sb + bl StartSpriteAnim + ldrh r0, [r6, #0xa] + mov r1, sb + strh r0, [r1, #0x32] + ldr r0, _08100124 + str r0, [r1, #0x1c] + ldr r1, _08100128 + mov r3, sb + ldrh r0, [r3, #0x20] + strh r0, [r1] + ldrh r0, [r3, #0x22] + strh r0, [r1, #2] + mov r0, sl + strh r0, [r1, #4] + ldr r2, [sp] + strh r2, [r1, #6] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08100118: .4byte 0x020380D6 +_0810011C: .4byte 0x020380D7 +_08100120: .4byte 0x020380BE +_08100124: .4byte 0x0810012D +_08100128: .4byte 0x02039DC4 + thumb_func_end AnimFrenzyPlantRoot + + thumb_func_start AnimRootFlickerOut +AnimRootFlickerOut: @ 0x0810012C + push {lr} + adds r3, r0, #0 + ldrh r1, [r3, #0x2e] + adds r1, #1 + strh r1, [r3, #0x2e] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r2, #0x32 + ldrsh r0, [r3, r2] + subs r0, #0xa + cmp r1, r0 + ble _0810016C + movs r0, #0x2e + ldrsh r1, [r3, r0] + lsrs r0, r1, #0x1f + adds r0, r1, r0 + asrs r0, r0, #1 + lsls r0, r0, #1 + subs r1, r1, r0 + movs r2, #0x3e + adds r2, r2, r3 + mov ip, r2 + movs r0, #1 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] +_0810016C: + movs r2, #0x2e + ldrsh r1, [r3, r2] + movs r2, #0x32 + ldrsh r0, [r3, r2] + cmp r1, r0 + ble _0810017E + adds r0, r3, #0 + bl DestroyAnimSprite +_0810017E: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AnimRootFlickerOut + + thumb_func_start AnimIngrainOrb +AnimIngrainOrb: @ 0x08100184 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r1, #0x2e + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _081001C4 + ldr r5, _08100200 + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + ldr r4, _08100204 + lsrs r0, r0, #0x18 + ldrh r2, [r4] + adds r0, r0, r2 + strh r0, [r6, #0x20] + ldrb r0, [r5] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #2] + adds r0, r0, r1 + strh r0, [r6, #0x22] + ldrh r0, [r4, #4] + strh r0, [r6, #0x30] + ldrh r0, [r4, #6] + strh r0, [r6, #0x32] + ldrh r0, [r4, #8] + strh r0, [r6, #0x34] +_081001C4: + ldrh r0, [r6, #0x2e] + adds r0, #1 + strh r0, [r6, #0x2e] + ldrh r1, [r6, #0x30] + muls r0, r1, r0 + strh r0, [r6, #0x24] + movs r2, #0x2e + ldrsh r1, [r6, r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, 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 _081001FA + adds r0, r6, #0 + bl DestroyAnimSprite +_081001FA: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08100200: .4byte 0x020380D6 +_08100204: .4byte 0x020380BE + thumb_func_end AnimIngrainOrb + + thumb_func_start sub_08100208 +sub_08100208: @ 0x08100208 + push {r4, r5, lr} + movs r2, #0x20 + ldrsh r4, [r0, r2] + lsls r4, r4, #8 + movs r3, #0x22 + ldrsh r2, [r0, r3] + orrs r4, r2 + movs r5, #0x3a + ldrsh r2, [r0, r5] + lsls r2, r2, #8 + movs r5, #0x3c + ldrsh r3, [r0, r5] + orrs r2, r3 + lsls r1, 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_08100208 + + thumb_func_start sub_08100230 +sub_08100230: @ 0x08100230 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov r8, r0 + ldrh r0, [r0, #0x38] + lsrs r1, r0, #8 + mov sl, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + mov r1, r8 + ldrh r0, [r1, #0x3a] + lsrs r2, r0, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldrh r1, [r1, #0x3c] + lsls r0, r1, #0x10 + asrs r0, r0, #0x18 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + movs r3, #0xff + ands r3, r1 + cmp r2, #0 + bne _0810026A + movs r2, #0x20 + rsbs r2, r2, #0 + b _08100272 +_0810026A: + cmp r2, #0xff + bne _08100272 + movs r2, #0x88 + lsls r2, r2, #1 +_08100272: + mov r0, sb + subs r4, r4, r0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + mov r1, sl + subs r0, r2, r1 + lsls r5, r3, #0x10 + asrs r5, r5, #0x10 + muls r0, r5, r0 + lsls r1, r6, #0x10 + asrs r7, r1, #0x10 + adds r1, r7, #0 + bl __divsi3 + adds r6, r0, #0 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + adds r0, r4, #0 + muls r0, r5, r0 + adds r1, r7, #0 + bl __divsi3 + add r6, sl + mov r1, r8 + strh r6, [r1, #0x20] + add r0, sb + strh r0, [r1, #0x22] + adds r5, #1 + lsls r5, r5, #0x10 + lsrs r3, r5, #0x10 + asrs r5, r5, #0x10 + cmp r5, r7 + beq _081002C4 + lsls r1, r7, #8 + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + orrs r0, r1 + mov r1, r8 + strh r0, [r1, #0x3c] + movs r0, #0 + b _081002C6 +_081002C4: + movs r0, #1 +_081002C6: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_08100230 + + thumb_func_start sub_081002D4 +sub_081002D4: @ 0x081002D4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0xa + bne _081002E8 + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAffineAnim +_081002E8: + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x32 + ble _081002FC + adds r0, r4, #0 + bl DestroyAnimSprite +_081002FC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081002D4 + + thumb_func_start sub_08100304 +sub_08100304: @ 0x08100304 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x34 + ldrsh r0, [r4, r1] + lsls r0, r0, #7 + movs r2, #0x36 + ldrsh r1, [r4, r2] + bl __divsi3 + ldrh r1, [r4, #0x2e] + adds r1, r1, r0 + movs r5, #0 + strh r1, [r4, #0x2e] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #0x7f + ble _0810032E + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + strh r5, [r4, #0x2e] +_0810032E: + ldrh r0, [r4, #0x2e] + adds r0, #0x80 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x30 + ldrsh r2, [r4, r1] + lsls r2, r2, #3 + movs r1, #0x1e + subs r1, r1, r2 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl Sin + strh r0, [r4, #0x26] + adds r0, r4, #0 + bl sub_08100230 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810035E + strh r5, [r4, #0x26] + strh r5, [r4, #0x2e] + ldr r0, _08100364 + str r0, [r4, #0x1c] +_0810035E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08100364: .4byte 0x081002D5 + thumb_func_end sub_08100304 + + thumb_func_start AnimPresent +AnimPresent: @ 0x08100368 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r1, #0 + bl InitSpritePosToAnimAttacker + ldr r4, _081003B0 + ldrb r0, [r4] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldrb r0, [r4] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _081003B4 + ldrb r1, [r0] + movs r0, #2 + eors r0, r1 + ldrb r4, [r4] + cmp r0, r4 + bne _081003B8 + strh r6, [r5, #0x3a] + adds r0, r2, #0 + adds r0, #0xa + strh r0, [r5, #0x3c] + adds r0, r5, #0 + movs r1, #0x3c + bl sub_08100208 + movs r0, #1 + b _081003CA + .align 2, 0 +_081003B0: .4byte 0x020380D7 +_081003B4: .4byte 0x020380D6 +_081003B8: + strh r6, [r5, #0x3a] + adds r0, r2, #0 + adds r0, #0xa + strh r0, [r5, #0x3c] + adds r0, r5, #0 + movs r1, #0x3c + bl sub_08100208 + movs r0, #3 +_081003CA: + strh r0, [r5, #0x34] + movs r0, #0x3c + strh r0, [r5, #0x36] + ldr r0, _081003DC + str r0, [r5, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081003DC: .4byte 0x08100305 + thumb_func_end AnimPresent + + thumb_func_start sub_081003E0 +sub_081003E0: @ 0x081003E0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x34 + ldrsh r0, [r4, r1] + lsls r0, r0, #7 + movs r2, #0x36 + ldrsh r1, [r4, r2] + bl __divsi3 + ldrh r1, [r4, #0x2e] + adds r1, r1, r0 + movs r5, #0 + strh r1, [r4, #0x2e] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #0x7f + ble _0810040A + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + strh r5, [r4, #0x2e] +_0810040A: + ldrh r0, [r4, #0x2e] + adds r0, #0x80 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x30 + ldrsh r2, [r4, r1] + lsls r2, r2, #3 + movs r1, #0x1e + subs r1, r1, r2 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl Sin + strh r0, [r4, #0x26] + adds r0, r4, #0 + bl sub_08100230 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810043C + strh r5, [r4, #0x26] + strh r5, [r4, #0x2e] + adds r0, r4, #0 + bl DestroyAnimSprite +_0810043C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081003E0 + + thumb_func_start AnimKnockOffItem +AnimKnockOffItem: @ 0x08100444 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r4, _08100480 + ldrb r0, [r4] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _08100488 + strh r0, [r5, #0x3a] + adds r0, r6, #0 + adds r0, #0xa + strh r0, [r5, #0x3c] + adds r0, r5, #0 + movs r1, #0x28 + bl sub_08100208 + movs r0, #3 + strh r0, [r5, #0x34] + movs r0, #0x3c + strh r0, [r5, #0x36] + ldr r0, _08100484 + b _081004B2 + .align 2, 0 +_08100480: .4byte 0x020380D7 +_08100484: .4byte 0x08100305 +_08100488: + movs r0, #0xff + strh r0, [r5, #0x3a] + adds r0, r6, #0 + adds r0, #0xa + strh r0, [r5, #0x3c] + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081004A0 + movs r0, #0 + strh r0, [r5, #0x3a] +_081004A0: + adds r0, r5, #0 + movs r1, #0x28 + bl sub_08100208 + movs r0, #3 + strh r0, [r5, #0x34] + movs r0, #0x3c + strh r0, [r5, #0x36] + ldr r0, _081004BC +_081004B2: + str r0, [r5, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081004BC: .4byte 0x081003E1 + thumb_func_end AnimKnockOffItem + + thumb_func_start AnimPresentHealParticle +AnimPresentHealParticle: @ 0x081004C0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _081004DA + adds r0, r4, #0 + movs r1, #0 + bl InitSpritePosToAnimTarget + ldr r0, _08100500 + ldrh r0, [r0, #4] + strh r0, [r4, #0x30] +_081004DA: + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + ldrh r1, [r4, #0x30] + muls r0, r1, r0 + strh r0, [r4, #0x26] + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _081004FA + adds r0, r4, #0 + bl DestroyAnimSprite +_081004FA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08100500: .4byte 0x020380BE + thumb_func_end AnimPresentHealParticle + + thumb_func_start AnimItemSteal +AnimItemSteal: @ 0x08100504 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r1, #0 + bl InitSpritePosToAnimTarget + ldr r4, _0810054C + ldrb r0, [r4] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldrb r0, [r4] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _08100550 + ldrb r1, [r0] + movs r0, #2 + eors r0, r1 + ldrb r4, [r4] + cmp r0, r4 + bne _08100554 + strh r6, [r5, #0x3a] + adds r0, r2, #0 + adds r0, #0xa + strh r0, [r5, #0x3c] + adds r0, r5, #0 + movs r1, #0x3c + bl sub_08100208 + movs r0, #1 + b _08100566 + .align 2, 0 +_0810054C: .4byte 0x020380D6 +_08100550: .4byte 0x020380D7 +_08100554: + strh r6, [r5, #0x3a] + adds r0, r2, #0 + adds r0, #0xa + strh r0, [r5, #0x3c] + adds r0, r5, #0 + movs r1, #0x3c + bl sub_08100208 + movs r0, #3 +_08100566: + strh r0, [r5, #0x34] + movs r0, #0x3c + strh r0, [r5, #0x36] + ldr r0, _08100578 + str r0, [r5, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08100578: .4byte 0x0810057D + thumb_func_end AnimItemSteal + + thumb_func_start AnimItemStealStep +AnimItemStealStep: @ 0x0810057C + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x34 + ldrsh r0, [r4, r1] + lsls r0, r0, #7 + movs r2, #0x36 + ldrsh r1, [r4, r2] + bl __divsi3 + ldrh r1, [r4, #0x2e] + adds r1, r1, r0 + movs r5, #0 + strh r1, [r4, #0x2e] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #0x7f + ble _081005A6 + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + strh r5, [r4, #0x2e] +_081005A6: + ldrh r0, [r4, #0x2e] + adds r0, #0x80 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x30 + ldrsh r2, [r4, r1] + lsls r2, r2, #3 + movs r1, #0x1e + subs r1, r1, r2 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl Sin + strh r0, [r4, #0x26] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _081005DA + movs r0, #0x3f + bl BattleAnimAdjustPanning + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r0, #0x7d + bl PlaySE12WithPanning +_081005DA: + adds r0, r4, #0 + bl sub_08100230 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08100602 + strh r5, [r4, #0x26] + strh r5, [r4, #0x2e] + ldr r0, _08100608 + str r0, [r4, #0x1c] + movs r0, #0x40 + rsbs r0, r0, #0 + bl BattleAnimAdjustPanning + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r0, #0x7d + bl PlaySE12WithPanning +_08100602: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08100608: .4byte 0x081002D5 + thumb_func_end AnimItemStealStep + + thumb_func_start AnimTrickBag +AnimTrickBag: @ 0x0810060C + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _081006A0 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08100634 + ldr r0, _08100630 + ldrh r1, [r0, #2] + strh r1, [r4, #0x30] + movs r1, #0x78 + strh r1, [r4, #0x20] + adds r5, r0, #0 + b _08100656 + .align 2, 0 +_08100630: .4byte 0x020380BE +_08100634: + ldr r0, _08100690 + movs r1, #2 + ldrsh r3, [r0, r1] + adds r1, r3, #0 + subs r1, #0x20 + adds r2, r1, #0 + adds r5, r0, #0 + cmp r1, #0 + bge _0810064A + adds r2, r3, #0 + adds r2, #0xdf +_0810064A: + asrs r0, r2, #8 + lsls r0, r0, #8 + subs r0, r1, r0 + strh r0, [r4, #0x30] + movs r0, #0x46 + strh r0, [r4, #0x20] +_08100656: + 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, _08100694 + str r0, [r4, #0x1c] + ldrh r0, [r4, #0x30] + subs r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xbe + bhi _08100698 + adds r1, r4, #0 + adds r1, #0x43 + movs r0, #0x1f + b _0810069E + .align 2, 0 +_08100690: .4byte 0x020380BE +_08100694: .4byte 0x081006A9 +_08100698: + adds r1, r4, #0 + adds r1, #0x43 + movs r0, #0x1d +_0810069E: + strb r0, [r1] +_081006A0: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AnimTrickBag + + thumb_func_start AnimTrickBagStep1 +AnimTrickBagStep1: @ 0x081006A8 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x34 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _081006BA + cmp r0, #1 + beq _081006EA + b _0810070A +_081006BA: + ldrh r5, [r4, #0x32] + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0x4e + ble _081006D2 + movs r0, #1 + strh r0, [r4, #0x34] + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAffineAnim + b _0810070A +_081006D2: + 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, #3 + strh r1, [r4, #0x36] + strh r0, [r4, #0x22] + b _0810070A +_081006EA: + movs r1, #0x34 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0810070A + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0810070A + movs r0, #0 + strh r0, [r4, #0x2e] + strh r0, [r4, #0x32] + ldr r0, _08100710 + str r0, [r4, #0x1c] +_0810070A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08100710: .4byte 0x08100715 + thumb_func_end AnimTrickBagStep1 + + thumb_func_start AnimTrickBagStep2 +AnimTrickBagStep2: @ 0x08100714 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r5, _08100758 + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #1 + adds r3, r0, r1 + adds r0, r5, #1 + adds r0, r3, r0 + ldrh r2, [r4, #0x32] + movs r6, #0x32 + ldrsh r1, [r4, r6] + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r1, r0 + bne _08100760 + adds r0, r5, #2 + adds r0, r3, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0x7f + bne _0810074C + movs r0, #0 + strh r0, [r4, #0x2e] + ldr r0, _0810075C + str r0, [r4, #0x1c] +_0810074C: + movs r0, #0 + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + b _081007C6 + .align 2, 0 +_08100758: .4byte 0x0856E2E4 +_0810075C: .4byte 0x081007CD +_08100760: + adds r0, r2, #1 + strh r0, [r4, #0x32] + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #1 + adds r0, r0, r1 + adds r1, r0, r5 + movs r2, #0 + ldrsb r2, [r1, r2] + adds r1, r5, #2 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + muls r0, r2, r0 + ldrh r1, [r4, #0x30] + adds r0, r0, r1 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x30] + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081007AE + ldrh r0, [r4, #0x30] + subs r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xbe + bhi _081007A6 + adds r1, r4, #0 + adds r1, #0x43 + movs r0, #0x1f + b _081007AC +_081007A6: + adds r1, r4, #0 + adds r1, #0x43 + movs r0, #0x1d +_081007AC: + strb r0, [r1] +_081007AE: + 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] +_081007C6: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end AnimTrickBagStep2 + + thumb_func_start AnimTrickBagStep3 +AnimTrickBagStep3: @ 0x081007CC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0x14 + ble _081007DE + adds r0, r4, #0 + bl DestroyAnimSprite +_081007DE: + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsrs r0, r1, #0x1f + adds r0, r1, r0 + asrs r0, r0, #1 + lsls r0, r0, #1 + subs r1, r1, r0 + adds r3, r4, #0 + adds r3, #0x3e + movs r0, #1 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r3] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AnimTrickBagStep3 + + thumb_func_start sub_08100810 +sub_08100810: @ 0x08100810 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r0, #0 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _08100964 + adds r5, r0, r1 + ldr r4, _08100968 + ldrb r0, [r4] + bl GetBattlerSpriteSubpriority + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, #1 + strh r0, [r5, #0x10] + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x14] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x16] + ldrb r0, [r4] + movs r1, #1 + bl GetBattlerSpriteCoordAttr + strh r0, [r5, #0x1c] + ldrb r0, [r4] + movs r1, #0 + bl GetBattlerSpriteCoordAttr + strh r0, [r5, #0x1e] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #1 + rsbs r2, r2, #0 + adds r1, r2, #0 + cmp r0, #1 + bne _08100878 + movs r1, #1 +_08100878: + strh r1, [r5, #0x12] + movs r3, #0x12 + ldrsh r0, [r5, r3] + lsls r0, r0, #6 + movs r1, #0x38 + subs r1, r1, r0 + strh r1, [r5, #0x1a] + ldrh r0, [r5, #0x16] + subs r0, r0, r1 + ldrh r1, [r5, #0x14] + adds r0, r0, r1 + strh r0, [r5, #0x18] + ldr r0, _0810096C + movs r2, #0x18 + ldrsh r1, [r5, r2] + movs r3, #0x1a + ldrsh r2, [r5, r3] + ldrb r3, [r5, #0x10] + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0xc] + cmp r0, #0x40 + bne _081008B0 + adds r0, r6, #0 + bl DestroyAnimVisualTask +_081008B0: + ldr r4, _08100970 + movs r0, #0xc + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0xa + strh r1, [r0, #0x2e] + movs r2, #0xc + ldrsh r1, [r5, r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r5, #0x18] + strh r1, [r0, #0x30] + movs r3, #0xc + ldrsh r0, [r5, r3] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r4 + movs r1, #0x1c + ldrsh r0, [r5, r1] + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + adds r0, #0xa + movs r3, #0x12 + ldrsh r1, [r5, r3] + muls r1, r0, r1 + ldrh r0, [r5, #0x14] + subs r0, r0, r1 + strh r0, [r2, #0x32] + movs r0, #0xc + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r5, #0x1a] + strh r1, [r0, #0x34] + movs r1, #0xc + ldrsh r0, [r5, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + movs r2, #0x1e + ldrsh r0, [r5, r2] + lsrs r2, r0, #0x1f + adds r0, r0, r2 + asrs r0, r0, #1 + adds r0, #0xa + movs r3, #0x12 + ldrsh r2, [r5, r3] + muls r0, r2, r0 + ldrh r2, [r5, #0x16] + adds r0, r0, r2 + strh r0, [r1, #0x36] + movs r3, #0xc + ldrsh r1, [r5, r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl sub_08100D54 + movs r1, #0xc + ldrsh r2, [r5, r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r4 + strh r0, [r1, #0x38] + movs r2, #0xc + ldrsh r1, [r5, r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl InitAnimArcTranslation + ldr r0, _08100974 + str r0, [r5] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08100964: .4byte 0x03005B60 +_08100968: .4byte 0x020380D7 +_0810096C: .4byte 0x0856E35C +_08100970: .4byte 0x020205AC +_08100974: .4byte 0x08100979 + thumb_func_end sub_08100810 + + thumb_func_start sub_08100978 +sub_08100978: @ 0x08100978 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _081009BC + adds r6, r0, r1 + movs r0, #0xc + ldrsh r1, [r6, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _081009C0 + adds r4, r0, r1 + movs r1, #8 + ldrsh r5, [r6, r1] + cmp r5, #7 + bne _081009A0 + b _08100BD0 +_081009A0: + cmp r5, #7 + bgt _081009EE + cmp r5, #3 + bne _081009AA + b _08100AC2 +_081009AA: + cmp r5, #3 + bgt _081009C4 + cmp r5, #1 + beq _08100A54 + cmp r5, #1 + bgt _08100AA4 + cmp r5, #0 + beq _08100A36 + b _08100D4C + .align 2, 0 +_081009BC: .4byte 0x03005B60 +_081009C0: .4byte 0x020205AC +_081009C4: + cmp r5, #5 + bne _081009CA + b _08100B38 +_081009CA: + cmp r5, #5 + ble _081009D0 + b _08100BB2 +_081009D0: + adds r0, r6, #0 + adds r1, r2, #0 + bl sub_08100D74 + adds r0, r4, #0 + bl TranslateAnimHorizontalArc + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081009E6 + b _08100D4C +_081009E6: + movs r0, #5 + strh r0, [r6, #0x26] + movs r0, #0xff + b _08100D4A +_081009EE: + cmp r5, #0xb + bne _081009F4 + b _08100CB4 +_081009F4: + cmp r5, #0xb + bgt _08100A22 + cmp r5, #9 + bne _081009FE + b _08100C22 +_081009FE: + cmp r5, #9 + ble _08100A04 + b _08100C98 +_08100A04: + adds r0, r6, #0 + adds r1, r2, #0 + bl sub_08100D74 + adds r0, r4, #0 + bl TranslateAnimHorizontalArc + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08100A1A + b _08100D4C +_08100A1A: + movs r0, #9 + strh r0, [r6, #0x26] + movs r0, #0xff + b _08100D4A +_08100A22: + cmp r5, #0xd + bne _08100A28 + b _08100D26 +_08100A28: + cmp r5, #0xd + bge _08100A2E + b _08100D06 +_08100A2E: + cmp r5, #0xff + bne _08100A34 + b _08100D36 +_08100A34: + b _08100D4C +_08100A36: + adds r0, r6, #0 + adds r1, r2, #0 + bl sub_08100D74 + adds r0, r4, #0 + bl TranslateAnimHorizontalArc + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08100A4C + b _08100D4C +_08100A4C: + movs r0, #1 + strh r0, [r6, #0x26] + movs r0, #0xff + b _08100D4A +_08100A54: + ldrh r2, [r4, #0x24] + ldrh r3, [r4, #0x20] + adds r2, r2, r3 + movs r0, #0 + strh r2, [r4, #0x20] + ldrh r1, [r4, #0x26] + ldrh r3, [r4, #0x22] + adds r1, 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_08100D54 + strh r0, [r4, #0x38] + ldrh r0, [r6, #0x10] + adds r0, #2 + 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 InitAnimArcTranslation + ldrh r0, [r6, #8] + adds r0, #1 + b _08100D4A +_08100AA4: + adds r0, r6, #0 + adds r1, r2, #0 + bl sub_08100D74 + adds r0, r4, #0 + bl TranslateAnimHorizontalArc + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08100ABA + b _08100D4C +_08100ABA: + movs r0, #3 + strh r0, [r6, #0x26] + movs r0, #0xff + b _08100D4A +_08100AC2: + ldrh r1, [r4, #0x24] + ldrh r0, [r4, #0x20] + adds r1, r1, r0 + movs r0, #0 + strh r1, [r4, #0x20] + ldrh r2, [r4, #0x26] + ldrh r3, [r4, #0x22] + adds r2, 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, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + adds r0, #0xa + movs r3, #0x12 + ldrsh r1, [r6, r3] + muls r1, r0, r1 + ldrh r0, [r6, #0x14] + subs r0, r0, r1 + strh r0, [r4, #0x32] + strh r2, [r4, #0x34] + movs r1, #0x1e + ldrsh r0, [r6, r1] + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + adds r0, #0xa + movs r2, #0x12 + ldrsh r1, [r6, r2] + muls r1, r0, r1 + ldrh r0, [r6, #0x16] + subs r0, r0, r1 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_08100D54 + strh r0, [r4, #0x38] + movs r0, #2 + 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 InitAnimArcTranslation + ldrh r0, [r6, #8] + adds r0, #1 + b _08100D4A +_08100B38: + ldrh r1, [r4, #0x24] + ldrh r3, [r4, #0x20] + adds r1, r1, r3 + movs r0, #0 + strh r1, [r4, #0x20] + ldrh r2, [r4, #0x26] + ldrh r3, [r4, #0x22] + adds r2, 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, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + adds r0, #0xa + movs r3, #0x12 + ldrsh r1, [r6, r3] + muls r0, r1, r0 + ldrh r1, [r6, #0x14] + adds r0, r0, r1 + strh r0, [r4, #0x32] + strh r2, [r4, #0x34] + movs r2, #0x1e + ldrsh r0, [r6, r2] + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + adds r0, #0xa + movs r3, #0x12 + ldrsh r1, [r6, r3] + muls r0, r1, r0 + ldrh r1, [r6, #0x16] + adds r0, r0, r1 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_08100D54 + strh r0, [r4, #0x38] + ldrh r1, [r6, #0x10] + subs r1, #2 + strh r1, [r6, #0x10] + movs r0, #3 + 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 InitAnimArcTranslation + ldrh r0, [r6, #8] + adds r0, #1 + b _08100D4A +_08100BB2: + adds r0, r6, #0 + adds r1, r2, #0 + bl sub_08100D74 + adds r0, r4, #0 + bl TranslateAnimHorizontalArc + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08100BC8 + b _08100D4C +_08100BC8: + movs r0, #7 + strh r0, [r6, #0x26] + movs r0, #0xff + b _08100D4A +_08100BD0: + ldrh r2, [r4, #0x24] + ldrh r3, [r4, #0x20] + adds r2, r2, r3 + movs r0, #0 + strh r2, [r4, #0x20] + ldrh r1, [r4, #0x26] + ldrh r3, [r4, #0x22] + adds r1, 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_08100D54 + strh r0, [r4, #0x38] + ldrh r1, [r6, #0x10] + adds r1, #2 + strh r1, [r6, #0x10] + movs r0, #4 + 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 InitAnimArcTranslation + ldrh r0, [r6, #8] + adds r0, #1 + b _08100D4A +_08100C22: + ldrh r1, [r4, #0x24] + ldrh r0, [r4, #0x20] + adds r1, r1, r0 + movs r0, #0 + strh r1, [r4, #0x20] + ldrh r2, [r4, #0x26] + ldrh r3, [r4, #0x22] + adds r2, 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, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + adds r0, #0xa + movs r3, #0x12 + ldrsh r1, [r6, r3] + muls r1, r0, r1 + ldrh r0, [r6, #0x14] + subs r0, r0, r1 + strh r0, [r4, #0x32] + strh r2, [r4, #0x34] + movs r1, #0x1e + ldrsh r0, [r6, r1] + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + adds r0, #0xa + movs r2, #0x12 + ldrsh r1, [r6, r2] + muls r0, r1, r0 + ldrh r3, [r6, #0x16] + adds r0, r0, r3 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_08100D54 + strh r0, [r4, #0x38] + movs r0, #5 + 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 InitAnimArcTranslation + ldrh r0, [r6, #8] + adds r0, #1 + b _08100D4A +_08100C98: + adds r0, r6, #0 + adds r1, r2, #0 + bl sub_08100D74 + adds r0, r4, #0 + bl TranslateAnimHorizontalArc + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08100D4C + movs r0, #0xb + strh r0, [r6, #0x26] + movs r0, #0xff + b _08100D4A +_08100CB4: + ldrh r2, [r4, #0x24] + ldrh r0, [r4, #0x20] + adds r2, r2, r0 + movs r0, #0 + strh r2, [r4, #0x20] + ldrh r1, [r4, #0x26] + ldrh r3, [r4, #0x22] + adds r1, 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_08100D54 + strh r0, [r4, #0x38] + ldrh r1, [r6, #0x10] + subs r1, #2 + strh r1, [r6, #0x10] + movs r0, #6 + 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 InitAnimArcTranslation + ldrh r0, [r6, #8] + adds r0, #1 + b _08100D4A +_08100D06: + adds r0, r6, #0 + adds r1, r2, #0 + bl sub_08100D74 + adds r0, r4, #0 + bl TranslateAnimHorizontalArc + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08100D4C + adds r0, r4, #0 + bl DestroySprite + ldrh r0, [r6, #8] + adds r0, #1 + b _08100D4A +_08100D26: + movs r1, #0x20 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _08100D4C + adds r0, r2, #0 + bl DestroyAnimVisualTask + b _08100D4C +_08100D36: + ldrh r0, [r6, #0xa] + adds r0, #1 + strh r0, [r6, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #5 + ble _08100D4C + movs r0, #0 + strh r0, [r6, #0xa] + ldrh r0, [r6, #0x26] +_08100D4A: + strh r0, [r6, #8] +_08100D4C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08100978 + + thumb_func_start sub_08100D54 +sub_08100D54: @ 0x08100D54 + push {lr} + movs r2, #8 + movs r3, #0x36 + ldrsh r1, [r0, r3] + movs r3, #0x22 + ldrsh r0, [r0, r3] + cmp r1, r0 + bge _08100D6A + rsbs r0, r2, #0 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 +_08100D6A: + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08100D54 + + thumb_func_start sub_08100D74 +sub_08100D74: @ 0x08100D74 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + ldrh r0, [r6, #0x24] + adds r0, #1 + strh r0, [r6, #0x24] + lsls r0, r0, #0x10 + cmp r0, #0 + ble _08100E0A + movs r0, #0 + strh r0, [r6, #0x24] + ldr r0, _08100E14 + mov r8, r0 + movs r2, #0xc + ldrsh r1, [r6, r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + ldrh r1, [r0, #0x24] + ldrh r2, [r0, #0x20] + adds r1, r1, r2 + ldrh r2, [r0, #0x26] + ldrh r0, [r0, #0x22] + adds r2, r2, r0 + ldr r0, _08100E18 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + ldrb r3, [r6, #0x10] + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _08100E0A + lsls r5, r0, #4 + adds r5, r5, r0 + lsls r5, r5, #2 + mov r0, r8 + adds r4, r5, r0 + strh r7, [r4, #0x3a] + movs r0, #0xc + strh r0, [r4, #0x3c] + ldr r0, _08100E1C + lsls r1, r7, #2 + adds r1, r1, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x20] + adds r0, #1 + strh r0, [r1, #0x20] + ldrh r2, [r6, #0x22] + movs r0, #1 + ands r0, r2 + strh r0, [r4, #0x2e] + ldrh r0, [r1, #0x22] + adds r0, #1 + 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, r5, r0 + ldr r0, _08100E20 + str r0, [r5] +_08100E0A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08100E14: .4byte 0x020205AC +_08100E18: .4byte 0x0856E35C +_08100E1C: .4byte 0x03005B60 +_08100E20: .4byte 0x08100E25 + thumb_func_end sub_08100D74 + + thumb_func_start sub_08100E24 +sub_08100E24: @ 0x08100E24 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _08100E86 + movs r0, #0 + strh r0, [r4, #0x2e] + adds r3, r4, #0 + adds r3, #0x3e + ldrb r2, [r3] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #8 + ble _08100E86 + ldr r3, _08100E8C + movs r0, #0x3c + ldrsh r1, [r4, r0] + lsls r1, r1, #1 + movs r0, #0x3a + ldrsh r2, [r4, r0] + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r3, #8 + adds r1, r1, r3 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + adds r0, r4, #0 + bl DestroySprite +_08100E86: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08100E8C: .4byte 0x03005B60 + thumb_func_end sub_08100E24 + + thumb_func_start sub_08100E90 +sub_08100E90: @ 0x08100E90 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r0, _08100EA4 + movs r1, #0xc + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08100EAC + ldr r0, _08100EA8 + b _08100EAE + .align 2, 0 +_08100EA4: .4byte 0x020380BE +_08100EA8: .4byte 0x020380D6 +_08100EAC: + ldr r0, _08100ECC +_08100EAE: + ldrb r6, [r0] + adds r0, r6, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08100ED8 + movs r0, #0 + strh r0, [r4, #0x36] + ldr r1, _08100ED0 + ldrh r0, [r1, #6] + strh r0, [r4, #0x32] + ldr r0, _08100ED4 + b _08100EE8 + .align 2, 0 +_08100ECC: .4byte 0x020380D7 +_08100ED0: .4byte 0x020380BE +_08100ED4: .4byte 0x0000FFF0 +_08100ED8: + movs r0, #1 + strh r0, [r4, #0x36] + ldr r1, _08100F0C + ldrh r0, [r1, #6] + rsbs r0, r0, #0 + strh r0, [r4, #0x32] + movs r0, #0x80 + lsls r0, r0, #1 +_08100EE8: + strh r0, [r4, #0x20] + adds r7, r1, #0 + adds r5, r7, #0 + ldrh r0, [r5, #2] + strh r0, [r4, #0x30] + ldrh r0, [r5, #4] + strh r0, [r4, #0x2e] + ldrh r0, [r5, #8] + strh r0, [r4, #0x34] + movs r1, #0xa + ldrsh r0, [r5, r1] + cmp r0, #1 + beq _08100F1E + cmp r0, #1 + bgt _08100F10 + cmp r0, #0 + beq _08100F1A + b _08100F88 + .align 2, 0 +_08100F0C: .4byte 0x020380BE +_08100F10: + cmp r0, #2 + beq _08100F24 + cmp r0, #3 + beq _08100F50 + b _08100F88 +_08100F1A: + ldrh r0, [r5] + b _08100F34 +_08100F1E: + ldrh r0, [r5] + strh r0, [r4, #0x22] + b _08100F6A +_08100F24: + adds r0, r6, #0 + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r5, [r5] + adds r0, r0, r5 +_08100F34: + strh r0, [r4, #0x22] + adds r0, r6, #0 + bl GetBattlerSpriteBGPriority + movs r1, #3 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r4, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #5] + b _08100F88 +_08100F50: + ldr r0, _08100F94 + ldrb r0, [r0] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r7, [r7] + adds r0, r0, r7 + strh r0, [r4, #0x22] + movs r0, #1 + bl GetAnimBattlerSpriteId +_08100F6A: + adds r0, r6, #0 + bl GetBattlerSpriteBGPriority + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #1 + movs r1, #3 + ands r0, r1 + lsls r0, r0, #2 + ldrb r2, [r4, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #5] +_08100F88: + ldr r0, _08100F98 + str r0, [r4, #0x1c] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08100F94: .4byte 0x020380D7 +_08100F98: .4byte 0x08100F9D + thumb_func_end sub_08100E90 + + thumb_func_start sub_08100F9C +sub_08100F9C: @ 0x08100F9C + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x3c + ldrsh r3, [r4, r0] + ldrh r0, [r4, #0x3c] + adds r0, #1 + strh r0, [r4, #0x3c] + movs r1, #0x30 + ldrsh r2, [r4, r1] + ldr r1, _08100FF0 + movs r5, #0x2e + ldrsh r0, [r4, r5] + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + muls r0, r2, r0 + asrs r0, r0, #8 + strh r0, [r4, #0x26] + movs r2, #0x32 + ldrsh r0, [r4, r2] + muls r0, r3, r0 + strh r0, [r4, #0x24] + movs r5, #0x34 + ldrsh r0, [r4, r5] + muls r0, r3, r0 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x2e] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08100FF4 + movs r2, #0x24 + ldrsh r0, [r4, r2] + movs r5, #0x20 + ldrsh r1, [r4, r5] + adds r0, r0, r1 + cmp r0, #0xf7 + ble _0810100C + b _08101006 + .align 2, 0 +_08100FF0: .4byte 0x082FA8CC +_08100FF4: + movs r1, #0x24 + ldrsh r0, [r4, r1] + movs r2, #0x20 + ldrsh r1, [r4, r2] + adds r0, r0, r1 + movs r1, #0x10 + rsbs r1, r1, #0 + cmp r0, r1 + bgt _0810100C +_08101006: + adds r0, r4, #0 + bl DestroySpriteAndMatrix +_0810100C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08100F9C + + thumb_func_start sub_08101014 +sub_08101014: @ 0x08101014 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _08101034 + adds r5, r0, r1 + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _08101038 + cmp r0, #1 + beq _0810106C + b _081010C6 + .align 2, 0 +_08101034: .4byte 0x03005B60 +_08101038: + ldr r0, _08101064 + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x14 + movs r2, #0x80 + lsls r2, r2, #1 + adds r4, r2, #0 + adds r0, r0, r4 + strh r0, [r5, #0x18] + ldr r0, _08101068 + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x14 + adds r0, r0, r4 + strh r0, [r5, #0x20] + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + b _081010C6 + .align 2, 0 +_08101064: .4byte 0x0000274F +_08101068: .4byte 0x000027B0 +_0810106C: + ldrh r0, [r5, #0x1a] + adds r0, #1 + movs r7, #0 + strh r0, [r5, #0x1a] + lsls r0, r0, #0x10 + cmp r0, #0 + blt _081010C6 + strh r7, [r5, #0x1a] + ldrh r0, [r5, #0x18] + ldrb r2, [r5, #0x1c] + ldr r4, _081010E0 + movs r3, #0x1e + ldrsh r1, [r5, r3] + lsls r1, r1, #1 + adds r1, 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, r1, #1 + adds r1, r1, r4 + ldrh r3, [r1] + movs r1, #0x10 + bl BlendPalette + ldrh r0, [r5, #0x1c] + adds r0, #1 + strh r0, [r5, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x11 + bne _081010C6 + strh r7, [r5, #0x1c] + ldrh r0, [r5, #0x1e] + adds r0, #1 + strh r0, [r5, #0x1e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + bne _081010C6 + strh r7, [r5, #0x1e] +_081010C6: + ldr r0, _081010E4 + movs r2, #0xe + ldrsh r1, [r0, r2] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _081010DA + adds r0, r6, #0 + bl DestroyAnimVisualTask +_081010DA: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081010E0: .4byte 0x0856E45C +_081010E4: .4byte 0x020380BE + thumb_func_end sub_08101014 + + thumb_func_start sub_081010E8 +sub_081010E8: @ 0x081010E8 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r6, r0, #0 + ldr r1, _08101100 + movs r2, #8 + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _08101104 + adds r0, r6, #0 + bl DestroyAnimSprite + b _081011DE + .align 2, 0 +_08101100: .4byte 0x020380BE +_08101104: + movs r3, #0 + ldrsh r0, [r1, r3] + cmp r0, #0 + bne _08101114 + ldr r4, _08101110 + b _08101116 + .align 2, 0 +_08101110: .4byte 0x020380D6 +_08101114: + ldr r4, _08101150 +_08101116: + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _08101154 + ldrh r1, [r0, #8] + strh r1, [r6, #0x2e] + movs r3, #2 + ldrsh r1, [r0, r3] + adds r7, r0, #0 + cmp r1, #0 + bne _08101158 + ldrh r0, [r7, #4] + adds r0, r0, r5 + strh r0, [r6, #0x20] + ldrh r0, [r7, #6] + adds r0, r0, r2 + strh r0, [r6, #0x22] + strh r5, [r6, #0x38] + strh r2, [r6, #0x3a] + b _08101168 + .align 2, 0 +_08101150: .4byte 0x020380D7 +_08101154: .4byte 0x020380BE +_08101158: + strh r5, [r6, #0x20] + strh r2, [r6, #0x22] + ldrh r0, [r7, #4] + adds r0, r0, r5 + strh r0, [r6, #0x38] + ldrh r0, [r7, #6] + adds r0, r0, r2 + strh r0, [r6, #0x3a] +_08101168: + 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, r0, r1 + lsls r0, r0, #4 + movs r3, #8 + 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, r0, r1 + lsls r0, r0, #4 + movs r3, #8 + ldrsh r1, [r7, r3] + bl __divsi3 + strh r0, [r6, #0x36] + ldrh r0, [r6, #0x38] + subs r0, r0, r4 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrh r1, [r6, #0x3a] + subs r1, r1, r5 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl ArcTan2Neg + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081011CA + ldr r1, _081011E8 + adds r0, r4, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_081011CA: + movs r3, #0x80 + lsls r3, r3, #1 + str r4, [sp] + adds r0, r6, #0 + movs r1, #0 + adds r2, r3, #0 + bl TrySetSpriteRotScale + ldr r0, _081011EC + str r0, [r6, #0x1c] +_081011DE: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081011E8: .4byte 0xFFFF8000 +_081011EC: .4byte 0x081011F1 + thumb_func_end sub_081010E8 + + thumb_func_start sub_081011F0 +sub_081011F0: @ 0x081011F0 + push {r4, lr} + adds r2, r0, #0 + ldrh r3, [r2, #0x2e] + movs r1, #0x2e + ldrsh r0, [r2, r1] + cmp r0, #0 + beq _08101220 + ldrh r0, [r2, #0x34] + ldrh r4, [r2, #0x30] + adds r0, r0, r4 + strh r0, [r2, #0x30] + ldrh r1, [r2, #0x36] + ldrh r4, [r2, #0x32] + adds r1, r1, r4 + strh r1, [r2, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + strh r0, [r2, #0x20] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + strh r1, [r2, #0x22] + subs r0, r3, #1 + strh r0, [r2, #0x2e] + b _08101226 +_08101220: + adds r0, r2, #0 + bl DestroySpriteAndMatrix +_08101226: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_081011F0 + + thumb_func_start sub_0810122C +sub_0810122C: @ 0x0810122C + push {lr} + adds r2, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08101242 + adds r0, r2, #0 + bl DestroyAnimSprite +_08101242: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0810122C + + thumb_func_start sub_08101248 +sub_08101248: @ 0x08101248 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08101268 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08101270 + ldr r2, _0810126C + ldrh r0, [r4, #0x20] + ldrh r1, [r2] + subs r0, r0, r1 + strh r0, [r4, #0x20] + ldrh r0, [r2, #2] + b _0810127C + .align 2, 0 +_08101268: .4byte 0x020380D6 +_0810126C: .4byte 0x020380BE +_08101270: + ldr r0, _08101294 + ldrh r1, [r0] + ldrh r2, [r4, #0x20] + adds r1, r1, r2 + strh r1, [r4, #0x20] + ldrh r0, [r0, #2] +_0810127C: + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] + ldr r0, _08101298 + str r0, [r4, #0x1c] + ldr r1, _0810129C + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08101294: .4byte 0x020380BE +_08101298: .4byte 0x080A60A1 +_0810129C: .4byte 0x080A34C5 + thumb_func_end sub_08101248 + + thumb_func_start sub_081012A0 +sub_081012A0: @ 0x081012A0 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _081012D8 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081012BA + adds r0, r5, #0 + movs r1, #1 + bl StartSpriteAnim +_081012BA: + ldr r0, _081012DC + str r0, [r5, #0x1c] + ldr r4, _081012E0 + movs r0, #0 + ldrsh r1, [r4, r0] + adds r0, r5, #0 + bl SetAnimSpriteInitialXOffset + ldrh r0, [r4, #2] + ldrh r1, [r5, #0x22] + adds r0, r0, r1 + strh r0, [r5, #0x22] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081012D8: .4byte 0x020380D6 +_081012DC: .4byte 0x0810122D +_081012E0: .4byte 0x020380BE + thumb_func_end sub_081012A0 + + thumb_func_start sub_081012E4 +sub_081012E4: @ 0x081012E4 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08101324 + ldrh r0, [r1] + ldrh r2, [r4, #0x20] + adds r0, r0, r2 + strh r0, [r4, #0x20] + ldrh r0, [r1, #2] + ldrh r2, [r4, #0x22] + adds r0, r0, r2 + strh r0, [r4, #0x22] + ldrh r0, [r1, #4] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #6] + strh r0, [r4, #0x30] + ldrh r0, [r1, #8] + strh r0, [r4, #0x34] + ldrh r0, [r1, #0xa] + strh r0, [r4, #0x38] + ldrb r1, [r1, #0xc] + adds r0, r4, #0 + bl StartSpriteAffineAnim + ldr r1, _08101328 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _0810132C + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08101324: .4byte 0x020380BE +_08101328: .4byte 0x080A6015 +_0810132C: .4byte 0x080A5FA5 + thumb_func_end sub_081012E4 + + thumb_func_start AnimCuttingSlice +AnimCuttingSlice: @ 0x08101330 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08101380 + ldrb r0, [r4] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08101364 + ldrh r0, [r5, #0x22] + adds r0, #8 + strh r0, [r5, #0x22] +_08101364: + ldr r0, _08101384 + str r0, [r5, #0x1c] + ldr r0, _08101388 + movs r2, #4 + ldrsh r1, [r0, r2] + adds r3, r0, #0 + cmp r1, #0 + bne _0810138C + ldrh r0, [r3] + ldrh r1, [r5, #0x20] + adds r0, r0, r1 + strh r0, [r5, #0x20] + b _081013A0 + .align 2, 0 +_08101380: .4byte 0x020380D7 +_08101384: .4byte 0x0810151D +_08101388: .4byte 0x020380BE +_0810138C: + ldrh r0, [r5, #0x20] + ldrh r1, [r3] + subs r0, r0, r1 + strh r0, [r5, #0x20] + adds r2, r5, #0 + adds r2, #0x3f + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] +_081013A0: + ldrh r0, [r3, #2] + ldrh r2, [r5, #0x22] + adds r0, r0, r2 + strh r0, [r5, #0x22] + ldr r1, _081013D4 + adds r0, r1, #0 + ldrh r2, [r5, #0x30] + adds r1, r0, r2 + strh r1, [r5, #0x30] + movs r2, #0x80 + lsls r2, r2, #3 + adds r0, r2, #0 + ldrh r2, [r5, #0x32] + adds r0, r0, r2 + strh r0, [r5, #0x32] + ldrh r0, [r3, #4] + strh r0, [r5, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + bne _081013CE + rsbs r0, r1, #0 + strh r0, [r5, #0x30] +_081013CE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081013D4: .4byte 0xFFFFFC00 + thumb_func_end AnimCuttingSlice + + thumb_func_start sub_081013D8 +sub_081013D8: @ 0x081013D8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + ldr r0, _081013F4 + movs r1, #6 + ldrsh r0, [r0, r1] + cmp r0, #1 + beq _081013F8 + cmp r0, #1 + ble _08101474 + cmp r0, #2 + beq _08101418 + b _08101474 + .align 2, 0 +_081013F4: .4byte 0x020380BE +_081013F8: + ldr r5, _08101414 + ldrb r0, [r5] + movs r4, #2 + eors r0, r4 + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldrb r0, [r5] + eors r4, r0 + adds r0, r4, #0 + b _08101484 + .align 2, 0 +_08101414: .4byte 0x020380D7 +_08101418: + ldr r5, _08101470 + ldrb r0, [r5] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldrb r0, [r5] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldrb r0, [r5] + movs r2, #2 + mov r8, r2 + mov r1, r8 + eors r0, r1 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810148E + ldrb r0, [r5] + mov r2, r8 + eors r0, r2 + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r7 + lsrs r7, r0, #1 + ldrb r0, [r5] + mov r1, r8 + eors r0, r1 + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r4 + lsrs r4, r0, #1 + b _0810148E + .align 2, 0 +_08101470: .4byte 0x020380D7 +_08101474: + ldr r4, _081014C0 + ldrb r0, [r4] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldrb r0, [r4] +_08101484: + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_0810148E: + strh r7, [r6, #0x20] + strh r4, [r6, #0x22] + ldr r0, _081014C0 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081014A6 + ldrh r0, [r6, #0x22] + adds r0, #8 + strh r0, [r6, #0x22] +_081014A6: + ldr r0, _081014C4 + str r0, [r6, #0x1c] + ldr r0, _081014C8 + movs r2, #4 + ldrsh r1, [r0, r2] + adds r3, r0, #0 + cmp r1, #0 + bne _081014CC + ldrh r0, [r3] + ldrh r1, [r6, #0x20] + adds r0, r0, r1 + strh r0, [r6, #0x20] + b _081014E0 + .align 2, 0 +_081014C0: .4byte 0x020380D7 +_081014C4: .4byte 0x0810151D +_081014C8: .4byte 0x020380BE +_081014CC: + ldrh r0, [r6, #0x20] + ldrh r1, [r3] + subs r0, r0, r1 + strh r0, [r6, #0x20] + adds r2, r6, #0 + adds r2, #0x3f + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] +_081014E0: + ldrh r0, [r3, #2] + ldrh r2, [r6, #0x22] + adds r0, r0, r2 + strh r0, [r6, #0x22] + ldr r1, _08101518 + adds r0, r1, #0 + ldrh r2, [r6, #0x30] + adds r1, r0, r2 + strh r1, [r6, #0x30] + movs r2, #0x80 + lsls r2, r2, #3 + adds r0, r2, #0 + ldrh r2, [r6, #0x32] + adds r0, r0, r2 + strh r0, [r6, #0x32] + ldrh r0, [r3, #4] + strh r0, [r6, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + bne _0810150E + rsbs r0, r1, #0 + strh r0, [r6, #0x30] +_0810150E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08101518: .4byte 0xFFFFFC00 + thumb_func_end sub_081013D8 + + thumb_func_start AnimSliceStep +AnimSliceStep: @ 0x0810151C + 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, r0, r2 + strh r0, [r4, #0x36] + movs r2, #0x38 + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _0810153E + adds r0, r1, #0 + adds r0, #0x18 + b _08101542 +_0810153E: + adds r0, r1, #0 + subs r0, #0x18 +_08101542: + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x32] + subs r0, #0x18 + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x14 + bne _08101578 + ldr r1, _08101580 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + movs r0, #3 + strh r0, [r4, #0x2e] + ldr r0, _08101584 + str r0, [r4, #0x1c] +_08101578: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08101580: .4byte 0x080A34C5 +_08101584: .4byte 0x080A5D79 + thumb_func_end AnimSliceStep + + thumb_func_start unref_sub_8100D38 +unref_sub_8100D38: @ 0x08101588 + push {r4, r5, lr} + adds r5, r0, #0 + ldrh r1, [r5, #0x32] + movs r2, #0x32 + ldrsh r0, [r5, r2] + cmp r0, #1 + ble _0810162C + ldrh r1, [r5, #0x34] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081015E4 + adds r3, r5, #0 + adds r3, #0x3e + ldrb r1, [r3] + movs r2, #5 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r1 + strb r0, [r3] + ldr r4, _081015E0 + movs r0, #0x2e + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, 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, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + b _0810161A + .align 2, 0 +_081015E0: .4byte 0x020205AC +_081015E4: + adds r1, r5, #0 + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + ldr r3, _08101628 + movs r0, #0x2e + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, 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, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] +_0810161A: + movs r0, #0 + strh r0, [r5, #0x32] + ldrh r0, [r5, #0x34] + adds r0, #1 + strh r0, [r5, #0x34] + b _08101630 + .align 2, 0 +_08101628: .4byte 0x020205AC +_0810162C: + adds r0, r1, #1 + strh r0, [r5, #0x32] +_08101630: + movs r1, #0x34 + ldrsh r0, [r5, r1] + cmp r0, #0xa + bne _08101660 + movs r2, #0x2e + ldrsh r1, [r5, r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _08101668 + adds r0, r0, r4 + bl DestroySprite + movs r0, #0x30 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + adds r0, r5, #0 + bl DestroyAnimSprite +_08101660: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08101668: .4byte 0x020205AC + thumb_func_end unref_sub_8100D38 + + thumb_func_start sub_0810166C +sub_0810166C: @ 0x0810166C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0810168C + ldrh r0, [r4, #4] + strh r0, [r5, #0x2e] + ldr r0, _08101690 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08101694 + ldrh r0, [r5, #0x20] + ldrh r1, [r4] + subs r0, r0, r1 + b _0810169A + .align 2, 0 +_0810168C: .4byte 0x020380BE +_08101690: .4byte 0x020380D6 +_08101694: + ldrh r0, [r4] + ldrh r1, [r5, #0x20] + adds r0, r0, r1 +_0810169A: + strh r0, [r5, #0x20] + ldr r4, _081016C8 + ldrb r1, [r4, #0xa] + adds r0, r5, #0 + bl StartSpriteAnim + ldrh r0, [r4, #6] + rsbs r0, r0, #0 + strh r0, [r5, #0x30] + ldrh r0, [r4, #2] + ldrh r1, [r5, #0x22] + adds r0, r0, r1 + strh r0, [r5, #0x22] + ldrh r0, [r4, #8] + strh r0, [r5, #0x34] + ldr r1, _081016CC + str r1, [r5, #0x1c] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081016C8: .4byte 0x020380BE +_081016CC: .4byte 0x081016D1 + thumb_func_end sub_0810166C + + thumb_func_start sub_081016D0 +sub_081016D0: @ 0x081016D0 + 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 _081016FC + adds r1, r4, #0 + adds r1, #0x43 + movs r0, #0 + b _08101702 +_081016FC: + adds r1, r4, #0 + adds r1, #0x43 + movs r0, #0xe +_08101702: + strb r0, [r1] + ldrh r0, [r4, #0x30] + ldrh r2, [r4, #0x2e] + adds r0, 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, r0, #0x10 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x26] + adds r0, r0, r1 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x34 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _08101738 + adds r0, r4, #0 + bl DestroyAnimSprite +_08101738: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081016D0 + + thumb_func_start sub_08101740 +sub_08101740: @ 0x08101740 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08101756 + ldr r1, _081017B4 + ldrh r0, [r1, #2] + adds r0, #8 + strh r0, [r1, #2] +_08101756: + ldr r6, _081017B8 + ldrb r0, [r6] + movs r1, #0 + bl GetBattlerSpriteCoord2 + lsls r0, r0, #0x18 + ldr r4, _081017B4 + lsrs r0, r0, #0x18 + ldrh r1, [r4] + adds r0, r0, r1 + strh r0, [r5, #0x20] + ldrb r0, [r6] + movs r1, #1 + bl GetBattlerSpriteCoord2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r4, [r4, #2] + adds r0, r0, r4 + strh r0, [r5, #0x22] + ldrb r0, [r6] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08101794 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081017BC +_08101794: + ldrb r0, [r6] + bl GetBattlerSpriteBGPriority + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #1 + movs r1, #3 + ands r0, r1 + lsls r0, r0, #2 + ldrb r2, [r5, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #5] + b _081017D4 + .align 2, 0 +_081017B4: .4byte 0x020380BE +_081017B8: .4byte 0x020380D6 +_081017BC: + ldrb r0, [r6] + bl GetBattlerSpriteBGPriority + movs r1, #3 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r5, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #5] +_081017D4: + ldr r0, _08101818 + ldrh r0, [r0, #4] + strh r0, [r5, #0x2e] + ldr r0, _0810181C + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x14 + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r0, r1 + strh r0, [r5, #0x32] + movs r4, #0x10 + movs r0, #0x10 + strh r0, [r5, #0x3c] + movs r1, #0xfd + lsls r1, r1, #6 + movs r0, #0x50 + bl SetGpuReg + ldrh r0, [r5, #0x3c] + lsls r1, r0, #8 + subs r4, r4, r0 + orrs r1, r4 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + ldr r0, _08101820 + str r0, [r5, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08101818: .4byte 0x020380BE +_0810181C: .4byte 0x00002828 +_08101820: .4byte 0x08101825 + thumb_func_end sub_08101740 + + thumb_func_start sub_08101824 +sub_08101824: @ 0x08101824 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x38] + adds r0, #0x60 + strh r0, [r4, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + rsbs r0, r0, #0 + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _08101882 + movs r0, #0 + strh r0, [r4, #0x30] + ldr r1, _081018CC + movs r2, #0x32 + ldrsh r0, [r4, r2] + adds r0, #1 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r5, [r0] + movs r2, #0 + adds r6, r1, #0 + adds r3, r6, #0 +_0810185C: + movs r1, #0x32 + ldrsh r0, [r4, r1] + adds r2, #1 + adds r0, r0, r2 + lsls r1, r0, #1 + adds r1, r1, r3 + adds r0, #1 + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + strh r0, [r1] + cmp r2, #5 + ble _0810185C + movs r2, #0x32 + ldrsh r0, [r4, r2] + adds r0, #7 + lsls r0, r0, #1 + adds r0, r0, r6 + strh r5, [r0] +_08101882: + ldrh r2, [r4, #0x3c] + movs r1, #0x3c + ldrsh r0, [r4, r1] + cmp r0, #6 + ble _081018BC + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + ble _081018D0 + ldrh r0, [r4, #0x3a] + adds r0, #1 + strh r0, [r4, #0x3a] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _081018BC + movs r0, #0 + strh r0, [r4, #0x3a] + subs r2, #1 + strh r2, [r4, #0x3c] + lsls r1, r2, #8 + movs r0, #0x10 + subs r0, r0, r2 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg +_081018BC: + ldrh r1, [r4, #0x2e] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r0, #0 + ble _081018D0 + subs r0, r1, #1 + strh r0, [r4, #0x2e] + b _08101912 + .align 2, 0 +_081018CC: .4byte 0x020377B4 +_081018D0: + ldrh r0, [r4, #0x3a] + adds r0, #1 + strh r0, [r4, #0x3a] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _08101912 + movs r0, #0 + strh r0, [r4, #0x3a] + ldrh r2, [r4, #0x3c] + adds r2, #1 + strh r2, [r4, #0x3c] + lsls r1, r2, #8 + movs r0, #0x10 + subs r0, r0, r2 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r1, #0x3c + ldrsh r0, [r4, r1] + cmp r0, #0x10 + bne _08101912 + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08101918 + str r0, [r4, #0x1c] +_08101912: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08101918: .4byte 0x080A60BD + thumb_func_end sub_08101824 + + thumb_func_start sub_0810191C +sub_0810191C: @ 0x0810191C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r6, _0810197C + ldrb r0, [r6] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r5, #0 + strh r0, [r4, #0x20] + ldrb r0, [r6] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08101980 + adds r0, 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] + movs r1, #0xfd + lsls r1, r1, #6 + movs r0, #0x50 + bl SetGpuReg + ldrh r1, [r4, #0x3c] + lsls r1, r1, #8 + ldrh r0, [r4, #0x3a] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + ldr r0, _08101984 + str r0, [r4, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0810197C: .4byte 0x020380D7 +_08101980: .4byte 0x0000FFE8 +_08101984: .4byte 0x08101989 + thumb_func_end sub_0810191C + + thumb_func_start sub_08101988 +sub_08101988: @ 0x08101988 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #4 + bls _08101996 + b _08101AE0 +_08101996: + lsls r0, r0, #2 + ldr r1, _081019A0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081019A0: .4byte 0x081019A4 +_081019A4: @ jump table + .4byte _081019B8 @ case 0 + .4byte _08101A1C @ case 1 + .4byte _08101A38 @ case 2 + .4byte _08101AB6 @ case 3 + .4byte _08101ACA @ case 4 +_081019B8: + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _081019C6 + b _08101AE0 +_081019C6: + movs r0, #0 + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _081019E8 + ldrh r1, [r4, #0x3a] + movs r2, #0x3a + ldrsh r0, [r4, r2] + cmp r0, #0xf + bgt _081019F6 + adds r0, r1, #1 + strh r0, [r4, #0x3a] + b _081019F6 +_081019E8: + ldrh r1, [r4, #0x3c] + movs r2, #0x3c + ldrsh r0, [r4, r2] + cmp r0, #0 + ble _081019F6 + subs r0, r1, #1 + strh r0, [r4, #0x3c] +_081019F6: + ldrh r1, [r4, #0x3c] + lsls r1, r1, #8 + ldrh r0, [r4, #0x3a] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r1, #0x3a + ldrsh r0, [r4, r1] + cmp r0, #0x10 + bne _08101AE0 + movs r2, #0x3c + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _08101AE0 + strh r0, [r4, #0x30] + b _08101AC2 +_08101A1C: + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #8 + ble _08101AE0 + movs r0, #0 + strh r0, [r4, #0x30] + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAffineAnim + b _08101AC2 +_08101A38: + adds r0, r4, #0 + movs r1, #0x10 + movs r2, #4 + bl sub_08101AE8 + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + ble _08101A5A + movs r0, #0 + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x22] + adds r0, #1 + strh r0, [r4, #0x22] +_08101A5A: + ldrh r0, [r4, #0x32] + adds r1, r0, #1 + strh r1, [r4, #0x32] + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1d + ble _08101AE0 + movs r0, #1 + ands r1, r0 + cmp r1, #0 + beq _08101A80 + ldrh r1, [r4, #0x3a] + movs r2, #0x3a + ldrsh r0, [r4, r2] + cmp r0, #0 + ble _08101A8E + subs r0, r1, #1 + strh r0, [r4, #0x3a] + b _08101A8E +_08101A80: + ldrh r1, [r4, #0x3c] + movs r2, #0x3c + ldrsh r0, [r4, r2] + cmp r0, #0xf + bgt _08101A8E + adds r0, r1, #1 + strh r0, [r4, #0x3c] +_08101A8E: + ldrh r1, [r4, #0x3c] + lsls r1, r1, #8 + ldrh r0, [r4, #0x3a] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r0, #0x3a + ldrsh r1, [r4, r0] + cmp r1, #0 + bne _08101AE0 + movs r2, #0x3c + ldrsh r0, [r4, r2] + cmp r0, #0x10 + bne _08101AE0 + strh r1, [r4, #0x30] + strh r1, [r4, #0x32] + b _08101AC2 +_08101AB6: + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] +_08101AC2: + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + b _08101AE0 +_08101ACA: + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + adds r0, r4, #0 + bl DestroyAnimSprite +_08101AE0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08101988 + + thumb_func_start sub_08101AE8 +sub_08101AE8: @ 0x08101AE8 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x34 + ldrsh r0, [r4, r1] + cmp r0, #0xb + bgt _08101AFA + ldrh r0, [r4, #0x36] + adds r0, #2 + strh r0, [r4, #0x36] +_08101AFA: + ldrh r5, [r4, #0x34] + adds r0, r5, #0 + subs r0, #0x12 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r5, #0 + cmp r0, #0x17 + bhi _08101B10 + ldrh r0, [r4, #0x36] + subs r0, #2 + strh r0, [r4, #0x36] +_08101B10: + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x2f + ble _08101B1E + ldrh r0, [r4, #0x36] + adds r0, #2 + strh r0, [r4, #0x36] +_08101B1E: + movs r1, #0x36 + ldrsh r0, [r4, r1] + movs r1, #9 + bl __divsi3 + strh r0, [r4, #0x24] + movs r1, #0x36 + ldrsh r0, [r4, r1] + movs r1, #0xe + bl __divsi3 + strh r0, [r4, #0x26] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _08101B44 + movs r1, #0x26 + ldrsh r0, [r4, r1] + rsbs r0, r0, #0 + strh r0, [r4, #0x26] +_08101B44: + adds r0, r5, #1 + strh r0, [r4, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x3b + ble _08101B54 + movs r0, #0 + strh r0, [r4, #0x34] +_08101B54: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08101AE8 + + thumb_func_start sub_08101B5C +sub_08101B5C: @ 0x08101B5C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08101BA0 + movs r1, #4 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _08101B70 + adds r0, r4, #0 + bl SetSpriteCoordsToAnimAttackerCoords +_08101B70: + movs r0, #0 + ldrsh r1, [r5, r0] + adds r0, r4, #0 + bl SetAnimSpriteInitialXOffset + ldrh r0, [r5, #2] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] + ldrh r0, [r5, #0xa] + strh r0, [r4, #0x2e] + ldrh r0, [r5, #6] + strh r0, [r4, #0x30] + ldrh r0, [r5, #8] + strh r0, [r4, #0x32] + ldr r1, _08101BA4 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _08101BA8 + str r0, [r4, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08101BA0: .4byte 0x020380BE +_08101BA4: .4byte 0x080A34C5 +_08101BA8: .4byte 0x080A5E35 + thumb_func_end sub_08101B5C + + thumb_func_start sub_08101BAC +sub_08101BAC: @ 0x08101BAC + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r0, _08101BC0 + movs r1, #4 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08101BC8 + ldr r0, _08101BC4 + b _08101BCA + .align 2, 0 +_08101BC0: .4byte 0x020380BE +_08101BC4: .4byte 0x020380D6 +_08101BC8: + ldr r0, _08101C0C +_08101BCA: + ldrb r6, [r0] + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08101C14 + movs r1, #2 + adds r0, r6, #0 + eors r0, r1 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08101C14 + ldr r4, _08101C10 + ldrb r1, [r4, #0xc] + adds r2, r5, #0 + adds r2, #0x20 + adds r3, r5, #0 + adds r3, #0x22 + adds r0, r6, #0 + bl SetAverageBattlerPositions + movs r2, #0 + ldrsh r1, [r4, r2] + adds r0, r5, #0 + bl SetAnimSpriteInitialXOffset + ldrh r0, [r4, #2] + ldrh r1, [r5, #0x22] + adds r0, r0, r1 + strh r0, [r5, #0x22] + b _08101C64 + .align 2, 0 +_08101C0C: .4byte 0x020380D7 +_08101C10: .4byte 0x020380BE +_08101C14: + ldr r4, _08101C34 + movs r2, #0xc + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _08101C38 + adds r0, r6, #0 + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + adds r0, r6, #0 + movs r1, #1 + b _08101C4A + .align 2, 0 +_08101C34: .4byte 0x020380BE +_08101C38: + adds r0, r6, #0 + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + adds r0, r6, #0 + movs r1, #3 +_08101C4A: + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r4, [r4, #2] + adds r0, r0, r4 + strh r0, [r5, #0x22] + ldr r0, _08101C84 + movs r2, #0 + ldrsh r1, [r0, r2] + adds r0, r5, #0 + bl SetAnimSpriteInitialXOffset +_08101C64: + ldr r1, _08101C84 + ldrh r0, [r1, #0xa] + strh r0, [r5, #0x2e] + ldrh r0, [r1, #6] + strh r0, [r5, #0x30] + ldrh r0, [r1, #8] + strh r0, [r5, #0x32] + ldr r1, _08101C88 + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _08101C8C + str r0, [r5, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08101C84: .4byte 0x020380BE +_08101C88: .4byte 0x080A34C5 +_08101C8C: .4byte 0x080A5E35 + thumb_func_end sub_08101BAC + + thumb_func_start sub_08101C90 +sub_08101C90: @ 0x08101C90 + push {r4, lr} + adds r4, r0, #0 + bl SetSpriteCoordsToAnimAttackerCoords + ldr r0, _08101CBC + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08101CC4 + ldr r0, _08101CC0 + ldrh r1, [r0] + ldrh r2, [r4, #0x20] + adds r1, r1, r2 + strh r1, [r4, #0x20] + ldrh r0, [r0, #2] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] + b _08101CDE + .align 2, 0 +_08101CBC: .4byte 0x020380D6 +_08101CC0: .4byte 0x020380BE +_08101CC4: + ldr r2, _08101CE8 + ldrh r0, [r4, #0x20] + ldrh r1, [r2] + subs r0, r0, r1 + strh r0, [r4, #0x20] + ldrh r0, [r2, #2] + ldrh r2, [r4, #0x22] + adds r0, r0, r2 + strh r0, [r4, #0x22] + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAnim +_08101CDE: + ldr r0, _08101CEC + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08101CE8: .4byte 0x020380BE +_08101CEC: .4byte 0x08101CF1 + thumb_func_end sub_08101C90 + + thumb_func_start sub_08101CF0 +sub_08101CF0: @ 0x08101CF0 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1e + ble _08101D28 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r0, #0x1e + subs r0, r0, r1 + movs r1, #3 + bl __divsi3 + strh r0, [r4, #0x26] + movs r1, #0x30 + ldrsh r0, [r4, r1] + lsls r0, r0, #0x12 + asrs r0, r0, #0x10 + movs r1, #3 + bl Sin + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] +_08101D28: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08101D3C + adds r0, r4, #0 + bl DestroyAnimSprite +_08101D3C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08101CF0 + + thumb_func_start sub_08101D44 +sub_08101D44: @ 0x08101D44 + push {r4, lr} + adds r4, r0, #0 + bl SetSpriteCoordsToAnimAttackerCoords + ldr r0, _08101D74 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08101D7C + ldr r1, _08101D78 + ldrh r0, [r1] + ldrh r2, [r4, #0x20] + adds r0, r0, r2 + strh r0, [r4, #0x20] + ldrh r0, [r1, #2] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] + movs r0, #1 + strh r0, [r4, #0x34] + b _08101D9A + .align 2, 0 +_08101D74: .4byte 0x020380D6 +_08101D78: .4byte 0x020380BE +_08101D7C: + ldr r2, _08101DA4 + ldrh r0, [r4, #0x20] + ldrh r1, [r2] + subs r0, r0, r1 + strh r0, [r4, #0x20] + ldrh r0, [r2, #2] + ldrh r2, [r4, #0x22] + adds r0, r0, r2 + strh r0, [r4, #0x22] + ldr r0, _08101DA8 + strh r0, [r4, #0x34] + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAffineAnim +_08101D9A: + ldr r0, _08101DAC + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08101DA4: .4byte 0x020380BE +_08101DA8: .4byte 0x0000FFFF +_08101DAC: .4byte 0x08101DB1 + thumb_func_end sub_08101D44 + + thumb_func_start sub_08101DB0 +sub_08101DB0: @ 0x08101DB0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r1, #0x28 + bl __divsi3 + rsbs r0, r0, #0 + 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, r0, #1 + ldrh r2, [r4, #0x36] + adds r0, r0, r2 + strh r0, [r4, #0x36] + ldrh r0, [r4, #0x30] + ldrh r2, [r4, #0x2e] + adds r1, r0, r2 + strh r1, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x3c + ble _08101DF4 + adds r0, r4, #0 + bl DestroySpriteAndMatrix +_08101DF4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08101DB0 + + thumb_func_start sub_08101DFC +sub_08101DFC: @ 0x08101DFC + 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, _08101E1C + str r1, [r0, #0x1c] + ldr r1, _08101E20 + bl StoreSpriteCallbackInData6 + pop {r0} + bx r0 + .align 2, 0 +_08101E1C: .4byte 0x080A5D79 +_08101E20: .4byte 0x08101E25 + thumb_func_end sub_08101DFC + + thumb_func_start sub_08101E24 +sub_08101E24: @ 0x08101E24 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrh r6, [r5, #0x38] + movs r1, #1 + adds r0, r1, #0 + ands r0, r6 + cmp r0, #0 + beq _08101E3A + cmp r0, #1 + beq _08101E54 + b _08101EBA +_08101E3A: + strh r1, [r5, #0x2e] + ldr r0, _08101E4C + str r0, [r5, #0x1c] + ldr r1, _08101E50 + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + b _08101EBA + .align 2, 0 +_08101E4C: .4byte 0x080A5D79 +_08101E50: .4byte 0x08101E25 +_08101E54: + ldrh r3, [r5, #0x24] + ldrh r0, [r5, #0x20] + adds r3, r3, r0 + movs r0, #0 + strh r3, [r5, #0x20] + ldrh r4, [r5, #0x26] + ldrh r1, [r5, #0x22] + adds r4, r4, r1 + strh r4, [r5, #0x22] + strh r0, [r5, #0x26] + strh r0, [r5, #0x24] + movs r0, #8 + strh r0, [r5, #0x2e] + ldr r2, _08101EC8 + lsls r0, r6, #0x10 + asrs r0, r0, #0x18 + lsls r0, r0, #1 + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r3, r3, r1 + strh r3, [r5, #0x32] + adds r2, #1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r4, r4, r0 + strh r4, [r5, #0x36] + ldr r0, _08101ECC + str r0, [r5, #0x1c] + ldr r1, _08101ED0 + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r1, [r5, #0x38] + adds r0, r0, r1 + strh r0, [r5, #0x38] + movs r0, #0x3f + bl BattleAnimAdjustPanning + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r0, #0xd2 + bl PlaySE12WithPanning +_08101EBA: + ldrh r0, [r5, #0x38] + movs r1, #1 + eors r0, r1 + strh r0, [r5, #0x38] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08101EC8: .4byte 0x0856E8B4 +_08101ECC: .4byte 0x080A67B5 +_08101ED0: .4byte 0x08101ED5 + thumb_func_end sub_08101E24 + + thumb_func_start sub_08101ED4 +sub_08101ED4: @ 0x08101ED4 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + cmp r0, #4 + bne _08101EFC + movs r0, #0xa + strh r0, [r2, #0x2e] + ldr r0, _08101EF4 + str r0, [r2, #0x1c] + ldr r1, _08101EF8 + adds r0, r2, #0 + bl StoreSpriteCallbackInData6 + b _08101F00 + .align 2, 0 +_08101EF4: .4byte 0x080A5D79 +_08101EF8: .4byte 0x08101F09 +_08101EFC: + ldr r0, _08101F04 + str r0, [r2, #0x1c] +_08101F00: + pop {r0} + bx r0 + .align 2, 0 +_08101F04: .4byte 0x08101E25 + thumb_func_end sub_08101ED4 + + thumb_func_start sub_08101F08 +sub_08101F08: @ 0x08101F08 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldrh r1, [r5, #6] + cmp r1, #0 + bne _08101F30 + movs r0, #3 + strh r0, [r5, #0x2e] + strh r1, [r5, #0x30] + strh r1, [r5, #0x32] + ldr r0, _08101F28 + str r0, [r5, #0x1c] + ldr r1, _08101F2C + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + b _08101FB0 + .align 2, 0 +_08101F28: .4byte 0x080A5D79 +_08101F2C: .4byte 0x08101FC5 +_08101F30: + ldrh r0, [r5, #6] + cmp r0, #2 + beq _08101F50 + cmp r0, #2 + bgt _08101F40 + cmp r0, #1 + beq _08101F46 + b _08101F64 +_08101F40: + cmp r0, #3 + beq _08101F58 + b _08101F64 +_08101F46: + ldr r6, _08101F4C + adds r7, r6, #0 + b _08101F68 + .align 2, 0 +_08101F4C: .4byte 0x0000FFF8 +_08101F50: + ldr r7, _08101F54 + b _08101F66 + .align 2, 0 +_08101F54: .4byte 0x0000FFF8 +_08101F58: + movs r7, #8 + ldr r6, _08101F60 + b _08101F68 + .align 2, 0 +_08101F60: .4byte 0x0000FFF8 +_08101F64: + movs r7, #8 +_08101F66: + movs r6, #8 +_08101F68: + ldrh r0, [r5, #0x24] + ldrh r1, [r5, #0x20] + adds r0, r0, r1 + movs r1, #0 + strh r0, [r5, #0x20] + ldrh r0, [r5, #0x26] + ldrh r2, [r5, #0x22] + adds r0, r0, r2 + strh r0, [r5, #0x22] + strh r1, [r5, #0x26] + strh r1, [r5, #0x24] + movs r0, #6 + strh r0, [r5, #0x2e] + ldr r4, _08101FB8 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r7 + strh r0, [r5, #0x32] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r6 + strh r0, [r5, #0x36] + ldr r0, _08101FBC + str r0, [r5, #0x1c] + ldr r1, _08101FC0 + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 +_08101FB0: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08101FB8: .4byte 0x020380D7 +_08101FBC: .4byte 0x080A67B5 +_08101FC0: .4byte 0x08102071 + thumb_func_end sub_08101F08 + + thumb_func_start sub_08101FC4 +sub_08101FC4: @ 0x08101FC4 + push {r4, lr} + sub sp, #0xc + adds r4, r0, #0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08101FE4 + ldrh r0, [r4, #0x30] + adds r0, #3 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x10 + ble _08101FF4 + movs r0, #0x10 + b _08101FF2 +_08101FE4: + ldrh r0, [r4, #0x30] + subs r0, #3 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _08101FF4 + movs r0, #0 +_08101FF2: + strh r0, [r4, #0x30] +_08101FF4: + movs r0, #1 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r2, #1 + movs r3, #1 + bl sub_080A6E74 + ldrh r1, [r4, #0x30] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _08102050 + bl BlendPalettes + movs r3, #0x30 + ldrsh r0, [r4, r3] + cmp r0, #0x10 + bne _0810205C + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + ldrb r1, [r4, #5] + lsrs r1, r1, #4 + lsls r0, r1, #5 + ldr r2, _08102054 + adds r0, r0, r2 + lsls r1, r1, #4 + ldr r3, _08102058 + adds r2, r3, #0 + orrs r1, r2 + movs r2, #4 + bl LoadPalette + movs r0, #0x3f + bl BattleAnimAdjustPanning + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r0, #0xc0 + bl PlaySE12WithPanning + b _08102064 + .align 2, 0 +_08102050: .4byte 0x00007FFF +_08102054: .4byte 0x020375C4 +_08102058: .4byte 0x00000101 +_0810205C: + cmp r0, #0 + bne _08102064 + ldr r0, _0810206C + str r0, [r4, #0x1c] +_08102064: + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810206C: .4byte 0x08102071 + thumb_func_end sub_08101FC4 + + thumb_func_start sub_08102070 +sub_08102070: @ 0x08102070 + push {lr} + adds r2, r0, #0 + ldr r0, _0810208C + ldrh r1, [r0, #0xe] + ldr r0, _08102090 + cmp r1, r0 + bne _08102088 + movs r0, #0 + strh r0, [r2, #0x30] + strh r0, [r2, #0x2e] + ldr r0, _08102094 + str r0, [r2, #0x1c] +_08102088: + pop {r0} + bx r0 + .align 2, 0 +_0810208C: .4byte 0x020380BE +_08102090: .4byte 0x0000FFFF +_08102094: .4byte 0x08102099 + thumb_func_end sub_08102070 + + thumb_func_start sub_08102098 +sub_08102098: @ 0x08102098 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r1, #3 + bl __modsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _081020CC + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + adds r3, r4, #0 + adds r3, #0x3e + ldrb r2, [r3] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_081020CC: + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + movs r1, #0x30 + ldrsh r0, [r4, r1] + cmp r0, #8 + bne _081020E0 + adds r0, r4, #0 + bl DestroyAnimSprite +_081020E0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08102098 + + thumb_func_start sub_081020E8 +sub_081020E8: @ 0x081020E8 + push {r4, lr} + adds r3, r0, #0 + ldr r0, _08102108 + ldrh r0, [r0] + strh r0, [r3, #6] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + bne _0810210C + ldrh r0, [r3, #0x20] + subs r0, #0x18 + strh r0, [r3, #0x20] + ldrh r0, [r3, #0x22] + subs r0, #0x18 + strh r0, [r3, #0x22] + b _0810215E + .align 2, 0 +_08102108: .4byte 0x020380BE +_0810210C: + cmp r0, #2 + bne _08102128 + 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, #3] + movs r0, #0x3f + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x20 + b _0810215A +_08102128: + cmp r0, #3 + bne _08102144 + 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, #3] + movs r0, #0x3f + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + b _0810215A +_08102144: + 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, #3] + movs r0, #0x3f + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x30 +_0810215A: + orrs r0, r1 + strb r0, [r3, #3] +_0810215E: + ldrh r2, [r3, #4] + lsls r1, r2, #0x16 + lsrs r1, r1, #0x16 + adds r1, #0x10 + ldr r4, _08102184 + adds r0, r4, #0 + ands r1, r0 + ldr r0, _08102188 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #4] + ldr r1, _0810218C + str r1, [r3, #0x1c] + adds r0, r3, #0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08102184: .4byte 0x000003FF +_08102188: .4byte 0xFFFFFC00 +_0810218C: .4byte 0x08101DFD + thumb_func_end sub_081020E8 + + thumb_func_start sub_08102190 +sub_08102190: @ 0x08102190 + push {lr} + adds r3, r0, #0 + adds r2, r3, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + movs r0, #0 + strh r0, [r3, #0x2e] + ldr r0, _081021B8 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #1 + beq _081021CC + cmp r0, #1 + bgt _081021BC + cmp r0, #0 + beq _081021C2 + b _081021DC + .align 2, 0 +_081021B8: .4byte 0x020380BE +_081021BC: + cmp r0, #2 + beq _081021D4 + b _081021DC +_081021C2: + ldr r0, _081021C8 + b _081021DE + .align 2, 0 +_081021C8: .4byte 0x081021E9 +_081021CC: + ldr r0, _081021D0 + b _081021DE + .align 2, 0 +_081021D0: .4byte 0x081022C5 +_081021D4: + ldr r0, _081021D8 + b _081021DE + .align 2, 0 +_081021D8: .4byte 0x08102315 +_081021DC: + ldr r0, _081021E4 +_081021DE: + str r0, [r3, #0x1c] + pop {r0} + bx r0 + .align 2, 0 +_081021E4: .4byte 0x081023D5 + thumb_func_end sub_08102190 + + thumb_func_start sub_081021E8 +sub_081021E8: @ 0x081021E8 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #6 + strh r0, [r4, #0x2e] + ldr r5, _08102228 + ldrb r0, [r5] + bl GetBattlerSide + lsls r0, r0, #0x18 + movs r2, #2 + rsbs r2, r2, #0 + adds r1, r2, #0 + cmp r0, #0 + beq _08102206 + movs r1, #2 +_08102206: + strh r1, [r4, #0x30] + movs r0, #0 + strh r0, [r4, #0x32] + ldr r1, _0810222C + ldrb r0, [r5] + adds r0, r0, r1 + ldrb r0, [r0] + strh r0, [r4, #0x34] + ldr r1, _08102230 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _08102234 + str r0, [r4, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08102228: .4byte 0x020380D6 +_0810222C: .4byte 0x02023E88 +_08102230: .4byte 0x08102239 +_08102234: .4byte 0x080A5EF9 + thumb_func_end sub_081021E8 + + thumb_func_start sub_08102238 +sub_08102238: @ 0x08102238 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #0x2e + ldrsh r6, [r5, r0] + cmp r6, #0 + bne _08102274 + ldr r1, _081022B4 + ldr r4, _081022B8 + ldrb r0, [r4] + adds r0, r0, r1 + ldrb r0, [r0] + strh r0, [r5, #0x34] + movs r1, #0 + bl PrepareBattlerSpriteForRotScale + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x3a] + ldr r2, _081022BC + adds r1, r2, #0 + cmp r0, #0 + beq _08102270 + movs r0, #0xc0 + lsls r0, r0, #2 + adds r1, r0, #0 +_08102270: + strh r1, [r5, #0x36] + strh r6, [r5, #0x38] +_08102274: + ldrh r0, [r5, #0x36] + ldrh r1, [r5, #0x38] + adds r0, r0, r1 + strh r0, [r5, #0x38] + ldrh r0, [r5, #0x34] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0x80 + lsls r2, r2, #1 + ldrh r3, [r5, #0x38] + adds r1, r2, #0 + bl SetSpriteRotScale + ldrh r0, [r5, #0x34] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl SetBattlerSpriteYOffsetFromRotation + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + ble _081022AE + movs r0, #0 + strh r0, [r5, #0x2e] + ldr r0, _081022C0 + str r0, [r5, #0x1c] +_081022AE: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081022B4: .4byte 0x02023E88 +_081022B8: .4byte 0x020380D6 +_081022BC: .4byte 0xFFFFFD00 +_081022C0: .4byte 0x081023D5 + thumb_func_end sub_08102238 + + thumb_func_start sub_081022C4 +sub_081022C4: @ 0x081022C4 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #4 + strh r0, [r4, #0x2e] + ldr r5, _08102304 + ldrb r0, [r5] + bl GetBattlerSide + lsls r0, r0, #0x18 + movs r1, #3 + cmp r0, #0 + beq _081022E2 + movs r0, #3 + rsbs r0, r0, #0 + adds r1, r0, #0 +_081022E2: + strh r1, [r4, #0x30] + movs r0, #0 + strh r0, [r4, #0x32] + ldr r1, _08102308 + ldrb r0, [r5] + adds r0, r0, r1 + ldrb r0, [r0] + strh r0, [r4, #0x34] + ldr r1, _0810230C + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _08102310 + str r0, [r4, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08102304: .4byte 0x020380D6 +_08102308: .4byte 0x02023E88 +_0810230C: .4byte 0x081023D5 +_08102310: .4byte 0x080A5EF9 + thumb_func_end sub_081022C4 + + thumb_func_start sub_08102314 +sub_08102314: @ 0x08102314 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0x2e] + adds r0, #1 + strh r0, [r1, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #8 + ble _0810232E + movs r0, #0 + strh r0, [r1, #0x2e] + ldr r0, _08102334 + str r0, [r1, #0x1c] +_0810232E: + pop {r0} + bx r0 + .align 2, 0 +_08102334: .4byte 0x08102339 + thumb_func_end sub_08102314 + + thumb_func_start sub_08102338 +sub_08102338: @ 0x08102338 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _08102388 + ldr r1, _08102374 + ldr r4, _08102378 + ldrb r0, [r4] + adds r0, r0, r1 + ldrb r0, [r0] + strh r0, [r5, #0x34] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x3a] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810237C + movs r0, #0xfc + lsls r0, r0, #8 + strh r0, [r5, #0x36] + movs r0, #0xc0 + lsls r0, r0, #4 + b _08102386 + .align 2, 0 +_08102374: .4byte 0x02023E88 +_08102378: .4byte 0x020380D6 +_0810237C: + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r5, #0x36] + movs r0, #0xf4 + lsls r0, r0, #8 +_08102386: + strh r0, [r5, #0x38] +_08102388: + ldrh r0, [r5, #0x36] + ldrh r1, [r5, #0x38] + adds r0, r0, r1 + strh r0, [r5, #0x38] + ldrh r0, [r5, #0x34] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0x80 + lsls r2, r2, #1 + ldrh r3, [r5, #0x38] + adds r1, r2, #0 + bl SetSpriteRotScale + ldrh r0, [r5, #0x34] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl SetBattlerSpriteYOffsetFromRotation + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + ble _081023C8 + ldrh r0, [r5, #0x34] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl ResetSpriteRotScale + ldr r0, _081023D0 + str r0, [r5, #0x1c] +_081023C8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081023D0: .4byte 0x081023D5 + thumb_func_end sub_08102338 + + thumb_func_start sub_081023D4 +sub_081023D4: @ 0x081023D4 + push {lr} + bl DestroyAnimSprite + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081023D4 + + thumb_func_start sub_081023E0 +sub_081023E0: @ 0x081023E0 + movs r1, #0 + strh r1, [r0, #0x2e] + ldr r1, _081023EC + str r1, [r0, #0x1c] + bx lr + .align 2, 0 +_081023EC: .4byte 0x081023F1 + thumb_func_end sub_081023E0 + + thumb_func_start sub_081023F0 +sub_081023F0: @ 0x081023F0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r5, [r4, r0] + cmp r5, #1 + beq _0810244A + cmp r5, #1 + bgt _08102406 + cmp r5, #0 + beq _0810240C + b _081024DE +_08102406: + cmp r5, #2 + beq _0810249C + b _081024DE +_0810240C: + strh r5, [r4, #0x30] + ldr r1, _08102490 + ldr r2, _08102494 + ldrb r0, [r2] + adds r0, r0, r1 + ldrb r0, [r0] + strh r0, [r4, #0x32] + ldrb r0, [r2] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x34] + ldr r2, _08102498 + adds r1, r2, #0 + cmp r0, #0 + beq _08102434 + movs r0, #0x80 + lsls r0, r0, #2 + adds r1, r0, #0 +_08102434: + strh r1, [r4, #0x36] + strh r5, [r4, #0x38] + ldrh r0, [r4, #0x32] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl PrepareBattlerSpriteForRotScale + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] +_0810244A: + ldrh r0, [r4, #0x36] + ldrh r1, [r4, #0x38] + adds r0, r0, r1 + strh r0, [r4, #0x38] + ldrh r0, [r4, #0x32] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0x80 + lsls r2, r2, #1 + ldrh r3, [r4, #0x38] + adds r1, r2, #0 + bl SetSpriteRotScale + ldrh r0, [r4, #0x32] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl SetBattlerSpriteYOffsetFromRotation + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + ble _081024DE + movs r0, #0 + strh r0, [r4, #0x30] + movs r2, #0x36 + ldrsh r0, [r4, r2] + rsbs r0, r0, #0 + strh r0, [r4, #0x36] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + b _081024DE + .align 2, 0 +_08102490: .4byte 0x02023E88 +_08102494: .4byte 0x020380D6 +_08102498: .4byte 0xFFFFFE00 +_0810249C: + ldrh r0, [r4, #0x36] + ldrh r1, [r4, #0x38] + adds r0, r0, r1 + strh r0, [r4, #0x38] + ldrh r0, [r4, #0x32] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0x80 + lsls r2, r2, #1 + ldrh r3, [r4, #0x38] + adds r1, r2, #0 + bl SetSpriteRotScale + ldrh r0, [r4, #0x32] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl SetBattlerSpriteYOffsetFromRotation + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + ble _081024DE + ldrh r0, [r4, #0x32] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl ResetSpriteRotScale + adds r0, r4, #0 + bl DestroyAnimSprite +_081024DE: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_081023F0 + + thumb_func_start sub_081024E4 +sub_081024E4: @ 0x081024E4 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _08102528 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r5, r0, r1 + ldr r1, _0810252C + ldr r2, _08102530 + ldrb r0, [r2] + adds r0, r0, r1 + ldrb r0, [r0] + movs r4, #0 + strh r0, [r5, #8] + ldrb r0, [r2] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + strh r2, [r5, #0xa] + strh r4, [r5, #0xc] + ldr r0, _08102534 + movs r3, #0 + ldrsh r1, [r0, r3] + cmp r1, #0 + beq _08102538 + cmp r1, #1 + beq _08102554 + adds r0, r6, #0 + bl DestroyAnimVisualTask + b _08102572 + .align 2, 0 +_08102528: .4byte 0x03005B60 +_0810252C: .4byte 0x02023E88 +_08102530: .4byte 0x020380D6 +_08102534: .4byte 0x020380BE +_08102538: + strh r1, [r5, #0xc] + movs r0, #8 + strh r0, [r5, #0xe] + strh r1, [r5, #0x10] + movs r0, #3 + strh r0, [r5, #0x12] + cmp r2, #0 + bne _0810254C + rsbs r0, r0, #0 + strh r0, [r5, #0x12] +_0810254C: + ldr r0, _08102550 + b _08102570 + .align 2, 0 +_08102550: .4byte 0x0810257D +_08102554: + movs r0, #8 + strh r0, [r5, #0xe] + movs r0, #0xc0 + lsls r0, r0, #3 + strh r0, [r5, #0x10] + movs r1, #0xc0 + strh r1, [r5, #0x12] + cmp r2, #0 + bne _0810256E + rsbs r0, r0, #0 + strh r0, [r5, #0x10] + rsbs r0, r1, #0 + strh r0, [r5, #0x12] +_0810256E: + ldr r0, _08102578 +_08102570: + str r0, [r5] +_08102572: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08102578: .4byte 0x0810273D + thumb_func_end sub_081024E4 + + thumb_func_start sub_0810257C +sub_0810257C: @ 0x0810257C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _081025A0 + adds r4, r0, r1 + movs r1, #0xc + ldrsh r0, [r4, r1] + cmp r0, #4 + bls _08102596 + b _08102736 +_08102596: + lsls r0, r0, #2 + ldr r1, _081025A4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081025A0: .4byte 0x03005B60 +_081025A4: .4byte 0x081025A8 +_081025A8: @ jump table + .4byte _081025BC @ case 0 + .4byte _081025EE @ case 1 + .4byte _08102648 @ case 2 + .4byte _081026C0 @ case 3 + .4byte _08102704 @ case 4 +_081025BC: + movs r2, #0xe + ldrsh r1, [r4, r2] + cmp r1, #0 + beq _081025CC + ldrh r2, [r4, #0x12] + ldrh r3, [r4, #0x10] + adds r2, r2, r3 + b _08102712 +_081025CC: + movs r0, #8 + strh r0, [r4, #0xe] + strh r1, [r4, #0x10] + movs r1, #0xa + ldrsh r0, [r4, r1] + movs r1, #0xc0 + cmp r0, #0 + bne _081025E2 + movs r2, #0xc0 + rsbs r2, r2, #0 + adds r1, r2, #0 +_081025E2: + strh r1, [r4, #0x12] + ldrb r0, [r4, #8] + movs r1, #0 + bl PrepareBattlerSpriteForRotScale + b _081026F8 +_081025EE: + movs r3, #0xe + ldrsh r0, [r4, r3] + cmp r0, #0 + beq _08102614 + ldrh r0, [r4, #0x12] + ldrh r1, [r4, #0x10] + adds r0, r0, r1 + strh r0, [r4, #0x10] + ldrb r0, [r4, #8] + movs r2, #0x80 + lsls r2, r2, #1 + ldrh r3, [r4, #0x10] + adds r1, r2, #0 + bl SetSpriteRotScale + ldrb r0, [r4, #8] + bl SetBattlerSpriteYOffsetFromRotation + b _08102724 +_08102614: + movs r0, #8 + strh r0, [r4, #0xe] + ldr r2, _08102644 + movs r3, #8 + ldrsh r1, [r4, r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0, #0x24] + strh r0, [r4, #0x10] + movs r1, #0xa + ldrsh r0, [r4, r1] + movs r2, #2 + rsbs r2, r2, #0 + adds r1, r2, #0 + cmp r0, #0 + bne _0810263A + movs r1, #2 +_0810263A: + strh r1, [r4, #0x12] + movs r0, #1 + strh r0, [r4, #0x14] + b _081026F8 + .align 2, 0 +_08102644: .4byte 0x020205AC +_08102648: + ldrh r2, [r4, #0xe] + movs r3, #0xe + ldrsh r0, [r4, r3] + cmp r0, #0 + beq _081026A4 + ldrh r1, [r4, #0x14] + movs r3, #0x14 + ldrsh r0, [r4, r3] + cmp r0, #0 + beq _08102662 + subs r0, r1, #1 + strh r0, [r4, #0x14] + b _08102736 +_08102662: + movs r0, #1 + ands r0, r2 + cmp r0, #0 + beq _08102684 + ldr r2, _08102680 + movs r0, #8 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r4, #0x12] + ldrh r2, [r4, #0x10] + adds r1, r1, r2 + b _08102698 + .align 2, 0 +_08102680: .4byte 0x020205AC +_08102684: + ldr r2, _081026A0 + movs r3, #8 + ldrsh r1, [r4, r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r4, #0x10] + ldrh r2, [r4, #0x12] + subs r1, r1, r2 +_08102698: + strh r1, [r0, #0x24] + movs r0, #1 + strh r0, [r4, #0x14] + b _08102724 + .align 2, 0 +_081026A0: .4byte 0x020205AC +_081026A4: + ldr r2, _081026BC + movs r0, #8 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r4, #0x10] + strh r1, [r0, #0x24] + movs r0, #0xc + strh r0, [r4, #0xe] + b _081026F8 + .align 2, 0 +_081026BC: .4byte 0x020205AC +_081026C0: + ldrh r1, [r4, #0xe] + movs r2, #0xe + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _081026D0 + subs r0, r1, #1 + strh r0, [r4, #0xe] + b _08102736 +_081026D0: + movs r0, #3 + strh r0, [r4, #0xe] + ldr r2, _08102700 + movs r3, #8 + ldrsh r1, [r4, r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0, #0x24] + strh r0, [r4, #0x10] + movs r1, #0xa + ldrsh r0, [r4, r1] + movs r2, #8 + rsbs r2, r2, #0 + adds r1, r2, #0 + cmp r0, #0 + bne _081026F6 + movs r1, #8 +_081026F6: + strh r1, [r4, #0x12] +_081026F8: + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + b _08102736 + .align 2, 0 +_08102700: .4byte 0x020205AC +_08102704: + movs r3, #0xe + ldrsh r0, [r4, r3] + cmp r0, #0 + beq _08102730 + ldrh r2, [r4, #0x12] + ldrh r0, [r4, #0x10] + adds r2, r2, r0 +_08102712: + strh r2, [r4, #0x10] + ldr r3, _0810272C + movs r0, #8 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r2, [r0, #0x24] +_08102724: + ldrh r0, [r4, #0xe] + subs r0, #1 + strh r0, [r4, #0xe] + b _08102736 + .align 2, 0 +_0810272C: .4byte 0x020205AC +_08102730: + adds r0, r2, #0 + bl DestroyAnimVisualTask +_08102736: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0810257C + + thumb_func_start sub_0810273C +sub_0810273C: @ 0x0810273C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _08102778 + adds r4, r0, r1 + movs r1, #0xe + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0810277C + ldrh r0, [r4, #0x10] + ldrh r1, [r4, #0x12] + subs r0, r0, r1 + strh r0, [r4, #0x10] + ldrb r0, [r4, #8] + movs r2, #0x80 + lsls r2, r2, #1 + ldrh r3, [r4, #0x10] + adds r1, r2, #0 + bl SetSpriteRotScale + ldrb r0, [r4, #8] + bl SetBattlerSpriteYOffsetFromRotation + ldrh r0, [r4, #0xe] + subs r0, #1 + strh r0, [r4, #0xe] + b _08102788 + .align 2, 0 +_08102778: .4byte 0x03005B60 +_0810277C: + ldrb r0, [r4, #8] + bl ResetSpriteRotScale + adds r0, r5, #0 + bl DestroyAnimVisualTask +_08102788: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0810273C + + thumb_func_start sub_08102790 +sub_08102790: @ 0x08102790 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, _081027A4 + movs r1, #0 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _081027AC + ldr r4, _081027A8 + b _081027AE + .align 2, 0 +_081027A4: .4byte 0x020380BE +_081027A8: .4byte 0x020380D6 +_081027AC: + ldr r4, _081027EC +_081027AE: + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r6, #2] + adds r0, r0, r1 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r6, [r6, #4] + adds r0, r0, r6 + strh r0, [r5, #0x22] + movs r0, #0 + strh r0, [r5, #0x2e] + strh r0, [r5, #0x30] + ldr r1, _081027F0 + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _081027F4 + str r0, [r5, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081027EC: .4byte 0x020380D7 +_081027F0: .4byte 0x081028DD +_081027F4: .4byte 0x080A60A1 + thumb_func_end sub_08102790 + + thumb_func_start sub_081027F8 +sub_081027F8: @ 0x081027F8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08102830 + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08102834 + adds r0, r0, r1 + strh r0, [r4, #0x20] + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x22] + ldr r1, _08102838 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _0810283C + str r0, [r4, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08102830: .4byte 0x020380D7 +_08102834: .4byte 0x0000FFD0 +_08102838: .4byte 0x08102895 +_0810283C: .4byte 0x080A60A1 + thumb_func_end sub_081027F8 + + thumb_func_start sub_08102840 +sub_08102840: @ 0x08102840 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r5, _08102884 + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08102888 + ldr r2, _0810288C + adds r0, r0, r2 + ldrh r1, [r1] + adds r0, r0, r1 + movs r6, #0 + strh r0, [r4, #0x20] + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x22] + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAnim + strh r6, [r4, #0x2e] + strh r6, [r4, #0x30] + ldr r0, _08102890 + str r0, [r4, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08102884: .4byte 0x020380D7 +_08102888: .4byte 0x020380BE +_0810288C: .4byte 0x0000FFD0 +_08102890: .4byte 0x081028DD + thumb_func_end sub_08102840 + + thumb_func_start sub_08102894 +sub_08102894: @ 0x08102894 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #8 + ble _081028BE + movs r0, #0xc + strh r0, [r4, #0x2e] + movs r0, #8 + strh r0, [r4, #0x30] + movs r0, #0 + strh r0, [r4, #0x32] + ldr r1, _081028C4 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _081028C8 + str r0, [r4, #0x1c] +_081028BE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081028C4: .4byte 0x081028CD +_081028C8: .4byte 0x080A5E05 + thumb_func_end sub_08102894 + + thumb_func_start sub_081028CC +sub_081028CC: @ 0x081028CC + movs r1, #0 + strh r1, [r0, #0x2e] + strh r1, [r0, #0x30] + ldr r1, _081028D8 + str r1, [r0, #0x1c] + bx lr + .align 2, 0 +_081028D8: .4byte 0x081028DD + thumb_func_end sub_081028CC + + thumb_func_start sub_081028DC +sub_081028DC: @ 0x081028DC + push {lr} + adds r3, r0, #0 + ldrh r0, [r3, #0x2e] + adds r0, #1 + strh r0, [r3, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _08102924 + movs r0, #0 + strh r0, [r3, #0x2e] + movs r0, #0x3e + adds r0, r0, r3 + mov ip, r0 + ldrb r2, [r0] + lsrs r1, r2, #2 + movs r0, #1 + eors r1, r0 + ands r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrh r0, [r3, #0x30] + adds r0, #1 + strh r0, [r3, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #8 + ble _08102924 + adds r0, r3, #0 + bl DestroyAnimSprite +_08102924: + pop {r0} + bx r0 + thumb_func_end sub_081028DC + + thumb_func_start sub_08102928 +sub_08102928: @ 0x08102928 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, _0810293C + movs r1, #0 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _08102944 + ldr r4, _08102940 + b _08102946 + .align 2, 0 +_0810293C: .4byte 0x020380BE +_08102940: .4byte 0x020380D6 +_08102944: + ldr r4, _08102980 +_08102946: + ldrb r0, [r4] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r6, #2] + adds r0, r0, r1 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r6, [r6, #4] + adds r0, r0, r6 + strh r0, [r5, #0x22] + movs r0, #0 + strh r0, [r5, #0x2e] + ldr r0, _08102984 + ldrh r0, [r0, #6] + strh r0, [r5, #0x30] + ldr r0, _08102988 + str r0, [r5, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08102980: .4byte 0x020380D7 +_08102984: .4byte 0x020380BE +_08102988: .4byte 0x0810298D + thumb_func_end sub_08102928 + + thumb_func_start sub_0810298C +sub_0810298C: @ 0x0810298C + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x2e] + adds r0, #1 + strh r0, [r2, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r3, #0x30 + ldrsh r1, [r2, r3] + cmp r0, r1 + ble _081029AC + movs r0, #0 + strh r0, [r2, #0x2e] + ldrh r0, [r2, #0x22] + subs r0, #1 + strh r0, [r2, #0x22] +_081029AC: + ldrh r0, [r2, #0x22] + ldrh r1, [r2, #0x2e] + subs r0, 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 _081029C8 + adds r0, r2, #0 + bl DestroyAnimSprite +_081029C8: + pop {r0} + bx r0 + thumb_func_end sub_0810298C + + thumb_func_start sub_081029CC +sub_081029CC: @ 0x081029CC + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r6, _08102A14 + ldrb r0, [r6] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r5, #0 + strh r0, [r4, #0x20] + ldrb r0, [r6] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, #0xc + strh r0, [r4, #0x22] + strh r5, [r4, #0x2e] + movs r0, #2 + strh r0, [r4, #0x30] + strh r5, [r4, #0x32] + strh r5, [r4, #0x34] + strh r5, [r4, #0x36] + subs r0, #0x42 + bl BattleAnimAdjustPanning + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r4, #0x38] + ldr r0, _08102A18 + str r0, [r4, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08102A14: .4byte 0x020380D6 +_08102A18: .4byte 0x08102A1D + thumb_func_end sub_081029CC + + thumb_func_start sub_08102A1C +sub_08102A1C: @ 0x08102A1C + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x30 + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _08102A88 + adds r3, r4, #0 + adds r3, #0x3e + ldrb r2, [r3] + lsrs r1, r2, #2 + movs r0, #1 + eors r1, r0 + ands r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + movs r1, #4 + ands r0, r1 + cmp r0, #0 + bne _08102A6E + ldrh r0, [r4, #0x36] + adds r0, #1 + strh r0, [r4, #0x36] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08102A6E + ldrh r1, [r4, #0x38] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r0, #0xc2 + bl PlaySE12WithPanning +_08102A6E: + movs r1, #0 + strh r1, [r4, #0x2e] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _08102A88 + strh r1, [r4, #0x32] + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] +_08102A88: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08102AB2 + movs r1, #0x30 + ldrsh r0, [r4, r1] + cmp r0, #0x10 + ble _08102AB2 + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08102AB2 + adds r0, r4, #0 + bl DestroyAnimSprite +_08102AB2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08102A1C + + thumb_func_start sub_08102AB8 +sub_08102AB8: @ 0x08102AB8 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r1, #0x2e + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _08102B02 + ldr r4, _08102B18 + ldrb r0, [r4] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + ldr r5, _08102B1C + lsrs r0, r0, #0x18 + ldrh r1, [r5] + adds r0, r0, r1 + strh r0, [r6, #0x20] + ldrb r0, [r4] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r5, [r5, #2] + adds r0, r0, r5 + strh r0, [r6, #0x22] + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08102AFC + ldrh r0, [r6, #0x22] + adds r0, #0xa + strh r0, [r6, #0x22] +_08102AFC: + ldrh r0, [r6, #0x2e] + adds r0, #1 + strh r0, [r6, #0x2e] +_08102B02: + ldr r0, _08102B1C + ldrh r1, [r0, #0xe] + ldr r0, _08102B20 + cmp r1, r0 + bne _08102B12 + adds r0, r6, #0 + bl DestroyAnimSprite +_08102B12: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08102B18: .4byte 0x020380D6 +_08102B1C: .4byte 0x020380BE +_08102B20: .4byte 0x0000FFFF + thumb_func_end sub_08102AB8 + + thumb_func_start sub_08102B24 +sub_08102B24: @ 0x08102B24 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _08102B44 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #0xc + ldrsh r0, [r4, r1] + cmp r0, #1 + bne _08102B50 + ldr r1, _08102B48 + ldr r0, _08102B4C + strh r0, [r1, #0xe] + b _08102B8E + .align 2, 0 +_08102B44: .4byte 0x03005B60 +_08102B48: .4byte 0x020380BE +_08102B4C: .4byte 0x0000FFFF +_08102B50: + cmp r0, #2 + bne _08102B5C + adds r0, r2, #0 + bl DestroyAnimVisualTask + b _08102B94 +_08102B5C: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + bne _08102B94 + movs r0, #0 + strh r0, [r4, #8] + ldrh r2, [r4, #0xa] + adds r2, #1 + strh r2, [r4, #0xa] + lsls r1, r2, #8 + movs r0, #0x10 + subs r0, r0, r2 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0x10 + bne _08102B94 +_08102B8E: + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] +_08102B94: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08102B24 + + thumb_func_start sub_08102B9C +sub_08102B9C: @ 0x08102B9C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl InitSpritePosToAnimTarget + adds r2, r4, #0 + adds r2, #0x2c + ldrb r0, [r2] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08102BC4 + ldrh r0, [r0, #4] + strh r0, [r4, #0x2e] + ldr r0, _08102BC8 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08102BC4: .4byte 0x020380BE +_08102BC8: .4byte 0x08102BCD + thumb_func_end sub_08102B9C + + thumb_func_start sub_08102BCC +sub_08102BCC: @ 0x08102BCC + push {r4, r5, lr} + adds r5, r0, #0 + ldrh r1, [r5, #0x2e] + movs r2, #0x2e + ldrsh r0, [r5, r2] + cmp r0, #0 + beq _08102BE0 + subs r0, r1, #1 + strh r0, [r5, #0x2e] + b _08102C1C +_08102BE0: + adds r2, r5, #0 + adds r2, #0x2c + ldrb r1, [r2] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + movs r0, #0x1e + strh r0, [r5, #0x2e] + ldr r4, _08102C24 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x32] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x36] + ldr r0, _08102C28 + str r0, [r5, #0x1c] + ldr r1, _08102C2C + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 +_08102C1C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08102C24: .4byte 0x020380D6 +_08102C28: .4byte 0x080A67B5 +_08102C2C: .4byte 0x080A34C5 + thumb_func_end sub_08102BCC + + thumb_func_start sub_08102C30 +sub_08102C30: @ 0x08102C30 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _08102C80 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + bne _08102C78 + movs r0, #0 + strh r0, [r4, #8] + ldrh r1, [r4, #0xa] + adds r1, #1 + strh r1, [r4, #0xa] + movs r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0x10 + bne _08102C78 + adds r0, r5, #0 + bl DestroyAnimVisualTask +_08102C78: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08102C80: .4byte 0x03005B60 + thumb_func_end sub_08102C30 + + thumb_func_start unref_sub_8102434 +unref_sub_8102434: @ 0x08102C84 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r4, #0 + ldr r0, _08102CEC + ldrb r0, [r0] + cmp r4, r0 + bhs _08102CE0 + ldr r6, _08102CF0 + ldr r5, _08102CF4 +_08102C98: + movs r1, #0 + ldrsh r0, [r6, r1] + cmp r0, #1 + bne _08102CB4 + adds r0, r4, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08102CB4 + adds r0, r4, r5 + ldrb r0, [r0] + bl SetHealthboxSpriteInvisible +_08102CB4: + movs r1, #2 + ldrsh r0, [r6, r1] + cmp r0, #1 + bne _08102CD2 + adds r0, r4, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08102CD2 + adds r0, r4, r5 + ldrb r0, [r0] + bl SetHealthboxSpriteInvisible +_08102CD2: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _08102CEC + ldrb r0, [r0] + cmp r4, r0 + blo _08102C98 +_08102CE0: + adds r0, r7, #0 + bl DestroyAnimVisualTask + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08102CEC: .4byte 0x02023D10 +_08102CF0: .4byte 0x020380BE +_08102CF4: .4byte 0x03005AD0 + thumb_func_end unref_sub_8102434 + + thumb_func_start unref_sub_81024A8 +unref_sub_81024A8: @ 0x08102CF8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r4, #0 + b _08102D12 +_08102D02: + ldr r0, _08102D28 + adds r0, r4, r0 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_08102D12: + ldr r0, _08102D2C + ldrb r0, [r0] + cmp r4, r0 + blo _08102D02 + adds r0, r5, #0 + bl DestroyAnimVisualTask + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08102D28: .4byte 0x03005AD0 +_08102D2C: .4byte 0x02023D10 + thumb_func_end unref_sub_81024A8 + + thumb_func_start sub_08102D30 +sub_08102D30: @ 0x08102D30 + push {r4, lr} + adds r4, r0, #0 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08102D46 + movs r0, #0x30 + strh r0, [r4, #0x20] + movs r0, #0x28 + b _08102D4E +_08102D46: + ldr r0, _08102D70 + ldrh r1, [r0] + strh r1, [r4, #0x20] + ldrh r0, [r0, #2] +_08102D4E: + strh r0, [r4, #0x22] + ldrb r1, [r4, #1] + movs r0, #0x3f + ands r0, r1 + strb r0, [r4, #1] + ldrb r0, [r4, #3] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #3] + movs r0, #0 + strh r0, [r4, #0x2e] + ldr r0, _08102D74 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08102D70: .4byte 0x020380BE +_08102D74: .4byte 0x08102D79 + thumb_func_end sub_08102D30 + + thumb_func_start sub_08102D78 +sub_08102D78: @ 0x08102D78 + push {lr} + adds r1, r0, #0 + movs r2, #0x2e + ldrsh r0, [r1, r2] + cmp r0, #0 + beq _08102D8A + adds r0, r1, #0 + bl DestroyAnimSprite +_08102D8A: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08102D78 + + thumb_func_start sub_08102D90 +sub_08102D90: @ 0x08102D90 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08102DC8 + ldrb r0, [r0] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + ldr r2, _08102DCC + lsrs r0, r0, #0x18 + ldrh r1, [r2] + adds r0, r0, r1 + movs r1, #0 + strh r0, [r4, #0x20] + ldrh r0, [r2, #2] + strh r0, [r4, #0x22] + strh r1, [r4, #0x2e] + strh r1, [r4, #0x30] + strh r1, [r4, #0x32] + strh r1, [r4, #0x34] + movs r0, #1 + strh r0, [r4, #0x36] + ldr r0, _08102DD0 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08102DC8: .4byte 0x020380D6 +_08102DCC: .4byte 0x020380BE +_08102DD0: .4byte 0x08102DD5 + thumb_func_end sub_08102D90 + + thumb_func_start sub_08102DD4 +sub_08102DD4: @ 0x08102DD4 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0x30] + adds r0, #1 + strh r0, [r1, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _08102DFE + movs r0, #0 + strh r0, [r1, #0x30] + ldrh r2, [r1, #0x32] + movs r3, #0x32 + ldrsh r0, [r1, r3] + cmp r0, #0x77 + bgt _08102DFE + ldrh r0, [r1, #0x22] + adds r0, #1 + strh r0, [r1, #0x22] + adds r0, r2, #1 + strh r0, [r1, #0x32] +_08102DFE: + movs r2, #0x2e + ldrsh r0, [r1, r2] + cmp r0, #0 + beq _08102E0C + adds r0, r1, #0 + bl DestroyAnimSprite +_08102E0C: + pop {r0} + bx r0 + thumb_func_end sub_08102DD4 + + thumb_func_start sub_08102E10 +sub_08102E10: @ 0x08102E10 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r4, #0 + str r4, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r0, #1 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_080A6E74 + mov r8, r0 + ldr r0, _08102EE0 + mov r1, r8 + ands r1, r0 + mov r8, r1 + ldr r0, _08102EE4 + mov sb, r0 + lsls r5, r7, #2 + adds r5, r5, r7 + lsls r5, r5, #3 + adds r6, r5, r0 + strh r4, [r6, #8] + 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, #1 + movs r1, #1 + movs r2, #1 + movs r3, #1 + bl sub_080A6F8C + mov sl, r0 + mov r1, r8 + orrs r1, r0 + mov r8, r1 + movs r0, #8 + add sb, r0 + add r5, sb + adds r0, r5, #0 + adds r0, #0x1c + adds r5, #0x1e + adds r1, r5, #0 + mov r2, r8 + bl StorePointerInVars + ldr r0, _08102EE8 + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r4, #0x80 + lsls r4, r4, #9 + adds r1, r4, #0 + lsls r1, r0 + mov r0, sl + orrs r0, r1 + mov sl, r0 + ldr r0, _08102EEC + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0 + mov r1, sl + orrs r4, r1 + ldr r0, _08102EF0 + str r0, [sp] + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _08102EF4 + str r1, [r6] + adds r0, r7, #0 + bl _call_via_r1 + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08102EE0: .4byte 0x0000FFFF +_08102EE4: .4byte 0x03005B60 +_08102EE8: .4byte 0x000027D2 +_08102EEC: .4byte 0x000027D3 +_08102EF0: .4byte 0x00007FBB +_08102EF4: .4byte 0x08102EF9 + thumb_func_end sub_08102E10 + + thumb_func_start sub_08102EF8 +sub_08102EF8: @ 0x08102EF8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _08102F20 + adds r4, r0, r1 + movs r0, #8 + ldrsh r1, [r4, r0] + cmp r1, #1 + beq _08102FE4 + cmp r1, #1 + bgt _08102F24 + cmp r1, #0 + beq _08102F32 + b _08103082 + .align 2, 0 +_08102F20: .4byte 0x03005B60 +_08102F24: + cmp r1, #2 + bne _08102F2A + b _0810303C +_08102F2A: + cmp r1, #3 + bne _08102F30 + b _08103070 +_08102F30: + b _08103082 +_08102F32: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _08102F40 + b _08103082 +_08102F40: + strh r1, [r4, #0xa] + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xf + bgt _08102F8C + ldrh r0, [r4, #0x16] + ldrh r1, [r4, #0x10] + adds r0, r0, r1 + strh r0, [r4, #0x10] + ldrh r2, [r4, #0x18] + ldrh r3, [r4, #0x12] + adds r2, r2, r3 + strh r2, [r4, #0x12] + ldrh r1, [r4, #0x1a] + ldrh r5, [r4, #0x14] + adds r1, r1, r5 + strh r1, [r4, #0x14] + lsls r0, r0, #0x10 + asrs r0, r0, #0x13 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r2, r2, #0x10 + asrs r2, r2, #0x13 + lsls r2, r2, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x13 + lsls r1, r1, #0x10 + lsrs r2, r2, #0xb + orrs r0, r2 + lsrs r1, r1, #6 + orrs r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov ip, r0 + b _08102F96 +_08102F8C: + ldr r7, _08102FDC + mov ip, r7 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_08102F96: + movs r2, #1 + movs r3, #0 + movs r1, #0 +_08102F9C: + movs r5, #0xe + ldrsh r0, [r4, r5] + ands r0, r2 + lsls r5, r2, #0x11 + adds r6, r3, #0 + adds r6, #0x10 + adds r1, #1 + mov r8, r1 + cmp r0, #0 + beq _08102FC8 + movs r1, #1 + ldr r2, _08102FE0 +_08102FB4: + adds r0, r3, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + mov r7, ip + strh r7, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0xf + bls _08102FB4 +_08102FC8: + lsrs r2, r5, #0x10 + lsls r0, r6, #0x10 + lsrs r3, r0, #0x10 + mov r1, r8 + lsls r0, r1, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0xf + bls _08102F9C + b _08103082 + .align 2, 0 +_08102FDC: .4byte 0x00007FBB +_08102FE0: .4byte 0x020377B4 +_08102FE4: + ldr r0, _0810302C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08103082 + movs r2, #0 + ldr r3, _08103030 + movs r5, #0x14 + adds r5, r5, r3 + mov ip, r5 + ldr r7, _08103034 + mov r8, r7 + ldr r6, _08103038 + movs r5, #1 +_08103002: + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r1, r0, #2 + mov r7, ip + adds r0, r1, r7 + ldr r0, [r0] + cmp r0, r8 + beq _08103016 + cmp r0, r6 + bne _0810301A +_08103016: + adds r0, r1, r3 + strh r5, [r0, #0x2e] +_0810301A: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x3f + bls _08103002 + movs r0, #0 + strh r0, [r4, #0xa] + b _08103064 + .align 2, 0 +_0810302C: .4byte 0x02037C74 +_08103030: .4byte 0x020205AC +_08103034: .4byte 0x0856EAA0 +_08103038: .4byte 0x0856EAD0 +_0810303C: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1e + ble _08103082 + movs r1, #0x24 + ldrsh r0, [r4, r1] + movs r2, #0x26 + ldrsh r1, [r4, r2] + bl LoadPointerFromVars + ldr r1, _0810306C + str r1, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade +_08103064: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _08103082 + .align 2, 0 +_0810306C: .4byte 0x00007FBB +_08103070: + ldr r0, _08103090 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08103082 + adds r0, r2, #0 + bl DestroyAnimVisualTask +_08103082: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08103090: .4byte 0x02037C74 + thumb_func_end sub_08102EF8 + + thumb_func_start sub_08103094 +sub_08103094: @ 0x08103094 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, _08103118 + movs r1, #4 + ldrsh r0, [r6, r1] + cmp r0, #1 + bgt _081030A6 + movs r0, #2 + strh r0, [r6, #4] +_081030A6: + movs r1, #4 + ldrsh r0, [r6, r1] + cmp r0, #0x7f + ble _081030B2 + movs r0, #0x7f + strh r0, [r6, #4] +_081030B2: + movs r0, #0 + strh r0, [r5, #0x2e] + ldrh r0, [r6, #4] + strh r0, [r5, #0x30] + ldr r4, _0810311C + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r6] + adds r0, r0, r1 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r6, [r6, #2] + adds r0, r0, r6 + strh r0, [r5, #0x22] + ldrh r1, [r5, #0x20] + strh r1, [r5, #0x3a] + strh r0, [r5, #0x3c] + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08103124 + ldrb r1, [r5, #3] + movs r0, #0x3f + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r5, #3] + ldrh r0, [r5, #0x20] + adds r0, #0x28 + strh r0, [r5, #0x20] + ldrh r4, [r5, #0x22] + adds r4, #0x14 + strh r4, [r5, #0x22] + lsls r0, r0, #7 + strh r0, [r5, #0x32] + movs r0, #0x30 + ldrsh r1, [r5, r0] + ldr r0, _08103120 + b _0810314A + .align 2, 0 +_08103118: .4byte 0x020380BE +_0810311C: .4byte 0x020380D7 +_08103120: .4byte 0xFFFFEC00 +_08103124: + ldr r0, _08103164 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810316C + ldrh r0, [r5, #0x20] + subs r0, #0x28 + strh r0, [r5, #0x20] + ldrh r4, [r5, #0x22] + adds r4, #0x14 + strh r4, [r5, #0x22] + lsls r0, r0, #7 + strh r0, [r5, #0x32] + movs r0, #0x30 + ldrsh r1, [r5, r0] + movs r0, #0xa0 + lsls r0, r0, #5 +_0810314A: + bl __divsi3 + strh r0, [r5, #0x34] + lsls r4, r4, #7 + strh r4, [r5, #0x36] + movs r0, #0x30 + ldrsh r1, [r5, r0] + ldr r0, _08103168 + bl __divsi3 + strh r0, [r5, #0x38] + b _081031A8 + .align 2, 0 +_08103164: .4byte 0x020380D6 +_08103168: .4byte 0xFFFFF600 +_0810316C: + ldrh r0, [r5, #0x20] + adds r0, #0x28 + strh r0, [r5, #0x20] + ldrh r4, [r5, #0x22] + subs r4, #0x14 + strh r4, [r5, #0x22] + lsls r0, r0, #7 + strh r0, [r5, #0x32] + movs r0, #0x30 + ldrsh r1, [r5, r0] + ldr r0, _081031B4 + bl __divsi3 + strh r0, [r5, #0x34] + lsls r4, r4, #7 + strh r4, [r5, #0x36] + movs r0, #0x30 + ldrsh r1, [r5, r0] + movs r0, #0xa0 + lsls r0, r0, #4 + bl __divsi3 + strh r0, [r5, #0x38] + ldrb r1, [r5, #3] + movs r0, #0x3f + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x30 + orrs r0, r1 + strb r0, [r5, #3] +_081031A8: + ldr r0, _081031B8 + str r0, [r5, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081031B4: .4byte 0xFFFFEC00 +_081031B8: .4byte 0x081031BD + thumb_func_end sub_08103094 + + thumb_func_start sub_081031BC +sub_081031BC: @ 0x081031BC + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x34] + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] + ldrh r1, [r2, #0x38] + ldrh r3, [r2, #0x36] + adds r1, r1, r3 + strh r1, [r2, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x17 + strh r0, [r2, #0x20] + lsls r1, r1, #0x10 + asrs r1, r1, #0x17 + strh r1, [r2, #0x22] + ldrh r0, [r2, #0x30] + subs r0, #1 + strh r0, [r2, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + bne _081031F2 + ldrh r0, [r2, #0x3a] + strh r0, [r2, #0x20] + ldrh r0, [r2, #0x3c] + strh r0, [r2, #0x22] +_081031F2: + movs r1, #0x30 + ldrsh r0, [r2, r1] + cmp r0, #0 + bne _08103200 + adds r0, r2, #0 + bl DestroyAnimSprite +_08103200: + pop {r0} + bx r0 + thumb_func_end sub_081031BC + + thumb_func_start sub_08103204 +sub_08103204: @ 0x08103204 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r0, r0, #2 + add r0, r8 + lsls r0, r0, #3 + ldr r1, _08103294 + adds r6, r0, r1 + movs r0, #0 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r6, #8] + ldr r0, _08103298 + bl AllocSpritePalette + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r6, #0xa] + movs r1, #0xa + ldrsh r0, [r6, r1] + lsls r0, r0, #0x14 + movs r1, #0x80 + lsls r1, r1, #0x11 + adds r0, r0, r1 + lsrs r3, r0, #0x10 + ldr r2, _0810329C + movs r0, #8 + ldrsh r1, [r6, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #5] + lsrs r0, r0, #4 + adds r0, #0x10 + lsls r4, r0, #4 + movs r5, #1 + ldr r2, _081032A0 +_0810325C: + adds r1, r3, r5 + lsls r1, r1, #1 + adds r1, r1, r2 + adds r0, r4, r5 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0xf + bls _0810325C + 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, _0810329C + movs r1, #0x1c + adds r1, r1, r7 + mov sb, r1 + b _081032D8 + .align 2, 0 +_08103294: .4byte 0x03005B60 +_08103298: .4byte 0x00002771 +_0810329C: .4byte 0x020205AC +_081032A0: .4byte 0x020373B4 +_081032A4: + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r4, r2, r7 + ldrb r1, [r6, #0xa] + lsls r1, r1, #4 + ldrb r3, [r4, #5] + movs r0, #0xf + ands r0, r3 + orrs r0, r1 + strb r0, [r4, #5] + movs r0, #0 + strh r0, [r4, #0x2e] + lsls r0, r5, #7 + strh r0, [r4, #0x30] + mov r0, r8 + strh r0, [r4, #0x32] + add r2, sb + ldr r0, _0810330C + str r0, [r2] + ldrh r0, [r6, #0xe] + adds r0, #1 + strh r0, [r6, #0xe] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_081032D8: + cmp r5, #1 + bhi _081032EA + movs r0, #0 + bl CloneBattlerSpriteWithBlend + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _081032A4 +_081032EA: + ldr r0, _08103310 + str r0, [r6] + ldr r0, _08103314 + ldrb r0, [r0] + bl GetBattlerSpriteBGPriorityRank + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08103318 + movs r1, #0x80 + lsls r1, r1, #2 + movs r0, #0 + bl ClearGpuRegBits + b _08103322 + .align 2, 0 +_0810330C: .4byte 0x0810338D +_08103310: .4byte 0x08103331 +_08103314: .4byte 0x020380D6 +_08103318: + movs r1, #0x80 + lsls r1, r1, #3 + movs r0, #0 + bl ClearGpuRegBits +_08103322: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08103204 + + thumb_func_start sub_08103330 +sub_08103330: @ 0x08103330 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _08103364 + adds r0, r0, r1 + movs r1, #0xe + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08103382 + ldr r0, _08103368 + ldrb r0, [r0] + bl GetBattlerSpriteBGPriorityRank + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0810336C + movs r1, #0x80 + lsls r1, r1, #2 + movs r0, #0 + bl SetGpuRegBits + b _08103376 + .align 2, 0 +_08103364: .4byte 0x03005B60 +_08103368: .4byte 0x020380D6 +_0810336C: + movs r1, #0x80 + lsls r1, r1, #3 + movs r0, #0 + bl SetGpuRegBits +_08103376: + ldr r0, _08103388 + bl FreeSpritePaletteByTag + adds r0, r4, #0 + bl DestroyAnimVisualTask +_08103382: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08103388: .4byte 0x00002771 + thumb_func_end sub_08103330 + + thumb_func_start sub_0810338C +sub_0810338C: @ 0x0810338C + push {r4, r5, lr} + adds r5, r0, #0 + ldrh r0, [r5, #0x34] + adds r0, #1 + strh r0, [r5, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _081033A8 + movs r0, #0 + strh r0, [r5, #0x34] + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] +_081033A8: + movs r1, #0x2e + ldrsh r0, [r5, r1] + cmp r0, #0x40 + ble _081033D0 + ldr r2, _081033CC + movs r0, #0x32 + ldrsh r1, [r5, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrh r1, [r0, #0xe] + subs r1, #1 + strh r1, [r0, #0xe] + adds r0, r5, #0 + bl obj_delete_but_dont_free_vram + b _08103412 + .align 2, 0 +_081033CC: .4byte 0x03005B60 +_081033D0: + ldr r4, _08103418 + movs r1, #0x2e + ldrsh r0, [r5, r1] + lsls r0, r0, #1 + adds r0, r0, r4 + movs r2, #0 + ldrsh r0, [r0, r2] + movs r1, #6 + bl __divsi3 + strh r0, [r5, #0x36] + movs r1, #0x2e + ldrsh r0, [r5, r1] + lsls r0, r0, #1 + adds r0, r0, r4 + movs r2, #0 + ldrsh r0, [r0, r2] + movs r1, #0xd + bl __divsi3 + strh r0, [r5, #0x38] + ldrh r1, [r5, #0x30] + adds r1, 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] +_08103412: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08103418: .4byte 0x082FA8CC + thumb_func_end sub_0810338C + + thumb_func_start sub_0810341C +sub_0810341C: @ 0x0810341C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08103430 + bl StoreSpriteCallbackInData6 + ldr r0, _08103434 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08103430: .4byte 0x080A34C5 +_08103434: .4byte 0x080A60A1 + thumb_func_end sub_0810341C + + thumb_func_start sub_08103438 +sub_08103438: @ 0x08103438 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldr r4, _081034E8 + ldrh r0, [r4] + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0xff + beq _0810347C + lsls r0, r3, #0x14 + movs r1, #0x80 + lsls r1, r1, #0x11 + adds r0, r0, r1 + lsrs r3, r0, #0x10 + movs r2, #1 + ldr r5, _081034EC +_08103464: + adds r1, r3, r2 + lsls r1, r1, #1 + adds r1, r1, r5 + lsls r0, r2, #1 + adds r0, r0, r4 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #5 + bls _08103464 +_0810347C: + movs r4, #1 + ldr r0, _081034E8 + mov r8, r0 +_08103482: + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r5, r0, #2 + mov r1, r8 + adds r0, r5, r1 + ldrh r0, [r0] + bl AllocSpritePalette + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + adds r4, #1 + mov ip, r4 + cmp r3, #0xff + beq _081034CA + lsls r0, r3, #0x14 + movs r1, #0x80 + lsls r1, r1, #0x11 + adds r0, r0, r1 + lsrs r3, r0, #0x10 + movs r2, #1 + ldr r7, _081034EC + ldr r6, _081034E8 + adds r4, r5, #0 +_081034B0: + adds r1, r3, r2 + lsls r1, r1, #1 + adds r1, r1, r7 + lsls r0, r2, #1 + adds r0, r0, r4 + adds r0, r0, r6 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #5 + bls _081034B0 +_081034CA: + mov r1, ip + lsls r0, r1, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #3 + bls _08103482 + mov r0, sb + bl DestroyAnimVisualTask + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081034E8: .4byte 0x0856EC04 +_081034EC: .4byte 0x020377B4 + thumb_func_end sub_08103438 + + thumb_func_start sub_081034F0 +sub_081034F0: @ 0x081034F0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r4, #1 + ldr r6, _08103520 +_081034FA: + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrh r0, [r0] + bl FreeSpritePaletteByTag + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #3 + bls _081034FA + adds r0, r5, #0 + bl DestroyAnimVisualTask + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08103520: .4byte 0x0856EC04 + thumb_func_end sub_081034F0 + + thumb_func_start sub_08103524 +sub_08103524: @ 0x08103524 + push {r4, r5, r6, lr} + sub sp, #4 + adds r5, r0, #0 + bl SetSpriteCoordsToAnimAttackerCoords + ldr r4, _0810357C + ldrb r1, [r4] + adds r0, r5, #0 + bl StartSpriteAnim + ldr r2, _08103580 + movs r0, #2 + ldrsh r1, [r4, r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0] + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _08103560 + lsls r2, r0, #4 + ldrb r1, [r5, #5] + movs r0, #0xf + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #5] +_08103560: + ldrh r0, [r4, #2] + movs r1, #0 + strh r0, [r5, #0x30] + strh r1, [r5, #0x32] + ldrh r0, [r4, #4] + strh r0, [r5, #0x34] + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08103584 + movs r6, #0x30 + movs r3, #0x28 + b _0810359E + .align 2, 0 +_0810357C: .4byte 0x020380BE +_08103580: .4byte 0x0856EC04 +_08103584: + ldr r4, _081035D4 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 +_0810359E: + 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, r0, #0x10 + asrs r0, r0, #0x10 + subs r1, r3, r1 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r2, r5, #0 + adds r2, #0x3a + adds r3, r5, #0 + adds r3, #0x3c + movs r4, #0x28 + str r4, [sp] + bl sub_081035DC + ldr r0, _081035D8 + str r0, [r5, #0x1c] + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081035D4: .4byte 0x020380D7 +_081035D8: .4byte 0x08103635 + thumb_func_end sub_08103524 + + thumb_func_start sub_081035DC +sub_081035DC: @ 0x081035DC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r2, #0 + mov r8, r3 + ldr r2, [sp, #0x18] + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r1, r2, #0x18 + lsls r0, r0, #0x10 + asrs r2, r0, #0x10 + cmp r2, #0 + bge _081035FE + lsls r0, r1, #0x18 + rsbs r0, r0, #0 + lsrs r1, r0, #0x18 +_081035FE: + lsls r5, r2, #8 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r5, #0 + bl __divsi3 + adds r4, r0, #0 + cmp r4, #0 + bne _08103612 + movs r4, #1 +_08103612: + adds r0, r5, #0 + adds r1, r4, #0 + bl __divsi3 + strh r0, [r7] + lsls r0, r6, #0x10 + asrs r0, r0, #8 + adds r1, r4, #0 + bl __divsi3 + mov r1, r8 + strh r0, [r1] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_081035DC + + thumb_func_start sub_08103634 +sub_08103634: @ 0x08103634 + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + adds r0, #1 + 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 _08103650 + adds r0, #0xff +_08103650: + asrs r0, r0, #8 + lsls r0, r0, #8 + subs r0, r1, r0 + ldrh r1, [r4, #0x3a] + ldrh r2, [r4, #0x36] + adds r1, r1, r2 + strh r1, [r4, #0x36] + ldrh r2, [r4, #0x3c] + ldrh r3, [r4, #0x38] + adds r2, r2, r3 + strh r2, [r4, #0x38] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + strh r1, [r4, #0x20] + lsls r2, r2, #0x10 + asrs r2, r2, #0x14 + strh r2, [r4, #0x22] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0xf + bl Sin + strh r0, [r4, #0x26] + ldrh r2, [r4, #0x22] + ldrh r0, [r4, #0x20] + adds r0, #0x10 + lsls r0, r0, #0x10 + movs r1, #0x88 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _0810369E + lsls r0, r2, #0x10 + asrs r1, r0, #0x10 + movs r0, #0x10 + rsbs r0, r0, #0 + cmp r1, r0 + blt _0810369E + cmp r1, #0x80 + ble _081036A6 +_0810369E: + adds r0, r4, #0 + bl DestroySpriteAndMatrix + b _081036F6 +_081036A6: + movs r0, #0x34 + ldrsh r1, [r4, r0] + cmp r1, #0 + beq _081036F6 + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, r1 + ble _081036F6 + strh r5, [r4, #0x32] + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + ble _081036CE + strh r5, [r4, #0x30] +_081036CE: + ldr r2, _081036FC + movs r3, #0x30 + ldrsh r1, [r4, r3] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0] + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _081036F6 + lsls r2, r0, #4 + ldrb r1, [r4, #5] + movs r0, #0xf + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #5] +_081036F6: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081036FC: .4byte 0x0856EC04 + thumb_func_end sub_08103634 + + thumb_func_start sub_08103700 +sub_08103700: @ 0x08103700 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldr r7, _08103784 + ldrb r0, [r7] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0810371E + ldr r1, _08103788 + movs r2, #2 + ldrsh r0, [r1, r2] + rsbs r0, r0, #0 + strh r0, [r1, #2] +_0810371E: + ldrb r0, [r7] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + ldr r4, _08103788 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #2] + adds r0, r0, r1 + movs r5, #0 + strh r0, [r6, #0x20] + ldrb r0, [r7] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r2, [r4, #4] + adds r0, 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, r0, #4 + strh r0, [r6, #0x36] + ldrh r0, [r6, #0x22] + lsls r0, r0, #4 + strh r0, [r6, #0x38] + movs r1, #2 + ldrsh r0, [r4, r1] + lsls r0, r0, #4 + movs r1, #5 + bl __divsi3 + strh r0, [r6, #0x3a] + movs r2, #4 + ldrsh r0, [r4, r2] + lsls r0, r0, #7 + movs r1, #5 + bl __divsi3 + strh r0, [r6, #0x3c] + ldr r0, _0810378C + str r0, [r6, #0x1c] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08103784: .4byte 0x020380D6 +_08103788: .4byte 0x020380BE +_0810378C: .4byte 0x08103791 + thumb_func_end sub_08103700 + + thumb_func_start sub_08103790 +sub_08103790: @ 0x08103790 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3a] + ldrh r1, [r4, #0x36] + adds r0, r0, r1 + strh r0, [r4, #0x36] + ldrh r1, [r4, #0x3c] + ldrh r2, [r4, #0x38] + adds r1, r1, r2 + strh r1, [r4, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + strh r0, [r4, #0x20] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + strh r1, [r4, #0x22] + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #5 + ble _081037EE + movs r2, #0x34 + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _081037EE + 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 _081037EE + movs r0, #1 + strh r0, [r4, #0x34] +_081037EE: + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x30 + bne _08103802 + adds r0, r4, #0 + bl DestroySpriteAndMatrix +_08103802: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08103790 + + thumb_func_start sub_08103808 +sub_08103808: @ 0x08103808 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r0, _08103828 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #1 + bne _0810382C + ldrb r0, [r5, #3] + movs r1, #0x3f + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #0x10 + orrs r1, r0 + strb r1, [r5, #3] + movs r6, #0x10 + b _0810382E + .align 2, 0 +_08103828: .4byte 0x020380BE +_0810382C: + ldr r6, _08103868 +_0810382E: + ldr r4, _0810386C + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r6 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #8 + strh r0, [r5, #0x22] + movs r0, #8 + strh r0, [r5, #0x2e] + ldr r0, _08103870 + str r0, [r5, #0x1c] + ldr r1, _08103874 + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08103868: .4byte 0x0000FFF0 +_0810386C: .4byte 0x020380D6 +_08103870: .4byte 0x080A5D79 +_08103874: .4byte 0x080A34C5 + thumb_func_end sub_08103808 + + thumb_func_start sub_08103878 +sub_08103878: @ 0x08103878 + push {r4, r5, lr} + adds r4, r0, #0 + bl SetSpriteCoordsToAnimAttackerCoords + ldrh r0, [r4, #0x22] + adds r0, #8 + strh r0, [r4, #0x22] + ldr r5, _081038F0 + ldrb r1, [r5, #2] + adds r0, r4, #0 + bl StartSpriteAnim + ldr r2, _081038F4 + movs r0, #4 + ldrsh r1, [r5, r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0] + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _081038B8 + lsls r2, r0, #4 + ldrb r1, [r4, #5] + movs r0, #0xf + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #5] +_081038B8: + movs r1, #0 + ldrsh r0, [r5, r1] + movs r2, #0x20 + cmp r0, #0 + bne _081038C4 + ldr r2, _081038F8 +_081038C4: + movs r0, #0x28 + strh r0, [r4, #0x2e] + ldrh r1, [r4, #0x20] + strh r1, [r4, #0x30] + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + adds r0, 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 InitAnimLinearTranslation + ldrh r0, [r5, #6] + strh r0, [r4, #0x38] + ldr r0, _081038FC + str r0, [r4, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081038F0: .4byte 0x020380BE +_081038F4: .4byte 0x0856EC04 +_081038F8: .4byte 0x0000FFE0 +_081038FC: .4byte 0x08103901 + thumb_func_end sub_08103878 + + thumb_func_start sub_08103900 +sub_08103900: @ 0x08103900 + push {r4, lr} + adds r4, r0, #0 + bl AnimTranslateLinear + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08103950 + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r1, #8 + bl Sin + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldrh r2, [r4, #0x24] + movs r3, #0x24 + ldrsh r0, [r4, r3] + cmp r0, #0 + bge _0810392C + lsls r0, r1, #0x10 + rsbs r0, r0, #0 + lsrs r1, r0, #0x10 +_0810392C: + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + adds r0, r0, r2 + strh r0, [r4, #0x24] + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r1, #4 + bl Sin + ldrh r3, [r4, #0x26] + adds r0, r0, r3 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x38] + adds r0, #8 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x38] + b _08103956 +_08103950: + adds r0, r4, #0 + bl DestroyAnimSprite +_08103956: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08103900 + + thumb_func_start sub_0810395C +sub_0810395C: @ 0x0810395C + push {r4, r5, r6, lr} + adds r6, r1, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r5, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810397C + adds r0, r5, #0 + movs r1, #5 + bl GetBattlerSpriteCoordAttr + adds r0, #8 + b _08103986 +_0810397C: + adds r0, r5, #0 + movs r1, #4 + bl GetBattlerSpriteCoordAttr + subs r0, #8 +_08103986: + strh r0, [r6, #0x20] + adds r0, r5, #0 + movs r1, #3 + bl GetBattlerSpriteCoord + adds r4, r0, #0 + adds r0, r5, #0 + movs r1, #0 + bl GetBattlerSpriteCoordAttr + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _081039A8 + adds r0, #3 +_081039A8: + asrs r0, r0, #2 + subs r0, r4, r0 + strh r0, [r6, #0x22] + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_0810395C + + thumb_func_start sub_081039B4 +sub_081039B4: @ 0x081039B4 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _081039C8 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _081039D0 + ldr r0, _081039CC + b _081039D2 + .align 2, 0 +_081039C8: .4byte 0x020380BE +_081039CC: .4byte 0x020380D6 +_081039D0: + ldr r0, _08103A10 +_081039D2: + ldrb r4, [r0] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0810395C + adds r0, r4, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + ldr r0, _08103A14 + ldrh r0, [r0, #2] + strh r0, [r5, #0x2e] + adds r0, r1, #2 + strh r0, [r5, #0x30] + adds r0, r5, #0 + bl StartSpriteAnim + ldr r1, _08103A18 + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _08103A1C + str r0, [r5, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08103A10: .4byte 0x020380D7 +_08103A14: .4byte 0x020380BE +_08103A18: .4byte 0x08103A21 +_08103A1C: .4byte 0x080A60A1 + thumb_func_end sub_081039B4 + + thumb_func_start sub_08103A20 +sub_08103A20: @ 0x08103A20 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + subs r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08103A48 + ldr r1, _08103A50 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + ldrh r1, [r4, #0x30] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim + ldr r0, _08103A54 + str r0, [r4, #0x1c] +_08103A48: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08103A50: .4byte 0x080A34C5 +_08103A54: .4byte 0x080A60A1 + thumb_func_end sub_08103A20 + + thumb_func_start sub_08103A58 +sub_08103A58: @ 0x08103A58 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08103A6C + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08103A74 + ldr r0, _08103A70 + b _08103A76 + .align 2, 0 +_08103A6C: .4byte 0x020380BE +_08103A70: .4byte 0x020380D6 +_08103A74: + ldr r0, _08103A94 +_08103A76: + ldrb r0, [r0] + adds r1, r4, #0 + bl sub_0810395C + movs r0, #0 + strh r0, [r4, #0x2e] + ldr r1, _08103A98 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _08103A9C + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08103A94: .4byte 0x020380D7 +_08103A98: .4byte 0x08103AA1 +_08103A9C: .4byte 0x080A6085 + thumb_func_end sub_08103A58 + + thumb_func_start sub_08103AA0 +sub_08103AA0: @ 0x08103AA0 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x10 + ble _08103AC6 + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAffineAnim + ldr r1, _08103ACC + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _08103AD0 + str r0, [r4, #0x1c] +_08103AC6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08103ACC: .4byte 0x080A6015 +_08103AD0: .4byte 0x080A6085 + thumb_func_end sub_08103AA0 + + thumb_func_start sub_08103AD4 +sub_08103AD4: @ 0x08103AD4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r0, _08103AE8 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08103AF0 + ldr r0, _08103AEC + b _08103AF2 + .align 2, 0 +_08103AE8: .4byte 0x020380BE +_08103AEC: .4byte 0x020380D6 +_08103AF0: + ldr r0, _08103B44 +_08103AF2: + ldrb r5, [r0] + adds r0, r5, #0 + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r6, #0 + strh r0, [r4, #0x20] + adds r0, r5, #0 + movs r1, #2 + bl GetBattlerSpriteCoordAttr + strh r0, [r4, #0x22] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #9 + bgt _08103B1A + movs r0, #0xa + strh r0, [r4, #0x22] +_08103B1A: + movs r0, #1 + 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, #4 + strh r0, [r4, #0x34] + strh r6, [r4, #0x36] + ldr r1, _08103B48 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _08103B4C + str r0, [r4, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08103B44: .4byte 0x020380D7 +_08103B48: .4byte 0x08103B51 +_08103B4C: .4byte 0x080A6085 + thumb_func_end sub_08103AD4 + + thumb_func_start sub_08103B50 +sub_08103B50: @ 0x08103B50 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0x36] + adds r0, #1 + strh r0, [r1, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xc + ble _08103B66 + ldr r0, _08103B6C + str r0, [r1, #0x1c] +_08103B66: + pop {r0} + bx r0 + .align 2, 0 +_08103B6C: .4byte 0x08103B71 + thumb_func_end sub_08103B50 + + thumb_func_start sub_08103B70 +sub_08103B70: @ 0x08103B70 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x30] + adds r1, r0, #4 + strh r1, [r2, #0x30] + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xfe + ble _08103BA2 + ldrh r0, [r2, #0x2e] + subs r0, #1 + strh r0, [r2, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bne _08103B9C + strh r0, [r2, #0x24] + ldr r0, _08103B98 + str r0, [r2, #0x1c] + b _08103BD8 + .align 2, 0 +_08103B98: .4byte 0x08103AA1 +_08103B9C: + movs r0, #0xff + ands r1, r0 + strh r1, [r2, #0x30] +_08103BA2: + movs r1, #0x30 + ldrsh r0, [r2, r1] + cmp r0, #0x4f + ble _08103BB2 + ldrh r0, [r2, #0x34] + adds r1, r2, #0 + adds r1, #0x43 + strb r0, [r1] +_08103BB2: + movs r3, #0x30 + ldrsh r0, [r2, r3] + cmp r0, #0x9f + ble _08103BC2 + ldrh r0, [r2, #0x32] + adds r1, r2, #0 + adds r1, #0x43 + strb r0, [r1] +_08103BC2: + ldr r1, _08103BDC + movs r3, #0x30 + ldrsh r0, [r2, r3] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x13 + asrs r1, r0, #1 + adds r0, r0, r1 + strh r0, [r2, #0x24] +_08103BD8: + pop {r0} + bx r0 + .align 2, 0 +_08103BDC: .4byte 0x082FA8CC + thumb_func_end sub_08103B70 + + thumb_func_start sub_08103BE0 +sub_08103BE0: @ 0x08103BE0 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _08103BF4 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08103BFC + ldr r0, _08103BF8 + b _08103BFE + .align 2, 0 +_08103BF4: .4byte 0x020380BE +_08103BF8: .4byte 0x020380D6 +_08103BFC: + ldr r0, _08103C20 +_08103BFE: + ldrb r4, [r0] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0810395C + adds r0, r4, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08103C24 + adds r0, r5, #0 + movs r1, #0 + bl StartSpriteAnim + movs r0, #2 + b _08103C2E + .align 2, 0 +_08103C20: .4byte 0x020380D7 +_08103C24: + adds r0, r5, #0 + movs r1, #1 + bl StartSpriteAnim + movs r0, #3 +_08103C2E: + strh r0, [r5, #0x2e] + ldr r0, _08103C3C + str r0, [r5, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08103C3C: .4byte 0x08103C41 + thumb_func_end sub_08103BE0 + + thumb_func_start sub_08103C40 +sub_08103C40: @ 0x08103C40 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xa + ble _08103C6E + movs r0, #0 + strh r0, [r4, #0x30] + ldrh r1, [r4, #0x2e] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim + ldr r1, _08103C74 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _08103C78 + str r0, [r4, #0x1c] +_08103C6E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08103C74: .4byte 0x08103C7D +_08103C78: .4byte 0x080A60A1 + thumb_func_end sub_08103C40 + + thumb_func_start sub_08103C7C +sub_08103C7C: @ 0x08103C7C + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0x30] + adds r0, #1 + strh r0, [r1, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #5 + ble _08103C94 + adds r0, r1, #0 + bl DestroyAnimSprite +_08103C94: + pop {r0} + bx r0 + thumb_func_end sub_08103C7C + diff --git a/asm/battle_anim_effects_2.s b/asm/battle_anim_effects_2.s new file mode 100644 index 0000000..44a8f12 --- /dev/null +++ b/asm/battle_anim_effects_2.s @@ -0,0 +1,7929 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_08103C98 +sub_08103C98: @ 0x08103C98 + push {r4, r5, lr} + adds r4, r0, #0 + bl SetSpriteCoordsToAnimAttackerCoords + ldr r5, _08103CDC + movs r0, #0 + ldrsh r1, [r5, r0] + adds r0, r4, #0 + bl SetAnimSpriteInitialXOffset + ldrh r0, [r5, #2] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] + ldrh r0, [r5, #4] + strh r0, [r4, #0x30] + ldrh r0, [r5, #8] + strh r0, [r4, #0x32] + ldrh r0, [r5, #0xa] + strh r0, [r4, #0x34] + ldrh r0, [r5, #6] + strh r0, [r4, #0x36] + ldr r1, _08103CE0 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + ldr r1, _08103CE4 + str r1, [r4, #0x1c] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08103CDC: .4byte 0x020380BE +_08103CE0: .4byte 0x080A6015 +_08103CE4: .4byte 0x080A5D19 + thumb_func_end sub_08103C98 + + thumb_func_start sub_08103CE8 +sub_08103CE8: @ 0x08103CE8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08103CFC + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08103D04 + ldr r0, _08103D00 + b _08103D06 + .align 2, 0 +_08103CFC: .4byte 0x020380BE +_08103D00: .4byte 0x020380D6 +_08103D04: + ldr r0, _08103D20 +_08103D06: + ldrb r0, [r0] + adds r1, r4, #0 + bl sub_0810395C + movs r0, #0 + strh r0, [r4, #0x2e] + strh r0, [r4, #0x30] + ldr r0, _08103D24 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08103D20: .4byte 0x020380D7 +_08103D24: .4byte 0x08103D29 + thumb_func_end sub_08103CE8 + + thumb_func_start sub_08103D28 +sub_08103D28: @ 0x08103D28 + push {lr} + adds r1, r0, #0 + movs r2, #0x2e + ldrsh r0, [r1, r2] + cmp r0, #1 + beq _08103D5A + cmp r0, #1 + bgt _08103D3E + cmp r0, #0 + beq _08103D44 + b _08103D88 +_08103D3E: + cmp r0, #2 + beq _08103D74 + b _08103D88 +_08103D44: + ldrh r0, [r1, #0x26] + subs r0, #3 + strh r0, [r1, #0x26] + ldrh r0, [r1, #0x30] + adds r0, #1 + strh r0, [r1, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #6 + bne _08103D88 + b _08103D6C +_08103D5A: + ldrh r0, [r1, #0x26] + adds r0, #3 + strh r0, [r1, #0x26] + ldrh r0, [r1, #0x30] + subs r0, #1 + strh r0, [r1, #0x30] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08103D88 +_08103D6C: + ldrh r0, [r1, #0x2e] + adds r0, #1 + strh r0, [r1, #0x2e] + b _08103D88 +_08103D74: + ldrh r0, [r1, #0x30] + adds r0, #1 + strh r0, [r1, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x40 + bne _08103D88 + adds r0, r1, #0 + bl DestroyAnimSprite +_08103D88: + pop {r0} + bx r0 + thumb_func_end sub_08103D28 + + thumb_func_start sub_08103D8C +sub_08103D8C: @ 0x08103D8C + push {r4, lr} + adds r4, r0, #0 + ldr r3, _08103DD8 + movs r0, #0x32 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r4, #0x30] + ldrh r2, [r0, #0x24] + adds r1, r1, r2 + strh r1, [r0, #0x24] + movs r1, #0x30 + ldrsh r0, [r4, r1] + rsbs r0, r0, #0 + strh r0, [r4, #0x30] + movs r0, #0x2e + ldrsh r2, [r4, r0] + cmp r2, #0 + bne _08103DCA + movs r0, #0x32 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r2, [r0, #0x24] + adds r0, r4, #0 + bl DestroySpriteAndMatrix +_08103DCA: + ldrh r0, [r4, #0x2e] + subs r0, #1 + strh r0, [r4, #0x2e] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08103DD8: .4byte 0x020205AC + thumb_func_end sub_08103D8C + + thumb_func_start sub_08103DDC +sub_08103DDC: @ 0x08103DDC + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r4, _08103E24 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + ldr r1, _08103E28 + ldr r0, _08103E2C + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r6, [r0] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08103E34 + ldr r0, _08103E30 + ldrh r1, [r5, #0x20] + ldrh r2, [r0] + subs r1, r1, r2 + strh r1, [r5, #0x20] + adds r1, r0, #0 + b _08103E3E + .align 2, 0 +_08103E24: .4byte 0x020380D6 +_08103E28: .4byte 0x02023E88 +_08103E2C: .4byte 0x020380D7 +_08103E30: .4byte 0x020380BE +_08103E34: + ldr r1, _08103E68 + ldrh r0, [r1] + ldrh r2, [r5, #0x20] + adds r0, r0, r2 + strh r0, [r5, #0x20] +_08103E3E: + ldrh r0, [r1, #2] + ldrh r2, [r5, #0x22] + adds r0, r0, r2 + strh r0, [r5, #0x22] + ldrh r0, [r1, #4] + strh r0, [r5, #0x2e] + ldrh r0, [r1, #6] + strh r0, [r5, #0x30] + strh r6, [r5, #0x32] + ldr r0, _08103E6C + str r0, [r5, #0x1c] + adds r2, r5, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08103E68: .4byte 0x020380BE +_08103E6C: .4byte 0x08103D8D + thumb_func_end sub_08103DDC + + thumb_func_start sub_08103E70 +sub_08103E70: @ 0x08103E70 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldr r1, _08103E9C + ldrh r0, [r1, #4] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #6] + strh r0, [r4, #0x30] + ldrh r0, [r1, #8] + strh r0, [r4, #0x38] + ldr r0, _08103EA0 + str r0, [r4, #0x1c] + ldr r1, _08103EA4 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08103E9C: .4byte 0x020380BE +_08103EA0: .4byte 0x080A5D79 +_08103EA4: .4byte 0x08103EA9 + thumb_func_end sub_08103E70 + + thumb_func_start sub_08103EA8 +sub_08103EA8: @ 0x08103EA8 + 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, _08103EC8 + str r1, [r0, #0x1c] + ldr r1, _08103ECC + bl StoreSpriteCallbackInData6 + pop {r0} + bx r0 + .align 2, 0 +_08103EC8: .4byte 0x080A67B5 +_08103ECC: .4byte 0x08103ED1 + thumb_func_end sub_08103EA8 + + thumb_func_start sub_08103ED0 +sub_08103ED0: @ 0x08103ED0 + push {lr} + adds r1, r0, #0 + ldrh r2, [r1, #0x38] + movs r3, #0x38 + ldrsh r0, [r1, r3] + cmp r0, #0 + bne _08103EE6 + adds r0, r1, #0 + bl DestroyAnimSprite + b _08103EEA +_08103EE6: + subs r0, r2, #1 + strh r0, [r1, #0x38] +_08103EEA: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08103ED0 + + thumb_func_start AnimTask_Withdraw +AnimTask_Withdraw: @ 0x08103EF0 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _08103F1C + ldr r0, _08103F20 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0 + bl PrepareBattlerSpriteForRotScale + ldr r1, _08103F24 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08103F28 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08103F1C: .4byte 0x02023E88 +_08103F20: .4byte 0x020380D6 +_08103F24: .4byte 0x03005B60 +_08103F28: .4byte 0x08103F2D + thumb_func_end AnimTask_Withdraw + + thumb_func_start AnimTask_WithdrawStep +AnimTask_WithdrawStep: @ 0x08103F2C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _08103F5C + ldr r0, _08103F60 + ldrb r0, [r0] + adds r1, r0, r1 + ldrb r4, [r1] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08103F68 + ldr r1, _08103F64 + lsls r2, r5, #2 + adds r0, r2, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r0, [r0, #8] + rsbs r0, r0, #0 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + adds r6, r2, #0 + b _08103F76 + .align 2, 0 +_08103F5C: .4byte 0x02023E88 +_08103F60: .4byte 0x020380D6 +_08103F64: .4byte 0x03005B60 +_08103F68: + ldr r2, _08103FA8 + lsls r1, r5, #2 + adds r0, r1, r5 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrh r3, [r0, #8] + adds r6, r1, #0 +_08103F76: + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + bl SetSpriteRotScale + ldr r1, _08103FA8 + adds r0, r6, r5 + lsls r0, r0, #3 + adds r1, r0, r1 + movs r2, #0xa + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _08103FB0 + ldrh r0, [r1, #8] + adds r0, #0xb0 + strh r0, [r1, #8] + ldr r1, _08103FAC + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r1, [r0, #0x26] + adds r1, #1 + b _08103FDA + .align 2, 0 +_08103FA8: .4byte 0x03005B60 +_08103FAC: .4byte 0x020205AC +_08103FB0: + cmp r0, #1 + bne _08103FC6 + ldrh r0, [r1, #0xe] + adds r0, #1 + strh r0, [r1, #0xe] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1e + bne _08104020 + movs r0, #2 + b _0810401E +_08103FC6: + ldrh r0, [r1, #8] + subs r0, #0xb0 + strh r0, [r1, #8] + ldr r1, _08104014 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r1, [r0, #0x26] + subs r1, #1 +_08103FDA: + strh r1, [r0, #0x26] + adds r0, r4, #0 + bl SetBattlerSpriteYOffsetFromRotation + ldr r0, _08104018 + adds r1, r6, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r3, #8 + ldrsh r2, [r1, r3] + movs r0, #0xf2 + lsls r0, r0, #4 + cmp r2, r0 + beq _08103FFA + cmp r2, #0 + bne _08104020 +_08103FFA: + ldrh r2, [r1, #0xa] + movs r3, #0xa + ldrsh r0, [r1, r3] + cmp r0, #2 + bne _0810401C + adds r0, r4, #0 + bl ResetSpriteRotScale + adds r0, r5, #0 + bl DestroyAnimVisualTask + b _08104020 + .align 2, 0 +_08104014: .4byte 0x020205AC +_08104018: .4byte 0x03005B60 +_0810401C: + adds r0, r2, #1 +_0810401E: + strh r0, [r1, #0xa] +_08104020: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AnimTask_WithdrawStep + + thumb_func_start Anim_KinesisZapEnergy +Anim_KinesisZapEnergy: @ 0x08104028 + push {r4, r5, lr} + adds r4, r0, #0 + bl SetSpriteCoordsToAnimAttackerCoords + ldr r0, _0810404C + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08104054 + ldr r0, _08104050 + ldrh r1, [r4, #0x20] + ldrh r2, [r0] + subs r1, r1, r2 + strh r1, [r4, #0x20] + adds r5, r0, #0 + b _08104060 + .align 2, 0 +_0810404C: .4byte 0x020380D6 +_08104050: .4byte 0x020380BE +_08104054: + ldr r1, _08104094 + ldrh r0, [r1] + ldrh r2, [r4, #0x20] + adds r0, r0, r2 + strh r0, [r4, #0x20] + adds r5, r1, #0 +_08104060: + ldrh r0, [r5, #2] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] + ldr r0, _08104098 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810409C + adds r3, r4, #0 + adds r3, #0x3f + ldrb r0, [r3] + movs r1, #1 + adds r2, r0, #0 + orrs r2, r1 + strb r2, [r3] + movs r1, #4 + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _081040B0 + movs r0, #2 + orrs r2, r0 + strb r2, [r3] + b _081040B0 + .align 2, 0 +_08104094: .4byte 0x020380BE +_08104098: .4byte 0x020380D6 +_0810409C: + movs r2, #4 + ldrsh r0, [r5, r2] + cmp r0, #0 + beq _081040B0 + adds r2, r4, #0 + adds r2, #0x3f + ldrb r0, [r2] + movs r1, #2 + orrs r0, r1 + strb r0, [r2] +_081040B0: + ldr r0, _081040C4 + str r0, [r4, #0x1c] + ldr r1, _081040C8 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081040C4: .4byte 0x080A60A1 +_081040C8: .4byte 0x080A34C5 + thumb_func_end Anim_KinesisZapEnergy + + thumb_func_start Anim_SwordsDanceBlade +Anim_SwordsDanceBlade: @ 0x081040CC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl InitSpritePosToAnimAttacker + ldr r0, _081040E8 + str r0, [r4, #0x1c] + ldr r1, _081040EC + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081040E8: .4byte 0x080A6085 +_081040EC: .4byte 0x081040F1 + thumb_func_end Anim_SwordsDanceBlade + + thumb_func_start Anim_SwordsDanceBladeStep +Anim_SwordsDanceBladeStep: @ 0x081040F0 + push {lr} + movs r1, #6 + 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, _08104110 + str r1, [r0, #0x1c] + ldr r1, _08104114 + bl StoreSpriteCallbackInData6 + pop {r0} + bx r0 + .align 2, 0 +_08104110: .4byte 0x080A67B5 +_08104114: .4byte 0x080A34C5 + thumb_func_end Anim_SwordsDanceBladeStep + + thumb_func_start AnimSonicBoomProjectile +AnimSonicBoomProjectile: @ 0x08104118 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r5, r0, #0 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810413C + ldr r1, _08104138 + ldrh r0, [r1, #4] + rsbs r0, r0, #0 + strh r0, [r1, #4] + b _0810415E + .align 2, 0 +_08104138: .4byte 0x020380BE +_0810413C: + ldr r0, _08104204 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810415E + ldr r1, _08104208 + ldrh r0, [r1, #4] + rsbs r0, r0, #0 + strh r0, [r1, #4] + ldrh r0, [r1, #2] + rsbs r0, r0, #0 + strh r0, [r1, #2] + ldrh r0, [r1, #6] + rsbs r0, r0, #0 + strh r0, [r1, #6] +_0810415E: + adds r0, r5, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldr r4, _0810420C + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + ldr r6, _08104208 + lsrs r0, r0, #0x18 + ldrh r1, [r6, #4] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r2, [r6, #6] + adds r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r7, r0, #0 + ldrh r1, [r5, #0x20] + mov r2, r8 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrh r2, [r5, #0x22] + lsls r1, r7, #0x10 + asrs r1, r1, #0x10 + subs r1, r1, r2 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl ArcTan2Neg + lsls r0, r0, #0x10 + movs r1, #0xf0 + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r4, r0, #0x10 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081041D0 + ldr r2, _08104210 + adds r0, r4, r2 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_081041D0: + movs r3, #0x80 + lsls r3, r3, #1 + str r4, [sp] + adds r0, r5, #0 + movs r1, #0 + adds r2, r3, #0 + bl TrySetSpriteRotScale + ldrh r0, [r6, #8] + strh r0, [r5, #0x2e] + mov r0, r8 + strh r0, [r5, #0x32] + strh r7, [r5, #0x36] + ldr r0, _08104214 + str r0, [r5, #0x1c] + ldr r1, _08104218 + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08104204: .4byte 0x020380D6 +_08104208: .4byte 0x020380BE +_0810420C: .4byte 0x020380D7 +_08104210: .4byte 0xFFFFA000 +_08104214: .4byte 0x080A67B5 +_08104218: .4byte 0x080A34C5 + thumb_func_end AnimSonicBoomProjectile + + thumb_func_start sub_0810421C +sub_0810421C: @ 0x0810421C + push {lr} + adds r3, r0, #0 + ldrh r0, [r3, #0x2e] + subs r1, r0, #1 + strh r1, [r3, #0x2e] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _08104246 + ldr r2, _0810424C + movs r0, #0x3c + ldrsh r1, [r3, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrh r1, [r0, #0xa] + subs r1, #1 + strh r1, [r0, #0xa] + adds r0, r3, #0 + bl DestroySprite +_08104246: + pop {r0} + bx r0 + .align 2, 0 +_0810424C: .4byte 0x03005B60 + thumb_func_end sub_0810421C + + thumb_func_start sub_08104250 +sub_08104250: @ 0x08104250 + push {r4, lr} + adds r2, r0, #0 + movs r0, #0x3c + ldrsh r1, [r2, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + ldr r1, _08104280 + adds r4, r0, r1 + movs r3, #0x2e + ldrsh r1, [r2, r3] + movs r3, #0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + ble _08104284 + ldrh r0, [r2, #0x34] + ldrh r1, [r2, #0x38] + adds r0, r0, r1 + strh r0, [r2, #0x38] + ldrh r0, [r2, #0x36] + ldrh r3, [r2, #0x3a] + adds r0, r0, r3 + b _08104292 + .align 2, 0 +_08104280: .4byte 0x03005B60 +_08104284: + ldrh r0, [r2, #0x38] + ldrh r1, [r2, #0x34] + subs r0, r0, r1 + strh r0, [r2, #0x38] + ldrh r0, [r2, #0x3a] + ldrh r1, [r2, #0x36] + subs r0, r0, r1 +_08104292: + 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, r0, r1 + strh r0, [r2, #0x32] + ldrh r1, [r4, #0x16] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081042B6 + lsls r0, r3, #0x10 + lsrs r0, r0, #0x18 + rsbs r0, r0, #0 + b _081042BA +_081042B6: + lsls r0, r3, #0x10 + lsrs r0, r0, #0x18 +_081042BA: + strh r0, [r2, #0x24] + ldrh r1, [r4, #0x18] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081042CE + ldrh r0, [r2, #0x32] + lsrs r0, r0, #8 + rsbs r0, r0, #0 + b _081042D2 +_081042CE: + ldrh r0, [r2, #0x32] + lsrs r0, r0, #8 +_081042D2: + strh r0, [r2, #0x26] + ldrh r0, [r2, #0x2e] + subs r1, r0, #1 + strh r1, [r2, #0x2e] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _081042E8 + movs r0, #0x1e + strh r0, [r2, #0x2e] + ldr r0, _081042F0 + str r0, [r2, #0x1c] +_081042E8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081042F0: .4byte 0x0810421D + thumb_func_end sub_08104250 + + thumb_func_start sub_081042F4 +sub_081042F4: @ 0x081042F4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + movs r0, #0x3c + ldrsh r1, [r7, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + ldr r1, _08104338 + adds r6, r0, r1 + ldrh r2, [r6, #0x16] + movs r1, #2 + rsbs r1, r1, #0 + 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, r1, r0 + strh r1, [r7, #0x32] + ldrh r1, [r6, #0x16] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0810433C + lsls r0, r2, #0x10 + lsrs r0, r0, #0x18 + rsbs r0, r0, #0 + b _08104340 + .align 2, 0 +_08104338: .4byte 0x03005B60 +_0810433C: + lsls r0, r2, #0x10 + lsrs r0, r0, #0x18 +_08104340: + strh r0, [r7, #0x24] + ldrh r1, [r6, #0x18] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08104354 + ldrh r0, [r7, #0x32] + lsrs r0, r0, #8 + rsbs r0, r0, #0 + b _08104358 +_08104354: + ldrh r0, [r7, #0x32] + lsrs r0, r0, #8 +_08104358: + strh r0, [r7, #0x26] + ldrh r0, [r7, #0x2e] + subs r1, r0, #1 + strh r1, [r7, #0x2e] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _08104424 + movs r4, #0 + movs r0, #8 + strh r0, [r7, #0x2e] + movs r0, #4 + strh r0, [r6, #0x12] + movs r0, #0x80 + lsls r0, r0, #5 + bl sub_08151600 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + 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, 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, #0x10 + asrs r0, r0, #0x10 + cmp r1, r0 + blt _081043A2 + subs r0, r3, r2 + b _081043A4 +_081043A2: + subs r0, r2, r3 +_081043A4: + lsls r0, r0, #0x18 + lsrs r4, r0, #0x10 + 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 _081043BC + subs r0, r3, r2 + b _081043BE +_081043BC: + subs r0, r2, r3 +_081043BE: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x10 + 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, #0x10 + asrs r0, r0, #0x10 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + adds r1, r5, #0 + bl sub_08151510 + adds r4, r0, #0 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + movs r6, #0xe0 + lsls r6, r6, #1 + adds r0, r6, #0 + bl sub_08151600 + adds r1, r0, #0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r0, r4, #0 + bl sub_08151510 + strh r0, [r7, #0x34] + mov r1, r8 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + adds r1, r5, #0 + bl sub_08151510 + adds r4, r0, #0 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + adds r0, r6, #0 + bl sub_08151600 + adds r1, r0, #0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r0, r4, #0 + bl sub_08151510 + strh r0, [r7, #0x36] + ldr r0, _08104430 + str r0, [r7, #0x1c] +_08104424: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08104430: .4byte 0x08104251 + thumb_func_end sub_081042F4 + + thumb_func_start sub_08104434 +sub_08104434: @ 0x08104434 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _08104458 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0xa + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08104452 + adds r0, r2, #0 + bl DestroyAnimVisualTask +_08104452: + pop {r0} + bx r0 + .align 2, 0 +_08104458: .4byte 0x03005B60 + thumb_func_end sub_08104434 + + thumb_func_start sub_0810445C +sub_0810445C: @ 0x0810445C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r1, _081044B0 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r5, r0, r1 + ldrh r0, [r5, #8] + subs r1, r0, #1 + strh r1, [r5, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _08104530 + ldr r0, _081044B4 + movs r2, #0x1a + ldrsh r1, [r5, r2] + movs r3, #0x1c + ldrsh r2, [r5, r3] + ldrb r3, [r5, #0xc] + ldrb r4, [r5, #0xa] + subs r3, r3, r4 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov ip, r0 + lsls r0, r0, #4 + add r0, ip + lsls r0, r0, #2 + ldr r1, _081044B8 + adds r6, r0, r1 + movs r1, #0x10 + ldrsh r0, [r5, r1] + cmp r0, #1 + beq _081044BC + cmp r0, #2 + beq _081044D2 + b _081044E0 + .align 2, 0 +_081044B0: .4byte 0x03005B60 +_081044B4: .4byte 0x0856EF94 +_081044B8: .4byte 0x020205AC +_081044BC: + ldrb r2, [r6, #3] + lsls r1, r2, #0x1a + lsrs r1, r1, #0x1b + movs r0, #0x18 + orrs r1, r0 + lsls r1, r1, #1 + subs r0, #0x57 + ands r0, r2 + orrs r0, r1 + strb r0, [r6, #3] + b _081044E0 +_081044D2: + ldrb r0, [r6, #3] + movs r1, #0x3f + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #0x10 + orrs r1, r0 + strb r1, [r6, #3] +_081044E0: + ldr r3, _08104538 + lsls r2, r7, #2 + adds r2, r2, r7 + lsls r2, r2, #3 + adds r4, r2, r3 + ldrh r0, [r4, #0x12] + ldrh r1, [r4, #0x14] + subs r0, r0, r1 + strh r0, [r6, #0x2e] + strh r7, [r6, #0x3c] + movs r1, #0xa + ldrsh r0, [r4, r1] + adds r0, #0xd + lsls r0, r0, #1 + adds r0, r0, r2 + adds r3, #8 + adds r0, r0, r3 + mov r2, ip + strh r2, [r0] + ldrh r0, [r4, #0xe] + strh r0, [r4, #8] + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + movs r0, #0x3f + rsbs r0, r0, #0 + bl BattleAnimAdjustPanning + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r0, #0x9a + bl PlaySE12WithPanning + movs r3, #0xa + ldrsh r0, [r4, r3] + cmp r0, #2 + ble _08104530 + ldr r0, _0810453C + str r0, [r4] +_08104530: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08104538: .4byte 0x03005B60 +_0810453C: .4byte 0x08104435 + thumb_func_end sub_0810445C + + thumb_func_start sub_08104540 +sub_08104540: @ 0x08104540 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r0, #0 + mov sb, r0 + movs r5, #0 + mov r0, sp + mov r1, sb + strh r1, [r0] + mov r4, sp + adds r4, #2 + strh r1, [r4] + bl IsContest + lsls r0, r0, #0x18 + mov sl, r4 + cmp r0, #0 + beq _081045AC + ldr r1, _0810459C + lsls r2, r7, #2 + adds r0, r2, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #2 + strh r1, [r0, #0x10] + ldr r3, _081045A0 + ldrh r0, [r3] + rsbs r0, r0, #0 + strh r0, [r3] + ldrh r1, [r3, #4] + movs r0, #1 + ands r0, r1 + mov r8, r2 + cmp r0, #0 + beq _081045A4 + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r1 + strh r0, [r3, #4] + b _08104606 + .align 2, 0 +_0810459C: .4byte 0x03005B60 +_081045A0: .4byte 0x020380BE +_081045A4: + movs r0, #1 + orrs r0, r1 + strh r0, [r3, #4] + b _08104606 +_081045AC: + ldr r1, _081045F0 + ldr r0, _081045F4 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + lsls r2, r7, #2 + mov r8, r2 + cmp r0, #0 + bne _08104606 + ldr r1, _081045F8 + adds r0, r2, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r3, [r0, #0x10] + ldr r2, _081045FC + ldrh r0, [r2] + rsbs r0, r0, #0 + strh r0, [r2] + ldrh r0, [r2, #2] + rsbs r0, r0, #0 + strh r0, [r2, #2] + ldrh r1, [r2, #4] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08104600 + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r1 + b _08104604 + .align 2, 0 +_081045F0: .4byte 0x02023D1A +_081045F4: .4byte 0x020380D7 +_081045F8: .4byte 0x03005B60 +_081045FC: .4byte 0x020380BE +_08104600: + movs r0, #1 + orrs r0, r1 +_08104604: + strh r0, [r2, #4] +_08104606: + ldr r5, _08104660 + ldrb r0, [r5] + movs r1, #0 + bl GetBattlerSpriteCoord + ldr r1, _08104664 + mov r3, r8 + adds r4, r3, r7 + lsls r4, r4, #3 + adds r4, r4, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x1a] + adds r6, r0, #0 + ldrb r0, [r5] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x1c] + mov sb, r0 + ldr r0, _08104668 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08104670 + ldr r4, _0810466C + ldrb r1, [r4] + movs r0, #2 + eors r0, r1 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08104670 + ldrb r0, [r4] + movs r1, #0 + mov r2, sp + mov r3, sl + bl SetAverageBattlerPositions + b _08104692 + .align 2, 0 +_08104660: .4byte 0x020380D6 +_08104664: .4byte 0x03005B60 +_08104668: .4byte 0x02022C90 +_0810466C: .4byte 0x020380D7 +_08104670: + mov r5, sp + ldr r4, _081046CC + ldrb r0, [r4] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5] + ldrb r0, [r4] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, sl + strh r0, [r1] +_08104692: + mov r4, sp + ldr r0, _081046D0 + mov r2, r8 + adds r1, r2, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + mov r2, sp + ldr r3, _081046D4 + ldrh r0, [r3] + ldrh r2, [r2] + adds r0, r0, r2 + strh r0, [r1, #0x1e] + strh r0, [r4] + ldrh r0, [r3, #2] + mov r3, sl + ldrh r3, [r3] + adds r0, r0, r3 + strh r0, [r1, #0x20] + mov r1, sl + strh r0, [r1] + mov r0, sp + ldrh r2, [r0] + movs r3, #0 + ldrsh r0, [r0, r3] + adds r1, r6, #0 + cmp r0, r1 + blt _081046D8 + subs r0, r2, r1 + b _081046DA + .align 2, 0 +_081046CC: .4byte 0x020380D7 +_081046D0: .4byte 0x03005B60 +_081046D4: .4byte 0x020380BE +_081046D8: + subs r0, r1, r2 +_081046DA: + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r4, r0, #0x10 + asrs r4, r4, #0x10 + ldr r5, _08104750 + ldrh r1, [r5, #4] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + bl sub_08151600 + adds r1, r0, #0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r0, r4, #0 + bl sub_08151510 + ldr r2, _08104754 + mov r3, r8 + adds r1, r3, r7 + lsls r1, r1, #3 + adds r6, r1, r2 + strh r0, [r6, #0x12] + movs r1, #0x12 + ldrsh r0, [r6, r1] + movs r1, #0x80 + bl sub_08151510 + strh r0, [r6, #0x14] + ldrh r0, [r5, #4] + strh r0, [r6, #0x16] + mov r2, sl + ldrh r1, [r2] + movs r3, #0 + ldrsh r0, [r2, r3] + mov r4, sb + cmp r0, r4 + blt _08104758 + subs r4, r1, r4 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + movs r1, #0x12 + ldrsh r0, [r6, r1] + bl sub_08151600 + adds r1, r0, #0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r0, r4, #0 + bl sub_08151510 + movs r1, #2 + rsbs r1, r1, #0 + ands r1, r0 + strh r1, [r6, #0x18] + b _08104778 + .align 2, 0 +_08104750: .4byte 0x020380BE +_08104754: .4byte 0x03005B60 +_08104758: + subs r4, r4, r1 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + movs r2, #0x12 + ldrsh r0, [r6, r2] + bl sub_08151600 + adds r1, r0, #0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r0, r4, #0 + bl sub_08151510 + movs r1, #1 + orrs r0, r1 + strh r0, [r6, #0x18] +_08104778: + ldr r1, _081047B8 + mov r3, r8 + adds r0, r3, r7 + lsls r0, r0, #3 + adds r5, r0, r1 + ldr r4, _081047BC + ldrh r0, [r4, #6] + strh r0, [r5, #0xe] + ldrh r1, [r4, #8] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _081047C8 + movs r0, #0x80 + eors r0, r1 + strh r0, [r4, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x3f + ble _081047F0 + ldr r0, _081047C0 + ldrb r0, [r0] + bl GetBattlerSpriteSubpriority + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _081047C4 + adds r1, r2, #0 + ldrh r4, [r4, #8] + adds r1, r1, r4 + adds r0, r0, r1 + b _08104800 + .align 2, 0 +_081047B8: .4byte 0x03005B60 +_081047BC: .4byte 0x020380BE +_081047C0: .4byte 0x020380D7 +_081047C4: .4byte 0x0000FFC0 +_081047C8: + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x3f + ble _081047F0 + ldr r0, _081047E8 + ldrb r0, [r0] + bl GetBattlerSpriteSubpriority + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _081047EC + adds r1, r3, #0 + ldrh r4, [r4, #8] + adds r1, r1, r4 + adds r0, r0, r1 + b _08104800 + .align 2, 0 +_081047E8: .4byte 0x020380D7 +_081047EC: .4byte 0x0000FFC0 +_081047F0: + ldr r0, _0810482C + ldrb r0, [r0] + bl GetBattlerSpriteSubpriority + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #8] + subs r0, r0, r1 +_08104800: + strh r0, [r5, #0xc] + ldr r0, _08104830 + mov r2, r8 + adds r1, r2, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r3, #0xc + ldrsh r0, [r1, r3] + cmp r0, #2 + bgt _08104818 + movs r0, #3 + strh r0, [r1, #0xc] +_08104818: + ldr r0, _08104834 + str r0, [r1] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0810482C: .4byte 0x020380D7 +_08104830: .4byte 0x03005B60 +_08104834: .4byte 0x0810445D + thumb_func_end sub_08104540 + + thumb_func_start sub_08104838 +sub_08104838: @ 0x08104838 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl InitSpritePosToAnimAttacker + ldr r0, _08104860 + ldrh r0, [r0, #2] + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x14 + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r0, r1 + strh r0, [r4, #0x2e] + ldr r0, _08104864 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08104860: .4byte 0x0856F084 +_08104864: .4byte 0x08104869 + thumb_func_end sub_08104838 + + thumb_func_start sub_08104868 +sub_08104868: @ 0x08104868 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + bne _081048CC + movs r0, #0 + strh r0, [r4, #0x30] + ldrh r5, [r4, #0x2e] + ldr r1, _081048D4 + adds r0, r5, #0 + adds r0, #8 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r7, [r0] + adds r6, r1, #0 + adds r1, r5, #0 + adds r1, #9 + lsls r0, r5, #1 + adds r0, r0, r6 + adds r2, r0, #0 + adds r2, #0x10 + movs r3, #7 + lsls r1, r1, #1 + adds r1, r1, r6 +_081048A0: + ldrh r0, [r1] + strh r0, [r2] + adds r1, #2 + adds r2, #2 + subs r3, #1 + cmp r3, #0 + bge _081048A0 + adds r0, r5, #0 + adds r0, #0xf + lsls r0, r0, #1 + adds r0, r0, r6 + strh r7, [r0] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x18 + bne _081048CC + adds r0, r4, #0 + bl DestroyAnimSprite +_081048CC: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081048D4: .4byte 0x020377B4 + thumb_func_end sub_08104868 + + thumb_func_start sub_081048D8 +sub_081048D8: @ 0x081048D8 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r5, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldr r4, _08104978 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + ldr r4, _0810497C + lsrs r0, r0, #0x18 + ldrh r1, [r4, #6] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + ldr r0, _08104980 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810491C + ldrh r0, [r4, #4] + rsbs r0, r0, #0 + strh r0, [r4, #4] +_0810491C: + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + ldrh r1, [r4, #4] + adds r0, r0, r1 + lsls r0, r0, #0x10 + ldrh r1, [r5, #0x20] + lsrs r6, r0, #0x10 + asrs r0, r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrh r2, [r5, #0x22] + lsls r1, r7, #0x10 + asrs r1, r1, #0x10 + subs r1, r1, r2 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl ArcTan2Neg + lsls r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + movs r3, #0x80 + lsls r3, r3, #1 + str r0, [sp] + adds r0, r5, #0 + movs r1, #0 + adds r2, r3, #0 + bl TrySetSpriteRotScale + ldrh r0, [r4, #8] + strh r0, [r5, #0x2e] + strh r6, [r5, #0x32] + strh r7, [r5, #0x36] + ldr r0, _08104984 + str r0, [r5, #0x1c] + ldr r1, _08104988 + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08104978: .4byte 0x020380D7 +_0810497C: .4byte 0x020380BE +_08104980: .4byte 0x020380D6 +_08104984: .4byte 0x080A68C9 +_08104988: .4byte 0x080A34C5 + thumb_func_end sub_081048D8 + + thumb_func_start sub_0810498C +sub_0810498C: @ 0x0810498C + ldr r1, _0810499C + strh r1, [r0, #0x32] + ldrh r1, [r0, #0x22] + adds r1, #8 + strh r1, [r0, #0x22] + ldr r1, _081049A0 + str r1, [r0, #0x1c] + bx lr + .align 2, 0 +_0810499C: .4byte 0x0000FFF0 +_081049A0: .4byte 0x081049A5 + thumb_func_end sub_0810498C + + thumb_func_start sub_081049A4 +sub_081049A4: @ 0x081049A4 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + adds r0, #0x80 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + strh r0, [r4, #0x24] + ldr r0, _08104A10 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081049C8 + ldrh r0, [r4, #0x24] + rsbs r0, r0, #0 + strh r0, [r4, #0x24] +_081049C8: + 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, #5 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x7e + ble _08104A08 + movs r0, #0 + strh r0, [r4, #0x30] + movs r1, #0x32 + ldrsh r0, [r4, r1] + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x34] + adds r0, #1 + strh r0, [r4, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + bne _08104A08 + adds r0, r4, #0 + bl DestroyAnimSprite +_08104A08: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08104A10: .4byte 0x020380D6 + thumb_func_end sub_081049A4 + + thumb_func_start sub_08104A14 +sub_08104A14: @ 0x08104A14 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + movs r0, #0x14 + strh r0, [r4, #0x2e] + ldr r5, _08104A60 + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x32] + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x36] + ldr r0, _08104A64 + 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, _08104A68 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08104A60: .4byte 0x020380D7 +_08104A64: .4byte 0x080A67B5 +_08104A68: .4byte 0x08104A6D + thumb_func_end sub_08104A14 + + thumb_func_start sub_08104A6C +sub_08104A6C: @ 0x08104A6C + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x3f + bl BattleAnimAdjustPanning + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r0, #0xa6 + bl PlaySE12WithPanning + ldrh r0, [r4, #0x24] + ldrh r1, [r4, #0x20] + adds r0, r0, r1 + movs r1, #0 + strh r0, [r4, #0x20] + ldrh r0, [r4, #0x26] + ldrh r2, [r4, #0x22] + adds r0, r0, r2 + strh r0, [r4, #0x22] + strh r1, [r4, #0x26] + strh r1, [r4, #0x24] + movs r2, #0 + movs r1, #7 + adds r0, r4, #0 + adds r0, #0x3c +_08104AA0: + strh r2, [r0] + subs r0, #2 + subs r1, #1 + cmp r1, #0 + bge _08104AA0 + bl Random2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #7 + ands r0, r1 + ldr r2, _08104AE8 + adds r1, r2, #0 + subs r1, r1, r0 + strh r1, [r4, #0x3a] + bl Random2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa0 + bl __umodsi3 + adds r0, #0xa0 + strh r0, [r4, #0x3c] + ldr r0, _08104AEC + 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 +_08104AE8: .4byte 0x0000FFF4 +_08104AEC: .4byte 0x08104AF1 + thumb_func_end sub_08104A6C + + thumb_func_start sub_08104AF0 +sub_08104AF0: @ 0x08104AF0 + 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, r0, #0x10 + asrs r2, r0, #0x18 + strh r2, [r4, #0x24] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08104B0E + rsbs r0, r2, #0 + strh r0, [r4, #0x24] +_08104B0E: + 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, #8 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x7e + ble _08104B4E + movs r0, #0 + strh r0, [r4, #0x30] + movs r1, #0x32 + ldrsh r0, [r4, r1] + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x34] + adds r0, #1 + strh r0, [r4, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + bne _08104B4E + adds r0, r4, #0 + bl DestroyAnimSprite +_08104B4E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08104AF0 + + thumb_func_start Anim_RazorWindTornado +Anim_RazorWindTornado: @ 0x08104B54 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl InitSpritePosToAnimAttacker + ldr r0, _08104BA4 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08104B72 + ldrh r0, [r4, #0x22] + adds r0, #0x10 + strh r0, [r4, #0x22] +_08104B72: + ldr r1, _08104BA8 + ldrh r0, [r1, #8] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #4] + strh r0, [r4, #0x30] + ldrh r0, [r1, #0xa] + strh r0, [r4, #0x32] + ldrh r0, [r1, #0xc] + strh r0, [r4, #0x34] + ldrh r0, [r1, #6] + strh r0, [r4, #0x36] + ldr r0, _08104BAC + str r0, [r4, #0x1c] + ldr r1, _08104BB0 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + ldr r1, [r4, #0x1c] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08104BA4: .4byte 0x020380D6 +_08104BA8: .4byte 0x020380BE +_08104BAC: .4byte 0x080A5BB5 +_08104BB0: .4byte 0x080A34C5 + thumb_func_end Anim_RazorWindTornado + + thumb_func_start Anim_ViceGripPincer +Anim_ViceGripPincer: @ 0x08104BB4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + movs r7, #0x20 + ldr r4, _08104C30 + movs r0, #0x10 + mov r8, r0 + ldr r6, _08104C34 + ldr r0, _08104C38 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _08104BE0 + adds r7, r4, #0 + movs r4, #0x20 + mov r8, r6 + movs r6, #0x10 + adds r0, r5, #0 + movs r1, #1 + bl StartSpriteAnim +_08104BE0: + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + ldrh r1, [r5, #0x20] + adds r0, r0, r1 + strh r0, [r5, #0x20] + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + ldrh r1, [r5, #0x22] + adds r0, r0, r1 + strh r0, [r5, #0x22] + movs r0, #6 + strh r0, [r5, #0x2e] + ldr r4, _08104C3C + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add r0, r8 + strh r0, [r5, #0x32] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r6 + strh r0, [r5, #0x36] + ldr r0, _08104C40 + str r0, [r5, #0x1c] + ldr r1, _08104C44 + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08104C30: .4byte 0x0000FFE0 +_08104C34: .4byte 0x0000FFF0 +_08104C38: .4byte 0x020380BE +_08104C3C: .4byte 0x020380D7 +_08104C40: .4byte 0x080A67B5 +_08104C44: .4byte 0x08104C49 + thumb_func_end Anim_ViceGripPincer + + thumb_func_start Anim_ViceGripPincerStep +Anim_ViceGripPincerStep: @ 0x08104C48 + push {lr} + adds r2, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08104C5E + adds r0, r2, #0 + bl DestroyAnimSprite +_08104C5E: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Anim_ViceGripPincerStep + + thumb_func_start Anim_GuillotinePincer +Anim_GuillotinePincer: @ 0x08104C64 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + movs r0, #0x20 + mov r8, r0 + ldr r4, _08104CF8 + movs r2, #0x10 + mov sb, r2 + ldr r6, _08104CFC + ldr r7, _08104D00 + ldrh r1, [r7] + movs r2, #0 + ldrsh r0, [r7, r2] + cmp r0, #0 + beq _08104C98 + mov r8, r4 + movs r4, #0x20 + mov sb, r6 + movs r6, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl StartSpriteAnim +_08104C98: + mov r0, r8 + lsls r1, r0, #0x10 + asrs r1, r1, #0x10 + ldrh r2, [r5, #0x20] + adds r1, r1, r2 + strh r1, [r5, #0x20] + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + ldrh r2, [r5, #0x22] + adds r0, r0, r2 + strh r0, [r5, #0x22] + movs r0, #6 + strh r0, [r5, #0x2e] + strh r1, [r5, #0x30] + ldr r4, _08104D04 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add r0, sb + strh r0, [r5, #0x32] + ldrh r0, [r5, #0x22] + strh r0, [r5, #0x34] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r6 + strh r0, [r5, #0x36] + adds r0, r5, #0 + bl InitAnimLinearTranslation + ldrh r0, [r7] + strh r0, [r5, #0x38] + ldrh r0, [r5, #0x2e] + strh r0, [r5, #0x3a] + ldr r0, _08104D08 + str r0, [r5, #0x1c] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08104CF8: .4byte 0x0000FFE0 +_08104CFC: .4byte 0x0000FFF0 +_08104D00: .4byte 0x020380BE +_08104D04: .4byte 0x020380D7 +_08104D08: .4byte 0x08104D0D + thumb_func_end Anim_GuillotinePincer + + thumb_func_start Anim_GuillotinePincerStep1 +Anim_GuillotinePincerStep1: @ 0x08104D0C + push {r4, lr} + adds r4, r0, #0 + bl AnimTranslateLinear + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08104D70 + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08104D70 + 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, r0, r1 + movs r2, #0 + strh r0, [r4, #0x20] + ldrh r0, [r4, #0x26] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] + movs r0, #2 + strh r0, [r4, #0x24] + ldr r0, _08104D78 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x3a] + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x30] + movs r1, #1 + 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, _08104D7C + str r0, [r4, #0x1c] +_08104D70: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08104D78: .4byte 0x0000FFFE +_08104D7C: .4byte 0x08104D81 + thumb_func_end Anim_GuillotinePincerStep1 + + thumb_func_start Anim_GuillotinePincerStep2 +Anim_GuillotinePincerStep2: @ 0x08104D80 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x34 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _08104D98 + ldrh r0, [r4, #0x24] + rsbs r0, r0, #0 + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x26] + rsbs r0, r0, #0 + strh r0, [r4, #0x26] +_08104D98: + ldrh r0, [r4, #0x34] + movs r1, #1 + eors r0, r1 + movs r1, #0 + strh r0, [r4, #0x34] + ldrh r0, [r4, #0x36] + adds r0, #1 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x33 + bne _08104DDA + 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 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldrh r0, [r4, #0x38] + movs r1, #1 + eors r1, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim + ldr r0, _08104DE0 + str r0, [r4, #0x1c] +_08104DDA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08104DE0: .4byte 0x08104DE5 + thumb_func_end Anim_GuillotinePincerStep2 + + thumb_func_start Anim_GuillotinePincerStep3 +Anim_GuillotinePincerStep3: @ 0x08104DE4 + push {r4, lr} + adds r4, r0, #0 + bl AnimTranslateLinear + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08104DF8 + adds r0, r4, #0 + bl DestroyAnimSprite +_08104DF8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Anim_GuillotinePincerStep3 + + thumb_func_start AnimTask_GrowAndGreyscale +AnimTask_GrowAndGreyscale: @ 0x08104E00 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r0, #1 + bl GetAnimBattlerSpriteId + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #1 + bl PrepareBattlerSpriteForRotScale + adds r0, r4, #0 + movs r1, #0xd0 + movs r2, #0xd0 + movs r3, #0 + bl SetSpriteRotScale + ldr r1, _08104E58 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #5] + lsrs r0, r0, #4 + adds r0, #0x10 + movs r1, #0 + bl SetGreyscaleOrOriginalPalette + ldr r1, _08104E5C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0x50 + strh r1, [r0, #8] + ldr r1, _08104E60 + str r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08104E58: .4byte 0x020205AC +_08104E5C: .4byte 0x03005B60 +_08104E60: .4byte 0x08104E65 + thumb_func_end AnimTask_GrowAndGreyscale + + thumb_func_start AnimTask_GrowAndGreyscaleStep +AnimTask_GrowAndGreyscaleStep: @ 0x08104E64 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _08104EBC + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #8] + subs r1, #1 + strh r1, [r0, #8] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _08104EB4 + movs r0, #1 + bl GetAnimBattlerSpriteId + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl ResetSpriteRotScale + ldr r1, _08104EC0 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #5] + lsrs r0, r0, #4 + adds r0, #0x10 + movs r1, #1 + bl SetGreyscaleOrOriginalPalette + adds r0, r5, #0 + bl DestroyAnimVisualTask +_08104EB4: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08104EBC: .4byte 0x03005B60 +_08104EC0: .4byte 0x020205AC + thumb_func_end AnimTask_GrowAndGreyscaleStep + + thumb_func_start AnimTask_Minimize +AnimTask_Minimize: @ 0x08104EC4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _08104F10 + adds r4, r4, r0 + movs r0, #0 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r5, #0 + strh r0, [r4, #8] + movs r1, #0 + bl PrepareBattlerSpriteForRotScale + strh r5, [r4, #0xa] + strh r5, [r4, #0xc] + strh r5, [r4, #0xe] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x10] + strh r5, [r4, #0x12] + strh r5, [r4, #0x14] + ldr r0, _08104F14 + ldrb r0, [r0] + bl GetBattlerSpriteSubpriority + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x16] + ldr r0, _08104F18 + str r0, [r4] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08104F10: .4byte 0x03005B60 +_08104F14: .4byte 0x020380D6 +_08104F18: .4byte 0x08104F1D + thumb_func_end AnimTask_Minimize + + thumb_func_start AnimTask_MinimizeStep1 +AnimTask_MinimizeStep1: @ 0x08104F1C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _08104F40 + adds r4, r0, r1 + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #5 + bls _08104F36 + b _08105046 +_08104F36: + lsls r0, r0, #2 + ldr r1, _08104F44 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08104F40: .4byte 0x03005B60 +_08104F44: .4byte 0x08104F48 +_08104F48: @ jump table + .4byte _08104F60 @ case 0 + .4byte _08104FA8 @ case 1 + .4byte _08104FDE @ case 2 + .4byte _08104FE4 @ case 3 + .4byte _08104FF4 @ case 4 + .4byte _08105028 @ case 5 +_08104F60: + movs r2, #0xc + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _08104F70 + cmp r0, #3 + beq _08104F70 + cmp r0, #6 + bne _08104F78 +_08104F70: + adds r0, r4, #0 + adds r1, r5, #0 + bl CreateMinimizeSprite +_08104F78: + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + ldrh r0, [r4, #0x10] + adds r0, #0x28 + strh r0, [r4, #0x10] + ldrb r0, [r4, #8] + movs r1, #0x10 + ldrsh r2, [r4, r1] + adds r1, r2, #0 + movs r3, #0 + bl SetSpriteRotScale + ldrb r0, [r4, #8] + bl SetBattlerSpriteYOffsetFromYScale + movs r2, #0xc + ldrsh r0, [r4, r2] + cmp r0, #0x20 + bne _08105046 + ldrh r0, [r4, #0x12] + adds r0, #1 + strh r0, [r4, #0x12] + b _08105020 +_08104FA8: + movs r1, #0x14 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08105046 + movs r2, #0x12 + ldrsh r1, [r4, r2] + cmp r1, #3 + bne _08104FBE + strh r0, [r4, #0xc] + strh r1, [r4, #0xa] + b _08105046 +_08104FBE: + strh r0, [r4, #0xc] + strh r0, [r4, #0xe] + movs r2, #0x80 + lsls r2, r2, #1 + strh r2, [r4, #0x10] + ldrb r0, [r4, #8] + adds r1, r2, #0 + movs r3, #0 + bl SetSpriteRotScale + ldrb r0, [r4, #8] + bl SetBattlerSpriteYOffsetFromYScale + movs r0, #2 + strh r0, [r4, #0xa] + b _08105046 +_08104FDE: + movs r0, #0 + strh r0, [r4, #0xa] + b _08105046 +_08104FE4: + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x20 + ble _08105046 + b _0810501C +_08104FF4: + ldrh r0, [r4, #0xc] + adds r0, #2 + strh r0, [r4, #0xc] + ldrh r0, [r4, #0x10] + subs r0, #0x50 + strh r0, [r4, #0x10] + ldrb r0, [r4, #8] + movs r1, #0x10 + ldrsh r2, [r4, r1] + adds r1, r2, #0 + movs r3, #0 + bl SetSpriteRotScale + ldrb r0, [r4, #8] + bl SetBattlerSpriteYOffsetFromYScale + movs r2, #0xc + ldrsh r0, [r4, r2] + cmp r0, #0x20 + bne _08105046 +_0810501C: + movs r0, #0 + strh r0, [r4, #0xc] +_08105020: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + b _08105046 +_08105028: + ldrb r0, [r4, #8] + bl ResetSpriteRotScale + ldr r2, _0810504C + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0 + strh r1, [r0, #0x26] + adds r0, r5, #0 + bl DestroyAnimVisualTask +_08105046: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810504C: .4byte 0x020205AC + thumb_func_end AnimTask_MinimizeStep1 + + thumb_func_start CreateMinimizeSprite +CreateMinimizeSprite: @ 0x08105050 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sb, r1 + movs r0, #0 + bl CloneBattlerSpriteWithBlend + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + lsls r0, r0, #0x10 + asrs r4, r0, #0x10 + cmp r4, #0 + blt _0810512A + bl AllocOamMatrix + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0xff + bne _08105094 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + ldr r1, _08105090 + adds r0, r0, r1 + bl obj_delete_but_dont_free_vram + b _0810512A + .align 2, 0 +_08105090: .4byte 0x020205AC +_08105094: + ldr r5, _08105138 + lsls r3, r4, #4 + adds r3, r3, r4 + lsls r3, r3, #2 + adds r4, r3, r5 + ldrb r1, [r4, #1] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #1] + 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, #3] + movs r0, #0x3f + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #3] + ldrb r0, [r7, #0x16] + ldrb r1, [r7, #0xe] + subs r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x43 + strb r0, [r1] + ldrh r0, [r7, #0xe] + adds r0, #1 + strh r0, [r7, #0xe] + ldrh r0, [r7, #0x14] + adds r0, #1 + strh r0, [r7, #0x14] + movs r0, #0x10 + strh r0, [r4, #0x2e] + mov r0, sb + strh r0, [r4, #0x30] + movs r0, #6 + strh r0, [r4, #0x32] + adds r5, #0x1c + adds r3, r3, r5 + ldr r0, _0810513C + str r0, [r3] + mov r1, r8 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x10 + ldrsh r2, [r7, r1] + adds r1, r2, #0 + movs r3, #0 + bl SetSpriteRotScale + ldrb r0, [r4, #1] + movs r3, #4 + rsbs r3, r3, #0 + ands r3, r0 + movs r0, #1 + orrs r3, r0 + strb r3, [r4, #1] + lsrs r1, r3, #6 + ldrb r2, [r4, #3] + lsrs r2, r2, #6 + lsls r3, r3, #0x1e + lsrs r3, r3, #0x1e + adds r0, r4, #0 + bl CalcCenterToCornerVec +_0810512A: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08105138: .4byte 0x020205AC +_0810513C: .4byte 0x08105141 + thumb_func_end CreateMinimizeSprite + + thumb_func_start ClonedMinizeSprite_Step +ClonedMinizeSprite_Step: @ 0x08105140 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + subs r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0810517E + ldr r3, _08105184 + movs r0, #0x32 + ldrsh r1, [r4, r0] + lsls r1, r1, #1 + movs r0, #0x30 + ldrsh r2, [r4, r0] + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r3, #8 + adds r1, r1, r3 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + ldrb r0, [r4, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + adds r0, r4, #0 + bl obj_delete_but_dont_free_vram +_0810517E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08105184: .4byte 0x03005B60 + thumb_func_end ClonedMinizeSprite_Step + + thumb_func_start AnimTask_Splash +AnimTask_Splash: @ 0x08105188 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _081051AC + adds r4, r0, r1 + ldr r5, _081051B0 + movs r1, #2 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _081051B4 + adds r0, r2, #0 + bl DestroyAnimVisualTask + b _081051DA + .align 2, 0 +_081051AC: .4byte 0x03005B60 +_081051B0: .4byte 0x020380BE +_081051B4: + ldrb r0, [r5] + bl GetAnimBattlerSpriteId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r2, #0 + strh r1, [r4, #8] + strh r2, [r4, #0xa] + ldrh r0, [r5, #2] + strh r0, [r4, #0xc] + strh r2, [r4, #0xe] + strh r2, [r4, #0x10] + ldr r2, _081051E0 + adds r0, r4, #0 + bl PrepareAffineAnimInTaskData + ldr r0, _081051E4 + str r0, [r4] +_081051DA: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081051E0: .4byte 0x0856F1CC +_081051E4: .4byte 0x081051E9 + thumb_func_end AnimTask_Splash + + thumb_func_start AnimTask_SplashStep +AnimTask_SplashStep: @ 0x081051E8 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _0810520C + adds r4, r0, r1 + movs r0, #0xa + ldrsh r5, [r4, r0] + cmp r5, #1 + beq _08105250 + cmp r5, #1 + bgt _08105210 + cmp r5, #0 + beq _0810521A + b _081052F8 + .align 2, 0 +_0810520C: .4byte 0x03005B60 +_08105210: + cmp r5, #2 + beq _08105284 + cmp r5, #3 + beq _081052B4 + b _081052F8 +_0810521A: + adds r0, r4, #0 + bl RunAffineAnimFromTaskData + ldrh r2, [r4, #0x10] + adds r2, #3 + strh r2, [r4, #0x10] + ldr r3, _0810524C + movs r0, #8 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r0, #0x26] + adds r1, r1, r2 + strh r1, [r0, #0x26] + ldrh r0, [r4, #0xe] + adds r0, #1 + strh r0, [r4, #0xe] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + ble _081052F8 + strh r5, [r4, #0xe] + b _081052AC + .align 2, 0 +_0810524C: .4byte 0x020205AC +_08105250: + adds r0, r4, #0 + bl RunAffineAnimFromTaskData + ldr r2, _08105280 + movs r0, #8 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r4, #0x10] + ldrh r2, [r0, #0x26] + adds r1, r1, r2 + strh r1, [r0, #0x26] + ldrh r0, [r4, #0xe] + adds r0, #1 + strh r0, [r4, #0xe] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + ble _081052F8 + movs r0, #0 + strh r0, [r4, #0xe] + b _081052AC + .align 2, 0 +_08105280: .4byte 0x020205AC +_08105284: + movs r1, #0x10 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _081052AC + ldr r2, _081052A8 + movs r0, #8 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x26] + subs r1, #2 + strh r1, [r0, #0x26] + ldrh r0, [r4, #0x10] + subs r0, #2 + strh r0, [r4, #0x10] + b _081052F8 + .align 2, 0 +_081052A8: .4byte 0x020205AC +_081052AC: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + b _081052F8 +_081052B4: + adds r0, r4, #0 + bl RunAffineAnimFromTaskData + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _081052F8 + ldrh r0, [r4, #0xc] + subs r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _081052EC + ldr r2, _081052E8 + movs r0, #8 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r5, [r0, #0x26] + adds r0, r6, #0 + bl DestroyAnimVisualTask + b _081052F8 + .align 2, 0 +_081052E8: .4byte 0x020205AC +_081052EC: + ldrb r1, [r4, #8] + ldr r2, _08105300 + adds r0, r4, #0 + bl PrepareAffineAnimInTaskData + strh r5, [r4, #0xa] +_081052F8: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08105300: .4byte 0x0856F1CC + thumb_func_end AnimTask_SplashStep + + thumb_func_start sub_08105304 +sub_08105304: @ 0x08105304 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _08105334 + adds r4, r4, r0 + movs r0, #0 + bl GetAnimBattlerSpriteId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _08105338 + adds r0, r4, #0 + bl PrepareAffineAnimInTaskData + ldr r0, _0810533C + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08105334: .4byte 0x03005B60 +_08105338: .4byte 0x0856F1EC +_0810533C: .4byte 0x08105341 + thumb_func_end sub_08105304 + + thumb_func_start sub_08105340 +sub_08105340: @ 0x08105340 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _08105368 + adds r0, r0, r1 + bl RunAffineAnimFromTaskData + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08105360 + adds r0, r4, #0 + bl DestroyAnimVisualTask +_08105360: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08105368: .4byte 0x03005B60 + thumb_func_end sub_08105340 + + thumb_func_start Anim_BreathPuff +Anim_BreathPuff: @ 0x0810536C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0810539C + ldrb r0, [r5] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081053A0 + adds r0, r4, #0 + movs r1, #0 + bl StartSpriteAnim + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #0x20 + strh r0, [r4, #0x20] + movs r0, #0x40 + b _081053BA + .align 2, 0 +_0810539C: .4byte 0x020380D6 +_081053A0: + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAnim + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, #0x20 + strh r0, [r4, #0x20] + ldr r0, _081053EC +_081053BA: + strh r0, [r4, #0x30] + ldr r0, _081053F0 + ldrb r0, [r0] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + 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, _081053F4 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _081053F8 + str r0, [r4, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081053EC: .4byte 0x0000FFC0 +_081053F0: .4byte 0x020380D6 +_081053F4: .4byte 0x080A34C5 +_081053F8: .4byte 0x080A5E35 + thumb_func_end Anim_BreathPuff + + thumb_func_start Anim_AngerMark +Anim_AngerMark: @ 0x081053FC + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r0, _08105410 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08105418 + ldr r0, _08105414 + b _0810541A + .align 2, 0 +_08105410: .4byte 0x020380BE +_08105414: .4byte 0x020380D6 +_08105418: + ldr r0, _08105478 +_0810541A: + ldrb r5, [r0] + adds r0, r5, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08105434 + ldr r1, _0810547C + movs r2, #2 + ldrsh r0, [r1, r2] + rsbs r0, r0, #0 + strh r0, [r1, #2] +_08105434: + adds r0, r5, #0 + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + ldr r4, _0810547C + lsrs r0, r0, #0x18 + ldrh r1, [r4, #2] + adds r0, r0, r1 + strh r0, [r6, #0x20] + adds r0, r5, #0 + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r4, [r4, #4] + adds r0, r0, r4 + strh r0, [r6, #0x22] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + bgt _08105466 + movs r0, #8 + strh r0, [r6, #0x22] +_08105466: + ldr r1, _08105480 + adds r0, r6, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _08105484 + str r0, [r6, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08105478: .4byte 0x020380D7 +_0810547C: .4byte 0x020380BE +_08105480: .4byte 0x080A6015 +_08105484: .4byte 0x080A6085 + thumb_func_end Anim_AngerMark + + thumb_func_start sub_08105488 +sub_08105488: @ 0x08105488 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _081054BC + adds r4, r4, r0 + movs r0, #0 + bl GetAnimBattlerSpriteId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0 + strh r1, [r4, #8] + strh r0, [r4, #0xa] + ldr r2, _081054C0 + adds r0, r4, #0 + bl PrepareAffineAnimInTaskData + ldr r0, _081054C4 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081054BC: .4byte 0x03005B60 +_081054C0: .4byte 0x0856F288 +_081054C4: .4byte 0x081054C9 + thumb_func_end sub_08105488 + + thumb_func_start AnimTask_GrowAndShrinkStep +AnimTask_GrowAndShrinkStep: @ 0x081054C8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _081054F0 + adds r0, r0, r1 + bl RunAffineAnimFromTaskData + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081054E8 + adds r0, r4, #0 + bl DestroyAnimVisualTask +_081054E8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081054F0: .4byte 0x03005B60 + thumb_func_end AnimTask_GrowAndShrinkStep + + thumb_func_start sub_081054F4 +sub_081054F4: @ 0x081054F4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _08105568 + adds r4, r1, r0 + movs r0, #0 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0 + strh r0, [r4, #8] + strh r2, [r4, #0xa] + movs r0, #4 + strh r0, [r4, #0xc] + movs r0, #7 + strh r0, [r4, #0xe] + movs r0, #3 + strh r0, [r4, #0x10] + ldr r3, _0810556C + movs r0, #8 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r0, [r0, #0x20] + strh r0, [r4, #0x12] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r0, [r0, #0x22] + strh r0, [r4, #0x14] + strh r2, [r4, #0x16] + strh r2, [r4, #0x18] + movs r0, #2 + strh r0, [r4, #0x1a] + ldr r0, _08105570 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0810555E + movs r1, #0xc + ldrsh r0, [r4, r1] + rsbs r0, r0, #0 + strh r0, [r4, #0xc] +_0810555E: + ldr r0, _08105574 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08105568: .4byte 0x03005B60 +_0810556C: .4byte 0x020205AC +_08105570: .4byte 0x020380D6 +_08105574: .4byte 0x08105579 + thumb_func_end sub_081054F4 + + thumb_func_start sub_08105578 +sub_08105578: @ 0x08105578 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _081055C0 + adds r3, r0, r1 + ldrh r0, [r3, #0x16] + adds r0, #1 + strh r0, [r3, #0x16] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + ble _081055DE + movs r0, #0 + strh r0, [r3, #0x16] + ldrh r0, [r3, #0x18] + adds r0, #1 + strh r0, [r3, #0x18] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _081055C8 + ldr r2, _081055C4 + movs r0, #8 + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r3, #0x1a] + ldrh r2, [r0, #0x22] + adds r1, r1, r2 + b _081055DC + .align 2, 0 +_081055C0: .4byte 0x03005B60 +_081055C4: .4byte 0x020205AC +_081055C8: + ldr r2, _081055F0 + movs r5, #8 + ldrsh r1, [r3, r5] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x22] + ldrh r2, [r3, #0x1a] + subs r1, r1, r2 +_081055DC: + strh r1, [r0, #0x22] +_081055DE: + movs r1, #0xa + ldrsh r0, [r3, r1] + cmp r0, #1 + beq _0810562C + cmp r0, #1 + bgt _081055F4 + cmp r0, #0 + beq _081055FA + b _081056BC + .align 2, 0 +_081055F0: .4byte 0x020205AC +_081055F4: + cmp r0, #2 + beq _0810565C + b _081056BC +_081055FA: + ldr r2, _08105628 + movs r5, #8 + ldrsh r1, [r3, r5] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r3, #0xc] + ldrh r2, [r0, #0x20] + adds r1, r1, r2 + strh r1, [r0, #0x20] + ldrh r0, [r3, #0xe] + subs r0, #1 + strh r0, [r3, #0xe] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _081056BC + movs r0, #0xe + strh r0, [r3, #0xe] + movs r0, #1 + strh r0, [r3, #0xa] + b _081056BC + .align 2, 0 +_08105628: .4byte 0x020205AC +_0810562C: + ldr r2, _08105658 + movs r5, #8 + ldrsh r1, [r3, r5] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x20] + ldrh r2, [r3, #0xc] + subs r1, r1, r2 + strh r1, [r0, #0x20] + ldrh r0, [r3, #0xe] + subs r0, #1 + strh r0, [r3, #0xe] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _081056BC + movs r0, #7 + strh r0, [r3, #0xe] + movs r0, #2 + strh r0, [r3, #0xa] + b _081056BC + .align 2, 0 +_08105658: .4byte 0x020205AC +_0810565C: + ldr r2, _08105694 + movs r0, #8 + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r3, #0xc] + ldrh r5, [r0, #0x20] + adds r1, r1, r5 + strh r1, [r0, #0x20] + ldrh r0, [r3, #0xe] + subs r0, #1 + strh r0, [r3, #0xe] + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + cmp r1, #0 + bne _081056BC + ldrh r0, [r3, #0x10] + subs r0, #1 + strh r0, [r3, #0x10] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08105698 + movs r0, #7 + strh r0, [r3, #0xe] + strh r1, [r3, #0xa] + b _081056BC + .align 2, 0 +_08105694: .4byte 0x020205AC +_08105698: + ldrh r1, [r3, #0x18] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081056B6 + movs r0, #8 + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x22] + ldrh r2, [r3, #0x1a] + subs r1, r1, r2 + strh r1, [r0, #0x22] +_081056B6: + adds r0, r4, #0 + bl DestroyAnimVisualTask +_081056BC: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08105578 + + thumb_func_start sub_081056C4 +sub_081056C4: @ 0x081056C4 + push {r4, r5, r6, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _08105714 + adds r5, r1, r0 + ldr r4, _08105718 + ldrb r0, [r4] + bl GetBattlerYCoordWithElevation + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #0x20 + movs r1, #0 + strh r0, [r5, #8] + movs r0, #4 + strh r0, [r5, #0xa] + strh r1, [r5, #0xc] + strh r1, [r5, #0xe] + strh r1, [r5, #0x10] + strh r1, [r5, #0x12] + ldrb r0, [r4] + bl GetBattlerSpriteCoordAttr + strh r0, [r5, #0x26] + ldrb r0, [r4] + bl GetBattlerSpriteBGPriorityRank + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08105724 + ldr r0, _0810571C + ldrh r0, [r0] + strh r0, [r5, #0x14] + ldr r0, _08105720 + b _0810572C + .align 2, 0 +_08105714: .4byte 0x03005B60 +_08105718: .4byte 0x020380D7 +_0810571C: .4byte 0x02022ACC +_08105720: .4byte 0x04000014 +_08105724: + ldr r0, _08105790 + ldrh r0, [r0] + strh r0, [r5, #0x14] + ldr r0, _08105794 +_0810572C: + str r0, [sp] + ldrh r0, [r5, #8] + adds r1, r0, #0 + subs r1, #0x40 + lsls r2, r1, #0x10 + lsls r0, r0, #0x10 + cmp r2, r0 + bgt _0810576A + ldr r4, _08105798 + movs r0, #0xf0 + lsls r0, r0, #3 + adds r6, r4, r0 +_08105744: + asrs r3, r2, #0x10 + cmp r3, #0 + blt _0810575C + lsls r1, r3, #1 + adds r2, r1, r4 + ldrh r0, [r5, #0x14] + adds r0, #0xf0 + strh r0, [r2] + adds r1, r1, r6 + ldrh r0, [r5, #0x14] + adds r0, #0xf0 + strh r0, [r1] +_0810575C: + adds r0, r3, #1 + lsls r2, r0, #0x10 + asrs r1, r2, #0x10 + movs r3, #8 + ldrsh r0, [r5, r3] + cmp r1, r0 + ble _08105744 +_0810576A: + ldr r0, _0810579C + str r0, [sp, #4] + mov r1, sp + movs r2, #0 + movs r0, #1 + strb r0, [r1, #8] + mov r0, sp + strb r2, [r0, #9] + ldr r0, [sp] + ldr r1, [sp, #4] + ldr r2, [sp, #8] + bl ScanlineEffect_SetParams + ldr r0, _081057A0 + str r0, [r5] + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08105790: .4byte 0x02022AD0 +_08105794: .4byte 0x04000018 +_08105798: .4byte 0x020388C8 +_0810579C: .4byte 0xA2600001 +_081057A0: .4byte 0x081057A5 + thumb_func_end sub_081056C4 + + thumb_func_start sub_081057A4 +sub_081057A4: @ 0x081057A4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _081057C4 + adds r3, r0, r1 + movs r1, #0x10 + ldrsh r0, [r3, r1] + cmp r0, #0 + beq _081057C8 + cmp r0, #1 + beq _081057DE + b _0810585E + .align 2, 0 +_081057C4: .4byte 0x03005B60 +_081057C8: + ldrh r0, [r3, #0x12] + adds r0, #1 + strh r0, [r3, #0x12] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x14 + ble _0810585E + ldrh r0, [r3, #0x10] + adds r0, #1 + strh r0, [r3, #0x10] + b _0810585E +_081057DE: + ldrh r0, [r3, #0xa] + adds r0, #1 + strh r0, [r3, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + ble _0810585E + movs r0, #0 + strh r0, [r3, #0xa] + ldrh r1, [r3, #0xe] + movs r0, #3 + ands r0, r1 + strh r0, [r3, #0xc] + ldrh r0, [r3, #8] + subs r0, r0, r1 + strh r0, [r3, #0x12] + movs r2, #0xc + ldrsh r1, [r3, r2] + cmp r1, #1 + beq _08105814 + cmp r1, #1 + ble _0810581C + cmp r1, #2 + beq _08105818 + cmp r1, #3 + beq _08105818 + b _0810581C +_08105814: + subs r0, #2 + b _0810581A +_08105818: + adds r0, #1 +_0810581A: + strh r0, [r3, #0x12] +_0810581C: + movs r1, #0x12 + ldrsh r0, [r3, r1] + cmp r0, #0 + blt _08105840 + ldr r2, _08105864 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r1, [r3, #0x14] + strh r1, [r0] + movs r1, #0x12 + ldrsh r0, [r3, r1] + lsls r0, r0, #1 + movs r1, #0xf0 + lsls r1, r1, #3 + adds r2, r2, r1 + adds r0, r0, r2 + ldrh r1, [r3, #0x14] + strh r1, [r0] +_08105840: + ldrh r0, [r3, #0xe] + adds r0, #1 + strh r0, [r3, #0xe] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x26 + ldrsh r1, [r3, r2] + cmp r0, r1 + blt _0810585E + ldr r1, _08105868 + movs r0, #3 + strb r0, [r1, #0x15] + adds r0, r4, #0 + bl DestroyAnimVisualTask +_0810585E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08105864: .4byte 0x020388C8 +_08105868: .4byte 0x020397C8 + thumb_func_end sub_081057A4 + + thumb_func_start sub_0810586C +sub_0810586C: @ 0x0810586C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r6, _081058C0 + ldrb r0, [r6] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, #0x10 + movs r5, #0 + strh r0, [r4, #0x20] + ldrb r0, [r6] + bl GetBattlerYCoordWithElevation + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + 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 GetBattlerSpriteCoordAttr + adds r0, #2 + strh r0, [r4, #0x38] + movs r0, #0x3f + bl BattleAnimAdjustPanning + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r4, #0x3a] + ldr r0, _081058C4 + str r0, [r4, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081058C0: .4byte 0x020380D7 +_081058C4: .4byte 0x081058C9 + thumb_func_end sub_0810586C + + thumb_func_start sub_081058C8 +sub_081058C8: @ 0x081058C8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + cmp r1, #1 + beq _0810592C + cmp r1, #1 + bgt _081058DE + cmp r1, #0 + beq _081058E4 + b _08105A0C +_081058DE: + cmp r1, #2 + beq _081059BE + b _08105A0C +_081058E4: + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _0810590E + strh r1, [r4, #0x32] + adds r3, r4, #0 + adds r3, #0x3e + ldrb r2, [r3] + lsrs r1, r2, #2 + movs r0, #1 + eors r1, r0 + ands r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_0810590E: + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x10 + ble _08105A0C + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r2] + b _081059B6 +_0810592C: + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + ble _08105972 + ldrh r2, [r4, #0x32] + movs r3, #0x32 + ldrsh r1, [r4, r3] + movs r3, #0x38 + ldrsh r0, [r4, r3] + cmp r1, r0 + bge _08105972 + movs r0, #0 + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x22] + subs r0, #1 + strh r0, [r4, #0x22] + adds r0, r2, #1 + strh r0, [r4, #0x32] + movs r1, #0x32 + ldrsh r0, [r4, r1] + movs r1, #0xa + bl __modsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08105972 + ldrh r1, [r4, #0x3a] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r0, #0xcd + bl PlaySE12WithPanning +_08105972: + ldrh r0, [r4, #0x34] + ldrh r2, [r4, #0x36] + adds r1, r0, r2 + strh r1, [r4, #0x36] + lsls r0, r1, #0x10 + asrs r2, r0, #0x10 + cmp r2, #0x1f + ble _08105986 + movs r0, #0x40 + b _08105994 +_08105986: + movs r0, #0x20 + rsbs r0, r0, #0 + cmp r2, r0 + bgt _081059A0 + movs r2, #0x40 + rsbs r2, r2, #0 + adds r0, r2, #0 +_08105994: + subs r0, r0, r1 + strh r0, [r4, #0x36] + movs r3, #0x34 + ldrsh r0, [r4, r3] + rsbs r0, r0, #0 + strh r0, [r4, #0x34] +_081059A0: + 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 _08105A0C + strh r2, [r4, #0x30] + strh r2, [r4, #0x32] +_081059B6: + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + b _08105A0C +_081059BE: + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _081059EA + movs r0, #0 + strh r0, [r4, #0x32] + adds r3, r4, #0 + adds r3, #0x3e + ldrb r2, [r3] + lsrs r1, r2, #2 + movs r0, #1 + eors r1, r0 + ands r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_081059EA: + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x10 + ble _08105A0C + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl DestroyAnimSprite +_08105A0C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081058C8 + + thumb_func_start sub_08105A14 +sub_08105A14: @ 0x08105A14 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r6, r0, #0 + movs r5, #0 + mov r0, sp + strh r5, [r0] + mov r1, sp + adds r1, #2 + strh r5, [r1] + ldr r0, _08105A38 + movs r3, #4 + ldrsh r2, [r0, r3] + adds r7, r1, #0 + adds r1, r0, #0 + cmp r2, #0 + bne _08105A40 + ldr r0, _08105A3C + b _08105A42 + .align 2, 0 +_08105A38: .4byte 0x020380BE +_08105A3C: .4byte 0x020380D6 +_08105A40: + ldr r0, _08105A7C +_08105A42: + ldrb r5, [r0] + ldrb r1, [r1, #6] + movs r0, #1 + adds r4, r0, #0 + eors r4, r1 + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08105ABA + movs r1, #2 + adds r0, r5, #0 + eors r0, r1 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08105ABA + adds r0, r5, #0 + adds r1, r4, #0 + mov r2, sp + adds r3, r7, #0 + bl SetAverageBattlerPositions + cmp r4, #0 + bne _08105A80 + adds r0, r5, #0 + movs r1, #0 + b _08105A84 + .align 2, 0 +_08105A7C: .4byte 0x020380D7 +_08105A80: + adds r0, r5, #0 + movs r1, #2 +_08105A84: + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r5, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08105AB0 + ldr r2, _08105AAC + mov r0, sp + ldrh r1, [r0] + subs r1, r1, r4 + ldrh r0, [r2] + subs r1, r1, r0 + subs r0, r0, r1 + strh r0, [r2] + b _08105ABA + .align 2, 0 +_08105AAC: .4byte 0x020380BE +_08105AB0: + ldr r1, _08105ACC + mov r0, sp + ldrh r0, [r0] + subs r0, r0, r4 + strh r0, [r1] +_08105ABA: + ldr r1, _08105AD0 + str r1, [r6, #0x1c] + adds r0, r6, #0 + bl _call_via_r1 + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08105ACC: .4byte 0x020380BE +_08105AD0: .4byte 0x080A7091 + thumb_func_end sub_08105A14 + + thumb_func_start sub_08105AD4 +sub_08105AD4: @ 0x08105AD4 + push {r4, lr} + adds r4, r0, #0 + bl AnimTranslateLinear + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08105AEE + adds r0, r4, #0 + bl FreeSpriteOamMatrix + adds r0, r4, #0 + bl DestroyAnimSprite +_08105AEE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08105AD4 + + thumb_func_start sub_08105AF4 +sub_08105AF4: @ 0x08105AF4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r5, r0, #0 + movs r6, #0 + mov r0, sp + strh r6, [r0] + mov r1, sp + adds r1, #2 + strh r6, [r1] + ldr r0, _08105B20 + movs r2, #0xa + ldrsh r0, [r0, r2] + cmp r0, #0 + bne _08105B2C + ldr r0, _08105B24 + ldrb r7, [r0] + ldr r0, _08105B28 + b _08105B32 + .align 2, 0 +_08105B20: .4byte 0x020380BE +_08105B24: .4byte 0x020380D6 +_08105B28: .4byte 0x020380D7 +_08105B2C: + ldr r0, _08105B4C + ldrb r7, [r0] + ldr r0, _08105B50 +_08105B32: + ldrb r0, [r0] + mov r8, r0 + ldr r0, _08105B54 + movs r3, #0xc + ldrsh r0, [r0, r3] + cmp r0, #0 + bne _08105B58 + movs r0, #0 + mov sl, r0 + movs r1, #1 + str r1, [sp, #4] + b _08105B60 + .align 2, 0 +_08105B4C: .4byte 0x020380D7 +_08105B50: .4byte 0x020380D6 +_08105B54: .4byte 0x020380BE +_08105B58: + movs r2, #2 + mov sl, r2 + movs r3, #3 + str r3, [sp, #4] +_08105B60: + adds r0, r7, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08105BBC + adds r0, r7, #0 + mov r1, sl + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + ldr r1, _08105BA0 + lsrs r0, r0, #0x18 + ldrh r1, [r1] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + movs r0, #2 + mov r4, r8 + eors r4, r0 + adds r0, r4, #0 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08105BAC + ldr r2, _08105BA4 + ldr r0, _08105BA8 + adds r0, r4, r0 + b _08105C3A + .align 2, 0 +_08105BA0: .4byte 0x020380BE +_08105BA4: .4byte 0x020205AC +_08105BA8: .4byte 0x02023E88 +_08105BAC: + ldr r2, _08105BB4 + ldr r0, _08105BB8 + add r0, r8 + b _08105C3A + .align 2, 0 +_08105BB4: .4byte 0x020205AC +_08105BB8: .4byte 0x02023E88 +_08105BBC: + adds r0, r7, #0 + mov r1, sl + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08105C24 + ldrh r1, [r1] + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08105C34 + movs r0, #2 + adds r4, r7, #0 + eors r4, r0 + adds r0, r4, #0 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08105C34 + ldr r3, _08105C28 + ldr r2, _08105C2C + adds r0, r7, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r6, r0, r3 + adds r2, r4, r2 + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, r0, r3 + movs r0, #0x20 + ldrsh r1, [r6, r0] + movs r3, #0x20 + ldrsh r0, [r2, r3] + cmp r1, r0 + bge _08105C30 + adds r0, r2, #0 + adds r0, #0x43 + ldrb r0, [r0] + adds r0, #1 + b _08105C4A + .align 2, 0 +_08105C24: .4byte 0x020380BE +_08105C28: .4byte 0x020205AC +_08105C2C: .4byte 0x02023E88 +_08105C30: + adds r0, r6, #0 + b _08105C44 +_08105C34: + ldr r2, _08105C90 + ldr r0, _08105C94 + adds r0, r7, r0 +_08105C3A: + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 +_08105C44: + adds r0, #0x43 + ldrb r0, [r0] + subs r0, #1 +_08105C4A: + adds r1, r5, #0 + adds r1, #0x43 + strb r0, [r1] + adds r0, r7, #0 + ldr r1, [sp, #4] + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + ldr r4, _08105C98 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #2] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08105C9C + movs r1, #2 + mov r0, r8 + eors r0, r1 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08105C9C + ldrb r1, [r4, #0xc] + mov r0, r8 + mov r2, sp + mov r3, sp + adds r3, #2 + bl SetAverageBattlerPositions + b _08105CBC + .align 2, 0 +_08105C90: .4byte 0x020205AC +_08105C94: .4byte 0x02023E88 +_08105C98: .4byte 0x020380BE +_08105C9C: + mov r4, sp + mov r0, r8 + mov r1, sl + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + mov r0, r8 + ldr r1, [sp, #4] + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r2, sp + strh r0, [r2, #2] +_08105CBC: + mov r0, r8 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08105CE0 + mov r3, sp + mov r2, sp + ldr r1, _08105CDC + ldrh r0, [r1, #6] + ldrh r2, [r2] + adds r0, r0, r2 + strh r0, [r3] + adds r2, r1, #0 + b _08105CEE + .align 2, 0 +_08105CDC: .4byte 0x020380BE +_08105CE0: + mov r3, sp + mov r0, sp + ldr r2, _08105D30 + ldrh r0, [r0] + ldrh r1, [r2, #6] + subs r0, r0, r1 + strh r0, [r3] +_08105CEE: + ldrh r1, [r2, #8] + mov r3, sp + ldrh r3, [r3, #2] + adds r1, r1, r3 + mov r0, sp + strh r1, [r0, #2] + mov r3, sb + strh r3, [r5, #0x30] + strh r3, [r5, #0x20] + strh r6, [r5, #0x34] + strh r6, [r5, #0x22] + ldrh r0, [r0] + strh r0, [r5, #0x32] + strh r1, [r5, #0x36] + ldrh r0, [r2] + strh r0, [r5, #0x2e] + adds r0, r5, #0 + bl InitAnimLinearTranslation + ldr r1, _08105D34 + str r1, [r5, #0x1c] + adds r0, r5, #0 + bl _call_via_r1 + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08105D30: .4byte 0x020380BE +_08105D34: .4byte 0x08105AD5 + thumb_func_end sub_08105AF4 + + thumb_func_start sub_08105D38 +sub_08105D38: @ 0x08105D38 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08105D78 + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _08105D5E + lsls r0, r0, #0x14 + ldr r1, _08105D7C + adds r0, r0, r1 + lsrs r0, r0, #0x10 + ldr r1, _08105D80 + ldrb r2, [r1, #0xa] + ldrh r3, [r1, #8] + movs r1, #0xf + bl BlendPalette +_08105D5E: + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAffineAnim + ldr r1, _08105D84 + str r1, [r4, #0x1c] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08105D78: .4byte 0x000027DB +_08105D7C: .4byte 0x01010000 +_08105D80: .4byte 0x020380BE +_08105D84: .4byte 0x080A7091 + thumb_func_end sub_08105D38 + + thumb_func_start sub_08105D88 +sub_08105D88: @ 0x08105D88 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl InitSpritePosToAnimAttacker + ldr r0, _08105DBC + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + movs r1, #0xa0 + cmp r0, #0 + beq _08105DA4 + ldr r1, _08105DC0 +_08105DA4: + movs r0, #0xe0 + lsls r0, r0, #2 + strh r0, [r4, #0x2e] + strh r1, [r4, #0x30] + ldr r0, _08105DC4 + ldrh r0, [r0, #4] + strh r0, [r4, #0x3c] + ldr r0, _08105DC8 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08105DBC: .4byte 0x020380D6 +_08105DC0: .4byte 0x0000FF60 +_08105DC4: .4byte 0x020380BE +_08105DC8: .4byte 0x08105DCD + thumb_func_end sub_08105D88 + + thumb_func_start sub_08105DCC +sub_08105DCC: @ 0x08105DCC + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r2, [r4, #0x2e] + lsls r0, r2, #0x10 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x26] + subs r1, r1, r0 + movs r5, #0 + strh r1, [r4, #0x26] + ldrh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + strh r0, [r4, #0x24] + subs r2, #0x20 + strh r2, [r4, #0x2e] + ldr r0, _08105E38 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + movs r1, #0xa0 + cmp r0, #0 + beq _08105DFC + ldr r1, _08105E3C +_08105DFC: + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + ldrh r1, [r4, #0x30] + adds r0, r0, r1 + strh r0, [r4, #0x30] + ldrh r1, [r4, #0x26] + movs r2, #0x26 + ldrsh r0, [r4, r2] + cmp r0, #0 + ble _08105E30 + ldrh r2, [r4, #0x22] + adds r0, r1, r2 + strh r0, [r4, #0x22] + ldrh r0, [r4, #0x24] + ldrh r1, [r4, #0x20] + adds r0, r0, r1 + strh r0, [r4, #0x20] + strh r5, [r4, #0x26] + strh r5, [r4, #0x24] + strh r5, [r4, #0x2e] + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAffineAnim + ldr r0, _08105E40 + str r0, [r4, #0x1c] +_08105E30: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08105E38: .4byte 0x020380D6 +_08105E3C: .4byte 0x0000FF60 +_08105E40: .4byte 0x08105E45 + thumb_func_end sub_08105DCC + + thumb_func_start sub_08105E44 +sub_08105E44: @ 0x08105E44 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + adds r1, r0, #1 + strh r1, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x13 + ble _08105E62 + adds r0, r4, #0 + movs r1, #2 + bl StartSpriteAffineAnim + ldr r0, _08105E68 + str r0, [r4, #0x1c] +_08105E62: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08105E68: .4byte 0x08105E6D + thumb_func_end sub_08105E44 + + thumb_func_start sub_08105E6C +sub_08105E6C: @ 0x08105E6C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08105ED2 + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAffineAnim + movs r0, #0 + strh r0, [r4, #0x2e] + movs r1, #0x3c + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08105EB8 + ldrh r2, [r4, #4] + lsls r1, r2, #0x16 + lsrs r1, r1, #0x16 + adds r1, #0x10 + ldr r3, _08105EAC + adds r0, r3, #0 + ands r1, r0 + ldr r0, _08105EB0 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, #4] + ldr r0, _08105EB4 + b _08105ED0 + .align 2, 0 +_08105EAC: .4byte 0x000003FF +_08105EB0: .4byte 0xFFFFFC00 +_08105EB4: .4byte 0x08105EE5 +_08105EB8: + ldrh r2, [r4, #4] + lsls r1, r2, #0x16 + lsrs r1, r1, #0x16 + adds r1, #0x20 + ldr r3, _08105ED8 + adds r0, r3, #0 + ands r1, r0 + ldr r0, _08105EDC + ands r0, r2 + orrs r0, r1 + strh r0, [r4, #4] + ldr r0, _08105EE0 +_08105ED0: + str r0, [r4, #0x1c] +_08105ED2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08105ED8: .4byte 0x000003FF +_08105EDC: .4byte 0xFFFFFC00 +_08105EE0: .4byte 0x08105F6D + thumb_func_end sub_08105E6C + + thumb_func_start sub_08105EE4 +sub_08105EE4: @ 0x08105EE4 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x26] + subs r0, #2 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #9 + bne _08105F1A + movs r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #0 + strh r0, [r4, #0x30] + movs r1, #0xfd + lsls r1, r1, #6 + movs r0, #0x50 + bl SetGpuReg + ldrh r1, [r4, #0x2e] + movs r0, #0x52 + bl SetGpuReg + ldr r0, _08105F20 + str r0, [r4, #0x1c] +_08105F1A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08105F20: .4byte 0x08105F25 + thumb_func_end sub_08105EE4 + + thumb_func_start sub_08105F24 +sub_08105F24: @ 0x08105F24 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x30] + adds r1, r0, #1 + strh r1, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #3 + bl __modsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08105F62 + ldrh r1, [r4, #0x2e] + subs r1, #1 + strh r1, [r4, #0x2e] + movs r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08105F62 + ldr r0, _08105F68 + str r0, [r4, #0x1c] +_08105F62: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08105F68: .4byte 0x08105F6D + thumb_func_end sub_08105F24 + + thumb_func_start sub_08105F6C +sub_08105F6C: @ 0x08105F6C + push {lr} + adds r3, r0, #0 + ldr r0, _08105F94 + ldrh r1, [r0, #0xe] + ldr r0, _08105F98 + cmp r1, r0 + bne _08105FA4 + adds r2, r3, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + movs r1, #0x3c + ldrsh r0, [r3, r1] + cmp r0, #0 + bne _08105FA0 + ldr r0, _08105F9C + b _08105FA2 + .align 2, 0 +_08105F94: .4byte 0x020380BE +_08105F98: .4byte 0x0000FFFF +_08105F9C: .4byte 0x08105FAD +_08105FA0: + ldr r0, _08105FA8 +_08105FA2: + str r0, [r3, #0x1c] +_08105FA4: + pop {r0} + bx r0 + .align 2, 0 +_08105FA8: .4byte 0x080A34C5 + thumb_func_end sub_08105F6C + + thumb_func_start sub_08105FAC +sub_08105FAC: @ 0x08105FAC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + adds r0, r4, #0 + bl DestroyAnimSprite + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08105FAC + + thumb_func_start sub_08105FCC +sub_08105FCC: @ 0x08105FCC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _08105FFC + adds r4, r4, r0 + movs r0, #0 + bl GetAnimBattlerSpriteId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + strh r1, [r4, #8] + ldr r2, _08106000 + adds r0, r4, #0 + bl PrepareAffineAnimInTaskData + ldr r0, _08106004 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08105FFC: .4byte 0x03005B60 +_08106000: .4byte 0x0856F494 +_08106004: .4byte 0x08106009 + thumb_func_end sub_08105FCC + + thumb_func_start sub_08106008 +sub_08106008: @ 0x08106008 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _08106058 + adds r4, r0, r1 + adds r0, r4, #0 + bl RunAffineAnimFromTaskData + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _08106052 + ldr r2, _0810605C + movs r0, #8 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r3, [r0, #0x26] + movs r0, #8 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + adds r0, r5, #0 + bl DestroyAnimVisualTask +_08106052: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08106058: .4byte 0x03005B60 +_0810605C: .4byte 0x020205AC + thumb_func_end sub_08106008 + + thumb_func_start sub_08106060 +sub_08106060: @ 0x08106060 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _08106094 + adds r4, r1, r0 + movs r0, #0 + strh r0, [r4, #8] + strh r0, [r4, #0xa] + strh r0, [r4, #0xc] + strh r0, [r4, #0xe] + movs r0, #3 + strh r0, [r4, #0x20] + ldr r0, _08106098 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081060A0 + ldr r0, _0810609C + strh r0, [r4, #0x22] + movs r0, #8 + b _081060A6 + .align 2, 0 +_08106094: .4byte 0x03005B60 +_08106098: .4byte 0x020380D7 +_0810609C: .4byte 0x0000FFFF +_081060A0: + movs r0, #1 + strh r0, [r4, #0x22] + ldr r0, _081060C0 +_081060A6: + strh r0, [r4, #0x24] + movs r0, #1 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x26] + ldr r0, _081060C4 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081060C0: .4byte 0x0000FFF8 +_081060C4: .4byte 0x081060C9 + thumb_func_end sub_08106060 + + thumb_func_start sub_081060C8 +sub_081060C8: @ 0x081060C8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _081060EC + adds r3, r0, r1 + movs r0, #8 + ldrsh r4, [r3, r0] + cmp r4, #1 + beq _0810611C + cmp r4, #1 + bgt _081060F0 + cmp r4, #0 + beq _081060FA + b _081061E2 + .align 2, 0 +_081060EC: .4byte 0x03005B60 +_081060F0: + cmp r4, #2 + beq _08106198 + cmp r4, #3 + beq _081061B2 + b _081061E2 +_081060FA: + ldr r2, _08106118 + movs r0, #0x26 + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r3, #0x24] + ldrh r2, [r0, #0x24] + adds r1, r1, r2 + strh r1, [r0, #0x24] + strh r4, [r3, #0xa] + strh r4, [r3, #0xc] + strh r4, [r3, #0xe] + b _081061AA + .align 2, 0 +_08106118: .4byte 0x020205AC +_0810611C: + ldrh r0, [r3, #0xa] + adds r0, #1 + strh r0, [r3, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _081061E2 + movs r0, #0 + strh r0, [r3, #0xa] + ldrh r0, [r3, #0xc] + adds r0, #1 + strh r0, [r3, #0xc] + ands r0, r4 + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08106154 + ldr r2, _08106150 + movs r4, #0x26 + ldrsh r1, [r3, r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x24] + adds r1, #6 + b _08106166 + .align 2, 0 +_08106150: .4byte 0x020205AC +_08106154: + ldr r2, _08106194 + movs r0, #0x26 + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x24] + subs r1, #6 +_08106166: + strh r1, [r0, #0x24] + ldrh r0, [r3, #0xe] + adds r0, #1 + strh r0, [r3, #0xe] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _081061E2 + ldrh r1, [r3, #0xc] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081061AA + movs r1, #0x26 + ldrsh r0, [r3, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r0, [r1, #0x24] + subs r0, #6 + strh r0, [r1, #0x24] + b _081061AA + .align 2, 0 +_08106194: .4byte 0x020205AC +_08106198: + ldrh r0, [r3, #0x20] + subs r0, #1 + strh r0, [r3, #0x20] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _081061AA + movs r0, #0 + strh r0, [r3, #8] + b _081061E2 +_081061AA: + ldrh r0, [r3, #8] + adds r0, #1 + strh r0, [r3, #8] + b _081061E2 +_081061B2: + ldr r2, _081061E8 + movs r4, #0x26 + ldrsh r1, [r3, r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r3, #0x22] + ldrh r4, [r0, #0x24] + adds r1, r1, r4 + strh r1, [r0, #0x24] + movs r0, #0x26 + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0x24 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _081061E2 + adds r0, r5, #0 + bl DestroyAnimVisualTask +_081061E2: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081061E8: .4byte 0x020205AC + thumb_func_end sub_081060C8 + + thumb_func_start sub_081061EC +sub_081061EC: @ 0x081061EC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _08106228 + adds r4, r4, r0 + movs r0, #0 + strh r0, [r4, #8] + strh r0, [r4, #0xa] + strh r0, [r4, #0xc] + strh r0, [r4, #0xe] + movs r0, #1 + strh r0, [r4, #0x10] + movs r0, #0xe + strh r0, [r4, #0x22] + movs r0, #2 + strh r0, [r4, #0x24] + movs r0, #0 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x26] + ldr r0, _0810622C + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08106228: .4byte 0x03005B60 +_0810622C: .4byte 0x08106231 + thumb_func_end sub_081061EC + + thumb_func_start sub_08106230 +sub_08106230: @ 0x08106230 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _08106284 + adds r4, r0, r1 + movs r0, #8 + ldrsh r2, [r4, r0] + cmp r2, #0 + bne _081062F6 + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r3, #0x10 + ldrsh r1, [r4, r3] + cmp r0, r1 + ble _081062F6 + strh r2, [r4, #0xa] + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0810628C + ldr r3, _08106288 + movs r6, #0x26 + ldrsh r1, [r4, r6] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + b _081062A2 + .align 2, 0 +_08106284: .4byte 0x03005B60 +_08106288: .4byte 0x020205AC +_0810628C: + ldr r3, _081062D4 + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 +_081062A2: + strb r1, [r0] + ldrh r0, [r4, #0xe] + adds r0, #1 + movs r2, #0 + strh r0, [r4, #0xe] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r6, #0x22 + ldrsh r1, [r4, r6] + cmp r0, r1 + blt _081062F6 + ldrh r0, [r4, #0x10] + adds r0, #1 + strh r0, [r4, #0x10] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r6, #0x24 + ldrsh r1, [r4, r6] + cmp r0, r1 + bge _081062D8 + strh r2, [r4, #0xa] + strh r2, [r4, #0xc] + strh r2, [r4, #0xe] + b _081062F6 + .align 2, 0 +_081062D4: .4byte 0x020205AC +_081062D8: + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + adds r0, r5, #0 + bl DestroyAnimVisualTask +_081062F6: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_08106230 + + thumb_func_start sub_081062FC +sub_081062FC: @ 0x081062FC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _0810634C + adds r4, r4, r0 + movs r0, #0 + strh r0, [r4, #8] + movs r1, #4 + 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, _08106350 + ldrb r0, [r5] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x24] + ldrb r0, [r5] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x26] + ldr r0, _08106354 + str r0, [r4] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810634C: .4byte 0x03005B60 +_08106350: .4byte 0x020380D6 +_08106354: .4byte 0x08106359 + thumb_func_end sub_081062FC + + thumb_func_start sub_08106358 +sub_08106358: @ 0x08106358 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _0810637C + adds r4, r0, r1 + movs r0, #0x18 + ldrsh r2, [r4, r0] + cmp r2, #1 + beq _081063C4 + cmp r2, #1 + bgt _08106380 + cmp r2, #0 + beq _08106386 + b _081063E0 + .align 2, 0 +_0810637C: .4byte 0x03005B60 +_08106380: + cmp r2, #2 + beq _081063DC + b _081063E0 +_08106386: + ldrh r0, [r4, #0x10] + adds r0, #1 + strh r0, [r4, #0x10] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _081063E0 + strh r2, [r4, #0x10] + ldrh r0, [r4, #0x12] + adds r0, #1 + movs r1, #1 + ands r0, r1 + strh r0, [r4, #0x12] + ldrh r0, [r4, #0x14] + adds r0, #1 + strh r0, [r4, #0x14] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x14 + ble _081063E0 + movs r1, #0x16 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _081063BE + strh r2, [r4, #0x14] + movs r0, #1 + strh r0, [r4, #0x18] + b _081063E0 +_081063BE: + movs r0, #2 + strh r0, [r4, #0x18] + b _081063E0 +_081063C4: + movs r1, #0 + strh r1, [r4, #0x12] + ldrh r0, [r4, #0x10] + adds r0, #1 + strh r0, [r4, #0x10] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x14 + ble _081063E0 + strh r2, [r4, #0x16] + strh r1, [r4, #0x18] + b _081063E0 +_081063DC: + movs r0, #1 + strh r0, [r4, #0x12] +_081063E0: + movs r2, #8 + ldrsh r5, [r4, r2] + cmp r5, #0 + beq _081063EE + cmp r5, #1 + beq _08106484 + b _08106492 +_081063EE: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _08106492 + strh r5, [r4, #0xa] + ldr r0, _08106478 + movs r3, #0x24 + ldrsh r1, [r4, r3] + movs r3, #0x26 + ldrsh r2, [r4, r3] + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x40 + beq _08106492 + ldr r0, _0810647C + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + strh r6, [r1, #0x2e] + movs r0, #0xd + strh r0, [r1, #0x30] + ldr r2, _08106480 + movs r3, #0xc + ldrsh r0, [r4, r3] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r1, #0x24] + movs r3, #0xc + ldrsh r0, [r4, r3] + lsls r0, r0, #1 + adds r2, #1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r1, #0x26] + ldrh r0, [r4, #0x22] + adds r0, #1 + strh r0, [r4, #0x22] + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + ble _08106492 + strh r5, [r4, #0xc] + ldrh r0, [r4, #0xe] + adds r0, #1 + strh r0, [r4, #0xe] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #5 + ble _08106492 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _08106492 + .align 2, 0 +_08106478: .4byte 0x0856F4C0 +_0810647C: .4byte 0x020205AC +_08106480: .4byte 0x0856F4D8 +_08106484: + movs r1, #0x22 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08106492 + adds r0, r6, #0 + bl DestroyAnimVisualTask +_08106492: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_08106358 + + thumb_func_start sub_08106498 +sub_08106498: @ 0x08106498 + push {r4, lr} + adds r3, r0, #0 + ldr r4, _08106500 + movs r0, #0x2e + ldrsh r1, [r3, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r4 + movs r1, #0x3e + adds r1, r1, r3 + mov ip, r1 + movs r2, #1 + ldrb r1, [r0, #0x12] + ands r1, r2 + lsls r1, r1, #2 + mov r0, ip + ldrb r2, [r0] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _081064FA + movs r0, #0x30 + ldrsh r1, [r3, r0] + lsls r1, r1, #1 + movs r0, #0x2e + ldrsh r2, [r3, r0] + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r0, r4, #0 + adds r0, #8 + adds r1, r1, r0 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + adds r0, r3, #0 + bl DestroySprite +_081064FA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08106500: .4byte 0x03005B60 + thumb_func_end sub_08106498 + + thumb_func_start sub_08106504 +sub_08106504: @ 0x08106504 + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _081065A0 + bl IndexOfSpritePaletteTag + mov r1, sp + strb r0, [r1] + movs r4, #1 + ldr r0, _081065A4 + adds r5, r0, #0 +_0810651C: + subs r0, r5, r4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl AllocSpritePalette + mov r2, sp + adds r1, r2, r4 + strb r0, [r1] + adds r4, #1 + cmp r4, #2 + ble _0810651C + movs r0, #0x80 + lsls r0, r0, #6 + bl AllocZeroed + adds r1, r0, #0 + ldr r0, _081065A8 + ldr r0, [r0] + movs r2, #0xbe + lsls r2, r2, #1 + adds r0, r0, r2 + str r1, [r0] + ldr r0, _081065AC + bl LZDecompressVram + movs r4, #0 +_08106550: + ldr r5, _081065A8 + ldr r0, [r5] + movs r1, #0xbe + lsls r1, r1, #1 + adds r0, r0, r1 + lsls r1, r4, #6 + ldr r0, [r0] + adds r0, r0, r1 + mov r2, sp + adds r1, r2, r4 + ldrb r1, [r1] + lsls r1, r1, #0x14 + movs r2, #0x80 + lsls r2, r2, #0x11 + adds r1, r1, r2 + lsrs r1, r1, #0x10 + movs r2, #0x20 + bl LoadPalette + adds r4, #1 + cmp r4, #2 + ble _08106550 + ldr r0, [r5] + movs r4, #0xbe + lsls r4, r4, #1 + adds r0, r0, r4 + ldr r0, [r0] + bl Free + ldr r0, [r5] + adds r0, r0, r4 + movs r1, #0 + str r1, [r0] + adds r0, r6, #0 + bl DestroyAnimVisualTask + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081065A0: .4byte 0x000027DE +_081065A4: .4byte 0x00002710 +_081065A8: .4byte 0x02024178 +_081065AC: .4byte 0x08C226B4 + thumb_func_end sub_08106504 + + thumb_func_start sub_081065B0 +sub_081065B0: @ 0x081065B0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r5, _081065D4 + movs r4, #2 +_081065BA: + ldrh r0, [r5] + bl FreeSpritePaletteByTag + adds r5, #2 + subs r4, #1 + cmp r4, #0 + bge _081065BA + adds r0, r6, #0 + bl DestroyAnimVisualTask + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081065D4: .4byte 0x0856F534 + thumb_func_end sub_081065B0 + + thumb_func_start sub_081065D8 +sub_081065D8: @ 0x081065D8 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r3, r2, #0x18 + movs r0, #1 + ands r3, r0 + rsbs r0, r3, #0 + orrs r0, r3 + asrs r0, r0, #0x1f + movs r3, #0x20 + ands r0, r3 + ldrh r4, [r5, #4] + lsls r3, r4, #0x16 + lsrs r3, r3, #0x16 + lsrs r1, r1, #0x16 + adds r0, r0, r1 + adds r3, r3, r0 + ldr r1, _0810662C + adds r0, r1, #0 + ands r3, r0 + ldr r0, _08106630 + ands r0, r4 + orrs r0, r3 + strh r0, [r5, #4] + ldr r0, _08106634 + lsrs r2, r2, #0x19 + lsls r2, r2, #1 + adds r2, r2, r0 + ldrh r0, [r2] + bl IndexOfSpritePaletteTag + lsls r0, r0, #4 + ldrb r2, [r5, #5] + movs r1, #0xf + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810662C: .4byte 0x000003FF +_08106630: .4byte 0xFFFFFC00 +_08106634: .4byte 0x0856F534 + thumb_func_end sub_081065D8 + + thumb_func_start sub_08106638 +sub_08106638: @ 0x08106638 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r1, #0 + bl InitSpritePosToAnimAttacker + ldr r6, _081066A0 + ldrb r0, [r6] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08106658 + ldr r1, _081066A4 + ldrh r0, [r1, #4] + rsbs r0, r0, #0 + strh r0, [r1, #4] +_08106658: + ldr r4, _081066A4 + ldrh r0, [r4, #8] + strh r0, [r5, #0x2e] + ldrb r0, [r6] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #4] + adds r0, r0, r1 + strh r0, [r5, #0x32] + ldrb r0, [r6] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #6] + adds r0, r0, r1 + strh r0, [r5, #0x36] + ldr r0, _081066A8 + str r0, [r5, #0x1c] + ldr r1, _081066AC + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + ldrb r1, [r4, #0xa] + ldrb r2, [r4, #0xc] + adds r0, r5, #0 + bl sub_081065D8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081066A0: .4byte 0x020380D6 +_081066A4: .4byte 0x020380BE +_081066A8: .4byte 0x080A67B5 +_081066AC: .4byte 0x080A34C5 + thumb_func_end sub_08106638 + + thumb_func_start sub_081066B0 +sub_081066B0: @ 0x081066B0 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + bne _081066CA + adds r0, r4, #0 + movs r1, #0 + bl InitSpritePosToAnimAttacker +_081066CA: + movs r1, #0x30 + ldrsh r0, [r4, r1] + movs r1, #8 + bl Sin + strh r0, [r4, #0x24] + ldrh r2, [r4, #0x32] + lsls r0, r2, #0x10 + asrs r0, r0, #0x18 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x30] + adds r0, #7 + 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 _081066FA + adds r0, r4, #0 + bl DestroyAnimSprite +_081066FA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_081066B0 + + thumb_func_start sub_08106700 +sub_08106700: @ 0x08106700 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + bl IsContest + lsls r0, r0, #0x18 + movs r6, #0xf0 + cmp r0, #0 + beq _08106714 + movs r6, #0x98 +_08106714: + movs r5, #0 + ldr r1, _08106768 + strh r6, [r1] + ldr r4, _0810676C + movs r0, #0xa0 + strh r0, [r4] + ldrh r1, [r1] + movs r0, #0x40 + bl SetGpuReg + ldrh r1, [r4] + movs r0, #0x44 + bl SetGpuReg + ldr r1, _08106770 + movs r0, #0x48 + bl SetGpuReg + ldr r1, _08106774 + movs r0, #0x4a + bl SetGpuReg + movs r0, #0x50 + movs r1, #0xc8 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0x10 + bl SetGpuReg + ldr r1, _08106778 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r5, [r0, #8] + strh r6, [r0, #0xa] + ldr r1, _0810677C + str r1, [r0] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08106768: .4byte 0x02022AD8 +_0810676C: .4byte 0x02022ADA +_08106770: .4byte 0x00003F1F +_08106774: .4byte 0x00003F3F +_08106778: .4byte 0x03005B60 +_0810677C: .4byte 0x08106781 + thumb_func_end sub_08106700 + + thumb_func_start sub_08106780 +sub_08106780: @ 0x08106780 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _081067B4 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r3, r1, r2 + ldrh r0, [r3, #8] + adds r4, r0, #0 + adds r4, #0xd + strh r4, [r3, #8] + ldrh r0, [r3, #0xa] + adds r2, r0, #0 + subs r2, #0xd + strh r2, [r3, #0xa] + lsls r1, r4, #0x10 + lsls r0, r2, #0x10 + cmp r1, r0 + blt _081067C0 + ldr r0, _081067B8 + movs r1, #0 + strh r1, [r0] + ldr r0, _081067BC + str r0, [r3] + b _081067C8 + .align 2, 0 +_081067B4: .4byte 0x03005B60 +_081067B8: .4byte 0x02022AD8 +_081067BC: .4byte 0x081067D5 +_081067C0: + ldr r1, _081067D0 + lsls r0, r4, #8 + orrs r2, r0 + strh r2, [r1] +_081067C8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081067D0: .4byte 0x02022AD8 + thumb_func_end sub_08106780 + + thumb_func_start sub_081067D4 +sub_081067D4: @ 0x081067D4 + push {r4, r5, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + ldr r1, _08106820 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r1, r0, r1 + ldrh r0, [r1, #0x1c] + adds r0, #1 + movs r4, #0 + strh r0, [r1, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #5 + bne _08106828 + movs r0, #0x88 + strh r0, [r1, #0x1e] + movs r0, #0x50 + movs r1, #0x88 + bl SetGpuReg + str r4, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r0, #1 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_080A6E74 + ldr r2, _08106824 + movs r1, #0x10 + bl BlendPalettes + b _0810685C + .align 2, 0 +_08106820: .4byte 0x03005B60 +_08106824: .4byte 0x00007FFF +_08106828: + cmp r0, #4 + ble _0810685C + ldr r0, _08106864 + strh r4, [r0] + ldr r0, _08106868 + strh r4, [r0] + ldr r4, _0810686C + movs r0, #0x48 + adds r1, r4, #0 + bl SetGpuReg + movs r0, #0x4a + adds r1, r4, #0 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + adds r0, r5, #0 + bl DestroyAnimVisualTask +_0810685C: + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08106864: .4byte 0x02022AD8 +_08106868: .4byte 0x02022ADA +_0810686C: .4byte 0x00003F3F + thumb_func_end sub_081067D4 + + thumb_func_start sub_08106870 +sub_08106870: @ 0x08106870 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r0, #0 + movs r0, #1 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _081068C0 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r5, r0, r1 + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + bne _081068CC + movs r0, #1 + bl GetAnimBattlerSpriteId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _081068C4 + adds r0, r5, #0 + bl PrepareAffineAnimInTaskData + ldr r1, _081068C8 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + movs r1, #4 + strh r1, [r0, #0x24] + b _081068F4 + .align 2, 0 +_081068C0: .4byte 0x03005B60 +_081068C4: .4byte 0x0856F56C +_081068C8: .4byte 0x020205AC +_081068CC: + ldr r1, _081068FC + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r4, r0, r1 + ldrh r0, [r4, #0x24] + rsbs r0, r0, #0 + strh r0, [r4, #0x24] + adds r0, r5, #0 + bl RunAffineAnimFromTaskData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _081068F4 + strh r0, [r4, #0x24] + strh r0, [r4, #0x26] + adds r0, r6, #0 + bl DestroyAnimVisualTask +_081068F4: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081068FC: .4byte 0x020205AC + thumb_func_end sub_08106870 + + thumb_func_start sub_08106900 +sub_08106900: @ 0x08106900 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r0, #0 + movs r0, #0 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08106950 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r5, r0, r1 + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + bne _0810695C + movs r0, #0 + bl GetAnimBattlerSpriteId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _08106954 + adds r0, r5, #0 + bl PrepareAffineAnimInTaskData + ldr r1, _08106958 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + movs r1, #4 + strh r1, [r0, #0x24] + b _08106984 + .align 2, 0 +_08106950: .4byte 0x03005B60 +_08106954: .4byte 0x0856F56C +_08106958: .4byte 0x020205AC +_0810695C: + ldr r1, _0810698C + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r4, r0, r1 + ldrh r0, [r4, #0x24] + rsbs r0, r0, #0 + strh r0, [r4, #0x24] + adds r0, r5, #0 + bl RunAffineAnimFromTaskData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _08106984 + strh r0, [r4, #0x24] + strh r0, [r4, #0x26] + adds r0, r6, #0 + bl DestroyAnimVisualTask +_08106984: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0810698C: .4byte 0x020205AC + thumb_func_end sub_08106900 + + thumb_func_start sub_08106990 +sub_08106990: @ 0x08106990 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + movs r0, #0x5f + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x20] + strh r0, [r4, #0x30] + ldr r5, _081069D4 + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x22] + strh r0, [r4, #0x34] + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl InitAnimLinearTranslation + ldr r0, _081069D8 + str r0, [r4, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081069D4: .4byte 0x020380D7 +_081069D8: .4byte 0x081069DD + thumb_func_end sub_08106990 + + thumb_func_start sub_081069DC +sub_081069DC: @ 0x081069DC + push {r4, lr} + adds r4, r0, #0 + bl AnimTranslateLinear + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08106A06 + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r1, #0xe + bl Sin + ldrh r1, [r4, #0x26] + adds r0, r0, r1 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x38] + adds r0, #4 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x38] + b _08106A0C +_08106A06: + adds r0, r4, #0 + bl DestroyAnimSprite +_08106A0C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081069DC + + thumb_func_start sub_08106A14 +sub_08106A14: @ 0x08106A14 + push {r4, lr} + adds r4, r0, #0 + ldrh r2, [r4, #0x2e] + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08106A38 + ldr r1, _08106A34 + ldrh r0, [r1] + strh r0, [r4, #0x30] + ldrh r0, [r1, #2] + strh r0, [r4, #0x32] + adds r0, r2, #1 + strh r0, [r4, #0x2e] + b _08106A94 + .align 2, 0 +_08106A34: .4byte 0x020380BE +_08106A38: + ldrh r0, [r4, #0x30] + ldrh r2, [r4, #0x36] + adds r0, r0, r2 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + 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, #3 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x34] + cmp r0, #0x64 + ble _08106A86 + movs r0, #0x34 + ldrsh r1, [r4, r0] + lsrs r0, r1, #0x1f + adds r0, r1, r0 + asrs r0, r0, #1 + lsls r0, r0, #1 + subs r1, r1, r0 + adds r3, r4, #0 + adds r3, #0x3e + movs r0, #1 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r3] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_08106A86: + movs r1, #0x34 + ldrsh r0, [r4, r1] + cmp r0, #0x78 + ble _08106A94 + adds r0, r4, #0 + bl DestroyAnimSprite +_08106A94: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08106A14 + + thumb_func_start sub_08106A9C +sub_08106A9C: @ 0x08106A9C + push {lr} + ldr r2, _08106AC0 + ldrh r1, [r2] + strh r1, [r0, #0x20] + movs r1, #0xa0 + strh r1, [r0, #0x22] + ldrh r1, [r2, #4] + strh r1, [r0, #0x2e] + ldrh r1, [r2, #2] + strh r1, [r0, #0x30] + ldr r1, _08106AC4 + str r1, [r0, #0x1c] + ldr r1, _08106AC8 + bl StoreSpriteCallbackInData6 + pop {r0} + bx r0 + .align 2, 0 +_08106AC0: .4byte 0x020380BE +_08106AC4: .4byte 0x080A5D79 +_08106AC8: .4byte 0x08106ACD + thumb_func_end sub_08106A9C + + thumb_func_start sub_08106ACC +sub_08106ACC: @ 0x08106ACC + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x30] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + movs r1, #0x34 + ldrsh r0, [r4, r1] + movs r1, #4 + bl Sin + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x34] + adds r0, #3 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x34] + ldrh r0, [r4, #0x26] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + lsls r0, r0, #0x10 + asrs r5, r0, #0x10 + cmp r5, #0x48 + bgt _08106B32 + movs r0, #0x34 + ldrsh r1, [r4, r0] + lsrs r0, r1, #0x1f + adds r0, r1, r0 + asrs r0, r0, #1 + lsls r0, r0, #1 + subs r1, r1, r0 + adds r3, r4, #0 + adds r3, #0x3e + movs r0, #1 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r3] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + cmp r5, #0x40 + bgt _08106B32 + adds r0, r4, #0 + bl DestroyAnimSprite +_08106B32: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_08106ACC + + thumb_func_start AnimTask_HeartsBackground +AnimTask_HeartsBackground: @ 0x08106B38 + push {r4, r5, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _08106BD8 + movs r0, #0x50 + bl SetGpuReg + movs r1, #0x80 + lsls r1, r1, #5 + movs r0, #0x52 + bl SetGpuReg + movs r0, #1 + movs r1, #4 + movs r2, #3 + bl SetAnimBgAttribute + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl SetAnimBgAttribute + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08106B7A + movs r0, #1 + movs r1, #3 + movs r2, #1 + bl SetAnimBgAttribute +_08106B7A: + ldr r0, _08106BDC + movs r1, #0 + strh r1, [r0] + ldr r4, _08106BE0 + strh r1, [r4] + movs r0, #0x14 + movs r1, #0 + bl SetGpuReg + ldrh r1, [r4] + movs r0, #0x16 + bl SetGpuReg + mov r0, sp + bl sub_080A63F8 + mov r0, sp + ldrb r0, [r0, #9] + ldr r1, _08106BE4 + mov r2, sp + ldrh r2, [r2, #0xa] + bl AnimLoadCompressedBgGfx + ldr r1, _08106BE8 + mov r0, sp + movs r2, #0 + bl sub_080A6628 + ldr r0, _08106BEC + mov r1, sp + ldrb r1, [r1, #8] + lsls r1, r1, #4 + movs r2, #0x20 + bl LoadCompressedPalette + ldr r1, _08106BF0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08106BF4 + str r1, [r0] + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08106BD8: .4byte 0x00003F42 +_08106BDC: .4byte 0x02022ACC +_08106BE0: .4byte 0x02022ACE +_08106BE4: .4byte 0x08C23384 +_08106BE8: .4byte 0x08C23E1C +_08106BEC: .4byte 0x08C23DF4 +_08106BF0: .4byte 0x03005B60 +_08106BF4: .4byte 0x08106BF9 + thumb_func_end AnimTask_HeartsBackground + + thumb_func_start sub_08106BF8 +sub_08106BF8: @ 0x08106BF8 + push {r4, r5, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08106C20 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #0x20 + ldrsh r0, [r0, r2] + adds r2, r1, #0 + cmp r0, #4 + bls _08106C16 + b _08106D40 +_08106C16: + lsls r0, r0, #2 + ldr r1, _08106C24 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08106C20: .4byte 0x03005B60 +_08106C24: .4byte 0x08106C28 +_08106C28: @ jump table + .4byte _08106C3C @ case 0 + .4byte _08106C80 @ case 1 + .4byte _08106CA2 @ case 2 + .4byte _08106CE6 @ case 3 + .4byte _08106D0C @ case 4 +_08106C3C: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r4, r0, r2 + ldrh r0, [r4, #0x1c] + adds r0, #1 + movs r5, #0 + strh r0, [r4, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + bne _08106D40 + strh r5, [r4, #0x1c] + ldrh r1, [r4, #0x1e] + adds r1, #1 + strh r1, [r4, #0x1e] + movs r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r1, #0x1e + ldrsh r0, [r4, r1] + cmp r0, #0x10 + bne _08106D40 + ldrh r0, [r4, #0x20] + adds r0, #1 + strh r0, [r4, #0x20] + strh r5, [r4, #0x1e] + b _08106D40 +_08106C80: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r1, r0, r2 + ldrh r0, [r1, #0x1e] + adds r0, #1 + strh r0, [r1, #0x1e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x8d + bne _08106D40 + movs r0, #0x10 + strh r0, [r1, #0x1e] + ldrh r0, [r1, #0x20] + adds r0, #1 + strh r0, [r1, #0x20] + b _08106D40 +_08106CA2: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r4, r0, r2 + ldrh r0, [r4, #0x1c] + adds r0, #1 + strh r0, [r4, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + bne _08106D40 + movs r0, #0 + strh r0, [r4, #0x1c] + ldrh r1, [r4, #0x1e] + subs r1, #1 + strh r1, [r4, #0x1e] + movs r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r2, #0x1e + ldrsh r1, [r4, r2] + cmp r1, #0 + bne _08106D40 + ldrh r0, [r4, #0x20] + adds r0, #1 + strh r0, [r4, #0x20] + strh r1, [r4, #0x1e] + b _08106D40 +_08106CE6: + mov r0, sp + bl sub_080A63F8 + mov r0, sp + ldrb r0, [r0, #9] + bl sub_080A6530 + ldr r1, _08106D08 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #0x20] + adds r1, #1 + strh r1, [r0, #0x20] + b _08106D40 + .align 2, 0 +_08106D08: .4byte 0x03005B60 +_08106D0C: + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08106D20 + movs r0, #1 + movs r1, #3 + movs r2, #0 + bl SetAnimBgAttribute +_08106D20: + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #1 + movs r1, #4 + movs r2, #1 + bl SetAnimBgAttribute + adds r0, r4, #0 + bl DestroyAnimVisualTask +_08106D40: + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_08106BF8 + + thumb_func_start sub_08106D48 +sub_08106D48: @ 0x08106D48 + push {r4, r5, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _08106DB8 + movs r0, #0x50 + bl SetGpuReg + movs r1, #0x80 + lsls r1, r1, #5 + movs r0, #0x52 + bl SetGpuReg + movs r0, #1 + movs r1, #4 + movs r2, #1 + bl SetAnimBgAttribute + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl SetAnimBgAttribute + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08106D8A + movs r0, #1 + movs r1, #3 + movs r2, #1 + bl SetAnimBgAttribute +_08106D8A: + ldr r0, _08106DBC + movs r1, #0 + strh r1, [r0] + ldr r4, _08106DC0 + strh r1, [r4] + movs r0, #0x14 + movs r1, #0 + bl SetGpuReg + ldrh r1, [r4] + movs r0, #0x16 + bl SetGpuReg + mov r0, sp + bl sub_080A63F8 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08106DC8 + ldr r1, _08106DC4 + b _08106DDA + .align 2, 0 +_08106DB8: .4byte 0x00003F42 +_08106DBC: .4byte 0x02022ACC +_08106DC0: .4byte 0x02022ACE +_08106DC4: .4byte 0x08D93914 +_08106DC8: + ldr r0, _08106DE4 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08106DEC + ldr r1, _08106DE8 +_08106DDA: + mov r0, sp + movs r2, #0 + bl sub_080A6628 + b _08106DF6 + .align 2, 0 +_08106DE4: .4byte 0x020380D7 +_08106DE8: .4byte 0x08D9354C +_08106DEC: + ldr r1, _08106E28 + mov r0, sp + movs r2, #0 + bl sub_080A6628 +_08106DF6: + mov r0, sp + ldrb r0, [r0, #9] + ldr r1, _08106E2C + mov r2, sp + ldrh r2, [r2, #0xa] + bl AnimLoadCompressedBgGfx + ldr r0, _08106E30 + mov r1, sp + ldrb r1, [r1, #8] + lsls r1, r1, #4 + movs r2, #0x20 + bl LoadCompressedPalette + ldr r1, _08106E34 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08106E38 + str r1, [r0] + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08106E28: .4byte 0x08D93730 +_08106E2C: .4byte 0x08C24A9C +_08106E30: .4byte 0x08C24A74 +_08106E34: .4byte 0x03005B60 +_08106E38: .4byte 0x08106E3D + thumb_func_end sub_08106D48 + + thumb_func_start sub_08106E3C +sub_08106E3C: @ 0x08106E3C + push {r4, r5, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08106E64 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #0x20 + ldrsh r0, [r0, r2] + adds r2, r1, #0 + cmp r0, #4 + bls _08106E5A + b _08106F80 +_08106E5A: + lsls r0, r0, #2 + ldr r1, _08106E68 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08106E64: .4byte 0x03005B60 +_08106E68: .4byte 0x08106E6C +_08106E6C: @ jump table + .4byte _08106E80 @ case 0 + .4byte _08106EC4 @ case 1 + .4byte _08106EE6 @ case 2 + .4byte _08106F2A @ case 3 + .4byte _08106F4C @ case 4 +_08106E80: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r4, r0, r2 + ldrh r0, [r4, #0x1c] + adds r0, #1 + movs r5, #0 + strh r0, [r4, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + bne _08106F80 + strh r5, [r4, #0x1c] + ldrh r1, [r4, #0x1e] + adds r1, #1 + strh r1, [r4, #0x1e] + movs r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r1, #0x1e + ldrsh r0, [r4, r1] + cmp r0, #0xe + bne _08106F80 + ldrh r0, [r4, #0x20] + adds r0, #1 + strh r0, [r4, #0x20] + strh r5, [r4, #0x1e] + b _08106F80 +_08106EC4: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r1, r0, r2 + ldrh r0, [r1, #0x1e] + adds r0, #1 + strh r0, [r1, #0x1e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x15 + bne _08106F80 + movs r0, #0xe + strh r0, [r1, #0x1e] + ldrh r0, [r1, #0x20] + adds r0, #1 + strh r0, [r1, #0x20] + b _08106F80 +_08106EE6: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r4, r0, r2 + ldrh r0, [r4, #0x1c] + adds r0, #1 + strh r0, [r4, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + bne _08106F80 + movs r0, #0 + strh r0, [r4, #0x1c] + ldrh r1, [r4, #0x1e] + subs r1, #1 + strh r1, [r4, #0x1e] + movs r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r2, #0x1e + ldrsh r1, [r4, r2] + cmp r1, #0 + bne _08106F80 + ldrh r0, [r4, #0x20] + adds r0, #1 + strh r0, [r4, #0x20] + strh r1, [r4, #0x1e] + b _08106F80 +_08106F2A: + mov r0, sp + bl sub_080A63F8 + movs r0, #1 + bl sub_080A6530 + movs r0, #2 + bl sub_080A6530 + ldr r0, _08106F88 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x20] + adds r0, #1 + strh r0, [r1, #0x20] +_08106F4C: + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08106F60 + movs r0, #1 + movs r1, #3 + movs r2, #0 + bl SetAnimBgAttribute +_08106F60: + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #1 + movs r1, #4 + movs r2, #1 + bl SetAnimBgAttribute + adds r0, r4, #0 + bl DestroyAnimVisualTask +_08106F80: + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08106F88: .4byte 0x03005B60 + thumb_func_end sub_08106E3C + + thumb_func_start AnimOrbitFast +AnimOrbitFast: @ 0x08106F8C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08106FE0 + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x20] + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + 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, _08106FE4 + ldrh r0, [r1] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #2] + strh r0, [r4, #0x30] + ldrb r0, [r5] + bl GetBattlerSpriteSubpriority + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x3c] + ldr r1, _08106FE8 + str r1, [r4, #0x1c] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08106FE0: .4byte 0x020380D6 +_08106FE4: .4byte 0x020380BE +_08106FE8: .4byte 0x08106FED + thumb_func_end AnimOrbitFast + + thumb_func_start AnimOrbitFastStep +AnimOrbitFastStep: @ 0x08106FEC + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x30] + subs r0, #0x40 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x7f + bhi _08107002 + ldrh r0, [r4, #0x3c] + adds r0, #1 + b _08107006 +_08107002: + ldrh r0, [r4, #0x3c] + subs r0, #1 +_08107006: + adds r1, r4, #0 + adds r1, #0x43 + strb r0, [r1] + movs r1, #0x30 + ldrsh r0, [r4, r1] + ldrh r1, [r4, #0x32] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + bl Sin + strh r0, [r4, #0x24] + movs r2, #0x30 + ldrsh r0, [r4, r2] + ldrh r1, [r4, #0x34] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + bl Cos + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x30] + adds r0, #9 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x30] + movs r3, #0x38 + ldrsh r2, [r4, r3] + cmp r2, #0 + beq _08107078 + cmp r2, #1 + bne _081070A8 + ldr r1, _08107070 + adds r0, r1, #0 + ldrh r2, [r4, #0x32] + adds r0, r0, r2 + strh r0, [r4, #0x32] + ldr r3, _08107074 + adds r0, r3, #0 + ldrh r1, [r4, #0x34] + adds r0, r0, r1 + strh r0, [r4, #0x34] + ldrh r0, [r4, #0x36] + adds r0, #1 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x2e + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _081070A8 + movs r0, #2 + strh r0, [r4, #0x38] + b _081070B8 + .align 2, 0 +_08107070: .4byte 0xFFFFFC00 +_08107074: .4byte 0xFFFFFF00 +_08107078: + movs r3, #0x80 + lsls r3, r3, #3 + adds r0, r3, #0 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + movs r3, #0x80 + lsls r3, r3, #1 + adds r0, r3, #0 + ldrh r1, [r4, #0x34] + adds r0, r0, r1 + strh r0, [r4, #0x34] + ldrh r0, [r4, #0x36] + adds r0, #1 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r3, #0x2e + ldrsh r1, [r4, r3] + cmp r0, r1 + bne _081070A8 + strh r2, [r4, #0x36] + movs r0, #1 + strh r0, [r4, #0x38] +_081070A8: + ldr r0, _081070C0 + ldrh r1, [r0, #0xe] + ldr r0, _081070C4 + cmp r1, r0 + bne _081070B8 + adds r0, r4, #0 + bl DestroyAnimSprite +_081070B8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081070C0: .4byte 0x020380BE +_081070C4: .4byte 0x0000FFFF + thumb_func_end AnimOrbitFastStep + + thumb_func_start AnimOrbitScatter +AnimOrbitScatter: @ 0x081070C8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08107110 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + ldr r4, _08107114 + 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, #7 + bl Cos + strh r0, [r5, #0x30] + ldr r0, _08107118 + str r0, [r5, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08107110: .4byte 0x020380D6 +_08107114: .4byte 0x020380BE +_08107118: .4byte 0x0810711D + thumb_func_end AnimOrbitScatter + + thumb_func_start AnimOrbitScatterStep +AnimOrbitScatterStep: @ 0x0810711C + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x2e] + ldrh r1, [r2, #0x24] + adds r0, r0, r1 + strh r0, [r2, #0x24] + ldrh r0, [r2, #0x30] + ldrh r3, [r2, #0x26] + adds r0, r0, r3 + strh r0, [r2, #0x26] + movs r1, #0x20 + ldrsh r0, [r2, r1] + movs r3, #0x24 + ldrsh r1, [r2, r3] + adds r0, r0, r1 + adds r0, #0x10 + movs r1, #0x88 + lsls r1, r1, #1 + cmp r0, r1 + bhi _0810715A + movs r0, #0x22 + ldrsh r1, [r2, r0] + movs r3, #0x26 + ldrsh r0, [r2, r3] + adds r1, r1, r0 + cmp r1, #0xa0 + bgt _0810715A + movs r0, #0x10 + rsbs r0, r0, #0 + cmp r1, r0 + bge _08107160 +_0810715A: + adds r0, r2, #0 + bl DestroyAnimSprite +_08107160: + pop {r0} + bx r0 + thumb_func_end AnimOrbitScatterStep + + thumb_func_start sub_08107164 +sub_08107164: @ 0x08107164 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x2e] + ldrh r1, [r2, #0x24] + adds r0, r0, r1 + strh r0, [r2, #0x24] + ldrh r0, [r2, #0x30] + ldrh r3, [r2, #0x26] + adds r0, r0, r3 + strh r0, [r2, #0x26] + ldrh r0, [r2, #0x34] + adds r1, r0, #1 + strh r1, [r2, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r3, #0x32 + ldrsh r1, [r2, r3] + cmp r0, r1 + blt _08107190 + adds r0, r2, #0 + bl DestroyAnimSprite +_08107190: + pop {r0} + bx r0 + thumb_func_end sub_08107164 + + thumb_func_start sub_08107194 +sub_08107194: @ 0x08107194 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _081071E0 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + ldr r4, _081071E4 + 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, #7 + bl Cos + strh r0, [r5, #0x30] + ldrh r0, [r4, #2] + strh r0, [r5, #0x32] + ldr r0, _081071E8 + str r0, [r5, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081071E0: .4byte 0x020380D6 +_081071E4: .4byte 0x020380BE +_081071E8: .4byte 0x08107165 + thumb_func_end sub_08107194 + + thumb_func_start sub_081071EC +sub_081071EC: @ 0x081071EC + push {lr} + adds r2, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08107202 + adds r0, r2, #0 + bl DestroyAnimSprite +_08107202: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081071EC + + thumb_func_start sub_08107208 +sub_08107208: @ 0x08107208 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldr r0, _0810721C + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810721C: .4byte 0x081071ED + thumb_func_end sub_08107208 + + thumb_func_start sub_08107220 +sub_08107220: @ 0x08107220 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0810723E + ldr r0, _081072B0 + ldrh r1, [r0] + ldrh r2, [r4, #0x20] + adds r1, r1, r2 + strh r1, [r4, #0x20] + ldrh r0, [r0, #2] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] +_0810723E: + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + movs r2, #0x2e + ldrsh r1, [r4, r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r5, r0, #1 + movs r0, #0xff + ands r5, r0 + adds r0, r5, #0 + movs r1, #0x50 + bl Sin + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + strh r0, [r4, #0x24] + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0x4f + bgt _08107282 + adds r0, r5, #0 + movs r1, #0x50 + bl Cos + movs r2, #0x2e + ldrsh r1, [r4, r2] + lsrs r2, r1, #0x1f + adds r1, r1, r2 + asrs r1, r1, #1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + adds r1, r1, r0 + strh r1, [r4, #0x26] +_08107282: + movs r0, #0x2e + ldrsh r2, [r4, r0] + cmp r2, #0x5a + ble _081072A0 + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + movs r0, #0x32 + ldrsh r1, [r4, r0] + lsrs r0, r1, #0x1f + adds r1, r1, r0 + asrs r1, r1, #1 + ldrh r0, [r4, #0x24] + subs r0, r0, r1 + strh r0, [r4, #0x24] +_081072A0: + cmp r2, #0x64 + ble _081072AA + adds r0, r4, #0 + bl DestroyAnimSprite +_081072AA: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081072B0: .4byte 0x020380BE + thumb_func_end sub_08107220 + + thumb_func_start sub_081072B4 +sub_081072B4: @ 0x081072B4 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x38] + adds r0, #1 + strh r0, [r4, #0x38] + movs r1, #0x34 + ldrsh r0, [r4, r1] + movs r1, #5 + bl Sin + strh r0, [r4, #0x24] + movs r1, #0x38 + ldrsh r0, [r4, r1] + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x34] + adds r0, #3 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x34] + movs r1, #0x38 + ldrsh r0, [r4, r1] + cmp r0, #0x14 + ble _0810730A + adds r1, r0, #0 + lsrs r0, r1, #0x1f + adds r0, r1, r0 + asrs r0, r0, #1 + lsls r0, r0, #1 + subs r1, r1, r0 + adds r3, r4, #0 + adds r3, #0x3e + movs r0, #1 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r3] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_0810730A: + movs r1, #0x38 + ldrsh r0, [r4, r1] + cmp r0, #0x1e + ble _08107318 + adds r0, r4, #0 + bl DestroyAnimSprite +_08107318: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081072B4 + + thumb_func_start sub_08107320 +sub_08107320: @ 0x08107320 + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r2, [r4, #0x2e] + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08107344 + ldr r1, _08107340 + ldrh r0, [r1] + strh r0, [r4, #0x30] + ldrh r0, [r1, #2] + strh r0, [r4, #0x32] + adds r0, r2, #1 + strh r0, [r4, #0x2e] + b _08107398 + .align 2, 0 +_08107340: .4byte 0x020380BE +_08107344: + ldrh r0, [r4, #0x30] + ldrh r2, [r4, #0x36] + adds r0, r0, r2 + movs r5, #0 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + 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, #3 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x34] + cmp r0, #0x46 + ble _08107398 + ldr r0, _081073A0 + str r0, [r4, #0x1c] + ldrh r0, [r4, #0x24] + ldrh r1, [r4, #0x20] + adds r0, 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 Random2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xb4 + bl __umodsi3 + strh r0, [r4, #0x34] +_08107398: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081073A0: .4byte 0x081072B5 + thumb_func_end sub_08107320 + + thumb_func_start sub_081073A4 +sub_081073A4: @ 0x081073A4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x34 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _081073DE + ldr r1, _081074A0 + ldrh r0, [r1] + ldrh r2, [r4, #0x20] + adds r0, r0, r2 + strh r0, [r4, #0x20] + ldrh r0, [r1, #2] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] + adds r0, r4, #0 + movs r1, #0 + bl StartSpriteAnim + ldr r0, _081074A4 + ldrb r0, [r0] + bl GetBattlerSpriteSubpriority + subs r0, #1 + adds r1, r4, #0 + adds r1, #0x43 + strb r0, [r1] + movs r0, #1 + strh r0, [r4, #0x32] +_081073DE: + ldrh r0, [r4, #0x32] + ldrh r2, [r4, #0x2e] + adds r0, 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 _081073F4 + adds r0, #0xff +_081073F4: + asrs r0, r0, #8 + lsls r0, r0, #8 + subs r0, r1, r0 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _08107406 + movs r0, #0 + strh r0, [r4, #0x30] +_08107406: + movs r0, #0x30 + ldrsh r2, [r4, r0] + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + bge _08107414 + adds r0, #3 +_08107414: + asrs r0, r0, #2 + movs r1, #0x1e + subs r1, 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 _08107430 + adds r0, #7 +_08107430: + asrs r0, r0, #3 + movs r1, #0xa + subs r1, r1, r0 + adds r0, r2, #0 + bl Sin + strh r0, [r4, #0x26] + movs r2, #0x30 + ldrsh r0, [r4, r2] + cmp r0, #0x80 + ble _08107454 + ldrh r1, [r4, #0x32] + movs r2, #0x32 + ldrsh r0, [r4, r2] + cmp r0, #0 + ble _08107454 + ldr r0, _081074A8 + strh r0, [r4, #0x32] +_08107454: + movs r1, #0x30 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08107468 + movs r2, #0x32 + ldrsh r0, [r4, r2] + cmp r0, #0 + bge _08107468 + movs r0, #1 + strh r0, [r4, #0x32] +_08107468: + ldrh r0, [r4, #0x34] + adds r1, r0, #1 + strh r1, [r4, #0x34] + subs r0, #9 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x46 + bls _081074AC + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsrs r0, r1, #0x1f + adds r0, r1, r0 + asrs r0, r0, #1 + lsls r0, r0, #1 + subs r1, r1, r0 + adds r3, r4, #0 + adds r3, #0x3e + movs r0, #1 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r3] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _081074BA + .align 2, 0 +_081074A0: .4byte 0x020380BE +_081074A4: .4byte 0x020380D7 +_081074A8: .4byte 0x0000FFFF +_081074AC: + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_081074BA: + movs r1, #0x34 + ldrsh r0, [r4, r1] + cmp r0, #0x5a + ble _081074C8 + adds r0, r4, #0 + bl DestroyAnimSprite +_081074C8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081073A4 + + thumb_func_start sub_081074D0 +sub_081074D0: @ 0x081074D0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08107504 + ldr r1, _08107500 + ldrh r0, [r1] + ldrh r2, [r4, #0x20] + adds r0, r0, r2 + strh r0, [r4, #0x20] + ldrh r0, [r1, #2] + ldrh r2, [r4, #0x22] + adds r0, r0, r2 + strh r0, [r4, #0x22] + ldrb r1, [r1, #4] + adds r0, r4, #0 + bl StartSpriteAnim + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + b _08107518 + .align 2, 0 +_08107500: .4byte 0x020380BE +_08107504: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08107518 + adds r0, r4, #0 + bl DestroyAnimSprite +_08107518: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081074D0 + + thumb_func_start sub_08107520 +sub_08107520: @ 0x08107520 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r1, _08107538 + movs r2, #4 + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _0810753C + adds r0, r5, #0 + bl DestroyAnimSprite + b _081075A0 + .align 2, 0 +_08107538: .4byte 0x020380BE +_0810753C: + movs r2, #0 + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _0810754C + ldr r4, _08107548 + b _0810754E + .align 2, 0 +_08107548: .4byte 0x020380D6 +_0810754C: + ldr r4, _0810757C +_0810754E: + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + ldr r0, _08107580 + movs r2, #2 + ldrsh r1, [r0, r2] + adds r2, r0, #0 + cmp r1, #0 + bne _08107584 + ldrh r0, [r5, #0x20] + adds r0, #0x20 + b _08107588 + .align 2, 0 +_0810757C: .4byte 0x020380D7 +_08107580: .4byte 0x020380BE +_08107584: + ldrh r0, [r5, #0x20] + subs r0, #0x20 +_08107588: + strh r0, [r5, #0x20] + ldrh r0, [r2, #4] + strh r0, [r5, #0x2e] + ldrh r1, [r2, #2] + strh r1, [r5, #0x30] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl StartSpriteAnim + ldr r0, _081075A8 + str r0, [r5, #0x1c] +_081075A0: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081075A8: .4byte 0x081075AD + thumb_func_end sub_08107520 + + thumb_func_start sub_081075AC +sub_081075AC: @ 0x081075AC + push {lr} + adds r2, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _081075DC + ldrh r0, [r2, #0x2e] + subs r0, #1 + strh r0, [r2, #0x2e] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _081075D6 + ldrh r1, [r2, #0x30] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r2, #0 + bl StartSpriteAnim + b _081075DC +_081075D6: + adds r0, r2, #0 + bl DestroyAnimSprite +_081075DC: + pop {r0} + bx r0 + thumb_func_end sub_081075AC + + thumb_func_start sub_081075E0 +sub_081075E0: @ 0x081075E0 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _08107614 + ldrb r0, [r0] + bl GetAnimBattlerSpriteId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + ldr r0, _08107618 + adds r4, r4, r0 + ldr r2, _0810761C + adds r0, r4, #0 + bl PrepareAffineAnimInTaskData + ldr r0, _08107620 + str r0, [r4] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08107614: .4byte 0x020380BE +_08107618: .4byte 0x03005B60 +_0810761C: .4byte 0x0856F77C +_08107620: .4byte 0x08107625 + thumb_func_end sub_081075E0 + + thumb_func_start sub_08107624 +sub_08107624: @ 0x08107624 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _0810764C + adds r0, r0, r1 + bl RunAffineAnimFromTaskData + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08107644 + adds r0, r4, #0 + bl DestroyAnimVisualTask +_08107644: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810764C: .4byte 0x03005B60 + thumb_func_end sub_08107624 + + thumb_func_start sub_08107650 +sub_08107650: @ 0x08107650 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldr r0, _08107664 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _0810766C + ldr r0, _08107668 + b _0810766E + .align 2, 0 +_08107664: .4byte 0x020380BE +_08107668: .4byte 0x020380D6 +_0810766C: + ldr r0, _08107704 +_0810766E: + ldrb r6, [r0] + adds r0, r6, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08107688 + ldr r1, _08107708 + movs r2, #2 + ldrsh r0, [r1, r2] + rsbs r0, r0, #0 + strh r0, [r1, #2] +_08107688: + adds r0, r6, #0 + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + ldr r7, _08107708 + lsrs r0, r0, #0x18 + ldrh r3, [r7, #2] + adds r0, r0, r3 + movs r4, #0 + strh r0, [r5, #0x20] + adds r0, r6, #0 + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r7, #4] + adds r0, r0, r1 + strh r0, [r5, #0x22] + strh r4, [r5, #0x2e] + ldrh r1, [r5, #0x20] + lsls r1, r1, #3 + strh r1, [r5, #0x30] + lsls r0, r0, #3 + strh r0, [r5, #0x32] + movs r2, #2 + ldrsh r0, [r7, r2] + lsls r0, r0, #3 + cmp r0, #0 + bge _081076C8 + adds r0, #7 +_081076C8: + asrs r0, r0, #3 + strh r0, [r5, #0x34] + movs r3, #4 + ldrsh r0, [r7, r3] + lsls r0, r0, #3 + cmp r0, #0 + bge _081076D8 + adds r0, #7 +_081076D8: + asrs r0, r0, #3 + strh r0, [r5, #0x36] + ldrh r2, [r5, #4] + lsls r1, r2, #0x16 + lsrs r1, r1, #0x16 + movs r3, #6 + ldrsh r0, [r7, r3] + lsls r0, r0, #4 + adds r1, r1, r0 + ldr r3, _0810770C + adds r0, r3, #0 + ands r1, r0 + ldr r0, _08107710 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, #4] + ldr r0, _08107714 + str r0, [r5, #0x1c] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08107704: .4byte 0x020380D7 +_08107708: .4byte 0x020380BE +_0810770C: .4byte 0x000003FF +_08107710: .4byte 0xFFFFFC00 +_08107714: .4byte 0x08107719 + thumb_func_end sub_08107650 + + thumb_func_start sub_08107718 +sub_08107718: @ 0x08107718 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x34] + ldrh r1, [r2, #0x30] + adds r0, r0, r1 + strh r0, [r2, #0x30] + ldrh r1, [r2, #0x36] + ldrh r3, [r2, #0x32] + adds r1, r1, r3 + strh r1, [r2, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x13 + strh r0, [r2, #0x20] + lsls r1, r1, #0x10 + asrs r1, r1, #0x13 + strh r1, [r2, #0x22] + ldrh r0, [r2, #0x2e] + adds r0, #1 + strh r0, [r2, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x10 + ble _0810774C + adds r0, r2, #0 + bl DestroyAnimSprite +_0810774C: + pop {r0} + bx r0 + thumb_func_end sub_08107718 + + thumb_func_start sub_08107750 +sub_08107750: @ 0x08107750 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08107772 + ldr r0, _081077AC + ldrh r1, [r0] + movs r0, #0x78 + subs r0, r0, r1 + strh r0, [r4, #0x30] + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] +_08107772: + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x30 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _08107790 + ldrb r0, [r4, #5] + lsrs r0, r0, #4 + adds r0, #0x10 + movs r1, #0 + bl SetGreyscaleOrOriginalPalette +_08107790: + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r2, #0x30 + ldrsh r0, [r4, r2] + adds r0, #0x50 + cmp r1, r0 + bne _081077A4 + adds r0, r4, #0 + bl DestroyAnimSprite +_081077A4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081077AC: .4byte 0x020380BE + thumb_func_end sub_08107750 + + thumb_func_start sub_081077B0 +sub_081077B0: @ 0x081077B0 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r1, #0x2e + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _081077DE + movs r5, #0x78 + strh r5, [r6, #0x20] + ldr r4, _08107860 + movs r2, #0 + ldrsh r0, [r4, r2] + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + subs r0, #0xf + strh r0, [r6, #0x22] + ldrb r1, [r4, #2] + adds r0, r6, #0 + bl StartSpriteAnim + strh r5, [r6, #0x38] + ldrh r0, [r4, #4] + strh r0, [r6, #0x34] +_081077DE: + ldrh r0, [r6, #0x2e] + adds r0, #1 + movs r5, #0 + strh r0, [r6, #0x2e] + movs r1, #0x2e + ldrsh r0, [r6, r1] + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + strh r0, [r6, #0x30] + movs r2, #0x2e + ldrsh r0, [r6, r2] + lsls r4, r0, #1 + adds r4, r4, r0 + ldrh r0, [r6, #0x34] + adds r4, 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, #4 + bl Cos + ldrh r2, [r6, #0x30] + adds r4, r4, r2 + adds r0, r0, r4 + strh r0, [r6, #0x26] + movs r0, #0x2e + ldrsh r1, [r6, r0] + movs r2, #0x38 + ldrsh r0, [r6, r2] + cmp r1, r0 + ble _0810785A + ldr r0, _08107864 + str r0, [r6, #0x1c] + strh r5, [r6, #0x2e] + adds r0, r6, #0 + bl SetSpritePrimaryCoordsFromSecondaryCoords + movs r0, #5 + strh r0, [r6, #0x32] + strh r5, [r6, #0x36] + strh r5, [r6, #0x34] + adds r0, r6, #0 + movs r1, #1 + bl StartSpriteAffineAnim +_0810785A: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08107860: .4byte 0x020380BE +_08107864: .4byte 0x08107869 + thumb_func_end sub_081077B0 + + thumb_func_start sub_08107868 +sub_08107868: @ 0x08107868 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0x2e] + adds r0, #1 + strh r0, [r1, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xa + ble _08107882 + movs r0, #0 + strh r0, [r1, #0x2e] + ldr r0, _08107888 + str r0, [r1, #0x1c] +_08107882: + pop {r0} + bx r0 + .align 2, 0 +_08107888: .4byte 0x0810788D + thumb_func_end sub_08107868 + + thumb_func_start sub_0810788C +sub_0810788C: @ 0x0810788C + 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, #1 + strh r1, [r4, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x30 + ble _081078B6 + lsls r0, r1, #0x10 + cmp r0, #0 + ble _081078B6 + ldrh r0, [r4, #0x36] + subs r1, r0, #5 + strh r1, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x36] +_081078B6: + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #3 + ble _081078E8 + movs r2, #0x32 + ldrsh r1, [r4, r2] + lsrs r0, r1, #0x1f + adds r0, r1, r0 + asrs r0, r0, #1 + lsls r0, r0, #1 + subs r1, r1, r0 + adds r3, r4, #0 + adds r3, #0x3e + movs r0, #1 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r3] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + adds r0, r4, #0 + bl DestroyAnimSprite +_081078E8: + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #4 + bne _081078F6 + adds r0, r4, #0 + bl DestroyAnimSprite +_081078F6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0810788C + + thumb_func_start sub_081078FC +sub_081078FC: @ 0x081078FC + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _08107940 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08107948 + ldr r4, _08107944 + ldrb r1, [r4] + movs r0, #2 + eors r0, r1 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08107948 + ldrb r0, [r4] + adds r2, r5, #0 + adds r2, #0x20 + adds r3, r5, #0 + adds r3, #0x22 + movs r1, #0 + bl SetAverageBattlerPositions + ldrh r0, [r5, #0x22] + adds r0, #0x28 + strh r0, [r5, #0x22] + adds r0, r5, #0 + movs r1, #1 + bl StartSpriteAffineAnim + b _08107968 + .align 2, 0 +_08107940: .4byte 0x02022C90 +_08107944: .4byte 0x020380D6 +_08107948: + ldr r4, _08107988 + ldrb r0, [r4] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #0x28 + strh r0, [r5, #0x22] +_08107968: + 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, _0810798C + str r0, [r5, #0x1c] + ldr r1, _08107990 + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08107988: .4byte 0x020380D6 +_0810798C: .4byte 0x080A67B5 +_08107990: .4byte 0x080A34C5 + thumb_func_end sub_081078FC + + thumb_func_start AnimTask_IsFuryCutterHitRight +AnimTask_IsFuryCutterHitRight: @ 0x08107994 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _081079B0 + ldr r1, _081079B4 + ldr r1, [r1] + ldrb r2, [r1, #0x10] + movs r1, #1 + ands r1, r2 + strh r1, [r3, #0xe] + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_081079B0: .4byte 0x020380BE +_081079B4: .4byte 0x020380A0 + thumb_func_end AnimTask_IsFuryCutterHitRight + + thumb_func_start AnimTask_GetFuryCutterHitCount +AnimTask_GetFuryCutterHitCount: @ 0x081079B8 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _081079D0 + ldr r1, _081079D4 + ldr r1, [r1] + ldrb r1, [r1, #0x10] + strh r1, [r2, #0xe] + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_081079D0: .4byte 0x020380BE +_081079D4: .4byte 0x020380A0 + thumb_func_end AnimTask_GetFuryCutterHitCount + diff --git a/asm/battle_anim_effects_3.s b/asm/battle_anim_effects_3.s new file mode 100644 index 0000000..d4a71d8 --- /dev/null +++ b/asm/battle_anim_effects_3.s @@ -0,0 +1,13087 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_0815A010 +sub_0815A010: @ 0x0815A010 + push {lr} + adds r2, r0, #0 + ldr r1, _0815A034 + ldrh r0, [r1] + ldrh r3, [r2, #0x20] + adds r0, r0, r3 + strh r0, [r2, #0x20] + ldrh r0, [r1, #2] + ldrh r3, [r2, #0x22] + adds r0, r0, r3 + strh r0, [r2, #0x22] + movs r3, #6 + ldrsh r0, [r1, r3] + cmp r0, #0 + bne _0815A038 + ldrh r0, [r1, #4] + b _0815A03C + .align 2, 0 +_0815A034: .4byte 0x020380BE +_0815A038: + ldrh r0, [r1, #4] + rsbs r0, r0, #0 +_0815A03C: + strh r0, [r2, #0x2e] + ldrh r0, [r1, #8] + strh r0, [r2, #0x30] + ldr r0, _0815A04C + str r0, [r2, #0x1c] + pop {r0} + bx r0 + .align 2, 0 +_0815A04C: .4byte 0x0815A051 + thumb_func_end sub_0815A010 + + thumb_func_start sub_0815A050 +sub_0815A050: @ 0x0815A050 + push {lr} + adds r3, r0, #0 + movs r1, #0x30 + ldrsh r0, [r3, r1] + cmp r0, #0 + ble _0815A090 + ldrh r1, [r3, #0x32] + lsls r0, r1, #0x10 + asrs r0, r0, #0x18 + strh r0, [r3, #0x24] + ldrh r0, [r3, #0x2e] + adds r1, r1, r0 + strh r1, [r3, #0x32] + movs r0, #0x3e + adds r0, r0, r3 + mov ip, r0 + ldrb r2, [r0] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrh r0, [r3, #0x30] + subs r0, #1 + strh r0, [r3, #0x30] + b _0815A096 +_0815A090: + adds r0, r3, #0 + bl DestroyAnimSprite +_0815A096: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0815A050 + + thumb_func_start sub_0815A09C +sub_0815A09C: @ 0x0815A09C + push {r4, r5, r6, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r6, _0815A0E8 + ldrb r0, [r6] + movs r1, #2 + bl GetBattlerSpriteCoord + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #8 + movs r0, #0x80 + lsls r0, r0, #0xc + adds r4, r4, r0 + asrs r4, r4, #0x10 + ldrb r0, [r6] + movs r1, #3 + bl GetBattlerSpriteCoord + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #8 + movs r0, #0x80 + lsls r0, r0, #0xc + adds r1, r1, r0 + asrs r1, r1, #0x10 + adds r0, r4, #0 + movs r2, #0 + bl sub_08074C24 + adds r0, r5, #0 + bl DestroyAnimVisualTask + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0815A0E8: .4byte 0x020380D7 + thumb_func_end sub_0815A09C + + thumb_func_start sub_0815A0EC +sub_0815A0EC: @ 0x0815A0EC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x5a + strh r0, [r4, #0x2e] + ldr r0, _0815A128 + str r0, [r4, #0x1c] + movs r0, #7 + strh r0, [r4, #0x30] + ldr r1, _0815A12C + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + movs r1, #0xfd + lsls r1, r1, #6 + movs r0, #0x50 + bl SetGpuReg + ldrh r0, [r4, #0x30] + movs r1, #0x10 + subs r1, r1, r0 + lsls r1, r1, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815A128: .4byte 0x080A5D79 +_0815A12C: .4byte 0x0815A131 + thumb_func_end sub_0815A0EC + + thumb_func_start sub_0815A130 +sub_0815A130: @ 0x0815A130 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x30] + movs r1, #0x10 + subs r1, r1, r0 + lsls r1, r1, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + ldrh r0, [r4, #0x30] + subs r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _0815A164 + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _0815A16C + str r0, [r4, #0x1c] +_0815A164: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815A16C: .4byte 0x0815A171 + thumb_func_end sub_0815A130 + + thumb_func_start sub_0815A170 +sub_0815A170: @ 0x0815A170 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + adds r0, r4, #0 + bl DestroyAnimSprite + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0815A170 + + thumb_func_start sub_0815A190 +sub_0815A190: @ 0x0815A190 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r5, r0, #0 + ldr r4, _0815A21C + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r7, r0, #0 + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r0, #0 + adds r0, r5, #0 + movs r1, #1 + bl InitSpritePosToAnimTarget + ldrh r0, [r5, #0x20] + subs r0, r0, r7 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrh r1, [r5, #0x22] + subs r1, r1, r6 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl ArcTan2Neg + lsls r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #0x17 + adds r0, r0, r1 + lsrs r4, r0, #0x10 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0815A1EE + movs r1, #0x80 + lsls r1, r1, #7 + adds r0, r4, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_0815A1EE: + movs r3, #0x80 + lsls r3, r3, #1 + str r4, [sp] + adds r0, r5, #0 + movs r1, #0 + adds r2, r3, #0 + bl TrySetSpriteRotScale + ldr r0, _0815A220 + ldrh r0, [r0, #4] + strh r0, [r5, #0x2e] + strh r7, [r5, #0x32] + strh r6, [r5, #0x36] + ldr r0, _0815A224 + str r0, [r5, #0x1c] + ldr r1, _0815A228 + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0815A21C: .4byte 0x020380D7 +_0815A220: .4byte 0x020380BE +_0815A224: .4byte 0x080A67B5 +_0815A228: .4byte 0x080A34C5 + thumb_func_end sub_0815A190 + + thumb_func_start sub_0815A22C +sub_0815A22C: @ 0x0815A22C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xfd + lsls r1, r1, #6 + movs r0, #0x50 + bl SetGpuReg + movs r1, #0x80 + lsls r1, r1, #5 + movs r0, #0x52 + bl SetGpuReg + movs r0, #4 + strh r0, [r4, #0x2e] + ldr r0, _0815A254 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815A254: .4byte 0x0815A259 + thumb_func_end sub_0815A22C + + thumb_func_start sub_0815A258 +sub_0815A258: @ 0x0815A258 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + movs r1, #0x10 + subs r1, r1, r0 + lsls r1, r1, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r1, #0x30 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0815A27E + ldrh r0, [r4, #0x2e] + subs r0, #1 + b _0815A282 +_0815A27E: + ldrh r0, [r4, #0x2e] + adds r0, #1 +_0815A282: + strh r0, [r4, #0x2e] + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0xf + beq _0815A290 + cmp r0, #4 + bne _0815A298 +_0815A290: + ldrh r0, [r4, #0x30] + movs r1, #1 + eors r0, r1 + strh r0, [r4, #0x30] +_0815A298: + ldrh r0, [r4, #0x32] + adds r1, r0, #1 + strh r1, [r4, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x46 + ble _0815A2DC + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAffineAnim + movs r0, #0 + strh r0, [r4, #0x32] + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + subs r2, #0x12 + ldrb r0, [r2] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2] + ldr r0, _0815A2E4 + str r0, [r4, #0x1c] +_0815A2DC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815A2E4: .4byte 0x0815A2E9 + thumb_func_end sub_0815A258 + + thumb_func_start sub_0815A2E8 +sub_0815A2E8: @ 0x0815A2E8 + push {lr} + adds r3, r0, #0 + ldrh r0, [r3, #0x32] + adds r1, r0, #1 + strh r1, [r3, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #9 + ble _0815A324 + adds r2, r3, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + subs r2, #0x12 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + adds r0, r3, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0815A324 + ldr r0, _0815A328 + str r0, [r3, #0x1c] +_0815A324: + pop {r0} + bx r0 + .align 2, 0 +_0815A328: .4byte 0x0815A32D + thumb_func_end sub_0815A2E8 + + thumb_func_start sub_0815A32C +sub_0815A32C: @ 0x0815A32C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x34 + ldrsh r0, [r4, r1] + cmp r0, #6 + bhi _0815A384 + lsls r0, r0, #2 + ldr r1, _0815A344 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0815A344: .4byte 0x0815A348 +_0815A348: @ jump table + .4byte _0815A364 @ case 0 + .4byte _0815A364 @ case 1 + .4byte _0815A36E @ case 2 + .4byte _0815A36E @ case 3 + .4byte _0815A37C @ case 4 + .4byte _0815A37C @ case 5 + .4byte _0815A384 @ case 6 +_0815A364: + movs r1, #0 + movs r0, #1 + strh r0, [r4, #0x24] + strh r1, [r4, #0x26] + b _0815A38C +_0815A36E: + ldr r0, _0815A378 + strh r0, [r4, #0x24] + movs r0, #0 + b _0815A38A + .align 2, 0 +_0815A378: .4byte 0x0000FFFF +_0815A37C: + movs r0, #0 + strh r0, [r4, #0x24] + movs r0, #1 + b _0815A38A +_0815A384: + movs r0, #0 + strh r0, [r4, #0x24] + ldr r0, _0815A3D0 +_0815A38A: + strh r0, [r4, #0x26] +_0815A38C: + ldrh r0, [r4, #0x34] + adds r0, #1 + movs r2, #0 + strh r0, [r4, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + ble _0815A39E + strh r2, [r4, #0x34] +_0815A39E: + ldrh r0, [r4, #0x36] + adds r1, r0, #1 + strh r1, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xf + ble _0815A3C8 + movs r0, #0x10 + strh r0, [r4, #0x2e] + strh r2, [r4, #0x30] + movs r1, #0xfd + lsls r1, r1, #6 + movs r0, #0x50 + bl SetGpuReg + ldrh r1, [r4, #0x2e] + movs r0, #0x52 + bl SetGpuReg + ldr r0, _0815A3D4 + str r0, [r4, #0x1c] +_0815A3C8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815A3D0: .4byte 0x0000FFFF +_0815A3D4: .4byte 0x0815A3D9 + thumb_func_end sub_0815A32C + + thumb_func_start sub_0815A3D8 +sub_0815A3D8: @ 0x0815A3D8 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + movs r1, #0x10 + subs r1, r1, r0 + lsls r1, r1, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + ldrh r0, [r4, #0x30] + adds r1, r0, #1 + strh r1, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _0815A408 + ldrh r0, [r4, #0x2e] + subs r0, #1 + movs r1, #0 + strh r0, [r4, #0x2e] + strh r1, [r4, #0x30] +_0815A408: + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0815A41C + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] +_0815A41C: + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + bge _0815A43A + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + adds r0, r4, #0 + bl DestroyAnimSprite +_0815A43A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0815A3D8 + + thumb_func_start sub_0815A440 +sub_0815A440: @ 0x0815A440 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0815A45C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r0, _0815A460 + str r0, [r1] + ldr r1, _0815A464 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + bx lr + .align 2, 0 +_0815A45C: .4byte 0x03005B60 +_0815A460: .4byte 0x0815A469 +_0815A464: .4byte 0x0203809E + thumb_func_end sub_0815A440 + + thumb_func_start sub_0815A468 +sub_0815A468: @ 0x0815A468 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl sub_080A665C + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r7, _0815A4F4 + lsls r5, r4, #2 + adds r1, r5, r4 + lsls r1, r1, #3 + adds r1, r1, r7 + ldrh r0, [r1, #0x12] + adds r0, #1 + strh r0, [r1, #0x12] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + bne _0815A4D8 + ldr r0, _0815A4F8 + lsls r2, r6, #4 + adds r1, r2, #0 + adds r1, #0xb + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r3, [r1] + mov r8, r3 + movs r3, #0xa + mov sb, r7 + adds r7, r5, #0 + mov ip, r0 + adds r5, r2, #0 + lsls r0, r6, #5 + add r0, ip + adds r2, r0, #0 + adds r2, #0x14 +_0815A4B6: + ldrh r0, [r2] + strh r0, [r1] + subs r2, #2 + subs r1, #2 + subs r3, #1 + cmp r3, #0 + bgt _0815A4B6 + adds r0, r5, #1 + lsls r0, r0, #1 + add r0, ip + movs r1, #0 + mov r2, r8 + strh r2, [r0] + adds r0, r7, r4 + lsls r0, r0, #3 + add r0, sb + strh r1, [r0, #0x12] +_0815A4D8: + ldr r0, _0815A4FC + ldrh r1, [r0, #0xe] + ldr r0, _0815A500 + cmp r1, r0 + bne _0815A4E8 + adds r0, r4, #0 + bl DestroyTask +_0815A4E8: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0815A4F4: .4byte 0x03005B60 +_0815A4F8: .4byte 0x020377B4 +_0815A4FC: .4byte 0x020380BE +_0815A500: .4byte 0x0000FFFF + thumb_func_end sub_0815A468 + + thumb_func_start sub_0815A504 +sub_0815A504: @ 0x0815A504 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0815A520 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r0, _0815A524 + str r0, [r1] + ldr r1, _0815A528 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + bx lr + .align 2, 0 +_0815A520: .4byte 0x03005B60 +_0815A524: .4byte 0x0815A52D +_0815A528: .4byte 0x0203809E + thumb_func_end sub_0815A504 + + thumb_func_start sub_0815A52C +sub_0815A52C: @ 0x0815A52C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + bl sub_080A665C + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r5, _0815A5EC + mov r0, r8 + lsls r3, r0, #2 + adds r1, r3, r0 + lsls r1, r1, #3 + adds r1, r1, r5 + ldrh r0, [r1, #0x12] + adds r0, #1 + strh r0, [r1, #0x12] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + bne _0815A5CE + ldr r0, _0815A5F0 + lsls r2, r7, #4 + adds r1, r2, #0 + adds r1, #0xb + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r6, [r1] + movs r4, #0xa + mov sl, r3 + mov sb, r0 + adds r5, r2, #0 + ldr r2, _0815A5F4 + mov ip, r2 + lsls r0, r7, #5 + add r0, sb + adds r3, r0, #0 + adds r3, #0x14 +_0815A580: + ldrh r0, [r3] + strh r0, [r1] + subs r3, #2 + subs r1, #2 + subs r4, #1 + cmp r4, #0 + bgt _0815A580 + adds r0, r5, #1 + lsls r0, r0, #1 + add r0, sb + strh r6, [r0] + adds r1, r5, #0 + adds r1, #0xb + lsls r1, r1, #1 + add r1, ip + ldrh r6, [r1] + movs r4, #0xa + lsls r0, r7, #5 + add r0, ip + adds r2, r0, #0 + adds r2, #0x14 +_0815A5AA: + ldrh r0, [r2] + strh r0, [r1] + subs r2, #2 + subs r1, #2 + subs r4, #1 + cmp r4, #0 + bgt _0815A5AA + adds r0, r5, #1 + lsls r0, r0, #1 + add r0, ip + movs r1, #0 + strh r6, [r0] + mov r0, sl + add r0, r8 + lsls r0, r0, #3 + ldr r2, _0815A5EC + adds r0, r0, r2 + strh r1, [r0, #0x12] +_0815A5CE: + ldr r0, _0815A5F8 + ldrh r1, [r0, #0xe] + ldr r0, _0815A5FC + cmp r1, r0 + bne _0815A5DE + mov r0, r8 + bl DestroyTask +_0815A5DE: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0815A5EC: .4byte 0x03005B60 +_0815A5F0: .4byte 0x020377B4 +_0815A5F4: .4byte 0x020373B4 +_0815A5F8: .4byte 0x020380BE +_0815A5FC: .4byte 0x0000FFFF + thumb_func_end sub_0815A52C + + thumb_func_start sub_0815A600 +sub_0815A600: @ 0x0815A600 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldr r0, _0815A664 + ldrb r0, [r0] + mov r5, sp + adds r5, #2 + movs r1, #0 + mov r2, sp + adds r3, r5, #0 + bl SetAverageBattlerPositions + ldr r0, _0815A668 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0815A634 + ldr r1, _0815A66C + ldrh r0, [r1, #4] + rsbs r0, r0, #0 + strh r0, [r1, #4] +_0815A634: + ldr r1, _0815A66C + ldrh r0, [r1, #8] + strh r0, [r4, #0x2e] + mov r2, sp + ldrh r0, [r1, #4] + ldrh r2, [r2] + adds r0, r0, r2 + strh r0, [r4, #0x32] + ldrh r0, [r1, #6] + ldrh r5, [r5] + adds r0, r0, r5 + strh r0, [r4, #0x36] + ldr r0, _0815A670 + strh r0, [r4, #0x38] + adds r0, r4, #0 + bl InitAnimArcTranslation + ldr r0, _0815A674 + str r0, [r4, #0x1c] + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0815A664: .4byte 0x020380D7 +_0815A668: .4byte 0x020380D6 +_0815A66C: .4byte 0x020380BE +_0815A670: .4byte 0x0000FFCE +_0815A674: .4byte 0x0815A679 + thumb_func_end sub_0815A600 + + thumb_func_start sub_0815A678 +sub_0815A678: @ 0x0815A678 + push {r4, lr} + adds r4, r0, #0 + bl TranslateAnimHorizontalArc + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0815A69A + movs r1, #0 + movs r0, #0x1e + strh r0, [r4, #0x2e] + strh r1, [r4, #0x30] + ldr r0, _0815A6A0 + str r0, [r4, #0x1c] + ldr r1, _0815A6A4 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 +_0815A69A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815A6A0: .4byte 0x080A5D79 +_0815A6A4: .4byte 0x0815A6A9 + thumb_func_end sub_0815A678 + + thumb_func_start sub_0815A6A8 +sub_0815A6A8: @ 0x0815A6A8 + push {lr} + adds r3, r0, #0 + ldrh r1, [r3, #0x30] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0815A6D4 + movs r0, #0x3e + adds r0, r0, r3 + mov ip, r0 + ldrb r2, [r0] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] +_0815A6D4: + ldrh r0, [r3, #0x30] + adds r0, #1 + strh r0, [r3, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x10 + bne _0815A6E8 + adds r0, r3, #0 + bl DestroyAnimSprite +_0815A6E8: + pop {r0} + bx r0 + thumb_func_end sub_0815A6A8 + + thumb_func_start sub_0815A6EC +sub_0815A6EC: @ 0x0815A6EC + push {r4, r5, lr} + adds r4, r0, #0 + bl SetSpriteCoordsToAnimAttackerCoords + ldr r5, _0815A71C + movs r0, #0 + ldrsh r1, [r5, r0] + adds r0, r4, #0 + bl SetAnimSpriteInitialXOffset + ldrh r0, [r5, #2] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] + ldr r0, _0815A720 + str r0, [r4, #0x1c] + ldr r1, _0815A724 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0815A71C: .4byte 0x020380BE +_0815A720: .4byte 0x080A60A1 +_0815A724: .4byte 0x080A34C5 + thumb_func_end sub_0815A6EC + + thumb_func_start sub_0815A728 +sub_0815A728: @ 0x0815A728 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0815A788 + adds r0, r4, #0 + bl SetSpriteCoordsToAnimAttackerCoords + ldr r5, _0815A764 + movs r2, #0 + ldrsh r1, [r5, r2] + adds r0, r4, #0 + bl SetAnimSpriteInitialXOffset + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0815A77C + ldr r0, _0815A768 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0815A76C + ldrh r0, [r5, #4] + b _0815A782 + .align 2, 0 +_0815A764: .4byte 0x020380BE +_0815A768: .4byte 0x020380D6 +_0815A76C: + movs r1, #4 + ldrsh r0, [r5, r1] + rsbs r0, r0, #0 + strh r0, [r4, #0x30] + movs r2, #6 + ldrsh r0, [r5, r2] + rsbs r0, r0, #0 + b _0815A786 +_0815A77C: + movs r1, #4 + ldrsh r0, [r5, r1] + rsbs r0, r0, #0 +_0815A782: + strh r0, [r4, #0x30] + ldrh r0, [r5, #6] +_0815A786: + strh r0, [r4, #0x32] +_0815A788: + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + movs r2, #0x2e + ldrsh r1, [r4, r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + movs r3, #0xff + ldrh r1, [r4, #0x30] + ldrh r2, [r4, #0x34] + adds r1, r1, r2 + strh r1, [r4, #0x34] + ldrh r1, [r4, #0x32] + ldrh r2, [r4, #0x36] + adds r1, r1, r2 + strh r1, [r4, #0x36] + movs r2, #0x34 + ldrsh r1, [r4, r2] + lsrs r2, r1, #0x1f + adds r1, r1, r2 + asrs r1, r1, #1 + strh r1, [r4, #0x24] + ands r0, r3 + movs r1, #5 + bl Sin + movs r2, #0x36 + ldrsh r1, [r4, r2] + lsrs r2, r1, #0x1f + adds r1, r1, r2 + asrs r1, r1, #1 + adds r0, r0, r1 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x24] + ldrh r1, [r4, #0x20] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xf0 + bls _0815A7E0 + adds r0, r4, #0 + bl DestroyAnimSprite +_0815A7E0: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0815A728 + + thumb_func_start sub_0815A7E8 +sub_0815A7E8: @ 0x0815A7E8 + push {lr} + adds r2, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0815A7FE + adds r0, r2, #0 + bl DestroyAnimSprite +_0815A7FE: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0815A7E8 + + thumb_func_start AnimTask_IsTargetPlayerSide +AnimTask_IsTargetPlayerSide: @ 0x0815A804 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0815A820 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0815A828 + ldr r1, _0815A824 + movs r0, #0 + b _0815A82C + .align 2, 0 +_0815A820: .4byte 0x020380D7 +_0815A824: .4byte 0x020380BE +_0815A828: + ldr r1, _0815A83C + movs r0, #1 +_0815A82C: + strh r0, [r1, #0xe] + adds r0, r4, #0 + bl DestroyAnimVisualTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815A83C: .4byte 0x020380BE + thumb_func_end AnimTask_IsTargetPlayerSide + + thumb_func_start AnimTask_IsHealingMove +AnimTask_IsHealingMove: @ 0x0815A840 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _0815A854 + ldr r0, [r0] + cmp r0, #0 + ble _0815A85C + ldr r1, _0815A858 + movs r0, #0 + b _0815A860 + .align 2, 0 +_0815A854: .4byte 0x020380A4 +_0815A858: .4byte 0x020380BE +_0815A85C: + ldr r1, _0815A86C + movs r0, #1 +_0815A860: + strh r0, [r1, #0xe] + adds r0, r2, #0 + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_0815A86C: .4byte 0x020380BE + thumb_func_end AnimTask_IsHealingMove + + thumb_func_start sub_0815A870 +sub_0815A870: @ 0x0815A870 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r1, _0815A8CC + movs r0, #0x4a + bl SetGpuReg + movs r1, #0x80 + lsls r1, r1, #8 + movs r0, #0 + bl SetGpuRegBits + ldr r0, _0815A8D0 + movs r1, #0 + strh r1, [r0] + ldr r4, _0815A8D4 + strh r1, [r4] + movs r0, #0x40 + movs r1, #0 + bl SetGpuReg + ldrh r1, [r4] + movs r0, #0x44 + bl SetGpuReg + adds r0, r5, #0 + movs r1, #0 + bl InitSpritePosToAnimTarget + ldrb r1, [r5, #1] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r5, #1] + adds r2, r5, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _0815A8D8 + str r0, [r5, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0815A8CC: .4byte 0x00001F3F +_0815A8D0: .4byte 0x02022AD8 +_0815A8D4: .4byte 0x02022ADA +_0815A8D8: .4byte 0x0815A8DD + thumb_func_end sub_0815A870 + + thumb_func_start sub_0815A8DC +sub_0815A8DC: @ 0x0815A8DC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #5 + bhi _0815A99C + lsls r0, r0, #2 + ldr r1, _0815A8F4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0815A8F4: .4byte 0x0815A8F8 +_0815A8F8: @ jump table + .4byte _0815A910 @ case 0 + .4byte _0815A92E @ case 1 + .4byte _0815A94E @ case 2 + .4byte _0815A92E @ case 3 + .4byte _0815A96E @ case 4 + .4byte _0815A97E @ case 5 +_0815A910: + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0815A99C + b _0815A976 +_0815A92E: + ldrh r0, [r4, #0x30] + adds r0, #0x75 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x15 + bne _0815A99C + movs r0, #0 + strh r0, [r4, #0x32] + b _0815A976 +_0815A94E: + ldrh r0, [r4, #0x30] + subs r0, #0x75 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x29 + bne _0815A99C + movs r0, #0 + strh r0, [r4, #0x32] + b _0815A976 +_0815A96E: + adds r0, r4, #0 + movs r1, #1 + bl ChangeSpriteAffineAnim +_0815A976: + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + b _0815A99C +_0815A97E: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0815A99C + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _0815A9A4 + str r0, [r4, #0x1c] +_0815A99C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815A9A4: .4byte 0x0815A9A9 + thumb_func_end sub_0815A8DC + + thumb_func_start sub_0815A9A8 +sub_0815A9A8: @ 0x0815A9A8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0815A9DC + movs r0, #0x4a + bl SetGpuReg + movs r0, #0 + bl GetGpuReg + adds r1, r0, #0 + movs r2, #0x80 + lsls r2, r2, #8 + adds r0, r2, #0 + eors r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0 + bl SetGpuReg + adds r0, r4, #0 + bl DestroyAnimSprite + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815A9DC: .4byte 0x00003F3F + thumb_func_end sub_0815A9A8 + + thumb_func_start sub_0815A9E0 +sub_0815A9E0: @ 0x0815A9E0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, _0815AA54 + movs r1, #6 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _0815AA0C + ldr r4, _0815AA58 + ldrb r0, [r4] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] +_0815AA0C: + ldrh r0, [r6] + ldrh r2, [r5, #0x20] + adds r0, r0, r2 + movs r3, #0 + strh r0, [r5, #0x20] + ldrh r0, [r6, #2] + ldrh r4, [r5, #0x22] + adds r0, r0, r4 + strh r0, [r5, #0x22] + ldrh r2, [r5, #4] + lsls r1, r2, #0x16 + lsrs r1, r1, #0x16 + adds r1, #0x10 + ldr r4, _0815AA5C + adds r0, r4, #0 + ands r1, r0 + ldr r0, _0815AA60 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, #4] + movs r1, #4 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _0815AA68 + ldrb r1, [r5, #3] + movs r0, #0x3f + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r5, #3] + ldr r0, _0815AA64 + strh r0, [r5, #0x24] + movs r0, #2 + b _0815AA6E + .align 2, 0 +_0815AA54: .4byte 0x020380BE +_0815AA58: .4byte 0x020380D6 +_0815AA5C: .4byte 0x000003FF +_0815AA60: .4byte 0xFFFFFC00 +_0815AA64: .4byte 0x0000FFF4 +_0815AA68: + movs r0, #0xc + strh r0, [r5, #0x24] + ldr r0, _0815AA8C +_0815AA6E: + strh r0, [r5, #0x30] + ldr r1, _0815AA90 + ldrh r0, [r1, #8] + strh r0, [r5, #0x2e] + movs r2, #0x34 + ldrsh r0, [r5, r2] + cmp r0, #0xff + beq _0815AA82 + ldrh r0, [r1, #4] + strh r0, [r5, #0x34] +_0815AA82: + ldr r0, _0815AA94 + str r0, [r5, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0815AA8C: .4byte 0x0000FFFE +_0815AA90: .4byte 0x020380BE +_0815AA94: .4byte 0x0815AA99 + thumb_func_end sub_0815A9E0 + + thumb_func_start sub_0815AA98 +sub_0815AA98: @ 0x0815AA98 + push {r4, lr} + adds r4, r0, #0 + ldrh r2, [r4, #0x32] + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0815AAD6 + ldrh r0, [r4, #0x30] + ldrh r1, [r4, #0x24] + adds r0, r0, r1 + strh r0, [r4, #0x24] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0815AAF6 + adds r0, r2, #1 + strh r0, [r4, #0x32] + movs r1, #0x34 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0815AAF6 + movs r0, #0x40 + rsbs r0, r0, #0 + bl BattleAnimAdjustPanning + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r0, #0xde + bl PlaySE1WithPanning + b _0815AAF6 +_0815AAD6: + ldrh r0, [r4, #0x24] + ldrh r1, [r4, #0x30] + subs r0, r0, r1 + strh r0, [r4, #0x24] + movs r1, #0x24 + ldrsh r0, [r4, r1] + cmp r0, #0 + bge _0815AAE8 + rsbs r0, r0, #0 +_0815AAE8: + cmp r0, #0xc + bne _0815AAF6 + ldrh r0, [r4, #0x2e] + subs r0, #1 + strh r0, [r4, #0x2e] + subs r0, r2, #1 + strh r0, [r4, #0x32] +_0815AAF6: + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0815AB04 + adds r0, r4, #0 + bl DestroyAnimSprite +_0815AB04: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0815AA98 + + thumb_func_start sub_0815AB0C +sub_0815AB0C: @ 0x0815AB0C + push {lr} + ldrb r2, [r0, #1] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #8 + orrs r1, r2 + strb r1, [r0, #1] + movs r1, #0xff + strh r1, [r0, #0x34] + bl sub_0815A9E0 + pop {r0} + bx r0 + thumb_func_end sub_0815AB0C + + thumb_func_start sub_0815AB28 +sub_0815AB28: @ 0x0815AB28 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0815AB7C + ldr r1, _0815AB64 + movs r0, #0x48 + bl SetGpuReg + ldr r1, _0815AB68 + ldr r2, _0815AB6C + adds r0, r2, #0 + strh r0, [r1] + ldr r1, _0815AB70 + movs r0, #0xa0 + strh r0, [r1] + ldr r0, _0815AB74 + ldrh r1, [r0] + movs r0, #0x42 + bl SetGpuReg + ldr r0, _0815AB78 + ldrh r1, [r0] + movs r0, #0x46 + bl SetGpuReg + b _0815ABAC + .align 2, 0 +_0815AB64: .4byte 0x00001F3F +_0815AB68: .4byte 0x02022ADC +_0815AB6C: .4byte 0x000098F0 +_0815AB70: .4byte 0x02022ADE +_0815AB74: .4byte 0x02022AD8 +_0815AB78: .4byte 0x02022ADA +_0815AB7C: + ldr r1, _0815ABB8 + movs r0, #0x48 + bl SetGpuReg + ldr r1, _0815ABBC + movs r0, #0xf0 + strh r0, [r1] + ldr r4, _0815ABC0 + ldr r1, _0815ABC4 + adds r0, r1, #0 + strh r0, [r4] + movs r0, #0x42 + movs r1, #0xf0 + bl SetGpuReg + ldrh r1, [r4] + movs r0, #0x46 + bl SetGpuReg + movs r1, #0x80 + lsls r1, r1, #7 + movs r0, #0 + bl SetGpuRegBits +_0815ABAC: + adds r0, r5, #0 + bl DestroyAnimVisualTask + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0815ABB8: .4byte 0x00001F3F +_0815ABBC: .4byte 0x02022ADC +_0815ABC0: .4byte 0x02022ADE +_0815ABC4: .4byte 0x000078A0 + thumb_func_end sub_0815AB28 + + thumb_func_start sub_0815ABC8 +sub_0815ABC8: @ 0x0815ABC8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _0815AC00 + movs r0, #0x48 + bl SetGpuReg + ldr r0, _0815AC04 + movs r1, #0 + strh r1, [r0] + ldr r0, _0815AC08 + strh r1, [r0] + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0815ABF4 + movs r1, #0x80 + lsls r1, r1, #7 + movs r0, #0 + bl ClearGpuRegBits +_0815ABF4: + adds r0, r4, #0 + bl DestroyAnimVisualTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815AC00: .4byte 0x00003F3F +_0815AC04: .4byte 0x02022ADC +_0815AC08: .4byte 0x02022ADE + thumb_func_end sub_0815ABC8 + + thumb_func_start sub_0815AC0C +sub_0815AC0C: @ 0x0815AC0C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, _0815AC20 + movs r1, #0 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _0815AC28 + ldr r4, _0815AC24 + b _0815AC2A + .align 2, 0 +_0815AC20: .4byte 0x020380BE +_0815AC24: .4byte 0x020380D6 +_0815AC28: + ldr r4, _0815AC7C +_0815AC2A: + ldrb r0, [r4] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r6, [r6, #2] + adds r0, r0, r6 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + ldr r2, _0815AC80 + ldrh r0, [r2, #4] + strh r0, [r5, #0x26] + movs r3, #0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrh r4, [r2, #6] + movs r6, #6 + ldrsh r1, [r2, r6] + cmp r0, r1 + ble _0815AC62 + movs r3, #1 +_0815AC62: + strh r3, [r5, #0x2e] + movs r0, #0 + strh r0, [r5, #0x30] + ldrh r0, [r2, #8] + strh r0, [r5, #0x32] + ldrh r0, [r2, #0xa] + strh r0, [r5, #0x34] + strh r4, [r5, #0x36] + ldr r0, _0815AC84 + str r0, [r5, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0815AC7C: .4byte 0x020380D7 +_0815AC80: .4byte 0x020380BE +_0815AC84: .4byte 0x0815AC89 + thumb_func_end sub_0815AC0C + + thumb_func_start sub_0815AC88 +sub_0815AC88: @ 0x0815AC88 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x32] + ldrh r1, [r2, #0x30] + adds r0, r0, r1 + movs r1, #0xff + ands r0, r1 + strh r0, [r2, #0x30] + ldr r1, _0815ACD0 + movs r3, #0x30 + ldrsh r0, [r2, r3] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + strh r0, [r2, #0x24] + ldrh r0, [r2, #0x34] + ldrh r3, [r2, #0x26] + adds r1, r0, r3 + strh r1, [r2, #0x26] + movs r3, #0x2e + ldrsh r0, [r2, r3] + cmp r0, #0 + beq _0815ACD4 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + movs r3, #0x36 + ldrsh r1, [r2, r3] + cmp r0, r1 + bge _0815ACE6 + adds r0, r2, #0 + bl DestroyAnimSprite + b _0815ACE6 + .align 2, 0 +_0815ACD0: .4byte 0x082FA8CC +_0815ACD4: + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + movs r3, #0x36 + ldrsh r1, [r2, r3] + cmp r0, r1 + ble _0815ACE6 + adds r0, r2, #0 + bl DestroyAnimSprite +_0815ACE6: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0815AC88 + + thumb_func_start sub_0815ACEC +sub_0815ACEC: @ 0x0815ACEC + push {r4, r5, r6, r7, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _0815AD0C + adds r5, r1, r0 + ldr r0, _0815AD10 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _0815AD18 + ldr r4, _0815AD14 + b _0815AD1A + .align 2, 0 +_0815AD0C: .4byte 0x03005B60 +_0815AD10: .4byte 0x020380BE +_0815AD14: .4byte 0x020380D6 +_0815AD18: + ldr r4, _0815AD60 +_0815AD1A: + ldrb r0, [r4] + bl GetBattlerYCoordWithElevation + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldrb r0, [r4] + bl GetBattlerSpriteBGPriorityRank + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + adds r0, r6, #0 + adds r1, r0, #0 + adds r1, #0x24 + movs r2, #0 + strh r1, [r5, #8] + strh r1, [r5, #0xa] + subs r0, #0x21 + strh r0, [r5, #0xc] + cmp r0, #0 + bge _0815AD44 + strh r2, [r5, #0xc] +_0815AD44: + ldrh r0, [r5, #8] + strh r0, [r5, #0xe] + movs r0, #8 + strh r0, [r5, #0x10] + ldr r1, _0815AD64 + ldrh r0, [r1, #2] + strh r0, [r5, #0x12] + strh r2, [r5, #0x14] + strh r2, [r5, #0x16] + cmp r7, #1 + bne _0815AD6C + ldr r0, _0815AD68 + b _0815AD6E + .align 2, 0 +_0815AD60: .4byte 0x020380D7 +_0815AD64: .4byte 0x020380BE +_0815AD68: .4byte 0x02022ACC +_0815AD6C: + ldr r0, _0815AD8C +_0815AD6E: + ldrh r2, [r0] + strh r2, [r5, #0x18] + adds r3, r2, #0 + adds r3, #0xf0 + strh r3, [r5, #0x1a] + ldrh r0, [r1, #4] + strh r0, [r5, #0x1c] + movs r4, #4 + ldrsh r0, [r1, r4] + cmp r0, #0 + bne _0815AD90 + strh r3, [r5, #0x1e] + ldrh r3, [r5, #0x18] + b _0815AD94 + .align 2, 0 +_0815AD8C: .4byte 0x02022AD0 +_0815AD90: + strh r2, [r5, #0x1e] + ldrh r3, [r5, #0x1a] +_0815AD94: + movs r0, #0 + strh r0, [r5, #0x26] + ldrh r1, [r5, #0xc] + lsls r2, r1, #0x10 + asrs r1, r2, #0x10 + movs r6, #0xe + ldrsh r0, [r5, r6] + cmp r1, r0 + bgt _0815ADCA + ldr r4, _0815ADD4 + movs r0, #0xf0 + lsls r0, r0, #3 + adds r0, r0, r4 + mov ip, r0 +_0815ADB0: + asrs r2, r2, #0x10 + lsls r1, r2, #1 + adds r0, r1, r4 + strh r3, [r0] + add r1, ip + strh r3, [r1] + adds r2, #1 + lsls r2, r2, #0x10 + asrs r1, r2, #0x10 + movs r6, #0xe + ldrsh r0, [r5, r6] + cmp r1, r0 + ble _0815ADB0 +_0815ADCA: + cmp r7, #1 + bne _0815ADDC + ldr r0, _0815ADD8 + b _0815ADDE + .align 2, 0 +_0815ADD4: .4byte 0x020388C8 +_0815ADD8: .4byte 0x04000014 +_0815ADDC: + ldr r0, _0815AE08 +_0815ADDE: + str r0, [sp] + ldr r0, _0815AE0C + str r0, [sp, #4] + mov r1, sp + movs r2, #0 + movs r0, #1 + strb r0, [r1, #8] + mov r0, sp + strb r2, [r0, #9] + ldr r0, [sp] + ldr r1, [sp, #4] + ldr r2, [sp, #8] + bl ScanlineEffect_SetParams + ldr r0, _0815AE10 + str r0, [r5] + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0815AE08: .4byte 0x04000018 +_0815AE0C: .4byte 0xA2600001 +_0815AE10: .4byte 0x0815AE15 + thumb_func_end sub_0815ACEC + + thumb_func_start sub_0815AE14 +sub_0815AE14: @ 0x0815AE14 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + ldr r1, _0815AE64 + adds r4, r0, r1 + ldrh r0, [r4, #8] + ldrh r1, [r4, #0x12] + subs r0, r0, r1 + strh r0, [r4, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrh r2, [r4, #0xc] + movs r3, #0xc + ldrsh r1, [r4, r3] + cmp r0, r1 + bge _0815AE3C + strh r2, [r4, #8] +_0815AE3C: + ldrh r1, [r4, #0x10] + movs r2, #0x10 + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _0815AE68 + ldrh r0, [r4, #0xa] + ldrh r1, [r4, #0x12] + subs r0, r0, r1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrh r2, [r4, #0xc] + movs r3, #0xc + ldrsh r1, [r4, r3] + cmp r0, r1 + bge _0815AE6C + strh r2, [r4, #0xa] + movs r0, #1 + strh r0, [r4, #0x26] + b _0815AE6C + .align 2, 0 +_0815AE64: .4byte 0x03005B60 +_0815AE68: + subs r0, r1, #1 + strh r0, [r4, #0x10] +_0815AE6C: + ldrh r0, [r4, #0x14] + adds r0, #1 + strh r0, [r4, #0x14] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _0815AE98 + movs r0, #0 + strh r0, [r4, #0x14] + movs r1, #0 + movs r2, #0x16 + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _0815AE8A + movs r1, #1 +_0815AE8A: + strh r1, [r4, #0x16] + cmp r1, #0 + beq _0815AE94 + ldrh r0, [r4, #0x18] + b _0815AE96 +_0815AE94: + ldrh r0, [r4, #0x1a] +_0815AE96: + strh r0, [r4, #0x20] +_0815AE98: + ldrh r1, [r4, #8] + lsls r3, r1, #0x10 + asrs r1, r3, #0x10 + movs r2, #0xa + ldrsh r0, [r4, r2] + cmp r1, r0 + bge _0815AECC + ldr r5, _0815AF24 + movs r0, #0xf0 + lsls r0, r0, #3 + adds r6, r5, r0 +_0815AEAE: + asrs r3, r3, #0x10 + lsls r1, r3, #1 + adds r2, r1, r5 + ldrh r0, [r4, #0x20] + strh r0, [r2] + adds r1, r1, r6 + ldrh r0, [r4, #0x20] + strh r0, [r1] + adds r3, #1 + lsls r3, r3, #0x10 + asrs r1, r3, #0x10 + movs r2, #0xa + ldrsh r0, [r4, r2] + cmp r1, r0 + blt _0815AEAE +_0815AECC: + ldrh r1, [r4, #0xa] + lsls r3, r1, #0x10 + asrs r1, r3, #0x10 + movs r2, #0xe + ldrsh r0, [r4, r2] + cmp r1, r0 + bgt _0815AF00 + ldr r5, _0815AF24 + movs r0, #0xf0 + lsls r0, r0, #3 + adds r6, r5, r0 +_0815AEE2: + asrs r3, r3, #0x10 + lsls r1, r3, #1 + adds r2, r1, r5 + ldrh r0, [r4, #0x1e] + strh r0, [r2] + adds r1, r1, r6 + ldrh r0, [r4, #0x1e] + strh r0, [r1] + adds r3, #1 + lsls r3, r3, #0x10 + asrs r1, r3, #0x10 + movs r2, #0xe + ldrsh r0, [r4, r2] + cmp r1, r0 + ble _0815AEE2 +_0815AF00: + movs r3, #0x26 + ldrsh r0, [r4, r3] + cmp r0, #0 + beq _0815AF1C + movs r1, #0x1c + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0815AF16 + ldr r1, _0815AF28 + movs r0, #3 + strb r0, [r1, #0x15] +_0815AF16: + adds r0, r7, #0 + bl DestroyAnimVisualTask +_0815AF1C: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0815AF24: .4byte 0x020388C8 +_0815AF28: .4byte 0x020397C8 + thumb_func_end sub_0815AE14 + + thumb_func_start sub_0815AF2C +sub_0815AF2C: @ 0x0815AF2C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _0815AF80 + adds r4, r4, r0 + movs r5, #0 + strh r5, [r4, #8] + strh r5, [r4, #0xa] + ldr r6, _0815AF84 + ldrb r0, [r6] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0xc] + ldrb r0, [r6] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0xe] + movs r0, #0x20 + strh r0, [r4, #0x10] + ldr r0, _0815AF88 + strh r0, [r4, #0x12] + strh r5, [r4, #0x14] + movs r0, #0 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x26] + ldr r0, _0815AF8C + str r0, [r4] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0815AF80: .4byte 0x03005B60 +_0815AF84: .4byte 0x020380D6 +_0815AF88: .4byte 0x0000FFEC +_0815AF8C: .4byte 0x0815AF91 + thumb_func_end sub_0815AF2C + + thumb_func_start sub_0815AF90 +sub_0815AF90: @ 0x0815AF90 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _0815AFBC + adds r6, r0, r1 + movs r1, #8 + ldrsh r0, [r6, r1] + cmp r0, #5 + bls _0815AFB0 + b _0815B16A +_0815AFB0: + lsls r0, r0, #2 + ldr r1, _0815AFC0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0815AFBC: .4byte 0x03005B60 +_0815AFC0: .4byte 0x0815AFC4 +_0815AFC4: @ jump table + .4byte _0815AFDC @ case 0 + .4byte _0815B09C @ case 1 + .4byte _0815B0CA @ case 2 + .4byte _0815B0DE @ case 3 + .4byte _0815B0F4 @ case 4 + .4byte _0815B15C @ case 5 +_0815AFDC: + movs r0, #0xc + ldrsh r2, [r6, r0] + ldrh r1, [r6, #0xa] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0815AFF2 + movs r1, #0x10 + ldrsh r0, [r6, r1] + subs r0, r2, r0 + b _0815AFF8 +_0815AFF2: + movs r1, #0x10 + ldrsh r0, [r6, r1] + adds r0, r2, r0 +_0815AFF8: + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldrh r2, [r6, #0x12] + ldrh r0, [r6, #0xe] + adds r2, r2, r0 + ldr r0, _0815B08C + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + ldrb r4, [r6, #0xa] + movs r3, #6 + subs r3, r3, r4 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #0x40 + rsbs r0, r0, #0 + bl BattleAnimAdjustPanning + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r0, #0xba + bl PlaySE12WithPanning + cmp r4, #0x40 + beq _0815B05C + ldr r5, _0815B090 + lsls r1, r4, #4 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r3, r1, r5 + ldrh r0, [r6, #0xa] + movs r2, #1 + ands r2, r0 + adds r3, #0x3f + ldrb r4, [r3] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r4 + orrs r0, r2 + strb r0, [r3] + adds r5, #0x1c + adds r1, r1, r5 + ldr r0, _0815B094 + str r0, [r1] +_0815B05C: + ldrh r1, [r6, #0xa] + movs r4, #1 + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + beq _0815B074 + ldrh r0, [r6, #0x10] + subs r0, #6 + strh r0, [r6, #0x10] + ldrh r0, [r6, #0x12] + subs r0, #6 + strh r0, [r6, #0x12] +_0815B074: + ldrh r1, [r6, #0x26] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _0815B098 + adds r0, r6, #0 + bl PrepareAffineAnimInTaskData + ldrh r0, [r6, #0xa] + adds r0, #1 + strh r0, [r6, #0xa] + strh r4, [r6, #8] + b _0815B16A + .align 2, 0 +_0815B08C: .4byte 0x0856ECF8 +_0815B090: .4byte 0x020205AC +_0815B094: .4byte 0x08007141 +_0815B098: .4byte 0x085AD0A8 +_0815B09C: + adds r0, r6, #0 + bl RunAffineAnimFromTaskData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0815B16A + movs r2, #0xa + ldrsh r1, [r6, r2] + cmp r1, #6 + bne _0815B0BC + movs r0, #8 + strh r0, [r6, #0x14] + movs r0, #3 + strh r0, [r6, #8] + b _0815B16A +_0815B0BC: + cmp r1, #2 + bgt _0815B0C2 + movs r0, #0xa +_0815B0C2: + strh r0, [r6, #0x14] + movs r0, #2 + strh r0, [r6, #8] + b _0815B16A +_0815B0CA: + ldrh r0, [r6, #0x14] + movs r2, #0x14 + ldrsh r1, [r6, r2] + cmp r1, #0 + beq _0815B0DA + subs r0, #1 + strh r0, [r6, #0x14] + b _0815B16A +_0815B0DA: + strh r1, [r6, #8] + b _0815B16A +_0815B0DE: + ldrh r1, [r6, #0x14] + movs r2, #0x14 + ldrsh r0, [r6, r2] + cmp r0, #0 + beq _0815B0EE + subs r0, r1, #1 + strh r0, [r6, #0x14] + b _0815B16A +_0815B0EE: + movs r0, #4 + strh r0, [r6, #8] + b _0815B16A +_0815B0F4: + movs r5, #0 + movs r7, #0 + ldr r3, _0815B150 + movs r0, #0x1c + adds r0, r0, r3 + mov r8, r0 +_0815B100: + lsls r0, r5, #4 + adds r0, r0, r5 + lsls r4, r0, #2 + adds r0, r3, #0 + adds r0, #0x14 + adds r0, r4, r0 + ldr r1, [r0] + ldr r0, _0815B154 + cmp r1, r0 + bne _0815B13C + adds r0, r4, r3 + strh r2, [r0, #0x2e] + movs r1, #6 + strh r1, [r0, #0x30] + movs r1, #2 + str r2, [sp] + str r3, [sp, #4] + bl StartSpriteAnim + mov r0, r8 + adds r1, r4, r0 + ldr r0, _0815B158 + str r0, [r1] + adds r0, r7, #1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + ldr r2, [sp] + ldr r3, [sp, #4] + cmp r7, #6 + beq _0815B146 +_0815B13C: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0x3f + bls _0815B100 +_0815B146: + strh r7, [r6, #0x14] + movs r0, #5 + strh r0, [r6, #8] + b _0815B16A + .align 2, 0 +_0815B150: .4byte 0x020205AC +_0815B154: .4byte 0x0856ECF8 +_0815B158: .4byte 0x0815B179 +_0815B15C: + movs r1, #0x14 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _0815B16A + adds r0, r2, #0 + bl DestroyAnimVisualTask +_0815B16A: + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0815AF90 + + thumb_func_start sub_0815B178 +sub_0815B178: @ 0x0815B178 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0815B1AC + ldr r3, _0815B1B4 + movs r0, #0x30 + ldrsh r1, [r4, r0] + lsls r1, r1, #1 + movs r0, #0x2e + ldrsh r2, [r4, r0] + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r3, #8 + adds r1, r1, r3 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + adds r0, r4, #0 + bl DestroySprite +_0815B1AC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815B1B4: .4byte 0x03005B60 + thumb_func_end sub_0815B178 + + thumb_func_start sub_0815B1B8 +sub_0815B1B8: @ 0x0815B1B8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _0815B1CC + adds r0, r5, #0 + movs r1, #0 + bl InitSpritePosToAnimAttacker +_0815B1CC: + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x27 + bgt _0815B1FE + ldrh r0, [r5, #0x2e] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0815B1F0 + adds r2, r5, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + b _0815B1FC +_0815B1F0: + adds r2, r5, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 +_0815B1FC: + strb r0, [r2] +_0815B1FE: + movs r2, #0x2e + ldrsh r0, [r5, r2] + cmp r0, #0x1e + ble _0815B214 + adds r2, r5, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_0815B214: + movs r1, #0x2e + ldrsh r0, [r5, r1] + cmp r0, #0x3d + bne _0815B260 + ldr r1, _0815B268 + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + ldrh r0, [r5, #0x24] + ldrh r2, [r5, #0x20] + adds r0, r0, r2 + movs r1, #0 + strh r0, [r5, #0x20] + ldrh r0, [r5, #0x26] + ldrh r2, [r5, #0x22] + adds r0, r0, r2 + strh r0, [r5, #0x22] + strh r1, [r5, #0x24] + strh r1, [r5, #0x26] + movs r0, #0x14 + strh r0, [r5, #0x2e] + ldr r4, _0815B26C + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x32] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x36] + ldr r0, _0815B270 + str r0, [r5, #0x1c] +_0815B260: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0815B268: .4byte 0x080A34C5 +_0815B26C: .4byte 0x020380D7 +_0815B270: .4byte 0x080A67B5 + thumb_func_end sub_0815B1B8 + + thumb_func_start sub_0815B274 +sub_0815B274: @ 0x0815B274 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _0815B294 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0815B298 + cmp r0, #1 + beq _0815B2B8 + b _0815B2CA + .align 2, 0 +_0815B294: .4byte 0x03005B60 +_0815B298: + movs r0, #0 + bl GetAnimBattlerSpriteId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _0815B2B4 + adds r0, r4, #0 + bl PrepareAffineAnimInTaskData + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _0815B2CA + .align 2, 0 +_0815B2B4: .4byte 0x085AD158 +_0815B2B8: + adds r0, r4, #0 + bl RunAffineAnimFromTaskData + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0815B2CA + adds r0, r5, #0 + bl DestroyAnimVisualTask +_0815B2CA: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_0815B274 + + thumb_func_start sub_0815B2D0 +sub_0815B2D0: @ 0x0815B2D0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #0 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r1, #0x2e + ldrsh r0, [r5, r1] + cmp r0, #1 + beq _0815B330 + cmp r0, #1 + bgt _0815B2F0 + cmp r0, #0 + beq _0815B2FA + b _0815B3D2 +_0815B2F0: + cmp r0, #2 + beq _0815B360 + cmp r0, #3 + beq _0815B3B4 + b _0815B3D2 +_0815B2FA: + ldr r4, _0815B32C + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + adds r0, r6, #0 + movs r1, #0 + bl PrepareBattlerSpriteForRotScale + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r5, #0x30] + strh r0, [r5, #0x32] + b _0815B3A8 + .align 2, 0 +_0815B32C: .4byte 0x020380D6 +_0815B330: + ldrh r0, [r5, #0x30] + adds r0, #0x60 + strh r0, [r5, #0x30] + ldrh r0, [r5, #0x32] + subs r0, #0x1a + strh r0, [r5, #0x32] + movs r2, #0x30 + ldrsh r1, [r5, r2] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r6, #0 + movs r3, #0 + bl SetSpriteRotScale + ldrh r0, [r5, #0x34] + adds r0, #1 + strh r0, [r5, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #5 + bne _0815B360 + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] +_0815B360: + ldrh r0, [r5, #0x30] + adds r0, #0x60 + strh r0, [r5, #0x30] + ldrh r0, [r5, #0x32] + adds r0, #0x30 + strh r0, [r5, #0x32] + movs r2, #0x30 + ldrsh r1, [r5, r2] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r6, #0 + movs r3, #0 + bl SetSpriteRotScale + ldrh r0, [r5, #0x34] + adds r0, #1 + strh r0, [r5, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #9 + bne _0815B3D2 + movs r0, #0 + strh r0, [r5, #0x34] + ldr r1, _0815B3B0 + lsls r0, r6, #4 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r0, r0, r1 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + adds r0, r6, #0 + bl ResetSpriteRotScale +_0815B3A8: + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] + b _0815B3D2 + .align 2, 0 +_0815B3B0: .4byte 0x020205AC +_0815B3B4: + ldrh r0, [r5, #0x26] + subs r0, #6 + strh r0, [r5, #0x26] + movs r1, #0x22 + ldrsh r0, [r5, r1] + movs r2, #0x26 + ldrsh r1, [r5, r2] + adds r0, r0, r1 + movs r1, #0x20 + rsbs r1, r1, #0 + cmp r0, r1 + bge _0815B3D2 + adds r0, r5, #0 + bl DestroyAnimSprite +_0815B3D2: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_0815B2D0 + + thumb_func_start sub_0815B3D8 +sub_0815B3D8: @ 0x0815B3D8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0815B3F0 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0815B3F8 + ldr r0, _0815B3F4 + b _0815B3FC + .align 2, 0 +_0815B3F0: .4byte 0x020380D6 +_0815B3F4: .4byte 0x0000FFF0 +_0815B3F8: + movs r0, #0x80 + lsls r0, r0, #1 +_0815B3FC: + strh r0, [r4, #0x20] + movs r0, #0 + strh r0, [r4, #0x22] + ldr r0, _0815B40C + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815B40C: .4byte 0x0815B411 + thumb_func_end sub_0815B3D8 + + thumb_func_start sub_0815B410 +sub_0815B410: @ 0x0815B410 + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + adds r0, #0x48 + strh r0, [r4, #0x2e] + ldr r0, _0815B430 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0815B434 + ldrh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + b _0815B43C + .align 2, 0 +_0815B430: .4byte 0x020380D6 +_0815B434: + ldrh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + rsbs r0, r0, #0 +_0815B43C: + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x30] + adds r0, #0x10 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x26] + adds r5, r0, r1 + strh r5, [r4, #0x26] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #3 + bl __modsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0815B488 + ldr r0, _0815B4A8 + ldrh r1, [r4, #0x24] + ldrh r2, [r4, #0x20] + adds r1, r1, r2 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldrh r2, [r4, #0x22] + adds r2, r2, r5 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r3, r4, #0 + adds r3, #0x43 + ldrb r3, [r3] + adds r3, #1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + bl CreateSpriteAndAnimate +_0815B488: + movs r1, #0x20 + ldrsh r0, [r4, r1] + movs r2, #0x24 + ldrsh r1, [r4, r2] + adds r0, r0, r1 + adds r0, #0x20 + movs r1, #0x98 + lsls r1, r1, #1 + cmp r0, r1 + bls _0815B4A2 + adds r0, r4, #0 + bl DestroyAnimSprite +_0815B4A2: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0815B4A8: .4byte 0x085AD1A8 + thumb_func_end sub_0815B410 + + thumb_func_start AnimMiniTwinklingStar +AnimMiniTwinklingStar: @ 0x0815B4AC + push {r4, lr} + adds r4, r0, #0 + bl Random2 + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0815B4C6 + ldrh r2, [r4, #4] + lsls r1, r2, #0x16 + lsrs r1, r1, #0x16 + adds r1, #4 + b _0815B4CE +_0815B4C6: + ldrh r2, [r4, #4] + lsls r1, r2, #0x16 + lsrs r1, r1, #0x16 + adds r1, #5 +_0815B4CE: + ldr r3, _0815B500 + adds r0, r3, #0 + ands r1, r0 + ldr r0, _0815B504 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, #4] + bl Random2 + movs r1, #7 + ands r0, r1 + adds r1, r0, #0 + cmp r1, #3 + ble _0815B4F0 + rsbs r0, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_0815B4F0: + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r4, #0x26] + ldr r0, _0815B508 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815B500: .4byte 0x000003FF +_0815B504: .4byte 0xFFFFFC00 +_0815B508: .4byte 0x0815B50D + thumb_func_end AnimMiniTwinklingStar + + thumb_func_start sub_0815B50C +sub_0815B50C: @ 0x0815B50C + push {lr} + adds r3, r0, #0 + ldrh r0, [r3, #0x2e] + adds r0, #1 + strh r0, [r3, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1d + bgt _0815B54E + ldrh r0, [r3, #0x30] + adds r0, #1 + strh r0, [r3, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + bne _0815B582 + movs r0, #0x3e + adds r0, r0, r3 + mov ip, r0 + ldrb r2, [r0] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + movs r0, #0 + b _0815B580 +_0815B54E: + movs r1, #0x30 + ldrsh r0, [r3, r1] + cmp r0, #2 + bne _0815B564 + adds r2, r3, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_0815B564: + movs r1, #0x30 + ldrsh r0, [r3, r1] + cmp r0, #3 + bne _0815B57C + adds r2, r3, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _0815B594 + strh r0, [r3, #0x30] +_0815B57C: + ldrh r0, [r3, #0x30] + adds r0, #1 +_0815B580: + strh r0, [r3, #0x30] +_0815B582: + movs r1, #0x2e + ldrsh r0, [r3, r1] + cmp r0, #0x3c + ble _0815B590 + adds r0, r3, #0 + bl DestroySprite +_0815B590: + pop {r0} + bx r0 + .align 2, 0 +_0815B594: .4byte 0x0000FFFF + thumb_func_end sub_0815B50C + + thumb_func_start sub_0815B598 +sub_0815B598: @ 0x0815B598 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + ldr r1, _0815B5D0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0815B5D8 + movs r0, #0 + bl GetAnimBattlerSpriteId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _0815B5D4 + adds r0, r4, #0 + bl PrepareAffineAnimInTaskData + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _0815B5EA + .align 2, 0 +_0815B5D0: .4byte 0x03005B60 +_0815B5D4: .4byte 0x085AD1C0 +_0815B5D8: + adds r0, r4, #0 + bl RunAffineAnimFromTaskData + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0815B5EA + adds r0, r5, #0 + bl DestroyAnimVisualTask +_0815B5EA: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_0815B598 + + thumb_func_start AnimTask_StrongFrustrationGrowAndShrink +AnimTask_StrongFrustrationGrowAndShrink: @ 0x0815B5F0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + ldr r1, _0815B628 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0815B630 + movs r0, #0 + bl GetAnimBattlerSpriteId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _0815B62C + adds r0, r4, #0 + bl PrepareAffineAnimInTaskData + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _0815B642 + .align 2, 0 +_0815B628: .4byte 0x03005B60 +_0815B62C: .4byte 0x085AD1E8 +_0815B630: + adds r0, r4, #0 + bl RunAffineAnimFromTaskData + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0815B642 + adds r0, r5, #0 + bl DestroyAnimVisualTask +_0815B642: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end AnimTask_StrongFrustrationGrowAndShrink + + thumb_func_start sub_0815B648 +sub_0815B648: @ 0x0815B648 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0815B65A + cmp r0, #1 + beq _0815B684 + b _0815B6AC +_0815B65A: + adds r0, r4, #0 + movs r1, #0 + bl InitSpritePosToAnimAttacker + movs r0, #0x90 + lsls r0, r0, #4 + strh r0, [r4, #0x30] + ldr r0, _0815B680 + ldrb r0, [r0] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + b _0815B6AC + .align 2, 0 +_0815B680: .4byte 0x020380D6 +_0815B684: + ldrh r2, [r4, #0x30] + lsls r1, r2, #0x10 + asrs r1, r1, #0x18 + ldrh r0, [r4, #0x26] + subs r0, r0, r1 + strh r0, [r4, #0x26] + subs r2, #0x60 + strh r2, [r4, #0x30] + movs r2, #0x22 + ldrsh r0, [r4, r2] + movs r2, #0x26 + ldrsh r1, [r4, r2] + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + ble _0815B6AC + adds r0, r4, #0 + bl DestroyAnimSprite +_0815B6AC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0815B648 + + thumb_func_start sub_0815B6B4 +sub_0815B6B4: @ 0x0815B6B4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + ldr r1, _0815B6EC + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0815B6F4 + movs r0, #0 + bl GetAnimBattlerSpriteId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _0815B6F0 + adds r0, r4, #0 + bl PrepareAffineAnimInTaskData + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _0815B706 + .align 2, 0 +_0815B6EC: .4byte 0x03005B60 +_0815B6F0: .4byte 0x085AD238 +_0815B6F4: + adds r0, r4, #0 + bl RunAffineAnimFromTaskData + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0815B706 + adds r0, r5, #0 + bl DestroyAnimVisualTask +_0815B706: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_0815B6B4 + + thumb_func_start sub_0815B70C +sub_0815B70C: @ 0x0815B70C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r1, _0815B73C + lsls r0, r0, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #8 + ldrsh r0, [r0, r2] + adds r3, r1, #0 + cmp r0, #4 + bls _0815B732 + b _0815BA38 +_0815B732: + lsls r0, r0, #2 + ldr r1, _0815B740 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0815B73C: .4byte 0x03005B60 +_0815B740: .4byte 0x0815B744 +_0815B744: @ jump table + .4byte _0815B758 @ case 0 + .4byte _0815B7A8 @ case 1 + .4byte _0815B7E4 @ case 2 + .4byte _0815B980 @ case 3 + .4byte _0815B9BE @ case 4 +_0815B758: + movs r0, #0x4c + movs r1, #0 + bl SetGpuReg + ldr r0, _0815B77C + ldrb r0, [r0] + bl GetBattlerSpriteBGPriorityRank + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0815B780 + movs r0, #1 + movs r1, #2 + movs r2, #1 + bl SetAnimBgAttribute + b _0815B78A + .align 2, 0 +_0815B77C: .4byte 0x020380D6 +_0815B780: + movs r0, #2 + movs r1, #2 + movs r2, #1 + bl SetAnimBgAttribute +_0815B78A: + ldr r0, _0815B7A0 + mov r6, r8 + lsls r1, r6, #2 + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _0815B7A4 + ldrh r0, [r0] + strh r0, [r1, #0x1c] + b _0815B962 + .align 2, 0 +_0815B7A0: .4byte 0x03005B60 +_0815B7A4: .4byte 0x020380BE +_0815B7A8: + mov r1, r8 + lsls r0, r1, #2 + add r0, r8 + lsls r0, r0, #3 + adds r4, r0, r3 + ldrh r0, [r4, #0xc] + adds r1, r0, #1 + strh r1, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + bgt _0815B7C2 + b _0815BA38 +_0815B7C2: + movs r0, #0 + strh r0, [r4, #0xc] + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + ldrh r5, [r4, #0xa] + lsls r1, r5, #4 + orrs r1, r5 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x4c + bl SetGpuReg + cmp r5, #0xf + beq _0815B7E2 + b _0815BA38 +_0815B7E2: + b _0815B9B6 +_0815B7E4: + ldr r5, _0815B814 + ldrb r0, [r5] + ldr r1, _0815B818 + ldrb r1, [r1] + mov r2, r8 + lsls r4, r2, #2 + adds r2, r4, r2 + lsls r2, r2, #3 + adds r2, r2, r3 + ldrb r2, [r2, #0x1c] + bl HandleSpeciesGfxDataChange + ldrb r1, [r5] + mov r0, sp + bl sub_080A64C4 + bl IsContest + lsls r0, r0, #0x18 + mov sb, r4 + cmp r0, #0 + beq _0815B81C + movs r1, #0 + b _0815B826 + .align 2, 0 +_0815B814: .4byte 0x020380D6 +_0815B818: .4byte 0x020380D7 +_0815B81C: + ldrb r0, [r5] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 +_0815B826: + ldr r0, _0815B908 + ldr r2, [r0] + lsls r0, r1, #2 + adds r2, #4 + adds r2, r2, r0 + ldr r1, _0815B90C + ldr r0, _0815B910 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #0xb + ldr r0, [r2] + adds r0, r0, r1 + ldr r1, [sp] + ldr r2, _0815B914 + bl CpuSet + ldr r1, [sp] + movs r2, #0x80 + lsls r2, r2, #4 + mov r0, sp + ldrh r3, [r0, #0xa] + movs r0, #1 + bl LoadBgTiles + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0815B958 + ldr r5, _0815B918 + ldr r0, [r5] + ldr r0, [r0, #0x18] + ldrh r0, [r0] + bl IsSpeciesNotUnown + adds r4, r0, #0 + ldr r0, [r5] + ldr r0, [r0, #0x18] + ldrh r0, [r0, #2] + bl IsSpeciesNotUnown + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + beq _0815B8D8 + ldr r6, [sp, #4] + movs r5, #0 + movs r0, #7 + mov ip, r0 + movs r7, #0 +_0815B88C: + movs r4, #0 + adds r3, r7, r6 + mov r1, ip + lsls r0, r1, #1 + adds r2, r0, r6 +_0815B896: + ldrh r1, [r3] + ldrh r0, [r2] + strh r0, [r3] + strh r1, [r2] + adds r3, #2 + subs r2, #2 + adds r4, #1 + cmp r4, #3 + ble _0815B896 + movs r2, #0x20 + add ip, r2 + adds r7, #0x40 + adds r5, #1 + cmp r5, #7 + ble _0815B88C + movs r5, #0 + movs r0, #0x80 + lsls r0, r0, #3 + adds r3, r0, #0 +_0815B8BC: + adds r2, r5, #1 + lsls r0, r5, #6 + adds r1, r0, r6 + movs r4, #7 +_0815B8C4: + ldrh r0, [r1] + eors r0, r3 + strh r0, [r1] + adds r1, #2 + subs r4, #1 + cmp r4, #0 + bge _0815B8C4 + adds r5, r2, #0 + cmp r5, #7 + ble _0815B8BC +_0815B8D8: + ldr r0, _0815B918 + ldr r0, [r0] + ldr r0, [r0, #0x18] + ldrh r0, [r0, #2] + bl IsSpeciesNotUnown + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0815B928 + ldr r3, _0815B91C + ldr r4, _0815B920 + ldr r2, _0815B910 + ldrb r0, [r2] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r3, #0 + adds r1, #0x10 + adds r0, r0, r1 + ldr r1, _0815B924 + b _0815B942 + .align 2, 0 +_0815B908: .4byte 0x02024178 +_0815B90C: .4byte 0x02024188 +_0815B910: .4byte 0x020380D6 +_0815B914: .4byte 0x04000200 +_0815B918: .4byte 0x02039BD4 +_0815B91C: .4byte 0x020205AC +_0815B920: .4byte 0x02023E88 +_0815B924: .4byte 0x082D2F50 +_0815B928: + ldr r3, _0815B96C + ldr r4, _0815B970 + ldr r2, _0815B974 + ldrb r0, [r2] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r3, #0 + adds r1, #0x10 + adds r0, r0, r1 + ldr r1, _0815B978 +_0815B942: + str r1, [r0] + ldrb r0, [r2] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r1, #0 + bl StartSpriteAffineAnim +_0815B958: + ldr r0, _0815B97C + mov r1, sb + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 +_0815B962: + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _0815BA38 + .align 2, 0 +_0815B96C: .4byte 0x020205AC +_0815B970: .4byte 0x02023E88 +_0815B974: .4byte 0x020380D6 +_0815B978: .4byte 0x082D2F24 +_0815B97C: .4byte 0x03005B60 +_0815B980: + mov r1, r8 + lsls r0, r1, #2 + add r0, r8 + lsls r0, r0, #3 + adds r4, r0, r3 + ldrh r0, [r4, #0xc] + adds r1, r0, #1 + strh r1, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _0815BA38 + movs r0, #0 + strh r0, [r4, #0xc] + ldrh r0, [r4, #0xa] + subs r0, #1 + strh r0, [r4, #0xa] + ldrh r5, [r4, #0xa] + lsls r1, r5, #4 + orrs r1, r5 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x4c + bl SetGpuReg + cmp r5, #0 + bne _0815BA38 +_0815B9B6: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _0815BA38 +_0815B9BE: + movs r0, #0x4c + movs r1, #0 + bl SetGpuReg + ldr r0, _0815B9E4 + ldrb r0, [r0] + bl GetBattlerSpriteBGPriorityRank + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0815B9E8 + movs r0, #1 + movs r1, #2 + movs r2, #0 + bl SetAnimBgAttribute + b _0815B9F2 + .align 2, 0 +_0815B9E4: .4byte 0x020380D6 +_0815B9E8: + movs r0, #2 + movs r1, #2 + movs r2, #0 + bl SetAnimBgAttribute +_0815B9F2: + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0815BA32 + ldr r4, _0815BA48 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0815BA32 + ldr r0, _0815BA4C + mov r2, r8 + lsls r1, r2, #2 + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r6, #0x1c + ldrsh r0, [r1, r6] + cmp r0, #0 + bne _0815BA32 + ldrb r0, [r4] + ldr r1, _0815BA50 + ldr r1, [r1] + ldr r2, [r1] + lsls r1, r0, #2 + adds r1, r1, r2 + ldrh r1, [r1, #2] + bl SetBattlerShadowSpriteCallback +_0815BA32: + mov r0, r8 + bl DestroyAnimVisualTask +_0815BA38: + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0815BA48: .4byte 0x020380D6 +_0815BA4C: .4byte 0x03005B60 +_0815BA50: .4byte 0x02024174 + thumb_func_end sub_0815B70C + + thumb_func_start sub_0815BA54 +sub_0815BA54: @ 0x0815BA54 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _0815BA84 + ldr r3, _0815BA88 + ldr r2, _0815BA8C + ldr r1, _0815BA90 + ldrb r1, [r1] + adds r1, r1, r2 + ldrb r2, [r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r3 + adds r1, #0x3e + ldrb r1, [r1] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1f + strh r1, [r4, #0xe] + bl DestroyAnimVisualTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815BA84: .4byte 0x020380BE +_0815BA88: .4byte 0x020205AC +_0815BA8C: .4byte 0x02023E88 +_0815BA90: .4byte 0x020380D6 + thumb_func_end sub_0815BA54 + + thumb_func_start sub_0815BA94 +sub_0815BA94: @ 0x0815BA94 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _0815BAB8 + ldrb r0, [r0] + ldr r1, _0815BABC + ldrb r1, [r1] + movs r2, #1 + bl HandleSpeciesGfxDataChange + adds r0, r4, #0 + bl DestroyAnimVisualTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815BAB8: .4byte 0x020380D6 +_0815BABC: .4byte 0x020380D7 + thumb_func_end sub_0815BA94 + + thumb_func_start sub_0815BAC0 +sub_0815BAC0: @ 0x0815BAC0 + push {r4, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _0815BAE8 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #8 + ldrsh r0, [r0, r2] + adds r2, r1, #0 + cmp r0, #4 + bls _0815BADE + b _0815BD2E +_0815BADE: + lsls r0, r0, #2 + ldr r1, _0815BAEC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0815BAE8: .4byte 0x03005B60 +_0815BAEC: .4byte 0x0815BAF0 +_0815BAF0: @ jump table + .4byte _0815BB04 @ case 0 + .4byte _0815BBF4 @ case 1 + .4byte _0815BC44 @ case 2 + .4byte _0815BCAE @ case 3 + .4byte _0815BCE2 @ case 4 +_0815BB04: + ldr r1, _0815BB60 + movs r0, #0x50 + bl SetGpuReg + movs r1, #0x80 + lsls r1, r1, #5 + movs r0, #0x52 + bl SetGpuReg + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl SetAnimBgAttribute + movs r0, #1 + movs r1, #4 + movs r2, #1 + bl SetAnimBgAttribute + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0815BB3E + movs r0, #1 + movs r1, #3 + movs r2, #1 + bl SetAnimBgAttribute +_0815BB3E: + mov r0, sp + bl sub_080A63F8 + ldr r1, _0815BB64 + mov r0, sp + movs r2, #0 + bl sub_080A6628 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0815BB70 + ldr r1, _0815BB68 + ldr r3, _0815BB6C + b _0815BB98 + .align 2, 0 +_0815BB60: .4byte 0x00003F42 +_0815BB64: .4byte 0x08C2A790 +_0815BB68: .4byte 0x02022ACC +_0815BB6C: .4byte 0x0000FFC8 +_0815BB70: + ldr r0, _0815BB88 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0815BB94 + ldr r1, _0815BB8C + ldr r2, _0815BB90 + adds r0, r2, #0 + b _0815BB9A + .align 2, 0 +_0815BB88: .4byte 0x020380D6 +_0815BB8C: .4byte 0x02022ACC +_0815BB90: .4byte 0x0000FF79 +_0815BB94: + ldr r1, _0815BBDC + ldr r3, _0815BBE0 +_0815BB98: + adds r0, r3, #0 +_0815BB9A: + strh r0, [r1] + ldr r1, _0815BBE4 + movs r0, #0 + strh r0, [r1] + mov r0, sp + ldrb r0, [r0, #9] + ldr r1, _0815BBE8 + mov r2, sp + ldrh r2, [r2, #0xa] + bl AnimLoadCompressedBgGfx + ldr r0, _0815BBEC + mov r1, sp + ldrb r1, [r1, #8] + lsls r1, r1, #4 + movs r2, #0x20 + bl LoadCompressedPalette + ldr r0, _0815BBF0 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _0815BBDC + ldrh r0, [r0] + strh r0, [r1, #0x1c] + ldr r0, _0815BBE4 + ldrh r0, [r0] + strh r0, [r1, #0x1e] + ldrh r0, [r1, #8] + adds r0, #1 + b _0815BCCA + .align 2, 0 +_0815BBDC: .4byte 0x02022ACC +_0815BBE0: .4byte 0x0000FFF6 +_0815BBE4: .4byte 0x02022ACE +_0815BBE8: .4byte 0x08C2A6D8 +_0815BBEC: .4byte 0x08C2A778 +_0815BBF0: .4byte 0x03005B60 +_0815BBF4: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r4, r0, r2 + ldrh r0, [r4, #0x10] + adds r1, r0, #1 + strh r1, [r4, #0x10] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _0815BC0A + b _0815BD2E +_0815BC0A: + movs r0, #0 + strh r0, [r4, #0x10] + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xc + ble _0815BC20 + movs r0, #0xc + strh r0, [r4, #0xa] +_0815BC20: + ldrh r0, [r4, #0xa] + movs r1, #0x10 + subs r1, r1, r0 + lsls r1, r1, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0xc + bne _0815BD2E + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _0815BD2E +_0815BC44: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r4, r0, r2 + ldrh r0, [r4, #0xa] + subs r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _0815BC5C + movs r0, #0 + strh r0, [r4, #0xa] +_0815BC5C: + ldrh r0, [r4, #0xa] + movs r1, #0x10 + subs r1, r1, r0 + lsls r1, r1, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r2, #0xa + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _0815BD2E + ldr r2, _0815BCA0 + ldr r1, _0815BCA4 + movs r3, #0xc + ldrsh r0, [r4, r3] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x1c] + adds r0, r0, r1 + strh r0, [r2] + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + bne _0815BCA8 + strh r0, [r4, #8] + b _0815BD2E + .align 2, 0 +_0815BCA0: .4byte 0x02022ACC +_0815BCA4: .4byte 0x085AD268 +_0815BCA8: + movs r0, #3 + strh r0, [r4, #8] + b _0815BD2E +_0815BCAE: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r1, r0, r2 + ldrh r0, [r1, #0xe] + adds r0, #1 + strh r0, [r1, #0xe] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + bne _0815BD2E + movs r0, #0 + strh r0, [r1, #0xe] + movs r0, #1 +_0815BCCA: + strh r0, [r1, #8] + movs r0, #0x40 + rsbs r0, r0, #0 + bl BattleAnimAdjustPanning + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r0, #0xe4 + bl PlaySE12WithPanning + b _0815BD2E +_0815BCE2: + mov r0, sp + bl sub_080A63F8 + mov r0, sp + ldrb r0, [r0, #9] + bl sub_080A6530 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0815BD04 + movs r0, #1 + movs r1, #3 + movs r2, #0 + bl SetAnimBgAttribute +_0815BD04: + movs r0, #1 + movs r1, #4 + movs r2, #1 + bl SetAnimBgAttribute + ldr r0, _0815BD38 + movs r1, #0 + strh r1, [r0] + ldr r0, _0815BD3C + strh r1, [r0] + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + adds r0, r4, #0 + bl DestroyAnimVisualTask +_0815BD2E: + add sp, #0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815BD38: .4byte 0x02022ACC +_0815BD3C: .4byte 0x02022ACE + thumb_func_end sub_0815BAC0 + + thumb_func_start sub_0815BD40 +sub_0815BD40: @ 0x0815BD40 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r7, r0, #0 + bl Random2 + lsls r0, r0, #0x10 + movs r1, #0xfc + lsls r1, r1, #0xe + ands r1, r0 + lsrs r5, r1, #0x10 + adds r1, r5, #0 + cmp r1, #0x1f + ble _0815BD6A + movs r0, #0x20 + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_0815BD6A: + ldr r4, _0815BE64 + ldrb r0, [r4] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r5 + strh r0, [r7, #0x20] + ldrb r0, [r4] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #0x20 + strh r0, [r7, #0x22] + ldr r1, _0815BE68 + ldrh r0, [r1] + strh r0, [r7, #0x30] + ldrh r0, [r1, #2] + strh r0, [r7, #0x32] + ldr r4, _0815BE6C + movs r0, #0x20 + ldrsh r1, [r7, r0] + movs r0, #0x22 + ldrsh r2, [r7, r0] + adds r5, r7, #0 + adds r5, #0x43 + ldrb r3, [r5] + adds r3, #1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r4, #0 + bl CreateSprite + mov sb, r0 + mov r1, sb + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sb, r1 + movs r0, #0x20 + ldrsh r1, [r7, r0] + movs r0, #0x22 + ldrsh r2, [r7, r0] + ldrb r3, [r5] + adds r3, #1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r4, #0 + bl CreateSprite + mov r8, r0 + mov r1, r8 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + mov r0, sb + lsls r2, r0, #4 + add r2, sb + lsls r2, r2, #2 + ldr r1, _0815BE70 + mov sl, r1 + adds r5, r2, r1 + adds r0, r5, #0 + movs r1, #1 + str r2, [sp] + bl StartSpriteAnim + mov r0, r8 + lsls r6, r0, #4 + add r6, r8 + lsls r6, r6, #2 + mov r1, sl + adds r4, r6, r1 + adds r0, r4, #0 + movs r1, #2 + bl StartSpriteAnim + ldr r1, _0815BE68 + ldrh r0, [r1] + strh r0, [r5, #0x30] + ldrh r0, [r1, #2] + strh r0, [r5, #0x32] + ldrh r0, [r1] + strh r0, [r4, #0x30] + ldrh r0, [r1, #2] + strh r0, [r4, #0x32] + ldr r0, _0815BE74 + strh r0, [r5, #0x3c] + movs r0, #1 + rsbs r0, r0, #0 + strh r0, [r4, #0x3c] + adds r5, #0x3e + ldrb r0, [r5] + movs r1, #4 + orrs r0, r1 + strb r0, [r5] + adds r4, #0x3e + ldrb r0, [r4] + orrs r0, r1 + strb r0, [r4] + movs r0, #0x1c + add sl, r0 + ldr r2, [sp] + add r2, sl + ldr r0, _0815BE78 + str r0, [r2] + add r6, sl + str r0, [r6] + mov r1, sb + strh r1, [r7, #0x3a] + mov r0, r8 + strh r0, [r7, #0x3c] + ldr r0, _0815BE7C + str r0, [r7, #0x1c] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0815BE64: .4byte 0x020380D6 +_0815BE68: .4byte 0x020380BE +_0815BE6C: .4byte 0x085AD294 +_0815BE70: .4byte 0x020205AC +_0815BE74: .4byte 0x0000FFFF +_0815BE78: .4byte 0x0815BF8D +_0815BE7C: .4byte 0x0815BE81 + thumb_func_end sub_0815BD40 + + thumb_func_start sub_0815BE80 +sub_0815BE80: @ 0x0815BE80 + push {lr} + adds r3, r0, #0 + ldrh r2, [r3, #0x32] + ldrh r0, [r3, #0x34] + adds r2, r2, r0 + lsls r0, r2, #0x10 + asrs r0, r0, #0x18 + ldrh r1, [r3, #0x26] + subs r1, r1, r0 + strh r1, [r3, #0x26] + movs r0, #0xff + ands r2, r0 + strh r2, [r3, #0x34] + movs r2, #0x36 + ldrsh r0, [r3, r2] + cmp r0, #0 + bne _0815BECE + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + movs r1, #8 + rsbs r1, r1, #0 + cmp r0, r1 + bge _0815BECE + ldr r2, _0815BF28 + movs r0, #0x3a + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + ldrh r0, [r3, #0x36] + adds r0, #1 + strh r0, [r3, #0x36] +_0815BECE: + movs r1, #0x36 + ldrsh r0, [r3, r1] + cmp r0, #1 + bne _0815BF02 + movs r2, #0x26 + ldrsh r1, [r3, r2] + movs r0, #0x10 + rsbs r0, r0, #0 + cmp r1, r0 + bge _0815BF02 + ldr r2, _0815BF28 + movs r0, #0x3c + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + ldrh r0, [r3, #0x36] + adds r0, #1 + strh r0, [r3, #0x36] +_0815BF02: + ldrh r0, [r3, #0x30] + subs r0, #1 + strh r0, [r3, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0815BF24 + adds r2, r3, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _0815BF2C + str r0, [r3, #0x1c] +_0815BF24: + pop {r0} + bx r0 + .align 2, 0 +_0815BF28: .4byte 0x020205AC +_0815BF2C: .4byte 0x0815BF31 + thumb_func_end sub_0815BE80 + + thumb_func_start sub_0815BF30 +sub_0815BF30: @ 0x0815BF30 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r5, _0815BF84 + movs r0, #0x3a + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r3, r0, #2 + adds r6, r5, #0 + adds r6, #0x1c + adds r0, r3, r6 + ldr r2, [r0] + ldr r0, _0815BF88 + cmp r2, r0 + bne _0815BF7C + movs r1, #0x3c + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldr r0, [r1] + cmp r0, r2 + bne _0815BF7C + adds r0, r3, r5 + bl DestroySprite + movs r0, #0x3c + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + bl DestroySprite + adds r0, r4, #0 + bl DestroyAnimSprite +_0815BF7C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0815BF84: .4byte 0x020205AC +_0815BF88: .4byte 0x08007141 + thumb_func_end sub_0815BF30 + + thumb_func_start sub_0815BF8C +sub_0815BF8C: @ 0x0815BF8C + push {lr} + adds r3, r0, #0 + movs r0, #0x3e + adds r0, r0, r3 + mov ip, r0 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _0815BFD8 + ldrh r2, [r3, #0x32] + ldrh r1, [r3, #0x34] + adds r2, r2, r1 + lsls r1, r2, #0x10 + asrs r1, r1, #0x18 + ldrh r0, [r3, #0x26] + subs r0, r0, r1 + strh r0, [r3, #0x26] + movs r0, #0xff + ands r2, r0 + strh r2, [r3, #0x34] + ldrh r0, [r3, #0x30] + subs r0, #1 + strh r0, [r3, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0815BFD8 + mov r1, ip + ldrb r0, [r1] + movs r1, #4 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldr r0, _0815BFDC + str r0, [r3, #0x1c] +_0815BFD8: + pop {r0} + bx r0 + .align 2, 0 +_0815BFDC: .4byte 0x08007141 + thumb_func_end sub_0815BF8C + + thumb_func_start sub_0815BFE0 +sub_0815BFE0: @ 0x0815BFE0 + push {r4, r5, r6, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _0815C008 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #8 + ldrsh r0, [r0, r2] + adds r4, r1, #0 + cmp r0, #5 + bls _0815BFFE + b _0815C2D2 +_0815BFFE: + lsls r0, r0, #2 + ldr r1, _0815C00C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0815C008: .4byte 0x03005B60 +_0815C00C: .4byte 0x0815C010 +_0815C010: @ jump table + .4byte _0815C028 @ case 0 + .4byte _0815C160 @ case 1 + .4byte _0815C1E8 @ case 2 + .4byte _0815C21E @ case 3 + .4byte _0815C24C @ case 4 + .4byte _0815C286 @ case 5 +_0815C028: + ldr r1, _0815C084 + movs r0, #0x50 + bl SetGpuReg + ldr r1, _0815C088 + movs r0, #0x52 + bl SetGpuReg + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl SetAnimBgAttribute + movs r0, #1 + movs r1, #4 + movs r2, #1 + bl SetAnimBgAttribute + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0815C060 + movs r0, #1 + movs r1, #3 + movs r2, #1 + bl SetAnimBgAttribute +_0815C060: + mov r0, sp + bl sub_080A63F8 + ldr r1, _0815C08C + mov r0, sp + movs r2, #0 + bl sub_080A6628 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0815C098 + ldr r1, _0815C090 + ldr r3, _0815C094 + adds r0, r3, #0 + b _0815C106 + .align 2, 0 +_0815C084: .4byte 0x00003F42 +_0815C088: .4byte 0x00000D03 +_0815C08C: .4byte 0x08C2A790 +_0815C090: .4byte 0x02022ACC +_0815C094: .4byte 0x0000FFC8 +_0815C098: + ldr r0, _0815C0DC + ldrb r0, [r0] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl IsDoubleBattle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0815C0F0 + cmp r4, #1 + bne _0815C0BC + ldr r1, _0815C0E0 + ldr r2, _0815C0E4 + adds r0, r2, #0 + strh r0, [r1] +_0815C0BC: + cmp r4, #3 + bne _0815C0C8 + ldr r1, _0815C0E0 + ldr r3, _0815C0E8 + adds r0, r3, #0 + strh r0, [r1] +_0815C0C8: + cmp r4, #0 + bne _0815C0D2 + ldr r1, _0815C0E0 + movs r0, #0xe + strh r0, [r1] +_0815C0D2: + cmp r4, #2 + bne _0815C108 + ldr r1, _0815C0E0 + ldr r2, _0815C0EC + b _0815C104 + .align 2, 0 +_0815C0DC: .4byte 0x020380D7 +_0815C0E0: .4byte 0x02022ACC +_0815C0E4: .4byte 0x0000FF65 +_0815C0E8: .4byte 0x0000FF8D +_0815C0EC: .4byte 0x0000FFEC +_0815C0F0: + cmp r4, #1 + bne _0815C0FC + ldr r1, _0815C144 + ldr r3, _0815C148 + adds r0, r3, #0 + strh r0, [r1] +_0815C0FC: + cmp r4, #0 + bne _0815C108 + ldr r1, _0815C144 + ldr r2, _0815C14C +_0815C104: + adds r0, r2, #0 +_0815C106: + strh r0, [r1] +_0815C108: + ldr r1, _0815C150 + movs r0, #0 + strh r0, [r1] + mov r0, sp + ldrb r0, [r0, #9] + ldr r1, _0815C154 + mov r2, sp + ldrh r2, [r2, #0xa] + bl AnimLoadCompressedBgGfx + ldr r0, _0815C158 + mov r1, sp + ldrb r1, [r1, #8] + lsls r1, r1, #4 + movs r2, #0x20 + bl LoadCompressedPalette + ldr r0, _0815C15C + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _0815C144 + ldrh r0, [r0] + strh r0, [r1, #0x1c] + ldr r0, _0815C150 + ldrh r0, [r0] + strh r0, [r1, #0x1e] + b _0815C1E0 + .align 2, 0 +_0815C144: .4byte 0x02022ACC +_0815C148: .4byte 0x0000FF79 +_0815C14C: .4byte 0x0000FFF6 +_0815C150: .4byte 0x02022ACE +_0815C154: .4byte 0x08C2A6D8 +_0815C158: .4byte 0x08C2A778 +_0815C15C: .4byte 0x03005B60 +_0815C160: + ldr r1, _0815C194 + lsls r4, r6, #2 + adds r0, r4, r6 + lsls r0, r0, #3 + adds r5, r0, r1 + movs r0, #0 + strh r0, [r5, #0xe] + ldr r0, _0815C198 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0815C1A4 + ldr r2, _0815C19C + ldr r1, _0815C1A0 + movs r3, #0xc + ldrsh r0, [r5, r3] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r5, [r5, #0x1c] + adds r0, r0, r5 + b _0815C1B6 + .align 2, 0 +_0815C194: .4byte 0x03005B60 +_0815C198: .4byte 0x020380D7 +_0815C19C: .4byte 0x02022ACC +_0815C1A0: .4byte 0x085AD2AC +_0815C1A4: + ldr r2, _0815C1D4 + ldr r1, _0815C1D8 + movs r3, #0xc + ldrsh r0, [r5, r3] + adds r0, r0, r1 + movs r1, #0 + ldrsb r1, [r0, r1] + ldrh r0, [r5, #0x1c] + subs r0, r0, r1 +_0815C1B6: + strh r0, [r2] + ldr r0, _0815C1DC + adds r1, r4, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0xc] + adds r0, #1 + strh r0, [r1, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #5 + bne _0815C1E0 + strh r0, [r1, #8] + b _0815C2D2 + .align 2, 0 +_0815C1D4: .4byte 0x02022ACC +_0815C1D8: .4byte 0x085AD2AC +_0815C1DC: .4byte 0x03005B60 +_0815C1E0: + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _0815C2D2 +_0815C1E8: + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r4, r0, r4 + ldrh r0, [r4, #0xa] + subs r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + bgt _0815C202 + movs r0, #5 + strh r0, [r4, #0xa] +_0815C202: + ldrh r1, [r4, #0xa] + lsls r1, r1, #8 + movs r0, #3 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #5 + bne _0815C2D2 + b _0815C23E +_0815C21E: + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r4, r0, r4 + ldrh r1, [r4, #0xe] + adds r1, #1 + strh r1, [r4, #0xe] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldr r2, _0815C248 + movs r3, #0xc + ldrsh r0, [r4, r3] + adds r0, r0, r2 + ldrb r0, [r0] + cmp r1, r0 + ble _0815C2D2 +_0815C23E: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _0815C2D2 + .align 2, 0 +_0815C248: .4byte 0x085AD2B0 +_0815C24C: + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r4, r0, r4 + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xd + ble _0815C266 + movs r0, #0xd + strh r0, [r4, #0xa] +_0815C266: + ldrh r1, [r4, #0xa] + lsls r1, r1, #8 + movs r0, #3 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0xd + bne _0815C2D2 + movs r0, #1 + strh r0, [r4, #8] + b _0815C2D2 +_0815C286: + mov r0, sp + bl sub_080A63F8 + mov r0, sp + ldrb r0, [r0, #9] + bl sub_080A6530 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0815C2A8 + movs r0, #1 + movs r1, #3 + movs r2, #0 + bl SetAnimBgAttribute +_0815C2A8: + movs r0, #1 + movs r1, #4 + movs r2, #1 + bl SetAnimBgAttribute + ldr r0, _0815C2DC + movs r1, #0 + strh r1, [r0] + ldr r0, _0815C2E0 + strh r1, [r0] + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + adds r0, r6, #0 + bl DestroyAnimVisualTask +_0815C2D2: + add sp, #0x10 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0815C2DC: .4byte 0x02022ACC +_0815C2E0: .4byte 0x02022ACE + thumb_func_end sub_0815BFE0 + + thumb_func_start sub_0815C2E4 +sub_0815C2E4: @ 0x0815C2E4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + ldr r1, _0815C31C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0815C324 + movs r0, #0 + bl GetAnimBattlerSpriteId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _0815C320 + adds r0, r4, #0 + bl PrepareAffineAnimInTaskData + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _0815C336 + .align 2, 0 +_0815C31C: .4byte 0x03005B60 +_0815C320: .4byte 0x085AD2B8 +_0815C324: + adds r0, r4, #0 + bl RunAffineAnimFromTaskData + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0815C336 + adds r0, r5, #0 + bl DestroyAnimVisualTask +_0815C336: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_0815C2E4 + + thumb_func_start AnimWeakFrustrationAngerMark +AnimWeakFrustrationAngerMark: @ 0x0815C33C + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + movs r2, #0x2e + ldrsh r1, [r4, r2] + cmp r1, #0 + bne _0815C35A + adds r0, r4, #0 + movs r1, #0 + bl InitSpritePosToAnimAttacker + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + b _0815C3AE +_0815C35A: + adds r0, #1 + strh r0, [r4, #0x2e] + cmp r1, #0x14 + ble _0815C3AE + ldrh r0, [r4, #0x30] + adds r0, #0xa0 + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x32] + adds r0, #0x80 + strh r0, [r4, #0x32] + ldr r0, _0815C388 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0815C38C + ldrh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + rsbs r0, r0, #0 + b _0815C392 + .align 2, 0 +_0815C388: .4byte 0x020380D6 +_0815C38C: + ldrh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 +_0815C392: + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x26] + adds r0, r0, r1 + strh r0, [r4, #0x26] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x40 + ble _0815C3AE + adds r0, r4, #0 + bl DestroyAnimSprite +_0815C3AE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end AnimWeakFrustrationAngerMark + + thumb_func_start AnimTask_RockMonBackAndForth +AnimTask_RockMonBackAndForth: @ 0x0815C3B4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _0815C3D8 + adds r4, r0, r1 + ldr r5, _0815C3DC + movs r1, #2 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _0815C3E0 + adds r0, r2, #0 + bl DestroyAnimVisualTask + b _0815C474 + .align 2, 0 +_0815C3D8: .4byte 0x03005B60 +_0815C3DC: .4byte 0x020380BE +_0815C3E0: + movs r1, #4 + ldrsh r0, [r5, r1] + cmp r0, #0 + bge _0815C3EC + movs r0, #0 + strh r0, [r5, #4] +_0815C3EC: + movs r1, #4 + ldrsh r0, [r5, r1] + cmp r0, #2 + ble _0815C3F8 + movs r0, #2 + strh r0, [r5, #4] +_0815C3F8: + movs r0, #0 + strh r0, [r4, #8] + strh r0, [r4, #0xa] + strh r0, [r4, #0xc] + movs r0, #4 + ldrsh r1, [r5, r0] + lsls r1, r1, #1 + movs r0, #8 + subs r0, r0, r1 + strh r0, [r4, #0xe] + movs r1, #4 + ldrsh r0, [r5, r1] + lsls r0, r0, #7 + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r0, r1 + strh r0, [r4, #0x10] + ldrh r0, [r5, #4] + adds r0, #2 + strh r0, [r4, #0x12] + ldrh r0, [r5, #2] + subs r0, #1 + strh r0, [r4, #0x14] + ldrb r0, [r5] + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x26] + movs r1, #0 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _0815C444 + ldr r0, _0815C440 + b _0815C446 + .align 2, 0 +_0815C440: .4byte 0x020380D6 +_0815C444: + ldr r0, _0815C47C +_0815C446: + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0815C464 + movs r1, #0x10 + ldrsh r0, [r4, r1] + rsbs r0, r0, #0 + strh r0, [r4, #0x10] + movs r1, #0x12 + ldrsh r0, [r4, r1] + rsbs r0, r0, #0 + strh r0, [r4, #0x12] +_0815C464: + ldrh r0, [r4, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl PrepareBattlerSpriteForRotScale + ldr r0, _0815C480 + str r0, [r4] +_0815C474: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0815C47C: .4byte 0x020380D7 +_0815C480: .4byte 0x0815C485 + thumb_func_end AnimTask_RockMonBackAndForth + + thumb_func_start AnimTask_RockMonBackAndForthStep +AnimTask_RockMonBackAndForthStep: @ 0x0815C484 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _0815C4A8 + adds r4, r0, r1 + movs r0, #8 + ldrsh r6, [r4, r0] + cmp r6, #1 + beq _0815C50C + cmp r6, #1 + bgt _0815C4AC + cmp r6, #0 + beq _0815C4B8 + b _0815C5E4 + .align 2, 0 +_0815C4A8: .4byte 0x03005B60 +_0815C4AC: + cmp r6, #2 + beq _0815C564 + cmp r6, #3 + bne _0815C4B6 + b _0815C5D4 +_0815C4B6: + b _0815C5E4 +_0815C4B8: + ldr r2, _0815C508 + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r4, #0x12] + ldrh r2, [r0, #0x24] + adds r1, r1, r2 + strh r1, [r0, #0x24] + ldrh r0, [r4, #0xc] + ldrh r1, [r4, #0x10] + subs r0, r0, r1 + strh r0, [r4, #0xc] + ldrh r0, [r4, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0x80 + lsls r2, r2, #1 + ldrh r3, [r4, #0xc] + adds r1, r2, #0 + bl SetSpriteRotScale + ldrh r0, [r4, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl SetBattlerSpriteYOffsetFromRotation + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0xe + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _0815C5E4 + strh r6, [r4, #0xa] + b _0815C5CC + .align 2, 0 +_0815C508: .4byte 0x020205AC +_0815C50C: + ldr r2, _0815C560 + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x24] + ldrh r2, [r4, #0x12] + subs r1, r1, r2 + strh r1, [r0, #0x24] + ldrh r0, [r4, #0x10] + ldrh r1, [r4, #0xc] + adds r0, r0, r1 + strh r0, [r4, #0xc] + ldrh r0, [r4, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0x80 + lsls r2, r2, #1 + ldrh r3, [r4, #0xc] + adds r1, r2, #0 + bl SetSpriteRotScale + ldrh r0, [r4, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl SetBattlerSpriteYOffsetFromRotation + ldrh r1, [r4, #0xa] + adds r1, #1 + strh r1, [r4, #0xa] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r2, #0xe + ldrsh r0, [r4, r2] + lsls r0, r0, #1 + cmp r1, r0 + blt _0815C5E4 + movs r0, #0 + strh r0, [r4, #0xa] + b _0815C5CC + .align 2, 0 +_0815C560: .4byte 0x020205AC +_0815C564: + ldr r2, _0815C5C8 + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r4, #0x12] + ldrh r2, [r0, #0x24] + adds r1, r1, r2 + movs r5, #0 + strh r1, [r0, #0x24] + ldrh r0, [r4, #0xc] + ldrh r1, [r4, #0x10] + subs r0, r0, r1 + strh r0, [r4, #0xc] + ldrh r0, [r4, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0x80 + lsls r2, r2, #1 + ldrh r3, [r4, #0xc] + adds r1, r2, #0 + bl SetSpriteRotScale + ldrh r0, [r4, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl SetBattlerSpriteYOffsetFromRotation + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0xe + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _0815C5E4 + ldrh r1, [r4, #0x14] + movs r2, #0x14 + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _0815C5CC + subs r0, r1, #1 + strh r0, [r4, #0x14] + strh r5, [r4, #0xa] + strh r5, [r4, #8] + b _0815C5E4 + .align 2, 0 +_0815C5C8: .4byte 0x020205AC +_0815C5CC: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _0815C5E4 +_0815C5D4: + ldrh r0, [r4, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl ResetSpriteRotScale + adds r0, r5, #0 + bl DestroyAnimVisualTask +_0815C5E4: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AnimTask_RockMonBackAndForthStep + + thumb_func_start AnimSweetScentPetal +AnimSweetScentPetal: @ 0x0815C5EC + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0815C608 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0815C610 + strh r0, [r4, #0x20] + ldr r1, _0815C60C + ldrh r0, [r1] + b _0815C61A + .align 2, 0 +_0815C608: .4byte 0x020380D6 +_0815C60C: .4byte 0x020380BE +_0815C610: + movs r0, #0xf0 + strh r0, [r4, #0x20] + ldr r1, _0815C634 + ldrh r0, [r1] + subs r0, #0x1e +_0815C61A: + strh r0, [r4, #0x22] + ldrh r0, [r1, #4] + strh r0, [r4, #0x32] + ldrb r1, [r1, #2] + adds r0, r4, #0 + bl StartSpriteAnim + ldr r0, _0815C638 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815C634: .4byte 0x020380BE +_0815C638: .4byte 0x0815C63D + thumb_func_end AnimSweetScentPetal + + thumb_func_start AnimSweetScentPetalStep +AnimSweetScentPetalStep: @ 0x0815C63C + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + adds r0, #3 + strh r0, [r4, #0x2e] + ldr r0, _0815C67C + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0815C680 + ldrh r1, [r4, #0x20] + adds r1, #5 + strh r1, [r4, #0x20] + ldrh r0, [r4, #0x22] + subs r0, #1 + strh r0, [r4, #0x22] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #0xf0 + ble _0815C66E + adds r0, r4, #0 + bl DestroyAnimSprite +_0815C66E: + ldrh r1, [r4, #0x2e] + movs r0, #0xff + ands r0, r1 + movs r1, #0x10 + bl Sin + b _0815C6A4 + .align 2, 0 +_0815C67C: .4byte 0x020380D6 +_0815C680: + ldrh r1, [r4, #0x20] + subs r1, #5 + strh r1, [r4, #0x20] + ldrh r0, [r4, #0x22] + adds r0, #1 + strh r0, [r4, #0x22] + lsls r1, r1, #0x10 + cmp r1, #0 + bge _0815C698 + adds r0, r4, #0 + bl DestroyAnimSprite +_0815C698: + ldrh r1, [r4, #0x2e] + movs r0, #0xff + ands r0, r1 + movs r1, #0x10 + bl Cos +_0815C6A4: + strh r0, [r4, #0x26] + pop {r4} + pop {r0} + bx r0 + thumb_func_end AnimSweetScentPetalStep + + thumb_func_start AnimTask_FlailMovement +AnimTask_FlailMovement: @ 0x0815C6AC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _0815C6F4 + adds r4, r4, r0 + movs r0, #0 + strh r0, [r4, #8] + strh r0, [r4, #0xa] + strh r0, [r4, #0xc] + strh r0, [r4, #0xe] + movs r0, #0x20 + strh r0, [r4, #0x20] + movs r0, #0x40 + strh r0, [r4, #0x22] + movs r0, #0x80 + lsls r0, r0, #4 + strh r0, [r4, #0x24] + ldr r0, _0815C6F8 + ldrb r0, [r0] + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x26] + movs r1, #0 + bl PrepareBattlerSpriteForRotScale + ldr r0, _0815C6FC + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815C6F4: .4byte 0x03005B60 +_0815C6F8: .4byte 0x020380BE +_0815C6FC: .4byte 0x0815C701 + thumb_func_end AnimTask_FlailMovement + + thumb_func_start AnimTask_FlailMovementStep +AnimTask_FlailMovementStep: @ 0x0815C700 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _0815C72C + adds r7, r0, r1 + movs r1, #8 + ldrsh r0, [r7, r1] + mov r8, r0 + cmp r0, #1 + beq _0815C79C + cmp r0, #1 + bgt _0815C730 + cmp r0, #0 + beq _0815C738 + b _0815C816 + .align 2, 0 +_0815C72C: .4byte 0x03005B60 +_0815C730: + mov r2, r8 + cmp r2, #2 + beq _0815C804 + b _0815C816 +_0815C738: + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r7, #0xc] + adds r2, r0, r1 + strh r2, [r7, #0xc] + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + ldrh r3, [r7, #0x24] + mov r8, r3 + movs r3, #0x24 + ldrsh r1, [r7, r3] + cmp r0, r1 + blt _0815C816 + mov r0, r8 + subs r5, r0, r2 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + adds r6, r1, #0 + lsls r6, r6, #1 + adds r0, r5, #0 + adds r1, r6, #0 + bl __divsi3 + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + adds r1, r6, #0 + bl __modsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + movs r1, #1 + ands r4, r1 + cmp r4, #0 + bne _0815C790 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov r2, r8 + subs r0, r2, r0 + b _0815C7EE +_0815C790: + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov r3, r8 + subs r0, r0, r3 + strh r0, [r7, #0xc] + b _0815C816 +_0815C79C: + ldr r1, _0815C7F4 + adds r0, r1, #0 + ldrh r2, [r7, #0xc] + adds r1, r0, r2 + strh r1, [r7, #0xc] + movs r3, #0xc + ldrsh r0, [r7, r3] + movs r2, #0x24 + ldrsh r6, [r7, r2] + cmn r0, r6 + bgt _0815C816 + ldrh r3, [r7, #0x24] + mov sb, r3 + mov r0, sb + subs r4, r0, r1 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + lsls r6, r6, #1 + adds r0, r4, #0 + adds r1, r6, #0 + bl __divsi3 + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + adds r0, r4, #0 + adds r1, r6, #0 + bl __modsi3 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + mov r1, r8 + ands r1, r5 + lsls r0, r1, #0x10 + asrs r1, r0, #0x10 + cmp r1, #0 + bne _0815C7F8 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + mov r2, sb + subs r0, r0, r2 +_0815C7EE: + strh r0, [r7, #0xc] + strh r1, [r7, #8] + b _0815C816 + .align 2, 0 +_0815C7F4: .4byte 0xFFFFFE00 +_0815C7F8: + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + mov r3, sb + subs r0, r3, r0 + strh r0, [r7, #0xc] + b _0815C816 +_0815C804: + ldrh r0, [r7, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl ResetSpriteRotScale + adds r0, r4, #0 + bl DestroyAnimVisualTask + b _0815C88C +_0815C816: + ldrh r0, [r7, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0x80 + lsls r2, r2, #1 + ldrh r3, [r7, #0xc] + adds r1, r2, #0 + bl SetSpriteRotScale + ldrh r0, [r7, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl SetBattlerSpriteYOffsetFromRotation + ldr r2, _0815C884 + movs r0, #0x26 + ldrsh r1, [r7, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r2 + movs r2, #0xc + ldrsh r0, [r7, r2] + cmp r0, #0 + bge _0815C84A + adds r0, #0x3f +_0815C84A: + asrs r0, r0, #6 + rsbs r0, r0, #0 + strh r0, [r1, #0x24] + ldrh r0, [r7, #0xa] + adds r0, #1 + strh r0, [r7, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #8 + ble _0815C88C + ldrh r1, [r7, #0x20] + movs r3, #0x20 + ldrsh r0, [r7, r3] + cmp r0, #0 + beq _0815C888 + subs r0, r1, #1 + strh r0, [r7, #0x20] + ldrh r0, [r7, #0x24] + ldrh r1, [r7, #0x22] + subs r0, r0, r1 + strh r0, [r7, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xf + bgt _0815C88C + movs r0, #0x10 + strh r0, [r7, #0x24] + b _0815C88C + .align 2, 0 +_0815C884: .4byte 0x020205AC +_0815C888: + movs r0, #2 + strh r0, [r7, #8] +_0815C88C: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end AnimTask_FlailMovementStep + + thumb_func_start AnimPainSplitProjectile +AnimPainSplitProjectile: @ 0x0815C898 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _0815C8F8 + ldr r6, _0815C8F0 + movs r2, #4 + ldrsh r0, [r6, r2] + cmp r0, #0 + bne _0815C8CC + ldr r4, _0815C8F4 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] +_0815C8CC: + ldrh r0, [r6] + ldrh r1, [r5, #0x20] + adds r0, r0, r1 + strh r0, [r5, #0x20] + ldrh r1, [r6, #2] + ldrh r2, [r5, #0x22] + adds r0, r1, r2 + strh r0, [r5, #0x22] + movs r0, #0x80 + strh r0, [r5, #0x30] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r5, #0x32] + strh r1, [r5, #0x34] + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] + b _0815C956 + .align 2, 0 +_0815C8F0: .4byte 0x020380BE +_0815C8F4: .4byte 0x020380D6 +_0815C8F8: + ldrh r1, [r5, #0x30] + lsls r0, r1, #0x10 + asrs r0, r0, #0x18 + strh r0, [r5, #0x24] + ldrh r0, [r5, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + ldrh r2, [r5, #0x26] + adds r0, r0, r2 + strh r0, [r5, #0x26] + movs r2, #0x36 + ldrsh r0, [r5, r2] + adds r4, r1, #0 + cmp r0, #0 + bne _0815C936 + movs r0, #0x26 + ldrsh r1, [r5, r0] + movs r2, #0x34 + ldrsh r0, [r5, r2] + cmn r1, r0 + ble _0815C936 + movs r0, #1 + strh r0, [r5, #0x36] + movs r1, #0x32 + ldrsh r0, [r5, r1] + rsbs r0, r0, #0 + movs r1, #3 + bl __divsi3 + lsls r0, r0, #1 + strh r0, [r5, #0x32] +_0815C936: + adds r0, r4, #0 + adds r0, #0xc0 + strh r0, [r5, #0x30] + ldrh r0, [r5, #0x32] + adds r0, #0x80 + strh r0, [r5, #0x32] + adds r0, r5, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0815C956 + adds r0, r5, #0 + bl DestroyAnimSprite +_0815C956: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end AnimPainSplitProjectile + + thumb_func_start AnimTask_PainSplitMovement +AnimTask_PainSplitMovement: @ 0x0815C95C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r7, r0, #0 + ldr r1, _0815C98C + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r2, r0, r1 + movs r1, #8 + ldrsh r0, [r2, r1] + cmp r0, #0 + bne _0815CA68 + ldr r0, _0815C990 + movs r3, #0 + ldrsh r1, [r0, r3] + mov r8, r0 + cmp r1, #0 + bne _0815C998 + ldr r0, _0815C994 + b _0815C99A + .align 2, 0 +_0815C98C: .4byte 0x03005B60 +_0815C990: .4byte 0x020380BE +_0815C994: .4byte 0x020380D6 +_0815C998: + ldr r0, _0815C9D4 +_0815C99A: + ldrb r0, [r0] + strh r0, [r2, #0x1e] + mov r1, r8 + ldrb r0, [r1] + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _0815C9D8 + lsls r4, r7, #2 + adds r0, r4, r7 + lsls r0, r0, #3 + adds r6, r0, r1 + strh r5, [r6, #0x1c] + adds r0, r5, #0 + movs r1, #0 + bl PrepareBattlerSpriteForRotScale + mov r2, r8 + movs r3, #2 + ldrsh r0, [r2, r3] + cmp r0, #1 + beq _0815C9FC + cmp r0, #1 + bgt _0815C9DC + cmp r0, #0 + beq _0815C9E4 + lsls r2, r5, #4 + b _0815CA44 + .align 2, 0 +_0815C9D4: .4byte 0x020380D7 +_0815C9D8: .4byte 0x03005B60 +_0815C9DC: + cmp r0, #2 + beq _0815CA06 + lsls r2, r5, #4 + b _0815CA44 +_0815C9E4: + movs r2, #0xa0 + lsls r2, r2, #1 + adds r0, r5, #0 + movs r1, #0xe0 + movs r3, #0 + bl SetSpriteRotScale + adds r0, r5, #0 + bl SetBattlerSpriteYOffsetFromYScale + lsls r2, r5, #4 + b _0815CA44 +_0815C9FC: + movs r2, #0x98 + lsls r2, r2, #1 + movs r3, #0xf0 + lsls r3, r3, #4 + b _0815CA0E +_0815CA06: + movs r2, #0x98 + lsls r2, r2, #1 + movs r3, #0xf1 + lsls r3, r3, #8 +_0815CA0E: + adds r0, r5, #0 + movs r1, #0xd0 + bl SetSpriteRotScale + adds r0, r5, #0 + bl SetBattlerSpriteYOffsetFromYScale + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0815CA34 + ldrb r0, [r6, #0x1e] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsls r2, r5, #4 + cmp r0, #0 + bne _0815CA44 +_0815CA34: + ldr r0, _0815CA60 + lsls r2, r5, #4 + adds r1, r2, r5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r0, [r1, #0x26] + adds r0, #0x10 + strh r0, [r1, #0x26] +_0815CA44: + ldr r1, _0815CA60 + adds r0, r2, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + movs r1, #2 + strh r1, [r0, #0x24] + ldr r0, _0815CA64 + adds r1, r4, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _0815CAB4 + .align 2, 0 +_0815CA60: .4byte 0x020205AC +_0815CA64: .4byte 0x03005B60 +_0815CA68: + ldrb r5, [r2, #0x1c] + ldrh r0, [r2, #0xc] + adds r0, #1 + movs r4, #0 + strh r0, [r2, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + bne _0815CA8C + strh r4, [r2, #0xc] + ldr r0, _0815CAC0 + lsls r1, r5, #4 + adds r1, r1, r5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r0, [r1, #0x24] + rsbs r0, r0, #0 + strh r0, [r1, #0x24] +_0815CA8C: + ldrh r0, [r2, #0xa] + adds r0, #1 + strh r0, [r2, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xd + bne _0815CAB4 + adds r0, r5, #0 + bl ResetSpriteRotScale + ldr r1, _0815CAC0 + lsls r0, r5, #4 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + strh r4, [r0, #0x24] + strh r4, [r0, #0x26] + adds r0, r7, #0 + bl DestroyAnimVisualTask +_0815CAB4: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0815CAC0: .4byte 0x020205AC + thumb_func_end AnimTask_PainSplitMovement + + thumb_func_start AnimFlatterConfetti +AnimFlatterConfetti: @ 0x0815CAC4 + push {r4, r5, lr} + adds r4, r0, #0 + bl Random2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xc + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r2, [r4, #4] + lsls r1, r2, #0x16 + lsrs r1, r1, #0x16 + adds r1, r1, r0 + ldr r3, _0815CB10 + adds r0, r3, #0 + ands r1, r0 + ldr r0, _0815CB14 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, #4] + bl Random2 + ldr r5, _0815CB18 + ands r5, r0 + bl Random2 + movs r1, #0xff + ands r1, r0 + movs r0, #1 + ands r0, r5 + cmp r0, #0 + beq _0815CB1C + movs r2, #0xbc + lsls r2, r2, #3 + adds r0, r5, r2 + b _0815CB24 + .align 2, 0 +_0815CB10: .4byte 0x000003FF +_0815CB14: .4byte 0xFFFFFC00 +_0815CB18: .4byte 0x000001FF +_0815CB1C: + movs r3, #0xbc + lsls r3, r3, #3 + adds r0, r3, #0 + subs r0, r0, r5 +_0815CB24: + strh r0, [r4, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0815CB36 + movs r2, #0x90 + lsls r2, r2, #3 + adds r0, r1, r2 + b _0815CB3E +_0815CB36: + movs r3, #0x90 + lsls r3, r3, #3 + adds r0, r3, #0 + subs r0, r0, r1 +_0815CB3E: + strh r0, [r4, #0x30] + ldr r0, _0815CB50 + ldrh r0, [r0] + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0815CB58 + ldr r0, _0815CB54 + b _0815CB5A + .align 2, 0 +_0815CB50: .4byte 0x020380BE +_0815CB54: .4byte 0x0000FFF8 +_0815CB58: + movs r0, #0xf8 +_0815CB5A: + strh r0, [r4, #0x20] + movs r0, #0x68 + strh r0, [r4, #0x22] + ldr r0, _0815CB6C + str r0, [r4, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0815CB6C: .4byte 0x0815CB71 + thumb_func_end AnimFlatterConfetti + + thumb_func_start AnimFlatterConfettiStep +AnimFlatterConfettiStep: @ 0x0815CB70 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0815CB88 + ldrh r3, [r4, #0x2e] + lsls r0, r3, #0x10 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x24] + adds r0, r0, r1 + b _0815CB92 +_0815CB88: + ldrh r3, [r4, #0x2e] + lsls r1, r3, #0x10 + asrs r1, r1, #0x18 + ldrh r0, [r4, #0x24] + subs r0, r0, r1 +_0815CB92: + strh r0, [r4, #0x24] + ldrh r2, [r4, #0x30] + lsls r1, r2, #0x10 + asrs r1, r1, #0x18 + ldrh r0, [r4, #0x26] + subs r0, r0, r1 + strh r0, [r4, #0x26] + adds r0, r3, #0 + subs r0, #0x16 + strh r0, [r4, #0x2e] + adds r1, r2, #0 + subs r1, #0x30 + strh r1, [r4, #0x30] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _0815CBB6 + movs r0, #0 + strh r0, [r4, #0x2e] +_0815CBB6: + ldrh r0, [r4, #0x34] + adds r0, #1 + strh r0, [r4, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1f + bne _0815CBCA + adds r0, r4, #0 + bl DestroyAnimSprite +_0815CBCA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end AnimFlatterConfettiStep + + thumb_func_start AnimFlatterSpotlight +AnimFlatterSpotlight: @ 0x0815CBD0 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r1, _0815CC34 + movs r0, #0x4a + bl SetGpuReg + movs r1, #0x80 + lsls r1, r1, #8 + movs r0, #0 + bl SetGpuRegBits + ldr r0, _0815CC38 + movs r1, #0 + strh r1, [r0] + ldr r4, _0815CC3C + strh r1, [r4] + movs r0, #0x40 + movs r1, #0 + bl SetGpuReg + ldrh r1, [r4] + movs r0, #0x44 + bl SetGpuReg + ldr r0, _0815CC40 + ldrh r0, [r0, #4] + strh r0, [r5, #0x2e] + adds r0, r5, #0 + movs r1, #0 + bl InitSpritePosToAnimTarget + ldrb r1, [r5, #1] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r5, #1] + adds r2, r5, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _0815CC44 + str r0, [r5, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0815CC34: .4byte 0x00001F3F +_0815CC38: .4byte 0x02022AD8 +_0815CC3C: .4byte 0x02022ADA +_0815CC40: .4byte 0x020380BE +_0815CC44: .4byte 0x0815CC49 + thumb_func_end AnimFlatterSpotlight + + thumb_func_start AnimFlatterSpotlightStep +AnimFlatterSpotlightStep: @ 0x0815CC48 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x30 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _0815CC86 + cmp r0, #1 + bgt _0815CC5E + cmp r0, #0 + beq _0815CC68 + b _0815CCE6 +_0815CC5E: + cmp r0, #2 + beq _0815CC9C + cmp r0, #3 + beq _0815CCBE + b _0815CCE6 +_0815CC68: + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0815CCE6 + b _0815CCB6 +_0815CC86: + ldrh r0, [r4, #0x2e] + subs r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0815CCE6 + adds r0, r4, #0 + movs r1, #1 + bl ChangeSpriteAffineAnim + b _0815CCB6 +_0815CC9C: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0815CCE6 + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] +_0815CCB6: + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + b _0815CCE6 +_0815CCBE: + ldr r1, _0815CCEC + movs r0, #0x4a + bl SetGpuReg + movs r0, #0 + bl GetGpuReg + adds r1, r0, #0 + movs r2, #0x80 + lsls r2, r2, #8 + adds r0, r2, #0 + eors r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0 + bl SetGpuReg + adds r0, r4, #0 + bl DestroyAnimSprite +_0815CCE6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815CCEC: .4byte 0x00003F3F + thumb_func_end AnimFlatterSpotlightStep + + thumb_func_start AnimReversalOrb +AnimReversalOrb: @ 0x0815CCF0 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0815CD2C + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x20] + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x22] + ldr r1, _0815CD30 + ldrh r0, [r1] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #2] + strh r0, [r4, #0x30] + ldr r1, _0815CD34 + str r1, [r4, #0x1c] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0815CD2C: .4byte 0x020380D6 +_0815CD30: .4byte 0x020380BE +_0815CD34: .4byte 0x0815CD39 + thumb_func_end AnimReversalOrb + + thumb_func_start AnimReversalOrbStep +AnimReversalOrbStep: @ 0x0815CD38 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x30 + ldrsh r0, [r4, r1] + ldrh r1, [r4, #0x32] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + bl Sin + strh r0, [r4, #0x24] + movs r2, #0x30 + ldrsh r0, [r4, r2] + ldrh r1, [r4, #0x34] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + bl Cos + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x30] + adds r0, #9 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x30] + lsls r1, r0, #0x10 + cmp r0, #0x3f + bls _0815CD72 + asrs r0, r1, #0x10 + cmp r0, #0xc3 + ble _0815CD84 +_0815CD72: + ldr r0, _0815CD80 + ldrb r0, [r0] + bl GetBattlerSpriteSubpriority + subs r0, #1 + b _0815CD8E + .align 2, 0 +_0815CD80: .4byte 0x020380D6 +_0815CD84: + ldr r0, _0815CDD0 + ldrb r0, [r0] + bl GetBattlerSpriteSubpriority + adds r0, #1 +_0815CD8E: + adds r1, r4, #0 + adds r1, #0x43 + strb r0, [r1] + movs r3, #0x38 + ldrsh r2, [r4, r3] + cmp r2, #0 + bne _0815CDD4 + movs r1, #0x80 + lsls r1, r1, #3 + adds r0, r1, #0 + ldrh r3, [r4, #0x32] + adds r0, r0, r3 + strh r0, [r4, #0x32] + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r3, [r4, #0x34] + adds r0, r0, r3 + strh r0, [r4, #0x34] + ldrh r0, [r4, #0x36] + adds r0, #1 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r3, #0x2e + ldrsh r1, [r4, r3] + cmp r0, r1 + bne _0815CE04 + strh r2, [r4, #0x36] + movs r0, #1 + strh r0, [r4, #0x38] + b _0815CE04 + .align 2, 0 +_0815CDD0: .4byte 0x020380D6 +_0815CDD4: + cmp r2, #1 + bne _0815CE04 + ldr r1, _0815CE0C + adds r0, r1, #0 + ldrh r2, [r4, #0x32] + adds r0, r0, r2 + strh r0, [r4, #0x32] + ldr r3, _0815CE10 + adds r0, r3, #0 + ldrh r1, [r4, #0x34] + adds r0, r0, r1 + strh r0, [r4, #0x34] + ldrh r0, [r4, #0x36] + adds r0, #1 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x2e + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _0815CE04 + adds r0, r4, #0 + bl DestroyAnimSprite +_0815CE04: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815CE0C: .4byte 0xFFFFFC00 +_0815CE10: .4byte 0xFFFFFF00 + thumb_func_end AnimReversalOrbStep + + thumb_func_start AnimTask_RolePlaySilhouette +AnimTask_RolePlaySilhouette: @ 0x0815CE14 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x18] + movs r0, #0 + bl GetAnimBattlerSpriteId + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0815CE54 + movs r0, #1 + str r0, [sp, #0x1c] + ldr r0, _0815CE50 + ldr r0, [r0] + ldr r0, [r0, #0x18] + ldr r1, [r0, #0x10] + mov sb, r1 + ldr r2, [r0, #0xc] + mov r8, r2 + ldrh r6, [r0, #2] + movs r3, #0x14 + b _0815CF94 + .align 2, 0 +_0815CE50: .4byte 0x02039BD4 +_0815CE54: + ldr r0, _0815CEC4 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0815CF00 + movs r0, #0 + str r0, [sp, #0x1c] + ldr r6, _0815CEC8 + ldr r4, _0815CECC + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r0, [r0] + movs r5, #0x64 + muls r0, r5, r0 + ldr r7, _0815CED0 + adds r0, r0, r7 + movs r1, #0 + bl GetMonData + mov sb, r0 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r0, [r0] + muls r0, r5, r0 + adds r0, r0, r7 + movs r1, #1 + bl GetMonData + mov r8, r0 + ldr r0, _0815CED4 + ldr r0, [r0] + ldrb r2, [r4] + ldr r1, [r0] + lsls r0, r2, #2 + adds r1, r0, r1 + ldrh r0, [r1, #2] + cmp r0, #0 + bne _0815CEF8 + adds r0, r2, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0815CED8 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r0, [r0] + muls r0, r5, r0 + adds r0, r0, r7 + b _0815CEE6 + .align 2, 0 +_0815CEC4: .4byte 0x020380D6 +_0815CEC8: .4byte 0x02023D12 +_0815CECC: .4byte 0x020380D7 +_0815CED0: .4byte 0x02024190 +_0815CED4: .4byte 0x02024174 +_0815CED8: + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r0, [r0] + muls r0, r5, r0 + ldr r1, _0815CEF4 + adds r0, r0, r1 +_0815CEE6: + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + b _0815CEFA + .align 2, 0 +_0815CEF4: .4byte 0x020243E8 +_0815CEF8: + ldrh r6, [r1, #2] +_0815CEFA: + movs r1, #0x14 + mov sl, r1 + b _0815CF96 +_0815CF00: + movs r2, #1 + str r2, [sp, #0x1c] + ldr r6, _0815CF64 + ldr r4, _0815CF68 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r0, [r0] + movs r5, #0x64 + muls r0, r5, r0 + ldr r7, _0815CF6C + adds r0, r0, r7 + movs r1, #0 + bl GetMonData + mov sb, r0 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r0, [r0] + muls r0, r5, r0 + adds r0, r0, r7 + movs r1, #1 + bl GetMonData + mov r8, r0 + ldr r0, _0815CF70 + ldr r0, [r0] + ldrb r2, [r4] + ldr r1, [r0] + lsls r0, r2, #2 + adds r1, r0, r1 + ldrh r0, [r1, #2] + cmp r0, #0 + bne _0815CF90 + adds r0, r2, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0815CF78 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r0, [r0] + muls r0, r5, r0 + ldr r1, _0815CF74 + adds r0, r0, r1 + b _0815CF84 + .align 2, 0 +_0815CF64: .4byte 0x02023D12 +_0815CF68: .4byte 0x020380D7 +_0815CF6C: .4byte 0x020243E8 +_0815CF70: .4byte 0x02024174 +_0815CF74: .4byte 0x02024190 +_0815CF78: + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r0, [r0] + muls r0, r5, r0 + adds r0, r0, r7 +_0815CF84: + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + b _0815CF92 +_0815CF90: + ldrh r6, [r1, #2] +_0815CF92: + ldr r3, _0815D080 +_0815CF94: + mov sl, r3 +_0815CF96: + ldr r0, _0815D084 + ldrb r0, [r0] + bl GetBattlerSpriteBGPriority + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r5, _0815D084 + ldrb r0, [r5] + movs r1, #0 + bl GetBattlerSpriteCoord + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldrb r0, [r5] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + mov r2, sl + lsls r1, r2, #0x10 + asrs r1, r1, #0x10 + adds r4, r4, r1 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + lsrs r0, r0, #0x18 + str r0, [sp] + movs r0, #5 + str r0, [sp, #4] + mov r3, sb + str r3, [sp, #8] + mov r0, r8 + str r0, [sp, #0xc] + ldr r0, _0815D088 + ldrb r0, [r0] + str r0, [sp, #0x10] + movs r0, #1 + str r0, [sp, #0x14] + adds r0, r6, #0 + ldr r1, [sp, #0x1c] + movs r2, #0 + adds r3, r4, #0 + bl sub_080A7C5C + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + ldr r0, _0815D08C + lsls r5, r6, #4 + adds r5, r5, r6 + lsls r5, r5, #2 + adds r5, r5, r0 + movs r0, #3 + ands r7, r0 + lsls r7, r7, #2 + mov r8, r7 + ldrb r0, [r5, #5] + movs r4, #0xd + rsbs r4, r4, #0 + adds r1, r4, #0 + ands r1, r0 + mov r2, r8 + orrs r1, r2 + strb r1, [r5, #5] + ldrb r2, [r5, #1] + adds r0, r4, #0 + ands r0, r2 + movs r2, #4 + orrs r0, r2 + strb r0, [r5, #1] + ldr r0, _0815D090 + lsrs r1, r1, #4 + lsls r1, r1, #4 + movs r3, #0x80 + lsls r3, r3, #1 + adds r2, r3, #0 + orrs r1, r2 + movs r2, #0x20 + bl FillPalette + ldrb r0, [r5, #5] + ands r4, r0 + mov r0, r8 + orrs r4, r0 + strb r4, [r5, #5] + movs r1, #0xfd + lsls r1, r1, #6 + movs r0, #0x50 + bl SetGpuReg + ldr r0, _0815D094 + ldr r1, [sp, #0x18] + lsls r4, r1, #2 + adds r4, r4, r1 + lsls r4, r4, #3 + adds r4, r4, r0 + ldrh r0, [r4, #0xa] + movs r1, #0x10 + subs r1, r1, r0 + lsls r1, r1, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + strh r6, [r4, #8] + ldr r0, _0815D098 + str r0, [r4] + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0815D080: .4byte 0x0000FFEC +_0815D084: .4byte 0x020380D6 +_0815D088: .4byte 0x020380D7 +_0815D08C: .4byte 0x020205AC +_0815D090: .4byte 0x00007FFF +_0815D094: .4byte 0x03005B60 +_0815D098: .4byte 0x0815D09D + thumb_func_end AnimTask_RolePlaySilhouette + + thumb_func_start AnimTask_RolePlaySilhouetteStep1 +AnimTask_RolePlaySilhouetteStep1: @ 0x0815D09C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0815D0F0 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 + ldrh r0, [r4, #0x1c] + adds r1, r0, #1 + strh r1, [r4, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _0815D0EA + movs r0, #0 + strh r0, [r4, #0x1c] + ldrh r1, [r4, #0xa] + adds r1, #1 + strh r1, [r4, #0xa] + movs r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0xa + bne _0815D0EA + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x1c] + strh r0, [r4, #0x1e] + ldr r0, _0815D0F4 + str r0, [r4] +_0815D0EA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815D0F0: .4byte 0x03005B60 +_0815D0F4: .4byte 0x0815D0F9 + thumb_func_end AnimTask_RolePlaySilhouetteStep1 + + thumb_func_start AnimTask_RolePlaySilhouetteStep2 +AnimTask_RolePlaySilhouetteStep2: @ 0x0815D0F8 + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0815D170 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r5, r1, r2 + ldrb r2, [r5, #8] + ldrh r0, [r5, #0x1c] + subs r0, #0x10 + movs r4, #0 + strh r0, [r5, #0x1c] + ldrh r0, [r5, #0x1e] + adds r0, #0x80 + strh r0, [r5, #0x1e] + ldr r1, _0815D174 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r6, r0, r1 + ldrb r2, [r6, #1] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #2 + orrs r1, r0 + subs r0, #6 + ands r0, r2 + orrs r0, r1 + strb r0, [r6, #1] + movs r0, #0x1c + ldrsh r2, [r5, r0] + movs r0, #0x1e + ldrsh r3, [r5, r0] + str r4, [sp] + adds r0, r6, #0 + movs r1, #1 + bl TrySetSpriteRotScale + ldrh r0, [r5, #0x20] + adds r0, #1 + strh r0, [r5, #0x20] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #9 + bne _0815D166 + adds r0, r6, #0 + bl sub_080A6D64 + adds r0, r6, #0 + bl DestroySpriteAndFreeResources_ + ldr r0, _0815D178 + str r0, [r5] +_0815D166: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0815D170: .4byte 0x03005B60 +_0815D174: .4byte 0x020205AC +_0815D178: .4byte 0x080A60DD + thumb_func_end AnimTask_RolePlaySilhouetteStep2 + + thumb_func_start AnimTask_AcidArmor +AnimTask_AcidArmor: @ 0x0815D17C + push {r4, r5, r6, r7, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _0815D19C + adds r4, r1, r0 + ldr r0, _0815D1A0 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _0815D1A8 + ldr r0, _0815D1A4 + b _0815D1AA + .align 2, 0 +_0815D19C: .4byte 0x03005B60 +_0815D1A0: .4byte 0x020380BE +_0815D1A4: .4byte 0x020380D6 +_0815D1A8: + ldr r0, _0815D228 +_0815D1AA: + ldrb r5, [r0] + movs r6, #0 + strh r6, [r4, #8] + strh r6, [r4, #0xa] + strh r6, [r4, #0xc] + movs r0, #0x10 + strh r0, [r4, #0xe] + strh r6, [r4, #0x10] + strh r5, [r4, #0x12] + movs r0, #0x20 + strh r0, [r4, #0x14] + strh r6, [r4, #0x16] + movs r0, #0x18 + strh r0, [r4, #0x18] + adds r0, r5, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0815D1DC + movs r1, #0x18 + ldrsh r0, [r4, r1] + rsbs r0, r0, #0 + strh r0, [r4, #0x18] +_0815D1DC: + adds r0, r5, #0 + bl GetBattlerYCoordWithElevation + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, #0x22 + strh r0, [r4, #0x22] + cmp r0, #0 + bge _0815D1F0 + strh r6, [r4, #0x22] +_0815D1F0: + ldrh r0, [r4, #0x22] + adds r0, #0x42 + strh r0, [r4, #0x24] + ldr r0, _0815D22C + ldrb r0, [r0] + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x26] + adds r0, r5, #0 + bl GetBattlerSpriteBGPriorityRank + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0815D240 + ldr r0, _0815D230 + str r0, [sp] + ldr r1, _0815D234 + movs r0, #0x50 + bl SetGpuReg + ldr r0, _0815D238 + ldrh r5, [r0] + ldr r0, _0815D23C + b _0815D252 + .align 2, 0 +_0815D228: .4byte 0x020380D7 +_0815D22C: .4byte 0x020380BE +_0815D230: .4byte 0x04000014 +_0815D234: .4byte 0x00003F42 +_0815D238: .4byte 0x02022ACC +_0815D23C: .4byte 0x02022ACE +_0815D240: + ldr r0, _0815D2B8 + str r0, [sp] + ldr r1, _0815D2BC + movs r0, #0x50 + bl SetGpuReg + ldr r0, _0815D2C0 + ldrh r5, [r0] + ldr r0, _0815D2C4 +_0815D252: + ldrh r3, [r0] + movs r7, #0 + movs r2, #0 + ldr r6, _0815D2C8 + movs r0, #0xf0 + lsls r0, r0, #3 + adds r0, r0, r6 + mov ip, r0 +_0815D262: + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + lsls r1, r2, #1 + adds r0, r1, r6 + strh r5, [r0] + add r1, ip + strh r5, [r1] + adds r0, r2, #1 + lsls r0, r0, #1 + adds r1, r0, r6 + strh r3, [r1] + add r0, ip + strh r3, [r0] + lsls r0, r7, #0x10 + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r0, r1 + adds r2, #2 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + lsrs r7, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x9f + ble _0815D262 + ldr r0, _0815D2CC + str r0, [sp, #4] + mov r1, sp + movs r2, #0 + movs r0, #1 + strb r0, [r1, #8] + mov r0, sp + strb r2, [r0, #9] + ldr r0, [sp] + ldr r1, [sp, #4] + ldr r2, [sp, #8] + bl ScanlineEffect_SetParams + ldr r0, _0815D2D0 + str r0, [r4] + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0815D2B8: .4byte 0x04000018 +_0815D2BC: .4byte 0x00003F44 +_0815D2C0: .4byte 0x02022AD0 +_0815D2C4: .4byte 0x02022AD2 +_0815D2C8: .4byte 0x020388C8 +_0815D2CC: .4byte 0xA6600001 +_0815D2D0: .4byte 0x0815D2D5 + thumb_func_end AnimTask_AcidArmor + + thumb_func_start AnimTask_AcidArmorStep +AnimTask_AcidArmorStep: @ 0x0815D2D4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _0815D308 + adds r6, r0, r1 + ldrb r0, [r6, #0x12] + bl GetBattlerSpriteBGPriorityRank + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0815D314 + ldr r0, _0815D30C + ldrh r0, [r0] + str r0, [sp, #4] + ldr r0, _0815D310 + b _0815D31C + .align 2, 0 +_0815D308: .4byte 0x03005B60 +_0815D30C: .4byte 0x02022ACC +_0815D310: .4byte 0x02022ACE +_0815D314: + ldr r0, _0815D334 + ldrh r0, [r0] + str r0, [sp, #4] + ldr r0, _0815D338 +_0815D31C: + ldrh r0, [r0] + str r0, [sp, #8] + movs r1, #8 + ldrsh r0, [r6, r1] + cmp r0, #1 + bne _0815D32A + b _0815D508 +_0815D32A: + cmp r0, #1 + bgt _0815D33C + cmp r0, #0 + beq _0815D34A + b _0815D578 + .align 2, 0 +_0815D334: .4byte 0x02022AD0 +_0815D338: .4byte 0x02022AD2 +_0815D33C: + cmp r0, #2 + bne _0815D342 + b _0815D528 +_0815D342: + cmp r0, #3 + bne _0815D348 + b _0815D572 +_0815D348: + b _0815D578 +_0815D34A: + movs r2, #0x24 + ldrsh r0, [r6, r2] + lsls r0, r0, #0x11 + lsrs r5, r0, #0x10 + movs r3, #0 + str r3, [sp] + mov sb, r3 + movs r4, #0 + ldrh r0, [r6, #0xa] + adds r0, #2 + movs r1, #0xff + ands r0, r1 + strh r0, [r6, #0xa] + ldrh r7, [r6, #0xa] + mov r8, r7 + movs r0, #0x14 + ldrsh r1, [r6, r0] + movs r0, #0xfc + lsls r0, r0, #3 + bl __divsi3 + strh r0, [r6, #0x1a] + movs r1, #0x16 + ldrsh r0, [r6, r1] + lsls r0, r0, #1 + movs r2, #0x1a + ldrsh r1, [r6, r2] + bl __divsi3 + rsbs r0, r0, #0 + strh r0, [r6, #0x1c] + ldrh r0, [r6, #0x16] + strh r0, [r6, #0x1e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x15 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + strh r7, [r6, #0x20] + ldrh r2, [r6, #0x24] + lsls r3, r2, #0x10 + mov ip, r3 + asrs r1, r3, #0x10 + movs r3, #0x22 + ldrsh r0, [r6, r3] + cmp r1, r0 + ble _0815D46A + ldr r0, _0815D4C0 + mov sl, r0 + ldr r1, [sp, #4] + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + str r0, [sp, #0x10] + ldr r2, [sp, #8] + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + str r0, [sp, #0xc] +_0815D3BA: + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + adds r2, r5, #1 + lsls r2, r2, #1 + mov r3, sl + ldrb r1, [r3, #0x14] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #7 + adds r2, r2, r0 + ldr r0, _0815D4C4 + adds r2, r2, r0 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + mov r1, sb + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + subs r0, r4, r0 + ldr r3, [sp, #0xc] + adds r0, r3, r0 + strh r0, [r2] + lsls r3, r5, #1 + mov r0, sl + ldrb r1, [r0, #0x14] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #7 + adds r3, r3, r0 + ldr r1, _0815D4C4 + adds r3, r3, r1 + lsls r1, r7, #0x10 + asrs r1, r1, #0x10 + ldr r2, [sp, #0x10] + adds r1, r2, r1 + mov r7, r8 + lsls r2, r7, #0x10 + asrs r2, r2, #0x10 + lsls r0, r2, #1 + ldr r7, _0815D4C8 + adds r0, r0, r7 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x15 + adds r1, r1, r0 + strh r1, [r3] + adds r2, #0xa + mov r8, r2 + movs r0, #0xff + mov r1, r8 + ands r1, r0 + mov r8, r1 + ldrh r0, [r6, #0x1c] + ldrh r2, [r6, #0x1e] + adds r0, r0, r2 + strh r0, [r6, #0x1e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x15 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + strh r7, [r6, #0x20] + adds r4, #1 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + subs r5, #2 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + ldr r3, [sp] + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + ldrh r1, [r6, #0x14] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + str r2, [sp] + asrs r0, r0, #0x15 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + ldr r0, _0815D4CC + add r0, ip + lsrs r2, r0, #0x10 + lsls r3, r2, #0x10 + mov ip, r3 + asrs r1, r3, #0x10 + movs r3, #0x22 + ldrsh r0, [r6, r3] + cmp r1, r0 + bgt _0815D3BA +_0815D46A: + lsls r1, r2, #0x11 + cmp r1, #0 + blt _0815D496 + ldr r4, _0815D4C4 + ldr r7, [sp, #4] + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + adds r3, r0, #0 + adds r3, #0xf0 + movs r0, #0xf0 + lsls r0, r0, #3 + adds r5, r4, r0 +_0815D482: + asrs r2, r1, #0x10 + lsls r1, r2, #1 + adds r0, r1, r4 + strh r3, [r0] + adds r1, r1, r5 + strh r3, [r1] + subs r2, #2 + lsls r1, r2, #0x10 + cmp r1, #0 + bge _0815D482 +_0815D496: + ldrh r0, [r6, #0x14] + adds r0, #1 + strh r0, [r6, #0x14] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x3f + ble _0815D4FE + movs r0, #0x40 + strh r0, [r6, #0x14] + ldrh r0, [r6, #0xc] + adds r0, #1 + strh r0, [r6, #0xc] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0815D4D0 + ldrh r0, [r6, #0xe] + subs r0, #1 + strh r0, [r6, #0xe] + b _0815D4D6 + .align 2, 0 +_0815D4C0: .4byte 0x020397C8 +_0815D4C4: .4byte 0x020388C8 +_0815D4C8: .4byte 0x082FA8CC +_0815D4CC: .4byte 0xFFFF0000 +_0815D4D0: + ldrh r0, [r6, #0x10] + adds r0, #1 + strh r0, [r6, #0x10] +_0815D4D6: + ldrh r1, [r6, #0x10] + lsls r1, r1, #8 + ldrh r0, [r6, #0xe] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r2, #0xe + ldrsh r1, [r6, r2] + cmp r1, #0 + bne _0815D578 + movs r3, #0x10 + ldrsh r0, [r6, r3] + cmp r0, #0x10 + bne _0815D578 + strh r1, [r6, #0xc] + strh r1, [r6, #0xe] + b _0815D56A +_0815D4FE: + ldrh r0, [r6, #0x18] + ldrh r7, [r6, #0x16] + adds r0, r0, r7 + strh r0, [r6, #0x16] + b _0815D578 +_0815D508: + ldrh r0, [r6, #0xc] + adds r0, #1 + strh r0, [r6, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xc + ble _0815D578 + ldr r1, _0815D524 + movs r0, #3 + strb r0, [r1, #0x15] + movs r0, #0 + strh r0, [r6, #0xc] + b _0815D56A + .align 2, 0 +_0815D524: .4byte 0x020397C8 +_0815D528: + ldrh r0, [r6, #0xc] + adds r0, #1 + strh r0, [r6, #0xc] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0815D53E + ldrh r0, [r6, #0xe] + adds r0, #1 + strh r0, [r6, #0xe] + b _0815D544 +_0815D53E: + ldrh r0, [r6, #0x10] + subs r0, #1 + strh r0, [r6, #0x10] +_0815D544: + ldrh r1, [r6, #0x10] + lsls r1, r1, #8 + ldrh r0, [r6, #0xe] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r1, #0xe + ldrsh r0, [r6, r1] + cmp r0, #0x10 + bne _0815D578 + movs r2, #0x10 + ldrsh r0, [r6, r2] + cmp r0, #0 + bne _0815D578 + strh r0, [r6, #0xc] + strh r0, [r6, #0xe] +_0815D56A: + ldrh r0, [r6, #8] + adds r0, #1 + strh r0, [r6, #8] + b _0815D578 +_0815D572: + adds r0, r4, #0 + bl DestroyAnimVisualTask +_0815D578: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end AnimTask_AcidArmorStep + + thumb_func_start AnimTask_DeepInhale +AnimTask_DeepInhale: @ 0x0815D588 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _0815D5C0 + adds r4, r4, r0 + movs r0, #0 + strh r0, [r4, #8] + ldr r0, _0815D5C4 + ldrb r0, [r0] + bl GetAnimBattlerSpriteId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + strh r1, [r4, #0x26] + ldr r2, _0815D5C8 + adds r0, r4, #0 + bl PrepareAffineAnimInTaskData + ldr r0, _0815D5CC + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815D5C0: .4byte 0x03005B60 +_0815D5C4: .4byte 0x020380BE +_0815D5C8: .4byte 0x085AD3F8 +_0815D5CC: .4byte 0x0815D5D1 + thumb_func_end AnimTask_DeepInhale + + thumb_func_start AnimTask_DeepInhaleStep +AnimTask_DeepInhaleStep: @ 0x0815D5D0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r2, _0815D628 + adds r3, r0, r2 + ldrh r0, [r3, #8] + adds r1, r0, #1 + movs r5, #0 + strh r1, [r3, #8] + subs r0, #0x14 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r6, r2, #0 + cmp r0, #0x16 + bhi _0815D634 + ldrh r0, [r3, #0xa] + adds r0, #1 + strh r0, [r3, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _0815D644 + strh r5, [r3, #0xa] + ldrh r0, [r3, #0xc] + adds r0, #1 + strh r0, [r3, #0xc] + movs r5, #1 + ands r0, r5 + cmp r0, #0 + bne _0815D634 + ldr r2, _0815D62C + movs r0, #0x26 + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, _0815D630 + strh r1, [r0, #0x24] + b _0815D644 + .align 2, 0 +_0815D628: .4byte 0x03005B60 +_0815D62C: .4byte 0x020205AC +_0815D630: .4byte 0x0000FFFF +_0815D634: + ldr r2, _0815D664 + movs r0, #0x26 + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r5, [r0, #0x24] +_0815D644: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r6 + bl RunAffineAnimFromTaskData + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0815D65C + adds r0, r4, #0 + bl DestroyAnimVisualTask +_0815D65C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0815D664: .4byte 0x020205AC + thumb_func_end AnimTask_DeepInhaleStep + + thumb_func_start InitYawnCloudPosition +InitYawnCloudPosition: @ 0x0815D668 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + mov r8, r0 + adds r5, r2, #0 + adds r0, r3, #0 + ldr r4, [sp, #0x14] + ldr r6, [sp, #0x18] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + mov r2, r8 + strh r1, [r2, #0x20] + strh r5, [r2, #0x22] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + lsls r2, r1, #4 + mov r3, r8 + strh r2, [r3, #0x36] + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + lsls r2, r5, #4 + strh r2, [r3, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #4 + adds r1, r6, #0 + bl __divsi3 + mov r1, r8 + strh r0, [r1, #0x3a] + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + subs r4, r4, r5 + lsls r4, r4, #4 + adds r0, r4, #0 + adds r1, r6, #0 + bl __divsi3 + mov r2, r8 + strh r0, [r2, #0x3c] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end InitYawnCloudPosition + + thumb_func_start UpdateYawnCloudPosition +UpdateYawnCloudPosition: @ 0x0815D6D0 + ldrh r1, [r0, #0x3a] + ldrh r2, [r0, #0x36] + adds r1, r1, r2 + strh r1, [r0, #0x36] + ldrh r2, [r0, #0x3c] + ldrh r3, [r0, #0x38] + adds r2, r2, r3 + strh r2, [r0, #0x38] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + strh r1, [r0, #0x20] + lsls r2, r2, #0x10 + asrs r2, r2, #0x14 + strh r2, [r0, #0x22] + bx lr + .align 2, 0 + thumb_func_end UpdateYawnCloudPosition + + thumb_func_start AnimYawnCloud +AnimYawnCloud: @ 0x0815D6F0 + push {r4, r5, r6, lr} + sub sp, #8 + adds r4, r0, #0 + ldrh r6, [r4, #0x20] + ldrh r5, [r4, #0x22] + bl SetSpriteCoordsToAnimAttackerCoords + ldr r0, _0815D738 + ldrb r1, [r0] + adds r0, r4, #0 + bl StartSpriteAffineAnim + movs r0, #0x20 + ldrsh r1, [r4, r0] + movs r0, #0x22 + ldrsh r2, [r4, r0] + lsls r6, r6, #0x10 + asrs r6, r6, #0x10 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + str r5, [sp] + movs r0, #0x40 + str r0, [sp, #4] + adds r0, r4, #0 + adds r3, r6, #0 + bl InitYawnCloudPosition + movs r0, #0 + strh r0, [r4, #0x2e] + ldr r0, _0815D73C + str r0, [r4, #0x1c] + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0815D738: .4byte 0x020380BE +_0815D73C: .4byte 0x0815D741 + thumb_func_end AnimYawnCloud + + thumb_func_start AnimYawnCloudStep +AnimYawnCloudStep: @ 0x0815D740 + push {r4, r5, lr} + adds r5, r0, #0 + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] + movs r0, #0x2e + ldrsh r4, [r5, r0] + lsls r4, r4, #3 + movs r0, #0xff + ands r4, r0 + adds r0, r5, #0 + bl UpdateYawnCloudPosition + adds r0, r4, #0 + movs r1, #8 + bl Sin + strh r0, [r5, #0x26] + movs r1, #0x2e + ldrsh r0, [r5, r1] + cmp r0, #0x3a + ble _0815D7A6 + ldrh r0, [r5, #0x30] + adds r0, #1 + strh r0, [r5, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _0815D7A6 + movs r0, #0 + strh r0, [r5, #0x30] + ldrh r1, [r5, #0x32] + adds r1, #1 + strh r1, [r5, #0x32] + movs r0, #1 + ands r1, r0 + adds r3, r5, #0 + adds r3, #0x3e + lsls r1, r1, #2 + ldrb r2, [r3] + subs r0, #6 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + movs r1, #0x32 + ldrsh r0, [r5, r1] + cmp r0, #3 + ble _0815D7A6 + adds r0, r5, #0 + bl DestroySpriteAndMatrix +_0815D7A6: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end AnimYawnCloudStep + + thumb_func_start AnimSmokeBallEscapeCloud +AnimSmokeBallEscapeCloud: @ 0x0815D7AC + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, _0815D804 + ldrh r0, [r6, #6] + strh r0, [r5, #0x2e] + ldrb r1, [r6] + adds r0, r5, #0 + bl StartSpriteAffineAnim + ldr r0, _0815D808 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0815D7D2 + ldrh r0, [r6, #2] + rsbs r0, r0, #0 + strh r0, [r6, #2] +_0815D7D2: + ldr r4, _0815D80C + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r6, #2] + adds r0, r0, r1 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r6, [r6, #4] + adds r0, r0, r6 + strh r0, [r5, #0x22] + ldr r0, _0815D810 + str r0, [r5, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0815D804: .4byte 0x020380BE +_0815D808: .4byte 0x020380D7 +_0815D80C: .4byte 0x020380D6 +_0815D810: .4byte 0x0810EB19 + thumb_func_end AnimSmokeBallEscapeCloud + + thumb_func_start sub_0815D814 +sub_0815D814: @ 0x0815D814 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r7, #0 + ldr r2, _0815D864 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r3, r0, r2 + ldrh r0, [r3, #8] + subs r0, #1 + strh r0, [r3, #8] + movs r1, #0x14 + ldrsh r0, [r3, r1] + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + mov r8, r2 + cmp r0, #0 + beq _0815D896 + ldrh r0, [r3, #0xa] + subs r0, #1 + strh r0, [r3, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0815D896 + movs r2, #0x1a + ldrsh r0, [r3, r2] + cmp r0, #0 + bne _0815D868 + ldrh r0, [r3, #0x10] + strh r0, [r3, #0x1a] + rsbs r0, r0, #0 + strh r0, [r3, #0x10] + b _0815D86A + .align 2, 0 +_0815D864: .4byte 0x03005B60 +_0815D868: + strh r7, [r3, #0x1a] +_0815D86A: + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + mov r2, r8 + adds r1, r0, r2 + movs r2, #0x1c + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _0815D886 + ldrh r0, [r1, #0x12] + strh r0, [r1, #0x1c] + rsbs r0, r0, #0 + strh r0, [r1, #0x12] + b _0815D88A +_0815D886: + movs r0, #0 + strh r0, [r1, #0x1c] +_0815D88A: + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + add r0, r8 + ldrh r1, [r0, #0x22] + strh r1, [r0, #0xa] +_0815D896: + lsls r2, r5, #2 + adds r0, r2, r5 + lsls r0, r0, #3 + mov r1, r8 + adds r4, r0, r1 + ldrh r6, [r4, #0x16] + ldrh r7, [r4, #0x18] + movs r1, #0xc + ldrsh r0, [r4, r1] + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + mov ip, r2 + cmp r0, #0 + beq _0815D8D4 + ldr r3, _0815D8D0 + movs r2, #0x26 + ldrsh r0, [r4, r2] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + lsrs r2, r6, #8 + ldrh r0, [r4, #0x1a] + subs r0, r0, r2 + strh r0, [r1, #0x24] + adds r2, r3, #0 + b _0815D8EA + .align 2, 0 +_0815D8D0: .4byte 0x020205AC +_0815D8D4: + ldr r2, _0815D918 + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + lsrs r1, r6, #8 + ldrh r4, [r4, #0x1a] + adds r1, r1, r4 + strh r1, [r0, #0x24] +_0815D8EA: + mov r1, ip + adds r0, r1, r5 + lsls r0, r0, #3 + mov r1, r8 + adds r4, r0, r1 + movs r1, #0xe + ldrsh r0, [r4, r1] + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + beq _0815D91C + movs r1, #0x26 + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + lsrs r2, r7, #8 + ldrh r0, [r4, #0x1c] + subs r0, r0, r2 + b _0815D92E + .align 2, 0 +_0815D918: .4byte 0x020205AC +_0815D91C: + movs r1, #0x26 + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + lsrs r0, r7, #8 + ldrh r4, [r4, #0x1c] + adds r0, r0, r4 +_0815D92E: + strh r0, [r1, #0x26] + mov r2, ip + adds r0, r2, r5 + lsls r0, r0, #3 + add r0, r8 + movs r1, #8 + ldrsh r0, [r0, r1] + cmp r0, #0 + bgt _0815D94E + adds r0, r5, #0 + bl DestroyTask + ldr r1, _0815D958 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] +_0815D94E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0815D958: .4byte 0x0203809E + thumb_func_end sub_0815D814 + + thumb_func_start sub_0815D95C +sub_0815D95C: @ 0x0815D95C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r7, #0 + ldr r2, _0815D9B0 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r3, r0, r2 + ldrh r0, [r3, #8] + subs r0, #1 + strh r0, [r3, #8] + movs r1, #0x14 + ldrsh r0, [r3, r1] + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + mov r8, r2 + cmp r0, #0 + beq _0815D9E2 + ldrh r0, [r3, #0xa] + subs r0, #1 + strh r0, [r3, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0815D9E2 + movs r2, #0x1a + ldrsh r0, [r3, r2] + cmp r0, #0 + bne _0815D9B4 + ldrh r0, [r3, #0x10] + strh r0, [r3, #0x1a] + rsbs r0, r0, #0 + strh r0, [r3, #0x10] + b _0815D9B6 + .align 2, 0 +_0815D9B0: .4byte 0x03005B60 +_0815D9B4: + strh r7, [r3, #0x1a] +_0815D9B6: + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + mov r2, r8 + adds r1, r0, r2 + movs r2, #0x1c + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _0815D9D2 + ldrh r0, [r1, #0x12] + strh r0, [r1, #0x1c] + rsbs r0, r0, #0 + strh r0, [r1, #0x12] + b _0815D9D6 +_0815D9D2: + movs r0, #0 + strh r0, [r1, #0x1c] +_0815D9D6: + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + add r0, r8 + ldrh r1, [r0, #0x22] + strh r1, [r0, #0xa] +_0815D9E2: + lsls r3, r6, #2 + adds r0, r3, r6 + lsls r0, r0, #3 + mov r1, r8 + adds r4, r0, r1 + ldrh r2, [r4, #0xc] + ldr r1, _0815DA34 + adds r0, r1, #0 + ands r0, r2 + ldrh r2, [r4, #0x16] + adds r0, r0, r2 + lsls r5, r0, #0x10 + lsrs r0, r5, #0x10 + mov sb, r0 + ldrh r0, [r4, #0xe] + ands r1, r0 + ldrh r2, [r4, #0x18] + adds r1, r1, r2 + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + movs r1, #0xc + ldrsh r0, [r4, r1] + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + mov ip, r3 + cmp r0, #0 + beq _0815DA3C + ldr r3, _0815DA38 + movs r2, #0x26 + ldrsh r0, [r4, r2] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + lsrs r2, r5, #0x18 + ldrh r0, [r4, #0x1a] + subs r0, r0, r2 + strh r0, [r1, #0x24] + adds r2, r3, #0 + b _0815DA52 + .align 2, 0 +_0815DA34: .4byte 0x00007FFF +_0815DA38: .4byte 0x020205AC +_0815DA3C: + ldr r2, _0815DA80 + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + lsrs r1, r5, #0x18 + ldrh r4, [r4, #0x1a] + adds r1, r1, r4 + strh r1, [r0, #0x24] +_0815DA52: + mov r1, ip + adds r0, r1, r6 + lsls r0, r0, #3 + mov r1, r8 + adds r4, r0, r1 + movs r1, #0xe + ldrsh r0, [r4, r1] + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + beq _0815DA84 + movs r1, #0x26 + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + lsrs r2, r7, #8 + ldrh r0, [r4, #0x1c] + subs r0, r0, r2 + b _0815DA96 + .align 2, 0 +_0815DA80: .4byte 0x020205AC +_0815DA84: + movs r1, #0x26 + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + lsrs r0, r7, #8 + ldrh r4, [r4, #0x1c] + adds r0, r0, r4 +_0815DA96: + strh r0, [r1, #0x26] + mov r2, ip + adds r0, r2, r6 + lsls r0, r0, #3 + mov r1, r8 + adds r2, r0, r1 + mov r0, sb + strh r0, [r2, #0x16] + strh r7, [r2, #0x18] + movs r1, #8 + ldrsh r0, [r2, r1] + cmp r0, #0 + bgt _0815DABC + movs r0, #0x1e + strh r0, [r2, #8] + movs r0, #0 + strh r0, [r2, #0x22] + ldr r0, _0815DAC8 + str r0, [r2] +_0815DABC: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0815DAC8: .4byte 0x0815D815 + thumb_func_end sub_0815D95C + + thumb_func_start sub_0815DACC +sub_0815DACC: @ 0x0815DACC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _0815DB2C + mov r8, r0 + lsls r7, r6, #2 + adds r0, r7, r6 + lsls r0, r0, #3 + mov r1, r8 + adds r4, r0, r1 + ldr r1, _0815DB30 + ldr r2, _0815DB34 + ldrb r0, [r2] + adds r0, r0, r1 + ldrb r0, [r0] + strh r0, [r4, #0x26] + ldr r5, _0815DB38 + ldrh r0, [r5] + strh r0, [r4, #0x24] + ldrh r0, [r5] + strh r0, [r4, #8] + ldrh r0, [r5, #0xc] + strh r0, [r4, #0x22] + movs r3, #6 + ldrsh r0, [r5, r3] + cmp r0, #0 + beq _0815DB10 + ldrh r0, [r4, #0x14] + ldr r3, _0815DB3C + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r4, #0x14] +_0815DB10: + ldrb r0, [r2] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0815DB40 + ldrh r0, [r5, #2] + strh r0, [r4, #0xc] + ldrh r0, [r5, #4] + strh r0, [r4, #0xe] + mov r3, r8 + adds r4, r7, #0 + b _0815DBB0 + .align 2, 0 +_0815DB2C: .4byte 0x03005B60 +_0815DB30: .4byte 0x02023E88 +_0815DB34: .4byte 0x020380D6 +_0815DB38: .4byte 0x020380BE +_0815DB3C: .4byte 0xFFFF8000 +_0815DB40: + movs r7, #2 + ldrsh r0, [r5, r7] + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + beq _0815DB5C + ldrh r1, [r5, #2] + ldr r0, _0815DB58 + ands r0, r1 + b _0815DB64 + .align 2, 0 +_0815DB58: .4byte 0x00007FFF +_0815DB5C: + ldrh r0, [r5, #2] + ldr r2, _0815DB8C + adds r1, r2, #0 + orrs r0, r1 +_0815DB64: + strh r0, [r4, #0xc] + ldr r0, _0815DB90 + movs r3, #4 + ldrsh r1, [r0, r3] + movs r2, #0x80 + lsls r2, r2, #8 + ands r1, r2 + adds r5, r0, #0 + cmp r1, #0 + beq _0815DB9C + ldr r3, _0815DB94 + lsls r4, r6, #2 + adds r1, r4, r6 + lsls r1, r1, #3 + adds r1, r1, r3 + ldrh r2, [r5, #4] + ldr r0, _0815DB98 + ands r0, r2 + b _0815DBAE + .align 2, 0 +_0815DB8C: .4byte 0xFFFF8000 +_0815DB90: .4byte 0x020380BE +_0815DB94: .4byte 0x03005B60 +_0815DB98: .4byte 0x00007FFF +_0815DB9C: + ldr r3, _0815DBD4 + lsls r4, r6, #2 + adds r1, r4, r6 + lsls r1, r1, #3 + adds r1, r1, r3 + ldrh r2, [r5, #4] + ldr r7, _0815DBD8 + adds r0, r7, #0 + orrs r0, r2 +_0815DBAE: + strh r0, [r1, #0xe] +_0815DBB0: + adds r0, r4, r6 + lsls r0, r0, #3 + adds r0, r0, r3 + movs r1, #0 + strh r1, [r0, #0x18] + strh r1, [r0, #0x16] + ldrh r1, [r5, #8] + strh r1, [r0, #0x10] + ldrh r1, [r5, #0xa] + strh r1, [r0, #0x12] + ldr r1, _0815DBDC + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0815DBD4: .4byte 0x03005B60 +_0815DBD8: .4byte 0xFFFF8000 +_0815DBDC: .4byte 0x0815D95D + thumb_func_end sub_0815DACC + + thumb_func_start AnimTask_SquishAndSweatDroplets +AnimTask_SquishAndSweatDroplets: @ 0x0815DBE0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _0815DC18 + adds r5, r0, r1 + ldr r4, _0815DC1C + movs r1, #2 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0815DC00 + adds r0, r2, #0 + bl DestroyAnimVisualTask +_0815DC00: + movs r0, #0 + strh r0, [r5, #8] + strh r0, [r5, #0xa] + strh r0, [r5, #0xc] + ldrh r0, [r4, #2] + strh r0, [r5, #0xe] + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0815DC24 + ldr r0, _0815DC20 + b _0815DC26 + .align 2, 0 +_0815DC18: .4byte 0x03005B60 +_0815DC1C: .4byte 0x020380BE +_0815DC20: .4byte 0x020380D6 +_0815DC24: + ldr r0, _0815DC74 +_0815DC26: + ldrb r4, [r0] + adds r0, r4, #0 + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x10] + adds r0, r4, #0 + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x12] + adds r0, r4, #0 + bl GetBattlerSpriteSubpriority + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x14] + ldr r0, _0815DC78 + ldrb r0, [r0] + bl GetAnimBattlerSpriteId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + strh r1, [r5, #0x26] + ldr r2, _0815DC7C + adds r0, r5, #0 + bl PrepareAffineAnimInTaskData + ldr r0, _0815DC80 + str r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0815DC74: .4byte 0x020380D7 +_0815DC78: .4byte 0x020380BE +_0815DC7C: .4byte 0x085AD554 +_0815DC80: .4byte 0x0815DC85 + thumb_func_end AnimTask_SquishAndSweatDroplets + + thumb_func_start AnimTask_SquishAndSweatDropletsStep +AnimTask_SquishAndSweatDropletsStep: @ 0x0815DC84 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _0815DCA4 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0815DCA8 + cmp r0, #1 + beq _0815DD08 + b _0815DD16 + .align 2, 0 +_0815DCA4: .4byte 0x03005B60 +_0815DCA8: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #6 + bne _0815DCBE + adds r0, r5, #0 + movs r1, #1 + bl CreateSweatDroplets +_0815DCBE: + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0x12 + bne _0815DCCE + adds r0, r5, #0 + movs r1, #0 + bl CreateSweatDroplets +_0815DCCE: + adds r0, r4, #0 + bl RunAffineAnimFromTaskData + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0815DD16 + ldrh r0, [r4, #0xe] + subs r0, #1 + strh r0, [r4, #0xe] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0815DCF0 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _0815DD16 +_0815DCF0: + strh r1, [r4, #0xa] + ldrh r1, [r4, #0x26] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _0815DD04 + adds r0, r4, #0 + bl PrepareAffineAnimInTaskData + b _0815DD16 + .align 2, 0 +_0815DD04: .4byte 0x085AD554 +_0815DD08: + movs r1, #0xc + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0815DD16 + adds r0, r5, #0 + bl DestroyAnimVisualTask +_0815DD16: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end AnimTask_SquishAndSweatDropletsStep + + thumb_func_start CreateSweatDroplets +CreateSweatDroplets: @ 0x0815DD1C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r2, _0815DD40 + adds r4, r0, r2 + cmp r1, #0 + bne _0815DD44 + movs r1, #0x12 + movs r3, #0xec + b _0815DD48 + .align 2, 0 +_0815DD40: .4byte 0x03005B60 +_0815DD44: + movs r1, #0x1e + movs r3, #0x14 +_0815DD48: + mov r2, sp + ldrh r0, [r4, #0x10] + subs r0, r0, r1 + strh r0, [r2] + ldrh r0, [r4, #0x10] + subs r0, r0, r1 + subs r0, #4 + strh r0, [r2, #2] + ldrh r0, [r4, #0x10] + adds r0, r0, r1 + strh r0, [r2, #4] + ldrh r0, [r4, #0x10] + adds r0, r0, r1 + adds r0, #4 + strh r0, [r2, #6] + add r2, sp, #8 + lsls r1, r3, #0x18 + asrs r1, r1, #0x18 + ldrh r0, [r4, #0x12] + adds r0, r0, r1 + strh r0, [r2] + ldrh r0, [r4, #0x12] + adds r0, r0, r1 + adds r0, #6 + strh r0, [r2, #2] + movs r5, #0 + mov r8, r2 + ldr r7, _0815DDEC +_0815DD80: + lsls r0, r5, #1 + add r0, sp + movs r2, #0 + ldrsh r1, [r0, r2] + movs r0, #1 + ands r0, r5 + lsls r0, r0, #1 + add r0, r8 + movs r3, #0 + ldrsh r2, [r0, r3] + ldrb r3, [r4, #0x14] + subs r3, #5 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r0, _0815DDF0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x40 + beq _0815DDD4 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r7 + movs r0, #0 + strh r0, [r1, #0x2e] + movs r0, #2 + cmp r5, #1 + bhi _0815DDC2 + movs r2, #2 + rsbs r2, r2, #0 + adds r0, r2, #0 +_0815DDC2: + strh r0, [r1, #0x30] + ldr r0, _0815DDF4 + strh r0, [r1, #0x32] + strh r6, [r1, #0x34] + movs r0, #2 + strh r0, [r1, #0x36] + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] +_0815DDD4: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #3 + bls _0815DD80 + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0815DDEC: .4byte 0x020205AC +_0815DDF0: .4byte 0x085AD574 +_0815DDF4: .4byte 0x0000FFFF + thumb_func_end CreateSweatDroplets + + thumb_func_start sub_0815DDF8 +sub_0815DDF8: @ 0x0815DDF8 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x30] + ldrh r1, [r4, #0x20] + adds r0, r0, r1 + strh r0, [r4, #0x20] + ldrh r0, [r4, #0x32] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #6 + ble _0815DE3E + ldr r3, _0815DE44 + movs r0, #0x36 + ldrsh r1, [r4, r0] + lsls r1, r1, #1 + movs r0, #0x34 + ldrsh r2, [r4, r0] + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r3, #8 + adds r1, r1, r3 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + adds r0, r4, #0 + bl DestroySprite +_0815DE3E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815DE44: .4byte 0x03005B60 + thumb_func_end sub_0815DDF8 + + thumb_func_start AnimTask_FacadeColorBlend +AnimTask_FacadeColorBlend: @ 0x0815DE48 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0815DE90 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + adds r4, r4, r1 + movs r0, #0 + strh r0, [r4, #8] + ldr r1, _0815DE94 + ldrh r0, [r1, #2] + strh r0, [r4, #0xa] + ldrb r0, [r1] + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0815DE98 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r0, [r1, #5] + lsrs r0, r0, #4 + lsls r0, r0, #4 + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + adds r0, r0, r1 + strh r0, [r4, #0xc] + ldr r0, _0815DE9C + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815DE90: .4byte 0x03005B60 +_0815DE94: .4byte 0x020380BE +_0815DE98: .4byte 0x020205AC +_0815DE9C: .4byte 0x0815DEA1 + thumb_func_end AnimTask_FacadeColorBlend + + thumb_func_start AnimTask_FacadeColorBlendStep +AnimTask_FacadeColorBlendStep: @ 0x0815DEA0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _0815DEE8 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0815DEF0 + ldrh r0, [r4, #0xc] + ldr r2, _0815DEEC + movs r3, #8 + ldrsh r1, [r4, r3] + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r3, [r1] + movs r1, #0x10 + movs r2, #8 + bl BlendPalette + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x17 + ble _0815DEE0 + movs r0, #0 + strh r0, [r4, #8] +_0815DEE0: + ldrh r0, [r4, #0xa] + subs r0, #1 + strh r0, [r4, #0xa] + b _0815DF02 + .align 2, 0 +_0815DEE8: .4byte 0x03005B60 +_0815DEEC: .4byte 0x085AD58C +_0815DEF0: + ldrh r0, [r4, #0xc] + movs r1, #0x10 + movs r2, #0 + movs r3, #0 + bl BlendPalette + adds r0, r5, #0 + bl DestroyAnimVisualTask +_0815DF02: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end AnimTask_FacadeColorBlendStep + + thumb_func_start sub_0815DF08 +sub_0815DF08: @ 0x0815DF08 + push {lr} + sub sp, #0x1c + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0xd0 + lsls r2, r2, #1 + ldr r1, _0815DF44 + ldrb r3, [r1] + ldr r1, _0815DF48 + ldrb r1, [r1] + str r1, [sp] + movs r1, #0xa + str r1, [sp, #4] + movs r1, #2 + str r1, [sp, #8] + movs r1, #0x1e + str r1, [sp, #0xc] + ldr r1, _0815DF4C + str r1, [sp, #0x10] + ldr r1, _0815DF50 + str r1, [sp, #0x14] + subs r1, #0x20 + str r1, [sp, #0x18] + movs r1, #0 + bl sub_081180A4 + add sp, #0x1c + pop {r0} + bx r0 + .align 2, 0 +_0815DF44: .4byte 0x020380D6 +_0815DF48: .4byte 0x020380BE +_0815DF4C: .4byte 0x08C2DD0C +_0815DF50: .4byte 0x08C2DE68 + thumb_func_end sub_0815DF08 + + thumb_func_start AnimRoarNoiseLine +AnimRoarNoiseLine: @ 0x0815DF54 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, _0815DFAC + ldrb r0, [r6] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0815DF70 + ldr r1, _0815DFB0 + ldrh r0, [r1] + rsbs r0, r0, #0 + strh r0, [r1] +_0815DF70: + ldrb r0, [r6] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + ldr r4, _0815DFB0 + lsrs r0, r0, #0x18 + ldrh r1, [r4] + adds r0, r0, r1 + strh r0, [r5, #0x20] + ldrb r0, [r6] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #2] + adds r0, r0, r1 + strh r0, [r5, #0x22] + movs r1, #4 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0815DFB8 + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r5, #0x2e] + ldr r0, _0815DFB4 + strh r0, [r5, #0x30] + b _0815DFE0 + .align 2, 0 +_0815DFAC: .4byte 0x020380D6 +_0815DFB0: .4byte 0x020380BE +_0815DFB4: .4byte 0x0000FD80 +_0815DFB8: + cmp r0, #1 + bne _0815DFD2 + adds r2, r5, #0 + adds r2, #0x3f + ldrb r0, [r2] + movs r1, #2 + orrs r0, r1 + strb r0, [r2] + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r5, #0x2e] + strh r0, [r5, #0x30] + b _0815DFE0 +_0815DFD2: + adds r0, r5, #0 + movs r1, #1 + bl StartSpriteAnim + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r5, #0x2e] +_0815DFE0: + ldr r0, _0815E00C + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0815E000 + ldrh r0, [r5, #0x2e] + rsbs r0, r0, #0 + strh r0, [r5, #0x2e] + adds r2, r5, #0 + adds r2, #0x3f + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] +_0815E000: + ldr r0, _0815E010 + str r0, [r5, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0815E00C: .4byte 0x020380D6 +_0815E010: .4byte 0x0815E015 + thumb_func_end AnimRoarNoiseLine + + thumb_func_start AnimRoarNoiseLineStep +AnimRoarNoiseLineStep: @ 0x0815E014 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x2e] + ldrh r1, [r2, #0x3a] + adds r0, r0, r1 + strh r0, [r2, #0x3a] + ldrh r1, [r2, #0x30] + ldrh r3, [r2, #0x3c] + adds r1, r1, r3 + strh r1, [r2, #0x3c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + strh r0, [r2, #0x24] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + strh r1, [r2, #0x26] + ldrh r0, [r2, #0x38] + adds r0, #1 + strh r0, [r2, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xe + bne _0815E048 + adds r0, r2, #0 + bl DestroyAnimSprite +_0815E048: + pop {r0} + bx r0 + thumb_func_end AnimRoarNoiseLineStep + + thumb_func_start AnimTask_GlareEyeDots +AnimTask_GlareEyeDots: @ 0x0815E04C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _0815E078 + adds r6, r1, r0 + bl IsContest + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _0815E07C + movs r0, #8 + strh r0, [r6, #0x12] + movs r0, #3 + strh r0, [r6, #0x14] + movs r0, #1 + strh r0, [r6, #0x16] + b _0815E086 + .align 2, 0 +_0815E078: .4byte 0x03005B60 +_0815E07C: + movs r0, #0xc + strh r0, [r6, #0x12] + movs r0, #3 + strh r0, [r6, #0x14] + strh r1, [r6, #0x16] +_0815E086: + ldr r5, _0815E0BC + ldrb r0, [r5] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0815E0C0 + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + adds r4, r0, #0 + ldrb r0, [r5] + movs r1, #0 + bl GetBattlerSpriteCoordAttr + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _0815E0B4 + adds r0, #3 +_0815E0B4: + asrs r0, r0, #2 + adds r0, r4, r0 + b _0815E0E4 + .align 2, 0 +_0815E0BC: .4byte 0x020380D6 +_0815E0C0: + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + adds r4, r0, #0 + ldrb r0, [r5] + movs r1, #0 + bl GetBattlerSpriteCoordAttr + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _0815E0E0 + adds r0, #3 +_0815E0E0: + asrs r0, r0, #2 + subs r0, r4, r0 +_0815E0E4: + strh r0, [r6, #0x1e] + ldr r5, _0815E138 + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + adds r4, r0, #0 + ldrb r0, [r5] + movs r1, #0 + bl GetBattlerSpriteCoordAttr + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _0815E108 + adds r0, #3 +_0815E108: + asrs r0, r0, #2 + subs r0, r4, r0 + strh r0, [r6, #0x20] + ldr r4, _0815E13C + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r6, #0x22] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r6, #0x24] + ldr r0, _0815E140 + str r0, [r6] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0815E138: .4byte 0x020380D6 +_0815E13C: .4byte 0x020380D7 +_0815E140: .4byte 0x0815E145 + thumb_func_end AnimTask_GlareEyeDots + + thumb_func_start AnimTask_GlareEyeDotsStep +AnimTask_GlareEyeDotsStep: @ 0x0815E144 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + ldr r1, _0815E16C + adds r5, r0, r1 + movs r0, #8 + ldrsh r1, [r5, r0] + cmp r1, #0 + beq _0815E170 + cmp r1, #1 + bne _0815E168 + b _0815E268 +_0815E168: + b _0815E276 + .align 2, 0 +_0815E16C: .4byte 0x03005B60 +_0815E170: + ldrh r0, [r5, #0xa] + adds r0, #1 + strh r0, [r5, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + ble _0815E276 + strh r1, [r5, #0xa] + movs r1, #0x1e + ldrsh r0, [r5, r1] + movs r2, #0x20 + ldrsh r1, [r5, r2] + movs r3, #0x22 + ldrsh r2, [r5, r3] + movs r4, #0x24 + ldrsh r3, [r5, r4] + ldrb r4, [r5, #0x12] + str r4, [sp] + ldrb r4, [r5, #0xc] + str r4, [sp, #4] + add r4, sp, #0x10 + str r4, [sp, #8] + adds r4, #2 + str r4, [sp, #0xc] + bl GetGlareEyeDotCoords + movs r6, #0 + mov r8, r4 + ldr r4, _0815E1E4 +_0815E1AA: + add r0, sp, #0x10 + movs r2, #0 + ldrsh r1, [r0, r2] + mov r3, r8 + movs r0, #0 + ldrsh r2, [r3, r0] + ldr r0, _0815E1E8 + movs r3, #0x23 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0x40 + beq _0815E23E + movs r1, #0x16 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _0815E1FE + cmp r6, #0 + bne _0815E1EC + lsls r2, r3, #4 + adds r1, r2, r3 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrh r0, [r5, #0x14] + rsbs r0, r0, #0 + strh r0, [r1, #0x26] + strh r0, [r1, #0x24] + b _0815E226 + .align 2, 0 +_0815E1E4: .4byte 0x020205AC +_0815E1E8: .4byte 0x085AD5F4 +_0815E1EC: + lsls r2, r3, #4 + adds r1, r2, r3 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrh r0, [r5, #0x14] + strh r0, [r1, #0x26] + ldrh r0, [r5, #0x14] + strh r0, [r1, #0x24] + b _0815E226 +_0815E1FE: + cmp r6, #0 + bne _0815E214 + lsls r2, r3, #4 + adds r1, r2, r3 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrh r0, [r5, #0x14] + rsbs r0, r0, #0 + strh r0, [r1, #0x24] + ldrh r0, [r5, #0x14] + b _0815E224 +_0815E214: + lsls r2, r3, #4 + adds r1, r2, r3 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrh r0, [r5, #0x14] + strh r0, [r1, #0x24] + ldrh r0, [r5, #0x14] + rsbs r0, r0, #0 +_0815E224: + strh r0, [r1, #0x26] +_0815E226: + ldr r1, _0815E264 + adds r0, r2, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #0x2e] + strh r7, [r0, #0x30] + movs r1, #0xa + strh r1, [r0, #0x32] + ldrh r0, [r5, #0x1c] + adds r0, #1 + strh r0, [r5, #0x1c] +_0815E23E: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #1 + bls _0815E1AA + ldrh r2, [r5, #0xc] + movs r3, #0xc + ldrsh r1, [r5, r3] + movs r4, #0x12 + ldrsh r0, [r5, r4] + cmp r1, r0 + bne _0815E25C + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] +_0815E25C: + adds r0, r2, #1 + strh r0, [r5, #0xc] + b _0815E276 + .align 2, 0 +_0815E264: .4byte 0x020205AC +_0815E268: + movs r1, #0x1c + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _0815E276 + adds r0, r7, #0 + bl DestroyAnimVisualTask +_0815E276: + add sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AnimTask_GlareEyeDotsStep + + thumb_func_start GetGlareEyeDotCoords +GetGlareEyeDotCoords: @ 0x0815E284 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r4, [sp, #0x28] + ldr r5, [sp, #0x2c] + ldr r6, [sp, #0x30] + mov sb, r6 + ldr r6, [sp, #0x34] + mov sl, r6 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov ip, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp] + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + adds r7, r2, #0 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + str r3, [sp, #4] + lsls r4, r4, #0x18 + lsrs r6, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + mov r8, r5 + cmp r5, #0 + bne _0815E2CC + mov r2, sb + strh r0, [r2] + mov r6, sl + strh r1, [r6] + b _0815E32A +_0815E2CC: + cmp r5, r6 + blo _0815E2DA + mov r0, sb + strh r2, [r0] + mov r1, sl + strh r3, [r1] + b _0815E32A +_0815E2DA: + subs r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + mov r2, ip + lsls r1, r2, #0x10 + asrs r1, r1, #0x10 + lsls r5, r1, #8 + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #8 + adds r1, r6, #0 + bl __divsi3 + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + adds r5, r5, r0 + ldr r2, [sp] + lsls r1, r2, #0x10 + asrs r1, r1, #0x10 + lsls r4, r1, #8 + ldr r2, [sp, #4] + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #8 + adds r1, r6, #0 + bl __divsi3 + mov r6, r8 + muls r6, r0, r6 + adds r0, r6, #0 + adds r4, r4, r0 + asrs r5, r5, #8 + mov r0, sb + strh r5, [r0] + asrs r4, r4, #8 + mov r1, sl + strh r4, [r1] +_0815E32A: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end GetGlareEyeDotCoords + + thumb_func_start AnimGlareEyeDot +AnimGlareEyeDot: @ 0x0815E33C + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x24 + ble _0815E372 + ldr r3, _0815E378 + movs r0, #0x32 + ldrsh r1, [r4, r0] + lsls r1, r1, #1 + movs r0, #0x30 + ldrsh r2, [r4, r0] + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r3, #8 + adds r1, r1, r3 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + adds r0, r4, #0 + bl DestroySprite +_0815E372: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815E378: .4byte 0x03005B60 + thumb_func_end AnimGlareEyeDot + + thumb_func_start AnimAssistPawprint +AnimAssistPawprint: @ 0x0815E37C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0815E3A8 + ldrh r0, [r1] + strh r0, [r4, #0x20] + ldrh r0, [r1, #2] + strh r0, [r4, #0x22] + ldrh r0, [r1, #4] + strh r0, [r4, #0x32] + ldrh r0, [r1, #6] + strh r0, [r4, #0x36] + ldrh r0, [r1, #8] + strh r0, [r4, #0x2e] + ldr r1, _0815E3AC + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _0815E3B0 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815E3A8: .4byte 0x020380BE +_0815E3AC: .4byte 0x080A34C5 +_0815E3B0: .4byte 0x080A6989 + thumb_func_end AnimAssistPawprint + + thumb_func_start AnimTask_BarrageBall +AnimTask_BarrageBall: @ 0x0815E3B4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + lsls r0, r0, #2 + add r0, sb + lsls r0, r0, #3 + ldr r1, _0815E4D4 + adds r7, r0, r1 + ldr r0, _0815E4D8 + mov sl, r0 + ldrb r0, [r0] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r7, #0x1e] + mov r1, sl + ldrb r0, [r1] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r7, #0x20] + ldr r0, _0815E4DC + mov r8, r0 + ldrb r0, [r0] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r7, #0x22] + mov r1, r8 + ldrb r0, [r1] + movs r1, #3 + bl GetBattlerSpriteCoord + adds r4, r0, #0 + mov r1, r8 + ldrb r0, [r1] + movs r1, #0 + bl GetBattlerSpriteCoordAttr + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _0815E426 + adds r0, #3 +_0815E426: + asrs r0, r0, #2 + adds r0, r4, r0 + strh r0, [r7, #0x24] + ldr r4, _0815E4E0 + movs r0, #0x1e + ldrsh r5, [r7, r0] + movs r1, #0x20 + ldrsh r6, [r7, r1] + mov r1, r8 + ldrb r0, [r1] + bl GetBattlerSpriteSubpriority + adds r3, r0, #0 + subs r3, #5 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r7, #0x26] + cmp r0, #0x40 + beq _0815E4F0 + ldr r4, _0815E4E4 + movs r0, #0x26 + ldrsh r1, [r7, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0x10 + strh r1, [r0, #0x2e] + movs r0, #0x26 + ldrsh r1, [r7, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r7, #0x22] + strh r1, [r0, #0x32] + movs r0, #0x26 + ldrsh r1, [r7, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r7, #0x24] + strh r1, [r0, #0x36] + movs r0, #0x26 + ldrsh r1, [r7, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _0815E4E8 + strh r1, [r0, #0x38] + movs r0, #0x26 + ldrsh r1, [r7, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl InitAnimArcTranslation + mov r1, sl + ldrb r0, [r1] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0815E4CE + movs r0, #0x26 + ldrsh r1, [r7, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #1 + bl StartSpriteAffineAnim +_0815E4CE: + ldr r0, _0815E4EC + str r0, [r7] + b _0815E4F6 + .align 2, 0 +_0815E4D4: .4byte 0x03005B60 +_0815E4D8: .4byte 0x020380D6 +_0815E4DC: .4byte 0x020380D7 +_0815E4E0: .4byte 0x085AD654 +_0815E4E4: .4byte 0x020205AC +_0815E4E8: .4byte 0x0000FFE0 +_0815E4EC: .4byte 0x0815E505 +_0815E4F0: + mov r0, sb + bl DestroyAnimVisualTask +_0815E4F6: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end AnimTask_BarrageBall + + thumb_func_start AnimTask_BarrageBallStep +AnimTask_BarrageBallStep: @ 0x0815E504 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _0815E528 + adds r4, r0, r1 + movs r0, #8 + ldrsh r1, [r4, r0] + cmp r1, #1 + beq _0815E56C + cmp r1, #1 + bgt _0815E52C + cmp r1, #0 + beq _0815E536 + b _0815E60A + .align 2, 0 +_0815E528: .4byte 0x03005B60 +_0815E52C: + cmp r1, #2 + beq _0815E590 + cmp r1, #3 + beq _0815E604 + b _0815E60A +_0815E536: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _0815E60A + strh r1, [r4, #0xa] + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0815E568 + adds r0, r0, r1 + bl TranslateAnimHorizontalArc + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + ble _0815E60A + b _0815E5F6 + .align 2, 0 +_0815E568: .4byte 0x020205AC +_0815E56C: + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0815E58C + adds r0, r0, r1 + bl TranslateAnimHorizontalArc + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0815E60A + movs r0, #0 + strh r0, [r4, #0xa] + strh r0, [r4, #0xc] + b _0815E5F6 + .align 2, 0 +_0815E58C: .4byte 0x020205AC +_0815E590: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _0815E60A + movs r0, #0 + strh r0, [r4, #0xa] + ldrh r2, [r4, #0xc] + adds r2, #1 + strh r2, [r4, #0xc] + ldr r5, _0815E600 + movs r1, #0x26 + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + movs r0, #1 + ands r2, r0 + adds r1, #0x3e + lsls r2, r2, #2 + ldrb r3, [r1] + subs r0, #6 + ands r0, r3 + orrs r0, r2 + strb r0, [r1] + movs r1, #0xc + ldrsh r0, [r4, r1] + cmp r0, #0x10 + bne _0815E60A + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r0, [r0, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + bl DestroySprite +_0815E5F6: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _0815E60A + .align 2, 0 +_0815E600: .4byte 0x020205AC +_0815E604: + adds r0, r2, #0 + bl DestroyAnimVisualTask +_0815E60A: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end AnimTask_BarrageBallStep + + thumb_func_start AnimSmellingSaltsHand +AnimSmellingSaltsHand: @ 0x0815E610 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r0, _0815E624 + movs r2, #0 + ldrsh r1, [r0, r2] + adds r6, r0, #0 + cmp r1, #0 + bne _0815E62C + ldr r0, _0815E628 + b _0815E62E + .align 2, 0 +_0815E624: .4byte 0x020380BE +_0815E628: .4byte 0x020380D6 +_0815E62C: + ldr r0, _0815E694 +_0815E62E: + ldrb r5, [r0] + ldrh r2, [r4, #4] + lsls r1, r2, #0x16 + lsrs r1, r1, #0x16 + adds r1, #0x10 + ldr r3, _0815E698 + adds r0, r3, #0 + ands r1, r0 + ldr r0, _0815E69C + ands r0, r2 + orrs r0, r1 + strh r0, [r4, #4] + adds r1, r6, #0 + ldrh r0, [r1, #4] + strh r0, [r4, #0x3a] + movs r2, #2 + ldrsh r0, [r1, r2] + movs r1, #1 + cmp r0, #0 + bne _0815E65C + movs r3, #1 + rsbs r3, r3, #0 + adds r1, r3, #0 +_0815E65C: + strh r1, [r4, #0x3c] + adds r0, r5, #0 + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x22] + movs r1, #2 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _0815E6A0 + ldrb r2, [r4, #3] + lsls r1, r2, #0x1a + lsrs r1, r1, #0x1b + movs r0, #8 + orrs r1, r0 + lsls r1, r1, #1 + subs r0, #0x47 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #3] + adds r0, r5, #0 + movs r1, #4 + bl GetBattlerSpriteCoordAttr + subs r0, #8 + b _0815E6AA + .align 2, 0 +_0815E694: .4byte 0x020380D7 +_0815E698: .4byte 0x000003FF +_0815E69C: .4byte 0xFFFFFC00 +_0815E6A0: + adds r0, r5, #0 + movs r1, #5 + bl GetBattlerSpriteCoordAttr + adds r0, #8 +_0815E6AA: + strh r0, [r4, #0x20] + ldr r0, _0815E6B8 + str r0, [r4, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0815E6B8: .4byte 0x0815E6BD + thumb_func_end AnimSmellingSaltsHand + + thumb_func_start sub_0815E6BC +sub_0815E6BC: @ 0x0815E6BC + push {lr} + adds r2, r0, #0 + movs r0, #0x2e + ldrsh r1, [r2, r0] + cmp r1, #1 + beq _0815E704 + cmp r1, #1 + bgt _0815E6D2 + cmp r1, #0 + beq _0815E6DC + b _0815E774 +_0815E6D2: + cmp r1, #2 + beq _0815E714 + cmp r1, #3 + beq _0815E73A + b _0815E774 +_0815E6DC: + ldrh r0, [r2, #0x30] + adds r0, #1 + strh r0, [r2, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _0815E774 + strh r1, [r2, #0x30] + ldrh r0, [r2, #0x3c] + ldrh r1, [r2, #0x24] + adds r0, r0, r1 + strh r0, [r2, #0x24] + ldrh r0, [r2, #0x32] + adds r0, #1 + strh r0, [r2, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xc + bne _0815E774 + b _0815E732 +_0815E704: + ldrh r0, [r2, #0x30] + adds r0, #1 + strh r0, [r2, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #8 + bne _0815E774 + b _0815E72E +_0815E714: + movs r0, #0x3c + ldrsh r1, [r2, r0] + lsls r1, r1, #2 + ldrh r0, [r2, #0x24] + subs r0, r0, r1 + strh r0, [r2, #0x24] + ldrh r0, [r2, #0x30] + adds r0, #1 + strh r0, [r2, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #6 + bne _0815E774 +_0815E72E: + movs r0, #0 + strh r0, [r2, #0x30] +_0815E732: + ldrh r0, [r2, #0x2e] + adds r0, #1 + strh r0, [r2, #0x2e] + b _0815E774 +_0815E73A: + movs r0, #0x3c + ldrsh r1, [r2, r0] + lsls r0, r1, #1 + adds r0, r0, r1 + ldrh r1, [r2, #0x24] + adds r0, r0, r1 + strh r0, [r2, #0x24] + ldrh r0, [r2, #0x30] + adds r0, #1 + strh r0, [r2, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #8 + bne _0815E774 + ldrh r0, [r2, #0x3a] + subs r0, #1 + strh r0, [r2, #0x3a] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0815E76E + movs r0, #0 + strh r0, [r2, #0x30] + ldrh r0, [r2, #0x2e] + subs r0, #1 + strh r0, [r2, #0x2e] + b _0815E774 +_0815E76E: + adds r0, r2, #0 + bl DestroyAnimSprite +_0815E774: + pop {r0} + bx r0 + thumb_func_end sub_0815E6BC + + thumb_func_start AnimTask_SmellingSaltsSquish +AnimTask_SmellingSaltsSquish: @ 0x0815E778 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r2, _0815E790 + movs r3, #0 + ldrsh r0, [r2, r3] + cmp r0, #0 + bne _0815E794 + adds r0, r1, #0 + bl DestroyAnimVisualTask + b _0815E7BC + .align 2, 0 +_0815E790: .4byte 0x020380BE +_0815E794: + ldr r0, _0815E7C4 + lsls r4, r1, #2 + adds r4, r4, r1 + lsls r4, r4, #3 + adds r4, r4, r0 + ldrh r0, [r2, #2] + strh r0, [r4, #8] + ldrb r0, [r2] + bl GetAnimBattlerSpriteId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + strh r1, [r4, #0x26] + ldr r2, _0815E7C8 + adds r0, r4, #0 + bl PrepareAffineAnimInTaskData + ldr r0, _0815E7CC + str r0, [r4] +_0815E7BC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815E7C4: .4byte 0x03005B60 +_0815E7C8: .4byte 0x085AD684 +_0815E7CC: .4byte 0x0815E7D1 + thumb_func_end AnimTask_SmellingSaltsSquish + + thumb_func_start AnimTask_SmellingSaltsSquishStep +AnimTask_SmellingSaltsSquishStep: @ 0x0815E7D0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _0815E810 + adds r4, r0, r1 + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _0815E82A + movs r0, #0 + strh r0, [r4, #0xa] + ldrh r1, [r4, #0xc] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0815E818 + ldr r2, _0815E814 + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #2 + b _0815E828 + .align 2, 0 +_0815E810: .4byte 0x03005B60 +_0815E814: .4byte 0x020205AC +_0815E818: + ldr r2, _0815E870 + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, _0815E874 +_0815E828: + strh r1, [r0, #0x24] +_0815E82A: + adds r0, r4, #0 + bl RunAffineAnimFromTaskData + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _0815E886 + ldr r2, _0815E870 + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r5, [r0, #0x24] + ldrh r0, [r4, #8] + subs r0, #1 + strh r0, [r4, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0815E880 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _0815E878 + adds r0, r0, r1 + ldrh r1, [r0, #0x26] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _0815E87C + bl PrepareAffineAnimInTaskData + strh r5, [r4, #0xa] + strh r5, [r4, #0xc] + b _0815E886 + .align 2, 0 +_0815E870: .4byte 0x020205AC +_0815E874: .4byte 0x0000FFFE +_0815E878: .4byte 0x03005B60 +_0815E87C: .4byte 0x085AD684 +_0815E880: + adds r0, r6, #0 + bl DestroyAnimVisualTask +_0815E886: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end AnimTask_SmellingSaltsSquishStep + + thumb_func_start AnimSmellingSaltExclamation +AnimSmellingSaltExclamation: @ 0x0815E88C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0815E8A0 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _0815E8A8 + ldr r4, _0815E8A4 + b _0815E8AA + .align 2, 0 +_0815E8A0: .4byte 0x020380BE +_0815E8A4: .4byte 0x020380D6 +_0815E8A8: + ldr r4, _0815E8E8 +_0815E8AA: + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoordAttr + strh r0, [r5, #0x22] + movs r1, #0x22 + ldrsh r0, [r5, r1] + cmp r0, #7 + bgt _0815E8CE + movs r0, #8 + strh r0, [r5, #0x22] +_0815E8CE: + movs r2, #0 + strh r2, [r5, #0x2e] + ldr r1, _0815E8EC + ldrh r0, [r1, #2] + strh r0, [r5, #0x30] + strh r2, [r5, #0x32] + ldrh r0, [r1, #4] + strh r0, [r5, #0x34] + ldr r0, _0815E8F0 + str r0, [r5, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0815E8E8: .4byte 0x020380D7 +_0815E8EC: .4byte 0x020380BE +_0815E8F0: .4byte 0x0815E8F5 + thumb_func_end AnimSmellingSaltExclamation + + thumb_func_start AnimSmellingSaltExclamationStep +AnimSmellingSaltExclamationStep: @ 0x0815E8F4 + push {lr} + adds r3, r0, #0 + ldrh r0, [r3, #0x2e] + adds r0, #1 + strh r0, [r3, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x30 + ldrsh r1, [r3, r2] + cmp r0, r1 + blt _0815E948 + movs r0, #0 + strh r0, [r3, #0x2e] + ldrh r1, [r3, #0x32] + adds r1, #1 + movs r0, #1 + ands r1, r0 + strh r1, [r3, #0x32] + movs r0, #0x3e + adds r0, r0, r3 + mov ip, r0 + lsls r1, r1, #2 + ldrb r2, [r0] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + movs r2, #0x32 + ldrsh r0, [r3, r2] + cmp r0, #0 + beq _0815E948 + ldrh r0, [r3, #0x34] + subs r0, #1 + strh r0, [r3, #0x34] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0815E948 + adds r0, r3, #0 + bl DestroyAnimSprite +_0815E948: + pop {r0} + bx r0 + thumb_func_end AnimSmellingSaltExclamationStep + + thumb_func_start AnimHelpingHandClap +AnimHelpingHandClap: @ 0x0815E94C + push {lr} + adds r3, r0, #0 + ldr r0, _0815E978 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _0815E97C + ldrb r2, [r3, #3] + lsls r1, r2, #0x1a + lsrs r1, r1, #0x1b + movs r0, #8 + orrs r1, r0 + lsls r1, r1, #1 + subs r0, #0x47 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #3] + movs r0, #0x64 + strh r0, [r3, #0x20] + movs r0, #1 + b _0815E982 + .align 2, 0 +_0815E978: .4byte 0x020380BE +_0815E97C: + movs r0, #0x8c + strh r0, [r3, #0x20] + ldr r0, _0815E990 +_0815E982: + strh r0, [r3, #0x3c] + movs r0, #0x38 + strh r0, [r3, #0x22] + ldr r0, _0815E994 + str r0, [r3, #0x1c] + pop {r0} + bx r0 + .align 2, 0 +_0815E990: .4byte 0x0000FFFF +_0815E994: .4byte 0x0815E999 + thumb_func_end AnimHelpingHandClap + + thumb_func_start AnimHelpingHandClapStep +AnimHelpingHandClapStep: @ 0x0815E998 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #8 + bls _0815E9A6 + b _0815EB78 +_0815E9A6: + lsls r0, r0, #2 + ldr r1, _0815E9B0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0815E9B0: .4byte 0x0815E9B4 +_0815E9B4: @ jump table + .4byte _0815E9D8 @ case 0 + .4byte _0815EA0A @ case 1 + .4byte _0815EA1C @ case 2 + .4byte _0815EA5C @ case 3 + .4byte _0815EA6E @ case 4 + .4byte _0815EAAC @ case 5 + .4byte _0815EB10 @ case 6 + .4byte _0815EB30 @ case 7 + .4byte _0815EB56 @ case 8 +_0815E9D8: + movs r3, #0x3c + ldrsh r0, [r4, r3] + lsls r0, r0, #1 + ldrh r1, [r4, #0x22] + subs r1, r1, r0 + strh r1, [r4, #0x22] + ldrh r2, [r4, #0x30] + movs r0, #1 + ands r0, r2 + cmp r0, #0 + beq _0815E9FA + movs r0, #0x3c + ldrsh r1, [r4, r0] + lsls r1, r1, #1 + ldrh r0, [r4, #0x20] + subs r0, r0, r1 + strh r0, [r4, #0x20] +_0815E9FA: + adds r0, r2, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #9 + beq _0815EA08 + b _0815EB78 +_0815EA08: + b _0815EB4A +_0815EA0A: + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + beq _0815EA1A + b _0815EB78 +_0815EA1A: + b _0815EB4A +_0815EA1C: + ldrh r2, [r4, #0x30] + adds r2, #1 + strh r2, [r4, #0x30] + movs r3, #0x3c + ldrsh r1, [r4, r3] + lsls r0, r1, #1 + adds r0, r0, r1 + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] + ldr r3, _0815EA58 + movs r0, #0x30 + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x13 + ldrh r1, [r4, #0x3c] + muls r0, r1, r0 + strh r0, [r4, #0x24] + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + cmp r2, #0xc + beq _0815EA54 + b _0815EB78 +_0815EA54: + b _0815EB4A + .align 2, 0 +_0815EA58: .4byte 0x082FA8CC +_0815EA5C: + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + beq _0815EA6C + b _0815EB78 +_0815EA6C: + b _0815EB4A +_0815EA6E: + ldrh r2, [r4, #0x30] + adds r2, #1 + strh r2, [r4, #0x30] + movs r1, #0x3c + ldrsh r0, [r4, r1] + lsls r1, r0, #1 + adds r1, r1, r0 + ldrh r0, [r4, #0x22] + subs r0, r0, r1 + strh r0, [r4, #0x22] + ldr r3, _0815EAA8 + movs r0, #0x30 + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x13 + ldrh r1, [r4, #0x3c] + muls r0, r1, r0 + strh r0, [r4, #0x24] + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + cmp r2, #0xc + bne _0815EB78 + b _0815EB4E + .align 2, 0 +_0815EAA8: .4byte 0x082FA8CC +_0815EAAC: + ldrh r2, [r4, #0x30] + adds r2, #1 + strh r2, [r4, #0x30] + movs r3, #0x3c + ldrsh r1, [r4, r3] + lsls r0, r1, #1 + adds r0, r0, r1 + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] + ldr r3, _0815EB04 + movs r0, #0x30 + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x13 + ldrh r1, [r4, #0x3c] + muls r0, r1, r0 + strh r0, [r4, #0x24] + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + cmp r2, #0xf + bne _0815EAF8 + ldrh r2, [r4, #4] + lsls r1, r2, #0x16 + lsrs r1, r1, #0x16 + adds r1, #0x10 + ldr r3, _0815EB08 + adds r0, r3, #0 + ands r1, r0 + ldr r0, _0815EB0C + ands r0, r2 + orrs r0, r1 + strh r0, [r4, #4] +_0815EAF8: + movs r1, #0x30 + ldrsh r0, [r4, r1] + cmp r0, #0x12 + bne _0815EB78 + b _0815EB4A + .align 2, 0 +_0815EB04: .4byte 0x082FA8CC +_0815EB08: .4byte 0x000003FF +_0815EB0C: .4byte 0xFFFFFC00 +_0815EB10: + movs r3, #0x3c + ldrsh r0, [r4, r3] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + ldrh r0, [r4, #0x20] + adds r1, r1, r0 + strh r1, [r4, #0x20] + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #9 + bne _0815EB78 + b _0815EB4A +_0815EB30: + movs r1, #0x3c + ldrsh r0, [r4, r1] + lsls r0, r0, #1 + ldrh r3, [r4, #0x20] + adds r0, r0, r3 + strh r0, [r4, #0x20] + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + bne _0815EB78 +_0815EB4A: + movs r0, #0 + strh r0, [r4, #0x30] +_0815EB4E: + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + b _0815EB78 +_0815EB56: + movs r1, #0x3c + ldrsh r0, [r4, r1] + lsls r1, r0, #1 + adds r1, r1, r0 + ldrh r0, [r4, #0x20] + subs r0, r0, r1 + strh r0, [r4, #0x20] + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #5 + bne _0815EB78 + adds r0, r4, #0 + bl DestroyAnimSprite +_0815EB78: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AnimHelpingHandClapStep + + thumb_func_start AnimTask_HelpingHandAttackerMovement +AnimTask_HelpingHandAttackerMovement: @ 0x0815EB80 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _0815EBDC + adds r6, r1, r0 + movs r0, #0 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r6, #0x26] + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0815EC08 + bl IsDoubleBattle + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #1 + bne _0815EBEC + ldr r5, _0815EBE0 + ldrb r0, [r5] + movs r1, #0 + bl GetBattlerSpriteCoord + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldrb r1, [r5] + movs r0, #2 + eors r0, r1 + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + ble _0815EBE4 + strh r7, [r6, #0x24] + b _0815EC0C + .align 2, 0 +_0815EBDC: .4byte 0x03005B60 +_0815EBE0: .4byte 0x020380D6 +_0815EBE4: + ldr r0, _0815EBE8 + b _0815EC0A + .align 2, 0 +_0815EBE8: .4byte 0x0000FFFF +_0815EBEC: + ldr r0, _0815EC00 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0815EC08 + ldr r0, _0815EC04 + b _0815EC0A + .align 2, 0 +_0815EC00: .4byte 0x020380D6 +_0815EC04: .4byte 0x0000FFFF +_0815EC08: + movs r0, #1 +_0815EC0A: + strh r0, [r6, #0x24] +_0815EC0C: + ldr r0, _0815EC18 + str r0, [r6] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0815EC18: .4byte 0x0815EC1D + thumb_func_end AnimTask_HelpingHandAttackerMovement + + thumb_func_start AnimTask_HelpingHandAttackerMovementStep +AnimTask_HelpingHandAttackerMovementStep: @ 0x0815EC1C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _0815EC40 + adds r3, r0, r1 + movs r1, #8 + ldrsh r0, [r3, r1] + cmp r0, #8 + bls _0815EC36 + b _0815EDB0 +_0815EC36: + lsls r0, r0, #2 + ldr r1, _0815EC44 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0815EC40: .4byte 0x03005B60 +_0815EC44: .4byte 0x0815EC48 +_0815EC48: @ jump table + .4byte _0815EC6C @ case 0 + .4byte _0815EC7E @ case 1 + .4byte _0815ECB0 @ case 2 + .4byte _0815ECE0 @ case 3 + .4byte _0815ED06 @ case 4 + .4byte _0815ED30 @ case 5 + .4byte _0815ED40 @ case 6 + .4byte _0815ED60 @ case 7 + .4byte _0815ED98 @ case 8 +_0815EC6C: + ldrh r0, [r3, #0xa] + adds r0, #1 + strh r0, [r3, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xd + beq _0815EC7C + b _0815EDB0 +_0815EC7C: + b _0815ED88 +_0815EC7E: + ldr r2, _0815ECAC + movs r1, #0x26 + ldrsh r0, [r3, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r2, #0x24 + ldrsh r0, [r3, r2] + lsls r2, r0, #1 + adds r2, r2, r0 + ldrh r0, [r1, #0x24] + subs r0, r0, r2 + strh r0, [r1, #0x24] + ldrh r0, [r3, #0xa] + adds r0, #1 + strh r0, [r3, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #6 + beq _0815ECAA + b _0815EDB0 +_0815ECAA: + b _0815ED88 + .align 2, 0 +_0815ECAC: .4byte 0x020205AC +_0815ECB0: + ldr r2, _0815ECDC + movs r1, #0x26 + ldrsh r0, [r3, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #0x24 + ldrsh r2, [r3, r0] + lsls r0, r2, #1 + adds r0, r0, r2 + ldrh r2, [r1, #0x24] + adds r0, r0, r2 + strh r0, [r1, #0x24] + ldrh r0, [r3, #0xa] + adds r0, #1 + strh r0, [r3, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #6 + bne _0815EDB0 + b _0815ED88 + .align 2, 0 +_0815ECDC: .4byte 0x020205AC +_0815ECE0: + ldrh r0, [r3, #0xa] + adds r0, #1 + strh r0, [r3, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + bne _0815EDB0 + movs r0, #0 + strh r0, [r3, #0xa] + ldrh r1, [r3, #0xc] + movs r2, #0xc + ldrsh r0, [r3, r2] + cmp r0, #0 + bne _0815ED8C + adds r0, r1, #1 + strh r0, [r3, #0xc] + movs r0, #1 + strh r0, [r3, #8] + b _0815EDB0 +_0815ED06: + ldr r2, _0815ED2C + movs r0, #0x26 + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r3, #0x24] + ldrh r2, [r0, #0x24] + adds r1, r1, r2 + strh r1, [r0, #0x24] + ldrh r0, [r3, #0xa] + adds r0, #1 + strh r0, [r3, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + bne _0815EDB0 + b _0815ED88 + .align 2, 0 +_0815ED2C: .4byte 0x020205AC +_0815ED30: + ldrh r0, [r3, #0xa] + adds r0, #1 + strh r0, [r3, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #6 + bne _0815EDB0 + b _0815ED88 +_0815ED40: + ldr r2, _0815ED5C + movs r1, #0x26 + ldrsh r0, [r3, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #0x24 + ldrsh r2, [r3, r0] + lsls r2, r2, #2 + ldrh r0, [r1, #0x24] + subs r0, r0, r2 + b _0815ED78 + .align 2, 0 +_0815ED5C: .4byte 0x020205AC +_0815ED60: + ldr r2, _0815ED94 + movs r1, #0x26 + ldrsh r0, [r3, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r2, #0x24 + ldrsh r0, [r3, r2] + lsls r0, r0, #2 + ldrh r2, [r1, #0x24] + adds r0, r0, r2 +_0815ED78: + strh r0, [r1, #0x24] + ldrh r0, [r3, #0xa] + adds r0, #1 + strh r0, [r3, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #5 + bne _0815EDB0 +_0815ED88: + movs r0, #0 + strh r0, [r3, #0xa] +_0815ED8C: + ldrh r0, [r3, #8] + adds r0, #1 + strh r0, [r3, #8] + b _0815EDB0 + .align 2, 0 +_0815ED94: .4byte 0x020205AC +_0815ED98: + ldr r2, _0815EDB8 + movs r0, #0x26 + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0 + strh r1, [r0, #0x24] + adds r0, r4, #0 + bl DestroyAnimVisualTask +_0815EDB0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815EDB8: .4byte 0x020205AC + thumb_func_end AnimTask_HelpingHandAttackerMovementStep + + thumb_func_start AnimForesightMagnifyingGlass +AnimForesightMagnifyingGlass: @ 0x0815EDBC + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0815EDD8 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _0815EDE0 + adds r0, r4, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldr r0, _0815EDDC + b _0815EDE2 + .align 2, 0 +_0815EDD8: .4byte 0x020380BE +_0815EDDC: .4byte 0x020380D6 +_0815EDE0: + ldr r0, _0815EE38 +_0815EDE2: + ldrb r0, [r0] + strh r0, [r4, #0x3c] + ldrh r0, [r4, #0x3c] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0815EE06 + ldrb r0, [r4, #3] + movs r1, #0x3f + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #0x10 + orrs r1, r0 + strb r1, [r4, #3] +_0815EE06: + ldrh r0, [r4, #0x3c] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerSpriteBGPriority + movs r2, #3 + ands r2, r0 + lsls r2, r2, #2 + ldrb r3, [r4, #5] + movs r1, #0xd + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #5] + ldrb r0, [r4, #1] + ands r1, r0 + movs r0, #4 + orrs r1, r0 + strb r1, [r4, #1] + ldr r0, _0815EE3C + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815EE38: .4byte 0x020380D7 +_0815EE3C: .4byte 0x0815EE41 + thumb_func_end AnimForesightMagnifyingGlass + + thumb_func_start AnimForesightMagnifyingGlassStep +AnimForesightMagnifyingGlassStep: @ 0x0815EE40 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x38 + ldrsh r0, [r4, r1] + cmp r0, #4 + bls _0815EE4E + b _0815F03E +_0815EE4E: + lsls r0, r0, #2 + ldr r1, _0815EE58 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0815EE58: .4byte 0x0815EE5C +_0815EE5C: @ jump table + .4byte _0815EE70 @ case 0 + .4byte _0815EF70 @ case 1 + .4byte _0815EFD8 @ case 2 + .4byte _0815EFEC @ case 3 + .4byte _0815F038 @ case 4 +_0815EE70: + movs r2, #0x3a + ldrsh r0, [r4, r2] + cmp r0, #5 + bhi _0815EEA0 + lsls r0, r0, #2 + ldr r1, _0815EE84 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0815EE84: .4byte 0x0815EE88 +_0815EE88: @ jump table + .4byte _0815EEA4 @ case 0 + .4byte _0815EEC0 @ case 1 + .4byte _0815EEE2 @ case 2 + .4byte _0815EEFE @ case 3 + .4byte _0815EEA4 @ case 4 + .4byte _0815EF24 @ case 5 +_0815EEA0: + movs r0, #0 + strh r0, [r4, #0x3a] +_0815EEA4: + ldrh r0, [r4, #0x3c] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #5 + bl GetBattlerSpriteCoordAttr + subs r0, #4 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldrh r0, [r4, #0x3c] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #3 + b _0815EF18 +_0815EEC0: + ldrh r0, [r4, #0x3c] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #5 + bl GetBattlerSpriteCoordAttr + subs r0, #4 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldrh r0, [r4, #0x3c] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl GetBattlerSpriteCoordAttr + adds r0, #4 + b _0815EF1E +_0815EEE2: + ldrh r0, [r4, #0x3c] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #4 + bl GetBattlerSpriteCoordAttr + adds r0, #4 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldrh r0, [r4, #0x3c] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #3 + b _0815EF18 +_0815EEFE: + ldrh r0, [r4, #0x3c] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #4 + bl GetBattlerSpriteCoordAttr + adds r0, #4 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldrh r0, [r4, #0x3c] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 +_0815EF18: + bl GetBattlerSpriteCoordAttr + subs r0, #4 +_0815EF1E: + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + b _0815EF44 +_0815EF24: + ldrh r0, [r4, #0x3c] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldrh r0, [r4, #0x3c] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 +_0815EF44: + movs r2, #0x3a + ldrsh r0, [r4, r2] + cmp r0, #4 + bne _0815EF50 + movs r0, #0x18 + b _0815EF5A +_0815EF50: + cmp r0, #5 + bne _0815EF58 + movs r0, #6 + b _0815EF5A +_0815EF58: + movs r0, #0xc +_0815EF5A: + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x20] + strh r0, [r4, #0x30] + strh r5, [r4, #0x32] + ldrh r0, [r4, #0x22] + strh r0, [r4, #0x34] + strh r1, [r4, #0x36] + adds r0, r4, #0 + bl InitAnimLinearTranslation + b _0815F030 +_0815EF70: + adds r0, r4, #0 + bl AnimTranslateLinear + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0815F03E + movs r1, #0x3a + ldrsh r0, [r4, r1] + cmp r0, #4 + beq _0815EFA8 + cmp r0, #5 + beq _0815EFC8 + ldrh r0, [r4, #0x24] + ldrh r2, [r4, #0x20] + adds r0, r0, r2 + movs r1, #0 + strh r0, [r4, #0x20] + ldrh r0, [r4, #0x26] + ldrh r2, [r4, #0x22] + adds r0, r0, r2 + strh r0, [r4, #0x22] + strh r1, [r4, #0x26] + strh r1, [r4, #0x24] + strh r1, [r4, #0x2e] + ldrh r0, [r4, #0x38] + adds r0, #1 + strh r0, [r4, #0x38] + b _0815EFC0 +_0815EFA8: + ldrh r0, [r4, #0x24] + ldrh r1, [r4, #0x20] + adds r0, r0, r1 + movs r1, #0 + strh r0, [r4, #0x20] + ldrh r0, [r4, #0x26] + ldrh r2, [r4, #0x22] + adds r0, r0, r2 + strh r0, [r4, #0x22] + strh r1, [r4, #0x26] + strh r1, [r4, #0x24] + strh r1, [r4, #0x38] +_0815EFC0: + ldrh r0, [r4, #0x3a] + adds r0, #1 + strh r0, [r4, #0x3a] + b _0815F03E +_0815EFC8: + movs r0, #0 + strh r0, [r4, #0x2e] + movs r1, #0x10 + strh r1, [r4, #0x30] + strh r0, [r4, #0x32] + movs r0, #3 + strh r0, [r4, #0x38] + b _0815F03E +_0815EFD8: + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + bne _0815F03E + movs r0, #0 + strh r0, [r4, #0x38] + b _0815F03E +_0815EFEC: + ldrh r1, [r4, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0815EFFE + ldrh r0, [r4, #0x30] + subs r0, #1 + strh r0, [r4, #0x30] + b _0815F004 +_0815EFFE: + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] +_0815F004: + ldrh r1, [r4, #0x32] + lsls r1, r1, #8 + ldrh r0, [r4, #0x30] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x20 + bne _0815F03E + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] +_0815F030: + ldrh r0, [r4, #0x38] + adds r0, #1 + strh r0, [r4, #0x38] + b _0815F03E +_0815F038: + adds r0, r4, #0 + bl DestroyAnimSprite +_0815F03E: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end AnimForesightMagnifyingGlassStep + + thumb_func_start AnimMeteorMashStarStep +AnimMeteorMashStarStep: @ 0x0815F044 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + movs r2, #0x38 + ldrsh r1, [r4, r2] + muls r0, r1, r0 + movs r2, #0x36 + ldrsh r1, [r4, r2] + bl __divsi3 + adds r5, r0, #0 + strh r5, [r4, #0x24] + movs r1, #0x34 + ldrsh r0, [r4, r1] + movs r2, #0x30 + ldrsh r1, [r4, r2] + subs r0, r0, r1 + movs r2, #0x38 + ldrsh r1, [r4, r2] + muls r0, r1, r0 + movs r2, #0x36 + ldrsh r1, [r4, r2] + bl __divsi3 + adds r3, r0, #0 + strh r3, [r4, #0x26] + ldrh r1, [r4, #0x38] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0815F0A2 + ldr r0, _0815F0C0 + ldrh r1, [r4, #0x20] + adds r1, r1, r5 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldrh r2, [r4, #0x22] + adds r2, r2, r3 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + movs r3, #5 + bl CreateSprite +_0815F0A2: + movs r0, #0x38 + ldrsh r1, [r4, r0] + movs r2, #0x36 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _0815F0B4 + adds r0, r4, #0 + bl DestroyAnimSprite +_0815F0B4: + ldrh r0, [r4, #0x38] + adds r0, #1 + strh r0, [r4, #0x38] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0815F0C0: .4byte 0x085AD1A8 + thumb_func_end AnimMeteorMashStarStep + + thumb_func_start AnimMeteorMashStar +AnimMeteorMashStar: @ 0x0815F0C4 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0815F100 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0815F0F0 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0815F108 +_0815F0F0: + ldr r2, _0815F104 + ldrh r1, [r5, #0x20] + ldrh r0, [r2] + subs r0, r1, r0 + strh r0, [r5, #0x2e] + ldrh r0, [r2, #4] + subs r1, r1, r0 + b _0815F116 + .align 2, 0 +_0815F100: .4byte 0x020380D7 +_0815F104: .4byte 0x020380BE +_0815F108: + ldr r2, _0815F13C + ldrh r1, [r5, #0x20] + ldrh r0, [r2] + adds r0, r1, r0 + strh r0, [r5, #0x2e] + ldrh r0, [r2, #4] + adds r1, r1, r0 +_0815F116: + strh r1, [r5, #0x32] + adds r3, r2, #0 + ldrh r1, [r5, #0x22] + ldrh r2, [r3, #2] + adds r2, r1, r2 + strh r2, [r5, #0x30] + ldrh r0, [r3, #6] + adds r1, r1, r0 + strh r1, [r5, #0x34] + ldrh r0, [r3, #8] + strh r0, [r5, #0x36] + ldrh r0, [r5, #0x2e] + strh r0, [r5, #0x20] + strh r2, [r5, #0x22] + ldr r0, _0815F140 + str r0, [r5, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0815F13C: .4byte 0x020380BE +_0815F140: .4byte 0x0815F045 + thumb_func_end AnimMeteorMashStar + + thumb_func_start AnimTask_MonToSubstitute +AnimTask_MonToSubstitute: @ 0x0815F144 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r0, #0 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r2, r5, #0 + ldr r0, _0815F188 + mov sb, r0 + lsls r7, r6, #2 + adds r0, r7, r6 + lsls r0, r0, #3 + mov r8, r0 + mov r4, r8 + add r4, sb + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0815F18C + adds r0, r5, #0 + movs r1, #0 + bl PrepareBattlerSpriteForRotScale + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0xa] + strh r0, [r4, #0xc] + b _0815F1D8 + .align 2, 0 +_0815F188: .4byte 0x03005B60 +_0815F18C: + cmp r0, #1 + bne _0815F1E4 + ldrh r0, [r4, #0xa] + adds r0, #0x60 + strh r0, [r4, #0xa] + ldrh r0, [r4, #0xc] + subs r0, #0xd + strh r0, [r4, #0xc] + movs r2, #0xa + ldrsh r1, [r4, r2] + movs r0, #0xc + ldrsh r2, [r4, r0] + adds r0, r5, #0 + movs r3, #0 + bl SetSpriteRotScale + ldrh r0, [r4, #0xe] + adds r0, #1 + strh r0, [r4, #0xe] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #9 + bne _0815F248 + movs r0, #0 + strh r0, [r4, #0xe] + adds r0, r5, #0 + bl ResetSpriteRotScale + ldr r1, _0815F1E0 + lsls r0, r5, #4 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_0815F1D8: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _0815F248 + .align 2, 0 +_0815F1E0: .4byte 0x020205AC +_0815F1E4: + ldr r4, _0815F254 + ldrb r0, [r4] + movs r1, #0 + bl LoadBattleMonGfxAndAnimate + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0815F226 + ldr r3, _0815F258 + ldr r2, _0815F25C + ldrb r0, [r4] + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r3, #0 + adds r1, #0x10 + adds r0, r0, r1 + ldr r1, _0815F260 + str r1, [r0] + ldrb r0, [r4] + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r1, #0 + bl StartSpriteAffineAnim +_0815F226: + mov r4, sb + adds r3, r7, #0 + ldr r5, _0815F264 + movs r1, #0xf + mov r2, r8 + adds r0, r4, r2 + adds r0, #0x26 + movs r2, #0 +_0815F236: + strh r2, [r0] + subs r0, #2 + subs r1, #1 + cmp r1, #0 + bge _0815F236 + adds r0, r3, r6 + lsls r0, r0, #3 + adds r0, r0, r4 + str r5, [r0] +_0815F248: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0815F254: .4byte 0x020380D6 +_0815F258: .4byte 0x020205AC +_0815F25C: .4byte 0x02023E88 +_0815F260: .4byte 0x082D2F50 +_0815F264: .4byte 0x0815F269 + thumb_func_end AnimTask_MonToSubstitute + + thumb_func_start AnimTask_MonToSubstituteDoll +AnimTask_MonToSubstituteDoll: @ 0x0815F268 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r0, #0 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r1, _0815F294 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r0, #8 + ldrsh r5, [r4, r0] + cmp r5, #1 + beq _0815F2CC + cmp r5, #1 + bgt _0815F298 + cmp r5, #0 + beq _0815F2A2 + b _0815F3BA + .align 2, 0 +_0815F294: .4byte 0x03005B60 +_0815F298: + cmp r5, #2 + beq _0815F338 + cmp r5, #3 + beq _0815F374 + b _0815F3BA +_0815F2A2: + ldr r0, _0815F2C4 + lsls r1, r3, #4 + adds r1, r1, r3 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, _0815F2C8 + strh r0, [r1, #0x26] + movs r0, #0xc8 + strh r0, [r1, #0x24] + adds r1, #0x3e + ldrb r2, [r1] + subs r0, #0xcd + ands r0, r2 + strb r0, [r1] + strh r5, [r4, #0x1c] + b _0815F366 + .align 2, 0 +_0815F2C4: .4byte 0x020205AC +_0815F2C8: .4byte 0x0000FF38 +_0815F2CC: + ldrh r1, [r4, #0x1c] + adds r1, #0x70 + movs r5, #0 + strh r1, [r4, #0x1c] + ldr r2, _0815F330 + lsls r0, r3, #4 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r2, r0, r2 + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + ldrh r3, [r2, #0x26] + adds r1, r1, r3 + strh r1, [r2, #0x26] + movs r1, #0x22 + ldrsh r0, [r2, r1] + movs r3, #0x26 + ldrsh r1, [r2, r3] + adds r0, r0, r1 + movs r1, #0x20 + rsbs r1, r1, #0 + cmp r0, r1 + blt _0815F2FC + strh r5, [r2, #0x24] +_0815F2FC: + movs r1, #0x26 + ldrsh r0, [r2, r1] + cmp r0, #0 + ble _0815F306 + strh r5, [r2, #0x26] +_0815F306: + movs r3, #0x26 + ldrsh r0, [r2, r3] + cmp r0, #0 + bne _0815F3BA + movs r0, #0x40 + rsbs r0, r0, #0 + bl BattleAnimAdjustPanning + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r0, #0x7d + bl PlaySE12WithPanning + ldr r1, _0815F334 + adds r0, r1, #0 + ldrh r2, [r4, #0x1c] + adds r0, r0, r2 + strh r0, [r4, #0x1c] + b _0815F366 + .align 2, 0 +_0815F330: .4byte 0x020205AC +_0815F334: .4byte 0xFFFFF800 +_0815F338: + ldrh r0, [r4, #0x1c] + subs r0, #0x70 + strh r0, [r4, #0x1c] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _0815F348 + movs r0, #0 + strh r0, [r4, #0x1c] +_0815F348: + ldr r0, _0815F370 + lsls r1, r3, #4 + adds r1, r1, r3 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r2, [r4, #0x1c] + lsls r2, r2, #0x10 + asrs r2, r2, #0x18 + ldrh r0, [r1, #0x26] + subs r0, r0, r2 + strh r0, [r1, #0x26] + movs r3, #0x1c + ldrsh r0, [r4, r3] + cmp r0, #0 + bne _0815F3BA +_0815F366: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _0815F3BA + .align 2, 0 +_0815F370: .4byte 0x020205AC +_0815F374: + ldrh r0, [r4, #0x1c] + adds r0, #0x70 + strh r0, [r4, #0x1c] + ldr r2, _0815F3C0 + lsls r1, r3, #4 + adds r1, r1, r3 + lsls r1, r1, #2 + adds r1, r1, r2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + ldrh r2, [r1, #0x26] + adds r0, r0, r2 + strh r0, [r1, #0x26] + lsls r0, r0, #0x10 + cmp r0, #0 + ble _0815F398 + movs r0, #0 + strh r0, [r1, #0x26] +_0815F398: + movs r3, #0x26 + ldrsh r0, [r1, r3] + cmp r0, #0 + bne _0815F3BA + movs r0, #0x40 + rsbs r0, r0, #0 + bl BattleAnimAdjustPanning + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r0, #0x7d + bl PlaySE12WithPanning + adds r0, r6, #0 + bl DestroyAnimVisualTask +_0815F3BA: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0815F3C0: .4byte 0x020205AC + thumb_func_end AnimTask_MonToSubstituteDoll + + thumb_func_start AnimBlockX +AnimBlockX: @ 0x0815F3C4 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0815F3E8 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0815F3F0 + ldrb r0, [r4] + bl GetBattlerSpriteSubpriority + subs r0, #2 + adds r1, r5, #0 + adds r1, #0x43 + strb r0, [r1] + ldr r4, _0815F3EC + b _0815F400 + .align 2, 0 +_0815F3E8: .4byte 0x020380D7 +_0815F3EC: .4byte 0x0000FF70 +_0815F3F0: + ldrb r0, [r4] + bl GetBattlerSpriteSubpriority + adds r0, #2 + adds r1, r5, #0 + adds r1, #0x43 + strb r0, [r1] + ldr r4, _0815F41C +_0815F400: + ldr r0, _0815F420 + ldrb r0, [r0] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + strh r4, [r5, #0x26] + ldr r0, _0815F424 + str r0, [r5, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0815F41C: .4byte 0x0000FFA0 +_0815F420: .4byte 0x020380D7 +_0815F424: .4byte 0x0815F429 + thumb_func_end AnimBlockX + + thumb_func_start AnimBlockXStep +AnimBlockXStep: @ 0x0815F428 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #4 + bls _0815F436 + b _0815F552 +_0815F436: + lsls r0, r0, #2 + ldr r1, _0815F440 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0815F440: .4byte 0x0815F444 +_0815F444: @ jump table + .4byte _0815F458 @ case 0 + .4byte _0815F47C @ case 1 + .4byte _0815F4BC @ case 2 + .4byte _0815F4EC @ case 3 + .4byte _0815F518 @ case 4 +_0815F458: + ldrh r0, [r4, #0x26] + adds r0, #0xa + strh r0, [r4, #0x26] + lsls r0, r0, #0x10 + cmp r0, #0 + blt _0815F552 + movs r0, #0x3f + bl BattleAnimAdjustPanning + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r0, #0xcd + bl PlaySE12WithPanning + movs r0, #0 + strh r0, [r4, #0x26] + b _0815F510 +_0815F47C: + ldrh r1, [r4, #0x30] + adds r1, #4 + movs r5, #0 + strh r1, [r4, #0x30] + ldr r2, _0815F4B8 + movs r3, #0x30 + ldrsh r0, [r4, r3] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x13 + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #0x7f + ble _0815F552 + movs r0, #0x3f + bl BattleAnimAdjustPanning + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r0, #0xcd + bl PlaySE12WithPanning + strh r5, [r4, #0x30] + strh r5, [r4, #0x26] + b _0815F510 + .align 2, 0 +_0815F4B8: .4byte 0x082FA8CC +_0815F4BC: + ldrh r1, [r4, #0x30] + adds r1, #6 + movs r3, #0 + strh r1, [r4, #0x30] + ldr r2, _0815F4E8 + movs r5, #0x30 + ldrsh r0, [r4, r5] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #0x7f + ble _0815F552 + strh r3, [r4, #0x30] + strh r3, [r4, #0x26] + b _0815F510 + .align 2, 0 +_0815F4E8: .4byte 0x082FA8CC +_0815F4EC: + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #8 + ble _0815F552 + movs r0, #0x3f + bl BattleAnimAdjustPanning + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r0, #0xc0 + bl PlaySE12WithPanning + movs r0, #0 + strh r0, [r4, #0x30] +_0815F510: + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + b _0815F552 +_0815F518: + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #8 + ble _0815F552 + movs r0, #0 + strh r0, [r4, #0x30] + ldrh r1, [r4, #0x32] + adds r1, #1 + strh r1, [r4, #0x32] + movs r0, #1 + ands r1, r0 + adds r3, r4, #0 + adds r3, #0x3e + lsls r1, r1, #2 + ldrb r2, [r3] + subs r0, #6 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #7 + bne _0815F552 + adds r0, r4, #0 + bl DestroyAnimSprite +_0815F552: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end AnimBlockXStep + + thumb_func_start AnimTask_OdorSleuthMovement +AnimTask_OdorSleuthMovement: @ 0x0815F558 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + bl IsContest + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #0 + bne _0815F5A6 + movs r0, #1 + bl CloneBattlerSpriteWithBlend + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + mov sl, r1 + asrs r6, r0, #0x10 + cmp r6, #0 + blt _0815F5A6 + movs r0, #1 + bl CloneBattlerSpriteWithBlend + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + mov sb, r1 + asrs r1, r0, #0x10 + cmp r1, #0 + bge _0815F5B4 + lsls r0, r6, #4 + adds r0, r0, r6 + lsls r0, r0, #2 + ldr r1, _0815F5B0 + adds r0, r0, r1 + bl obj_delete_but_dont_free_vram +_0815F5A6: + mov r0, r8 + bl DestroyAnimVisualTask + b _0815F6B8 + .align 2, 0 +_0815F5B0: .4byte 0x020205AC +_0815F5B4: + ldr r4, _0815F644 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r5, r0, r4 + ldrh r0, [r5, #0x24] + adds r0, #0x18 + strh r0, [r5, #0x24] + lsls r0, r6, #4 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r6, r0, r4 + ldrh r0, [r6, #0x24] + subs r0, #0x18 + strh r0, [r6, #0x24] + strh r7, [r5, #0x2e] + strh r7, [r6, #0x2e] + strh r7, [r5, #0x30] + strh r7, [r6, #0x30] + strh r7, [r5, #0x32] + strh r7, [r6, #0x32] + movs r0, #0x10 + strh r0, [r5, #0x34] + ldr r0, _0815F648 + strh r0, [r6, #0x34] + strh r7, [r5, #0x36] + movs r0, #0x80 + strh r0, [r6, #0x36] + movs r0, #0x18 + strh r0, [r5, #0x38] + strh r0, [r6, #0x38] + mov r0, r8 + strh r0, [r5, #0x3a] + strh r0, [r6, #0x3a] + strh r7, [r5, #0x3c] + strh r7, [r6, #0x3c] + ldr r2, _0815F64C + mov r1, r8 + lsls r3, r1, #2 + adds r0, r3, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r1, #2 + strh r1, [r0, #8] + ldr r0, _0815F650 + ldr r1, [r0] + ldr r0, _0815F654 + ldrb r0, [r0] + ldr r1, [r1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + adds r7, r4, #0 + mov ip, r3 + cmp r0, #0 + bne _0815F658 + adds r2, r5, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r2, r6, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + b _0815F66E + .align 2, 0 +_0815F644: .4byte 0x020205AC +_0815F648: .4byte 0x0000FFF0 +_0815F64C: .4byte 0x03005B60 +_0815F650: .4byte 0x02024174 +_0815F654: .4byte 0x020380D7 +_0815F658: + adds r1, r5, #0 + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + adds r1, r6, #0 + adds r1, #0x3e + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] +_0815F66E: + mov r1, sb + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r4, r2, r7 + ldrb r1, [r4, #1] + movs r3, #0xd + rsbs r3, r3, #0 + adds r0, r3, #0 + ands r0, r1 + strb r0, [r4, #1] + mov r1, sl + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r4, r1, r7 + ldrb r0, [r4, #1] + ands r3, r0 + strb r3, [r4, #1] + adds r3, r7, #0 + adds r3, #0x1c + adds r2, r2, r3 + ldr r0, _0815F6C8 + str r0, [r2] + adds r1, r1, r3 + str r0, [r1] + mov r0, ip + add r0, r8 + lsls r0, r0, #3 + ldr r1, _0815F6CC + adds r0, r0, r1 + ldr r1, _0815F6D0 + str r1, [r0] +_0815F6B8: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0815F6C8: .4byte 0x0815F6FD +_0815F6CC: .4byte 0x03005B60 +_0815F6D0: .4byte 0x0815F6D5 + thumb_func_end AnimTask_OdorSleuthMovement + + thumb_func_start AnimTask_OdorSleuthMovementWaitFinish +AnimTask_OdorSleuthMovementWaitFinish: @ 0x0815F6D4 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _0815F6F8 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #8 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _0815F6F2 + adds r0, r2, #0 + bl DestroyAnimVisualTask +_0815F6F2: + pop {r0} + bx r0 + .align 2, 0 +_0815F6F8: .4byte 0x03005B60 + thumb_func_end AnimTask_OdorSleuthMovementWaitFinish + + thumb_func_start MoveOdorSleuthClone +MoveOdorSleuthClone: @ 0x0815F6FC + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _0815F746 + movs r0, #0 + strh r0, [r4, #0x30] + ldr r0, _0815F770 + ldr r1, [r0] + ldr r0, _0815F774 + ldrb r0, [r0] + ldr r1, [r1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0815F746 + adds r3, r4, #0 + adds r3, #0x3e + ldrb r2, [r3] + lsls r1, r2, #0x1d + lsrs r1, r1, #0x1f + movs r0, #1 + eors r1, r0 + ands r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_0815F746: + ldrh r0, [r4, #0x34] + ldrh r1, [r4, #0x36] + adds r0, r0, r1 + movs r5, #0 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x36] + movs r2, #0x36 + ldrsh r0, [r4, r2] + movs r2, #0x38 + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, #0x24] + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0815F778 + cmp r0, #1 + beq _0815F790 + b _0815F7CE + .align 2, 0 +_0815F770: .4byte 0x02024174 +_0815F774: .4byte 0x020380D7 +_0815F778: + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x3c + bne _0815F7CE + strh r5, [r4, #0x32] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + b _0815F7CE +_0815F790: + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + cmp r0, #0 + ble _0815F7CE + strh r5, [r4, #0x32] + ldrh r0, [r4, #0x38] + subs r0, #2 + strh r0, [r4, #0x38] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _0815F7CE + ldr r3, _0815F7D4 + movs r2, #0x3c + ldrsh r1, [r4, r2] + lsls r1, r1, #1 + movs r0, #0x3a + ldrsh r2, [r4, r0] + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r3, #8 + adds r1, r1, r3 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + adds r0, r4, #0 + bl obj_delete_but_dont_free_vram +_0815F7CE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0815F7D4: .4byte 0x03005B60 + thumb_func_end MoveOdorSleuthClone + + thumb_func_start AnimTask_GetReturnPowerLevel +AnimTask_GetReturnPowerLevel: @ 0x0815F7D8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r3, _0815F824 + movs r2, #0 + strh r2, [r3, #0xe] + ldr r1, _0815F828 + ldrb r0, [r1] + ldrb r1, [r1] + adds r0, r1, #0 + subs r0, #0x3d + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r2, r1, #0 + cmp r0, #0x1e + bhi _0815F7FC + movs r0, #1 + strh r0, [r3, #0xe] +_0815F7FC: + adds r0, r2, #0 + subs r0, #0x5c + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x6c + bhi _0815F80C + movs r0, #2 + strh r0, [r3, #0xe] +_0815F80C: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xc8 + bls _0815F818 + movs r0, #3 + strh r0, [r3, #0xe] +_0815F818: + adds r0, r4, #0 + bl DestroyAnimVisualTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815F824: .4byte 0x020380BE +_0815F828: .4byte 0x020380BA + thumb_func_end AnimTask_GetReturnPowerLevel + + thumb_func_start AnimTask_SnatchOpposingMonMove +AnimTask_SnatchOpposingMonMove: @ 0x0815F82C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r1, _0815F85C + lsls r0, r0, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #8 + ldrsh r0, [r0, r1] + cmp r0, #4 + bls _0815F852 + b _0815FDA0 +_0815F852: + lsls r0, r0, #2 + ldr r1, _0815F860 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0815F85C: .4byte 0x03005B60 +_0815F860: .4byte 0x0815F864 +_0815F864: @ jump table + .4byte _0815F878 @ case 0 + .4byte _0815F92C @ case 1 + .4byte _0815FB20 @ case 2 + .4byte _0815FC40 @ case 3 + .4byte _0815FCC4 @ case 4 +_0815F878: + movs r0, #0 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r1, _0815F8C4 + mov r2, r8 + lsls r4, r2, #2 + adds r0, r4, r2 + lsls r0, r0, #3 + adds r6, r0, r1 + movs r3, #0x80 + lsls r3, r3, #4 + adds r0, r3, #0 + ldrh r1, [r6, #0xa] + adds r0, r0, r1 + strh r0, [r6, #0xa] + ldr r0, _0815F8C8 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + mov sb, r4 + cmp r0, #0 + bne _0815F8D0 + ldr r2, _0815F8CC + lsls r3, r7, #4 + adds r1, r3, r7 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r0, [r6, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + ldrh r4, [r1, #0x24] + adds r0, r0, r4 + strh r0, [r1, #0x24] + b _0815F8EA + .align 2, 0 +_0815F8C4: .4byte 0x03005B60 +_0815F8C8: .4byte 0x020380D6 +_0815F8CC: .4byte 0x020205AC +_0815F8D0: + ldr r3, _0815F924 + lsls r4, r7, #4 + adds r2, r4, r7 + lsls r2, r2, #2 + adds r2, r2, r3 + ldrh r1, [r6, #0xa] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + ldrh r0, [r2, #0x24] + subs r0, r0, r1 + strh r0, [r2, #0x24] + adds r2, r3, #0 + adds r3, r4, #0 +_0815F8EA: + ldr r1, _0815F928 + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrb r0, [r4, #0xa] + strh r0, [r4, #0xa] + adds r1, r3, r7 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r0, [r1, #0x24] + ldrh r1, [r1, #0x20] + adds r0, r0, r1 + lsls r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #0xe + adds r0, r0, r1 + movs r1, #0x98 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _0815F916 + b _0815FDA0 +_0815F916: + movs r0, #0 + strh r0, [r4, #0xa] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _0815FDA0 + .align 2, 0 +_0815F924: .4byte 0x020205AC +_0815F928: .4byte 0x03005B60 +_0815F92C: + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0815F960 + ldr r0, _0815F958 + ldr r0, [r0] + ldr r0, [r0, #0x18] + ldr r2, [r0, #8] + mov sl, r2 + ldr r3, [r0, #0xc] + mov sb, r3 + ldrh r6, [r0] + ldr r0, _0815F95C + ldrb r0, [r0] + bl GetBattlerSpriteSubpriority + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r7, #0 + b _0815FA86 + .align 2, 0 +_0815F958: .4byte 0x02039BD4 +_0815F95C: .4byte 0x020380D6 +_0815F960: + ldr r4, _0815F9C4 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0815FA00 + ldr r7, _0815F9C8 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r7 + ldrh r0, [r0] + movs r6, #0x64 + muls r0, r6, r0 + ldr r5, _0815F9CC + adds r0, r0, r5 + movs r1, #0 + bl GetMonData + mov sl, r0 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r7 + ldrh r0, [r0] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #1 + bl GetMonData + mov sb, r0 + ldr r0, _0815F9D0 + ldr r0, [r0] + ldrb r2, [r4] + ldr r1, [r0] + lsls r0, r2, #2 + adds r1, r0, r1 + ldrh r0, [r1, #2] + cmp r0, #0 + bne _0815F9D4 + lsls r0, r2, #1 + adds r0, r0, r7 + ldrh r0, [r0] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + b _0815F9D6 + .align 2, 0 +_0815F9C4: .4byte 0x020380D6 +_0815F9C8: .4byte 0x02023D12 +_0815F9CC: .4byte 0x02024190 +_0815F9D0: .4byte 0x02024174 +_0815F9D4: + ldrh r6, [r1, #2] +_0815F9D6: + movs r0, #1 + bl GetAnimBattlerSpriteId + ldr r2, _0815F9FC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + adds r1, #0x43 + ldrb r0, [r1] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r7, #0 + movs r5, #0x88 + lsls r5, r5, #1 + b _0815FA88 + .align 2, 0 +_0815F9FC: .4byte 0x020205AC +_0815FA00: + ldr r7, _0815FA58 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r7 + ldrh r0, [r0] + movs r6, #0x64 + muls r0, r6, r0 + ldr r5, _0815FA5C + adds r0, r0, r5 + movs r1, #0 + bl GetMonData + mov sl, r0 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r7 + ldrh r0, [r0] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #1 + bl GetMonData + mov sb, r0 + ldr r0, _0815FA60 + ldr r0, [r0] + ldrb r2, [r4] + ldr r1, [r0] + lsls r0, r2, #2 + adds r1, r0, r1 + ldrh r0, [r1, #2] + cmp r0, #0 + bne _0815FA64 + lsls r0, r2, #1 + adds r0, r0, r7 + ldrh r0, [r0] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + b _0815FA66 + .align 2, 0 +_0815FA58: .4byte 0x02023D12 +_0815FA5C: .4byte 0x020243E8 +_0815FA60: .4byte 0x02024174 +_0815FA64: + ldrh r6, [r1, #2] +_0815FA66: + movs r0, #1 + bl GetAnimBattlerSpriteId + ldr r2, _0815FB04 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + adds r1, #0x43 + ldrb r0, [r1] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r7, #1 +_0815FA86: + ldr r5, _0815FB08 +_0815FA88: + ldr r0, _0815FB0C + ldrb r0, [r0] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r3, r5, #0x10 + asrs r3, r3, #0x10 + str r0, [sp] + str r4, [sp, #4] + mov r4, sl + str r4, [sp, #8] + mov r0, sb + str r0, [sp, #0xc] + ldr r4, _0815FB10 + ldrb r0, [r4] + str r0, [sp, #0x10] + movs r0, #0 + str r0, [sp, #0x14] + adds r0, r6, #0 + adds r1, r7, #0 + movs r2, #0 + bl sub_080A7C5C + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _0815FB14 + ldr r1, [r0] + ldrb r0, [r4] + ldr r1, [r1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0, #2] + cmp r0, #0 + beq _0815FAF2 + ldr r1, _0815FB04 + lsls r0, r5, #4 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #5] + lsrs r0, r0, #4 + lsls r0, r0, #4 + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + orrs r0, r1 + ldr r3, _0815FB18 + movs r1, #0x10 + movs r2, #6 + bl BlendPalette +_0815FAF2: + ldr r0, _0815FB1C + mov r3, r8 + lsls r1, r3, #2 + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + strh r5, [r1, #0x26] + b _0815FCB6 + .align 2, 0 +_0815FB04: .4byte 0x020205AC +_0815FB08: .4byte 0x0000FFE0 +_0815FB0C: .4byte 0x020380D7 +_0815FB10: .4byte 0x020380D6 +_0815FB14: .4byte 0x02024174 +_0815FB18: .4byte 0x00007FFF +_0815FB1C: .4byte 0x03005B60 +_0815FB20: + ldr r1, _0815FB6C + mov r0, r8 + lsls r4, r0, #2 + adds r0, r4, r0 + lsls r0, r0, #3 + adds r6, r0, r1 + ldrh r0, [r6, #0x26] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r1, #0x80 + lsls r1, r1, #4 + adds r0, r1, #0 + ldrh r2, [r6, #0xa] + adds r0, r0, r2 + strh r0, [r6, #0xa] + ldr r0, _0815FB70 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + mov sb, r4 + cmp r0, #0 + bne _0815FB78 + ldr r3, _0815FB74 + lsls r4, r5, #4 + adds r2, r4, r5 + lsls r2, r2, #2 + adds r2, r2, r3 + ldrh r1, [r6, #0xa] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + ldrh r0, [r2, #0x24] + subs r0, r0, r1 + strh r0, [r2, #0x24] + adds r2, r3, #0 + adds r3, r4, #0 + b _0815FB8E + .align 2, 0 +_0815FB6C: .4byte 0x03005B60 +_0815FB70: .4byte 0x020380D6 +_0815FB74: .4byte 0x020205AC +_0815FB78: + ldr r2, _0815FBDC + lsls r3, r5, #4 + adds r1, r3, r5 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r0, [r6, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + ldrh r4, [r1, #0x24] + adds r0, r0, r4 + strh r0, [r1, #0x24] +_0815FB8E: + ldr r1, _0815FBE0 + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + adds r6, r0, r1 + ldrb r0, [r6, #0xa] + strh r0, [r6, #0xa] + adds r1, r3, r5 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r0, [r1, #0x24] + ldrh r1, [r1, #0x20] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + movs r1, #0x24 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _0815FC0E + ldr r0, _0815FBE4 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0815FBEC + lsls r4, r5, #0x10 + asrs r4, r4, #0x10 + ldr r0, _0815FBE8 + ldrb r0, [r0] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + bge _0815FC0E + b _0815FC02 + .align 2, 0 +_0815FBDC: .4byte 0x020205AC +_0815FBE0: .4byte 0x03005B60 +_0815FBE4: .4byte 0x020380D6 +_0815FBE8: .4byte 0x020380D7 +_0815FBEC: + lsls r4, r5, #0x10 + asrs r4, r4, #0x10 + ldr r0, _0815FC30 + ldrb r0, [r0] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + ble _0815FC0E +_0815FC02: + ldrh r0, [r6, #0x24] + adds r0, #1 + strh r0, [r6, #0x24] + ldr r1, _0815FC34 + ldr r0, _0815FC38 + strh r0, [r1, #0xe] +_0815FC0E: + lsls r0, r5, #0x10 + movs r2, #0x80 + lsls r2, r2, #0xe + adds r0, r0, r2 + movs r1, #0x98 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _0815FC20 + b _0815FDA0 +_0815FC20: + ldr r0, _0815FC3C + mov r1, sb + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0 + strh r0, [r1, #0xa] + b _0815FCB6 + .align 2, 0 +_0815FC30: .4byte 0x020380D7 +_0815FC34: .4byte 0x020380BE +_0815FC38: .4byte 0x0000FFFF +_0815FC3C: .4byte 0x03005B60 +_0815FC40: + movs r0, #0 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r1, _0815FC8C + mov r3, r8 + lsls r4, r3, #2 + adds r0, r4, r3 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r0, [r0, #0x26] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #4 + adds r0, r0, r5 + lsls r0, r0, #2 + ldr r5, _0815FC90 + adds r0, r0, r5 + bl DestroySpriteAndFreeResources_ + ldr r0, _0815FC94 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + mov sb, r4 + cmp r0, #0 + bne _0815FC98 + lsls r1, r7, #4 + adds r1, r1, r7 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrh r0, [r1, #0x20] + rsbs r0, r0, #0 + subs r0, #0x20 + strh r0, [r1, #0x24] + b _0815FCAC + .align 2, 0 +_0815FC8C: .4byte 0x03005B60 +_0815FC90: .4byte 0x020205AC +_0815FC94: .4byte 0x020380D6 +_0815FC98: + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrh r2, [r0, #0x20] + movs r4, #0x88 + lsls r4, r4, #1 + adds r1, r4, #0 + subs r1, r1, r2 + strh r1, [r0, #0x24] +_0815FCAC: + ldr r0, _0815FCC0 + mov r1, sb + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 +_0815FCB6: + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _0815FDA0 + .align 2, 0 +_0815FCC0: .4byte 0x03005B60 +_0815FCC4: + movs r0, #0 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r1, _0815FD38 + mov r0, r8 + lsls r4, r0, #2 + adds r0, r4, r0 + lsls r0, r0, #3 + adds r2, r0, r1 + movs r1, #0x80 + lsls r1, r1, #4 + adds r0, r1, #0 + ldrh r3, [r2, #0xa] + adds r0, r0, r3 + strh r0, [r2, #0xa] + ldr r0, _0815FD3C + mov sl, r0 + ldrb r0, [r0] + str r2, [sp, #0x18] + bl GetBattlerSide + lsls r0, r0, #0x18 + mov sb, r4 + ldr r2, [sp, #0x18] + cmp r0, #0 + bne _0815FD44 + ldr r1, _0815FD40 + lsls r5, r7, #4 + adds r0, r5, r7 + lsls r0, r0, #2 + adds r6, r0, r1 + ldrh r0, [r2, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + ldrh r1, [r6, #0x24] + adds r0, r0, r1 + strh r0, [r6, #0x24] + movs r2, #0x24 + ldrsh r4, [r6, r2] + movs r3, #0x20 + ldrsh r0, [r6, r3] + adds r4, r4, r0 + mov r1, sl + ldrb r0, [r1] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r3, r5, #0 + cmp r4, r0 + blt _0815FD7C + movs r2, #0 + strh r2, [r6, #0x24] + b _0815FD7C + .align 2, 0 +_0815FD38: .4byte 0x03005B60 +_0815FD3C: .4byte 0x020380D6 +_0815FD40: .4byte 0x020205AC +_0815FD44: + ldr r1, _0815FDB0 + lsls r5, r7, #4 + adds r0, r5, r7 + lsls r0, r0, #2 + adds r6, r0, r1 + ldrh r1, [r2, #0xa] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + ldrh r0, [r6, #0x24] + subs r0, r0, r1 + strh r0, [r6, #0x24] + movs r3, #0x24 + ldrsh r4, [r6, r3] + movs r1, #0x20 + ldrsh r0, [r6, r1] + adds r4, r4, r0 + mov r2, sl + ldrb r0, [r2] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r3, r5, #0 + cmp r4, r0 + bgt _0815FD7C + movs r4, #0 + strh r4, [r6, #0x24] +_0815FD7C: + ldr r1, _0815FDB4 + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r1, [r0, #0xa] + strh r1, [r0, #0xa] + ldr r1, _0815FDB0 + adds r0, r3, r7 + lsls r0, r0, #2 + adds r0, r0, r1 + movs r1, #0x24 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _0815FDA0 + mov r0, r8 + bl DestroyAnimVisualTask +_0815FDA0: + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0815FDB0: .4byte 0x020205AC +_0815FDB4: .4byte 0x03005B60 + thumb_func_end AnimTask_SnatchOpposingMonMove + + thumb_func_start sub_0815FDB8 +sub_0815FDB8: @ 0x0815FDB8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x3c + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0815FDCA + cmp r0, #1 + beq _0815FE72 + b _0815FEF4 +_0815FDCA: + ldr r0, _0815FE50 + movs r2, #0xe + ldrsh r1, [r0, r2] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _0815FE64 + movs r0, #0x3f + bl BattleAnimAdjustPanning + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r0, #0x7a + bl PlaySE12WithPanning + ldr r0, _0815FE54 + ldrb r0, [r0] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #0x10 + strh r0, [r4, #0x22] + ldr r0, _0815FE58 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x3c] + adds r0, #1 + strh r0, [r4, #0x3c] + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldr r0, _0815FE5C + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0815FEF4 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0815FEF4 + movs r0, #1 + bl GetAnimBattlerSpriteId + ldr r2, _0815FE60 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + adds r1, #0x43 + ldrb r0, [r1] + subs r0, #1 + adds r1, r4, #0 + adds r1, #0x43 + strb r0, [r1] + b _0815FEF4 + .align 2, 0 +_0815FE50: .4byte 0x020380BE +_0815FE54: .4byte 0x020380D7 +_0815FE58: .4byte 0x0000FFE0 +_0815FE5C: .4byte 0x020380D6 +_0815FE60: .4byte 0x020205AC +_0815FE64: + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + b _0815FEF4 +_0815FE72: + movs r1, #0x30 + ldrsh r0, [r4, r1] + movs r2, #0x2e + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, #0x26] + ldrh r2, [r4, #0x30] + adds r0, r2, #5 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x7f + ble _0815FEA6 + movs r1, #0x2e + ldrsh r0, [r4, r1] + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x34] + adds r0, #1 + strh r0, [r4, #0x34] + adds r0, r2, #0 + subs r0, #0x7a + strh r0, [r4, #0x30] +_0815FEA6: + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r2, #0 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldr r0, _0815FED0 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0815FED4 + ldrh r2, [r4, #0x32] + lsls r1, r2, #0x10 + asrs r1, r1, #0x18 + ldrh r0, [r4, #0x24] + subs r0, r0, r1 + strh r0, [r4, #0x24] + adds r1, r2, #0 + b _0815FEE0 + .align 2, 0 +_0815FED0: .4byte 0x020380D6 +_0815FED4: + ldrh r1, [r4, #0x32] + lsls r0, r1, #0x10 + asrs r0, r0, #0x18 + ldrh r2, [r4, #0x24] + adds r0, r0, r2 + strh r0, [r4, #0x24] +_0815FEE0: + movs r0, #0xff + ands r0, r1 + strh r0, [r4, #0x32] + movs r1, #0x34 + ldrsh r0, [r4, r1] + cmp r0, #2 + bne _0815FEF4 + adds r0, r4, #0 + bl DestroyAnimSprite +_0815FEF4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0815FDB8 + + thumb_func_start AnimTask_SnatchPartnerMove +AnimTask_SnatchPartnerMove: @ 0x0815FEFC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _0815FF24 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #0x26 + ldrsh r0, [r0, r2] + adds r3, r1, #0 + cmp r0, #4 + bls _0815FF18 + b _0816006A +_0815FF18: + lsls r0, r0, #2 + ldr r1, _0815FF28 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0815FF24: .4byte 0x03005B60 +_0815FF28: .4byte 0x0815FF2C +_0815FF2C: @ jump table + .4byte _0815FF40 @ case 0 + .4byte _0815FF90 @ case 1 + .4byte _0815FFEC @ case 2 + .4byte _08160004 @ case 3 + .4byte _0816006A @ case 4 +_0815FF40: + ldr r0, _0815FF84 + ldrb r0, [r0] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + ldr r0, _0815FF88 + ldrb r0, [r0] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r2, r0, #0 + ldr r1, _0815FF8C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r1, r0, r1 + movs r0, #6 + strh r0, [r1, #8] + cmp r5, r2 + ble _0815FF76 + rsbs r0, r0, #0 + strh r0, [r1, #8] +_0815FF76: + strh r5, [r1, #0xa] + strh r2, [r1, #0xc] + ldrh r0, [r1, #0x26] + adds r0, #1 + strh r0, [r1, #0x26] + b _08160088 + .align 2, 0 +_0815FF84: .4byte 0x020380D6 +_0815FF88: .4byte 0x020380D7 +_0815FF8C: .4byte 0x03005B60 +_0815FF90: + ldr r1, _0815FFCC + ldr r0, _0815FFD0 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r2, [r0] + ldr r1, _0815FFD4 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r1, r0, r1 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r2, r0, r3 + ldrh r0, [r2, #8] + ldrh r3, [r1, #0x24] + adds r0, r0, r3 + strh r0, [r1, #0x24] + movs r3, #8 + ldrsh r0, [r2, r3] + cmp r0, #0 + ble _0815FFD8 + movs r3, #0x20 + ldrsh r0, [r1, r3] + movs r3, #0x24 + ldrsh r1, [r1, r3] + adds r0, r0, r1 + movs r3, #0xc + ldrsh r1, [r2, r3] + b _0816005E + .align 2, 0 +_0815FFCC: .4byte 0x02023E88 +_0815FFD0: .4byte 0x020380D6 +_0815FFD4: .4byte 0x020205AC +_0815FFD8: + movs r3, #0x20 + ldrsh r0, [r1, r3] + movs r3, #0x24 + ldrsh r1, [r1, r3] + adds r0, r0, r1 + movs r3, #0xc + ldrsh r1, [r2, r3] + cmp r0, r1 + bgt _08160088 + b _08160062 +_0815FFEC: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r3 + movs r2, #8 + ldrsh r1, [r0, r2] + rsbs r1, r1, #0 + strh r1, [r0, #8] + ldrh r1, [r0, #0x26] + adds r1, #1 + strh r1, [r0, #0x26] + b _08160088 +_08160004: + ldr r1, _08160044 + ldr r0, _08160048 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r2, [r0] + ldr r1, _0816004C + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r1, r0, r1 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r2, r0, r3 + ldrh r0, [r2, #8] + ldrh r3, [r1, #0x24] + adds r0, r0, r3 + strh r0, [r1, #0x24] + movs r3, #8 + ldrsh r0, [r2, r3] + cmp r0, #0 + bge _08160050 + movs r3, #0x20 + ldrsh r0, [r1, r3] + movs r3, #0x24 + ldrsh r1, [r1, r3] + adds r0, r0, r1 + movs r3, #0xa + ldrsh r1, [r2, r3] + cmp r0, r1 + bgt _08160088 + b _08160062 + .align 2, 0 +_08160044: .4byte 0x02023E88 +_08160048: .4byte 0x020380D6 +_0816004C: .4byte 0x020205AC +_08160050: + movs r3, #0x20 + ldrsh r0, [r1, r3] + movs r3, #0x24 + ldrsh r1, [r1, r3] + adds r0, r0, r1 + movs r3, #0xa + ldrsh r1, [r2, r3] +_0816005E: + cmp r0, r1 + blt _08160088 +_08160062: + ldrh r0, [r2, #0x26] + adds r0, #1 + strh r0, [r2, #0x26] + b _08160088 +_0816006A: + ldr r1, _08160090 + ldr r0, _08160094 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r2, [r0] + ldr r1, _08160098 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #0x24] + adds r0, r4, #0 + bl DestroyAnimVisualTask +_08160088: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08160090: .4byte 0x02023E88 +_08160094: .4byte 0x020380D6 +_08160098: .4byte 0x020205AC + thumb_func_end AnimTask_SnatchPartnerMove + + thumb_func_start AnimTask_TeeterDanceMovement +AnimTask_TeeterDanceMovement: @ 0x0816009C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _08160104 + adds r4, r1, r0 + movs r0, #0 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r5, #0 + strh r0, [r4, #0xe] + ldr r0, _08160108 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + movs r2, #1 + rsbs r2, r2, #0 + adds r1, r2, #0 + cmp r0, #0 + bne _081600D0 + movs r1, #1 +_081600D0: + strh r1, [r4, #0x10] + ldr r2, _0816010C + movs r0, #0xe + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0, #0x22] + strh r0, [r4, #0x14] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0, #0x20] + strh r0, [r4, #0x12] + strh r5, [r4, #0x1a] + strh r5, [r4, #0x1e] + movs r0, #1 + strh r0, [r4, #0x1c] + strh r5, [r4, #0x20] + ldr r0, _08160110 + str r0, [r4] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08160104: .4byte 0x03005B60 +_08160108: .4byte 0x020380D6 +_0816010C: .4byte 0x020205AC +_08160110: .4byte 0x08160115 + thumb_func_end AnimTask_TeeterDanceMovement + + thumb_func_start AnimTask_TeeterDanceMovementStep +AnimTask_TeeterDanceMovementStep: @ 0x08160114 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _08160138 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _081601BC + cmp r0, #1 + bgt _0816013C + cmp r0, #0 + beq _08160142 + b _08160212 + .align 2, 0 +_08160138: .4byte 0x03005B60 +_0816013C: + cmp r0, #2 + beq _0816020C + b _08160212 +_08160142: + ldrh r0, [r4, #0x1e] + adds r0, #8 + movs r2, #0xff + ands r0, r2 + strh r0, [r4, #0x1e] + ldr r5, _081601B4 + movs r6, #0xe + ldrsh r0, [r4, r6] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldr r3, _081601B8 + movs r6, #0x1e + ldrsh r0, [r4, r6] + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x15 + strh r0, [r1, #0x24] + ldrh r0, [r4, #0x1a] + adds r0, #2 + ands r0, r2 + strh r0, [r4, #0x1a] + movs r1, #0xe + ldrsh r0, [r4, r1] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r5 + movs r6, #0x1a + ldrsh r0, [r4, r6] + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x13 + ldrh r1, [r4, #0x10] + muls r0, r1, r0 + ldrh r1, [r4, #0x12] + adds r0, r0, r1 + strh r0, [r2, #0x20] + movs r6, #0x1a + ldrsh r0, [r4, r6] + cmp r0, #0 + bne _08160212 + movs r0, #0xe + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrh r1, [r4, #0x12] + strh r1, [r0, #0x20] + b _081601FC + .align 2, 0 +_081601B4: .4byte 0x020205AC +_081601B8: .4byte 0x082FA8CC +_081601BC: + ldrh r0, [r4, #0x1e] + adds r0, #8 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x1e] + ldr r3, _08160204 + movs r1, #0xe + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r2, _08160208 + movs r5, #0x1e + ldrsh r0, [r4, r5] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x15 + strh r0, [r1, #0x24] + movs r6, #0x1e + ldrsh r2, [r4, r6] + cmp r2, #0 + bne _08160212 + movs r1, #0xe + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + strh r2, [r1, #0x24] +_081601FC: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _08160212 + .align 2, 0 +_08160204: .4byte 0x020205AC +_08160208: .4byte 0x082FA8CC +_0816020C: + adds r0, r2, #0 + bl DestroyAnimVisualTask +_08160212: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end AnimTask_TeeterDanceMovementStep + + thumb_func_start AnimKnockOffStrikeStep +AnimKnockOffStrikeStep: @ 0x08160218 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0816026C + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + ldrh r0, [r4, #0x2e] + ldrh r1, [r4, #0x30] + adds r0, r0, r1 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x30] + movs r1, #0x30 + ldrsh r0, [r4, r1] + movs r1, #0x14 + bl Cos + strh r0, [r4, #0x24] + movs r1, #0x30 + ldrsh r0, [r4, r1] + movs r1, #0x14 + bl Sin + strh r0, [r4, #0x26] + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0816025E + adds r0, r4, #0 + bl DestroyAnimSprite +_0816025E: + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816026C: .4byte 0x020380D7 + thumb_func_end AnimKnockOffStrikeStep + + thumb_func_start AnimKnockOffStrike +AnimKnockOffStrike: @ 0x08160270 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _081602A8 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081602B4 + ldr r2, _081602AC + ldrh r0, [r4, #0x20] + ldrh r1, [r2] + subs r0, r0, r1 + strh r0, [r4, #0x20] + ldrh r0, [r2, #2] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] + ldr r0, _081602B0 + strh r0, [r4, #0x2e] + movs r0, #0xc0 + strh r0, [r4, #0x30] + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAffineAnim + b _081602CE + .align 2, 0 +_081602A8: .4byte 0x020380D7 +_081602AC: .4byte 0x020380BE +_081602B0: .4byte 0x0000FFF5 +_081602B4: + movs r0, #0xb + strh r0, [r4, #0x2e] + movs r0, #0xc0 + strh r0, [r4, #0x30] + ldr r1, _081602D8 + ldrh r0, [r1] + ldrh r2, [r4, #0x20] + adds r0, r0, r2 + strh r0, [r4, #0x20] + ldrh r0, [r1, #2] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] +_081602CE: + ldr r0, _081602DC + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081602D8: .4byte 0x020380BE +_081602DC: .4byte 0x08160219 + thumb_func_end AnimKnockOffStrike + + thumb_func_start AnimRecycle +AnimRecycle: @ 0x081602E0 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08160324 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoordAttr + strh r0, [r5, #0x22] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xf + bgt _0816030A + movs r0, #0x10 + strh r0, [r5, #0x22] +_0816030A: + movs r0, #0 + strh r0, [r5, #0x3a] + movs r1, #0x10 + strh r1, [r5, #0x3c] + ldr r0, _08160328 + str r0, [r5, #0x1c] + lsls r1, r1, #8 + movs r0, #0x52 + bl SetGpuReg + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08160324: .4byte 0x020380D6 +_08160328: .4byte 0x0816032D + thumb_func_end AnimRecycle + + thumb_func_start AnimRecycleStep +AnimRecycleStep: @ 0x0816032C + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r1, [r4, r0] + cmp r1, #1 + beq _081603A4 + cmp r1, #1 + bgt _08160342 + cmp r1, #0 + beq _0816034C + b _08160420 +_08160342: + cmp r1, #2 + beq _081603BA + cmp r1, #3 + beq _0816041A + b _08160420 +_0816034C: + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _08160420 + strh r1, [r4, #0x2e] + ldrh r1, [r4, #0x30] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08160376 + ldrh r2, [r4, #0x3a] + movs r3, #0x3a + ldrsh r0, [r4, r3] + cmp r0, #0xf + bgt _08160384 + adds r0, r2, #1 + strh r0, [r4, #0x3a] + b _08160384 +_08160376: + ldrh r2, [r4, #0x3c] + movs r3, #0x3c + ldrsh r0, [r4, r3] + cmp r0, #0 + beq _08160384 + subs r0, r2, #1 + strh r0, [r4, #0x3c] +_08160384: + adds r0, r1, #1 + strh r0, [r4, #0x30] + ldrh r1, [r4, #0x3c] + lsls r1, r1, #8 + ldrh r0, [r4, #0x3a] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r1, #0x3c + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08160420 + b _08160412 +_081603A4: + ldrh r0, [r4, #0x2e] + adds r0, #1 + movs r1, #0 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xa + bne _08160420 + strh r1, [r4, #0x2e] + strh r1, [r4, #0x30] + b _08160412 +_081603BA: + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _08160420 + movs r0, #0 + strh r0, [r4, #0x2e] + ldrh r1, [r4, #0x30] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _081603E6 + ldrh r2, [r4, #0x3a] + movs r3, #0x3a + ldrsh r0, [r4, r3] + cmp r0, #0 + beq _081603F4 + subs r0, r2, #1 + strh r0, [r4, #0x3a] + b _081603F4 +_081603E6: + ldrh r2, [r4, #0x3c] + movs r3, #0x3c + ldrsh r0, [r4, r3] + cmp r0, #0xf + bgt _081603F4 + adds r0, r2, #1 + strh r0, [r4, #0x3c] +_081603F4: + adds r0, r1, #1 + strh r0, [r4, #0x30] + ldrh r1, [r4, #0x3c] + lsls r1, r1, #8 + ldrh r0, [r4, #0x3a] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r1, #0x3c + ldrsh r0, [r4, r1] + cmp r0, #0x10 + bne _08160420 +_08160412: + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + b _08160420 +_0816041A: + adds r0, r4, #0 + bl DestroySpriteAndMatrix +_08160420: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AnimRecycleStep + + thumb_func_start AnimTask_GetWeather +AnimTask_GetWeather: @ 0x08160428 + push {lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r2, _08160444 + movs r0, #0 + strh r0, [r2, #0xe] + ldr r0, _08160448 + ldrh r1, [r0] + movs r0, #0x60 + ands r0, r1 + cmp r0, #0 + beq _0816044C + movs r0, #1 + b _0816046E + .align 2, 0 +_08160444: .4byte 0x020380BE +_08160448: .4byte 0x020380BC +_0816044C: + movs r0, #7 + ands r0, r1 + cmp r0, #0 + beq _08160458 + movs r0, #2 + b _0816046E +_08160458: + movs r0, #0x18 + ands r0, r1 + cmp r0, #0 + beq _08160464 + movs r0, #3 + b _0816046E +_08160464: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08160470 + movs r0, #4 +_0816046E: + strh r0, [r2, #0xe] +_08160470: + adds r0, r3, #0 + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AnimTask_GetWeather + + thumb_func_start AnimTask_SlackOffSquish +AnimTask_SlackOffSquish: @ 0x0816047C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _081604B4 + adds r4, r4, r0 + movs r0, #0 + strh r0, [r4, #8] + ldr r0, _081604B8 + ldrb r0, [r0] + bl GetAnimBattlerSpriteId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + strh r1, [r4, #0x26] + ldr r2, _081604BC + adds r0, r4, #0 + bl PrepareAffineAnimInTaskData + ldr r0, _081604C0 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081604B4: .4byte 0x03005B60 +_081604B8: .4byte 0x020380BE +_081604BC: .4byte 0x085AD7D0 +_081604C0: .4byte 0x081604C5 + thumb_func_end AnimTask_SlackOffSquish + + thumb_func_start AnimTask_SlackOffSquishStep +AnimTask_SlackOffSquishStep: @ 0x081604C4 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r2, _0816051C + adds r3, r0, r2 + ldrh r0, [r3, #8] + adds r1, r0, #1 + movs r5, #0 + strh r1, [r3, #8] + subs r0, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r6, r2, #0 + cmp r0, #0x16 + bhi _08160528 + ldrh r0, [r3, #0xa] + adds r0, #1 + strh r0, [r3, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + ble _08160538 + strh r5, [r3, #0xa] + ldrh r0, [r3, #0xc] + adds r0, #1 + strh r0, [r3, #0xc] + movs r5, #1 + ands r0, r5 + cmp r0, #0 + bne _08160528 + ldr r2, _08160520 + movs r0, #0x26 + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, _08160524 + strh r1, [r0, #0x24] + b _08160538 + .align 2, 0 +_0816051C: .4byte 0x03005B60 +_08160520: .4byte 0x020205AC +_08160524: .4byte 0x0000FFFF +_08160528: + ldr r2, _08160558 + movs r0, #0x26 + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r5, [r0, #0x24] +_08160538: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r6 + bl RunAffineAnimFromTaskData + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08160550 + adds r0, r4, #0 + bl DestroyAnimVisualTask +_08160550: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08160558: .4byte 0x020205AC + thumb_func_end AnimTask_SlackOffSquishStep + diff --git a/asm/battle_anim_mon_movement.s b/asm/battle_anim_mon_movement.s new file mode 100644 index 0000000..86f3fa9 --- /dev/null +++ b/asm/battle_anim_mon_movement.s @@ -0,0 +1,2592 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start AnimTask_ShakeMon +AnimTask_ShakeMon: @ 0x080D4A30 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r4, _080D4A50 + ldrb r0, [r4] + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xff + bne _080D4A54 + adds r0, r5, #0 + bl DestroyAnimVisualTask + b _080D4A90 + .align 2, 0 +_080D4A50: .4byte 0x020380BE +_080D4A54: + ldr r1, _080D4A98 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r1, [r4, #2] + strh r1, [r0, #0x24] + ldrh r1, [r4, #4] + strh r1, [r0, #0x26] + ldr r1, _080D4A9C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r2, [r0, #8] + ldrh r1, [r4, #6] + strh r1, [r0, #0xa] + ldrh r1, [r4, #8] + strh r1, [r0, #0xc] + ldrh r1, [r4, #8] + strh r1, [r0, #0xe] + ldrh r1, [r4, #2] + strh r1, [r0, #0x10] + ldrh r1, [r4, #4] + strh r1, [r0, #0x12] + ldr r1, _080D4AA0 + str r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 +_080D4A90: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D4A98: .4byte 0x020205AC +_080D4A9C: .4byte 0x03005B60 +_080D4AA0: .4byte 0x080D4AA5 + thumb_func_end AnimTask_ShakeMon + + thumb_func_start AnimTask_ShakeMonStep +AnimTask_ShakeMonStep: @ 0x080D4AA4 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _080D4AE0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r3, r0, r1 + ldrh r0, [r3, #0xe] + movs r2, #0xe + ldrsh r5, [r3, r2] + adds r7, r1, #0 + cmp r5, #0 + bne _080D4B4A + ldr r2, _080D4AE4 + movs r6, #8 + ldrsh r1, [r3, r6] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r2 + movs r6, #0x24 + ldrsh r0, [r1, r6] + adds r6, r2, #0 + cmp r0, #0 + bne _080D4AE8 + ldrh r0, [r3, #0x10] + strh r0, [r1, #0x24] + b _080D4AEA + .align 2, 0 +_080D4AE0: .4byte 0x03005B60 +_080D4AE4: .4byte 0x020205AC +_080D4AE8: + strh r5, [r1, #0x24] +_080D4AEA: + lsls r2, r4, #2 + adds r0, r2, r4 + lsls r0, r0, #3 + adds r3, r0, r7 + movs r0, #8 + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r6 + movs r5, #0x26 + ldrsh r0, [r1, r5] + cmp r0, #0 + bne _080D4B0A + ldrh r0, [r3, #0x12] + b _080D4B0C +_080D4B0A: + movs r0, #0 +_080D4B0C: + strh r0, [r1, #0x26] + adds r0, r2, r4 + lsls r0, r0, #3 + adds r2, r0, r7 + ldrh r0, [r2, #0xc] + strh r0, [r2, #0xe] + ldrh r0, [r2, #0xa] + subs r0, #1 + strh r0, [r2, #0xa] + lsls r0, r0, #0x10 + asrs r3, r0, #0x10 + cmp r3, #0 + bne _080D4B4E + movs r0, #8 + ldrsh r1, [r2, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + strh r3, [r0, #0x24] + movs r5, #8 + ldrsh r1, [r2, r5] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + strh r3, [r0, #0x26] + adds r0, r4, #0 + bl DestroyAnimVisualTask + b _080D4B4E +_080D4B4A: + subs r0, #1 + strh r0, [r3, #0xe] +_080D4B4E: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end AnimTask_ShakeMonStep + + thumb_func_start AnimTask_ShakeMon2 +AnimTask_ShakeMon2: @ 0x080D4B54 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r6, #0 + ldr r2, _080D4B7C + ldrh r0, [r2] + movs r3, #0 + ldrsh r1, [r2, r3] + cmp r1, #3 + bgt _080D4B80 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0xff + bne _080D4BD6 + b _080D4BDA + .align 2, 0 +_080D4B7C: .4byte 0x020380BE +_080D4B80: + cmp r1, #8 + beq _080D4BCC + movs r1, #0 + ldrsh r0, [r2, r1] + cmp r0, #5 + beq _080D4BA0 + cmp r0, #5 + bgt _080D4B96 + cmp r0, #4 + beq _080D4B9C + b _080D4BA8 +_080D4B96: + cmp r0, #6 + beq _080D4BA4 + b _080D4BA8 +_080D4B9C: + movs r0, #0 + b _080D4BAA +_080D4BA0: + movs r0, #2 + b _080D4BAA +_080D4BA4: + movs r0, #1 + b _080D4BAA +_080D4BA8: + movs r0, #3 +_080D4BAA: + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080D4BC0 + movs r6, #1 +_080D4BC0: + ldr r0, _080D4BC8 + adds r0, r4, r0 + b _080D4BD4 + .align 2, 0 +_080D4BC8: .4byte 0x02023E88 +_080D4BCC: + ldr r1, _080D4BE4 + ldr r0, _080D4BE8 + ldrb r0, [r0] + adds r0, r0, r1 +_080D4BD4: + ldrb r3, [r0] +_080D4BD6: + cmp r6, #0 + beq _080D4BEC +_080D4BDA: + adds r0, r5, #0 + bl DestroyAnimVisualTask + b _080D4C2A + .align 2, 0 +_080D4BE4: .4byte 0x02023E88 +_080D4BE8: .4byte 0x020380D6 +_080D4BEC: + ldr r1, _080D4C30 + lsls r0, r3, #4 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r2, _080D4C34 + ldrh r1, [r2, #2] + strh r1, [r0, #0x24] + ldrh r1, [r2, #4] + strh r1, [r0, #0x26] + ldr r1, _080D4C38 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r3, [r0, #8] + ldrh r1, [r2, #6] + strh r1, [r0, #0xa] + ldrh r1, [r2, #8] + strh r1, [r0, #0xc] + ldrh r1, [r2, #8] + strh r1, [r0, #0xe] + ldrh r1, [r2, #2] + strh r1, [r0, #0x10] + ldrh r1, [r2, #4] + strh r1, [r0, #0x12] + ldr r1, _080D4C3C + str r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 +_080D4C2A: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080D4C30: .4byte 0x020205AC +_080D4C34: .4byte 0x020380BE +_080D4C38: .4byte 0x03005B60 +_080D4C3C: .4byte 0x080D4C41 + thumb_func_end AnimTask_ShakeMon2 + + thumb_func_start AnimTask_ShakeMon2Step +AnimTask_ShakeMon2Step: @ 0x080D4C40 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _080D4C84 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r3, r0, r1 + ldrh r2, [r3, #0xe] + movs r4, #0xe + ldrsh r0, [r3, r4] + mov ip, r1 + cmp r0, #0 + bne _080D4CF8 + ldr r2, _080D4C88 + movs r7, #8 + ldrsh r1, [r3, r7] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, r0, r2 + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrh r5, [r3, #0x10] + movs r7, #0x10 + ldrsh r0, [r3, r7] + adds r7, r2, #0 + cmp r1, r0 + bne _080D4C8C + rsbs r0, r5, #0 + strh r0, [r4, #0x24] + b _080D4C8E + .align 2, 0 +_080D4C84: .4byte 0x03005B60 +_080D4C88: .4byte 0x020205AC +_080D4C8C: + strh r5, [r4, #0x24] +_080D4C8E: + lsls r3, r6, #2 + adds r1, r3, r6 + lsls r1, r1, #3 + add r1, ip + movs r0, #8 + ldrsh r2, [r1, r0] + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r4, r0, r7 + movs r0, #0x26 + ldrsh r2, [r4, r0] + mov r8, r2 + ldrh r5, [r1, #0x12] + movs r2, #0x12 + ldrsh r0, [r1, r2] + cmp r8, r0 + bne _080D4CB8 + rsbs r0, r5, #0 + strh r0, [r4, #0x26] + b _080D4CBA +_080D4CB8: + strh r5, [r4, #0x26] +_080D4CBA: + adds r0, r3, r6 + lsls r0, r0, #3 + mov r4, ip + adds r3, r0, r4 + ldrh r0, [r3, #0xc] + strh r0, [r3, #0xe] + ldrh r0, [r3, #0xa] + subs r0, #1 + strh r0, [r3, #0xa] + lsls r0, r0, #0x10 + asrs r2, r0, #0x10 + cmp r2, #0 + bne _080D4CFC + movs r0, #8 + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r2, [r0, #0x24] + movs r4, #8 + ldrsh r1, [r3, r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r2, [r0, #0x26] + adds r0, r6, #0 + bl DestroyAnimVisualTask + b _080D4CFC +_080D4CF8: + subs r0, r2, #1 + strh r0, [r3, #0xe] +_080D4CFC: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AnimTask_ShakeMon2Step + + thumb_func_start AnimTask_ShakeMonInPlace +AnimTask_ShakeMonInPlace: @ 0x080D4D08 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r4, _080D4D28 + ldrb r0, [r4] + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0xff + bne _080D4D2C + adds r0, r5, #0 + bl DestroyAnimVisualTask + b _080D4D7A + .align 2, 0 +_080D4D28: .4byte 0x020380BE +_080D4D2C: + ldr r0, _080D4D80 + lsls r1, r3, #4 + adds r1, r1, r3 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r0, [r4, #2] + ldrh r2, [r1, #0x24] + adds r0, r0, r2 + movs r2, #0 + strh r0, [r1, #0x24] + ldrh r0, [r4, #4] + ldrh r6, [r1, #0x26] + adds r0, r0, r6 + strh r0, [r1, #0x26] + ldr r0, _080D4D84 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + strh r3, [r1, #8] + strh r2, [r1, #0xa] + ldrh r0, [r4, #6] + strh r0, [r1, #0xc] + strh r2, [r1, #0xe] + ldrh r0, [r4, #8] + strh r0, [r1, #0x10] + movs r2, #2 + ldrsh r0, [r4, r2] + lsls r0, r0, #1 + strh r0, [r1, #0x12] + movs r6, #4 + ldrsh r0, [r4, r6] + lsls r0, r0, #1 + strh r0, [r1, #0x14] + ldr r2, _080D4D88 + str r2, [r1] + adds r0, r5, #0 + bl _call_via_r2 +_080D4D7A: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080D4D80: .4byte 0x020205AC +_080D4D84: .4byte 0x03005B60 +_080D4D88: .4byte 0x080D4D8D + thumb_func_end AnimTask_ShakeMonInPlace + + thumb_func_start AnimTask_ShakeMonInPlaceStep +AnimTask_ShakeMonInPlaceStep: @ 0x080D4D8C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _080D4DE4 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrh r2, [r4, #0xe] + movs r3, #0xe + ldrsh r0, [r4, r3] + adds r6, r1, #0 + cmp r0, #0 + beq _080D4DAA + b _080D4EBC +_080D4DAA: + ldrh r1, [r4, #0xa] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080D4DEC + ldr r2, _080D4DE8 + movs r0, #8 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r4, #0x12] + ldrh r3, [r0, #0x24] + adds r1, r1, r3 + strh r1, [r0, #0x24] + movs r0, #8 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r4, #0x14] + ldrh r3, [r0, #0x26] + adds r1, r1, r3 + strh r1, [r0, #0x26] + adds r3, r2, #0 + b _080D4E16 + .align 2, 0 +_080D4DE4: .4byte 0x03005B60 +_080D4DE8: .4byte 0x020205AC +_080D4DEC: + ldr r3, _080D4E78 + movs r0, #8 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r0, #0x24] + ldrh r2, [r4, #0x12] + subs r1, r1, r2 + strh r1, [r0, #0x24] + movs r2, #8 + ldrsh r1, [r4, r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r0, #0x26] + ldrh r2, [r4, #0x14] + subs r1, r1, r2 + strh r1, [r0, #0x26] +_080D4E16: + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r6 + ldrh r0, [r4, #0x10] + strh r0, [r4, #0xe] + ldrh r0, [r4, #0xa] + adds r2, r0, #1 + strh r2, [r4, #0xa] + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + movs r6, #0xc + ldrsh r1, [r4, r6] + cmp r0, r1 + blt _080D4EC0 + movs r0, #1 + ands r2, r0 + cmp r2, #0 + beq _080D4E7C + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + movs r2, #0x12 + ldrsh r0, [r4, r2] + lsrs r2, r0, #0x1f + adds r0, r0, r2 + asrs r0, r0, #1 + ldrh r6, [r1, #0x24] + adds r0, r0, r6 + strh r0, [r1, #0x24] + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + movs r2, #0x14 + ldrsh r0, [r4, r2] + lsrs r2, r0, #0x1f + adds r0, r0, r2 + asrs r0, r0, #1 + ldrh r3, [r1, #0x26] + adds r0, r0, r3 + strh r0, [r1, #0x26] + b _080D4EB4 + .align 2, 0 +_080D4E78: .4byte 0x020205AC +_080D4E7C: + movs r6, #8 + ldrsh r0, [r4, r6] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r3 + movs r0, #0x12 + ldrsh r1, [r4, r0] + lsrs r0, r1, #0x1f + adds r1, r1, r0 + asrs r1, r1, #1 + ldrh r0, [r2, #0x24] + subs r0, r0, r1 + strh r0, [r2, #0x24] + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r3 + movs r3, #0x14 + ldrsh r1, [r4, r3] + lsrs r0, r1, #0x1f + adds r1, r1, r0 + asrs r1, r1, #1 + ldrh r0, [r2, #0x26] + subs r0, r0, r1 + strh r0, [r2, #0x26] +_080D4EB4: + adds r0, r5, #0 + bl DestroyAnimVisualTask + b _080D4EC0 +_080D4EBC: + subs r0, r2, #1 + strh r0, [r4, #0xe] +_080D4EC0: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AnimTask_ShakeMonInPlaceStep + + thumb_func_start AnimTask_ShakeAndSinkMon +AnimTask_ShakeAndSinkMon: @ 0x080D4EC8 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r5, _080D4F18 + ldrb r0, [r5] + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080D4F1C + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r2, [r5, #2] + strh r2, [r1, #0x24] + ldr r2, _080D4F20 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r0, [r1, #8] + ldrh r0, [r5, #2] + strh r0, [r1, #0xa] + ldrh r0, [r5, #4] + strh r0, [r1, #0xc] + ldrh r0, [r5, #6] + strh r0, [r1, #0xe] + ldrh r0, [r5, #8] + strh r0, [r1, #0x10] + ldr r2, _080D4F24 + str r2, [r1] + adds r0, r4, #0 + bl _call_via_r2 + thumb_func_end AnimTask_ShakeAndSinkMon + + thumb_func_start sub_080D4F10 +sub_080D4F10: @ 0x080D4F10 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D4F18: .4byte 0x020380BE +_080D4F1C: .4byte 0x020205AC +_080D4F20: .4byte 0x03005B60 +_080D4F24: .4byte 0x080D4F29 + thumb_func_end sub_080D4F10 + + thumb_func_start AnimTask_ShakeAndSinkMonStep +AnimTask_ShakeAndSinkMonStep: @ 0x080D4F28 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r2, _080D4FB4 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r3, r0, r2 + ldrb r5, [r3, #8] + ldrh r4, [r3, #0xa] + ldrh r1, [r3, #0x18] + adds r0, r1, #1 + strh r0, [r3, #0x18] + movs r7, #0xc + ldrsh r0, [r3, r7] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + mov ip, r2 + ldr r7, _080D4FB8 + cmp r0, r1 + bne _080D4F7A + movs r0, #0 + strh r0, [r3, #0x18] + lsls r0, r5, #4 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r1, r0, r7 + ldrh r3, [r1, #0x24] + movs r0, #0x24 + ldrsh r2, [r1, r0] + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + cmp r2, r0 + bne _080D4F72 + rsbs r0, r2, #0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_080D4F72: + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + adds r0, r0, r3 + strh r0, [r1, #0x24] +_080D4F7A: + lsls r2, r6, #2 + adds r2, r2, r6 + lsls r2, r2, #3 + add r2, ip + strh r4, [r2, #0xa] + ldrh r1, [r2, #0xe] + ldrh r0, [r2, #0x1a] + adds r1, r1, r0 + strh r1, [r2, #0x1a] + lsls r0, r5, #4 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r7 + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + strh r1, [r0, #0x26] + ldrh r0, [r2, #0x10] + subs r0, #1 + strh r0, [r2, #0x10] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080D4FAC + adds r0, r6, #0 + bl DestroyAnimVisualTask +_080D4FAC: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D4FB4: .4byte 0x03005B60 +_080D4FB8: .4byte 0x020205AC + thumb_func_end AnimTask_ShakeAndSinkMonStep + + thumb_func_start AnimTask_TranslateMonElliptical +AnimTask_TranslateMonElliptical: @ 0x080D4FBC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r6, #1 + ldr r4, _080D5030 + ldrb r0, [r4] + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #5 + ble _080D4FE0 + movs r0, #5 + strh r0, [r4, #8] +_080D4FE0: + movs r1, #0 + movs r2, #8 + ldrsh r0, [r4, r2] + adds r3, r4, #0 + ldr r2, _080D5034 + mov ip, r2 + lsls r4, r5, #2 + ldr r2, _080D5038 + mov r8, r2 + cmp r1, r0 + bge _080D5006 + adds r2, r0, #0 +_080D4FF8: + lsls r0, r6, #0x19 + lsrs r6, r0, #0x18 + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, r2 + blt _080D4FF8 +_080D5006: + adds r0, r4, r5 + lsls r0, r0, #3 + add r0, ip + strh r7, [r0, #8] + ldrh r1, [r3, #2] + strh r1, [r0, #0xa] + ldrh r1, [r3, #4] + strh r1, [r0, #0xc] + ldrh r1, [r3, #6] + strh r1, [r0, #0xe] + strh r6, [r0, #0x10] + mov r1, r8 + str r1, [r0] + adds r0, r5, #0 + bl _call_via_r8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D5030: .4byte 0x020380BE +_080D5034: .4byte 0x03005B60 +_080D5038: .4byte 0x080D503D + thumb_func_end AnimTask_TranslateMonElliptical + + thumb_func_start sub_080D503C +sub_080D503C: @ 0x080D503C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r0, #0 + ldr r1, _080D50AC + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r5, r0, r1 + ldrb r4, [r5, #8] + movs r1, #0x12 + ldrsh r0, [r5, r1] + movs r2, #0xa + ldrsh r1, [r5, r2] + bl Sin + ldr r2, _080D50B0 + lsls r1, r4, #4 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r4, r1, r2 + strh r0, [r4, #0x24] + movs r1, #0x12 + ldrsh r0, [r5, r1] + movs r2, #0xc + ldrsh r1, [r5, r2] + bl Cos + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + ldrh r1, [r5, #0xc] + adds r0, r0, r1 + strh r0, [r4, #0x26] + ldrh r0, [r5, #0x10] + ldrh r1, [r5, #0x12] + adds r0, r0, r1 + movs r1, #0xff + ands r0, r1 + strh r0, [r5, #0x12] + cmp r0, #0 + bne _080D5094 + ldrh r0, [r5, #0xe] + subs r0, #1 + strh r0, [r5, #0xe] +_080D5094: + movs r2, #0xe + ldrsh r0, [r5, r2] + cmp r0, #0 + bne _080D50A6 + strh r0, [r4, #0x24] + strh r0, [r4, #0x26] + adds r0, r6, #0 + bl DestroyAnimVisualTask +_080D50A6: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080D50AC: .4byte 0x03005B60 +_080D50B0: .4byte 0x020205AC + thumb_func_end sub_080D503C + + thumb_func_start AnimTask_TranslateMonEllipticalRespectSide +AnimTask_TranslateMonEllipticalRespectSide: @ 0x080D50B4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080D50DC + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D50D0 + ldr r1, _080D50E0 + ldrh r0, [r1, #2] + rsbs r0, r0, #0 + strh r0, [r1, #2] +_080D50D0: + adds r0, r4, #0 + bl AnimTask_TranslateMonElliptical + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D50DC: .4byte 0x020380D6 +_080D50E0: .4byte 0x020380BE + thumb_func_end AnimTask_TranslateMonEllipticalRespectSide + + thumb_func_start DoHorizontalLunge +DoHorizontalLunge: @ 0x080D50E4 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080D510C + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D5114 + ldr r1, _080D5110 + ldrh r0, [r1, #2] + rsbs r0, r0, #0 + b _080D5118 + .align 2, 0 +_080D510C: .4byte 0x020380D6 +_080D5110: .4byte 0x020380BE +_080D5114: + ldr r1, _080D5144 + ldrh r0, [r1, #2] +_080D5118: + strh r0, [r4, #0x30] + ldrh r2, [r1] + movs r0, #0 + strh r2, [r4, #0x2e] + strh r0, [r4, #0x32] + ldr r1, _080D5148 + ldr r0, _080D514C + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + strh r0, [r4, #0x34] + strh r2, [r4, #0x36] + ldr r1, _080D5150 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _080D5154 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D5144: .4byte 0x020380BE +_080D5148: .4byte 0x02023E88 +_080D514C: .4byte 0x020380D6 +_080D5150: .4byte 0x080D5159 +_080D5154: .4byte 0x080A5EF9 + thumb_func_end DoHorizontalLunge + + thumb_func_start ReverseHorizontalLungeDirection +ReverseHorizontalLungeDirection: @ 0x080D5158 + push {lr} + ldrh r1, [r0, #0x36] + strh r1, [r0, #0x2e] + ldrh r1, [r0, #0x30] + rsbs r1, r1, #0 + strh r1, [r0, #0x30] + ldr r1, _080D5174 + str r1, [r0, #0x1c] + ldr r1, _080D5178 + bl StoreSpriteCallbackInData6 + pop {r0} + bx r0 + .align 2, 0 +_080D5174: .4byte 0x080A5EF9 +_080D5178: .4byte 0x080A34C5 + thumb_func_end ReverseHorizontalLungeDirection + + thumb_func_start DoVerticalDip +DoVerticalDip: @ 0x080D517C + push {r4, r5, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r5, _080D51BC + ldrb r0, [r5, #4] + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r2, [r5] + movs r1, #0 + strh r2, [r4, #0x2e] + strh r1, [r4, #0x30] + ldrh r1, [r5, #2] + strh r1, [r4, #0x32] + strh r0, [r4, #0x34] + strh r2, [r4, #0x36] + ldr r1, _080D51C0 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _080D51C4 + str r0, [r4, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D51BC: .4byte 0x020380BE +_080D51C0: .4byte 0x080D51C9 +_080D51C4: .4byte 0x080A5EF9 + thumb_func_end DoVerticalDip + + thumb_func_start ReverseVerticalDipDirection +ReverseVerticalDipDirection: @ 0x080D51C8 + push {lr} + ldrh r1, [r0, #0x36] + strh r1, [r0, #0x2e] + ldrh r1, [r0, #0x32] + rsbs r1, r1, #0 + strh r1, [r0, #0x32] + ldr r1, _080D51E4 + str r1, [r0, #0x1c] + ldr r1, _080D51E8 + bl StoreSpriteCallbackInData6 + pop {r0} + bx r0 + .align 2, 0 +_080D51E4: .4byte 0x080A5EF9 +_080D51E8: .4byte 0x080A34C5 + thumb_func_end ReverseVerticalDipDirection + + thumb_func_start SlideMonToOriginalPos +SlideMonToOriginalPos: @ 0x080D51EC + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r6, r0, #0 + ldr r0, _080D5204 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _080D5210 + ldr r1, _080D5208 + ldr r0, _080D520C + b _080D5214 + .align 2, 0 +_080D5204: .4byte 0x020380BE +_080D5208: .4byte 0x02023E88 +_080D520C: .4byte 0x020380D6 +_080D5210: + ldr r1, _080D5274 + ldr r0, _080D5278 +_080D5214: + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r7, [r0] + ldr r5, _080D527C + ldrh r0, [r5, #4] + movs r3, #0 + strh r0, [r6, #0x2e] + ldr r0, _080D5280 + lsls r4, r7, #4 + adds r4, r4, r7 + lsls r4, r4, #2 + adds r4, r4, r0 + ldrh r0, [r4, #0x24] + ldrh r1, [r4, #0x20] + adds r0, r0, r1 + strh r0, [r6, #0x30] + ldrh r0, [r4, #0x20] + strh r0, [r6, #0x32] + ldrh r0, [r4, #0x26] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r6, #0x34] + ldrh r0, [r4, #0x22] + strh r0, [r6, #0x36] + adds r0, r6, #0 + str r3, [sp] + bl InitSpriteDataForLinearTranslation + ldr r3, [sp] + strh r3, [r6, #0x34] + strh r3, [r6, #0x36] + ldrh r0, [r4, #0x24] + strh r0, [r6, #0x38] + ldrh r0, [r4, #0x26] + strh r0, [r6, #0x3a] + adds r2, r6, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + movs r1, #2 + ldrsh r0, [r5, r1] + cmp r0, #1 + bne _080D5284 + strh r3, [r6, #0x32] + b _080D528A + .align 2, 0 +_080D5274: .4byte 0x02023E88 +_080D5278: .4byte 0x020380D7 +_080D527C: .4byte 0x020380BE +_080D5280: .4byte 0x020205AC +_080D5284: + cmp r0, #2 + bne _080D528A + strh r3, [r6, #0x30] +_080D528A: + ldr r0, _080D52A0 + ldrh r1, [r0, #2] + lsls r0, r7, #8 + orrs r0, r1 + strh r0, [r6, #0x3c] + ldr r0, _080D52A4 + str r0, [r6, #0x1c] + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D52A0: .4byte 0x020380BE +_080D52A4: .4byte 0x080D52A9 + thumb_func_end SlideMonToOriginalPos + + thumb_func_start SlideMonToOriginalPosStep +SlideMonToOriginalPosStep: @ 0x080D52A8 + push {r4, r5, r6, lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x3c] + lsls r1, r0, #0x18 + lsrs r4, r1, #0x18 + adds r5, r4, #0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080D52E4 + adds r3, r1, r0 + ldrh r0, [r2, #0x2e] + movs r6, #0x2e + ldrsh r1, [r2, r6] + cmp r1, #0 + bne _080D52E8 + cmp r4, #1 + bhi _080D52D2 + strh r1, [r3, #0x24] +_080D52D2: + cmp r5, #2 + beq _080D52DA + cmp r5, #0 + bne _080D52DC +_080D52DA: + strh r1, [r3, #0x26] +_080D52DC: + adds r0, r2, #0 + bl DestroyAnimSprite + b _080D5312 + .align 2, 0 +_080D52E4: .4byte 0x020205AC +_080D52E8: + subs r0, #1 + strh r0, [r2, #0x2e] + ldrh r1, [r2, #0x30] + ldrh r0, [r2, #0x34] + adds r1, r1, r0 + strh r1, [r2, #0x34] + ldrh r0, [r2, #0x32] + ldrh r4, [r2, #0x36] + adds r0, r0, r4 + strh r0, [r2, #0x36] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + ldrh r6, [r2, #0x38] + adds r1, r1, r6 + strh r1, [r3, #0x24] + ldrh r0, [r2, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + ldrh r2, [r2, #0x3a] + adds r0, r0, r2 + strh r0, [r3, #0x26] +_080D5312: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end SlideMonToOriginalPosStep + + thumb_func_start SlideMonToOffset +SlideMonToOffset: @ 0x080D5318 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r0, _080D532C + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _080D5334 + ldr r0, _080D5330 + b _080D5336 + .align 2, 0 +_080D532C: .4byte 0x020380BE +_080D5330: .4byte 0x020380D6 +_080D5334: + ldr r0, _080D53B4 +_080D5336: + ldrb r2, [r0] + ldr r0, _080D53B8 + adds r0, r2, r0 + ldrb r6, [r0] + adds r0, r2, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D5360 + ldr r1, _080D53BC + ldrh r0, [r1, #2] + rsbs r0, r0, #0 + strh r0, [r1, #2] + movs r2, #6 + ldrsh r0, [r1, r2] + cmp r0, #1 + bne _080D5360 + ldrh r0, [r1, #4] + rsbs r0, r0, #0 + strh r0, [r1, #4] +_080D5360: + ldr r2, _080D53BC + ldrh r0, [r2, #8] + movs r4, #0 + strh r0, [r5, #0x2e] + ldr r0, _080D53C0 + lsls r1, r6, #4 + adds r1, r1, r6 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r0, [r1, #0x20] + strh r0, [r5, #0x30] + ldrh r0, [r2, #2] + ldrh r3, [r1, #0x20] + adds r0, r0, r3 + strh r0, [r5, #0x32] + ldrh r0, [r1, #0x22] + strh r0, [r5, #0x34] + ldrh r0, [r2, #4] + ldrh r1, [r1, #0x22] + adds r0, r0, r1 + strh r0, [r5, #0x36] + adds r0, r5, #0 + bl InitSpriteDataForLinearTranslation + strh r4, [r5, #0x34] + strh r4, [r5, #0x36] + strh r6, [r5, #0x38] + adds r2, r5, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r1, _080D53C4 + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _080D53C8 + str r0, [r5, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080D53B4: .4byte 0x020380D7 +_080D53B8: .4byte 0x02023E88 +_080D53BC: .4byte 0x020380BE +_080D53C0: .4byte 0x020205AC +_080D53C4: .4byte 0x080A34C5 +_080D53C8: .4byte 0x080A5F49 + thumb_func_end SlideMonToOffset + + thumb_func_start sub_080D53CC +sub_080D53CC: @ 0x080D53CC + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r2, r6, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080D53EC + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _080D53F4 + ldr r0, _080D53F0 + b _080D53F6 + .align 2, 0 +_080D53EC: .4byte 0x020380BE +_080D53F0: .4byte 0x020380D6 +_080D53F4: + ldr r0, _080D5474 +_080D53F6: + ldrb r1, [r0] + ldr r0, _080D5478 + adds r0, r1, r0 + ldrb r7, [r0] + adds r0, r1, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D5420 + ldr r1, _080D547C + ldrh r0, [r1, #2] + rsbs r0, r0, #0 + strh r0, [r1, #2] + movs r2, #6 + ldrsh r0, [r1, r2] + cmp r0, #1 + bne _080D5420 + ldrh r0, [r1, #4] + rsbs r0, r0, #0 + strh r0, [r1, #4] +_080D5420: + ldr r5, _080D547C + ldrh r0, [r5, #8] + strh r0, [r6, #0x2e] + ldr r0, _080D5480 + lsls r4, r7, #4 + adds r4, r4, r7 + lsls r4, r4, #2 + adds r4, r4, r0 + ldrh r0, [r4, #0x24] + ldrh r1, [r4, #0x20] + adds r0, r0, r1 + strh r0, [r6, #0x30] + ldrh r1, [r5, #2] + adds r0, r0, r1 + strh r0, [r6, #0x32] + ldrh r0, [r4, #0x26] + ldrh r2, [r4, #0x22] + adds r0, r0, r2 + strh r0, [r6, #0x34] + ldrh r1, [r5, #4] + adds r0, r0, r1 + strh r0, [r6, #0x36] + adds r0, r6, #0 + bl InitSpriteDataForLinearTranslation + ldrh r0, [r4, #0x24] + lsls r0, r0, #8 + strh r0, [r6, #0x34] + ldrh r0, [r4, #0x26] + lsls r0, r0, #8 + strh r0, [r6, #0x36] + strh r7, [r6, #0x38] + ldrh r0, [r5, #0xa] + strh r0, [r6, #0x3a] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080D5488 + ldr r1, _080D5484 + adds r0, r6, #0 + bl StoreSpriteCallbackInData6 + b _080D5490 + .align 2, 0 +_080D5474: .4byte 0x020380D7 +_080D5478: .4byte 0x02023E88 +_080D547C: .4byte 0x020380BE +_080D5480: .4byte 0x020205AC +_080D5484: .4byte 0x080A34C5 +_080D5488: + ldr r1, _080D549C + adds r0, r6, #0 + bl StoreSpriteCallbackInData6 +_080D5490: + ldr r0, _080D54A0 + str r0, [r6, #0x1c] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D549C: .4byte 0x080D54A5 +_080D54A0: .4byte 0x080A5F49 + thumb_func_end sub_080D53CC + + thumb_func_start sub_080D54A4 +sub_080D54A4: @ 0x080D54A4 + push {r4, lr} + ldr r4, _080D54D0 + movs r1, #0x38 + ldrsh r2, [r0, r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r4 + movs r3, #0 + strh r3, [r1, #0x24] + movs r1, #0x38 + ldrsh r2, [r0, r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r4 + strh r3, [r1, #0x26] + bl DestroyAnimSprite + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D54D0: .4byte 0x020205AC + thumb_func_end sub_080D54A4 + + thumb_func_start AnimTask_WindUpLunge +AnimTask_WindUpLunge: @ 0x080D54D4 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r5, _080D5558 + movs r0, #6 + ldrsh r1, [r5, r0] + movs r0, #0x80 + lsls r0, r0, #8 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + ldr r0, _080D555C + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D5506 + ldrh r0, [r5, #2] + rsbs r0, r0, #0 + strh r0, [r5, #2] + ldrh r0, [r5, #0xa] + rsbs r0, r0, #0 + strh r0, [r5, #0xa] +_080D5506: + ldrb r0, [r5] + bl GetAnimBattlerSpriteId + ldr r1, _080D5560 + lsls r4, r6, #2 + adds r4, r4, r6 + lsls r4, r4, #3 + adds r4, r4, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #8] + movs r1, #2 + ldrsh r0, [r5, r1] + lsls r0, r0, #8 + movs r2, #6 + ldrsh r1, [r5, r2] + bl __divsi3 + strh r0, [r4, #0xa] + ldrh r0, [r5, #4] + strh r0, [r4, #0xc] + ldrh r0, [r5, #6] + strh r0, [r4, #0xe] + ldrh r0, [r5, #8] + strh r0, [r4, #0x10] + movs r1, #0xa + ldrsh r0, [r5, r1] + lsls r0, r0, #8 + movs r2, #0xc + ldrsh r1, [r5, r2] + bl __divsi3 + strh r0, [r4, #0x12] + ldrh r0, [r5, #0xc] + strh r0, [r4, #0x14] + strh r7, [r4, #0x16] + ldr r0, _080D5564 + str r0, [r4] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D5558: .4byte 0x020380BE +_080D555C: .4byte 0x020380D6 +_080D5560: .4byte 0x03005B60 +_080D5564: .4byte 0x080D5569 + thumb_func_end AnimTask_WindUpLunge + + thumb_func_start AnimTask_WindUpLungePart1 +AnimTask_WindUpLungePart1: @ 0x080D5568 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080D55C0 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r5, r1, r2 + ldrb r1, [r5, #8] + ldrh r0, [r5, #0xa] + ldrh r2, [r5, #0x1e] + adds r0, r0, r2 + strh r0, [r5, #0x1e] + ldr r2, _080D55C4 + lsls r4, r1, #4 + adds r4, r4, r1 + lsls r4, r4, #2 + adds r4, r4, r2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + strh r0, [r4, #0x24] + ldrh r0, [r5, #0x1c] + lsrs r0, r0, #8 + movs r2, #0xc + ldrsh r1, [r5, r2] + bl Sin + strh r0, [r4, #0x26] + ldrh r0, [r5, #0x16] + ldrh r1, [r5, #0x1c] + adds r0, r0, r1 + strh r0, [r5, #0x1c] + ldrh r0, [r5, #0xe] + subs r0, #1 + strh r0, [r5, #0xe] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080D55B8 + ldr r0, _080D55C8 + str r0, [r5] +_080D55B8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D55C0: .4byte 0x03005B60 +_080D55C4: .4byte 0x020205AC +_080D55C8: .4byte 0x080D55CD + thumb_func_end AnimTask_WindUpLungePart1 + + thumb_func_start AnimTask_WindUpLungePart2 +AnimTask_WindUpLungePart2: @ 0x080D55CC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + ldr r1, _080D55F0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrh r1, [r4, #0x10] + movs r2, #0x10 + ldrsh r0, [r4, r2] + cmp r0, #0 + ble _080D55F4 + subs r0, r1, #1 + strh r0, [r4, #0x10] + b _080D5628 + .align 2, 0 +_080D55F0: .4byte 0x03005B60 +_080D55F4: + ldrb r0, [r4, #8] + ldrh r2, [r4, #0x12] + ldrh r1, [r4, #0x20] + adds r2, r2, r1 + strh r2, [r4, #0x20] + ldr r3, _080D5630 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + lsls r2, r2, #0x10 + asrs r2, r2, #0x18 + ldrh r0, [r4, #0x1e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + adds r2, r2, r0 + strh r2, [r1, #0x24] + ldrh r0, [r4, #0x14] + subs r0, #1 + strh r0, [r4, #0x14] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080D5628 + adds r0, r5, #0 + bl DestroyAnimVisualTask +_080D5628: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D5630: .4byte 0x020205AC + thumb_func_end AnimTask_WindUpLungePart2 + + thumb_func_start sub_080D5634 +sub_080D5634: @ 0x080D5634 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _080D5658 + movs r2, #0 + ldrsh r0, [r1, r2] + cmp r0, #2 + beq _080D5662 + cmp r0, #2 + bgt _080D565C + cmp r0, #0 + blt _080D5694 + ldrb r0, [r1] + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + b _080D569C + .align 2, 0 +_080D5658: .4byte 0x020380BE +_080D565C: + cmp r0, #3 + beq _080D566C + b _080D5694 +_080D5662: + ldr r5, _080D5668 + b _080D566E + .align 2, 0 +_080D5668: .4byte 0x020380D6 +_080D566C: + ldr r5, _080D568C +_080D566E: + ldrb r0, [r5] + movs r4, #2 + eors r0, r4 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D5694 + ldr r1, _080D5690 + ldrb r0, [r5] + eors r0, r4 + adds r0, r0, r1 + ldrb r2, [r0] + b _080D569C + .align 2, 0 +_080D568C: .4byte 0x020380D7 +_080D5690: .4byte 0x02023E88 +_080D5694: + adds r0, r6, #0 + bl DestroyAnimVisualTask + b _080D56DC +_080D569C: + ldr r1, _080D56BC + lsls r4, r6, #2 + adds r0, r4, r6 + lsls r0, r0, #3 + adds r5, r0, r1 + strh r2, [r5, #8] + ldr r0, _080D56C0 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D56C8 + ldr r0, _080D56C4 + ldrh r0, [r0, #2] + b _080D56CE + .align 2, 0 +_080D56BC: .4byte 0x03005B60 +_080D56C0: .4byte 0x020380D7 +_080D56C4: .4byte 0x020380BE +_080D56C8: + ldr r0, _080D56E4 + ldrh r0, [r0, #2] + rsbs r0, r0, #0 +_080D56CE: + strh r0, [r5, #0xa] + ldr r0, _080D56E8 + adds r1, r4, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080D56EC + str r0, [r1] +_080D56DC: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080D56E4: .4byte 0x020380BE +_080D56E8: .4byte 0x03005B60 +_080D56EC: .4byte 0x080D56F1 + thumb_func_end sub_080D5634 + + thumb_func_start sub_080D56F0 +sub_080D56F0: @ 0x080D56F0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080D5734 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrb r2, [r1, #8] + ldr r3, _080D5738 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r1, #0xa] + ldrh r2, [r0, #0x24] + adds r1, r1, r2 + strh r1, [r0, #0x24] + movs r2, #0x24 + ldrsh r1, [r0, r2] + movs r2, #0x20 + ldrsh r0, [r0, r2] + adds r1, r1, r0 + adds r1, #0x20 + movs r0, #0x98 + lsls r0, r0, #1 + cmp r1, r0 + bls _080D572E + adds r0, r4, #0 + bl DestroyAnimVisualTask +_080D572E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D5734: .4byte 0x03005B60 +_080D5738: .4byte 0x020205AC + thumb_func_end sub_080D56F0 + + thumb_func_start AnimTask_SwayMon +AnimTask_SwayMon: @ 0x080D573C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r6, _080D578C + ldrb r0, [r6] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D5758 + ldr r1, _080D5790 + ldrh r0, [r1, #2] + rsbs r0, r0, #0 + strh r0, [r1, #2] +_080D5758: + ldr r4, _080D5790 + ldrb r0, [r4, #8] + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080D5794 + lsls r3, r5, #2 + adds r1, r3, r5 + lsls r1, r1, #3 + adds r2, r1, r2 + ldrh r1, [r4] + strh r1, [r2, #8] + ldrh r1, [r4, #2] + strh r1, [r2, #0xa] + ldrh r1, [r4, #4] + strh r1, [r2, #0xc] + ldrh r1, [r4, #6] + strh r1, [r2, #0xe] + strh r0, [r2, #0x10] + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080D5798 + ldrb r0, [r6] + b _080D579C + .align 2, 0 +_080D578C: .4byte 0x020380D6 +_080D5790: .4byte 0x020380BE +_080D5794: .4byte 0x03005B60 +_080D5798: + ldr r0, _080D57B4 + ldrb r0, [r0] +_080D579C: + strh r0, [r2, #0x12] + ldr r1, _080D57B8 + adds r0, r3, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #1 + strh r1, [r0, #0x20] + ldr r1, _080D57BC + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080D57B4: .4byte 0x020380D7 +_080D57B8: .4byte 0x03005B60 +_080D57BC: .4byte 0x080D57C1 + thumb_func_end AnimTask_SwayMon + + thumb_func_start AnimTask_SwayMonStep +AnimTask_SwayMonStep: @ 0x080D57C0 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _080D5810 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrb r7, [r4, #0x10] + ldrh r0, [r4, #0xc] + ldrh r1, [r4, #0x1c] + adds r0, r0, r1 + lsls r1, r0, #0x10 + strh r0, [r4, #0x1c] + lsrs r1, r1, #0x18 + mov r8, r1 + mov r0, r8 + movs r2, #0xa + ldrsh r1, [r4, r2] + bl Sin + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + mov sb, r5 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080D5818 + ldr r0, _080D5814 + lsls r2, r7, #4 + adds r1, r2, r7 + lsls r1, r1, #2 + adds r1, r1, r0 + strh r5, [r1, #0x24] + mov sb, r0 + adds r4, r2, #0 + b _080D585E + .align 2, 0 +_080D5810: .4byte 0x03005B60 +_080D5814: .4byte 0x020205AC +_080D5818: + ldrb r0, [r4, #0x12] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080D5840 + ldr r1, _080D583C + lsls r2, r7, #4 + adds r0, r2, r7 + lsls r0, r0, #2 + adds r3, r0, r1 + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + mov sb, r1 + adds r4, r2, #0 + cmp r0, #0 + bge _080D585C + b _080D585A + .align 2, 0 +_080D583C: .4byte 0x020205AC +_080D5840: + ldr r1, _080D58E0 + lsls r2, r7, #4 + adds r0, r2, r7 + lsls r0, r0, #2 + adds r3, r0, r1 + mov r4, sb + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + mov sb, r1 + adds r4, r2, #0 + cmp r0, #0 + bge _080D585A + rsbs r0, r0, #0 +_080D585A: + rsbs r0, r0, #0 +_080D585C: + strh r0, [r3, #0x26] +_080D585E: + mov r5, r8 + cmp r5, #0x7f + bls _080D5880 + ldr r1, _080D58E4 + lsls r2, r6, #2 + adds r0, r2, r6 + lsls r0, r0, #3 + adds r3, r0, r1 + movs r5, #0x1e + ldrsh r0, [r3, r5] + adds r5, r1, #0 + cmp r0, #0 + bne _080D5880 + movs r1, #0x20 + ldrsh r0, [r3, r1] + cmp r0, #1 + beq _080D58A2 +_080D5880: + mov r2, r8 + cmp r2, #0x7e + bhi _080D58D4 + ldr r1, _080D58E4 + lsls r2, r6, #2 + adds r0, r2, r6 + lsls r0, r0, #3 + adds r3, r0, r1 + movs r5, #0x1e + ldrsh r0, [r3, r5] + adds r5, r1, #0 + cmp r0, #1 + bne _080D58D4 + movs r1, #0x20 + ldrsh r0, [r3, r1] + cmp r0, #0 + bne _080D58D4 +_080D58A2: + adds r1, r2, r6 + lsls r1, r1, #3 + adds r1, r1, r5 + ldrh r0, [r1, #0x1e] + movs r2, #1 + eors r0, r2 + strh r0, [r1, #0x1e] + ldrh r0, [r1, #0x20] + eors r0, r2 + strh r0, [r1, #0x20] + ldrh r0, [r1, #0xe] + subs r0, #1 + strh r0, [r1, #0xe] + lsls r0, r0, #0x10 + asrs r3, r0, #0x10 + cmp r3, #0 + bne _080D58D4 + adds r0, r4, r7 + lsls r0, r0, #2 + add r0, sb + strh r3, [r0, #0x24] + strh r3, [r0, #0x26] + adds r0, r6, #0 + bl DestroyAnimVisualTask +_080D58D4: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D58E0: .4byte 0x020205AC +_080D58E4: .4byte 0x03005B60 + thumb_func_end AnimTask_SwayMonStep + + thumb_func_start AnimTask_ScaleMonAndRestore +AnimTask_ScaleMonAndRestore: @ 0x080D58E8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r6, _080D5934 + ldrb r0, [r6, #6] + bl GetAnimBattlerSpriteId + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldrb r1, [r6, #8] + adds r0, r5, #0 + bl PrepareBattlerSpriteForRotScale + ldr r1, _080D5938 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r6] + strh r1, [r0, #8] + ldrh r1, [r6, #2] + strh r1, [r0, #0xa] + ldrh r1, [r6, #4] + strh r1, [r0, #0xc] + ldrh r1, [r6, #4] + strh r1, [r0, #0xe] + strh r5, [r0, #0x10] + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r0, #0x1c] + strh r1, [r0, #0x1e] + ldr r1, _080D593C + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080D5934: .4byte 0x020380BE +_080D5938: .4byte 0x03005B60 +_080D593C: .4byte 0x080D5941 + thumb_func_end AnimTask_ScaleMonAndRestore + + thumb_func_start AnimTask_ScaleMonAndRestoreStep +AnimTask_ScaleMonAndRestoreStep: @ 0x080D5940 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + ldr r1, _080D59A0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrh r0, [r4, #8] + ldrh r1, [r4, #0x1c] + adds r0, r0, r1 + strh r0, [r4, #0x1c] + ldrh r0, [r4, #0xa] + ldrh r3, [r4, #0x1e] + adds r0, r0, r3 + strh r0, [r4, #0x1e] + ldrb r0, [r4, #0x10] + adds r6, r0, #0 + movs r0, #0x1c + ldrsh r1, [r4, r0] + movs r3, #0x1e + ldrsh r2, [r4, r3] + adds r0, r6, #0 + movs r3, #0 + bl SetSpriteRotScale + ldrh r0, [r4, #0xc] + subs r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + cmp r1, #0 + bne _080D59B0 + ldrh r2, [r4, #0xe] + movs r3, #0xe + ldrsh r0, [r4, r3] + cmp r0, #0 + ble _080D59A4 + ldrh r0, [r4, #8] + rsbs r0, r0, #0 + strh r0, [r4, #8] + ldrh r0, [r4, #0xa] + rsbs r0, r0, #0 + strh r0, [r4, #0xa] + strh r2, [r4, #0xc] + strh r1, [r4, #0xe] + b _080D59B0 + .align 2, 0 +_080D59A0: .4byte 0x03005B60 +_080D59A4: + adds r0, r6, #0 + bl ResetSpriteRotScale + adds r0, r5, #0 + bl DestroyAnimVisualTask +_080D59B0: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AnimTask_ScaleMonAndRestoreStep + + thumb_func_start sub_080D59B8 +sub_080D59B8: @ 0x080D59B8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r4, _080D59F4 + ldrb r0, [r4, #4] + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r1, #0 + bl PrepareBattlerSpriteForRotScale + ldr r1, _080D59F8 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r2, r0, r1 + movs r1, #0 + strh r1, [r2, #0xa] + ldrh r0, [r4] + strh r0, [r2, #0xc] + movs r3, #6 + ldrsh r0, [r4, r3] + cmp r0, #1 + beq _080D59FC + strh r1, [r2, #0xe] + b _080D5A08 + .align 2, 0 +_080D59F4: .4byte 0x020380BE +_080D59F8: .4byte 0x03005B60 +_080D59FC: + ldrh r0, [r4] + ldrh r1, [r4, #2] + adds r3, r0, #0 + muls r3, r1, r3 + adds r0, r3, #0 + strh r0, [r2, #0xe] +_080D5A08: + ldr r1, _080D5A34 + lsls r4, r7, #2 + adds r0, r4, r7 + lsls r0, r0, #3 + adds r5, r0, r1 + ldr r6, _080D5A38 + ldrh r0, [r6, #2] + strh r0, [r5, #0x10] + mov r0, r8 + strh r0, [r5, #0x12] + ldrh r0, [r6, #6] + strh r0, [r5, #0x14] + bl IsContest + lsls r0, r0, #0x18 + mov r8, r4 + cmp r0, #0 + beq _080D5A3C + movs r0, #1 + strh r0, [r5, #0x16] + b _080D5A60 + .align 2, 0 +_080D5A34: .4byte 0x03005B60 +_080D5A38: .4byte 0x020380BE +_080D5A3C: + movs r1, #4 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _080D5A4C + ldr r0, _080D5A48 + b _080D5A4E + .align 2, 0 +_080D5A48: .4byte 0x020380D6 +_080D5A4C: + ldr r0, _080D5AA4 +_080D5A4E: + ldrb r0, [r0] + bl GetBattlerSide + movs r1, #0 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080D5A5E + movs r1, #1 +_080D5A5E: + strh r1, [r5, #0x16] +_080D5A60: + ldr r0, _080D5AA8 + mov r2, r8 + adds r1, r2, r7 + lsls r1, r1, #3 + adds r4, r1, r0 + movs r3, #0x16 + ldrsh r0, [r4, r3] + cmp r0, #0 + beq _080D5A8C + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080D5A8C + movs r1, #0xe + ldrsh r0, [r4, r1] + rsbs r0, r0, #0 + strh r0, [r4, #0xe] + movs r2, #0x10 + ldrsh r0, [r4, r2] + rsbs r0, r0, #0 + strh r0, [r4, #0x10] +_080D5A8C: + ldr r0, _080D5AA8 + mov r3, r8 + adds r1, r3, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080D5AAC + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D5AA4: .4byte 0x020380D7 +_080D5AA8: .4byte 0x03005B60 +_080D5AAC: .4byte 0x080D5B8D + thumb_func_end sub_080D59B8 + + thumb_func_start sub_080D5AB0 +sub_080D5AB0: @ 0x080D5AB0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r4, _080D5AEC + ldrb r0, [r4, #4] + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r1, #0 + bl PrepareBattlerSpriteForRotScale + ldr r1, _080D5AF0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #0xa] + ldrh r1, [r4] + strh r1, [r0, #0xc] + movs r1, #4 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080D5AF8 + ldr r0, _080D5AF4 + b _080D5AFA + .align 2, 0 +_080D5AEC: .4byte 0x020380BE +_080D5AF0: .4byte 0x03005B60 +_080D5AF4: .4byte 0x020380D6 +_080D5AF8: + ldr r0, _080D5B28 +_080D5AFA: + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D5B0C + ldrh r0, [r4, #2] + rsbs r0, r0, #0 + strh r0, [r4, #2] +_080D5B0C: + ldr r0, _080D5B2C + movs r2, #6 + ldrsh r1, [r0, r2] + adds r6, r0, #0 + cmp r1, #1 + beq _080D5B34 + ldr r2, _080D5B30 + lsls r3, r5, #2 + adds r0, r3, r5 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r1, #0 + strh r1, [r0, #0xe] + b _080D5B4E + .align 2, 0 +_080D5B28: .4byte 0x020380D7 +_080D5B2C: .4byte 0x020380BE +_080D5B30: .4byte 0x03005B60 +_080D5B34: + ldr r3, _080D5B84 + lsls r4, r5, #2 + adds r0, r4, r5 + lsls r0, r0, #3 + adds r0, r0, r3 + ldrh r2, [r6] + ldrh r1, [r6, #2] + adds r7, r2, #0 + muls r7, r1, r7 + adds r1, r7, #0 + strh r1, [r0, #0xe] + adds r2, r3, #0 + adds r3, r4, #0 +_080D5B4E: + adds r1, r3, r5 + lsls r1, r1, #3 + adds r1, r1, r2 + ldrh r0, [r6, #2] + strh r0, [r1, #0x10] + mov r0, r8 + strh r0, [r1, #0x12] + ldrh r0, [r6, #6] + strh r0, [r1, #0x14] + movs r0, #1 + strh r0, [r1, #0x16] + movs r2, #0xe + ldrsh r0, [r1, r2] + rsbs r0, r0, #0 + strh r0, [r1, #0xe] + movs r7, #0x10 + ldrsh r0, [r1, r7] + rsbs r0, r0, #0 + strh r0, [r1, #0x10] + ldr r0, _080D5B88 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D5B84: .4byte 0x03005B60 +_080D5B88: .4byte 0x080D5B8D + thumb_func_end sub_080D5AB0 + + thumb_func_start sub_080D5B8C +sub_080D5B8C: @ 0x080D5B8C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _080D5BE4 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrh r0, [r4, #0x10] + ldrh r1, [r4, #0xe] + adds r0, r0, r1 + strh r0, [r4, #0xe] + ldrb r0, [r4, #0x12] + movs r2, #0x80 + lsls r2, r2, #1 + ldrh r3, [r4, #0xe] + adds r1, r2, #0 + bl SetSpriteRotScale + movs r2, #0x16 + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _080D5BC0 + ldrb r0, [r4, #0x12] + bl SetBattlerSpriteYOffsetFromRotation +_080D5BC0: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0xc + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _080D5C06 + movs r1, #0x14 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _080D5BE8 + cmp r0, #1 + ble _080D5BEE + cmp r0, #2 + beq _080D5BF6 + b _080D5BEE + .align 2, 0 +_080D5BE4: .4byte 0x03005B60 +_080D5BE8: + ldrb r0, [r4, #0x12] + bl ResetSpriteRotScale +_080D5BEE: + adds r0, r5, #0 + bl DestroyAnimVisualTask + b _080D5C06 +_080D5BF6: + movs r0, #0 + strh r0, [r4, #0xa] + movs r2, #0x10 + ldrsh r0, [r4, r2] + rsbs r0, r0, #0 + strh r0, [r4, #0x10] + movs r0, #1 + strh r0, [r4, #0x14] +_080D5C06: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_080D5B8C + + thumb_func_start sub_080D5C0C +sub_080D5C0C: @ 0x080D5C0C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _080D5C38 + movs r2, #0 + ldrsh r1, [r0, r2] + mov r8, r0 + cmp r1, #0 + bne _080D5C44 + ldr r4, _080D5C3C + lsls r5, r7, #2 + adds r0, r5, r7 + lsls r0, r0, #3 + adds r6, r0, r4 + ldr r0, _080D5C40 + ldrh r0, [r0] + movs r1, #0xc + bl __udivsi3 + b _080D5C58 + .align 2, 0 +_080D5C38: .4byte 0x020380BE +_080D5C3C: .4byte 0x03005B60 +_080D5C40: .4byte 0x020380A8 +_080D5C44: + ldr r4, _080D5CE0 + lsls r5, r7, #2 + adds r0, r5, r7 + lsls r0, r0, #3 + adds r6, r0, r4 + ldr r0, _080D5CE4 + ldr r0, [r0] + movs r1, #0xc + bl __divsi3 +_080D5C58: + strh r0, [r6, #0x26] + lsls r0, r0, #0x10 + adds r1, r4, #0 + cmp r0, #0 + bgt _080D5C66 + movs r0, #1 + strh r0, [r6, #0x26] +_080D5C66: + movs r2, #0x26 + ldrsh r0, [r6, r2] + cmp r0, #0x10 + ble _080D5C72 + movs r0, #0x10 + strh r0, [r6, #0x26] +_080D5C72: + adds r4, r5, r7 + lsls r4, r4, #3 + adds r4, r4, r1 + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsrs r0, r1, #0x1f + adds r1, r1, r0 + asrs r1, r1, #1 + movs r5, #0 + strh r1, [r4, #0x24] + ldrh r2, [r4, #0x26] + movs r0, #1 + ands r0, r2 + adds r1, r1, r0 + strh r1, [r4, #0x22] + strh r5, [r4, #0x20] + mov r1, r8 + ldrh r0, [r1, #6] + strh r0, [r4, #0x1c] + ldrh r0, [r1, #8] + strh r0, [r4, #0x1e] + movs r0, #1 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x16] + ldr r2, _080D5CE8 + movs r0, #0x16 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0, #0x24] + strh r0, [r4, #0x18] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0, #0x26] + strh r0, [r4, #0x1a] + strh r5, [r4, #8] + mov r1, r8 + ldrh r0, [r1, #2] + strh r0, [r4, #0xa] + ldrh r0, [r1, #4] + strh r0, [r4, #0xc] + ldr r0, _080D5CEC + str r0, [r4] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D5CE0: .4byte 0x03005B60 +_080D5CE4: .4byte 0x020380A4 +_080D5CE8: .4byte 0x020205AC +_080D5CEC: .4byte 0x080D5CF1 + thumb_func_end sub_080D5C0C + + thumb_func_start sub_080D5CF0 +sub_080D5CF0: @ 0x080D5CF0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080D5D44 + adds r3, r0, r1 + ldrh r0, [r3, #8] + adds r0, #1 + strh r0, [r3, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0xa + ldrsh r1, [r3, r2] + cmp r0, r1 + ble _080D5DCE + movs r0, #0 + strh r0, [r3, #8] + ldrh r0, [r3, #0x20] + adds r1, r0, #1 + movs r0, #1 + ands r1, r0 + strh r1, [r3, #0x20] + movs r2, #0x1c + ldrsh r0, [r3, r2] + cmp r0, #0 + beq _080D5D62 + cmp r1, #0 + beq _080D5D4C + ldr r2, _080D5D48 + movs r0, #0x16 + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r3, #0x22] + ldrh r2, [r3, #0x18] + adds r1, r1, r2 + b _080D5D60 + .align 2, 0 +_080D5D44: .4byte 0x03005B60 +_080D5D48: .4byte 0x020205AC +_080D5D4C: + ldr r2, _080D5D88 + movs r0, #0x16 + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r3, #0x18] + ldrh r2, [r3, #0x24] + subs r1, r1, r2 +_080D5D60: + strh r1, [r0, #0x24] +_080D5D62: + movs r1, #0x1e + ldrsh r0, [r3, r1] + cmp r0, #0 + beq _080D5D9C + movs r2, #0x20 + ldrsh r4, [r3, r2] + cmp r4, #0 + beq _080D5D8C + ldr r2, _080D5D88 + movs r0, #0x16 + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r3, #0x26] + strh r1, [r0, #0x26] + b _080D5D9C + .align 2, 0 +_080D5D88: .4byte 0x020205AC +_080D5D8C: + ldr r2, _080D5DD4 + movs r0, #0x16 + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r4, [r0, #0x26] +_080D5D9C: + ldrh r0, [r3, #0xc] + subs r0, #1 + strh r0, [r3, #0xc] + lsls r0, r0, #0x10 + asrs r4, r0, #0x10 + cmp r4, #0 + bne _080D5DCE + ldr r2, _080D5DD4 + movs r0, #0x16 + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r4, [r0, #0x24] + movs r0, #0x16 + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r4, [r0, #0x26] + adds r0, r5, #0 + bl DestroyAnimVisualTask +_080D5DCE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D5DD4: .4byte 0x020205AC + thumb_func_end sub_080D5CF0 + diff --git a/asm/battle_anim_mons.s b/asm/battle_anim_mons.s new file mode 100644 index 0000000..6b91338 --- /dev/null +++ b/asm/battle_anim_mons.s @@ -0,0 +1,6842 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start GetBattlerSpriteCoord +GetBattlerSpriteCoord: @ 0x080A5534 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A5552 + cmp r4, #3 + bne _080A5552 + cmp r5, #3 + bne _080A5552 + movs r4, #1 +_080A5552: + cmp r4, #4 + bhi _080A55C8 + lsls r0, r4, #2 + ldr r1, _080A5560 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080A5560: .4byte 0x080A5564 +_080A5564: @ jump table + .4byte _080A5578 @ case 0 + .4byte _080A55A0 @ case 1 + .4byte _080A5578 @ case 2 + .4byte _080A55C8 @ case 3 + .4byte _080A55C8 @ case 4 +_080A5578: + ldr r4, _080A5598 + adds r0, r5, #0 + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + ldr r1, _080A559C + ldr r1, [r1] + movs r2, #1 + ands r1, r2 + lsls r1, r1, #4 + adds r0, r0, r1 + adds r0, r0, r4 + ldrb r0, [r0] + b _080A5678 + .align 2, 0 +_080A5598: .4byte 0x084FE664 +_080A559C: .4byte 0x02022C90 +_080A55A0: + ldr r4, _080A55C0 + adds r0, r5, #0 + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + ldr r1, _080A55C4 + ldr r1, [r1] + movs r2, #1 + ands r1, r2 + lsls r1, r1, #4 + adds r0, r0, r1 + adds r0, r0, r4 + ldrb r0, [r0, #1] + b _080A5678 + .align 2, 0 +_080A55C0: .4byte 0x084FE664 +_080A55C4: .4byte 0x02022C90 +_080A55C8: + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A55F0 + ldr r0, _080A55E8 + ldr r0, [r0] + ldr r2, [r0, #0x18] + ldrb r1, [r2, #4] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080A55EC + ldrh r1, [r2, #2] + b _080A5662 + .align 2, 0 +_080A55E8: .4byte 0x02039BD4 +_080A55EC: + ldrh r1, [r2] + b _080A5662 +_080A55F0: + adds r0, r5, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A5628 + ldr r0, _080A561C + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r5, #2 + adds r1, r0, r1 + ldrh r0, [r1, #2] + cmp r0, #0 + bne _080A5660 + ldr r1, _080A5620 + lsls r0, r5, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080A5624 + b _080A5646 + .align 2, 0 +_080A561C: .4byte 0x02024174 +_080A5620: .4byte 0x02023D12 +_080A5624: .4byte 0x020243E8 +_080A5628: + ldr r0, _080A5654 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r5, #2 + adds r1, r0, r1 + ldrh r0, [r1, #2] + cmp r0, #0 + bne _080A5660 + ldr r1, _080A5658 + lsls r0, r5, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080A565C +_080A5646: + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + b _080A5662 + .align 2, 0 +_080A5654: .4byte 0x02024174 +_080A5658: .4byte 0x02023D12 +_080A565C: .4byte 0x02024190 +_080A5660: + ldrh r1, [r1, #2] +_080A5662: + cmp r4, #3 + bne _080A566C + adds r0, r5, #0 + movs r2, #1 + b _080A5670 +_080A566C: + adds r0, r5, #0 + movs r2, #0 +_080A5670: + bl GetBattlerSpriteFinal_Y + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_080A5678: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetBattlerSpriteCoord + + thumb_func_start GetBattlerYDelta +GetBattlerYDelta: @ 0x080A5680 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + adds r0, r4, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A56A2 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A56A2 + b _080A5790 +_080A56A2: + cmp r5, #0xc9 + bne _080A5758 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A56CC + ldr r0, _080A56C4 + ldr r0, [r0] + ldr r2, [r0, #0x18] + ldrb r1, [r2, #4] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080A56C8 + ldr r2, [r2, #0x10] + b _080A570A + .align 2, 0 +_080A56C4: .4byte 0x02039BD4 +_080A56C8: + ldr r2, [r2, #8] + b _080A570A +_080A56CC: + ldr r0, _080A56F8 + ldr r0, [r0] + ldr r0, [r0] + lsls r1, r4, #2 + adds r0, r1, r0 + ldrh r0, [r0, #2] + cmp r0, #0 + bne _080A5704 + ldr r1, _080A56FC + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080A5700 + adds r0, r0, r1 + movs r1, #0 + bl GetMonData + adds r2, r0, #0 + b _080A570A + .align 2, 0 +_080A56F8: .4byte 0x02024174 +_080A56FC: .4byte 0x02023D12 +_080A5700: .4byte 0x02024190 +_080A5704: + ldr r0, _080A5740 + adds r0, r1, r0 + ldr r2, [r0] +_080A570A: + movs r0, #0xc0 + lsls r0, r0, #0x12 + ands r0, r2 + lsrs r0, r0, #0x12 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r2 + lsrs r1, r1, #0xc + orrs r0, r1 + movs r1, #0xc0 + lsls r1, r1, #2 + ands r1, r2 + lsrs r1, r1, #6 + orrs r0, r1 + movs r1, #3 + ands r1, r2 + orrs r0, r1 + movs r1, #0x1c + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + bne _080A5744 + adds r0, r5, #0 + b _080A574E + .align 2, 0 +_080A5740: .4byte 0x02024160 +_080A5744: + movs r1, #0xce + lsls r1, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_080A574E: + ldr r1, _080A5754 + lsls r0, r0, #2 + b _080A5858 + .align 2, 0 +_080A5754: .4byte 0x082D5A68 +_080A5758: + ldr r0, _080A576C + cmp r5, r0 + bne _080A5778 + ldr r0, _080A5770 + ldr r1, _080A5774 + adds r1, r4, r1 + ldrb r1, [r1] + adds r1, r1, r0 + ldrb r0, [r1] + b _080A585C + .align 2, 0 +_080A576C: .4byte 0x00000181 +_080A5770: .4byte 0x084FE698 +_080A5774: .4byte 0x02024188 +_080A5778: + movs r0, #0xce + lsls r0, r0, #1 + cmp r5, r0 + bls _080A5788 + ldr r0, _080A5784 + b _080A585A + .align 2, 0 +_080A5784: .4byte 0x082D5A68 +_080A5788: + ldr r1, _080A578C + b _080A5856 + .align 2, 0 +_080A578C: .4byte 0x082D5A68 +_080A5790: + cmp r5, #0xc9 + bne _080A5820 + ldr r0, _080A57C0 + ldr r0, [r0] + ldr r0, [r0] + lsls r1, r4, #2 + adds r0, r1, r0 + ldrh r0, [r0, #2] + cmp r0, #0 + bne _080A57CC + ldr r1, _080A57C4 + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080A57C8 + adds r0, r0, r1 + movs r1, #0 + bl GetMonData + adds r2, r0, #0 + b _080A57D2 + .align 2, 0 +_080A57C0: .4byte 0x02024174 +_080A57C4: .4byte 0x02023D12 +_080A57C8: .4byte 0x020243E8 +_080A57CC: + ldr r0, _080A5808 + adds r0, r1, r0 + ldr r2, [r0] +_080A57D2: + movs r0, #0xc0 + lsls r0, r0, #0x12 + ands r0, r2 + lsrs r0, r0, #0x12 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r2 + lsrs r1, r1, #0xc + orrs r0, r1 + movs r1, #0xc0 + lsls r1, r1, #2 + ands r1, r2 + lsrs r1, r1, #6 + orrs r0, r1 + movs r1, #3 + ands r1, r2 + orrs r0, r1 + movs r1, #0x1c + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + bne _080A580C + adds r0, r5, #0 + b _080A5816 + .align 2, 0 +_080A5808: .4byte 0x02024160 +_080A580C: + movs r1, #0xce + lsls r1, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_080A5816: + ldr r1, _080A581C + lsls r0, r0, #2 + b _080A5858 + .align 2, 0 +_080A581C: .4byte 0x082D45C8 +_080A5820: + ldr r0, _080A5838 + cmp r5, r0 + bne _080A5844 + ldr r0, _080A583C + ldr r1, _080A5840 + adds r1, r4, r1 + ldrb r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #1] + b _080A585C + .align 2, 0 +_080A5838: .4byte 0x00000181 +_080A583C: .4byte 0x084FE684 +_080A5840: .4byte 0x02024188 +_080A5844: + movs r0, #0xce + lsls r0, r0, #1 + cmp r5, r0 + bls _080A5854 + ldr r0, _080A5850 + b _080A585A + .align 2, 0 +_080A5850: .4byte 0x082D45C8 +_080A5854: + ldr r1, _080A5864 +_080A5856: + lsls r0, r5, #2 +_080A5858: + adds r0, r0, r1 +_080A585A: + ldrb r0, [r0, #1] +_080A585C: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080A5864: .4byte 0x082D45C8 + thumb_func_end GetBattlerYDelta + + thumb_func_start GetBattlerElevation +GetBattlerElevation: @ 0x080A5868 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + adds r7, r4, #0 + movs r5, #0 + adds r0, r6, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080A58C6 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A58C6 + ldr r0, _080A58A4 + cmp r4, r0 + bne _080A58B0 + ldr r0, _080A58A8 + ldr r1, _080A58AC + adds r1, r6, r1 + ldrb r1, [r1] + adds r1, r1, r0 + ldrb r5, [r1] + b _080A58C6 + .align 2, 0 +_080A58A4: .4byte 0x00000181 +_080A58A8: .4byte 0x084FE694 +_080A58AC: .4byte 0x02024188 +_080A58B0: + movs r0, #0xce + lsls r0, r0, #1 + cmp r4, r0 + bls _080A58C0 + ldr r0, _080A58BC + b _080A58C4 + .align 2, 0 +_080A58BC: .4byte 0x082D965C +_080A58C0: + ldr r0, _080A58D0 + adds r0, r7, r0 +_080A58C4: + ldrb r5, [r0] +_080A58C6: + adds r0, r5, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080A58D0: .4byte 0x082D965C + thumb_func_end GetBattlerElevation + + thumb_func_start GetBattlerSpriteFinal_Y +GetBattlerSpriteFinal_Y: @ 0x080A58D4 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + adds r0, r6, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A58F8 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A5906 +_080A58F8: + adds r0, r6, #0 + adds r1, r5, #0 + bl GetBattlerYDelta + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + b _080A5924 +_080A5906: + adds r0, r6, #0 + adds r1, r5, #0 + bl GetBattlerYDelta + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r6, #0 + adds r1, r5, #0 + bl GetBattlerElevation + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, r4, r0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_080A5924: + adds r0, r6, #0 + bl GetBattlerPosition + ldr r3, _080A596C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + ldr r1, _080A5970 + ldr r1, [r1] + movs r2, #1 + ands r1, r2 + lsls r1, r1, #4 + adds r0, r0, r1 + adds r0, r0, r3 + ldrb r0, [r0, #1] + adds r0, r0, r4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r7, #0 + beq _080A5964 + adds r0, r6, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A595E + adds r0, r4, #0 + adds r0, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_080A595E: + cmp r4, #0x68 + bls _080A5964 + movs r4, #0x68 +_080A5964: + adds r0, r4, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080A596C: .4byte 0x084FE664 +_080A5970: .4byte 0x02022C90 + thumb_func_end GetBattlerSpriteFinal_Y + + thumb_func_start GetBattlerSpriteCoord2 +GetBattlerSpriteCoord2: @ 0x080A5974 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + movs r0, #0xfd + lsls r0, r0, #0x18 + adds r1, r1, r0 + lsrs r1, r1, #0x18 + cmp r1, #1 + bhi _080A59EE + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A59B0 + ldr r0, _080A59A8 + ldr r0, [r0] + ldr r2, [r0, #0x18] + ldrb r1, [r2, #4] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080A59AC + ldrh r1, [r2, #2] + b _080A59D6 + .align 2, 0 +_080A59A8: .4byte 0x02039BD4 +_080A59AC: + ldrh r1, [r2] + b _080A59D6 +_080A59B0: + ldr r0, _080A59CC + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r4, #2 + adds r1, r0, r1 + ldrh r0, [r1, #2] + cmp r0, #0 + bne _080A59D4 + ldr r1, _080A59D0 + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r0] + b _080A59D6 + .align 2, 0 +_080A59CC: .4byte 0x02024174 +_080A59D0: .4byte 0x020380D8 +_080A59D4: + ldrh r1, [r1, #2] +_080A59D6: + cmp r5, #3 + bne _080A59E4 + adds r0, r4, #0 + movs r2, #1 + bl GetBattlerSpriteFinal_Y + b _080A59F6 +_080A59E4: + adds r0, r4, #0 + movs r2, #0 + bl GetBattlerSpriteFinal_Y + b _080A59F6 +_080A59EE: + adds r0, r4, #0 + adds r1, r5, #0 + bl GetBattlerSpriteCoord +_080A59F6: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end GetBattlerSpriteCoord2 + + thumb_func_start GetBattlerSpriteDefault_Y +GetBattlerSpriteDefault_Y: @ 0x080A5A00 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #4 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + thumb_func_end GetBattlerSpriteDefault_Y + + thumb_func_start GetSubstituteSpriteDefault_Y +GetSubstituteSpriteDefault_Y: @ 0x080A5A14 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A5A38 + adds r0, r4, #0 + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #8 + movs r1, #0x80 + lsls r1, r1, #0xd + b _080A5A48 +_080A5A38: + adds r0, r4, #0 + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #8 + movs r1, #0x88 + lsls r1, r1, #0xd +_080A5A48: + adds r0, r0, r1 + lsrs r0, r0, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetSubstituteSpriteDefault_Y + + thumb_func_start GetBattlerYCoordWithElevation +GetBattlerYCoordWithElevation: @ 0x080A5A58 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r5, #0 + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A5B00 + adds r0, r5, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A5AAC + ldr r0, _080A5AA0 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r5, #2 + adds r1, r0, r1 + ldrh r0, [r1, #2] + cmp r0, #0 + bne _080A5AE4 + ldr r1, _080A5AA4 + lsls r0, r5, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080A5AA8 + b _080A5ACA + .align 2, 0 +_080A5AA0: .4byte 0x02024174 +_080A5AA4: .4byte 0x02023D12 +_080A5AA8: .4byte 0x020243E8 +_080A5AAC: + ldr r0, _080A5AD8 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r5, #2 + adds r1, r0, r1 + ldrh r0, [r1, #2] + cmp r0, #0 + bne _080A5AE4 + ldr r1, _080A5ADC + lsls r0, r5, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080A5AE0 +_080A5ACA: + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + b _080A5AE6 + .align 2, 0 +_080A5AD8: .4byte 0x02024174 +_080A5ADC: .4byte 0x02023D12 +_080A5AE0: .4byte 0x02024190 +_080A5AE4: + ldrh r4, [r1, #2] +_080A5AE6: + adds r0, r5, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A5B00 + adds r0, r5, #0 + adds r1, r4, #0 + bl GetBattlerElevation + subs r0, r6, r0 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_080A5B00: + adds r0, r6, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end GetBattlerYCoordWithElevation + + thumb_func_start GetAnimBattlerSpriteId +GetAnimBattlerSpriteId: @ 0x080A5B08 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + cmp r0, #0 + bne _080A5B30 + ldr r4, _080A5B28 + ldrb r0, [r4] + bl IsBattlerSpritePresent + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A5B7E + ldr r1, _080A5B2C + ldrb r0, [r4] + b _080A5B8E + .align 2, 0 +_080A5B28: .4byte 0x020380D6 +_080A5B2C: .4byte 0x02023E88 +_080A5B30: + cmp r0, #1 + bne _080A5B50 + ldr r4, _080A5B48 + ldrb r0, [r4] + bl IsBattlerSpritePresent + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A5B7E + ldr r1, _080A5B4C + ldrb r0, [r4] + b _080A5B8E + .align 2, 0 +_080A5B48: .4byte 0x020380D7 +_080A5B4C: .4byte 0x02023E88 +_080A5B50: + cmp r1, #2 + bne _080A5B6C + ldr r5, _080A5B68 + ldrb r0, [r5] + movs r4, #2 + eors r0, r4 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A5B7E + b _080A5B88 + .align 2, 0 +_080A5B68: .4byte 0x020380D6 +_080A5B6C: + ldr r5, _080A5B84 + ldrb r0, [r5] + movs r4, #2 + eors r0, r4 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A5B88 +_080A5B7E: + movs r0, #0xff + b _080A5B92 + .align 2, 0 +_080A5B84: .4byte 0x020380D7 +_080A5B88: + ldr r1, _080A5B98 + ldrb r0, [r5] + eors r0, r4 +_080A5B8E: + adds r0, r0, r1 + ldrb r0, [r0] +_080A5B92: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080A5B98: .4byte 0x02023E88 + thumb_func_end GetAnimBattlerSpriteId + + thumb_func_start StoreSpriteCallbackInData6 +StoreSpriteCallbackInData6: @ 0x080A5B9C + strh r1, [r0, #0x3a] + lsrs r1, r1, #0x10 + strh r1, [r0, #0x3c] + bx lr + thumb_func_end StoreSpriteCallbackInData6 + + thumb_func_start SetCallbackToStoredInData6 +SetCallbackToStoredInData6: @ 0x080A5BA4 + ldrh r2, [r0, #0x3a] + movs r3, #0x3c + ldrsh r1, [r0, r3] + lsls r1, r1, #0x10 + orrs r2, r1 + str r2, [r0, #0x1c] + bx lr + .align 2, 0 + thumb_func_end SetCallbackToStoredInData6 + + thumb_func_start TranslateSpriteInCircleOverDuration +TranslateSpriteInCircleOverDuration: @ 0x080A5BB4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x34 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _080A5C08 + movs r2, #0x2e + ldrsh r0, [r4, r2] + movs r2, #0x30 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, #0x24] + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x30 + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x32] + ldrh r2, [r4, #0x2e] + adds r1, r0, r2 + strh r1, [r4, #0x2e] + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xff + ble _080A5BF4 + ldr r2, _080A5BF0 + b _080A5BFC + .align 2, 0 +_080A5BF0: .4byte 0xFFFFFF00 +_080A5BF4: + cmp r0, #0 + bge _080A5C00 + movs r2, #0x80 + lsls r2, r2, #1 +_080A5BFC: + adds r0, r1, r2 + strh r0, [r4, #0x2e] +_080A5C00: + ldrh r0, [r4, #0x34] + subs r0, #1 + strh r0, [r4, #0x34] + b _080A5C0E +_080A5C08: + adds r0, r4, #0 + bl SetCallbackToStoredInData6 +_080A5C0E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end TranslateSpriteInCircleOverDuration + + thumb_func_start TranslateSpriteInGrowingCircleOverDuration +TranslateSpriteInGrowingCircleOverDuration: @ 0x080A5C14 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x34 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _080A5C84 + movs r2, #0x2e + ldrsh r0, [r4, r2] + ldrh r1, [r4, #0x38] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + ldrh r2, [r4, #0x30] + adds r1, r1, r2 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl Sin + strh r0, [r4, #0x24] + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldrh r1, [r4, #0x38] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + ldrh r2, [r4, #0x30] + adds r1, r1, r2 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + 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, r0, r2 + strh r0, [r4, #0x38] + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xff + ble _080A5C70 + ldr r2, _080A5C6C + b _080A5C78 + .align 2, 0 +_080A5C6C: .4byte 0xFFFFFF00 +_080A5C70: + cmp r0, #0 + bge _080A5C7C + movs r2, #0x80 + lsls r2, r2, #1 +_080A5C78: + adds r0, r1, r2 + strh r0, [r4, #0x2e] +_080A5C7C: + ldrh r0, [r4, #0x34] + subs r0, #1 + strh r0, [r4, #0x34] + b _080A5C8A +_080A5C84: + adds r0, r4, #0 + bl SetCallbackToStoredInData6 +_080A5C8A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end TranslateSpriteInGrowingCircleOverDuration + + thumb_func_start sub_080A5C90 +sub_080A5C90: @ 0x080A5C90 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x34 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _080A5D0C + movs r2, #0x2e + ldrsh r0, [r4, r2] + movs r2, #0x30 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, #0x24] + movs r1, #0x36 + ldrsh r0, [r4, r1] + movs r2, #0x30 + ldrsh r1, [r4, r2] + 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, #0x38] + ldrh r2, [r4, #0x36] + adds r0, r0, r2 + strh r0, [r4, #0x36] + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xff + ble _080A5CD8 + ldr r2, _080A5CD4 + b _080A5CE0 + .align 2, 0 +_080A5CD4: .4byte 0xFFFFFF00 +_080A5CD8: + cmp r0, #0 + bge _080A5CE4 + movs r2, #0x80 + lsls r2, r2, #1 +_080A5CE0: + adds r0, r1, r2 + strh r0, [r4, #0x2e] +_080A5CE4: + ldrh r1, [r4, #0x36] + movs r2, #0x36 + ldrsh r0, [r4, r2] + cmp r0, #0xff + ble _080A5CF8 + ldr r2, _080A5CF4 + b _080A5D00 + .align 2, 0 +_080A5CF4: .4byte 0xFFFFFF00 +_080A5CF8: + cmp r0, #0 + bge _080A5D04 + movs r2, #0x80 + lsls r2, r2, #1 +_080A5D00: + adds r0, r1, r2 + strh r0, [r4, #0x36] +_080A5D04: + ldrh r0, [r4, #0x34] + subs r0, #1 + strh r0, [r4, #0x34] + b _080A5D12 +_080A5D0C: + adds r0, r4, #0 + bl SetCallbackToStoredInData6 +_080A5D12: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_080A5C90 + + thumb_func_start TranslateSpriteInEllipseOverDuration +TranslateSpriteInEllipseOverDuration: @ 0x080A5D18 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x34 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _080A5D6C + movs r2, #0x2e + ldrsh r0, [r4, r2] + movs r2, #0x30 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, #0x24] + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x36 + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x32] + ldrh r2, [r4, #0x2e] + adds r1, r0, r2 + strh r1, [r4, #0x2e] + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xff + ble _080A5D58 + ldr r2, _080A5D54 + b _080A5D60 + .align 2, 0 +_080A5D54: .4byte 0xFFFFFF00 +_080A5D58: + cmp r0, #0 + bge _080A5D64 + movs r2, #0x80 + lsls r2, r2, #1 +_080A5D60: + adds r0, r1, r2 + strh r0, [r4, #0x2e] +_080A5D64: + ldrh r0, [r4, #0x34] + subs r0, #1 + strh r0, [r4, #0x34] + b _080A5D72 +_080A5D6C: + adds r0, r4, #0 + bl SetCallbackToStoredInData6 +_080A5D72: + pop {r4} + pop {r0} + bx r0 + thumb_func_end TranslateSpriteInEllipseOverDuration + + thumb_func_start WaitAnimForDuration +WaitAnimForDuration: @ 0x080A5D78 + push {lr} + adds r1, r0, #0 + ldrh r2, [r1, #0x2e] + movs r3, #0x2e + ldrsh r0, [r1, r3] + cmp r0, #0 + ble _080A5D8C + subs r0, r2, #1 + strh r0, [r1, #0x2e] + b _080A5D92 +_080A5D8C: + adds r0, r1, #0 + bl SetCallbackToStoredInData6 +_080A5D92: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WaitAnimForDuration + + thumb_func_start sub_080A5D98 +sub_080A5D98: @ 0x080A5D98 + push {r4, lr} + adds r4, r0, #0 + bl sub_080A5DB4 + ldr r1, _080A5DB0 + str r1, [r4, #0x1c] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A5DB0: .4byte 0x080A5E05 + thumb_func_end sub_080A5D98 + + thumb_func_start sub_080A5DB4 +sub_080A5DB4: @ 0x080A5DB4 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x30 + ldrsh r1, [r4, r0] + movs r2, #0x32 + ldrsh r0, [r4, r2] + cmp r1, r0 + ble _080A5DCA + ldrh r0, [r4, #0x2e] + rsbs r0, r0, #0 + strh r0, [r4, #0x2e] +_080A5DCA: + movs r1, #0x32 + ldrsh r0, [r4, r1] + movs r2, #0x30 + ldrsh r1, [r4, r2] + subs r0, r0, r1 + ldrh r5, [r4, #0x2e] + movs r2, #0x2e + ldrsh r1, [r4, r2] + bl __divsi3 + cmp r0, #0 + bge _080A5DE4 + rsbs r0, r0, #0 +_080A5DE4: + strh r0, [r4, #0x2e] + movs r1, #0x36 + ldrsh r0, [r4, r1] + movs r2, #0x34 + ldrsh r1, [r4, r2] + subs r0, r0, r1 + movs r2, #0x2e + ldrsh r1, [r4, r2] + bl __divsi3 + strh r0, [r4, #0x32] + strh r5, [r4, #0x30] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080A5DB4 + + thumb_func_start TranslateSpriteLinear +TranslateSpriteLinear: @ 0x080A5E04 + push {lr} + adds r1, r0, #0 + ldrh r2, [r1, #0x2e] + movs r3, #0x2e + ldrsh r0, [r1, r3] + cmp r0, #0 + ble _080A5E28 + subs r0, r2, #1 + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x30] + ldrh r2, [r1, #0x24] + adds r0, r0, r2 + strh r0, [r1, #0x24] + ldrh r0, [r1, #0x32] + ldrh r3, [r1, #0x26] + adds r0, r0, r3 + strh r0, [r1, #0x26] + b _080A5E2E +_080A5E28: + adds r0, r1, #0 + bl SetCallbackToStoredInData6 +_080A5E2E: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end TranslateSpriteLinear + + thumb_func_start TranslateSpriteLinearFixedPoint +TranslateSpriteLinearFixedPoint: @ 0x080A5E34 + push {lr} + adds r2, r0, #0 + ldrh r1, [r2, #0x2e] + movs r3, #0x2e + ldrsh r0, [r2, r3] + cmp r0, #0 + ble _080A5E64 + subs r0, r1, #1 + strh r0, [r2, #0x2e] + ldrh r0, [r2, #0x30] + ldrh r1, [r2, #0x34] + adds r0, r0, r1 + strh r0, [r2, #0x34] + ldrh r1, [r2, #0x32] + ldrh r3, [r2, #0x36] + adds r1, r1, r3 + strh r1, [r2, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + strh r0, [r2, #0x24] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + strh r1, [r2, #0x26] + b _080A5E6A +_080A5E64: + adds r0, r2, #0 + bl SetCallbackToStoredInData6 +_080A5E6A: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end TranslateSpriteLinearFixedPoint + + thumb_func_start TranslateSpriteLinearFixedPointIconFrame +TranslateSpriteLinearFixedPointIconFrame: @ 0x080A5E70 + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x2e] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r0, #0 + ble _080A5EA0 + subs r0, r1, #1 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x30] + ldrh r1, [r4, #0x34] + adds r0, r0, r1 + strh r0, [r4, #0x34] + ldrh r1, [r4, #0x32] + ldrh r2, [r4, #0x36] + adds r1, r1, r2 + strh r1, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + strh r0, [r4, #0x24] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + strh r1, [r4, #0x26] + b _080A5EA6 +_080A5EA0: + adds r0, r4, #0 + bl SetCallbackToStoredInData6 +_080A5EA6: + adds r0, r4, #0 + bl UpdateMonIconFrame + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end TranslateSpriteLinearFixedPointIconFrame + + thumb_func_start sub_080A5EB4 +sub_080A5EB4: @ 0x080A5EB4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x24] + ldrh r1, [r4, #0x20] + adds r0, r0, r1 + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x26] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x34] + ldr r5, _080A5EF0 + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x32] + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x36] + ldr r0, _080A5EF4 + str r0, [r4, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A5EF0: .4byte 0x020380D7 +_080A5EF4: .4byte 0x080A5D99 + thumb_func_end sub_080A5EB4 + + thumb_func_start TranslateMonSpriteLinear +TranslateMonSpriteLinear: @ 0x080A5EF8 + push {r4, lr} + adds r3, r0, #0 + ldrh r1, [r3, #0x2e] + movs r2, #0x2e + ldrsh r0, [r3, r2] + cmp r0, #0 + ble _080A5F3C + subs r0, r1, #1 + strh r0, [r3, #0x2e] + ldr r2, _080A5F38 + movs r4, #0x34 + ldrsh r1, [r3, r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r3, #0x30] + ldrh r4, [r0, #0x24] + adds r1, r1, r4 + strh r1, [r0, #0x24] + movs r0, #0x34 + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r3, #0x32] + ldrh r2, [r0, #0x26] + adds r1, r1, r2 + strh r1, [r0, #0x26] + b _080A5F42 + .align 2, 0 +_080A5F38: .4byte 0x020205AC +_080A5F3C: + adds r0, r3, #0 + bl SetCallbackToStoredInData6 +_080A5F42: + pop {r4} + pop {r0} + bx r0 + thumb_func_end TranslateMonSpriteLinear + + thumb_func_start TranslateMonSpriteLinearFixedPoint +TranslateMonSpriteLinearFixedPoint: @ 0x080A5F48 + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x2e] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r0, #0 + ble _080A5F98 + subs r0, r1, #1 + strh r0, [r4, #0x2e] + ldrh r1, [r4, #0x30] + ldrh r0, [r4, #0x34] + adds r1, r1, r0 + strh r1, [r4, #0x34] + ldrh r0, [r4, #0x32] + ldrh r2, [r4, #0x36] + adds r0, r0, r2 + strh r0, [r4, #0x36] + ldr r3, _080A5F94 + movs r0, #0x38 + ldrsh r2, [r4, r0] + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r3 + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + strh r1, [r0, #0x24] + movs r1, #0x38 + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + strh r0, [r1, #0x26] + b _080A5F9E + .align 2, 0 +_080A5F94: .4byte 0x020205AC +_080A5F98: + adds r0, r4, #0 + bl SetCallbackToStoredInData6 +_080A5F9E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end TranslateMonSpriteLinearFixedPoint + + thumb_func_start TranslateSpriteLinearAndFlicker +TranslateSpriteLinearAndFlicker: @ 0x080A5FA4 + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x2e] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r0, #0 + ble _080A6006 + subs r0, r1, #1 + strh r0, [r4, #0x2e] + ldrh r1, [r4, #0x32] + lsls r0, r1, #0x10 + asrs r0, r0, #0x18 + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x30] + adds r1, r1, r0 + strh r1, [r4, #0x32] + ldrh r1, [r4, #0x36] + lsls r0, r1, #0x10 + asrs r0, r0, #0x18 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x34] + adds r1, r1, r0 + strh r1, [r4, #0x36] + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x38 + ldrsh r1, [r4, r2] + bl __modsi3 + cmp r0, #0 + bne _080A600C + movs r1, #0x38 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _080A600C + adds r3, r4, #0 + adds r3, #0x3e + ldrb r2, [r3] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _080A600C +_080A6006: + adds r0, r4, #0 + bl SetCallbackToStoredInData6 +_080A600C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end TranslateSpriteLinearAndFlicker + + thumb_func_start DestroySpriteAndMatrix +DestroySpriteAndMatrix: @ 0x080A6014 + push {r4, lr} + adds r4, r0, #0 + bl FreeSpriteOamMatrix + adds r0, r4, #0 + bl DestroyAnimSprite + pop {r4} + pop {r0} + bx r0 + thumb_func_end DestroySpriteAndMatrix + + thumb_func_start sub_080A6028 +sub_080A6028: @ 0x080A6028 + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x24] + ldrh r1, [r4, #0x20] + adds r0, r0, r1 + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x26] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x34] + ldr r5, _080A6064 + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x32] + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x36] + ldr r0, _080A6068 + str r0, [r4, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A6064: .4byte 0x020380D6 +_080A6068: .4byte 0x080A5D99 + thumb_func_end sub_080A6028 + + thumb_func_start sub_080A606C +sub_080A606C: @ 0x080A606C + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x38] + bl ResetPaletteStructByUid + adds r0, r4, #0 + bl DestroySpriteAndMatrix + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080A606C + + thumb_func_start RunStoredCallbackWhenAffineAnimEnds +RunStoredCallbackWhenAffineAnimEnds: @ 0x080A6084 + push {lr} + adds r2, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080A609A + adds r0, r2, #0 + bl SetCallbackToStoredInData6 +_080A609A: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RunStoredCallbackWhenAffineAnimEnds + + thumb_func_start RunStoredCallbackWhenAnimEnds +RunStoredCallbackWhenAnimEnds: @ 0x080A60A0 + push {lr} + adds r2, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080A60B6 + adds r0, r2, #0 + bl SetCallbackToStoredInData6 +_080A60B6: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RunStoredCallbackWhenAnimEnds + + thumb_func_start DestroyAnimSpriteAndDisableBlend +DestroyAnimSpriteAndDisableBlend: @ 0x080A60BC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + adds r0, r4, #0 + bl DestroyAnimSprite + pop {r4} + pop {r0} + bx r0 + thumb_func_end DestroyAnimSpriteAndDisableBlend + + thumb_func_start DestroyAnimVisualTaskAndDisableBlend +DestroyAnimVisualTaskAndDisableBlend: @ 0x080A60DC + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + adds r0, r4, #0 + bl DestroyAnimVisualTask + pop {r4} + pop {r0} + bx r0 + thumb_func_end DestroyAnimVisualTaskAndDisableBlend + + thumb_func_start SetSpriteCoordsToAnimAttackerCoords +SetSpriteCoordsToAnimAttackerCoords: @ 0x080A6100 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A6128 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A6128: .4byte 0x020380D6 + thumb_func_end SetSpriteCoordsToAnimAttackerCoords + + thumb_func_start SetAnimSpriteInitialXOffset +SetAnimSpriteInitialXOffset: @ 0x080A612C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + mov r8, r5 + ldr r7, _080A6164 + ldrb r0, [r7] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _080A6168 + ldrb r0, [r0] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r6, r0 + bhi _080A6178 + cmp r6, r0 + bhs _080A616C + lsls r0, r5, #0x10 + b _080A6188 + .align 2, 0 +_080A6164: .4byte 0x020380D6 +_080A6168: .4byte 0x020380D7 +_080A616C: + ldrb r0, [r7] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A6184 +_080A6178: + ldrh r1, [r4, #0x20] + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + subs r1, r1, r0 + strh r1, [r4, #0x20] + b _080A6190 +_080A6184: + mov r1, r8 + lsls r0, r1, #0x10 +_080A6188: + asrs r0, r0, #0x10 + ldrh r1, [r4, #0x20] + adds r0, r0, r1 + strh r0, [r4, #0x20] +_080A6190: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetAnimSpriteInitialXOffset + + thumb_func_start InitAnimArcTranslation +InitAnimArcTranslation: @ 0x080A619C + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x20] + movs r5, #0 + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x22] + strh r0, [r4, #0x34] + adds r0, r4, #0 + bl InitAnimLinearTranslation + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r0, #0x80 + lsls r0, r0, #8 + bl __divsi3 + strh r0, [r4, #0x3a] + strh r5, [r4, #0x3c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end InitAnimArcTranslation + + thumb_func_start TranslateAnimHorizontalArc +TranslateAnimHorizontalArc: @ 0x080A61C8 + push {r4, lr} + adds r4, r0, #0 + bl AnimTranslateLinear + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A61F4 + ldrh r0, [r4, #0x3a] + ldrh r1, [r4, #0x3c] + adds r0, r0, r1 + strh r0, [r4, #0x3c] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + movs r2, #0x38 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, #0x26] + adds r0, r0, r1 + strh r0, [r4, #0x26] + movs r0, #0 + b _080A61F6 +_080A61F4: + movs r0, #1 +_080A61F6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end TranslateAnimHorizontalArc + + thumb_func_start TranslateAnimVerticalArc +TranslateAnimVerticalArc: @ 0x080A61FC + push {r4, lr} + adds r4, r0, #0 + bl AnimTranslateLinear + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A6228 + ldrh r0, [r4, #0x3a] + ldrh r1, [r4, #0x3c] + adds r0, r0, r1 + strh r0, [r4, #0x3c] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + movs r2, #0x38 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, #0x24] + adds r0, r0, r1 + strh r0, [r4, #0x24] + movs r0, #0 + b _080A622A +_080A6228: + movs r0, #1 +_080A622A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end TranslateAnimVerticalArc + + thumb_func_start SetSpritePrimaryCoordsFromSecondaryCoords +SetSpritePrimaryCoordsFromSecondaryCoords: @ 0x080A6230 + ldrh r1, [r0, #0x24] + ldrh r2, [r0, #0x20] + adds r1, r1, r2 + movs r2, #0 + strh r1, [r0, #0x20] + ldrh r1, [r0, #0x26] + ldrh r3, [r0, #0x22] + adds r1, r1, r3 + strh r1, [r0, #0x22] + strh r2, [r0, #0x24] + strh r2, [r0, #0x26] + bx lr + thumb_func_end SetSpritePrimaryCoordsFromSecondaryCoords + + thumb_func_start InitSpritePosToAnimTarget +InitSpritePosToAnimTarget: @ 0x080A6248 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r1, r1, #0x18 + cmp r1, #0 + bne _080A6270 + ldr r4, _080A628C + ldrb r0, [r4] + movs r1, #0 + bl GetBattlerSpriteCoord2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #1 + bl GetBattlerSpriteCoord2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] +_080A6270: + ldr r4, _080A6290 + movs r0, #0 + ldrsh r1, [r4, r0] + adds r0, r5, #0 + bl SetAnimSpriteInitialXOffset + ldrh r0, [r4, #2] + ldrh r1, [r5, #0x22] + adds r0, r0, r1 + strh r0, [r5, #0x22] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A628C: .4byte 0x020380D7 +_080A6290: .4byte 0x020380BE + thumb_func_end InitSpritePosToAnimTarget + + thumb_func_start InitSpritePosToAnimAttacker +InitSpritePosToAnimAttacker: @ 0x080A6294 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r1, r1, #0x18 + cmp r1, #0 + bne _080A62B8 + ldr r4, _080A62B4 + ldrb r0, [r4] + movs r1, #0 + bl GetBattlerSpriteCoord2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #1 + b _080A62CC + .align 2, 0 +_080A62B4: .4byte 0x020380D6 +_080A62B8: + ldr r4, _080A62F0 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #3 +_080A62CC: + bl GetBattlerSpriteCoord2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + ldr r4, _080A62F4 + movs r0, #0 + ldrsh r1, [r4, r0] + adds r0, r5, #0 + bl SetAnimSpriteInitialXOffset + ldrh r0, [r4, #2] + ldrh r1, [r5, #0x22] + adds r0, r0, r1 + strh r0, [r5, #0x22] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A62F0: .4byte 0x020380D6 +_080A62F4: .4byte 0x020380BE + thumb_func_end InitSpritePosToAnimAttacker + + thumb_func_start GetBattlerSide +GetBattlerSide: @ 0x080A62F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080A6308 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + bx lr + .align 2, 0 +_080A6308: .4byte 0x02023D1A + thumb_func_end GetBattlerSide + + thumb_func_start GetBattlerPosition +GetBattlerPosition: @ 0x080A630C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080A6318 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_080A6318: .4byte 0x02023D1A + thumb_func_end GetBattlerPosition + + thumb_func_start GetBattlerAtPosition +GetBattlerAtPosition: @ 0x080A631C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + movs r1, #0 + ldr r0, _080A6350 + ldrb r2, [r0] + cmp r1, r2 + bhs _080A6346 + ldr r4, _080A6354 + ldrb r0, [r4] + cmp r0, r3 + beq _080A6346 +_080A6334: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, r2 + bhs _080A6346 + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, r3 + bne _080A6334 +_080A6346: + adds r0, r1, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080A6350: .4byte 0x02023D10 +_080A6354: .4byte 0x02023D1A + thumb_func_end GetBattlerAtPosition + + thumb_func_start IsBattlerSpritePresent +IsBattlerSpritePresent: @ 0x080A6358 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r5, r4, #0 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A6384 + ldr r0, _080A637C + ldrb r0, [r0] + cmp r0, r4 + beq _080A63D2 + ldr r0, _080A6380 + ldrb r0, [r0] + cmp r0, r4 + beq _080A63D2 + b _080A63E0 + .align 2, 0 +_080A637C: .4byte 0x020380D6 +_080A6380: .4byte 0x020380D7 +_080A6384: + ldr r0, _080A63AC + adds r0, r4, r0 + ldrb r0, [r0] + cmp r0, #0xff + beq _080A63E0 + adds r0, r4, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A63B8 + ldr r1, _080A63B0 + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080A63B4 + b _080A63C6 + .align 2, 0 +_080A63AC: .4byte 0x02023D1A +_080A63B0: .4byte 0x02023D12 +_080A63B4: .4byte 0x020243E8 +_080A63B8: + ldr r1, _080A63D8 + lsls r0, r5, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080A63DC +_080A63C6: + adds r0, r0, r1 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _080A63E0 +_080A63D2: + movs r0, #1 + b _080A63E2 + .align 2, 0 +_080A63D8: .4byte 0x02023D12 +_080A63DC: .4byte 0x02024190 +_080A63E0: + movs r0, #0 +_080A63E2: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end IsBattlerSpritePresent + + thumb_func_start IsDoubleBattle +IsDoubleBattle: @ 0x080A63E8 + ldr r0, _080A63F4 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + bx lr + .align 2, 0 +_080A63F4: .4byte 0x02022C90 + thumb_func_end IsDoubleBattle + + thumb_func_start sub_080A63F8 +sub_080A63F8: @ 0x080A63F8 + push {r4, lr} + adds r4, r0, #0 + bl IsContest + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _080A642C + ldr r0, _080A6424 + ldr r0, [r0] + str r0, [r4] + ldr r0, _080A6428 + ldr r0, [r0] + str r0, [r4, #4] + movs r1, #0 + movs r0, #0xe + strb r0, [r4, #8] + movs r0, #1 + strb r0, [r4, #9] + strh r1, [r4, #0xa] + b _080A6446 + .align 2, 0 +_080A6424: .4byte 0x02022D00 +_080A6428: .4byte 0x02022D04 +_080A642C: + ldr r0, _080A6450 + ldr r0, [r0] + str r0, [r4] + ldr r0, _080A6454 + ldr r0, [r0] + str r0, [r4, #4] + movs r0, #8 + strb r0, [r4, #8] + movs r0, #1 + strb r0, [r4, #9] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0xa] +_080A6446: + strh r1, [r4, #0xc] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A6450: .4byte 0x02022D00 +_080A6454: .4byte 0x02022D04 + thumb_func_end sub_080A63F8 + + thumb_func_start sub_080A6458 +sub_080A6458: @ 0x080A6458 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl IsContest + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _080A648C + ldr r0, _080A6484 + ldr r0, [r0] + str r0, [r4] + ldr r0, _080A6488 + ldr r0, [r0] + str r0, [r4, #4] + movs r1, #0 + movs r0, #0xe + strb r0, [r4, #8] + movs r0, #1 + strb r0, [r4, #9] + strh r1, [r4, #0xa] + b _080A64B2 + .align 2, 0 +_080A6484: .4byte 0x02022D00 +_080A6488: .4byte 0x02022D04 +_080A648C: + cmp r5, #1 + bne _080A6498 + adds r0, r4, #0 + bl sub_080A63F8 + b _080A64B4 +_080A6498: + ldr r0, _080A64BC + ldr r0, [r0] + str r0, [r4] + ldr r0, _080A64C0 + ldr r0, [r0] + str r0, [r4, #4] + movs r0, #9 + strb r0, [r4, #8] + movs r0, #2 + strb r0, [r4, #9] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r4, #0xa] +_080A64B2: + strh r1, [r4, #0xc] +_080A64B4: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A64BC: .4byte 0x02022D00 +_080A64C0: .4byte 0x02022D04 + thumb_func_end sub_080A6458 + + thumb_func_start sub_080A64C4 +sub_080A64C4: @ 0x080A64C4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _080A64F0 + ldr r0, [r0] + str r0, [r4] + ldr r0, _080A64F4 + ldr r0, [r0] + str r0, [r4, #4] + bl IsContest + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + beq _080A64F8 + movs r0, #0 + movs r1, #0xe + strb r1, [r4, #8] + movs r1, #1 + strb r1, [r4, #9] + strh r0, [r4, #0xa] + strh r0, [r4, #0xc] + b _080A6528 + .align 2, 0 +_080A64F0: .4byte 0x02022D00 +_080A64F4: .4byte 0x02022D04 +_080A64F8: + ldr r0, _080A6514 + ldrb r0, [r0] + bl GetBattlerSpriteBGPriorityRank + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #1 + bne _080A6518 + movs r0, #8 + strb r0, [r4, #8] + strb r1, [r4, #9] + movs r0, #0x80 + lsls r0, r0, #2 + b _080A6524 + .align 2, 0 +_080A6514: .4byte 0x020380D6 +_080A6518: + movs r0, #9 + strb r0, [r4, #8] + movs r0, #2 + strb r0, [r4, #9] + movs r0, #0xc0 + lsls r0, r0, #2 +_080A6524: + strh r0, [r4, #0xa] + strh r5, [r4, #0xc] +_080A6528: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080A64C4 + + thumb_func_start sub_080A6530 +sub_080A6530: @ 0x080A6530 + push {lr} + sub sp, #0x20 + adds r1, r0, #0 + add r0, sp, #0xc + bl sub_080A6458 + movs r0, #0 + str r0, [sp, #0x1c] + add r0, sp, #0x1c + ldr r1, [sp, #0xc] + ldr r2, _080A6584 + bl CpuSet + add r0, sp, #0xc + ldrb r0, [r0, #9] + ldr r1, [sp, #0xc] + movs r2, #0x80 + lsls r2, r2, #6 + add r3, sp, #0xc + ldrh r3, [r3, #0xa] + bl LoadBgTiles + add r0, sp, #0xc + ldrb r0, [r0, #9] + movs r1, #0x20 + str r1, [sp] + movs r1, #0x40 + str r1, [sp, #4] + movs r1, #0x11 + str r1, [sp, #8] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect + add r0, sp, #0xc + ldrb r0, [r0, #9] + bl CopyBgTilemapBufferToVram + add sp, #0x20 + pop {r0} + bx r0 + .align 2, 0 +_080A6584: .4byte 0x05000800 + thumb_func_end sub_080A6530 + + thumb_func_start AnimLoadCompressedBgGfx +AnimLoadCompressedBgGfx: @ 0x080A6588 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #4 + adds r5, r0, #0 + mov r8, r1 + adds r6, r2, #0 + movs r0, #0 + str r0, [sp] + ldr r4, _080A65D0 + ldr r1, [r4] + ldr r2, _080A65D4 + mov r0, sp + bl CpuSet + ldr r1, [r4] + mov r0, r8 + bl LZDecompressVram + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r1, [r4] + movs r2, #0x80 + lsls r2, r2, #6 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + adds r0, r5, #0 + adds r3, r6, #0 + bl LoadBgTiles + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080A65D0: .4byte 0x02022D00 +_080A65D4: .4byte 0x05000800 + thumb_func_end AnimLoadCompressedBgGfx + + thumb_func_start InitAnimBgTilemapBuffer +InitAnimBgTilemapBuffer: @ 0x080A65D8 + push {r4, r5, lr} + sub sp, #0xc + adds r4, r0, #0 + adds r5, r1, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0x20 + str r0, [sp] + movs r0, #0x40 + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end InitAnimBgTilemapBuffer + + thumb_func_start AnimLoadCompressedBgTilemap +AnimLoadCompressedBgTilemap: @ 0x080A6610 + push {r4, lr} + adds r4, r0, #0 + bl InitAnimBgTilemapBuffer + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl CopyBgTilemapBufferToVram + pop {r4} + pop {r0} + bx r0 + thumb_func_end AnimLoadCompressedBgTilemap + + thumb_func_start sub_080A6628 +sub_080A6628: @ 0x080A6628 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r2, #0 + ldrb r0, [r4, #9] + bl InitAnimBgTilemapBuffer + bl IsContest + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080A664E + ldrb r0, [r4, #8] + ldr r1, [r4, #4] + lsls r3, r5, #0x18 + lsrs r3, r3, #0x18 + movs r2, #0 + bl sub_080A3FE8 +_080A664E: + ldrb r0, [r4, #9] + bl CopyBgTilemapBufferToVram + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080A6628 + + thumb_func_start sub_080A665C +sub_080A665C: @ 0x080A665C + push {lr} + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A666C + movs r0, #2 + b _080A666E +_080A666C: + movs r0, #1 +_080A666E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080A665C + + thumb_func_start sub_080A6674 +sub_080A6674: @ 0x080A6674 + push {lr} + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A6686 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A669C +_080A6686: + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl SetAnimBgAttribute + movs r0, #3 + movs r1, #1 + movs r2, #1 + bl SetAnimBgAttribute + b _080A66B0 +_080A669C: + movs r0, #3 + movs r1, #0 + movs r2, #1 + bl SetAnimBgAttribute + movs r0, #3 + movs r1, #1 + movs r2, #0 + bl SetAnimBgAttribute +_080A66B0: + pop {r0} + bx r0 + thumb_func_end sub_080A6674 + + thumb_func_start sub_080A66B4 +sub_080A66B4: @ 0x080A66B4 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x20] + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x22] + strh r0, [r4, #0x34] + adds r0, r4, #0 + bl InitSpriteDataForLinearTranslation + ldr r1, _080A66D8 + str r1, [r4, #0x1c] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A66D8: .4byte 0x080A5E71 + thumb_func_end sub_080A66B4 + + thumb_func_start InitSpriteDataForLinearTranslation +InitSpriteDataForLinearTranslation: @ 0x080A66DC + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrh r0, [r5, #0x32] + ldrh r1, [r5, #0x30] + subs r0, r0, r1 + ldrh r4, [r5, #0x36] + ldrh r1, [r5, #0x34] + subs r4, r4, r1 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x10 + lsls r0, r0, #0x18 + asrs r0, r0, #0x10 + movs r2, #0x2e + ldrsh r1, [r5, r2] + bl __divsi3 + movs r6, #0 + strh r0, [r5, #0x30] + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + movs r0, #0x2e + ldrsh r1, [r5, r0] + adds r0, r4, #0 + bl __divsi3 + strh r0, [r5, #0x32] + strh r6, [r5, #0x36] + strh r6, [r5, #0x34] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end InitSpriteDataForLinearTranslation + + thumb_func_start InitAnimLinearTranslation +InitAnimLinearTranslation: @ 0x080A671C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + movs r0, #0x32 + ldrsh r1, [r7, r0] + movs r2, #0x30 + ldrsh r0, [r7, r2] + subs r1, r1, r0 + movs r3, #0x36 + ldrsh r2, [r7, r3] + movs r3, #0x34 + ldrsh r0, [r7, r3] + subs r2, r2, r0 + lsrs r0, r1, #0x1f + mov r8, r0 + lsrs r3, r2, #0x1f + mov sb, r3 + cmp r1, #0 + bge _080A6748 + rsbs r1, r1, #0 +_080A6748: + lsls r0, r1, #0x18 + lsrs r6, r0, #0x10 + adds r0, r2, #0 + cmp r0, #0 + bge _080A6754 + rsbs r0, r0, #0 +_080A6754: + lsls r0, r0, #0x18 + lsrs r5, r0, #0x10 + movs r0, #0x2e + ldrsh r4, [r7, r0] + adds r0, r6, #0 + adds r1, r4, #0 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + mov r2, r8 + cmp r2, #0 + beq _080A6780 + movs r0, #1 + orrs r6, r0 + b _080A6784 +_080A6780: + ldr r0, _080A6790 + ands r6, r0 +_080A6784: + mov r3, sb + cmp r3, #0 + beq _080A6794 + movs r0, #1 + orrs r5, r0 + b _080A6798 + .align 2, 0 +_080A6790: .4byte 0x0000FFFE +_080A6794: + ldr r0, _080A67B0 + ands r5, r0 +_080A6798: + movs r0, #0 + strh r6, [r7, #0x30] + strh r5, [r7, #0x32] + strh r0, [r7, #0x36] + strh r0, [r7, #0x34] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A67B0: .4byte 0x0000FFFE + thumb_func_end InitAnimLinearTranslation + + thumb_func_start InitAndRunAnimFastLinearTranslation +InitAndRunAnimFastLinearTranslation: @ 0x080A67B4 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x20] + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x22] + strh r0, [r4, #0x34] + adds r0, r4, #0 + bl InitAnimLinearTranslation + ldr r1, _080A67D8 + str r1, [r4, #0x1c] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A67D8: .4byte 0x080A6861 + thumb_func_end InitAndRunAnimFastLinearTranslation + + thumb_func_start sub_080A67DC +sub_080A67DC: @ 0x080A67DC + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x20] + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x22] + strh r0, [r4, #0x34] + adds r0, r4, #0 + bl InitAnimLinearTranslation + ldr r1, _080A6800 + str r1, [r4, #0x1c] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A6800: .4byte 0x080A687D + thumb_func_end sub_080A67DC + + thumb_func_start AnimTranslateLinear +AnimTranslateLinear: @ 0x080A6804 + push {r4, r5, r6, lr} + adds r2, r0, #0 + movs r1, #0x2e + ldrsh r0, [r2, r1] + cmp r0, #0 + bne _080A6814 + movs r0, #1 + b _080A6858 +_080A6814: + ldrh r1, [r2, #0x30] + ldrh r4, [r2, #0x32] + ldrh r6, [r2, #0x34] + ldrh r5, [r2, #0x36] + adds r0, r6, r1 + lsls r3, r0, #0x10 + lsrs r6, r3, #0x10 + adds r0, r5, r4 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + movs r0, #1 + ands r1, r0 + cmp r1, #0 + beq _080A6836 + lsrs r0, r3, #0x18 + rsbs r0, r0, #0 + b _080A6838 +_080A6836: + lsrs r0, r3, #0x18 +_080A6838: + strh r0, [r2, #0x24] + movs r0, #1 + ands r4, r0 + cmp r4, #0 + beq _080A6848 + lsrs r0, r5, #8 + rsbs r0, r0, #0 + b _080A684A +_080A6848: + lsrs r0, r5, #8 +_080A684A: + strh r0, [r2, #0x26] + strh r6, [r2, #0x34] + strh r5, [r2, #0x36] + ldrh r0, [r2, #0x2e] + subs r0, #1 + strh r0, [r2, #0x2e] + movs r0, #0 +_080A6858: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end AnimTranslateLinear + + thumb_func_start sub_080A6860 +sub_080A6860: @ 0x080A6860 + push {r4, lr} + adds r4, r0, #0 + bl AnimTranslateLinear + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A6874 + adds r0, r4, #0 + bl SetCallbackToStoredInData6 +_080A6874: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080A6860 + + thumb_func_start sub_080A687C +sub_080A687C: @ 0x080A687C + push {r4, lr} + adds r4, r0, #0 + bl sub_08039AE0 + adds r0, r4, #0 + bl AnimTranslateLinear + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A6896 + adds r0, r4, #0 + bl SetCallbackToStoredInData6 +_080A6896: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_080A687C + + thumb_func_start sub_080A689C +sub_080A689C: @ 0x080A689C + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r2, #0x30 + ldrsh r0, [r4, r2] + subs r0, r1, r0 + cmp r0, #0 + bge _080A68B0 + rsbs r0, r0, #0 +_080A68B0: + lsls r0, r0, #8 + movs r2, #0x2e + ldrsh r1, [r4, r2] + bl __divsi3 + strh r0, [r4, #0x2e] + adds r0, r4, #0 + bl InitAnimLinearTranslation + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_080A689C + + thumb_func_start sub_080A68C8 +sub_080A68C8: @ 0x080A68C8 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x20] + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x22] + strh r0, [r4, #0x34] + adds r0, r4, #0 + bl sub_080A689C + ldr r1, _080A68EC + str r1, [r4, #0x1c] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A68EC: .4byte 0x080A6861 + thumb_func_end sub_080A68C8 + + thumb_func_start InitAnimFastLinearTranslation +InitAnimFastLinearTranslation: @ 0x080A68F0 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + movs r0, #0x32 + ldrsh r1, [r7, r0] + movs r2, #0x30 + ldrsh r0, [r7, r2] + subs r1, r1, r0 + movs r3, #0x36 + ldrsh r2, [r7, r3] + movs r3, #0x34 + ldrsh r0, [r7, r3] + subs r2, r2, r0 + lsrs r0, r1, #0x1f + mov r8, r0 + lsrs r3, r2, #0x1f + mov sb, r3 + cmp r1, #0 + bge _080A691C + rsbs r1, r1, #0 +_080A691C: + lsls r0, r1, #0x14 + lsrs r6, r0, #0x10 + adds r0, r2, #0 + cmp r0, #0 + bge _080A6928 + rsbs r0, r0, #0 +_080A6928: + lsls r0, r0, #0x14 + lsrs r5, r0, #0x10 + movs r0, #0x2e + ldrsh r4, [r7, r0] + adds r0, r6, #0 + adds r1, r4, #0 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + mov r2, r8 + cmp r2, #0 + beq _080A6954 + movs r0, #1 + orrs r6, r0 + b _080A6958 +_080A6954: + ldr r0, _080A6964 + ands r6, r0 +_080A6958: + mov r3, sb + cmp r3, #0 + beq _080A6968 + movs r0, #1 + orrs r5, r0 + b _080A696C + .align 2, 0 +_080A6964: .4byte 0x0000FFFE +_080A6968: + ldr r0, _080A6984 + ands r5, r0 +_080A696C: + movs r0, #0 + strh r6, [r7, #0x30] + strh r5, [r7, #0x32] + strh r0, [r7, #0x36] + strh r0, [r7, #0x34] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A6984: .4byte 0x0000FFFE + thumb_func_end InitAnimFastLinearTranslation + + thumb_func_start StartAnimLinearTranslation +StartAnimLinearTranslation: @ 0x080A6988 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x20] + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x22] + strh r0, [r4, #0x34] + adds r0, r4, #0 + bl InitAnimFastLinearTranslation + ldr r1, _080A69AC + str r1, [r4, #0x1c] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A69AC: .4byte 0x080A6A0D + thumb_func_end StartAnimLinearTranslation + + thumb_func_start AnimFastTranslateLinear +AnimFastTranslateLinear: @ 0x080A69B0 + push {r4, r5, r6, lr} + adds r2, r0, #0 + movs r1, #0x2e + ldrsh r0, [r2, r1] + cmp r0, #0 + bne _080A69C0 + movs r0, #1 + b _080A6A04 +_080A69C0: + ldrh r1, [r2, #0x30] + ldrh r4, [r2, #0x32] + ldrh r6, [r2, #0x34] + ldrh r5, [r2, #0x36] + adds r0, r6, r1 + lsls r3, r0, #0x10 + lsrs r6, r3, #0x10 + adds r0, r5, r4 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + movs r0, #1 + ands r1, r0 + cmp r1, #0 + beq _080A69E2 + lsrs r0, r3, #0x14 + rsbs r0, r0, #0 + b _080A69E4 +_080A69E2: + lsrs r0, r3, #0x14 +_080A69E4: + strh r0, [r2, #0x24] + movs r0, #1 + ands r4, r0 + cmp r4, #0 + beq _080A69F4 + lsrs r0, r5, #4 + rsbs r0, r0, #0 + b _080A69F6 +_080A69F4: + lsrs r0, r5, #4 +_080A69F6: + strh r0, [r2, #0x26] + strh r6, [r2, #0x34] + strh r5, [r2, #0x36] + ldrh r0, [r2, #0x2e] + subs r0, #1 + strh r0, [r2, #0x2e] + movs r0, #0 +_080A6A04: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end AnimFastTranslateLinear + + thumb_func_start sub_080A6A0C +sub_080A6A0C: @ 0x080A6A0C + push {r4, lr} + adds r4, r0, #0 + bl AnimFastTranslateLinear + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A6A20 + adds r0, r4, #0 + bl SetCallbackToStoredInData6 +_080A6A20: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080A6A0C + + thumb_func_start InitAnimFastLinearTranslationWithSpeed +InitAnimFastLinearTranslationWithSpeed: @ 0x080A6A28 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r2, #0x30 + ldrsh r0, [r4, r2] + subs r0, r1, r0 + cmp r0, #0 + bge _080A6A3C + rsbs r0, r0, #0 +_080A6A3C: + lsls r0, r0, #4 + movs r2, #0x2e + ldrsh r1, [r4, r2] + bl __divsi3 + strh r0, [r4, #0x2e] + adds r0, r4, #0 + bl InitAnimFastLinearTranslation + pop {r4} + pop {r0} + bx r0 + thumb_func_end InitAnimFastLinearTranslationWithSpeed + + thumb_func_start sub_080A6A54 +sub_080A6A54: @ 0x080A6A54 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x20] + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x22] + strh r0, [r4, #0x34] + adds r0, r4, #0 + bl InitAnimFastLinearTranslationWithSpeed + ldr r1, _080A6A78 + str r1, [r4, #0x1c] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A6A78: .4byte 0x080A6A0D + thumb_func_end sub_080A6A54 + + thumb_func_start SetSpriteRotScale +SetSpriteRotScale: @ 0x080A6A7C + push {r4, r5, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x10 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + ldr r5, _080A6AF4 + lsls r2, r2, #0x10 + lsrs r1, r1, #0x10 + orrs r1, r2 + str r1, [sp] + ldr r0, [sp, #4] + ands r0, r5 + orrs r0, r3 + str r0, [sp, #4] + bl sub_080A6B00 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A6AB8 + mov r0, sp + ldrh r0, [r0] + rsbs r0, r0, #0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, [sp] + ands r1, r5 + orrs r1, r0 + str r1, [sp] +_080A6AB8: + ldr r1, _080A6AF8 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r4, [r0, #3] + lsls r4, r4, #0x1a + lsrs r4, r4, #0x1b + add r5, sp, #8 + mov r0, sp + adds r1, r5, #0 + movs r2, #1 + movs r3, #2 + bl ObjAffineSet + ldr r0, _080A6AFC + lsls r4, r4, #3 + adds r4, r4, r0 + ldrh r0, [r5] + strh r0, [r4] + ldrh r0, [r5, #2] + strh r0, [r4, #2] + ldrh r0, [r5, #4] + strh r0, [r4, #4] + ldrh r0, [r5, #6] + strh r0, [r4, #6] + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A6AF4: .4byte 0xFFFF0000 +_080A6AF8: .4byte 0x020205AC +_080A6AFC: .4byte 0x02021B3C + thumb_func_end SetSpriteRotScale + + thumb_func_start sub_080A6B00 +sub_080A6B00: @ 0x080A6B00 + push {r4, lr} + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A6B30 + ldr r4, _080A6B2C + movs r0, #0 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + movs r2, #0x32 + ldrsh r0, [r1, r2] + cmp r0, #0xc9 + beq _080A6B30 + movs r0, #1 + b _080A6B32 + .align 2, 0 +_080A6B2C: .4byte 0x020205AC +_080A6B30: + movs r0, #0 +_080A6B32: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_080A6B00 + + thumb_func_start PrepareBattlerSpriteForRotScale +PrepareBattlerSpriteForRotScale: @ 0x080A6B38 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + ldr r1, _080A6C04 + lsls r0, r6, #4 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r4, r0, r1 + ldrh r0, [r4, #0x2e] + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A6B6E + adds r0, r7, #0 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A6B7C +_080A6B6E: + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_080A6B7C: + ldr r1, _080A6C04 + lsls r4, r6, #4 + adds r0, r4, r6 + lsls r0, r0, #2 + adds r5, r0, r1 + movs r0, #3 + mov r1, r8 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r5, #1] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #1] + adds r2, r5, #0 + adds r2, #0x2c + ldrb r0, [r2] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2] + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A6BDA + ldrb r0, [r5, #1] + lsls r0, r0, #0x1e + cmp r0, #0 + bne _080A6BDA + ldr r0, _080A6C08 + ldr r0, [r0] + ldr r1, [r0, #4] + lsls r0, r7, #1 + adds r0, r0, r7 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #6] + movs r0, #0x1f + ands r1, r0 + lsls r1, r1, #1 + ldrb r2, [r5, #3] + movs r0, #0x3f + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #3] +_080A6BDA: + ldr r1, _080A6C04 + adds r0, r4, r6 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r3, [r0, #1] + movs r1, #3 + orrs r3, r1 + strb r3, [r0, #1] + lsrs r1, r3, #6 + ldrb r2, [r0, #3] + lsrs r2, r2, #6 + lsls r3, r3, #0x1e + lsrs r3, r3, #0x1e + bl CalcCenterToCornerVec + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A6C04: .4byte 0x020205AC +_080A6C08: .4byte 0x02024174 + thumb_func_end PrepareBattlerSpriteForRotScale + + thumb_func_start ResetSpriteRotScale +ResetSpriteRotScale: @ 0x080A6C0C + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl SetSpriteRotScale + ldr r1, _080A6C64 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r2, [r0, #1] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #1 + orrs r1, r2 + movs r2, #0xd + rsbs r2, r2, #0 + ands r1, r2 + strb r1, [r0, #1] + adds r3, r0, #0 + adds r3, #0x2c + ldrb r2, [r3] + movs r1, #0x7f + ands r1, r2 + strb r1, [r3] + ldrb r3, [r0, #1] + lsrs r1, r3, #6 + ldrb r2, [r0, #3] + lsrs r2, r2, #6 + lsls r3, r3, #0x1e + lsrs r3, r3, #0x1e + bl CalcCenterToCornerVec + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A6C64: .4byte 0x020205AC + thumb_func_end ResetSpriteRotScale + + thumb_func_start SetBattlerSpriteYOffsetFromRotation +SetBattlerSpriteYOffsetFromRotation: @ 0x080A6C68 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080A6CA0 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r2, r1, r2 + ldrb r0, [r2, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + ldr r1, _080A6CA4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #4] + movs r3, #4 + ldrsh r0, [r0, r3] + cmp r0, #0 + bge _080A6C94 + rsbs r0, r0, #0 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 +_080A6C94: + lsls r0, r1, #0x10 + asrs r0, r0, #0x13 + strh r0, [r2, #0x26] + pop {r0} + bx r0 + .align 2, 0 +_080A6CA0: .4byte 0x020205AC +_080A6CA4: .4byte 0x02021B3C + thumb_func_end SetBattlerSpriteYOffsetFromRotation + + thumb_func_start TrySetSpriteRotScale +TrySetSpriteRotScale: @ 0x080A6CA8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x10 + adds r4, r0, #0 + ldr r0, [sp, #0x28] + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + lsls r2, r2, #0x10 + lsrs r5, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r7, r3, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + ldrb r0, [r4, #1] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _080A6D4E + adds r0, r4, #0 + adds r0, #0x2c + ldrb r1, [r0] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0] + cmp r6, #0 + beq _080A6CF6 + ldrb r3, [r4, #1] + lsrs r1, r3, #6 + ldrb r2, [r4, #3] + lsrs r2, r2, #6 + lsls r3, r3, #0x1e + lsrs r3, r3, #0x1e + adds r0, r4, #0 + bl CalcCenterToCornerVec +_080A6CF6: + ldr r6, _080A6D5C + lsls r0, r7, #0x10 + orrs r5, r0 + str r5, [sp] + ldr r0, [sp, #4] + ands r0, r6 + mov r1, r8 + orrs r0, r1 + str r0, [sp, #4] + bl sub_080A6B00 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A6D24 + mov r0, sp + ldrh r0, [r0] + rsbs r0, r0, #0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, [sp] + ands r1, r6 + orrs r1, r0 + str r1, [sp] +_080A6D24: + ldrb r4, [r4, #3] + lsls r4, r4, #0x1a + lsrs r4, r4, #0x1b + add r5, sp, #8 + mov r0, sp + adds r1, r5, #0 + movs r2, #1 + movs r3, #2 + bl ObjAffineSet + ldr r0, _080A6D60 + lsls r4, r4, #3 + adds r4, r4, r0 + ldrh r0, [r5] + strh r0, [r4] + ldrh r0, [r5, #2] + strh r0, [r4, #2] + ldrh r0, [r5, #4] + strh r0, [r4, #4] + ldrh r0, [r5, #6] + strh r0, [r4, #6] +_080A6D4E: + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A6D5C: .4byte 0xFFFF0000 +_080A6D60: .4byte 0x02021B3C + thumb_func_end TrySetSpriteRotScale + + thumb_func_start sub_080A6D64 +sub_080A6D64: @ 0x080A6D64 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + movs r3, #0x80 + lsls r3, r3, #1 + movs r0, #0 + str r0, [sp] + adds r0, r4, #0 + movs r1, #1 + adds r2, r3, #0 + bl TrySetSpriteRotScale + adds r2, r4, #0 + adds r2, #0x2c + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + ldrb r3, [r4, #1] + lsrs r1, r3, #6 + ldrb r2, [r4, #3] + lsrs r2, r2, #6 + lsls r3, r3, #0x1e + lsrs r3, r3, #0x1e + adds r0, r4, #0 + bl CalcCenterToCornerVec + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080A6D64 + + thumb_func_start ArcTan2_ +ArcTan2_: @ 0x080A6DA4 + push {lr} + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl ArcTan2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ArcTan2_ + + thumb_func_start ArcTan2Neg +ArcTan2Neg: @ 0x080A6DBC + push {lr} + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl ArcTan2_ + lsls r0, r0, #0x10 + rsbs r0, r0, #0 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + thumb_func_end ArcTan2Neg + + thumb_func_start SetGreyscaleOrOriginalPalette +SetGreyscaleOrOriginalPalette: @ 0x080A6DD4 + push {r4, r5, r6, r7, lr} + lsls r1, r1, #0x18 + lsls r0, r0, #0x14 + lsrs r0, r0, #0x10 + cmp r1, #0 + bne _080A6E50 + ldr r2, _080A6E44 + ldr r1, _080A6E48 + lsls r0, r0, #1 + adds r4, r0, r1 + adds r5, r0, r2 + movs r6, #0xf +_080A6DEC: + ldr r0, [r5] + lsls r2, r0, #0x1b + lsrs r2, r2, #0x1b + lsls r1, r0, #0x16 + lsrs r1, r1, #0x1b + adds r2, r2, r1 + lsls r0, r0, #0x11 + lsrs r0, r0, #0x1b + adds r0, r0, r2 + movs r1, #3 + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x1f + ands r0, r1 + ldrb r1, [r4] + movs r3, #0x20 + rsbs r3, r3, #0 + adds r2, r3, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r4] + lsls r3, r0, #5 + ldrh r1, [r4] + ldr r7, _080A6E4C + adds r2, r7, #0 + ands r1, r2 + orrs r1, r3 + strh r1, [r4] + lsls r0, r0, #2 + ldrb r1, [r4, #1] + movs r3, #0x7d + rsbs r3, r3, #0 + adds r2, r3, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #1] + adds r4, #2 + adds r5, #2 + subs r6, #1 + cmp r6, #0 + bge _080A6DEC + b _080A6E60 + .align 2, 0 +_080A6E44: .4byte 0x020373B4 +_080A6E48: .4byte 0x020377B4 +_080A6E4C: .4byte 0xFFFFFC1F +_080A6E50: + lsls r1, r0, #1 + ldr r0, _080A6E68 + adds r0, r1, r0 + ldr r2, _080A6E6C + adds r1, r1, r2 + ldr r2, _080A6E70 + bl CpuSet +_080A6E60: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A6E68: .4byte 0x020373B4 +_080A6E6C: .4byte 0x020377B4 +_080A6E70: .4byte 0x04000008 + thumb_func_end SetGreyscaleOrOriginalPalette + + thumb_func_start sub_080A6E74 +sub_080A6E74: @ 0x080A6E74 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r4, [sp, #0x28] + ldr r5, [sp, #0x2c] + ldr r6, [sp, #0x30] + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov sb, r3 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov sl, r4 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + str r5, [sp] + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + str r6, [sp, #4] + movs r4, #0 + cmp r0, #0 + beq _080A6ECA + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A6EBE + movs r4, #0xe + b _080A6ECA +_080A6EBE: + bl sub_080A665C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r4, #1 + lsls r4, r0 +_080A6ECA: + cmp r7, #0 + beq _080A6EDC + ldr r0, _080A6F54 + ldrb r0, [r0] + adds r1, r0, #0 + adds r1, #0x10 + movs r0, #1 + lsls r0, r1 + orrs r4, r0 +_080A6EDC: + mov r0, r8 + cmp r0, #0 + beq _080A6EF0 + ldr r0, _080A6F58 + ldrb r0, [r0] + adds r1, r0, #0 + adds r1, #0x10 + movs r0, #1 + lsls r0, r1 + orrs r4, r0 +_080A6EF0: + mov r0, sb + cmp r0, #0 + beq _080A6F16 + ldr r6, _080A6F54 + ldrb r0, [r6] + movs r5, #2 + eors r0, r5 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A6F16 + ldrb r0, [r6] + eors r0, r5 + adds r1, r0, #0 + adds r1, #0x10 + movs r0, #1 + lsls r0, r1 + orrs r4, r0 +_080A6F16: + mov r0, sl + cmp r0, #0 + beq _080A6F3C + ldr r6, _080A6F58 + ldrb r0, [r6] + movs r5, #2 + eors r0, r5 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A6F3C + ldrb r0, [r6] + eors r0, r5 + adds r1, r0, #0 + adds r1, #0x10 + movs r0, #1 + lsls r0, r1 + orrs r4, r0 +_080A6F3C: + ldr r0, [sp] + cmp r0, #0 + beq _080A6F62 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A6F5C + movs r0, #0x80 + lsls r0, r0, #1 + b _080A6F60 + .align 2, 0 +_080A6F54: .4byte 0x020380D6 +_080A6F58: .4byte 0x020380D7 +_080A6F5C: + movs r0, #0x80 + lsls r0, r0, #7 +_080A6F60: + orrs r4, r0 +_080A6F62: + ldr r0, [sp, #4] + cmp r0, #0 + beq _080A6F78 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A6F78 + movs r0, #0x80 + lsls r0, r0, #2 + orrs r4, r0 +_080A6F78: + adds r0, r4, #0 + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080A6E74 + + thumb_func_start sub_080A6F8C +sub_080A6F8C: @ 0x080A6F8C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r8, r3 + movs r4, #0 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A6FBA + cmp r5, #0 + beq _080A7068 + movs r4, #0x80 + lsls r4, r4, #0xb + b _080A7068 +_080A6FBA: + cmp r5, #0 + beq _080A6FE2 + movs r0, #0 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A6FE2 + movs r0, #0 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #0x10 + movs r4, #1 + lsls r4, r0 +_080A6FE2: + cmp r6, #0 + beq _080A700E + movs r0, #2 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A700E + movs r0, #2 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + adds r1, #0x10 + movs r0, #1 + lsls r0, r1 + orrs r4, r0 +_080A700E: + cmp r7, #0 + beq _080A703A + movs r0, #1 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A703A + movs r0, #1 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + adds r1, #0x10 + movs r0, #1 + lsls r0, r1 + orrs r4, r0 +_080A703A: + mov r0, r8 + cmp r0, #0 + beq _080A7068 + movs r0, #3 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A7068 + movs r0, #3 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + adds r1, #0x10 + movs r0, #1 + lsls r0, r1 + orrs r4, r0 +_080A7068: + adds r0, r4, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_080A6F8C + + thumb_func_start sub_080A7074 +sub_080A7074: @ 0x080A7074 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bx lr + .align 2, 0 + thumb_func_end sub_080A7074 + + thumb_func_start GetBattlerAtPosition_ +GetBattlerAtPosition_: @ 0x080A707C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetBattlerAtPosition_ + + thumb_func_start sub_080A7090 +sub_080A7090: @ 0x080A7090 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080A70CE + ldr r2, _080A70BC + movs r3, #6 + ldrsh r0, [r2, r3] + movs r1, #0 + cmp r0, #0 + bne _080A70AA + movs r1, #1 +_080A70AA: + movs r3, #4 + ldrsh r0, [r2, r3] + cmp r0, #0 + bne _080A70C0 + adds r0, r4, #0 + bl InitSpritePosToAnimAttacker + b _080A70C6 + .align 2, 0 +_080A70BC: .4byte 0x020380BE +_080A70C0: + adds r0, r4, #0 + bl InitSpritePosToAnimTarget +_080A70C6: + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + b _080A70E2 +_080A70CE: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x30 + ands r0, r1 + cmp r0, #0 + beq _080A70E2 + adds r0, r4, #0 + bl DestroySpriteAndMatrix +_080A70E2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_080A7090 + + thumb_func_start TranslateAnimSpriteToTargetMonLocation +TranslateAnimSpriteToTargetMonLocation: @ 0x080A70E8 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldr r6, _080A7160 + movs r1, #0xa + ldrsh r0, [r6, r1] + movs r1, #0xff + lsls r1, r1, #8 + ands r0, r1 + movs r1, #0 + cmp r0, #0 + bne _080A7100 + movs r1, #1 +_080A7100: + ldrb r0, [r6, #0xa] + movs r7, #1 + cmp r0, #0 + bne _080A710A + movs r7, #3 +_080A710A: + adds r0, r5, #0 + bl InitSpritePosToAnimAttacker + ldr r0, _080A7164 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A7124 + ldrh r0, [r6, #4] + rsbs r0, r0, #0 + strh r0, [r6, #4] +_080A7124: + ldrh r0, [r6, #8] + strh r0, [r5, #0x2e] + ldr r4, _080A7168 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r6, #4] + adds r0, r0, r1 + strh r0, [r5, #0x32] + ldrb r0, [r4] + adds r1, r7, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r6, [r6, #6] + adds r0, r0, r6 + strh r0, [r5, #0x36] + ldr r0, _080A716C + str r0, [r5, #0x1c] + ldr r1, _080A7170 + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A7160: .4byte 0x020380BE +_080A7164: .4byte 0x020380D6 +_080A7168: .4byte 0x020380D7 +_080A716C: .4byte 0x080A67B5 +_080A7170: .4byte 0x080A34C5 + thumb_func_end TranslateAnimSpriteToTargetMonLocation + + thumb_func_start sub_080A7174 +sub_080A7174: @ 0x080A7174 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldr r0, _080A71D4 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A7194 + ldr r1, _080A71D8 + ldrh r0, [r1, #4] + rsbs r0, r0, #0 + strh r0, [r1, #4] +_080A7194: + ldr r4, _080A71D8 + ldrh r0, [r4, #8] + strh r0, [r6, #0x2e] + ldr r5, _080A71DC + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #4] + adds r0, r0, r1 + strh r0, [r6, #0x32] + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #6] + adds r0, r0, r1 + strh r0, [r6, #0x36] + ldrh r0, [r4, #0xa] + strh r0, [r6, #0x38] + adds r0, r6, #0 + bl InitAnimArcTranslation + ldr r0, _080A71E0 + str r0, [r6, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080A71D4: .4byte 0x020380D6 +_080A71D8: .4byte 0x020380BE +_080A71DC: .4byte 0x020380D7 +_080A71E0: .4byte 0x080A71E5 + thumb_func_end sub_080A7174 + + thumb_func_start sub_080A71E4 +sub_080A71E4: @ 0x080A71E4 + push {r4, lr} + adds r4, r0, #0 + bl TranslateAnimHorizontalArc + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A71F8 + adds r0, r4, #0 + bl DestroyAnimSprite +_080A71F8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080A71E4 + + thumb_func_start sub_080A7200 +sub_080A7200: @ 0x080A7200 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldr r0, _080A7214 + movs r2, #0xc + ldrsh r1, [r0, r2] + cmp r1, #0 + bne _080A7218 + movs r4, #1 + movs r7, #3 + b _080A721C + .align 2, 0 +_080A7214: .4byte 0x020380BE +_080A7218: + movs r4, #0 + movs r7, #1 +_080A721C: + movs r1, #0xa + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _080A7234 + adds r0, r5, #0 + adds r1, r4, #0 + bl InitSpritePosToAnimAttacker + ldr r0, _080A7230 + b _080A723E + .align 2, 0 +_080A7230: .4byte 0x020380D6 +_080A7234: + adds r0, r5, #0 + adds r1, r4, #0 + bl InitSpritePosToAnimTarget + ldr r0, _080A729C +_080A723E: + ldrb r6, [r0] + ldr r0, _080A72A0 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A7256 + ldr r1, _080A72A4 + ldrh r0, [r1, #4] + rsbs r0, r0, #0 + strh r0, [r1, #4] +_080A7256: + adds r0, r5, #0 + adds r1, r4, #0 + bl InitSpritePosToAnimTarget + ldr r4, _080A72A4 + ldrh r0, [r4, #8] + strh r0, [r5, #0x2e] + adds r0, r6, #0 + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r2, [r4, #4] + adds r0, r0, r2 + strh r0, [r5, #0x32] + adds r0, r6, #0 + adds r1, r7, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r4, [r4, #6] + adds r0, r0, r4 + strh r0, [r5, #0x36] + ldr r0, _080A72A8 + str r0, [r5, #0x1c] + ldr r1, _080A72AC + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A729C: .4byte 0x020380D7 +_080A72A0: .4byte 0x020380D6 +_080A72A4: .4byte 0x020380BE +_080A72A8: .4byte 0x080A67B5 +_080A72AC: .4byte 0x080A34C5 + thumb_func_end sub_080A7200 + + thumb_func_start CloneBattlerSpriteWithBlend +CloneBattlerSpriteWithBlend: @ 0x080A72B0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xff + beq _080A731A + movs r6, #0 + ldr r2, _080A730C + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r1, r0, #2 +_080A72CC: + lsls r0, r6, #4 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r4, r0, r2 + adds r5, r4, #0 + adds r5, #0x3e + ldrb r0, [r5] + lsls r0, r0, #0x1f + cmp r0, #0 + bne _080A7310 + adds r0, r4, #0 + adds r1, r1, r2 + movs r2, #0x44 + bl memcpy + ldrb r1, [r4, #1] + movs r2, #0xd + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r1, r0 + movs r0, #4 + orrs r1, r0 + strb r1, [r4, #1] + ldrb r0, [r5] + adds r2, #8 + adds r1, r2, #0 + ands r0, r1 + strb r0, [r5] + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + b _080A731E + .align 2, 0 +_080A730C: .4byte 0x020205AC +_080A7310: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #0x3f + bls _080A72CC +_080A731A: + movs r0, #1 + rsbs r0, r0, #0 +_080A731E: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end CloneBattlerSpriteWithBlend + + thumb_func_start obj_delete_but_dont_free_vram +obj_delete_but_dont_free_vram: @ 0x080A7324 + push {lr} + adds r3, r0, #0 + adds r3, #0x3f + ldrb r1, [r3] + movs r2, #0x40 + orrs r1, r2 + strb r1, [r3] + bl DestroySprite + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end obj_delete_but_dont_free_vram + + thumb_func_start sub_080A733C +sub_080A733C: @ 0x080A733C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r6, #0 + movs r3, #0 + ldr r2, _080A73B4 + movs r0, #4 + ldrsh r1, [r2, r0] + movs r4, #0 + ldrsh r0, [r2, r4] + cmp r1, r0 + ble _080A7356 + movs r3, #1 +_080A7356: + cmp r1, r0 + bge _080A735C + ldr r3, _080A73B8 +_080A735C: + movs r0, #6 + ldrsh r1, [r2, r0] + movs r4, #2 + ldrsh r0, [r2, r4] + cmp r1, r0 + ble _080A736A + movs r6, #1 +_080A736A: + cmp r1, r0 + bge _080A7370 + ldr r6, _080A73B8 +_080A7370: + ldr r0, _080A73BC + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + adds r4, r4, r0 + movs r1, #0 + strh r1, [r4, #8] + ldrh r0, [r2, #8] + strh r0, [r4, #0xa] + strh r1, [r4, #0xc] + ldrh r0, [r2] + strh r0, [r4, #0xe] + ldrh r0, [r2, #2] + strh r0, [r4, #0x10] + strh r3, [r4, #0x12] + strh r6, [r4, #0x14] + ldrh r0, [r2, #4] + strh r0, [r4, #0x16] + ldrh r0, [r2, #6] + strh r0, [r4, #0x18] + ldrh r1, [r2, #2] + lsls r1, r1, #8 + ldrh r0, [r2] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + ldr r0, _080A73C0 + str r0, [r4] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080A73B4: .4byte 0x020380BE +_080A73B8: .4byte 0x0000FFFF +_080A73BC: .4byte 0x03005B60 +_080A73C0: .4byte 0x080A73C5 + thumb_func_end sub_080A733C + + thumb_func_start sub_080A73C4 +sub_080A73C4: @ 0x080A73C4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080A7410 + adds r4, r0, r1 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0xa + ldrsh r1, [r4, r2] + cmp r0, r1 + ble _080A7458 + movs r0, #0 + strh r0, [r4, #8] + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _080A7414 + ldrh r2, [r4, #0xe] + movs r3, #0xe + ldrsh r1, [r4, r3] + movs r3, #0x16 + ldrsh r0, [r4, r3] + cmp r1, r0 + beq _080A7428 + ldrh r0, [r4, #0x12] + adds r0, r2, r0 + strh r0, [r4, #0xe] + b _080A7428 + .align 2, 0 +_080A7410: .4byte 0x03005B60 +_080A7414: + ldrh r2, [r4, #0x10] + movs r0, #0x10 + ldrsh r1, [r4, r0] + movs r3, #0x18 + ldrsh r0, [r4, r3] + cmp r1, r0 + beq _080A7428 + ldrh r0, [r4, #0x14] + adds r0, r2, r0 + strh r0, [r4, #0x10] +_080A7428: + ldrh r1, [r4, #0x10] + lsls r1, r1, #8 + ldrh r0, [r4, #0xe] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r0, #0xe + ldrsh r1, [r4, r0] + movs r2, #0x16 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080A7458 + movs r3, #0x10 + ldrsh r1, [r4, r3] + movs r2, #0x18 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080A7458 + adds r0, r5, #0 + bl DestroyAnimVisualTask +_080A7458: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080A73C4 + + thumb_func_start AnimTask_BlendMonInAndOut +AnimTask_BlendMonInAndOut: @ 0x080A7460 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080A7480 + ldrb r0, [r0] + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0xff + bne _080A7484 + adds r0, r4, #0 + bl DestroyAnimVisualTask + b _080A74AA + .align 2, 0 +_080A7480: .4byte 0x020380BE +_080A7484: + ldr r1, _080A74B0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r2, _080A74B4 + lsls r1, r3, #4 + adds r1, r1, r3 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r1, [r1, #5] + lsrs r1, r1, #4 + lsls r1, r1, #4 + ldr r3, _080A74B8 + adds r2, r3, #0 + adds r1, r1, r2 + strh r1, [r0, #8] + bl AnimTask_BlendMonInAndOutSetup +_080A74AA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A74B0: .4byte 0x03005B60 +_080A74B4: .4byte 0x020205AC +_080A74B8: .4byte 0x00000101 + thumb_func_end AnimTask_BlendMonInAndOut + + thumb_func_start AnimTask_BlendMonInAndOutSetup +AnimTask_BlendMonInAndOutSetup: @ 0x080A74BC + ldr r3, _080A74DC + ldrh r1, [r3, #2] + movs r2, #0 + strh r1, [r0, #0xa] + strh r2, [r0, #0xc] + ldrh r1, [r3, #4] + strh r1, [r0, #0xe] + strh r2, [r0, #0x10] + ldrh r1, [r3, #6] + strh r1, [r0, #0x12] + strh r2, [r0, #0x14] + ldrh r1, [r3, #8] + strh r1, [r0, #0x16] + ldr r1, _080A74E0 + str r1, [r0] + bx lr + .align 2, 0 +_080A74DC: .4byte 0x020380BE +_080A74E0: .4byte 0x080A74E5 + thumb_func_end AnimTask_BlendMonInAndOutSetup + + thumb_func_start AnimTask_BlendMonInAndOutStep +AnimTask_BlendMonInAndOutStep: @ 0x080A74E4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080A753C + adds r4, r0, r1 + ldrh r0, [r4, #0x10] + adds r0, #1 + strh r0, [r4, #0x10] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x12 + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _080A7574 + movs r0, #0 + strh r0, [r4, #0x10] + movs r1, #0x14 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080A7540 + ldrh r2, [r4, #0xc] + adds r2, #1 + strh r2, [r4, #0xc] + ldrh r0, [r4, #8] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrh r3, [r4, #0xa] + movs r1, #0xf + bl BlendPalette + movs r2, #0xc + ldrsh r1, [r4, r2] + movs r2, #0xe + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080A7574 + movs r0, #1 + strh r0, [r4, #0x14] + b _080A7574 + .align 2, 0 +_080A753C: .4byte 0x03005B60 +_080A7540: + ldrh r2, [r4, #0xc] + subs r2, #1 + strh r2, [r4, #0xc] + ldrh r0, [r4, #8] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrh r3, [r4, #0xa] + movs r1, #0xf + bl BlendPalette + movs r0, #0xc + ldrsh r1, [r4, r0] + cmp r1, #0 + bne _080A7574 + ldrh r0, [r4, #0x16] + subs r0, #1 + strh r0, [r4, #0x16] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080A756E + strh r1, [r4, #0x10] + strh r1, [r4, #0x14] + b _080A7574 +_080A756E: + adds r0, r5, #0 + bl DestroyAnimVisualTask +_080A7574: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AnimTask_BlendMonInAndOutStep + + thumb_func_start sub_080A757C +sub_080A757C: @ 0x080A757C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080A759C + ldrh r0, [r0] + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xff + bne _080A75A0 + adds r0, r4, #0 + bl DestroyAnimVisualTask + b _080A75B6 + .align 2, 0 +_080A759C: .4byte 0x020380BE +_080A75A0: + ldr r1, _080A75BC + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + lsls r1, r2, #4 + ldr r2, _080A75C0 + adds r1, r1, r2 + strh r1, [r0, #8] + bl AnimTask_BlendMonInAndOutSetup +_080A75B6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A75BC: .4byte 0x03005B60 +_080A75C0: .4byte 0x00000101 + thumb_func_end sub_080A757C + + thumb_func_start PrepareAffineAnimInTaskData +PrepareAffineAnimInTaskData: @ 0x080A75C4 + push {r4, lr} + adds r3, r0, #0 + adds r4, r1, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r1, #0 + strh r1, [r3, #0x16] + strh r1, [r3, #0x18] + strh r1, [r3, #0x1a] + strh r4, [r3, #0x26] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r3, #0x1c] + strh r0, [r3, #0x1e] + strh r1, [r3, #0x20] + adds r0, r3, #0 + adds r0, #0x22 + adds r3, #0x24 + adds r1, r3, #0 + bl StorePointerInVars + adds r0, r4, #0 + movs r1, #0 + bl PrepareBattlerSpriteForRotScale + pop {r4} + pop {r0} + bx r0 + thumb_func_end PrepareAffineAnimInTaskData + + thumb_func_start RunAffineAnimFromTaskData +RunAffineAnimFromTaskData: @ 0x080A75FC + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r5, _080A769C + movs r1, #0x22 + ldrsh r0, [r4, r1] + movs r2, #0x24 + ldrsh r1, [r4, r2] + bl LoadPointerFromVars + movs r3, #0x16 + ldrsh r1, [r4, r3] + lsls r1, r1, #3 + adds r1, r0, r1 + str r1, [r5] + movs r6, #0 + ldrsh r2, [r1, r6] + ldr r0, _080A76A0 + cmp r2, r0 + beq _080A76A4 + cmp r2, r0 + bgt _080A7704 + subs r0, #1 + cmp r2, r0 + beq _080A76AA + ldrb r0, [r1, #5] + cmp r0, #0 + bne _080A764A + ldrh r0, [r1] + strh r0, [r4, #0x1c] + ldrh r0, [r1, #2] + strh r0, [r4, #0x1e] + ldrb r0, [r1, #4] + strh r0, [r4, #0x20] + ldrh r0, [r4, #0x16] + adds r0, #1 + strh r0, [r4, #0x16] + adds r0, r1, #0 + adds r0, #8 + str r0, [r5] +_080A764A: + ldr r1, [r5] + ldrh r0, [r1] + ldrh r2, [r4, #0x1c] + adds r0, r0, r2 + strh r0, [r4, #0x1c] + ldrh r0, [r1, #2] + ldrh r3, [r4, #0x1e] + adds r0, r0, r3 + strh r0, [r4, #0x1e] + ldrh r0, [r4, #0x20] + ldrb r1, [r1, #4] + adds r0, r0, r1 + strh r0, [r4, #0x20] + ldrh r0, [r4, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r6, #0x1c + ldrsh r1, [r4, r6] + movs r3, #0x1e + ldrsh r2, [r4, r3] + ldrh r3, [r4, #0x20] + bl SetSpriteRotScale + ldrh r0, [r4, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl SetBattlerSpriteYOffsetFromYScale + ldrh r0, [r4, #0x18] + adds r0, #1 + strh r0, [r4, #0x18] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldr r1, [r5] + ldrb r1, [r1, #5] + cmp r0, r1 + blt _080A772A + movs r0, #0 + strh r0, [r4, #0x18] + b _080A76FC + .align 2, 0 +_080A769C: .4byte 0x020380E4 +_080A76A0: .4byte 0x00007FFE +_080A76A4: + ldrh r0, [r1, #2] + strh r0, [r4, #0x16] + b _080A772A +_080A76AA: + ldrh r2, [r1, #2] + movs r6, #2 + ldrsh r0, [r1, r6] + cmp r0, #0 + beq _080A76FC + ldrh r1, [r4, #0x1a] + movs r3, #0x1a + ldrsh r0, [r4, r3] + cmp r0, #0 + beq _080A76CA + subs r0, r1, #1 + strh r0, [r4, #0x1a] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080A76CC + b _080A76FC +_080A76CA: + strh r2, [r4, #0x1a] +_080A76CC: + movs r6, #0x16 + ldrsh r0, [r4, r6] + cmp r0, #0 + beq _080A772A + ldr r3, _080A76F4 + ldr r5, _080A76F8 +_080A76D8: + ldrh r2, [r4, #0x16] + subs r1, r2, #1 + strh r1, [r4, #0x16] + ldr r0, [r3] + subs r0, #8 + str r0, [r3] + movs r6, #0 + ldrsh r0, [r0, r6] + cmp r0, r5 + beq _080A7728 + lsls r0, r1, #0x10 + cmp r0, #0 + bne _080A76D8 + b _080A772A + .align 2, 0 +_080A76F4: .4byte 0x020380E4 +_080A76F8: .4byte 0x00007FFD +_080A76FC: + ldrh r0, [r4, #0x16] + adds r0, #1 + strh r0, [r4, #0x16] + b _080A772A +_080A7704: + ldr r2, _080A7724 + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0 + strh r1, [r0, #0x26] + ldrh r0, [r4, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl ResetSpriteRotScale + movs r0, #0 + b _080A772C + .align 2, 0 +_080A7724: .4byte 0x020205AC +_080A7728: + strh r2, [r4, #0x16] +_080A772A: + movs r0, #1 +_080A772C: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end RunAffineAnimFromTaskData + + thumb_func_start SetBattlerSpriteYOffsetFromYScale +SetBattlerSpriteYOffsetFromYScale: @ 0x080A7734 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl GetBattlerYDeltaFromSpriteId + lsls r0, r0, #0x10 + lsrs r0, r0, #0xf + movs r1, #0x40 + subs r5, r1, r0 + ldr r1, _080A7780 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r4, r0, r1 + ldrb r1, [r4, #3] + lsls r1, r1, #0x1a + lsrs r1, r1, #0x1b + lsls r0, r5, #8 + ldr r2, _080A7784 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r2, #6 + ldrsh r1, [r1, r2] + bl __divsi3 + cmp r0, #0x80 + ble _080A7770 + movs r0, #0x80 +_080A7770: + subs r0, r5, r0 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + strh r0, [r4, #0x26] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A7780: .4byte 0x020205AC +_080A7784: .4byte 0x02021B3C + thumb_func_end SetBattlerSpriteYOffsetFromYScale + + thumb_func_start SetBattlerSpriteYOffsetFromOtherYScale +SetBattlerSpriteYOffsetFromOtherYScale: @ 0x080A7788 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, r1, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerYDeltaFromSpriteId + lsls r0, r0, #0x10 + lsrs r0, r0, #0xf + movs r1, #0x40 + subs r5, r1, r0 + ldr r1, _080A77D8 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r4, r0, r1 + ldrb r1, [r4, #3] + lsls r1, r1, #0x1a + lsrs r1, r1, #0x1b + lsls r0, r5, #8 + ldr r2, _080A77DC + lsls r1, r1, #3 + adds r1, r1, r2 + movs r2, #6 + ldrsh r1, [r1, r2] + bl __divsi3 + cmp r0, #0x80 + ble _080A77C8 + movs r0, #0x80 +_080A77C8: + subs r0, r5, r0 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + strh r0, [r4, #0x26] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A77D8: .4byte 0x020205AC +_080A77DC: .4byte 0x02021B3C + thumb_func_end SetBattlerSpriteYOffsetFromOtherYScale + + thumb_func_start GetBattlerYDeltaFromSpriteId +GetBattlerYDeltaFromSpriteId: @ 0x080A77E0 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _080A7828 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0, #0x2e] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r4, #0 + ldr r1, _080A782C + ldr r7, _080A7830 + ldr r0, _080A7834 + adds r6, r5, r0 +_080A7800: + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, r2 + beq _080A780A + b _080A78FC +_080A780A: + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A7840 + ldr r0, _080A7838 + ldr r0, [r0] + ldr r0, [r0, #0x18] + ldrh r2, [r0] + ldr r1, _080A783C + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r0, [r0, #1] + b _080A790A + .align 2, 0 +_080A7828: .4byte 0x020205AC +_080A782C: .4byte 0x02023E88 +_080A7830: .4byte 0x00000181 +_080A7834: .4byte 0x02024188 +_080A7838: .4byte 0x02039BD4 +_080A783C: .4byte 0x082D5A68 +_080A7840: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A78A0 + ldr r0, _080A787C + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r5, #2 + adds r1, r0, r1 + ldrh r0, [r1, #2] + cmp r0, #0 + bne _080A7888 + ldr r1, _080A7880 + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080A7884 + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + b _080A788A + .align 2, 0 +_080A787C: .4byte 0x02024174 +_080A7880: .4byte 0x02023D12 +_080A7884: .4byte 0x02024190 +_080A7888: + ldrh r2, [r1, #2] +_080A788A: + cmp r2, r7 + bne _080A7898 + ldr r0, _080A7894 + b _080A78E0 + .align 2, 0 +_080A7894: .4byte 0x084FE698 +_080A7898: + ldr r0, _080A789C + b _080A78EE + .align 2, 0 +_080A789C: .4byte 0x082D5A68 +_080A78A0: + ldr r0, _080A78CC + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r5, #2 + adds r1, r0, r1 + ldrh r0, [r1, #2] + cmp r0, #0 + bne _080A78D8 + ldr r1, _080A78D0 + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080A78D4 + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + b _080A78DA + .align 2, 0 +_080A78CC: .4byte 0x02024174 +_080A78D0: .4byte 0x02023D12 +_080A78D4: .4byte 0x020243E8 +_080A78D8: + ldrh r2, [r1, #2] +_080A78DA: + cmp r2, r7 + bne _080A78EC + ldr r0, _080A78E8 +_080A78E0: + ldrb r1, [r6] + adds r1, r1, r0 + ldrb r0, [r1] + b _080A790A + .align 2, 0 +_080A78E8: .4byte 0x084FE694 +_080A78EC: + ldr r0, _080A78F8 +_080A78EE: + lsls r1, r2, #2 + adds r1, r1, r0 + ldrb r0, [r1, #1] + b _080A790A + .align 2, 0 +_080A78F8: .4byte 0x082D45C8 +_080A78FC: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #3 + bhi _080A7908 + b _080A7800 +_080A7908: + movs r0, #0x40 +_080A790A: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end GetBattlerYDeltaFromSpriteId + + thumb_func_start StorePointerInVars +StorePointerInVars: @ 0x080A7910 + strh r2, [r0] + asrs r2, r2, #0x10 + strh r2, [r1] + bx lr + thumb_func_end StorePointerInVars + + thumb_func_start LoadPointerFromVars +LoadPointerFromVars: @ 0x080A7918 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r1, #0x10 + orrs r0, r1 + bx lr + .align 2, 0 + thumb_func_end LoadPointerFromVars + + thumb_func_start sub_080A7924 +sub_080A7924: @ 0x080A7924 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + mov r8, r0 + adds r5, r3, #0 + ldr r0, [sp, #0x14] + ldr r4, [sp, #0x18] + ldr r6, [sp, #0x1c] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + mov r3, r8 + strh r6, [r3, #0x18] + strh r1, [r3, #0x26] + strh r2, [r3, #0x1a] + strh r5, [r3, #0x1c] + strh r0, [r3, #0x22] + strh r4, [r3, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + subs r0, r0, r2 + adds r1, r6, #0 + bl __divsi3 + mov r1, r8 + strh r0, [r1, #0x1e] + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + subs r4, r4, r5 + adds r0, r4, #0 + adds r1, r6, #0 + bl __divsi3 + mov r3, r8 + strh r0, [r3, #0x20] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080A7924 + + thumb_func_start sub_080A7990 +sub_080A7990: @ 0x080A7990 + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x18] + movs r2, #0x18 + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _080A79A2 + movs r0, #0 + b _080A79FE +_080A79A2: + subs r0, r1, #1 + strh r0, [r4, #0x18] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080A79BC + ldrh r0, [r4, #0x1e] + ldrh r3, [r4, #0x1a] + adds r0, r0, r3 + strh r0, [r4, #0x1a] + ldrh r0, [r4, #0x20] + ldrh r1, [r4, #0x1c] + adds r0, r0, r1 + b _080A79C2 +_080A79BC: + ldrh r0, [r4, #0x22] + strh r0, [r4, #0x1a] + ldrh r0, [r4, #0x24] +_080A79C2: + strh r0, [r4, #0x1c] + ldrh r0, [r4, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0x1a + ldrsh r1, [r4, r2] + movs r3, #0x1c + ldrsh r2, [r4, r3] + movs r3, #0 + bl SetSpriteRotScale + movs r0, #0x18 + ldrsh r3, [r4, r0] + cmp r3, #0 + beq _080A79EC + ldrh r0, [r4, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl SetBattlerSpriteYOffsetFromYScale + b _080A79FC +_080A79EC: + ldr r2, _080A7A04 + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r3, [r0, #0x26] +_080A79FC: + ldrb r0, [r4, #0x18] +_080A79FE: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080A7A04: .4byte 0x020205AC + thumb_func_end sub_080A7990 + + thumb_func_start AnimTask_GetFrustrationPowerLevel +AnimTask_GetFrustrationPowerLevel: @ 0x080A7A08 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _080A7A34 + ldrb r0, [r0] + movs r1, #0 + cmp r0, #0x1e + bls _080A7A26 + movs r1, #1 + cmp r0, #0x64 + bls _080A7A26 + movs r1, #3 + cmp r0, #0xc8 + bhi _080A7A26 + movs r1, #2 +_080A7A26: + ldr r0, _080A7A38 + strh r1, [r0, #0xe] + adds r0, r2, #0 + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_080A7A34: .4byte 0x020380BA +_080A7A38: .4byte 0x020380BE + thumb_func_end AnimTask_GetFrustrationPowerLevel + + thumb_func_start sub_080A7A3C +sub_080A7A3C: @ 0x080A7A3C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r7, r4, #0 + ldr r6, _080A7B30 + ldrb r0, [r6] + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A7A7C + ldr r2, _080A7B34 + ldr r1, _080A7B38 + ldrb r0, [r6] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #3 + adds r2, r4, #0 + ands r2, r0 + lsls r2, r2, #2 + ldrb r3, [r1, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1, #5] +_080A7A7C: + ldr r0, _080A7B3C + mov r8, r0 + ldrb r0, [r0] + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A7AB4 + ldr r2, _080A7B34 + ldr r1, _080A7B38 + mov r3, r8 + ldrb r0, [r3] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #3 + adds r2, r4, #0 + ands r2, r0 + lsls r2, r2, #2 + ldrb r3, [r1, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1, #5] +_080A7AB4: + ldrb r0, [r6] + movs r5, #2 + eors r0, r5 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A7AEC + ldr r2, _080A7B34 + ldr r1, _080A7B38 + ldrb r0, [r6] + eors r0, r5 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #3 + adds r2, r4, #0 + ands r2, r0 + lsls r2, r2, #2 + ldrb r3, [r1, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1, #5] +_080A7AEC: + mov r1, r8 + ldrb r0, [r1] + eors r0, r5 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A7B24 + ldr r2, _080A7B34 + ldr r1, _080A7B38 + mov r3, r8 + ldrb r0, [r3] + eors r0, r5 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #3 + ands r7, r0 + lsls r3, r7, #2 + ldrb r2, [r1, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #5] +_080A7B24: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A7B30: .4byte 0x020380D7 +_080A7B34: .4byte 0x020205AC +_080A7B38: .4byte 0x02023E88 +_080A7B3C: .4byte 0x020380D6 + thumb_func_end sub_080A7A3C + + thumb_func_start sub_080A7B40 +sub_080A7B40: @ 0x080A7B40 + push {r4, r5, r6, lr} + movs r5, #0 + ldr r0, _080A7BA0 + ldrb r0, [r0] + cmp r5, r0 + bge _080A7B9A + ldr r6, _080A7BA4 +_080A7B4E: + lsls r0, r5, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A7B90 + adds r0, r4, #0 + bl GetBattlerSpriteSubpriority + ldr r3, _080A7BA8 + adds r3, r5, r3 + ldrb r2, [r3] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r6 + adds r1, #0x43 + strb r0, [r1] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r2, [r0, #5] + movs r3, #0xd + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r2, r1 + movs r1, #8 + orrs r2, r1 + strb r2, [r0, #5] +_080A7B90: + adds r5, #1 + ldr r0, _080A7BA0 + ldrb r0, [r0] + cmp r5, r0 + blt _080A7B4E +_080A7B9A: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080A7BA0: .4byte 0x02023D10 +_080A7BA4: .4byte 0x020205AC +_080A7BA8: .4byte 0x02023E88 + thumb_func_end sub_080A7B40 + + thumb_func_start GetBattlerSpriteSubpriority +GetBattlerSpriteSubpriority: @ 0x080A7BAC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A7BC8 + cmp r4, #2 + bne _080A7BC4 + movs r0, #0x1e + b _080A7BE8 +_080A7BC4: + movs r0, #0x28 + b _080A7BE8 +_080A7BC8: + adds r0, r4, #0 + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x1e + cmp r0, #0 + beq _080A7BE6 + movs r1, #0x14 + cmp r0, #2 + beq _080A7BE6 + movs r1, #0x32 + cmp r0, #1 + bne _080A7BE6 + movs r1, #0x28 +_080A7BE6: + adds r0, r1, #0 +_080A7BE8: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetBattlerSpriteSubpriority + + thumb_func_start GetBattlerSpriteBGPriority +GetBattlerSpriteBGPriority: @ 0x080A7BF0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A7C0C + movs r0, #2 + b _080A7C24 +_080A7C0C: + cmp r4, #0 + beq _080A7C14 + cmp r4, #3 + bne _080A7C18 +_080A7C14: + movs r0, #2 + b _080A7C1A +_080A7C18: + movs r0, #1 +_080A7C1A: + movs r1, #4 + bl GetAnimBgAttribute + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_080A7C24: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetBattlerSpriteBGPriority + + thumb_func_start GetBattlerSpriteBGPriorityRank +GetBattlerSpriteBGPriorityRank: @ 0x080A7C2C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A7C52 + adds r0, r4, #0 + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _080A7C4E + cmp r0, #3 + bne _080A7C52 +_080A7C4E: + movs r0, #2 + b _080A7C54 +_080A7C52: + movs r0, #1 +_080A7C54: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetBattlerSpriteBGPriorityRank + + thumb_func_start sub_080A7C5C +sub_080A7C5C: @ 0x080A7C5C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + ldr r4, [sp, #0x30] + ldr r5, [sp, #0x34] + ldr r6, [sp, #0x38] + mov r8, r6 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sb, r1 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + mov sl, r3 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + str r4, [sp, #4] + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + str r5, [sp, #8] + lsls r0, r7, #3 + ldr r1, _080A7D3C + adds r0, r0, r1 + bl LoadSpriteSheet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0xc] + ldr r1, _080A7D40 + lsls r0, r7, #1 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r0, [r0, #2] + bl AllocSpritePalette + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r4, _080A7D44 + ldr r0, [r4] + cmp r0, #0 + beq _080A7CDA + movs r1, #0xbe + lsls r1, r1, #1 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #0 + bne _080A7CDA + movs r0, #0x80 + lsls r0, r0, #6 + bl AllocZeroed + ldr r1, [r4] + movs r2, #0xbe + lsls r2, r2, #1 + adds r1, r1, r2 + str r0, [r1] +_080A7CDA: + mov r3, sb + cmp r3, #0 + bne _080A7D78 + adds r0, r6, #0 + ldr r1, [sp, #0x3c] + mov r2, r8 + bl GetMonSpritePalFromSpeciesAndPersonality + lsls r1, r5, #0x14 + movs r2, #0x80 + lsls r2, r2, #0x11 + adds r1, r1, r2 + lsrs r1, r1, #0x10 + movs r2, #0x20 + bl LoadCompressedPalette + ldr r3, [sp, #0x44] + cmp r3, #1 + beq _080A7D26 + ldr r0, [sp, #0x40] + lsls r1, r0, #0x18 + lsrs r1, r1, #0x18 + movs r0, #5 + bl sub_08068438 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080A7D26 + ldr r0, _080A7D48 + ldr r0, [r0] + ldr r1, [r0] + ldr r2, [sp, #0x40] + lsls r0, r2, #2 + adds r0, r0, r1 + ldrh r0, [r0, #2] + cmp r0, #0 + beq _080A7D50 +_080A7D26: + lsls r0, r6, #3 + ldr r1, _080A7D4C + adds r0, r0, r1 + ldr r1, _080A7D44 + ldr r1, [r1] + movs r3, #0xbe + lsls r3, r3, #1 + adds r1, r1, r3 + ldr r1, [r1] + movs r2, #1 + b _080A7DD2 + .align 2, 0 +_080A7D3C: .4byte 0x084FE6CC +_080A7D40: .4byte 0x084FE69C +_080A7D44: .4byte 0x02024178 +_080A7D48: .4byte 0x02024174 +_080A7D4C: .4byte 0x082DDA1C +_080A7D50: + lsls r0, r6, #3 + ldr r1, _080A7D70 + adds r0, r0, r1 + ldr r1, _080A7D74 + ldr r1, [r1] + movs r2, #0xbe + lsls r2, r2, #1 + adds r1, r1, r2 + ldr r1, [r1] + movs r2, #1 + str r2, [sp] + adds r2, r6, #0 + mov r3, r8 + bl LoadSpecialPokePic_2 + b _080A7E08 + .align 2, 0 +_080A7D70: .4byte 0x082DDA1C +_080A7D74: .4byte 0x02024178 +_080A7D78: + adds r0, r6, #0 + ldr r1, [sp, #0x3c] + mov r2, r8 + bl GetMonSpritePalFromSpeciesAndPersonality + lsls r1, r5, #0x14 + movs r3, #0x80 + lsls r3, r3, #0x11 + adds r1, r1, r3 + lsrs r1, r1, #0x10 + movs r2, #0x20 + bl LoadCompressedPalette + ldr r0, [sp, #0x44] + cmp r0, #1 + beq _080A7DBE + ldr r2, [sp, #0x40] + lsls r1, r2, #0x18 + lsrs r1, r1, #0x18 + movs r0, #5 + bl sub_08068438 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080A7DBE + ldr r0, _080A7DE0 + ldr r0, [r0] + ldr r1, [r0] + ldr r3, [sp, #0x40] + lsls r0, r3, #2 + adds r0, r0, r1 + ldrh r2, [r0, #2] + cmp r2, #0 + beq _080A7DEC +_080A7DBE: + lsls r0, r6, #3 + ldr r1, _080A7DE4 + adds r0, r0, r1 + ldr r1, _080A7DE8 + ldr r1, [r1] + movs r2, #0xbe + lsls r2, r2, #1 + adds r1, r1, r2 + ldr r1, [r1] + movs r2, #0 +_080A7DD2: + str r2, [sp] + adds r2, r6, #0 + mov r3, r8 + bl LoadSpecialPokePic_DontHandleDeoxys + b _080A7E08 + .align 2, 0 +_080A7DE0: .4byte 0x02024174 +_080A7DE4: .4byte 0x082D6148 +_080A7DE8: .4byte 0x02024178 +_080A7DEC: + lsls r0, r6, #3 + ldr r1, _080A7E54 + adds r0, r0, r1 + ldr r1, _080A7E58 + ldr r1, [r1] + movs r3, #0xbe + lsls r3, r3, #1 + adds r1, r1, r3 + ldr r1, [r1] + str r2, [sp] + adds r2, r6, #0 + mov r3, r8 + bl LoadSpecialPokePic_2 +_080A7E08: + ldr r5, _080A7E58 + ldr r0, [r5] + movs r4, #0xbe + lsls r4, r4, #1 + adds r0, r0, r4 + ldr r0, [r0] + ldr r2, [sp, #0xc] + lsls r1, r2, #5 + ldr r3, _080A7E5C + adds r1, r1, r3 + movs r2, #0x80 + lsls r2, r2, #4 + movs r3, #1 + bl RequestDma3Copy + ldr r0, [r5] + adds r0, r0, r4 + ldr r0, [r0] + bl Free + ldr r0, [r5] + adds r0, r0, r4 + movs r1, #0 + str r1, [r0] + mov r0, sb + cmp r0, #0 + bne _080A7E68 + lsls r0, r7, #1 + adds r0, r0, r7 + lsls r0, r0, #3 + ldr r1, _080A7E60 + adds r0, r0, r1 + mov r2, sl + lsls r1, r2, #0x10 + asrs r1, r1, #0x10 + ldr r3, _080A7E64 + b _080A7E7A + .align 2, 0 +_080A7E54: .4byte 0x082D6148 +_080A7E58: .4byte 0x02024178 +_080A7E5C: .4byte 0x06010000 +_080A7E60: .4byte 0x084FE69C +_080A7E64: .4byte 0x082D45C8 +_080A7E68: + lsls r0, r7, #1 + adds r0, r0, r7 + lsls r0, r0, #3 + ldr r1, _080A7EC8 + adds r0, r0, r1 + mov r2, sl + lsls r1, r2, #0x10 + asrs r1, r1, #0x10 + ldr r3, _080A7ECC +_080A7E7A: + lsls r2, r6, #2 + adds r2, r2, r3 + ldrb r2, [r2, #1] + ldr r3, [sp, #4] + adds r2, r2, r3 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + ldr r3, [sp, #8] + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A7EB6 + ldr r3, _080A7ED0 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r1, r3, #0 + adds r1, #0x10 + adds r1, r0, r1 + ldr r2, _080A7ED4 + str r2, [r1] + adds r0, r0, r3 + movs r1, #0 + bl StartSpriteAffineAnim +_080A7EB6: + adds r0, r4, #0 + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080A7EC8: .4byte 0x084FE69C +_080A7ECC: .4byte 0x082D5A68 +_080A7ED0: .4byte 0x020205AC +_080A7ED4: .4byte 0x082D2F50 + thumb_func_end sub_080A7C5C + + thumb_func_start DestroySpriteAndFreeResources_ +DestroySpriteAndFreeResources_: @ 0x080A7ED8 + push {lr} + bl DestroySpriteAndFreeResources + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end DestroySpriteAndFreeResources_ + + thumb_func_start GetBattlerSpriteCoordAttr +GetBattlerSpriteCoordAttr: @ 0x080A7EE4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sb, r1 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A7F8C + ldr r0, _080A7F18 + ldr r0, [r0] + ldr r2, [r0, #0x18] + ldrb r1, [r2, #4] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080A7F1C + ldrh r7, [r2, #2] + ldr r2, [r2, #0x10] + b _080A7F20 + .align 2, 0 +_080A7F18: .4byte 0x02039BD4 +_080A7F1C: + ldrh r7, [r2] + ldr r2, [r2, #8] +_080A7F20: + cmp r7, #0xc9 + bne _080A7F6C + movs r0, #0xc0 + lsls r0, r0, #0x12 + ands r0, r2 + lsrs r0, r0, #0x12 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r2 + lsrs r1, r1, #0xc + orrs r0, r1 + movs r1, #0xc0 + lsls r1, r1, #2 + ands r1, r2 + lsrs r1, r1, #6 + orrs r0, r1 + movs r1, #3 + ands r1, r2 + orrs r0, r1 + movs r1, #0x1c + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + bne _080A7F58 + movs r0, #0xc9 + b _080A7F62 +_080A7F58: + movs r1, #0xce + lsls r1, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_080A7F62: + lsls r1, r0, #2 + ldr r0, _080A7F68 + b _080A812C + .align 2, 0 +_080A7F68: .4byte 0x082D5A68 +_080A7F6C: + ldr r0, _080A7F84 + cmp r7, r0 + bne _080A7F74 + b _080A80FC +_080A7F74: + movs r0, #0xce + lsls r0, r0, #1 + cmp r7, r0 + bhi _080A8044 + lsls r1, r7, #2 + ldr r0, _080A7F88 + b _080A812C + .align 2, 0 +_080A7F84: .4byte 0x00000181 +_080A7F88: .4byte 0x082D5A68 +_080A7F8C: + mov r0, r8 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A8058 + ldr r0, _080A7FD8 + ldr r0, [r0] + ldr r0, [r0] + mov r1, r8 + lsls r2, r1, #2 + adds r1, r2, r0 + ldrh r0, [r1, #2] + cmp r0, #0 + bne _080A7FE4 + ldr r0, _080A7FDC + mov r1, r8 + lsls r4, r1, #1 + adds r4, r4, r0 + ldrh r0, [r4] + movs r6, #0x64 + muls r0, r6, r0 + ldr r5, _080A7FE0 + adds r0, r0, r5 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + ldrh r0, [r4] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #0 + bl GetMonData + adds r2, r0, #0 + b _080A7FEC + .align 2, 0 +_080A7FD8: .4byte 0x02024174 +_080A7FDC: .4byte 0x02023D12 +_080A7FE0: .4byte 0x02024190 +_080A7FE4: + ldrh r7, [r1, #2] + ldr r0, _080A8024 + adds r0, r2, r0 + ldr r2, [r0] +_080A7FEC: + cmp r7, #0xc9 + bne _080A803C + movs r0, #0xc0 + lsls r0, r0, #0x12 + ands r0, r2 + lsrs r0, r0, #0x12 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r2 + lsrs r1, r1, #0xc + orrs r0, r1 + movs r1, #0xc0 + lsls r1, r1, #2 + ands r1, r2 + lsrs r1, r1, #6 + orrs r0, r1 + movs r1, #3 + ands r1, r2 + orrs r0, r1 + movs r1, #0x1c + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + bne _080A8028 + movs r0, #0xc9 + b _080A8032 + .align 2, 0 +_080A8024: .4byte 0x02024160 +_080A8028: + movs r1, #0xce + lsls r1, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_080A8032: + lsls r1, r0, #2 + ldr r0, _080A8038 + b _080A812C + .align 2, 0 +_080A8038: .4byte 0x082D5A68 +_080A803C: + movs r0, #0xce + lsls r0, r0, #1 + cmp r7, r0 + bls _080A804C +_080A8044: + ldr r4, _080A8048 + b _080A812E + .align 2, 0 +_080A8048: .4byte 0x082D5A68 +_080A804C: + lsls r1, r7, #2 + ldr r0, _080A8054 + b _080A812C + .align 2, 0 +_080A8054: .4byte 0x082D5A68 +_080A8058: + ldr r0, _080A8098 + ldr r0, [r0] + ldr r0, [r0] + mov r1, r8 + lsls r2, r1, #2 + adds r1, r2, r0 + ldrh r0, [r1, #2] + cmp r0, #0 + bne _080A80A4 + ldr r0, _080A809C + mov r1, r8 + lsls r4, r1, #1 + adds r4, r4, r0 + ldrh r0, [r4] + movs r6, #0x64 + muls r0, r6, r0 + ldr r5, _080A80A0 + adds r0, r0, r5 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + ldrh r0, [r4] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #0 + bl GetMonData + adds r2, r0, #0 + b _080A80AC + .align 2, 0 +_080A8098: .4byte 0x02024174 +_080A809C: .4byte 0x02023D12 +_080A80A0: .4byte 0x020243E8 +_080A80A4: + ldrh r7, [r1, #2] + ldr r0, _080A80E4 + adds r0, r2, r0 + ldr r2, [r0] +_080A80AC: + cmp r7, #0xc9 + bne _080A80F6 + movs r0, #0xc0 + lsls r0, r0, #0x12 + ands r0, r2 + lsrs r0, r0, #0x12 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r2 + lsrs r1, r1, #0xc + orrs r0, r1 + movs r1, #0xc0 + lsls r1, r1, #2 + ands r1, r2 + lsrs r1, r1, #6 + orrs r0, r1 + movs r1, #3 + ands r1, r2 + orrs r0, r1 + movs r1, #0x1c + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + bne _080A80E8 + movs r0, #0xc9 + b _080A80F2 + .align 2, 0 +_080A80E4: .4byte 0x02024160 +_080A80E8: + movs r1, #0xce + lsls r1, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_080A80F2: + lsls r1, r0, #2 + b _080A812A +_080A80F6: + ldr r0, _080A810C + cmp r7, r0 + bne _080A8118 +_080A80FC: + ldr r0, _080A8110 + add r0, r8 + ldrb r0, [r0] + lsls r0, r0, #2 + ldr r1, _080A8114 + adds r4, r0, r1 + b _080A812E + .align 2, 0 +_080A810C: .4byte 0x00000181 +_080A8110: .4byte 0x02024188 +_080A8114: .4byte 0x084FE684 +_080A8118: + movs r0, #0xce + lsls r0, r0, #1 + cmp r7, r0 + bls _080A8128 + ldr r4, _080A8124 + b _080A812E + .align 2, 0 +_080A8124: .4byte 0x082D45C8 +_080A8128: + lsls r1, r7, #2 +_080A812A: + ldr r0, _080A8140 +_080A812C: + adds r4, r1, r0 +_080A812E: + mov r0, sb + cmp r0, #6 + bhi _080A81DE + lsls r0, r0, #2 + ldr r1, _080A8144 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080A8140: .4byte 0x082D45C8 +_080A8144: .4byte 0x080A8148 +_080A8148: @ jump table + .4byte _080A8164 @ case 0 + .4byte _080A816E @ case 1 + .4byte _080A819A @ case 2 + .4byte _080A81B2 @ case 3 + .4byte _080A8176 @ case 4 + .4byte _080A8188 @ case 5 + .4byte _080A81CA @ case 6 +_080A8164: + ldrb r1, [r4] + movs r0, #0xf + ands r0, r1 + lsls r0, r0, #3 + b _080A81E0 +_080A816E: + ldrb r0, [r4] + lsrs r0, r0, #4 + lsls r0, r0, #3 + b _080A81E0 +_080A8176: + mov r0, r8 + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r4] + lsrs r1, r1, #4 + b _080A81AC +_080A8188: + mov r0, r8 + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r4] + lsrs r1, r1, #4 + b _080A81C4 +_080A819A: + mov r0, r8 + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r2, [r4] + movs r1, #0xf + ands r1, r2 +_080A81AC: + lsls r1, r1, #2 + subs r0, r0, r1 + b _080A81E0 +_080A81B2: + mov r0, r8 + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r2, [r4] + movs r1, #0xf + ands r1, r2 +_080A81C4: + lsls r1, r1, #2 + adds r0, r0, r1 + b _080A81E0 +_080A81CA: + mov r0, r8 + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #0x1f + ldrb r1, [r4, #1] + subs r0, r0, r1 + b _080A81E0 +_080A81DE: + movs r0, #0 +_080A81E0: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end GetBattlerSpriteCoordAttr + + thumb_func_start SetAverageBattlerPositions +SetAverageBattlerPositions: @ 0x080A81EC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sb, r2 + mov sl, r3 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + cmp r1, #0 + bne _080A820A + movs r5, #0 + movs r6, #1 + b _080A820E +_080A820A: + movs r5, #2 + movs r6, #3 +_080A820E: + adds r0, r4, #0 + adds r1, r5, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + adds r0, r4, #0 + adds r1, r6, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A8260 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A8260 + movs r0, #2 + eors r4, r0 + adds r0, r4, #0 + adds r1, r5, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r4, #0 + adds r1, r6, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + mov r0, r8 + lsls r1, r0, #0x10 + lsls r2, r7, #0x10 + b _080A826C +_080A8260: + mov r0, r8 + lsls r1, r0, #0x10 + lsrs r5, r1, #0x10 + lsls r0, r7, #0x10 + lsrs r3, r0, #0x10 + adds r2, r0, #0 +_080A826C: + asrs r0, r1, #0x10 + adds r0, r0, r5 + asrs r0, r0, #1 + mov r1, sb + strh r0, [r1] + asrs r0, r2, #0x10 + adds r0, r0, r3 + asrs r0, r0, #1 + mov r1, sl + strh r0, [r1] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetAverageBattlerPositions + + thumb_func_start sub_080A8290 +sub_080A8290: @ 0x080A8290 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + sub sp, #4 + lsls r6, r1, #0x18 + lsrs r6, r6, #0x18 + ldr r0, _080A8328 + mov sl, r0 + bl CreateInvisibleSpriteWithCallback + mov r8, r0 + mov r0, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r0, _080A832C + mov sb, r0 + mov r0, r8 + lsls r3, r0, #4 + add r3, r8 + lsls r3, r3, #2 + mov r0, sb + adds r5, r3, r0 + lsls r4, r6, #4 + adds r4, r4, r6 + lsls r4, r4, #2 + add r4, sb + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x44 + str r3, [sp] + bl memcpy + adds r2, r5, #0 + adds r2, #0x3f + ldrb r0, [r2] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2] + ldrb r2, [r5, #5] + movs r1, #0xd + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + strb r0, [r5, #5] + ldrb r0, [r5, #1] + ands r1, r0 + movs r0, #8 + orrs r1, r0 + strb r1, [r5, #1] + ldrh r1, [r4, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x16 + ldrh r2, [r5, #4] + ldr r0, _080A8330 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, #4] + movs r0, #0x1c + add sb, r0 + ldr r3, [sp] + add r3, sb + mov r0, sl + str r0, [r3] + mov r0, r8 + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080A8328: .4byte 0x08007141 +_080A832C: .4byte 0x020205AC +_080A8330: .4byte 0xFFFFFC00 + thumb_func_end sub_080A8290 + + thumb_func_start sub_080A8334 +sub_080A8334: @ 0x080A8334 + push {r4, lr} + adds r4, r0, #0 + bl SetSpriteCoordsToAnimAttackerCoords + ldr r0, _080A836C + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A8374 + ldr r2, _080A8370 + ldrh r0, [r4, #0x20] + ldrh r1, [r2] + subs r0, r0, r1 + strh r0, [r4, #0x20] + ldrh r0, [r2, #6] + rsbs r0, r0, #0 + strh r0, [r2, #6] + adds r3, r4, #0 + adds r3, #0x3f + ldrb r0, [r3] + movs r1, #1 + orrs r0, r1 + strb r0, [r3] + adds r1, r2, #0 + b _080A837E + .align 2, 0 +_080A836C: .4byte 0x020380D6 +_080A8370: .4byte 0x020380BE +_080A8374: + ldr r1, _080A83A8 + ldrh r0, [r1] + ldrh r2, [r4, #0x20] + adds r0, r0, r2 + strh r0, [r4, #0x20] +_080A837E: + ldrh r0, [r1, #2] + ldrh r2, [r4, #0x22] + adds r0, r0, r2 + strh r0, [r4, #0x22] + ldrh r0, [r1, #4] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #6] + strh r0, [r4, #0x30] + ldrh r0, [r1, #8] + strh r0, [r4, #0x34] + ldrh r0, [r1, #0xa] + strh r0, [r4, #0x38] + ldr r1, _080A83AC + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _080A83B0 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A83A8: .4byte 0x020380BE +_080A83AC: .4byte 0x080A6015 +_080A83B0: .4byte 0x080A5FA5 + thumb_func_end sub_080A8334 + + thumb_func_start sub_080A83B4 +sub_080A83B4: @ 0x080A83B4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080A83DC + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A83E4 + ldr r2, _080A83E0 + ldrh r0, [r4, #0x20] + ldrh r1, [r2] + subs r0, r0, r1 + strh r0, [r4, #0x20] + movs r1, #6 + ldrsh r0, [r2, r1] + rsbs r0, r0, #0 + strh r0, [r2, #6] + adds r1, r2, #0 + b _080A83EE + .align 2, 0 +_080A83DC: .4byte 0x020380D6 +_080A83E0: .4byte 0x020380BE +_080A83E4: + ldr r1, _080A8420 + ldrh r0, [r1] + ldrh r2, [r4, #0x20] + adds r0, r0, r2 + strh r0, [r4, #0x20] +_080A83EE: + ldrh r0, [r1, #2] + ldrh r2, [r4, #0x22] + adds r0, r0, r2 + strh r0, [r4, #0x22] + ldrh r0, [r1, #4] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #6] + strh r0, [r4, #0x30] + ldrh r0, [r1, #8] + strh r0, [r4, #0x34] + ldrh r0, [r1, #0xa] + strh r0, [r4, #0x38] + ldrb r1, [r1, #0xc] + adds r0, r4, #0 + bl StartSpriteAnim + ldr r1, _080A8424 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _080A8428 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A8420: .4byte 0x020380BE +_080A8424: .4byte 0x080A6015 +_080A8428: .4byte 0x080A5FA5 + thumb_func_end sub_080A83B4 + + thumb_func_start sub_080A842C +sub_080A842C: @ 0x080A842C + push {r4, lr} + adds r4, r0, #0 + bl SetSpriteCoordsToAnimAttackerCoords + ldr r0, _080A8450 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A8458 + ldr r0, _080A8454 + ldrh r1, [r4, #0x20] + ldrh r2, [r0] + subs r1, r1, r2 + strh r1, [r4, #0x20] + b _080A8464 + .align 2, 0 +_080A8450: .4byte 0x020380D6 +_080A8454: .4byte 0x020380BE +_080A8458: + ldr r1, _080A8480 + ldrh r0, [r1] + ldrh r2, [r4, #0x20] + adds r0, r0, r2 + strh r0, [r4, #0x20] + adds r0, r1, #0 +_080A8464: + ldrh r0, [r0, #2] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] + ldr r0, _080A8484 + str r0, [r4, #0x1c] + ldr r1, _080A8488 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A8480: .4byte 0x020380BE +_080A8484: .4byte 0x080A60A1 +_080A8488: .4byte 0x080A34C5 + thumb_func_end sub_080A842C + + thumb_func_start sub_080A848C +sub_080A848C: @ 0x080A848C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080A8520 + adds r5, r1, r0 + movs r0, #0 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r6, #0 + strh r0, [r5, #8] + ldr r7, _080A8524 + ldrb r0, [r7] + bl GetBattlerSide + lsls r0, r0, #0x18 + movs r1, #8 + cmp r0, #0 + beq _080A84C0 + movs r0, #8 + rsbs r0, r0, #0 + adds r1, r0, #0 +_080A84C0: + strh r1, [r5, #0xa] + strh r6, [r5, #0xc] + strh r6, [r5, #0xe] + ldr r4, _080A8528 + movs r0, #8 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r0, #0x24] + ldrh r2, [r5, #8] + subs r1, r1, r2 + strh r1, [r0, #0x24] + ldr r0, _080A852C + bl AllocSpritePalette + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x10] + strh r6, [r5, #0x12] + movs r1, #0x10 + ldrsh r0, [r5, r1] + adds r0, #0x10 + lsls r0, r0, #0x14 + lsrs r6, r0, #0x10 + movs r0, #8 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r0, [r0, #5] + lsrs r0, r0, #4 + adds r0, #0x10 + lsls r4, r0, #4 + ldrb r0, [r7] + bl GetBattlerSpriteSubpriority + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x14] + cmp r0, #0x14 + beq _080A851C + cmp r0, #0x28 + bne _080A8530 +_080A851C: + movs r0, #2 + b _080A8532 + .align 2, 0 +_080A8520: .4byte 0x03005B60 +_080A8524: .4byte 0x020380D6 +_080A8528: .4byte 0x020205AC +_080A852C: .4byte 0x00002771 +_080A8530: + movs r0, #3 +_080A8532: + strh r0, [r5, #0x14] + lsls r0, r4, #1 + ldr r1, _080A8560 + adds r0, r0, r1 + lsls r1, r6, #1 + ldr r2, _080A8564 + adds r1, r1, r2 + ldr r2, _080A8568 + bl CpuSet + ldr r0, _080A856C + ldrb r2, [r0, #2] + ldrh r3, [r0] + adds r0, r6, #0 + movs r1, #0x10 + bl BlendPalette + ldr r0, _080A8570 + str r0, [r5] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A8560: .4byte 0x020373B4 +_080A8564: .4byte 0x020377B4 +_080A8568: .4byte 0x04000008 +_080A856C: .4byte 0x020380BE +_080A8570: .4byte 0x080A8575 + thumb_func_end sub_080A848C + + thumb_func_start sub_080A8574 +sub_080A8574: @ 0x080A8574 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080A8598 + adds r4, r0, r1 + movs r1, #0xc + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _080A85D8 + cmp r0, #1 + bgt _080A859C + cmp r0, #0 + beq _080A85A2 + b _080A8634 + .align 2, 0 +_080A8598: .4byte 0x03005B60 +_080A859C: + cmp r0, #2 + beq _080A8620 + b _080A8634 +_080A85A2: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080A8640 + ldr r2, _080A85D4 + movs r0, #8 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r4, #0xa] + ldrh r2, [r0, #0x24] + adds r1, r1, r2 + strh r1, [r0, #0x24] + ldrh r1, [r4, #0xe] + adds r0, r1, #1 + strh r0, [r4, #0xe] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #5 + bne _080A8634 + strh r1, [r4, #0xe] + b _080A8612 + .align 2, 0 +_080A85D4: .4byte 0x020205AC +_080A85D8: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080A8640 + ldr r3, _080A861C + movs r0, #8 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r0, #0x24] + ldrh r2, [r4, #0xa] + subs r1, r1, r2 + strh r1, [r0, #0x24] + ldrh r0, [r4, #0xe] + subs r0, #1 + strh r0, [r4, #0xe] + lsls r0, r0, #0x10 + asrs r2, r0, #0x10 + cmp r2, #0 + bne _080A8634 + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + strh r2, [r1, #0x24] +_080A8612: + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + b _080A8634 + .align 2, 0 +_080A861C: .4byte 0x020205AC +_080A8620: + movs r2, #0x12 + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _080A8634 + ldr r0, _080A863C + bl FreeSpritePaletteByTag + adds r0, r5, #0 + bl DestroyAnimVisualTask +_080A8634: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A863C: .4byte 0x00002771 + thumb_func_end sub_080A8574 + + thumb_func_start sub_080A8640 +sub_080A8640: @ 0x080A8640 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + movs r0, #0 + bl CloneBattlerSpriteWithBlend + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + blt _080A86B0 + ldr r5, _080A86BC + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + adds r3, r4, r5 + movs r0, #3 + ldrb r1, [r6, #0x14] + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r3, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #5] + ldrb r1, [r6, #0x10] + lsls r1, r1, #4 + movs r2, #0xf + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #5] + movs r0, #8 + strh r0, [r3, #0x2e] + mov r0, r8 + strh r0, [r3, #0x30] + strh r7, [r3, #0x32] + movs r0, #8 + ldrsh r1, [r6, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrh r0, [r0, #0x24] + strh r0, [r3, #0x24] + adds r5, #0x1c + adds r4, r4, r5 + ldr r0, _080A86C0 + str r0, [r4] + ldrh r0, [r6, #0x12] + adds r0, #1 + strh r0, [r6, #0x12] +_080A86B0: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A86BC: .4byte 0x020205AC +_080A86C0: .4byte 0x080A86C5 + thumb_func_end sub_080A8640 + + thumb_func_start sub_080A86C4 +sub_080A86C4: @ 0x080A86C4 + push {lr} + adds r3, r0, #0 + ldrh r0, [r3, #0x2e] + subs r0, #1 + strh r0, [r3, #0x2e] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080A86EE + ldr r2, _080A86F4 + movs r0, #0x30 + ldrsh r1, [r3, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrh r1, [r0, #0x12] + subs r1, #1 + strh r1, [r0, #0x12] + adds r0, r3, #0 + bl obj_delete_but_dont_free_vram +_080A86EE: + pop {r0} + bx r0 + .align 2, 0 +_080A86F4: .4byte 0x03005B60 + thumb_func_end sub_080A86C4 + + thumb_func_start sub_080A86F8 +sub_080A86F8: @ 0x080A86F8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A872C + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A8730 + movs r0, #5 + b _080A8732 + .align 2, 0 +_080A872C: .4byte 0x020380D6 +_080A8730: + ldr r0, _080A8744 +_080A8732: + strh r0, [r5, #0x2e] + ldr r0, _080A8748 + strh r0, [r5, #0x30] + ldr r0, _080A874C + str r0, [r5, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A8744: .4byte 0x0000FFF6 +_080A8748: .4byte 0x0000FFD8 +_080A874C: .4byte 0x080A8751 + thumb_func_end sub_080A86F8 + + thumb_func_start sub_080A8750 +sub_080A8750: @ 0x080A8750 + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldrh r5, [r4, #0x30] + ldrh r2, [r4, #0x34] + adds r0, r5, r2 + strh r0, [r4, #0x34] + movs r1, #0x32 + ldrsh r0, [r4, r1] + movs r1, #0xa + bl __divsi3 + strh r0, [r4, #0x24] + movs r2, #0x34 + ldrsh r0, [r4, r2] + movs r1, #0xa + bl __divsi3 + strh r0, [r4, #0x26] + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x14 + rsbs r1, r1, #0 + cmp r0, r1 + bge _080A878C + adds r0, r5, #1 + strh r0, [r4, #0x30] +_080A878C: + movs r1, #0x22 + ldrsh r0, [r4, r1] + movs r2, #0x26 + ldrsh r1, [r4, r2] + adds r0, r0, r1 + movs r1, #0x20 + rsbs r1, r1, #0 + cmp r0, r1 + bge _080A87A4 + adds r0, r4, #0 + bl DestroyAnimSprite +_080A87A4: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080A8750 + + thumb_func_start sub_080A87AC +sub_080A87AC: @ 0x080A87AC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _080A87E4 + ldrh r0, [r5, #4] + strh r0, [r4, #0x2e] + ldrh r0, [r5, #8] + ldrh r1, [r4, #0x20] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldrh r0, [r5, #0xa] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x36] + ldr r0, _080A87E8 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A87EC + ldrh r0, [r5, #8] + adds r0, #0x1e + ldrh r1, [r4, #0x20] + adds r0, r0, r1 + strh r0, [r4, #0x20] + ldrh r0, [r5, #0xa] + subs r0, #0x14 + b _080A87FA + .align 2, 0 +_080A87E4: .4byte 0x020380BE +_080A87E8: .4byte 0x020380D7 +_080A87EC: + ldrh r0, [r5, #8] + subs r0, #0x1e + ldrh r1, [r4, #0x20] + adds r0, r0, r1 + strh r0, [r4, #0x20] + ldrh r0, [r5, #0xa] + subs r0, #0x50 +_080A87FA: + strh r0, [r4, #0x22] + ldr r0, _080A8810 + str r0, [r4, #0x1c] + ldr r1, _080A8814 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A8810: .4byte 0x080A67B5 +_080A8814: .4byte 0x080A34C5 + thumb_func_end sub_080A87AC + diff --git a/asm/battle_anim_sound_tasks.s b/asm/battle_anim_sound_tasks.s new file mode 100644 index 0000000..03d1752 --- /dev/null +++ b/asm/battle_anim_sound_tasks.s @@ -0,0 +1,1070 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_08158A6C +sub_08158A6C: @ 0x08158A6C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08158AC8 + lsls r6, r0, #2 + adds r6, r6, r0 + lsls r6, r6, #3 + adds r6, r6, r1 + ldr r1, _08158ACC + ldrh r0, [r1] + strh r0, [r6, #8] + ldrh r0, [r1, #2] + strh r0, [r6, #0xa] + movs r0, #0x40 + rsbs r0, r0, #0 + bl BattleAnimAdjustPanning + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0x3f + bl BattleAnimAdjustPanning + adds r5, r0, #0 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + lsls r5, r5, #0x18 + asrs r5, r5, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #2 + bl CalculatePanIncrement + strh r4, [r6, #0xc] + strh r5, [r6, #0xe] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r6, #0x10] + movs r0, #0xa + strh r0, [r6, #0x1c] + ldr r0, _08158AD0 + str r0, [r6] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08158AC8: .4byte 0x03005B60 +_08158ACC: .4byte 0x020380BE +_08158AD0: .4byte 0x08158AD5 + thumb_func_end sub_08158A6C + + thumb_func_start sub_08158AD4 +sub_08158AD4: @ 0x08158AD4 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08158B04 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 + ldrh r5, [r4, #0xc] + ldrb r6, [r4, #0x10] + ldrh r0, [r4, #0x1e] + adds r0, #1 + movs r1, #0 + strh r0, [r4, #0x1e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x6f + bne _08158B0C + movs r0, #5 + strh r0, [r4, #0x1c] + strh r1, [r4, #0x1e] + ldr r0, _08158B08 + str r0, [r4] + b _08158B3A + .align 2, 0 +_08158B04: .4byte 0x03005B60 +_08158B08: .4byte 0x08158B41 +_08158B0C: + ldrh r0, [r4, #0x1c] + adds r0, #1 + strh r0, [r4, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xb + bne _08158B26 + strh r1, [r4, #0x1c] + ldrh r0, [r4, #8] + lsls r1, r5, #0x18 + asrs r1, r1, #0x18 + bl PlaySE12WithPanning +_08158B26: + lsls r1, r6, #0x18 + asrs r1, r1, #0x18 + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + adds r0, r0, r1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + bl KeepPanInRange + strh r0, [r4, #0xc] +_08158B3A: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_08158AD4 + + thumb_func_start sub_08158B40 +sub_08158B40: @ 0x08158B40 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _08158B90 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrh r0, [r4, #0x1c] + adds r0, #1 + strh r0, [r4, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #6 + bne _08158B88 + movs r0, #0 + strh r0, [r4, #0x1c] + movs r0, #0x3f + bl BattleAnimAdjustPanning + adds r1, r0, #0 + ldrh r0, [r4, #0xa] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + bl PlaySE12WithPanning + ldrh r0, [r4, #0x1e] + adds r0, #1 + strh r0, [r4, #0x1e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + bne _08158B88 + adds r0, r5, #0 + bl DestroyAnimSoundTask +_08158B88: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08158B90: .4byte 0x03005B60 + thumb_func_end sub_08158B40 + + thumb_func_start sub_08158B94 +sub_08158B94: @ 0x08158B94 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov r8, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r0, _08158C38 + ldrh r1, [r0] + str r1, [sp] + ldrb r5, [r0, #4] + ldrb r6, [r0, #6] + ldrb r3, [r0, #8] + mov sl, r3 + ldrb r7, [r0, #0xa] + ldrb r1, [r0, #0xc] + mov sb, r1 + ldrb r0, [r0, #2] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + bl BattleAnimAdjustPanning + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + asrs r5, r5, #0x18 + adds r0, r5, #0 + bl BattleAnimAdjustPanning + adds r5, r0, #0 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + lsls r5, r5, #0x18 + asrs r5, r5, #0x18 + lsls r6, r6, #0x18 + asrs r6, r6, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl CalculatePanIncrement + ldr r2, _08158C3C + mov r3, r8 + lsls r1, r3, #2 + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r2, #0 + mov r6, sp + ldrh r6, [r6] + strh r6, [r1, #8] + strh r4, [r1, #0xa] + strh r5, [r1, #0xc] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r1, #0xe] + mov r0, sl + strh r0, [r1, #0x10] + strh r7, [r1, #0x12] + mov r3, sb + strh r3, [r1, #0x14] + strh r2, [r1, #0x1c] + strh r4, [r1, #0x1e] + strh r3, [r1, #0x20] + ldr r2, _08158C40 + str r2, [r1] + mov r0, r8 + bl _call_via_r2 + add sp, #4 + thumb_func_end sub_08158B94 + + thumb_func_start sub_08158C28 +sub_08158C28: @ 0x08158C28 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08158C38: .4byte 0x020380BE +_08158C3C: .4byte 0x03005B60 +_08158C40: .4byte 0x08158C45 + thumb_func_end sub_08158C28 + + thumb_func_start sub_08158C44 +sub_08158C44: @ 0x08158C44 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _08158C88 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrh r0, [r4, #0x20] + adds r1, r0, #1 + strh r1, [r4, #0x20] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x14 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _08158C8C + movs r0, #0 + strh r0, [r4, #0x20] + ldrh r0, [r4, #8] + movs r1, #0x1e + ldrsb r1, [r4, r1] + bl PlaySE12WithPanning + ldrh r0, [r4, #0x10] + subs r0, #1 + strh r0, [r4, #0x10] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08158C8C + adds r0, r5, #0 + bl DestroyAnimSoundTask + b _08158CBE + .align 2, 0 +_08158C88: .4byte 0x03005B60 +_08158C8C: + ldr r1, _08158CC4 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrh r0, [r4, #0x1c] + adds r1, r0, #1 + strh r1, [r4, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x12 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _08158CBE + movs r0, #0 + strh r0, [r4, #0x1c] + ldrh r0, [r4, #0xe] + ldrh r1, [r4, #0x1e] + adds r0, r0, r1 + strh r0, [r4, #0x1e] + movs r2, #0x1e + ldrsh r0, [r4, r2] + bl KeepPanInRange + strh r0, [r4, #0x1e] +_08158CBE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08158CC4: .4byte 0x03005B60 + thumb_func_end sub_08158C44 + + thumb_func_start sub_08158CC8 +sub_08158CC8: @ 0x08158CC8 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r4, #0 + movs r0, #0x40 + rsbs r0, r0, #0 + bl BattleAnimAdjustPanning + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08158D0C + ldr r0, _08158CFC + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08158D04 + ldr r0, _08158D00 + ldr r0, [r0] + ldr r0, [r0, #0x18] + ldrh r4, [r0] + b _08158DB2 + .align 2, 0 +_08158CFC: .4byte 0x020380BE +_08158D00: .4byte 0x02039BD4 +_08158D04: + adds r0, r5, #0 + bl DestroyAnimVisualTask + b _08158DB2 +_08158D0C: + ldr r0, _08158D20 + movs r2, #0 + ldrsh r1, [r0, r2] + adds r2, r0, #0 + cmp r1, #0 + bne _08158D28 + ldr r0, _08158D24 + ldrb r4, [r0] + b _08158D4E + .align 2, 0 +_08158D20: .4byte 0x020380BE +_08158D24: .4byte 0x020380D6 +_08158D28: + cmp r1, #1 + bne _08158D38 + ldr r0, _08158D34 + ldrb r4, [r0] + b _08158D4E + .align 2, 0 +_08158D34: .4byte 0x020380D7 +_08158D38: + cmp r1, #2 + bne _08158D44 + ldr r0, _08158D40 + b _08158D46 + .align 2, 0 +_08158D40: .4byte 0x020380D6 +_08158D44: + ldr r0, _08158D70 +_08158D46: + ldrb r1, [r0] + movs r0, #2 + adds r4, r0, #0 + eors r4, r1 +_08158D4E: + movs r1, #0 + ldrsh r0, [r2, r1] + cmp r0, #1 + beq _08158D5A + cmp r0, #3 + bne _08158D74 +_08158D5A: + adds r0, r4, #0 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08158D74 + adds r0, r5, #0 + bl DestroyAnimVisualTask + b _08158DC8 + .align 2, 0 +_08158D70: .4byte 0x020380D7 +_08158D74: + adds r0, r4, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08158D98 + ldr r1, _08158D90 + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08158D94 + b _08158DA6 + .align 2, 0 +_08158D90: .4byte 0x02023D12 +_08158D94: .4byte 0x020243E8 +_08158D98: + ldr r1, _08158DD0 + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08158DD4 +_08158DA6: + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_08158DB2: + cmp r4, #0 + beq _08158DC2 + lsls r1, r6, #0x18 + asrs r1, r1, #0x18 + adds r0, r4, #0 + movs r2, #3 + bl PlayCry3 +_08158DC2: + adds r0, r5, #0 + bl DestroyAnimVisualTask +_08158DC8: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08158DD0: .4byte 0x02023D12 +_08158DD4: .4byte 0x02024190 + thumb_func_end sub_08158CC8 + + thumb_func_start sub_08158DD8 +sub_08158DD8: @ 0x08158DD8 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r4, #0 + movs r0, #0x40 + rsbs r0, r0, #0 + bl BattleAnimAdjustPanning + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08158E1C + ldr r0, _08158E0C + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08158E14 + ldr r0, _08158E10 + ldr r0, [r0] + ldr r0, [r0, #0x18] + ldrh r4, [r0] + b _08158EC2 + .align 2, 0 +_08158E0C: .4byte 0x020380BE +_08158E10: .4byte 0x02039BD4 +_08158E14: + adds r0, r6, #0 + bl DestroyAnimVisualTask + b _08158EC2 +_08158E1C: + ldr r0, _08158E30 + movs r2, #0 + ldrsh r1, [r0, r2] + adds r2, r0, #0 + cmp r1, #0 + bne _08158E38 + ldr r0, _08158E34 + ldrb r4, [r0] + b _08158E5E + .align 2, 0 +_08158E30: .4byte 0x020380BE +_08158E34: .4byte 0x020380D6 +_08158E38: + cmp r1, #1 + bne _08158E48 + ldr r0, _08158E44 + ldrb r4, [r0] + b _08158E5E + .align 2, 0 +_08158E44: .4byte 0x020380D7 +_08158E48: + cmp r1, #2 + bne _08158E54 + ldr r0, _08158E50 + b _08158E56 + .align 2, 0 +_08158E50: .4byte 0x020380D6 +_08158E54: + ldr r0, _08158E80 +_08158E56: + ldrb r1, [r0] + movs r0, #2 + adds r4, r0, #0 + eors r4, r1 +_08158E5E: + movs r1, #0 + ldrsh r0, [r2, r1] + cmp r0, #1 + beq _08158E6A + cmp r0, #3 + bne _08158E84 +_08158E6A: + adds r0, r4, #0 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08158E84 + adds r0, r6, #0 + bl DestroyAnimVisualTask + b _08158F2A + .align 2, 0 +_08158E80: .4byte 0x020380D7 +_08158E84: + adds r0, r4, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08158EA8 + ldr r1, _08158EA0 + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08158EA4 + b _08158EB6 + .align 2, 0 +_08158EA0: .4byte 0x02023D12 +_08158EA4: .4byte 0x020243E8 +_08158EA8: + ldr r1, _08158EF4 + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08158EF8 +_08158EB6: + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_08158EC2: + ldr r1, _08158EFC + lsls r2, r6, #2 + adds r0, r2, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r3, _08158F00 + ldrh r1, [r3, #2] + strh r1, [r0, #8] + strh r4, [r0, #0xa] + lsls r1, r5, #0x18 + asrs r1, r1, #0x18 + strh r1, [r0, #0xc] + adds r5, r2, #0 + cmp r4, #0 + beq _08158F24 + movs r2, #2 + ldrsh r0, [r3, r2] + cmp r0, #0xff + bne _08158F04 + adds r0, r4, #0 + movs r2, #9 + bl PlayCry3 + b _08158F0C + .align 2, 0 +_08158EF4: .4byte 0x02023D12 +_08158EF8: .4byte 0x02024190 +_08158EFC: .4byte 0x03005B60 +_08158F00: .4byte 0x020380BE +_08158F04: + adds r0, r4, #0 + movs r2, #7 + bl PlayCry3 +_08158F0C: + ldr r0, _08158F1C + adds r1, r5, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _08158F20 + str r0, [r1] + b _08158F2A + .align 2, 0 +_08158F1C: .4byte 0x03005B60 +_08158F20: .4byte 0x08158F31 +_08158F24: + adds r0, r6, #0 + bl DestroyAnimVisualTask +_08158F2A: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_08158DD8 + + thumb_func_start sub_08158F30 +sub_08158F30: @ 0x08158F30 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + mov sb, r4 + ldr r1, _08158F60 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r1, r0, r1 + ldrh r6, [r1, #0xa] + mov r8, r6 + ldrb r5, [r1, #0xc] + adds r7, r5, #0 + ldrh r2, [r1, #0x1a] + movs r3, #0x1a + ldrsh r0, [r1, r3] + cmp r0, #1 + bgt _08158F64 + adds r0, r2, #1 + strh r0, [r1, #0x1a] + b _08158FA6 + .align 2, 0 +_08158F60: .4byte 0x03005B60 +_08158F64: + movs r2, #8 + ldrsh r0, [r1, r2] + cmp r0, #0xff + bne _08158F8A + bl IsCryPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08158FA6 + lsls r1, r5, #0x18 + asrs r1, r1, #0x18 + adds r0, r6, #0 + movs r2, #0xa + bl PlayCry3 + adds r0, r4, #0 + bl DestroyAnimVisualTask + b _08158FA6 +_08158F8A: + bl IsCryPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08158FA6 + lsls r1, r7, #0x18 + asrs r1, r1, #0x18 + mov r0, r8 + movs r2, #8 + bl PlayCry3 + mov r0, sb + bl DestroyAnimVisualTask +_08158FA6: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08158F30 + + thumb_func_start sub_08158FB4 +sub_08158FB4: @ 0x08158FB4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r4, r0, #0 + ldr r1, _08158FD8 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r1, r0, r1 + ldrh r2, [r1, #0x1a] + movs r3, #0x1a + ldrsh r0, [r1, r3] + cmp r0, #1 + bgt _08158FDC + adds r0, r2, #1 + strh r0, [r1, #0x1a] + b _08158FEC + .align 2, 0 +_08158FD8: .4byte 0x03005B60 +_08158FDC: + bl IsCryPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08158FEC + adds r0, r4, #0 + bl DestroyAnimVisualTask +_08158FEC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08158FB4 + + thumb_func_start sub_08158FF4 +sub_08158FF4: @ 0x08158FF4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08159028 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0815902C + ldrh r1, [r1] + strh r1, [r0, #0x1c] + movs r0, #0x40 + rsbs r0, r0, #0 + bl BattleAnimAdjustPanning + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08159034 + ldr r0, _08159030 + ldr r0, [r0] + ldr r0, [r0, #0x18] + b _0815903E + .align 2, 0 +_08159028: .4byte 0x03005B60 +_0815902C: .4byte 0x020380BE +_08159030: .4byte 0x02039BD4 +_08159034: + ldr r1, _0815905C + ldr r0, _08159060 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 +_0815903E: + ldrh r2, [r0] + ldr r0, _08159064 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + strh r2, [r1, #0xa] + lsls r0, r5, #0x18 + asrs r0, r0, #0x18 + strh r0, [r1, #0xc] + cmp r2, #0 + beq _0815906C + ldr r0, _08159068 + str r0, [r1] + b _08159072 + .align 2, 0 +_0815905C: .4byte 0x020380D8 +_08159060: .4byte 0x020380D6 +_08159064: .4byte 0x03005B60 +_08159068: .4byte 0x08159079 +_0815906C: + adds r0, r4, #0 + bl DestroyAnimVisualTask +_08159072: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_08158FF4 + + thumb_func_start sub_08159078 +sub_08159078: @ 0x08159078 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _081590A8 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r6, [r0, #0xa] + mov r8, r6 + ldrb r3, [r0, #0xc] + adds r5, r3, #0 + movs r7, #0x1a + ldrsh r2, [r0, r7] + mov ip, r1 + cmp r2, #5 + bhi _08159118 + lsls r0, r2, #2 + ldr r1, _081590AC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081590A8: .4byte 0x03005B60 +_081590AC: .4byte 0x081590B0 +_081590B0: @ jump table + .4byte _081590FE @ case 0 + .4byte _081590E4 @ case 1 + .4byte _081590C8 @ case 2 + .4byte _081590E4 @ case 3 + .4byte _081590E4 @ case 4 + .4byte _081590F4 @ case 5 +_081590C8: + lsls r1, r5, #0x18 + asrs r1, r1, #0x18 + mov r0, r8 + movs r2, #4 + bl PlayCry6 + ldr r1, _081590E0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + b _081590EC + .align 2, 0 +_081590E0: .4byte 0x03005B60 +_081590E4: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + add r0, ip +_081590EC: + ldrh r1, [r0, #0x1a] + adds r1, #1 + strh r1, [r0, #0x1a] + b _08159140 +_081590F4: + bl IsCryPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08159140 +_081590FE: + bl StopCryAndClearCrySongs + ldr r0, _08159114 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x1a] + adds r0, #1 + strh r0, [r1, #0x1a] + b _08159140 + .align 2, 0 +_08159114: .4byte 0x03005B60 +_08159118: + movs r1, #0x1c + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _0815912E + lsls r1, r3, #0x18 + asrs r1, r1, #0x18 + adds r0, r6, #0 + movs r2, #6 + bl PlayCry6 + b _0815913A +_0815912E: + lsls r1, r5, #0x18 + asrs r1, r1, #0x18 + mov r0, r8 + movs r2, #6 + bl PlayCry3 +_0815913A: + adds r0, r4, #0 + bl DestroyAnimVisualTask +_08159140: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08159078 + + thumb_func_start sub_0815914C +sub_0815914C: @ 0x0815914C + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _0815917C + ldrh r5, [r0] + ldrb r0, [r0, #2] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + bl BattleAnimAdjustPanning + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r5, #0 + bl PlaySE1WithPanning + adds r0, r4, #0 + bl DestroyAnimVisualTask + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0815917C: .4byte 0x020380BE + thumb_func_end sub_0815914C + + thumb_func_start sub_08159180 +sub_08159180: @ 0x08159180 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081591B0 + ldrh r5, [r0] + ldrb r0, [r0, #2] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + bl BattleAnimAdjustPanning + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r5, #0 + bl PlaySE2WithPanning + adds r0, r4, #0 + bl DestroyAnimVisualTask + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081591B0: .4byte 0x020380BE + thumb_func_end sub_08159180 + + thumb_func_start sub_081591B4 +sub_081591B4: @ 0x081591B4 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + mov r8, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r0, _08159238 + ldrb r5, [r0, #2] + ldrb r6, [r0, #4] + ldrh r1, [r0, #6] + mov sb, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + bl BattleAnimAdjustPanning + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + asrs r5, r5, #0x18 + adds r0, r5, #0 + bl BattleAnimAdjustPanning + adds r5, r0, #0 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + lsls r5, r5, #0x18 + asrs r5, r5, #0x18 + lsls r6, r6, #0x18 + asrs r6, r6, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl CalculatePanIncrement + ldr r2, _0815923C + mov r3, r8 + lsls r1, r3, #2 + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r2, #0 + strh r4, [r1, #0xa] + strh r5, [r1, #0xc] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r1, #0xe] + mov r0, sb + strh r0, [r1, #0x12] + strh r2, [r1, #0x1c] + strh r4, [r1, #0x1e] + ldr r2, _08159240 + str r2, [r1] + mov r0, r8 + bl _call_via_r2 + pop {r3, r4} + thumb_func_end sub_081591B4 + + thumb_func_start sub_0815922C +sub_0815922C: @ 0x0815922C + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08159238: .4byte 0x020380BE +_0815923C: .4byte 0x03005B60 +_08159240: .4byte 0x08159245 + thumb_func_end sub_0815922C + + thumb_func_start sub_08159244 +sub_08159244: @ 0x08159244 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + ldr r1, _0815929C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrh r2, [r4, #0xe] + ldrh r0, [r4, #0x1c] + adds r1, r0, #1 + strh r1, [r4, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r3, #0x12 + ldrsh r1, [r4, r3] + cmp r0, r1 + bne _0815927E + movs r0, #0 + strh r0, [r4, #0x1c] + ldrh r1, [r4, #0x1e] + adds r0, r2, r1 + strh r0, [r4, #0x1e] + movs r2, #0x1e + ldrsh r0, [r4, r2] + bl KeepPanInRange + strh r0, [r4, #0x1e] +_0815927E: + ldr r1, _081592A0 + ldrh r0, [r4, #0x1e] + strb r0, [r1] + movs r3, #0x1e + ldrsh r1, [r4, r3] + movs r2, #0xc + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _08159296 + adds r0, r5, #0 + bl DestroyAnimVisualTask +_08159296: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0815929C: .4byte 0x03005B60 +_081592A0: .4byte 0x020380E0 + thumb_func_end sub_08159244 + diff --git a/asm/battle_anim_special.s b/asm/battle_anim_special.s new file mode 100644 index 0000000..1beccf5 --- /dev/null +++ b/asm/battle_anim_special.s @@ -0,0 +1,6196 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start unref_sub_8170478 +unref_sub_8170478: @ 0x0817025C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x10] + ldr r0, _08170404 + ldrb r4, [r0] + ldr r0, _08170408 + movs r1, #0 + strh r1, [r0] + ldr r0, _0817040C + strh r1, [r0] + ldr r1, _08170410 + movs r0, #0x48 + bl SetGpuReg + ldr r1, _08170414 + movs r0, #0x4a + bl SetGpuReg + movs r1, #0x80 + lsls r1, r1, #8 + movs r0, #0 + bl SetGpuRegBits + ldr r1, _08170418 + movs r0, #0x50 + bl SetGpuReg + movs r1, #0x80 + lsls r1, r1, #5 + movs r0, #0x52 + bl SetGpuReg + movs r0, #1 + movs r1, #4 + movs r2, #0 + bl SetAnimBgAttribute + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl SetAnimBgAttribute + movs r0, #1 + movs r1, #1 + movs r2, #1 + bl SetAnimBgAttribute + movs r0, #1 + movs r1, #3 + movs r2, #1 + bl SetAnimBgAttribute + ldr r0, _0817041C + adds r4, r4, r0 + ldrb r0, [r4] + ldr r1, _08170420 + mov sb, r1 + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + add r4, sb + ldrb r7, [r4, #6] + ldrh r6, [r4, #0x38] + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + ldr r0, _08170424 + bl CreateInvisibleSpriteWithCallback + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x14] + ldr r0, _08170424 + bl CreateInvisibleSpriteWithCallback + mov sl, r0 + mov r2, sl + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sl, r2 + ldrb r1, [r4, #5] + movs r3, #0xd + rsbs r3, r3, #0 + adds r0, r3, #0 + ands r0, r1 + movs r1, #4 + mov r8, r1 + mov r2, r8 + orrs r0, r2 + strb r0, [r4, #5] + lsls r5, r7, #4 + adds r5, r5, r7 + lsls r5, r5, #2 + add r5, sb + ldrb r1, [r5, #5] + adds r0, r3, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #5] + lsls r1, r6, #4 + adds r1, r1, r6 + lsls r1, r1, #2 + add r1, sb + ldrb r2, [r1, #5] + adds r0, r3, #0 + ands r0, r2 + mov r2, r8 + orrs r0, r2 + strb r0, [r1, #5] + ldr r0, [sp, #0x14] + lsls r6, r0, #4 + adds r6, r6, r0 + lsls r6, r6, #2 + mov r1, sb + adds r7, r6, r1 + adds r0, r7, #0 + adds r1, r4, #0 + movs r2, #0x44 + str r3, [sp, #0x18] + bl memcpy + mov r2, sl + lsls r4, r2, #4 + add r4, sl + lsls r4, r4, #2 + adds r0, r4, #0 + add r0, sb + mov r8, r0 + adds r1, r5, #0 + movs r2, #0x44 + bl memcpy + ldrb r1, [r7, #1] + ldr r3, [sp, #0x18] + adds r0, r3, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r7, #1] + mov r2, r8 + ldrb r0, [r2, #1] + ands r3, r0 + orrs r3, r1 + strb r3, [r2, #1] + movs r0, #0x1c + add sb, r0 + add r6, sb + ldr r1, _08170424 + str r1, [r6] + add r4, sb + str r1, [r4] + mov r0, sp + bl sub_080A63F8 + mov r0, sp + ldrb r0, [r0, #9] + ldr r1, _08170428 + bl AnimLoadCompressedBgTilemap + mov r0, sp + ldrb r0, [r0, #9] + ldr r1, _0817042C + mov r2, sp + ldrh r2, [r2, #0xa] + bl AnimLoadCompressedBgGfx + ldr r0, _08170430 + mov r1, sp + ldrb r1, [r1, #8] + lsls r1, r1, #4 + movs r2, #0x20 + bl LoadCompressedPalette + ldr r1, _08170434 + ldrh r0, [r7, #0x20] + rsbs r0, r0, #0 + adds r0, #0x20 + strh r0, [r1] + ldr r1, _08170438 + ldrh r0, [r7, #0x22] + rsbs r0, r0, #0 + subs r0, #0x20 + strh r0, [r1] + ldr r1, _0817043C + ldr r2, [sp, #0x10] + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0xa0 + lsls r1, r1, #2 + strh r1, [r0, #0xa] + mov r1, sp + ldrh r1, [r1, #0x14] + strh r1, [r0, #8] + mov r2, sl + strh r2, [r0, #0xc] + ldr r1, _08170440 + str r1, [r0] + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08170404: .4byte 0x020380D6 +_08170408: .4byte 0x02022AD8 +_0817040C: .4byte 0x02022ADA +_08170410: .4byte 0x00003F3F +_08170414: .4byte 0x00003F3D +_08170418: .4byte 0x00003F42 +_0817041C: .4byte 0x03005AD0 +_08170420: .4byte 0x020205AC +_08170424: .4byte 0x08007141 +_08170428: .4byte 0x08C2EB40 +_0817042C: .4byte 0x08C2EAF4 +_08170430: .4byte 0x08C2DE48 +_08170434: .4byte 0x02022ACC +_08170438: .4byte 0x02022ACE +_0817043C: .4byte 0x03005B60 +_08170440: .4byte 0x08170445 + thumb_func_end unref_sub_8170478 + + thumb_func_start sub_08170444 +sub_08170444: @ 0x08170444 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _0817048C + ldrb r0, [r0] + mov r8, r0 + ldr r1, _08170490 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r5, r0, r1 + ldrh r1, [r5, #0xa] + ldrh r0, [r5, #0x22] + adds r1, r1, r0 + movs r3, #0 + strh r1, [r5, #0x22] + ldr r2, _08170494 + lsls r0, r1, #0x10 + lsrs r0, r0, #0x18 + ldrh r4, [r2] + adds r0, r0, r4 + strh r0, [r2] + movs r0, #0xff + ands r1, r0 + strh r1, [r5, #0x22] + movs r1, #0x26 + ldrsh r0, [r5, r1] + cmp r0, #1 + beq _081704D4 + cmp r0, #1 + bgt _08170498 + cmp r0, #0 + beq _0817049E + b _081705F8 + .align 2, 0 +_0817048C: .4byte 0x020380D6 +_08170490: .4byte 0x03005B60 +_08170494: .4byte 0x02022ACE +_08170498: + cmp r0, #2 + beq _081704EC + b _081705F8 +_0817049E: + ldrh r0, [r5, #0x1e] + adds r1, r0, #1 + strh r1, [r5, #0x1e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + bgt _081704AE + b _081705F8 +_081704AE: + strh r3, [r5, #0x1e] + ldrh r1, [r5, #0x20] + adds r1, #1 + strh r1, [r5, #0x20] + movs r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r2, #0x20 + ldrsh r0, [r5, r2] + cmp r0, #8 + beq _081704D2 + b _081705F8 +_081704D2: + b _081704E4 +_081704D4: + ldrh r0, [r5, #0x1c] + adds r0, #1 + strh r0, [r5, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1e + beq _081704E4 + b _081705F8 +_081704E4: + ldrh r0, [r5, #0x26] + adds r0, #1 + strh r0, [r5, #0x26] + b _081705F8 +_081704EC: + ldrh r0, [r5, #0x1e] + adds r1, r0, #1 + strh r1, [r5, #0x1e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _081705F8 + strh r3, [r5, #0x1e] + ldrh r1, [r5, #0x20] + subs r1, #1 + strh r1, [r5, #0x20] + movs r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r0, #0x20 + ldrsh r4, [r5, r0] + cmp r4, #0 + bne _081705F8 + movs r0, #0 + bl sub_080A4044 + ldr r0, _08170604 + strh r4, [r0] + ldr r0, _08170608 + strh r4, [r0] + ldr r4, _0817060C + movs r0, #0x48 + adds r1, r4, #0 + bl SetGpuReg + movs r0, #0x4a + adds r1, r4, #0 + bl SetGpuReg + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08170550 + movs r0, #1 + movs r1, #3 + movs r2, #0 + bl SetAnimBgAttribute +_08170550: + movs r0, #0 + bl GetGpuReg + adds r1, r0, #0 + movs r2, #0x80 + lsls r2, r2, #8 + adds r0, r2, #0 + eors r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r4, #8 + ldrsh r1, [r5, r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r6, _08170610 + adds r0, r0, r6 + bl DestroySprite + movs r0, #0xc + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + bl DestroySprite + movs r0, #1 + movs r1, #1 + movs r2, #0 + bl SetAnimBgAttribute + ldr r0, _08170614 + add r0, r8 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrb r2, [r1, #6] + mov r8, r2 + ldrh r4, [r1, #0x38] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldrb r3, [r1, #5] + movs r2, #0xd + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r3 + movs r5, #4 + orrs r0, r5 + strb r0, [r1, #5] + mov r0, r8 + lsls r1, r0, #4 + add r1, r8 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrb r3, [r1, #5] + adds r0, r2, #0 + ands r0, r3 + orrs r0, r5 + strb r0, [r1, #5] + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r1, [r0, #5] + ands r2, r1 + orrs r2, r5 + strb r2, [r0, #5] + adds r0, r7, #0 + bl DestroyAnimVisualTask +_081705F8: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08170604: .4byte 0x02022AD8 +_08170608: .4byte 0x02022ADA +_0817060C: .4byte 0x00003F3F +_08170610: .4byte 0x020205AC +_08170614: .4byte 0x03005AD0 + thumb_func_end sub_08170444 + + thumb_func_start sub_08170618 +sub_08170618: @ 0x08170618 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov sb, r0 + adds r7, r1, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r0, _081706F0 + adds r2, r2, r0 + ldrb r0, [r2] + lsls r5, r0, #4 + adds r5, r5, r0 + lsls r5, r5, #2 + ldr r0, _081706F4 + adds r5, r5, r0 + ldrb r1, [r5, #6] + mov sl, r1 + ldrh r4, [r5, #0x38] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081706F8 + bl AllocSpritePalette + mov r2, sb + strb r0, [r2] + ldr r0, _081706FC + bl AllocSpritePalette + strb r0, [r7] + ldrb r0, [r5, #5] + lsrs r0, r0, #4 + lsls r0, r0, #4 + movs r1, #0x80 + lsls r1, r1, #1 + adds r3, r1, #0 + orrs r0, r3 + lsls r6, r4, #4 + adds r6, r6, r4 + lsls r6, r6, #2 + ldr r2, _081706F4 + adds r6, r6, r2 + ldrb r4, [r6, #5] + lsrs r4, r4, #4 + lsls r4, r4, #4 + orrs r4, r3 + lsls r0, r0, #1 + ldr r1, _08170700 + mov r8, r1 + add r0, r8 + mov r2, sb + ldrb r1, [r2] + lsls r1, r1, #4 + adds r1, r3, r1 + movs r2, #0x20 + str r3, [sp] + bl LoadPalette + lsls r4, r4, #1 + add r4, r8 + ldrb r0, [r7] + lsls r0, r0, #4 + ldr r3, [sp] + adds r3, r3, r0 + adds r0, r4, #0 + adds r1, r3, #0 + movs r2, #0x20 + bl LoadPalette + mov r0, sb + ldrb r1, [r0] + lsls r1, r1, #4 + ldrb r2, [r5, #5] + movs r3, #0xf + adds r0, r3, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #5] + mov r2, sl + lsls r1, r2, #4 + add r1, sl + lsls r1, r1, #2 + ldr r0, _081706F4 + adds r1, r1, r0 + mov r0, sb + ldrb r2, [r0] + lsls r2, r2, #4 + ldrb r4, [r1, #5] + adds r0, r3, #0 + ands r0, r4 + orrs r0, r2 + strb r0, [r1, #5] + ldrb r0, [r7] + lsls r0, r0, #4 + ldrb r1, [r6, #5] + ands r3, r1 + orrs r3, r0 + strb r3, [r6, #5] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081706F0: .4byte 0x03005AD0 +_081706F4: .4byte 0x020205AC +_081706F8: .4byte 0x0000D709 +_081706FC: .4byte 0x0000D70A +_08170700: .4byte 0x020373B4 + thumb_func_end sub_08170618 + + thumb_func_start sub_08170704 +sub_08170704: @ 0x08170704 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r1, sp + adds r1, #1 + ldr r0, _0817072C + ldrb r2, [r0] + mov r0, sp + bl sub_08170618 + adds r0, r4, #0 + bl DestroyAnimVisualTask + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0817072C: .4byte 0x020380D6 + thumb_func_end sub_08170704 + + thumb_func_start sub_08170730 +sub_08170730: @ 0x08170730 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081707B8 + adds r0, r0, r1 + ldrb r0, [r0] + ldr r1, _081707BC + mov r8, r1 + lsls r5, r0, #4 + adds r5, r5, r0 + lsls r5, r5, #2 + add r5, r8 + ldrb r0, [r5, #6] + mov sb, r0 + ldrh r6, [r5, #0x38] + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + ldr r0, _081707C0 + bl FreeSpritePaletteByTag + ldr r0, _081707C4 + bl FreeSpritePaletteByTag + ldr r0, _081707C8 + bl IndexOfSpritePaletteTag + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081707CC + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsls r4, r4, #4 + ldrb r2, [r5, #5] + movs r3, #0xf + adds r1, r3, #0 + ands r1, r2 + orrs r1, r4 + strb r1, [r5, #5] + mov r1, sb + lsls r2, r1, #4 + add r2, sb + lsls r2, r2, #2 + add r2, r8 + ldrb r5, [r2, #5] + adds r1, r3, #0 + ands r1, r5 + orrs r1, r4 + strb r1, [r2, #5] + lsls r1, r6, #4 + adds r1, r1, r6 + lsls r1, r1, #2 + add r1, r8 + lsrs r0, r0, #0x14 + ldrb r2, [r1, #5] + ands r3, r2 + orrs r3, r0 + strb r3, [r1, #5] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081707B8: .4byte 0x03005AD0 +_081707BC: .4byte 0x020205AC +_081707C0: .4byte 0x0000D709 +_081707C4: .4byte 0x0000D70A +_081707C8: .4byte 0x0000D6FF +_081707CC: .4byte 0x0000D704 + thumb_func_end sub_08170730 + + thumb_func_start sub_081707D0 +sub_081707D0: @ 0x081707D0 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081707EC + ldrb r0, [r0] + bl sub_08170730 + adds r0, r4, #0 + bl DestroyAnimVisualTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081707EC: .4byte 0x020380D6 + thumb_func_end sub_081707D0 + + thumb_func_start sub_081707F0 +sub_081707F0: @ 0x081707F0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08170810 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r2, _08170814 + ldrh r0, [r2] + strh r0, [r1, #0x1c] + ldrh r0, [r2, #2] + strh r0, [r1, #0x1e] + ldr r0, _08170818 + str r0, [r1] + bx lr + .align 2, 0 +_08170810: .4byte 0x03005B60 +_08170814: .4byte 0x020380BE +_08170818: .4byte 0x0817081D + thumb_func_end sub_081707F0 + + thumb_func_start sub_0817081C +sub_0817081C: @ 0x0817081C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _08170868 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrh r0, [r4, #8] + adds r0, #1 + movs r6, #0 + adds r1, r0, #1 + strh r1, [r4, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x1e + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _081708DC + strh r6, [r4, #8] + ldr r0, _0817086C + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + movs r3, #0x1c + ldrsh r0, [r4, r3] + movs r1, #2 + cmp r0, #0 + bne _0817085A + movs r1, #6 +_0817085A: + movs r3, #0xa + ldrsh r0, [r4, r3] + cmp r0, #0 + beq _08170870 + cmp r0, #1 + beq _081708AC + b _081708DC + .align 2, 0 +_08170868: .4byte 0x03005B60 +_0817086C: .4byte 0x0000D709 +_08170870: + ldrh r0, [r4, #0xc] + adds r0, #2 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x10 + ble _08170882 + movs r0, #0x10 + strh r0, [r4, #0xc] +_08170882: + lsls r0, r2, #4 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r0, r2 + orrs r0, r1 + ldrb r2, [r4, #0xc] + ldr r3, _081708A8 + movs r1, #1 + bl BlendPalette + movs r3, #0xc + ldrsh r0, [r4, r3] + cmp r0, #0x10 + bne _081708DC + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + b _081708DC + .align 2, 0 +_081708A8: .4byte 0x00007F74 +_081708AC: + ldrh r0, [r4, #0xc] + subs r0, #2 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _081708BA + strh r6, [r4, #0xc] +_081708BA: + lsls r0, r2, #4 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r0, r2 + orrs r0, r1 + ldrb r2, [r4, #0xc] + ldr r3, _081708E4 + movs r1, #1 + bl BlendPalette + movs r3, #0xc + ldrsh r0, [r4, r3] + cmp r0, #0 + bne _081708DC + adds r0, r5, #0 + bl DestroyAnimVisualTask +_081708DC: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081708E4: .4byte 0x00007F74 + thumb_func_end sub_0817081C + + thumb_func_start sub_081708E8 +sub_081708E8: @ 0x081708E8 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _08170914 + ldr r0, _08170918 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r5, [r0] + ldr r1, _0817091C + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _08170936 + cmp r0, #1 + bgt _08170920 + cmp r0, #0 + beq _08170926 + b _08170988 + .align 2, 0 +_08170914: .4byte 0x02023E88 +_08170918: .4byte 0x020380D6 +_0817091C: .4byte 0x03005B60 +_08170920: + cmp r0, #2 + beq _08170968 + b _08170988 +_08170926: + adds r0, r5, #0 + movs r1, #0 + bl PrepareBattlerSpriteForRotScale + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x1c] + b _0817095A +_08170936: + ldrh r0, [r4, #0x1c] + adds r0, #0x30 + strh r0, [r4, #0x1c] + movs r0, #0x1c + ldrsh r2, [r4, r0] + adds r0, r5, #0 + adds r1, r2, #0 + movs r3, #0 + bl SetSpriteRotScale + adds r0, r5, #0 + bl SetBattlerSpriteYOffsetFromYScale + movs r0, #0x1c + ldrsh r1, [r4, r0] + ldr r0, _08170964 + cmp r1, r0 + ble _08170988 +_0817095A: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _08170988 + .align 2, 0 +_08170964: .4byte 0x000002CF +_08170968: + adds r0, r5, #0 + bl ResetSpriteRotScale + ldr r1, _08170990 + lsls r0, r5, #4 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + adds r0, r6, #0 + bl DestroyAnimVisualTask +_08170988: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08170990: .4byte 0x020205AC + thumb_func_end sub_081708E8 + + thumb_func_start sub_08170994 +sub_08170994: @ 0x08170994 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _081709CC + ldr r4, _081709D0 + ldrb r0, [r4] + adds r1, r0, r1 + ldrb r1, [r1] + mov sb, r1 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081709DC + ldr r1, _081709D4 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081709D8 + b _081709EC + .align 2, 0 +_081709CC: .4byte 0x02023E88 +_081709D0: .4byte 0x020380D6 +_081709D4: .4byte 0x02023D12 +_081709D8: .4byte 0x02024190 +_081709DC: + ldr r1, _08170A1C + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08170A20 +_081709EC: + adds r0, r0, r1 + movs r1, #0x26 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl ItemIdToBallId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r2, _08170A24 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r6, r0, r2 + movs r0, #8 + ldrsh r7, [r6, r0] + cmp r7, #0 + beq _08170A28 + cmp r7, #1 + beq _08170AA8 + b _08170AD2 + .align 2, 0 +_08170A1C: .4byte 0x02023D12 +_08170A20: .4byte 0x020243E8 +_08170A24: .4byte 0x03005B60 +_08170A28: + ldr r5, _08170AA0 + ldrb r0, [r5] + movs r1, #0 + bl GetBattlerSpriteCoord + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldrb r0, [r5] + movs r1, #1 + bl GetBattlerSpriteCoord + adds r1, r0, #0 + lsls r1, r1, #0x18 + ldr r2, _08170AA4 + mov r3, sb + lsls r0, r3, #4 + add r0, sb + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r2, [r0, #5] + lsls r2, r2, #0x1c + lsrs r2, r2, #0x1e + adds r0, #0x43 + ldrb r3, [r0] + movs r0, #0x80 + lsls r0, r0, #0x16 + adds r1, r1, r0 + lsrs r1, r1, #0x18 + mov r0, r8 + str r0, [sp] + adds r0, r4, #0 + bl AnimateBallOpenParticles + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r6, #0x1c] + str r7, [sp] + str r7, [sp, #4] + str r7, [sp, #8] + movs r0, #1 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_080A6E74 + adds r2, r0, #0 + ldrb r1, [r5] + movs r0, #0 + mov r3, r8 + bl LaunchBallFadeMonTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r6, #0x1e] + ldrh r0, [r6, #8] + adds r0, #1 + strh r0, [r6, #8] + b _08170AD2 + .align 2, 0 +_08170AA0: .4byte 0x020380D6 +_08170AA4: .4byte 0x020205AC +_08170AA8: + movs r1, #0x1c + ldrsh r0, [r6, r1] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldrb r0, [r1, #4] + cmp r0, #0 + bne _08170AD2 + movs r3, #0x1e + ldrsh r0, [r6, r3] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldrb r0, [r1, #4] + cmp r0, #0 + bne _08170AD2 + adds r0, r5, #0 + bl DestroyAnimVisualTask +_08170AD2: + add sp, #0xc + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08170994 + + thumb_func_start sub_08170AE0 +sub_08170AE0: @ 0x08170AE0 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _08170B04 + ldrh r0, [r0] + bl ItemIdToBallId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl LoadBallGfx + adds r0, r4, #0 + bl DestroyAnimVisualTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08170B04: .4byte 0x02023EAC + thumb_func_end sub_08170AE0 + + thumb_func_start sub_08170B08 +sub_08170B08: @ 0x08170B08 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _08170B2C + ldrh r0, [r0] + bl ItemIdToBallId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl FreeBallGfx + adds r0, r4, #0 + bl DestroyAnimVisualTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08170B2C: .4byte 0x02023EAC + thumb_func_end sub_08170B08 + + thumb_func_start AnimTask_IsBallBlockedByTrainer +AnimTask_IsBallBlockedByTrainer: @ 0x08170B30 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _08170B48 + ldr r0, [r0] + ldr r0, [r0, #8] + ldrb r0, [r0, #8] + cmp r0, #5 + bne _08170B54 + ldr r1, _08170B4C + ldr r0, _08170B50 + b _08170B58 + .align 2, 0 +_08170B48: .4byte 0x02024174 +_08170B4C: .4byte 0x020380BE +_08170B50: .4byte 0x0000FFFF +_08170B54: + ldr r1, _08170B64 + movs r0, #0 +_08170B58: + strh r0, [r1, #0xe] + adds r0, r2, #0 + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_08170B64: .4byte 0x020380BE + thumb_func_end AnimTask_IsBallBlockedByTrainer + + thumb_func_start ItemIdToBallId +ItemIdToBallId: @ 0x08170B68 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + subs r0, #1 + cmp r0, #0xb + bhi _08170BE0 + lsls r0, r0, #2 + ldr r1, _08170B80 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08170B80: .4byte 0x08170B84 +_08170B84: @ jump table + .4byte _08170BB4 @ case 0 + .4byte _08170BB8 @ case 1 + .4byte _08170BBC @ case 2 + .4byte _08170BE0 @ case 3 + .4byte _08170BC0 @ case 4 + .4byte _08170BC4 @ case 5 + .4byte _08170BC8 @ case 6 + .4byte _08170BCC @ case 7 + .4byte _08170BD0 @ case 8 + .4byte _08170BD4 @ case 9 + .4byte _08170BD8 @ case 10 + .4byte _08170BDC @ case 11 +_08170BB4: + movs r0, #4 + b _08170BE2 +_08170BB8: + movs r0, #3 + b _08170BE2 +_08170BBC: + movs r0, #1 + b _08170BE2 +_08170BC0: + movs r0, #2 + b _08170BE2 +_08170BC4: + movs r0, #5 + b _08170BE2 +_08170BC8: + movs r0, #6 + b _08170BE2 +_08170BCC: + movs r0, #7 + b _08170BE2 +_08170BD0: + movs r0, #8 + b _08170BE2 +_08170BD4: + movs r0, #9 + b _08170BE2 +_08170BD8: + movs r0, #0xa + b _08170BE2 +_08170BDC: + movs r0, #0xb + b _08170BE2 +_08170BE0: + movs r0, #0 +_08170BE2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ItemIdToBallId + + thumb_func_start sub_08170BE8 +sub_08170BE8: @ 0x08170BE8 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + mov sl, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + ldr r0, _08170CB0 + ldrh r0, [r0] + bl ItemIdToBallId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + ldr r1, _08170CB4 + adds r0, r0, r1 + movs r1, #0x20 + movs r2, #0x50 + movs r3, #0x1d + bl CreateSprite + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r1, _08170CB8 + mov sb, r1 + lsls r4, r5, #4 + adds r4, r4, r5 + lsls r4, r4, #2 + adds r6, r4, r1 + movs r0, #0x22 + strh r0, [r6, #0x2e] + ldr r2, _08170CBC + mov r8, r2 + ldrb r0, [r2] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r6, #0x30] + mov r1, r8 + ldrb r0, [r1] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, #0x10 + strh r0, [r6, #0x32] + mov r0, sb + adds r0, #0x1c + adds r4, r4, r0 + ldr r0, _08170CC0 + str r0, [r4] + ldr r0, _08170CC4 + ldr r0, [r0] + ldr r3, [r0, #8] + ldr r1, _08170CC8 + mov r2, r8 + ldrb r0, [r2] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sb + adds r0, #0x3e + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1f + lsls r1, r1, #1 + ldrb r2, [r3, #9] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #9] + ldr r1, _08170CCC + mov r2, sl + lsls r0, r2, #2 + add r0, sl + lsls r0, r0, #3 + adds r0, r0, r1 + strh r5, [r0, #8] + ldr r1, _08170CD0 + str r1, [r0] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08170CB0: .4byte 0x02023EAC +_08170CB4: .4byte 0x082FCF94 +_08170CB8: .4byte 0x020205AC +_08170CBC: .4byte 0x020380D7 +_08170CC0: .4byte 0x08170EE9 +_08170CC4: .4byte 0x02024174 +_08170CC8: .4byte 0x02023E88 +_08170CCC: .4byte 0x03005B60 +_08170CD0: .4byte 0x08170CD5 + thumb_func_end sub_08170BE8 + + thumb_func_start sub_08170CD4 +sub_08170CD4: @ 0x08170CD4 + push {lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r1, _08170D04 + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r1, [r0, #8] + ldr r2, _08170D08 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x2e] + ldr r0, _08170D0C + cmp r1, r0 + bne _08170CFE + adds r0, r3, #0 + bl DestroyAnimVisualTask +_08170CFE: + pop {r0} + bx r0 + .align 2, 0 +_08170D04: .4byte 0x03005B60 +_08170D08: .4byte 0x020205AC +_08170D0C: .4byte 0x0000FFFF + thumb_func_end sub_08170CD4 + + thumb_func_start sub_08170D10 +sub_08170D10: @ 0x08170D10 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _08170D30 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #2 + ands r0, r1 + cmp r0, #0 + beq _08170D34 + movs r6, #0x20 + movs r5, #0xb + b _08170D38 + .align 2, 0 +_08170D30: .4byte 0x02022C90 +_08170D34: + movs r6, #0x17 + movs r5, #5 +_08170D38: + ldr r0, _08170DF0 + ldrh r0, [r0] + bl ItemIdToBallId + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerSpriteSubpriority + adds r3, r0, #0 + adds r3, #1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _08170DF4 + adds r0, r0, r1 + adds r1, r6, #0 + adds r1, #0x20 + movs r2, #0x50 + orrs r5, r2 + adds r2, r5, #0 + bl CreateSprite + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _08170DF8 + mov sb, r0 + lsls r4, r5, #4 + adds r4, r4, r5 + lsls r4, r4, #2 + adds r6, r4, r0 + movs r0, #0x22 + strh r0, [r6, #0x2e] + ldr r1, _08170DFC + mov r8, r1 + ldrb r0, [r1] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r6, #0x30] + mov r1, r8 + ldrb r0, [r1] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, #0x10 + strh r0, [r6, #0x32] + movs r0, #0x1c + add sb, r0 + add r4, sb + ldr r0, _08170E00 + str r0, [r4] + movs r0, #0 + bl GetBattlerAtPosition + ldr r1, _08170E04 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sb + ldr r1, _08170E08 + str r1, [r0] + ldr r1, _08170E0C + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r5, [r0, #8] + ldr r1, _08170E10 + str r1, [r0] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08170DF0: .4byte 0x02023EAC +_08170DF4: .4byte 0x082FCF94 +_08170DF8: .4byte 0x020205AC +_08170DFC: .4byte 0x020380D7 +_08170E00: .4byte 0x08007141 +_08170E04: .4byte 0x02023E88 +_08170E08: .4byte 0x08039AC9 +_08170E0C: .4byte 0x03005B60 +_08170E10: .4byte 0x08170E15 + thumb_func_end sub_08170D10 + + thumb_func_start sub_08170E14 +sub_08170E14: @ 0x08170E14 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r6, _08170E74 + movs r0, #0 + bl GetBattlerAtPosition + ldr r1, _08170E78 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x2b + ldrb r0, [r0] + cmp r0, #1 + bne _08170E6E + movs r0, #0x3d + movs r1, #0 + bl PlaySE12WithPanning + ldr r0, _08170E7C + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + adds r4, r4, r0 + movs r0, #8 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r6, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _08170E80 + str r1, [r0] + ldr r0, _08170E84 + movs r1, #0xa + bl CreateTask + ldr r0, _08170E88 + str r0, [r4] +_08170E6E: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08170E74: .4byte 0x020205AC +_08170E78: .4byte 0x02023E88 +_08170E7C: .4byte 0x03005B60 +_08170E80: .4byte 0x08170EE9 +_08170E84: .4byte 0x08170E8D +_08170E88: .4byte 0x08170CD5 + thumb_func_end sub_08170E14 + + thumb_func_start sub_08170E8C +sub_08170E8C: @ 0x08170E8C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r6, _08170EE0 + movs r0, #0 + bl GetBattlerAtPosition + ldr r4, _08170EE4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x3f + ldrb r0, [r0] + lsls r0, r0, #0x1b + cmp r0, #0 + bge _08170ED8 + movs r0, #0 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #0 + bl StartSpriteAnim + adds r0, r5, #0 + bl DestroyTask +_08170ED8: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08170EE0: .4byte 0x020205AC +_08170EE4: .4byte 0x02023E88 + thumb_func_end sub_08170E8C + + thumb_func_start sub_08170EE8 +sub_08170EE8: @ 0x08170EE8 + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x30] + ldrh r2, [r4, #0x32] + ldrh r0, [r4, #0x20] + strh r0, [r4, #0x30] + strh r1, [r4, #0x32] + ldrh r0, [r4, #0x22] + strh r0, [r4, #0x34] + strh r2, [r4, #0x36] + ldr r0, _08170F10 + strh r0, [r4, #0x38] + adds r0, r4, #0 + bl InitAnimArcTranslation + ldr r0, _08170F14 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08170F10: .4byte 0x0000FFD8 +_08170F14: .4byte 0x08170F19 + thumb_func_end sub_08170EE8 + + thumb_func_start sub_08170F18 +sub_08170F18: @ 0x08170F18 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + bl TranslateAnimHorizontalArc + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08170FB6 + ldr r0, _08170F3C + ldr r0, [r0] + ldr r0, [r0, #8] + ldrb r0, [r0, #8] + cmp r0, #5 + bne _08170F44 + ldr r0, _08170F40 + str r0, [r4, #0x1c] + b _08170FB6 + .align 2, 0 +_08170F3C: .4byte 0x02024174 +_08170F40: .4byte 0x08171A91 +_08170F44: + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAnim + ldrh r0, [r4, #0x24] + ldrh r1, [r4, #0x20] + adds r0, r0, r1 + movs r1, #0 + strh r0, [r4, #0x20] + ldrh r0, [r4, #0x26] + ldrh r2, [r4, #0x22] + adds r0, r0, r2 + strh r0, [r4, #0x22] + strh r1, [r4, #0x24] + strh r1, [r4, #0x26] + adds r1, r4, #0 + adds r1, #0x2e + movs r2, #0 + adds r0, r4, #0 + adds r0, #0x3c +_08170F6C: + strh r2, [r0] + subs r0, #2 + cmp r0, r1 + bge _08170F6C + movs r0, #0 + strh r0, [r4, #0x38] + ldr r0, _08170FC0 + str r0, [r4, #0x1c] + ldr r0, _08170FC4 + ldrh r0, [r0] + bl ItemIdToBallId + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0xb + bgt _08170FB6 + cmp r5, #0 + blt _08170FB6 + ldrh r0, [r4, #0x20] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #0x22] + subs r1, #5 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r5, [sp] + movs r2, #1 + movs r3, #0x1c + bl AnimateBallOpenParticles + ldr r0, _08170FC8 + ldrb r1, [r0] + movs r0, #0 + movs r2, #0xe + adds r3, r5, #0 + bl LaunchBallFadeMonTask +_08170FB6: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08170FC0: .4byte 0x08170FCD +_08170FC4: .4byte 0x02023EAC +_08170FC8: .4byte 0x020380D7 + thumb_func_end sub_08170F18 + + thumb_func_start sub_08170FCC +sub_08170FCC: @ 0x08170FCC + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x38] + adds r0, #1 + strh r0, [r4, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xa + bne _08171008 + ldr r0, _08171010 + movs r1, #0x32 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x38] + ldr r0, _08171014 + str r0, [r4, #0x1c] + ldr r2, _08171018 + ldr r1, _0817101C + ldr r0, _08171020 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0 + strh r1, [r0, #0x30] +_08171008: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08171010: .4byte 0x080A8A41 +_08171014: .4byte 0x08171025 +_08171018: .4byte 0x020205AC +_0817101C: .4byte 0x02023E88 +_08171020: .4byte 0x020380D7 + thumb_func_end sub_08170FCC + + thumb_func_start sub_08171024 +sub_08171024: @ 0x08171024 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + ldr r1, _08171068 + ldr r0, _0817106C + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r4, [r0] + ldrh r0, [r7, #0x38] + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _08171070 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r5, r0, r1 + ldrh r0, [r5, #0xa] + adds r0, #1 + strh r0, [r5, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xb + bne _08171056 + movs r0, #0x3c + bl PlaySE +_08171056: + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #1 + beq _081710CC + cmp r0, #1 + bgt _08171074 + cmp r0, #0 + beq _0817107A + b _08171138 + .align 2, 0 +_08171068: .4byte 0x02023E88 +_0817106C: .4byte 0x020380D7 +_08171070: .4byte 0x03005B60 +_08171074: + cmp r0, #2 + beq _08171110 + b _08171138 +_0817107A: + adds r0, r4, #0 + movs r1, #0 + bl PrepareBattlerSpriteForRotScale + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r5, #0x1c] + ldr r1, _081710BC + movs r0, #0x1c + str r0, [r1] + ldr r2, _081710C0 + ldr r1, _081710C4 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r1, [r0, #0x26] + ldrh r0, [r0, #0x22] + adds r1, r1, r0 + ldrh r0, [r7, #0x26] + ldrh r7, [r7, #0x22] + adds r0, r0, r7 + subs r1, r1, r0 + strh r1, [r2] + ldr r4, _081710C8 + ldrh r0, [r2] + lsls r0, r0, #8 + movs r1, #0x1c + bl __udivsi3 + strh r0, [r4] + strh r0, [r5, #0xc] + b _0817112A + .align 2, 0 +_081710BC: .4byte 0x0300601C +_081710C0: .4byte 0x03006024 +_081710C4: .4byte 0x020205AC +_081710C8: .4byte 0x03006020 +_081710CC: + ldrh r0, [r5, #0x1c] + adds r0, #0x20 + strh r0, [r5, #0x1c] + movs r0, #0x1c + ldrsh r2, [r5, r0] + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl SetSpriteRotScale + ldrh r0, [r5, #0xc] + ldrh r1, [r5, #0xe] + adds r0, r0, r1 + strh r0, [r5, #0xe] + ldr r0, _08171108 + lsls r1, r4, #4 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r1, r1, r0 + movs r2, #0xe + ldrsh r0, [r5, r2] + rsbs r0, r0, #0 + asrs r0, r0, #8 + strh r0, [r1, #0x26] + movs r0, #0x1c + ldrsh r1, [r5, r0] + ldr r0, _0817110C + cmp r1, r0 + ble _08171160 + b _0817112A + .align 2, 0 +_08171108: .4byte 0x020205AC +_0817110C: .4byte 0x0000047F +_08171110: + adds r0, r4, #0 + bl ResetSpriteRotScale + ldr r1, _08171134 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_0817112A: + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + b _08171160 + .align 2, 0 +_08171134: .4byte 0x020205AC +_08171138: + ldr r0, _08171168 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r2, #0xa + ldrsh r0, [r1, r2] + cmp r0, #0xa + ble _08171160 + adds r0, r6, #0 + bl DestroyTask + adds r0, r7, #0 + movs r1, #2 + bl StartSpriteAnim + movs r0, #0 + strh r0, [r7, #0x38] + ldr r0, _0817116C + str r0, [r7, #0x1c] +_08171160: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08171168: .4byte 0x03005B60 +_0817116C: .4byte 0x08171171 + thumb_func_end sub_08171024 + + thumb_func_start sub_08171170 +sub_08171170: @ 0x08171170 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _081711AA + movs r1, #0 + strh r1, [r4, #0x34] + movs r0, #0x28 + strh r0, [r4, #0x36] + strh r1, [r4, #0x38] + movs r0, #0 + movs r1, #0x28 + bl Cos + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0 + bl Cos + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + ldr r0, _081711B0 + str r0, [r4, #0x1c] +_081711AA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081711B0: .4byte 0x081711B5 + thumb_func_end sub_08171170 + + thumb_func_start sub_081711B4 +sub_081711B4: @ 0x081711B4 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #0 + ldrh r0, [r4, #0x34] + movs r1, #0xff + ands r1, r0 + cmp r1, #0 + beq _081711CA + cmp r1, #1 + beq _0817123E + b _0817126A +_081711CA: + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r2, #0x36 + ldrsh r1, [r4, r2] + bl Cos + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + ldrh r1, [r4, #0x38] + adds r1, #4 + ldrh r2, [r4, #0x34] + lsls r0, r2, #0x10 + asrs r0, r0, #0x18 + adds r1, r1, r0 + strh r1, [r4, #0x38] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #0x3f + ble _0817126A + ldrh r0, [r4, #0x36] + subs r0, #0xa + strh r0, [r4, #0x36] + ldr r1, _08171214 + adds r0, r2, r1 + strh r0, [r4, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + cmp r0, #4 + bne _08171206 + movs r5, #1 +_08171206: + cmp r0, #2 + beq _08171226 + cmp r0, #2 + bgt _08171218 + cmp r0, #1 + beq _0817121E + b _08171236 + .align 2, 0 +_08171214: .4byte 0x00000101 +_08171218: + cmp r0, #3 + beq _0817122E + b _08171236 +_0817121E: + movs r0, #0x38 + bl PlaySE + b _0817126A +_08171226: + movs r0, #0x39 + bl PlaySE + b _0817126A +_0817122E: + movs r0, #0x3a + bl PlaySE + b _0817126A +_08171236: + movs r0, #0x3b + bl PlaySE + b _0817126A +_0817123E: + movs r2, #0x38 + ldrsh r0, [r4, r2] + movs r2, #0x36 + ldrsh r1, [r4, r2] + bl Cos + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + ldrh r1, [r4, #0x38] + subs r1, #4 + ldrh r2, [r4, #0x34] + lsls r0, r2, #0x10 + asrs r0, r0, #0x18 + subs r1, r1, r0 + strh r1, [r4, #0x38] + lsls r1, r1, #0x10 + cmp r1, #0 + bgt _0817126A + strh r5, [r4, #0x38] + ldr r0, _08171298 + ands r0, r2 + strh r0, [r4, #0x34] +_0817126A: + cmp r5, #0 + beq _081712AE + movs r5, #0 + strh r5, [r4, #0x34] + movs r0, #0x40 + movs r1, #0x28 + bl Cos + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] + strh r5, [r4, #0x26] + ldr r0, _0817129C + ldr r0, [r0] + ldr r0, [r0, #8] + ldrb r0, [r0, #8] + cmp r0, #0 + bne _081712A4 + strh r5, [r4, #0x38] + ldr r0, _081712A0 + str r0, [r4, #0x1c] + b _081712AE + .align 2, 0 +_08171298: .4byte 0xFFFFFF00 +_0817129C: .4byte 0x02024174 +_081712A0: .4byte 0x08171599 +_081712A4: + ldr r0, _081712B4 + str r0, [r4, #0x1c] + movs r0, #1 + strh r0, [r4, #0x36] + strh r5, [r4, #0x38] +_081712AE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081712B4: .4byte 0x081712B9 + thumb_func_end sub_081711B4 + + thumb_func_start sub_081712B8 +sub_081712B8: @ 0x081712B8 + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x34] + adds r0, #1 + movs r5, #0 + strh r0, [r4, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1f + bne _081712F4 + strh r5, [r4, #0x34] + adds r2, r4, #0 + adds r2, #0x2c + ldrb r0, [r2] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAffineAnim + ldr r0, _081712FC + ldr r0, [r0] + ldr r0, [r0, #8] + strh r5, [r0, #0xc] + ldr r0, _08171300 + str r0, [r4, #0x1c] + movs r0, #0x17 + bl PlaySE +_081712F4: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081712FC: .4byte 0x02024174 +_08171300: .4byte 0x08171305 + thumb_func_end sub_081712B8 + + thumb_func_start sub_08171304 +sub_08171304: @ 0x08171304 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x34] + movs r1, #0xff + ands r1, r0 + cmp r1, #6 + bls _08171314 + b _0817154C +_08171314: + lsls r0, r1, #2 + ldr r1, _08171320 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08171320: .4byte 0x08171324 +_08171324: @ jump table + .4byte _08171340 @ case 0 + .4byte _08171392 @ case 1 + .4byte _081713D8 @ case 2 + .4byte _08171438 @ case 3 + .4byte _08171488 @ case 4 + .4byte _081714EC @ case 5 + .4byte _0817154C @ case 6 +_08171340: + ldr r1, _08171364 + ldr r5, [r1] + ldr r2, [r5, #8] + ldrh r3, [r2, #0xc] + movs r6, #0xc + ldrsh r0, [r2, r6] + adds r6, r1, #0 + cmp r0, #0xff + ble _08171368 + ldrh r0, [r4, #0x36] + ldrh r1, [r4, #0x24] + adds r0, r0, r1 + strh r0, [r4, #0x24] + ldr r1, [r5, #8] + ldrb r0, [r1, #0xc] + strh r0, [r1, #0xc] + b _0817136E + .align 2, 0 +_08171364: .4byte 0x02024174 +_08171368: + adds r0, r3, #0 + adds r0, #0xb0 + strh r0, [r2, #0xc] +_0817136E: + ldrh r0, [r4, #0x38] + adds r0, #1 + movs r3, #0 + strh r0, [r4, #0x38] + adds r2, r4, #0 + adds r2, #0x2c + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + ldrh r0, [r4, #0x38] + adds r0, #7 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xe + bhi _08171390 + b _08171592 +_08171390: + b _08171428 +_08171392: + ldrh r0, [r4, #0x38] + adds r0, #1 + strh r0, [r4, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + bne _08171444 + movs r0, #0 + strh r0, [r4, #0x38] + ldrh r0, [r4, #0x36] + rsbs r0, r0, #0 + strh r0, [r4, #0x36] + ldrh r0, [r4, #0x34] + adds r0, #1 + strh r0, [r4, #0x34] + adds r2, r4, #0 + adds r2, #0x2c + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + movs r6, #0x36 + ldrsh r0, [r4, r6] + cmp r0, #0 + bge _081713CE + adds r0, r4, #0 + movs r1, #2 + bl ChangeSpriteAffineAnim + b _08171592 +_081713CE: + adds r0, r4, #0 + movs r1, #1 + bl ChangeSpriteAffineAnim + b _08171592 +_081713D8: + ldr r1, _081713FC + ldr r5, [r1] + ldr r2, [r5, #8] + ldrh r3, [r2, #0xc] + movs r6, #0xc + ldrsh r0, [r2, r6] + adds r6, r1, #0 + cmp r0, #0xff + ble _08171400 + ldrh r0, [r4, #0x36] + ldrh r1, [r4, #0x24] + adds r0, r0, r1 + strh r0, [r4, #0x24] + ldr r1, [r5, #8] + ldrb r0, [r1, #0xc] + strh r0, [r1, #0xc] + b _08171406 + .align 2, 0 +_081713FC: .4byte 0x02024174 +_08171400: + adds r0, r3, #0 + adds r0, #0xb0 + strh r0, [r2, #0xc] +_08171406: + ldrh r0, [r4, #0x38] + adds r0, #1 + movs r3, #0 + strh r0, [r4, #0x38] + adds r2, r4, #0 + adds r2, #0x2c + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + ldrh r0, [r4, #0x38] + adds r0, #0xc + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x18 + bhi _08171428 + b _08171592 +_08171428: + ldr r0, [r6] + ldr r0, [r0, #8] + strh r3, [r0, #0xc] + ldrh r0, [r4, #0x34] + adds r0, #1 + strh r0, [r4, #0x34] + strh r3, [r4, #0x38] + b _08171592 +_08171438: + ldrh r0, [r4, #0x38] + adds r1, r0, #1 + strh r1, [r4, #0x38] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _08171452 +_08171444: + adds r0, r4, #0 + adds r0, #0x2c + ldrb r1, [r0] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0] + b _08171592 +_08171452: + movs r0, #0 + strh r0, [r4, #0x38] + ldrh r0, [r4, #0x36] + rsbs r0, r0, #0 + strh r0, [r4, #0x36] + ldrh r0, [r4, #0x34] + adds r0, #1 + strh r0, [r4, #0x34] + adds r2, r4, #0 + adds r2, #0x2c + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + movs r6, #0x36 + ldrsh r0, [r4, r6] + cmp r0, #0 + bge _08171480 + adds r0, r4, #0 + movs r1, #2 + bl ChangeSpriteAffineAnim + b _08171488 +_08171480: + adds r0, r4, #0 + movs r1, #1 + bl ChangeSpriteAffineAnim +_08171488: + ldr r1, _081714AC + ldr r5, [r1] + ldr r2, [r5, #8] + ldrh r3, [r2, #0xc] + movs r6, #0xc + ldrsh r0, [r2, r6] + adds r6, r1, #0 + cmp r0, #0xff + ble _081714B0 + ldrh r0, [r4, #0x36] + ldrh r1, [r4, #0x24] + adds r0, r0, r1 + strh r0, [r4, #0x24] + ldr r1, [r5, #8] + ldrb r0, [r1, #0xc] + strh r0, [r1, #0xc] + b _081714B6 + .align 2, 0 +_081714AC: .4byte 0x02024174 +_081714B0: + adds r0, r3, #0 + adds r0, #0xb0 + strh r0, [r2, #0xc] +_081714B6: + ldrh r0, [r4, #0x38] + adds r0, #1 + movs r3, #0 + strh r0, [r4, #0x38] + adds r2, r4, #0 + adds r2, #0x2c + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + ldrh r0, [r4, #0x38] + adds r0, #4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #8 + bls _08171592 + ldr r0, [r6] + ldr r0, [r0, #8] + strh r3, [r0, #0xc] + ldrh r0, [r4, #0x34] + adds r0, #1 + strh r0, [r4, #0x34] + strh r3, [r4, #0x38] + ldrh r0, [r4, #0x36] + rsbs r0, r0, #0 + strh r0, [r4, #0x36] + b _08171592 +_081714EC: + movs r6, #0x80 + lsls r6, r6, #1 + adds r0, r6, #0 + ldrh r1, [r4, #0x34] + adds r0, r0, r1 + strh r0, [r4, #0x34] + lsls r0, r0, #0x10 + asrs r1, r0, #0x18 + ldr r0, _0817151C + ldr r0, [r0] + ldr r0, [r0, #8] + ldrb r0, [r0, #8] + cmp r1, r0 + bne _08171524 + adds r2, r4, #0 + adds r2, #0x2c + ldrb r0, [r2] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08171520 + str r0, [r4, #0x1c] + b _08171592 + .align 2, 0 +_0817151C: .4byte 0x02024174 +_08171520: .4byte 0x08171599 +_08171524: + cmp r0, #4 + bne _08171538 + cmp r1, #3 + bne _08171538 + ldr r0, _08171534 + str r0, [r4, #0x1c] + b _0817153E + .align 2, 0 +_08171534: .4byte 0x081715BD +_08171538: + ldrh r0, [r4, #0x34] + adds r0, #1 + strh r0, [r4, #0x34] +_0817153E: + adds r2, r4, #0 + adds r2, #0x2c + ldrb r0, [r2] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2] + b _08171592 +_0817154C: + ldrh r0, [r4, #0x38] + adds r0, #1 + strh r0, [r4, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1f + bne _08171592 + movs r0, #0 + strh r0, [r4, #0x38] + ldrh r1, [r4, #0x34] + ldr r0, _08171580 + ands r0, r1 + strh r0, [r4, #0x34] + adds r0, r4, #0 + movs r1, #3 + bl StartSpriteAffineAnim + movs r6, #0x36 + ldrsh r0, [r4, r6] + cmp r0, #0 + bge _08171584 + adds r0, r4, #0 + movs r1, #2 + bl StartSpriteAffineAnim + b _0817158C + .align 2, 0 +_08171580: .4byte 0xFFFFFF00 +_08171584: + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAffineAnim +_0817158C: + movs r0, #0x17 + bl PlaySE +_08171592: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_08171304 + + thumb_func_start sub_08171598 +sub_08171598: @ 0x08171598 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0x38] + adds r0, #1 + strh r0, [r1, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1f + bne _081715B2 + movs r0, #0 + strh r0, [r1, #0x38] + ldr r0, _081715B8 + str r0, [r1, #0x1c] +_081715B2: + pop {r0} + bx r0 + .align 2, 0 +_081715B8: .4byte 0x081718C9 + thumb_func_end sub_08171598 + + thumb_func_start sub_081715BC +sub_081715BC: @ 0x081715BC + adds r3, r0, #0 + adds r3, #0x2c + ldrb r1, [r3] + movs r2, #0x40 + orrs r1, r2 + strb r1, [r3] + ldr r1, _081715D8 + str r1, [r0, #0x1c] + movs r1, #0 + strh r1, [r0, #0x34] + strh r1, [r0, #0x36] + strh r1, [r0, #0x38] + bx lr + .align 2, 0 +_081715D8: .4byte 0x081715DD + thumb_func_end sub_081715BC + + thumb_func_start sub_081715DC +sub_081715DC: @ 0x081715DC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r6, r0, #0 + ldr r7, _0817161C + ldrh r0, [r6, #0x36] + adds r0, #1 + movs r1, #0 + mov r8, r1 + strh r0, [r6, #0x36] + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + cmp r1, #0x28 + bne _08171620 + movs r0, #0xfe + bl PlaySE + ldrb r1, [r6, #5] + lsrs r1, r1, #4 + movs r0, #0x80 + lsls r0, r0, #9 + lsls r0, r1 + movs r1, #6 + movs r2, #0 + bl BlendPalettes + adds r0, r6, #0 + bl sub_081717D0 + b _081716A0 + .align 2, 0 +_0817161C: .4byte 0x020380D7 +_08171620: + cmp r1, #0x3c + bne _0817163E + ldrb r1, [r6, #5] + lsrs r1, r1, #4 + movs r0, #0x80 + lsls r0, r0, #9 + lsls r0, r1 + mov r1, r8 + str r1, [sp] + movs r1, #2 + movs r2, #6 + movs r3, #0 + bl BeginNormalPaletteFade + b _081716A0 +_0817163E: + cmp r1, #0x5f + bne _08171664 + ldr r0, _0817165C + movs r1, #0 + strb r1, [r0] + movs r0, #1 + bl UpdateOamPriorityInAllHealthboxes + bl m4aMPlayAllStop + ldr r0, _08171660 + bl PlaySE + b _081716A0 + .align 2, 0 +_0817165C: .4byte 0x0202415D +_08171660: .4byte 0x00000213 +_08171664: + ldr r0, _081716AC + cmp r1, r0 + bne _081716A0 + ldr r5, _081716B0 + ldr r4, _081716B4 + ldrb r0, [r7] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r0, [r0, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + ldrb r0, [r7] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + bl DestroySprite + mov r0, r8 + strh r0, [r6, #0x2e] + ldr r0, _081716B8 + str r0, [r6, #0x1c] +_081716A0: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081716AC: .4byte 0x0000013B +_081716B0: .4byte 0x020205AC +_081716B4: .4byte 0x02023E88 +_081716B8: .4byte 0x081716BD + thumb_func_end sub_081715DC + + thumb_func_start sub_081716BC +sub_081716BC: @ 0x081716BC + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _08171728 + cmp r0, #1 + bgt _081716D4 + cmp r0, #0 + beq _081716DA + b _0817176E +_081716D4: + cmp r0, #2 + beq _0817175A + b _0817176E +_081716DA: + strh r0, [r4, #0x30] + strh r0, [r4, #0x32] + ldrb r1, [r4, #1] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r4, #1] + movs r1, #0xfd + lsls r1, r1, #6 + movs r0, #0x50 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0x10 + bl SetGpuReg + ldr r0, [r4, #0x14] + ldrh r0, [r0, #2] + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #0x10 + movs r1, #1 + lsls r1, r0 + ldr r0, _08171724 + str r0, [sp] + adds r0, r1, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + b _08171766 + .align 2, 0 +_08171724: .4byte 0x00007FFF +_08171728: + ldrh r0, [r4, #0x30] + adds r1, r0, #1 + strh r1, [r4, #0x30] + lsls r0, r0, #0x10 + cmp r0, #0 + ble _08171794 + movs r0, #0 + strh r0, [r4, #0x30] + ldrh r2, [r4, #0x32] + adds r2, #1 + strh r2, [r4, #0x32] + lsls r1, r2, #8 + movs r0, #0x10 + subs r0, r0, r2 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0x10 + bne _08171794 + b _08171766 +_0817175A: + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] +_08171766: + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + b _08171794 +_0817176E: + ldr r0, _0817179C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _08171794 + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + strh r5, [r4, #0x2e] + ldr r0, _081717A0 + str r0, [r4, #0x1c] +_08171794: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0817179C: .4byte 0x02037C74 +_081717A0: .4byte 0x081717A5 + thumb_func_end sub_081716BC + + thumb_func_start sub_081717A4 +sub_081717A4: @ 0x081717A4 + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x2e] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _081717BC + ldr r0, _081717B8 + strh r0, [r4, #0x2e] + b _081717C8 + .align 2, 0 +_081717B8: .4byte 0x0000FFFF +_081717BC: + adds r0, r4, #0 + bl FreeSpriteOamMatrix + adds r0, r4, #0 + bl DestroySprite +_081717C8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081717A4 + + thumb_func_start sub_081717D0 +sub_081717D0: @ 0x081717D0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r6, r0, #0 + adds r1, r6, #0 + adds r1, #0x43 + ldrb r0, [r1] + cmp r0, #0 + beq _081717F0 + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + b _081717F8 +_081717F0: + movs r0, #0 + mov r8, r0 + movs r0, #1 + strb r0, [r1] +_081717F8: + movs r0, #4 + bl sub_08171B44 + movs r7, #0 + ldr r2, _0817187C + mov sb, r2 + movs r0, #0x1c + add r0, sb + mov sl, r0 +_0817180A: + movs r2, #0x20 + ldrsh r1, [r6, r2] + movs r0, #0x22 + ldrsh r2, [r6, r0] + ldr r0, _08171880 + mov r3, r8 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _08171866 + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + mov r2, sb + adds r5, r4, r2 + movs r0, #0x18 + strh r0, [r5, #0x2e] + ldr r0, _08171884 + lsls r1, r7, #2 + adds r1, r1, r0 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r2, [r6, #0x20] + adds r0, r0, r2 + strh r0, [r5, #0x32] + movs r0, #1 + ldrsb r0, [r1, r0] + ldrh r2, [r6, #0x22] + adds r0, r0, r2 + strh r0, [r5, #0x36] + movs r0, #2 + ldrsb r0, [r1, r0] + strh r0, [r5, #0x38] + adds r0, r5, #0 + bl InitAnimArcTranslation + add r4, sl + ldr r0, _08171888 + str r0, [r4] + ldr r0, _0817188C + ldrb r1, [r0, #4] + adds r0, r5, #0 + bl StartSpriteAnim +_08171866: + adds r7, #1 + cmp r7, #2 + bls _0817180A + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0817187C: .4byte 0x020205AC +_08171880: .4byte 0x085C630C +_08171884: .4byte 0x085C6144 +_08171888: .4byte 0x08171891 +_0817188C: .4byte 0x085C6270 + thumb_func_end sub_081717D0 + + thumb_func_start sub_08171890 +sub_08171890: @ 0x08171890 + push {r4, lr} + adds r4, r0, #0 + adds r3, r4, #0 + adds r3, #0x3e + ldrb r2, [r3] + lsrs r1, r2, #2 + movs r0, #1 + eors r1, r0 + ands r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + adds r0, r4, #0 + bl TranslateAnimHorizontalArc + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081718C0 + adds r0, r4, #0 + bl DestroySprite +_081718C0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08171890 + + thumb_func_start sub_081718C8 +sub_081718C8: @ 0x081718C8 + push {r4, r5, r6, lr} + sub sp, #4 + adds r4, r0, #0 + movs r1, #1 + bl StartSpriteAnim + adds r0, r4, #0 + movs r1, #0 + bl StartSpriteAffineAnim + ldr r0, _0817197C + str r0, [r4, #0x1c] + ldr r0, _08171980 + ldrh r0, [r0] + bl ItemIdToBallId + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0xb + bgt _0817191A + cmp r5, #0 + blt _0817191A + ldrh r0, [r4, #0x20] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #0x22] + subs r1, #5 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r5, [sp] + movs r2, #1 + movs r3, #0x1c + bl AnimateBallOpenParticles + ldr r0, _08171984 + ldrb r1, [r0] + movs r0, #1 + movs r2, #0xe + adds r3, r5, #0 + bl LaunchBallFadeMonTask +_0817191A: + ldr r6, _08171988 + ldr r5, _0817198C + ldr r4, _08171984 + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #1 + bl StartSpriteAffineAnim + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + bl AnimateSprite + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #0x80 + lsls r1, r1, #5 + strh r1, [r0, #0x30] + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0817197C: .4byte 0x08171991 +_08171980: .4byte 0x02023EAC +_08171984: .4byte 0x020380D7 +_08171988: .4byte 0x020205AC +_0817198C: .4byte 0x02023E88 + thumb_func_end sub_081718C8 + + thumb_func_start sub_08171990 +sub_08171990: @ 0x08171990 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + movs r5, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _081719AE + adds r2, r7, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] +_081719AE: + ldr r4, _081719DC + ldr r3, _081719E0 + ldr r2, _081719E4 + ldrb r0, [r2] + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r4 + adds r0, r1, #0 + adds r0, #0x3f + ldrb r0, [r0] + lsls r0, r0, #0x1a + cmp r0, #0 + bge _081719E8 + adds r0, r1, #0 + movs r1, #0 + bl StartSpriteAffineAnim + movs r5, #1 + b _08171A08 + .align 2, 0 +_081719DC: .4byte 0x020205AC +_081719E0: .4byte 0x02023E88 +_081719E4: .4byte 0x020380D7 +_081719E8: + ldr r6, _08171A74 + adds r0, r6, #0 + ldrh r6, [r1, #0x30] + adds r0, r0, r6 + strh r0, [r1, #0x30] + ldrb r0, [r2] + adds r0, r0, r3 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrh r0, [r1, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + strh r0, [r1, #0x26] +_08171A08: + adds r0, r7, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08171A6E + cmp r5, #0 + beq _08171A6E + ldr r4, _08171A78 + ldr r3, _08171A7C + ldr r2, _08171A80 + ldrb r0, [r2] + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r6, #0 + movs r5, #0 + strh r5, [r0, #0x26] + ldrb r0, [r2] + adds r0, r0, r3 + ldrb r0, [r0] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r4 + ldr r0, _08171A84 + ldr r0, [r0] + ldr r0, [r0, #8] + ldrb r1, [r0, #9] + lsls r1, r1, #0x1e + adds r2, #0x3e + lsrs r1, r1, #0x1f + lsls r1, r1, #2 + ldrb r3, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + strh r5, [r7, #0x2e] + ldr r0, _08171A88 + str r0, [r7, #0x1c] + ldr r0, _08171A8C + strb r6, [r0] + movs r0, #1 + bl UpdateOamPriorityInAllHealthboxes +_08171A6E: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08171A74: .4byte 0xFFFFFEE0 +_08171A78: .4byte 0x020205AC +_08171A7C: .4byte 0x02023E88 +_08171A80: .4byte 0x020380D7 +_08171A84: .4byte 0x02024174 +_08171A88: .4byte 0x081717A5 +_08171A8C: .4byte 0x0202415D + thumb_func_end sub_08171990 + + thumb_func_start sub_08171A90 +sub_08171A90: @ 0x08171A90 + push {r4, lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x24] + ldrh r1, [r2, #0x20] + adds r0, r0, r1 + movs r1, #0 + strh r0, [r2, #0x20] + ldrh r0, [r2, #0x26] + ldrh r3, [r2, #0x22] + adds r0, r0, r3 + strh r0, [r2, #0x22] + strh r1, [r2, #0x26] + strh r1, [r2, #0x24] + ldr r4, _08171AC8 + movs r3, #0 + movs r1, #5 + adds r0, r2, #0 + adds r0, #0x38 +_08171AB4: + strh r3, [r0] + subs r0, #2 + subs r1, #1 + cmp r1, #0 + bge _08171AB4 + str r4, [r2, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08171AC8: .4byte 0x08171ACD + thumb_func_end sub_08171A90 + + thumb_func_start sub_08171ACC +sub_08171ACC: @ 0x08171ACC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x80 + lsls r0, r0, #4 + adds r2, r0, #0 + ldrh r1, [r4, #0x2e] + adds r2, r2, r1 + movs r0, #0xd0 + lsls r0, r0, #3 + adds r3, r0, #0 + ldrh r1, [r4, #0x30] + adds r3, r3, r1 + lsls r1, r3, #0x10 + asrs r1, r1, #0x18 + ldrh r0, [r4, #0x24] + subs r0, r0, r1 + strh r0, [r4, #0x24] + lsls r0, r2, #0x10 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x26] + adds r0, r0, r1 + strh r0, [r4, #0x26] + movs r0, #0xff + ands r2, r0 + strh r2, [r4, #0x2e] + ands r3, r0 + strh r3, [r4, #0x30] + movs r2, #0x22 + ldrsh r0, [r4, r2] + movs r2, #0x26 + ldrsh r1, [r4, r2] + adds r0, r0, r1 + cmp r0, #0xa0 + bgt _08171B22 + movs r1, #0x20 + ldrsh r0, [r4, r1] + movs r2, #0x24 + ldrsh r1, [r4, r2] + adds r0, r0, r1 + movs r1, #8 + rsbs r1, r1, #0 + cmp r0, r1 + bge _08171B36 +_08171B22: + movs r0, #0 + strh r0, [r4, #0x2e] + ldr r0, _08171B3C + str r0, [r4, #0x1c] + ldr r1, _08171B40 + movs r0, #0 + strb r0, [r1] + movs r0, #1 + bl UpdateOamPriorityInAllHealthboxes +_08171B36: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08171B3C: .4byte 0x081717A5 +_08171B40: .4byte 0x0202415D + thumb_func_end sub_08171ACC + + thumb_func_start sub_08171B44 +sub_08171B44: @ 0x08171B44 + push {r4, r5, lr} + lsls r0, r0, #0x18 + ldr r1, _08171B70 + lsrs r5, r0, #0x15 + adds r4, r5, r1 + ldrh r0, [r4, #6] + bl GetSpriteTileStartByTag + lsls r0, r0, #0x10 + ldr r1, _08171B74 + cmp r0, r1 + bne _08171B6A + adds r0, r4, #0 + bl LoadCompressedSpriteSheetUsingHeap + ldr r0, _08171B78 + adds r0, r5, r0 + bl LoadCompressedSpritePaletteUsingHeap +_08171B6A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08171B70: .4byte 0x085C6150 +_08171B74: .4byte 0xFFFF0000 +_08171B78: .4byte 0x085C61B0 + thumb_func_end sub_08171B44 + + thumb_func_start AnimateBallOpenParticles +AnimateBallOpenParticles: @ 0x08171B7C + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + adds r6, r0, #0 + mov r8, r1 + mov sb, r2 + mov sl, r3 + ldr r5, [sp, #0x1c] + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov r0, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + mov r1, sb + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sb, r1 + mov r0, sl + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + adds r0, r5, #0 + bl sub_08171B44 + ldr r1, _08171BFC + lsls r0, r5, #2 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #5 + bl CreateTask + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _08171C00 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r6, [r0, #0xa] + mov r1, r8 + strh r1, [r0, #0xc] + mov r1, sb + strh r1, [r0, #0xe] + mov r1, sl + strh r1, [r0, #0x10] + strh r5, [r0, #0x26] + movs r0, #0xf + bl PlaySE + adds r0, r4, #0 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08171BFC: .4byte 0x085C627C +_08171C00: .4byte 0x03005B60 + thumb_func_end AnimateBallOpenParticles + + thumb_func_start sub_08171C04 +sub_08171C04: @ 0x08171C04 + push {lr} + ldr r0, _08171C28 + ldr r1, _08171C2C + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08171C22 + ldr r0, _08171C30 + ldr r0, [r0] + ldr r1, [r0, #8] + ldrb r0, [r1, #0xa] + adds r0, #1 + strb r0, [r1, #0xa] +_08171C22: + pop {r0} + bx r0 + .align 2, 0 +_08171C28: .4byte 0x03002360 +_08171C2C: .4byte 0x00000439 +_08171C30: .4byte 0x02024174 + thumb_func_end sub_08171C04 + + thumb_func_start PokeBallOpenParticleAnimation +PokeBallOpenParticleAnimation: @ 0x08171C34 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r1, _08171D10 + lsls r0, r0, #2 + add r0, r8 + lsls r0, r0, #3 + adds r6, r0, r1 + ldrh r0, [r6, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + movs r2, #8 + ldrsh r0, [r6, r2] + adds r2, r1, #0 + cmp r0, #0xf + bgt _08171D2C + ldrb r1, [r6, #0xa] + ldrb r2, [r6, #0xc] + ldrb r4, [r6, #0xe] + mov sb, r4 + ldrb r3, [r6, #0x10] + ldr r4, [sp] + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r4, _08171D14 + adds r0, r0, r4 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + cmp r0, #0x40 + beq _08171CD0 + bl sub_08171C04 + mov r0, sl + lsls r4, r0, #4 + add r4, sl + lsls r4, r4, #2 + ldr r5, _08171D18 + adds r7, r4, r5 + ldr r0, _08171D1C + ldr r1, [sp] + adds r0, r1, r0 + ldrb r1, [r0] + adds r0, r7, #0 + bl StartSpriteAnim + adds r5, #0x1c + adds r4, r4, r5 + ldr r0, _08171D20 + str r0, [r4] + movs r0, #3 + mov r2, sb + ands r2, r0 + lsls r2, r2, #2 + ldrb r1, [r7, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r7, #5] + ldrb r0, [r6, #8] + cmp r0, #7 + bls _08171CCC + subs r0, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_08171CCC: + lsls r0, r0, #5 + strh r0, [r7, #0x2e] +_08171CD0: + ldr r0, _08171D10 + mov r4, r8 + lsls r1, r4, #2 + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r2, #8 + ldrsh r1, [r1, r2] + adds r2, r0, #0 + cmp r1, #0xf + bne _08171D2C + ldr r0, _08171D24 + ldr r4, _08171D28 + adds r0, r0, r4 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08171D06 + ldr r0, _08171D18 + mov r2, sl + lsls r1, r2, #4 + add r1, sl + lsls r1, r1, #2 + adds r1, r1, r0 + movs r0, #1 + strh r0, [r1, #0x3c] +_08171D06: + mov r0, r8 + bl DestroyTask + b _08171D3C + .align 2, 0 +_08171D10: .4byte 0x03005B60 +_08171D14: .4byte 0x085C62AC +_08171D18: .4byte 0x020205AC +_08171D1C: .4byte 0x085C6270 +_08171D20: .4byte 0x08171D4D +_08171D24: .4byte 0x03002360 +_08171D28: .4byte 0x00000439 +_08171D2C: + mov r4, r8 + lsls r0, r4, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrh r1, [r0, #8] + adds r1, #1 + strh r1, [r0, #8] +_08171D3C: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end PokeBallOpenParticleAnimation + + thumb_func_start PokeBallOpenParticleAnimation_Step1 +PokeBallOpenParticleAnimation_Step1: @ 0x08171D4C + push {lr} + adds r1, r0, #0 + ldrh r2, [r1, #0x30] + movs r3, #0x30 + ldrsh r0, [r1, r3] + cmp r0, #0 + bne _08171D64 + ldr r0, _08171D60 + str r0, [r1, #0x1c] + b _08171D68 + .align 2, 0 +_08171D60: .4byte 0x08171D6D +_08171D64: + subs r0, r2, #1 + strh r0, [r1, #0x30] +_08171D68: + pop {r0} + bx r0 + thumb_func_end PokeBallOpenParticleAnimation_Step1 + + thumb_func_start PokeBallOpenParticleAnimation_Step2 +PokeBallOpenParticleAnimation_Step2: @ 0x08171D6C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x30 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, #0x24] + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x30 + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x30] + adds r0, #2 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x32 + bne _08171DA0 + adds r0, r4, #0 + bl DestroyBallOpenAnimationParticle +_08171DA0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PokeBallOpenParticleAnimation_Step2 + + thumb_func_start TimerBallOpenParticleAnimation +TimerBallOpenParticleAnimation: @ 0x08171DA8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldr r0, _08171E8C + mov r2, sb + lsls r1, r2, #2 + add r1, sb + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldrb r3, [r1, #0xa] + str r3, [sp] + ldrb r0, [r1, #0xc] + str r0, [sp, #4] + ldrb r2, [r1, #0xe] + str r2, [sp, #8] + ldrb r1, [r1, #0x10] + str r1, [sp, #0xc] + movs r7, #0 + ldr r3, _08171E90 + mov sl, r3 + mov r1, r8 + lsls r0, r1, #1 + add r0, r8 + lsls r0, r0, #3 + str r0, [sp, #0x10] +_08171DEE: + ldr r0, _08171E94 + ldr r2, [sp, #0x10] + adds r0, r2, r0 + ldr r1, [sp] + ldr r2, [sp, #4] + ldr r3, [sp, #0xc] + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0x40 + beq _08171E4E + bl sub_08171C04 + lsls r4, r6, #4 + adds r4, r4, r6 + lsls r4, r4, #2 + mov r3, sl + adds r5, r4, r3 + ldr r0, _08171E98 + add r0, r8 + ldrb r1, [r0] + adds r0, r5, #0 + bl StartSpriteAnim + ldr r0, _08171E9C + adds r4, r4, r0 + ldr r0, _08171EA0 + str r0, [r4] + movs r0, #3 + ldr r2, [sp, #8] + ands r2, r0 + lsls r2, r2, #2 + ldrb r0, [r5, #5] + movs r3, #0xd + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #5] + lsls r0, r7, #5 + strh r0, [r5, #0x2e] + movs r0, #0xa + strh r0, [r5, #0x36] + movs r0, #2 + strh r0, [r5, #0x38] + movs r0, #1 + strh r0, [r5, #0x3a] +_08171E4E: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #7 + bls _08171DEE + ldr r0, _08171EA4 + ldr r1, _08171EA8 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08171E76 + ldr r0, _08171E90 + lsls r1, r6, #4 + adds r1, r1, r6 + lsls r1, r1, #2 + adds r1, r1, r0 + movs r0, #1 + strh r0, [r1, #0x3c] +_08171E76: + mov r0, sb + bl DestroyTask + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08171E8C: .4byte 0x03005B60 +_08171E90: .4byte 0x020205AC +_08171E94: .4byte 0x085C62AC +_08171E98: .4byte 0x085C6270 +_08171E9C: .4byte 0x020205C8 +_08171EA0: .4byte 0x081722ED +_08171EA4: .4byte 0x03002360 +_08171EA8: .4byte 0x00000439 + thumb_func_end TimerBallOpenParticleAnimation + + thumb_func_start DiveBallOpenParticleAnimation +DiveBallOpenParticleAnimation: @ 0x08171EAC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldr r0, _08171F90 + mov r2, sb + lsls r1, r2, #2 + add r1, sb + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldrb r3, [r1, #0xa] + str r3, [sp] + ldrb r0, [r1, #0xc] + str r0, [sp, #4] + ldrb r2, [r1, #0xe] + str r2, [sp, #8] + ldrb r1, [r1, #0x10] + str r1, [sp, #0xc] + movs r7, #0 + ldr r3, _08171F94 + mov sl, r3 + mov r1, r8 + lsls r0, r1, #1 + add r0, r8 + lsls r0, r0, #3 + str r0, [sp, #0x10] +_08171EF2: + ldr r0, _08171F98 + ldr r2, [sp, #0x10] + adds r0, r2, r0 + ldr r1, [sp] + ldr r2, [sp, #4] + ldr r3, [sp, #0xc] + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0x40 + beq _08171F52 + bl sub_08171C04 + lsls r4, r6, #4 + adds r4, r4, r6 + lsls r4, r4, #2 + mov r3, sl + adds r5, r4, r3 + ldr r0, _08171F9C + add r0, r8 + ldrb r1, [r0] + adds r0, r5, #0 + bl StartSpriteAnim + ldr r0, _08171FA0 + adds r4, r4, r0 + ldr r0, _08171FA4 + str r0, [r4] + movs r0, #3 + ldr r2, [sp, #8] + ands r2, r0 + lsls r2, r2, #2 + ldrb r0, [r5, #5] + movs r3, #0xd + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #5] + lsls r0, r7, #5 + strh r0, [r5, #0x2e] + movs r0, #0xa + strh r0, [r5, #0x36] + movs r0, #1 + strh r0, [r5, #0x38] + movs r0, #2 + strh r0, [r5, #0x3a] +_08171F52: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #7 + bls _08171EF2 + ldr r0, _08171FA8 + ldr r1, _08171FAC + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08171F7A + ldr r0, _08171F94 + lsls r1, r6, #4 + adds r1, r1, r6 + lsls r1, r1, #2 + adds r1, r1, r0 + movs r0, #1 + strh r0, [r1, #0x3c] +_08171F7A: + mov r0, sb + bl DestroyTask + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08171F90: .4byte 0x03005B60 +_08171F94: .4byte 0x020205AC +_08171F98: .4byte 0x085C62AC +_08171F9C: .4byte 0x085C6270 +_08171FA0: .4byte 0x020205C8 +_08171FA4: .4byte 0x081722ED +_08171FA8: .4byte 0x03002360 +_08171FAC: .4byte 0x00000439 + thumb_func_end DiveBallOpenParticleAnimation + + thumb_func_start SafariBallOpenParticleAnimation +SafariBallOpenParticleAnimation: @ 0x08171FB0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldr r1, _08172090 + lsls r0, r0, #2 + add r0, sb + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #0x26] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrb r2, [r0, #0xa] + str r2, [sp] + ldrb r3, [r0, #0xc] + str r3, [sp, #4] + ldrb r2, [r0, #0xe] + str r2, [sp, #8] + ldrb r0, [r0, #0x10] + str r0, [sp, #0xc] + movs r7, #0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + str r0, [sp, #0x10] + ldr r3, _08172094 + mov r8, r3 + ldr r0, _08172098 + adds r1, r1, r0 + mov sl, r1 +_08171FF6: + ldr r0, _0817209C + ldr r1, [sp, #0x10] + adds r0, r1, r0 + ldr r1, [sp] + ldr r2, [sp, #4] + ldr r3, [sp, #0xc] + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0x40 + beq _08172052 + bl sub_08171C04 + lsls r4, r6, #4 + adds r4, r4, r6 + lsls r4, r4, #2 + mov r2, r8 + adds r5, r4, r2 + mov r3, sl + ldrb r1, [r3] + adds r0, r5, #0 + bl StartSpriteAnim + ldr r0, _081720A0 + adds r4, r4, r0 + ldr r0, _081720A4 + str r0, [r4] + movs r0, #3 + ldr r2, [sp, #8] + ands r2, r0 + lsls r2, r2, #2 + ldrb r0, [r5, #5] + movs r3, #0xd + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #5] + lsls r0, r7, #5 + strh r0, [r5, #0x2e] + movs r0, #4 + strh r0, [r5, #0x36] + movs r0, #1 + strh r0, [r5, #0x38] + strh r0, [r5, #0x3a] +_08172052: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #7 + bls _08171FF6 + ldr r0, _081720A8 + ldr r1, _081720AC + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0817207A + ldr r0, _08172094 + lsls r1, r6, #4 + adds r1, r1, r6 + lsls r1, r1, #2 + adds r1, r1, r0 + movs r0, #1 + strh r0, [r1, #0x3c] +_0817207A: + mov r0, sb + bl DestroyTask + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08172090: .4byte 0x03005B60 +_08172094: .4byte 0x020205AC +_08172098: .4byte 0x085C6270 +_0817209C: .4byte 0x085C62AC +_081720A0: .4byte 0x020205C8 +_081720A4: .4byte 0x081722ED +_081720A8: .4byte 0x03002360 +_081720AC: .4byte 0x00000439 + thumb_func_end SafariBallOpenParticleAnimation + + thumb_func_start UltraBallOpenParticleAnimation +UltraBallOpenParticleAnimation: @ 0x081720B0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldr r0, _08172198 + mov r2, sb + lsls r1, r2, #2 + add r1, sb + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldrb r3, [r1, #0xa] + str r3, [sp] + ldrb r0, [r1, #0xc] + str r0, [sp, #4] + ldrb r2, [r1, #0xe] + str r2, [sp, #8] + ldrb r1, [r1, #0x10] + str r1, [sp, #0xc] + movs r7, #0 + ldr r3, _0817219C + mov sl, r3 + mov r1, r8 + lsls r0, r1, #1 + add r0, r8 + lsls r0, r0, #3 + str r0, [sp, #0x10] +_081720F6: + ldr r0, _081721A0 + ldr r2, [sp, #0x10] + adds r0, r2, r0 + ldr r1, [sp] + ldr r2, [sp, #4] + ldr r3, [sp, #0xc] + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0x40 + beq _0817215A + bl sub_08171C04 + lsls r4, r6, #4 + adds r4, r4, r6 + lsls r4, r4, #2 + mov r3, sl + adds r5, r4, r3 + ldr r0, _081721A4 + add r0, r8 + ldrb r1, [r0] + adds r0, r5, #0 + bl StartSpriteAnim + ldr r0, _081721A8 + adds r4, r4, r0 + ldr r0, _081721AC + str r0, [r4] + movs r0, #3 + ldr r2, [sp, #8] + ands r2, r0 + lsls r2, r2, #2 + ldrb r0, [r5, #5] + movs r3, #0xd + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #5] + lsls r0, r7, #1 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r7 + strh r0, [r5, #0x2e] + movs r0, #5 + strh r0, [r5, #0x36] + movs r0, #1 + strh r0, [r5, #0x38] + strh r0, [r5, #0x3a] +_0817215A: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #9 + bls _081720F6 + ldr r0, _081721B0 + ldr r1, _081721B4 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08172182 + ldr r0, _0817219C + lsls r1, r6, #4 + adds r1, r1, r6 + lsls r1, r1, #2 + adds r1, r1, r0 + movs r0, #1 + strh r0, [r1, #0x3c] +_08172182: + mov r0, sb + bl DestroyTask + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08172198: .4byte 0x03005B60 +_0817219C: .4byte 0x020205AC +_081721A0: .4byte 0x085C62AC +_081721A4: .4byte 0x085C6270 +_081721A8: .4byte 0x020205C8 +_081721AC: .4byte 0x081722ED +_081721B0: .4byte 0x03002360 +_081721B4: .4byte 0x00000439 + thumb_func_end UltraBallOpenParticleAnimation + + thumb_func_start GreatBallOpenParticleAnimation +GreatBallOpenParticleAnimation: @ 0x081721B8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r1, _081721E4 + lsls r2, r0, #2 + adds r0, r2, r0 + lsls r0, r0, #3 + adds r3, r0, r1 + ldrh r1, [r3, #0x16] + movs r4, #0x16 + ldrsh r0, [r3, r4] + cmp r0, #0 + beq _081721E8 + subs r0, r1, #1 + strh r0, [r3, #0x16] + b _081722BA + .align 2, 0 +_081721E4: .4byte 0x03005B60 +_081721E8: + ldrh r0, [r3, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r3, #0xa] + str r1, [sp] + ldrb r4, [r3, #0xc] + str r4, [sp, #4] + ldrb r1, [r3, #0xe] + str r1, [sp, #8] + ldrb r3, [r3, #0x10] + str r3, [sp, #0xc] + movs r7, #0 + str r2, [sp, #0x14] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #3 + str r1, [sp, #0x10] + ldr r3, _081722CC + mov sb, r3 + ldr r1, _081722D0 + adds r0, r0, r1 + mov sl, r0 +_08172214: + ldr r0, _081722D4 + ldr r4, [sp, #0x10] + adds r0, r4, r0 + ldr r1, [sp] + ldr r2, [sp, #4] + ldr r3, [sp, #0xc] + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0x40 + beq _08172270 + bl sub_08171C04 + lsls r4, r6, #4 + adds r4, r4, r6 + lsls r4, r4, #2 + mov r0, sb + adds r5, r4, r0 + mov r3, sl + ldrb r1, [r3] + adds r0, r5, #0 + bl StartSpriteAnim + ldr r0, _081722D8 + adds r4, r4, r0 + ldr r0, _081722DC + str r0, [r4] + movs r0, #3 + ldr r2, [sp, #8] + ands r2, r0 + lsls r2, r2, #2 + ldrb r0, [r5, #5] + movs r3, #0xd + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #5] + lsls r0, r7, #5 + strh r0, [r5, #0x2e] + movs r0, #8 + strh r0, [r5, #0x36] + movs r0, #2 + strh r0, [r5, #0x38] + strh r0, [r5, #0x3a] +_08172270: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #7 + bls _08172214 + ldr r0, _081722E0 + ldr r1, [sp, #0x14] + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #8 + strh r0, [r1, #0x16] + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + asrs r2, r0, #0x10 + cmp r2, #2 + bne _081722BA + ldr r0, _081722E4 + ldr r4, _081722E8 + adds r0, r0, r4 + ldrb r1, [r0] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _081722B4 + ldr r0, _081722CC + lsls r1, r6, #4 + adds r1, r1, r6 + lsls r1, r1, #2 + adds r1, r1, r0 + movs r0, #1 + strh r0, [r1, #0x3c] +_081722B4: + mov r0, r8 + bl DestroyTask +_081722BA: + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081722CC: .4byte 0x020205AC +_081722D0: .4byte 0x085C6270 +_081722D4: .4byte 0x085C62AC +_081722D8: .4byte 0x020205C8 +_081722DC: .4byte 0x081722ED +_081722E0: .4byte 0x03005B60 +_081722E4: .4byte 0x03002360 +_081722E8: .4byte 0x00000439 + thumb_func_end GreatBallOpenParticleAnimation + + thumb_func_start FanOutBallOpenParticles_Step1 +FanOutBallOpenParticles_Step1: @ 0x081722EC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x30 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, #0x24] + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x36] + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x38] + ldrh r2, [r4, #0x30] + adds r0, r0, r2 + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x3a] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x34] + adds r0, #1 + strh r0, [r4, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x33 + bne _0817233C + adds r0, r4, #0 + bl DestroyBallOpenAnimationParticle +_0817233C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end FanOutBallOpenParticles_Step1 + + thumb_func_start RepeatBallOpenParticleAnimation +RepeatBallOpenParticleAnimation: @ 0x08172344 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldr r1, _08172420 + lsls r0, r0, #2 + add r0, sb + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #0x26] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrb r2, [r0, #0xa] + str r2, [sp] + ldrb r3, [r0, #0xc] + str r3, [sp, #4] + ldrb r2, [r0, #0xe] + str r2, [sp, #8] + ldrb r0, [r0, #0x10] + str r0, [sp, #0xc] + movs r7, #0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + str r0, [sp, #0x10] + ldr r3, _08172424 + mov r8, r3 + ldr r0, _08172428 + adds r1, r1, r0 + mov sl, r1 +_0817238A: + ldr r0, _0817242C + ldr r1, [sp, #0x10] + adds r0, r1, r0 + ldr r1, [sp] + ldr r2, [sp, #4] + ldr r3, [sp, #0xc] + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0x40 + beq _081723E2 + bl sub_08171C04 + lsls r4, r6, #4 + adds r4, r4, r6 + lsls r4, r4, #2 + mov r2, r8 + adds r5, r4, r2 + mov r3, sl + ldrb r1, [r3] + adds r0, r5, #0 + bl StartSpriteAnim + ldr r0, _08172430 + adds r4, r4, r0 + ldr r0, _08172434 + str r0, [r4] + movs r0, #3 + ldr r2, [sp, #8] + ands r2, r0 + lsls r2, r2, #2 + ldrb r0, [r5, #5] + movs r3, #0xd + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #5] + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r0, [r5, #0x2e] +_081723E2: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #0xb + bls _0817238A + ldr r0, _08172438 + ldr r1, _0817243C + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0817240A + ldr r0, _08172424 + lsls r1, r6, #4 + adds r1, r1, r6 + lsls r1, r1, #2 + adds r1, r1, r0 + movs r0, #1 + strh r0, [r1, #0x3c] +_0817240A: + mov r0, sb + bl DestroyTask + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08172420: .4byte 0x03005B60 +_08172424: .4byte 0x020205AC +_08172428: .4byte 0x085C6270 +_0817242C: .4byte 0x085C62AC +_08172430: .4byte 0x020205C8 +_08172434: .4byte 0x08172441 +_08172438: .4byte 0x03002360 +_0817243C: .4byte 0x00000439 + thumb_func_end RepeatBallOpenParticleAnimation + + thumb_func_start RepeatBallOpenParticleAnimation_Step1 +RepeatBallOpenParticleAnimation_Step1: @ 0x08172440 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + movs r2, #0x30 + ldrsh r1, [r5, r2] + bl Sin + strh r0, [r5, #0x24] + movs r0, #0x2e + ldrsh r4, [r5, r0] + movs r2, #0x32 + ldrsh r1, [r5, r2] + adds r0, r4, #0 + bl Sin + adds r1, r0, #0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r0, r4, #0 + bl Cos + strh r0, [r5, #0x26] + ldrh r0, [r5, #0x2e] + adds r0, #6 + movs r1, #0xff + ands r0, r1 + strh r0, [r5, #0x2e] + ldrh r0, [r5, #0x30] + adds r0, #1 + strh r0, [r5, #0x30] + ldrh r0, [r5, #0x32] + adds r0, #1 + strh r0, [r5, #0x32] + ldrh r0, [r5, #0x34] + adds r0, #1 + strh r0, [r5, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x33 + bne _08172498 + adds r0, r5, #0 + bl DestroyBallOpenAnimationParticle +_08172498: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RepeatBallOpenParticleAnimation_Step1 + + thumb_func_start MasterBallOpenParticleAnimation +MasterBallOpenParticleAnimation: @ 0x081724A0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + ldr r0, _08172554 + ldr r2, [sp] + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldrb r3, [r1, #0xa] + str r3, [sp, #4] + ldrb r0, [r1, #0xc] + str r0, [sp, #8] + ldrb r2, [r1, #0xe] + str r2, [sp, #0xc] + ldrb r1, [r1, #0x10] + str r1, [sp, #0x10] + movs r3, #0 + mov r8, r3 + mov r1, sb + lsls r0, r1, #1 + add r0, sb + lsls r0, r0, #3 + str r0, [sp, #0x14] +_081724E4: + movs r7, #0 + movs r2, #1 + add r2, r8 + mov sl, r2 +_081724EC: + ldr r0, _08172558 + ldr r3, [sp, #0x14] + adds r0, r3, r0 + ldr r1, [sp, #4] + ldr r2, [sp, #8] + ldr r3, [sp, #0x10] + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0x40 + beq _08172574 + bl sub_08171C04 + lsls r4, r6, #4 + adds r4, r4, r6 + lsls r4, r4, #2 + ldr r0, _0817255C + adds r5, r4, r0 + ldr r0, _08172560 + add r0, sb + ldrb r1, [r0] + adds r0, r5, #0 + bl StartSpriteAnim + ldr r1, _08172564 + adds r4, r4, r1 + ldr r0, _08172568 + str r0, [r4] + movs r0, #3 + ldr r1, [sp, #0xc] + ands r1, r0 + lsls r1, r1, #2 + ldrb r0, [r5, #5] + movs r3, #0xd + rsbs r3, r3, #0 + adds r2, r3, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #5] + lsls r0, r7, #5 + strh r0, [r5, #0x2e] + movs r0, #8 + strh r0, [r5, #0x36] + mov r0, r8 + cmp r0, #0 + bne _0817256C + movs r0, #2 + strh r0, [r5, #0x38] + movs r0, #1 + b _08172572 + .align 2, 0 +_08172554: .4byte 0x03005B60 +_08172558: .4byte 0x085C62AC +_0817255C: .4byte 0x020205AC +_08172560: .4byte 0x085C6270 +_08172564: .4byte 0x020205C8 +_08172568: .4byte 0x081722ED +_0817256C: + movs r0, #1 + strh r0, [r5, #0x38] + movs r0, #2 +_08172572: + strh r0, [r5, #0x3a] +_08172574: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #7 + bls _081724EC + mov r1, sl + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + cmp r0, #1 + bls _081724E4 + ldr r0, _081725C0 + ldr r2, _081725C4 + adds r0, r0, r2 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _081725A8 + ldr r0, _081725C8 + lsls r1, r6, #4 + adds r1, r1, r6 + lsls r1, r1, #2 + adds r1, r1, r0 + movs r0, #1 + strh r0, [r1, #0x3c] +_081725A8: + ldr r0, [sp] + bl DestroyTask + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081725C0: .4byte 0x03002360 +_081725C4: .4byte 0x00000439 +_081725C8: .4byte 0x020205AC + thumb_func_end MasterBallOpenParticleAnimation + + thumb_func_start PremierBallOpenParticleAnimation +PremierBallOpenParticleAnimation: @ 0x081725CC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldr r1, _081726A4 + lsls r0, r0, #2 + add r0, sb + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #0x26] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrb r2, [r0, #0xa] + str r2, [sp] + ldrb r3, [r0, #0xc] + str r3, [sp, #4] + ldrb r2, [r0, #0xe] + str r2, [sp, #8] + ldrb r0, [r0, #0x10] + str r0, [sp, #0xc] + movs r7, #0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + str r0, [sp, #0x10] + ldr r3, _081726A8 + mov r8, r3 + ldr r0, _081726AC + adds r1, r1, r0 + mov sl, r1 +_08172612: + ldr r0, _081726B0 + ldr r1, [sp, #0x10] + adds r0, r1, r0 + ldr r1, [sp] + ldr r2, [sp, #4] + ldr r3, [sp, #0xc] + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0x40 + beq _08172664 + bl sub_08171C04 + lsls r4, r6, #4 + adds r4, r4, r6 + lsls r4, r4, #2 + mov r2, r8 + adds r5, r4, r2 + mov r3, sl + ldrb r1, [r3] + adds r0, r5, #0 + bl StartSpriteAnim + ldr r0, _081726B4 + adds r4, r4, r0 + ldr r0, _081726B8 + str r0, [r4] + movs r0, #3 + ldr r2, [sp, #8] + ands r2, r0 + lsls r2, r2, #2 + ldrb r0, [r5, #5] + movs r3, #0xd + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #5] + lsls r0, r7, #5 + strh r0, [r5, #0x2e] +_08172664: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #7 + bls _08172612 + ldr r0, _081726BC + ldr r1, _081726C0 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0817268C + ldr r0, _081726A8 + lsls r1, r6, #4 + adds r1, r1, r6 + lsls r1, r1, #2 + adds r1, r1, r0 + movs r0, #1 + strh r0, [r1, #0x3c] +_0817268C: + mov r0, sb + bl DestroyTask + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081726A4: .4byte 0x03005B60 +_081726A8: .4byte 0x020205AC +_081726AC: .4byte 0x085C6270 +_081726B0: .4byte 0x085C62AC +_081726B4: .4byte 0x020205C8 +_081726B8: .4byte 0x081726C5 +_081726BC: .4byte 0x03002360 +_081726C0: .4byte 0x00000439 + thumb_func_end PremierBallOpenParticleAnimation + + thumb_func_start PremierBallOpenParticleAnimation_Step1 +PremierBallOpenParticleAnimation_Step1: @ 0x081726C4 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + movs r2, #0x30 + ldrsh r1, [r5, r2] + bl Sin + strh r0, [r5, #0x24] + movs r0, #0x2e + ldrsh r4, [r5, r0] + ldrh r1, [r5, #0x2e] + movs r0, #0x3f + ands r0, r1 + movs r2, #0x32 + ldrsh r1, [r5, r2] + bl Sin + adds r1, r0, #0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r0, r4, #0 + bl Cos + strh r0, [r5, #0x26] + ldrh r0, [r5, #0x2e] + adds r0, #0xa + movs r1, #0xff + ands r0, r1 + strh r0, [r5, #0x2e] + ldrh r0, [r5, #0x30] + adds r0, #1 + strh r0, [r5, #0x30] + ldrh r0, [r5, #0x32] + adds r0, #1 + strh r0, [r5, #0x32] + ldrh r0, [r5, #0x34] + adds r0, #1 + strh r0, [r5, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x33 + bne _08172720 + adds r0, r5, #0 + bl DestroyBallOpenAnimationParticle +_08172720: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PremierBallOpenParticleAnimation_Step1 + + thumb_func_start DestroyBallOpenAnimationParticle +DestroyBallOpenAnimationParticle: @ 0x08172728 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + ldr r0, _0817274C + ldr r1, _08172750 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08172754 + movs r1, #0x3c + ldrsh r0, [r7, r1] + cmp r0, #1 + bne _081727AE + adds r0, r7, #0 + bl DestroySpriteAndFreeResources + b _081727C6 + .align 2, 0 +_0817274C: .4byte 0x03002360 +_08172750: .4byte 0x00000439 +_08172754: + ldr r2, _08172770 + ldr r0, [r2] + ldr r1, [r0, #8] + ldrb r0, [r1, #0xa] + subs r0, #1 + strb r0, [r1, #0xa] + ldr r0, [r2] + ldr r0, [r0, #8] + ldrb r0, [r0, #0xa] + cmp r0, #0 + bne _081727C0 + movs r4, #0 + ldr r5, _08172774 + b _0817277C + .align 2, 0 +_08172770: .4byte 0x02024174 +_08172774: .4byte 0x085C627C +_08172778: + adds r5, #4 + adds r4, #1 +_0817277C: + cmp r4, #0xb + bgt _0817278E + ldr r0, [r5] + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08172778 +_0817278E: + cmp r4, #0xc + bne _081727AE + movs r6, #0 + ldr r5, _081727B8 + ldr r4, _081727BC +_08172798: + ldrh r0, [r5, #6] + bl FreeSpriteTilesByTag + ldrh r0, [r4, #4] + bl FreeSpritePaletteByTag + adds r5, #8 + adds r4, #8 + adds r6, #1 + cmp r6, #0xb + ble _08172798 +_081727AE: + adds r0, r7, #0 + bl DestroySprite + b _081727C6 + .align 2, 0 +_081727B8: .4byte 0x085C6150 +_081727BC: .4byte 0x085C61B0 +_081727C0: + adds r0, r7, #0 + bl DestroySprite +_081727C6: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end DestroyBallOpenAnimationParticle + + thumb_func_start LaunchBallFadeMonTask +LaunchBallFadeMonTask: @ 0x081727CC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + adds r4, r0, #0 + mov sb, r2 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + lsls r3, r3, #0x18 + lsrs r7, r3, #0x18 + ldr r0, _08172830 + movs r1, #5 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r1, _08172834 + lsls r0, r0, #2 + add r0, r8 + lsls r0, r0, #3 + adds r5, r0, r1 + strh r7, [r5, #0x26] + strh r6, [r5, #0xe] + mov r0, sb + strh r0, [r5, #0x1c] + mov r1, sb + lsrs r0, r1, #0x10 + strh r0, [r5, #0x1e] + cmp r4, #0 + bne _0817283C + lsls r0, r6, #0x14 + movs r2, #0x80 + lsls r2, r2, #0x11 + adds r0, r0, r2 + lsrs r0, r0, #0x10 + ldr r2, _08172838 + lsls r1, r7, #1 + adds r1, r1, r2 + ldrh r3, [r1] + movs r1, #0x10 + movs r2, #0 + bl BlendPalette + movs r0, #1 + strh r0, [r5, #0xa] + b _08172862 + .align 2, 0 +_08172830: .4byte 0x08172895 +_08172834: .4byte 0x03005B60 +_08172838: .4byte 0x085C63CC +_0817283C: + lsls r0, r6, #0x14 + movs r1, #0x80 + lsls r1, r1, #0x11 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + ldr r2, _08172884 + lsls r1, r7, #1 + adds r1, r1, r2 + ldrh r3, [r1] + movs r1, #0x10 + movs r2, #0x10 + bl BlendPalette + movs r0, #0x10 + strh r0, [r5, #8] + ldr r0, _08172888 + strh r0, [r5, #0xa] + ldr r0, _0817288C + str r0, [r5] +_08172862: + ldr r0, _08172890 + str r0, [sp] + mov r0, sb + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + mov r0, r8 + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08172884: .4byte 0x085C63CC +_08172888: .4byte 0x0000FFFF +_0817288C: .4byte 0x08172925 +_08172890: .4byte 0x00007FFF + thumb_func_end LaunchBallFadeMonTask + + thumb_func_start sub_08172894 +sub_08172894: @ 0x08172894 + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + ldr r1, _081728E4 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrh r0, [r4, #0x26] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r2, #0xc + ldrsh r0, [r4, r2] + cmp r0, #0x10 + bgt _081728EC + movs r2, #0xe + ldrsh r0, [r4, r2] + lsls r0, r0, #0x14 + movs r2, #0x80 + lsls r2, r2, #0x11 + adds r0, r0, r2 + lsrs r0, r0, #0x10 + ldrb r2, [r4, #8] + ldr r3, _081728E8 + lsls r1, r1, #1 + adds r1, r1, r3 + ldrh r3, [r1] + movs r1, #0x10 + bl BlendPalette + ldrh r0, [r4, #0xa] + ldrh r1, [r4, #8] + adds r0, r0, r1 + strh r0, [r4, #8] + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + b _08172914 + .align 2, 0 +_081728E4: .4byte 0x03005B60 +_081728E8: .4byte 0x085C63CC +_081728EC: + ldr r0, _0817291C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08172914 + ldrh r0, [r4, #0x1c] + ldrh r1, [r4, #0x1e] + lsls r1, r1, #0x10 + orrs r0, r1 + ldr r1, _08172920 + str r1, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + adds r0, r5, #0 + bl DestroyTask +_08172914: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0817291C: .4byte 0x02037C74 +_08172920: .4byte 0x00007FFF + thumb_func_end sub_08172894 + + thumb_func_start sub_08172924 +sub_08172924: @ 0x08172924 + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _08172964 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0817295C + ldr r0, _08172968 + lsls r4, r2, #2 + adds r4, r4, r2 + lsls r4, r4, #3 + adds r4, r4, r0 + ldrh r0, [r4, #0x1c] + ldrh r1, [r4, #0x1e] + lsls r1, r1, #0x10 + orrs r0, r1 + ldr r1, _0817296C + str r1, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r0, _08172970 + str r0, [r4] +_0817295C: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08172964: .4byte 0x02037C74 +_08172968: .4byte 0x03005B60 +_0817296C: .4byte 0x00007FFF +_08172970: .4byte 0x08172975 + thumb_func_end sub_08172924 + + thumb_func_start sub_08172974 +sub_08172974: @ 0x08172974 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _081729C0 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrh r0, [r4, #0x26] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r3, #0xc + ldrsh r0, [r4, r3] + cmp r0, #0x10 + bgt _081729C8 + movs r2, #0xe + ldrsh r0, [r4, r2] + lsls r0, r0, #0x14 + movs r3, #0x80 + lsls r3, r3, #0x11 + adds r0, r0, r3 + lsrs r0, r0, #0x10 + ldrb r2, [r4, #8] + ldr r3, _081729C4 + lsls r1, r1, #1 + adds r1, r1, r3 + ldrh r3, [r1] + movs r1, #0x10 + bl BlendPalette + ldrh r0, [r4, #0xa] + ldrh r1, [r4, #8] + adds r0, r0, r1 + strh r0, [r4, #8] + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + b _081729CE + .align 2, 0 +_081729C0: .4byte 0x03005B60 +_081729C4: .4byte 0x085C63CC +_081729C8: + adds r0, r2, #0 + bl DestroyTask +_081729CE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08172974 + + thumb_func_start sub_081729D4 +sub_081729D4: @ 0x081729D4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r0, #0 + mov r8, r0 + ldr r0, _08172A08 + ldr r3, _08172A0C + ldrb r2, [r3] + adds r0, r2, r0 + ldrb r6, [r0] + ldr r1, _08172A10 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r5, r0, r1 + movs r1, #0x1c + ldrsh r0, [r5, r1] + cmp r0, #1 + beq _08172AAC + cmp r0, #1 + bgt _08172A14 + cmp r0, #0 + beq _08172A1A + b _08172B6E + .align 2, 0 +_08172A08: .4byte 0x02023E88 +_08172A0C: .4byte 0x020380D6 +_08172A10: .4byte 0x03005B60 +_08172A14: + cmp r0, #2 + beq _08172ABE + b _08172B6E +_08172A1A: + ldr r0, _08172A54 + ldrh r0, [r0] + strh r0, [r5, #0x1e] + movs r2, #0xa0 + lsls r2, r2, #3 + adds r0, r2, #0 + ldrh r4, [r5, #8] + adds r0, r0, r4 + strh r0, [r5, #8] + ldrb r0, [r3] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08172A5C + ldr r2, _08172A58 + lsls r3, r6, #4 + adds r1, r3, r6 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r0, [r5, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + ldrh r4, [r1, #0x24] + adds r0, r0, r4 + strh r0, [r1, #0x24] + adds r4, r3, #0 + b _08172A74 + .align 2, 0 +_08172A54: .4byte 0x020380BE +_08172A58: .4byte 0x020205AC +_08172A5C: + ldr r3, _08172AA4 + lsls r4, r6, #4 + adds r2, r4, r6 + lsls r2, r2, #2 + adds r2, r2, r3 + ldrh r1, [r5, #8] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + ldrh r0, [r2, #0x24] + subs r0, r0, r1 + strh r0, [r2, #0x24] + adds r2, r3, #0 +_08172A74: + ldr r1, _08172AA8 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r3, r0, r1 + ldrb r0, [r3, #8] + strh r0, [r3, #8] + adds r0, r4, r6 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r2, #0x20 + ldrsh r1, [r0, r2] + movs r4, #0x24 + ldrsh r0, [r0, r4] + adds r1, r1, r0 + adds r1, #0x20 + movs r0, #0x98 + lsls r0, r0, #1 + cmp r1, r0 + bls _08172B6E + ldrh r0, [r3, #0x1c] + adds r0, #1 + strh r0, [r3, #0x1c] + b _08172B6E + .align 2, 0 +_08172AA4: .4byte 0x020205AC +_08172AA8: .4byte 0x03005B60 +_08172AAC: + ldrb r1, [r5, #0x1e] + adds r0, r2, #0 + adds r2, r6, #0 + bl LoadBattleMonGfxAndAnimate + ldrh r0, [r5, #0x1c] + adds r0, #1 + strh r0, [r5, #0x1c] + b _08172B6E +_08172ABE: + movs r1, #0xa0 + lsls r1, r1, #3 + adds r0, r1, #0 + ldrh r2, [r5, #8] + adds r0, r0, r2 + strh r0, [r5, #8] + ldrb r0, [r3] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08172AF4 + ldr r0, _08172AF0 + lsls r3, r6, #4 + adds r2, r3, r6 + lsls r2, r2, #2 + adds r2, r2, r0 + ldrh r1, [r5, #8] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + ldrh r0, [r2, #0x24] + subs r0, r0, r1 + strh r0, [r2, #0x24] + adds r4, r3, #0 + b _08172B0C + .align 2, 0 +_08172AF0: .4byte 0x020205AC +_08172AF4: + ldr r0, _08172B40 + lsls r2, r6, #4 + adds r1, r2, r6 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r0, [r5, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + ldrh r3, [r1, #0x24] + adds r0, r0, r3 + strh r0, [r1, #0x24] + adds r4, r2, #0 +_08172B0C: + ldr r1, _08172B44 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r1, [r0, #8] + strh r1, [r0, #8] + ldr r0, _08172B48 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _08172B4C + ldr r0, _08172B40 + adds r1, r4, r6 + lsls r1, r1, #2 + adds r1, r1, r0 + movs r4, #0x24 + ldrsh r0, [r1, r4] + cmp r0, #0 + bgt _08172B62 + movs r0, #0 + strh r0, [r1, #0x24] + b _08172B68 + .align 2, 0 +_08172B40: .4byte 0x020205AC +_08172B44: .4byte 0x03005B60 +_08172B48: .4byte 0x020380D6 +_08172B4C: + ldr r0, _08172B78 + adds r1, r4, r6 + lsls r1, r1, #2 + adds r1, r1, r0 + movs r3, #0x24 + ldrsh r0, [r1, r3] + cmp r0, #0 + blt _08172B62 + strh r2, [r1, #0x24] + movs r4, #1 + mov r8, r4 +_08172B62: + mov r0, r8 + cmp r0, #0 + beq _08172B6E +_08172B68: + adds r0, r7, #0 + bl DestroyAnimVisualTask +_08172B6E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08172B78: .4byte 0x020205AC + thumb_func_end sub_081729D4 + + thumb_func_start sub_08172B7C +sub_08172B7C: @ 0x08172B7C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _08172BA0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #0x26 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _08172BF8 + cmp r0, #1 + bgt _08172BA4 + cmp r0, #0 + beq _08172BAA + b _08172C68 + .align 2, 0 +_08172BA0: .4byte 0x03005B60 +_08172BA4: + cmp r0, #2 + beq _08172C32 + b _08172C68 +_08172BAA: + ldr r0, _08172BC4 + ldrb r0, [r0] + bl GetBattlerSpriteBGPriorityRank + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08172BCC + ldr r1, _08172BC8 + movs r0, #0x50 + bl SetGpuReg + b _08172BD4 + .align 2, 0 +_08172BC4: .4byte 0x020380D6 +_08172BC8: .4byte 0x00003F42 +_08172BCC: + ldr r1, _08172BF0 + movs r0, #0x50 + bl SetGpuReg +_08172BD4: + movs r0, #0x52 + movs r1, #0x10 + bl SetGpuReg + ldr r0, _08172BF4 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x26] + adds r0, #1 + strh r0, [r1, #0x26] + b _08172C68 + .align 2, 0 +_08172BF0: .4byte 0x00003F44 +_08172BF4: .4byte 0x03005B60 +_08172BF8: + ldrh r0, [r4, #0xa] + adds r1, r0, #1 + strh r1, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _08172C68 + movs r0, #0 + strh r0, [r4, #0xa] + ldrh r2, [r4, #8] + adds r2, #1 + strh r2, [r4, #8] + lsls r1, r2, #8 + movs r0, #0x10 + subs r0, r0, r2 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0x10 + bne _08172C68 + ldrh r0, [r4, #0x26] + adds r0, #1 + strh r0, [r4, #0x26] + b _08172C68 +_08172C32: + ldr r1, _08172C70 + ldr r4, _08172C74 + ldrb r0, [r4] + adds r0, r0, r1 + ldrb r1, [r0] + ldr r2, _08172C78 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x11 + ldr r0, _08172C7C + adds r1, r1, r0 + movs r2, #0x80 + lsls r2, r2, #4 + movs r0, #0 + movs r3, #1 + bl RequestDma3Fill + ldrb r0, [r4] + bl ClearBehindSubstituteBit + adds r0, r5, #0 + bl DestroyAnimVisualTask +_08172C68: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08172C70: .4byte 0x02023E88 +_08172C74: .4byte 0x020380D6 +_08172C78: .4byte 0x020205AC +_08172C7C: .4byte 0x06010000 + thumb_func_end sub_08172B7C + + thumb_func_start AnimTask_IsAttackerBehindSubstitute +AnimTask_IsAttackerBehindSubstitute: @ 0x08172C80 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _08172CA8 + ldr r1, _08172CAC + ldr r2, [r1] + ldr r1, _08172CB0 + ldrb r1, [r1] + ldr r2, [r2] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1f + strh r1, [r3, #0xe] + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_08172CA8: .4byte 0x020380BE +_08172CAC: .4byte 0x02024174 +_08172CB0: .4byte 0x020380D6 + thumb_func_end AnimTask_IsAttackerBehindSubstitute + + thumb_func_start AnimTask_TargetToEffectBattler +AnimTask_TargetToEffectBattler: @ 0x08172CB4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08172CCC + ldr r1, _08172CD0 + ldrb r1, [r1] + strb r1, [r2] + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_08172CCC: .4byte 0x020380D7 +_08172CD0: .4byte 0x02023EB2 + thumb_func_end AnimTask_TargetToEffectBattler + + thumb_func_start sub_08172CD4 +sub_08172CD4: @ 0x08172CD4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r0, #0 + mov r8, r0 + ldr r0, _08172D90 + ldr r0, [r0] + ldr r1, [r0, #4] + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0] + adds r0, r4, #0 + movs r1, #1 + bl GetMonData + adds r5, r0, #0 + adds r0, r4, #0 + movs r1, #0 + bl GetMonData + adds r4, r0, #0 + adds r0, r6, #0 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08172DAC + lsrs r0, r5, #0x10 + ldr r7, _08172D94 + ands r5, r7 + eors r0, r5 + lsrs r1, r4, #0x10 + eors r0, r1 + ands r4, r7 + eors r0, r4 + cmp r0, #7 + bhi _08172D32 + movs r0, #1 + mov r8, r0 +_08172D32: + mov r0, r8 + cmp r0, #0 + beq _08172DAC + ldr r0, _08172D98 + bl GetSpriteTileStartByTag + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r7 + bne _08172D52 + ldr r0, _08172D9C + bl LoadCompressedSpriteSheetUsingHeap + ldr r0, _08172DA0 + bl LoadCompressedSpritePaletteUsingHeap +_08172D52: + ldr r5, _08172DA4 + adds r0, r5, #0 + movs r1, #0xa + bl CreateTask + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + movs r1, #0xa + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _08172DA8 + lsls r2, r4, #2 + adds r2, r2, r4 + lsls r2, r2, #3 + adds r2, r2, r3 + movs r4, #0 + strh r6, [r2, #8] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r3 + strh r6, [r1, #8] + strh r4, [r2, #0xa] + movs r0, #1 + strh r0, [r1, #0xa] + b _08172DC2 + .align 2, 0 +_08172D90: .4byte 0x02024174 +_08172D94: .4byte 0x0000FFFF +_08172D98: .4byte 0x000027F9 +_08172D9C: .4byte 0x084FD998 +_08172DA0: .4byte 0x084FE2A0 +_08172DA4: .4byte 0x08172DD1 +_08172DA8: .4byte 0x03005B60 +_08172DAC: + ldr r0, _08172DCC + ldr r0, [r0] + ldr r1, [r0, #4] + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #1] + movs r2, #1 + orrs r1, r2 + strb r1, [r0, #1] +_08172DC2: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08172DCC: .4byte 0x02024174 + thumb_func_end sub_08172CD4 + + thumb_func_start sub_08172DD0 +sub_08172DD0: @ 0x08172DD0 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r1, _08172DF8 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrh r1, [r4, #0x22] + movs r2, #0x22 + ldrsh r0, [r4, r2] + cmp r0, #0x3b + bgt _08172DFC + adds r0, r1, #1 + strh r0, [r4, #0x22] + b _08172F74 + .align 2, 0 +_08172DF8: .4byte 0x03005B60 +_08172DFC: + ldr r0, _08172E50 + ldr r0, [r0] + ldr r0, [r0, #8] + ldrb r0, [r0, #0xa] + cmp r0, #0 + beq _08172E0A + b _08172F74 +_08172E0A: + ldrh r0, [r4, #0x1c] + adds r1, r0, #1 + strh r1, [r4, #0x1c] + lsls r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r0 + cmp r1, #0 + beq _08172E1E + b _08172F74 +_08172E1E: + ldrb r0, [r4, #8] + mov r8, r0 + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + mov r0, r8 + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + movs r1, #0x1e + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08172E58 + ldr r0, _08172E54 + adds r1, r5, #0 + movs r3, #5 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + b _08172EBA + .align 2, 0 +_08172E50: .4byte 0x02024174 +_08172E54: .4byte 0x085AD190 +_08172E58: + cmp r0, #0 + blt _08172E8C + cmp r0, #3 + bgt _08172E8C + ldr r0, _08172E84 + adds r1, r5, #0 + movs r3, #5 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _08172E88 + lsls r2, r5, #4 + adds r2, r2, r5 + lsls r2, r2, #2 + adds r2, r2, r0 + ldrh r3, [r2, #4] + lsls r1, r3, #0x16 + lsrs r1, r1, #0x16 + adds r1, #4 + b _08172EAC + .align 2, 0 +_08172E84: .4byte 0x085AD1A8 +_08172E88: .4byte 0x020205AC +_08172E8C: + ldr r0, _08172EE4 + adds r1, r5, #0 + movs r3, #5 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _08172EE8 + lsls r2, r5, #4 + adds r2, r2, r5 + lsls r2, r2, #2 + adds r2, r2, r0 + ldrh r3, [r2, #4] + lsls r1, r3, #0x16 + lsrs r1, r1, #0x16 + adds r1, #5 +_08172EAC: + ldr r4, _08172EEC + adds r0, r4, #0 + ands r1, r0 + ldr r0, _08172EF0 + ands r0, r3 + orrs r0, r1 + strh r0, [r2, #4] +_08172EBA: + ldr r2, _08172EF4 + lsls r1, r7, #2 + adds r0, r1, r7 + lsls r0, r0, #3 + adds r6, r0, r2 + movs r2, #0xa + ldrsh r0, [r6, r2] + mov sb, r1 + cmp r0, #0 + bne _08172EFC + ldr r1, _08172EE8 + lsls r2, r5, #4 + adds r0, r2, r5 + lsls r0, r0, #2 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _08172EF8 + str r1, [r0] + adds r4, r2, #0 + b _08172F44 + .align 2, 0 +_08172EE4: .4byte 0x085AD1A8 +_08172EE8: .4byte 0x020205AC +_08172EEC: .4byte 0x000003FF +_08172EF0: .4byte 0xFFFFFC00 +_08172EF4: .4byte 0x03005B60 +_08172EF8: .4byte 0x08172FE1 +_08172EFC: + ldr r3, _08172F80 + lsls r4, r5, #4 + adds r1, r4, r5 + lsls r1, r1, #2 + adds r0, r3, #0 + adds r0, #0x1c + adds r0, r1, r0 + ldr r2, _08172F84 + str r2, [r0] + adds r1, r1, r3 + ldr r0, _08172F88 + strh r0, [r1, #0x24] + movs r0, #0x20 + strh r0, [r1, #0x26] + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + movs r1, #0x1e + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _08172F44 + mov r0, r8 + bl GetBattlerSide + lsls r0, r0, #0x18 + movs r1, #0x3f + cmp r0, #0 + bne _08172F3A + movs r1, #0xc0 +_08172F3A: + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r0, #0x66 + bl PlaySE12WithPanning +_08172F44: + ldr r1, _08172F80 + adds r0, r4, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + strh r7, [r0, #0x2e] + ldr r1, _08172F8C + mov r2, sb + adds r0, r2, r7 + lsls r0, r0, #3 + adds r1, r0, r1 + ldrh r0, [r1, #0x1e] + adds r0, #1 + strh r0, [r1, #0x1e] + cmp r5, #0x40 + beq _08172F68 + ldrh r0, [r1, #0x20] + adds r0, #1 + strh r0, [r1, #0x20] +_08172F68: + movs r4, #0x1e + ldrsh r0, [r1, r4] + cmp r0, #5 + bne _08172F74 + ldr r0, _08172F90 + str r0, [r1] +_08172F74: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08172F80: .4byte 0x020205AC +_08172F84: .4byte 0x08173035 +_08172F88: .4byte 0x0000FFE0 +_08172F8C: .4byte 0x03005B60 +_08172F90: .4byte 0x08172F95 + thumb_func_end sub_08172DD0 + + thumb_func_start sub_08172F94 +sub_08172F94: @ 0x08172F94 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r3, r0, #0 + ldr r1, _08172FD8 + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #3 + adds r1, r0, r1 + movs r2, #0x20 + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _08172FD4 + movs r2, #0xa + ldrsh r0, [r1, r2] + cmp r0, #1 + bne _08172FCE + ldrb r1, [r1, #8] + ldr r0, _08172FDC + ldr r0, [r0] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #1] + movs r2, #1 + orrs r1, r2 + strb r1, [r0, #1] +_08172FCE: + adds r0, r3, #0 + bl DestroyTask +_08172FD4: + pop {r0} + bx r0 + .align 2, 0 +_08172FD8: .4byte 0x03005B60 +_08172FDC: .4byte 0x02024174 + thumb_func_end sub_08172F94 + + thumb_func_start sub_08172FE0 +sub_08172FE0: @ 0x08172FE0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x30 + ldrsh r0, [r4, r1] + movs r1, #0x18 + bl Sin + strh r0, [r4, #0x24] + movs r1, #0x30 + ldrsh r0, [r4, r1] + movs r1, #0x18 + bl Cos + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x30] + adds r0, #0xc + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xff + ble _0817302A + ldr r2, _08173030 + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrh r1, [r0, #0x20] + subs r1, #1 + strh r1, [r0, #0x20] + adds r0, r4, #0 + bl FreeSpriteOamMatrix + adds r0, r4, #0 + bl DestroySprite +_0817302A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08173030: .4byte 0x03005B60 + thumb_func_end sub_08172FE0 + + thumb_func_start sub_08173034 +sub_08173034: @ 0x08173034 + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x30] + movs r2, #0x30 + ldrsh r0, [r4, r2] + cmp r0, #3 + bgt _08173048 + adds r0, r1, #1 + strh r0, [r4, #0x30] + b _0817308A +_08173048: + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldrh r1, [r4, #0x24] + adds r1, #5 + strh r1, [r4, #0x24] + ldrh r0, [r4, #0x26] + subs r0, #5 + strh r0, [r4, #0x26] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #0x20 + ble _0817308A + ldr r2, _08173090 + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrh r1, [r0, #0x20] + subs r1, #1 + strh r1, [r0, #0x20] + adds r0, r4, #0 + bl FreeSpriteOamMatrix + adds r0, r4, #0 + bl DestroySprite +_0817308A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08173090: .4byte 0x03005B60 + thumb_func_end sub_08173034 + + thumb_func_start AnimTask_LoadPokeblockGfx +AnimTask_LoadPokeblockGfx: @ 0x08173094 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081730BC + bl LoadCompressedSpriteSheetUsingHeap + ldr r0, _081730C0 + bl LoadCompressedSpritePaletteUsingHeap + ldr r0, _081730C4 + bl IndexOfSpritePaletteTag + adds r0, r4, #0 + bl DestroyAnimVisualTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081730BC: .4byte 0x084FDAB8 +_081730C0: .4byte 0x084FE3C0 +_081730C4: .4byte 0x0000281D + thumb_func_end AnimTask_LoadPokeblockGfx + + thumb_func_start AnimTask_FreePokeblockGfx +AnimTask_FreePokeblockGfx: @ 0x081730C8 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r5, _081730EC + adds r0, r5, #0 + bl FreeSpriteTilesByTag + adds r0, r5, #0 + bl FreeSpritePaletteByTag + adds r0, r4, #0 + bl DestroyAnimVisualTask + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081730EC: .4byte 0x0000281D + thumb_func_end AnimTask_FreePokeblockGfx + + thumb_func_start sub_081730F0 +sub_081730F0: @ 0x081730F0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0 + bl InitSpritePosToAnimAttacker + movs r0, #0x1e + strh r0, [r4, #0x2e] + movs r0, #1 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + ldr r5, _08173164 + lsrs r0, r0, #0x18 + ldrh r1, [r5, #4] + adds r0, r0, r1 + strh r0, [r4, #0x32] + movs r0, #1 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r5, [r5, #6] + adds r0, r0, r5 + strh r0, [r4, #0x36] + ldr r0, _08173168 + strh r0, [r4, #0x38] + adds r0, r4, #0 + bl InitAnimArcTranslation + ldr r2, _0817316C + ldr r1, _08173170 + ldr r0, _08173174 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, _08173178 + str r1, [r0] + ldr r0, _0817317C + str r0, [r4, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08173164: .4byte 0x020380BE +_08173168: .4byte 0x0000FFE0 +_0817316C: .4byte 0x020205AC +_08173170: .4byte 0x02023E88 +_08173174: .4byte 0x020380D6 +_08173178: .4byte 0x08039AC9 +_0817317C: .4byte 0x08173181 + thumb_func_end sub_081730F0 + + thumb_func_start sub_08173180 +sub_08173180: @ 0x08173180 + push {lr} + adds r3, r0, #0 + ldr r2, _081731A8 + ldr r1, _081731AC + ldr r0, _081731B0 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x2b + ldrb r0, [r0] + cmp r0, #1 + bne _081731A4 + ldr r0, _081731B4 + str r0, [r3, #0x1c] +_081731A4: + pop {r0} + bx r0 + .align 2, 0 +_081731A8: .4byte 0x020205AC +_081731AC: .4byte 0x02023E88 +_081731B0: .4byte 0x020380D6 +_081731B4: .4byte 0x081731B9 + thumb_func_end sub_08173180 + + thumb_func_start sub_081731B8 +sub_081731B8: @ 0x081731B8 + push {r4, lr} + adds r4, r0, #0 + bl TranslateAnimHorizontalArc + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081731DA + movs r0, #0 + strh r0, [r4, #0x2e] + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _081731E0 + str r0, [r4, #0x1c] +_081731DA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081731E0: .4byte 0x081731E5 + thumb_func_end sub_081731B8 + + thumb_func_start sub_081731E4 +sub_081731E4: @ 0x081731E4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08173234 + ldr r3, _08173238 + ldr r2, _0817323C + ldrb r0, [r2] + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3f + ldrb r0, [r0] + lsls r0, r0, #0x1b + cmp r0, #0 + bge _0817322C + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + cmp r0, #0 + ble _0817322C + ldrb r0, [r2] + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0 + bl StartSpriteAnim + adds r0, r4, #0 + bl DestroyAnimSprite +_0817322C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08173234: .4byte 0x020205AC +_08173238: .4byte 0x02023E88 +_0817323C: .4byte 0x020380D6 + thumb_func_end sub_081731E4 + + thumb_func_start sub_08173240 +sub_08173240: @ 0x08173240 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _08173258 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _0817325C + cmp r0, #1 + beq _08173270 + b _08173284 + .align 2, 0 +_08173258: .4byte 0x020380BE +_0817325C: + movs r0, #0 + bl GetBattlerAtPosition + ldr r1, _0817326C + strb r0, [r1] + movs r0, #1 + b _0817327C + .align 2, 0 +_0817326C: .4byte 0x020380D6 +_08173270: + movs r0, #1 + bl GetBattlerAtPosition + ldr r1, _08173290 + strb r0, [r1] + movs r0, #0 +_0817327C: + bl GetBattlerAtPosition + ldr r1, _08173294 + strb r0, [r1] +_08173284: + adds r0, r4, #0 + bl DestroyAnimVisualTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08173290: .4byte 0x020380D6 +_08173294: .4byte 0x020380D7 + thumb_func_end sub_08173240 + + thumb_func_start AnimTask_GetTrappedMoveAnimId +AnimTask_GetTrappedMoveAnimId: @ 0x08173298 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _081732B0 + ldr r0, [r0] + ldr r0, [r0, #8] + ldrh r1, [r0] + cmp r1, #0x53 + bne _081732B8 + ldr r1, _081732B4 + movs r0, #1 + b _081732F0 + .align 2, 0 +_081732B0: .4byte 0x02024174 +_081732B4: .4byte 0x020380BE +_081732B8: + cmp r1, #0xfa + bne _081732C8 + ldr r1, _081732C4 + movs r0, #2 + b _081732F0 + .align 2, 0 +_081732C4: .4byte 0x020380BE +_081732C8: + cmp r1, #0x80 + bne _081732D8 + ldr r1, _081732D4 + movs r0, #3 + b _081732F0 + .align 2, 0 +_081732D4: .4byte 0x020380BE +_081732D8: + movs r0, #0xa4 + lsls r0, r0, #1 + cmp r1, r0 + bne _081732EC + ldr r1, _081732E8 + movs r0, #4 + b _081732F0 + .align 2, 0 +_081732E8: .4byte 0x020380BE +_081732EC: + ldr r1, _081732FC + movs r0, #0 +_081732F0: + strh r0, [r1] + adds r0, r2, #0 + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_081732FC: .4byte 0x020380BE + thumb_func_end AnimTask_GetTrappedMoveAnimId + + thumb_func_start AnimTask_GetBattlersFromArg +AnimTask_GetBattlersFromArg: @ 0x08173300 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _08173324 + ldr r1, _08173328 + ldr r2, [r1] + ldr r1, [r2, #8] + ldrh r1, [r1] + strb r1, [r3] + ldr r3, _0817332C + ldr r1, [r2, #8] + ldrh r1, [r1] + lsrs r1, r1, #8 + strb r1, [r3] + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_08173324: .4byte 0x020380D6 +_08173328: .4byte 0x02024174 +_0817332C: .4byte 0x020380D7 + thumb_func_end AnimTask_GetBattlersFromArg + diff --git a/asm/battle_anim_status_effects.s b/asm/battle_anim_status_effects.s new file mode 100644 index 0000000..4a9ca7e --- /dev/null +++ b/asm/battle_anim_status_effects.s @@ -0,0 +1,980 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_080A9538 +sub_080A9538: @ 0x080A9538 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _080A95DC + adds r0, r4, r0 + ldrb r6, [r0] + ldr r0, _080A95E0 + movs r1, #0xa + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r0, _080A95E4 + bl LoadCompressedSpriteSheetUsingHeap + ldr r0, _080A95E8 + bl LoadCompressedSpritePaletteUsingHeap + ldr r1, _080A95EC + mov r2, r8 + lsls r0, r2, #2 + add r0, r8 + lsls r0, r0, #3 + adds r1, r0, r1 + strh r4, [r1, #8] + cmp r5, #0 + beq _080A95F8 + movs r0, #0x1f + strh r0, [r1, #0xa] + movs r5, #0 + lsls r0, r6, #4 + ldr r7, _080A95F0 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r6, r0, r7 +_080A958C: + movs r0, #0x20 + ldrsh r1, [r6, r0] + ldrh r2, [r6, #0x22] + adds r2, #0x20 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + ldr r0, _080A95F4 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r3, r0, r7 + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r1, r0, #4 + adds r0, r0, r1 + strh r0, [r3, #0x2e] + movs r0, #0xff + lsls r0, r0, #8 + strh r0, [r3, #0x30] + adds r2, r3, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + cmp r5, #4 + bls _080A95D0 + movs r0, #0x15 + strh r0, [r3, #0x3a] +_080A95D0: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #9 + bls _080A958C + b _080A9658 + .align 2, 0 +_080A95DC: .4byte 0x02023E88 +_080A95E0: .4byte 0x080A967D +_080A95E4: .4byte 0x084FD690 +_080A95E8: .4byte 0x084FDF98 +_080A95EC: .4byte 0x03005B60 +_080A95F0: .4byte 0x020205AC +_080A95F4: .4byte 0x085176BC +_080A95F8: + movs r0, #0xf8 + lsls r0, r0, #7 + strh r0, [r1, #0xa] + movs r5, #0 + lsls r0, r6, #4 + ldr r7, _080A9674 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r6, r0, r7 +_080A960A: + movs r2, #0x20 + ldrsh r1, [r6, r2] + ldrh r2, [r6, #0x22] + subs r2, #0x20 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + ldr r0, _080A9678 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r3, r0, r7 + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r1, r0, #4 + adds r0, r0, r1 + strh r0, [r3, #0x2e] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r3, #0x30] + adds r2, r3, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + cmp r5, #4 + bls _080A964E + movs r0, #0x15 + strh r0, [r3, #0x3a] +_080A964E: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #9 + bls _080A960A +_080A9658: + ldr r0, _080A9674 + lsls r1, r4, #4 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r1, r1, r0 + movs r0, #1 + strh r0, [r1, #0x3c] + mov r0, r8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080A9674: .4byte 0x020205AC +_080A9678: .4byte 0x085176BC + thumb_func_end sub_080A9538 + + thumb_func_start sub_080A967C +sub_080A967C: @ 0x080A967C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _080A96D4 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrh r1, [r4, #0xc] + movs r2, #0xc + ldrsh r0, [r4, r2] + cmp r0, #2 + bne _080A9702 + movs r0, #0 + strh r0, [r4, #0xc] + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #0x14 + movs r2, #0x80 + lsls r2, r2, #0x11 + adds r0, r0, r2 + lsrs r0, r0, #0x10 + ldrb r2, [r4, #0x10] + ldrh r3, [r4, #0xa] + movs r1, #0x10 + bl BlendPalette + ldrh r2, [r4, #0x12] + movs r1, #0x12 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080A96D8 + ldrh r0, [r4, #0x10] + adds r0, #1 + strh r0, [r4, #0x10] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #8 + ble _080A9706 + movs r0, #1 + eors r0, r2 + strh r0, [r4, #0x12] + b _080A9706 + .align 2, 0 +_080A96D4: .4byte 0x03005B60 +_080A96D8: + ldrh r1, [r4, #0x10] + subs r0, r1, #1 + strh r0, [r4, #0x10] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _080A9706 + strh r1, [r4, #0x10] + movs r0, #1 + eors r0, r2 + strh r0, [r4, #0x12] + ldrh r0, [r4, #0xe] + adds r0, #1 + strh r0, [r4, #0xe] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + bne _080A9706 + adds r0, r5, #0 + bl DestroyTask + b _080A9706 +_080A9702: + adds r0, r1, #1 + strh r0, [r4, #0xc] +_080A9706: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_080A967C + + thumb_func_start sub_080A970C +sub_080A970C: @ 0x080A970C + push {lr} + adds r2, r0, #0 + ldrh r1, [r2, #0x3a] + movs r3, #0x3a + ldrsh r0, [r2, r3] + cmp r0, #0 + bne _080A9738 + adds r3, r2, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r3] + ldr r1, _080A9734 + str r1, [r2, #0x1c] + adds r0, r2, #0 + bl _call_via_r1 + b _080A973C + .align 2, 0 +_080A9734: .4byte 0x080A9741 +_080A9738: + subs r0, r1, #1 + strh r0, [r2, #0x3a] +_080A973C: + pop {r0} + bx r0 + thumb_func_end sub_080A970C + + thumb_func_start sub_080A9740 +sub_080A9740: @ 0x080A9740 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r1, #0x20 + bl Cos + strh r0, [r4, #0x24] + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r1, #8 + bl Sin + strh r0, [r4, #0x26] + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0x7f + bgt _080A976C + adds r1, r4, #0 + adds r1, #0x43 + movs r0, #0x1d + b _080A9772 +_080A976C: + adds r1, r4, #0 + adds r1, #0x43 + movs r0, #0x1f +_080A9772: + strb r0, [r1] + ldrh r0, [r4, #0x2e] + adds r0, #8 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x30] + ldrh r1, [r4, #0x38] + adds r0, r0, r1 + strh r0, [r4, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x26] + adds r0, r0, r1 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x34 + bne _080A97B4 + movs r1, #0x3c + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _080A97AE + adds r0, r4, #0 + bl DestroySpriteAndFreeResources + b _080A97B4 +_080A97AE: + adds r0, r4, #0 + bl DestroySprite +_080A97B4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080A9740 + + thumb_func_start sub_080A97BC +sub_080A97BC: @ 0x080A97BC + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r4, _080A986C + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #8 + ldr r1, _080A9870 + adds r0, r0, r1 + lsrs r5, r0, #0x10 + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #8 + ldr r1, _080A9874 + adds r0, r0, r1 + lsrs r4, r0, #0x10 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A97FA + lsls r0, r5, #0x10 + ldr r1, _080A9878 + adds r0, r0, r1 + lsrs r5, r0, #0x10 +_080A97FA: + movs r1, #0xfd + lsls r1, r1, #6 + movs r0, #0x50 + bl SetGpuReg + movs r1, #0x80 + lsls r1, r1, #5 + movs r0, #0x52 + bl SetGpuReg + ldr r0, _080A987C + lsls r1, r5, #0x10 + asrs r1, r1, #0x10 + lsls r2, r4, #0x10 + asrs r2, r2, #0x10 + movs r3, #4 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080A9880 + bl GetSpriteTileStartByTag + lsls r0, r0, #0x10 + ldr r1, _080A9884 + cmp r0, r1 + bne _080A9844 + ldr r1, _080A9888 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_080A9844: + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + ldr r1, _080A9888 + adds r0, r0, r1 + ldr r1, _080A988C + bl SetSubspriteTables + ldr r1, _080A9890 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r4, [r0, #0x26] + ldr r1, _080A9894 + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080A986C: .4byte 0x020380D7 +_080A9870: .4byte 0xFFE00000 +_080A9874: .4byte 0xFFDC0000 +_080A9878: .4byte 0xFFFA0000 +_080A987C: .4byte 0x085176A4 +_080A9880: .4byte 0x0000271A +_080A9884: .4byte 0xFFFF0000 +_080A9888: .4byte 0x020205AC +_080A988C: .4byte 0x0851769C +_080A9890: .4byte 0x03005B60 +_080A9894: .4byte 0x080A9899 + thumb_func_end sub_080A97BC + + thumb_func_start sub_080A9898 +sub_080A9898: @ 0x080A9898 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080A98C4 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldrh r0, [r1, #0xa] + adds r0, #1 + adds r2, r0, #0 + strh r0, [r1, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xa + bne _080A98CC + ldr r0, _080A98C8 + str r0, [r1] + movs r0, #0 + strh r0, [r1, #0xa] + b _080A98E2 + .align 2, 0 +_080A98C4: .4byte 0x03005B60 +_080A98C8: .4byte 0x080A98E9 +_080A98CC: + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x10 + subs r1, r1, r0 + lsls r1, r1, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg +_080A98E2: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080A9898 + + thumb_func_start sub_080A98E8 +sub_080A98E8: @ 0x080A98E8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _080A9980 + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _080A9984 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r5, r0, r1 + ldrh r0, [r5, #0xa] + adds r1, r0, #1 + strh r1, [r5, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xd + ble _080A9978 + ldrh r0, [r5, #0xc] + adds r0, #1 + movs r6, #0 + strh r0, [r5, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + bne _080A9978 + ldr r3, _080A9988 + lsls r2, r2, #4 + mov ip, r2 + ldr r1, _080A998C + add r1, ip + lsls r1, r1, #1 + adds r1, r1, r3 + ldrh r4, [r1] + movs r2, #0x87 + lsls r2, r2, #1 + add r2, ip + lsls r2, r2, #1 + adds r2, r2, r3 + ldrh r0, [r2] + strh r0, [r1] + ldr r0, _080A9990 + add r0, ip + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r1, [r0] + strh r1, [r2] + strh r4, [r0] + strh r6, [r5, #0xc] + ldrh r0, [r5, #0xe] + adds r0, #1 + strh r0, [r5, #0xe] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + bne _080A9978 + strh r6, [r5, #0xe] + strh r6, [r5, #0xa] + ldrh r0, [r5, #0x10] + adds r0, #1 + strh r0, [r5, #0x10] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + bne _080A9978 + movs r0, #9 + strh r0, [r5, #0xa] + ldr r0, _080A9994 + str r0, [r5] +_080A9978: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080A9980: .4byte 0x0000271A +_080A9984: .4byte 0x03005B60 +_080A9988: .4byte 0x020377B4 +_080A998C: .4byte 0x0000010D +_080A9990: .4byte 0x0000010F +_080A9994: .4byte 0x080A9999 + thumb_func_end sub_080A98E8 + + thumb_func_start sub_080A9998 +sub_080A9998: @ 0x080A9998 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080A99C8 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r2, r1, r2 + ldrh r0, [r2, #0xa] + subs r0, #1 + adds r3, r0, #0 + strh r0, [r2, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _080A99D0 + ldr r0, _080A99CC + str r0, [r2] + movs r0, #0 + strh r0, [r2, #0xa] + b _080A99E6 + .align 2, 0 +_080A99C8: .4byte 0x03005B60 +_080A99CC: .4byte 0x080A99ED +_080A99D0: + lsls r0, r3, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x10 + subs r1, r1, r0 + lsls r1, r1, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg +_080A99E6: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080A9998 + + thumb_func_start sub_080A99EC +sub_080A99EC: @ 0x080A99EC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r4, r0, #0 + ldr r1, _080A9A2C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r1, r0, r1 + ldrh r0, [r1, #0xa] + adds r0, #1 + strh r0, [r1, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x25 + bne _080A9A34 + ldrh r0, [r1, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _080A9A30 + adds r4, r4, r0 + adds r0, r4, #0 + bl FreeSpriteOamMatrix + adds r0, r4, #0 + bl DestroySprite + b _080A9A4E + .align 2, 0 +_080A9A2C: .4byte 0x03005B60 +_080A9A30: .4byte 0x020205AC +_080A9A34: + cmp r0, #0x27 + bne _080A9A4E + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + adds r0, r4, #0 + bl DestroyAnimVisualTask +_080A9A4E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_080A99EC + + thumb_func_start AnimTask_StatsChange +AnimTask_StatsChange: @ 0x080A9A54 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r3, #0 + ldr r0, _080A9A78 + ldr r0, [r0] + ldr r0, [r0, #8] + ldrh r0, [r0] + subs r0, #0xf + cmp r0, #0x2b + bls _080A9A6C + b _080A9BF0 +_080A9A6C: + lsls r0, r0, #2 + ldr r1, _080A9A7C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080A9A78: .4byte 0x02024174 +_080A9A7C: .4byte 0x080A9A80 +_080A9A80: @ jump table + .4byte _080A9B30 @ case 0 + .4byte _080A9B36 @ case 1 + .4byte _080A9B3C @ case 2 + .4byte _080A9B42 @ case 3 + .4byte _080A9B48 @ case 4 + .4byte _080A9B4E @ case 5 + .4byte _080A9B54 @ case 6 + .4byte _080A9B5A @ case 7 + .4byte _080A9B60 @ case 8 + .4byte _080A9B66 @ case 9 + .4byte _080A9B6C @ case 10 + .4byte _080A9B72 @ case 11 + .4byte _080A9B78 @ case 12 + .4byte _080A9B7E @ case 13 + .4byte _080A9BF0 @ case 14 + .4byte _080A9BF0 @ case 15 + .4byte _080A9BF0 @ case 16 + .4byte _080A9BF0 @ case 17 + .4byte _080A9BF0 @ case 18 + .4byte _080A9BF0 @ case 19 + .4byte _080A9BF0 @ case 20 + .4byte _080A9BF0 @ case 21 + .4byte _080A9BF0 @ case 22 + .4byte _080A9BF0 @ case 23 + .4byte _080A9B84 @ case 24 + .4byte _080A9B88 @ case 25 + .4byte _080A9B8C @ case 26 + .4byte _080A9B90 @ case 27 + .4byte _080A9B94 @ case 28 + .4byte _080A9B98 @ case 29 + .4byte _080A9B9C @ case 30 + .4byte _080A9BA0 @ case 31 + .4byte _080A9BA8 @ case 32 + .4byte _080A9BB0 @ case 33 + .4byte _080A9BB8 @ case 34 + .4byte _080A9BC0 @ case 35 + .4byte _080A9BC8 @ case 36 + .4byte _080A9BD0 @ case 37 + .4byte _080A9BF0 @ case 38 + .4byte _080A9BF0 @ case 39 + .4byte _080A9BD8 @ case 40 + .4byte _080A9BDC @ case 41 + .4byte _080A9BE0 @ case 42 + .4byte _080A9BE8 @ case 43 +_080A9B30: + movs r5, #0 + movs r2, #0 + b _080A9BF8 +_080A9B36: + movs r5, #0 + movs r2, #1 + b _080A9BF8 +_080A9B3C: + movs r5, #0 + movs r2, #3 + b _080A9BF8 +_080A9B42: + movs r5, #0 + movs r2, #5 + b _080A9BF8 +_080A9B48: + movs r5, #0 + movs r2, #6 + b _080A9BF8 +_080A9B4E: + movs r5, #0 + movs r2, #2 + b _080A9BF8 +_080A9B54: + movs r5, #0 + movs r2, #4 + b _080A9BF8 +_080A9B5A: + movs r5, #1 + movs r2, #0 + b _080A9BF8 +_080A9B60: + movs r5, #1 + movs r2, #1 + b _080A9BF8 +_080A9B66: + movs r5, #1 + movs r2, #3 + b _080A9BF8 +_080A9B6C: + movs r5, #1 + movs r2, #5 + b _080A9BF8 +_080A9B72: + movs r5, #1 + movs r2, #6 + b _080A9BF8 +_080A9B78: + movs r5, #1 + movs r2, #2 + b _080A9BF8 +_080A9B7E: + movs r5, #1 + movs r2, #4 + b _080A9BF8 +_080A9B84: + movs r5, #0 + b _080A9BA2 +_080A9B88: + movs r5, #0 + b _080A9BAA +_080A9B8C: + movs r5, #0 + b _080A9BB2 +_080A9B90: + movs r5, #0 + b _080A9BBA +_080A9B94: + movs r5, #0 + b _080A9BC2 +_080A9B98: + movs r5, #0 + b _080A9BCA +_080A9B9C: + movs r5, #0 + b _080A9BD2 +_080A9BA0: + movs r5, #1 +_080A9BA2: + movs r2, #0 + movs r3, #1 + b _080A9BF8 +_080A9BA8: + movs r5, #1 +_080A9BAA: + movs r2, #1 + movs r3, #1 + b _080A9BF8 +_080A9BB0: + movs r5, #1 +_080A9BB2: + movs r2, #3 + movs r3, #1 + b _080A9BF8 +_080A9BB8: + movs r5, #1 +_080A9BBA: + movs r2, #5 + movs r3, #1 + b _080A9BF8 +_080A9BC0: + movs r5, #1 +_080A9BC2: + movs r2, #6 + movs r3, #1 + b _080A9BF8 +_080A9BC8: + movs r5, #1 +_080A9BCA: + movs r2, #2 + movs r3, #1 + b _080A9BF8 +_080A9BD0: + movs r5, #1 +_080A9BD2: + movs r2, #4 + movs r3, #1 + b _080A9BF8 +_080A9BD8: + movs r5, #0 + b _080A9BE2 +_080A9BDC: + movs r5, #0 + b _080A9BEA +_080A9BE0: + movs r5, #1 +_080A9BE2: + movs r2, #0xff + movs r3, #0 + b _080A9BF8 +_080A9BE8: + movs r5, #1 +_080A9BEA: + movs r2, #0xff + movs r3, #1 + b _080A9BF8 +_080A9BF0: + adds r0, r4, #0 + bl DestroyAnimVisualTask + b _080A9C1A +_080A9BF8: + ldr r0, _080A9C20 + movs r1, #0 + strh r5, [r0] + strh r2, [r0, #2] + strh r1, [r0, #4] + strh r1, [r0, #6] + strh r3, [r0, #8] + ldr r1, _080A9C24 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080A9C28 + str r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 +_080A9C1A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A9C20: .4byte 0x020380BE +_080A9C24: .4byte 0x03005B60 +_080A9C28: .4byte 0x08117705 + thumb_func_end AnimTask_StatsChange + + thumb_func_start LaunchStatusAnimation +LaunchStatusAnimation: @ 0x080A9C2C + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, _080A9C68 + strb r4, [r0] + ldr r0, _080A9C6C + strb r4, [r0] + ldr r0, _080A9C70 + movs r2, #0 + bl LaunchBattleAnimation + ldr r0, _080A9C74 + movs r1, #0xa + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080A9C78 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A9C68: .4byte 0x020380D6 +_080A9C6C: .4byte 0x020380D7 +_080A9C70: .4byte 0x08277888 +_080A9C74: .4byte 0x080A9C7D +_080A9C78: .4byte 0x03005B60 + thumb_func_end LaunchStatusAnimation + + thumb_func_start Task_DoStatusAnimation +Task_DoStatusAnimation: @ 0x080A9C7C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080A9CC4 + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _080A9CC8 + thumb_func_end Task_DoStatusAnimation + + thumb_func_start sub_080A9C8C +sub_080A9C8C: @ 0x080A9C8C + ldrb r0, [r0] + cmp r0, #0 + bne _080A9CBE + ldr r0, _080A9CCC + ldr r2, [r0] + ldr r1, _080A9CD0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #8 + ldrsh r0, [r0, r1] + ldr r2, [r2, #4] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r2, [r1] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + adds r0, r4, #0 + bl DestroyTask +_080A9CBE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A9CC4: .4byte 0x02038098 +_080A9CC8: .4byte 0x0203809D +_080A9CCC: .4byte 0x02024174 +_080A9CD0: .4byte 0x03005B60 + thumb_func_end sub_080A9C8C + diff --git a/asm/battle_anim_utility_funcs.s b/asm/battle_anim_utility_funcs.s new file mode 100644 index 0000000..1e47dc0 --- /dev/null +++ b/asm/battle_anim_utility_funcs.s @@ -0,0 +1,3277 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_08116E70 +sub_08116E70: @ 0x08116E70 + push {r4, r5, r6, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r4, _08116EB0 + movs r1, #0 + ldrsh r0, [r4, r1] + bl UnpackSelectedBattleAnimPalettes + adds r6, r0, #0 + ldrh r3, [r4] + lsls r3, r3, #0x10 + asrs r0, r3, #0x17 + movs r4, #1 + ands r0, r4 + asrs r1, r3, #0x18 + ands r1, r4 + asrs r2, r3, #0x19 + ands r2, r4 + asrs r3, r3, #0x1a + ands r3, r4 + bl sub_080A6F8C + orrs r6, r0 + adds r0, r5, #0 + adds r1, r6, #0 + bl StartBlendAnimSpriteColor + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08116EB0: .4byte 0x020380BE + thumb_func_end sub_08116E70 + + thumb_func_start sub_08116EB4 +sub_08116EB4: @ 0x08116EB4 + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + mov r1, sp + movs r0, #0xff + strb r0, [r1, #1] + movs r0, #1 + bl UnpackSelectedBattleAnimPalettes + adds r5, r0, #0 + ldr r0, _08116EE0 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #7 + bhi _08116F5E + lsls r0, r0, #2 + ldr r1, _08116EE4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08116EE0: .4byte 0x020380BE +_08116EE4: .4byte 0x08116EE8 +_08116EE8: @ jump table + .4byte _08116F0A @ case 0 + .4byte _08116F16 @ case 1 + .4byte _08116F08 @ case 2 + .4byte _08116F14 @ case 3 + .4byte _08116F24 @ case 4 + .4byte _08116F3C @ case 5 + .4byte _08116F44 @ case 6 + .4byte _08116F50 @ case 7 +_08116F08: + movs r5, #0 +_08116F0A: + mov r0, sp + ldr r1, _08116F10 + b _08116F1A + .align 2, 0 +_08116F10: .4byte 0x020380D6 +_08116F14: + movs r5, #0 +_08116F16: + mov r0, sp + ldr r1, _08116F20 +_08116F1A: + ldrb r1, [r1] + strb r1, [r0] + b _08116F5E + .align 2, 0 +_08116F20: .4byte 0x020380D7 +_08116F24: + mov r1, sp + ldr r0, _08116F34 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _08116F38 + ldrb r0, [r0] + strb r0, [r1, #1] + b _08116F5E + .align 2, 0 +_08116F34: .4byte 0x020380D6 +_08116F38: .4byte 0x020380D7 +_08116F3C: + mov r1, sp + movs r0, #0xff + strb r0, [r1] + b _08116F5E +_08116F44: + movs r5, #0 + mov r2, sp + ldr r0, _08116F4C + b _08116F56 + .align 2, 0 +_08116F4C: .4byte 0x020380D6 +_08116F50: + movs r5, #0 + mov r2, sp + ldr r0, _08116FA8 +_08116F56: + ldrb r0, [r0] + movs r1, #2 + eors r0, r1 + strb r0, [r2] +_08116F5E: + movs r4, #0 + mov r6, sp +_08116F62: + ldrb r0, [r6] + cmp r4, r0 + beq _08116F8C + ldrb r0, [r6, #1] + cmp r4, r0 + beq _08116F8C + adds r0, r4, #0 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08116F8C + adds r0, r4, #0 + bl sub_080A7074 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x80 + lsls r1, r1, #9 + lsls r1, r0 + orrs r5, r1 +_08116F8C: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _08116F62 + adds r0, r7, #0 + adds r1, r5, #0 + bl StartBlendAnimSpriteColor + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08116FA8: .4byte 0x020380D7 + thumb_func_end sub_08116EB4 + + thumb_func_start AnimTask_SetCamouflageBlend +AnimTask_SetCamouflageBlend: @ 0x08116FAC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _08116FD0 + movs r1, #0 + ldrsh r0, [r0, r1] + bl UnpackSelectedBattleAnimPalettes + adds r2, r0, #0 + ldr r0, _08116FD4 + ldrb r0, [r0] + cmp r0, #9 + bhi _08117082 + lsls r0, r0, #2 + ldr r1, _08116FD8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08116FD0: .4byte 0x020380BE +_08116FD4: .4byte 0x02022C94 +_08116FD8: .4byte 0x08116FDC +_08116FDC: @ jump table + .4byte _08117004 @ case 0 + .4byte _08117014 @ case 1 + .4byte _08117020 @ case 2 + .4byte _08117030 @ case 3 + .4byte _0811703C @ case 4 + .4byte _0811704C @ case 5 + .4byte _0811705C @ case 6 + .4byte _0811706C @ case 7 + .4byte _0811707C @ case 8 + .4byte _0811707C @ case 9 +_08117004: + ldr r1, _0811700C + ldr r0, _08117010 + b _08117080 + .align 2, 0 +_0811700C: .4byte 0x020380BE +_08117010: .4byte 0x00000B0C +_08117014: + ldr r1, _0811701C + movs r0, #0x9e + lsls r0, r0, #4 + b _08117080 + .align 2, 0 +_0811701C: .4byte 0x020380BE +_08117020: + ldr r1, _08117028 + ldr r0, _0811702C + b _08117080 + .align 2, 0 +_08117028: .4byte 0x020380BE +_0811702C: .4byte 0x00002F1E +_08117030: + ldr r1, _08117038 + movs r0, #0x90 + lsls r0, r0, #7 + b _08117080 + .align 2, 0 +_08117038: .4byte 0x020380BE +_0811703C: + ldr r1, _08117044 + ldr r0, _08117048 + b _08117080 + .align 2, 0 +_08117044: .4byte 0x020380BE +_08117048: .4byte 0x00007ECB +_0811704C: + ldr r1, _08117054 + ldr r0, _08117058 + b _08117080 + .align 2, 0 +_08117054: .4byte 0x020380BE +_08117058: .4byte 0x00007ECB +_0811705C: + ldr r1, _08117064 + ldr r0, _08117068 + b _08117080 + .align 2, 0 +_08117064: .4byte 0x020380BE +_08117068: .4byte 0x00002A16 +_0811706C: + ldr r1, _08117074 + ldr r0, _08117078 + b _08117080 + .align 2, 0 +_08117074: .4byte 0x020380BE +_08117078: .4byte 0x00000D2E +_0811707C: + ldr r1, _08117090 + ldr r0, _08117094 +_08117080: + strh r0, [r1, #8] +_08117082: + adds r0, r4, #0 + adds r1, r2, #0 + bl StartBlendAnimSpriteColor + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08117090: .4byte 0x020380BE +_08117094: .4byte 0x00007FFF + thumb_func_end AnimTask_SetCamouflageBlend + + thumb_func_start AnimTask_BlendParticle +AnimTask_BlendParticle: @ 0x08117098 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081170C0 + ldrh r0, [r0] + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #0x10 + movs r1, #1 + lsls r1, r0 + adds r0, r4, #0 + bl StartBlendAnimSpriteColor + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081170C0: .4byte 0x020380BE + thumb_func_end AnimTask_BlendParticle + + thumb_func_start StartBlendAnimSpriteColor +StartBlendAnimSpriteColor: @ 0x081170C4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _081170FC + lsls r2, r0, #2 + adds r2, r2, r0 + lsls r2, r2, #3 + adds r2, r2, r3 + strh r1, [r2, #8] + lsrs r1, r1, #0x10 + strh r1, [r2, #0xa] + ldr r3, _08117100 + ldrh r1, [r3, #2] + strh r1, [r2, #0xc] + ldrh r1, [r3, #4] + strh r1, [r2, #0xe] + ldrh r1, [r3, #6] + strh r1, [r2, #0x10] + ldrh r1, [r3, #8] + strh r1, [r2, #0x12] + ldrh r1, [r3, #4] + strh r1, [r2, #0x1c] + ldr r1, _08117104 + str r1, [r2] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_081170FC: .4byte 0x03005B60 +_08117100: .4byte 0x020380BE +_08117104: .4byte 0x08117109 + thumb_func_end StartBlendAnimSpriteColor + + thumb_func_start AnimTask_BlendSpriteColor_Step2 +AnimTask_BlendSpriteColor_Step2: @ 0x08117108 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r6, #0 + ldr r2, _08117188 + lsls r5, r7, #2 + adds r0, r5, r7 + lsls r0, 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 sb, r2 + cmp r1, r0 + bne _0811719E + strh r6, [r3, #0x1a] + movs r0, #8 + ldrsh r4, [r3, r0] + movs r1, #0xa + ldrsh r0, [r3, r1] + lsls r0, r0, #0x10 + orrs r4, r0 + mov r8, r5 + cmp r4, #0 + beq _0811716A + adds r5, r3, #0 +_08117148: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _0811715C + ldrb r2, [r5, #0x1c] + ldrh r3, [r5, #0x12] + adds r0, r6, #0 + movs r1, #0x10 + bl BlendPalette +_0811715C: + adds r0, r6, #0 + adds r0, #0x10 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + lsrs r4, r4, #1 + cmp r4, #0 + bne _08117148 +_0811716A: + mov r4, r8 + adds r0, r4, r7 + lsls r0, r0, #3 + mov r1, sb + 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 _0811718C + adds r0, #1 + strh r0, [r2, #0x1c] + b _081171A4 + .align 2, 0 +_08117188: .4byte 0x03005B60 +_0811718C: + cmp r3, r1 + ble _08117196 + subs r0, #1 + strh r0, [r2, #0x1c] + b _081171A4 +_08117196: + adds r0, r7, #0 + bl DestroyAnimVisualTask + b _081171A4 +_0811719E: + mov r0, r8 + adds r0, #1 + strh r0, [r3, #0x1a] +_081171A4: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end AnimTask_BlendSpriteColor_Step2 + + thumb_func_start sub_081171B0 +sub_081171B0: @ 0x081171B0 + push {r4, r5, lr} + sub sp, #4 + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r4, _081171E4 + ldrb r0, [r4] + ldrb r1, [r4, #2] + ldrb r2, [r4, #4] + ldrb r3, [r4, #6] + ldrb r4, [r4, #8] + str r4, [sp] + bl BeginHardwarePaletteFade + ldr r1, _081171E8 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081171EC + str r1, [r0] + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081171E4: .4byte 0x020380BE +_081171E8: .4byte 0x03005B60 +_081171EC: .4byte 0x081171F1 + thumb_func_end sub_081171B0 + + thumb_func_start sub_081171F0 +sub_081171F0: @ 0x081171F0 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _0811720C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08117208 + adds r0, r2, #0 + bl DestroyAnimVisualTask +_08117208: + pop {r0} + bx r0 + .align 2, 0 +_0811720C: .4byte 0x02037C74 + thumb_func_end sub_081171F0 + + thumb_func_start sub_08117210 +sub_08117210: @ 0x08117210 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _0811723C + adds r1, r1, r0 + ldr r2, _08117240 + ldrh r0, [r2] + movs r3, #0 + strh r0, [r1, #8] + strh r3, [r1, #0xa] + ldrh r0, [r2, #2] + strh r0, [r1, #0xc] + ldrh r0, [r2, #4] + strh r0, [r1, #0xe] + ldrh r0, [r2, #6] + strh r0, [r1, #0x10] + strh r3, [r1, #0x12] + ldr r0, _08117244 + str r0, [r1] + bx lr + .align 2, 0 +_0811723C: .4byte 0x03005B60 +_08117240: .4byte 0x020380BE +_08117244: .4byte 0x08117249 + thumb_func_end sub_08117210 + + thumb_func_start sub_08117248 +sub_08117248: @ 0x08117248 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r2, r5, #0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _08117274 + adds r4, r0, r1 + movs r1, #0x10 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0811730C + ldrh r1, [r4, #0xa] + movs r2, #0xa + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _08117278 + subs r0, r1, #1 + strh r0, [r4, #0xa] + b _0811731A + .align 2, 0 +_08117274: .4byte 0x03005B60 +_08117278: + ldrb r0, [r4, #8] + bl CloneBattlerSpriteWithBlend + strh r0, [r4, #0x14] + lsls r0, r0, #0x10 + cmp r0, #0 + blt _081172F6 + ldr r6, _08117304 + movs r1, #0x14 + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r3, r1, r6 + movs r2, #8 + ldrsh r0, [r4, r2] + movs r2, #2 + cmp r0, #0 + beq _081172A0 + movs r2, #1 +_081172A0: + lsls r2, r2, #2 + ldrb r1, [r3, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #5] + movs r0, #0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrh r1, [r4, #0xe] + strh r1, [r0, #0x2e] + movs r2, #0x14 + ldrsh r1, [r4, r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + strh r5, [r0, #0x30] + movs r0, #0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #5 + strh r1, [r0, #0x32] + movs r2, #0x14 + ldrsh r1, [r4, r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r6, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _08117308 + str r1, [r0] + ldrh r0, [r4, #0x12] + adds r0, #1 + strh r0, [r4, #0x12] +_081172F6: + ldrh r0, [r4, #0x10] + subs r0, #1 + strh r0, [r4, #0x10] + ldrh r0, [r4, #0xc] + strh r0, [r4, #0xa] + b _0811731A + .align 2, 0 +_08117304: .4byte 0x020205AC +_08117308: .4byte 0x08117321 +_0811730C: + movs r1, #0x12 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0811731A + adds r0, r2, #0 + bl DestroyAnimVisualTask +_0811731A: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_08117248 + + thumb_func_start sub_08117320 +sub_08117320: @ 0x08117320 + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x2e] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _08117334 + subs r0, r1, #1 + strh r0, [r4, #0x2e] + b _08117358 +_08117334: + ldr r3, _08117360 + movs r0, #0x32 + ldrsh r1, [r4, r0] + lsls r1, r1, #1 + movs r0, #0x30 + ldrsh r2, [r4, r0] + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r3, #8 + adds r1, r1, r3 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + adds r0, r4, #0 + bl obj_delete_but_dont_free_vram +_08117358: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08117360: .4byte 0x03005B60 + thumb_func_end sub_08117320 + + thumb_func_start sub_08117364 +sub_08117364: @ 0x08117364 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + movs r7, #0 + ldr r0, _0811748C + strh r7, [r0] + ldr r0, _08117490 + strh r7, [r0] + ldr r1, _08117494 + movs r0, #0x48 + bl SetGpuReg + ldr r1, _08117498 + movs r0, #0x4a + bl SetGpuReg + movs r1, #0x80 + lsls r1, r1, #8 + movs r0, #0 + bl SetGpuRegBits + ldr r1, _0811749C + movs r0, #0x50 + bl SetGpuReg + ldr r1, _081174A0 + movs r0, #0x52 + bl SetGpuReg + movs r0, #0xa + bl GetGpuReg + add r4, sp, #0x10 + strh r0, [r4] + ldrb r1, [r4] + movs r0, #4 + rsbs r0, r0, #0 + mov r8, r0 + ands r0, r1 + strb r0, [r4] + mov r2, sp + adds r2, #0x11 + ldrb r1, [r2] + movs r0, #0x3f + ands r0, r1 + strb r0, [r2] + ldrh r1, [r4] + movs r0, #0xa + bl SetGpuReg + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081173F2 + ldrb r1, [r4] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r4] + ldrh r1, [r4] + movs r0, #0xa + bl SetGpuReg +_081173F2: + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08117476 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08117476 + ldr r5, _081174A4 + ldrb r0, [r5] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + beq _08117422 + ldrb r0, [r5] + bl GetBattlerPosition + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08117476 +_08117422: + ldrb r0, [r5] + movs r6, #2 + eors r0, r6 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08117476 + ldr r3, _081174A8 + ldr r1, _081174AC + ldrb r0, [r5] + eors r0, r6 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r3 + ldrb r3, [r2, #5] + lsls r1, r3, #0x1c + lsrs r1, r1, #0x1e + subs r1, #1 + movs r0, #3 + ands r1, r0 + lsls r1, r1, #2 + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #5] + ldrb r1, [r4] + mov r0, r8 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4] + ldrh r1, [r4] + movs r0, #0xa + bl SetGpuReg + movs r7, #1 +_08117476: + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081174B4 + ldr r0, _081174B0 + ldr r0, [r0] + ldr r0, [r0, #0x18] + ldrh r5, [r0] + b _081174FC + .align 2, 0 +_0811748C: .4byte 0x02022AD8 +_08117490: .4byte 0x02022ADA +_08117494: .4byte 0x00003F3F +_08117498: .4byte 0x00003F3D +_0811749C: .4byte 0x00003F42 +_081174A0: .4byte 0x00000C08 +_081174A4: .4byte 0x020380D6 +_081174A8: .4byte 0x020205AC +_081174AC: .4byte 0x02023E88 +_081174B0: .4byte 0x02039BD4 +_081174B4: + ldr r4, _081174D4 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081174E0 + ldr r1, _081174D8 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081174DC + b _081174F0 + .align 2, 0 +_081174D4: .4byte 0x020380D6 +_081174D8: .4byte 0x02023D12 +_081174DC: .4byte 0x020243E8 +_081174E0: + ldr r1, _08117588 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0811758C +_081174F0: + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_081174FC: + movs r0, #0 + bl GetAnimBattlerSpriteId + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _08117590 + ldrb r0, [r0] + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_080A8290 + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + mov r0, sp + bl sub_080A63F8 + ldr r1, _08117594 + mov r0, sp + movs r2, #0 + bl sub_080A6628 + mov r0, sp + ldrb r0, [r0, #9] + ldr r1, _08117598 + mov r2, sp + ldrh r2, [r2, #0xa] + bl AnimLoadCompressedBgGfx + ldr r0, _0811759C + mov r1, sp + ldrb r1, [r1, #8] + lsls r1, r1, #4 + adds r1, #1 + movs r2, #2 + bl LoadPalette + ldr r2, _081175A0 + ldr r0, _081175A4 + lsls r1, r4, #4 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r0, [r1, #0x20] + rsbs r0, r0, #0 + adds r0, #0x20 + strh r0, [r2] + ldr r2, _081175A8 + ldrh r0, [r1, #0x22] + rsbs r0, r0, #0 + adds r0, #0x20 + strh r0, [r2] + ldr r1, _081175AC + mov r2, sb + lsls r0, r2, #2 + add r0, sb + lsls r0, r0, #3 + adds r0, r0, r1 + strh r5, [r0, #8] + strh r7, [r0, #0x14] + ldr r1, _081175B0 + str r1, [r0] + add sp, #0x14 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08117588: .4byte 0x02023D12 +_0811758C: .4byte 0x02024190 +_08117590: .4byte 0x020380D6 +_08117594: .4byte 0x08C20728 +_08117598: .4byte 0x08C2070C +_0811759C: .4byte 0x08572FFC +_081175A0: .4byte 0x02022ACC +_081175A4: .4byte 0x020205AC +_081175A8: .4byte 0x02022ACE +_081175AC: .4byte 0x03005B60 +_081175B0: .4byte 0x081175B5 + thumb_func_end sub_08117364 + + thumb_func_start sub_081175B4 +sub_081175B4: @ 0x081175B4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r0, #0 + ldr r1, _081176E4 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r5, r0, r1 + ldrh r0, [r5, #0x1c] + adds r0, #4 + movs r1, #0 + mov r8, r1 + strh r0, [r5, #0x1c] + ldr r7, _081176E8 + ldrh r2, [r7] + subs r1, r2, #4 + strh r1, [r7] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x40 + bne _081176D6 + mov r0, r8 + strh r0, [r5, #0x1c] + adds r0, r2, #0 + adds r0, #0x3c + strh r0, [r7] + ldrh r0, [r5, #0x1e] + adds r0, #1 + strh r0, [r5, #0x1e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + bne _081176D6 + movs r0, #0 + bl sub_080A4044 + ldr r0, _081176EC + mov r1, r8 + strh r1, [r0] + ldr r0, _081176F0 + strh r1, [r0] + ldr r4, _081176F4 + movs r0, #0x48 + adds r1, r4, #0 + bl SetGpuReg + movs r0, #0x4a + adds r1, r4, #0 + bl SetGpuReg + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08117646 + movs r0, #0xa + bl GetGpuReg + add r1, sp, #0x10 + strh r0, [r1] + ldrb r2, [r1] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldrh r1, [r1] + movs r0, #0xa + bl SetGpuReg +_08117646: + movs r0, #0 + bl GetGpuReg + adds r1, r0, #0 + movs r2, #0x80 + lsls r2, r2, #8 + adds r0, r2, #0 + eors r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0 + bl GetAnimBattlerSpriteId + ldr r4, _081176F8 + movs r0, #8 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + mov r0, sp + bl sub_080A63F8 + mov r0, sp + ldrb r0, [r0, #9] + bl sub_080A6530 + movs r1, #0x14 + ldrsh r0, [r5, r1] + cmp r0, #1 + bne _081176CC + ldr r2, _081176FC + ldr r0, _08117700 + ldrb r1, [r0] + movs r0, #2 + eors r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r4 + ldrb r3, [r2, #5] + lsls r1, r3, #0x1c + lsrs r1, r1, #0x1e + adds r1, #1 + movs r0, #3 + ands r1, r0 + lsls r1, r1, #2 + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #5] +_081176CC: + mov r2, r8 + strh r2, [r7] + adds r0, r6, #0 + bl DestroyAnimVisualTask +_081176D6: + add sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081176E4: .4byte 0x03005B60 +_081176E8: .4byte 0x02022ACE +_081176EC: .4byte 0x02022AD8 +_081176F0: .4byte 0x02022ADA +_081176F4: .4byte 0x00003F3F +_081176F8: .4byte 0x020205AC +_081176FC: .4byte 0x02023E88 +_08117700: .4byte 0x020380D6 + thumb_func_end sub_081175B4 + + thumb_func_start sub_08117704 +sub_08117704: @ 0x08117704 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r4, _08117744 + movs r0, #0x18 + bl AllocZeroed + str r0, [r4] + movs r2, #0 + ldr r3, _08117748 +_08117718: + ldr r1, [r4] + lsls r0, r2, #1 + adds r1, #4 + adds r1, r1, r0 + adds r0, r0, r3 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #7 + bls _08117718 + ldr r0, _0811774C + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _08117750 + str r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08117744: .4byte 0x02039DDC +_08117748: .4byte 0x020380BE +_0811774C: .4byte 0x03005B60 +_08117750: .4byte 0x08117755 + thumb_func_end sub_08117704 + + thumb_func_start sub_08117754 +sub_08117754: @ 0x08117754 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _0811776C + ldr r1, [r0] + movs r2, #8 + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _08117774 + ldr r0, _08117770 + b _08117776 + .align 2, 0 +_0811776C: .4byte 0x02039DDC +_08117770: .4byte 0x020380D6 +_08117774: + ldr r0, _081178A0 +_08117776: + ldrb r0, [r0] + strb r0, [r1] + ldr r4, _081178A4 + ldr r2, [r4] + ldrb r0, [r2] + movs r1, #2 + eors r0, r1 + strb r0, [r2, #1] + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081177A6 + ldr r1, [r4] + movs r2, #0xa + ldrsh r0, [r1, r2] + cmp r0, #0 + beq _081177AC + ldrb r0, [r1, #1] + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081177AC +_081177A6: + ldr r1, [r4] + movs r0, #0 + strh r0, [r1, #0xa] +_081177AC: + ldr r0, _081178A8 + movs r1, #0 + strh r1, [r0] + ldr r0, _081178AC + strh r1, [r0] + ldr r1, _081178B0 + movs r0, #0x48 + bl SetGpuReg + ldr r1, _081178B4 + movs r0, #0x4a + bl SetGpuReg + movs r1, #0x80 + lsls r1, r1, #8 + movs r0, #0 + bl SetGpuRegBits + ldr r1, _081178B8 + movs r0, #0x50 + bl SetGpuReg + movs r1, #0x80 + lsls r1, r1, #5 + movs r0, #0x52 + bl SetGpuReg + movs r0, #1 + movs r1, #4 + movs r2, #0 + bl SetAnimBgAttribute + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl SetAnimBgAttribute + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811780A + movs r0, #1 + movs r1, #3 + movs r2, #1 + bl SetAnimBgAttribute +_0811780A: + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08117886 + ldr r4, _081178A4 + ldr r1, [r4] + movs r2, #0xa + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _08117886 + ldrb r0, [r1] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + beq _0811783C + ldr r0, [r4] + ldrb r0, [r0] + bl GetBattlerPosition + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08117886 +_0811783C: + ldr r0, [r4] + ldrb r0, [r0, #1] + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #1 + bne _08117886 + ldr r3, _081178BC + ldr r1, _081178C0 + ldr r0, [r4] + ldrb r0, [r0, #1] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r3 + ldrb r3, [r2, #5] + lsls r1, r3, #0x1c + lsrs r1, r1, #0x1e + subs r1, #1 + movs r0, #3 + ands r1, r0 + lsls r1, r1, #2 + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #5] + movs r0, #1 + movs r1, #4 + movs r2, #1 + bl SetAnimBgAttribute + ldr r0, [r4] + strb r5, [r0, #2] +_08117886: + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081178C8 + ldr r0, _081178A4 + ldr r1, [r0] + ldr r0, _081178C4 + ldr r0, [r0] + ldr r0, [r0, #0x18] + ldrh r0, [r0] + b _08117914 + .align 2, 0 +_081178A0: .4byte 0x020380D7 +_081178A4: .4byte 0x02039DDC +_081178A8: .4byte 0x02022AD8 +_081178AC: .4byte 0x02022ADA +_081178B0: .4byte 0x00003F3F +_081178B4: .4byte 0x00003F3D +_081178B8: .4byte 0x00003F42 +_081178BC: .4byte 0x020205AC +_081178C0: .4byte 0x02023E88 +_081178C4: .4byte 0x02039BD4 +_081178C8: + ldr r4, _081178EC + ldr r0, [r4] + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081178F8 + ldr r1, _081178F0 + ldr r0, [r4] + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081178F4 + b _0811790A + .align 2, 0 +_081178EC: .4byte 0x02039DDC +_081178F0: .4byte 0x02023D12 +_081178F4: .4byte 0x020243E8 +_081178F8: + ldr r1, _0811792C + ldr r0, [r4] + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08117930 +_0811790A: + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + ldr r1, [r4] +_08117914: + strh r0, [r1, #0x14] + ldr r0, _08117934 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _08117938 + str r0, [r1] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0811792C: .4byte 0x02023D12 +_08117930: .4byte 0x02024190 +_08117934: .4byte 0x03005B60 +_08117938: .4byte 0x0811793D + thumb_func_end sub_08117754 + + thumb_func_start sub_0811793C +sub_0811793C: @ 0x0811793C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r0, #0 + mov r8, r0 + ldr r6, _0811799C + ldr r4, _081179A0 + ldr r2, [r4] + ldrb r0, [r2] + adds r1, r0, r6 + ldrb r1, [r1] + ldrh r2, [r2, #0x14] + bl sub_080A8290 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r2, [r4] + movs r1, #0xa + ldrsh r0, [r2, r1] + cmp r0, #0 + beq _0811797E + ldrb r0, [r2, #1] + adds r1, r0, r6 + ldrb r1, [r1] + ldrh r2, [r2, #0x14] + bl sub_080A8290 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 +_0811797E: + mov r0, sp + bl sub_080A63F8 + ldr r0, [r4] + movs r4, #4 + ldrsh r0, [r0, r4] + cmp r0, #0 + bne _081179A8 + ldr r1, _081179A4 + mov r0, sp + movs r2, #0 + bl sub_080A6628 + b _081179B2 + .align 2, 0 +_0811799C: .4byte 0x02023E88 +_081179A0: .4byte 0x02039DDC +_081179A4: .4byte 0x08C2D9D4 +_081179A8: + ldr r1, _081179D8 + mov r0, sp + movs r2, #0 + bl sub_080A6628 +_081179B2: + mov r0, sp + ldrb r0, [r0, #9] + ldr r1, _081179DC + mov r2, sp + ldrh r2, [r2, #0xa] + bl AnimLoadCompressedBgGfx + ldr r0, _081179E0 + ldr r0, [r0] + movs r1, #6 + ldrsh r0, [r0, r1] + cmp r0, #6 + bhi _08117A48 + lsls r0, r0, #2 + ldr r1, _081179E4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081179D8: .4byte 0x08C2DAF0 +_081179DC: .4byte 0x08C2D7C4 +_081179E0: .4byte 0x02039DDC +_081179E4: .4byte 0x081179E8 +_081179E8: @ jump table + .4byte _08117A04 @ case 0 + .4byte _08117A0C @ case 1 + .4byte _08117A14 @ case 2 + .4byte _08117A1C @ case 3 + .4byte _08117A24 @ case 4 + .4byte _08117A2C @ case 5 + .4byte _08117A34 @ case 6 +_08117A04: + ldr r0, _08117A08 + b _08117A36 + .align 2, 0 +_08117A08: .4byte 0x08C2DC2C +_08117A0C: + ldr r0, _08117A10 + b _08117A36 + .align 2, 0 +_08117A10: .4byte 0x08C2DC0C +_08117A14: + ldr r0, _08117A18 + b _08117A36 + .align 2, 0 +_08117A18: .4byte 0x08C2DC4C +_08117A1C: + ldr r0, _08117A20 + b _08117A36 + .align 2, 0 +_08117A20: .4byte 0x08C2DC6C +_08117A24: + ldr r0, _08117A28 + b _08117A36 + .align 2, 0 +_08117A28: .4byte 0x08C2DCAC +_08117A2C: + ldr r0, _08117A30 + b _08117A36 + .align 2, 0 +_08117A30: .4byte 0x08C2DCCC +_08117A34: + ldr r0, _08117A44 +_08117A36: + mov r1, sp + ldrb r1, [r1, #8] + lsls r1, r1, #4 + movs r2, #0x20 + bl LoadCompressedPalette + b _08117A56 + .align 2, 0 +_08117A44: .4byte 0x08C2DCEC +_08117A48: + ldr r0, _08117A80 + mov r1, sp + ldrb r1, [r1, #8] + lsls r1, r1, #4 + movs r2, #0x20 + bl LoadCompressedPalette +_08117A56: + ldr r3, _08117A84 + movs r2, #0 + strh r2, [r3] + ldr r0, _08117A88 + strh r2, [r0] + ldr r1, _08117A8C + ldr r0, [r1] + movs r4, #4 + ldrsh r0, [r0, r4] + adds r4, r1, #0 + cmp r0, #1 + bne _08117A98 + movs r0, #0x40 + strh r0, [r3] + ldr r2, _08117A90 + lsls r3, r5, #2 + adds r0, r3, r5 + lsls r0, r0, #3 + adds r0, r0, r2 + ldr r1, _08117A94 + b _08117AA4 + .align 2, 0 +_08117A80: .4byte 0x08C2DC8C +_08117A84: .4byte 0x02022ACC +_08117A88: .4byte 0x02022ACE +_08117A8C: .4byte 0x02039DDC +_08117A90: .4byte 0x03005B60 +_08117A94: .4byte 0x0000FFFD +_08117A98: + ldr r2, _08117AC0 + lsls r3, r5, #2 + adds r0, r3, r5 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r1, #3 +_08117AA4: + strh r1, [r0, #0xa] + ldr r0, [r4] + movs r1, #0xc + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08117AC4 + adds r0, r3, r5 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r1, #0xa + strh r1, [r0, #0x10] + movs r1, #0x14 + b _08117AD0 + .align 2, 0 +_08117AC0: .4byte 0x03005B60 +_08117AC4: + adds r0, r3, r5 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r1, #0xd + strh r1, [r0, #0x10] + movs r1, #0x1e +_08117AD0: + strh r1, [r0, #0x12] + adds r1, r3, r5 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r7, [r1, #8] + ldr r3, [r4] + ldrh r0, [r3, #0xa] + strh r0, [r1, #0xc] + mov r4, r8 + strh r4, [r1, #0xe] + ldrb r0, [r3, #2] + strh r0, [r1, #0x14] + ldr r2, _08117B14 + ldrb r0, [r3, #1] + adds r0, r0, r2 + ldrb r0, [r0] + strh r0, [r1, #0x16] + ldr r0, _08117B18 + str r0, [r1] + movs r1, #4 + ldrsh r0, [r3, r1] + cmp r0, #0 + bne _08117B1C + movs r0, #0x40 + rsbs r0, r0, #0 + bl BattleAnimAdjustPanning2 + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r0, #0xef + bl PlaySE12WithPanning + b _08117B30 + .align 2, 0 +_08117B14: .4byte 0x02023E88 +_08117B18: .4byte 0x08117B3D +_08117B1C: + movs r0, #0x40 + rsbs r0, r0, #0 + bl BattleAnimAdjustPanning2 + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r0, #0xf5 + bl PlaySE12WithPanning +_08117B30: + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_0811793C + + thumb_func_start sub_08117B3C +sub_08117B3C: @ 0x08117B3C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r2, _08117B68 + ldr r1, _08117B6C + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r5, r0, r1 + ldrh r0, [r5, #0xa] + ldrh r1, [r2] + adds r0, r0, r1 + strh r0, [r2] + movs r0, #0x26 + ldrsh r2, [r5, r0] + cmp r2, #1 + beq _08117BB2 + cmp r2, #1 + bgt _08117B70 + cmp r2, #0 + beq _08117B7A + b _08117CC8 + .align 2, 0 +_08117B68: .4byte 0x02022ACE +_08117B6C: .4byte 0x03005B60 +_08117B70: + cmp r2, #2 + beq _08117BC8 + cmp r2, #3 + beq _08117C06 + b _08117CC8 +_08117B7A: + ldrh r0, [r5, #0x1e] + adds r1, r0, #1 + strh r1, [r5, #0x1e] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _08117B88 + b _08117CC8 +_08117B88: + strh r2, [r5, #0x1e] + ldrh r1, [r5, #0x20] + adds r1, #1 + strh r1, [r5, #0x20] + movs r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r2, #0x20 + ldrsh r1, [r5, r2] + movs r2, #0x10 + ldrsh r0, [r5, r2] + cmp r1, r0 + beq _08117BB0 + b _08117CC8 +_08117BB0: + b _08117BFE +_08117BB2: + ldrh r0, [r5, #0x1c] + adds r0, #1 + strh r0, [r5, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x12 + ldrsh r1, [r5, r2] + cmp r0, r1 + beq _08117BC6 + b _08117CC8 +_08117BC6: + b _08117BFE +_08117BC8: + ldrh r0, [r5, #0x1e] + adds r1, r0, #1 + strh r1, [r5, #0x1e] + lsls r0, r0, #0x10 + cmp r0, #0 + ble _08117CC8 + movs r0, #0 + strh r0, [r5, #0x1e] + ldrh r1, [r5, #0x20] + subs r1, #1 + strh r1, [r5, #0x20] + movs r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r1, #0x20 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _08117CC8 + movs r0, #0 + bl sub_080A4044 +_08117BFE: + ldrh r0, [r5, #0x26] + adds r0, #1 + strh r0, [r5, #0x26] + b _08117CC8 +_08117C06: + ldr r0, _08117CD0 + movs r1, #0 + strh r1, [r0] + ldr r0, _08117CD4 + strh r1, [r0] + ldr r4, _08117CD8 + movs r0, #0x48 + adds r1, r4, #0 + bl SetGpuReg + movs r0, #0x4a + adds r1, r4, #0 + bl SetGpuReg + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08117C36 + movs r0, #1 + movs r1, #3 + movs r2, #0 + bl SetAnimBgAttribute +_08117C36: + movs r0, #0 + bl GetGpuReg + adds r1, r0, #0 + movs r2, #0x80 + lsls r2, r2, #8 + adds r0, r2, #0 + eors r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #8 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _08117CDC + adds r0, r0, r4 + bl DestroySprite + movs r1, #0xc + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _08117C8A + movs r2, #0xe + ldrsh r1, [r5, r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite +_08117C8A: + movs r1, #0x14 + ldrsh r0, [r5, r1] + cmp r0, #1 + bne _08117CB6 + movs r2, #0x16 + ldrsh r0, [r5, r2] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r4 + ldrb r3, [r2, #5] + lsls r1, r3, #0x1c + lsrs r1, r1, #0x1e + adds r1, #1 + movs r0, #3 + ands r1, r0 + lsls r1, r1, #2 + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #5] +_08117CB6: + ldr r4, _08117CE0 + ldr r0, [r4] + bl Free + movs r0, #0 + str r0, [r4] + adds r0, r6, #0 + bl DestroyAnimVisualTask +_08117CC8: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08117CD0: .4byte 0x02022AD8 +_08117CD4: .4byte 0x02022ADA +_08117CD8: .4byte 0x00003F3F +_08117CDC: .4byte 0x020205AC +_08117CE0: .4byte 0x02039DDC + thumb_func_end sub_08117B3C + + thumb_func_start sub_08117CE4 +sub_08117CE4: @ 0x08117CE4 + push {r4, r5, r6, lr} + sub sp, #0xc + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r0, #1 + movs r1, #1 + movs r2, #1 + movs r3, #1 + bl sub_080A6F8C + adds r6, r0, #0 + movs r1, #0 + bl sub_08117E14 + ldr r0, _08117D44 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + adds r4, r4, r0 + lsrs r0, r6, #0x10 + movs r5, #0 + strh r0, [r4, #0x24] + str r5, [sp] + str r5, [sp, #4] + str r5, [sp, #8] + movs r0, #1 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_080A6E74 + adds r6, r0, #0 + ldr r1, _08117D48 + ands r6, r1 + adds r0, r6, #0 + bl sub_08117E14 + strh r6, [r4, #0x26] + strh r5, [r4, #8] + strh r5, [r4, #0xa] + ldr r0, _08117D4C + str r0, [r4] + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08117D44: .4byte 0x03005B60 +_08117D48: .4byte 0x0000FFFF +_08117D4C: .4byte 0x08117D51 + thumb_func_end sub_08117CE4 + + thumb_func_start sub_08117D50 +sub_08117D50: @ 0x08117D50 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _08117D74 + adds r4, r0, r1 + movs r0, #8 + ldrsh r1, [r4, r0] + cmp r1, #1 + beq _08117D94 + cmp r1, #1 + bgt _08117D78 + cmp r1, #0 + beq _08117D7E + b _08117E0E + .align 2, 0 +_08117D74: .4byte 0x03005B60 +_08117D78: + cmp r1, #2 + beq _08117E08 + b _08117E0E +_08117D7E: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #6 + ble _08117E0E + strh r1, [r4, #0xa] + movs r0, #0x10 + strh r0, [r4, #0xc] + b _08117DFC +_08117D94: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _08117E0E + movs r0, #0 + strh r0, [r4, #0xa] + ldrh r0, [r4, #0xc] + subs r0, #1 + strh r0, [r4, #0xc] + movs r5, #0 + movs r6, #1 +_08117DB0: + movs r1, #0x26 + ldrsh r0, [r4, r1] + asrs r0, r5 + ands r0, r6 + cmp r0, #0 + beq _08117DCA + lsls r0, r5, #0x14 + lsrs r0, r0, #0x10 + ldrb r2, [r4, #0xc] + movs r1, #0x10 + ldr r3, _08117E04 + bl BlendPalette +_08117DCA: + movs r1, #0x24 + ldrsh r0, [r4, r1] + asrs r0, r5 + ands r0, r6 + cmp r0, #0 + beq _08117DEA + lsls r0, r5, #0x14 + movs r1, #0x80 + lsls r1, r1, #0x11 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + ldrb r2, [r4, #0xc] + movs r1, #0x10 + movs r3, #0 + bl BlendPalette +_08117DEA: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0xf + bls _08117DB0 + movs r1, #0xc + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08117E0E +_08117DFC: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _08117E0E + .align 2, 0 +_08117E04: .4byte 0x0000FFFF +_08117E08: + adds r0, r2, #0 + bl DestroyAnimVisualTask +_08117E0E: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_08117D50 + + thumb_func_start sub_08117E14 +sub_08117E14: @ 0x08117E14 + push {r4, r5, r6, lr} + adds r3, r0, #0 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + movs r2, #0 +_08117E1E: + movs r0, #1 + ands r0, r3 + lsrs r4, r3, #1 + adds r5, r2, #1 + cmp r0, #0 + beq _08117E4A + lsls r0, r2, #0x14 + lsrs r2, r0, #0x10 + adds r0, r2, #0 + adds r0, #0x10 + cmp r2, r0 + bge _08117E4A + ldr r1, _08117E5C + adds r3, r0, #0 +_08117E3A: + lsls r0, r2, #1 + adds r0, r0, r1 + strh r6, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, r3 + blt _08117E3A +_08117E4A: + adds r3, r4, #0 + lsls r0, r5, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0x1f + bls _08117E1E + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08117E5C: .4byte 0x020377B4 + thumb_func_end sub_08117E14 + + thumb_func_start sub_08117E60 +sub_08117E60: @ 0x08117E60 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r4, #0 + movs r2, #0 + ldr r0, _08117EA8 + ldrb r3, [r0] + movs r5, #1 +_08117E70: + cmp r3, r2 + beq _08117E7E + adds r1, r2, #0 + adds r1, #0x10 + adds r0, r5, #0 + lsls r0, r1 + orrs r4, r0 +_08117E7E: + adds r2, #1 + cmp r2, #3 + bls _08117E70 + movs r2, #5 + ldr r0, _08117EAC + adds r1, r0, #0 + adds r1, #8 +_08117E8C: + ldrh r0, [r1] + strh r0, [r1, #2] + subs r1, #2 + subs r2, #1 + cmp r2, #0 + bne _08117E8C + adds r0, r6, #0 + adds r1, r4, #0 + bl StartBlendAnimSpriteColor + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08117EA8: .4byte 0x020380D6 +_08117EAC: .4byte 0x020380BE + thumb_func_end sub_08117E60 + + thumb_func_start sub_08117EB0 +sub_08117EB0: @ 0x08117EB0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r0, #0 + bl sub_080A6674 + ldr r0, _08117F18 + movs r1, #5 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r4, _08117F1C + movs r1, #4 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _08117EEC + ldr r0, _08117F20 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08117EEC + ldrh r0, [r4] + rsbs r0, r0, #0 + strh r0, [r4] + ldrh r0, [r4, #2] + rsbs r0, r0, #0 + strh r0, [r4, #2] +_08117EEC: + ldr r0, _08117F24 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r2, _08117F1C + ldrh r0, [r2] + strh r0, [r1, #0xa] + ldrh r0, [r2, #2] + strh r0, [r1, #0xc] + ldrh r0, [r2, #6] + strh r0, [r1, #0xe] + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + adds r0, r6, #0 + bl DestroyAnimVisualTask + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08117F18: .4byte 0x08117F29 +_08117F1C: .4byte 0x020380BE +_08117F20: .4byte 0x020380D6 +_08117F24: .4byte 0x03005B60 + thumb_func_end sub_08117EB0 + + thumb_func_start sub_08117F28 +sub_08117F28: @ 0x08117F28 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _08117F94 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r3, [r1, #0xa] + ldrh r0, [r1, #0x1c] + adds r3, r3, r0 + movs r4, #0 + mov ip, r4 + strh r3, [r1, #0x1c] + ldrh r2, [r1, #0xc] + ldrh r7, [r1, #0x1e] + adds r2, r2, r7 + strh r2, [r1, #0x1e] + ldr r6, _08117F98 + lsls r0, r3, #0x10 + asrs r0, r0, #0x18 + ldrh r4, [r6] + adds r0, r0, r4 + strh r0, [r6] + ldr r4, _08117F9C + lsls r0, r2, #0x10 + asrs r0, r0, #0x18 + ldrh r7, [r4] + adds r0, r0, r7 + strh r0, [r4] + movs r0, #0xff + ands r3, r0 + strh r3, [r1, #0x1c] + ands r2, r0 + strh r2, [r1, #0x1e] + ldr r0, _08117FA0 + movs r3, #0xe + ldrsh r2, [r0, r3] + movs r7, #0xe + ldrsh r0, [r1, r7] + cmp r2, r0 + bne _08117F8E + mov r0, ip + strh r0, [r6] + strh r0, [r4] + movs r0, #1 + bl sub_080A6674 + adds r0, r5, #0 + bl DestroyTask +_08117F8E: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08117F94: .4byte 0x03005B60 +_08117F98: .4byte 0x02022AD4 +_08117F9C: .4byte 0x02022AD6 +_08117FA0: .4byte 0x020380BE + thumb_func_end sub_08117F28 + + thumb_func_start AnimTask_GetAttackerSide +AnimTask_GetAttackerSide: @ 0x08117FA4 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _08117FC8 + ldrb r0, [r0] + bl GetBattlerSide + ldr r1, _08117FCC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r1, #0xe] + adds r0, r4, #0 + bl DestroyAnimVisualTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08117FC8: .4byte 0x020380D6 +_08117FCC: .4byte 0x020380BE + thumb_func_end AnimTask_GetAttackerSide + + thumb_func_start AnimTask_GetTargetSide +AnimTask_GetTargetSide: @ 0x08117FD0 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _08117FF4 + ldrb r0, [r0] + bl GetBattlerSide + ldr r1, _08117FF8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r1, #0xe] + adds r0, r4, #0 + bl DestroyAnimVisualTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08117FF4: .4byte 0x020380D7 +_08117FF8: .4byte 0x020380BE + thumb_func_end AnimTask_GetTargetSide + + thumb_func_start AnimTask_GetTargetIsAttackerPartner +AnimTask_GetTargetIsAttackerPartner: @ 0x08117FFC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r5, _08118028 + movs r4, #0 + ldr r0, _0811802C + ldrb r2, [r0] + movs r0, #2 + ldr r1, _08118030 + eors r0, r2 + ldrb r1, [r1] + cmp r0, r1 + bne _08118018 + movs r4, #1 +_08118018: + strh r4, [r5, #0xe] + adds r0, r3, #0 + bl DestroyAnimVisualTask + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08118028: .4byte 0x020380BE +_0811802C: .4byte 0x020380D6 +_08118030: .4byte 0x020380D7 + thumb_func_end AnimTask_GetTargetIsAttackerPartner + + thumb_func_start sub_08118034 +sub_08118034: @ 0x08118034 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r4, #0 + ldr r6, _08118094 +_0811803E: + ldr r0, _08118098 + ldrb r0, [r0] + cmp r4, r0 + beq _0811807C + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0811807C + ldr r0, _0811809C + adds r0, r4, r0 + ldrb r0, [r0] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r6 + ldr r1, _081180A0 + adds r2, #0x3e + movs r0, #1 + ldrb r3, [r1] + ands r3, r0 + lsls r3, r3, #2 + ldrb r0, [r2] + movs r7, #5 + rsbs r7, r7, #0 + adds r1, r7, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2] +_0811807C: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #3 + bls _0811803E + adds r0, r5, #0 + bl DestroyAnimVisualTask + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08118094: .4byte 0x020205AC +_08118098: .4byte 0x020380D6 +_0811809C: .4byte 0x02023E88 +_081180A0: .4byte 0x020380BE + thumb_func_end sub_08118034 + + thumb_func_start sub_081180A4 +sub_081180A4: @ 0x081180A4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x24 + ldr r1, [sp, #0x44] + ldr r4, [sp, #0x48] + ldr r5, [sp, #0x4c] + ldr r6, [sp, #0x50] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + str r2, [sp, #0x14] + lsls r3, r3, #0x18 + lsrs r7, r3, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r4, [sp, #0x18] + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + str r5, [sp, #0x1c] + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov sl, r6 + movs r0, #0 + str r0, [sp, #0x20] + movs r0, #2 + adds r6, r7, #0 + eors r6, r0 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08118106 + mov r1, r8 + cmp r1, #0 + beq _0811810A + adds r0, r6, #0 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811810A +_08118106: + movs r2, #0 + mov r8, r2 +_0811810A: + ldr r0, _0811819C + movs r1, #0 + strh r1, [r0] + ldr r0, _081181A0 + strh r1, [r0] + ldr r1, _081181A4 + movs r0, #0x48 + bl SetGpuReg + ldr r1, _081181A8 + movs r0, #0x4a + bl SetGpuReg + movs r1, #0x80 + lsls r1, r1, #8 + movs r0, #0 + bl SetGpuRegBits + ldr r1, _081181AC + movs r0, #0x50 + bl SetGpuReg + movs r1, #0x80 + lsls r1, r1, #5 + movs r0, #0x52 + bl SetGpuReg + movs r0, #0xa + bl GetGpuReg + add r4, sp, #0x10 + strh r0, [r4] + ldrb r1, [r4] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4] + mov r2, sp + adds r2, #0x11 + ldrb r1, [r2] + movs r0, #0x3f + ands r0, r1 + strb r0, [r2] + ldrb r0, [r2] + movs r1, #0x20 + orrs r0, r1 + strb r0, [r2] + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08118180 + ldrb r0, [r4] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #4 + orrs r1, r0 + strb r1, [r4] +_08118180: + ldrh r1, [r4] + movs r0, #0xa + bl SetGpuReg + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081181B4 + ldr r0, _081181B0 + ldr r0, [r0] + ldr r0, [r0, #0x18] + ldrh r4, [r0] + b _081181F2 + .align 2, 0 +_0811819C: .4byte 0x02022AD8 +_081181A0: .4byte 0x02022ADA +_081181A4: .4byte 0x00003F3F +_081181A8: .4byte 0x00003F3D +_081181AC: .4byte 0x00003F42 +_081181B0: .4byte 0x02039BD4 +_081181B4: + adds r0, r7, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081181D8 + ldr r1, _081181D0 + lsls r0, r7, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081181D4 + b _081181E6 + .align 2, 0 +_081181D0: .4byte 0x02023D12 +_081181D4: .4byte 0x020243E8 +_081181D8: + ldr r1, _08118294 + lsls r0, r7, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08118298 +_081181E6: + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_081181F2: + ldr r5, _0811829C + adds r0, r7, r5 + ldrb r1, [r0] + adds r0, r7, #0 + adds r2, r4, #0 + bl sub_080A8290 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + mov r0, r8 + cmp r0, #0 + beq _0811821C + adds r0, r6, r5 + ldrb r1, [r0] + adds r0, r6, #0 + adds r2, r4, #0 + bl sub_080A8290 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x20] +_0811821C: + mov r0, sp + bl sub_080A63F8 + mov r0, sp + ldr r1, [sp, #0x58] + movs r2, #0 + bl sub_080A6628 + mov r0, sp + ldrb r0, [r0, #9] + mov r1, sp + ldrh r2, [r1, #0xa] + ldr r1, [sp, #0x54] + bl AnimLoadCompressedBgGfx + mov r0, sp + ldrb r1, [r0, #8] + lsls r1, r1, #4 + ldr r0, [sp, #0x5c] + movs r2, #0x20 + bl LoadCompressedPalette + ldr r0, _081182A0 + movs r1, #0 + strh r1, [r0] + ldr r0, _081182A4 + strh r1, [r0] + ldr r1, _081182A8 + mov r2, sb + lsls r0, r2, #2 + add r0, sb + lsls r0, r0, #3 + adds r0, r0, r1 + mov r1, sp + ldrh r1, [r1, #0x14] + strh r1, [r0, #0xa] + mov r2, sp + ldrh r2, [r2, #0x18] + strh r2, [r0, #0x10] + mov r1, sl + strh r1, [r0, #0x12] + mov r2, sp + ldrh r2, [r2, #0x1c] + strh r2, [r0, #0x14] + strh r7, [r0, #8] + mov r1, r8 + strh r1, [r0, #0xc] + mov r2, sp + ldrh r2, [r2, #0x20] + strh r2, [r0, #0xe] + ldr r1, _081182AC + str r1, [r0] + add sp, #0x24 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08118294: .4byte 0x02023D12 +_08118298: .4byte 0x02024190 +_0811829C: .4byte 0x02023E88 +_081182A0: .4byte 0x02022ACC +_081182A4: .4byte 0x02022ACE +_081182A8: .4byte 0x03005B60 +_081182AC: .4byte 0x081182B1 + thumb_func_end sub_081180A4 + + thumb_func_start sub_081182B0 +sub_081182B0: @ 0x081182B0 + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _081182EC + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r3, r0, r1 + movs r0, #0xa + ldrsh r2, [r3, r0] + adds r5, r1, #0 + cmp r2, #0 + bge _081182CE + rsbs r2, r2, #0 +_081182CE: + ldrh r0, [r3, #0x22] + adds r4, r0, r2 + strh r4, [r3, #0x22] + movs r1, #0xa + ldrsh r0, [r3, r1] + cmp r0, #0 + bge _081182F4 + ldr r2, _081182F0 + lsls r1, r4, #0x10 + asrs r1, r1, #0x18 + ldrh r0, [r2] + subs r0, r0, r1 + strh r0, [r2] + b _08118300 + .align 2, 0 +_081182EC: .4byte 0x03005B60 +_081182F0: .4byte 0x02022ACE +_081182F4: + ldr r1, _08118324 + lsls r0, r4, #0x10 + asrs r0, r0, #0x18 + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] +_08118300: + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r5, r0, r5 + ldrh r1, [r5, #0x22] + movs r0, #0xff + ands r0, r1 + movs r2, #0 + strh r0, [r5, #0x22] + movs r3, #0x26 + ldrsh r0, [r5, r3] + cmp r0, #1 + beq _0811836A + cmp r0, #1 + bgt _08118328 + cmp r0, #0 + beq _0811832E + b _0811845C + .align 2, 0 +_08118324: .4byte 0x02022ACE +_08118328: + cmp r0, #2 + beq _08118384 + b _0811845C +_0811832E: + ldrh r0, [r5, #0x1e] + adds r1, r0, #1 + strh r1, [r5, #0x1e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r3, #0x14 + ldrsh r1, [r5, r3] + cmp r0, r1 + bge _08118342 + b _0811845C +_08118342: + strh r2, [r5, #0x1e] + ldrh r1, [r5, #0x20] + adds r1, #1 + strh r1, [r5, #0x20] + movs r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r0, #0x20 + ldrsh r1, [r5, r0] + movs r2, #0x10 + ldrsh r0, [r5, r2] + cmp r1, r0 + bne _0811845C + b _0811837C +_0811836A: + ldrh r0, [r5, #0x1c] + adds r0, #1 + strh r0, [r5, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r3, #0x12 + ldrsh r1, [r5, r3] + cmp r0, r1 + bne _0811845C +_0811837C: + ldrh r0, [r5, #0x26] + adds r0, #1 + strh r0, [r5, #0x26] + b _0811845C +_08118384: + ldrh r0, [r5, #0x1e] + adds r1, r0, #1 + strh r1, [r5, #0x1e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r3, #0x14 + ldrsh r1, [r5, r3] + cmp r0, r1 + blt _0811845C + strh r2, [r5, #0x1e] + ldrh r1, [r5, #0x20] + subs r1, #1 + strh r1, [r5, #0x20] + movs r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r0, #0x20 + ldrsh r4, [r5, r0] + cmp r4, #0 + bne _0811845C + movs r0, #0 + bl sub_080A4044 + ldr r0, _08118464 + strh r4, [r0] + ldr r0, _08118468 + strh r4, [r0] + ldr r4, _0811846C + movs r0, #0x48 + adds r1, r4, #0 + bl SetGpuReg + movs r0, #0x4a + adds r1, r4, #0 + bl SetGpuReg + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08118402 + movs r0, #0xa + bl GetGpuReg + mov r1, sp + strh r0, [r1] + mov r2, sp + ldrb r1, [r2] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + mov r0, sp + ldrh r1, [r0] + movs r0, #0xa + bl SetGpuReg +_08118402: + movs r0, #0 + bl GetGpuReg + adds r1, r0, #0 + movs r2, #0x80 + lsls r2, r2, #8 + adds r0, r2, #0 + eors r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r3, #8 + ldrsh r1, [r5, r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _08118470 + adds r0, r0, r4 + bl DestroySprite + movs r1, #0xc + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _08118456 + movs r2, #0xe + ldrsh r1, [r5, r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite +_08118456: + adds r0, r6, #0 + bl DestroyAnimVisualTask +_0811845C: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08118464: .4byte 0x02022AD8 +_08118468: .4byte 0x02022ADA +_0811846C: .4byte 0x00003F3F +_08118470: .4byte 0x020205AC + thumb_func_end sub_081182B0 + + thumb_func_start AnimTask_GetBattleTerrain +AnimTask_GetBattleTerrain: @ 0x08118474 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0811848C + ldr r1, _08118490 + ldrb r1, [r1] + strh r1, [r2] + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_0811848C: .4byte 0x020380BE +_08118490: .4byte 0x02022C94 + thumb_func_end AnimTask_GetBattleTerrain + + thumb_func_start sub_08118494 +sub_08118494: @ 0x08118494 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0x80 + lsls r0, r0, #6 + bl AllocZeroed + ldr r1, _081184BC + ldr r1, [r1] + movs r2, #0xbe + lsls r2, r2, #1 + adds r1, r1, r2 + str r0, [r1] + adds r0, r4, #0 + bl DestroyAnimVisualTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081184BC: .4byte 0x02024178 + thumb_func_end sub_08118494 + + thumb_func_start sub_081184C0 +sub_081184C0: @ 0x081184C0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r6, _081184EC + ldr r0, [r6] + movs r5, #0xbe + lsls r5, r5, #1 + adds r0, r0, r5 + ldr r0, [r0] + bl Free + ldr r0, [r6] + adds r0, r0, r5 + movs r1, #0 + str r1, [r0] + adds r0, r4, #0 + bl DestroyAnimVisualTask + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081184EC: .4byte 0x02024178 + thumb_func_end sub_081184C0 + + thumb_func_start sub_081184F0 +sub_081184F0: @ 0x081184F0 + push {r4, r5, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r4, #0 + ldr r0, _08118530 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08118534 + str r4, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r0, #1 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_080A6E74 + adds r1, r0, #0 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0811854C + movs r2, #1 +_08118522: + lsrs r1, r1, #1 + adds r4, #1 + adds r0, r1, #0 + ands r0, r2 + cmp r0, #0 + beq _08118522 + b _0811854C + .align 2, 0 +_08118530: .4byte 0x020380BE +_08118534: + cmp r0, #1 + bne _08118540 + ldr r0, _0811853C + b _08118546 + .align 2, 0 +_0811853C: .4byte 0x020380D6 +_08118540: + cmp r0, #2 + bne _0811854C + ldr r0, _0811857C +_08118546: + ldrb r0, [r0] + adds r4, r0, #0 + adds r4, #0x10 +_0811854C: + ldr r0, _08118580 + ldr r1, [r0] + ldr r0, _08118584 + movs r2, #2 + ldrsh r0, [r0, r2] + movs r2, #0xbe + lsls r2, r2, #1 + adds r1, r1, r2 + ldr r1, [r1] + lsls r0, r0, #5 + adds r0, r0, r1 + lsls r1, r4, #5 + ldr r2, _08118588 + adds r1, r1, r2 + movs r2, #0x20 + bl memcpy + adds r0, r5, #0 + bl DestroyAnimVisualTask + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0811857C: .4byte 0x020380D7 +_08118580: .4byte 0x02024178 +_08118584: .4byte 0x020380BE +_08118588: .4byte 0x020373B4 + thumb_func_end sub_081184F0 + + thumb_func_start sub_0811858C +sub_0811858C: @ 0x0811858C + push {r4, r5, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r4, #0 + ldr r0, _081185CC + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _081185D0 + str r4, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r0, #1 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_080A6E74 + adds r1, r0, #0 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _081185E8 + movs r2, #1 +_081185BE: + lsrs r1, r1, #1 + adds r4, #1 + adds r0, r1, #0 + ands r0, r2 + cmp r0, #0 + beq _081185BE + b _081185E8 + .align 2, 0 +_081185CC: .4byte 0x020380BE +_081185D0: + cmp r0, #1 + bne _081185DC + ldr r0, _081185D8 + b _081185E2 + .align 2, 0 +_081185D8: .4byte 0x020380D6 +_081185DC: + cmp r0, #2 + bne _081185E8 + ldr r0, _08118618 +_081185E2: + ldrb r0, [r0] + adds r4, r0, #0 + adds r4, #0x10 +_081185E8: + lsls r0, r4, #5 + ldr r1, _0811861C + adds r0, r0, r1 + ldr r1, _08118620 + ldr r2, [r1] + ldr r1, _08118624 + movs r3, #2 + ldrsh r1, [r1, r3] + movs r3, #0xbe + lsls r3, r3, #1 + adds r2, r2, r3 + ldr r2, [r2] + lsls r1, r1, #5 + adds r1, r1, r2 + movs r2, #0x20 + bl memcpy + adds r0, r5, #0 + bl DestroyAnimVisualTask + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08118618: .4byte 0x020380D7 +_0811861C: .4byte 0x020373B4 +_08118620: .4byte 0x02024178 +_08118624: .4byte 0x020380BE + thumb_func_end sub_0811858C + + thumb_func_start sub_08118628 +sub_08118628: @ 0x08118628 + push {r4, r5, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r4, #0 + ldr r0, _08118668 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _0811866C + str r4, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r0, #1 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_080A6E74 + adds r1, r0, #0 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08118684 + movs r2, #1 +_0811865A: + lsrs r1, r1, #1 + adds r4, #1 + adds r0, r1, #0 + ands r0, r2 + cmp r0, #0 + beq _0811865A + b _08118684 + .align 2, 0 +_08118668: .4byte 0x020380BE +_0811866C: + cmp r0, #1 + bne _08118678 + ldr r0, _08118674 + b _0811867E + .align 2, 0 +_08118674: .4byte 0x020380D6 +_08118678: + cmp r0, #2 + bne _08118684 + ldr r0, _081186A4 +_0811867E: + ldrb r0, [r0] + adds r4, r0, #0 + adds r4, #0x10 +_08118684: + lsls r1, r4, #5 + ldr r0, _081186A8 + adds r0, r1, r0 + ldr r2, _081186AC + adds r1, r1, r2 + movs r2, #0x20 + bl memcpy + adds r0, r5, #0 + bl DestroyAnimVisualTask + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081186A4: .4byte 0x020380D7 +_081186A8: .4byte 0x020373B4 +_081186AC: .4byte 0x020377B4 + thumb_func_end sub_08118628 + + thumb_func_start AnimTask_IsContest +AnimTask_IsContest: @ 0x081186B0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl IsContest + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _081186D0 + ldr r1, _081186CC + movs r0, #1 + strh r0, [r1, #0xe] + b _081186D4 + .align 2, 0 +_081186CC: .4byte 0x020380BE +_081186D0: + ldr r0, _081186E0 + strh r1, [r0, #0xe] +_081186D4: + adds r0, r4, #0 + bl DestroyAnimVisualTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081186E0: .4byte 0x020380BE + thumb_func_end AnimTask_IsContest + + thumb_func_start sub_081186E4 +sub_081186E4: @ 0x081186E4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08118704 + ldr r1, _08118708 + ldrb r1, [r1] + strb r1, [r2] + ldr r2, _0811870C + ldr r1, _08118710 + ldrb r1, [r1] + strb r1, [r2] + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_08118704: .4byte 0x020380D6 +_08118708: .4byte 0x02023EB0 +_0811870C: .4byte 0x020380D7 +_08118710: .4byte 0x02023EB2 + thumb_func_end sub_081186E4 + + thumb_func_start AnimTask_IsTargetSameSide +AnimTask_IsTargetSameSide: @ 0x08118714 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _0811873C + ldrb r0, [r0] + bl GetBattlerSide + adds r4, r0, #0 + ldr r0, _08118740 + ldrb r0, [r0] + bl GetBattlerSide + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + bne _08118748 + ldr r1, _08118744 + movs r0, #1 + b _0811874C + .align 2, 0 +_0811873C: .4byte 0x020380D6 +_08118740: .4byte 0x020380D7 +_08118744: .4byte 0x020380BE +_08118748: + ldr r1, _0811875C + movs r0, #0 +_0811874C: + strh r0, [r1, #0xe] + adds r0, r5, #0 + bl DestroyAnimVisualTask + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0811875C: .4byte 0x020380BE + thumb_func_end AnimTask_IsTargetSameSide + + thumb_func_start sub_08118760 +sub_08118760: @ 0x08118760 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08118778 + ldr r1, _0811877C + ldrb r1, [r1] + strb r1, [r2] + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_08118778: .4byte 0x020380D7 +_0811877C: .4byte 0x02023EB0 + thumb_func_end sub_08118760 + + thumb_func_start sub_08118780 +sub_08118780: @ 0x08118780 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _081187A0 + ldr r1, _081187A4 + ldrb r1, [r1] + strb r1, [r2] + ldr r2, _081187A8 + ldr r1, _081187AC + ldrb r1, [r1] + strb r1, [r2] + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_081187A0: .4byte 0x020380D6 +_081187A4: .4byte 0x02023EAF +_081187A8: .4byte 0x020380D7 +_081187AC: .4byte 0x02023EB2 + thumb_func_end sub_08118780 + + thumb_func_start sub_081187B0 +sub_081187B0: @ 0x081187B0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081187C8 + adds r0, r4, #0 + bl DestroyAnimVisualTask + b _08118804 +_081187C8: + ldr r0, _0811880C + lsls r3, r4, #2 + adds r3, r3, r4 + lsls r3, r3, #3 + adds r3, r3, r0 + ldr r0, _08118810 + ldr r4, [r0] + ldr r2, _08118814 + ldrb r0, [r2] + ldr r1, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + lsls r0, r0, #0x1f + lsrs r0, r0, #0x1f + strh r0, [r3, #8] + ldrb r1, [r2] + ldr r0, [r4] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1] + movs r2, #1 + orrs r0, r2 + strb r0, [r1] + ldr r0, _08118818 + str r0, [r3] + ldr r1, _0811881C + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] +_08118804: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811880C: .4byte 0x03005B60 +_08118810: .4byte 0x02024174 +_08118814: .4byte 0x020380D6 +_08118818: .4byte 0x08118821 +_0811881C: .4byte 0x0203809E + thumb_func_end sub_081187B0 + + thumb_func_start sub_08118820 +sub_08118820: @ 0x08118820 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0811886C + movs r2, #0xe + ldrsh r1, [r0, r2] + movs r0, #0x80 + lsls r0, r0, #5 + cmp r1, r0 + bne _08118864 + ldr r0, _08118870 + ldr r1, [r0] + ldr r0, _08118874 + ldrb r3, [r0] + ldr r0, [r1] + lsls r3, r3, #2 + adds r3, r3, r0 + ldr r1, _08118878 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r0, [r0, #8] + movs r1, #1 + ands r1, r0 + ldrb r2, [r3] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + adds r0, r4, #0 + bl DestroyTask +_08118864: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811886C: .4byte 0x020380BE +_08118870: .4byte 0x02024174 +_08118874: .4byte 0x020380D6 +_08118878: .4byte 0x03005B60 + thumb_func_end sub_08118820 + diff --git a/asm/battle_arena.s b/asm/battle_arena.s new file mode 100644 index 0000000..9128397 --- /dev/null +++ b/asm/battle_arena.s @@ -0,0 +1,1709 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start CallBattleArenaFunction +CallBattleArenaFunction: @ 0x081A4E28 + push {lr} + ldr r1, _081A4E40 + ldr r0, _081A4E44 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + thumb_func_end CallBattleArenaFunction + + thumb_func_start sub_081A4E3C +sub_081A4E3C: @ 0x081A4E3C + bx r0 + .align 2, 0 +_081A4E40: .4byte 0x085DD7BC +_081A4E44: .4byte 0x02037280 + thumb_func_end sub_081A4E3C + + thumb_func_start BattleArena_ShowJudgmentWindow +BattleArena_ShowJudgmentWindow: @ 0x081A4E48 + push {r4, r5, r6, lr} + sub sp, #4 + adds r5, r0, #0 + movs r6, #0 + ldrb r0, [r5] + cmp r0, #0xa + bls _081A4E58 + b _081A5134 +_081A4E58: + lsls r0, r0, #2 + ldr r1, _081A4E64 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081A4E64: .4byte 0x081A4E68 +_081A4E68: @ jump table + .4byte _081A4E94 @ case 0 + .4byte _081A4EE4 @ case 1 + .4byte _081A4F0C @ case 2 + .4byte _081A4FA4 @ case 3 + .4byte _081A4FFC @ case 4 + .4byte _081A501C @ case 5 + .4byte _081A503C @ case 6 + .4byte _081A5080 @ case 7 + .4byte _081A512E @ case 8 + .4byte _081A50C4 @ case 9 + .4byte _081A5110 @ case 10 +_081A4E94: + ldr r0, _081A4ECC + movs r1, #0 + str r1, [sp] + movs r1, #4 + movs r2, #0 + movs r3, #8 + bl BeginNormalPaletteFade + ldr r1, _081A4ED0 + movs r0, #0x48 + bl SetGpuReg + ldr r0, _081A4ED4 + bl LoadCompressedSpriteSheet + ldr r0, _081A4ED8 + movs r1, #0xf8 + lsls r1, r1, #1 + movs r2, #0x20 + bl LoadCompressedPalette + ldr r1, _081A4EDC + movs r0, #0xff + strh r0, [r1] + ldr r1, _081A4EE0 + movs r0, #0x70 + strh r0, [r1] + b _081A512E + .align 2, 0 +_081A4ECC: .4byte 0x7FFFFF1C +_081A4ED0: .4byte 0x00003F3E +_081A4ED4: .4byte 0x085DD7AC +_081A4ED8: .4byte 0x08D855CC +_081A4EDC: .4byte 0x02022AD8 +_081A4EE0: .4byte 0x02022ADA +_081A4EE4: + ldr r0, _081A4F08 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _081A4EF6 + b _081A5134 +_081A4EF6: + str r0, [sp] + movs r0, #6 + movs r1, #0 + movs r2, #0x17 + movs r3, #0xd + bl HandleBattleWindow + b _081A512E + .align 2, 0 +_081A4F08: .4byte 0x02037C74 +_081A4F0C: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081A4F18 + b _081A5134 +_081A4F18: + ldr r1, _081A4F7C + movs r2, #0xa1 + strb r2, [r1] + movs r0, #0xff + strb r0, [r1, #1] + ldr r1, _081A4F80 + strb r2, [r1] + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1, #1] + ldr r0, _081A4F84 + bl TryGetStatusString + ldr r4, _081A4F88 + adds r0, r4, #0 + movs r1, #0xf + bl sub_0814FA04 + ldr r0, _081A4F8C + movs r1, #0x10 + bl sub_0814FA04 + ldr r0, _081A4F90 + bl TryGetStatusString + adds r0, r4, #0 + movs r1, #0x11 + bl sub_0814FA04 + ldr r0, _081A4F94 + movs r1, #0x12 + bl sub_0814FA04 + ldr r0, _081A4F98 + movs r1, #0x13 + bl sub_0814FA04 + ldr r0, _081A4F9C + movs r1, #0x14 + bl sub_0814FA04 + ldr r0, _081A4FA0 + bl TryGetStatusString + adds r0, r4, #0 + movs r1, #0x15 + bl sub_0814FA04 + b _081A512E + .align 2, 0 +_081A4F7C: .4byte 0x02022C0C +_081A4F80: .4byte 0x02022C1C +_081A4F84: .4byte 0x085ABD9A +_081A4F88: .4byte 0x02022AE0 +_081A4F8C: .4byte 0x085ABD9D +_081A4F90: .4byte 0x085ABDA0 +_081A4F94: .4byte 0x085ABDA3 +_081A4F98: .4byte 0x085ABDA7 +_081A4F9C: .4byte 0x085ABDAA +_081A4FA0: .4byte 0x085ABDAE +_081A4FA4: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081A4FB0 + b _081A5134 +_081A4FB0: + ldr r1, _081A4FF0 + movs r0, #0x48 + bl SetGpuReg + movs r6, #0x80 + lsls r6, r6, #0xf + movs r4, #7 +_081A4FBE: + asrs r1, r6, #0x10 + ldr r0, _081A4FF4 + movs r2, #0x54 + movs r3, #0 + bl CreateSprite + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _081A4FF8 + adds r0, r0, r1 + movs r1, #3 + bl StartSpriteAnim + movs r0, #0x80 + lsls r0, r0, #0xd + adds r6, r6, r0 + subs r4, #1 + cmp r4, #0 + bge _081A4FBE + b _081A512C + .align 2, 0 +_081A4FF0: .4byte 0x00003F3F +_081A4FF4: .4byte 0x085DD794 +_081A4FF8: .4byte 0x020205AC +_081A4FFC: + ldr r0, _081A5018 + bl PlaySE + movs r0, #0x50 + movs r1, #0x28 + movs r2, #0 + movs r3, #0 + bl ShowJudgmentSprite + movs r0, #0xa0 + movs r1, #0x28 + movs r2, #0 + b _081A5054 + .align 2, 0 +_081A5018: .4byte 0x00000109 +_081A501C: + ldr r0, _081A5038 + bl PlaySE + movs r0, #0x50 + movs r1, #0x38 + movs r2, #1 + movs r3, #0 + bl ShowJudgmentSprite + movs r0, #0xa0 + movs r1, #0x38 + movs r2, #1 + b _081A5054 + .align 2, 0 +_081A5038: .4byte 0x00000109 +_081A503C: + ldr r0, _081A5074 + bl PlaySE + movs r0, #0x50 + movs r1, #0x48 + movs r2, #2 + movs r3, #0 + bl ShowJudgmentSprite + movs r0, #0xa0 + movs r1, #0x48 + movs r2, #2 +_081A5054: + movs r3, #1 + bl ShowJudgmentSprite + ldr r0, _081A5078 + bl TryGetStatusString + ldr r0, _081A507C + movs r1, #0x15 + bl sub_0814FA04 + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + movs r6, #1 + b _081A5134 + .align 2, 0 +_081A5074: .4byte 0x00000109 +_081A5078: .4byte 0x085ABDAE +_081A507C: .4byte 0x02022AE0 +_081A5080: + movs r0, #0x85 + lsls r0, r0, #1 + bl PlaySE + ldr r0, _081A50A0 + ldr r1, _081A50A4 + ldrb r2, [r0] + ldrb r0, [r1] + cmp r2, r0 + bls _081A50AC + movs r6, #2 + ldr r1, _081A50A8 + movs r0, #0 + strb r0, [r1, #0x17] + b _081A512E + .align 2, 0 +_081A50A0: .4byte 0x02022C0C +_081A50A4: .4byte 0x02022C1C +_081A50A8: .4byte 0x02024118 +_081A50AC: + cmp r2, r0 + bhs _081A50C0 + movs r6, #3 + ldr r1, _081A50BC + movs r0, #1 + strb r0, [r1, #0x17] + b _081A512E + .align 2, 0 +_081A50BC: .4byte 0x02024118 +_081A50C0: + movs r6, #4 + b _081A512E +_081A50C4: + ldr r1, _081A5100 + movs r0, #0x48 + bl SetGpuReg + movs r0, #1 + str r0, [sp] + movs r0, #6 + movs r1, #0 + movs r2, #0x17 + movs r3, #0xd + bl HandleBattleWindow + movs r0, #0 + bl CopyBgTilemapBufferToVram + ldr r0, _081A5104 + ldr r1, _081A5108 + movs r2, #0x80 + lsls r2, r2, #1 + bl m4aMPlayVolumeControl + ldr r0, _081A510C + movs r1, #0 + str r1, [sp] + movs r1, #4 + movs r2, #8 + movs r3, #0 + bl BeginNormalPaletteFade + b _081A512E + .align 2, 0 +_081A5100: .4byte 0x00003F3E +_081A5104: .4byte 0x030074D0 +_081A5108: .4byte 0x0000FFFF +_081A510C: .4byte 0x7FFFFF1C +_081A5110: + ldr r0, _081A5140 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081A5134 + ldr r1, _081A5144 + movs r0, #0x48 + bl SetGpuReg + movs r0, #0xfa + lsls r0, r0, #2 + bl FreeSpriteTilesByTag +_081A512C: + movs r6, #1 +_081A512E: + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] +_081A5134: + adds r0, r6, #0 + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_081A5140: .4byte 0x02037C74 +_081A5144: .4byte 0x00003F3F + thumb_func_end BattleArena_ShowJudgmentWindow + + thumb_func_start ShowJudgmentSprite +ShowJudgmentSprite: @ 0x081A5148 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sl, r1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sb, r2 + lsls r3, r3, #0x18 + lsrs r7, r3, #0x18 + movs r6, #0 + movs r1, #0 + ldr r0, _081A5190 + ldr r0, [r0] + movs r3, #0xa6 + lsls r3, r3, #2 + adds r4, r0, r3 + ldr r5, _081A5194 + adds r3, r0, r5 + adds r5, #2 + adds r5, r5, r0 + mov r8, r5 + cmp r2, #1 + beq _081A51B4 + cmp r2, #1 + bgt _081A5198 + cmp r2, #0 + beq _081A51A0 + b _081A5202 + .align 2, 0 +_081A5190: .4byte 0x02024140 +_081A5194: .4byte 0x0000029A +_081A5198: + mov r0, sb + cmp r0, #2 + beq _081A51C8 + b _081A5202 +_081A51A0: + adds r0, r4, r7 + movs r6, #0 + ldrsb r6, [r0, r6] + movs r1, #1 + adds r0, r7, #0 + eors r0, r1 + adds r0, r4, r0 + movs r1, #0 + ldrsb r1, [r0, r1] + b _081A5202 +_081A51B4: + adds r0, r3, r7 + movs r6, #0 + ldrsb r6, [r0, r6] + movs r1, #1 + adds r0, r7, #0 + eors r0, r1 + adds r0, r3, r0 + movs r1, #0 + ldrsb r1, [r0, r1] + b _081A5202 +_081A51C8: + ldr r3, _081A5210 + mov sb, r3 + movs r5, #0x58 + adds r0, r7, #0 + muls r0, r5, r0 + add r0, sb + ldrh r0, [r0, #0x28] + movs r4, #0x64 + muls r0, r4, r0 + lsls r1, r7, #1 + add r1, r8 + ldrh r1, [r1] + bl __divsi3 + adds r6, r0, #0 + movs r0, #1 + adds r1, r7, #0 + eors r1, r0 + adds r0, r1, #0 + muls r0, r5, r0 + add r0, sb + ldrh r0, [r0, #0x28] + muls r0, r4, r0 + lsls r1, r1, #1 + add r1, r8 + ldrh r1, [r1] + bl __divsi3 + adds r1, r0, #0 +_081A5202: + cmp r6, r1 + ble _081A5228 + movs r4, #2 + cmp r7, #0 + beq _081A5218 + ldr r1, _081A5214 + b _081A521A + .align 2, 0 +_081A5210: .4byte 0x02023D28 +_081A5214: .4byte 0x02022C1C +_081A5218: + ldr r1, _081A5224 +_081A521A: + ldrb r0, [r1] + adds r0, #2 + strb r0, [r1] + b _081A524E + .align 2, 0 +_081A5224: .4byte 0x02022C0C +_081A5228: + cmp r6, r1 + bne _081A524C + movs r4, #1 + cmp r7, #0 + beq _081A523C + ldr r1, _081A5238 + b _081A523E + .align 2, 0 +_081A5238: .4byte 0x02022C1C +_081A523C: + ldr r1, _081A5248 +_081A523E: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _081A524E + .align 2, 0 +_081A5248: .4byte 0x02022C0C +_081A524C: + movs r4, #0 +_081A524E: + ldr r0, _081A5280 + ldr r1, [sp] + mov r2, sl + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #4 + adds r0, r0, r6 + lsls r0, r0, #2 + ldr r1, _081A5284 + adds r0, r0, r1 + adds r1, r4, #0 + bl StartSpriteAnim + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A5280: .4byte 0x085DD794 +_081A5284: .4byte 0x020205AC + thumb_func_end ShowJudgmentSprite + + thumb_func_start SpriteCb_JudgmentIcon +SpriteCb_JudgmentIcon: @ 0x081A5288 + push {lr} + adds r1, r0, #0 + ldr r0, _081A52A0 + ldrb r0, [r0] + cmp r0, #8 + bls _081A529A + adds r0, r1, #0 + bl DestroySprite +_081A529A: + pop {r0} + bx r0 + .align 2, 0 +_081A52A0: .4byte 0x02023FD6 + thumb_func_end SpriteCb_JudgmentIcon + + thumb_func_start BattleArena_InitPoints +BattleArena_InitPoints: @ 0x081A52A4 + ldr r0, _081A52D0 + ldr r2, [r0] + movs r0, #0xa6 + lsls r0, r0, #2 + adds r1, r2, r0 + adds r0, #2 + adds r3, r2, r0 + adds r0, #2 + adds r2, r2, r0 + movs r0, #0 + strb r0, [r1] + strb r0, [r1, #1] + strb r0, [r3] + strb r0, [r3, #1] + ldr r0, _081A52D4 + ldrh r1, [r0, #0x28] + strh r1, [r2] + adds r0, #0x80 + ldrh r0, [r0] + strh r0, [r2, #2] + bx lr + .align 2, 0 +_081A52D0: .4byte 0x02024140 +_081A52D4: .4byte 0x02023D28 + thumb_func_end BattleArena_InitPoints + + thumb_func_start BattleArena_AddMindPoints +BattleArena_AddMindPoints: @ 0x081A52D8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081A52FC + ldr r1, [r1] + movs r2, #0xa6 + lsls r2, r2, #2 + adds r1, r1, r2 + adds r1, r1, r0 + ldr r2, _081A5300 + ldr r0, _081A5304 + ldrh r0, [r0] + adds r0, r0, r2 + ldrb r0, [r0] + ldrb r2, [r1] + adds r0, r0, r2 + strb r0, [r1] + bx lr + .align 2, 0 +_081A52FC: .4byte 0x02024140 +_081A5300: .4byte 0x085DD5F8 +_081A5304: .4byte 0x02023E8E + thumb_func_end BattleArena_AddMindPoints + + thumb_func_start BattleArena_AddSkillPoints +BattleArena_AddSkillPoints: @ 0x081A5308 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + adds r6, r3, #0 + ldr r0, _081A5348 + ldr r2, [r0] + ldr r0, _081A534C + adds r5, r2, r0 + ldr r0, _081A5350 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x12 + ands r0, r1 + cmp r0, #0 + beq _081A53CA + ldr r0, _081A5354 + adds r4, r2, r0 + ldrb r2, [r4] + ldr r0, _081A5358 + lsls r1, r3, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _081A535C + bics r2, r1 + strb r2, [r4] + adds r1, r5, r3 + ldrb r0, [r1] + subs r0, #2 + b _081A53C8 + .align 2, 0 +_081A5348: .4byte 0x02024140 +_081A534C: .4byte 0x0000029A +_081A5350: .4byte 0x02023F24 +_081A5354: .4byte 0x000002A2 +_081A5358: .4byte 0x082FACB4 +_081A535C: + ldr r0, _081A5380 + ldrb r1, [r0] + movs r0, #0x29 + ands r0, r1 + cmp r0, #0 + beq _081A5388 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081A5378 + ldr r0, _081A5384 + ldrb r0, [r0, #6] + cmp r0, #1 + beq _081A53CA +_081A5378: + adds r1, r5, r3 + ldrb r0, [r1] + subs r0, #2 + b _081A53C8 + .align 2, 0 +_081A5380: .4byte 0x02023F20 +_081A5384: .4byte 0x02023FD6 +_081A5388: + movs r0, #6 + ands r0, r1 + cmp r0, #6 + bne _081A5394 + adds r1, r5, r3 + b _081A53C4 +_081A5394: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081A53A4 + adds r1, r5, r3 + ldrb r0, [r1] + adds r0, #2 + b _081A53C8 +_081A53A4: + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _081A53B4 + adds r1, r5, r3 + ldrb r0, [r1] + subs r0, #1 + b _081A53C8 +_081A53B4: + ldr r0, _081A53D0 + lsls r1, r6, #4 + adds r1, r1, r0 + ldrb r0, [r1] + lsls r0, r0, #0x1f + cmp r0, #0 + bne _081A53CA + adds r1, r5, r6 +_081A53C4: + ldrb r0, [r1] + adds r0, #1 +_081A53C8: + strb r0, [r1] +_081A53CA: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081A53D0: .4byte 0x02023FE0 + thumb_func_end BattleArena_AddSkillPoints + + thumb_func_start BattleArena_DeductMindPoints +BattleArena_DeductMindPoints: @ 0x081A53D4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r2, r1, #0 + ldr r0, _081A5404 + ldr r0, [r0] + ldr r5, _081A5408 + adds r3, r0, r5 + movs r0, #0x99 + lsls r0, r0, #1 + cmp r1, r0 + bgt _081A541A + subs r0, #1 + cmp r1, r0 + bge _081A544C + cmp r1, #0xc5 + bgt _081A540C + cmp r1, #0xc3 + bge _081A544C + cmp r1, #0x77 + beq _081A544C + b _081A5454 + .align 2, 0 +_081A5404: .4byte 0x02024140 +_081A5408: .4byte 0x0000029A +_081A540C: + cmp r1, #0xc7 + blt _081A5454 + cmp r1, #0xcc + ble _081A544C + cmp r1, #0xce + beq _081A544C + b _081A5454 +_081A541A: + ldr r0, _081A5434 + cmp r1, r0 + beq _081A544C + cmp r1, r0 + bgt _081A5438 + subs r0, #0x12 + cmp r1, r0 + beq _081A544C + adds r0, #2 + cmp r1, r0 + beq _081A544C + b _081A5454 + .align 2, 0 +_081A5434: .4byte 0x00000147 +_081A5438: + movs r0, #0xad + lsls r0, r0, #1 + cmp r2, r0 + blt _081A5454 + adds r0, #1 + cmp r2, r0 + ble _081A544C + adds r0, #3 + cmp r2, r0 + bne _081A5454 +_081A544C: + adds r1, r3, r4 + ldrb r0, [r1] + subs r0, #3 + strb r0, [r1] +_081A5454: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BattleArena_DeductMindPoints + + thumb_func_start sub_081A545C +sub_081A545C: @ 0x081A545C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081A549C + ldr r3, [r1] + movs r1, #0xa7 + lsls r1, r1, #2 + adds r3, r3, r1 + lsls r2, r0, #1 + adds r2, r2, r3 + ldr r5, _081A54A0 + movs r4, #0x58 + adds r1, r0, #0 + muls r1, r4, r1 + adds r1, r1, r5 + ldrh r1, [r1, #0x28] + strh r1, [r2] + movs r1, #1 + eors r0, r1 + lsls r1, r0, #1 + adds r1, r1, r3 + muls r0, r4, r0 + adds r0, r0, r5 + ldrh r2, [r0, #0x28] + ldrh r0, [r1] + cmp r0, r2 + bls _081A5494 + strh r2, [r1] +_081A5494: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081A549C: .4byte 0x02024140 +_081A54A0: .4byte 0x02023D28 + thumb_func_end sub_081A545C + + thumb_func_start InitArenaChallenge +InitArenaChallenge: @ 0x081A54A4 + push {r4, r5, r6, lr} + ldr r4, _081A54F0 + ldr r1, [r4] + ldr r3, _081A54F4 + adds r0, r1, r3 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r5, r0, #0x1e + ldr r0, _081A54F8 + adds r1, r1, r0 + movs r2, #0 + strb r2, [r1] + ldr r1, [r4] + ldr r6, _081A54FC + adds r0, r1, r6 + strh r2, [r0] + adds r1, r1, r3 + ldrb r2, [r1] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r4] + adds r1, r1, r3 + ldrb r2, [r1] + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + cmp r5, #0 + beq _081A5504 + ldr r0, [r4] + ldr r1, _081A5500 + adds r0, r0, r1 + ldr r2, [r0] + movs r0, #0x80 + b _081A550E + .align 2, 0 +_081A54F0: .4byte 0x03005AF0 +_081A54F4: .4byte 0x00000CA9 +_081A54F8: .4byte 0x00000CA8 +_081A54FC: .4byte 0x00000CB2 +_081A5500: .4byte 0x00000CDC +_081A5504: + ldr r0, [r4] + ldr r3, _081A5544 + adds r0, r0, r3 + ldr r2, [r0] + movs r0, #0x40 +_081A550E: + ands r2, r0 + cmp r2, #0 + bne _081A5520 + ldr r0, [r4] + lsls r1, r5, #1 + ldr r6, _081A5548 + adds r0, r0, r6 + adds r0, r0, r1 + strh r2, [r0] +_081A5520: + ldr r0, _081A554C + ldr r0, [r0] + movs r1, #4 + ldrsb r1, [r0, r1] + movs r2, #5 + ldrsb r2, [r0, r2] + movs r3, #1 + rsbs r3, r3, #0 + movs r0, #0 + bl SetDynamicWarp + ldr r1, _081A5550 + movs r0, #0 + strh r0, [r1] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081A5544: .4byte 0x00000CDC +_081A5548: .4byte 0x00000DDA +_081A554C: .4byte 0x03005AEC +_081A5550: .4byte 0x0203886A + thumb_func_end InitArenaChallenge + + thumb_func_start GetArenaData +GetArenaData: @ 0x081A5554 + push {r4, lr} + ldr r0, _081A5578 + ldr r3, [r0] + ldr r1, _081A557C + adds r0, r3, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r1, r0, #0x1e + ldr r0, _081A5580 + ldrh r0, [r0] + cmp r0, #1 + beq _081A55A0 + cmp r0, #1 + bgt _081A5584 + cmp r0, #0 + beq _081A558A + b _081A55DE + .align 2, 0 +_081A5578: .4byte 0x03005AF0 +_081A557C: .4byte 0x00000CA9 +_081A5580: .4byte 0x02037282 +_081A5584: + cmp r0, #2 + beq _081A55B8 + b _081A55DE +_081A558A: + ldr r0, _081A5598 + ldr r2, _081A559C + adds r1, r3, r2 + ldrh r1, [r1] + strh r1, [r0] + b _081A55DE + .align 2, 0 +_081A5598: .4byte 0x02037290 +_081A559C: .4byte 0x00000DD8 +_081A55A0: + ldr r2, _081A55B0 + lsls r1, r1, #1 + ldr r4, _081A55B4 + adds r0, r3, r4 + adds r0, r0, r1 + ldrh r0, [r0] + b _081A55DC + .align 2, 0 +_081A55B0: .4byte 0x02037290 +_081A55B4: .4byte 0x00000DDA +_081A55B8: + cmp r1, #0 + beq _081A55D0 + ldr r2, _081A55C8 + ldr r1, _081A55CC + adds r0, r3, r1 + ldr r0, [r0] + movs r1, #0x80 + b _081A55DA + .align 2, 0 +_081A55C8: .4byte 0x02037290 +_081A55CC: .4byte 0x00000CDC +_081A55D0: + ldr r2, _081A55E4 + ldr r4, _081A55E8 + adds r0, r3, r4 + ldr r0, [r0] + movs r1, #0x40 +_081A55DA: + ands r0, r1 +_081A55DC: + strh r0, [r2] +_081A55DE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081A55E4: .4byte 0x02037290 +_081A55E8: .4byte 0x00000CDC + thumb_func_end GetArenaData + + thumb_func_start SetArenaData +SetArenaData: @ 0x081A55EC + push {lr} + ldr r0, _081A5610 + ldr r2, [r0] + ldr r1, _081A5614 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r1, r0, #0x1e + ldr r0, _081A5618 + ldrh r0, [r0] + cmp r0, #1 + beq _081A5638 + cmp r0, #1 + bgt _081A561C + cmp r0, #0 + beq _081A5622 + b _081A56AA + .align 2, 0 +_081A5610: .4byte 0x03005AF0 +_081A5614: .4byte 0x00000CA9 +_081A5618: .4byte 0x02037282 +_081A561C: + cmp r0, #2 + beq _081A5650 + b _081A56AA +_081A5622: + ldr r0, _081A5630 + ldrh r1, [r0] + ldr r3, _081A5634 + adds r0, r2, r3 + strh r1, [r0] + b _081A56AA + .align 2, 0 +_081A5630: .4byte 0x02037284 +_081A5634: .4byte 0x00000DD8 +_081A5638: + lsls r1, r1, #1 + ldr r3, _081A5648 + adds r0, r2, r3 + adds r0, r0, r1 + ldr r1, _081A564C + ldrh r1, [r1] + strh r1, [r0] + b _081A56AA + .align 2, 0 +_081A5648: .4byte 0x00000DDA +_081A564C: .4byte 0x02037284 +_081A5650: + cmp r1, #0 + beq _081A5680 + ldr r0, _081A5668 + ldrh r0, [r0] + cmp r0, #0 + beq _081A5670 + ldr r1, _081A566C + adds r0, r2, r1 + ldr r1, [r0] + movs r2, #0x80 + orrs r1, r2 + b _081A56A8 + .align 2, 0 +_081A5668: .4byte 0x02037284 +_081A566C: .4byte 0x00000CDC +_081A5670: + ldr r3, _081A567C + adds r0, r2, r3 + ldr r1, [r0] + movs r2, #0x81 + rsbs r2, r2, #0 + b _081A56A6 + .align 2, 0 +_081A567C: .4byte 0x00000CDC +_081A5680: + ldr r0, _081A5694 + ldrh r0, [r0] + cmp r0, #0 + beq _081A569C + ldr r1, _081A5698 + adds r0, r2, r1 + ldr r1, [r0] + movs r2, #0x40 + orrs r1, r2 + b _081A56A8 + .align 2, 0 +_081A5694: .4byte 0x02037284 +_081A5698: .4byte 0x00000CDC +_081A569C: + ldr r3, _081A56B0 + adds r0, r2, r3 + ldr r1, [r0] + movs r2, #0x41 + rsbs r2, r2, #0 +_081A56A6: + ands r1, r2 +_081A56A8: + str r1, [r0] +_081A56AA: + pop {r0} + bx r0 + .align 2, 0 +_081A56B0: .4byte 0x00000CDC + thumb_func_end SetArenaData + + thumb_func_start sub_081A56B4 +sub_081A56B4: @ 0x081A56B4 + push {r4, lr} + ldr r4, _081A56E8 + ldr r0, [r4] + ldr r1, _081A56EC + ldrh r1, [r1] + ldr r2, _081A56F0 + adds r0, r0, r2 + strb r1, [r0] + movs r0, #0x80 + lsls r0, r0, #7 + movs r1, #0 + bl VarSet + ldr r1, [r4] + ldr r0, _081A56F4 + adds r1, r1, r0 + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + bl sub_081A482C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081A56E8: .4byte 0x03005AF0 +_081A56EC: .4byte 0x02037282 +_081A56F0: .4byte 0x00000CA8 +_081A56F4: .4byte 0x00000CA9 + thumb_func_end sub_081A56B4 + + thumb_func_start SetArenaRewardItem +SetArenaRewardItem: @ 0x081A56F8 + push {r4, r5, lr} + ldr r4, _081A5734 + ldr r1, [r4] + ldr r2, _081A5738 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1d + ldr r2, _081A573C + adds r1, r1, r2 + adds r1, r1, r0 + ldrh r0, [r1] + cmp r0, #0x29 + bls _081A5748 + bl Random + ldr r4, [r4] + ldr r5, _081A5740 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #9 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0xf + adds r0, r0, r5 + ldrh r0, [r0] + ldr r1, _081A5744 + adds r4, r4, r1 + b _081A5766 + .align 2, 0 +_081A5734: .4byte 0x03005AF0 +_081A5738: .4byte 0x00000CA9 +_081A573C: .4byte 0x00000DDA +_081A5740: .4byte 0x085DD7E4 +_081A5744: .4byte 0x00000DD8 +_081A5748: + bl Random + ldr r4, [r4] + ldr r5, _081A5770 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #6 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0xf + adds r0, r0, r5 + ldrh r0, [r0] + ldr r2, _081A5774 + adds r4, r4, r2 +_081A5766: + strh r0, [r4] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081A5770: .4byte 0x085DD7D8 +_081A5774: .4byte 0x00000DD8 + thumb_func_end SetArenaRewardItem + + thumb_func_start GiveArenaRewardItem +GiveArenaRewardItem: @ 0x081A5778 + push {r4, r5, lr} + ldr r4, _081A57B0 + ldr r0, [r4] + ldr r1, _081A57B4 + adds r0, r0, r1 + ldrh r0, [r0] + movs r1, #1 + bl AddBagItem + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #1 + bne _081A57C0 + ldr r0, [r4] + ldr r1, _081A57B4 + adds r0, r0, r1 + ldrh r0, [r0] + ldr r1, _081A57B8 + bl CopyItemName + ldr r0, [r4] + ldr r1, _081A57B4 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0] + ldr r0, _081A57BC + strh r5, [r0] + b _081A57C6 + .align 2, 0 +_081A57B0: .4byte 0x03005AF0 +_081A57B4: .4byte 0x00000DD8 +_081A57B8: .4byte 0x02021C40 +_081A57BC: .4byte 0x02037290 +_081A57C0: + ldr r1, _081A57CC + movs r0, #0 + strh r0, [r1] +_081A57C6: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081A57CC: .4byte 0x02037290 + thumb_func_end GiveArenaRewardItem + + thumb_func_start BufferArenaOpponentName +BufferArenaOpponentName: @ 0x081A57D0 + push {lr} + ldr r0, _081A57E0 + ldr r1, _081A57E4 + ldrh r1, [r1] + bl GetFrontierTrainerName + pop {r0} + bx r0 + .align 2, 0 +_081A57E0: .4byte 0x02021C40 +_081A57E4: .4byte 0x0203886A + thumb_func_end BufferArenaOpponentName + + thumb_func_start DrawArenaRefereeTextBox +DrawArenaRefereeTextBox: @ 0x081A57E8 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0xc + movs r0, #0x16 + mov r8, r0 + movs r5, #7 + movs r4, #1 + str r4, [sp] + movs r6, #6 + str r6, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0xe + bl FillBgTilemapBufferRect + str r4, [sp] + str r6, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #0x1d + movs r3, #0xe + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0x31 + movs r2, #1 + movs r3, #0xe + bl FillBgTilemapBufferRect + movs r6, #2 + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0x32 + movs r2, #2 + movs r3, #0xe + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0x33 + movs r2, #3 + movs r3, #0xe + bl FillBgTilemapBufferRect + mov r0, r8 + str r0, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0x34 + movs r2, #4 + movs r3, #0xe + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0x35 + movs r2, #0x1a + movs r3, #0xe + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0x32 + movs r2, #0x1b + movs r3, #0xe + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0x36 + movs r2, #0x1c + movs r3, #0xe + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0x37 + movs r2, #1 + movs r3, #0xf + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0x38 + movs r2, #2 + movs r3, #0xf + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0x3b + movs r2, #3 + movs r3, #0xf + bl FillBgTilemapBufferRect + mov r0, r8 + str r0, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0x39 + movs r2, #4 + movs r3, #0xf + bl FillBgTilemapBufferRect + ldr r1, _081A5AB0 + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r2, #0x1a + movs r3, #0xf + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0x38 + movs r2, #0x1b + movs r3, #0xf + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0x3a + movs r2, #0x1c + movs r3, #0xf + bl FillBgTilemapBufferRect + str r4, [sp] + str r6, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0x37 + movs r2, #1 + movs r3, #0x10 + bl FillBgTilemapBufferRect + str r4, [sp] + str r6, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0x38 + movs r2, #2 + movs r3, #0x10 + bl FillBgTilemapBufferRect + str r4, [sp] + str r6, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0x3c + movs r2, #3 + movs r3, #0x10 + bl FillBgTilemapBufferRect + mov r0, r8 + str r0, [sp] + str r6, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0x39 + movs r2, #4 + movs r3, #0x10 + bl FillBgTilemapBufferRect + ldr r1, _081A5AB4 + str r4, [sp] + str r6, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r2, #0x1a + movs r3, #0x10 + bl FillBgTilemapBufferRect + str r4, [sp] + str r6, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0x38 + movs r2, #0x1b + movs r3, #0x10 + bl FillBgTilemapBufferRect + str r4, [sp] + str r6, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0x3a + movs r2, #0x1c + movs r3, #0x10 + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0x37 + movs r2, #1 + movs r3, #0x12 + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0x38 + movs r2, #2 + movs r3, #0x12 + bl FillBgTilemapBufferRect + ldr r1, _081A5AB8 + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r2, #3 + movs r3, #0x12 + bl FillBgTilemapBufferRect + mov r0, r8 + str r0, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0x39 + movs r2, #4 + movs r3, #0x12 + bl FillBgTilemapBufferRect + ldr r1, _081A5ABC + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r2, #0x1a + movs r3, #0x12 + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0x38 + movs r2, #0x1b + movs r3, #0x12 + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0x3a + movs r2, #0x1c + movs r3, #0x12 + bl FillBgTilemapBufferRect + ldr r1, _081A5AC0 + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r2, #1 + movs r3, #0x13 + bl FillBgTilemapBufferRect + ldr r6, _081A5AC4 + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + adds r1, r6, #0 + movs r2, #2 + movs r3, #0x13 + bl FillBgTilemapBufferRect + ldr r1, _081A5AC8 + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r2, #3 + movs r3, #0x13 + bl FillBgTilemapBufferRect + ldr r1, _081A5ACC + mov r0, r8 + str r0, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r2, #4 + movs r3, #0x13 + bl FillBgTilemapBufferRect + ldr r1, _081A5AD0 + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r2, #0x1a + movs r3, #0x13 + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + adds r1, r6, #0 + movs r2, #0x1b + movs r3, #0x13 + bl FillBgTilemapBufferRect + ldr r1, _081A5AD4 + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r2, #0x1c + movs r3, #0x13 + bl FillBgTilemapBufferRect + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081A5AB0: .4byte 0x0000043B +_081A5AB4: .4byte 0x0000043C +_081A5AB8: .4byte 0x0000083B +_081A5ABC: .4byte 0x00000C3B +_081A5AC0: .4byte 0x00000831 +_081A5AC4: .4byte 0x00000832 +_081A5AC8: .4byte 0x00000833 +_081A5ACC: .4byte 0x00000834 +_081A5AD0: .4byte 0x00000835 +_081A5AD4: .4byte 0x00000836 + thumb_func_end DrawArenaRefereeTextBox + + thumb_func_start RemoveArenaRefereeTextBox +RemoveArenaRefereeTextBox: @ 0x081A5AD8 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0xc + movs r5, #0 + movs r0, #0x1a + mov r8, r0 + movs r4, #1 + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #3 + movs r2, #0 + movs r3, #0xe + bl FillBgTilemapBufferRect + movs r6, #4 + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #4 + movs r2, #1 + movs r3, #0xe + bl FillBgTilemapBufferRect + mov r0, r8 + str r0, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #5 + movs r2, #2 + movs r3, #0xe + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #6 + movs r2, #0x1c + movs r3, #0xe + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #7 + movs r2, #0x1d + movs r3, #0xe + bl FillBgTilemapBufferRect + str r4, [sp] + str r6, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #8 + movs r2, #0 + movs r3, #0xf + bl FillBgTilemapBufferRect + str r4, [sp] + str r6, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #9 + movs r2, #1 + movs r3, #0xf + bl FillBgTilemapBufferRect + mov r0, r8 + str r0, [sp] + str r6, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0xa + movs r2, #2 + movs r3, #0xf + bl FillBgTilemapBufferRect + str r4, [sp] + str r6, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0xb + movs r2, #0x1c + movs r3, #0xf + bl FillBgTilemapBufferRect + str r4, [sp] + str r6, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0xc + movs r2, #0x1d + movs r3, #0xf + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0xd + movs r2, #0 + movs r3, #0x13 + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0xe + movs r2, #1 + movs r3, #0x13 + bl FillBgTilemapBufferRect + mov r0, r8 + str r0, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0xf + movs r2, #2 + movs r3, #0x13 + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0x10 + movs r2, #0x1c + movs r3, #0x13 + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0x11 + movs r2, #0x1d + movs r3, #0x13 + bl FillBgTilemapBufferRect + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RemoveArenaRefereeTextBox + diff --git a/asm/battle_bg.s b/asm/battle_bg.s new file mode 100644 index 0000000..f542123 --- /dev/null +++ b/asm/battle_bg.s @@ -0,0 +1,1997 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start BattleInitBgsAndWindows +BattleInitBgsAndWindows: @ 0x080354B0 + push {r4, lr} + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _080354EC + movs r0, #0 + movs r2, #4 + bl InitBgsFromTemplates + ldr r0, _080354F0 + ldr r1, [r0] + movs r0, #0x80 + lsls r0, r0, #0xb + ands r1, r0 + cmp r1, #0 + beq _080354FC + ldr r0, _080354F4 + adds r0, #0x24 + movs r1, #1 + strb r1, [r0] + ldr r4, _080354F8 + ldr r1, [r4] + movs r0, #1 + bl SetBgTilemapBuffer + ldr r1, [r4] + movs r0, #2 + bl SetBgTilemapBuffer + b _08035502 + .align 2, 0 +_080354EC: .4byte 0x082EB860 +_080354F0: .4byte 0x02022C90 +_080354F4: .4byte 0x02024118 +_080354F8: .4byte 0x02022D04 +_080354FC: + ldr r0, _08035520 + adds r0, #0x24 + strb r1, [r0] +_08035502: + ldr r1, _08035524 + ldr r0, _08035520 + adds r0, #0x24 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl InitWindows + bl DeactivateAllTextPrinters + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08035520: .4byte 0x02024118 +_08035524: .4byte 0x082EB9F8 + thumb_func_end BattleInitBgsAndWindows + + thumb_func_start sub_08035528 +sub_08035528: @ 0x08035528 + push {lr} + movs r0, #2 + bl DisableInterrupts + movs r0, #0xc5 + bl EnableInterrupts + bl BattleInitBgsAndWindows + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + ldr r1, _08035560 + movs r0, #0 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 +_08035560: .4byte 0x0000B040 + thumb_func_end sub_08035528 + + thumb_func_start LoadBattleMenuWindowGfx +LoadBattleMenuWindowGfx: @ 0x08035564 + push {lr} + movs r0, #2 + movs r1, #0x12 + movs r2, #0x10 + bl LoadUserWindowBorderGfx + movs r0, #2 + movs r1, #0x22 + movs r2, #0x10 + bl LoadUserWindowBorderGfx + ldr r0, _080355B8 + movs r1, #0x50 + movs r2, #0x20 + bl LoadCompressedPalette + ldr r0, _080355BC + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xb + ands r0, r1 + cmp r0, #0 + beq _080355B2 + movs r0, #0x70 + bl Menu_LoadStdPalAt + movs r0, #0 + movs r1, #0x30 + movs r2, #0x70 + bl LoadMessageBoxGfx + ldr r0, _080355C0 + adds r0, #0xec + movs r1, #0 + strh r1, [r0] + ldr r1, _080355C4 + movs r2, #1 + bl CpuSet +_080355B2: + pop {r0} + bx r0 + .align 2, 0 +_080355B8: .4byte 0x08D855E4 +_080355BC: .4byte 0x02022C90 +_080355C0: .4byte 0x020373B4 +_080355C4: .4byte 0x020378A0 + thumb_func_end LoadBattleMenuWindowGfx + + thumb_func_start DrawMainBattleBackground +DrawMainBattleBackground: @ 0x080355C8 + push {r4, r5, lr} + ldr r0, _080355EC + ldr r1, [r0] + ldr r0, _080355F0 + ands r0, r1 + cmp r0, #0 + beq _08035608 + ldr r0, _080355F4 + ldr r1, _080355F8 + bl LZDecompressWram + ldr r0, _080355FC + ldr r1, _08035600 + bl LZDecompressWram + ldr r0, _08035604 + b _080358A6 + .align 2, 0 +_080355EC: .4byte 0x02022C90 +_080355F0: .4byte 0x023F0902 +_080355F4: .4byte 0x08D7C4E4 +_080355F8: .4byte 0x06008000 +_080355FC: .4byte 0x08D7CACC +_08035600: .4byte 0x0600D000 +_08035604: .4byte 0x08D7CA90 +_08035608: + movs r0, #0x80 + lsls r0, r0, #0x15 + ands r0, r1 + cmp r0, #0 + beq _0803563C + ldr r0, _08035628 + ldr r1, _0803562C + bl LZDecompressWram + ldr r0, _08035630 + ldr r1, _08035634 + bl LZDecompressWram + ldr r0, _08035638 + b _080358A6 + .align 2, 0 +_08035628: .4byte 0x08D7BBB8 +_0803562C: .4byte 0x06008000 +_08035630: .4byte 0x08D7C1F8 +_08035634: .4byte 0x0600D000 +_08035638: .4byte 0x08D7DFD4 +_0803563C: + movs r0, #0x80 + lsls r0, r0, #0x16 + ands r0, r1 + cmp r0, #0 + beq _08035670 + ldr r0, _0803565C + ldr r1, _08035660 + bl LZDecompressWram + ldr r0, _08035664 + ldr r1, _08035668 + bl LZDecompressWram + ldr r0, _0803566C + b _080358A6 + .align 2, 0 +_0803565C: .4byte 0x08D7A1AC +_08035660: .4byte 0x06008000 +_08035664: .4byte 0x08D7A7C4 +_08035668: .4byte 0x0600D000 +_0803566C: .4byte 0x08D7DF98 +_08035670: + movs r0, #0x80 + lsls r0, r0, #0x17 + ands r0, r1 + cmp r0, #0 + beq _080356A4 + ldr r0, _08035690 + ldr r1, _08035694 + bl LZDecompressWram + ldr r0, _08035698 + ldr r1, _0803569C + bl LZDecompressWram + ldr r0, _080356A0 + b _080358A6 + .align 2, 0 +_08035690: .4byte 0x08D7D634 +_08035694: .4byte 0x06008000 +_08035698: .4byte 0x08D7DCA8 +_0803569C: .4byte 0x0600D000 +_080356A0: .4byte 0x08D7E2D8 +_080356A4: + movs r0, #8 + ands r1, r0 + cmp r1, #0 + beq _08035718 + ldr r1, _080356D0 + ldr r0, _080356D4 + ldrh r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r1 + ldrb r0, [r0, #1] + cmp r0, #0x20 + bne _080356EC + ldr r0, _080356D8 + ldr r1, _080356DC + bl LZDecompressWram + ldr r0, _080356E0 + ldr r1, _080356E4 + bl LZDecompressWram + ldr r0, _080356E8 + b _080358A6 + .align 2, 0 +_080356D0: .4byte 0x082E383C +_080356D4: .4byte 0x0203886A +_080356D8: .4byte 0x08D7C4E4 +_080356DC: .4byte 0x06008000 +_080356E0: .4byte 0x08D7CACC +_080356E4: .4byte 0x0600D000 +_080356E8: .4byte 0x08D7E068 +_080356EC: + cmp r0, #0x26 + bne _08035718 + ldr r0, _08035704 + ldr r1, _08035708 + bl LZDecompressWram + ldr r0, _0803570C + ldr r1, _08035710 + bl LZDecompressWram + ldr r0, _08035714 + b _080358A6 + .align 2, 0 +_08035704: .4byte 0x08D7CD7C +_08035708: .4byte 0x06008000 +_0803570C: .4byte 0x08D7D384 +_08035710: .4byte 0x0600D000 +_08035714: .4byte 0x08D7E29C +_08035718: + bl GetCurrentMapBattleScene + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #8 + bhi _08035758 + lsls r0, r0, #2 + ldr r1, _08035730 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08035730: .4byte 0x08035734 +_08035734: @ jump table + .4byte _08035758 @ case 0 + .4byte _080357A4 @ case 1 + .4byte _080357CC @ case 2 + .4byte _080357F4 @ case 3 + .4byte _0803581C @ case 4 + .4byte _08035844 @ case 5 + .4byte _0803586C @ case 6 + .4byte _08035894 @ case 7 + .4byte _080358C4 @ case 8 +_08035758: + ldr r4, _08035794 + ldr r5, _08035798 + ldrb r1, [r5] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r0, [r0] + ldr r1, _0803579C + bl LZDecompressWram + ldrb r1, [r5] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #4 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _080357A0 + bl LZDecompressWram + ldrb r1, [r5] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, #0x10 + adds r0, r0, r4 + ldr r0, [r0] + b _080358A6 + .align 2, 0 +_08035794: .4byte 0x082EBA00 +_08035798: .4byte 0x02022C94 +_0803579C: .4byte 0x06008000 +_080357A0: .4byte 0x0600D000 +_080357A4: + ldr r0, _080357B8 + ldr r1, _080357BC + bl LZDecompressWram + ldr r0, _080357C0 + ldr r1, _080357C4 + bl LZDecompressWram + ldr r0, _080357C8 + b _080358A6 + .align 2, 0 +_080357B8: .4byte 0x08D7C4E4 +_080357BC: .4byte 0x06008000 +_080357C0: .4byte 0x08D7CACC +_080357C4: .4byte 0x0600D000 +_080357C8: .4byte 0x08D7E02C +_080357CC: + ldr r0, _080357E0 + ldr r1, _080357E4 + bl LZDecompressWram + ldr r0, _080357E8 + ldr r1, _080357EC + bl LZDecompressWram + ldr r0, _080357F0 + b _080358A6 + .align 2, 0 +_080357E0: .4byte 0x08D7CD7C +_080357E4: .4byte 0x06008000 +_080357E8: .4byte 0x08D7D384 +_080357EC: .4byte 0x0600D000 +_080357F0: .4byte 0x08D7E104 +_080357F4: + ldr r0, _08035808 + ldr r1, _0803580C + bl LZDecompressWram + ldr r0, _08035810 + ldr r1, _08035814 + bl LZDecompressWram + ldr r0, _08035818 + b _080358A6 + .align 2, 0 +_08035808: .4byte 0x08D7CD7C +_0803580C: .4byte 0x06008000 +_08035810: .4byte 0x08D7D384 +_08035814: .4byte 0x0600D000 +_08035818: .4byte 0x08D7E0A4 +_0803581C: + ldr r0, _08035830 + ldr r1, _08035834 + bl LZDecompressWram + ldr r0, _08035838 + ldr r1, _0803583C + bl LZDecompressWram + ldr r0, _08035840 + b _080358A6 + .align 2, 0 +_08035830: .4byte 0x08D7CD7C +_08035834: .4byte 0x06008000 +_08035838: .4byte 0x08D7D384 +_0803583C: .4byte 0x0600D000 +_08035840: .4byte 0x08D7E170 +_08035844: + ldr r0, _08035858 + ldr r1, _0803585C + bl LZDecompressWram + ldr r0, _08035860 + ldr r1, _08035864 + bl LZDecompressWram + ldr r0, _08035868 + b _080358A6 + .align 2, 0 +_08035858: .4byte 0x08D7CD7C +_0803585C: .4byte 0x06008000 +_08035860: .4byte 0x08D7D384 +_08035864: .4byte 0x0600D000 +_08035868: .4byte 0x08D7E1C0 +_0803586C: + ldr r0, _08035880 + ldr r1, _08035884 + bl LZDecompressWram + ldr r0, _08035888 + ldr r1, _0803588C + bl LZDecompressWram + ldr r0, _08035890 + b _080358A6 + .align 2, 0 +_08035880: .4byte 0x08D7CD7C +_08035884: .4byte 0x06008000 +_08035888: .4byte 0x08D7D384 +_0803588C: .4byte 0x0600D000 +_08035890: .4byte 0x08D7E208 +_08035894: + ldr r0, _080358B0 + ldr r1, _080358B4 + bl LZDecompressWram + ldr r0, _080358B8 + ldr r1, _080358BC + bl LZDecompressWram + ldr r0, _080358C0 +_080358A6: + movs r1, #0x20 + movs r2, #0x60 + bl LoadCompressedPalette + b _080358DE + .align 2, 0 +_080358B0: .4byte 0x08D7CD7C +_080358B4: .4byte 0x06008000 +_080358B8: .4byte 0x08D7D384 +_080358BC: .4byte 0x0600D000 +_080358C0: .4byte 0x08D7E24C +_080358C4: + ldr r0, _080358E4 + ldr r1, _080358E8 + bl LZDecompressWram + ldr r0, _080358EC + ldr r1, _080358F0 + bl LZDecompressWram + ldr r0, _080358F4 + movs r1, #0x20 + movs r2, #0x60 + bl LoadCompressedPalette +_080358DE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080358E4: .4byte 0x08D7C4E4 +_080358E8: .4byte 0x06008000 +_080358EC: .4byte 0x08D7CACC +_080358F0: .4byte 0x0600D000 +_080358F4: .4byte 0x08D7CA90 + thumb_func_end DrawMainBattleBackground + + thumb_func_start LoadBattleTextboxAndBackground +LoadBattleTextboxAndBackground: @ 0x080358F8 + push {lr} + movs r0, #0x8c + lsls r0, r0, #0x14 + movs r1, #0xc0 + lsls r1, r1, #0x13 + bl LZDecompressWram + ldr r1, _08035930 + movs r0, #0 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + movs r0, #0 + bl CopyBgTilemapBufferToVram + ldr r0, _08035934 + movs r1, #0 + movs r2, #0x40 + bl LoadCompressedPalette + bl LoadBattleMenuWindowGfx + bl DrawMainBattleBackground + pop {r0} + bx r0 + .align 2, 0 +_08035930: .4byte 0x08C00530 +_08035934: .4byte 0x08C004EC + thumb_func_end LoadBattleTextboxAndBackground + + thumb_func_start sub_08035938 +sub_08035938: @ 0x08035938 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x18 + ldr r4, [sp, #0x34] + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r7, r6, #0 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov ip, r3 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov sb, r4 + movs r4, #0 + ldr r0, _08035990 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08035A20 + ldr r0, _08035994 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r2, #0x12 + ldrsh r0, [r1, r2] + cmp r0, #0 + beq _080359AA + cmp r5, #1 + beq _080359D2 + cmp r5, #1 + bgt _08035998 + cmp r5, #0 + beq _080359A2 + b _080359DC + .align 2, 0 +_08035990: .4byte 0x02022C90 +_08035994: .4byte 0x03005B60 +_08035998: + cmp r5, #2 + beq _080359A6 + cmp r5, #3 + beq _080359C6 + b _080359DC +_080359A2: + ldrh r0, [r1, #0xe] + b _080359C8 +_080359A6: + ldrh r1, [r1, #0xe] + b _080359D4 +_080359AA: + cmp r5, #1 + beq _080359C6 + cmp r5, #1 + bgt _080359B8 + cmp r5, #0 + beq _080359C2 + b _080359DC +_080359B8: + cmp r5, #2 + beq _080359CE + cmp r5, #3 + beq _080359D2 + b _080359DC +_080359C2: + ldrh r0, [r1, #0xe] + b _080359C8 +_080359C6: + ldrh r0, [r1, #0x10] +_080359C8: + movs r4, #0x3f + ands r4, r0 + b _080359DC +_080359CE: + ldrh r1, [r1, #0xe] + b _080359D4 +_080359D2: + ldrh r1, [r1, #0x10] +_080359D4: + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r1 + lsrs r4, r0, #6 +_080359DC: + movs r2, #0 + movs r6, #3 + ldr r0, _08035A1C + adds r5, r0, #0 + add r3, sp, #0xc +_080359E6: + lsls r1, r2, #1 + adds r0, r6, #0 + lsls r0, r1 + ands r0, r4 + asrs r0, r1 + adds r0, r0, r5 + strh r0, [r3] + adds r3, #2 + adds r2, #1 + cmp r2, #2 + ble _080359E6 + movs r0, #3 + str r0, [sp] + movs r0, #1 + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + mov r0, r8 + add r1, sp, #0xc + mov r2, ip + mov r3, sb + bl CopyToBgTilemapBufferRect_ChangePalette + mov r0, r8 + bl CopyBgTilemapBufferToVram + b _08035A8A + .align 2, 0 +_08035A1C: .4byte 0x00006001 +_08035A20: + ldr r0, _08035A38 + adds r0, #0x25 + ldrb r0, [r0] + cmp r5, r0 + bne _08035A40 + ldr r1, _08035A3C + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r4, [r0, #0xe] + b _08035A4C + .align 2, 0 +_08035A38: .4byte 0x02024118 +_08035A3C: .4byte 0x03005B60 +_08035A40: + ldr r1, _08035A98 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r4, [r0, #0x10] +_08035A4C: + movs r2, #0 + movs r6, #3 + ldr r0, _08035A9C + adds r5, r0, #0 + add r3, sp, #0xc +_08035A56: + lsls r1, r2, #1 + adds r0, r6, #0 + lsls r0, r1 + ands r0, r4 + asrs r0, r1 + adds r0, r0, r5 + strh r0, [r3] + adds r3, #2 + adds r2, #1 + cmp r2, #5 + ble _08035A56 + movs r0, #6 + str r0, [sp] + movs r0, #1 + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + mov r0, r8 + add r1, sp, #0xc + mov r2, ip + mov r3, sb + bl CopyToBgTilemapBufferRect_ChangePalette + mov r0, r8 + bl CopyBgTilemapBufferToVram +_08035A8A: + add sp, #0x18 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08035A98: .4byte 0x03005B60 +_08035A9C: .4byte 0x00006001 + thumb_func_end sub_08035938 + + thumb_func_start sub_08035AA0 +sub_08035AA0: @ 0x08035AA0 + push {lr} + ldr r0, _08035AB4 + ldrb r2, [r0] + cmp r2, #3 + bne _08035ABC + ldr r0, _08035AB8 + movs r1, #0x15 + bl sub_0814FA04 + b _08035BBC + .align 2, 0 +_08035AB4: .4byte 0x02023FDE +_08035AB8: .4byte 0x085ABC8E +_08035ABC: + ldr r0, _08035AEC + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08035B36 + cmp r2, #1 + bne _08035B02 + ldr r2, _08035AF0 + ldr r0, _08035AF4 + adds r0, #0x25 + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0, #0x18] + cmp r0, #1 + beq _08035B50 + cmp r0, #1 + bgt _08035AF8 + cmp r0, #0 + beq _08035B8A + b _08035BBC + .align 2, 0 +_08035AEC: .4byte 0x02022C90 +_08035AF0: .4byte 0x020226A0 +_08035AF4: .4byte 0x02024118 +_08035AF8: + cmp r0, #2 + beq _08035B8A + cmp r0, #3 + bne _08035BBC + b _08035B50 +_08035B02: + ldr r2, _08035B24 + ldr r0, _08035B28 + adds r0, #0x25 + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0, #0x18] + cmp r0, #1 + beq _08035B8A + cmp r0, #1 + bgt _08035B2C + cmp r0, #0 + beq _08035B50 + b _08035BBC + .align 2, 0 +_08035B24: .4byte 0x020226A0 +_08035B28: .4byte 0x02024118 +_08035B2C: + cmp r0, #2 + beq _08035B50 + cmp r0, #3 + bne _08035BBC + b _08035B8A +_08035B36: + cmp r2, #1 + bne _08035B74 + ldr r2, _08035B64 + ldr r0, _08035B68 + adds r0, #0x25 + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0, #0x18] + cmp r0, #0 + beq _08035B8A +_08035B50: + ldr r0, _08035B6C + movs r1, #0x17 + bl sub_0814FA04 + ldr r0, _08035B70 + movs r1, #0x16 + bl sub_0814FA04 + b _08035BBC + .align 2, 0 +_08035B64: .4byte 0x020226A0 +_08035B68: .4byte 0x02024118 +_08035B6C: .4byte 0x085ABC82 +_08035B70: .4byte 0x085ABC88 +_08035B74: + ldr r2, _08035B9C + ldr r0, _08035BA0 + adds r0, #0x25 + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0, #0x18] + cmp r0, #0 + beq _08035BAC +_08035B8A: + ldr r0, _08035BA4 + movs r1, #0x16 + bl sub_0814FA04 + ldr r0, _08035BA8 + movs r1, #0x17 + bl sub_0814FA04 + b _08035BBC + .align 2, 0 +_08035B9C: .4byte 0x020226A0 +_08035BA0: .4byte 0x02024118 +_08035BA4: .4byte 0x085ABC82 +_08035BA8: .4byte 0x085ABC88 +_08035BAC: + ldr r0, _08035BC0 + movs r1, #0x17 + bl sub_0814FA04 + ldr r0, _08035BC4 + movs r1, #0x16 + bl sub_0814FA04 +_08035BBC: + pop {r0} + bx r0 + .align 2, 0 +_08035BC0: .4byte 0x085ABC82 +_08035BC4: .4byte 0x085ABC88 + thumb_func_end sub_08035AA0 + + thumb_func_start sub_08035BC8 +sub_08035BC8: @ 0x08035BC8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r1, _08035BF4 + lsls r0, r7, #2 + mov r8, r0 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r5, r0, r1 + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #1 + bne _08035BEA + b _08035D28 +_08035BEA: + cmp r0, #1 + bgt _08035BF8 + cmp r0, #0 + beq _08035C00 + b _08035F9C + .align 2, 0 +_08035BF4: .4byte 0x03005B60 +_08035BF8: + cmp r0, #2 + bne _08035BFE + b _08035DC8 +_08035BFE: + b _08035F9C +_08035C00: + ldr r0, _08035C2C + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08035C9C + mov r6, r8 + ldr r4, _08035C30 + movs r5, #3 +_08035C12: + add r0, sp, #4 + adds r1, r4, #0 + bl StringCopy7 + ldrh r0, [r4, #0x10] + cmp r0, #1 + beq _08035C4C + cmp r0, #1 + bgt _08035C34 + cmp r0, #0 + beq _08035C3E + b _08035C92 + .align 2, 0 +_08035C2C: .4byte 0x02022C90 +_08035C30: .4byte 0x020226A8 +_08035C34: + cmp r0, #2 + beq _08035C60 + cmp r0, #3 + beq _08035C7A + b _08035C92 +_08035C3E: + add r0, sp, #4 + movs r1, #0x11 + bl sub_0814FA04 + ldrb r1, [r4, #0x10] + movs r0, #4 + b _08035C6C +_08035C4C: + add r0, sp, #4 + movs r1, #0x12 + bl sub_0814FA04 + ldrb r1, [r4, #0x10] + movs r0, #4 + str r0, [sp] + adds r0, r7, #0 + movs r2, #2 + b _08035C72 +_08035C60: + add r0, sp, #4 + movs r1, #0x13 + bl sub_0814FA04 + ldrb r1, [r4, #0x10] + movs r0, #8 +_08035C6C: + str r0, [sp] + adds r0, r7, #0 + movs r2, #1 +_08035C72: + movs r3, #2 + bl sub_08035938 + b _08035C92 +_08035C7A: + add r0, sp, #4 + movs r1, #0x14 + bl sub_0814FA04 + ldrb r1, [r4, #0x10] + movs r0, #8 + str r0, [sp] + adds r0, r7, #0 + movs r2, #2 + movs r3, #2 + bl sub_08035938 +_08035C92: + adds r4, #0x1c + subs r5, #1 + cmp r5, #0 + bge _08035C12 + b _08035D0C +_08035C9C: + ldr r0, _08035D1C + adds r0, #0x25 + ldrb r5, [r0] + movs r0, #1 + adds r6, r5, #0 + eors r6, r0 + adds r1, r6, #0 + ldr r4, _08035D20 + lsls r0, r5, #3 + subs r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r0, [r0, #0x18] + cmp r0, #0 + beq _08035CBE + adds r6, r5, #0 + adds r5, r1, #0 +_08035CBE: + lsls r1, r5, #3 + subs r1, r1, r5 + lsls r1, r1, #2 + adds r4, #8 + adds r1, r1, r4 + add r0, sp, #4 + bl StringCopy7 + add r0, sp, #4 + movs r1, #0xf + bl sub_0814FA04 + lsls r1, r6, #3 + subs r1, r1, r6 + lsls r1, r1, #2 + adds r1, r1, r4 + add r0, sp, #4 + bl StringCopy7 + add r0, sp, #4 + movs r1, #0x10 + bl sub_0814FA04 + movs r4, #7 + str r4, [sp] + adds r0, r7, #0 + adds r1, r5, #0 + movs r2, #1 + movs r3, #2 + bl sub_08035938 + str r4, [sp] + adds r0, r7, #0 + adds r1, r6, #0 + movs r2, #2 + movs r3, #2 + bl sub_08035938 + mov r6, r8 +_08035D0C: + ldr r0, _08035D24 + adds r1, r6, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _08035F9C + .align 2, 0 +_08035D1C: .4byte 0x02024118 +_08035D20: .4byte 0x020226A0 +_08035D24: .4byte 0x03005B60 +_08035D28: + ldr r0, _08035DA4 + bl AllocSpritePalette + lsls r0, r0, #0x18 + ldr r2, _08035DA8 + lsrs r0, r0, #0x13 + ldr r3, _08035DAC + adds r0, r0, r3 + adds r2, r0, r2 + ldr r1, _08035DB0 + adds r0, r0, r1 + ldr r1, _08035DB4 + strh r1, [r0] + strh r1, [r2] + ldr r0, _08035DB8 + movs r1, #0x6f + movs r2, #0x50 + movs r3, #0 + bl CreateSprite + ldr r4, _08035DBC + ldr r1, [r4] + adds r1, #0x7d + strb r0, [r1] + ldr r0, _08035DC0 + movs r1, #0x81 + movs r2, #0x50 + movs r3, #0 + bl CreateSprite + ldr r1, [r4] + adds r1, #0x7e + strb r0, [r1] + ldr r3, _08035DC4 + ldr r0, [r4] + adds r0, #0x7d + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + ldr r0, [r4] + adds r0, #0x7e + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + b _08035F9C + .align 2, 0 +_08035DA4: .4byte 0x00002710 +_08035DA8: .4byte 0x020373B4 +_08035DAC: .4byte 0x0000021E +_08035DB0: .4byte 0x020377B4 +_08035DB4: .4byte 0x00007FFF +_08035DB8: .4byte 0x082EB828 +_08035DBC: .4byte 0x02024140 +_08035DC0: .4byte 0x082EB840 +_08035DC4: .4byte 0x020205AC +_08035DC8: + movs r1, #0x12 + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _08035E30 + ldr r4, _08035E1C + ldrh r0, [r5, #0xa] + bl Sin2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _08035DE2 + adds r0, #0x1f +_08035DE2: + asrs r1, r0, #5 + movs r2, #0x14 + rsbs r2, r2, #0 + adds r0, r2, #0 + subs r0, r0, r1 + strh r0, [r4] + ldr r4, _08035E20 + ldrh r0, [r5, #0xc] + bl Sin2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _08035E00 + adds r0, #0x1f +_08035E00: + asrs r1, r0, #5 + movs r3, #0x8c + rsbs r3, r3, #0 + adds r0, r3, #0 + subs r0, r0, r1 + strh r0, [r4] + ldr r0, _08035E24 + ldr r2, _08035E28 + adds r1, r2, #0 + strh r1, [r0] + ldr r0, _08035E2C + strh r1, [r0] + b _08035E9C + .align 2, 0 +_08035E1C: .4byte 0x02022ACC +_08035E20: .4byte 0x02022AD0 +_08035E24: .4byte 0x02022ACE +_08035E28: .4byte 0x0000FFDC +_08035E2C: .4byte 0x02022AD2 +_08035E30: + ldr r4, _08035EC0 + ldrh r0, [r5, #0xa] + bl Sin2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _08035E42 + adds r0, #0x1f +_08035E42: + asrs r1, r0, #5 + movs r3, #0x14 + rsbs r3, r3, #0 + adds r0, r3, #0 + subs r0, r0, r1 + strh r0, [r4] + ldr r4, _08035EC4 + ldrh r0, [r5, #0xa] + bl Cos2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _08035E60 + adds r0, #0x1f +_08035E60: + asrs r0, r0, #5 + subs r0, #0xa4 + strh r0, [r4] + ldr r4, _08035EC8 + ldrh r0, [r5, #0xc] + bl Sin2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _08035E78 + adds r0, #0x1f +_08035E78: + asrs r1, r0, #5 + movs r2, #0x8c + rsbs r2, r2, #0 + adds r0, r2, #0 + subs r0, r0, r1 + strh r0, [r4] + ldr r4, _08035ECC + ldrh r0, [r5, #0xc] + bl Cos2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _08035E96 + adds r0, #0x1f +_08035E96: + asrs r0, r0, #5 + subs r0, #0xa4 + strh r0, [r4] +_08035E9C: + ldr r1, _08035ED0 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r1, r0, r1 + ldrh r0, [r1, #0xc] + movs r2, #0xc + ldrsh r3, [r1, r2] + mov r8, r3 + cmp r3, #0 + beq _08035ED4 + subs r0, #2 + strh r0, [r1, #0xc] + ldrh r0, [r1, #0xa] + adds r0, #2 + strh r0, [r1, #0xa] + b _08035F9C + .align 2, 0 +_08035EC0: .4byte 0x02022ACC +_08035EC4: .4byte 0x02022ACE +_08035EC8: .4byte 0x02022AD0 +_08035ECC: .4byte 0x02022AD2 +_08035ED0: .4byte 0x03005B60 +_08035ED4: + movs r3, #0x12 + ldrsh r0, [r1, r3] + cmp r0, #0 + beq _08035EE0 + bl sub_08035AA0 +_08035EE0: + movs r0, #0x78 + bl PlaySE + adds r0, r7, #0 + bl DestroyTask + ldr r4, _08035FA8 + ldr r5, _08035FAC + ldr r0, [r5] + adds r0, #0x7d + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + adds r1, #0x3e + ldrb r3, [r1] + movs r2, #5 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r3 + strb r0, [r1] + ldr r0, [r5] + adds r0, #0x7e + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + ldr r5, [r5] + adds r6, r5, #0 + adds r6, #0x7e + ldrb r0, [r6] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r4 + ldrh r3, [r2, #4] + lsls r1, r3, #0x16 + lsrs r1, r1, #0x16 + adds r1, #0x40 + ldr r7, _08035FB0 + adds r0, r7, #0 + ands r1, r0 + ldr r0, _08035FB4 + ands r0, r3 + orrs r0, r1 + strh r0, [r2, #4] + adds r5, #0x7d + ldrb r1, [r5] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + mov r1, r8 + strh r1, [r0, #0x2e] + ldrb r1, [r6] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #1 + strh r1, [r0, #0x2e] + ldrb r1, [r5] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r0, #0x20] + strh r1, [r0, #0x30] + ldrb r1, [r6] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r0, #0x20] + strh r1, [r0, #0x30] + ldrb r1, [r5] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + mov r2, r8 + strh r2, [r0, #0x32] + ldrb r1, [r6] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + strh r2, [r0, #0x32] +_08035F9C: + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08035FA8: .4byte 0x020205AC +_08035FAC: .4byte 0x02024140 +_08035FB0: .4byte 0x000003FF +_08035FB4: .4byte 0xFFFFFC00 + thumb_func_end sub_08035BC8 + + thumb_func_start DrawBattleEntryBackground +DrawBattleEntryBackground: @ 0x08035FB8 + push {r4, r5, lr} + ldr r0, _0803603C + ldr r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0803606C + ldr r0, _08036040 + ldr r1, _08036044 + bl LZDecompressWram + ldr r0, _08036048 + ldr r1, _0803604C + bl LZDecompressWram + ldr r0, _08036050 + movs r1, #0x60 + movs r2, #0x20 + bl LoadCompressedPalette + movs r0, #1 + movs r1, #3 + movs r2, #1 + bl SetBgAttribute + ldr r1, _08036054 + movs r0, #0xa + bl SetGpuReg + ldr r4, _08036058 + movs r0, #1 + adds r1, r4, #0 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + movs r0, #2 + adds r1, r4, #0 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + movs r0, #1 + bl CopyBgTilemapBufferToVram + movs r0, #2 + bl CopyBgTilemapBufferToVram + movs r0, #0x48 + movs r1, #0x36 + bl SetGpuReg + movs r0, #0x4a + movs r1, #0x36 + bl SetGpuReg + ldr r0, _0803605C + ldr r2, _08036060 + adds r1, r2, #0 + strh r1, [r0] + ldr r0, _08036064 + strh r1, [r0] + ldr r0, _08036068 + bl LoadCompressedSpriteSheetUsingHeap + b _0803620C + .align 2, 0 +_0803603C: .4byte 0x02022C90 +_08036040: .4byte 0x08D77994 +_08036044: .4byte 0x06004000 +_08036048: .4byte 0x08D77BB0 +_0803604C: .4byte 0x06010000 +_08036050: .4byte 0x08D77B88 +_08036054: .4byte 0x00005C04 +_08036058: .4byte 0x08D77A7C +_0803605C: .4byte 0x02022ACE +_08036060: .4byte 0x0000FF5C +_08036064: .4byte 0x02022AD2 +_08036068: .4byte 0x082EB858 +_0803606C: + ldr r0, _08036094 + ands r0, r1 + cmp r0, #0 + beq _080360F0 + movs r0, #0x80 + lsls r0, r0, #0xf + ands r1, r0 + cmp r1, #0 + beq _08036088 + ldr r0, _08036098 + ldrh r1, [r0] + ldr r0, _0803609C + cmp r1, r0 + bne _080360AC +_08036088: + ldr r0, _080360A0 + ldr r1, _080360A4 + bl LZDecompressWram + ldr r0, _080360A8 + b _080361E2 + .align 2, 0 +_08036094: .4byte 0x023F0902 +_08036098: .4byte 0x0203886E +_0803609C: .4byte 0x00000C03 +_080360A0: .4byte 0x08D82178 +_080360A4: .4byte 0x06004000 +_080360A8: .4byte 0x08D82588 +_080360AC: + movs r0, #1 + movs r1, #1 + movs r2, #2 + bl SetBgAttribute + movs r0, #2 + movs r1, #1 + movs r2, #2 + bl SetBgAttribute + ldr r1, _080360E8 + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + ldr r1, _080360EC + movs r0, #2 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + movs r0, #1 + bl CopyBgTilemapBufferToVram + movs r0, #2 + bl CopyBgTilemapBufferToVram + b _0803620C + .align 2, 0 +_080360E8: .4byte 0x08D8578C +_080360EC: .4byte 0x08D85A00 +_080360F0: + movs r0, #0x80 + lsls r0, r0, #0x15 + ands r0, r1 + cmp r0, #0 + beq _08036114 + ldr r0, _08036108 + ldr r1, _0803610C + bl LZDecompressWram + ldr r0, _08036110 + b _080361E2 + .align 2, 0 +_08036108: .4byte 0x08D816B4 +_0803610C: .4byte 0x06004000 +_08036110: .4byte 0x08D81ED0 +_08036114: + movs r0, #0x80 + lsls r0, r0, #0x16 + ands r0, r1 + cmp r0, #0 + beq _08036138 + ldr r0, _0803612C + ldr r1, _08036130 + bl LZDecompressWram + ldr r0, _08036134 + b _080361E2 + .align 2, 0 +_0803612C: .4byte 0x08D7FA9C +_08036130: .4byte 0x06004000 +_08036134: .4byte 0x08D7FF68 +_08036138: + movs r0, #0x80 + lsls r0, r0, #0x17 + ands r0, r1 + cmp r0, #0 + beq _0803615C + ldr r0, _08036150 + ldr r1, _08036154 + bl LZDecompressWram + ldr r0, _08036158 + b _080361E2 + .align 2, 0 +_08036150: .4byte 0x08D826AC +_08036154: .4byte 0x06004000 +_08036158: .4byte 0x08D82D14 +_0803615C: + movs r0, #8 + ands r1, r0 + cmp r1, #0 + beq _080361B0 + ldr r1, _08036180 + ldr r0, _08036184 + ldrh r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r1 + ldrb r0, [r0, #1] + cmp r0, #0x20 + bne _08036194 + ldr r0, _08036188 + ldr r1, _0803618C + bl LZDecompressWram + ldr r0, _08036190 + b _080361E2 + .align 2, 0 +_08036180: .4byte 0x082E383C +_08036184: .4byte 0x0203886A +_08036188: .4byte 0x08D82178 +_0803618C: .4byte 0x06004000 +_08036190: .4byte 0x08D82588 +_08036194: + cmp r0, #0x26 + bne _080361B0 + ldr r0, _080361A4 + ldr r1, _080361A8 + bl LZDecompressWram + ldr r0, _080361AC + b _080361E2 + .align 2, 0 +_080361A4: .4byte 0x08D82178 +_080361A8: .4byte 0x06004000 +_080361AC: .4byte 0x08D82588 +_080361B0: + bl GetCurrentMapBattleScene + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080361FC + ldr r4, _080361EC + ldr r5, _080361F0 + ldrb r1, [r5] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #8 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _080361F4 + bl LZDecompressWram + ldrb r1, [r5] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, #0xc + adds r0, r0, r4 + ldr r0, [r0] +_080361E2: + ldr r1, _080361F8 + bl LZDecompressWram + b _0803620C + .align 2, 0 +_080361EC: .4byte 0x082EBA00 +_080361F0: .4byte 0x02022C94 +_080361F4: .4byte 0x06004000 +_080361F8: .4byte 0x0600E000 +_080361FC: + ldr r0, _08036214 + ldr r1, _08036218 + bl LZDecompressWram + ldr r0, _0803621C + ldr r1, _08036220 + bl LZDecompressWram +_0803620C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08036214: .4byte 0x08D82178 +_08036218: .4byte 0x06004000 +_0803621C: .4byte 0x08D82588 +_08036220: .4byte 0x0600E000 + thumb_func_end DrawBattleEntryBackground + + thumb_func_start LoadChosenBattleElement +LoadChosenBattleElement: @ 0x08036224 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r4, #0 + cmp r0, #6 + bls _08036232 + b _080365AA +_08036232: + lsls r0, r0, #2 + ldr r1, _0803623C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803623C: .4byte 0x08036240 +_08036240: @ jump table + .4byte _0803625C @ case 0 + .4byte _0803626A @ case 1 + .4byte _08036284 @ case 2 + .4byte _08036294 @ case 3 + .4byte _08036388 @ case 4 + .4byte _08036490 @ case 5 + .4byte _080365A4 @ case 6 +_0803625C: + movs r0, #0x8c + lsls r0, r0, #0x14 + movs r1, #0xc0 + lsls r1, r1, #0x13 + bl LZDecompressWram + b _080365AC +_0803626A: + ldr r1, _08036280 + movs r0, #0 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + movs r0, #0 + bl CopyBgTilemapBufferToVram + b _080365AC + .align 2, 0 +_08036280: .4byte 0x08C00530 +_08036284: + ldr r0, _08036290 + movs r1, #0 + movs r2, #0x40 + bl LoadCompressedPalette + b _080365AC + .align 2, 0 +_08036290: .4byte 0x08C004EC +_08036294: + ldr r0, _080362B0 + ldr r1, [r0] + ldr r0, _080362B4 + ands r0, r1 + cmp r0, #0 + bne _08036374 + movs r0, #0x80 + lsls r0, r0, #0x15 + ands r0, r1 + cmp r0, #0 + beq _080362BC + ldr r0, _080362B8 + b _08036376 + .align 2, 0 +_080362B0: .4byte 0x02022C90 +_080362B4: .4byte 0x023F0902 +_080362B8: .4byte 0x08D7BBB8 +_080362BC: + movs r0, #8 + ands r1, r0 + cmp r1, #0 + beq _080362E8 + ldr r1, _080362DC + ldr r0, _080362E0 + ldrh r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r1 + ldrb r0, [r0, #1] + cmp r0, #0x20 + beq _08036374 + cmp r0, #0x26 + bne _080362E8 + ldr r0, _080362E4 + b _08036376 + .align 2, 0 +_080362DC: .4byte 0x082E383C +_080362E0: .4byte 0x0203886A +_080362E4: .4byte 0x08D7CD7C +_080362E8: + bl GetCurrentMapBattleScene + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #8 + bhi _08036328 + lsls r0, r0, #2 + ldr r1, _08036300 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08036300: .4byte 0x08036304 +_08036304: @ jump table + .4byte _08036328 @ case 0 + .4byte _08036374 @ case 1 + .4byte _08036344 @ case 2 + .4byte _0803634C @ case 3 + .4byte _08036354 @ case 4 + .4byte _0803635C @ case 5 + .4byte _08036364 @ case 6 + .4byte _0803636C @ case 7 + .4byte _08036374 @ case 8 +_08036328: + ldr r2, _0803633C + ldr r0, _08036340 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + b _08036376 + .align 2, 0 +_0803633C: .4byte 0x082EBA00 +_08036340: .4byte 0x02022C94 +_08036344: + ldr r0, _08036348 + b _08036376 + .align 2, 0 +_08036348: .4byte 0x08D7CD7C +_0803634C: + ldr r0, _08036350 + b _08036376 + .align 2, 0 +_08036350: .4byte 0x08D7CD7C +_08036354: + ldr r0, _08036358 + b _08036376 + .align 2, 0 +_08036358: .4byte 0x08D7CD7C +_0803635C: + ldr r0, _08036360 + b _08036376 + .align 2, 0 +_08036360: .4byte 0x08D7CD7C +_08036364: + ldr r0, _08036368 + b _08036376 + .align 2, 0 +_08036368: .4byte 0x08D7CD7C +_0803636C: + ldr r0, _08036370 + b _08036376 + .align 2, 0 +_08036370: .4byte 0x08D7CD7C +_08036374: + ldr r0, _08036380 +_08036376: + ldr r1, _08036384 + bl LZDecompressWram + b _080365AC + .align 2, 0 +_08036380: .4byte 0x08D7C4E4 +_08036384: .4byte 0x06008000 +_08036388: + ldr r0, _080363AC + ldr r1, [r0] + ldr r0, _080363B0 + ands r0, r1 + cmp r0, #0 + beq _08036396 + b _0803647C +_08036396: + movs r0, #0x80 + lsls r0, r0, #5 + ands r0, r1 + cmp r0, #0 + beq _080363C4 + ldr r0, _080363B4 + ldrb r0, [r0] + cmp r0, #2 + bne _080363BC + ldr r0, _080363B8 + b _0803647E + .align 2, 0 +_080363AC: .4byte 0x02022C90 +_080363B0: .4byte 0x023F0902 +_080363B4: .4byte 0x0829BDA4 +_080363B8: .4byte 0x08D7C1F8 +_080363BC: + ldr r0, _080363C0 + b _0803647E + .align 2, 0 +_080363C0: .4byte 0x08D7A7C4 +_080363C4: + movs r0, #8 + ands r1, r0 + cmp r1, #0 + beq _080363F0 + ldr r1, _080363E4 + ldr r0, _080363E8 + ldrh r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r1 + ldrb r0, [r0, #1] + cmp r0, #0x20 + beq _0803647C + cmp r0, #0x26 + bne _080363F0 + ldr r0, _080363EC + b _0803647E + .align 2, 0 +_080363E4: .4byte 0x082E383C +_080363E8: .4byte 0x0203886A +_080363EC: .4byte 0x08D7D384 +_080363F0: + bl GetCurrentMapBattleScene + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #8 + bhi _08036430 + lsls r0, r0, #2 + ldr r1, _08036408 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08036408: .4byte 0x0803640C +_0803640C: @ jump table + .4byte _08036430 @ case 0 + .4byte _0803647C @ case 1 + .4byte _0803644C @ case 2 + .4byte _08036454 @ case 3 + .4byte _0803645C @ case 4 + .4byte _08036464 @ case 5 + .4byte _0803646C @ case 6 + .4byte _08036474 @ case 7 + .4byte _0803647C @ case 8 +_08036430: + ldr r2, _08036444 + ldr r0, _08036448 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + b _0803647E + .align 2, 0 +_08036444: .4byte 0x082EBA00 +_08036448: .4byte 0x02022C94 +_0803644C: + ldr r0, _08036450 + b _0803647E + .align 2, 0 +_08036450: .4byte 0x08D7D384 +_08036454: + ldr r0, _08036458 + b _0803647E + .align 2, 0 +_08036458: .4byte 0x08D7D384 +_0803645C: + ldr r0, _08036460 + b _0803647E + .align 2, 0 +_08036460: .4byte 0x08D7D384 +_08036464: + ldr r0, _08036468 + b _0803647E + .align 2, 0 +_08036468: .4byte 0x08D7D384 +_0803646C: + ldr r0, _08036470 + b _0803647E + .align 2, 0 +_08036470: .4byte 0x08D7D384 +_08036474: + ldr r0, _08036478 + b _0803647E + .align 2, 0 +_08036478: .4byte 0x08D7D384 +_0803647C: + ldr r0, _08036488 +_0803647E: + ldr r1, _0803648C + bl LZDecompressWram + b _080365AC + .align 2, 0 +_08036488: .4byte 0x08D7CACC +_0803648C: .4byte 0x0600D000 +_08036490: + ldr r0, _080364B4 + ldr r1, [r0] + ldr r0, _080364B8 + ands r0, r1 + cmp r0, #0 + beq _0803649E + b _08036594 +_0803649E: + movs r0, #0x80 + lsls r0, r0, #5 + ands r0, r1 + cmp r0, #0 + beq _080364CC + ldr r0, _080364BC + ldrb r0, [r0] + cmp r0, #2 + bne _080364C4 + ldr r0, _080364C0 + b _08036596 + .align 2, 0 +_080364B4: .4byte 0x02022C90 +_080364B8: .4byte 0x023F0902 +_080364BC: .4byte 0x0829BDA4 +_080364C0: .4byte 0x08D7DFD4 +_080364C4: + ldr r0, _080364C8 + b _08036596 + .align 2, 0 +_080364C8: .4byte 0x08D7DF98 +_080364CC: + movs r0, #8 + ands r1, r0 + cmp r1, #0 + beq _08036500 + ldr r1, _080364E8 + ldr r0, _080364EC + ldrh r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r1 + ldrb r0, [r0, #1] + cmp r0, #0x20 + bne _080364F4 + ldr r0, _080364F0 + b _08036596 + .align 2, 0 +_080364E8: .4byte 0x082E383C +_080364EC: .4byte 0x0203886A +_080364F0: .4byte 0x08D7E068 +_080364F4: + cmp r0, #0x26 + bne _08036500 + ldr r0, _080364FC + b _08036596 + .align 2, 0 +_080364FC: .4byte 0x08D7E29C +_08036500: + bl GetCurrentMapBattleScene + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #8 + bhi _08036540 + lsls r0, r0, #2 + ldr r1, _08036518 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08036518: .4byte 0x0803651C +_0803651C: @ jump table + .4byte _08036540 @ case 0 + .4byte _0803655C @ case 1 + .4byte _08036564 @ case 2 + .4byte _0803656C @ case 3 + .4byte _08036574 @ case 4 + .4byte _0803657C @ case 5 + .4byte _08036584 @ case 6 + .4byte _0803658C @ case 7 + .4byte _08036594 @ case 8 +_08036540: + ldr r2, _08036554 + ldr r0, _08036558 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x10 + adds r0, r0, r2 + ldr r0, [r0] + b _08036596 + .align 2, 0 +_08036554: .4byte 0x082EBA00 +_08036558: .4byte 0x02022C94 +_0803655C: + ldr r0, _08036560 + b _08036596 + .align 2, 0 +_08036560: .4byte 0x08D7E02C +_08036564: + ldr r0, _08036568 + b _08036596 + .align 2, 0 +_08036568: .4byte 0x08D7E104 +_0803656C: + ldr r0, _08036570 + b _08036596 + .align 2, 0 +_08036570: .4byte 0x08D7E0A4 +_08036574: + ldr r0, _08036578 + b _08036596 + .align 2, 0 +_08036578: .4byte 0x08D7E170 +_0803657C: + ldr r0, _08036580 + b _08036596 + .align 2, 0 +_08036580: .4byte 0x08D7E1C0 +_08036584: + ldr r0, _08036588 + b _08036596 + .align 2, 0 +_08036588: .4byte 0x08D7E208 +_0803658C: + ldr r0, _08036590 + b _08036596 + .align 2, 0 +_08036590: .4byte 0x08D7E24C +_08036594: + ldr r0, _080365A0 +_08036596: + movs r1, #0x20 + movs r2, #0x60 + bl LoadCompressedPalette + b _080365AC + .align 2, 0 +_080365A0: .4byte 0x08D7CA90 +_080365A4: + bl LoadBattleMenuWindowGfx + b _080365AC +_080365AA: + movs r4, #1 +_080365AC: + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end LoadChosenBattleElement + diff --git a/asm/battle_controller_link_opponent.s b/asm/battle_controller_link_opponent.s new file mode 100644 index 0000000..4f2d2a2 --- /dev/null +++ b/asm/battle_controller_link_opponent.s @@ -0,0 +1,6754 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start nullsub_28 +nullsub_28: @ 0x08063F74 + bx lr + .align 2, 0 + thumb_func_end nullsub_28 + + thumb_func_start SetControllerToLinkOpponent +SetControllerToLinkOpponent: @ 0x08063F78 + ldr r1, _08063F88 + ldr r0, _08063F8C + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08063F90 + str r1, [r0] + bx lr + .align 2, 0 +_08063F88: .4byte 0x03005AC0 +_08063F8C: .4byte 0x02023D08 +_08063F90: .4byte 0x08063F95 + thumb_func_end SetControllerToLinkOpponent + + thumb_func_start LinkOpponentBufferRunCommand +LinkOpponentBufferRunCommand: @ 0x08063F94 + push {lr} + ldr r2, _08063FC8 + ldr r1, _08063FCC + ldr r0, _08063FD0 + ldrb r3, [r0] + lsls r0, r3, #2 + adds r0, r0, r1 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _08063FE0 + ldr r0, _08063FD4 + lsls r1, r3, #9 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0x38 + bhi _08063FDC + ldr r0, _08063FD8 + ldrb r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl _call_via_r0 + b _08063FE0 + .align 2, 0 +_08063FC8: .4byte 0x02023D0C +_08063FCC: .4byte 0x082FACB4 +_08063FD0: .4byte 0x02023D08 +_08063FD4: .4byte 0x02022D08 +_08063FD8: .4byte 0x082ED13C +_08063FDC: + bl LinkOpponentBufferExecCompleted +_08063FE0: + pop {r0} + bx r0 + thumb_func_end LinkOpponentBufferRunCommand + + thumb_func_start LinkOpponentHandleCmd37 +LinkOpponentHandleCmd37: @ 0x08063FE4 + push {lr} + ldr r2, _0806400C + ldr r1, _08064010 + ldr r0, _08064014 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _08064018 + cmp r1, r0 + bne _08064008 + bl LinkOpponentBufferExecCompleted +_08064008: + pop {r0} + bx r0 + .align 2, 0 +_0806400C: .4byte 0x020205AC +_08064010: .4byte 0x02023E88 +_08064014: .4byte 0x02023D08 +_08064018: .4byte 0x08007141 + thumb_func_end LinkOpponentHandleCmd37 + + thumb_func_start sub_0806401C +sub_0806401C: @ 0x0806401C + push {lr} + ldr r2, _08064044 + ldr r1, _08064048 + ldr r0, _0806404C + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _08064050 + cmp r1, r0 + bne _08064040 + bl LinkOpponentBufferExecCompleted +_08064040: + pop {r0} + bx r0 + .align 2, 0 +_08064044: .4byte 0x020205AC +_08064048: .4byte 0x02023E88 +_0806404C: .4byte 0x02023D08 +_08064050: .4byte 0x08007141 + thumb_func_end sub_0806401C + + thumb_func_start sub_08064054 +sub_08064054: @ 0x08064054 + push {r4, r5, r6, lr} + ldr r5, _080640AC + ldr r6, _080640B0 + ldr r4, _080640B4 + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r2, r0, #2 + adds r0, r5, #0 + adds r0, #0x1c + adds r0, r2, r0 + ldr r1, [r0] + ldr r0, _080640B8 + cmp r1, r0 + bne _080640A6 + adds r0, r2, r5 + ldrh r0, [r0, #6] + bl FreeTrainerFrontPicPalette + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + bl FreeSpriteOamMatrix + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + bl DestroySprite + bl LinkOpponentBufferExecCompleted +_080640A6: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080640AC: .4byte 0x020205AC +_080640B0: .4byte 0x02023E88 +_080640B4: .4byte 0x02023D08 +_080640B8: .4byte 0x08007141 + thumb_func_end sub_08064054 + + thumb_func_start sub_080640BC +sub_080640BC: @ 0x080640BC + push {r4, lr} + ldr r4, _080640FC + ldr r1, [r4] + ldr r3, _08064100 + ldrb r0, [r3] + ldr r2, [r1, #4] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r0, [r1, #9] + subs r0, #1 + strb r0, [r1, #9] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080640F4 + ldr r0, [r4] + ldrb r1, [r3] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0 + strb r1, [r0, #9] + bl LinkOpponentBufferExecCompleted +_080640F4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080640FC: .4byte 0x02024174 +_08064100: .4byte 0x02023D08 + thumb_func_end sub_080640BC + + thumb_func_start sub_08064104 +sub_08064104: @ 0x08064104 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r0, #0 + mov r8, r0 + movs r4, #0 + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08064130 + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08064168 + ldr r0, _08064154 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08064168 +_08064130: + ldr r2, _08064158 + ldr r1, _0806415C + ldr r3, _08064160 + ldrb r0, [r3] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _08064164 + adds r7, r3, #0 + cmp r1, r0 + bne _080641A6 + b _080641AE + .align 2, 0 +_08064154: .4byte 0x02022C90 +_08064158: .4byte 0x020205AC +_0806415C: .4byte 0x03005AD0 +_08064160: .4byte 0x02023D08 +_08064164: .4byte 0x08007141 +_08064168: + ldr r3, _08064268 + ldr r6, _0806426C + ldr r2, _08064270 + ldrb r4, [r2] + adds r0, r4, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r5, r3, #0 + adds r5, #0x1c + adds r0, r0, r5 + ldr r3, [r0] + ldr r0, _08064274 + adds r7, r2, #0 + cmp r3, r0 + bne _080641A4 + movs r0, #2 + eors r4, r0 + adds r0, r4, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r0, [r0] + cmp r0, r3 + bne _080641A4 + movs r1, #1 + mov r8, r1 +_080641A4: + movs r4, #1 +_080641A6: + mov r0, r8 + cmp r0, #0 + bne _080641AE + b _080642F8 +_080641AE: + cmp r4, #0 + bne _080641C2 + ldrb r1, [r7] + movs r0, #2 + eors r0, r1 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08064280 +_080641C2: + ldr r1, _08064278 + mov ip, r1 + ldr r0, [r1] + ldr r7, _08064270 + ldrb r2, [r7] + ldr r3, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r4, r0, r3 + ldrb r1, [r4, #1] + movs r5, #1 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + bne _080641E4 + b _080642F8 +_080641E4: + movs r6, #2 + adds r1, r6, #0 + eors r1, r2 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #1] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _080642F8 + ldrb r1, [r4] + movs r3, #0x7f + adds r0, r3, #0 + ands r0, r1 + strb r0, [r4] + mov r1, ip + ldr r0, [r1] + ldrb r2, [r7] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + movs r4, #2 + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r2 + strb r0, [r1, #1] + mov r0, ip + ldr r2, [r0] + ldrb r0, [r7] + adds r1, r6, #0 + eors r1, r0 + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + ands r3, r1 + strb r3, [r0] + mov r1, ip + ldr r2, [r1] + ldrb r0, [r7] + adds r1, r6, #0 + eors r1, r0 + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #1] + ands r4, r1 + strb r4, [r0, #1] + ldr r4, _0806427C + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl FreeSpritePaletteByTag + b _080642D6 + .align 2, 0 +_08064268: .4byte 0x020205AC +_0806426C: .4byte 0x03005AD0 +_08064270: .4byte 0x02023D08 +_08064274: .4byte 0x08007141 +_08064278: .4byte 0x02024174 +_0806427C: .4byte 0x000027F9 +_08064280: + ldr r3, _08064304 + ldr r0, [r3] + ldrb r1, [r7] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, r0, r2 + ldrb r1, [r2, #1] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080642F8 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + ldr r0, [r3] + ldrb r2, [r7] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #1] + ldrb r0, [r7] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bne _080642D6 + ldr r4, _08064308 + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl FreeSpritePaletteByTag +_080642D6: + ldr r0, _08064304 + ldr r0, [r0] + ldr r3, _0806430C + ldrb r1, [r3] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #3 + strb r1, [r0, #9] + ldr r1, _08064310 + ldrb r0, [r3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08064314 + str r1, [r0] +_080642F8: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08064304: .4byte 0x02024174 +_08064308: .4byte 0x000027F9 +_0806430C: .4byte 0x02023D08 +_08064310: .4byte 0x03005AC0 +_08064314: .4byte 0x080640BD + thumb_func_end sub_08064104 + + thumb_func_start sub_08064318 +sub_08064318: @ 0x08064318 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + movs r0, #0 + mov sl, r0 + ldr r5, _080644F8 + ldr r0, [r5] + ldr r4, _080644FC + ldrb r2, [r4] + ldr r1, [r0, #4] + lsls r3, r2, #1 + adds r0, r3, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r1, [r0] + movs r6, #0xc4 + lsls r6, r6, #1 + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + bne _0806435A + ldr r0, _08064500 + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _08064504 + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_08172CD4 +_0806435A: + ldr r0, _08064508 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08064398 + ldr r2, [r5] + ldrb r1, [r4] + movs r0, #2 + adds r3, r0, #0 + eors r3, r1 + ldr r1, [r2, #4] + lsls r2, r3, #1 + adds r0, r2, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + bne _08064398 + ldr r0, _08064500 + adds r0, r2, r0 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _08064504 + adds r1, r1, r0 + adds r0, r3, #0 + bl sub_08172CD4 +_08064398: + ldr r3, _080644F8 + ldr r0, [r3] + ldr r2, _080644FC + ldrb r5, [r2] + ldr r4, [r0, #4] + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r6, r0, r4 + ldrb r1, [r6] + movs r0, #8 + mov ip, r0 + ands r0, r1 + mov r8, r3 + mov sb, r2 + cmp r0, #0 + bne _0806447C + movs r7, #2 + adds r1, r7, #0 + eors r1, r5 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r1, [r0] + mov r0, ip + ands r0, r1 + cmp r0, #0 + bne _0806447C + ldrb r1, [r6, #1] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0806445E + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0806442E + ldr r0, _08064508 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _0806442E + ldr r4, _0806450C + mov r1, sb + ldrb r0, [r1] + adds r1, r7, #0 + eors r1, r0 + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, _08064500 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _08064504 + adds r1, r1, r2 + movs r2, #0 + bl UpdateHealthboxAttribute + mov r1, sb + ldrb r0, [r1] + eors r0, r7 + bl sub_08076320 + mov r1, sb + ldrb r0, [r1] + eors r0, r7 + adds r0, r0, r4 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible +_0806442E: + ldr r5, _0806450C + ldr r4, _080644FC + ldrb r1, [r4] + adds r0, r1, r5 + ldrb r0, [r0] + ldr r2, _08064500 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _08064504 + adds r1, r1, r2 + movs r2, #0 + bl UpdateHealthboxAttribute + ldrb r0, [r4] + bl sub_08076320 + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible +_0806445E: + ldr r4, _080644F8 + ldr r0, [r4] + ldr r3, _080644FC + ldrb r1, [r3] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #1] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0, #1] + mov r8, r4 + mov sb, r3 +_0806447C: + mov r1, r8 + ldr r0, [r1] + mov r1, sb + ldrb r2, [r1] + ldr r3, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #1] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0x80 + bne _0806453E + movs r1, #2 + eors r1, r2 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #1] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _0806453E + bl IsCryPlayingOrClearCrySongs + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806453E + mov r1, r8 + ldr r0, [r1] + mov r1, sb + ldrb r2, [r1] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #1] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _08064520 + ldr r0, _08064508 + ldr r0, [r0] + movs r1, #0x42 + ands r0, r1 + cmp r0, #0x42 + bne _08064514 + adds r0, r2, #0 + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08064520 + ldr r0, _08064510 + bl m4aMPlayContinue + b _08064520 + .align 2, 0 +_080644F8: .4byte 0x02024174 +_080644FC: .4byte 0x02023D08 +_08064500: .4byte 0x02023D12 +_08064504: .4byte 0x020243E8 +_08064508: .4byte 0x02022C90 +_0806450C: .4byte 0x03005AD0 +_08064510: .4byte 0x030074D0 +_08064514: + ldr r0, _080646B4 + ldr r1, _080646B8 + movs r2, #0x80 + lsls r2, r2, #1 + bl m4aMPlayVolumeControl +_08064520: + ldr r0, _080646BC + ldr r2, [r0] + ldr r0, _080646C0 + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #1] + movs r2, #0x20 + orrs r1, r2 + strb r1, [r0, #1] + movs r0, #1 + mov sl, r0 +_0806453E: + mov r1, sl + cmp r1, #0 + bne _08064546 + b _080646A4 +_08064546: + ldr r2, _080646C4 + ldr r0, _080646C8 + ldr r5, _080646C0 + ldrb r3, [r5] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r4, [r0] + ldr r0, _080646CC + cmp r4, r0 + beq _08064566 + b _080646A4 +_08064566: + ldr r0, _080646D0 + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + cmp r0, r4 + beq _0806457C + b _080646A4 +_0806457C: + ldr r0, _080646D4 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080645C6 + adds r0, r3, #0 + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bne _080645C6 + ldr r3, _080646BC + ldr r0, [r3] + ldrb r2, [r5] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #9] + adds r0, #1 + strb r0, [r1, #9] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080646A4 + ldr r0, [r3] + ldrb r1, [r5] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0 + strb r1, [r0, #9] +_080645C6: + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0806461E + ldr r0, _080646D4 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _0806461E + ldr r1, _080646C8 + ldr r5, _080646C0 + ldrb r0, [r5] + movs r4, #2 + eors r0, r4 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080646C4 + adds r0, r0, r1 + bl DestroySprite + ldrb r0, [r5] + eors r4, r0 + ldr r1, _080646D8 + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080646DC + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl SetBattlerShadowSpriteCallback +_0806461E: + ldr r1, _080646C8 + ldr r4, _080646C0 + ldrb r0, [r4] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080646C4 + adds r0, r0, r1 + bl DestroySprite + ldrb r5, [r4] + ldr r1, _080646D8 + lsls r0, r5, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080646DC + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r5, #0 + bl SetBattlerShadowSpriteCallback + ldr r3, _080646BC + ldr r0, [r3] + ldr r2, [r0, #8] + ldrb r1, [r2, #9] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #9] + ldr r0, [r3] + ldrb r2, [r4] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + movs r0, #0x21 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #1] + ldr r0, [r3] + ldrb r2, [r4] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + movs r0, #0x7f + ands r0, r2 + strb r0, [r1, #1] + ldr r1, _080646E0 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _080646E4 + str r1, [r0] +_080646A4: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080646B4: .4byte 0x030074D0 +_080646B8: .4byte 0x0000FFFF +_080646BC: .4byte 0x02024174 +_080646C0: .4byte 0x02023D08 +_080646C4: .4byte 0x020205AC +_080646C8: .4byte 0x03005ADC +_080646CC: .4byte 0x08007141 +_080646D0: .4byte 0x02023E88 +_080646D4: .4byte 0x02022C90 +_080646D8: .4byte 0x02023D12 +_080646DC: .4byte 0x020243E8 +_080646E0: .4byte 0x03005AC0 +_080646E4: .4byte 0x08064105 + thumb_func_end sub_08064318 + + thumb_func_start sub_080646E8 +sub_080646E8: @ 0x080646E8 + push {r4, r5, r6, r7, lr} + ldr r4, _08064744 + ldr r0, _08064748 + ldr r7, _0806474C + ldrb r3, [r7] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r2, r0, #2 + adds r0, r4, #0 + adds r0, #0x1c + adds r0, r2, r0 + ldr r1, [r0] + ldr r0, _08064750 + cmp r1, r0 + bne _0806479A + adds r0, r2, r4 + movs r1, #0x24 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _0806479A + ldr r6, _08064754 + ldr r0, [r6] + ldr r1, [r0, #4] + lsls r4, r3, #1 + adds r0, r4, r3 + lsls r0, r0, #2 + adds r2, r0, r1 + ldrb r5, [r2] + movs r0, #0x80 + ands r0, r5 + cmp r0, #0 + bne _08064760 + ldr r0, _08064758 + adds r0, r4, r0 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _0806475C + adds r1, r1, r0 + adds r0, r3, #0 + bl sub_08172CD4 + b _0806479A + .align 2, 0 +_08064744: .4byte 0x020205AC +_08064748: .4byte 0x02023E88 +_0806474C: .4byte 0x02023D08 +_08064750: .4byte 0x08007141 +_08064754: .4byte 0x02024174 +_08064758: .4byte 0x02023D12 +_0806475C: .4byte 0x020243E8 +_08064760: + ldrb r1, [r2, #1] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0806479A + movs r0, #0x7f + ands r0, r5 + strb r0, [r2] + ldr r0, [r6] + ldrb r2, [r7] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #1] + ldr r4, _080647A0 + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl FreeSpritePaletteByTag + bl LinkOpponentBufferExecCompleted +_0806479A: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080647A0: .4byte 0x000027F9 + thumb_func_end sub_080646E8 + + thumb_func_start LinkOpponentHandleFaintingCry +LinkOpponentHandleFaintingCry: @ 0x080647A4 + push {r4, r5, r6, lr} + ldr r6, _080647E4 + ldrb r0, [r6] + ldr r5, _080647E8 + adds r1, r0, r5 + ldrb r1, [r1] + movs r2, #0 + movs r3, #0 + bl MoveBattleBar + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible + lsls r4, r4, #0x10 + asrs r1, r4, #0x10 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _080647EC + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r0, [r0] + movs r2, #0 + bl sub_080726F4 + b _080647F0 + .align 2, 0 +_080647E4: .4byte 0x02023D08 +_080647E8: .4byte 0x03005AD0 +_080647EC: + bl LinkOpponentBufferExecCompleted +_080647F0: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkOpponentHandleFaintingCry + + thumb_func_start sub_080647F8 +sub_080647F8: @ 0x080647F8 + push {lr} + ldr r2, _0806482C + ldr r0, _08064830 + ldr r1, _08064834 + ldrb r3, [r1] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1f + cmp r0, #0 + bne _08064826 + ldr r0, _08064838 + adds r0, r3, r0 + ldrb r0, [r0] + bl SetHealthboxSpriteInvisible + bl LinkOpponentBufferExecCompleted +_08064826: + pop {r0} + bx r0 + .align 2, 0 +_0806482C: .4byte 0x020205AC +_08064830: .4byte 0x02023E88 +_08064834: .4byte 0x02023D08 +_08064838: .4byte 0x03005AD0 + thumb_func_end sub_080647F8 + + thumb_func_start sub_0806483C +sub_0806483C: @ 0x0806483C + push {r4, r5, r6, lr} + ldr r0, _0806489C + ldr r0, [r0] + ldr r6, _080648A0 + ldrb r2, [r6] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08064896 + ldr r5, _080648A4 + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _080648A8 + adds r0, r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + ldrb r0, [r6] + bl HideBattlerShadowSprite + ldr r1, _080648AC + ldrb r0, [r6] + adds r0, r0, r1 + ldrb r0, [r0] + bl SetHealthboxSpriteInvisible + bl LinkOpponentBufferExecCompleted +_08064896: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0806489C: .4byte 0x02024174 +_080648A0: .4byte 0x02023D08 +_080648A4: .4byte 0x02023E88 +_080648A8: .4byte 0x020205AC +_080648AC: .4byte 0x03005AD0 + thumb_func_end sub_0806483C + + thumb_func_start sub_080648B0 +sub_080648B0: @ 0x080648B0 + push {lr} + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080648C2 + bl LinkOpponentBufferExecCompleted +_080648C2: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080648B0 + + thumb_func_start sub_080648C8 +sub_080648C8: @ 0x080648C8 + push {r4, lr} + ldr r1, _08064904 + ldr r0, _08064908 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + ldr r2, _0806490C + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, r0, r2 + movs r1, #0x30 + ldrsh r0, [r4, r1] + cmp r0, #0x20 + bne _08064914 + movs r3, #0 + movs r0, #0 + strh r0, [r4, #0x30] + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + subs r0, #5 + ands r0, r1 + strb r0, [r2] + ldr r0, _08064910 + strb r3, [r0] + bl LinkOpponentBufferExecCompleted + b _0806493E + .align 2, 0 +_08064904: .4byte 0x02023E88 +_08064908: .4byte 0x02023D08 +_0806490C: .4byte 0x020205AC +_08064910: .4byte 0x0202415D +_08064914: + ldrh r0, [r4, #0x30] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _08064938 + adds r3, r4, #0 + adds r3, #0x3e + ldrb r2, [r3] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_08064938: + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] +_0806493E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_080648C8 + + thumb_func_start sub_08064944 +sub_08064944: @ 0x08064944 + push {r4, lr} + ldr r2, _08064998 + ldr r0, _0806499C + ldr r4, _080649A0 + ldrb r3, [r4] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _080649A4 + cmp r1, r0 + bne _08064990 + ldr r0, _080649A8 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r3, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08064984 + adds r0, r3, #0 + adds r1, r3, #0 + adds r2, r3, #0 + movs r3, #6 + bl InitAndLaunchSpecialAnimation +_08064984: + ldr r0, _080649AC + ldrb r1, [r4] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, _080649B0 + str r0, [r1] +_08064990: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08064998: .4byte 0x020205AC +_0806499C: .4byte 0x03005AD0 +_080649A0: .4byte 0x02023D08 +_080649A4: .4byte 0x08007141 +_080649A8: .4byte 0x02024174 +_080649AC: .4byte 0x03005AC0 +_080649B0: .4byte 0x080649B5 + thumb_func_end sub_08064944 + + thumb_func_start LinkOpponentHandleGetMonData +LinkOpponentHandleGetMonData: @ 0x080649B4 + push {r4, lr} + ldr r0, _08064A14 + ldr r0, [r0] + ldr r4, _08064A18 + ldrb r1, [r4] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08064A0E + bl IsCryPlayingOrClearCrySongs + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08064A0E + ldr r2, _08064A1C + ldr r1, _08064A20 + ldrb r0, [r4] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _08064A24 + cmp r1, r0 + beq _080649FE + ldr r0, _08064A28 + cmp r1, r0 + bne _08064A0E +_080649FE: + ldr r0, _08064A2C + ldr r1, _08064A30 + movs r2, #0x80 + lsls r2, r2, #1 + bl m4aMPlayVolumeControl + bl LinkOpponentBufferExecCompleted +_08064A0E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08064A14: .4byte 0x02024174 +_08064A18: .4byte 0x02023D08 +_08064A1C: .4byte 0x020205AC +_08064A20: .4byte 0x02023E88 +_08064A24: .4byte 0x08007141 +_08064A28: .4byte 0x080394FD +_08064A2C: .4byte 0x030074D0 +_08064A30: .4byte 0x0000FFFF + thumb_func_end LinkOpponentHandleGetMonData + + thumb_func_start sub_08064A34 +sub_08064A34: @ 0x08064A34 + push {r4, r5, r6, r7, lr} + ldr r4, _08064AF8 + ldr r0, [r4] + ldr r5, _08064AFC + ldrb r2, [r5] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r3, r0, r1 + ldrb r1, [r3, #1] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08064AF0 + ldr r7, _08064B00 + ldr r6, _08064B04 + adds r0, r2, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r7, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, [r0] + ldr r0, _08064B08 + cmp r1, r0 + bne _08064AF0 + ldrb r1, [r3] + movs r0, #0x7f + ands r0, r1 + strb r0, [r3] + ldr r0, [r4] + ldrb r2, [r5] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #1] + ldr r4, _08064B0C + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl FreeSpritePaletteByTag + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + movs r1, #0 + bl StartSpriteAnim + ldr r4, _08064B10 + ldrb r1, [r5] + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, _08064B14 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _08064B18 + adds r1, r1, r2 + movs r2, #0 + bl UpdateHealthboxAttribute + ldrb r0, [r5] + bl sub_08076320 + ldrb r0, [r5] + adds r0, r0, r4 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible + ldrb r0, [r5] + bl CopyBattleSpriteInvisibility + ldr r1, _08064B1C + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08064B20 + str r1, [r0] +_08064AF0: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08064AF8: .4byte 0x02024174 +_08064AFC: .4byte 0x02023D08 +_08064B00: .4byte 0x020205AC +_08064B04: .4byte 0x02023E88 +_08064B08: .4byte 0x08007141 +_08064B0C: .4byte 0x000027F9 +_08064B10: .4byte 0x03005AD0 +_08064B14: .4byte 0x02023D12 +_08064B18: .4byte 0x020243E8 +_08064B1C: .4byte 0x03005AC0 +_08064B20: .4byte 0x08064945 + thumb_func_end sub_08064A34 + + thumb_func_start sub_08064B24 +sub_08064B24: @ 0x08064B24 + push {r4, r5, r6, lr} + ldr r6, _08064BC8 + ldr r0, [r6] + ldr r5, _08064BCC + ldrb r2, [r5] + ldr r1, [r0, #4] + lsls r3, r2, #1 + adds r0, r3, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x88 + ands r0, r1 + cmp r0, #0 + bne _08064B56 + ldr r0, _08064BD0 + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _08064BD4 + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_08172CD4 +_08064B56: + ldr r4, _08064BD8 + ldr r0, _08064BDC + ldrb r2, [r5] + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r3, r0, #2 + adds r0, r4, #0 + adds r0, #0x1c + adds r0, r3, r0 + ldr r1, [r0] + ldr r0, _08064BE0 + cmp r1, r0 + bne _08064BC0 + ldr r0, [r6] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + bne _08064BC0 + adds r0, r3, r4 + bl DestroySprite + ldrb r4, [r5] + ldr r1, _08064BD0 + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08064BD4 + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl SetBattlerShadowSpriteCallback + ldr r1, _08064BE4 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08064BE8 + str r1, [r0] +_08064BC0: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08064BC8: .4byte 0x02024174 +_08064BCC: .4byte 0x02023D08 +_08064BD0: .4byte 0x02023D12 +_08064BD4: .4byte 0x020243E8 +_08064BD8: .4byte 0x020205AC +_08064BDC: .4byte 0x03005ADC +_08064BE0: .4byte 0x08007141 +_08064BE4: .4byte 0x03005AC0 +_08064BE8: .4byte 0x08064A35 + thumb_func_end sub_08064B24 + + thumb_func_start sub_08064BEC +sub_08064BEC: @ 0x08064BEC + push {lr} + ldr r0, _08064C14 + ldr r2, [r0] + ldr r0, _08064C18 + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _08064C0E + bl LinkOpponentBufferExecCompleted +_08064C0E: + pop {r0} + bx r0 + .align 2, 0 +_08064C14: .4byte 0x02024174 +_08064C18: .4byte 0x02023D08 + thumb_func_end sub_08064BEC + + thumb_func_start LinkOpponentHandleDrawPartyStatusSummary +LinkOpponentHandleDrawPartyStatusSummary: @ 0x08064C1C + push {lr} + ldr r0, _08064C44 + ldr r2, [r0] + ldr r0, _08064C48 + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _08064C3E + bl LinkOpponentBufferExecCompleted +_08064C3E: + pop {r0} + bx r0 + .align 2, 0 +_08064C44: .4byte 0x02024174 +_08064C48: .4byte 0x02023D08 + thumb_func_end LinkOpponentHandleDrawPartyStatusSummary + + thumb_func_start LinkOpponentBufferExecCompleted +LinkOpponentBufferExecCompleted: @ 0x08064C4C + push {r4, lr} + sub sp, #4 + ldr r1, _08064C8C + ldr r4, _08064C90 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08064C94 + str r1, [r0] + ldr r0, _08064C98 + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _08064CA0 + bl GetMultiplayerId + mov r1, sp + strb r0, [r1] + movs r0, #2 + movs r1, #4 + mov r2, sp + bl PrepareBufferDataTransferLink + ldr r1, _08064C9C + ldrb r0, [r4] + lsls r0, r0, #9 + adds r0, r0, r1 + movs r1, #0x38 + strb r1, [r0] + b _08064CB2 + .align 2, 0 +_08064C8C: .4byte 0x03005AC0 +_08064C90: .4byte 0x02023D08 +_08064C94: .4byte 0x08063F95 +_08064C98: .4byte 0x02022C90 +_08064C9C: .4byte 0x02022D08 +_08064CA0: + ldr r2, _08064CBC + ldr r1, _08064CC0 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + ldr r0, [r2] + bics r0, r1 + str r0, [r2] +_08064CB2: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08064CBC: .4byte 0x02023D0C +_08064CC0: .4byte 0x082FACB4 + thumb_func_end LinkOpponentBufferExecCompleted + + thumb_func_start sub_08064CC4 +sub_08064CC4: @ 0x08064CC4 + push {r4, r5, r6, lr} + sub sp, #0x100 + movs r6, #0 + ldr r1, _08064CF0 + ldr r0, _08064CF4 + ldrb r2, [r0] + lsls r0, r2, #9 + adds r1, #2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, #0 + bne _08064CFC + ldr r0, _08064CF8 + lsls r1, r2, #1 + adds r1, r1, r0 + ldrb r0, [r1] + mov r1, sp + bl CopyLinkOpponentMonData + adds r6, r0, #0 + b _08064D1E + .align 2, 0 +_08064CF0: .4byte 0x02022D08 +_08064CF4: .4byte 0x02023D08 +_08064CF8: .4byte 0x02023D12 +_08064CFC: + ldrb r4, [r1] + movs r5, #0 +_08064D00: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _08064D16 + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + mov r2, sp + adds r1, r2, r6 + bl CopyLinkOpponentMonData + adds r6, r6, r0 +_08064D16: + lsrs r4, r4, #1 + adds r5, #1 + cmp r5, #5 + ble _08064D00 +_08064D1E: + lsls r1, r6, #0x10 + lsrs r1, r1, #0x10 + movs r0, #1 + mov r2, sp + bl BtlController_EmitDataTransfer + bl LinkOpponentBufferExecCompleted + add sp, #0x100 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08064CC4 + + thumb_func_start CopyLinkOpponentMonData +CopyLinkOpponentMonData: @ 0x08064D38 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x90 + adds r7, r1, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r6, #0 + ldr r2, _08064D6C + ldr r3, _08064D70 + ldrb r0, [r3] + lsls r0, r0, #9 + adds r1, r2, #1 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0x3b + bls _08064D62 + bl _080654CE +_08064D62: + lsls r0, r0, #2 + ldr r1, _08064D74 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08064D6C: .4byte 0x02022D08 +_08064D70: .4byte 0x02023D08 +_08064D74: .4byte 0x08064D78 +_08064D78: @ jump table + .4byte _08064E68 @ case 0 + .4byte _0806508C @ case 1 + .4byte _0806509C @ case 2 + .4byte _080650AC @ case 3 + .4byte _08065114 @ case 4 + .4byte _08065114 @ case 5 + .4byte _08065114 @ case 6 + .4byte _08065114 @ case 7 + .4byte _08065130 @ case 8 + .4byte _0806516C @ case 9 + .4byte _0806516C @ case 10 + .4byte _0806516C @ case 11 + .4byte _0806516C @ case 12 + .4byte _080654CE @ case 13 + .4byte _080654CE @ case 14 + .4byte _080654CE @ case 15 + .4byte _080654CE @ case 16 + .4byte _08065188 @ case 17 + .4byte _08065198 @ case 18 + .4byte _080651C8 @ case 19 + .4byte _080651D8 @ case 20 + .4byte _080651E8 @ case 21 + .4byte _080651F8 @ case 22 + .4byte _08065208 @ case 23 + .4byte _08065218 @ case 24 + .4byte _08065228 @ case 25 + .4byte _08065238 @ case 26 + .4byte _08065248 @ case 27 + .4byte _08065258 @ case 28 + .4byte _08065268 @ case 29 + .4byte _08065278 @ case 30 + .4byte _08065288 @ case 31 + .4byte _080652D8 @ case 32 + .4byte _080652E8 @ case 33 + .4byte _080652F8 @ case 34 + .4byte _08065308 @ case 35 + .4byte _08065318 @ case 36 + .4byte _08065328 @ case 37 + .4byte _08065338 @ case 38 + .4byte _08065348 @ case 39 + .4byte _08065358 @ case 40 + .4byte _0806538C @ case 41 + .4byte _0806539C @ case 42 + .4byte _080653AC @ case 43 + .4byte _080653BC @ case 44 + .4byte _080653CC @ case 45 + .4byte _080653DC @ case 46 + .4byte _080653EC @ case 47 + .4byte _080653FC @ case 48 + .4byte _0806541C @ case 49 + .4byte _0806542C @ case 50 + .4byte _0806543C @ case 51 + .4byte _0806544C @ case 52 + .4byte _0806545C @ case 53 + .4byte _0806546C @ case 54 + .4byte _0806547C @ case 55 + .4byte _0806548C @ case 56 + .4byte _0806549C @ case 57 + .4byte _080654AC @ case 58 + .4byte _080654BC @ case 59 +_08064E68: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _0806507C + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + mov r1, sp + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0xc + bl GetMonData + mov r1, sp + strh r0, [r1, #0x2e] + movs r6, #0 + add r0, sp, #0x24 + mov sb, r0 + movs r1, #0x3b + add r1, sp + mov sl, r1 + mov r2, sp + adds r2, #0x2b + str r2, [sp, #0x80] + mov r0, sp + adds r0, #0x2a + str r0, [sp, #0x7c] + mov r1, sp + adds r1, #0x68 + str r1, [sp, #0x8c] + adds r2, #5 + str r2, [sp, #0x84] + adds r0, #0x12 + str r0, [sp, #0x88] + mov r8, r4 + add r4, sp, #0xc +_08064EB4: + adds r1, r6, #0 + adds r1, #0xd + mov r0, r8 + bl GetMonData + strh r0, [r4] + adds r1, r6, #0 + adds r1, #0x11 + mov r0, r8 + bl GetMonData + mov r2, sb + adds r1, r2, r6 + strb r0, [r1] + adds r4, #2 + adds r6, #1 + cmp r6, #3 + ble _08064EB4 + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _0806507C + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x15 + bl GetMonData + mov r1, sl + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x20 + bl GetMonData + ldr r2, [sp, #0x80] + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0x19 + bl GetMonData + str r0, [sp, #0x44] + adds r0, r4, #0 + movs r1, #0x27 + bl GetMonData + mov r3, sp + movs r5, #0x1f + ands r0, r5 + ldrb r2, [r3, #0x14] + movs r1, #0x20 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x14] + adds r0, r4, #0 + movs r1, #0x28 + bl GetMonData + mov r3, sp + movs r6, #0x1f + ands r0, r6 + lsls r0, r0, #5 + ldrh r2, [r3, #0x14] + ldr r1, _08065080 + ands r1, r2 + orrs r1, r0 + strh r1, [r3, #0x14] + adds r0, r4, #0 + movs r1, #0x29 + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, r0, #2 + ldrb r2, [r3, #0x15] + movs r1, #0x7d + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x15] + adds r0, r4, #0 + movs r1, #0x2a + bl GetMonData + movs r1, #0x1f + ands r1, r0 + lsls r1, r1, #0xf + ldr r0, [sp, #0x14] + ldr r2, _08065084 + ands r0, r2 + orrs r0, r1 + str r0, [sp, #0x14] + adds r0, r4, #0 + movs r1, #0x2b + bl GetMonData + mov r3, sp + ands r0, r6 + lsls r0, r0, #4 + ldrh r2, [r3, #0x16] + ldr r1, _08065088 + ands r1, r2 + orrs r1, r0 + strh r1, [r3, #0x16] + adds r0, r4, #0 + movs r1, #0x2c + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, r0, #1 + ldrb r2, [r3, #0x17] + movs r1, #0x3f + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x17] + adds r0, r4, #0 + movs r1, #0 + bl GetMonData + str r0, [sp, #0x48] + adds r0, r4, #0 + movs r1, #0x37 + bl GetMonData + str r0, [sp, #0x4c] + adds r0, r4, #0 + movs r1, #0x38 + bl GetMonData + ldr r1, [sp, #0x7c] + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + mov r1, sp + strh r0, [r1, #0x28] + adds r0, r4, #0 + movs r1, #0x3a + bl GetMonData + mov r1, sp + strh r0, [r1, #0x2c] + adds r0, r4, #0 + movs r1, #0x3b + bl GetMonData + mov r1, sp + strh r0, [r1, #2] + adds r0, r4, #0 + movs r1, #0x3c + bl GetMonData + mov r1, sp + strh r0, [r1, #4] + adds r0, r4, #0 + movs r1, #0x3d + bl GetMonData + mov r1, sp + strh r0, [r1, #6] + adds r0, r4, #0 + movs r1, #0x3e + bl GetMonData + mov r1, sp + strh r0, [r1, #8] + adds r0, r4, #0 + movs r1, #0x3f + bl GetMonData + mov r1, sp + strh r0, [r1, #0xa] + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + mov r3, sp + movs r1, #1 + ands r0, r1 + lsls r0, r0, #6 + ldrb r2, [r3, #0x17] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x17] + adds r0, r4, #0 + movs r1, #0x2e + bl GetMonData + mov r3, sp + lsls r0, r0, #7 + ldrb r2, [r3, #0x17] + movs r1, #0x7f + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x17] + adds r0, r4, #0 + movs r1, #1 + bl GetMonData + str r0, [sp, #0x54] + adds r0, r4, #0 + movs r1, #2 + ldr r2, [sp, #0x8c] + bl GetMonData + ldr r0, [sp, #0x84] + ldr r1, [sp, #0x8c] + bl StringCopy10 + adds r0, r4, #0 + movs r1, #7 + ldr r2, [sp, #0x88] + bl GetMonData + mov r2, sp + movs r6, #0 +_0806506C: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, #1 + cmp r6, #0x57 + bls _0806506C + b _080654CE + .align 2, 0 +_0806507C: .4byte 0x020243E8 +_08065080: .4byte 0xFFFFFC1F +_08065084: .4byte 0xFFF07FFF +_08065088: .4byte 0xFFFFFE0F +_0806508C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065098 + adds r0, r0, r1 + movs r1, #0xb + b _08065406 + .align 2, 0 +_08065098: .4byte 0x020243E8 +_0806509C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080650A8 + adds r0, r0, r1 + movs r1, #0xc + b _08065406 + .align 2, 0 +_080650A8: .4byte 0x020243E8 +_080650AC: + movs r6, #0 + add r2, sp, #0x58 + mov sb, r2 + add r0, sp, #0x60 + mov sl, r0 + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _08065110 + adds r4, r1, r0 + mov r8, sb +_080650C2: + adds r1, r6, #0 + adds r1, #0xd + adds r0, r4, #0 + bl GetMonData + mov r1, r8 + strh r0, [r1] + adds r1, r6, #0 + adds r1, #0x11 + adds r0, r4, #0 + bl GetMonData + mov r2, sl + adds r1, r2, r6 + strb r0, [r1] + movs r0, #2 + add r8, r0 + adds r6, #1 + cmp r6, #3 + ble _080650C2 + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065110 + adds r0, r0, r1 + movs r1, #0x15 + bl GetMonData + mov r1, sb + strb r0, [r1, #0xc] + mov r2, sb + movs r6, #0 +_08065100: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, #1 + cmp r6, #0xf + bls _08065100 + b _080654CE + .align 2, 0 +_08065110: .4byte 0x020243E8 +_08065114: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0806512C + adds r0, r0, r1 + ldrb r1, [r3] + lsls r1, r1, #9 + adds r2, #1 + adds r1, r1, r2 + ldrb r1, [r1] + adds r1, #9 + b _08065406 + .align 2, 0 +_0806512C: .4byte 0x020243E8 +_08065130: + movs r6, #0 + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r2, _08065168 + mov r8, r2 +_0806513C: + adds r1, r6, #0 + adds r1, #0x11 + mov r2, r8 + adds r0, r4, r2 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, #1 + cmp r6, #3 + ble _0806513C + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065168 + adds r0, r0, r1 + movs r1, #0x15 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, #1 + b _080654CE + .align 2, 0 +_08065168: .4byte 0x020243E8 +_0806516C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065184 + adds r0, r0, r1 + ldrb r1, [r3] + lsls r1, r1, #9 + adds r2, #1 + adds r1, r1, r2 + ldrb r1, [r1] + adds r1, #8 + b _080654C6 + .align 2, 0 +_08065184: .4byte 0x020243E8 +_08065188: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065194 + adds r0, r0, r1 + movs r1, #1 + b _080651A2 + .align 2, 0 +_08065194: .4byte 0x020243E8 +_08065198: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080651C4 + adds r0, r0, r1 + movs r1, #0x19 +_080651A2: + bl GetMonData + adds r1, r0, #0 + strb r1, [r7] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + lsrs r0, r0, #8 + strb r0, [r7, #1] + movs r0, #0xff + lsls r0, r0, #0x10 + ands r0, r1 + lsrs r0, r0, #0x10 + strb r0, [r7, #2] + movs r6, #3 + b _080654CE + .align 2, 0 +_080651C4: .4byte 0x020243E8 +_080651C8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080651D4 + adds r0, r0, r1 + movs r1, #0x1a + b _080654C6 + .align 2, 0 +_080651D4: .4byte 0x020243E8 +_080651D8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080651E4 + adds r0, r0, r1 + movs r1, #0x1b + b _080654C6 + .align 2, 0 +_080651E4: .4byte 0x020243E8 +_080651E8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080651F4 + adds r0, r0, r1 + movs r1, #0x1c + b _080654C6 + .align 2, 0 +_080651F4: .4byte 0x020243E8 +_080651F8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065204 + adds r0, r0, r1 + movs r1, #0x1d + b _080654C6 + .align 2, 0 +_08065204: .4byte 0x020243E8 +_08065208: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065214 + adds r0, r0, r1 + movs r1, #0x1e + b _080654C6 + .align 2, 0 +_08065214: .4byte 0x020243E8 +_08065218: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065224 + adds r0, r0, r1 + movs r1, #0x1f + b _080654C6 + .align 2, 0 +_08065224: .4byte 0x020243E8 +_08065228: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065234 + adds r0, r0, r1 + movs r1, #0x20 + b _080654C6 + .align 2, 0 +_08065234: .4byte 0x020243E8 +_08065238: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065244 + adds r0, r0, r1 + movs r1, #0x22 + b _080654C6 + .align 2, 0 +_08065244: .4byte 0x020243E8 +_08065248: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065254 + adds r0, r0, r1 + movs r1, #0x23 + b _080654C6 + .align 2, 0 +_08065254: .4byte 0x020243E8 +_08065258: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065264 + adds r0, r0, r1 + movs r1, #0x24 + b _080654C6 + .align 2, 0 +_08065264: .4byte 0x020243E8 +_08065268: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065274 + adds r0, r0, r1 + movs r1, #0x25 + b _080654C6 + .align 2, 0 +_08065274: .4byte 0x020243E8 +_08065278: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065284 + adds r0, r0, r1 + movs r1, #0x26 + b _080654C6 + .align 2, 0 +_08065284: .4byte 0x020243E8 +_08065288: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _080652D4 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x27 + bl GetMonData + strb r0, [r7] + adds r0, r4, #0 + movs r1, #0x28 + bl GetMonData + strb r0, [r7, #1] + adds r0, r4, #0 + movs r1, #0x29 + bl GetMonData + strb r0, [r7, #2] + adds r0, r4, #0 + movs r1, #0x2a + bl GetMonData + strb r0, [r7, #3] + adds r0, r4, #0 + movs r1, #0x2b + bl GetMonData + strb r0, [r7, #4] + adds r0, r4, #0 + movs r1, #0x2c + bl GetMonData + strb r0, [r7, #5] + movs r6, #6 + b _080654CE + .align 2, 0 +_080652D4: .4byte 0x020243E8 +_080652D8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080652E4 + adds r0, r0, r1 + movs r1, #0x27 + b _080654C6 + .align 2, 0 +_080652E4: .4byte 0x020243E8 +_080652E8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080652F4 + adds r0, r0, r1 + movs r1, #0x28 + b _080654C6 + .align 2, 0 +_080652F4: .4byte 0x020243E8 +_080652F8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065304 + adds r0, r0, r1 + movs r1, #0x29 + b _080654C6 + .align 2, 0 +_08065304: .4byte 0x020243E8 +_08065308: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065314 + adds r0, r0, r1 + movs r1, #0x2a + b _080654C6 + .align 2, 0 +_08065314: .4byte 0x020243E8 +_08065318: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065324 + adds r0, r0, r1 + movs r1, #0x2b + b _080654C6 + .align 2, 0 +_08065324: .4byte 0x020243E8 +_08065328: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065334 + adds r0, r0, r1 + movs r1, #0x2c + b _080654C6 + .align 2, 0 +_08065334: .4byte 0x020243E8 +_08065338: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065344 + adds r0, r0, r1 + movs r1, #0 + b _08065362 + .align 2, 0 +_08065344: .4byte 0x020243E8 +_08065348: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065354 + adds r0, r0, r1 + movs r1, #9 + b _08065406 + .align 2, 0 +_08065354: .4byte 0x020243E8 +_08065358: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065388 + adds r0, r0, r1 + movs r1, #0x37 +_08065362: + bl GetMonData + adds r1, r0, #0 + strb r1, [r7] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + lsrs r0, r0, #8 + strb r0, [r7, #1] + movs r0, #0xff + lsls r0, r0, #0x10 + ands r0, r1 + lsrs r0, r0, #0x10 + strb r0, [r7, #2] + lsrs r0, r1, #0x18 + strb r0, [r7, #3] + movs r6, #4 + b _080654CE + .align 2, 0 +_08065388: .4byte 0x020243E8 +_0806538C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065398 + adds r0, r0, r1 + movs r1, #0x38 + b _080654C6 + .align 2, 0 +_08065398: .4byte 0x020243E8 +_0806539C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080653A8 + adds r0, r0, r1 + movs r1, #0x39 + b _08065406 + .align 2, 0 +_080653A8: .4byte 0x020243E8 +_080653AC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080653B8 + adds r0, r0, r1 + movs r1, #0x3a + b _08065406 + .align 2, 0 +_080653B8: .4byte 0x020243E8 +_080653BC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080653C8 + adds r0, r0, r1 + movs r1, #0x3b + b _08065406 + .align 2, 0 +_080653C8: .4byte 0x020243E8 +_080653CC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080653D8 + adds r0, r0, r1 + movs r1, #0x3c + b _08065406 + .align 2, 0 +_080653D8: .4byte 0x020243E8 +_080653DC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080653E8 + adds r0, r0, r1 + movs r1, #0x3d + b _08065406 + .align 2, 0 +_080653E8: .4byte 0x020243E8 +_080653EC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080653F8 + adds r0, r0, r1 + movs r1, #0x3e + b _08065406 + .align 2, 0 +_080653F8: .4byte 0x020243E8 +_080653FC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065418 + adds r0, r0, r1 + movs r1, #0x3f +_08065406: + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + strb r0, [r7] + lsrs r0, r0, #8 + strb r0, [r7, #1] + movs r6, #2 + b _080654CE + .align 2, 0 +_08065418: .4byte 0x020243E8 +_0806541C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065428 + adds r0, r0, r1 + movs r1, #0x16 + b _080654C6 + .align 2, 0 +_08065428: .4byte 0x020243E8 +_0806542C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065438 + adds r0, r0, r1 + movs r1, #0x17 + b _080654C6 + .align 2, 0 +_08065438: .4byte 0x020243E8 +_0806543C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065448 + adds r0, r0, r1 + movs r1, #0x18 + b _080654C6 + .align 2, 0 +_08065448: .4byte 0x020243E8 +_0806544C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065458 + adds r0, r0, r1 + movs r1, #0x21 + b _080654C6 + .align 2, 0 +_08065458: .4byte 0x020243E8 +_0806545C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065468 + adds r0, r0, r1 + movs r1, #0x2f + b _080654C6 + .align 2, 0 +_08065468: .4byte 0x020243E8 +_0806546C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065478 + adds r0, r0, r1 + movs r1, #0x30 + b _080654C6 + .align 2, 0 +_08065478: .4byte 0x020243E8 +_0806547C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065488 + adds r0, r0, r1 + movs r1, #0x32 + b _080654C6 + .align 2, 0 +_08065488: .4byte 0x020243E8 +_0806548C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065498 + adds r0, r0, r1 + movs r1, #0x33 + b _080654C6 + .align 2, 0 +_08065498: .4byte 0x020243E8 +_0806549C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080654A8 + adds r0, r0, r1 + movs r1, #0x34 + b _080654C6 + .align 2, 0 +_080654A8: .4byte 0x020243E8 +_080654AC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080654B8 + adds r0, r0, r1 + movs r1, #0x35 + b _080654C6 + .align 2, 0 +_080654B8: .4byte 0x020243E8 +_080654BC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080654E0 + adds r0, r0, r1 + movs r1, #0x36 +_080654C6: + bl GetMonData + strb r0, [r7] + movs r6, #1 +_080654CE: + adds r0, r6, #0 + add sp, #0x90 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080654E0: .4byte 0x020243E8 + thumb_func_end CopyLinkOpponentMonData + + thumb_func_start LinkOpponentHandleGetRawMonData +LinkOpponentHandleGetRawMonData: @ 0x080654E4 + push {lr} + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkOpponentHandleGetRawMonData + + thumb_func_start LinkOpponentHandleSetMonData +LinkOpponentHandleSetMonData: @ 0x080654F0 + push {r4, r5, lr} + ldr r1, _08065514 + ldr r0, _08065518 + ldrb r2, [r0] + lsls r0, r2, #9 + adds r1, #2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, #0 + bne _08065520 + ldr r0, _0806551C + lsls r1, r2, #1 + adds r1, r1, r0 + ldrb r0, [r1] + bl SetLinkOpponentMonData + b _0806553E + .align 2, 0 +_08065514: .4byte 0x02022D08 +_08065518: .4byte 0x02023D08 +_0806551C: .4byte 0x02023D12 +_08065520: + ldrb r4, [r1] + movs r5, #0 +_08065524: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _08065532 + adds r0, r5, #0 + bl SetLinkOpponentMonData +_08065532: + lsrs r4, r4, #1 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #5 + bls _08065524 +_0806553E: + bl LinkOpponentBufferExecCompleted + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end LinkOpponentHandleSetMonData + + thumb_func_start SetLinkOpponentMonData +SetLinkOpponentMonData: @ 0x08065548 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x38 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r3, _08065580 + ldrb r0, [r3] + lsls r0, r0, #9 + ldr r2, _08065584 + adds r4, r0, r2 + adds r7, r4, #0 + subs r1, r2, #2 + adds r0, r0, r1 + ldrb r0, [r0] + adds r6, r3, #0 + adds r3, r2, #0 + cmp r0, #0x3b + bls _08065576 + bl _08065E54 +_08065576: + lsls r0, r0, #2 + ldr r1, _08065588 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08065580: .4byte 0x02023D08 +_08065584: .4byte 0x02022D0B +_08065588: .4byte 0x0806558C +_0806558C: @ jump table + .4byte _0806567C @ case 0 + .4byte _08065814 @ case 1 + .4byte _08065830 @ case 2 + .4byte _0806584C @ case 3 + .4byte _080658A0 @ case 4 + .4byte _080658A0 @ case 5 + .4byte _080658A0 @ case 6 + .4byte _080658A0 @ case 7 + .4byte _080658C0 @ case 8 + .4byte _08065928 @ case 9 + .4byte _08065928 @ case 10 + .4byte _08065928 @ case 11 + .4byte _08065928 @ case 12 + .4byte _08065E54 @ case 13 + .4byte _08065E54 @ case 14 + .4byte _08065E54 @ case 15 + .4byte _08065E54 @ case 16 + .4byte _08065950 @ case 17 + .4byte _0806596C @ case 18 + .4byte _08065988 @ case 19 + .4byte _080659A4 @ case 20 + .4byte _080659C0 @ case 21 + .4byte _080659DC @ case 22 + .4byte _080659F8 @ case 23 + .4byte _08065A14 @ case 24 + .4byte _08065A30 @ case 25 + .4byte _08065A4C @ case 26 + .4byte _08065A68 @ case 27 + .4byte _08065A84 @ case 28 + .4byte _08065AA0 @ case 29 + .4byte _08065ABC @ case 30 + .4byte _08065AD8 @ case 31 + .4byte _08065B4C @ case 32 + .4byte _08065B68 @ case 33 + .4byte _08065B84 @ case 34 + .4byte _08065BA0 @ case 35 + .4byte _08065BBC @ case 36 + .4byte _08065BD8 @ case 37 + .4byte _08065BF4 @ case 38 + .4byte _08065C10 @ case 39 + .4byte _08065C2C @ case 40 + .4byte _08065C48 @ case 41 + .4byte _08065C64 @ case 42 + .4byte _08065C80 @ case 43 + .4byte _08065C9C @ case 44 + .4byte _08065CB8 @ case 45 + .4byte _08065CD4 @ case 46 + .4byte _08065CF0 @ case 47 + .4byte _08065D0C @ case 48 + .4byte _08065D28 @ case 49 + .4byte _08065D44 @ case 50 + .4byte _08065D60 @ case 51 + .4byte _08065D7C @ case 52 + .4byte _08065D98 @ case 53 + .4byte _08065DB4 @ case 54 + .4byte _08065DD0 @ case 55 + .4byte _08065DEC @ case 56 + .4byte _08065E08 @ case 57 + .4byte _08065E24 @ case 58 + .4byte _08065E40 @ case 59 +_0806567C: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _08065810 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0xb + adds r2, r7, #0 + bl SetMonData + adds r2, r7, #0 + adds r2, #0x2e + adds r0, r4, #0 + movs r1, #0xc + bl SetMonData + movs r0, #0 + mov r8, r0 + movs r0, #0x3b + adds r0, r0, r7 + mov sl, r0 + adds r0, r7, #0 + adds r0, #0x2b + str r0, [sp, #0x20] + adds r0, #0x19 + str r0, [sp, #0x28] + adds r0, #4 + str r0, [sp, #0x2c] + adds r0, #4 + str r0, [sp, #0x30] + subs r0, #0x22 + str r0, [sp, #0x1c] + subs r0, #2 + str r0, [sp, #0x18] + adds r0, #4 + str r0, [sp, #0x24] + adds r0, r7, #2 + str r0, [sp, #4] + adds r0, r7, #4 + str r0, [sp, #8] + adds r0, r7, #6 + str r0, [sp, #0xc] + adds r0, #2 + str r0, [sp, #0x10] + adds r0, #2 + str r0, [sp, #0x14] + mov sb, r4 + adds r6, r7, #0 + adds r6, #0x24 + adds r4, r7, #0 + adds r4, #0xc +_080656E2: + mov r1, r8 + adds r1, #0xd + mov r0, sb + adds r2, r4, #0 + bl SetMonData + mov r1, r8 + adds r1, #0x11 + mov r0, sb + adds r2, r6, #0 + bl SetMonData + adds r6, #1 + adds r4, #2 + movs r0, #1 + add r8, r0 + mov r0, r8 + cmp r0, #3 + ble _080656E2 + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _08065810 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x15 + mov r2, sl + bl SetMonData + adds r0, r4, #0 + movs r1, #0x20 + ldr r2, [sp, #0x20] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x19 + ldr r2, [sp, #0x28] + bl SetMonData + ldrb r0, [r7, #0x14] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1b + mov r1, sp + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x27 + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r7, #0x14] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x28 + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r7, #0x15] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x29 + mov r2, sp + bl SetMonData + mov r1, sp + ldr r0, [r7, #0x14] + lsls r0, r0, #0xc + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x2a + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r7, #0x16] + lsls r0, r0, #0x17 + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x2b + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r7, #0x17] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x2c + mov r2, sp + bl SetMonData + adds r0, r4, #0 + movs r1, #0 + ldr r2, [sp, #0x2c] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x37 + ldr r2, [sp, #0x30] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x38 + ldr r2, [sp, #0x1c] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x39 + ldr r2, [sp, #0x18] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3a + ldr r2, [sp, #0x24] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3b + ldr r2, [sp, #4] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3c + ldr r2, [sp, #8] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3d + ldr r2, [sp, #0xc] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3e + ldr r2, [sp, #0x10] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3f + ldr r2, [sp, #0x14] + bl SetMonData + b _08065E54 + .align 2, 0 +_08065810: .4byte 0x020243E8 +_08065814: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0806582C + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0xb + bl SetMonData + b _08065E54 + .align 2, 0 +_0806582C: .4byte 0x020243E8 +_08065830: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065848 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0xc + bl SetMonData + b _08065E54 + .align 2, 0 +_08065848: .4byte 0x020243E8 +_0806584C: + movs r0, #0 + mov r8, r0 + movs r0, #0xc + adds r0, r0, r4 + mov sb, r0 + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _0806589C + adds r7, r1, r0 + adds r6, r4, #0 + adds r6, #8 +_08065864: + mov r1, r8 + adds r1, #0xd + adds r0, r7, #0 + adds r2, r4, #0 + bl SetMonData + mov r1, r8 + adds r1, #0x11 + adds r0, r7, #0 + adds r2, r6, #0 + bl SetMonData + adds r6, #1 + adds r4, #2 + movs r0, #1 + add r8, r0 + mov r0, r8 + cmp r0, #3 + ble _08065864 + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0806589C + adds r0, r0, r1 + movs r1, #0x15 + mov r2, sb + bl SetMonData + b _08065E54 + .align 2, 0 +_0806589C: .4byte 0x020243E8 +_080658A0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080658B8 + adds r0, r0, r1 + ldr r3, _080658BC + ldrb r2, [r6] + lsls r2, r2, #9 + adds r1, r3, #1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, #9 + b _0806593E + .align 2, 0 +_080658B8: .4byte 0x020243E8 +_080658BC: .4byte 0x02022D08 +_080658C0: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _08065924 + adds r4, r4, r0 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + adds r0, r4, #0 + movs r1, #0x11 + str r3, [sp, #0x34] + bl SetMonData + ldrb r2, [r6] + lsls r2, r2, #9 + ldr r3, [sp, #0x34] + adds r0, r3, #1 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x12 + bl SetMonData + ldrb r2, [r6] + lsls r2, r2, #9 + ldr r3, [sp, #0x34] + adds r0, r3, #2 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x13 + bl SetMonData + ldrb r2, [r6] + lsls r2, r2, #9 + ldr r3, [sp, #0x34] + adds r0, r3, #3 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x14 + bl SetMonData + ldrb r2, [r6] + lsls r2, r2, #9 + ldr r3, [sp, #0x34] + adds r0, r3, #4 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x15 + bl SetMonData + b _08065E54 + .align 2, 0 +_08065924: .4byte 0x020243E8 +_08065928: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065948 + adds r0, r0, r1 + ldr r3, _0806594C + ldrb r2, [r6] + lsls r2, r2, #9 + adds r1, r3, #1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, #8 +_0806593E: + adds r3, #3 + adds r2, r2, r3 + bl SetMonData + b _08065E54 + .align 2, 0 +_08065948: .4byte 0x020243E8 +_0806594C: .4byte 0x02022D08 +_08065950: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065968 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #1 + bl SetMonData + b _08065E54 + .align 2, 0 +_08065968: .4byte 0x020243E8 +_0806596C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065984 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x19 + bl SetMonData + b _08065E54 + .align 2, 0 +_08065984: .4byte 0x020243E8 +_08065988: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080659A0 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x1a + bl SetMonData + b _08065E54 + .align 2, 0 +_080659A0: .4byte 0x020243E8 +_080659A4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080659BC + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x1b + bl SetMonData + b _08065E54 + .align 2, 0 +_080659BC: .4byte 0x020243E8 +_080659C0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080659D8 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x1c + bl SetMonData + b _08065E54 + .align 2, 0 +_080659D8: .4byte 0x020243E8 +_080659DC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080659F4 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x1d + bl SetMonData + b _08065E54 + .align 2, 0 +_080659F4: .4byte 0x020243E8 +_080659F8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065A10 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x1e + bl SetMonData + b _08065E54 + .align 2, 0 +_08065A10: .4byte 0x020243E8 +_08065A14: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065A2C + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x1f + bl SetMonData + b _08065E54 + .align 2, 0 +_08065A2C: .4byte 0x020243E8 +_08065A30: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065A48 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x20 + bl SetMonData + b _08065E54 + .align 2, 0 +_08065A48: .4byte 0x020243E8 +_08065A4C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065A64 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x22 + bl SetMonData + b _08065E54 + .align 2, 0 +_08065A64: .4byte 0x020243E8 +_08065A68: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065A80 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x23 + bl SetMonData + b _08065E54 + .align 2, 0 +_08065A80: .4byte 0x020243E8 +_08065A84: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065A9C + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x24 + bl SetMonData + b _08065E54 + .align 2, 0 +_08065A9C: .4byte 0x020243E8 +_08065AA0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065AB8 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x25 + bl SetMonData + b _08065E54 + .align 2, 0 +_08065AB8: .4byte 0x020243E8 +_08065ABC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065AD4 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x26 + bl SetMonData + b _08065E54 + .align 2, 0 +_08065AD4: .4byte 0x020243E8 +_08065AD8: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _08065B48 + adds r4, r4, r0 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + adds r0, r4, #0 + movs r1, #0x27 + str r3, [sp, #0x34] + bl SetMonData + ldrb r2, [r6] + lsls r2, r2, #9 + ldr r3, [sp, #0x34] + adds r0, r3, #1 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x28 + bl SetMonData + ldrb r2, [r6] + lsls r2, r2, #9 + ldr r3, [sp, #0x34] + adds r0, r3, #2 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x29 + bl SetMonData + ldrb r2, [r6] + lsls r2, r2, #9 + ldr r3, [sp, #0x34] + adds r0, r3, #3 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x2a + bl SetMonData + ldrb r2, [r6] + lsls r2, r2, #9 + ldr r3, [sp, #0x34] + adds r0, r3, #4 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x2b + bl SetMonData + ldrb r2, [r6] + lsls r2, r2, #9 + ldr r3, [sp, #0x34] + adds r0, r3, #5 + adds r2, r2, r0 + adds r0, r4, #0 + b _08065BE6 + .align 2, 0 +_08065B48: .4byte 0x020243E8 +_08065B4C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065B64 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x27 + bl SetMonData + b _08065E54 + .align 2, 0 +_08065B64: .4byte 0x020243E8 +_08065B68: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065B80 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x28 + bl SetMonData + b _08065E54 + .align 2, 0 +_08065B80: .4byte 0x020243E8 +_08065B84: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065B9C + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x29 + bl SetMonData + b _08065E54 + .align 2, 0 +_08065B9C: .4byte 0x020243E8 +_08065BA0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065BB8 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x2a + bl SetMonData + b _08065E54 + .align 2, 0 +_08065BB8: .4byte 0x020243E8 +_08065BBC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065BD4 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x2b + bl SetMonData + b _08065E54 + .align 2, 0 +_08065BD4: .4byte 0x020243E8 +_08065BD8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065BF0 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 +_08065BE6: + movs r1, #0x2c + bl SetMonData + b _08065E54 + .align 2, 0 +_08065BF0: .4byte 0x020243E8 +_08065BF4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065C0C + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0 + bl SetMonData + b _08065E54 + .align 2, 0 +_08065C0C: .4byte 0x020243E8 +_08065C10: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065C28 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #9 + bl SetMonData + b _08065E54 + .align 2, 0 +_08065C28: .4byte 0x020243E8 +_08065C2C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065C44 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x37 + bl SetMonData + b _08065E54 + .align 2, 0 +_08065C44: .4byte 0x020243E8 +_08065C48: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065C60 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x38 + bl SetMonData + b _08065E54 + .align 2, 0 +_08065C60: .4byte 0x020243E8 +_08065C64: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065C7C + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x39 + bl SetMonData + b _08065E54 + .align 2, 0 +_08065C7C: .4byte 0x020243E8 +_08065C80: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065C98 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x3a + bl SetMonData + b _08065E54 + .align 2, 0 +_08065C98: .4byte 0x020243E8 +_08065C9C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065CB4 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x3b + bl SetMonData + b _08065E54 + .align 2, 0 +_08065CB4: .4byte 0x020243E8 +_08065CB8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065CD0 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x3c + bl SetMonData + b _08065E54 + .align 2, 0 +_08065CD0: .4byte 0x020243E8 +_08065CD4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065CEC + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x3d + bl SetMonData + b _08065E54 + .align 2, 0 +_08065CEC: .4byte 0x020243E8 +_08065CF0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065D08 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x3e + bl SetMonData + b _08065E54 + .align 2, 0 +_08065D08: .4byte 0x020243E8 +_08065D0C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065D24 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x3f + bl SetMonData + b _08065E54 + .align 2, 0 +_08065D24: .4byte 0x020243E8 +_08065D28: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065D40 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x16 + bl SetMonData + b _08065E54 + .align 2, 0 +_08065D40: .4byte 0x020243E8 +_08065D44: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065D5C + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x17 + bl SetMonData + b _08065E54 + .align 2, 0 +_08065D5C: .4byte 0x020243E8 +_08065D60: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065D78 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x18 + bl SetMonData + b _08065E54 + .align 2, 0 +_08065D78: .4byte 0x020243E8 +_08065D7C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065D94 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x21 + bl SetMonData + b _08065E54 + .align 2, 0 +_08065D94: .4byte 0x020243E8 +_08065D98: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065DB0 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x2f + bl SetMonData + b _08065E54 + .align 2, 0 +_08065DB0: .4byte 0x020243E8 +_08065DB4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065DCC + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x30 + bl SetMonData + b _08065E54 + .align 2, 0 +_08065DCC: .4byte 0x020243E8 +_08065DD0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065DE8 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x32 + bl SetMonData + b _08065E54 + .align 2, 0 +_08065DE8: .4byte 0x020243E8 +_08065DEC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065E04 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x33 + bl SetMonData + b _08065E54 + .align 2, 0 +_08065E04: .4byte 0x020243E8 +_08065E08: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065E20 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x34 + bl SetMonData + b _08065E54 + .align 2, 0 +_08065E20: .4byte 0x020243E8 +_08065E24: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065E3C + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x35 + bl SetMonData + b _08065E54 + .align 2, 0 +_08065E3C: .4byte 0x020243E8 +_08065E40: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08065E64 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x36 + bl SetMonData +_08065E54: + add sp, #0x38 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08065E64: .4byte 0x020243E8 + thumb_func_end SetLinkOpponentMonData + + thumb_func_start LinkOpponentHandleSetRawMonData +LinkOpponentHandleSetRawMonData: @ 0x08065E68 + push {r4, r5, r6, r7, lr} + ldr r1, _08065ECC + ldr r7, _08065ED0 + ldrb r2, [r7] + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + adds r3, r1, #0 + muls r3, r0, r3 + ldr r4, _08065ED4 + lsls r2, r2, #9 + adds r0, r4, #1 + adds r0, r2, r0 + ldrb r0, [r0] + ldr r1, _08065ED8 + adds r0, r0, r1 + adds r5, r3, r0 + movs r3, #0 + adds r0, r4, #2 + adds r2, r2, r0 + ldrb r2, [r2] + cmp r3, r2 + bhs _08065EC0 + adds r6, r4, #0 + adds r2, r7, #0 + adds r4, r0, #0 +_08065E9E: + adds r1, r5, r3 + ldrb r0, [r2] + lsls r0, r0, #9 + adds r0, #3 + adds r0, r3, r0 + adds r0, r0, r6 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldrb r0, [r2] + lsls r0, r0, #9 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r3, r0 + blo _08065E9E +_08065EC0: + bl LinkOpponentBufferExecCompleted + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08065ECC: .4byte 0x02023D12 +_08065ED0: .4byte 0x02023D08 +_08065ED4: .4byte 0x02022D08 +_08065ED8: .4byte 0x020243E8 + thumb_func_end LinkOpponentHandleSetRawMonData + + thumb_func_start LinkOpponentHandleLoadMonSprite +LinkOpponentHandleLoadMonSprite: @ 0x08065EDC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r7, _08066004 + ldr r6, _08066008 + ldrb r0, [r6] + lsls r0, r0, #1 + adds r0, r0, r7 + ldrh r0, [r0] + movs r1, #0x64 + mov sl, r1 + mov r2, sl + muls r2, r0, r2 + adds r0, r2, #0 + ldr r1, _0806600C + mov sb, r1 + add r0, sb + movs r1, #0xb + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldrb r1, [r6] + lsls r0, r1, #1 + adds r0, r0, r7 + ldrh r0, [r0] + mov r2, sl + muls r2, r0, r2 + adds r0, r2, #0 + add r0, sb + bl BattleLoadOpponentMonSpriteGfx + ldrb r0, [r6] + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl SetMultiuseSpriteTemplateToPokemon + ldr r0, _08066010 + mov r8, r0 + ldrb r0, [r6] + movs r1, #2 + bl GetBattlerSpriteCoord + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldrb r0, [r6] + bl GetBattlerSpriteDefault_Y + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldrb r0, [r6] + bl GetBattlerSpriteSubpriority + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r0, r8 + adds r1, r5, #0 + adds r2, r4, #0 + bl CreateSprite + ldr r4, _08066014 + ldrb r1, [r6] + adds r1, r1, r4 + strb r0, [r1] + ldr r5, _08066018 + ldrb r0, [r6] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _0806601C + strh r1, [r0, #0x24] + ldrb r2, [r6] + adds r0, r2, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r2, [r0, #0x2e] + ldrb r3, [r6] + adds r0, r3, r4 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + lsls r3, r3, #4 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #5] + ldrb r2, [r6] + adds r4, r2, r4 + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _08066020 + adds r2, r2, r1 + ldrb r1, [r2] + bl StartSpriteAnim + ldrb r4, [r6] + lsls r0, r4, #1 + adds r0, r0, r7 + ldrh r0, [r0] + mov r1, sl + muls r1, r0, r1 + adds r0, r1, #0 + add r0, sb + movs r1, #0xb + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl SetBattlerShadowSpriteCallback + ldr r1, _08066024 + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08066028 + str r1, [r0] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08066004: .4byte 0x02023D12 +_08066008: .4byte 0x02023D08 +_0806600C: .4byte 0x020243E8 +_08066010: .4byte 0x02024640 +_08066014: .4byte 0x02023E88 +_08066018: .4byte 0x020205AC +_0806601C: .4byte 0x0000FF10 +_08066020: .4byte 0x02024188 +_08066024: .4byte 0x03005AC0 +_08066028: .4byte 0x080646E9 + thumb_func_end LinkOpponentHandleLoadMonSprite + + thumb_func_start LinkOpponentHandleSwitchInAnim +LinkOpponentHandleSwitchInAnim: @ 0x0806602C + push {r4, lr} + ldr r1, _08066064 + ldr r4, _08066068 + ldrb r0, [r4] + lsls r2, r0, #1 + adds r2, r2, r1 + ldr r3, _0806606C + lsls r0, r0, #9 + adds r1, r3, #1 + adds r0, r0, r1 + ldrb r0, [r0] + strh r0, [r2] + ldrb r0, [r4] + lsls r1, r0, #9 + adds r3, #2 + adds r1, r1, r3 + ldrb r1, [r1] + bl sub_08066078 + ldr r1, _08066070 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08066074 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08066064: .4byte 0x02023D12 +_08066068: .4byte 0x02023D08 +_0806606C: .4byte 0x02022D08 +_08066070: .4byte 0x03005AC0 +_08066074: .4byte 0x08064B25 + thumb_func_end LinkOpponentHandleSwitchInAnim + + thumb_func_start sub_08066078 +sub_08066078: @ 0x08066078 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r6, #0 + bl ClearTemporarySpeciesSpriteData + ldr r0, _080661E0 + lsls r4, r6, #1 + adds r4, r4, r0 + ldr r0, _080661E4 + lsls r1, r6, #9 + adds r0, #1 + adds r1, r1, r0 + ldrb r0, [r1] + strh r0, [r4] + ldrh r0, [r4] + movs r1, #0x64 + mov sb, r1 + mov r1, sb + muls r1, r0, r1 + adds r0, r1, #0 + ldr r5, _080661E8 + adds r0, r0, r5 + movs r1, #0xb + bl GetMonData + mov r8, r0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + ldr r0, _080661EC + bl CreateInvisibleSpriteWithCallback + ldr r1, _080661F0 + mov sl, r1 + add sl, r6 + mov r1, sl + strb r0, [r1] + ldrh r0, [r4] + mov r1, sb + muls r1, r0, r1 + adds r0, r1, #0 + adds r0, r0, r5 + adds r1, r6, #0 + bl BattleLoadOpponentMonSpriteGfx + adds r0, r6, #0 + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r0, r8 + bl SetMultiuseSpriteTemplateToPokemon + ldr r0, _080661F4 + mov sb, r0 + adds r0, r6, #0 + movs r1, #2 + bl GetBattlerSpriteCoord + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + adds r0, r6, #0 + bl GetBattlerSpriteDefault_Y + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r6, #0 + bl GetBattlerSpriteSubpriority + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r0, sb + adds r1, r5, #0 + adds r2, r4, #0 + bl CreateSprite + ldr r4, _080661F8 + adds r4, r6, r4 + strb r0, [r4] + ldr r5, _080661FC + mov r0, sl + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r1, [r4] + strh r1, [r0, #0x30] + mov r0, sl + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r6, [r0, #0x32] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r6, [r0, #0x2e] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + mov r1, r8 + strh r1, [r0, #0x32] + ldrb r0, [r4] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + lsls r3, r6, #4 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #5] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _08066200 + adds r6, r6, r1 + ldrb r1, [r6] + bl StartSpriteAnim + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r5, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _08066204 + str r1, [r0] + movs r0, #0 + movs r1, #0xfe + bl DoPokeballSendOutAnimation + mov r1, sl + ldrb r2, [r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r1, #0x2e] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080661E0: .4byte 0x02023D12 +_080661E4: .4byte 0x02022D08 +_080661E8: .4byte 0x020243E8 +_080661EC: .4byte 0x0805D331 +_080661F0: .4byte 0x03005ADC +_080661F4: .4byte 0x02024640 +_080661F8: .4byte 0x02023E88 +_080661FC: .4byte 0x020205AC +_08066200: .4byte 0x02024188 +_08066204: .4byte 0x08007141 + thumb_func_end sub_08066078 + + thumb_func_start LinkOpponentHandleReturnMonToBall +LinkOpponentHandleReturnMonToBall: @ 0x08066208 + push {r4, r5, r6, lr} + ldr r1, _0806623C + ldr r6, _08066240 + ldrb r2, [r6] + lsls r0, r2, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r3, [r0] + cmp r3, #0 + bne _08066250 + ldr r0, _08066244 + ldr r0, [r0] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + strb r3, [r0, #4] + ldr r1, _08066248 + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0806624C + str r1, [r0] + b _0806628C + .align 2, 0 +_0806623C: .4byte 0x02022D08 +_08066240: .4byte 0x02023D08 +_08066244: .4byte 0x02024174 +_08066248: .4byte 0x03005AC0 +_0806624C: .4byte 0x080662A1 +_08066250: + ldr r5, _08066294 + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _08066298 + adds r0, r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + ldrb r0, [r6] + bl HideBattlerShadowSprite + ldr r1, _0806629C + ldrb r0, [r6] + adds r0, r0, r1 + ldrb r0, [r0] + bl SetHealthboxSpriteInvisible + bl LinkOpponentBufferExecCompleted +_0806628C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08066294: .4byte 0x02023E88 +_08066298: .4byte 0x020205AC +_0806629C: .4byte 0x03005AD0 + thumb_func_end LinkOpponentHandleReturnMonToBall + + thumb_func_start sub_080662A0 +sub_080662A0: @ 0x080662A0 + push {r4, r5, r6, lr} + ldr r6, _080662C0 + ldr r4, [r6] + ldr r5, _080662C4 + ldrb r2, [r5] + ldr r1, [r4, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r3, r0, r1 + ldrb r0, [r3, #4] + cmp r0, #0 + beq _080662C8 + cmp r0, #1 + beq _080662F6 + b _0806631E + .align 2, 0 +_080662C0: .4byte 0x02024174 +_080662C4: .4byte 0x02023D08 +_080662C8: + ldr r1, [r4] + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080662E2 + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #5 + bl InitAndLaunchSpecialAnimation +_080662E2: + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #1 + strb r1, [r0, #4] + b _0806631E +_080662F6: + ldrb r1, [r3] + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0806631E + strb r0, [r3, #4] + ldrb r2, [r5] + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #2 + bl InitAndLaunchSpecialAnimation + ldr r1, _08066324 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08066328 + str r1, [r0] +_0806631E: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08066324: .4byte 0x03005AC0 +_08066328: .4byte 0x0806483D + thumb_func_end sub_080662A0 + + thumb_func_start LinkOpponentHandleDrawTrainerPic +LinkOpponentHandleDrawTrainerPic: @ 0x0806632C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r4, _0806636C + ldr r0, [r4] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08066424 + ldr r5, _08066370 + ldrb r0, [r5] + bl GetBattlerPosition + movs r1, #2 + ands r1, r0 + movs r7, #0xc8 + cmp r1, #0 + beq _08066354 + movs r7, #0x98 +_08066354: + ldr r0, [r4] + movs r1, #0x80 + lsls r1, r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0806638C + ldrb r0, [r5] + cmp r0, #1 + bne _08066378 + ldr r0, _08066374 + b _0806637A + .align 2, 0 +_0806636C: .4byte 0x02022C90 +_08066370: .4byte 0x02023D08 +_08066374: .4byte 0x0203886A +_08066378: + ldr r0, _08066388 +_0806637A: + ldrh r0, [r0] + bl GetFrontierTrainerFrontSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _08066530 + .align 2, 0 +_08066388: .4byte 0x0203886C +_0806638C: + ldrb r0, [r5] + bl GetBattlerMultiplayerId + ldr r6, _080663D4 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + movs r4, #0xff + ldrb r0, [r1] + cmp r0, #4 + beq _080663BC + ldrb r0, [r5] + bl GetBattlerMultiplayerId + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrh r1, [r1] + adds r0, r4, #0 + ands r0, r1 + cmp r0, #5 + bne _080663D8 +_080663BC: + ldrb r0, [r5] + bl GetBattlerMultiplayerId + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrb r0, [r1, #0x13] + cmp r0, #0 + bne _0806648E + b _080664A0 + .align 2, 0 +_080663D4: .4byte 0x020226A0 +_080663D8: + ldrb r0, [r5] + bl GetBattlerMultiplayerId + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrh r1, [r1] + adds r0, r4, #0 + ands r0, r1 + cmp r0, #2 + beq _08066406 + ldrb r0, [r5] + bl GetBattlerMultiplayerId + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrh r0, [r1] + ands r4, r0 + cmp r4, #1 + bne _0806641C +_08066406: + ldrb r0, [r5] + bl GetBattlerMultiplayerId + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrb r0, [r1, #0x13] + cmp r0, #0 + bne _080664FA + b _08066508 +_0806641C: + ldrb r0, [r5] + bl GetBattlerMultiplayerId + b _0806651E +_08066424: + movs r7, #0xb0 + ldr r0, _08066438 + ldrh r1, [r0] + movs r0, #0xc0 + lsls r0, r0, #4 + cmp r1, r0 + bne _0806643C + bl sub_08068688 + b _0806652C + .align 2, 0 +_08066438: .4byte 0x0203886A +_0806643C: + bl GetMultiplayerId + ldr r6, _08066498 + movs r5, #1 + eors r0, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + movs r4, #0xff + ldrb r0, [r1] + cmp r0, #4 + beq _08066476 + bl GetMultiplayerId + eors r0, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrh r1, [r1] + adds r0, r4, #0 + ands r0, r1 + cmp r0, #5 + bne _080664AC +_08066476: + bl GetMultiplayerId + eors r0, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrb r0, [r1, #0x13] + cmp r0, #0 + beq _080664A0 +_0806648E: + ldr r0, _0806649C + adds r0, #0x4f + ldrb r0, [r0] + b _08066530 + .align 2, 0 +_08066498: .4byte 0x020226A0 +_0806649C: .4byte 0x082EFF00 +_080664A0: + ldr r0, _080664A8 + adds r0, #0x4e + ldrb r0, [r0] + b _08066530 + .align 2, 0 +_080664A8: .4byte 0x082EFF00 +_080664AC: + bl GetMultiplayerId + eors r0, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrh r1, [r1] + adds r0, r4, #0 + ands r0, r1 + cmp r0, #2 + beq _080664E2 + bl GetMultiplayerId + eors r0, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrh r0, [r1] + ands r4, r0 + cmp r4, #1 + bne _08066514 +_080664E2: + bl GetMultiplayerId + eors r0, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrb r0, [r1, #0x13] + cmp r0, #0 + beq _08066508 +_080664FA: + ldr r0, _08066504 + adds r0, #0x51 + ldrb r0, [r0] + b _08066530 + .align 2, 0 +_08066504: .4byte 0x082EFF00 +_08066508: + ldr r0, _08066510 + adds r0, #0x50 + ldrb r0, [r0] + b _08066530 + .align 2, 0 +_08066510: .4byte 0x082EFF00 +_08066514: + bl GetMultiplayerId + eors r0, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_0806651E: + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrb r0, [r1, #0x13] + bl PlayerGenderToFrontTrainerPicId +_0806652C: + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_08066530: + mov r8, r0 + ldr r5, _08066614 + ldrb r1, [r5] + bl DecompressTrainerFrontPic + ldrb r0, [r5] + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r0, r8 + bl SetMultiuseSpriteTemplateToTrainerBack + ldr r6, _08066618 + mov sb, r7 + ldr r1, _0806661C + mov r2, r8 + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r0, [r0] + movs r4, #8 + subs r4, r4, r0 + lsls r4, r4, #0x12 + movs r0, #0xa0 + lsls r0, r0, #0xe + adds r4, r4, r0 + asrs r4, r4, #0x10 + ldrb r0, [r5] + bl GetBattlerSpriteSubpriority + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r6, #0 + mov r1, sb + adds r2, r4, #0 + bl CreateSprite + ldr r6, _08066620 + ldrb r1, [r5] + adds r1, r1, r6 + strb r0, [r1] + ldr r4, _08066624 + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _08066628 + strh r1, [r0, #0x24] + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #2 + strh r1, [r0, #0x2e] + ldr r1, _0806662C + mov r2, r8 + lsls r0, r2, #3 + adds r0, r0, r1 + ldrh r0, [r0, #4] + bl IndexOfSpritePaletteTag + ldrb r1, [r5] + adds r1, r1, r6 + ldrb r1, [r1] + lsls r2, r1, #4 + adds r2, r2, r1 + lsls r2, r2, #2 + adds r2, r2, r4 + lsls r0, r0, #4 + ldrb r3, [r2, #5] + movs r1, #0xf + ands r1, r3 + orrs r1, r0 + strb r1, [r2, #5] + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + mov r1, r8 + strh r1, [r0, #6] + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, #0x1c + adds r0, r0, r4 + ldr r1, _08066630 + str r1, [r0] + ldr r1, _08066634 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08066638 + str r1, [r0] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08066614: .4byte 0x02023D08 +_08066618: .4byte 0x02024640 +_0806661C: .4byte 0x082D8D70 +_08066620: .4byte 0x02023E88 +_08066624: .4byte 0x020205AC +_08066628: .4byte 0x0000FF10 +_0806662C: .4byte 0x082D91CC +_08066630: .4byte 0x0805D3C9 +_08066634: .4byte 0x03005AC0 +_08066638: .4byte 0x08063FE5 + thumb_func_end LinkOpponentHandleDrawTrainerPic + + thumb_func_start LinkOpponentHandleTrainerSlide +LinkOpponentHandleTrainerSlide: @ 0x0806663C + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + ldr r0, _08066650 + ldrb r0, [r0] + cmp r0, #1 + bne _08066658 + ldr r0, _08066654 + b _0806665A + .align 2, 0 +_08066650: .4byte 0x02023D08 +_08066654: .4byte 0x0203886A +_08066658: + ldr r0, _0806674C +_0806665A: + ldrh r0, [r0] + bl GetFrontierTrainerFrontSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r6, _08066750 + ldrb r1, [r6] + bl DecompressTrainerFrontPic + ldrb r0, [r6] + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r0, r8 + bl SetMultiuseSpriteTemplateToTrainerBack + ldr r0, _08066754 + ldr r2, _08066758 + mov r3, r8 + lsls r1, r3, #2 + adds r1, r1, r2 + ldrb r1, [r1] + movs r2, #8 + subs r2, r2, r1 + lsls r2, r2, #0x12 + movs r1, #0xa0 + lsls r1, r1, #0xe + adds r2, r2, r1 + asrs r2, r2, #0x10 + movs r1, #0xb0 + movs r3, #0x1e + bl CreateSprite + ldr r5, _0806675C + ldrb r1, [r6] + adds r1, r1, r5 + strb r0, [r1] + ldr r4, _08066760 + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0x60 + strh r1, [r0, #0x24] + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r0, #0x20] + adds r1, #0x20 + strh r1, [r0, #0x20] + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _08066764 + strh r1, [r0, #0x2e] + ldr r1, _08066768 + mov r2, r8 + lsls r0, r2, #3 + adds r0, r0, r1 + ldrh r0, [r0, #4] + bl IndexOfSpritePaletteTag + ldrb r1, [r6] + adds r1, r1, r5 + ldrb r1, [r1] + lsls r2, r1, #4 + adds r2, r2, r1 + lsls r2, r2, #2 + adds r2, r2, r4 + lsls r0, r0, #4 + ldrb r3, [r2, #5] + movs r1, #0xf + ands r1, r3 + orrs r1, r0 + strb r1, [r2, #5] + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + mov r3, r8 + strh r3, [r0, #6] + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, #0x1c + adds r0, r0, r4 + ldr r1, _0806676C + str r1, [r0] + ldr r1, _08066770 + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08066774 + str r1, [r0] + bl LinkOpponentBufferExecCompleted + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0806674C: .4byte 0x0203886C +_08066750: .4byte 0x02023D08 +_08066754: .4byte 0x02024640 +_08066758: .4byte 0x082D8D70 +_0806675C: .4byte 0x02023E88 +_08066760: .4byte 0x020205AC +_08066764: .4byte 0x0000FFFE +_08066768: .4byte 0x082D91CC +_0806676C: .4byte 0x0805D3C9 +_08066770: .4byte 0x03005AC0 +_08066774: .4byte 0x0806401D + thumb_func_end LinkOpponentHandleTrainerSlide + + thumb_func_start LinkOpponentHandleTrainerSlideBack +LinkOpponentHandleTrainerSlideBack: @ 0x08066778 + push {r4, r5, r6, lr} + ldr r6, _08066808 + ldr r4, _0806680C + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r5, _08066810 + adds r0, r0, r5 + bl SetSpritePrimaryCoordsFromSecondaryCoords + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0x23 + strh r1, [r0, #0x2e] + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0x8c + lsls r1, r1, #1 + strh r1, [r0, #0x32] + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrh r1, [r0, #0x22] + strh r1, [r0, #0x36] + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r5, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _08066814 + str r1, [r0] + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _08066818 + bl StoreSpriteCallbackInData6 + ldr r1, _0806681C + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08066820 + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08066808: .4byte 0x02023E88 +_0806680C: .4byte 0x02023D08 +_08066810: .4byte 0x020205AC +_08066814: .4byte 0x080A67B5 +_08066818: .4byte 0x08007141 +_0806681C: .4byte 0x03005AC0 +_08066820: .4byte 0x08064055 + thumb_func_end LinkOpponentHandleTrainerSlideBack + + thumb_func_start LinkOpponentHandleFaintAnimation +LinkOpponentHandleFaintAnimation: @ 0x08066824 + push {r4, r5, r6, lr} + ldr r6, _08066870 + ldr r4, [r6] + ldr r5, _08066874 + ldrb r2, [r5] + ldr r0, [r4, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r3, r1, r0 + ldrb r0, [r3, #4] + cmp r0, #0 + bne _08066878 + ldr r1, [r4] + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08066858 + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #5 + bl InitAndLaunchSpecialAnimation +_08066858: + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #4] + adds r1, #1 + strb r1, [r0, #4] + b _080668B4 + .align 2, 0 +_08066870: .4byte 0x02024174 +_08066874: .4byte 0x02023D08 +_08066878: + ldrb r1, [r3] + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _080668B4 + strb r0, [r3, #4] + movs r0, #0x10 + movs r1, #0x3f + bl PlaySE12WithPanning + ldr r2, _080668BC + ldr r1, _080668C0 + ldrb r0, [r5] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, _080668C4 + str r1, [r0] + ldr r1, _080668C8 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _080668CC + str r1, [r0] +_080668B4: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080668BC: .4byte 0x020205AC +_080668C0: .4byte 0x02023E88 +_080668C4: .4byte 0x08039579 +_080668C8: .4byte 0x03005AC0 +_080668CC: .4byte 0x080647F9 + thumb_func_end LinkOpponentHandleFaintAnimation + + thumb_func_start LinkOpponentHandlePaletteFade +LinkOpponentHandlePaletteFade: @ 0x080668D0 + push {lr} + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkOpponentHandlePaletteFade + + thumb_func_start LinkOpponentHandleSuccessBallThrowAnim +LinkOpponentHandleSuccessBallThrowAnim: @ 0x080668DC + push {lr} + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkOpponentHandleSuccessBallThrowAnim + + thumb_func_start LinkOpponentHandleBallThrowAnim +LinkOpponentHandleBallThrowAnim: @ 0x080668E8 + push {lr} + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkOpponentHandleBallThrowAnim + + thumb_func_start LinkOpponentHandlePause +LinkOpponentHandlePause: @ 0x080668F4 + push {lr} + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkOpponentHandlePause + + thumb_func_start LinkOpponentHandleMoveAnimation +LinkOpponentHandleMoveAnimation: @ 0x08066900 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r5, _080669F0 + ldrb r0, [r5] + bl mplay_80342A4 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08066916 + b _08066A3C +_08066916: + ldr r0, _080669F4 + mov ip, r0 + ldrb r1, [r5] + lsls r1, r1, #9 + adds r0, #1 + adds r0, r1, r0 + ldrb r6, [r0] + mov r0, ip + adds r0, #2 + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, r0, #8 + orrs r6, r0 + ldr r0, _080669F8 + mov r8, r0 + mov r0, ip + adds r0, #3 + adds r1, r1, r0 + ldrb r0, [r1] + mov r1, r8 + strb r0, [r1] + ldr r3, _080669FC + ldrb r1, [r5] + lsls r1, r1, #9 + mov r0, ip + adds r0, #4 + adds r0, r1, r0 + ldrb r2, [r0] + mov r0, ip + adds r0, #5 + adds r1, r1, r0 + ldrb r0, [r1] + lsls r0, r0, #8 + orrs r2, r0 + strh r2, [r3] + ldr r3, _08066A00 + ldrb r1, [r5] + lsls r1, r1, #9 + mov r0, ip + adds r0, #6 + adds r0, r1, r0 + ldrb r2, [r0] + mov r0, ip + adds r0, #7 + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, r0, #8 + orrs r2, r0 + mov r0, ip + adds r0, #8 + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, r0, #0x10 + orrs r2, r0 + mov r0, ip + adds r0, #9 + adds r1, r1, r0 + ldrb r0, [r1] + lsls r0, r0, #0x18 + orrs r2, r0 + str r2, [r3] + ldr r2, _08066A04 + ldrb r0, [r5] + lsls r0, r0, #9 + mov r1, ip + adds r1, #0xa + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r2] + ldr r4, _08066A08 + ldrb r1, [r5] + lsls r1, r1, #9 + mov r0, ip + adds r0, #0xc + adds r0, r1, r0 + ldrb r2, [r0] + mov r0, ip + adds r0, #0xd + adds r1, r1, r0 + ldrb r0, [r1] + lsls r0, r0, #8 + orrs r2, r0 + strh r2, [r4] + ldr r7, _08066A0C + ldrb r1, [r5] + lsls r1, r1, #9 + mov r0, ip + adds r0, #0x10 + adds r1, r1, r0 + str r1, [r7] + ldr r2, _08066A10 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, [r1] + str r1, [r0] + mov r0, r8 + ldrb r1, [r0] + adds r0, r6, #0 + bl IsMoveWithoutAnimation + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + beq _08066A14 + bl LinkOpponentBufferExecCompleted + b _08066A3C + .align 2, 0 +_080669F0: .4byte 0x02023D08 +_080669F4: .4byte 0x02022D08 +_080669F8: .4byte 0x020380D2 +_080669FC: .4byte 0x020380A8 +_08066A00: .4byte 0x020380A4 +_08066A04: .4byte 0x020380BA +_08066A08: .4byte 0x020380BC +_08066A0C: .4byte 0x020380A0 +_08066A10: .4byte 0x02024160 +_08066A14: + ldr r0, _08066A48 + ldr r0, [r0] + ldrb r1, [r5] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strb r3, [r0, #4] + ldr r1, _08066A4C + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08066A50 + str r1, [r0] + ldrh r1, [r4] + ldr r2, [r7] + adds r0, r6, #0 + bl BattleTv_SetDataBasedOnMove +_08066A3C: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08066A48: .4byte 0x02024174 +_08066A4C: .4byte 0x03005AC0 +_08066A50: .4byte 0x08066A55 + thumb_func_end LinkOpponentHandleMoveAnimation + + thumb_func_start LinkOpponentDoMoveAnimation +LinkOpponentDoMoveAnimation: @ 0x08066A54 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r2, _08066AA0 + ldr r6, _08066AA4 + ldrb r3, [r6] + lsls r1, r3, #9 + adds r0, r2, #1 + mov sl, r0 + adds r0, r1, r0 + ldrb r4, [r0] + adds r5, r2, #2 + mov sb, r5 + adds r0, r1, r5 + ldrb r0, [r0] + lsls r0, r0, #8 + orrs r4, r0 + adds r2, #0xb + adds r1, r1, r2 + ldrb r1, [r1] + mov r8, r1 + ldr r7, _08066AA8 + ldr r5, [r7] + ldr r1, [r5, #4] + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r2, [r0, #4] + cmp r2, #1 + beq _08066AEC + cmp r2, #1 + bgt _08066AAC + cmp r2, #0 + beq _08066AB6 + b _08066BC8 + .align 2, 0 +_08066AA0: .4byte 0x02022D08 +_08066AA4: .4byte 0x02023D08 +_08066AA8: .4byte 0x02024174 +_08066AAC: + cmp r2, #2 + beq _08066B16 + cmp r2, #3 + beq _08066B8C + b _08066BC8 +_08066AB6: + ldr r1, [r5] + lsls r0, r3, #2 + adds r1, r0, r1 + ldrb r2, [r1] + movs r0, #0xc + ands r0, r2 + cmp r0, #4 + bne _08066AD8 + movs r0, #8 + orrs r0, r2 + strb r0, [r1] + ldrb r2, [r6] + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #5 + bl InitAndLaunchSpecialAnimation +_08066AD8: + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #1 + strb r1, [r0, #4] + b _08066BC8 +_08066AEC: + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08066BC8 + movs r0, #0 + bl sub_0805E7B8 + adds r0, r4, #0 + bl DoMoveAnim + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #2 + strb r1, [r0, #4] + b _08066BC8 +_08066B16: + ldr r0, _08066B7C + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _08066B80 + ldrb r0, [r0] + cmp r0, #0 + bne _08066BC8 + movs r0, #1 + bl sub_0805E7B8 + ldr r0, [r7] + ldrb r2, [r6] + ldr r1, [r0] + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08066B64 + mov r0, r8 + cmp r0, #1 + bhi _08066B64 + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #6 + bl InitAndLaunchSpecialAnimation + ldr r0, [r7] + ldrb r1, [r6] + ldr r0, [r0] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] +_08066B64: + ldr r0, _08066B84 + ldr r2, [r0] + ldr r0, _08066B88 + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #3 + strb r1, [r0, #4] + b _08066BC8 + .align 2, 0 +_08066B7C: .4byte 0x02038098 +_08066B80: .4byte 0x0203809D +_08066B84: .4byte 0x02024174 +_08066B88: .4byte 0x02023D08 +_08066B8C: + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _08066BC8 + bl CopyAllBattleSpritesInvisibilities + ldrb r0, [r6] + lsls r2, r0, #9 + mov r3, sl + adds r1, r2, r3 + ldrb r1, [r1] + add r2, sb + ldrb r2, [r2] + lsls r2, r2, #8 + orrs r1, r2 + bl TrySetBehindSubstituteSpriteBit + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strb r4, [r0, #4] + bl LinkOpponentBufferExecCompleted +_08066BC8: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkOpponentDoMoveAnimation + + thumb_func_start LinkOpponentHandlePrintString +LinkOpponentHandlePrintString: @ 0x08066BD8 + push {r4, r5, lr} + ldr r0, _08066C14 + movs r1, #0 + strh r1, [r0] + ldr r0, _08066C18 + strh r1, [r0] + ldr r5, _08066C1C + ldrb r4, [r5] + lsls r4, r4, #9 + ldr r0, _08066C20 + adds r4, r4, r0 + ldrh r0, [r4] + bl BufferStringBattle + ldr r0, _08066C24 + movs r1, #0 + bl sub_0814FA04 + ldr r1, _08066C28 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08066C2C + str r1, [r0] + ldrh r0, [r4] + bl BattleTv_SetDataBasedOnString + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08066C14: .4byte 0x02022AC8 +_08066C18: .4byte 0x02022ACA +_08066C1C: .4byte 0x02023D08 +_08066C20: .4byte 0x02022D0A +_08066C24: .4byte 0x02022AE0 +_08066C28: .4byte 0x03005AC0 +_08066C2C: .4byte 0x080648B1 + thumb_func_end LinkOpponentHandlePrintString + + thumb_func_start LinkOpponentHandlePrintSelectionString +LinkOpponentHandlePrintSelectionString: @ 0x08066C30 + push {lr} + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkOpponentHandlePrintSelectionString + + thumb_func_start LinkOpponentHandleChooseAction +LinkOpponentHandleChooseAction: @ 0x08066C3C + push {lr} + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkOpponentHandleChooseAction + + thumb_func_start LinkOpponentHandleUnknownYesNoBox +LinkOpponentHandleUnknownYesNoBox: @ 0x08066C48 + push {lr} + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkOpponentHandleUnknownYesNoBox + + thumb_func_start LinkOpponentHandleChooseMove +LinkOpponentHandleChooseMove: @ 0x08066C54 + push {lr} + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkOpponentHandleChooseMove + + thumb_func_start LinkOpponentHandleChooseItem +LinkOpponentHandleChooseItem: @ 0x08066C60 + push {lr} + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkOpponentHandleChooseItem + + thumb_func_start LinkOpponentHandleChoosePokemon +LinkOpponentHandleChoosePokemon: @ 0x08066C6C + push {lr} + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkOpponentHandleChoosePokemon + + thumb_func_start LinkOpponentHandleCmd23 +LinkOpponentHandleCmd23: @ 0x08066C78 + push {lr} + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkOpponentHandleCmd23 + + thumb_func_start LinkOpponentHandleHealthBarUpdate +LinkOpponentHandleHealthBarUpdate: @ 0x08066C84 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + movs r0, #0 + bl LoadBattleBarGfx + ldr r3, _08066CFC + ldr r0, _08066D00 + mov sb, r0 + ldrb r4, [r0] + lsls r2, r4, #9 + adds r0, r3, #2 + adds r0, r2, r0 + ldrb r1, [r0] + adds r3, #3 + adds r2, r2, r3 + ldrb r0, [r2] + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + asrs r7, r1, #0x10 + ldr r0, _08066D04 + cmp r7, r0 + beq _08066D14 + ldr r6, _08066D08 + lsls r0, r4, #1 + adds r0, r0, r6 + ldrh r0, [r0] + movs r5, #0x64 + muls r0, r5, r0 + ldr r4, _08066D0C + adds r0, r0, r4 + movs r1, #0x3a + bl GetMonData + mov r8, r0 + mov r1, sb + ldrb r0, [r1] + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r0, [r0] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #0x39 + bl GetMonData + adds r3, r0, #0 + mov r1, sb + ldrb r0, [r1] + ldr r1, _08066D10 + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + mov r2, r8 + bl SetBattleBarStruct + b _08066D3E + .align 2, 0 +_08066CFC: .4byte 0x02022D08 +_08066D00: .4byte 0x02023D08 +_08066D04: .4byte 0x00007FFF +_08066D08: .4byte 0x02023D12 +_08066D0C: .4byte 0x020243E8 +_08066D10: .4byte 0x03005AD0 +_08066D14: + ldr r1, _08066D5C + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08066D60 + adds r0, r0, r1 + movs r1, #0x3a + bl GetMonData + adds r2, r0, #0 + mov r1, sb + ldrb r0, [r1] + ldr r1, _08066D64 + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + movs r3, #0 + bl SetBattleBarStruct +_08066D3E: + ldr r1, _08066D68 + ldr r0, _08066D6C + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08066D70 + str r1, [r0] + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08066D5C: .4byte 0x02023D12 +_08066D60: .4byte 0x020243E8 +_08066D64: .4byte 0x03005AD0 +_08066D68: .4byte 0x03005AC0 +_08066D6C: .4byte 0x02023D08 +_08066D70: .4byte 0x080647A5 + thumb_func_end LinkOpponentHandleHealthBarUpdate + + thumb_func_start LinkOpponentHandleExpUpdate +LinkOpponentHandleExpUpdate: @ 0x08066D74 + push {lr} + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkOpponentHandleExpUpdate + + thumb_func_start LinkOpponentHandleStatusIconUpdate +LinkOpponentHandleStatusIconUpdate: @ 0x08066D80 + push {r4, lr} + ldr r4, _08066DDC + ldrb r0, [r4] + bl mplay_80342A4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08066DD4 + ldr r0, _08066DE0 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + ldr r2, _08066DE4 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _08066DE8 + adds r1, r1, r2 + movs r2, #9 + bl UpdateHealthboxAttribute + ldrb r2, [r4] + ldr r0, _08066DEC + ldr r0, [r0] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r1, _08066DF0 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08066DF4 + str r1, [r0] +_08066DD4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08066DDC: .4byte 0x02023D08 +_08066DE0: .4byte 0x03005AD0 +_08066DE4: .4byte 0x02023D12 +_08066DE8: .4byte 0x020243E8 +_08066DEC: .4byte 0x02024174 +_08066DF0: .4byte 0x03005AC0 +_08066DF4: .4byte 0x08064BED + thumb_func_end LinkOpponentHandleStatusIconUpdate + + thumb_func_start LinkOpponentHandleStatusAnimation +LinkOpponentHandleStatusAnimation: @ 0x08066DF8 + push {r4, r5, lr} + ldr r5, _08066E50 + ldrb r0, [r5] + bl mplay_80342A4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08066E48 + ldr r4, _08066E54 + ldrb r3, [r5] + lsls r3, r3, #9 + adds r0, r4, #1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, #2 + adds r1, r3, r1 + ldrb r1, [r1] + adds r2, r4, #3 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, r2, #8 + orrs r1, r2 + adds r2, r4, #4 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, r2, #0x10 + orrs r1, r2 + adds r4, #5 + adds r3, r3, r4 + ldrb r2, [r3] + lsls r2, r2, #0x18 + orrs r1, r2 + bl InitAndLaunchChosenStatusAnimation + ldr r1, _08066E58 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08066E5C + str r1, [r0] +_08066E48: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08066E50: .4byte 0x02023D08 +_08066E54: .4byte 0x02022D08 +_08066E58: .4byte 0x03005AC0 +_08066E5C: .4byte 0x08064BED + thumb_func_end LinkOpponentHandleStatusAnimation + + thumb_func_start LinkOpponentHandleStatusXor +LinkOpponentHandleStatusXor: @ 0x08066E60 + push {lr} + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkOpponentHandleStatusXor + + thumb_func_start LinkOpponentHandleDataTransfer +LinkOpponentHandleDataTransfer: @ 0x08066E6C + push {lr} + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkOpponentHandleDataTransfer + + thumb_func_start LinkOpponentHandleDMA3Transfer +LinkOpponentHandleDMA3Transfer: @ 0x08066E78 + push {lr} + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkOpponentHandleDMA3Transfer + + thumb_func_start LinkOpponentHandlePlayBGM +LinkOpponentHandlePlayBGM: @ 0x08066E84 + push {lr} + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkOpponentHandlePlayBGM + + thumb_func_start LinkOpponentHandleCmd32 +LinkOpponentHandleCmd32: @ 0x08066E90 + push {lr} + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkOpponentHandleCmd32 + + thumb_func_start LinkOpponentHandleTwoReturnValues +LinkOpponentHandleTwoReturnValues: @ 0x08066E9C + push {lr} + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkOpponentHandleTwoReturnValues + + thumb_func_start LinkOpponentHandleChosenMonReturnValue +LinkOpponentHandleChosenMonReturnValue: @ 0x08066EA8 + push {lr} + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkOpponentHandleChosenMonReturnValue + + thumb_func_start LinkOpponentHandleOneReturnValue +LinkOpponentHandleOneReturnValue: @ 0x08066EB4 + push {lr} + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkOpponentHandleOneReturnValue + + thumb_func_start LinkOpponentHandleOneReturnValue_Duplicate +LinkOpponentHandleOneReturnValue_Duplicate: @ 0x08066EC0 + push {lr} + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkOpponentHandleOneReturnValue_Duplicate + + thumb_func_start sub_08066ECC +sub_08066ECC: @ 0x08066ECC + push {lr} + ldr r2, _08066EE4 + ldrb r1, [r2] + movs r0, #0x80 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_08066EE4: .4byte 0x020229C0 + thumb_func_end sub_08066ECC + + thumb_func_start LinkOpponentHandleCmd38 +LinkOpponentHandleCmd38: @ 0x08066EE8 + push {lr} + ldr r3, _08066F14 + ldr r1, _08066F18 + ldr r0, _08066F1C + ldrb r0, [r0] + lsls r0, r0, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + ldrb r2, [r3] + movs r0, #0x80 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_08066F14: .4byte 0x020229C0 +_08066F18: .4byte 0x02022D08 +_08066F1C: .4byte 0x02023D08 + thumb_func_end LinkOpponentHandleCmd38 + + thumb_func_start LinkOpponentHandleCmd39 +LinkOpponentHandleCmd39: @ 0x08066F20 + push {lr} + ldr r2, _08066F34 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_08066F34: .4byte 0x020229C0 + thumb_func_end LinkOpponentHandleCmd39 + + thumb_func_start LinkOpponentHandleCmd40 +LinkOpponentHandleCmd40: @ 0x08066F38 + push {lr} + ldr r3, _08066F5C + ldr r1, [r3] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1f + movs r0, #1 + eors r1, r0 + lsls r1, r1, #7 + ldrb r2, [r3] + movs r0, #0x7f + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_08066F5C: .4byte 0x020229C0 + thumb_func_end LinkOpponentHandleCmd40 + + thumb_func_start LinkOpponentHandleHitAnimation +LinkOpponentHandleHitAnimation: @ 0x08066F60 + push {r4, lr} + ldr r3, _08066F88 + ldr r2, _08066F8C + ldr r4, _08066F90 + ldrb r0, [r4] + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + bge _08066F94 + bl LinkOpponentBufferExecCompleted + b _08066FBE + .align 2, 0 +_08066F88: .4byte 0x020205AC +_08066F8C: .4byte 0x02023E88 +_08066F90: .4byte 0x02023D08 +_08066F94: + ldr r1, _08066FC4 + movs r0, #1 + strb r0, [r1] + ldrb r0, [r4] + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r1, #0 + strh r1, [r0, #0x30] + ldrb r0, [r4] + bl DoHitAnimHealthboxEffect + ldr r1, _08066FC8 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08066FCC + str r1, [r0] +_08066FBE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08066FC4: .4byte 0x0202415D +_08066FC8: .4byte 0x03005AC0 +_08066FCC: .4byte 0x080648C9 + thumb_func_end LinkOpponentHandleHitAnimation + + thumb_func_start LinkOpponentHandleCmd42 +LinkOpponentHandleCmd42: @ 0x08066FD0 + push {lr} + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkOpponentHandleCmd42 + + thumb_func_start LinkOpponentHandlePlaySE +LinkOpponentHandlePlaySE: @ 0x08066FDC + push {r4, lr} + ldr r4, _08067018 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + movs r3, #0x3f + cmp r0, #0 + bne _08066FF0 + movs r3, #0xc0 +_08066FF0: + ldr r2, _0806701C + ldrb r1, [r4] + lsls r1, r1, #9 + adds r0, r2, #1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, #2 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + lsls r1, r3, #0x18 + asrs r1, r1, #0x18 + bl PlaySE12WithPanning + bl LinkOpponentBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08067018: .4byte 0x02023D08 +_0806701C: .4byte 0x02022D08 + thumb_func_end LinkOpponentHandlePlaySE + + thumb_func_start LinkOpponentHandlePlayFanfareOrBGM +LinkOpponentHandlePlayFanfareOrBGM: @ 0x08067020 + push {r4, r5, lr} + ldr r4, _08067054 + ldr r5, _08067058 + ldrb r0, [r5] + lsls r3, r0, #9 + adds r0, r4, #3 + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, #0 + beq _0806705C + bl BattleStopLowHpSound + ldrb r1, [r5] + lsls r1, r1, #9 + adds r0, r4, #1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, r4, #2 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + bl PlayBGM + b _08067070 + .align 2, 0 +_08067054: .4byte 0x02022D08 +_08067058: .4byte 0x02023D08 +_0806705C: + adds r0, r4, #1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, #2 + adds r1, r3, r1 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + bl PlayFanfare +_08067070: + bl LinkOpponentBufferExecCompleted + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkOpponentHandlePlayFanfareOrBGM + + thumb_func_start sub_0806707C +sub_0806707C: @ 0x0806707C + push {lr} + ldr r1, _080670AC + ldr r0, _080670B0 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080670B4 + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x19 + movs r2, #5 + bl PlayCry3 + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_080670AC: .4byte 0x02023D12 +_080670B0: .4byte 0x02023D08 +_080670B4: .4byte 0x020243E8 + thumb_func_end sub_0806707C + + thumb_func_start LinkOpponentHandleIntroSlide +LinkOpponentHandleIntroSlide: @ 0x080670B8 + push {lr} + ldr r1, _080670E0 + ldr r0, _080670E4 + ldrb r0, [r0] + lsls r0, r0, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + bl HandleIntroSlide + ldr r2, _080670E8 + ldrh r0, [r2] + movs r1, #1 + orrs r0, r1 + strh r0, [r2] + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_080670E0: .4byte 0x02022D08 +_080670E4: .4byte 0x02023D08 +_080670E8: .4byte 0x020240A0 + thumb_func_end LinkOpponentHandleIntroSlide + + thumb_func_start LinkOpponentHandleIntroTrainerBallThrow +LinkOpponentHandleIntroTrainerBallThrow: @ 0x080670EC + push {r4, r5, r6, lr} + ldr r5, _080671CC + ldr r6, _080671D0 + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _080671D4 + adds r0, r0, r4 + bl SetSpritePrimaryCoordsFromSecondaryCoords + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0x23 + strh r1, [r0, #0x2e] + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0x8c + lsls r1, r1, #1 + strh r1, [r0, #0x32] + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r0, #0x22] + strh r1, [r0, #0x36] + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _080671D8 + str r1, [r0] + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _080671DC + bl StoreSpriteCallbackInData6 + ldr r0, _080671E0 + movs r1, #5 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _080671E4 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r4 + ldrb r0, [r6] + strh r0, [r1, #8] + ldr r3, _080671E8 + ldr r0, [r3] + ldrb r2, [r6] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080671AE + ldr r0, _080671EC + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r4 + ldr r1, _080671F0 + str r1, [r0] +_080671AE: + ldr r0, [r3] + ldr r2, [r0, #8] + ldrb r0, [r2, #9] + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #9] + ldr r1, _080671F4 + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _080671F8 + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080671CC: .4byte 0x02023E88 +_080671D0: .4byte 0x02023D08 +_080671D4: .4byte 0x020205AC +_080671D8: .4byte 0x080A67B5 +_080671DC: .4byte 0x080672E1 +_080671E0: .4byte 0x080671FD +_080671E4: .4byte 0x03005B60 +_080671E8: .4byte 0x02024174 +_080671EC: .4byte 0x02024158 +_080671F0: .4byte 0x0807352D +_080671F4: .4byte 0x03005AC0 +_080671F8: .4byte 0x08063F75 + thumb_func_end LinkOpponentHandleIntroTrainerBallThrow + + thumb_func_start sub_080671FC +sub_080671FC: @ 0x080671FC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r7, _08067254 + ldrb r0, [r7] + mov sb, r0 + ldr r1, _08067258 + mov r2, r8 + lsls r0, r2, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r0, [r0, #8] + strb r0, [r7] + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08067236 + ldr r0, _0806725C + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08067268 +_08067236: + ldr r0, _08067260 + ldrb r1, [r7] + lsls r2, r1, #9 + adds r0, #1 + adds r2, r2, r0 + ldr r0, _08067264 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + strb r0, [r2] + ldrb r0, [r7] + movs r1, #0 + bl sub_08066078 + b _080672A8 + .align 2, 0 +_08067254: .4byte 0x02023D08 +_08067258: .4byte 0x03005B60 +_0806725C: .4byte 0x02022C90 +_08067260: .4byte 0x02022D08 +_08067264: .4byte 0x02023D12 +_08067268: + ldr r4, _080672CC + ldrb r0, [r7] + lsls r1, r0, #9 + adds r4, #1 + adds r1, r1, r4 + ldr r6, _080672D0 + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + movs r1, #0 + bl sub_08066078 + ldrb r0, [r7] + movs r5, #2 + eors r0, r5 + strb r0, [r7] + ldrb r0, [r7] + lsls r1, r0, #9 + adds r1, r1, r4 + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + movs r1, #0 + bl sub_08066078 + ldrb r0, [r7] + eors r0, r5 + strb r0, [r7] +_080672A8: + ldr r1, _080672D4 + ldr r2, _080672D8 + ldrb r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _080672DC + str r1, [r0] + mov r0, sb + strb r0, [r2] + mov r0, r8 + bl DestroyTask + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080672CC: .4byte 0x02022D08 +_080672D0: .4byte 0x02023D12 +_080672D4: .4byte 0x03005AC0 +_080672D8: .4byte 0x02023D08 +_080672DC: .4byte 0x08064319 + thumb_func_end sub_080671FC + + thumb_func_start sub_080672E0 +sub_080672E0: @ 0x080672E0 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #6] + bl FreeTrainerFrontPicPalette + adds r0, r4, #0 + bl FreeSpriteOamMatrix + adds r0, r4, #0 + bl DestroySprite + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_080672E0 + + thumb_func_start sub_080672FC +sub_080672FC: @ 0x080672FC + push {r4, r5, r6, r7, lr} + ldr r1, _08067324 + ldr r0, _08067328 + ldrb r2, [r0] + lsls r0, r2, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _0806732C + adds r0, r2, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806732C + bl LinkOpponentBufferExecCompleted + b _080673F6 + .align 2, 0 +_08067324: .4byte 0x02022D08 +_08067328: .4byte 0x02023D08 +_0806732C: + ldr r4, _08067384 + ldr r0, [r4] + ldr r3, _08067388 + ldrb r1, [r3] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r2, #1 + orrs r1, r2 + strb r1, [r0] + ldr r1, _0806738C + ldrb r2, [r3] + lsls r0, r2, #9 + adds r1, #2 + adds r0, r0, r1 + ldrb r0, [r0] + adds r7, r3, #0 + cmp r0, #0 + beq _08067398 + ldr r0, [r4] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r3, r0, r1 + ldrb r2, [r3, #1] + lsls r1, r2, #0x1b + lsrs r0, r1, #0x1c + cmp r0, #1 + bhi _08067390 + adds r0, #1 + movs r1, #0xf + ands r0, r1 + lsls r0, r0, #1 + movs r1, #0x1f + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #1] + b _080673F6 + .align 2, 0 +_08067384: .4byte 0x02024174 +_08067388: .4byte 0x02023D08 +_0806738C: .4byte 0x02022D08 +_08067390: + movs r0, #0x1f + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r3, #1] +_08067398: + adds r5, r7, #0 + ldrb r0, [r5] + lsls r3, r0, #9 + ldr r4, _080673FC + adds r1, r3, r4 + subs r2, r4, #3 + adds r2, r3, r2 + ldrb r2, [r2] + subs r4, #2 + adds r3, r3, r4 + ldrb r3, [r3] + bl CreatePartyStatusSummarySprites + ldr r2, _08067400 + ldrb r1, [r5] + adds r1, r1, r2 + movs r3, #0 + strb r0, [r1] + ldr r6, _08067404 + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strb r3, [r0, #5] + ldrb r2, [r5] + lsls r0, r2, #9 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0 + beq _080673EA + ldr r0, [r6] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + movs r1, #0x5d + strb r1, [r0, #5] +_080673EA: + ldr r0, _08067408 + ldrb r1, [r7] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, _0806740C + str r0, [r1] +_080673F6: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080673FC: .4byte 0x02022D0C +_08067400: .4byte 0x02024158 +_08067404: .4byte 0x02024174 +_08067408: .4byte 0x03005AC0 +_0806740C: .4byte 0x08067411 + thumb_func_end sub_080672FC + + thumb_func_start sub_08067410 +sub_08067410: @ 0x08067410 + push {r4, lr} + ldr r4, _08067450 + ldr r0, [r4] + ldr r3, _08067454 + ldrb r1, [r3] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #5] + adds r2, r1, #1 + strb r2, [r0, #5] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0x5c + bls _08067448 + ldr r0, [r4] + ldrb r1, [r3] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0 + strb r1, [r0, #5] + bl LinkOpponentBufferExecCompleted +_08067448: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08067450: .4byte 0x02024174 +_08067454: .4byte 0x02023D08 + thumb_func_end sub_08067410 + + thumb_func_start LinkOpponentHandleHidePartyStatusSummary +LinkOpponentHandleHidePartyStatusSummary: @ 0x08067458 + push {lr} + ldr r0, _08067494 + ldr r1, [r0] + ldr r0, _08067498 + ldrb r3, [r0] + ldr r1, [r1, #4] + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0806748A + ldr r2, _0806749C + ldr r0, _080674A0 + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldr r1, _080674A4 + str r1, [r0] +_0806748A: + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_08067494: .4byte 0x02024174 +_08067498: .4byte 0x02023D08 +_0806749C: .4byte 0x03005B60 +_080674A0: .4byte 0x02024158 +_080674A4: .4byte 0x0807352D + thumb_func_end LinkOpponentHandleHidePartyStatusSummary + + thumb_func_start LinkOpponentHandleEndBounceEffect +LinkOpponentHandleEndBounceEffect: @ 0x080674A8 + push {lr} + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkOpponentHandleEndBounceEffect + + thumb_func_start LinkOpponentHandleSpriteInvisibility +LinkOpponentHandleSpriteInvisibility: @ 0x080674B4 + push {r4, lr} + ldr r4, _08067504 + ldrb r0, [r4] + bl IsBattlerSpritePresent + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080674FA + ldr r3, _08067508 + ldr r0, _0806750C + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r0, _08067510 + lsls r1, r1, #9 + adds r0, #1 + adds r1, r1, r0 + adds r2, #0x3e + movs r0, #1 + ldrb r1, [r1] + ands r1, r0 + lsls r1, r1, #2 + ldrb r3, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4] + bl CopyBattleSpriteInvisibility +_080674FA: + bl LinkOpponentBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08067504: .4byte 0x02023D08 +_08067508: .4byte 0x020205AC +_0806750C: .4byte 0x02023E88 +_08067510: .4byte 0x02022D08 + thumb_func_end LinkOpponentHandleSpriteInvisibility + + thumb_func_start LinkOpponentHandleBattleAnimation +LinkOpponentHandleBattleAnimation: @ 0x08067514 + push {r4, r5, r6, lr} + sub sp, #4 + ldr r5, _0806755C + ldrb r0, [r5] + bl mplay_80342A4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08067576 + ldr r4, _08067560 + ldrb r2, [r5] + lsls r1, r2, #9 + adds r0, r4, #1 + adds r0, r1, r0 + ldrb r6, [r0] + adds r0, r4, #2 + adds r0, r1, r0 + ldrb r3, [r0] + adds r4, #3 + adds r1, r1, r4 + ldrb r0, [r1] + lsls r0, r0, #8 + orrs r3, r0 + str r3, [sp] + adds r0, r2, #0 + adds r1, r2, #0 + adds r3, r6, #0 + bl TryHandleLaunchBattleTableAnimation + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08067564 + bl LinkOpponentBufferExecCompleted + b _08067570 + .align 2, 0 +_0806755C: .4byte 0x02023D08 +_08067560: .4byte 0x02022D08 +_08067564: + ldr r0, _08067580 + ldrb r1, [r5] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, _08067584 + str r0, [r1] +_08067570: + adds r0, r6, #0 + bl BattleTv_SetDataBasedOnAnimation +_08067576: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08067580: .4byte 0x03005AC0 +_08067584: .4byte 0x08064C1D + thumb_func_end LinkOpponentHandleBattleAnimation + + thumb_func_start LinkOpponentHandleLinkStandbyMsg +LinkOpponentHandleLinkStandbyMsg: @ 0x08067588 + push {lr} + ldr r0, _080675A0 + ldrb r0, [r0] + lsls r0, r0, #9 + ldr r1, _080675A4 + adds r0, r0, r1 + bl sub_08185008 + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_080675A0: .4byte 0x02023D08 +_080675A4: .4byte 0x02022D0A + thumb_func_end LinkOpponentHandleLinkStandbyMsg + + thumb_func_start LinkOpponentHandleResetActionMoveSelection +LinkOpponentHandleResetActionMoveSelection: @ 0x080675A8 + push {lr} + bl LinkOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkOpponentHandleResetActionMoveSelection + + thumb_func_start LinkOpponentHandleCmd55 +LinkOpponentHandleCmd55: @ 0x080675B4 + push {r4, r5, lr} + ldr r5, _080675D8 + ldrb r0, [r5] + lsls r0, r0, #9 + ldr r4, _080675DC + adds r0, r0, r4 + bl sub_08185008 + ldrb r0, [r5] + lsls r0, r0, #9 + subs r4, #3 + adds r0, r0, r4 + ldrb r2, [r0] + cmp r2, #3 + bne _080675E4 + ldr r0, _080675E0 + strb r2, [r0] + b _080675EC + .align 2, 0 +_080675D8: .4byte 0x02023D08 +_080675DC: .4byte 0x02022D0C +_080675E0: .4byte 0x02023FDE +_080675E4: + ldr r0, _08067638 + movs r1, #3 + eors r1, r2 + strb r1, [r0] +_080675EC: + ldr r0, _0806763C + ldr r3, [r0] + ldr r1, _08067640 + ldr r4, _08067644 + ldrb r0, [r4] + lsls r0, r0, #9 + adds r1, #2 + adds r0, r0, r1 + ldrb r0, [r0] + ldr r1, _08067648 + adds r3, r3, r1 + movs r1, #1 + ands r1, r0 + lsls r1, r1, #3 + ldrb r2, [r3] + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + movs r0, #5 + bl FadeOutMapMusic + movs r0, #3 + bl BeginFastPaletteFade + bl LinkOpponentBufferExecCompleted + ldr r1, _0806764C + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08067650 + str r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08067638: .4byte 0x02023FDE +_0806763C: .4byte 0x03005AF0 +_08067640: .4byte 0x02022D08 +_08067644: .4byte 0x02023D08 +_08067648: .4byte 0x00000CA9 +_0806764C: .4byte 0x03005AC0 +_08067650: .4byte 0x080583C1 + thumb_func_end LinkOpponentHandleCmd55 + + thumb_func_start LinkOpponentCmdEnd +LinkOpponentCmdEnd: @ 0x08067654 + bx lr + .align 2, 0 + thumb_func_end LinkOpponentCmdEnd + diff --git a/asm/battle_controller_link_partner.s b/asm/battle_controller_link_partner.s new file mode 100644 index 0000000..57d38c4 --- /dev/null +++ b/asm/battle_controller_link_partner.s @@ -0,0 +1,6152 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start SpriteCB_Null2 +SpriteCB_Null2: @ 0x0814AF6C + bx lr + .align 2, 0 + thumb_func_end SpriteCB_Null2 + + thumb_func_start SetControllerToLinkPartner +SetControllerToLinkPartner: @ 0x0814AF70 + ldr r1, _0814AF80 + ldr r0, _0814AF84 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0814AF88 + str r1, [r0] + bx lr + .align 2, 0 +_0814AF80: .4byte 0x03005AC0 +_0814AF84: .4byte 0x02023D08 +_0814AF88: .4byte 0x0814AF8D + thumb_func_end SetControllerToLinkPartner + + thumb_func_start LinkPartnerBufferRunCommand +LinkPartnerBufferRunCommand: @ 0x0814AF8C + push {lr} + ldr r2, _0814AFC0 + ldr r1, _0814AFC4 + ldr r0, _0814AFC8 + ldrb r3, [r0] + lsls r0, r3, #2 + adds r0, r0, r1 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _0814AFD8 + ldr r0, _0814AFCC + lsls r1, r3, #9 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0x38 + bhi _0814AFD4 + ldr r0, _0814AFD0 + ldrb r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl _call_via_r0 + b _0814AFD8 + .align 2, 0 +_0814AFC0: .4byte 0x02023D0C +_0814AFC4: .4byte 0x082FACB4 +_0814AFC8: .4byte 0x02023D08 +_0814AFCC: .4byte 0x02022D08 +_0814AFD0: .4byte 0x085A9544 +_0814AFD4: + bl LinkPartnerBufferExecCompleted +_0814AFD8: + pop {r0} + bx r0 + thumb_func_end LinkPartnerBufferRunCommand + + thumb_func_start sub_0814AFDC +sub_0814AFDC: @ 0x0814AFDC + push {lr} + ldr r2, _0814B004 + ldr r1, _0814B008 + ldr r0, _0814B00C + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _0814B010 + cmp r1, r0 + bne _0814B000 + bl LinkPartnerBufferExecCompleted +_0814B000: + pop {r0} + bx r0 + .align 2, 0 +_0814B004: .4byte 0x020205AC +_0814B008: .4byte 0x02023E88 +_0814B00C: .4byte 0x02023D08 +_0814B010: .4byte 0x08007141 + thumb_func_end sub_0814AFDC + + thumb_func_start sub_0814B014 +sub_0814B014: @ 0x0814B014 + push {r4, r5, r6, lr} + ldr r6, _0814B06C + ldr r5, _0814B070 + ldr r4, _0814B074 + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r6, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, [r0] + ldr r0, _0814B078 + cmp r1, r0 + bne _0814B064 + movs r0, #0 + bl sub_0805DBFC + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + bl FreeSpriteOamMatrix + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + bl DestroySprite + bl LinkPartnerBufferExecCompleted +_0814B064: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0814B06C: .4byte 0x020205AC +_0814B070: .4byte 0x02023E88 +_0814B074: .4byte 0x02023D08 +_0814B078: .4byte 0x08007141 + thumb_func_end sub_0814B014 + + thumb_func_start sub_0814B07C +sub_0814B07C: @ 0x0814B07C + push {r4, lr} + ldr r4, _0814B0BC + ldr r1, [r4] + ldr r3, _0814B0C0 + ldrb r0, [r3] + ldr r2, [r1, #4] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r0, [r1, #9] + subs r0, #1 + strb r0, [r1, #9] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _0814B0B4 + ldr r0, [r4] + ldrb r1, [r3] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0 + strb r1, [r0, #9] + bl LinkPartnerBufferExecCompleted +_0814B0B4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814B0BC: .4byte 0x02024174 +_0814B0C0: .4byte 0x02023D08 + thumb_func_end sub_0814B07C + + thumb_func_start sub_0814B0C4 +sub_0814B0C4: @ 0x0814B0C4 + push {r4, r5, r6, lr} + movs r6, #0 + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0814B0E8 + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0814B11C + ldr r0, _0814B108 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0814B11C +_0814B0E8: + ldr r2, _0814B10C + ldr r1, _0814B110 + ldr r0, _0814B114 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _0814B118 + cmp r1, r0 + bne _0814B154 + b _0814B152 + .align 2, 0 +_0814B108: .4byte 0x02022C90 +_0814B10C: .4byte 0x020205AC +_0814B110: .4byte 0x03005AD0 +_0814B114: .4byte 0x02023D08 +_0814B118: .4byte 0x08007141 +_0814B11C: + ldr r2, _0814B18C + ldr r5, _0814B190 + ldr r0, _0814B194 + ldrb r3, [r0] + adds r0, r3, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, r2, #0 + adds r4, #0x1c + adds r0, r0, r4 + ldr r2, [r0] + ldr r0, _0814B198 + cmp r2, r0 + bne _0814B154 + movs r0, #2 + eors r3, r0 + adds r0, r3, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r0, [r0] + cmp r0, r2 + bne _0814B154 +_0814B152: + movs r6, #1 +_0814B154: + bl IsCryPlayingOrClearCrySongs + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0814B160 + movs r6, #0 +_0814B160: + cmp r6, #0 + beq _0814B186 + ldr r0, _0814B19C + ldr r0, [r0] + ldr r3, _0814B194 + ldrb r1, [r3] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #3 + strb r1, [r0, #9] + ldr r1, _0814B1A0 + ldrb r0, [r3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0814B1A4 + str r1, [r0] +_0814B186: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0814B18C: .4byte 0x020205AC +_0814B190: .4byte 0x03005AD0 +_0814B194: .4byte 0x02023D08 +_0814B198: .4byte 0x08007141 +_0814B19C: .4byte 0x02024174 +_0814B1A0: .4byte 0x03005AC0 +_0814B1A4: .4byte 0x0814B07D + thumb_func_end sub_0814B0C4 + + thumb_func_start sub_0814B1A8 +sub_0814B1A8: @ 0x0814B1A8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _0814B320 + mov ip, r0 + ldr r0, [r0] + ldr r7, _0814B324 + ldrb r2, [r7] + ldr r3, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r4, r0, r3 + ldrb r1, [r4] + movs r5, #8 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _0814B1D4 + b _0814B312 +_0814B1D4: + movs r1, #2 + mov r8, r1 + adds r1, r2, #0 + mov r0, r8 + eors r1, r0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0] + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + beq _0814B1F6 + b _0814B312 +_0814B1F6: + ldr r1, _0814B328 + mov sl, r1 + ldr r0, _0814B32C + mov sb, r0 + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + mov r5, sl + adds r5, #0x1c + adds r0, r0, r5 + ldr r3, [r0] + ldr r0, _0814B330 + cmp r3, r0 + bne _0814B312 + ldr r0, _0814B334 + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r0, [r0] + cmp r0, r3 + bne _0814B312 + ldrb r0, [r4, #9] + adds r0, #1 + strb r0, [r4, #9] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0814B312 + mov r1, ip + ldr r0, [r1] + ldrb r1, [r7] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strb r6, [r0, #9] + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0814B2B0 + ldr r0, _0814B338 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _0814B2B0 + ldrb r0, [r7] + mov r1, r8 + eors r0, r1 + add r0, sb + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sl + bl DestroySprite + ldr r4, _0814B33C + ldrb r0, [r7] + mov r1, r8 + eors r1, r0 + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, _0814B340 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _0814B344 + adds r1, r1, r2 + movs r2, #0 + bl UpdateHealthboxAttribute + ldrb r0, [r7] + mov r1, r8 + eors r0, r1 + bl sub_08076320 + ldrb r0, [r7] + mov r1, r8 + eors r0, r1 + adds r0, r0, r4 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible +_0814B2B0: + ldr r1, _0814B32C + ldr r4, _0814B324 + ldrb r0, [r4] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0814B328 + adds r0, r0, r1 + bl DestroySprite + ldr r5, _0814B33C + ldrb r1, [r4] + adds r0, r1, r5 + ldrb r0, [r0] + ldr r2, _0814B340 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _0814B344 + adds r1, r1, r2 + movs r2, #0 + bl UpdateHealthboxAttribute + ldrb r0, [r4] + bl sub_08076320 + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible + ldr r0, _0814B320 + ldr r0, [r0] + ldr r2, [r0, #8] + ldrb r1, [r2, #9] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #9] + ldr r1, _0814B348 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0814B34C + str r1, [r0] +_0814B312: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0814B320: .4byte 0x02024174 +_0814B324: .4byte 0x02023D08 +_0814B328: .4byte 0x020205AC +_0814B32C: .4byte 0x03005ADC +_0814B330: .4byte 0x08007141 +_0814B334: .4byte 0x02023E88 +_0814B338: .4byte 0x02022C90 +_0814B33C: .4byte 0x03005AD0 +_0814B340: .4byte 0x02023D12 +_0814B344: .4byte 0x02024190 +_0814B348: .4byte 0x03005AC0 +_0814B34C: .4byte 0x0814B0C5 + thumb_func_end sub_0814B1A8 + + thumb_func_start sub_0814B350 +sub_0814B350: @ 0x0814B350 + push {lr} + ldr r2, _0814B384 + ldr r1, _0814B388 + ldr r0, _0814B38C + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r2 + adds r0, r1, #0 + adds r0, #0x3f + ldrb r0, [r0] + lsls r0, r0, #0x1b + cmp r0, #0 + bge _0814B37E + movs r2, #0x24 + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _0814B37E + bl LinkPartnerBufferExecCompleted +_0814B37E: + pop {r0} + bx r0 + .align 2, 0 +_0814B384: .4byte 0x020205AC +_0814B388: .4byte 0x02023E88 +_0814B38C: .4byte 0x02023D08 + thumb_func_end sub_0814B350 + + thumb_func_start LinkPartnerHandleSwitchInAnim +LinkPartnerHandleSwitchInAnim: @ 0x0814B390 + push {r4, r5, r6, lr} + ldr r5, _0814B3D0 + ldrb r0, [r5] + ldr r6, _0814B3D4 + adds r1, r0, r6 + ldrb r1, [r1] + movs r2, #0 + movs r3, #0 + bl MoveBattleBar + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible + lsls r4, r4, #0x10 + asrs r1, r4, #0x10 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0814B3D8 + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r0, [r0] + movs r2, #0 + bl sub_080726F4 + b _0814B3F2 + .align 2, 0 +_0814B3D0: .4byte 0x02023D08 +_0814B3D4: .4byte 0x03005AD0 +_0814B3D8: + ldr r2, _0814B3F8 + ldrb r1, [r5] + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r2, [r0] + movs r0, #0x64 + muls r0, r2, r0 + ldr r2, _0814B3FC + adds r0, r0, r2 + bl HandleLowHpMusicChange + bl LinkPartnerBufferExecCompleted +_0814B3F2: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0814B3F8: .4byte 0x02023D12 +_0814B3FC: .4byte 0x02024190 + thumb_func_end LinkPartnerHandleSwitchInAnim + + thumb_func_start sub_0814B400 +sub_0814B400: @ 0x0814B400 + push {r4, r5, r6, lr} + ldr r6, _0814B484 + ldr r5, _0814B488 + ldr r4, _0814B48C + ldrb r2, [r4] + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r3, #0x22 + ldrsh r1, [r0, r3] + movs r3, #0x26 + ldrsh r0, [r0, r3] + adds r1, r1, r0 + cmp r1, #0xa0 + ble _0814B47C + ldr r1, _0814B490 + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0814B494 + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl sub_0805DB50 + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r0, [r0, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + bl DestroySprite + ldr r1, _0814B498 + ldrb r0, [r4] + adds r0, r0, r1 + ldrb r0, [r0] + bl SetHealthboxSpriteInvisible + bl LinkPartnerBufferExecCompleted +_0814B47C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0814B484: .4byte 0x020205AC +_0814B488: .4byte 0x02023E88 +_0814B48C: .4byte 0x02023D08 +_0814B490: .4byte 0x02023D12 +_0814B494: .4byte 0x02024190 +_0814B498: .4byte 0x03005AD0 + thumb_func_end sub_0814B400 + + thumb_func_start sub_0814B49C +sub_0814B49C: @ 0x0814B49C + push {r4, r5, r6, lr} + ldr r0, _0814B4F8 + ldr r0, [r0] + ldr r6, _0814B4FC + ldrb r2, [r6] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _0814B4F0 + ldr r5, _0814B500 + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _0814B504 + adds r0, r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + ldr r1, _0814B508 + ldrb r0, [r6] + adds r0, r0, r1 + ldrb r0, [r0] + bl SetHealthboxSpriteInvisible + bl LinkPartnerBufferExecCompleted +_0814B4F0: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0814B4F8: .4byte 0x02024174 +_0814B4FC: .4byte 0x02023D08 +_0814B500: .4byte 0x02023E88 +_0814B504: .4byte 0x020205AC +_0814B508: .4byte 0x03005AD0 + thumb_func_end sub_0814B49C + + thumb_func_start LinkPartnerHandlePlaySE +LinkPartnerHandlePlaySE: @ 0x0814B50C + push {lr} + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0814B51E + bl LinkPartnerBufferExecCompleted +_0814B51E: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkPartnerHandlePlaySE + + thumb_func_start LinkPartnerHandleHitAnimation +LinkPartnerHandleHitAnimation: @ 0x0814B524 + push {r4, lr} + ldr r1, _0814B560 + ldr r0, _0814B564 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + ldr r2, _0814B568 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, r0, r2 + movs r1, #0x30 + ldrsh r0, [r4, r1] + cmp r0, #0x20 + bne _0814B570 + movs r3, #0 + movs r0, #0 + strh r0, [r4, #0x30] + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + subs r0, #5 + ands r0, r1 + strb r0, [r2] + ldr r0, _0814B56C + strb r3, [r0] + bl LinkPartnerBufferExecCompleted + b _0814B59A + .align 2, 0 +_0814B560: .4byte 0x02023E88 +_0814B564: .4byte 0x02023D08 +_0814B568: .4byte 0x020205AC +_0814B56C: .4byte 0x0202415D +_0814B570: + ldrh r0, [r4, #0x30] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0814B594 + adds r3, r4, #0 + adds r3, #0x3e + ldrb r2, [r3] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_0814B594: + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] +_0814B59A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end LinkPartnerHandleHitAnimation + + thumb_func_start sub_0814B5A0 +sub_0814B5A0: @ 0x0814B5A0 + push {r4, lr} + ldr r2, _0814B5F8 + ldr r0, _0814B5FC + ldr r4, _0814B600 + ldrb r3, [r4] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _0814B604 + cmp r1, r0 + bne _0814B5F2 + adds r0, r3, #0 + bl CopyBattleSpriteInvisibility + ldr r0, _0814B608 + ldr r0, [r0] + ldrb r2, [r4] + ldr r1, [r0] + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0814B5E6 + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #6 + bl InitAndLaunchSpecialAnimation +_0814B5E6: + ldr r0, _0814B60C + ldrb r1, [r4] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, _0814B610 + str r0, [r1] +_0814B5F2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814B5F8: .4byte 0x020205AC +_0814B5FC: .4byte 0x03005AD0 +_0814B600: .4byte 0x02023D08 +_0814B604: .4byte 0x08007141 +_0814B608: .4byte 0x02024174 +_0814B60C: .4byte 0x03005AC0 +_0814B610: .4byte 0x0814B615 + thumb_func_end sub_0814B5A0 + + thumb_func_start sub_0814B614 +sub_0814B614: @ 0x0814B614 + push {lr} + ldr r0, _0814B654 + ldr r1, [r0] + ldr r0, _0814B658 + ldrb r3, [r0] + ldr r1, [r1, #4] + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _0814B650 + ldr r2, _0814B65C + ldr r0, _0814B660 + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _0814B664 + cmp r1, r0 + bne _0814B650 + bl LinkPartnerBufferExecCompleted +_0814B650: + pop {r0} + bx r0 + .align 2, 0 +_0814B654: .4byte 0x02024174 +_0814B658: .4byte 0x02023D08 +_0814B65C: .4byte 0x020205AC +_0814B660: .4byte 0x02023E88 +_0814B664: .4byte 0x08007141 + thumb_func_end sub_0814B614 + + thumb_func_start sub_0814B668 +sub_0814B668: @ 0x0814B668 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r3, _0814B730 + ldr r0, [r3] + ldr r7, _0814B734 + ldrb r1, [r7] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, r0, r2 + ldrb r1, [r2, #1] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0814B724 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + ldr r0, [r3] + ldrb r2, [r7] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #1] + ldr r4, _0814B738 + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl FreeSpritePaletteByTag + ldr r0, _0814B73C + movs r1, #0xa + bl CreateTask + ldr r0, _0814B740 + mov r8, r0 + ldrb r1, [r7] + lsls r0, r1, #1 + add r0, r8 + ldrh r0, [r0] + movs r6, #0x64 + muls r0, r6, r0 + ldr r5, _0814B744 + adds r0, r0, r5 + bl HandleLowHpMusicChange + ldr r1, _0814B748 + ldrb r0, [r7] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0814B74C + adds r0, r0, r1 + movs r1, #0 + bl StartSpriteAnim + ldr r4, _0814B750 + ldrb r1, [r7] + adds r0, r1, r4 + ldrb r0, [r0] + lsls r1, r1, #1 + add r1, r8 + ldrh r1, [r1] + muls r1, r6, r1 + adds r1, r1, r5 + movs r2, #0 + bl UpdateHealthboxAttribute + ldrb r0, [r7] + bl sub_08076320 + ldrb r0, [r7] + adds r0, r0, r4 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible + ldr r1, _0814B754 + ldrb r0, [r7] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0814B758 + str r1, [r0] +_0814B724: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0814B730: .4byte 0x02024174 +_0814B734: .4byte 0x02023D08 +_0814B738: .4byte 0x000027F9 +_0814B73C: .4byte 0x08058D11 +_0814B740: .4byte 0x02023D12 +_0814B744: .4byte 0x02024190 +_0814B748: .4byte 0x02023E88 +_0814B74C: .4byte 0x020205AC +_0814B750: .4byte 0x03005AD0 +_0814B754: .4byte 0x03005AC0 +_0814B758: .4byte 0x0814B5A1 + thumb_func_end sub_0814B668 + + thumb_func_start sub_0814B75C +sub_0814B75C: @ 0x0814B75C + push {r4, r5, r6, lr} + ldr r6, _0814B7DC + ldr r0, [r6] + ldr r4, _0814B7E0 + ldrb r2, [r4] + ldr r1, [r0, #4] + lsls r3, r2, #1 + adds r0, r3, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x88 + ands r0, r1 + cmp r0, #0 + bne _0814B78E + ldr r0, _0814B7E4 + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _0814B7E8 + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_08172CD4 +_0814B78E: + ldr r5, _0814B7EC + ldr r0, _0814B7F0 + ldrb r2, [r4] + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r3, r0, #2 + adds r0, r5, #0 + adds r0, #0x1c + adds r0, r3, r0 + ldr r1, [r0] + ldr r0, _0814B7F4 + cmp r1, r0 + bne _0814B7D4 + ldr r0, [r6] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + bne _0814B7D4 + adds r0, r3, r5 + bl DestroySprite + ldr r1, _0814B7F8 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0814B7FC + str r1, [r0] +_0814B7D4: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0814B7DC: .4byte 0x02024174 +_0814B7E0: .4byte 0x02023D08 +_0814B7E4: .4byte 0x02023D12 +_0814B7E8: .4byte 0x02024190 +_0814B7EC: .4byte 0x020205AC +_0814B7F0: .4byte 0x03005ADC +_0814B7F4: .4byte 0x08007141 +_0814B7F8: .4byte 0x03005AC0 +_0814B7FC: .4byte 0x0814B669 + thumb_func_end sub_0814B75C + + thumb_func_start LinkPartnerBufferExecCompleted +LinkPartnerBufferExecCompleted: @ 0x0814B800 + push {r4, lr} + sub sp, #4 + ldr r1, _0814B840 + ldr r4, _0814B844 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0814B848 + str r1, [r0] + ldr r0, _0814B84C + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _0814B854 + bl GetMultiplayerId + mov r1, sp + strb r0, [r1] + movs r0, #2 + movs r1, #4 + mov r2, sp + bl PrepareBufferDataTransferLink + ldr r1, _0814B850 + ldrb r0, [r4] + lsls r0, r0, #9 + adds r0, r0, r1 + movs r1, #0x38 + strb r1, [r0] + b _0814B866 + .align 2, 0 +_0814B840: .4byte 0x03005AC0 +_0814B844: .4byte 0x02023D08 +_0814B848: .4byte 0x0814AF8D +_0814B84C: .4byte 0x02022C90 +_0814B850: .4byte 0x02022D08 +_0814B854: + ldr r2, _0814B870 + ldr r1, _0814B874 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + ldr r0, [r2] + bics r0, r1 + str r0, [r2] +_0814B866: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814B870: .4byte 0x02023D0C +_0814B874: .4byte 0x082FACB4 + thumb_func_end LinkPartnerBufferExecCompleted + + thumb_func_start LinkPartnerHandleStatusAnimation +LinkPartnerHandleStatusAnimation: @ 0x0814B878 + push {lr} + ldr r0, _0814B8A0 + ldr r2, [r0] + ldr r0, _0814B8A4 + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _0814B89A + bl LinkPartnerBufferExecCompleted +_0814B89A: + pop {r0} + bx r0 + .align 2, 0 +_0814B8A0: .4byte 0x02024174 +_0814B8A4: .4byte 0x02023D08 + thumb_func_end LinkPartnerHandleStatusAnimation + + thumb_func_start LinkPartnerHandleStatusIconUpdate +LinkPartnerHandleStatusIconUpdate: @ 0x0814B8A8 + push {lr} + ldr r0, _0814B8D0 + ldr r2, [r0] + ldr r0, _0814B8D4 + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _0814B8CA + bl LinkPartnerBufferExecCompleted +_0814B8CA: + pop {r0} + bx r0 + .align 2, 0 +_0814B8D0: .4byte 0x02024174 +_0814B8D4: .4byte 0x02023D08 + thumb_func_end LinkPartnerHandleStatusIconUpdate + + thumb_func_start LinkPartnerHandleGetMonData +LinkPartnerHandleGetMonData: @ 0x0814B8D8 + push {r4, r5, r6, lr} + sub sp, #0x100 + movs r6, #0 + ldr r1, _0814B904 + ldr r0, _0814B908 + ldrb r2, [r0] + lsls r0, r2, #9 + adds r1, #2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, #0 + bne _0814B910 + ldr r0, _0814B90C + lsls r1, r2, #1 + adds r1, r1, r0 + ldrb r0, [r1] + mov r1, sp + bl CopyLinkPartnerMonData + adds r6, r0, #0 + b _0814B932 + .align 2, 0 +_0814B904: .4byte 0x02022D08 +_0814B908: .4byte 0x02023D08 +_0814B90C: .4byte 0x02023D12 +_0814B910: + ldrb r4, [r1] + movs r5, #0 +_0814B914: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _0814B92A + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + mov r2, sp + adds r1, r2, r6 + bl CopyLinkPartnerMonData + adds r6, r6, r0 +_0814B92A: + lsrs r4, r4, #1 + adds r5, #1 + cmp r5, #5 + ble _0814B914 +_0814B932: + lsls r1, r6, #0x10 + lsrs r1, r1, #0x10 + movs r0, #1 + mov r2, sp + bl BtlController_EmitDataTransfer + bl LinkPartnerBufferExecCompleted + add sp, #0x100 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkPartnerHandleGetMonData + + thumb_func_start CopyLinkPartnerMonData +CopyLinkPartnerMonData: @ 0x0814B94C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x90 + adds r7, r1, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r6, #0 + ldr r2, _0814B980 + ldr r3, _0814B984 + ldrb r0, [r3] + lsls r0, r0, #9 + adds r1, r2, #1 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0x3b + bls _0814B976 + bl _0814C0E2 +_0814B976: + lsls r0, r0, #2 + ldr r1, _0814B988 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0814B980: .4byte 0x02022D08 +_0814B984: .4byte 0x02023D08 +_0814B988: .4byte 0x0814B98C +_0814B98C: @ jump table + .4byte _0814BA7C @ case 0 + .4byte _0814BCA0 @ case 1 + .4byte _0814BCB0 @ case 2 + .4byte _0814BCC0 @ case 3 + .4byte _0814BD28 @ case 4 + .4byte _0814BD28 @ case 5 + .4byte _0814BD28 @ case 6 + .4byte _0814BD28 @ case 7 + .4byte _0814BD44 @ case 8 + .4byte _0814BD80 @ case 9 + .4byte _0814BD80 @ case 10 + .4byte _0814BD80 @ case 11 + .4byte _0814BD80 @ case 12 + .4byte _0814C0E2 @ case 13 + .4byte _0814C0E2 @ case 14 + .4byte _0814C0E2 @ case 15 + .4byte _0814C0E2 @ case 16 + .4byte _0814BD9C @ case 17 + .4byte _0814BDAC @ case 18 + .4byte _0814BDDC @ case 19 + .4byte _0814BDEC @ case 20 + .4byte _0814BDFC @ case 21 + .4byte _0814BE0C @ case 22 + .4byte _0814BE1C @ case 23 + .4byte _0814BE2C @ case 24 + .4byte _0814BE3C @ case 25 + .4byte _0814BE4C @ case 26 + .4byte _0814BE5C @ case 27 + .4byte _0814BE6C @ case 28 + .4byte _0814BE7C @ case 29 + .4byte _0814BE8C @ case 30 + .4byte _0814BE9C @ case 31 + .4byte _0814BEEC @ case 32 + .4byte _0814BEFC @ case 33 + .4byte _0814BF0C @ case 34 + .4byte _0814BF1C @ case 35 + .4byte _0814BF2C @ case 36 + .4byte _0814BF3C @ case 37 + .4byte _0814BF4C @ case 38 + .4byte _0814BF5C @ case 39 + .4byte _0814BF6C @ case 40 + .4byte _0814BFA0 @ case 41 + .4byte _0814BFB0 @ case 42 + .4byte _0814BFC0 @ case 43 + .4byte _0814BFD0 @ case 44 + .4byte _0814BFE0 @ case 45 + .4byte _0814BFF0 @ case 46 + .4byte _0814C000 @ case 47 + .4byte _0814C010 @ case 48 + .4byte _0814C030 @ case 49 + .4byte _0814C040 @ case 50 + .4byte _0814C050 @ case 51 + .4byte _0814C060 @ case 52 + .4byte _0814C070 @ case 53 + .4byte _0814C080 @ case 54 + .4byte _0814C090 @ case 55 + .4byte _0814C0A0 @ case 56 + .4byte _0814C0B0 @ case 57 + .4byte _0814C0C0 @ case 58 + .4byte _0814C0D0 @ case 59 +_0814BA7C: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _0814BC90 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + mov r1, sp + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0xc + bl GetMonData + mov r1, sp + strh r0, [r1, #0x2e] + movs r6, #0 + add r0, sp, #0x24 + mov sb, r0 + movs r1, #0x3b + add r1, sp + mov sl, r1 + mov r2, sp + adds r2, #0x2b + str r2, [sp, #0x80] + mov r0, sp + adds r0, #0x2a + str r0, [sp, #0x7c] + mov r1, sp + adds r1, #0x68 + str r1, [sp, #0x8c] + adds r2, #5 + str r2, [sp, #0x84] + adds r0, #0x12 + str r0, [sp, #0x88] + mov r8, r4 + add r4, sp, #0xc +_0814BAC8: + adds r1, r6, #0 + adds r1, #0xd + mov r0, r8 + bl GetMonData + strh r0, [r4] + adds r1, r6, #0 + adds r1, #0x11 + mov r0, r8 + bl GetMonData + mov r2, sb + adds r1, r2, r6 + strb r0, [r1] + adds r4, #2 + adds r6, #1 + cmp r6, #3 + ble _0814BAC8 + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _0814BC90 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x15 + bl GetMonData + mov r1, sl + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x20 + bl GetMonData + ldr r2, [sp, #0x80] + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0x19 + bl GetMonData + str r0, [sp, #0x44] + adds r0, r4, #0 + movs r1, #0x27 + bl GetMonData + mov r3, sp + movs r5, #0x1f + ands r0, r5 + ldrb r2, [r3, #0x14] + movs r1, #0x20 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x14] + adds r0, r4, #0 + movs r1, #0x28 + bl GetMonData + mov r3, sp + movs r6, #0x1f + ands r0, r6 + lsls r0, r0, #5 + ldrh r2, [r3, #0x14] + ldr r1, _0814BC94 + ands r1, r2 + orrs r1, r0 + strh r1, [r3, #0x14] + adds r0, r4, #0 + movs r1, #0x29 + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, r0, #2 + ldrb r2, [r3, #0x15] + movs r1, #0x7d + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x15] + adds r0, r4, #0 + movs r1, #0x2a + bl GetMonData + movs r1, #0x1f + ands r1, r0 + lsls r1, r1, #0xf + ldr r0, [sp, #0x14] + ldr r2, _0814BC98 + ands r0, r2 + orrs r0, r1 + str r0, [sp, #0x14] + adds r0, r4, #0 + movs r1, #0x2b + bl GetMonData + mov r3, sp + ands r0, r6 + lsls r0, r0, #4 + ldrh r2, [r3, #0x16] + ldr r1, _0814BC9C + ands r1, r2 + orrs r1, r0 + strh r1, [r3, #0x16] + adds r0, r4, #0 + movs r1, #0x2c + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, r0, #1 + ldrb r2, [r3, #0x17] + movs r1, #0x3f + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x17] + adds r0, r4, #0 + movs r1, #0 + bl GetMonData + str r0, [sp, #0x48] + adds r0, r4, #0 + movs r1, #0x37 + bl GetMonData + str r0, [sp, #0x4c] + adds r0, r4, #0 + movs r1, #0x38 + bl GetMonData + ldr r1, [sp, #0x7c] + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + mov r1, sp + strh r0, [r1, #0x28] + adds r0, r4, #0 + movs r1, #0x3a + bl GetMonData + mov r1, sp + strh r0, [r1, #0x2c] + adds r0, r4, #0 + movs r1, #0x3b + bl GetMonData + mov r1, sp + strh r0, [r1, #2] + adds r0, r4, #0 + movs r1, #0x3c + bl GetMonData + mov r1, sp + strh r0, [r1, #4] + adds r0, r4, #0 + movs r1, #0x3d + bl GetMonData + mov r1, sp + strh r0, [r1, #6] + adds r0, r4, #0 + movs r1, #0x3e + bl GetMonData + mov r1, sp + strh r0, [r1, #8] + adds r0, r4, #0 + movs r1, #0x3f + bl GetMonData + mov r1, sp + strh r0, [r1, #0xa] + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + mov r3, sp + movs r1, #1 + ands r0, r1 + lsls r0, r0, #6 + ldrb r2, [r3, #0x17] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x17] + adds r0, r4, #0 + movs r1, #0x2e + bl GetMonData + mov r3, sp + lsls r0, r0, #7 + ldrb r2, [r3, #0x17] + movs r1, #0x7f + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x17] + adds r0, r4, #0 + movs r1, #1 + bl GetMonData + str r0, [sp, #0x54] + adds r0, r4, #0 + movs r1, #2 + ldr r2, [sp, #0x8c] + bl GetMonData + ldr r0, [sp, #0x84] + ldr r1, [sp, #0x8c] + bl StringCopy10 + adds r0, r4, #0 + movs r1, #7 + ldr r2, [sp, #0x88] + bl GetMonData + mov r2, sp + movs r6, #0 +_0814BC80: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, #1 + cmp r6, #0x57 + bls _0814BC80 + b _0814C0E2 + .align 2, 0 +_0814BC90: .4byte 0x02024190 +_0814BC94: .4byte 0xFFFFFC1F +_0814BC98: .4byte 0xFFF07FFF +_0814BC9C: .4byte 0xFFFFFE0F +_0814BCA0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BCAC + adds r0, r0, r1 + movs r1, #0xb + b _0814C01A + .align 2, 0 +_0814BCAC: .4byte 0x02024190 +_0814BCB0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BCBC + adds r0, r0, r1 + movs r1, #0xc + b _0814C01A + .align 2, 0 +_0814BCBC: .4byte 0x02024190 +_0814BCC0: + movs r6, #0 + add r2, sp, #0x58 + mov sb, r2 + add r0, sp, #0x60 + mov sl, r0 + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _0814BD24 + adds r4, r1, r0 + mov r8, sb +_0814BCD6: + adds r1, r6, #0 + adds r1, #0xd + adds r0, r4, #0 + bl GetMonData + mov r1, r8 + strh r0, [r1] + adds r1, r6, #0 + adds r1, #0x11 + adds r0, r4, #0 + bl GetMonData + mov r2, sl + adds r1, r2, r6 + strb r0, [r1] + movs r0, #2 + add r8, r0 + adds r6, #1 + cmp r6, #3 + ble _0814BCD6 + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BD24 + adds r0, r0, r1 + movs r1, #0x15 + bl GetMonData + mov r1, sb + strb r0, [r1, #0xc] + mov r2, sb + movs r6, #0 +_0814BD14: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, #1 + cmp r6, #0xf + bls _0814BD14 + b _0814C0E2 + .align 2, 0 +_0814BD24: .4byte 0x02024190 +_0814BD28: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BD40 + adds r0, r0, r1 + ldrb r1, [r3] + lsls r1, r1, #9 + adds r2, #1 + adds r1, r1, r2 + ldrb r1, [r1] + adds r1, #9 + b _0814C01A + .align 2, 0 +_0814BD40: .4byte 0x02024190 +_0814BD44: + movs r6, #0 + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r2, _0814BD7C + mov r8, r2 +_0814BD50: + adds r1, r6, #0 + adds r1, #0x11 + mov r2, r8 + adds r0, r4, r2 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, #1 + cmp r6, #3 + ble _0814BD50 + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BD7C + adds r0, r0, r1 + movs r1, #0x15 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, #1 + b _0814C0E2 + .align 2, 0 +_0814BD7C: .4byte 0x02024190 +_0814BD80: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BD98 + adds r0, r0, r1 + ldrb r1, [r3] + lsls r1, r1, #9 + adds r2, #1 + adds r1, r1, r2 + ldrb r1, [r1] + adds r1, #8 + b _0814C0DA + .align 2, 0 +_0814BD98: .4byte 0x02024190 +_0814BD9C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BDA8 + adds r0, r0, r1 + movs r1, #1 + b _0814BDB6 + .align 2, 0 +_0814BDA8: .4byte 0x02024190 +_0814BDAC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BDD8 + adds r0, r0, r1 + movs r1, #0x19 +_0814BDB6: + bl GetMonData + adds r1, r0, #0 + strb r1, [r7] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + lsrs r0, r0, #8 + strb r0, [r7, #1] + movs r0, #0xff + lsls r0, r0, #0x10 + ands r0, r1 + lsrs r0, r0, #0x10 + strb r0, [r7, #2] + movs r6, #3 + b _0814C0E2 + .align 2, 0 +_0814BDD8: .4byte 0x02024190 +_0814BDDC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BDE8 + adds r0, r0, r1 + movs r1, #0x1a + b _0814C0DA + .align 2, 0 +_0814BDE8: .4byte 0x02024190 +_0814BDEC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BDF8 + adds r0, r0, r1 + movs r1, #0x1b + b _0814C0DA + .align 2, 0 +_0814BDF8: .4byte 0x02024190 +_0814BDFC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BE08 + adds r0, r0, r1 + movs r1, #0x1c + b _0814C0DA + .align 2, 0 +_0814BE08: .4byte 0x02024190 +_0814BE0C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BE18 + adds r0, r0, r1 + movs r1, #0x1d + b _0814C0DA + .align 2, 0 +_0814BE18: .4byte 0x02024190 +_0814BE1C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BE28 + adds r0, r0, r1 + movs r1, #0x1e + b _0814C0DA + .align 2, 0 +_0814BE28: .4byte 0x02024190 +_0814BE2C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BE38 + adds r0, r0, r1 + movs r1, #0x1f + b _0814C0DA + .align 2, 0 +_0814BE38: .4byte 0x02024190 +_0814BE3C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BE48 + adds r0, r0, r1 + movs r1, #0x20 + b _0814C0DA + .align 2, 0 +_0814BE48: .4byte 0x02024190 +_0814BE4C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BE58 + adds r0, r0, r1 + movs r1, #0x22 + b _0814C0DA + .align 2, 0 +_0814BE58: .4byte 0x02024190 +_0814BE5C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BE68 + adds r0, r0, r1 + movs r1, #0x23 + b _0814C0DA + .align 2, 0 +_0814BE68: .4byte 0x02024190 +_0814BE6C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BE78 + adds r0, r0, r1 + movs r1, #0x24 + b _0814C0DA + .align 2, 0 +_0814BE78: .4byte 0x02024190 +_0814BE7C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BE88 + adds r0, r0, r1 + movs r1, #0x25 + b _0814C0DA + .align 2, 0 +_0814BE88: .4byte 0x02024190 +_0814BE8C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BE98 + adds r0, r0, r1 + movs r1, #0x26 + b _0814C0DA + .align 2, 0 +_0814BE98: .4byte 0x02024190 +_0814BE9C: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _0814BEE8 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x27 + bl GetMonData + strb r0, [r7] + adds r0, r4, #0 + movs r1, #0x28 + bl GetMonData + strb r0, [r7, #1] + adds r0, r4, #0 + movs r1, #0x29 + bl GetMonData + strb r0, [r7, #2] + adds r0, r4, #0 + movs r1, #0x2a + bl GetMonData + strb r0, [r7, #3] + adds r0, r4, #0 + movs r1, #0x2b + bl GetMonData + strb r0, [r7, #4] + adds r0, r4, #0 + movs r1, #0x2c + bl GetMonData + strb r0, [r7, #5] + movs r6, #6 + b _0814C0E2 + .align 2, 0 +_0814BEE8: .4byte 0x02024190 +_0814BEEC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BEF8 + adds r0, r0, r1 + movs r1, #0x27 + b _0814C0DA + .align 2, 0 +_0814BEF8: .4byte 0x02024190 +_0814BEFC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BF08 + adds r0, r0, r1 + movs r1, #0x28 + b _0814C0DA + .align 2, 0 +_0814BF08: .4byte 0x02024190 +_0814BF0C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BF18 + adds r0, r0, r1 + movs r1, #0x29 + b _0814C0DA + .align 2, 0 +_0814BF18: .4byte 0x02024190 +_0814BF1C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BF28 + adds r0, r0, r1 + movs r1, #0x2a + b _0814C0DA + .align 2, 0 +_0814BF28: .4byte 0x02024190 +_0814BF2C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BF38 + adds r0, r0, r1 + movs r1, #0x2b + b _0814C0DA + .align 2, 0 +_0814BF38: .4byte 0x02024190 +_0814BF3C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BF48 + adds r0, r0, r1 + movs r1, #0x2c + b _0814C0DA + .align 2, 0 +_0814BF48: .4byte 0x02024190 +_0814BF4C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BF58 + adds r0, r0, r1 + movs r1, #0 + b _0814BF76 + .align 2, 0 +_0814BF58: .4byte 0x02024190 +_0814BF5C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BF68 + adds r0, r0, r1 + movs r1, #9 + b _0814C01A + .align 2, 0 +_0814BF68: .4byte 0x02024190 +_0814BF6C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BF9C + adds r0, r0, r1 + movs r1, #0x37 +_0814BF76: + bl GetMonData + adds r1, r0, #0 + strb r1, [r7] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + lsrs r0, r0, #8 + strb r0, [r7, #1] + movs r0, #0xff + lsls r0, r0, #0x10 + ands r0, r1 + lsrs r0, r0, #0x10 + strb r0, [r7, #2] + lsrs r0, r1, #0x18 + strb r0, [r7, #3] + movs r6, #4 + b _0814C0E2 + .align 2, 0 +_0814BF9C: .4byte 0x02024190 +_0814BFA0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BFAC + adds r0, r0, r1 + movs r1, #0x38 + b _0814C0DA + .align 2, 0 +_0814BFAC: .4byte 0x02024190 +_0814BFB0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BFBC + adds r0, r0, r1 + movs r1, #0x39 + b _0814C01A + .align 2, 0 +_0814BFBC: .4byte 0x02024190 +_0814BFC0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BFCC + adds r0, r0, r1 + movs r1, #0x3a + b _0814C01A + .align 2, 0 +_0814BFCC: .4byte 0x02024190 +_0814BFD0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BFDC + adds r0, r0, r1 + movs r1, #0x3b + b _0814C01A + .align 2, 0 +_0814BFDC: .4byte 0x02024190 +_0814BFE0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BFEC + adds r0, r0, r1 + movs r1, #0x3c + b _0814C01A + .align 2, 0 +_0814BFEC: .4byte 0x02024190 +_0814BFF0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814BFFC + adds r0, r0, r1 + movs r1, #0x3d + b _0814C01A + .align 2, 0 +_0814BFFC: .4byte 0x02024190 +_0814C000: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C00C + adds r0, r0, r1 + movs r1, #0x3e + b _0814C01A + .align 2, 0 +_0814C00C: .4byte 0x02024190 +_0814C010: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C02C + adds r0, r0, r1 + movs r1, #0x3f +_0814C01A: + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + strb r0, [r7] + lsrs r0, r0, #8 + strb r0, [r7, #1] + movs r6, #2 + b _0814C0E2 + .align 2, 0 +_0814C02C: .4byte 0x02024190 +_0814C030: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C03C + adds r0, r0, r1 + movs r1, #0x16 + b _0814C0DA + .align 2, 0 +_0814C03C: .4byte 0x02024190 +_0814C040: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C04C + adds r0, r0, r1 + movs r1, #0x17 + b _0814C0DA + .align 2, 0 +_0814C04C: .4byte 0x02024190 +_0814C050: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C05C + adds r0, r0, r1 + movs r1, #0x18 + b _0814C0DA + .align 2, 0 +_0814C05C: .4byte 0x02024190 +_0814C060: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C06C + adds r0, r0, r1 + movs r1, #0x21 + b _0814C0DA + .align 2, 0 +_0814C06C: .4byte 0x02024190 +_0814C070: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C07C + adds r0, r0, r1 + movs r1, #0x2f + b _0814C0DA + .align 2, 0 +_0814C07C: .4byte 0x02024190 +_0814C080: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C08C + adds r0, r0, r1 + movs r1, #0x30 + b _0814C0DA + .align 2, 0 +_0814C08C: .4byte 0x02024190 +_0814C090: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C09C + adds r0, r0, r1 + movs r1, #0x32 + b _0814C0DA + .align 2, 0 +_0814C09C: .4byte 0x02024190 +_0814C0A0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C0AC + adds r0, r0, r1 + movs r1, #0x33 + b _0814C0DA + .align 2, 0 +_0814C0AC: .4byte 0x02024190 +_0814C0B0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C0BC + adds r0, r0, r1 + movs r1, #0x34 + b _0814C0DA + .align 2, 0 +_0814C0BC: .4byte 0x02024190 +_0814C0C0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C0CC + adds r0, r0, r1 + movs r1, #0x35 + b _0814C0DA + .align 2, 0 +_0814C0CC: .4byte 0x02024190 +_0814C0D0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C0F4 + adds r0, r0, r1 + movs r1, #0x36 +_0814C0DA: + bl GetMonData + strb r0, [r7] + movs r6, #1 +_0814C0E2: + adds r0, r6, #0 + add sp, #0x90 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0814C0F4: .4byte 0x02024190 + thumb_func_end CopyLinkPartnerMonData + + thumb_func_start LinkPartnerHandleGetRawMonData +LinkPartnerHandleGetRawMonData: @ 0x0814C0F8 + push {lr} + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkPartnerHandleGetRawMonData + + thumb_func_start LinkPartnerHandleSetMonData +LinkPartnerHandleSetMonData: @ 0x0814C104 + push {r4, r5, lr} + ldr r1, _0814C128 + ldr r0, _0814C12C + ldrb r2, [r0] + lsls r0, r2, #9 + adds r1, #2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, #0 + bne _0814C134 + ldr r0, _0814C130 + lsls r1, r2, #1 + adds r1, r1, r0 + ldrb r0, [r1] + bl SetLinkPartnerMonData + b _0814C152 + .align 2, 0 +_0814C128: .4byte 0x02022D08 +_0814C12C: .4byte 0x02023D08 +_0814C130: .4byte 0x02023D12 +_0814C134: + ldrb r4, [r1] + movs r5, #0 +_0814C138: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _0814C146 + adds r0, r5, #0 + bl SetLinkPartnerMonData +_0814C146: + lsrs r4, r4, #1 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #5 + bls _0814C138 +_0814C152: + bl LinkPartnerBufferExecCompleted + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end LinkPartnerHandleSetMonData + + thumb_func_start SetLinkPartnerMonData +SetLinkPartnerMonData: @ 0x0814C15C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x34 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _0814C194 + ldrb r0, [r0] + lsls r0, r0, #9 + ldr r2, _0814C198 + adds r3, r0, r2 + adds r6, r3, #0 + subs r1, r2, #2 + adds r0, r0, r1 + ldrb r0, [r0] + adds r7, r2, #0 + cmp r0, #0x3b + bls _0814C188 + bl _0814CB22 +_0814C188: + lsls r0, r0, #2 + ldr r1, _0814C19C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0814C194: .4byte 0x02023D08 +_0814C198: .4byte 0x02022D0B +_0814C19C: .4byte 0x0814C1A0 +_0814C1A0: @ jump table + .4byte _0814C290 @ case 0 + .4byte _0814C428 @ case 1 + .4byte _0814C448 @ case 2 + .4byte _0814C468 @ case 3 + .4byte _0814C4C0 @ case 4 + .4byte _0814C4C0 @ case 5 + .4byte _0814C4C0 @ case 6 + .4byte _0814C4C0 @ case 7 + .4byte _0814C4E8 @ case 8 + .4byte _0814C54C @ case 9 + .4byte _0814C54C @ case 10 + .4byte _0814C54C @ case 11 + .4byte _0814C54C @ case 12 + .4byte _0814CB22 @ case 13 + .4byte _0814CB22 @ case 14 + .4byte _0814CB22 @ case 15 + .4byte _0814CB22 @ case 16 + .4byte _0814C57C @ case 17 + .4byte _0814C59C @ case 18 + .4byte _0814C5BC @ case 19 + .4byte _0814C5DC @ case 20 + .4byte _0814C5FC @ case 21 + .4byte _0814C61C @ case 22 + .4byte _0814C63C @ case 23 + .4byte _0814C65C @ case 24 + .4byte _0814C67C @ case 25 + .4byte _0814C69C @ case 26 + .4byte _0814C6BC @ case 27 + .4byte _0814C6DC @ case 28 + .4byte _0814C6FC @ case 29 + .4byte _0814C71C @ case 30 + .4byte _0814C73C @ case 31 + .4byte _0814C7AC @ case 32 + .4byte _0814C7CC @ case 33 + .4byte _0814C7EC @ case 34 + .4byte _0814C80C @ case 35 + .4byte _0814C82C @ case 36 + .4byte _0814C84C @ case 37 + .4byte _0814C86C @ case 38 + .4byte _0814C88C @ case 39 + .4byte _0814C8AC @ case 40 + .4byte _0814C8CC @ case 41 + .4byte _0814C8EC @ case 42 + .4byte _0814C90C @ case 43 + .4byte _0814C92C @ case 44 + .4byte _0814C94C @ case 45 + .4byte _0814C96C @ case 46 + .4byte _0814C98C @ case 47 + .4byte _0814C9AC @ case 48 + .4byte _0814C9CC @ case 49 + .4byte _0814C9EC @ case 50 + .4byte _0814CA0C @ case 51 + .4byte _0814CA2C @ case 52 + .4byte _0814CA4C @ case 53 + .4byte _0814CA6C @ case 54 + .4byte _0814CA8C @ case 55 + .4byte _0814CAAC @ case 56 + .4byte _0814CACC @ case 57 + .4byte _0814CAEC @ case 58 + .4byte _0814CB0C @ case 59 +_0814C290: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _0814C424 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0xb + adds r2, r6, #0 + bl SetMonData + adds r2, r6, #0 + adds r2, #0x2e + adds r0, r4, #0 + movs r1, #0xc + bl SetMonData + movs r0, #0 + mov r8, r0 + movs r0, #0x3b + adds r0, r0, r6 + mov sl, r0 + adds r0, r6, #0 + adds r0, #0x2b + str r0, [sp, #0x20] + adds r0, #0x19 + str r0, [sp, #0x28] + adds r0, #4 + str r0, [sp, #0x2c] + adds r0, #4 + str r0, [sp, #0x30] + subs r0, #0x22 + str r0, [sp, #0x1c] + subs r0, #2 + str r0, [sp, #0x18] + adds r0, #4 + str r0, [sp, #0x24] + adds r0, r6, #2 + str r0, [sp, #4] + adds r0, r6, #4 + str r0, [sp, #8] + adds r0, r6, #6 + str r0, [sp, #0xc] + adds r0, #2 + str r0, [sp, #0x10] + adds r0, #2 + str r0, [sp, #0x14] + mov sb, r4 + adds r7, r6, #0 + adds r7, #0x24 + adds r4, r6, #0 + adds r4, #0xc +_0814C2F6: + mov r1, r8 + adds r1, #0xd + mov r0, sb + adds r2, r4, #0 + bl SetMonData + mov r1, r8 + adds r1, #0x11 + mov r0, sb + adds r2, r7, #0 + bl SetMonData + adds r7, #1 + adds r4, #2 + movs r0, #1 + add r8, r0 + mov r0, r8 + cmp r0, #3 + ble _0814C2F6 + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _0814C424 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x15 + mov r2, sl + bl SetMonData + adds r0, r4, #0 + movs r1, #0x20 + ldr r2, [sp, #0x20] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x19 + ldr r2, [sp, #0x28] + bl SetMonData + ldrb r0, [r6, #0x14] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1b + mov r1, sp + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x27 + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r6, #0x14] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x28 + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r6, #0x15] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x29 + mov r2, sp + bl SetMonData + mov r1, sp + ldr r0, [r6, #0x14] + lsls r0, r0, #0xc + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x2a + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r6, #0x16] + lsls r0, r0, #0x17 + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x2b + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r6, #0x17] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x2c + mov r2, sp + bl SetMonData + adds r0, r4, #0 + movs r1, #0 + ldr r2, [sp, #0x2c] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x37 + ldr r2, [sp, #0x30] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x38 + ldr r2, [sp, #0x1c] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x39 + ldr r2, [sp, #0x18] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3a + ldr r2, [sp, #0x24] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3b + ldr r2, [sp, #4] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3c + ldr r2, [sp, #8] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3d + ldr r2, [sp, #0xc] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3e + ldr r2, [sp, #0x10] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3f + ldr r2, [sp, #0x14] + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C424: .4byte 0x02024190 +_0814C428: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C440 + adds r0, r0, r1 + ldr r1, _0814C444 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0xb + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C440: .4byte 0x02024190 +_0814C444: .4byte 0x02023D08 +_0814C448: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C460 + adds r0, r0, r1 + ldr r1, _0814C464 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0xc + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C460: .4byte 0x02024190 +_0814C464: .4byte 0x02023D08 +_0814C468: + movs r0, #0 + mov r8, r0 + movs r0, #0xc + adds r0, r0, r3 + mov sb, r0 + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _0814C4BC + adds r7, r1, r0 + adds r6, r3, #0 + adds r6, #8 + adds r4, r3, #0 +_0814C482: + mov r1, r8 + adds r1, #0xd + adds r0, r7, #0 + adds r2, r4, #0 + bl SetMonData + mov r1, r8 + adds r1, #0x11 + adds r0, r7, #0 + adds r2, r6, #0 + bl SetMonData + adds r6, #1 + adds r4, #2 + movs r0, #1 + add r8, r0 + mov r0, r8 + cmp r0, #3 + ble _0814C482 + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C4BC + adds r0, r0, r1 + movs r1, #0x15 + mov r2, sb + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C4BC: .4byte 0x02024190 +_0814C4C0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C4DC + adds r0, r0, r1 + ldr r3, _0814C4E0 + ldr r1, _0814C4E4 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r1, r3, #1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, #9 + b _0814C564 + .align 2, 0 +_0814C4DC: .4byte 0x02024190 +_0814C4E0: .4byte 0x02022D08 +_0814C4E4: .4byte 0x02023D08 +_0814C4E8: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _0814C544 + adds r4, r4, r0 + ldr r5, _0814C548 + ldrb r2, [r5] + lsls r2, r2, #9 + adds r2, r2, r7 + adds r0, r4, #0 + movs r1, #0x11 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #1 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x12 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #2 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x13 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #3 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x14 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #4 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x15 + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C544: .4byte 0x02024190 +_0814C548: .4byte 0x02023D08 +_0814C54C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C570 + adds r0, r0, r1 + ldr r3, _0814C574 + ldr r1, _0814C578 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r1, r3, #1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, #8 +_0814C564: + adds r3, #3 + adds r2, r2, r3 + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C570: .4byte 0x02024190 +_0814C574: .4byte 0x02022D08 +_0814C578: .4byte 0x02023D08 +_0814C57C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C594 + adds r0, r0, r1 + ldr r1, _0814C598 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #1 + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C594: .4byte 0x02024190 +_0814C598: .4byte 0x02023D08 +_0814C59C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C5B4 + adds r0, r0, r1 + ldr r1, _0814C5B8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x19 + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C5B4: .4byte 0x02024190 +_0814C5B8: .4byte 0x02023D08 +_0814C5BC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C5D4 + adds r0, r0, r1 + ldr r1, _0814C5D8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x1a + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C5D4: .4byte 0x02024190 +_0814C5D8: .4byte 0x02023D08 +_0814C5DC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C5F4 + adds r0, r0, r1 + ldr r1, _0814C5F8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x1b + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C5F4: .4byte 0x02024190 +_0814C5F8: .4byte 0x02023D08 +_0814C5FC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C614 + adds r0, r0, r1 + ldr r1, _0814C618 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x1c + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C614: .4byte 0x02024190 +_0814C618: .4byte 0x02023D08 +_0814C61C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C634 + adds r0, r0, r1 + ldr r1, _0814C638 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x1d + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C634: .4byte 0x02024190 +_0814C638: .4byte 0x02023D08 +_0814C63C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C654 + adds r0, r0, r1 + ldr r1, _0814C658 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x1e + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C654: .4byte 0x02024190 +_0814C658: .4byte 0x02023D08 +_0814C65C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C674 + adds r0, r0, r1 + ldr r1, _0814C678 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x1f + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C674: .4byte 0x02024190 +_0814C678: .4byte 0x02023D08 +_0814C67C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C694 + adds r0, r0, r1 + ldr r1, _0814C698 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x20 + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C694: .4byte 0x02024190 +_0814C698: .4byte 0x02023D08 +_0814C69C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C6B4 + adds r0, r0, r1 + ldr r1, _0814C6B8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x22 + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C6B4: .4byte 0x02024190 +_0814C6B8: .4byte 0x02023D08 +_0814C6BC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C6D4 + adds r0, r0, r1 + ldr r1, _0814C6D8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x23 + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C6D4: .4byte 0x02024190 +_0814C6D8: .4byte 0x02023D08 +_0814C6DC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C6F4 + adds r0, r0, r1 + ldr r1, _0814C6F8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x24 + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C6F4: .4byte 0x02024190 +_0814C6F8: .4byte 0x02023D08 +_0814C6FC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C714 + adds r0, r0, r1 + ldr r1, _0814C718 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x25 + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C714: .4byte 0x02024190 +_0814C718: .4byte 0x02023D08 +_0814C71C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C734 + adds r0, r0, r1 + ldr r1, _0814C738 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x26 + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C734: .4byte 0x02024190 +_0814C738: .4byte 0x02023D08 +_0814C73C: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _0814C7A4 + adds r4, r4, r0 + ldr r5, _0814C7A8 + ldrb r2, [r5] + lsls r2, r2, #9 + adds r2, r2, r7 + adds r0, r4, #0 + movs r1, #0x27 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #1 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x28 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #2 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x29 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #3 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x2a + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #4 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x2b + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #5 + adds r2, r2, r0 + adds r0, r4, #0 + b _0814C85C + .align 2, 0 +_0814C7A4: .4byte 0x02024190 +_0814C7A8: .4byte 0x02023D08 +_0814C7AC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C7C4 + adds r0, r0, r1 + ldr r1, _0814C7C8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x27 + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C7C4: .4byte 0x02024190 +_0814C7C8: .4byte 0x02023D08 +_0814C7CC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C7E4 + adds r0, r0, r1 + ldr r1, _0814C7E8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x28 + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C7E4: .4byte 0x02024190 +_0814C7E8: .4byte 0x02023D08 +_0814C7EC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C804 + adds r0, r0, r1 + ldr r1, _0814C808 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x29 + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C804: .4byte 0x02024190 +_0814C808: .4byte 0x02023D08 +_0814C80C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C824 + adds r0, r0, r1 + ldr r1, _0814C828 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x2a + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C824: .4byte 0x02024190 +_0814C828: .4byte 0x02023D08 +_0814C82C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C844 + adds r0, r0, r1 + ldr r1, _0814C848 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x2b + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C844: .4byte 0x02024190 +_0814C848: .4byte 0x02023D08 +_0814C84C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C864 + adds r0, r0, r1 + ldr r1, _0814C868 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 +_0814C85C: + movs r1, #0x2c + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C864: .4byte 0x02024190 +_0814C868: .4byte 0x02023D08 +_0814C86C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C884 + adds r0, r0, r1 + ldr r1, _0814C888 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0 + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C884: .4byte 0x02024190 +_0814C888: .4byte 0x02023D08 +_0814C88C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C8A4 + adds r0, r0, r1 + ldr r1, _0814C8A8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #9 + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C8A4: .4byte 0x02024190 +_0814C8A8: .4byte 0x02023D08 +_0814C8AC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C8C4 + adds r0, r0, r1 + ldr r1, _0814C8C8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x37 + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C8C4: .4byte 0x02024190 +_0814C8C8: .4byte 0x02023D08 +_0814C8CC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C8E4 + adds r0, r0, r1 + ldr r1, _0814C8E8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x38 + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C8E4: .4byte 0x02024190 +_0814C8E8: .4byte 0x02023D08 +_0814C8EC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C904 + adds r0, r0, r1 + ldr r1, _0814C908 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x39 + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C904: .4byte 0x02024190 +_0814C908: .4byte 0x02023D08 +_0814C90C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C924 + adds r0, r0, r1 + ldr r1, _0814C928 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x3a + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C924: .4byte 0x02024190 +_0814C928: .4byte 0x02023D08 +_0814C92C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C944 + adds r0, r0, r1 + ldr r1, _0814C948 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x3b + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C944: .4byte 0x02024190 +_0814C948: .4byte 0x02023D08 +_0814C94C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C964 + adds r0, r0, r1 + ldr r1, _0814C968 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x3c + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C964: .4byte 0x02024190 +_0814C968: .4byte 0x02023D08 +_0814C96C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C984 + adds r0, r0, r1 + ldr r1, _0814C988 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x3d + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C984: .4byte 0x02024190 +_0814C988: .4byte 0x02023D08 +_0814C98C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C9A4 + adds r0, r0, r1 + ldr r1, _0814C9A8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x3e + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C9A4: .4byte 0x02024190 +_0814C9A8: .4byte 0x02023D08 +_0814C9AC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C9C4 + adds r0, r0, r1 + ldr r1, _0814C9C8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x3f + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C9C4: .4byte 0x02024190 +_0814C9C8: .4byte 0x02023D08 +_0814C9CC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814C9E4 + adds r0, r0, r1 + ldr r1, _0814C9E8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x16 + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814C9E4: .4byte 0x02024190 +_0814C9E8: .4byte 0x02023D08 +_0814C9EC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814CA04 + adds r0, r0, r1 + ldr r1, _0814CA08 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x17 + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814CA04: .4byte 0x02024190 +_0814CA08: .4byte 0x02023D08 +_0814CA0C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814CA24 + adds r0, r0, r1 + ldr r1, _0814CA28 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x18 + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814CA24: .4byte 0x02024190 +_0814CA28: .4byte 0x02023D08 +_0814CA2C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814CA44 + adds r0, r0, r1 + ldr r1, _0814CA48 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x21 + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814CA44: .4byte 0x02024190 +_0814CA48: .4byte 0x02023D08 +_0814CA4C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814CA64 + adds r0, r0, r1 + ldr r1, _0814CA68 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x2f + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814CA64: .4byte 0x02024190 +_0814CA68: .4byte 0x02023D08 +_0814CA6C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814CA84 + adds r0, r0, r1 + ldr r1, _0814CA88 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x30 + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814CA84: .4byte 0x02024190 +_0814CA88: .4byte 0x02023D08 +_0814CA8C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814CAA4 + adds r0, r0, r1 + ldr r1, _0814CAA8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x32 + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814CAA4: .4byte 0x02024190 +_0814CAA8: .4byte 0x02023D08 +_0814CAAC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814CAC4 + adds r0, r0, r1 + ldr r1, _0814CAC8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x33 + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814CAC4: .4byte 0x02024190 +_0814CAC8: .4byte 0x02023D08 +_0814CACC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814CAE4 + adds r0, r0, r1 + ldr r1, _0814CAE8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x34 + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814CAE4: .4byte 0x02024190 +_0814CAE8: .4byte 0x02023D08 +_0814CAEC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814CB04 + adds r0, r0, r1 + ldr r1, _0814CB08 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x35 + bl SetMonData + b _0814CB22 + .align 2, 0 +_0814CB04: .4byte 0x02024190 +_0814CB08: .4byte 0x02023D08 +_0814CB0C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0814CB4C + adds r0, r0, r1 + ldr r1, _0814CB50 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x36 + bl SetMonData +_0814CB22: + ldr r2, _0814CB54 + ldr r0, _0814CB50 + ldrb r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r2, [r0] + movs r0, #0x64 + muls r0, r2, r0 + ldr r2, _0814CB4C + adds r0, r0, r2 + bl HandleLowHpMusicChange + add sp, #0x34 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0814CB4C: .4byte 0x02024190 +_0814CB50: .4byte 0x02023D08 +_0814CB54: .4byte 0x02023D12 + thumb_func_end SetLinkPartnerMonData + + thumb_func_start LinkPartnerHandleSetRawMonData +LinkPartnerHandleSetRawMonData: @ 0x0814CB58 + push {r4, r5, r6, r7, lr} + ldr r1, _0814CBBC + ldr r7, _0814CBC0 + ldrb r2, [r7] + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + adds r3, r1, #0 + muls r3, r0, r3 + ldr r4, _0814CBC4 + lsls r2, r2, #9 + adds r0, r4, #1 + adds r0, r2, r0 + ldrb r0, [r0] + ldr r1, _0814CBC8 + adds r0, r0, r1 + adds r5, r3, r0 + movs r3, #0 + adds r0, r4, #2 + adds r2, r2, r0 + ldrb r2, [r2] + cmp r3, r2 + bhs _0814CBB0 + adds r6, r4, #0 + adds r2, r7, #0 + adds r4, r0, #0 +_0814CB8E: + adds r1, r5, r3 + ldrb r0, [r2] + lsls r0, r0, #9 + adds r0, #3 + adds r0, r3, r0 + adds r0, r0, r6 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldrb r0, [r2] + lsls r0, r0, #9 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r3, r0 + blo _0814CB8E +_0814CBB0: + bl LinkPartnerBufferExecCompleted + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0814CBBC: .4byte 0x02023D12 +_0814CBC0: .4byte 0x02023D08 +_0814CBC4: .4byte 0x02022D08 +_0814CBC8: .4byte 0x02024190 + thumb_func_end LinkPartnerHandleSetRawMonData + + thumb_func_start LinkPartnerHandleLoadMonSprite +LinkPartnerHandleLoadMonSprite: @ 0x0814CBCC + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + ldr r0, _0814CCC0 + mov r8, r0 + ldr r6, _0814CCC4 + ldrb r1, [r6] + lsls r0, r1, #1 + add r0, r8 + ldrh r0, [r0] + movs r5, #0x64 + muls r0, r5, r0 + ldr r4, _0814CCC8 + adds r0, r0, r4 + bl BattleLoadPlayerMonSpriteGfx + ldrb r0, [r6] + lsls r0, r0, #1 + add r0, r8 + ldrh r0, [r0] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #0xb + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldrb r0, [r6] + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl SetMultiuseSpriteTemplateToPokemon + ldr r0, _0814CCCC + mov r8, r0 + ldrb r0, [r6] + movs r1, #2 + bl GetBattlerSpriteCoord + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldrb r0, [r6] + bl GetBattlerSpriteDefault_Y + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldrb r0, [r6] + bl GetBattlerSpriteSubpriority + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r0, r8 + adds r1, r5, #0 + adds r2, r4, #0 + bl CreateSprite + ldr r4, _0814CCD0 + ldrb r1, [r6] + adds r1, r1, r4 + strb r0, [r1] + ldr r5, _0814CCD4 + ldrb r0, [r6] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _0814CCD8 + strh r1, [r0, #0x24] + ldrb r2, [r6] + adds r0, r2, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r2, [r0, #0x2e] + ldrb r3, [r6] + adds r0, r3, r4 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + lsls r3, r3, #4 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #5] + ldrb r2, [r6] + adds r4, r2, r4 + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _0814CCDC + adds r2, r2, r1 + ldrb r1, [r2] + bl StartSpriteAnim + ldr r1, _0814CCE0 + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0814CCE4 + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0814CCC0: .4byte 0x02023D12 +_0814CCC4: .4byte 0x02023D08 +_0814CCC8: .4byte 0x02024190 +_0814CCCC: .4byte 0x02024640 +_0814CCD0: .4byte 0x02023E88 +_0814CCD4: .4byte 0x020205AC +_0814CCD8: .4byte 0x0000FF10 +_0814CCDC: .4byte 0x02024188 +_0814CCE0: .4byte 0x03005AC0 +_0814CCE4: .4byte 0x0814B351 + thumb_func_end LinkPartnerHandleLoadMonSprite + + thumb_func_start sub_0814CCE8 +sub_0814CCE8: @ 0x0814CCE8 + push {r4, r5, r6, lr} + ldr r5, _0814CD40 + ldrb r0, [r5] + ldr r4, _0814CD44 + lsls r1, r0, #9 + adds r6, r4, #2 + adds r1, r1, r6 + ldrb r1, [r1] + bl ClearTemporarySpeciesSpriteData + ldr r2, _0814CD48 + ldrb r0, [r5] + lsls r1, r0, #1 + adds r1, r1, r2 + lsls r0, r0, #9 + adds r4, #1 + adds r0, r0, r4 + ldrb r0, [r0] + strh r0, [r1] + ldrb r1, [r5] + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r2, [r0] + movs r0, #0x64 + muls r0, r2, r0 + ldr r2, _0814CD4C + adds r0, r0, r2 + bl BattleLoadPlayerMonSpriteGfx + ldrb r0, [r5] + lsls r1, r0, #9 + adds r1, r1, r6 + ldrb r1, [r1] + bl sub_0814CD58 + ldr r1, _0814CD50 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0814CD54 + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0814CD40: .4byte 0x02023D08 +_0814CD44: .4byte 0x02022D08 +_0814CD48: .4byte 0x02023D12 +_0814CD4C: .4byte 0x02024190 +_0814CD50: .4byte 0x03005AC0 +_0814CD54: .4byte 0x0814B75D + thumb_func_end sub_0814CCE8 + + thumb_func_start sub_0814CD58 +sub_0814CD58: @ 0x0814CD58 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r6, #0 + bl ClearTemporarySpeciesSpriteData + ldr r0, _0814CEAC + lsls r2, r6, #1 + adds r2, r2, r0 + ldr r0, _0814CEB0 + lsls r1, r6, #9 + adds r0, #1 + adds r1, r1, r0 + ldrb r0, [r1] + strh r0, [r2] + ldrh r1, [r2] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0814CEB4 + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + mov r8, r0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + ldr r0, _0814CEB8 + bl CreateInvisibleSpriteWithCallback + ldr r1, _0814CEBC + mov sb, r1 + add sb, r6 + mov r1, sb + strb r0, [r1] + adds r0, r6, #0 + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r0, r8 + bl SetMultiuseSpriteTemplateToPokemon + ldr r0, _0814CEC0 + mov sl, r0 + adds r0, r6, #0 + movs r1, #2 + bl GetBattlerSpriteCoord + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + adds r0, r6, #0 + bl GetBattlerSpriteDefault_Y + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r6, #0 + bl GetBattlerSpriteSubpriority + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r0, sl + adds r1, r5, #0 + adds r2, r4, #0 + bl CreateSprite + ldr r4, _0814CEC4 + adds r4, r6, r4 + strb r0, [r4] + ldr r5, _0814CEC8 + mov r0, sb + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r1, [r4] + strh r1, [r0, #0x30] + mov r0, sb + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r6, [r0, #0x32] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r6, [r0, #0x2e] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + mov r1, r8 + strh r1, [r0, #0x32] + ldrb r0, [r4] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + lsls r3, r6, #4 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #5] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _0814CECC + adds r6, r6, r1 + ldrb r1, [r6] + bl StartSpriteAnim + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r5, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _0814CED0 + str r1, [r0] + movs r0, #0 + movs r1, #0xff + bl DoPokeballSendOutAnimation + mov r1, sb + ldrb r2, [r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r1, #0x2e] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0814CEAC: .4byte 0x02023D12 +_0814CEB0: .4byte 0x02022D08 +_0814CEB4: .4byte 0x02024190 +_0814CEB8: .4byte 0x0805D331 +_0814CEBC: .4byte 0x03005ADC +_0814CEC0: .4byte 0x02024640 +_0814CEC4: .4byte 0x02023E88 +_0814CEC8: .4byte 0x020205AC +_0814CECC: .4byte 0x02024188 +_0814CED0: .4byte 0x08007141 + thumb_func_end sub_0814CD58 + + thumb_func_start LinkPartnerHandleReturnMonToBall +LinkPartnerHandleReturnMonToBall: @ 0x0814CED4 + push {r4, r5, r6, lr} + ldr r1, _0814CF08 + ldr r6, _0814CF0C + ldrb r2, [r6] + lsls r0, r2, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r3, [r0] + cmp r3, #0 + bne _0814CF1C + ldr r0, _0814CF10 + ldr r0, [r0] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + strb r3, [r0, #4] + ldr r1, _0814CF14 + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0814CF18 + str r1, [r0] + b _0814CF52 + .align 2, 0 +_0814CF08: .4byte 0x02022D08 +_0814CF0C: .4byte 0x02023D08 +_0814CF10: .4byte 0x02024174 +_0814CF14: .4byte 0x03005AC0 +_0814CF18: .4byte 0x0814CF65 +_0814CF1C: + ldr r5, _0814CF58 + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _0814CF5C + adds r0, r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + ldr r1, _0814CF60 + ldrb r0, [r6] + adds r0, r0, r1 + ldrb r0, [r0] + bl SetHealthboxSpriteInvisible + bl LinkPartnerBufferExecCompleted +_0814CF52: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0814CF58: .4byte 0x02023E88 +_0814CF5C: .4byte 0x020205AC +_0814CF60: .4byte 0x03005AD0 + thumb_func_end LinkPartnerHandleReturnMonToBall + + thumb_func_start sub_0814CF64 +sub_0814CF64: @ 0x0814CF64 + push {r4, r5, r6, lr} + ldr r6, _0814CF84 + ldr r4, [r6] + ldr r5, _0814CF88 + ldrb r2, [r5] + ldr r1, [r4, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r3, r0, r1 + ldrb r0, [r3, #4] + cmp r0, #0 + beq _0814CF8C + cmp r0, #1 + beq _0814CFBA + b _0814CFE2 + .align 2, 0 +_0814CF84: .4byte 0x02024174 +_0814CF88: .4byte 0x02023D08 +_0814CF8C: + ldr r1, [r4] + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0814CFA6 + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #5 + bl InitAndLaunchSpecialAnimation +_0814CFA6: + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #1 + strb r1, [r0, #4] + b _0814CFE2 +_0814CFBA: + ldrb r1, [r3] + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0814CFE2 + strb r0, [r3, #4] + ldrb r2, [r5] + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #1 + bl InitAndLaunchSpecialAnimation + ldr r1, _0814CFE8 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0814CFEC + str r1, [r0] +_0814CFE2: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0814CFE8: .4byte 0x03005AC0 +_0814CFEC: .4byte 0x0814B49D + thumb_func_end sub_0814CF64 + + thumb_func_start LinkPartnerHandleDrawTrainerPic +LinkPartnerHandleDrawTrainerPic: @ 0x0814CFF0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _0814D018 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0814D020 + ldr r0, _0814D01C + ldrb r0, [r0] + bl GetBattlerPosition + movs r1, #2 + ands r1, r0 + movs r7, #0x20 + cmp r1, #0 + beq _0814D022 + movs r7, #0x5a + b _0814D022 + .align 2, 0 +_0814D018: .4byte 0x02022C90 +_0814D01C: .4byte 0x02023D08 +_0814D020: + movs r7, #0x50 +_0814D022: + ldr r5, _0814D068 + ldrb r0, [r5] + bl GetBattlerMultiplayerId + ldr r6, _0814D06C + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + movs r4, #0xff + ldrb r0, [r1] + cmp r0, #4 + beq _0814D054 + ldrb r0, [r5] + bl GetBattlerMultiplayerId + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrh r1, [r1] + adds r0, r4, #0 + ands r0, r1 + cmp r0, #5 + bne _0814D070 +_0814D054: + ldrb r0, [r5] + bl GetBattlerMultiplayerId + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrb r0, [r1, #0x13] + adds r4, r0, #2 + b _0814D0C2 + .align 2, 0 +_0814D068: .4byte 0x02023D08 +_0814D06C: .4byte 0x020226A0 +_0814D070: + ldrb r0, [r5] + bl GetBattlerMultiplayerId + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrh r1, [r1] + adds r0, r4, #0 + ands r0, r1 + cmp r0, #2 + beq _0814D09E + ldrb r0, [r5] + bl GetBattlerMultiplayerId + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrh r0, [r1] + ands r4, r0 + cmp r4, #1 + bne _0814D0B2 +_0814D09E: + ldrb r0, [r5] + bl GetBattlerMultiplayerId + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrb r0, [r1, #0x13] + adds r4, r0, #4 + b _0814D0C2 +_0814D0B2: + ldrb r0, [r5] + bl GetBattlerMultiplayerId + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrb r4, [r1, #0x13] +_0814D0C2: + ldr r5, _0814D180 + ldrb r1, [r5] + adds r0, r4, #0 + bl DecompressTrainerBackPic + ldrb r0, [r5] + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl SetMultiuseSpriteTemplateToTrainerBack + ldr r6, _0814D184 + mov r8, r7 + ldr r0, _0814D188 + lsls r4, r4, #2 + adds r4, r4, r0 + ldrb r0, [r4] + movs r4, #8 + subs r4, r4, r0 + lsls r4, r4, #0x12 + movs r0, #0xa0 + lsls r0, r0, #0xf + adds r4, r4, r0 + asrs r4, r4, #0x10 + ldrb r0, [r5] + bl GetBattlerSpriteSubpriority + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r6, #0 + mov r1, r8 + adds r2, r4, #0 + bl CreateSprite + ldr r6, _0814D18C + ldrb r1, [r5] + adds r1, r1, r6 + strb r0, [r1] + ldr r4, _0814D190 + ldrb r3, [r5] + adds r0, r3, r6 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + lsls r3, r3, #4 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #5] + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0xf0 + strh r1, [r0, #0x24] + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _0814D194 + strh r1, [r0, #0x2e] + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, #0x1c + adds r0, r0, r4 + ldr r1, _0814D198 + str r1, [r0] + ldr r1, _0814D19C + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0814D1A0 + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0814D180: .4byte 0x02023D08 +_0814D184: .4byte 0x02024640 +_0814D188: .4byte 0x082D95BC +_0814D18C: .4byte 0x02023E88 +_0814D190: .4byte 0x020205AC +_0814D194: .4byte 0x0000FFFE +_0814D198: .4byte 0x0805D3C9 +_0814D19C: .4byte 0x03005AC0 +_0814D1A0: .4byte 0x0814AFDD + thumb_func_end LinkPartnerHandleDrawTrainerPic + + thumb_func_start LinkPartnerHandleTrainerSlide +LinkPartnerHandleTrainerSlide: @ 0x0814D1A4 + push {lr} + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkPartnerHandleTrainerSlide + + thumb_func_start LinkPartnerHandleTrainerSlideBack +LinkPartnerHandleTrainerSlideBack: @ 0x0814D1B0 + push {r4, r5, r6, lr} + ldr r6, _0814D23C + ldr r4, _0814D240 + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r5, _0814D244 + adds r0, r0, r5 + bl SetSpritePrimaryCoordsFromSecondaryCoords + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0x23 + strh r1, [r0, #0x2e] + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _0814D248 + strh r1, [r0, #0x32] + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrh r1, [r0, #0x22] + strh r1, [r0, #0x36] + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r5, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _0814D24C + str r1, [r0] + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _0814D250 + bl StoreSpriteCallbackInData6 + ldr r1, _0814D254 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0814D258 + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0814D23C: .4byte 0x02023E88 +_0814D240: .4byte 0x02023D08 +_0814D244: .4byte 0x020205AC +_0814D248: .4byte 0x0000FFD8 +_0814D24C: .4byte 0x080A67B5 +_0814D250: .4byte 0x08007141 +_0814D254: .4byte 0x03005AC0 +_0814D258: .4byte 0x0814B015 + thumb_func_end LinkPartnerHandleTrainerSlideBack + + thumb_func_start LinkPartnerHandleFaintAnimation +LinkPartnerHandleFaintAnimation: @ 0x0814D25C + push {r4, r5, r6, lr} + ldr r6, _0814D2A8 + ldr r4, [r6] + ldr r5, _0814D2AC + ldrb r2, [r5] + ldr r0, [r4, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r3, r1, r0 + ldrb r0, [r3, #4] + cmp r0, #0 + bne _0814D2B0 + ldr r1, [r4] + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0814D290 + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #5 + bl InitAndLaunchSpecialAnimation +_0814D290: + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #4] + adds r1, #1 + strb r1, [r0, #4] + b _0814D326 + .align 2, 0 +_0814D2A8: .4byte 0x02024174 +_0814D2AC: .4byte 0x02023D08 +_0814D2B0: + ldrb r1, [r3] + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _0814D326 + strb r4, [r3, #4] + ldr r2, _0814D32C + ldrb r1, [r5] + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r2, [r0] + movs r0, #0x64 + muls r0, r2, r0 + ldr r2, _0814D330 + adds r0, r0, r2 + bl HandleLowHpMusicChange + movs r1, #0x40 + rsbs r1, r1, #0 + movs r0, #0x10 + bl PlaySE12WithPanning + ldr r2, _0814D334 + ldr r3, _0814D338 + ldrb r0, [r5] + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r4, [r0, #0x30] + ldrb r0, [r5] + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #5 + strh r1, [r0, #0x32] + ldrb r0, [r5] + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, _0814D33C + str r1, [r0] + ldr r1, _0814D340 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0814D344 + str r1, [r0] +_0814D326: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0814D32C: .4byte 0x02023D12 +_0814D330: .4byte 0x02024190 +_0814D334: .4byte 0x020205AC +_0814D338: .4byte 0x02023E88 +_0814D33C: .4byte 0x08039845 +_0814D340: .4byte 0x03005AC0 +_0814D344: .4byte 0x0814B401 + thumb_func_end LinkPartnerHandleFaintAnimation + + thumb_func_start LinkPartnerHandlePaletteFade +LinkPartnerHandlePaletteFade: @ 0x0814D348 + push {lr} + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkPartnerHandlePaletteFade + + thumb_func_start LinkPartnerHandleSuccessBallThrowAnim +LinkPartnerHandleSuccessBallThrowAnim: @ 0x0814D354 + push {lr} + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkPartnerHandleSuccessBallThrowAnim + + thumb_func_start LinkPartnerHandleBallThrowAnim +LinkPartnerHandleBallThrowAnim: @ 0x0814D360 + push {lr} + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkPartnerHandleBallThrowAnim + + thumb_func_start LinkPartnerHandlePause +LinkPartnerHandlePause: @ 0x0814D36C + push {lr} + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkPartnerHandlePause + + thumb_func_start LinkPartnerHandleMoveAnimation +LinkPartnerHandleMoveAnimation: @ 0x0814D378 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r5, _0814D468 + ldrb r0, [r5] + bl mplay_80342A4 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0814D38E + b _0814D4B4 +_0814D38E: + ldr r0, _0814D46C + mov ip, r0 + ldrb r1, [r5] + lsls r1, r1, #9 + adds r0, #1 + adds r0, r1, r0 + ldrb r6, [r0] + mov r0, ip + adds r0, #2 + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, r0, #8 + orrs r6, r0 + ldr r0, _0814D470 + mov r8, r0 + mov r0, ip + adds r0, #3 + adds r1, r1, r0 + ldrb r0, [r1] + mov r1, r8 + strb r0, [r1] + ldr r3, _0814D474 + ldrb r1, [r5] + lsls r1, r1, #9 + mov r0, ip + adds r0, #4 + adds r0, r1, r0 + ldrb r2, [r0] + mov r0, ip + adds r0, #5 + adds r1, r1, r0 + ldrb r0, [r1] + lsls r0, r0, #8 + orrs r2, r0 + strh r2, [r3] + ldr r3, _0814D478 + ldrb r1, [r5] + lsls r1, r1, #9 + mov r0, ip + adds r0, #6 + adds r0, r1, r0 + ldrb r2, [r0] + mov r0, ip + adds r0, #7 + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, r0, #8 + orrs r2, r0 + mov r0, ip + adds r0, #8 + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, r0, #0x10 + orrs r2, r0 + mov r0, ip + adds r0, #9 + adds r1, r1, r0 + ldrb r0, [r1] + lsls r0, r0, #0x18 + orrs r2, r0 + str r2, [r3] + ldr r2, _0814D47C + ldrb r0, [r5] + lsls r0, r0, #9 + mov r1, ip + adds r1, #0xa + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r2] + ldr r4, _0814D480 + ldrb r1, [r5] + lsls r1, r1, #9 + mov r0, ip + adds r0, #0xc + adds r0, r1, r0 + ldrb r2, [r0] + mov r0, ip + adds r0, #0xd + adds r1, r1, r0 + ldrb r0, [r1] + lsls r0, r0, #8 + orrs r2, r0 + strh r2, [r4] + ldr r7, _0814D484 + ldrb r1, [r5] + lsls r1, r1, #9 + mov r0, ip + adds r0, #0x10 + adds r1, r1, r0 + str r1, [r7] + ldr r2, _0814D488 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, [r1] + str r1, [r0] + mov r0, r8 + ldrb r1, [r0] + adds r0, r6, #0 + bl IsMoveWithoutAnimation + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + beq _0814D48C + bl LinkPartnerBufferExecCompleted + b _0814D4B4 + .align 2, 0 +_0814D468: .4byte 0x02023D08 +_0814D46C: .4byte 0x02022D08 +_0814D470: .4byte 0x020380D2 +_0814D474: .4byte 0x020380A8 +_0814D478: .4byte 0x020380A4 +_0814D47C: .4byte 0x020380BA +_0814D480: .4byte 0x020380BC +_0814D484: .4byte 0x020380A0 +_0814D488: .4byte 0x02024160 +_0814D48C: + ldr r0, _0814D4C0 + ldr r0, [r0] + ldrb r1, [r5] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strb r3, [r0, #4] + ldr r1, _0814D4C4 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0814D4C8 + str r1, [r0] + ldrh r1, [r4] + ldr r2, [r7] + adds r0, r6, #0 + bl BattleTv_SetDataBasedOnMove +_0814D4B4: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0814D4C0: .4byte 0x02024174 +_0814D4C4: .4byte 0x03005AC0 +_0814D4C8: .4byte 0x0814D4CD + thumb_func_end LinkPartnerHandleMoveAnimation + + thumb_func_start LinkPartnerDoMoveAnimation +LinkPartnerDoMoveAnimation: @ 0x0814D4CC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r2, _0814D518 + ldr r6, _0814D51C + ldrb r3, [r6] + lsls r1, r3, #9 + adds r0, r2, #1 + mov sl, r0 + adds r0, r1, r0 + ldrb r4, [r0] + adds r5, r2, #2 + mov sb, r5 + adds r0, r1, r5 + ldrb r0, [r0] + lsls r0, r0, #8 + orrs r4, r0 + adds r2, #0xb + adds r1, r1, r2 + ldrb r1, [r1] + mov r8, r1 + ldr r7, _0814D520 + ldr r5, [r7] + ldr r1, [r5, #4] + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r2, [r0, #4] + cmp r2, #1 + beq _0814D564 + cmp r2, #1 + bgt _0814D524 + cmp r2, #0 + beq _0814D52E + b _0814D640 + .align 2, 0 +_0814D518: .4byte 0x02022D08 +_0814D51C: .4byte 0x02023D08 +_0814D520: .4byte 0x02024174 +_0814D524: + cmp r2, #2 + beq _0814D58E + cmp r2, #3 + beq _0814D604 + b _0814D640 +_0814D52E: + ldr r1, [r5] + lsls r0, r3, #2 + adds r1, r0, r1 + ldrb r2, [r1] + movs r0, #0xc + ands r0, r2 + cmp r0, #4 + bne _0814D550 + movs r0, #8 + orrs r0, r2 + strb r0, [r1] + ldrb r2, [r6] + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #5 + bl InitAndLaunchSpecialAnimation +_0814D550: + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #1 + strb r1, [r0, #4] + b _0814D640 +_0814D564: + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _0814D640 + movs r0, #0 + bl sub_0805E7B8 + adds r0, r4, #0 + bl DoMoveAnim + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #2 + strb r1, [r0, #4] + b _0814D640 +_0814D58E: + ldr r0, _0814D5F4 + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _0814D5F8 + ldrb r0, [r0] + cmp r0, #0 + bne _0814D640 + movs r0, #1 + bl sub_0805E7B8 + ldr r0, [r7] + ldrb r2, [r6] + ldr r1, [r0] + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0814D5DC + mov r0, r8 + cmp r0, #1 + bhi _0814D5DC + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #6 + bl InitAndLaunchSpecialAnimation + ldr r0, [r7] + ldrb r1, [r6] + ldr r0, [r0] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] +_0814D5DC: + ldr r0, _0814D5FC + ldr r2, [r0] + ldr r0, _0814D600 + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #3 + strb r1, [r0, #4] + b _0814D640 + .align 2, 0 +_0814D5F4: .4byte 0x02038098 +_0814D5F8: .4byte 0x0203809D +_0814D5FC: .4byte 0x02024174 +_0814D600: .4byte 0x02023D08 +_0814D604: + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _0814D640 + bl CopyAllBattleSpritesInvisibilities + ldrb r0, [r6] + lsls r2, r0, #9 + mov r3, sl + adds r1, r2, r3 + ldrb r1, [r1] + add r2, sb + ldrb r2, [r2] + lsls r2, r2, #8 + orrs r1, r2 + bl TrySetBehindSubstituteSpriteBit + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strb r4, [r0, #4] + bl LinkPartnerBufferExecCompleted +_0814D640: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkPartnerDoMoveAnimation + + thumb_func_start LinkPartnerHandlePrintString +LinkPartnerHandlePrintString: @ 0x0814D650 + push {r4, r5, lr} + ldr r0, _0814D68C + movs r1, #0 + strh r1, [r0] + ldr r0, _0814D690 + strh r1, [r0] + ldr r5, _0814D694 + ldrb r4, [r5] + lsls r4, r4, #9 + ldr r0, _0814D698 + adds r4, r4, r0 + ldrh r0, [r4] + bl BufferStringBattle + ldr r0, _0814D69C + movs r1, #0 + bl sub_0814FA04 + ldr r1, _0814D6A0 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0814D6A4 + str r1, [r0] + ldrh r0, [r4] + bl BattleTv_SetDataBasedOnString + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0814D68C: .4byte 0x02022AC8 +_0814D690: .4byte 0x02022ACA +_0814D694: .4byte 0x02023D08 +_0814D698: .4byte 0x02022D0A +_0814D69C: .4byte 0x02022AE0 +_0814D6A0: .4byte 0x03005AC0 +_0814D6A4: .4byte 0x0814B50D + thumb_func_end LinkPartnerHandlePrintString + + thumb_func_start LinkPartnerHandlePrintSelectionString +LinkPartnerHandlePrintSelectionString: @ 0x0814D6A8 + push {lr} + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkPartnerHandlePrintSelectionString + + thumb_func_start LinkPartnerHandleChooseAction +LinkPartnerHandleChooseAction: @ 0x0814D6B4 + push {lr} + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkPartnerHandleChooseAction + + thumb_func_start LinkPartnerHandleUnknownYesNoBox +LinkPartnerHandleUnknownYesNoBox: @ 0x0814D6C0 + push {lr} + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkPartnerHandleUnknownYesNoBox + + thumb_func_start LinkPartnerHandleChooseMove +LinkPartnerHandleChooseMove: @ 0x0814D6CC + push {lr} + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkPartnerHandleChooseMove + + thumb_func_start LinkPartnerHandleChooseItem +LinkPartnerHandleChooseItem: @ 0x0814D6D8 + push {lr} + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkPartnerHandleChooseItem + + thumb_func_start LinkPartnerHandleChoosePokemon +LinkPartnerHandleChoosePokemon: @ 0x0814D6E4 + push {lr} + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkPartnerHandleChoosePokemon + + thumb_func_start LinkPartnerHandleCmd23 +LinkPartnerHandleCmd23: @ 0x0814D6F0 + push {lr} + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkPartnerHandleCmd23 + + thumb_func_start LinkPartnerHandleHealthBarUpdate +LinkPartnerHandleHealthBarUpdate: @ 0x0814D6FC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + movs r0, #0 + bl LoadBattleBarGfx + ldr r3, _0814D774 + ldr r0, _0814D778 + mov sb, r0 + ldrb r4, [r0] + lsls r2, r4, #9 + adds r0, r3, #2 + adds r0, r2, r0 + ldrb r1, [r0] + adds r3, #3 + adds r2, r2, r3 + ldrb r0, [r2] + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + asrs r7, r1, #0x10 + ldr r0, _0814D77C + cmp r7, r0 + beq _0814D78C + ldr r6, _0814D780 + lsls r0, r4, #1 + adds r0, r0, r6 + ldrh r0, [r0] + movs r5, #0x64 + muls r0, r5, r0 + ldr r4, _0814D784 + adds r0, r0, r4 + movs r1, #0x3a + bl GetMonData + mov r8, r0 + mov r1, sb + ldrb r0, [r1] + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r0, [r0] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #0x39 + bl GetMonData + adds r3, r0, #0 + mov r1, sb + ldrb r0, [r1] + ldr r1, _0814D788 + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + mov r2, r8 + bl SetBattleBarStruct + b _0814D7B6 + .align 2, 0 +_0814D774: .4byte 0x02022D08 +_0814D778: .4byte 0x02023D08 +_0814D77C: .4byte 0x00007FFF +_0814D780: .4byte 0x02023D12 +_0814D784: .4byte 0x02024190 +_0814D788: .4byte 0x03005AD0 +_0814D78C: + ldr r1, _0814D7D4 + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0814D7D8 + adds r0, r0, r1 + movs r1, #0x3a + bl GetMonData + adds r2, r0, #0 + mov r1, sb + ldrb r0, [r1] + ldr r1, _0814D7DC + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + movs r3, #0 + bl SetBattleBarStruct +_0814D7B6: + ldr r1, _0814D7E0 + ldr r0, _0814D7E4 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0814D7E8 + str r1, [r0] + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0814D7D4: .4byte 0x02023D12 +_0814D7D8: .4byte 0x02024190 +_0814D7DC: .4byte 0x03005AD0 +_0814D7E0: .4byte 0x03005AC0 +_0814D7E4: .4byte 0x02023D08 +_0814D7E8: .4byte 0x0814B391 + thumb_func_end LinkPartnerHandleHealthBarUpdate + + thumb_func_start LinkPartnerHandleExpUpdate +LinkPartnerHandleExpUpdate: @ 0x0814D7EC + push {lr} + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkPartnerHandleExpUpdate + + thumb_func_start sub_0814D7F8 +sub_0814D7F8: @ 0x0814D7F8 + push {r4, lr} + ldr r4, _0814D854 + ldrb r0, [r4] + bl mplay_80342A4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0814D84C + ldr r0, _0814D858 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + ldr r2, _0814D85C + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _0814D860 + adds r1, r1, r2 + movs r2, #9 + bl UpdateHealthboxAttribute + ldrb r2, [r4] + ldr r0, _0814D864 + ldr r0, [r0] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r1, _0814D868 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0814D86C + str r1, [r0] +_0814D84C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814D854: .4byte 0x02023D08 +_0814D858: .4byte 0x03005AD0 +_0814D85C: .4byte 0x02023D12 +_0814D860: .4byte 0x02024190 +_0814D864: .4byte 0x02024174 +_0814D868: .4byte 0x03005AC0 +_0814D86C: .4byte 0x0814B879 + thumb_func_end sub_0814D7F8 + + thumb_func_start sub_0814D870 +sub_0814D870: @ 0x0814D870 + push {r4, r5, lr} + ldr r5, _0814D8C8 + ldrb r0, [r5] + bl mplay_80342A4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0814D8C0 + ldr r4, _0814D8CC + ldrb r3, [r5] + lsls r3, r3, #9 + adds r0, r4, #1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, #2 + adds r1, r3, r1 + ldrb r1, [r1] + adds r2, r4, #3 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, r2, #8 + orrs r1, r2 + adds r2, r4, #4 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, r2, #0x10 + orrs r1, r2 + adds r4, #5 + adds r3, r3, r4 + ldrb r2, [r3] + lsls r2, r2, #0x18 + orrs r1, r2 + bl InitAndLaunchChosenStatusAnimation + ldr r1, _0814D8D0 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0814D8D4 + str r1, [r0] +_0814D8C0: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0814D8C8: .4byte 0x02023D08 +_0814D8CC: .4byte 0x02022D08 +_0814D8D0: .4byte 0x03005AC0 +_0814D8D4: .4byte 0x0814B879 + thumb_func_end sub_0814D870 + + thumb_func_start LinkPartnerHandleStatusXor +LinkPartnerHandleStatusXor: @ 0x0814D8D8 + push {lr} + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkPartnerHandleStatusXor + + thumb_func_start LinkPartnerHandleDataTransfer +LinkPartnerHandleDataTransfer: @ 0x0814D8E4 + push {lr} + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkPartnerHandleDataTransfer + + thumb_func_start LinkPartnerHandleDMA3Transfer +LinkPartnerHandleDMA3Transfer: @ 0x0814D8F0 + push {lr} + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkPartnerHandleDMA3Transfer + + thumb_func_start LinkPartnerHandlePlayBGM +LinkPartnerHandlePlayBGM: @ 0x0814D8FC + push {lr} + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkPartnerHandlePlayBGM + + thumb_func_start LinkPartnerHandleCmd32 +LinkPartnerHandleCmd32: @ 0x0814D908 + push {lr} + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkPartnerHandleCmd32 + + thumb_func_start LinkPartnerHandleTwoReturnValues +LinkPartnerHandleTwoReturnValues: @ 0x0814D914 + push {lr} + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkPartnerHandleTwoReturnValues + + thumb_func_start LinkPartnerHandleChosenMonReturnValue +LinkPartnerHandleChosenMonReturnValue: @ 0x0814D920 + push {lr} + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkPartnerHandleChosenMonReturnValue + + thumb_func_start LinkPartnerHandleOneReturnValue +LinkPartnerHandleOneReturnValue: @ 0x0814D92C + push {lr} + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkPartnerHandleOneReturnValue + + thumb_func_start LinkPartnerHandleOneReturnValue_Duplicate +LinkPartnerHandleOneReturnValue_Duplicate: @ 0x0814D938 + push {lr} + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkPartnerHandleOneReturnValue_Duplicate + + thumb_func_start LinkPartnerHandleCmd37 +LinkPartnerHandleCmd37: @ 0x0814D944 + push {lr} + ldr r2, _0814D95C + ldrb r1, [r2] + movs r0, #0x80 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_0814D95C: .4byte 0x020229C0 + thumb_func_end LinkPartnerHandleCmd37 + + thumb_func_start LinkPartnerHandleCmd38 +LinkPartnerHandleCmd38: @ 0x0814D960 + push {lr} + ldr r3, _0814D98C + ldr r1, _0814D990 + ldr r0, _0814D994 + ldrb r0, [r0] + lsls r0, r0, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + ldrb r2, [r3] + movs r0, #0x80 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_0814D98C: .4byte 0x020229C0 +_0814D990: .4byte 0x02022D08 +_0814D994: .4byte 0x02023D08 + thumb_func_end LinkPartnerHandleCmd38 + + thumb_func_start LinkPartnerHandleCmd39 +LinkPartnerHandleCmd39: @ 0x0814D998 + push {lr} + ldr r2, _0814D9AC + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_0814D9AC: .4byte 0x020229C0 + thumb_func_end LinkPartnerHandleCmd39 + + thumb_func_start LinkPartnerHandleCmd40 +LinkPartnerHandleCmd40: @ 0x0814D9B0 + push {lr} + ldr r3, _0814D9D4 + ldr r1, [r3] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1f + movs r0, #1 + eors r1, r0 + lsls r1, r1, #7 + ldrb r2, [r3] + movs r0, #0x7f + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_0814D9D4: .4byte 0x020229C0 + thumb_func_end LinkPartnerHandleCmd40 + + thumb_func_start sub_0814D9D8 +sub_0814D9D8: @ 0x0814D9D8 + push {r4, lr} + ldr r3, _0814DA00 + ldr r2, _0814DA04 + ldr r4, _0814DA08 + ldrb r0, [r4] + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + bge _0814DA0C + bl LinkPartnerBufferExecCompleted + b _0814DA36 + .align 2, 0 +_0814DA00: .4byte 0x020205AC +_0814DA04: .4byte 0x02023E88 +_0814DA08: .4byte 0x02023D08 +_0814DA0C: + ldr r1, _0814DA3C + movs r0, #1 + strb r0, [r1] + ldrb r0, [r4] + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r1, #0 + strh r1, [r0, #0x30] + ldrb r0, [r4] + bl DoHitAnimHealthboxEffect + ldr r1, _0814DA40 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0814DA44 + str r1, [r0] +_0814DA36: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814DA3C: .4byte 0x0202415D +_0814DA40: .4byte 0x03005AC0 +_0814DA44: .4byte 0x0814B525 + thumb_func_end sub_0814D9D8 + + thumb_func_start LinkPartnerHandleCmd42 +LinkPartnerHandleCmd42: @ 0x0814DA48 + push {lr} + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkPartnerHandleCmd42 + + thumb_func_start sub_0814DA54 +sub_0814DA54: @ 0x0814DA54 + push {r4, lr} + ldr r4, _0814DA90 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + movs r3, #0x3f + cmp r0, #0 + bne _0814DA68 + movs r3, #0xc0 +_0814DA68: + ldr r2, _0814DA94 + ldrb r1, [r4] + lsls r1, r1, #9 + adds r0, r2, #1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, #2 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + lsls r1, r3, #0x18 + asrs r1, r1, #0x18 + bl PlaySE12WithPanning + bl LinkPartnerBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814DA90: .4byte 0x02023D08 +_0814DA94: .4byte 0x02022D08 + thumb_func_end sub_0814DA54 + + thumb_func_start LinkPartnerHandlePlayFanfareOrBGM +LinkPartnerHandlePlayFanfareOrBGM: @ 0x0814DA98 + push {r4, r5, lr} + ldr r4, _0814DACC + ldr r5, _0814DAD0 + ldrb r0, [r5] + lsls r3, r0, #9 + adds r0, r4, #3 + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, #0 + beq _0814DAD4 + bl BattleStopLowHpSound + ldrb r1, [r5] + lsls r1, r1, #9 + adds r0, r4, #1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, r4, #2 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + bl PlayBGM + b _0814DAE8 + .align 2, 0 +_0814DACC: .4byte 0x02022D08 +_0814DAD0: .4byte 0x02023D08 +_0814DAD4: + adds r0, r4, #1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, #2 + adds r1, r3, r1 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + bl PlayFanfare +_0814DAE8: + bl LinkPartnerBufferExecCompleted + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkPartnerHandlePlayFanfareOrBGM + + thumb_func_start LinkPartnerHandleFaintingCry +LinkPartnerHandleFaintingCry: @ 0x0814DAF4 + push {lr} + ldr r1, _0814DB28 + ldr r0, _0814DB2C + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0814DB30 + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x19 + rsbs r1, r1, #0 + movs r2, #5 + bl PlayCry3 + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_0814DB28: .4byte 0x02023D12 +_0814DB2C: .4byte 0x02023D08 +_0814DB30: .4byte 0x02024190 + thumb_func_end LinkPartnerHandleFaintingCry + + thumb_func_start LinkPartnerHandleIntroSlide +LinkPartnerHandleIntroSlide: @ 0x0814DB34 + push {lr} + ldr r1, _0814DB5C + ldr r0, _0814DB60 + ldrb r0, [r0] + lsls r0, r0, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + bl HandleIntroSlide + ldr r2, _0814DB64 + ldrh r0, [r2] + movs r1, #1 + orrs r0, r1 + strh r0, [r2] + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_0814DB5C: .4byte 0x02022D08 +_0814DB60: .4byte 0x02023D08 +_0814DB64: .4byte 0x020240A0 + thumb_func_end LinkPartnerHandleIntroSlide + + thumb_func_start LinkPartnerHandleIntroTrainerBallThrow +LinkPartnerHandleIntroTrainerBallThrow: @ 0x0814DB68 + push {r4, r5, r6, r7, lr} + ldr r5, _0814DC54 + ldr r6, _0814DC58 + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _0814DC5C + adds r0, r0, r4 + bl SetSpritePrimaryCoordsFromSecondaryCoords + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0x32 + strh r1, [r0, #0x2e] + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _0814DC60 + strh r1, [r0, #0x32] + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r0, #0x22] + strh r1, [r0, #0x36] + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _0814DC64 + str r1, [r0] + ldrb r2, [r6] + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + strh r2, [r0, #0x38] + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _0814DC68 + bl StoreSpriteCallbackInData6 + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #1 + bl StartSpriteAnim + ldr r0, _0814DC6C + bl AllocSpritePalette + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldrb r0, [r6] + bl GetBattlerMultiplayerId + ldr r4, _0814DC70 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + movs r5, #0xff + ldrb r0, [r1] + cmp r0, #4 + beq _0814DC40 + ldrb r0, [r6] + bl GetBattlerMultiplayerId + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrh r1, [r1] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #5 + bne _0814DC74 +_0814DC40: + ldrb r0, [r6] + bl GetBattlerMultiplayerId + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r0, [r1, #0x13] + adds r0, #2 + b _0814DCC6 + .align 2, 0 +_0814DC54: .4byte 0x02023E88 +_0814DC58: .4byte 0x02023D08 +_0814DC5C: .4byte 0x020205AC +_0814DC60: .4byte 0x0000FFD8 +_0814DC64: .4byte 0x080A67B5 +_0814DC68: .4byte 0x0805C81D +_0814DC6C: .4byte 0x0000D6F9 +_0814DC70: .4byte 0x020226A0 +_0814DC74: + ldrb r0, [r6] + bl GetBattlerMultiplayerId + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrh r1, [r1] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #2 + beq _0814DCA2 + ldrb r0, [r6] + bl GetBattlerMultiplayerId + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrh r0, [r1] + ands r5, r0 + cmp r5, #1 + bne _0814DCB6 +_0814DCA2: + ldrb r0, [r6] + bl GetBattlerMultiplayerId + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r0, [r1, #0x13] + adds r0, #4 + b _0814DCC6 +_0814DCB6: + ldrb r0, [r6] + bl GetBattlerMultiplayerId + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r0, [r1, #0x13] +_0814DCC6: + ldr r1, _0814DD60 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r0, [r0] + lsls r4, r7, #4 + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r4, r2 + movs r2, #0x20 + bl LoadCompressedPalette + ldr r2, _0814DD64 + ldr r1, _0814DD68 + ldr r5, _0814DD6C + ldrb r0, [r5] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r4 + strb r0, [r1, #5] + ldr r0, _0814DD70 + movs r1, #5 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _0814DD74 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r4 + ldrb r0, [r5] + strh r0, [r1, #8] + ldr r3, _0814DD78 + ldr r0, [r3] + ldrb r2, [r5] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0814DD40 + ldr r0, _0814DD7C + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r4 + ldr r1, _0814DD80 + str r1, [r0] +_0814DD40: + ldr r0, [r3] + ldr r2, [r0, #8] + ldrb r0, [r2, #9] + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #9] + ldr r1, _0814DD84 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0814DD88 + str r1, [r0] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0814DD60: .4byte 0x082D961C +_0814DD64: .4byte 0x020205AC +_0814DD68: .4byte 0x02023E88 +_0814DD6C: .4byte 0x02023D08 +_0814DD70: .4byte 0x0814DD8D +_0814DD74: .4byte 0x03005B60 +_0814DD78: .4byte 0x02024174 +_0814DD7C: .4byte 0x02024158 +_0814DD80: .4byte 0x0807352D +_0814DD84: .4byte 0x03005AC0 +_0814DD88: .4byte 0x0814AF6D + thumb_func_end LinkPartnerHandleIntroTrainerBallThrow + + thumb_func_start sub_0814DD8C +sub_0814DD8C: @ 0x0814DD8C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r1, _0814DDB4 + lsls r0, r0, #2 + add r0, r8 + lsls r0, r0, #3 + adds r1, r0, r1 + ldrh r2, [r1, #0xa] + movs r3, #0xa + ldrsh r0, [r1, r3] + cmp r0, #0x17 + bgt _0814DDB8 + adds r0, r2, #1 + strh r0, [r1, #0xa] + b _0814DE74 + .align 2, 0 +_0814DDB4: .4byte 0x03005B60 +_0814DDB8: + ldr r7, _0814DDF8 + ldrb r0, [r7] + mov sb, r0 + ldrh r0, [r1, #8] + strb r0, [r7] + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0814DDD8 + ldr r0, _0814DDFC + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0814DE08 +_0814DDD8: + ldr r0, _0814DE00 + ldrb r1, [r7] + lsls r2, r1, #9 + adds r0, #1 + adds r2, r2, r0 + ldr r0, _0814DE04 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + strb r0, [r2] + ldrb r0, [r7] + movs r1, #0 + bl sub_0814CD58 + b _0814DE5C + .align 2, 0 +_0814DDF8: .4byte 0x02023D08 +_0814DDFC: .4byte 0x02022C90 +_0814DE00: .4byte 0x02022D08 +_0814DE04: .4byte 0x02023D12 +_0814DE08: + ldr r4, _0814DE80 + ldrb r0, [r7] + lsls r1, r0, #9 + adds r4, #1 + adds r1, r1, r4 + ldr r5, _0814DE84 + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + movs r1, #0 + bl sub_0814CD58 + ldrb r0, [r7] + movs r6, #2 + eors r0, r6 + strb r0, [r7] + ldrb r0, [r7] + lsls r1, r0, #9 + adds r1, r1, r4 + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r0, [r0] + strb r0, [r1] + ldrb r1, [r7] + lsls r0, r1, #1 + adds r0, r0, r5 + ldrh r2, [r0] + movs r0, #0x64 + muls r0, r2, r0 + ldr r2, _0814DE88 + adds r0, r0, r2 + bl BattleLoadPlayerMonSpriteGfx + ldrb r0, [r7] + movs r1, #0 + bl sub_0814CD58 + ldrb r0, [r7] + eors r0, r6 + strb r0, [r7] +_0814DE5C: + ldr r1, _0814DE8C + ldr r2, _0814DE90 + ldrb r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0814DE94 + str r1, [r0] + mov r3, sb + strb r3, [r2] + mov r0, r8 + bl DestroyTask +_0814DE74: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0814DE80: .4byte 0x02022D08 +_0814DE84: .4byte 0x02023D12 +_0814DE88: .4byte 0x02024190 +_0814DE8C: .4byte 0x03005AC0 +_0814DE90: .4byte 0x02023D08 +_0814DE94: .4byte 0x0814B1A9 + thumb_func_end sub_0814DD8C + + thumb_func_start LinkPartnerHandleDrawPartyStatusSummary +LinkPartnerHandleDrawPartyStatusSummary: @ 0x0814DE98 + push {r4, r5, r6, lr} + ldr r1, _0814DEC0 + ldr r0, _0814DEC4 + ldrb r2, [r0] + lsls r0, r2, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _0814DEC8 + adds r0, r2, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0814DEC8 + bl LinkPartnerBufferExecCompleted + b _0814DF3C + .align 2, 0 +_0814DEC0: .4byte 0x02022D08 +_0814DEC4: .4byte 0x02023D08 +_0814DEC8: + ldr r6, _0814DF44 + ldr r0, [r6] + ldr r5, _0814DF48 + ldrb r1, [r5] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r2, #1 + orrs r1, r2 + strb r1, [r0] + ldrb r0, [r5] + lsls r3, r0, #9 + ldr r4, _0814DF4C + adds r1, r3, r4 + subs r2, r4, #3 + adds r2, r3, r2 + ldrb r2, [r2] + subs r4, #2 + adds r3, r3, r4 + ldrb r3, [r3] + bl CreatePartyStatusSummarySprites + ldr r2, _0814DF50 + ldrb r1, [r5] + adds r1, r1, r2 + movs r3, #0 + strb r0, [r1] + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strb r3, [r0, #5] + ldrb r2, [r5] + lsls r0, r2, #9 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0 + beq _0814DF30 + ldr r0, [r6] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + movs r1, #0x5d + strb r1, [r0, #5] +_0814DF30: + ldr r0, _0814DF54 + ldrb r1, [r5] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, _0814DF58 + str r0, [r1] +_0814DF3C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0814DF44: .4byte 0x02024174 +_0814DF48: .4byte 0x02023D08 +_0814DF4C: .4byte 0x02022D0C +_0814DF50: .4byte 0x02024158 +_0814DF54: .4byte 0x03005AC0 +_0814DF58: .4byte 0x0814DF5D + thumb_func_end LinkPartnerHandleDrawPartyStatusSummary + + thumb_func_start sub_0814DF5C +sub_0814DF5C: @ 0x0814DF5C + push {r4, lr} + ldr r4, _0814DF9C + ldr r0, [r4] + ldr r3, _0814DFA0 + ldrb r1, [r3] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #5] + adds r2, r1, #1 + strb r2, [r0, #5] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0x5c + bls _0814DF94 + ldr r0, [r4] + ldrb r1, [r3] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0 + strb r1, [r0, #5] + bl LinkPartnerBufferExecCompleted +_0814DF94: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814DF9C: .4byte 0x02024174 +_0814DFA0: .4byte 0x02023D08 + thumb_func_end sub_0814DF5C + + thumb_func_start LinkPartnerHandleHidePartyStatusSummary +LinkPartnerHandleHidePartyStatusSummary: @ 0x0814DFA4 + push {lr} + ldr r0, _0814DFE0 + ldr r1, [r0] + ldr r0, _0814DFE4 + ldrb r3, [r0] + ldr r1, [r1, #4] + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0814DFD6 + ldr r2, _0814DFE8 + ldr r0, _0814DFEC + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldr r1, _0814DFF0 + str r1, [r0] +_0814DFD6: + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_0814DFE0: .4byte 0x02024174 +_0814DFE4: .4byte 0x02023D08 +_0814DFE8: .4byte 0x03005B60 +_0814DFEC: .4byte 0x02024158 +_0814DFF0: .4byte 0x0807352D + thumb_func_end LinkPartnerHandleHidePartyStatusSummary + + thumb_func_start LinkPartnerHandleEndBounceEffect +LinkPartnerHandleEndBounceEffect: @ 0x0814DFF4 + push {lr} + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkPartnerHandleEndBounceEffect + + thumb_func_start LinkPartnerHandleSpriteInvisibility +LinkPartnerHandleSpriteInvisibility: @ 0x0814E000 + push {r4, lr} + ldr r4, _0814E050 + ldrb r0, [r4] + bl IsBattlerSpritePresent + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0814E046 + ldr r3, _0814E054 + ldr r0, _0814E058 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r0, _0814E05C + lsls r1, r1, #9 + adds r0, #1 + adds r1, r1, r0 + adds r2, #0x3e + movs r0, #1 + ldrb r1, [r1] + ands r1, r0 + lsls r1, r1, #2 + ldrb r3, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4] + bl CopyBattleSpriteInvisibility +_0814E046: + bl LinkPartnerBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814E050: .4byte 0x02023D08 +_0814E054: .4byte 0x020205AC +_0814E058: .4byte 0x02023E88 +_0814E05C: .4byte 0x02022D08 + thumb_func_end LinkPartnerHandleSpriteInvisibility + + thumb_func_start LinkPartnerHandleBattleAnimation +LinkPartnerHandleBattleAnimation: @ 0x0814E060 + push {r4, r5, r6, lr} + sub sp, #4 + ldr r5, _0814E0A8 + ldrb r0, [r5] + bl mplay_80342A4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0814E0C2 + ldr r4, _0814E0AC + ldrb r2, [r5] + lsls r1, r2, #9 + adds r0, r4, #1 + adds r0, r1, r0 + ldrb r6, [r0] + adds r0, r4, #2 + adds r0, r1, r0 + ldrb r3, [r0] + adds r4, #3 + adds r1, r1, r4 + ldrb r0, [r1] + lsls r0, r0, #8 + orrs r3, r0 + str r3, [sp] + adds r0, r2, #0 + adds r1, r2, #0 + adds r3, r6, #0 + bl TryHandleLaunchBattleTableAnimation + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0814E0B0 + bl LinkPartnerBufferExecCompleted + b _0814E0BC + .align 2, 0 +_0814E0A8: .4byte 0x02023D08 +_0814E0AC: .4byte 0x02022D08 +_0814E0B0: + ldr r0, _0814E0CC + ldrb r1, [r5] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, _0814E0D0 + str r0, [r1] +_0814E0BC: + adds r0, r6, #0 + bl BattleTv_SetDataBasedOnAnimation +_0814E0C2: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0814E0CC: .4byte 0x03005AC0 +_0814E0D0: .4byte 0x0814B8A9 + thumb_func_end LinkPartnerHandleBattleAnimation + + thumb_func_start LinkPartnerHandleLinkStandbyMsg +LinkPartnerHandleLinkStandbyMsg: @ 0x0814E0D4 + push {lr} + ldr r0, _0814E0EC + ldrb r0, [r0] + lsls r0, r0, #9 + ldr r1, _0814E0F0 + adds r0, r0, r1 + bl sub_08185008 + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_0814E0EC: .4byte 0x02023D08 +_0814E0F0: .4byte 0x02022D0A + thumb_func_end LinkPartnerHandleLinkStandbyMsg + + thumb_func_start LinkPartnerHandleResetActionMoveSelection +LinkPartnerHandleResetActionMoveSelection: @ 0x0814E0F4 + push {lr} + bl LinkPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkPartnerHandleResetActionMoveSelection + + thumb_func_start LinkPartnerHandleCmd55 +LinkPartnerHandleCmd55: @ 0x0814E100 + push {r4, r5, lr} + ldr r5, _0814E164 + ldrb r0, [r5] + lsls r0, r0, #9 + ldr r4, _0814E168 + adds r0, r0, r4 + bl sub_08185008 + ldr r2, _0814E16C + ldrb r0, [r5] + lsls r0, r0, #9 + subs r1, r4, #3 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r2] + ldr r0, _0814E170 + ldr r3, [r0] + ldrb r0, [r5] + lsls r0, r0, #9 + subs r4, #2 + adds r0, r0, r4 + ldrb r0, [r0] + ldr r1, _0814E174 + adds r3, r3, r1 + movs r1, #1 + ands r1, r0 + lsls r1, r1, #3 + ldrb r2, [r3] + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + movs r0, #5 + bl FadeOutMapMusic + movs r0, #3 + bl BeginFastPaletteFade + bl LinkPartnerBufferExecCompleted + ldr r1, _0814E178 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0814E17C + str r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0814E164: .4byte 0x02023D08 +_0814E168: .4byte 0x02022D0C +_0814E16C: .4byte 0x02023FDE +_0814E170: .4byte 0x03005AF0 +_0814E174: .4byte 0x00000CA9 +_0814E178: .4byte 0x03005AC0 +_0814E17C: .4byte 0x080583C1 + thumb_func_end LinkPartnerHandleCmd55 + + thumb_func_start LinkPartnerCmdEnd +LinkPartnerCmdEnd: @ 0x0814E180 + bx lr + .align 2, 0 + thumb_func_end LinkPartnerCmdEnd + diff --git a/asm/battle_controller_opponent.s b/asm/battle_controller_opponent.s new file mode 100644 index 0000000..5cbe351 --- /dev/null +++ b/asm/battle_controller_opponent.s @@ -0,0 +1,7181 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_0805ED7C +sub_0805ED7C: @ 0x0805ED7C + bx lr + .align 2, 0 + thumb_func_end sub_0805ED7C + + thumb_func_start SetControllerToOpponent +SetControllerToOpponent: @ 0x0805ED80 + ldr r1, _0805ED90 + ldr r0, _0805ED94 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805ED98 + str r1, [r0] + bx lr + .align 2, 0 +_0805ED90: .4byte 0x03005AC0 +_0805ED94: .4byte 0x02023D08 +_0805ED98: .4byte 0x0805ED9D + thumb_func_end SetControllerToOpponent + + thumb_func_start OpponentBufferRunCommand +OpponentBufferRunCommand: @ 0x0805ED9C + push {lr} + ldr r2, _0805EDD0 + ldr r1, _0805EDD4 + ldr r0, _0805EDD8 + ldrb r3, [r0] + lsls r0, r3, #2 + adds r0, r0, r1 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _0805EDE8 + ldr r0, _0805EDDC + lsls r1, r3, #9 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0x38 + bhi _0805EDE4 + ldr r0, _0805EDE0 + ldrb r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl _call_via_r0 + b _0805EDE8 + .align 2, 0 +_0805EDD0: .4byte 0x02023D0C +_0805EDD4: .4byte 0x082FACB4 +_0805EDD8: .4byte 0x02023D08 +_0805EDDC: .4byte 0x02022D08 +_0805EDE0: .4byte 0x082ED050 +_0805EDE4: + bl OpponentBufferExecCompleted +_0805EDE8: + pop {r0} + bx r0 + thumb_func_end OpponentBufferRunCommand + + thumb_func_start OpponentHandleIntroSlide +OpponentHandleIntroSlide: @ 0x0805EDEC + push {lr} + ldr r2, _0805EE14 + ldr r1, _0805EE18 + ldr r0, _0805EE1C + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _0805EE20 + cmp r1, r0 + bne _0805EE10 + bl OpponentBufferExecCompleted +_0805EE10: + pop {r0} + bx r0 + .align 2, 0 +_0805EE14: .4byte 0x020205AC +_0805EE18: .4byte 0x02023E88 +_0805EE1C: .4byte 0x02023D08 +_0805EE20: .4byte 0x08007141 + thumb_func_end OpponentHandleIntroSlide + + thumb_func_start OpponentHandleChooseItem +OpponentHandleChooseItem: @ 0x0805EE24 + push {lr} + ldr r2, _0805EE4C + ldr r1, _0805EE50 + ldr r0, _0805EE54 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _0805EE58 + cmp r1, r0 + bne _0805EE48 + bl OpponentBufferExecCompleted +_0805EE48: + pop {r0} + bx r0 + .align 2, 0 +_0805EE4C: .4byte 0x020205AC +_0805EE50: .4byte 0x02023E88 +_0805EE54: .4byte 0x02023D08 +_0805EE58: .4byte 0x08007141 + thumb_func_end OpponentHandleChooseItem + + thumb_func_start sub_0805EE5C +sub_0805EE5C: @ 0x0805EE5C + push {r4, r5, r6, lr} + ldr r5, _0805EEB4 + ldr r6, _0805EEB8 + ldr r4, _0805EEBC + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r2, r0, #2 + adds r0, r5, #0 + adds r0, #0x1c + adds r0, r2, r0 + ldr r1, [r0] + ldr r0, _0805EEC0 + cmp r1, r0 + bne _0805EEAE + adds r0, r2, r5 + ldrh r0, [r0, #6] + bl FreeTrainerFrontPicPalette + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + bl FreeSpriteOamMatrix + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + bl DestroySprite + bl OpponentBufferExecCompleted +_0805EEAE: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0805EEB4: .4byte 0x020205AC +_0805EEB8: .4byte 0x02023E88 +_0805EEBC: .4byte 0x02023D08 +_0805EEC0: .4byte 0x08007141 + thumb_func_end sub_0805EE5C + + thumb_func_start sub_0805EEC4 +sub_0805EEC4: @ 0x0805EEC4 + push {r4, lr} + ldr r4, _0805EF04 + ldr r1, [r4] + ldr r3, _0805EF08 + ldrb r0, [r3] + ldr r2, [r1, #4] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r0, [r1, #9] + subs r0, #1 + strb r0, [r1, #9] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _0805EEFC + ldr r0, [r4] + ldrb r1, [r3] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0 + strb r1, [r0, #9] + bl OpponentBufferExecCompleted +_0805EEFC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0805EF04: .4byte 0x02024174 +_0805EF08: .4byte 0x02023D08 + thumb_func_end sub_0805EEC4 + + thumb_func_start sub_0805EF0C +sub_0805EF0C: @ 0x0805EF0C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + movs r0, #0 + mov sb, r0 + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0805EF48 + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0805EF3A + ldr r0, _0805EF70 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _0805EF48 +_0805EF3A: + ldr r0, _0805EF70 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + beq _0805EF84 +_0805EF48: + ldr r2, _0805EF74 + ldr r1, _0805EF78 + ldr r3, _0805EF7C + ldrb r0, [r3] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _0805EF80 + mov sl, r3 + cmp r1, r0 + bne _0805EF6C + movs r1, #1 + mov sb, r1 +_0805EF6C: + movs r6, #0 + b _0805EFC0 + .align 2, 0 +_0805EF70: .4byte 0x02022C90 +_0805EF74: .4byte 0x020205AC +_0805EF78: .4byte 0x03005AD0 +_0805EF7C: .4byte 0x02023D08 +_0805EF80: .4byte 0x08007141 +_0805EF84: + ldr r3, _0805F090 + ldr r6, _0805F094 + ldr r2, _0805F098 + ldrb r4, [r2] + adds r0, r4, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r3, #0x1c + adds r0, r0, r3 + ldr r5, [r0] + ldr r0, _0805F09C + mov sl, r2 + cmp r5, r0 + bne _0805EFBE + movs r0, #2 + eors r4, r0 + adds r0, r4, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldr r0, [r0] + cmp r0, r5 + bne _0805EFBE + movs r0, #1 + mov sb, r0 +_0805EFBE: + movs r6, #1 +_0805EFC0: + ldr r3, _0805F0A0 + ldr r1, _0805F0A4 + mov r8, r1 + ldr r2, [r1] + mov r7, sl + ldrb r1, [r7] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r5, [r2, #4] + adds r0, r5, r0 + str r0, [r3] + ldr r2, _0805F0A8 + ldrb r0, [r7] + movs r1, #2 + mov ip, r1 + mov r1, ip + eors r1, r0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r5, r0 + str r0, [r2] + mov r0, sb + cmp r0, #0 + bne _0805EFF6 + b _0805F12A +_0805EFF6: + cmp r6, #1 + bne _0805F0B0 + ldrb r2, [r7] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r4, r0, r5 + ldrb r1, [r4, #1] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + bne _0805F010 + b _0805F12A +_0805F010: + mov r0, ip + eors r0, r2 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrb r0, [r1, #1] + ands r6, r0 + cmp r6, #0 + bne _0805F026 + b _0805F12A +_0805F026: + ldrb r1, [r4] + movs r3, #0x7f + adds r0, r3, #0 + ands r0, r1 + strb r0, [r4] + mov r1, r8 + ldr r0, [r1] + ldrb r2, [r7] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + movs r4, #2 + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r2 + strb r0, [r1, #1] + mov r0, r8 + ldr r2, [r0] + ldrb r0, [r7] + mov r1, ip + eors r1, r0 + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + ands r3, r1 + strb r3, [r0] + mov r1, r8 + ldr r2, [r1] + ldrb r0, [r7] + mov r1, ip + eors r1, r0 + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #1] + ands r4, r1 + strb r4, [r0, #1] + ldr r4, _0805F0AC + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl FreeSpritePaletteByTag + b _0805F108 + .align 2, 0 +_0805F090: .4byte 0x020205AC +_0805F094: .4byte 0x03005AD0 +_0805F098: .4byte 0x02023D08 +_0805F09C: .4byte 0x08007141 +_0805F0A0: .4byte 0x0202417C +_0805F0A4: .4byte 0x02024174 +_0805F0A8: .4byte 0x02024180 +_0805F0AC: .4byte 0x000027F9 +_0805F0B0: + mov r0, sl + ldrb r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, r0, r5 + ldrb r1, [r2, #1] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0805F12A + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + mov r1, r8 + ldr r0, [r1] + mov r1, sl + ldrb r2, [r1] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #1] + mov r1, sl + ldrb r0, [r1] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bne _0805F108 + ldr r4, _0805F138 + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl FreeSpritePaletteByTag +_0805F108: + ldr r0, _0805F13C + ldr r0, [r0] + ldr r3, _0805F140 + ldrb r1, [r3] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #3 + strb r1, [r0, #9] + ldr r1, _0805F144 + ldrb r0, [r3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805F148 + str r1, [r0] +_0805F12A: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805F138: .4byte 0x000027F9 +_0805F13C: .4byte 0x02024174 +_0805F140: .4byte 0x02023D08 +_0805F144: .4byte 0x03005AC0 +_0805F148: .4byte 0x0805EEC5 + thumb_func_end sub_0805EF0C + + thumb_func_start sub_0805F14C +sub_0805F14C: @ 0x0805F14C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + movs r0, #0 + str r0, [sp] + mov sl, r0 + ldr r5, _0805F334 + ldr r0, [r5] + ldr r4, _0805F338 + ldrb r2, [r4] + ldr r1, [r0, #4] + lsls r3, r2, #1 + adds r0, r3, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r1, [r0] + movs r6, #0xc4 + lsls r6, r6, #1 + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + bne _0805F192 + ldr r0, _0805F33C + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _0805F340 + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_08172CD4 +_0805F192: + ldr r0, _0805F344 + ldr r0, [r0] + ldr r1, _0805F348 + ands r0, r1 + cmp r0, #0 + bne _0805F1DA + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0805F1DA + ldr r2, [r5] + ldrb r1, [r4] + movs r0, #2 + adds r3, r0, #0 + eors r3, r1 + ldr r1, [r2, #4] + lsls r2, r3, #1 + adds r0, r2, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + bne _0805F1DA + ldr r0, _0805F33C + adds r0, r2, r0 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _0805F340 + adds r1, r1, r0 + adds r0, r3, #0 + bl sub_08172CD4 +_0805F1DA: + ldr r2, _0805F334 + ldr r0, [r2] + ldr r1, _0805F338 + mov r8, r1 + ldrb r4, [r1] + ldr r5, [r0, #4] + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r3, r0, r5 + ldrb r1, [r3] + movs r6, #8 + adds r0, r6, #0 + ands r0, r1 + mov sb, r2 + cmp r0, #0 + bne _0805F2BC + movs r7, #2 + adds r1, r7, #0 + eors r1, r4 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r1, [r0] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + bne _0805F2BC + ldrb r1, [r3, #1] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0805F2A0 + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0805F270 + ldr r0, _0805F344 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _0805F270 + ldr r4, _0805F34C + mov r1, r8 + ldrb r0, [r1] + adds r1, r7, #0 + eors r1, r0 + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, _0805F33C + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _0805F340 + adds r1, r1, r2 + movs r2, #0 + bl UpdateHealthboxAttribute + mov r1, r8 + ldrb r0, [r1] + eors r0, r7 + bl sub_08076320 + mov r1, r8 + ldrb r0, [r1] + eors r0, r7 + adds r0, r0, r4 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible +_0805F270: + ldr r5, _0805F34C + ldr r4, _0805F338 + ldrb r1, [r4] + adds r0, r1, r5 + ldrb r0, [r0] + ldr r2, _0805F33C + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _0805F340 + adds r1, r1, r2 + movs r2, #0 + bl UpdateHealthboxAttribute + ldrb r0, [r4] + bl sub_08076320 + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible +_0805F2A0: + ldr r3, _0805F334 + ldr r2, [r3] + ldr r0, _0805F338 + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #1] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0, #1] + mov sb, r3 +_0805F2BC: + mov r1, sb + ldr r0, [r1] + ldr r4, _0805F338 + ldrb r2, [r4] + ldr r3, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #1] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0x80 + bne _0805F37E + movs r1, #2 + eors r1, r2 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #1] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _0805F37E + bl IsCryPlayingOrClearCrySongs + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805F37E + mov r1, sb + ldr r0, [r1] + ldrb r4, [r4] + ldr r1, [r0, #4] + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #1] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _0805F360 + ldr r0, _0805F344 + ldr r0, [r0] + movs r1, #0x42 + ands r0, r1 + cmp r0, #0x42 + bne _0805F354 + adds r0, r4, #0 + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0805F360 + ldr r0, _0805F350 + bl m4aMPlayContinue + b _0805F360 + .align 2, 0 +_0805F334: .4byte 0x02024174 +_0805F338: .4byte 0x02023D08 +_0805F33C: .4byte 0x02023D12 +_0805F340: .4byte 0x020243E8 +_0805F344: .4byte 0x02022C90 +_0805F348: .4byte 0x00008040 +_0805F34C: .4byte 0x03005AD0 +_0805F350: .4byte 0x030074D0 +_0805F354: + ldr r0, _0805F3D8 + ldr r1, _0805F3DC + movs r2, #0x80 + lsls r2, r2, #1 + bl m4aMPlayVolumeControl +_0805F360: + ldr r0, _0805F3E0 + ldr r2, [r0] + ldr r0, _0805F3E4 + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #1] + movs r2, #0x20 + orrs r1, r2 + strb r1, [r0, #1] + movs r0, #1 + str r0, [sp] +_0805F37E: + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0805F39E + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0805F3FC + ldr r0, _0805F3E8 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0805F3FC +_0805F39E: + ldr r2, _0805F3EC + ldr r0, _0805F3F0 + ldr r1, _0805F3E4 + ldrb r4, [r1] + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r3, [r0] + ldr r0, _0805F3F4 + cmp r3, r0 + bne _0805F45A + ldr r0, _0805F3F8 + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + cmp r0, r3 + bne _0805F45A + movs r1, #1 + mov sl, r1 + b _0805F45A + .align 2, 0 +_0805F3D8: .4byte 0x030074D0 +_0805F3DC: .4byte 0x0000FFFF +_0805F3E0: .4byte 0x02024174 +_0805F3E4: .4byte 0x02023D08 +_0805F3E8: .4byte 0x02022C90 +_0805F3EC: .4byte 0x020205AC +_0805F3F0: .4byte 0x03005ADC +_0805F3F4: .4byte 0x08007141 +_0805F3F8: .4byte 0x02023E88 +_0805F3FC: + ldr r2, _0805F554 + ldr r7, _0805F558 + ldr r0, _0805F55C + ldrb r3, [r0] + adds r0, r3, r7 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r4, [r0] + ldr r0, _0805F560 + cmp r4, r0 + bne _0805F45A + ldr r6, _0805F564 + adds r0, r3, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r5, [r0] + cmp r5, r4 + bne _0805F45A + movs r0, #2 + eors r3, r0 + adds r0, r3, r7 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r4, [r0] + cmp r4, r5 + bne _0805F45A + adds r0, r3, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + cmp r0, r4 + bne _0805F45A + movs r0, #1 + mov sl, r0 +_0805F45A: + ldr r1, [sp] + cmp r1, #0 + beq _0805F544 + mov r0, sl + cmp r0, #0 + beq _0805F544 + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0805F4BE + ldr r0, _0805F568 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _0805F4BE + ldr r1, _0805F558 + ldr r5, _0805F55C + ldrb r0, [r5] + movs r4, #2 + eors r0, r4 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0805F554 + adds r0, r0, r1 + bl DestroySprite + ldrb r0, [r5] + eors r4, r0 + ldr r1, _0805F56C + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0805F570 + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl SetBattlerShadowSpriteCallback +_0805F4BE: + ldr r1, _0805F558 + ldr r4, _0805F55C + ldrb r0, [r4] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0805F554 + adds r0, r0, r1 + bl DestroySprite + ldrb r5, [r4] + ldr r1, _0805F56C + lsls r0, r5, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0805F570 + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r5, #0 + bl SetBattlerShadowSpriteCallback + ldr r3, _0805F574 + ldr r0, [r3] + ldr r2, [r0, #8] + ldrb r1, [r2, #9] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #9] + ldr r0, [r3] + ldrb r2, [r4] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + movs r0, #0x21 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #1] + ldr r0, [r3] + ldrb r2, [r4] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + movs r0, #0x7f + ands r0, r2 + strb r0, [r1, #1] + ldr r1, _0805F578 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805F57C + str r1, [r0] +_0805F544: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805F554: .4byte 0x020205AC +_0805F558: .4byte 0x03005ADC +_0805F55C: .4byte 0x02023D08 +_0805F560: .4byte 0x08007141 +_0805F564: .4byte 0x02023E88 +_0805F568: .4byte 0x02022C90 +_0805F56C: .4byte 0x02023D12 +_0805F570: .4byte 0x020243E8 +_0805F574: .4byte 0x02024174 +_0805F578: .4byte 0x03005AC0 +_0805F57C: .4byte 0x0805EF0D + thumb_func_end sub_0805F14C + + thumb_func_start sub_0805F580 +sub_0805F580: @ 0x0805F580 + push {r4, r5, lr} + ldr r2, _0805F63C + ldr r0, _0805F640 + ldr r1, _0805F644 + ldrb r3, [r1] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0x24 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _0805F5CC + ldr r0, _0805F648 + ldr r0, [r0] + ldr r1, [r0, #4] + lsls r2, r3, #1 + adds r0, r2, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0xc0 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0805F5CC + ldr r0, _0805F64C + adds r0, r2, r0 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _0805F650 + adds r1, r1, r0 + adds r0, r3, #0 + bl sub_08172CD4 +_0805F5CC: + ldr r2, _0805F63C + ldr r0, _0805F640 + ldr r5, _0805F644 + ldrb r3, [r5] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _0805F654 + cmp r1, r0 + bne _0805F634 + ldr r4, _0805F648 + ldr r0, [r4] + ldr r1, [r0, #4] + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r2, r0, r1 + ldrb r1, [r2, #1] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0805F634 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + ldr r0, [r4] + ldrb r2, [r5] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #1] + ldr r4, _0805F658 + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl FreeSpritePaletteByTag + bl OpponentBufferExecCompleted +_0805F634: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0805F63C: .4byte 0x020205AC +_0805F640: .4byte 0x02023E88 +_0805F644: .4byte 0x02023D08 +_0805F648: .4byte 0x02024174 +_0805F64C: .4byte 0x02023D12 +_0805F650: .4byte 0x020243E8 +_0805F654: .4byte 0x08007141 +_0805F658: .4byte 0x000027F9 + thumb_func_end sub_0805F580 + + thumb_func_start sub_0805F65C +sub_0805F65C: @ 0x0805F65C + push {r4, r5, r6, lr} + ldr r6, _0805F69C + ldrb r0, [r6] + ldr r5, _0805F6A0 + adds r1, r0, r5 + ldrb r1, [r1] + movs r2, #0 + movs r3, #0 + bl MoveBattleBar + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible + lsls r4, r4, #0x10 + asrs r1, r4, #0x10 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0805F6A4 + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r0, [r0] + movs r2, #0 + bl sub_080726F4 + b _0805F6A8 + .align 2, 0 +_0805F69C: .4byte 0x02023D08 +_0805F6A0: .4byte 0x03005AD0 +_0805F6A4: + bl OpponentBufferExecCompleted +_0805F6A8: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0805F65C + + thumb_func_start OpponentHandleCmd38 +OpponentHandleCmd38: @ 0x0805F6B0 + push {lr} + ldr r2, _0805F6E4 + ldr r0, _0805F6E8 + ldr r1, _0805F6EC + ldrb r3, [r1] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1f + cmp r0, #0 + bne _0805F6DE + ldr r0, _0805F6F0 + adds r0, r3, r0 + ldrb r0, [r0] + bl SetHealthboxSpriteInvisible + bl OpponentBufferExecCompleted +_0805F6DE: + pop {r0} + bx r0 + .align 2, 0 +_0805F6E4: .4byte 0x020205AC +_0805F6E8: .4byte 0x02023E88 +_0805F6EC: .4byte 0x02023D08 +_0805F6F0: .4byte 0x03005AD0 + thumb_func_end OpponentHandleCmd38 + + thumb_func_start sub_0805F6F4 +sub_0805F6F4: @ 0x0805F6F4 + push {r4, r5, r6, lr} + ldr r0, _0805F754 + ldr r0, [r0] + ldr r6, _0805F758 + ldrb r2, [r6] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _0805F74E + ldr r5, _0805F75C + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _0805F760 + adds r0, r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + ldrb r0, [r6] + bl HideBattlerShadowSprite + ldr r1, _0805F764 + ldrb r0, [r6] + adds r0, r0, r1 + ldrb r0, [r0] + bl SetHealthboxSpriteInvisible + bl OpponentBufferExecCompleted +_0805F74E: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0805F754: .4byte 0x02024174 +_0805F758: .4byte 0x02023D08 +_0805F75C: .4byte 0x02023E88 +_0805F760: .4byte 0x020205AC +_0805F764: .4byte 0x03005AD0 + thumb_func_end sub_0805F6F4 + + thumb_func_start OpponentHandleBallThrow +OpponentHandleBallThrow: @ 0x0805F768 + push {lr} + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0805F77A + bl OpponentBufferExecCompleted +_0805F77A: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end OpponentHandleBallThrow + + thumb_func_start OpponentHandleHitAnimation +OpponentHandleHitAnimation: @ 0x0805F780 + push {r4, lr} + ldr r1, _0805F7BC + ldr r0, _0805F7C0 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + ldr r2, _0805F7C4 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, r0, r2 + movs r1, #0x30 + ldrsh r0, [r4, r1] + cmp r0, #0x20 + bne _0805F7CC + movs r3, #0 + movs r0, #0 + strh r0, [r4, #0x30] + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + subs r0, #5 + ands r0, r1 + strb r0, [r2] + ldr r0, _0805F7C8 + strb r3, [r0] + bl OpponentBufferExecCompleted + b _0805F7F6 + .align 2, 0 +_0805F7BC: .4byte 0x02023E88 +_0805F7C0: .4byte 0x02023D08 +_0805F7C4: .4byte 0x020205AC +_0805F7C8: .4byte 0x0202415D +_0805F7CC: + ldrh r0, [r4, #0x30] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0805F7F0 + adds r3, r4, #0 + adds r3, #0x3e + ldrb r2, [r3] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_0805F7F0: + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] +_0805F7F6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end OpponentHandleHitAnimation + + thumb_func_start sub_0805F7FC +sub_0805F7FC: @ 0x0805F7FC + push {r4, lr} + ldr r2, _0805F850 + ldr r0, _0805F854 + ldr r4, _0805F858 + ldrb r3, [r4] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _0805F85C + cmp r1, r0 + bne _0805F848 + ldr r0, _0805F860 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r3, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0805F83C + adds r0, r3, #0 + adds r1, r3, #0 + adds r2, r3, #0 + movs r3, #6 + bl InitAndLaunchSpecialAnimation +_0805F83C: + ldr r0, _0805F864 + ldrb r1, [r4] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, _0805F868 + str r0, [r1] +_0805F848: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0805F850: .4byte 0x020205AC +_0805F854: .4byte 0x03005AD0 +_0805F858: .4byte 0x02023D08 +_0805F85C: .4byte 0x08007141 +_0805F860: .4byte 0x02024174 +_0805F864: .4byte 0x03005AC0 +_0805F868: .4byte 0x0805F86D + thumb_func_end sub_0805F7FC + + thumb_func_start sub_0805F86C +sub_0805F86C: @ 0x0805F86C + push {r4, lr} + ldr r0, _0805F8CC + ldr r0, [r0] + ldr r4, _0805F8D0 + ldrb r1, [r4] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _0805F8C6 + bl IsCryPlayingOrClearCrySongs + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805F8C6 + ldr r2, _0805F8D4 + ldr r1, _0805F8D8 + ldrb r0, [r4] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _0805F8DC + cmp r1, r0 + beq _0805F8B6 + ldr r0, _0805F8E0 + cmp r1, r0 + bne _0805F8C6 +_0805F8B6: + ldr r0, _0805F8E4 + ldr r1, _0805F8E8 + movs r2, #0x80 + lsls r2, r2, #1 + bl m4aMPlayVolumeControl + bl OpponentBufferExecCompleted +_0805F8C6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0805F8CC: .4byte 0x02024174 +_0805F8D0: .4byte 0x02023D08 +_0805F8D4: .4byte 0x020205AC +_0805F8D8: .4byte 0x02023E88 +_0805F8DC: .4byte 0x08007141 +_0805F8E0: .4byte 0x080394FD +_0805F8E4: .4byte 0x030074D0 +_0805F8E8: .4byte 0x0000FFFF + thumb_func_end sub_0805F86C + + thumb_func_start sub_0805F8EC +sub_0805F8EC: @ 0x0805F8EC + push {r4, r5, r6, r7, lr} + ldr r4, _0805F9B0 + ldr r0, [r4] + ldr r5, _0805F9B4 + ldrb r2, [r5] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r3, r0, r1 + ldrb r1, [r3, #1] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0805F9A8 + ldr r7, _0805F9B8 + ldr r6, _0805F9BC + adds r0, r2, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r7, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, [r0] + ldr r0, _0805F9C0 + cmp r1, r0 + bne _0805F9A8 + ldrb r1, [r3] + movs r0, #0x7f + ands r0, r1 + strb r0, [r3] + ldr r0, [r4] + ldrb r2, [r5] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #1] + ldr r4, _0805F9C4 + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl FreeSpritePaletteByTag + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + movs r1, #0 + bl StartSpriteAnim + ldr r4, _0805F9C8 + ldrb r1, [r5] + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, _0805F9CC + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _0805F9D0 + adds r1, r1, r2 + movs r2, #0 + bl UpdateHealthboxAttribute + ldrb r0, [r5] + bl sub_08076320 + ldrb r0, [r5] + adds r0, r0, r4 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible + ldrb r0, [r5] + bl CopyBattleSpriteInvisibility + ldr r1, _0805F9D4 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805F9D8 + str r1, [r0] +_0805F9A8: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805F9B0: .4byte 0x02024174 +_0805F9B4: .4byte 0x02023D08 +_0805F9B8: .4byte 0x020205AC +_0805F9BC: .4byte 0x02023E88 +_0805F9C0: .4byte 0x08007141 +_0805F9C4: .4byte 0x000027F9 +_0805F9C8: .4byte 0x03005AD0 +_0805F9CC: .4byte 0x02023D12 +_0805F9D0: .4byte 0x020243E8 +_0805F9D4: .4byte 0x03005AC0 +_0805F9D8: .4byte 0x0805F7FD + thumb_func_end sub_0805F8EC + + thumb_func_start sub_0805F9DC +sub_0805F9DC: @ 0x0805F9DC + push {r4, r5, r6, lr} + ldr r6, _0805FA80 + ldr r0, [r6] + ldr r5, _0805FA84 + ldrb r2, [r5] + ldr r1, [r0, #4] + lsls r3, r2, #1 + adds r0, r3, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x88 + ands r0, r1 + cmp r0, #0 + bne _0805FA0E + ldr r0, _0805FA88 + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _0805FA8C + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_08172CD4 +_0805FA0E: + ldr r4, _0805FA90 + ldr r0, _0805FA94 + ldrb r2, [r5] + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r3, r0, #2 + adds r0, r4, #0 + adds r0, #0x1c + adds r0, r3, r0 + ldr r1, [r0] + ldr r0, _0805FA98 + cmp r1, r0 + bne _0805FA78 + ldr r0, [r6] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + bne _0805FA78 + adds r0, r3, r4 + bl DestroySprite + ldrb r4, [r5] + ldr r1, _0805FA88 + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0805FA8C + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl SetBattlerShadowSpriteCallback + ldr r1, _0805FA9C + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805FAA0 + str r1, [r0] +_0805FA78: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0805FA80: .4byte 0x02024174 +_0805FA84: .4byte 0x02023D08 +_0805FA88: .4byte 0x02023D12 +_0805FA8C: .4byte 0x020243E8 +_0805FA90: .4byte 0x020205AC +_0805FA94: .4byte 0x03005ADC +_0805FA98: .4byte 0x08007141 +_0805FA9C: .4byte 0x03005AC0 +_0805FAA0: .4byte 0x0805F8ED + thumb_func_end sub_0805F9DC + + thumb_func_start OpponentHandleCmd37 +OpponentHandleCmd37: @ 0x0805FAA4 + push {lr} + ldr r0, _0805FACC + ldr r2, [r0] + ldr r0, _0805FAD0 + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _0805FAC6 + bl OpponentBufferExecCompleted +_0805FAC6: + pop {r0} + bx r0 + .align 2, 0 +_0805FACC: .4byte 0x02024174 +_0805FAD0: .4byte 0x02023D08 + thumb_func_end OpponentHandleCmd37 + + thumb_func_start OpponentHandleCmd39 +OpponentHandleCmd39: @ 0x0805FAD4 + push {lr} + ldr r0, _0805FAFC + ldr r2, [r0] + ldr r0, _0805FB00 + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _0805FAF6 + bl OpponentBufferExecCompleted +_0805FAF6: + pop {r0} + bx r0 + .align 2, 0 +_0805FAFC: .4byte 0x02024174 +_0805FB00: .4byte 0x02023D08 + thumb_func_end OpponentHandleCmd39 + + thumb_func_start OpponentBufferExecCompleted +OpponentBufferExecCompleted: @ 0x0805FB04 + push {r4, lr} + sub sp, #4 + ldr r1, _0805FB44 + ldr r4, _0805FB48 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805FB4C + str r1, [r0] + ldr r0, _0805FB50 + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _0805FB58 + bl GetMultiplayerId + mov r1, sp + strb r0, [r1] + movs r0, #2 + movs r1, #4 + mov r2, sp + bl PrepareBufferDataTransferLink + ldr r1, _0805FB54 + ldrb r0, [r4] + lsls r0, r0, #9 + adds r0, r0, r1 + movs r1, #0x38 + strb r1, [r0] + b _0805FB6A + .align 2, 0 +_0805FB44: .4byte 0x03005AC0 +_0805FB48: .4byte 0x02023D08 +_0805FB4C: .4byte 0x0805ED9D +_0805FB50: .4byte 0x02022C90 +_0805FB54: .4byte 0x02022D08 +_0805FB58: + ldr r2, _0805FB74 + ldr r1, _0805FB78 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + ldr r0, [r2] + bics r0, r1 + str r0, [r2] +_0805FB6A: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0805FB74: .4byte 0x02023D0C +_0805FB78: .4byte 0x082FACB4 + thumb_func_end OpponentBufferExecCompleted + + thumb_func_start OpponentHandleGetMonData +OpponentHandleGetMonData: @ 0x0805FB7C + push {r4, r5, r6, lr} + sub sp, #0x100 + movs r6, #0 + ldr r1, _0805FBA8 + ldr r0, _0805FBAC + ldrb r2, [r0] + lsls r0, r2, #9 + adds r1, #2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, #0 + bne _0805FBB4 + ldr r0, _0805FBB0 + lsls r1, r2, #1 + adds r1, r1, r0 + ldrb r0, [r1] + mov r1, sp + bl GetOpponentMonData + adds r6, r0, #0 + b _0805FBD6 + .align 2, 0 +_0805FBA8: .4byte 0x02022D08 +_0805FBAC: .4byte 0x02023D08 +_0805FBB0: .4byte 0x02023D12 +_0805FBB4: + ldrb r4, [r1] + movs r5, #0 +_0805FBB8: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _0805FBCE + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + mov r2, sp + adds r1, r2, r6 + bl GetOpponentMonData + adds r6, r6, r0 +_0805FBCE: + lsrs r4, r4, #1 + adds r5, #1 + cmp r5, #5 + ble _0805FBB8 +_0805FBD6: + lsls r1, r6, #0x10 + lsrs r1, r1, #0x10 + movs r0, #1 + mov r2, sp + bl BtlController_EmitDataTransfer + bl OpponentBufferExecCompleted + add sp, #0x100 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end OpponentHandleGetMonData + + thumb_func_start GetOpponentMonData +GetOpponentMonData: @ 0x0805FBF0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x90 + adds r7, r1, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r6, #0 + ldr r2, _0805FC24 + ldr r3, _0805FC28 + ldrb r0, [r3] + lsls r0, r0, #9 + adds r1, r2, #1 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0x3b + bls _0805FC1A + bl _08060386 +_0805FC1A: + lsls r0, r0, #2 + ldr r1, _0805FC2C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0805FC24: .4byte 0x02022D08 +_0805FC28: .4byte 0x02023D08 +_0805FC2C: .4byte 0x0805FC30 +_0805FC30: @ jump table + .4byte _0805FD20 @ case 0 + .4byte _0805FF44 @ case 1 + .4byte _0805FF54 @ case 2 + .4byte _0805FF64 @ case 3 + .4byte _0805FFCC @ case 4 + .4byte _0805FFCC @ case 5 + .4byte _0805FFCC @ case 6 + .4byte _0805FFCC @ case 7 + .4byte _0805FFE8 @ case 8 + .4byte _08060024 @ case 9 + .4byte _08060024 @ case 10 + .4byte _08060024 @ case 11 + .4byte _08060024 @ case 12 + .4byte _08060386 @ case 13 + .4byte _08060386 @ case 14 + .4byte _08060386 @ case 15 + .4byte _08060386 @ case 16 + .4byte _08060040 @ case 17 + .4byte _08060050 @ case 18 + .4byte _08060080 @ case 19 + .4byte _08060090 @ case 20 + .4byte _080600A0 @ case 21 + .4byte _080600B0 @ case 22 + .4byte _080600C0 @ case 23 + .4byte _080600D0 @ case 24 + .4byte _080600E0 @ case 25 + .4byte _080600F0 @ case 26 + .4byte _08060100 @ case 27 + .4byte _08060110 @ case 28 + .4byte _08060120 @ case 29 + .4byte _08060130 @ case 30 + .4byte _08060140 @ case 31 + .4byte _08060190 @ case 32 + .4byte _080601A0 @ case 33 + .4byte _080601B0 @ case 34 + .4byte _080601C0 @ case 35 + .4byte _080601D0 @ case 36 + .4byte _080601E0 @ case 37 + .4byte _080601F0 @ case 38 + .4byte _08060200 @ case 39 + .4byte _08060210 @ case 40 + .4byte _08060244 @ case 41 + .4byte _08060254 @ case 42 + .4byte _08060264 @ case 43 + .4byte _08060274 @ case 44 + .4byte _08060284 @ case 45 + .4byte _08060294 @ case 46 + .4byte _080602A4 @ case 47 + .4byte _080602B4 @ case 48 + .4byte _080602D4 @ case 49 + .4byte _080602E4 @ case 50 + .4byte _080602F4 @ case 51 + .4byte _08060304 @ case 52 + .4byte _08060314 @ case 53 + .4byte _08060324 @ case 54 + .4byte _08060334 @ case 55 + .4byte _08060344 @ case 56 + .4byte _08060354 @ case 57 + .4byte _08060364 @ case 58 + .4byte _08060374 @ case 59 +_0805FD20: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _0805FF34 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + mov r1, sp + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0xc + bl GetMonData + mov r1, sp + strh r0, [r1, #0x2e] + movs r6, #0 + add r0, sp, #0x24 + mov sb, r0 + movs r1, #0x3b + add r1, sp + mov sl, r1 + mov r2, sp + adds r2, #0x2b + str r2, [sp, #0x80] + mov r0, sp + adds r0, #0x2a + str r0, [sp, #0x7c] + mov r1, sp + adds r1, #0x68 + str r1, [sp, #0x8c] + adds r2, #5 + str r2, [sp, #0x84] + adds r0, #0x12 + str r0, [sp, #0x88] + mov r8, r4 + add r4, sp, #0xc +_0805FD6C: + adds r1, r6, #0 + adds r1, #0xd + mov r0, r8 + bl GetMonData + strh r0, [r4] + adds r1, r6, #0 + adds r1, #0x11 + mov r0, r8 + bl GetMonData + mov r2, sb + adds r1, r2, r6 + strb r0, [r1] + adds r4, #2 + adds r6, #1 + cmp r6, #3 + ble _0805FD6C + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _0805FF34 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x15 + bl GetMonData + mov r1, sl + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x20 + bl GetMonData + ldr r2, [sp, #0x80] + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0x19 + bl GetMonData + str r0, [sp, #0x44] + adds r0, r4, #0 + movs r1, #0x27 + bl GetMonData + mov r3, sp + movs r5, #0x1f + ands r0, r5 + ldrb r2, [r3, #0x14] + movs r1, #0x20 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x14] + adds r0, r4, #0 + movs r1, #0x28 + bl GetMonData + mov r3, sp + movs r6, #0x1f + ands r0, r6 + lsls r0, r0, #5 + ldrh r2, [r3, #0x14] + ldr r1, _0805FF38 + ands r1, r2 + orrs r1, r0 + strh r1, [r3, #0x14] + adds r0, r4, #0 + movs r1, #0x29 + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, r0, #2 + ldrb r2, [r3, #0x15] + movs r1, #0x7d + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x15] + adds r0, r4, #0 + movs r1, #0x2a + bl GetMonData + movs r1, #0x1f + ands r1, r0 + lsls r1, r1, #0xf + ldr r0, [sp, #0x14] + ldr r2, _0805FF3C + ands r0, r2 + orrs r0, r1 + str r0, [sp, #0x14] + adds r0, r4, #0 + movs r1, #0x2b + bl GetMonData + mov r3, sp + ands r0, r6 + lsls r0, r0, #4 + ldrh r2, [r3, #0x16] + ldr r1, _0805FF40 + ands r1, r2 + orrs r1, r0 + strh r1, [r3, #0x16] + adds r0, r4, #0 + movs r1, #0x2c + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, r0, #1 + ldrb r2, [r3, #0x17] + movs r1, #0x3f + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x17] + adds r0, r4, #0 + movs r1, #0 + bl GetMonData + str r0, [sp, #0x48] + adds r0, r4, #0 + movs r1, #0x37 + bl GetMonData + str r0, [sp, #0x4c] + adds r0, r4, #0 + movs r1, #0x38 + bl GetMonData + ldr r1, [sp, #0x7c] + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + mov r1, sp + strh r0, [r1, #0x28] + adds r0, r4, #0 + movs r1, #0x3a + bl GetMonData + mov r1, sp + strh r0, [r1, #0x2c] + adds r0, r4, #0 + movs r1, #0x3b + bl GetMonData + mov r1, sp + strh r0, [r1, #2] + adds r0, r4, #0 + movs r1, #0x3c + bl GetMonData + mov r1, sp + strh r0, [r1, #4] + adds r0, r4, #0 + movs r1, #0x3d + bl GetMonData + mov r1, sp + strh r0, [r1, #6] + adds r0, r4, #0 + movs r1, #0x3e + bl GetMonData + mov r1, sp + strh r0, [r1, #8] + adds r0, r4, #0 + movs r1, #0x3f + bl GetMonData + mov r1, sp + strh r0, [r1, #0xa] + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + mov r3, sp + movs r1, #1 + ands r0, r1 + lsls r0, r0, #6 + ldrb r2, [r3, #0x17] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x17] + adds r0, r4, #0 + movs r1, #0x2e + bl GetMonData + mov r3, sp + lsls r0, r0, #7 + ldrb r2, [r3, #0x17] + movs r1, #0x7f + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x17] + adds r0, r4, #0 + movs r1, #1 + bl GetMonData + str r0, [sp, #0x54] + adds r0, r4, #0 + movs r1, #2 + ldr r2, [sp, #0x8c] + bl GetMonData + ldr r0, [sp, #0x84] + ldr r1, [sp, #0x8c] + bl StringCopy10 + adds r0, r4, #0 + movs r1, #7 + ldr r2, [sp, #0x88] + bl GetMonData + mov r2, sp + movs r6, #0 +_0805FF24: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, #1 + cmp r6, #0x57 + bls _0805FF24 + b _08060386 + .align 2, 0 +_0805FF34: .4byte 0x020243E8 +_0805FF38: .4byte 0xFFFFFC1F +_0805FF3C: .4byte 0xFFF07FFF +_0805FF40: .4byte 0xFFFFFE0F +_0805FF44: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805FF50 + adds r0, r0, r1 + movs r1, #0xb + b _080602BE + .align 2, 0 +_0805FF50: .4byte 0x020243E8 +_0805FF54: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805FF60 + adds r0, r0, r1 + movs r1, #0xc + b _080602BE + .align 2, 0 +_0805FF60: .4byte 0x020243E8 +_0805FF64: + movs r6, #0 + add r2, sp, #0x58 + mov sb, r2 + add r0, sp, #0x60 + mov sl, r0 + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _0805FFC8 + adds r4, r1, r0 + mov r8, sb +_0805FF7A: + adds r1, r6, #0 + adds r1, #0xd + adds r0, r4, #0 + bl GetMonData + mov r1, r8 + strh r0, [r1] + adds r1, r6, #0 + adds r1, #0x11 + adds r0, r4, #0 + bl GetMonData + mov r2, sl + adds r1, r2, r6 + strb r0, [r1] + movs r0, #2 + add r8, r0 + adds r6, #1 + cmp r6, #3 + ble _0805FF7A + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805FFC8 + adds r0, r0, r1 + movs r1, #0x15 + bl GetMonData + mov r1, sb + strb r0, [r1, #0xc] + mov r2, sb + movs r6, #0 +_0805FFB8: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, #1 + cmp r6, #0xf + bls _0805FFB8 + b _08060386 + .align 2, 0 +_0805FFC8: .4byte 0x020243E8 +_0805FFCC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805FFE4 + adds r0, r0, r1 + ldrb r1, [r3] + lsls r1, r1, #9 + adds r2, #1 + adds r1, r1, r2 + ldrb r1, [r1] + adds r1, #9 + b _080602BE + .align 2, 0 +_0805FFE4: .4byte 0x020243E8 +_0805FFE8: + movs r6, #0 + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r2, _08060020 + mov r8, r2 +_0805FFF4: + adds r1, r6, #0 + adds r1, #0x11 + mov r2, r8 + adds r0, r4, r2 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, #1 + cmp r6, #3 + ble _0805FFF4 + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060020 + adds r0, r0, r1 + movs r1, #0x15 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, #1 + b _08060386 + .align 2, 0 +_08060020: .4byte 0x020243E8 +_08060024: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0806003C + adds r0, r0, r1 + ldrb r1, [r3] + lsls r1, r1, #9 + adds r2, #1 + adds r1, r1, r2 + ldrb r1, [r1] + adds r1, #8 + b _0806037E + .align 2, 0 +_0806003C: .4byte 0x020243E8 +_08060040: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0806004C + adds r0, r0, r1 + movs r1, #1 + b _0806005A + .align 2, 0 +_0806004C: .4byte 0x020243E8 +_08060050: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0806007C + adds r0, r0, r1 + movs r1, #0x19 +_0806005A: + bl GetMonData + adds r1, r0, #0 + strb r1, [r7] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + lsrs r0, r0, #8 + strb r0, [r7, #1] + movs r0, #0xff + lsls r0, r0, #0x10 + ands r0, r1 + lsrs r0, r0, #0x10 + strb r0, [r7, #2] + movs r6, #3 + b _08060386 + .align 2, 0 +_0806007C: .4byte 0x020243E8 +_08060080: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0806008C + adds r0, r0, r1 + movs r1, #0x1a + b _0806037E + .align 2, 0 +_0806008C: .4byte 0x020243E8 +_08060090: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0806009C + adds r0, r0, r1 + movs r1, #0x1b + b _0806037E + .align 2, 0 +_0806009C: .4byte 0x020243E8 +_080600A0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080600AC + adds r0, r0, r1 + movs r1, #0x1c + b _0806037E + .align 2, 0 +_080600AC: .4byte 0x020243E8 +_080600B0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080600BC + adds r0, r0, r1 + movs r1, #0x1d + b _0806037E + .align 2, 0 +_080600BC: .4byte 0x020243E8 +_080600C0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080600CC + adds r0, r0, r1 + movs r1, #0x1e + b _0806037E + .align 2, 0 +_080600CC: .4byte 0x020243E8 +_080600D0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080600DC + adds r0, r0, r1 + movs r1, #0x1f + b _0806037E + .align 2, 0 +_080600DC: .4byte 0x020243E8 +_080600E0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080600EC + adds r0, r0, r1 + movs r1, #0x20 + b _0806037E + .align 2, 0 +_080600EC: .4byte 0x020243E8 +_080600F0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080600FC + adds r0, r0, r1 + movs r1, #0x22 + b _0806037E + .align 2, 0 +_080600FC: .4byte 0x020243E8 +_08060100: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0806010C + adds r0, r0, r1 + movs r1, #0x23 + b _0806037E + .align 2, 0 +_0806010C: .4byte 0x020243E8 +_08060110: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0806011C + adds r0, r0, r1 + movs r1, #0x24 + b _0806037E + .align 2, 0 +_0806011C: .4byte 0x020243E8 +_08060120: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0806012C + adds r0, r0, r1 + movs r1, #0x25 + b _0806037E + .align 2, 0 +_0806012C: .4byte 0x020243E8 +_08060130: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0806013C + adds r0, r0, r1 + movs r1, #0x26 + b _0806037E + .align 2, 0 +_0806013C: .4byte 0x020243E8 +_08060140: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _0806018C + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x27 + bl GetMonData + strb r0, [r7] + adds r0, r4, #0 + movs r1, #0x28 + bl GetMonData + strb r0, [r7, #1] + adds r0, r4, #0 + movs r1, #0x29 + bl GetMonData + strb r0, [r7, #2] + adds r0, r4, #0 + movs r1, #0x2a + bl GetMonData + strb r0, [r7, #3] + adds r0, r4, #0 + movs r1, #0x2b + bl GetMonData + strb r0, [r7, #4] + adds r0, r4, #0 + movs r1, #0x2c + bl GetMonData + strb r0, [r7, #5] + movs r6, #6 + b _08060386 + .align 2, 0 +_0806018C: .4byte 0x020243E8 +_08060190: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0806019C + adds r0, r0, r1 + movs r1, #0x27 + b _0806037E + .align 2, 0 +_0806019C: .4byte 0x020243E8 +_080601A0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080601AC + adds r0, r0, r1 + movs r1, #0x28 + b _0806037E + .align 2, 0 +_080601AC: .4byte 0x020243E8 +_080601B0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080601BC + adds r0, r0, r1 + movs r1, #0x29 + b _0806037E + .align 2, 0 +_080601BC: .4byte 0x020243E8 +_080601C0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080601CC + adds r0, r0, r1 + movs r1, #0x2a + b _0806037E + .align 2, 0 +_080601CC: .4byte 0x020243E8 +_080601D0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080601DC + adds r0, r0, r1 + movs r1, #0x2b + b _0806037E + .align 2, 0 +_080601DC: .4byte 0x020243E8 +_080601E0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080601EC + adds r0, r0, r1 + movs r1, #0x2c + b _0806037E + .align 2, 0 +_080601EC: .4byte 0x020243E8 +_080601F0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080601FC + adds r0, r0, r1 + movs r1, #0 + b _0806021A + .align 2, 0 +_080601FC: .4byte 0x020243E8 +_08060200: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0806020C + adds r0, r0, r1 + movs r1, #9 + b _080602BE + .align 2, 0 +_0806020C: .4byte 0x020243E8 +_08060210: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060240 + adds r0, r0, r1 + movs r1, #0x37 +_0806021A: + bl GetMonData + adds r1, r0, #0 + strb r1, [r7] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + lsrs r0, r0, #8 + strb r0, [r7, #1] + movs r0, #0xff + lsls r0, r0, #0x10 + ands r0, r1 + lsrs r0, r0, #0x10 + strb r0, [r7, #2] + lsrs r0, r1, #0x18 + strb r0, [r7, #3] + movs r6, #4 + b _08060386 + .align 2, 0 +_08060240: .4byte 0x020243E8 +_08060244: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060250 + adds r0, r0, r1 + movs r1, #0x38 + b _0806037E + .align 2, 0 +_08060250: .4byte 0x020243E8 +_08060254: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060260 + adds r0, r0, r1 + movs r1, #0x39 + b _080602BE + .align 2, 0 +_08060260: .4byte 0x020243E8 +_08060264: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060270 + adds r0, r0, r1 + movs r1, #0x3a + b _080602BE + .align 2, 0 +_08060270: .4byte 0x020243E8 +_08060274: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060280 + adds r0, r0, r1 + movs r1, #0x3b + b _080602BE + .align 2, 0 +_08060280: .4byte 0x020243E8 +_08060284: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060290 + adds r0, r0, r1 + movs r1, #0x3c + b _080602BE + .align 2, 0 +_08060290: .4byte 0x020243E8 +_08060294: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080602A0 + adds r0, r0, r1 + movs r1, #0x3d + b _080602BE + .align 2, 0 +_080602A0: .4byte 0x020243E8 +_080602A4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080602B0 + adds r0, r0, r1 + movs r1, #0x3e + b _080602BE + .align 2, 0 +_080602B0: .4byte 0x020243E8 +_080602B4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080602D0 + adds r0, r0, r1 + movs r1, #0x3f +_080602BE: + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + strb r0, [r7] + lsrs r0, r0, #8 + strb r0, [r7, #1] + movs r6, #2 + b _08060386 + .align 2, 0 +_080602D0: .4byte 0x020243E8 +_080602D4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080602E0 + adds r0, r0, r1 + movs r1, #0x16 + b _0806037E + .align 2, 0 +_080602E0: .4byte 0x020243E8 +_080602E4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080602F0 + adds r0, r0, r1 + movs r1, #0x17 + b _0806037E + .align 2, 0 +_080602F0: .4byte 0x020243E8 +_080602F4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060300 + adds r0, r0, r1 + movs r1, #0x18 + b _0806037E + .align 2, 0 +_08060300: .4byte 0x020243E8 +_08060304: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060310 + adds r0, r0, r1 + movs r1, #0x21 + b _0806037E + .align 2, 0 +_08060310: .4byte 0x020243E8 +_08060314: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060320 + adds r0, r0, r1 + movs r1, #0x2f + b _0806037E + .align 2, 0 +_08060320: .4byte 0x020243E8 +_08060324: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060330 + adds r0, r0, r1 + movs r1, #0x30 + b _0806037E + .align 2, 0 +_08060330: .4byte 0x020243E8 +_08060334: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060340 + adds r0, r0, r1 + movs r1, #0x32 + b _0806037E + .align 2, 0 +_08060340: .4byte 0x020243E8 +_08060344: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060350 + adds r0, r0, r1 + movs r1, #0x33 + b _0806037E + .align 2, 0 +_08060350: .4byte 0x020243E8 +_08060354: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060360 + adds r0, r0, r1 + movs r1, #0x34 + b _0806037E + .align 2, 0 +_08060360: .4byte 0x020243E8 +_08060364: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060370 + adds r0, r0, r1 + movs r1, #0x35 + b _0806037E + .align 2, 0 +_08060370: .4byte 0x020243E8 +_08060374: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060398 + adds r0, r0, r1 + movs r1, #0x36 +_0806037E: + bl GetMonData + strb r0, [r7] + movs r6, #1 +_08060386: + adds r0, r6, #0 + add sp, #0x90 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08060398: .4byte 0x020243E8 + thumb_func_end GetOpponentMonData + + thumb_func_start OpponentHandleGetRawMonData +OpponentHandleGetRawMonData: @ 0x0806039C + push {r4, r5, r6, r7, lr} + sub sp, #0x58 + ldr r2, _08060414 + ldr r5, _08060418 + ldrb r1, [r5] + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r2, [r0] + movs r0, #0x64 + adds r4, r2, #0 + muls r4, r0, r4 + ldr r3, _0806041C + lsls r1, r1, #9 + adds r0, r3, #1 + adds r0, r1, r0 + ldrb r2, [r0] + ldr r0, _08060420 + adds r0, r2, r0 + adds r6, r4, r0 + mov r0, sp + adds r4, r0, r2 + movs r2, #0 + adds r0, r3, #2 + adds r1, r1, r0 + adds r7, r5, #0 + mov ip, r3 + ldrb r1, [r1] + cmp r2, r1 + bhs _080603F2 + adds r3, r0, #0 +_080603D8: + adds r1, r4, r2 + adds r0, r6, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldrb r0, [r5] + lsls r0, r0, #9 + adds r0, r0, r3 + ldrb r0, [r0] + cmp r2, r0 + blo _080603D8 +_080603F2: + ldrb r0, [r7] + lsls r0, r0, #9 + mov r1, ip + adds r1, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + adds r2, r4, #0 + bl BtlController_EmitDataTransfer + bl OpponentBufferExecCompleted + add sp, #0x58 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08060414: .4byte 0x02023D12 +_08060418: .4byte 0x02023D08 +_0806041C: .4byte 0x02022D08 +_08060420: .4byte 0x020243E8 + thumb_func_end OpponentHandleGetRawMonData + + thumb_func_start OpponentHandleSetMonData +OpponentHandleSetMonData: @ 0x08060424 + push {r4, r5, lr} + ldr r1, _08060448 + ldr r0, _0806044C + ldrb r2, [r0] + lsls r0, r2, #9 + adds r1, #2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, #0 + bne _08060454 + ldr r0, _08060450 + lsls r1, r2, #1 + adds r1, r1, r0 + ldrb r0, [r1] + bl SetOpponentMonData + b _08060472 + .align 2, 0 +_08060448: .4byte 0x02022D08 +_0806044C: .4byte 0x02023D08 +_08060450: .4byte 0x02023D12 +_08060454: + ldrb r4, [r1] + movs r5, #0 +_08060458: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _08060466 + adds r0, r5, #0 + bl SetOpponentMonData +_08060466: + lsrs r4, r4, #1 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #5 + bls _08060458 +_08060472: + bl OpponentBufferExecCompleted + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end OpponentHandleSetMonData + + thumb_func_start SetOpponentMonData +SetOpponentMonData: @ 0x0806047C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x38 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r3, _080604B4 + ldrb r0, [r3] + lsls r0, r0, #9 + ldr r2, _080604B8 + adds r4, r0, r2 + adds r7, r4, #0 + subs r1, r2, #2 + adds r0, r0, r1 + ldrb r0, [r0] + adds r6, r3, #0 + adds r3, r2, #0 + cmp r0, #0x3b + bls _080604AA + bl _08060D88 +_080604AA: + lsls r0, r0, #2 + ldr r1, _080604BC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080604B4: .4byte 0x02023D08 +_080604B8: .4byte 0x02022D0B +_080604BC: .4byte 0x080604C0 +_080604C0: @ jump table + .4byte _080605B0 @ case 0 + .4byte _08060748 @ case 1 + .4byte _08060764 @ case 2 + .4byte _08060780 @ case 3 + .4byte _080607D4 @ case 4 + .4byte _080607D4 @ case 5 + .4byte _080607D4 @ case 6 + .4byte _080607D4 @ case 7 + .4byte _080607F4 @ case 8 + .4byte _0806085C @ case 9 + .4byte _0806085C @ case 10 + .4byte _0806085C @ case 11 + .4byte _0806085C @ case 12 + .4byte _08060D88 @ case 13 + .4byte _08060D88 @ case 14 + .4byte _08060D88 @ case 15 + .4byte _08060D88 @ case 16 + .4byte _08060884 @ case 17 + .4byte _080608A0 @ case 18 + .4byte _080608BC @ case 19 + .4byte _080608D8 @ case 20 + .4byte _080608F4 @ case 21 + .4byte _08060910 @ case 22 + .4byte _0806092C @ case 23 + .4byte _08060948 @ case 24 + .4byte _08060964 @ case 25 + .4byte _08060980 @ case 26 + .4byte _0806099C @ case 27 + .4byte _080609B8 @ case 28 + .4byte _080609D4 @ case 29 + .4byte _080609F0 @ case 30 + .4byte _08060A0C @ case 31 + .4byte _08060A80 @ case 32 + .4byte _08060A9C @ case 33 + .4byte _08060AB8 @ case 34 + .4byte _08060AD4 @ case 35 + .4byte _08060AF0 @ case 36 + .4byte _08060B0C @ case 37 + .4byte _08060B28 @ case 38 + .4byte _08060B44 @ case 39 + .4byte _08060B60 @ case 40 + .4byte _08060B7C @ case 41 + .4byte _08060B98 @ case 42 + .4byte _08060BB4 @ case 43 + .4byte _08060BD0 @ case 44 + .4byte _08060BEC @ case 45 + .4byte _08060C08 @ case 46 + .4byte _08060C24 @ case 47 + .4byte _08060C40 @ case 48 + .4byte _08060C5C @ case 49 + .4byte _08060C78 @ case 50 + .4byte _08060C94 @ case 51 + .4byte _08060CB0 @ case 52 + .4byte _08060CCC @ case 53 + .4byte _08060CE8 @ case 54 + .4byte _08060D04 @ case 55 + .4byte _08060D20 @ case 56 + .4byte _08060D3C @ case 57 + .4byte _08060D58 @ case 58 + .4byte _08060D74 @ case 59 +_080605B0: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _08060744 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0xb + adds r2, r7, #0 + bl SetMonData + adds r2, r7, #0 + adds r2, #0x2e + adds r0, r4, #0 + movs r1, #0xc + bl SetMonData + movs r0, #0 + mov r8, r0 + movs r0, #0x3b + adds r0, r0, r7 + mov sl, r0 + adds r0, r7, #0 + adds r0, #0x2b + str r0, [sp, #0x20] + adds r0, #0x19 + str r0, [sp, #0x28] + adds r0, #4 + str r0, [sp, #0x2c] + adds r0, #4 + str r0, [sp, #0x30] + subs r0, #0x22 + str r0, [sp, #0x1c] + subs r0, #2 + str r0, [sp, #0x18] + adds r0, #4 + str r0, [sp, #0x24] + adds r0, r7, #2 + str r0, [sp, #4] + adds r0, r7, #4 + str r0, [sp, #8] + adds r0, r7, #6 + str r0, [sp, #0xc] + adds r0, #2 + str r0, [sp, #0x10] + adds r0, #2 + str r0, [sp, #0x14] + mov sb, r4 + adds r6, r7, #0 + adds r6, #0x24 + adds r4, r7, #0 + adds r4, #0xc +_08060616: + mov r1, r8 + adds r1, #0xd + mov r0, sb + adds r2, r4, #0 + bl SetMonData + mov r1, r8 + adds r1, #0x11 + mov r0, sb + adds r2, r6, #0 + bl SetMonData + adds r6, #1 + adds r4, #2 + movs r0, #1 + add r8, r0 + mov r0, r8 + cmp r0, #3 + ble _08060616 + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _08060744 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x15 + mov r2, sl + bl SetMonData + adds r0, r4, #0 + movs r1, #0x20 + ldr r2, [sp, #0x20] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x19 + ldr r2, [sp, #0x28] + bl SetMonData + ldrb r0, [r7, #0x14] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1b + mov r1, sp + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x27 + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r7, #0x14] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x28 + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r7, #0x15] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x29 + mov r2, sp + bl SetMonData + mov r1, sp + ldr r0, [r7, #0x14] + lsls r0, r0, #0xc + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x2a + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r7, #0x16] + lsls r0, r0, #0x17 + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x2b + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r7, #0x17] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x2c + mov r2, sp + bl SetMonData + adds r0, r4, #0 + movs r1, #0 + ldr r2, [sp, #0x2c] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x37 + ldr r2, [sp, #0x30] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x38 + ldr r2, [sp, #0x1c] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x39 + ldr r2, [sp, #0x18] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3a + ldr r2, [sp, #0x24] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3b + ldr r2, [sp, #4] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3c + ldr r2, [sp, #8] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3d + ldr r2, [sp, #0xc] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3e + ldr r2, [sp, #0x10] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3f + ldr r2, [sp, #0x14] + bl SetMonData + b _08060D88 + .align 2, 0 +_08060744: .4byte 0x020243E8 +_08060748: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060760 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0xb + bl SetMonData + b _08060D88 + .align 2, 0 +_08060760: .4byte 0x020243E8 +_08060764: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0806077C + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0xc + bl SetMonData + b _08060D88 + .align 2, 0 +_0806077C: .4byte 0x020243E8 +_08060780: + movs r0, #0 + mov r8, r0 + movs r0, #0xc + adds r0, r0, r4 + mov sb, r0 + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _080607D0 + adds r7, r1, r0 + adds r6, r4, #0 + adds r6, #8 +_08060798: + mov r1, r8 + adds r1, #0xd + adds r0, r7, #0 + adds r2, r4, #0 + bl SetMonData + mov r1, r8 + adds r1, #0x11 + adds r0, r7, #0 + adds r2, r6, #0 + bl SetMonData + adds r6, #1 + adds r4, #2 + movs r0, #1 + add r8, r0 + mov r0, r8 + cmp r0, #3 + ble _08060798 + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080607D0 + adds r0, r0, r1 + movs r1, #0x15 + mov r2, sb + bl SetMonData + b _08060D88 + .align 2, 0 +_080607D0: .4byte 0x020243E8 +_080607D4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080607EC + adds r0, r0, r1 + ldr r3, _080607F0 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r1, r3, #1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, #9 + b _08060872 + .align 2, 0 +_080607EC: .4byte 0x020243E8 +_080607F0: .4byte 0x02022D08 +_080607F4: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _08060858 + adds r4, r4, r0 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + adds r0, r4, #0 + movs r1, #0x11 + str r3, [sp, #0x34] + bl SetMonData + ldrb r2, [r6] + lsls r2, r2, #9 + ldr r3, [sp, #0x34] + adds r0, r3, #1 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x12 + bl SetMonData + ldrb r2, [r6] + lsls r2, r2, #9 + ldr r3, [sp, #0x34] + adds r0, r3, #2 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x13 + bl SetMonData + ldrb r2, [r6] + lsls r2, r2, #9 + ldr r3, [sp, #0x34] + adds r0, r3, #3 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x14 + bl SetMonData + ldrb r2, [r6] + lsls r2, r2, #9 + ldr r3, [sp, #0x34] + adds r0, r3, #4 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x15 + bl SetMonData + b _08060D88 + .align 2, 0 +_08060858: .4byte 0x020243E8 +_0806085C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0806087C + adds r0, r0, r1 + ldr r3, _08060880 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r1, r3, #1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, #8 +_08060872: + adds r3, #3 + adds r2, r2, r3 + bl SetMonData + b _08060D88 + .align 2, 0 +_0806087C: .4byte 0x020243E8 +_08060880: .4byte 0x02022D08 +_08060884: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0806089C + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #1 + bl SetMonData + b _08060D88 + .align 2, 0 +_0806089C: .4byte 0x020243E8 +_080608A0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080608B8 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x19 + bl SetMonData + b _08060D88 + .align 2, 0 +_080608B8: .4byte 0x020243E8 +_080608BC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080608D4 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x1a + bl SetMonData + b _08060D88 + .align 2, 0 +_080608D4: .4byte 0x020243E8 +_080608D8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080608F0 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x1b + bl SetMonData + b _08060D88 + .align 2, 0 +_080608F0: .4byte 0x020243E8 +_080608F4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0806090C + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x1c + bl SetMonData + b _08060D88 + .align 2, 0 +_0806090C: .4byte 0x020243E8 +_08060910: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060928 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x1d + bl SetMonData + b _08060D88 + .align 2, 0 +_08060928: .4byte 0x020243E8 +_0806092C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060944 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x1e + bl SetMonData + b _08060D88 + .align 2, 0 +_08060944: .4byte 0x020243E8 +_08060948: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060960 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x1f + bl SetMonData + b _08060D88 + .align 2, 0 +_08060960: .4byte 0x020243E8 +_08060964: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0806097C + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x20 + bl SetMonData + b _08060D88 + .align 2, 0 +_0806097C: .4byte 0x020243E8 +_08060980: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060998 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x22 + bl SetMonData + b _08060D88 + .align 2, 0 +_08060998: .4byte 0x020243E8 +_0806099C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080609B4 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x23 + bl SetMonData + b _08060D88 + .align 2, 0 +_080609B4: .4byte 0x020243E8 +_080609B8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080609D0 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x24 + bl SetMonData + b _08060D88 + .align 2, 0 +_080609D0: .4byte 0x020243E8 +_080609D4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _080609EC + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x25 + bl SetMonData + b _08060D88 + .align 2, 0 +_080609EC: .4byte 0x020243E8 +_080609F0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060A08 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x26 + bl SetMonData + b _08060D88 + .align 2, 0 +_08060A08: .4byte 0x020243E8 +_08060A0C: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _08060A7C + adds r4, r4, r0 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + adds r0, r4, #0 + movs r1, #0x27 + str r3, [sp, #0x34] + bl SetMonData + ldrb r2, [r6] + lsls r2, r2, #9 + ldr r3, [sp, #0x34] + adds r0, r3, #1 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x28 + bl SetMonData + ldrb r2, [r6] + lsls r2, r2, #9 + ldr r3, [sp, #0x34] + adds r0, r3, #2 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x29 + bl SetMonData + ldrb r2, [r6] + lsls r2, r2, #9 + ldr r3, [sp, #0x34] + adds r0, r3, #3 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x2a + bl SetMonData + ldrb r2, [r6] + lsls r2, r2, #9 + ldr r3, [sp, #0x34] + adds r0, r3, #4 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x2b + bl SetMonData + ldrb r2, [r6] + lsls r2, r2, #9 + ldr r3, [sp, #0x34] + adds r0, r3, #5 + adds r2, r2, r0 + adds r0, r4, #0 + b _08060B1A + .align 2, 0 +_08060A7C: .4byte 0x020243E8 +_08060A80: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060A98 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x27 + bl SetMonData + b _08060D88 + .align 2, 0 +_08060A98: .4byte 0x020243E8 +_08060A9C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060AB4 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x28 + bl SetMonData + b _08060D88 + .align 2, 0 +_08060AB4: .4byte 0x020243E8 +_08060AB8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060AD0 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x29 + bl SetMonData + b _08060D88 + .align 2, 0 +_08060AD0: .4byte 0x020243E8 +_08060AD4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060AEC + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x2a + bl SetMonData + b _08060D88 + .align 2, 0 +_08060AEC: .4byte 0x020243E8 +_08060AF0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060B08 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x2b + bl SetMonData + b _08060D88 + .align 2, 0 +_08060B08: .4byte 0x020243E8 +_08060B0C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060B24 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 +_08060B1A: + movs r1, #0x2c + bl SetMonData + b _08060D88 + .align 2, 0 +_08060B24: .4byte 0x020243E8 +_08060B28: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060B40 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0 + bl SetMonData + b _08060D88 + .align 2, 0 +_08060B40: .4byte 0x020243E8 +_08060B44: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060B5C + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #9 + bl SetMonData + b _08060D88 + .align 2, 0 +_08060B5C: .4byte 0x020243E8 +_08060B60: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060B78 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x37 + bl SetMonData + b _08060D88 + .align 2, 0 +_08060B78: .4byte 0x020243E8 +_08060B7C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060B94 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x38 + bl SetMonData + b _08060D88 + .align 2, 0 +_08060B94: .4byte 0x020243E8 +_08060B98: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060BB0 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x39 + bl SetMonData + b _08060D88 + .align 2, 0 +_08060BB0: .4byte 0x020243E8 +_08060BB4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060BCC + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x3a + bl SetMonData + b _08060D88 + .align 2, 0 +_08060BCC: .4byte 0x020243E8 +_08060BD0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060BE8 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x3b + bl SetMonData + b _08060D88 + .align 2, 0 +_08060BE8: .4byte 0x020243E8 +_08060BEC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060C04 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x3c + bl SetMonData + b _08060D88 + .align 2, 0 +_08060C04: .4byte 0x020243E8 +_08060C08: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060C20 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x3d + bl SetMonData + b _08060D88 + .align 2, 0 +_08060C20: .4byte 0x020243E8 +_08060C24: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060C3C + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x3e + bl SetMonData + b _08060D88 + .align 2, 0 +_08060C3C: .4byte 0x020243E8 +_08060C40: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060C58 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x3f + bl SetMonData + b _08060D88 + .align 2, 0 +_08060C58: .4byte 0x020243E8 +_08060C5C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060C74 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x16 + bl SetMonData + b _08060D88 + .align 2, 0 +_08060C74: .4byte 0x020243E8 +_08060C78: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060C90 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x17 + bl SetMonData + b _08060D88 + .align 2, 0 +_08060C90: .4byte 0x020243E8 +_08060C94: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060CAC + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x18 + bl SetMonData + b _08060D88 + .align 2, 0 +_08060CAC: .4byte 0x020243E8 +_08060CB0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060CC8 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x21 + bl SetMonData + b _08060D88 + .align 2, 0 +_08060CC8: .4byte 0x020243E8 +_08060CCC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060CE4 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x2f + bl SetMonData + b _08060D88 + .align 2, 0 +_08060CE4: .4byte 0x020243E8 +_08060CE8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060D00 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x30 + bl SetMonData + b _08060D88 + .align 2, 0 +_08060D00: .4byte 0x020243E8 +_08060D04: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060D1C + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x32 + bl SetMonData + b _08060D88 + .align 2, 0 +_08060D1C: .4byte 0x020243E8 +_08060D20: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060D38 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x33 + bl SetMonData + b _08060D88 + .align 2, 0 +_08060D38: .4byte 0x020243E8 +_08060D3C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060D54 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x34 + bl SetMonData + b _08060D88 + .align 2, 0 +_08060D54: .4byte 0x020243E8 +_08060D58: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060D70 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x35 + bl SetMonData + b _08060D88 + .align 2, 0 +_08060D70: .4byte 0x020243E8 +_08060D74: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08060D98 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x36 + bl SetMonData +_08060D88: + add sp, #0x38 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08060D98: .4byte 0x020243E8 + thumb_func_end SetOpponentMonData + + thumb_func_start OpponentHandleSetRawMonData +OpponentHandleSetRawMonData: @ 0x08060D9C + push {r4, r5, r6, r7, lr} + ldr r1, _08060E00 + ldr r7, _08060E04 + ldrb r2, [r7] + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + adds r3, r1, #0 + muls r3, r0, r3 + ldr r4, _08060E08 + lsls r2, r2, #9 + adds r0, r4, #1 + adds r0, r2, r0 + ldrb r0, [r0] + ldr r1, _08060E0C + adds r0, r0, r1 + adds r5, r3, r0 + movs r3, #0 + adds r0, r4, #2 + adds r2, r2, r0 + ldrb r2, [r2] + cmp r3, r2 + bhs _08060DF4 + adds r6, r4, #0 + adds r2, r7, #0 + adds r4, r0, #0 +_08060DD2: + adds r1, r5, r3 + ldrb r0, [r2] + lsls r0, r0, #9 + adds r0, #3 + adds r0, r3, r0 + adds r0, r0, r6 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldrb r0, [r2] + lsls r0, r0, #9 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r3, r0 + blo _08060DD2 +_08060DF4: + bl OpponentBufferExecCompleted + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08060E00: .4byte 0x02023D12 +_08060E04: .4byte 0x02023D08 +_08060E08: .4byte 0x02022D08 +_08060E0C: .4byte 0x020243E8 + thumb_func_end OpponentHandleSetRawMonData + + thumb_func_start OpponentHandleLoadMonSprite +OpponentHandleLoadMonSprite: @ 0x08060E10 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r6, _08060F40 + ldrb r0, [r6] + lsls r0, r0, #1 + ldr r1, _08060F44 + adds r0, r0, r1 + ldrh r0, [r0] + movs r7, #0x64 + muls r0, r7, r0 + ldr r2, _08060F48 + mov sl, r2 + add r0, sl + movs r1, #0xb + bl GetMonData + mov r8, r0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + ldrb r1, [r6] + lsls r0, r1, #1 + ldr r2, _08060F44 + adds r0, r0, r2 + ldrh r0, [r0] + muls r0, r7, r0 + add r0, sl + bl BattleLoadOpponentMonSpriteGfx + ldrb r0, [r6] + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r0, r8 + bl SetMultiuseSpriteTemplateToPokemon + ldr r0, _08060F4C + mov sb, r0 + ldrb r0, [r6] + movs r1, #2 + bl GetBattlerSpriteCoord + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldrb r0, [r6] + bl GetBattlerSpriteDefault_Y + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldrb r0, [r6] + bl GetBattlerSpriteSubpriority + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r0, sb + adds r1, r5, #0 + adds r2, r4, #0 + bl CreateSprite + ldr r4, _08060F50 + ldrb r1, [r6] + adds r1, r1, r4 + strb r0, [r1] + ldr r5, _08060F54 + ldrb r0, [r6] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _08060F58 + strh r1, [r0, #0x24] + ldrb r2, [r6] + adds r0, r2, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r2, [r0, #0x2e] + ldrb r0, [r6] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + mov r1, r8 + strh r1, [r0, #0x32] + ldrb r3, [r6] + adds r0, r3, r4 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + lsls r3, r3, #4 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #5] + ldrb r2, [r6] + adds r4, r2, r4 + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _08060F5C + adds r2, r2, r1 + ldrb r1, [r2] + bl StartSpriteAnim + ldrb r4, [r6] + lsls r0, r4, #1 + ldr r2, _08060F44 + adds r0, r0, r2 + ldrh r0, [r0] + muls r0, r7, r0 + add r0, sl + movs r1, #0xb + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl SetBattlerShadowSpriteCallback + ldr r1, _08060F60 + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08060F64 + str r1, [r0] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08060F40: .4byte 0x02023D08 +_08060F44: .4byte 0x02023D12 +_08060F48: .4byte 0x020243E8 +_08060F4C: .4byte 0x02024640 +_08060F50: .4byte 0x02023E88 +_08060F54: .4byte 0x020205AC +_08060F58: .4byte 0x0000FF10 +_08060F5C: .4byte 0x02024188 +_08060F60: .4byte 0x03005AC0 +_08060F64: .4byte 0x0805F581 + thumb_func_end OpponentHandleLoadMonSprite + + thumb_func_start OpponentHandleSwitchInAnim +OpponentHandleSwitchInAnim: @ 0x08060F68 + push {r4, lr} + ldr r4, _08060FB0 + ldrb r0, [r4] + ldr r1, _08060FB4 + ldr r1, [r1] + adds r0, r0, r1 + adds r0, #0x5c + movs r1, #6 + strb r1, [r0] + ldr r1, _08060FB8 + ldrb r0, [r4] + lsls r2, r0, #1 + adds r2, r2, r1 + ldr r3, _08060FBC + lsls r0, r0, #9 + adds r1, r3, #1 + adds r0, r0, r1 + ldrb r0, [r0] + strh r0, [r2] + ldrb r0, [r4] + lsls r1, r0, #9 + adds r3, #2 + adds r1, r1, r3 + ldrb r1, [r1] + bl sub_08060FC8 + ldr r1, _08060FC0 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08060FC4 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08060FB0: .4byte 0x02023D08 +_08060FB4: .4byte 0x02024140 +_08060FB8: .4byte 0x02023D12 +_08060FBC: .4byte 0x02022D08 +_08060FC0: .4byte 0x03005AC0 +_08060FC4: .4byte 0x0805F9DD + thumb_func_end OpponentHandleSwitchInAnim + + thumb_func_start sub_08060FC8 +sub_08060FC8: @ 0x08060FC8 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r6, #0 + bl ClearTemporarySpeciesSpriteData + ldr r0, _08061130 + lsls r4, r6, #1 + adds r4, r4, r0 + ldr r0, _08061134 + lsls r1, r6, #9 + adds r0, #1 + adds r1, r1, r0 + ldrb r0, [r1] + strh r0, [r4] + ldrh r0, [r4] + movs r1, #0x64 + mov sb, r1 + mov r1, sb + muls r1, r0, r1 + adds r0, r1, #0 + ldr r5, _08061138 + adds r0, r0, r5 + movs r1, #0xb + bl GetMonData + mov r8, r0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + ldr r0, _0806113C + bl CreateInvisibleSpriteWithCallback + ldr r1, _08061140 + mov sl, r1 + add sl, r6 + mov r1, sl + strb r0, [r1] + ldrh r0, [r4] + mov r1, sb + muls r1, r0, r1 + adds r0, r1, #0 + adds r0, r0, r5 + adds r1, r6, #0 + bl BattleLoadOpponentMonSpriteGfx + adds r0, r6, #0 + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r0, r8 + bl SetMultiuseSpriteTemplateToPokemon + ldr r0, _08061144 + mov sb, r0 + adds r0, r6, #0 + movs r1, #2 + bl GetBattlerSpriteCoord + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + adds r0, r6, #0 + bl GetBattlerSpriteDefault_Y + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r6, #0 + bl GetBattlerSpriteSubpriority + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r0, sb + adds r1, r5, #0 + adds r2, r4, #0 + bl CreateSprite + ldr r4, _08061148 + adds r4, r6, r4 + strb r0, [r4] + ldr r5, _0806114C + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r6, [r0, #0x2e] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + mov r1, r8 + strh r1, [r0, #0x32] + mov r0, sl + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r1, [r4] + strh r1, [r0, #0x30] + mov r0, sl + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r6, [r0, #0x32] + ldrb r0, [r4] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + lsls r3, r6, #4 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #5] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _08061150 + adds r6, r6, r1 + ldrb r1, [r6] + bl StartSpriteAnim + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r5, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _08061154 + str r1, [r0] + movs r0, #0 + movs r1, #0xfe + bl DoPokeballSendOutAnimation + mov r1, sl + ldrb r2, [r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r1, #0x2e] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08061130: .4byte 0x02023D12 +_08061134: .4byte 0x02022D08 +_08061138: .4byte 0x020243E8 +_0806113C: .4byte 0x0805D331 +_08061140: .4byte 0x03005ADC +_08061144: .4byte 0x02024640 +_08061148: .4byte 0x02023E88 +_0806114C: .4byte 0x020205AC +_08061150: .4byte 0x02024188 +_08061154: .4byte 0x08007141 + thumb_func_end sub_08060FC8 + + thumb_func_start OpponentHandleReturnMonToBall +OpponentHandleReturnMonToBall: @ 0x08061158 + push {r4, r5, r6, lr} + ldr r1, _0806118C + ldr r6, _08061190 + ldrb r2, [r6] + lsls r0, r2, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r3, [r0] + cmp r3, #0 + bne _080611A0 + ldr r0, _08061194 + ldr r0, [r0] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + strb r3, [r0, #4] + ldr r1, _08061198 + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0806119C + str r1, [r0] + b _080611DC + .align 2, 0 +_0806118C: .4byte 0x02022D08 +_08061190: .4byte 0x02023D08 +_08061194: .4byte 0x02024174 +_08061198: .4byte 0x03005AC0 +_0806119C: .4byte 0x080611F1 +_080611A0: + ldr r5, _080611E4 + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _080611E8 + adds r0, r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + ldrb r0, [r6] + bl HideBattlerShadowSprite + ldr r1, _080611EC + ldrb r0, [r6] + adds r0, r0, r1 + ldrb r0, [r0] + bl SetHealthboxSpriteInvisible + bl OpponentBufferExecCompleted +_080611DC: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080611E4: .4byte 0x02023E88 +_080611E8: .4byte 0x020205AC +_080611EC: .4byte 0x03005AD0 + thumb_func_end OpponentHandleReturnMonToBall + + thumb_func_start OpponentHandleHidePartyStatusSummary +OpponentHandleHidePartyStatusSummary: @ 0x080611F0 + push {r4, r5, r6, lr} + ldr r6, _08061210 + ldr r4, [r6] + ldr r5, _08061214 + ldrb r2, [r5] + ldr r1, [r4, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r3, r0, r1 + ldrb r0, [r3, #4] + cmp r0, #0 + beq _08061218 + cmp r0, #1 + beq _08061246 + b _0806126E + .align 2, 0 +_08061210: .4byte 0x02024174 +_08061214: .4byte 0x02023D08 +_08061218: + ldr r1, [r4] + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08061232 + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #5 + bl InitAndLaunchSpecialAnimation +_08061232: + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #1 + strb r1, [r0, #4] + b _0806126E +_08061246: + ldrb r1, [r3] + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0806126E + strb r0, [r3, #4] + ldrb r2, [r5] + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #2 + bl InitAndLaunchSpecialAnimation + ldr r1, _08061274 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08061278 + str r1, [r0] +_0806126E: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08061274: .4byte 0x03005AC0 +_08061278: .4byte 0x0805F6F5 + thumb_func_end OpponentHandleHidePartyStatusSummary + + thumb_func_start OpponentHandleDrawTrainerPic +OpponentHandleDrawTrainerPic: @ 0x0806127C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r0, _08061298 + ldr r2, [r0] + movs r0, #0x80 + lsls r0, r0, #0x14 + ands r0, r2 + cmp r0, #0 + beq _0806129C + bl GetSecretBaseTrainerClass + b _08061346 + .align 2, 0 +_08061298: .4byte 0x02022C90 +_0806129C: + ldr r3, _080612AC + ldrh r1, [r3] + ldr r0, _080612B0 + cmp r1, r0 + bne _080612B4 + bl PrintHyphens + b _08061346 + .align 2, 0 +_080612AC: .4byte 0x0203886A +_080612B0: .4byte 0x000003FE +_080612B4: + movs r0, #0x80 + lsls r0, r0, #0x13 + ands r0, r2 + cmp r0, #0 + beq _080612F4 + movs r0, #0x80 + lsls r0, r0, #8 + ands r2, r0 + cmp r2, #0 + beq _080612EC + ldr r0, _080612D8 + ldrb r0, [r0] + cmp r0, #1 + bne _080612DC + ldrh r0, [r3] + bl GetTrainerHillTrainerFrontSpriteId + b _08061346 + .align 2, 0 +_080612D8: .4byte 0x02023D08 +_080612DC: + ldr r0, _080612E8 + ldrh r0, [r0] + bl GetTrainerHillTrainerFrontSpriteId + b _08061346 + .align 2, 0 +_080612E8: .4byte 0x0203886C +_080612EC: + ldrh r0, [r3] + bl GetTrainerHillTrainerFrontSpriteId + b _08061346 +_080612F4: + ldr r0, _08061314 + ands r0, r2 + cmp r0, #0 + beq _08061338 + ldr r0, _08061318 + ands r2, r0 + cmp r2, #0 + beq _08061330 + ldr r0, _0806131C + ldrb r0, [r0] + cmp r0, #1 + bne _08061320 + ldrh r0, [r3] + bl GetFrontierTrainerFrontSpriteId + b _08061346 + .align 2, 0 +_08061314: .4byte 0x003F0100 +_08061318: .4byte 0x00808000 +_0806131C: .4byte 0x02023D08 +_08061320: + ldr r0, _0806132C + ldrh r0, [r0] + bl GetFrontierTrainerFrontSpriteId + b _08061346 + .align 2, 0 +_0806132C: .4byte 0x0203886C +_08061330: + ldrh r0, [r3] + bl GetFrontierTrainerFrontSpriteId + b _08061346 +_08061338: + movs r0, #0x80 + lsls r0, r0, #4 + ands r0, r2 + cmp r0, #0 + beq _0806134C + bl GetMonCountForBattleMode +_08061346: + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + b _0806137E +_0806134C: + movs r0, #0x80 + lsls r0, r0, #8 + ands r2, r0 + cmp r2, #0 + beq _08061374 + ldr r0, _08061368 + ldrb r0, [r0] + cmp r0, #1 + beq _08061374 + ldr r1, _0806136C + ldr r0, _08061370 + ldrh r0, [r0] + b _08061378 + .align 2, 0 +_08061368: .4byte 0x02023D08 +_0806136C: .4byte 0x082E383C +_08061370: .4byte 0x0203886C +_08061374: + ldr r1, _080613A0 + ldrh r0, [r3] +_08061378: + lsls r0, r0, #5 + adds r0, r0, r1 + ldrb r4, [r0, #3] +_0806137E: + ldr r0, _080613A4 + ldr r0, [r0] + ldr r1, _080613A8 + ands r0, r1 + cmp r0, #0 + beq _080613B0 + ldr r0, _080613AC + ldrb r0, [r0] + bl GetBattlerPosition + movs r1, #2 + ands r1, r0 + movs r7, #0xc8 + cmp r1, #0 + beq _080613B2 + movs r7, #0x98 + b _080613B2 + .align 2, 0 +_080613A0: .4byte 0x082E383C +_080613A4: .4byte 0x02022C90 +_080613A8: .4byte 0x00008040 +_080613AC: .4byte 0x02023D08 +_080613B0: + movs r7, #0xb0 +_080613B2: + mov r8, r4 + ldr r5, _08061498 + ldrb r1, [r5] + mov r0, r8 + bl DecompressTrainerFrontPic + ldrb r0, [r5] + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r0, r8 + bl SetMultiuseSpriteTemplateToTrainerBack + ldr r6, _0806149C + mov sb, r7 + ldr r1, _080614A0 + mov r2, r8 + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r0, [r0] + movs r4, #8 + subs r4, r4, r0 + lsls r4, r4, #0x12 + movs r0, #0xa0 + lsls r0, r0, #0xe + adds r4, r4, r0 + asrs r4, r4, #0x10 + ldrb r0, [r5] + bl GetBattlerSpriteSubpriority + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r6, #0 + mov r1, sb + adds r2, r4, #0 + bl CreateSprite + ldr r6, _080614A4 + ldrb r1, [r5] + adds r1, r1, r6 + strb r0, [r1] + ldr r4, _080614A8 + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _080614AC + strh r1, [r0, #0x24] + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #2 + strh r1, [r0, #0x2e] + ldr r1, _080614B0 + mov r2, r8 + lsls r0, r2, #3 + adds r0, r0, r1 + ldrh r0, [r0, #4] + bl IndexOfSpritePaletteTag + ldrb r1, [r5] + adds r1, r1, r6 + ldrb r1, [r1] + lsls r2, r1, #4 + adds r2, r2, r1 + lsls r2, r2, #2 + adds r2, r2, r4 + lsls r0, r0, #4 + ldrb r3, [r2, #5] + movs r1, #0xf + ands r1, r3 + orrs r1, r0 + strb r1, [r2, #5] + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + mov r1, r8 + strh r1, [r0, #6] + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, #0x1c + adds r0, r0, r4 + ldr r1, _080614B4 + str r1, [r0] + ldr r1, _080614B8 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _080614BC + str r1, [r0] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08061498: .4byte 0x02023D08 +_0806149C: .4byte 0x02024640 +_080614A0: .4byte 0x082D8D70 +_080614A4: .4byte 0x02023E88 +_080614A8: .4byte 0x020205AC +_080614AC: .4byte 0x0000FF10 +_080614B0: .4byte 0x082D91CC +_080614B4: .4byte 0x0805D3C9 +_080614B8: .4byte 0x03005AC0 +_080614BC: .4byte 0x0805EDED + thumb_func_end OpponentHandleDrawTrainerPic + + thumb_func_start OpponentHandleTrainerSlide +OpponentHandleTrainerSlide: @ 0x080614C0 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + ldr r0, _080614DC + ldr r2, [r0] + movs r0, #0x80 + lsls r0, r0, #0x14 + ands r0, r2 + cmp r0, #0 + beq _080614E0 + bl GetSecretBaseTrainerClass + b _0806158A + .align 2, 0 +_080614DC: .4byte 0x02022C90 +_080614E0: + ldr r3, _080614F0 + ldrh r1, [r3] + ldr r0, _080614F4 + cmp r1, r0 + bne _080614F8 + bl PrintHyphens + b _0806158A + .align 2, 0 +_080614F0: .4byte 0x0203886A +_080614F4: .4byte 0x000003FE +_080614F8: + movs r0, #0x80 + lsls r0, r0, #0x13 + ands r0, r2 + cmp r0, #0 + beq _08061538 + movs r0, #0x80 + lsls r0, r0, #8 + ands r2, r0 + cmp r2, #0 + beq _08061530 + ldr r0, _0806151C + ldrb r0, [r0] + cmp r0, #1 + bne _08061520 + ldrh r0, [r3] + bl GetTrainerHillTrainerFrontSpriteId + b _0806158A + .align 2, 0 +_0806151C: .4byte 0x02023D08 +_08061520: + ldr r0, _0806152C + ldrh r0, [r0] + bl GetTrainerHillTrainerFrontSpriteId + b _0806158A + .align 2, 0 +_0806152C: .4byte 0x0203886C +_08061530: + ldrh r0, [r3] + bl GetTrainerHillTrainerFrontSpriteId + b _0806158A +_08061538: + ldr r0, _08061558 + ands r0, r2 + cmp r0, #0 + beq _0806157C + ldr r0, _0806155C + ands r2, r0 + cmp r2, #0 + beq _08061574 + ldr r0, _08061560 + ldrb r0, [r0] + cmp r0, #1 + bne _08061564 + ldrh r0, [r3] + bl GetFrontierTrainerFrontSpriteId + b _0806158A + .align 2, 0 +_08061558: .4byte 0x003F0100 +_0806155C: .4byte 0x00808000 +_08061560: .4byte 0x02023D08 +_08061564: + ldr r0, _08061570 + ldrh r0, [r0] + bl GetFrontierTrainerFrontSpriteId + b _0806158A + .align 2, 0 +_08061570: .4byte 0x0203886C +_08061574: + ldrh r0, [r3] + bl GetFrontierTrainerFrontSpriteId + b _0806158A +_0806157C: + movs r0, #0x80 + lsls r0, r0, #4 + ands r0, r2 + cmp r0, #0 + beq _08061590 + bl GetMonCountForBattleMode +_0806158A: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _080615C2 +_08061590: + movs r0, #0x80 + lsls r0, r0, #8 + ands r2, r0 + cmp r2, #0 + beq _080615B8 + ldr r0, _080615AC + ldrb r0, [r0] + cmp r0, #1 + beq _080615B8 + ldr r1, _080615B0 + ldr r0, _080615B4 + ldrh r0, [r0] + b _080615BC + .align 2, 0 +_080615AC: .4byte 0x02023D08 +_080615B0: .4byte 0x082E383C +_080615B4: .4byte 0x0203886C +_080615B8: + ldr r1, _080616A8 + ldrh r0, [r3] +_080615BC: + lsls r0, r0, #5 + adds r0, r0, r1 + ldrb r0, [r0, #3] +_080615C2: + mov r8, r0 + ldr r6, _080616AC + ldrb r1, [r6] + bl DecompressTrainerFrontPic + ldrb r0, [r6] + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r0, r8 + bl SetMultiuseSpriteTemplateToTrainerBack + ldr r0, _080616B0 + ldr r2, _080616B4 + mov r3, r8 + lsls r1, r3, #2 + adds r1, r1, r2 + ldrb r1, [r1] + movs r2, #8 + subs r2, r2, r1 + lsls r2, r2, #0x12 + movs r1, #0xa0 + lsls r1, r1, #0xe + adds r2, r2, r1 + asrs r2, r2, #0x10 + movs r1, #0xb0 + movs r3, #0x1e + bl CreateSprite + ldr r5, _080616B8 + ldrb r1, [r6] + adds r1, r1, r5 + strb r0, [r1] + ldr r4, _080616BC + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0x60 + strh r1, [r0, #0x24] + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r0, #0x20] + adds r1, #0x20 + strh r1, [r0, #0x20] + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _080616C0 + strh r1, [r0, #0x2e] + ldr r1, _080616C4 + mov r2, r8 + lsls r0, r2, #3 + adds r0, r0, r1 + ldrh r0, [r0, #4] + bl IndexOfSpritePaletteTag + ldrb r1, [r6] + adds r1, r1, r5 + ldrb r1, [r1] + lsls r2, r1, #4 + adds r2, r2, r1 + lsls r2, r2, #2 + adds r2, r2, r4 + lsls r0, r0, #4 + ldrb r3, [r2, #5] + movs r1, #0xf + ands r1, r3 + orrs r1, r0 + strb r1, [r2, #5] + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + mov r3, r8 + strh r3, [r0, #6] + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, #0x1c + adds r0, r0, r4 + ldr r1, _080616C8 + str r1, [r0] + ldr r1, _080616CC + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _080616D0 + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080616A8: .4byte 0x082E383C +_080616AC: .4byte 0x02023D08 +_080616B0: .4byte 0x02024640 +_080616B4: .4byte 0x082D8D70 +_080616B8: .4byte 0x02023E88 +_080616BC: .4byte 0x020205AC +_080616C0: .4byte 0x0000FFFE +_080616C4: .4byte 0x082D91CC +_080616C8: .4byte 0x0805D3C9 +_080616CC: .4byte 0x03005AC0 +_080616D0: .4byte 0x0805EE25 + thumb_func_end OpponentHandleTrainerSlide + + thumb_func_start OpponentHandleTrainerSlideBack +OpponentHandleTrainerSlideBack: @ 0x080616D4 + push {r4, r5, r6, lr} + ldr r6, _08061764 + ldr r4, _08061768 + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r5, _0806176C + adds r0, r0, r5 + bl SetSpritePrimaryCoordsFromSecondaryCoords + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0x23 + strh r1, [r0, #0x2e] + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0x8c + lsls r1, r1, #1 + strh r1, [r0, #0x32] + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrh r1, [r0, #0x22] + strh r1, [r0, #0x36] + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r5, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _08061770 + str r1, [r0] + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _08061774 + bl StoreSpriteCallbackInData6 + ldr r1, _08061778 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0806177C + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08061764: .4byte 0x02023E88 +_08061768: .4byte 0x02023D08 +_0806176C: .4byte 0x020205AC +_08061770: .4byte 0x080A67B5 +_08061774: .4byte 0x08007141 +_08061778: .4byte 0x03005AC0 +_0806177C: .4byte 0x0805EE5D + thumb_func_end OpponentHandleTrainerSlideBack + + thumb_func_start OpponentHandleFaintAnimation +OpponentHandleFaintAnimation: @ 0x08061780 + push {r4, r5, r6, lr} + ldr r6, _080617CC + ldr r4, [r6] + ldr r5, _080617D0 + ldrb r2, [r5] + ldr r0, [r4, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r3, r1, r0 + ldrb r0, [r3, #4] + cmp r0, #0 + bne _080617D4 + ldr r1, [r4] + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080617B4 + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #5 + bl InitAndLaunchSpecialAnimation +_080617B4: + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #4] + adds r1, #1 + strb r1, [r0, #4] + b _08061810 + .align 2, 0 +_080617CC: .4byte 0x02024174 +_080617D0: .4byte 0x02023D08 +_080617D4: + ldrb r1, [r3] + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _08061810 + strb r0, [r3, #4] + movs r0, #0x10 + movs r1, #0x3f + bl PlaySE12WithPanning + ldr r2, _08061818 + ldr r1, _0806181C + ldrb r0, [r5] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, _08061820 + str r1, [r0] + ldr r1, _08061824 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08061828 + str r1, [r0] +_08061810: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08061818: .4byte 0x020205AC +_0806181C: .4byte 0x02023E88 +_08061820: .4byte 0x08039579 +_08061824: .4byte 0x03005AC0 +_08061828: .4byte 0x0805F6B1 + thumb_func_end OpponentHandleFaintAnimation + + thumb_func_start OpponentHandlePaletteFade +OpponentHandlePaletteFade: @ 0x0806182C + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end OpponentHandlePaletteFade + + thumb_func_start OpponentHandlePause +OpponentHandlePause: @ 0x08061838 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end OpponentHandlePause + + thumb_func_start OpponentHandleSuccessBallThrowAnim +OpponentHandleSuccessBallThrowAnim: @ 0x08061844 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end OpponentHandleSuccessBallThrowAnim + + thumb_func_start OpponentHandleChosenMonReturnValue +OpponentHandleChosenMonReturnValue: @ 0x08061850 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end OpponentHandleChosenMonReturnValue + + thumb_func_start OpponentHandleMoveAnimation +OpponentHandleMoveAnimation: @ 0x0806185C + push {r4, r5, r6, lr} + ldr r6, _08061940 + ldrb r0, [r6] + bl mplay_80342A4 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0806186E + b _08061982 +_0806186E: + ldr r0, _08061944 + mov ip, r0 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r0, #1 + adds r0, r2, r0 + ldrb r0, [r0] + mov r1, ip + adds r1, #2 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + ldr r5, _08061948 + mov r1, ip + adds r1, #3 + adds r2, r2, r1 + ldrb r1, [r2] + strb r1, [r5] + ldr r4, _0806194C + ldrb r2, [r6] + lsls r2, r2, #9 + mov r1, ip + adds r1, #4 + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, ip + adds r1, #5 + adds r2, r2, r1 + ldrb r1, [r2] + lsls r1, r1, #8 + orrs r3, r1 + strh r3, [r4] + ldr r4, _08061950 + ldrb r2, [r6] + lsls r2, r2, #9 + mov r1, ip + adds r1, #6 + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, ip + adds r1, #7 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r3, r1 + mov r1, ip + adds r1, #8 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, r1, #0x10 + orrs r3, r1 + mov r1, ip + adds r1, #9 + adds r2, r2, r1 + ldrb r1, [r2] + lsls r1, r1, #0x18 + orrs r3, r1 + str r3, [r4] + ldr r3, _08061954 + ldrb r1, [r6] + lsls r1, r1, #9 + mov r2, ip + adds r2, #0xa + adds r1, r1, r2 + ldrb r1, [r1] + strb r1, [r3] + ldr r4, _08061958 + ldrb r2, [r6] + lsls r2, r2, #9 + mov r1, ip + adds r1, #0xc + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, ip + adds r1, #0xd + adds r2, r2, r1 + ldrb r1, [r2] + lsls r1, r1, #8 + orrs r3, r1 + strh r3, [r4] + ldr r3, _0806195C + ldrb r2, [r6] + lsls r2, r2, #9 + mov r1, ip + adds r1, #0x10 + adds r2, r2, r1 + str r2, [r3] + ldr r3, _08061960 + ldrb r1, [r6] + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r2, [r2] + str r2, [r1] + ldrb r1, [r5] + bl IsMoveWithoutAnimation + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + beq _08061964 + bl OpponentBufferExecCompleted + b _08061982 + .align 2, 0 +_08061940: .4byte 0x02023D08 +_08061944: .4byte 0x02022D08 +_08061948: .4byte 0x020380D2 +_0806194C: .4byte 0x020380A8 +_08061950: .4byte 0x020380A4 +_08061954: .4byte 0x020380BA +_08061958: .4byte 0x020380BC +_0806195C: .4byte 0x020380A0 +_08061960: .4byte 0x02024160 +_08061964: + ldr r0, _08061988 + ldr r0, [r0] + ldrb r1, [r6] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strb r3, [r0, #4] + ldr r1, _0806198C + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08061990 + str r1, [r0] +_08061982: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08061988: .4byte 0x02024174 +_0806198C: .4byte 0x03005AC0 +_08061990: .4byte 0x08061995 + thumb_func_end OpponentHandleMoveAnimation + + thumb_func_start OpponentDoMoveAnimation +OpponentDoMoveAnimation: @ 0x08061994 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r2, _080619E0 + ldr r6, _080619E4 + ldrb r3, [r6] + lsls r1, r3, #9 + adds r0, r2, #1 + mov sl, r0 + adds r0, r1, r0 + ldrb r4, [r0] + adds r5, r2, #2 + mov sb, r5 + adds r0, r1, r5 + ldrb r0, [r0] + lsls r0, r0, #8 + orrs r4, r0 + adds r2, #0xb + adds r1, r1, r2 + ldrb r1, [r1] + mov r8, r1 + ldr r7, _080619E8 + ldr r5, [r7] + ldr r1, [r5, #4] + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r2, [r0, #4] + cmp r2, #1 + beq _08061A2C + cmp r2, #1 + bgt _080619EC + cmp r2, #0 + beq _080619F6 + b _08061B08 + .align 2, 0 +_080619E0: .4byte 0x02022D08 +_080619E4: .4byte 0x02023D08 +_080619E8: .4byte 0x02024174 +_080619EC: + cmp r2, #2 + beq _08061A56 + cmp r2, #3 + beq _08061ACC + b _08061B08 +_080619F6: + ldr r1, [r5] + lsls r0, r3, #2 + adds r1, r0, r1 + ldrb r2, [r1] + movs r0, #0xc + ands r0, r2 + cmp r0, #4 + bne _08061A18 + movs r0, #8 + orrs r0, r2 + strb r0, [r1] + ldrb r2, [r6] + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #5 + bl InitAndLaunchSpecialAnimation +_08061A18: + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #1 + strb r1, [r0, #4] + b _08061B08 +_08061A2C: + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08061B08 + movs r0, #0 + bl sub_0805E7B8 + adds r0, r4, #0 + bl DoMoveAnim + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #2 + strb r1, [r0, #4] + b _08061B08 +_08061A56: + ldr r0, _08061ABC + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _08061AC0 + ldrb r0, [r0] + cmp r0, #0 + bne _08061B08 + movs r0, #1 + bl sub_0805E7B8 + ldr r0, [r7] + ldrb r2, [r6] + ldr r1, [r0] + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08061AA4 + mov r0, r8 + cmp r0, #1 + bhi _08061AA4 + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #6 + bl InitAndLaunchSpecialAnimation + ldr r0, [r7] + ldrb r1, [r6] + ldr r0, [r0] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] +_08061AA4: + ldr r0, _08061AC4 + ldr r2, [r0] + ldr r0, _08061AC8 + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #3 + strb r1, [r0, #4] + b _08061B08 + .align 2, 0 +_08061ABC: .4byte 0x02038098 +_08061AC0: .4byte 0x0203809D +_08061AC4: .4byte 0x02024174 +_08061AC8: .4byte 0x02023D08 +_08061ACC: + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _08061B08 + bl CopyAllBattleSpritesInvisibilities + ldrb r0, [r6] + lsls r2, r0, #9 + mov r3, sl + adds r1, r2, r3 + ldrb r1, [r1] + add r2, sb + ldrb r2, [r2] + lsls r2, r2, #8 + orrs r1, r2 + bl TrySetBehindSubstituteSpriteBit + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strb r4, [r0, #4] + bl OpponentBufferExecCompleted +_08061B08: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end OpponentDoMoveAnimation + + thumb_func_start OpponentHandlePrintString +OpponentHandlePrintString: @ 0x08061B18 + push {r4, r5, lr} + ldr r0, _08061B58 + movs r1, #0 + strh r1, [r0] + ldr r0, _08061B5C + strh r1, [r0] + ldr r5, _08061B60 + ldrb r4, [r5] + lsls r4, r4, #9 + ldr r0, _08061B64 + adds r4, r4, r0 + ldrh r0, [r4] + bl BufferStringBattle + ldr r0, _08061B68 + movs r1, #0 + bl sub_0814FA04 + ldr r1, _08061B6C + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08061B70 + str r1, [r0] + ldrb r0, [r5] + ldrh r1, [r4] + bl BattleArena_DeductMindPoints + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08061B58: .4byte 0x02022AC8 +_08061B5C: .4byte 0x02022ACA +_08061B60: .4byte 0x02023D08 +_08061B64: .4byte 0x02022D0A +_08061B68: .4byte 0x02022AE0 +_08061B6C: .4byte 0x03005AC0 +_08061B70: .4byte 0x0805F769 + thumb_func_end OpponentHandlePrintString + + thumb_func_start OpponentHandleCmd23 +OpponentHandleCmd23: @ 0x08061B74 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end OpponentHandleCmd23 + + thumb_func_start OpponentHandleChooseAction +OpponentHandleChooseAction: @ 0x08061B80 + push {lr} + bl AI_TrySwitchOrUseItem + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end OpponentHandleChooseAction + + thumb_func_start OpponentHandleCmd32 +OpponentHandleCmd32: @ 0x08061B90 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end OpponentHandleCmd32 + + thumb_func_start OpponentHandleChooseMove +OpponentHandleChooseMove: @ 0x08061B9C + push {r4, r5, r6, lr} + ldr r0, _08061BC4 + ldr r2, [r0] + movs r0, #0x80 + lsls r0, r0, #0xa + ands r0, r2 + cmp r0, #0 + beq _08061BC8 + bl ChooseMoveAndTargetInBattlePalace + adds r2, r0, #0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + movs r0, #1 + movs r1, #0xa +_08061BBA: + bl BtlController_EmitTwoReturnValues +_08061BBE: + bl OpponentBufferExecCompleted + b _08061D3A + .align 2, 0 +_08061BC4: .4byte 0x02022C90 +_08061BC8: + ldr r0, _08061BF8 + ldrb r0, [r0] + lsls r0, r0, #9 + ldr r1, _08061BFC + adds r5, r0, r1 + movs r0, #0x93 + lsls r0, r0, #3 + ands r2, r0 + cmp r2, #0 + beq _08061CA8 + movs r0, #0xf + bl BattleAI_SetupAIData + bl BattleAI_ChooseMoveOrAction + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #5 + beq _08061C06 + cmp r4, #5 + bgt _08061C00 + cmp r4, #4 + beq _08061C0C + b _08061C24 + .align 2, 0 +_08061BF8: .4byte 0x02023D08 +_08061BFC: .4byte 0x02022D0C +_08061C00: + cmp r4, #6 + beq _08061C14 + b _08061C24 +_08061C06: + movs r0, #1 + movs r1, #4 + b _08061C10 +_08061C0C: + movs r0, #1 + movs r1, #3 +_08061C10: + movs r2, #0 + b _08061BBA +_08061C14: + ldr r0, _08061C20 + ldrb r2, [r0] + movs r0, #1 + movs r1, #0xf + b _08061BBA + .align 2, 0 +_08061C20: .4byte 0x02023EB0 +_08061C24: + ldr r3, _08061C94 + lsls r0, r4, #1 + adds r2, r5, r0 + ldrh r1, [r2] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #6] + movs r0, #0x12 + ands r0, r1 + cmp r0, #0 + beq _08061C46 + ldr r0, _08061C98 + ldr r1, _08061C9C + ldrb r1, [r1] + strb r1, [r0] +_08061C46: + ldrh r1, [r2] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #6] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08061C80 + movs r0, #0 + bl GetBattlerAtPosition + ldr r5, _08061C98 + strb r0, [r5] + ldr r0, _08061CA0 + ldrb r1, [r0] + ldr r2, _08061CA4 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _08061C80 + movs r0, #2 + bl GetBattlerAtPosition + strb r0, [r5] +_08061C80: + ldr r0, _08061C98 + ldrb r0, [r0] + lsls r0, r0, #8 + orrs r4, r0 + movs r0, #1 + movs r1, #0xa + adds r2, r4, #0 + bl BtlController_EmitTwoReturnValues + b _08061BBE + .align 2, 0 +_08061C94: .4byte 0x082ED220 +_08061C98: .4byte 0x02023EB0 +_08061C9C: .4byte 0x02023D08 +_08061CA0: .4byte 0x02023EB4 +_08061CA4: .4byte 0x082FACB4 +_08061CA8: + movs r6, #3 +_08061CAA: + bl Random + adds r4, r0, #0 + ands r4, r6 + lsls r0, r4, #1 + adds r0, r5, r0 + ldrh r2, [r0] + cmp r2, #0 + beq _08061CAA + ldr r1, _08061CE4 + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #6] + movs r0, #0x12 + ands r0, r1 + cmp r0, #0 + beq _08061CEC + ldr r0, _08061CE8 + ldrb r0, [r0] + lsls r0, r0, #8 + orrs r4, r0 + movs r0, #1 + movs r1, #0xa + adds r2, r4, #0 + bl BtlController_EmitTwoReturnValues + b _08061D36 + .align 2, 0 +_08061CE4: .4byte 0x082ED220 +_08061CE8: .4byte 0x02023D08 +_08061CEC: + ldr r0, _08061D1C + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08061D20 + bl Random + movs r1, #2 + ands r1, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r1, #0 + bl GetBattlerAtPosition + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x10 + orrs r2, r4 + movs r0, #1 + movs r1, #0xa + bl BtlController_EmitTwoReturnValues + b _08061D36 + .align 2, 0 +_08061D1C: .4byte 0x02022C90 +_08061D20: + movs r0, #0 + bl GetBattlerAtPosition + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x10 + orrs r2, r4 + movs r0, #1 + movs r1, #0xa + bl BtlController_EmitTwoReturnValues +_08061D36: + bl OpponentBufferExecCompleted +_08061D3A: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end OpponentHandleChooseMove + + thumb_func_start OpponentHandleCmd40 +OpponentHandleCmd40: @ 0x08061D40 + push {lr} + ldr r0, _08061D64 + ldrb r0, [r0] + lsrs r0, r0, #1 + ldr r1, _08061D68 + ldr r1, [r1] + lsls r0, r0, #1 + adds r0, r0, r1 + adds r0, #0xc0 + ldrb r1, [r0] + movs r0, #1 + bl BtlController_EmitOneReturnValue + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_08061D64: .4byte 0x02023D08 +_08061D68: .4byte 0x02024140 + thumb_func_end OpponentHandleCmd40 + + thumb_func_start OpponentHandleChoosePokemon +OpponentHandleChoosePokemon: @ 0x08061D6C + push {r4, r5, r6, r7, lr} + ldr r0, _08061DAC + ldrb r0, [r0] + ldr r1, _08061DB0 + ldr r1, [r1] + adds r0, r0, r1 + movs r2, #0xa5 + lsls r2, r2, #2 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, #6 + bne _08061E38 + bl GetMostSuitableMonToSwitchInto + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #6 + bne _08061E3E + ldr r0, _08061DB4 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08061DB8 + movs r0, #1 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r7, r5, #0 + b _08061DCC + .align 2, 0 +_08061DAC: .4byte 0x02023D08 +_08061DB0: .4byte 0x02024140 +_08061DB4: .4byte 0x02022C90 +_08061DB8: + movs r0, #1 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r0, #3 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_08061DCC: + ldr r0, _08061DE8 + ldr r0, [r0] + ldr r1, _08061DEC + ands r0, r1 + cmp r0, #0 + beq _08061DF8 + ldr r0, _08061DF0 + ldrb r0, [r0] + cmp r0, #1 + bne _08061DF4 + movs r0, #0 + movs r6, #3 + b _08061DFC + .align 2, 0 +_08061DE8: .4byte 0x02022C90 +_08061DEC: .4byte 0x00808000 +_08061DF0: .4byte 0x02023D08 +_08061DF4: + movs r0, #3 + b _08061DFA +_08061DF8: + movs r0, #0 +_08061DFA: + movs r6, #6 +_08061DFC: + adds r4, r0, #0 + b _08061E02 +_08061E00: + adds r4, #1 +_08061E02: + cmp r4, r6 + bge _08061E3E + movs r0, #0x64 + muls r0, r4, r0 + ldr r1, _08061E30 + adds r0, r0, r1 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _08061E00 + ldr r1, _08061E34 + lsls r0, r7, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r4, r0 + beq _08061E00 + lsls r0, r5, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r4, r0 + beq _08061E00 + b _08061E3E + .align 2, 0 +_08061E30: .4byte 0x020243E8 +_08061E34: .4byte 0x02023D12 +_08061E38: + ldrb r4, [r1] + movs r0, #6 + strb r0, [r1] +_08061E3E: + ldr r0, _08061E64 + ldrb r0, [r0] + ldr r1, _08061E68 + ldr r1, [r1] + adds r0, r0, r1 + adds r0, #0x5c + strb r4, [r0] + lsls r1, r4, #0x18 + lsrs r1, r1, #0x18 + movs r0, #1 + movs r2, #0 + bl BtlController_EmitChosenMonReturnValue + bl OpponentBufferExecCompleted + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08061E64: .4byte 0x02023D08 +_08061E68: .4byte 0x02024140 + thumb_func_end OpponentHandleChoosePokemon + + thumb_func_start OpponentHandleCmd42 +OpponentHandleCmd42: @ 0x08061E6C + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end OpponentHandleCmd42 + + thumb_func_start OpponentHandleHealthBarUpdate +OpponentHandleHealthBarUpdate: @ 0x08061E78 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + movs r0, #0 + bl LoadBattleBarGfx + ldr r3, _08061EF0 + ldr r0, _08061EF4 + mov sb, r0 + ldrb r4, [r0] + lsls r2, r4, #9 + adds r0, r3, #3 + adds r0, r2, r0 + ldrb r1, [r0] + lsls r1, r1, #8 + adds r3, #2 + adds r2, r2, r3 + ldrb r0, [r2] + orrs r0, r1 + lsls r0, r0, #0x10 + asrs r7, r0, #0x10 + ldr r0, _08061EF8 + cmp r7, r0 + beq _08061F08 + ldr r6, _08061EFC + lsls r0, r4, #1 + adds r0, r0, r6 + ldrh r0, [r0] + movs r5, #0x64 + muls r0, r5, r0 + ldr r4, _08061F00 + adds r0, r0, r4 + movs r1, #0x3a + bl GetMonData + mov r8, r0 + mov r1, sb + ldrb r0, [r1] + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r0, [r0] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #0x39 + bl GetMonData + adds r3, r0, #0 + mov r1, sb + ldrb r0, [r1] + ldr r1, _08061F04 + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + mov r2, r8 + bl SetBattleBarStruct + b _08061F32 + .align 2, 0 +_08061EF0: .4byte 0x02022D08 +_08061EF4: .4byte 0x02023D08 +_08061EF8: .4byte 0x00007FFF +_08061EFC: .4byte 0x02023D12 +_08061F00: .4byte 0x020243E8 +_08061F04: .4byte 0x03005AD0 +_08061F08: + ldr r1, _08061F50 + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08061F54 + adds r0, r0, r1 + movs r1, #0x3a + bl GetMonData + adds r2, r0, #0 + mov r1, sb + ldrb r0, [r1] + ldr r1, _08061F58 + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + movs r3, #0 + bl SetBattleBarStruct +_08061F32: + ldr r1, _08061F5C + ldr r0, _08061F60 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08061F64 + str r1, [r0] + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08061F50: .4byte 0x02023D12 +_08061F54: .4byte 0x020243E8 +_08061F58: .4byte 0x03005AD0 +_08061F5C: .4byte 0x03005AC0 +_08061F60: .4byte 0x02023D08 +_08061F64: .4byte 0x0805F65D + thumb_func_end OpponentHandleHealthBarUpdate + + thumb_func_start OpponentHandleDMA3Transfer +OpponentHandleDMA3Transfer: @ 0x08061F68 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end OpponentHandleDMA3Transfer + + thumb_func_start OpponentHandleStatusIconUpdate +OpponentHandleStatusIconUpdate: @ 0x08061F74 + push {r4, lr} + ldr r4, _08061FD0 + ldrb r0, [r4] + bl mplay_80342A4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08061FC8 + ldr r0, _08061FD4 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + ldr r2, _08061FD8 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _08061FDC + adds r1, r1, r2 + movs r2, #9 + bl UpdateHealthboxAttribute + ldrb r2, [r4] + ldr r0, _08061FE0 + ldr r0, [r0] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r1, _08061FE4 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08061FE8 + str r1, [r0] +_08061FC8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08061FD0: .4byte 0x02023D08 +_08061FD4: .4byte 0x03005AD0 +_08061FD8: .4byte 0x02023D12 +_08061FDC: .4byte 0x020243E8 +_08061FE0: .4byte 0x02024174 +_08061FE4: .4byte 0x03005AC0 +_08061FE8: .4byte 0x0805FAA5 + thumb_func_end OpponentHandleStatusIconUpdate + + thumb_func_start OpponentHandleStatusAnimation +OpponentHandleStatusAnimation: @ 0x08061FEC + push {r4, r5, lr} + ldr r5, _08062044 + ldrb r0, [r5] + bl mplay_80342A4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806203C + ldr r4, _08062048 + ldrb r3, [r5] + lsls r3, r3, #9 + adds r0, r4, #1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, #2 + adds r1, r3, r1 + ldrb r1, [r1] + adds r2, r4, #3 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, r2, #8 + orrs r1, r2 + adds r2, r4, #4 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, r2, #0x10 + orrs r1, r2 + adds r4, #5 + adds r3, r3, r4 + ldrb r2, [r3] + lsls r2, r2, #0x18 + orrs r1, r2 + bl InitAndLaunchChosenStatusAnimation + ldr r1, _0806204C + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08062050 + str r1, [r0] +_0806203C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08062044: .4byte 0x02023D08 +_08062048: .4byte 0x02022D08 +_0806204C: .4byte 0x03005AC0 +_08062050: .4byte 0x0805FAA5 + thumb_func_end OpponentHandleStatusAnimation + + thumb_func_start OpponentHandleDataTransfer +OpponentHandleDataTransfer: @ 0x08062054 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end OpponentHandleDataTransfer + + thumb_func_start OpponentHandleEndBounceEffect +OpponentHandleEndBounceEffect: @ 0x08062060 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end OpponentHandleEndBounceEffect + + thumb_func_start OpponentHandleExpUpdate +OpponentHandleExpUpdate: @ 0x0806206C + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end OpponentHandleExpUpdate + + thumb_func_start OpponentHandleLinkStandbyMsg +OpponentHandleLinkStandbyMsg: @ 0x08062078 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end OpponentHandleLinkStandbyMsg + + thumb_func_start OpponentHandleOneReturnValue +OpponentHandleOneReturnValue: @ 0x08062084 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end OpponentHandleOneReturnValue + + thumb_func_start OpponentHandleOneReturnValue_Duplicate +OpponentHandleOneReturnValue_Duplicate: @ 0x08062090 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end OpponentHandleOneReturnValue_Duplicate + + thumb_func_start OpponentHandlePlayBGM +OpponentHandlePlayBGM: @ 0x0806209C + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end OpponentHandlePlayBGM + + thumb_func_start OpponentHandlePrintSelectionString +OpponentHandlePrintSelectionString: @ 0x080620A8 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end OpponentHandlePrintSelectionString + + thumb_func_start OpponentHandleResetActionMoveSelection +OpponentHandleResetActionMoveSelection: @ 0x080620B4 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end OpponentHandleResetActionMoveSelection + + thumb_func_start OpponentHandleStatusXor +OpponentHandleStatusXor: @ 0x080620C0 + push {lr} + ldr r2, _080620D8 + ldrb r1, [r2] + movs r0, #0x80 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_080620D8: .4byte 0x020229C0 + thumb_func_end OpponentHandleStatusXor + + thumb_func_start OpponentHandleTwoReturnValues +OpponentHandleTwoReturnValues: @ 0x080620DC + push {lr} + ldr r3, _08062108 + ldr r1, _0806210C + ldr r0, _08062110 + ldrb r0, [r0] + lsls r0, r0, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + ldrb r2, [r3] + movs r0, #0x80 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_08062108: .4byte 0x020229C0 +_0806210C: .4byte 0x02022D08 +_08062110: .4byte 0x02023D08 + thumb_func_end OpponentHandleTwoReturnValues + + thumb_func_start OpponentHandleUnknownYesNoBox +OpponentHandleUnknownYesNoBox: @ 0x08062114 + push {lr} + ldr r2, _08062128 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_08062128: .4byte 0x020229C0 + thumb_func_end OpponentHandleUnknownYesNoBox + + thumb_func_start sub_0806212C +sub_0806212C: @ 0x0806212C + push {lr} + ldr r3, _08062150 + ldr r1, [r3] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1f + movs r0, #1 + eors r1, r0 + lsls r1, r1, #7 + ldrb r2, [r3] + movs r0, #0x7f + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_08062150: .4byte 0x020229C0 + thumb_func_end sub_0806212C + + thumb_func_start sub_08062154 +sub_08062154: @ 0x08062154 + push {r4, lr} + ldr r3, _0806217C + ldr r2, _08062180 + ldr r4, _08062184 + ldrb r0, [r4] + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + bge _08062188 + bl OpponentBufferExecCompleted + b _080621B2 + .align 2, 0 +_0806217C: .4byte 0x020205AC +_08062180: .4byte 0x02023E88 +_08062184: .4byte 0x02023D08 +_08062188: + ldr r1, _080621B8 + movs r0, #1 + strb r0, [r1] + ldrb r0, [r4] + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r1, #0 + strh r1, [r0, #0x30] + ldrb r0, [r4] + bl DoHitAnimHealthboxEffect + ldr r1, _080621BC + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _080621C0 + str r1, [r0] +_080621B2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080621B8: .4byte 0x0202415D +_080621BC: .4byte 0x03005AC0 +_080621C0: .4byte 0x0805F781 + thumb_func_end sub_08062154 + + thumb_func_start OpponentCmdEnd +OpponentCmdEnd: @ 0x080621C4 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end OpponentCmdEnd + + thumb_func_start OpponentHandlePlaySE +OpponentHandlePlaySE: @ 0x080621D0 + push {r4, lr} + ldr r4, _0806220C + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + movs r3, #0x3f + cmp r0, #0 + bne _080621E4 + movs r3, #0xc0 +_080621E4: + ldr r2, _08062210 + ldrb r1, [r4] + lsls r1, r1, #9 + adds r0, r2, #1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, #2 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + lsls r1, r3, #0x18 + asrs r1, r1, #0x18 + bl PlaySE12WithPanning + bl OpponentBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0806220C: .4byte 0x02023D08 +_08062210: .4byte 0x02022D08 + thumb_func_end OpponentHandlePlaySE + + thumb_func_start OpponentHandlePlayFanfareOrBGM +OpponentHandlePlayFanfareOrBGM: @ 0x08062214 + push {r4, r5, lr} + ldr r4, _08062248 + ldr r5, _0806224C + ldrb r0, [r5] + lsls r3, r0, #9 + adds r0, r4, #3 + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, #0 + beq _08062250 + bl BattleStopLowHpSound + ldrb r1, [r5] + lsls r1, r1, #9 + adds r0, r4, #1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, r4, #2 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + bl PlayBGM + b _08062264 + .align 2, 0 +_08062248: .4byte 0x02022D08 +_0806224C: .4byte 0x02023D08 +_08062250: + adds r0, r4, #1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, #2 + adds r1, r3, r1 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + bl PlayFanfare +_08062264: + bl OpponentBufferExecCompleted + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end OpponentHandlePlayFanfareOrBGM + + thumb_func_start OpponentHandleFaintingCry +OpponentHandleFaintingCry: @ 0x08062270 + push {lr} + ldr r1, _080622A0 + ldr r0, _080622A4 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080622A8 + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x19 + movs r2, #5 + bl PlayCry3 + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_080622A0: .4byte 0x02023D12 +_080622A4: .4byte 0x02023D08 +_080622A8: .4byte 0x020243E8 + thumb_func_end OpponentHandleFaintingCry + + thumb_func_start nullsub_26 +nullsub_26: @ 0x080622AC + push {lr} + ldr r1, _080622D4 + ldr r0, _080622D8 + ldrb r0, [r0] + lsls r0, r0, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + bl HandleIntroSlide + ldr r2, _080622DC + ldrh r0, [r2] + movs r1, #1 + orrs r0, r1 + strh r0, [r2] + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_080622D4: .4byte 0x02022D08 +_080622D8: .4byte 0x02023D08 +_080622DC: .4byte 0x020240A0 + thumb_func_end nullsub_26 + + thumb_func_start OpponentHandleIntroTrainerBallThrow +OpponentHandleIntroTrainerBallThrow: @ 0x080622E0 + push {r4, r5, r6, lr} + ldr r5, _080623C0 + ldr r6, _080623C4 + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _080623C8 + adds r0, r0, r4 + bl SetSpritePrimaryCoordsFromSecondaryCoords + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0x23 + strh r1, [r0, #0x2e] + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0x8c + lsls r1, r1, #1 + strh r1, [r0, #0x32] + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r0, #0x22] + strh r1, [r0, #0x36] + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _080623CC + str r1, [r0] + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _080623D0 + bl StoreSpriteCallbackInData6 + ldr r0, _080623D4 + movs r1, #5 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _080623D8 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r4 + ldrb r0, [r6] + strh r0, [r1, #8] + ldr r3, _080623DC + ldr r0, [r3] + ldrb r2, [r6] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080623A2 + ldr r0, _080623E0 + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r4 + ldr r1, _080623E4 + str r1, [r0] +_080623A2: + ldr r0, [r3] + ldr r2, [r0, #8] + ldrb r0, [r2, #9] + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #9] + ldr r1, _080623E8 + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _080623EC + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080623C0: .4byte 0x02023E88 +_080623C4: .4byte 0x02023D08 +_080623C8: .4byte 0x020205AC +_080623CC: .4byte 0x080A67B5 +_080623D0: .4byte 0x080623F1 +_080623D4: .4byte 0x0806240D +_080623D8: .4byte 0x03005B60 +_080623DC: .4byte 0x02024174 +_080623E0: .4byte 0x02024158 +_080623E4: .4byte 0x0807352D +_080623E8: .4byte 0x03005AC0 +_080623EC: .4byte 0x0805ED7D + thumb_func_end OpponentHandleIntroTrainerBallThrow + + thumb_func_start sub_080623F0 +sub_080623F0: @ 0x080623F0 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #6] + bl FreeTrainerFrontPicPalette + adds r0, r4, #0 + bl FreeSpriteOamMatrix + adds r0, r4, #0 + bl DestroySprite + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_080623F0 + + thumb_func_start OpponentHandleDrawPartyStatusSummary +OpponentHandleDrawPartyStatusSummary: @ 0x0806240C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r7, _08062470 + ldrb r0, [r7] + mov sb, r0 + ldr r1, _08062474 + mov r2, r8 + lsls r0, r2, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r0, [r0, #8] + strb r0, [r7] + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08062450 + ldr r0, _08062478 + ldr r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08062450 + movs r0, #0x80 + lsls r0, r0, #8 + ands r1, r0 + cmp r1, #0 + beq _08062484 +_08062450: + ldr r0, _0806247C + ldrb r1, [r7] + lsls r2, r1, #9 + adds r0, #1 + adds r2, r2, r0 + ldr r0, _08062480 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + strb r0, [r2] + ldrb r0, [r7] + movs r1, #0 + bl sub_08060FC8 + b _080624C4 + .align 2, 0 +_08062470: .4byte 0x02023D08 +_08062474: .4byte 0x03005B60 +_08062478: .4byte 0x02022C90 +_0806247C: .4byte 0x02022D08 +_08062480: .4byte 0x02023D12 +_08062484: + ldr r4, _080624E8 + ldrb r0, [r7] + lsls r1, r0, #9 + adds r4, #1 + adds r1, r1, r4 + ldr r6, _080624EC + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + movs r1, #0 + bl sub_08060FC8 + ldrb r0, [r7] + movs r5, #2 + eors r0, r5 + strb r0, [r7] + ldrb r0, [r7] + lsls r1, r0, #9 + adds r1, r1, r4 + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + movs r1, #0 + bl sub_08060FC8 + ldrb r0, [r7] + eors r0, r5 + strb r0, [r7] +_080624C4: + ldr r1, _080624F0 + ldr r2, _080624F4 + ldrb r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _080624F8 + str r1, [r0] + mov r0, sb + strb r0, [r2] + mov r0, r8 + bl DestroyTask + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080624E8: .4byte 0x02022D08 +_080624EC: .4byte 0x02023D12 +_080624F0: .4byte 0x03005AC0 +_080624F4: .4byte 0x02023D08 +_080624F8: .4byte 0x0805F14D + thumb_func_end OpponentHandleDrawPartyStatusSummary + + thumb_func_start sub_080624FC +sub_080624FC: @ 0x080624FC + push {r4, r5, r6, r7, lr} + ldr r1, _08062524 + ldr r0, _08062528 + ldrb r2, [r0] + lsls r0, r2, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _0806252C + adds r0, r2, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806252C + bl OpponentBufferExecCompleted + b _080625F6 + .align 2, 0 +_08062524: .4byte 0x02022D08 +_08062528: .4byte 0x02023D08 +_0806252C: + ldr r4, _08062584 + ldr r0, [r4] + ldr r3, _08062588 + ldrb r1, [r3] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r2, #1 + orrs r1, r2 + strb r1, [r0] + ldr r1, _0806258C + ldrb r2, [r3] + lsls r0, r2, #9 + adds r1, #2 + adds r0, r0, r1 + ldrb r0, [r0] + adds r7, r3, #0 + cmp r0, #0 + beq _08062598 + ldr r0, [r4] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r3, r0, r1 + ldrb r2, [r3, #1] + lsls r1, r2, #0x1b + lsrs r0, r1, #0x1c + cmp r0, #1 + bhi _08062590 + adds r0, #1 + movs r1, #0xf + ands r0, r1 + lsls r0, r0, #1 + movs r1, #0x1f + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #1] + b _080625F6 + .align 2, 0 +_08062584: .4byte 0x02024174 +_08062588: .4byte 0x02023D08 +_0806258C: .4byte 0x02022D08 +_08062590: + movs r0, #0x1f + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r3, #1] +_08062598: + adds r5, r7, #0 + ldrb r0, [r5] + lsls r3, r0, #9 + ldr r4, _080625FC + adds r1, r3, r4 + subs r2, r4, #3 + adds r2, r3, r2 + ldrb r2, [r2] + subs r4, #2 + adds r3, r3, r4 + ldrb r3, [r3] + bl CreatePartyStatusSummarySprites + ldr r2, _08062600 + ldrb r1, [r5] + adds r1, r1, r2 + movs r3, #0 + strb r0, [r1] + ldr r6, _08062604 + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strb r3, [r0, #5] + ldrb r2, [r5] + lsls r0, r2, #9 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0 + beq _080625EA + ldr r0, [r6] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + movs r1, #0x5d + strb r1, [r0, #5] +_080625EA: + ldr r0, _08062608 + ldrb r1, [r7] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, _0806260C + str r0, [r1] +_080625F6: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080625FC: .4byte 0x02022D0C +_08062600: .4byte 0x02024158 +_08062604: .4byte 0x02024174 +_08062608: .4byte 0x03005AC0 +_0806260C: .4byte 0x08062611 + thumb_func_end sub_080624FC + + thumb_func_start sub_08062610 +sub_08062610: @ 0x08062610 + push {r4, lr} + ldr r4, _08062650 + ldr r0, [r4] + ldr r3, _08062654 + ldrb r1, [r3] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #5] + adds r2, r1, #1 + strb r2, [r0, #5] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0x5c + bls _08062648 + ldr r0, [r4] + ldrb r1, [r3] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0 + strb r1, [r0, #5] + bl OpponentBufferExecCompleted +_08062648: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08062650: .4byte 0x02024174 +_08062654: .4byte 0x02023D08 + thumb_func_end sub_08062610 + + thumb_func_start sub_08062658 +sub_08062658: @ 0x08062658 + push {lr} + ldr r0, _08062694 + ldr r1, [r0] + ldr r0, _08062698 + ldrb r3, [r0] + ldr r1, [r1, #4] + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0806268A + ldr r2, _0806269C + ldr r0, _080626A0 + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldr r1, _080626A4 + str r1, [r0] +_0806268A: + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_08062694: .4byte 0x02024174 +_08062698: .4byte 0x02023D08 +_0806269C: .4byte 0x03005B60 +_080626A0: .4byte 0x02024158 +_080626A4: .4byte 0x0807352D + thumb_func_end sub_08062658 + + thumb_func_start sub_080626A8 +sub_080626A8: @ 0x080626A8 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080626A8 + + thumb_func_start OpponentHandleSpriteInvisibility +OpponentHandleSpriteInvisibility: @ 0x080626B4 + push {r4, lr} + ldr r4, _08062704 + ldrb r0, [r4] + bl IsBattlerSpritePresent + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080626FA + ldr r3, _08062708 + ldr r0, _0806270C + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r0, _08062710 + lsls r1, r1, #9 + adds r0, #1 + adds r1, r1, r0 + adds r2, #0x3e + movs r0, #1 + ldrb r1, [r1] + ands r1, r0 + lsls r1, r1, #2 + ldrb r3, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4] + bl CopyBattleSpriteInvisibility +_080626FA: + bl OpponentBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08062704: .4byte 0x02023D08 +_08062708: .4byte 0x020205AC +_0806270C: .4byte 0x02023E88 +_08062710: .4byte 0x02022D08 + thumb_func_end OpponentHandleSpriteInvisibility + + thumb_func_start OpponentHandleBattleAnimation +OpponentHandleBattleAnimation: @ 0x08062714 + push {r4, r5, r6, lr} + sub sp, #4 + ldr r6, _08062758 + ldrb r0, [r6] + bl mplay_80342A4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806276C + ldr r5, _0806275C + ldrb r2, [r6] + lsls r1, r2, #9 + adds r0, r5, #1 + adds r0, r1, r0 + ldrb r3, [r0] + adds r0, r5, #2 + adds r0, r1, r0 + ldrb r4, [r0] + adds r5, #3 + adds r1, r1, r5 + ldrb r0, [r1] + lsls r0, r0, #8 + orrs r4, r0 + str r4, [sp] + adds r0, r2, #0 + adds r1, r2, #0 + bl TryHandleLaunchBattleTableAnimation + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08062760 + bl OpponentBufferExecCompleted + b _0806276C + .align 2, 0 +_08062758: .4byte 0x02023D08 +_0806275C: .4byte 0x02022D08 +_08062760: + ldr r0, _08062774 + ldrb r1, [r6] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, _08062778 + str r0, [r1] +_0806276C: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08062774: .4byte 0x03005AC0 +_08062778: .4byte 0x0805FAD5 + thumb_func_end OpponentHandleBattleAnimation + + thumb_func_start sub_0806277C +sub_0806277C: @ 0x0806277C + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0806277C + + thumb_func_start sub_08062788 +sub_08062788: @ 0x08062788 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08062788 + + thumb_func_start OpponentHandleCmd55 +OpponentHandleCmd55: @ 0x08062794 + push {lr} + ldr r0, _080627C8 + ldr r0, [r0] + movs r1, #6 + ands r0, r1 + cmp r0, #2 + bne _080627BE + ldr r2, _080627CC + ldr r0, _080627D0 + adds r3, r2, r0 + ldrb r1, [r3] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3] + ldr r0, _080627D4 + ldr r0, [r0] + str r0, [r2] + ldr r0, [r2, #8] + bl SetMainCallback2 +_080627BE: + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_080627C8: .4byte 0x02022C90 +_080627CC: .4byte 0x03002360 +_080627D0: .4byte 0x00000439 +_080627D4: .4byte 0x03005A60 + thumb_func_end OpponentHandleCmd55 + + thumb_func_start sub_080627D8 +sub_080627D8: @ 0x080627D8 + bx lr + .align 2, 0 + thumb_func_end sub_080627D8 + diff --git a/asm/battle_controller_player.s b/asm/battle_controller_player.s new file mode 100644 index 0000000..30c1bdb --- /dev/null +++ b/asm/battle_controller_player.s @@ -0,0 +1,11337 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start nullsub_21 +nullsub_21: @ 0x08057068 + bx lr + .align 2, 0 + thumb_func_end nullsub_21 + + thumb_func_start SetControllerToPlayer +SetControllerToPlayer: @ 0x0805706C + ldr r1, _08057088 + ldr r0, _0805708C + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08057090 + str r1, [r0] + ldr r0, _08057094 + movs r1, #0 + strb r1, [r0] + ldr r0, _08057098 + strb r1, [r0] + bx lr + .align 2, 0 +_08057088: .4byte 0x03005AC0 +_0805708C: .4byte 0x02023D08 +_08057090: .4byte 0x08057115 +_08057094: .4byte 0x0202415D +_08057098: .4byte 0x02024170 + thumb_func_end SetControllerToPlayer + + thumb_func_start PlayerBufferExecCompleted +PlayerBufferExecCompleted: @ 0x0805709C + push {r4, lr} + sub sp, #4 + ldr r1, _080570DC + ldr r4, _080570E0 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _080570E4 + str r1, [r0] + ldr r0, _080570E8 + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _080570F0 + bl GetMultiplayerId + mov r1, sp + strb r0, [r1] + movs r0, #2 + movs r1, #4 + mov r2, sp + bl PrepareBufferDataTransferLink + ldr r1, _080570EC + ldrb r0, [r4] + lsls r0, r0, #9 + adds r0, r0, r1 + movs r1, #0x38 + strb r1, [r0] + b _08057102 + .align 2, 0 +_080570DC: .4byte 0x03005AC0 +_080570E0: .4byte 0x02023D08 +_080570E4: .4byte 0x08057115 +_080570E8: .4byte 0x02022C90 +_080570EC: .4byte 0x02022D08 +_080570F0: + ldr r2, _0805710C + ldr r1, _08057110 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + ldr r0, [r2] + bics r0, r1 + str r0, [r2] +_08057102: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0805710C: .4byte 0x02023D0C +_08057110: .4byte 0x082FACB4 + thumb_func_end PlayerBufferExecCompleted + + thumb_func_start PlayerBufferRunCommand +PlayerBufferRunCommand: @ 0x08057114 + push {lr} + ldr r2, _08057148 + ldr r1, _0805714C + ldr r0, _08057150 + ldrb r3, [r0] + lsls r0, r3, #2 + adds r0, r0, r1 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _08057160 + ldr r0, _08057154 + lsls r1, r3, #9 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0x38 + bhi _0805715C + ldr r0, _08057158 + ldrb r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl _call_via_r0 + b _08057160 + .align 2, 0 +_08057148: .4byte 0x02023D0C +_0805714C: .4byte 0x082FACB4 +_08057150: .4byte 0x02023D08 +_08057154: .4byte 0x02022D08 +_08057158: .4byte 0x082ECE9C +_0805715C: + bl PlayerBufferExecCompleted +_08057160: + pop {r0} + bx r0 + thumb_func_end PlayerBufferRunCommand + + thumb_func_start CompleteOnBankSpritePosX_0 +CompleteOnBankSpritePosX_0: @ 0x08057164 + push {lr} + ldr r2, _0805718C + ldr r1, _08057190 + ldr r0, _08057194 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0x24 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08057186 + bl PlayerBufferExecCompleted +_08057186: + pop {r0} + bx r0 + .align 2, 0 +_0805718C: .4byte 0x020205AC +_08057190: .4byte 0x02023E88 +_08057194: .4byte 0x02023D08 + thumb_func_end CompleteOnBankSpritePosX_0 + + thumb_func_start sub_08057198 +sub_08057198: @ 0x08057198 + push {r4, r5, r6, r7, lr} + ldr r3, _080571E8 + ldr r4, _080571EC + ldrb r0, [r4] + lsls r2, r0, #9 + adds r1, r3, #2 + adds r1, r2, r1 + ldrb r5, [r1] + adds r3, #3 + adds r2, r2, r3 + ldrb r1, [r2] + lsls r1, r1, #8 + orrs r5, r1 + movs r1, #1 + movs r2, #7 + movs r3, #1 + bl DoBounceEffect + ldrb r0, [r4] + movs r1, #0 + movs r2, #7 + movs r3, #1 + bl DoBounceEffect + ldr r0, _080571F0 + ldrh r1, [r0, #0x30] + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0 + beq _080571FC + ldr r0, _080571F4 + ldr r0, [r0] + ldrb r0, [r0, #0x13] + cmp r0, #2 + bne _080571FC + ldr r1, _080571F8 + ldrb r0, [r1] + adds r0, #1 + b _08057200 + .align 2, 0 +_080571E8: .4byte 0x02022D08 +_080571EC: .4byte 0x02023D08 +_080571F0: .4byte 0x03002360 +_080571F4: .4byte 0x03005AF0 +_080571F8: .4byte 0x02024170 +_080571FC: + ldr r1, _08057230 + movs r0, #0 +_08057200: + strb r0, [r1] + ldr r0, _08057234 + ldrh r2, [r0, #0x2e] + movs r3, #1 + adds r0, r3, #0 + ands r0, r2 + cmp r0, #0 + beq _08057268 + movs r0, #5 + bl PlaySE + ldr r1, _08057238 + ldr r0, _0805723C + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + beq _08057250 + cmp r0, #1 + bgt _08057240 + cmp r0, #0 + beq _0805724A + b _080573D2 + .align 2, 0 +_08057230: .4byte 0x02024170 +_08057234: .4byte 0x03002360 +_08057238: .4byte 0x02024150 +_0805723C: .4byte 0x02023D08 +_08057240: + cmp r0, #2 + beq _08057256 + cmp r0, #3 + beq _0805725C + b _080573D2 +_0805724A: + movs r0, #1 + movs r1, #0 + b _080573CC +_08057250: + movs r0, #1 + movs r1, #1 + b _080573CC +_08057256: + movs r0, #1 + movs r1, #2 + b _080573CC +_0805725C: + movs r0, #1 + movs r1, #3 + movs r2, #0 + bl BtlController_EmitTwoReturnValues + b _080573D2 +_08057268: + movs r0, #0x20 + ands r0, r2 + cmp r0, #0 + beq _080572A8 + ldr r5, _080572A0 + ldr r4, _080572A4 + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _08057284 + b _080573F8 +_08057284: + movs r0, #5 + bl PlaySE + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r0, [r0] + bl ActionSelectionDestroyCursorAt + ldrb r1, [r4] + adds r1, r1, r5 + ldrb r0, [r1] + movs r2, #1 + b _08057342 + .align 2, 0 +_080572A0: .4byte 0x02024150 +_080572A4: .4byte 0x02023D08 +_080572A8: + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + beq _080572E8 + ldr r5, _080572E0 + ldr r4, _080572E4 + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _080572C4 + b _080573F8 +_080572C4: + movs r0, #5 + bl PlaySE + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r0, [r0] + bl ActionSelectionDestroyCursorAt + ldrb r1, [r4] + adds r1, r1, r5 + ldrb r0, [r1] + movs r2, #1 + b _08057342 + .align 2, 0 +_080572E0: .4byte 0x02024150 +_080572E4: .4byte 0x02023D08 +_080572E8: + movs r7, #0x40 + adds r0, r7, #0 + ands r0, r2 + cmp r0, #0 + beq _08057310 + ldr r5, _08057308 + ldr r4, _0805730C + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080573F8 + b _0805732A + .align 2, 0 +_08057308: .4byte 0x02024150 +_0805730C: .4byte 0x02023D08 +_08057310: + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _0805735C + ldr r5, _08057354 + ldr r4, _08057358 + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _080573F8 +_0805732A: + movs r0, #5 + bl PlaySE + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r0, [r0] + bl ActionSelectionDestroyCursorAt + ldrb r1, [r4] + adds r1, r1, r5 + ldrb r0, [r1] + movs r2, #2 +_08057342: + eors r0, r2 + strb r0, [r1] + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r0, [r0] + movs r1, #0 + bl SetCB2ToReshowScreenAfterMenu + b _080573F8 + .align 2, 0 +_08057354: .4byte 0x02024150 +_08057358: .4byte 0x02023D08 +_0805735C: + movs r0, #2 + ands r0, r2 + cmp r0, #0 + bne _0805736A + ldrb r0, [r1] + cmp r0, #0x3b + bls _080573EC +_0805736A: + ldr r4, _080573D8 + ldr r0, [r4] + ands r0, r3 + cmp r0, #0 + beq _080573F8 + ldr r6, _080573DC + ldrb r0, [r6] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _080573F8 + movs r0, #0 + bl GetBattlerAtPosition + ldr r1, _080573E0 + ldrb r1, [r1] + ldr r2, _080573E4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _080573F8 + ldr r0, [r4] + ands r0, r7 + cmp r0, #0 + bne _080573F8 + ldr r0, _080573E8 + ldrb r1, [r6] + lsls r1, r1, #9 + adds r0, #1 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #1 + bne _080573C2 + cmp r5, #0xc + bhi _080573F8 + adds r0, r5, #0 + movs r1, #1 + bl AddBagItem +_080573C2: + movs r0, #5 + bl PlaySE + movs r0, #1 + movs r1, #0xc +_080573CC: + movs r2, #0 + bl BtlController_EmitTwoReturnValues +_080573D2: + bl PlayerBufferExecCompleted + b _080573F8 + .align 2, 0 +_080573D8: .4byte 0x02022C90 +_080573DC: .4byte 0x02023D08 +_080573E0: .4byte 0x02023EB4 +_080573E4: .4byte 0x082FACB4 +_080573E8: .4byte 0x02022D08 +_080573EC: + movs r0, #8 + ands r0, r2 + cmp r0, #0 + beq _080573F8 + bl SwapHpBarsWithHpText +_080573F8: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08057198 + + thumb_func_start sub_08057400 +sub_08057400: @ 0x08057400 + push {r4, lr} + ldr r4, _08057428 + ldrb r0, [r4] + movs r1, #1 + bl EndBounceEffect + ldrb r0, [r4] + movs r1, #0 + bl EndBounceEffect + ldr r1, _0805742C + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08057430 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08057428: .4byte 0x02023D08 +_0805742C: .4byte 0x03005AC0 +_08057430: .4byte 0x08057435 + thumb_func_end sub_08057400 + + thumb_func_start HandleInputChooseTarget +HandleInputChooseTarget: @ 0x08057434 + push {r4, r5, lr} + sub sp, #4 + ldr r1, _08057494 + mov r0, sp + movs r2, #4 + bl memcpy + ldr r0, _08057498 + ldrb r0, [r0] + movs r1, #1 + movs r2, #0xf + movs r3, #1 + bl DoBounceEffect + movs r4, #0 + ldr r0, _0805749C + ldrb r0, [r0] + cmp r0, #0 + beq _08057476 +_0805745A: + ldr r0, _08057498 + ldrb r0, [r0] + cmp r4, r0 + beq _0805746C + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + bl EndBounceEffect +_0805746C: + adds r4, #1 + ldr r0, _0805749C + ldrb r0, [r0] + cmp r4, r0 + blt _0805745A +_08057476: + ldr r2, _080574A0 + ldrh r1, [r2, #0x2c] + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0 + beq _080574AC + ldr r0, _080574A4 + ldr r0, [r0] + ldrb r0, [r0, #0x13] + cmp r0, #2 + bne _080574AC + ldr r1, _080574A8 + ldrb r0, [r1] + adds r0, #1 + b _080574B0 + .align 2, 0 +_08057494: .4byte 0x082ECF80 +_08057498: .4byte 0x03005AD4 +_0805749C: .4byte 0x02023D10 +_080574A0: .4byte 0x03002360 +_080574A4: .4byte 0x03005AF0 +_080574A8: .4byte 0x02024170 +_080574AC: + ldr r1, _08057504 + movs r0, #0 +_080574B0: + strb r0, [r1] + ldrh r2, [r2, #0x2e] + movs r0, #1 + ands r0, r2 + cmp r0, #0 + beq _08057520 + movs r0, #5 + bl PlaySE + ldr r2, _08057508 + ldr r1, _0805750C + ldr r4, _08057510 + ldrb r0, [r4] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, _08057514 + str r1, [r0] + ldr r1, _08057518 + ldr r0, _0805751C + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r2, [r0] + ldrb r0, [r4] + lsls r0, r0, #8 + orrs r2, r0 + movs r0, #1 + movs r1, #0xa + bl BtlController_EmitTwoReturnValues + ldrb r0, [r4] + movs r1, #1 + bl EndBounceEffect + bl PlayerBufferExecCompleted + b _080577D8 + .align 2, 0 +_08057504: .4byte 0x02024170 +_08057508: .4byte 0x020205AC +_0805750C: .4byte 0x02023E88 +_08057510: .4byte 0x03005AD4 +_08057514: .4byte 0x08039771 +_08057518: .4byte 0x02024154 +_0805751C: .4byte 0x02023D08 +_08057520: + movs r0, #2 + ands r0, r2 + cmp r0, #0 + bne _0805752E + ldrb r0, [r1] + cmp r0, #0x3b + bls _0805759C +_0805752E: + movs r0, #5 + bl PlaySE + ldr r2, _08057580 + ldr r1, _08057584 + ldr r5, _08057588 + ldrb r0, [r5] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, _0805758C + str r1, [r0] + ldr r1, _08057590 + ldr r4, _08057594 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08057598 + str r1, [r0] + ldrb r0, [r4] + movs r1, #1 + movs r2, #7 + movs r3, #1 + bl DoBounceEffect + ldrb r0, [r4] + movs r1, #0 + movs r2, #7 + movs r3, #1 + bl DoBounceEffect + ldrb r0, [r5] + movs r1, #1 + bl EndBounceEffect + b _080577D8 + .align 2, 0 +_08057580: .4byte 0x020205AC +_08057584: .4byte 0x02023E88 +_08057588: .4byte 0x03005AD4 +_0805758C: .4byte 0x08039771 +_08057590: .4byte 0x03005AC0 +_08057594: .4byte 0x02023D08 +_08057598: .4byte 0x0805780D +_0805759C: + movs r0, #0x60 + ands r0, r2 + cmp r0, #0 + bne _080575A6 + b _080576C0 +_080575A6: + movs r0, #5 + bl PlaySE + ldr r2, _080575D8 + ldr r1, _080575DC + ldr r3, _080575E0 + ldrb r0, [r3] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, _080575E4 + str r1, [r0] + adds r5, r3, #0 +_080575C8: + ldrb r0, [r5] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r4, #0 + mov r0, sp + b _080575F2 + .align 2, 0 +_080575D8: .4byte 0x020205AC +_080575DC: .4byte 0x02023E88 +_080575E0: .4byte 0x03005AD4 +_080575E4: .4byte 0x08039771 +_080575E8: + adds r4, #1 + cmp r4, #3 + bgt _080575F8 + mov r2, sp + adds r0, r2, r4 +_080575F2: + ldrb r0, [r0] + cmp r1, r0 + bne _080575E8 +_080575F8: + subs r4, #1 + cmp r4, #0 + bge _08057600 + movs r4, #4 +_08057600: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + bl GetBattlerAtPosition + strb r0, [r5] + ldr r1, _08057634 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + beq _080575F8 + movs r4, #0 + ldrb r0, [r5] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0805767E + cmp r0, #1 + bgt _08057638 + cmp r0, #0 + beq _08057642 + b _08057680 + .align 2, 0 +_08057634: .4byte 0x02023D10 +_08057638: + cmp r0, #2 + beq _08057642 + cmp r0, #3 + beq _0805767E + b _08057680 +_08057642: + ldr r2, _080576A0 + ldrb r0, [r2] + ldrb r1, [r5] + cmp r0, r1 + bne _0805767E + ldr r1, _080576A4 + ldrb r2, [r2] + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080576A8 + adds r0, r0, r1 + ldr r1, _080576AC + adds r2, r2, r1 + ldrb r1, [r2] + adds r1, #0xd + bl GetMonData + ldr r2, _080576B0 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r1, [r1, #6] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08057680 +_0805767E: + adds r4, #1 +_08057680: + ldr r0, _080576B4 + ldrb r1, [r0] + ldr r2, _080576B8 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + ldr r0, _080576BC + cmp r1, #0 + beq _08057698 + movs r4, #0 +_08057698: + cmp r4, #0 + beq _080575C8 + b _080577C0 + .align 2, 0 +_080576A0: .4byte 0x02023D08 +_080576A4: .4byte 0x02023D12 +_080576A8: .4byte 0x02024190 +_080576AC: .4byte 0x02024154 +_080576B0: .4byte 0x082ED220 +_080576B4: .4byte 0x02023EB4 +_080576B8: .4byte 0x082FACB4 +_080576BC: .4byte 0x03005AD4 +_080576C0: + movs r0, #0x90 + ands r0, r2 + cmp r0, #0 + bne _080576CA + b _080577D8 +_080576CA: + movs r0, #5 + bl PlaySE + ldr r2, _080576FC + ldr r1, _08057700 + ldr r3, _08057704 + ldrb r0, [r3] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, _08057708 + str r1, [r0] + adds r5, r3, #0 +_080576EC: + ldrb r0, [r5] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r4, #0 + mov r0, sp + b _08057716 + .align 2, 0 +_080576FC: .4byte 0x020205AC +_08057700: .4byte 0x02023E88 +_08057704: .4byte 0x03005AD4 +_08057708: .4byte 0x08039771 +_0805770C: + adds r4, #1 + cmp r4, #3 + bgt _0805771C + mov r2, sp + adds r0, r2, r4 +_08057716: + ldrb r0, [r0] + cmp r1, r0 + bne _0805770C +_0805771C: + adds r4, #1 + cmp r4, #3 + ble _08057724 + movs r4, #0 +_08057724: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + bl GetBattlerAtPosition + strb r0, [r5] + ldr r1, _08057758 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + beq _0805771C + movs r4, #0 + ldrb r0, [r5] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080577A2 + cmp r0, #1 + bgt _0805775C + cmp r0, #0 + beq _08057766 + b _080577A4 + .align 2, 0 +_08057758: .4byte 0x02023D10 +_0805775C: + cmp r0, #2 + beq _08057766 + cmp r0, #3 + beq _080577A2 + b _080577A4 +_08057766: + ldr r2, _080577E0 + ldrb r0, [r2] + ldrb r1, [r5] + cmp r0, r1 + bne _080577A2 + ldr r1, _080577E4 + ldrb r2, [r2] + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080577E8 + adds r0, r0, r1 + ldr r1, _080577EC + adds r2, r2, r1 + ldrb r1, [r2] + adds r1, #0xd + bl GetMonData + ldr r2, _080577F0 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r1, [r1, #6] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080577A4 +_080577A2: + adds r4, #1 +_080577A4: + ldr r0, _080577F4 + ldrb r1, [r0] + ldr r2, _080577F8 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + ldr r0, _080577FC + cmp r1, #0 + beq _080577BC + movs r4, #0 +_080577BC: + cmp r4, #0 + beq _080576EC +_080577C0: + ldr r2, _08057800 + ldr r1, _08057804 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, _08057808 + str r1, [r0] +_080577D8: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080577E0: .4byte 0x02023D08 +_080577E4: .4byte 0x02023D12 +_080577E8: .4byte 0x02024190 +_080577EC: .4byte 0x02024154 +_080577F0: .4byte 0x082ED220 +_080577F4: .4byte 0x02023EB4 +_080577F8: .4byte 0x082FACB4 +_080577FC: .4byte 0x03005AD4 +_08057800: .4byte 0x020205AC +_08057804: .4byte 0x02023E88 +_08057808: .4byte 0x0803971D + thumb_func_end HandleInputChooseTarget + + thumb_func_start HandleInputChooseMove +HandleInputChooseMove: @ 0x0805780C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r0, #0 + mov r8, r0 + ldr r3, _08057840 + ldrb r0, [r3] + lsls r0, r0, #9 + ldr r1, _08057844 + adds r6, r0, r1 + ldr r2, _08057848 + ldrh r1, [r2, #0x2c] + movs r0, #0xf0 + ands r0, r1 + adds r7, r3, #0 + cmp r0, #0 + beq _08057854 + ldr r0, _0805784C + ldr r0, [r0] + ldrb r0, [r0, #0x13] + cmp r0, #2 + bne _08057854 + ldr r1, _08057850 + ldrb r0, [r1] + adds r0, #1 + b _08057858 + .align 2, 0 +_08057840: .4byte 0x02023D08 +_08057844: .4byte 0x02022D0C +_08057848: .4byte 0x03002360 +_0805784C: .4byte 0x03005AF0 +_08057850: .4byte 0x02024170 +_08057854: + ldr r1, _0805789C + movs r0, #0 +_08057858: + strb r0, [r1] + ldrh r2, [r2, #0x2e] + movs r5, #1 + adds r0, r5, #0 + ands r0, r2 + cmp r0, #0 + bne _08057868 + b _08057A14 +_08057868: + movs r0, #5 + bl PlaySE + ldr r1, _080578A0 + ldr r0, _080578A4 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r1, r6, r0 + ldrh r0, [r1] + cmp r0, #0xae + bne _080578A8 + ldrb r0, [r6, #0x12] + movs r4, #0 + cmp r0, #7 + beq _080578B6 + ldrb r1, [r6, #0x13] + movs r0, #7 + eors r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + asrs r4, r0, #0x1f + movs r0, #0x10 + ands r4, r0 + b _080578B6 + .align 2, 0 +_0805789C: .4byte 0x02024170 +_080578A0: .4byte 0x02024154 +_080578A4: .4byte 0x02023D08 +_080578A8: + ldr r2, _080578C8 + ldrh r1, [r1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r4, [r0, #6] +_080578B6: + movs r0, #0x10 + ands r0, r4 + cmp r0, #0 + beq _080578D4 + ldr r0, _080578CC + ldr r1, _080578D0 + ldrb r1, [r1] + strb r1, [r0] + b _080578EE + .align 2, 0 +_080578C8: .4byte 0x082ED220 +_080578CC: .4byte 0x03005AD4 +_080578D0: .4byte 0x02023D08 +_080578D4: + ldr r0, _0805791C + ldrb r0, [r0] + bl GetBattlerPosition + adds r1, r0, #0 + movs r2, #1 + movs r0, #1 + ands r0, r1 + eors r0, r2 + bl GetBattlerAtPosition + ldr r1, _08057920 + strb r0, [r1] +_080578EE: + ldr r5, _08057924 + ldr r0, _0805791C + ldrb r3, [r0] + lsls r2, r3, #9 + adds r1, r5, #1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r7, r0, #0 + cmp r1, #0 + bne _08057928 + movs r0, #2 + ands r0, r4 + cmp r0, #0 + beq _0805796A + adds r0, r5, #2 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, #0 + bne _0805796A + movs r0, #1 + add r8, r0 + b _0805796A + .align 2, 0 +_0805791C: .4byte 0x02023D08 +_08057920: .4byte 0x03005AD4 +_08057924: .4byte 0x02022D08 +_08057928: + movs r0, #0x7d + ands r0, r4 + cmp r0, #0 + bne _08057934 + movs r0, #1 + add r8, r0 +_08057934: + ldr r0, _08057984 + adds r0, r3, r0 + adds r1, r6, #0 + adds r1, #8 + ldrb r0, [r0] + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0 + beq _08057972 + movs r0, #0x12 + ands r0, r4 + cmp r0, #0 + bne _0805796A + movs r0, #0 + bl CountAliveMonsInBattle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0805796A + ldrb r0, [r7] + bl GetDefaultMoveTarget + ldr r1, _08057988 + strb r0, [r1] + movs r0, #0 + mov r8, r0 +_0805796A: + ldr r7, _0805798C + mov r0, r8 + cmp r0, #0 + bne _08057990 +_08057972: + ldr r1, _08057984 + ldrb r0, [r7] + adds r0, r0, r1 + ldrb r2, [r0] + ldr r0, _08057988 + ldrb r0, [r0] + lsls r0, r0, #8 + orrs r2, r0 + b _08057A2C + .align 2, 0 +_08057984: .4byte 0x02024154 +_08057988: .4byte 0x03005AD4 +_0805798C: .4byte 0x02023D08 +_08057990: + ldr r1, _080579AC + ldrb r0, [r7] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _080579B0 + str r1, [r0] + movs r0, #0x12 + ands r4, r0 + cmp r4, #0 + beq _080579B8 + ldr r1, _080579B4 + ldrb r0, [r7] + b _080579E8 + .align 2, 0 +_080579AC: .4byte 0x03005AC0 +_080579B0: .4byte 0x08057435 +_080579B4: .4byte 0x03005AD4 +_080579B8: + movs r0, #1 + bl GetBattlerAtPosition + ldr r1, _080579D8 + ldrb r1, [r1] + ldr r2, _080579DC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _080579E0 + movs r0, #3 + b _080579E2 + .align 2, 0 +_080579D8: .4byte 0x02023EB4 +_080579DC: .4byte 0x082FACB4 +_080579E0: + movs r0, #1 +_080579E2: + bl GetBattlerAtPosition + ldr r1, _08057A04 +_080579E8: + strb r0, [r1] + ldr r2, _08057A08 + ldr r1, _08057A0C + ldr r0, _08057A04 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, _08057A10 + b _08057BAC + .align 2, 0 +_08057A04: .4byte 0x03005AD4 +_08057A08: .4byte 0x020205AC +_08057A0C: .4byte 0x02023E88 +_08057A10: .4byte 0x0803971D +_08057A14: + movs r6, #2 + adds r0, r6, #0 + ands r0, r2 + cmp r0, #0 + bne _08057A24 + ldrb r0, [r1] + cmp r0, #0x3b + bls _08057A40 +_08057A24: + movs r0, #5 + bl PlaySE + ldr r2, _08057A3C +_08057A2C: + movs r0, #1 + movs r1, #0xa + bl BtlController_EmitTwoReturnValues + bl PlayerBufferExecCompleted + b _08057BAE + .align 2, 0 +_08057A3C: .4byte 0x0000FFFF +_08057A40: + movs r0, #0x20 + ands r0, r2 + cmp r0, #0 + beq _08057A70 + ldr r4, _08057A6C + ldrb r0, [r7] + adds r2, r0, r4 + ldrb r1, [r2] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + bne _08057A5A + b _08057BAE +_08057A5A: + ldrb r0, [r2] + bl MoveSelectionDestroyCursorAt + ldrb r1, [r7] + adds r1, r1, r4 + ldrb r0, [r1] + movs r2, #1 + eors r0, r2 + b _08057B18 + .align 2, 0 +_08057A6C: .4byte 0x02024154 +_08057A70: + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + beq _08057AB4 + ldr r4, _08057AAC + ldrb r0, [r7] + adds r3, r0, r4 + ldrb r2, [r3] + movs r6, #1 + adds r0, r5, #0 + ands r0, r2 + cmp r0, #0 + beq _08057A8C + b _08057BAE +_08057A8C: + ldr r1, _08057AB0 + adds r0, r6, #0 + eors r0, r2 + ldrb r1, [r1] + cmp r0, r1 + blo _08057A9A + b _08057BAE +_08057A9A: + ldrb r0, [r3] + bl MoveSelectionDestroyCursorAt + ldrb r1, [r7] + adds r1, r1, r4 + ldrb r0, [r1] + eors r0, r6 + b _08057B18 + .align 2, 0 +_08057AAC: .4byte 0x02024154 +_08057AB0: .4byte 0x03005AD8 +_08057AB4: + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + beq _08057AE4 + ldr r4, _08057AE0 + ldrb r0, [r7] + adds r2, r0, r4 + ldrb r1, [r2] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _08057BAE + ldrb r0, [r2] + bl MoveSelectionDestroyCursorAt + ldrb r1, [r7] + adds r1, r1, r4 + ldrb r0, [r1] + movs r2, #2 + eors r0, r2 + b _08057B18 + .align 2, 0 +_08057AE0: .4byte 0x02024154 +_08057AE4: + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _08057B40 + ldr r4, _08057B38 + ldrb r0, [r7] + adds r3, r0, r4 + ldrb r2, [r3] + movs r5, #2 + adds r0, r6, #0 + ands r0, r2 + cmp r0, #0 + bne _08057BAE + ldr r1, _08057B3C + adds r0, r5, #0 + eors r0, r2 + ldrb r1, [r1] + cmp r0, r1 + bhs _08057BAE + ldrb r0, [r3] + bl MoveSelectionDestroyCursorAt + ldrb r1, [r7] + adds r1, r1, r4 + ldrb r0, [r1] + eors r0, r5 +_08057B18: + strb r0, [r1] + movs r0, #5 + bl PlaySE + ldrb r0, [r7] + adds r0, r0, r4 + ldrb r0, [r0] + movs r1, #0 + bl MoveSelectionCreateCursorAt + bl MoveSelectionDisplayPpNumber + bl ActionSelectionCreateCursorAt + b _08057BAE + .align 2, 0 +_08057B38: .4byte 0x02024154 +_08057B3C: .4byte 0x03005AD8 +_08057B40: + movs r0, #4 + ands r0, r2 + cmp r0, #0 + beq _08057BAE + ldr r0, _08057B78 + ldrb r0, [r0] + cmp r0, #1 + bls _08057BAE + ldr r0, _08057B7C + ldr r5, [r0] + ands r5, r6 + cmp r5, #0 + bne _08057BAE + ldr r4, _08057B80 + ldrb r0, [r7] + adds r0, r0, r4 + ldrb r0, [r0] + movs r1, #0x1d + bl MoveSelectionCreateCursorAt + ldrb r0, [r7] + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0 + beq _08057B88 + ldr r0, _08057B84 + strb r5, [r0] + b _08057B90 + .align 2, 0 +_08057B78: .4byte 0x03005AD8 +_08057B7C: .4byte 0x02022C90 +_08057B80: .4byte 0x02024154 +_08057B84: .4byte 0x03005AD4 +_08057B88: + ldr r1, _08057BB8 + adds r0, #1 + strb r0, [r1] + adds r0, r1, #0 +_08057B90: + ldrb r0, [r0] + movs r1, #0x1b + bl MoveSelectionCreateCursorAt + ldr r0, _08057BBC + movs r1, #0xb + bl sub_0814FA04 + ldr r1, _08057BC0 + ldr r0, _08057BC4 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08057BC8 +_08057BAC: + str r1, [r0] +_08057BAE: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08057BB8: .4byte 0x03005AD4 +_08057BBC: .4byte 0x085ABBD8 +_08057BC0: .4byte 0x03005AC0 +_08057BC4: .4byte 0x02023D08 +_08057BC8: .4byte 0x08057D49 + thumb_func_end HandleInputChooseMove + + thumb_func_start sub_08057BCC +sub_08057BCC: @ 0x08057BCC + push {r4, r5, r6, r7, lr} + movs r7, #0 + ldr r4, _08057D30 + ldrh r1, [r4, #0x2e] + movs r6, #1 + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _08057BE6 + movs r0, #5 + bl PlaySE + movs r7, #1 +_08057BE6: + ldrh r1, [r4, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08057C08 + movs r0, #5 + bl PlaySE + ldr r1, _08057D34 + movs r0, #0 + strh r0, [r1] + ldr r1, _08057D38 + movs r2, #0xa0 + lsls r2, r2, #1 + adds r0, r2, #0 + strh r0, [r1] + movs r7, #0xff +_08057C08: + ldrh r1, [r4, #0x2e] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08057C48 + ldr r5, _08057D3C + ldr r4, _08057D40 + ldrb r0, [r4] + adds r2, r0, r5 + ldrb r1, [r2] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _08057C48 + ldrb r0, [r2] + bl MoveSelectionDestroyCursorAt + ldrb r1, [r4] + adds r1, r1, r5 + ldrb r0, [r1] + movs r2, #1 + eors r0, r2 + strb r0, [r1] + movs r0, #5 + bl PlaySE + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r0, [r0] + movs r1, #0 + bl MoveSelectionCreateCursorAt +_08057C48: + ldr r0, _08057D30 + ldrh r1, [r0, #0x2e] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08057C96 + ldr r5, _08057D3C + ldr r4, _08057D40 + ldrb r0, [r4] + adds r3, r0, r5 + ldrb r2, [r3] + movs r6, #1 + movs r0, #1 + ands r0, r2 + cmp r0, #0 + bne _08057C96 + ldr r1, _08057D44 + adds r0, r6, #0 + eors r0, r2 + ldrb r1, [r1] + cmp r0, r1 + bhs _08057C96 + ldrb r0, [r3] + bl MoveSelectionDestroyCursorAt + ldrb r1, [r4] + adds r1, r1, r5 + ldrb r0, [r1] + eors r0, r6 + strb r0, [r1] + movs r0, #5 + bl PlaySE + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r0, [r0] + movs r1, #0 + bl MoveSelectionCreateCursorAt +_08057C96: + ldr r0, _08057D30 + ldrh r1, [r0, #0x2e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08057CD8 + ldr r5, _08057D3C + ldr r4, _08057D40 + ldrb r0, [r4] + adds r2, r0, r5 + ldrb r1, [r2] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08057CD8 + ldrb r0, [r2] + bl MoveSelectionDestroyCursorAt + ldrb r1, [r4] + adds r1, r1, r5 + ldrb r0, [r1] + movs r2, #2 + eors r0, r2 + strb r0, [r1] + movs r0, #5 + bl PlaySE + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r0, [r0] + movs r1, #0 + bl MoveSelectionCreateCursorAt +_08057CD8: + ldr r0, _08057D30 + ldrh r1, [r0, #0x2e] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08057D26 + ldr r5, _08057D3C + ldr r4, _08057D40 + ldrb r0, [r4] + adds r3, r0, r5 + ldrb r2, [r3] + movs r6, #2 + movs r0, #2 + ands r0, r2 + cmp r0, #0 + bne _08057D26 + ldr r1, _08057D44 + adds r0, r6, #0 + eors r0, r2 + ldrb r1, [r1] + cmp r0, r1 + bhs _08057D26 + ldrb r0, [r3] + bl MoveSelectionDestroyCursorAt + ldrb r1, [r4] + adds r1, r1, r5 + ldrb r0, [r1] + eors r0, r6 + strb r0, [r1] + movs r0, #5 + bl PlaySE + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r0, [r0] + movs r1, #0 + bl MoveSelectionCreateCursorAt +_08057D26: + adds r0, r7, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08057D30: .4byte 0x03002360 +_08057D34: .4byte 0x02022AC8 +_08057D38: .4byte 0x02022ACA +_08057D3C: .4byte 0x02024154 +_08057D40: .4byte 0x02023D08 +_08057D44: .4byte 0x03005AD8 + thumb_func_end sub_08057BCC + + thumb_func_start HandleMoveSwitching +HandleMoveSwitching: @ 0x08057D48 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x24 + ldr r0, _080580E0 + ldrh r1, [r0, #0x2e] + movs r0, #5 + ands r0, r1 + cmp r0, #0 + bne _08057D62 + b _08058110 +_08057D62: + movs r0, #5 + bl PlaySE + ldr r0, _080580E4 + mov sl, r0 + ldr r1, _080580E8 + mov r8, r1 + ldrb r1, [r1] + adds r2, r1, r0 + ldr r5, _080580EC + ldrb r0, [r2] + ldrb r3, [r5] + cmp r0, r3 + bne _08057D80 + b _080580B8 +_08057D80: + lsls r1, r1, #9 + ldr r0, _080580F0 + adds r1, r1, r0 + mov sb, r1 + ldrb r1, [r2] + lsls r1, r1, #1 + add r1, sb + ldrh r6, [r1] + ldrb r0, [r5] + lsls r0, r0, #1 + add r0, sb + ldrh r0, [r0] + strh r0, [r1] + ldrb r0, [r5] + lsls r0, r0, #1 + add r0, sb + strh r6, [r0] + mov r1, r8 + ldrb r0, [r1] + add r0, sl + ldrb r1, [r0] + mov r7, sb + adds r7, #8 + adds r1, r7, r1 + ldrb r6, [r1] + ldrb r0, [r5] + adds r0, r7, r0 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r5] + adds r0, r7, r0 + strb r6, [r0] + mov r2, r8 + ldrb r0, [r2] + add r0, sl + ldrb r1, [r0] + mov r2, sb + adds r2, #0xc + adds r1, r2, r1 + ldrb r6, [r1] + ldrb r0, [r5] + adds r0, r2, r0 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r5] + adds r2, r2, r0 + strb r6, [r2] + mov r3, r8 + ldrb r1, [r3] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r2, _080580F4 + adds r6, r0, r2 + ldrb r4, [r6, #0x18] + lsls r3, r4, #0x18 + lsrs r2, r3, #0x1c + ldr r0, _080580F8 + mov ip, r0 + add r1, sl + ldrb r0, [r1] + lsls r0, r0, #2 + add r0, ip + ldr r0, [r0] + ands r2, r0 + cmp r2, #0 + beq _08057E3A + lsrs r1, r3, #0x1c + bics r1, r0 + lsls r1, r1, #4 + movs r2, #0xf + adds r0, r2, #0 + ands r0, r4 + orrs r0, r1 + strb r0, [r6, #0x18] + mov r1, r8 + ldrb r0, [r1] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + ldr r3, _080580F4 + adds r1, r1, r3 + ldrb r4, [r1, #0x18] + lsrs r3, r4, #4 + ldrb r0, [r5] + lsls r0, r0, #2 + add r0, ip + ldr r0, [r0] + orrs r0, r3 + lsls r0, r0, #4 + ands r2, r4 + orrs r2, r0 + strb r2, [r1, #0x18] +_08057E3A: + bl MoveSelectionDisplayMoveNames + movs r6, #0 + mov ip, r7 + mov r5, sp + adds r5, #0x18 + str r5, [sp, #0x1c] + ldr r2, _080580FC + mov r0, r8 + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + adds r4, r0, #0 + adds r4, #0x3b + mov r7, r8 + mov sl, r2 + movs r5, #3 +_08057E5E: + mov r1, sp + adds r3, r1, r6 + ldrb r1, [r4] + lsls r2, r6, #1 + adds r0, r5, #0 + lsls r0, r2 + ands r1, r0 + asrs r1, r2 + strb r1, [r3] + adds r6, #1 + cmp r6, #3 + ble _08057E5E + ldr r1, _080580E4 + ldrb r0, [r7] + adds r0, r0, r1 + ldrb r0, [r0] + add r0, sp + ldrb r0, [r0] + ldr r2, [sp, #0x1c] + strb r0, [r2] + ldrb r0, [r7] + adds r0, r0, r1 + ldrb r0, [r0] + mov r3, sp + adds r2, r3, r0 + ldr r1, _080580EC + ldrb r0, [r1] + add r0, sp + ldrb r0, [r0] + movs r3, #0 + strb r0, [r2] + ldrb r0, [r1] + mov r5, sp + adds r1, r5, r0 + ldr r2, [sp, #0x1c] + ldrb r0, [r2] + strb r0, [r1] + strb r3, [r2] + movs r6, #0 + ldr r2, [sp, #0x1c] +_08057EAE: + mov r3, sp + adds r0, r3, r6 + ldrb r1, [r0] + lsls r0, r6, #1 + lsls r1, r0 + ldrb r0, [r2] + orrs r0, r1 + strb r0, [r2] + adds r6, #1 + cmp r6, #3 + ble _08057EAE + ldrb r1, [r7] + movs r0, #0x58 + muls r0, r1, r0 + add r0, sl + adds r0, #0x3b + ldr r5, [sp, #0x1c] + ldrb r1, [r5] + strb r1, [r0] + movs r6, #0 + adds r4, r7, #0 + movs r3, #0x58 + movs r0, #0x24 + add r0, sl + mov r8, r0 + mov r2, sb + mov r7, sl + adds r7, #0xc + mov r5, ip +_08057EE8: + lsls r1, r6, #1 + ldrb r0, [r4] + muls r0, r3, r0 + adds r1, r1, r0 + adds r1, r1, r7 + ldrh r0, [r2] + strh r0, [r1] + ldrb r0, [r4] + adds r1, r0, #0 + muls r1, r3, r1 + adds r1, r6, r1 + add r1, r8 + adds r0, r5, r6 + ldrb r0, [r0] + strb r0, [r1] + adds r2, #2 + adds r6, #1 + cmp r6, #3 + ble _08057EE8 + ldr r2, _080580E8 + ldrb r1, [r2] + movs r0, #0x58 + muls r0, r1, r0 + mov r1, sl + adds r1, #0x50 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xe + ands r0, r1 + cmp r0, #0 + beq _08057F2A + b _080580B8 +_08057F2A: + movs r6, #0 + mov r1, sp + adds r1, #4 + str r1, [sp, #0x20] + add r3, sp, #0xc + mov sl, r3 + ldr r5, _08058100 + mov sb, r5 + mov r8, r2 + movs r7, #0x64 + ldr r5, _08058104 + adds r4, r1, #0 +_08057F42: + mov r1, r8 + ldrb r0, [r1] + lsls r0, r0, #1 + add r0, sb + ldrh r0, [r0] + muls r0, r7, r0 + adds r0, r0, r5 + adds r1, r6, #0 + adds r1, #0xd + bl GetMonData + strh r0, [r4] + mov r2, r8 + ldrb r0, [r2] + lsls r0, r0, #1 + add r0, sb + ldrh r0, [r0] + muls r0, r7, r0 + adds r0, r0, r5 + adds r1, r6, #0 + adds r1, #0x11 + bl GetMonData + mov r3, sl + adds r1, r3, r6 + strb r0, [r1] + adds r4, #2 + adds r6, #1 + cmp r6, #3 + ble _08057F42 + ldr r1, _08058100 + ldr r0, _080580E8 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08058104 + adds r0, r0, r1 + movs r1, #0x15 + bl GetMonData + ldr r5, [sp, #0x1c] + strb r0, [r5] + movs r6, #0 + movs r5, #3 + ldr r4, [sp, #0x1c] +_08057FA2: + mov r0, sp + adds r3, r0, r6 + lsls r2, r6, #1 + adds r1, r5, #0 + lsls r1, r2 + ldrb r0, [r4] + ands r0, r1 + asrs r0, r2 + strb r0, [r3] + adds r6, #1 + cmp r6, #3 + ble _08057FA2 + ldr r4, _080580E4 + ldr r3, _080580E8 + ldrb r0, [r3] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r1, r1, #1 + ldr r2, [sp, #0x20] + adds r1, r2, r1 + ldrh r6, [r1] + ldr r2, _080580EC + ldrb r0, [r2] + lsls r0, r0, #1 + ldr r5, [sp, #0x20] + adds r0, r5, r0 + ldrh r0, [r0] + movs r5, #0 + strh r0, [r1] + ldrb r0, [r2] + lsls r0, r0, #1 + ldr r1, [sp, #0x20] + adds r0, r1, r0 + strh r6, [r0] + ldrb r0, [r3] + adds r0, r0, r4 + ldrb r1, [r0] + add r1, sl + ldrb r6, [r1] + ldrb r0, [r2] + add r0, sl + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r2] + add r0, sl + strb r6, [r0] + ldrb r0, [r3] + adds r0, r0, r4 + ldrb r0, [r0] + add r0, sp + ldrb r0, [r0] + ldr r1, [sp, #0x1c] + strb r0, [r1] + ldrb r0, [r3] + adds r0, r0, r4 + ldrb r0, [r0] + mov r3, sp + adds r1, r3, r0 + ldrb r0, [r2] + add r0, sp + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r2] + adds r1, r3, r0 + ldr r2, [sp, #0x1c] + ldrb r0, [r2] + strb r0, [r1] + strb r5, [r2] + movs r6, #0 + ldr r2, [sp, #0x1c] +_0805802E: + mov r3, sp + adds r0, r3, r6 + ldrb r1, [r0] + lsls r0, r6, #1 + lsls r1, r0 + ldrb r0, [r2] + orrs r0, r1 + strb r0, [r2] + adds r6, #1 + cmp r6, #3 + ble _0805802E + movs r6, #0 + ldr r5, _08058100 + mov sl, r5 + ldr r0, _080580E8 + mov sb, r0 + movs r1, #0x64 + mov r8, r1 + ldr r7, _08058104 + ldr r5, [sp, #0x20] + adds r5, #8 + ldr r4, [sp, #0x20] +_0805805A: + mov r2, sb + ldrb r0, [r2] + lsls r0, r0, #1 + add r0, sl + ldrh r0, [r0] + mov r3, r8 + muls r3, r0, r3 + adds r0, r3, #0 + adds r0, r0, r7 + adds r1, r6, #0 + adds r1, #0xd + adds r2, r4, #0 + bl SetMonData + mov r1, sb + ldrb r0, [r1] + lsls r0, r0, #1 + add r0, sl + ldrh r0, [r0] + mov r2, r8 + muls r2, r0, r2 + adds r0, r2, #0 + adds r0, r0, r7 + adds r1, r6, #0 + adds r1, #0x11 + adds r2, r5, #0 + bl SetMonData + adds r5, #1 + adds r4, #2 + adds r6, #1 + cmp r6, #3 + ble _0805805A + ldr r1, _08058100 + ldr r0, _080580E8 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08058104 + adds r0, r0, r1 + movs r1, #0x15 + ldr r2, [sp, #0x1c] + bl SetMonData +_080580B8: + ldr r1, _08058108 + ldr r2, _080580E8 + ldrb r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805810C + str r1, [r0] + ldr r3, _080580E4 + ldrb r0, [r2] + adds r0, r0, r3 + ldr r1, _080580EC + ldrb r1, [r1] + strb r1, [r0] + ldrb r0, [r2] + adds r0, r0, r3 + ldrb r0, [r0] + movs r1, #0 + bl MoveSelectionCreateCursorAt + b _08058142 + .align 2, 0 +_080580E0: .4byte 0x03002360 +_080580E4: .4byte 0x02024154 +_080580E8: .4byte 0x02023D08 +_080580EC: .4byte 0x03005AD4 +_080580F0: .4byte 0x02022D0C +_080580F4: .4byte 0x02023F60 +_080580F8: .4byte 0x082FACB4 +_080580FC: .4byte 0x02023D28 +_08058100: .4byte 0x02023D12 +_08058104: .4byte 0x02024190 +_08058108: .4byte 0x03005AC0 +_0805810C: .4byte 0x0805780D +_08058110: + movs r0, #6 + ands r0, r1 + cmp r0, #0 + beq _08058164 + movs r0, #5 + bl PlaySE + ldr r0, _08058150 + ldrb r0, [r0] + bl MoveSelectionDestroyCursorAt + ldr r1, _08058154 + ldr r4, _08058158 + ldrb r0, [r4] + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0 + bl MoveSelectionCreateCursorAt + ldr r1, _0805815C + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08058160 + str r1, [r0] +_08058142: + bl PlayerHandleTwoReturnValues + bl MoveSelectionDisplayPpNumber + bl ActionSelectionCreateCursorAt + b _080582F8 + .align 2, 0 +_08058150: .4byte 0x03005AD4 +_08058154: .4byte 0x02024154 +_08058158: .4byte 0x02023D08 +_0805815C: .4byte 0x03005AC0 +_08058160: .4byte 0x0805780D +_08058164: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080581B4 + ldr r3, _08058194 + ldrb r2, [r3] + movs r0, #1 + ands r0, r2 + cmp r0, #0 + bne _0805817A + b _080582F8 +_0805817A: + ldr r0, _08058198 + ldr r1, _0805819C + ldrb r1, [r1] + adds r1, r1, r0 + ldrb r5, [r1] + cmp r2, r5 + bne _080581A0 +_08058188: + ldrb r0, [r1] + movs r1, #0x1d + bl MoveSelectionCreateCursorAt + b _080581A6 + .align 2, 0 +_08058194: .4byte 0x03005AD4 +_08058198: .4byte 0x02024154 +_0805819C: .4byte 0x02023D08 +_080581A0: + ldrb r0, [r3] + bl MoveSelectionDestroyCursorAt +_080581A6: + ldr r4, _080581B0 + ldrb r0, [r4] + movs r1, #1 + b _0805823C + .align 2, 0 +_080581B0: .4byte 0x03005AD4 +_080581B4: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080581F8 + ldr r3, _080581E8 + ldrb r2, [r3] + movs r0, #1 + ands r0, r2 + cmp r0, #0 + beq _080581CA + b _080582F8 +_080581CA: + ldr r1, _080581EC + movs r0, #1 + eors r0, r2 + ldrb r1, [r1] + cmp r0, r1 + blo _080581D8 + b _080582F8 +_080581D8: + ldr r0, _080581F0 + ldr r1, _080581F4 + ldrb r1, [r1] + adds r1, r1, r0 + ldrb r0, [r1] + cmp r2, r0 + beq _08058188 + b _080581A0 + .align 2, 0 +_080581E8: .4byte 0x03005AD4 +_080581EC: .4byte 0x03005AD8 +_080581F0: .4byte 0x02024154 +_080581F4: .4byte 0x02023D08 +_080581F8: + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0805826C + ldr r3, _08058224 + ldrb r2, [r3] + movs r0, #2 + ands r0, r2 + cmp r0, #0 + beq _080582F8 + ldr r0, _08058228 + ldr r1, _0805822C + ldrb r1, [r1] + adds r1, r1, r0 + ldrb r5, [r1] + cmp r2, r5 + bne _08058230 + ldrb r0, [r1] + movs r1, #0x1d + bl MoveSelectionCreateCursorAt + b _08058236 + .align 2, 0 +_08058224: .4byte 0x03005AD4 +_08058228: .4byte 0x02024154 +_0805822C: .4byte 0x02023D08 +_08058230: + ldrb r0, [r3] + bl MoveSelectionDestroyCursorAt +_08058236: + ldr r4, _08058260 + ldrb r0, [r4] + movs r1, #2 +_0805823C: + eors r0, r1 + strb r0, [r4] + movs r0, #5 + bl PlaySE + ldr r1, _08058264 + ldr r0, _08058268 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r4] + ldrb r0, [r0] + cmp r1, r0 + beq _080582DA + ldrb r0, [r4] + movs r1, #0x1b + bl MoveSelectionCreateCursorAt + b _080582F8 + .align 2, 0 +_08058260: .4byte 0x03005AD4 +_08058264: .4byte 0x02024154 +_08058268: .4byte 0x02023D08 +_0805826C: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080582F8 + ldr r3, _080582A4 + ldrb r2, [r3] + movs r0, #2 + ands r0, r2 + cmp r0, #0 + bne _080582F8 + ldr r1, _080582A8 + movs r0, #2 + eors r0, r2 + ldrb r1, [r1] + cmp r0, r1 + bhs _080582F8 + ldr r0, _080582AC + ldr r1, _080582B0 + ldrb r1, [r1] + adds r1, r1, r0 + ldrb r0, [r1] + cmp r2, r0 + bne _080582B4 + ldrb r0, [r1] + movs r1, #0x1d + bl MoveSelectionCreateCursorAt + b _080582BA + .align 2, 0 +_080582A4: .4byte 0x03005AD4 +_080582A8: .4byte 0x03005AD8 +_080582AC: .4byte 0x02024154 +_080582B0: .4byte 0x02023D08 +_080582B4: + ldrb r0, [r3] + bl MoveSelectionDestroyCursorAt +_080582BA: + ldr r4, _080582E4 + ldrb r0, [r4] + movs r1, #2 + eors r0, r1 + strb r0, [r4] + movs r0, #5 + bl PlaySE + ldr r1, _080582E8 + ldr r0, _080582EC + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r4] + ldrb r0, [r0] + cmp r1, r0 + bne _080582F0 +_080582DA: + adds r0, r1, #0 + movs r1, #0 + bl MoveSelectionCreateCursorAt + b _080582F8 + .align 2, 0 +_080582E4: .4byte 0x03005AD4 +_080582E8: .4byte 0x02024154 +_080582EC: .4byte 0x02023D08 +_080582F0: + ldrb r0, [r4] + movs r1, #0x1b + bl MoveSelectionCreateCursorAt +_080582F8: + add sp, #0x24 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end HandleMoveSwitching + + thumb_func_start sub_08058308 +sub_08058308: @ 0x08058308 + push {lr} + ldr r0, _08058350 + ldrb r0, [r0] + cmp r0, #0 + bne _0805836C + ldr r0, _08058354 + ldrb r0, [r0] + cmp r0, #0 + bne _080583A8 + movs r0, #0x5a + bl m4aSongNumStop + ldr r3, _08058358 + ldr r0, _0805835C + adds r2, r3, r0 + ldrb r1, [r2] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldr r0, _08058360 + ldr r0, [r0] + str r0, [r3] + ldr r0, _08058364 + bl SetMainCallback2 + ldr r0, _08058368 + ldrb r0, [r0] + cmp r0, #1 + bne _08058348 + bl TryPutLinkBattleTvShowOnAir +_08058348: + bl FreeAllWindowBuffers + b _080583A8 + .align 2, 0 +_08058350: .4byte 0x0300319C +_08058354: .4byte 0x030031C4 +_08058358: .4byte 0x03002360 +_0805835C: .4byte 0x00000439 +_08058360: .4byte 0x03005A60 +_08058364: .4byte 0x08038A19 +_08058368: .4byte 0x02023FDE +_0805836C: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080583A8 + movs r0, #0x5a + bl m4aSongNumStop + ldr r3, _080583AC + ldr r0, _080583B0 + adds r2, r3, r0 + ldrb r1, [r2] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldr r0, _080583B4 + ldr r0, [r0] + str r0, [r3] + ldr r0, _080583B8 + bl SetMainCallback2 + ldr r0, _080583BC + ldrb r0, [r0] + cmp r0, #1 + bne _080583A4 + bl TryPutLinkBattleTvShowOnAir +_080583A4: + bl FreeAllWindowBuffers +_080583A8: + pop {r0} + bx r0 + .align 2, 0 +_080583AC: .4byte 0x03002360 +_080583B0: .4byte 0x00000439 +_080583B4: .4byte 0x03005A60 +_080583B8: .4byte 0x08038A19 +_080583BC: .4byte 0x02023FDE + thumb_func_end sub_08058308 + + thumb_func_start sub_080583C0 +sub_080583C0: @ 0x080583C0 + push {lr} + ldr r0, _080583F4 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08058442 + ldr r0, _080583F8 + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _08058420 + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08058442 + ldr r0, _080583FC + ldrb r0, [r0] + cmp r0, #0 + bne _08058400 + bl sub_0800A7F8 + b _08058404 + .align 2, 0 +_080583F4: .4byte 0x02037C74 +_080583F8: .4byte 0x02022C90 +_080583FC: .4byte 0x0300319C +_08058400: + bl sub_0800A8D4 +_08058404: + ldr r1, _08058414 + ldr r0, _08058418 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805841C + str r1, [r0] + b _08058442 + .align 2, 0 +_08058414: .4byte 0x03005AC0 +_08058418: .4byte 0x02023D08 +_0805841C: .4byte 0x08058309 +_08058420: + movs r0, #0x5a + bl m4aSongNumStop + ldr r2, _08058448 + ldr r0, _0805844C + adds r3, r2, r0 + ldrb r1, [r3] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3] + ldr r0, _08058450 + ldr r0, [r0] + str r0, [r2] + ldr r0, [r2, #8] + bl SetMainCallback2 +_08058442: + pop {r0} + bx r0 + .align 2, 0 +_08058448: .4byte 0x03002360 +_0805844C: .4byte 0x00000439 +_08058450: .4byte 0x03005A60 + thumb_func_end sub_080583C0 + + thumb_func_start PlayerHandleIntroSlide +PlayerHandleIntroSlide: @ 0x08058454 + push {lr} + ldr r2, _0805847C + ldr r1, _08058480 + ldr r0, _08058484 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _08058488 + cmp r1, r0 + bne _08058478 + bl PlayerBufferExecCompleted +_08058478: + pop {r0} + bx r0 + .align 2, 0 +_0805847C: .4byte 0x020205AC +_08058480: .4byte 0x02023E88 +_08058484: .4byte 0x02023D08 +_08058488: .4byte 0x08007141 + thumb_func_end PlayerHandleIntroSlide + + thumb_func_start PlayerHandleChosenMonReturnValue +PlayerHandleChosenMonReturnValue: @ 0x0805848C + push {lr} + ldr r2, _080584B4 + ldr r1, _080584B8 + ldr r0, _080584BC + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _080584C0 + cmp r1, r0 + bne _080584B0 + bl PlayerBufferExecCompleted +_080584B0: + pop {r0} + bx r0 + .align 2, 0 +_080584B4: .4byte 0x020205AC +_080584B8: .4byte 0x02023E88 +_080584BC: .4byte 0x02023D08 +_080584C0: .4byte 0x08007141 + thumb_func_end PlayerHandleChosenMonReturnValue + + thumb_func_start sub_080584C4 +sub_080584C4: @ 0x080584C4 + push {r4, r5, r6, lr} + ldr r6, _08058520 + ldr r5, _08058524 + ldr r4, _08058528 + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r6, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, [r0] + ldr r0, _0805852C + cmp r1, r0 + bne _08058518 + ldr r0, _08058530 + ldr r0, [r0] + ldrb r0, [r0, #8] + bl sub_0805DBFC + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + bl FreeSpriteOamMatrix + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + bl DestroySprite + bl PlayerBufferExecCompleted +_08058518: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08058520: .4byte 0x020205AC +_08058524: .4byte 0x02023E88 +_08058528: .4byte 0x02023D08 +_0805852C: .4byte 0x08007141 +_08058530: .4byte 0x03005AF0 + thumb_func_end sub_080584C4 + + thumb_func_start sub_08058534 +sub_08058534: @ 0x08058534 + push {r4, lr} + ldr r4, _08058574 + ldr r1, [r4] + ldr r3, _08058578 + ldrb r0, [r3] + ldr r2, [r1, #4] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r0, [r1, #9] + subs r0, #1 + strb r0, [r1, #9] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _0805856C + ldr r0, [r4] + ldrb r1, [r3] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0 + strb r1, [r0, #9] + bl PlayerBufferExecCompleted +_0805856C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08058574: .4byte 0x02024174 +_08058578: .4byte 0x02023D08 + thumb_func_end sub_08058534 + + thumb_func_start sub_0805857C +sub_0805857C: @ 0x0805857C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + movs r7, #0 + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080585A8 + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080585E0 + ldr r0, _080585CC + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080585E0 +_080585A8: + ldr r2, _080585D0 + ldr r1, _080585D4 + ldr r3, _080585D8 + ldrb r0, [r3] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _080585DC + mov sl, r3 + cmp r1, r0 + bne _0805861A + b _0805861E + .align 2, 0 +_080585CC: .4byte 0x02022C90 +_080585D0: .4byte 0x020205AC +_080585D4: .4byte 0x03005AD0 +_080585D8: .4byte 0x02023D08 +_080585DC: .4byte 0x08007141 +_080585E0: + ldr r3, _08058728 + ldr r6, _0805872C + ldr r2, _08058730 + ldrb r4, [r2] + adds r0, r4, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r5, r3, #0 + adds r5, #0x1c + adds r0, r0, r5 + ldr r3, [r0] + ldr r0, _08058734 + mov sl, r2 + cmp r3, r0 + bne _0805861A + movs r0, #2 + eors r4, r0 + adds r0, r4, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r0, [r0] + cmp r0, r3 + bne _0805861A + movs r7, #1 +_0805861A: + cmp r7, #0 + beq _08058718 +_0805861E: + ldr r0, _08058738 + mov sb, r0 + ldr r0, [r0] + mov r6, sl + ldrb r2, [r6] + ldr r3, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r4, r0, r3 + ldrb r1, [r4, #1] + movs r5, #1 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _08058718 + movs r1, #2 + mov r8, r1 + mov r1, r8 + eors r1, r2 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #1] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _08058718 + ldrb r1, [r4] + movs r3, #0x7f + adds r0, r3, #0 + ands r0, r1 + strb r0, [r4] + mov r2, sb + ldr r0, [r2] + ldrb r2, [r6] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + movs r4, #2 + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r2 + strb r0, [r1, #1] + mov r0, sb + ldr r2, [r0] + ldrb r0, [r6] + mov r1, r8 + eors r1, r0 + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + ands r3, r1 + strb r3, [r0] + mov r1, sb + ldr r2, [r1] + ldrb r0, [r6] + mov r1, r8 + eors r1, r0 + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #1] + ands r4, r1 + strb r4, [r0, #1] + ldr r4, _0805873C + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl FreeSpritePaletteByTag + ldr r7, _08058740 + ldrb r1, [r6] + lsls r0, r1, #1 + adds r0, r0, r7 + ldrh r0, [r0] + movs r5, #0x64 + muls r0, r5, r0 + ldr r4, _08058744 + adds r0, r0, r4 + bl HandleLowHpMusicChange + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080586F4 + ldrb r0, [r6] + mov r1, r8 + eors r1, r0 + lsls r0, r1, #1 + adds r0, r0, r7 + ldrh r0, [r0] + muls r0, r5, r0 + adds r0, r0, r4 + bl HandleLowHpMusicChange +_080586F4: + mov r2, sb + ldr r0, [r2] + mov r2, sl + ldrb r1, [r2] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #3 + strb r1, [r0, #9] + ldr r1, _08058748 + mov r2, sl + ldrb r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805874C + str r1, [r0] +_08058718: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08058728: .4byte 0x020205AC +_0805872C: .4byte 0x03005AD0 +_08058730: .4byte 0x02023D08 +_08058734: .4byte 0x08007141 +_08058738: .4byte 0x02024174 +_0805873C: .4byte 0x000027F9 +_08058740: .4byte 0x02023D12 +_08058744: .4byte 0x02024190 +_08058748: .4byte 0x03005AC0 +_0805874C: .4byte 0x08058535 + thumb_func_end sub_0805857C + + thumb_func_start sub_08058750 +sub_08058750: @ 0x08058750 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + movs r0, #0 + mov sb, r0 + mov r8, r0 + ldr r4, _080588FC + ldr r0, [r4] + ldr r7, _08058900 + ldrb r2, [r7] + ldr r1, [r0, #4] + lsls r3, r2, #1 + adds r0, r3, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r5, #0x88 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + bne _08058790 + ldr r0, _08058904 + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _08058908 + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_08172CD4 +_08058790: + ldr r1, [r4] + ldrb r0, [r7] + movs r6, #2 + adds r2, r6, #0 + eors r2, r0 + ldr r1, [r1, #4] + lsls r3, r2, #1 + adds r0, r3, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + bne _080587C2 + ldr r0, _08058904 + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _08058908 + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_08172CD4 +_080587C2: + ldr r0, [r4] + ldrb r2, [r7] + ldr r3, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r4, r0, r3 + ldrb r1, [r4] + movs r5, #8 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + bne _08058892 + adds r1, r6, #0 + eors r1, r2 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + bne _08058892 + ldrb r1, [r4, #1] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08058878 + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08058848 + ldr r0, _0805890C + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08058848 + ldr r4, _08058910 + ldrb r0, [r7] + adds r1, r6, #0 + eors r1, r0 + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, _08058904 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _08058908 + adds r1, r1, r2 + movs r2, #0 + bl UpdateHealthboxAttribute + ldrb r0, [r7] + eors r0, r6 + bl sub_08076320 + ldrb r0, [r7] + eors r0, r6 + adds r0, r0, r4 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible +_08058848: + ldr r5, _08058910 + ldr r4, _08058900 + ldrb r1, [r4] + adds r0, r1, r5 + ldrb r0, [r0] + ldr r2, _08058904 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _08058908 + adds r1, r1, r2 + movs r2, #0 + bl UpdateHealthboxAttribute + ldrb r0, [r4] + bl sub_08076320 + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible +_08058878: + ldr r0, _080588FC + ldr r2, [r0] + ldr r0, _08058900 + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #1] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0, #1] +_08058892: + ldr r5, _080588FC + ldr r0, [r5] + ldr r4, _08058900 + ldrb r2, [r4] + ldr r3, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #1] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0x80 + bne _08058942 + movs r1, #2 + eors r1, r2 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #1] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08058942 + bl IsCryPlayingOrClearCrySongs + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08058942 + ldr r0, [r5] + ldrb r1, [r4] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #1] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _08058924 + ldr r0, _0805890C + ldr r0, [r0] + movs r1, #0x42 + ands r0, r1 + cmp r0, #0x42 + bne _08058918 + ldr r0, _08058914 + bl m4aMPlayContinue + b _08058924 + .align 2, 0 +_080588FC: .4byte 0x02024174 +_08058900: .4byte 0x02023D08 +_08058904: .4byte 0x02023D12 +_08058908: .4byte 0x02024190 +_0805890C: .4byte 0x02022C90 +_08058910: .4byte 0x03005AD0 +_08058914: .4byte 0x030074D0 +_08058918: + ldr r0, _08058998 + ldr r1, _0805899C + movs r2, #0x80 + lsls r2, r2, #1 + bl m4aMPlayVolumeControl +_08058924: + ldr r0, _080589A0 + ldr r2, [r0] + ldr r0, _080589A4 + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #1] + movs r2, #0x20 + orrs r1, r2 + strb r1, [r0, #1] + movs r0, #1 + mov sb, r0 +_08058942: + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08058962 + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080589BC + ldr r0, _080589A8 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080589BC +_08058962: + ldr r2, _080589AC + ldr r0, _080589B0 + ldr r1, _080589A4 + ldrb r4, [r1] + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r3, [r0] + ldr r0, _080589B4 + cmp r3, r0 + bne _08058A1A + ldr r0, _080589B8 + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + cmp r0, r3 + bne _08058A1A + b _08058A16 + .align 2, 0 +_08058998: .4byte 0x030074D0 +_0805899C: .4byte 0x0000FFFF +_080589A0: .4byte 0x02024174 +_080589A4: .4byte 0x02023D08 +_080589A8: .4byte 0x02022C90 +_080589AC: .4byte 0x020205AC +_080589B0: .4byte 0x03005ADC +_080589B4: .4byte 0x08007141 +_080589B8: .4byte 0x02023E88 +_080589BC: + ldr r2, _08058AC8 + ldr r7, _08058ACC + ldr r0, _08058AD0 + ldrb r3, [r0] + adds r0, r3, r7 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r4, [r0] + ldr r0, _08058AD4 + cmp r4, r0 + bne _08058A1A + ldr r6, _08058AD8 + adds r0, r3, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r5, [r0] + cmp r5, r4 + bne _08058A1A + movs r0, #2 + eors r3, r0 + adds r0, r3, r7 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r4, [r0] + cmp r4, r5 + bne _08058A1A + adds r0, r3, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + cmp r0, r4 + bne _08058A1A +_08058A16: + movs r0, #1 + mov r8, r0 +_08058A1A: + mov r0, sb + cmp r0, #0 + beq _08058ABA + mov r0, r8 + cmp r0, #0 + beq _08058ABA + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08058A58 + ldr r0, _08058ADC + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08058A58 + ldr r2, _08058ACC + ldr r0, _08058AD0 + ldrb r1, [r0] + movs r0, #2 + eors r0, r1 + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08058AC8 + adds r0, r0, r1 + bl DestroySprite +_08058A58: + ldr r1, _08058ACC + ldr r4, _08058AD0 + ldrb r0, [r4] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08058AC8 + adds r0, r0, r1 + bl DestroySprite + ldr r3, _08058AE0 + ldr r0, [r3] + ldr r2, [r0, #8] + ldrb r1, [r2, #9] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #9] + ldr r0, [r3] + ldrb r2, [r4] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + movs r0, #0x21 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #1] + ldr r0, [r3] + ldrb r2, [r4] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + movs r0, #0x7f + ands r0, r2 + strb r0, [r1, #1] + ldr r1, _08058AE4 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08058AE8 + str r1, [r0] +_08058ABA: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08058AC8: .4byte 0x020205AC +_08058ACC: .4byte 0x03005ADC +_08058AD0: .4byte 0x02023D08 +_08058AD4: .4byte 0x08007141 +_08058AD8: .4byte 0x02023E88 +_08058ADC: .4byte 0x02022C90 +_08058AE0: .4byte 0x02024174 +_08058AE4: .4byte 0x03005AC0 +_08058AE8: .4byte 0x0805857D + thumb_func_end sub_08058750 + + thumb_func_start sub_08058AEC +sub_08058AEC: @ 0x08058AEC + push {r4, r5, r6, lr} + ldr r2, _08058BAC + ldr r0, _08058BB0 + ldr r6, _08058BB4 + ldrb r3, [r6] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r4, [r0] + ldr r0, _08058BB8 + cmp r4, r0 + bne _08058BA4 + ldr r5, _08058BBC + ldr r0, [r5] + ldr r1, [r0, #4] + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #1] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08058BA4 + ldr r0, _08058BC0 + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + cmp r0, r4 + bne _08058BA4 + adds r0, r3, #0 + bl CopyBattleSpriteInvisibility + ldr r0, [r5] + ldrb r2, [r6] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #0x7f + ands r0, r2 + strb r0, [r1] + ldr r0, [r5] + ldrb r2, [r6] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #1] + ldr r4, _08058BC4 + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl FreeSpritePaletteByTag + ldr r0, [r5] + ldrb r2, [r6] + ldr r1, [r0] + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08058B98 + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #6 + bl InitAndLaunchSpecialAnimation +_08058B98: + ldr r0, _08058BC8 + ldrb r1, [r6] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, _08058BCC + str r0, [r1] +_08058BA4: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08058BAC: .4byte 0x020205AC +_08058BB0: .4byte 0x03005AD0 +_08058BB4: .4byte 0x02023D08 +_08058BB8: .4byte 0x08007141 +_08058BBC: .4byte 0x02024174 +_08058BC0: .4byte 0x02023E88 +_08058BC4: .4byte 0x000027F9 +_08058BC8: .4byte 0x03005AC0 +_08058BCC: .4byte 0x08058BD1 + thumb_func_end sub_08058AEC + + thumb_func_start sub_08058BD0 +sub_08058BD0: @ 0x08058BD0 + push {r4, lr} + ldr r0, _08058C24 + ldr r0, [r0] + ldr r4, _08058C28 + ldrb r1, [r4] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08058C1E + bl IsCryPlayingOrClearCrySongs + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08058C1E + ldr r0, _08058C2C + ldr r1, _08058C30 + movs r2, #0x80 + lsls r2, r2, #1 + bl m4aMPlayVolumeControl + ldr r2, _08058C34 + ldrb r1, [r4] + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r2, [r0] + movs r0, #0x64 + muls r0, r2, r0 + ldr r2, _08058C38 + adds r0, r0, r2 + bl HandleLowHpMusicChange + bl PlayerBufferExecCompleted +_08058C1E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08058C24: .4byte 0x02024174 +_08058C28: .4byte 0x02023D08 +_08058C2C: .4byte 0x030074D0 +_08058C30: .4byte 0x0000FFFF +_08058C34: .4byte 0x02023D12 +_08058C38: .4byte 0x02024190 + thumb_func_end sub_08058BD0 + + thumb_func_start sub_08058C3C +sub_08058C3C: @ 0x08058C3C + push {r4, r5, r6, lr} + ldr r6, _08058CE8 + ldr r0, [r6] + ldr r5, _08058CEC + ldrb r2, [r5] + ldr r1, [r0, #4] + lsls r3, r2, #1 + adds r0, r3, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x88 + ands r0, r1 + cmp r0, #0 + bne _08058C6E + ldr r0, _08058CF0 + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _08058CF4 + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_08172CD4 +_08058C6E: + ldr r4, _08058CF8 + ldr r0, _08058CFC + ldrb r2, [r5] + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r3, r0, #2 + adds r0, r4, #0 + adds r0, #0x1c + adds r0, r3, r0 + ldr r1, [r0] + ldr r0, _08058D00 + cmp r1, r0 + bne _08058CE2 + ldr r0, [r6] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + bne _08058CE2 + adds r0, r3, r4 + bl DestroySprite + ldr r4, _08058D04 + ldrb r1, [r5] + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, _08058CF0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _08058CF4 + adds r1, r1, r2 + movs r2, #0 + bl UpdateHealthboxAttribute + ldrb r0, [r5] + bl sub_08076320 + ldrb r0, [r5] + adds r0, r0, r4 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible + ldr r1, _08058D08 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08058D0C + str r1, [r0] +_08058CE2: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08058CE8: .4byte 0x02024174 +_08058CEC: .4byte 0x02023D08 +_08058CF0: .4byte 0x02023D12 +_08058CF4: .4byte 0x02024190 +_08058CF8: .4byte 0x020205AC +_08058CFC: .4byte 0x03005ADC +_08058D00: .4byte 0x08007141 +_08058D04: .4byte 0x03005AD0 +_08058D08: .4byte 0x03005AC0 +_08058D0C: .4byte 0x08058AED + thumb_func_end sub_08058C3C + + thumb_func_start c3_0802FDF4 +c3_0802FDF4: @ 0x08058D10 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl IsCryPlayingOrClearCrySongs + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08058D32 + ldr r0, _08058D38 + ldr r1, _08058D3C + movs r2, #0x80 + lsls r2, r2, #1 + bl m4aMPlayVolumeControl + adds r0, r4, #0 + bl DestroyTask +_08058D32: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08058D38: .4byte 0x030074D0 +_08058D3C: .4byte 0x0000FFFF + thumb_func_end c3_0802FDF4 + + thumb_func_start MoveSelectionDisplayMoveType +MoveSelectionDisplayMoveType: @ 0x08058D40 + push {r4, r5, r6, lr} + ldr r5, _08058D80 + ldrb r0, [r5] + ldr r6, _08058D84 + adds r1, r0, r6 + ldrb r1, [r1] + movs r2, #0 + movs r3, #0 + bl MoveBattleBar + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible + lsls r4, r4, #0x10 + asrs r1, r4, #0x10 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _08058D88 + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r0, [r0] + movs r2, #0 + bl sub_080726F4 + b _08058DA2 + .align 2, 0 +_08058D80: .4byte 0x02023D08 +_08058D84: .4byte 0x03005AD0 +_08058D88: + ldr r2, _08058DA8 + ldrb r1, [r5] + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r2, [r0] + movs r0, #0x64 + muls r0, r2, r0 + ldr r2, _08058DAC + adds r0, r0, r2 + bl HandleLowHpMusicChange + bl PlayerBufferExecCompleted +_08058DA2: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08058DA8: .4byte 0x02023D12 +_08058DAC: .4byte 0x02024190 + thumb_func_end MoveSelectionDisplayMoveType + + thumb_func_start PlayerHandleCmd42 +PlayerHandleCmd42: @ 0x08058DB0 + push {lr} + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08058DC2 + bl PlayerBufferExecCompleted +_08058DC2: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerHandleCmd42 + + thumb_func_start sub_08058DC8 +sub_08058DC8: @ 0x08058DC8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldr r1, _08058EC8 + lsls r0, r0, #2 + add r0, sb + lsls r0, r0, #3 + adds r0, r0, r1 + mov r8, r0 + ldrb r0, [r0, #8] + mov sl, r0 + mov r1, r8 + ldrb r7, [r1, #0xc] + str r7, [sp, #8] + ldrh r2, [r1, #0xa] + str r2, [sp, #0xc] + bl IsDoubleBattle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08058E0E + ldr r1, _08058ECC + lsls r0, r7, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp sl, r0 + bne _08058E0E + b _08058F24 +_08058E0E: + movs r0, #0x64 + mov r1, sl + muls r1, r0, r1 + ldr r0, _08058ED0 + adds r6, r1, r0 + adds r0, r6, #0 + movs r1, #0xb + bl GetMonData + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + adds r0, r6, #0 + movs r1, #0x38 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r6, #0 + movs r1, #0x19 + bl GetMonData + str r0, [sp, #4] + ldr r3, _08058ED4 + adds r4, #1 + lsls r4, r4, #2 + ldr r2, _08058ED8 + lsls r1, r5, #3 + subs r1, r1, r5 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r2, [r1, #0x13] + movs r1, #0xca + lsls r1, r1, #1 + muls r1, r2, r1 + adds r4, r4, r1 + adds r4, r4, r3 + ldr r2, [r4] + str r2, [sp] + ldr r3, [sp, #0xc] + lsls r1, r3, #0x10 + asrs r1, r1, #0x10 + adds r0, r0, r1 + cmp r0, r2 + blo _08058EFC + adds r0, r6, #0 + movs r1, #0x19 + mov r2, sp + bl SetMonData + adds r0, r6, #0 + bl CalculateMonStats + ldr r2, [sp] + add r0, sp, #4 + ldrh r0, [r0] + subs r2, r2, r0 + ldr r0, [sp, #0xc] + subs r2, r0, r2 + ldr r4, _08058EDC + ldrb r5, [r4] + strb r7, [r4] + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + movs r0, #1 + movs r1, #0xb + bl BtlController_EmitTwoReturnValues + strb r5, [r4] + bl IsDoubleBattle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08058EE4 + ldr r2, _08058ECC + lsls r0, r7, #1 + adds r0, r0, r2 + mov r1, sl + ldrh r0, [r0] + cmp r1, r0 + beq _08058EC2 + movs r0, #2 + eors r7, r0 + lsls r0, r7, #1 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r1, r0 + bne _08058EE4 +_08058EC2: + ldr r0, _08058EE0 + b _08058F26 + .align 2, 0 +_08058EC8: .4byte 0x03005B60 +_08058ECC: .4byte 0x02023D12 +_08058ED0: .4byte 0x02024190 +_08058ED4: .4byte 0x082F00B4 +_08058ED8: .4byte 0x082F0D54 +_08058EDC: .4byte 0x02023D08 +_08058EE0: .4byte 0x08059155 +_08058EE4: + ldr r0, _08058EF4 + mov r2, sb + lsls r1, r2, #2 + add r1, sb + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _08058EF8 + b _08058F28 + .align 2, 0 +_08058EF4: .4byte 0x03005B60 +_08058EF8: .4byte 0x0805926D +_08058EFC: + str r0, [sp, #4] + add r2, sp, #4 + adds r0, r6, #0 + movs r1, #0x19 + bl SetMonData + ldr r1, _08058F1C + ldr r3, [sp, #8] + lsls r0, r3, #2 + adds r0, r0, r1 + ldr r1, _08058F20 + str r1, [r0] + mov r0, sb + bl DestroyTask + b _08058F2A + .align 2, 0 +_08058F1C: .4byte 0x03005AC0 +_08058F20: .4byte 0x08058DB1 +_08058F24: + ldr r0, _08058F3C +_08058F26: + mov r1, r8 +_08058F28: + str r0, [r1] +_08058F2A: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08058F3C: .4byte 0x08058F41 + thumb_func_end sub_08058DC8 + + thumb_func_start sub_08058F40 +sub_08058F40: @ 0x08058F40 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08058FF8 + lsls r2, r0, #2 + mov r8, r2 + add r8, r0 + mov r0, r8 + lsls r0, r0, #3 + mov r8, r0 + add r8, r1 + mov r2, r8 + ldrb r1, [r2, #8] + movs r0, #0xa + ldrsh r2, [r2, r0] + mov sb, r2 + mov r2, r8 + ldrb r2, [r2, #0xc] + mov sl, r2 + movs r0, #0x64 + adds r6, r1, #0 + muls r6, r0, r6 + ldr r0, _08058FFC + adds r6, r6, r0 + adds r0, r6, #0 + movs r1, #0x38 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r6, #0 + movs r1, #0xb + bl GetMonData + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + adds r0, r6, #0 + movs r1, #0x19 + bl GetMonData + adds r3, r0, #0 + ldr r6, _08059000 + lsls r1, r4, #2 + ldr r2, _08059004 + lsls r0, r5, #3 + subs r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r2, [r0, #0x13] + movs r0, #0xca + lsls r0, r0, #1 + muls r0, r2, r0 + adds r1, r1, r0 + adds r1, r1, r6 + ldr r1, [r1] + subs r3, r3, r1 + adds r4, #1 + lsls r4, r4, #2 + adds r4, r4, r0 + adds r4, r4, r6 + ldr r2, [r4] + subs r2, r2, r1 + ldr r0, _08059008 + add r0, sl + ldrb r1, [r0] + mov r0, sb + rsbs r0, r0, #0 + str r0, [sp] + mov r0, sl + bl SetBattleBarStruct + movs r0, #0x21 + bl PlaySE + ldr r0, _0805900C + mov r1, r8 + str r0, [r1] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08058FF8: .4byte 0x03005B60 +_08058FFC: .4byte 0x02024190 +_08059000: .4byte 0x082F00B4 +_08059004: .4byte 0x082F0D54 +_08059008: .4byte 0x03005AD0 +_0805900C: .4byte 0x08059011 + thumb_func_end sub_08058F40 + + thumb_func_start sub_08059010 +sub_08059010: @ 0x08059010 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r1, _0805903C + lsls r0, r0, #2 + add r0, r8 + lsls r0, r0, #3 + adds r6, r0, r1 + ldrh r1, [r6, #0x1c] + movs r2, #0x1c + ldrsh r0, [r6, r2] + cmp r0, #0xc + bgt _08059040 + adds r0, r1, #1 + strh r0, [r6, #0x1c] + b _0805913C + .align 2, 0 +_0805903C: .4byte 0x03005B60 +_08059040: + ldrb r0, [r6, #8] + mov sb, r0 + ldrh r2, [r6, #0xa] + mov sl, r2 + ldrb r7, [r6, #0xc] + ldr r5, _08059108 + adds r5, r7, r5 + ldrb r1, [r5] + adds r0, r7, #0 + movs r2, #1 + movs r3, #0 + bl MoveBattleBar + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldrb r0, [r5] + bl SetHealthboxSpriteVisible + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + movs r0, #1 + rsbs r0, r0, #0 + cmp r4, r0 + bne _0805913C + movs r0, #0x21 + bl m4aSongNumStop + movs r0, #0x64 + mov r1, sb + muls r1, r0, r1 + ldr r0, _0805910C + adds r5, r1, r0 + adds r0, r5, #0 + movs r1, #0x38 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + movs r1, #0x19 + bl GetMonData + str r0, [sp, #4] + adds r0, r5, #0 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r3, _08059110 + adds r4, #1 + lsls r4, r4, #2 + ldr r2, _08059114 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r1, [r1, #0x13] + movs r0, #0xca + lsls r0, r0, #1 + muls r0, r1, r0 + adds r4, r4, r0 + adds r4, r4, r3 + ldr r1, [r4] + str r1, [sp] + mov r2, sl + lsls r0, r2, #0x10 + asrs r4, r0, #0x10 + ldr r0, [sp, #4] + adds r0, r0, r4 + cmp r0, r1 + blt _08059120 + adds r0, r5, #0 + movs r1, #0x19 + mov r2, sp + bl SetMonData + adds r0, r5, #0 + bl CalculateMonStats + ldr r2, [sp] + add r0, sp, #4 + ldrh r0, [r0] + subs r2, r2, r0 + subs r2, r4, r2 + ldr r4, _08059118 + ldrb r5, [r4] + strb r7, [r4] + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + movs r0, #1 + movs r1, #0xb + bl BtlController_EmitTwoReturnValues + strb r5, [r4] + ldr r0, _0805911C + str r0, [r6] + b _0805913C + .align 2, 0 +_08059108: .4byte 0x03005AD0 +_0805910C: .4byte 0x02024190 +_08059110: .4byte 0x082F00B4 +_08059114: .4byte 0x082F0D54 +_08059118: .4byte 0x02023D08 +_0805911C: .4byte 0x08059155 +_08059120: + str r0, [sp, #4] + add r2, sp, #4 + adds r0, r5, #0 + movs r1, #0x19 + bl SetMonData + ldr r1, _0805914C + lsls r0, r7, #2 + adds r0, r0, r1 + ldr r1, _08059150 + str r1, [r0] + mov r0, r8 + bl DestroyTask +_0805913C: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805914C: .4byte 0x03005AC0 +_08059150: .4byte 0x08058DB1 + thumb_func_end sub_08059010 + + thumb_func_start Task_LaunchLvlUpAnim +Task_LaunchLvlUpAnim: @ 0x08059154 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _080591A8 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r4, [r0, #0xc] + ldrb r6, [r0, #8] + bl IsDoubleBattle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08059188 + ldr r1, _080591AC + movs r0, #2 + adds r2, r4, #0 + eors r2, r0 + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r6, r0 + bne _08059188 + adds r4, r2, #0 +_08059188: + adds r0, r4, #0 + adds r1, r4, #0 + adds r2, r4, #0 + movs r3, #0 + bl InitAndLaunchSpecialAnimation + ldr r0, _080591A8 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080591B0 + str r0, [r1] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080591A8: .4byte 0x03005B60 +_080591AC: .4byte 0x02023D12 +_080591B0: .4byte 0x080591B5 + thumb_func_end Task_LaunchLvlUpAnim + + thumb_func_start Task_UpdateLvlInHealthbox +Task_UpdateLvlInHealthbox: @ 0x080591B4 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _08059220 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r2, r0, r1 + ldrb r5, [r2, #0xc] + ldr r0, _08059224 + ldr r0, [r0] + ldr r1, [r0, #4] + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08059256 + ldrb r4, [r2, #8] + movs r0, #0x64 + adds r1, r4, #0 + muls r1, r0, r1 + ldr r0, _08059228 + adds r7, r1, r0 + adds r0, r7, #0 + movs r1, #0x38 + bl GetMonData + bl IsDoubleBattle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08059234 + ldr r1, _0805922C + movs r0, #2 + adds r2, r5, #0 + eors r2, r0 + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r4, r0 + bne _08059234 + ldr r0, _08059230 + adds r0, r2, r0 + ldrb r0, [r0] + adds r1, r7, #0 + movs r2, #0 + bl UpdateHealthboxAttribute + b _08059248 + .align 2, 0 +_08059220: .4byte 0x03005B60 +_08059224: .4byte 0x02024174 +_08059228: .4byte 0x02024190 +_0805922C: .4byte 0x02023D12 +_08059230: .4byte 0x03005AD0 +_08059234: + ldr r0, _0805925C + adds r0, r5, r0 + ldrb r0, [r0] + movs r1, #0x64 + muls r1, r4, r1 + ldr r2, _08059260 + adds r1, r1, r2 + movs r2, #0 + bl UpdateHealthboxAttribute +_08059248: + ldr r0, _08059264 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _08059268 + str r0, [r1] +_08059256: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805925C: .4byte 0x03005AD0 +_08059260: .4byte 0x02024190 +_08059264: .4byte 0x03005B60 +_08059268: .4byte 0x0805926D + thumb_func_end Task_UpdateLvlInHealthbox + + thumb_func_start MoveSelectionDisplayPpString +MoveSelectionDisplayPpString: @ 0x0805926C + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _080592A8 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + adds r4, r4, r0 + ldrb r1, [r4, #8] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080592AC + adds r0, r0, r1 + movs r1, #0x38 + bl GetMonData + ldrb r0, [r4, #0xc] + ldr r1, _080592B0 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _080592B4 + str r1, [r0] + adds r0, r5, #0 + bl DestroyTask + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080592A8: .4byte 0x03005B60 +_080592AC: .4byte 0x02024190 +_080592B0: .4byte 0x03005AC0 +_080592B4: .4byte 0x08058DB1 + thumb_func_end MoveSelectionDisplayPpString + + thumb_func_start sub_080592B8 +sub_080592B8: @ 0x080592B8 + push {r4, r5, r6, lr} + ldr r6, _0805933C + ldr r5, _08059340 + ldr r4, _08059344 + ldrb r2, [r4] + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r3, #0x22 + ldrsh r1, [r0, r3] + movs r3, #0x26 + ldrsh r0, [r0, r3] + adds r1, r1, r0 + cmp r1, #0xa0 + ble _08059334 + ldr r1, _08059348 + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0805934C + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl sub_0805DB50 + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r0, [r0, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + bl DestroySprite + ldr r1, _08059350 + ldrb r0, [r4] + adds r0, r0, r1 + ldrb r0, [r0] + bl SetHealthboxSpriteInvisible + bl PlayerBufferExecCompleted +_08059334: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0805933C: .4byte 0x020205AC +_08059340: .4byte 0x02023E88 +_08059344: .4byte 0x02023D08 +_08059348: .4byte 0x02023D12 +_0805934C: .4byte 0x02024190 +_08059350: .4byte 0x03005AD0 + thumb_func_end sub_080592B8 + + thumb_func_start sub_08059354 +sub_08059354: @ 0x08059354 + push {r4, r5, r6, lr} + ldr r0, _080593B0 + ldr r0, [r0] + ldr r6, _080593B4 + ldrb r2, [r6] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _080593A8 + ldr r5, _080593B8 + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _080593BC + adds r0, r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + ldr r1, _080593C0 + ldrb r0, [r6] + adds r0, r0, r1 + ldrb r0, [r0] + bl SetHealthboxSpriteInvisible + bl PlayerBufferExecCompleted +_080593A8: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080593B0: .4byte 0x02024174 +_080593B4: .4byte 0x02023D08 +_080593B8: .4byte 0x02023E88 +_080593BC: .4byte 0x020205AC +_080593C0: .4byte 0x03005AD0 + thumb_func_end sub_08059354 + + thumb_func_start PlayerHandleDataTransfer +PlayerHandleDataTransfer: @ 0x080593C4 + push {lr} + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080593D6 + bl PlayerBufferExecCompleted +_080593D6: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerHandleDataTransfer + + thumb_func_start OpenPartyMenuToChooseMon +OpenPartyMenuToChooseMon: @ 0x080593DC + push {r4, lr} + ldr r0, _08059420 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0805941A + ldr r1, _08059424 + ldr r2, _08059428 + ldrb r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805942C + str r1, [r0] + ldr r3, _08059430 + ldr r1, _08059434 + ldrb r0, [r2] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r3 + ldrb r4, [r1, #8] + bl DestroyTask + bl FreeAllWindowBuffers + adds r0, r4, #0 + bl OpenPartyMenuInBattle +_0805941A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08059420: .4byte 0x02037C74 +_08059424: .4byte 0x03005AC0 +_08059428: .4byte 0x02023D08 +_0805942C: .4byte 0x08059439 +_08059430: .4byte 0x03005B60 +_08059434: .4byte 0x03005ADC + thumb_func_end OpenPartyMenuToChooseMon + + thumb_func_start WaitForMonSelection +WaitForMonSelection: @ 0x08059438 + push {lr} + ldr r0, _08059468 + ldr r1, [r0, #4] + ldr r0, _0805946C + cmp r1, r0 + bne _080594A8 + ldr r0, _08059470 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080594A8 + ldr r0, _08059474 + ldrb r0, [r0] + cmp r0, #1 + bne _08059480 + ldr r0, _08059478 + ldrb r1, [r0] + ldr r2, _0805947C + movs r0, #1 + bl BtlController_EmitChosenMonReturnValue + b _0805948A + .align 2, 0 +_08059468: .4byte 0x03002360 +_0805946C: .4byte 0x080380FD +_08059470: .4byte 0x02037C74 +_08059474: .4byte 0x0203CBB4 +_08059478: .4byte 0x0203CBB5 +_0805947C: .4byte 0x0203CBCC +_08059480: + movs r0, #1 + movs r1, #6 + movs r2, #0 + bl BtlController_EmitChosenMonReturnValue +_0805948A: + ldr r1, _080594AC + ldr r0, _080594B0 + ldrb r0, [r0] + lsls r0, r0, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _080594A4 + bl PrintLinkStandbyMsg +_080594A4: + bl PlayerBufferExecCompleted +_080594A8: + pop {r0} + bx r0 + .align 2, 0 +_080594AC: .4byte 0x02022D08 +_080594B0: .4byte 0x02023D08 + thumb_func_end WaitForMonSelection + + thumb_func_start OpenBagAndChooseItem +OpenBagAndChooseItem: @ 0x080594B4 + push {lr} + ldr r0, _080594E0 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080594DC + ldr r1, _080594E4 + ldr r0, _080594E8 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _080594EC + str r1, [r0] + bl nullsub_35 + bl FreeAllWindowBuffers + bl sub_081AA928 +_080594DC: + pop {r0} + bx r0 + .align 2, 0 +_080594E0: .4byte 0x02037C74 +_080594E4: .4byte 0x03005AC0 +_080594E8: .4byte 0x02023D08 +_080594EC: .4byte 0x080594F1 + thumb_func_end OpenBagAndChooseItem + + thumb_func_start CompleteWhenChoseItem +CompleteWhenChoseItem: @ 0x080594F0 + push {lr} + ldr r0, _0805951C + ldr r1, [r0, #4] + ldr r0, _08059520 + cmp r1, r0 + bne _08059516 + ldr r0, _08059524 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08059516 + ldr r0, _08059528 + ldrh r1, [r0] + movs r0, #1 + bl BtlController_EmitOneReturnValue + bl PlayerBufferExecCompleted +_08059516: + pop {r0} + bx r0 + .align 2, 0 +_0805951C: .4byte 0x03002360 +_08059520: .4byte 0x080380FD +_08059524: .4byte 0x02037C74 +_08059528: .4byte 0x0203CB48 + thumb_func_end CompleteWhenChoseItem + + thumb_func_start PlayerHandleOneReturnValue_Duplicate +PlayerHandleOneReturnValue_Duplicate: @ 0x0805952C + push {lr} + ldr r0, _0805955C + ldrb r0, [r0] + cmp r0, #0 + beq _08059552 + ldr r0, _08059560 + ldr r2, [r0] + ldr r0, _08059564 + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08059556 +_08059552: + bl PlayerBufferExecCompleted +_08059556: + pop {r0} + bx r0 + .align 2, 0 +_0805955C: .4byte 0x0202415D +_08059560: .4byte 0x02024174 +_08059564: .4byte 0x02023D08 + thumb_func_end PlayerHandleOneReturnValue_Duplicate + + thumb_func_start PlayerHandleHitAnimation +PlayerHandleHitAnimation: @ 0x08059568 + push {r4, lr} + ldr r1, _080595A4 + ldr r0, _080595A8 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + ldr r2, _080595AC + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, r0, r2 + movs r1, #0x30 + ldrsh r0, [r4, r1] + cmp r0, #0x20 + bne _080595B4 + movs r3, #0 + movs r0, #0 + strh r0, [r4, #0x30] + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + subs r0, #5 + ands r0, r1 + strb r0, [r2] + ldr r0, _080595B0 + strb r3, [r0] + bl PlayerBufferExecCompleted + b _080595DE + .align 2, 0 +_080595A4: .4byte 0x02023E88 +_080595A8: .4byte 0x02023D08 +_080595AC: .4byte 0x020205AC +_080595B0: .4byte 0x0202415D +_080595B4: + ldrh r0, [r4, #0x30] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _080595D8 + adds r3, r4, #0 + adds r3, #0x3e + ldrb r2, [r3] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080595D8: + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] +_080595DE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end PlayerHandleHitAnimation + + thumb_func_start PlayerHandleUnknownYesNoInput +PlayerHandleUnknownYesNoInput: @ 0x080595E4 + push {r4, lr} + sub sp, #4 + ldr r0, _08059674 + ldrh r1, [r0, #0x2e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08059612 + ldr r4, _08059678 + ldrb r0, [r4] + cmp r0, #0 + beq _08059612 + movs r0, #5 + bl PlaySE + ldrb r0, [r4] + bl BattleDestroyYesNoCursorAt + movs r0, #0 + strb r0, [r4] + movs r0, #0 + bl BattleCreateYesNoCursorAt +_08059612: + ldr r0, _08059674 + ldrh r1, [r0, #0x2e] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0805963C + ldr r4, _08059678 + ldrb r0, [r4] + cmp r0, #0 + bne _0805963C + movs r0, #5 + bl PlaySE + ldrb r0, [r4] + bl BattleDestroyYesNoCursorAt + movs r0, #1 + strb r0, [r4] + movs r0, #1 + bl BattleCreateYesNoCursorAt +_0805963C: + ldr r0, _08059674 + ldrh r1, [r0, #0x2e] + movs r2, #1 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0805968A + str r2, [sp] + movs r0, #0x18 + movs r1, #8 + movs r2, #0x1d + movs r3, #0xd + bl HandleBattleWindow + movs r0, #5 + bl PlaySE + ldr r0, _08059678 + ldrb r0, [r0] + cmp r0, #0 + beq _0805967C + movs r0, #1 + movs r1, #0xe + movs r2, #0 + bl BtlController_EmitTwoReturnValues + b _08059686 + .align 2, 0 +_08059674: .4byte 0x03002360 +_08059678: .4byte 0x03005AD4 +_0805967C: + movs r0, #1 + movs r1, #0xd + movs r2, #0 + bl BtlController_EmitTwoReturnValues +_08059686: + bl PlayerBufferExecCompleted +_0805968A: + ldr r0, _080596B8 + ldrh r1, [r0, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080596B0 + movs r0, #1 + str r0, [sp] + movs r0, #0x18 + movs r1, #8 + movs r2, #0x1d + movs r3, #0xd + bl HandleBattleWindow + movs r0, #5 + bl PlaySE + bl PlayerBufferExecCompleted +_080596B0: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080596B8: .4byte 0x03002360 + thumb_func_end PlayerHandleUnknownYesNoInput + + thumb_func_start MoveSelectionDisplayMoveNames +MoveSelectionDisplayMoveNames: @ 0x080596BC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _08059720 + ldrb r1, [r0] + lsls r1, r1, #9 + ldr r3, _08059724 + ldr r2, _08059728 + movs r0, #0 + strb r0, [r2] + movs r5, #0 + ldr r0, _0805972C + mov r8, r0 + adds r4, r1, r3 + adds r7, r2, #0 + movs r6, #0xc0 + lsls r6, r6, #0x12 +_080596DE: + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + bl MoveSelectionDestroyCursorAt + ldrh r1, [r4] + lsls r1, r1, #3 + ldr r0, _08059730 + adds r1, r1, r0 + mov r0, r8 + bl StringCopy + lsrs r1, r6, #0x18 + mov r0, r8 + bl sub_0814FA04 + ldrh r0, [r4] + cmp r0, #0 + beq _08059708 + ldrb r0, [r7] + adds r0, #1 + strb r0, [r7] +_08059708: + adds r4, #2 + movs r0, #0x80 + lsls r0, r0, #0x11 + adds r6, r6, r0 + adds r5, #1 + cmp r5, #3 + ble _080596DE + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08059720: .4byte 0x02023D08 +_08059724: .4byte 0x02022D0C +_08059728: .4byte 0x03005AD8 +_0805972C: .4byte 0x02022AE0 +_08059730: .4byte 0x082EACC4 + thumb_func_end MoveSelectionDisplayMoveNames + + thumb_func_start PlayerHandleTwoReturnValues +PlayerHandleTwoReturnValues: @ 0x08059734 + push {r4, lr} + ldr r4, _08059760 + ldr r1, _08059764 + adds r0, r4, #0 + bl StringCopy + adds r0, r4, #0 + movs r1, #7 + bl sub_0814FA04 + ldr r1, _08059768 + adds r0, r4, #0 + bl StringCopy + adds r0, r4, #0 + movs r1, #8 + bl sub_0814FA04 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08059760: .4byte 0x02022AE0 +_08059764: .4byte 0x085ABB9B +_08059768: .4byte 0x085ABBA1 + thumb_func_end PlayerHandleTwoReturnValues + + thumb_func_start MoveSelectionDisplayPpNumber +MoveSelectionDisplayPpNumber: @ 0x0805976C + push {r4, r5, r6, r7, lr} + ldr r5, _080597D0 + ldr r7, _080597D4 + ldrb r0, [r7] + lsls r0, r0, #9 + adds r1, r5, #2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + beq _080597C8 + bl SetPpNumbersPaletteInMoveSelection + ldrb r1, [r7] + lsls r4, r1, #9 + adds r0, r5, #4 + adds r4, r4, r0 + ldr r6, _080597D8 + ldr r5, _080597DC + adds r1, r1, r5 + adds r0, r4, #0 + adds r0, #8 + ldrb r1, [r1] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r6, #0 + movs r2, #1 + movs r3, #2 + bl ConvertIntToDecimalStringN + movs r1, #0xba + strb r1, [r0] + adds r0, #1 + ldrb r1, [r7] + adds r1, r1, r5 + adds r4, #0xc + ldrb r1, [r1] + adds r4, r4, r1 + ldrb r1, [r4] + movs r2, #1 + movs r3, #2 + bl ConvertIntToDecimalStringN + adds r0, r6, #0 + movs r1, #9 + bl sub_0814FA04 +_080597C8: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080597D0: .4byte 0x02022D08 +_080597D4: .4byte 0x02023D08 +_080597D8: .4byte 0x02022AE0 +_080597DC: .4byte 0x02024154 + thumb_func_end MoveSelectionDisplayPpNumber + + thumb_func_start ActionSelectionCreateCursorAt +ActionSelectionCreateCursorAt: @ 0x080597E0 + push {r4, lr} + ldr r0, _08059824 + ldrb r1, [r0] + lsls r2, r1, #9 + ldr r0, _08059828 + adds r2, r2, r0 + ldr r4, _0805982C + ldr r3, _08059830 + ldr r0, _08059834 + adds r1, r1, r0 + ldrb r0, [r1] + lsls r0, r0, #1 + adds r2, r2, r0 + ldrh r1, [r2] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0, #2] + lsls r1, r0, #2 + adds r1, r1, r0 + ldr r0, _08059838 + adds r1, r1, r0 + adds r0, r4, #0 + bl StringCopy + adds r0, r4, #0 + movs r1, #0xa + bl sub_0814FA04 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08059824: .4byte 0x02023D08 +_08059828: .4byte 0x02022D0C +_0805982C: .4byte 0x02022AE0 +_08059830: .4byte 0x082ED220 +_08059834: .4byte 0x02024154 +_08059838: .4byte 0x082EBC88 + thumb_func_end ActionSelectionCreateCursorAt + + thumb_func_start MoveSelectionCreateCursorAt +MoveSelectionCreateCursorAt: @ 0x0805983C + push {lr} + sub sp, #0x10 + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + add r2, sp, #0xc + adds r0, r1, #1 + strh r0, [r2] + adds r0, r2, #0 + adds r1, #2 + strh r1, [r0, #2] + movs r1, #1 + adds r2, r3, #0 + ands r2, r1 + lsls r2, r2, #3 + adds r2, #1 + movs r0, #2 + ands r3, r0 + adds r3, #0x37 + str r1, [sp] + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #0 + add r1, sp, #0xc + bl CopyToBgTilemapBufferRect_ChangePalette + movs r0, #0 + bl CopyBgTilemapBufferToVram + add sp, #0x10 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end MoveSelectionCreateCursorAt + + thumb_func_start MoveSelectionDestroyCursorAt +MoveSelectionDestroyCursorAt: @ 0x08059884 + push {lr} + sub sp, #0x10 + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + add r0, sp, #0xc + ldr r1, _080598C4 + strh r1, [r0] + strh r1, [r0, #2] + movs r1, #1 + adds r2, r3, #0 + ands r2, r1 + lsls r2, r2, #3 + adds r2, #1 + movs r0, #2 + ands r3, r0 + adds r3, #0x37 + str r1, [sp] + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #0 + add r1, sp, #0xc + bl CopyToBgTilemapBufferRect_ChangePalette + movs r0, #0 + bl CopyBgTilemapBufferToVram + add sp, #0x10 + pop {r0} + bx r0 + .align 2, 0 +_080598C4: .4byte 0x00001016 + thumb_func_end MoveSelectionDestroyCursorAt + + thumb_func_start SetCB2ToReshowScreenAfterMenu +SetCB2ToReshowScreenAfterMenu: @ 0x080598C8 + push {r4, lr} + sub sp, #0x10 + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + add r0, sp, #0xc + movs r4, #1 + strh r4, [r0] + movs r1, #2 + strh r1, [r0, #2] + adds r0, r3, #0 + ands r0, r4 + lsls r2, r0, #1 + adds r2, r2, r0 + lsls r2, r2, #0x19 + movs r0, #0x90 + lsls r0, r0, #0x15 + adds r2, r2, r0 + lsrs r2, r2, #0x18 + ands r3, r1 + adds r3, #0x23 + str r4, [sp] + str r1, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #0 + add r1, sp, #0xc + bl CopyToBgTilemapBufferRect_ChangePalette + movs r0, #0 + bl CopyBgTilemapBufferToVram + add sp, #0x10 + pop {r4} + pop {r0} + bx r0 + thumb_func_end SetCB2ToReshowScreenAfterMenu + + thumb_func_start ActionSelectionDestroyCursorAt +ActionSelectionDestroyCursorAt: @ 0x08059910 + push {lr} + sub sp, #0x10 + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + add r0, sp, #0xc + ldr r1, _08059958 + strh r1, [r0] + strh r1, [r0, #2] + movs r1, #1 + adds r0, r3, #0 + ands r0, r1 + lsls r2, r0, #1 + adds r2, r2, r0 + lsls r2, r2, #0x19 + movs r0, #0x90 + lsls r0, r0, #0x15 + adds r2, r2, r0 + lsrs r2, r2, #0x18 + movs r0, #2 + ands r3, r0 + adds r3, #0x23 + str r1, [sp] + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #0 + add r1, sp, #0xc + bl CopyToBgTilemapBufferRect_ChangePalette + movs r0, #0 + bl CopyBgTilemapBufferToVram + add sp, #0x10 + pop {r0} + bx r0 + .align 2, 0 +_08059958: .4byte 0x00001016 + thumb_func_end ActionSelectionDestroyCursorAt + + thumb_func_start SetCB2ToReshowScreenAfterMenu2 +SetCB2ToReshowScreenAfterMenu2: @ 0x0805995C + push {lr} + ldr r0, _08059968 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_08059968: .4byte 0x080A8BC1 + thumb_func_end SetCB2ToReshowScreenAfterMenu2 + + thumb_func_start sub_0805996C +sub_0805996C: @ 0x0805996C + push {lr} + ldr r0, _08059978 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_08059978: .4byte 0x080A8BC1 + thumb_func_end sub_0805996C + + thumb_func_start sub_0805997C +sub_0805997C: @ 0x0805997C + push {lr} + ldr r0, _080599A4 + ldr r2, [r0] + ldr r0, _080599A8 + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _0805999E + bl PlayerBufferExecCompleted +_0805999E: + pop {r0} + bx r0 + .align 2, 0 +_080599A4: .4byte 0x02024174 +_080599A8: .4byte 0x02023D08 + thumb_func_end sub_0805997C + + thumb_func_start sub_080599AC +sub_080599AC: @ 0x080599AC + push {lr} + ldr r0, _080599D4 + ldr r2, [r0] + ldr r0, _080599D8 + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _080599CE + bl PlayerBufferExecCompleted +_080599CE: + pop {r0} + bx r0 + .align 2, 0 +_080599D4: .4byte 0x02024174 +_080599D8: .4byte 0x02023D08 + thumb_func_end sub_080599AC + + thumb_func_start PrintLinkStandbyMsg +PrintLinkStandbyMsg: @ 0x080599DC + push {lr} + ldr r0, _08059A00 + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _080599FC + ldr r0, _08059A04 + movs r1, #0 + strh r1, [r0] + ldr r0, _08059A08 + strh r1, [r0] + ldr r0, _08059A0C + movs r1, #0 + bl sub_0814FA04 +_080599FC: + pop {r0} + bx r0 + .align 2, 0 +_08059A00: .4byte 0x02022C90 +_08059A04: .4byte 0x02022AC8 +_08059A08: .4byte 0x02022ACA +_08059A0C: .4byte 0x085ABB62 + thumb_func_end PrintLinkStandbyMsg + + thumb_func_start PlayerHandleGetMonData +PlayerHandleGetMonData: @ 0x08059A10 + push {r4, r5, r6, lr} + sub sp, #0x100 + movs r6, #0 + ldr r1, _08059A3C + ldr r0, _08059A40 + ldrb r2, [r0] + lsls r0, r2, #9 + adds r1, #2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, #0 + bne _08059A48 + ldr r0, _08059A44 + lsls r1, r2, #1 + adds r1, r1, r0 + ldrb r0, [r1] + mov r1, sp + bl CopyPlayerMonData + adds r6, r0, #0 + b _08059A6A + .align 2, 0 +_08059A3C: .4byte 0x02022D08 +_08059A40: .4byte 0x02023D08 +_08059A44: .4byte 0x02023D12 +_08059A48: + ldrb r4, [r1] + movs r5, #0 +_08059A4C: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _08059A62 + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + mov r2, sp + adds r1, r2, r6 + bl CopyPlayerMonData + adds r6, r6, r0 +_08059A62: + lsrs r4, r4, #1 + adds r5, #1 + cmp r5, #5 + ble _08059A4C +_08059A6A: + lsls r1, r6, #0x10 + lsrs r1, r1, #0x10 + movs r0, #1 + mov r2, sp + bl BtlController_EmitDataTransfer + bl PlayerBufferExecCompleted + add sp, #0x100 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerHandleGetMonData + + thumb_func_start CopyPlayerMonData +CopyPlayerMonData: @ 0x08059A84 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x90 + adds r7, r1, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r6, #0 + ldr r2, _08059AB8 + ldr r3, _08059ABC + ldrb r0, [r3] + lsls r0, r0, #9 + adds r1, r2, #1 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0x3b + bls _08059AAE + bl _0805A21A +_08059AAE: + lsls r0, r0, #2 + ldr r1, _08059AC0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08059AB8: .4byte 0x02022D08 +_08059ABC: .4byte 0x02023D08 +_08059AC0: .4byte 0x08059AC4 +_08059AC4: @ jump table + .4byte _08059BB4 @ case 0 + .4byte _08059DD8 @ case 1 + .4byte _08059DE8 @ case 2 + .4byte _08059DF8 @ case 3 + .4byte _08059E60 @ case 4 + .4byte _08059E60 @ case 5 + .4byte _08059E60 @ case 6 + .4byte _08059E60 @ case 7 + .4byte _08059E7C @ case 8 + .4byte _08059EB8 @ case 9 + .4byte _08059EB8 @ case 10 + .4byte _08059EB8 @ case 11 + .4byte _08059EB8 @ case 12 + .4byte _0805A21A @ case 13 + .4byte _0805A21A @ case 14 + .4byte _0805A21A @ case 15 + .4byte _0805A21A @ case 16 + .4byte _08059ED4 @ case 17 + .4byte _08059EE4 @ case 18 + .4byte _08059F14 @ case 19 + .4byte _08059F24 @ case 20 + .4byte _08059F34 @ case 21 + .4byte _08059F44 @ case 22 + .4byte _08059F54 @ case 23 + .4byte _08059F64 @ case 24 + .4byte _08059F74 @ case 25 + .4byte _08059F84 @ case 26 + .4byte _08059F94 @ case 27 + .4byte _08059FA4 @ case 28 + .4byte _08059FB4 @ case 29 + .4byte _08059FC4 @ case 30 + .4byte _08059FD4 @ case 31 + .4byte _0805A024 @ case 32 + .4byte _0805A034 @ case 33 + .4byte _0805A044 @ case 34 + .4byte _0805A054 @ case 35 + .4byte _0805A064 @ case 36 + .4byte _0805A074 @ case 37 + .4byte _0805A084 @ case 38 + .4byte _0805A094 @ case 39 + .4byte _0805A0A4 @ case 40 + .4byte _0805A0D8 @ case 41 + .4byte _0805A0E8 @ case 42 + .4byte _0805A0F8 @ case 43 + .4byte _0805A108 @ case 44 + .4byte _0805A118 @ case 45 + .4byte _0805A128 @ case 46 + .4byte _0805A138 @ case 47 + .4byte _0805A148 @ case 48 + .4byte _0805A168 @ case 49 + .4byte _0805A178 @ case 50 + .4byte _0805A188 @ case 51 + .4byte _0805A198 @ case 52 + .4byte _0805A1A8 @ case 53 + .4byte _0805A1B8 @ case 54 + .4byte _0805A1C8 @ case 55 + .4byte _0805A1D8 @ case 56 + .4byte _0805A1E8 @ case 57 + .4byte _0805A1F8 @ case 58 + .4byte _0805A208 @ case 59 +_08059BB4: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _08059DC8 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + mov r1, sp + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0xc + bl GetMonData + mov r1, sp + strh r0, [r1, #0x2e] + movs r6, #0 + add r0, sp, #0x24 + mov sb, r0 + movs r1, #0x3b + add r1, sp + mov sl, r1 + mov r2, sp + adds r2, #0x2b + str r2, [sp, #0x80] + mov r0, sp + adds r0, #0x2a + str r0, [sp, #0x7c] + mov r1, sp + adds r1, #0x68 + str r1, [sp, #0x8c] + adds r2, #5 + str r2, [sp, #0x84] + adds r0, #0x12 + str r0, [sp, #0x88] + mov r8, r4 + add r4, sp, #0xc +_08059C00: + adds r1, r6, #0 + adds r1, #0xd + mov r0, r8 + bl GetMonData + strh r0, [r4] + adds r1, r6, #0 + adds r1, #0x11 + mov r0, r8 + bl GetMonData + mov r2, sb + adds r1, r2, r6 + strb r0, [r1] + adds r4, #2 + adds r6, #1 + cmp r6, #3 + ble _08059C00 + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _08059DC8 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x15 + bl GetMonData + mov r1, sl + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x20 + bl GetMonData + ldr r2, [sp, #0x80] + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0x19 + bl GetMonData + str r0, [sp, #0x44] + adds r0, r4, #0 + movs r1, #0x27 + bl GetMonData + mov r3, sp + movs r5, #0x1f + ands r0, r5 + ldrb r2, [r3, #0x14] + movs r1, #0x20 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x14] + adds r0, r4, #0 + movs r1, #0x28 + bl GetMonData + mov r3, sp + movs r6, #0x1f + ands r0, r6 + lsls r0, r0, #5 + ldrh r2, [r3, #0x14] + ldr r1, _08059DCC + ands r1, r2 + orrs r1, r0 + strh r1, [r3, #0x14] + adds r0, r4, #0 + movs r1, #0x29 + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, r0, #2 + ldrb r2, [r3, #0x15] + movs r1, #0x7d + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x15] + adds r0, r4, #0 + movs r1, #0x2a + bl GetMonData + movs r1, #0x1f + ands r1, r0 + lsls r1, r1, #0xf + ldr r0, [sp, #0x14] + ldr r2, _08059DD0 + ands r0, r2 + orrs r0, r1 + str r0, [sp, #0x14] + adds r0, r4, #0 + movs r1, #0x2b + bl GetMonData + mov r3, sp + ands r0, r6 + lsls r0, r0, #4 + ldrh r2, [r3, #0x16] + ldr r1, _08059DD4 + ands r1, r2 + orrs r1, r0 + strh r1, [r3, #0x16] + adds r0, r4, #0 + movs r1, #0x2c + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, r0, #1 + ldrb r2, [r3, #0x17] + movs r1, #0x3f + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x17] + adds r0, r4, #0 + movs r1, #0 + bl GetMonData + str r0, [sp, #0x48] + adds r0, r4, #0 + movs r1, #0x37 + bl GetMonData + str r0, [sp, #0x4c] + adds r0, r4, #0 + movs r1, #0x38 + bl GetMonData + ldr r1, [sp, #0x7c] + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + mov r1, sp + strh r0, [r1, #0x28] + adds r0, r4, #0 + movs r1, #0x3a + bl GetMonData + mov r1, sp + strh r0, [r1, #0x2c] + adds r0, r4, #0 + movs r1, #0x3b + bl GetMonData + mov r1, sp + strh r0, [r1, #2] + adds r0, r4, #0 + movs r1, #0x3c + bl GetMonData + mov r1, sp + strh r0, [r1, #4] + adds r0, r4, #0 + movs r1, #0x3d + bl GetMonData + mov r1, sp + strh r0, [r1, #6] + adds r0, r4, #0 + movs r1, #0x3e + bl GetMonData + mov r1, sp + strh r0, [r1, #8] + adds r0, r4, #0 + movs r1, #0x3f + bl GetMonData + mov r1, sp + strh r0, [r1, #0xa] + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + mov r3, sp + movs r1, #1 + ands r0, r1 + lsls r0, r0, #6 + ldrb r2, [r3, #0x17] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x17] + adds r0, r4, #0 + movs r1, #0x2e + bl GetMonData + mov r3, sp + lsls r0, r0, #7 + ldrb r2, [r3, #0x17] + movs r1, #0x7f + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x17] + adds r0, r4, #0 + movs r1, #1 + bl GetMonData + str r0, [sp, #0x54] + adds r0, r4, #0 + movs r1, #2 + ldr r2, [sp, #0x8c] + bl GetMonData + ldr r0, [sp, #0x84] + ldr r1, [sp, #0x8c] + bl StringCopy10 + adds r0, r4, #0 + movs r1, #7 + ldr r2, [sp, #0x88] + bl GetMonData + mov r2, sp + movs r6, #0 +_08059DB8: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, #1 + cmp r6, #0x57 + bls _08059DB8 + b _0805A21A + .align 2, 0 +_08059DC8: .4byte 0x02024190 +_08059DCC: .4byte 0xFFFFFC1F +_08059DD0: .4byte 0xFFF07FFF +_08059DD4: .4byte 0xFFFFFE0F +_08059DD8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08059DE4 + adds r0, r0, r1 + movs r1, #0xb + b _0805A152 + .align 2, 0 +_08059DE4: .4byte 0x02024190 +_08059DE8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08059DF4 + adds r0, r0, r1 + movs r1, #0xc + b _0805A152 + .align 2, 0 +_08059DF4: .4byte 0x02024190 +_08059DF8: + movs r6, #0 + add r2, sp, #0x58 + mov sb, r2 + add r0, sp, #0x60 + mov sl, r0 + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _08059E5C + adds r4, r1, r0 + mov r8, sb +_08059E0E: + adds r1, r6, #0 + adds r1, #0xd + adds r0, r4, #0 + bl GetMonData + mov r1, r8 + strh r0, [r1] + adds r1, r6, #0 + adds r1, #0x11 + adds r0, r4, #0 + bl GetMonData + mov r2, sl + adds r1, r2, r6 + strb r0, [r1] + movs r0, #2 + add r8, r0 + adds r6, #1 + cmp r6, #3 + ble _08059E0E + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08059E5C + adds r0, r0, r1 + movs r1, #0x15 + bl GetMonData + mov r1, sb + strb r0, [r1, #0xc] + mov r2, sb + movs r6, #0 +_08059E4C: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, #1 + cmp r6, #0xf + bls _08059E4C + b _0805A21A + .align 2, 0 +_08059E5C: .4byte 0x02024190 +_08059E60: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08059E78 + adds r0, r0, r1 + ldrb r1, [r3] + lsls r1, r1, #9 + adds r2, #1 + adds r1, r1, r2 + ldrb r1, [r1] + adds r1, #9 + b _0805A152 + .align 2, 0 +_08059E78: .4byte 0x02024190 +_08059E7C: + movs r6, #0 + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r2, _08059EB4 + mov r8, r2 +_08059E88: + adds r1, r6, #0 + adds r1, #0x11 + mov r2, r8 + adds r0, r4, r2 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, #1 + cmp r6, #3 + ble _08059E88 + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08059EB4 + adds r0, r0, r1 + movs r1, #0x15 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, #1 + b _0805A21A + .align 2, 0 +_08059EB4: .4byte 0x02024190 +_08059EB8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08059ED0 + adds r0, r0, r1 + ldrb r1, [r3] + lsls r1, r1, #9 + adds r2, #1 + adds r1, r1, r2 + ldrb r1, [r1] + adds r1, #8 + b _0805A212 + .align 2, 0 +_08059ED0: .4byte 0x02024190 +_08059ED4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08059EE0 + adds r0, r0, r1 + movs r1, #1 + b _08059EEE + .align 2, 0 +_08059EE0: .4byte 0x02024190 +_08059EE4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08059F10 + adds r0, r0, r1 + movs r1, #0x19 +_08059EEE: + bl GetMonData + adds r1, r0, #0 + strb r1, [r7] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + lsrs r0, r0, #8 + strb r0, [r7, #1] + movs r0, #0xff + lsls r0, r0, #0x10 + ands r0, r1 + lsrs r0, r0, #0x10 + strb r0, [r7, #2] + movs r6, #3 + b _0805A21A + .align 2, 0 +_08059F10: .4byte 0x02024190 +_08059F14: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08059F20 + adds r0, r0, r1 + movs r1, #0x1a + b _0805A212 + .align 2, 0 +_08059F20: .4byte 0x02024190 +_08059F24: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08059F30 + adds r0, r0, r1 + movs r1, #0x1b + b _0805A212 + .align 2, 0 +_08059F30: .4byte 0x02024190 +_08059F34: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08059F40 + adds r0, r0, r1 + movs r1, #0x1c + b _0805A212 + .align 2, 0 +_08059F40: .4byte 0x02024190 +_08059F44: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08059F50 + adds r0, r0, r1 + movs r1, #0x1d + b _0805A212 + .align 2, 0 +_08059F50: .4byte 0x02024190 +_08059F54: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08059F60 + adds r0, r0, r1 + movs r1, #0x1e + b _0805A212 + .align 2, 0 +_08059F60: .4byte 0x02024190 +_08059F64: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08059F70 + adds r0, r0, r1 + movs r1, #0x1f + b _0805A212 + .align 2, 0 +_08059F70: .4byte 0x02024190 +_08059F74: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08059F80 + adds r0, r0, r1 + movs r1, #0x20 + b _0805A212 + .align 2, 0 +_08059F80: .4byte 0x02024190 +_08059F84: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08059F90 + adds r0, r0, r1 + movs r1, #0x22 + b _0805A212 + .align 2, 0 +_08059F90: .4byte 0x02024190 +_08059F94: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08059FA0 + adds r0, r0, r1 + movs r1, #0x23 + b _0805A212 + .align 2, 0 +_08059FA0: .4byte 0x02024190 +_08059FA4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08059FB0 + adds r0, r0, r1 + movs r1, #0x24 + b _0805A212 + .align 2, 0 +_08059FB0: .4byte 0x02024190 +_08059FB4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08059FC0 + adds r0, r0, r1 + movs r1, #0x25 + b _0805A212 + .align 2, 0 +_08059FC0: .4byte 0x02024190 +_08059FC4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08059FD0 + adds r0, r0, r1 + movs r1, #0x26 + b _0805A212 + .align 2, 0 +_08059FD0: .4byte 0x02024190 +_08059FD4: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _0805A020 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x27 + bl GetMonData + strb r0, [r7] + adds r0, r4, #0 + movs r1, #0x28 + bl GetMonData + strb r0, [r7, #1] + adds r0, r4, #0 + movs r1, #0x29 + bl GetMonData + strb r0, [r7, #2] + adds r0, r4, #0 + movs r1, #0x2a + bl GetMonData + strb r0, [r7, #3] + adds r0, r4, #0 + movs r1, #0x2b + bl GetMonData + strb r0, [r7, #4] + adds r0, r4, #0 + movs r1, #0x2c + bl GetMonData + strb r0, [r7, #5] + movs r6, #6 + b _0805A21A + .align 2, 0 +_0805A020: .4byte 0x02024190 +_0805A024: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A030 + adds r0, r0, r1 + movs r1, #0x27 + b _0805A212 + .align 2, 0 +_0805A030: .4byte 0x02024190 +_0805A034: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A040 + adds r0, r0, r1 + movs r1, #0x28 + b _0805A212 + .align 2, 0 +_0805A040: .4byte 0x02024190 +_0805A044: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A050 + adds r0, r0, r1 + movs r1, #0x29 + b _0805A212 + .align 2, 0 +_0805A050: .4byte 0x02024190 +_0805A054: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A060 + adds r0, r0, r1 + movs r1, #0x2a + b _0805A212 + .align 2, 0 +_0805A060: .4byte 0x02024190 +_0805A064: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A070 + adds r0, r0, r1 + movs r1, #0x2b + b _0805A212 + .align 2, 0 +_0805A070: .4byte 0x02024190 +_0805A074: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A080 + adds r0, r0, r1 + movs r1, #0x2c + b _0805A212 + .align 2, 0 +_0805A080: .4byte 0x02024190 +_0805A084: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A090 + adds r0, r0, r1 + movs r1, #0 + b _0805A0AE + .align 2, 0 +_0805A090: .4byte 0x02024190 +_0805A094: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A0A0 + adds r0, r0, r1 + movs r1, #9 + b _0805A152 + .align 2, 0 +_0805A0A0: .4byte 0x02024190 +_0805A0A4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A0D4 + adds r0, r0, r1 + movs r1, #0x37 +_0805A0AE: + bl GetMonData + adds r1, r0, #0 + strb r1, [r7] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + lsrs r0, r0, #8 + strb r0, [r7, #1] + movs r0, #0xff + lsls r0, r0, #0x10 + ands r0, r1 + lsrs r0, r0, #0x10 + strb r0, [r7, #2] + lsrs r0, r1, #0x18 + strb r0, [r7, #3] + movs r6, #4 + b _0805A21A + .align 2, 0 +_0805A0D4: .4byte 0x02024190 +_0805A0D8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A0E4 + adds r0, r0, r1 + movs r1, #0x38 + b _0805A212 + .align 2, 0 +_0805A0E4: .4byte 0x02024190 +_0805A0E8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A0F4 + adds r0, r0, r1 + movs r1, #0x39 + b _0805A152 + .align 2, 0 +_0805A0F4: .4byte 0x02024190 +_0805A0F8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A104 + adds r0, r0, r1 + movs r1, #0x3a + b _0805A152 + .align 2, 0 +_0805A104: .4byte 0x02024190 +_0805A108: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A114 + adds r0, r0, r1 + movs r1, #0x3b + b _0805A152 + .align 2, 0 +_0805A114: .4byte 0x02024190 +_0805A118: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A124 + adds r0, r0, r1 + movs r1, #0x3c + b _0805A152 + .align 2, 0 +_0805A124: .4byte 0x02024190 +_0805A128: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A134 + adds r0, r0, r1 + movs r1, #0x3d + b _0805A152 + .align 2, 0 +_0805A134: .4byte 0x02024190 +_0805A138: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A144 + adds r0, r0, r1 + movs r1, #0x3e + b _0805A152 + .align 2, 0 +_0805A144: .4byte 0x02024190 +_0805A148: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A164 + adds r0, r0, r1 + movs r1, #0x3f +_0805A152: + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + strb r0, [r7] + lsrs r0, r0, #8 + strb r0, [r7, #1] + movs r6, #2 + b _0805A21A + .align 2, 0 +_0805A164: .4byte 0x02024190 +_0805A168: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A174 + adds r0, r0, r1 + movs r1, #0x16 + b _0805A212 + .align 2, 0 +_0805A174: .4byte 0x02024190 +_0805A178: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A184 + adds r0, r0, r1 + movs r1, #0x17 + b _0805A212 + .align 2, 0 +_0805A184: .4byte 0x02024190 +_0805A188: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A194 + adds r0, r0, r1 + movs r1, #0x18 + b _0805A212 + .align 2, 0 +_0805A194: .4byte 0x02024190 +_0805A198: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A1A4 + adds r0, r0, r1 + movs r1, #0x21 + b _0805A212 + .align 2, 0 +_0805A1A4: .4byte 0x02024190 +_0805A1A8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A1B4 + adds r0, r0, r1 + movs r1, #0x2f + b _0805A212 + .align 2, 0 +_0805A1B4: .4byte 0x02024190 +_0805A1B8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A1C4 + adds r0, r0, r1 + movs r1, #0x30 + b _0805A212 + .align 2, 0 +_0805A1C4: .4byte 0x02024190 +_0805A1C8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A1D4 + adds r0, r0, r1 + movs r1, #0x32 + b _0805A212 + .align 2, 0 +_0805A1D4: .4byte 0x02024190 +_0805A1D8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A1E4 + adds r0, r0, r1 + movs r1, #0x33 + b _0805A212 + .align 2, 0 +_0805A1E4: .4byte 0x02024190 +_0805A1E8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A1F4 + adds r0, r0, r1 + movs r1, #0x34 + b _0805A212 + .align 2, 0 +_0805A1F4: .4byte 0x02024190 +_0805A1F8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A204 + adds r0, r0, r1 + movs r1, #0x35 + b _0805A212 + .align 2, 0 +_0805A204: .4byte 0x02024190 +_0805A208: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A22C + adds r0, r0, r1 + movs r1, #0x36 +_0805A212: + bl GetMonData + strb r0, [r7] + movs r6, #1 +_0805A21A: + adds r0, r6, #0 + add sp, #0x90 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0805A22C: .4byte 0x02024190 + thumb_func_end CopyPlayerMonData + + thumb_func_start PlayerHandleGetRawMonData +PlayerHandleGetRawMonData: @ 0x0805A230 + push {r4, r5, r6, r7, lr} + sub sp, #0x58 + ldr r2, _0805A2A8 + ldr r5, _0805A2AC + ldrb r1, [r5] + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r2, [r0] + movs r0, #0x64 + adds r4, r2, #0 + muls r4, r0, r4 + ldr r3, _0805A2B0 + lsls r1, r1, #9 + adds r0, r3, #1 + adds r0, r1, r0 + ldrb r2, [r0] + ldr r0, _0805A2B4 + adds r0, r2, r0 + adds r6, r4, r0 + mov r0, sp + adds r4, r0, r2 + movs r2, #0 + adds r0, r3, #2 + adds r1, r1, r0 + adds r7, r5, #0 + mov ip, r3 + ldrb r1, [r1] + cmp r2, r1 + bhs _0805A286 + adds r3, r0, #0 +_0805A26C: + adds r1, r4, r2 + adds r0, r6, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldrb r0, [r5] + lsls r0, r0, #9 + adds r0, r0, r3 + ldrb r0, [r0] + cmp r2, r0 + blo _0805A26C +_0805A286: + ldrb r0, [r7] + lsls r0, r0, #9 + mov r1, ip + adds r1, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + adds r2, r4, #0 + bl BtlController_EmitDataTransfer + bl PlayerBufferExecCompleted + add sp, #0x58 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805A2A8: .4byte 0x02023D12 +_0805A2AC: .4byte 0x02023D08 +_0805A2B0: .4byte 0x02022D08 +_0805A2B4: .4byte 0x02024190 + thumb_func_end PlayerHandleGetRawMonData + + thumb_func_start PlayerHandleSetMonData +PlayerHandleSetMonData: @ 0x0805A2B8 + push {r4, r5, lr} + ldr r1, _0805A2DC + ldr r0, _0805A2E0 + ldrb r2, [r0] + lsls r0, r2, #9 + adds r1, #2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, #0 + bne _0805A2E8 + ldr r0, _0805A2E4 + lsls r1, r2, #1 + adds r1, r1, r0 + ldrb r0, [r1] + bl SetPlayerMonData + b _0805A306 + .align 2, 0 +_0805A2DC: .4byte 0x02022D08 +_0805A2E0: .4byte 0x02023D08 +_0805A2E4: .4byte 0x02023D12 +_0805A2E8: + ldrb r4, [r1] + movs r5, #0 +_0805A2EC: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _0805A2FA + adds r0, r5, #0 + bl SetPlayerMonData +_0805A2FA: + lsrs r4, r4, #1 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #5 + bls _0805A2EC +_0805A306: + bl PlayerBufferExecCompleted + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end PlayerHandleSetMonData + + thumb_func_start SetPlayerMonData +SetPlayerMonData: @ 0x0805A310 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x34 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _0805A348 + ldrb r0, [r0] + lsls r0, r0, #9 + ldr r2, _0805A34C + adds r3, r0, r2 + adds r6, r3, #0 + subs r1, r2, #2 + adds r0, r0, r1 + ldrb r0, [r0] + adds r7, r2, #0 + cmp r0, #0x3b + bls _0805A33C + bl _0805ACD6 +_0805A33C: + lsls r0, r0, #2 + ldr r1, _0805A350 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0805A348: .4byte 0x02023D08 +_0805A34C: .4byte 0x02022D0B +_0805A350: .4byte 0x0805A354 +_0805A354: @ jump table + .4byte _0805A444 @ case 0 + .4byte _0805A5DC @ case 1 + .4byte _0805A5FC @ case 2 + .4byte _0805A61C @ case 3 + .4byte _0805A674 @ case 4 + .4byte _0805A674 @ case 5 + .4byte _0805A674 @ case 6 + .4byte _0805A674 @ case 7 + .4byte _0805A69C @ case 8 + .4byte _0805A700 @ case 9 + .4byte _0805A700 @ case 10 + .4byte _0805A700 @ case 11 + .4byte _0805A700 @ case 12 + .4byte _0805ACD6 @ case 13 + .4byte _0805ACD6 @ case 14 + .4byte _0805ACD6 @ case 15 + .4byte _0805ACD6 @ case 16 + .4byte _0805A730 @ case 17 + .4byte _0805A750 @ case 18 + .4byte _0805A770 @ case 19 + .4byte _0805A790 @ case 20 + .4byte _0805A7B0 @ case 21 + .4byte _0805A7D0 @ case 22 + .4byte _0805A7F0 @ case 23 + .4byte _0805A810 @ case 24 + .4byte _0805A830 @ case 25 + .4byte _0805A850 @ case 26 + .4byte _0805A870 @ case 27 + .4byte _0805A890 @ case 28 + .4byte _0805A8B0 @ case 29 + .4byte _0805A8D0 @ case 30 + .4byte _0805A8F0 @ case 31 + .4byte _0805A960 @ case 32 + .4byte _0805A980 @ case 33 + .4byte _0805A9A0 @ case 34 + .4byte _0805A9C0 @ case 35 + .4byte _0805A9E0 @ case 36 + .4byte _0805AA00 @ case 37 + .4byte _0805AA20 @ case 38 + .4byte _0805AA40 @ case 39 + .4byte _0805AA60 @ case 40 + .4byte _0805AA80 @ case 41 + .4byte _0805AAA0 @ case 42 + .4byte _0805AAC0 @ case 43 + .4byte _0805AAE0 @ case 44 + .4byte _0805AB00 @ case 45 + .4byte _0805AB20 @ case 46 + .4byte _0805AB40 @ case 47 + .4byte _0805AB60 @ case 48 + .4byte _0805AB80 @ case 49 + .4byte _0805ABA0 @ case 50 + .4byte _0805ABC0 @ case 51 + .4byte _0805ABE0 @ case 52 + .4byte _0805AC00 @ case 53 + .4byte _0805AC20 @ case 54 + .4byte _0805AC40 @ case 55 + .4byte _0805AC60 @ case 56 + .4byte _0805AC80 @ case 57 + .4byte _0805ACA0 @ case 58 + .4byte _0805ACC0 @ case 59 +_0805A444: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _0805A5D8 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0xb + adds r2, r6, #0 + bl SetMonData + adds r2, r6, #0 + adds r2, #0x2e + adds r0, r4, #0 + movs r1, #0xc + bl SetMonData + movs r0, #0 + mov r8, r0 + movs r0, #0x3b + adds r0, r0, r6 + mov sl, r0 + adds r0, r6, #0 + adds r0, #0x2b + str r0, [sp, #0x20] + adds r0, #0x19 + str r0, [sp, #0x28] + adds r0, #4 + str r0, [sp, #0x2c] + adds r0, #4 + str r0, [sp, #0x30] + subs r0, #0x22 + str r0, [sp, #0x1c] + subs r0, #2 + str r0, [sp, #0x18] + adds r0, #4 + str r0, [sp, #0x24] + adds r0, r6, #2 + str r0, [sp, #4] + adds r0, r6, #4 + str r0, [sp, #8] + adds r0, r6, #6 + str r0, [sp, #0xc] + adds r0, #2 + str r0, [sp, #0x10] + adds r0, #2 + str r0, [sp, #0x14] + mov sb, r4 + adds r7, r6, #0 + adds r7, #0x24 + adds r4, r6, #0 + adds r4, #0xc +_0805A4AA: + mov r1, r8 + adds r1, #0xd + mov r0, sb + adds r2, r4, #0 + bl SetMonData + mov r1, r8 + adds r1, #0x11 + mov r0, sb + adds r2, r7, #0 + bl SetMonData + adds r7, #1 + adds r4, #2 + movs r0, #1 + add r8, r0 + mov r0, r8 + cmp r0, #3 + ble _0805A4AA + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _0805A5D8 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x15 + mov r2, sl + bl SetMonData + adds r0, r4, #0 + movs r1, #0x20 + ldr r2, [sp, #0x20] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x19 + ldr r2, [sp, #0x28] + bl SetMonData + ldrb r0, [r6, #0x14] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1b + mov r1, sp + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x27 + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r6, #0x14] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x28 + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r6, #0x15] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x29 + mov r2, sp + bl SetMonData + mov r1, sp + ldr r0, [r6, #0x14] + lsls r0, r0, #0xc + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x2a + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r6, #0x16] + lsls r0, r0, #0x17 + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x2b + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r6, #0x17] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x2c + mov r2, sp + bl SetMonData + adds r0, r4, #0 + movs r1, #0 + ldr r2, [sp, #0x2c] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x37 + ldr r2, [sp, #0x30] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x38 + ldr r2, [sp, #0x1c] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x39 + ldr r2, [sp, #0x18] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3a + ldr r2, [sp, #0x24] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3b + ldr r2, [sp, #4] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3c + ldr r2, [sp, #8] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3d + ldr r2, [sp, #0xc] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3e + ldr r2, [sp, #0x10] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3f + ldr r2, [sp, #0x14] + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805A5D8: .4byte 0x02024190 +_0805A5DC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A5F4 + adds r0, r0, r1 + ldr r1, _0805A5F8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0xb + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805A5F4: .4byte 0x02024190 +_0805A5F8: .4byte 0x02023D08 +_0805A5FC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A614 + adds r0, r0, r1 + ldr r1, _0805A618 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0xc + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805A614: .4byte 0x02024190 +_0805A618: .4byte 0x02023D08 +_0805A61C: + movs r0, #0 + mov r8, r0 + movs r0, #0xc + adds r0, r0, r3 + mov sb, r0 + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _0805A670 + adds r7, r1, r0 + adds r6, r3, #0 + adds r6, #8 + adds r4, r3, #0 +_0805A636: + mov r1, r8 + adds r1, #0xd + adds r0, r7, #0 + adds r2, r4, #0 + bl SetMonData + mov r1, r8 + adds r1, #0x11 + adds r0, r7, #0 + adds r2, r6, #0 + bl SetMonData + adds r6, #1 + adds r4, #2 + movs r0, #1 + add r8, r0 + mov r0, r8 + cmp r0, #3 + ble _0805A636 + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A670 + adds r0, r0, r1 + movs r1, #0x15 + mov r2, sb + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805A670: .4byte 0x02024190 +_0805A674: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A690 + adds r0, r0, r1 + ldr r3, _0805A694 + ldr r1, _0805A698 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r1, r3, #1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, #9 + b _0805A718 + .align 2, 0 +_0805A690: .4byte 0x02024190 +_0805A694: .4byte 0x02022D08 +_0805A698: .4byte 0x02023D08 +_0805A69C: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _0805A6F8 + adds r4, r4, r0 + ldr r5, _0805A6FC + ldrb r2, [r5] + lsls r2, r2, #9 + adds r2, r2, r7 + adds r0, r4, #0 + movs r1, #0x11 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #1 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x12 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #2 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x13 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #3 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x14 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #4 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x15 + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805A6F8: .4byte 0x02024190 +_0805A6FC: .4byte 0x02023D08 +_0805A700: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A724 + adds r0, r0, r1 + ldr r3, _0805A728 + ldr r1, _0805A72C + ldrb r2, [r1] + lsls r2, r2, #9 + adds r1, r3, #1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, #8 +_0805A718: + adds r3, #3 + adds r2, r2, r3 + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805A724: .4byte 0x02024190 +_0805A728: .4byte 0x02022D08 +_0805A72C: .4byte 0x02023D08 +_0805A730: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A748 + adds r0, r0, r1 + ldr r1, _0805A74C + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #1 + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805A748: .4byte 0x02024190 +_0805A74C: .4byte 0x02023D08 +_0805A750: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A768 + adds r0, r0, r1 + ldr r1, _0805A76C + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x19 + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805A768: .4byte 0x02024190 +_0805A76C: .4byte 0x02023D08 +_0805A770: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A788 + adds r0, r0, r1 + ldr r1, _0805A78C + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x1a + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805A788: .4byte 0x02024190 +_0805A78C: .4byte 0x02023D08 +_0805A790: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A7A8 + adds r0, r0, r1 + ldr r1, _0805A7AC + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x1b + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805A7A8: .4byte 0x02024190 +_0805A7AC: .4byte 0x02023D08 +_0805A7B0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A7C8 + adds r0, r0, r1 + ldr r1, _0805A7CC + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x1c + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805A7C8: .4byte 0x02024190 +_0805A7CC: .4byte 0x02023D08 +_0805A7D0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A7E8 + adds r0, r0, r1 + ldr r1, _0805A7EC + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x1d + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805A7E8: .4byte 0x02024190 +_0805A7EC: .4byte 0x02023D08 +_0805A7F0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A808 + adds r0, r0, r1 + ldr r1, _0805A80C + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x1e + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805A808: .4byte 0x02024190 +_0805A80C: .4byte 0x02023D08 +_0805A810: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A828 + adds r0, r0, r1 + ldr r1, _0805A82C + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x1f + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805A828: .4byte 0x02024190 +_0805A82C: .4byte 0x02023D08 +_0805A830: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A848 + adds r0, r0, r1 + ldr r1, _0805A84C + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x20 + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805A848: .4byte 0x02024190 +_0805A84C: .4byte 0x02023D08 +_0805A850: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A868 + adds r0, r0, r1 + ldr r1, _0805A86C + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x22 + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805A868: .4byte 0x02024190 +_0805A86C: .4byte 0x02023D08 +_0805A870: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A888 + adds r0, r0, r1 + ldr r1, _0805A88C + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x23 + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805A888: .4byte 0x02024190 +_0805A88C: .4byte 0x02023D08 +_0805A890: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A8A8 + adds r0, r0, r1 + ldr r1, _0805A8AC + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x24 + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805A8A8: .4byte 0x02024190 +_0805A8AC: .4byte 0x02023D08 +_0805A8B0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A8C8 + adds r0, r0, r1 + ldr r1, _0805A8CC + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x25 + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805A8C8: .4byte 0x02024190 +_0805A8CC: .4byte 0x02023D08 +_0805A8D0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A8E8 + adds r0, r0, r1 + ldr r1, _0805A8EC + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x26 + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805A8E8: .4byte 0x02024190 +_0805A8EC: .4byte 0x02023D08 +_0805A8F0: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _0805A958 + adds r4, r4, r0 + ldr r5, _0805A95C + ldrb r2, [r5] + lsls r2, r2, #9 + adds r2, r2, r7 + adds r0, r4, #0 + movs r1, #0x27 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #1 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x28 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #2 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x29 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #3 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x2a + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #4 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x2b + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #5 + adds r2, r2, r0 + adds r0, r4, #0 + b _0805AA10 + .align 2, 0 +_0805A958: .4byte 0x02024190 +_0805A95C: .4byte 0x02023D08 +_0805A960: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A978 + adds r0, r0, r1 + ldr r1, _0805A97C + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x27 + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805A978: .4byte 0x02024190 +_0805A97C: .4byte 0x02023D08 +_0805A980: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A998 + adds r0, r0, r1 + ldr r1, _0805A99C + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x28 + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805A998: .4byte 0x02024190 +_0805A99C: .4byte 0x02023D08 +_0805A9A0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A9B8 + adds r0, r0, r1 + ldr r1, _0805A9BC + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x29 + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805A9B8: .4byte 0x02024190 +_0805A9BC: .4byte 0x02023D08 +_0805A9C0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A9D8 + adds r0, r0, r1 + ldr r1, _0805A9DC + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x2a + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805A9D8: .4byte 0x02024190 +_0805A9DC: .4byte 0x02023D08 +_0805A9E0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805A9F8 + adds r0, r0, r1 + ldr r1, _0805A9FC + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x2b + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805A9F8: .4byte 0x02024190 +_0805A9FC: .4byte 0x02023D08 +_0805AA00: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805AA18 + adds r0, r0, r1 + ldr r1, _0805AA1C + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 +_0805AA10: + movs r1, #0x2c + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805AA18: .4byte 0x02024190 +_0805AA1C: .4byte 0x02023D08 +_0805AA20: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805AA38 + adds r0, r0, r1 + ldr r1, _0805AA3C + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0 + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805AA38: .4byte 0x02024190 +_0805AA3C: .4byte 0x02023D08 +_0805AA40: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805AA58 + adds r0, r0, r1 + ldr r1, _0805AA5C + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #9 + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805AA58: .4byte 0x02024190 +_0805AA5C: .4byte 0x02023D08 +_0805AA60: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805AA78 + adds r0, r0, r1 + ldr r1, _0805AA7C + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x37 + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805AA78: .4byte 0x02024190 +_0805AA7C: .4byte 0x02023D08 +_0805AA80: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805AA98 + adds r0, r0, r1 + ldr r1, _0805AA9C + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x38 + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805AA98: .4byte 0x02024190 +_0805AA9C: .4byte 0x02023D08 +_0805AAA0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805AAB8 + adds r0, r0, r1 + ldr r1, _0805AABC + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x39 + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805AAB8: .4byte 0x02024190 +_0805AABC: .4byte 0x02023D08 +_0805AAC0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805AAD8 + adds r0, r0, r1 + ldr r1, _0805AADC + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x3a + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805AAD8: .4byte 0x02024190 +_0805AADC: .4byte 0x02023D08 +_0805AAE0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805AAF8 + adds r0, r0, r1 + ldr r1, _0805AAFC + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x3b + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805AAF8: .4byte 0x02024190 +_0805AAFC: .4byte 0x02023D08 +_0805AB00: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805AB18 + adds r0, r0, r1 + ldr r1, _0805AB1C + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x3c + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805AB18: .4byte 0x02024190 +_0805AB1C: .4byte 0x02023D08 +_0805AB20: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805AB38 + adds r0, r0, r1 + ldr r1, _0805AB3C + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x3d + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805AB38: .4byte 0x02024190 +_0805AB3C: .4byte 0x02023D08 +_0805AB40: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805AB58 + adds r0, r0, r1 + ldr r1, _0805AB5C + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x3e + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805AB58: .4byte 0x02024190 +_0805AB5C: .4byte 0x02023D08 +_0805AB60: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805AB78 + adds r0, r0, r1 + ldr r1, _0805AB7C + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x3f + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805AB78: .4byte 0x02024190 +_0805AB7C: .4byte 0x02023D08 +_0805AB80: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805AB98 + adds r0, r0, r1 + ldr r1, _0805AB9C + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x16 + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805AB98: .4byte 0x02024190 +_0805AB9C: .4byte 0x02023D08 +_0805ABA0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805ABB8 + adds r0, r0, r1 + ldr r1, _0805ABBC + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x17 + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805ABB8: .4byte 0x02024190 +_0805ABBC: .4byte 0x02023D08 +_0805ABC0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805ABD8 + adds r0, r0, r1 + ldr r1, _0805ABDC + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x18 + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805ABD8: .4byte 0x02024190 +_0805ABDC: .4byte 0x02023D08 +_0805ABE0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805ABF8 + adds r0, r0, r1 + ldr r1, _0805ABFC + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x21 + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805ABF8: .4byte 0x02024190 +_0805ABFC: .4byte 0x02023D08 +_0805AC00: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805AC18 + adds r0, r0, r1 + ldr r1, _0805AC1C + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x2f + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805AC18: .4byte 0x02024190 +_0805AC1C: .4byte 0x02023D08 +_0805AC20: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805AC38 + adds r0, r0, r1 + ldr r1, _0805AC3C + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x30 + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805AC38: .4byte 0x02024190 +_0805AC3C: .4byte 0x02023D08 +_0805AC40: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805AC58 + adds r0, r0, r1 + ldr r1, _0805AC5C + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x32 + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805AC58: .4byte 0x02024190 +_0805AC5C: .4byte 0x02023D08 +_0805AC60: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805AC78 + adds r0, r0, r1 + ldr r1, _0805AC7C + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x33 + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805AC78: .4byte 0x02024190 +_0805AC7C: .4byte 0x02023D08 +_0805AC80: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805AC98 + adds r0, r0, r1 + ldr r1, _0805AC9C + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x34 + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805AC98: .4byte 0x02024190 +_0805AC9C: .4byte 0x02023D08 +_0805ACA0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805ACB8 + adds r0, r0, r1 + ldr r1, _0805ACBC + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x35 + bl SetMonData + b _0805ACD6 + .align 2, 0 +_0805ACB8: .4byte 0x02024190 +_0805ACBC: .4byte 0x02023D08 +_0805ACC0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0805AD00 + adds r0, r0, r1 + ldr r1, _0805AD04 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x36 + bl SetMonData +_0805ACD6: + ldr r2, _0805AD08 + ldr r0, _0805AD04 + ldrb r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r2, [r0] + movs r0, #0x64 + muls r0, r2, r0 + ldr r2, _0805AD00 + adds r0, r0, r2 + bl HandleLowHpMusicChange + add sp, #0x34 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805AD00: .4byte 0x02024190 +_0805AD04: .4byte 0x02023D08 +_0805AD08: .4byte 0x02023D12 + thumb_func_end SetPlayerMonData + + thumb_func_start PlayerHandleSetRawMonData +PlayerHandleSetRawMonData: @ 0x0805AD0C + push {r4, r5, r6, r7, lr} + ldr r1, _0805AD70 + ldr r7, _0805AD74 + ldrb r2, [r7] + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + adds r3, r1, #0 + muls r3, r0, r3 + ldr r4, _0805AD78 + lsls r2, r2, #9 + adds r0, r4, #1 + adds r0, r2, r0 + ldrb r0, [r0] + ldr r1, _0805AD7C + adds r0, r0, r1 + adds r5, r3, r0 + movs r3, #0 + adds r0, r4, #2 + adds r2, r2, r0 + ldrb r2, [r2] + cmp r3, r2 + bhs _0805AD64 + adds r6, r4, #0 + adds r2, r7, #0 + adds r4, r0, #0 +_0805AD42: + adds r1, r5, r3 + ldrb r0, [r2] + lsls r0, r0, #9 + adds r0, #3 + adds r0, r3, r0 + adds r0, r0, r6 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldrb r0, [r2] + lsls r0, r0, #9 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r3, r0 + blo _0805AD42 +_0805AD64: + bl PlayerBufferExecCompleted + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805AD70: .4byte 0x02023D12 +_0805AD74: .4byte 0x02023D08 +_0805AD78: .4byte 0x02022D08 +_0805AD7C: .4byte 0x02024190 + thumb_func_end PlayerHandleSetRawMonData + + thumb_func_start PlayerHandleLoadMonSprite +PlayerHandleLoadMonSprite: @ 0x0805AD80 + push {r4, lr} + ldr r2, _0805ADCC + ldr r4, _0805ADD0 + ldrb r1, [r4] + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r2, [r0] + movs r0, #0x64 + muls r0, r2, r0 + ldr r2, _0805ADD4 + adds r0, r0, r2 + bl BattleLoadPlayerMonSpriteGfx + ldr r2, _0805ADD8 + ldr r0, _0805ADDC + ldrb r3, [r4] + adds r0, r3, r0 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + lsls r3, r3, #4 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #5] + ldr r1, _0805ADE0 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805ADE4 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0805ADCC: .4byte 0x02023D12 +_0805ADD0: .4byte 0x02023D08 +_0805ADD4: .4byte 0x02024190 +_0805ADD8: .4byte 0x020205AC +_0805ADDC: .4byte 0x02023E88 +_0805ADE0: .4byte 0x03005AC0 +_0805ADE4: .4byte 0x08057165 + thumb_func_end PlayerHandleLoadMonSprite + + thumb_func_start PlayerHandleSwitchInAnim +PlayerHandleSwitchInAnim: @ 0x0805ADE8 + push {r4, r5, r6, lr} + ldr r5, _0805AE54 + ldrb r0, [r5] + ldr r4, _0805AE58 + lsls r1, r0, #9 + adds r6, r4, #2 + adds r1, r1, r6 + ldrb r1, [r1] + bl ClearTemporarySpeciesSpriteData + ldr r2, _0805AE5C + ldrb r0, [r5] + lsls r1, r0, #1 + adds r1, r1, r2 + lsls r0, r0, #9 + adds r4, #1 + adds r0, r0, r4 + ldrb r0, [r0] + movs r4, #0 + strh r0, [r1] + ldrb r1, [r5] + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r2, [r0] + movs r0, #0x64 + muls r0, r2, r0 + ldr r2, _0805AE60 + adds r0, r0, r2 + bl BattleLoadPlayerMonSpriteGfx + ldr r1, _0805AE64 + ldrb r0, [r5] + adds r0, r0, r1 + strb r4, [r0] + ldr r1, _0805AE68 + ldrb r0, [r5] + adds r0, r0, r1 + strb r4, [r0] + ldrb r0, [r5] + lsls r1, r0, #9 + adds r1, r1, r6 + ldrb r1, [r1] + bl sub_0805AE74 + ldr r1, _0805AE6C + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805AE70 + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0805AE54: .4byte 0x02023D08 +_0805AE58: .4byte 0x02022D08 +_0805AE5C: .4byte 0x02023D12 +_0805AE60: .4byte 0x02024190 +_0805AE64: .4byte 0x02024150 +_0805AE68: .4byte 0x02024154 +_0805AE6C: .4byte 0x03005AC0 +_0805AE70: .4byte 0x08058C3D + thumb_func_end PlayerHandleSwitchInAnim + + thumb_func_start sub_0805AE74 +sub_0805AE74: @ 0x0805AE74 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r6, #0 + bl ClearTemporarySpeciesSpriteData + ldr r0, _0805AFC8 + lsls r2, r6, #1 + adds r2, r2, r0 + ldr r0, _0805AFCC + lsls r1, r6, #9 + adds r0, #1 + adds r1, r1, r0 + ldrb r0, [r1] + strh r0, [r2] + ldrh r1, [r2] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0805AFD0 + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + mov r8, r0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + ldr r0, _0805AFD4 + bl CreateInvisibleSpriteWithCallback + ldr r1, _0805AFD8 + mov sb, r1 + add sb, r6 + mov r1, sb + strb r0, [r1] + adds r0, r6, #0 + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r0, r8 + bl SetMultiuseSpriteTemplateToPokemon + ldr r0, _0805AFDC + mov sl, r0 + adds r0, r6, #0 + movs r1, #2 + bl GetBattlerSpriteCoord + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + adds r0, r6, #0 + bl GetBattlerSpriteDefault_Y + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r6, #0 + bl GetBattlerSpriteSubpriority + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r0, sl + adds r1, r5, #0 + adds r2, r4, #0 + bl CreateSprite + ldr r4, _0805AFE0 + adds r4, r6, r4 + strb r0, [r4] + ldr r5, _0805AFE4 + mov r0, sb + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r1, [r4] + strh r1, [r0, #0x30] + mov r0, sb + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r6, [r0, #0x32] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r6, [r0, #0x2e] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + mov r1, r8 + strh r1, [r0, #0x32] + ldrb r0, [r4] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + lsls r3, r6, #4 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #5] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _0805AFE8 + adds r6, r6, r1 + ldrb r1, [r6] + bl StartSpriteAnim + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r5, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _0805AFEC + str r1, [r0] + movs r0, #0 + movs r1, #0xff + bl DoPokeballSendOutAnimation + mov r1, sb + ldrb r2, [r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r1, #0x2e] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0805AFC8: .4byte 0x02023D12 +_0805AFCC: .4byte 0x02022D08 +_0805AFD0: .4byte 0x02024190 +_0805AFD4: .4byte 0x0805D331 +_0805AFD8: .4byte 0x03005ADC +_0805AFDC: .4byte 0x02024640 +_0805AFE0: .4byte 0x02023E88 +_0805AFE4: .4byte 0x020205AC +_0805AFE8: .4byte 0x02024188 +_0805AFEC: .4byte 0x08007141 + thumb_func_end sub_0805AE74 + + thumb_func_start PlayerHandleReturnMonToBall +PlayerHandleReturnMonToBall: @ 0x0805AFF0 + push {r4, r5, r6, lr} + ldr r1, _0805B024 + ldr r6, _0805B028 + ldrb r2, [r6] + lsls r0, r2, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r3, [r0] + cmp r3, #0 + bne _0805B038 + ldr r0, _0805B02C + ldr r0, [r0] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + strb r3, [r0, #4] + ldr r1, _0805B030 + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805B034 + str r1, [r0] + b _0805B06E + .align 2, 0 +_0805B024: .4byte 0x02022D08 +_0805B028: .4byte 0x02023D08 +_0805B02C: .4byte 0x02024174 +_0805B030: .4byte 0x03005AC0 +_0805B034: .4byte 0x0805B081 +_0805B038: + ldr r5, _0805B074 + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _0805B078 + adds r0, r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + ldr r1, _0805B07C + ldrb r0, [r6] + adds r0, r0, r1 + ldrb r0, [r0] + bl SetHealthboxSpriteInvisible + bl PlayerBufferExecCompleted +_0805B06E: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0805B074: .4byte 0x02023E88 +_0805B078: .4byte 0x020205AC +_0805B07C: .4byte 0x03005AD0 + thumb_func_end PlayerHandleReturnMonToBall + + thumb_func_start sub_0805B080 +sub_0805B080: @ 0x0805B080 + push {r4, r5, r6, lr} + ldr r6, _0805B0A0 + ldr r4, [r6] + ldr r5, _0805B0A4 + ldrb r2, [r5] + ldr r1, [r4, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r3, r0, r1 + ldrb r0, [r3, #4] + cmp r0, #0 + beq _0805B0A8 + cmp r0, #1 + beq _0805B0D6 + b _0805B0FE + .align 2, 0 +_0805B0A0: .4byte 0x02024174 +_0805B0A4: .4byte 0x02023D08 +_0805B0A8: + ldr r1, [r4] + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0805B0C2 + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #5 + bl InitAndLaunchSpecialAnimation +_0805B0C2: + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #1 + strb r1, [r0, #4] + b _0805B0FE +_0805B0D6: + ldrb r1, [r3] + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0805B0FE + strb r0, [r3, #4] + ldrb r2, [r5] + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #1 + bl InitAndLaunchSpecialAnimation + ldr r1, _0805B104 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805B108 + str r1, [r0] +_0805B0FE: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0805B104: .4byte 0x03005AC0 +_0805B108: .4byte 0x08059355 + thumb_func_end sub_0805B080 + + thumb_func_start PlayerHandleDrawTrainerPic +PlayerHandleDrawTrainerPic: @ 0x0805B10C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r0, _0805B16C + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _0805B1D0 + bl GetMultiplayerId + ldr r5, _0805B170 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + movs r4, #0xff + ldrb r0, [r1] + cmp r0, #4 + beq _0805B154 + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrh r1, [r1] + adds r0, r4, #0 + ands r0, r1 + cmp r0, #5 + bne _0805B174 +_0805B154: + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrb r0, [r1, #0x13] + adds r4, r0, #2 + b _0805B1D6 + .align 2, 0 +_0805B16C: .4byte 0x02022C90 +_0805B170: .4byte 0x020226A0 +_0805B174: + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrh r1, [r1] + adds r0, r4, #0 + ands r0, r1 + cmp r0, #2 + beq _0805B1A6 + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrh r0, [r1] + ands r4, r0 + cmp r4, #1 + bne _0805B1BC +_0805B1A6: + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrb r0, [r1, #0x13] + adds r4, r0, #4 + b _0805B1D6 +_0805B1BC: + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrb r4, [r1, #0x13] + b _0805B1D6 +_0805B1D0: + ldr r0, _0805B21C + ldr r0, [r0] + ldrb r4, [r0, #8] +_0805B1D6: + ldr r0, _0805B220 + ldr r1, [r0] + movs r2, #0x40 + ands r1, r2 + adds r5, r0, #0 + cmp r1, #0 + beq _0805B258 + ldr r0, _0805B224 + ldrb r0, [r0] + bl GetBattlerPosition + movs r1, #2 + ands r1, r0 + movs r0, #0x20 + mov sb, r0 + cmp r1, #0 + beq _0805B1FC + movs r1, #0x5a + mov sb, r1 +_0805B1FC: + ldr r0, [r5] + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + beq _0805B234 + ldr r0, _0805B228 + ldrh r1, [r0] + ldr r0, _0805B22C + cmp r1, r0 + beq _0805B234 + movs r0, #0x5a + mov sb, r0 + ldr r1, _0805B230 + b _0805B25E + .align 2, 0 +_0805B21C: .4byte 0x03005AF0 +_0805B220: .4byte 0x02022C90 +_0805B224: .4byte 0x02023D08 +_0805B228: .4byte 0x0203886E +_0805B22C: .4byte 0x00000C03 +_0805B230: .4byte 0x082D8D70 +_0805B234: + ldr r1, _0805B250 + lsls r0, r4, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #8 + subs r0, r0, r1 + lsls r0, r0, #0x12 + movs r1, #0xa0 + lsls r1, r1, #0xf + adds r0, r0, r1 + lsrs r7, r0, #0x10 + ldr r5, _0805B254 + b _0805B272 + .align 2, 0 +_0805B250: .4byte 0x082D95BC +_0805B254: .4byte 0x02022C90 +_0805B258: + movs r0, #0x50 + mov sb, r0 + ldr r1, _0805B384 +_0805B25E: + lsls r0, r4, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #8 + subs r0, r0, r1 + lsls r0, r0, #0x12 + movs r1, #0xa0 + lsls r1, r1, #0xf + adds r0, r0, r1 + lsrs r7, r0, #0x10 +_0805B272: + ldr r0, [r5] + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _0805B280 + b _0805B3B0 +_0805B280: + ldr r0, _0805B388 + ldrh r1, [r0] + ldr r0, _0805B38C + cmp r1, r0 + bne _0805B28C + b _0805B3B0 +_0805B28C: + ldr r0, _0805B390 + ldr r0, [r0] + ldrb r0, [r0, #8] + bl PlayerGenderToFrontTrainerPicId + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r5, r4, #0 + ldr r6, _0805B394 + ldrb r1, [r6] + adds r0, r5, #0 + bl DecompressTrainerFrontPic + ldrb r0, [r6] + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl SetMultiuseSpriteTemplateToTrainerFront + ldr r0, _0805B398 + mov r8, r0 + lsls r4, r7, #0x10 + asrs r4, r4, #0x10 + ldrb r0, [r6] + bl GetBattlerSpriteSubpriority + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r0, r8 + mov r1, sb + adds r2, r4, #0 + bl CreateSprite + ldr r4, _0805B39C + ldrb r1, [r6] + adds r1, r1, r4 + strb r0, [r1] + ldr r0, _0805B3A0 + lsls r5, r5, #3 + adds r5, r5, r0 + ldrh r0, [r5, #4] + bl IndexOfSpritePaletteTag + ldr r5, _0805B3A4 + ldrb r1, [r6] + adds r1, r1, r4 + ldrb r1, [r1] + lsls r2, r1, #4 + adds r2, r2, r1 + lsls r2, r2, #2 + adds r2, r2, r5 + lsls r0, r0, #4 + ldrb r3, [r2, #5] + movs r1, #0xf + ands r1, r3 + orrs r1, r0 + strb r1, [r2, #5] + ldrb r0, [r6] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0xf0 + strh r1, [r0, #0x24] + ldrb r0, [r6] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0x30 + strh r1, [r0, #0x26] + ldrb r0, [r6] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _0805B3A8 + strh r1, [r0, #0x2e] + ldrb r0, [r6] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r5, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _0805B3AC + str r1, [r0] + ldrb r0, [r6] + adds r0, r0, r4 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrb r2, [r1, #1] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #1] + ldrb r0, [r6] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3f + ldrb r1, [r0] + movs r2, #1 + orrs r1, r2 + strb r1, [r0] + b _0805B446 + .align 2, 0 +_0805B384: .4byte 0x082D95BC +_0805B388: .4byte 0x0203886E +_0805B38C: .4byte 0x00000C03 +_0805B390: .4byte 0x03005AF0 +_0805B394: .4byte 0x02023D08 +_0805B398: .4byte 0x02024640 +_0805B39C: .4byte 0x02023E88 +_0805B3A0: .4byte 0x082D91CC +_0805B3A4: .4byte 0x020205AC +_0805B3A8: .4byte 0x0000FFFE +_0805B3AC: .4byte 0x0805D3C9 +_0805B3B0: + ldr r5, _0805B460 + ldrb r1, [r5] + adds r0, r4, #0 + bl DecompressTrainerBackPic + ldrb r0, [r5] + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl SetMultiuseSpriteTemplateToTrainerBack + ldr r6, _0805B464 + mov r8, sb + lsls r4, r7, #0x10 + asrs r4, r4, #0x10 + ldrb r0, [r5] + bl GetBattlerSpriteSubpriority + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r6, #0 + mov r1, r8 + adds r2, r4, #0 + bl CreateSprite + ldr r6, _0805B468 + ldrb r1, [r5] + adds r1, r1, r6 + strb r0, [r1] + ldr r4, _0805B46C + ldrb r3, [r5] + adds r0, r3, r6 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + lsls r3, r3, #4 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #5] + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0xf0 + strh r1, [r0, #0x24] + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _0805B470 + strh r1, [r0, #0x2e] + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, #0x1c + adds r0, r0, r4 + ldr r1, _0805B474 + str r1, [r0] +_0805B446: + ldr r1, _0805B478 + ldr r0, _0805B460 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805B47C + str r1, [r0] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805B460: .4byte 0x02023D08 +_0805B464: .4byte 0x02024640 +_0805B468: .4byte 0x02023E88 +_0805B46C: .4byte 0x020205AC +_0805B470: .4byte 0x0000FFFE +_0805B474: .4byte 0x0805D3C9 +_0805B478: .4byte 0x03005AC0 +_0805B47C: .4byte 0x08058455 + thumb_func_end PlayerHandleDrawTrainerPic + + thumb_func_start PlayerHandleTrainerSlide +PlayerHandleTrainerSlide: @ 0x0805B480 + push {r4, r5, r6, lr} + ldr r0, _0805B4D8 + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _0805B53C + bl GetMultiplayerId + ldr r5, _0805B4DC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + movs r4, #0xff + ldrb r0, [r1] + cmp r0, #4 + beq _0805B4C2 + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrh r1, [r1] + adds r0, r4, #0 + ands r0, r1 + cmp r0, #5 + bne _0805B4E0 +_0805B4C2: + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrb r0, [r1, #0x13] + adds r4, r0, #2 + b _0805B542 + .align 2, 0 +_0805B4D8: .4byte 0x02022C90 +_0805B4DC: .4byte 0x020226A0 +_0805B4E0: + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrh r1, [r1] + adds r0, r4, #0 + ands r0, r1 + cmp r0, #2 + beq _0805B512 + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrh r0, [r1] + ands r4, r0 + cmp r4, #1 + bne _0805B528 +_0805B512: + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrb r0, [r1, #0x13] + adds r4, r0, #4 + b _0805B542 +_0805B528: + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrb r4, [r1, #0x13] + b _0805B542 +_0805B53C: + ldr r0, _0805B5EC + ldr r0, [r0] + ldrb r4, [r0, #8] +_0805B542: + ldr r5, _0805B5F0 + ldrb r1, [r5] + adds r0, r4, #0 + bl DecompressTrainerBackPic + ldrb r0, [r5] + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl SetMultiuseSpriteTemplateToTrainerBack + ldr r0, _0805B5F4 + ldr r1, _0805B5F8 + lsls r4, r4, #2 + adds r4, r4, r1 + ldrb r1, [r4] + movs r2, #8 + subs r2, r2, r1 + lsls r2, r2, #0x12 + movs r1, #0xa0 + lsls r1, r1, #0xf + adds r2, r2, r1 + asrs r2, r2, #0x10 + movs r1, #0x50 + movs r3, #0x1e + bl CreateSprite + ldr r6, _0805B5FC + ldrb r1, [r5] + adds r1, r1, r6 + strb r0, [r1] + ldr r4, _0805B600 + ldrb r3, [r5] + adds r0, r3, r6 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + lsls r3, r3, #4 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #5] + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _0805B604 + strh r1, [r0, #0x24] + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #2 + strh r1, [r0, #0x2e] + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, #0x1c + adds r0, r0, r4 + ldr r1, _0805B608 + str r1, [r0] + ldr r1, _0805B60C + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805B610 + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0805B5EC: .4byte 0x03005AF0 +_0805B5F0: .4byte 0x02023D08 +_0805B5F4: .4byte 0x02024640 +_0805B5F8: .4byte 0x082D95BC +_0805B5FC: .4byte 0x02023E88 +_0805B600: .4byte 0x020205AC +_0805B604: .4byte 0x0000FFA0 +_0805B608: .4byte 0x0805D3C9 +_0805B60C: .4byte 0x03005AC0 +_0805B610: .4byte 0x0805848D + thumb_func_end PlayerHandleTrainerSlide + + thumb_func_start PlayerHandleTrainerSlideBack +PlayerHandleTrainerSlideBack: @ 0x0805B614 + push {r4, r5, r6, lr} + ldr r5, _0805B6B4 + ldr r6, _0805B6B8 + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _0805B6BC + adds r0, r0, r4 + bl SetSpritePrimaryCoordsFromSecondaryCoords + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0x32 + strh r1, [r0, #0x2e] + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _0805B6C0 + strh r1, [r0, #0x32] + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r0, #0x22] + strh r1, [r0, #0x36] + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _0805B6C4 + str r1, [r0] + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _0805B6C8 + bl StoreSpriteCallbackInData6 + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #1 + bl StartSpriteAnim + ldr r1, _0805B6CC + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805B6D0 + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0805B6B4: .4byte 0x02023E88 +_0805B6B8: .4byte 0x02023D08 +_0805B6BC: .4byte 0x020205AC +_0805B6C0: .4byte 0x0000FFD8 +_0805B6C4: .4byte 0x080A67B5 +_0805B6C8: .4byte 0x08007141 +_0805B6CC: .4byte 0x03005AC0 +_0805B6D0: .4byte 0x080584C5 + thumb_func_end PlayerHandleTrainerSlideBack + + thumb_func_start PlayerHandleFaintAnimation +PlayerHandleFaintAnimation: @ 0x0805B6D4 + push {r4, r5, r6, lr} + ldr r6, _0805B720 + ldr r4, [r6] + ldr r5, _0805B724 + ldrb r2, [r5] + ldr r0, [r4, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r3, r1, r0 + ldrb r0, [r3, #4] + cmp r0, #0 + bne _0805B728 + ldr r1, [r4] + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0805B708 + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #5 + bl InitAndLaunchSpecialAnimation +_0805B708: + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #4] + adds r1, #1 + strb r1, [r0, #4] + b _0805B79E + .align 2, 0 +_0805B720: .4byte 0x02024174 +_0805B724: .4byte 0x02023D08 +_0805B728: + ldrb r1, [r3] + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _0805B79E + strb r4, [r3, #4] + ldr r2, _0805B7A4 + ldrb r1, [r5] + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r2, [r0] + movs r0, #0x64 + muls r0, r2, r0 + ldr r2, _0805B7A8 + adds r0, r0, r2 + bl HandleLowHpMusicChange + movs r1, #0x40 + rsbs r1, r1, #0 + movs r0, #0x10 + bl PlaySE12WithPanning + ldr r2, _0805B7AC + ldr r3, _0805B7B0 + ldrb r0, [r5] + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r4, [r0, #0x30] + ldrb r0, [r5] + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #5 + strh r1, [r0, #0x32] + ldrb r0, [r5] + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, _0805B7B4 + str r1, [r0] + ldr r1, _0805B7B8 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805B7BC + str r1, [r0] +_0805B79E: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0805B7A4: .4byte 0x02023D12 +_0805B7A8: .4byte 0x02024190 +_0805B7AC: .4byte 0x020205AC +_0805B7B0: .4byte 0x02023E88 +_0805B7B4: .4byte 0x08039845 +_0805B7B8: .4byte 0x03005AC0 +_0805B7BC: .4byte 0x080592B9 + thumb_func_end PlayerHandleFaintAnimation + + thumb_func_start PlayerHandlePaletteFade +PlayerHandlePaletteFade: @ 0x0805B7C0 + push {lr} + sub sp, #4 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r1, #2 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + bl PlayerBufferExecCompleted + add sp, #4 + pop {r0} + bx r0 + thumb_func_end PlayerHandlePaletteFade + + thumb_func_start PlayerHandleSuccessBallThrowAnim +PlayerHandleSuccessBallThrowAnim: @ 0x0805B7E0 + push {r4, r5, lr} + ldr r0, _0805B820 + ldr r0, [r0] + ldr r1, [r0, #8] + movs r0, #4 + strb r0, [r1, #8] + ldr r1, _0805B824 + movs r0, #1 + strb r0, [r1] + ldr r5, _0805B828 + ldrb r4, [r5] + movs r0, #1 + bl GetBattlerAtPosition + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r4, #0 + movs r3, #3 + bl InitAndLaunchSpecialAnimation + ldr r1, _0805B82C + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805B830 + str r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0805B820: .4byte 0x02024174 +_0805B824: .4byte 0x0202415D +_0805B828: .4byte 0x02023D08 +_0805B82C: .4byte 0x03005AC0 +_0805B830: .4byte 0x0805952D + thumb_func_end PlayerHandleSuccessBallThrowAnim + + thumb_func_start PlayerHandleBallThrowAnim +PlayerHandleBallThrowAnim: @ 0x0805B834 + push {r4, r5, lr} + ldr r1, _0805B87C + ldr r5, _0805B880 + ldrb r0, [r5] + lsls r0, r0, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r1, [r0] + ldr r0, _0805B884 + ldr r0, [r0] + ldr r0, [r0, #8] + strb r1, [r0, #8] + ldr r1, _0805B888 + movs r0, #1 + strb r0, [r1] + ldrb r4, [r5] + movs r0, #1 + bl GetBattlerAtPosition + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r4, #0 + movs r3, #3 + bl InitAndLaunchSpecialAnimation + ldr r1, _0805B88C + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805B890 + str r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0805B87C: .4byte 0x02022D08 +_0805B880: .4byte 0x02023D08 +_0805B884: .4byte 0x02024174 +_0805B888: .4byte 0x0202415D +_0805B88C: .4byte 0x03005AC0 +_0805B890: .4byte 0x0805952D + thumb_func_end PlayerHandleBallThrowAnim + + thumb_func_start PlayerHandlePause +PlayerHandlePause: @ 0x0805B894 + push {lr} + ldr r1, _0805B8BC + ldr r0, _0805B8C0 + ldrb r0, [r0] + lsls r0, r0, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _0805B8B2 +_0805B8A8: + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0805B8A8 +_0805B8B2: + bl PlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_0805B8BC: .4byte 0x02022D08 +_0805B8C0: .4byte 0x02023D08 + thumb_func_end PlayerHandlePause + + thumb_func_start PlayerHandleMoveAnimation +PlayerHandleMoveAnimation: @ 0x0805B8C4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r5, _0805B9B4 + ldrb r0, [r5] + bl mplay_80342A4 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0805B8DA + b _0805BA00 +_0805B8DA: + ldr r0, _0805B9B8 + mov ip, r0 + ldrb r1, [r5] + lsls r1, r1, #9 + adds r0, #1 + adds r0, r1, r0 + ldrb r6, [r0] + mov r0, ip + adds r0, #2 + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, r0, #8 + orrs r6, r0 + ldr r0, _0805B9BC + mov r8, r0 + mov r0, ip + adds r0, #3 + adds r1, r1, r0 + ldrb r0, [r1] + mov r1, r8 + strb r0, [r1] + ldr r3, _0805B9C0 + ldrb r1, [r5] + lsls r1, r1, #9 + mov r0, ip + adds r0, #4 + adds r0, r1, r0 + ldrb r2, [r0] + mov r0, ip + adds r0, #5 + adds r1, r1, r0 + ldrb r0, [r1] + lsls r0, r0, #8 + orrs r2, r0 + strh r2, [r3] + ldr r3, _0805B9C4 + ldrb r1, [r5] + lsls r1, r1, #9 + mov r0, ip + adds r0, #6 + adds r0, r1, r0 + ldrb r2, [r0] + mov r0, ip + adds r0, #7 + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, r0, #8 + orrs r2, r0 + mov r0, ip + adds r0, #8 + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, r0, #0x10 + orrs r2, r0 + mov r0, ip + adds r0, #9 + adds r1, r1, r0 + ldrb r0, [r1] + lsls r0, r0, #0x18 + orrs r2, r0 + str r2, [r3] + ldr r2, _0805B9C8 + ldrb r0, [r5] + lsls r0, r0, #9 + mov r1, ip + adds r1, #0xa + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r2] + ldr r4, _0805B9CC + ldrb r1, [r5] + lsls r1, r1, #9 + mov r0, ip + adds r0, #0xc + adds r0, r1, r0 + ldrb r2, [r0] + mov r0, ip + adds r0, #0xd + adds r1, r1, r0 + ldrb r0, [r1] + lsls r0, r0, #8 + orrs r2, r0 + strh r2, [r4] + ldr r7, _0805B9D0 + ldrb r1, [r5] + lsls r1, r1, #9 + mov r0, ip + adds r0, #0x10 + adds r1, r1, r0 + str r1, [r7] + ldr r2, _0805B9D4 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, [r1] + str r1, [r0] + mov r0, r8 + ldrb r1, [r0] + adds r0, r6, #0 + bl IsMoveWithoutAnimation + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + beq _0805B9D8 + bl PlayerBufferExecCompleted + b _0805BA00 + .align 2, 0 +_0805B9B4: .4byte 0x02023D08 +_0805B9B8: .4byte 0x02022D08 +_0805B9BC: .4byte 0x020380D2 +_0805B9C0: .4byte 0x020380A8 +_0805B9C4: .4byte 0x020380A4 +_0805B9C8: .4byte 0x020380BA +_0805B9CC: .4byte 0x020380BC +_0805B9D0: .4byte 0x020380A0 +_0805B9D4: .4byte 0x02024160 +_0805B9D8: + ldr r0, _0805BA0C + ldr r0, [r0] + ldrb r1, [r5] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strb r3, [r0, #4] + ldr r1, _0805BA10 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805BA14 + str r1, [r0] + ldrh r1, [r4] + ldr r2, [r7] + adds r0, r6, #0 + bl BattleTv_SetDataBasedOnMove +_0805BA00: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805BA0C: .4byte 0x02024174 +_0805BA10: .4byte 0x03005AC0 +_0805BA14: .4byte 0x0805BA19 + thumb_func_end PlayerHandleMoveAnimation + + thumb_func_start PlayerDoMoveAnimation +PlayerDoMoveAnimation: @ 0x0805BA18 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r2, _0805BA64 + ldr r6, _0805BA68 + ldrb r3, [r6] + lsls r1, r3, #9 + adds r0, r2, #1 + mov sl, r0 + adds r0, r1, r0 + ldrb r4, [r0] + adds r5, r2, #2 + mov sb, r5 + adds r0, r1, r5 + ldrb r0, [r0] + lsls r0, r0, #8 + orrs r4, r0 + adds r2, #0xb + adds r1, r1, r2 + ldrb r1, [r1] + mov r8, r1 + ldr r7, _0805BA6C + ldr r5, [r7] + ldr r1, [r5, #4] + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r2, [r0, #4] + cmp r2, #1 + beq _0805BAB0 + cmp r2, #1 + bgt _0805BA70 + cmp r2, #0 + beq _0805BA7A + b _0805BB8C + .align 2, 0 +_0805BA64: .4byte 0x02022D08 +_0805BA68: .4byte 0x02023D08 +_0805BA6C: .4byte 0x02024174 +_0805BA70: + cmp r2, #2 + beq _0805BADA + cmp r2, #3 + beq _0805BB50 + b _0805BB8C +_0805BA7A: + ldr r1, [r5] + lsls r0, r3, #2 + adds r1, r0, r1 + ldrb r2, [r1] + movs r0, #0xc + ands r0, r2 + cmp r0, #4 + bne _0805BA9C + movs r0, #8 + orrs r0, r2 + strb r0, [r1] + ldrb r2, [r6] + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #5 + bl InitAndLaunchSpecialAnimation +_0805BA9C: + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #1 + strb r1, [r0, #4] + b _0805BB8C +_0805BAB0: + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _0805BB8C + movs r0, #0 + bl sub_0805E7B8 + adds r0, r4, #0 + bl DoMoveAnim + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #2 + strb r1, [r0, #4] + b _0805BB8C +_0805BADA: + ldr r0, _0805BB40 + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _0805BB44 + ldrb r0, [r0] + cmp r0, #0 + bne _0805BB8C + movs r0, #1 + bl sub_0805E7B8 + ldr r0, [r7] + ldrb r2, [r6] + ldr r1, [r0] + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0805BB28 + mov r0, r8 + cmp r0, #1 + bhi _0805BB28 + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #6 + bl InitAndLaunchSpecialAnimation + ldr r0, [r7] + ldrb r1, [r6] + ldr r0, [r0] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] +_0805BB28: + ldr r0, _0805BB48 + ldr r2, [r0] + ldr r0, _0805BB4C + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #3 + strb r1, [r0, #4] + b _0805BB8C + .align 2, 0 +_0805BB40: .4byte 0x02038098 +_0805BB44: .4byte 0x0203809D +_0805BB48: .4byte 0x02024174 +_0805BB4C: .4byte 0x02023D08 +_0805BB50: + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _0805BB8C + bl CopyAllBattleSpritesInvisibilities + ldrb r0, [r6] + lsls r2, r0, #9 + mov r3, sl + adds r1, r2, r3 + ldrb r1, [r1] + add r2, sb + ldrb r2, [r2] + lsls r2, r2, #8 + orrs r1, r2 + bl TrySetBehindSubstituteSpriteBit + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strb r4, [r0, #4] + bl PlayerBufferExecCompleted +_0805BB8C: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerDoMoveAnimation + + thumb_func_start PlayerHandlePrintString +PlayerHandlePrintString: @ 0x0805BB9C + push {r4, r5, lr} + ldr r0, _0805BBE0 + movs r1, #0 + strh r1, [r0] + ldr r0, _0805BBE4 + strh r1, [r0] + ldr r5, _0805BBE8 + ldrb r4, [r5] + lsls r4, r4, #9 + ldr r0, _0805BBEC + adds r4, r4, r0 + ldrh r0, [r4] + bl BufferStringBattle + ldr r0, _0805BBF0 + movs r1, #0 + bl sub_0814FA04 + ldr r1, _0805BBF4 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805BBF8 + str r1, [r0] + ldrh r0, [r4] + bl BattleTv_SetDataBasedOnString + ldrb r0, [r5] + ldrh r1, [r4] + bl BattleArena_DeductMindPoints + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0805BBE0: .4byte 0x02022AC8 +_0805BBE4: .4byte 0x02022ACA +_0805BBE8: .4byte 0x02023D08 +_0805BBEC: .4byte 0x02022D0A +_0805BBF0: .4byte 0x02022AE0 +_0805BBF4: .4byte 0x03005AC0 +_0805BBF8: .4byte 0x080593C5 + thumb_func_end PlayerHandlePrintString + + thumb_func_start PlayerHandlePrintSelectionString +PlayerHandlePrintSelectionString: @ 0x0805BBFC + push {lr} + ldr r0, _0805BC14 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805BC18 + bl PlayerHandlePrintString + b _0805BC1C + .align 2, 0 +_0805BC14: .4byte 0x02023D08 +_0805BC18: + bl PlayerBufferExecCompleted +_0805BC1C: + pop {r0} + bx r0 + thumb_func_end PlayerHandlePrintSelectionString + + thumb_func_start sub_0805BC20 +sub_0805BC20: @ 0x0805BC20 + push {lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0805BC46 + ldr r0, _0805BC4C + strh r1, [r0] + ldr r1, _0805BC50 + movs r0, #0xa0 + strh r0, [r1] + ldr r1, _0805BC54 + ldr r0, _0805BC58 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805BC5C + str r1, [r0] +_0805BC46: + pop {r0} + bx r0 + .align 2, 0 +_0805BC4C: .4byte 0x02022AC8 +_0805BC50: .4byte 0x02022ACA +_0805BC54: .4byte 0x03005AC0 +_0805BC58: .4byte 0x02023D08 +_0805BC5C: .4byte 0x08057199 + thumb_func_end sub_0805BC20 + + thumb_func_start PlayerHandleChooseAction +PlayerHandleChooseAction: @ 0x0805BC60 + push {r4, lr} + ldr r1, _0805BCB0 + ldr r0, _0805BCB4 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805BCB8 + str r1, [r0] + bl BattleTv_ClearExplosionFaintCause + ldr r0, _0805BCBC + movs r1, #2 + bl sub_0814FA04 + movs r4, #0 +_0805BC7E: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl ActionSelectionDestroyCursorAt + adds r4, #1 + cmp r4, #3 + ble _0805BC7E + ldr r1, _0805BCC0 + ldr r0, _0805BCB4 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0 + bl SetCB2ToReshowScreenAfterMenu + ldr r0, _0805BCC4 + bl TryGetStatusString + ldr r0, _0805BCC8 + movs r1, #1 + bl sub_0814FA04 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0805BCB0: .4byte 0x03005AC0 +_0805BCB4: .4byte 0x02023D08 +_0805BCB8: .4byte 0x0805BC21 +_0805BCBC: .4byte 0x085ABB72 +_0805BCC0: .4byte 0x02024150 +_0805BCC4: .4byte 0x085ABB43 +_0805BCC8: .4byte 0x02022AE0 + thumb_func_end PlayerHandleChooseAction + + thumb_func_start PlayerHandleUnknownYesNoBox +PlayerHandleUnknownYesNoBox: @ 0x0805BCCC + push {r4, lr} + sub sp, #4 + ldr r4, _0805BD10 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0805BD24 + str r0, [sp] + movs r0, #0x18 + movs r1, #8 + movs r2, #0x1d + movs r3, #0xd + bl HandleBattleWindow + ldr r0, _0805BD14 + movs r1, #0xc + bl sub_0814FA04 + ldr r1, _0805BD18 + movs r0, #1 + strb r0, [r1] + movs r0, #1 + bl BattleCreateYesNoCursorAt + ldr r1, _0805BD1C + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805BD20 + str r1, [r0] + b _0805BD28 + .align 2, 0 +_0805BD10: .4byte 0x02023D08 +_0805BD14: .4byte 0x085ABBC9 +_0805BD18: .4byte 0x03005AD4 +_0805BD1C: .4byte 0x03005AC0 +_0805BD20: .4byte 0x080595E5 +_0805BD24: + bl PlayerBufferExecCompleted +_0805BD28: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end PlayerHandleUnknownYesNoBox + + thumb_func_start HandleChooseMoveAfterDma3 +HandleChooseMoveAfterDma3: @ 0x0805BD30 + push {lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0805BD5A + ldr r0, _0805BD60 + strh r1, [r0] + ldr r1, _0805BD64 + movs r2, #0xa0 + lsls r2, r2, #1 + adds r0, r2, #0 + strh r0, [r1] + ldr r1, _0805BD68 + ldr r0, _0805BD6C + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805BD70 + str r1, [r0] +_0805BD5A: + pop {r0} + bx r0 + .align 2, 0 +_0805BD60: .4byte 0x02022AC8 +_0805BD64: .4byte 0x02022ACA +_0805BD68: .4byte 0x03005AC0 +_0805BD6C: .4byte 0x02023D08 +_0805BD70: .4byte 0x0805780D + thumb_func_end HandleChooseMoveAfterDma3 + + thumb_func_start PlayerChooseMoveInBattlePalace +PlayerChooseMoveInBattlePalace: @ 0x0805BD74 + push {lr} + ldr r0, _0805BDB4 + ldrb r1, [r0] + ldr r0, _0805BDB8 + ldr r0, [r0] + adds r1, r1, r0 + movs r0, #0xa6 + lsls r0, r0, #2 + adds r1, r1, r0 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805BDB0 + ldr r1, _0805BDBC + ldr r0, _0805BDC0 + ldr r0, [r0] + str r0, [r1] + bl ChooseMoveAndTargetInBattlePalace + adds r2, r0, #0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + movs r0, #1 + movs r1, #0xa + bl BtlController_EmitTwoReturnValues + bl PlayerBufferExecCompleted +_0805BDB0: + pop {r0} + bx r0 + .align 2, 0 +_0805BDB4: .4byte 0x02023D08 +_0805BDB8: .4byte 0x02024140 +_0805BDBC: .4byte 0x0203B9FC +_0805BDC0: .4byte 0x03005AE0 + thumb_func_end PlayerChooseMoveInBattlePalace + + thumb_func_start PlayerHandleChooseMove +PlayerHandleChooseMove: @ 0x0805BDC4 + push {lr} + ldr r0, _0805BDF4 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xa + ands r0, r1 + cmp r0, #0 + beq _0805BE08 + ldr r2, _0805BDF8 + ldrb r0, [r2] + ldr r1, _0805BDFC + ldr r1, [r1] + adds r0, r0, r1 + movs r1, #0xa6 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r1, #8 + strb r1, [r0] + ldr r1, _0805BE00 + ldrb r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805BE04 + b _0805BE18 + .align 2, 0 +_0805BDF4: .4byte 0x02022C90 +_0805BDF8: .4byte 0x02023D08 +_0805BDFC: .4byte 0x02024140 +_0805BE00: .4byte 0x03005AC0 +_0805BE04: .4byte 0x0805BD75 +_0805BE08: + bl InitMoveSelectionsVarsAndStrings + ldr r1, _0805BE20 + ldr r0, _0805BE24 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805BE28 +_0805BE18: + str r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_0805BE20: .4byte 0x03005AC0 +_0805BE24: .4byte 0x02023D08 +_0805BE28: .4byte 0x0805BD31 + thumb_func_end PlayerHandleChooseMove + + thumb_func_start InitMoveSelectionsVarsAndStrings +InitMoveSelectionsVarsAndStrings: @ 0x0805BE2C + push {lr} + bl MoveSelectionDisplayMoveNames + ldr r1, _0805BE58 + movs r0, #0xff + strb r0, [r1] + ldr r1, _0805BE5C + ldr r0, _0805BE60 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0 + bl MoveSelectionCreateCursorAt + bl PlayerHandleTwoReturnValues + bl MoveSelectionDisplayPpNumber + bl ActionSelectionCreateCursorAt + pop {r0} + bx r0 + .align 2, 0 +_0805BE58: .4byte 0x03005AD4 +_0805BE5C: .4byte 0x02024154 +_0805BE60: .4byte 0x02023D08 + thumb_func_end InitMoveSelectionsVarsAndStrings + + thumb_func_start PlayerHandleChooseItem +PlayerHandleChooseItem: @ 0x0805BE64 + push {r4, r5, lr} + sub sp, #4 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _0805BEB0 + ldr r2, _0805BEB4 + ldrb r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805BEB8 + str r1, [r0] + ldr r1, _0805BEBC + ldrb r0, [r2] + strb r0, [r1] + movs r3, #0 + ldr r5, _0805BEC0 + ldr r4, _0805BEC4 +_0805BE92: + adds r0, r3, r5 + ldrb r1, [r2] + lsls r1, r1, #9 + adds r1, #1 + adds r1, r3, r1 + adds r1, r1, r4 + ldrb r1, [r1] + strb r1, [r0] + adds r3, #1 + cmp r3, #2 + ble _0805BE92 + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0805BEB0: .4byte 0x03005AC0 +_0805BEB4: .4byte 0x02023D08 +_0805BEB8: .4byte 0x080594B5 +_0805BEBC: .4byte 0x0202415C +_0805BEC0: .4byte 0x0203CBCC +_0805BEC4: .4byte 0x02022D08 + thumb_func_end PlayerHandleChooseItem + + thumb_func_start PlayerHandleChoosePokemon +PlayerHandleChoosePokemon: @ 0x0805BEC8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + movs r3, #0 + ldr r0, _0805BF38 + mov ip, r0 + ldr r1, _0805BF3C + mov r8, r1 + ldr r2, _0805BF40 + ldr r7, _0805BF44 + mov r6, ip + mov r5, r8 + adds r4, r2, #0 +_0805BEE4: + adds r0, r3, r6 + ldrb r1, [r4] + lsls r1, r1, #9 + adds r1, #4 + adds r1, r3, r1 + adds r1, r1, r5 + ldrb r1, [r1] + strb r1, [r0] + adds r3, #1 + cmp r3, #2 + ble _0805BEE4 + ldr r0, [r7] + movs r1, #0x80 + lsls r1, r1, #0xb + ands r0, r1 + cmp r0, #0 + beq _0805BF4C + ldrb r3, [r2] + lsls r0, r3, #9 + mov r1, r8 + adds r1, #1 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + cmp r0, #2 + beq _0805BF4C + ldr r1, _0805BF48 + lsls r0, r3, #1 + adds r0, r0, r1 + ldrb r1, [r0] + adds r1, #1 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #1 + mov r2, ip + bl BtlController_EmitChosenMonReturnValue + bl PlayerBufferExecCompleted + b _0805BFD8 + .align 2, 0 +_0805BF38: .4byte 0x0203CBCC +_0805BF3C: .4byte 0x02022D08 +_0805BF40: .4byte 0x02023D08 +_0805BF44: .4byte 0x02022C90 +_0805BF48: .4byte 0x02023D12 +_0805BF4C: + ldr r0, _0805BFE4 + movs r1, #0xff + bl CreateTask + ldr r3, _0805BFE8 + ldr r4, _0805BFEC + ldrb r1, [r4] + adds r1, r1, r3 + movs r2, #0 + mov r8, r2 + strb r0, [r1] + ldr r5, _0805BFF0 + ldrb r2, [r4] + adds r3, r2, r3 + ldrb r0, [r3] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r5 + ldr r5, _0805BFF4 + lsls r2, r2, #9 + adds r6, r5, #1 + adds r2, r2, r6 + ldrb r2, [r2] + movs r0, #0xf + ands r0, r2 + strh r0, [r1, #8] + ldr r3, _0805BFF8 + ldr r1, [r3] + adds r1, #0x49 + ldrb r0, [r4] + lsls r0, r0, #9 + adds r0, r0, r6 + ldrb r0, [r0] + lsrs r0, r0, #4 + strb r0, [r1] + ldr r2, [r3] + adds r2, #0x8b + ldrb r0, [r4] + lsls r0, r0, #9 + adds r1, r5, #2 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r2] + ldr r1, [r3] + adds r1, #0xb0 + ldrb r0, [r4] + lsls r0, r0, #9 + adds r5, #3 + adds r0, r0, r5 + ldrb r0, [r0] + strb r0, [r1] + movs r0, #1 + rsbs r0, r0, #0 + mov r1, r8 + str r1, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _0805BFFC + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805C000 + str r1, [r0] + ldr r1, _0805C004 + ldrb r0, [r4] + strb r0, [r1] +_0805BFD8: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805BFE4: .4byte 0x080A8A41 +_0805BFE8: .4byte 0x03005ADC +_0805BFEC: .4byte 0x02023D08 +_0805BFF0: .4byte 0x03005B60 +_0805BFF4: .4byte 0x02022D08 +_0805BFF8: .4byte 0x02024140 +_0805BFFC: .4byte 0x03005AC0 +_0805C000: .4byte 0x080593DD +_0805C004: .4byte 0x0202415C + thumb_func_end PlayerHandleChoosePokemon + + thumb_func_start PlayerHandleCmd23 +PlayerHandleCmd23: @ 0x0805C008 + push {lr} + sub sp, #4 + bl BattleStopLowHpSound + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r1, #2 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + bl PlayerBufferExecCompleted + add sp, #4 + pop {r0} + bx r0 + thumb_func_end PlayerHandleCmd23 + + thumb_func_start PlayerHandleHealthBarUpdate +PlayerHandleHealthBarUpdate: @ 0x0805C02C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + movs r0, #0 + bl LoadBattleBarGfx + ldr r3, _0805C0B4 + ldr r0, _0805C0B8 + mov sb, r0 + ldrb r1, [r0] + lsls r1, r1, #9 + adds r0, r3, #2 + adds r0, r1, r0 + ldrb r2, [r0] + adds r3, #3 + adds r1, r1, r3 + ldrb r0, [r1] + lsls r0, r0, #8 + orrs r2, r0 + lsls r2, r2, #0x10 + asrs r7, r2, #0x10 + cmp r7, #0 + ble _0805C066 + ldr r1, _0805C0BC + ldr r0, [r1] + adds r0, r0, r7 + str r0, [r1] +_0805C066: + ldr r0, _0805C0C0 + cmp r7, r0 + beq _0805C0D0 + ldr r6, _0805C0C4 + mov r1, sb + ldrb r0, [r1] + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r0, [r0] + movs r5, #0x64 + muls r0, r5, r0 + ldr r4, _0805C0C8 + adds r0, r0, r4 + movs r1, #0x3a + bl GetMonData + mov r8, r0 + mov r2, sb + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r0, [r0] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #0x39 + bl GetMonData + adds r3, r0, #0 + mov r1, sb + ldrb r0, [r1] + ldr r1, _0805C0CC + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + mov r2, r8 + bl SetBattleBarStruct + b _0805C10E + .align 2, 0 +_0805C0B4: .4byte 0x02022D08 +_0805C0B8: .4byte 0x02023D08 +_0805C0BC: .4byte 0x0203CA3C +_0805C0C0: .4byte 0x00007FFF +_0805C0C4: .4byte 0x02023D12 +_0805C0C8: .4byte 0x02024190 +_0805C0CC: .4byte 0x03005AD0 +_0805C0D0: + ldr r1, _0805C12C + mov r2, sb + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0805C130 + adds r0, r0, r1 + movs r1, #0x3a + bl GetMonData + adds r2, r0, #0 + mov r1, sb + ldrb r0, [r1] + ldr r4, _0805C134 + adds r1, r0, r4 + ldrb r1, [r1] + str r7, [sp] + movs r3, #0 + bl SetBattleBarStruct + mov r2, sb + ldrb r0, [r2] + adds r0, r0, r4 + ldrb r0, [r0] + movs r1, #0 + movs r2, #0 + bl sub_080726F4 +_0805C10E: + ldr r1, _0805C138 + ldr r0, _0805C13C + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805C140 + str r1, [r0] + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805C12C: .4byte 0x02023D12 +_0805C130: .4byte 0x02024190 +_0805C134: .4byte 0x03005AD0 +_0805C138: .4byte 0x03005AC0 +_0805C13C: .4byte 0x02023D08 +_0805C140: .4byte 0x08058D41 + thumb_func_end PlayerHandleHealthBarUpdate + + thumb_func_start PlayerHandleExpUpdate +PlayerHandleExpUpdate: @ 0x0805C144 + push {r4, r5, r6, r7, lr} + ldr r5, _0805C170 + ldr r6, _0805C174 + ldrb r0, [r6] + lsls r0, r0, #9 + adds r1, r5, #1 + adds r0, r0, r1 + ldrb r7, [r0] + movs r0, #0x64 + adds r1, r7, #0 + muls r1, r0, r1 + ldr r0, _0805C178 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0x38 + bl GetMonData + cmp r0, #0x63 + bls _0805C17C + bl PlayerBufferExecCompleted + b _0805C1C8 + .align 2, 0 +_0805C170: .4byte 0x02022D08 +_0805C174: .4byte 0x02023D08 +_0805C178: .4byte 0x02024190 +_0805C17C: + movs r0, #1 + bl LoadBattleBarGfx + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + ldrb r1, [r6] + lsls r1, r1, #9 + adds r0, r5, #2 + adds r0, r1, r0 + ldrb r4, [r0] + adds r0, r5, #3 + adds r1, r1, r0 + ldrb r0, [r1] + lsls r0, r0, #8 + orrs r4, r0 + ldr r0, _0805C1D0 + movs r1, #0xa + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0805C1D4 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r7, [r1, #8] + strh r4, [r1, #0xa] + ldrb r0, [r6] + strh r0, [r1, #0xc] + ldr r1, _0805C1D8 + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805C1DC + str r1, [r0] +_0805C1C8: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805C1D0: .4byte 0x08058DC9 +_0805C1D4: .4byte 0x03005B60 +_0805C1D8: .4byte 0x03005AC0 +_0805C1DC: .4byte 0x08057069 + thumb_func_end PlayerHandleExpUpdate + + thumb_func_start PlayerHandleStatusIconUpdate +PlayerHandleStatusIconUpdate: @ 0x0805C1E0 + push {r4, lr} + ldr r4, _0805C23C + ldrb r0, [r4] + bl mplay_80342A4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805C234 + ldr r0, _0805C240 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + ldr r2, _0805C244 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _0805C248 + adds r1, r1, r2 + movs r2, #9 + bl UpdateHealthboxAttribute + ldrb r2, [r4] + ldr r0, _0805C24C + ldr r0, [r0] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r1, _0805C250 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805C254 + str r1, [r0] +_0805C234: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0805C23C: .4byte 0x02023D08 +_0805C240: .4byte 0x03005AD0 +_0805C244: .4byte 0x02023D12 +_0805C248: .4byte 0x02024190 +_0805C24C: .4byte 0x02024174 +_0805C250: .4byte 0x03005AC0 +_0805C254: .4byte 0x0805997D + thumb_func_end PlayerHandleStatusIconUpdate + + thumb_func_start PlayerHandleStatusAnimation +PlayerHandleStatusAnimation: @ 0x0805C258 + push {r4, r5, lr} + ldr r5, _0805C2B0 + ldrb r0, [r5] + bl mplay_80342A4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805C2A8 + ldr r4, _0805C2B4 + ldrb r3, [r5] + lsls r3, r3, #9 + adds r0, r4, #1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, #2 + adds r1, r3, r1 + ldrb r1, [r1] + adds r2, r4, #3 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, r2, #8 + orrs r1, r2 + adds r2, r4, #4 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, r2, #0x10 + orrs r1, r2 + adds r4, #5 + adds r3, r3, r4 + ldrb r2, [r3] + lsls r2, r2, #0x18 + orrs r1, r2 + bl InitAndLaunchChosenStatusAnimation + ldr r1, _0805C2B8 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805C2BC + str r1, [r0] +_0805C2A8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0805C2B0: .4byte 0x02023D08 +_0805C2B4: .4byte 0x02022D08 +_0805C2B8: .4byte 0x03005AC0 +_0805C2BC: .4byte 0x0805997D + thumb_func_end PlayerHandleStatusAnimation + + thumb_func_start PlayerHandleStatusXor +PlayerHandleStatusXor: @ 0x0805C2C0 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #4 + ldr r0, _0805C31C + mov r8, r0 + ldr r4, _0805C320 + ldrb r0, [r4] + lsls r0, r0, #1 + add r0, r8 + ldrh r0, [r0] + movs r6, #0x64 + muls r0, r6, r0 + ldr r5, _0805C324 + adds r0, r0, r5 + movs r1, #0x37 + bl GetMonData + ldr r2, _0805C328 + ldrb r1, [r4] + lsls r1, r1, #9 + adds r2, #1 + adds r1, r1, r2 + ldrb r1, [r1] + eors r0, r1 + mov r1, sp + strb r0, [r1] + ldrb r0, [r4] + lsls r0, r0, #1 + add r0, r8 + ldrh r0, [r0] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #0x37 + mov r2, sp + bl SetMonData + bl PlayerBufferExecCompleted + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0805C31C: .4byte 0x02023D12 +_0805C320: .4byte 0x02023D08 +_0805C324: .4byte 0x02024190 +_0805C328: .4byte 0x02022D08 + thumb_func_end PlayerHandleStatusXor + + thumb_func_start sub_0805C32C +sub_0805C32C: @ 0x0805C32C + push {lr} + bl PlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0805C32C + + thumb_func_start PlayerHandleDMA3Transfer +PlayerHandleDMA3Transfer: @ 0x0805C338 + push {r4, r5, lr} + ldr r3, _0805C39C + ldr r0, _0805C3A0 + ldrb r2, [r0] + lsls r2, r2, #9 + adds r0, r3, #1 + adds r0, r2, r0 + ldrb r5, [r0] + adds r0, r3, #2 + adds r0, r2, r0 + ldrb r0, [r0] + lsls r0, r0, #8 + orrs r5, r0 + adds r0, r3, #3 + adds r0, r2, r0 + ldrb r0, [r0] + lsls r0, r0, #0x10 + orrs r5, r0 + adds r0, r3, #4 + adds r0, r2, r0 + ldrb r4, [r0] + lsls r4, r4, #0x18 + adds r0, r3, #5 + adds r0, r2, r0 + ldrb r1, [r0] + adds r0, r3, #6 + adds r0, r2, r0 + ldrb r0, [r0] + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + adds r3, #7 + adds r2, r2, r3 + orrs r5, r4 + lsrs r4, r1, #0x10 + movs r0, #0x80 + lsls r0, r0, #5 + cmp r4, r0 + bhi _0805C3A8 + ldr r0, _0805C3A4 + str r2, [r0] + str r5, [r0, #4] + lsrs r1, r1, #0x11 + movs r2, #0x80 + lsls r2, r2, #0x18 + orrs r1, r2 + str r1, [r0, #8] + ldr r0, [r0, #8] + b _0805C3D4 + .align 2, 0 +_0805C39C: .4byte 0x02022D08 +_0805C3A0: .4byte 0x02023D08 +_0805C3A4: .4byte 0x040000D4 +_0805C3A8: + ldr r3, _0805C3E0 + str r2, [r3] + str r5, [r3, #4] + ldr r0, _0805C3E4 + str r0, [r3, #8] + ldr r0, [r3, #8] + movs r0, #0x80 + lsls r0, r0, #5 + adds r2, r2, r0 + adds r5, r5, r0 + ldr r1, _0805C3E8 + adds r4, r4, r1 + cmp r4, r0 + bhi _0805C3A8 + str r2, [r3] + str r5, [r3, #4] + lsrs r0, r4, #1 + movs r1, #0x80 + lsls r1, r1, #0x18 + orrs r0, r1 + str r0, [r3, #8] + ldr r0, [r3, #8] +_0805C3D4: + bl PlayerBufferExecCompleted + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0805C3E0: .4byte 0x040000D4 +_0805C3E4: .4byte 0x80000800 +_0805C3E8: .4byte 0xFFFFF000 + thumb_func_end PlayerHandleDMA3Transfer + + thumb_func_start PlayerHandlePlayBGM +PlayerHandlePlayBGM: @ 0x0805C3EC + push {lr} + ldr r2, _0805C414 + ldr r0, _0805C418 + ldrb r1, [r0] + lsls r1, r1, #9 + adds r0, r2, #1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, #2 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + bl PlayBGM + bl PlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_0805C414: .4byte 0x02022D08 +_0805C418: .4byte 0x02023D08 + thumb_func_end PlayerHandlePlayBGM + + thumb_func_start PlayerHandleCmd32 +PlayerHandleCmd32: @ 0x0805C41C + push {lr} + bl PlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerHandleCmd32 + + thumb_func_start sub_0805C428 +sub_0805C428: @ 0x0805C428 + push {lr} + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl BtlController_EmitTwoReturnValues + bl PlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_0805C428 + + thumb_func_start sub_0805C43C +sub_0805C43C: @ 0x0805C43C + push {lr} + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl BtlController_EmitChosenMonReturnValue + bl PlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_0805C43C + + thumb_func_start sub_0805C450 +sub_0805C450: @ 0x0805C450 + push {lr} + movs r0, #1 + movs r1, #0 + bl BtlController_EmitOneReturnValue + bl PlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0805C450 + + thumb_func_start PlayerHandleOneReturnValue +PlayerHandleOneReturnValue: @ 0x0805C464 + push {lr} + movs r0, #1 + movs r1, #0 + bl BtlController_EmitOneReturnValue_Duplicate + bl PlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerHandleOneReturnValue + + thumb_func_start PlayerHandleCmd37 +PlayerHandleCmd37: @ 0x0805C478 + push {lr} + ldr r2, _0805C490 + ldrb r1, [r2] + movs r0, #0x80 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + bl PlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_0805C490: .4byte 0x020229C0 + thumb_func_end PlayerHandleCmd37 + + thumb_func_start PlayerHandleCmd38 +PlayerHandleCmd38: @ 0x0805C494 + push {lr} + ldr r3, _0805C4C0 + ldr r1, _0805C4C4 + ldr r0, _0805C4C8 + ldrb r0, [r0] + lsls r0, r0, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + ldrb r2, [r3] + movs r0, #0x80 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl PlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_0805C4C0: .4byte 0x020229C0 +_0805C4C4: .4byte 0x02022D08 +_0805C4C8: .4byte 0x02023D08 + thumb_func_end PlayerHandleCmd38 + + thumb_func_start PlayerHandleCmd39 +PlayerHandleCmd39: @ 0x0805C4CC + push {lr} + ldr r2, _0805C4E0 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + bl PlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_0805C4E0: .4byte 0x020229C0 + thumb_func_end PlayerHandleCmd39 + + thumb_func_start PlayerHandleCmd40 +PlayerHandleCmd40: @ 0x0805C4E4 + push {lr} + ldr r3, _0805C508 + ldr r1, [r3] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1f + movs r0, #1 + eors r1, r0 + lsls r1, r1, #7 + ldrb r2, [r3] + movs r0, #0x7f + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl PlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_0805C508: .4byte 0x020229C0 + thumb_func_end PlayerHandleCmd40 + + thumb_func_start sub_0805C50C +sub_0805C50C: @ 0x0805C50C + push {r4, lr} + ldr r3, _0805C534 + ldr r2, _0805C538 + ldr r4, _0805C53C + ldrb r0, [r4] + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + bge _0805C540 + bl PlayerBufferExecCompleted + b _0805C56A + .align 2, 0 +_0805C534: .4byte 0x020205AC +_0805C538: .4byte 0x02023E88 +_0805C53C: .4byte 0x02023D08 +_0805C540: + ldr r1, _0805C570 + movs r0, #1 + strb r0, [r1] + ldrb r0, [r4] + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r1, #0 + strh r1, [r0, #0x30] + ldrb r0, [r4] + bl DoHitAnimHealthboxEffect + ldr r1, _0805C574 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805C578 + str r1, [r0] +_0805C56A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0805C570: .4byte 0x0202415D +_0805C574: .4byte 0x03005AC0 +_0805C578: .4byte 0x08059569 + thumb_func_end sub_0805C50C + + thumb_func_start sub_0805C57C +sub_0805C57C: @ 0x0805C57C + push {lr} + bl PlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0805C57C + + thumb_func_start PlayerHandlePlaySE +PlayerHandlePlaySE: @ 0x0805C588 + push {r4, lr} + ldr r4, _0805C5C4 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + movs r3, #0x3f + cmp r0, #0 + bne _0805C59C + movs r3, #0xc0 +_0805C59C: + ldr r2, _0805C5C8 + ldrb r1, [r4] + lsls r1, r1, #9 + adds r0, r2, #1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, #2 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + lsls r1, r3, #0x18 + asrs r1, r1, #0x18 + bl PlaySE12WithPanning + bl PlayerBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0805C5C4: .4byte 0x02023D08 +_0805C5C8: .4byte 0x02022D08 + thumb_func_end PlayerHandlePlaySE + + thumb_func_start PlayerHandlePlayFanfareOrBGM +PlayerHandlePlayFanfareOrBGM: @ 0x0805C5CC + push {r4, r5, lr} + ldr r4, _0805C600 + ldr r5, _0805C604 + ldrb r0, [r5] + lsls r3, r0, #9 + adds r0, r4, #3 + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, #0 + beq _0805C608 + bl BattleStopLowHpSound + ldrb r1, [r5] + lsls r1, r1, #9 + adds r0, r4, #1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, r4, #2 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + bl PlayBGM + b _0805C61C + .align 2, 0 +_0805C600: .4byte 0x02022D08 +_0805C604: .4byte 0x02023D08 +_0805C608: + adds r0, r4, #1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, #2 + adds r1, r3, r1 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + bl PlayFanfare +_0805C61C: + bl PlayerBufferExecCompleted + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerHandlePlayFanfareOrBGM + + thumb_func_start PlayerHandleFaintingCry +PlayerHandleFaintingCry: @ 0x0805C628 + push {lr} + ldr r1, _0805C65C + ldr r0, _0805C660 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0805C664 + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x19 + rsbs r1, r1, #0 + movs r2, #5 + bl PlayCry3 + bl PlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_0805C65C: .4byte 0x02023D12 +_0805C660: .4byte 0x02023D08 +_0805C664: .4byte 0x02024190 + thumb_func_end PlayerHandleFaintingCry + + thumb_func_start sub_0805C668 +sub_0805C668: @ 0x0805C668 + push {lr} + ldr r1, _0805C690 + ldr r0, _0805C694 + ldrb r0, [r0] + lsls r0, r0, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + bl HandleIntroSlide + ldr r2, _0805C698 + ldrh r0, [r2] + movs r1, #1 + orrs r0, r1 + strh r0, [r2] + bl PlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_0805C690: .4byte 0x02022D08 +_0805C694: .4byte 0x02023D08 +_0805C698: .4byte 0x020240A0 + thumb_func_end sub_0805C668 + + thumb_func_start PlayerHandleIntroTrainerBallThrow +PlayerHandleIntroTrainerBallThrow: @ 0x0805C69C + push {r4, r5, r6, r7, lr} + ldr r6, _0805C7DC + ldr r7, _0805C7E0 + ldrb r0, [r7] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r5, _0805C7E4 + adds r0, r0, r5 + bl SetSpritePrimaryCoordsFromSecondaryCoords + ldrb r0, [r7] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0x32 + strh r1, [r0, #0x2e] + ldrb r0, [r7] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _0805C7E8 + strh r1, [r0, #0x32] + ldrb r0, [r7] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrh r1, [r0, #0x22] + strh r1, [r0, #0x36] + ldrb r0, [r7] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r5, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _0805C7EC + str r1, [r0] + ldrb r2, [r7] + adds r0, r2, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r2, [r0, #0x38] + ldrb r0, [r7] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _0805C7F0 + bl StoreSpriteCallbackInData6 + ldrb r0, [r7] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #1 + bl StartSpriteAnim + ldr r0, _0805C7F4 + bl AllocSpritePalette + adds r4, r0, #0 + lsls r4, r4, #0x18 + ldr r1, _0805C7F8 + ldr r0, _0805C7FC + ldr r0, [r0] + ldrb r0, [r0, #8] + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r0, [r0] + lsrs r4, r4, #0x14 + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r4, r2 + movs r2, #0x20 + bl LoadCompressedPalette + ldrb r0, [r7] + adds r0, r0, r6 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r4 + strb r0, [r1, #5] + ldr r0, _0805C800 + movs r1, #5 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _0805C804 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r4 + ldrb r0, [r7] + strh r0, [r1, #8] + ldr r3, _0805C808 + ldr r0, [r3] + ldrb r2, [r7] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0805C7BE + ldr r0, _0805C80C + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r4 + ldr r1, _0805C810 + str r1, [r0] +_0805C7BE: + ldr r0, [r3] + ldr r2, [r0, #8] + ldrb r0, [r2, #9] + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #9] + ldr r1, _0805C814 + ldrb r0, [r7] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805C818 + str r1, [r0] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805C7DC: .4byte 0x02023E88 +_0805C7E0: .4byte 0x02023D08 +_0805C7E4: .4byte 0x020205AC +_0805C7E8: .4byte 0x0000FFD8 +_0805C7EC: .4byte 0x080A67B5 +_0805C7F0: .4byte 0x0805C81D +_0805C7F4: .4byte 0x0000D6F8 +_0805C7F8: .4byte 0x082D961C +_0805C7FC: .4byte 0x03005AF0 +_0805C800: .4byte 0x0805C885 +_0805C804: .4byte 0x03005B60 +_0805C808: .4byte 0x02024174 +_0805C80C: .4byte 0x02024158 +_0805C810: .4byte 0x0807352D +_0805C814: .4byte 0x03005AC0 +_0805C818: .4byte 0x08057069 + thumb_func_end PlayerHandleIntroTrainerBallThrow + + thumb_func_start sub_0805C81C +sub_0805C81C: @ 0x0805C81C + push {r4, r5, lr} + adds r5, r0, #0 + ldrh r4, [r5, #0x38] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl FreeSpriteOamMatrix + ldrb r0, [r5, #5] + lsrs r0, r0, #4 + bl GetSpritePaletteTagByPaletteNum + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl FreeSpritePaletteByTag + adds r0, r5, #0 + bl DestroySprite + ldr r1, _0805C874 + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0805C878 + adds r0, r0, r1 + adds r1, r4, #0 + bl BattleLoadPlayerMonSpriteGfx + ldr r0, _0805C87C + adds r4, r4, r0 + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0805C880 + adds r0, r0, r1 + movs r1, #0 + bl StartSpriteAnim + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0805C874: .4byte 0x02023D12 +_0805C878: .4byte 0x02024190 +_0805C87C: .4byte 0x02023E88 +_0805C880: .4byte 0x020205AC + thumb_func_end sub_0805C81C + + thumb_func_start task05_08033660 +task05_08033660: @ 0x0805C884 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r1, _0805C8AC + lsls r0, r0, #2 + add r0, r8 + lsls r0, r0, #3 + adds r1, r0, r1 + ldrh r2, [r1, #0xa] + movs r3, #0xa + ldrsh r0, [r1, r3] + cmp r0, #0x1e + bgt _0805C8B0 + adds r0, r2, #1 + strh r0, [r1, #0xa] + b _0805C96C + .align 2, 0 +_0805C8AC: .4byte 0x03005B60 +_0805C8B0: + ldr r7, _0805C8F0 + ldrb r0, [r7] + mov sb, r0 + ldrh r0, [r1, #8] + strb r0, [r7] + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0805C8D0 + ldr r0, _0805C8F4 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0805C900 +_0805C8D0: + ldr r0, _0805C8F8 + ldrb r1, [r7] + lsls r2, r1, #9 + adds r0, #1 + adds r2, r2, r0 + ldr r0, _0805C8FC + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + strb r0, [r2] + ldrb r0, [r7] + movs r1, #0 + bl sub_0805AE74 + b _0805C954 + .align 2, 0 +_0805C8F0: .4byte 0x02023D08 +_0805C8F4: .4byte 0x02022C90 +_0805C8F8: .4byte 0x02022D08 +_0805C8FC: .4byte 0x02023D12 +_0805C900: + ldr r4, _0805C978 + ldrb r0, [r7] + lsls r1, r0, #9 + adds r4, #1 + adds r1, r1, r4 + ldr r5, _0805C97C + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + movs r1, #0 + bl sub_0805AE74 + ldrb r0, [r7] + movs r6, #2 + eors r0, r6 + strb r0, [r7] + ldrb r0, [r7] + lsls r1, r0, #9 + adds r1, r1, r4 + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r0, [r0] + strb r0, [r1] + ldrb r1, [r7] + lsls r0, r1, #1 + adds r0, r0, r5 + ldrh r2, [r0] + movs r0, #0x64 + muls r0, r2, r0 + ldr r2, _0805C980 + adds r0, r0, r2 + bl BattleLoadPlayerMonSpriteGfx + ldrb r0, [r7] + movs r1, #0 + bl sub_0805AE74 + ldrb r0, [r7] + eors r0, r6 + strb r0, [r7] +_0805C954: + ldr r1, _0805C984 + ldr r2, _0805C988 + ldrb r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805C98C + str r1, [r0] + mov r3, sb + strb r3, [r2] + mov r0, r8 + bl DestroyTask +_0805C96C: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805C978: .4byte 0x02022D08 +_0805C97C: .4byte 0x02023D12 +_0805C980: .4byte 0x02024190 +_0805C984: .4byte 0x03005AC0 +_0805C988: .4byte 0x02023D08 +_0805C98C: .4byte 0x08058751 + thumb_func_end task05_08033660 + + thumb_func_start PlayerHandleDrawPartyStatusSummary +PlayerHandleDrawPartyStatusSummary: @ 0x0805C990 + push {r4, r5, r6, lr} + ldr r1, _0805C9B8 + ldr r0, _0805C9BC + ldrb r2, [r0] + lsls r0, r2, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _0805C9C0 + adds r0, r2, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805C9C0 + bl PlayerBufferExecCompleted + b _0805CA34 + .align 2, 0 +_0805C9B8: .4byte 0x02022D08 +_0805C9BC: .4byte 0x02023D08 +_0805C9C0: + ldr r6, _0805CA3C + ldr r0, [r6] + ldr r5, _0805CA40 + ldrb r1, [r5] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r2, #1 + orrs r1, r2 + strb r1, [r0] + ldrb r0, [r5] + lsls r3, r0, #9 + ldr r4, _0805CA44 + adds r1, r3, r4 + subs r2, r4, #3 + adds r2, r3, r2 + ldrb r2, [r2] + subs r4, #2 + adds r3, r3, r4 + ldrb r3, [r3] + bl CreatePartyStatusSummarySprites + ldr r2, _0805CA48 + ldrb r1, [r5] + adds r1, r1, r2 + movs r3, #0 + strb r0, [r1] + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strb r3, [r0, #5] + ldrb r2, [r5] + lsls r0, r2, #9 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0 + beq _0805CA28 + ldr r0, [r6] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + movs r1, #0x5d + strb r1, [r0, #5] +_0805CA28: + ldr r0, _0805CA4C + ldrb r1, [r5] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, _0805CA50 + str r0, [r1] +_0805CA34: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0805CA3C: .4byte 0x02024174 +_0805CA40: .4byte 0x02023D08 +_0805CA44: .4byte 0x02022D0C +_0805CA48: .4byte 0x02024158 +_0805CA4C: .4byte 0x03005AC0 +_0805CA50: .4byte 0x0805CA55 + thumb_func_end PlayerHandleDrawPartyStatusSummary + + thumb_func_start sub_0805CA54 +sub_0805CA54: @ 0x0805CA54 + push {r4, lr} + ldr r4, _0805CA94 + ldr r0, [r4] + ldr r3, _0805CA98 + ldrb r1, [r3] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #5] + adds r2, r1, #1 + strb r2, [r0, #5] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0x5c + bls _0805CA8C + ldr r0, [r4] + ldrb r1, [r3] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0 + strb r1, [r0, #5] + bl PlayerBufferExecCompleted +_0805CA8C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0805CA94: .4byte 0x02024174 +_0805CA98: .4byte 0x02023D08 + thumb_func_end sub_0805CA54 + + thumb_func_start PlayerHandleHidePartyStatusSummary +PlayerHandleHidePartyStatusSummary: @ 0x0805CA9C + push {lr} + ldr r0, _0805CAD8 + ldr r1, [r0] + ldr r0, _0805CADC + ldrb r3, [r0] + ldr r1, [r1, #4] + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0805CACE + ldr r2, _0805CAE0 + ldr r0, _0805CAE4 + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldr r1, _0805CAE8 + str r1, [r0] +_0805CACE: + bl PlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_0805CAD8: .4byte 0x02024174 +_0805CADC: .4byte 0x02023D08 +_0805CAE0: .4byte 0x03005B60 +_0805CAE4: .4byte 0x02024158 +_0805CAE8: .4byte 0x0807352D + thumb_func_end PlayerHandleHidePartyStatusSummary + + thumb_func_start PlayerHandleEndBounceEffect +PlayerHandleEndBounceEffect: @ 0x0805CAEC + push {r4, lr} + ldr r4, _0805CB0C + ldrb r0, [r4] + movs r1, #1 + bl EndBounceEffect + ldrb r0, [r4] + movs r1, #0 + bl EndBounceEffect + bl PlayerBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0805CB0C: .4byte 0x02023D08 + thumb_func_end PlayerHandleEndBounceEffect + + thumb_func_start PlayerHandleSpriteInvisibility +PlayerHandleSpriteInvisibility: @ 0x0805CB10 + push {r4, lr} + ldr r4, _0805CB60 + ldrb r0, [r4] + bl IsBattlerSpritePresent + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0805CB56 + ldr r3, _0805CB64 + ldr r0, _0805CB68 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r0, _0805CB6C + lsls r1, r1, #9 + adds r0, #1 + adds r1, r1, r0 + adds r2, #0x3e + movs r0, #1 + ldrb r1, [r1] + ands r1, r0 + lsls r1, r1, #2 + ldrb r3, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4] + bl CopyBattleSpriteInvisibility +_0805CB56: + bl PlayerBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0805CB60: .4byte 0x02023D08 +_0805CB64: .4byte 0x020205AC +_0805CB68: .4byte 0x02023E88 +_0805CB6C: .4byte 0x02022D08 + thumb_func_end PlayerHandleSpriteInvisibility + + thumb_func_start PlayerHandleBattleAnimation +PlayerHandleBattleAnimation: @ 0x0805CB70 + push {r4, r5, r6, lr} + sub sp, #4 + ldr r5, _0805CBB8 + ldrb r0, [r5] + bl mplay_80342A4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805CBD2 + ldr r4, _0805CBBC + ldrb r2, [r5] + lsls r1, r2, #9 + adds r0, r4, #1 + adds r0, r1, r0 + ldrb r6, [r0] + adds r0, r4, #2 + adds r0, r1, r0 + ldrb r3, [r0] + adds r4, #3 + adds r1, r1, r4 + ldrb r0, [r1] + lsls r0, r0, #8 + orrs r3, r0 + str r3, [sp] + adds r0, r2, #0 + adds r1, r2, #0 + adds r3, r6, #0 + bl TryHandleLaunchBattleTableAnimation + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0805CBC0 + bl PlayerBufferExecCompleted + b _0805CBCC + .align 2, 0 +_0805CBB8: .4byte 0x02023D08 +_0805CBBC: .4byte 0x02022D08 +_0805CBC0: + ldr r0, _0805CBDC + ldrb r1, [r5] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, _0805CBE0 + str r0, [r1] +_0805CBCC: + adds r0, r6, #0 + bl BattleTv_SetDataBasedOnAnimation +_0805CBD2: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0805CBDC: .4byte 0x03005AC0 +_0805CBE0: .4byte 0x080599AD + thumb_func_end PlayerHandleBattleAnimation + + thumb_func_start PlayerHandleLinkStandbyMsg +PlayerHandleLinkStandbyMsg: @ 0x0805CBE4 + push {r4, r5, lr} + ldr r5, _0805CC0C + ldrb r0, [r5] + lsls r0, r0, #9 + ldr r4, _0805CC10 + adds r0, r0, r4 + bl sub_08185008 + ldrb r0, [r5] + lsls r0, r0, #9 + subs r4, #1 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #1 + beq _0805CC1E + cmp r0, #1 + bgt _0805CC14 + cmp r0, #0 + beq _0805CC1A + b _0805CC3C + .align 2, 0 +_0805CC0C: .4byte 0x02023D08 +_0805CC10: .4byte 0x02022D0A +_0805CC14: + cmp r0, #2 + beq _0805CC38 + b _0805CC3C +_0805CC1A: + bl PrintLinkStandbyMsg +_0805CC1E: + ldr r4, _0805CC34 + ldrb r0, [r4] + movs r1, #1 + bl EndBounceEffect + ldrb r0, [r4] + movs r1, #0 + bl EndBounceEffect + b _0805CC3C + .align 2, 0 +_0805CC34: .4byte 0x02023D08 +_0805CC38: + bl PrintLinkStandbyMsg +_0805CC3C: + bl PlayerBufferExecCompleted + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerHandleLinkStandbyMsg + + thumb_func_start PlayerHandleResetActionMoveSelection +PlayerHandleResetActionMoveSelection: @ 0x0805CC48 + push {r4, lr} + ldr r1, _0805CC68 + ldr r4, _0805CC6C + ldrb r3, [r4] + lsls r0, r3, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r2, [r0] + cmp r2, #1 + beq _0805CC90 + cmp r2, #1 + bgt _0805CC70 + cmp r2, #0 + beq _0805CC76 + b _0805CCA0 + .align 2, 0 +_0805CC68: .4byte 0x02022D08 +_0805CC6C: .4byte 0x02023D08 +_0805CC70: + cmp r2, #2 + beq _0805CC98 + b _0805CCA0 +_0805CC76: + ldr r0, _0805CC88 + adds r0, r3, r0 + strb r2, [r0] + ldr r1, _0805CC8C + ldrb r0, [r4] + adds r0, r0, r1 + strb r2, [r0] + b _0805CCA0 + .align 2, 0 +_0805CC88: .4byte 0x02024150 +_0805CC8C: .4byte 0x02024154 +_0805CC90: + ldr r0, _0805CC94 + b _0805CC9A + .align 2, 0 +_0805CC94: .4byte 0x02024150 +_0805CC98: + ldr r0, _0805CCAC +_0805CC9A: + adds r0, r3, r0 + movs r1, #0 + strb r1, [r0] +_0805CCA0: + bl PlayerBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0805CCAC: .4byte 0x02024154 + thumb_func_end PlayerHandleResetActionMoveSelection + + thumb_func_start PlayerHandleCmd55 +PlayerHandleCmd55: @ 0x0805CCB0 + push {r4, r5, lr} + ldr r5, _0805CD14 + ldrb r0, [r5] + lsls r0, r0, #9 + ldr r4, _0805CD18 + adds r0, r0, r4 + bl sub_08185008 + ldr r2, _0805CD1C + ldrb r0, [r5] + lsls r0, r0, #9 + subs r1, r4, #3 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r2] + ldr r0, _0805CD20 + ldr r3, [r0] + ldrb r0, [r5] + lsls r0, r0, #9 + subs r4, #2 + adds r0, r0, r4 + ldrb r0, [r0] + ldr r1, _0805CD24 + adds r3, r3, r1 + movs r1, #1 + ands r1, r0 + lsls r1, r1, #3 + ldrb r2, [r3] + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + movs r0, #5 + bl FadeOutMapMusic + movs r0, #3 + bl BeginFastPaletteFade + bl PlayerBufferExecCompleted + ldr r1, _0805CD28 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0805CD2C + str r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0805CD14: .4byte 0x02023D08 +_0805CD18: .4byte 0x02022D0C +_0805CD1C: .4byte 0x02023FDE +_0805CD20: .4byte 0x03005AF0 +_0805CD24: .4byte 0x00000CA9 +_0805CD28: .4byte 0x03005AC0 +_0805CD2C: .4byte 0x080583C1 + thumb_func_end PlayerHandleCmd55 + + thumb_func_start PlayerCmdEnd +PlayerCmdEnd: @ 0x0805CD30 + bx lr + .align 2, 0 + thumb_func_end PlayerCmdEnd + diff --git a/asm/battle_controller_player_partner.s b/asm/battle_controller_player_partner.s new file mode 100644 index 0000000..c45b8a5 --- /dev/null +++ b/asm/battle_controller_player_partner.s @@ -0,0 +1,6916 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start PlayerPartnerCmdEnd +PlayerPartnerCmdEnd: @ 0x081BAA8C + bx lr + .align 2, 0 + thumb_func_end PlayerPartnerCmdEnd + + thumb_func_start SetControllerToPlayerPartner +SetControllerToPlayerPartner: @ 0x081BAA90 + ldr r1, _081BAAA0 + ldr r0, _081BAAA4 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081BAAA8 + str r1, [r0] + bx lr + .align 2, 0 +_081BAAA0: .4byte 0x03005AC0 +_081BAAA4: .4byte 0x02023D08 +_081BAAA8: .4byte 0x081BAAAD + thumb_func_end SetControllerToPlayerPartner + + thumb_func_start PlayerPartnerBufferRunCommand +PlayerPartnerBufferRunCommand: @ 0x081BAAAC + push {lr} + ldr r2, _081BAAE0 + ldr r1, _081BAAE4 + ldr r0, _081BAAE8 + ldrb r3, [r0] + lsls r0, r3, #2 + adds r0, r0, r1 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _081BAAF8 + ldr r0, _081BAAEC + lsls r1, r3, #9 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0x38 + bhi _081BAAF4 + ldr r0, _081BAAF0 + ldrb r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl _call_via_r0 + b _081BAAF8 + .align 2, 0 +_081BAAE0: .4byte 0x02023D0C +_081BAAE4: .4byte 0x082FACB4 +_081BAAE8: .4byte 0x02023D08 +_081BAAEC: .4byte 0x02022D08 +_081BAAF0: .4byte 0x085E732C +_081BAAF4: + bl PlayerPartnerBufferExecCompleted +_081BAAF8: + pop {r0} + bx r0 + thumb_func_end PlayerPartnerBufferRunCommand + + thumb_func_start CompleteOnBattlerSpriteCallbackDummy +CompleteOnBattlerSpriteCallbackDummy: @ 0x081BAAFC + push {lr} + ldr r2, _081BAB24 + ldr r1, _081BAB28 + ldr r0, _081BAB2C + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _081BAB30 + cmp r1, r0 + bne _081BAB20 + bl PlayerPartnerBufferExecCompleted +_081BAB20: + pop {r0} + bx r0 + .align 2, 0 +_081BAB24: .4byte 0x020205AC +_081BAB28: .4byte 0x02023E88 +_081BAB2C: .4byte 0x02023D08 +_081BAB30: .4byte 0x08007141 + thumb_func_end CompleteOnBattlerSpriteCallbackDummy + + thumb_func_start sub_081BAB34 +sub_081BAB34: @ 0x081BAB34 + push {r4, r5, r6, lr} + ldr r6, _081BAB8C + ldr r5, _081BAB90 + ldr r4, _081BAB94 + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r6, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, [r0] + ldr r0, _081BAB98 + cmp r1, r0 + bne _081BAB84 + movs r0, #0 + bl sub_0805DBFC + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + bl FreeSpriteOamMatrix + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + bl DestroySprite + bl PlayerPartnerBufferExecCompleted +_081BAB84: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081BAB8C: .4byte 0x020205AC +_081BAB90: .4byte 0x02023E88 +_081BAB94: .4byte 0x02023D08 +_081BAB98: .4byte 0x08007141 + thumb_func_end sub_081BAB34 + + thumb_func_start sub_081BAB9C +sub_081BAB9C: @ 0x081BAB9C + push {r4, lr} + ldr r4, _081BABDC + ldr r1, [r4] + ldr r3, _081BABE0 + ldrb r0, [r3] + ldr r2, [r1, #4] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r0, [r1, #9] + subs r0, #1 + strb r0, [r1, #9] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _081BABD4 + ldr r0, [r4] + ldrb r1, [r3] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0 + strb r1, [r0, #9] + bl PlayerPartnerBufferExecCompleted +_081BABD4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081BABDC: .4byte 0x02024174 +_081BABE0: .4byte 0x02023D08 + thumb_func_end sub_081BAB9C + + thumb_func_start sub_081BABE4 +sub_081BABE4: @ 0x081BABE4 + push {r4, r5, r6, lr} + movs r6, #0 + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081BAC08 + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081BAC3C + ldr r0, _081BAC28 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _081BAC3C +_081BAC08: + ldr r2, _081BAC2C + ldr r1, _081BAC30 + ldr r0, _081BAC34 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _081BAC38 + cmp r1, r0 + bne _081BAC74 + b _081BAC72 + .align 2, 0 +_081BAC28: .4byte 0x02022C90 +_081BAC2C: .4byte 0x020205AC +_081BAC30: .4byte 0x03005AD0 +_081BAC34: .4byte 0x02023D08 +_081BAC38: .4byte 0x08007141 +_081BAC3C: + ldr r2, _081BACAC + ldr r5, _081BACB0 + ldr r0, _081BACB4 + ldrb r3, [r0] + adds r0, r3, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, r2, #0 + adds r4, #0x1c + adds r0, r0, r4 + ldr r2, [r0] + ldr r0, _081BACB8 + cmp r2, r0 + bne _081BAC74 + movs r0, #2 + eors r3, r0 + adds r0, r3, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r0, [r0] + cmp r0, r2 + bne _081BAC74 +_081BAC72: + movs r6, #1 +_081BAC74: + bl IsCryPlayingOrClearCrySongs + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081BAC80 + movs r6, #0 +_081BAC80: + cmp r6, #0 + beq _081BACA6 + ldr r0, _081BACBC + ldr r0, [r0] + ldr r3, _081BACB4 + ldrb r1, [r3] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #3 + strb r1, [r0, #9] + ldr r1, _081BACC0 + ldrb r0, [r3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081BACC4 + str r1, [r0] +_081BACA6: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081BACAC: .4byte 0x020205AC +_081BACB0: .4byte 0x03005AD0 +_081BACB4: .4byte 0x02023D08 +_081BACB8: .4byte 0x08007141 +_081BACBC: .4byte 0x02024174 +_081BACC0: .4byte 0x03005AC0 +_081BACC4: .4byte 0x081BAB9D + thumb_func_end sub_081BABE4 + + thumb_func_start sub_081BACC8 +sub_081BACC8: @ 0x081BACC8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _081BAE40 + mov ip, r0 + ldr r0, [r0] + ldr r7, _081BAE44 + ldrb r2, [r7] + ldr r3, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r4, r0, r3 + ldrb r1, [r4] + movs r5, #8 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _081BACF4 + b _081BAE32 +_081BACF4: + movs r1, #2 + mov r8, r1 + adds r1, r2, #0 + mov r0, r8 + eors r1, r0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0] + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + beq _081BAD16 + b _081BAE32 +_081BAD16: + ldr r1, _081BAE48 + mov sl, r1 + ldr r0, _081BAE4C + mov sb, r0 + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + mov r5, sl + adds r5, #0x1c + adds r0, r0, r5 + ldr r3, [r0] + ldr r0, _081BAE50 + cmp r3, r0 + bne _081BAE32 + ldr r0, _081BAE54 + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r0, [r0] + cmp r0, r3 + bne _081BAE32 + ldrb r0, [r4, #9] + adds r0, #1 + strb r0, [r4, #9] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081BAE32 + mov r1, ip + ldr r0, [r1] + ldrb r1, [r7] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strb r6, [r0, #9] + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081BADD0 + ldr r0, _081BAE58 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _081BADD0 + ldrb r0, [r7] + mov r1, r8 + eors r0, r1 + add r0, sb + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sl + bl DestroySprite + ldr r4, _081BAE5C + ldrb r0, [r7] + mov r1, r8 + eors r1, r0 + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, _081BAE60 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _081BAE64 + adds r1, r1, r2 + movs r2, #0 + bl UpdateHealthboxAttribute + ldrb r0, [r7] + mov r1, r8 + eors r0, r1 + bl sub_08076320 + ldrb r0, [r7] + mov r1, r8 + eors r0, r1 + adds r0, r0, r4 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible +_081BADD0: + ldr r1, _081BAE4C + ldr r4, _081BAE44 + ldrb r0, [r4] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _081BAE48 + adds r0, r0, r1 + bl DestroySprite + ldr r5, _081BAE5C + ldrb r1, [r4] + adds r0, r1, r5 + ldrb r0, [r0] + ldr r2, _081BAE60 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _081BAE64 + adds r1, r1, r2 + movs r2, #0 + bl UpdateHealthboxAttribute + ldrb r0, [r4] + bl sub_08076320 + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible + ldr r0, _081BAE40 + ldr r0, [r0] + ldr r2, [r0, #8] + ldrb r1, [r2, #9] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #9] + ldr r1, _081BAE68 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081BAE6C + str r1, [r0] +_081BAE32: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081BAE40: .4byte 0x02024174 +_081BAE44: .4byte 0x02023D08 +_081BAE48: .4byte 0x020205AC +_081BAE4C: .4byte 0x03005ADC +_081BAE50: .4byte 0x08007141 +_081BAE54: .4byte 0x02023E88 +_081BAE58: .4byte 0x02022C90 +_081BAE5C: .4byte 0x03005AD0 +_081BAE60: .4byte 0x02023D12 +_081BAE64: .4byte 0x02024190 +_081BAE68: .4byte 0x03005AC0 +_081BAE6C: .4byte 0x081BABE5 + thumb_func_end sub_081BACC8 + + thumb_func_start sub_081BAE70 +sub_081BAE70: @ 0x081BAE70 + push {lr} + ldr r2, _081BAEA4 + ldr r1, _081BAEA8 + ldr r0, _081BAEAC + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r2 + adds r0, r1, #0 + adds r0, #0x3f + ldrb r0, [r0] + lsls r0, r0, #0x1b + cmp r0, #0 + bge _081BAE9E + movs r2, #0x24 + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _081BAE9E + bl PlayerPartnerBufferExecCompleted +_081BAE9E: + pop {r0} + bx r0 + .align 2, 0 +_081BAEA4: .4byte 0x020205AC +_081BAEA8: .4byte 0x02023E88 +_081BAEAC: .4byte 0x02023D08 + thumb_func_end sub_081BAE70 + + thumb_func_start CompleteOnHealthbarDone +CompleteOnHealthbarDone: @ 0x081BAEB0 + push {r4, r5, r6, lr} + ldr r5, _081BAEF0 + ldrb r0, [r5] + ldr r6, _081BAEF4 + adds r1, r0, r6 + ldrb r1, [r1] + movs r2, #0 + movs r3, #0 + bl MoveBattleBar + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible + lsls r4, r4, #0x10 + asrs r1, r4, #0x10 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _081BAEF8 + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r0, [r0] + movs r2, #0 + bl sub_080726F4 + b _081BAF12 + .align 2, 0 +_081BAEF0: .4byte 0x02023D08 +_081BAEF4: .4byte 0x03005AD0 +_081BAEF8: + ldr r2, _081BAF18 + ldrb r1, [r5] + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r2, [r0] + movs r0, #0x64 + muls r0, r2, r0 + ldr r2, _081BAF1C + adds r0, r0, r2 + bl HandleLowHpMusicChange + bl PlayerPartnerBufferExecCompleted +_081BAF12: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081BAF18: .4byte 0x02023D12 +_081BAF1C: .4byte 0x02024190 + thumb_func_end CompleteOnHealthbarDone + + thumb_func_start CompleteOnInactiveTextPrinter +CompleteOnInactiveTextPrinter: @ 0x081BAF20 + push {lr} + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + bne _081BAF32 + bl PlayerPartnerBufferExecCompleted +_081BAF32: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CompleteOnInactiveTextPrinter + + thumb_func_start Task_GiveExpToMon +Task_GiveExpToMon: @ 0x081BAF38 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldr r1, _081BB038 + lsls r0, r0, #2 + add r0, sb + lsls r0, r0, #3 + adds r0, r0, r1 + mov r8, r0 + ldrb r0, [r0, #8] + mov sl, r0 + mov r1, r8 + ldrb r7, [r1, #0xc] + str r7, [sp, #8] + ldrh r2, [r1, #0xa] + str r2, [sp, #0xc] + bl IsDoubleBattle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081BAF7E + ldr r1, _081BB03C + lsls r0, r7, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp sl, r0 + bne _081BAF7E + b _081BB094 +_081BAF7E: + movs r0, #0x64 + mov r1, sl + muls r1, r0, r1 + ldr r0, _081BB040 + adds r6, r1, r0 + adds r0, r6, #0 + movs r1, #0xb + bl GetMonData + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + adds r0, r6, #0 + movs r1, #0x38 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r6, #0 + movs r1, #0x19 + bl GetMonData + str r0, [sp, #4] + ldr r3, _081BB044 + adds r4, #1 + lsls r4, r4, #2 + ldr r2, _081BB048 + lsls r1, r5, #3 + subs r1, r1, r5 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r2, [r1, #0x13] + movs r1, #0xca + lsls r1, r1, #1 + muls r1, r2, r1 + adds r4, r4, r1 + adds r4, r4, r3 + ldr r2, [r4] + str r2, [sp] + ldr r3, [sp, #0xc] + lsls r1, r3, #0x10 + asrs r1, r1, #0x10 + adds r0, r0, r1 + cmp r0, r2 + blo _081BB06C + adds r0, r6, #0 + movs r1, #0x19 + mov r2, sp + bl SetMonData + adds r0, r6, #0 + bl CalculateMonStats + ldr r2, [sp] + add r0, sp, #4 + ldrh r0, [r0] + subs r2, r2, r0 + ldr r0, [sp, #0xc] + subs r2, r0, r2 + ldr r4, _081BB04C + ldrb r5, [r4] + strb r7, [r4] + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + movs r0, #1 + movs r1, #0xb + bl BtlController_EmitTwoReturnValues + strb r5, [r4] + bl IsDoubleBattle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081BB054 + ldr r2, _081BB03C + lsls r0, r7, #1 + adds r0, r0, r2 + mov r1, sl + ldrh r0, [r0] + cmp r1, r0 + beq _081BB032 + movs r0, #2 + eors r7, r0 + lsls r0, r7, #1 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r1, r0 + bne _081BB054 +_081BB032: + ldr r0, _081BB050 + b _081BB096 + .align 2, 0 +_081BB038: .4byte 0x03005B60 +_081BB03C: .4byte 0x02023D12 +_081BB040: .4byte 0x02024190 +_081BB044: .4byte 0x082F00B4 +_081BB048: .4byte 0x082F0D54 +_081BB04C: .4byte 0x02023D08 +_081BB050: .4byte 0x081BB2C5 +_081BB054: + ldr r0, _081BB064 + mov r2, sb + lsls r1, r2, #2 + add r1, sb + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081BB068 + b _081BB098 + .align 2, 0 +_081BB064: .4byte 0x03005B60 +_081BB068: .4byte 0x081BB3DD +_081BB06C: + str r0, [sp, #4] + add r2, sp, #4 + adds r0, r6, #0 + movs r1, #0x19 + bl SetMonData + ldr r1, _081BB08C + ldr r3, [sp, #8] + lsls r0, r3, #2 + adds r0, r0, r1 + ldr r1, _081BB090 + str r1, [r0] + mov r0, sb + bl DestroyTask + b _081BB09A + .align 2, 0 +_081BB08C: .4byte 0x03005AC0 +_081BB090: .4byte 0x081BAF21 +_081BB094: + ldr r0, _081BB0AC +_081BB096: + mov r1, r8 +_081BB098: + str r0, [r1] +_081BB09A: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081BB0AC: .4byte 0x081BB0B1 + thumb_func_end Task_GiveExpToMon + + thumb_func_start Task_PrepareToGiveExpWithExpBar +Task_PrepareToGiveExpWithExpBar: @ 0x081BB0B0 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081BB168 + lsls r2, r0, #2 + mov r8, r2 + add r8, r0 + mov r0, r8 + lsls r0, r0, #3 + mov r8, r0 + add r8, r1 + mov r2, r8 + ldrb r1, [r2, #8] + movs r0, #0xa + ldrsh r2, [r2, r0] + mov sb, r2 + mov r2, r8 + ldrb r2, [r2, #0xc] + mov sl, r2 + movs r0, #0x64 + adds r6, r1, #0 + muls r6, r0, r6 + ldr r0, _081BB16C + adds r6, r6, r0 + adds r0, r6, #0 + movs r1, #0x38 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r6, #0 + movs r1, #0xb + bl GetMonData + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + adds r0, r6, #0 + movs r1, #0x19 + bl GetMonData + adds r3, r0, #0 + ldr r6, _081BB170 + lsls r1, r4, #2 + ldr r2, _081BB174 + lsls r0, r5, #3 + subs r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r2, [r0, #0x13] + movs r0, #0xca + lsls r0, r0, #1 + muls r0, r2, r0 + adds r1, r1, r0 + adds r1, r1, r6 + ldr r1, [r1] + subs r3, r3, r1 + adds r4, #1 + lsls r4, r4, #2 + adds r4, r4, r0 + adds r4, r4, r6 + ldr r2, [r4] + subs r2, r2, r1 + ldr r0, _081BB178 + add r0, sl + ldrb r1, [r0] + mov r0, sb + rsbs r0, r0, #0 + str r0, [sp] + mov r0, sl + bl SetBattleBarStruct + movs r0, #0x21 + bl PlaySE + ldr r0, _081BB17C + mov r1, r8 + str r0, [r1] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081BB168: .4byte 0x03005B60 +_081BB16C: .4byte 0x02024190 +_081BB170: .4byte 0x082F00B4 +_081BB174: .4byte 0x082F0D54 +_081BB178: .4byte 0x03005AD0 +_081BB17C: .4byte 0x081BB181 + thumb_func_end Task_PrepareToGiveExpWithExpBar + + thumb_func_start sub_081BB180 +sub_081BB180: @ 0x081BB180 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r1, _081BB1AC + lsls r0, r0, #2 + add r0, r8 + lsls r0, r0, #3 + adds r6, r0, r1 + ldrh r1, [r6, #0x1c] + movs r2, #0x1c + ldrsh r0, [r6, r2] + cmp r0, #0xc + bgt _081BB1B0 + adds r0, r1, #1 + strh r0, [r6, #0x1c] + b _081BB2AC + .align 2, 0 +_081BB1AC: .4byte 0x03005B60 +_081BB1B0: + ldrb r0, [r6, #8] + mov sb, r0 + ldrh r2, [r6, #0xa] + mov sl, r2 + ldrb r7, [r6, #0xc] + ldr r5, _081BB278 + adds r5, r7, r5 + ldrb r1, [r5] + adds r0, r7, #0 + movs r2, #1 + movs r3, #0 + bl MoveBattleBar + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldrb r0, [r5] + bl SetHealthboxSpriteVisible + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + movs r0, #1 + rsbs r0, r0, #0 + cmp r4, r0 + bne _081BB2AC + movs r0, #0x21 + bl m4aSongNumStop + movs r0, #0x64 + mov r1, sb + muls r1, r0, r1 + ldr r0, _081BB27C + adds r5, r1, r0 + adds r0, r5, #0 + movs r1, #0x38 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + movs r1, #0x19 + bl GetMonData + str r0, [sp, #4] + adds r0, r5, #0 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r3, _081BB280 + adds r4, #1 + lsls r4, r4, #2 + ldr r2, _081BB284 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r1, [r1, #0x13] + movs r0, #0xca + lsls r0, r0, #1 + muls r0, r1, r0 + adds r4, r4, r0 + adds r4, r4, r3 + ldr r1, [r4] + str r1, [sp] + mov r2, sl + lsls r0, r2, #0x10 + asrs r4, r0, #0x10 + ldr r0, [sp, #4] + adds r0, r0, r4 + cmp r0, r1 + blt _081BB290 + adds r0, r5, #0 + movs r1, #0x19 + mov r2, sp + bl SetMonData + adds r0, r5, #0 + bl CalculateMonStats + ldr r2, [sp] + add r0, sp, #4 + ldrh r0, [r0] + subs r2, r2, r0 + subs r2, r4, r2 + ldr r4, _081BB288 + ldrb r5, [r4] + strb r7, [r4] + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + movs r0, #1 + movs r1, #0xb + bl BtlController_EmitTwoReturnValues + strb r5, [r4] + ldr r0, _081BB28C + str r0, [r6] + b _081BB2AC + .align 2, 0 +_081BB278: .4byte 0x03005AD0 +_081BB27C: .4byte 0x02024190 +_081BB280: .4byte 0x082F00B4 +_081BB284: .4byte 0x082F0D54 +_081BB288: .4byte 0x02023D08 +_081BB28C: .4byte 0x081BB2C5 +_081BB290: + str r0, [sp, #4] + add r2, sp, #4 + adds r0, r5, #0 + movs r1, #0x19 + bl SetMonData + ldr r1, _081BB2BC + lsls r0, r7, #2 + adds r0, r0, r1 + ldr r1, _081BB2C0 + str r1, [r0] + mov r0, r8 + bl DestroyTask +_081BB2AC: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081BB2BC: .4byte 0x03005AC0 +_081BB2C0: .4byte 0x081BAF21 + thumb_func_end sub_081BB180 + + thumb_func_start sub_081BB2C4 +sub_081BB2C4: @ 0x081BB2C4 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _081BB318 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r4, [r0, #0xc] + ldrb r6, [r0, #8] + bl IsDoubleBattle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081BB2F8 + ldr r1, _081BB31C + movs r0, #2 + adds r2, r4, #0 + eors r2, r0 + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r6, r0 + bne _081BB2F8 + adds r4, r2, #0 +_081BB2F8: + adds r0, r4, #0 + adds r1, r4, #0 + adds r2, r4, #0 + movs r3, #0 + bl InitAndLaunchSpecialAnimation + ldr r0, _081BB318 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081BB320 + str r0, [r1] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081BB318: .4byte 0x03005B60 +_081BB31C: .4byte 0x02023D12 +_081BB320: .4byte 0x081BB325 + thumb_func_end sub_081BB2C4 + + thumb_func_start sub_081BB324 +sub_081BB324: @ 0x081BB324 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _081BB390 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r2, r0, r1 + ldrb r5, [r2, #0xc] + ldr r0, _081BB394 + ldr r0, [r0] + ldr r1, [r0, #4] + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _081BB3C6 + ldrb r4, [r2, #8] + movs r0, #0x64 + adds r1, r4, #0 + muls r1, r0, r1 + ldr r0, _081BB398 + adds r7, r1, r0 + adds r0, r7, #0 + movs r1, #0x38 + bl GetMonData + bl IsDoubleBattle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081BB3A4 + ldr r1, _081BB39C + movs r0, #2 + adds r2, r5, #0 + eors r2, r0 + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r4, r0 + bne _081BB3A4 + ldr r0, _081BB3A0 + adds r0, r2, r0 + ldrb r0, [r0] + adds r1, r7, #0 + movs r2, #0 + bl UpdateHealthboxAttribute + b _081BB3B8 + .align 2, 0 +_081BB390: .4byte 0x03005B60 +_081BB394: .4byte 0x02024174 +_081BB398: .4byte 0x02024190 +_081BB39C: .4byte 0x02023D12 +_081BB3A0: .4byte 0x03005AD0 +_081BB3A4: + ldr r0, _081BB3CC + adds r0, r5, r0 + ldrb r0, [r0] + movs r1, #0x64 + muls r1, r4, r1 + ldr r2, _081BB3D0 + adds r1, r1, r2 + movs r2, #0 + bl UpdateHealthboxAttribute +_081BB3B8: + ldr r0, _081BB3D4 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081BB3D8 + str r0, [r1] +_081BB3C6: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081BB3CC: .4byte 0x03005AD0 +_081BB3D0: .4byte 0x02024190 +_081BB3D4: .4byte 0x03005B60 +_081BB3D8: .4byte 0x081BB3DD + thumb_func_end sub_081BB324 + + thumb_func_start DestroyExpTaskAndCompleteOnInactiveTextPrinter +DestroyExpTaskAndCompleteOnInactiveTextPrinter: @ 0x081BB3DC + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _081BB418 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + adds r4, r4, r0 + ldrb r1, [r4, #8] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081BB41C + adds r0, r0, r1 + movs r1, #0x38 + bl GetMonData + ldrb r0, [r4, #0xc] + ldr r1, _081BB420 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081BB424 + str r1, [r0] + adds r0, r5, #0 + bl DestroyTask + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081BB418: .4byte 0x03005B60 +_081BB41C: .4byte 0x02024190 +_081BB420: .4byte 0x03005AC0 +_081BB424: .4byte 0x081BAF21 + thumb_func_end DestroyExpTaskAndCompleteOnInactiveTextPrinter + + thumb_func_start sub_081BB428 +sub_081BB428: @ 0x081BB428 + push {r4, r5, r6, lr} + ldr r6, _081BB4AC + ldr r5, _081BB4B0 + ldr r4, _081BB4B4 + ldrb r2, [r4] + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r3, #0x22 + ldrsh r1, [r0, r3] + movs r3, #0x26 + ldrsh r0, [r0, r3] + adds r1, r1, r0 + cmp r1, #0xa0 + ble _081BB4A4 + ldr r1, _081BB4B8 + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081BB4BC + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl sub_0805DB50 + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r0, [r0, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + bl DestroySprite + ldr r1, _081BB4C0 + ldrb r0, [r4] + adds r0, r0, r1 + ldrb r0, [r0] + bl SetHealthboxSpriteInvisible + bl PlayerPartnerBufferExecCompleted +_081BB4A4: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081BB4AC: .4byte 0x020205AC +_081BB4B0: .4byte 0x02023E88 +_081BB4B4: .4byte 0x02023D08 +_081BB4B8: .4byte 0x02023D12 +_081BB4BC: .4byte 0x02024190 +_081BB4C0: .4byte 0x03005AD0 + thumb_func_end sub_081BB428 + + thumb_func_start sub_081BB4C4 +sub_081BB4C4: @ 0x081BB4C4 + push {r4, r5, r6, lr} + ldr r0, _081BB520 + ldr r0, [r0] + ldr r6, _081BB524 + ldrb r2, [r6] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _081BB518 + ldr r5, _081BB528 + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _081BB52C + adds r0, r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + ldr r1, _081BB530 + ldrb r0, [r6] + adds r0, r0, r1 + ldrb r0, [r0] + bl SetHealthboxSpriteInvisible + bl PlayerPartnerBufferExecCompleted +_081BB518: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081BB520: .4byte 0x02024174 +_081BB524: .4byte 0x02023D08 +_081BB528: .4byte 0x02023E88 +_081BB52C: .4byte 0x020205AC +_081BB530: .4byte 0x03005AD0 + thumb_func_end sub_081BB4C4 + + thumb_func_start CompleteOnInactiveTextPrinter2 +CompleteOnInactiveTextPrinter2: @ 0x081BB534 + push {lr} + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + bne _081BB546 + bl PlayerPartnerBufferExecCompleted +_081BB546: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CompleteOnInactiveTextPrinter2 + + thumb_func_start DoHitAnimBlinkSpriteEffect +DoHitAnimBlinkSpriteEffect: @ 0x081BB54C + push {r4, lr} + ldr r1, _081BB588 + ldr r0, _081BB58C + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + ldr r2, _081BB590 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, r0, r2 + movs r1, #0x30 + ldrsh r0, [r4, r1] + cmp r0, #0x20 + bne _081BB598 + movs r3, #0 + movs r0, #0 + strh r0, [r4, #0x30] + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + subs r0, #5 + ands r0, r1 + strb r0, [r2] + ldr r0, _081BB594 + strb r3, [r0] + bl PlayerPartnerBufferExecCompleted + b _081BB5C2 + .align 2, 0 +_081BB588: .4byte 0x02023E88 +_081BB58C: .4byte 0x02023D08 +_081BB590: .4byte 0x020205AC +_081BB594: .4byte 0x0202415D +_081BB598: + ldrh r0, [r4, #0x30] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _081BB5BC + adds r3, r4, #0 + adds r3, #0x3e + ldrb r2, [r3] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_081BB5BC: + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] +_081BB5C2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end DoHitAnimBlinkSpriteEffect + + thumb_func_start sub_081BB5C8 +sub_081BB5C8: @ 0x081BB5C8 + push {r4, lr} + ldr r2, _081BB620 + ldr r0, _081BB624 + ldr r4, _081BB628 + ldrb r3, [r4] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _081BB62C + cmp r1, r0 + bne _081BB61A + adds r0, r3, #0 + bl CopyBattleSpriteInvisibility + ldr r0, _081BB630 + ldr r0, [r0] + ldrb r2, [r4] + ldr r1, [r0] + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _081BB60E + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #6 + bl InitAndLaunchSpecialAnimation +_081BB60E: + ldr r0, _081BB634 + ldrb r1, [r4] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, _081BB638 + str r0, [r1] +_081BB61A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081BB620: .4byte 0x020205AC +_081BB624: .4byte 0x03005AD0 +_081BB628: .4byte 0x02023D08 +_081BB62C: .4byte 0x08007141 +_081BB630: .4byte 0x02024174 +_081BB634: .4byte 0x03005AC0 +_081BB638: .4byte 0x081BB63D + thumb_func_end sub_081BB5C8 + + thumb_func_start sub_081BB63C +sub_081BB63C: @ 0x081BB63C + push {lr} + ldr r0, _081BB67C + ldr r1, [r0] + ldr r0, _081BB680 + ldrb r3, [r0] + ldr r1, [r1, #4] + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _081BB678 + ldr r2, _081BB684 + ldr r0, _081BB688 + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _081BB68C + cmp r1, r0 + bne _081BB678 + bl PlayerPartnerBufferExecCompleted +_081BB678: + pop {r0} + bx r0 + .align 2, 0 +_081BB67C: .4byte 0x02024174 +_081BB680: .4byte 0x02023D08 +_081BB684: .4byte 0x020205AC +_081BB688: .4byte 0x02023E88 +_081BB68C: .4byte 0x08007141 + thumb_func_end sub_081BB63C + + thumb_func_start sub_081BB690 +sub_081BB690: @ 0x081BB690 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r3, _081BB758 + ldr r0, [r3] + ldr r7, _081BB75C + ldrb r1, [r7] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, r0, r2 + ldrb r1, [r2, #1] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081BB74C + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + ldr r0, [r3] + ldrb r2, [r7] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #1] + ldr r4, _081BB760 + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl FreeSpritePaletteByTag + ldr r0, _081BB764 + movs r1, #0xa + bl CreateTask + ldr r0, _081BB768 + mov r8, r0 + ldrb r1, [r7] + lsls r0, r1, #1 + add r0, r8 + ldrh r0, [r0] + movs r6, #0x64 + muls r0, r6, r0 + ldr r5, _081BB76C + adds r0, r0, r5 + bl HandleLowHpMusicChange + ldr r1, _081BB770 + ldrb r0, [r7] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _081BB774 + adds r0, r0, r1 + movs r1, #0 + bl StartSpriteAnim + ldr r4, _081BB778 + ldrb r1, [r7] + adds r0, r1, r4 + ldrb r0, [r0] + lsls r1, r1, #1 + add r1, r8 + ldrh r1, [r1] + muls r1, r6, r1 + adds r1, r1, r5 + movs r2, #0 + bl UpdateHealthboxAttribute + ldrb r0, [r7] + bl sub_08076320 + ldrb r0, [r7] + adds r0, r0, r4 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible + ldr r1, _081BB77C + ldrb r0, [r7] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081BB780 + str r1, [r0] +_081BB74C: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081BB758: .4byte 0x02024174 +_081BB75C: .4byte 0x02023D08 +_081BB760: .4byte 0x000027F9 +_081BB764: .4byte 0x08058D11 +_081BB768: .4byte 0x02023D12 +_081BB76C: .4byte 0x02024190 +_081BB770: .4byte 0x02023E88 +_081BB774: .4byte 0x020205AC +_081BB778: .4byte 0x03005AD0 +_081BB77C: .4byte 0x03005AC0 +_081BB780: .4byte 0x081BB5C9 + thumb_func_end sub_081BB690 + + thumb_func_start sub_081BB784 +sub_081BB784: @ 0x081BB784 + push {r4, r5, r6, lr} + ldr r6, _081BB804 + ldr r0, [r6] + ldr r4, _081BB808 + ldrb r2, [r4] + ldr r1, [r0, #4] + lsls r3, r2, #1 + adds r0, r3, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x88 + ands r0, r1 + cmp r0, #0 + bne _081BB7B6 + ldr r0, _081BB80C + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _081BB810 + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_08172CD4 +_081BB7B6: + ldr r5, _081BB814 + ldr r0, _081BB818 + ldrb r2, [r4] + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r3, r0, #2 + adds r0, r5, #0 + adds r0, #0x1c + adds r0, r3, r0 + ldr r1, [r0] + ldr r0, _081BB81C + cmp r1, r0 + bne _081BB7FC + ldr r0, [r6] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + bne _081BB7FC + adds r0, r3, r5 + bl DestroySprite + ldr r1, _081BB820 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081BB824 + str r1, [r0] +_081BB7FC: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081BB804: .4byte 0x02024174 +_081BB808: .4byte 0x02023D08 +_081BB80C: .4byte 0x02023D12 +_081BB810: .4byte 0x02024190 +_081BB814: .4byte 0x020205AC +_081BB818: .4byte 0x03005ADC +_081BB81C: .4byte 0x08007141 +_081BB820: .4byte 0x03005AC0 +_081BB824: .4byte 0x081BB691 + thumb_func_end sub_081BB784 + + thumb_func_start PlayerPartnerBufferExecCompleted +PlayerPartnerBufferExecCompleted: @ 0x081BB828 + push {r4, lr} + sub sp, #4 + ldr r1, _081BB868 + ldr r4, _081BB86C + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081BB870 + str r1, [r0] + ldr r0, _081BB874 + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _081BB87C + bl GetMultiplayerId + mov r1, sp + strb r0, [r1] + movs r0, #2 + movs r1, #4 + mov r2, sp + bl PrepareBufferDataTransferLink + ldr r1, _081BB878 + ldrb r0, [r4] + lsls r0, r0, #9 + adds r0, r0, r1 + movs r1, #0x38 + strb r1, [r0] + b _081BB88E + .align 2, 0 +_081BB868: .4byte 0x03005AC0 +_081BB86C: .4byte 0x02023D08 +_081BB870: .4byte 0x081BAAAD +_081BB874: .4byte 0x02022C90 +_081BB878: .4byte 0x02022D08 +_081BB87C: + ldr r2, _081BB898 + ldr r1, _081BB89C + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + ldr r0, [r2] + bics r0, r1 + str r0, [r2] +_081BB88E: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081BB898: .4byte 0x02023D0C +_081BB89C: .4byte 0x082FACB4 + thumb_func_end PlayerPartnerBufferExecCompleted + + thumb_func_start CompleteOnFinishedStatusAnimation +CompleteOnFinishedStatusAnimation: @ 0x081BB8A0 + push {lr} + ldr r0, _081BB8C8 + ldr r2, [r0] + ldr r0, _081BB8CC + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _081BB8C2 + bl PlayerPartnerBufferExecCompleted +_081BB8C2: + pop {r0} + bx r0 + .align 2, 0 +_081BB8C8: .4byte 0x02024174 +_081BB8CC: .4byte 0x02023D08 + thumb_func_end CompleteOnFinishedStatusAnimation + + thumb_func_start CompleteOnFinishedBattleAnimation +CompleteOnFinishedBattleAnimation: @ 0x081BB8D0 + push {lr} + ldr r0, _081BB8F8 + ldr r2, [r0] + ldr r0, _081BB8FC + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _081BB8F2 + bl PlayerPartnerBufferExecCompleted +_081BB8F2: + pop {r0} + bx r0 + .align 2, 0 +_081BB8F8: .4byte 0x02024174 +_081BB8FC: .4byte 0x02023D08 + thumb_func_end CompleteOnFinishedBattleAnimation + + thumb_func_start PlayerPartnerHandleGetMonData +PlayerPartnerHandleGetMonData: @ 0x081BB900 + push {r4, r5, r6, lr} + sub sp, #0x100 + movs r6, #0 + ldr r1, _081BB92C + ldr r0, _081BB930 + ldrb r2, [r0] + lsls r0, r2, #9 + adds r1, #2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, #0 + bne _081BB938 + ldr r0, _081BB934 + lsls r1, r2, #1 + adds r1, r1, r0 + ldrb r0, [r1] + mov r1, sp + bl CopyPlayerPartnerMonData + adds r6, r0, #0 + b _081BB95A + .align 2, 0 +_081BB92C: .4byte 0x02022D08 +_081BB930: .4byte 0x02023D08 +_081BB934: .4byte 0x02023D12 +_081BB938: + ldrb r4, [r1] + movs r5, #0 +_081BB93C: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _081BB952 + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + mov r2, sp + adds r1, r2, r6 + bl CopyPlayerPartnerMonData + adds r6, r6, r0 +_081BB952: + lsrs r4, r4, #1 + adds r5, #1 + cmp r5, #5 + ble _081BB93C +_081BB95A: + lsls r1, r6, #0x10 + lsrs r1, r1, #0x10 + movs r0, #1 + mov r2, sp + bl BtlController_EmitDataTransfer + bl PlayerPartnerBufferExecCompleted + add sp, #0x100 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerPartnerHandleGetMonData + + thumb_func_start CopyPlayerPartnerMonData +CopyPlayerPartnerMonData: @ 0x081BB974 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x90 + adds r7, r1, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r6, #0 + ldr r2, _081BB9A8 + ldr r3, _081BB9AC + ldrb r0, [r3] + lsls r0, r0, #9 + adds r1, r2, #1 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0x3b + bls _081BB99E + bl _081BC10A +_081BB99E: + lsls r0, r0, #2 + ldr r1, _081BB9B0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081BB9A8: .4byte 0x02022D08 +_081BB9AC: .4byte 0x02023D08 +_081BB9B0: .4byte 0x081BB9B4 +_081BB9B4: @ jump table + .4byte _081BBAA4 @ case 0 + .4byte _081BBCC8 @ case 1 + .4byte _081BBCD8 @ case 2 + .4byte _081BBCE8 @ case 3 + .4byte _081BBD50 @ case 4 + .4byte _081BBD50 @ case 5 + .4byte _081BBD50 @ case 6 + .4byte _081BBD50 @ case 7 + .4byte _081BBD6C @ case 8 + .4byte _081BBDA8 @ case 9 + .4byte _081BBDA8 @ case 10 + .4byte _081BBDA8 @ case 11 + .4byte _081BBDA8 @ case 12 + .4byte _081BC10A @ case 13 + .4byte _081BC10A @ case 14 + .4byte _081BC10A @ case 15 + .4byte _081BC10A @ case 16 + .4byte _081BBDC4 @ case 17 + .4byte _081BBDD4 @ case 18 + .4byte _081BBE04 @ case 19 + .4byte _081BBE14 @ case 20 + .4byte _081BBE24 @ case 21 + .4byte _081BBE34 @ case 22 + .4byte _081BBE44 @ case 23 + .4byte _081BBE54 @ case 24 + .4byte _081BBE64 @ case 25 + .4byte _081BBE74 @ case 26 + .4byte _081BBE84 @ case 27 + .4byte _081BBE94 @ case 28 + .4byte _081BBEA4 @ case 29 + .4byte _081BBEB4 @ case 30 + .4byte _081BBEC4 @ case 31 + .4byte _081BBF14 @ case 32 + .4byte _081BBF24 @ case 33 + .4byte _081BBF34 @ case 34 + .4byte _081BBF44 @ case 35 + .4byte _081BBF54 @ case 36 + .4byte _081BBF64 @ case 37 + .4byte _081BBF74 @ case 38 + .4byte _081BBF84 @ case 39 + .4byte _081BBF94 @ case 40 + .4byte _081BBFC8 @ case 41 + .4byte _081BBFD8 @ case 42 + .4byte _081BBFE8 @ case 43 + .4byte _081BBFF8 @ case 44 + .4byte _081BC008 @ case 45 + .4byte _081BC018 @ case 46 + .4byte _081BC028 @ case 47 + .4byte _081BC038 @ case 48 + .4byte _081BC058 @ case 49 + .4byte _081BC068 @ case 50 + .4byte _081BC078 @ case 51 + .4byte _081BC088 @ case 52 + .4byte _081BC098 @ case 53 + .4byte _081BC0A8 @ case 54 + .4byte _081BC0B8 @ case 55 + .4byte _081BC0C8 @ case 56 + .4byte _081BC0D8 @ case 57 + .4byte _081BC0E8 @ case 58 + .4byte _081BC0F8 @ case 59 +_081BBAA4: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _081BBCB8 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + mov r1, sp + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0xc + bl GetMonData + mov r1, sp + strh r0, [r1, #0x2e] + movs r6, #0 + add r0, sp, #0x24 + mov sb, r0 + movs r1, #0x3b + add r1, sp + mov sl, r1 + mov r2, sp + adds r2, #0x2b + str r2, [sp, #0x80] + mov r0, sp + adds r0, #0x2a + str r0, [sp, #0x7c] + mov r1, sp + adds r1, #0x68 + str r1, [sp, #0x8c] + adds r2, #5 + str r2, [sp, #0x84] + adds r0, #0x12 + str r0, [sp, #0x88] + mov r8, r4 + add r4, sp, #0xc +_081BBAF0: + adds r1, r6, #0 + adds r1, #0xd + mov r0, r8 + bl GetMonData + strh r0, [r4] + adds r1, r6, #0 + adds r1, #0x11 + mov r0, r8 + bl GetMonData + mov r2, sb + adds r1, r2, r6 + strb r0, [r1] + adds r4, #2 + adds r6, #1 + cmp r6, #3 + ble _081BBAF0 + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _081BBCB8 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x15 + bl GetMonData + mov r1, sl + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x20 + bl GetMonData + ldr r2, [sp, #0x80] + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0x19 + bl GetMonData + str r0, [sp, #0x44] + adds r0, r4, #0 + movs r1, #0x27 + bl GetMonData + mov r3, sp + movs r5, #0x1f + ands r0, r5 + ldrb r2, [r3, #0x14] + movs r1, #0x20 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x14] + adds r0, r4, #0 + movs r1, #0x28 + bl GetMonData + mov r3, sp + movs r6, #0x1f + ands r0, r6 + lsls r0, r0, #5 + ldrh r2, [r3, #0x14] + ldr r1, _081BBCBC + ands r1, r2 + orrs r1, r0 + strh r1, [r3, #0x14] + adds r0, r4, #0 + movs r1, #0x29 + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, r0, #2 + ldrb r2, [r3, #0x15] + movs r1, #0x7d + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x15] + adds r0, r4, #0 + movs r1, #0x2a + bl GetMonData + movs r1, #0x1f + ands r1, r0 + lsls r1, r1, #0xf + ldr r0, [sp, #0x14] + ldr r2, _081BBCC0 + ands r0, r2 + orrs r0, r1 + str r0, [sp, #0x14] + adds r0, r4, #0 + movs r1, #0x2b + bl GetMonData + mov r3, sp + ands r0, r6 + lsls r0, r0, #4 + ldrh r2, [r3, #0x16] + ldr r1, _081BBCC4 + ands r1, r2 + orrs r1, r0 + strh r1, [r3, #0x16] + adds r0, r4, #0 + movs r1, #0x2c + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, r0, #1 + ldrb r2, [r3, #0x17] + movs r1, #0x3f + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x17] + adds r0, r4, #0 + movs r1, #0 + bl GetMonData + str r0, [sp, #0x48] + adds r0, r4, #0 + movs r1, #0x37 + bl GetMonData + str r0, [sp, #0x4c] + adds r0, r4, #0 + movs r1, #0x38 + bl GetMonData + ldr r1, [sp, #0x7c] + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + mov r1, sp + strh r0, [r1, #0x28] + adds r0, r4, #0 + movs r1, #0x3a + bl GetMonData + mov r1, sp + strh r0, [r1, #0x2c] + adds r0, r4, #0 + movs r1, #0x3b + bl GetMonData + mov r1, sp + strh r0, [r1, #2] + adds r0, r4, #0 + movs r1, #0x3c + bl GetMonData + mov r1, sp + strh r0, [r1, #4] + adds r0, r4, #0 + movs r1, #0x3d + bl GetMonData + mov r1, sp + strh r0, [r1, #6] + adds r0, r4, #0 + movs r1, #0x3e + bl GetMonData + mov r1, sp + strh r0, [r1, #8] + adds r0, r4, #0 + movs r1, #0x3f + bl GetMonData + mov r1, sp + strh r0, [r1, #0xa] + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + mov r3, sp + movs r1, #1 + ands r0, r1 + lsls r0, r0, #6 + ldrb r2, [r3, #0x17] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x17] + adds r0, r4, #0 + movs r1, #0x2e + bl GetMonData + mov r3, sp + lsls r0, r0, #7 + ldrb r2, [r3, #0x17] + movs r1, #0x7f + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x17] + adds r0, r4, #0 + movs r1, #1 + bl GetMonData + str r0, [sp, #0x54] + adds r0, r4, #0 + movs r1, #2 + ldr r2, [sp, #0x8c] + bl GetMonData + ldr r0, [sp, #0x84] + ldr r1, [sp, #0x8c] + bl StringCopy10 + adds r0, r4, #0 + movs r1, #7 + ldr r2, [sp, #0x88] + bl GetMonData + mov r2, sp + movs r6, #0 +_081BBCA8: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, #1 + cmp r6, #0x57 + bls _081BBCA8 + b _081BC10A + .align 2, 0 +_081BBCB8: .4byte 0x02024190 +_081BBCBC: .4byte 0xFFFFFC1F +_081BBCC0: .4byte 0xFFF07FFF +_081BBCC4: .4byte 0xFFFFFE0F +_081BBCC8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BBCD4 + adds r0, r0, r1 + movs r1, #0xb + b _081BC042 + .align 2, 0 +_081BBCD4: .4byte 0x02024190 +_081BBCD8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BBCE4 + adds r0, r0, r1 + movs r1, #0xc + b _081BC042 + .align 2, 0 +_081BBCE4: .4byte 0x02024190 +_081BBCE8: + movs r6, #0 + add r2, sp, #0x58 + mov sb, r2 + add r0, sp, #0x60 + mov sl, r0 + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _081BBD4C + adds r4, r1, r0 + mov r8, sb +_081BBCFE: + adds r1, r6, #0 + adds r1, #0xd + adds r0, r4, #0 + bl GetMonData + mov r1, r8 + strh r0, [r1] + adds r1, r6, #0 + adds r1, #0x11 + adds r0, r4, #0 + bl GetMonData + mov r2, sl + adds r1, r2, r6 + strb r0, [r1] + movs r0, #2 + add r8, r0 + adds r6, #1 + cmp r6, #3 + ble _081BBCFE + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BBD4C + adds r0, r0, r1 + movs r1, #0x15 + bl GetMonData + mov r1, sb + strb r0, [r1, #0xc] + mov r2, sb + movs r6, #0 +_081BBD3C: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, #1 + cmp r6, #0xf + bls _081BBD3C + b _081BC10A + .align 2, 0 +_081BBD4C: .4byte 0x02024190 +_081BBD50: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BBD68 + adds r0, r0, r1 + ldrb r1, [r3] + lsls r1, r1, #9 + adds r2, #1 + adds r1, r1, r2 + ldrb r1, [r1] + adds r1, #9 + b _081BC042 + .align 2, 0 +_081BBD68: .4byte 0x02024190 +_081BBD6C: + movs r6, #0 + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r2, _081BBDA4 + mov r8, r2 +_081BBD78: + adds r1, r6, #0 + adds r1, #0x11 + mov r2, r8 + adds r0, r4, r2 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, #1 + cmp r6, #3 + ble _081BBD78 + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BBDA4 + adds r0, r0, r1 + movs r1, #0x15 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, #1 + b _081BC10A + .align 2, 0 +_081BBDA4: .4byte 0x02024190 +_081BBDA8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BBDC0 + adds r0, r0, r1 + ldrb r1, [r3] + lsls r1, r1, #9 + adds r2, #1 + adds r1, r1, r2 + ldrb r1, [r1] + adds r1, #8 + b _081BC102 + .align 2, 0 +_081BBDC0: .4byte 0x02024190 +_081BBDC4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BBDD0 + adds r0, r0, r1 + movs r1, #1 + b _081BBDDE + .align 2, 0 +_081BBDD0: .4byte 0x02024190 +_081BBDD4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BBE00 + adds r0, r0, r1 + movs r1, #0x19 +_081BBDDE: + bl GetMonData + adds r1, r0, #0 + strb r1, [r7] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + lsrs r0, r0, #8 + strb r0, [r7, #1] + movs r0, #0xff + lsls r0, r0, #0x10 + ands r0, r1 + lsrs r0, r0, #0x10 + strb r0, [r7, #2] + movs r6, #3 + b _081BC10A + .align 2, 0 +_081BBE00: .4byte 0x02024190 +_081BBE04: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BBE10 + adds r0, r0, r1 + movs r1, #0x1a + b _081BC102 + .align 2, 0 +_081BBE10: .4byte 0x02024190 +_081BBE14: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BBE20 + adds r0, r0, r1 + movs r1, #0x1b + b _081BC102 + .align 2, 0 +_081BBE20: .4byte 0x02024190 +_081BBE24: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BBE30 + adds r0, r0, r1 + movs r1, #0x1c + b _081BC102 + .align 2, 0 +_081BBE30: .4byte 0x02024190 +_081BBE34: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BBE40 + adds r0, r0, r1 + movs r1, #0x1d + b _081BC102 + .align 2, 0 +_081BBE40: .4byte 0x02024190 +_081BBE44: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BBE50 + adds r0, r0, r1 + movs r1, #0x1e + b _081BC102 + .align 2, 0 +_081BBE50: .4byte 0x02024190 +_081BBE54: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BBE60 + adds r0, r0, r1 + movs r1, #0x1f + b _081BC102 + .align 2, 0 +_081BBE60: .4byte 0x02024190 +_081BBE64: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BBE70 + adds r0, r0, r1 + movs r1, #0x20 + b _081BC102 + .align 2, 0 +_081BBE70: .4byte 0x02024190 +_081BBE74: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BBE80 + adds r0, r0, r1 + movs r1, #0x22 + b _081BC102 + .align 2, 0 +_081BBE80: .4byte 0x02024190 +_081BBE84: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BBE90 + adds r0, r0, r1 + movs r1, #0x23 + b _081BC102 + .align 2, 0 +_081BBE90: .4byte 0x02024190 +_081BBE94: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BBEA0 + adds r0, r0, r1 + movs r1, #0x24 + b _081BC102 + .align 2, 0 +_081BBEA0: .4byte 0x02024190 +_081BBEA4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BBEB0 + adds r0, r0, r1 + movs r1, #0x25 + b _081BC102 + .align 2, 0 +_081BBEB0: .4byte 0x02024190 +_081BBEB4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BBEC0 + adds r0, r0, r1 + movs r1, #0x26 + b _081BC102 + .align 2, 0 +_081BBEC0: .4byte 0x02024190 +_081BBEC4: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _081BBF10 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x27 + bl GetMonData + strb r0, [r7] + adds r0, r4, #0 + movs r1, #0x28 + bl GetMonData + strb r0, [r7, #1] + adds r0, r4, #0 + movs r1, #0x29 + bl GetMonData + strb r0, [r7, #2] + adds r0, r4, #0 + movs r1, #0x2a + bl GetMonData + strb r0, [r7, #3] + adds r0, r4, #0 + movs r1, #0x2b + bl GetMonData + strb r0, [r7, #4] + adds r0, r4, #0 + movs r1, #0x2c + bl GetMonData + strb r0, [r7, #5] + movs r6, #6 + b _081BC10A + .align 2, 0 +_081BBF10: .4byte 0x02024190 +_081BBF14: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BBF20 + adds r0, r0, r1 + movs r1, #0x27 + b _081BC102 + .align 2, 0 +_081BBF20: .4byte 0x02024190 +_081BBF24: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BBF30 + adds r0, r0, r1 + movs r1, #0x28 + b _081BC102 + .align 2, 0 +_081BBF30: .4byte 0x02024190 +_081BBF34: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BBF40 + adds r0, r0, r1 + movs r1, #0x29 + b _081BC102 + .align 2, 0 +_081BBF40: .4byte 0x02024190 +_081BBF44: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BBF50 + adds r0, r0, r1 + movs r1, #0x2a + b _081BC102 + .align 2, 0 +_081BBF50: .4byte 0x02024190 +_081BBF54: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BBF60 + adds r0, r0, r1 + movs r1, #0x2b + b _081BC102 + .align 2, 0 +_081BBF60: .4byte 0x02024190 +_081BBF64: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BBF70 + adds r0, r0, r1 + movs r1, #0x2c + b _081BC102 + .align 2, 0 +_081BBF70: .4byte 0x02024190 +_081BBF74: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BBF80 + adds r0, r0, r1 + movs r1, #0 + b _081BBF9E + .align 2, 0 +_081BBF80: .4byte 0x02024190 +_081BBF84: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BBF90 + adds r0, r0, r1 + movs r1, #9 + b _081BC042 + .align 2, 0 +_081BBF90: .4byte 0x02024190 +_081BBF94: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BBFC4 + adds r0, r0, r1 + movs r1, #0x37 +_081BBF9E: + bl GetMonData + adds r1, r0, #0 + strb r1, [r7] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + lsrs r0, r0, #8 + strb r0, [r7, #1] + movs r0, #0xff + lsls r0, r0, #0x10 + ands r0, r1 + lsrs r0, r0, #0x10 + strb r0, [r7, #2] + lsrs r0, r1, #0x18 + strb r0, [r7, #3] + movs r6, #4 + b _081BC10A + .align 2, 0 +_081BBFC4: .4byte 0x02024190 +_081BBFC8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BBFD4 + adds r0, r0, r1 + movs r1, #0x38 + b _081BC102 + .align 2, 0 +_081BBFD4: .4byte 0x02024190 +_081BBFD8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BBFE4 + adds r0, r0, r1 + movs r1, #0x39 + b _081BC042 + .align 2, 0 +_081BBFE4: .4byte 0x02024190 +_081BBFE8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BBFF4 + adds r0, r0, r1 + movs r1, #0x3a + b _081BC042 + .align 2, 0 +_081BBFF4: .4byte 0x02024190 +_081BBFF8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC004 + adds r0, r0, r1 + movs r1, #0x3b + b _081BC042 + .align 2, 0 +_081BC004: .4byte 0x02024190 +_081BC008: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC014 + adds r0, r0, r1 + movs r1, #0x3c + b _081BC042 + .align 2, 0 +_081BC014: .4byte 0x02024190 +_081BC018: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC024 + adds r0, r0, r1 + movs r1, #0x3d + b _081BC042 + .align 2, 0 +_081BC024: .4byte 0x02024190 +_081BC028: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC034 + adds r0, r0, r1 + movs r1, #0x3e + b _081BC042 + .align 2, 0 +_081BC034: .4byte 0x02024190 +_081BC038: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC054 + adds r0, r0, r1 + movs r1, #0x3f +_081BC042: + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + strb r0, [r7] + lsrs r0, r0, #8 + strb r0, [r7, #1] + movs r6, #2 + b _081BC10A + .align 2, 0 +_081BC054: .4byte 0x02024190 +_081BC058: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC064 + adds r0, r0, r1 + movs r1, #0x16 + b _081BC102 + .align 2, 0 +_081BC064: .4byte 0x02024190 +_081BC068: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC074 + adds r0, r0, r1 + movs r1, #0x17 + b _081BC102 + .align 2, 0 +_081BC074: .4byte 0x02024190 +_081BC078: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC084 + adds r0, r0, r1 + movs r1, #0x18 + b _081BC102 + .align 2, 0 +_081BC084: .4byte 0x02024190 +_081BC088: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC094 + adds r0, r0, r1 + movs r1, #0x21 + b _081BC102 + .align 2, 0 +_081BC094: .4byte 0x02024190 +_081BC098: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC0A4 + adds r0, r0, r1 + movs r1, #0x2f + b _081BC102 + .align 2, 0 +_081BC0A4: .4byte 0x02024190 +_081BC0A8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC0B4 + adds r0, r0, r1 + movs r1, #0x30 + b _081BC102 + .align 2, 0 +_081BC0B4: .4byte 0x02024190 +_081BC0B8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC0C4 + adds r0, r0, r1 + movs r1, #0x32 + b _081BC102 + .align 2, 0 +_081BC0C4: .4byte 0x02024190 +_081BC0C8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC0D4 + adds r0, r0, r1 + movs r1, #0x33 + b _081BC102 + .align 2, 0 +_081BC0D4: .4byte 0x02024190 +_081BC0D8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC0E4 + adds r0, r0, r1 + movs r1, #0x34 + b _081BC102 + .align 2, 0 +_081BC0E4: .4byte 0x02024190 +_081BC0E8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC0F4 + adds r0, r0, r1 + movs r1, #0x35 + b _081BC102 + .align 2, 0 +_081BC0F4: .4byte 0x02024190 +_081BC0F8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC11C + adds r0, r0, r1 + movs r1, #0x36 +_081BC102: + bl GetMonData + strb r0, [r7] + movs r6, #1 +_081BC10A: + adds r0, r6, #0 + add sp, #0x90 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081BC11C: .4byte 0x02024190 + thumb_func_end CopyPlayerPartnerMonData + + thumb_func_start PlayerPartnerHandleGetRawMonData +PlayerPartnerHandleGetRawMonData: @ 0x081BC120 + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerPartnerHandleGetRawMonData + + thumb_func_start PlayerPartnerHandleSetMonData +PlayerPartnerHandleSetMonData: @ 0x081BC12C + push {r4, r5, lr} + ldr r1, _081BC150 + ldr r0, _081BC154 + ldrb r2, [r0] + lsls r0, r2, #9 + adds r1, #2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, #0 + bne _081BC15C + ldr r0, _081BC158 + lsls r1, r2, #1 + adds r1, r1, r0 + ldrb r0, [r1] + bl SetPlayerPartnerMonData + b _081BC17A + .align 2, 0 +_081BC150: .4byte 0x02022D08 +_081BC154: .4byte 0x02023D08 +_081BC158: .4byte 0x02023D12 +_081BC15C: + ldrb r4, [r1] + movs r5, #0 +_081BC160: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _081BC16E + adds r0, r5, #0 + bl SetPlayerPartnerMonData +_081BC16E: + lsrs r4, r4, #1 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #5 + bls _081BC160 +_081BC17A: + bl PlayerPartnerBufferExecCompleted + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end PlayerPartnerHandleSetMonData + + thumb_func_start SetPlayerPartnerMonData +SetPlayerPartnerMonData: @ 0x081BC184 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x34 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _081BC1BC + ldrb r0, [r0] + lsls r0, r0, #9 + ldr r2, _081BC1C0 + adds r3, r0, r2 + adds r6, r3, #0 + subs r1, r2, #2 + adds r0, r0, r1 + ldrb r0, [r0] + adds r7, r2, #0 + cmp r0, #0x3b + bls _081BC1B0 + bl _081BCB4A +_081BC1B0: + lsls r0, r0, #2 + ldr r1, _081BC1C4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081BC1BC: .4byte 0x02023D08 +_081BC1C0: .4byte 0x02022D0B +_081BC1C4: .4byte 0x081BC1C8 +_081BC1C8: @ jump table + .4byte _081BC2B8 @ case 0 + .4byte _081BC450 @ case 1 + .4byte _081BC470 @ case 2 + .4byte _081BC490 @ case 3 + .4byte _081BC4E8 @ case 4 + .4byte _081BC4E8 @ case 5 + .4byte _081BC4E8 @ case 6 + .4byte _081BC4E8 @ case 7 + .4byte _081BC510 @ case 8 + .4byte _081BC574 @ case 9 + .4byte _081BC574 @ case 10 + .4byte _081BC574 @ case 11 + .4byte _081BC574 @ case 12 + .4byte _081BCB4A @ case 13 + .4byte _081BCB4A @ case 14 + .4byte _081BCB4A @ case 15 + .4byte _081BCB4A @ case 16 + .4byte _081BC5A4 @ case 17 + .4byte _081BC5C4 @ case 18 + .4byte _081BC5E4 @ case 19 + .4byte _081BC604 @ case 20 + .4byte _081BC624 @ case 21 + .4byte _081BC644 @ case 22 + .4byte _081BC664 @ case 23 + .4byte _081BC684 @ case 24 + .4byte _081BC6A4 @ case 25 + .4byte _081BC6C4 @ case 26 + .4byte _081BC6E4 @ case 27 + .4byte _081BC704 @ case 28 + .4byte _081BC724 @ case 29 + .4byte _081BC744 @ case 30 + .4byte _081BC764 @ case 31 + .4byte _081BC7D4 @ case 32 + .4byte _081BC7F4 @ case 33 + .4byte _081BC814 @ case 34 + .4byte _081BC834 @ case 35 + .4byte _081BC854 @ case 36 + .4byte _081BC874 @ case 37 + .4byte _081BC894 @ case 38 + .4byte _081BC8B4 @ case 39 + .4byte _081BC8D4 @ case 40 + .4byte _081BC8F4 @ case 41 + .4byte _081BC914 @ case 42 + .4byte _081BC934 @ case 43 + .4byte _081BC954 @ case 44 + .4byte _081BC974 @ case 45 + .4byte _081BC994 @ case 46 + .4byte _081BC9B4 @ case 47 + .4byte _081BC9D4 @ case 48 + .4byte _081BC9F4 @ case 49 + .4byte _081BCA14 @ case 50 + .4byte _081BCA34 @ case 51 + .4byte _081BCA54 @ case 52 + .4byte _081BCA74 @ case 53 + .4byte _081BCA94 @ case 54 + .4byte _081BCAB4 @ case 55 + .4byte _081BCAD4 @ case 56 + .4byte _081BCAF4 @ case 57 + .4byte _081BCB14 @ case 58 + .4byte _081BCB34 @ case 59 +_081BC2B8: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _081BC44C + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0xb + adds r2, r6, #0 + bl SetMonData + adds r2, r6, #0 + adds r2, #0x2e + adds r0, r4, #0 + movs r1, #0xc + bl SetMonData + movs r0, #0 + mov r8, r0 + movs r0, #0x3b + adds r0, r0, r6 + mov sl, r0 + adds r0, r6, #0 + adds r0, #0x2b + str r0, [sp, #0x20] + adds r0, #0x19 + str r0, [sp, #0x28] + adds r0, #4 + str r0, [sp, #0x2c] + adds r0, #4 + str r0, [sp, #0x30] + subs r0, #0x22 + str r0, [sp, #0x1c] + subs r0, #2 + str r0, [sp, #0x18] + adds r0, #4 + str r0, [sp, #0x24] + adds r0, r6, #2 + str r0, [sp, #4] + adds r0, r6, #4 + str r0, [sp, #8] + adds r0, r6, #6 + str r0, [sp, #0xc] + adds r0, #2 + str r0, [sp, #0x10] + adds r0, #2 + str r0, [sp, #0x14] + mov sb, r4 + adds r7, r6, #0 + adds r7, #0x24 + adds r4, r6, #0 + adds r4, #0xc +_081BC31E: + mov r1, r8 + adds r1, #0xd + mov r0, sb + adds r2, r4, #0 + bl SetMonData + mov r1, r8 + adds r1, #0x11 + mov r0, sb + adds r2, r7, #0 + bl SetMonData + adds r7, #1 + adds r4, #2 + movs r0, #1 + add r8, r0 + mov r0, r8 + cmp r0, #3 + ble _081BC31E + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _081BC44C + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x15 + mov r2, sl + bl SetMonData + adds r0, r4, #0 + movs r1, #0x20 + ldr r2, [sp, #0x20] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x19 + ldr r2, [sp, #0x28] + bl SetMonData + ldrb r0, [r6, #0x14] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1b + mov r1, sp + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x27 + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r6, #0x14] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x28 + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r6, #0x15] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x29 + mov r2, sp + bl SetMonData + mov r1, sp + ldr r0, [r6, #0x14] + lsls r0, r0, #0xc + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x2a + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r6, #0x16] + lsls r0, r0, #0x17 + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x2b + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r6, #0x17] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x2c + mov r2, sp + bl SetMonData + adds r0, r4, #0 + movs r1, #0 + ldr r2, [sp, #0x2c] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x37 + ldr r2, [sp, #0x30] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x38 + ldr r2, [sp, #0x1c] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x39 + ldr r2, [sp, #0x18] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3a + ldr r2, [sp, #0x24] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3b + ldr r2, [sp, #4] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3c + ldr r2, [sp, #8] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3d + ldr r2, [sp, #0xc] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3e + ldr r2, [sp, #0x10] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3f + ldr r2, [sp, #0x14] + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC44C: .4byte 0x02024190 +_081BC450: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC468 + adds r0, r0, r1 + ldr r1, _081BC46C + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0xb + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC468: .4byte 0x02024190 +_081BC46C: .4byte 0x02023D08 +_081BC470: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC488 + adds r0, r0, r1 + ldr r1, _081BC48C + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0xc + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC488: .4byte 0x02024190 +_081BC48C: .4byte 0x02023D08 +_081BC490: + movs r0, #0 + mov r8, r0 + movs r0, #0xc + adds r0, r0, r3 + mov sb, r0 + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _081BC4E4 + adds r7, r1, r0 + adds r6, r3, #0 + adds r6, #8 + adds r4, r3, #0 +_081BC4AA: + mov r1, r8 + adds r1, #0xd + adds r0, r7, #0 + adds r2, r4, #0 + bl SetMonData + mov r1, r8 + adds r1, #0x11 + adds r0, r7, #0 + adds r2, r6, #0 + bl SetMonData + adds r6, #1 + adds r4, #2 + movs r0, #1 + add r8, r0 + mov r0, r8 + cmp r0, #3 + ble _081BC4AA + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC4E4 + adds r0, r0, r1 + movs r1, #0x15 + mov r2, sb + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC4E4: .4byte 0x02024190 +_081BC4E8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC504 + adds r0, r0, r1 + ldr r3, _081BC508 + ldr r1, _081BC50C + ldrb r2, [r1] + lsls r2, r2, #9 + adds r1, r3, #1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, #9 + b _081BC58C + .align 2, 0 +_081BC504: .4byte 0x02024190 +_081BC508: .4byte 0x02022D08 +_081BC50C: .4byte 0x02023D08 +_081BC510: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _081BC56C + adds r4, r4, r0 + ldr r5, _081BC570 + ldrb r2, [r5] + lsls r2, r2, #9 + adds r2, r2, r7 + adds r0, r4, #0 + movs r1, #0x11 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #1 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x12 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #2 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x13 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #3 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x14 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #4 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x15 + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC56C: .4byte 0x02024190 +_081BC570: .4byte 0x02023D08 +_081BC574: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC598 + adds r0, r0, r1 + ldr r3, _081BC59C + ldr r1, _081BC5A0 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r1, r3, #1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, #8 +_081BC58C: + adds r3, #3 + adds r2, r2, r3 + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC598: .4byte 0x02024190 +_081BC59C: .4byte 0x02022D08 +_081BC5A0: .4byte 0x02023D08 +_081BC5A4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC5BC + adds r0, r0, r1 + ldr r1, _081BC5C0 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #1 + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC5BC: .4byte 0x02024190 +_081BC5C0: .4byte 0x02023D08 +_081BC5C4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC5DC + adds r0, r0, r1 + ldr r1, _081BC5E0 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x19 + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC5DC: .4byte 0x02024190 +_081BC5E0: .4byte 0x02023D08 +_081BC5E4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC5FC + adds r0, r0, r1 + ldr r1, _081BC600 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x1a + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC5FC: .4byte 0x02024190 +_081BC600: .4byte 0x02023D08 +_081BC604: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC61C + adds r0, r0, r1 + ldr r1, _081BC620 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x1b + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC61C: .4byte 0x02024190 +_081BC620: .4byte 0x02023D08 +_081BC624: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC63C + adds r0, r0, r1 + ldr r1, _081BC640 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x1c + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC63C: .4byte 0x02024190 +_081BC640: .4byte 0x02023D08 +_081BC644: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC65C + adds r0, r0, r1 + ldr r1, _081BC660 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x1d + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC65C: .4byte 0x02024190 +_081BC660: .4byte 0x02023D08 +_081BC664: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC67C + adds r0, r0, r1 + ldr r1, _081BC680 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x1e + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC67C: .4byte 0x02024190 +_081BC680: .4byte 0x02023D08 +_081BC684: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC69C + adds r0, r0, r1 + ldr r1, _081BC6A0 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x1f + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC69C: .4byte 0x02024190 +_081BC6A0: .4byte 0x02023D08 +_081BC6A4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC6BC + adds r0, r0, r1 + ldr r1, _081BC6C0 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x20 + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC6BC: .4byte 0x02024190 +_081BC6C0: .4byte 0x02023D08 +_081BC6C4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC6DC + adds r0, r0, r1 + ldr r1, _081BC6E0 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x22 + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC6DC: .4byte 0x02024190 +_081BC6E0: .4byte 0x02023D08 +_081BC6E4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC6FC + adds r0, r0, r1 + ldr r1, _081BC700 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x23 + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC6FC: .4byte 0x02024190 +_081BC700: .4byte 0x02023D08 +_081BC704: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC71C + adds r0, r0, r1 + ldr r1, _081BC720 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x24 + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC71C: .4byte 0x02024190 +_081BC720: .4byte 0x02023D08 +_081BC724: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC73C + adds r0, r0, r1 + ldr r1, _081BC740 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x25 + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC73C: .4byte 0x02024190 +_081BC740: .4byte 0x02023D08 +_081BC744: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC75C + adds r0, r0, r1 + ldr r1, _081BC760 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x26 + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC75C: .4byte 0x02024190 +_081BC760: .4byte 0x02023D08 +_081BC764: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _081BC7CC + adds r4, r4, r0 + ldr r5, _081BC7D0 + ldrb r2, [r5] + lsls r2, r2, #9 + adds r2, r2, r7 + adds r0, r4, #0 + movs r1, #0x27 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #1 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x28 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #2 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x29 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #3 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x2a + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #4 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x2b + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #5 + adds r2, r2, r0 + adds r0, r4, #0 + b _081BC884 + .align 2, 0 +_081BC7CC: .4byte 0x02024190 +_081BC7D0: .4byte 0x02023D08 +_081BC7D4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC7EC + adds r0, r0, r1 + ldr r1, _081BC7F0 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x27 + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC7EC: .4byte 0x02024190 +_081BC7F0: .4byte 0x02023D08 +_081BC7F4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC80C + adds r0, r0, r1 + ldr r1, _081BC810 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x28 + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC80C: .4byte 0x02024190 +_081BC810: .4byte 0x02023D08 +_081BC814: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC82C + adds r0, r0, r1 + ldr r1, _081BC830 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x29 + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC82C: .4byte 0x02024190 +_081BC830: .4byte 0x02023D08 +_081BC834: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC84C + adds r0, r0, r1 + ldr r1, _081BC850 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x2a + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC84C: .4byte 0x02024190 +_081BC850: .4byte 0x02023D08 +_081BC854: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC86C + adds r0, r0, r1 + ldr r1, _081BC870 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x2b + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC86C: .4byte 0x02024190 +_081BC870: .4byte 0x02023D08 +_081BC874: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC88C + adds r0, r0, r1 + ldr r1, _081BC890 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 +_081BC884: + movs r1, #0x2c + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC88C: .4byte 0x02024190 +_081BC890: .4byte 0x02023D08 +_081BC894: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC8AC + adds r0, r0, r1 + ldr r1, _081BC8B0 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0 + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC8AC: .4byte 0x02024190 +_081BC8B0: .4byte 0x02023D08 +_081BC8B4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC8CC + adds r0, r0, r1 + ldr r1, _081BC8D0 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #9 + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC8CC: .4byte 0x02024190 +_081BC8D0: .4byte 0x02023D08 +_081BC8D4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC8EC + adds r0, r0, r1 + ldr r1, _081BC8F0 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x37 + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC8EC: .4byte 0x02024190 +_081BC8F0: .4byte 0x02023D08 +_081BC8F4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC90C + adds r0, r0, r1 + ldr r1, _081BC910 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x38 + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC90C: .4byte 0x02024190 +_081BC910: .4byte 0x02023D08 +_081BC914: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC92C + adds r0, r0, r1 + ldr r1, _081BC930 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x39 + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC92C: .4byte 0x02024190 +_081BC930: .4byte 0x02023D08 +_081BC934: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC94C + adds r0, r0, r1 + ldr r1, _081BC950 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x3a + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC94C: .4byte 0x02024190 +_081BC950: .4byte 0x02023D08 +_081BC954: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC96C + adds r0, r0, r1 + ldr r1, _081BC970 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x3b + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC96C: .4byte 0x02024190 +_081BC970: .4byte 0x02023D08 +_081BC974: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC98C + adds r0, r0, r1 + ldr r1, _081BC990 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x3c + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC98C: .4byte 0x02024190 +_081BC990: .4byte 0x02023D08 +_081BC994: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC9AC + adds r0, r0, r1 + ldr r1, _081BC9B0 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x3d + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC9AC: .4byte 0x02024190 +_081BC9B0: .4byte 0x02023D08 +_081BC9B4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC9CC + adds r0, r0, r1 + ldr r1, _081BC9D0 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x3e + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC9CC: .4byte 0x02024190 +_081BC9D0: .4byte 0x02023D08 +_081BC9D4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BC9EC + adds r0, r0, r1 + ldr r1, _081BC9F0 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x3f + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BC9EC: .4byte 0x02024190 +_081BC9F0: .4byte 0x02023D08 +_081BC9F4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BCA0C + adds r0, r0, r1 + ldr r1, _081BCA10 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x16 + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BCA0C: .4byte 0x02024190 +_081BCA10: .4byte 0x02023D08 +_081BCA14: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BCA2C + adds r0, r0, r1 + ldr r1, _081BCA30 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x17 + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BCA2C: .4byte 0x02024190 +_081BCA30: .4byte 0x02023D08 +_081BCA34: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BCA4C + adds r0, r0, r1 + ldr r1, _081BCA50 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x18 + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BCA4C: .4byte 0x02024190 +_081BCA50: .4byte 0x02023D08 +_081BCA54: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BCA6C + adds r0, r0, r1 + ldr r1, _081BCA70 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x21 + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BCA6C: .4byte 0x02024190 +_081BCA70: .4byte 0x02023D08 +_081BCA74: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BCA8C + adds r0, r0, r1 + ldr r1, _081BCA90 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x2f + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BCA8C: .4byte 0x02024190 +_081BCA90: .4byte 0x02023D08 +_081BCA94: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BCAAC + adds r0, r0, r1 + ldr r1, _081BCAB0 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x30 + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BCAAC: .4byte 0x02024190 +_081BCAB0: .4byte 0x02023D08 +_081BCAB4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BCACC + adds r0, r0, r1 + ldr r1, _081BCAD0 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x32 + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BCACC: .4byte 0x02024190 +_081BCAD0: .4byte 0x02023D08 +_081BCAD4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BCAEC + adds r0, r0, r1 + ldr r1, _081BCAF0 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x33 + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BCAEC: .4byte 0x02024190 +_081BCAF0: .4byte 0x02023D08 +_081BCAF4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BCB0C + adds r0, r0, r1 + ldr r1, _081BCB10 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x34 + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BCB0C: .4byte 0x02024190 +_081BCB10: .4byte 0x02023D08 +_081BCB14: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BCB2C + adds r0, r0, r1 + ldr r1, _081BCB30 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x35 + bl SetMonData + b _081BCB4A + .align 2, 0 +_081BCB2C: .4byte 0x02024190 +_081BCB30: .4byte 0x02023D08 +_081BCB34: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081BCB74 + adds r0, r0, r1 + ldr r1, _081BCB78 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x36 + bl SetMonData +_081BCB4A: + ldr r2, _081BCB7C + ldr r0, _081BCB78 + ldrb r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r2, [r0] + movs r0, #0x64 + muls r0, r2, r0 + ldr r2, _081BCB74 + adds r0, r0, r2 + bl HandleLowHpMusicChange + add sp, #0x34 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081BCB74: .4byte 0x02024190 +_081BCB78: .4byte 0x02023D08 +_081BCB7C: .4byte 0x02023D12 + thumb_func_end SetPlayerPartnerMonData + + thumb_func_start PlayerPartnerHandleSetRawMonData +PlayerPartnerHandleSetRawMonData: @ 0x081BCB80 + push {r4, r5, r6, r7, lr} + ldr r1, _081BCBE4 + ldr r7, _081BCBE8 + ldrb r2, [r7] + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + adds r3, r1, #0 + muls r3, r0, r3 + ldr r4, _081BCBEC + lsls r2, r2, #9 + adds r0, r4, #1 + adds r0, r2, r0 + ldrb r0, [r0] + ldr r1, _081BCBF0 + adds r0, r0, r1 + adds r5, r3, r0 + movs r3, #0 + adds r0, r4, #2 + adds r2, r2, r0 + ldrb r2, [r2] + cmp r3, r2 + bhs _081BCBD8 + adds r6, r4, #0 + adds r2, r7, #0 + adds r4, r0, #0 +_081BCBB6: + adds r1, r5, r3 + ldrb r0, [r2] + lsls r0, r0, #9 + adds r0, #3 + adds r0, r3, r0 + adds r0, r0, r6 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldrb r0, [r2] + lsls r0, r0, #9 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r3, r0 + blo _081BCBB6 +_081BCBD8: + bl PlayerPartnerBufferExecCompleted + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081BCBE4: .4byte 0x02023D12 +_081BCBE8: .4byte 0x02023D08 +_081BCBEC: .4byte 0x02022D08 +_081BCBF0: .4byte 0x02024190 + thumb_func_end PlayerPartnerHandleSetRawMonData + + thumb_func_start PlayerPartnerHandleLoadMonSprite +PlayerPartnerHandleLoadMonSprite: @ 0x081BCBF4 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + ldr r0, _081BCCE8 + mov r8, r0 + ldr r6, _081BCCEC + ldrb r1, [r6] + lsls r0, r1, #1 + add r0, r8 + ldrh r0, [r0] + movs r5, #0x64 + muls r0, r5, r0 + ldr r4, _081BCCF0 + adds r0, r0, r4 + bl BattleLoadPlayerMonSpriteGfx + ldrb r0, [r6] + lsls r0, r0, #1 + add r0, r8 + ldrh r0, [r0] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #0xb + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldrb r0, [r6] + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl SetMultiuseSpriteTemplateToPokemon + ldr r0, _081BCCF4 + mov r8, r0 + ldrb r0, [r6] + movs r1, #2 + bl GetBattlerSpriteCoord + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldrb r0, [r6] + bl GetBattlerSpriteDefault_Y + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldrb r0, [r6] + bl GetBattlerSpriteSubpriority + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r0, r8 + adds r1, r5, #0 + adds r2, r4, #0 + bl CreateSprite + ldr r4, _081BCCF8 + ldrb r1, [r6] + adds r1, r1, r4 + strb r0, [r1] + ldr r5, _081BCCFC + ldrb r0, [r6] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _081BCD00 + strh r1, [r0, #0x24] + ldrb r2, [r6] + adds r0, r2, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r2, [r0, #0x2e] + ldrb r3, [r6] + adds r0, r3, r4 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + lsls r3, r3, #4 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #5] + ldrb r2, [r6] + adds r4, r2, r4 + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _081BCD04 + adds r2, r2, r1 + ldrb r1, [r2] + bl StartSpriteAnim + ldr r1, _081BCD08 + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081BCD0C + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081BCCE8: .4byte 0x02023D12 +_081BCCEC: .4byte 0x02023D08 +_081BCCF0: .4byte 0x02024190 +_081BCCF4: .4byte 0x02024640 +_081BCCF8: .4byte 0x02023E88 +_081BCCFC: .4byte 0x020205AC +_081BCD00: .4byte 0x0000FF10 +_081BCD04: .4byte 0x02024188 +_081BCD08: .4byte 0x03005AC0 +_081BCD0C: .4byte 0x081BAE71 + thumb_func_end PlayerPartnerHandleLoadMonSprite + + thumb_func_start PlayerPartnerHandleSwitchInAnim +PlayerPartnerHandleSwitchInAnim: @ 0x081BCD10 + push {r4, r5, r6, lr} + ldr r5, _081BCD68 + ldrb r0, [r5] + ldr r4, _081BCD6C + lsls r1, r0, #9 + adds r6, r4, #2 + adds r1, r1, r6 + ldrb r1, [r1] + bl ClearTemporarySpeciesSpriteData + ldr r2, _081BCD70 + ldrb r0, [r5] + lsls r1, r0, #1 + adds r1, r1, r2 + lsls r0, r0, #9 + adds r4, #1 + adds r0, r0, r4 + ldrb r0, [r0] + strh r0, [r1] + ldrb r1, [r5] + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r2, [r0] + movs r0, #0x64 + muls r0, r2, r0 + ldr r2, _081BCD74 + adds r0, r0, r2 + bl BattleLoadPlayerMonSpriteGfx + ldrb r0, [r5] + lsls r1, r0, #9 + adds r1, r1, r6 + ldrb r1, [r1] + bl sub_081BCD80 + ldr r1, _081BCD78 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081BCD7C + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081BCD68: .4byte 0x02023D08 +_081BCD6C: .4byte 0x02022D08 +_081BCD70: .4byte 0x02023D12 +_081BCD74: .4byte 0x02024190 +_081BCD78: .4byte 0x03005AC0 +_081BCD7C: .4byte 0x081BB785 + thumb_func_end PlayerPartnerHandleSwitchInAnim + + thumb_func_start sub_081BCD80 +sub_081BCD80: @ 0x081BCD80 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r6, #0 + bl ClearTemporarySpeciesSpriteData + ldr r0, _081BCED4 + lsls r2, r6, #1 + adds r2, r2, r0 + ldr r0, _081BCED8 + lsls r1, r6, #9 + adds r0, #1 + adds r1, r1, r0 + ldrb r0, [r1] + strh r0, [r2] + ldrh r1, [r2] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081BCEDC + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + mov r8, r0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + ldr r0, _081BCEE0 + bl CreateInvisibleSpriteWithCallback + ldr r1, _081BCEE4 + mov sb, r1 + add sb, r6 + mov r1, sb + strb r0, [r1] + adds r0, r6, #0 + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r0, r8 + bl SetMultiuseSpriteTemplateToPokemon + ldr r0, _081BCEE8 + mov sl, r0 + adds r0, r6, #0 + movs r1, #2 + bl GetBattlerSpriteCoord + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + adds r0, r6, #0 + bl GetBattlerSpriteDefault_Y + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r6, #0 + bl GetBattlerSpriteSubpriority + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r0, sl + adds r1, r5, #0 + adds r2, r4, #0 + bl CreateSprite + ldr r4, _081BCEEC + adds r4, r6, r4 + strb r0, [r4] + ldr r5, _081BCEF0 + mov r0, sb + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r1, [r4] + strh r1, [r0, #0x30] + mov r0, sb + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r6, [r0, #0x32] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r6, [r0, #0x2e] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + mov r1, r8 + strh r1, [r0, #0x32] + ldrb r0, [r4] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + lsls r3, r6, #4 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #5] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _081BCEF4 + adds r6, r6, r1 + ldrb r1, [r6] + bl StartSpriteAnim + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r5, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _081BCEF8 + str r1, [r0] + movs r0, #0 + movs r1, #0xff + bl DoPokeballSendOutAnimation + mov r1, sb + ldrb r2, [r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r1, #0x2e] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081BCED4: .4byte 0x02023D12 +_081BCED8: .4byte 0x02022D08 +_081BCEDC: .4byte 0x02024190 +_081BCEE0: .4byte 0x0805D331 +_081BCEE4: .4byte 0x03005ADC +_081BCEE8: .4byte 0x02024640 +_081BCEEC: .4byte 0x02023E88 +_081BCEF0: .4byte 0x020205AC +_081BCEF4: .4byte 0x02024188 +_081BCEF8: .4byte 0x08007141 + thumb_func_end sub_081BCD80 + + thumb_func_start PlayerPartnerHandleReturnMonToBall +PlayerPartnerHandleReturnMonToBall: @ 0x081BCEFC + push {r4, r5, r6, lr} + ldr r1, _081BCF30 + ldr r6, _081BCF34 + ldrb r2, [r6] + lsls r0, r2, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r3, [r0] + cmp r3, #0 + bne _081BCF44 + ldr r0, _081BCF38 + ldr r0, [r0] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + strb r3, [r0, #4] + ldr r1, _081BCF3C + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081BCF40 + str r1, [r0] + b _081BCF7A + .align 2, 0 +_081BCF30: .4byte 0x02022D08 +_081BCF34: .4byte 0x02023D08 +_081BCF38: .4byte 0x02024174 +_081BCF3C: .4byte 0x03005AC0 +_081BCF40: .4byte 0x081BCF8D +_081BCF44: + ldr r5, _081BCF80 + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _081BCF84 + adds r0, r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + ldr r1, _081BCF88 + ldrb r0, [r6] + adds r0, r0, r1 + ldrb r0, [r0] + bl SetHealthboxSpriteInvisible + bl PlayerPartnerBufferExecCompleted +_081BCF7A: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081BCF80: .4byte 0x02023E88 +_081BCF84: .4byte 0x020205AC +_081BCF88: .4byte 0x03005AD0 + thumb_func_end PlayerPartnerHandleReturnMonToBall + + thumb_func_start DoSwitchOutAnimation +DoSwitchOutAnimation: @ 0x081BCF8C + push {r4, r5, r6, lr} + ldr r6, _081BCFAC + ldr r4, [r6] + ldr r5, _081BCFB0 + ldrb r2, [r5] + ldr r1, [r4, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r3, r0, r1 + ldrb r0, [r3, #4] + cmp r0, #0 + beq _081BCFB4 + cmp r0, #1 + beq _081BCFE2 + b _081BD00A + .align 2, 0 +_081BCFAC: .4byte 0x02024174 +_081BCFB0: .4byte 0x02023D08 +_081BCFB4: + ldr r1, [r4] + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _081BCFCE + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #5 + bl InitAndLaunchSpecialAnimation +_081BCFCE: + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #1 + strb r1, [r0, #4] + b _081BD00A +_081BCFE2: + ldrb r1, [r3] + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _081BD00A + strb r0, [r3, #4] + ldrb r2, [r5] + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #1 + bl InitAndLaunchSpecialAnimation + ldr r1, _081BD010 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081BD014 + str r1, [r0] +_081BD00A: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081BD010: .4byte 0x03005AC0 +_081BD014: .4byte 0x081BB4C5 + thumb_func_end DoSwitchOutAnimation + + thumb_func_start PlayerPartnerHandleDrawTrainerPic +PlayerPartnerHandleDrawTrainerPic: @ 0x081BD018 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r2, _081BD038 + ldrh r1, [r2] + ldr r0, _081BD03C + cmp r1, r0 + bne _081BD044 + movs r4, #7 + movs r0, #0x5a + mov sb, r0 + ldr r0, _081BD040 + ldrb r1, [r0, #0x1c] + b _081BD05A + .align 2, 0 +_081BD038: .4byte 0x0203886E +_081BD03C: .4byte 0x00000C03 +_081BD040: .4byte 0x082D95BC +_081BD044: + ldrh r0, [r2] + bl GetFrontierTrainerFrontSpriteId + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #0x20 + mov sb, r0 + ldr r1, _081BD10C + lsls r0, r4, #2 + adds r0, r0, r1 + ldrb r1, [r0] +_081BD05A: + movs r0, #8 + subs r0, r0, r1 + lsls r0, r0, #0x12 + movs r1, #0xa0 + lsls r1, r1, #0xf + adds r0, r0, r1 + lsrs r7, r0, #0x10 + ldr r0, _081BD110 + ldrh r1, [r0] + ldr r0, _081BD114 + cmp r1, r0 + bne _081BD130 + ldr r5, _081BD118 + ldrb r1, [r5] + adds r0, r4, #0 + bl DecompressTrainerBackPic + ldrb r0, [r5] + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl SetMultiuseSpriteTemplateToTrainerBack + ldr r6, _081BD11C + mov r8, sb + lsls r4, r7, #0x10 + asrs r4, r4, #0x10 + ldrb r0, [r5] + bl GetBattlerSpriteSubpriority + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r6, #0 + mov r1, r8 + adds r2, r4, #0 + bl CreateSprite + ldr r6, _081BD120 + ldrb r1, [r5] + adds r1, r1, r6 + strb r0, [r1] + ldr r4, _081BD124 + ldrb r3, [r5] + adds r0, r3, r6 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + lsls r3, r3, #4 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #5] + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0xf0 + strh r1, [r0, #0x24] + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _081BD128 + strh r1, [r0, #0x2e] + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, #0x1c + adds r0, r0, r4 + ldr r1, _081BD12C + str r1, [r0] + b _081BD218 + .align 2, 0 +_081BD10C: .4byte 0x082D8D70 +_081BD110: .4byte 0x0203886E +_081BD114: .4byte 0x00000C03 +_081BD118: .4byte 0x02023D08 +_081BD11C: .4byte 0x02024640 +_081BD120: .4byte 0x02023E88 +_081BD124: .4byte 0x020205AC +_081BD128: .4byte 0x0000FFFE +_081BD12C: .4byte 0x0805D3C9 +_081BD130: + adds r5, r4, #0 + ldr r6, _081BD234 + ldrb r1, [r6] + adds r0, r5, #0 + bl DecompressTrainerFrontPic + ldrb r0, [r6] + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl SetMultiuseSpriteTemplateToTrainerFront + ldr r0, _081BD238 + mov r8, r0 + lsls r4, r7, #0x10 + asrs r4, r4, #0x10 + ldrb r0, [r6] + bl GetBattlerSpriteSubpriority + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r0, r8 + mov r1, sb + adds r2, r4, #0 + bl CreateSprite + ldr r4, _081BD23C + ldrb r1, [r6] + adds r1, r1, r4 + strb r0, [r1] + ldr r0, _081BD240 + lsls r5, r5, #3 + adds r5, r5, r0 + ldrh r0, [r5, #4] + bl IndexOfSpritePaletteTag + ldr r5, _081BD244 + ldrb r1, [r6] + adds r1, r1, r4 + ldrb r1, [r1] + lsls r2, r1, #4 + adds r2, r2, r1 + lsls r2, r2, #2 + adds r2, r2, r5 + lsls r0, r0, #4 + ldrb r3, [r2, #5] + movs r1, #0xf + ands r1, r3 + orrs r1, r0 + strb r1, [r2, #5] + ldrb r0, [r6] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0xf0 + strh r1, [r0, #0x24] + ldrb r0, [r6] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0x30 + strh r1, [r0, #0x26] + ldrb r0, [r6] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _081BD248 + strh r1, [r0, #0x2e] + ldrb r0, [r6] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r5, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _081BD24C + str r1, [r0] + ldrb r0, [r6] + adds r0, r0, r4 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrb r2, [r1, #1] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #1] + ldrb r0, [r6] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3f + ldrb r1, [r0] + movs r2, #1 + orrs r1, r2 + strb r1, [r0] +_081BD218: + ldr r1, _081BD250 + ldr r0, _081BD234 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081BD254 + str r1, [r0] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081BD234: .4byte 0x02023D08 +_081BD238: .4byte 0x02024640 +_081BD23C: .4byte 0x02023E88 +_081BD240: .4byte 0x082D91CC +_081BD244: .4byte 0x020205AC +_081BD248: .4byte 0x0000FFFE +_081BD24C: .4byte 0x0805D3C9 +_081BD250: .4byte 0x03005AC0 +_081BD254: .4byte 0x081BAAFD + thumb_func_end PlayerPartnerHandleDrawTrainerPic + + thumb_func_start PlayerPartnerHandleTrainerSlide +PlayerPartnerHandleTrainerSlide: @ 0x081BD258 + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerPartnerHandleTrainerSlide + + thumb_func_start PlayerPartnerHandleTrainerSlideBack +PlayerPartnerHandleTrainerSlideBack: @ 0x081BD264 + push {r4, r5, r6, lr} + ldr r6, _081BD2F0 + ldr r4, _081BD2F4 + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r5, _081BD2F8 + adds r0, r0, r5 + bl SetSpritePrimaryCoordsFromSecondaryCoords + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0x23 + strh r1, [r0, #0x2e] + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _081BD2FC + strh r1, [r0, #0x32] + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrh r1, [r0, #0x22] + strh r1, [r0, #0x36] + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r5, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _081BD300 + str r1, [r0] + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _081BD304 + bl StoreSpriteCallbackInData6 + ldr r1, _081BD308 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081BD30C + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081BD2F0: .4byte 0x02023E88 +_081BD2F4: .4byte 0x02023D08 +_081BD2F8: .4byte 0x020205AC +_081BD2FC: .4byte 0x0000FFD8 +_081BD300: .4byte 0x080A67B5 +_081BD304: .4byte 0x08007141 +_081BD308: .4byte 0x03005AC0 +_081BD30C: .4byte 0x081BAB35 + thumb_func_end PlayerPartnerHandleTrainerSlideBack + + thumb_func_start PlayerPartnerHandleFaintAnimation +PlayerPartnerHandleFaintAnimation: @ 0x081BD310 + push {r4, r5, r6, lr} + ldr r6, _081BD35C + ldr r4, [r6] + ldr r5, _081BD360 + ldrb r2, [r5] + ldr r0, [r4, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r3, r1, r0 + ldrb r0, [r3, #4] + cmp r0, #0 + bne _081BD364 + ldr r1, [r4] + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _081BD344 + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #5 + bl InitAndLaunchSpecialAnimation +_081BD344: + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #4] + adds r1, #1 + strb r1, [r0, #4] + b _081BD3DA + .align 2, 0 +_081BD35C: .4byte 0x02024174 +_081BD360: .4byte 0x02023D08 +_081BD364: + ldrb r1, [r3] + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _081BD3DA + strb r4, [r3, #4] + ldr r2, _081BD3E0 + ldrb r1, [r5] + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r2, [r0] + movs r0, #0x64 + muls r0, r2, r0 + ldr r2, _081BD3E4 + adds r0, r0, r2 + bl HandleLowHpMusicChange + movs r1, #0x40 + rsbs r1, r1, #0 + movs r0, #0x10 + bl PlaySE12WithPanning + ldr r2, _081BD3E8 + ldr r3, _081BD3EC + ldrb r0, [r5] + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r4, [r0, #0x30] + ldrb r0, [r5] + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #5 + strh r1, [r0, #0x32] + ldrb r0, [r5] + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, _081BD3F0 + str r1, [r0] + ldr r1, _081BD3F4 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081BD3F8 + str r1, [r0] +_081BD3DA: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081BD3E0: .4byte 0x02023D12 +_081BD3E4: .4byte 0x02024190 +_081BD3E8: .4byte 0x020205AC +_081BD3EC: .4byte 0x02023E88 +_081BD3F0: .4byte 0x08039845 +_081BD3F4: .4byte 0x03005AC0 +_081BD3F8: .4byte 0x081BB429 + thumb_func_end PlayerPartnerHandleFaintAnimation + + thumb_func_start PlayerPartnerHandlePaletteFade +PlayerPartnerHandlePaletteFade: @ 0x081BD3FC + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerPartnerHandlePaletteFade + + thumb_func_start PlayerPartnerHandleSuccessBallThrowAnim +PlayerPartnerHandleSuccessBallThrowAnim: @ 0x081BD408 + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerPartnerHandleSuccessBallThrowAnim + + thumb_func_start PlayerPartnerHandleBallThrowAnim +PlayerPartnerHandleBallThrowAnim: @ 0x081BD414 + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerPartnerHandleBallThrowAnim + + thumb_func_start PlayerPartnerHandlePause +PlayerPartnerHandlePause: @ 0x081BD420 + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerPartnerHandlePause + + thumb_func_start PlayerPartnerHandleMoveAnimation +PlayerPartnerHandleMoveAnimation: @ 0x081BD42C + push {r4, r5, r6, lr} + ldr r6, _081BD510 + ldrb r0, [r6] + bl mplay_80342A4 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081BD43E + b _081BD552 +_081BD43E: + ldr r0, _081BD514 + mov ip, r0 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r0, #1 + adds r0, r2, r0 + ldrb r0, [r0] + mov r1, ip + adds r1, #2 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + ldr r5, _081BD518 + mov r1, ip + adds r1, #3 + adds r2, r2, r1 + ldrb r1, [r2] + strb r1, [r5] + ldr r4, _081BD51C + ldrb r2, [r6] + lsls r2, r2, #9 + mov r1, ip + adds r1, #4 + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, ip + adds r1, #5 + adds r2, r2, r1 + ldrb r1, [r2] + lsls r1, r1, #8 + orrs r3, r1 + strh r3, [r4] + ldr r4, _081BD520 + ldrb r2, [r6] + lsls r2, r2, #9 + mov r1, ip + adds r1, #6 + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, ip + adds r1, #7 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r3, r1 + mov r1, ip + adds r1, #8 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, r1, #0x10 + orrs r3, r1 + mov r1, ip + adds r1, #9 + adds r2, r2, r1 + ldrb r1, [r2] + lsls r1, r1, #0x18 + orrs r3, r1 + str r3, [r4] + ldr r3, _081BD524 + ldrb r1, [r6] + lsls r1, r1, #9 + mov r2, ip + adds r2, #0xa + adds r1, r1, r2 + ldrb r1, [r1] + strb r1, [r3] + ldr r4, _081BD528 + ldrb r2, [r6] + lsls r2, r2, #9 + mov r1, ip + adds r1, #0xc + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, ip + adds r1, #0xd + adds r2, r2, r1 + ldrb r1, [r2] + lsls r1, r1, #8 + orrs r3, r1 + strh r3, [r4] + ldr r3, _081BD52C + ldrb r2, [r6] + lsls r2, r2, #9 + mov r1, ip + adds r1, #0x10 + adds r2, r2, r1 + str r2, [r3] + ldr r3, _081BD530 + ldrb r1, [r6] + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r2, [r2] + str r2, [r1] + ldrb r1, [r5] + bl IsMoveWithoutAnimation + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + beq _081BD534 + bl PlayerPartnerBufferExecCompleted + b _081BD552 + .align 2, 0 +_081BD510: .4byte 0x02023D08 +_081BD514: .4byte 0x02022D08 +_081BD518: .4byte 0x020380D2 +_081BD51C: .4byte 0x020380A8 +_081BD520: .4byte 0x020380A4 +_081BD524: .4byte 0x020380BA +_081BD528: .4byte 0x020380BC +_081BD52C: .4byte 0x020380A0 +_081BD530: .4byte 0x02024160 +_081BD534: + ldr r0, _081BD558 + ldr r0, [r0] + ldrb r1, [r6] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strb r3, [r0, #4] + ldr r1, _081BD55C + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081BD560 + str r1, [r0] +_081BD552: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081BD558: .4byte 0x02024174 +_081BD55C: .4byte 0x03005AC0 +_081BD560: .4byte 0x081BD565 + thumb_func_end PlayerPartnerHandleMoveAnimation + + thumb_func_start PlayerPartnerDoMoveAnimation +PlayerPartnerDoMoveAnimation: @ 0x081BD564 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r2, _081BD5B0 + ldr r6, _081BD5B4 + ldrb r3, [r6] + lsls r1, r3, #9 + adds r0, r2, #1 + mov sl, r0 + adds r0, r1, r0 + ldrb r4, [r0] + adds r5, r2, #2 + mov sb, r5 + adds r0, r1, r5 + ldrb r0, [r0] + lsls r0, r0, #8 + orrs r4, r0 + adds r2, #0xb + adds r1, r1, r2 + ldrb r1, [r1] + mov r8, r1 + ldr r7, _081BD5B8 + ldr r5, [r7] + ldr r1, [r5, #4] + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r2, [r0, #4] + cmp r2, #1 + beq _081BD5FC + cmp r2, #1 + bgt _081BD5BC + cmp r2, #0 + beq _081BD5C6 + b _081BD6D8 + .align 2, 0 +_081BD5B0: .4byte 0x02022D08 +_081BD5B4: .4byte 0x02023D08 +_081BD5B8: .4byte 0x02024174 +_081BD5BC: + cmp r2, #2 + beq _081BD626 + cmp r2, #3 + beq _081BD69C + b _081BD6D8 +_081BD5C6: + ldr r1, [r5] + lsls r0, r3, #2 + adds r1, r0, r1 + ldrb r2, [r1] + movs r0, #0xc + ands r0, r2 + cmp r0, #4 + bne _081BD5E8 + movs r0, #8 + orrs r0, r2 + strb r0, [r1] + ldrb r2, [r6] + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #5 + bl InitAndLaunchSpecialAnimation +_081BD5E8: + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #1 + strb r1, [r0, #4] + b _081BD6D8 +_081BD5FC: + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _081BD6D8 + movs r0, #0 + bl sub_0805E7B8 + adds r0, r4, #0 + bl DoMoveAnim + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #2 + strb r1, [r0, #4] + b _081BD6D8 +_081BD626: + ldr r0, _081BD68C + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _081BD690 + ldrb r0, [r0] + cmp r0, #0 + bne _081BD6D8 + movs r0, #1 + bl sub_0805E7B8 + ldr r0, [r7] + ldrb r2, [r6] + ldr r1, [r0] + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _081BD674 + mov r0, r8 + cmp r0, #1 + bhi _081BD674 + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #6 + bl InitAndLaunchSpecialAnimation + ldr r0, [r7] + ldrb r1, [r6] + ldr r0, [r0] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] +_081BD674: + ldr r0, _081BD694 + ldr r2, [r0] + ldr r0, _081BD698 + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #3 + strb r1, [r0, #4] + b _081BD6D8 + .align 2, 0 +_081BD68C: .4byte 0x02038098 +_081BD690: .4byte 0x0203809D +_081BD694: .4byte 0x02024174 +_081BD698: .4byte 0x02023D08 +_081BD69C: + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _081BD6D8 + bl CopyAllBattleSpritesInvisibilities + ldrb r0, [r6] + lsls r2, r0, #9 + mov r3, sl + adds r1, r2, r3 + ldrb r1, [r1] + add r2, sb + ldrb r2, [r2] + lsls r2, r2, #8 + orrs r1, r2 + bl TrySetBehindSubstituteSpriteBit + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strb r4, [r0, #4] + bl PlayerPartnerBufferExecCompleted +_081BD6D8: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerPartnerDoMoveAnimation + + thumb_func_start PlayerPartnerHandlePrintString +PlayerPartnerHandlePrintString: @ 0x081BD6E8 + push {r4, lr} + ldr r0, _081BD720 + movs r1, #0 + strh r1, [r0] + ldr r0, _081BD724 + strh r1, [r0] + ldr r4, _081BD728 + ldrb r0, [r4] + lsls r0, r0, #9 + ldr r1, _081BD72C + adds r0, r0, r1 + ldrh r0, [r0] + bl BufferStringBattle + ldr r0, _081BD730 + movs r1, #0 + bl sub_0814FA04 + ldr r1, _081BD734 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081BD738 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081BD720: .4byte 0x02022AC8 +_081BD724: .4byte 0x02022ACA +_081BD728: .4byte 0x02023D08 +_081BD72C: .4byte 0x02022D0A +_081BD730: .4byte 0x02022AE0 +_081BD734: .4byte 0x03005AC0 +_081BD738: .4byte 0x081BB535 + thumb_func_end PlayerPartnerHandlePrintString + + thumb_func_start PlayerPartnerHandlePrintSelectionString +PlayerPartnerHandlePrintSelectionString: @ 0x081BD73C + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerPartnerHandlePrintSelectionString + + thumb_func_start PlayerPartnerHandleChooseAction +PlayerPartnerHandleChooseAction: @ 0x081BD748 + push {lr} + bl AI_TrySwitchOrUseItem + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerPartnerHandleChooseAction + + thumb_func_start PlayerPartnerHandleUnknownYesNoBox +PlayerPartnerHandleUnknownYesNoBox: @ 0x081BD758 + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerPartnerHandleUnknownYesNoBox + + thumb_func_start PlayerPartnerHandleChooseMove +PlayerPartnerHandleChooseMove: @ 0x081BD764 + push {r4, r5, r6, lr} + ldr r6, _081BD7F4 + ldrb r4, [r6] + lsls r4, r4, #9 + ldr r0, _081BD7F8 + adds r4, r4, r0 + movs r0, #0xf + bl BattleAI_SetupAIData + bl BattleAI_ChooseMoveOrAction + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r2, _081BD7FC + lsls r0, r5, #1 + adds r4, r4, r0 + ldrh r1, [r4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #6] + movs r0, #0x12 + ands r0, r1 + cmp r0, #0 + beq _081BD79E + ldr r1, _081BD800 + ldrb r0, [r6] + strb r0, [r1] +_081BD79E: + ldrh r1, [r4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #6] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _081BD7D8 + movs r0, #1 + bl GetBattlerAtPosition + ldr r4, _081BD800 + strb r0, [r4] + ldr r0, _081BD804 + ldrb r1, [r0] + ldr r2, _081BD808 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _081BD7D8 + movs r0, #3 + bl GetBattlerAtPosition + strb r0, [r4] +_081BD7D8: + ldr r0, _081BD800 + ldrb r2, [r0] + lsls r2, r2, #8 + orrs r2, r5 + movs r0, #1 + movs r1, #0xa + bl BtlController_EmitTwoReturnValues + bl PlayerPartnerBufferExecCompleted + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081BD7F4: .4byte 0x02023D08 +_081BD7F8: .4byte 0x02022D0C +_081BD7FC: .4byte 0x082ED220 +_081BD800: .4byte 0x02023EB0 +_081BD804: .4byte 0x02023EB4 +_081BD808: .4byte 0x082FACB4 + thumb_func_end PlayerPartnerHandleChooseMove + + thumb_func_start PlayerPartnerHandleChooseItem +PlayerPartnerHandleChooseItem: @ 0x081BD80C + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerPartnerHandleChooseItem + + thumb_func_start PlayerPartnerHandleChoosePokemon +PlayerPartnerHandleChoosePokemon: @ 0x081BD818 + push {r4, r5, r6, lr} + bl GetMostSuitableMonToSwitchInto + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #6 + bne _081BD86C + movs r0, #0 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r0, #2 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r4, #3 + b _081BD840 +_081BD83E: + adds r4, #1 +_081BD840: + cmp r4, #5 + bgt _081BD86C + movs r0, #0x64 + muls r0, r4, r0 + ldr r1, _081BD890 + adds r0, r0, r1 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _081BD83E + ldr r1, _081BD894 + lsls r0, r6, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r4, r0 + beq _081BD83E + lsls r0, r5, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r4, r0 + beq _081BD83E +_081BD86C: + ldr r0, _081BD898 + ldrb r0, [r0] + ldr r1, _081BD89C + ldr r1, [r1] + adds r0, r0, r1 + adds r0, #0x5c + strb r4, [r0] + lsls r1, r4, #0x18 + lsrs r1, r1, #0x18 + movs r0, #1 + movs r2, #0 + bl BtlController_EmitChosenMonReturnValue + bl PlayerPartnerBufferExecCompleted + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081BD890: .4byte 0x02024190 +_081BD894: .4byte 0x02023D12 +_081BD898: .4byte 0x02023D08 +_081BD89C: .4byte 0x02024140 + thumb_func_end PlayerPartnerHandleChoosePokemon + + thumb_func_start PlayerPartnerHandleCmd23 +PlayerPartnerHandleCmd23: @ 0x081BD8A0 + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerPartnerHandleCmd23 + + thumb_func_start PlayerPartnerHandleHealthBarUpdate +PlayerPartnerHandleHealthBarUpdate: @ 0x081BD8AC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + movs r0, #0 + bl LoadBattleBarGfx + ldr r3, _081BD924 + ldr r0, _081BD928 + mov sb, r0 + ldrb r4, [r0] + lsls r2, r4, #9 + adds r0, r3, #2 + adds r0, r2, r0 + ldrb r1, [r0] + adds r3, #3 + adds r2, r2, r3 + ldrb r0, [r2] + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + asrs r7, r1, #0x10 + ldr r0, _081BD92C + cmp r7, r0 + beq _081BD93C + ldr r6, _081BD930 + lsls r0, r4, #1 + adds r0, r0, r6 + ldrh r0, [r0] + movs r5, #0x64 + muls r0, r5, r0 + ldr r4, _081BD934 + adds r0, r0, r4 + movs r1, #0x3a + bl GetMonData + mov r8, r0 + mov r1, sb + ldrb r0, [r1] + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r0, [r0] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #0x39 + bl GetMonData + adds r3, r0, #0 + mov r1, sb + ldrb r0, [r1] + ldr r1, _081BD938 + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + mov r2, r8 + bl SetBattleBarStruct + b _081BD966 + .align 2, 0 +_081BD924: .4byte 0x02022D08 +_081BD928: .4byte 0x02023D08 +_081BD92C: .4byte 0x00007FFF +_081BD930: .4byte 0x02023D12 +_081BD934: .4byte 0x02024190 +_081BD938: .4byte 0x03005AD0 +_081BD93C: + ldr r1, _081BD984 + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081BD988 + adds r0, r0, r1 + movs r1, #0x3a + bl GetMonData + adds r2, r0, #0 + mov r1, sb + ldrb r0, [r1] + ldr r1, _081BD98C + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + movs r3, #0 + bl SetBattleBarStruct +_081BD966: + ldr r1, _081BD990 + ldr r0, _081BD994 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081BD998 + str r1, [r0] + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081BD984: .4byte 0x02023D12 +_081BD988: .4byte 0x02024190 +_081BD98C: .4byte 0x03005AD0 +_081BD990: .4byte 0x03005AC0 +_081BD994: .4byte 0x02023D08 +_081BD998: .4byte 0x081BAEB1 + thumb_func_end PlayerPartnerHandleHealthBarUpdate + + thumb_func_start PlayerPartnerHandleExpUpdate +PlayerPartnerHandleExpUpdate: @ 0x081BD99C + push {r4, r5, r6, r7, lr} + ldr r5, _081BD9C8 + ldr r6, _081BD9CC + ldrb r0, [r6] + lsls r0, r0, #9 + adds r1, r5, #1 + adds r0, r0, r1 + ldrb r7, [r0] + movs r0, #0x64 + adds r1, r7, #0 + muls r1, r0, r1 + ldr r0, _081BD9D0 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0x38 + bl GetMonData + cmp r0, #0x63 + bls _081BD9D4 + bl PlayerPartnerBufferExecCompleted + b _081BDA20 + .align 2, 0 +_081BD9C8: .4byte 0x02022D08 +_081BD9CC: .4byte 0x02023D08 +_081BD9D0: .4byte 0x02024190 +_081BD9D4: + movs r0, #1 + bl LoadBattleBarGfx + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + ldrb r1, [r6] + lsls r1, r1, #9 + adds r0, r5, #2 + adds r0, r1, r0 + ldrb r4, [r0] + adds r0, r5, #3 + adds r1, r1, r0 + ldrb r0, [r1] + lsls r0, r0, #8 + orrs r4, r0 + ldr r0, _081BDA28 + movs r1, #0xa + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _081BDA2C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r7, [r1, #8] + strh r4, [r1, #0xa] + ldrb r0, [r6] + strh r0, [r1, #0xc] + ldr r1, _081BDA30 + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081BDA34 + str r1, [r0] +_081BDA20: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081BDA28: .4byte 0x081BAF39 +_081BDA2C: .4byte 0x03005B60 +_081BDA30: .4byte 0x03005AC0 +_081BDA34: .4byte 0x08057069 + thumb_func_end PlayerPartnerHandleExpUpdate + + thumb_func_start PlayerPartnerHandleStatusIconUpdate +PlayerPartnerHandleStatusIconUpdate: @ 0x081BDA38 + push {r4, lr} + ldr r4, _081BDA94 + ldrb r0, [r4] + bl mplay_80342A4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081BDA8C + ldr r0, _081BDA98 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + ldr r2, _081BDA9C + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _081BDAA0 + adds r1, r1, r2 + movs r2, #9 + bl UpdateHealthboxAttribute + ldrb r2, [r4] + ldr r0, _081BDAA4 + ldr r0, [r0] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r1, _081BDAA8 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081BDAAC + str r1, [r0] +_081BDA8C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081BDA94: .4byte 0x02023D08 +_081BDA98: .4byte 0x03005AD0 +_081BDA9C: .4byte 0x02023D12 +_081BDAA0: .4byte 0x02024190 +_081BDAA4: .4byte 0x02024174 +_081BDAA8: .4byte 0x03005AC0 +_081BDAAC: .4byte 0x081BB8A1 + thumb_func_end PlayerPartnerHandleStatusIconUpdate + + thumb_func_start PlayerPartnerHandleStatusAnimation +PlayerPartnerHandleStatusAnimation: @ 0x081BDAB0 + push {r4, r5, lr} + ldr r5, _081BDB08 + ldrb r0, [r5] + bl mplay_80342A4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081BDB00 + ldr r4, _081BDB0C + ldrb r3, [r5] + lsls r3, r3, #9 + adds r0, r4, #1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, #2 + adds r1, r3, r1 + ldrb r1, [r1] + adds r2, r4, #3 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, r2, #8 + orrs r1, r2 + adds r2, r4, #4 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, r2, #0x10 + orrs r1, r2 + adds r4, #5 + adds r3, r3, r4 + ldrb r2, [r3] + lsls r2, r2, #0x18 + orrs r1, r2 + bl InitAndLaunchChosenStatusAnimation + ldr r1, _081BDB10 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081BDB14 + str r1, [r0] +_081BDB00: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081BDB08: .4byte 0x02023D08 +_081BDB0C: .4byte 0x02022D08 +_081BDB10: .4byte 0x03005AC0 +_081BDB14: .4byte 0x081BB8A1 + thumb_func_end PlayerPartnerHandleStatusAnimation + + thumb_func_start PlayerPartnerHandleStatusXor +PlayerPartnerHandleStatusXor: @ 0x081BDB18 + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerPartnerHandleStatusXor + + thumb_func_start PlayerPartnerHandleDataTransfer +PlayerPartnerHandleDataTransfer: @ 0x081BDB24 + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerPartnerHandleDataTransfer + + thumb_func_start PlayerPartnerHandleDMA3Transfer +PlayerPartnerHandleDMA3Transfer: @ 0x081BDB30 + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerPartnerHandleDMA3Transfer + + thumb_func_start PlayerPartnerHandlePlayBGM +PlayerPartnerHandlePlayBGM: @ 0x081BDB3C + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerPartnerHandlePlayBGM + + thumb_func_start PlayerPartnerHandleCmd32 +PlayerPartnerHandleCmd32: @ 0x081BDB48 + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerPartnerHandleCmd32 + + thumb_func_start PlayerPartnerHandleTwoReturnValues +PlayerPartnerHandleTwoReturnValues: @ 0x081BDB54 + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerPartnerHandleTwoReturnValues + + thumb_func_start PlayerPartnerHandleChosenMonReturnValue +PlayerPartnerHandleChosenMonReturnValue: @ 0x081BDB60 + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerPartnerHandleChosenMonReturnValue + + thumb_func_start PlayerPartnerHandleOneReturnValue +PlayerPartnerHandleOneReturnValue: @ 0x081BDB6C + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerPartnerHandleOneReturnValue + + thumb_func_start PlayerPartnerHandleOneReturnValue_Duplicate +PlayerPartnerHandleOneReturnValue_Duplicate: @ 0x081BDB78 + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerPartnerHandleOneReturnValue_Duplicate + + thumb_func_start PlayerPartnerHandleCmd37 +PlayerPartnerHandleCmd37: @ 0x081BDB84 + push {lr} + ldr r2, _081BDB9C + ldrb r1, [r2] + movs r0, #0x80 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_081BDB9C: .4byte 0x020229C0 + thumb_func_end PlayerPartnerHandleCmd37 + + thumb_func_start PlayerPartnerHandleCmd38 +PlayerPartnerHandleCmd38: @ 0x081BDBA0 + push {lr} + ldr r3, _081BDBCC + ldr r1, _081BDBD0 + ldr r0, _081BDBD4 + ldrb r0, [r0] + lsls r0, r0, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + ldrb r2, [r3] + movs r0, #0x80 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_081BDBCC: .4byte 0x020229C0 +_081BDBD0: .4byte 0x02022D08 +_081BDBD4: .4byte 0x02023D08 + thumb_func_end PlayerPartnerHandleCmd38 + + thumb_func_start PlayerPartnerHandleCmd39 +PlayerPartnerHandleCmd39: @ 0x081BDBD8 + push {lr} + ldr r2, _081BDBEC + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_081BDBEC: .4byte 0x020229C0 + thumb_func_end PlayerPartnerHandleCmd39 + + thumb_func_start PlayerPartnerHandleCmd40 +PlayerPartnerHandleCmd40: @ 0x081BDBF0 + push {lr} + ldr r3, _081BDC14 + ldr r1, [r3] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1f + movs r0, #1 + eors r1, r0 + lsls r1, r1, #7 + ldrb r2, [r3] + movs r0, #0x7f + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_081BDC14: .4byte 0x020229C0 + thumb_func_end PlayerPartnerHandleCmd40 + + thumb_func_start PlayerPartnerHandleHitAnimation +PlayerPartnerHandleHitAnimation: @ 0x081BDC18 + push {r4, lr} + ldr r3, _081BDC40 + ldr r2, _081BDC44 + ldr r4, _081BDC48 + ldrb r0, [r4] + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + bge _081BDC4C + bl PlayerPartnerBufferExecCompleted + b _081BDC76 + .align 2, 0 +_081BDC40: .4byte 0x020205AC +_081BDC44: .4byte 0x02023E88 +_081BDC48: .4byte 0x02023D08 +_081BDC4C: + ldr r1, _081BDC7C + movs r0, #1 + strb r0, [r1] + ldrb r0, [r4] + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r1, #0 + strh r1, [r0, #0x30] + ldrb r0, [r4] + bl DoHitAnimHealthboxEffect + ldr r1, _081BDC80 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081BDC84 + str r1, [r0] +_081BDC76: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081BDC7C: .4byte 0x0202415D +_081BDC80: .4byte 0x03005AC0 +_081BDC84: .4byte 0x081BB54D + thumb_func_end PlayerPartnerHandleHitAnimation + + thumb_func_start PlayerPartnerHandleCmd42 +PlayerPartnerHandleCmd42: @ 0x081BDC88 + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerPartnerHandleCmd42 + + thumb_func_start PlayerPartnerHandlePlaySE +PlayerPartnerHandlePlaySE: @ 0x081BDC94 + push {r4, lr} + ldr r4, _081BDCD0 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + movs r3, #0x3f + cmp r0, #0 + bne _081BDCA8 + movs r3, #0xc0 +_081BDCA8: + ldr r2, _081BDCD4 + ldrb r1, [r4] + lsls r1, r1, #9 + adds r0, r2, #1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, #2 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + lsls r1, r3, #0x18 + asrs r1, r1, #0x18 + bl PlaySE12WithPanning + bl PlayerPartnerBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081BDCD0: .4byte 0x02023D08 +_081BDCD4: .4byte 0x02022D08 + thumb_func_end PlayerPartnerHandlePlaySE + + thumb_func_start PlayerPartnerHandlePlayFanfareOrBGM +PlayerPartnerHandlePlayFanfareOrBGM: @ 0x081BDCD8 + push {r4, r5, lr} + ldr r4, _081BDD0C + ldr r5, _081BDD10 + ldrb r0, [r5] + lsls r3, r0, #9 + adds r0, r4, #3 + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, #0 + beq _081BDD14 + bl BattleStopLowHpSound + ldrb r1, [r5] + lsls r1, r1, #9 + adds r0, r4, #1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, r4, #2 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + bl PlayBGM + b _081BDD28 + .align 2, 0 +_081BDD0C: .4byte 0x02022D08 +_081BDD10: .4byte 0x02023D08 +_081BDD14: + adds r0, r4, #1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, #2 + adds r1, r3, r1 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + bl PlayFanfare +_081BDD28: + bl PlayerPartnerBufferExecCompleted + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerPartnerHandlePlayFanfareOrBGM + + thumb_func_start PlayerPartnerHandleFaintingCry +PlayerPartnerHandleFaintingCry: @ 0x081BDD34 + push {lr} + ldr r1, _081BDD68 + ldr r0, _081BDD6C + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081BDD70 + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x19 + rsbs r1, r1, #0 + movs r2, #5 + bl PlayCry3 + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_081BDD68: .4byte 0x02023D12 +_081BDD6C: .4byte 0x02023D08 +_081BDD70: .4byte 0x02024190 + thumb_func_end PlayerPartnerHandleFaintingCry + + thumb_func_start PlayerPartnerHandleIntroSlide +PlayerPartnerHandleIntroSlide: @ 0x081BDD74 + push {lr} + ldr r1, _081BDD9C + ldr r0, _081BDDA0 + ldrb r0, [r0] + lsls r0, r0, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + bl HandleIntroSlide + ldr r2, _081BDDA4 + ldrh r0, [r2] + movs r1, #1 + orrs r0, r1 + strh r0, [r2] + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_081BDD9C: .4byte 0x02022D08 +_081BDDA0: .4byte 0x02023D08 +_081BDDA4: .4byte 0x020240A0 + thumb_func_end PlayerPartnerHandleIntroSlide + + thumb_func_start PlayerPartnerHandleIntroTrainerBallThrow +PlayerPartnerHandleIntroTrainerBallThrow: @ 0x081BDDA8 + push {r4, r5, r6, lr} + ldr r6, _081BDE70 + ldr r5, _081BDE74 + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _081BDE78 + adds r0, r0, r4 + bl SetSpritePrimaryCoordsFromSecondaryCoords + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0x32 + strh r1, [r0, #0x2e] + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _081BDE7C + strh r1, [r0, #0x32] + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r0, #0x22] + strh r1, [r0, #0x36] + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _081BDE80 + str r1, [r0] + ldrb r2, [r5] + adds r0, r2, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + strh r2, [r0, #0x38] + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _081BDE84 + bl StoreSpriteCallbackInData6 + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #1 + bl StartSpriteAnim + ldr r0, _081BDE88 + bl AllocSpritePalette + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r2, _081BDE8C + ldrh r1, [r2] + ldr r0, _081BDE90 + cmp r1, r0 + bne _081BDE98 + ldr r0, _081BDE94 + ldr r0, [r0, #0x38] + lsls r4, r4, #4 + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r4, r2 + movs r2, #0x20 + bl LoadCompressedPalette + b _081BDEB6 + .align 2, 0 +_081BDE70: .4byte 0x02023E88 +_081BDE74: .4byte 0x02023D08 +_081BDE78: .4byte 0x020205AC +_081BDE7C: .4byte 0x0000FFD8 +_081BDE80: .4byte 0x080A67B5 +_081BDE84: .4byte 0x0805C81D +_081BDE88: .4byte 0x0000D6F9 +_081BDE8C: .4byte 0x0203886E +_081BDE90: .4byte 0x00000C03 +_081BDE94: .4byte 0x082D961C +_081BDE98: + ldrh r0, [r2] + bl GetFrontierTrainerFrontSpriteId + lsls r0, r0, #0x18 + ldr r1, _081BDF38 + lsrs r0, r0, #0x15 + adds r0, r0, r1 + ldr r0, [r0] + lsls r4, r4, #4 + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r4, r2 + movs r2, #0x20 + bl LoadCompressedPalette +_081BDEB6: + ldr r2, _081BDF3C + ldr r1, _081BDF40 + ldr r5, _081BDF44 + ldrb r0, [r5] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r4 + strb r0, [r1, #5] + ldr r0, _081BDF48 + movs r1, #5 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _081BDF4C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r4 + ldrb r0, [r5] + strh r0, [r1, #8] + ldr r3, _081BDF50 + ldr r0, [r3] + ldrb r2, [r5] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081BDF1A + ldr r0, _081BDF54 + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r4 + ldr r1, _081BDF58 + str r1, [r0] +_081BDF1A: + ldr r0, [r3] + ldr r2, [r0, #8] + ldrb r0, [r2, #9] + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #9] + ldr r1, _081BDF5C + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081BDF60 + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081BDF38: .4byte 0x082D91CC +_081BDF3C: .4byte 0x020205AC +_081BDF40: .4byte 0x02023E88 +_081BDF44: .4byte 0x02023D08 +_081BDF48: .4byte 0x081BDF65 +_081BDF4C: .4byte 0x03005B60 +_081BDF50: .4byte 0x02024174 +_081BDF54: .4byte 0x02024158 +_081BDF58: .4byte 0x0807352D +_081BDF5C: .4byte 0x03005AC0 +_081BDF60: .4byte 0x081BAA8D + thumb_func_end PlayerPartnerHandleIntroTrainerBallThrow + + thumb_func_start sub_081BDF64 +sub_081BDF64: @ 0x081BDF64 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r1, _081BDF8C + lsls r0, r0, #2 + add r0, r8 + lsls r0, r0, #3 + adds r1, r0, r1 + ldrh r2, [r1, #0xa] + movs r3, #0xa + ldrsh r0, [r1, r3] + cmp r0, #0x17 + bgt _081BDF90 + adds r0, r2, #1 + strh r0, [r1, #0xa] + b _081BE04C + .align 2, 0 +_081BDF8C: .4byte 0x03005B60 +_081BDF90: + ldr r7, _081BDFD0 + ldrb r0, [r7] + mov sb, r0 + ldrh r0, [r1, #8] + strb r0, [r7] + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081BDFB0 + ldr r0, _081BDFD4 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _081BDFE0 +_081BDFB0: + ldr r0, _081BDFD8 + ldrb r1, [r7] + lsls r2, r1, #9 + adds r0, #1 + adds r2, r2, r0 + ldr r0, _081BDFDC + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + strb r0, [r2] + ldrb r0, [r7] + movs r1, #0 + bl sub_081BCD80 + b _081BE034 + .align 2, 0 +_081BDFD0: .4byte 0x02023D08 +_081BDFD4: .4byte 0x02022C90 +_081BDFD8: .4byte 0x02022D08 +_081BDFDC: .4byte 0x02023D12 +_081BDFE0: + ldr r4, _081BE058 + ldrb r0, [r7] + lsls r1, r0, #9 + adds r4, #1 + adds r1, r1, r4 + ldr r5, _081BE05C + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + movs r1, #0 + bl sub_081BCD80 + ldrb r0, [r7] + movs r6, #2 + eors r0, r6 + strb r0, [r7] + ldrb r0, [r7] + lsls r1, r0, #9 + adds r1, r1, r4 + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r0, [r0] + strb r0, [r1] + ldrb r1, [r7] + lsls r0, r1, #1 + adds r0, r0, r5 + ldrh r2, [r0] + movs r0, #0x64 + muls r0, r2, r0 + ldr r2, _081BE060 + adds r0, r0, r2 + bl BattleLoadPlayerMonSpriteGfx + ldrb r0, [r7] + movs r1, #0 + bl sub_081BCD80 + ldrb r0, [r7] + eors r0, r6 + strb r0, [r7] +_081BE034: + ldr r1, _081BE064 + ldr r2, _081BE068 + ldrb r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081BE06C + str r1, [r0] + mov r3, sb + strb r3, [r2] + mov r0, r8 + bl DestroyTask +_081BE04C: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081BE058: .4byte 0x02022D08 +_081BE05C: .4byte 0x02023D12 +_081BE060: .4byte 0x02024190 +_081BE064: .4byte 0x03005AC0 +_081BE068: .4byte 0x02023D08 +_081BE06C: .4byte 0x081BACC9 + thumb_func_end sub_081BDF64 + + thumb_func_start PlayerPartnerHandleDrawPartyStatusSummary +PlayerPartnerHandleDrawPartyStatusSummary: @ 0x081BE070 + push {r4, r5, r6, lr} + ldr r1, _081BE098 + ldr r0, _081BE09C + ldrb r2, [r0] + lsls r0, r2, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _081BE0A0 + adds r0, r2, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081BE0A0 + bl PlayerPartnerBufferExecCompleted + b _081BE114 + .align 2, 0 +_081BE098: .4byte 0x02022D08 +_081BE09C: .4byte 0x02023D08 +_081BE0A0: + ldr r6, _081BE11C + ldr r0, [r6] + ldr r5, _081BE120 + ldrb r1, [r5] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r2, #1 + orrs r1, r2 + strb r1, [r0] + ldrb r0, [r5] + lsls r3, r0, #9 + ldr r4, _081BE124 + adds r1, r3, r4 + subs r2, r4, #3 + adds r2, r3, r2 + ldrb r2, [r2] + subs r4, #2 + adds r3, r3, r4 + ldrb r3, [r3] + bl CreatePartyStatusSummarySprites + ldr r2, _081BE128 + ldrb r1, [r5] + adds r1, r1, r2 + movs r3, #0 + strb r0, [r1] + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strb r3, [r0, #5] + ldrb r2, [r5] + lsls r0, r2, #9 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0 + beq _081BE108 + ldr r0, [r6] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + movs r1, #0x5d + strb r1, [r0, #5] +_081BE108: + ldr r0, _081BE12C + ldrb r1, [r5] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, _081BE130 + str r0, [r1] +_081BE114: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081BE11C: .4byte 0x02024174 +_081BE120: .4byte 0x02023D08 +_081BE124: .4byte 0x02022D0C +_081BE128: .4byte 0x02024158 +_081BE12C: .4byte 0x03005AC0 +_081BE130: .4byte 0x081BE135 + thumb_func_end PlayerPartnerHandleDrawPartyStatusSummary + + thumb_func_start sub_081BE134 +sub_081BE134: @ 0x081BE134 + push {r4, lr} + ldr r4, _081BE174 + ldr r0, [r4] + ldr r3, _081BE178 + ldrb r1, [r3] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #5] + adds r2, r1, #1 + strb r2, [r0, #5] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0x5c + bls _081BE16C + ldr r0, [r4] + ldrb r1, [r3] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0 + strb r1, [r0, #5] + bl PlayerPartnerBufferExecCompleted +_081BE16C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081BE174: .4byte 0x02024174 +_081BE178: .4byte 0x02023D08 + thumb_func_end sub_081BE134 + + thumb_func_start PlayerPartnerHandleHidePartyStatusSummary +PlayerPartnerHandleHidePartyStatusSummary: @ 0x081BE17C + push {lr} + ldr r0, _081BE1B8 + ldr r1, [r0] + ldr r0, _081BE1BC + ldrb r3, [r0] + ldr r1, [r1, #4] + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081BE1AE + ldr r2, _081BE1C0 + ldr r0, _081BE1C4 + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldr r1, _081BE1C8 + str r1, [r0] +_081BE1AE: + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_081BE1B8: .4byte 0x02024174 +_081BE1BC: .4byte 0x02023D08 +_081BE1C0: .4byte 0x03005B60 +_081BE1C4: .4byte 0x02024158 +_081BE1C8: .4byte 0x0807352D + thumb_func_end PlayerPartnerHandleHidePartyStatusSummary + + thumb_func_start PlayerPartnerHandleEndBounceEffect +PlayerPartnerHandleEndBounceEffect: @ 0x081BE1CC + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerPartnerHandleEndBounceEffect + + thumb_func_start PlayerPartnerHandleSpriteInvisibility +PlayerPartnerHandleSpriteInvisibility: @ 0x081BE1D8 + push {r4, lr} + ldr r4, _081BE228 + ldrb r0, [r4] + bl IsBattlerSpritePresent + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081BE21E + ldr r3, _081BE22C + ldr r0, _081BE230 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r0, _081BE234 + lsls r1, r1, #9 + adds r0, #1 + adds r1, r1, r0 + adds r2, #0x3e + movs r0, #1 + ldrb r1, [r1] + ands r1, r0 + lsls r1, r1, #2 + ldrb r3, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4] + bl CopyBattleSpriteInvisibility +_081BE21E: + bl PlayerPartnerBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081BE228: .4byte 0x02023D08 +_081BE22C: .4byte 0x020205AC +_081BE230: .4byte 0x02023E88 +_081BE234: .4byte 0x02022D08 + thumb_func_end PlayerPartnerHandleSpriteInvisibility + + thumb_func_start PlayerPartnerHandleBattleAnimation +PlayerPartnerHandleBattleAnimation: @ 0x081BE238 + push {r4, r5, r6, lr} + sub sp, #4 + ldr r6, _081BE27C + ldrb r0, [r6] + bl mplay_80342A4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081BE290 + ldr r5, _081BE280 + ldrb r2, [r6] + lsls r1, r2, #9 + adds r0, r5, #1 + adds r0, r1, r0 + ldrb r3, [r0] + adds r0, r5, #2 + adds r0, r1, r0 + ldrb r4, [r0] + adds r5, #3 + adds r1, r1, r5 + ldrb r0, [r1] + lsls r0, r0, #8 + orrs r4, r0 + str r4, [sp] + adds r0, r2, #0 + adds r1, r2, #0 + bl TryHandleLaunchBattleTableAnimation + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081BE284 + bl PlayerPartnerBufferExecCompleted + b _081BE290 + .align 2, 0 +_081BE27C: .4byte 0x02023D08 +_081BE280: .4byte 0x02022D08 +_081BE284: + ldr r0, _081BE298 + ldrb r1, [r6] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, _081BE29C + str r0, [r1] +_081BE290: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081BE298: .4byte 0x03005AC0 +_081BE29C: .4byte 0x081BB8D1 + thumb_func_end PlayerPartnerHandleBattleAnimation + + thumb_func_start PlayerPartnerHandleLinkStandbyMsg +PlayerPartnerHandleLinkStandbyMsg: @ 0x081BE2A0 + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerPartnerHandleLinkStandbyMsg + + thumb_func_start PlayerPartnerHandleResetActionMoveSelection +PlayerPartnerHandleResetActionMoveSelection: @ 0x081BE2AC + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerPartnerHandleResetActionMoveSelection + + thumb_func_start PlayerPartnerHandleCmd55 +PlayerPartnerHandleCmd55: @ 0x081BE2B8 + push {r4, lr} + ldr r2, _081BE2F0 + ldr r1, _081BE2F4 + ldr r4, _081BE2F8 + ldrb r0, [r4] + lsls r0, r0, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r2] + movs r0, #5 + bl FadeOutMapMusic + movs r0, #3 + bl BeginFastPaletteFade + bl PlayerPartnerBufferExecCompleted + ldr r1, _081BE2FC + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081BE300 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081BE2F0: .4byte 0x02023FDE +_081BE2F4: .4byte 0x02022D08 +_081BE2F8: .4byte 0x02023D08 +_081BE2FC: .4byte 0x03005AC0 +_081BE300: .4byte 0x080583C1 + thumb_func_end PlayerPartnerHandleCmd55 + + thumb_func_start nullsub_77 +nullsub_77: @ 0x081BE304 + bx lr + .align 2, 0 + thumb_func_end nullsub_77 + diff --git a/asm/battle_controller_recorded_opponent.s b/asm/battle_controller_recorded_opponent.s new file mode 100644 index 0000000..2fb6498 --- /dev/null +++ b/asm/battle_controller_recorded_opponent.s @@ -0,0 +1,4867 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start RecordedOpponentBufferExecCompleted +RecordedOpponentBufferExecCompleted: @ 0x08186ED8 + push {r4, lr} + sub sp, #4 + ldr r1, _08186F18 + ldr r4, _08186F1C + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08186F20 + str r1, [r0] + ldr r0, _08186F24 + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _08186F2C + bl GetMultiplayerId + mov r1, sp + strb r0, [r1] + movs r0, #2 + movs r1, #4 + mov r2, sp + bl PrepareBufferDataTransferLink + ldr r1, _08186F28 + ldrb r0, [r4] + lsls r0, r0, #9 + adds r0, r0, r1 + movs r1, #0x38 + strb r1, [r0] + b _08186F3E + .align 2, 0 +_08186F18: .4byte 0x03005AC0 +_08186F1C: .4byte 0x02023D08 +_08186F20: .4byte 0x08186235 +_08186F24: .4byte 0x02022C90 +_08186F28: .4byte 0x02022D08 +_08186F2C: + ldr r2, _08186F48 + ldr r1, _08186F4C + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + ldr r0, [r2] + bics r0, r1 + str r0, [r2] +_08186F3E: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08186F48: .4byte 0x02023D0C +_08186F4C: .4byte 0x082FACB4 + thumb_func_end RecordedOpponentBufferExecCompleted + + thumb_func_start RecordedOpponentHandleGetMonData +RecordedOpponentHandleGetMonData: @ 0x08186F50 + push {r4, r5, r6, lr} + sub sp, #0x100 + movs r6, #0 + ldr r1, _08186F7C + ldr r0, _08186F80 + ldrb r2, [r0] + lsls r0, r2, #9 + adds r1, #2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, #0 + bne _08186F88 + ldr r0, _08186F84 + lsls r1, r2, #1 + adds r1, r1, r0 + ldrb r0, [r1] + mov r1, sp + bl CopyRecordedOpponentMonData + adds r6, r0, #0 + b _08186FAA + .align 2, 0 +_08186F7C: .4byte 0x02022D08 +_08186F80: .4byte 0x02023D08 +_08186F84: .4byte 0x02023D12 +_08186F88: + ldrb r4, [r1] + movs r5, #0 +_08186F8C: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _08186FA2 + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + mov r2, sp + adds r1, r2, r6 + bl CopyRecordedOpponentMonData + adds r6, r6, r0 +_08186FA2: + lsrs r4, r4, #1 + adds r5, #1 + cmp r5, #5 + ble _08186F8C +_08186FAA: + lsls r1, r6, #0x10 + lsrs r1, r1, #0x10 + movs r0, #1 + mov r2, sp + bl BtlController_EmitDataTransfer + bl RecordedOpponentBufferExecCompleted + add sp, #0x100 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedOpponentHandleGetMonData + + thumb_func_start CopyRecordedOpponentMonData +CopyRecordedOpponentMonData: @ 0x08186FC4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x90 + adds r7, r1, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r6, #0 + ldr r2, _08186FF8 + ldr r3, _08186FFC + ldrb r0, [r3] + lsls r0, r0, #9 + adds r1, r2, #1 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0x3b + bls _08186FEE + bl _0818775A +_08186FEE: + lsls r0, r0, #2 + ldr r1, _08187000 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08186FF8: .4byte 0x02022D08 +_08186FFC: .4byte 0x02023D08 +_08187000: .4byte 0x08187004 +_08187004: @ jump table + .4byte _081870F4 @ case 0 + .4byte _08187318 @ case 1 + .4byte _08187328 @ case 2 + .4byte _08187338 @ case 3 + .4byte _081873A0 @ case 4 + .4byte _081873A0 @ case 5 + .4byte _081873A0 @ case 6 + .4byte _081873A0 @ case 7 + .4byte _081873BC @ case 8 + .4byte _081873F8 @ case 9 + .4byte _081873F8 @ case 10 + .4byte _081873F8 @ case 11 + .4byte _081873F8 @ case 12 + .4byte _0818775A @ case 13 + .4byte _0818775A @ case 14 + .4byte _0818775A @ case 15 + .4byte _0818775A @ case 16 + .4byte _08187414 @ case 17 + .4byte _08187424 @ case 18 + .4byte _08187454 @ case 19 + .4byte _08187464 @ case 20 + .4byte _08187474 @ case 21 + .4byte _08187484 @ case 22 + .4byte _08187494 @ case 23 + .4byte _081874A4 @ case 24 + .4byte _081874B4 @ case 25 + .4byte _081874C4 @ case 26 + .4byte _081874D4 @ case 27 + .4byte _081874E4 @ case 28 + .4byte _081874F4 @ case 29 + .4byte _08187504 @ case 30 + .4byte _08187514 @ case 31 + .4byte _08187564 @ case 32 + .4byte _08187574 @ case 33 + .4byte _08187584 @ case 34 + .4byte _08187594 @ case 35 + .4byte _081875A4 @ case 36 + .4byte _081875B4 @ case 37 + .4byte _081875C4 @ case 38 + .4byte _081875D4 @ case 39 + .4byte _081875E4 @ case 40 + .4byte _08187618 @ case 41 + .4byte _08187628 @ case 42 + .4byte _08187638 @ case 43 + .4byte _08187648 @ case 44 + .4byte _08187658 @ case 45 + .4byte _08187668 @ case 46 + .4byte _08187678 @ case 47 + .4byte _08187688 @ case 48 + .4byte _081876A8 @ case 49 + .4byte _081876B8 @ case 50 + .4byte _081876C8 @ case 51 + .4byte _081876D8 @ case 52 + .4byte _081876E8 @ case 53 + .4byte _081876F8 @ case 54 + .4byte _08187708 @ case 55 + .4byte _08187718 @ case 56 + .4byte _08187728 @ case 57 + .4byte _08187738 @ case 58 + .4byte _08187748 @ case 59 +_081870F4: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _08187308 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + mov r1, sp + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0xc + bl GetMonData + mov r1, sp + strh r0, [r1, #0x2e] + movs r6, #0 + add r0, sp, #0x24 + mov sb, r0 + movs r1, #0x3b + add r1, sp + mov sl, r1 + mov r2, sp + adds r2, #0x2b + str r2, [sp, #0x80] + mov r0, sp + adds r0, #0x2a + str r0, [sp, #0x7c] + mov r1, sp + adds r1, #0x68 + str r1, [sp, #0x8c] + adds r2, #5 + str r2, [sp, #0x84] + adds r0, #0x12 + str r0, [sp, #0x88] + mov r8, r4 + add r4, sp, #0xc +_08187140: + adds r1, r6, #0 + adds r1, #0xd + mov r0, r8 + bl GetMonData + strh r0, [r4] + adds r1, r6, #0 + adds r1, #0x11 + mov r0, r8 + bl GetMonData + mov r2, sb + adds r1, r2, r6 + strb r0, [r1] + adds r4, #2 + adds r6, #1 + cmp r6, #3 + ble _08187140 + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _08187308 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x15 + bl GetMonData + mov r1, sl + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x20 + bl GetMonData + ldr r2, [sp, #0x80] + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0x19 + bl GetMonData + str r0, [sp, #0x44] + adds r0, r4, #0 + movs r1, #0x27 + bl GetMonData + mov r3, sp + movs r5, #0x1f + ands r0, r5 + ldrb r2, [r3, #0x14] + movs r1, #0x20 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x14] + adds r0, r4, #0 + movs r1, #0x28 + bl GetMonData + mov r3, sp + movs r6, #0x1f + ands r0, r6 + lsls r0, r0, #5 + ldrh r2, [r3, #0x14] + ldr r1, _0818730C + ands r1, r2 + orrs r1, r0 + strh r1, [r3, #0x14] + adds r0, r4, #0 + movs r1, #0x29 + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, r0, #2 + ldrb r2, [r3, #0x15] + movs r1, #0x7d + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x15] + adds r0, r4, #0 + movs r1, #0x2a + bl GetMonData + movs r1, #0x1f + ands r1, r0 + lsls r1, r1, #0xf + ldr r0, [sp, #0x14] + ldr r2, _08187310 + ands r0, r2 + orrs r0, r1 + str r0, [sp, #0x14] + adds r0, r4, #0 + movs r1, #0x2b + bl GetMonData + mov r3, sp + ands r0, r6 + lsls r0, r0, #4 + ldrh r2, [r3, #0x16] + ldr r1, _08187314 + ands r1, r2 + orrs r1, r0 + strh r1, [r3, #0x16] + adds r0, r4, #0 + movs r1, #0x2c + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, r0, #1 + ldrb r2, [r3, #0x17] + movs r1, #0x3f + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x17] + adds r0, r4, #0 + movs r1, #0 + bl GetMonData + str r0, [sp, #0x48] + adds r0, r4, #0 + movs r1, #0x37 + bl GetMonData + str r0, [sp, #0x4c] + adds r0, r4, #0 + movs r1, #0x38 + bl GetMonData + ldr r1, [sp, #0x7c] + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + mov r1, sp + strh r0, [r1, #0x28] + adds r0, r4, #0 + movs r1, #0x3a + bl GetMonData + mov r1, sp + strh r0, [r1, #0x2c] + adds r0, r4, #0 + movs r1, #0x3b + bl GetMonData + mov r1, sp + strh r0, [r1, #2] + adds r0, r4, #0 + movs r1, #0x3c + bl GetMonData + mov r1, sp + strh r0, [r1, #4] + adds r0, r4, #0 + movs r1, #0x3d + bl GetMonData + mov r1, sp + strh r0, [r1, #6] + adds r0, r4, #0 + movs r1, #0x3e + bl GetMonData + mov r1, sp + strh r0, [r1, #8] + adds r0, r4, #0 + movs r1, #0x3f + bl GetMonData + mov r1, sp + strh r0, [r1, #0xa] + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + mov r3, sp + movs r1, #1 + ands r0, r1 + lsls r0, r0, #6 + ldrb r2, [r3, #0x17] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x17] + adds r0, r4, #0 + movs r1, #0x2e + bl GetMonData + mov r3, sp + lsls r0, r0, #7 + ldrb r2, [r3, #0x17] + movs r1, #0x7f + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x17] + adds r0, r4, #0 + movs r1, #1 + bl GetMonData + str r0, [sp, #0x54] + adds r0, r4, #0 + movs r1, #2 + ldr r2, [sp, #0x8c] + bl GetMonData + ldr r0, [sp, #0x84] + ldr r1, [sp, #0x8c] + bl StringCopy10 + adds r0, r4, #0 + movs r1, #7 + ldr r2, [sp, #0x88] + bl GetMonData + mov r2, sp + movs r6, #0 +_081872F8: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, #1 + cmp r6, #0x57 + bls _081872F8 + b _0818775A + .align 2, 0 +_08187308: .4byte 0x020243E8 +_0818730C: .4byte 0xFFFFFC1F +_08187310: .4byte 0xFFF07FFF +_08187314: .4byte 0xFFFFFE0F +_08187318: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187324 + adds r0, r0, r1 + movs r1, #0xb + b _08187692 + .align 2, 0 +_08187324: .4byte 0x020243E8 +_08187328: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187334 + adds r0, r0, r1 + movs r1, #0xc + b _08187692 + .align 2, 0 +_08187334: .4byte 0x020243E8 +_08187338: + movs r6, #0 + add r2, sp, #0x58 + mov sb, r2 + add r0, sp, #0x60 + mov sl, r0 + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _0818739C + adds r4, r1, r0 + mov r8, sb +_0818734E: + adds r1, r6, #0 + adds r1, #0xd + adds r0, r4, #0 + bl GetMonData + mov r1, r8 + strh r0, [r1] + adds r1, r6, #0 + adds r1, #0x11 + adds r0, r4, #0 + bl GetMonData + mov r2, sl + adds r1, r2, r6 + strb r0, [r1] + movs r0, #2 + add r8, r0 + adds r6, #1 + cmp r6, #3 + ble _0818734E + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818739C + adds r0, r0, r1 + movs r1, #0x15 + bl GetMonData + mov r1, sb + strb r0, [r1, #0xc] + mov r2, sb + movs r6, #0 +_0818738C: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, #1 + cmp r6, #0xf + bls _0818738C + b _0818775A + .align 2, 0 +_0818739C: .4byte 0x020243E8 +_081873A0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081873B8 + adds r0, r0, r1 + ldrb r1, [r3] + lsls r1, r1, #9 + adds r2, #1 + adds r1, r1, r2 + ldrb r1, [r1] + adds r1, #9 + b _08187692 + .align 2, 0 +_081873B8: .4byte 0x020243E8 +_081873BC: + movs r6, #0 + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r2, _081873F4 + mov r8, r2 +_081873C8: + adds r1, r6, #0 + adds r1, #0x11 + mov r2, r8 + adds r0, r4, r2 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, #1 + cmp r6, #3 + ble _081873C8 + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081873F4 + adds r0, r0, r1 + movs r1, #0x15 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, #1 + b _0818775A + .align 2, 0 +_081873F4: .4byte 0x020243E8 +_081873F8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187410 + adds r0, r0, r1 + ldrb r1, [r3] + lsls r1, r1, #9 + adds r2, #1 + adds r1, r1, r2 + ldrb r1, [r1] + adds r1, #8 + b _08187752 + .align 2, 0 +_08187410: .4byte 0x020243E8 +_08187414: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187420 + adds r0, r0, r1 + movs r1, #1 + b _0818742E + .align 2, 0 +_08187420: .4byte 0x020243E8 +_08187424: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187450 + adds r0, r0, r1 + movs r1, #0x19 +_0818742E: + bl GetMonData + adds r1, r0, #0 + strb r1, [r7] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + lsrs r0, r0, #8 + strb r0, [r7, #1] + movs r0, #0xff + lsls r0, r0, #0x10 + ands r0, r1 + lsrs r0, r0, #0x10 + strb r0, [r7, #2] + movs r6, #3 + b _0818775A + .align 2, 0 +_08187450: .4byte 0x020243E8 +_08187454: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187460 + adds r0, r0, r1 + movs r1, #0x1a + b _08187752 + .align 2, 0 +_08187460: .4byte 0x020243E8 +_08187464: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187470 + adds r0, r0, r1 + movs r1, #0x1b + b _08187752 + .align 2, 0 +_08187470: .4byte 0x020243E8 +_08187474: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187480 + adds r0, r0, r1 + movs r1, #0x1c + b _08187752 + .align 2, 0 +_08187480: .4byte 0x020243E8 +_08187484: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187490 + adds r0, r0, r1 + movs r1, #0x1d + b _08187752 + .align 2, 0 +_08187490: .4byte 0x020243E8 +_08187494: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081874A0 + adds r0, r0, r1 + movs r1, #0x1e + b _08187752 + .align 2, 0 +_081874A0: .4byte 0x020243E8 +_081874A4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081874B0 + adds r0, r0, r1 + movs r1, #0x1f + b _08187752 + .align 2, 0 +_081874B0: .4byte 0x020243E8 +_081874B4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081874C0 + adds r0, r0, r1 + movs r1, #0x20 + b _08187752 + .align 2, 0 +_081874C0: .4byte 0x020243E8 +_081874C4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081874D0 + adds r0, r0, r1 + movs r1, #0x22 + b _08187752 + .align 2, 0 +_081874D0: .4byte 0x020243E8 +_081874D4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081874E0 + adds r0, r0, r1 + movs r1, #0x23 + b _08187752 + .align 2, 0 +_081874E0: .4byte 0x020243E8 +_081874E4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081874F0 + adds r0, r0, r1 + movs r1, #0x24 + b _08187752 + .align 2, 0 +_081874F0: .4byte 0x020243E8 +_081874F4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187500 + adds r0, r0, r1 + movs r1, #0x25 + b _08187752 + .align 2, 0 +_08187500: .4byte 0x020243E8 +_08187504: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187510 + adds r0, r0, r1 + movs r1, #0x26 + b _08187752 + .align 2, 0 +_08187510: .4byte 0x020243E8 +_08187514: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _08187560 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x27 + bl GetMonData + strb r0, [r7] + adds r0, r4, #0 + movs r1, #0x28 + bl GetMonData + strb r0, [r7, #1] + adds r0, r4, #0 + movs r1, #0x29 + bl GetMonData + strb r0, [r7, #2] + adds r0, r4, #0 + movs r1, #0x2a + bl GetMonData + strb r0, [r7, #3] + adds r0, r4, #0 + movs r1, #0x2b + bl GetMonData + strb r0, [r7, #4] + adds r0, r4, #0 + movs r1, #0x2c + bl GetMonData + strb r0, [r7, #5] + movs r6, #6 + b _0818775A + .align 2, 0 +_08187560: .4byte 0x020243E8 +_08187564: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187570 + adds r0, r0, r1 + movs r1, #0x27 + b _08187752 + .align 2, 0 +_08187570: .4byte 0x020243E8 +_08187574: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187580 + adds r0, r0, r1 + movs r1, #0x28 + b _08187752 + .align 2, 0 +_08187580: .4byte 0x020243E8 +_08187584: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187590 + adds r0, r0, r1 + movs r1, #0x29 + b _08187752 + .align 2, 0 +_08187590: .4byte 0x020243E8 +_08187594: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081875A0 + adds r0, r0, r1 + movs r1, #0x2a + b _08187752 + .align 2, 0 +_081875A0: .4byte 0x020243E8 +_081875A4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081875B0 + adds r0, r0, r1 + movs r1, #0x2b + b _08187752 + .align 2, 0 +_081875B0: .4byte 0x020243E8 +_081875B4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081875C0 + adds r0, r0, r1 + movs r1, #0x2c + b _08187752 + .align 2, 0 +_081875C0: .4byte 0x020243E8 +_081875C4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081875D0 + adds r0, r0, r1 + movs r1, #0 + b _081875EE + .align 2, 0 +_081875D0: .4byte 0x020243E8 +_081875D4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081875E0 + adds r0, r0, r1 + movs r1, #9 + b _08187692 + .align 2, 0 +_081875E0: .4byte 0x020243E8 +_081875E4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187614 + adds r0, r0, r1 + movs r1, #0x37 +_081875EE: + bl GetMonData + adds r1, r0, #0 + strb r1, [r7] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + lsrs r0, r0, #8 + strb r0, [r7, #1] + movs r0, #0xff + lsls r0, r0, #0x10 + ands r0, r1 + lsrs r0, r0, #0x10 + strb r0, [r7, #2] + lsrs r0, r1, #0x18 + strb r0, [r7, #3] + movs r6, #4 + b _0818775A + .align 2, 0 +_08187614: .4byte 0x020243E8 +_08187618: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187624 + adds r0, r0, r1 + movs r1, #0x38 + b _08187752 + .align 2, 0 +_08187624: .4byte 0x020243E8 +_08187628: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187634 + adds r0, r0, r1 + movs r1, #0x39 + b _08187692 + .align 2, 0 +_08187634: .4byte 0x020243E8 +_08187638: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187644 + adds r0, r0, r1 + movs r1, #0x3a + b _08187692 + .align 2, 0 +_08187644: .4byte 0x020243E8 +_08187648: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187654 + adds r0, r0, r1 + movs r1, #0x3b + b _08187692 + .align 2, 0 +_08187654: .4byte 0x020243E8 +_08187658: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187664 + adds r0, r0, r1 + movs r1, #0x3c + b _08187692 + .align 2, 0 +_08187664: .4byte 0x020243E8 +_08187668: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187674 + adds r0, r0, r1 + movs r1, #0x3d + b _08187692 + .align 2, 0 +_08187674: .4byte 0x020243E8 +_08187678: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187684 + adds r0, r0, r1 + movs r1, #0x3e + b _08187692 + .align 2, 0 +_08187684: .4byte 0x020243E8 +_08187688: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081876A4 + adds r0, r0, r1 + movs r1, #0x3f +_08187692: + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + strb r0, [r7] + lsrs r0, r0, #8 + strb r0, [r7, #1] + movs r6, #2 + b _0818775A + .align 2, 0 +_081876A4: .4byte 0x020243E8 +_081876A8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081876B4 + adds r0, r0, r1 + movs r1, #0x16 + b _08187752 + .align 2, 0 +_081876B4: .4byte 0x020243E8 +_081876B8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081876C4 + adds r0, r0, r1 + movs r1, #0x17 + b _08187752 + .align 2, 0 +_081876C4: .4byte 0x020243E8 +_081876C8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081876D4 + adds r0, r0, r1 + movs r1, #0x18 + b _08187752 + .align 2, 0 +_081876D4: .4byte 0x020243E8 +_081876D8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081876E4 + adds r0, r0, r1 + movs r1, #0x21 + b _08187752 + .align 2, 0 +_081876E4: .4byte 0x020243E8 +_081876E8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081876F4 + adds r0, r0, r1 + movs r1, #0x2f + b _08187752 + .align 2, 0 +_081876F4: .4byte 0x020243E8 +_081876F8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187704 + adds r0, r0, r1 + movs r1, #0x30 + b _08187752 + .align 2, 0 +_08187704: .4byte 0x020243E8 +_08187708: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187714 + adds r0, r0, r1 + movs r1, #0x32 + b _08187752 + .align 2, 0 +_08187714: .4byte 0x020243E8 +_08187718: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187724 + adds r0, r0, r1 + movs r1, #0x33 + b _08187752 + .align 2, 0 +_08187724: .4byte 0x020243E8 +_08187728: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187734 + adds r0, r0, r1 + movs r1, #0x34 + b _08187752 + .align 2, 0 +_08187734: .4byte 0x020243E8 +_08187738: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187744 + adds r0, r0, r1 + movs r1, #0x35 + b _08187752 + .align 2, 0 +_08187744: .4byte 0x020243E8 +_08187748: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818776C + adds r0, r0, r1 + movs r1, #0x36 +_08187752: + bl GetMonData + strb r0, [r7] + movs r6, #1 +_0818775A: + adds r0, r6, #0 + add sp, #0x90 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0818776C: .4byte 0x020243E8 + thumb_func_end CopyRecordedOpponentMonData + + thumb_func_start RecordedOpponentHandleGetRawMonData +RecordedOpponentHandleGetRawMonData: @ 0x08187770 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedOpponentHandleGetRawMonData + + thumb_func_start RecordedOpponentHandleSetMonData +RecordedOpponentHandleSetMonData: @ 0x0818777C + push {r4, r5, lr} + ldr r1, _081877A0 + ldr r0, _081877A4 + ldrb r2, [r0] + lsls r0, r2, #9 + adds r1, #2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, #0 + bne _081877AC + ldr r0, _081877A8 + lsls r1, r2, #1 + adds r1, r1, r0 + ldrb r0, [r1] + bl SetRecordedOpponentMonData + b _081877CA + .align 2, 0 +_081877A0: .4byte 0x02022D08 +_081877A4: .4byte 0x02023D08 +_081877A8: .4byte 0x02023D12 +_081877AC: + ldrb r4, [r1] + movs r5, #0 +_081877B0: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _081877BE + adds r0, r5, #0 + bl SetRecordedOpponentMonData +_081877BE: + lsrs r4, r4, #1 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #5 + bls _081877B0 +_081877CA: + bl RecordedOpponentBufferExecCompleted + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end RecordedOpponentHandleSetMonData + + thumb_func_start SetRecordedOpponentMonData +SetRecordedOpponentMonData: @ 0x081877D4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x38 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r3, _0818780C + ldrb r0, [r3] + lsls r0, r0, #9 + ldr r2, _08187810 + adds r4, r0, r2 + adds r7, r4, #0 + subs r1, r2, #2 + adds r0, r0, r1 + ldrb r0, [r0] + adds r6, r3, #0 + adds r3, r2, #0 + cmp r0, #0x3b + bls _08187802 + bl _081880E0 +_08187802: + lsls r0, r0, #2 + ldr r1, _08187814 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0818780C: .4byte 0x02023D08 +_08187810: .4byte 0x02022D0B +_08187814: .4byte 0x08187818 +_08187818: @ jump table + .4byte _08187908 @ case 0 + .4byte _08187AA0 @ case 1 + .4byte _08187ABC @ case 2 + .4byte _08187AD8 @ case 3 + .4byte _08187B2C @ case 4 + .4byte _08187B2C @ case 5 + .4byte _08187B2C @ case 6 + .4byte _08187B2C @ case 7 + .4byte _08187B4C @ case 8 + .4byte _08187BB4 @ case 9 + .4byte _08187BB4 @ case 10 + .4byte _08187BB4 @ case 11 + .4byte _08187BB4 @ case 12 + .4byte _081880E0 @ case 13 + .4byte _081880E0 @ case 14 + .4byte _081880E0 @ case 15 + .4byte _081880E0 @ case 16 + .4byte _08187BDC @ case 17 + .4byte _08187BF8 @ case 18 + .4byte _08187C14 @ case 19 + .4byte _08187C30 @ case 20 + .4byte _08187C4C @ case 21 + .4byte _08187C68 @ case 22 + .4byte _08187C84 @ case 23 + .4byte _08187CA0 @ case 24 + .4byte _08187CBC @ case 25 + .4byte _08187CD8 @ case 26 + .4byte _08187CF4 @ case 27 + .4byte _08187D10 @ case 28 + .4byte _08187D2C @ case 29 + .4byte _08187D48 @ case 30 + .4byte _08187D64 @ case 31 + .4byte _08187DD8 @ case 32 + .4byte _08187DF4 @ case 33 + .4byte _08187E10 @ case 34 + .4byte _08187E2C @ case 35 + .4byte _08187E48 @ case 36 + .4byte _08187E64 @ case 37 + .4byte _08187E80 @ case 38 + .4byte _08187E9C @ case 39 + .4byte _08187EB8 @ case 40 + .4byte _08187ED4 @ case 41 + .4byte _08187EF0 @ case 42 + .4byte _08187F0C @ case 43 + .4byte _08187F28 @ case 44 + .4byte _08187F44 @ case 45 + .4byte _08187F60 @ case 46 + .4byte _08187F7C @ case 47 + .4byte _08187F98 @ case 48 + .4byte _08187FB4 @ case 49 + .4byte _08187FD0 @ case 50 + .4byte _08187FEC @ case 51 + .4byte _08188008 @ case 52 + .4byte _08188024 @ case 53 + .4byte _08188040 @ case 54 + .4byte _0818805C @ case 55 + .4byte _08188078 @ case 56 + .4byte _08188094 @ case 57 + .4byte _081880B0 @ case 58 + .4byte _081880CC @ case 59 +_08187908: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _08187A9C + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0xb + adds r2, r7, #0 + bl SetMonData + adds r2, r7, #0 + adds r2, #0x2e + adds r0, r4, #0 + movs r1, #0xc + bl SetMonData + movs r0, #0 + mov r8, r0 + movs r0, #0x3b + adds r0, r0, r7 + mov sl, r0 + adds r0, r7, #0 + adds r0, #0x2b + str r0, [sp, #0x20] + adds r0, #0x19 + str r0, [sp, #0x28] + adds r0, #4 + str r0, [sp, #0x2c] + adds r0, #4 + str r0, [sp, #0x30] + subs r0, #0x22 + str r0, [sp, #0x1c] + subs r0, #2 + str r0, [sp, #0x18] + adds r0, #4 + str r0, [sp, #0x24] + adds r0, r7, #2 + str r0, [sp, #4] + adds r0, r7, #4 + str r0, [sp, #8] + adds r0, r7, #6 + str r0, [sp, #0xc] + adds r0, #2 + str r0, [sp, #0x10] + adds r0, #2 + str r0, [sp, #0x14] + mov sb, r4 + adds r6, r7, #0 + adds r6, #0x24 + adds r4, r7, #0 + adds r4, #0xc +_0818796E: + mov r1, r8 + adds r1, #0xd + mov r0, sb + adds r2, r4, #0 + bl SetMonData + mov r1, r8 + adds r1, #0x11 + mov r0, sb + adds r2, r6, #0 + bl SetMonData + adds r6, #1 + adds r4, #2 + movs r0, #1 + add r8, r0 + mov r0, r8 + cmp r0, #3 + ble _0818796E + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _08187A9C + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x15 + mov r2, sl + bl SetMonData + adds r0, r4, #0 + movs r1, #0x20 + ldr r2, [sp, #0x20] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x19 + ldr r2, [sp, #0x28] + bl SetMonData + ldrb r0, [r7, #0x14] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1b + mov r1, sp + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x27 + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r7, #0x14] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x28 + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r7, #0x15] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x29 + mov r2, sp + bl SetMonData + mov r1, sp + ldr r0, [r7, #0x14] + lsls r0, r0, #0xc + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x2a + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r7, #0x16] + lsls r0, r0, #0x17 + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x2b + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r7, #0x17] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x2c + mov r2, sp + bl SetMonData + adds r0, r4, #0 + movs r1, #0 + ldr r2, [sp, #0x2c] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x37 + ldr r2, [sp, #0x30] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x38 + ldr r2, [sp, #0x1c] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x39 + ldr r2, [sp, #0x18] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3a + ldr r2, [sp, #0x24] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3b + ldr r2, [sp, #4] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3c + ldr r2, [sp, #8] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3d + ldr r2, [sp, #0xc] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3e + ldr r2, [sp, #0x10] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3f + ldr r2, [sp, #0x14] + bl SetMonData + b _081880E0 + .align 2, 0 +_08187A9C: .4byte 0x020243E8 +_08187AA0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187AB8 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0xb + bl SetMonData + b _081880E0 + .align 2, 0 +_08187AB8: .4byte 0x020243E8 +_08187ABC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187AD4 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0xc + bl SetMonData + b _081880E0 + .align 2, 0 +_08187AD4: .4byte 0x020243E8 +_08187AD8: + movs r0, #0 + mov r8, r0 + movs r0, #0xc + adds r0, r0, r4 + mov sb, r0 + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _08187B28 + adds r7, r1, r0 + adds r6, r4, #0 + adds r6, #8 +_08187AF0: + mov r1, r8 + adds r1, #0xd + adds r0, r7, #0 + adds r2, r4, #0 + bl SetMonData + mov r1, r8 + adds r1, #0x11 + adds r0, r7, #0 + adds r2, r6, #0 + bl SetMonData + adds r6, #1 + adds r4, #2 + movs r0, #1 + add r8, r0 + mov r0, r8 + cmp r0, #3 + ble _08187AF0 + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187B28 + adds r0, r0, r1 + movs r1, #0x15 + mov r2, sb + bl SetMonData + b _081880E0 + .align 2, 0 +_08187B28: .4byte 0x020243E8 +_08187B2C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187B44 + adds r0, r0, r1 + ldr r3, _08187B48 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r1, r3, #1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, #9 + b _08187BCA + .align 2, 0 +_08187B44: .4byte 0x020243E8 +_08187B48: .4byte 0x02022D08 +_08187B4C: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _08187BB0 + adds r4, r4, r0 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + adds r0, r4, #0 + movs r1, #0x11 + str r3, [sp, #0x34] + bl SetMonData + ldrb r2, [r6] + lsls r2, r2, #9 + ldr r3, [sp, #0x34] + adds r0, r3, #1 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x12 + bl SetMonData + ldrb r2, [r6] + lsls r2, r2, #9 + ldr r3, [sp, #0x34] + adds r0, r3, #2 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x13 + bl SetMonData + ldrb r2, [r6] + lsls r2, r2, #9 + ldr r3, [sp, #0x34] + adds r0, r3, #3 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x14 + bl SetMonData + ldrb r2, [r6] + lsls r2, r2, #9 + ldr r3, [sp, #0x34] + adds r0, r3, #4 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x15 + bl SetMonData + b _081880E0 + .align 2, 0 +_08187BB0: .4byte 0x020243E8 +_08187BB4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187BD4 + adds r0, r0, r1 + ldr r3, _08187BD8 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r1, r3, #1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, #8 +_08187BCA: + adds r3, #3 + adds r2, r2, r3 + bl SetMonData + b _081880E0 + .align 2, 0 +_08187BD4: .4byte 0x020243E8 +_08187BD8: .4byte 0x02022D08 +_08187BDC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187BF4 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #1 + bl SetMonData + b _081880E0 + .align 2, 0 +_08187BF4: .4byte 0x020243E8 +_08187BF8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187C10 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x19 + bl SetMonData + b _081880E0 + .align 2, 0 +_08187C10: .4byte 0x020243E8 +_08187C14: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187C2C + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x1a + bl SetMonData + b _081880E0 + .align 2, 0 +_08187C2C: .4byte 0x020243E8 +_08187C30: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187C48 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x1b + bl SetMonData + b _081880E0 + .align 2, 0 +_08187C48: .4byte 0x020243E8 +_08187C4C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187C64 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x1c + bl SetMonData + b _081880E0 + .align 2, 0 +_08187C64: .4byte 0x020243E8 +_08187C68: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187C80 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x1d + bl SetMonData + b _081880E0 + .align 2, 0 +_08187C80: .4byte 0x020243E8 +_08187C84: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187C9C + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x1e + bl SetMonData + b _081880E0 + .align 2, 0 +_08187C9C: .4byte 0x020243E8 +_08187CA0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187CB8 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x1f + bl SetMonData + b _081880E0 + .align 2, 0 +_08187CB8: .4byte 0x020243E8 +_08187CBC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187CD4 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x20 + bl SetMonData + b _081880E0 + .align 2, 0 +_08187CD4: .4byte 0x020243E8 +_08187CD8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187CF0 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x22 + bl SetMonData + b _081880E0 + .align 2, 0 +_08187CF0: .4byte 0x020243E8 +_08187CF4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187D0C + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x23 + bl SetMonData + b _081880E0 + .align 2, 0 +_08187D0C: .4byte 0x020243E8 +_08187D10: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187D28 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x24 + bl SetMonData + b _081880E0 + .align 2, 0 +_08187D28: .4byte 0x020243E8 +_08187D2C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187D44 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x25 + bl SetMonData + b _081880E0 + .align 2, 0 +_08187D44: .4byte 0x020243E8 +_08187D48: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187D60 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x26 + bl SetMonData + b _081880E0 + .align 2, 0 +_08187D60: .4byte 0x020243E8 +_08187D64: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _08187DD4 + adds r4, r4, r0 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + adds r0, r4, #0 + movs r1, #0x27 + str r3, [sp, #0x34] + bl SetMonData + ldrb r2, [r6] + lsls r2, r2, #9 + ldr r3, [sp, #0x34] + adds r0, r3, #1 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x28 + bl SetMonData + ldrb r2, [r6] + lsls r2, r2, #9 + ldr r3, [sp, #0x34] + adds r0, r3, #2 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x29 + bl SetMonData + ldrb r2, [r6] + lsls r2, r2, #9 + ldr r3, [sp, #0x34] + adds r0, r3, #3 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x2a + bl SetMonData + ldrb r2, [r6] + lsls r2, r2, #9 + ldr r3, [sp, #0x34] + adds r0, r3, #4 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x2b + bl SetMonData + ldrb r2, [r6] + lsls r2, r2, #9 + ldr r3, [sp, #0x34] + adds r0, r3, #5 + adds r2, r2, r0 + adds r0, r4, #0 + b _08187E72 + .align 2, 0 +_08187DD4: .4byte 0x020243E8 +_08187DD8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187DF0 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x27 + bl SetMonData + b _081880E0 + .align 2, 0 +_08187DF0: .4byte 0x020243E8 +_08187DF4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187E0C + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x28 + bl SetMonData + b _081880E0 + .align 2, 0 +_08187E0C: .4byte 0x020243E8 +_08187E10: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187E28 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x29 + bl SetMonData + b _081880E0 + .align 2, 0 +_08187E28: .4byte 0x020243E8 +_08187E2C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187E44 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x2a + bl SetMonData + b _081880E0 + .align 2, 0 +_08187E44: .4byte 0x020243E8 +_08187E48: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187E60 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x2b + bl SetMonData + b _081880E0 + .align 2, 0 +_08187E60: .4byte 0x020243E8 +_08187E64: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187E7C + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 +_08187E72: + movs r1, #0x2c + bl SetMonData + b _081880E0 + .align 2, 0 +_08187E7C: .4byte 0x020243E8 +_08187E80: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187E98 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0 + bl SetMonData + b _081880E0 + .align 2, 0 +_08187E98: .4byte 0x020243E8 +_08187E9C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187EB4 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #9 + bl SetMonData + b _081880E0 + .align 2, 0 +_08187EB4: .4byte 0x020243E8 +_08187EB8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187ED0 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x37 + bl SetMonData + b _081880E0 + .align 2, 0 +_08187ED0: .4byte 0x020243E8 +_08187ED4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187EEC + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x38 + bl SetMonData + b _081880E0 + .align 2, 0 +_08187EEC: .4byte 0x020243E8 +_08187EF0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187F08 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x39 + bl SetMonData + b _081880E0 + .align 2, 0 +_08187F08: .4byte 0x020243E8 +_08187F0C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187F24 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x3a + bl SetMonData + b _081880E0 + .align 2, 0 +_08187F24: .4byte 0x020243E8 +_08187F28: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187F40 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x3b + bl SetMonData + b _081880E0 + .align 2, 0 +_08187F40: .4byte 0x020243E8 +_08187F44: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187F5C + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x3c + bl SetMonData + b _081880E0 + .align 2, 0 +_08187F5C: .4byte 0x020243E8 +_08187F60: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187F78 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x3d + bl SetMonData + b _081880E0 + .align 2, 0 +_08187F78: .4byte 0x020243E8 +_08187F7C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187F94 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x3e + bl SetMonData + b _081880E0 + .align 2, 0 +_08187F94: .4byte 0x020243E8 +_08187F98: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187FB0 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x3f + bl SetMonData + b _081880E0 + .align 2, 0 +_08187FB0: .4byte 0x020243E8 +_08187FB4: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187FCC + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x16 + bl SetMonData + b _081880E0 + .align 2, 0 +_08187FCC: .4byte 0x020243E8 +_08187FD0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08187FE8 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x17 + bl SetMonData + b _081880E0 + .align 2, 0 +_08187FE8: .4byte 0x020243E8 +_08187FEC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08188004 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x18 + bl SetMonData + b _081880E0 + .align 2, 0 +_08188004: .4byte 0x020243E8 +_08188008: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08188020 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x21 + bl SetMonData + b _081880E0 + .align 2, 0 +_08188020: .4byte 0x020243E8 +_08188024: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818803C + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x2f + bl SetMonData + b _081880E0 + .align 2, 0 +_0818803C: .4byte 0x020243E8 +_08188040: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08188058 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x30 + bl SetMonData + b _081880E0 + .align 2, 0 +_08188058: .4byte 0x020243E8 +_0818805C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08188074 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x32 + bl SetMonData + b _081880E0 + .align 2, 0 +_08188074: .4byte 0x020243E8 +_08188078: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08188090 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x33 + bl SetMonData + b _081880E0 + .align 2, 0 +_08188090: .4byte 0x020243E8 +_08188094: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081880AC + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x34 + bl SetMonData + b _081880E0 + .align 2, 0 +_081880AC: .4byte 0x020243E8 +_081880B0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081880C8 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x35 + bl SetMonData + b _081880E0 + .align 2, 0 +_081880C8: .4byte 0x020243E8 +_081880CC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081880F0 + adds r0, r0, r1 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r2, r2, r3 + movs r1, #0x36 + bl SetMonData +_081880E0: + add sp, #0x38 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081880F0: .4byte 0x020243E8 + thumb_func_end SetRecordedOpponentMonData + + thumb_func_start RecordedOpponentHandleSetRawMonData +RecordedOpponentHandleSetRawMonData: @ 0x081880F4 + push {r4, r5, r6, r7, lr} + ldr r1, _08188158 + ldr r7, _0818815C + ldrb r2, [r7] + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + adds r3, r1, #0 + muls r3, r0, r3 + ldr r4, _08188160 + lsls r2, r2, #9 + adds r0, r4, #1 + adds r0, r2, r0 + ldrb r0, [r0] + ldr r1, _08188164 + adds r0, r0, r1 + adds r5, r3, r0 + movs r3, #0 + adds r0, r4, #2 + adds r2, r2, r0 + ldrb r2, [r2] + cmp r3, r2 + bhs _0818814C + adds r6, r4, #0 + adds r2, r7, #0 + adds r4, r0, #0 +_0818812A: + adds r1, r5, r3 + ldrb r0, [r2] + lsls r0, r0, #9 + adds r0, #3 + adds r0, r3, r0 + adds r0, r0, r6 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldrb r0, [r2] + lsls r0, r0, #9 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r3, r0 + blo _0818812A +_0818814C: + bl RecordedOpponentBufferExecCompleted + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08188158: .4byte 0x02023D12 +_0818815C: .4byte 0x02023D08 +_08188160: .4byte 0x02022D08 +_08188164: .4byte 0x020243E8 + thumb_func_end RecordedOpponentHandleSetRawMonData + + thumb_func_start RecordedOpponentHandleLoadMonSprite +RecordedOpponentHandleLoadMonSprite: @ 0x08188168 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r7, _08188290 + ldr r6, _08188294 + ldrb r0, [r6] + lsls r0, r0, #1 + adds r0, r0, r7 + ldrh r0, [r0] + movs r1, #0x64 + mov sl, r1 + mov r2, sl + muls r2, r0, r2 + adds r0, r2, #0 + ldr r1, _08188298 + mov sb, r1 + add r0, sb + movs r1, #0xb + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldrb r1, [r6] + lsls r0, r1, #1 + adds r0, r0, r7 + ldrh r0, [r0] + mov r2, sl + muls r2, r0, r2 + adds r0, r2, #0 + add r0, sb + bl BattleLoadOpponentMonSpriteGfx + ldrb r0, [r6] + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl SetMultiuseSpriteTemplateToPokemon + ldr r0, _0818829C + mov r8, r0 + ldrb r0, [r6] + movs r1, #2 + bl GetBattlerSpriteCoord + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldrb r0, [r6] + bl GetBattlerSpriteDefault_Y + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldrb r0, [r6] + bl GetBattlerSpriteSubpriority + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r0, r8 + adds r1, r5, #0 + adds r2, r4, #0 + bl CreateSprite + ldr r4, _081882A0 + ldrb r1, [r6] + adds r1, r1, r4 + strb r0, [r1] + ldr r5, _081882A4 + ldrb r0, [r6] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _081882A8 + strh r1, [r0, #0x24] + ldrb r2, [r6] + adds r0, r2, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r2, [r0, #0x2e] + ldrb r3, [r6] + adds r0, r3, r4 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + lsls r3, r3, #4 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #5] + ldrb r2, [r6] + adds r4, r2, r4 + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _081882AC + adds r2, r2, r1 + ldrb r1, [r2] + bl StartSpriteAnim + ldrb r4, [r6] + lsls r0, r4, #1 + adds r0, r0, r7 + ldrh r0, [r0] + mov r1, sl + muls r1, r0, r1 + adds r0, r1, #0 + add r0, sb + movs r1, #0xb + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl SetBattlerShadowSpriteCallback + ldr r1, _081882B0 + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081882B4 + str r1, [r0] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08188290: .4byte 0x02023D12 +_08188294: .4byte 0x02023D08 +_08188298: .4byte 0x020243E8 +_0818829C: .4byte 0x02024640 +_081882A0: .4byte 0x02023E88 +_081882A4: .4byte 0x020205AC +_081882A8: .4byte 0x0000FF10 +_081882AC: .4byte 0x02024188 +_081882B0: .4byte 0x03005AC0 +_081882B4: .4byte 0x08186975 + thumb_func_end RecordedOpponentHandleLoadMonSprite + + thumb_func_start RecordedOpponentHandleSwitchInAnim +RecordedOpponentHandleSwitchInAnim: @ 0x081882B8 + push {r4, lr} + ldr r1, _081882F0 + ldr r4, _081882F4 + ldrb r0, [r4] + lsls r2, r0, #1 + adds r2, r2, r1 + ldr r3, _081882F8 + lsls r0, r0, #9 + adds r1, r3, #1 + adds r0, r0, r1 + ldrb r0, [r0] + strh r0, [r2] + ldrb r0, [r4] + lsls r1, r0, #9 + adds r3, #2 + adds r1, r1, r3 + ldrb r1, [r1] + bl sub_08188304 + ldr r1, _081882FC + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08188300 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081882F0: .4byte 0x02023D12 +_081882F4: .4byte 0x02023D08 +_081882F8: .4byte 0x02022D08 +_081882FC: .4byte 0x03005AC0 +_08188300: .4byte 0x08186DB1 + thumb_func_end RecordedOpponentHandleSwitchInAnim + + thumb_func_start sub_08188304 +sub_08188304: @ 0x08188304 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r6, #0 + bl ClearTemporarySpeciesSpriteData + ldr r0, _0818846C + lsls r4, r6, #1 + adds r4, r4, r0 + ldr r0, _08188470 + lsls r1, r6, #9 + adds r0, #1 + adds r1, r1, r0 + ldrb r0, [r1] + strh r0, [r4] + ldrh r0, [r4] + movs r1, #0x64 + mov sb, r1 + mov r1, sb + muls r1, r0, r1 + adds r0, r1, #0 + ldr r5, _08188474 + adds r0, r0, r5 + movs r1, #0xb + bl GetMonData + mov r8, r0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + ldr r0, _08188478 + bl CreateInvisibleSpriteWithCallback + ldr r1, _0818847C + mov sl, r1 + add sl, r6 + mov r1, sl + strb r0, [r1] + ldrh r0, [r4] + mov r1, sb + muls r1, r0, r1 + adds r0, r1, #0 + adds r0, r0, r5 + adds r1, r6, #0 + bl BattleLoadOpponentMonSpriteGfx + adds r0, r6, #0 + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r0, r8 + bl SetMultiuseSpriteTemplateToPokemon + ldr r0, _08188480 + mov sb, r0 + adds r0, r6, #0 + movs r1, #2 + bl GetBattlerSpriteCoord + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + adds r0, r6, #0 + bl GetBattlerSpriteDefault_Y + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r6, #0 + bl GetBattlerSpriteSubpriority + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r0, sb + adds r1, r5, #0 + adds r2, r4, #0 + bl CreateSprite + ldr r4, _08188484 + adds r4, r6, r4 + strb r0, [r4] + ldr r5, _08188488 + mov r0, sl + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r1, [r4] + strh r1, [r0, #0x30] + mov r0, sl + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r6, [r0, #0x32] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r6, [r0, #0x2e] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + mov r1, r8 + strh r1, [r0, #0x32] + ldrb r0, [r4] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + lsls r3, r6, #4 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #5] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _0818848C + adds r6, r6, r1 + ldrb r1, [r6] + bl StartSpriteAnim + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r5, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _08188490 + str r1, [r0] + movs r0, #0 + movs r1, #0xfe + bl DoPokeballSendOutAnimation + mov r1, sl + ldrb r2, [r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r1, #0x2e] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0818846C: .4byte 0x02023D12 +_08188470: .4byte 0x02022D08 +_08188474: .4byte 0x020243E8 +_08188478: .4byte 0x0805D331 +_0818847C: .4byte 0x03005ADC +_08188480: .4byte 0x02024640 +_08188484: .4byte 0x02023E88 +_08188488: .4byte 0x020205AC +_0818848C: .4byte 0x02024188 +_08188490: .4byte 0x08007141 + thumb_func_end sub_08188304 + + thumb_func_start RecordedOpponentHandleReturnMonToBall +RecordedOpponentHandleReturnMonToBall: @ 0x08188494 + push {r4, r5, r6, lr} + ldr r1, _081884C8 + ldr r6, _081884CC + ldrb r2, [r6] + lsls r0, r2, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r3, [r0] + cmp r3, #0 + bne _081884DC + ldr r0, _081884D0 + ldr r0, [r0] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + strb r3, [r0, #4] + ldr r1, _081884D4 + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081884D8 + str r1, [r0] + b _08188518 + .align 2, 0 +_081884C8: .4byte 0x02022D08 +_081884CC: .4byte 0x02023D08 +_081884D0: .4byte 0x02024174 +_081884D4: .4byte 0x03005AC0 +_081884D8: .4byte 0x0818852D +_081884DC: + ldr r5, _08188520 + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _08188524 + adds r0, r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + ldrb r0, [r6] + bl HideBattlerShadowSprite + ldr r1, _08188528 + ldrb r0, [r6] + adds r0, r0, r1 + ldrb r0, [r0] + bl SetHealthboxSpriteInvisible + bl RecordedOpponentBufferExecCompleted +_08188518: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08188520: .4byte 0x02023E88 +_08188524: .4byte 0x020205AC +_08188528: .4byte 0x03005AD0 + thumb_func_end RecordedOpponentHandleReturnMonToBall + + thumb_func_start sub_0818852C +sub_0818852C: @ 0x0818852C + push {r4, r5, r6, lr} + ldr r6, _0818854C + ldr r4, [r6] + ldr r5, _08188550 + ldrb r2, [r5] + ldr r1, [r4, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r3, r0, r1 + ldrb r0, [r3, #4] + cmp r0, #0 + beq _08188554 + cmp r0, #1 + beq _08188582 + b _081885AA + .align 2, 0 +_0818854C: .4byte 0x02024174 +_08188550: .4byte 0x02023D08 +_08188554: + ldr r1, [r4] + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0818856E + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #5 + bl InitAndLaunchSpecialAnimation +_0818856E: + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #1 + strb r1, [r0, #4] + b _081885AA +_08188582: + ldrb r1, [r3] + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _081885AA + strb r0, [r3, #4] + ldrb r2, [r5] + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #2 + bl InitAndLaunchSpecialAnimation + ldr r1, _081885B0 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081885B4 + str r1, [r0] +_081885AA: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081885B0: .4byte 0x03005AC0 +_081885B4: .4byte 0x08186AC9 + thumb_func_end sub_0818852C + + thumb_func_start RecordedOpponentHandleDrawTrainerPic +RecordedOpponentHandleDrawTrainerPic: @ 0x081885B8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r5, _081885F8 + ldr r0, [r5] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08188622 + ldr r4, _081885FC + ldrb r0, [r4] + bl GetBattlerPosition + movs r1, #2 + ands r1, r0 + movs r7, #0xc8 + cmp r1, #0 + beq _081885E0 + movs r7, #0x98 +_081885E0: + ldr r0, [r5] + movs r1, #0x80 + lsls r1, r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08188618 + ldrb r0, [r4] + cmp r0, #1 + bne _08188604 + ldr r0, _08188600 + b _08188606 + .align 2, 0 +_081885F8: .4byte 0x02022C90 +_081885FC: .4byte 0x02023D08 +_08188600: .4byte 0x0203886A +_08188604: + ldr r0, _08188614 +_08188606: + ldrh r0, [r0] + bl GetFrontierTrainerFrontSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _08188658 + .align 2, 0 +_08188614: .4byte 0x0203886C +_08188618: + bl GetActiveBattlerLinkPlayerGender + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _08188650 +_08188622: + movs r7, #0xb0 + ldr r0, _08188638 + ldrh r1, [r0] + movs r0, #0xc0 + lsls r0, r0, #4 + cmp r1, r0 + bne _0818863C + bl sub_08068688 + b _08188654 + .align 2, 0 +_08188638: .4byte 0x0203886A +_0818863C: + ldr r2, _0818873C + ldr r0, _08188740 + ldrb r0, [r0] + movs r1, #1 + eors r1, r0 + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #0x13] +_08188650: + bl PlayerGenderToFrontTrainerPicId +_08188654: + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_08188658: + mov r8, r0 + ldr r5, _08188744 + ldrb r1, [r5] + bl DecompressTrainerFrontPic + ldrb r0, [r5] + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r0, r8 + bl SetMultiuseSpriteTemplateToTrainerBack + ldr r6, _08188748 + mov sb, r7 + ldr r1, _0818874C + mov r2, r8 + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r0, [r0] + movs r4, #8 + subs r4, r4, r0 + lsls r4, r4, #0x12 + movs r0, #0xa0 + lsls r0, r0, #0xe + adds r4, r4, r0 + asrs r4, r4, #0x10 + ldrb r0, [r5] + bl GetBattlerSpriteSubpriority + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r6, #0 + mov r1, sb + adds r2, r4, #0 + bl CreateSprite + ldr r6, _08188750 + ldrb r1, [r5] + adds r1, r1, r6 + strb r0, [r1] + ldr r4, _08188754 + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _08188758 + strh r1, [r0, #0x24] + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #2 + strh r1, [r0, #0x2e] + ldr r1, _0818875C + mov r2, r8 + lsls r0, r2, #3 + adds r0, r0, r1 + ldrh r0, [r0, #4] + bl IndexOfSpritePaletteTag + ldrb r1, [r5] + adds r1, r1, r6 + ldrb r1, [r1] + lsls r2, r1, #4 + adds r2, r2, r1 + lsls r2, r2, #2 + adds r2, r2, r4 + lsls r0, r0, #4 + ldrb r3, [r2, #5] + movs r1, #0xf + ands r1, r3 + orrs r1, r0 + strb r1, [r2, #5] + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + mov r1, r8 + strh r1, [r0, #6] + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, #0x1c + adds r0, r0, r4 + ldr r1, _08188760 + str r1, [r0] + ldr r1, _08188764 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08188768 + str r1, [r0] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0818873C: .4byte 0x020226A0 +_08188740: .4byte 0x0203C480 +_08188744: .4byte 0x02023D08 +_08188748: .4byte 0x02024640 +_0818874C: .4byte 0x082D8D70 +_08188750: .4byte 0x02023E88 +_08188754: .4byte 0x020205AC +_08188758: .4byte 0x0000FF10 +_0818875C: .4byte 0x082D91CC +_08188760: .4byte 0x0805D3C9 +_08188764: .4byte 0x03005AC0 +_08188768: .4byte 0x08186285 + thumb_func_end RecordedOpponentHandleDrawTrainerPic + + thumb_func_start RecordedOpponentHandleTrainerSlide +RecordedOpponentHandleTrainerSlide: @ 0x0818876C + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedOpponentHandleTrainerSlide + + thumb_func_start RecordedOpponentHandleTrainerSlideBack +RecordedOpponentHandleTrainerSlideBack: @ 0x08188778 + push {r4, r5, r6, lr} + ldr r6, _08188808 + ldr r4, _0818880C + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r5, _08188810 + adds r0, r0, r5 + bl SetSpritePrimaryCoordsFromSecondaryCoords + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0x23 + strh r1, [r0, #0x2e] + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0x8c + lsls r1, r1, #1 + strh r1, [r0, #0x32] + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrh r1, [r0, #0x22] + strh r1, [r0, #0x36] + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r5, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _08188814 + str r1, [r0] + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _08188818 + bl StoreSpriteCallbackInData6 + ldr r1, _0818881C + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08188820 + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08188808: .4byte 0x02023E88 +_0818880C: .4byte 0x02023D08 +_08188810: .4byte 0x020205AC +_08188814: .4byte 0x080A67B5 +_08188818: .4byte 0x08007141 +_0818881C: .4byte 0x03005AC0 +_08188820: .4byte 0x081862F5 + thumb_func_end RecordedOpponentHandleTrainerSlideBack + + thumb_func_start RecordedOpponentHandleFaintAnimation +RecordedOpponentHandleFaintAnimation: @ 0x08188824 + push {r4, r5, r6, lr} + ldr r6, _08188870 + ldr r4, [r6] + ldr r5, _08188874 + ldrb r2, [r5] + ldr r0, [r4, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r3, r1, r0 + ldrb r0, [r3, #4] + cmp r0, #0 + bne _08188878 + ldr r1, [r4] + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08188858 + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #5 + bl InitAndLaunchSpecialAnimation +_08188858: + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #4] + adds r1, #1 + strb r1, [r0, #4] + b _081888B4 + .align 2, 0 +_08188870: .4byte 0x02024174 +_08188874: .4byte 0x02023D08 +_08188878: + ldrb r1, [r3] + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _081888B4 + strb r0, [r3, #4] + movs r0, #0x10 + movs r1, #0x3f + bl PlaySE12WithPanning + ldr r2, _081888BC + ldr r1, _081888C0 + ldrb r0, [r5] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, _081888C4 + str r1, [r0] + ldr r1, _081888C8 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081888CC + str r1, [r0] +_081888B4: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081888BC: .4byte 0x020205AC +_081888C0: .4byte 0x02023E88 +_081888C4: .4byte 0x08039579 +_081888C8: .4byte 0x03005AC0 +_081888CC: .4byte 0x08186A85 + thumb_func_end RecordedOpponentHandleFaintAnimation + + thumb_func_start RecordedOpponentHandlePaletteFade +RecordedOpponentHandlePaletteFade: @ 0x081888D0 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedOpponentHandlePaletteFade + + thumb_func_start RecordedOpponentHandleSuccessBallThrowAnim +RecordedOpponentHandleSuccessBallThrowAnim: @ 0x081888DC + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedOpponentHandleSuccessBallThrowAnim + + thumb_func_start RecordedOpponentHandleBallThrowAnim +RecordedOpponentHandleBallThrowAnim: @ 0x081888E8 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedOpponentHandleBallThrowAnim + + thumb_func_start RecordedOpponentHandlePause +RecordedOpponentHandlePause: @ 0x081888F4 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedOpponentHandlePause + + thumb_func_start RecordedOpponentHandleMoveAnimation +RecordedOpponentHandleMoveAnimation: @ 0x08188900 + push {r4, r5, r6, lr} + ldr r6, _081889E4 + ldrb r0, [r6] + bl mplay_80342A4 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08188912 + b _08188A26 +_08188912: + ldr r0, _081889E8 + mov ip, r0 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r0, #1 + adds r0, r2, r0 + ldrb r0, [r0] + mov r1, ip + adds r1, #2 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + ldr r5, _081889EC + mov r1, ip + adds r1, #3 + adds r2, r2, r1 + ldrb r1, [r2] + strb r1, [r5] + ldr r4, _081889F0 + ldrb r2, [r6] + lsls r2, r2, #9 + mov r1, ip + adds r1, #4 + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, ip + adds r1, #5 + adds r2, r2, r1 + ldrb r1, [r2] + lsls r1, r1, #8 + orrs r3, r1 + strh r3, [r4] + ldr r4, _081889F4 + ldrb r2, [r6] + lsls r2, r2, #9 + mov r1, ip + adds r1, #6 + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, ip + adds r1, #7 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r3, r1 + mov r1, ip + adds r1, #8 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, r1, #0x10 + orrs r3, r1 + mov r1, ip + adds r1, #9 + adds r2, r2, r1 + ldrb r1, [r2] + lsls r1, r1, #0x18 + orrs r3, r1 + str r3, [r4] + ldr r3, _081889F8 + ldrb r1, [r6] + lsls r1, r1, #9 + mov r2, ip + adds r2, #0xa + adds r1, r1, r2 + ldrb r1, [r1] + strb r1, [r3] + ldr r4, _081889FC + ldrb r2, [r6] + lsls r2, r2, #9 + mov r1, ip + adds r1, #0xc + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, ip + adds r1, #0xd + adds r2, r2, r1 + ldrb r1, [r2] + lsls r1, r1, #8 + orrs r3, r1 + strh r3, [r4] + ldr r3, _08188A00 + ldrb r2, [r6] + lsls r2, r2, #9 + mov r1, ip + adds r1, #0x10 + adds r2, r2, r1 + str r2, [r3] + ldr r3, _08188A04 + ldrb r1, [r6] + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r2, [r2] + str r2, [r1] + ldrb r1, [r5] + bl IsMoveWithoutAnimation + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + beq _08188A08 + bl RecordedOpponentBufferExecCompleted + b _08188A26 + .align 2, 0 +_081889E4: .4byte 0x02023D08 +_081889E8: .4byte 0x02022D08 +_081889EC: .4byte 0x020380D2 +_081889F0: .4byte 0x020380A8 +_081889F4: .4byte 0x020380A4 +_081889F8: .4byte 0x020380BA +_081889FC: .4byte 0x020380BC +_08188A00: .4byte 0x020380A0 +_08188A04: .4byte 0x02024160 +_08188A08: + ldr r0, _08188A2C + ldr r0, [r0] + ldrb r1, [r6] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strb r3, [r0, #4] + ldr r1, _08188A30 + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08188A34 + str r1, [r0] +_08188A26: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08188A2C: .4byte 0x02024174 +_08188A30: .4byte 0x03005AC0 +_08188A34: .4byte 0x08188A39 + thumb_func_end RecordedOpponentHandleMoveAnimation + + thumb_func_start RecordedOpponentDoMoveAnimation +RecordedOpponentDoMoveAnimation: @ 0x08188A38 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r2, _08188A84 + ldr r6, _08188A88 + ldrb r3, [r6] + lsls r1, r3, #9 + adds r0, r2, #1 + mov sl, r0 + adds r0, r1, r0 + ldrb r4, [r0] + adds r5, r2, #2 + mov sb, r5 + adds r0, r1, r5 + ldrb r0, [r0] + lsls r0, r0, #8 + orrs r4, r0 + adds r2, #0xb + adds r1, r1, r2 + ldrb r1, [r1] + mov r8, r1 + ldr r7, _08188A8C + ldr r5, [r7] + ldr r1, [r5, #4] + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r2, [r0, #4] + cmp r2, #1 + beq _08188AD0 + cmp r2, #1 + bgt _08188A90 + cmp r2, #0 + beq _08188A9A + b _08188BAC + .align 2, 0 +_08188A84: .4byte 0x02022D08 +_08188A88: .4byte 0x02023D08 +_08188A8C: .4byte 0x02024174 +_08188A90: + cmp r2, #2 + beq _08188AFA + cmp r2, #3 + beq _08188B70 + b _08188BAC +_08188A9A: + ldr r1, [r5] + lsls r0, r3, #2 + adds r1, r0, r1 + ldrb r2, [r1] + movs r0, #0xc + ands r0, r2 + cmp r0, #4 + bne _08188ABC + movs r0, #8 + orrs r0, r2 + strb r0, [r1] + ldrb r2, [r6] + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #5 + bl InitAndLaunchSpecialAnimation +_08188ABC: + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #1 + strb r1, [r0, #4] + b _08188BAC +_08188AD0: + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08188BAC + movs r0, #0 + bl sub_0805E7B8 + adds r0, r4, #0 + bl DoMoveAnim + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #2 + strb r1, [r0, #4] + b _08188BAC +_08188AFA: + ldr r0, _08188B60 + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _08188B64 + ldrb r0, [r0] + cmp r0, #0 + bne _08188BAC + movs r0, #1 + bl sub_0805E7B8 + ldr r0, [r7] + ldrb r2, [r6] + ldr r1, [r0] + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08188B48 + mov r0, r8 + cmp r0, #1 + bhi _08188B48 + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #6 + bl InitAndLaunchSpecialAnimation + ldr r0, [r7] + ldrb r1, [r6] + ldr r0, [r0] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] +_08188B48: + ldr r0, _08188B68 + ldr r2, [r0] + ldr r0, _08188B6C + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #3 + strb r1, [r0, #4] + b _08188BAC + .align 2, 0 +_08188B60: .4byte 0x02038098 +_08188B64: .4byte 0x0203809D +_08188B68: .4byte 0x02024174 +_08188B6C: .4byte 0x02023D08 +_08188B70: + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _08188BAC + bl CopyAllBattleSpritesInvisibilities + ldrb r0, [r6] + lsls r2, r0, #9 + mov r3, sl + adds r1, r2, r3 + ldrb r1, [r1] + add r2, sb + ldrb r2, [r2] + lsls r2, r2, #8 + orrs r1, r2 + bl TrySetBehindSubstituteSpriteBit + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strb r4, [r0, #4] + bl RecordedOpponentBufferExecCompleted +_08188BAC: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedOpponentDoMoveAnimation + + thumb_func_start RecordedOpponentHandlePrintString +RecordedOpponentHandlePrintString: @ 0x08188BBC + push {r4, lr} + ldr r0, _08188BF4 + movs r1, #0 + strh r1, [r0] + ldr r0, _08188BF8 + strh r1, [r0] + ldr r4, _08188BFC + ldrb r0, [r4] + lsls r0, r0, #9 + ldr r1, _08188C00 + adds r0, r0, r1 + ldrh r0, [r0] + bl BufferStringBattle + ldr r0, _08188C04 + movs r1, #0 + bl sub_0814FA04 + ldr r1, _08188C08 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08188C0C + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08188BF4: .4byte 0x02022AC8 +_08188BF8: .4byte 0x02022ACA +_08188BFC: .4byte 0x02023D08 +_08188C00: .4byte 0x02022D0A +_08188C04: .4byte 0x02022AE0 +_08188C08: .4byte 0x03005AC0 +_08188C0C: .4byte 0x08186B3D + thumb_func_end RecordedOpponentHandlePrintString + + thumb_func_start RecordedOpponentHandlePrintSelectionString +RecordedOpponentHandlePrintSelectionString: @ 0x08188C10 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedOpponentHandlePrintSelectionString + + thumb_func_start RecordedOpponentHandleChooseAction +RecordedOpponentHandleChooseAction: @ 0x08188C1C + push {lr} + ldr r0, _08188C3C + ldrb r0, [r0] + bl RecordedBattle_GetBattlerAction + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #1 + movs r2, #0 + bl BtlController_EmitTwoReturnValues + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_08188C3C: .4byte 0x02023D08 + thumb_func_end RecordedOpponentHandleChooseAction + + thumb_func_start RecordedOpponentHandleUnknownYesNoBox +RecordedOpponentHandleUnknownYesNoBox: @ 0x08188C40 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedOpponentHandleUnknownYesNoBox + + thumb_func_start RecordedOpponentHandleChooseMove +RecordedOpponentHandleChooseMove: @ 0x08188C4C + push {r4, r5, lr} + ldr r0, _08188C70 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xa + ands r0, r1 + cmp r0, #0 + beq _08188C74 + bl ChooseMoveAndTargetInBattlePalace + adds r2, r0, #0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + movs r0, #1 + movs r1, #0xa + bl BtlController_EmitTwoReturnValues + b _08188C98 + .align 2, 0 +_08188C70: .4byte 0x02022C90 +_08188C74: + ldr r5, _08188CA4 + ldrb r0, [r5] + bl RecordedBattle_GetBattlerAction + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldrb r0, [r5] + bl RecordedBattle_GetBattlerAction + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x10 + orrs r2, r4 + movs r0, #1 + movs r1, #0xa + bl BtlController_EmitTwoReturnValues +_08188C98: + bl RecordedOpponentBufferExecCompleted + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08188CA4: .4byte 0x02023D08 + thumb_func_end RecordedOpponentHandleChooseMove + + thumb_func_start RecordedOpponentHandleChooseItem +RecordedOpponentHandleChooseItem: @ 0x08188CA8 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedOpponentHandleChooseItem + + thumb_func_start RecordedOpponentHandleChoosePokemon +RecordedOpponentHandleChoosePokemon: @ 0x08188CB4 + push {r4, lr} + ldr r4, _08188CE8 + ldrb r0, [r4] + bl RecordedBattle_GetBattlerAction + ldrb r1, [r4] + ldr r3, _08188CEC + ldr r2, [r3] + adds r1, r1, r2 + adds r1, #0x5c + strb r0, [r1] + ldrb r0, [r4] + ldr r1, [r3] + adds r0, r0, r1 + adds r0, #0x5c + ldrb r1, [r0] + movs r0, #1 + movs r2, #0 + bl BtlController_EmitChosenMonReturnValue + bl RecordedOpponentBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08188CE8: .4byte 0x02023D08 +_08188CEC: .4byte 0x02024140 + thumb_func_end RecordedOpponentHandleChoosePokemon + + thumb_func_start RecordedOpponentHandleCmd23 +RecordedOpponentHandleCmd23: @ 0x08188CF0 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedOpponentHandleCmd23 + + thumb_func_start RecordedOpponentHandleHealthBarUpdate +RecordedOpponentHandleHealthBarUpdate: @ 0x08188CFC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + movs r0, #0 + bl LoadBattleBarGfx + ldr r3, _08188D74 + ldr r0, _08188D78 + mov sb, r0 + ldrb r4, [r0] + lsls r2, r4, #9 + adds r0, r3, #2 + adds r0, r2, r0 + ldrb r1, [r0] + adds r3, #3 + adds r2, r2, r3 + ldrb r0, [r2] + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + asrs r7, r1, #0x10 + ldr r0, _08188D7C + cmp r7, r0 + beq _08188D8C + ldr r6, _08188D80 + lsls r0, r4, #1 + adds r0, r0, r6 + ldrh r0, [r0] + movs r5, #0x64 + muls r0, r5, r0 + ldr r4, _08188D84 + adds r0, r0, r4 + movs r1, #0x3a + bl GetMonData + mov r8, r0 + mov r1, sb + ldrb r0, [r1] + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r0, [r0] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #0x39 + bl GetMonData + adds r3, r0, #0 + mov r1, sb + ldrb r0, [r1] + ldr r1, _08188D88 + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + mov r2, r8 + bl SetBattleBarStruct + b _08188DB6 + .align 2, 0 +_08188D74: .4byte 0x02022D08 +_08188D78: .4byte 0x02023D08 +_08188D7C: .4byte 0x00007FFF +_08188D80: .4byte 0x02023D12 +_08188D84: .4byte 0x020243E8 +_08188D88: .4byte 0x03005AD0 +_08188D8C: + ldr r1, _08188DD4 + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08188DD8 + adds r0, r0, r1 + movs r1, #0x3a + bl GetMonData + adds r2, r0, #0 + mov r1, sb + ldrb r0, [r1] + ldr r1, _08188DDC + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + movs r3, #0 + bl SetBattleBarStruct +_08188DB6: + ldr r1, _08188DE0 + ldr r0, _08188DE4 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08188DE8 + str r1, [r0] + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08188DD4: .4byte 0x02023D12 +_08188DD8: .4byte 0x020243E8 +_08188DDC: .4byte 0x03005AD0 +_08188DE0: .4byte 0x03005AC0 +_08188DE4: .4byte 0x02023D08 +_08188DE8: .4byte 0x08186A31 + thumb_func_end RecordedOpponentHandleHealthBarUpdate + + thumb_func_start RecordedOpponentHandleExpUpdate +RecordedOpponentHandleExpUpdate: @ 0x08188DEC + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedOpponentHandleExpUpdate + + thumb_func_start RecordedOpponentHandleStatusIconUpdate +RecordedOpponentHandleStatusIconUpdate: @ 0x08188DF8 + push {r4, lr} + ldr r4, _08188E54 + ldrb r0, [r4] + bl mplay_80342A4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08188E4C + ldr r0, _08188E58 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + ldr r2, _08188E5C + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _08188E60 + adds r1, r1, r2 + movs r2, #9 + bl UpdateHealthboxAttribute + ldrb r2, [r4] + ldr r0, _08188E64 + ldr r0, [r0] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r1, _08188E68 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08188E6C + str r1, [r0] +_08188E4C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08188E54: .4byte 0x02023D08 +_08188E58: .4byte 0x03005AD0 +_08188E5C: .4byte 0x02023D12 +_08188E60: .4byte 0x020243E8 +_08188E64: .4byte 0x02024174 +_08188E68: .4byte 0x03005AC0 +_08188E6C: .4byte 0x08186E79 + thumb_func_end RecordedOpponentHandleStatusIconUpdate + + thumb_func_start RecordedOpponentHandleStatusAnimation +RecordedOpponentHandleStatusAnimation: @ 0x08188E70 + push {r4, r5, lr} + ldr r5, _08188EC8 + ldrb r0, [r5] + bl mplay_80342A4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08188EC0 + ldr r4, _08188ECC + ldrb r3, [r5] + lsls r3, r3, #9 + adds r0, r4, #1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, #2 + adds r1, r3, r1 + ldrb r1, [r1] + adds r2, r4, #3 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, r2, #8 + orrs r1, r2 + adds r2, r4, #4 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, r2, #0x10 + orrs r1, r2 + adds r4, #5 + adds r3, r3, r4 + ldrb r2, [r3] + lsls r2, r2, #0x18 + orrs r1, r2 + bl InitAndLaunchChosenStatusAnimation + ldr r1, _08188ED0 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08188ED4 + str r1, [r0] +_08188EC0: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08188EC8: .4byte 0x02023D08 +_08188ECC: .4byte 0x02022D08 +_08188ED0: .4byte 0x03005AC0 +_08188ED4: .4byte 0x08186E79 + thumb_func_end RecordedOpponentHandleStatusAnimation + + thumb_func_start RecordedOpponentHandleStatusXor +RecordedOpponentHandleStatusXor: @ 0x08188ED8 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedOpponentHandleStatusXor + + thumb_func_start RecordedOpponentHandleDataTransfer +RecordedOpponentHandleDataTransfer: @ 0x08188EE4 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedOpponentHandleDataTransfer + + thumb_func_start RecordedOpponentHandleDMA3Transfer +RecordedOpponentHandleDMA3Transfer: @ 0x08188EF0 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedOpponentHandleDMA3Transfer + + thumb_func_start RecordedOpponentHandlePlayBGM +RecordedOpponentHandlePlayBGM: @ 0x08188EFC + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedOpponentHandlePlayBGM + + thumb_func_start RecordedOpponentHandleCmd32 +RecordedOpponentHandleCmd32: @ 0x08188F08 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedOpponentHandleCmd32 + + thumb_func_start RecordedOpponentHandleTwoReturnValues +RecordedOpponentHandleTwoReturnValues: @ 0x08188F14 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedOpponentHandleTwoReturnValues + + thumb_func_start RecordedOpponentHandleChosenMonReturnValue +RecordedOpponentHandleChosenMonReturnValue: @ 0x08188F20 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedOpponentHandleChosenMonReturnValue + + thumb_func_start RecordedOpponentHandleOneReturnValue +RecordedOpponentHandleOneReturnValue: @ 0x08188F2C + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedOpponentHandleOneReturnValue + + thumb_func_start RecordedOpponentHandleOneReturnValue_Duplicate +RecordedOpponentHandleOneReturnValue_Duplicate: @ 0x08188F38 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedOpponentHandleOneReturnValue_Duplicate + + thumb_func_start RecordedOpponentHandleCmd37 +RecordedOpponentHandleCmd37: @ 0x08188F44 + push {lr} + ldr r2, _08188F5C + ldrb r1, [r2] + movs r0, #0x80 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_08188F5C: .4byte 0x020229C0 + thumb_func_end RecordedOpponentHandleCmd37 + + thumb_func_start RecordedOpponentHandleCmd38 +RecordedOpponentHandleCmd38: @ 0x08188F60 + push {lr} + ldr r3, _08188F8C + ldr r1, _08188F90 + ldr r0, _08188F94 + ldrb r0, [r0] + lsls r0, r0, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + ldrb r2, [r3] + movs r0, #0x80 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_08188F8C: .4byte 0x020229C0 +_08188F90: .4byte 0x02022D08 +_08188F94: .4byte 0x02023D08 + thumb_func_end RecordedOpponentHandleCmd38 + + thumb_func_start RecordedOpponentHandleCmd39 +RecordedOpponentHandleCmd39: @ 0x08188F98 + push {lr} + ldr r2, _08188FAC + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_08188FAC: .4byte 0x020229C0 + thumb_func_end RecordedOpponentHandleCmd39 + + thumb_func_start RecordedOpponentHandleCmd40 +RecordedOpponentHandleCmd40: @ 0x08188FB0 + push {lr} + ldr r3, _08188FD4 + ldr r1, [r3] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1f + movs r0, #1 + eors r1, r0 + lsls r1, r1, #7 + ldrb r2, [r3] + movs r0, #0x7f + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_08188FD4: .4byte 0x020229C0 + thumb_func_end RecordedOpponentHandleCmd40 + + thumb_func_start RecordedOpponentHandleHitAnimation +RecordedOpponentHandleHitAnimation: @ 0x08188FD8 + push {r4, lr} + ldr r3, _08189000 + ldr r2, _08189004 + ldr r4, _08189008 + ldrb r0, [r4] + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + bge _0818900C + bl RecordedOpponentBufferExecCompleted + b _08189036 + .align 2, 0 +_08189000: .4byte 0x020205AC +_08189004: .4byte 0x02023E88 +_08189008: .4byte 0x02023D08 +_0818900C: + ldr r1, _0818903C + movs r0, #1 + strb r0, [r1] + ldrb r0, [r4] + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r1, #0 + strh r1, [r0, #0x30] + ldrb r0, [r4] + bl DoHitAnimHealthboxEffect + ldr r1, _08189040 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08189044 + str r1, [r0] +_08189036: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0818903C: .4byte 0x0202415D +_08189040: .4byte 0x03005AC0 +_08189044: .4byte 0x08186B55 + thumb_func_end RecordedOpponentHandleHitAnimation + + thumb_func_start RecordedOpponentHandleCmd42 +RecordedOpponentHandleCmd42: @ 0x08189048 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedOpponentHandleCmd42 + + thumb_func_start RecordedOpponentHandlePlaySE +RecordedOpponentHandlePlaySE: @ 0x08189054 + push {r4, lr} + ldr r4, _08189090 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + movs r3, #0x3f + cmp r0, #0 + bne _08189068 + movs r3, #0xc0 +_08189068: + ldr r2, _08189094 + ldrb r1, [r4] + lsls r1, r1, #9 + adds r0, r2, #1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, #2 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + lsls r1, r3, #0x18 + asrs r1, r1, #0x18 + bl PlaySE12WithPanning + bl RecordedOpponentBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08189090: .4byte 0x02023D08 +_08189094: .4byte 0x02022D08 + thumb_func_end RecordedOpponentHandlePlaySE + + thumb_func_start RecordedOpponentHandlePlayFanfareOrBGM +RecordedOpponentHandlePlayFanfareOrBGM: @ 0x08189098 + push {r4, r5, lr} + ldr r4, _081890CC + ldr r5, _081890D0 + ldrb r0, [r5] + lsls r3, r0, #9 + adds r0, r4, #3 + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, #0 + beq _081890D4 + bl BattleStopLowHpSound + ldrb r1, [r5] + lsls r1, r1, #9 + adds r0, r4, #1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, r4, #2 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + bl PlayBGM + b _081890E8 + .align 2, 0 +_081890CC: .4byte 0x02022D08 +_081890D0: .4byte 0x02023D08 +_081890D4: + adds r0, r4, #1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, #2 + adds r1, r3, r1 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + bl PlayFanfare +_081890E8: + bl RecordedOpponentBufferExecCompleted + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedOpponentHandlePlayFanfareOrBGM + + thumb_func_start RecordedOpponentHandleFaintingCry +RecordedOpponentHandleFaintingCry: @ 0x081890F4 + push {lr} + ldr r1, _08189124 + ldr r0, _08189128 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0818912C + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x19 + movs r2, #5 + bl PlayCry3 + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_08189124: .4byte 0x02023D12 +_08189128: .4byte 0x02023D08 +_0818912C: .4byte 0x020243E8 + thumb_func_end RecordedOpponentHandleFaintingCry + + thumb_func_start RecordedOpponentHandleIntroSlide +RecordedOpponentHandleIntroSlide: @ 0x08189130 + push {lr} + ldr r1, _08189158 + ldr r0, _0818915C + ldrb r0, [r0] + lsls r0, r0, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + bl HandleIntroSlide + ldr r2, _08189160 + ldrh r0, [r2] + movs r1, #1 + orrs r0, r1 + strh r0, [r2] + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_08189158: .4byte 0x02022D08 +_0818915C: .4byte 0x02023D08 +_08189160: .4byte 0x020240A0 + thumb_func_end RecordedOpponentHandleIntroSlide + + thumb_func_start RecordedOpponentHandleIntroTrainerBallThrow +RecordedOpponentHandleIntroTrainerBallThrow: @ 0x08189164 + push {r4, r5, r6, lr} + ldr r5, _08189244 + ldr r6, _08189248 + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _0818924C + adds r0, r0, r4 + bl SetSpritePrimaryCoordsFromSecondaryCoords + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0x23 + strh r1, [r0, #0x2e] + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0x8c + lsls r1, r1, #1 + strh r1, [r0, #0x32] + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r0, #0x22] + strh r1, [r0, #0x36] + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _08189250 + str r1, [r0] + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _08189254 + bl StoreSpriteCallbackInData6 + ldr r0, _08189258 + movs r1, #5 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _0818925C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r4 + ldrb r0, [r6] + strh r0, [r1, #8] + ldr r3, _08189260 + ldr r0, [r3] + ldrb r2, [r6] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08189226 + ldr r0, _08189264 + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r4 + ldr r1, _08189268 + str r1, [r0] +_08189226: + ldr r0, [r3] + ldr r2, [r0, #8] + ldrb r0, [r2, #9] + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #9] + ldr r1, _0818926C + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08189270 + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08189244: .4byte 0x02023E88 +_08189248: .4byte 0x02023D08 +_0818924C: .4byte 0x020205AC +_08189250: .4byte 0x080A67B5 +_08189254: .4byte 0x08189359 +_08189258: .4byte 0x08189275 +_0818925C: .4byte 0x03005B60 +_08189260: .4byte 0x02024174 +_08189264: .4byte 0x02024158 +_08189268: .4byte 0x0807352D +_0818926C: .4byte 0x03005AC0 +_08189270: .4byte 0x08186215 + thumb_func_end RecordedOpponentHandleIntroTrainerBallThrow + + thumb_func_start sub_08189274 +sub_08189274: @ 0x08189274 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r7, _081892CC + ldrb r0, [r7] + mov sb, r0 + ldr r1, _081892D0 + mov r2, r8 + lsls r0, r2, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r0, [r0, #8] + strb r0, [r7] + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081892AE + ldr r0, _081892D4 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _081892E0 +_081892AE: + ldr r0, _081892D8 + ldrb r1, [r7] + lsls r2, r1, #9 + adds r0, #1 + adds r2, r2, r0 + ldr r0, _081892DC + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + strb r0, [r2] + ldrb r0, [r7] + movs r1, #0 + bl sub_08188304 + b _08189320 + .align 2, 0 +_081892CC: .4byte 0x02023D08 +_081892D0: .4byte 0x03005B60 +_081892D4: .4byte 0x02022C90 +_081892D8: .4byte 0x02022D08 +_081892DC: .4byte 0x02023D12 +_081892E0: + ldr r4, _08189344 + ldrb r0, [r7] + lsls r1, r0, #9 + adds r4, #1 + adds r1, r1, r4 + ldr r6, _08189348 + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + movs r1, #0 + bl sub_08188304 + ldrb r0, [r7] + movs r5, #2 + eors r0, r5 + strb r0, [r7] + ldrb r0, [r7] + lsls r1, r0, #9 + adds r1, r1, r4 + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + movs r1, #0 + bl sub_08188304 + ldrb r0, [r7] + eors r0, r5 + strb r0, [r7] +_08189320: + ldr r1, _0818934C + ldr r2, _08189350 + ldrb r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08189354 + str r1, [r0] + mov r0, sb + strb r0, [r2] + mov r0, r8 + bl DestroyTask + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08189344: .4byte 0x02022D08 +_08189348: .4byte 0x02023D12 +_0818934C: .4byte 0x03005AC0 +_08189350: .4byte 0x02023D08 +_08189354: .4byte 0x08186599 + thumb_func_end sub_08189274 + + thumb_func_start sub_08189358 +sub_08189358: @ 0x08189358 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #6] + bl FreeTrainerFrontPicPalette + adds r0, r4, #0 + bl FreeSpriteOamMatrix + adds r0, r4, #0 + bl DestroySprite + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08189358 + + thumb_func_start RecordedOpponentHandleDrawPartyStatusSummary +RecordedOpponentHandleDrawPartyStatusSummary: @ 0x08189374 + push {r4, r5, r6, r7, lr} + ldr r1, _0818939C + ldr r0, _081893A0 + ldrb r2, [r0] + lsls r0, r2, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _081893A4 + adds r0, r2, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081893A4 + bl RecordedOpponentBufferExecCompleted + b _0818946E + .align 2, 0 +_0818939C: .4byte 0x02022D08 +_081893A0: .4byte 0x02023D08 +_081893A4: + ldr r4, _081893FC + ldr r0, [r4] + ldr r3, _08189400 + ldrb r1, [r3] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r2, #1 + orrs r1, r2 + strb r1, [r0] + ldr r1, _08189404 + ldrb r2, [r3] + lsls r0, r2, #9 + adds r1, #2 + adds r0, r0, r1 + ldrb r0, [r0] + adds r7, r3, #0 + cmp r0, #0 + beq _08189410 + ldr r0, [r4] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r3, r0, r1 + ldrb r2, [r3, #1] + lsls r1, r2, #0x1b + lsrs r0, r1, #0x1c + cmp r0, #1 + bhi _08189408 + adds r0, #1 + movs r1, #0xf + ands r0, r1 + lsls r0, r0, #1 + movs r1, #0x1f + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #1] + b _0818946E + .align 2, 0 +_081893FC: .4byte 0x02024174 +_08189400: .4byte 0x02023D08 +_08189404: .4byte 0x02022D08 +_08189408: + movs r0, #0x1f + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r3, #1] +_08189410: + adds r5, r7, #0 + ldrb r0, [r5] + lsls r3, r0, #9 + ldr r4, _08189474 + adds r1, r3, r4 + subs r2, r4, #3 + adds r2, r3, r2 + ldrb r2, [r2] + subs r4, #2 + adds r3, r3, r4 + ldrb r3, [r3] + bl CreatePartyStatusSummarySprites + ldr r2, _08189478 + ldrb r1, [r5] + adds r1, r1, r2 + movs r3, #0 + strb r0, [r1] + ldr r6, _0818947C + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strb r3, [r0, #5] + ldrb r2, [r5] + lsls r0, r2, #9 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0 + beq _08189462 + ldr r0, [r6] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + movs r1, #0x5d + strb r1, [r0, #5] +_08189462: + ldr r0, _08189480 + ldrb r1, [r7] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, _08189484 + str r0, [r1] +_0818946E: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08189474: .4byte 0x02022D0C +_08189478: .4byte 0x02024158 +_0818947C: .4byte 0x02024174 +_08189480: .4byte 0x03005AC0 +_08189484: .4byte 0x08189489 + thumb_func_end RecordedOpponentHandleDrawPartyStatusSummary + + thumb_func_start sub_08189488 +sub_08189488: @ 0x08189488 + push {r4, lr} + ldr r4, _081894C8 + ldr r0, [r4] + ldr r3, _081894CC + ldrb r1, [r3] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #5] + adds r2, r1, #1 + strb r2, [r0, #5] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0x5c + bls _081894C0 + ldr r0, [r4] + ldrb r1, [r3] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0 + strb r1, [r0, #5] + bl RecordedOpponentBufferExecCompleted +_081894C0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081894C8: .4byte 0x02024174 +_081894CC: .4byte 0x02023D08 + thumb_func_end sub_08189488 + + thumb_func_start RecordedOpponentHandleHidePartyStatusSummary +RecordedOpponentHandleHidePartyStatusSummary: @ 0x081894D0 + push {lr} + ldr r0, _0818950C + ldr r1, [r0] + ldr r0, _08189510 + ldrb r3, [r0] + ldr r1, [r1, #4] + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08189502 + ldr r2, _08189514 + ldr r0, _08189518 + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldr r1, _0818951C + str r1, [r0] +_08189502: + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_0818950C: .4byte 0x02024174 +_08189510: .4byte 0x02023D08 +_08189514: .4byte 0x03005B60 +_08189518: .4byte 0x02024158 +_0818951C: .4byte 0x0807352D + thumb_func_end RecordedOpponentHandleHidePartyStatusSummary + + thumb_func_start RecordedOpponentHandleEndBounceEffect +RecordedOpponentHandleEndBounceEffect: @ 0x08189520 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedOpponentHandleEndBounceEffect + + thumb_func_start RecordedOpponentHandleSpriteInvisibility +RecordedOpponentHandleSpriteInvisibility: @ 0x0818952C + push {r4, lr} + ldr r4, _0818957C + ldrb r0, [r4] + bl IsBattlerSpritePresent + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08189572 + ldr r3, _08189580 + ldr r0, _08189584 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r0, _08189588 + lsls r1, r1, #9 + adds r0, #1 + adds r1, r1, r0 + adds r2, #0x3e + movs r0, #1 + ldrb r1, [r1] + ands r1, r0 + lsls r1, r1, #2 + ldrb r3, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4] + bl CopyBattleSpriteInvisibility +_08189572: + bl RecordedOpponentBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0818957C: .4byte 0x02023D08 +_08189580: .4byte 0x020205AC +_08189584: .4byte 0x02023E88 +_08189588: .4byte 0x02022D08 + thumb_func_end RecordedOpponentHandleSpriteInvisibility + + thumb_func_start RecordedOpponentHandleBattleAnimation +RecordedOpponentHandleBattleAnimation: @ 0x0818958C + push {r4, r5, r6, lr} + sub sp, #4 + ldr r6, _081895D0 + ldrb r0, [r6] + bl mplay_80342A4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081895E4 + ldr r5, _081895D4 + ldrb r2, [r6] + lsls r1, r2, #9 + adds r0, r5, #1 + adds r0, r1, r0 + ldrb r3, [r0] + adds r0, r5, #2 + adds r0, r1, r0 + ldrb r4, [r0] + adds r5, #3 + adds r1, r1, r5 + ldrb r0, [r1] + lsls r0, r0, #8 + orrs r4, r0 + str r4, [sp] + adds r0, r2, #0 + adds r1, r2, #0 + bl TryHandleLaunchBattleTableAnimation + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081895D8 + bl RecordedOpponentBufferExecCompleted + b _081895E4 + .align 2, 0 +_081895D0: .4byte 0x02023D08 +_081895D4: .4byte 0x02022D08 +_081895D8: + ldr r0, _081895EC + ldrb r1, [r6] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, _081895F0 + str r0, [r1] +_081895E4: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081895EC: .4byte 0x03005AC0 +_081895F0: .4byte 0x08186EA9 + thumb_func_end RecordedOpponentHandleBattleAnimation + + thumb_func_start RecordedOpponentHandleLinkStandbyMsg +RecordedOpponentHandleLinkStandbyMsg: @ 0x081895F4 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedOpponentHandleLinkStandbyMsg + + thumb_func_start RecordedOpponentHandleResetActionMoveSelection +RecordedOpponentHandleResetActionMoveSelection: @ 0x08189600 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedOpponentHandleResetActionMoveSelection + + thumb_func_start RecordedOpponentHandleCmd55 +RecordedOpponentHandleCmd55: @ 0x0818960C + push {lr} + ldr r1, _08189628 + ldr r0, _0818962C + ldrb r0, [r0] + lsls r0, r0, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r2, [r0] + cmp r2, #3 + bne _08189634 + ldr r0, _08189630 + strb r2, [r0] + b _0818963C + .align 2, 0 +_08189628: .4byte 0x02022D08 +_0818962C: .4byte 0x02023D08 +_08189630: .4byte 0x02023FDE +_08189634: + ldr r0, _08189660 + movs r1, #3 + eors r1, r2 + strb r1, [r0] +_0818963C: + movs r0, #5 + bl FadeOutMapMusic + movs r0, #3 + bl BeginFastPaletteFade + bl RecordedOpponentBufferExecCompleted + ldr r1, _08189664 + ldr r0, _08189668 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0818966C + str r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_08189660: .4byte 0x02023FDE +_08189664: .4byte 0x03005AC0 +_08189668: .4byte 0x02023D08 +_0818966C: .4byte 0x080583C1 + thumb_func_end RecordedOpponentHandleCmd55 + + thumb_func_start RecordedOpponentCmdEnd +RecordedOpponentCmdEnd: @ 0x08189670 + bx lr + .align 2, 0 + thumb_func_end RecordedOpponentCmdEnd + diff --git a/asm/battle_controller_recorded_player.s b/asm/battle_controller_recorded_player.s new file mode 100644 index 0000000..4c4356c --- /dev/null +++ b/asm/battle_controller_recorded_player.s @@ -0,0 +1,6685 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start nullsub_120 +nullsub_120: @ 0x08189674 + bx lr + .align 2, 0 + thumb_func_end nullsub_120 + + thumb_func_start SetControllerToRecordedPlayer +SetControllerToRecordedPlayer: @ 0x08189678 + ldr r1, _08189688 + ldr r0, _0818968C + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08189690 + str r1, [r0] + bx lr + .align 2, 0 +_08189688: .4byte 0x03005AC0 +_0818968C: .4byte 0x02023D08 +_08189690: .4byte 0x08189695 + thumb_func_end SetControllerToRecordedPlayer + + thumb_func_start RecordedPlayerBufferRunCommand +RecordedPlayerBufferRunCommand: @ 0x08189694 + push {lr} + ldr r2, _081896C8 + ldr r1, _081896CC + ldr r0, _081896D0 + ldrb r3, [r0] + lsls r0, r3, #2 + adds r0, r0, r1 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _081896E0 + ldr r0, _081896D4 + lsls r1, r3, #9 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0x38 + bhi _081896DC + ldr r0, _081896D8 + ldrb r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl _call_via_r0 + b _081896E0 + .align 2, 0 +_081896C8: .4byte 0x02023D0C +_081896CC: .4byte 0x082FACB4 +_081896D0: .4byte 0x02023D08 +_081896D4: .4byte 0x02022D08 +_081896D8: .4byte 0x085D39D4 +_081896DC: + bl RecordedPlayerBufferExecCompleted +_081896E0: + pop {r0} + bx r0 + thumb_func_end RecordedPlayerBufferRunCommand + + thumb_func_start sub_081896E4 +sub_081896E4: @ 0x081896E4 + push {lr} + ldr r2, _0818970C + ldr r1, _08189710 + ldr r0, _08189714 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _08189718 + cmp r1, r0 + bne _08189708 + bl RecordedPlayerBufferExecCompleted +_08189708: + pop {r0} + bx r0 + .align 2, 0 +_0818970C: .4byte 0x020205AC +_08189710: .4byte 0x02023E88 +_08189714: .4byte 0x02023D08 +_08189718: .4byte 0x08007141 + thumb_func_end sub_081896E4 + + thumb_func_start sub_0818971C +sub_0818971C: @ 0x0818971C + push {r4, r5, r6, lr} + ldr r6, _08189774 + ldr r5, _08189778 + ldr r4, _0818977C + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r6, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, [r0] + ldr r0, _08189780 + cmp r1, r0 + bne _0818976C + movs r0, #0 + bl sub_0805DBFC + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + bl FreeSpriteOamMatrix + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + bl DestroySprite + bl RecordedPlayerBufferExecCompleted +_0818976C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08189774: .4byte 0x020205AC +_08189778: .4byte 0x02023E88 +_0818977C: .4byte 0x02023D08 +_08189780: .4byte 0x08007141 + thumb_func_end sub_0818971C + + thumb_func_start sub_08189784 +sub_08189784: @ 0x08189784 + push {r4, lr} + ldr r4, _081897C4 + ldr r1, [r4] + ldr r3, _081897C8 + ldrb r0, [r3] + ldr r2, [r1, #4] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r0, [r1, #9] + subs r0, #1 + strb r0, [r1, #9] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _081897BC + ldr r0, [r4] + ldrb r1, [r3] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0 + strb r1, [r0, #9] + bl RecordedPlayerBufferExecCompleted +_081897BC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081897C4: .4byte 0x02024174 +_081897C8: .4byte 0x02023D08 + thumb_func_end sub_08189784 + + thumb_func_start sub_081897CC +sub_081897CC: @ 0x081897CC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + movs r6, #0 + ldr r4, _08189824 + ldrb r0, [r4] + bl GetBattlerPosition + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081897E6 + b _0818998C +_081897E6: + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08189806 + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08189838 + ldr r0, _08189828 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08189838 +_08189806: + ldr r2, _0818982C + ldr r1, _08189830 + ldrb r0, [r4] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _08189834 + cmp r1, r0 + bne _0818986E + b _08189874 + .align 2, 0 +_08189824: .4byte 0x02023D08 +_08189828: .4byte 0x02022C90 +_0818982C: .4byte 0x020205AC +_08189830: .4byte 0x03005AD0 +_08189834: .4byte 0x08007141 +_08189838: + ldr r2, _08189968 + ldr r5, _0818996C + ldr r0, _08189970 + ldrb r3, [r0] + adds r0, r3, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r4, [r0] + ldr r0, _08189974 + cmp r4, r0 + bne _0818986E + movs r0, #2 + eors r3, r0 + adds r0, r3, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + cmp r0, r4 + bne _0818986E + movs r6, #1 +_0818986E: + cmp r6, #0 + bne _08189874 + b _08189A44 +_08189874: + ldr r0, _08189978 + mov sb, r0 + ldr r0, [r0] + ldr r5, _08189970 + ldrb r2, [r5] + ldr r3, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r4, r0, r3 + ldrb r1, [r4, #1] + movs r6, #1 + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + bne _08189896 + b _08189A44 +_08189896: + movs r1, #2 + mov r8, r1 + mov r1, r8 + eors r1, r2 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #1] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + bne _081898B2 + b _08189A44 +_081898B2: + ldrb r1, [r4] + movs r3, #0x7f + adds r0, r3, #0 + ands r0, r1 + strb r0, [r4] + mov r1, sb + ldr r0, [r1] + ldrb r2, [r5] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + movs r4, #2 + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r2 + strb r0, [r1, #1] + mov r0, sb + ldr r2, [r0] + ldrb r0, [r5] + mov r1, r8 + eors r1, r0 + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + ands r3, r1 + strb r3, [r0] + mov r1, sb + ldr r2, [r1] + ldrb r0, [r5] + mov r1, r8 + eors r1, r0 + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #1] + ands r4, r1 + strb r4, [r0, #1] + ldr r4, _0818997C + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl FreeSpritePaletteByTag + ldr r7, _08189980 + ldrb r1, [r5] + lsls r0, r1, #1 + adds r0, r0, r7 + ldrh r0, [r0] + movs r6, #0x64 + muls r0, r6, r0 + ldr r4, _08189984 + adds r0, r0, r4 + bl HandleLowHpMusicChange + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0818994E + ldrb r0, [r5] + mov r1, r8 + eors r1, r0 + lsls r0, r1, #1 + adds r0, r0, r7 + ldrh r0, [r0] + muls r0, r6, r0 + adds r0, r0, r4 + bl HandleLowHpMusicChange +_0818994E: + mov r1, sb + ldr r0, [r1] + ldrb r1, [r5] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #3 + strb r1, [r0, #9] + ldr r1, _08189988 + ldrb r0, [r5] + b _08189A3C + .align 2, 0 +_08189968: .4byte 0x020205AC +_0818996C: .4byte 0x03005AD0 +_08189970: .4byte 0x02023D08 +_08189974: .4byte 0x08007141 +_08189978: .4byte 0x02024174 +_0818997C: .4byte 0x000027F9 +_08189980: .4byte 0x02023D12 +_08189984: .4byte 0x02024190 +_08189988: .4byte 0x03005AC0 +_0818998C: + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081899AC + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081899DC + ldr r0, _081899CC + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _081899DC +_081899AC: + ldr r2, _081899D0 + ldr r1, _081899D4 + ldrb r0, [r4] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _081899D8 + cmp r1, r0 + bne _08189A12 + b _08189A10 + .align 2, 0 +_081899CC: .4byte 0x02022C90 +_081899D0: .4byte 0x020205AC +_081899D4: .4byte 0x03005AD0 +_081899D8: .4byte 0x08007141 +_081899DC: + ldr r2, _08189A50 + ldr r5, _08189A54 + ldr r0, _08189A58 + ldrb r3, [r0] + adds r0, r3, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r4, [r0] + ldr r0, _08189A5C + cmp r4, r0 + bne _08189A12 + movs r0, #2 + eors r3, r0 + adds r0, r3, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + cmp r0, r4 + bne _08189A12 +_08189A10: + movs r6, #1 +_08189A12: + bl IsCryPlayingOrClearCrySongs + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08189A1E + movs r6, #0 +_08189A1E: + cmp r6, #0 + beq _08189A44 + ldr r0, _08189A60 + ldr r0, [r0] + ldr r3, _08189A58 + ldrb r1, [r3] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #3 + strb r1, [r0, #9] + ldr r1, _08189A64 + ldrb r0, [r3] +_08189A3C: + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08189A68 + str r1, [r0] +_08189A44: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08189A50: .4byte 0x020205AC +_08189A54: .4byte 0x03005AD0 +_08189A58: .4byte 0x02023D08 +_08189A5C: .4byte 0x08007141 +_08189A60: .4byte 0x02024174 +_08189A64: .4byte 0x03005AC0 +_08189A68: .4byte 0x08189785 + thumb_func_end sub_081897CC + + thumb_func_start sub_08189A6C +sub_08189A6C: @ 0x08189A6C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + movs r0, #0 + mov sl, r0 + ldr r4, _08189C48 + ldrb r0, [r4] + bl GetBattlerPosition + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08189AEA + ldr r5, _08189C4C + ldr r0, [r5] + ldrb r2, [r4] + ldr r1, [r0, #4] + lsls r3, r2, #1 + adds r0, r3, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r6, #0x88 + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + bne _08189AB8 + ldr r0, _08189C50 + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _08189C54 + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_08172CD4 +_08189AB8: + ldr r2, [r5] + ldrb r1, [r4] + movs r0, #2 + adds r3, r0, #0 + eors r3, r1 + ldr r1, [r2, #4] + lsls r2, r3, #1 + adds r0, r2, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + bne _08189AEA + ldr r0, _08189C50 + adds r0, r2, r0 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _08189C54 + adds r1, r1, r0 + adds r0, r3, #0 + bl sub_08172CD4 +_08189AEA: + ldr r3, _08189C4C + ldr r0, [r3] + ldr r2, _08189C48 + ldrb r5, [r2] + ldr r4, [r0, #4] + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r6, r0, r4 + ldrb r1, [r6] + movs r0, #8 + mov ip, r0 + ands r0, r1 + mov sb, r2 + mov r8, r3 + cmp r0, #0 + bne _08189BCE + movs r7, #2 + adds r1, r7, #0 + eors r1, r5 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r1, [r0] + mov r0, ip + ands r0, r1 + cmp r0, #0 + bne _08189BCE + ldrb r1, [r6, #1] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08189BB0 + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08189B80 + ldr r0, _08189C58 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08189B80 + ldr r4, _08189C5C + mov r1, sb + ldrb r0, [r1] + adds r1, r7, #0 + eors r1, r0 + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, _08189C50 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _08189C54 + adds r1, r1, r2 + movs r2, #0 + bl UpdateHealthboxAttribute + mov r1, sb + ldrb r0, [r1] + eors r0, r7 + bl sub_08076320 + mov r1, sb + ldrb r0, [r1] + eors r0, r7 + adds r0, r0, r4 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible +_08189B80: + ldr r5, _08189C5C + ldr r4, _08189C48 + ldrb r1, [r4] + adds r0, r1, r5 + ldrb r0, [r0] + ldr r2, _08189C50 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _08189C54 + adds r1, r1, r2 + movs r2, #0 + bl UpdateHealthboxAttribute + ldrb r0, [r4] + bl sub_08076320 + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible +_08189BB0: + ldr r4, _08189C4C + ldr r0, [r4] + ldr r3, _08189C48 + ldrb r1, [r3] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #1] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0, #1] + mov sb, r3 + mov r8, r4 +_08189BCE: + mov r1, r8 + ldr r0, [r1] + mov r1, sb + ldrb r2, [r1] + ldr r3, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #1] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0x80 + bne _08189C8E + movs r1, #2 + eors r1, r2 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #1] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08189C8E + bl IsCryPlayingOrClearCrySongs + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08189C8E + mov r1, r8 + ldr r0, [r1] + mov r1, sb + ldrb r2, [r1] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #1] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _08189C70 + ldr r0, _08189C58 + ldr r0, [r0] + movs r1, #0x42 + ands r0, r1 + cmp r0, #0x42 + bne _08189C64 + adds r0, r2, #0 + bl GetBattlerPosition + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08189C70 + ldr r0, _08189C60 + bl m4aMPlayContinue + b _08189C70 + .align 2, 0 +_08189C48: .4byte 0x02023D08 +_08189C4C: .4byte 0x02024174 +_08189C50: .4byte 0x02023D12 +_08189C54: .4byte 0x02024190 +_08189C58: .4byte 0x02022C90 +_08189C5C: .4byte 0x03005AD0 +_08189C60: .4byte 0x030074D0 +_08189C64: + ldr r0, _08189D64 + ldr r1, _08189D68 + movs r2, #0x80 + lsls r2, r2, #1 + bl m4aMPlayVolumeControl +_08189C70: + ldr r0, _08189D6C + ldr r2, [r0] + ldr r0, _08189D70 + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #1] + movs r2, #0x20 + orrs r1, r2 + strb r1, [r0, #1] + movs r0, #1 + mov sl, r0 +_08189C8E: + mov r1, sl + cmp r1, #0 + beq _08189D56 + ldr r7, _08189D74 + ldr r6, _08189D78 + ldr r5, _08189D70 + ldrb r3, [r5] + adds r0, r3, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, r7, #0 + adds r4, #0x1c + adds r0, r0, r4 + ldr r2, [r0] + ldr r0, _08189D7C + cmp r2, r0 + bne _08189D56 + ldr r0, _08189D80 + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r0, [r0] + cmp r0, r2 + bne _08189D56 + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08189CF4 + ldr r0, _08189D84 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08189CF4 + ldrb r1, [r5] + movs r0, #2 + eors r0, r1 + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + bl DestroySprite +_08189CF4: + ldr r1, _08189D78 + ldr r4, _08189D70 + ldrb r0, [r4] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08189D74 + adds r0, r0, r1 + bl DestroySprite + ldr r3, _08189D6C + ldr r0, [r3] + ldr r2, [r0, #8] + ldrb r1, [r2, #9] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #9] + ldr r0, [r3] + ldrb r2, [r4] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + movs r0, #0x21 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #1] + ldr r0, [r3] + ldrb r2, [r4] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + movs r0, #0x7f + ands r0, r2 + strb r0, [r1, #1] + ldr r1, _08189D88 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08189D8C + str r1, [r0] +_08189D56: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08189D64: .4byte 0x030074D0 +_08189D68: .4byte 0x0000FFFF +_08189D6C: .4byte 0x02024174 +_08189D70: .4byte 0x02023D08 +_08189D74: .4byte 0x020205AC +_08189D78: .4byte 0x03005ADC +_08189D7C: .4byte 0x08007141 +_08189D80: .4byte 0x02023E88 +_08189D84: .4byte 0x02022C90 +_08189D88: .4byte 0x03005AC0 +_08189D8C: .4byte 0x081897CD + thumb_func_end sub_08189A6C + + thumb_func_start RecordedPlayerHandleBallThrowAnim +RecordedPlayerHandleBallThrowAnim: @ 0x08189D90 + push {lr} + ldr r2, _08189DC4 + ldr r1, _08189DC8 + ldr r0, _08189DCC + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r2 + adds r0, r1, #0 + adds r0, #0x3f + ldrb r0, [r0] + lsls r0, r0, #0x1b + cmp r0, #0 + bge _08189DBE + movs r2, #0x24 + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _08189DBE + bl RecordedPlayerBufferExecCompleted +_08189DBE: + pop {r0} + bx r0 + .align 2, 0 +_08189DC4: .4byte 0x020205AC +_08189DC8: .4byte 0x02023E88 +_08189DCC: .4byte 0x02023D08 + thumb_func_end RecordedPlayerHandleBallThrowAnim + + thumb_func_start sub_08189DD0 +sub_08189DD0: @ 0x08189DD0 + push {r4, r5, r6, lr} + ldr r5, _08189E10 + ldrb r0, [r5] + ldr r6, _08189E14 + adds r1, r0, r6 + ldrb r1, [r1] + movs r2, #0 + movs r3, #0 + bl MoveBattleBar + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible + lsls r4, r4, #0x10 + asrs r1, r4, #0x10 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _08189E18 + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r0, [r0] + movs r2, #0 + bl sub_080726F4 + b _08189E32 + .align 2, 0 +_08189E10: .4byte 0x02023D08 +_08189E14: .4byte 0x03005AD0 +_08189E18: + ldr r2, _08189E38 + ldrb r1, [r5] + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r2, [r0] + movs r0, #0x64 + muls r0, r2, r0 + ldr r2, _08189E3C + adds r0, r0, r2 + bl HandleLowHpMusicChange + bl RecordedPlayerBufferExecCompleted +_08189E32: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08189E38: .4byte 0x02023D12 +_08189E3C: .4byte 0x02024190 + thumb_func_end sub_08189DD0 + + thumb_func_start sub_08189E40 +sub_08189E40: @ 0x08189E40 + push {r4, r5, r6, lr} + ldr r6, _08189EC4 + ldr r5, _08189EC8 + ldr r4, _08189ECC + ldrb r2, [r4] + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r3, #0x22 + ldrsh r1, [r0, r3] + movs r3, #0x26 + ldrsh r0, [r0, r3] + adds r1, r1, r0 + cmp r1, #0xa0 + ble _08189EBC + ldr r1, _08189ED0 + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08189ED4 + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl sub_0805DB50 + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r0, [r0, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + bl DestroySprite + ldr r1, _08189ED8 + ldrb r0, [r4] + adds r0, r0, r1 + ldrb r0, [r0] + bl SetHealthboxSpriteInvisible + bl RecordedPlayerBufferExecCompleted +_08189EBC: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08189EC4: .4byte 0x020205AC +_08189EC8: .4byte 0x02023E88 +_08189ECC: .4byte 0x02023D08 +_08189ED0: .4byte 0x02023D12 +_08189ED4: .4byte 0x02024190 +_08189ED8: .4byte 0x03005AD0 + thumb_func_end sub_08189E40 + + thumb_func_start sub_08189EDC +sub_08189EDC: @ 0x08189EDC + push {r4, r5, r6, lr} + ldr r0, _08189F38 + ldr r0, [r0] + ldr r6, _08189F3C + ldrb r2, [r6] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08189F30 + ldr r5, _08189F40 + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _08189F44 + adds r0, r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + ldr r1, _08189F48 + ldrb r0, [r6] + adds r0, r0, r1 + ldrb r0, [r0] + bl SetHealthboxSpriteInvisible + bl RecordedPlayerBufferExecCompleted +_08189F30: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08189F38: .4byte 0x02024174 +_08189F3C: .4byte 0x02023D08 +_08189F40: .4byte 0x02023E88 +_08189F44: .4byte 0x020205AC +_08189F48: .4byte 0x03005AD0 + thumb_func_end sub_08189EDC + + thumb_func_start RecordedPlayerHandleChosenMonReturnValue +RecordedPlayerHandleChosenMonReturnValue: @ 0x08189F4C + push {lr} + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08189F5E + bl RecordedPlayerBufferExecCompleted +_08189F5E: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedPlayerHandleChosenMonReturnValue + + thumb_func_start RecordedPlayerHandleHitAnimation +RecordedPlayerHandleHitAnimation: @ 0x08189F64 + push {r4, lr} + ldr r1, _08189FA0 + ldr r0, _08189FA4 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + ldr r2, _08189FA8 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, r0, r2 + movs r1, #0x30 + ldrsh r0, [r4, r1] + cmp r0, #0x20 + bne _08189FB0 + movs r3, #0 + movs r0, #0 + strh r0, [r4, #0x30] + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + subs r0, #5 + ands r0, r1 + strb r0, [r2] + ldr r0, _08189FAC + strb r3, [r0] + bl RecordedPlayerBufferExecCompleted + b _08189FDA + .align 2, 0 +_08189FA0: .4byte 0x02023E88 +_08189FA4: .4byte 0x02023D08 +_08189FA8: .4byte 0x020205AC +_08189FAC: .4byte 0x0202415D +_08189FB0: + ldrh r0, [r4, #0x30] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _08189FD4 + adds r3, r4, #0 + adds r3, #0x3e + ldrb r2, [r3] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_08189FD4: + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] +_08189FDA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end RecordedPlayerHandleHitAnimation + + thumb_func_start sub_08189FE0 +sub_08189FE0: @ 0x08189FE0 + push {r4, lr} + ldr r2, _0818A038 + ldr r0, _0818A03C + ldr r4, _0818A040 + ldrb r3, [r4] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _0818A044 + cmp r1, r0 + bne _0818A032 + adds r0, r3, #0 + bl CopyBattleSpriteInvisibility + ldr r0, _0818A048 + ldr r0, [r0] + ldrb r2, [r4] + ldr r1, [r0] + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0818A026 + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #6 + bl InitAndLaunchSpecialAnimation +_0818A026: + ldr r0, _0818A04C + ldrb r1, [r4] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, _0818A050 + str r0, [r1] +_0818A032: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0818A038: .4byte 0x020205AC +_0818A03C: .4byte 0x03005AD0 +_0818A040: .4byte 0x02023D08 +_0818A044: .4byte 0x08007141 +_0818A048: .4byte 0x02024174 +_0818A04C: .4byte 0x03005AC0 +_0818A050: .4byte 0x0818A055 + thumb_func_end sub_08189FE0 + + thumb_func_start sub_0818A054 +sub_0818A054: @ 0x0818A054 + push {lr} + ldr r0, _0818A094 + ldr r1, [r0] + ldr r0, _0818A098 + ldrb r3, [r0] + ldr r1, [r1, #4] + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _0818A090 + ldr r2, _0818A09C + ldr r0, _0818A0A0 + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _0818A0A4 + cmp r1, r0 + bne _0818A090 + bl RecordedPlayerBufferExecCompleted +_0818A090: + pop {r0} + bx r0 + .align 2, 0 +_0818A094: .4byte 0x02024174 +_0818A098: .4byte 0x02023D08 +_0818A09C: .4byte 0x020205AC +_0818A0A0: .4byte 0x02023E88 +_0818A0A4: .4byte 0x08007141 + thumb_func_end sub_0818A054 + + thumb_func_start sub_0818A0A8 +sub_0818A0A8: @ 0x0818A0A8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r3, _0818A170 + ldr r0, [r3] + ldr r7, _0818A174 + ldrb r1, [r7] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, r0, r2 + ldrb r1, [r2, #1] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0818A164 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + ldr r0, [r3] + ldrb r2, [r7] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #1] + ldr r4, _0818A178 + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl FreeSpritePaletteByTag + ldr r0, _0818A17C + movs r1, #0xa + bl CreateTask + ldr r0, _0818A180 + mov r8, r0 + ldrb r1, [r7] + lsls r0, r1, #1 + add r0, r8 + ldrh r0, [r0] + movs r6, #0x64 + muls r0, r6, r0 + ldr r5, _0818A184 + adds r0, r0, r5 + bl HandleLowHpMusicChange + ldr r1, _0818A188 + ldrb r0, [r7] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0818A18C + adds r0, r0, r1 + movs r1, #0 + bl StartSpriteAnim + ldr r4, _0818A190 + ldrb r1, [r7] + adds r0, r1, r4 + ldrb r0, [r0] + lsls r1, r1, #1 + add r1, r8 + ldrh r1, [r1] + muls r1, r6, r1 + adds r1, r1, r5 + movs r2, #0 + bl UpdateHealthboxAttribute + ldrb r0, [r7] + bl sub_08076320 + ldrb r0, [r7] + adds r0, r0, r4 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible + ldr r1, _0818A194 + ldrb r0, [r7] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0818A198 + str r1, [r0] +_0818A164: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0818A170: .4byte 0x02024174 +_0818A174: .4byte 0x02023D08 +_0818A178: .4byte 0x000027F9 +_0818A17C: .4byte 0x08058D11 +_0818A180: .4byte 0x02023D12 +_0818A184: .4byte 0x02024190 +_0818A188: .4byte 0x02023E88 +_0818A18C: .4byte 0x020205AC +_0818A190: .4byte 0x03005AD0 +_0818A194: .4byte 0x03005AC0 +_0818A198: .4byte 0x08189FE1 + thumb_func_end sub_0818A0A8 + + thumb_func_start sub_0818A19C +sub_0818A19C: @ 0x0818A19C + push {r4, r5, r6, lr} + ldr r6, _0818A21C + ldr r0, [r6] + ldr r4, _0818A220 + ldrb r2, [r4] + ldr r1, [r0, #4] + lsls r3, r2, #1 + adds r0, r3, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x88 + ands r0, r1 + cmp r0, #0 + bne _0818A1CE + ldr r0, _0818A224 + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _0818A228 + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_08172CD4 +_0818A1CE: + ldr r5, _0818A22C + ldr r0, _0818A230 + ldrb r2, [r4] + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r3, r0, #2 + adds r0, r5, #0 + adds r0, #0x1c + adds r0, r3, r0 + ldr r1, [r0] + ldr r0, _0818A234 + cmp r1, r0 + bne _0818A214 + ldr r0, [r6] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + bne _0818A214 + adds r0, r3, r5 + bl DestroySprite + ldr r1, _0818A238 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0818A23C + str r1, [r0] +_0818A214: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0818A21C: .4byte 0x02024174 +_0818A220: .4byte 0x02023D08 +_0818A224: .4byte 0x02023D12 +_0818A228: .4byte 0x02024190 +_0818A22C: .4byte 0x020205AC +_0818A230: .4byte 0x03005ADC +_0818A234: .4byte 0x08007141 +_0818A238: .4byte 0x03005AC0 +_0818A23C: .4byte 0x0818A0A9 + thumb_func_end sub_0818A19C + + thumb_func_start RecordedPlayerBufferExecCompleted +RecordedPlayerBufferExecCompleted: @ 0x0818A240 + push {r4, lr} + sub sp, #4 + ldr r1, _0818A280 + ldr r4, _0818A284 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0818A288 + str r1, [r0] + ldr r0, _0818A28C + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _0818A294 + bl GetMultiplayerId + mov r1, sp + strb r0, [r1] + movs r0, #2 + movs r1, #4 + mov r2, sp + bl PrepareBufferDataTransferLink + ldr r1, _0818A290 + ldrb r0, [r4] + lsls r0, r0, #9 + adds r0, r0, r1 + movs r1, #0x38 + strb r1, [r0] + b _0818A2A6 + .align 2, 0 +_0818A280: .4byte 0x03005AC0 +_0818A284: .4byte 0x02023D08 +_0818A288: .4byte 0x08189695 +_0818A28C: .4byte 0x02022C90 +_0818A290: .4byte 0x02022D08 +_0818A294: + ldr r2, _0818A2B0 + ldr r1, _0818A2B4 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + ldr r0, [r2] + bics r0, r1 + str r0, [r2] +_0818A2A6: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0818A2B0: .4byte 0x02023D0C +_0818A2B4: .4byte 0x082FACB4 + thumb_func_end RecordedPlayerBufferExecCompleted + + thumb_func_start RecordedPlayerHandleGetRawMonData +RecordedPlayerHandleGetRawMonData: @ 0x0818A2B8 + push {lr} + ldr r0, _0818A2E0 + ldr r2, [r0] + ldr r0, _0818A2E4 + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _0818A2DA + bl RecordedPlayerBufferExecCompleted +_0818A2DA: + pop {r0} + bx r0 + .align 2, 0 +_0818A2E0: .4byte 0x02024174 +_0818A2E4: .4byte 0x02023D08 + thumb_func_end RecordedPlayerHandleGetRawMonData + + thumb_func_start RecordedPlayerHandleOneReturnValue +RecordedPlayerHandleOneReturnValue: @ 0x0818A2E8 + push {lr} + ldr r0, _0818A310 + ldr r2, [r0] + ldr r0, _0818A314 + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _0818A30A + bl RecordedPlayerBufferExecCompleted +_0818A30A: + pop {r0} + bx r0 + .align 2, 0 +_0818A310: .4byte 0x02024174 +_0818A314: .4byte 0x02023D08 + thumb_func_end RecordedPlayerHandleOneReturnValue + + thumb_func_start RecordedPlayerHandleGetMonData +RecordedPlayerHandleGetMonData: @ 0x0818A318 + push {r4, r5, r6, lr} + sub sp, #0x100 + movs r6, #0 + ldr r1, _0818A344 + ldr r0, _0818A348 + ldrb r2, [r0] + lsls r0, r2, #9 + adds r1, #2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, #0 + bne _0818A350 + ldr r0, _0818A34C + lsls r1, r2, #1 + adds r1, r1, r0 + ldrb r0, [r1] + mov r1, sp + bl CopyRecordedPlayerMonData + adds r6, r0, #0 + b _0818A372 + .align 2, 0 +_0818A344: .4byte 0x02022D08 +_0818A348: .4byte 0x02023D08 +_0818A34C: .4byte 0x02023D12 +_0818A350: + ldrb r4, [r1] + movs r5, #0 +_0818A354: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _0818A36A + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + mov r2, sp + adds r1, r2, r6 + bl CopyRecordedPlayerMonData + adds r6, r6, r0 +_0818A36A: + lsrs r4, r4, #1 + adds r5, #1 + cmp r5, #5 + ble _0818A354 +_0818A372: + lsls r1, r6, #0x10 + lsrs r1, r1, #0x10 + movs r0, #1 + mov r2, sp + bl BtlController_EmitDataTransfer + bl RecordedPlayerBufferExecCompleted + add sp, #0x100 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedPlayerHandleGetMonData + + thumb_func_start CopyRecordedPlayerMonData +CopyRecordedPlayerMonData: @ 0x0818A38C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x90 + adds r7, r1, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r6, #0 + ldr r2, _0818A3C0 + ldr r3, _0818A3C4 + ldrb r0, [r3] + lsls r0, r0, #9 + adds r1, r2, #1 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0x3b + bls _0818A3B6 + bl _0818AB22 +_0818A3B6: + lsls r0, r0, #2 + ldr r1, _0818A3C8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0818A3C0: .4byte 0x02022D08 +_0818A3C4: .4byte 0x02023D08 +_0818A3C8: .4byte 0x0818A3CC +_0818A3CC: @ jump table + .4byte _0818A4BC @ case 0 + .4byte _0818A6E0 @ case 1 + .4byte _0818A6F0 @ case 2 + .4byte _0818A700 @ case 3 + .4byte _0818A768 @ case 4 + .4byte _0818A768 @ case 5 + .4byte _0818A768 @ case 6 + .4byte _0818A768 @ case 7 + .4byte _0818A784 @ case 8 + .4byte _0818A7C0 @ case 9 + .4byte _0818A7C0 @ case 10 + .4byte _0818A7C0 @ case 11 + .4byte _0818A7C0 @ case 12 + .4byte _0818AB22 @ case 13 + .4byte _0818AB22 @ case 14 + .4byte _0818AB22 @ case 15 + .4byte _0818AB22 @ case 16 + .4byte _0818A7DC @ case 17 + .4byte _0818A7EC @ case 18 + .4byte _0818A81C @ case 19 + .4byte _0818A82C @ case 20 + .4byte _0818A83C @ case 21 + .4byte _0818A84C @ case 22 + .4byte _0818A85C @ case 23 + .4byte _0818A86C @ case 24 + .4byte _0818A87C @ case 25 + .4byte _0818A88C @ case 26 + .4byte _0818A89C @ case 27 + .4byte _0818A8AC @ case 28 + .4byte _0818A8BC @ case 29 + .4byte _0818A8CC @ case 30 + .4byte _0818A8DC @ case 31 + .4byte _0818A92C @ case 32 + .4byte _0818A93C @ case 33 + .4byte _0818A94C @ case 34 + .4byte _0818A95C @ case 35 + .4byte _0818A96C @ case 36 + .4byte _0818A97C @ case 37 + .4byte _0818A98C @ case 38 + .4byte _0818A99C @ case 39 + .4byte _0818A9AC @ case 40 + .4byte _0818A9E0 @ case 41 + .4byte _0818A9F0 @ case 42 + .4byte _0818AA00 @ case 43 + .4byte _0818AA10 @ case 44 + .4byte _0818AA20 @ case 45 + .4byte _0818AA30 @ case 46 + .4byte _0818AA40 @ case 47 + .4byte _0818AA50 @ case 48 + .4byte _0818AA70 @ case 49 + .4byte _0818AA80 @ case 50 + .4byte _0818AA90 @ case 51 + .4byte _0818AAA0 @ case 52 + .4byte _0818AAB0 @ case 53 + .4byte _0818AAC0 @ case 54 + .4byte _0818AAD0 @ case 55 + .4byte _0818AAE0 @ case 56 + .4byte _0818AAF0 @ case 57 + .4byte _0818AB00 @ case 58 + .4byte _0818AB10 @ case 59 +_0818A4BC: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _0818A6D0 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + mov r1, sp + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0xc + bl GetMonData + mov r1, sp + strh r0, [r1, #0x2e] + movs r6, #0 + add r0, sp, #0x24 + mov sb, r0 + movs r1, #0x3b + add r1, sp + mov sl, r1 + mov r2, sp + adds r2, #0x2b + str r2, [sp, #0x80] + mov r0, sp + adds r0, #0x2a + str r0, [sp, #0x7c] + mov r1, sp + adds r1, #0x68 + str r1, [sp, #0x8c] + adds r2, #5 + str r2, [sp, #0x84] + adds r0, #0x12 + str r0, [sp, #0x88] + mov r8, r4 + add r4, sp, #0xc +_0818A508: + adds r1, r6, #0 + adds r1, #0xd + mov r0, r8 + bl GetMonData + strh r0, [r4] + adds r1, r6, #0 + adds r1, #0x11 + mov r0, r8 + bl GetMonData + mov r2, sb + adds r1, r2, r6 + strb r0, [r1] + adds r4, #2 + adds r6, #1 + cmp r6, #3 + ble _0818A508 + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _0818A6D0 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x15 + bl GetMonData + mov r1, sl + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x20 + bl GetMonData + ldr r2, [sp, #0x80] + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0x19 + bl GetMonData + str r0, [sp, #0x44] + adds r0, r4, #0 + movs r1, #0x27 + bl GetMonData + mov r3, sp + movs r5, #0x1f + ands r0, r5 + ldrb r2, [r3, #0x14] + movs r1, #0x20 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x14] + adds r0, r4, #0 + movs r1, #0x28 + bl GetMonData + mov r3, sp + movs r6, #0x1f + ands r0, r6 + lsls r0, r0, #5 + ldrh r2, [r3, #0x14] + ldr r1, _0818A6D4 + ands r1, r2 + orrs r1, r0 + strh r1, [r3, #0x14] + adds r0, r4, #0 + movs r1, #0x29 + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, r0, #2 + ldrb r2, [r3, #0x15] + movs r1, #0x7d + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x15] + adds r0, r4, #0 + movs r1, #0x2a + bl GetMonData + movs r1, #0x1f + ands r1, r0 + lsls r1, r1, #0xf + ldr r0, [sp, #0x14] + ldr r2, _0818A6D8 + ands r0, r2 + orrs r0, r1 + str r0, [sp, #0x14] + adds r0, r4, #0 + movs r1, #0x2b + bl GetMonData + mov r3, sp + ands r0, r6 + lsls r0, r0, #4 + ldrh r2, [r3, #0x16] + ldr r1, _0818A6DC + ands r1, r2 + orrs r1, r0 + strh r1, [r3, #0x16] + adds r0, r4, #0 + movs r1, #0x2c + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, r0, #1 + ldrb r2, [r3, #0x17] + movs r1, #0x3f + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x17] + adds r0, r4, #0 + movs r1, #0 + bl GetMonData + str r0, [sp, #0x48] + adds r0, r4, #0 + movs r1, #0x37 + bl GetMonData + str r0, [sp, #0x4c] + adds r0, r4, #0 + movs r1, #0x38 + bl GetMonData + ldr r1, [sp, #0x7c] + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + mov r1, sp + strh r0, [r1, #0x28] + adds r0, r4, #0 + movs r1, #0x3a + bl GetMonData + mov r1, sp + strh r0, [r1, #0x2c] + adds r0, r4, #0 + movs r1, #0x3b + bl GetMonData + mov r1, sp + strh r0, [r1, #2] + adds r0, r4, #0 + movs r1, #0x3c + bl GetMonData + mov r1, sp + strh r0, [r1, #4] + adds r0, r4, #0 + movs r1, #0x3d + bl GetMonData + mov r1, sp + strh r0, [r1, #6] + adds r0, r4, #0 + movs r1, #0x3e + bl GetMonData + mov r1, sp + strh r0, [r1, #8] + adds r0, r4, #0 + movs r1, #0x3f + bl GetMonData + mov r1, sp + strh r0, [r1, #0xa] + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + mov r3, sp + movs r1, #1 + ands r0, r1 + lsls r0, r0, #6 + ldrb r2, [r3, #0x17] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x17] + adds r0, r4, #0 + movs r1, #0x2e + bl GetMonData + mov r3, sp + lsls r0, r0, #7 + ldrb r2, [r3, #0x17] + movs r1, #0x7f + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x17] + adds r0, r4, #0 + movs r1, #1 + bl GetMonData + str r0, [sp, #0x54] + adds r0, r4, #0 + movs r1, #2 + ldr r2, [sp, #0x8c] + bl GetMonData + ldr r0, [sp, #0x84] + ldr r1, [sp, #0x8c] + bl StringCopy10 + adds r0, r4, #0 + movs r1, #7 + ldr r2, [sp, #0x88] + bl GetMonData + mov r2, sp + movs r6, #0 +_0818A6C0: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, #1 + cmp r6, #0x57 + bls _0818A6C0 + b _0818AB22 + .align 2, 0 +_0818A6D0: .4byte 0x02024190 +_0818A6D4: .4byte 0xFFFFFC1F +_0818A6D8: .4byte 0xFFF07FFF +_0818A6DC: .4byte 0xFFFFFE0F +_0818A6E0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818A6EC + adds r0, r0, r1 + movs r1, #0xb + b _0818AA5A + .align 2, 0 +_0818A6EC: .4byte 0x02024190 +_0818A6F0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818A6FC + adds r0, r0, r1 + movs r1, #0xc + b _0818AA5A + .align 2, 0 +_0818A6FC: .4byte 0x02024190 +_0818A700: + movs r6, #0 + add r2, sp, #0x58 + mov sb, r2 + add r0, sp, #0x60 + mov sl, r0 + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _0818A764 + adds r4, r1, r0 + mov r8, sb +_0818A716: + adds r1, r6, #0 + adds r1, #0xd + adds r0, r4, #0 + bl GetMonData + mov r1, r8 + strh r0, [r1] + adds r1, r6, #0 + adds r1, #0x11 + adds r0, r4, #0 + bl GetMonData + mov r2, sl + adds r1, r2, r6 + strb r0, [r1] + movs r0, #2 + add r8, r0 + adds r6, #1 + cmp r6, #3 + ble _0818A716 + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818A764 + adds r0, r0, r1 + movs r1, #0x15 + bl GetMonData + mov r1, sb + strb r0, [r1, #0xc] + mov r2, sb + movs r6, #0 +_0818A754: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, #1 + cmp r6, #0xf + bls _0818A754 + b _0818AB22 + .align 2, 0 +_0818A764: .4byte 0x02024190 +_0818A768: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818A780 + adds r0, r0, r1 + ldrb r1, [r3] + lsls r1, r1, #9 + adds r2, #1 + adds r1, r1, r2 + ldrb r1, [r1] + adds r1, #9 + b _0818AA5A + .align 2, 0 +_0818A780: .4byte 0x02024190 +_0818A784: + movs r6, #0 + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r2, _0818A7BC + mov r8, r2 +_0818A790: + adds r1, r6, #0 + adds r1, #0x11 + mov r2, r8 + adds r0, r4, r2 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, #1 + cmp r6, #3 + ble _0818A790 + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818A7BC + adds r0, r0, r1 + movs r1, #0x15 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, #1 + b _0818AB22 + .align 2, 0 +_0818A7BC: .4byte 0x02024190 +_0818A7C0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818A7D8 + adds r0, r0, r1 + ldrb r1, [r3] + lsls r1, r1, #9 + adds r2, #1 + adds r1, r1, r2 + ldrb r1, [r1] + adds r1, #8 + b _0818AB1A + .align 2, 0 +_0818A7D8: .4byte 0x02024190 +_0818A7DC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818A7E8 + adds r0, r0, r1 + movs r1, #1 + b _0818A7F6 + .align 2, 0 +_0818A7E8: .4byte 0x02024190 +_0818A7EC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818A818 + adds r0, r0, r1 + movs r1, #0x19 +_0818A7F6: + bl GetMonData + adds r1, r0, #0 + strb r1, [r7] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + lsrs r0, r0, #8 + strb r0, [r7, #1] + movs r0, #0xff + lsls r0, r0, #0x10 + ands r0, r1 + lsrs r0, r0, #0x10 + strb r0, [r7, #2] + movs r6, #3 + b _0818AB22 + .align 2, 0 +_0818A818: .4byte 0x02024190 +_0818A81C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818A828 + adds r0, r0, r1 + movs r1, #0x1a + b _0818AB1A + .align 2, 0 +_0818A828: .4byte 0x02024190 +_0818A82C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818A838 + adds r0, r0, r1 + movs r1, #0x1b + b _0818AB1A + .align 2, 0 +_0818A838: .4byte 0x02024190 +_0818A83C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818A848 + adds r0, r0, r1 + movs r1, #0x1c + b _0818AB1A + .align 2, 0 +_0818A848: .4byte 0x02024190 +_0818A84C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818A858 + adds r0, r0, r1 + movs r1, #0x1d + b _0818AB1A + .align 2, 0 +_0818A858: .4byte 0x02024190 +_0818A85C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818A868 + adds r0, r0, r1 + movs r1, #0x1e + b _0818AB1A + .align 2, 0 +_0818A868: .4byte 0x02024190 +_0818A86C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818A878 + adds r0, r0, r1 + movs r1, #0x1f + b _0818AB1A + .align 2, 0 +_0818A878: .4byte 0x02024190 +_0818A87C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818A888 + adds r0, r0, r1 + movs r1, #0x20 + b _0818AB1A + .align 2, 0 +_0818A888: .4byte 0x02024190 +_0818A88C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818A898 + adds r0, r0, r1 + movs r1, #0x22 + b _0818AB1A + .align 2, 0 +_0818A898: .4byte 0x02024190 +_0818A89C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818A8A8 + adds r0, r0, r1 + movs r1, #0x23 + b _0818AB1A + .align 2, 0 +_0818A8A8: .4byte 0x02024190 +_0818A8AC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818A8B8 + adds r0, r0, r1 + movs r1, #0x24 + b _0818AB1A + .align 2, 0 +_0818A8B8: .4byte 0x02024190 +_0818A8BC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818A8C8 + adds r0, r0, r1 + movs r1, #0x25 + b _0818AB1A + .align 2, 0 +_0818A8C8: .4byte 0x02024190 +_0818A8CC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818A8D8 + adds r0, r0, r1 + movs r1, #0x26 + b _0818AB1A + .align 2, 0 +_0818A8D8: .4byte 0x02024190 +_0818A8DC: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _0818A928 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x27 + bl GetMonData + strb r0, [r7] + adds r0, r4, #0 + movs r1, #0x28 + bl GetMonData + strb r0, [r7, #1] + adds r0, r4, #0 + movs r1, #0x29 + bl GetMonData + strb r0, [r7, #2] + adds r0, r4, #0 + movs r1, #0x2a + bl GetMonData + strb r0, [r7, #3] + adds r0, r4, #0 + movs r1, #0x2b + bl GetMonData + strb r0, [r7, #4] + adds r0, r4, #0 + movs r1, #0x2c + bl GetMonData + strb r0, [r7, #5] + movs r6, #6 + b _0818AB22 + .align 2, 0 +_0818A928: .4byte 0x02024190 +_0818A92C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818A938 + adds r0, r0, r1 + movs r1, #0x27 + b _0818AB1A + .align 2, 0 +_0818A938: .4byte 0x02024190 +_0818A93C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818A948 + adds r0, r0, r1 + movs r1, #0x28 + b _0818AB1A + .align 2, 0 +_0818A948: .4byte 0x02024190 +_0818A94C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818A958 + adds r0, r0, r1 + movs r1, #0x29 + b _0818AB1A + .align 2, 0 +_0818A958: .4byte 0x02024190 +_0818A95C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818A968 + adds r0, r0, r1 + movs r1, #0x2a + b _0818AB1A + .align 2, 0 +_0818A968: .4byte 0x02024190 +_0818A96C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818A978 + adds r0, r0, r1 + movs r1, #0x2b + b _0818AB1A + .align 2, 0 +_0818A978: .4byte 0x02024190 +_0818A97C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818A988 + adds r0, r0, r1 + movs r1, #0x2c + b _0818AB1A + .align 2, 0 +_0818A988: .4byte 0x02024190 +_0818A98C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818A998 + adds r0, r0, r1 + movs r1, #0 + b _0818A9B6 + .align 2, 0 +_0818A998: .4byte 0x02024190 +_0818A99C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818A9A8 + adds r0, r0, r1 + movs r1, #9 + b _0818AA5A + .align 2, 0 +_0818A9A8: .4byte 0x02024190 +_0818A9AC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818A9DC + adds r0, r0, r1 + movs r1, #0x37 +_0818A9B6: + bl GetMonData + adds r1, r0, #0 + strb r1, [r7] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + lsrs r0, r0, #8 + strb r0, [r7, #1] + movs r0, #0xff + lsls r0, r0, #0x10 + ands r0, r1 + lsrs r0, r0, #0x10 + strb r0, [r7, #2] + lsrs r0, r1, #0x18 + strb r0, [r7, #3] + movs r6, #4 + b _0818AB22 + .align 2, 0 +_0818A9DC: .4byte 0x02024190 +_0818A9E0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818A9EC + adds r0, r0, r1 + movs r1, #0x38 + b _0818AB1A + .align 2, 0 +_0818A9EC: .4byte 0x02024190 +_0818A9F0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818A9FC + adds r0, r0, r1 + movs r1, #0x39 + b _0818AA5A + .align 2, 0 +_0818A9FC: .4byte 0x02024190 +_0818AA00: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818AA0C + adds r0, r0, r1 + movs r1, #0x3a + b _0818AA5A + .align 2, 0 +_0818AA0C: .4byte 0x02024190 +_0818AA10: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818AA1C + adds r0, r0, r1 + movs r1, #0x3b + b _0818AA5A + .align 2, 0 +_0818AA1C: .4byte 0x02024190 +_0818AA20: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818AA2C + adds r0, r0, r1 + movs r1, #0x3c + b _0818AA5A + .align 2, 0 +_0818AA2C: .4byte 0x02024190 +_0818AA30: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818AA3C + adds r0, r0, r1 + movs r1, #0x3d + b _0818AA5A + .align 2, 0 +_0818AA3C: .4byte 0x02024190 +_0818AA40: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818AA4C + adds r0, r0, r1 + movs r1, #0x3e + b _0818AA5A + .align 2, 0 +_0818AA4C: .4byte 0x02024190 +_0818AA50: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818AA6C + adds r0, r0, r1 + movs r1, #0x3f +_0818AA5A: + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + strb r0, [r7] + lsrs r0, r0, #8 + strb r0, [r7, #1] + movs r6, #2 + b _0818AB22 + .align 2, 0 +_0818AA6C: .4byte 0x02024190 +_0818AA70: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818AA7C + adds r0, r0, r1 + movs r1, #0x16 + b _0818AB1A + .align 2, 0 +_0818AA7C: .4byte 0x02024190 +_0818AA80: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818AA8C + adds r0, r0, r1 + movs r1, #0x17 + b _0818AB1A + .align 2, 0 +_0818AA8C: .4byte 0x02024190 +_0818AA90: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818AA9C + adds r0, r0, r1 + movs r1, #0x18 + b _0818AB1A + .align 2, 0 +_0818AA9C: .4byte 0x02024190 +_0818AAA0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818AAAC + adds r0, r0, r1 + movs r1, #0x21 + b _0818AB1A + .align 2, 0 +_0818AAAC: .4byte 0x02024190 +_0818AAB0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818AABC + adds r0, r0, r1 + movs r1, #0x2f + b _0818AB1A + .align 2, 0 +_0818AABC: .4byte 0x02024190 +_0818AAC0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818AACC + adds r0, r0, r1 + movs r1, #0x30 + b _0818AB1A + .align 2, 0 +_0818AACC: .4byte 0x02024190 +_0818AAD0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818AADC + adds r0, r0, r1 + movs r1, #0x32 + b _0818AB1A + .align 2, 0 +_0818AADC: .4byte 0x02024190 +_0818AAE0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818AAEC + adds r0, r0, r1 + movs r1, #0x33 + b _0818AB1A + .align 2, 0 +_0818AAEC: .4byte 0x02024190 +_0818AAF0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818AAFC + adds r0, r0, r1 + movs r1, #0x34 + b _0818AB1A + .align 2, 0 +_0818AAFC: .4byte 0x02024190 +_0818AB00: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818AB0C + adds r0, r0, r1 + movs r1, #0x35 + b _0818AB1A + .align 2, 0 +_0818AB0C: .4byte 0x02024190 +_0818AB10: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818AB34 + adds r0, r0, r1 + movs r1, #0x36 +_0818AB1A: + bl GetMonData + strb r0, [r7] + movs r6, #1 +_0818AB22: + adds r0, r6, #0 + add sp, #0x90 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0818AB34: .4byte 0x02024190 + thumb_func_end CopyRecordedPlayerMonData + + thumb_func_start RecordedPlayerHandleSuccessBallThrowAnim +RecordedPlayerHandleSuccessBallThrowAnim: @ 0x0818AB38 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedPlayerHandleSuccessBallThrowAnim + + thumb_func_start RecordedPlayerHandleSetMonData +RecordedPlayerHandleSetMonData: @ 0x0818AB44 + push {r4, r5, lr} + ldr r1, _0818AB68 + ldr r0, _0818AB6C + ldrb r2, [r0] + lsls r0, r2, #9 + adds r1, #2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, #0 + bne _0818AB74 + ldr r0, _0818AB70 + lsls r1, r2, #1 + adds r1, r1, r0 + ldrb r0, [r1] + bl SetRecordedPlayerMonData + b _0818AB92 + .align 2, 0 +_0818AB68: .4byte 0x02022D08 +_0818AB6C: .4byte 0x02023D08 +_0818AB70: .4byte 0x02023D12 +_0818AB74: + ldrb r4, [r1] + movs r5, #0 +_0818AB78: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _0818AB86 + adds r0, r5, #0 + bl SetRecordedPlayerMonData +_0818AB86: + lsrs r4, r4, #1 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #5 + bls _0818AB78 +_0818AB92: + bl RecordedPlayerBufferExecCompleted + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end RecordedPlayerHandleSetMonData + + thumb_func_start SetRecordedPlayerMonData +SetRecordedPlayerMonData: @ 0x0818AB9C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x34 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _0818ABD4 + ldrb r0, [r0] + lsls r0, r0, #9 + ldr r2, _0818ABD8 + adds r3, r0, r2 + adds r6, r3, #0 + subs r1, r2, #2 + adds r0, r0, r1 + ldrb r0, [r0] + adds r7, r2, #0 + cmp r0, #0x3b + bls _0818ABC8 + bl _0818B562 +_0818ABC8: + lsls r0, r0, #2 + ldr r1, _0818ABDC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0818ABD4: .4byte 0x02023D08 +_0818ABD8: .4byte 0x02022D0B +_0818ABDC: .4byte 0x0818ABE0 +_0818ABE0: @ jump table + .4byte _0818ACD0 @ case 0 + .4byte _0818AE68 @ case 1 + .4byte _0818AE88 @ case 2 + .4byte _0818AEA8 @ case 3 + .4byte _0818AF00 @ case 4 + .4byte _0818AF00 @ case 5 + .4byte _0818AF00 @ case 6 + .4byte _0818AF00 @ case 7 + .4byte _0818AF28 @ case 8 + .4byte _0818AF8C @ case 9 + .4byte _0818AF8C @ case 10 + .4byte _0818AF8C @ case 11 + .4byte _0818AF8C @ case 12 + .4byte _0818B562 @ case 13 + .4byte _0818B562 @ case 14 + .4byte _0818B562 @ case 15 + .4byte _0818B562 @ case 16 + .4byte _0818AFBC @ case 17 + .4byte _0818AFDC @ case 18 + .4byte _0818AFFC @ case 19 + .4byte _0818B01C @ case 20 + .4byte _0818B03C @ case 21 + .4byte _0818B05C @ case 22 + .4byte _0818B07C @ case 23 + .4byte _0818B09C @ case 24 + .4byte _0818B0BC @ case 25 + .4byte _0818B0DC @ case 26 + .4byte _0818B0FC @ case 27 + .4byte _0818B11C @ case 28 + .4byte _0818B13C @ case 29 + .4byte _0818B15C @ case 30 + .4byte _0818B17C @ case 31 + .4byte _0818B1EC @ case 32 + .4byte _0818B20C @ case 33 + .4byte _0818B22C @ case 34 + .4byte _0818B24C @ case 35 + .4byte _0818B26C @ case 36 + .4byte _0818B28C @ case 37 + .4byte _0818B2AC @ case 38 + .4byte _0818B2CC @ case 39 + .4byte _0818B2EC @ case 40 + .4byte _0818B30C @ case 41 + .4byte _0818B32C @ case 42 + .4byte _0818B34C @ case 43 + .4byte _0818B36C @ case 44 + .4byte _0818B38C @ case 45 + .4byte _0818B3AC @ case 46 + .4byte _0818B3CC @ case 47 + .4byte _0818B3EC @ case 48 + .4byte _0818B40C @ case 49 + .4byte _0818B42C @ case 50 + .4byte _0818B44C @ case 51 + .4byte _0818B46C @ case 52 + .4byte _0818B48C @ case 53 + .4byte _0818B4AC @ case 54 + .4byte _0818B4CC @ case 55 + .4byte _0818B4EC @ case 56 + .4byte _0818B50C @ case 57 + .4byte _0818B52C @ case 58 + .4byte _0818B54C @ case 59 +_0818ACD0: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _0818AE64 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0xb + adds r2, r6, #0 + bl SetMonData + adds r2, r6, #0 + adds r2, #0x2e + adds r0, r4, #0 + movs r1, #0xc + bl SetMonData + movs r0, #0 + mov r8, r0 + movs r0, #0x3b + adds r0, r0, r6 + mov sl, r0 + adds r0, r6, #0 + adds r0, #0x2b + str r0, [sp, #0x20] + adds r0, #0x19 + str r0, [sp, #0x28] + adds r0, #4 + str r0, [sp, #0x2c] + adds r0, #4 + str r0, [sp, #0x30] + subs r0, #0x22 + str r0, [sp, #0x1c] + subs r0, #2 + str r0, [sp, #0x18] + adds r0, #4 + str r0, [sp, #0x24] + adds r0, r6, #2 + str r0, [sp, #4] + adds r0, r6, #4 + str r0, [sp, #8] + adds r0, r6, #6 + str r0, [sp, #0xc] + adds r0, #2 + str r0, [sp, #0x10] + adds r0, #2 + str r0, [sp, #0x14] + mov sb, r4 + adds r7, r6, #0 + adds r7, #0x24 + adds r4, r6, #0 + adds r4, #0xc +_0818AD36: + mov r1, r8 + adds r1, #0xd + mov r0, sb + adds r2, r4, #0 + bl SetMonData + mov r1, r8 + adds r1, #0x11 + mov r0, sb + adds r2, r7, #0 + bl SetMonData + adds r7, #1 + adds r4, #2 + movs r0, #1 + add r8, r0 + mov r0, r8 + cmp r0, #3 + ble _0818AD36 + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _0818AE64 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x15 + mov r2, sl + bl SetMonData + adds r0, r4, #0 + movs r1, #0x20 + ldr r2, [sp, #0x20] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x19 + ldr r2, [sp, #0x28] + bl SetMonData + ldrb r0, [r6, #0x14] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1b + mov r1, sp + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x27 + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r6, #0x14] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x28 + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r6, #0x15] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x29 + mov r2, sp + bl SetMonData + mov r1, sp + ldr r0, [r6, #0x14] + lsls r0, r0, #0xc + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x2a + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r6, #0x16] + lsls r0, r0, #0x17 + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x2b + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r6, #0x17] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x2c + mov r2, sp + bl SetMonData + adds r0, r4, #0 + movs r1, #0 + ldr r2, [sp, #0x2c] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x37 + ldr r2, [sp, #0x30] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x38 + ldr r2, [sp, #0x1c] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x39 + ldr r2, [sp, #0x18] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3a + ldr r2, [sp, #0x24] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3b + ldr r2, [sp, #4] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3c + ldr r2, [sp, #8] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3d + ldr r2, [sp, #0xc] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3e + ldr r2, [sp, #0x10] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3f + ldr r2, [sp, #0x14] + bl SetMonData + b _0818B562 + .align 2, 0 +_0818AE64: .4byte 0x02024190 +_0818AE68: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818AE80 + adds r0, r0, r1 + ldr r1, _0818AE84 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0xb + bl SetMonData + b _0818B562 + .align 2, 0 +_0818AE80: .4byte 0x02024190 +_0818AE84: .4byte 0x02023D08 +_0818AE88: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818AEA0 + adds r0, r0, r1 + ldr r1, _0818AEA4 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0xc + bl SetMonData + b _0818B562 + .align 2, 0 +_0818AEA0: .4byte 0x02024190 +_0818AEA4: .4byte 0x02023D08 +_0818AEA8: + movs r0, #0 + mov r8, r0 + movs r0, #0xc + adds r0, r0, r3 + mov sb, r0 + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _0818AEFC + adds r7, r1, r0 + adds r6, r3, #0 + adds r6, #8 + adds r4, r3, #0 +_0818AEC2: + mov r1, r8 + adds r1, #0xd + adds r0, r7, #0 + adds r2, r4, #0 + bl SetMonData + mov r1, r8 + adds r1, #0x11 + adds r0, r7, #0 + adds r2, r6, #0 + bl SetMonData + adds r6, #1 + adds r4, #2 + movs r0, #1 + add r8, r0 + mov r0, r8 + cmp r0, #3 + ble _0818AEC2 + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818AEFC + adds r0, r0, r1 + movs r1, #0x15 + mov r2, sb + bl SetMonData + b _0818B562 + .align 2, 0 +_0818AEFC: .4byte 0x02024190 +_0818AF00: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818AF1C + adds r0, r0, r1 + ldr r3, _0818AF20 + ldr r1, _0818AF24 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r1, r3, #1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, #9 + b _0818AFA4 + .align 2, 0 +_0818AF1C: .4byte 0x02024190 +_0818AF20: .4byte 0x02022D08 +_0818AF24: .4byte 0x02023D08 +_0818AF28: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _0818AF84 + adds r4, r4, r0 + ldr r5, _0818AF88 + ldrb r2, [r5] + lsls r2, r2, #9 + adds r2, r2, r7 + adds r0, r4, #0 + movs r1, #0x11 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #1 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x12 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #2 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x13 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #3 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x14 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #4 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x15 + bl SetMonData + b _0818B562 + .align 2, 0 +_0818AF84: .4byte 0x02024190 +_0818AF88: .4byte 0x02023D08 +_0818AF8C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818AFB0 + adds r0, r0, r1 + ldr r3, _0818AFB4 + ldr r1, _0818AFB8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r1, r3, #1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, #8 +_0818AFA4: + adds r3, #3 + adds r2, r2, r3 + bl SetMonData + b _0818B562 + .align 2, 0 +_0818AFB0: .4byte 0x02024190 +_0818AFB4: .4byte 0x02022D08 +_0818AFB8: .4byte 0x02023D08 +_0818AFBC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818AFD4 + adds r0, r0, r1 + ldr r1, _0818AFD8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #1 + bl SetMonData + b _0818B562 + .align 2, 0 +_0818AFD4: .4byte 0x02024190 +_0818AFD8: .4byte 0x02023D08 +_0818AFDC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818AFF4 + adds r0, r0, r1 + ldr r1, _0818AFF8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x19 + bl SetMonData + b _0818B562 + .align 2, 0 +_0818AFF4: .4byte 0x02024190 +_0818AFF8: .4byte 0x02023D08 +_0818AFFC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B014 + adds r0, r0, r1 + ldr r1, _0818B018 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x1a + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B014: .4byte 0x02024190 +_0818B018: .4byte 0x02023D08 +_0818B01C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B034 + adds r0, r0, r1 + ldr r1, _0818B038 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x1b + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B034: .4byte 0x02024190 +_0818B038: .4byte 0x02023D08 +_0818B03C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B054 + adds r0, r0, r1 + ldr r1, _0818B058 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x1c + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B054: .4byte 0x02024190 +_0818B058: .4byte 0x02023D08 +_0818B05C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B074 + adds r0, r0, r1 + ldr r1, _0818B078 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x1d + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B074: .4byte 0x02024190 +_0818B078: .4byte 0x02023D08 +_0818B07C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B094 + adds r0, r0, r1 + ldr r1, _0818B098 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x1e + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B094: .4byte 0x02024190 +_0818B098: .4byte 0x02023D08 +_0818B09C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B0B4 + adds r0, r0, r1 + ldr r1, _0818B0B8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x1f + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B0B4: .4byte 0x02024190 +_0818B0B8: .4byte 0x02023D08 +_0818B0BC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B0D4 + adds r0, r0, r1 + ldr r1, _0818B0D8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x20 + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B0D4: .4byte 0x02024190 +_0818B0D8: .4byte 0x02023D08 +_0818B0DC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B0F4 + adds r0, r0, r1 + ldr r1, _0818B0F8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x22 + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B0F4: .4byte 0x02024190 +_0818B0F8: .4byte 0x02023D08 +_0818B0FC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B114 + adds r0, r0, r1 + ldr r1, _0818B118 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x23 + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B114: .4byte 0x02024190 +_0818B118: .4byte 0x02023D08 +_0818B11C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B134 + adds r0, r0, r1 + ldr r1, _0818B138 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x24 + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B134: .4byte 0x02024190 +_0818B138: .4byte 0x02023D08 +_0818B13C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B154 + adds r0, r0, r1 + ldr r1, _0818B158 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x25 + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B154: .4byte 0x02024190 +_0818B158: .4byte 0x02023D08 +_0818B15C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B174 + adds r0, r0, r1 + ldr r1, _0818B178 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x26 + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B174: .4byte 0x02024190 +_0818B178: .4byte 0x02023D08 +_0818B17C: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _0818B1E4 + adds r4, r4, r0 + ldr r5, _0818B1E8 + ldrb r2, [r5] + lsls r2, r2, #9 + adds r2, r2, r7 + adds r0, r4, #0 + movs r1, #0x27 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #1 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x28 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #2 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x29 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #3 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x2a + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #4 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x2b + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #5 + adds r2, r2, r0 + adds r0, r4, #0 + b _0818B29C + .align 2, 0 +_0818B1E4: .4byte 0x02024190 +_0818B1E8: .4byte 0x02023D08 +_0818B1EC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B204 + adds r0, r0, r1 + ldr r1, _0818B208 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x27 + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B204: .4byte 0x02024190 +_0818B208: .4byte 0x02023D08 +_0818B20C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B224 + adds r0, r0, r1 + ldr r1, _0818B228 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x28 + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B224: .4byte 0x02024190 +_0818B228: .4byte 0x02023D08 +_0818B22C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B244 + adds r0, r0, r1 + ldr r1, _0818B248 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x29 + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B244: .4byte 0x02024190 +_0818B248: .4byte 0x02023D08 +_0818B24C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B264 + adds r0, r0, r1 + ldr r1, _0818B268 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x2a + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B264: .4byte 0x02024190 +_0818B268: .4byte 0x02023D08 +_0818B26C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B284 + adds r0, r0, r1 + ldr r1, _0818B288 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x2b + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B284: .4byte 0x02024190 +_0818B288: .4byte 0x02023D08 +_0818B28C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B2A4 + adds r0, r0, r1 + ldr r1, _0818B2A8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 +_0818B29C: + movs r1, #0x2c + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B2A4: .4byte 0x02024190 +_0818B2A8: .4byte 0x02023D08 +_0818B2AC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B2C4 + adds r0, r0, r1 + ldr r1, _0818B2C8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0 + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B2C4: .4byte 0x02024190 +_0818B2C8: .4byte 0x02023D08 +_0818B2CC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B2E4 + adds r0, r0, r1 + ldr r1, _0818B2E8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #9 + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B2E4: .4byte 0x02024190 +_0818B2E8: .4byte 0x02023D08 +_0818B2EC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B304 + adds r0, r0, r1 + ldr r1, _0818B308 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x37 + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B304: .4byte 0x02024190 +_0818B308: .4byte 0x02023D08 +_0818B30C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B324 + adds r0, r0, r1 + ldr r1, _0818B328 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x38 + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B324: .4byte 0x02024190 +_0818B328: .4byte 0x02023D08 +_0818B32C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B344 + adds r0, r0, r1 + ldr r1, _0818B348 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x39 + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B344: .4byte 0x02024190 +_0818B348: .4byte 0x02023D08 +_0818B34C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B364 + adds r0, r0, r1 + ldr r1, _0818B368 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x3a + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B364: .4byte 0x02024190 +_0818B368: .4byte 0x02023D08 +_0818B36C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B384 + adds r0, r0, r1 + ldr r1, _0818B388 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x3b + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B384: .4byte 0x02024190 +_0818B388: .4byte 0x02023D08 +_0818B38C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B3A4 + adds r0, r0, r1 + ldr r1, _0818B3A8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x3c + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B3A4: .4byte 0x02024190 +_0818B3A8: .4byte 0x02023D08 +_0818B3AC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B3C4 + adds r0, r0, r1 + ldr r1, _0818B3C8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x3d + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B3C4: .4byte 0x02024190 +_0818B3C8: .4byte 0x02023D08 +_0818B3CC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B3E4 + adds r0, r0, r1 + ldr r1, _0818B3E8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x3e + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B3E4: .4byte 0x02024190 +_0818B3E8: .4byte 0x02023D08 +_0818B3EC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B404 + adds r0, r0, r1 + ldr r1, _0818B408 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x3f + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B404: .4byte 0x02024190 +_0818B408: .4byte 0x02023D08 +_0818B40C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B424 + adds r0, r0, r1 + ldr r1, _0818B428 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x16 + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B424: .4byte 0x02024190 +_0818B428: .4byte 0x02023D08 +_0818B42C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B444 + adds r0, r0, r1 + ldr r1, _0818B448 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x17 + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B444: .4byte 0x02024190 +_0818B448: .4byte 0x02023D08 +_0818B44C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B464 + adds r0, r0, r1 + ldr r1, _0818B468 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x18 + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B464: .4byte 0x02024190 +_0818B468: .4byte 0x02023D08 +_0818B46C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B484 + adds r0, r0, r1 + ldr r1, _0818B488 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x21 + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B484: .4byte 0x02024190 +_0818B488: .4byte 0x02023D08 +_0818B48C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B4A4 + adds r0, r0, r1 + ldr r1, _0818B4A8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x2f + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B4A4: .4byte 0x02024190 +_0818B4A8: .4byte 0x02023D08 +_0818B4AC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B4C4 + adds r0, r0, r1 + ldr r1, _0818B4C8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x30 + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B4C4: .4byte 0x02024190 +_0818B4C8: .4byte 0x02023D08 +_0818B4CC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B4E4 + adds r0, r0, r1 + ldr r1, _0818B4E8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x32 + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B4E4: .4byte 0x02024190 +_0818B4E8: .4byte 0x02023D08 +_0818B4EC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B504 + adds r0, r0, r1 + ldr r1, _0818B508 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x33 + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B504: .4byte 0x02024190 +_0818B508: .4byte 0x02023D08 +_0818B50C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B524 + adds r0, r0, r1 + ldr r1, _0818B528 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x34 + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B524: .4byte 0x02024190 +_0818B528: .4byte 0x02023D08 +_0818B52C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B544 + adds r0, r0, r1 + ldr r1, _0818B548 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x35 + bl SetMonData + b _0818B562 + .align 2, 0 +_0818B544: .4byte 0x02024190 +_0818B548: .4byte 0x02023D08 +_0818B54C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0818B58C + adds r0, r0, r1 + ldr r1, _0818B590 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x36 + bl SetMonData +_0818B562: + ldr r2, _0818B594 + ldr r0, _0818B590 + ldrb r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r2, [r0] + movs r0, #0x64 + muls r0, r2, r0 + ldr r2, _0818B58C + adds r0, r0, r2 + bl HandleLowHpMusicChange + add sp, #0x34 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0818B58C: .4byte 0x02024190 +_0818B590: .4byte 0x02023D08 +_0818B594: .4byte 0x02023D12 + thumb_func_end SetRecordedPlayerMonData + + thumb_func_start RecordedPlayerHandleSetRawMonData +RecordedPlayerHandleSetRawMonData: @ 0x0818B598 + push {r4, r5, r6, r7, lr} + ldr r1, _0818B5FC + ldr r7, _0818B600 + ldrb r2, [r7] + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + adds r3, r1, #0 + muls r3, r0, r3 + ldr r4, _0818B604 + lsls r2, r2, #9 + adds r0, r4, #1 + adds r0, r2, r0 + ldrb r0, [r0] + ldr r1, _0818B608 + adds r0, r0, r1 + adds r5, r3, r0 + movs r3, #0 + adds r0, r4, #2 + adds r2, r2, r0 + ldrb r2, [r2] + cmp r3, r2 + bhs _0818B5F0 + adds r6, r4, #0 + adds r2, r7, #0 + adds r4, r0, #0 +_0818B5CE: + adds r1, r5, r3 + ldrb r0, [r2] + lsls r0, r0, #9 + adds r0, #3 + adds r0, r3, r0 + adds r0, r0, r6 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldrb r0, [r2] + lsls r0, r0, #9 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r3, r0 + blo _0818B5CE +_0818B5F0: + bl RecordedPlayerBufferExecCompleted + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0818B5FC: .4byte 0x02023D12 +_0818B600: .4byte 0x02023D08 +_0818B604: .4byte 0x02022D08 +_0818B608: .4byte 0x02024190 + thumb_func_end RecordedPlayerHandleSetRawMonData + + thumb_func_start RecordedPlayerHandleLoadMonSprite +RecordedPlayerHandleLoadMonSprite: @ 0x0818B60C + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + ldr r0, _0818B700 + mov r8, r0 + ldr r6, _0818B704 + ldrb r1, [r6] + lsls r0, r1, #1 + add r0, r8 + ldrh r0, [r0] + movs r5, #0x64 + muls r0, r5, r0 + ldr r4, _0818B708 + adds r0, r0, r4 + bl BattleLoadPlayerMonSpriteGfx + ldrb r0, [r6] + lsls r0, r0, #1 + add r0, r8 + ldrh r0, [r0] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #0xb + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldrb r0, [r6] + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl SetMultiuseSpriteTemplateToPokemon + ldr r0, _0818B70C + mov r8, r0 + ldrb r0, [r6] + movs r1, #2 + bl GetBattlerSpriteCoord + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldrb r0, [r6] + bl GetBattlerSpriteDefault_Y + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldrb r0, [r6] + bl GetBattlerSpriteSubpriority + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r0, r8 + adds r1, r5, #0 + adds r2, r4, #0 + bl CreateSprite + ldr r4, _0818B710 + ldrb r1, [r6] + adds r1, r1, r4 + strb r0, [r1] + ldr r5, _0818B714 + ldrb r0, [r6] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _0818B718 + strh r1, [r0, #0x24] + ldrb r2, [r6] + adds r0, r2, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r2, [r0, #0x2e] + ldrb r3, [r6] + adds r0, r3, r4 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + lsls r3, r3, #4 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #5] + ldrb r2, [r6] + adds r4, r2, r4 + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _0818B71C + adds r2, r2, r1 + ldrb r1, [r2] + bl StartSpriteAnim + ldr r1, _0818B720 + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0818B724 + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0818B700: .4byte 0x02023D12 +_0818B704: .4byte 0x02023D08 +_0818B708: .4byte 0x02024190 +_0818B70C: .4byte 0x02024640 +_0818B710: .4byte 0x02023E88 +_0818B714: .4byte 0x020205AC +_0818B718: .4byte 0x0000FF10 +_0818B71C: .4byte 0x02024188 +_0818B720: .4byte 0x03005AC0 +_0818B724: .4byte 0x08189D91 + thumb_func_end RecordedPlayerHandleLoadMonSprite + + thumb_func_start RecordedPlayerHandleSwitchInAnim +RecordedPlayerHandleSwitchInAnim: @ 0x0818B728 + push {r4, r5, r6, lr} + ldr r5, _0818B780 + ldrb r0, [r5] + ldr r4, _0818B784 + lsls r1, r0, #9 + adds r6, r4, #2 + adds r1, r1, r6 + ldrb r1, [r1] + bl ClearTemporarySpeciesSpriteData + ldr r2, _0818B788 + ldrb r0, [r5] + lsls r1, r0, #1 + adds r1, r1, r2 + lsls r0, r0, #9 + adds r4, #1 + adds r0, r0, r4 + ldrb r0, [r0] + strh r0, [r1] + ldrb r1, [r5] + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r2, [r0] + movs r0, #0x64 + muls r0, r2, r0 + ldr r2, _0818B78C + adds r0, r0, r2 + bl BattleLoadPlayerMonSpriteGfx + ldrb r0, [r5] + lsls r1, r0, #9 + adds r1, r1, r6 + ldrb r1, [r1] + bl sub_0818B798 + ldr r1, _0818B790 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0818B794 + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0818B780: .4byte 0x02023D08 +_0818B784: .4byte 0x02022D08 +_0818B788: .4byte 0x02023D12 +_0818B78C: .4byte 0x02024190 +_0818B790: .4byte 0x03005AC0 +_0818B794: .4byte 0x0818A19D + thumb_func_end RecordedPlayerHandleSwitchInAnim + + thumb_func_start sub_0818B798 +sub_0818B798: @ 0x0818B798 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r6, #0 + bl ClearTemporarySpeciesSpriteData + ldr r0, _0818B8EC + lsls r2, r6, #1 + adds r2, r2, r0 + ldr r0, _0818B8F0 + lsls r1, r6, #9 + adds r0, #1 + adds r1, r1, r0 + ldrb r0, [r1] + strh r0, [r2] + ldrh r1, [r2] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0818B8F4 + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + mov r8, r0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + ldr r0, _0818B8F8 + bl CreateInvisibleSpriteWithCallback + ldr r1, _0818B8FC + mov sb, r1 + add sb, r6 + mov r1, sb + strb r0, [r1] + adds r0, r6, #0 + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r0, r8 + bl SetMultiuseSpriteTemplateToPokemon + ldr r0, _0818B900 + mov sl, r0 + adds r0, r6, #0 + movs r1, #2 + bl GetBattlerSpriteCoord + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + adds r0, r6, #0 + bl GetBattlerSpriteDefault_Y + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r6, #0 + bl GetBattlerSpriteSubpriority + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r0, sl + adds r1, r5, #0 + adds r2, r4, #0 + bl CreateSprite + ldr r4, _0818B904 + adds r4, r6, r4 + strb r0, [r4] + ldr r5, _0818B908 + mov r0, sb + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r1, [r4] + strh r1, [r0, #0x30] + mov r0, sb + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r6, [r0, #0x32] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r6, [r0, #0x2e] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + mov r1, r8 + strh r1, [r0, #0x32] + ldrb r0, [r4] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + lsls r3, r6, #4 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #5] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _0818B90C + adds r6, r6, r1 + ldrb r1, [r6] + bl StartSpriteAnim + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r5, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _0818B910 + str r1, [r0] + movs r0, #0 + movs r1, #0xff + bl DoPokeballSendOutAnimation + mov r1, sb + ldrb r2, [r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r1, #0x2e] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0818B8EC: .4byte 0x02023D12 +_0818B8F0: .4byte 0x02022D08 +_0818B8F4: .4byte 0x02024190 +_0818B8F8: .4byte 0x0805D331 +_0818B8FC: .4byte 0x03005ADC +_0818B900: .4byte 0x02024640 +_0818B904: .4byte 0x02023E88 +_0818B908: .4byte 0x020205AC +_0818B90C: .4byte 0x02024188 +_0818B910: .4byte 0x08007141 + thumb_func_end sub_0818B798 + + thumb_func_start RecordedPlayerHandleReturnMonToBall +RecordedPlayerHandleReturnMonToBall: @ 0x0818B914 + push {r4, r5, r6, lr} + ldr r1, _0818B948 + ldr r6, _0818B94C + ldrb r2, [r6] + lsls r0, r2, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r3, [r0] + cmp r3, #0 + bne _0818B95C + ldr r0, _0818B950 + ldr r0, [r0] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + strb r3, [r0, #4] + ldr r1, _0818B954 + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0818B958 + str r1, [r0] + b _0818B992 + .align 2, 0 +_0818B948: .4byte 0x02022D08 +_0818B94C: .4byte 0x02023D08 +_0818B950: .4byte 0x02024174 +_0818B954: .4byte 0x03005AC0 +_0818B958: .4byte 0x0818B9A5 +_0818B95C: + ldr r5, _0818B998 + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _0818B99C + adds r0, r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + ldr r1, _0818B9A0 + ldrb r0, [r6] + adds r0, r0, r1 + ldrb r0, [r0] + bl SetHealthboxSpriteInvisible + bl RecordedPlayerBufferExecCompleted +_0818B992: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0818B998: .4byte 0x02023E88 +_0818B99C: .4byte 0x020205AC +_0818B9A0: .4byte 0x03005AD0 + thumb_func_end RecordedPlayerHandleReturnMonToBall + + thumb_func_start sub_0818B9A4 +sub_0818B9A4: @ 0x0818B9A4 + push {r4, r5, r6, lr} + ldr r6, _0818B9C4 + ldr r4, [r6] + ldr r5, _0818B9C8 + ldrb r2, [r5] + ldr r1, [r4, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r3, r0, r1 + ldrb r0, [r3, #4] + cmp r0, #0 + beq _0818B9CC + cmp r0, #1 + beq _0818B9FA + b _0818BA22 + .align 2, 0 +_0818B9C4: .4byte 0x02024174 +_0818B9C8: .4byte 0x02023D08 +_0818B9CC: + ldr r1, [r4] + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0818B9E6 + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #5 + bl InitAndLaunchSpecialAnimation +_0818B9E6: + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #1 + strb r1, [r0, #4] + b _0818BA22 +_0818B9FA: + ldrb r1, [r3] + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0818BA22 + strb r0, [r3, #4] + ldrb r2, [r5] + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #1 + bl InitAndLaunchSpecialAnimation + ldr r1, _0818BA28 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0818BA2C + str r1, [r0] +_0818BA22: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0818BA28: .4byte 0x03005AC0 +_0818BA2C: .4byte 0x08189EDD + thumb_func_end sub_0818B9A4 + + thumb_func_start RecordedPlayerHandleDrawTrainerPic +RecordedPlayerHandleDrawTrainerPic: @ 0x0818BA30 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r0, _0818BA58 + ldr r1, [r0] + movs r0, #0x80 + lsls r0, r0, #0x12 + ands r0, r1 + cmp r0, #0 + beq _0818BA74 + movs r0, #0x40 + ands r1, r0 + cmp r1, #0 + beq _0818BA5C + bl GetActiveBattlerLinkPlayerGender + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + b _0818BA78 + .align 2, 0 +_0818BA58: .4byte 0x02022C90 +_0818BA5C: + ldr r2, _0818BA6C + ldr r0, _0818BA70 + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + b _0818BA76 + .align 2, 0 +_0818BA6C: .4byte 0x020226A0 +_0818BA70: .4byte 0x0203C480 +_0818BA74: + ldr r0, _0818BAB4 +_0818BA76: + ldrb r4, [r0, #0x13] +_0818BA78: + ldr r0, _0818BAB8 + ldr r1, [r0] + movs r2, #0x40 + ands r1, r2 + adds r5, r0, #0 + cmp r1, #0 + beq _0818BAC4 + ldr r0, _0818BABC + ldrb r0, [r0] + bl GetBattlerPosition + movs r1, #2 + ands r1, r0 + movs r0, #0x20 + mov sb, r0 + cmp r1, #0 + beq _0818BA9E + movs r1, #0x5a + mov sb, r1 +_0818BA9E: + ldr r0, [r5] + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + beq _0818BAC8 + movs r0, #0x5a + mov sb, r0 + ldr r1, _0818BAC0 + b _0818BACA + .align 2, 0 +_0818BAB4: .4byte 0x020226A0 +_0818BAB8: .4byte 0x02022C90 +_0818BABC: .4byte 0x02023D08 +_0818BAC0: .4byte 0x082D8D70 +_0818BAC4: + movs r0, #0x50 + mov sb, r0 +_0818BAC8: + ldr r1, _0818BBE4 +_0818BACA: + lsls r0, r4, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #8 + subs r0, r0, r1 + lsls r0, r0, #0x12 + movs r1, #0xa0 + lsls r1, r1, #0xf + adds r0, r0, r1 + lsrs r7, r0, #0x10 + ldr r0, [r5] + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _0818BAEC + b _0818BC08 +_0818BAEC: + ldr r0, _0818BBE8 + ldr r0, [r0] + ldrb r0, [r0, #8] + bl PlayerGenderToFrontTrainerPicId + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r5, r4, #0 + ldr r6, _0818BBEC + ldrb r1, [r6] + adds r0, r5, #0 + bl DecompressTrainerFrontPic + ldrb r0, [r6] + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl SetMultiuseSpriteTemplateToTrainerFront + ldr r0, _0818BBF0 + mov r8, r0 + lsls r4, r7, #0x10 + asrs r4, r4, #0x10 + ldrb r0, [r6] + bl GetBattlerSpriteSubpriority + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r0, r8 + mov r1, sb + adds r2, r4, #0 + bl CreateSprite + ldr r4, _0818BBF4 + ldrb r1, [r6] + adds r1, r1, r4 + strb r0, [r1] + ldr r0, _0818BBF8 + lsls r5, r5, #3 + adds r5, r5, r0 + ldrh r0, [r5, #4] + bl IndexOfSpritePaletteTag + ldr r5, _0818BBFC + ldrb r1, [r6] + adds r1, r1, r4 + ldrb r1, [r1] + lsls r2, r1, #4 + adds r2, r2, r1 + lsls r2, r2, #2 + adds r2, r2, r5 + lsls r0, r0, #4 + ldrb r3, [r2, #5] + movs r1, #0xf + ands r1, r3 + orrs r1, r0 + strb r1, [r2, #5] + ldrb r0, [r6] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0xf0 + strh r1, [r0, #0x24] + ldrb r0, [r6] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0x30 + strh r1, [r0, #0x26] + ldrb r0, [r6] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _0818BC00 + strh r1, [r0, #0x2e] + ldrb r0, [r6] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r5, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _0818BC04 + str r1, [r0] + ldrb r0, [r6] + adds r0, r0, r4 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrb r2, [r1, #1] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #1] + ldrb r0, [r6] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3f + ldrb r1, [r0] + movs r2, #1 + orrs r1, r2 + strb r1, [r0] + b _0818BC9E + .align 2, 0 +_0818BBE4: .4byte 0x082D95BC +_0818BBE8: .4byte 0x03005AF0 +_0818BBEC: .4byte 0x02023D08 +_0818BBF0: .4byte 0x02024640 +_0818BBF4: .4byte 0x02023E88 +_0818BBF8: .4byte 0x082D91CC +_0818BBFC: .4byte 0x020205AC +_0818BC00: .4byte 0x0000FFFE +_0818BC04: .4byte 0x0805D3C9 +_0818BC08: + ldr r5, _0818BCB8 + ldrb r1, [r5] + adds r0, r4, #0 + bl DecompressTrainerBackPic + ldrb r0, [r5] + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl SetMultiuseSpriteTemplateToTrainerBack + ldr r6, _0818BCBC + mov r8, sb + lsls r4, r7, #0x10 + asrs r4, r4, #0x10 + ldrb r0, [r5] + bl GetBattlerSpriteSubpriority + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r6, #0 + mov r1, r8 + adds r2, r4, #0 + bl CreateSprite + ldr r6, _0818BCC0 + ldrb r1, [r5] + adds r1, r1, r6 + strb r0, [r1] + ldr r4, _0818BCC4 + ldrb r3, [r5] + adds r0, r3, r6 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + lsls r3, r3, #4 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #5] + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0xf0 + strh r1, [r0, #0x24] + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _0818BCC8 + strh r1, [r0, #0x2e] + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, #0x1c + adds r0, r0, r4 + ldr r1, _0818BCCC + str r1, [r0] +_0818BC9E: + ldr r1, _0818BCD0 + ldr r0, _0818BCB8 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0818BCD4 + str r1, [r0] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0818BCB8: .4byte 0x02023D08 +_0818BCBC: .4byte 0x02024640 +_0818BCC0: .4byte 0x02023E88 +_0818BCC4: .4byte 0x020205AC +_0818BCC8: .4byte 0x0000FFFE +_0818BCCC: .4byte 0x0805D3C9 +_0818BCD0: .4byte 0x03005AC0 +_0818BCD4: .4byte 0x081896E5 + thumb_func_end RecordedPlayerHandleDrawTrainerPic + + thumb_func_start RecordedPlayerHandleTrainerSlide +RecordedPlayerHandleTrainerSlide: @ 0x0818BCD8 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedPlayerHandleTrainerSlide + + thumb_func_start RecordedPlayerHandleTrainerSlideBack +RecordedPlayerHandleTrainerSlideBack: @ 0x0818BCE4 + push {r4, r5, r6, lr} + ldr r6, _0818BD70 + ldr r4, _0818BD74 + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r5, _0818BD78 + adds r0, r0, r5 + bl SetSpritePrimaryCoordsFromSecondaryCoords + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0x23 + strh r1, [r0, #0x2e] + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _0818BD7C + strh r1, [r0, #0x32] + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrh r1, [r0, #0x22] + strh r1, [r0, #0x36] + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r5, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _0818BD80 + str r1, [r0] + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _0818BD84 + bl StoreSpriteCallbackInData6 + ldr r1, _0818BD88 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0818BD8C + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0818BD70: .4byte 0x02023E88 +_0818BD74: .4byte 0x02023D08 +_0818BD78: .4byte 0x020205AC +_0818BD7C: .4byte 0x0000FFD8 +_0818BD80: .4byte 0x080A67B5 +_0818BD84: .4byte 0x08007141 +_0818BD88: .4byte 0x03005AC0 +_0818BD8C: .4byte 0x0818971D + thumb_func_end RecordedPlayerHandleTrainerSlideBack + + thumb_func_start RecordedPlayerHandleFaintAnimation +RecordedPlayerHandleFaintAnimation: @ 0x0818BD90 + push {r4, r5, r6, lr} + ldr r6, _0818BDDC + ldr r4, [r6] + ldr r5, _0818BDE0 + ldrb r2, [r5] + ldr r0, [r4, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r3, r1, r0 + ldrb r0, [r3, #4] + cmp r0, #0 + bne _0818BDE4 + ldr r1, [r4] + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0818BDC4 + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #5 + bl InitAndLaunchSpecialAnimation +_0818BDC4: + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #4] + adds r1, #1 + strb r1, [r0, #4] + b _0818BE5A + .align 2, 0 +_0818BDDC: .4byte 0x02024174 +_0818BDE0: .4byte 0x02023D08 +_0818BDE4: + ldrb r1, [r3] + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _0818BE5A + strb r4, [r3, #4] + ldr r2, _0818BE60 + ldrb r1, [r5] + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r2, [r0] + movs r0, #0x64 + muls r0, r2, r0 + ldr r2, _0818BE64 + adds r0, r0, r2 + bl HandleLowHpMusicChange + movs r1, #0x40 + rsbs r1, r1, #0 + movs r0, #0x10 + bl PlaySE12WithPanning + ldr r2, _0818BE68 + ldr r3, _0818BE6C + ldrb r0, [r5] + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r4, [r0, #0x30] + ldrb r0, [r5] + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #5 + strh r1, [r0, #0x32] + ldrb r0, [r5] + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, _0818BE70 + str r1, [r0] + ldr r1, _0818BE74 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0818BE78 + str r1, [r0] +_0818BE5A: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0818BE60: .4byte 0x02023D12 +_0818BE64: .4byte 0x02024190 +_0818BE68: .4byte 0x020205AC +_0818BE6C: .4byte 0x02023E88 +_0818BE70: .4byte 0x08039845 +_0818BE74: .4byte 0x03005AC0 +_0818BE78: .4byte 0x08189E41 + thumb_func_end RecordedPlayerHandleFaintAnimation + + thumb_func_start RecordedPlayerHandlePaletteFade +RecordedPlayerHandlePaletteFade: @ 0x0818BE7C + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedPlayerHandlePaletteFade + + thumb_func_start RecordedPlayerHandleTwoReturnValues +RecordedPlayerHandleTwoReturnValues: @ 0x0818BE88 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedPlayerHandleTwoReturnValues + + thumb_func_start RecordedPlayerHandleChoosePokemon +RecordedPlayerHandleChoosePokemon: @ 0x0818BE94 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedPlayerHandleChoosePokemon + + thumb_func_start RecordedPlayerHandlePause +RecordedPlayerHandlePause: @ 0x0818BEA0 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedPlayerHandlePause + + thumb_func_start RecordedPlayerHandleMoveAnimation +RecordedPlayerHandleMoveAnimation: @ 0x0818BEAC + push {r4, r5, r6, lr} + ldr r6, _0818BF90 + ldrb r0, [r6] + bl mplay_80342A4 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0818BEBE + b _0818BFD2 +_0818BEBE: + ldr r0, _0818BF94 + mov ip, r0 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r0, #1 + adds r0, r2, r0 + ldrb r0, [r0] + mov r1, ip + adds r1, #2 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + ldr r5, _0818BF98 + mov r1, ip + adds r1, #3 + adds r2, r2, r1 + ldrb r1, [r2] + strb r1, [r5] + ldr r4, _0818BF9C + ldrb r2, [r6] + lsls r2, r2, #9 + mov r1, ip + adds r1, #4 + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, ip + adds r1, #5 + adds r2, r2, r1 + ldrb r1, [r2] + lsls r1, r1, #8 + orrs r3, r1 + strh r3, [r4] + ldr r4, _0818BFA0 + ldrb r2, [r6] + lsls r2, r2, #9 + mov r1, ip + adds r1, #6 + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, ip + adds r1, #7 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r3, r1 + mov r1, ip + adds r1, #8 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, r1, #0x10 + orrs r3, r1 + mov r1, ip + adds r1, #9 + adds r2, r2, r1 + ldrb r1, [r2] + lsls r1, r1, #0x18 + orrs r3, r1 + str r3, [r4] + ldr r3, _0818BFA4 + ldrb r1, [r6] + lsls r1, r1, #9 + mov r2, ip + adds r2, #0xa + adds r1, r1, r2 + ldrb r1, [r1] + strb r1, [r3] + ldr r4, _0818BFA8 + ldrb r2, [r6] + lsls r2, r2, #9 + mov r1, ip + adds r1, #0xc + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, ip + adds r1, #0xd + adds r2, r2, r1 + ldrb r1, [r2] + lsls r1, r1, #8 + orrs r3, r1 + strh r3, [r4] + ldr r3, _0818BFAC + ldrb r2, [r6] + lsls r2, r2, #9 + mov r1, ip + adds r1, #0x10 + adds r2, r2, r1 + str r2, [r3] + ldr r3, _0818BFB0 + ldrb r1, [r6] + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r2, [r2] + str r2, [r1] + ldrb r1, [r5] + bl IsMoveWithoutAnimation + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + beq _0818BFB4 + bl RecordedPlayerBufferExecCompleted + b _0818BFD2 + .align 2, 0 +_0818BF90: .4byte 0x02023D08 +_0818BF94: .4byte 0x02022D08 +_0818BF98: .4byte 0x020380D2 +_0818BF9C: .4byte 0x020380A8 +_0818BFA0: .4byte 0x020380A4 +_0818BFA4: .4byte 0x020380BA +_0818BFA8: .4byte 0x020380BC +_0818BFAC: .4byte 0x020380A0 +_0818BFB0: .4byte 0x02024160 +_0818BFB4: + ldr r0, _0818BFD8 + ldr r0, [r0] + ldrb r1, [r6] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strb r3, [r0, #4] + ldr r1, _0818BFDC + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0818BFE0 + str r1, [r0] +_0818BFD2: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0818BFD8: .4byte 0x02024174 +_0818BFDC: .4byte 0x03005AC0 +_0818BFE0: .4byte 0x0818BFE5 + thumb_func_end RecordedPlayerHandleMoveAnimation + + thumb_func_start RecordedPlayerDoMoveAnimation +RecordedPlayerDoMoveAnimation: @ 0x0818BFE4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r2, _0818C030 + ldr r6, _0818C034 + ldrb r3, [r6] + lsls r1, r3, #9 + adds r0, r2, #1 + mov sl, r0 + adds r0, r1, r0 + ldrb r4, [r0] + adds r5, r2, #2 + mov sb, r5 + adds r0, r1, r5 + ldrb r0, [r0] + lsls r0, r0, #8 + orrs r4, r0 + adds r2, #0xb + adds r1, r1, r2 + ldrb r1, [r1] + mov r8, r1 + ldr r7, _0818C038 + ldr r5, [r7] + ldr r1, [r5, #4] + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r2, [r0, #4] + cmp r2, #1 + beq _0818C07C + cmp r2, #1 + bgt _0818C03C + cmp r2, #0 + beq _0818C046 + b _0818C158 + .align 2, 0 +_0818C030: .4byte 0x02022D08 +_0818C034: .4byte 0x02023D08 +_0818C038: .4byte 0x02024174 +_0818C03C: + cmp r2, #2 + beq _0818C0A6 + cmp r2, #3 + beq _0818C11C + b _0818C158 +_0818C046: + ldr r1, [r5] + lsls r0, r3, #2 + adds r1, r0, r1 + ldrb r2, [r1] + movs r0, #0xc + ands r0, r2 + cmp r0, #4 + bne _0818C068 + movs r0, #8 + orrs r0, r2 + strb r0, [r1] + ldrb r2, [r6] + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #5 + bl InitAndLaunchSpecialAnimation +_0818C068: + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #1 + strb r1, [r0, #4] + b _0818C158 +_0818C07C: + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _0818C158 + movs r0, #0 + bl sub_0805E7B8 + adds r0, r4, #0 + bl DoMoveAnim + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #2 + strb r1, [r0, #4] + b _0818C158 +_0818C0A6: + ldr r0, _0818C10C + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _0818C110 + ldrb r0, [r0] + cmp r0, #0 + bne _0818C158 + movs r0, #1 + bl sub_0805E7B8 + ldr r0, [r7] + ldrb r2, [r6] + ldr r1, [r0] + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0818C0F4 + mov r0, r8 + cmp r0, #1 + bhi _0818C0F4 + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #6 + bl InitAndLaunchSpecialAnimation + ldr r0, [r7] + ldrb r1, [r6] + ldr r0, [r0] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] +_0818C0F4: + ldr r0, _0818C114 + ldr r2, [r0] + ldr r0, _0818C118 + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #3 + strb r1, [r0, #4] + b _0818C158 + .align 2, 0 +_0818C10C: .4byte 0x02038098 +_0818C110: .4byte 0x0203809D +_0818C114: .4byte 0x02024174 +_0818C118: .4byte 0x02023D08 +_0818C11C: + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _0818C158 + bl CopyAllBattleSpritesInvisibilities + ldrb r0, [r6] + lsls r2, r0, #9 + mov r3, sl + adds r1, r2, r3 + ldrb r1, [r1] + add r2, sb + ldrb r2, [r2] + lsls r2, r2, #8 + orrs r1, r2 + bl TrySetBehindSubstituteSpriteBit + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strb r4, [r0, #4] + bl RecordedPlayerBufferExecCompleted +_0818C158: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedPlayerDoMoveAnimation + + thumb_func_start RecordedPlayerHandlePrintString +RecordedPlayerHandlePrintString: @ 0x0818C168 + push {r4, lr} + ldr r0, _0818C1A0 + movs r1, #0 + strh r1, [r0] + ldr r0, _0818C1A4 + strh r1, [r0] + ldr r4, _0818C1A8 + ldrb r0, [r4] + lsls r0, r0, #9 + ldr r1, _0818C1AC + adds r0, r0, r1 + ldrh r0, [r0] + bl BufferStringBattle + ldr r0, _0818C1B0 + movs r1, #0 + bl sub_0814FA04 + ldr r1, _0818C1B4 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0818C1B8 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0818C1A0: .4byte 0x02022AC8 +_0818C1A4: .4byte 0x02022ACA +_0818C1A8: .4byte 0x02023D08 +_0818C1AC: .4byte 0x02022D0A +_0818C1B0: .4byte 0x02022AE0 +_0818C1B4: .4byte 0x03005AC0 +_0818C1B8: .4byte 0x08189F4D + thumb_func_end RecordedPlayerHandlePrintString + + thumb_func_start RecordedPlayerHandlePrintSelectionString +RecordedPlayerHandlePrintSelectionString: @ 0x0818C1BC + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedPlayerHandlePrintSelectionString + + thumb_func_start ChooseActionInBattlePalace +ChooseActionInBattlePalace: @ 0x0818C1C8 + push {lr} + ldr r1, _0818C1F8 + ldr r0, _0818C1FC + ldrb r0, [r0] + ldrb r1, [r1, #4] + lsrs r0, r0, #1 + cmp r1, r0 + blo _0818C1F2 + ldr r0, _0818C200 + ldrb r0, [r0] + bl RecordedBattle_GetBattlerAction + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #1 + movs r2, #0 + bl BtlController_EmitTwoReturnValues + bl RecordedPlayerBufferExecCompleted +_0818C1F2: + pop {r0} + bx r0 + .align 2, 0 +_0818C1F8: .4byte 0x02023FD6 +_0818C1FC: .4byte 0x02023D10 +_0818C200: .4byte 0x02023D08 + thumb_func_end ChooseActionInBattlePalace + + thumb_func_start RecordedPlayerHandleChooseAction +RecordedPlayerHandleChooseAction: @ 0x0818C204 + push {lr} + ldr r0, _0818C224 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xa + ands r0, r1 + cmp r0, #0 + beq _0818C234 + ldr r1, _0818C228 + ldr r0, _0818C22C + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0818C230 + str r1, [r0] + b _0818C24E + .align 2, 0 +_0818C224: .4byte 0x02022C90 +_0818C228: .4byte 0x03005AC0 +_0818C22C: .4byte 0x02023D08 +_0818C230: .4byte 0x0818C1C9 +_0818C234: + ldr r0, _0818C254 + ldrb r0, [r0] + bl RecordedBattle_GetBattlerAction + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #1 + movs r2, #0 + bl BtlController_EmitTwoReturnValues + bl RecordedPlayerBufferExecCompleted +_0818C24E: + pop {r0} + bx r0 + .align 2, 0 +_0818C254: .4byte 0x02023D08 + thumb_func_end RecordedPlayerHandleChooseAction + + thumb_func_start RecordedPlayerHandleUnknownYesNoBox +RecordedPlayerHandleUnknownYesNoBox: @ 0x0818C258 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedPlayerHandleUnknownYesNoBox + + thumb_func_start RecordedPlayerHandleChooseMove +RecordedPlayerHandleChooseMove: @ 0x0818C264 + push {r4, r5, lr} + ldr r0, _0818C288 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xa + ands r0, r1 + cmp r0, #0 + beq _0818C28C + bl ChooseMoveAndTargetInBattlePalace + adds r2, r0, #0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + movs r0, #1 + movs r1, #0xa + bl BtlController_EmitTwoReturnValues + b _0818C2B0 + .align 2, 0 +_0818C288: .4byte 0x02022C90 +_0818C28C: + ldr r5, _0818C2BC + ldrb r0, [r5] + bl RecordedBattle_GetBattlerAction + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldrb r0, [r5] + bl RecordedBattle_GetBattlerAction + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x10 + orrs r2, r4 + movs r0, #1 + movs r1, #0xa + bl BtlController_EmitTwoReturnValues +_0818C2B0: + bl RecordedPlayerBufferExecCompleted + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0818C2BC: .4byte 0x02023D08 + thumb_func_end RecordedPlayerHandleChooseMove + + thumb_func_start RecordedPlayerHandleChooseItem +RecordedPlayerHandleChooseItem: @ 0x0818C2C0 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedPlayerHandleChooseItem + + thumb_func_start RecordedPlayerHandlePlaySE +RecordedPlayerHandlePlaySE: @ 0x0818C2CC + push {r4, lr} + ldr r4, _0818C300 + ldrb r0, [r4] + bl RecordedBattle_GetBattlerAction + ldrb r1, [r4] + ldr r3, _0818C304 + ldr r2, [r3] + adds r1, r1, r2 + adds r1, #0x5c + strb r0, [r1] + ldrb r0, [r4] + ldr r1, [r3] + adds r0, r0, r1 + adds r0, #0x5c + ldrb r1, [r0] + movs r0, #1 + movs r2, #0 + bl BtlController_EmitChosenMonReturnValue + bl RecordedPlayerBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0818C300: .4byte 0x02023D08 +_0818C304: .4byte 0x02024140 + thumb_func_end RecordedPlayerHandlePlaySE + + thumb_func_start RecordedPlayerHandleCmd23 +RecordedPlayerHandleCmd23: @ 0x0818C308 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedPlayerHandleCmd23 + + thumb_func_start RecordedPlayerHandleHealthBarUpdate +RecordedPlayerHandleHealthBarUpdate: @ 0x0818C314 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + movs r0, #0 + bl LoadBattleBarGfx + ldr r3, _0818C38C + ldr r0, _0818C390 + mov sb, r0 + ldrb r4, [r0] + lsls r2, r4, #9 + adds r0, r3, #2 + adds r0, r2, r0 + ldrb r1, [r0] + adds r3, #3 + adds r2, r2, r3 + ldrb r0, [r2] + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + asrs r7, r1, #0x10 + ldr r0, _0818C394 + cmp r7, r0 + beq _0818C3A4 + ldr r6, _0818C398 + lsls r0, r4, #1 + adds r0, r0, r6 + ldrh r0, [r0] + movs r5, #0x64 + muls r0, r5, r0 + ldr r4, _0818C39C + adds r0, r0, r4 + movs r1, #0x3a + bl GetMonData + mov r8, r0 + mov r1, sb + ldrb r0, [r1] + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r0, [r0] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #0x39 + bl GetMonData + adds r3, r0, #0 + mov r1, sb + ldrb r0, [r1] + ldr r1, _0818C3A0 + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + mov r2, r8 + bl SetBattleBarStruct + b _0818C3DE + .align 2, 0 +_0818C38C: .4byte 0x02022D08 +_0818C390: .4byte 0x02023D08 +_0818C394: .4byte 0x00007FFF +_0818C398: .4byte 0x02023D12 +_0818C39C: .4byte 0x02024190 +_0818C3A0: .4byte 0x03005AD0 +_0818C3A4: + ldr r1, _0818C3FC + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0818C400 + adds r0, r0, r1 + movs r1, #0x3a + bl GetMonData + adds r2, r0, #0 + mov r1, sb + ldrb r0, [r1] + ldr r4, _0818C404 + adds r1, r0, r4 + ldrb r1, [r1] + str r7, [sp] + movs r3, #0 + bl SetBattleBarStruct + mov r1, sb + ldrb r0, [r1] + adds r0, r0, r4 + ldrb r0, [r0] + movs r1, #0 + movs r2, #0 + bl sub_080726F4 +_0818C3DE: + ldr r1, _0818C408 + ldr r0, _0818C40C + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0818C410 + str r1, [r0] + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0818C3FC: .4byte 0x02023D12 +_0818C400: .4byte 0x02024190 +_0818C404: .4byte 0x03005AD0 +_0818C408: .4byte 0x03005AC0 +_0818C40C: .4byte 0x02023D08 +_0818C410: .4byte 0x08189DD1 + thumb_func_end RecordedPlayerHandleHealthBarUpdate + + thumb_func_start RecordedPlayerHandleExpUpdate +RecordedPlayerHandleExpUpdate: @ 0x0818C414 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedPlayerHandleExpUpdate + + thumb_func_start RecordedPlayerHandleStatusIconUpdate +RecordedPlayerHandleStatusIconUpdate: @ 0x0818C420 + push {r4, lr} + ldr r4, _0818C47C + ldrb r0, [r4] + bl mplay_80342A4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0818C474 + ldr r0, _0818C480 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + ldr r2, _0818C484 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _0818C488 + adds r1, r1, r2 + movs r2, #9 + bl UpdateHealthboxAttribute + ldrb r2, [r4] + ldr r0, _0818C48C + ldr r0, [r0] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r1, _0818C490 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0818C494 + str r1, [r0] +_0818C474: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0818C47C: .4byte 0x02023D08 +_0818C480: .4byte 0x03005AD0 +_0818C484: .4byte 0x02023D12 +_0818C488: .4byte 0x02024190 +_0818C48C: .4byte 0x02024174 +_0818C490: .4byte 0x03005AC0 +_0818C494: .4byte 0x0818A2B9 + thumb_func_end RecordedPlayerHandleStatusIconUpdate + + thumb_func_start RecordedPlayerHandleStatusAnimation +RecordedPlayerHandleStatusAnimation: @ 0x0818C498 + push {r4, r5, lr} + ldr r5, _0818C4F0 + ldrb r0, [r5] + bl mplay_80342A4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0818C4E8 + ldr r4, _0818C4F4 + ldrb r3, [r5] + lsls r3, r3, #9 + adds r0, r4, #1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, #2 + adds r1, r3, r1 + ldrb r1, [r1] + adds r2, r4, #3 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, r2, #8 + orrs r1, r2 + adds r2, r4, #4 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, r2, #0x10 + orrs r1, r2 + adds r4, #5 + adds r3, r3, r4 + ldrb r2, [r3] + lsls r2, r2, #0x18 + orrs r1, r2 + bl InitAndLaunchChosenStatusAnimation + ldr r1, _0818C4F8 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0818C4FC + str r1, [r0] +_0818C4E8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0818C4F0: .4byte 0x02023D08 +_0818C4F4: .4byte 0x02022D08 +_0818C4F8: .4byte 0x03005AC0 +_0818C4FC: .4byte 0x0818A2B9 + thumb_func_end RecordedPlayerHandleStatusAnimation + + thumb_func_start RecordedPlayerHandleStatusXor +RecordedPlayerHandleStatusXor: @ 0x0818C500 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedPlayerHandleStatusXor + + thumb_func_start RecordedPlayerHandleDataTransfer +RecordedPlayerHandleDataTransfer: @ 0x0818C50C + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedPlayerHandleDataTransfer + + thumb_func_start RecordedPlayerHandleDMA3Transfer +RecordedPlayerHandleDMA3Transfer: @ 0x0818C518 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedPlayerHandleDMA3Transfer + + thumb_func_start RecordedPlayerHandlePlayBGM +RecordedPlayerHandlePlayBGM: @ 0x0818C524 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedPlayerHandlePlayBGM + + thumb_func_start RecordedPlayerHandleCmd32 +RecordedPlayerHandleCmd32: @ 0x0818C530 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedPlayerHandleCmd32 + + thumb_func_start sub_0818C53C +sub_0818C53C: @ 0x0818C53C + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0818C53C + + thumb_func_start sub_0818C548 +sub_0818C548: @ 0x0818C548 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0818C548 + + thumb_func_start sub_0818C554 +sub_0818C554: @ 0x0818C554 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0818C554 + + thumb_func_start RecordedPlayerHandleOneReturnValue_Duplicate +RecordedPlayerHandleOneReturnValue_Duplicate: @ 0x0818C560 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedPlayerHandleOneReturnValue_Duplicate + + thumb_func_start RecordedPlayerHandleCmd37 +RecordedPlayerHandleCmd37: @ 0x0818C56C + push {lr} + ldr r2, _0818C584 + ldrb r1, [r2] + movs r0, #0x80 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_0818C584: .4byte 0x020229C0 + thumb_func_end RecordedPlayerHandleCmd37 + + thumb_func_start RecordedPlayerHandleCmd38 +RecordedPlayerHandleCmd38: @ 0x0818C588 + push {lr} + ldr r3, _0818C5B4 + ldr r1, _0818C5B8 + ldr r0, _0818C5BC + ldrb r0, [r0] + lsls r0, r0, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + ldrb r2, [r3] + movs r0, #0x80 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_0818C5B4: .4byte 0x020229C0 +_0818C5B8: .4byte 0x02022D08 +_0818C5BC: .4byte 0x02023D08 + thumb_func_end RecordedPlayerHandleCmd38 + + thumb_func_start RecordedPlayerHandleCmd39 +RecordedPlayerHandleCmd39: @ 0x0818C5C0 + push {lr} + ldr r2, _0818C5D4 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_0818C5D4: .4byte 0x020229C0 + thumb_func_end RecordedPlayerHandleCmd39 + + thumb_func_start RecordedPlayerHandleCmd40 +RecordedPlayerHandleCmd40: @ 0x0818C5D8 + push {lr} + ldr r3, _0818C5FC + ldr r1, [r3] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1f + movs r0, #1 + eors r1, r0 + lsls r1, r1, #7 + ldrb r2, [r3] + movs r0, #0x7f + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_0818C5FC: .4byte 0x020229C0 + thumb_func_end RecordedPlayerHandleCmd40 + + thumb_func_start sub_0818C600 +sub_0818C600: @ 0x0818C600 + push {r4, lr} + ldr r3, _0818C628 + ldr r2, _0818C62C + ldr r4, _0818C630 + ldrb r0, [r4] + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + bge _0818C634 + bl RecordedPlayerBufferExecCompleted + b _0818C65E + .align 2, 0 +_0818C628: .4byte 0x020205AC +_0818C62C: .4byte 0x02023E88 +_0818C630: .4byte 0x02023D08 +_0818C634: + ldr r1, _0818C664 + movs r0, #1 + strb r0, [r1] + ldrb r0, [r4] + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r1, #0 + strh r1, [r0, #0x30] + ldrb r0, [r4] + bl DoHitAnimHealthboxEffect + ldr r1, _0818C668 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0818C66C + str r1, [r0] +_0818C65E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0818C664: .4byte 0x0202415D +_0818C668: .4byte 0x03005AC0 +_0818C66C: .4byte 0x08189F65 + thumb_func_end sub_0818C600 + + thumb_func_start RecordedPlayerHandleCmd42 +RecordedPlayerHandleCmd42: @ 0x0818C670 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedPlayerHandleCmd42 + + thumb_func_start sub_0818C67C +sub_0818C67C: @ 0x0818C67C + push {r4, lr} + ldr r4, _0818C6B8 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + movs r3, #0x3f + cmp r0, #0 + bne _0818C690 + movs r3, #0xc0 +_0818C690: + ldr r2, _0818C6BC + ldrb r1, [r4] + lsls r1, r1, #9 + adds r0, r2, #1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, #2 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + lsls r1, r3, #0x18 + asrs r1, r1, #0x18 + bl PlaySE12WithPanning + bl RecordedPlayerBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0818C6B8: .4byte 0x02023D08 +_0818C6BC: .4byte 0x02022D08 + thumb_func_end sub_0818C67C + + thumb_func_start RecordedPlayerHandlePlayFanfareOrBGM +RecordedPlayerHandlePlayFanfareOrBGM: @ 0x0818C6C0 + push {r4, r5, lr} + ldr r4, _0818C6F4 + ldr r5, _0818C6F8 + ldrb r0, [r5] + lsls r3, r0, #9 + adds r0, r4, #3 + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, #0 + beq _0818C6FC + bl BattleStopLowHpSound + ldrb r1, [r5] + lsls r1, r1, #9 + adds r0, r4, #1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, r4, #2 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + bl PlayBGM + b _0818C710 + .align 2, 0 +_0818C6F4: .4byte 0x02022D08 +_0818C6F8: .4byte 0x02023D08 +_0818C6FC: + adds r0, r4, #1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, #2 + adds r1, r3, r1 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + bl PlayFanfare +_0818C710: + bl RecordedPlayerBufferExecCompleted + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedPlayerHandlePlayFanfareOrBGM + + thumb_func_start RecordedPlayerHandleFaintingCry +RecordedPlayerHandleFaintingCry: @ 0x0818C71C + push {lr} + ldr r1, _0818C750 + ldr r0, _0818C754 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0818C758 + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x19 + rsbs r1, r1, #0 + movs r2, #5 + bl PlayCry3 + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_0818C750: .4byte 0x02023D12 +_0818C754: .4byte 0x02023D08 +_0818C758: .4byte 0x02024190 + thumb_func_end RecordedPlayerHandleFaintingCry + + thumb_func_start RecordedPlayerHandleIntroSlide +RecordedPlayerHandleIntroSlide: @ 0x0818C75C + push {lr} + ldr r1, _0818C784 + ldr r0, _0818C788 + ldrb r0, [r0] + lsls r0, r0, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + bl HandleIntroSlide + ldr r2, _0818C78C + ldrh r0, [r2] + movs r1, #1 + orrs r0, r1 + strh r0, [r2] + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_0818C784: .4byte 0x02022D08 +_0818C788: .4byte 0x02023D08 +_0818C78C: .4byte 0x020240A0 + thumb_func_end RecordedPlayerHandleIntroSlide + + thumb_func_start RecordedPlayerHandleIntroTrainerBallThrow +RecordedPlayerHandleIntroTrainerBallThrow: @ 0x0818C790 + push {r4, r5, r6, lr} + ldr r5, _0818C85C + ldr r6, _0818C860 + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _0818C864 + adds r0, r0, r4 + bl SetSpritePrimaryCoordsFromSecondaryCoords + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0x32 + strh r1, [r0, #0x2e] + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _0818C868 + strh r1, [r0, #0x32] + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r0, #0x22] + strh r1, [r0, #0x36] + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _0818C86C + str r1, [r0] + ldrb r2, [r6] + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + strh r2, [r0, #0x38] + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _0818C870 + bl StoreSpriteCallbackInData6 + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #1 + bl StartSpriteAnim + ldr r0, _0818C874 + bl AllocSpritePalette + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _0818C878 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x12 + ands r0, r1 + cmp r0, #0 + beq _0818C880 + ldr r4, _0818C87C + ldrb r0, [r6] + bl GetBattlerMultiplayerId + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r0, [r1, #0x13] + b _0818C886 + .align 2, 0 +_0818C85C: .4byte 0x02023E88 +_0818C860: .4byte 0x02023D08 +_0818C864: .4byte 0x020205AC +_0818C868: .4byte 0x0000FFD8 +_0818C86C: .4byte 0x080A67B5 +_0818C870: .4byte 0x0805C81D +_0818C874: .4byte 0x0000D6F9 +_0818C878: .4byte 0x02022C90 +_0818C87C: .4byte 0x020226A0 +_0818C880: + ldr r0, _0818C920 + ldr r0, [r0] + ldrb r0, [r0, #8] +_0818C886: + ldr r1, _0818C924 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r0, [r0] + lsls r4, r5, #4 + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r4, r2 + movs r2, #0x20 + bl LoadCompressedPalette + ldr r2, _0818C928 + ldr r1, _0818C92C + ldr r5, _0818C930 + ldrb r0, [r5] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r4 + strb r0, [r1, #5] + ldr r0, _0818C934 + movs r1, #5 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _0818C938 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r4 + ldrb r0, [r5] + strh r0, [r1, #8] + ldr r3, _0818C93C + ldr r0, [r3] + ldrb r2, [r5] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0818C900 + ldr r0, _0818C940 + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r4 + ldr r1, _0818C944 + str r1, [r0] +_0818C900: + ldr r0, [r3] + ldr r2, [r0, #8] + ldrb r0, [r2, #9] + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #9] + ldr r1, _0818C948 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0818C94C + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0818C920: .4byte 0x03005AF0 +_0818C924: .4byte 0x082D961C +_0818C928: .4byte 0x020205AC +_0818C92C: .4byte 0x02023E88 +_0818C930: .4byte 0x02023D08 +_0818C934: .4byte 0x0818C951 +_0818C938: .4byte 0x03005B60 +_0818C93C: .4byte 0x02024174 +_0818C940: .4byte 0x02024158 +_0818C944: .4byte 0x0807352D +_0818C948: .4byte 0x03005AC0 +_0818C94C: .4byte 0x08189675 + thumb_func_end RecordedPlayerHandleIntroTrainerBallThrow + + thumb_func_start sub_0818C950 +sub_0818C950: @ 0x0818C950 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r1, _0818C978 + lsls r0, r0, #2 + add r0, r8 + lsls r0, r0, #3 + adds r1, r0, r1 + ldrh r2, [r1, #0xa] + movs r3, #0xa + ldrsh r0, [r1, r3] + cmp r0, #0x17 + bgt _0818C97C + adds r0, r2, #1 + strh r0, [r1, #0xa] + b _0818CA38 + .align 2, 0 +_0818C978: .4byte 0x03005B60 +_0818C97C: + ldr r7, _0818C9BC + ldrb r0, [r7] + mov sb, r0 + ldrh r0, [r1, #8] + strb r0, [r7] + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0818C99C + ldr r0, _0818C9C0 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0818C9CC +_0818C99C: + ldr r0, _0818C9C4 + ldrb r1, [r7] + lsls r2, r1, #9 + adds r0, #1 + adds r2, r2, r0 + ldr r0, _0818C9C8 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + strb r0, [r2] + ldrb r0, [r7] + movs r1, #0 + bl sub_0818B798 + b _0818CA20 + .align 2, 0 +_0818C9BC: .4byte 0x02023D08 +_0818C9C0: .4byte 0x02022C90 +_0818C9C4: .4byte 0x02022D08 +_0818C9C8: .4byte 0x02023D12 +_0818C9CC: + ldr r4, _0818CA44 + ldrb r0, [r7] + lsls r1, r0, #9 + adds r4, #1 + adds r1, r1, r4 + ldr r5, _0818CA48 + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + movs r1, #0 + bl sub_0818B798 + ldrb r0, [r7] + movs r6, #2 + eors r0, r6 + strb r0, [r7] + ldrb r0, [r7] + lsls r1, r0, #9 + adds r1, r1, r4 + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r0, [r0] + strb r0, [r1] + ldrb r1, [r7] + lsls r0, r1, #1 + adds r0, r0, r5 + ldrh r2, [r0] + movs r0, #0x64 + muls r0, r2, r0 + ldr r2, _0818CA4C + adds r0, r0, r2 + bl BattleLoadPlayerMonSpriteGfx + ldrb r0, [r7] + movs r1, #0 + bl sub_0818B798 + ldrb r0, [r7] + eors r0, r6 + strb r0, [r7] +_0818CA20: + ldr r1, _0818CA50 + ldr r2, _0818CA54 + ldrb r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0818CA58 + str r1, [r0] + mov r3, sb + strb r3, [r2] + mov r0, r8 + bl DestroyTask +_0818CA38: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0818CA44: .4byte 0x02022D08 +_0818CA48: .4byte 0x02023D12 +_0818CA4C: .4byte 0x02024190 +_0818CA50: .4byte 0x03005AC0 +_0818CA54: .4byte 0x02023D08 +_0818CA58: .4byte 0x08189A6D + thumb_func_end sub_0818C950 + + thumb_func_start RecordedPlayerHandleDrawPartyStatusSummary +RecordedPlayerHandleDrawPartyStatusSummary: @ 0x0818CA5C + push {r4, r5, r6, lr} + ldr r1, _0818CA84 + ldr r0, _0818CA88 + ldrb r2, [r0] + lsls r0, r2, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _0818CA8C + adds r0, r2, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0818CA8C + bl RecordedPlayerBufferExecCompleted + b _0818CB00 + .align 2, 0 +_0818CA84: .4byte 0x02022D08 +_0818CA88: .4byte 0x02023D08 +_0818CA8C: + ldr r6, _0818CB08 + ldr r0, [r6] + ldr r5, _0818CB0C + ldrb r1, [r5] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r2, #1 + orrs r1, r2 + strb r1, [r0] + ldrb r0, [r5] + lsls r3, r0, #9 + ldr r4, _0818CB10 + adds r1, r3, r4 + subs r2, r4, #3 + adds r2, r3, r2 + ldrb r2, [r2] + subs r4, #2 + adds r3, r3, r4 + ldrb r3, [r3] + bl CreatePartyStatusSummarySprites + ldr r2, _0818CB14 + ldrb r1, [r5] + adds r1, r1, r2 + movs r3, #0 + strb r0, [r1] + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strb r3, [r0, #5] + ldrb r2, [r5] + lsls r0, r2, #9 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0 + beq _0818CAF4 + ldr r0, [r6] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + movs r1, #0x5d + strb r1, [r0, #5] +_0818CAF4: + ldr r0, _0818CB18 + ldrb r1, [r5] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, _0818CB1C + str r0, [r1] +_0818CB00: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0818CB08: .4byte 0x02024174 +_0818CB0C: .4byte 0x02023D08 +_0818CB10: .4byte 0x02022D0C +_0818CB14: .4byte 0x02024158 +_0818CB18: .4byte 0x03005AC0 +_0818CB1C: .4byte 0x0818CB21 + thumb_func_end RecordedPlayerHandleDrawPartyStatusSummary + + thumb_func_start sub_0818CB20 +sub_0818CB20: @ 0x0818CB20 + push {r4, lr} + ldr r4, _0818CB60 + ldr r0, [r4] + ldr r3, _0818CB64 + ldrb r1, [r3] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #5] + adds r2, r1, #1 + strb r2, [r0, #5] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0x5c + bls _0818CB58 + ldr r0, [r4] + ldrb r1, [r3] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0 + strb r1, [r0, #5] + bl RecordedPlayerBufferExecCompleted +_0818CB58: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0818CB60: .4byte 0x02024174 +_0818CB64: .4byte 0x02023D08 + thumb_func_end sub_0818CB20 + + thumb_func_start RecordedPlayerHandleHidePartyStatusSummary +RecordedPlayerHandleHidePartyStatusSummary: @ 0x0818CB68 + push {lr} + ldr r0, _0818CBA4 + ldr r1, [r0] + ldr r0, _0818CBA8 + ldrb r3, [r0] + ldr r1, [r1, #4] + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0818CB9A + ldr r2, _0818CBAC + ldr r0, _0818CBB0 + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldr r1, _0818CBB4 + str r1, [r0] +_0818CB9A: + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_0818CBA4: .4byte 0x02024174 +_0818CBA8: .4byte 0x02023D08 +_0818CBAC: .4byte 0x03005B60 +_0818CBB0: .4byte 0x02024158 +_0818CBB4: .4byte 0x0807352D + thumb_func_end RecordedPlayerHandleHidePartyStatusSummary + + thumb_func_start RecordedPlayerHandleEndBounceEffect +RecordedPlayerHandleEndBounceEffect: @ 0x0818CBB8 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedPlayerHandleEndBounceEffect + + thumb_func_start RecordedPlayerHandleSpriteInvisibility +RecordedPlayerHandleSpriteInvisibility: @ 0x0818CBC4 + push {r4, lr} + ldr r4, _0818CC14 + ldrb r0, [r4] + bl IsBattlerSpritePresent + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0818CC0A + ldr r3, _0818CC18 + ldr r0, _0818CC1C + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r0, _0818CC20 + lsls r1, r1, #9 + adds r0, #1 + adds r1, r1, r0 + adds r2, #0x3e + movs r0, #1 + ldrb r1, [r1] + ands r1, r0 + lsls r1, r1, #2 + ldrb r3, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4] + bl CopyBattleSpriteInvisibility +_0818CC0A: + bl RecordedPlayerBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0818CC14: .4byte 0x02023D08 +_0818CC18: .4byte 0x020205AC +_0818CC1C: .4byte 0x02023E88 +_0818CC20: .4byte 0x02022D08 + thumb_func_end RecordedPlayerHandleSpriteInvisibility + + thumb_func_start RecordedPlayerHandleBattleAnimation +RecordedPlayerHandleBattleAnimation: @ 0x0818CC24 + push {r4, r5, r6, lr} + sub sp, #4 + ldr r6, _0818CC68 + ldrb r0, [r6] + bl mplay_80342A4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0818CC7C + ldr r5, _0818CC6C + ldrb r2, [r6] + lsls r1, r2, #9 + adds r0, r5, #1 + adds r0, r1, r0 + ldrb r3, [r0] + adds r0, r5, #2 + adds r0, r1, r0 + ldrb r4, [r0] + adds r5, #3 + adds r1, r1, r5 + ldrb r0, [r1] + lsls r0, r0, #8 + orrs r4, r0 + str r4, [sp] + adds r0, r2, #0 + adds r1, r2, #0 + bl TryHandleLaunchBattleTableAnimation + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0818CC70 + bl RecordedPlayerBufferExecCompleted + b _0818CC7C + .align 2, 0 +_0818CC68: .4byte 0x02023D08 +_0818CC6C: .4byte 0x02022D08 +_0818CC70: + ldr r0, _0818CC84 + ldrb r1, [r6] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, _0818CC88 + str r0, [r1] +_0818CC7C: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0818CC84: .4byte 0x03005AC0 +_0818CC88: .4byte 0x0818A2E9 + thumb_func_end RecordedPlayerHandleBattleAnimation + + thumb_func_start RecordedPlayerHandleLinkStandbyMsg +RecordedPlayerHandleLinkStandbyMsg: @ 0x0818CC8C + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedPlayerHandleLinkStandbyMsg + + thumb_func_start RecordedPlayerHandleResetActionMoveSelection +RecordedPlayerHandleResetActionMoveSelection: @ 0x0818CC98 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RecordedPlayerHandleResetActionMoveSelection + + thumb_func_start RecordedPlayerHandleCmd55 +RecordedPlayerHandleCmd55: @ 0x0818CCA4 + push {r4, lr} + ldr r2, _0818CCDC + ldr r1, _0818CCE0 + ldr r4, _0818CCE4 + ldrb r0, [r4] + lsls r0, r0, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r2] + movs r0, #5 + bl FadeOutMapMusic + movs r0, #3 + bl BeginFastPaletteFade + bl RecordedPlayerBufferExecCompleted + ldr r1, _0818CCE8 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0818CCEC + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0818CCDC: .4byte 0x02023FDE +_0818CCE0: .4byte 0x02022D08 +_0818CCE4: .4byte 0x02023D08 +_0818CCE8: .4byte 0x03005AC0 +_0818CCEC: .4byte 0x080583C1 + thumb_func_end RecordedPlayerHandleCmd55 + + thumb_func_start RecordedPlayerCmdEnd +RecordedPlayerCmdEnd: @ 0x0818CCF0 + bx lr + .align 2, 0 + thumb_func_end RecordedPlayerCmdEnd + diff --git a/asm/battle_controller_safari.s b/asm/battle_controller_safari.s new file mode 100644 index 0000000..9f68552 --- /dev/null +++ b/asm/battle_controller_safari.s @@ -0,0 +1,1580 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start SpriteCB_Null4 +SpriteCB_Null4: @ 0x081592A4 + bx lr + .align 2, 0 + thumb_func_end SpriteCB_Null4 + + thumb_func_start SetControllerToSafari +SetControllerToSafari: @ 0x081592A8 + ldr r1, _081592B8 + ldr r0, _081592BC + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081592C0 + str r1, [r0] + bx lr + .align 2, 0 +_081592B8: .4byte 0x03005AC0 +_081592BC: .4byte 0x02023D08 +_081592C0: .4byte 0x081592C5 + thumb_func_end SetControllerToSafari + + thumb_func_start SafariBufferRunCommand +SafariBufferRunCommand: @ 0x081592C4 + push {lr} + ldr r2, _081592F8 + ldr r1, _081592FC + ldr r0, _08159300 + ldrb r3, [r0] + lsls r0, r3, #2 + adds r0, r0, r1 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _08159310 + ldr r0, _08159304 + lsls r1, r3, #9 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0x38 + bhi _0815930C + ldr r0, _08159308 + ldrb r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl _call_via_r0 + b _08159310 + .align 2, 0 +_081592F8: .4byte 0x02023D0C +_081592FC: .4byte 0x082FACB4 +_08159300: .4byte 0x02023D08 +_08159304: .4byte 0x02022D08 +_08159308: .4byte 0x085ACD28 +_0815930C: + bl SafariBufferExecCompleted +_08159310: + pop {r0} + bx r0 + thumb_func_end SafariBufferRunCommand + + thumb_func_start HandleInputChooseAction +HandleInputChooseAction: @ 0x08159314 + push {r4, r5, lr} + ldr r0, _08159344 + ldrh r1, [r0, #0x2e] + movs r2, #1 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _08159382 + movs r0, #5 + bl PlaySE + ldr r1, _08159348 + ldr r0, _0815934C + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + beq _08159360 + cmp r0, #1 + bgt _08159350 + cmp r0, #0 + beq _0815935A + b _0815937C + .align 2, 0 +_08159344: .4byte 0x03002360 +_08159348: .4byte 0x02024150 +_0815934C: .4byte 0x02023D08 +_08159350: + cmp r0, #2 + beq _08159366 + cmp r0, #3 + beq _08159372 + b _0815937C +_0815935A: + movs r0, #1 + movs r1, #5 + b _0815936A +_08159360: + movs r0, #1 + movs r1, #6 + b _0815936A +_08159366: + movs r0, #1 + movs r1, #7 +_0815936A: + movs r2, #0 + bl BtlController_EmitTwoReturnValues + b _0815937C +_08159372: + movs r0, #1 + movs r1, #8 + movs r2, #0 + bl BtlController_EmitTwoReturnValues +_0815937C: + bl SafariBufferExecCompleted + b _0815948A +_08159382: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _081593C0 + ldr r5, _081593B8 + ldr r4, _081593BC + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0815948A + movs r0, #5 + bl PlaySE + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r0, [r0] + bl ActionSelectionDestroyCursorAt + ldrb r1, [r4] + adds r1, r1, r5 + ldrb r0, [r1] + movs r2, #1 + b _0815942E + .align 2, 0 +_081593B8: .4byte 0x02024150 +_081593BC: .4byte 0x02023D08 +_081593C0: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _081593FC + ldr r5, _081593F4 + ldr r4, _081593F8 + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _0815948A + movs r0, #5 + bl PlaySE + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r0, [r0] + bl ActionSelectionDestroyCursorAt + ldrb r1, [r4] + adds r1, r1, r5 + ldrb r0, [r1] + movs r2, #1 + b _0815942E + .align 2, 0 +_081593F4: .4byte 0x02024150 +_081593F8: .4byte 0x02023D08 +_081593FC: + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08159448 + ldr r5, _08159440 + ldr r4, _08159444 + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0815948A + movs r0, #5 + bl PlaySE + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r0, [r0] + bl ActionSelectionDestroyCursorAt + ldrb r1, [r4] + adds r1, r1, r5 + ldrb r0, [r1] + movs r2, #2 +_0815942E: + eors r0, r2 + strb r0, [r1] + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r0, [r0] + movs r1, #0 + bl SetCB2ToReshowScreenAfterMenu + b _0815948A + .align 2, 0 +_08159440: .4byte 0x02024150 +_08159444: .4byte 0x02023D08 +_08159448: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0815948A + ldr r5, _08159490 + ldr r4, _08159494 + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0815948A + movs r0, #5 + bl PlaySE + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r0, [r0] + bl ActionSelectionDestroyCursorAt + ldrb r1, [r4] + adds r1, r1, r5 + ldrb r0, [r1] + movs r2, #2 + eors r0, r2 + strb r0, [r1] + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r0, [r0] + movs r1, #0 + bl SetCB2ToReshowScreenAfterMenu +_0815948A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08159490: .4byte 0x02024150 +_08159494: .4byte 0x02023D08 + thumb_func_end HandleInputChooseAction + + thumb_func_start CompleteOnHealthboxSpriteCallbackDummy +CompleteOnHealthboxSpriteCallbackDummy: @ 0x08159498 + push {lr} + ldr r2, _081594C0 + ldr r1, _081594C4 + ldr r0, _081594C8 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _081594CC + cmp r1, r0 + bne _081594BC + bl SafariBufferExecCompleted +_081594BC: + pop {r0} + bx r0 + .align 2, 0 +_081594C0: .4byte 0x020205AC +_081594C4: .4byte 0x02023E88 +_081594C8: .4byte 0x02023D08 +_081594CC: .4byte 0x08007141 + thumb_func_end CompleteOnHealthboxSpriteCallbackDummy + + thumb_func_start SafariHandlePrintSelectionString +SafariHandlePrintSelectionString: @ 0x081594D0 + push {lr} + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + bne _081594E2 + bl SafariBufferExecCompleted +_081594E2: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandlePrintSelectionString + + thumb_func_start CompleteWhenChosePokeblock +CompleteWhenChosePokeblock: @ 0x081594E8 + push {lr} + ldr r2, _08159510 + ldr r1, _08159514 + ldr r0, _08159518 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _0815951C + cmp r1, r0 + bne _0815950C + bl SafariBufferExecCompleted +_0815950C: + pop {r0} + bx r0 + .align 2, 0 +_08159510: .4byte 0x020205AC +_08159514: .4byte 0x03005AD0 +_08159518: .4byte 0x02023D08 +_0815951C: .4byte 0x08007141 + thumb_func_end CompleteWhenChosePokeblock + + thumb_func_start sub_08159520 +sub_08159520: @ 0x08159520 + push {lr} + ldr r0, _08159550 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0815954A + ldr r2, _08159554 + ldr r0, _08159558 + adds r3, r2, r0 + ldrb r1, [r3] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3] + ldr r0, _0815955C + ldr r0, [r0] + str r0, [r2] + ldr r0, [r2, #8] + bl SetMainCallback2 +_0815954A: + pop {r0} + bx r0 + .align 2, 0 +_08159550: .4byte 0x02037C74 +_08159554: .4byte 0x03002360 +_08159558: .4byte 0x00000439 +_0815955C: .4byte 0x03005A60 + thumb_func_end sub_08159520 + + thumb_func_start CompleteOnSpecialAnimDone +CompleteOnSpecialAnimDone: @ 0x08159560 + push {lr} + ldr r0, _08159590 + ldrb r0, [r0] + cmp r0, #0 + beq _08159586 + ldr r0, _08159594 + ldr r2, [r0] + ldr r0, _08159598 + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _0815958A +_08159586: + bl SafariBufferExecCompleted +_0815958A: + pop {r0} + bx r0 + .align 2, 0 +_08159590: .4byte 0x0202415D +_08159594: .4byte 0x02024174 +_08159598: .4byte 0x02023D08 + thumb_func_end CompleteOnSpecialAnimDone + + thumb_func_start SafariOpenPokeblockCase +SafariOpenPokeblockCase: @ 0x0815959C + push {lr} + ldr r0, _081595C4 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081595C0 + ldr r1, _081595C8 + ldr r0, _081595CC + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081595D0 + str r1, [r0] + bl FreeAllWindowBuffers + bl sub_08135944 +_081595C0: + pop {r0} + bx r0 + .align 2, 0 +_081595C4: .4byte 0x02037C74 +_081595C8: .4byte 0x03005AC0 +_081595CC: .4byte 0x02023D08 +_081595D0: .4byte 0x081595D5 + thumb_func_end SafariOpenPokeblockCase + + thumb_func_start sub_081595D4 +sub_081595D4: @ 0x081595D4 + push {lr} + ldr r0, _08159600 + ldr r1, [r0, #4] + ldr r0, _08159604 + cmp r1, r0 + bne _081595FA + ldr r0, _08159608 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081595FA + ldr r0, _0815960C + ldrh r1, [r0] + movs r0, #1 + bl BtlController_EmitOneReturnValue + bl SafariBufferExecCompleted +_081595FA: + pop {r0} + bx r0 + .align 2, 0 +_08159600: .4byte 0x03002360 +_08159604: .4byte 0x080380FD +_08159608: .4byte 0x02037C74 +_0815960C: .4byte 0x0203CB48 + thumb_func_end sub_081595D4 + + thumb_func_start SafariHandleSuccessBallThrowAnim +SafariHandleSuccessBallThrowAnim: @ 0x08159610 + push {lr} + ldr r0, _08159638 + ldr r2, [r0] + ldr r0, _0815963C + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _08159632 + bl SafariBufferExecCompleted +_08159632: + pop {r0} + bx r0 + .align 2, 0 +_08159638: .4byte 0x02024174 +_0815963C: .4byte 0x02023D08 + thumb_func_end SafariHandleSuccessBallThrowAnim + + thumb_func_start SafariBufferExecCompleted +SafariBufferExecCompleted: @ 0x08159640 + push {r4, lr} + sub sp, #4 + ldr r1, _08159680 + ldr r4, _08159684 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08159688 + str r1, [r0] + ldr r0, _0815968C + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _08159694 + bl GetMultiplayerId + mov r1, sp + strb r0, [r1] + movs r0, #2 + movs r1, #4 + mov r2, sp + bl PrepareBufferDataTransferLink + ldr r1, _08159690 + ldrb r0, [r4] + lsls r0, r0, #9 + adds r0, r0, r1 + movs r1, #0x38 + strb r1, [r0] + b _081596A6 + .align 2, 0 +_08159680: .4byte 0x03005AC0 +_08159684: .4byte 0x02023D08 +_08159688: .4byte 0x081592C5 +_0815968C: .4byte 0x02022C90 +_08159690: .4byte 0x02022D08 +_08159694: + ldr r2, _081596B0 + ldr r1, _081596B4 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + ldr r0, [r2] + bics r0, r1 + str r0, [r2] +_081596A6: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081596B0: .4byte 0x02023D0C +_081596B4: .4byte 0x082FACB4 + thumb_func_end SafariBufferExecCompleted + + thumb_func_start SafariHandleBallThrowAnim +SafariHandleBallThrowAnim: @ 0x081596B8 + push {lr} + ldr r0, _081596E0 + ldr r2, [r0] + ldr r0, _081596E4 + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _081596DA + bl SafariBufferExecCompleted +_081596DA: + pop {r0} + bx r0 + .align 2, 0 +_081596E0: .4byte 0x02024174 +_081596E4: .4byte 0x02023D08 + thumb_func_end SafariHandleBallThrowAnim + + thumb_func_start SafariHandleGetMonData +SafariHandleGetMonData: @ 0x081596E8 + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleGetMonData + + thumb_func_start SafariHandleGetRawMonData +SafariHandleGetRawMonData: @ 0x081596F4 + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleGetRawMonData + + thumb_func_start SafariHandleSetMonData +SafariHandleSetMonData: @ 0x08159700 + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleSetMonData + + thumb_func_start SafariHandleSetRawMonData +SafariHandleSetRawMonData: @ 0x0815970C + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleSetRawMonData + + thumb_func_start SafariHandleLoadMonSprite +SafariHandleLoadMonSprite: @ 0x08159718 + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleLoadMonSprite + + thumb_func_start SafariHandleSwitchInAnim +SafariHandleSwitchInAnim: @ 0x08159724 + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleSwitchInAnim + + thumb_func_start SafariHandleReturnMonToBall +SafariHandleReturnMonToBall: @ 0x08159730 + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleReturnMonToBall + + thumb_func_start SafariHandleDrawTrainerPic +SafariHandleDrawTrainerPic: @ 0x0815973C + push {r4, r5, r6, lr} + ldr r4, _081597F4 + ldr r0, [r4] + ldrb r0, [r0, #8] + ldr r5, _081597F8 + ldrb r1, [r5] + bl DecompressTrainerBackPic + ldr r0, [r4] + ldrb r6, [r0, #8] + ldrb r0, [r5] + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r6, #0 + bl SetMultiuseSpriteTemplateToTrainerBack + ldr r0, _081597FC + ldr r2, _08159800 + ldr r1, [r4] + ldrb r1, [r1, #8] + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r1, [r1] + movs r2, #8 + subs r2, r2, r1 + lsls r2, r2, #0x12 + movs r1, #0xa0 + lsls r1, r1, #0xf + adds r2, r2, r1 + asrs r2, r2, #0x10 + movs r1, #0x50 + movs r3, #0x1e + bl CreateSprite + ldr r6, _08159804 + ldrb r1, [r5] + adds r1, r1, r6 + strb r0, [r1] + ldr r4, _08159808 + ldrb r3, [r5] + adds r0, r3, r6 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + lsls r3, r3, #4 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #5] + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0xf0 + strh r1, [r0, #0x24] + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _0815980C + strh r1, [r0, #0x2e] + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, #0x1c + adds r0, r0, r4 + ldr r1, _08159810 + str r1, [r0] + ldr r1, _08159814 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08159818 + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081597F4: .4byte 0x03005AF0 +_081597F8: .4byte 0x02023D08 +_081597FC: .4byte 0x02024640 +_08159800: .4byte 0x082D95BC +_08159804: .4byte 0x02023E88 +_08159808: .4byte 0x020205AC +_0815980C: .4byte 0x0000FFFE +_08159810: .4byte 0x0805D3C9 +_08159814: .4byte 0x03005AC0 +_08159818: .4byte 0x08159499 + thumb_func_end SafariHandleDrawTrainerPic + + thumb_func_start SafariHandleTrainerSlide +SafariHandleTrainerSlide: @ 0x0815981C + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleTrainerSlide + + thumb_func_start SafariHandleTrainerSlideBack +SafariHandleTrainerSlideBack: @ 0x08159828 + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleTrainerSlideBack + + thumb_func_start SafariHandleFaintAnimation +SafariHandleFaintAnimation: @ 0x08159834 + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleFaintAnimation + + thumb_func_start SafariHandlePaletteFade +SafariHandlePaletteFade: @ 0x08159840 + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandlePaletteFade + + thumb_func_start sub_0815984C +sub_0815984C: @ 0x0815984C + push {r4, r5, lr} + ldr r0, _0815988C + ldr r0, [r0] + ldr r1, [r0, #8] + movs r0, #4 + strb r0, [r1, #8] + ldr r1, _08159890 + movs r0, #1 + strb r0, [r1] + ldr r5, _08159894 + ldrb r4, [r5] + movs r0, #1 + bl GetBattlerAtPosition + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r4, #0 + movs r3, #4 + bl InitAndLaunchSpecialAnimation + ldr r1, _08159898 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0815989C + str r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0815988C: .4byte 0x02024174 +_08159890: .4byte 0x0202415D +_08159894: .4byte 0x02023D08 +_08159898: .4byte 0x03005AC0 +_0815989C: .4byte 0x08159561 + thumb_func_end sub_0815984C + + thumb_func_start sub_081598A0 +sub_081598A0: @ 0x081598A0 + push {r4, r5, lr} + ldr r1, _081598E8 + ldr r5, _081598EC + ldrb r0, [r5] + lsls r0, r0, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r1, [r0] + ldr r0, _081598F0 + ldr r0, [r0] + ldr r0, [r0, #8] + strb r1, [r0, #8] + ldr r1, _081598F4 + movs r0, #1 + strb r0, [r1] + ldrb r4, [r5] + movs r0, #1 + bl GetBattlerAtPosition + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r4, #0 + movs r3, #4 + bl InitAndLaunchSpecialAnimation + ldr r1, _081598F8 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081598FC + str r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081598E8: .4byte 0x02022D08 +_081598EC: .4byte 0x02023D08 +_081598F0: .4byte 0x02024174 +_081598F4: .4byte 0x0202415D +_081598F8: .4byte 0x03005AC0 +_081598FC: .4byte 0x08159561 + thumb_func_end sub_081598A0 + + thumb_func_start SafariHandlePause +SafariHandlePause: @ 0x08159900 + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandlePause + + thumb_func_start SafariHandleMoveAnimation +SafariHandleMoveAnimation: @ 0x0815990C + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleMoveAnimation + + thumb_func_start SafariHandlePrintString +SafariHandlePrintString: @ 0x08159918 + push {r4, lr} + ldr r0, _08159950 + movs r1, #0 + strh r1, [r0] + ldr r0, _08159954 + strh r1, [r0] + ldr r4, _08159958 + ldrb r0, [r4] + lsls r0, r0, #9 + ldr r1, _0815995C + adds r0, r0, r1 + ldrh r0, [r0] + bl BufferStringBattle + ldr r0, _08159960 + movs r1, #0 + bl sub_0814FA04 + ldr r1, _08159964 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08159968 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08159950: .4byte 0x02022AC8 +_08159954: .4byte 0x02022ACA +_08159958: .4byte 0x02023D08 +_0815995C: .4byte 0x02022D0A +_08159960: .4byte 0x02022AE0 +_08159964: .4byte 0x03005AC0 +_08159968: .4byte 0x081594D1 + thumb_func_end SafariHandlePrintString + + thumb_func_start sub_0815996C +sub_0815996C: @ 0x0815996C + push {lr} + ldr r0, _08159984 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08159988 + bl SafariHandlePrintString + b _0815998C + .align 2, 0 +_08159984: .4byte 0x02023D08 +_08159988: + bl SafariBufferExecCompleted +_0815998C: + pop {r0} + bx r0 + thumb_func_end sub_0815996C + + thumb_func_start sub_08159990 +sub_08159990: @ 0x08159990 + push {lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _081599B6 + ldr r0, _081599BC + strh r1, [r0] + ldr r1, _081599C0 + movs r0, #0xa0 + strh r0, [r1] + ldr r1, _081599C4 + ldr r0, _081599C8 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081599CC + str r1, [r0] +_081599B6: + pop {r0} + bx r0 + .align 2, 0 +_081599BC: .4byte 0x02022AC8 +_081599C0: .4byte 0x02022ACA +_081599C4: .4byte 0x03005AC0 +_081599C8: .4byte 0x02023D08 +_081599CC: .4byte 0x08159315 + thumb_func_end sub_08159990 + + thumb_func_start SafariHandleChooseAction +SafariHandleChooseAction: @ 0x081599D0 + push {r4, lr} + ldr r1, _08159A1C + ldr r0, _08159A20 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08159A24 + str r1, [r0] + ldr r0, _08159A28 + movs r1, #2 + bl sub_0814FA04 + movs r4, #0 +_081599EA: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl ActionSelectionDestroyCursorAt + adds r4, #1 + cmp r4, #3 + ble _081599EA + ldr r1, _08159A2C + ldr r0, _08159A20 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0 + bl SetCB2ToReshowScreenAfterMenu + ldr r0, _08159A30 + bl TryGetStatusString + ldr r0, _08159A34 + movs r1, #1 + bl sub_0814FA04 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08159A1C: .4byte 0x03005AC0 +_08159A20: .4byte 0x02023D08 +_08159A24: .4byte 0x08159991 +_08159A28: .4byte 0x085ABB86 +_08159A2C: .4byte 0x02024150 +_08159A30: .4byte 0x085ABB4D +_08159A34: .4byte 0x02022AE0 + thumb_func_end SafariHandleChooseAction + + thumb_func_start SafariHandleUnknownYesNoBox +SafariHandleUnknownYesNoBox: @ 0x08159A38 + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleUnknownYesNoBox + + thumb_func_start SafariHandleChooseMove +SafariHandleChooseMove: @ 0x08159A44 + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleChooseMove + + thumb_func_start SafariHandleChooseItem +SafariHandleChooseItem: @ 0x08159A50 + push {lr} + sub sp, #4 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _08159A80 + ldr r2, _08159A84 + ldrb r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08159A88 + str r1, [r0] + ldr r1, _08159A8C + ldrb r0, [r2] + strb r0, [r1] + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_08159A80: .4byte 0x03005AC0 +_08159A84: .4byte 0x02023D08 +_08159A88: .4byte 0x0815959D +_08159A8C: .4byte 0x0202415C + thumb_func_end SafariHandleChooseItem + + thumb_func_start SafariHandleChoosePokemon +SafariHandleChoosePokemon: @ 0x08159A90 + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleChoosePokemon + + thumb_func_start SafariHandleCmd23 +SafariHandleCmd23: @ 0x08159A9C + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleCmd23 + + thumb_func_start SafariHandleHealthBarUpdate +SafariHandleHealthBarUpdate: @ 0x08159AA8 + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleHealthBarUpdate + + thumb_func_start SafariHandleExpUpdate +SafariHandleExpUpdate: @ 0x08159AB4 + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleExpUpdate + + thumb_func_start SafariHandleStatusIconUpdate +SafariHandleStatusIconUpdate: @ 0x08159AC0 + push {lr} + ldr r0, _08159AEC + ldr r1, _08159AF0 + ldrb r1, [r1] + adds r0, r1, r0 + ldrb r0, [r0] + ldr r2, _08159AF4 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _08159AF8 + adds r1, r1, r2 + movs r2, #0xb + bl UpdateHealthboxAttribute + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_08159AEC: .4byte 0x03005AD0 +_08159AF0: .4byte 0x02023D08 +_08159AF4: .4byte 0x02023D12 +_08159AF8: .4byte 0x02024190 + thumb_func_end SafariHandleStatusIconUpdate + + thumb_func_start SafariHandleStatusAnimation +SafariHandleStatusAnimation: @ 0x08159AFC + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleStatusAnimation + + thumb_func_start SafariHandleStatusXor +SafariHandleStatusXor: @ 0x08159B08 + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleStatusXor + + thumb_func_start SafariHandleDataTransfer +SafariHandleDataTransfer: @ 0x08159B14 + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleDataTransfer + + thumb_func_start SafariHandleDMA3Transfer +SafariHandleDMA3Transfer: @ 0x08159B20 + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleDMA3Transfer + + thumb_func_start SafariHandlePlayBGM +SafariHandlePlayBGM: @ 0x08159B2C + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandlePlayBGM + + thumb_func_start SafariHandleCmd32 +SafariHandleCmd32: @ 0x08159B38 + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleCmd32 + + thumb_func_start SafariHandleTwoReturnValues +SafariHandleTwoReturnValues: @ 0x08159B44 + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleTwoReturnValues + + thumb_func_start SafariHandleChosenMonReturnValue +SafariHandleChosenMonReturnValue: @ 0x08159B50 + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleChosenMonReturnValue + + thumb_func_start SafariHandleOneReturnValue +SafariHandleOneReturnValue: @ 0x08159B5C + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleOneReturnValue + + thumb_func_start SafariHandleOneReturnValue_Duplicate +SafariHandleOneReturnValue_Duplicate: @ 0x08159B68 + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleOneReturnValue_Duplicate + + thumb_func_start SafariHandleCmd37 +SafariHandleCmd37: @ 0x08159B74 + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleCmd37 + + thumb_func_start SafariHandleCmd38 +SafariHandleCmd38: @ 0x08159B80 + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleCmd38 + + thumb_func_start SafariHandleCmd39 +SafariHandleCmd39: @ 0x08159B8C + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleCmd39 + + thumb_func_start SafariHandleCmd40 +SafariHandleCmd40: @ 0x08159B98 + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleCmd40 + + thumb_func_start SafariHandleHitAnimation +SafariHandleHitAnimation: @ 0x08159BA4 + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleHitAnimation + + thumb_func_start SafariHandleCmd42 +SafariHandleCmd42: @ 0x08159BB0 + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleCmd42 + + thumb_func_start SafariHandlePlaySE +SafariHandlePlaySE: @ 0x08159BBC + push {r4, lr} + ldr r4, _08159BF8 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + movs r3, #0x3f + cmp r0, #0 + bne _08159BD0 + movs r3, #0xc0 +_08159BD0: + ldr r2, _08159BFC + ldrb r1, [r4] + lsls r1, r1, #9 + adds r0, r2, #1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, #2 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + lsls r1, r3, #0x18 + asrs r1, r1, #0x18 + bl PlaySE12WithPanning + bl SafariBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08159BF8: .4byte 0x02023D08 +_08159BFC: .4byte 0x02022D08 + thumb_func_end SafariHandlePlaySE + + thumb_func_start SafariHandlePlayFanfareOrBGM +SafariHandlePlayFanfareOrBGM: @ 0x08159C00 + push {r4, r5, lr} + ldr r4, _08159C34 + ldr r5, _08159C38 + ldrb r0, [r5] + lsls r3, r0, #9 + adds r0, r4, #3 + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, #0 + beq _08159C3C + bl BattleStopLowHpSound + ldrb r1, [r5] + lsls r1, r1, #9 + adds r0, r4, #1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, r4, #2 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + bl PlayBGM + b _08159C50 + .align 2, 0 +_08159C34: .4byte 0x02022D08 +_08159C38: .4byte 0x02023D08 +_08159C3C: + adds r0, r4, #1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, #2 + adds r1, r3, r1 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + bl PlayFanfare +_08159C50: + bl SafariBufferExecCompleted + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandlePlayFanfareOrBGM + + thumb_func_start SafariHandleFaintingCry +SafariHandleFaintingCry: @ 0x08159C5C + push {lr} + ldr r1, _08159C8C + ldr r0, _08159C90 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08159C94 + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x19 + bl PlayCry1 + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_08159C8C: .4byte 0x02023D12 +_08159C90: .4byte 0x02023D08 +_08159C94: .4byte 0x02024190 + thumb_func_end SafariHandleFaintingCry + + thumb_func_start SafariHandleIntroSlide +SafariHandleIntroSlide: @ 0x08159C98 + push {lr} + ldr r1, _08159CC0 + ldr r0, _08159CC4 + ldrb r0, [r0] + lsls r0, r0, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + bl HandleIntroSlide + ldr r2, _08159CC8 + ldrh r0, [r2] + movs r1, #1 + orrs r0, r1 + strh r0, [r2] + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_08159CC0: .4byte 0x02022D08 +_08159CC4: .4byte 0x02023D08 +_08159CC8: .4byte 0x020240A0 + thumb_func_end SafariHandleIntroSlide + + thumb_func_start SafariHandleIntroTrainerBallThrow +SafariHandleIntroTrainerBallThrow: @ 0x08159CCC + push {r4, r5, lr} + ldr r5, _08159D10 + ldr r4, _08159D14 + ldrb r1, [r4] + adds r0, r1, r5 + ldrb r0, [r0] + ldr r2, _08159D18 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _08159D1C + adds r1, r1, r2 + movs r2, #0xa + bl UpdateHealthboxAttribute + ldrb r0, [r4] + bl sub_08076320 + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible + ldr r1, _08159D20 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08159D24 + str r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08159D10: .4byte 0x03005AD0 +_08159D14: .4byte 0x02023D08 +_08159D18: .4byte 0x02023D12 +_08159D1C: .4byte 0x02024190 +_08159D20: .4byte 0x03005AC0 +_08159D24: .4byte 0x081594E9 + thumb_func_end SafariHandleIntroTrainerBallThrow + + thumb_func_start SafariHandleDrawPartyStatusSummary +SafariHandleDrawPartyStatusSummary: @ 0x08159D28 + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleDrawPartyStatusSummary + + thumb_func_start SafariHandleHidePartyStatusSummary +SafariHandleHidePartyStatusSummary: @ 0x08159D34 + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleHidePartyStatusSummary + + thumb_func_start SafariHandleEndBounceEffect +SafariHandleEndBounceEffect: @ 0x08159D40 + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleEndBounceEffect + + thumb_func_start SafariHandleSpriteInvisibility +SafariHandleSpriteInvisibility: @ 0x08159D4C + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleSpriteInvisibility + + thumb_func_start SafariHandleBattleAnimation +SafariHandleBattleAnimation: @ 0x08159D58 + push {r4, r5, r6, lr} + sub sp, #4 + ldr r5, _08159D90 + ldr r6, _08159D94 + ldrb r2, [r6] + lsls r1, r2, #9 + adds r0, r5, #1 + adds r0, r1, r0 + ldrb r3, [r0] + adds r0, r5, #2 + adds r0, r1, r0 + ldrb r4, [r0] + adds r5, #3 + adds r1, r1, r5 + ldrb r0, [r1] + lsls r0, r0, #8 + orrs r4, r0 + str r4, [sp] + adds r0, r2, #0 + adds r1, r2, #0 + bl TryHandleLaunchBattleTableAnimation + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08159D98 + bl SafariBufferExecCompleted + b _08159DA4 + .align 2, 0 +_08159D90: .4byte 0x02022D08 +_08159D94: .4byte 0x02023D08 +_08159D98: + ldr r0, _08159DAC + ldrb r1, [r6] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, _08159DB0 + str r0, [r1] +_08159DA4: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08159DAC: .4byte 0x03005AC0 +_08159DB0: .4byte 0x08159611 + thumb_func_end SafariHandleBattleAnimation + + thumb_func_start SafariHandleLinkStandbyMsg +SafariHandleLinkStandbyMsg: @ 0x08159DB4 + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleLinkStandbyMsg + + thumb_func_start SafariHandleResetActionMoveSelection +SafariHandleResetActionMoveSelection: @ 0x08159DC0 + push {lr} + bl SafariBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SafariHandleResetActionMoveSelection + + thumb_func_start SafariHandleCmd55 +SafariHandleCmd55: @ 0x08159DCC + push {r4, lr} + ldr r2, _08159E10 + ldr r1, _08159E14 + ldr r4, _08159E18 + ldrb r0, [r4] + lsls r0, r0, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r2] + movs r0, #5 + bl FadeOutMapMusic + movs r0, #3 + bl BeginFastPaletteFade + bl SafariBufferExecCompleted + ldr r0, _08159E1C + ldr r0, [r0] + movs r1, #6 + ands r0, r1 + cmp r0, #2 + bne _08159E08 + ldr r0, _08159E20 + ldrb r1, [r4] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, _08159E24 + str r0, [r1] +_08159E08: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08159E10: .4byte 0x02023FDE +_08159E14: .4byte 0x02022D08 +_08159E18: .4byte 0x02023D08 +_08159E1C: .4byte 0x02022C90 +_08159E20: .4byte 0x03005AC0 +_08159E24: .4byte 0x08159521 + thumb_func_end SafariHandleCmd55 + + thumb_func_start SafariCmdEnd +SafariCmdEnd: @ 0x08159E28 + bx lr + .align 2, 0 + thumb_func_end SafariCmdEnd + diff --git a/asm/battle_controller_wally.s b/asm/battle_controller_wally.s new file mode 100644 index 0000000..84c1077 --- /dev/null +++ b/asm/battle_controller_wally.s @@ -0,0 +1,5214 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start WallyCmdEnd +WallyCmdEnd: @ 0x081681BC + bx lr + .align 2, 0 + thumb_func_end WallyCmdEnd + + thumb_func_start SetControllerToWally +SetControllerToWally: @ 0x081681C0 + ldr r1, _081681EC + ldr r0, _081681F0 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _081681F4 + str r1, [r0] + ldr r2, _081681F8 + ldr r0, [r2] + adds r0, #0x94 + movs r1, #0 + strb r1, [r0] + ldr r0, [r2] + adds r0, #0x95 + strb r1, [r0] + ldr r0, [r2] + adds r0, #0x96 + strb r1, [r0] + ldr r0, [r2] + adds r0, #0x97 + strb r1, [r0] + bx lr + .align 2, 0 +_081681EC: .4byte 0x03005AC0 +_081681F0: .4byte 0x02023D08 +_081681F4: .4byte 0x081681FD +_081681F8: .4byte 0x02024140 + thumb_func_end SetControllerToWally + + thumb_func_start WallyBufferRunCommand +WallyBufferRunCommand: @ 0x081681FC + push {lr} + ldr r2, _08168230 + ldr r1, _08168234 + ldr r0, _08168238 + ldrb r3, [r0] + lsls r0, r3, #2 + adds r0, r0, r1 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _08168248 + ldr r0, _0816823C + lsls r1, r3, #9 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0x38 + bhi _08168244 + ldr r0, _08168240 + ldrb r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl _call_via_r0 + b _08168248 + .align 2, 0 +_08168230: .4byte 0x02023D0C +_08168234: .4byte 0x082FACB4 +_08168238: .4byte 0x02023D08 +_0816823C: .4byte 0x02022D08 +_08168240: .4byte 0x085C0AA4 +_08168244: + bl WallyBufferExecCompleted +_08168248: + pop {r0} + bx r0 + thumb_func_end WallyBufferRunCommand + + thumb_func_start WallyHandleActions +WallyHandleActions: @ 0x0816824C + push {r4, r5, lr} + ldr r1, _08168268 + ldr r0, [r1] + adds r0, #0x94 + ldrb r0, [r0] + adds r4, r1, #0 + cmp r0, #5 + bls _0816825E + b _0816836C +_0816825E: + lsls r0, r0, #2 + ldr r1, _0816826C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08168268: .4byte 0x02024140 +_0816826C: .4byte 0x08168270 +_08168270: @ jump table + .4byte _08168288 @ case 0 + .4byte _0816829A @ case 1 + .4byte _081682B8 @ case 2 + .4byte _081682D6 @ case 3 + .4byte _08168310 @ case 4 + .4byte _08168348 @ case 5 +_08168288: + ldr r0, [r4] + adds r0, #0x96 + movs r1, #0x40 + strb r1, [r0] + ldr r1, [r4] + adds r1, #0x94 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0816829A: + ldr r1, [r4] + adds r1, #0x96 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _0816836C + movs r0, #5 + bl PlaySE + movs r0, #1 + movs r1, #0 + b _081682EC +_081682B8: + ldr r1, [r4] + adds r1, #0x96 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _0816836C + movs r0, #5 + bl PlaySE + movs r0, #1 + movs r1, #0 + b _081682EC +_081682D6: + ldr r1, [r4] + adds r1, #0x96 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _0816836C + movs r0, #1 + movs r1, #9 +_081682EC: + movs r2, #0 + bl BtlController_EmitTwoReturnValues + bl WallyBufferExecCompleted + ldr r1, [r4] + adds r1, #0x94 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r0, [r4] + adds r0, #0x95 + strb r5, [r0] + ldr r0, [r4] + adds r0, #0x96 + movs r1, #0x40 + strb r1, [r0] + b _0816836C +_08168310: + ldr r1, [r4] + adds r1, #0x96 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0816836C + movs r0, #5 + bl PlaySE + movs r0, #0 + bl ActionSelectionDestroyCursorAt + movs r0, #1 + movs r1, #0 + bl SetCB2ToReshowScreenAfterMenu + ldr r0, [r4] + adds r0, #0x96 + movs r1, #0x40 + strb r1, [r0] + ldr r1, [r4] + adds r1, #0x94 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0816836C +_08168348: + ldr r1, [r4] + adds r1, #0x96 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0816836C + movs r0, #5 + bl PlaySE + movs r0, #1 + movs r1, #1 + movs r2, #0 + bl BtlController_EmitTwoReturnValues + bl WallyBufferExecCompleted +_0816836C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandleActions + + thumb_func_start CompleteOnChosenItem +CompleteOnChosenItem: @ 0x08168374 + push {lr} + ldr r2, _0816839C + ldr r1, _081683A0 + ldr r0, _081683A4 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _081683A8 + cmp r1, r0 + bne _08168398 + bl WallyBufferExecCompleted +_08168398: + pop {r0} + bx r0 + .align 2, 0 +_0816839C: .4byte 0x020205AC +_081683A0: .4byte 0x02023E88 +_081683A4: .4byte 0x02023D08 +_081683A8: .4byte 0x08007141 + thumb_func_end CompleteOnChosenItem + + thumb_func_start WallyHandleChosenMonReturnValue +WallyHandleChosenMonReturnValue: @ 0x081683AC + push {lr} + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + bne _081683BE + bl WallyBufferExecCompleted +_081683BE: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandleChosenMonReturnValue + + thumb_func_start CompleteOnFinishedAnimation +CompleteOnFinishedAnimation: @ 0x081683C4 + push {lr} + ldr r0, _081683D8 + ldrb r0, [r0] + cmp r0, #0 + bne _081683D2 + bl WallyBufferExecCompleted +_081683D2: + pop {r0} + bx r0 + .align 2, 0 +_081683D8: .4byte 0x0202415D + thumb_func_end CompleteOnFinishedAnimation + + thumb_func_start OpenBagAfterPaletteFade +OpenBagAfterPaletteFade: @ 0x081683DC + push {lr} + ldr r0, _08168408 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08168404 + ldr r1, _0816840C + ldr r0, _08168410 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08168414 + str r1, [r0] + bl nullsub_35 + bl FreeAllWindowBuffers + bl DoWallyTutorialBagMenu +_08168404: + pop {r0} + bx r0 + .align 2, 0 +_08168408: .4byte 0x02037C74 +_0816840C: .4byte 0x03005AC0 +_08168410: .4byte 0x02023D08 +_08168414: .4byte 0x08168419 + thumb_func_end OpenBagAfterPaletteFade + + thumb_func_start WallyHandleCmd39 +WallyHandleCmd39: @ 0x08168418 + push {lr} + ldr r0, _08168444 + ldr r1, [r0, #4] + ldr r0, _08168448 + cmp r1, r0 + bne _0816843E + ldr r0, _0816844C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0816843E + ldr r0, _08168450 + ldrh r1, [r0] + movs r0, #1 + bl BtlController_EmitOneReturnValue + bl WallyBufferExecCompleted +_0816843E: + pop {r0} + bx r0 + .align 2, 0 +_08168444: .4byte 0x03002360 +_08168448: .4byte 0x080380FD +_0816844C: .4byte 0x02037C74 +_08168450: .4byte 0x0203CB48 + thumb_func_end WallyHandleCmd39 + + thumb_func_start sub_08168454 +sub_08168454: @ 0x08168454 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r4, _081685F0 + ldr r0, [r4] + ldr r5, _081685F4 + ldrb r2, [r5] + ldr r1, [r0, #4] + lsls r3, r2, #1 + adds r0, r3, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r7, #0x88 + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0 + bne _0816848C + ldr r0, _081685F8 + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _081685FC + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_08172CD4 +_0816848C: + ldr r1, [r4] + ldrb r0, [r5] + movs r6, #2 + adds r2, r6, #0 + eors r2, r0 + ldr r1, [r1, #4] + lsls r3, r2, #1 + adds r0, r3, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0 + bne _081684BE + ldr r0, _081685F8 + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _081685FC + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_08172CD4 +_081684BE: + ldr r0, [r4] + ldrb r2, [r5] + ldr r3, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0] + movs r4, #8 + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + beq _081684DA + b _081685E4 +_081684DA: + adds r1, r2, #0 + eors r1, r6 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0] + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + bne _081685E4 + ldr r0, _08168600 + mov r8, r0 + ldr r7, _08168604 + adds r0, r2, r7 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + mov r4, r8 + adds r4, #0x1c + adds r0, r0, r4 + ldr r3, [r0] + ldr r0, _08168608 + cmp r3, r0 + bne _081685E4 + ldr r0, _0816860C + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r0, [r0] + cmp r0, r3 + bne _081685E4 + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08168582 + ldr r0, _08168610 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08168582 + ldrb r0, [r5] + eors r0, r6 + adds r0, r0, r7 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + bl DestroySprite + ldr r4, _08168614 + ldrb r0, [r5] + adds r1, r6, #0 + eors r1, r0 + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, _081685F8 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _081685FC + adds r1, r1, r2 + movs r2, #0 + bl UpdateHealthboxAttribute + ldrb r0, [r5] + eors r0, r6 + bl sub_08076320 + ldrb r0, [r5] + eors r0, r6 + adds r0, r0, r4 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible +_08168582: + ldr r1, _08168604 + ldr r4, _081685F4 + ldrb r0, [r4] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08168600 + adds r0, r0, r1 + bl DestroySprite + ldr r5, _08168614 + ldrb r1, [r4] + adds r0, r1, r5 + ldrb r0, [r0] + ldr r2, _081685F8 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _081685FC + adds r1, r1, r2 + movs r2, #0 + bl UpdateHealthboxAttribute + ldrb r0, [r4] + bl sub_08076320 + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible + ldr r0, _081685F0 + ldr r0, [r0] + ldr r2, [r0, #8] + ldrb r1, [r2, #9] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #9] + ldr r1, _08168618 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0816861C + str r1, [r0] +_081685E4: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081685F0: .4byte 0x02024174 +_081685F4: .4byte 0x02023D08 +_081685F8: .4byte 0x02023D12 +_081685FC: .4byte 0x02024190 +_08168600: .4byte 0x020205AC +_08168604: .4byte 0x03005ADC +_08168608: .4byte 0x08007141 +_0816860C: .4byte 0x02023E88 +_08168610: .4byte 0x02022C90 +_08168614: .4byte 0x03005AD0 +_08168618: .4byte 0x03005AC0 +_0816861C: .4byte 0x08168621 + thumb_func_end sub_08168454 + + thumb_func_start sub_08168620 +sub_08168620: @ 0x08168620 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r4, #0 + ldr r2, _08168718 + ldr r0, _0816871C + ldr r1, _08168720 + mov r8, r1 + ldrb r3, [r1] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _08168724 + cmp r1, r0 + bne _0816864A + movs r4, #1 +_0816864A: + cmp r4, #0 + beq _0816870C + ldr r7, _08168728 + ldr r0, [r7] + ldr r4, [r0, #4] + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r2, r0, r4 + ldrb r1, [r2, #1] + movs r5, #1 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _0816870C + movs r6, #2 + adds r1, r6, #0 + eors r1, r3 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r1, [r0, #1] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _0816870C + ldrb r1, [r2] + movs r3, #0x7f + adds r0, r3, #0 + ands r0, r1 + strb r0, [r2] + ldr r0, [r7] + mov r1, r8 + ldrb r2, [r1] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + movs r4, #2 + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r2 + strb r0, [r1, #1] + ldr r2, [r7] + mov r1, r8 + ldrb r0, [r1] + adds r1, r6, #0 + eors r1, r0 + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + ands r3, r1 + strb r3, [r0] + ldr r2, [r7] + mov r1, r8 + ldrb r0, [r1] + adds r1, r6, #0 + eors r1, r0 + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #1] + ands r4, r1 + strb r4, [r0, #1] + ldr r4, _0816872C + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl FreeSpritePaletteByTag + ldr r0, _08168730 + movs r1, #0xa + bl CreateTask + ldr r2, _08168734 + mov r0, r8 + ldrb r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r2, [r0] + movs r0, #0x64 + muls r0, r2, r0 + ldr r2, _08168738 + adds r0, r0, r2 + bl HandleLowHpMusicChange + bl WallyBufferExecCompleted +_0816870C: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08168718: .4byte 0x020205AC +_0816871C: .4byte 0x03005AD0 +_08168720: .4byte 0x02023D08 +_08168724: .4byte 0x08007141 +_08168728: .4byte 0x02024174 +_0816872C: .4byte 0x000027F9 +_08168730: .4byte 0x08058D11 +_08168734: .4byte 0x02023D12 +_08168738: .4byte 0x02024190 + thumb_func_end sub_08168620 + + thumb_func_start sub_0816873C +sub_0816873C: @ 0x0816873C + push {r4, r5, r6, lr} + ldr r5, _0816877C + ldrb r0, [r5] + ldr r6, _08168780 + adds r1, r0, r6 + ldrb r1, [r1] + movs r2, #0 + movs r3, #0 + bl MoveBattleBar + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible + lsls r4, r4, #0x10 + asrs r1, r4, #0x10 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _08168784 + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r0, [r0] + movs r2, #0 + bl sub_080726F4 + b _0816879E + .align 2, 0 +_0816877C: .4byte 0x02023D08 +_08168780: .4byte 0x03005AD0 +_08168784: + ldr r2, _081687A4 + ldrb r1, [r5] + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r2, [r0] + movs r0, #0x64 + muls r0, r2, r0 + ldr r2, _081687A8 + adds r0, r0, r2 + bl HandleLowHpMusicChange + bl WallyBufferExecCompleted +_0816879E: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081687A4: .4byte 0x02023D12 +_081687A8: .4byte 0x02024190 + thumb_func_end sub_0816873C + + thumb_func_start WallyHandleGetRawMonData +WallyHandleGetRawMonData: @ 0x081687AC + push {r4, lr} + ldr r1, _081687E8 + ldr r0, _081687EC + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + ldr r2, _081687F0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, r0, r2 + movs r1, #0x30 + ldrsh r0, [r4, r1] + cmp r0, #0x20 + bne _081687F8 + movs r3, #0 + movs r0, #0 + strh r0, [r4, #0x30] + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + subs r0, #5 + ands r0, r1 + strb r0, [r2] + ldr r0, _081687F4 + strb r3, [r0] + bl WallyBufferExecCompleted + b _08168822 + .align 2, 0 +_081687E8: .4byte 0x02023E88 +_081687EC: .4byte 0x02023D08 +_081687F0: .4byte 0x020205AC +_081687F4: .4byte 0x0202415D +_081687F8: + ldrh r0, [r4, #0x30] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0816881C + adds r3, r4, #0 + adds r3, #0x3e + ldrb r2, [r3] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_0816881C: + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] +_08168822: + pop {r4} + pop {r0} + bx r0 + thumb_func_end WallyHandleGetRawMonData + + thumb_func_start sub_08168828 +sub_08168828: @ 0x08168828 + push {r4, r5, r6, lr} + ldr r0, _08168884 + ldr r0, [r0] + ldr r6, _08168888 + ldrb r2, [r6] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _0816887C + ldr r5, _0816888C + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _08168890 + adds r0, r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + ldr r1, _08168894 + ldrb r0, [r6] + adds r0, r0, r1 + ldrb r0, [r0] + bl SetHealthboxSpriteInvisible + bl WallyBufferExecCompleted +_0816887C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08168884: .4byte 0x02024174 +_08168888: .4byte 0x02023D08 +_0816888C: .4byte 0x02023E88 +_08168890: .4byte 0x020205AC +_08168894: .4byte 0x03005AD0 + thumb_func_end sub_08168828 + + thumb_func_start WallyHandleOneReturnValue +WallyHandleOneReturnValue: @ 0x08168898 + push {lr} + ldr r2, _081688C0 + ldr r1, _081688C4 + ldr r0, _081688C8 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _081688CC + cmp r1, r0 + bne _081688BC + bl WallyBufferExecCompleted +_081688BC: + pop {r0} + bx r0 + .align 2, 0 +_081688C0: .4byte 0x020205AC +_081688C4: .4byte 0x02023E88 +_081688C8: .4byte 0x02023D08 +_081688CC: .4byte 0x08007141 + thumb_func_end WallyHandleOneReturnValue + + thumb_func_start sub_081688D0 +sub_081688D0: @ 0x081688D0 + push {lr} + ldr r0, _081688F8 + ldr r2, [r0] + ldr r0, _081688FC + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _081688F2 + bl WallyBufferExecCompleted +_081688F2: + pop {r0} + bx r0 + .align 2, 0 +_081688F8: .4byte 0x02024174 +_081688FC: .4byte 0x02023D08 + thumb_func_end sub_081688D0 + + thumb_func_start WallyBufferExecCompleted +WallyBufferExecCompleted: @ 0x08168900 + push {r4, lr} + sub sp, #4 + ldr r1, _08168940 + ldr r4, _08168944 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08168948 + str r1, [r0] + ldr r0, _0816894C + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _08168954 + bl GetMultiplayerId + mov r1, sp + strb r0, [r1] + movs r0, #2 + movs r1, #4 + mov r2, sp + bl PrepareBufferDataTransferLink + ldr r1, _08168950 + ldrb r0, [r4] + lsls r0, r0, #9 + adds r0, r0, r1 + movs r1, #0x38 + strb r1, [r0] + b _08168966 + .align 2, 0 +_08168940: .4byte 0x03005AC0 +_08168944: .4byte 0x02023D08 +_08168948: .4byte 0x081681FD +_0816894C: .4byte 0x02022C90 +_08168950: .4byte 0x02022D08 +_08168954: + ldr r2, _08168970 + ldr r1, _08168974 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + ldr r0, [r2] + bics r0, r1 + str r0, [r2] +_08168966: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08168970: .4byte 0x02023D0C +_08168974: .4byte 0x082FACB4 + thumb_func_end WallyBufferExecCompleted + + thumb_func_start sub_08168978 +sub_08168978: @ 0x08168978 + push {lr} + ldr r0, _081689A0 + ldr r2, [r0] + ldr r0, _081689A4 + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _0816899A + bl WallyBufferExecCompleted +_0816899A: + pop {r0} + bx r0 + .align 2, 0 +_081689A0: .4byte 0x02024174 +_081689A4: .4byte 0x02023D08 + thumb_func_end sub_08168978 + + thumb_func_start WallyHandleGetMonData +WallyHandleGetMonData: @ 0x081689A8 + push {r4, r5, r6, lr} + sub sp, #0x100 + movs r6, #0 + ldr r1, _081689D4 + ldr r0, _081689D8 + ldrb r2, [r0] + lsls r0, r2, #9 + adds r1, #2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, #0 + bne _081689E0 + ldr r0, _081689DC + lsls r1, r2, #1 + adds r1, r1, r0 + ldrb r0, [r1] + mov r1, sp + bl CopyWallyMonData + adds r6, r0, #0 + b _08168A02 + .align 2, 0 +_081689D4: .4byte 0x02022D08 +_081689D8: .4byte 0x02023D08 +_081689DC: .4byte 0x02023D12 +_081689E0: + ldrb r4, [r1] + movs r5, #0 +_081689E4: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _081689FA + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + mov r2, sp + adds r1, r2, r6 + bl CopyWallyMonData + adds r6, r6, r0 +_081689FA: + lsrs r4, r4, #1 + adds r5, #1 + cmp r5, #5 + ble _081689E4 +_08168A02: + lsls r1, r6, #0x10 + lsrs r1, r1, #0x10 + movs r0, #1 + mov r2, sp + bl BtlController_EmitDataTransfer + bl WallyBufferExecCompleted + add sp, #0x100 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandleGetMonData + + thumb_func_start CopyWallyMonData +CopyWallyMonData: @ 0x08168A1C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x90 + adds r7, r1, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r6, #0 + ldr r2, _08168A50 + ldr r3, _08168A54 + ldrb r0, [r3] + lsls r0, r0, #9 + adds r1, r2, #1 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0x3b + bls _08168A46 + bl _081691B2 +_08168A46: + lsls r0, r0, #2 + ldr r1, _08168A58 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08168A50: .4byte 0x02022D08 +_08168A54: .4byte 0x02023D08 +_08168A58: .4byte 0x08168A5C +_08168A5C: @ jump table + .4byte _08168B4C @ case 0 + .4byte _08168D70 @ case 1 + .4byte _08168D80 @ case 2 + .4byte _08168D90 @ case 3 + .4byte _08168DF8 @ case 4 + .4byte _08168DF8 @ case 5 + .4byte _08168DF8 @ case 6 + .4byte _08168DF8 @ case 7 + .4byte _08168E14 @ case 8 + .4byte _08168E50 @ case 9 + .4byte _08168E50 @ case 10 + .4byte _08168E50 @ case 11 + .4byte _08168E50 @ case 12 + .4byte _081691B2 @ case 13 + .4byte _081691B2 @ case 14 + .4byte _081691B2 @ case 15 + .4byte _081691B2 @ case 16 + .4byte _08168E6C @ case 17 + .4byte _08168E7C @ case 18 + .4byte _08168EAC @ case 19 + .4byte _08168EBC @ case 20 + .4byte _08168ECC @ case 21 + .4byte _08168EDC @ case 22 + .4byte _08168EEC @ case 23 + .4byte _08168EFC @ case 24 + .4byte _08168F0C @ case 25 + .4byte _08168F1C @ case 26 + .4byte _08168F2C @ case 27 + .4byte _08168F3C @ case 28 + .4byte _08168F4C @ case 29 + .4byte _08168F5C @ case 30 + .4byte _08168F6C @ case 31 + .4byte _08168FBC @ case 32 + .4byte _08168FCC @ case 33 + .4byte _08168FDC @ case 34 + .4byte _08168FEC @ case 35 + .4byte _08168FFC @ case 36 + .4byte _0816900C @ case 37 + .4byte _0816901C @ case 38 + .4byte _0816902C @ case 39 + .4byte _0816903C @ case 40 + .4byte _08169070 @ case 41 + .4byte _08169080 @ case 42 + .4byte _08169090 @ case 43 + .4byte _081690A0 @ case 44 + .4byte _081690B0 @ case 45 + .4byte _081690C0 @ case 46 + .4byte _081690D0 @ case 47 + .4byte _081690E0 @ case 48 + .4byte _08169100 @ case 49 + .4byte _08169110 @ case 50 + .4byte _08169120 @ case 51 + .4byte _08169130 @ case 52 + .4byte _08169140 @ case 53 + .4byte _08169150 @ case 54 + .4byte _08169160 @ case 55 + .4byte _08169170 @ case 56 + .4byte _08169180 @ case 57 + .4byte _08169190 @ case 58 + .4byte _081691A0 @ case 59 +_08168B4C: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _08168D60 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + mov r1, sp + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0xc + bl GetMonData + mov r1, sp + strh r0, [r1, #0x2e] + movs r6, #0 + add r0, sp, #0x24 + mov sb, r0 + movs r1, #0x3b + add r1, sp + mov sl, r1 + mov r2, sp + adds r2, #0x2b + str r2, [sp, #0x80] + mov r0, sp + adds r0, #0x2a + str r0, [sp, #0x7c] + mov r1, sp + adds r1, #0x68 + str r1, [sp, #0x8c] + adds r2, #5 + str r2, [sp, #0x84] + adds r0, #0x12 + str r0, [sp, #0x88] + mov r8, r4 + add r4, sp, #0xc +_08168B98: + adds r1, r6, #0 + adds r1, #0xd + mov r0, r8 + bl GetMonData + strh r0, [r4] + adds r1, r6, #0 + adds r1, #0x11 + mov r0, r8 + bl GetMonData + mov r2, sb + adds r1, r2, r6 + strb r0, [r1] + adds r4, #2 + adds r6, #1 + cmp r6, #3 + ble _08168B98 + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _08168D60 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x15 + bl GetMonData + mov r1, sl + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x20 + bl GetMonData + ldr r2, [sp, #0x80] + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0x19 + bl GetMonData + str r0, [sp, #0x44] + adds r0, r4, #0 + movs r1, #0x27 + bl GetMonData + mov r3, sp + movs r5, #0x1f + ands r0, r5 + ldrb r2, [r3, #0x14] + movs r1, #0x20 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x14] + adds r0, r4, #0 + movs r1, #0x28 + bl GetMonData + mov r3, sp + movs r6, #0x1f + ands r0, r6 + lsls r0, r0, #5 + ldrh r2, [r3, #0x14] + ldr r1, _08168D64 + ands r1, r2 + orrs r1, r0 + strh r1, [r3, #0x14] + adds r0, r4, #0 + movs r1, #0x29 + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, r0, #2 + ldrb r2, [r3, #0x15] + movs r1, #0x7d + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x15] + adds r0, r4, #0 + movs r1, #0x2a + bl GetMonData + movs r1, #0x1f + ands r1, r0 + lsls r1, r1, #0xf + ldr r0, [sp, #0x14] + ldr r2, _08168D68 + ands r0, r2 + orrs r0, r1 + str r0, [sp, #0x14] + adds r0, r4, #0 + movs r1, #0x2b + bl GetMonData + mov r3, sp + ands r0, r6 + lsls r0, r0, #4 + ldrh r2, [r3, #0x16] + ldr r1, _08168D6C + ands r1, r2 + orrs r1, r0 + strh r1, [r3, #0x16] + adds r0, r4, #0 + movs r1, #0x2c + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, r0, #1 + ldrb r2, [r3, #0x17] + movs r1, #0x3f + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x17] + adds r0, r4, #0 + movs r1, #0 + bl GetMonData + str r0, [sp, #0x48] + adds r0, r4, #0 + movs r1, #0x37 + bl GetMonData + str r0, [sp, #0x4c] + adds r0, r4, #0 + movs r1, #0x38 + bl GetMonData + ldr r1, [sp, #0x7c] + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + mov r1, sp + strh r0, [r1, #0x28] + adds r0, r4, #0 + movs r1, #0x3a + bl GetMonData + mov r1, sp + strh r0, [r1, #0x2c] + adds r0, r4, #0 + movs r1, #0x3b + bl GetMonData + mov r1, sp + strh r0, [r1, #2] + adds r0, r4, #0 + movs r1, #0x3c + bl GetMonData + mov r1, sp + strh r0, [r1, #4] + adds r0, r4, #0 + movs r1, #0x3d + bl GetMonData + mov r1, sp + strh r0, [r1, #6] + adds r0, r4, #0 + movs r1, #0x3e + bl GetMonData + mov r1, sp + strh r0, [r1, #8] + adds r0, r4, #0 + movs r1, #0x3f + bl GetMonData + mov r1, sp + strh r0, [r1, #0xa] + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + mov r3, sp + movs r1, #1 + ands r0, r1 + lsls r0, r0, #6 + ldrb r2, [r3, #0x17] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x17] + adds r0, r4, #0 + movs r1, #0x2e + bl GetMonData + mov r3, sp + lsls r0, r0, #7 + ldrb r2, [r3, #0x17] + movs r1, #0x7f + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x17] + adds r0, r4, #0 + movs r1, #1 + bl GetMonData + str r0, [sp, #0x54] + adds r0, r4, #0 + movs r1, #2 + ldr r2, [sp, #0x8c] + bl GetMonData + ldr r0, [sp, #0x84] + ldr r1, [sp, #0x8c] + bl StringCopy10 + adds r0, r4, #0 + movs r1, #7 + ldr r2, [sp, #0x88] + bl GetMonData + mov r2, sp + movs r6, #0 +_08168D50: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, #1 + cmp r6, #0x57 + bls _08168D50 + b _081691B2 + .align 2, 0 +_08168D60: .4byte 0x02024190 +_08168D64: .4byte 0xFFFFFC1F +_08168D68: .4byte 0xFFF07FFF +_08168D6C: .4byte 0xFFFFFE0F +_08168D70: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08168D7C + adds r0, r0, r1 + movs r1, #0xb + b _081690EA + .align 2, 0 +_08168D7C: .4byte 0x02024190 +_08168D80: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08168D8C + adds r0, r0, r1 + movs r1, #0xc + b _081690EA + .align 2, 0 +_08168D8C: .4byte 0x02024190 +_08168D90: + movs r6, #0 + add r2, sp, #0x58 + mov sb, r2 + add r0, sp, #0x60 + mov sl, r0 + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _08168DF4 + adds r4, r1, r0 + mov r8, sb +_08168DA6: + adds r1, r6, #0 + adds r1, #0xd + adds r0, r4, #0 + bl GetMonData + mov r1, r8 + strh r0, [r1] + adds r1, r6, #0 + adds r1, #0x11 + adds r0, r4, #0 + bl GetMonData + mov r2, sl + adds r1, r2, r6 + strb r0, [r1] + movs r0, #2 + add r8, r0 + adds r6, #1 + cmp r6, #3 + ble _08168DA6 + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08168DF4 + adds r0, r0, r1 + movs r1, #0x15 + bl GetMonData + mov r1, sb + strb r0, [r1, #0xc] + mov r2, sb + movs r6, #0 +_08168DE4: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, #1 + cmp r6, #0xf + bls _08168DE4 + b _081691B2 + .align 2, 0 +_08168DF4: .4byte 0x02024190 +_08168DF8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08168E10 + adds r0, r0, r1 + ldrb r1, [r3] + lsls r1, r1, #9 + adds r2, #1 + adds r1, r1, r2 + ldrb r1, [r1] + adds r1, #9 + b _081690EA + .align 2, 0 +_08168E10: .4byte 0x02024190 +_08168E14: + movs r6, #0 + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r2, _08168E4C + mov r8, r2 +_08168E20: + adds r1, r6, #0 + adds r1, #0x11 + mov r2, r8 + adds r0, r4, r2 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, #1 + cmp r6, #3 + ble _08168E20 + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08168E4C + adds r0, r0, r1 + movs r1, #0x15 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, #1 + b _081691B2 + .align 2, 0 +_08168E4C: .4byte 0x02024190 +_08168E50: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08168E68 + adds r0, r0, r1 + ldrb r1, [r3] + lsls r1, r1, #9 + adds r2, #1 + adds r1, r1, r2 + ldrb r1, [r1] + adds r1, #8 + b _081691AA + .align 2, 0 +_08168E68: .4byte 0x02024190 +_08168E6C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08168E78 + adds r0, r0, r1 + movs r1, #1 + b _08168E86 + .align 2, 0 +_08168E78: .4byte 0x02024190 +_08168E7C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08168EA8 + adds r0, r0, r1 + movs r1, #0x19 +_08168E86: + bl GetMonData + adds r1, r0, #0 + strb r1, [r7] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + lsrs r0, r0, #8 + strb r0, [r7, #1] + movs r0, #0xff + lsls r0, r0, #0x10 + ands r0, r1 + lsrs r0, r0, #0x10 + strb r0, [r7, #2] + movs r6, #3 + b _081691B2 + .align 2, 0 +_08168EA8: .4byte 0x02024190 +_08168EAC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08168EB8 + adds r0, r0, r1 + movs r1, #0x1a + b _081691AA + .align 2, 0 +_08168EB8: .4byte 0x02024190 +_08168EBC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08168EC8 + adds r0, r0, r1 + movs r1, #0x1b + b _081691AA + .align 2, 0 +_08168EC8: .4byte 0x02024190 +_08168ECC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08168ED8 + adds r0, r0, r1 + movs r1, #0x1c + b _081691AA + .align 2, 0 +_08168ED8: .4byte 0x02024190 +_08168EDC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08168EE8 + adds r0, r0, r1 + movs r1, #0x1d + b _081691AA + .align 2, 0 +_08168EE8: .4byte 0x02024190 +_08168EEC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08168EF8 + adds r0, r0, r1 + movs r1, #0x1e + b _081691AA + .align 2, 0 +_08168EF8: .4byte 0x02024190 +_08168EFC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08168F08 + adds r0, r0, r1 + movs r1, #0x1f + b _081691AA + .align 2, 0 +_08168F08: .4byte 0x02024190 +_08168F0C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08168F18 + adds r0, r0, r1 + movs r1, #0x20 + b _081691AA + .align 2, 0 +_08168F18: .4byte 0x02024190 +_08168F1C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08168F28 + adds r0, r0, r1 + movs r1, #0x22 + b _081691AA + .align 2, 0 +_08168F28: .4byte 0x02024190 +_08168F2C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08168F38 + adds r0, r0, r1 + movs r1, #0x23 + b _081691AA + .align 2, 0 +_08168F38: .4byte 0x02024190 +_08168F3C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08168F48 + adds r0, r0, r1 + movs r1, #0x24 + b _081691AA + .align 2, 0 +_08168F48: .4byte 0x02024190 +_08168F4C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08168F58 + adds r0, r0, r1 + movs r1, #0x25 + b _081691AA + .align 2, 0 +_08168F58: .4byte 0x02024190 +_08168F5C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08168F68 + adds r0, r0, r1 + movs r1, #0x26 + b _081691AA + .align 2, 0 +_08168F68: .4byte 0x02024190 +_08168F6C: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _08168FB8 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x27 + bl GetMonData + strb r0, [r7] + adds r0, r4, #0 + movs r1, #0x28 + bl GetMonData + strb r0, [r7, #1] + adds r0, r4, #0 + movs r1, #0x29 + bl GetMonData + strb r0, [r7, #2] + adds r0, r4, #0 + movs r1, #0x2a + bl GetMonData + strb r0, [r7, #3] + adds r0, r4, #0 + movs r1, #0x2b + bl GetMonData + strb r0, [r7, #4] + adds r0, r4, #0 + movs r1, #0x2c + bl GetMonData + strb r0, [r7, #5] + movs r6, #6 + b _081691B2 + .align 2, 0 +_08168FB8: .4byte 0x02024190 +_08168FBC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08168FC8 + adds r0, r0, r1 + movs r1, #0x27 + b _081691AA + .align 2, 0 +_08168FC8: .4byte 0x02024190 +_08168FCC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08168FD8 + adds r0, r0, r1 + movs r1, #0x28 + b _081691AA + .align 2, 0 +_08168FD8: .4byte 0x02024190 +_08168FDC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08168FE8 + adds r0, r0, r1 + movs r1, #0x29 + b _081691AA + .align 2, 0 +_08168FE8: .4byte 0x02024190 +_08168FEC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08168FF8 + adds r0, r0, r1 + movs r1, #0x2a + b _081691AA + .align 2, 0 +_08168FF8: .4byte 0x02024190 +_08168FFC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169008 + adds r0, r0, r1 + movs r1, #0x2b + b _081691AA + .align 2, 0 +_08169008: .4byte 0x02024190 +_0816900C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169018 + adds r0, r0, r1 + movs r1, #0x2c + b _081691AA + .align 2, 0 +_08169018: .4byte 0x02024190 +_0816901C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169028 + adds r0, r0, r1 + movs r1, #0 + b _08169046 + .align 2, 0 +_08169028: .4byte 0x02024190 +_0816902C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169038 + adds r0, r0, r1 + movs r1, #9 + b _081690EA + .align 2, 0 +_08169038: .4byte 0x02024190 +_0816903C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0816906C + adds r0, r0, r1 + movs r1, #0x37 +_08169046: + bl GetMonData + adds r1, r0, #0 + strb r1, [r7] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + lsrs r0, r0, #8 + strb r0, [r7, #1] + movs r0, #0xff + lsls r0, r0, #0x10 + ands r0, r1 + lsrs r0, r0, #0x10 + strb r0, [r7, #2] + lsrs r0, r1, #0x18 + strb r0, [r7, #3] + movs r6, #4 + b _081691B2 + .align 2, 0 +_0816906C: .4byte 0x02024190 +_08169070: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0816907C + adds r0, r0, r1 + movs r1, #0x38 + b _081691AA + .align 2, 0 +_0816907C: .4byte 0x02024190 +_08169080: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0816908C + adds r0, r0, r1 + movs r1, #0x39 + b _081690EA + .align 2, 0 +_0816908C: .4byte 0x02024190 +_08169090: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0816909C + adds r0, r0, r1 + movs r1, #0x3a + b _081690EA + .align 2, 0 +_0816909C: .4byte 0x02024190 +_081690A0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081690AC + adds r0, r0, r1 + movs r1, #0x3b + b _081690EA + .align 2, 0 +_081690AC: .4byte 0x02024190 +_081690B0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081690BC + adds r0, r0, r1 + movs r1, #0x3c + b _081690EA + .align 2, 0 +_081690BC: .4byte 0x02024190 +_081690C0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081690CC + adds r0, r0, r1 + movs r1, #0x3d + b _081690EA + .align 2, 0 +_081690CC: .4byte 0x02024190 +_081690D0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081690DC + adds r0, r0, r1 + movs r1, #0x3e + b _081690EA + .align 2, 0 +_081690DC: .4byte 0x02024190 +_081690E0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081690FC + adds r0, r0, r1 + movs r1, #0x3f +_081690EA: + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + strb r0, [r7] + lsrs r0, r0, #8 + strb r0, [r7, #1] + movs r6, #2 + b _081691B2 + .align 2, 0 +_081690FC: .4byte 0x02024190 +_08169100: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0816910C + adds r0, r0, r1 + movs r1, #0x16 + b _081691AA + .align 2, 0 +_0816910C: .4byte 0x02024190 +_08169110: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0816911C + adds r0, r0, r1 + movs r1, #0x17 + b _081691AA + .align 2, 0 +_0816911C: .4byte 0x02024190 +_08169120: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0816912C + adds r0, r0, r1 + movs r1, #0x18 + b _081691AA + .align 2, 0 +_0816912C: .4byte 0x02024190 +_08169130: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0816913C + adds r0, r0, r1 + movs r1, #0x21 + b _081691AA + .align 2, 0 +_0816913C: .4byte 0x02024190 +_08169140: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0816914C + adds r0, r0, r1 + movs r1, #0x2f + b _081691AA + .align 2, 0 +_0816914C: .4byte 0x02024190 +_08169150: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0816915C + adds r0, r0, r1 + movs r1, #0x30 + b _081691AA + .align 2, 0 +_0816915C: .4byte 0x02024190 +_08169160: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0816916C + adds r0, r0, r1 + movs r1, #0x32 + b _081691AA + .align 2, 0 +_0816916C: .4byte 0x02024190 +_08169170: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0816917C + adds r0, r0, r1 + movs r1, #0x33 + b _081691AA + .align 2, 0 +_0816917C: .4byte 0x02024190 +_08169180: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0816918C + adds r0, r0, r1 + movs r1, #0x34 + b _081691AA + .align 2, 0 +_0816918C: .4byte 0x02024190 +_08169190: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0816919C + adds r0, r0, r1 + movs r1, #0x35 + b _081691AA + .align 2, 0 +_0816919C: .4byte 0x02024190 +_081691A0: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081691C4 + adds r0, r0, r1 + movs r1, #0x36 +_081691AA: + bl GetMonData + strb r0, [r7] + movs r6, #1 +_081691B2: + adds r0, r6, #0 + add sp, #0x90 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081691C4: .4byte 0x02024190 + thumb_func_end CopyWallyMonData + + thumb_func_start sub_081691C8 +sub_081691C8: @ 0x081691C8 + push {lr} + bl PlayerHandleGetRawMonData + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081691C8 + + thumb_func_start WallyHandleSetMonData +WallyHandleSetMonData: @ 0x081691D4 + push {r4, r5, lr} + ldr r1, _081691F8 + ldr r0, _081691FC + ldrb r2, [r0] + lsls r0, r2, #9 + adds r1, #2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, #0 + bne _08169204 + ldr r0, _08169200 + lsls r1, r2, #1 + adds r1, r1, r0 + ldrb r0, [r1] + bl SetWallyMonData + b _08169222 + .align 2, 0 +_081691F8: .4byte 0x02022D08 +_081691FC: .4byte 0x02023D08 +_08169200: .4byte 0x02023D12 +_08169204: + ldrb r4, [r1] + movs r5, #0 +_08169208: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _08169216 + adds r0, r5, #0 + bl SetWallyMonData +_08169216: + lsrs r4, r4, #1 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #5 + bls _08169208 +_08169222: + bl WallyBufferExecCompleted + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end WallyHandleSetMonData + + thumb_func_start SetWallyMonData +SetWallyMonData: @ 0x0816922C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x34 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _08169264 + ldrb r0, [r0] + lsls r0, r0, #9 + ldr r2, _08169268 + adds r3, r0, r2 + adds r6, r3, #0 + subs r1, r2, #2 + adds r0, r0, r1 + ldrb r0, [r0] + adds r7, r2, #0 + cmp r0, #0x3b + bls _08169258 + bl _08169BF2 +_08169258: + lsls r0, r0, #2 + ldr r1, _0816926C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08169264: .4byte 0x02023D08 +_08169268: .4byte 0x02022D0B +_0816926C: .4byte 0x08169270 +_08169270: @ jump table + .4byte _08169360 @ case 0 + .4byte _081694F8 @ case 1 + .4byte _08169518 @ case 2 + .4byte _08169538 @ case 3 + .4byte _08169590 @ case 4 + .4byte _08169590 @ case 5 + .4byte _08169590 @ case 6 + .4byte _08169590 @ case 7 + .4byte _081695B8 @ case 8 + .4byte _0816961C @ case 9 + .4byte _0816961C @ case 10 + .4byte _0816961C @ case 11 + .4byte _0816961C @ case 12 + .4byte _08169BF2 @ case 13 + .4byte _08169BF2 @ case 14 + .4byte _08169BF2 @ case 15 + .4byte _08169BF2 @ case 16 + .4byte _0816964C @ case 17 + .4byte _0816966C @ case 18 + .4byte _0816968C @ case 19 + .4byte _081696AC @ case 20 + .4byte _081696CC @ case 21 + .4byte _081696EC @ case 22 + .4byte _0816970C @ case 23 + .4byte _0816972C @ case 24 + .4byte _0816974C @ case 25 + .4byte _0816976C @ case 26 + .4byte _0816978C @ case 27 + .4byte _081697AC @ case 28 + .4byte _081697CC @ case 29 + .4byte _081697EC @ case 30 + .4byte _0816980C @ case 31 + .4byte _0816987C @ case 32 + .4byte _0816989C @ case 33 + .4byte _081698BC @ case 34 + .4byte _081698DC @ case 35 + .4byte _081698FC @ case 36 + .4byte _0816991C @ case 37 + .4byte _0816993C @ case 38 + .4byte _0816995C @ case 39 + .4byte _0816997C @ case 40 + .4byte _0816999C @ case 41 + .4byte _081699BC @ case 42 + .4byte _081699DC @ case 43 + .4byte _081699FC @ case 44 + .4byte _08169A1C @ case 45 + .4byte _08169A3C @ case 46 + .4byte _08169A5C @ case 47 + .4byte _08169A7C @ case 48 + .4byte _08169A9C @ case 49 + .4byte _08169ABC @ case 50 + .4byte _08169ADC @ case 51 + .4byte _08169AFC @ case 52 + .4byte _08169B1C @ case 53 + .4byte _08169B3C @ case 54 + .4byte _08169B5C @ case 55 + .4byte _08169B7C @ case 56 + .4byte _08169B9C @ case 57 + .4byte _08169BBC @ case 58 + .4byte _08169BDC @ case 59 +_08169360: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _081694F4 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0xb + adds r2, r6, #0 + bl SetMonData + adds r2, r6, #0 + adds r2, #0x2e + adds r0, r4, #0 + movs r1, #0xc + bl SetMonData + movs r0, #0 + mov r8, r0 + movs r0, #0x3b + adds r0, r0, r6 + mov sl, r0 + adds r0, r6, #0 + adds r0, #0x2b + str r0, [sp, #0x20] + adds r0, #0x19 + str r0, [sp, #0x28] + adds r0, #4 + str r0, [sp, #0x2c] + adds r0, #4 + str r0, [sp, #0x30] + subs r0, #0x22 + str r0, [sp, #0x1c] + subs r0, #2 + str r0, [sp, #0x18] + adds r0, #4 + str r0, [sp, #0x24] + adds r0, r6, #2 + str r0, [sp, #4] + adds r0, r6, #4 + str r0, [sp, #8] + adds r0, r6, #6 + str r0, [sp, #0xc] + adds r0, #2 + str r0, [sp, #0x10] + adds r0, #2 + str r0, [sp, #0x14] + mov sb, r4 + adds r7, r6, #0 + adds r7, #0x24 + adds r4, r6, #0 + adds r4, #0xc +_081693C6: + mov r1, r8 + adds r1, #0xd + mov r0, sb + adds r2, r4, #0 + bl SetMonData + mov r1, r8 + adds r1, #0x11 + mov r0, sb + adds r2, r7, #0 + bl SetMonData + adds r7, #1 + adds r4, #2 + movs r0, #1 + add r8, r0 + mov r0, r8 + cmp r0, #3 + ble _081693C6 + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _081694F4 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x15 + mov r2, sl + bl SetMonData + adds r0, r4, #0 + movs r1, #0x20 + ldr r2, [sp, #0x20] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x19 + ldr r2, [sp, #0x28] + bl SetMonData + ldrb r0, [r6, #0x14] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1b + mov r1, sp + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x27 + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r6, #0x14] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x28 + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r6, #0x15] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x29 + mov r2, sp + bl SetMonData + mov r1, sp + ldr r0, [r6, #0x14] + lsls r0, r0, #0xc + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x2a + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r6, #0x16] + lsls r0, r0, #0x17 + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x2b + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r6, #0x17] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x2c + mov r2, sp + bl SetMonData + adds r0, r4, #0 + movs r1, #0 + ldr r2, [sp, #0x2c] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x37 + ldr r2, [sp, #0x30] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x38 + ldr r2, [sp, #0x1c] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x39 + ldr r2, [sp, #0x18] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3a + ldr r2, [sp, #0x24] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3b + ldr r2, [sp, #4] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3c + ldr r2, [sp, #8] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3d + ldr r2, [sp, #0xc] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3e + ldr r2, [sp, #0x10] + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3f + ldr r2, [sp, #0x14] + bl SetMonData + b _08169BF2 + .align 2, 0 +_081694F4: .4byte 0x02024190 +_081694F8: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169510 + adds r0, r0, r1 + ldr r1, _08169514 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0xb + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169510: .4byte 0x02024190 +_08169514: .4byte 0x02023D08 +_08169518: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169530 + adds r0, r0, r1 + ldr r1, _08169534 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0xc + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169530: .4byte 0x02024190 +_08169534: .4byte 0x02023D08 +_08169538: + movs r0, #0 + mov r8, r0 + movs r0, #0xc + adds r0, r0, r3 + mov sb, r0 + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _0816958C + adds r7, r1, r0 + adds r6, r3, #0 + adds r6, #8 + adds r4, r3, #0 +_08169552: + mov r1, r8 + adds r1, #0xd + adds r0, r7, #0 + adds r2, r4, #0 + bl SetMonData + mov r1, r8 + adds r1, #0x11 + adds r0, r7, #0 + adds r2, r6, #0 + bl SetMonData + adds r6, #1 + adds r4, #2 + movs r0, #1 + add r8, r0 + mov r0, r8 + cmp r0, #3 + ble _08169552 + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0816958C + adds r0, r0, r1 + movs r1, #0x15 + mov r2, sb + bl SetMonData + b _08169BF2 + .align 2, 0 +_0816958C: .4byte 0x02024190 +_08169590: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081695AC + adds r0, r0, r1 + ldr r3, _081695B0 + ldr r1, _081695B4 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r1, r3, #1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, #9 + b _08169634 + .align 2, 0 +_081695AC: .4byte 0x02024190 +_081695B0: .4byte 0x02022D08 +_081695B4: .4byte 0x02023D08 +_081695B8: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _08169614 + adds r4, r4, r0 + ldr r5, _08169618 + ldrb r2, [r5] + lsls r2, r2, #9 + adds r2, r2, r7 + adds r0, r4, #0 + movs r1, #0x11 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #1 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x12 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #2 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x13 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #3 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x14 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #4 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x15 + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169614: .4byte 0x02024190 +_08169618: .4byte 0x02023D08 +_0816961C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169640 + adds r0, r0, r1 + ldr r3, _08169644 + ldr r1, _08169648 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r1, r3, #1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, #8 +_08169634: + adds r3, #3 + adds r2, r2, r3 + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169640: .4byte 0x02024190 +_08169644: .4byte 0x02022D08 +_08169648: .4byte 0x02023D08 +_0816964C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169664 + adds r0, r0, r1 + ldr r1, _08169668 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #1 + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169664: .4byte 0x02024190 +_08169668: .4byte 0x02023D08 +_0816966C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169684 + adds r0, r0, r1 + ldr r1, _08169688 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x19 + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169684: .4byte 0x02024190 +_08169688: .4byte 0x02023D08 +_0816968C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081696A4 + adds r0, r0, r1 + ldr r1, _081696A8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x1a + bl SetMonData + b _08169BF2 + .align 2, 0 +_081696A4: .4byte 0x02024190 +_081696A8: .4byte 0x02023D08 +_081696AC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081696C4 + adds r0, r0, r1 + ldr r1, _081696C8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x1b + bl SetMonData + b _08169BF2 + .align 2, 0 +_081696C4: .4byte 0x02024190 +_081696C8: .4byte 0x02023D08 +_081696CC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081696E4 + adds r0, r0, r1 + ldr r1, _081696E8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x1c + bl SetMonData + b _08169BF2 + .align 2, 0 +_081696E4: .4byte 0x02024190 +_081696E8: .4byte 0x02023D08 +_081696EC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169704 + adds r0, r0, r1 + ldr r1, _08169708 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x1d + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169704: .4byte 0x02024190 +_08169708: .4byte 0x02023D08 +_0816970C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169724 + adds r0, r0, r1 + ldr r1, _08169728 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x1e + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169724: .4byte 0x02024190 +_08169728: .4byte 0x02023D08 +_0816972C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169744 + adds r0, r0, r1 + ldr r1, _08169748 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x1f + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169744: .4byte 0x02024190 +_08169748: .4byte 0x02023D08 +_0816974C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169764 + adds r0, r0, r1 + ldr r1, _08169768 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x20 + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169764: .4byte 0x02024190 +_08169768: .4byte 0x02023D08 +_0816976C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169784 + adds r0, r0, r1 + ldr r1, _08169788 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x22 + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169784: .4byte 0x02024190 +_08169788: .4byte 0x02023D08 +_0816978C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081697A4 + adds r0, r0, r1 + ldr r1, _081697A8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x23 + bl SetMonData + b _08169BF2 + .align 2, 0 +_081697A4: .4byte 0x02024190 +_081697A8: .4byte 0x02023D08 +_081697AC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081697C4 + adds r0, r0, r1 + ldr r1, _081697C8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x24 + bl SetMonData + b _08169BF2 + .align 2, 0 +_081697C4: .4byte 0x02024190 +_081697C8: .4byte 0x02023D08 +_081697CC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081697E4 + adds r0, r0, r1 + ldr r1, _081697E8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x25 + bl SetMonData + b _08169BF2 + .align 2, 0 +_081697E4: .4byte 0x02024190 +_081697E8: .4byte 0x02023D08 +_081697EC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169804 + adds r0, r0, r1 + ldr r1, _08169808 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x26 + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169804: .4byte 0x02024190 +_08169808: .4byte 0x02023D08 +_0816980C: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _08169874 + adds r4, r4, r0 + ldr r5, _08169878 + ldrb r2, [r5] + lsls r2, r2, #9 + adds r2, r2, r7 + adds r0, r4, #0 + movs r1, #0x27 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #1 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x28 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #2 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x29 + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #3 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x2a + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #4 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x2b + bl SetMonData + ldrb r2, [r5] + lsls r2, r2, #9 + adds r0, r7, #5 + adds r2, r2, r0 + adds r0, r4, #0 + b _0816992C + .align 2, 0 +_08169874: .4byte 0x02024190 +_08169878: .4byte 0x02023D08 +_0816987C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169894 + adds r0, r0, r1 + ldr r1, _08169898 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x27 + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169894: .4byte 0x02024190 +_08169898: .4byte 0x02023D08 +_0816989C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081698B4 + adds r0, r0, r1 + ldr r1, _081698B8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x28 + bl SetMonData + b _08169BF2 + .align 2, 0 +_081698B4: .4byte 0x02024190 +_081698B8: .4byte 0x02023D08 +_081698BC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081698D4 + adds r0, r0, r1 + ldr r1, _081698D8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x29 + bl SetMonData + b _08169BF2 + .align 2, 0 +_081698D4: .4byte 0x02024190 +_081698D8: .4byte 0x02023D08 +_081698DC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081698F4 + adds r0, r0, r1 + ldr r1, _081698F8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x2a + bl SetMonData + b _08169BF2 + .align 2, 0 +_081698F4: .4byte 0x02024190 +_081698F8: .4byte 0x02023D08 +_081698FC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169914 + adds r0, r0, r1 + ldr r1, _08169918 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x2b + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169914: .4byte 0x02024190 +_08169918: .4byte 0x02023D08 +_0816991C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169934 + adds r0, r0, r1 + ldr r1, _08169938 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 +_0816992C: + movs r1, #0x2c + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169934: .4byte 0x02024190 +_08169938: .4byte 0x02023D08 +_0816993C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169954 + adds r0, r0, r1 + ldr r1, _08169958 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0 + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169954: .4byte 0x02024190 +_08169958: .4byte 0x02023D08 +_0816995C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169974 + adds r0, r0, r1 + ldr r1, _08169978 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #9 + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169974: .4byte 0x02024190 +_08169978: .4byte 0x02023D08 +_0816997C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169994 + adds r0, r0, r1 + ldr r1, _08169998 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x37 + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169994: .4byte 0x02024190 +_08169998: .4byte 0x02023D08 +_0816999C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081699B4 + adds r0, r0, r1 + ldr r1, _081699B8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x38 + bl SetMonData + b _08169BF2 + .align 2, 0 +_081699B4: .4byte 0x02024190 +_081699B8: .4byte 0x02023D08 +_081699BC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081699D4 + adds r0, r0, r1 + ldr r1, _081699D8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x39 + bl SetMonData + b _08169BF2 + .align 2, 0 +_081699D4: .4byte 0x02024190 +_081699D8: .4byte 0x02023D08 +_081699DC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081699F4 + adds r0, r0, r1 + ldr r1, _081699F8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x3a + bl SetMonData + b _08169BF2 + .align 2, 0 +_081699F4: .4byte 0x02024190 +_081699F8: .4byte 0x02023D08 +_081699FC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169A14 + adds r0, r0, r1 + ldr r1, _08169A18 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x3b + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169A14: .4byte 0x02024190 +_08169A18: .4byte 0x02023D08 +_08169A1C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169A34 + adds r0, r0, r1 + ldr r1, _08169A38 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x3c + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169A34: .4byte 0x02024190 +_08169A38: .4byte 0x02023D08 +_08169A3C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169A54 + adds r0, r0, r1 + ldr r1, _08169A58 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x3d + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169A54: .4byte 0x02024190 +_08169A58: .4byte 0x02023D08 +_08169A5C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169A74 + adds r0, r0, r1 + ldr r1, _08169A78 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x3e + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169A74: .4byte 0x02024190 +_08169A78: .4byte 0x02023D08 +_08169A7C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169A94 + adds r0, r0, r1 + ldr r1, _08169A98 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x3f + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169A94: .4byte 0x02024190 +_08169A98: .4byte 0x02023D08 +_08169A9C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169AB4 + adds r0, r0, r1 + ldr r1, _08169AB8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x16 + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169AB4: .4byte 0x02024190 +_08169AB8: .4byte 0x02023D08 +_08169ABC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169AD4 + adds r0, r0, r1 + ldr r1, _08169AD8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x17 + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169AD4: .4byte 0x02024190 +_08169AD8: .4byte 0x02023D08 +_08169ADC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169AF4 + adds r0, r0, r1 + ldr r1, _08169AF8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x18 + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169AF4: .4byte 0x02024190 +_08169AF8: .4byte 0x02023D08 +_08169AFC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169B14 + adds r0, r0, r1 + ldr r1, _08169B18 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x21 + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169B14: .4byte 0x02024190 +_08169B18: .4byte 0x02023D08 +_08169B1C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169B34 + adds r0, r0, r1 + ldr r1, _08169B38 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x2f + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169B34: .4byte 0x02024190 +_08169B38: .4byte 0x02023D08 +_08169B3C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169B54 + adds r0, r0, r1 + ldr r1, _08169B58 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x30 + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169B54: .4byte 0x02024190 +_08169B58: .4byte 0x02023D08 +_08169B5C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169B74 + adds r0, r0, r1 + ldr r1, _08169B78 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x32 + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169B74: .4byte 0x02024190 +_08169B78: .4byte 0x02023D08 +_08169B7C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169B94 + adds r0, r0, r1 + ldr r1, _08169B98 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x33 + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169B94: .4byte 0x02024190 +_08169B98: .4byte 0x02023D08 +_08169B9C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169BB4 + adds r0, r0, r1 + ldr r1, _08169BB8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x34 + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169BB4: .4byte 0x02024190 +_08169BB8: .4byte 0x02023D08 +_08169BBC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169BD4 + adds r0, r0, r1 + ldr r1, _08169BD8 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x35 + bl SetMonData + b _08169BF2 + .align 2, 0 +_08169BD4: .4byte 0x02024190 +_08169BD8: .4byte 0x02023D08 +_08169BDC: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08169C1C + adds r0, r0, r1 + ldr r1, _08169C20 + ldrb r2, [r1] + lsls r2, r2, #9 + adds r2, r2, r7 + movs r1, #0x36 + bl SetMonData +_08169BF2: + ldr r2, _08169C24 + ldr r0, _08169C20 + ldrb r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r2, [r0] + movs r0, #0x64 + muls r0, r2, r0 + ldr r2, _08169C1C + adds r0, r0, r2 + bl HandleLowHpMusicChange + add sp, #0x34 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08169C1C: .4byte 0x02024190 +_08169C20: .4byte 0x02023D08 +_08169C24: .4byte 0x02023D12 + thumb_func_end SetWallyMonData + + thumb_func_start WallyHandleSetRawMonData +WallyHandleSetRawMonData: @ 0x08169C28 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandleSetRawMonData + + thumb_func_start WallyHandleLoadMonSprite +WallyHandleLoadMonSprite: @ 0x08169C34 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandleLoadMonSprite + + thumb_func_start WallyHandleSwitchInAnim +WallyHandleSwitchInAnim: @ 0x08169C40 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandleSwitchInAnim + + thumb_func_start WallyHandleReturnMonToBall +WallyHandleReturnMonToBall: @ 0x08169C4C + push {r4, r5, r6, lr} + ldr r0, _08169C78 + ldr r6, _08169C7C + ldrb r2, [r6] + lsls r1, r2, #9 + adds r0, #1 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0 + bne _08169C88 + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #1 + bl InitAndLaunchSpecialAnimation + ldr r0, _08169C80 + ldrb r1, [r6] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, _08169C84 + str r0, [r1] + b _08169CBE + .align 2, 0 +_08169C78: .4byte 0x02022D08 +_08169C7C: .4byte 0x02023D08 +_08169C80: .4byte 0x03005AC0 +_08169C84: .4byte 0x08168829 +_08169C88: + ldr r5, _08169CC4 + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _08169CC8 + adds r0, r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + ldr r1, _08169CCC + ldrb r0, [r6] + adds r0, r0, r1 + ldrb r0, [r0] + bl SetHealthboxSpriteInvisible + bl WallyBufferExecCompleted +_08169CBE: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08169CC4: .4byte 0x02023E88 +_08169CC8: .4byte 0x020205AC +_08169CCC: .4byte 0x03005AD0 + thumb_func_end WallyHandleReturnMonToBall + + thumb_func_start WallyHandleDrawTrainerPic +WallyHandleDrawTrainerPic: @ 0x08169CD0 + push {r4, r5, r6, lr} + ldr r4, _08169D78 + ldrb r1, [r4] + movs r0, #6 + bl DecompressTrainerBackPic + ldrb r0, [r4] + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #6 + bl SetMultiuseSpriteTemplateToTrainerBack + ldr r0, _08169D7C + ldr r1, _08169D80 + ldrb r1, [r1, #0x18] + movs r2, #8 + subs r2, r2, r1 + lsls r2, r2, #0x12 + movs r1, #0xa0 + lsls r1, r1, #0xf + adds r2, r2, r1 + asrs r2, r2, #0x10 + movs r1, #0x50 + movs r3, #0x1e + bl CreateSprite + ldr r6, _08169D84 + ldrb r1, [r4] + adds r1, r1, r6 + strb r0, [r1] + ldr r5, _08169D88 + ldrb r3, [r4] + adds r0, r3, r6 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + lsls r3, r3, #4 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #5] + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0xf0 + strh r1, [r0, #0x24] + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _08169D8C + strh r1, [r0, #0x2e] + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r5, #0x1c + adds r0, r0, r5 + ldr r1, _08169D90 + str r1, [r0] + ldr r1, _08169D94 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08169D98 + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08169D78: .4byte 0x02023D08 +_08169D7C: .4byte 0x02024640 +_08169D80: .4byte 0x082D95BC +_08169D84: .4byte 0x02023E88 +_08169D88: .4byte 0x020205AC +_08169D8C: .4byte 0x0000FFFE +_08169D90: .4byte 0x0805D3C9 +_08169D94: .4byte 0x03005AC0 +_08169D98: .4byte 0x08168375 + thumb_func_end WallyHandleDrawTrainerPic + + thumb_func_start WallyHandleTrainerSlide +WallyHandleTrainerSlide: @ 0x08169D9C + push {r4, r5, r6, lr} + ldr r4, _08169E44 + ldrb r1, [r4] + movs r0, #6 + bl DecompressTrainerBackPic + ldrb r0, [r4] + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #6 + bl SetMultiuseSpriteTemplateToTrainerBack + ldr r0, _08169E48 + ldr r1, _08169E4C + ldrb r1, [r1, #0x18] + movs r2, #8 + subs r2, r2, r1 + lsls r2, r2, #0x12 + movs r1, #0xa0 + lsls r1, r1, #0xf + adds r2, r2, r1 + asrs r2, r2, #0x10 + movs r1, #0x50 + movs r3, #0x1e + bl CreateSprite + ldr r6, _08169E50 + ldrb r1, [r4] + adds r1, r1, r6 + strb r0, [r1] + ldr r5, _08169E54 + ldrb r3, [r4] + adds r0, r3, r6 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + lsls r3, r3, #4 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #5] + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _08169E58 + strh r1, [r0, #0x24] + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #2 + strh r1, [r0, #0x2e] + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r5, #0x1c + adds r0, r0, r5 + ldr r1, _08169E5C + str r1, [r0] + ldr r1, _08169E60 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08169E64 + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08169E44: .4byte 0x02023D08 +_08169E48: .4byte 0x02024640 +_08169E4C: .4byte 0x082D95BC +_08169E50: .4byte 0x02023E88 +_08169E54: .4byte 0x020205AC +_08169E58: .4byte 0x0000FFA0 +_08169E5C: .4byte 0x0805D3C9 +_08169E60: .4byte 0x03005AC0 +_08169E64: .4byte 0x08168899 + thumb_func_end WallyHandleTrainerSlide + + thumb_func_start WallyHandleTrainerSlideBack +WallyHandleTrainerSlideBack: @ 0x08169E68 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandleTrainerSlideBack + + thumb_func_start WallyHandleFaintAnimation +WallyHandleFaintAnimation: @ 0x08169E74 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandleFaintAnimation + + thumb_func_start WallyHandlePaletteFade +WallyHandlePaletteFade: @ 0x08169E80 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandlePaletteFade + + thumb_func_start WallyHandleSuccessBallThrowAnim +WallyHandleSuccessBallThrowAnim: @ 0x08169E8C + push {r4, r5, lr} + ldr r0, _08169ECC + ldr r0, [r0] + ldr r1, [r0, #8] + movs r0, #4 + strb r0, [r1, #8] + ldr r1, _08169ED0 + movs r0, #1 + strb r0, [r1] + ldr r5, _08169ED4 + ldrb r4, [r5] + movs r0, #1 + bl GetBattlerAtPosition + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r4, #0 + movs r3, #4 + bl InitAndLaunchSpecialAnimation + ldr r1, _08169ED8 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08169EDC + str r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08169ECC: .4byte 0x02024174 +_08169ED0: .4byte 0x0202415D +_08169ED4: .4byte 0x02023D08 +_08169ED8: .4byte 0x03005AC0 +_08169EDC: .4byte 0x081683C5 + thumb_func_end WallyHandleSuccessBallThrowAnim + + thumb_func_start WallyHandleBallThrowAnim +WallyHandleBallThrowAnim: @ 0x08169EE0 + push {r4, r5, lr} + ldr r1, _08169F28 + ldr r5, _08169F2C + ldrb r0, [r5] + lsls r0, r0, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r1, [r0] + ldr r0, _08169F30 + ldr r0, [r0] + ldr r0, [r0, #8] + strb r1, [r0, #8] + ldr r1, _08169F34 + movs r0, #1 + strb r0, [r1] + ldrb r4, [r5] + movs r0, #1 + bl GetBattlerAtPosition + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r4, #0 + movs r3, #4 + bl InitAndLaunchSpecialAnimation + ldr r1, _08169F38 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08169F3C + str r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08169F28: .4byte 0x02022D08 +_08169F2C: .4byte 0x02023D08 +_08169F30: .4byte 0x02024174 +_08169F34: .4byte 0x0202415D +_08169F38: .4byte 0x03005AC0 +_08169F3C: .4byte 0x081683C5 + thumb_func_end WallyHandleBallThrowAnim + + thumb_func_start WallyHandlePause +WallyHandlePause: @ 0x08169F40 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandlePause + + thumb_func_start WallyHandleMoveAnimation +WallyHandleMoveAnimation: @ 0x08169F4C + push {r4, r5, r6, lr} + ldr r0, _0816A020 + mov ip, r0 + ldr r6, _0816A024 + ldrb r2, [r6] + lsls r2, r2, #9 + adds r0, #1 + adds r0, r2, r0 + ldrb r0, [r0] + mov r1, ip + adds r1, #2 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + ldr r5, _0816A028 + mov r1, ip + adds r1, #3 + adds r2, r2, r1 + ldrb r1, [r2] + strb r1, [r5] + ldr r4, _0816A02C + ldrb r2, [r6] + lsls r2, r2, #9 + mov r1, ip + adds r1, #4 + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, ip + adds r1, #5 + adds r2, r2, r1 + ldrb r1, [r2] + lsls r1, r1, #8 + orrs r3, r1 + strh r3, [r4] + ldr r4, _0816A030 + ldrb r2, [r6] + lsls r2, r2, #9 + mov r1, ip + adds r1, #6 + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, ip + adds r1, #7 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r3, r1 + mov r1, ip + adds r1, #8 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, r1, #0x10 + orrs r3, r1 + mov r1, ip + adds r1, #9 + adds r2, r2, r1 + ldrb r1, [r2] + lsls r1, r1, #0x18 + orrs r3, r1 + str r3, [r4] + ldr r3, _0816A034 + ldrb r1, [r6] + lsls r1, r1, #9 + mov r2, ip + adds r2, #0xa + adds r1, r1, r2 + ldrb r1, [r1] + strb r1, [r3] + ldr r4, _0816A038 + ldrb r2, [r6] + lsls r2, r2, #9 + mov r1, ip + adds r1, #0xc + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, ip + adds r1, #0xd + adds r2, r2, r1 + ldrb r1, [r2] + lsls r1, r1, #8 + orrs r3, r1 + strh r3, [r4] + ldr r3, _0816A03C + ldrb r2, [r6] + lsls r2, r2, #9 + mov r1, ip + adds r1, #0x10 + adds r2, r2, r1 + str r2, [r3] + ldr r3, _0816A040 + ldrb r1, [r6] + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r2, [r2] + str r2, [r1] + ldrb r1, [r5] + bl IsMoveWithoutAnimation + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + beq _0816A044 + bl WallyBufferExecCompleted + b _0816A062 + .align 2, 0 +_0816A020: .4byte 0x02022D08 +_0816A024: .4byte 0x02023D08 +_0816A028: .4byte 0x020380D2 +_0816A02C: .4byte 0x020380A8 +_0816A030: .4byte 0x020380A4 +_0816A034: .4byte 0x020380BA +_0816A038: .4byte 0x020380BC +_0816A03C: .4byte 0x020380A0 +_0816A040: .4byte 0x02024160 +_0816A044: + ldr r0, _0816A068 + ldr r0, [r0] + ldrb r1, [r6] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strb r3, [r0, #4] + ldr r1, _0816A06C + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0816A070 + str r1, [r0] +_0816A062: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0816A068: .4byte 0x02024174 +_0816A06C: .4byte 0x03005AC0 +_0816A070: .4byte 0x0816A075 + thumb_func_end WallyHandleMoveAnimation + + thumb_func_start WallyDoMoveAnimation +WallyDoMoveAnimation: @ 0x0816A074 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r2, _0816A0B8 + ldr r6, _0816A0BC + ldrb r3, [r6] + lsls r1, r3, #9 + adds r0, r2, #1 + mov sb, r0 + adds r0, r1, r0 + ldrb r4, [r0] + adds r2, #2 + mov r8, r2 + add r1, r8 + ldrb r0, [r1] + lsls r0, r0, #8 + orrs r4, r0 + ldr r7, _0816A0C0 + ldr r5, [r7] + ldr r1, [r5, #4] + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r2, [r0, #4] + cmp r2, #1 + beq _0816A0FE + cmp r2, #1 + bgt _0816A0C4 + cmp r2, #0 + beq _0816A0CE + b _0816A1B4 + .align 2, 0 +_0816A0B8: .4byte 0x02022D08 +_0816A0BC: .4byte 0x02023D08 +_0816A0C0: .4byte 0x02024174 +_0816A0C4: + cmp r2, #2 + beq _0816A128 + cmp r2, #3 + beq _0816A178 + b _0816A1B4 +_0816A0CE: + ldr r1, [r5] + lsls r0, r3, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0816A0EA + adds r0, r3, #0 + adds r1, r3, #0 + adds r2, r3, #0 + movs r3, #5 + bl InitAndLaunchSpecialAnimation +_0816A0EA: + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #1 + strb r1, [r0, #4] + b _0816A1B4 +_0816A0FE: + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _0816A1B4 + movs r0, #0 + bl sub_0805E7B8 + adds r0, r4, #0 + bl DoMoveAnim + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #2 + strb r1, [r0, #4] + b _0816A1B4 +_0816A128: + ldr r0, _0816A170 + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _0816A174 + ldrb r0, [r0] + cmp r0, #0 + bne _0816A1B4 + movs r0, #1 + bl sub_0805E7B8 + ldr r0, [r7] + ldrb r2, [r6] + ldr r1, [r0] + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0816A15C + adds r0, r2, #0 + adds r1, r2, #0 + movs r3, #6 + bl InitAndLaunchSpecialAnimation +_0816A15C: + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #3 + strb r1, [r0, #4] + b _0816A1B4 + .align 2, 0 +_0816A170: .4byte 0x02038098 +_0816A174: .4byte 0x0203809D +_0816A178: + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _0816A1B4 + bl CopyAllBattleSpritesInvisibilities + ldrb r0, [r6] + lsls r2, r0, #9 + mov r3, sb + adds r1, r2, r3 + ldrb r1, [r1] + add r2, r8 + ldrb r2, [r2] + lsls r2, r2, #8 + orrs r1, r2 + bl TrySetBehindSubstituteSpriteBit + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strb r4, [r0, #4] + bl WallyBufferExecCompleted +_0816A1B4: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end WallyDoMoveAnimation + + thumb_func_start WallyHandlePrintString +WallyHandlePrintString: @ 0x0816A1C0 + push {r4, lr} + ldr r0, _0816A1F8 + movs r1, #0 + strh r1, [r0] + ldr r0, _0816A1FC + strh r1, [r0] + ldr r4, _0816A200 + ldrb r0, [r4] + lsls r0, r0, #9 + ldr r1, _0816A204 + adds r0, r0, r1 + ldrh r0, [r0] + bl BufferStringBattle + ldr r0, _0816A208 + movs r1, #0 + bl sub_0814FA04 + ldr r1, _0816A20C + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0816A210 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816A1F8: .4byte 0x02022AC8 +_0816A1FC: .4byte 0x02022ACA +_0816A200: .4byte 0x02023D08 +_0816A204: .4byte 0x02022D0A +_0816A208: .4byte 0x02022AE0 +_0816A20C: .4byte 0x03005AC0 +_0816A210: .4byte 0x081683AD + thumb_func_end WallyHandlePrintString + + thumb_func_start WallyHandlePrintSelectionString +WallyHandlePrintSelectionString: @ 0x0816A214 + push {lr} + ldr r0, _0816A22C + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0816A230 + bl WallyHandlePrintString + b _0816A234 + .align 2, 0 +_0816A22C: .4byte 0x02023D08 +_0816A230: + bl WallyBufferExecCompleted +_0816A234: + pop {r0} + bx r0 + thumb_func_end WallyHandlePrintSelectionString + + thumb_func_start HandleChooseActionAfterDma3 +HandleChooseActionAfterDma3: @ 0x0816A238 + push {lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0816A25E + ldr r0, _0816A264 + strh r1, [r0] + ldr r1, _0816A268 + movs r0, #0xa0 + strh r0, [r1] + ldr r1, _0816A26C + ldr r0, _0816A270 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0816A274 + str r1, [r0] +_0816A25E: + pop {r0} + bx r0 + .align 2, 0 +_0816A264: .4byte 0x02022AC8 +_0816A268: .4byte 0x02022ACA +_0816A26C: .4byte 0x03005AC0 +_0816A270: .4byte 0x02023D08 +_0816A274: .4byte 0x0816824D + thumb_func_end HandleChooseActionAfterDma3 + + thumb_func_start WallyHandleChooseAction +WallyHandleChooseAction: @ 0x0816A278 + push {r4, lr} + ldr r1, _0816A2C4 + ldr r0, _0816A2C8 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0816A2CC + str r1, [r0] + ldr r0, _0816A2D0 + movs r1, #2 + bl sub_0814FA04 + movs r4, #0 +_0816A292: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl ActionSelectionDestroyCursorAt + adds r4, #1 + cmp r4, #3 + ble _0816A292 + ldr r1, _0816A2D4 + ldr r0, _0816A2C8 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0 + bl SetCB2ToReshowScreenAfterMenu + ldr r0, _0816A2D8 + bl TryGetStatusString + ldr r0, _0816A2DC + movs r1, #1 + bl sub_0814FA04 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816A2C4: .4byte 0x03005AC0 +_0816A2C8: .4byte 0x02023D08 +_0816A2CC: .4byte 0x0816A239 +_0816A2D0: .4byte 0x085ABB72 +_0816A2D4: .4byte 0x02024150 +_0816A2D8: .4byte 0x085ABB57 +_0816A2DC: .4byte 0x02022AE0 + thumb_func_end WallyHandleChooseAction + + thumb_func_start WallyHandleUnknownYesNoBox +WallyHandleUnknownYesNoBox: @ 0x0816A2E0 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandleUnknownYesNoBox + + thumb_func_start WallyHandleChooseMove +WallyHandleChooseMove: @ 0x0816A2EC + push {r4, lr} + ldr r4, _0816A308 + ldr r1, [r4] + adds r0, r1, #0 + adds r0, #0x95 + ldrb r0, [r0] + cmp r0, #1 + beq _0816A32A + cmp r0, #1 + bgt _0816A30C + cmp r0, #0 + beq _0816A312 + b _0816A37C + .align 2, 0 +_0816A308: .4byte 0x02024140 +_0816A30C: + cmp r0, #2 + beq _0816A358 + b _0816A37C +_0816A312: + bl InitMoveSelectionsVarsAndStrings + ldr r1, [r4] + adds r1, #0x95 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r0, [r4] + adds r0, #0x97 + movs r1, #0x50 + strb r1, [r0] + b _0816A37C +_0816A32A: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0816A37C + ldr r0, _0816A350 + strh r1, [r0] + ldr r1, _0816A354 + movs r2, #0xa0 + lsls r2, r2, #1 + adds r0, r2, #0 + strh r0, [r1] + ldr r1, [r4] + adds r1, #0x95 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0816A37C + .align 2, 0 +_0816A350: .4byte 0x02022AC8 +_0816A354: .4byte 0x02022ACA +_0816A358: + adds r1, #0x97 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0816A37C + movs r0, #5 + bl PlaySE + movs r2, #0x80 + lsls r2, r2, #1 + movs r0, #1 + movs r1, #0xa + bl BtlController_EmitTwoReturnValues + bl WallyBufferExecCompleted +_0816A37C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandleChooseMove + + thumb_func_start WallyHandleChooseItem +WallyHandleChooseItem: @ 0x0816A384 + push {lr} + sub sp, #4 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _0816A3B4 + ldr r2, _0816A3B8 + ldrb r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0816A3BC + str r1, [r0] + ldr r1, _0816A3C0 + ldrb r0, [r2] + strb r0, [r1] + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_0816A3B4: .4byte 0x03005AC0 +_0816A3B8: .4byte 0x02023D08 +_0816A3BC: .4byte 0x081683DD +_0816A3C0: .4byte 0x0202415C + thumb_func_end WallyHandleChooseItem + + thumb_func_start WallyHandleChoosePokemon +WallyHandleChoosePokemon: @ 0x0816A3C4 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandleChoosePokemon + + thumb_func_start WallyHandleCmd23 +WallyHandleCmd23: @ 0x0816A3D0 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandleCmd23 + + thumb_func_start WallyHandleHealthBarUpdate +WallyHandleHealthBarUpdate: @ 0x0816A3DC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + movs r0, #0 + bl LoadBattleBarGfx + ldr r3, _0816A454 + ldr r0, _0816A458 + mov sb, r0 + ldrb r4, [r0] + lsls r2, r4, #9 + adds r0, r3, #2 + adds r0, r2, r0 + ldrb r1, [r0] + adds r3, #3 + adds r2, r2, r3 + ldrb r0, [r2] + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + asrs r7, r1, #0x10 + ldr r0, _0816A45C + cmp r7, r0 + beq _0816A46C + ldr r6, _0816A460 + lsls r0, r4, #1 + adds r0, r0, r6 + ldrh r0, [r0] + movs r5, #0x64 + muls r0, r5, r0 + ldr r4, _0816A464 + adds r0, r0, r4 + movs r1, #0x3a + bl GetMonData + mov r8, r0 + mov r1, sb + ldrb r0, [r1] + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r0, [r0] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #0x39 + bl GetMonData + adds r3, r0, #0 + mov r1, sb + ldrb r0, [r1] + ldr r1, _0816A468 + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + mov r2, r8 + bl SetBattleBarStruct + b _0816A4A6 + .align 2, 0 +_0816A454: .4byte 0x02022D08 +_0816A458: .4byte 0x02023D08 +_0816A45C: .4byte 0x00007FFF +_0816A460: .4byte 0x02023D12 +_0816A464: .4byte 0x02024190 +_0816A468: .4byte 0x03005AD0 +_0816A46C: + ldr r1, _0816A4C4 + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0816A4C8 + adds r0, r0, r1 + movs r1, #0x3a + bl GetMonData + adds r2, r0, #0 + mov r1, sb + ldrb r0, [r1] + ldr r4, _0816A4CC + adds r1, r0, r4 + ldrb r1, [r1] + str r7, [sp] + movs r3, #0 + bl SetBattleBarStruct + mov r1, sb + ldrb r0, [r1] + adds r0, r0, r4 + ldrb r0, [r0] + movs r1, #0 + movs r2, #0 + bl sub_080726F4 +_0816A4A6: + ldr r1, _0816A4D0 + ldr r0, _0816A4D4 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0816A4D8 + str r1, [r0] + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0816A4C4: .4byte 0x02023D12 +_0816A4C8: .4byte 0x02024190 +_0816A4CC: .4byte 0x03005AD0 +_0816A4D0: .4byte 0x03005AC0 +_0816A4D4: .4byte 0x02023D08 +_0816A4D8: .4byte 0x0816873D + thumb_func_end WallyHandleHealthBarUpdate + + thumb_func_start WallyHandleExpUpdate +WallyHandleExpUpdate: @ 0x0816A4DC + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandleExpUpdate + + thumb_func_start WallyHandleStatusIconUpdate +WallyHandleStatusIconUpdate: @ 0x0816A4E8 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandleStatusIconUpdate + + thumb_func_start WallyHandleStatusAnimation +WallyHandleStatusAnimation: @ 0x0816A4F4 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandleStatusAnimation + + thumb_func_start WallyHandleStatusXor +WallyHandleStatusXor: @ 0x0816A500 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandleStatusXor + + thumb_func_start WallyHandleDataTransfer +WallyHandleDataTransfer: @ 0x0816A50C + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandleDataTransfer + + thumb_func_start WallyHandleDMA3Transfer +WallyHandleDMA3Transfer: @ 0x0816A518 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandleDMA3Transfer + + thumb_func_start WallyHandlePlayBGM +WallyHandlePlayBGM: @ 0x0816A524 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandlePlayBGM + + thumb_func_start WallyHandleCmd32 +WallyHandleCmd32: @ 0x0816A530 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandleCmd32 + + thumb_func_start WallyHandleTwoReturnValues +WallyHandleTwoReturnValues: @ 0x0816A53C + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandleTwoReturnValues + + thumb_func_start sub_0816A548 +sub_0816A548: @ 0x0816A548 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0816A548 + + thumb_func_start sub_0816A554 +sub_0816A554: @ 0x0816A554 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0816A554 + + thumb_func_start WallyHandleOneReturnValue_Duplicate +WallyHandleOneReturnValue_Duplicate: @ 0x0816A560 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandleOneReturnValue_Duplicate + + thumb_func_start WallyHandleCmd37 +WallyHandleCmd37: @ 0x0816A56C + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandleCmd37 + + thumb_func_start WallyHandleCmd38 +WallyHandleCmd38: @ 0x0816A578 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandleCmd38 + + thumb_func_start sub_0816A584 +sub_0816A584: @ 0x0816A584 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0816A584 + + thumb_func_start WallyHandleCmd40 +WallyHandleCmd40: @ 0x0816A590 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandleCmd40 + + thumb_func_start WallyHandleHitAnimation +WallyHandleHitAnimation: @ 0x0816A59C + push {r4, lr} + ldr r3, _0816A5C4 + ldr r2, _0816A5C8 + ldr r4, _0816A5CC + ldrb r0, [r4] + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + bge _0816A5D0 + bl WallyBufferExecCompleted + b _0816A5FA + .align 2, 0 +_0816A5C4: .4byte 0x020205AC +_0816A5C8: .4byte 0x02023E88 +_0816A5CC: .4byte 0x02023D08 +_0816A5D0: + ldr r1, _0816A600 + movs r0, #1 + strb r0, [r1] + ldrb r0, [r4] + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r1, #0 + strh r1, [r0, #0x30] + ldrb r0, [r4] + bl DoHitAnimHealthboxEffect + ldr r1, _0816A604 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0816A608 + str r1, [r0] +_0816A5FA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816A600: .4byte 0x0202415D +_0816A604: .4byte 0x03005AC0 +_0816A608: .4byte 0x081687AD + thumb_func_end WallyHandleHitAnimation + + thumb_func_start WallyHandleCmd42 +WallyHandleCmd42: @ 0x0816A60C + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandleCmd42 + + thumb_func_start WallyHandlePlaySE +WallyHandlePlaySE: @ 0x0816A618 + push {lr} + ldr r2, _0816A640 + ldr r0, _0816A644 + ldrb r1, [r0] + lsls r1, r1, #9 + adds r0, r2, #1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, #2 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + bl PlaySE + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_0816A640: .4byte 0x02022D08 +_0816A644: .4byte 0x02023D08 + thumb_func_end WallyHandlePlaySE + + thumb_func_start WallyHandlePlayFanfareOrBGM +WallyHandlePlayFanfareOrBGM: @ 0x0816A648 + push {r4, r5, lr} + ldr r4, _0816A67C + ldr r5, _0816A680 + ldrb r0, [r5] + lsls r3, r0, #9 + adds r0, r4, #3 + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, #0 + beq _0816A684 + bl BattleStopLowHpSound + ldrb r1, [r5] + lsls r1, r1, #9 + adds r0, r4, #1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, r4, #2 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + bl PlayBGM + b _0816A698 + .align 2, 0 +_0816A67C: .4byte 0x02022D08 +_0816A680: .4byte 0x02023D08 +_0816A684: + adds r0, r4, #1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, #2 + adds r1, r3, r1 + ldrb r1, [r1] + lsls r1, r1, #8 + orrs r0, r1 + bl PlayFanfare +_0816A698: + bl WallyBufferExecCompleted + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandlePlayFanfareOrBGM + + thumb_func_start WallyHandleFaintingCry +WallyHandleFaintingCry: @ 0x0816A6A4 + push {lr} + ldr r1, _0816A6D4 + ldr r0, _0816A6D8 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0816A6DC + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x19 + bl PlayCry1 + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_0816A6D4: .4byte 0x02023D12 +_0816A6D8: .4byte 0x02023D08 +_0816A6DC: .4byte 0x02024190 + thumb_func_end WallyHandleFaintingCry + + thumb_func_start WallyHandleIntroSlide +WallyHandleIntroSlide: @ 0x0816A6E0 + push {lr} + ldr r1, _0816A708 + ldr r0, _0816A70C + ldrb r0, [r0] + lsls r0, r0, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + bl HandleIntroSlide + ldr r2, _0816A710 + ldrh r0, [r2] + movs r1, #1 + orrs r0, r1 + strh r0, [r2] + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 +_0816A708: .4byte 0x02022D08 +_0816A70C: .4byte 0x02023D08 +_0816A710: .4byte 0x020240A0 + thumb_func_end WallyHandleIntroSlide + + thumb_func_start WallyHandleIntroTrainerBallThrow +WallyHandleIntroTrainerBallThrow: @ 0x0816A714 + push {r4, r5, r6, r7, lr} + ldr r6, _0816A84C + ldr r7, _0816A850 + ldrb r0, [r7] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r5, _0816A854 + adds r0, r0, r5 + bl SetSpritePrimaryCoordsFromSecondaryCoords + ldrb r0, [r7] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0x32 + strh r1, [r0, #0x2e] + ldrb r0, [r7] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _0816A858 + strh r1, [r0, #0x32] + ldrb r0, [r7] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrh r1, [r0, #0x22] + strh r1, [r0, #0x36] + ldrb r0, [r7] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r5, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _0816A85C + str r1, [r0] + ldrb r2, [r7] + adds r0, r2, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r2, [r0, #0x38] + ldrb r0, [r7] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _0816A860 + bl StoreSpriteCallbackInData6 + ldrb r0, [r7] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #1 + bl StartSpriteAnim + ldr r0, _0816A864 + bl AllocSpritePalette + adds r4, r0, #0 + lsls r4, r4, #0x18 + ldr r0, _0816A868 + ldr r0, [r0, #0x30] + lsrs r4, r4, #0x14 + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r4, r2 + movs r2, #0x20 + bl LoadCompressedPalette + ldrb r0, [r7] + adds r0, r0, r6 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r4 + strb r0, [r1, #5] + ldr r0, _0816A86C + movs r1, #5 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _0816A870 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r4 + ldrb r0, [r7] + strh r0, [r1, #8] + ldr r3, _0816A874 + ldr r0, [r3] + ldrb r2, [r7] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0816A82C + ldr r0, _0816A878 + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r4 + ldr r1, _0816A87C + str r1, [r0] +_0816A82C: + ldr r0, [r3] + ldr r2, [r0, #8] + ldrb r0, [r2, #9] + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #9] + ldr r1, _0816A880 + ldrb r0, [r7] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0816A884 + str r1, [r0] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0816A84C: .4byte 0x02023E88 +_0816A850: .4byte 0x02023D08 +_0816A854: .4byte 0x020205AC +_0816A858: .4byte 0x0000FFD8 +_0816A85C: .4byte 0x080A67B5 +_0816A860: .4byte 0x0805C81D +_0816A864: .4byte 0x0000D6F8 +_0816A868: .4byte 0x082D961C +_0816A86C: .4byte 0x0816AA0D +_0816A870: .4byte 0x03005B60 +_0816A874: .4byte 0x02024174 +_0816A878: .4byte 0x02024158 +_0816A87C: .4byte 0x0807352D +_0816A880: .4byte 0x03005AC0 +_0816A884: .4byte 0x08057069 + thumb_func_end WallyHandleIntroTrainerBallThrow + + thumb_func_start sub_0816A888 +sub_0816A888: @ 0x0816A888 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + ldr r0, _0816A9E0 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r6, #2 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #2] + ldr r0, _0816A9E4 + lsls r2, r6, #1 + adds r2, r2, r0 + ldr r0, _0816A9E8 + lsls r1, r6, #9 + adds r0, #1 + adds r1, r1, r0 + ldrb r0, [r1] + strh r0, [r2] + ldrh r1, [r2] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0816A9EC + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + mov r8, r0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + ldr r0, _0816A9F0 + bl CreateInvisibleSpriteWithCallback + ldr r1, _0816A9F4 + mov sb, r1 + add sb, r6 + mov r1, sb + strb r0, [r1] + adds r0, r6, #0 + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r0, r8 + bl SetMultiuseSpriteTemplateToPokemon + ldr r0, _0816A9F8 + mov sl, r0 + adds r0, r6, #0 + movs r1, #2 + bl GetBattlerSpriteCoord + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + adds r0, r6, #0 + bl GetBattlerSpriteDefault_Y + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r6, #0 + bl GetBattlerSpriteSubpriority + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r0, sl + adds r1, r5, #0 + adds r2, r4, #0 + bl CreateSprite + ldr r4, _0816A9FC + adds r4, r6, r4 + strb r0, [r4] + ldr r5, _0816AA00 + mov r0, sb + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r1, [r4] + strh r1, [r0, #0x30] + mov r0, sb + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r6, [r0, #0x32] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r6, [r0, #0x2e] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + mov r1, r8 + strh r1, [r0, #0x32] + ldrb r0, [r4] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + lsls r3, r6, #4 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #5] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _0816AA04 + adds r6, r6, r1 + ldrb r1, [r6] + bl StartSpriteAnim + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r5, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _0816AA08 + str r1, [r0] + movs r0, #0 + movs r1, #0xff + bl DoPokeballSendOutAnimation + mov r1, sb + ldrb r2, [r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r1, #0x2e] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0816A9E0: .4byte 0x02024174 +_0816A9E4: .4byte 0x02023D12 +_0816A9E8: .4byte 0x02022D08 +_0816A9EC: .4byte 0x02024190 +_0816A9F0: .4byte 0x0805D331 +_0816A9F4: .4byte 0x03005ADC +_0816A9F8: .4byte 0x02024640 +_0816A9FC: .4byte 0x02023E88 +_0816AA00: .4byte 0x020205AC +_0816AA04: .4byte 0x02024188 +_0816AA08: .4byte 0x08007141 + thumb_func_end sub_0816A888 + + thumb_func_start sub_0816AA0C +sub_0816AA0C: @ 0x0816AA0C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _0816AA2C + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r1, r0, r1 + ldrh r2, [r1, #0xa] + movs r3, #0xa + ldrsh r0, [r1, r3] + cmp r0, #0x1e + bgt _0816AA30 + adds r0, r2, #1 + strh r0, [r1, #0xa] + b _0816AA66 + .align 2, 0 +_0816AA2C: .4byte 0x03005B60 +_0816AA30: + ldr r4, _0816AA6C + ldrb r5, [r4] + ldrh r0, [r1, #8] + strb r0, [r4] + ldr r0, _0816AA70 + ldrb r1, [r4] + lsls r2, r1, #9 + adds r0, #1 + adds r2, r2, r0 + ldr r0, _0816AA74 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + strb r0, [r2] + ldrb r0, [r4] + bl sub_0816A888 + ldr r1, _0816AA78 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0816AA7C + str r1, [r0] + strb r5, [r4] + adds r0, r6, #0 + bl DestroyTask +_0816AA66: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0816AA6C: .4byte 0x02023D08 +_0816AA70: .4byte 0x02022D08 +_0816AA74: .4byte 0x02023D12 +_0816AA78: .4byte 0x03005AC0 +_0816AA7C: .4byte 0x08168455 + thumb_func_end sub_0816AA0C + + thumb_func_start WallyHandleDrawPartyStatusSummary +WallyHandleDrawPartyStatusSummary: @ 0x0816AA80 + push {r4, r5, lr} + ldr r1, _0816AAA8 + ldr r0, _0816AAAC + ldrb r2, [r0] + lsls r0, r2, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _0816AAB0 + adds r0, r2, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0816AAB0 + bl WallyBufferExecCompleted + b _0816AAEE + .align 2, 0 +_0816AAA8: .4byte 0x02022D08 +_0816AAAC: .4byte 0x02023D08 +_0816AAB0: + ldr r0, _0816AAF4 + ldr r0, [r0] + ldr r5, _0816AAF8 + ldrb r1, [r5] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r2, #1 + orrs r1, r2 + strb r1, [r0] + ldrb r0, [r5] + lsls r4, r0, #9 + ldr r3, _0816AAFC + adds r1, r4, r3 + subs r2, r3, #3 + adds r2, r4, r2 + ldrb r2, [r2] + subs r3, #2 + adds r4, r4, r3 + ldrb r3, [r4] + bl CreatePartyStatusSummarySprites + ldr r2, _0816AB00 + ldrb r1, [r5] + adds r1, r1, r2 + strb r0, [r1] + bl WallyBufferExecCompleted +_0816AAEE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0816AAF4: .4byte 0x02024174 +_0816AAF8: .4byte 0x02023D08 +_0816AAFC: .4byte 0x02022D0C +_0816AB00: .4byte 0x02024158 + thumb_func_end WallyHandleDrawPartyStatusSummary + + thumb_func_start WallyHandleHidePartyStatusSummary +WallyHandleHidePartyStatusSummary: @ 0x0816AB04 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandleHidePartyStatusSummary + + thumb_func_start WallyHandleEndBounceEffect +WallyHandleEndBounceEffect: @ 0x0816AB10 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandleEndBounceEffect + + thumb_func_start WallyHandleSpriteInvisibility +WallyHandleSpriteInvisibility: @ 0x0816AB1C + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandleSpriteInvisibility + + thumb_func_start WallyHandleBattleAnimation +WallyHandleBattleAnimation: @ 0x0816AB28 + push {r4, r5, r6, lr} + sub sp, #4 + ldr r5, _0816AB60 + ldr r6, _0816AB64 + ldrb r2, [r6] + lsls r1, r2, #9 + adds r0, r5, #1 + adds r0, r1, r0 + ldrb r3, [r0] + adds r0, r5, #2 + adds r0, r1, r0 + ldrb r4, [r0] + adds r5, #3 + adds r1, r1, r5 + ldrb r0, [r1] + lsls r0, r0, #8 + orrs r4, r0 + str r4, [sp] + adds r0, r2, #0 + adds r1, r2, #0 + bl TryHandleLaunchBattleTableAnimation + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0816AB68 + bl WallyBufferExecCompleted + b _0816AB74 + .align 2, 0 +_0816AB60: .4byte 0x02022D08 +_0816AB64: .4byte 0x02023D08 +_0816AB68: + ldr r0, _0816AB7C + ldrb r1, [r6] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, _0816AB80 + str r0, [r1] +_0816AB74: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0816AB7C: .4byte 0x03005AC0 +_0816AB80: .4byte 0x081688D1 + thumb_func_end WallyHandleBattleAnimation + + thumb_func_start WallyHandleLinkStandbyMsg +WallyHandleLinkStandbyMsg: @ 0x0816AB84 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandleLinkStandbyMsg + + thumb_func_start WallyHandleResetActionMoveSelection +WallyHandleResetActionMoveSelection: @ 0x0816AB90 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallyHandleResetActionMoveSelection + + thumb_func_start WallyHandleCmd55 +WallyHandleCmd55: @ 0x0816AB9C + push {r4, lr} + ldr r2, _0816ABE0 + ldr r1, _0816ABE4 + ldr r4, _0816ABE8 + ldrb r0, [r4] + lsls r0, r0, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r2] + movs r0, #5 + bl FadeOutMapMusic + movs r0, #3 + bl BeginFastPaletteFade + bl WallyBufferExecCompleted + ldr r0, _0816ABEC + ldr r0, [r0] + movs r1, #6 + ands r0, r1 + cmp r0, #2 + bne _0816ABD8 + ldr r0, _0816ABF0 + ldrb r1, [r4] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, _0816ABF4 + str r0, [r1] +_0816ABD8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816ABE0: .4byte 0x02023FDE +_0816ABE4: .4byte 0x02022D08 +_0816ABE8: .4byte 0x02023D08 +_0816ABEC: .4byte 0x02022C90 +_0816ABF0: .4byte 0x03005AC0 +_0816ABF4: .4byte 0x080583C1 + thumb_func_end WallyHandleCmd55 + + thumb_func_start SpriteCB_Null7 +SpriteCB_Null7: @ 0x0816ABF8 + bx lr + .align 2, 0 + thumb_func_end SpriteCB_Null7 + diff --git a/asm/battle_controllers.s b/asm/battle_controllers.s new file mode 100644 index 0000000..f852a8b --- /dev/null +++ b/asm/battle_controllers.s @@ -0,0 +1,4019 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start HandleLinkBattleSetup +HandleLinkBattleSetup: @ 0x080324EC + push {lr} + ldr r0, _08032524 + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _0803251E + ldr r0, _08032528 + ldrb r0, [r0] + cmp r0, #0 + beq _08032506 + bl sub_0800AF5C +_08032506: + ldr r0, _0803252C + ldrb r0, [r0] + cmp r0, #0 + bne _08032512 + bl OpenLink +_08032512: + ldr r0, _08032530 + movs r1, #0 + bl CreateTask + bl CreateTasksForSendRecvLinkBuffers +_0803251E: + pop {r0} + bx r0 + .align 2, 0 +_08032524: .4byte 0x02022C90 +_08032528: .4byte 0x0300319C +_0803252C: .4byte 0x030031C4 +_08032530: .4byte 0x080B3189 + thumb_func_end HandleLinkBattleSetup + + thumb_func_start SetUpBattleVarsAndBirchZigzagoon +SetUpBattleVarsAndBirchZigzagoon: @ 0x08032534 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + ldr r0, _080325D0 + ldr r1, _080325D4 + str r1, [r0] + movs r0, #0 + str r0, [sp, #0x10] + movs r1, #0 + ldr r7, _080325D8 + ldr r6, _080325DC + movs r2, #0 + ldr r5, _080325E0 + ldr r4, _080325E4 + ldr r3, _080325E8 +_08032550: + lsls r0, r1, #2 + adds r0, r0, r7 + str r4, [r0] + adds r1, r1, r3 + movs r0, #0xff + strb r0, [r1] + ldr r0, [sp, #0x10] + adds r0, r0, r6 + strb r2, [r0] + ldr r0, [sp, #0x10] + adds r0, r0, r5 + strb r2, [r0] + ldr r0, [sp, #0x10] + adds r0, #1 + str r0, [sp, #0x10] + adds r1, r0, #0 + cmp r1, #3 + ble _08032550 + bl HandleLinkBattleSetup + ldr r0, _080325EC + movs r5, #0 + str r5, [r0] + bl ClearBattleAnimationVars + bl ClearBattleMonForms + movs r0, #0xf + bl BattleAI_HandleItemUseBeforeAISetup + ldr r0, _080325F0 + ldr r0, [r0] + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080325C0 + bl ZeroEnemyPartyMons + ldr r4, _080325F4 + movs r1, #0x90 + lsls r1, r1, #1 + str r5, [sp] + str r5, [sp, #4] + str r5, [sp, #8] + str r5, [sp, #0xc] + adds r0, r4, #0 + movs r2, #2 + movs r3, #0x20 + bl CreateMon + str r5, [sp, #0x10] + adds r0, r4, #0 + movs r1, #0xc + add r2, sp, #0x10 + bl SetMonData +_080325C0: + ldr r0, _080325F8 + str r5, [r0] + ldr r0, _080325FC + strb r5, [r0] + add sp, #0x14 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080325D0: .4byte 0x03005A64 +_080325D4: .4byte 0x08039B0D +_080325D8: .4byte 0x03005AC0 +_080325DC: .4byte 0x02024150 +_080325E0: .4byte 0x02024154 +_080325E4: .4byte 0x08057069 +_080325E8: .4byte 0x02023D1A +_080325EC: .4byte 0x02023D0C +_080325F0: .4byte 0x02022C90 +_080325F4: .4byte 0x020243E8 +_080325F8: .4byte 0x02022C98 +_080325FC: .4byte 0x02023F30 + thumb_func_end SetUpBattleVarsAndBirchZigzagoon + + thumb_func_start sub_08032600 +sub_08032600: @ 0x08032600 + push {r4, r5, lr} + ldr r0, _08032618 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + bne _0803261C + movs r0, #1 + bl sub_08184C50 + b _08032622 + .align 2, 0 +_08032618: .4byte 0x02022C90 +_0803261C: + movs r0, #2 + bl sub_08184C50 +_08032622: + ldr r4, _08032644 + ldr r0, [r4] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + bne _08032634 + bl RecordedBattle_RestoreSavedParties +_08032634: + ldr r0, [r4] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _08032648 + bl InitLinkBtlControllers + b _0803264C + .align 2, 0 +_08032644: .4byte 0x02022C90 +_08032648: + bl InitSinglePlayerBtlControllers +_0803264C: + bl SetBattlePartyIds + ldr r0, _080326B0 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _0803267A + movs r4, #0 + ldr r0, _080326B4 + ldrb r1, [r0] + cmp r4, r1 + bge _0803267A + adds r5, r0, #0 +_08032668: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl sub_081B8A04 + adds r4, #1 + ldrb r0, [r5] + cmp r4, r0 + blt _08032668 +_0803267A: + movs r4, #0 + ldr r3, _080326B8 + movs r2, #0xd2 + lsls r2, r2, #1 + movs r1, #0 +_08032684: + ldr r0, [r3] + adds r0, r4, r0 + adds r0, r0, r2 + strb r1, [r0] + adds r4, #1 + cmp r4, #0x5f + bls _08032684 + movs r4, #0 + ldr r3, _080326B8 + movs r2, #0x81 + lsls r2, r2, #2 + movs r1, #0 +_0803269C: + ldr r0, [r3] + adds r0, r4, r0 + adds r0, r0, r2 + strb r1, [r0] + adds r4, #1 + cmp r4, #0x67 + bls _0803269C + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080326B0: .4byte 0x02022C90 +_080326B4: .4byte 0x02023D10 +_080326B8: .4byte 0x02024140 + thumb_func_end sub_08032600 + + thumb_func_start InitSinglePlayerBtlControllers +InitSinglePlayerBtlControllers: @ 0x080326BC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _080326F4 + ldr r3, [r0] + movs r5, #0x80 + lsls r5, r5, #0xf + ands r5, r3 + cmp r5, #0 + beq _0803277C + ldr r1, _080326F8 + ldr r0, _080326FC + str r0, [r1] + movs r4, #0x80 + lsls r4, r4, #0x11 + ands r4, r3 + cmp r4, #0 + beq _0803270C + ldr r2, _08032700 + ldr r0, _08032704 + str r0, [r2] + ldr r1, _08032708 + movs r0, #0 + strb r0, [r1] + b _08032716 + .align 2, 0 +_080326F4: .4byte 0x02022C90 +_080326F8: .4byte 0x03005A64 +_080326FC: .4byte 0x08039B11 +_08032700: .4byte 0x03005AC0 +_08032704: .4byte 0x08189679 +_08032708: .4byte 0x02023D1A +_0803270C: + ldr r2, _08032760 + ldr r0, _08032764 + str r0, [r2] + ldr r1, _08032768 + strb r4, [r1] +_08032716: + ldr r3, _0803276C + str r3, [r2, #4] + movs r0, #1 + strb r0, [r1, #1] + ldr r0, _08032770 + str r0, [r2, #8] + movs r0, #2 + strb r0, [r1, #2] + str r3, [r2, #0xc] + movs r0, #3 + strb r0, [r1, #3] + ldr r1, _08032774 + movs r0, #4 + strb r0, [r1] + movs r0, #0 + movs r1, #0 + bl sub_081B8A04 + movs r0, #1 + movs r1, #0 + bl sub_081B8A04 + movs r0, #2 + movs r1, #1 + bl sub_081B8A04 + movs r0, #3 + movs r1, #1 + bl sub_081B8A04 + ldr r0, _08032778 + movs r1, #0 + strh r1, [r0] + strh r1, [r0, #2] + movs r1, #3 + b _0803290E + .align 2, 0 +_08032760: .4byte 0x03005AC0 +_08032764: .4byte 0x0805706D +_08032768: .4byte 0x02023D1A +_0803276C: .4byte 0x0805ED81 +_08032770: .4byte 0x081BAA91 +_08032774: .4byte 0x02023D10 +_08032778: .4byte 0x02023D12 +_0803277C: + movs r7, #1 + adds r0, r3, #0 + ands r0, r7 + cmp r0, #0 + beq _08032788 + b _08032878 +_08032788: + ldr r0, _080327A0 + ldr r2, _080327A4 + str r2, [r0] + movs r1, #0x80 + ands r1, r3 + mov ip, r2 + cmp r1, #0 + beq _080327B0 + ldr r1, _080327A8 + ldr r0, _080327AC + b _080327CC + .align 2, 0 +_080327A0: .4byte 0x03005A64 +_080327A4: .4byte 0x08039B11 +_080327A8: .4byte 0x03005AC0 +_080327AC: .4byte 0x081592A9 +_080327B0: + movs r0, #0x80 + lsls r0, r0, #2 + ands r3, r0 + cmp r3, #0 + beq _080327C8 + ldr r1, _080327C0 + ldr r0, _080327C4 + b _080327CC + .align 2, 0 +_080327C0: .4byte 0x03005AC0 +_080327C4: .4byte 0x081681C1 +_080327C8: + ldr r1, _08032828 + ldr r0, _0803282C +_080327CC: + str r0, [r1] + mov sl, r1 + ldr r4, _08032830 + movs r0, #0 + mov sb, r0 + mov r1, sb + strb r1, [r4] + mov r5, sl + ldr r2, _08032834 + mov r8, r2 + str r2, [r5, #4] + movs r6, #1 + strb r6, [r4, #1] + ldr r2, _08032838 + movs r7, #2 + strb r7, [r2] + ldr r0, _0803283C + ldr r3, [r0] + movs r0, #0x80 + lsls r0, r0, #0x11 + ands r0, r3 + cmp r0, #0 + bne _080327FC + b _08032B4A +_080327FC: + movs r1, #0x80 + lsls r1, r1, #0x12 + ands r1, r3 + cmp r1, #0 + beq _08032864 + movs r1, #0x80 + lsls r1, r1, #0x18 + ands r1, r3 + cmp r1, #0 + beq _0803284C + mov r1, ip + ldr r0, _08032840 + str r1, [r0] + ldr r0, _08032844 + str r0, [r5] + mov r1, sb + strb r1, [r4] + ldr r0, _08032848 + str r0, [r5, #4] + strb r6, [r4, #1] + strb r7, [r2] + b _08032B4A + .align 2, 0 +_08032828: .4byte 0x03005AC0 +_0803282C: .4byte 0x0805706D +_08032830: .4byte 0x02023D1A +_08032834: .4byte 0x0805ED81 +_08032838: .4byte 0x02023D10 +_0803283C: .4byte 0x02022C90 +_08032840: .4byte 0x03005A64 +_08032844: .4byte 0x08189679 +_08032848: .4byte 0x08186219 +_0803284C: + ldr r0, _0803285C + str r0, [r5, #4] + strb r1, [r4, #1] + ldr r0, _08032860 + str r0, [r5] + strb r6, [r4] + strb r7, [r2] + b _08032B4A + .align 2, 0 +_0803285C: .4byte 0x08189679 +_08032860: .4byte 0x08186219 +_08032864: + ldr r0, _08032874 + mov r2, sl + str r0, [r2] + strb r1, [r4] + mov r0, r8 + str r0, [r2, #4] + strb r6, [r4, #1] + b _08032B4A + .align 2, 0 +_08032874: .4byte 0x08189679 +_08032878: + ldr r1, _08032914 + ldr r2, _08032918 + str r1, [r2] + ldr r2, _0803291C + ldr r0, _08032920 + str r0, [r2] + ldr r4, _08032924 + strb r5, [r4] + ldr r6, _08032928 + str r6, [r2, #4] + strb r7, [r4, #1] + str r0, [r2, #8] + movs r0, #2 + mov ip, r0 + mov r1, ip + strb r1, [r4, #2] + str r6, [r2, #0xc] + movs r0, #3 + mov r8, r0 + mov r1, r8 + strb r1, [r4, #3] + ldr r0, _0803292C + mov sl, r0 + movs r1, #4 + mov sb, r1 + strb r1, [r0] + movs r0, #0x80 + lsls r0, r0, #0x11 + ands r0, r3 + cmp r0, #0 + bne _080328B8 + b _08032B4A +_080328B8: + movs r1, #0xa0 + lsls r1, r1, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, r1 + bne _08032938 + ldr r0, _08032914 + ldr r1, _08032918 + str r0, [r1] + ldr r0, _08032930 + str r0, [r2] + strb r5, [r4] + str r6, [r2, #4] + strb r7, [r4, #1] + str r0, [r2, #8] + mov r0, ip + strb r0, [r4, #2] + str r6, [r2, #0xc] + mov r1, r8 + strb r1, [r4, #3] + mov r0, sb + mov r2, sl + strb r0, [r2] + movs r0, #0 + movs r1, #0 + bl sub_081B8A04 + movs r0, #1 + movs r1, #0 + bl sub_081B8A04 + movs r0, #2 + movs r1, #1 + bl sub_081B8A04 + movs r0, #3 + movs r1, #1 + bl sub_081B8A04 + ldr r0, _08032934 + strh r5, [r0] + strh r5, [r0, #2] + mov r1, r8 +_0803290E: + strh r1, [r0, #4] + strh r1, [r0, #6] + b _08032B4A + .align 2, 0 +_08032914: .4byte 0x08039B11 +_08032918: .4byte 0x03005A64 +_0803291C: .4byte 0x03005AC0 +_08032920: .4byte 0x0805706D +_08032924: .4byte 0x02023D1A +_08032928: .4byte 0x0805ED81 +_0803292C: .4byte 0x02023D10 +_08032930: .4byte 0x08189679 +_08032934: .4byte 0x02023D12 +_08032938: + movs r5, #0x40 + ands r5, r3 + cmp r5, #0 + bne _08032942 + b _08032AD4 +_08032942: + ldr r0, _08032970 + ldrb r5, [r0] + movs r0, #0 + mov sl, r0 + ldr r1, _08032974 + mov ip, r1 + adds r7, r4, #0 + mov r8, r0 + ldr r6, _08032978 + movs r4, #0 + movs r2, #3 + mov sb, r2 +_0803295A: + mov r1, ip + adds r0, r4, r1 + ldrh r0, [r0, #0x18] + cmp r0, #2 + bgt _0803297C + cmp r0, #1 + bge _08032994 + cmp r0, #0 + beq _08032980 + b _0803299E + .align 2, 0 +_08032970: .4byte 0x0203C480 +_08032974: .4byte 0x020226A0 +_08032978: .4byte 0x02023D12 +_0803297C: + cmp r0, #3 + bne _0803299E +_08032980: + ldr r0, _08032990 + adds r0, r4, r0 + ldrb r0, [r0, #0x18] + movs r1, #0 + bl sub_081B8A04 + b _0803299E + .align 2, 0 +_08032990: .4byte 0x020226A0 +_08032994: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + bl sub_081B8A04 +_0803299E: + cmp sl, r5 + bne _080329EE + ldr r0, _080329C4 + adds r3, r4, r0 + ldrh r1, [r3, #0x18] + lsls r1, r1, #2 + ldr r2, _080329C8 + adds r1, r1, r2 + ldr r2, _080329CC + str r2, [r1] + ldrh r1, [r3, #0x18] + mov ip, r0 + cmp r1, #2 + bgt _080329D0 + cmp r1, #1 + bge _080329E4 + cmp r1, #0 + beq _080329D4 + b _08032AC4 + .align 2, 0 +_080329C4: .4byte 0x020226A0 +_080329C8: .4byte 0x03005AC0 +_080329CC: .4byte 0x08189679 +_080329D0: + cmp r1, #3 + bne _08032AC4 +_080329D4: + mov r1, ip + adds r0, r4, r1 + ldrh r1, [r0, #0x18] + adds r1, r1, r7 + mov r2, r8 + strb r2, [r1] + ldrh r0, [r0, #0x18] + b _08032AAA +_080329E4: + adds r1, r1, r7 + movs r0, #2 + strb r0, [r1] + ldrh r0, [r3, #0x18] + b _08032ABC +_080329EE: + ldr r2, _08032A14 + adds r0, r4, r2 + ldrh r1, [r0, #0x18] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + mov ip, r2 + cmp r0, #0 + bne _08032A18 + lsls r0, r5, #3 + subs r0, r0, r5 + lsls r0, r0, #2 + add r0, ip + ldrh r1, [r0, #0x18] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08032A2A + b _08032A70 + .align 2, 0 +_08032A14: .4byte 0x020226A0 +_08032A18: + lsls r0, r5, #3 + subs r0, r0, r5 + lsls r0, r0, #2 + add r0, ip + ldrh r1, [r0, #0x18] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08032A70 +_08032A2A: + mov r0, ip + adds r2, r4, r0 + ldrh r0, [r2, #0x18] + lsls r0, r0, #2 + ldr r1, _08032A4C + adds r0, r0, r1 + ldr r1, _08032A50 + str r1, [r0] + ldrh r1, [r2, #0x18] + cmp r1, #2 + bgt _08032A54 + cmp r1, #1 + bge _08032A68 + cmp r1, #0 + beq _08032A58 + b _08032AC4 + .align 2, 0 +_08032A4C: .4byte 0x03005AC0 +_08032A50: .4byte 0x08189679 +_08032A54: + cmp r1, #3 + bne _08032AC4 +_08032A58: + mov r2, ip + adds r0, r4, r2 + ldrh r1, [r0, #0x18] + adds r1, r1, r7 + mov r2, r8 + strb r2, [r1] + ldrh r0, [r0, #0x18] + b _08032AAA +_08032A68: + adds r1, r1, r7 + movs r0, #2 + strb r0, [r1] + b _08032ABA +_08032A70: + mov r0, ip + adds r2, r4, r0 + ldrh r0, [r2, #0x18] + lsls r0, r0, #2 + ldr r1, _08032A90 + adds r0, r0, r1 + ldr r1, _08032A94 + str r1, [r0] + ldrh r0, [r2, #0x18] + cmp r0, #2 + bgt _08032A98 + cmp r0, #1 + bge _08032AB4 + cmp r0, #0 + beq _08032A9C + b _08032AC4 + .align 2, 0 +_08032A90: .4byte 0x03005AC0 +_08032A94: .4byte 0x08186219 +_08032A98: + cmp r0, #3 + bne _08032AC4 +_08032A9C: + mov r0, ip + adds r2, r4, r0 + ldrh r0, [r2, #0x18] + adds r0, r0, r7 + movs r1, #1 + strb r1, [r0] + ldrh r0, [r2, #0x18] +_08032AAA: + lsls r0, r0, #1 + adds r0, r0, r6 + mov r1, r8 + strh r1, [r0] + b _08032AC4 +_08032AB4: + adds r0, r0, r7 + mov r1, sb + strb r1, [r0] +_08032ABA: + ldrh r0, [r2, #0x18] +_08032ABC: + lsls r0, r0, #1 + adds r0, r0, r6 + mov r2, sb + strh r2, [r0] +_08032AC4: + adds r4, #0x1c + movs r0, #1 + add sl, r0 + mov r1, sl + cmp r1, #3 + bgt _08032AD2 + b _0803295A +_08032AD2: + b _08032B4A +_08032AD4: + movs r1, #4 + ands r1, r3 + cmp r1, #0 + beq _08032B14 + ldr r0, _08032B00 + str r0, [r2] + strb r5, [r4] + str r0, [r2, #8] + mov r0, ip + strb r0, [r4, #2] + movs r0, #0x80 + lsls r0, r0, #0x12 + ands r3, r0 + cmp r3, #0 + beq _08032B08 + ldr r0, _08032B04 + str r0, [r2, #4] + strb r7, [r4, #1] + str r0, [r2, #0xc] + mov r1, r8 + strb r1, [r4, #3] + b _08032B4A + .align 2, 0 +_08032B00: .4byte 0x08189679 +_08032B04: .4byte 0x08186219 +_08032B08: + str r6, [r2, #4] + strb r7, [r4, #1] + str r6, [r2, #0xc] + mov r2, r8 + strb r2, [r4, #3] + b _08032B4A +_08032B14: + ldr r0, _08032B38 + str r0, [r2, #4] + strb r1, [r4, #1] + str r0, [r2, #0xc] + mov r0, ip + strb r0, [r4, #3] + movs r0, #0x80 + lsls r0, r0, #0x12 + ands r3, r0 + cmp r3, #0 + beq _08032B40 + ldr r0, _08032B3C + str r0, [r2] + strb r7, [r4] + str r0, [r2, #8] + mov r1, r8 + strb r1, [r4, #2] + b _08032B4A + .align 2, 0 +_08032B38: .4byte 0x08189679 +_08032B3C: .4byte 0x08186219 +_08032B40: + str r6, [r2] + strb r7, [r4] + str r6, [r2, #8] + mov r2, r8 + strb r2, [r4, #2] +_08032B4A: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end InitSinglePlayerBtlControllers + + thumb_func_start InitLinkBtlControllers +InitLinkBtlControllers: @ 0x08032B58 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r4, _08032B94 + ldr r1, [r4] + movs r5, #1 + adds r3, r1, #0 + ands r3, r5 + cmp r3, #0 + bne _08032BE0 + movs r4, #4 + ands r4, r1 + cmp r4, #0 + beq _08032BB4 + ldr r1, _08032B98 + ldr r0, _08032B9C + str r0, [r1] + ldr r2, _08032BA0 + ldr r0, _08032BA4 + str r0, [r2] + ldr r1, _08032BA8 + strb r3, [r1] + ldr r0, _08032BAC + str r0, [r2, #4] + strb r5, [r1, #1] + ldr r1, _08032BB0 + movs r0, #2 + b _08032ED2 + .align 2, 0 +_08032B94: .4byte 0x02022C90 +_08032B98: .4byte 0x03005A64 +_08032B9C: .4byte 0x08039B11 +_08032BA0: .4byte 0x03005AC0 +_08032BA4: .4byte 0x0805706D +_08032BA8: .4byte 0x02023D1A +_08032BAC: .4byte 0x08063F79 +_08032BB0: .4byte 0x02023D10 +_08032BB4: + ldr r2, _08032BCC + ldr r0, _08032BD0 + str r0, [r2, #4] + ldr r1, _08032BD4 + strb r4, [r1, #1] + ldr r0, _08032BD8 + str r0, [r2] + strb r5, [r1] + ldr r1, _08032BDC + movs r0, #2 + b _08032ED2 + .align 2, 0 +_08032BCC: .4byte 0x03005AC0 +_08032BD0: .4byte 0x0805706D +_08032BD4: .4byte 0x02023D1A +_08032BD8: .4byte 0x08063F79 +_08032BDC: .4byte 0x02023D10 +_08032BE0: + movs r0, #0x41 + ands r0, r1 + cmp r0, #1 + bne _08032C68 + movs r6, #4 + adds r3, r6, #0 + ands r3, r1 + cmp r3, #0 + beq _08032C30 + ldr r1, _08032C18 + ldr r0, _08032C1C + str r0, [r1] + ldr r2, _08032C20 + ldr r4, _08032C24 + str r4, [r2] + ldr r1, _08032C28 + movs r0, #0 + strb r0, [r1] + ldr r3, _08032C2C + str r3, [r2, #4] + strb r5, [r1, #1] + str r4, [r2, #8] + movs r0, #2 + strb r0, [r1, #2] + str r3, [r2, #0xc] + movs r0, #3 + strb r0, [r1, #3] + b _08032C4C + .align 2, 0 +_08032C18: .4byte 0x03005A64 +_08032C1C: .4byte 0x08039B11 +_08032C20: .4byte 0x03005AC0 +_08032C24: .4byte 0x0805706D +_08032C28: .4byte 0x02023D1A +_08032C2C: .4byte 0x08063F79 +_08032C30: + ldr r2, _08032C54 + ldr r0, _08032C58 + str r0, [r2, #4] + ldr r1, _08032C5C + strb r3, [r1, #1] + ldr r3, _08032C60 + str r3, [r2] + strb r5, [r1] + str r0, [r2, #0xc] + movs r0, #2 + strb r0, [r1, #3] + str r3, [r2, #8] + movs r0, #3 + strb r0, [r1, #2] +_08032C4C: + ldr r0, _08032C64 + strb r6, [r0] + b _08032ED4 + .align 2, 0 +_08032C54: .4byte 0x03005AC0 +_08032C58: .4byte 0x0805706D +_08032C5C: .4byte 0x02023D1A +_08032C60: .4byte 0x08063F79 +_08032C64: .4byte 0x02023D10 +_08032C68: + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08032D24 + movs r4, #4 + adds r3, r4, #0 + ands r3, r1 + cmp r3, #0 + beq _08032CB4 + ldr r1, _08032C98 + ldr r0, _08032C9C + str r0, [r1] + ldr r2, _08032CA0 + ldr r0, _08032CA4 + str r0, [r2] + ldr r1, _08032CA8 + movs r0, #0 + strb r0, [r1] + ldr r3, _08032CAC + str r3, [r2, #4] + strb r5, [r1, #1] + ldr r0, _08032CB0 + b _08032CC6 + .align 2, 0 +_08032C98: .4byte 0x03005A64 +_08032C9C: .4byte 0x08039B11 +_08032CA0: .4byte 0x03005AC0 +_08032CA4: .4byte 0x0805706D +_08032CA8: .4byte 0x02023D1A +_08032CAC: .4byte 0x0805ED81 +_08032CB0: .4byte 0x0814AF71 +_08032CB4: + ldr r2, _08032D08 + ldr r0, _08032D0C + str r0, [r2] + ldr r1, _08032D10 + strb r3, [r1] + ldr r3, _08032D14 + str r3, [r2, #4] + strb r5, [r1, #1] + ldr r0, _08032D18 +_08032CC6: + str r0, [r2, #8] + movs r0, #2 + strb r0, [r1, #2] + str r3, [r2, #0xc] + movs r0, #3 + strb r0, [r1, #3] + ldr r0, _08032D1C + strb r4, [r0] + movs r0, #0 + movs r1, #0 + bl sub_081B8A04 + movs r0, #1 + movs r1, #0 + bl sub_081B8A04 + movs r0, #2 + movs r1, #1 + bl sub_081B8A04 + movs r0, #3 + movs r1, #1 + bl sub_081B8A04 + ldr r0, _08032D20 + movs r1, #0 + strh r1, [r0] + strh r1, [r0, #2] + movs r1, #3 + strh r1, [r0, #4] + strh r1, [r0, #6] + b _08032ED4 + .align 2, 0 +_08032D08: .4byte 0x03005AC0 +_08032D0C: .4byte 0x0814AF71 +_08032D10: .4byte 0x02023D1A +_08032D14: .4byte 0x08063F79 +_08032D18: .4byte 0x0805706D +_08032D1C: .4byte 0x02023D10 +_08032D20: .4byte 0x02023D12 +_08032D24: + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, [r4] + movs r1, #4 + ands r0, r1 + cmp r0, #0 + beq _08032D3C + ldr r1, _08032D64 + ldr r0, _08032D68 + str r0, [r1] +_08032D3C: + movs r0, #0 + mov sl, r0 + ldr r1, _08032D6C + mov ip, r1 + ldr r7, _08032D70 + mov r8, r0 + ldr r6, _08032D74 + movs r4, #0 + movs r2, #3 + mov sb, r2 +_08032D50: + mov r1, ip + adds r0, r4, r1 + ldrh r0, [r0, #0x18] + cmp r0, #2 + bgt _08032D78 + cmp r0, #1 + bge _08032D90 + cmp r0, #0 + beq _08032D7C + b _08032D9A + .align 2, 0 +_08032D64: .4byte 0x03005A64 +_08032D68: .4byte 0x08039B11 +_08032D6C: .4byte 0x020226A0 +_08032D70: .4byte 0x02023D1A +_08032D74: .4byte 0x02023D12 +_08032D78: + cmp r0, #3 + bne _08032D9A +_08032D7C: + ldr r0, _08032D8C + adds r0, r4, r0 + ldrb r0, [r0, #0x18] + movs r1, #0 + bl sub_081B8A04 + b _08032D9A + .align 2, 0 +_08032D8C: .4byte 0x020226A0 +_08032D90: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + bl sub_081B8A04 +_08032D9A: + cmp sl, r5 + bne _08032DEA + ldr r0, _08032DC0 + adds r3, r4, r0 + ldrh r1, [r3, #0x18] + lsls r1, r1, #2 + ldr r2, _08032DC4 + adds r1, r1, r2 + ldr r2, _08032DC8 + str r2, [r1] + ldrh r1, [r3, #0x18] + mov ip, r0 + cmp r1, #2 + bgt _08032DCC + cmp r1, #1 + bge _08032DE0 + cmp r1, #0 + beq _08032DD0 + b _08032EC0 + .align 2, 0 +_08032DC0: .4byte 0x020226A0 +_08032DC4: .4byte 0x03005AC0 +_08032DC8: .4byte 0x0805706D +_08032DCC: + cmp r1, #3 + bne _08032EC0 +_08032DD0: + mov r1, ip + adds r0, r4, r1 + ldrh r1, [r0, #0x18] + adds r1, r1, r7 + mov r2, r8 + strb r2, [r1] + ldrh r0, [r0, #0x18] + b _08032EA6 +_08032DE0: + adds r1, r1, r7 + movs r0, #2 + strb r0, [r1] + ldrh r0, [r3, #0x18] + b _08032EB8 +_08032DEA: + ldr r2, _08032E10 + adds r0, r4, r2 + ldrh r1, [r0, #0x18] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + mov ip, r2 + cmp r0, #0 + bne _08032E14 + lsls r0, r5, #3 + subs r0, r0, r5 + lsls r0, r0, #2 + add r0, ip + ldrh r1, [r0, #0x18] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08032E26 + b _08032E6C + .align 2, 0 +_08032E10: .4byte 0x020226A0 +_08032E14: + lsls r0, r5, #3 + subs r0, r0, r5 + lsls r0, r0, #2 + add r0, ip + ldrh r1, [r0, #0x18] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08032E6C +_08032E26: + mov r0, ip + adds r2, r4, r0 + ldrh r0, [r2, #0x18] + lsls r0, r0, #2 + ldr r1, _08032E48 + adds r0, r0, r1 + ldr r1, _08032E4C + str r1, [r0] + ldrh r1, [r2, #0x18] + cmp r1, #2 + bgt _08032E50 + cmp r1, #1 + bge _08032E64 + cmp r1, #0 + beq _08032E54 + b _08032EC0 + .align 2, 0 +_08032E48: .4byte 0x03005AC0 +_08032E4C: .4byte 0x0814AF71 +_08032E50: + cmp r1, #3 + bne _08032EC0 +_08032E54: + mov r2, ip + adds r0, r4, r2 + ldrh r1, [r0, #0x18] + adds r1, r1, r7 + mov r2, r8 + strb r2, [r1] + ldrh r0, [r0, #0x18] + b _08032EA6 +_08032E64: + adds r1, r1, r7 + movs r0, #2 + strb r0, [r1] + b _08032EB6 +_08032E6C: + mov r0, ip + adds r2, r4, r0 + ldrh r0, [r2, #0x18] + lsls r0, r0, #2 + ldr r1, _08032E8C + adds r0, r0, r1 + ldr r1, _08032E90 + str r1, [r0] + ldrh r0, [r2, #0x18] + cmp r0, #2 + bgt _08032E94 + cmp r0, #1 + bge _08032EB0 + cmp r0, #0 + beq _08032E98 + b _08032EC0 + .align 2, 0 +_08032E8C: .4byte 0x03005AC0 +_08032E90: .4byte 0x08063F79 +_08032E94: + cmp r0, #3 + bne _08032EC0 +_08032E98: + mov r0, ip + adds r2, r4, r0 + ldrh r0, [r2, #0x18] + adds r0, r0, r7 + movs r1, #1 + strb r1, [r0] + ldrh r0, [r2, #0x18] +_08032EA6: + lsls r0, r0, #1 + adds r0, r0, r6 + mov r1, r8 + strh r1, [r0] + b _08032EC0 +_08032EB0: + adds r0, r0, r7 + mov r1, sb + strb r1, [r0] +_08032EB6: + ldrh r0, [r2, #0x18] +_08032EB8: + lsls r0, r0, #1 + adds r0, r0, r6 + mov r2, sb + strh r2, [r0] +_08032EC0: + adds r4, #0x1c + movs r0, #1 + add sl, r0 + mov r1, sl + cmp r1, #3 + bgt _08032ECE + b _08032D50 +_08032ECE: + ldr r1, _08032EE4 + movs r0, #4 +_08032ED2: + strb r0, [r1] +_08032ED4: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08032EE4: .4byte 0x02023D10 + thumb_func_end InitLinkBtlControllers + + thumb_func_start SetBattlePartyIds +SetBattlePartyIds: @ 0x08032EE8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _08032F08 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08032F00 + b _08033034 +_08032F00: + movs r0, #0 + mov r8, r0 + b _08033012 + .align 2, 0 +_08032F08: .4byte 0x02022C90 +_08032F0C: + movs r5, #0 + movs r0, #1 + add r0, r8 + mov sl, r0 + ldr r0, _08032F38 + add r0, r8 + mov sb, r0 + mov r0, r8 + lsls r6, r0, #1 + movs r7, #0 +_08032F20: + mov r0, r8 + cmp r0, #1 + bgt _08032F88 + mov r0, sb + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08032F40 + ldr r0, _08032F3C + b _08032F42 + .align 2, 0 +_08032F38: .4byte 0x02023D1A +_08032F3C: .4byte 0x02024190 +_08032F40: + ldr r0, _08032F80 +_08032F42: + adds r4, r7, r0 + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _08033008 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + cmp r0, #0 + beq _08033008 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + movs r1, #0xce + lsls r1, r1, #1 + cmp r0, r1 + beq _08033008 + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + bne _08033008 + ldr r0, _08032F84 + adds r0, r6, r0 + strh r5, [r0] + b _08033010 + .align 2, 0 +_08032F80: .4byte 0x020243E8 +_08032F84: .4byte 0x02023D12 +_08032F88: + mov r0, sb + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08032FB0 + ldr r0, _08032FAC + adds r4, r7, r0 + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _08033008 + adds r0, r4, #0 + movs r1, #0xb + b _08032FC4 + .align 2, 0 +_08032FAC: .4byte 0x02024190 +_08032FB0: + ldr r0, _08033000 + adds r4, r7, r0 + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _08033008 + adds r0, r4, #0 + movs r1, #0x41 +_08032FC4: + bl GetMonData + cmp r0, #0 + beq _08033008 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + movs r1, #0xce + lsls r1, r1, #1 + cmp r0, r1 + beq _08033008 + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + bne _08033008 + ldr r1, _08033004 + mov r0, r8 + subs r0, #2 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, r5 + beq _08033008 + adds r0, r6, r1 + strh r5, [r0] + b _08033010 + .align 2, 0 +_08033000: .4byte 0x020243E8 +_08033004: .4byte 0x02023D12 +_08033008: + adds r7, #0x64 + adds r5, #1 + cmp r5, #5 + ble _08032F20 +_08033010: + mov r8, sl +_08033012: + ldr r0, _08033044 + ldrb r0, [r0] + cmp r8, r0 + bge _0803301C + b _08032F0C +_0803301C: + ldr r0, _08033048 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08033034 + ldr r0, _0803304C + movs r1, #0 + strh r1, [r0, #2] + movs r1, #3 + strh r1, [r0, #6] +_08033034: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08033044: .4byte 0x02023D10 +_08033048: .4byte 0x02022C90 +_0803304C: .4byte 0x02023D12 + thumb_func_end SetBattlePartyIds + + thumb_func_start PrepareBufferDataTransfer +PrepareBufferDataTransfer: @ 0x08033050 + push {r4, r5, r6, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + adds r5, r3, #0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldr r0, _08033078 + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _0803307C + adds r0, r3, #0 + adds r1, r2, #0 + adds r2, r4, #0 + bl PrepareBufferDataTransferLink + b _080330CE + .align 2, 0 +_08033078: .4byte 0x02022C90 +_0803307C: + cmp r5, #0 + beq _08033086 + cmp r5, #1 + beq _080330B0 + b _080330CE +_08033086: + movs r3, #0 + cmp r3, r2 + bge _080330CE + ldr r6, _080330A8 + ldr r5, _080330AC +_08033090: + ldrb r0, [r5] + lsls r0, r0, #9 + adds r0, r3, r0 + adds r0, r0, r6 + ldrb r1, [r4] + strb r1, [r0] + adds r4, #1 + adds r3, #1 + cmp r3, r2 + blt _08033090 + b _080330CE + .align 2, 0 +_080330A8: .4byte 0x02022D08 +_080330AC: .4byte 0x02023D08 +_080330B0: + movs r3, #0 + cmp r3, r2 + bge _080330CE + ldr r6, _080330D4 + ldr r5, _080330D8 +_080330BA: + ldrb r0, [r5] + lsls r0, r0, #9 + adds r0, r3, r0 + adds r0, r0, r6 + ldrb r1, [r4] + strb r1, [r0] + adds r4, #1 + adds r3, #1 + cmp r3, r2 + blt _080330BA +_080330CE: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080330D4: .4byte 0x02023508 +_080330D8: .4byte 0x02023D08 + thumb_func_end PrepareBufferDataTransfer + + thumb_func_start CreateTasksForSendRecvLinkBuffers +CreateTasksForSendRecvLinkBuffers: @ 0x080330DC + push {r4, r5, r6, lr} + ldr r0, _08033174 + movs r1, #0 + bl CreateTask + ldr r2, _08033178 + strb r0, [r2] + ldr r5, _0803317C + ldrb r1, [r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r6, #0 + movs r4, #0 + strh r4, [r0, #0x1e] + ldrb r1, [r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + strh r4, [r0, #0x20] + ldrb r1, [r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + strh r4, [r0, #0x22] + ldrb r1, [r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + strh r4, [r0, #0x24] + ldrb r1, [r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + strh r4, [r0, #0x26] + ldr r0, _08033180 + movs r1, #0 + bl CreateTask + ldr r2, _08033184 + strb r0, [r2] + ldrb r1, [r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + strh r4, [r0, #0x20] + ldrb r1, [r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + strh r4, [r0, #0x22] + ldrb r1, [r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + strh r4, [r0, #0x24] + ldrb r1, [r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + strh r4, [r0, #0x26] + ldr r0, _08033188 + strb r6, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08033174: .4byte 0x0803330D +_08033178: .4byte 0x020229BC +_0803317C: .4byte 0x03005B60 +_08033180: .4byte 0x080335F5 +_08033184: .4byte 0x020229BD +_08033188: .4byte 0x020229BE + thumb_func_end CreateTasksForSendRecvLinkBuffers + + thumb_func_start PrepareBufferDataTransferLink +PrepareBufferDataTransferLink: @ 0x0803318C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sb, r2 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov ip, r1 + movs r1, #3 + mov r0, ip + bics r0, r1 + adds r0, #4 + mov r8, r0 + ldr r2, _080332EC + ldr r3, _080332F0 + ldrb r1, [r3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r4, r0, r2 + movs r1, #0x24 + ldrsh r0, [r4, r1] + add r0, r8 + adds r0, #9 + movs r1, #0x80 + lsls r1, r1, #5 + adds r5, r2, #0 + cmp r0, r1 + ble _080331DE + ldrh r0, [r4, #0x24] + movs r2, #0 + strh r0, [r4, #0x20] + ldrb r1, [r3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + strh r2, [r0, #0x24] +_080331DE: + ldrb r1, [r3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r2, #0x24 + ldrsh r1, [r0, r2] + ldr r4, _080332F4 + ldr r0, [r4] + adds r0, r0, r1 + strb r6, [r0] + ldrb r1, [r3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r7, #0x24 + ldrsh r1, [r0, r7] + ldr r0, [r4] + adds r1, r1, r0 + ldr r0, _080332F8 + ldrb r0, [r0] + strb r0, [r1, #1] + ldrb r1, [r3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r2, #0x24 + ldrsh r1, [r0, r2] + ldr r0, [r4] + adds r1, r1, r0 + ldr r0, _080332FC + ldrb r0, [r0] + strb r0, [r1, #2] + ldrb r1, [r3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r7, #0x24 + ldrsh r1, [r0, r7] + ldr r0, [r4] + adds r1, r1, r0 + ldr r0, _08033300 + ldrb r0, [r0] + strb r0, [r1, #3] + ldrb r1, [r3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r1, #0x24 + ldrsh r0, [r0, r1] + ldr r1, [r4] + adds r0, r0, r1 + mov r2, r8 + strb r2, [r0, #4] + ldrb r1, [r3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r7, #0x24 + ldrsh r1, [r0, r7] + ldr r0, [r4] + adds r1, r1, r0 + movs r0, #0xff + lsls r0, r0, #8 + mov r2, r8 + ands r0, r2 + asrs r0, r0, #8 + strb r0, [r1, #5] + ldrb r1, [r3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r7, #0x24 + ldrsh r1, [r0, r7] + ldr r0, [r4] + adds r1, r1, r0 + ldr r0, _08033304 + ldrb r0, [r0] + strb r0, [r1, #6] + ldrb r1, [r3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r2, #0x24 + ldrsh r1, [r0, r2] + ldr r0, [r4] + adds r1, r1, r0 + ldr r0, _08033308 + ldrb r0, [r0] + strb r0, [r1, #7] + movs r2, #0 + cmp r2, ip + bge _080332CC + mov sl, r5 + adds r6, r3, #0 +_080332AA: + ldrb r1, [r6] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + add r0, sl + movs r7, #0x24 + ldrsh r1, [r0, r7] + ldr r0, [r4] + adds r1, r2, r1 + adds r1, r1, r0 + mov r7, sb + adds r0, r7, r2 + ldrb r0, [r0] + strb r0, [r1, #8] + adds r2, #1 + cmp r2, ip + blt _080332AA +_080332CC: + ldrb r0, [r3] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r5 + ldrh r0, [r1, #0x24] + add r0, r8 + adds r0, #8 + strh r0, [r1, #0x24] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080332EC: .4byte 0x03005B60 +_080332F0: .4byte 0x020229BC +_080332F4: .4byte 0x02024144 +_080332F8: .4byte 0x02023D08 +_080332FC: .4byte 0x02023EAF +_08033300: .4byte 0x02023EB0 +_08033304: .4byte 0x02023EB4 +_08033308: .4byte 0x02023EB2 + thumb_func_end PrepareBufferDataTransferLink + + thumb_func_start Task_HandleSendLinkBuffersData +Task_HandleSendLinkBuffersData: @ 0x0803330C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08033334 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #0x1e + ldrsh r0, [r0, r2] + adds r7, r1, #0 + cmp r0, #5 + bls _08033328 + b _080334D8 +_08033328: + lsls r0, r0, #2 + ldr r1, _08033338 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08033334: .4byte 0x03005B60 +_08033338: .4byte 0x0803333C +_0803333C: @ jump table + .4byte _08033354 @ case 0 + .4byte _08033362 @ case 1 + .4byte _0803337E @ case 2 + .4byte _08033408 @ case 3 + .4byte _0803347E @ case 4 + .4byte _080334BC @ case 5 +_08033354: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r7 + movs r1, #0x64 + strh r1, [r0, #0x1c] + b _0803338E +_08033362: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r1, r0, r7 + ldrh r0, [r1, #0x1c] + subs r0, #1 + strh r0, [r1, #0x1c] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08033378 + b _080334D8 +_08033378: + ldrh r0, [r1, #0x1e] + adds r0, #1 + b _080334D6 +_0803337E: + ldr r0, _08033398 + ldrb r0, [r0] + cmp r0, #0 + beq _0803339C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r7 +_0803338E: + ldrh r1, [r0, #0x1e] + adds r1, #1 + strh r1, [r0, #0x1e] + b _080334D8 + .align 2, 0 +_08033398: .4byte 0x0300319C +_0803339C: + ldr r0, _080333B0 + ldr r1, [r0] + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080333B4 + movs r5, #2 + b _080333C2 + .align 2, 0 +_080333B0: .4byte 0x02022C90 +_080333B4: + movs r0, #0x40 + ands r1, r0 + movs r0, #2 + cmp r1, #0 + beq _080333C0 + movs r0, #4 +_080333C0: + adds r5, r0, #0 +_080333C2: + bl GetLinkPlayerCount_2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r5 + bhs _080333D0 + b _080334D8 +_080333D0: + bl IsLinkMaster + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080333F4 + bl CheckShouldAdvanceLinkState + ldr r0, _080333F0 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x1e] + adds r0, #1 + b _080334D6 + .align 2, 0 +_080333F0: .4byte 0x03005B60 +_080333F4: + ldr r0, _08033404 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x1e] + adds r0, #1 + b _080334D6 + .align 2, 0 +_08033404: .4byte 0x03005B60 +_08033408: + lsls r1, r4, #2 + adds r0, r1, r4 + lsls r0, r0, #3 + adds r2, r0, r7 + movs r3, #0x26 + ldrsh r5, [r2, r3] + movs r0, #0x24 + ldrsh r6, [r2, r0] + mov ip, r6 + cmp r5, ip + beq _080334D8 + ldrh r0, [r2, #0x22] + movs r6, #0x22 + ldrsh r3, [r2, r6] + cmp r3, #0 + bne _08033478 + cmp r5, ip + ble _08033438 + movs r6, #0x20 + ldrsh r0, [r2, r6] + cmp r5, r0 + bne _08033438 + strh r3, [r2, #0x20] + strh r3, [r2, #0x26] +_08033438: + adds r4, r1, r4 + lsls r4, r4, #3 + adds r4, r4, r7 + movs r0, #0x26 + ldrsh r1, [r4, r0] + ldr r5, _08033474 + ldr r0, [r5] + adds r1, r1, r0 + ldrb r0, [r1, #4] + ldrb r1, [r1, #5] + lsls r1, r1, #8 + orrs r0, r1 + adds r0, #8 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + bl bitmask_all_link_players_but_self + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x26 + ldrsh r2, [r4, r1] + ldr r1, [r5] + adds r1, r1, r2 + adds r2, r6, #0 + bl SendBlock + ldrh r0, [r4, #0x1e] + adds r0, #1 + strh r0, [r4, #0x1e] + b _080334D8 + .align 2, 0 +_08033474: .4byte 0x02024144 +_08033478: + subs r0, #1 + strh r0, [r2, #0x22] + b _080334D8 +_0803347E: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080334D8 + ldr r0, _080334B4 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r3, #0x26 + ldrsh r2, [r1, r3] + ldr r0, _080334B8 + ldr r0, [r0] + adds r2, r2, r0 + ldrb r0, [r2, #4] + ldrb r2, [r2, #5] + lsls r2, r2, #8 + movs r3, #1 + strh r3, [r1, #0x22] + orrs r0, r2 + ldrh r6, [r1, #0x26] + adds r0, r0, r6 + adds r0, #8 + strh r0, [r1, #0x26] + b _080334D4 + .align 2, 0 +_080334B4: .4byte 0x03005B60 +_080334B8: .4byte 0x02024144 +_080334BC: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r1, r0, r7 + ldrh r0, [r1, #0x22] + subs r0, #1 + strh r0, [r1, #0x22] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080334D8 + movs r0, #1 + strh r0, [r1, #0x22] +_080334D4: + movs r0, #3 +_080334D6: + strh r0, [r1, #0x1e] +_080334D8: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Task_HandleSendLinkBuffersData + + thumb_func_start sub_080334E0 +sub_080334E0: @ 0x080334E0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _0803350C + ldrb r0, [r0] + cmp r0, #0 + beq _080335D0 + ldr r0, _08033510 + ldr r0, [r0] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080335D0 + bl sub_080116BC + movs r4, #0 + ldr r0, _08033514 + mov sl, r0 + b _080335C4 + .align 2, 0 +_0803350C: .4byte 0x030031C4 +_08033510: .4byte 0x02022C90 +_08033514: .4byte 0x0202207C +_08033518: + bl GetBlockReceivedStatus + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080335E0 + lsls r1, r4, #2 + adds r1, r1, r2 + ldr r1, [r1] + ands r0, r1 + adds r1, r4, #1 + mov sb, r1 + cmp r0, #0 + beq _080335BE + adds r0, r4, #0 + bl ResetBlockReceivedFlag + lsls r0, r4, #8 + mov r4, sl + adds r3, r0, r4 + ldr r1, _080335E4 + adds r0, r0, r1 + ldrh r6, [r0] + ldr r7, _080335E8 + ldr r4, _080335EC + mov ip, r4 + ldrb r1, [r4] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r2, r0, r7 + movs r0, #0x24 + ldrsh r1, [r2, r0] + adds r0, r6, #0 + adds r0, #9 + adds r1, r1, r0 + movs r0, #0x80 + lsls r0, r0, #5 + cmp r1, r0 + ble _08033578 + ldrh r0, [r2, #0x24] + strh r0, [r2, #0x20] + ldrb r1, [r4] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r7 + movs r1, #0 + strh r1, [r0, #0x24] +_08033578: + ldr r2, _080335F0 + mov r4, ip + ldrb r1, [r4] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r7 + movs r4, #0x24 + ldrsh r1, [r0, r4] + ldr r0, [r2] + adds r5, r0, r1 + adds r4, r3, #0 + movs r2, #0 + adds r3, r6, #0 + adds r3, #8 + mov r8, r7 + mov r7, ip + cmp r2, r3 + bge _080335AC +_0803359E: + adds r0, r5, r2 + adds r1, r4, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, r3 + blt _0803359E +_080335AC: + ldrb r0, [r7] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + add r1, r8 + ldrh r0, [r1, #0x24] + adds r0, r6, r0 + adds r0, #8 + strh r0, [r1, #0x24] +_080335BE: + mov r1, sb + lsls r0, r1, #0x18 + lsrs r4, r0, #0x18 +_080335C4: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + blo _08033518 +_080335D0: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080335E0: .4byte 0x082FACB4 +_080335E4: .4byte 0x02022080 +_080335E8: .4byte 0x03005B60 +_080335EC: .4byte 0x020229BD +_080335F0: .4byte 0x02024148 + thumb_func_end sub_080334E0 + + thumb_func_start Task_HandleCopyReceivedLinkBuffersData +Task_HandleCopyReceivedLinkBuffersData: @ 0x080335F4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r1, _0803365C + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r3, r0, r1 + movs r0, #0x26 + ldrsh r2, [r3, r0] + movs r4, #0x24 + ldrsh r0, [r3, r4] + cmp r2, r0 + bne _08033618 + b _08033734 +_08033618: + cmp r2, r0 + ble _0803362A + movs r4, #0x20 + ldrsh r0, [r3, r4] + cmp r2, r0 + bne _0803362A + movs r0, #0 + strh r0, [r3, #0x20] + strh r0, [r3, #0x26] +_0803362A: + lsls r2, r7, #2 + adds r0, r2, r7 + lsls r0, r0, #3 + adds r5, r0, r1 + movs r0, #0x26 + ldrsh r1, [r5, r0] + ldr r3, _08033660 + mov r8, r3 + ldr r0, [r3] + adds r3, r1, r0 + ldrb r4, [r3, #1] + ldrb r6, [r3, #4] + ldrb r0, [r3, #5] + lsls r0, r0, #8 + orrs r6, r0 + ldrb r0, [r3] + mov sb, r2 + cmp r0, #1 + beq _080336F4 + cmp r0, #1 + bgt _08033664 + cmp r0, #0 + beq _0803366A + b _08033722 + .align 2, 0 +_0803365C: .4byte 0x03005B60 +_08033660: .4byte 0x02024148 +_08033664: + cmp r0, #2 + beq _0803370C + b _08033722 +_0803366A: + ldr r2, _080336D4 + ldr r1, _080336D8 + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _08033734 + lsls r0, r4, #9 + ldr r1, _080336DC + adds r0, r0, r1 + adds r1, r3, #0 + adds r1, #8 + adds r2, r6, #0 + bl memcpy + adds r0, r4, #0 + bl sub_0803F490 + ldr r0, _080336E0 + ldr r0, [r0] + movs r1, #4 + ands r0, r1 + cmp r0, #0 + bne _08033722 + ldr r2, _080336E4 + movs r4, #0x26 + ldrsh r0, [r5, r4] + mov r3, r8 + ldr r1, [r3] + adds r0, r0, r1 + ldrb r0, [r0, #2] + strb r0, [r2] + ldr r2, _080336E8 + movs r4, #0x26 + ldrsh r0, [r5, r4] + adds r0, r0, r1 + ldrb r0, [r0, #3] + strb r0, [r2] + ldr r2, _080336EC + movs r3, #0x26 + ldrsh r0, [r5, r3] + adds r0, r0, r1 + ldrb r0, [r0, #6] + strb r0, [r2] + ldr r2, _080336F0 + movs r4, #0x26 + ldrsh r0, [r5, r4] + adds r0, r0, r1 + ldrb r0, [r0, #7] + strb r0, [r2] + b _08033722 + .align 2, 0 +_080336D4: .4byte 0x02023D0C +_080336D8: .4byte 0x082FACB4 +_080336DC: .4byte 0x02022D08 +_080336E0: .4byte 0x02022C90 +_080336E4: .4byte 0x02023EAF +_080336E8: .4byte 0x02023EB0 +_080336EC: .4byte 0x02023EB4 +_080336F0: .4byte 0x02023EB2 +_080336F4: + lsls r0, r4, #9 + ldr r1, _08033708 + adds r0, r0, r1 + adds r1, r3, #0 + adds r1, #8 + adds r2, r6, #0 + bl memcpy + b _08033722 + .align 2, 0 +_08033708: .4byte 0x02023508 +_0803370C: + ldrb r2, [r3, #8] + ldr r3, _08033740 + ldr r1, _08033744 + lsls r0, r4, #2 + adds r0, r0, r1 + lsls r2, r2, #2 + ldr r1, [r0] + lsls r1, r2 + ldr r0, [r3] + bics r0, r1 + str r0, [r3] +_08033722: + ldr r0, _08033748 + mov r2, sb + adds r1, r2, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x26] + adds r0, r6, r0 + adds r0, #8 + strh r0, [r1, #0x26] +_08033734: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08033740: .4byte 0x02023D0C +_08033744: .4byte 0x082FACB4 +_08033748: .4byte 0x03005B60 + thumb_func_end Task_HandleCopyReceivedLinkBuffersData + + thumb_func_start BtlController_EmitGetMonData +BtlController_EmitGetMonData: @ 0x0803374C + push {r4, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0803376C + movs r3, #0 + strb r3, [r1] + strb r4, [r1, #1] + strb r2, [r1, #2] + strb r3, [r1, #3] + movs r2, #4 + bl PrepareBufferDataTransfer + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803376C: .4byte 0x020229C4 + thumb_func_end BtlController_EmitGetMonData + + thumb_func_start BtlController_EmitGetRawMonData +BtlController_EmitGetRawMonData: @ 0x08033770 + push {r4, r5, lr} + adds r5, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08033794 + movs r4, #0 + movs r3, #1 + strb r3, [r1] + strb r5, [r1, #1] + strb r2, [r1, #2] + strb r4, [r1, #3] + movs r2, #4 + bl PrepareBufferDataTransfer + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08033794: .4byte 0x020229C4 + thumb_func_end BtlController_EmitGetRawMonData + + thumb_func_start BtlController_EmitSetMonData +BtlController_EmitSetMonData: @ 0x08033798 + push {r4, r5, r6, lr} + ldr r4, [sp, #0x10] + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r3, r3, #0x18 + lsrs r5, r3, #0x18 + ldr r0, _080337D4 + movs r3, #2 + strb r3, [r0] + strb r1, [r0, #1] + strb r2, [r0, #2] + adds r1, r0, #0 + cmp r5, #0 + beq _080337C6 + adds r3, r1, #3 + adds r2, r5, #0 +_080337B8: + ldrb r0, [r4] + strb r0, [r3] + adds r4, #1 + adds r3, #1 + subs r2, #1 + cmp r2, #0 + bne _080337B8 +_080337C6: + adds r2, r5, #3 + adds r0, r6, #0 + bl PrepareBufferDataTransfer + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080337D4: .4byte 0x020229C4 + thumb_func_end BtlController_EmitSetMonData + + thumb_func_start BtlController_EmitSetRawMonData +BtlController_EmitSetRawMonData: @ 0x080337D8 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r2, r2, #0x18 + lsrs r4, r2, #0x18 + ldr r0, _08033814 + movs r2, #3 + strb r2, [r0] + strb r1, [r0, #1] + strb r4, [r0, #2] + adds r5, r0, #0 + cmp r4, #0 + beq _08033804 + adds r1, r5, #3 + adds r2, r4, #0 +_080337F6: + ldrb r0, [r3] + strb r0, [r1] + adds r3, #1 + adds r1, #1 + subs r2, #1 + cmp r2, #0 + bne _080337F6 +_08033804: + adds r2, r4, #3 + adds r0, r6, #0 + adds r1, r5, #0 + bl PrepareBufferDataTransfer + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08033814: .4byte 0x020229C4 + thumb_func_end BtlController_EmitSetRawMonData + + thumb_func_start BtlController_EmitLoadMonSprite +BtlController_EmitLoadMonSprite: @ 0x08033818 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08033834 + movs r2, #4 + strb r2, [r1] + strb r2, [r1, #1] + strb r2, [r1, #2] + strb r2, [r1, #3] + bl PrepareBufferDataTransfer + pop {r0} + bx r0 + .align 2, 0 +_08033834: .4byte 0x020229C4 + thumb_func_end BtlController_EmitLoadMonSprite + + thumb_func_start BtlController_EmitSwitchInAnim +BtlController_EmitSwitchInAnim: @ 0x08033838 + push {r4, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08033858 + movs r3, #5 + strb r3, [r1] + strb r4, [r1, #1] + strb r2, [r1, #2] + strb r3, [r1, #3] + movs r2, #4 + bl PrepareBufferDataTransfer + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08033858: .4byte 0x020229C4 + thumb_func_end BtlController_EmitSwitchInAnim + + thumb_func_start BtlController_EmitReturnMonToBall +BtlController_EmitReturnMonToBall: @ 0x0803385C + push {lr} + adds r3, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08033878 + movs r2, #6 + strb r2, [r1] + strb r3, [r1, #1] + movs r2, #2 + bl PrepareBufferDataTransfer + pop {r0} + bx r0 + .align 2, 0 +_08033878: .4byte 0x020229C4 + thumb_func_end BtlController_EmitReturnMonToBall + + thumb_func_start BtlController_EmitDrawTrainerPic +BtlController_EmitDrawTrainerPic: @ 0x0803387C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08033898 + movs r2, #7 + strb r2, [r1] + strb r2, [r1, #1] + strb r2, [r1, #2] + strb r2, [r1, #3] + movs r2, #4 + bl PrepareBufferDataTransfer + pop {r0} + bx r0 + .align 2, 0 +_08033898: .4byte 0x020229C4 + thumb_func_end BtlController_EmitDrawTrainerPic + + thumb_func_start BtlController_EmitTrainerSlide +BtlController_EmitTrainerSlide: @ 0x0803389C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080338B8 + movs r2, #8 + strb r2, [r1] + strb r2, [r1, #1] + strb r2, [r1, #2] + strb r2, [r1, #3] + movs r2, #4 + bl PrepareBufferDataTransfer + pop {r0} + bx r0 + .align 2, 0 +_080338B8: .4byte 0x020229C4 + thumb_func_end BtlController_EmitTrainerSlide + + thumb_func_start BtlController_EmitTrainerSlideBack +BtlController_EmitTrainerSlideBack: @ 0x080338BC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080338D8 + movs r2, #9 + strb r2, [r1] + strb r2, [r1, #1] + strb r2, [r1, #2] + strb r2, [r1, #3] + movs r2, #4 + bl PrepareBufferDataTransfer + pop {r0} + bx r0 + .align 2, 0 +_080338D8: .4byte 0x020229C4 + thumb_func_end BtlController_EmitTrainerSlideBack + + thumb_func_start BtlController_EmitFaintAnimation +BtlController_EmitFaintAnimation: @ 0x080338DC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080338F8 + movs r2, #0xa + strb r2, [r1] + strb r2, [r1, #1] + strb r2, [r1, #2] + strb r2, [r1, #3] + movs r2, #4 + bl PrepareBufferDataTransfer + pop {r0} + bx r0 + .align 2, 0 +_080338F8: .4byte 0x020229C4 + thumb_func_end BtlController_EmitFaintAnimation + + thumb_func_start BtlController_EmitPaletteFade +BtlController_EmitPaletteFade: @ 0x080338FC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08033918 + movs r2, #0xb + strb r2, [r1] + strb r2, [r1, #1] + strb r2, [r1, #2] + strb r2, [r1, #3] + movs r2, #4 + bl PrepareBufferDataTransfer + pop {r0} + bx r0 + .align 2, 0 +_08033918: .4byte 0x020229C4 + thumb_func_end BtlController_EmitPaletteFade + + thumb_func_start BtlController_EmitSuccessBallThrowAnim +BtlController_EmitSuccessBallThrowAnim: @ 0x0803391C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08033938 + movs r2, #0xc + strb r2, [r1] + strb r2, [r1, #1] + strb r2, [r1, #2] + strb r2, [r1, #3] + movs r2, #4 + bl PrepareBufferDataTransfer + pop {r0} + bx r0 + .align 2, 0 +_08033938: .4byte 0x020229C4 + thumb_func_end BtlController_EmitSuccessBallThrowAnim + + thumb_func_start BtlController_EmitBallThrowAnim +BtlController_EmitBallThrowAnim: @ 0x0803393C + push {lr} + adds r3, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08033958 + movs r2, #0xd + strb r2, [r1] + strb r3, [r1, #1] + movs r2, #2 + bl PrepareBufferDataTransfer + pop {r0} + bx r0 + .align 2, 0 +_08033958: .4byte 0x020229C4 + thumb_func_end BtlController_EmitBallThrowAnim + + thumb_func_start BtlController_EmitPause +BtlController_EmitPause: @ 0x0803395C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + ldr r1, _080339A0 + movs r0, #0xe + strb r0, [r1] + strb r4, [r1, #1] + lsls r0, r4, #1 + adds r0, r0, r4 + adds r5, r1, #0 + cmp r0, #0 + beq _0803398A + adds r1, r5, #2 + adds r3, r0, #0 +_0803397C: + ldrb r0, [r2] + strb r0, [r1] + adds r2, #1 + adds r1, #1 + subs r3, #1 + cmp r3, #0 + bne _0803397C +_0803398A: + lsls r2, r4, #1 + adds r2, r2, r4 + adds r2, #2 + adds r0, r6, #0 + adds r1, r5, #0 + bl PrepareBufferDataTransfer + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080339A0: .4byte 0x020229C4 + thumb_func_end BtlController_EmitPause + + thumb_func_start BtlController_EmitMoveAnimation +BtlController_EmitMoveAnimation: @ 0x080339A4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + ldr r4, [sp, #0x20] + ldr r5, [sp, #0x24] + ldr r6, [sp, #0x2c] + mov r8, r6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + ldr r7, _08033A3C + movs r0, #0 + mov ip, r0 + movs r0, #0xf + strb r0, [r7] + strb r1, [r7, #1] + lsrs r1, r1, #8 + strb r1, [r7, #2] + strb r2, [r7, #3] + strb r3, [r7, #4] + movs r6, #0xff + lsls r6, r6, #8 + lsrs r3, r3, #8 + strb r3, [r7, #5] + strb r4, [r7, #6] + adds r0, r4, #0 + ands r0, r6 + asrs r0, r0, #8 + strb r0, [r7, #7] + movs r0, #0xff + lsls r0, r0, #0x10 + ands r0, r4 + asrs r0, r0, #0x10 + strb r0, [r7, #8] + lsrs r4, r4, #0x18 + strb r4, [r7, #9] + strb r5, [r7, #0xa] + mov r0, r8 + strb r0, [r7, #0xb] + mov r0, ip + str r0, [sp] + movs r0, #0xe + movs r1, #0 + movs r2, #0xd + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _08033A44 + str r0, [sp] + movs r0, #0xe + movs r1, #0 + movs r2, #0x4d + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08033A44 + ldr r0, _08033A40 + ldrh r0, [r0] + strb r0, [r7, #0xc] + ands r6, r0 + lsrs r0, r6, #8 + strb r0, [r7, #0xd] + adds r4, r7, #0 + b _08033A4E + .align 2, 0 +_08033A3C: .4byte 0x020229C4 +_08033A40: .4byte 0x02024070 +_08033A44: + ldr r0, _08033A78 + movs r1, #0 + strb r1, [r0, #0xc] + strb r1, [r0, #0xd] + adds r4, r0, #0 +_08033A4E: + movs r0, #0 + strb r0, [r4, #0xe] + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x10 + ldr r1, [sp, #0x28] + movs r2, #0x1c + bl memcpy + mov r0, sb + adds r1, r4, #0 + movs r2, #0x2c + bl PrepareBufferDataTransfer + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08033A78: .4byte 0x020229C4 + thumb_func_end BtlController_EmitMoveAnimation + + thumb_func_start BtlController_EmitPrintString +BtlController_EmitPrintString: @ 0x08033A7C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r2, _08033B40 + movs r0, #0x10 + strb r0, [r2] + ldr r0, _08033B44 + ldrb r0, [r0] + strb r0, [r2, #1] + strb r1, [r2, #2] + lsrs r1, r1, #8 + strb r1, [r2, #3] + adds r0, r2, #4 + mov ip, r0 + ldr r4, _08033B48 + ldrh r0, [r4] + strh r0, [r2, #4] + ldr r0, _08033B4C + ldrh r0, [r0] + mov r1, ip + strh r0, [r1, #2] + ldr r0, _08033B50 + ldrh r0, [r0] + strh r0, [r1, #4] + ldr r0, _08033B54 + ldrb r0, [r0] + strb r0, [r1, #6] + ldr r0, _08033B58 + ldrb r0, [r0, #0x17] + strb r0, [r1, #7] + ldr r0, _08033B5C + ldr r0, [r0] + adds r1, r0, #0 + adds r1, #0x52 + ldrb r1, [r1] + mov r3, ip + strb r1, [r3, #8] + adds r0, #0xb1 + ldrb r0, [r0] + strb r0, [r3, #9] + ldr r0, _08033B60 + ldrb r0, [r0] + strb r0, [r3, #0xa] + ldr r3, _08033B64 + ldrh r1, [r4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0, #2] + mov r1, ip + strb r0, [r1, #0xb] + movs r3, #0 + adds r7, r2, #0 + adds r2, #0x10 + ldr r0, _08033B68 + adds r4, r0, #0 + adds r4, #0x20 +_08033AFA: + adds r1, r2, r3 + ldrb r0, [r4] + strb r0, [r1] + adds r4, #0x58 + adds r3, #1 + cmp r3, #3 + ble _08033AFA + movs r3, #0 + mov r4, ip + adds r4, #0x10 + ldr r6, _08033B6C + mov r2, ip + adds r2, #0x20 + ldr r5, _08033B70 +_08033B16: + adds r1, r4, r3 + adds r0, r3, r6 + ldrb r0, [r0] + strb r0, [r1] + adds r1, r2, r3 + adds r0, r3, r5 + ldrb r0, [r0] + strb r0, [r1] + adds r3, #1 + cmp r3, #0xf + ble _08033B16 + mov r0, r8 + adds r1, r7, #0 + movs r2, #0x34 + bl PrepareBufferDataTransfer + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08033B40: .4byte 0x020229C4 +_08033B44: .4byte 0x02023FDE +_08033B48: .4byte 0x02023E8E +_08033B4C: .4byte 0x02023E90 +_08033B50: .4byte 0x02023EAC +_08033B54: .4byte 0x02023EAE +_08033B58: .4byte 0x02024118 +_08033B5C: .4byte 0x02024140 +_08033B60: .4byte 0x02023EB3 +_08033B64: .4byte 0x082ED220 +_08033B68: .4byte 0x02023D28 +_08033B6C: .4byte 0x02022C0C +_08033B70: .4byte 0x02022C1C + thumb_func_end BtlController_EmitPrintString + + thumb_func_start BtlController_EmitPrintSelectionString +BtlController_EmitPrintSelectionString: @ 0x08033B74 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r2, _08033C14 + movs r0, #0x11 + strb r0, [r2] + strb r0, [r2, #1] + strb r1, [r2, #2] + lsrs r1, r1, #8 + strb r1, [r2, #3] + adds r0, r2, #4 + mov ip, r0 + ldr r0, _08033C18 + ldrh r0, [r0] + strh r0, [r2, #4] + ldr r0, _08033C1C + ldrh r0, [r0] + mov r1, ip + strh r0, [r1, #2] + ldr r0, _08033C20 + ldrh r0, [r0] + strh r0, [r1, #4] + ldr r0, _08033C24 + ldrb r0, [r0] + strb r0, [r1, #6] + ldr r0, _08033C28 + ldrb r0, [r0, #0x17] + strb r0, [r1, #7] + ldr r0, _08033C2C + ldr r0, [r0] + adds r0, #0x52 + ldrb r0, [r0] + strb r0, [r1, #8] + movs r3, #0 + adds r7, r2, #0 + adds r4, r7, #0 + adds r4, #0x10 + ldr r0, _08033C30 + adds r2, r0, #0 + adds r2, #0x20 +_08033BCE: + adds r1, r4, r3 + ldrb r0, [r2] + strb r0, [r1] + adds r2, #0x58 + adds r3, #1 + cmp r3, #3 + ble _08033BCE + movs r3, #0 + mov r4, ip + adds r4, #0x10 + ldr r6, _08033C34 + mov r2, ip + adds r2, #0x20 + ldr r5, _08033C38 +_08033BEA: + adds r1, r4, r3 + adds r0, r3, r6 + ldrb r0, [r0] + strb r0, [r1] + adds r1, r2, r3 + adds r0, r3, r5 + ldrb r0, [r0] + strb r0, [r1] + adds r3, #1 + cmp r3, #0xf + ble _08033BEA + mov r0, r8 + adds r1, r7, #0 + movs r2, #0x34 + bl PrepareBufferDataTransfer + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08033C14: .4byte 0x020229C4 +_08033C18: .4byte 0x02023E8E +_08033C1C: .4byte 0x02023E90 +_08033C20: .4byte 0x02023EAC +_08033C24: .4byte 0x02023EAE +_08033C28: .4byte 0x02024118 +_08033C2C: .4byte 0x02024140 +_08033C30: .4byte 0x02023D28 +_08033C34: .4byte 0x02022C0C +_08033C38: .4byte 0x02022C1C + thumb_func_end BtlController_EmitPrintSelectionString + + thumb_func_start BtlController_EmitChooseAction +BtlController_EmitChooseAction: @ 0x08033C3C + push {r4, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldr r1, _08033C64 + movs r3, #0x12 + strb r3, [r1] + strb r4, [r1, #1] + strb r2, [r1, #2] + lsrs r2, r2, #8 + strb r2, [r1, #3] + movs r2, #4 + bl PrepareBufferDataTransfer + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08033C64: .4byte 0x020229C4 + thumb_func_end BtlController_EmitChooseAction + + thumb_func_start BtlController_EmitUnknownYesNoBox +BtlController_EmitUnknownYesNoBox: @ 0x08033C68 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08033C84 + movs r2, #0x13 + strb r2, [r1] + strb r2, [r1, #1] + strb r2, [r1, #2] + strb r2, [r1, #3] + movs r2, #4 + bl PrepareBufferDataTransfer + pop {r0} + bx r0 + .align 2, 0 +_08033C84: .4byte 0x020229C4 + thumb_func_end BtlController_EmitUnknownYesNoBox + + thumb_func_start BtlController_EmitChooseMove +BtlController_EmitChooseMove: @ 0x08033C88 + push {r4, r5, r6, lr} + adds r5, r3, #0 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r3, _08033CC0 + movs r4, #0 + movs r0, #0x14 + strb r0, [r3] + strb r1, [r3, #1] + strb r2, [r3, #2] + strb r4, [r3, #3] + movs r2, #0 + adds r1, r3, #0 + adds r4, r1, #4 +_08033CA4: + adds r0, r5, r2 + ldrb r0, [r0] + strb r0, [r4] + adds r4, #1 + adds r2, #1 + cmp r2, #0x13 + bls _08033CA4 + adds r0, r6, #0 + movs r2, #0x18 + bl PrepareBufferDataTransfer + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08033CC0: .4byte 0x020229C4 + thumb_func_end BtlController_EmitChooseMove + + thumb_func_start BtlController_EmitChooseItem +BtlController_EmitChooseItem: @ 0x08033CC4 + push {r4, r5, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _08033CF4 + movs r0, #0x15 + strb r0, [r1] + movs r2, #0 + adds r3, r1, #1 +_08033CD6: + adds r0, r4, r2 + ldrb r0, [r0] + strb r0, [r3] + adds r3, #1 + adds r2, #1 + cmp r2, #2 + ble _08033CD6 + adds r0, r5, #0 + movs r2, #4 + bl PrepareBufferDataTransfer + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08033CF4: .4byte 0x020229C4 + thumb_func_end BtlController_EmitChooseItem + + thumb_func_start BtlController_EmitChoosePokemon +BtlController_EmitChoosePokemon: @ 0x08033CF8 + push {r4, r5, r6, lr} + ldr r6, [sp, #0x10] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r4, _08033D30 + movs r0, #0x16 + strb r0, [r4] + strb r1, [r4, #1] + strb r2, [r4, #2] + strb r3, [r4, #3] + movs r2, #0 + adds r1, r4, #0 + adds r3, r1, #4 +_08033D12: + adds r0, r6, r2 + ldrb r0, [r0] + strb r0, [r3] + adds r3, #1 + adds r2, #1 + cmp r2, #2 + ble _08033D12 + adds r0, r5, #0 + movs r2, #8 + bl PrepareBufferDataTransfer + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08033D30: .4byte 0x020229C4 + thumb_func_end BtlController_EmitChoosePokemon + + thumb_func_start BtlController_EmitCmd23 +BtlController_EmitCmd23: @ 0x08033D34 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08033D50 + movs r2, #0x17 + strb r2, [r1] + strb r2, [r1, #1] + strb r2, [r1, #2] + strb r2, [r1, #3] + movs r2, #4 + bl PrepareBufferDataTransfer + pop {r0} + bx r0 + .align 2, 0 +_08033D50: .4byte 0x020229C4 + thumb_func_end BtlController_EmitCmd23 + + thumb_func_start BtlController_EmitHealthBarUpdate +BtlController_EmitHealthBarUpdate: @ 0x08033D54 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r3, _08033D88 + movs r4, #0 + movs r2, #0x18 + strb r2, [r3] + strb r4, [r3, #1] + strb r1, [r3, #2] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r2, #0xff + lsls r2, r2, #8 + ands r1, r2 + asrs r1, r1, #8 + strb r1, [r3, #3] + adds r1, r3, #0 + movs r2, #4 + bl PrepareBufferDataTransfer + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08033D88: .4byte 0x020229C4 + thumb_func_end BtlController_EmitHealthBarUpdate + + thumb_func_start BtlController_EmitExpUpdate +BtlController_EmitExpUpdate: @ 0x08033D8C + push {r4, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldr r1, _08033DBC + movs r3, #0x19 + strb r3, [r1] + strb r4, [r1, #1] + strb r2, [r1, #2] + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + movs r3, #0xff + lsls r3, r3, #8 + ands r2, r3 + asrs r2, r2, #8 + strb r2, [r1, #3] + movs r2, #4 + bl PrepareBufferDataTransfer + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08033DBC: .4byte 0x020229C4 + thumb_func_end BtlController_EmitExpUpdate + + thumb_func_start BtlController_EmitStatusIconUpdate +BtlController_EmitStatusIconUpdate: @ 0x08033DC0 + push {r4, r5, r6, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08033E10 + movs r3, #0x1a + strb r3, [r1] + strb r4, [r1, #1] + movs r6, #0xff + lsls r6, r6, #8 + adds r3, r4, #0 + ands r3, r6 + lsrs r3, r3, #8 + strb r3, [r1, #2] + movs r5, #0xff + lsls r5, r5, #0x10 + adds r3, r4, #0 + ands r3, r5 + lsrs r3, r3, #0x10 + strb r3, [r1, #3] + lsrs r4, r4, #0x18 + strb r4, [r1, #4] + strb r2, [r1, #5] + adds r3, r2, #0 + ands r3, r6 + lsrs r3, r3, #8 + strb r3, [r1, #6] + adds r3, r2, #0 + ands r3, r5 + lsrs r3, r3, #0x10 + strb r3, [r1, #7] + lsrs r2, r2, #0x18 + strb r2, [r1, #8] + movs r2, #9 + bl PrepareBufferDataTransfer + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08033E10: .4byte 0x020229C4 + thumb_func_end BtlController_EmitStatusIconUpdate + + thumb_func_start BtlController_EmitStatusAnimation +BtlController_EmitStatusAnimation: @ 0x08033E14 + push {r4, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08033E4C + movs r3, #0x1b + strb r3, [r1] + strb r4, [r1, #1] + strb r2, [r1, #2] + movs r3, #0xff + lsls r3, r3, #8 + ands r3, r2 + lsrs r3, r3, #8 + strb r3, [r1, #3] + movs r3, #0xff + lsls r3, r3, #0x10 + ands r3, r2 + lsrs r3, r3, #0x10 + strb r3, [r1, #4] + lsrs r2, r2, #0x18 + strb r2, [r1, #5] + movs r2, #6 + bl PrepareBufferDataTransfer + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08033E4C: .4byte 0x020229C4 + thumb_func_end BtlController_EmitStatusAnimation + + thumb_func_start BtlController_EmitStatusXor +BtlController_EmitStatusXor: @ 0x08033E50 + push {lr} + adds r3, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08033E6C + movs r2, #0x1c + strb r2, [r1] + strb r3, [r1, #1] + movs r2, #2 + bl PrepareBufferDataTransfer + pop {r0} + bx r0 + .align 2, 0 +_08033E6C: .4byte 0x020229C4 + thumb_func_end BtlController_EmitStatusXor + + thumb_func_start BtlController_EmitDataTransfer +BtlController_EmitDataTransfer: @ 0x08033E70 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + ldr r1, _08033EB4 + movs r0, #0x1d + strb r0, [r1] + strb r0, [r1, #1] + strb r4, [r1, #2] + lsrs r0, r4, #8 + strb r0, [r1, #3] + adds r5, r1, #0 + cmp r4, #0 + beq _08033EA0 + adds r1, r5, #4 + adds r3, r4, #0 +_08033E92: + ldrb r0, [r2] + strb r0, [r1] + adds r2, #1 + adds r1, #1 + subs r3, #1 + cmp r3, #0 + bne _08033E92 +_08033EA0: + adds r2, r4, #4 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + adds r0, r6, #0 + adds r1, r5, #0 + bl PrepareBufferDataTransfer + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08033EB4: .4byte 0x020229C4 + thumb_func_end BtlController_EmitDataTransfer + + thumb_func_start BtlController_EmitDMA3Transfer +BtlController_EmitDMA3Transfer: @ 0x08033EB8 + push {r4, r5, r6, lr} + adds r4, r3, #0 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r2, r2, #0x10 + lsrs r5, r2, #0x10 + ldr r2, _08033F1C + movs r0, #0x1e + strb r0, [r2] + strb r1, [r2, #1] + movs r3, #0xff + lsls r3, r3, #8 + adds r0, r1, #0 + ands r0, r3 + lsrs r0, r0, #8 + strb r0, [r2, #2] + movs r0, #0xff + lsls r0, r0, #0x10 + ands r0, r1 + lsrs r0, r0, #0x10 + strb r0, [r2, #3] + lsrs r1, r1, #0x18 + strb r1, [r2, #4] + strb r5, [r2, #5] + adds r0, r5, #0 + ands r0, r3 + lsrs r0, r0, #8 + strb r0, [r2, #6] + adds r1, r2, #0 + cmp r5, #0 + beq _08033F08 + adds r3, r1, #7 + adds r2, r5, #0 +_08033EFA: + ldrb r0, [r4] + strb r0, [r3] + adds r4, #1 + adds r3, #1 + subs r2, #1 + cmp r2, #0 + bne _08033EFA +_08033F08: + adds r2, r5, #7 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + adds r0, r6, #0 + bl PrepareBufferDataTransfer + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08033F1C: .4byte 0x020229C4 + thumb_func_end BtlController_EmitDMA3Transfer + + thumb_func_start BtlController_EmitPlayBGM +BtlController_EmitPlayBGM: @ 0x08033F20 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + ldr r1, _08033F64 + movs r0, #0x1f + strb r0, [r1] + strb r4, [r1, #1] + lsrs r0, r4, #8 + strb r0, [r1, #2] + adds r5, r1, #0 + cmp r4, #0 + beq _08033F4E + adds r1, r5, #3 + adds r3, r4, #0 +_08033F40: + ldrb r0, [r2] + strb r0, [r1] + adds r2, #1 + adds r1, #1 + subs r3, #1 + cmp r3, #0 + bne _08033F40 +_08033F4E: + adds r2, r4, #3 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + adds r0, r6, #0 + adds r1, r5, #0 + bl PrepareBufferDataTransfer + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08033F64: .4byte 0x020229C4 + thumb_func_end BtlController_EmitPlayBGM + + thumb_func_start BtlController_EmitCmd32 +BtlController_EmitCmd32: @ 0x08033F68 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + ldr r1, _08033FAC + movs r0, #0x20 + strb r0, [r1] + strb r4, [r1, #1] + lsrs r0, r4, #8 + strb r0, [r1, #2] + adds r5, r1, #0 + cmp r4, #0 + beq _08033F96 + adds r1, r5, #3 + adds r3, r4, #0 +_08033F88: + ldrb r0, [r2] + strb r0, [r1] + adds r2, #1 + adds r1, #1 + subs r3, #1 + cmp r3, #0 + bne _08033F88 +_08033F96: + adds r2, r4, #3 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + adds r0, r6, #0 + adds r1, r5, #0 + bl PrepareBufferDataTransfer + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08033FAC: .4byte 0x020229C4 + thumb_func_end BtlController_EmitCmd32 + + thumb_func_start BtlController_EmitTwoReturnValues +BtlController_EmitTwoReturnValues: @ 0x08033FB0 + push {r4, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldr r1, _08033FD8 + movs r3, #0x21 + strb r3, [r1] + strb r4, [r1, #1] + strb r2, [r1, #2] + lsrs r2, r2, #8 + strb r2, [r1, #3] + movs r2, #4 + bl PrepareBufferDataTransfer + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08033FD8: .4byte 0x020229C4 + thumb_func_end BtlController_EmitTwoReturnValues + + thumb_func_start BtlController_EmitChosenMonReturnValue +BtlController_EmitChosenMonReturnValue: @ 0x08033FDC + push {r4, r5, lr} + adds r4, r2, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r2, _08034010 + movs r0, #0x22 + strb r0, [r2] + strb r1, [r2, #1] + movs r3, #0 + adds r1, r2, #2 +_08033FF0: + adds r0, r4, r3 + ldrb r0, [r0] + strb r0, [r1] + adds r1, #1 + adds r3, #1 + cmp r3, #2 + ble _08033FF0 + adds r0, r5, #0 + adds r1, r2, #0 + movs r2, #5 + bl PrepareBufferDataTransfer + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08034010: .4byte 0x020229C4 + thumb_func_end BtlController_EmitChosenMonReturnValue + + thumb_func_start BtlController_EmitOneReturnValue +BtlController_EmitOneReturnValue: @ 0x08034014 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r3, _0803403C + movs r4, #0 + movs r2, #0x23 + strb r2, [r3] + strb r1, [r3, #1] + lsrs r1, r1, #8 + strb r1, [r3, #2] + strb r4, [r3, #3] + adds r1, r3, #0 + movs r2, #4 + bl PrepareBufferDataTransfer + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803403C: .4byte 0x020229C4 + thumb_func_end BtlController_EmitOneReturnValue + + thumb_func_start BtlController_EmitOneReturnValue_Duplicate +BtlController_EmitOneReturnValue_Duplicate: @ 0x08034040 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r3, _08034068 + movs r4, #0 + movs r2, #0x24 + strb r2, [r3] + strb r1, [r3, #1] + lsrs r1, r1, #8 + strb r1, [r3, #2] + strb r4, [r3, #3] + adds r1, r3, #0 + movs r2, #4 + bl PrepareBufferDataTransfer + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08034068: .4byte 0x020229C4 + thumb_func_end BtlController_EmitOneReturnValue_Duplicate + + thumb_func_start BtlController_EmitCmd37 +BtlController_EmitCmd37: @ 0x0803406C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08034088 + movs r2, #0x25 + strb r2, [r1] + strb r2, [r1, #1] + strb r2, [r1, #2] + strb r2, [r1, #3] + movs r2, #4 + bl PrepareBufferDataTransfer + pop {r0} + bx r0 + .align 2, 0 +_08034088: .4byte 0x020229C4 + thumb_func_end BtlController_EmitCmd37 + + thumb_func_start BtlController_EmitCmd38 +BtlController_EmitCmd38: @ 0x0803408C + push {lr} + adds r3, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080340A8 + movs r2, #0x26 + strb r2, [r1] + strb r3, [r1, #1] + movs r2, #2 + bl PrepareBufferDataTransfer + pop {r0} + bx r0 + .align 2, 0 +_080340A8: .4byte 0x020229C4 + thumb_func_end BtlController_EmitCmd38 + + thumb_func_start BtlController_EmitCmd39 +BtlController_EmitCmd39: @ 0x080340AC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080340C8 + movs r2, #0x27 + strb r2, [r1] + strb r2, [r1, #1] + strb r2, [r1, #2] + strb r2, [r1, #3] + movs r2, #4 + bl PrepareBufferDataTransfer + pop {r0} + bx r0 + .align 2, 0 +_080340C8: .4byte 0x020229C4 + thumb_func_end BtlController_EmitCmd39 + + thumb_func_start BtlController_EmitCmd40 +BtlController_EmitCmd40: @ 0x080340CC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080340E8 + movs r2, #0x28 + strb r2, [r1] + strb r2, [r1, #1] + strb r2, [r1, #2] + strb r2, [r1, #3] + movs r2, #4 + bl PrepareBufferDataTransfer + pop {r0} + bx r0 + .align 2, 0 +_080340E8: .4byte 0x020229C4 + thumb_func_end BtlController_EmitCmd40 + + thumb_func_start BtlController_EmitHitAnimation +BtlController_EmitHitAnimation: @ 0x080340EC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08034108 + movs r2, #0x29 + strb r2, [r1] + strb r2, [r1, #1] + strb r2, [r1, #2] + strb r2, [r1, #3] + movs r2, #4 + bl PrepareBufferDataTransfer + pop {r0} + bx r0 + .align 2, 0 +_08034108: .4byte 0x020229C4 + thumb_func_end BtlController_EmitHitAnimation + + thumb_func_start BtlController_EmitCmd42 +BtlController_EmitCmd42: @ 0x0803410C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08034128 + movs r2, #0x2a + strb r2, [r1] + strb r2, [r1, #1] + strb r2, [r1, #2] + strb r2, [r1, #3] + movs r2, #4 + bl PrepareBufferDataTransfer + pop {r0} + bx r0 + .align 2, 0 +_08034128: .4byte 0x020229C4 + thumb_func_end BtlController_EmitCmd42 + + thumb_func_start BtlController_EmitPlaySE +BtlController_EmitPlaySE: @ 0x0803412C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r3, _08034154 + movs r4, #0 + movs r2, #0x2b + strb r2, [r3] + strb r1, [r3, #1] + lsrs r1, r1, #8 + strb r1, [r3, #2] + strb r4, [r3, #3] + adds r1, r3, #0 + movs r2, #4 + bl PrepareBufferDataTransfer + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08034154: .4byte 0x020229C4 + thumb_func_end BtlController_EmitPlaySE + + thumb_func_start BtlController_EmitPlayFanfareOrBGM +BtlController_EmitPlayFanfareOrBGM: @ 0x08034158 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r4, _08034180 + movs r3, #0x2c + strb r3, [r4] + strb r1, [r4, #1] + lsrs r1, r1, #8 + strb r1, [r4, #2] + strb r2, [r4, #3] + adds r1, r4, #0 + movs r2, #4 + bl PrepareBufferDataTransfer + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08034180: .4byte 0x020229C4 + thumb_func_end BtlController_EmitPlayFanfareOrBGM + + thumb_func_start BtlController_EmitFaintingCry +BtlController_EmitFaintingCry: @ 0x08034184 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080341A0 + movs r2, #0x2d + strb r2, [r1] + strb r2, [r1, #1] + strb r2, [r1, #2] + strb r2, [r1, #3] + movs r2, #4 + bl PrepareBufferDataTransfer + pop {r0} + bx r0 + .align 2, 0 +_080341A0: .4byte 0x020229C4 + thumb_func_end BtlController_EmitFaintingCry + + thumb_func_start BtlController_EmitIntroSlide +BtlController_EmitIntroSlide: @ 0x080341A4 + push {lr} + adds r3, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080341C0 + movs r2, #0x2e + strb r2, [r1] + strb r3, [r1, #1] + movs r2, #2 + bl PrepareBufferDataTransfer + pop {r0} + bx r0 + .align 2, 0 +_080341C0: .4byte 0x020229C4 + thumb_func_end BtlController_EmitIntroSlide + + thumb_func_start BtlController_EmitIntroTrainerBallThrow +BtlController_EmitIntroTrainerBallThrow: @ 0x080341C4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080341E0 + movs r2, #0x2f + strb r2, [r1] + strb r2, [r1, #1] + strb r2, [r1, #2] + strb r2, [r1, #3] + movs r2, #4 + bl PrepareBufferDataTransfer + pop {r0} + bx r0 + .align 2, 0 +_080341E0: .4byte 0x020229C4 + thumb_func_end BtlController_EmitIntroTrainerBallThrow + + thumb_func_start BtlController_EmitDrawPartyStatusSummary +BtlController_EmitDrawPartyStatusSummary: @ 0x080341E4 + push {r4, r5, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r1, _08034228 + movs r3, #0x30 + strb r3, [r1] + movs r0, #0x7f + ands r0, r2 + strb r0, [r1, #1] + movs r0, #0x80 + ands r0, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1f + strb r0, [r1, #2] + strb r3, [r1, #3] + movs r2, #0 + adds r3, r1, #4 +_0803420C: + adds r0, r4, r2 + ldrb r0, [r0] + strb r0, [r3] + adds r3, #1 + adds r2, #1 + cmp r2, #0x2f + ble _0803420C + adds r0, r5, #0 + movs r2, #0x34 + bl PrepareBufferDataTransfer + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08034228: .4byte 0x020229C4 + thumb_func_end BtlController_EmitDrawPartyStatusSummary + + thumb_func_start BtlController_EmitHidePartyStatusSummary +BtlController_EmitHidePartyStatusSummary: @ 0x0803422C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08034248 + movs r2, #0x31 + strb r2, [r1] + strb r2, [r1, #1] + strb r2, [r1, #2] + strb r2, [r1, #3] + movs r2, #4 + bl PrepareBufferDataTransfer + pop {r0} + bx r0 + .align 2, 0 +_08034248: .4byte 0x020229C4 + thumb_func_end BtlController_EmitHidePartyStatusSummary + + thumb_func_start BtlController_EmitEndBounceEffect +BtlController_EmitEndBounceEffect: @ 0x0803424C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08034268 + movs r2, #0x32 + strb r2, [r1] + strb r2, [r1, #1] + strb r2, [r1, #2] + strb r2, [r1, #3] + movs r2, #4 + bl PrepareBufferDataTransfer + pop {r0} + bx r0 + .align 2, 0 +_08034268: .4byte 0x020229C4 + thumb_func_end BtlController_EmitEndBounceEffect + + thumb_func_start BtlController_EmitSpriteInvisibility +BtlController_EmitSpriteInvisibility: @ 0x0803426C + push {lr} + adds r3, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0803428C + movs r2, #0x33 + strb r2, [r1] + strb r3, [r1, #1] + strb r2, [r1, #2] + strb r2, [r1, #3] + movs r2, #4 + bl PrepareBufferDataTransfer + pop {r0} + bx r0 + .align 2, 0 +_0803428C: .4byte 0x020229C4 + thumb_func_end BtlController_EmitSpriteInvisibility + + thumb_func_start BtlController_EmitBattleAnimation +BtlController_EmitBattleAnimation: @ 0x08034290 + push {r4, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldr r1, _080342B8 + movs r3, #0x34 + strb r3, [r1] + strb r4, [r1, #1] + strb r2, [r1, #2] + lsrs r2, r2, #8 + strb r2, [r1, #3] + movs r2, #4 + bl PrepareBufferDataTransfer + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080342B8: .4byte 0x020229C4 + thumb_func_end BtlController_EmitBattleAnimation + + thumb_func_start BtlController_EmitLinkStandbyMsg +BtlController_EmitLinkStandbyMsg: @ 0x080342BC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r4, _080342E0 + movs r0, #0x35 + strb r0, [r4] + strb r1, [r4, #1] + cmp r2, #0 + beq _080342E4 + adds r0, r4, #4 + bl sub_08184F3C + strb r0, [r4, #2] + strb r0, [r4, #3] + b _080342E8 + .align 2, 0 +_080342E0: .4byte 0x020229C4 +_080342E4: + strb r2, [r4, #2] + strb r2, [r4, #3] +_080342E8: + ldr r1, _080342FC + ldrb r2, [r1, #2] + adds r2, #4 + adds r0, r5, #0 + bl PrepareBufferDataTransfer + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080342FC: .4byte 0x020229C4 + thumb_func_end BtlController_EmitLinkStandbyMsg + + thumb_func_start BtlController_EmitResetActionMoveSelection +BtlController_EmitResetActionMoveSelection: @ 0x08034300 + push {lr} + adds r3, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0803431C + movs r2, #0x36 + strb r2, [r1] + strb r3, [r1, #1] + movs r2, #2 + bl PrepareBufferDataTransfer + pop {r0} + bx r0 + .align 2, 0 +_0803431C: .4byte 0x020229C4 + thumb_func_end BtlController_EmitResetActionMoveSelection + + thumb_func_start BtlController_EmitCmd55 +BtlController_EmitCmd55: @ 0x08034320 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r4, _08034364 + movs r0, #0x37 + strb r0, [r4] + strb r1, [r4, #1] + ldr r0, _08034368 + ldr r1, [r0] + ldr r0, _0803436C + adds r1, r1, r0 + ldrb r0, [r1] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1f + strb r0, [r4, #2] + ldrb r0, [r1] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1f + strb r0, [r4, #3] + adds r0, r4, #6 + bl sub_08184F3C + strb r0, [r4, #4] + strb r0, [r4, #5] + ldrb r2, [r4, #4] + adds r2, #6 + adds r0, r5, #0 + adds r1, r4, #0 + bl PrepareBufferDataTransfer + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08034364: .4byte 0x020229C4 +_08034368: .4byte 0x03005AF0 +_0803436C: .4byte 0x00000CA9 + thumb_func_end BtlController_EmitCmd55 + diff --git a/asm/battle_dome.s b/asm/battle_dome.s new file mode 100644 index 0000000..73dbbbd --- /dev/null +++ b/asm/battle_dome.s @@ -0,0 +1,13896 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start InitDomeChallenge +InitDomeChallenge: @ 0x0818E628 + push {r4, r5, r6, r7, lr} + ldr r4, _0818E6BC + ldr r0, [r4] + ldr r1, _0818E6C0 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r5, r0, #0x1e + ldr r0, _0818E6C4 + bl VarGet + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + ldr r0, [r4] + ldr r2, _0818E6C8 + adds r0, r0, r2 + movs r6, #0 + strb r6, [r0] + ldr r1, [r4] + adds r2, #0xa + adds r0, r1, r2 + strh r6, [r0] + ldr r0, _0818E6C0 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r4] + ldr r2, _0818E6C0 + adds r1, r1, r2 + ldrb r2, [r1] + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r4, [r4] + ldr r0, _0818E6CC + adds r3, r4, r0 + ldr r2, _0818E6D0 + lsls r1, r5, #2 + lsls r0, r7, #3 + adds r1, r1, r0 + adds r1, r1, r2 + ldr r0, [r3] + ldr r1, [r1] + ands r0, r1 + cmp r0, #0 + bne _0818E69A + lsls r0, r5, #1 + lsls r1, r7, #2 + adds r0, r0, r1 + ldr r2, _0818E6D4 + adds r1, r4, r2 + adds r1, r1, r0 + strh r6, [r1] +_0818E69A: + ldr r0, _0818E6D8 + ldr r0, [r0] + movs r1, #4 + ldrsb r1, [r0, r1] + movs r2, #5 + ldrsb r2, [r0, r2] + movs r3, #1 + rsbs r3, r3, #0 + movs r0, #0 + bl SetDynamicWarp + ldr r0, _0818E6DC + strh r6, [r0] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0818E6BC: .4byte 0x03005AF0 +_0818E6C0: .4byte 0x00000CA9 +_0818E6C4: .4byte 0x000040CE +_0818E6C8: .4byte 0x00000CA8 +_0818E6CC: .4byte 0x00000CDC +_0818E6D0: .4byte 0x085D5B68 +_0818E6D4: .4byte 0x00000D0C +_0818E6D8: .4byte 0x03005AEC +_0818E6DC: .4byte 0x0203886A + thumb_func_end InitDomeChallenge + + thumb_func_start GetDomeData +GetDomeData: @ 0x0818E6E0 + push {r4, r5, r6, lr} + ldr r0, _0818E710 + ldr r0, [r0] + ldr r1, _0818E714 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r5, r0, #0x1e + ldr r0, _0818E718 + bl VarGet + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r0, _0818E71C + ldrh r0, [r0] + cmp r0, #9 + bls _0818E704 + b _0818E96C +_0818E704: + lsls r0, r0, #2 + ldr r1, _0818E720 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0818E710: .4byte 0x03005AF0 +_0818E714: .4byte 0x00000CA9 +_0818E718: .4byte 0x000040CE +_0818E71C: .4byte 0x02037282 +_0818E720: .4byte 0x0818E724 +_0818E724: @ jump table + .4byte _0818E74C @ case 0 + .4byte _0818E770 @ case 1 + .4byte _0818E7A4 @ case 2 + .4byte _0818E7C0 @ case 3 + .4byte _0818E7DC @ case 4 + .4byte _0818E7F4 @ case 5 + .4byte _0818E810 @ case 6 + .4byte _0818E89C @ case 7 + .4byte _0818E92C @ case 8 + .4byte _0818E950 @ case 9 +_0818E74C: + ldr r3, _0818E764 + ldr r0, _0818E768 + ldr r0, [r0] + lsls r1, r5, #1 + lsls r2, r6, #2 + adds r1, r1, r2 + ldr r2, _0818E76C + adds r0, r0, r2 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r3] + b _0818E96C + .align 2, 0 +_0818E764: .4byte 0x02037290 +_0818E768: .4byte 0x03005AF0 +_0818E76C: .4byte 0x00000D0C +_0818E770: + ldr r4, _0818E794 + ldr r0, _0818E798 + ldr r2, [r0] + ldr r3, _0818E79C + adds r2, r2, r3 + ldr r3, _0818E7A0 + lsls r0, r5, #2 + lsls r1, r6, #3 + adds r0, r0, r1 + adds r0, r0, r3 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + strh r0, [r4] + b _0818E96C + .align 2, 0 +_0818E794: .4byte 0x02037290 +_0818E798: .4byte 0x03005AF0 +_0818E79C: .4byte 0x00000CDC +_0818E7A0: .4byte 0x085D5B68 +_0818E7A4: + ldr r1, _0818E7B4 + ldr r0, _0818E7B8 + ldr r0, [r0] + ldr r2, _0818E7BC + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1f + b _0818E91A + .align 2, 0 +_0818E7B4: .4byte 0x02037290 +_0818E7B8: .4byte 0x03005AF0 +_0818E7BC: .4byte 0x00000D08 +_0818E7C0: + ldr r1, _0818E7D0 + ldr r0, _0818E7D4 + ldr r0, [r0] + ldr r3, _0818E7D8 + adds r0, r0, r3 + ldrb r0, [r0] + lsls r0, r0, #0x1e + b _0818E91A + .align 2, 0 +_0818E7D0: .4byte 0x02037290 +_0818E7D4: .4byte 0x03005AF0 +_0818E7D8: .4byte 0x00000D08 +_0818E7DC: + ldr r1, _0818E7E8 + ldr r0, _0818E7EC + ldr r0, [r0] + ldr r2, _0818E7F0 + adds r0, r0, r2 + b _0818E916 + .align 2, 0 +_0818E7E8: .4byte 0x02037290 +_0818E7EC: .4byte 0x03005AF0 +_0818E7F0: .4byte 0x00000D08 +_0818E7F4: + ldr r1, _0818E804 + ldr r0, _0818E808 + ldr r0, [r0] + ldr r3, _0818E80C + adds r0, r0, r3 + ldrb r0, [r0] + lsls r0, r0, #0x1c + b _0818E91A + .align 2, 0 +_0818E804: .4byte 0x02037290 +_0818E808: .4byte 0x03005AF0 +_0818E80C: .4byte 0x00000D08 +_0818E810: + ldr r0, _0818E834 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bne _0818E860 + cmp r5, #0 + beq _0818E844 + ldr r1, _0818E838 + ldr r0, _0818E83C + ldr r0, [r0] + ldr r2, _0818E840 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1a + b _0818E91A + .align 2, 0 +_0818E834: .4byte 0x000040CE +_0818E838: .4byte 0x02037290 +_0818E83C: .4byte 0x03005AF0 +_0818E840: .4byte 0x00000D08 +_0818E844: + ldr r1, _0818E854 + ldr r0, _0818E858 + ldr r0, [r0] + ldr r3, _0818E85C + adds r0, r0, r3 + ldrb r0, [r0] + lsls r0, r0, #0x1b + b _0818E91A + .align 2, 0 +_0818E854: .4byte 0x02037290 +_0818E858: .4byte 0x03005AF0 +_0818E85C: .4byte 0x00000D08 +_0818E860: + cmp r5, #0 + beq _0818E880 + ldr r1, _0818E874 + ldr r0, _0818E878 + ldr r0, [r0] + ldr r2, _0818E87C + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1e + b _0818E91A + .align 2, 0 +_0818E874: .4byte 0x02037290 +_0818E878: .4byte 0x03005AF0 +_0818E87C: .4byte 0x00000D08 +_0818E880: + ldr r1, _0818E890 + ldr r0, _0818E894 + ldr r0, [r0] + ldr r3, _0818E898 + adds r0, r0, r3 + ldrb r0, [r0] + lsls r0, r0, #0x1f + b _0818E91A + .align 2, 0 +_0818E890: .4byte 0x02037290 +_0818E894: .4byte 0x03005AF0 +_0818E898: .4byte 0x00000D08 +_0818E89C: + ldr r0, _0818E8C0 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bne _0818E8EC + cmp r5, #0 + beq _0818E8D0 + ldr r1, _0818E8C4 + ldr r0, _0818E8C8 + ldr r0, [r0] + ldr r2, _0818E8CC + adds r0, r0, r2 + ldrb r0, [r0] + lsrs r0, r0, #7 + strh r0, [r1] + b _0818E96C + .align 2, 0 +_0818E8C0: .4byte 0x000040CE +_0818E8C4: .4byte 0x02037290 +_0818E8C8: .4byte 0x03005AF0 +_0818E8CC: .4byte 0x00000D08 +_0818E8D0: + ldr r1, _0818E8E0 + ldr r0, _0818E8E4 + ldr r0, [r0] + ldr r3, _0818E8E8 + adds r0, r0, r3 + ldrb r0, [r0] + lsls r0, r0, #0x19 + b _0818E91A + .align 2, 0 +_0818E8E0: .4byte 0x02037290 +_0818E8E4: .4byte 0x03005AF0 +_0818E8E8: .4byte 0x00000D08 +_0818E8EC: + cmp r5, #0 + beq _0818E90C + ldr r1, _0818E900 + ldr r0, _0818E904 + ldr r0, [r0] + ldr r2, _0818E908 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1c + b _0818E91A + .align 2, 0 +_0818E900: .4byte 0x02037290 +_0818E904: .4byte 0x03005AF0 +_0818E908: .4byte 0x00000D08 +_0818E90C: + ldr r1, _0818E920 + ldr r0, _0818E924 + ldr r0, [r0] + ldr r3, _0818E928 + adds r0, r0, r3 +_0818E916: + ldrb r0, [r0] + lsls r0, r0, #0x1d +_0818E91A: + lsrs r0, r0, #0x1f + strh r0, [r1] + b _0818E96C + .align 2, 0 +_0818E920: .4byte 0x02037290 +_0818E924: .4byte 0x03005AF0 +_0818E928: .4byte 0x00000D08 +_0818E92C: + bl sub_081B81F8 + ldr r2, _0818E948 + ldr r0, _0818E94C + ldr r0, [r0] + movs r1, #0xcb + lsls r1, r1, #4 + adds r0, r0, r1 + ldrh r1, [r0] + strb r1, [r2] + ldrh r0, [r0] + lsrs r0, r0, #8 + strb r0, [r2, #1] + b _0818E96C + .align 2, 0 +_0818E948: .4byte 0x0203CBC4 +_0818E94C: .4byte 0x03005AF0 +_0818E950: + ldr r2, _0818E974 + ldr r0, _0818E978 + ldr r1, [r0] + ldr r3, _0818E97C + adds r0, r1, r3 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r3, #1 + adds r1, r1, r3 + ldr r3, _0818E980 + adds r0, r0, r3 + ldrb r1, [r1] + adds r0, r0, r1 + strh r0, [r2] +_0818E96C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0818E974: .4byte 0x02037290 +_0818E978: .4byte 0x03005AF0 +_0818E97C: .4byte 0x00000D0A +_0818E980: .4byte 0x0000FFFD + thumb_func_end GetDomeData + + thumb_func_start SetDomeData +SetDomeData: @ 0x0818E984 + push {r4, r5, lr} + ldr r0, _0818E9B4 + ldr r0, [r0] + ldr r1, _0818E9B8 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r4, r0, #0x1e + ldr r0, _0818E9BC + bl VarGet + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, _0818E9C0 + ldrh r0, [r0] + cmp r0, #8 + bls _0818E9A8 + b _0818EC7A +_0818E9A8: + lsls r0, r0, #2 + ldr r1, _0818E9C4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0818E9B4: .4byte 0x03005AF0 +_0818E9B8: .4byte 0x00000CA9 +_0818E9BC: .4byte 0x000040CE +_0818E9C0: .4byte 0x02037282 +_0818E9C4: .4byte 0x0818E9C8 +_0818E9C8: @ jump table + .4byte _0818E9EC @ case 0 + .4byte _0818EA10 @ case 1 + .4byte _0818EA6C @ case 2 + .4byte _0818EA90 @ case 3 + .4byte _0818EAB8 @ case 4 + .4byte _0818EAD4 @ case 5 + .4byte _0818EAFC @ case 6 + .4byte _0818EBAC @ case 7 + .4byte _0818EC64 @ case 8 +_0818E9EC: + ldr r0, _0818EA04 + ldr r2, [r0] + lsls r0, r4, #1 + lsls r1, r5, #2 + adds r0, r0, r1 + ldr r1, _0818EA08 + adds r2, r2, r1 + adds r2, r2, r0 + ldr r0, _0818EA0C + ldrh r0, [r0] + strh r0, [r2] + b _0818EC7A + .align 2, 0 +_0818EA04: .4byte 0x03005AF0 +_0818EA08: .4byte 0x00000D0C +_0818EA0C: .4byte 0x02037284 +_0818EA10: + ldr r0, _0818EA34 + ldrh r0, [r0] + cmp r0, #0 + beq _0818EA44 + ldr r0, _0818EA38 + ldr r2, [r0] + ldr r0, _0818EA3C + adds r2, r2, r0 + ldr r3, _0818EA40 + lsls r1, r4, #2 + lsls r0, r5, #3 + adds r1, r1, r0 + adds r1, r1, r3 + ldr r0, [r2] + ldr r1, [r1] + orrs r0, r1 + str r0, [r2] + b _0818EC7A + .align 2, 0 +_0818EA34: .4byte 0x02037284 +_0818EA38: .4byte 0x03005AF0 +_0818EA3C: .4byte 0x00000CDC +_0818EA40: .4byte 0x085D5B68 +_0818EA44: + ldr r0, _0818EA60 + ldr r2, [r0] + ldr r1, _0818EA64 + adds r2, r2, r1 + ldr r3, _0818EA68 + lsls r1, r4, #2 + lsls r0, r5, #3 + adds r1, r1, r0 + adds r1, r1, r3 + ldr r0, [r2] + ldr r1, [r1] + ands r0, r1 + str r0, [r2] + b _0818EC7A + .align 2, 0 +_0818EA60: .4byte 0x03005AF0 +_0818EA64: .4byte 0x00000CDC +_0818EA68: .4byte 0x085D5B78 +_0818EA6C: + ldr r0, _0818EA84 + ldr r2, [r0] + ldr r0, _0818EA88 + ldrb r0, [r0] + ldr r1, _0818EA8C + adds r2, r2, r1 + movs r1, #1 + ands r1, r0 + ldrb r3, [r2] + movs r0, #2 + rsbs r0, r0, #0 + b _0818EBD0 + .align 2, 0 +_0818EA84: .4byte 0x03005AF0 +_0818EA88: .4byte 0x02037284 +_0818EA8C: .4byte 0x00000D08 +_0818EA90: + ldr r0, _0818EAAC + ldr r3, [r0] + ldr r0, _0818EAB0 + ldrb r0, [r0] + ldr r2, _0818EAB4 + adds r3, r3, r2 + movs r1, #1 + ands r1, r0 + lsls r1, r1, #1 + ldrb r2, [r3] + movs r0, #3 + rsbs r0, r0, #0 + b _0818EC50 + .align 2, 0 +_0818EAAC: .4byte 0x03005AF0 +_0818EAB0: .4byte 0x02037284 +_0818EAB4: .4byte 0x00000D08 +_0818EAB8: + ldr r0, _0818EAC8 + ldr r3, [r0] + ldr r0, _0818EACC + ldrb r0, [r0] + ldr r1, _0818EAD0 + adds r3, r3, r1 + b _0818EC44 + .align 2, 0 +_0818EAC8: .4byte 0x03005AF0 +_0818EACC: .4byte 0x02037284 +_0818EAD0: .4byte 0x00000D08 +_0818EAD4: + ldr r0, _0818EAF0 + ldr r3, [r0] + ldr r0, _0818EAF4 + ldrb r0, [r0] + ldr r2, _0818EAF8 + adds r3, r3, r2 + movs r1, #1 + ands r1, r0 + lsls r1, r1, #3 + ldrb r2, [r3] + movs r0, #9 + rsbs r0, r0, #0 + b _0818EC50 + .align 2, 0 +_0818EAF0: .4byte 0x03005AF0 +_0818EAF4: .4byte 0x02037284 +_0818EAF8: .4byte 0x00000D08 +_0818EAFC: + ldr r0, _0818EB28 + bl VarGet + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #1 + bne _0818EB5C + cmp r4, #0 + beq _0818EB38 + ldr r0, _0818EB2C + ldr r3, [r0] + ldr r0, _0818EB30 + ldrb r0, [r0] + ldr r2, _0818EB34 + adds r3, r3, r2 + ands r1, r0 + lsls r1, r1, #5 + ldrb r2, [r3] + movs r0, #0x21 + rsbs r0, r0, #0 + b _0818EC50 + .align 2, 0 +_0818EB28: .4byte 0x000040CE +_0818EB2C: .4byte 0x03005AF0 +_0818EB30: .4byte 0x02037284 +_0818EB34: .4byte 0x00000D08 +_0818EB38: + ldr r0, _0818EB50 + ldr r3, [r0] + ldr r0, _0818EB54 + ldrb r0, [r0] + ldr r2, _0818EB58 + adds r3, r3, r2 + ands r1, r0 + lsls r1, r1, #4 + ldrb r2, [r3] + movs r0, #0x11 + rsbs r0, r0, #0 + b _0818EC50 + .align 2, 0 +_0818EB50: .4byte 0x03005AF0 +_0818EB54: .4byte 0x02037284 +_0818EB58: .4byte 0x00000D08 +_0818EB5C: + cmp r4, #0 + beq _0818EB88 + ldr r0, _0818EB7C + ldr r3, [r0] + ldr r0, _0818EB80 + ldrb r0, [r0] + ldr r1, _0818EB84 + adds r3, r3, r1 + movs r1, #1 + ands r1, r0 + lsls r1, r1, #1 + ldrb r2, [r3] + movs r0, #3 + rsbs r0, r0, #0 + b _0818EC50 + .align 2, 0 +_0818EB7C: .4byte 0x03005AF0 +_0818EB80: .4byte 0x02037284 +_0818EB84: .4byte 0x00000D08 +_0818EB88: + ldr r0, _0818EBA0 + ldr r2, [r0] + ldr r0, _0818EBA4 + ldrb r0, [r0] + ldr r1, _0818EBA8 + adds r2, r2, r1 + movs r1, #1 + ands r1, r0 + ldrb r3, [r2] + movs r0, #2 + rsbs r0, r0, #0 + b _0818EBD0 + .align 2, 0 +_0818EBA0: .4byte 0x03005AF0 +_0818EBA4: .4byte 0x02037284 +_0818EBA8: .4byte 0x00000D08 +_0818EBAC: + ldr r0, _0818EBD8 + bl VarGet + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #1 + bne _0818EC0C + cmp r4, #0 + beq _0818EBE8 + ldr r0, _0818EBDC + ldr r2, [r0] + ldr r0, _0818EBE0 + ldrb r1, [r0] + ldr r0, _0818EBE4 + adds r2, r2, r0 + lsls r1, r1, #7 + ldrb r3, [r2] + movs r0, #0x7f +_0818EBD0: + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + b _0818EC7A + .align 2, 0 +_0818EBD8: .4byte 0x000040CE +_0818EBDC: .4byte 0x03005AF0 +_0818EBE0: .4byte 0x02037284 +_0818EBE4: .4byte 0x00000D08 +_0818EBE8: + ldr r0, _0818EC00 + ldr r3, [r0] + ldr r0, _0818EC04 + ldrb r0, [r0] + ldr r2, _0818EC08 + adds r3, r3, r2 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r3] + movs r0, #0x41 + rsbs r0, r0, #0 + b _0818EC50 + .align 2, 0 +_0818EC00: .4byte 0x03005AF0 +_0818EC04: .4byte 0x02037284 +_0818EC08: .4byte 0x00000D08 +_0818EC0C: + cmp r4, #0 + beq _0818EC38 + ldr r0, _0818EC2C + ldr r3, [r0] + ldr r0, _0818EC30 + ldrb r0, [r0] + ldr r1, _0818EC34 + adds r3, r3, r1 + movs r1, #1 + ands r1, r0 + lsls r1, r1, #3 + ldrb r2, [r3] + movs r0, #9 + rsbs r0, r0, #0 + b _0818EC50 + .align 2, 0 +_0818EC2C: .4byte 0x03005AF0 +_0818EC30: .4byte 0x02037284 +_0818EC34: .4byte 0x00000D08 +_0818EC38: + ldr r0, _0818EC58 + ldr r3, [r0] + ldr r0, _0818EC5C + ldrb r0, [r0] + ldr r2, _0818EC60 + adds r3, r3, r2 +_0818EC44: + movs r1, #1 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r3] + movs r0, #5 + rsbs r0, r0, #0 +_0818EC50: + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _0818EC7A + .align 2, 0 +_0818EC58: .4byte 0x03005AF0 +_0818EC5C: .4byte 0x02037284 +_0818EC60: .4byte 0x00000D08 +_0818EC64: + ldr r0, _0818EC80 + ldr r2, [r0] + ldr r0, _0818EC84 + ldrb r1, [r0] + ldrb r0, [r0, #1] + lsls r0, r0, #8 + orrs r1, r0 + movs r0, #0xcb + lsls r0, r0, #4 + adds r2, r2, r0 + strh r1, [r2] +_0818EC7A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0818EC80: .4byte 0x03005AF0 +_0818EC84: .4byte 0x0203CBC4 + thumb_func_end SetDomeData + + thumb_func_start InitDomeTrainers +InitDomeTrainers: @ 0x0818EC88 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x3c + movs r0, #0 + str r0, [sp, #8] + str r0, [sp, #0xc] + str r0, [sp, #0x10] + movs r0, #0x20 + bl AllocZeroed + str r0, [sp, #0x18] + movs r0, #0x18 + bl AllocZeroed + str r0, [sp, #0x1c] + ldr r4, _0818EE48 + ldr r1, [r4] + ldr r2, _0818EE4C + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + adds r0, #1 + ldr r3, _0818EE50 + adds r1, r1, r3 + strb r0, [r1] + ldr r0, _0818EE54 + bl VarGet + ldr r1, [r4] + adds r0, #1 + ldr r5, _0818EE58 + adds r1, r1, r5 + strb r0, [r1] + ldr r2, [r4] + ldr r7, _0818EE5C + adds r3, r2, r7 + ldrh r0, [r3] + ldr r5, _0818EE60 + adds r1, r5, #0 + orrs r0, r1 + strh r0, [r3] + ldr r3, _0818EE64 + adds r2, r2, r3 + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldr r1, [r4] + adds r1, r1, r3 + ldrb r2, [r1] + movs r0, #0x19 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r4] + adds r1, r1, r3 + ldrb r2, [r1] + movs r0, #0x1f + ands r0, r2 + strb r0, [r1] + movs r7, #0 + mov sl, r7 + mov r8, r4 + ldr r0, _0818EE68 + mov sb, r0 + movs r4, #0 +_0818ED16: + mov r1, r8 + ldr r0, [r1] + ldr r2, _0818EE6C + adds r0, r0, r2 + adds r0, r0, r4 + ldrh r0, [r0] + movs r3, #0x64 + muls r0, r3, r0 + add r0, sb + movs r1, #0xb + movs r2, #0 + bl GetMonData + mov r5, r8 + ldr r1, [r5] + ldr r7, _0818EE70 + adds r1, r1, r7 + adds r1, r1, r4 + strh r0, [r1] + movs r5, #0 + mov r0, sl + lsls r7, r0, #4 + adds r6, r7, #0 +_0818ED44: + mov r1, r8 + ldr r0, [r1] + ldr r2, _0818EE6C + adds r0, r0, r2 + adds r0, r0, r4 + ldrh r0, [r0] + movs r3, #0x64 + muls r0, r3, r0 + add r0, sb + adds r1, r5, #0 + adds r1, #0xd + movs r2, #0 + bl GetMonData + mov r2, r8 + ldr r1, [r2] + ldr r3, _0818EE74 + adds r1, r1, r3 + adds r1, r1, r6 + strh r0, [r1] + adds r6, #2 + adds r5, #1 + cmp r5, #3 + ble _0818ED44 + movs r5, #0 + ldr r6, _0818EE48 +_0818ED78: + ldr r0, [r6] + ldr r1, _0818EE6C + adds r0, r0, r1 + adds r0, r0, r4 + ldrh r0, [r0] + movs r2, #0x64 + muls r0, r2, r0 + add r0, sb + adds r1, r5, #0 + adds r1, #0x1a + movs r2, #0 + bl GetMonData + ldr r1, [r6] + adds r2, r5, r7 + ldr r3, _0818EE78 + adds r1, r1, r3 + adds r1, r1, r2 + strb r0, [r1] + adds r5, #1 + cmp r5, #5 + ble _0818ED78 + mov r5, r8 + ldr r0, [r5] + ldr r1, _0818EE6C + adds r0, r0, r1 + adds r0, r0, r4 + ldrh r0, [r0] + movs r2, #0x64 + muls r0, r2, r0 + add r0, sb + bl GetNature + ldr r1, [r5] + adds r1, r1, r7 + ldr r3, _0818EE7C + adds r1, r1, r3 + strb r0, [r1] + adds r4, #2 + movs r5, #1 + add sl, r5 + mov r7, sl + cmp r7, #2 + ble _0818ED16 + mov sl, r5 + movs r0, #4 + str r0, [sp, #0x34] + movs r1, #6 + str r1, [sp, #0x38] +_0818EDDA: + mov r2, sl + cmp r2, #5 + ble _0818EE88 +_0818EDE0: + bl GetCurrentFacilityWinStreak + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl sub_0816245C + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r5, #1 + cmp r5, sl + bge _0818EE26 + ldr r3, _0818EE48 + ldr r0, [r3] + ldr r7, _0818EE80 + adds r0, r0, r7 + ldrh r0, [r0] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + adds r2, r3, #0 + cmp r0, r4 + beq _0818EE26 + ldr r3, _0818EE5C +_0818EE0E: + adds r5, #1 + cmp r5, sl + bge _0818EE26 + ldr r0, [r2] + lsls r1, r5, #2 + adds r0, r0, r1 + adds r0, r0, r3 + ldrh r0, [r0] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + cmp r0, r4 + bne _0818EE0E +_0818EE26: + cmp r5, sl + bne _0818EDE0 + ldr r0, _0818EE48 + ldr r3, [r0] + ldr r1, [sp, #0x34] + adds r3, r3, r1 + ldr r2, _0818EE5C + adds r3, r3, r2 + ldr r5, _0818EE60 + adds r0, r5, #0 + adds r2, r4, #0 + ands r2, r0 + ldrh r0, [r3] + ldr r7, _0818EE84 + adds r1, r7, #0 + b _0818EEEE + .align 2, 0 +_0818EE48: .4byte 0x03005AF0 +_0818EE4C: .4byte 0x00000CA9 +_0818EE50: .4byte 0x00000D0A +_0818EE54: .4byte 0x000040CE +_0818EE58: .4byte 0x00000D0B +_0818EE5C: .4byte 0x00000D24 +_0818EE60: .4byte 0x000003FF +_0818EE64: .4byte 0x00000D25 +_0818EE68: .4byte 0x0202412C +_0818EE6C: .4byte 0x00000CAA +_0818EE70: .4byte 0x00000D64 +_0818EE74: .4byte 0x00000EFC +_0818EE78: .4byte 0x00000F04 +_0818EE7C: .4byte 0x00000F0A +_0818EE80: .4byte 0x00000D28 +_0818EE84: .4byte 0xFFFFFC00 +_0818EE88: + bl GetCurrentFacilityWinStreak + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl sub_0816245C + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r5, #1 + cmp r5, sl + bge _0818EED0 + ldr r1, _0818F22C + ldr r0, [r1] + ldr r2, _0818F230 + adds r0, r0, r2 + ldrh r0, [r0] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + adds r2, r1, #0 + cmp r0, r4 + beq _0818EED0 + ldr r3, _0818F234 +_0818EEB8: + adds r5, #1 + cmp r5, sl + bge _0818EED0 + ldr r0, [r2] + lsls r1, r5, #2 + adds r0, r0, r1 + adds r0, r0, r3 + ldrh r0, [r0] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + cmp r0, r4 + bne _0818EEB8 +_0818EED0: + cmp r5, sl + bne _0818EE88 + ldr r5, _0818F22C + ldr r3, [r5] + ldr r7, [sp, #0x34] + adds r3, r3, r7 + ldr r0, _0818F234 + adds r3, r3, r0 + ldr r1, _0818F238 + adds r0, r1, #0 + adds r2, r4, #0 + ands r2, r0 + ldrh r0, [r3] + ldr r5, _0818F23C + adds r1, r5, #0 +_0818EEEE: + ands r0, r1 + orrs r0, r2 + strh r0, [r3] + movs r5, #0 + lsls r4, r4, #0x10 + str r4, [sp, #0x2c] + ldr r7, [sp, #0x38] + str r7, [sp, #0x20] +_0818EEFE: + lsls r0, r5, #1 + mov sb, r0 + adds r1, r5, #1 + str r1, [sp, #0x24] + lsls r2, r5, #2 + str r2, [sp, #0x28] +_0818EF0A: + ldr r3, [sp, #0x2c] + lsrs r0, r3, #0x10 + bl RandomizeFacilityTrainerMonSet + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + movs r7, #0 + cmp r7, r5 + bge _0818EF5C + ldr r0, _0818F22C + ldr r0, [r0] + ldr r1, [sp, #8] + mov r8, r1 + ldr r2, [sp, #0xc] + mov ip, r2 + ldr r3, _0818F240 + adds r0, r0, r3 + ldr r1, [sp, #0x20] + adds r4, r1, r0 +_0818EF30: + ldrh r3, [r4] + cmp r3, r6 + beq _0818EF5C + ldr r2, _0818F244 + ldr r1, [r2] + lsls r0, r6, #4 + adds r2, r0, r1 + ldrh r0, [r2] + cmp r8, r0 + beq _0818EF5C + cmp ip, r0 + beq _0818EF5C + lsls r0, r3, #4 + adds r0, r0, r1 + ldrb r0, [r0, #0xa] + ldrb r2, [r2, #0xa] + cmp r0, r2 + beq _0818EF5C + adds r4, #2 + adds r7, #1 + cmp r7, r5 + blt _0818EF30 +_0818EF5C: + cmp r7, r5 + bne _0818EF0A + ldr r3, _0818F22C + ldr r0, [r3] + ldr r1, [sp, #0x38] + add r1, sb + ldr r5, _0818F240 + adds r0, r0, r5 + adds r0, r0, r1 + strh r6, [r0] + ldr r2, [sp, #0x28] + add r2, sp + adds r2, #8 + ldr r0, _0818F244 + ldr r1, [r0] + lsls r0, r6, #4 + adds r0, r0, r1 + ldrh r0, [r0] + str r0, [r2] + ldr r5, [sp, #0x24] + cmp r5, #2 + ble _0818EEFE + ldr r2, [r3] + ldr r7, [sp, #0x34] + adds r2, r2, r7 + ldr r0, _0818F248 + adds r2, r2, r0 + ldrb r0, [r2] + movs r3, #5 + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r0, r1 + strb r0, [r2] + ldr r5, _0818F22C + ldr r2, [r5] + adds r2, r2, r7 + ldr r7, _0818F248 + adds r2, r2, r7 + ldrb r0, [r2] + subs r3, #0x14 + adds r1, r3, #0 + ands r0, r1 + strb r0, [r2] + ldr r1, [r5] + ldr r5, [sp, #0x34] + adds r1, r1, r5 + adds r1, r1, r7 + ldrb r2, [r1] + movs r0, #0x1f + ands r0, r2 + strb r0, [r1] + adds r5, #4 + str r5, [sp, #0x34] + ldr r7, [sp, #0x38] + adds r7, #6 + str r7, [sp, #0x38] + movs r0, #1 + add sl, r0 + mov r1, sl + cmp r1, #0xf + bgt _0818EFD8 + b _0818EDDA +_0818EFD8: + movs r7, #0 + ldr r2, [sp, #0x18] + strh r7, [r2] + movs r3, #0 + mov sl, r3 + ldr r6, _0818F24C + ldr r5, _0818F250 +_0818EFE6: + ldr r0, _0818F22C + ldr r0, [r0] + mov r2, sl + lsls r1, r2, #1 + ldr r3, _0818F254 + adds r0, r0, r3 + adds r0, r0, r1 + ldrh r0, [r0] + subs r4, r0, #1 + movs r0, #0x64 + muls r4, r0, r4 + ldr r0, _0818F258 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x3b + movs r2, #0 + bl GetMonData + ldr r2, [sp, #0x18] + ldrh r1, [r2] + adds r1, r1, r0 + strh r1, [r2] + adds r0, r4, #0 + movs r1, #0x3c + movs r2, #0 + bl GetMonData + ldr r3, [sp, #0x18] + ldrh r1, [r3] + adds r1, r1, r0 + strh r1, [r3] + adds r0, r4, #0 + movs r1, #0x3e + movs r2, #0 + bl GetMonData + ldr r2, [sp, #0x18] + ldrh r1, [r2] + adds r1, r1, r0 + strh r1, [r2] + adds r0, r4, #0 + movs r1, #0x3f + movs r2, #0 + bl GetMonData + ldr r3, [sp, #0x18] + ldrh r1, [r3] + adds r1, r1, r0 + strh r1, [r3] + adds r0, r4, #0 + movs r1, #0x3d + movs r2, #0 + bl GetMonData + ldr r2, [sp, #0x18] + ldrh r1, [r2] + adds r1, r1, r0 + strh r1, [r2] + adds r0, r4, #0 + movs r1, #0x3a + movs r2, #0 + bl GetMonData + ldr r3, [sp, #0x18] + ldrh r1, [r3] + adds r1, r1, r0 + strh r1, [r3] + adds r0, r4, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrb r0, [r1, #6] + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r0, [r0] + orrs r7, r0 + adds r0, r4, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrb r0, [r1, #7] + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r0, [r0] + orrs r7, r0 + movs r0, #1 + add sl, r0 + mov r1, sl + cmp r1, #2 + ble _0818EFE6 + movs r4, #0 + movs r1, #1 + movs r5, #0x1f +_0818F0B4: + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0 + beq _0818F0BE + adds r4, #1 +_0818F0BE: + asrs r7, r7, #1 + subs r5, #1 + cmp r5, #0 + bge _0818F0B4 + bl SetFacilityPtrsGetLevel + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x14] + adds r2, r0, #0 + adds r0, r4, #0 + muls r0, r2, r0 + movs r1, #0x14 + bl __divsi3 + ldr r3, [sp, #0x18] + ldrh r1, [r3] + adds r1, r1, r0 + strh r1, [r3] + movs r5, #1 + mov sl, r5 + adds r6, r3, #0 + adds r6, #2 + movs r7, #2 + str r7, [sp, #0x30] +_0818F0F0: + movs r7, #0 + strh r7, [r6] + ldr r1, _0818F22C + ldr r0, [r1] + mov r2, sl + lsls r1, r2, #2 + adds r0, r0, r1 + ldr r3, _0818F234 + adds r0, r0, r3 + ldrh r0, [r0] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + bl GetDomeTrainerMonIvs + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r5, #0 + ldr r0, [sp, #0x30] + mov sb, r0 +_0818F118: + ldr r1, _0818F22C + ldr r0, [r1] + mov r4, sb + add r4, sl + adds r4, r4, r5 + lsls r4, r4, #1 + ldr r2, _0818F240 + adds r0, r0, r2 + adds r0, r0, r4 + ldrh r1, [r0] + ldr r3, _0818F244 + ldr r0, [r3] + lsls r1, r1, #4 + adds r1, r1, r0 + ldrh r0, [r1] + ldrb r3, [r1, #0xb] + ldrb r1, [r1, #0xc] + str r1, [sp] + ldr r1, [sp, #0x1c] + str r1, [sp, #4] + ldr r1, [sp, #0x14] + mov r2, r8 + bl CalcDomeMonStats + ldr r2, [sp, #0x1c] + ldr r1, [r2, #4] + ldrh r0, [r6] + adds r0, r0, r1 + ldr r1, [r2, #8] + adds r0, r0, r1 + ldr r1, [r2, #0x10] + adds r0, r0, r1 + ldr r1, [r2, #0x14] + adds r0, r0, r1 + ldr r1, [r2, #0xc] + adds r0, r0, r1 + ldr r1, [r2] + adds r0, r0, r1 + strh r0, [r6] + ldr r3, _0818F22C + ldr r0, [r3] + ldr r1, _0818F240 + adds r0, r0, r1 + adds r0, r0, r4 + ldrh r0, [r0] + ldr r2, _0818F244 + ldr r1, [r2] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + ldr r3, _0818F250 + adds r1, r1, r3 + ldrb r0, [r1, #6] + lsls r0, r0, #2 + ldr r2, _0818F24C + adds r0, r0, r2 + ldr r0, [r0] + orrs r7, r0 + ldrb r0, [r1, #7] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + orrs r7, r0 + adds r5, #1 + cmp r5, #2 + ble _0818F118 + movs r4, #0 + movs r1, #1 + movs r5, #0x1f +_0818F1A8: + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0 + beq _0818F1B2 + adds r4, #1 +_0818F1B2: + asrs r7, r7, #1 + subs r5, #1 + cmp r5, #0 + bge _0818F1A8 + ldr r3, [sp, #0x14] + adds r0, r4, #0 + muls r0, r3, r0 + movs r1, #0x14 + bl __divsi3 + ldrh r1, [r6] + adds r1, r1, r0 + strh r1, [r6] + adds r6, #2 + ldr r5, [sp, #0x30] + adds r5, #2 + str r5, [sp, #0x30] + movs r7, #1 + add sl, r7 + mov r0, sl + cmp r0, #0xf + ble _0818F0F0 + movs r1, #0 + mov sl, r1 + ldr r2, _0818F238 + mov r8, r2 +_0818F1E6: + mov r5, sl + adds r5, #1 + adds r7, r5, #0 + cmp r5, #0xf + bgt _0818F282 + mov r3, sl + lsls r0, r3, #1 + ldr r1, [sp, #0x18] + adds r6, r0, r1 + lsls r0, r5, #1 + adds r4, r0, r1 +_0818F1FC: + ldrh r1, [r6] + ldrh r0, [r4] + cmp r1, r0 + blo _0818F21E + cmp r1, r0 + bne _0818F27A + ldr r0, _0818F22C + ldr r1, [r0] + lsls r0, r5, #2 + adds r0, r1, r0 + ldr r2, _0818F234 + adds r0, r0, r2 + ldrh r0, [r0] + lsls r2, r0, #0x16 + lsrs r0, r2, #0x16 + cmp r0, r8 + bne _0818F25E +_0818F21E: + mov r0, sl + adds r1, r5, #0 + ldr r2, [sp, #0x18] + bl SwapDomeTrainers + b _0818F25C + .align 2, 0 +_0818F22C: .4byte 0x03005AF0 +_0818F230: .4byte 0x00000D28 +_0818F234: .4byte 0x00000D24 +_0818F238: .4byte 0x000003FF +_0818F23C: .4byte 0xFFFFFC00 +_0818F240: .4byte 0x00000D64 +_0818F244: .4byte 0x0203B958 +_0818F248: .4byte 0x00000D25 +_0818F24C: .4byte 0x082FACB4 +_0818F250: .4byte 0x082F0D54 +_0818F254: .4byte 0x00000CAA +_0818F258: .4byte 0x02024190 +_0818F25C: + b _0818F27A +_0818F25E: + mov r3, sl + lsls r0, r3, #2 + adds r0, r1, r0 + ldr r1, _0818F2F0 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #0x16 + cmp r0, r2 + bls _0818F27A + mov r0, sl + adds r1, r5, #0 + ldr r2, [sp, #0x18] + bl SwapDomeTrainers +_0818F27A: + adds r4, #2 + adds r5, #1 + cmp r5, #0xf + ble _0818F1FC +_0818F282: + mov sl, r7 + mov r2, sl + cmp r2, #0xe + ble _0818F1E6 + bl sub_081A33A0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0818F34A + movs r3, #0 + mov sl, r3 + ldr r0, _0818F2F4 + ldr r1, [r0] + ldr r4, _0818F2F0 + adds r1, r1, r4 + ldrh r1, [r1] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x16 + ldr r3, _0818F2F8 + adds r2, r0, #0 + ldr r6, _0818F2FC + cmp r1, r3 + beq _0818F2D0 + adds r5, r2, #0 +_0818F2B2: + movs r7, #1 + add sl, r7 + mov r0, sl + cmp r0, #0xf + bgt _0818F2D0 + ldr r0, [r5] + mov r7, sl + lsls r1, r7, #2 + adds r0, r0, r1 + adds r0, r0, r4 + ldrh r0, [r0] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + cmp r0, r3 + bne _0818F2B2 +_0818F2D0: + mov r1, sl + lsls r0, r1, #1 + adds r0, r0, r6 + ldrb r0, [r0] + cmp r0, #0 + beq _0818F308 + movs r5, #0 + ldr r2, [r2] + ldr r3, _0818F2F0 + adds r2, r2, r3 + ldrh r1, [r2] + ldr r0, _0818F300 + ands r0, r1 + ldr r7, _0818F304 + adds r1, r7, #0 + b _0818F31A + .align 2, 0 +_0818F2F0: .4byte 0x00000D24 +_0818F2F4: .4byte 0x03005AF0 +_0818F2F8: .4byte 0x000003FF +_0818F2FC: .4byte 0x085D5E6D +_0818F300: .4byte 0xFFFFFC00 +_0818F304: .4byte 0x000003FE +_0818F308: + movs r5, #1 + ldr r2, [r2] + ldr r0, _0818F368 + adds r2, r2, r0 + ldrh r1, [r2] + ldr r0, _0818F36C + ands r0, r1 + ldr r3, _0818F370 + adds r1, r3, #0 +_0818F31A: + orrs r0, r1 + strh r0, [r2] + movs r7, #0 + mov sl, r7 + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r4, r0, #1 +_0818F328: + mov r1, sl + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + bl GetFrontierBrainMonSpecies + ldr r1, _0818F374 + ldr r1, [r1] + ldr r2, _0818F378 + adds r1, r1, r2 + adds r1, r1, r4 + strh r0, [r1] + adds r4, #2 + movs r3, #1 + add sl, r3 + mov r5, sl + cmp r5, #2 + ble _0818F328 +_0818F34A: + ldr r0, [sp, #0x18] + bl Free + ldr r0, [sp, #0x1c] + bl Free + add sp, #0x3c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0818F368: .4byte 0x00000D28 +_0818F36C: .4byte 0xFFFFFC00 +_0818F370: .4byte 0x000003FE +_0818F374: .4byte 0x03005AF0 +_0818F378: .4byte 0x00000D64 + thumb_func_end InitDomeTrainers + + thumb_func_start CalcDomeMonStats +CalcDomeMonStats: @ 0x0818F37C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + adds r7, r1, #0 + mov sb, r2 + ldr r1, [sp, #0x3c] + ldr r2, [sp, #0x40] + mov r8, r2 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + lsls r3, r3, #0x18 + lsrs r5, r3, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp, #0x18] + movs r1, #0 + adds r4, r5, #0 + movs r3, #1 + movs r2, #5 +_0818F3A8: + adds r0, r4, #0 + ands r0, r3 + cmp r0, #0 + beq _0818F3B2 + adds r1, #1 +_0818F3B2: + lsrs r4, r4, #1 + subs r2, #1 + cmp r2, #0 + bge _0818F3A8 + movs r0, #0xff + lsls r0, r0, #1 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + lsls r0, r6, #3 + mov sl, r0 + movs r1, #0 + mov ip, r1 + mov r1, sp + movs r2, #5 +_0818F3D2: + mov r0, ip + str r0, [r1] + adds r0, r5, #0 + ands r0, r4 + cmp r0, #0 + beq _0818F3E0 + str r3, [r1] +_0818F3E0: + lsls r0, r4, #0x19 + lsrs r4, r0, #0x18 + adds r1, #4 + subs r2, #1 + cmp r2, #0 + bge _0818F3D2 + ldr r0, _0818F3F8 + cmp r6, r0 + bne _0818F3FC + movs r0, #1 + b _0818F426 + .align 2, 0 +_0818F3F8: .4byte 0x0000012F +_0818F3FC: + mov r2, sl + subs r0, r2, r6 + lsls r0, r0, #2 + ldr r1, _0818F55C + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #1 + mov r2, sb + adds r1, r0, r2 + ldr r0, [sp] + cmp r0, #0 + bge _0818F416 + adds r0, #3 +_0818F416: + asrs r0, r0, #2 + adds r0, r1, r0 + muls r0, r7, r0 + movs r1, #0x64 + bl __divsi3 + adds r0, r0, r7 + adds r0, #0xa +_0818F426: + mov r1, r8 + str r0, [r1] + mov r2, sl + subs r0, r2, r6 + lsls r0, r0, #2 + ldr r1, _0818F55C + adds r4, r0, r1 + ldrb r0, [r4, #1] + lsls r0, r0, #1 + mov r2, sb + adds r1, r0, r2 + ldr r0, [sp, #4] + cmp r0, #0 + bge _0818F444 + adds r0, #3 +_0818F444: + asrs r0, r0, #2 + adds r0, r1, r0 + muls r0, r7, r0 + movs r1, #0x64 + bl __divsi3 + adds r1, r0, #0 + adds r1, #5 + mov r0, r8 + str r1, [r0, #4] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, [sp, #0x18] + movs r2, #1 + bl ModifyStatByNature + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, r8 + str r0, [r1, #4] + ldrb r0, [r4, #2] + lsls r0, r0, #1 + mov r2, sb + adds r1, r0, r2 + ldr r0, [sp, #8] + cmp r0, #0 + bge _0818F47C + adds r0, #3 +_0818F47C: + asrs r0, r0, #2 + adds r0, r1, r0 + muls r0, r7, r0 + movs r1, #0x64 + bl __divsi3 + adds r1, r0, #0 + adds r1, #5 + mov r0, r8 + str r1, [r0, #8] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, [sp, #0x18] + movs r2, #2 + bl ModifyStatByNature + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, r8 + str r0, [r1, #8] + ldrb r0, [r4, #3] + lsls r0, r0, #1 + mov r2, sb + adds r1, r0, r2 + ldr r0, [sp, #0xc] + cmp r0, #0 + bge _0818F4B4 + adds r0, #3 +_0818F4B4: + asrs r0, r0, #2 + adds r0, r1, r0 + muls r0, r7, r0 + movs r1, #0x64 + bl __divsi3 + adds r1, r0, #0 + adds r1, #5 + mov r0, r8 + str r1, [r0, #0xc] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, [sp, #0x18] + movs r2, #3 + bl ModifyStatByNature + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, r8 + str r0, [r1, #0xc] + ldrb r0, [r4, #4] + lsls r0, r0, #1 + mov r2, sb + adds r1, r0, r2 + ldr r0, [sp, #0x10] + cmp r0, #0 + bge _0818F4EC + adds r0, #3 +_0818F4EC: + asrs r0, r0, #2 + adds r0, r1, r0 + muls r0, r7, r0 + movs r1, #0x64 + bl __divsi3 + adds r1, r0, #0 + adds r1, #5 + mov r0, r8 + str r1, [r0, #0x10] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, [sp, #0x18] + movs r2, #4 + bl ModifyStatByNature + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, r8 + str r0, [r1, #0x10] + ldrb r0, [r4, #5] + lsls r0, r0, #1 + mov r1, sb + adds r2, r0, r1 + ldr r0, [sp, #0x14] + cmp r0, #0 + bge _0818F524 + adds r0, #3 +_0818F524: + asrs r0, r0, #2 + adds r0, r2, r0 + muls r0, r7, r0 + movs r1, #0x64 + bl __divsi3 + adds r1, r0, #0 + adds r1, #5 + mov r2, r8 + str r1, [r2, #0x14] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, [sp, #0x18] + movs r2, #5 + bl ModifyStatByNature + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, r8 + str r0, [r1, #0x14] + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0818F55C: .4byte 0x082F0D54 + thumb_func_end CalcDomeMonStats + + thumb_func_start SwapDomeTrainers +SwapDomeTrainers: @ 0x0818F560 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r3, r0, #1 + mov ip, r3 + adds r4, r3, r2 + ldrh r5, [r4] + lsls r7, r1, #1 + mov sb, r7 + add r2, sb + ldrh r3, [r2] + strh r3, [r4] + strh r5, [r2] + ldr r2, _0818F5FC + ldr r5, [r2] + lsls r6, r0, #2 + adds r6, r5, r6 + ldr r3, _0818F600 + adds r6, r6, r3 + ldrh r7, [r6] + mov sl, r7 + mov r2, sl + lsls r2, r2, #0x16 + mov r8, r2 + lsls r2, r1, #2 + adds r5, r5, r2 + adds r5, r5, r3 + ldrh r4, [r5] + lsls r4, r4, #0x16 + lsrs r4, r4, #0x16 + ldr r3, _0818F604 + adds r2, r3, #0 + mov r7, sl + ands r2, r7 + orrs r2, r4 + strh r2, [r6] + mov r2, r8 + lsrs r2, r2, #0x16 + mov r8, r2 + ldrh r2, [r5] + ands r3, r2 + mov r7, r8 + orrs r3, r7 + strh r3, [r5] + ldr r2, _0818F5FC + mov r8, r2 + add ip, r0 + add sb, r1 + mov r3, sb + lsls r4, r3, #1 + mov r7, ip + lsls r3, r7, #1 + ldr r7, _0818F608 + movs r6, #2 +_0818F5D0: + mov r1, r8 + ldr r0, [r1] + adds r0, r0, r7 + adds r2, r0, r3 + ldrh r5, [r2] + adds r0, r0, r4 + ldrh r1, [r0] + strh r1, [r2] + strh r5, [r0] + adds r4, #2 + adds r3, #2 + subs r6, #1 + cmp r6, #0 + bge _0818F5D0 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0818F5FC: .4byte 0x03005AF0 +_0818F600: .4byte 0x00000D24 +_0818F604: .4byte 0xFFFFFC00 +_0818F608: .4byte 0x00000D64 + thumb_func_end SwapDomeTrainers + + thumb_func_start BufferDomeRoundText +BufferDomeRoundText: @ 0x0818F60C + push {lr} + ldr r0, _0818F62C + ldr r2, _0818F630 + ldr r1, _0818F634 + ldr r1, [r1] + ldr r3, _0818F638 + adds r1, r1, r3 + ldrh r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl StringCopy + pop {r0} + bx r0 + .align 2, 0 +_0818F62C: .4byte 0x02021C40 +_0818F630: .4byte 0x085ABD3C +_0818F634: .4byte 0x03005AF0 +_0818F638: .4byte 0x00000CB2 + thumb_func_end BufferDomeRoundText + + thumb_func_start BufferDomeOpponentName +BufferDomeOpponentName: @ 0x0818F63C + push {lr} + ldr r0, _0818F664 + ldr r2, _0818F668 + ldr r1, _0818F66C + ldr r1, [r1] + ldr r3, _0818F670 + adds r1, r1, r3 + ldrh r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl StringCopy + ldr r0, _0818F674 + ldr r1, _0818F678 + ldrh r1, [r1] + bl CopyDomeTrainerName + pop {r0} + bx r0 + .align 2, 0 +_0818F664: .4byte 0x02021C40 +_0818F668: .4byte 0x085ABD3C +_0818F66C: .4byte 0x03005AF0 +_0818F670: .4byte 0x00000CB2 +_0818F674: .4byte 0x02021C54 +_0818F678: .4byte 0x0203886A + thumb_func_end BufferDomeOpponentName + + thumb_func_start InitDomeOpponentParty +InitDomeOpponentParty: @ 0x0818F67C + push {r4, r5, lr} + ldr r1, _0818F6C0 + movs r0, #0 + str r0, [r1] + ldr r4, _0818F6C4 + adds r0, r4, #0 + movs r1, #0x3a + movs r2, #0 + bl GetMonData + ldr r5, _0818F6C8 + str r0, [r5] + adds r4, #0x64 + adds r0, r4, #0 + movs r1, #0x3a + movs r2, #0 + bl GetMonData + ldr r1, [r5] + adds r1, r1, r0 + str r1, [r5] + bl CalculatePlayerPartyCount + ldr r0, _0818F6CC + ldrh r0, [r0] + bl TrainerIdToDomeTournamentId + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl CreateDomeOpponentMons + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0818F6C0: .4byte 0x0203CA3C +_0818F6C4: .4byte 0x02024190 +_0818F6C8: .4byte 0x0203CA40 +_0818F6CC: .4byte 0x0203886A + thumb_func_end InitDomeOpponentParty + + thumb_func_start CreateDomeOpponentMon +CreateDomeOpponentMon: @ 0x0818F6D0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x30 + adds r5, r2, #0 + str r3, [sp, #0x14] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x10] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp, #0x28] + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + add r0, sp, #0xc + movs r1, #1 + rsbs r1, r1, #0 + strb r1, [r0] + ldr r0, [sp, #0x28] + bl GetDomeTrainerMonIvs + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + str r6, [sp, #0x2c] + bl SetFacilityPtrsGetLevel + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r0, #0x64 + ldr r4, [sp, #0x10] + adds r3, r4, #0 + muls r3, r0, r3 + str r3, [sp, #0x18] + ldr r6, _0818F824 + adds r0, r3, r6 + ldr r7, _0818F828 + ldr r4, [r7] + lsls r5, r5, #1 + ldr r3, [sp, #0x28] + lsls r1, r3, #1 + adds r1, r1, r3 + lsls r1, r1, #1 + adds r1, r5, r1 + ldr r6, _0818F82C + adds r4, r4, r6 + adds r4, r4, r1 + ldrh r3, [r4] + ldr r7, _0818F830 + ldr r7, [r7] + mov r8, r7 + lsls r3, r3, #4 + add r3, r8 + ldrh r1, [r3] + ldrb r3, [r3, #0xc] + ldr r6, [sp, #0x2c] + str r6, [sp] + ldrh r4, [r4] + lsls r4, r4, #4 + add r4, r8 + ldrb r4, [r4, #0xb] + str r4, [sp, #4] + ldr r7, [sp, #0x14] + str r7, [sp, #8] + bl CreateMonWithEVSpreadNatureOTID + add r0, sp, #0xc + movs r1, #1 + rsbs r1, r1, #0 + strb r1, [r0] + movs r6, #0 + ldr r2, [sp, #0x18] + str r2, [sp, #0x1c] + mov sl, r5 + ldr r3, _0818F82C + mov sb, r3 + ldr r3, _0818F830 + mov r4, sl + str r4, [sp, #0x20] +_0818F774: + ldr r7, _0818F828 + ldr r1, [r7] + ldr r2, [sp, #0x28] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #1 + mov r8, r0 + mov r5, sl + add r5, r8 + add r1, sb + adds r1, r1, r5 + ldrh r0, [r1] + ldr r1, [r3] + lsls r0, r0, #4 + adds r0, r0, r1 + lsls r4, r6, #1 + adds r0, #2 + adds r0, r0, r4 + ldrh r1, [r0] + lsls r2, r6, #0x18 + lsrs r2, r2, #0x18 + mov ip, r2 + ldr r7, [sp, #0x1c] + ldr r2, _0818F824 + adds r0, r7, r2 + mov r2, ip + str r3, [sp, #0x24] + bl SetMonMoveSlot + ldr r7, _0818F828 + ldr r0, [r7] + add r0, sb + adds r0, r0, r5 + ldrh r0, [r0] + ldr r3, [sp, #0x24] + ldr r1, [r3] + lsls r0, r0, #4 + adds r0, r0, r1 + adds r0, #2 + adds r0, r0, r4 + ldrh r0, [r0] + cmp r0, #0xda + bne _0818F7D0 + movs r1, #0 + add r0, sp, #0xc + strb r1, [r0] +_0818F7D0: + adds r6, #1 + cmp r6, #3 + ble _0818F774 + movs r0, #0x64 + ldr r1, [sp, #0x10] + adds r4, r1, #0 + muls r4, r0, r4 + ldr r0, _0818F824 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x20 + add r2, sp, #0xc + bl SetMonData + ldr r0, _0818F828 + ldr r0, [r0] + ldr r1, [sp, #0x20] + add r1, r8 + ldr r2, _0818F82C + adds r0, r0, r2 + adds r0, r0, r1 + ldrh r0, [r0] + ldr r1, _0818F830 + ldr r1, [r1] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrb r2, [r0, #0xa] + lsls r2, r2, #1 + ldr r0, _0818F834 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0xc + bl SetMonData + add sp, #0x30 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0818F824: .4byte 0x020243E8 +_0818F828: .4byte 0x03005AF0 +_0818F82C: .4byte 0x00000D64 +_0818F830: .4byte 0x0203B958 +_0818F834: .4byte 0x085ADBF4 + thumb_func_end CreateDomeOpponentMon + + thumb_func_start CreateDomeOpponentMons +CreateDomeOpponentMons: @ 0x0818F838 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + movs r6, #0 + bl ZeroEnemyPartyMons + mov r0, r8 + bl GetDomeTrainerMonCountInBits + adds r5, r0, #0 + bl Random + adds r4, r0, #0 + bl Random + lsls r4, r4, #0x10 + lsrs r7, r4, #0x10 + lsls r0, r0, #0x10 + orrs r7, r0 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #5 + bls _0818F8A2 + movs r4, #0 +_0818F87C: + movs r0, #1 + ands r0, r5 + cmp r0, #0 + beq _0818F898 + lsls r2, r4, #0x18 + lsrs r2, r2, #0x18 + adds r0, r6, #0 + mov r1, r8 + adds r3, r7, #0 + bl CreateDomeOpponentMon + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_0818F898: + asrs r5, r5, #1 + adds r4, #1 + cmp r4, #2 + ble _0818F87C + b _0818F8C8 +_0818F8A2: + movs r4, #2 +_0818F8A4: + movs r0, #4 + ands r0, r5 + cmp r0, #0 + beq _0818F8C0 + lsls r2, r4, #0x18 + lsrs r2, r2, #0x18 + adds r0, r6, #0 + mov r1, r8 + adds r3, r7, #0 + bl CreateDomeOpponentMon + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_0818F8C0: + lsls r5, r5, #1 + subs r4, #1 + cmp r4, #0 + bge _0818F8A4 +_0818F8C8: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CreateDomeOpponentMons + + thumb_func_start GetDomeTrainerMonCountInBits +GetDomeTrainerMonCountInBits: @ 0x0818F8D4 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r5, r4, #0 + bl Random + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0818F8FE + adds r0, r4, #0 + movs r1, #0 + bl sub_0818F918 + cmp r0, #0 + bne _0818F912 + adds r0, r4, #0 + movs r1, #1 + bl sub_0818FA14 + b _0818F912 +_0818F8FE: + adds r0, r5, #0 + movs r1, #0 + bl sub_0818FA14 + cmp r0, #0 + bne _0818F912 + adds r0, r5, #0 + movs r1, #1 + bl sub_0818F918 +_0818F912: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end GetDomeTrainerMonCountInBits + + thumb_func_start sub_0818F918 +sub_0818F918: @ 0x0818F918 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp, #0xc] + movs r0, #0 + mov sb, r0 + mov r1, r8 + lsls r1, r1, #2 + str r1, [sp, #0x18] +_0818F93A: + mov r2, sb + lsls r0, r2, #2 + mov r2, sp + adds r1, r2, r0 + movs r0, #0 + str r0, [r1] + movs r7, #0 + mov r0, sb + adds r0, #1 + str r0, [sp, #0x14] + adds r5, r1, #0 + mov r1, sb + lsls r1, r1, #1 + str r1, [sp, #0x10] +_0818F956: + movs r6, #0 + adds r2, r7, #1 + mov sl, r2 +_0818F95C: + ldr r0, _0818F98C + ldr r1, [r0] + ldr r2, [sp, #0x18] + adds r0, r1, r2 + ldr r2, _0818F990 + adds r0, r0, r2 + ldrh r0, [r0] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + ldr r2, _0818F994 + cmp r0, r2 + bne _0818F998 + mov r1, sb + lsls r0, r1, #0x18 + lsls r1, r7, #0x18 + lsrs r0, r0, #0x18 + lsrs r1, r1, #0x18 + bl GetFrontierBrainMonMove + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + b _0818F9BC + .align 2, 0 +_0818F98C: .4byte 0x03005AF0 +_0818F990: .4byte 0x00000D24 +_0818F994: .4byte 0x000003FE +_0818F998: + mov r2, r8 + lsls r0, r2, #1 + add r0, r8 + lsls r0, r0, #1 + ldr r2, [sp, #0x10] + adds r0, r2, r0 + ldr r2, _0818FA08 + adds r1, r1, r2 + adds r1, r1, r0 + ldrh r0, [r1] + ldr r1, _0818FA0C + ldr r1, [r1] + lsls r0, r0, #4 + adds r0, r0, r1 + lsls r1, r7, #1 + adds r0, #2 + adds r0, r0, r1 + ldrh r4, [r0] +_0818F9BC: + movs r0, #0x64 + muls r0, r6, r0 + ldr r1, _0818FA10 + adds r0, r0, r1 + movs r1, #0xb + movs r2, #0 + bl GetMonData + adds r1, r0, #0 + adds r0, r4, #0 + movs r2, #0 + bl GetTypeEffectivenessPoints + ldr r1, [r5] + adds r1, r1, r0 + str r1, [r5] + adds r6, #1 + cmp r6, #2 + ble _0818F95C + mov r7, sl + cmp r7, #3 + ble _0818F956 + ldr r0, [sp, #0x14] + mov sb, r0 + cmp r0, #2 + ble _0818F93A + mov r0, sp + ldr r1, [sp, #0xc] + bl sub_0818FB10 + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0818FA08: .4byte 0x00000D64 +_0818FA0C: .4byte 0x0203B958 +_0818FA10: .4byte 0x02024190 + thumb_func_end sub_0818F918 + + thumb_func_start sub_0818FA14 +sub_0818FA14: @ 0x0818FA14 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp, #0xc] + movs r0, #0 + mov sb, r0 + mov r1, r8 + lsls r1, r1, #2 + str r1, [sp, #0x18] +_0818FA36: + mov r2, sb + lsls r0, r2, #2 + mov r2, sp + adds r1, r2, r0 + movs r0, #0 + str r0, [r1] + movs r7, #0 + mov r0, sb + adds r0, #1 + str r0, [sp, #0x14] + adds r5, r1, #0 + mov r1, sb + lsls r1, r1, #1 + str r1, [sp, #0x10] +_0818FA52: + movs r6, #0 + adds r2, r7, #1 + mov sl, r2 +_0818FA58: + ldr r0, _0818FA88 + ldr r1, [r0] + ldr r2, [sp, #0x18] + adds r0, r1, r2 + ldr r2, _0818FA8C + adds r0, r0, r2 + ldrh r0, [r0] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + ldr r2, _0818FA90 + cmp r0, r2 + bne _0818FA94 + mov r1, sb + lsls r0, r1, #0x18 + lsls r1, r7, #0x18 + lsrs r0, r0, #0x18 + lsrs r1, r1, #0x18 + bl GetFrontierBrainMonMove + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + b _0818FAB8 + .align 2, 0 +_0818FA88: .4byte 0x03005AF0 +_0818FA8C: .4byte 0x00000D24 +_0818FA90: .4byte 0x000003FE +_0818FA94: + mov r2, r8 + lsls r0, r2, #1 + add r0, r8 + lsls r0, r0, #1 + ldr r2, [sp, #0x10] + adds r0, r2, r0 + ldr r2, _0818FB04 + adds r1, r1, r2 + adds r1, r1, r0 + ldrh r0, [r1] + ldr r1, _0818FB08 + ldr r1, [r1] + lsls r0, r0, #4 + adds r0, r0, r1 + lsls r1, r7, #1 + adds r0, #2 + adds r0, r0, r1 + ldrh r4, [r0] +_0818FAB8: + movs r0, #0x64 + muls r0, r6, r0 + ldr r1, _0818FB0C + adds r0, r0, r1 + movs r1, #0xb + movs r2, #0 + bl GetMonData + adds r1, r0, #0 + adds r0, r4, #0 + movs r2, #1 + bl GetTypeEffectivenessPoints + ldr r1, [r5] + adds r1, r1, r0 + str r1, [r5] + adds r6, #1 + cmp r6, #2 + ble _0818FA58 + mov r7, sl + cmp r7, #3 + ble _0818FA52 + ldr r0, [sp, #0x14] + mov sb, r0 + cmp r0, #2 + ble _0818FA36 + mov r0, sp + ldr r1, [sp, #0xc] + bl sub_0818FB10 + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0818FB04: .4byte 0x00000D64 +_0818FB08: .4byte 0x0203B958 +_0818FB0C: .4byte 0x02024190 + thumb_func_end sub_0818FA14 + + thumb_func_start sub_0818FB10 +sub_0818FB10: @ 0x0818FB10 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + mov sl, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0 + str r0, [sp, #0xc] + movs r3, #2 + add r0, sp, #8 +_0818FB2A: + str r3, [r0] + subs r0, #4 + subs r3, #1 + cmp r3, #0 + bge _0818FB2A + mov r3, sl + ldr r2, [r3] + ldr r0, [r3, #4] + cmp r2, r0 + bne _0818FB7C + ldr r0, [r3, #8] + cmp r2, r0 + bne _0818FB7C + cmp r1, #0 + beq _0818FC06 + movs r3, #0 + ldr r4, _0818FB78 +_0818FB4C: + str r3, [sp, #0x14] + bl Random + movs r1, #3 + ands r1, r0 + ldr r3, [sp, #0x14] + cmp r1, #3 + beq _0818FB72 + lsls r0, r1, #2 + adds r0, r0, r4 + ldr r1, [r0] + ldr r0, [sp, #0xc] + ands r0, r1 + cmp r0, #0 + bne _0818FB72 + ldr r0, [sp, #0xc] + orrs r0, r1 + str r0, [sp, #0xc] + adds r3, #1 +_0818FB72: + cmp r3, #2 + bne _0818FB4C + b _0818FC06 + .align 2, 0 +_0818FB78: .4byte 0x082FACB4 +_0818FB7C: + movs r3, #0 + mov sb, sp + mov r8, sl +_0818FB82: + adds r2, r3, #1 + cmp r2, #2 + bgt _0818FBE0 + mov r6, r8 + mov r7, sb + lsls r0, r2, #2 + mov r1, sp + adds r5, r0, r1 + mov r1, sl + adds r4, r0, r1 +_0818FB96: + ldr r0, [r6] + ldr r1, [r4] + cmp r0, r1 + bge _0818FBAA + str r1, [r6] + str r0, [r4] + ldr r1, [r7] + ldr r0, [r5] + str r0, [r7] + str r1, [r5] +_0818FBAA: + ldr r1, [r6] + ldr r0, [r4] + cmp r1, r0 + bne _0818FBD6 + str r2, [sp, #0x10] + str r3, [sp, #0x14] + bl Random + movs r1, #1 + ands r1, r0 + ldr r2, [sp, #0x10] + ldr r3, [sp, #0x14] + cmp r1, #0 + beq _0818FBD6 + ldr r1, [r6] + ldr r0, [r4] + str r0, [r6] + str r1, [r4] + ldr r1, [r7] + ldr r0, [r5] + str r0, [r7] + str r1, [r5] +_0818FBD6: + adds r5, #4 + adds r4, #4 + adds r2, #1 + cmp r2, #2 + ble _0818FB96 +_0818FBE0: + movs r4, #4 + add sb, r4 + add r8, r4 + adds r3, #1 + cmp r3, #1 + ble _0818FB82 + ldr r2, _0818FC18 + mov r1, sp + movs r3, #1 +_0818FBF2: + ldm r1!, {r0} + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + ldr r4, [sp, #0xc] + orrs r4, r0 + str r4, [sp, #0xc] + subs r3, #1 + cmp r3, #0 + bge _0818FBF2 +_0818FC06: + ldr r0, [sp, #0xc] + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0818FC18: .4byte 0x082FACB4 + thumb_func_end sub_0818FB10 + + thumb_func_start GetTypeEffectivenessPoints +GetTypeEffectivenessPoints: @ 0x0818FC1C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r3, r0, #0 + adds r4, r1, #0 + str r2, [sp] + movs r6, #0 + movs r2, #0x14 + cmp r3, #0 + beq _0818FC4C + ldr r0, _0818FC50 + cmp r3, r0 + beq _0818FC4C + ldr r0, _0818FC54 + lsls r1, r3, #1 + adds r1, r1, r3 + lsls r1, r1, #2 + adds r3, r1, r0 + ldrb r0, [r3, #1] + cmp r0, #0 + bne _0818FC58 +_0818FC4C: + movs r0, #0 + b _0818FDB2 + .align 2, 0 +_0818FC50: .4byte 0x0000FFFF +_0818FC54: .4byte 0x082ED220 +_0818FC58: + ldr r1, _0818FC84 + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #6] + mov sl, r1 + ldrb r1, [r0, #7] + mov sb, r1 + ldrb r0, [r0, #0x16] + mov r8, r0 + ldrb r3, [r3, #2] + str r3, [sp, #4] + cmp r0, #0x1a + bne _0818FC88 + cmp r3, #4 + bne _0818FC88 + ldr r0, [sp] + cmp r0, #1 + bne _0818FD06 + movs r2, #8 + b _0818FD00 + .align 2, 0 +_0818FC84: .4byte 0x082F0D54 +_0818FC88: + ldr r0, _0818FD14 + adds r1, r6, r0 + ldrb r0, [r1] + ldr r7, _0818FD14 + cmp r0, #0xff + beq _0818FD00 + adds r4, r1, #0 +_0818FC96: + ldrb r0, [r4] + cmp r0, #0xfe + beq _0818FCF2 + ldrb r0, [r4] + ldr r1, [sp, #4] + cmp r0, r1 + bne _0818FCF2 + ldrb r0, [r4, #1] + adds r5, r6, #1 + cmp r0, sl + bne _0818FCC8 + adds r1, r6, #2 + mov r0, r8 + cmp r0, #0x19 + bne _0818FCBA + ldrb r0, [r4, #2] + cmp r0, #0x28 + bne _0818FCC8 +_0818FCBA: + adds r0, r1, r7 + ldrb r0, [r0] + muls r0, r2, r0 + movs r1, #0xa + bl __divsi3 + adds r2, r0, #0 +_0818FCC8: + adds r0, r5, r7 + ldrb r0, [r0] + cmp r0, sb + bne _0818FCF2 + cmp sl, sb + beq _0818FCF2 + adds r1, r6, #2 + mov r0, r8 + cmp r0, #0x19 + bne _0818FCE4 + adds r0, r1, r7 + ldrb r0, [r0] + cmp r0, #0x28 + bne _0818FCF2 +_0818FCE4: + adds r0, r1, r7 + ldrb r0, [r0] + muls r0, r2, r0 + movs r1, #0xa + bl __divsi3 + adds r2, r0, #0 +_0818FCF2: + adds r4, #3 + adds r6, #3 + ldr r1, _0818FD14 + adds r0, r6, r1 + ldrb r0, [r0] + cmp r0, #0xff + bne _0818FC96 +_0818FD00: + ldr r0, [sp] + cmp r0, #1 + beq _0818FD3C +_0818FD06: + ldr r1, [sp] + cmp r1, #1 + bgt _0818FD18 + cmp r1, #0 + beq _0818FD20 + b _0818FDB0 + .align 2, 0 +_0818FD14: .4byte 0x082EBB38 +_0818FD18: + ldr r0, [sp] + cmp r0, #2 + beq _0818FD70 + b _0818FDB0 +_0818FD20: + cmp r2, #0xa + beq _0818FDA2 + cmp r2, #0xa + ble _0818FDA2 + cmp r2, #0x28 + beq _0818FDA6 + cmp r2, #0x28 + bgt _0818FD36 + cmp r2, #0x14 + beq _0818FD60 + b _0818FDA2 +_0818FD36: + cmp r2, #0x50 + bne _0818FDA2 + b _0818FD5C +_0818FD3C: + cmp r2, #0xa + beq _0818FD60 + cmp r2, #0xa + bgt _0818FD4E + cmp r2, #0 + beq _0818FD5C + cmp r2, #5 + beq _0818FDA6 + b _0818FDA2 +_0818FD4E: + cmp r2, #0x28 + beq _0818FD64 + cmp r2, #0x28 + ble _0818FDA2 + cmp r2, #0x50 + beq _0818FD6A + b _0818FDA2 +_0818FD5C: + movs r2, #8 + b _0818FDB0 +_0818FD60: + movs r2, #2 + b _0818FDB0 +_0818FD64: + movs r2, #2 + rsbs r2, r2, #0 + b _0818FDB0 +_0818FD6A: + movs r2, #4 + rsbs r2, r2, #0 + b _0818FDB0 +_0818FD70: + cmp r2, #0xa + beq _0818FDA2 + cmp r2, #0xa + bgt _0818FD82 + cmp r2, #0 + beq _0818FD96 + cmp r2, #5 + beq _0818FD9C + b _0818FDA2 +_0818FD82: + cmp r2, #0x28 + beq _0818FDAA + cmp r2, #0x28 + bgt _0818FD90 + cmp r2, #0x14 + beq _0818FDA6 + b _0818FDA2 +_0818FD90: + cmp r2, #0x50 + beq _0818FDAE + b _0818FDA2 +_0818FD96: + movs r2, #0x10 + rsbs r2, r2, #0 + b _0818FDB0 +_0818FD9C: + movs r2, #8 + rsbs r2, r2, #0 + b _0818FDB0 +_0818FDA2: + movs r2, #0 + b _0818FDB0 +_0818FDA6: + movs r2, #4 + b _0818FDB0 +_0818FDAA: + movs r2, #0xc + b _0818FDB0 +_0818FDAE: + movs r2, #0x14 +_0818FDB0: + adds r0, r2, #0 +_0818FDB2: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetTypeEffectivenessPoints + + thumb_func_start GetDomeTrainerMonIvs +GetDomeTrainerMonIvs: @ 0x0818FDC4 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + cmp r0, #0x63 + bls _0818FDF6 + movs r1, #6 + cmp r0, #0x77 + bls _0818FDF6 + movs r1, #9 + cmp r0, #0x8b + bls _0818FDF6 + movs r1, #0xc + cmp r0, #0x9f + bls _0818FDF6 + movs r1, #0xf + cmp r0, #0xb3 + bls _0818FDF6 + movs r1, #0x12 + cmp r0, #0xc7 + bls _0818FDF6 + movs r1, #0x1f + cmp r0, #0xdb + bhi _0818FDF6 + movs r1, #0x15 +_0818FDF6: + adds r0, r1, #0 + pop {r1} + bx r1 + thumb_func_end GetDomeTrainerMonIvs + + thumb_func_start TournamentIdOfOpponent +TournamentIdOfOpponent: @ 0x0818FDFC + push {r4, r5, r6, r7, lr} + adds r3, r0, #0 + adds r2, r1, #0 + movs r5, #0 + ldr r0, _0818FE4C + ldr r1, [r0] + ldr r4, _0818FE50 + adds r1, r1, r4 + ldrh r1, [r1] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x16 + mov ip, r0 + ldr r6, _0818FE54 + cmp r1, r2 + beq _0818FE34 + mov r7, ip +_0818FE1C: + adds r5, #1 + cmp r5, #0xf + bgt _0818FE34 + ldr r0, [r7] + lsls r1, r5, #2 + adds r0, r0, r1 + adds r0, r0, r4 + ldrh r0, [r0] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + cmp r0, r2 + bne _0818FE1C +_0818FE34: + cmp r3, #0 + beq _0818FEC8 + cmp r3, #3 + bne _0818FE58 + lsls r0, r5, #2 + adds r1, r0, #3 + adds r1, r1, r6 + ldrb r1, [r1] + adds r4, r1, #0 + adds r4, #8 + b _0818FE62 + .align 2, 0 +_0818FE4C: .4byte 0x03005AF0 +_0818FE50: .4byte 0x00000D24 +_0818FE54: .4byte 0x085D5B88 +_0818FE58: + lsls r0, r5, #2 + adds r1, r3, r0 + adds r1, r1, r6 + ldrb r1, [r1] + adds r4, r1, #4 +_0818FE62: + adds r0, r3, r0 + adds r0, r0, r6 + ldrb r2, [r0] + cmp r2, r4 + bge _0818FEB2 + ldr r1, _0818FE88 + adds r0, r2, r1 + ldrb r3, [r0] + adds r6, r1, #0 + cmp r3, r5 + beq _0818FE90 + mov r1, ip + ldr r0, [r1] + lsls r1, r3, #2 + adds r0, r0, r1 + ldr r3, _0818FE8C + adds r0, r0, r3 + b _0818FEAA + .align 2, 0 +_0818FE88: .4byte 0x085D5BC8 +_0818FE8C: .4byte 0x00000D25 +_0818FE90: + adds r2, #1 + cmp r2, r4 + bge _0818FEB2 + adds r0, r2, r6 + ldrb r1, [r0] + cmp r1, r5 + beq _0818FE90 + mov r3, ip + ldr r0, [r3] + lsls r1, r1, #2 + adds r0, r0, r1 + ldr r1, _0818FEC0 + adds r0, r0, r1 +_0818FEAA: + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + blt _0818FE90 +_0818FEB2: + cmp r2, r4 + beq _0818FEE2 + ldr r0, _0818FEC4 + adds r0, r2, r0 + ldrb r0, [r0] + b _0818FEEE + .align 2, 0 +_0818FEC0: .4byte 0x00000D25 +_0818FEC4: .4byte 0x085D5BC8 +_0818FEC8: + mov r3, ip + ldr r1, [r3] + lsls r0, r5, #2 + adds r0, r0, r6 + ldrb r2, [r0] + lsls r0, r2, #2 + adds r1, r1, r0 + ldr r0, _0818FEE8 + adds r1, r1, r0 + ldrb r0, [r1] + lsls r0, r0, #0x1d + cmp r0, #0 + bge _0818FEEC +_0818FEE2: + movs r0, #0xff + b _0818FEEE + .align 2, 0 +_0818FEE8: .4byte 0x00000D25 +_0818FEEC: + adds r0, r2, #0 +_0818FEEE: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end TournamentIdOfOpponent + + thumb_func_start SetDomeOpponentId +SetDomeOpponentId: @ 0x0818FEF4 + push {lr} + bl TrainerIdOfPlayerOpponent + ldr r1, _0818FF04 + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0818FF04: .4byte 0x0203886A + thumb_func_end SetDomeOpponentId + + thumb_func_start TrainerIdOfPlayerOpponent +TrainerIdOfPlayerOpponent: @ 0x0818FF08 + push {r4, lr} + ldr r0, _0818FF30 + ldr r4, [r0] + ldr r1, _0818FF34 + adds r0, r4, r1 + ldrh r0, [r0] + ldr r1, _0818FF38 + bl TournamentIdOfOpponent + lsls r0, r0, #2 + adds r4, r4, r0 + ldr r0, _0818FF3C + adds r4, r4, r0 + ldrh r0, [r4] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0818FF30: .4byte 0x03005AF0 +_0818FF34: .4byte 0x00000CB2 +_0818FF38: .4byte 0x000003FF +_0818FF3C: .4byte 0x00000D24 + thumb_func_end TrainerIdOfPlayerOpponent + + thumb_func_start SetDomeOpponentGraphicsId +SetDomeOpponentGraphicsId: @ 0x0818FF40 + push {lr} + ldr r0, _0818FF50 + ldrh r0, [r0] + movs r1, #0 + bl SetBattleFacilityTrainerGfxId + pop {r0} + bx r0 + .align 2, 0 +_0818FF50: .4byte 0x0203886A + thumb_func_end SetDomeOpponentGraphicsId + + thumb_func_start sub_0818FF54 +sub_0818FF54: @ 0x0818FF54 + push {r4, lr} + ldr r4, _0818FF88 + ldr r0, [r4] + ldr r1, _0818FF8C + ldrh r1, [r1] + ldr r2, _0818FF90 + adds r0, r0, r2 + strb r1, [r0] + movs r0, #0x80 + lsls r0, r0, #7 + movs r1, #0 + bl VarSet + ldr r1, [r4] + ldr r0, _0818FF94 + adds r1, r1, r0 + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + bl sub_081A482C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0818FF88: .4byte 0x03005AF0 +_0818FF8C: .4byte 0x02037282 +_0818FF90: .4byte 0x00000CA8 +_0818FF94: .4byte 0x00000CA9 + thumb_func_end sub_0818FF54 + + thumb_func_start UpdateDomeStreaks +UpdateDomeStreaks: @ 0x0818FF98 + push {r4, r5, lr} + ldr r5, _0818FFF8 + ldr r0, [r5] + ldr r1, _0818FFFC + adds r0, r0, r1 + ldrb r4, [r0] + lsls r4, r4, #0x1e + lsrs r4, r4, #0x1e + ldr r0, _08190000 + bl VarGet + lsls r0, r0, #0x18 + ldr r1, [r5] + lsls r4, r4, #1 + lsrs r0, r0, #0x16 + adds r4, r4, r0 + ldr r3, _08190004 + adds r1, r1, r3 + adds r1, r1, r4 + ldrh r0, [r1] + ldr r2, _08190008 + cmp r0, r2 + bhi _0818FFCA + adds r0, #1 + strh r0, [r1] +_0818FFCA: + ldr r0, [r5] + ldr r1, _0819000C + adds r0, r0, r1 + adds r1, r0, r4 + ldrh r0, [r1] + cmp r0, r2 + bhi _0818FFDC + adds r0, #1 + strh r0, [r1] +_0818FFDC: + ldr r0, [r5] + adds r1, r0, r3 + adds r1, r1, r4 + ldr r2, _08190010 + adds r0, r0, r2 + adds r0, r0, r4 + ldrh r1, [r1] + ldrh r2, [r0] + cmp r1, r2 + bls _0818FFF2 + strh r1, [r0] +_0818FFF2: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0818FFF8: .4byte 0x03005AF0 +_0818FFFC: .4byte 0x00000CA9 +_08190000: .4byte 0x000040CE +_08190004: .4byte 0x00000D0C +_08190008: .4byte 0x000003E6 +_0819000C: .4byte 0x00000D1C +_08190010: .4byte 0x00000D14 + thumb_func_end UpdateDomeStreaks + + thumb_func_start ShowDomeOpponentInfo +ShowDomeOpponentInfo: @ 0x08190014 + push {r4, r5, lr} + ldr r0, _08190050 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08190054 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + adds r4, r4, r1 + movs r5, #0 + strh r5, [r4, #8] + bl TrainerIdOfPlayerOpponent + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl TrainerIdToDomeTournamentId + strh r0, [r4, #0xa] + strh r5, [r4, #0xc] + strh r5, [r4, #0xe] + ldr r0, _08190058 + bl SetMainCallback2 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08190050: .4byte 0x0819005D +_08190054: .4byte 0x03005B60 +_08190058: .4byte 0x08194755 + thumb_func_end ShowDomeOpponentInfo + + thumb_func_start Task_ShowOpponentInfo +Task_ShowOpponentInfo: @ 0x0819005C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + ldr r1, _08190098 + lsls r0, r0, #2 + add r0, sl + lsls r0, r0, #3 + adds r6, r0, r1 + movs r0, #0xa + ldrsh r5, [r6, r0] + movs r2, #0xc + ldrsh r1, [r6, r2] + mov sb, r1 + movs r0, #0xe + ldrsh r7, [r6, r0] + movs r1, #8 + ldrsh r4, [r6, r1] + cmp r4, #1 + beq _08190164 + cmp r4, #1 + bgt _0819009C + cmp r4, #0 + beq _081900AA + b _081903CE + .align 2, 0 +_08190098: .4byte 0x03005B60 +_0819009C: + cmp r4, #2 + bne _081900A2 + b _081901CC +_081900A2: + cmp r4, #3 + bne _081900A8 + b _08190290 +_081900A8: + b _081903CE +_081900AA: + movs r0, #0 + bl SetHBlankCallback + movs r0, #0 + bl SetVBlankCallback + movs r0, #1 + bl EnableInterrupts + str r4, [sp, #4] + movs r1, #0xc0 + lsls r1, r1, #0x13 + ldr r2, _0819010C + add r0, sp, #4 + bl CpuSet + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _08190110 + movs r0, #0 + movs r2, #4 + bl InitBgsFromTemplates + ldr r0, _08190114 + bl InitWindows + bl DeactivateAllTextPrinters + ldr r0, _08190118 + strh r4, [r0] + ldr r0, _0819011C + strh r4, [r0] + ldr r0, _08190120 + strh r4, [r0] + ldr r0, _08190124 + strh r4, [r0] + ldr r0, _08190128 + strh r4, [r0] + ldr r0, _0819012C + strh r4, [r0] + mov r2, sb + cmp r2, #2 + bne _08190138 + ldr r0, _08190130 + strh r4, [r0] + ldr r0, _08190134 + strh r4, [r0] + b _08190142 + .align 2, 0 +_0819010C: .4byte 0x05006000 +_08190110: .4byte 0x085D5928 +_08190114: .4byte 0x085D5958 +_08190118: .4byte 0x02022AC8 +_0819011C: .4byte 0x02022ACA +_08190120: .4byte 0x02022ACC +_08190124: .4byte 0x02022ACE +_08190128: .4byte 0x02022AD4 +_0819012C: .4byte 0x02022AD6 +_08190130: .4byte 0x02022AD0 +_08190134: .4byte 0x02022AD2 +_08190138: + ldr r0, _08190158 + strh r4, [r0] + ldr r1, _0819015C + movs r0, #0xa0 + strh r0, [r1] +_08190142: + ldr r0, _08190160 + mov r2, sl + lsls r1, r2, #2 + add r1, sl + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _081903CE + .align 2, 0 +_08190158: .4byte 0x02022AD0 +_0819015C: .4byte 0x02022AD2 +_08190160: .4byte 0x03005B60 +_08190164: + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + movs r0, #0x4c + movs r1, #0 + bl SetGpuReg + movs r0, #0x40 + movs r1, #0 + bl SetGpuReg + movs r0, #0x44 + movs r1, #0 + bl SetGpuReg + movs r0, #0x42 + movs r1, #0 + bl SetGpuReg + movs r0, #0x46 + movs r1, #0 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0 + bl SetGpuReg + movs r0, #0x4a + movs r1, #0x3f + bl SetGpuReg + bl ResetPaletteFade + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r1, _081901C8 + movs r0, #4 + strb r0, [r1] + b _0819025E + .align 2, 0 +_081901C8: .4byte 0x030030BC +_081901CC: + ldr r1, _08190268 + movs r5, #0x80 + lsls r5, r5, #6 + movs r7, #0 + str r7, [sp] + movs r0, #2 + adds r2, r5, #0 + movs r3, #0 + bl DecompressAndLoadBgGfxUsingHeap + ldr r1, _0819026C + movs r4, #1 + str r4, [sp] + movs r0, #2 + adds r2, r5, #0 + movs r3, #0 + bl DecompressAndLoadBgGfxUsingHeap + ldr r1, _08190270 + movs r2, #0x80 + lsls r2, r2, #4 + str r4, [sp] + movs r0, #3 + movs r3, #0 + bl DecompressAndLoadBgGfxUsingHeap + ldr r0, _08190274 + bl LoadCompressedSpriteSheet + ldr r0, _08190278 + movs r4, #0x80 + lsls r4, r4, #2 + movs r1, #0 + adds r2, r4, #0 + bl LoadCompressedPalette + ldr r0, _0819027C + movs r1, #0x80 + lsls r1, r1, #1 + adds r2, r4, #0 + bl LoadCompressedPalette + ldr r0, _08190280 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadCompressedPalette + mov r0, sb + cmp r0, #2 + bne _0819023A + ldr r0, _08190284 + movs r1, #0x50 + movs r2, #0x20 + bl LoadCompressedPalette +_0819023A: + str r7, [sp, #8] + add r0, sp, #8 + ldr r1, _08190288 + ldr r2, _0819028C + bl CpuSet + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg +_0819025E: + ldrh r0, [r6, #8] + adds r0, #1 + strh r0, [r6, #8] + b _081903CE + .align 2, 0 +_08190268: .4byte 0x08D83DF4 +_0819026C: .4byte 0x08D84A08 +_08190270: .4byte 0x08D84F98 +_08190274: .4byte 0x085D59FC +_08190278: .4byte 0x08D8533C +_0819027C: .4byte 0x08D85428 +_08190280: .4byte 0x08D855E4 +_08190284: .4byte 0x08D854AC +_08190288: .4byte 0x020377B4 +_0819028C: .4byte 0x05000100 +_08190290: + ldr r0, _081902F4 + bl SetVBlankCallback + ldr r4, _081902F8 + movs r0, #0x14 + bl AllocZeroed + str r0, [r4] + movs r6, #0 + lsls r5, r5, #0x18 + movs r2, #0xff +_081902A6: + ldr r1, [r4] + adds r1, r1, r6 + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] + adds r6, #1 + cmp r6, #0xf + ble _081902A6 + bl LoadMonIconPalettes + ldr r0, _081902FC + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _08190300 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #8] + strh r1, [r0, #0xc] + mov r1, sb + strh r1, [r0, #0xe] + strh r7, [r0, #0x10] + mov r2, sb + cmp r2, #2 + bne _08190304 + lsrs r1, r5, #0x18 + movs r0, #0 + bl DisplayMatchInfoOnCard + ldr r0, _081902F8 + ldr r1, [r0] + movs r0, #1 + strb r0, [r1, #0x10] + b _0819030C + .align 2, 0 +_081902F4: .4byte 0x08194771 +_081902F8: .4byte 0x0203CA44 +_081902FC: .4byte 0x08190931 +_08190300: .4byte 0x03005B60 +_08190304: + lsrs r1, r5, #0x18 + movs r0, #0 + bl DisplayTrainerInfoOnCard +_0819030C: + movs r1, #0xfa + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + mov r0, sb + cmp r0, #0 + beq _081903C8 + ldr r5, _081903E0 + adds r0, r5, #0 + movs r1, #0x78 + movs r2, #4 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r4, r7, #4 + adds r4, r4, r7 + lsls r4, r4, #2 + ldr r1, _081903E4 + mov r8, r1 + add r4, r8 + adds r0, r4, #0 + movs r1, #0 + bl StartSpriteAnim + strh r6, [r4, #0x2e] + adds r0, r5, #0 + movs r1, #0x78 + movs r2, #0x9c + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r4, r7, #4 + adds r4, r4, r7 + lsls r4, r4, #2 + add r4, r8 + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAnim + strh r6, [r4, #0x2e] + ldr r5, _081903E8 + adds r0, r5, #0 + movs r1, #6 + movs r2, #0x50 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + mov r2, r8 + adds r4, r0, r2 + adds r0, r4, #0 + movs r1, #0 + bl StartSpriteAnim + strh r6, [r4, #0x2e] + movs r0, #0 + strh r0, [r4, #0x30] + mov r1, sb + cmp r1, #1 + bne _081903A2 + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_081903A2: + adds r0, r5, #0 + movs r1, #0xea + movs r2, #0x50 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r4, r7, #4 + adds r4, r4, r7 + lsls r4, r4, #2 + add r4, r8 + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAnim + strh r6, [r4, #0x2e] + movs r0, #1 + strh r0, [r4, #0x30] +_081903C8: + mov r0, sl + bl DestroyTask +_081903CE: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081903E0: .4byte 0x085D5AE4 +_081903E4: .4byte 0x020205AC +_081903E8: .4byte 0x085D5ACC + thumb_func_end Task_ShowOpponentInfo + + thumb_func_start SpriteCb_TrainerIconCardScrollUp +SpriteCb_TrainerIconCardScrollUp: @ 0x081903EC + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x22] + adds r1, r0, #4 + strh r1, [r2, #0x22] + movs r3, #0x2e + ldrsh r0, [r2, r3] + cmp r0, #0 + beq _08190430 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x20 + rsbs r1, r1, #0 + cmp r0, r1 + blt _08190418 + adds r3, r2, #0 + adds r3, #0x3e + ldrb r1, [r3] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3] +_08190418: + ldrh r0, [r2, #0x30] + adds r0, #1 + strh r0, [r2, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x28 + bne _0819044C + ldr r0, _0819042C + str r0, [r2, #0x1c] + b _0819044C + .align 2, 0 +_0819042C: .4byte 0x08007141 +_08190430: + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xbf + ble _0819044C + ldr r0, _08190450 + ldr r0, [r0] + movs r3, #0x32 + ldrsh r1, [r2, r3] + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] + ldrh r0, [r2, #0x34] + bl FreeAndDestroyTrainerPicSprite +_0819044C: + pop {r0} + bx r0 + .align 2, 0 +_08190450: .4byte 0x0203CA44 + thumb_func_end SpriteCb_TrainerIconCardScrollUp + + thumb_func_start SpriteCb_TrainerIconCardScrollDown +SpriteCb_TrainerIconCardScrollDown: @ 0x08190454 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x22] + subs r1, r0, #4 + strh r1, [r2, #0x22] + movs r3, #0x2e + ldrsh r0, [r2, r3] + cmp r0, #0 + beq _08190494 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xc0 + bgt _0819047C + adds r3, r2, #0 + adds r3, #0x3e + ldrb r1, [r3] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3] +_0819047C: + ldrh r0, [r2, #0x30] + adds r0, #1 + strh r0, [r2, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x28 + bne _081904B4 + ldr r0, _08190490 + str r0, [r2, #0x1c] + b _081904B4 + .align 2, 0 +_08190490: .4byte 0x08007141 +_08190494: + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x20 + rsbs r1, r1, #0 + cmp r0, r1 + bgt _081904B4 + ldr r0, _081904B8 + ldr r0, [r0] + movs r3, #0x32 + ldrsh r1, [r2, r3] + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] + ldrh r0, [r2, #0x34] + bl FreeAndDestroyTrainerPicSprite +_081904B4: + pop {r0} + bx r0 + .align 2, 0 +_081904B8: .4byte 0x0203CA44 + thumb_func_end SpriteCb_TrainerIconCardScrollDown + + thumb_func_start SpriteCb_TrainerIconCardScrollLeft +SpriteCb_TrainerIconCardScrollLeft: @ 0x081904BC + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x20] + adds r1, r0, #4 + strh r1, [r2, #0x20] + movs r3, #0x2e + ldrsh r0, [r2, r3] + cmp r0, #0 + beq _08190500 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x20 + rsbs r1, r1, #0 + cmp r0, r1 + blt _081904E8 + adds r3, r2, #0 + adds r3, #0x3e + ldrb r1, [r3] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3] +_081904E8: + ldrh r0, [r2, #0x30] + adds r0, #1 + strh r0, [r2, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x40 + bne _0819051C + ldr r0, _081904FC + str r0, [r2, #0x1c] + b _0819051C + .align 2, 0 +_081904FC: .4byte 0x08007141 +_08190500: + lsls r1, r1, #0x10 + ldr r0, _08190520 + cmp r1, r0 + ble _0819051C + ldr r0, _08190524 + ldr r0, [r0] + movs r3, #0x32 + ldrsh r1, [r2, r3] + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] + ldrh r0, [r2, #0x34] + bl FreeAndDestroyTrainerPicSprite +_0819051C: + pop {r0} + bx r0 + .align 2, 0 +_08190520: .4byte 0x010F0000 +_08190524: .4byte 0x0203CA44 + thumb_func_end SpriteCb_TrainerIconCardScrollLeft + + thumb_func_start SpriteCb_TrainerIconCardScrollRight +SpriteCb_TrainerIconCardScrollRight: @ 0x08190528 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x20] + subs r1, r0, #4 + strh r1, [r2, #0x20] + movs r3, #0x2e + ldrsh r0, [r2, r3] + cmp r0, #0 + beq _0819056C + lsls r1, r1, #0x10 + movs r0, #0x88 + lsls r0, r0, #0x11 + cmp r1, r0 + bgt _08190552 + adds r3, r2, #0 + adds r3, #0x3e + ldrb r1, [r3] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3] +_08190552: + ldrh r0, [r2, #0x30] + adds r0, #1 + strh r0, [r2, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x40 + bne _0819058C + ldr r0, _08190568 + str r0, [r2, #0x1c] + b _0819058C + .align 2, 0 +_08190568: .4byte 0x08007141 +_0819056C: + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x20 + rsbs r1, r1, #0 + cmp r0, r1 + bgt _0819058C + ldr r0, _08190590 + ldr r0, [r0] + movs r3, #0x32 + ldrsh r1, [r2, r3] + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] + ldrh r0, [r2, #0x34] + bl FreeAndDestroyTrainerPicSprite +_0819058C: + pop {r0} + bx r0 + .align 2, 0 +_08190590: .4byte 0x0203CA44 + thumb_func_end SpriteCb_TrainerIconCardScrollRight + + thumb_func_start SpriteCb_MonIcon +SpriteCb_MonIcon: @ 0x08190594 + push {lr} + adds r1, r0, #0 + movs r2, #0x34 + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _081905A6 + adds r0, r1, #0 + bl UpdateMonIconFrame +_081905A6: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SpriteCb_MonIcon + + thumb_func_start SpriteCb_MonIconCardScrollUp +SpriteCb_MonIconCardScrollUp: @ 0x081905AC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x34 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _081905BE + adds r0, r4, #0 + bl UpdateMonIconFrame +_081905BE: + ldrh r0, [r4, #0x22] + adds r1, r0, #4 + strh r1, [r4, #0x22] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _08190600 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x10 + rsbs r1, r1, #0 + cmp r0, r1 + blt _081905E6 + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_081905E6: + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x28 + bne _0819061C + ldr r0, _081905FC + str r0, [r4, #0x1c] + b _0819061C + .align 2, 0 +_081905FC: .4byte 0x08190595 +_08190600: + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xaf + ble _0819061C + ldr r0, _08190624 + ldr r0, [r0] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] + adds r0, r4, #0 + bl sub_080D2798 +_0819061C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08190624: .4byte 0x0203CA44 + thumb_func_end SpriteCb_MonIconCardScrollUp + + thumb_func_start SpriteCb_MonIconCardScrollDown +SpriteCb_MonIconCardScrollDown: @ 0x08190628 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x34 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0819063A + adds r0, r4, #0 + bl UpdateMonIconFrame +_0819063A: + ldrh r0, [r4, #0x22] + subs r1, r0, #4 + strh r1, [r4, #0x22] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _08190678 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xb0 + bgt _0819065E + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_0819065E: + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x28 + bne _08190698 + ldr r0, _08190674 + str r0, [r4, #0x1c] + b _08190698 + .align 2, 0 +_08190674: .4byte 0x08190595 +_08190678: + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x10 + rsbs r1, r1, #0 + cmp r0, r1 + bgt _08190698 + ldr r0, _081906A0 + ldr r0, [r0] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] + adds r0, r4, #0 + bl sub_080D2798 +_08190698: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081906A0: .4byte 0x0203CA44 + thumb_func_end SpriteCb_MonIconCardScrollDown + + thumb_func_start SpriteCb_MonIconCardScrollLeft +SpriteCb_MonIconCardScrollLeft: @ 0x081906A4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x34 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _081906B6 + adds r0, r4, #0 + bl UpdateMonIconFrame +_081906B6: + ldrh r0, [r4, #0x20] + adds r1, r0, #4 + strh r1, [r4, #0x20] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _081906F8 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x10 + rsbs r1, r1, #0 + cmp r0, r1 + blt _081906DE + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_081906DE: + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x40 + bne _08190714 + ldr r0, _081906F4 + str r0, [r4, #0x1c] + b _08190714 + .align 2, 0 +_081906F4: .4byte 0x08190595 +_081906F8: + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xff + ble _08190714 + ldr r0, _0819071C + ldr r0, [r0] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] + adds r0, r4, #0 + bl sub_080D2798 +_08190714: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0819071C: .4byte 0x0203CA44 + thumb_func_end SpriteCb_MonIconCardScrollLeft + + thumb_func_start SpriteCb_MonIconCardScrollRight +SpriteCb_MonIconCardScrollRight: @ 0x08190720 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x34 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08190732 + adds r0, r4, #0 + bl UpdateMonIconFrame +_08190732: + ldrh r0, [r4, #0x20] + subs r1, r0, #4 + strh r1, [r4, #0x20] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _08190770 + lsls r1, r1, #0x10 + movs r0, #0x80 + lsls r0, r0, #0x11 + cmp r1, r0 + bgt _08190758 + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_08190758: + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x40 + bne _08190790 + ldr r0, _0819076C + str r0, [r4, #0x1c] + b _08190790 + .align 2, 0 +_0819076C: .4byte 0x08190595 +_08190770: + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x10 + rsbs r1, r1, #0 + cmp r0, r1 + bgt _08190790 + ldr r0, _08190798 + ldr r0, [r0] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] + adds r0, r4, #0 + bl sub_080D2798 +_08190790: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08190798: .4byte 0x0203CA44 + thumb_func_end SpriteCb_MonIconCardScrollRight + + thumb_func_start sub_0819079C +sub_0819079C: @ 0x0819079C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r3, r0, #0 + movs r0, #0x2e + ldrsh r6, [r3, r0] + ldr r2, _08190840 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r4, r0, r2 + movs r7, #0x10 + ldrsh r1, [r4, r7] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r1, #0xa + ldrsh r0, [r0, r1] + ldr r1, _08190844 + adds r0, r0, r1 + ldrb r0, [r0] + mov sl, r0 + ldr r1, _08190848 + ldr r5, [r1] + ldr r7, _0819084C + adds r0, r5, r7 + ldrh r0, [r0] + mov ip, r0 + movs r7, #0xe + ldrsh r0, [r4, r7] + mov sb, r2 + mov r8, r1 + cmp r0, #1 + bne _08190868 + movs r1, #0x30 + ldrsh r0, [r3, r1] + cmp r0, #0 + beq _08190858 + mov r2, sl + lsls r0, r2, #2 + adds r1, r5, r0 + ldr r7, _08190850 + adds r1, r1, r7 + ldrb r2, [r1] + lsls r1, r2, #0x1d + adds r4, r0, #0 + cmp r1, #0 + bge _08190812 + ldr r0, _08190854 + ldr r0, [r0] + ldrb r1, [r0, #0x10] + subs r1, #1 + lsls r0, r2, #0x1b + lsrs r0, r0, #0x1e + cmp r1, r0 + blt _0819088E +_08190812: + mov r1, r8 + ldr r0, [r1] + adds r0, r0, r4 + ldr r2, _08190850 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + blt _08190830 + ldr r0, _08190854 + ldr r0, [r0] + ldrb r0, [r0, #0x10] + subs r0, #1 + cmp r0, ip + blt _0819088E +_08190830: + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + add r0, sb + movs r7, #8 + ldrsh r0, [r0, r7] + b _081908A8 + .align 2, 0 +_08190840: .4byte 0x03005B60 +_08190844: .4byte 0x085D5AFC +_08190848: .4byte 0x03005AF0 +_0819084C: .4byte 0x00000CB2 +_08190850: .4byte 0x00000D25 +_08190854: .4byte 0x0203CA44 +_08190858: + ldr r0, _08190864 + ldr r0, [r0] + ldrb r0, [r0, #0x10] + cmp r0, #0 + bne _0819088E + b _081908A4 + .align 2, 0 +_08190864: .4byte 0x0203CA44 +_08190868: + movs r2, #0x30 + ldrsh r0, [r3, r2] + cmp r0, #0 + beq _08190884 + ldr r0, _08190880 + ldr r0, [r0] + ldrb r0, [r0, #0x10] + cmp r0, #1 + bls _0819088E + movs r7, #8 + ldrsh r0, [r4, r7] + b _081908A8 + .align 2, 0 +_08190880: .4byte 0x0203CA44 +_08190884: + ldr r0, _081908A0 + ldr r0, [r0] + ldrb r0, [r0, #0x10] + cmp r0, #0 + beq _081908A4 +_0819088E: + adds r2, r3, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + b _081908B8 + .align 2, 0 +_081908A0: .4byte 0x0203CA44 +_081908A4: + movs r1, #8 + ldrsh r0, [r4, r1] +_081908A8: + cmp r0, #2 + bne _081908B8 + adds r0, r3, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_081908B8: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0819079C + + thumb_func_start sub_081908C8 +sub_081908C8: @ 0x081908C8 + push {lr} + adds r3, r0, #0 + movs r0, #0x2e + ldrsh r1, [r3, r0] + ldr r2, _081908F0 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r1, r0, r2 + movs r2, #0xe + ldrsh r0, [r1, r2] + cmp r0, #1 + bne _081908F8 + ldr r0, _081908F4 + ldr r0, [r0] + ldrb r0, [r0, #0x10] + cmp r0, #0 + bne _08190902 + b _0819091C + .align 2, 0 +_081908F0: .4byte 0x03005B60 +_081908F4: .4byte 0x0203CA44 +_081908F8: + ldr r0, _08190918 + ldr r0, [r0] + ldrb r0, [r0, #0x10] + cmp r0, #1 + beq _0819091C +_08190902: + movs r2, #8 + ldrsh r0, [r1, r2] + cmp r0, #2 + bne _0819092A + adds r0, r3, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + b _0819092A + .align 2, 0 +_08190918: .4byte 0x0203CA44 +_0819091C: + adds r2, r3, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_0819092A: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081908C8 + + thumb_func_start sub_08190930 +sub_08190930: @ 0x08190930 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r1, _0819096C + lsls r0, r0, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r3, #0xe + ldrsh r2, [r0, r3] + mov sb, r2 + movs r4, #0x10 + ldrsh r7, [r0, r4] + movs r5, #8 + ldrsh r0, [r0, r5] + cmp r0, #8 + bls _08190962 + bl _08191E5E +_08190962: + lsls r0, r0, #2 + ldr r1, _08190970 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0819096C: .4byte 0x03005B60 +_08190970: .4byte 0x08190974 +_08190974: @ jump table + .4byte _08190998 @ case 0 + .4byte _081909D8 @ case 1 + .4byte _08190A04 @ case 2 + .4byte _08190AA4 @ case 3 + .4byte _08191C54 @ case 4 + .4byte _08191C94 @ case 5 + .4byte _08191CD4 @ case 6 + .4byte _08191D18 @ case 7 + .4byte _08191D62 @ case 8 +_08190998: + ldr r0, _081909D0 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _081909AC + bl _08191E5E +_081909AC: + movs r0, #1 + rsbs r0, r0, #0 + str r1, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r1, _081909D4 + mov r6, r8 + lsls r0, r6, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #1 + strh r1, [r0, #8] + bl _08191E5E + .align 2, 0 +_081909D0: .4byte 0x02037C74 +_081909D4: .4byte 0x03005B60 +_081909D8: + ldr r0, _081909FC + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _081909E8 + bl _08191E5E +_081909E8: + mov r1, r8 + lsls r0, r1, #2 + add r0, r8 + lsls r0, r0, #3 + ldr r2, _08190A00 + adds r0, r0, r2 + movs r1, #2 + strh r1, [r0, #8] + bl _08191E5E + .align 2, 0 +_081909FC: .4byte 0x02037C74 +_08190A00: .4byte 0x03005B60 +_08190A04: + mov r0, r8 + bl sub_08191E78 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #8 + bgt _08190A1A + cmp r6, #1 + bge _08190A4C + bl _08191E5E +_08190A1A: + cmp r6, #9 + beq _08190A22 + bl _08191E5E +_08190A22: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _08190A48 + mov r3, r8 + lsls r0, r3, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #8 + strh r1, [r0, #8] + bl _08191E5E + .align 2, 0 +_08190A48: .4byte 0x03005B60 +_08190A4C: + ldr r1, _08190AA0 + mov r4, r8 + lsls r2, r4, #2 + adds r0, r2, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r6, [r0, #0x12] + movs r5, #0xc + ldrsh r0, [r0, r5] + movs r1, #0 + mov sb, r2 + cmp r0, #0 + beq _08190A68 + movs r1, #9 +_08190A68: + adds r6, r1, #0 + adds r0, r6, #0 + adds r0, #9 + cmp r6, r0 + bge _08190A8E + adds r5, r0, #0 +_08190A74: + lsls r4, r6, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #2 + bl CopyWindowToVram + adds r0, r4, #0 + movs r1, #0 + bl FillWindowPixelBuffer + adds r6, #1 + cmp r6, r5 + blt _08190A74 +_08190A8E: + ldr r0, _08190AA0 + mov r1, sb + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #3 + strh r0, [r1, #8] + bl _08191E5E + .align 2, 0 +_08190AA0: .4byte 0x03005B60 +_08190AA4: + mov r6, r8 + lsls r1, r6, #2 + adds r0, r1, r6 + lsls r0, r0, #3 + ldr r2, _08190ACC + adds r0, r0, r2 + movs r3, #0x12 + ldrsh r6, [r0, r3] + subs r0, r6, #1 + mov sb, r1 + cmp r0, #7 + bls _08190AC0 + bl _08191E5E +_08190AC0: + lsls r0, r0, #2 + ldr r1, _08190AD0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08190ACC: .4byte 0x03005B60 +_08190AD0: .4byte 0x08190AD4 +_08190AD4: @ jump table + .4byte _08190AF4 @ case 0 + .4byte _08190E90 @ case 1 + .4byte _08191228 @ case 2 + .4byte _08191764 @ case 3 + .4byte _08190AF4 @ case 4 + .4byte _08190E90 @ case 5 + .4byte _081914D8 @ case 6 + .4byte _081919C4 @ case 7 +_08190AF4: + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + ldr r4, _08190B1C + adds r0, r0, r4 + movs r5, #0xc + ldrsh r2, [r0, r5] + cmp r2, #0 + beq _08190B30 + ldr r0, _08190B20 + movs r1, #0 + strh r1, [r0] + ldr r0, _08190B24 + strh r1, [r0] + ldr r0, _08190B28 + strh r1, [r0] + ldr r1, _08190B2C + movs r0, #0xa0 + strh r0, [r1] + b _08190B42 + .align 2, 0 +_08190B1C: .4byte 0x03005B60 +_08190B20: .4byte 0x02022AC8 +_08190B24: .4byte 0x02022ACA +_08190B28: .4byte 0x02022ACC +_08190B2C: .4byte 0x02022ACE +_08190B30: + ldr r0, _08190B88 + strh r2, [r0] + ldr r1, _08190B8C + movs r0, #0xa0 + strh r0, [r1] + ldr r0, _08190B90 + strh r2, [r0] + ldr r0, _08190B94 + strh r2, [r0] +_08190B42: + cmp r6, #1 + bne _08190BF8 + ldr r5, _08190B98 + ldr r0, [r5] + ldrb r1, [r0, #0x10] + cmp r1, #0 + bne _08190BAC + ldr r0, _08190B9C + strh r1, [r0] + ldr r1, _08190BA0 + movs r6, #0xa0 + lsls r6, r6, #1 + adds r0, r6, #0 + strh r0, [r1] + ldr r3, _08190BA4 + ldr r2, _08190BA8 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r4, #0xa + ldrsh r1, [r0, r4] + adds r1, r1, r3 + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrb r2, [r0, #0xc] + movs r0, #0x10 + orrs r0, r2 + ldrb r1, [r1] + bl DisplayTrainerInfoOnCard + b _08190CE0 + .align 2, 0 +_08190B88: .4byte 0x02022AC8 +_08190B8C: .4byte 0x02022ACA +_08190B90: .4byte 0x02022ACC +_08190B94: .4byte 0x02022ACE +_08190B98: .4byte 0x0203CA44 +_08190B9C: .4byte 0x02022AD0 +_08190BA0: .4byte 0x02022AD2 +_08190BA4: .4byte 0x085D5AFC +_08190BA8: .4byte 0x03005B60 +_08190BAC: + ldr r1, _08190BE8 + movs r6, #0x80 + lsls r6, r6, #1 + adds r0, r6, #0 + strh r0, [r1] + ldr r0, _08190BEC + movs r4, #0 + strh r4, [r0] + ldr r3, _08190BF0 + ldr r2, _08190BF4 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r6, #0xa + ldrsh r1, [r0, r6] + adds r1, r1, r3 + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrb r2, [r0, #0xc] + movs r0, #0x10 + orrs r0, r2 + ldrb r1, [r1] + bl DisplayTrainerInfoOnCard + ldr r0, [r5] + strb r4, [r0, #0x10] + b _08190CE0 + .align 2, 0 +_08190BE8: .4byte 0x02022AD0 +_08190BEC: .4byte 0x02022AD2 +_08190BF0: .4byte 0x085D5AFC +_08190BF4: .4byte 0x03005B60 +_08190BF8: + ldr r6, _08190C44 + ldr r1, [r6] + ldrb r5, [r1, #0x10] + cmp r5, #0 + bne _08190C54 + ldr r4, _08190C48 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r4 + movs r2, #0xa + ldrsh r0, [r0, r2] + adds r2, r0, #0 + subs r2, #0x10 + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + adds r1, #0x11 + bl sub_08192B3C + ldr r0, _08190C4C + strh r5, [r0] + ldr r1, _08190C50 + movs r3, #0xa0 + lsls r3, r3, #1 + adds r0, r3, #0 + strh r0, [r1] + ldr r2, [r6] + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r4 + ldrb r1, [r0, #0xc] + movs r0, #0x10 + orrs r0, r1 + ldrb r1, [r2, #0x11] + bl DisplayTrainerInfoOnCard + b _08190CE0 + .align 2, 0 +_08190C44: .4byte 0x0203CA44 +_08190C48: .4byte 0x03005B60 +_08190C4C: .4byte 0x02022AD0 +_08190C50: .4byte 0x02022AD2 +_08190C54: + cmp r5, #2 + bne _08190CA8 + ldr r4, _08190C9C + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r4 + movs r5, #0xa + ldrsh r0, [r0, r5] + adds r2, r0, #0 + subs r2, #0x10 + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + adds r1, #0x11 + bl sub_08192B3C + ldr r1, _08190CA0 + movs r0, #0 + strh r0, [r1] + ldr r1, _08190CA4 + movs r2, #0xa0 + lsls r2, r2, #1 + adds r0, r2, #0 + strh r0, [r1] + ldr r2, [r6] + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r4 + ldrb r1, [r0, #0xc] + movs r0, #0x10 + orrs r0, r1 + ldrb r1, [r2, #0x12] + bl DisplayTrainerInfoOnCard + b _08190CE0 + .align 2, 0 +_08190C9C: .4byte 0x03005B60 +_08190CA0: .4byte 0x02022AD0 +_08190CA4: .4byte 0x02022AD2 +_08190CA8: + ldr r1, _08190D50 + movs r3, #0x80 + lsls r3, r3, #1 + adds r0, r3, #0 + strh r0, [r1] + ldr r1, _08190D54 + movs r0, #0xa0 + strh r0, [r1] + ldr r1, _08190D58 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r4, #0xa + ldrsh r0, [r0, r4] + adds r2, r0, #0 + subs r2, #0x10 + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r1, [r0, #0xc] + movs r0, #0x10 + orrs r0, r1 + lsls r1, r2, #0x18 + lsrs r1, r1, #0x18 + bl DisplayMatchInfoOnCard +_08190CE0: + movs r6, #0 + ldr r5, _08190D5C + mov sl, r5 + ldr r3, _08190D60 + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + ldr r1, _08190D58 + adds r5, r0, r1 + mov ip, r6 + adds r4, r3, #0 + adds r4, #0x1c + movs r7, #1 +_08190CFA: + cmp r6, #1 + bgt _08190D68 + mov r2, sl + ldr r0, [r2] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, #0xff + beq _08190DAC + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _08190D64 + str r1, [r0] + ldrb r0, [r2] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrh r0, [r5, #0xc] + eors r0, r7 + strh r0, [r1, #0x2e] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + mov r1, ip + strh r1, [r0, #0x30] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r6, [r0, #0x32] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r1, [r0, #0x34] + b _08190DAC + .align 2, 0 +_08190D50: .4byte 0x02022AD0 +_08190D54: .4byte 0x02022AD2 +_08190D58: .4byte 0x03005B60 +_08190D5C: .4byte 0x0203CA44 +_08190D60: .4byte 0x020205AC +_08190D64: .4byte 0x081903ED +_08190D68: + mov r2, sl + ldr r0, [r2] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, #0xff + beq _08190DAC + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _08190E1C + str r1, [r0] + ldrb r0, [r2] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrh r0, [r5, #0xc] + eors r0, r7 + strh r0, [r1, #0x2e] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + mov r1, ip + strh r1, [r0, #0x30] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r6, [r0, #0x32] +_08190DAC: + adds r6, #1 + cmp r6, #7 + ble _08190CFA + movs r6, #8 + ldr r2, _08190E20 + mov ip, r2 + ldr r3, _08190E24 + ldr r1, _08190E28 + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + adds r5, r0, r1 + movs r4, #0 + adds r7, r3, #0 + adds r7, #0x1c +_08190DCA: + cmp r6, #9 + bgt _08190E30 + mov r1, ip + ldr r0, [r1] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, #0xff + beq _08190E70 + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r1, _08190E2C + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r5, #0xc] + strh r1, [r0, #0x2e] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r4, [r0, #0x30] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r6, [r0, #0x32] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r1, [r0, #0x34] + b _08190E70 + .align 2, 0 +_08190E1C: .4byte 0x081905AD +_08190E20: .4byte 0x0203CA44 +_08190E24: .4byte 0x020205AC +_08190E28: .4byte 0x03005B60 +_08190E2C: .4byte 0x081903ED +_08190E30: + mov r2, ip + ldr r0, [r2] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, #0xff + beq _08190E70 + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r1, _08190E88 + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r5, #0xc] + strh r1, [r0, #0x2e] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r4, [r0, #0x30] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r6, [r0, #0x32] +_08190E70: + adds r6, #1 + cmp r6, #0xf + ble _08190DCA + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + ldr r3, _08190E8C + adds r0, r0, r3 + movs r2, #0 + movs r1, #4 + bl _08191C44 + .align 2, 0 +_08190E88: .4byte 0x081905AD +_08190E8C: .4byte 0x03005B60 +_08190E90: + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + ldr r4, _08190EBC + adds r0, r0, r4 + movs r5, #0xc + ldrsh r2, [r0, r5] + cmp r2, #0 + beq _08190ED4 + ldr r0, _08190EC0 + movs r1, #0 + strh r1, [r0] + ldr r0, _08190EC4 + strh r1, [r0] + ldr r0, _08190EC8 + strh r1, [r0] + ldr r1, _08190ECC + ldr r2, _08190ED0 + adds r0, r2, #0 + strh r0, [r1] + b _08190EE8 + .align 2, 0 +_08190EBC: .4byte 0x03005B60 +_08190EC0: .4byte 0x02022AC8 +_08190EC4: .4byte 0x02022ACA +_08190EC8: .4byte 0x02022ACC +_08190ECC: .4byte 0x02022ACE +_08190ED0: .4byte 0x0000FF60 +_08190ED4: + ldr r0, _08190F28 + strh r2, [r0] + ldr r1, _08190F2C + ldr r3, _08190F30 + adds r0, r3, #0 + strh r0, [r1] + ldr r0, _08190F34 + strh r2, [r0] + ldr r0, _08190F38 + strh r2, [r0] +_08190EE8: + cmp r6, #2 + bne _08190F98 + ldr r5, _08190F3C + ldr r0, [r5] + ldrb r1, [r0, #0x10] + cmp r1, #0 + bne _08190F50 + ldr r0, _08190F40 + strh r1, [r0] + ldr r1, _08190F44 + movs r0, #0xa0 + strh r0, [r1] + ldr r3, _08190F48 + ldr r2, _08190F4C + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r4, #0xa + ldrsh r1, [r0, r4] + adds r1, r1, r3 + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrb r2, [r0, #0xc] + movs r0, #4 + orrs r0, r2 + ldrb r1, [r1] + bl DisplayTrainerInfoOnCard + b _08191078 + .align 2, 0 +_08190F28: .4byte 0x02022AC8 +_08190F2C: .4byte 0x02022ACA +_08190F30: .4byte 0x0000FF60 +_08190F34: .4byte 0x02022ACC +_08190F38: .4byte 0x02022ACE +_08190F3C: .4byte 0x0203CA44 +_08190F40: .4byte 0x02022AD0 +_08190F44: .4byte 0x02022AD2 +_08190F48: .4byte 0x085D5AFC +_08190F4C: .4byte 0x03005B60 +_08190F50: + ldr r0, _08190F88 + movs r4, #0 + strh r4, [r0] + ldr r0, _08190F8C + strh r4, [r0] + ldr r3, _08190F90 + ldr r2, _08190F94 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r6, #0xa + ldrsh r1, [r0, r6] + adds r1, r1, r3 + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrb r2, [r0, #0xc] + movs r0, #4 + orrs r0, r2 + ldrb r1, [r1] + bl DisplayTrainerInfoOnCard + ldr r0, [r5] + strb r4, [r0, #0x10] + b _08191078 + .align 2, 0 +_08190F88: .4byte 0x02022AD0 +_08190F8C: .4byte 0x02022AD2 +_08190F90: .4byte 0x085D5AFC +_08190F94: .4byte 0x03005B60 +_08190F98: + ldr r6, _08190FE0 + ldr r1, [r6] + ldrb r5, [r1, #0x10] + cmp r5, #0 + bne _08190FF0 + ldr r4, _08190FE4 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r4 + movs r2, #0xa + ldrsh r0, [r0, r2] + adds r2, r0, #0 + subs r2, #0x10 + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + adds r1, #0x11 + bl sub_08192B3C + ldr r0, _08190FE8 + strh r5, [r0] + ldr r1, _08190FEC + movs r0, #0xa0 + strh r0, [r1] + ldr r2, [r6] + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r4 + ldrb r1, [r0, #0xc] + movs r0, #4 + orrs r0, r1 + ldrb r1, [r2, #0x11] + bl DisplayTrainerInfoOnCard + b _08191078 + .align 2, 0 +_08190FE0: .4byte 0x0203CA44 +_08190FE4: .4byte 0x03005B60 +_08190FE8: .4byte 0x02022AD0 +_08190FEC: .4byte 0x02022AD2 +_08190FF0: + cmp r5, #2 + bne _08191040 + ldr r4, _08191034 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r4 + movs r3, #0xa + ldrsh r0, [r0, r3] + adds r2, r0, #0 + subs r2, #0x10 + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + adds r1, #0x11 + bl sub_08192B3C + ldr r1, _08191038 + movs r0, #0 + strh r0, [r1] + ldr r1, _0819103C + movs r0, #0xa0 + strh r0, [r1] + ldr r2, [r6] + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r4 + ldrb r1, [r0, #0xc] + movs r0, #4 + orrs r0, r1 + ldrb r1, [r2, #0x12] + bl DisplayTrainerInfoOnCard + b _08191078 + .align 2, 0 +_08191034: .4byte 0x03005B60 +_08191038: .4byte 0x02022AD0 +_0819103C: .4byte 0x02022AD2 +_08191040: + ldr r1, _081910E8 + movs r4, #0x80 + lsls r4, r4, #1 + adds r0, r4, #0 + strh r0, [r1] + ldr r1, _081910EC + movs r0, #0 + strh r0, [r1] + ldr r1, _081910F0 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r5, #0xa + ldrsh r0, [r0, r5] + adds r2, r0, #0 + subs r2, #0x10 + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r1, [r0, #0xc] + movs r0, #4 + orrs r0, r1 + lsls r1, r2, #0x18 + lsrs r1, r1, #0x18 + bl DisplayMatchInfoOnCard +_08191078: + movs r6, #0 + ldr r0, _081910F4 + mov sl, r0 + ldr r3, _081910F8 + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + ldr r1, _081910F0 + adds r5, r0, r1 + mov ip, r6 + adds r4, r3, #0 + adds r4, #0x1c + movs r7, #1 +_08191092: + cmp r6, #1 + bgt _08191100 + mov r2, sl + ldr r0, [r2] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, #0xff + beq _08191144 + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _081910FC + str r1, [r0] + ldrb r0, [r2] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrh r0, [r5, #0xc] + eors r0, r7 + strh r0, [r1, #0x2e] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + mov r1, ip + strh r1, [r0, #0x30] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r6, [r0, #0x32] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r1, [r0, #0x34] + b _08191144 + .align 2, 0 +_081910E8: .4byte 0x02022AD0 +_081910EC: .4byte 0x02022AD2 +_081910F0: .4byte 0x03005B60 +_081910F4: .4byte 0x0203CA44 +_081910F8: .4byte 0x020205AC +_081910FC: .4byte 0x08190455 +_08191100: + mov r2, sl + ldr r0, [r2] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, #0xff + beq _08191144 + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _081911B4 + str r1, [r0] + ldrb r0, [r2] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrh r0, [r5, #0xc] + eors r0, r7 + strh r0, [r1, #0x2e] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + mov r1, ip + strh r1, [r0, #0x30] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r6, [r0, #0x32] +_08191144: + adds r6, #1 + cmp r6, #7 + ble _08191092 + movs r6, #8 + ldr r2, _081911B8 + mov ip, r2 + ldr r3, _081911BC + ldr r1, _081911C0 + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + adds r5, r0, r1 + movs r4, #0 + adds r7, r3, #0 + adds r7, #0x1c +_08191162: + cmp r6, #9 + bgt _081911C8 + mov r1, ip + ldr r0, [r1] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, #0xff + beq _08191208 + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r1, _081911C4 + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r5, #0xc] + strh r1, [r0, #0x2e] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r4, [r0, #0x30] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r6, [r0, #0x32] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r1, [r0, #0x34] + b _08191208 + .align 2, 0 +_081911B4: .4byte 0x08190629 +_081911B8: .4byte 0x0203CA44 +_081911BC: .4byte 0x020205AC +_081911C0: .4byte 0x03005B60 +_081911C4: .4byte 0x08190455 +_081911C8: + mov r2, ip + ldr r0, [r2] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, #0xff + beq _08191208 + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r1, _08191220 + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r5, #0xc] + strh r1, [r0, #0x2e] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r4, [r0, #0x30] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r6, [r0, #0x32] +_08191208: + adds r6, #1 + cmp r6, #0xf + ble _08191162 + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + ldr r3, _08191224 + adds r0, r0, r3 + movs r2, #0 + movs r1, #5 + bl _08191C44 + .align 2, 0 +_08191220: .4byte 0x08190629 +_08191224: .4byte 0x03005B60 +_08191228: + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + ldr r4, _08191254 + adds r0, r0, r4 + movs r5, #0xc + ldrsh r2, [r0, r5] + cmp r2, #0 + beq _08191268 + ldr r0, _08191258 + movs r1, #0 + strh r1, [r0] + ldr r0, _0819125C + strh r1, [r0] + ldr r2, _08191260 + movs r6, #0x80 + lsls r6, r6, #1 + adds r0, r6, #0 + strh r0, [r2] + ldr r0, _08191264 + strh r1, [r0] + b _0819127E + .align 2, 0 +_08191254: .4byte 0x03005B60 +_08191258: .4byte 0x02022AC8 +_0819125C: .4byte 0x02022ACA +_08191260: .4byte 0x02022ACC +_08191264: .4byte 0x02022ACE +_08191268: + ldr r1, _081912C0 + movs r3, #0x80 + lsls r3, r3, #1 + adds r0, r3, #0 + strh r0, [r1] + ldr r0, _081912C4 + strh r2, [r0] + ldr r0, _081912C8 + strh r2, [r0] + ldr r0, _081912CC + strh r2, [r0] +_0819127E: + ldr r0, _081912D0 + ldr r4, [r0] + ldrb r0, [r4, #0x10] + cmp r0, #0 + bne _081912E4 + ldr r1, _081912D4 + movs r4, #0x80 + lsls r4, r4, #1 + adds r0, r4, #0 + strh r0, [r1] + ldr r1, _081912D8 + movs r0, #0xa0 + strh r0, [r1] + ldr r3, _081912DC + ldr r2, _081912E0 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r5, #0xa + ldrsh r1, [r0, r5] + adds r1, r1, r3 + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrb r2, [r0, #0xc] + movs r0, #8 + orrs r0, r2 + ldrb r1, [r1] + bl DisplayTrainerInfoOnCard + b _08191322 + .align 2, 0 +_081912C0: .4byte 0x02022AC8 +_081912C4: .4byte 0x02022ACA +_081912C8: .4byte 0x02022ACC +_081912CC: .4byte 0x02022ACE +_081912D0: .4byte 0x0203CA44 +_081912D4: .4byte 0x02022AD0 +_081912D8: .4byte 0x02022AD2 +_081912DC: .4byte 0x085D5AFC +_081912E0: .4byte 0x03005B60 +_081912E4: + ldr r1, _08191394 + movs r6, #0x80 + lsls r6, r6, #1 + adds r0, r6, #0 + strh r0, [r1] + ldr r1, _08191398 + movs r0, #0 + strh r0, [r1] + ldr r3, _0819139C + ldr r2, _081913A0 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r5, #0xa + ldrsh r1, [r0, r5] + lsls r1, r1, #2 + subs r1, #1 + ldrb r4, [r4, #0x10] + adds r1, r1, r4 + adds r1, r1, r3 + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrb r2, [r0, #0xc] + movs r0, #8 + orrs r0, r2 + ldrb r1, [r1] + bl DisplayMatchInfoOnCard +_08191322: + movs r6, #0 + ldr r0, _081913A4 + mov sl, r0 + ldr r3, _081913A8 + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + ldr r1, _081913A0 + adds r5, r0, r1 + mov ip, r6 + adds r4, r3, #0 + adds r4, #0x1c + movs r7, #1 +_0819133C: + cmp r6, #1 + bgt _081913B0 + mov r2, sl + ldr r0, [r2] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, #0xff + beq _081913F4 + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _081913AC + str r1, [r0] + ldrb r0, [r2] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrh r0, [r5, #0xc] + eors r0, r7 + strh r0, [r1, #0x2e] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + mov r1, ip + strh r1, [r0, #0x30] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r6, [r0, #0x32] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r1, [r0, #0x34] + b _081913F4 + .align 2, 0 +_08191394: .4byte 0x02022AD0 +_08191398: .4byte 0x02022AD2 +_0819139C: .4byte 0x085D5BD8 +_081913A0: .4byte 0x03005B60 +_081913A4: .4byte 0x0203CA44 +_081913A8: .4byte 0x020205AC +_081913AC: .4byte 0x081904BD +_081913B0: + mov r2, sl + ldr r0, [r2] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, #0xff + beq _081913F4 + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _08191464 + str r1, [r0] + ldrb r0, [r2] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrh r0, [r5, #0xc] + eors r0, r7 + strh r0, [r1, #0x2e] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + mov r1, ip + strh r1, [r0, #0x30] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r6, [r0, #0x32] +_081913F4: + adds r6, #1 + cmp r6, #7 + ble _0819133C + movs r6, #8 + ldr r2, _08191468 + mov ip, r2 + ldr r3, _0819146C + ldr r1, _08191470 + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + adds r5, r0, r1 + movs r4, #0 + adds r7, r3, #0 + adds r7, #0x1c +_08191412: + cmp r6, #9 + bgt _08191478 + mov r1, ip + ldr r0, [r1] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, #0xff + beq _081914B8 + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r1, _08191474 + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r5, #0xc] + strh r1, [r0, #0x2e] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r4, [r0, #0x30] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r6, [r0, #0x32] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r1, [r0, #0x34] + b _081914B8 + .align 2, 0 +_08191464: .4byte 0x081906A5 +_08191468: .4byte 0x0203CA44 +_0819146C: .4byte 0x020205AC +_08191470: .4byte 0x03005B60 +_08191474: .4byte 0x081904BD +_08191478: + mov r2, ip + ldr r0, [r2] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, #0xff + beq _081914B8 + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r1, _081914D0 + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r5, #0xc] + strh r1, [r0, #0x2e] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r4, [r0, #0x30] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r6, [r0, #0x32] +_081914B8: + adds r6, #1 + cmp r6, #0xf + ble _08191412 + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + ldr r3, _081914D4 + adds r0, r0, r3 + movs r2, #0 + movs r1, #6 + b _08191C44 + .align 2, 0 +_081914D0: .4byte 0x081906A5 +_081914D4: .4byte 0x03005B60 +_081914D8: + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + ldr r4, _08191504 + adds r0, r0, r4 + movs r5, #0xc + ldrsh r2, [r0, r5] + cmp r2, #0 + beq _08191518 + ldr r0, _08191508 + movs r1, #0 + strh r1, [r0] + ldr r0, _0819150C + strh r1, [r0] + ldr r2, _08191510 + movs r6, #0x80 + lsls r6, r6, #1 + adds r0, r6, #0 + strh r0, [r2] + ldr r0, _08191514 + strh r1, [r0] + b _0819152E + .align 2, 0 +_08191504: .4byte 0x03005B60 +_08191508: .4byte 0x02022AC8 +_0819150C: .4byte 0x02022ACA +_08191510: .4byte 0x02022ACC +_08191514: .4byte 0x02022ACE +_08191518: + ldr r1, _08191560 + movs r3, #0x80 + lsls r3, r3, #1 + adds r0, r3, #0 + strh r0, [r1] + ldr r0, _08191564 + strh r2, [r0] + ldr r0, _08191568 + strh r2, [r0] + ldr r0, _0819156C + strh r2, [r0] +_0819152E: + ldr r0, _08191570 + ldr r2, [r0] + ldrb r0, [r2, #0x10] + cmp r0, #0 + bne _08191580 + ldr r1, _08191574 + movs r4, #0x80 + lsls r4, r4, #1 + adds r0, r4, #0 + strh r0, [r1] + ldr r1, _08191578 + movs r0, #0xa0 + strh r0, [r1] + ldr r1, _0819157C + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r1, [r0, #0xc] + movs r0, #8 + orrs r0, r1 + ldrb r1, [r2, #0x11] + bl DisplayTrainerInfoOnCard + b _081915B4 + .align 2, 0 +_08191560: .4byte 0x02022AC8 +_08191564: .4byte 0x02022ACA +_08191568: .4byte 0x02022ACC +_0819156C: .4byte 0x02022ACE +_08191570: .4byte 0x0203CA44 +_08191574: .4byte 0x02022AD0 +_08191578: .4byte 0x02022AD2 +_0819157C: .4byte 0x03005B60 +_08191580: + ldr r1, _08191624 + movs r0, #0 + strh r0, [r1] + ldr r1, _08191628 + movs r0, #0xa0 + strh r0, [r1] + ldr r1, _0819162C + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r5, #0xa + ldrsh r0, [r0, r5] + adds r2, r0, #0 + subs r2, #0x10 + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r1, [r0, #0xc] + movs r0, #8 + orrs r0, r1 + lsls r1, r2, #0x18 + lsrs r1, r1, #0x18 + bl DisplayMatchInfoOnCard +_081915B4: + movs r6, #0 + ldr r0, _08191630 + mov sl, r0 + ldr r3, _08191634 + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + ldr r1, _0819162C + adds r5, r0, r1 + mov ip, r6 + adds r4, r3, #0 + adds r4, #0x1c + movs r7, #1 +_081915CE: + cmp r6, #1 + bgt _0819163C + mov r2, sl + ldr r0, [r2] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, #0xff + beq _08191680 + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _08191638 + str r1, [r0] + ldrb r0, [r2] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrh r0, [r5, #0xc] + eors r0, r7 + strh r0, [r1, #0x2e] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + mov r1, ip + strh r1, [r0, #0x30] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r6, [r0, #0x32] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r1, [r0, #0x34] + b _08191680 + .align 2, 0 +_08191624: .4byte 0x02022AD0 +_08191628: .4byte 0x02022AD2 +_0819162C: .4byte 0x03005B60 +_08191630: .4byte 0x0203CA44 +_08191634: .4byte 0x020205AC +_08191638: .4byte 0x081904BD +_0819163C: + mov r2, sl + ldr r0, [r2] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, #0xff + beq _08191680 + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _081916F0 + str r1, [r0] + ldrb r0, [r2] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrh r0, [r5, #0xc] + eors r0, r7 + strh r0, [r1, #0x2e] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + mov r1, ip + strh r1, [r0, #0x30] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r6, [r0, #0x32] +_08191680: + adds r6, #1 + cmp r6, #7 + ble _081915CE + movs r6, #8 + ldr r2, _081916F4 + mov ip, r2 + ldr r3, _081916F8 + ldr r1, _081916FC + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + adds r5, r0, r1 + movs r4, #0 + adds r7, r3, #0 + adds r7, #0x1c +_0819169E: + cmp r6, #9 + bgt _08191704 + mov r1, ip + ldr r0, [r1] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, #0xff + beq _08191744 + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r1, _08191700 + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r5, #0xc] + strh r1, [r0, #0x2e] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r4, [r0, #0x30] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r6, [r0, #0x32] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r1, [r0, #0x34] + b _08191744 + .align 2, 0 +_081916F0: .4byte 0x081906A5 +_081916F4: .4byte 0x0203CA44 +_081916F8: .4byte 0x020205AC +_081916FC: .4byte 0x03005B60 +_08191700: .4byte 0x081904BD +_08191704: + mov r2, ip + ldr r0, [r2] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, #0xff + beq _08191744 + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r1, _0819175C + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r5, #0xc] + strh r1, [r0, #0x2e] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r4, [r0, #0x30] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r6, [r0, #0x32] +_08191744: + adds r6, #1 + cmp r6, #0xf + ble _0819169E + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + ldr r3, _08191760 + adds r0, r0, r3 + movs r2, #0 + movs r1, #6 + b _08191C44 + .align 2, 0 +_0819175C: .4byte 0x081906A5 +_08191760: .4byte 0x03005B60 +_08191764: + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + ldr r4, _08191790 + adds r0, r0, r4 + movs r5, #0xc + ldrsh r2, [r0, r5] + cmp r2, #0 + beq _081917A4 + ldr r0, _08191794 + movs r1, #0 + strh r1, [r0] + ldr r0, _08191798 + strh r1, [r0] + ldr r2, _0819179C + movs r6, #0xff + lsls r6, r6, #8 + adds r0, r6, #0 + strh r0, [r2] + ldr r0, _081917A0 + strh r1, [r0] + b _081917BA + .align 2, 0 +_08191790: .4byte 0x03005B60 +_08191794: .4byte 0x02022AC8 +_08191798: .4byte 0x02022ACA +_0819179C: .4byte 0x02022ACC +_081917A0: .4byte 0x02022ACE +_081917A4: + ldr r1, _081917D4 + movs r3, #0xff + lsls r3, r3, #8 + adds r0, r3, #0 + strh r0, [r1] + ldr r0, _081917D8 + strh r2, [r0] + ldr r0, _081917DC + strh r2, [r0] + ldr r0, _081917E0 + strh r2, [r0] +_081917BA: + ldr r0, _081917E4 + ldr r0, [r0] + ldrb r0, [r0, #0x10] + cmp r0, #1 + bne _081917F0 + ldr r1, _081917E8 + movs r0, #0 + strh r0, [r1] + ldr r1, _081917EC + movs r0, #0xa0 + strh r0, [r1] + b _081917FA + .align 2, 0 +_081917D4: .4byte 0x02022AC8 +_081917D8: .4byte 0x02022ACA +_081917DC: .4byte 0x02022ACC +_081917E0: .4byte 0x02022ACE +_081917E4: .4byte 0x0203CA44 +_081917E8: .4byte 0x02022AD0 +_081917EC: .4byte 0x02022AD2 +_081917F0: + ldr r0, _08191890 + movs r1, #0 + strh r1, [r0] + ldr r0, _08191894 + strh r1, [r0] +_081917FA: + ldr r4, _08191898 + ldr r5, _0819189C + ldr r3, [r5] + ldr r2, _081918A0 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r6, #0xa + ldrsh r1, [r0, r6] + lsls r1, r1, #2 + subs r1, #1 + ldrb r3, [r3, #0x10] + adds r1, r1, r3 + adds r1, r1, r4 + mov r4, sb + add r4, r8 + lsls r4, r4, #3 + adds r4, r4, r2 + ldrb r2, [r4, #0xc] + movs r0, #2 + orrs r0, r2 + ldrb r1, [r1] + bl DisplayMatchInfoOnCard + movs r6, #0 + ldr r7, _081918A4 + mov ip, r6 + mov sl, r5 + adds r5, r7, #0 + adds r5, #0x1c +_08191838: + cmp r6, #1 + bgt _081918AC + mov r1, sl + ldr r0, [r1] + adds r3, r0, r6 + ldrb r0, [r3] + cmp r0, #0xff + beq _081918F2 + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _081918A8 + str r1, [r0] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrh r1, [r4, #0xc] + movs r2, #1 + eors r1, r2 + strh r1, [r0, #0x2e] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + mov r2, ip + strh r2, [r0, #0x30] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r6, [r0, #0x32] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r1, [r0, #0x34] + b _081918F2 + .align 2, 0 +_08191890: .4byte 0x02022AD0 +_08191894: .4byte 0x02022AD2 +_08191898: .4byte 0x085D5BD8 +_0819189C: .4byte 0x0203CA44 +_081918A0: .4byte 0x03005B60 +_081918A4: .4byte 0x020205AC +_081918A8: .4byte 0x08190529 +_081918AC: + mov r3, sl + ldr r0, [r3] + adds r3, r0, r6 + ldrb r0, [r3] + cmp r0, #0xff + beq _081918F2 + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _08191964 + str r1, [r0] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrh r1, [r4, #0xc] + movs r2, #1 + eors r1, r2 + strh r1, [r0, #0x2e] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + mov r1, ip + strh r1, [r0, #0x30] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r6, [r0, #0x32] +_081918F2: + adds r6, #1 + cmp r6, #7 + ble _08191838 + movs r6, #8 + ldr r2, _08191968 + mov ip, r2 + ldr r3, _0819196C + ldr r1, _08191970 + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + adds r5, r0, r1 + movs r4, #0 + adds r7, r3, #0 + adds r7, #0x1c +_08191910: + cmp r6, #9 + bgt _08191978 + mov r1, ip + ldr r0, [r1] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, #0xff + beq _081919B8 + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r1, _08191974 + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r5, #0xc] + strh r1, [r0, #0x2e] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r4, [r0, #0x30] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r6, [r0, #0x32] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r1, [r0, #0x34] + b _081919B8 + .align 2, 0 +_08191964: .4byte 0x08190721 +_08191968: .4byte 0x0203CA44 +_0819196C: .4byte 0x020205AC +_08191970: .4byte 0x03005B60 +_08191974: .4byte 0x08190529 +_08191978: + mov r2, ip + ldr r0, [r2] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, #0xff + beq _081919B8 + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r1, _081919C0 + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r5, #0xc] + strh r1, [r0, #0x2e] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r4, [r0, #0x30] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r6, [r0, #0x32] +_081919B8: + adds r6, #1 + cmp r6, #0xf + ble _08191910 + b _08191C36 + .align 2, 0 +_081919C0: .4byte 0x08190721 +_081919C4: + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + ldr r4, _081919F0 + adds r0, r0, r4 + movs r5, #0xc + ldrsh r2, [r0, r5] + cmp r2, #0 + beq _08191A04 + ldr r0, _081919F4 + movs r1, #0 + strh r1, [r0] + ldr r0, _081919F8 + strh r1, [r0] + ldr r2, _081919FC + movs r6, #0xff + lsls r6, r6, #8 + adds r0, r6, #0 + strh r0, [r2] + ldr r0, _08191A00 + strh r1, [r0] + b _08191A1A + .align 2, 0 +_081919F0: .4byte 0x03005B60 +_081919F4: .4byte 0x02022AC8 +_081919F8: .4byte 0x02022ACA +_081919FC: .4byte 0x02022ACC +_08191A00: .4byte 0x02022ACE +_08191A04: + ldr r1, _08191A4C + movs r3, #0xff + lsls r3, r3, #8 + adds r0, r3, #0 + strh r0, [r1] + ldr r0, _08191A50 + strh r2, [r0] + ldr r0, _08191A54 + strh r2, [r0] + ldr r0, _08191A58 + strh r2, [r0] +_08191A1A: + ldr r0, _08191A5C + ldr r2, [r0] + ldrb r0, [r2, #0x10] + cmp r0, #2 + bne _08191A6C + ldr r1, _08191A60 + movs r4, #0x80 + lsls r4, r4, #1 + adds r0, r4, #0 + strh r0, [r1] + ldr r1, _08191A64 + movs r0, #0xa0 + strh r0, [r1] + ldr r1, _08191A68 + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r1, [r0, #0xc] + movs r0, #2 + orrs r0, r1 + ldrb r1, [r2, #0x12] + bl DisplayTrainerInfoOnCard + b _08191AA0 + .align 2, 0 +_08191A4C: .4byte 0x02022AC8 +_08191A50: .4byte 0x02022ACA +_08191A54: .4byte 0x02022ACC +_08191A58: .4byte 0x02022ACE +_08191A5C: .4byte 0x0203CA44 +_08191A60: .4byte 0x02022AD0 +_08191A64: .4byte 0x02022AD2 +_08191A68: .4byte 0x03005B60 +_08191A6C: + ldr r1, _08191B10 + movs r0, #0 + strh r0, [r1] + ldr r1, _08191B14 + movs r0, #0xa0 + strh r0, [r1] + ldr r1, _08191B18 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r5, #0xa + ldrsh r0, [r0, r5] + adds r2, r0, #0 + subs r2, #0x10 + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r1, [r0, #0xc] + movs r0, #2 + orrs r0, r1 + lsls r1, r2, #0x18 + lsrs r1, r1, #0x18 + bl DisplayMatchInfoOnCard +_08191AA0: + movs r6, #0 + ldr r0, _08191B1C + mov sl, r0 + ldr r3, _08191B20 + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + ldr r1, _08191B18 + adds r5, r0, r1 + mov ip, r6 + adds r4, r3, #0 + adds r4, #0x1c + movs r7, #1 +_08191ABA: + cmp r6, #1 + bgt _08191B28 + mov r2, sl + ldr r0, [r2] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, #0xff + beq _08191B6C + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _08191B24 + str r1, [r0] + ldrb r0, [r2] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrh r0, [r5, #0xc] + eors r0, r7 + strh r0, [r1, #0x2e] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + mov r1, ip + strh r1, [r0, #0x30] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r6, [r0, #0x32] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r1, [r0, #0x34] + b _08191B6C + .align 2, 0 +_08191B10: .4byte 0x02022AD0 +_08191B14: .4byte 0x02022AD2 +_08191B18: .4byte 0x03005B60 +_08191B1C: .4byte 0x0203CA44 +_08191B20: .4byte 0x020205AC +_08191B24: .4byte 0x08190529 +_08191B28: + mov r2, sl + ldr r0, [r2] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, #0xff + beq _08191B6C + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _08191BDC + str r1, [r0] + ldrb r0, [r2] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrh r0, [r5, #0xc] + eors r0, r7 + strh r0, [r1, #0x2e] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + mov r1, ip + strh r1, [r0, #0x30] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r6, [r0, #0x32] +_08191B6C: + adds r6, #1 + cmp r6, #7 + ble _08191ABA + movs r6, #8 + ldr r2, _08191BE0 + mov ip, r2 + ldr r3, _08191BE4 + ldr r1, _08191BE8 + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + adds r5, r0, r1 + movs r4, #0 + adds r7, r3, #0 + adds r7, #0x1c +_08191B8A: + cmp r6, #9 + bgt _08191BF0 + mov r1, ip + ldr r0, [r1] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, #0xff + beq _08191C30 + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r1, _08191BEC + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r5, #0xc] + strh r1, [r0, #0x2e] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r4, [r0, #0x30] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r6, [r0, #0x32] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r1, [r0, #0x34] + b _08191C30 + .align 2, 0 +_08191BDC: .4byte 0x08190721 +_08191BE0: .4byte 0x0203CA44 +_08191BE4: .4byte 0x020205AC +_08191BE8: .4byte 0x03005B60 +_08191BEC: .4byte 0x08190529 +_08191BF0: + mov r2, ip + ldr r0, [r2] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, #0xff + beq _08191C30 + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r1, _08191C4C + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r5, #0xc] + strh r1, [r0, #0x2e] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r4, [r0, #0x30] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r6, [r0, #0x32] +_08191C30: + adds r6, #1 + cmp r6, #0xf + ble _08191B8A +_08191C36: + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + ldr r3, _08191C50 + adds r0, r0, r3 + movs r2, #0 + movs r1, #7 +_08191C44: + strh r1, [r0, #8] + strh r2, [r0, #0x12] + b _08191E5E + .align 2, 0 +_08191C4C: .4byte 0x08190721 +_08191C50: .4byte 0x03005B60 +_08191C54: + mov r4, r8 + lsls r0, r4, #2 + add r0, r8 + lsls r0, r0, #3 + ldr r5, _08191C84 + adds r1, r0, r5 + ldrh r0, [r1, #0x12] + adds r0, #1 + strh r0, [r1, #0x12] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x29 + beq _08191D5C + ldr r1, _08191C88 + ldrh r0, [r1] + subs r0, #4 + strh r0, [r1] + ldr r1, _08191C8C + ldrh r0, [r1] + subs r0, #4 + strh r0, [r1] + ldr r1, _08191C90 + b _08191D00 + .align 2, 0 +_08191C84: .4byte 0x03005B60 +_08191C88: .4byte 0x02022ACA +_08191C8C: .4byte 0x02022ACE +_08191C90: .4byte 0x02022AD2 +_08191C94: + mov r6, r8 + lsls r0, r6, #2 + add r0, r8 + lsls r0, r0, #3 + ldr r2, _08191CC4 + adds r1, r0, r2 + ldrh r0, [r1, #0x12] + adds r0, #1 + strh r0, [r1, #0x12] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x29 + beq _08191D5C + ldr r1, _08191CC8 + ldrh r0, [r1] + adds r0, #4 + strh r0, [r1] + ldr r1, _08191CCC + ldrh r0, [r1] + adds r0, #4 + strh r0, [r1] + ldr r1, _08191CD0 + b _08191D44 + .align 2, 0 +_08191CC4: .4byte 0x03005B60 +_08191CC8: .4byte 0x02022ACA +_08191CCC: .4byte 0x02022ACE +_08191CD0: .4byte 0x02022AD2 +_08191CD4: + mov r3, r8 + lsls r0, r3, #2 + add r0, r8 + lsls r0, r0, #3 + ldr r4, _08191D08 + adds r1, r0, r4 + ldrh r0, [r1, #0x12] + adds r0, #1 + strh r0, [r1, #0x12] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x41 + beq _08191D5C + ldr r1, _08191D0C + ldrh r0, [r1] + subs r0, #4 + strh r0, [r1] + ldr r1, _08191D10 + ldrh r0, [r1] + subs r0, #4 + strh r0, [r1] + ldr r1, _08191D14 +_08191D00: + ldrh r0, [r1] + subs r0, #4 + strh r0, [r1] + b _08191E5E + .align 2, 0 +_08191D08: .4byte 0x03005B60 +_08191D0C: .4byte 0x02022AC8 +_08191D10: .4byte 0x02022ACC +_08191D14: .4byte 0x02022AD0 +_08191D18: + mov r5, r8 + lsls r0, r5, #2 + add r0, r8 + lsls r0, r0, #3 + ldr r6, _08191D4C + adds r1, r0, r6 + ldrh r0, [r1, #0x12] + adds r0, #1 + strh r0, [r1, #0x12] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x41 + beq _08191D5C + ldr r1, _08191D50 + ldrh r0, [r1] + adds r0, #4 + strh r0, [r1] + ldr r1, _08191D54 + ldrh r0, [r1] + adds r0, #4 + strh r0, [r1] + ldr r1, _08191D58 +_08191D44: + ldrh r0, [r1] + adds r0, #4 + strh r0, [r1] + b _08191E5E + .align 2, 0 +_08191D4C: .4byte 0x03005B60 +_08191D50: .4byte 0x02022AC8 +_08191D54: .4byte 0x02022ACC +_08191D58: .4byte 0x02022AD0 +_08191D5C: + movs r0, #2 + strh r0, [r1, #8] + b _08191E5E +_08191D62: + ldr r0, _08191D88 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08191E5E + movs r6, #0 + ldr r4, _08191D8C +_08191D72: + cmp r6, #1 + bgt _08191D90 + ldr r0, [r4] + adds r1, r0, r6 + ldrb r0, [r1] + cmp r0, #0xff + beq _08191DAA + bl FreeAndDestroyTrainerPicSprite + b _08191DAA + .align 2, 0 +_08191D88: .4byte 0x02037C74 +_08191D8C: .4byte 0x0203CA44 +_08191D90: + ldr r0, [r4] + adds r1, r0, r6 + ldrb r0, [r1] + cmp r0, #0xff + beq _08191DAA + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08191DC8 + adds r0, r0, r1 + bl sub_080D2798 +_08191DAA: + adds r6, #1 + cmp r6, #7 + ble _08191D72 + movs r6, #8 + ldr r4, _08191DCC +_08191DB4: + cmp r6, #9 + bgt _08191DD0 + ldr r0, [r4] + adds r1, r0, r6 + ldrb r0, [r1] + cmp r0, #0xff + beq _08191DEA + bl FreeAndDestroyTrainerPicSprite + b _08191DEA + .align 2, 0 +_08191DC8: .4byte 0x020205AC +_08191DCC: .4byte 0x0203CA44 +_08191DD0: + ldr r0, [r4] + adds r1, r0, r6 + ldrb r0, [r1] + cmp r0, #0xff + beq _08191DEA + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08191E14 + adds r0, r0, r1 + bl sub_080D2798 +_08191DEA: + adds r6, #1 + cmp r6, #0xf + ble _08191DB4 + bl FreeMonIconPalettes + ldr r4, _08191E18 + ldr r0, [r4] + bl Free + movs r5, #0 + str r5, [r4] + bl FreeAllWindowBuffers + mov r0, sb + cmp r0, #0 + bne _08191E20 + ldr r0, _08191E1C + bl SetMainCallback2 + b _08191E58 + .align 2, 0 +_08191E14: .4byte 0x020205AC +_08191E18: .4byte 0x0203CA44 +_08191E1C: .4byte 0x08085B35 +_08191E20: + ldr r0, _08191E70 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r2, _08191E74 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r5, [r1, #8] + strh r5, [r1, #0xa] + movs r0, #3 + strh r0, [r1, #0xc] + mov r3, r8 + lsls r0, r3, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrh r0, [r0, #0x10] + strh r0, [r1, #0xe] + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrh r0, [r0, #0x14] + strh r0, [r1, #0x10] +_08191E58: + mov r0, r8 + bl DestroyTask +_08191E5E: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08191E70: .4byte 0x08193E01 +_08191E74: .4byte 0x03005B60 + thumb_func_end sub_08190930 + + thumb_func_start sub_08191E78 +sub_08191E78: @ 0x08191E78 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + movs r7, #0 + ldr r2, _08191EF8 + lsls r0, r0, #2 + add r0, sb + lsls r0, r0, #3 + adds r0, r0, r2 + mov ip, r0 + movs r1, #0x10 + ldrsh r6, [r0, r1] + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r3, #0xa + ldrsh r5, [r0, r3] + ldr r0, _08191EFC + adds r0, r5, r0 + ldrb r0, [r0] + mov sl, r0 + ldr r3, _08191F00 + ldr r0, [r3] + ldr r1, _08191F04 + adds r0, r0, r1 + ldrh r0, [r0] + mov r8, r0 + ldr r1, _08191F08 + ldrh r4, [r1, #0x2e] + movs r0, #3 + ands r0, r4 + adds r2, r1, #0 + cmp r0, #0 + beq _08191ECA + movs r7, #9 +_08191ECA: + mov r3, ip + movs r1, #0xe + ldrsh r0, [r3, r1] + cmp r0, #0 + bne _08191ED6 + b _08192128 +_08191ED6: + cmp r0, #1 + beq _08191EDC + b _0819200C +_08191EDC: + movs r0, #0x40 + ands r0, r4 + cmp r0, #0 + beq _08191F16 + ldr r0, _08191F0C + ldr r0, [r0] + ldrb r0, [r0, #0x10] + cmp r0, #0 + bne _08191F16 + cmp r5, #0 + bne _08191F10 + movs r5, #0xf + b _08191F12 + .align 2, 0 +_08191EF8: .4byte 0x03005B60 +_08191EFC: .4byte 0x085D5AFC +_08191F00: .4byte 0x03005AF0 +_08191F04: .4byte 0x00000CB2 +_08191F08: .4byte 0x03002360 +_08191F0C: .4byte 0x0203CA44 +_08191F10: + subs r5, #1 +_08191F12: + movs r7, #1 + b _08191FBC +_08191F16: + ldrh r1, [r2, #0x2e] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08191F3E + ldr r0, _08191F34 + ldr r0, [r0] + ldrb r0, [r0, #0x10] + cmp r0, #0 + bne _08191F3E + cmp r5, #0xf + bne _08191F38 + movs r5, #0 + b _08191F3A + .align 2, 0 +_08191F34: .4byte 0x0203CA44 +_08191F38: + adds r5, #1 +_08191F3A: + movs r7, #2 + b _08191FBC +_08191F3E: + ldrh r1, [r2, #0x2e] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08191F60 + ldr r0, _08191F5C + ldr r1, [r0] + ldrb r0, [r1, #0x10] + cmp r0, #0 + beq _08191F60 + subs r0, #1 + strb r0, [r1, #0x10] + movs r7, #3 + b _08191FBC + .align 2, 0 +_08191F5C: .4byte 0x0203CA44 +_08191F60: + ldrh r1, [r2, #0x2e] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08191FBC + ldr r2, _08191FE8 + ldr r0, [r2] + mov r3, sl + lsls r1, r3, #2 + adds r0, r0, r1 + ldr r2, _08191FEC + adds r0, r0, r2 + ldrb r3, [r0] + lsls r0, r3, #0x1d + mov ip, r1 + cmp r0, #0 + bge _08191F98 + ldr r0, _08191FF0 + ldr r2, [r0] + ldrb r4, [r2, #0x10] + subs r1, r4, #1 + lsls r0, r3, #0x1b + lsrs r0, r0, #0x1e + cmp r1, r0 + bge _08191F98 + adds r0, r4, #1 + strb r0, [r2, #0x10] + movs r7, #4 +_08191F98: + ldr r3, _08191FE8 + ldr r0, [r3] + add r0, ip + ldr r1, _08191FEC + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + blt _08191FBC + ldr r0, _08191FF0 + ldr r3, [r0] + ldrb r1, [r3, #0x10] + subs r0, r1, #1 + cmp r0, r8 + bge _08191FBC + adds r0, r1, #1 + strb r0, [r3, #0x10] + movs r7, #4 +_08191FBC: + cmp r7, #9 + beq _08191FC2 + b _081920FC +_08191FC2: + ldr r0, _08191FF0 + ldr r3, [r0] + ldrb r0, [r3, #0x10] + cmp r0, #0 + beq _08191FFC + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + ldr r2, _08191FF4 + adds r1, r1, r2 + ldr r2, _08191FF8 + lsrs r0, r5, #0x1f + adds r0, r5, r0 + asrs r0, r0, #1 + lsls r0, r0, #2 + subs r0, #1 + ldrb r3, [r3, #0x10] + adds r0, r0, r3 + b _081920DE + .align 2, 0 +_08191FE8: .4byte 0x03005AF0 +_08191FEC: .4byte 0x00000D25 +_08191FF0: .4byte 0x0203CA44 +_08191FF4: .4byte 0x03005B60 +_08191FF8: .4byte 0x085D5C1C +_08191FFC: + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r3, _08192008 + adds r0, r0, r3 + b _081920FA + .align 2, 0 +_08192008: .4byte 0x03005B60 +_0819200C: + movs r0, #0x40 + ands r0, r4 + cmp r0, #0 + beq _0819203A + ldr r0, _0819202C + ldr r0, [r0] + ldrb r0, [r0, #0x10] + cmp r0, #1 + bne _0819203A + cmp r5, #0x10 + bne _08192034 + ldr r0, _08192030 + add r0, r8 + ldrb r5, [r0] + b _08192036 + .align 2, 0 +_0819202C: .4byte 0x0203CA44 +_08192030: .4byte 0x085D5C18 +_08192034: + subs r5, #1 +_08192036: + movs r7, #5 + b _081920A2 +_0819203A: + ldrh r1, [r2, #0x2e] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0819206A + ldr r0, _0819205C + ldr r0, [r0] + ldrb r0, [r0, #0x10] + cmp r0, #1 + bne _0819206A + ldr r0, _08192060 + add r0, r8 + ldrb r0, [r0] + cmp r5, r0 + bne _08192064 + movs r5, #0x10 + b _08192066 + .align 2, 0 +_0819205C: .4byte 0x0203CA44 +_08192060: .4byte 0x085D5C18 +_08192064: + adds r5, #1 +_08192066: + movs r7, #6 + b _081920A2 +_0819206A: + ldrh r1, [r2, #0x2e] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08192088 + ldr r0, _08192084 + ldr r1, [r0] + ldrb r0, [r1, #0x10] + cmp r0, #0 + beq _08192088 + movs r7, #7 + subs r0, #1 + b _081920A0 + .align 2, 0 +_08192084: .4byte 0x0203CA44 +_08192088: + ldrh r1, [r2, #0x2e] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _081920A2 + ldr r0, _081920C0 + ldr r1, [r0] + ldrb r0, [r1, #0x10] + cmp r0, #1 + bhi _081920A2 + movs r7, #8 + adds r0, #1 +_081920A0: + strb r0, [r1, #0x10] +_081920A2: + cmp r7, #9 + bne _081920FC + ldr r0, _081920C0 + ldr r0, [r0] + ldrb r1, [r0, #0x10] + cmp r1, #0 + bne _081920CC + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + ldr r2, _081920C4 + adds r1, r1, r2 + ldr r2, _081920C8 + ldrb r0, [r0, #0x11] + b _081920DE + .align 2, 0 +_081920C0: .4byte 0x0203CA44 +_081920C4: .4byte 0x03005B60 +_081920C8: .4byte 0x085D5C3C +_081920CC: + cmp r1, #2 + bne _081920F0 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + ldr r3, _081920E8 + adds r1, r1, r3 + ldr r2, _081920EC + ldrb r0, [r0, #0x12] +_081920DE: + adds r0, r0, r2 + ldrb r0, [r0] + strh r0, [r1, #0xa] + b _081920FC + .align 2, 0 +_081920E8: .4byte 0x03005B60 +_081920EC: .4byte 0x085D5C3C +_081920F0: + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _08192138 + adds r0, r0, r1 +_081920FA: + strh r5, [r0, #0xa] +_081920FC: + cmp r7, #0 + beq _08192128 + cmp r7, #9 + beq _08192128 + movs r0, #5 + bl PlaySE + ldr r1, _08192138 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r5, [r0, #0xa] + mov r2, sb + lsls r0, r2, #2 + add r0, sb + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #0xc] + movs r2, #1 + eors r1, r2 + strh r1, [r0, #0xc] +_08192128: + adds r0, r7, #0 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08192138: .4byte 0x03005B60 + thumb_func_end sub_08191E78 + + thumb_func_start DisplayTrainerInfoOnCard +DisplayTrainerInfoOnCard: @ 0x0819213C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x58 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x1c] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp, #0x20] + movs r5, #0 + movs r0, #0 + str r0, [sp, #0x28] + movs r1, #0 + str r1, [sp, #0x2c] + movs r2, #0 + str r2, [sp, #0x30] + movs r4, #0 + movs r0, #0x24 + bl AllocZeroed + mov r8, r0 + ldr r0, _081921E4 + ldr r1, [r0] + ldr r3, [sp, #0x20] + lsls r0, r3, #2 + adds r0, r1, r0 + ldr r2, _081921E8 + adds r0, r0, r2 + ldrh r0, [r0] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + str r0, [sp, #0x24] + movs r0, #1 + ldr r3, [sp, #0x1c] + ands r0, r3 + cmp r0, #0 + beq _08192194 + movs r5, #8 + movs r4, #9 + str r4, [sp, #0x28] + movs r4, #2 +_08192194: + movs r0, #2 + ldr r2, [sp, #0x1c] + ands r0, r2 + cmp r0, #0 + beq _081921A4 + movs r3, #0x80 + lsls r3, r3, #1 + str r3, [sp, #0x2c] +_081921A4: + movs r0, #4 + ldr r2, [sp, #0x1c] + ands r0, r2 + cmp r0, #0 + beq _081921B2 + movs r3, #0xa0 + str r3, [sp, #0x30] +_081921B2: + movs r0, #8 + ldr r2, [sp, #0x1c] + ands r0, r2 + cmp r0, #0 + beq _081921C0 + ldr r3, _081921EC + str r3, [sp, #0x2c] +_081921C0: + movs r0, #0x10 + ldr r2, [sp, #0x1c] + ands r0, r2 + cmp r0, #0 + beq _081921D0 + movs r3, #0xa0 + rsbs r3, r3, #0 + str r3, [sp, #0x30] +_081921D0: + ldr r0, _081921F0 + ldr r2, [sp, #0x24] + cmp r2, r0 + bne _081921F4 + ldrb r0, [r1, #8] + bl PlayerGenderToFrontTrainerPicId + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _08192212 + .align 2, 0 +_081921E4: .4byte 0x03005AF0 +_081921E8: .4byte 0x00000D24 +_081921EC: .4byte 0xFFFFFF00 +_081921F0: .4byte 0x000003FF +_081921F4: + ldr r0, _08192204 + ldr r3, [sp, #0x24] + cmp r3, r0 + bne _08192208 + bl CallBattleDomeFunction + b _0819220E + .align 2, 0 +_08192204: .4byte 0x000003FE +_08192208: + ldr r0, [sp, #0x24] + bl GetFrontierTrainerFrontSpriteId +_0819220E: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_08192212: + ldr r2, [sp, #0x2c] + adds r2, #0x30 + ldr r3, [sp, #0x30] + adds r3, #0x40 + adds r1, r4, #0 + adds r1, #0xc + str r1, [sp] + ldr r1, _081922A0 + str r1, [sp, #4] + movs r1, #1 + bl CreateTrainerPicSprite + ldr r1, _081922A4 + ldr r1, [r1] + adds r1, r1, r5 + strb r0, [r1] + movs r0, #0x1e + ldr r4, [sp, #0x1c] + ands r0, r4 + cmp r0, #0 + beq _08192258 + ldr r2, _081922A8 + ldr r0, _081922A4 + ldr r0, [r0] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_08192258: + movs r7, #0 + ldr r0, [sp, #0x20] + lsls r0, r0, #1 + str r0, [sp, #0x3c] + adds r1, r5, #2 + ldr r2, [sp, #0x28] + lsls r2, r2, #0x18 + str r2, [sp, #0x44] + ldr r3, [sp, #0x28] + adds r3, #4 + str r3, [sp, #0x40] + ldr r4, [sp, #0x20] + adds r0, r0, r4 + ldr r6, _081922A4 + ldr r2, _081922A8 + mov sl, r2 + adds r4, r1, #0 + lsls r5, r0, #1 + movs r3, #0 + mov sb, r3 +_08192280: + ldr r0, _081922AC + ldr r1, [sp, #0x24] + cmp r1, r0 + bne _081922BC + ldr r0, _081922B0 + ldr r0, [r0] + ldr r2, _081922B4 + adds r0, r0, r2 + adds r0, r0, r5 + ldrh r0, [r0] + ldr r1, _081922B8 + adds r1, r7, r1 + ldrb r2, [r1] + ldr r3, [sp, #0x2c] + orrs r2, r3 + b _0819230C + .align 2, 0 +_081922A0: .4byte 0x0000FFFF +_081922A4: .4byte 0x0203CA44 +_081922A8: .4byte 0x020205AC +_081922AC: .4byte 0x000003FF +_081922B0: .4byte 0x03005AF0 +_081922B4: .4byte 0x00000D64 +_081922B8: .4byte 0x085D5DBC +_081922BC: + ldr r0, _081922DC + ldr r3, [sp, #0x24] + cmp r3, r0 + bne _081922EC + ldr r0, _081922E0 + ldr r0, [r0] + ldr r1, _081922E4 + adds r0, r0, r1 + adds r0, r0, r5 + ldrh r0, [r0] + ldr r1, _081922E8 + adds r1, r7, r1 + ldrb r2, [r1] + ldr r3, [sp, #0x2c] + orrs r2, r3 + b _0819230C + .align 2, 0 +_081922DC: .4byte 0x000003FE +_081922E0: .4byte 0x03005AF0 +_081922E4: .4byte 0x00000D64 +_081922E8: .4byte 0x085D5DBC +_081922EC: + ldr r0, _081923C0 + ldr r0, [r0] + ldr r3, _081923C4 + adds r0, r0, r3 + adds r0, r0, r5 + ldrh r1, [r0] + ldr r0, _081923C8 + ldr r0, [r0] + lsls r1, r1, #4 + adds r1, r1, r0 + ldrh r0, [r1] + ldr r1, _081923CC + adds r1, r7, r1 + ldrb r2, [r1] + ldr r1, [sp, #0x2c] + orrs r2, r1 +_0819230C: + ldr r1, _081923D0 + adds r1, r7, r1 + ldrb r3, [r1] + ldr r1, [sp, #0x30] + adds r3, r3, r1 + mov r1, sb + str r1, [sp] + str r1, [sp, #4] + movs r1, #1 + str r1, [sp, #8] + ldr r1, _081923D4 + bl CreateMonIcon + ldr r1, [r6] + adds r1, r1, r4 + strb r0, [r1] + ldr r0, [r6] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sl + ldrb r1, [r0, #5] + movs r2, #0xd + rsbs r2, r2, #0 + ands r1, r2 + strb r1, [r0, #5] + movs r0, #0x1e + ldr r3, [sp, #0x1c] + ands r0, r3 + cmp r0, #0 + beq _08192366 + ldr r0, [r6] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sl + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_08192366: + adds r4, #1 + adds r5, #2 + adds r7, #1 + cmp r7, #2 + ble _08192280 + add r0, sp, #0xc + movs r2, #0 + movs r3, #2 + strb r3, [r0, #5] + strb r2, [r0, #6] + strb r2, [r0, #7] + adds r1, r0, #0 + adds r0, r2, #0 + strb r0, [r1, #8] + adds r0, r1, #0 + ldrb r0, [r0, #7] + strb r0, [r1, #9] + adds r0, r1, #0 + strb r3, [r0, #0xa] + strb r2, [r0, #0xb] + adds r3, r0, #0 + ldrb r2, [r3, #0xc] + movs r1, #0x10 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3, #0xc] + adds r2, r3, #0 + movs r0, #0xe0 + strb r0, [r2, #0xc] + ldrb r0, [r2, #0xd] + ands r1, r0 + strb r1, [r2, #0xd] + adds r1, r2, #0 + movs r0, #0xd0 + strb r0, [r1, #0xd] + movs r7, #0 + ldr r0, _081923D8 + ldr r4, [sp, #0x24] + cmp r4, r0 + bne _081923E0 + ldr r0, _081923DC + adds r0, #0x3c + ldrb r5, [r0] + b _081923FE + .align 2, 0 +_081923C0: .4byte 0x03005AF0 +_081923C4: .4byte 0x00000D64 +_081923C8: .4byte 0x0203B958 +_081923CC: .4byte 0x085D5DBC +_081923D0: .4byte 0x085D5DBF +_081923D4: .4byte 0x08190595 +_081923D8: .4byte 0x000003FF +_081923DC: .4byte 0x082EFF52 +_081923E0: + ldr r0, _081923F0 + ldr r1, [sp, #0x24] + cmp r1, r0 + bne _081923F4 + bl GetDomeBrainTrainerClass + b _081923FA + .align 2, 0 +_081923F0: .4byte 0x000003FE +_081923F4: + ldr r0, [sp, #0x24] + bl GetFrontierOpponentClass +_081923FA: + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_081923FE: + ldr r2, _0819244C + movs r0, #0xb + adds r1, r5, #0 + muls r1, r0, r1 + adds r0, r7, r1 + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #0xff + beq _08192426 + ldr r3, _08192450 + adds r0, r1, r2 + adds r2, r7, r0 +_08192416: + adds r0, r7, r3 + ldrb r1, [r2] + strb r1, [r0] + adds r2, #1 + adds r7, #1 + ldrb r0, [r2] + cmp r0, #0xff + bne _08192416 +_08192426: + ldr r5, _08192450 + adds r1, r7, r5 + movs r0, #0 + strb r0, [r1] + adds r0, r7, #1 + adds r0, r0, r5 + movs r1, #0xff + strb r1, [r0] + ldr r0, _08192454 + ldr r2, [sp, #0x24] + cmp r2, r0 + bne _0819245C + ldr r0, _08192458 + ldr r1, [r0] + adds r0, r5, #0 + bl StringAppend + b _08192492 + .align 2, 0 +_0819244C: .4byte 0x082E3564 +_08192450: .4byte 0x02021C40 +_08192454: .4byte 0x000003FF +_08192458: .4byte 0x03005AF0 +_0819245C: + ldr r0, _08192478 + ldr r3, [sp, #0x24] + cmp r3, r0 + bne _08192480 + ldr r4, _0819247C + adds r0, r4, #0 + bl CopyDomeBrainTrainerName + adds r0, r5, #0 + adds r1, r4, #0 + bl StringAppend + b _08192492 + .align 2, 0 +_08192478: .4byte 0x000003FE +_0819247C: .4byte 0x02021C54 +_08192480: + ldr r4, _081924F4 + ldr r1, [sp, #0x24] + adds r0, r4, #0 + bl CopyDomeTrainerName + adds r0, r5, #0 + adds r1, r4, #0 + bl StringAppend +_08192492: + ldr r0, _081924F8 + str r0, [sp, #0xc] + add r0, sp, #0xc + movs r5, #0 + add r4, sp, #0x28 + ldrb r4, [r4] + strb r4, [r0, #4] + ldr r0, [sp, #0x44] + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl PutWindowTilemap + adds r0, r4, #0 + movs r1, #3 + bl CopyWindowToVram + add r0, sp, #0xc + movs r1, #0 + movs r2, #0 + bl AddTextPrinter + add r0, sp, #0xc + strb r5, [r0, #0xa] + movs r7, #0 + add r1, sp, #0xc + mov sb, r1 + ldr r2, [sp, #0x3c] + ldr r3, [sp, #0x20] + adds r0, r2, r3 + lsls r6, r0, #1 + ldr r4, _081924FC + mov sl, r4 +_081924D2: + ldr r0, _08192500 + adds r0, r7, r0 + ldrb r0, [r0] + mov r1, sb + strb r0, [r1, #9] + ldr r0, _08192504 + ldr r2, [sp, #0x24] + cmp r2, r0 + bne _08192510 + ldr r3, _08192508 + ldr r1, [r3] + lsls r0, r7, #1 + adds r0, r0, r6 + ldr r4, _0819250C + adds r1, r1, r4 + b _0819254A + .align 2, 0 +_081924F4: .4byte 0x02021C54 +_081924F8: .4byte 0x02021C40 +_081924FC: .4byte 0x082EA31C +_08192500: .4byte 0x085D5DC2 +_08192504: .4byte 0x000003FF +_08192508: .4byte 0x03005AF0 +_0819250C: .4byte 0x00000D64 +_08192510: + ldr r0, _08192528 + ldr r1, [sp, #0x24] + cmp r1, r0 + bne _08192534 + ldr r2, _0819252C + ldr r1, [r2] + lsls r0, r7, #1 + adds r0, r0, r6 + ldr r3, _08192530 + adds r1, r1, r3 + b _0819254A + .align 2, 0 +_08192528: .4byte 0x000003FE +_0819252C: .4byte 0x03005AF0 +_08192530: .4byte 0x00000D64 +_08192534: + ldr r4, _081925A4 + ldr r1, [r4] + lsls r0, r7, #1 + adds r0, r0, r6 + ldr r2, _081925A8 + adds r1, r1, r2 + adds r1, r1, r0 + ldrh r1, [r1] + ldr r0, _081925AC + ldr r0, [r0] + lsls r1, r1, #4 +_0819254A: + adds r1, r1, r0 + ldrh r1, [r1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + add r0, sl + str r0, [sp, #0xc] + adds r5, r7, #1 + ldr r3, [sp, #0x28] + adds r4, r5, r3 + mov r0, sb + strb r4, [r0, #4] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl PutWindowTilemap + adds r0, r4, #0 + movs r1, #3 + bl CopyWindowToVram + add r0, sp, #0xc + movs r1, #0 + movs r2, #0 + bl AddTextPrinter + adds r7, r5, #0 + cmp r7, #2 + ble _081924D2 + ldr r4, [sp, #0x40] + adds r0, r4, #0 + bl PutWindowTilemap + adds r0, r4, #0 + movs r1, #3 + bl CopyWindowToVram + ldr r0, _081925B0 + ldr r1, [sp, #0x24] + cmp r1, r0 + bne _081925B8 + ldr r0, _081925B4 + ldr r0, [r0, #0x40] + b _081925C2 + .align 2, 0 +_081925A4: .4byte 0x03005AF0 +_081925A8: .4byte 0x00000D64 +_081925AC: .4byte 0x0203B958 +_081925B0: .4byte 0x000003FE +_081925B4: .4byte 0x085D5C4C +_081925B8: + ldr r0, _08192628 + ldr r2, [sp, #0x20] + lsls r1, r2, #2 + adds r1, r1, r0 + ldr r0, [r1] +_081925C2: + str r0, [sp, #0xc] + add r1, sp, #0xc + movs r0, #1 + strb r0, [r1, #5] + adds r0, r1, #0 + add r3, sp, #0x40 + ldrb r3, [r3] + strb r3, [r0, #4] + movs r1, #5 + strb r1, [r0, #7] + strb r1, [r0, #9] + movs r1, #0 + movs r2, #0 + bl AddTextPrinter + movs r7, #0 + ldr r3, _0819262C +_081925E4: + movs r5, #0 + adds r4, r7, #1 + str r4, [sp, #0x38] + lsls r0, r7, #1 + str r0, [sp, #0x34] + lsls r2, r7, #4 +_081925F0: + movs r6, #0 + lsls r1, r5, #1 + mov sl, r1 + mov r4, r8 + mov sb, r2 +_081925FA: + ldr r0, _08192630 + ldr r1, [sp, #0x24] + cmp r1, r0 + bne _08192634 + lsls r0, r7, #0x18 + lsls r1, r5, #0x18 + lsrs r0, r0, #0x18 + lsrs r1, r1, #0x18 + str r2, [sp, #0x48] + str r3, [sp, #0x4c] + bl GetFrontierBrainMonMove + lsls r0, r0, #0x10 + lsrs r0, r0, #0xc + adds r0, r6, r0 + ldr r3, [sp, #0x4c] + adds r0, r0, r3 + ldrh r1, [r4] + ldrb r0, [r0] + adds r1, r1, r0 + strh r1, [r4] + ldr r2, [sp, #0x48] + b _0819268C + .align 2, 0 +_08192628: .4byte 0x085D5C4C +_0819262C: .4byte 0x085D3DFC +_08192630: .4byte 0x000003FE +_08192634: + ldr r0, _08192648 + ldr r1, [sp, #0x24] + cmp r1, r0 + bne _08192654 + ldr r0, _0819264C + ldr r0, [r0] + ldr r1, _08192650 + adds r0, r0, r1 + add r0, sb + b _0819267C + .align 2, 0 +_08192648: .4byte 0x000003FF +_0819264C: .4byte 0x03005AF0 +_08192650: .4byte 0x00000EFC +_08192654: + ldr r0, _0819273C + ldr r0, [r0] + mov ip, r0 + ldr r0, [sp, #0x3c] + ldr r1, [sp, #0x20] + adds r0, r0, r1 + str r0, [sp, #0x50] + lsls r0, r0, #1 + ldr r1, [sp, #0x34] + adds r0, r1, r0 + ldr r1, _08192740 + add r1, ip + adds r1, r1, r0 + ldrh r0, [r1] + ldr r1, _08192744 + ldr r1, [r1] + lsls r0, r0, #4 + adds r0, r0, r1 + adds r0, #2 + add r0, sl +_0819267C: + ldrh r0, [r0] + lsls r0, r0, #4 + adds r0, r6, r0 + adds r0, r0, r3 + ldrh r1, [r4] + ldrb r0, [r0] + adds r1, r1, r0 + strh r1, [r4] +_0819268C: + adds r4, #2 + adds r6, #1 + cmp r6, #0xf + ble _081925FA + adds r2, #2 + adds r5, #1 + cmp r5, #3 + ble _081925F0 + ldr r7, [sp, #0x38] + cmp r7, #2 + ble _081925E4 + movs r7, #0 + ldr r2, _08192748 + mov sb, r2 + ldr r3, _0819274C + mov sl, r3 +_081926AC: + movs r4, #0 + movs r6, #0 + movs r5, #0 + mov r3, r8 + lsls r0, r7, #4 + mov r1, sl + adds r2, r0, r1 +_081926BA: + ldrb r0, [r2] + cmp r0, #0 + beq _081926D2 + adds r4, #1 + movs r1, #0 + ldrsh r0, [r3, r1] + cmp r0, #0 + beq _081926D2 + ldrb r1, [r2] + cmp r0, r1 + blt _081926D2 + adds r6, #1 +_081926D2: + adds r3, #2 + adds r2, #1 + adds r5, #1 + cmp r5, #0xf + ble _081926BA + cmp r4, r6 + beq _081926E6 + adds r7, #1 + cmp r7, #0x1e + bls _081926AC +_081926E6: + lsls r0, r7, #2 + add r0, sb + ldr r0, [r0] + str r0, [sp, #0xc] + add r0, sp, #0xc + movs r1, #0x15 + strb r1, [r0, #7] + strb r1, [r0, #9] + movs r1, #0 + movs r2, #0 + bl AddTextPrinter + movs r1, #0 + mov r0, r8 + adds r0, #0x22 +_08192704: + strh r1, [r0] + subs r0, #2 + cmp r0, r8 + bge _08192704 + ldr r2, [sp, #0x24] + ldr r3, _08192750 + adds r0, r2, r3 + cmp r0, #1 + bls _08192718 + b _08192858 +_08192718: + movs r7, #0 + movs r4, #0 + mov sb, r4 +_0819271E: + movs r5, #0 + mov r4, r8 + mov r6, sb +_08192724: + ldr r0, _08192754 + ldr r1, [sp, #0x24] + cmp r1, r0 + bne _08192758 + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + lsrs r0, r6, #0x18 + bl GetFrontierBrainMonEvs + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _08192768 + .align 2, 0 +_0819273C: .4byte 0x03005AF0 +_08192740: .4byte 0x00000D64 +_08192744: .4byte 0x0203B958 +_08192748: .4byte 0x085D5C90 +_0819274C: .4byte 0x085D542C +_08192750: .4byte 0xFFFFFC02 +_08192754: .4byte 0x000003FE +_08192758: + ldr r0, _08192798 + ldr r0, [r0] + lsls r1, r7, #4 + adds r1, r5, r1 + ldr r2, _0819279C + adds r0, r0, r2 + adds r0, r0, r1 + ldrb r0, [r0] +_08192768: + strh r0, [r4] + adds r4, #2 + adds r5, #1 + cmp r5, #5 + ble _08192724 + mov r3, r8 + ldrh r0, [r3] + ldrh r4, [r3, #0xc] + adds r0, r0, r4 + strh r0, [r3, #0xc] + movs r5, #0 + mov r4, r8 +_08192780: + ldr r0, _081927A0 + ldr r1, [sp, #0x24] + cmp r1, r0 + bne _081927A4 + mov r2, sb + lsrs r0, r2, #0x18 + bl GetFrontierBrainMonNature + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + b _081927B2 + .align 2, 0 +_08192798: .4byte 0x03005AF0 +_0819279C: .4byte 0x00000F04 +_081927A0: .4byte 0x000003FE +_081927A4: + ldr r0, _081927DC + ldr r0, [r0] + lsls r1, r7, #4 + adds r0, r0, r1 + ldr r3, _081927E0 + adds r0, r0, r3 + ldrb r2, [r0] +_081927B2: + ldr r1, _081927E4 + lsls r0, r2, #2 + adds r0, r0, r2 + adds r0, r5, r0 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _081927E8 + movs r0, #2 + ldrsh r1, [r4, r0] + movs r0, #0x6e + muls r0, r1, r0 + movs r1, #0x64 + bl __divsi3 + ldrh r1, [r4, #0xe] + adds r1, r1, r0 + strh r1, [r4, #0xe] + b _08192810 + .align 2, 0 +_081927DC: .4byte 0x03005AF0 +_081927E0: .4byte 0x00000F0A +_081927E4: .4byte 0x082EF1A0 +_081927E8: + cmp r0, #0 + bge _08192808 + movs r2, #2 + ldrsh r1, [r4, r2] + movs r0, #0x5a + muls r0, r1, r0 + movs r1, #0x64 + bl __divsi3 + ldrh r1, [r4, #0xe] + adds r1, r1, r0 + strh r1, [r4, #0xe] + ldrh r0, [r4, #0x1a] + adds r0, #1 + strh r0, [r4, #0x1a] + b _08192810 +_08192808: + ldrh r0, [r4, #2] + ldrh r3, [r4, #0xe] + adds r0, r0, r3 + strh r0, [r4, #0xe] +_08192810: + adds r4, #2 + adds r5, #1 + cmp r5, #4 + ble _08192780 + movs r4, #0x80 + lsls r4, r4, #0x11 + add sb, r4 + adds r7, #1 + cmp r7, #2 + bgt _08192826 + b _0819271E +_08192826: + movs r5, #0 + mov r1, r8 + movs r7, #5 +_0819282C: + movs r2, #0xc + ldrsh r0, [r1, r2] + adds r5, r5, r0 + adds r1, #2 + subs r7, #1 + cmp r7, #0 + bge _0819282C + movs r6, #0x64 + mov r4, r8 + movs r7, #5 +_08192840: + movs r3, #0xc + ldrsh r0, [r4, r3] + muls r0, r6, r0 + adds r1, r5, #0 + bl __divsi3 + strh r0, [r4] + adds r4, #2 + subs r7, #1 + cmp r7, #0 + bge _08192840 + b _081929A4 +_08192858: + ldr r4, _08192928 + mov sl, r4 + ldr r1, [sp, #0x3c] + ldr r2, [sp, #0x20] + adds r0, r1, r2 + lsls r0, r0, #1 + mov sb, r0 + movs r7, #2 +_08192868: + ldr r3, _0819292C + ldr r0, [r3] + ldr r4, _08192930 + adds r0, r0, r4 + add r0, sb + ldrh r0, [r0] + mov r2, sl + ldr r1, [r2] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrb r2, [r0, #0xb] + movs r6, #0 + movs r4, #0 + movs r3, #1 + mov r1, r8 + movs r5, #5 +_08192888: + strh r4, [r1] + adds r0, r2, #0 + ands r0, r3 + cmp r0, #0 + beq _08192894 + adds r6, #1 +_08192894: + asrs r2, r2, #1 + adds r1, #2 + subs r5, #1 + cmp r5, #0 + bge _08192888 + movs r0, #0xff + lsls r0, r0, #1 + adds r1, r6, #0 + bl __divsi3 + adds r6, r0, #0 + ldr r3, _0819292C + ldr r0, [r3] + ldr r4, _08192930 + adds r0, r0, r4 + add r0, sb + ldrh r0, [r0] + mov r2, sl + ldr r1, [r2] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrb r2, [r0, #0xb] + movs r3, #1 + mov r1, r8 + movs r5, #5 +_081928C6: + adds r0, r2, #0 + ands r0, r3 + cmp r0, #0 + beq _081928D0 + strh r6, [r1] +_081928D0: + asrs r2, r2, #1 + adds r1, #2 + subs r5, #1 + cmp r5, #0 + bge _081928C6 + mov r3, r8 + ldrh r0, [r3] + ldrh r4, [r3, #0xc] + adds r0, r0, r4 + strh r0, [r3, #0xc] + movs r5, #0 + mov r4, r8 +_081928E8: + ldr r1, _0819292C + ldr r0, [r1] + ldr r2, _08192930 + adds r0, r0, r2 + add r0, sb + ldrh r0, [r0] + mov r3, sl + ldr r1, [r3] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrb r2, [r0, #0xc] + lsls r0, r2, #2 + adds r0, r0, r2 + adds r0, r5, r0 + ldr r1, _08192934 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _08192938 + movs r2, #2 + ldrsh r1, [r4, r2] + movs r0, #0x6e + muls r0, r1, r0 + movs r1, #0x64 + bl __divsi3 + ldrh r1, [r4, #0xe] + adds r1, r1, r0 + strh r1, [r4, #0xe] + b _08192960 + .align 2, 0 +_08192928: .4byte 0x0203B958 +_0819292C: .4byte 0x03005AF0 +_08192930: .4byte 0x00000D64 +_08192934: .4byte 0x082EF1A0 +_08192938: + cmp r0, #0 + bge _08192958 + movs r3, #2 + ldrsh r1, [r4, r3] + movs r0, #0x5a + muls r0, r1, r0 + movs r1, #0x64 + bl __divsi3 + ldrh r1, [r4, #0xe] + adds r1, r1, r0 + strh r1, [r4, #0xe] + ldrh r0, [r4, #0x1a] + adds r0, #1 + strh r0, [r4, #0x1a] + b _08192960 +_08192958: + ldrh r0, [r4, #2] + ldrh r1, [r4, #0xe] + adds r0, r0, r1 + strh r0, [r4, #0xe] +_08192960: + adds r4, #2 + adds r5, #1 + cmp r5, #4 + ble _081928E8 + movs r2, #2 + add sb, r2 + subs r7, #1 + cmp r7, #0 + blt _08192974 + b _08192868 +_08192974: + movs r5, #0 + mov r1, r8 + movs r7, #5 +_0819297A: + movs r3, #0xc + ldrsh r0, [r1, r3] + adds r5, r5, r0 + adds r1, #2 + subs r7, #1 + cmp r7, #0 + bge _0819297A + movs r6, #0x64 + mov r4, r8 + movs r7, #5 +_0819298E: + movs r1, #0xc + ldrsh r0, [r4, r1] + muls r0, r6, r0 + adds r1, r5, #0 + bl __divsi3 + strh r0, [r4] + adds r4, #2 + subs r7, #1 + cmp r7, #0 + bge _0819298E +_081929A4: + movs r7, #0 + movs r5, #0 + movs r6, #0 + mov r4, r8 + mov sl, r8 + mov sb, r8 +_081929B0: + movs r2, #0 + ldrsh r1, [r4, r2] + cmp r1, #0x1d + ble _08192A12 + cmp r7, #2 + bne _08192A08 + mov r3, r8 + movs r0, #0xc + ldrsh r3, [r3, r0] + mov ip, r3 + cmp ip, r1 + bge _081929FA + mov r2, r8 + ldrh r2, [r2, #0xe] + add r3, sp, #0x54 + strh r2, [r3] + mov r2, r8 + movs r3, #0xe + ldrsh r0, [r2, r3] + cmp r0, r1 + bge _081929EE + cmp ip, r0 + bge _081929E8 + add r0, sp, #0x54 + ldrh r0, [r0] + strh r0, [r2, #0xc] + strh r6, [r2, #0xe] + b _08192A12 +_081929E8: + mov r1, r8 + strh r6, [r1, #0xe] + b _08192A12 +_081929EE: + add r2, sp, #0x54 + ldrh r3, [r2] + mov r2, r8 + strh r3, [r2, #0xc] + strh r6, [r2, #0xe] + b _08192A12 +_081929FA: + mov r3, r8 + movs r2, #0xe + ldrsh r0, [r3, r2] + cmp r0, r1 + bge _08192A12 + strh r6, [r3, #0xe] + b _08192A12 +_08192A08: + mov r3, sb + strh r6, [r3, #0xc] + movs r0, #2 + add sb, r0 + adds r7, #1 +_08192A12: + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08192A98 + cmp r5, #2 + bne _08192A8E + movs r2, #0x18 + ldrsh r0, [r4, r2] + cmp r0, #1 + bgt _08192A4C + cmp r0, #1 + bne _08192A98 + mov r3, r8 + movs r1, #0x10 + ldrsh r0, [r3, r1] + lsls r0, r0, #1 + add r0, r8 + movs r2, #0x18 + ldrsh r0, [r0, r2] + cmp r0, #0 + bne _08192A56 + movs r1, #0x12 + ldrsh r0, [r3, r1] + lsls r0, r0, #1 + add r0, r8 + movs r2, #0x18 + ldrsh r0, [r0, r2] + cmp r0, #0 + bne _08192A56 +_08192A4C: + mov r3, r8 + ldrh r0, [r3, #0x12] + strh r0, [r3, #0x10] + strh r6, [r3, #0x12] + b _08192A98 +_08192A56: + movs r1, #0x18 + ldrsh r0, [r4, r1] + cmp r0, #1 + bne _08192A98 + mov r2, r8 + movs r3, #0x10 + ldrsh r0, [r2, r3] + lsls r0, r0, #1 + add r0, r8 + movs r1, #0x18 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08192A78 + ldrh r0, [r2, #0x12] + strh r0, [r2, #0x10] + strh r6, [r2, #0x12] + b _08192A98 +_08192A78: + mov r2, r8 + movs r3, #0x12 + ldrsh r0, [r2, r3] + lsls r0, r0, #1 + add r0, r8 + movs r1, #0x18 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08192A98 + strh r6, [r2, #0x12] + b _08192A98 +_08192A8E: + mov r2, sl + strh r6, [r2, #0x10] + movs r3, #2 + add sl, r3 + adds r5, #1 +_08192A98: + adds r4, #2 + adds r6, #1 + cmp r6, #5 + ble _081929B0 + cmp r7, #2 + bne _08192AC0 + ldr r0, _08192ABC + mov r4, r8 + movs r1, #0xc + ldrsh r2, [r4, r1] + adds r0, r2, r0 + movs r3, #0xe + ldrsh r1, [r4, r3] + subs r1, #1 + subs r1, r1, r2 + ldrb r0, [r0] + adds r7, r1, r0 + b _08192B06 + .align 2, 0 +_08192ABC: .4byte 0x085D5DC5 +_08192AC0: + cmp r7, #1 + bne _08192AD0 + mov r4, r8 + movs r1, #0xc + ldrsh r0, [r4, r1] + adds r7, r0, #0 + adds r7, #0xf + b _08192B06 +_08192AD0: + cmp r5, #2 + bne _08192AF4 + ldr r0, _08192AF0 + mov r3, r8 + movs r4, #0x10 + ldrsh r2, [r3, r4] + adds r0, r2, r0 + movs r4, #0x12 + ldrsh r1, [r3, r4] + subs r1, #1 + subs r1, r1, r2 + ldrb r0, [r0] + adds r1, r1, r0 + adds r7, r1, #0 + adds r7, #0x15 + b _08192B06 + .align 2, 0 +_08192AF0: .4byte 0x085D5DC5 +_08192AF4: + cmp r5, #1 + bne _08192B04 + mov r1, r8 + movs r2, #0x10 + ldrsh r0, [r1, r2] + adds r7, r0, #0 + adds r7, #0x24 + b _08192B06 +_08192B04: + movs r7, #0x2a +_08192B06: + lsls r0, r7, #2 + ldr r3, _08192B38 + adds r0, r0, r3 + ldr r0, [r0] + str r0, [sp, #0xc] + add r0, sp, #0xc + movs r1, #0x25 + strb r1, [r0, #7] + strb r1, [r0, #9] + movs r1, #0 + movs r2, #0 + bl AddTextPrinter + mov r0, r8 + bl Free + add sp, #0x58 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08192B38: .4byte 0x085D5D10 + thumb_func_end DisplayTrainerInfoOnCard + + thumb_func_start sub_08192B3C +sub_08192B3C: @ 0x08192B3C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + str r1, [sp] + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r0, #0 + str r0, [sp, #4] + mov r8, r0 + ldr r2, _08192BB0 + lsls r0, r7, #1 + adds r0, r0, r7 + adds r1, r0, r2 + ldrb r6, [r1] + adds r1, r2, #1 + adds r0, r0, r1 + ldrb r0, [r0] + adds r0, r6, r0 + adds r3, r2, #0 + cmp r6, r0 + bge _08192C08 + ldr r5, _08192BB4 + ldr r1, _08192BB8 + mov sl, r1 + ldr r2, _08192BBC + mov sb, r2 +_08192B76: + ldr r0, _08192BC0 + adds r0, r6, r0 + ldrb r4, [r0] + ldr r0, [r5] + lsls r1, r4, #2 + adds r0, r0, r1 + ldr r2, _08192BC4 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + blt _08192BF2 + ldr r0, [sp] + add r0, r8 + strb r4, [r0] + ldr r2, [r5] + adds r0, r2, r1 + ldr r1, _08192BC8 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r1, r0, #0x16 + lsrs r0, r1, #0x16 + cmp r0, sl + bne _08192BD0 + ldr r0, _08192BCC + adds r1, r2, #0 + bl StringCopy + b _08192BEC + .align 2, 0 +_08192BB0: .4byte 0x085D5E40 +_08192BB4: .4byte 0x03005AF0 +_08192BB8: .4byte 0x000003FF +_08192BBC: .4byte 0x000003FE +_08192BC0: .4byte 0x085D5E30 +_08192BC4: .4byte 0x00000D25 +_08192BC8: .4byte 0x00000D24 +_08192BCC: .4byte 0x02021C40 +_08192BD0: + lsrs r0, r1, #0x16 + cmp r0, sb + bne _08192BE4 + ldr r0, _08192BE0 + bl CopyDomeBrainTrainerName + b _08192BEC + .align 2, 0 +_08192BE0: .4byte 0x02021C40 +_08192BE4: + lsrs r1, r1, #0x16 + ldr r0, _08192C14 + bl CopyDomeTrainerName +_08192BEC: + movs r2, #1 + add r8, r2 + ldr r3, _08192C18 +_08192BF2: + adds r6, #1 + lsls r1, r7, #1 + adds r1, r1, r7 + adds r0, r1, r3 + ldrb r2, [r0] + adds r0, r3, #1 + adds r1, r1, r0 + ldrb r0, [r1] + adds r2, r2, r0 + cmp r6, r2 + blt _08192B76 +_08192C08: + mov r5, r8 + cmp r5, #2 + bne _08192C1C + movs r0, #0 + b _08192D6C + .align 2, 0 +_08192C14: .4byte 0x02021C40 +_08192C18: .4byte 0x085D5E40 +_08192C1C: + mov ip, r3 + lsls r3, r7, #1 + adds r0, r3, r7 + mov r2, ip + adds r1, r0, r2 + ldrb r6, [r1] + mov r1, ip + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + adds r0, r6, r0 + str r3, [sp, #8] + cmp r6, r0 + blt _08192C3A + b _08192D56 +_08192C3A: + ldr r5, _08192CD8 + mov sl, r5 + ldr r0, _08192CDC + mov sb, r0 +_08192C42: + ldr r0, _08192CE0 + adds r0, r6, r0 + ldrb r4, [r0] + mov r1, sl + ldr r0, [r1] + lsls r2, r4, #2 + str r2, [sp, #0xc] + adds r0, r0, r2 + add r0, sb + ldrb r2, [r0] + lsls r0, r2, #0x1d + cmp r0, #0 + bge _08192D30 + lsls r2, r2, #0x1b + adds r1, r3, r7 + mov r0, ip + adds r0, #2 + adds r1, r1, r0 + lsrs r2, r2, #0x1e + ldrb r1, [r1] + cmp r2, r1 + blo _08192D30 + ldr r0, [sp] + add r0, r8 + strb r4, [r0] + movs r5, #1 + add r8, r5 + mov r0, sl + ldr r3, [r0] + ldr r5, [sp, #0xc] + adds r2, r3, r5 + adds r0, r2, #0 + add r0, sb + ldrb r5, [r0] + mov ip, r5 + mov r0, ip + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1e + cmp r0, r1 + bne _08192CEC + lsls r4, r4, #1 + movs r1, #0xec + lsls r1, r1, #4 + adds r0, r3, r1 + adds r0, r0, r4 + ldrh r1, [r0] + lsls r1, r1, #3 + ldr r0, _08192CE4 + adds r1, r1, r0 + ldr r0, _08192CE8 + bl StringCopy + mov r2, sl + ldr r1, [r2] + ldr r5, [sp, #0xc] + adds r0, r1, r5 + add r0, sb + ldrb r0, [r0] + lsls r2, r0, #0x18 + lsrs r0, r2, #0x1d + lsls r0, r0, #1 + str r0, [sp, #4] + movs r0, #0xec + lsls r0, r0, #4 + adds r1, r1, r0 + adds r1, r1, r4 + ldrh r0, [r1] + cmp r0, #0 + bne _08192D30 + lsrs r0, r2, #0x1d + cmp r0, #0 + bne _08192D30 + movs r1, #4 + str r1, [sp, #4] + b _08192D30 + .align 2, 0 +_08192CD8: .4byte 0x03005AF0 +_08192CDC: .4byte 0x00000D25 +_08192CE0: .4byte 0x085D5E30 +_08192CE4: .4byte 0x082EACC4 +_08192CE8: .4byte 0x02021C54 +_08192CEC: + ldr r5, _08192D04 + adds r0, r2, r5 + ldrh r0, [r0] + lsls r1, r0, #0x16 + ldr r0, _08192D08 + cmp r1, r0 + bne _08192D10 + ldr r0, _08192D0C + adds r1, r3, #0 + bl StringCopy + b _08192D30 + .align 2, 0 +_08192D04: .4byte 0x00000D24 +_08192D08: .4byte 0xFFC00000 +_08192D0C: .4byte 0x02021C40 +_08192D10: + ldr r0, _08192D20 + cmp r1, r0 + bne _08192D28 + ldr r0, _08192D24 + bl CopyDomeBrainTrainerName + b _08192D30 + .align 2, 0 +_08192D20: .4byte 0xFF800000 +_08192D24: .4byte 0x02021C40 +_08192D28: + lsrs r1, r1, #0x16 + ldr r0, _08192D60 + bl CopyDomeTrainerName +_08192D30: + mov r0, r8 + cmp r0, #2 + beq _08192D56 + adds r6, #1 + ldr r1, _08192D64 + mov ip, r1 + ldr r3, [sp, #8] + adds r1, r3, r7 + mov r2, ip + adds r0, r1, r2 + ldrb r2, [r0] + mov r0, ip + adds r0, #1 + adds r1, r1, r0 + ldrb r0, [r1] + adds r2, r2, r0 + cmp r6, r2 + bge _08192D56 + b _08192C42 +_08192D56: + cmp r7, #0xe + beq _08192D68 + ldr r0, [sp, #4] + adds r0, #1 + b _08192D6C + .align 2, 0 +_08192D60: .4byte 0x02021C40 +_08192D64: .4byte 0x085D5E40 +_08192D68: + ldr r0, [sp, #4] + adds r0, #2 +_08192D6C: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_08192B3C + + thumb_func_start DisplayMatchInfoOnCard +DisplayMatchInfoOnCard: @ 0x08192D7C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x80 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x34] + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + movs r0, #0 + str r0, [sp, #0x3c] + movs r7, #0 + movs r1, #0 + str r1, [sp, #0x40] + movs r2, #0 + str r2, [sp, #0x44] + mov sb, r2 + movs r0, #1 + ldr r3, [sp, #0x34] + ands r0, r3 + cmp r0, #0 + beq _08192DB6 + movs r7, #8 + str r7, [sp, #0x3c] + movs r7, #9 + movs r0, #2 + mov sb, r0 +_08192DB6: + movs r0, #2 + ldr r1, [sp, #0x34] + ands r0, r1 + cmp r0, #0 + beq _08192DC6 + movs r2, #0x80 + lsls r2, r2, #1 + str r2, [sp, #0x40] +_08192DC6: + movs r0, #4 + ldr r3, [sp, #0x34] + ands r0, r3 + cmp r0, #0 + beq _08192DD4 + movs r0, #0xa0 + str r0, [sp, #0x44] +_08192DD4: + movs r0, #8 + ldr r1, [sp, #0x34] + ands r0, r1 + cmp r0, #0 + beq _08192DE2 + ldr r2, _08192EB4 + str r2, [sp, #0x40] +_08192DE2: + movs r0, #0x10 + ldr r3, [sp, #0x34] + ands r0, r3 + cmp r0, #0 + beq _08192DF2 + movs r0, #0xa0 + rsbs r0, r0, #0 + str r0, [sp, #0x44] +_08192DF2: + ldr r4, _08192EB8 + ldr r1, [r4] + adds r1, #0x11 + adds r0, r6, #0 + bl sub_08192B3C + str r0, [sp, #0x38] + movs r5, #0 + mov r1, sp + adds r1, #0x1c + str r1, [sp, #0x4c] + mov r2, sp + adds r2, #0x24 + str r2, [sp, #0x50] + lsls r1, r6, #1 + mov r3, sp + adds r3, #0x2c + str r3, [sp, #0x54] + ldr r0, [sp, #0x40] + adds r0, #0x30 + mov r8, r0 + ldr r2, [sp, #0x44] + adds r2, #0x58 + str r2, [sp, #0x7c] + movs r3, #0xc + add r3, sb + mov sl, r3 + ldr r0, [sp, #0x40] + adds r0, #0xc0 + str r0, [sp, #0x48] + mov r2, sb + adds r2, #0xd + str r2, [sp, #0x78] + ldr r3, [sp, #0x3c] + adds r3, #1 + mov sb, r3 + ldr r0, [sp, #0x3c] + adds r0, #2 + str r0, [sp, #0x58] + ldr r2, [sp, #0x3c] + adds r2, #5 + str r2, [sp, #0x60] + adds r3, r7, #0 + adds r3, #8 + str r3, [sp, #0x70] + adds r0, r7, #6 + str r0, [sp, #0x68] + adds r2, r7, #7 + str r2, [sp, #0x6c] + lsls r3, r6, #2 + str r3, [sp, #0x5c] + adds r0, r7, #5 + str r0, [sp, #0x64] + ldr r0, [r4] + adds r0, #0x11 + mov ip, r0 + ldr r0, _08192EBC + ldr r4, [r0] + ldr r0, _08192EC0 + movs r3, #0 + adds r1, r1, r6 + adds r1, r1, r0 + ldrb r6, [r1] +_08192E70: + ldr r1, [sp, #0x4c] + adds r2, r3, r1 + mov r7, ip + adds r0, r7, r5 + ldrb r0, [r0] + str r0, [r2] + ldr r7, [sp, #0x50] + adds r1, r3, r7 + lsls r0, r0, #2 + adds r0, r4, r0 + ldr r7, _08192EC4 + adds r0, r0, r7 + ldrh r0, [r0] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + str r0, [r1] + ldr r0, [r2] + lsls r0, r0, #2 + adds r0, r4, r0 + ldr r1, _08192EC8 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #0x1b + lsrs r0, r0, #0x1e + cmp r0, r6 + bhi _08192ECC + lsls r0, r1, #0x1d + cmp r0, #0 + bge _08192ECC + ldr r2, [sp, #0x54] + adds r1, r3, r2 + movs r0, #1 + b _08192ED2 + .align 2, 0 +_08192EB4: .4byte 0xFFFFFF00 +_08192EB8: .4byte 0x0203CA44 +_08192EBC: .4byte 0x03005AF0 +_08192EC0: .4byte 0x085D5E42 +_08192EC4: .4byte 0x00000D24 +_08192EC8: .4byte 0x00000D25 +_08192ECC: + ldr r7, [sp, #0x54] + adds r1, r3, r7 + movs r0, #0 +_08192ED2: + str r0, [r1] + adds r3, #4 + adds r5, #1 + cmp r5, #1 + ble _08192E70 + ldr r1, [sp, #0x24] + ldr r0, _08192EFC + cmp r1, r0 + bne _08192F04 + ldr r0, _08192F00 + ldr r0, [r0] + ldrb r0, [r0, #8] + bl PlayerGenderToFrontTrainerPicId + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r2, r8 + ldr r3, [sp, #0x7c] + mov r1, sl + str r1, [sp] + b _08192F28 + .align 2, 0 +_08192EFC: .4byte 0x000003FF +_08192F00: .4byte 0x03005AF0 +_08192F04: + ldr r0, _08192F10 + cmp r1, r0 + bne _08192F14 + bl CallBattleDomeFunction + b _08192F1C + .align 2, 0 +_08192F10: .4byte 0x000003FE +_08192F14: + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + bl GetFrontierTrainerFrontSpriteId +_08192F1C: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r2, r8 + ldr r3, [sp, #0x7c] + mov r7, sl + str r7, [sp] +_08192F28: + ldr r1, _08192FA4 + str r1, [sp, #4] + movs r1, #1 + bl CreateTrainerPicSprite + ldr r1, _08192FA8 + ldr r1, [r1] + ldr r2, [sp, #0x3c] + adds r1, r1, r2 + strb r0, [r1] + movs r0, #0x1e + ldr r3, [sp, #0x34] + ands r0, r3 + cmp r0, #0 + beq _08192F64 + ldr r2, _08192FAC + ldr r0, _08192FA8 + ldr r0, [r0] + ldr r7, [sp, #0x3c] + adds r0, r0, r7 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_08192F64: + ldr r0, [sp, #0x2c] + cmp r0, #0 + beq _08192F8A + ldr r2, _08192FAC + ldr r0, _08192FA8 + ldr r0, [r0] + ldr r1, [sp, #0x3c] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r2, [r0, #5] + movs r1, #0xf + ands r1, r2 + movs r2, #0x30 + orrs r1, r2 + strb r1, [r0, #5] +_08192F8A: + ldr r2, [sp, #0x50] + ldr r1, [r2, #4] + ldr r0, _08192FB0 + cmp r1, r0 + bne _08192FB8 + ldr r0, _08192FB4 + ldr r0, [r0] + ldrb r0, [r0, #8] + bl PlayerGenderToFrontTrainerPicId + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _08192FE0 + .align 2, 0 +_08192FA4: .4byte 0x0000FFFF +_08192FA8: .4byte 0x0203CA44 +_08192FAC: .4byte 0x020205AC +_08192FB0: .4byte 0x000003FF +_08192FB4: .4byte 0x03005AF0 +_08192FB8: + ldr r0, _08192FD0 + cmp r1, r0 + bne _08192FD4 + bl CallBattleDomeFunction + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, [sp, #0x48] + ldr r3, [sp, #0x7c] + ldr r1, [sp, #0x78] + str r1, [sp] + b _08192FE8 + .align 2, 0 +_08192FD0: .4byte 0x000003FE +_08192FD4: + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + bl GetFrontierTrainerFrontSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_08192FE0: + ldr r2, [sp, #0x48] + ldr r3, [sp, #0x7c] + ldr r7, [sp, #0x78] + str r7, [sp] +_08192FE8: + ldr r1, _0819307C + str r1, [sp, #4] + movs r1, #1 + bl CreateTrainerPicSprite + ldr r1, _08193080 + ldr r1, [r1] + add r1, sb + strb r0, [r1] + movs r0, #0x1e + ldr r1, [sp, #0x34] + ands r0, r1 + cmp r0, #0 + beq _08193020 + ldr r2, _08193084 + ldr r0, _08193080 + ldr r0, [r0] + add r0, sb + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_08193020: + ldr r2, [sp, #0x54] + ldr r0, [r2, #4] + cmp r0, #0 + beq _08193046 + ldr r2, _08193084 + ldr r0, _08193080 + ldr r0, [r0] + add r0, sb + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r2, [r0, #5] + movs r1, #0xf + ands r1, r2 + movs r2, #0x30 + orrs r1, r2 + strb r1, [r0, #5] +_08193046: + movs r5, #0 + ldr r3, [sp, #0x38] + lsls r3, r3, #2 + str r3, [sp, #0x74] + mov r8, r5 + ldr r6, _08193080 + ldr r7, _08193084 + ldr r4, [sp, #0x58] + mov sb, r5 + movs r0, #1 + mov sl, r0 +_0819305C: + ldr r1, [sp, #0x24] + ldr r0, _08193088 + cmp r1, r0 + bne _08193094 + ldr r0, _0819308C + ldr r2, [r0] + ldr r1, [sp, #0x1c] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + add r0, sb + ldr r1, _08193090 + adds r2, r2, r1 + adds r2, r2, r0 + ldrh r0, [r2] + b _081930E0 + .align 2, 0 +_0819307C: .4byte 0x0000FFFF +_08193080: .4byte 0x0203CA44 +_08193084: .4byte 0x020205AC +_08193088: .4byte 0x000003FF +_0819308C: .4byte 0x03005AF0 +_08193090: .4byte 0x00000D64 +_08193094: + ldr r0, _081930B4 + cmp r1, r0 + bne _081930C0 + ldr r0, _081930B8 + ldr r2, [r0] + ldr r1, [sp, #0x1c] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + add r0, sb + ldr r1, _081930BC + adds r2, r2, r1 + adds r2, r2, r0 + ldrh r0, [r2] + b _081930E0 + .align 2, 0 +_081930B4: .4byte 0x000003FE +_081930B8: .4byte 0x03005AF0 +_081930BC: .4byte 0x00000D64 +_081930C0: + ldr r0, _081931B8 + ldr r2, [r0] + ldr r1, [sp, #0x1c] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + add r0, sb + ldr r1, _081931BC + adds r2, r2, r1 + adds r2, r2, r0 + ldrh r1, [r2] + ldr r0, _081931C0 + ldr r0, [r0] + lsls r1, r1, #4 + adds r1, r1, r0 + ldrh r0, [r1] +_081930E0: + ldr r1, _081931C4 + adds r1, r5, r1 + ldrb r2, [r1] + ldr r3, [sp, #0x40] + orrs r2, r3 + ldr r1, _081931C8 + adds r1, r5, r1 + ldrb r3, [r1] + ldr r1, [sp, #0x44] + adds r3, r3, r1 + mov r1, r8 + str r1, [sp] + str r1, [sp, #4] + mov r1, sl + str r1, [sp, #8] + ldr r1, _081931CC + bl CreateMonIcon + ldr r1, [r6] + adds r1, r1, r4 + strb r0, [r1] + ldr r0, [r6] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrb r1, [r0, #5] + movs r3, #0xd + rsbs r3, r3, #0 + adds r2, r3, #0 + ands r1, r2 + strb r1, [r0, #5] + movs r0, #0x1e + ldr r1, [sp, #0x34] + ands r0, r1 + cmp r0, #0 + beq _08193146 + ldr r0, [r6] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_08193146: + ldr r0, [sp, #0x2c] + cmp r0, #0 + beq _08193178 + ldr r0, [r6] + adds r0, r0, r4 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r7 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + movs r2, #0x30 + orrs r0, r2 + strb r0, [r1, #5] + ldr r0, [r6] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + mov r2, sl + strh r2, [r0, #0x34] +_08193178: + adds r4, #1 + movs r3, #2 + add sb, r3 + adds r5, #1 + cmp r5, #2 + bgt _08193186 + b _0819305C +_08193186: + movs r5, #0 + ldr r6, _081931D0 + ldr r7, _081931D4 + mov r8, r7 + ldr r4, [sp, #0x60] + mov sb, r5 + movs r7, #0 +_08193194: + ldr r0, [sp, #0x50] + ldr r1, [r0, #4] + ldr r0, _081931D8 + cmp r1, r0 + bne _081931DC + ldr r0, _081931B8 + ldr r2, [r0] + ldr r3, [sp, #0x4c] + ldr r1, [r3, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + add r0, sb + ldr r1, _081931BC + adds r2, r2, r1 + adds r2, r2, r0 + ldrh r0, [r2] + b _0819322A + .align 2, 0 +_081931B8: .4byte 0x03005AF0 +_081931BC: .4byte 0x00000D64 +_081931C0: .4byte 0x0203B958 +_081931C4: .4byte 0x085D5E24 +_081931C8: .4byte 0x085D5E27 +_081931CC: .4byte 0x08190595 +_081931D0: .4byte 0x0203CA44 +_081931D4: .4byte 0x020205AC +_081931D8: .4byte 0x000003FF +_081931DC: + ldr r0, _081931FC + cmp r1, r0 + bne _08193208 + ldr r0, _08193200 + ldr r2, [r0] + ldr r0, [sp, #0x4c] + ldr r1, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + add r0, sb + ldr r1, _08193204 + adds r2, r2, r1 + adds r2, r2, r0 + ldrh r0, [r2] + b _0819322A + .align 2, 0 +_081931FC: .4byte 0x000003FE +_08193200: .4byte 0x03005AF0 +_08193204: .4byte 0x00000D64 +_08193208: + ldr r0, _0819335C + ldr r2, [r0] + ldr r0, [sp, #0x4c] + ldr r1, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + add r0, sb + ldr r1, _08193360 + adds r2, r2, r1 + adds r2, r2, r0 + ldrh r1, [r2] + ldr r0, _08193364 + ldr r0, [r0] + lsls r1, r1, #4 + adds r1, r1, r0 + ldrh r0, [r1] +_0819322A: + ldr r1, _08193368 + adds r1, r5, r1 + ldrb r2, [r1] + ldr r3, [sp, #0x40] + orrs r2, r3 + ldr r1, _0819336C + adds r1, r5, r1 + ldrb r3, [r1] + ldr r1, [sp, #0x44] + adds r3, r3, r1 + str r7, [sp] + str r7, [sp, #4] + movs r1, #1 + str r1, [sp, #8] + ldr r1, _08193370 + bl CreateMonIcon + ldr r1, [r6] + adds r1, r1, r4 + strb r0, [r1] + ldr r0, [r6] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + ldrb r1, [r0, #5] + movs r3, #0xd + rsbs r3, r3, #0 + adds r2, r3, #0 + ands r1, r2 + strb r1, [r0, #5] + movs r0, #0x1e + ldr r1, [sp, #0x34] + ands r0, r1 + cmp r0, #0 + beq _0819328E + ldr r0, [r6] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_0819328E: + ldr r2, [sp, #0x54] + ldr r0, [r2, #4] + cmp r0, #0 + beq _081932C2 + ldr r0, [r6] + adds r0, r0, r4 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + add r1, r8 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + movs r2, #0x30 + orrs r0, r2 + strb r0, [r1, #5] + ldr r0, [r6] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + movs r1, #1 + strh r1, [r0, #0x34] +_081932C2: + adds r4, #1 + movs r3, #2 + add sb, r3 + adds r5, #1 + cmp r5, #2 + bgt _081932D0 + b _08193194 +_081932D0: + add r0, sp, #0xc + movs r2, #0 + strb r2, [r0, #6] + adds r1, r0, #0 + movs r0, #2 + strb r0, [r1, #7] + adds r0, r1, #0 + ldrb r0, [r0, #6] + strb r0, [r1, #8] + adds r0, r1, #0 + ldrb r0, [r0, #7] + strb r0, [r1, #9] + adds r0, r1, #0 + strb r2, [r0, #0xa] + strb r2, [r0, #0xb] + adds r3, r0, #0 + ldrb r2, [r3, #0xc] + movs r1, #0x10 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3, #0xc] + adds r2, r3, #0 + movs r0, #0xe0 + strb r0, [r2, #0xc] + ldrb r0, [r2, #0xd] + ands r1, r0 + strb r1, [r2, #0xd] + adds r1, r2, #0 + movs r0, #0xd0 + strb r0, [r1, #0xd] + ldr r4, _08193374 + ldr r0, _08193378 + ldr r7, [sp, #0x74] + adds r0, r7, r0 + ldr r1, [r0] + adds r0, r4, #0 + bl StringExpandPlaceholders + str r4, [sp, #0xc] + add r0, sp, #0xc + add r1, sp, #0x70 + ldrb r1, [r1] + strb r1, [r0, #4] + adds r1, r0, #0 + movs r0, #1 + strb r0, [r1, #5] + ldr r4, [sp, #0x70] + adds r0, r4, #0 + bl PutWindowTilemap + adds r0, r4, #0 + movs r1, #3 + bl CopyWindowToVram + add r0, sp, #0xc + movs r1, #0 + movs r2, #0 + bl AddTextPrinter + ldr r1, [sp, #0x24] + ldr r0, _0819337C + cmp r1, r0 + bne _08193384 + ldr r0, _08193380 + ldr r1, _0819335C + ldr r1, [r1] + bl StringCopy + b _081933A6 + .align 2, 0 +_0819335C: .4byte 0x03005AF0 +_08193360: .4byte 0x00000D64 +_08193364: .4byte 0x0203B958 +_08193368: .4byte 0x085D5E2A +_0819336C: .4byte 0x085D5E2D +_08193370: .4byte 0x08190595 +_08193374: .4byte 0x02021C7C +_08193378: .4byte 0x085D5E08 +_0819337C: .4byte 0x000003FF +_08193380: .4byte 0x02021C40 +_08193384: + ldr r0, _08193394 + cmp r1, r0 + bne _0819339C + ldr r0, _08193398 + bl CopyDomeBrainTrainerName + b _081933A6 + .align 2, 0 +_08193394: .4byte 0x000003FE +_08193398: .4byte 0x02021C40 +_0819339C: + ldr r0, _081933E8 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl CopyDomeTrainerName +_081933A6: + add r0, sp, #0xc + movs r1, #2 + strb r1, [r0, #5] + strb r1, [r0, #0xa] + ldr r5, _081933E8 + str r5, [sp, #0xc] + add r2, sp, #0x68 + ldrb r2, [r2] + strb r2, [r0, #4] + ldr r4, [sp, #0x68] + adds r0, r4, #0 + bl PutWindowTilemap + adds r0, r4, #0 + movs r1, #3 + bl CopyWindowToVram + add r0, sp, #0xc + movs r1, #0 + movs r2, #0 + bl AddTextPrinter + ldr r3, [sp, #0x50] + ldr r1, [r3, #4] + ldr r0, _081933EC + cmp r1, r0 + bne _081933F4 + ldr r0, _081933F0 + ldr r1, [r0] + adds r0, r5, #0 + bl StringCopy + b _08193412 + .align 2, 0 +_081933E8: .4byte 0x02021C40 +_081933EC: .4byte 0x000003FF +_081933F0: .4byte 0x03005AF0 +_081933F4: + ldr r0, _08193404 + cmp r1, r0 + bne _08193408 + adds r0, r5, #0 + bl CopyDomeBrainTrainerName + b _08193412 + .align 2, 0 +_08193404: .4byte 0x000003FE +_08193408: + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r5, #0 + bl CopyDomeTrainerName +_08193412: + ldr r0, _0819347C + str r0, [sp, #0xc] + add r0, sp, #0xc + movs r5, #0 + add r7, sp, #0x6c + ldrb r7, [r7] + strb r7, [r0, #4] + ldr r4, [sp, #0x6c] + adds r0, r4, #0 + bl PutWindowTilemap + adds r0, r4, #0 + movs r1, #3 + bl CopyWindowToVram + add r0, sp, #0xc + movs r1, #0 + movs r2, #0 + bl AddTextPrinter + add r0, sp, #0xc + strb r5, [r0, #0xa] + ldr r0, _08193480 + ldr r1, [sp, #0x5c] + adds r0, r1, r0 + ldr r0, [r0] + str r0, [sp, #0xc] + add r0, sp, #0xc + add r2, sp, #0x64 + ldrb r2, [r2] + strb r2, [r0, #4] + ldr r4, [sp, #0x64] + adds r0, r4, #0 + bl PutWindowTilemap + adds r0, r4, #0 + movs r1, #3 + bl CopyWindowToVram + add r0, sp, #0xc + movs r1, #0 + movs r2, #0 + bl AddTextPrinter + add sp, #0x80 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0819347C: .4byte 0x02021C40 +_08193480: .4byte 0x085D5DCC + thumb_func_end DisplayMatchInfoOnCard + + thumb_func_start ShowDomeTourneyTree +ShowDomeTourneyTree: @ 0x08193484 + push {lr} + ldr r0, _081934B4 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _081934B8 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r2, #0 + strh r2, [r1, #8] + strh r2, [r1, #0xa] + movs r0, #2 + strh r0, [r1, #0xc] + strh r2, [r1, #0x10] + ldr r0, _081934BC + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_081934B4: .4byte 0x08193E01 +_081934B8: .4byte 0x03005B60 +_081934BC: .4byte 0x08194755 + thumb_func_end ShowDomeTourneyTree + + thumb_func_start ShowPreviousDomeResultsTourneyTree +ShowPreviousDomeResultsTourneyTree: @ 0x081934C0 + push {r4, lr} + bl InitDomeFacilityTrainersAndMons + ldr r4, _08193520 + ldr r2, [r4] + ldr r1, _08193524 + adds r0, r2, r1 + ldrb r1, [r0] + subs r1, #1 + ldr r0, _08193528 + adds r2, r2, r0 + movs r0, #3 + ands r1, r0 + ldrb r3, [r2] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r4] + ldr r1, _0819352C + adds r0, r0, r1 + movs r4, #0 + movs r1, #3 + strh r1, [r0] + ldr r0, _08193530 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08193534 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #8] + strh r4, [r1, #0xa] + movs r0, #2 + strh r0, [r1, #0xc] + movs r0, #1 + strh r0, [r1, #0x10] + ldr r0, _08193538 + bl SetMainCallback2 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08193520: .4byte 0x03005AF0 +_08193524: .4byte 0x00000D0A +_08193528: .4byte 0x00000CA9 +_0819352C: .4byte 0x00000CB2 +_08193530: .4byte 0x08193E01 +_08193534: .4byte 0x03005B60 +_08193538: .4byte 0x08194755 + thumb_func_end ShowPreviousDomeResultsTourneyTree + + thumb_func_start sub_0819353C +sub_0819353C: @ 0x0819353C + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _08193568 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #0xa + ldrsh r7, [r0, r2] + movs r2, #8 + ldrsh r0, [r0, r2] + adds r2, r1, #0 + cmp r0, #7 + bls _0819355E + b _081937A2 +_0819355E: + lsls r0, r0, #2 + ldr r1, _0819356C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08193568: .4byte 0x03005B60 +_0819356C: .4byte 0x08193570 +_08193570: @ jump table + .4byte _08193590 @ case 0 + .4byte _081935E0 @ case 1 + .4byte _08193600 @ case 2 + .4byte _08193688 @ case 3 + .4byte _081937A2 @ case 4 + .4byte _08193700 @ case 5 + .4byte _081937A2 @ case 6 + .4byte _08193764 @ case 7 +_08193590: + ldr r0, _081935D4 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _081935A2 + b _081937A2 +_081935A2: + movs r0, #1 + rsbs r0, r0, #0 + str r1, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r1, _081935D8 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #1 + strh r1, [r0, #8] + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + ldr r1, _081935DC + adds r0, r0, r1 + movs r1, #1 + bl StartSpriteAnim + b _081937A2 + .align 2, 0 +_081935D4: .4byte 0x02037C74 +_081935D8: .4byte 0x03005B60 +_081935DC: .4byte 0x020205AC +_081935E0: + ldr r0, _081935FC + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _081935EE + b _081937A2 +_081935EE: + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r1, #2 + strh r1, [r0, #8] + b _081937A2 + .align 2, 0 +_081935FC: .4byte 0x02037C74 +_08193600: + adds r0, r5, #0 + bl UpdateTourneyTreeCursor + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08193610 + b _081937A2 +_08193610: + cmp r0, #1 + ble _0819361C + cmp r0, #2 + beq _08193640 + cmp r0, #3 + beq _08193664 +_0819361C: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _0819363C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #7 + strh r1, [r0, #8] + b _081937A2 + .align 2, 0 +_0819363C: .4byte 0x03005B60 +_08193640: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _08193660 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #3 + strh r1, [r0, #8] + b _081937A2 + .align 2, 0 +_08193660: .4byte 0x03005B60 +_08193664: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _08193684 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #5 + strh r1, [r0, #8] + b _081937A2 + .align 2, 0 +_08193684: .4byte 0x03005B60 +_08193688: + ldr r0, _081936E8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + beq _0819369A + b _081937A2 +_0819369A: + bl FreeAllWindowBuffers + bl ScanlineEffect_Stop + ldr r4, _081936EC + ldr r0, [r4] + bl Free + str r6, [r4] + ldr r0, _081936F0 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r2, _081936F4 + lsls r1, r3, #2 + adds r1, r1, r3 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r3, #0 + strh r6, [r1, #8] + ldr r0, _081936F8 + adds r0, r7, r0 + ldrb r0, [r0] + strh r0, [r1, #0xa] + movs r0, #1 + strh r0, [r1, #0xc] + strh r5, [r1, #0xe] + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r1, #4 + strh r1, [r0, #8] + ldr r0, _081936FC + ldr r0, [r0] + strb r3, [r0, #0x10] + b _081937A2 + .align 2, 0 +_081936E8: .4byte 0x02037C74 +_081936EC: .4byte 0x0203CA48 +_081936F0: .4byte 0x0819005D +_081936F4: .4byte 0x03005B60 +_081936F8: .4byte 0x085D5AFC +_081936FC: .4byte 0x0203CA44 +_08193700: + ldr r0, _08193754 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + bne _081937A2 + bl FreeAllWindowBuffers + bl ScanlineEffect_Stop + ldr r4, _08193758 + ldr r0, [r4] + bl Free + str r6, [r4] + ldr r0, _0819375C + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r2, _08193760 + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #3 + adds r0, r0, r2 + strh r6, [r0, #8] + adds r1, r7, #0 + subs r1, #0x10 + strh r1, [r0, #0xa] + movs r1, #2 + strh r1, [r0, #0xc] + strh r5, [r0, #0xe] + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r1, #6 + strh r1, [r0, #8] + b _081937A2 + .align 2, 0 +_08193754: .4byte 0x02037C74 +_08193758: .4byte 0x0203CA48 +_0819375C: .4byte 0x0819005D +_08193760: .4byte 0x03005B60 +_08193764: + ldr r0, _081937AC + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + bne _081937A2 + bl FreeAllWindowBuffers + bl ScanlineEffect_Stop + ldr r4, _081937B0 + ldr r0, [r4] + bl Free + str r6, [r4] + ldr r0, _081937B4 + bl SetMainCallback2 + ldr r1, _081937B8 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r0, [r0, #0x16] + bl DestroyTask + adds r0, r5, #0 + bl DestroyTask +_081937A2: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081937AC: .4byte 0x02037C74 +_081937B0: .4byte 0x0203CA48 +_081937B4: .4byte 0x08085B35 +_081937B8: .4byte 0x03005B60 + thumb_func_end sub_0819353C + + thumb_func_start UpdateTourneyTreeCursor +UpdateTourneyTreeCursor: @ 0x081937BC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r0, #1 + mov sb, r0 + movs r1, #4 + mov r8, r1 + ldr r1, _0819380C + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0xa + ldrsh r5, [r0, r1] + ldr r0, _08193810 + ldr r0, [r0] + ldr r1, _08193814 + adds r0, r0, r1 + ldrh r6, [r0] + ldr r0, _08193818 + ldrh r1, [r0, #0x2e] + adds r2, r1, #0 + adds r3, r0, #0 + cmp r2, #2 + beq _08193800 + mov r0, sb + ands r0, r1 + cmp r0, #0 + beq _08193838 + cmp r5, #0x1f + bne _0819381C +_08193800: + movs r0, #5 + bl PlaySE + movs r0, #0 + mov sb, r0 + b _081938BE + .align 2, 0 +_0819380C: .4byte 0x03005B60 +_08193810: .4byte 0x03005AF0 +_08193814: .4byte 0x00000CB2 +_08193818: .4byte 0x03002360 +_0819381C: + cmp r5, #0xf + bgt _0819382C + movs r0, #5 + bl PlaySE + movs r1, #2 + mov sb, r1 + b _081938BE +_0819382C: + movs r0, #5 + bl PlaySE + movs r0, #3 + mov sb, r0 + b _081938BE +_08193838: + cmp r2, #0x40 + bne _08193858 + ldr r0, _08193854 + lsls r1, r5, #2 + adds r1, r1, r5 + adds r1, r1, r6 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0xff + beq _08193858 + movs r1, #0 + mov r8, r1 + b _081938BE + .align 2, 0 +_08193854: .4byte 0x085D5695 +_08193858: + ldrh r0, [r3, #0x2e] + cmp r0, #0x80 + bne _0819387C + ldr r0, _08193878 + lsls r1, r5, #2 + adds r1, r1, r5 + adds r1, r1, r6 + lsls r1, r1, #2 + adds r0, #1 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0xff + beq _0819387C + movs r0, #1 + b _081938BC + .align 2, 0 +_08193878: .4byte 0x085D5695 +_0819387C: + ldrh r0, [r3, #0x2e] + cmp r0, #0x20 + bne _081938A0 + ldr r0, _0819389C + lsls r1, r5, #2 + adds r1, r1, r5 + adds r1, r1, r6 + lsls r1, r1, #2 + adds r0, #2 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0xff + beq _081938A0 + movs r1, #2 + mov r8, r1 + b _081938BE + .align 2, 0 +_0819389C: .4byte 0x085D5695 +_081938A0: + ldrh r0, [r3, #0x2e] + cmp r0, #0x10 + bne _081938BE + ldr r0, _08193914 + lsls r1, r5, #2 + adds r1, r1, r5 + adds r1, r1, r6 + lsls r1, r1, #2 + adds r0, #3 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0xff + beq _081938BE + movs r0, #3 +_081938BC: + mov r8, r0 +_081938BE: + mov r1, r8 + cmp r1, #4 + beq _08193906 + movs r0, #5 + bl PlaySE + lsls r0, r5, #4 + adds r0, r0, r5 + lsls r0, r0, #2 + ldr r4, _08193918 + adds r0, r0, r4 + movs r1, #0 + bl StartSpriteAnim + ldr r2, _08193914 + lsls r1, r6, #2 + add r1, r8 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r5, [r1] + lsls r0, r5, #4 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #1 + bl StartSpriteAnim + ldr r1, _0819391C + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r5, [r0, #0xa] +_08193906: + mov r0, sb + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08193914: .4byte 0x085D5695 +_08193918: .4byte 0x020205AC +_0819391C: .4byte 0x03005B60 + thumb_func_end UpdateTourneyTreeCursor + + thumb_func_start ShowNonInteractiveDomeTourneyTree +ShowNonInteractiveDomeTourneyTree: @ 0x08193920 + push {lr} + ldr r0, _08193950 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08193954 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r2, #0 + strh r2, [r1, #8] + movs r0, #1 + strh r0, [r1, #0xa] + movs r0, #2 + strh r0, [r1, #0xc] + strh r2, [r1, #0x10] + ldr r0, _08193958 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_08193950: .4byte 0x08193E01 +_08193954: .4byte 0x03005B60 +_08193958: .4byte 0x08194755 + thumb_func_end ShowNonInteractiveDomeTourneyTree + + thumb_func_start ResolveDomeRoundWinners +ResolveDomeRoundWinners: @ 0x0819395C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r7, _081939D8 + ldrh r0, [r7] + cmp r0, #1 + bne _081939F0 + ldr r5, _081939DC + ldrh r0, [r5] + bl TrainerIdToDomeTournamentId + ldr r4, _081939E0 + ldr r2, [r4] + lsls r0, r0, #2 + adds r2, r2, r0 + ldr r6, _081939E4 + adds r2, r2, r6 + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r5] + bl TrainerIdToDomeTournamentId + ldr r1, [r4] + lsls r0, r0, #2 + adds r0, r1, r0 + ldr r2, _081939E8 + mov r8, r2 + add r1, r8 + adds r0, r0, r6 + movs r3, #3 + ldrb r2, [r1] + ands r2, r3 + lsls r2, r2, #3 + ldrb r3, [r0] + movs r1, #0x19 + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r2 + strb r1, [r0] + ldrh r0, [r5] + bl TrainerIdToDomeTournamentId + ldr r2, [r4] + lsls r0, r0, #1 + movs r3, #0xec + lsls r3, r3, #4 + adds r1, r2, r3 + adds r1, r1, r0 + ldr r0, _081939EC + ldrh r0, [r0, #0x22] + strh r0, [r1] + add r2, r8 + ldrh r0, [r2] + cmp r0, #2 + bhi _08193A8E + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DecideRoundWinners + b _08193A8E + .align 2, 0 +_081939D8: .4byte 0x02037282 +_081939DC: .4byte 0x0203886A +_081939E0: .4byte 0x03005AF0 +_081939E4: .4byte 0x00000D25 +_081939E8: .4byte 0x00000CB2 +_081939EC: .4byte 0x03005A70 +_081939F0: + ldr r5, _08193A98 + adds r0, r5, #0 + bl TrainerIdToDomeTournamentId + ldr r4, _08193A9C + ldr r2, [r4] + lsls r0, r0, #2 + adds r2, r2, r0 + ldr r6, _08193AA0 + adds r2, r2, r6 + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + bl TrainerIdToDomeTournamentId + ldr r1, [r4] + lsls r0, r0, #2 + adds r0, r1, r0 + ldr r2, _08193AA4 + adds r1, r1, r2 + adds r0, r0, r6 + movs r3, #3 + ldrb r2, [r1] + ands r2, r3 + lsls r2, r2, #3 + ldrb r3, [r0] + movs r1, #0x19 + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r2 + strb r1, [r0] + adds r0, r5, #0 + bl TrainerIdToDomeTournamentId + ldr r1, [r4] + lsls r0, r0, #1 + movs r3, #0xec + lsls r3, r3, #4 + adds r1, r1, r3 + adds r1, r1, r0 + ldr r0, _08193AA8 + ldrh r0, [r0, #0x24] + strh r0, [r1] + ldr r0, _08193AAC + ldrb r0, [r0] + cmp r0, #9 + beq _08193A58 + ldrh r0, [r7] + cmp r0, #9 + bne _08193A72 +_08193A58: + adds r0, r5, #0 + bl TrainerIdToDomeTournamentId + ldr r2, [r4] + lsls r0, r0, #2 + adds r2, r2, r0 + adds r2, r2, r6 + ldrb r1, [r2] + movs r0, #0x1f + ands r0, r1 + movs r1, #0x20 + orrs r0, r1 + strb r0, [r2] +_08193A72: + ldr r0, _08193A9C + ldr r0, [r0] + ldr r1, _08193AA4 + adds r0, r0, r1 + ldrh r4, [r0] + cmp r4, #3 + bgt _08193A8E +_08193A80: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl DecideRoundWinners + adds r4, #1 + cmp r4, #3 + ble _08193A80 +_08193A8E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08193A98: .4byte 0x000003FF +_08193A9C: .4byte 0x03005AF0 +_08193AA0: .4byte 0x00000D25 +_08193AA4: .4byte 0x00000CB2 +_08193AA8: .4byte 0x03005A70 +_08193AAC: .4byte 0x02023FDE + thumb_func_end ResolveDomeRoundWinners + + thumb_func_start GetWinningMove +GetWinningMove: @ 0x08193AB0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x84 + str r0, [sp, #0x48] + str r1, [sp, #0x4c] + lsls r4, r2, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + str r0, [sp, #0x54] + movs r1, #0 + str r1, [sp, #0x58] + bl SetFacilityPtrsGetLevel + movs r2, #0 + str r2, [sp, #0x50] + add r3, sp, #0x30 + mov sl, r3 + ldr r5, [sp, #0x4c] + lsls r5, r5, #1 + str r5, [sp, #0x70] + subs r4, #1 + str r4, [sp, #0x78] +_08193AE2: + movs r0, #0 + mov sb, r0 + ldr r1, [sp, #0x50] + lsls r1, r1, #2 + str r1, [sp, #0x74] + ldr r2, [sp, #0x48] + lsls r2, r2, #2 + str r2, [sp, #0x6c] + ldr r3, [sp, #0x50] + adds r3, #1 + str r3, [sp, #0x60] +_08193AF8: + ldr r4, [sp, #0x74] + add r4, sb + lsls r0, r4, #2 + mov r5, sp + adds r1, r5, r0 + movs r0, #0 + str r0, [r1] + ldr r0, _08193B34 + ldr r3, [r0] + ldr r1, [sp, #0x6c] + adds r0, r3, r1 + ldr r2, _08193B38 + adds r0, r0, r2 + ldrh r0, [r0] + lsls r0, r0, #0x16 + ldr r1, _08193B3C + cmp r0, r1 + bne _08193B40 + ldr r3, [sp, #0x50] + lsls r0, r3, #0x18 + mov r5, sb + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + lsrs r0, r0, #0x18 + bl GetFrontierBrainMonMove + lsls r1, r4, #1 + add r1, sl + strh r0, [r1] + b _08193B6C + .align 2, 0 +_08193B34: .4byte 0x03005AF0 +_08193B38: .4byte 0x00000D24 +_08193B3C: .4byte 0xFF800000 +_08193B40: + lsls r2, r4, #1 + add r2, sl + ldr r1, [sp, #0x48] + lsls r0, r1, #1 + adds r0, r0, r1 + ldr r4, [sp, #0x50] + adds r0, r0, r4 + lsls r0, r0, #1 + ldr r5, _08193B8C + adds r1, r3, r5 + adds r1, r1, r0 + ldrh r0, [r1] + ldr r1, _08193B90 + ldr r1, [r1] + lsls r0, r0, #4 + adds r0, r0, r1 + mov r3, sb + lsls r1, r3, #1 + adds r0, #2 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2] +_08193B6C: + ldr r0, _08193B94 + ldr r1, [sp, #0x74] + add r1, sb + lsls r1, r1, #1 + add r1, sl + ldrh r2, [r1] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r6, [r1, #1] + cmp r6, #0 + bne _08193B98 + movs r6, #0x28 + b _08193BB0 + .align 2, 0 +_08193B8C: .4byte 0x00000D64 +_08193B90: .4byte 0x0203B958 +_08193B94: .4byte 0x082ED220 +_08193B98: + cmp r6, #1 + bne _08193BA0 + movs r6, #0x3c + b _08193BB0 +_08193BA0: + adds r1, r2, #0 + cmp r1, #0x78 + beq _08193BAA + cmp r1, #0x99 + bne _08193BB0 +_08193BAA: + lsrs r0, r6, #0x1f + adds r0, r6, r0 + asrs r6, r0, #1 +_08193BB0: + movs r1, #0 + mov r4, sb + adds r4, #1 + str r4, [sp, #0x64] + ldr r5, [sp, #0x70] + ldr r2, [sp, #0x4c] + adds r0, r5, r2 + lsls r0, r0, #1 + str r0, [sp, #0x5c] +_08193BC2: + lsls r7, r1, #1 + adds r1, #1 + str r1, [sp, #0x68] + ldr r3, [sp, #0x5c] + adds r3, r3, r7 + mov r8, r3 +_08193BCE: + bl Random + adds r4, r0, #0 + bl Random + lsls r4, r4, #0x10 + lsrs r5, r4, #0x10 + lsls r0, r0, #0x10 + orrs r5, r0 + ldr r2, _08193C38 + ldr r0, [r2] + ldr r4, _08193C3C + adds r0, r0, r4 + add r0, r8 + ldrh r4, [r0] + ldr r3, _08193C40 + ldr r0, [r3] + lsls r4, r4, #4 + adds r4, r4, r0 + adds r0, r5, #0 + str r2, [sp, #0x7c] + str r3, [sp, #0x80] + bl GetNatureFromPersonality + ldrb r1, [r4, #0xc] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, [sp, #0x7c] + ldr r3, [sp, #0x80] + cmp r1, r0 + bne _08193BCE + ldr r0, [r2] + ldr r2, [sp, #0x5c] + adds r1, r7, r2 + ldr r4, _08193C3C + adds r0, r0, r4 + adds r0, r0, r1 + ldrh r0, [r0] + ldr r1, [r3] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #1 + ands r5, r0 + cmp r5, #0 + beq _08193C48 + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r5, _08193C44 + adds r0, r0, r5 + ldrb r2, [r0, #0x17] + b _08193C54 + .align 2, 0 +_08193C38: .4byte 0x03005AF0 +_08193C3C: .4byte 0x00000D64 +_08193C40: .4byte 0x0203B958 +_08193C44: .4byte 0x082F0D54 +_08193C48: + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r2, _08193C78 + adds r0, r0, r2 + ldrb r2, [r0, #0x16] +_08193C54: + ldr r4, [sp, #0x74] + add r4, sb + lsls r0, r4, #1 + add r0, sl + ldrh r0, [r0] + bl AI_TypeCalc + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r0, #6 + ands r0, r5 + cmp r0, #6 + bne _08193C7C + lsls r0, r4, #2 + mov r3, sp + adds r1, r3, r0 + b _08193CB8 + .align 2, 0 +_08193C78: .4byte 0x082F0D54 +_08193C7C: + movs r0, #0x29 + ands r0, r5 + cmp r0, #0 + bne _08193CBE + movs r0, #2 + ands r0, r5 + cmp r0, #0 + beq _08193C96 + lsls r0, r4, #2 + mov r5, sp + adds r2, r5, r0 + lsls r1, r6, #1 + b _08193CAA +_08193C96: + movs r0, #4 + ands r5, r0 + cmp r5, #0 + beq _08193CB2 + lsls r0, r4, #2 + mov r1, sp + adds r2, r1, r0 + lsrs r1, r6, #0x1f + adds r1, r6, r1 + asrs r1, r1, #1 +_08193CAA: + ldr r0, [r2] + adds r0, r0, r1 + str r0, [r2] + b _08193CBE +_08193CB2: + lsls r0, r4, #2 + mov r2, sp + adds r1, r2, r0 +_08193CB8: + ldr r0, [r1] + adds r0, r0, r6 + str r0, [r1] +_08193CBE: + ldr r1, [sp, #0x68] + cmp r1, #2 + bgt _08193CC6 + b _08193BC2 +_08193CC6: + ldr r2, [sp, #0x74] + add r2, sb + lsls r0, r2, #2 + add r0, sp + ldr r1, [r0] + ldr r3, [sp, #0x54] + cmp r3, r1 + bge _08193CE4 + lsls r0, r2, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x58] + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x54] + b _08193D02 +_08193CE4: + ldr r4, [sp, #0x54] + cmp r4, r1 + bne _08193D02 + ldr r5, [sp, #0x58] + lsls r0, r5, #1 + add r0, sl + lsls r1, r2, #1 + add r1, sl + ldrh r0, [r0] + ldrh r1, [r1] + cmp r0, r1 + bhs _08193D02 + lsls r0, r2, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x58] +_08193D02: + ldr r0, [sp, #0x64] + mov sb, r0 + cmp r0, #3 + bgt _08193D0C + b _08193AF8 +_08193D0C: + ldr r1, [sp, #0x60] + str r1, [sp, #0x50] + cmp r1, #2 + bgt _08193D16 + b _08193AE2 +_08193D16: + ldr r2, [sp, #0x58] + mov sb, r2 + b _08193D62 +_08193D1C: + movs r3, #0 + mov sb, r3 + movs r1, #0 + mov r4, sl + mov r3, sl + mov r2, sp +_08193D28: + ldr r0, [r2] + ldr r5, [sp, #0x54] + cmp r5, r0 + bge _08193D3A + mov sb, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x54] + b _08193D50 +_08193D3A: + ldr r5, [sp, #0x54] + cmp r5, r0 + bne _08193D50 + mov r5, sb + lsls r0, r5, #1 + adds r0, r4, r0 + ldrh r0, [r0] + ldrh r5, [r3] + cmp r0, r5 + bhs _08193D50 + mov sb, r1 +_08193D50: + adds r3, #2 + adds r2, #4 + adds r1, #1 + cmp r1, #0xb + ble _08193D28 + ldr r0, [sp, #0x50] + ldr r1, [sp, #0x78] + cmp r0, r1 + beq _08193DD4 +_08193D62: + movs r2, #0 + str r2, [sp, #0x50] + mov r3, sb + lsls r7, r3, #2 + ldr r4, [sp, #0x78] + cmp r2, r4 + bge _08193DAA + lsls r0, r3, #1 + mov r5, sl + adds r6, r5, r0 + ldr r0, [sp, #0x48] + lsls r5, r0, #0x18 +_08193D7A: + ldr r0, _08193DFC + ldr r4, [r0] + ldr r2, [sp, #0x50] + lsls r1, r2, #0x18 + lsrs r1, r1, #0x18 + lsrs r0, r5, #0x18 + bl sub_08194FE8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + movs r3, #0xec + lsls r3, r3, #4 + adds r4, r4, r3 + adds r4, r4, r0 + ldrh r0, [r4] + ldrh r4, [r6] + cmp r0, r4 + beq _08193DAA + ldr r0, [sp, #0x50] + adds r0, #1 + str r0, [sp, #0x50] + ldr r1, [sp, #0x78] + cmp r0, r1 + blt _08193D7A +_08193DAA: + ldr r2, [sp, #0x50] + ldr r3, [sp, #0x78] + cmp r2, r3 + beq _08193DD4 + mov r4, sp + adds r1, r4, r7 + movs r0, #0 + str r0, [r1] + movs r5, #0 + str r5, [sp, #0x54] + mov sb, r5 + mov r2, sp + movs r1, #0xb +_08193DC4: + ldm r2!, {r0} + add sb, r0 + subs r1, #1 + cmp r1, #0 + bge _08193DC4 + mov r0, sb + cmp r0, #0 + bne _08193D1C +_08193DD4: + mov r1, sb + lsls r0, r1, #2 + add r0, sp + ldr r0, [r0] + cmp r0, #0 + bne _08193DE4 + ldr r2, [sp, #0x58] + mov sb, r2 +_08193DE4: + mov r3, sb + lsls r0, r3, #1 + add r0, sl + ldrh r0, [r0] + add sp, #0x84 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08193DFC: .4byte 0x03005AF0 + thumb_func_end GetWinningMove + + thumb_func_start Task_ShowTourneyTree +Task_ShowTourneyTree: @ 0x08193E00 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x28 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r1, _08193E3C + lsls r0, r0, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #0xa + ldrsh r1, [r0, r2] + mov sl, r1 + movs r3, #0xc + ldrsh r4, [r0, r3] + movs r1, #8 + ldrsh r0, [r0, r1] + cmp r0, #5 + bls _08193E30 + b _08194466 +_08193E30: + lsls r0, r0, #2 + ldr r1, _08193E40 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08193E3C: .4byte 0x03005B60 +_08193E40: .4byte 0x08193E44 +_08193E44: @ jump table + .4byte _08193E5C @ case 0 + .4byte _08193EFC @ case 1 + .4byte _08193F6C @ case 2 + .4byte _0819405C @ case 3 + .4byte _081940B0 @ case 4 + .4byte _0819436C @ case 5 +_08193E5C: + movs r0, #0 + bl SetHBlankCallback + movs r0, #0 + bl SetVBlankCallback + movs r0, #3 + bl EnableInterrupts + movs r4, #0 + str r4, [sp, #0x14] + add r0, sp, #0x14 + movs r1, #0xc0 + lsls r1, r1, #0x13 + ldr r2, _08193EDC + bl CpuSet + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _08193EE0 + movs r0, #0 + movs r2, #4 + bl InitBgsFromTemplates + ldr r0, _08193EE4 + bl InitWindows + bl DeactivateAllTextPrinters + ldr r0, _08193EE8 + strh r4, [r0] + ldr r0, _08193EEC + strh r4, [r0] + ldr r0, _08193EF0 + strh r4, [r0] + ldr r0, _08193EF4 + strh r4, [r0] + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r1, #0xb0 + lsls r1, r1, #4 + movs r0, #3 + movs r2, #0 + bl ChangeBgY + ldr r1, _08193EF8 + mov r2, r8 + lsls r0, r2, #2 + b _0819401C + .align 2, 0 +_08193EDC: .4byte 0x05006000 +_08193EE0: .4byte 0x085D5918 +_08193EE4: .4byte 0x085D5938 +_08193EE8: .4byte 0x02022AC8 +_08193EEC: .4byte 0x02022ACA +_08193EF0: .4byte 0x02022ACC +_08193EF4: .4byte 0x02022ACE +_08193EF8: .4byte 0x03005B60 +_08193EFC: + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + movs r0, #0x4c + movs r1, #0 + bl SetGpuReg + ldr r1, _08193F60 + movs r0, #0x40 + bl SetGpuReg + movs r0, #0x44 + movs r1, #0x9f + bl SetGpuReg + ldr r1, _08193F64 + movs r0, #0x42 + bl SetGpuReg + movs r0, #0x46 + movs r1, #0x9f + bl SetGpuReg + movs r0, #0x48 + movs r1, #0 + bl SetGpuReg + movs r0, #0x4a + movs r1, #0x3f + bl SetGpuReg + bl ResetPaletteFade + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r1, _08193F68 + mov r3, r8 + lsls r0, r3, #2 + b _0819401C + .align 2, 0 +_08193F60: .4byte 0x00005860 +_08193F64: .4byte 0x00009098 +_08193F68: .4byte 0x03005B60 +_08193F6C: + ldr r4, _0819402C + movs r0, #0x80 + lsls r0, r0, #4 + bl AllocZeroed + adds r1, r0, #0 + str r1, [r4] + ldr r0, _08194030 + bl LZDecompressVram + ldr r1, [r4] + movs r0, #1 + bl SetBgTilemapBuffer + movs r0, #1 + bl CopyBgTilemapBufferToVram + ldr r1, _08194034 + movs r5, #0x80 + lsls r5, r5, #6 + movs r6, #0 + str r6, [sp] + movs r0, #1 + adds r2, r5, #0 + movs r3, #0 + bl DecompressAndLoadBgGfxUsingHeap + ldr r1, _08194038 + str r6, [sp] + movs r0, #2 + adds r2, r5, #0 + movs r3, #0 + bl DecompressAndLoadBgGfxUsingHeap + ldr r1, _0819403C + movs r4, #1 + str r4, [sp] + movs r0, #2 + adds r2, r5, #0 + movs r3, #0 + bl DecompressAndLoadBgGfxUsingHeap + ldr r1, _08194040 + str r4, [sp] + movs r0, #3 + adds r2, r5, #0 + movs r3, #0 + bl DecompressAndLoadBgGfxUsingHeap + ldr r0, _08194044 + movs r4, #0x80 + lsls r4, r4, #2 + movs r1, #0 + adds r2, r4, #0 + bl LoadCompressedPalette + ldr r0, _08194048 + movs r1, #0x80 + lsls r1, r1, #1 + adds r2, r4, #0 + bl LoadCompressedPalette + ldr r0, _0819404C + movs r1, #0xf0 + movs r2, #0x20 + bl LoadCompressedPalette + str r6, [sp, #0x18] + add r0, sp, #0x18 + ldr r1, _08194050 + ldr r2, _08194054 + bl CpuSet + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg + ldr r1, _08194058 + mov r4, r8 + lsls r0, r4, #2 +_0819401C: + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #8] + adds r1, #1 + strh r1, [r0, #8] + b _08194466 + .align 2, 0 +_0819402C: .4byte 0x0203CA48 +_08194030: .4byte 0x08D839A4 +_08194034: .4byte 0x08D82FB4 +_08194038: .4byte 0x08D835A0 +_0819403C: .4byte 0x08D83BD0 +_08194040: .4byte 0x08D83CE0 +_08194044: .4byte 0x08D8533C +_08194048: .4byte 0x08D85428 +_0819404C: .4byte 0x08D855E4 +_08194050: .4byte 0x020377B4 +_08194054: .4byte 0x05000100 +_08194058: .4byte 0x03005B60 +_0819405C: + ldr r0, _0819409C + bl LoadCompressedSpriteSheet + mov r0, r8 + lsls r0, r0, #2 + str r0, [sp, #0x1c] + mov r1, sl + cmp r1, #0 + bne _08194092 + movs r5, #0 + ldr r4, _081940A0 +_08194072: + ldrb r1, [r4] + ldrb r2, [r4, #1] + ldr r0, _081940A4 + movs r3, #0 + bl CreateSprite + adds r4, #2 + adds r5, #1 + cmp r5, #0x1e + bls _08194072 + ldr r0, _081940A8 + movs r1, #0xda + movs r2, #0xc + movs r3, #0 + bl CreateSprite +_08194092: + ldr r1, _081940AC + movs r0, #0 + bl SetGpuReg + b _0819434A + .align 2, 0 +_0819409C: .4byte 0x085D59FC +_081940A0: .4byte 0x085D5E8D +_081940A4: .4byte 0x085D5A54 +_081940A8: .4byte 0x085D5A84 +_081940AC: .4byte 0x00007F40 +_081940B0: + add r0, sp, #4 + movs r2, #0 + movs r1, #2 + strb r1, [r0, #5] + ldr r0, _0819414C + str r0, [sp, #4] + add r0, sp, #4 + strb r1, [r0, #4] + strb r2, [r0, #6] + strb r2, [r0, #7] + strb r1, [r0, #0xa] + strb r2, [r0, #0xb] + strb r1, [r0, #8] + strb r1, [r0, #9] + adds r3, r0, #0 + ldrb r2, [r3, #0xc] + subs r1, #0x12 + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3, #0xc] + adds r2, r3, #0 + movs r0, #0xe0 + strb r0, [r2, #0xc] + ldrb r0, [r2, #0xd] + ands r1, r0 + strb r1, [r2, #0xd] + adds r1, r2, #0 + movs r0, #0xd0 + strb r0, [r1, #0xd] + adds r0, r1, #0 + movs r1, #0 + movs r2, #0 + bl AddTextPrinter + mov r2, r8 + lsls r2, r2, #2 + str r2, [sp, #0x1c] + add r4, sp, #4 + movs r3, #0xf + mov sb, r3 + movs r0, #0 + str r0, [sp, #0x20] + movs r1, #0 + str r1, [sp, #0x24] + movs r7, #0 + movs r5, #0xf +_0819410C: + ldr r2, _08194150 + ldr r0, [r2] + adds r0, r0, r7 + ldr r3, _08194154 + adds r0, r0, r3 + ldrh r1, [r0] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x16 + ldr r0, _08194158 + bl CopyDomeTrainerName + mov r0, sl + cmp r0, #1 + bne _08194164 + ldr r1, _08194150 + ldr r2, [r1] + adds r0, r2, r7 + ldr r3, _0819415C + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #0x1d + cmp r0, #0 + blt _0819417C + ldr r3, _08194160 + adds r0, r2, r3 + ldrh r1, [r0] + cmp r1, #1 + beq _081941D4 + ldr r2, [sp, #0x24] + lsrs r0, r2, #0x18 + subs r1, #2 + b _0819418A + .align 2, 0 +_0819414C: .4byte 0x085ABD18 +_08194150: .4byte 0x03005AF0 +_08194154: .4byte 0x00000D24 +_08194158: .4byte 0x02022AE0 +_0819415C: .4byte 0x00000D25 +_08194160: .4byte 0x00000CB2 +_08194164: + mov r3, sl + cmp r3, #0 + bne _081941D4 + ldr r0, _08194194 + ldr r2, [r0] + adds r0, r2, r7 + ldr r1, _08194198 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #0x1d + cmp r0, #0 + bge _0819419C +_0819417C: + lsls r1, r1, #0x1b + lsrs r0, r1, #0x1e + cmp r0, #0 + beq _081941D4 + subs r1, r0, #1 + ldr r2, [sp, #0x24] + lsrs r0, r2, #0x18 +_0819418A: + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl sub_08194490 + b _081941D4 + .align 2, 0 +_08194194: .4byte 0x03005AF0 +_08194198: .4byte 0x00000D25 +_0819419C: + ldr r3, _081941BC + adds r1, r2, r3 + ldrh r0, [r1] + cmp r0, #0 + beq _081941D4 + ldr r0, [sp, #0x1c] + add r0, r8 + lsls r0, r0, #3 + ldr r2, _081941C0 + adds r0, r0, r2 + movs r3, #0x10 + ldrsh r0, [r0, r3] + cmp r0, #0 + beq _081941C4 + ldrh r1, [r1] + b _081941C8 + .align 2, 0 +_081941BC: .4byte 0x00000CB2 +_081941C0: .4byte 0x03005B60 +_081941C4: + ldrh r0, [r1] + subs r1, r0, #1 +_081941C8: + ldr r2, [sp, #0x24] + lsrs r0, r2, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl sub_08194490 +_081941D4: + ldr r0, [sp, #0x1c] + add r0, r8 + lsls r0, r0, #3 + ldr r3, _081941F4 + adds r0, r0, r3 + movs r1, #0x10 + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _08194200 + ldr r2, _081941F8 + ldr r0, [r2] + ldr r3, _081941FC + adds r0, r0, r3 + ldrh r3, [r0] + adds r6, r2, #0 + b _0819420E + .align 2, 0 +_081941F4: .4byte 0x03005B60 +_081941F8: .4byte 0x03005AF0 +_081941FC: .4byte 0x00000CB2 +_08194200: + ldr r1, _0819427C + ldr r0, [r1] + ldr r2, _08194280 + adds r0, r0, r2 + ldrh r0, [r0] + subs r3, r0, #1 + adds r6, r1, #0 +_0819420E: + mov r0, sl + cmp r0, #1 + bne _0819422E + ldr r2, [r6] + adds r0, r2, r7 + ldr r1, _08194284 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #0x1b + lsrs r1, r1, #0x1e + ldr r0, _08194280 + adds r2, r2, r0 + ldrh r0, [r2] + subs r0, #1 + cmp r1, r0 + blt _08194246 +_0819422E: + mov r1, sl + cmp r1, #0 + bne _0819429A + ldr r0, [r6] + adds r0, r0, r7 + ldr r2, _08194284 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1e + cmp r0, r3 + bgt _0819429A +_08194246: + ldr r0, [r6] + adds r1, r0, r7 + ldr r3, _08194284 + adds r0, r1, r3 + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + bge _0819429A + ldr r2, _08194288 + adds r0, r1, r2 + ldrh r0, [r0] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + ldr r3, _0819428C + cmp r0, r3 + bne _08194290 + ldrb r1, [r4, #0xc] + mov r0, sb + ands r0, r1 + movs r1, #0x30 + orrs r0, r1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xd] + mov r0, sb + ands r0, r1 + movs r1, #0x40 + b _081942E0 + .align 2, 0 +_0819427C: .4byte 0x03005AF0 +_08194280: .4byte 0x00000CB2 +_08194284: .4byte 0x00000D25 +_08194288: .4byte 0x00000D24 +_0819428C: .4byte 0x000003FF +_08194290: + ldrb r1, [r4, #0xc] + mov r0, sb + ands r0, r1 + movs r1, #0xb0 + b _081942D4 +_0819429A: + ldr r0, [r6] + adds r0, r0, r7 + ldr r1, _081942C4 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + ldr r2, _081942C8 + cmp r0, r2 + bne _081942CC + ldrb r1, [r4, #0xc] + mov r0, sb + ands r0, r1 + movs r1, #0x30 + orrs r0, r1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xd] + mov r0, sb + ands r0, r1 + movs r1, #0x40 + b _081942E0 + .align 2, 0 +_081942C4: .4byte 0x00000D24 +_081942C8: .4byte 0x000003FF +_081942CC: + ldrb r1, [r4, #0xc] + mov r0, sb + ands r0, r1 + movs r1, #0xe0 +_081942D4: + orrs r0, r1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xd] + mov r0, sb + ands r0, r1 + movs r1, #0xd0 +_081942E0: + orrs r0, r1 + strb r0, [r4, #0xd] + ldr r0, _08194304 + ldr r3, [sp, #0x20] + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, #0 + bne _0819430C + ldrb r0, [r4, #5] + ldrb r2, [r4, #0xa] + ldr r1, _08194308 + bl GetStringWidth + ldrb r1, [r4, #0xa] + adds r1, r0, r1 + movs r0, #0x40 + subs r0, r0, r1 + b _0819430E + .align 2, 0 +_08194304: .4byte 0x085D5E6D +_08194308: .4byte 0x02022AE0 +_0819430C: + movs r0, #4 +_0819430E: + strb r0, [r4, #8] + ldr r0, _0819435C + str r0, [sp, #4] + ldr r0, _08194360 + ldr r1, [sp, #0x20] + adds r0, r1, r0 + ldrb r0, [r0] + strb r0, [r4, #4] + ldr r2, _08194364 + adds r0, r1, r2 + ldrb r0, [r0] + strb r0, [r4, #9] + add r0, sp, #4 + movs r1, #0 + movs r2, #0 + bl AddTextPrinter + ldr r3, [sp, #0x20] + adds r3, #2 + str r3, [sp, #0x20] + ldr r0, [sp, #0x24] + movs r1, #0x80 + lsls r1, r1, #0x11 + adds r0, r0, r1 + str r0, [sp, #0x24] + adds r7, #4 + subs r5, #1 + cmp r5, #0 + blt _0819434A + b _0819410C +_0819434A: + ldr r0, _08194368 + ldr r1, [sp, #0x1c] + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _08194466 + .align 2, 0 +_0819435C: .4byte 0x02022AE0 +_08194360: .4byte 0x085D5E6D +_08194364: .4byte 0x085D5E6E +_08194368: .4byte 0x03005B60 +_0819436C: + movs r0, #0 + bl PutWindowTilemap + movs r0, #1 + bl PutWindowTilemap + movs r0, #2 + bl PutWindowTilemap + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + movs r0, #1 + movs r1, #3 + bl CopyWindowToVram + movs r0, #2 + movs r1, #3 + bl CopyWindowToVram + ldr r0, _081943D8 + bl SetHBlankCallback + ldr r0, _081943DC + bl SetVBlankCallback + cmp r4, #2 + bne _08194400 + mov r2, sl + cmp r2, #0 + bne _081943E8 + ldr r0, _081943E0 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r2, _081943E4 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r2 + mov r3, sl + strh r3, [r1, #8] + strh r3, [r1, #0xa] + mov r4, r8 + lsls r0, r4, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrh r0, [r0, #0x10] + strh r0, [r1, #0x14] + b _0819441C + .align 2, 0 +_081943D8: .4byte 0x081947ED +_081943DC: .4byte 0x081948E5 +_081943E0: .4byte 0x0819353D +_081943E4: .4byte 0x03005B60 +_081943E8: + ldr r0, _081943F8 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _081943FC + b _08194410 + .align 2, 0 +_081943F8: .4byte 0x081944F5 +_081943FC: .4byte 0x03005B60 +_08194400: + ldr r1, _08194478 + mov r2, r8 + lsls r0, r2, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r3, #0xe + ldrsh r5, [r0, r3] +_08194410: + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #8] +_0819441C: + bl ScanlineEffect_Clear + ldr r0, _0819447C + ldr r2, _08194480 + movs r4, #0xf0 + lsls r4, r4, #3 + adds r1, r0, r4 + movs r5, #0x5a +_0819442C: + strh r2, [r0] + strh r2, [r1] + adds r1, #2 + adds r0, #2 + subs r5, #1 + cmp r5, #0 + bge _0819442C + movs r5, #0x5b + ldr r3, _08194484 + ldr r0, _0819447C + ldr r2, _08194488 + ldr r4, _0819448C + adds r1, r0, r4 + adds r0, #0xb6 +_08194448: + strh r2, [r0] + strh r2, [r1] + adds r1, #2 + adds r0, #2 + adds r5, #1 + cmp r5, #0x9f + ble _08194448 + ldr r0, [r3] + ldr r1, [r3, #4] + ldr r2, [r3, #8] + bl ScanlineEffect_SetParams + mov r0, r8 + bl DestroyTask +_08194466: + add sp, #0x28 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08194478: .4byte 0x03005B60 +_0819447C: .4byte 0x020388C8 +_08194480: .4byte 0x00001F0A +_08194484: .4byte 0x085D59F0 +_08194488: .4byte 0x00001F09 +_0819448C: .4byte 0x00000836 + thumb_func_end Task_ShowTourneyTree + + thumb_func_start sub_08194490 +sub_08194490: @ 0x08194490 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r4, _081944EC + lsls r2, r1, #2 + lsls r3, r0, #4 + adds r2, r2, r3 + adds r2, r2, r4 + ldr r3, [r2] + ldr r2, _081944F0 + lsls r0, r0, #2 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + cmp r0, #0 + beq _081944DC + movs r7, #1 + adds r4, r3, #0 + adds r5, r4, #2 + adds r6, r0, #0 +_081944BE: + ldrb r2, [r4] + ldrb r3, [r4, #1] + str r7, [sp] + str r7, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #1 + adds r1, r5, #0 + bl CopyToBgTilemapBufferRect_ChangePalette + adds r4, #4 + adds r5, #4 + subs r6, #1 + cmp r6, #0 + bne _081944BE +_081944DC: + movs r0, #1 + bl CopyBgTilemapBufferToVram + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081944EC: .4byte 0x085D678C +_081944F0: .4byte 0x085D688C + thumb_func_end sub_08194490 + + thumb_func_start sub_081944F4 +sub_081944F4: @ 0x081944F4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08194524 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #8 + ldrsh r0, [r0, r2] + adds r2, r1, #0 + cmp r0, #4 + bls _0819451A + b _0819473C +_0819451A: + lsls r0, r0, #2 + ldr r1, _08194528 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08194524: .4byte 0x03005B60 +_08194528: .4byte 0x0819452C +_0819452C: @ jump table + .4byte _08194540 @ case 0 + .4byte _08194564 @ case 1 + .4byte _081946D4 @ case 2 + .4byte _081946EE @ case 3 + .4byte _08194724 @ case 4 +_08194540: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r1, _08194560 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #1 + strh r1, [r0, #8] + b _0819473C + .align 2, 0 +_08194560: .4byte 0x03005B60 +_08194564: + ldr r0, _0819460C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08194572 + b _0819473C +_08194572: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r2, #0 + movs r3, #2 + movs r1, #2 + strh r1, [r0, #8] + movs r1, #0x40 + strh r1, [r0, #0xe] + add r0, sp, #4 + strb r3, [r0, #5] + strb r2, [r0, #6] + strb r2, [r0, #7] + strb r3, [r0, #0xa] + strb r2, [r0, #0xb] + adds r3, r0, #0 + ldrb r2, [r3, #0xc] + subs r1, #0x50 + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3, #0xc] + adds r2, r3, #0 + movs r0, #0xb0 + strb r0, [r2, #0xc] + ldrb r0, [r2, #0xd] + ands r1, r0 + strb r1, [r2, #0xd] + adds r1, r2, #0 + movs r0, #0xd0 + strb r0, [r1, #0xd] + movs r7, #0 + adds r6, r1, #0 + ldr r0, _08194610 + mov r8, r0 +_081945B8: + ldr r1, _08194614 + ldr r0, [r1] + lsls r4, r7, #2 + adds r0, r0, r4 + ldr r2, _08194618 + adds r0, r0, r2 + ldrh r1, [r0] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x16 + ldr r0, _0819461C + bl CopyDomeTrainerName + ldr r0, _08194614 + ldr r1, [r0] + adds r0, r1, r4 + ldr r2, _08194620 + adds r0, r0, r2 + ldrb r3, [r0] + lsls r2, r3, #0x1b + lsrs r2, r2, #0x1e + ldr r0, _08194624 + adds r1, r1, r0 + ldrh r0, [r1] + subs r0, #1 + mov sb, r4 + adds r1, r7, #1 + mov sl, r1 + cmp r2, r0 + bne _0819468A + lsls r0, r3, #0x1d + cmp r0, #0 + bge _0819468A + lsls r0, r7, #1 + ldr r2, _08194628 + adds r1, r0, r2 + ldrb r1, [r1] + adds r5, r0, #0 + cmp r1, #0 + bne _08194660 + movs r4, #0 + b _08194636 + .align 2, 0 +_0819460C: .4byte 0x02037C74 +_08194610: .4byte 0x02021C40 +_08194614: .4byte 0x03005AF0 +_08194618: .4byte 0x00000D24 +_0819461C: .4byte 0x02022AE0 +_08194620: .4byte 0x00000D25 +_08194624: .4byte 0x00000CB2 +_08194628: .4byte 0x085D5E6D +_0819462C: + mov r0, r8 + adds r1, r4, r0 + movs r0, #0 + strb r0, [r1] + adds r4, #1 +_08194636: + ldr r0, _0819465C + bl StringLength + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #5 + subs r1, r1, r0 + cmp r4, r1 + blt _0819462C + mov r1, r8 + adds r0, r4, r1 + movs r1, #0xff + strb r1, [r0] + mov r0, r8 + ldr r1, _0819465C + bl StringAppend + movs r0, #2 + b _0819466A + .align 2, 0 +_0819465C: .4byte 0x02022AE0 +_08194660: + ldr r0, _081946BC + ldr r1, _081946C0 + bl StringCopy + movs r0, #4 +_0819466A: + strb r0, [r6, #8] + mov r2, r8 + str r2, [sp, #4] + ldr r1, _081946C4 + adds r0, r5, r1 + ldrb r0, [r0] + strb r0, [r6, #4] + ldr r2, _081946C8 + adds r0, r5, r2 + ldrb r0, [r0] + strb r0, [r6, #9] + add r0, sp, #4 + movs r1, #0 + movs r2, #0 + bl AddTextPrinter +_0819468A: + ldr r0, _081946CC + ldr r1, [r0] + mov r2, sb + adds r0, r1, r2 + ldr r2, _081946D0 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + blt _081946B2 + subs r2, #0x73 + adds r0, r1, r2 + ldrh r0, [r0] + subs r4, r0, #1 + lsls r0, r7, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r4, #0x18 + lsrs r1, r1, #0x18 + bl sub_08194490 +_081946B2: + mov r7, sl + cmp r7, #0xf + bgt _081946BA + b _081945B8 +_081946BA: + b _0819473C + .align 2, 0 +_081946BC: .4byte 0x02021C40 +_081946C0: .4byte 0x02022AE0 +_081946C4: .4byte 0x085D5E6D +_081946C8: .4byte 0x085D5E6E +_081946CC: .4byte 0x03005AF0 +_081946D0: .4byte 0x00000D25 +_081946D4: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r1, r0, r2 + ldrh r0, [r1, #0xe] + subs r0, #1 + strh r0, [r1, #0xe] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0819473C + movs r0, #3 + strh r0, [r1, #8] + b _0819473C +_081946EE: + ldr r0, _0819471C + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _0819473C + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _08194720 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #4 + strh r1, [r0, #8] + b _0819473C + .align 2, 0 +_0819471C: .4byte 0x03002360 +_08194720: .4byte 0x03005B60 +_08194724: + ldr r0, _0819474C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0819473C + ldr r0, _08194750 + bl SetMainCallback2 + adds r0, r4, #0 + bl DestroyTask +_0819473C: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0819474C: .4byte 0x02037C74 +_08194750: .4byte 0x08085B35 + thumb_func_end sub_081944F4 + + thumb_func_start CB2_BattleDome +CB2_BattleDome: @ 0x08194754 + push {lr} + bl AnimateSprites + bl BuildOamBuffer + bl RunTextPrinters + bl UpdatePaletteFade + bl RunTasks + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CB2_BattleDome + + thumb_func_start VblankCb0_BattleDome +VblankCb0_BattleDome: @ 0x08194770 + push {lr} + movs r0, #3 + movs r1, #0x80 + movs r2, #1 + bl ChangeBgX + movs r0, #3 + movs r1, #0x80 + movs r2, #2 + bl ChangeBgY + ldr r0, _081947D4 + ldrh r1, [r0] + movs r0, #0x10 + bl SetGpuReg + ldr r0, _081947D8 + ldrh r1, [r0] + movs r0, #0x12 + bl SetGpuReg + ldr r0, _081947DC + ldrh r1, [r0] + movs r0, #0x14 + bl SetGpuReg + ldr r0, _081947E0 + ldrh r1, [r0] + movs r0, #0x16 + bl SetGpuReg + ldr r0, _081947E4 + ldrh r1, [r0] + movs r0, #0x18 + bl SetGpuReg + ldr r0, _081947E8 + ldrh r1, [r0] + movs r0, #0x1a + bl SetGpuReg + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 +_081947D4: .4byte 0x02022AC8 +_081947D8: .4byte 0x02022ACA +_081947DC: .4byte 0x02022ACC +_081947E0: .4byte 0x02022ACE +_081947E4: .4byte 0x02022AD0 +_081947E8: .4byte 0x02022AD2 + thumb_func_end VblankCb0_BattleDome + + thumb_func_start HblankCb_BattleDome +HblankCb_BattleDome: @ 0x081947EC + push {lr} + ldr r0, _0819480C + ldrh r0, [r0] + adds r1, r0, #0 + cmp r0, #0x29 + bls _081948C8 + cmp r0, #0x31 + bhi _0819481C + ldr r1, _08194810 + ldr r2, _08194814 + adds r0, r2, #0 + strh r0, [r1] + subs r1, #8 + ldr r0, _08194818 + b _081948D4 + .align 2, 0 +_0819480C: .4byte 0x04000006 +_08194810: .4byte 0x04000048 +_08194814: .4byte 0x00003B3B +_08194818: .4byte 0x989B5558 +_0819481C: + cmp r0, #0x39 + bls _081948C8 + cmp r0, #0x4a + bhi _08194840 + ldr r1, _08194834 + ldr r2, _08194838 + adds r0, r2, #0 + strh r0, [r1] + subs r1, #8 + ldr r0, _0819483C + b _081948D4 + .align 2, 0 +_08194834: .4byte 0x04000048 +_08194838: .4byte 0x00003B3B +_0819483C: .4byte 0x90985860 +_08194840: + cmp r0, #0x51 + bhi _08194860 + ldr r1, _08194854 + ldr r2, _08194858 + adds r0, r2, #0 + strh r0, [r1] + subs r1, #8 + ldr r0, _0819485C + b _081948D4 + .align 2, 0 +_08194854: .4byte 0x04000048 +_08194858: .4byte 0x00003B3B +_0819485C: .4byte 0x989B5558 +_08194860: + cmp r0, #0x5e + bls _081948C8 + cmp r0, #0x66 + bhi _08194884 + ldr r1, _08194878 + ldr r2, _0819487C + adds r0, r2, #0 + strh r0, [r1] + subs r1, #8 + ldr r0, _08194880 + b _081948D4 + .align 2, 0 +_08194878: .4byte 0x04000048 +_0819487C: .4byte 0x00003737 +_08194880: .4byte 0x989B5558 +_08194884: + cmp r0, #0x76 + bhi _081948A4 + ldr r1, _08194898 + ldr r2, _0819489C + adds r0, r2, #0 + strh r0, [r1] + subs r1, #8 + ldr r0, _081948A0 + b _081948D4 + .align 2, 0 +_08194898: .4byte 0x04000048 +_0819489C: .4byte 0x00003737 +_081948A0: .4byte 0x90985860 +_081948A4: + cmp r0, #0x7e + bls _081948C8 + cmp r1, #0x86 + bhi _081948C8 + ldr r1, _081948BC + ldr r2, _081948C0 + adds r0, r2, #0 + strh r0, [r1] + subs r1, #8 + ldr r0, _081948C4 + b _081948D4 + .align 2, 0 +_081948BC: .4byte 0x04000048 +_081948C0: .4byte 0x00003737 +_081948C4: .4byte 0x989B5558 +_081948C8: + ldr r1, _081948DC + ldr r2, _081948E0 + adds r0, r2, #0 + strh r0, [r1] + subs r1, #8 + movs r0, #0 +_081948D4: + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_081948DC: .4byte 0x04000048 +_081948E0: .4byte 0x00003F3F + thumb_func_end HblankCb_BattleDome + + thumb_func_start VblankCb1_BattleDome +VblankCb1_BattleDome: @ 0x081948E4 + push {lr} + ldr r0, _08194938 + ldrh r1, [r0] + movs r0, #0x10 + bl SetGpuReg + ldr r0, _0819493C + ldrh r1, [r0] + movs r0, #0x12 + bl SetGpuReg + ldr r0, _08194940 + ldrh r1, [r0] + movs r0, #0x14 + bl SetGpuReg + ldr r0, _08194944 + ldrh r1, [r0] + movs r0, #0x16 + bl SetGpuReg + movs r0, #2 + movs r1, #0x80 + movs r2, #2 + bl ChangeBgY + movs r0, #3 + movs r1, #0x80 + movs r2, #1 + bl ChangeBgY + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + bl ScanlineEffect_InitHBlankDmaTransfer + pop {r0} + bx r0 + .align 2, 0 +_08194938: .4byte 0x02022AC8 +_0819493C: .4byte 0x02022ACA +_08194940: .4byte 0x02022ACC +_08194944: .4byte 0x02022ACE + thumb_func_end VblankCb1_BattleDome + + thumb_func_start InitDomeFacilityTrainersAndMons +InitDomeFacilityTrainersAndMons: @ 0x08194948 + ldr r1, _08194958 + ldr r0, _0819495C + str r0, [r1] + ldr r1, _08194960 + ldr r0, _08194964 + str r0, [r1] + bx lr + .align 2, 0 +_08194958: .4byte 0x0203B958 +_0819495C: .4byte 0x085B8700 +_08194960: .4byte 0x0203B954 +_08194964: .4byte 0x085B4A10 + thumb_func_end InitDomeFacilityTrainersAndMons + + thumb_func_start RestoreDomePlayerParty +RestoreDomePlayerParty: @ 0x08194968 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + movs r3, #0 +_08194976: + ldr r0, _081949B0 + ldr r1, [r0] + ldr r0, _081949B4 + adds r0, r3, r0 + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #1 + ldr r2, _081949B8 + adds r1, r1, r2 + adds r1, r1, r0 + ldrh r0, [r1] + subs r0, #1 + mov sl, r0 + movs r6, #0 + adds r0, r3, #1 + str r0, [sp] + movs r1, #0x64 + mov r0, sl + muls r0, r1, r0 + movs r2, #0x8e + lsls r2, r2, #2 + adds r2, r2, r0 + mov sb, r2 + adds r7, r3, #0 + muls r7, r1, r7 +_081949A8: + movs r5, #0 + adds r0, r6, #1 + mov r8, r0 + b _081949BE + .align 2, 0 +_081949B0: .4byte 0x03005AF0 +_081949B4: .4byte 0x0203CBC4 +_081949B8: .4byte 0x00000CAA +_081949BC: + adds r5, #1 +_081949BE: + cmp r5, #3 + bgt _081949EA + ldr r1, _08194A3C + ldr r0, [r1] + add r0, sb + adds r1, r5, #0 + adds r1, #0xd + movs r2, #0 + str r3, [sp, #4] + bl GetMonData + adds r4, r0, #0 + adds r1, r6, #0 + adds r1, #0xd + ldr r2, _08194A40 + adds r0, r7, r2 + movs r2, #0 + bl GetMonData + ldr r3, [sp, #4] + cmp r4, r0 + bne _081949BC +_081949EA: + cmp r5, #4 + bne _08194A00 + lsls r2, r6, #0x18 + lsrs r2, r2, #0x18 + ldr r1, _08194A40 + adds r0, r7, r1 + movs r1, #0xa6 + str r3, [sp, #4] + bl SetMonMoveSlot + ldr r3, [sp, #4] +_08194A00: + mov r6, r8 + cmp r6, #3 + ble _081949A8 + ldr r2, _08194A3C + ldr r0, [r2] + movs r2, #0x64 + mov r1, sl + muls r1, r2, r1 + adds r0, r0, r1 + movs r1, #0x8e + lsls r1, r1, #2 + adds r0, r0, r1 + adds r1, r3, #0 + muls r1, r2, r1 + ldr r2, _08194A40 + adds r1, r1, r2 + movs r2, #0x64 + bl memcpy + ldr r3, [sp] + cmp r3, #1 + ble _08194976 + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08194A3C: .4byte 0x03005AEC +_08194A40: .4byte 0x02024190 + thumb_func_end RestoreDomePlayerParty + + thumb_func_start RestoreDomePlayerPartyHeldItems +RestoreDomePlayerPartyHeldItems: @ 0x08194A44 + push {r4, r5, r6, r7, lr} + sub sp, #4 + movs r4, #0 + ldr r7, _08194AA0 + movs r6, #0x64 + movs r5, #0 +_08194A50: + ldr r0, _08194AA4 + ldr r1, [r0] + ldr r0, _08194AA8 + adds r0, r4, r0 + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #1 + ldr r2, _08194AAC + adds r1, r1, r2 + adds r1, r1, r0 + ldrh r0, [r1] + subs r0, #1 + adds r1, r0, #0 + muls r1, r6, r1 + movs r0, #0x8e + lsls r0, r0, #2 + adds r1, r1, r0 + ldr r0, [r7] + adds r0, r0, r1 + movs r1, #0xc + movs r2, #0 + bl GetMonData + mov r1, sp + strh r0, [r1] + ldr r0, _08194AB0 + adds r0, r5, r0 + movs r1, #0xc + mov r2, sp + bl SetMonData + adds r5, #0x64 + adds r4, #1 + cmp r4, #1 + ble _08194A50 + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08194AA0: .4byte 0x03005AEC +_08194AA4: .4byte 0x03005AF0 +_08194AA8: .4byte 0x0203CBC4 +_08194AAC: .4byte 0x00000CAA +_08194AB0: .4byte 0x02024190 + thumb_func_end RestoreDomePlayerPartyHeldItems + + thumb_func_start GetDomeBrainTrainerPicId +GetDomeBrainTrainerPicId: @ 0x08194AB4 + push {lr} + bl ReducePlayerPartyToSelectedMons + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end GetDomeBrainTrainerPicId + + thumb_func_start GetPlayerSeededBeforeOpponent +GetPlayerSeededBeforeOpponent: @ 0x08194AC0 + push {r4, lr} + ldr r0, _08194ADC + ldrh r0, [r0] + bl TrainerIdToDomeTournamentId + adds r4, r0, #0 + ldr r0, _08194AE0 + bl TrainerIdToDomeTournamentId + cmp r4, r0 + ble _08194AE8 + ldr r1, _08194AE4 + movs r0, #1 + b _08194AEC + .align 2, 0 +_08194ADC: .4byte 0x0203886A +_08194AE0: .4byte 0x000003FF +_08194AE4: .4byte 0x02037290 +_08194AE8: + ldr r1, _08194AF4 + movs r0, #2 +_08194AEC: + strh r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08194AF4: .4byte 0x02037290 + thumb_func_end GetPlayerSeededBeforeOpponent + + thumb_func_start BufferLastDomeWinnerName +BufferLastDomeWinnerName: @ 0x08194AF8 + push {r4, lr} + bl InitDomeFacilityTrainersAndMons + movs r2, #0 + ldr r3, _08194B48 + ldr r0, [r3] + ldr r1, _08194B4C + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + bge _08194B2A + adds r4, r3, #0 + adds r3, r1, #0 +_08194B14: + adds r2, #1 + cmp r2, #0xf + bgt _08194B2A + ldr r0, [r4] + lsls r1, r2, #2 + adds r0, r0, r1 + adds r0, r0, r3 + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + blt _08194B14 +_08194B2A: + ldr r0, _08194B50 + ldr r1, _08194B48 + ldr r1, [r1] + lsls r2, r2, #2 + adds r1, r1, r2 + ldr r2, _08194B54 + adds r1, r1, r2 + ldrh r1, [r1] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x16 + bl CopyDomeTrainerName + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08194B48: .4byte 0x03005AF0 +_08194B4C: .4byte 0x00000D25 +_08194B50: .4byte 0x02021C40 +_08194B54: .4byte 0x00000D24 + thumb_func_end BufferLastDomeWinnerName + + thumb_func_start sub_08194B58 +sub_08194B58: @ 0x08194B58 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x40 + movs r0, #0 + str r0, [sp, #8] + str r0, [sp, #0xc] + str r0, [sp, #0x10] + ldr r4, _08194BE8 + ldr r2, [r4] + ldr r5, _08194BEC + adds r0, r2, r5 + ldrb r1, [r0] + ldr r6, _08194BF0 + adds r0, r2, r6 + ldrb r0, [r0] + cmn r1, r0 + beq _08194B8C + ldr r1, _08194BF4 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #1 + beq _08194B8C + b _08194F3E +_08194B8C: + movs r0, #0x20 + bl AllocZeroed + str r0, [sp, #0x18] + movs r0, #0x18 + bl AllocZeroed + str r0, [sp, #0x1c] + ldr r1, [r4] + ldr r2, _08194BF8 + adds r1, r1, r2 + ldrb r2, [r1] + lsls r0, r2, #0x1e + lsrs r0, r0, #0x1e + str r0, [sp, #0x14] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r0, [r4] + movs r1, #1 + adds r0, r0, r5 + strb r1, [r0] + ldr r0, [r4] + adds r0, r0, r6 + strb r1, [r0] + movs r3, #0 + mov sl, r3 + movs r4, #0 + str r4, [sp, #0x38] + movs r5, #0 + str r5, [sp, #0x3c] +_08194BCC: + mov r0, sl + cmp r0, #4 + bgt _08194BFC + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + b _08194C30 + .align 2, 0 +_08194BE8: .4byte 0x03005AF0 +_08194BEC: .4byte 0x00000D0A +_08194BF0: .4byte 0x00000D0B +_08194BF4: .4byte 0x00000CA8 +_08194BF8: .4byte 0x00000CA9 +_08194BFC: + mov r1, sl + cmp r1, #0xe + bgt _08194C1A + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x14 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r4, r0, #0 + adds r4, #0xa + b _08194C30 +_08194C1A: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r4, r0, #0 + adds r4, #0x1e +_08194C30: + movs r6, #0 + cmp r6, sl + bge _08194C64 + ldr r2, _08194EA0 + ldr r0, [r2] + ldr r3, _08194EA4 + adds r0, r0, r3 + ldrh r0, [r0] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + cmp r0, r4 + beq _08194C64 + adds r3, r2, #0 + ldr r2, _08194EA4 +_08194C4C: + adds r6, #1 + cmp r6, sl + bge _08194C64 + ldr r0, [r3] + lsls r1, r6, #2 + adds r0, r0, r1 + adds r0, r0, r2 + ldrh r0, [r0] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + cmp r0, r4 + bne _08194C4C +_08194C64: + cmp r6, sl + bne _08194BCC + ldr r5, _08194EA0 + ldr r3, [r5] + ldr r0, [sp, #0x38] + adds r3, r3, r0 + ldr r1, _08194EA4 + adds r3, r3, r1 + ldr r2, _08194EA8 + adds r0, r2, #0 + adds r2, r4, #0 + ands r2, r0 + ldrh r0, [r3] + ldr r5, _08194EAC + adds r1, r5, #0 + ands r0, r1 + orrs r0, r2 + strh r0, [r3] + movs r6, #0 + lsls r4, r4, #0x10 + str r4, [sp, #0x30] + ldr r0, [sp, #0x3c] + str r0, [sp, #0x20] +_08194C92: + adds r1, r6, #1 + str r1, [sp, #0x24] + lsls r2, r6, #2 + str r2, [sp, #0x2c] + lsls r3, r6, #1 + str r3, [sp, #0x28] +_08194C9E: + ldr r4, [sp, #0x30] + lsrs r0, r4, #0x10 + bl RandomizeFacilityTrainerMonSet + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + movs r7, #0 + cmp r7, r6 + bge _08194CF4 + ldr r0, _08194EA0 + ldr r0, [r0] + ldr r1, _08194EB0 + mov sb, r1 + ldr r2, [sp, #8] + mov r8, r2 + ldr r3, [sp, #0xc] + mov ip, r3 + ldr r4, _08194EB4 + adds r0, r0, r4 + ldr r1, [sp, #0x20] + adds r4, r1, r0 +_08194CC8: + ldrh r3, [r4] + cmp r3, r5 + beq _08194CF4 + mov r2, sb + ldr r1, [r2] + lsls r0, r5, #4 + adds r2, r0, r1 + ldrh r0, [r2] + cmp r8, r0 + beq _08194CF4 + cmp ip, r0 + beq _08194CF4 + lsls r0, r3, #4 + adds r0, r0, r1 + ldrb r0, [r0, #0xa] + ldrb r2, [r2, #0xa] + cmp r0, r2 + beq _08194CF4 + adds r4, #2 + adds r7, #1 + cmp r7, r6 + blt _08194CC8 +_08194CF4: + cmp r7, r6 + bne _08194C9E + ldr r3, _08194EA0 + ldr r0, [r3] + ldr r4, [sp, #0x28] + ldr r2, [sp, #0x3c] + adds r1, r4, r2 + ldr r3, _08194EB4 + adds r0, r0, r3 + adds r0, r0, r1 + strh r5, [r0] + ldr r2, [sp, #0x2c] + add r2, sp + adds r2, #8 + ldr r3, _08194EB0 + ldr r1, [r3] + lsls r0, r5, #4 + adds r0, r0, r1 + ldrh r0, [r0] + str r0, [r2] + ldr r6, [sp, #0x24] + cmp r6, #2 + ble _08194C92 + ldr r4, _08194EA0 + ldr r2, [r4] + ldr r5, [sp, #0x38] + adds r2, r2, r5 + ldr r0, _08194EB8 + adds r2, r2, r0 + ldrb r0, [r2] + movs r4, #5 + rsbs r4, r4, #0 + adds r1, r4, #0 + ands r0, r1 + strb r0, [r2] + ldr r5, _08194EA0 + ldr r2, [r5] + ldr r0, [sp, #0x38] + adds r2, r2, r0 + ldr r1, _08194EB8 + adds r2, r2, r1 + ldrb r0, [r2] + subs r4, #0x14 + adds r1, r4, #0 + ands r0, r1 + strb r0, [r2] + ldr r1, [r5] + ldr r5, [sp, #0x38] + adds r1, r1, r5 + ldr r0, _08194EB8 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #0x1f + ands r0, r2 + strb r0, [r1] + adds r5, #4 + str r5, [sp, #0x38] + ldr r1, [sp, #0x3c] + adds r1, #6 + str r1, [sp, #0x3c] + movs r2, #1 + add sl, r2 + mov r4, sl + cmp r4, #0xf + bgt _08194D78 + b _08194BCC +_08194D78: + movs r5, #0 + mov sl, r5 + ldr r5, [sp, #0x18] + movs r0, #0 + str r0, [sp, #0x34] +_08194D82: + movs r7, #0 + strh r7, [r5] + ldr r1, _08194EA0 + ldr r0, [r1] + mov r2, sl + lsls r1, r2, #2 + adds r0, r0, r1 + ldr r3, _08194EA4 + adds r0, r0, r3 + ldrh r0, [r0] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + bl GetDomeTrainerMonIvs + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r6, #0 + ldr r4, [sp, #0x34] + mov sb, r4 +_08194DAA: + ldr r1, _08194EA0 + ldr r0, [r1] + mov r4, sb + add r4, sl + adds r4, r4, r6 + lsls r4, r4, #1 + ldr r2, _08194EB4 + adds r0, r0, r2 + adds r0, r0, r4 + ldrh r1, [r0] + ldr r3, _08194EB0 + ldr r0, [r3] + lsls r1, r1, #4 + adds r1, r1, r0 + ldrh r0, [r1] + ldrb r3, [r1, #0xb] + ldrb r1, [r1, #0xc] + str r1, [sp] + ldr r1, [sp, #0x1c] + str r1, [sp, #4] + movs r1, #0x32 + mov r2, r8 + bl CalcDomeMonStats + ldr r2, [sp, #0x1c] + ldr r1, [r2, #4] + ldrh r0, [r5] + adds r0, r0, r1 + ldr r1, [r2, #8] + adds r0, r0, r1 + ldr r1, [r2, #0x10] + adds r0, r0, r1 + ldr r1, [r2, #0x14] + adds r0, r0, r1 + ldr r1, [r2, #0xc] + adds r0, r0, r1 + ldr r1, [r2] + adds r0, r0, r1 + strh r0, [r5] + ldr r3, _08194EA0 + ldr r0, [r3] + ldr r1, _08194EB4 + adds r0, r0, r1 + adds r0, r0, r4 + ldrh r0, [r0] + ldr r2, _08194EB0 + ldr r1, [r2] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + ldr r3, _08194EBC + adds r1, r1, r3 + ldrb r0, [r1, #6] + lsls r0, r0, #2 + ldr r4, _08194EC0 + adds r0, r0, r4 + ldr r0, [r0] + orrs r7, r0 + ldrb r0, [r1, #7] + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r0, [r0] + orrs r7, r0 + adds r6, #1 + cmp r6, #2 + ble _08194DAA + movs r4, #0 + movs r1, #1 + movs r6, #0x1f +_08194E3A: + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0 + beq _08194E44 + adds r4, #1 +_08194E44: + asrs r7, r7, #1 + subs r6, #1 + cmp r6, #0 + bge _08194E3A + movs r1, #0x32 + adds r0, r4, #0 + muls r0, r1, r0 + movs r1, #0x14 + bl __divsi3 + ldrh r1, [r5] + adds r1, r1, r0 + strh r1, [r5] + adds r5, #2 + ldr r2, [sp, #0x34] + adds r2, #2 + str r2, [sp, #0x34] + movs r3, #1 + add sl, r3 + mov r4, sl + cmp r4, #0xf + ble _08194D82 + movs r5, #0 + mov sl, r5 + ldr r7, [sp, #0x18] +_08194E76: + mov r6, sl + adds r6, #1 + cmp r6, #0xf + bgt _08194EF8 + mov r8, r7 + ldr r5, _08194EA4 + lsls r0, r6, #1 + ldr r1, [sp, #0x18] + adds r4, r0, r1 +_08194E88: + mov r2, r8 + ldrh r1, [r2] + ldrh r0, [r4] + cmp r1, r0 + bhs _08194EC4 + mov r0, sl + adds r1, r6, #0 + ldr r2, [sp, #0x18] + bl SwapDomeTrainers + b _08194EF0 + .align 2, 0 +_08194EA0: .4byte 0x03005AF0 +_08194EA4: .4byte 0x00000D24 +_08194EA8: .4byte 0x000003FF +_08194EAC: .4byte 0xFFFFFC00 +_08194EB0: .4byte 0x0203B958 +_08194EB4: .4byte 0x00000D64 +_08194EB8: .4byte 0x00000D25 +_08194EBC: .4byte 0x082F0D54 +_08194EC0: .4byte 0x082FACB4 +_08194EC4: + cmp r1, r0 + bne _08194EF0 + ldr r0, _08194F50 + ldr r1, [r0] + mov r3, sl + lsls r0, r3, #2 + adds r0, r1, r0 + adds r0, r0, r5 + ldrh r2, [r0] + lsls r2, r2, #0x16 + lsls r0, r6, #2 + adds r1, r1, r0 + adds r1, r1, r5 + ldrh r0, [r1] + lsls r0, r0, #0x16 + cmp r2, r0 + bls _08194EF0 + mov r0, sl + adds r1, r6, #0 + ldr r2, [sp, #0x18] + bl SwapDomeTrainers +_08194EF0: + adds r4, #2 + adds r6, #1 + cmp r6, #0xf + ble _08194E88 +_08194EF8: + adds r7, #2 + movs r4, #1 + add sl, r4 + mov r5, sl + cmp r5, #0xe + ble _08194E76 + ldr r0, [sp, #0x18] + bl Free + ldr r0, [sp, #0x1c] + bl Free + movs r0, #0 + mov sl, r0 +_08194F14: + mov r1, sl + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + bl DecideRoundWinners + movs r2, #1 + add sl, r2 + mov r3, sl + cmp r3, #3 + ble _08194F14 + ldr r0, _08194F50 + ldr r1, [r0] + ldr r4, _08194F54 + adds r1, r1, r4 + ldrb r2, [r1] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + ldr r5, [sp, #0x14] + orrs r0, r5 + strb r0, [r1] +_08194F3E: + add sp, #0x40 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08194F50: .4byte 0x03005AF0 +_08194F54: .4byte 0x00000CA9 + thumb_func_end sub_08194B58 + + thumb_func_start TrainerIdToDomeTournamentId +TrainerIdToDomeTournamentId: @ 0x08194F58 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + movs r2, #0 + ldr r4, _08194F98 + ldr r0, [r4] + ldr r1, _08194F9C + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + cmp r0, r3 + beq _08194F8E + adds r5, r4, #0 + adds r4, r1, #0 +_08194F76: + adds r2, #1 + cmp r2, #0xf + bgt _08194F8E + ldr r0, [r5] + lsls r1, r2, #2 + adds r0, r0, r1 + adds r0, r0, r4 + ldrh r0, [r0] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + cmp r0, r3 + bne _08194F76 +_08194F8E: + adds r0, r2, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08194F98: .4byte 0x03005AF0 +_08194F9C: .4byte 0x00000D24 + thumb_func_end TrainerIdToDomeTournamentId + + thumb_func_start TrainerIdToTournamentId +TrainerIdToTournamentId: @ 0x08194FA0 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + movs r2, #0 + ldr r4, _08194FE0 + ldr r0, [r4] + ldr r1, _08194FE4 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + cmp r0, r3 + beq _08194FD6 + adds r5, r4, #0 + adds r4, r1, #0 +_08194FBE: + adds r2, #1 + cmp r2, #0xf + bgt _08194FD6 + ldr r0, [r5] + lsls r1, r2, #2 + adds r0, r0, r1 + adds r0, r0, r4 + ldrh r0, [r0] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + cmp r0, r3 + bne _08194FBE +_08194FD6: + adds r0, r2, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08194FE0: .4byte 0x03005AF0 +_08194FE4: .4byte 0x00000D24 + thumb_func_end TrainerIdToTournamentId + + thumb_func_start sub_08194FE8 +sub_08194FE8: @ 0x08194FE8 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _08195024 + ldr r0, _08195028 + adds r0, r4, r0 + ldrb r0, [r0] + lsrs r0, r0, #1 + lsls r0, r0, #2 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + subs r0, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, sp + bl sub_08192B3C + mov r0, sp + ldrb r0, [r0] + cmp r4, r0 + beq _0819502C + mov r0, sp + ldrb r0, [r0] + b _08195030 + .align 2, 0 +_08195024: .4byte 0x085D5C1C +_08195028: .4byte 0x085D5C3C +_0819502C: + mov r0, sp + ldrb r0, [r0, #1] +_08195030: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_08194FE8 + + thumb_func_start DecideRoundWinners +DecideRoundWinners: @ 0x08195038 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x40 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + movs r0, #0 + str r0, [sp, #0xc] + movs r1, #0 + str r1, [sp, #0x10] + movs r5, #0 + movs r1, #3 + ldr r0, [sp] + ands r0, r1 + lsls r0, r0, #3 + str r0, [sp, #0x14] +_0819505E: + ldr r2, _081950F0 + ldr r0, [r2] + lsls r4, r5, #2 + adds r1, r0, r4 + ldr r3, _081950F4 + adds r0, r1, r3 + ldrb r0, [r0] + lsls r0, r0, #0x1d + adds r2, r5, #1 + str r2, [sp, #0x24] + cmp r0, #0 + bge _08195078 + b _08195476 +_08195078: + subs r3, #1 + adds r0, r1, r3 + ldrh r0, [r0] + lsls r1, r0, #0x16 + ldr r0, _081950F8 + cmp r1, r0 + bne _08195088 + b _08195476 +_08195088: + str r5, [sp, #4] + lsrs r1, r1, #0x16 + ldr r0, [sp] + bl TournamentIdOfOpponent + str r0, [sp, #8] + ldr r0, _081950F0 + ldr r3, [r0] + adds r0, r3, r4 + ldr r1, _081950FC + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #0x16 + ldr r1, _08195100 + cmp r0, r1 + bne _08195104 + ldr r2, [sp, #8] + cmp r2, #0xff + beq _08195104 + lsls r2, r2, #2 + adds r1, r3, r2 + ldr r3, _081950F4 + adds r1, r1, r3 + ldrb r0, [r1] + movs r3, #4 + orrs r0, r3 + strb r0, [r1] + ldr r0, _081950F0 + ldr r1, [r0] + adds r1, r1, r2 + ldr r2, _081950F4 + adds r1, r1, r2 + ldrb r0, [r1] + subs r3, #0x1d + ands r0, r3 + ldr r2, [sp, #0x14] + orrs r0, r2 + strb r0, [r1] + adds r0, r5, #0 + ldr r1, [sp, #8] + ldr r2, [sp] + bl GetWinningMove + ldr r3, _081950F0 + ldr r1, [r3] + ldr r5, [sp, #8] + lsls r2, r5, #1 + movs r3, #0xec + lsls r3, r3, #4 + adds r1, r1, r3 + adds r1, r1, r2 + b _08195474 + .align 2, 0 +_081950F0: .4byte 0x03005AF0 +_081950F4: .4byte 0x00000D25 +_081950F8: .4byte 0xFFC00000 +_081950FC: .4byte 0x00000D24 +_08195100: .4byte 0xFF800000 +_08195104: + ldr r4, _0819516C + ldr r3, [r4] + ldr r0, [sp, #8] + lsls r2, r0, #2 + adds r0, r3, r2 + ldr r1, _08195170 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #0x16 + ldr r1, _08195174 + str r2, [sp, #0x30] + cmp r0, r1 + bne _0819517C + ldr r2, [sp, #4] + cmp r2, #0xff + beq _0819517C + lsls r2, r2, #2 + adds r1, r3, r2 + ldr r3, _08195178 + adds r1, r1, r3 + ldrb r0, [r1] + movs r3, #4 + orrs r0, r3 + strb r0, [r1] + ldr r1, [r4] + adds r1, r1, r2 + ldr r0, _08195178 + adds r1, r1, r0 + ldrb r0, [r1] + movs r2, #0x19 + rsbs r2, r2, #0 + ands r0, r2 + ldr r3, [sp, #0x14] + orrs r0, r3 + strb r0, [r1] + ldr r0, [sp, #8] + ldr r1, [sp, #4] + ldr r2, [sp] + bl GetWinningMove + ldr r1, [r4] + ldr r3, [sp, #4] + lsls r2, r3, #1 + movs r3, #0xec + lsls r3, r3, #4 + adds r1, r1, r3 + adds r1, r1, r2 + strh r0, [r1] + adds r5, #1 + str r5, [sp, #0x24] + b _08195476 + .align 2, 0 +_0819516C: .4byte 0x03005AF0 +_08195170: .4byte 0x00000D24 +_08195174: .4byte 0xFF800000 +_08195178: .4byte 0x00000D25 +_0819517C: + adds r5, #1 + str r5, [sp, #0x24] + ldr r5, [sp, #8] + cmp r5, #0xff + bne _08195188 + b _08195476 +_08195188: + movs r0, #0 + mov sl, r0 + lsls r1, r5, #1 + str r1, [sp, #0x2c] + ldr r2, [sp, #4] + lsls r2, r2, #1 + str r2, [sp, #0x28] + ldr r3, [sp, #4] + adds r0, r2, r3 + lsls r0, r0, #1 + mov sb, r0 + adds r0, r1, r5 + lsls r0, r0, #1 + str r0, [sp, #0x18] +_081951A4: + movs r5, #0 + mov r0, sb + str r0, [sp, #0x38] +_081951AA: + movs r6, #0 + lsls r7, r5, #1 + ldr r4, [sp, #0x18] +_081951B0: + ldr r2, _08195370 + ldr r1, [r2] + ldr r3, _08195374 + adds r1, r1, r3 + ldr r2, [sp, #0x38] + adds r0, r1, r2 + ldrh r0, [r0] + ldr r3, _08195378 + mov r8, r3 + ldr r2, [r3] + lsls r0, r0, #4 + adds r0, r0, r2 + adds r0, #2 + adds r0, r0, r7 + ldrh r0, [r0] + adds r1, r1, r4 + ldrh r1, [r1] + lsls r1, r1, #4 + adds r1, r1, r2 + ldrh r1, [r1] + movs r2, #2 + bl GetTypeEffectivenessPoints + ldr r1, [sp, #0xc] + adds r1, r1, r0 + str r1, [sp, #0xc] + adds r4, #2 + adds r6, #1 + cmp r6, #2 + ble _081951B0 + adds r5, #1 + cmp r5, #3 + ble _081951AA + ldr r2, _08195370 + ldr r0, [r2] + ldr r3, _08195374 + adds r0, r0, r3 + add r0, sb + ldrh r0, [r0] + mov r5, r8 + ldr r1, [r5] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrh r2, [r0] + ldr r0, _0819537C + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1] + ldrb r2, [r1, #1] + adds r0, r0, r2 + ldrb r2, [r1, #2] + adds r0, r0, r2 + ldrb r2, [r1, #3] + adds r0, r0, r2 + ldrb r3, [r1, #4] + adds r0, r0, r3 + ldrb r1, [r1, #5] + adds r0, r0, r1 + movs r1, #0xa + bl __divsi3 + ldr r5, [sp, #0xc] + adds r5, r5, r0 + str r5, [sp, #0xc] + movs r0, #2 + add sb, r0 + movs r1, #1 + add sl, r1 + mov r2, sl + cmp r2, #2 + ble _081951A4 + bl Random + movs r1, #0x1f + ands r1, r0 + adds r5, r5, r1 + ldr r3, [sp, #4] + adds r5, r5, r3 + str r5, [sp, #0xc] + movs r5, #0 + mov sl, r5 + ldr r1, [sp, #0x2c] + ldr r2, [sp, #8] + adds r0, r1, r2 + lsls r0, r0, #1 + str r0, [sp, #0x1c] + ldr r5, [sp, #0x28] + adds r0, r5, r3 + lsls r0, r0, #1 + str r0, [sp, #0x20] +_08195268: + movs r5, #0 + mov r0, sl + lsls r3, r0, #1 + movs r1, #1 + add sl, r1 + ldr r2, [sp, #0x1c] + adds r2, r2, r3 + mov r8, r2 +_08195278: + movs r6, #0 + lsls r7, r5, #1 + adds r5, #1 + str r5, [sp, #0x3c] + ldr r4, [sp, #0x20] +_08195282: + ldr r5, _08195370 + ldr r1, [r5] + ldr r0, _08195374 + adds r1, r1, r0 + mov r2, r8 + adds r0, r1, r2 + ldrh r0, [r0] + ldr r5, _08195378 + mov sb, r5 + ldr r2, [r5] + lsls r0, r0, #4 + adds r0, r0, r2 + adds r0, #2 + adds r0, r0, r7 + ldrh r0, [r0] + adds r1, r1, r4 + ldrh r1, [r1] + lsls r1, r1, #4 + adds r1, r1, r2 + ldrh r1, [r1] + movs r2, #2 + str r3, [sp, #0x34] + bl GetTypeEffectivenessPoints + ldr r1, [sp, #0x10] + adds r1, r1, r0 + str r1, [sp, #0x10] + adds r4, #2 + adds r6, #1 + ldr r3, [sp, #0x34] + cmp r6, #2 + ble _08195282 + ldr r5, [sp, #0x3c] + cmp r5, #3 + ble _08195278 + ldr r2, _08195370 + ldr r0, [r2] + ldr r5, [sp, #0x1c] + adds r1, r3, r5 + ldr r2, _08195374 + adds r0, r0, r2 + adds r0, r0, r1 + ldrh r0, [r0] + mov r3, sb + ldr r1, [r3] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrh r2, [r0] + ldr r0, _0819537C + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1] + ldrb r2, [r1, #1] + adds r0, r0, r2 + ldrb r5, [r1, #2] + adds r0, r0, r5 + ldrb r2, [r1, #3] + adds r0, r0, r2 + ldrb r2, [r1, #4] + adds r0, r0, r2 + ldrb r1, [r1, #5] + adds r0, r0, r1 + movs r1, #0xa + bl __divsi3 + ldr r3, [sp, #0x10] + adds r3, r3, r0 + str r3, [sp, #0x10] + mov r5, sl + cmp r5, #2 + ble _08195268 + bl Random + movs r1, #0x1f + ands r1, r0 + ldr r0, [sp, #0x10] + adds r0, r0, r1 + ldr r1, [sp, #8] + adds r0, r0, r1 + str r0, [sp, #0x10] + ldr r2, [sp, #0xc] + cmp r2, r0 + ble _08195384 + ldr r3, _08195370 + ldr r1, [r3] + ldr r5, [sp, #0x30] + adds r1, r1, r5 + ldr r0, _08195380 + adds r1, r1, r0 + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + ldr r1, [r3] + adds r1, r1, r5 + ldr r3, _08195380 + adds r1, r1, r3 + ldrb r0, [r1] + movs r5, #0x19 + rsbs r5, r5, #0 + ands r0, r5 + ldr r2, [sp, #0x14] + orrs r0, r2 + strb r0, [r1] + ldr r0, [sp, #4] + ldr r1, [sp, #8] + ldr r2, [sp] + bl GetWinningMove + ldr r3, _08195370 + ldr r1, [r3] + movs r5, #0xec + lsls r5, r5, #4 + adds r1, r1, r5 + ldr r2, [sp, #0x2c] + adds r1, r1, r2 + b _08195474 + .align 2, 0 +_08195370: .4byte 0x03005AF0 +_08195374: .4byte 0x00000D64 +_08195378: .4byte 0x0203B958 +_0819537C: .4byte 0x082F0D54 +_08195380: .4byte 0x00000D25 +_08195384: + ldr r3, [sp, #0xc] + ldr r5, [sp, #0x10] + cmp r3, r5 + bge _081953DC + ldr r0, _081953D4 + ldr r1, [r0] + ldr r3, [sp, #4] + lsls r2, r3, #2 + adds r1, r1, r2 + ldr r5, _081953D8 + adds r1, r1, r5 + ldrb r0, [r1] + movs r3, #4 + orrs r0, r3 + strb r0, [r1] + ldr r5, _081953D4 + ldr r1, [r5] + adds r1, r1, r2 + ldr r0, _081953D8 + adds r1, r1, r0 + ldrb r0, [r1] + movs r2, #0x19 + rsbs r2, r2, #0 + ands r0, r2 + ldr r3, [sp, #0x14] + orrs r0, r3 + strb r0, [r1] + ldr r0, [sp, #8] + ldr r1, [sp, #4] + ldr r2, [sp] + bl GetWinningMove + ldr r1, [r5] + movs r5, #0xec + lsls r5, r5, #4 + adds r1, r1, r5 + ldr r2, [sp, #0x28] + adds r1, r1, r2 + b _08195474 + .align 2, 0 +_081953D4: .4byte 0x03005AF0 +_081953D8: .4byte 0x00000D25 +_081953DC: + ldr r3, [sp, #4] + ldr r5, [sp, #8] + cmp r3, r5 + ble _08195430 + ldr r0, _08195428 + ldr r1, [r0] + ldr r2, [sp, #0x30] + adds r1, r1, r2 + ldr r3, _0819542C + adds r1, r1, r3 + ldrb r0, [r1] + movs r5, #4 + orrs r0, r5 + strb r0, [r1] + ldr r0, _08195428 + ldr r1, [r0] + adds r1, r1, r2 + adds r1, r1, r3 + ldrb r0, [r1] + movs r2, #0x19 + rsbs r2, r2, #0 + ands r0, r2 + ldr r3, [sp, #0x14] + orrs r0, r3 + strb r0, [r1] + ldr r0, [sp, #4] + ldr r1, [sp, #8] + ldr r2, [sp] + bl GetWinningMove + ldr r5, _08195428 + ldr r1, [r5] + movs r2, #0xec + lsls r2, r2, #4 + adds r1, r1, r2 + ldr r3, [sp, #0x2c] + b _08195472 + .align 2, 0 +_08195428: .4byte 0x03005AF0 +_0819542C: .4byte 0x00000D25 +_08195430: + ldr r5, _08195490 + ldr r1, [r5] + ldr r0, [sp, #4] + lsls r2, r0, #2 + adds r1, r1, r2 + ldr r3, _08195494 + adds r1, r1, r3 + ldrb r0, [r1] + movs r5, #4 + orrs r0, r5 + strb r0, [r1] + ldr r0, _08195490 + ldr r1, [r0] + adds r1, r1, r2 + adds r1, r1, r3 + ldrb r0, [r1] + movs r2, #0x19 + rsbs r2, r2, #0 + ands r0, r2 + ldr r3, [sp, #0x14] + orrs r0, r3 + strb r0, [r1] + ldr r0, [sp, #8] + ldr r1, [sp, #4] + ldr r2, [sp] + bl GetWinningMove + ldr r5, _08195490 + ldr r1, [r5] + movs r2, #0xec + lsls r2, r2, #4 + adds r1, r1, r2 + ldr r3, [sp, #0x28] +_08195472: + adds r1, r1, r3 +_08195474: + strh r0, [r1] +_08195476: + ldr r5, [sp, #0x24] + cmp r5, #0xf + bgt _0819547E + b _0819505E +_0819547E: + add sp, #0x40 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08195490: .4byte 0x03005AF0 +_08195494: .4byte 0x00000D25 + thumb_func_end DecideRoundWinners + + thumb_func_start CopyDomeTrainerName +CopyDomeTrainerName: @ 0x08195498 + push {r4, r5, r6, lr} + adds r6, r0, #0 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + movs r4, #0 + bl SetFacilityPtrsGetLevel + ldr r0, _081954B4 + cmp r5, r0 + bne _081954B8 + adds r0, r6, #0 + bl CopyDomeBrainTrainerName + b _08195502 + .align 2, 0 +_081954B4: .4byte 0x000003FE +_081954B8: + ldr r0, _081954D4 + cmp r5, r0 + bne _081954DC + ldr r0, _081954D8 + ldr r2, [r0] +_081954C2: + adds r0, r6, r4 + adds r1, r2, r4 + ldrb r1, [r1] + strb r1, [r0] + adds r4, #1 + cmp r4, #6 + ble _081954C2 + b _081954FC + .align 2, 0 +_081954D4: .4byte 0x000003FF +_081954D8: .4byte 0x03005AF0 +_081954DC: + ldr r0, _08195508 + cmp r5, r0 + bhi _081954FC + ldr r0, _0819550C + ldr r1, [r0] + movs r0, #0x34 + muls r0, r5, r0 + adds r0, r0, r1 + adds r2, r0, #4 +_081954EE: + adds r0, r6, r4 + adds r1, r2, r4 + ldrb r1, [r1] + strb r1, [r0] + adds r4, #1 + cmp r4, #6 + ble _081954EE +_081954FC: + adds r1, r6, r4 + movs r0, #0xff + strb r0, [r1] +_08195502: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08195508: .4byte 0x0000012B +_0819550C: .4byte 0x0203B954 + thumb_func_end CopyDomeTrainerName + + thumb_func_start CallBattleDomeFunction +CallBattleDomeFunction: @ 0x08195510 + ldr r0, _0819551C + ldr r1, _08195520 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0819551C: .4byte 0x082E383C +_08195520: .4byte 0x000064C3 + thumb_func_end CallBattleDomeFunction + + thumb_func_start GetDomeBrainTrainerClass +GetDomeBrainTrainerClass: @ 0x08195524 + ldr r0, _08195530 + ldr r1, _08195534 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08195530: .4byte 0x082E383C +_08195534: .4byte 0x000064C1 + thumb_func_end GetDomeBrainTrainerClass + + thumb_func_start CopyDomeBrainTrainerName +CopyDomeBrainTrainerName: @ 0x08195538 + push {r4, lr} + adds r3, r0, #0 + movs r2, #0 + ldr r4, _0819555C +_08195540: + adds r0, r3, r2 + adds r1, r2, r4 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, #6 + ble _08195540 + adds r1, r3, r2 + movs r0, #0xff + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0819555C: .4byte 0x082E9D00 + thumb_func_end CopyDomeBrainTrainerName + diff --git a/asm/battle_factory.s b/asm/battle_factory.s new file mode 100644 index 0000000..d8808a0 --- /dev/null +++ b/asm/battle_factory.s @@ -0,0 +1,2322 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start CallBattleFactoryFunction +CallBattleFactoryFunction: @ 0x081A5C0C + push {lr} + ldr r1, _081A5C24 + ldr r0, _081A5C28 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + thumb_func_end CallBattleFactoryFunction + + thumb_func_start nullsub_75 +nullsub_75: @ 0x081A5C20 + bx r0 + .align 2, 0 +_081A5C24: .4byte 0x085DD958 +_081A5C28: .4byte 0x02037280 + thumb_func_end nullsub_75 + + thumb_func_start InitFactoryChallenge +InitFactoryChallenge: @ 0x081A5C2C + push {r4, r5, r6, r7, lr} + ldr r5, _081A5D0C + ldr r0, [r5] + ldr r4, _081A5D10 + adds r0, r0, r4 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r7, r0, #0x1e + ldr r0, _081A5D14 + bl VarGet + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r0, [r5] + ldr r1, _081A5D18 + adds r0, r0, r1 + movs r2, #0 + strb r2, [r0] + ldr r1, [r5] + ldr r3, _081A5D1C + adds r0, r1, r3 + strh r2, [r0] + adds r1, r1, r4 + ldrb r2, [r1] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r5] + adds r1, r1, r4 + ldrb r2, [r1] + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r4, [r5] + ldr r0, _081A5D20 + adds r3, r4, r0 + ldr r2, _081A5D24 + lsls r0, r7, #2 + lsls r1, r6, #3 + adds r0, r0, r1 + adds r0, r0, r2 + ldr r3, [r3] + ldr r0, [r0] + ands r3, r0 + cmp r3, #0 + bne _081A5CA2 + lsls r1, r7, #1 + lsls r0, r6, #2 + adds r1, r1, r0 + ldr r2, _081A5D28 + adds r0, r4, r2 + adds r0, r0, r1 + strh r3, [r0] + adds r2, #0x10 + adds r0, r4, r2 + adds r0, r0, r1 + strh r3, [r0] +_081A5CA2: + ldr r1, _081A5D2C + movs r0, #0 + strb r0, [r1] + movs r2, #0 + ldr r6, _081A5D30 + movs r4, #0xe7 + lsls r4, r4, #4 + ldr r0, _081A5D34 + adds r3, r0, #0 +_081A5CB4: + ldr r1, [r5] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r1, r1, r0 + adds r1, r1, r4 + ldrh r0, [r1] + orrs r0, r3 + strh r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #5 + bls _081A5CB4 + movs r2, #0 + ldr r4, _081A5D38 + ldr r1, _081A5D34 + adds r3, r1, #0 +_081A5CD8: + lsls r0, r2, #1 + adds r0, r0, r4 + ldrh r1, [r0] + orrs r1, r3 + strh r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #2 + bls _081A5CD8 + ldr r0, [r6] + movs r1, #4 + ldrsb r1, [r0, r1] + movs r2, #5 + ldrsb r2, [r0, r2] + movs r3, #1 + rsbs r3, r3, #0 + movs r0, #0 + bl SetDynamicWarp + ldr r1, _081A5D3C + movs r0, #0 + strh r0, [r1] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A5D0C: .4byte 0x03005AF0 +_081A5D10: .4byte 0x00000CA9 +_081A5D14: .4byte 0x000040CE +_081A5D18: .4byte 0x00000CA8 +_081A5D1C: .4byte 0x00000CB2 +_081A5D20: .4byte 0x00000CDC +_081A5D24: .4byte 0x085DD99C +_081A5D28: .4byte 0x00000DE2 +_081A5D2C: .4byte 0x03001284 +_081A5D30: .4byte 0x03005AEC +_081A5D34: .4byte 0x0000FFFF +_081A5D38: .4byte 0x03005FD8 +_081A5D3C: .4byte 0x0203886A + thumb_func_end InitFactoryChallenge + + thumb_func_start GetBattleFactoryData +GetBattleFactoryData: @ 0x081A5D40 + push {r4, r5, r6, r7, lr} + ldr r7, _081A5D6C + ldr r0, [r7] + ldr r1, _081A5D70 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r6, r0, #0x1e + ldr r0, _081A5D74 + bl VarGet + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, _081A5D78 + ldrh r0, [r0] + cmp r0, #2 + beq _081A5D98 + cmp r0, #2 + bgt _081A5D7C + cmp r0, #1 + beq _081A5D82 + b _081A5DDC + .align 2, 0 +_081A5D6C: .4byte 0x03005AF0 +_081A5D70: .4byte 0x00000CA9 +_081A5D74: .4byte 0x000040CE +_081A5D78: .4byte 0x02037282 +_081A5D7C: + cmp r0, #3 + beq _081A5DC8 + b _081A5DDC +_081A5D82: + ldr r3, _081A5D90 + ldr r0, [r7] + lsls r1, r6, #1 + lsls r2, r5, #2 + adds r1, r1, r2 + ldr r2, _081A5D94 + b _081A5DD4 + .align 2, 0 +_081A5D90: .4byte 0x02037290 +_081A5D94: .4byte 0x00000DE2 +_081A5D98: + ldr r4, _081A5DBC + ldr r2, [r7] + ldr r0, _081A5DC0 + adds r2, r2, r0 + ldr r3, _081A5DC4 + lsls r0, r6, #2 + lsls r1, r5, #3 + adds r0, r0, r1 + adds r0, r0, r3 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + strh r0, [r4] + b _081A5DDC + .align 2, 0 +_081A5DBC: .4byte 0x02037290 +_081A5DC0: .4byte 0x00000CDC +_081A5DC4: .4byte 0x085DD99C +_081A5DC8: + ldr r3, _081A5DE4 + ldr r0, [r7] + lsls r1, r6, #1 + lsls r2, r5, #2 + adds r1, r1, r2 + ldr r2, _081A5DE8 +_081A5DD4: + adds r0, r0, r2 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r3] +_081A5DDC: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A5DE4: .4byte 0x02037290 +_081A5DE8: .4byte 0x00000DF2 + thumb_func_end GetBattleFactoryData + + thumb_func_start SetBattleFactoryData +SetBattleFactoryData: @ 0x081A5DEC + push {r4, r5, r6, lr} + ldr r6, _081A5E18 + ldr r0, [r6] + ldr r1, _081A5E1C + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r5, r0, #0x1e + ldr r0, _081A5E20 + bl VarGet + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, _081A5E24 + ldrh r0, [r0] + cmp r0, #2 + beq _081A5E4C + cmp r0, #2 + bgt _081A5E28 + cmp r0, #1 + beq _081A5E2E + b _081A5EC0 + .align 2, 0 +_081A5E18: .4byte 0x03005AF0 +_081A5E1C: .4byte 0x00000CA9 +_081A5E20: .4byte 0x000040CE +_081A5E24: .4byte 0x02037282 +_081A5E28: + cmp r0, #3 + beq _081A5EA0 + b _081A5EC0 +_081A5E2E: + ldr r2, [r6] + lsls r0, r5, #1 + lsls r1, r4, #2 + adds r0, r0, r1 + ldr r1, _081A5E44 + adds r2, r2, r1 + adds r2, r2, r0 + ldr r0, _081A5E48 + ldrh r0, [r0] + strh r0, [r2] + b _081A5EC0 + .align 2, 0 +_081A5E44: .4byte 0x00000DE2 +_081A5E48: .4byte 0x02037284 +_081A5E4C: + ldr r0, _081A5E70 + ldrh r0, [r0] + cmp r0, #0 + beq _081A5E7C + ldr r2, [r6] + ldr r0, _081A5E74 + adds r2, r2, r0 + ldr r3, _081A5E78 + lsls r1, r5, #2 + lsls r0, r4, #3 + adds r1, r1, r0 + adds r1, r1, r3 + ldr r0, [r2] + ldr r1, [r1] + orrs r0, r1 + str r0, [r2] + b _081A5EC0 + .align 2, 0 +_081A5E70: .4byte 0x02037284 +_081A5E74: .4byte 0x00000CDC +_081A5E78: .4byte 0x085DD99C +_081A5E7C: + ldr r2, [r6] + ldr r1, _081A5E98 + adds r2, r2, r1 + ldr r3, _081A5E9C + lsls r1, r5, #2 + lsls r0, r4, #3 + adds r1, r1, r0 + adds r1, r1, r3 + ldr r0, [r2] + ldr r1, [r1] + ands r0, r1 + str r0, [r2] + b _081A5EC0 + .align 2, 0 +_081A5E98: .4byte 0x00000CDC +_081A5E9C: .4byte 0x085DD9AC +_081A5EA0: + ldr r3, _081A5EC8 + ldrb r0, [r3] + cmp r0, #1 + bne _081A5EC0 + ldr r2, [r6] + lsls r0, r5, #1 + lsls r1, r4, #2 + adds r0, r0, r1 + ldr r1, _081A5ECC + adds r2, r2, r1 + adds r2, r2, r0 + ldr r0, _081A5ED0 + ldrh r0, [r0] + movs r1, #0 + strh r0, [r2] + strb r1, [r3] +_081A5EC0: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081A5EC8: .4byte 0x03001284 +_081A5ECC: .4byte 0x00000DF2 +_081A5ED0: .4byte 0x02037284 + thumb_func_end SetBattleFactoryData + + thumb_func_start sub_081A5ED4 +sub_081A5ED4: @ 0x081A5ED4 + push {r4, lr} + ldr r4, _081A5F08 + ldr r0, [r4] + ldr r1, _081A5F0C + ldrh r1, [r1] + ldr r2, _081A5F10 + adds r0, r0, r2 + strb r1, [r0] + movs r0, #0x80 + lsls r0, r0, #7 + movs r1, #0 + bl VarSet + ldr r1, [r4] + ldr r0, _081A5F14 + adds r1, r1, r0 + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + bl sub_081A482C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081A5F08: .4byte 0x03005AF0 +_081A5F0C: .4byte 0x02037282 +_081A5F10: .4byte 0x00000CA8 +_081A5F14: .4byte 0x00000CA9 + thumb_func_end sub_081A5ED4 + + thumb_func_start SwapRentalMons +SwapRentalMons: @ 0x081A5F18 + bx lr + .align 2, 0 + thumb_func_end SwapRentalMons + + thumb_func_start nullsub_123 +nullsub_123: @ 0x081A5F1C + bx lr + .align 2, 0 + thumb_func_end nullsub_123 + + thumb_func_start SelectInitialRentalMons +SelectInitialRentalMons: @ 0x081A5F20 + push {lr} + bl ZeroPlayerPartyMons + bl DoBattleFactorySelectScreen + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SelectInitialRentalMons + + thumb_func_start sub_081A5F30 +sub_081A5F30: @ 0x081A5F30 + push {lr} + bl DoBattleFactorySwapScreen + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081A5F30 + + thumb_func_start SetPerformedRentalSwap +SetPerformedRentalSwap: @ 0x081A5F3C + ldr r1, _081A5F44 + movs r0, #1 + strb r0, [r1] + bx lr + .align 2, 0 +_081A5F44: .4byte 0x03001284 + thumb_func_end SetPerformedRentalSwap + + thumb_func_start GenerateOpponentMons +GenerateOpponentMons: @ 0x081A5F48 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x28 + ldr r4, _081A611C + ldr r0, [r4] + ldr r1, _081A6120 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + str r0, [sp, #0x10] + ldr r0, _081A6124 + bl VarGet + lsls r0, r0, #0x10 + ldr r1, [r4] + ldr r3, [sp, #0x10] + lsls r2, r3, #1 + lsrs r0, r0, #0xe + adds r2, r2, r0 + ldr r6, _081A6128 + adds r1, r1, r6 + adds r1, r1, r2 + ldrh r0, [r1] + movs r1, #7 + bl __udivsi3 + ldr r2, _081A612C + ldr r1, _081A6130 + str r1, [r2] + ldr r5, _081A6134 + lsls r0, r0, #0x18 + str r0, [sp, #0x20] + mov r8, r0 +_081A5F92: + ldr r0, [r4] + adds r0, r0, r5 + ldrb r1, [r0] + mov r2, r8 + lsrs r0, r2, #0x18 + bl sub_0816245C + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + movs r7, #0 + ldr r1, [r4] + adds r0, r1, r5 + ldr r6, [sp, #0x10] + lsls r6, r6, #0x18 + str r6, [sp, #0x1c] + ldrh r0, [r0] + cmp r7, r0 + bge _081A5FDC + ldr r2, _081A6138 + adds r0, r1, r2 + ldrh r0, [r0] + ldr r6, _081A611C + cmp r0, r3 + beq _081A5FDC + ldr r1, [r6] + ldr r6, _081A6134 + adds r0, r1, r6 + ldrh r2, [r0] + ldr r0, _081A6138 + adds r1, r1, r0 +_081A5FCE: + adds r1, #2 + adds r7, #1 + cmp r7, r2 + bge _081A5FDC + ldrh r0, [r1] + cmp r0, r3 + bne _081A5FCE +_081A5FDC: + ldr r0, [r4] + ldr r1, _081A6134 + adds r0, r0, r1 + ldr r6, _081A611C + ldrh r0, [r0] + cmp r7, r0 + bne _081A5F92 + ldr r0, _081A613C + strh r3, [r0] + ldr r2, [r6] + adds r1, r2, r1 + ldrh r0, [r1] + cmp r0, #5 + bhi _081A6004 + adds r1, r0, #0 + lsls r1, r1, #1 + ldr r4, _081A6138 + adds r0, r2, r4 + adds r0, r0, r1 + strh r3, [r0] +_081A6004: + movs r7, #0 + mov sl, sp + movs r6, #0 + lsls r6, r6, #1 + str r6, [sp, #0x14] + add r6, sp + str r6, [sp, #0x18] +_081A6012: + ldr r1, [sp, #0x1c] + lsrs r0, r1, #0x18 + ldr r2, [sp, #0x20] + lsrs r1, r2, #0x18 + movs r2, #0 + bl GetMonSetId + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + ldr r4, _081A6140 + ldr r2, [r4] + lsls r1, r0, #4 + adds r0, r1, r2 + ldrh r0, [r0] + cmp r0, #0xc9 + beq _081A6106 + movs r3, #0 + ldr r6, _081A611C + mov r8, r1 + adds r5, r0, #0 + ldr r1, [r6] +_081A603E: + movs r4, #0xe7 + lsls r4, r4, #4 + adds r0, r1, r4 + ldrh r0, [r0] + lsls r0, r0, #4 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r5, r0 + beq _081A6058 + adds r1, #0xc + adds r3, #1 + cmp r3, #5 + ble _081A603E +_081A6058: + cmp r3, #6 + bne _081A6106 + ldr r6, [sp, #0x10] + cmp r6, #0 + bne _081A6068 + ldr r0, _081A6144 + cmp sb, r0 + bhi _081A6106 +_081A6068: + movs r2, #0 + adds r4, r2, r7 + cmp r2, r4 + bge _081A609A + ldr r1, [sp, #0x18] + ldrh r0, [r1] + cmp r0, r5 + beq _081A609A + adds r6, r4, #0 + ldr r3, _081A6140 + mov ip, r3 + mov r5, r8 + ldr r3, [sp, #0x14] + add r3, sp +_081A6084: + adds r3, #2 + adds r2, #1 + cmp r2, r6 + bge _081A609A + mov r1, ip + ldr r0, [r1] + adds r0, r5, r0 + ldrh r1, [r3] + ldrh r0, [r0] + cmp r1, r0 + bne _081A6084 +_081A609A: + cmp r2, r4 + bne _081A6106 + movs r2, #0 + cmp r2, r4 + bge _081A60D6 + ldr r3, _081A6148 + mov ip, r3 + add r0, sp, #8 + ldr r6, [sp, #0x14] + adds r3, r0, r6 + mov r0, r8 + str r0, [sp, #0x24] + adds r5, r4, #0 +_081A60B4: + ldrh r1, [r3] + cmp r1, #0 + beq _081A60CE + ldr r6, _081A6140 + ldr r0, [r6] + ldr r6, [sp, #0x24] + adds r0, r6, r0 + ldrb r0, [r0, #0xa] + lsls r0, r0, #1 + add r0, ip + ldrh r0, [r0] + cmp r1, r0 + beq _081A60D6 +_081A60CE: + adds r3, #2 + adds r2, #1 + cmp r2, r5 + blt _081A60B4 +_081A60D6: + cmp r2, r4 + bne _081A6106 + lsls r4, r7, #1 + ldr r0, _081A6140 + ldr r1, [r0] + add r1, r8 + ldrh r0, [r1] + mov r2, sl + strh r0, [r2] + add r2, sp, #8 + adds r2, r2, r4 + ldr r3, _081A6148 + ldrb r0, [r1, #0xa] + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + strh r0, [r2] + ldr r0, _081A614C + adds r4, r4, r0 + mov r3, sb + strh r3, [r4] + movs r4, #2 + add sl, r4 + adds r7, #1 +_081A6106: + cmp r7, #3 + bne _081A6012 + add sp, #0x28 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A611C: .4byte 0x03005AF0 +_081A6120: .4byte 0x00000CA9 +_081A6124: .4byte 0x000040CE +_081A6128: .4byte 0x00000DE2 +_081A612C: .4byte 0x0203B954 +_081A6130: .4byte 0x085B4A10 +_081A6134: .4byte 0x00000CB2 +_081A6138: .4byte 0x00000CB4 +_081A613C: .4byte 0x0203886A +_081A6140: .4byte 0x0203B958 +_081A6144: .4byte 0x00000351 +_081A6148: .4byte 0x085ADBF4 +_081A614C: .4byte 0x03005FD8 + thumb_func_end GenerateOpponentMons + + thumb_func_start SetOpponentGfxVar +SetOpponentGfxVar: @ 0x081A6150 + push {lr} + ldr r0, _081A6160 + ldrh r0, [r0] + movs r1, #0 + bl SetBattleFacilityTrainerGfxId + pop {r0} + bx r0 + .align 2, 0 +_081A6160: .4byte 0x0203886A + thumb_func_end SetOpponentGfxVar + + thumb_func_start SetRentalsToOpponentParty +SetRentalsToOpponentParty: @ 0x081A6164 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _081A6184 + ldr r0, [r0] + ldr r1, _081A6188 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + cmp r0, #2 + beq _081A6194 + ldr r1, _081A618C + ldr r0, _081A6190 + b _081A6198 + .align 2, 0 +_081A6184: .4byte 0x03005AF0 +_081A6188: .4byte 0x00000CA9 +_081A618C: .4byte 0x0203B958 +_081A6190: .4byte 0x085B8700 +_081A6194: + ldr r1, _081A6238 + ldr r0, _081A623C +_081A6198: + str r0, [r1] + movs r7, #0 + ldr r2, _081A6240 + mov r8, r2 +_081A61A0: + mov r0, r8 + ldr r1, [r0] + adds r0, r7, #3 + lsls r4, r0, #1 + adds r4, r4, r0 + lsls r4, r4, #2 + adds r1, r1, r4 + ldr r0, _081A6244 + lsls r6, r7, #1 + adds r6, r6, r0 + ldrh r0, [r6] + movs r2, #0xe7 + lsls r2, r2, #4 + adds r1, r1, r2 + strh r0, [r1] + movs r0, #0x64 + adds r5, r7, #0 + muls r5, r0, r5 + ldr r0, _081A6248 + adds r5, r5, r0 + adds r0, r5, #0 + movs r1, #0x28 + movs r2, #0 + bl GetBoxMonData + mov r2, r8 + ldr r1, [r2] + adds r1, r1, r4 + ldr r2, _081A624C + adds r1, r1, r2 + strb r0, [r1] + adds r0, r5, #0 + movs r1, #0 + movs r2, #0 + bl GetMonData + mov r2, r8 + ldr r1, [r2] + ldr r2, _081A6250 + adds r1, r1, r2 + adds r1, r1, r4 + str r0, [r1] + adds r0, r5, #0 + movs r1, #0x2e + movs r2, #0 + bl GetBoxMonData + mov r2, r8 + ldr r1, [r2] + adds r1, r1, r4 + ldr r2, _081A6254 + adds r1, r1, r2 + strb r0, [r1] + ldrh r1, [r6] + ldr r0, _081A6238 + ldr r0, [r0] + lsls r1, r1, #4 + adds r1, r1, r0 + ldrb r2, [r1, #0xa] + lsls r2, r2, #1 + ldr r0, _081A6258 + adds r2, r2, r0 + adds r0, r5, #0 + movs r1, #0xc + bl SetMonData + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #2 + bls _081A61A0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A6238: .4byte 0x0203B958 +_081A623C: .4byte 0x085BCF70 +_081A6240: .4byte 0x03005AF0 +_081A6244: .4byte 0x03005FD8 +_081A6248: .4byte 0x020243E8 +_081A624C: .4byte 0x00000E78 +_081A6250: .4byte 0x00000E74 +_081A6254: .4byte 0x00000E79 +_081A6258: .4byte 0x085ADBF4 + thumb_func_end SetRentalsToOpponentParty + + thumb_func_start SetPlayerAndOpponentParties +SetPlayerAndOpponentParties: @ 0x081A625C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x24 + ldr r0, _081A6288 + ldr r0, [r0] + ldr r1, _081A628C + adds r2, r0, r1 + ldrb r1, [r2] + movs r3, #3 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #2 + bne _081A6298 + ldr r1, _081A6290 + ldr r0, _081A6294 + str r0, [r1] + movs r2, #0x1e + str r2, [sp, #0x14] + b _081A62B0 + .align 2, 0 +_081A6288: .4byte 0x03005AF0 +_081A628C: .4byte 0x00000CA9 +_081A6290: .4byte 0x0203B958 +_081A6294: .4byte 0x085BCF70 +_081A6298: + ldr r1, _081A6558 + ldr r0, _081A655C + str r0, [r1] + ldrb r1, [r2] + adds r0, r3, #0 + ands r0, r1 + movs r4, #0x32 + str r4, [sp, #0x14] + cmp r0, #0 + beq _081A62B0 + movs r5, #0x64 + str r5, [sp, #0x14] +_081A62B0: + ldr r0, _081A6560 + ldrh r0, [r0] + cmp r0, #1 + bls _081A62BA + b _081A6404 +_081A62BA: + bl ZeroPlayerPartyMons + movs r0, #0 + mov r8, r0 + mov r1, sp + adds r1, #0x12 + str r1, [sp, #0x1c] + ldr r2, _081A6558 + mov sb, r2 +_081A62CC: + ldr r4, _081A6564 + ldr r2, [r4] + mov r5, r8 + lsls r5, r5, #1 + mov sl, r5 + mov r3, sl + add r3, r8 + lsls r3, r3, #2 + adds r1, r2, r3 + movs r4, #0xe7 + lsls r4, r4, #4 + adds r0, r1, r4 + ldrh r7, [r0] + ldr r5, _081A6568 + adds r1, r1, r5 + ldrb r6, [r1] + movs r1, #0x64 + mov r0, r8 + muls r0, r1, r0 + ldr r1, _081A656C + adds r0, r0, r1 + mov r4, sb + ldr r1, [r4] + lsls r4, r7, #4 + adds r1, r4, r1 + ldrh r1, [r1] + movs r5, #1 + str r5, [sp] + ldr r5, _081A6570 + adds r2, r2, r5 + adds r2, r2, r3 + ldr r2, [r2] + str r2, [sp, #4] + movs r2, #0 + str r2, [sp, #8] + str r2, [sp, #0xc] + ldr r2, [sp, #0x14] + adds r3, r6, #0 + bl CreateMon + movs r1, #0 + mov r2, sb + ldr r0, [r2] + adds r4, r4, r0 + ldrb r4, [r4, #0xb] + mov r5, r8 + adds r5, #1 + str r5, [sp, #0x18] + movs r5, #5 +_081A632E: + adds r0, r4, #0 + movs r2, #1 + ands r0, r2 + cmp r0, #0 + beq _081A633A + adds r1, #1 +_081A633A: + lsrs r4, r4, #1 + subs r5, #1 + cmp r5, #0 + bge _081A632E + movs r0, #0xff + lsls r0, r0, #1 + bl __divsi3 + add r1, sp, #0x10 + strh r0, [r1] + movs r4, #1 + movs r5, #0 + lsls r7, r7, #4 + movs r0, #0x64 + mov r6, r8 + muls r6, r0, r6 + ldr r3, _081A656C +_081A635C: + mov r1, sb + ldr r0, [r1] + adds r0, r7, r0 + ldrb r0, [r0, #0xb] + ands r0, r4 + cmp r0, #0 + beq _081A637A + adds r1, r5, #0 + adds r1, #0x1a + adds r0, r6, r3 + add r2, sp, #0x10 + str r3, [sp, #0x20] + bl SetMonData + ldr r3, [sp, #0x20] +_081A637A: + lsls r0, r4, #0x19 + lsrs r4, r0, #0x18 + adds r5, #1 + cmp r5, #5 + ble _081A635C + movs r2, #0x64 + mov r4, r8 + muls r4, r2, r4 + ldr r5, _081A656C + adds r0, r4, r5 + bl CalculateMonStats + movs r0, #0 + ldr r1, [sp, #0x1c] + strb r0, [r1] + movs r6, #0 +_081A639A: + mov r2, sb + ldr r0, [r2] + adds r0, r7, r0 + lsls r1, r6, #1 + adds r0, #2 + adds r0, r0, r1 + ldrh r1, [r0] + lsls r2, r6, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, r5 + bl SetMonMoveAvoidReturn + adds r6, #1 + cmp r6, #3 + ble _081A639A + movs r5, #0x64 + mov r4, r8 + muls r4, r5, r4 + ldr r0, _081A656C + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x20 + ldr r2, [sp, #0x1c] + bl SetMonData + mov r1, sb + ldr r0, [r1] + adds r0, r7, r0 + ldrb r2, [r0, #0xa] + lsls r2, r2, #1 + ldr r0, _081A6574 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0xc + bl SetMonData + mov r2, sl + add r2, r8 + lsls r2, r2, #2 + ldr r5, _081A6564 + ldr r0, [r5] + adds r2, r2, r0 + ldr r0, _081A6578 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x2e + bl SetMonData + ldr r1, [sp, #0x18] + mov r8, r1 + cmp r1, #2 + bgt _081A6404 + b _081A62CC +_081A6404: + ldr r0, _081A6560 + ldrh r0, [r0] + cmp r0, #0 + beq _081A6412 + cmp r0, #2 + beq _081A6412 + b _081A6546 +_081A6412: + movs r2, #0 + mov r8, r2 + ldr r4, _081A6558 + mov sb, r4 +_081A641A: + ldr r5, _081A6564 + ldr r3, [r5] + mov r0, r8 + adds r0, #3 + lsls r2, r0, #1 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r1, r3, r2 + movs r4, #0xe7 + lsls r4, r4, #4 + adds r0, r1, r4 + ldrh r7, [r0] + ldr r5, _081A6568 + adds r1, r1, r5 + ldrb r6, [r1] + movs r1, #0x64 + mov r0, r8 + muls r0, r1, r0 + ldr r1, _081A657C + adds r0, r0, r1 + mov r4, sb + ldr r1, [r4] + lsls r4, r7, #4 + adds r1, r4, r1 + ldrh r1, [r1] + movs r5, #1 + str r5, [sp] + ldr r5, _081A6570 + adds r3, r3, r5 + adds r3, r3, r2 + ldr r2, [r3] + str r2, [sp, #4] + movs r2, #0 + str r2, [sp, #8] + str r2, [sp, #0xc] + ldr r2, [sp, #0x14] + adds r3, r6, #0 + bl CreateMon + movs r1, #0 + mov r2, sb + ldr r0, [r2] + adds r4, r4, r0 + ldrb r4, [r4, #0xb] + mov r5, r8 + lsls r5, r5, #1 + mov sl, r5 + mov r0, r8 + adds r0, #1 + str r0, [sp, #0x18] + movs r5, #5 +_081A6480: + adds r0, r4, #0 + movs r2, #1 + ands r0, r2 + cmp r0, #0 + beq _081A648C + adds r1, #1 +_081A648C: + lsrs r4, r4, #1 + subs r5, #1 + cmp r5, #0 + bge _081A6480 + add r4, sp, #0x10 + movs r0, #0xff + lsls r0, r0, #1 + bl __divsi3 + strh r0, [r4] + movs r4, #1 + movs r5, #0 + lsls r7, r7, #4 + movs r0, #0x64 + mov r6, r8 + muls r6, r0, r6 + ldr r3, _081A657C +_081A64AE: + mov r1, sb + ldr r0, [r1] + adds r0, r7, r0 + ldrb r0, [r0, #0xb] + ands r0, r4 + cmp r0, #0 + beq _081A64CC + adds r1, r5, #0 + adds r1, #0x1a + adds r0, r6, r3 + add r2, sp, #0x10 + str r3, [sp, #0x20] + bl SetMonData + ldr r3, [sp, #0x20] +_081A64CC: + lsls r0, r4, #0x19 + lsrs r4, r0, #0x18 + adds r5, #1 + cmp r5, #5 + ble _081A64AE + movs r2, #0x64 + mov r4, r8 + muls r4, r2, r4 + ldr r5, _081A657C + adds r0, r4, r5 + bl CalculateMonStats + movs r6, #0 +_081A64E6: + mov r1, sb + ldr r0, [r1] + adds r0, r7, r0 + lsls r1, r6, #1 + adds r0, #2 + adds r0, r0, r1 + ldrh r1, [r0] + lsls r2, r6, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, r5 + bl SetMonMoveAvoidReturn + adds r6, #1 + cmp r6, #3 + ble _081A64E6 + movs r2, #0x64 + mov r4, r8 + muls r4, r2, r4 + ldr r0, _081A657C + adds r4, r4, r0 + mov r5, sb + ldr r0, [r5] + adds r0, r7, r0 + ldrb r2, [r0, #0xa] + lsls r2, r2, #1 + ldr r0, _081A6574 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0xc + bl SetMonData + mov r2, sl + add r2, r8 + lsls r2, r2, #2 + ldr r1, _081A6564 + ldr r0, [r1] + adds r2, r2, r0 + ldr r5, _081A6580 + adds r2, r2, r5 + adds r0, r4, #0 + movs r1, #0x2e + bl SetMonData + ldr r0, [sp, #0x18] + mov r8, r0 + cmp r0, #2 + bgt _081A6546 + b _081A641A +_081A6546: + add sp, #0x24 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A6558: .4byte 0x0203B958 +_081A655C: .4byte 0x085B8700 +_081A6560: .4byte 0x02037282 +_081A6564: .4byte 0x03005AF0 +_081A6568: .4byte 0x00000E78 +_081A656C: .4byte 0x02024190 +_081A6570: .4byte 0x00000E74 +_081A6574: .4byte 0x085ADBF4 +_081A6578: .4byte 0x00000E79 +_081A657C: .4byte 0x020243E8 +_081A6580: .4byte 0x00000E9D + thumb_func_end SetPlayerAndOpponentParties + + thumb_func_start GenerateInitialRentalMons +GenerateInitialRentalMons: @ 0x081A6584 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x4c + ldr r1, _081A662C + ldr r0, _081A6630 + str r0, [r1] + mov r0, sp + adds r0, #0xc + str r0, [sp, #0x38] + mov r1, sp + adds r1, #0x18 + str r1, [sp, #0x3c] + ldr r2, _081A6634 + mov sb, r2 + movs r2, #0 + adds r3, r1, #0 + adds r1, r0, #0 + mov r0, sp + movs r4, #5 + mov r8, r4 +_081A65B2: + strh r2, [r0] + strh r2, [r1] + strh r2, [r3] + adds r3, #2 + adds r1, #2 + adds r0, #2 + movs r5, #1 + rsbs r5, r5, #0 + add r8, r5 + mov r4, r8 + cmp r4, #0 + bge _081A65B2 + mov r5, sb + ldr r0, [r5] + ldr r7, _081A6638 + adds r0, r0, r7 + ldrb r4, [r0] + lsls r4, r4, #0x1e + lsrs r4, r4, #0x1e + ldr r6, _081A663C + adds r0, r6, #0 + bl VarGet + lsls r0, r0, #0x18 + ldr r1, [r5] + lsls r4, r4, #1 + lsrs r0, r0, #0x16 + adds r4, r4, r0 + ldr r5, _081A6640 + adds r1, r1, r5 + adds r1, r1, r4 + ldrh r0, [r1] + movs r1, #7 + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x24] + adds r0, r6, #0 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r2, #0 + cmp r0, #1 + bne _081A6610 + movs r2, #1 +_081A6610: + ldr r1, _081A6644 + ldr r0, _081A6648 + str r0, [r1] + mov r1, sb + ldr r0, [r1] + adds r0, r0, r7 + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _081A664C + movs r4, #1 + str r4, [sp, #0x28] + b _081A6650 + .align 2, 0 +_081A662C: .4byte 0x0203B954 +_081A6630: .4byte 0x085B4A10 +_081A6634: .4byte 0x03005AF0 +_081A6638: .4byte 0x00000CA9 +_081A663C: .4byte 0x000040CE +_081A6640: .4byte 0x00000DE2 +_081A6644: .4byte 0x0203B958 +_081A6648: .4byte 0x085B8700 +_081A664C: + movs r5, #0 + str r5, [sp, #0x28] +_081A6650: + adds r0, r2, #0 + ldr r1, [sp, #0x28] + bl GetNumPastRentalsRank + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x2c] + movs r0, #0 + mov sl, r0 + mov r8, r0 + ldr r1, [sp, #0x3c] + str r1, [sp, #0x40] + mov r2, sp + str r2, [sp, #0x44] + lsls r4, r0, #1 + str r4, [sp, #0x30] + ldr r5, [sp, #0x38] + adds r5, r5, r4 + str r5, [sp, #0x34] +_081A6676: + ldr r0, [sp, #0x2c] + cmp r8, r0 + bge _081A6684 + ldr r0, [sp, #0x28] + ldr r1, [sp, #0x24] + movs r2, #1 + b _081A668A +_081A6684: + ldr r0, [sp, #0x28] + ldr r1, [sp, #0x24] + movs r2, #0 +_081A668A: + bl GetMonSetId + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + ldr r0, _081A6724 + ldr r1, [r0] + lsls r2, r7, #4 + adds r4, r2, r1 + ldrh r1, [r4] + mov sb, r2 + cmp r1, #0xc9 + beq _081A677A + movs r3, #0 + mov r2, r8 + adds r6, r3, r2 + cmp r3, r6 + bge _081A66E8 + ldr r5, [sp, #0x34] + ldrh r0, [r5] + cmp r0, r7 + beq _081A66E8 + mov ip, r4 + adds r2, r1, #0 + lsls r4, r3, #1 + ldr r1, [sp, #0x30] + add r1, sp + str r6, [sp, #0x48] +_081A66C0: + ldrh r0, [r1] + cmp r0, r2 + bne _081A66D2 + mov r0, sl + cmp r0, #0 + bne _081A66E8 + mov r5, ip + ldrh r5, [r5] + mov sl, r5 +_081A66D2: + adds r4, #2 + adds r1, #2 + adds r3, #1 + ldr r0, [sp, #0x48] + cmp r3, r0 + bge _081A66E8 + ldr r5, [sp, #0x38] + adds r0, r5, r4 + ldrh r0, [r0] + cmp r0, r7 + bne _081A66C0 +_081A66E8: + cmp r3, r6 + bne _081A677A + movs r3, #0 + cmp r3, r6 + bge _081A6734 + ldr r0, _081A6728 + mov ip, r0 + ldr r1, [sp, #0x30] + ldr r2, [sp, #0x3c] + adds r5, r1, r2 +_081A66FC: + ldrh r4, [r5] + cmp r4, #0 + beq _081A672C + ldr r1, _081A6724 + ldr r0, [r1] + mov r2, sb + adds r1, r2, r0 + ldrb r0, [r1, #0xa] + lsls r0, r0, #1 + add r0, ip + ldrh r0, [r0] + cmp r4, r0 + bne _081A672C + ldrh r0, [r1] + cmp r0, sl + bne _081A6734 + movs r4, #0 + mov sl, r4 + b _081A6734 + .align 2, 0 +_081A6724: .4byte 0x0203B958 +_081A6728: .4byte 0x085ADBF4 +_081A672C: + adds r5, #2 + adds r3, #1 + cmp r3, r6 + blt _081A66FC +_081A6734: + cmp r3, r6 + bne _081A677A + ldr r0, _081A6794 + ldr r1, [r0] + mov r5, r8 + lsls r3, r5, #1 + adds r0, r3, r5 + lsls r0, r0, #2 + adds r1, r1, r0 + movs r0, #0xe7 + lsls r0, r0, #4 + adds r1, r1, r0 + strh r7, [r1] + ldr r2, _081A6798 + ldr r1, [r2] + add r1, sb + ldrh r0, [r1] + ldr r4, [sp, #0x44] + strh r0, [r4] + ldr r2, _081A679C + ldrb r0, [r1, #0xa] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + ldr r5, [sp, #0x40] + strh r0, [r5] + ldr r0, [sp, #0x38] + adds r3, r0, r3 + strh r7, [r3] + adds r5, #2 + str r5, [sp, #0x40] + adds r4, #2 + str r4, [sp, #0x44] + movs r1, #1 + add r8, r1 +_081A677A: + mov r2, r8 + cmp r2, #6 + beq _081A6782 + b _081A6676 +_081A6782: + add sp, #0x4c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A6794: .4byte 0x03005AF0 +_081A6798: .4byte 0x0203B958 +_081A679C: .4byte 0x085ADBF4 + thumb_func_end GenerateInitialRentalMons + + thumb_func_start GetOpponentMostCommonMonType +GetOpponentMostCommonMonType: @ 0x081A67A0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x18 + ldr r1, _081A6830 + ldr r0, _081A6834 + str r0, [r1] + movs r4, #0 + add r5, sp, #0x14 + ldr r7, _081A6838 + movs r1, #0 +_081A67B6: + mov r2, sp + adds r0, r2, r4 + strb r1, [r0] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x11 + bls _081A67B6 + movs r4, #0 + ldr r0, _081A683C + mov r8, r0 + ldr r0, _081A6830 + ldr r6, [r0] + ldr r1, _081A6840 + mov ip, r1 +_081A67D4: + lsls r0, r4, #1 + add r0, r8 + ldrh r0, [r0] + lsls r0, r0, #4 + adds r0, r0, r6 + ldrh r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + mov r2, ip + adds r3, r0, r2 + ldrb r2, [r3, #6] + mov r0, sp + adds r1, r0, r2 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldrb r1, [r3, #7] + cmp r2, r1 + beq _081A6808 + ldrb r0, [r3, #7] + mov r2, sp + adds r1, r2, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_081A6808: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #2 + bls _081A67D4 + movs r0, #0 + strb r0, [r5] + strb r0, [r5, #1] + movs r4, #1 + adds r3, r5, #0 +_081A681C: + ldrb r0, [r3] + add r0, sp + mov r2, sp + adds r1, r2, r4 + ldrb r2, [r0] + ldrb r0, [r1] + cmp r2, r0 + bhs _081A6844 + strb r4, [r5] + b _081A684A + .align 2, 0 +_081A6830: .4byte 0x0203B958 +_081A6834: .4byte 0x085B8700 +_081A6838: .4byte 0x02037290 +_081A683C: .4byte 0x03005FD8 +_081A6840: .4byte 0x082F0D54 +_081A6844: + cmp r2, r0 + bne _081A684A + strb r4, [r3, #1] +_081A684A: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x11 + bls _081A681C + ldrb r1, [r5] + mov r4, sp + adds r0, r4, r1 + ldrb r2, [r0] + cmp r2, #0 + beq _081A6872 + ldrb r3, [r5, #1] + adds r0, r4, r3 + ldrb r0, [r0] + cmp r2, r0 + bhi _081A686E + cmp r1, r3 + bne _081A6872 +_081A686E: + strh r1, [r7] + b _081A6876 +_081A6872: + movs r0, #0x12 + strh r0, [r7] +_081A6876: + add sp, #0x18 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end GetOpponentMostCommonMonType + + thumb_func_start GetOpponentBattleStyle +GetOpponentBattleStyle: @ 0x081A6884 + push {r4, r5, r6, r7, lr} + sub sp, #8 + movs r7, #0 + ldr r1, _081A6928 + ldr r0, _081A692C + str r0, [r1] + movs r4, #0 + movs r1, #0 +_081A6894: + mov r2, sp + adds r0, r2, r4 + strb r1, [r0] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #7 + bls _081A6894 + movs r4, #0 +_081A68A6: + ldr r1, _081A6930 + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r6, [r0] + movs r5, #0 +_081A68B0: + ldr r0, _081A6928 + ldr r1, [r0] + lsls r0, r6, #4 + adds r0, r0, r1 + lsls r1, r5, #1 + adds r0, #2 + adds r0, r0, r1 + ldrh r0, [r0] + bl GetMoveBattleStyle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r2, sp + adds r1, r2, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #3 + bls _081A68B0 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #2 + bls _081A68A6 + ldr r1, _081A6934 + movs r0, #0 + strh r0, [r1] + movs r4, #1 + adds r5, r1, #0 + ldr r3, _081A6938 + adds r2, r5, #0 +_081A68F4: + mov r1, sp + adds r0, r1, r4 + subs r1, r4, #1 + adds r1, r1, r3 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + blo _081A690C + strh r4, [r2] + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 +_081A690C: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #7 + bls _081A68F4 + cmp r7, #2 + bls _081A691E + movs r0, #8 + strh r0, [r5] +_081A691E: + add sp, #8 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A6928: .4byte 0x0203B958 +_081A692C: .4byte 0x085B8700 +_081A6930: .4byte 0x03005FD8 +_081A6934: .4byte 0x02037290 +_081A6938: .4byte 0x085DD7F8 + thumb_func_end GetOpponentBattleStyle + + thumb_func_start GetMoveBattleStyle +GetMoveBattleStyle: @ 0x081A693C + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + movs r2, #0 + ldr r6, _081A6968 +_081A6946: + movs r3, #0 + lsls r0, r2, #2 + adds r0, r0, r6 + ldr r1, [r0] + ldrh r0, [r1] + adds r4, r2, #1 + cmp r0, #0 + beq _081A697C + lsls r0, r4, #0x18 + lsrs r2, r0, #0x18 +_081A695A: + lsls r0, r3, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, r5 + bne _081A696C + adds r0, r2, #0 + b _081A6986 + .align 2, 0 +_081A6968: .4byte 0x085DD93C +_081A696C: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r0, r3, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0 + bne _081A695A +_081A697C: + lsls r0, r4, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #6 + bls _081A6946 + movs r0, #0 +_081A6986: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end GetMoveBattleStyle + + thumb_func_start InBattleFactory +InBattleFactory: @ 0x081A698C + push {lr} + movs r2, #0 + ldr r1, _081A69AC + ldr r3, _081A69B0 + adds r0, r3, #0 + ldrh r1, [r1, #0x12] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bhi _081A69A4 + movs r2, #1 +_081A69A4: + adds r0, r2, #0 + pop {r1} + bx r1 + .align 2, 0 +_081A69AC: .4byte 0x02036FB8 +_081A69B0: .4byte 0xFFFFFEA5 + thumb_func_end InBattleFactory + + thumb_func_start RestorePlayerPartyHeldItems +RestorePlayerPartyHeldItems: @ 0x081A69B4 + push {r4, lr} + ldr r0, _081A69D0 + ldr r0, [r0] + ldr r1, _081A69D4 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + cmp r0, #2 + beq _081A69E0 + ldr r1, _081A69D8 + ldr r0, _081A69DC + b _081A69E4 + .align 2, 0 +_081A69D0: .4byte 0x03005AF0 +_081A69D4: .4byte 0x00000CA9 +_081A69D8: .4byte 0x0203B958 +_081A69DC: .4byte 0x085B8700 +_081A69E0: + ldr r1, _081A6A2C + ldr r0, _081A6A30 +_081A69E4: + str r0, [r1] + movs r4, #0 +_081A69E8: + movs r0, #0x64 + muls r0, r4, r0 + ldr r1, _081A6A34 + adds r0, r0, r1 + ldr r1, _081A6A38 + ldr r2, [r1] + lsls r1, r4, #1 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r2, r2, r1 + movs r1, #0xe7 + lsls r1, r1, #4 + adds r2, r2, r1 + ldrh r2, [r2] + ldr r1, _081A6A2C + ldr r1, [r1] + lsls r2, r2, #4 + adds r2, r2, r1 + ldrb r2, [r2, #0xa] + lsls r2, r2, #1 + ldr r1, _081A6A3C + adds r2, r2, r1 + movs r1, #0xc + bl SetMonData + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #2 + bls _081A69E8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081A6A2C: .4byte 0x0203B958 +_081A6A30: .4byte 0x085BCF70 +_081A6A34: .4byte 0x02024190 +_081A6A38: .4byte 0x03005AF0 +_081A6A3C: .4byte 0x085ADBF4 + thumb_func_end RestorePlayerPartyHeldItems + + thumb_func_start GetFactoryMonFixedIV +GetFactoryMonFixedIV: @ 0x081A6A40 + push {lr} + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + rsbs r2, r1, #0 + orrs r2, r1 + lsrs r2, r2, #0x1f + lsrs r1, r0, #0x18 + cmp r1, #8 + bls _081A6A56 + movs r1, #7 +_081A6A56: + ldr r0, _081A6A64 + lsls r1, r1, #1 + adds r1, r2, r1 + adds r1, r1, r0 + ldrb r0, [r1] + pop {r1} + bx r1 + .align 2, 0 +_081A6A64: .4byte 0x085DD9BC + thumb_func_end GetFactoryMonFixedIV + + thumb_func_start FillFactoryBrainParty +FillFactoryBrainParty: @ 0x081A6A68 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x34 + ldr r4, _081A6C68 + ldr r0, [r4] + ldr r1, _081A6C6C + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + str r0, [sp, #0x2c] + ldr r0, _081A6C70 + bl VarGet + lsls r0, r0, #0x18 + ldr r1, [r4] + ldr r3, [sp, #0x2c] + lsls r2, r3, #1 + lsrs r0, r0, #0x16 + adds r2, r2, r0 + ldr r7, _081A6C74 + adds r1, r1, r7 + adds r1, r1, r2 + ldrh r0, [r1] + movs r1, #7 + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + str r1, [sp, #0x30] + movs r2, #0x80 + lsls r2, r2, #0x12 + adds r0, r0, r2 + lsrs r0, r0, #0x18 + movs r1, #0 + bl GetFactoryMonFixedIV + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x24] + bl SetFacilityPtrsGetLevel + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x20] + movs r3, #0 + mov sb, r3 + ldr r1, [r4] + ldrb r4, [r1, #0xa] + ldrb r0, [r1, #0xb] + lsls r0, r0, #8 + orrs r4, r0 + ldrb r0, [r1, #0xc] + lsls r0, r0, #0x10 + orrs r4, r0 + ldrb r0, [r1, #0xd] + lsls r0, r0, #0x18 + orrs r4, r0 + str r4, [sp, #0x28] +_081A6AE4: + ldr r0, [sp, #0x2c] + ldr r1, [sp, #0x30] + movs r2, #0 + bl GetMonSetId + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r7, _081A6C78 + ldr r1, [r7] + lsls r0, r5, #4 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0xc9 + bne _081A6B02 + b _081A6C50 +_081A6B02: + ldr r0, [sp, #0x20] + cmp r0, #0x32 + bne _081A6B10 + ldr r0, _081A6C7C + cmp r5, r0 + bls _081A6B10 + b _081A6C50 +_081A6B10: + movs r2, #0 + ldr r1, _081A6C68 + ldr r0, [r1] + movs r3, #0xe7 + lsls r3, r3, #4 + adds r0, r0, r3 + ldrh r0, [r0] + cmp r5, r0 + beq _081A6B3A + adds r4, r1, #0 + movs r1, #0 +_081A6B26: + adds r1, #0xc + adds r2, #1 + cmp r2, #5 + bgt _081A6B3A + ldr r0, [r4] + adds r0, r0, r1 + adds r0, r0, r3 + ldrh r0, [r0] + cmp r5, r0 + bne _081A6B26 +_081A6B3A: + cmp r2, #6 + beq _081A6B40 + b _081A6C50 +_081A6B40: + movs r4, #0 + cmp r4, sb + bge _081A6B74 + add r2, sp, #0xc + ldr r7, _081A6C78 + ldr r0, [r7] + lsls r1, r5, #4 + adds r0, r1, r0 + ldrh r2, [r2] + adds r7, r1, #0 + ldrh r0, [r0] + cmp r2, r0 + beq _081A6B74 + ldr r6, _081A6C78 + adds r3, r7, #0 + add r2, sp, #0xc +_081A6B60: + adds r2, #2 + adds r4, #1 + cmp r4, sb + bge _081A6B74 + ldr r0, [r6] + adds r0, r3, r0 + ldrh r1, [r2] + ldrh r0, [r0] + cmp r1, r0 + bne _081A6B60 +_081A6B74: + cmp r4, sb + bne _081A6C50 + movs r4, #0 + cmp r4, sb + bge _081A6BA4 + ldr r7, _081A6C80 + ldr r6, _081A6C78 + add r2, sp, #0x14 + lsls r3, r5, #4 +_081A6B86: + ldrh r1, [r2] + cmp r1, #0 + beq _081A6B9C + ldr r0, [r6] + adds r0, r3, r0 + ldrb r0, [r0, #0xa] + lsls r0, r0, #1 + adds r0, r0, r7 + ldrh r0, [r0] + cmp r1, r0 + beq _081A6BA4 +_081A6B9C: + adds r2, #2 + adds r4, #1 + cmp r4, sb + blt _081A6B86 +_081A6BA4: + cmp r4, sb + bne _081A6C50 + mov r0, sb + lsls r2, r0, #1 + mov r1, sp + adds r1, r1, r2 + adds r1, #0xc + ldr r3, _081A6C78 + ldr r4, [r3] + lsls r5, r5, #4 + mov r8, r5 + add r4, r8 + ldrh r0, [r4] + strh r0, [r1] + add r1, sp, #0x14 + adds r1, r1, r2 + ldr r2, _081A6C80 + ldrb r0, [r4, #0xa] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r1] + movs r0, #0x64 + mov r5, sb + muls r5, r0, r5 + ldr r6, _081A6C84 + adds r0, r5, r6 + ldrh r1, [r4] + ldr r7, [sp, #0x20] + lsls r2, r7, #0x18 + ldrb r3, [r4, #0xc] + ldr r7, [sp, #0x24] + str r7, [sp] + ldrb r4, [r4, #0xb] + str r4, [sp, #4] + ldr r4, [sp, #0x28] + str r4, [sp, #8] + lsrs r2, r2, #0x18 + bl CreateMonWithEVSpreadNatureOTID + add r0, sp, #0x1c + movs r7, #0 + strb r7, [r0] + movs r4, #0 + mov r7, r8 + mov sl, r0 + movs r0, #1 + add r0, sb + mov r8, r0 +_081A6C06: + ldr r1, _081A6C78 + ldr r0, [r1] + adds r0, r7, r0 + lsls r1, r4, #1 + adds r0, #2 + adds r0, r0, r1 + ldrh r1, [r0] + lsls r2, r4, #0x18 + lsrs r2, r2, #0x18 + adds r0, r5, r6 + bl SetMonMoveAvoidReturn + adds r4, #1 + cmp r4, #3 + ble _081A6C06 + movs r0, #0x64 + mov r4, sb + muls r4, r0, r4 + ldr r0, _081A6C84 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x20 + mov r2, sl + bl SetMonData + ldr r2, _081A6C78 + ldr r0, [r2] + adds r0, r7, r0 + ldrb r2, [r0, #0xa] + lsls r2, r2, #1 + ldr r0, _081A6C80 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0xc + bl SetMonData + mov sb, r8 +_081A6C50: + mov r3, sb + cmp r3, #3 + beq _081A6C58 + b _081A6AE4 +_081A6C58: + add sp, #0x34 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A6C68: .4byte 0x03005AF0 +_081A6C6C: .4byte 0x00000CA9 +_081A6C70: .4byte 0x000040CE +_081A6C74: .4byte 0x00000DE2 +_081A6C78: .4byte 0x0203B958 +_081A6C7C: .4byte 0x00000351 +_081A6C80: .4byte 0x085ADBF4 +_081A6C84: .4byte 0x020243E8 + thumb_func_end FillFactoryBrainParty + + thumb_func_start GetMonSetId +GetMonSetId: @ 0x081A6C88 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r4, #8 + rsbs r1, r0, #0 + orrs r1, r0 + asrs r1, r1, #0x1f + ands r1, r4 + adds r4, r1, #0 + cmp r3, #6 + bhi _081A6CC4 + cmp r2, #0 + beq _081A6CB8 + ldr r2, _081A6CB4 + adds r1, r1, r3 + adds r1, #1 + b _081A6CD0 + .align 2, 0 +_081A6CB4: .4byte 0x085DD9CC +_081A6CB8: + ldr r2, _081A6CC0 + adds r1, r1, r3 + b _081A6CD0 + .align 2, 0 +_081A6CC0: .4byte 0x085DD9CC +_081A6CC4: + adds r1, r3, #0 + cmp r1, #7 + beq _081A6CCC + movs r1, #7 +_081A6CCC: + ldr r2, _081A6D04 + adds r1, r4, r1 +_081A6CD0: + lsls r1, r1, #2 + adds r0, r2, #2 + adds r0, r1, r0 + adds r1, r1, r2 + ldrh r0, [r0] + ldrh r4, [r1] + subs r0, r0, r4 + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r5, #0 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r4, r0, r4 + lsls r4, r4, #0x10 + lsrs r0, r4, #0x10 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081A6D04: .4byte 0x085DD9CC + thumb_func_end GetMonSetId + + thumb_func_start GetNumPastRentalsRank +GetNumPastRentalsRank: @ 0x081A6D08 + push {lr} + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + ldr r2, _081A6D44 + ldr r2, [r2] + lsrs r1, r1, #0x17 + lsrs r0, r0, #0x16 + adds r1, r1, r0 + ldr r0, _081A6D48 + adds r2, r2, r0 + adds r2, r2, r1 + ldrb r1, [r2] + movs r0, #0 + cmp r1, #0xe + bls _081A6D40 + movs r0, #1 + cmp r1, #0x15 + bls _081A6D40 + movs r0, #2 + cmp r1, #0x1c + bls _081A6D40 + movs r0, #3 + cmp r1, #0x23 + bls _081A6D40 + movs r0, #5 + cmp r1, #0x2a + bhi _081A6D40 + movs r0, #4 +_081A6D40: + pop {r1} + bx r1 + .align 2, 0 +_081A6D44: .4byte 0x03005AF0 +_081A6D48: .4byte 0x00000DF2 + thumb_func_end GetNumPastRentalsRank + + thumb_func_start GetAiScriptsInBattleFactory +GetAiScriptsInBattleFactory: @ 0x081A6D4C + push {r4, r5, lr} + ldr r5, _081A6D94 + ldr r0, [r5] + ldr r1, _081A6D98 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r4, r0, #0x1e + cmp r4, #2 + beq _081A6D90 + ldr r0, _081A6D9C + bl VarGet + lsls r0, r0, #0x10 + ldr r1, [r5] + lsls r2, r4, #1 + lsrs r0, r0, #0xe + adds r2, r2, r0 + ldr r0, _081A6DA0 + adds r1, r1, r0 + adds r1, r1, r2 + ldrh r0, [r1] + movs r1, #7 + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _081A6DA4 + ldrh r1, [r0] + ldr r0, _081A6DA8 + cmp r1, r0 + beq _081A6DB0 + cmp r2, #1 + bgt _081A6DAC +_081A6D90: + movs r0, #0 + b _081A6DB6 + .align 2, 0 +_081A6D94: .4byte 0x03005AF0 +_081A6D98: .4byte 0x00000CA9 +_081A6D9C: .4byte 0x000040CE +_081A6DA0: .4byte 0x00000DE2 +_081A6DA4: .4byte 0x0203886A +_081A6DA8: .4byte 0x000003FE +_081A6DAC: + cmp r2, #3 + ble _081A6DB4 +_081A6DB0: + movs r0, #7 + b _081A6DB6 +_081A6DB4: + movs r0, #1 +_081A6DB6: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end GetAiScriptsInBattleFactory + + thumb_func_start SetMonMoveAvoidReturn +SetMonMoveAvoidReturn: @ 0x081A6DBC + push {lr} + lsls r1, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsrs r1, r1, #0x10 + cmp r1, #0xd8 + bne _081A6DCC + movs r1, #0xda +_081A6DCC: + bl SetMonMoveSlot + pop {r0} + bx r0 + thumb_func_end SetMonMoveAvoidReturn + diff --git a/asm/battle_factory_screen.s b/asm/battle_factory_screen.s new file mode 100644 index 0000000..64ed86d --- /dev/null +++ b/asm/battle_factory_screen.s @@ -0,0 +1,10919 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_0819A0EC +sub_0819A0EC: @ 0x0819A0EC + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r4, [r5, #5] + lsrs r4, r4, #4 + movs r0, #0x65 + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsrs r0, r0, #0x18 + cmp r4, r0 + bne _0819A15A + adds r0, r5, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0819A150 + ldrh r1, [r5, #0x2e] + movs r2, #0x2e + ldrsh r0, [r5, r2] + cmp r0, #0 + beq _0819A124 + subs r0, r1, #1 + strh r0, [r5, #0x2e] + b _0819A162 +_0819A124: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #5 + bl __umodsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0819A146 + adds r0, r5, #0 + movs r1, #0 + bl StartSpriteAnim + movs r0, #0x20 + strh r0, [r5, #0x2e] + b _0819A162 +_0819A146: + adds r0, r5, #0 + movs r1, #1 + bl StartSpriteAnim + b _0819A162 +_0819A150: + adds r0, r5, #0 + movs r1, #1 + bl StartSpriteAnimIfDifferent + b _0819A162 +_0819A15A: + adds r0, r5, #0 + movs r1, #0 + bl StartSpriteAnimIfDifferent +_0819A162: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_0819A0EC + + thumb_func_start Select_CB2 +Select_CB2: @ 0x0819A168 + push {lr} + bl AnimateSprites + bl BuildOamBuffer + bl RunTextPrinters + bl UpdatePaletteFade + bl RunTasks + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Select_CB2 + + thumb_func_start Select_VblankCb +Select_VblankCb: @ 0x0819A184 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Select_VblankCb + + thumb_func_start DoBattleFactorySelectScreen +DoBattleFactorySelectScreen: @ 0x0819A198 + push {lr} + ldr r0, _0819A1AC + movs r1, #0 + str r1, [r0] + ldr r0, _0819A1B0 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_0819A1AC: .4byte 0x03001278 +_0819A1B0: .4byte 0x0819A1B5 + thumb_func_end DoBattleFactorySelectScreen + + thumb_func_start CB2_InitSelectScreen +CB2_InitSelectScreen: @ 0x0819A1B4 + push {r4, r5, lr} + sub sp, #0xc + ldr r0, _0819A1D4 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0xa + bls _0819A1C8 + b _0819A62E +_0819A1C8: + lsls r0, r0, #2 + ldr r1, _0819A1D8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0819A1D4: .4byte 0x03002360 +_0819A1D8: .4byte 0x0819A1DC +_0819A1DC: @ jump table + .4byte _0819A208 @ case 0 + .4byte _0819A260 @ case 1 + .4byte _0819A33C @ case 2 + .4byte _0819A41C @ case 3 + .4byte _0819A46C @ case 4 + .4byte _0819A508 @ case 5 + .4byte _0819A544 @ case 6 + .4byte _0819A54C @ case 7 + .4byte _0819A564 @ case 8 + .4byte _0819A57C @ case 9 + .4byte _0819A59C @ case 10 +_0819A208: + ldr r4, _0819A250 + ldr r0, [r4] + cmp r0, #0 + beq _0819A218 + bl Free + movs r0, #0 + str r0, [r4] +_0819A218: + movs r0, #0 + bl SetHBlankCallback + movs r0, #0 + bl SetVBlankCallback + movs r0, #0 + str r0, [sp, #8] + movs r1, #0xc0 + lsls r1, r1, #0x13 + ldr r2, _0819A254 + add r0, sp, #8 + bl CpuSet + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _0819A258 + movs r0, #0 + movs r2, #3 + bl InitBgsFromTemplates + ldr r0, _0819A25C + bl InitWindows + bl DeactivateAllTextPrinters + b _0819A586 + .align 2, 0 +_0819A250: .4byte 0x0203CB08 +_0819A254: .4byte 0x05006000 +_0819A258: .4byte 0x085DBC30 +_0819A25C: .4byte 0x085DBC3C +_0819A260: + ldr r5, _0819A328 + movs r4, #0x88 + lsls r4, r4, #3 + adds r0, r4, #0 + bl Alloc + str r0, [r5] + ldr r5, _0819A32C + adds r0, r4, #0 + bl AllocZeroed + str r0, [r5] + ldr r5, _0819A330 + movs r4, #0x80 + lsls r4, r4, #4 + adds r0, r4, #0 + bl Alloc + str r0, [r5] + ldr r5, _0819A334 + adds r0, r4, #0 + bl AllocZeroed + str r0, [r5] + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + movs r0, #0x4c + movs r1, #0 + bl SetGpuReg + movs r0, #0x40 + movs r1, #0 + bl SetGpuReg + movs r0, #0x44 + movs r1, #0 + bl SetGpuReg + movs r0, #0x42 + movs r1, #0 + bl SetGpuReg + movs r0, #0x46 + movs r1, #0 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0 + bl SetGpuReg + movs r0, #0x4a + movs r1, #0 + bl SetGpuReg + ldr r1, _0819A338 + movs r3, #0x87 + lsls r3, r3, #3 + adds r1, r1, r3 + b _0819A58E + .align 2, 0 +_0819A328: .4byte 0x0203CAF8 +_0819A32C: .4byte 0x0203CAFC +_0819A330: .4byte 0x0203CB00 +_0819A334: .4byte 0x0203CB04 +_0819A338: .4byte 0x03002360 +_0819A33C: + bl ResetPaletteFade + bl ResetSpriteData + bl ResetTasks + bl FreeAllSpritePalettes + ldr r0, _0819A3EC + ldr r5, _0819A3F0 + ldr r1, [r5] + movs r2, #0x88 + lsls r2, r2, #2 + bl CpuSet + ldr r0, _0819A3F4 + ldr r4, _0819A3F8 + ldr r1, [r4] + movs r2, #0x30 + bl CpuSet + ldr r1, [r5] + movs r2, #0x88 + lsls r2, r2, #3 + movs r0, #1 + movs r3, #0 + bl LoadBgTiles + ldr r1, [r4] + movs r0, #3 + movs r2, #0x60 + movs r3, #0 + bl LoadBgTiles + ldr r0, _0819A3FC + ldr r4, _0819A400 + ldr r1, [r4] + movs r2, #0x80 + lsls r2, r2, #3 + bl CpuSet + ldr r1, [r4] + movs r2, #0x80 + lsls r2, r2, #4 + movs r0, #1 + movs r3, #0 + bl LoadBgTilemap + ldr r0, _0819A404 + movs r1, #0 + movs r2, #0x40 + bl LoadPalette + ldr r4, _0819A408 + adds r0, r4, #0 + movs r1, #0xf0 + movs r2, #8 + bl LoadPalette + adds r0, r4, #0 + movs r1, #0xe0 + movs r2, #0xa + bl LoadPalette + ldr r0, _0819A40C + ldr r1, [r0] + ldrb r0, [r1, #6] + cmp r0, #1 + bne _0819A3D8 + ldr r0, _0819A410 + movs r2, #0xa9 + lsls r2, r2, #2 + adds r1, r1, r2 + ldrh r1, [r1] + movs r3, #0xe4 + lsls r3, r3, #1 + adds r0, r0, r3 + strh r1, [r0] +_0819A3D8: + ldr r0, _0819A414 + movs r1, #0x20 + movs r2, #4 + bl LoadPalette + ldr r1, _0819A418 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _0819A58E + .align 2, 0 +_0819A3EC: .4byte 0x085DAD38 +_0819A3F0: .4byte 0x0203CAF8 +_0819A3F4: .4byte 0x085DBA78 +_0819A3F8: .4byte 0x0203CAFC +_0819A3FC: .4byte 0x085DB178 +_0819A400: .4byte 0x0203CB00 +_0819A404: .4byte 0x085DBAD8 +_0819A408: .4byte 0x085DBC74 +_0819A40C: .4byte 0x03001278 +_0819A410: .4byte 0x020373B4 +_0819A414: .4byte 0x085DBB18 +_0819A418: .4byte 0x03002360 +_0819A41C: + ldr r0, _0819A464 + ldr r1, [r0] + movs r0, #3 + bl SetBgTilemapBuffer + ldr r5, _0819A468 + movs r4, #8 + str r4, [sp] + str r4, [sp, #4] + movs r0, #3 + adds r1, r5, #0 + movs r2, #0xb + movs r3, #4 + bl CopyToBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + movs r0, #3 + adds r1, r5, #0 + movs r2, #2 + movs r3, #4 + bl CopyToBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + movs r0, #3 + adds r1, r5, #0 + movs r2, #0x14 + movs r3, #4 + bl CopyToBgTilemapBufferRect + movs r0, #3 + bl CopyBgTilemapBufferToVram + b _0819A586 + .align 2, 0 +_0819A464: .4byte 0x0203CB04 +_0819A468: .4byte 0x085DB978 +_0819A46C: + ldr r0, _0819A4D8 + bl LoadSpritePalettes + ldr r0, _0819A4DC + bl LoadSpriteSheets + ldr r0, _0819A4E0 + bl LoadCompressedSpriteSheet + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + ldr r0, _0819A4E4 + bl SetVBlankCallback + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + movs r1, #0x9a + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + ldr r0, _0819A4E8 + ldr r0, [r0] + ldrb r0, [r0, #6] + cmp r0, #1 + bne _0819A4F4 + movs r0, #0x58 + movs r1, #0x98 + movs r2, #0x20 + movs r3, #0x60 + bl Select_SetWinRegs + movs r0, #3 + bl ShowBg + ldr r1, _0819A4EC + movs r0, #0x50 + bl SetGpuReg + ldr r1, _0819A4F0 + movs r0, #0x52 + bl SetGpuReg + b _0819A4FA + .align 2, 0 +_0819A4D8: .4byte 0x085DBB70 +_0819A4DC: .4byte 0x085DBB38 +_0819A4E0: .4byte 0x085DBB60 +_0819A4E4: .4byte 0x0819A185 +_0819A4E8: .4byte 0x03001278 +_0819A4EC: .4byte 0x00001248 +_0819A4F0: .4byte 0x0000040B +_0819A4F4: + movs r0, #3 + bl HideBg +_0819A4FA: + ldr r1, _0819A504 + movs r3, #0x87 + lsls r3, r3, #3 + adds r1, r1, r3 + b _0819A58E + .align 2, 0 +_0819A504: .4byte 0x03002360 +_0819A508: + ldr r4, _0819A538 + ldr r1, [r4] + ldrb r0, [r1, #6] + cmp r0, #1 + bne _0819A518 + ldr r0, _0819A53C + ldrb r0, [r0] + strb r0, [r1, #3] +_0819A518: + bl Select_InitMonsData + bl Select_InitAllSprites + ldr r0, [r4] + ldrb r0, [r0, #6] + cmp r0, #1 + bne _0819A52C + bl Select_ShowSummaryMonSprite +_0819A52C: + ldr r1, _0819A540 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _0819A58E + .align 2, 0 +_0819A538: .4byte 0x03001278 +_0819A53C: .4byte 0x0203CBEC +_0819A540: .4byte 0x03002360 +_0819A544: + bl Select_PrintSelectMonString + movs r0, #2 + b _0819A582 +_0819A54C: + bl Select_PrintMonCategory + movs r0, #5 + bl PutWindowTilemap + ldr r1, _0819A560 + movs r3, #0x87 + lsls r3, r3, #3 + adds r1, r1, r3 + b _0819A58E + .align 2, 0 +_0819A560: .4byte 0x03002360 +_0819A564: + bl Select_PrintMonSpecies + movs r0, #1 + bl PutWindowTilemap + ldr r1, _0819A578 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _0819A58E + .align 2, 0 +_0819A578: .4byte 0x03002360 +_0819A57C: + bl Select_PrintRentalPkmnString + movs r0, #0 +_0819A582: + bl PutWindowTilemap +_0819A586: + ldr r1, _0819A598 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 +_0819A58E: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0819A62E + .align 2, 0 +_0819A598: .4byte 0x03002360 +_0819A59C: + ldr r0, _0819A5E0 + movs r1, #0 + bl CreateTask + ldr r2, _0819A5E4 + ldr r1, [r2] + ldr r3, _0819A5E8 + adds r1, r1, r3 + strb r0, [r1] + ldr r3, [r2] + ldrb r5, [r3, #6] + cmp r5, #0 + bne _0819A5F4 + ldr r4, _0819A5EC + ldr r1, _0819A5E8 + adds r0, r3, r1 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r4 + strh r5, [r0, #8] + ldr r0, _0819A5F0 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r4 + strh r5, [r0, #8] + b _0819A628 + .align 2, 0 +_0819A5E0: .4byte 0x0819C385 +_0819A5E4: .4byte 0x03001278 +_0819A5E8: .4byte 0x000002A1 +_0819A5EC: .4byte 0x03005B60 +_0819A5F0: .4byte 0x0819B019 +_0819A5F4: + ldr r4, _0819A638 + ldr r2, _0819A63C + adds r0, r3, r2 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r4 + movs r2, #0 + movs r1, #1 + strh r1, [r0, #8] + ldr r1, _0819A640 + adds r0, r3, r1 + strb r2, [r0] + ldr r0, _0819A644 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r4 + movs r1, #0xd + strh r1, [r0, #8] +_0819A628: + ldr r0, _0819A648 + bl SetMainCallback2 +_0819A62E: + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0819A638: .4byte 0x03005B60 +_0819A63C: .4byte 0x000002A1 +_0819A640: .4byte 0x000002A2 +_0819A644: .4byte 0x0819ADC5 +_0819A648: .4byte 0x0819A169 + thumb_func_end CB2_InitSelectScreen + + thumb_func_start Select_InitMonsData +Select_InitMonsData: @ 0x0819A64C + push {r4, r5, lr} + ldr r5, _0819A6A0 + ldr r4, [r5] + cmp r4, #0 + bne _0819A6B2 + movs r0, #0xab + lsls r0, r0, #2 + bl AllocZeroed + str r0, [r5] + strb r4, [r0, #3] + ldr r1, [r5] + movs r0, #1 + strb r0, [r1, #5] + ldr r0, [r5] + strb r4, [r0, #6] + movs r2, #0 + movs r4, #0x6c + movs r3, #0 +_0819A672: + ldr r0, [r5] + adds r1, r2, #0 + muls r1, r4, r1 + adds r0, r0, r1 + strb r3, [r0, #0x10] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #5 + bls _0819A672 + ldr r0, _0819A6A4 + ldr r0, [r0] + ldr r1, _0819A6A8 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + cmp r0, #2 + beq _0819A6AC + movs r0, #0 + bl CreateFrontierFactorySelectableMons + b _0819A6B2 + .align 2, 0 +_0819A6A0: .4byte 0x03001278 +_0819A6A4: .4byte 0x03005AF0 +_0819A6A8: .4byte 0x00000CA9 +_0819A6AC: + movs r0, #0 + bl CreateTentFactorySelectableMons +_0819A6B2: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end Select_InitMonsData + + thumb_func_start Select_InitAllSprites +Select_InitAllSprites: @ 0x0819A6B8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r4, #0 + mov r8, r4 + ldr r7, _0819A7C8 +_0819A6C4: + lsls r1, r4, #3 + adds r1, r1, r4 + lsls r1, r1, #2 + subs r1, r1, r4 + adds r1, #0x20 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldr r0, _0819A7CC + movs r2, #0x40 + movs r3, #1 + bl CreateSprite + ldr r6, _0819A7D0 + ldr r2, [r6] + movs r5, #0x6c + adds r1, r4, #0 + muls r1, r5, r1 + adds r2, r2, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r2, #0xe] + ldrh r1, [r2, #0xe] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + mov r1, r8 + strh r1, [r0, #0x2e] + adds r0, r4, #0 + bl Select_SetBallSpritePaletteNum + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #5 + bls _0819A6C4 + ldr r0, [r6] + ldrb r1, [r0, #3] + ldr r4, _0819A7C8 + muls r1, r5, r1 + adds r0, r0, r1 + ldrh r0, [r0, #0xe] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldr r0, _0819A7D4 + movs r2, #0x20 + ldrsh r1, [r1, r2] + movs r2, #0x58 + movs r3, #0 + bl CreateSprite + ldr r1, [r6] + movs r5, #0 + strb r0, [r1, #4] + ldr r0, _0819A7D8 + movs r1, #0xb0 + movs r2, #0x70 + movs r3, #0 + bl CreateSprite + ldr r1, [r6] + strb r0, [r1, #1] + ldr r0, _0819A7DC + movs r1, #0xb0 + movs r2, #0x90 + movs r3, #0 + bl CreateSprite + ldr r1, [r6] + strb r0, [r1, #2] + ldr r0, [r6] + ldrb r1, [r0, #1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + ldr r0, [r6] + ldrb r1, [r0, #2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + ldr r0, [r6] + ldrb r1, [r0, #1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x28 + strb r5, [r0] + ldr r0, [r6] + ldrb r1, [r0, #1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x29 + strb r5, [r0] + ldr r0, [r6] + ldrb r1, [r0, #2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x28 + strb r5, [r0] + ldr r0, [r6] + ldrb r1, [r0, #2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x29 + strb r5, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0819A7C8: .4byte 0x020205AC +_0819A7CC: .4byte 0x085DBDE0 +_0819A7D0: .4byte 0x03001278 +_0819A7D4: .4byte 0x085DBDF8 +_0819A7D8: .4byte 0x085DBE10 +_0819A7DC: .4byte 0x085DBE28 + thumb_func_end Select_InitAllSprites + + thumb_func_start Select_DestroyAllSprites +Select_DestroyAllSprites: @ 0x0819A7E0 + push {r4, r5, r6, lr} + movs r4, #0 +_0819A7E4: + ldr r6, _0819A840 + ldr r1, [r6] + movs r0, #0x6c + muls r0, r4, r0 + adds r1, r1, r0 + ldrh r1, [r1, #0xe] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r5, _0819A844 + adds r0, r0, r5 + bl DestroySprite + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #5 + bls _0819A7E4 + ldr r0, [r6] + ldrb r1, [r0, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + bl DestroySprite + ldr r0, [r6] + ldrb r1, [r0, #1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + bl DestroySprite + ldr r0, [r6] + ldrb r1, [r0, #2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + bl DestroySprite + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0819A840: .4byte 0x03001278 +_0819A844: .4byte 0x020205AC + thumb_func_end Select_DestroyAllSprites + + thumb_func_start Select_UpdateBallCursorPosition +Select_UpdateBallCursorPosition: @ 0x0819A848 + push {r4, lr} + lsls r0, r0, #0x18 + cmp r0, #0 + ble _0819A868 + ldr r0, _0819A860 + ldr r1, [r0] + ldrb r3, [r1, #3] + adds r2, r0, #0 + cmp r3, #5 + beq _0819A864 + adds r0, r3, #1 + b _0819A87E + .align 2, 0 +_0819A860: .4byte 0x03001278 +_0819A864: + movs r0, #0 + b _0819A87E +_0819A868: + ldr r0, _0819A878 + ldr r1, [r0] + ldrb r3, [r1, #3] + adds r2, r0, #0 + cmp r3, #0 + beq _0819A87C + subs r0, r3, #1 + b _0819A87E + .align 2, 0 +_0819A878: .4byte 0x03001278 +_0819A87C: + movs r0, #5 +_0819A87E: + strb r0, [r1, #3] + ldr r2, [r2] + ldrb r3, [r2, #3] + ldr r4, _0819A8AC + ldrb r0, [r2, #4] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + movs r0, #0x6c + muls r0, r3, r0 + adds r2, r2, r0 + ldrh r2, [r2, #0xe] + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r0, [r0, #0x20] + strh r0, [r1, #0x20] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0819A8AC: .4byte 0x020205AC + thumb_func_end Select_UpdateBallCursorPosition + + thumb_func_start Select_UpdateMenuCursorPosition +Select_UpdateMenuCursorPosition: @ 0x0819A8B0 + push {lr} + lsls r0, r0, #0x18 + cmp r0, #0 + ble _0819A8D0 + ldr r0, _0819A8C8 + ldr r1, [r0] + ldrb r3, [r1] + adds r2, r0, #0 + cmp r3, #2 + beq _0819A8CC + adds r0, r3, #1 + b _0819A8E6 + .align 2, 0 +_0819A8C8: .4byte 0x03001278 +_0819A8CC: + movs r0, #0 + b _0819A8E6 +_0819A8D0: + ldr r0, _0819A8E0 + ldr r1, [r0] + ldrb r3, [r1] + adds r2, r0, #0 + cmp r3, #0 + beq _0819A8E4 + subs r0, r3, #1 + b _0819A8E6 + .align 2, 0 +_0819A8E0: .4byte 0x03001278 +_0819A8E4: + movs r0, #2 +_0819A8E6: + strb r0, [r1] + ldr r3, _0819A914 + ldr r2, [r2] + ldrb r0, [r2, #1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrb r0, [r2] + lsls r0, r0, #4 + adds r0, #0x70 + strh r0, [r1, #0x22] + ldrb r0, [r2, #2] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrb r0, [r2] + lsls r0, r0, #4 + adds r0, #0x70 + strh r0, [r1, #0x22] + pop {r0} + bx r0 + .align 2, 0 +_0819A914: .4byte 0x020205AC + thumb_func_end Select_UpdateMenuCursorPosition + + thumb_func_start Select_UpdateYesNoCursorPosition +Select_UpdateYesNoCursorPosition: @ 0x0819A918 + push {lr} + lsls r0, r0, #0x18 + cmp r0, #0 + ble _0819A938 + ldr r0, _0819A930 + ldr r1, [r0] + ldrb r3, [r1, #7] + adds r2, r0, #0 + cmp r3, #1 + beq _0819A934 + adds r0, r3, #1 + b _0819A94E + .align 2, 0 +_0819A930: .4byte 0x03001278 +_0819A934: + movs r0, #0 + b _0819A94E +_0819A938: + ldr r0, _0819A948 + ldr r1, [r0] + ldrb r3, [r1, #7] + adds r2, r0, #0 + cmp r3, #0 + beq _0819A94C + subs r0, r3, #1 + b _0819A94E + .align 2, 0 +_0819A948: .4byte 0x03001278 +_0819A94C: + movs r0, #1 +_0819A94E: + strb r0, [r1, #7] + ldr r3, _0819A97C + ldr r2, [r2] + ldrb r0, [r2, #1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrb r0, [r2, #7] + lsls r0, r0, #4 + adds r0, #0x70 + strh r0, [r1, #0x22] + ldrb r0, [r2, #2] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrb r0, [r2, #7] + lsls r0, r0, #4 + adds r0, #0x70 + strh r0, [r1, #0x22] + pop {r0} + bx r0 + .align 2, 0 +_0819A97C: .4byte 0x020205AC + thumb_func_end Select_UpdateYesNoCursorPosition + + thumb_func_start Select_HandleMonSelectionChange +Select_HandleMonSelectionChange: @ 0x0819A980 + push {r4, r5, r6, lr} + ldr r5, _0819A9FC + ldr r0, [r5] + ldrb r6, [r0, #3] + movs r1, #0x6c + adds r4, r6, #0 + muls r4, r1, r4 + adds r0, r0, r4 + ldrb r0, [r0, #0x10] + cmp r0, #0 + beq _0819AA00 + movs r0, #0x64 + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r1, [r5] + ldrb r0, [r1, #5] + cmp r0, #3 + bne _0819A9E4 + adds r0, r1, r4 + ldrb r0, [r0, #0x10] + cmp r0, #1 + bne _0819A9E4 + movs r2, #0 + ldrb r0, [r1, #0x10] + cmp r0, #2 + beq _0819A9D2 + movs r4, #0x6c +_0819A9BA: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #5 + bhi _0819A9D2 + ldr r0, [r5] + adds r1, r2, #0 + muls r1, r4, r1 + adds r0, r0, r1 + ldrb r0, [r0, #0x10] + cmp r0, #2 + bne _0819A9BA +_0819A9D2: + cmp r2, #6 + beq _0819AA3C + ldr r0, _0819A9FC + ldr r1, [r0] + movs r0, #0x6c + muls r0, r2, r0 + adds r1, r1, r0 + movs r0, #1 + strb r0, [r1, #0x10] +_0819A9E4: + ldr r2, _0819A9FC + ldr r1, [r2] + movs r0, #0x6c + muls r0, r6, r0 + adds r1, r1, r0 + movs r0, #0 + strb r0, [r1, #0x10] + ldr r1, [r2] + ldrb r0, [r1, #5] + subs r0, #1 + b _0819AA18 + .align 2, 0 +_0819A9FC: .4byte 0x03001278 +_0819AA00: + movs r0, #0x65 + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r0, [r5] + adds r1, r0, r4 + ldrb r0, [r0, #5] + strb r0, [r1, #0x10] + ldr r1, [r5] + ldrb r0, [r1, #5] + adds r0, #1 +_0819AA18: + strb r0, [r1, #5] + ldr r2, _0819AA44 + ldr r0, _0819AA48 + ldr r0, [r0] + movs r1, #0x6c + muls r1, r6, r1 + adds r0, r0, r1 + ldrh r0, [r0, #0xe] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + lsls r3, r3, #4 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #5] +_0819AA3C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0819AA44: .4byte 0x020205AC +_0819AA48: .4byte 0x03001278 + thumb_func_end Select_HandleMonSelectionChange + + thumb_func_start Select_SetBallSpritePaletteNum +Select_SetBallSpritePaletteNum: @ 0x0819AA4C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0819AA68 + ldr r0, [r0] + movs r1, #0x6c + muls r1, r4, r1 + adds r0, r0, r1 + ldrb r0, [r0, #0x10] + cmp r0, #0 + beq _0819AA6C + movs r0, #0x65 + b _0819AA6E + .align 2, 0 +_0819AA68: .4byte 0x03001278 +_0819AA6C: + movs r0, #0x64 +_0819AA6E: + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r2, _0819AAA0 + ldr r0, _0819AAA4 + ldr r0, [r0] + movs r1, #0x6c + muls r1, r4, r1 + adds r0, r0, r1 + ldrh r0, [r0, #0xe] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + lsls r3, r3, #4 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #5] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0819AAA0: .4byte 0x020205AC +_0819AAA4: .4byte 0x03001278 + thumb_func_end Select_SetBallSpritePaletteNum + + thumb_func_start Task_FromSelectScreenToSummaryScreen +Task_FromSelectScreenToSummaryScreen: @ 0x0819AAA8 + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _0819AACC + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r6, r0, r1 + movs r1, #8 + ldrsh r0, [r6, r1] + cmp r0, #7 + beq _0819AB04 + cmp r0, #7 + bgt _0819AAD0 + cmp r0, #6 + beq _0819AAD6 + b _0819ABF0 + .align 2, 0 +_0819AACC: .4byte 0x03005B60 +_0819AAD0: + cmp r0, #8 + beq _0819AB88 + b _0819ABF0 +_0819AAD6: + ldr r1, _0819AAFC + ldr r0, _0819AB00 + movs r2, #0xe4 + lsls r2, r2, #1 + adds r0, r0, r2 + ldrh r0, [r0] + adds r1, r1, r2 + movs r2, #0 + strh r0, [r1] + movs r0, #1 + rsbs r0, r0, #0 + str r2, [sp] + movs r1, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + movs r0, #7 + strh r0, [r6, #8] + b _0819ABF0 + .align 2, 0 +_0819AAFC: .4byte 0x020373B4 +_0819AB00: .4byte 0x020377B4 +_0819AB04: + ldr r0, _0819AB6C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _0819ABF0 + ldr r4, _0819AB70 + ldr r0, [r4] + ldr r2, _0819AB74 + adds r0, r0, r2 + ldrb r0, [r0] + bl DestroyTask + ldr r1, [r4] + movs r3, #0xa6 + lsls r3, r3, #2 + adds r0, r1, r3 + ldr r0, [r0] + movs r2, #0xa8 + lsls r2, r2, #2 + adds r1, r1, r2 + bl sub_0819F330 + bl Select_DestroyAllSprites + ldr r4, _0819AB78 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0819AB7C + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0819AB80 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0819AB84 + ldr r0, [r4] + bl Free + str r5, [r4] + bl FreeAllWindowBuffers + movs r0, #8 + strh r0, [r6, #8] + b _0819ABF0 + .align 2, 0 +_0819AB6C: .4byte 0x02037C74 +_0819AB70: .4byte 0x03001278 +_0819AB74: .4byte 0x000002A1 +_0819AB78: .4byte 0x0203CAF8 +_0819AB7C: .4byte 0x0203CAFC +_0819AB80: .4byte 0x0203CB00 +_0819AB84: .4byte 0x0203CB04 +_0819AB88: + ldr r4, _0819ABF8 + ldr r1, [r4] + ldr r0, _0819ABFC + movs r3, #0xe4 + lsls r3, r3, #1 + adds r0, r0, r3 + ldrh r0, [r0] + adds r3, #0xdc + adds r1, r1, r3 + strh r0, [r1] + adds r0, r2, #0 + bl DestroyTask + ldr r1, [r4] + movs r0, #1 + strb r0, [r1, #6] + ldr r0, [r4] + ldrb r6, [r0, #3] + ldr r4, _0819AC00 + movs r0, #0x96 + lsls r0, r0, #2 + bl AllocZeroed + str r0, [r4] + movs r4, #0 +_0819ABBA: + ldr r5, _0819AC00 + ldr r1, [r5] + movs r0, #0x64 + muls r0, r4, r0 + adds r0, r0, r1 + ldr r1, _0819ABF8 + ldr r1, [r1] + movs r2, #0x6c + muls r2, r4, r2 + adds r1, r1, r2 + adds r1, #0x14 + movs r2, #0x64 + bl memcpy + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #5 + bls _0819ABBA + ldr r1, [r5] + ldr r0, _0819AC04 + str r0, [sp] + movs r0, #1 + adds r2, r6, #0 + movs r3, #5 + bl ShowPokemonSummaryScreen +_0819ABF0: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0819ABF8: .4byte 0x03001278 +_0819ABFC: .4byte 0x020373B4 +_0819AC00: .4byte 0x0203CB08 +_0819AC04: .4byte 0x0819A1B5 + thumb_func_end Task_FromSelectScreenToSummaryScreen + + thumb_func_start Task_CloseSelectionScreen +Task_CloseSelectionScreen: @ 0x0819AC08 + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r7, _0819AC38 + ldr r0, [r7] + movs r1, #0xa8 + lsls r1, r1, #2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + beq _0819ACAE + ldr r1, _0819AC3C + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r0, #8 + ldrsh r1, [r4, r0] + cmp r1, #0 + beq _0819AC40 + cmp r1, #1 + beq _0819AC58 + b _0819ACAE + .align 2, 0 +_0819AC38: .4byte 0x03001278 +_0819AC3C: .4byte 0x03005B60 +_0819AC40: + movs r0, #1 + rsbs r0, r0, #0 + str r1, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _0819ACAE +_0819AC58: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _0819ACAE + bl Select_CopyMonsToPlayerParty + ldr r0, [r7] + ldr r1, _0819ACB8 + adds r0, r0, r1 + ldrb r0, [r0] + bl DestroyTask + bl Select_DestroyAllSprites + ldr r4, _0819ACBC + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0819ACC0 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0819ACC4 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r0, [r7] + bl Free + str r5, [r7] + bl FreeAllWindowBuffers + ldr r0, _0819ACC8 + bl SetMainCallback2 + adds r0, r6, #0 + bl DestroyTask +_0819ACAE: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0819ACB8: .4byte 0x000002A1 +_0819ACBC: .4byte 0x0203CAF8 +_0819ACC0: .4byte 0x0203CB00 +_0819ACC4: .4byte 0x0203CB04 +_0819ACC8: .4byte 0x08085B19 + thumb_func_end Task_CloseSelectionScreen + + thumb_func_start Task_HandleSelectionScreenYesNo +Task_HandleSelectionScreenYesNo: @ 0x0819ACCC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r7, _0819AD04 + ldr r0, [r7] + movs r1, #0xa8 + lsls r1, r1, #2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + beq _0819ADBA + ldr r1, _0819AD08 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r5, r0, r1 + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #5 + beq _0819AD24 + cmp r0, #5 + bgt _0819AD0C + cmp r0, #4 + beq _0819AD1A + b _0819ADBA + .align 2, 0 +_0819AD04: .4byte 0x03001278 +_0819AD08: .4byte 0x03005B60 +_0819AD0C: + cmp r0, #0xa + bne _0819ADBA + bl sub_0819C19C + movs r0, #4 + strh r0, [r5, #8] + b _0819ADBA +_0819AD1A: + bl Select_ShowYesNoOptions + movs r0, #5 + strh r0, [r5, #8] + b _0819ADBA +_0819AD24: + ldr r2, _0819AD50 + ldrh r1, [r2, #0x2e] + movs r0, #1 + mov r8, r0 + movs r6, #1 + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _0819AD58 + movs r0, #5 + bl PlaySE + ldr r0, [r7] + ldrb r4, [r0, #7] + cmp r4, #0 + bne _0819AD66 + bl sub_0819C250 + strh r4, [r5, #8] + ldr r0, _0819AD54 + str r0, [r5] + b _0819ADBA + .align 2, 0 +_0819AD50: .4byte 0x03002360 +_0819AD54: .4byte 0x0819AC09 +_0819AD58: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0819AD8C + movs r0, #5 + bl PlaySE +_0819AD66: + movs r0, #4 + bl sub_0819B5F8 + bl sub_0819B940 + ldr r0, [r7] + ldr r1, _0819AD84 + adds r0, r0, r1 + mov r1, r8 + strb r1, [r0] + strh r6, [r5, #8] + ldr r0, _0819AD88 + str r0, [r5] + b _0819ADBA + .align 2, 0 +_0819AD84: .4byte 0x000002A2 +_0819AD88: .4byte 0x0819B019 +_0819AD8C: + ldrh r1, [r2, #0x30] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0819ADA6 + movs r0, #5 + bl PlaySE + movs r0, #1 + rsbs r0, r0, #0 + bl Select_UpdateYesNoCursorPosition + b _0819ADBA +_0819ADA6: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0819ADBA + movs r0, #5 + bl PlaySE + movs r0, #1 + bl Select_UpdateYesNoCursorPosition +_0819ADBA: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end Task_HandleSelectionScreenYesNo + + thumb_func_start Task_HandleSelectionScreenMenu +Task_HandleSelectionScreenMenu: @ 0x0819ADC4 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _0819ADF0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r0, [r0, #8] + subs r0, #2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r6, r1, #0 + cmp r0, #0xb + bls _0819ADE4 + b _0819B00E +_0819ADE4: + lsls r0, r0, #2 + ldr r1, _0819ADF4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0819ADF0: .4byte 0x03005B60 +_0819ADF4: .4byte 0x0819ADF8 +_0819ADF8: @ jump table + .4byte _0819AE28 @ case 0 + .4byte _0819AE8C @ case 1 + .4byte _0819B00E @ case 2 + .4byte _0819B00E @ case 3 + .4byte _0819B00E @ case 4 + .4byte _0819B00E @ case 5 + .4byte _0819B00E @ case 6 + .4byte _0819AE5C @ case 7 + .4byte _0819B00E @ case 8 + .4byte _0819B00E @ case 9 + .4byte _0819AFA0 @ case 10 + .4byte _0819AFFC @ case 11 +_0819AE28: + ldr r0, _0819AE50 + ldr r1, [r0] + ldrb r0, [r1, #6] + cmp r0, #0 + bne _0819AE42 + ldr r2, _0819AE54 + adds r0, r1, r2 + movs r7, #0xa8 + lsls r7, r7, #2 + adds r1, r1, r7 + movs r2, #0 + bl sub_0819F1A0 +_0819AE42: + ldr r0, _0819AE58 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #9 + b _0819B00C + .align 2, 0 +_0819AE50: .4byte 0x03001278 +_0819AE54: .4byte 0x00000299 +_0819AE58: .4byte 0x03005B60 +_0819AE5C: + ldr r4, _0819AE84 + ldr r0, [r4] + movs r1, #0xa8 + lsls r1, r1, #2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + bne _0819AE6E + b _0819B00E +_0819AE6E: + bl Select_ShowMenuOptions + ldr r1, [r4] + movs r0, #0 + strb r0, [r1, #6] + ldr r1, _0819AE88 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + b _0819AFE4 + .align 2, 0 +_0819AE84: .4byte 0x03001278 +_0819AE88: .4byte 0x03005B60 +_0819AE8C: + ldr r2, _0819AEBC + ldrh r1, [r2, #0x2e] + movs r7, #1 + movs r6, #1 + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _0819AF1C + movs r0, #5 + bl PlaySE + bl Select_RunMenuOptionFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + cmp r0, #1 + bne _0819AEC8 + ldr r0, _0819AEC0 + ldr r0, [r0] + ldr r2, _0819AEC4 + adds r0, r0, r2 + b _0819AF4C + .align 2, 0 +_0819AEBC: .4byte 0x03002360 +_0819AEC0: .4byte 0x03001278 +_0819AEC4: .4byte 0x000002A2 +_0819AEC8: + cmp r0, #2 + bne _0819AEE8 + ldr r1, _0819AEE0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0xa + strh r1, [r0, #8] + ldr r1, _0819AEE4 + str r1, [r0] + b _0819B00E + .align 2, 0 +_0819AEE0: .4byte 0x03005B60 +_0819AEE4: .4byte 0x0819ACCD +_0819AEE8: + cmp r1, #3 + bne _0819AF00 + ldr r1, _0819AEFC + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0xb + strh r1, [r0, #8] + b _0819AF5A + .align 2, 0 +_0819AEFC: .4byte 0x03005B60 +_0819AF00: + ldr r1, _0819AF14 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #6 + strh r1, [r0, #8] + ldr r1, _0819AF18 + str r1, [r0] + b _0819B00E + .align 2, 0 +_0819AF14: .4byte 0x03005B60 +_0819AF18: .4byte 0x0819AAA9 +_0819AF1C: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0819AF70 + movs r0, #5 + bl PlaySE + ldr r4, _0819AF60 + ldr r1, [r4] + movs r2, #0xa6 + lsls r2, r2, #2 + adds r0, r1, r2 + ldr r0, [r0] + adds r2, #8 + adds r1, r1, r2 + movs r2, #0 + bl sub_0819F2E4 + movs r0, #3 + bl sub_0819B5F8 + ldr r0, [r4] + ldr r1, _0819AF64 + adds r0, r0, r1 +_0819AF4C: + strb r7, [r0] + ldr r1, _0819AF68 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r6, [r0, #8] +_0819AF5A: + ldr r1, _0819AF6C + str r1, [r0] + b _0819B00E + .align 2, 0 +_0819AF60: .4byte 0x03001278 +_0819AF64: .4byte 0x000002A2 +_0819AF68: .4byte 0x03005B60 +_0819AF6C: .4byte 0x0819B019 +_0819AF70: + ldrh r1, [r2, #0x30] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0819AF8A + movs r0, #5 + bl PlaySE + movs r0, #1 + rsbs r0, r0, #0 + bl Select_UpdateMenuCursorPosition + b _0819B00E +_0819AF8A: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0819B00E + movs r0, #5 + bl PlaySE + movs r0, #1 + bl Select_UpdateMenuCursorPosition + b _0819B00E +_0819AFA0: + ldr r0, _0819AFEC + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _0819B00E + ldr r4, _0819AFF0 + ldr r2, [r4] + ldrb r0, [r2, #6] + cmp r0, #1 + bne _0819AFD8 + ldr r1, _0819AFF4 + movs r7, #0xa9 + lsls r7, r7, #2 + adds r0, r2, r7 + ldrh r0, [r0] + movs r2, #0xe4 + lsls r2, r2, #1 + adds r1, r1, r2 + strh r0, [r1] + ldr r0, _0819AFF8 + subs r7, #0xbc + adds r1, r0, r7 + ldrh r1, [r1] + adds r0, r0, r2 + strh r1, [r0] +_0819AFD8: + ldr r0, [r4] + strb r3, [r0, #6] + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r6 +_0819AFE4: + movs r1, #3 + strh r1, [r0, #8] + b _0819B00E + .align 2, 0 +_0819AFEC: .4byte 0x02037C74 +_0819AFF0: .4byte 0x03001278 +_0819AFF4: .4byte 0x020377B4 +_0819AFF8: .4byte 0x020373B4 +_0819AFFC: + bl Select_ShowMenuOptions + ldr r0, _0819B014 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0xc +_0819B00C: + strh r0, [r1, #8] +_0819B00E: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0819B014: .4byte 0x03005B60 + thumb_func_end Task_HandleSelectionScreenMenu + + thumb_func_start Task_HandleSelectionScreenChooseMons +Task_HandleSelectionScreenChooseMons: @ 0x0819B018 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r5, _0819B04C + ldr r3, [r5] + movs r7, #0xa8 + lsls r7, r7, #2 + adds r0, r3, r7 + ldrb r0, [r0] + cmp r0, #1 + beq _0819B116 + ldr r1, _0819B050 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r0, #8 + ldrsh r1, [r4, r0] + cmp r1, #1 + beq _0819B07C + cmp r1, #1 + bgt _0819B054 + cmp r1, #0 + beq _0819B05A + b _0819B116 + .align 2, 0 +_0819B04C: .4byte 0x03001278 +_0819B050: .4byte 0x03005B60 +_0819B054: + cmp r1, #0xb + beq _0819B0E0 + b _0819B116 +_0819B05A: + ldr r0, _0819B074 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0819B116 + movs r0, #1 + movs r1, #1 + strh r1, [r4, #8] + ldr r2, _0819B078 + adds r1, r3, r2 + strb r0, [r1] + b _0819B116 + .align 2, 0 +_0819B074: .4byte 0x02037C74 +_0819B078: .4byte 0x000002A2 +_0819B07C: + ldr r2, _0819B0A0 + ldrh r0, [r2, #0x2e] + ands r1, r0 + cmp r1, #0 + beq _0819B0AC + movs r0, #5 + bl PlaySE + ldr r0, [r5] + ldr r1, _0819B0A4 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + movs r0, #2 + strh r0, [r4, #8] + ldr r0, _0819B0A8 + str r0, [r4] + b _0819B116 + .align 2, 0 +_0819B0A0: .4byte 0x03002360 +_0819B0A4: .4byte 0x000002A2 +_0819B0A8: .4byte 0x0819ADC5 +_0819B0AC: + ldrh r1, [r2, #0x30] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0819B0C2 + movs r0, #5 + bl PlaySE + movs r0, #1 + rsbs r0, r0, #0 + b _0819B0D2 +_0819B0C2: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0819B116 + movs r0, #5 + bl PlaySE + movs r0, #1 +_0819B0D2: + bl Select_UpdateBallCursorPosition + bl Select_PrintMonCategory + bl Select_PrintMonSpecies + b _0819B116 +_0819B0E0: + ldr r0, _0819B11C + ldrh r1, [r0, #0x2e] + movs r6, #1 + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _0819B116 + movs r0, #5 + bl PlaySE + ldr r1, [r5] + movs r2, #0xa6 + lsls r2, r2, #2 + adds r0, r1, r2 + ldr r0, [r0] + adds r1, r1, r7 + movs r2, #0 + bl sub_0819F2E4 + bl Select_PrintSelectMonString + ldr r0, [r5] + ldr r1, _0819B120 + adds r0, r0, r1 + movs r1, #1 + strb r1, [r0] + strh r6, [r4, #8] +_0819B116: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0819B11C: .4byte 0x03002360 +_0819B120: .4byte 0x000002A2 + thumb_func_end Task_HandleSelectionScreenChooseMons + + thumb_func_start CreateFrontierFactorySelectableMons +CreateFrontierFactorySelectableMons: @ 0x0819B124 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x24 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x10] + movs r6, #0 + add r0, sp, #0xc + strb r6, [r0] + ldr r0, _0819B1F4 + bl VarGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r0, #0 + ldr r7, _0819B1F8 + ldr r2, [r7] + ldr r0, _0819B1FC + adds r4, r2, r0 + ldrb r0, [r4] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + adds r5, r0, #0 + lsls r0, r5, #1 + lsls r1, r6, #2 + adds r0, r0, r1 + ldr r1, _0819B200 + adds r2, r2, r1 + adds r2, r2, r0 + ldrh r0, [r2] + movs r1, #7 + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x18] + ldr r1, _0819B204 + ldr r0, _0819B208 + str r0, [r1] + ldrb r1, [r4] + movs r0, #3 + ands r0, r1 + movs r2, #0x32 + str r2, [sp, #0x14] + cmp r0, #0 + beq _0819B18A + movs r3, #0x64 + str r3, [sp, #0x14] +_0819B18A: + adds r0, r6, #0 + adds r1, r5, #0 + bl GetNumPastRentalsRank + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x1c] + ldr r1, [r7] + ldrb r0, [r1, #0xa] + mov sb, r0 + ldrb r0, [r1, #0xb] + lsls r0, r0, #8 + mov r2, sb + orrs r2, r0 + ldrb r0, [r1, #0xc] + lsls r0, r0, #0x10 + orrs r2, r0 + ldrb r0, [r1, #0xd] + lsls r0, r0, #0x18 + orrs r2, r0 + mov sb, r2 + movs r3, #0 + mov r8, r3 +_0819B1B8: + ldr r0, _0819B1F8 + ldr r1, [r0] + mov r2, r8 + lsls r0, r2, #1 + add r0, r8 + lsls r0, r0, #2 + adds r1, r1, r0 + movs r3, #0xe7 + lsls r3, r3, #4 + adds r1, r1, r3 + ldrh r5, [r1] + ldr r0, _0819B20C + ldr r1, [r0] + ldr r2, [sp, #0x10] + add r2, r8 + movs r3, #0x6c + adds r0, r2, #0 + muls r0, r3, r0 + adds r1, r1, r0 + strh r5, [r1, #0xc] + mov sl, r2 + ldr r0, [sp, #0x1c] + cmp r8, r0 + bhs _0819B210 + ldr r0, [sp, #0x18] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0819B212 + .align 2, 0 +_0819B1F4: .4byte 0x000040CE +_0819B1F8: .4byte 0x03005AF0 +_0819B1FC: .4byte 0x00000CA9 +_0819B200: .4byte 0x00000DE2 +_0819B204: .4byte 0x0203B958 +_0819B208: .4byte 0x085B8700 +_0819B20C: .4byte 0x03001278 +_0819B210: + ldr r0, [sp, #0x18] +_0819B212: + movs r1, #0 + bl GetFactoryMonFixedIV + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r1, #0x6c + mov r4, sl + muls r4, r1, r4 + adds r4, #0xc + ldr r2, _0819B2D0 + ldr r0, [r2] + adds r0, r0, r4 + adds r0, #8 + ldr r1, _0819B2D4 + ldr r2, [r1] + lsls r5, r5, #4 + adds r2, r5, r2 + ldrh r1, [r2] + ldrb r3, [r2, #0xc] + str r6, [sp] + ldrb r2, [r2, #0xb] + str r2, [sp, #4] + mov r2, sb + str r2, [sp, #8] + ldr r2, [sp, #0x14] + bl CreateMonWithEVSpreadNatureOTID + movs r1, #0 + add r0, sp, #0xc + strb r1, [r0] + movs r6, #0 + adds r7, r5, #0 + movs r3, #1 + add r8, r3 + ldr r3, _0819B2D0 +_0819B258: + ldr r0, [r3] + adds r0, r0, r4 + adds r0, #8 + ldr r5, _0819B2D4 + ldr r1, [r5] + adds r1, r7, r1 + lsls r2, r6, #1 + adds r1, #2 + adds r1, r1, r2 + ldrh r1, [r1] + adds r2, r6, #0 + str r3, [sp, #0x20] + bl SetMonMoveAvoidReturn + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r3, [sp, #0x20] + cmp r6, #3 + bls _0819B258 + movs r0, #0x6c + mov r4, sl + muls r4, r0, r4 + adds r4, #0xc + ldr r1, _0819B2D0 + ldr r0, [r1] + adds r0, r0, r4 + adds r0, #8 + movs r1, #0x20 + add r2, sp, #0xc + bl SetMonData + ldr r2, _0819B2D0 + ldr r0, [r2] + adds r0, r0, r4 + adds r0, #8 + ldr r1, [r5] + adds r1, r7, r1 + ldrb r2, [r1, #0xa] + lsls r2, r2, #1 + ldr r1, _0819B2D8 + adds r2, r2, r1 + movs r1, #0xc + bl SetMonData + mov r3, r8 + lsls r0, r3, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + cmp r0, #5 + bhi _0819B2C0 + b _0819B1B8 +_0819B2C0: + add sp, #0x24 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0819B2D0: .4byte 0x03001278 +_0819B2D4: .4byte 0x0203B958 +_0819B2D8: .4byte 0x085ADBF4 + thumb_func_end CreateFrontierFactorySelectableMons + + thumb_func_start CreateTentFactorySelectableMons +CreateTentFactorySelectableMons: @ 0x0819B2DC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x10] + add r0, sp, #0xc + movs r1, #0 + strb r1, [r0] + ldr r2, _0819B3F0 + ldr r0, _0819B3F4 + str r0, [r2] + ldr r0, _0819B3F8 + ldr r1, [r0] + ldrb r3, [r1, #0xa] + ldrb r0, [r1, #0xb] + lsls r0, r0, #8 + orrs r3, r0 + ldrb r0, [r1, #0xc] + lsls r0, r0, #0x10 + orrs r3, r0 + ldrb r0, [r1, #0xd] + lsls r0, r0, #0x18 + orrs r3, r0 + mov sl, r3 + movs r7, #0 + mov sb, r7 +_0819B318: + ldr r0, _0819B3F8 + ldr r1, [r0] + mov r2, sb + lsls r0, r2, #1 + add r0, sb + lsls r0, r0, #2 + adds r1, r1, r0 + movs r3, #0xe7 + lsls r3, r3, #4 + adds r1, r1, r3 + ldrh r1, [r1] + mov r8, r1 + ldr r7, _0819B3FC + ldr r0, [r7] + ldr r6, [sp, #0x10] + add r6, sb + movs r1, #0x6c + adds r4, r6, #0 + muls r4, r1, r4 + adds r1, r0, r4 + mov r2, r8 + strh r2, [r1, #0xc] + adds r4, #0xc + adds r0, r0, r4 + adds r0, #8 + ldr r3, _0819B3F0 + ldr r2, [r3] + mov r7, r8 + lsls r5, r7, #4 + adds r2, r5, r2 + ldrh r1, [r2] + ldrb r3, [r2, #0xc] + movs r7, #0 + str r7, [sp] + ldrb r2, [r2, #0xb] + str r2, [sp, #4] + mov r2, sl + str r2, [sp, #8] + movs r2, #0x1e + bl CreateMonWithEVSpreadNatureOTID + add r0, sp, #0xc + movs r3, #0 + strb r3, [r0] + movs r0, #1 + add sb, r0 +_0819B374: + ldr r1, _0819B3FC + ldr r0, [r1] + adds r0, r0, r4 + adds r0, #8 + ldr r3, _0819B3F0 + ldr r2, [r3] + mov r3, r8 + lsls r1, r3, #4 + adds r1, r1, r2 + lsls r2, r7, #1 + adds r1, #2 + adds r1, r1, r2 + ldrh r1, [r1] + adds r2, r7, #0 + bl SetMonMoveAvoidReturn + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #3 + bls _0819B374 + movs r7, #0x6c + adds r4, r6, #0 + muls r4, r7, r4 + adds r4, #0xc + ldr r1, _0819B3FC + ldr r0, [r1] + adds r0, r0, r4 + adds r0, #8 + movs r1, #0x20 + add r2, sp, #0xc + bl SetMonData + ldr r2, _0819B3FC + ldr r0, [r2] + adds r0, r0, r4 + adds r0, #8 + ldr r3, _0819B3F0 + ldr r1, [r3] + adds r1, r5, r1 + ldrb r2, [r1, #0xa] + lsls r2, r2, #1 + ldr r1, _0819B400 + adds r2, r2, r1 + movs r1, #0xc + bl SetMonData + mov r7, sb + lsls r0, r7, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + cmp r0, #5 + bls _0819B318 + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0819B3F0: .4byte 0x0203B958 +_0819B3F4: .4byte 0x085BCF70 +_0819B3F8: .4byte 0x03005AF0 +_0819B3FC: .4byte 0x03001278 +_0819B400: .4byte 0x085ADBF4 + thumb_func_end CreateTentFactorySelectableMons + + thumb_func_start Select_CopyMonsToPlayerParty +Select_CopyMonsToPlayerParty: @ 0x0819B404 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + movs r7, #0 + ldr r0, _0819B4A4 + mov sl, r0 + ldr r1, _0819B4A8 + mov r8, r1 +_0819B418: + movs r2, #0 + adds r0, r7, #1 + mov sb, r0 +_0819B41E: + mov r1, sl + ldr r0, [r1] + movs r1, #0x6c + adds r6, r2, #0 + muls r6, r1, r6 + adds r1, r0, r6 + ldrb r0, [r1, #0x10] + cmp r0, sb + bne _0819B4BC + movs r0, #0x64 + adds r5, r7, #0 + muls r5, r0, r5 + ldr r2, _0819B4AC + adds r5, r5, r2 + adds r1, #0x14 + adds r0, r5, #0 + movs r2, #0x64 + bl memcpy + mov r0, r8 + ldr r1, [r0] + lsls r4, r7, #1 + adds r4, r4, r7 + lsls r4, r4, #2 + adds r1, r1, r4 + mov r2, sl + ldr r0, [r2] + adds r0, r0, r6 + ldrh r0, [r0, #0xc] + movs r2, #0xe7 + lsls r2, r2, #4 + adds r1, r1, r2 + strh r0, [r1] + adds r0, r5, #0 + movs r1, #0 + movs r2, #0 + bl GetMonData + mov r2, r8 + ldr r1, [r2] + ldr r2, _0819B4B0 + adds r1, r1, r2 + adds r1, r1, r4 + str r0, [r1] + adds r0, r5, #0 + movs r1, #0x2e + movs r2, #0 + bl GetBoxMonData + mov r2, r8 + ldr r1, [r2] + adds r1, r1, r4 + ldr r2, _0819B4B4 + adds r1, r1, r2 + strb r0, [r1] + adds r0, r5, #0 + movs r1, #0x28 + movs r2, #0 + bl GetBoxMonData + mov r2, r8 + ldr r1, [r2] + adds r1, r1, r4 + ldr r2, _0819B4B8 + adds r1, r1, r2 + strb r0, [r1] + b _0819B4C6 + .align 2, 0 +_0819B4A4: .4byte 0x03001278 +_0819B4A8: .4byte 0x03005AF0 +_0819B4AC: .4byte 0x02024190 +_0819B4B0: .4byte 0x00000E74 +_0819B4B4: .4byte 0x00000E79 +_0819B4B8: .4byte 0x00000E78 +_0819B4BC: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #5 + bls _0819B41E +_0819B4C6: + mov r1, sb + lsls r0, r1, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #2 + bls _0819B418 + bl CalculatePlayerPartyCount + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Select_CopyMonsToPlayerParty + + thumb_func_start Select_ShowMenuOptions +Select_ShowMenuOptions: @ 0x0819B4E4 + push {r4, r5, lr} + ldr r5, _0819B56C + ldr r1, [r5] + ldrb r0, [r1, #6] + cmp r0, #0 + bne _0819B4F2 + strb r0, [r1] +_0819B4F2: + ldr r4, _0819B570 + ldr r2, [r5] + ldrb r1, [r2, #1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0xb0 + strh r1, [r0, #0x20] + ldrb r0, [r2, #1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r0, [r2] + lsls r0, r0, #4 + adds r0, #0x70 + strh r0, [r1, #0x22] + ldrb r1, [r2, #2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0xd0 + strh r1, [r0, #0x20] + ldrb r0, [r2, #2] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r0, [r2] + lsls r0, r0, #4 + adds r0, #0x70 + strh r0, [r1, #0x22] + ldrb r0, [r2, #1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + adds r1, #0x3e + ldrb r3, [r1] + movs r2, #5 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r3 + strb r0, [r1] + ldr r0, [r5] + ldrb r1, [r0, #2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + bl Select_PrintMenuOptions + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0819B56C: .4byte 0x03001278 +_0819B570: .4byte 0x020205AC + thumb_func_end Select_ShowMenuOptions + + thumb_func_start Select_ShowYesNoOptions +Select_ShowYesNoOptions: @ 0x0819B574 + push {r4, r5, lr} + ldr r5, _0819B5F0 + ldr r1, [r5] + movs r0, #0 + strb r0, [r1, #7] + ldr r4, _0819B5F4 + ldr r2, [r5] + ldrb r1, [r2, #1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0xb0 + strh r1, [r0, #0x20] + ldrb r1, [r2, #1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r3, #0x70 + strh r3, [r0, #0x22] + ldrb r1, [r2, #2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0xd0 + strh r1, [r0, #0x20] + ldrb r1, [r2, #2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + strh r3, [r0, #0x22] + ldrb r0, [r2, #1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + adds r1, #0x3e + ldrb r3, [r1] + movs r2, #5 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r3 + strb r0, [r1] + ldr r0, [r5] + ldrb r1, [r0, #2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + bl Select_PrintYesNoOptions + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0819B5F0: .4byte 0x03001278 +_0819B5F4: .4byte 0x020205AC + thumb_func_end Select_ShowYesNoOptions + + thumb_func_start sub_0819B5F8 +sub_0819B5F8: @ 0x0819B5F8 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r5, _0819B64C + ldr r3, _0819B650 + ldr r0, [r3] + ldrb r1, [r0, #1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + ldr r0, [r3] + ldrb r1, [r0, #2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + adds r0, r4, #0 + movs r1, #0 + bl FillWindowPixelBuffer + adds r0, r4, #0 + movs r1, #2 + bl CopyWindowToVram + adds r0, r4, #0 + bl ClearWindowTilemap + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0819B64C: .4byte 0x020205AC +_0819B650: .4byte 0x03001278 + thumb_func_end sub_0819B5F8 + + thumb_func_start Select_PrintRentalPkmnString +Select_PrintRentalPkmnString: @ 0x0819B654 + push {lr} + sub sp, #0xc + movs r0, #0 + movs r1, #0 + bl FillWindowPixelBuffer + ldr r2, _0819B684 + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_0819B684: .4byte 0x085DBB98 + thumb_func_end Select_PrintRentalPkmnString + + thumb_func_start Select_PrintMonSpecies +Select_PrintMonSpecies: @ 0x0819B688 + push {r4, r5, lr} + sub sp, #0xc + ldr r5, _0819B6F8 + ldr r0, [r5] + ldrb r4, [r0, #3] + movs r0, #1 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #0x6c + muls r0, r4, r0 + ldr r1, [r5] + adds r0, r0, r1 + adds r0, #0x14 + movs r1, #0xb + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _0819B6FC + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + ldr r0, _0819B700 + adds r1, r1, r0 + adds r0, r4, #0 + bl StringCopy + adds r0, r4, #0 + bl StringLength + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #5 + subs r2, r2, r0 + lsls r2, r2, #0x1b + lsrs r2, r2, #0x18 + ldr r0, _0819B704 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r4, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r3, #2 + bl AddTextPrinterParameterized3 + movs r0, #1 + movs r1, #2 + bl CopyWindowToVram + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0819B6F8: .4byte 0x03001278 +_0819B6FC: .4byte 0x02021C7C +_0819B700: .4byte 0x082EA31C +_0819B704: .4byte 0x085DBC81 + thumb_func_end Select_PrintMonSpecies + + thumb_func_start Select_PrintSelectMonString +Select_PrintSelectMonString: @ 0x0819B708 + push {lr} + sub sp, #0xc + movs r0, #2 + movs r1, #0 + bl FillWindowPixelBuffer + ldr r0, _0819B724 + ldr r0, [r0] + ldrb r0, [r0, #5] + cmp r0, #1 + bne _0819B72C + ldr r2, _0819B728 + b _0819B740 + .align 2, 0 +_0819B724: .4byte 0x03001278 +_0819B728: .4byte 0x085DBBA1 +_0819B72C: + cmp r0, #2 + bne _0819B738 + ldr r2, _0819B734 + b _0819B740 + .align 2, 0 +_0819B734: .4byte 0x085DBBB5 +_0819B738: + ldr r2, _0819B764 + cmp r0, #3 + bne _0819B740 + ldr r2, _0819B768 +_0819B740: + movs r0, #5 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + movs r0, #2 + movs r1, #1 + movs r3, #4 + bl AddTextPrinterParameterized + movs r0, #2 + movs r1, #2 + bl CopyWindowToVram + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_0819B764: .4byte 0x085DBBF6 +_0819B768: .4byte 0x085DBBC9 + thumb_func_end Select_PrintSelectMonString + + thumb_func_start Select_PrintCantSelectSameMon +Select_PrintCantSelectSameMon: @ 0x0819B76C + push {lr} + sub sp, #0xc + movs r0, #2 + movs r1, #0 + bl FillWindowPixelBuffer + ldr r2, _0819B79C + movs r0, #5 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + movs r0, #2 + movs r1, #1 + movs r3, #4 + bl AddTextPrinterParameterized + movs r0, #2 + movs r1, #2 + bl CopyWindowToVram + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_0819B79C: .4byte 0x085DBC11 + thumb_func_end Select_PrintCantSelectSameMon + + thumb_func_start Select_PrintMenuOptions +Select_PrintMenuOptions: @ 0x0819B7A0 + push {r4, r5, r6, lr} + sub sp, #0xc + ldr r0, _0819B7F4 + ldr r0, [r0] + ldrb r2, [r0, #3] + movs r1, #0x6c + muls r1, r2, r1 + adds r0, r0, r1 + ldrb r5, [r0, #0x10] + movs r0, #3 + bl PutWindowTilemap + movs r0, #3 + movs r1, #0 + bl FillWindowPixelBuffer + ldr r4, _0819B7F8 + str r4, [sp] + movs r6, #0 + str r6, [sp, #4] + ldr r0, _0819B7FC + str r0, [sp, #8] + movs r0, #3 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 + cmp r5, #0 + beq _0819B804 + str r4, [sp] + str r6, [sp, #4] + ldr r0, _0819B800 + str r0, [sp, #8] + movs r0, #3 + movs r1, #1 + movs r2, #0 + movs r3, #0x12 + bl AddTextPrinterParameterized3 + b _0819B818 + .align 2, 0 +_0819B7F4: .4byte 0x03001278 +_0819B7F8: .4byte 0x085DBC7E +_0819B7FC: .4byte 0x085DBBE4 +_0819B800: .4byte 0x085DBBF2 +_0819B804: + str r4, [sp] + str r5, [sp, #4] + ldr r0, _0819B840 + str r0, [sp, #8] + movs r0, #3 + movs r1, #1 + movs r2, #0 + movs r3, #0x12 + bl AddTextPrinterParameterized3 +_0819B818: + ldr r0, _0819B844 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + ldr r0, _0819B848 + str r0, [sp, #8] + movs r0, #3 + movs r1, #1 + movs r2, #0 + movs r3, #0x22 + bl AddTextPrinterParameterized3 + movs r0, #3 + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0819B840: .4byte 0x085DBBDD +_0819B844: .4byte 0x085DBC7E +_0819B848: .4byte 0x085DBBEB + thumb_func_end Select_PrintMenuOptions + + thumb_func_start Select_PrintYesNoOptions +Select_PrintYesNoOptions: @ 0x0819B84C + push {r4, r5, lr} + sub sp, #0xc + movs r0, #4 + bl PutWindowTilemap + movs r0, #4 + movs r1, #0 + bl FillWindowPixelBuffer + ldr r5, _0819B89C + str r5, [sp] + movs r4, #0 + str r4, [sp, #4] + ldr r0, _0819B8A0 + str r0, [sp, #8] + movs r0, #4 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 + str r5, [sp] + str r4, [sp, #4] + ldr r0, _0819B8A4 + str r0, [sp, #8] + movs r0, #4 + movs r1, #1 + movs r2, #0 + movs r3, #0x12 + bl AddTextPrinterParameterized3 + movs r0, #4 + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0819B89C: .4byte 0x085DBC7E +_0819B8A0: .4byte 0x085DBC0A +_0819B8A4: .4byte 0x085DBC0D + thumb_func_end Select_PrintYesNoOptions + + thumb_func_start Select_RunMenuOptionFunc +Select_RunMenuOptionFunc: @ 0x0819B8A8 + push {lr} + ldr r2, _0819B8C8 + ldr r1, _0819B8CC + ldr r0, _0819B8D0 + ldr r0, [r0] + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r2] + bl _call_via_r0 + thumb_func_end Select_RunMenuOptionFunc + + thumb_func_start sub_0819B8C0 +sub_0819B8C0: @ 0x0819B8C0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0819B8C8: .4byte 0x03006028 +_0819B8CC: .4byte 0x085DBC24 +_0819B8D0: .4byte 0x03001278 + thumb_func_end sub_0819B8C0 + + thumb_func_start Select_OptionRentDeselect +Select_OptionRentDeselect: @ 0x0819B8D4 + push {r4, lr} + ldr r0, _0819B900 + ldr r0, [r0] + ldrb r2, [r0, #3] + movs r1, #0x6c + muls r1, r2, r1 + adds r0, r0, r1 + ldrb r1, [r0, #0x10] + ldrh r0, [r0, #0xc] + cmp r1, #0 + bne _0819B904 + bl Select_AreSpeciesValid + cmp r0, #0 + bne _0819B904 + bl Select_PrintCantSelectSameMon + movs r0, #3 + bl sub_0819B5F8 + movs r0, #3 + b _0819B93A + .align 2, 0 +_0819B900: .4byte 0x03001278 +_0819B904: + ldr r4, _0819B934 + ldr r1, [r4] + movs r2, #0xa6 + lsls r2, r2, #2 + adds r0, r1, r2 + ldr r0, [r0] + adds r2, #8 + adds r1, r1, r2 + movs r2, #0 + bl sub_0819F2E4 + bl Select_HandleMonSelectionChange + bl Select_PrintSelectMonString + movs r0, #3 + bl sub_0819B5F8 + ldr r0, [r4] + ldrb r0, [r0, #5] + cmp r0, #3 + bhi _0819B938 + movs r0, #1 + b _0819B93A + .align 2, 0 +_0819B934: .4byte 0x03001278 +_0819B938: + movs r0, #2 +_0819B93A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end Select_OptionRentDeselect + + thumb_func_start sub_0819B940 +sub_0819B940: @ 0x0819B940 + push {lr} + bl sub_0819C250 + bl Select_HandleMonSelectionChange + bl Select_PrintSelectMonString + movs r0, #3 + bl sub_0819B5F8 + ldr r0, _0819B964 + ldr r0, [r0] + ldrb r0, [r0, #5] + cmp r0, #3 + bhi _0819B968 + movs r0, #1 + b _0819B96A + .align 2, 0 +_0819B964: .4byte 0x03001278 +_0819B968: + movs r0, #2 +_0819B96A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0819B940 + + thumb_func_start Select_OptionSummary +Select_OptionSummary: @ 0x0819B970 + movs r0, #0 + bx lr + thumb_func_end Select_OptionSummary + + thumb_func_start Select_OptionOthers +Select_OptionOthers: @ 0x0819B974 + push {lr} + ldr r0, _0819B998 + ldr r1, [r0] + movs r2, #0xa6 + lsls r2, r2, #2 + adds r0, r1, r2 + ldr r0, [r0] + adds r2, #8 + adds r1, r1, r2 + movs r2, #0 + bl sub_0819F2E4 + movs r0, #3 + bl sub_0819B5F8 + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 +_0819B998: .4byte 0x03001278 + thumb_func_end Select_OptionOthers + + thumb_func_start Select_PrintMonCategory +Select_PrintMonCategory: @ 0x0819B99C + push {r4, r5, lr} + sub sp, #0x18 + ldr r5, _0819BA4C + ldr r0, [r5] + ldrb r4, [r0, #3] + cmp r4, #5 + bhi _0819BA44 + movs r0, #5 + bl PutWindowTilemap + movs r0, #5 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #0x6c + muls r0, r4, r0 + ldr r1, [r5] + adds r0, r0, r1 + adds r0, #0x14 + movs r1, #0xb + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r4, #0 + ldr r2, _0819BA50 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _0819BA0E + adds r3, r2, #0 + adds r2, r1, #0 +_0819B9EC: + mov r1, sp + adds r1, r1, r4 + adds r1, #0xc + adds r0, r4, r2 + adds r0, r0, r3 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #4 + bhi _0819BA0E + adds r0, r4, r2 + adds r0, r0, r3 + ldrb r0, [r0] + cmp r0, #0 + bne _0819B9EC +_0819BA0E: + mov r1, sp + adds r1, r1, r4 + adds r1, #0xc + movs r0, #0xff + strb r0, [r1] + ldr r1, _0819BA54 + add r0, sp, #0xc + bl StringAppend + movs r3, #5 + subs r3, r3, r4 + lsls r3, r3, #0x1b + lsrs r3, r3, #0x18 + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + movs r0, #5 + movs r1, #1 + add r2, sp, #0xc + bl AddTextPrinterParameterized + movs r0, #5 + movs r1, #2 + bl CopyWindowToVram +_0819BA44: + add sp, #0x18 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0819BA4C: .4byte 0x03001278 +_0819BA50: .4byte 0x0854069C +_0819BA54: .4byte 0x085C8C66 + thumb_func_end Select_PrintMonCategory + + thumb_func_start Summary_ShowMonSprite +Summary_ShowMonSprite: @ 0x0819BA58 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0x10 + ldr r6, _0819BAFC + ldr r2, [r6] + ldrb r1, [r2, #3] + movs r0, #0x6c + adds r4, r1, #0 + muls r4, r0, r4 + adds r4, r4, r2 + adds r4, #0x14 + adds r0, r4, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + bl GetMonData + mov r8, r0 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl GetMonData + adds r1, r0, #0 + movs r0, #0x58 + str r0, [sp] + movs r0, #0x20 + str r0, [sp, #4] + movs r0, #0xf + str r0, [sp, #8] + ldr r0, _0819BB00 + str r0, [sp, #0xc] + adds r0, r5, #0 + mov r2, r8 + movs r3, #1 + bl CreateMonPicSprite_HandleDeoxys + ldr r1, [r6] + movs r2, #0xa6 + lsls r2, r2, #2 + adds r1, r1, r2 + movs r3, #0 + strb r0, [r1] + ldr r4, _0819BB04 + ldr r0, [r6] + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x28 + strb r3, [r0] + ldr r0, [r6] + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x29 + strb r3, [r0] + ldr r0, [r6] + movs r1, #0xa8 + lsls r1, r1, #2 + adds r0, r0, r1 + strb r3, [r0] + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0819BAFC: .4byte 0x03001278 +_0819BB00: .4byte 0x0000FFFF +_0819BB04: .4byte 0x020205AC + thumb_func_end Summary_ShowMonSprite + + thumb_func_start sub_0819BB08 +sub_0819BB08: @ 0x0819BB08 + ldr r1, _0819BB18 + ldr r1, [r1] + movs r2, #0xa8 + lsls r2, r2, #2 + adds r1, r1, r2 + strb r0, [r1] + bx lr + .align 2, 0 +_0819BB18: .4byte 0x03001278 + thumb_func_end sub_0819BB08 + + thumb_func_start Select_ShowSummaryMonSprite +Select_ShowSummaryMonSprite: @ 0x0819BB1C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + ldr r0, _0819BC00 + movs r1, #0x78 + movs r2, #0x40 + movs r3, #1 + bl CreateSprite + ldr r6, _0819BC04 + ldr r1, [r6] + ldr r2, _0819BC08 + mov sl, r2 + add r1, sl + movs r7, #0 + strb r0, [r1] + ldr r0, [r6] + add r0, sl + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0819BC0C + mov r8, r1 + add r0, r8 + movs r1, #2 + bl StartSpriteAffineAnim + ldr r2, [r6] + ldrb r1, [r2, #3] + movs r0, #0x6c + adds r4, r1, #0 + muls r4, r0, r4 + adds r4, r4, r2 + adds r4, #0x14 + adds r0, r4, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + bl GetMonData + mov sb, r0 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl GetMonData + adds r1, r0, #0 + movs r0, #0x58 + str r0, [sp] + movs r0, #0x20 + str r0, [sp, #4] + movs r0, #0xf + str r0, [sp, #8] + ldr r0, _0819BC10 + str r0, [sp, #0xc] + adds r0, r5, #0 + mov r2, sb + movs r3, #1 + bl CreateMonPicSprite_HandleDeoxys + ldr r1, [r6] + movs r2, #0xa6 + lsls r2, r2, #2 + adds r1, r1, r2 + strb r0, [r1] + ldr r0, [r6] + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + adds r0, #0x28 + strb r7, [r0] + ldr r0, [r6] + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + adds r0, #0x29 + strb r7, [r0] + ldr r0, [r6] + add r0, sl + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0819BC00: .4byte 0x085DBE40 +_0819BC04: .4byte 0x03001278 +_0819BC08: .4byte 0x00000299 +_0819BC0C: .4byte 0x020205AC +_0819BC10: .4byte 0x0000FFFF + thumb_func_end Select_ShowSummaryMonSprite + + thumb_func_start Select_ShowChosenMonsSprites +Select_ShowChosenMonsSprites: @ 0x0819BC14 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + movs r7, #0 + ldr r0, _0819BCE4 + mov sb, r0 +_0819BC26: + movs r2, #0 + adds r1, r7, #1 + mov sl, r1 + lsls r0, r7, #2 + mov r8, r0 +_0819BC30: + mov r0, sb + ldr r1, [r0] + movs r0, #0x6c + adds r4, r2, #0 + muls r4, r0, r4 + adds r0, r1, r4 + ldrb r0, [r0, #0x10] + cmp r0, sl + bne _0819BCF0 + adds r4, r4, r1 + adds r4, #0x14 + adds r0, r4, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + bl GetMonData + adds r6, r0, #0 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl GetMonData + adds r1, r0, #0 + lsls r0, r7, #3 + adds r0, r0, r7 + lsls r0, r0, #0x13 + movs r2, #0x80 + lsls r2, r2, #0xd + adds r0, r0, r2 + asrs r0, r0, #0x10 + str r0, [sp] + movs r0, #0x20 + str r0, [sp, #4] + adds r0, r7, #0 + adds r0, #0xd + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #8] + ldr r0, _0819BCE8 + str r0, [sp, #0xc] + adds r0, r5, #0 + adds r2, r6, #0 + movs r3, #1 + bl CreateMonPicSprite_HandleDeoxys + mov r2, sb + ldr r1, [r2] + add r1, r8 + movs r2, #0xa5 + lsls r2, r2, #2 + adds r1, r1, r2 + strb r0, [r1] + mov r1, sb + ldr r0, [r1] + add r0, r8 + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r2, _0819BCEC + adds r0, r0, r2 + adds r0, #0x28 + movs r1, #0 + strb r1, [r0] + mov r2, sb + ldr r0, [r2] + add r0, r8 + movs r1, #0xa5 + lsls r1, r1, #2 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r2, _0819BCEC + adds r0, r0, r2 + adds r0, #0x29 + movs r1, #0 + strb r1, [r0] + b _0819BCFA + .align 2, 0 +_0819BCE4: .4byte 0x03001278 +_0819BCE8: .4byte 0x0000FFFF +_0819BCEC: .4byte 0x020205AC +_0819BCF0: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #5 + bls _0819BC30 +_0819BCFA: + mov r2, sl + lsls r0, r2, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #2 + bls _0819BC26 + ldr r0, _0819BD24 + ldr r0, [r0] + movs r1, #0xa8 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0819BD24: .4byte 0x03001278 + thumb_func_end Select_ShowChosenMonsSprites + + thumb_func_start sub_0819BD28 +sub_0819BD28: @ 0x0819BD28 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0819BDC4 + ldr r3, _0819BDCC + ldr r6, _0819BDD0 + ldr r2, [r6] + ldr r0, _0819BDD4 + adds r5, r2, r0 + ldrb r0, [r5] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + adds r1, #0x3f + ldrb r0, [r1] + lsls r0, r0, #0x1a + cmp r0, #0 + bge _0819BDC4 + ldr r1, _0819BDD8 + adds r0, r2, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3f + ldrb r0, [r0] + lsls r0, r0, #0x1a + cmp r0, #0 + bge _0819BDC4 + adds r1, r4, #0 + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + ldrb r1, [r5] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + ldr r0, [r6] + ldr r1, _0819BDD8 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + ldr r0, _0819BDDC + movs r1, #1 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0819BDE0 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + ldr r0, _0819BDE4 + str r0, [r4, #0x1c] +_0819BDC4: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0819BDCC: .4byte 0x020205AC +_0819BDD0: .4byte 0x03001278 +_0819BDD4: .4byte 0x00000295 +_0819BDD8: .4byte 0x0000029D +_0819BDDC: .4byte 0x0819BEB9 +_0819BDE0: .4byte 0x03005B60 +_0819BDE4: .4byte 0x08007141 + thumb_func_end sub_0819BD28 + + thumb_func_start sub_0819BDE8 +sub_0819BDE8: @ 0x0819BDE8 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0819BEA2 + ldr r6, _0819BEA8 + ldr r4, _0819BEAC + ldr r2, [r4] + ldr r7, _0819BEB0 + adds r0, r2, r7 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x3f + ldrb r0, [r0] + lsls r0, r0, #0x1a + cmp r0, #0 + bge _0819BEA2 + ldr r1, _0819BEB4 + adds r0, r2, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x3f + ldrb r0, [r0] + lsls r0, r0, #0x1a + cmp r0, #0 + bge _0819BEA2 + ldrb r0, [r5, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + ldr r0, [r4] + adds r0, r0, r7 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r0, [r0, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + ldr r0, [r4] + ldr r1, _0819BEB4 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r0, [r0, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + ldr r0, [r4] + movs r1, #0xa8 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + ldr r0, [r4] + adds r0, r0, r7 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + bl DestroySprite + ldr r0, [r4] + ldr r1, _0819BEB4 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + bl DestroySprite + adds r0, r5, #0 + bl DestroySprite +_0819BEA2: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0819BEA8: .4byte 0x020205AC +_0819BEAC: .4byte 0x03001278 +_0819BEB0: .4byte 0x00000295 +_0819BEB4: .4byte 0x0000029D + thumb_func_end sub_0819BDE8 + + thumb_func_start sub_0819BEB8 +sub_0819BEB8: @ 0x0819BEB8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _0819BEDC + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _0819BF36 + cmp r0, #1 + bgt _0819BEE0 + cmp r0, #0 + beq _0819BEE6 + b _0819BFA2 + .align 2, 0 +_0819BEDC: .4byte 0x03005B60 +_0819BEE0: + cmp r0, #2 + beq _0819BF58 + b _0819BFA2 +_0819BEE6: + movs r0, #0x10 + strh r0, [r4, #0xe] + movs r0, #0xe0 + strh r0, [r4, #0x38] + movs r0, #0x40 + strh r0, [r4, #0x12] + movs r0, #0x41 + strh r0, [r4, #0x18] + movs r1, #0x80 + lsls r1, r1, #6 + movs r0, #0 + bl SetGpuRegBits + ldrh r1, [r4, #0xe] + lsls r1, r1, #8 + ldrh r0, [r4, #0x38] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x40 + bl SetGpuReg + ldrh r1, [r4, #0x12] + lsls r1, r1, #8 + ldrh r0, [r4, #0x18] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x44 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0x3f + bl SetGpuReg + movs r0, #0x4a + movs r1, #0x37 + bl SetGpuReg + b _0819BFAE +_0819BF36: + movs r0, #3 + bl ShowBg + ldr r1, _0819BF50 + movs r0, #0x50 + bl SetGpuReg + ldr r1, _0819BF54 + movs r0, #0x52 + bl SetGpuReg + b _0819BFAE + .align 2, 0 +_0819BF50: .4byte 0x00001248 +_0819BF54: .4byte 0x0000040B +_0819BF58: + ldrh r0, [r4, #0x12] + subs r0, #4 + strh r0, [r4, #0x12] + ldrh r1, [r4, #0x18] + adds r1, #4 + strh r1, [r4, #0x18] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x20 + ble _0819BF74 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x5f + ble _0819BF86 +_0819BF74: + movs r0, #0x20 + strh r0, [r4, #0x12] + movs r0, #0x60 + strh r0, [r4, #0x18] + movs r1, #0x80 + lsls r1, r1, #6 + movs r0, #0 + bl ClearGpuRegBits +_0819BF86: + ldrh r1, [r4, #0x12] + lsls r1, r1, #8 + ldrh r0, [r4, #0x18] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x44 + bl SetGpuReg + movs r1, #0x12 + ldrsh r0, [r4, r1] + cmp r0, #0x20 + bne _0819BFB4 + b _0819BFAE +_0819BFA2: + adds r0, r2, #0 + bl DestroyTask + bl Select_ShowChosenMonsSprites + b _0819BFB4 +_0819BFAE: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_0819BFB4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0819BEB8 + + thumb_func_start sub_0819BFBC +sub_0819BFBC: @ 0x0819BFBC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + ldr r1, _0819C0D8 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0819BFDE + b _0819C0F8 +_0819BFDE: + cmp r0, #1 + bne _0819BFE4 + b _0819C148 +_0819BFE4: + movs r0, #3 + bl HideBg + ldr r4, _0819C0DC + ldr r0, _0819C0E0 + mov r8, r0 + ldr r0, [r0] + ldr r1, _0819C0E4 + mov ip, r1 + add r0, ip + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + adds r1, #0x3e + ldrb r2, [r1] + movs r3, #5 + rsbs r3, r3, #0 + adds r0, r3, #0 + ands r0, r2 + strb r0, [r1] + mov r0, r8 + ldr r2, [r0] + mov r1, ip + adds r0, r2, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r6, r4, #0 + adds r6, #0x1c + adds r0, r0, r6 + ldr r1, _0819C0E8 + str r1, [r0] + ldr r0, _0819C0EC + mov sb, r0 + add r2, sb + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r2, [r0] + adds r1, r3, #0 + ands r1, r2 + strb r1, [r0] + mov r1, r8 + ldr r2, [r1] + mov r1, sb + adds r0, r2, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r1, _0819C0F0 + mov sl, r1 + str r1, [r0] + ldr r5, _0819C0F4 + adds r2, r2, r5 + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r1, [r0] + ands r3, r1 + strb r3, [r0] + mov r0, r8 + ldr r2, [r0] + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + mov r1, sl + str r1, [r0] + add r2, ip + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #1 + bl StartSpriteAffineAnim + mov r1, r8 + ldr r0, [r1] + add r0, sb + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #1 + bl StartSpriteAffineAnim + mov r1, r8 + ldr r0, [r1] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #1 + bl StartSpriteAffineAnim + movs r1, #0x80 + lsls r1, r1, #6 + movs r0, #0 + bl ClearGpuRegBits + adds r0, r7, #0 + bl DestroyTask + b _0819C18C + .align 2, 0 +_0819C0D8: .4byte 0x03005B60 +_0819C0DC: .4byte 0x020205AC +_0819C0E0: .4byte 0x03001278 +_0819C0E4: .4byte 0x00000299 +_0819C0E8: .4byte 0x0819BDE9 +_0819C0EC: .4byte 0x00000295 +_0819C0F0: .4byte 0x08007141 +_0819C0F4: .4byte 0x0000029D +_0819C0F8: + movs r0, #0x10 + strh r0, [r4, #0xe] + movs r0, #0xe0 + strh r0, [r4, #0x38] + movs r0, #0x20 + strh r0, [r4, #0x12] + movs r0, #0x60 + strh r0, [r4, #0x18] + movs r1, #0x80 + lsls r1, r1, #6 + movs r0, #0 + bl SetGpuRegBits + ldrh r1, [r4, #0xe] + lsls r1, r1, #8 + ldrh r0, [r4, #0x38] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x40 + bl SetGpuReg + ldrh r1, [r4, #0x12] + lsls r1, r1, #8 + ldrh r0, [r4, #0x18] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x44 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0x3f + bl SetGpuReg + movs r0, #0x4a + movs r1, #0x37 + bl SetGpuReg + b _0819C186 +_0819C148: + ldrh r0, [r4, #0x12] + adds r0, #4 + strh r0, [r4, #0x12] + ldrh r1, [r4, #0x18] + subs r1, #4 + strh r1, [r4, #0x18] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x3f + bgt _0819C164 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x41 + bgt _0819C16C +_0819C164: + movs r0, #0x40 + strh r0, [r4, #0x12] + movs r0, #0x41 + strh r0, [r4, #0x18] +_0819C16C: + ldrh r1, [r4, #0x12] + lsls r1, r1, #8 + ldrh r0, [r4, #0x18] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x44 + bl SetGpuReg + movs r1, #0x12 + ldrsh r0, [r4, r1] + cmp r0, #0x40 + bne _0819C18C +_0819C186: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_0819C18C: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0819BFBC + + thumb_func_start sub_0819C19C +sub_0819C19C: @ 0x0819C19C + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + ldr r4, _0819C230 + adds r0, r4, #0 + movs r1, #0x78 + movs r2, #0x40 + movs r3, #1 + bl CreateSprite + ldr r6, _0819C234 + ldr r1, [r6] + ldr r2, _0819C238 + mov r8, r2 + add r1, r8 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x2c + movs r2, #0x40 + movs r3, #1 + bl CreateSprite + ldr r1, [r6] + ldr r5, _0819C23C + adds r1, r1, r5 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0xc4 + movs r2, #0x40 + movs r3, #1 + bl CreateSprite + ldr r1, [r6] + ldr r4, _0819C240 + adds r1, r1, r4 + strb r0, [r1] + ldr r3, _0819C244 + ldr r2, [r6] + add r8, r2 + mov r0, r8 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r3, #0x1c + adds r0, r0, r3 + ldr r1, _0819C248 + str r1, [r0] + adds r5, r2, r5 + ldrb r1, [r5] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldr r5, _0819C24C + str r5, [r0] + adds r4, r2, r4 + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + str r5, [r0] + movs r0, #0xa8 + lsls r0, r0, #2 + adds r2, r2, r0 + movs r0, #1 + strb r0, [r2] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0819C230: .4byte 0x085DBE40 +_0819C234: .4byte 0x03001278 +_0819C238: .4byte 0x00000299 +_0819C23C: .4byte 0x00000295 +_0819C240: .4byte 0x0000029D +_0819C244: .4byte 0x020205AC +_0819C248: .4byte 0x0819BD29 +_0819C24C: .4byte 0x08007141 + thumb_func_end sub_0819C19C + + thumb_func_start sub_0819C250 +sub_0819C250: @ 0x0819C250 + push {r4, lr} + ldr r4, _0819C2AC + ldr r0, [r4] + movs r1, #0xa5 + lsls r1, r1, #2 + adds r0, r0, r1 + ldrb r0, [r0] + bl FreeAndDestroyMonPicSprite + ldr r0, [r4] + movs r1, #0xa6 + lsls r1, r1, #2 + adds r0, r0, r1 + ldrb r0, [r0] + bl FreeAndDestroyMonPicSprite + ldr r0, [r4] + movs r1, #0xa7 + lsls r1, r1, #2 + adds r0, r0, r1 + ldrb r0, [r0] + bl FreeAndDestroyMonPicSprite + ldr r0, _0819C2B0 + movs r1, #1 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0819C2B4 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + ldr r0, [r4] + movs r1, #0xa8 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r1, #1 + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0819C2AC: .4byte 0x03001278 +_0819C2B0: .4byte 0x0819BFBD +_0819C2B4: .4byte 0x03005B60 + thumb_func_end sub_0819C250 + + thumb_func_start Select_SetWinRegs +Select_SetWinRegs: @ 0x0819C2B8 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r4, r0, #0 + adds r6, r1, #0 + adds r5, r2, #0 + mov r8, r3 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + mov r0, r8 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + movs r1, #0x80 + lsls r1, r1, #6 + movs r0, #0 + bl SetGpuRegBits + lsls r4, r4, #0x18 + lsrs r4, r4, #0x10 + orrs r4, r6 + movs r0, #0x40 + adds r1, r4, #0 + bl SetGpuReg + lsls r5, r5, #0x18 + lsrs r5, r5, #0x10 + mov r0, r8 + orrs r5, r0 + movs r0, #0x44 + adds r1, r5, #0 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0x3f + bl SetGpuReg + movs r0, #0x4a + movs r1, #0x37 + bl SetGpuReg + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end Select_SetWinRegs + + thumb_func_start Select_AreSpeciesValid +Select_AreSpeciesValid: @ 0x0819C31C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + ldr r2, _0819C360 + ldr r1, [r2] + lsrs r0, r0, #0xc + adds r0, r0, r1 + ldrh r6, [r0] + ldr r0, _0819C364 + ldr r0, [r0] + ldrb r5, [r0, #5] + movs r3, #1 + cmp r3, r5 + bhs _0819C37C + adds r4, r0, #0 + movs r0, #0x6c + mov ip, r0 + adds r7, r2, #0 +_0819C33E: + movs r2, #0 +_0819C340: + mov r0, ip + muls r0, r2, r0 + adds r1, r4, r0 + ldrb r0, [r1, #0x10] + cmp r0, r3 + bne _0819C368 + ldrh r0, [r1, #0xc] + ldr r1, [r7] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, r6 + bne _0819C372 + movs r0, #0 + b _0819C37E + .align 2, 0 +_0819C360: .4byte 0x0203B958 +_0819C364: .4byte 0x03001278 +_0819C368: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #5 + bls _0819C340 +_0819C372: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, r5 + blo _0819C33E +_0819C37C: + movs r0, #1 +_0819C37E: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end Select_AreSpeciesValid + + thumb_func_start Task_SelectFadeSpeciesName +Task_SelectFadeSpeciesName: @ 0x0819C384 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _0819C3A8 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r5, r0, r1 + movs r0, #8 + ldrsh r2, [r5, r0] + cmp r2, #1 + beq _0819C3E0 + cmp r2, #1 + bgt _0819C3AC + cmp r2, #0 + beq _0819C3B2 + b _0819C4C0 + .align 2, 0 +_0819C3A8: .4byte 0x03005B60 +_0819C3AC: + cmp r2, #2 + beq _0819C49C + b _0819C4C0 +_0819C3B2: + ldr r1, _0819C3D4 + ldr r0, [r1] + ldr r3, _0819C3D8 + adds r0, r0, r3 + strb r2, [r0] + ldr r0, [r1] + adds r3, #1 + adds r0, r0, r3 + strb r2, [r0] + ldr r0, [r1] + ldr r1, _0819C3DC + adds r0, r0, r1 + movs r1, #1 + strb r1, [r0] + strh r1, [r5, #8] + b _0819C4C0 + .align 2, 0 +_0819C3D4: .4byte 0x03001278 +_0819C3D8: .4byte 0x000002A7 +_0819C3DC: .4byte 0x000002A6 +_0819C3E0: + ldr r0, _0819C400 + ldr r3, [r0] + ldr r2, _0819C404 + adds r1, r3, r2 + ldrb r1, [r1] + adds r7, r0, #0 + cmp r1, #0 + beq _0819C4C0 + ldr r1, _0819C408 + adds r0, r3, r1 + ldrb r4, [r0] + cmp r4, #0 + beq _0819C40C + movs r0, #2 + strh r0, [r5, #8] + b _0819C4C0 + .align 2, 0 +_0819C400: .4byte 0x03001278 +_0819C404: .4byte 0x000002A2 +_0819C408: .4byte 0x000002A9 +_0819C40C: + ldr r2, _0819C43C + adds r1, r3, r2 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r0, [r7] + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, #6 + bls _0819C44C + strb r4, [r1] + ldr r1, [r7] + subs r2, #1 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _0819C440 + movs r3, #0xaa + lsls r3, r3, #2 + adds r1, r1, r3 + ldrb r0, [r1] + subs r0, #1 + b _0819C44A + .align 2, 0 +_0819C43C: .4byte 0x000002A7 +_0819C440: + movs r0, #0xaa + lsls r0, r0, #2 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 +_0819C44A: + strb r0, [r1] +_0819C44C: + movs r0, #0x80 + lsls r0, r0, #7 + ldr r1, [r7] + movs r4, #0xaa + lsls r4, r4, #2 + adds r1, r1, r4 + ldrb r1, [r1] + movs r2, #0 + bl BlendPalettes + ldr r2, [r7] + adds r4, r2, r4 + ldrb r0, [r4] + cmp r0, #5 + bls _0819C478 + ldr r3, _0819C474 + adds r1, r2, r3 + movs r0, #0 + b _0819C4BE + .align 2, 0 +_0819C474: .4byte 0x000002A6 +_0819C478: + cmp r0, #0 + bne _0819C4C0 + ldr r1, _0819C494 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #2 + strh r1, [r0, #8] + ldr r0, _0819C498 + adds r1, r2, r0 + movs r0, #1 + b _0819C4BE + .align 2, 0 +_0819C494: .4byte 0x03005B60 +_0819C498: .4byte 0x000002A6 +_0819C49C: + ldr r0, _0819C4B4 + ldr r0, [r0] + ldr r2, _0819C4B8 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, #0xe + bls _0819C4BC + movs r0, #0 + strb r0, [r1] + movs r0, #1 + strh r0, [r5, #8] + b _0819C4C0 + .align 2, 0 +_0819C4B4: .4byte 0x03001278 +_0819C4B8: .4byte 0x000002A9 +_0819C4BC: + adds r0, #1 +_0819C4BE: + strb r0, [r1] +_0819C4C0: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Task_SelectFadeSpeciesName + + thumb_func_start Swap_CB2 +Swap_CB2: @ 0x0819C4C8 + push {lr} + bl AnimateSprites + bl BuildOamBuffer + bl RunTextPrinters + bl UpdatePaletteFade + bl RunTasks + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Swap_CB2 + + thumb_func_start Swap_VblankCb +Swap_VblankCb: @ 0x0819C4E4 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Swap_VblankCb + + thumb_func_start CopySwappedMonData +CopySwappedMonData: @ 0x0819C4F8 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #4 + ldr r4, _0819C5D8 + ldr r5, _0819C5DC + ldr r1, [r5] + ldrb r0, [r1, #0x12] + movs r6, #0x64 + muls r0, r6, r0 + adds r0, r0, r4 + ldr r2, _0819C5E0 + mov sb, r2 + ldrb r1, [r1, #0x13] + muls r1, r6, r1 + add r1, sb + movs r2, #0x64 + bl memcpy + movs r1, #0 + mov r0, sp + strb r1, [r0] + ldr r0, [r5] + ldrb r0, [r0, #0x12] + muls r0, r6, r0 + adds r0, r0, r4 + movs r1, #0x20 + mov r2, sp + bl SetMonData + ldr r3, _0819C5E4 + mov r8, r3 + ldr r3, [r3] + ldr r4, [r5] + ldrb r0, [r4, #0x12] + lsls r2, r0, #1 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r3, r2 + ldrb r1, [r4, #0x13] + adds r1, #3 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r3, r0 + movs r1, #0xe7 + lsls r1, r1, #4 + adds r0, r0, r1 + ldrh r0, [r0] + adds r2, r2, r1 + strh r0, [r2] + ldrb r0, [r4, #0x12] + lsls r2, r0, #1 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r3, r2 + ldrb r1, [r4, #0x13] + adds r1, #3 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r3, r3, r0 + ldr r0, _0819C5E8 + adds r3, r3, r0 + ldrb r1, [r3] + adds r2, r2, r0 + strb r1, [r2] + ldr r0, [r5] + ldrb r0, [r0, #0x13] + muls r0, r6, r0 + add r0, sb + movs r1, #0 + movs r2, #0 + bl GetMonData + mov r1, r8 + ldr r2, [r1] + ldr r4, [r5] + ldrb r3, [r4, #0x12] + lsls r1, r3, #1 + adds r1, r1, r3 + lsls r1, r1, #2 + ldr r3, _0819C5EC + adds r2, r2, r3 + adds r2, r2, r1 + str r0, [r2] + ldrb r0, [r4, #0x13] + muls r0, r6, r0 + add r0, sb + movs r1, #0x2e + movs r2, #0 + bl GetBoxMonData + mov r1, r8 + ldr r2, [r1] + ldr r1, [r5] + ldrb r3, [r1, #0x12] + lsls r1, r3, #1 + adds r1, r1, r3 + lsls r1, r1, #2 + adds r2, r2, r1 + ldr r3, _0819C5F0 + adds r2, r2, r3 + strb r0, [r2] + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0819C5D8: .4byte 0x02024190 +_0819C5DC: .4byte 0x03001280 +_0819C5E0: .4byte 0x020243E8 +_0819C5E4: .4byte 0x03005AF0 +_0819C5E8: .4byte 0x00000E78 +_0819C5EC: .4byte 0x00000E74 +_0819C5F0: .4byte 0x00000E79 + thumb_func_end CopySwappedMonData + + thumb_func_start Task_FromSwapScreenToSummaryScreen +Task_FromSwapScreenToSummaryScreen: @ 0x0819C5F4 + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _0819C618 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r6, r0, r1 + movs r1, #8 + ldrsh r0, [r6, r1] + cmp r0, #7 + beq _0819C638 + cmp r0, #7 + bgt _0819C61C + cmp r0, #6 + beq _0819C622 + b _0819C6D8 + .align 2, 0 +_0819C618: .4byte 0x03005B60 +_0819C61C: + cmp r0, #8 + beq _0819C6AC + b _0819C6D8 +_0819C622: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + movs r0, #7 + strh r0, [r6, #8] + b _0819C6D8 +_0819C638: + ldr r0, _0819C694 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _0819C6D8 + ldr r4, _0819C698 + ldr r0, [r4] + adds r0, #0x21 + ldrb r0, [r0] + bl DestroyTask + ldr r1, [r4] + ldr r0, [r1, #0x2c] + adds r1, #0x30 + bl sub_0819F330 + bl Swap_DestroyAllSprites + ldr r4, _0819C69C + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0819C6A0 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0819C6A4 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0819C6A8 + ldr r0, [r4] + bl Free + str r5, [r4] + bl FreeAllWindowBuffers + movs r0, #8 + strh r0, [r6, #8] + b _0819C6D8 + .align 2, 0 +_0819C694: .4byte 0x02037C74 +_0819C698: .4byte 0x03001280 +_0819C69C: .4byte 0x0203CB0C +_0819C6A0: .4byte 0x0203CB10 +_0819C6A4: .4byte 0x0203CB14 +_0819C6A8: .4byte 0x0203CB18 +_0819C6AC: + adds r0, r2, #0 + bl DestroyTask + ldr r2, _0819C6E0 + ldr r1, [r2] + movs r0, #1 + strb r0, [r1, #0x15] + ldr r2, [r2] + ldr r0, _0819C6E4 + movs r1, #0xf4 + lsls r1, r1, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2, #0x24] + ldr r1, _0819C6E8 + ldrb r2, [r2, #3] + ldr r0, _0819C6EC + str r0, [sp] + movs r0, #0 + movs r3, #2 + bl ShowPokemonSummaryScreen +_0819C6D8: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0819C6E0: .4byte 0x03001280 +_0819C6E4: .4byte 0x020373B4 +_0819C6E8: .4byte 0x02024190 +_0819C6EC: .4byte 0x0819D905 + thumb_func_end Task_FromSwapScreenToSummaryScreen + + thumb_func_start Task_CloseSwapScreen +Task_CloseSwapScreen: @ 0x0819C6F0 + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r7, _0819C724 + ldr r2, [r7] + adds r0, r2, #0 + adds r0, #0x30 + ldrb r0, [r0] + cmp r0, #1 + beq _0819C7E6 + ldr r1, _0819C728 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r0, #8 + ldrsh r1, [r4, r0] + cmp r1, #1 + beq _0819C760 + cmp r1, #1 + bgt _0819C72C + cmp r1, #0 + beq _0819C736 + b _0819C7E6 + .align 2, 0 +_0819C724: .4byte 0x03001280 +_0819C728: .4byte 0x03005B60 +_0819C72C: + cmp r1, #2 + beq _0819C774 + cmp r1, #3 + beq _0819C78C + b _0819C7E6 +_0819C736: + adds r0, r2, #0 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #1 + bne _0819C750 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + ldr r0, _0819C74C + strh r1, [r0] + b _0819C7E6 + .align 2, 0 +_0819C74C: .4byte 0x02037290 +_0819C750: + movs r0, #2 + strh r0, [r4, #8] + ldr r1, _0819C75C + movs r0, #1 + strh r0, [r1] + b _0819C7E6 + .align 2, 0 +_0819C75C: .4byte 0x02037290 +_0819C760: + adds r0, r2, #0 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #1 + bne _0819C784 + ldrb r0, [r2, #3] + strb r0, [r2, #0x13] + bl CopySwappedMonData + b _0819C784 +_0819C774: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade +_0819C784: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _0819C7E6 +_0819C78C: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _0819C7E6 + ldr r0, [r7] + adds r0, #0x21 + ldrb r0, [r0] + bl DestroyTask + bl Swap_DestroyAllSprites + ldr r4, _0819C7F0 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0819C7F4 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0819C7F8 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0819C7FC + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r0, [r7] + bl Free + str r5, [r7] + bl FreeAllWindowBuffers + ldr r0, _0819C800 + bl SetMainCallback2 + adds r0, r6, #0 + bl DestroyTask +_0819C7E6: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0819C7F0: .4byte 0x0203CB0C +_0819C7F4: .4byte 0x0203CB10 +_0819C7F8: .4byte 0x0203CB14 +_0819C7FC: .4byte 0x0203CB18 +_0819C800: .4byte 0x08085B19 + thumb_func_end Task_CloseSwapScreen + + thumb_func_start Task_HandleSwapScreenYesNo +Task_HandleSwapScreenYesNo: @ 0x0819C804 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r7, _0819C830 + ldr r0, [r7] + adds r0, #0x30 + ldrb r0, [r0] + cmp r0, #1 + beq _0819C8BE + ldr r1, _0819C834 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #4 + beq _0819C838 + cmp r0, #5 + beq _0819C842 + b _0819C8BE + .align 2, 0 +_0819C830: .4byte 0x03001280 +_0819C834: .4byte 0x03005B60 +_0819C838: + bl Swap_ShowYesNoOptions + movs r0, #5 + strh r0, [r4, #8] + b _0819C8BE +_0819C842: + ldr r2, _0819C864 + ldrh r1, [r2, #0x2e] + movs r6, #1 + adds r5, r6, #0 + ands r5, r1 + cmp r5, #0 + beq _0819C86E + movs r0, #5 + bl PlaySE + ldr r0, [r7] + ldrb r0, [r0, #0x16] + cmp r0, #0 + bne _0819C868 + strh r6, [r4, #0xa] + b _0819C884 + .align 2, 0 +_0819C864: .4byte 0x03002360 +_0819C868: + movs r0, #0 + strh r0, [r4, #0xa] + b _0819C87E +_0819C86E: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0819C890 + movs r0, #5 + bl PlaySE + strh r5, [r4, #0xa] +_0819C87E: + movs r0, #4 + bl sub_0819E76C +_0819C884: + ldrh r0, [r4, #0x14] + ldrh r1, [r4, #0x16] + lsls r0, r0, #0x10 + orrs r0, r1 + str r0, [r4] + b _0819C8BE +_0819C890: + ldrh r1, [r2, #0x30] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0819C8AA + movs r0, #5 + bl PlaySE + movs r0, #1 + rsbs r0, r0, #0 + bl Swap_UpdateYesNoCursorPosition + b _0819C8BE +_0819C8AA: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0819C8BE + movs r0, #5 + bl PlaySE + movs r0, #1 + bl Swap_UpdateYesNoCursorPosition +_0819C8BE: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end Task_HandleSwapScreenYesNo + + thumb_func_start sub_0819C8C4 +sub_0819C8C4: @ 0x0819C8C4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0819C8E4 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r2, r1, r2 + movs r1, #0xa + ldrsh r0, [r2, r1] + cmp r0, #1 + bne _0819C8EC + movs r0, #0 + strh r0, [r2, #8] + ldr r0, _0819C8E8 + b _0819C8FE + .align 2, 0 +_0819C8E4: .4byte 0x03005B60 +_0819C8E8: .4byte 0x0819C6F1 +_0819C8EC: + movs r0, #0 + strh r0, [r2, #8] + ldr r1, _0819C904 + lsrs r0, r1, #0x10 + strh r0, [r2, #0x14] + strh r1, [r2, #0x16] + movs r0, #1 + strh r0, [r2, #0x12] + ldr r0, _0819C908 +_0819C8FE: + str r0, [r2] + pop {r0} + bx r0 + .align 2, 0 +_0819C904: .4byte 0x0819CB29 +_0819C908: .4byte 0x0819D459 + thumb_func_end sub_0819C8C4 + + thumb_func_start sub_0819C90C +sub_0819C90C: @ 0x0819C90C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0819C948 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 + movs r0, #8 + ldrsh r5, [r4, r0] + cmp r5, #0 + bne _0819C942 + ldr r0, _0819C94C + bl Swap_PrintOnInfoWindow + ldr r0, _0819C950 + ldr r0, [r0] + adds r0, #0x20 + strb r5, [r0] + movs r0, #4 + strh r0, [r4, #8] + ldr r1, _0819C954 + lsrs r0, r1, #0x10 + strh r0, [r4, #0x14] + strh r1, [r4, #0x16] + ldr r0, _0819C958 + str r0, [r4] +_0819C942: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0819C948: .4byte 0x03005B60 +_0819C94C: .4byte 0x085DC0FB +_0819C950: .4byte 0x03001280 +_0819C954: .4byte 0x0819C8C5 +_0819C958: .4byte 0x0819C805 + thumb_func_end sub_0819C90C + + thumb_func_start sub_0819C95C +sub_0819C95C: @ 0x0819C95C + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _0819C98C + ldr r1, [r0] + ldr r0, [r1, #0x2c] + adds r1, #0x30 + movs r2, #1 + bl sub_0819F2E4 + ldr r1, _0819C990 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r2, r0, r1 + movs r1, #0xa + ldrsh r0, [r2, r1] + cmp r0, #1 + bne _0819C998 + movs r0, #0 + strh r0, [r2, #8] + ldr r0, _0819C994 + b _0819C9AA + .align 2, 0 +_0819C98C: .4byte 0x03001280 +_0819C990: .4byte 0x03005B60 +_0819C994: .4byte 0x0819C6F1 +_0819C998: + movs r0, #0 + strh r0, [r2, #8] + ldr r1, _0819C9B4 + lsrs r0, r1, #0x10 + strh r0, [r2, #0x14] + strh r1, [r2, #0x16] + movs r0, #1 + strh r0, [r2, #0x12] + ldr r0, _0819C9B8 +_0819C9AA: + str r0, [r2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0819C9B4: .4byte 0x0819CB29 +_0819C9B8: .4byte 0x0819D459 + thumb_func_end sub_0819C95C + + thumb_func_start sub_0819C9BC +sub_0819C9BC: @ 0x0819C9BC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0819CA08 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r5, r1, r2 + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _0819CA02 + ldr r4, _0819CA0C + ldr r1, [r4] + adds r0, r1, #0 + adds r0, #0x2d + adds r1, #0x30 + movs r2, #1 + bl sub_0819F1A0 + ldr r0, _0819CA10 + bl Swap_PrintOnInfoWindow + ldr r0, [r4] + adds r0, #0x20 + movs r1, #1 + strb r1, [r0] + movs r0, #4 + strh r0, [r5, #8] + ldr r1, _0819CA14 + lsrs r0, r1, #0x10 + strh r0, [r5, #0x14] + strh r1, [r5, #0x16] + ldr r0, _0819CA18 + str r0, [r5] +_0819CA02: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0819CA08: .4byte 0x03005B60 +_0819CA0C: .4byte 0x03001280 +_0819CA10: .4byte 0x085DC12B +_0819CA14: .4byte 0x0819C95D +_0819CA18: .4byte 0x0819C805 + thumb_func_end sub_0819C9BC + + thumb_func_start Task_HandleSwapScreenMenu +Task_HandleSwapScreenMenu: @ 0x0819CA1C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _0819CA44 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r5, r0, r1 + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #3 + beq _0819CA8C + cmp r0, #3 + bgt _0819CA48 + cmp r0, #2 + beq _0819CA4E + b _0819CB1E + .align 2, 0 +_0819CA44: .4byte 0x03005B60 +_0819CA48: + cmp r0, #9 + beq _0819CA70 + b _0819CB1E +_0819CA4E: + ldr r0, _0819CA6C + ldr r1, [r0] + ldrb r0, [r1, #0x15] + cmp r0, #0 + bne _0819CA64 + adds r0, r1, #0 + adds r0, #0x2d + adds r1, #0x30 + movs r2, #1 + bl sub_0819F1A0 +_0819CA64: + movs r0, #9 + strh r0, [r5, #8] + b _0819CB1E + .align 2, 0 +_0819CA6C: .4byte 0x03001280 +_0819CA70: + ldr r0, _0819CA88 + ldr r0, [r0] + adds r0, #0x30 + ldrb r0, [r0] + cmp r0, #1 + beq _0819CB1E + bl Swap_ShowMenuOptions + movs r0, #3 + strh r0, [r5, #8] + b _0819CB1E + .align 2, 0 +_0819CA88: .4byte 0x03001280 +_0819CA8C: + ldr r7, _0819CAB8 + ldr r0, [r7] + adds r0, #0x30 + ldrb r0, [r0] + cmp r0, #1 + beq _0819CB1E + ldr r2, _0819CABC + ldrh r1, [r2, #0x2e] + movs r0, #1 + mov r8, r0 + mov r4, r8 + ands r4, r1 + cmp r4, #0 + beq _0819CAC0 + movs r0, #5 + bl PlaySE + adds r0, r6, #0 + bl Swap_RunMenuOptionFunc + b _0819CB1E + .align 2, 0 +_0819CAB8: .4byte 0x03001280 +_0819CABC: .4byte 0x03002360 +_0819CAC0: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0819CAFC + movs r0, #5 + bl PlaySE + ldr r1, [r7] + ldr r0, [r1, #0x2c] + adds r1, #0x30 + movs r2, #1 + bl sub_0819F2E4 + movs r0, #3 + bl sub_0819E76C + strh r4, [r5, #8] + ldr r1, _0819CAF4 + lsrs r0, r1, #0x10 + strh r0, [r5, #0x14] + strh r1, [r5, #0x16] + mov r1, r8 + strh r1, [r5, #0x12] + ldr r0, _0819CAF8 + str r0, [r5] + b _0819CB1E + .align 2, 0 +_0819CAF4: .4byte 0x0819CB29 +_0819CAF8: .4byte 0x0819D459 +_0819CAFC: + ldrh r1, [r2, #0x30] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0819CB10 + movs r0, #1 + rsbs r0, r0, #0 + bl Swap_UpdateMenuCursorPosition + b _0819CB1E +_0819CB10: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0819CB1E + movs r0, #1 + bl Swap_UpdateMenuCursorPosition +_0819CB1E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end Task_HandleSwapScreenMenu + + thumb_func_start Task_HandleSwapScreenChooseMons +Task_HandleSwapScreenChooseMons: @ 0x0819CB28 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _0819CB48 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0819CB4C + cmp r0, #1 + beq _0819CB70 + b _0819CC34 + .align 2, 0 +_0819CB48: .4byte 0x03005B60 +_0819CB4C: + ldr r0, _0819CB68 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0819CC34 + ldr r0, _0819CB6C + ldr r0, [r0] + adds r0, #0x22 + movs r1, #1 + strb r1, [r0] + strh r1, [r4, #8] + b _0819CC34 + .align 2, 0 +_0819CB68: .4byte 0x02037C74 +_0819CB6C: .4byte 0x03001280 +_0819CB70: + ldr r2, _0819CB9C + ldrh r1, [r2, #0x2e] + adds r5, r1, #0 + ands r5, r0 + cmp r5, #0 + beq _0819CBA4 + movs r0, #5 + bl PlaySE + ldr r0, _0819CBA0 + ldr r0, [r0] + adds r0, #0x22 + movs r1, #0 + strb r1, [r0] + bl Swap_PrintMonSpecies2 + bl sub_0819E7C8 + adds r0, r6, #0 + bl Swap_RunActionFunc + b _0819CC34 + .align 2, 0 +_0819CB9C: .4byte 0x03002360 +_0819CBA0: .4byte 0x03001280 +_0819CBA4: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0819CBE0 + movs r0, #5 + bl PlaySE + ldr r0, _0819CBD4 + ldr r0, [r0] + adds r0, #0x22 + strb r5, [r0] + bl Swap_PrintMonSpecies2 + bl sub_0819E7C8 + ldr r1, _0819CBD8 + lsrs r0, r1, #0x10 + strh r0, [r4, #0x14] + strh r1, [r4, #0x16] + strh r5, [r4, #8] + strh r5, [r4, #0x12] + ldr r0, _0819CBDC + str r0, [r4] + b _0819CC34 + .align 2, 0 +_0819CBD4: .4byte 0x03001280 +_0819CBD8: .4byte 0x0819C90D +_0819CBDC: .4byte 0x0819D271 +_0819CBE0: + ldrh r1, [r2, #0x30] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0819CBF4 + movs r0, #1 + rsbs r0, r0, #0 + bl Swap_UpdateBallCursorPosition + b _0819CC12 +_0819CBF4: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0819CC04 + movs r0, #1 + bl Swap_UpdateBallCursorPosition + b _0819CC12 +_0819CC04: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0819CC1C + movs r0, #1 + bl Swap_UpdateActionCursorPosition +_0819CC12: + bl Swap_PrintMonCategory + bl Swap_PrintMonSpecies + b _0819CC34 +_0819CC1C: + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0819CC34 + movs r0, #1 + rsbs r0, r0, #0 + bl Swap_UpdateActionCursorPosition + bl Swap_PrintMonCategory + bl Swap_PrintMonSpecies +_0819CC34: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Task_HandleSwapScreenChooseMons + + thumb_func_start Task_SwapFadeSpeciesName +Task_SwapFadeSpeciesName: @ 0x0819CC3C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _0819CC60 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r0, #8 + ldrsh r2, [r4, r0] + cmp r2, #1 + beq _0819CC88 + cmp r2, #1 + bgt _0819CC64 + cmp r2, #0 + beq _0819CC6A + b _0819CD44 + .align 2, 0 +_0819CC60: .4byte 0x03005B60 +_0819CC64: + cmp r2, #2 + beq _0819CD24 + b _0819CD44 +_0819CC6A: + ldr r1, _0819CC84 + ldr r0, [r1] + adds r0, #0x27 + strb r2, [r0] + ldr r0, [r1] + adds r0, #0x28 + strb r2, [r0] + ldr r0, [r1] + adds r0, #0x26 + movs r1, #1 + strb r1, [r0] + strh r1, [r4, #8] + b _0819CD44 + .align 2, 0 +_0819CC84: .4byte 0x03001280 +_0819CC88: + ldr r1, _0819CCA8 + ldr r2, [r1] + adds r0, r2, #0 + adds r0, #0x22 + ldrb r0, [r0] + adds r6, r1, #0 + cmp r0, #0 + beq _0819CD44 + adds r0, r2, #0 + adds r0, #0x29 + ldrb r3, [r0] + cmp r3, #0 + beq _0819CCAC + movs r0, #2 + strh r0, [r4, #8] + b _0819CD44 + .align 2, 0 +_0819CCA8: .4byte 0x03001280 +_0819CCAC: + adds r1, r2, #0 + adds r1, #0x27 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r0, [r6] + adds r1, r0, #0 + adds r1, #0x27 + ldrb r0, [r1] + cmp r0, #6 + bls _0819CCE0 + strb r3, [r1] + ldr r1, [r6] + adds r0, r1, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + bne _0819CCD8 + adds r1, #0x28 + ldrb r0, [r1] + subs r0, #1 + b _0819CCDE +_0819CCD8: + adds r1, #0x28 + ldrb r0, [r1] + adds r0, #1 +_0819CCDE: + strb r0, [r1] +_0819CCE0: + movs r0, #0x80 + lsls r0, r0, #7 + ldr r1, [r6] + adds r1, #0x28 + ldrb r1, [r1] + movs r2, #0 + bl BlendPalettes + ldr r2, [r6] + adds r0, r2, #0 + adds r0, #0x28 + ldrb r0, [r0] + cmp r0, #5 + bls _0819CD04 + adds r1, r2, #0 + adds r1, #0x26 + movs r0, #0 + b _0819CD42 +_0819CD04: + cmp r0, #0 + bne _0819CD44 + ldr r1, _0819CD20 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #2 + strh r1, [r0, #8] + adds r1, r2, #0 + adds r1, #0x26 + movs r0, #1 + b _0819CD42 + .align 2, 0 +_0819CD20: .4byte 0x03005B60 +_0819CD24: + ldr r0, _0819CD3C + ldr r0, [r0] + adds r1, r0, #0 + adds r1, #0x29 + ldrb r0, [r1] + cmp r0, #0xe + bls _0819CD40 + movs r0, #0 + strb r0, [r1] + movs r0, #1 + strh r0, [r4, #8] + b _0819CD44 + .align 2, 0 +_0819CD3C: .4byte 0x03001280 +_0819CD40: + adds r0, #1 +_0819CD42: + strb r0, [r1] +_0819CD44: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Task_SwapFadeSpeciesName + + thumb_func_start Task_SwapFadeSpeciesName2 +Task_SwapFadeSpeciesName2: @ 0x0819CD4C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0819CD70 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 + movs r0, #8 + ldrsh r1, [r4, r0] + cmp r1, #1 + beq _0819CD8C + cmp r1, #1 + bgt _0819CD74 + cmp r1, #0 + beq _0819CD7A + b _0819CE00 + .align 2, 0 +_0819CD70: .4byte 0x03005B60 +_0819CD74: + cmp r1, #2 + beq _0819CDA4 + b _0819CE00 +_0819CD7A: + ldr r0, _0819CD88 + ldr r0, [r0] + adds r0, #0x27 + strb r1, [r0] + strh r1, [r4, #0x10] + b _0819CD96 + .align 2, 0 +_0819CD88: .4byte 0x03001280 +_0819CD8C: + ldr r0, _0819CDA0 + movs r1, #0xe0 + movs r2, #0xa + bl LoadPalette +_0819CD96: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _0819CE00 + .align 2, 0 +_0819CDA0: .4byte 0x02037594 +_0819CDA4: + ldr r2, _0819CE08 + ldr r0, [r2] + adds r0, #0x28 + ldrb r0, [r0] + cmp r0, #0xf + bls _0819CDBA + movs r0, #1 + strh r0, [r4, #0x10] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_0819CDBA: + ldr r1, [r2] + adds r1, #0x27 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r0, [r2] + adds r1, r0, #0 + adds r1, #0x27 + ldrb r0, [r1] + cmp r0, #3 + bls _0819CDF0 + movs r0, #0 + strb r0, [r1] + ldr r1, _0819CE0C + ldr r0, _0819CE10 + movs r3, #0xe4 + lsls r3, r3, #1 + adds r0, r0, r3 + ldrh r0, [r0] + adds r3, #0x20 + adds r1, r1, r3 + strh r0, [r1] + ldr r1, [r2] + adds r1, #0x28 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0819CDF0: + movs r0, #0x80 + lsls r0, r0, #7 + ldr r1, [r2] + adds r1, #0x28 + ldrb r1, [r1] + movs r2, #0 + bl BlendPalettes +_0819CE00: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0819CE08: .4byte 0x03001280 +_0819CE0C: .4byte 0x020373B4 +_0819CE10: .4byte 0x020377B4 + thumb_func_end Task_SwapFadeSpeciesName2 + + thumb_func_start sub_0819CE14 +sub_0819CE14: @ 0x0819CE14 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + ldr r1, _0819CE40 + lsls r0, r0, #2 + ldr r2, [sp] + adds r0, r0, r2 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r2, #8 + ldrsh r3, [r4, r2] + cmp r3, #0 + beq _0819CE44 + cmp r3, #1 + beq _0819CE50 + b _0819CFF8 + .align 2, 0 +_0819CE40: .4byte 0x03005B60 +_0819CE44: + strh r3, [r4, #0xa] + strh r3, [r4, #0xc] + strh r3, [r4, #0xe] + movs r0, #1 + strh r0, [r4, #8] + b _0819CFF8 +_0819CE50: + movs r3, #0 + str r3, [sp, #4] + movs r1, #2 + str r0, [sp, #8] + ldr r0, _0819CEB4 + str r0, [sp, #0xc] +_0819CE5C: + lsls r0, r1, #0x18 + asrs r4, r0, #0x18 + mov sb, r0 + cmp r4, #2 + beq _0819CEDA + ldr r2, _0819CEB8 + ldr r3, _0819CEBC + ldr r0, [r3] + adds r0, #5 + mov r8, r0 + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r6, r0, r2 + ldrh r1, [r6, #0x20] + mov ip, r1 + mov r7, ip + ldr r1, [sp, #4] + subs r0, r1, r7 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + mov sl, r2 + cmp r5, #0x10 + beq _0819CEA6 + adds r0, r4, #2 + lsls r0, r0, #1 + ldr r2, [sp, #8] + adds r0, r0, r2 + ldr r1, _0819CEB4 + adds r1, #8 + adds r0, r0, r1 + movs r3, #0 + ldrsh r0, [r0, r3] + cmp r0, #1 + bne _0819CEC0 +_0819CEA6: + lsls r0, r7, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + mov r0, ip + adds r0, #0xa + strh r0, [r6, #0x20] + b _0819CEF8 + .align 2, 0 +_0819CEB4: .4byte 0x03005B60 +_0819CEB8: .4byte 0x020205AC +_0819CEBC: .4byte 0x03001280 +_0819CEC0: + cmp r5, #0x10 + bls _0819CEF8 + adds r0, r4, #1 + add r0, r8 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sl + ldrh r0, [r0, #0x20] + subs r0, #0x30 + strh r0, [r6, #0x20] + b _0819CEF8 +_0819CEDA: + ldr r3, _0819CF3C + ldr r4, _0819CF40 + ldr r0, [r4] + ldrb r1, [r0, #7] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r2, [r0, #0x20] + lsls r1, r2, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp, #4] + adds r2, #0xa + strh r2, [r0, #0x20] + mov sl, r3 +_0819CEF8: + mov r0, sb + asrs r2, r0, #0x18 + adds r0, r2, #1 + lsls r0, r0, #1 + ldr r1, [sp, #8] + adds r0, r0, r1 + ldr r1, _0819CF44 + adds r1, #8 + adds r0, r0, r1 + movs r3, #0 + ldrsh r0, [r0, r3] + cmp r0, #1 + bne _0819CF52 + ldr r1, _0819CF40 + ldr r0, [r1] + adds r0, #5 + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + mov r3, sl + adds r1, r0, r3 + movs r0, #0x20 + ldrsh r3, [r1, r0] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #4 + adds r0, #0x48 + cmp r3, r0 + ble _0819CF48 + strh r0, [r1, #0x20] + movs r7, #1 + b _0819CF54 + .align 2, 0 +_0819CF3C: .4byte 0x020205AC +_0819CF40: .4byte 0x03001280 +_0819CF44: .4byte 0x03005B60 +_0819CF48: + movs r7, #0 + cmp r3, r0 + bne _0819CF54 + movs r7, #1 + b _0819CF54 +_0819CF52: + movs r7, #0 +_0819CF54: + mov r6, sl + ldr r5, _0819CFA0 + ldr r2, [r5] + mov r1, sb + asrs r4, r1, #0x18 + adds r0, r2, #5 + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r6 + movs r3, #0x20 + ldrsh r0, [r1, r3] + subs r0, #0x10 + cmp r0, #0xf0 + ble _0819CFE0 + ldrh r0, [r1, #0x20] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + ldr r0, _0819CFA4 + strh r0, [r1, #0x20] + ldrb r0, [r2, #0x14] + cmp r0, #1 + bne _0819CFA8 + movs r0, #0x65 + bl IndexOfSpritePaletteTag + ldr r1, [r5] + adds r1, #5 + adds r1, r1, r4 + ldrb r1, [r1] + lsls r2, r1, #4 + adds r2, r2, r1 + lsls r2, r2, #2 + adds r2, r2, r6 + b _0819CFC0 + .align 2, 0 +_0819CFA0: .4byte 0x03001280 +_0819CFA4: .4byte 0x0000FFF0 +_0819CFA8: + movs r0, #0x64 + bl IndexOfSpritePaletteTag + ldr r2, _0819D008 + ldr r1, [r2] + adds r1, #5 + adds r1, r1, r4 + ldrb r1, [r1] + lsls r2, r1, #4 + adds r2, r2, r1 + lsls r2, r2, #2 + add r2, sl +_0819CFC0: + lsls r0, r0, #4 + ldrb r3, [r2, #5] + movs r1, #0xf + ands r1, r3 + orrs r1, r0 + strb r1, [r2, #5] + mov r3, sb + asrs r0, r3, #0x17 + adds r0, #2 + ldr r1, [sp, #8] + adds r0, r0, r1 + ldr r2, [sp, #0xc] + adds r2, #8 + adds r0, r0, r2 + movs r1, #1 + strh r1, [r0] +_0819CFE0: + movs r0, #0xff + lsls r0, r0, #0x18 + add r0, sb + lsrs r1, r0, #0x18 + cmp r0, #0 + blt _0819CFEE + b _0819CE5C +_0819CFEE: + cmp r7, #1 + bne _0819CFF8 + ldr r0, [sp] + bl DestroyTask +_0819CFF8: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0819D008: .4byte 0x03001280 + thumb_func_end sub_0819CE14 + + thumb_func_start sub_0819D00C +sub_0819D00C: @ 0x0819D00C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r0, #0 + mov r8, r0 + ldr r1, _0819D04C + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r2, r0, r1 + ldrb r4, [r2, #0xe] + movs r0, #0xc + ldrsh r5, [r2, r0] + mov sl, r1 + cmp r5, #1 + bne _0819D03A + lsls r0, r4, #0x18 + rsbs r0, r0, #0 + lsrs r4, r0, #0x18 +_0819D03A: + movs r1, #8 + ldrsh r0, [r2, r1] + cmp r0, #0 + beq _0819D050 + cmp r0, #1 + bne _0819D048 + b _0819D168 +_0819D048: + b _0819D258 + .align 2, 0 +_0819D04C: .4byte 0x03005B60 +_0819D050: + ldr r3, _0819D07C + ldr r2, _0819D080 + ldr r0, [r2] + ldrb r1, [r0, #8] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r0, [r0, #0x20] + cmp r5, #0 + bne _0819D084 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r2, r4, #0x18 + asrs r1, r2, #0x18 + adds r0, r0, r1 + movs r1, #1 + cmp r0, #0xef + ble _0819D09A + movs r1, #0 + movs r0, #0xf0 + b _0819D098 + .align 2, 0 +_0819D07C: .4byte 0x020205AC +_0819D080: .4byte 0x03001280 +_0819D084: + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r2, r4, #0x18 + asrs r1, r2, #0x18 + adds r0, r0, r1 + movs r1, #1 + cmp r0, #0xa0 + bgt _0819D09A + movs r1, #0 + movs r0, #0xa0 +_0819D098: + mov r8, r0 +_0819D09A: + cmp r1, #1 + bne _0819D0E4 + movs r3, #0 + ldr r7, _0819D0DC + ldr r6, _0819D0E0 + asrs r5, r2, #0x18 +_0819D0A6: + movs r4, #0 + adds r2, r3, #1 +_0819D0AA: + ldr r1, [r6] + lsls r0, r4, #1 + adds r0, r0, r4 + adds r0, r3, r0 + adds r1, #8 + adds r1, r1, r0 + ldrb r1, [r1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrh r1, [r0, #0x20] + adds r1, r1, r5 + strh r1, [r0, #0x20] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #1 + bls _0819D0AA + lsls r0, r2, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #2 + bls _0819D0A6 + b _0819D258 + .align 2, 0 +_0819D0DC: .4byte 0x020205AC +_0819D0E0: .4byte 0x03001280 +_0819D0E4: + movs r4, #0 + lsls r1, r7, #2 + mov ip, r1 + mov r6, r8 + adds r6, #0x10 + movs r0, #0x30 + add r0, r8 + mov sb, r0 + ldr r5, _0819D160 +_0819D0F6: + ldr r1, _0819D164 + ldr r2, [r1] + lsls r3, r4, #1 + adds r3, r3, r4 + adds r0, r2, #0 + adds r0, #8 + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + mov r1, r8 + strh r1, [r0, #0x20] + adds r0, r2, #0 + adds r0, #9 + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r6, [r0, #0x20] + adds r2, #0xa + adds r2, r2, r3 + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + mov r1, sb + strh r1, [r0, #0x20] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #1 + bls _0819D0F6 + mov r1, ip + adds r0, r1, r7 + lsls r0, r0, #3 + add r0, sl + ldrb r1, [r0, #0xa] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + add r0, sl + movs r1, #1 + strh r1, [r0, #0xe] + adds r0, r7, #0 + bl DestroyTask + b _0819D258 + .align 2, 0 +_0819D160: .4byte 0x020205AC +_0819D164: .4byte 0x03001280 +_0819D168: + ldr r2, _0819D194 + ldr r0, _0819D198 + ldr r0, [r0] + ldrb r1, [r0, #0xe] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0, #0x20] + cmp r5, #0 + bne _0819D19C + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r2, r4, #0x18 + asrs r1, r2, #0x18 + adds r0, r0, r1 + movs r1, #1 + cmp r0, #0xef + ble _0819D1B2 + movs r1, #0 + movs r0, #0xf0 + b _0819D1B0 + .align 2, 0 +_0819D194: .4byte 0x020205AC +_0819D198: .4byte 0x03001280 +_0819D19C: + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r2, r4, #0x18 + asrs r1, r2, #0x18 + adds r0, r0, r1 + movs r1, #1 + cmp r0, #0xc0 + bgt _0819D1B2 + movs r1, #0 + movs r0, #0xc0 +_0819D1B0: + mov r8, r0 +_0819D1B2: + cmp r1, #1 + bne _0819D1F8 + movs r3, #0 + ldr r7, _0819D1F0 + ldr r6, _0819D1F4 + asrs r5, r2, #0x18 +_0819D1BE: + movs r4, #0 + adds r2, r3, #1 +_0819D1C2: + ldr r0, [r6] + lsls r1, r4, #1 + adds r1, r3, r1 + adds r0, #0xe + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrh r1, [r0, #0x20] + adds r1, r1, r5 + strh r1, [r0, #0x20] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #1 + bls _0819D1C2 + lsls r0, r2, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #1 + bls _0819D1BE + b _0819D258 + .align 2, 0 +_0819D1F0: .4byte 0x020205AC +_0819D1F4: .4byte 0x03001280 +_0819D1F8: + movs r4, #0 + lsls r1, r7, #2 + mov ip, r1 + mov r6, r8 + adds r6, #0x10 + ldr r5, _0819D268 + ldr r0, _0819D26C + mov sb, r0 +_0819D208: + mov r1, sb + ldr r2, [r1] + lsls r3, r4, #1 + adds r0, r2, #0 + adds r0, #0xe + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + mov r1, r8 + strh r1, [r0, #0x20] + adds r2, #0xf + adds r2, r2, r3 + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r6, [r0, #0x20] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #1 + bls _0819D208 + mov r1, ip + adds r0, r1, r7 + lsls r0, r0, #3 + add r0, sl + ldrb r1, [r0, #0xa] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + add r0, sl + movs r1, #1 + strh r1, [r0, #0x10] + adds r0, r7, #0 + bl DestroyTask +_0819D258: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0819D268: .4byte 0x020205AC +_0819D26C: .4byte 0x03001280 + thumb_func_end sub_0819D00C + + thumb_func_start sub_0819D270 +sub_0819D270: @ 0x0819D270 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _0819D29C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #8 + ldrsh r0, [r0, r2] + mov r8, r1 + cmp r0, #5 + bls _0819D292 + b _0819D44A +_0819D292: + lsls r0, r0, #2 + ldr r1, _0819D2A0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0819D29C: .4byte 0x03005B60 +_0819D2A0: .4byte 0x0819D2A4 +_0819D2A4: @ jump table + .4byte _0819D2BC @ case 0 + .4byte _0819D2D8 @ case 1 + .4byte _0819D2F4 @ case 2 + .4byte _0819D324 @ case 3 + .4byte _0819D3D8 @ case 4 + .4byte _0819D422 @ case 5 +_0819D2BC: + ldr r0, _0819D2D4 + movs r1, #0xe0 + movs r2, #0xa + bl LoadPalette + bl Swap_PrintActionStrings + movs r0, #5 + bl PutWindowTilemap + b _0819D30A + .align 2, 0 +_0819D2D4: .4byte 0x085DC1C4 +_0819D2D8: + movs r0, #3 + bl sub_0819E76C + ldr r0, _0819D2F0 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _0819D44A + .align 2, 0 +_0819D2F0: .4byte 0x03005B60 +_0819D2F4: + movs r0, #0x80 + lsls r0, r0, #7 + ldr r1, _0819D31C + adds r1, #0x4a + ldrh r1, [r1] + str r1, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade +_0819D30A: + ldr r1, _0819D320 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #8] + adds r1, #1 + strh r1, [r0, #8] + b _0819D44A + .align 2, 0 +_0819D31C: .4byte 0x085D9C38 +_0819D320: .4byte 0x03005B60 +_0819D324: + ldr r0, _0819D388 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + beq _0819D336 + b _0819D44A +_0819D336: + movs r0, #5 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #5 + movs r1, #2 + bl CopyWindowToVram + ldr r0, _0819D38C + ldr r0, [r0] + ldrb r0, [r0, #0x14] + cmp r0, #1 + bne _0819D398 + ldr r0, _0819D390 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _0819D394 + lsls r2, r5, #2 + adds r2, r2, r5 + lsls r2, r2, #3 + adds r2, r2, r1 + strh r6, [r2, #0xe] + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r5, [r0, #0xa] + strh r6, [r0, #8] + strh r6, [r0, #0xc] + movs r1, #6 + strh r1, [r0, #0xe] + movs r0, #5 + strh r0, [r2, #0xc] + ldrh r0, [r2, #8] + adds r0, #1 + strh r0, [r2, #8] + b _0819D44A + .align 2, 0 +_0819D388: .4byte 0x02037C74 +_0819D38C: .4byte 0x03001280 +_0819D390: .4byte 0x0819D00D +_0819D394: .4byte 0x03005B60 +_0819D398: + ldr r0, _0819D3D0 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r3, _0819D3D4 + lsls r2, r5, #2 + adds r2, r2, r5 + lsls r2, r2, #3 + adds r2, r2, r3 + movs r1, #1 + strh r1, [r2, #0xe] + strh r6, [r2, #0x10] + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r3 + strh r5, [r0, #0xa] + strh r1, [r0, #8] + strh r6, [r0, #0xc] + movs r1, #6 + strh r1, [r0, #0xe] + ldrh r0, [r2, #8] + adds r0, #2 + strh r0, [r2, #8] + b _0819D44A + .align 2, 0 +_0819D3D0: .4byte 0x0819D00D +_0819D3D4: .4byte 0x03005B60 +_0819D3D8: + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + mov r1, r8 + adds r6, r0, r1 + ldrh r0, [r6, #0xc] + movs r2, #0xc + ldrsh r7, [r6, r2] + cmp r7, #0 + bne _0819D41C + ldr r0, _0819D418 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + strh r7, [r6, #0x10] + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + add r0, r8 + strh r5, [r0, #0xa] + movs r1, #1 + strh r1, [r0, #8] + strh r7, [r0, #0xc] + movs r1, #6 + strh r1, [r0, #0xe] + ldrh r0, [r6, #8] + adds r0, #1 + strh r0, [r6, #8] + b _0819D44A + .align 2, 0 +_0819D418: .4byte 0x0819D00D +_0819D41C: + subs r0, #1 + strh r0, [r6, #0xc] + b _0819D44A +_0819D422: + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + mov r1, r8 + adds r2, r0, r1 + movs r1, #0xe + ldrsh r0, [r2, r1] + cmp r0, #1 + bne _0819D44A + movs r1, #0x10 + ldrsh r0, [r2, r1] + cmp r0, #1 + bne _0819D44A + ldrh r0, [r2, #0x12] + strh r0, [r2, #8] + ldrh r0, [r2, #0x14] + ldrh r1, [r2, #0x16] + lsls r0, r0, #0x10 + orrs r0, r1 + str r0, [r2] +_0819D44A: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0819D270 + + thumb_func_start sub_0819D458 +sub_0819D458: @ 0x0819D458 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _0819D498 + ldr r0, [r1] + adds r0, #0x30 + ldrb r0, [r0] + adds r3, r1, #0 + cmp r0, #1 + bne _0819D474 + b _0819D6C0 +_0819D474: + ldr r0, _0819D49C + lsls r2, r6, #2 + adds r1, r2, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r4, #8 + ldrsh r1, [r1, r4] + mov r8, r0 + adds r5, r2, #0 + cmp r1, #8 + bls _0819D48C + b _0819D6C0 +_0819D48C: + lsls r0, r1, #2 + ldr r1, _0819D4A0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0819D498: .4byte 0x03001280 +_0819D49C: .4byte 0x03005B60 +_0819D4A0: .4byte 0x0819D4A4 +_0819D4A4: @ jump table + .4byte _0819D4C8 @ case 0 + .4byte _0819D550 @ case 1 + .4byte _0819D596 @ case 2 + .4byte _0819D5DC @ case 3 + .4byte _0819D5F8 @ case 4 + .4byte _0819D610 @ case 5 + .4byte _0819D61E @ case 6 + .4byte _0819D630 @ case 7 + .4byte _0819D698 @ case 8 +_0819D4C8: + ldr r0, [r3] + ldrb r7, [r0, #0x14] + cmp r7, #1 + bne _0819D510 + ldr r0, _0819D508 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r3, _0819D50C + adds r2, r5, r6 + lsls r2, r2, #3 + adds r2, r2, r3 + movs r1, #0 + strh r1, [r2, #0xe] + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r3 + strh r6, [r0, #0xa] + strh r1, [r0, #8] + strh r7, [r0, #0xc] + movs r1, #6 + strh r1, [r0, #0xe] + movs r0, #0xa + strh r0, [r2, #0xc] + ldrh r0, [r2, #8] + adds r0, #1 + strh r0, [r2, #8] + b _0819D6C0 + .align 2, 0 +_0819D508: .4byte 0x0819D00D +_0819D50C: .4byte 0x03005B60 +_0819D510: + ldr r0, _0819D548 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r3, _0819D54C + adds r2, r5, r6 + lsls r2, r2, #3 + adds r2, r2, r3 + movs r0, #0 + movs r1, #1 + strh r1, [r2, #0xe] + strh r0, [r2, #0x10] + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r3 + strh r6, [r0, #0xa] + strh r1, [r0, #8] + strh r1, [r0, #0xc] + movs r1, #6 + strh r1, [r0, #0xe] + ldrh r0, [r2, #8] + adds r0, #2 + strh r0, [r2, #8] + b _0819D6C0 + .align 2, 0 +_0819D548: .4byte 0x0819D00D +_0819D54C: .4byte 0x03005B60 +_0819D550: + adds r0, r5, r6 + lsls r0, r0, #3 + mov r1, r8 + adds r5, r0, r1 + ldrh r0, [r5, #0xc] + movs r2, #0xc + ldrsh r7, [r5, r2] + cmp r7, #0 + bne _0819D590 + ldr r0, _0819D58C + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + strh r7, [r5, #0x10] + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + add r0, r8 + strh r6, [r0, #0xa] + movs r1, #1 + strh r1, [r0, #8] + strh r1, [r0, #0xc] + movs r1, #6 + strh r1, [r0, #0xe] + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + b _0819D6C0 + .align 2, 0 +_0819D58C: .4byte 0x0819D00D +_0819D590: + subs r0, #1 + strh r0, [r5, #0xc] + b _0819D6C0 +_0819D596: + adds r0, r5, r6 + lsls r0, r0, #3 + mov r1, r8 + adds r4, r0, r1 + movs r2, #0xe + ldrsh r0, [r4, r2] + cmp r0, #1 + beq _0819D5A8 + b _0819D6C0 +_0819D5A8: + movs r1, #0x10 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _0819D5B2 + b _0819D6C0 +_0819D5B2: + ldr r1, _0819D5D4 + ldr r0, _0819D5D8 + adds r0, #0x4a + ldrh r0, [r0] + movs r2, #0xe2 + lsls r2, r2, #1 + adds r1, r1, r2 + strh r0, [r1] + bl Swap_PrintActionStrings + movs r0, #5 + bl PutWindowTilemap + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _0819D6C0 + .align 2, 0 +_0819D5D4: .4byte 0x020377B4 +_0819D5D8: .4byte 0x085D9C38 +_0819D5DC: + movs r0, #0x80 + lsls r0, r0, #7 + ldr r1, _0819D5F4 + adds r1, #0x4a + ldrh r1, [r1] + str r1, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + b _0819D678 + .align 2, 0 +_0819D5F4: .4byte 0x085D9C38 +_0819D5F8: + ldr r0, _0819D60C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0819D6C0 + movs r0, #0 + bl Swap_PrintOneActionString + b _0819D678 + .align 2, 0 +_0819D60C: .4byte 0x02037C74 +_0819D610: + movs r0, #1 + bl Swap_PrintOneActionString + movs r0, #3 + bl PutWindowTilemap + b _0819D678 +_0819D61E: + movs r0, #5 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #5 + movs r1, #2 + bl CopyWindowToVram + b _0819D678 +_0819D630: + ldr r0, _0819D644 + ldr r0, [r0] + ldrb r0, [r0, #0x14] + cmp r0, #0 + bne _0819D64C + ldr r0, _0819D648 + bl Swap_PrintOnInfoWindow + b _0819D652 + .align 2, 0 +_0819D644: .4byte 0x03001280 +_0819D648: .4byte 0x085DC0C2 +_0819D64C: + ldr r0, _0819D688 + bl Swap_PrintOnInfoWindow +_0819D652: + ldr r0, _0819D68C + ldr r1, [r0] + ldrb r0, [r1, #3] + cmp r0, #2 + bhi _0819D674 + ldr r2, _0819D690 + ldrb r1, [r1, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] +_0819D674: + bl Swap_PrintMonCategory +_0819D678: + ldr r0, _0819D694 + adds r1, r5, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _0819D6C0 + .align 2, 0 +_0819D688: .4byte 0x085DC0D5 +_0819D68C: .4byte 0x03001280 +_0819D690: .4byte 0x020205AC +_0819D694: .4byte 0x03005B60 +_0819D698: + bl Swap_PrintMonSpecies3 + bl sub_0819E7FC + ldr r0, _0819D6CC + ldr r0, [r0] + adds r0, #0x22 + movs r1, #1 + strb r1, [r0] + ldr r1, _0819D6D0 + adds r0, r5, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #0x12] + strh r1, [r0, #8] + ldrh r1, [r0, #0x14] + ldrh r2, [r0, #0x16] + lsls r1, r1, #0x10 + orrs r1, r2 + str r1, [r0] +_0819D6C0: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0819D6CC: .4byte 0x03001280 +_0819D6D0: .4byte 0x03005B60 + thumb_func_end sub_0819D458 + + thumb_func_start sub_0819D6D4 +sub_0819D6D4: @ 0x0819D6D4 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _0819D70C + ldr r0, [r0] + adds r0, #0x30 + ldrb r0, [r0] + cmp r0, #1 + bne _0819D6E8 + b _0819D8B2 +_0819D6E8: + ldr r0, _0819D710 + lsls r2, r6, #2 + adds r1, r2, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r3, #8 + ldrsh r1, [r1, r3] + adds r3, r0, #0 + adds r7, r2, #0 + cmp r1, #4 + bls _0819D700 + b _0819D8B2 +_0819D700: + lsls r0, r1, #2 + ldr r1, _0819D714 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0819D70C: .4byte 0x03001280 +_0819D710: .4byte 0x03005B60 +_0819D714: .4byte 0x0819D718 +_0819D718: @ jump table + .4byte _0819D72C @ case 0 + .4byte _0819D740 @ case 1 + .4byte _0819D774 @ case 2 + .4byte _0819D7A4 @ case 3 + .4byte _0819D898 @ case 4 +_0819D72C: + bl Swap_PrintMonSpecies3 + ldr r0, _0819D73C + adds r1, r7, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + b _0819D87E + .align 2, 0 +_0819D73C: .4byte 0x03005B60 +_0819D740: + bl sub_0819E7FC + ldr r2, _0819D768 + ldr r0, _0819D76C + ldr r0, [r0] + ldrb r1, [r0, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + ldr r0, _0819D770 + adds r1, r7, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + b _0819D87E + .align 2, 0 +_0819D768: .4byte 0x020205AC +_0819D76C: .4byte 0x03001280 +_0819D770: .4byte 0x03005B60 +_0819D774: + ldr r0, _0819D794 + movs r1, #0 + bl CreateTask + ldr r2, _0819D798 + ldr r0, _0819D79C + ldr r0, [r0] + adds r0, #0x21 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldr r1, _0819D7A0 + str r1, [r0] + b _0819D878 + .align 2, 0 +_0819D794: .4byte 0x0819CE15 +_0819D798: .4byte 0x03005B60 +_0819D79C: .4byte 0x03001280 +_0819D7A0: .4byte 0x0819CD4D +_0819D7A4: + ldr r0, _0819D7E0 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0819D7B2 + b _0819D8B2 +_0819D7B2: + ldr r2, _0819D7E4 + ldr r4, _0819D7E8 + ldr r0, [r4] + adds r0, #0x21 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r1, #0x10 + ldrsh r0, [r0, r1] + cmp r0, #1 + bne _0819D8B2 + bl sub_0819E7C8 + ldr r0, [r4] + ldrb r0, [r0, #0x14] + cmp r0, #0 + bne _0819D7EC + movs r0, #1 + bl Swap_InitActions + b _0819D81A + .align 2, 0 +_0819D7E0: .4byte 0x0819CE15 +_0819D7E4: .4byte 0x03005B60 +_0819D7E8: .4byte 0x03001280 +_0819D7EC: + movs r0, #0 + bl Swap_InitActions + movs r2, #0 + ldr r5, _0819D888 + movs r3, #4 +_0819D7F8: + ldr r0, [r4] + adds r0, #0xb + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r3 + strb r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #2 + bls _0819D7F8 +_0819D81A: + ldr r5, _0819D888 + ldr r4, _0819D88C + ldr r3, [r4] + ldrb r0, [r3, #4] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + adds r0, r3, #5 + ldrb r2, [r3, #3] + adds r0, r0, r2 + ldrb r2, [r0] + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrh r0, [r0, #0x20] + movs r5, #0 + strh r0, [r1, #0x20] + ldr r2, _0819D890 + adds r0, r3, #0 + adds r0, #0x21 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldr r1, _0819D894 + str r1, [r0] + adds r3, #0x27 + strb r5, [r3] + ldr r0, [r4] + adds r0, #0x28 + movs r1, #6 + strb r1, [r0] + ldr r0, [r4] + adds r0, #0x26 + strb r5, [r0] + ldr r0, [r4] + adds r0, #0x21 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r1, #1 + strh r1, [r0, #8] +_0819D878: + adds r1, r7, r6 + lsls r1, r1, #3 + adds r1, r1, r2 +_0819D87E: + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _0819D8B2 + .align 2, 0 +_0819D888: .4byte 0x020205AC +_0819D88C: .4byte 0x03001280 +_0819D890: .4byte 0x03005B60 +_0819D894: .4byte 0x0819CC3D +_0819D898: + adds r0, r7, r6 + lsls r0, r0, #3 + adds r0, r0, r3 + movs r1, #0 + strh r1, [r0, #8] + ldr r2, _0819D8B8 + lsrs r1, r2, #0x10 + strh r1, [r0, #0x14] + strh r2, [r0, #0x16] + movs r1, #1 + strh r1, [r0, #0x12] + ldr r1, _0819D8BC + str r1, [r0] +_0819D8B2: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0819D8B8: .4byte 0x0819CB29 +_0819D8BC: .4byte 0x0819D459 + thumb_func_end sub_0819D6D4 + + thumb_func_start Swap_InitStruct +Swap_InitStruct: @ 0x0819D8C0 + push {r4, r5, lr} + ldr r5, _0819D8E4 + ldr r4, [r5] + cmp r4, #0 + bne _0819D8DE + movs r0, #0x34 + bl AllocZeroed + str r0, [r5] + strb r4, [r0, #3] + ldr r0, [r5] + adds r0, #0x30 + strb r4, [r0] + ldr r0, [r5] + strb r4, [r0, #0x15] +_0819D8DE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0819D8E4: .4byte 0x03001280 + thumb_func_end Swap_InitStruct + + thumb_func_start DoBattleFactorySwapScreen +DoBattleFactorySwapScreen: @ 0x0819D8E8 + push {lr} + ldr r0, _0819D8FC + movs r1, #0 + str r1, [r0] + ldr r0, _0819D900 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_0819D8FC: .4byte 0x03001280 +_0819D900: .4byte 0x0819D905 + thumb_func_end DoBattleFactorySwapScreen + + thumb_func_start CB2_InitSwapScreen +CB2_InitSwapScreen: @ 0x0819D904 + push {r4, r5, r6, lr} + sub sp, #0xc + ldr r1, _0819D924 + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, r1, #0 + cmp r0, #0xf + bls _0819D91A + b _0819DDB2 +_0819D91A: + lsls r0, r0, #2 + ldr r1, _0819D928 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0819D924: .4byte 0x03002360 +_0819D928: .4byte 0x0819D92C +_0819D92C: @ jump table + .4byte _0819D96C @ case 0 + .4byte _0819D9BC @ case 1 + .4byte _0819DA90 @ case 2 + .4byte _0819DB50 @ case 3 + .4byte _0819DB7C @ case 4 + .4byte _0819DBB4 @ case 5 + .4byte _0819DBD4 @ case 6 + .4byte _0819DBF8 @ case 7 + .4byte _0819DC18 @ case 8 + .4byte _0819DC24 @ case 9 + .4byte _0819DC4C @ case 10 + .4byte _0819DC58 @ case 11 + .4byte _0819DC80 @ case 12 + .4byte _0819DC94 @ case 13 + .4byte _0819DCAC @ case 14 + .4byte _0819DD24 @ case 15 +_0819D96C: + movs r0, #0 + bl SetHBlankCallback + movs r0, #0 + bl SetVBlankCallback + movs r0, #0 + str r0, [sp, #8] + movs r1, #0xc0 + lsls r1, r1, #0x13 + ldr r2, _0819D9AC + add r0, sp, #8 + bl CpuSet + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _0819D9B0 + movs r0, #0 + movs r2, #4 + bl InitBgsFromTemplates + ldr r0, _0819D9B4 + bl InitWindows + bl DeactivateAllTextPrinters + ldr r1, _0819D9B8 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _0819DD16 + .align 2, 0 +_0819D9AC: .4byte 0x05006000 +_0819D9B0: .4byte 0x085DC164 +_0819D9B4: .4byte 0x085DC174 +_0819D9B8: .4byte 0x03002360 +_0819D9BC: + ldr r5, _0819DA80 + movs r4, #0x88 + lsls r4, r4, #3 + adds r0, r4, #0 + bl Alloc + str r0, [r5] + ldr r5, _0819DA84 + adds r0, r4, #0 + bl AllocZeroed + str r0, [r5] + ldr r5, _0819DA88 + movs r4, #0x80 + lsls r4, r4, #4 + adds r0, r4, #0 + bl Alloc + str r0, [r5] + ldr r5, _0819DA8C + adds r0, r4, #0 + bl AllocZeroed + str r0, [r5] + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + movs r0, #0x4c + movs r1, #0 + bl SetGpuReg + movs r0, #0x40 + movs r1, #0 + bl SetGpuReg + movs r0, #0x44 + movs r1, #0 + bl SetGpuReg + movs r0, #0x42 + movs r1, #0 + bl SetGpuReg + movs r0, #0x46 + movs r1, #0 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0 + bl SetGpuReg + movs r0, #0x4a + movs r1, #0 + bl SetGpuReg + b _0819DD0E + .align 2, 0 +_0819DA80: .4byte 0x0203CB0C +_0819DA84: .4byte 0x0203CB10 +_0819DA88: .4byte 0x0203CB14 +_0819DA8C: .4byte 0x0203CB18 +_0819DA90: + bl ResetPaletteFade + bl ResetSpriteData + bl ResetTasks + bl FreeAllSpritePalettes + bl ResetAllPicSprites + ldr r0, _0819DB28 + ldr r5, _0819DB2C + ldr r1, [r5] + movs r2, #0x88 + lsls r2, r2, #2 + bl CpuSet + ldr r0, _0819DB30 + ldr r4, _0819DB34 + ldr r1, [r4] + movs r2, #0x30 + bl CpuSet + ldr r1, [r5] + movs r2, #0x88 + lsls r2, r2, #3 + movs r0, #1 + movs r3, #0 + bl LoadBgTiles + ldr r1, [r4] + movs r0, #3 + movs r2, #0x60 + movs r3, #0 + bl LoadBgTiles + ldr r0, _0819DB38 + ldr r4, _0819DB3C + ldr r1, [r4] + movs r2, #0x80 + lsls r2, r2, #3 + bl CpuSet + ldr r1, [r4] + movs r2, #0x80 + lsls r2, r2, #4 + movs r0, #1 + movs r3, #0 + bl LoadBgTilemap + ldr r0, _0819DB40 + movs r1, #0 + movs r2, #0x40 + bl LoadPalette + ldr r4, _0819DB44 + adds r0, r4, #0 + movs r1, #0xf0 + movs r2, #0xa + bl LoadPalette + adds r0, r4, #0 + movs r1, #0xe0 + movs r2, #0xa + bl LoadPalette + ldr r0, _0819DB48 + movs r1, #0x20 + movs r2, #4 + bl LoadPalette + ldr r1, _0819DB4C + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _0819DD16 + .align 2, 0 +_0819DB28: .4byte 0x085DAD38 +_0819DB2C: .4byte 0x0203CB0C +_0819DB30: .4byte 0x085DBA78 +_0819DB34: .4byte 0x0203CB10 +_0819DB38: .4byte 0x085DB178 +_0819DB3C: .4byte 0x0203CB14 +_0819DB40: .4byte 0x085DBAD8 +_0819DB44: .4byte 0x085DC1C4 +_0819DB48: .4byte 0x085DBB18 +_0819DB4C: .4byte 0x03002360 +_0819DB50: + ldr r0, _0819DB74 + ldr r1, [r0] + movs r0, #3 + bl SetBgTilemapBuffer + ldr r1, _0819DB78 + movs r0, #8 + str r0, [sp] + str r0, [sp, #4] + movs r0, #3 + movs r2, #0xb + movs r3, #4 + bl CopyToBgTilemapBufferRect + movs r0, #3 + bl CopyBgTilemapBufferToVram + b _0819DD0E + .align 2, 0 +_0819DB74: .4byte 0x0203CB18 +_0819DB78: .4byte 0x085DB978 +_0819DB7C: + ldr r0, _0819DBA0 + bl LoadSpritePalettes + ldr r0, _0819DBA4 + bl LoadSpriteSheets + ldr r0, _0819DBA8 + bl LoadCompressedSpriteSheet + ldr r0, _0819DBAC + bl SetVBlankCallback + ldr r1, _0819DBB0 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _0819DD16 + .align 2, 0 +_0819DBA0: .4byte 0x085DBEB8 +_0819DBA4: .4byte 0x085DBE58 +_0819DBA8: .4byte 0x085DBEA8 +_0819DBAC: .4byte 0x0819C4E5 +_0819DBB0: .4byte 0x03002360 +_0819DBB4: + ldr r0, _0819DBCC + ldr r1, [r0] + ldrb r0, [r1, #0x15] + cmp r0, #1 + bne _0819DBC4 + ldr r0, _0819DBD0 + ldrb r0, [r0] + strb r0, [r1, #3] +_0819DBC4: + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r2, r0 + b _0819DD16 + .align 2, 0 +_0819DBCC: .4byte 0x03001280 +_0819DBD0: .4byte 0x0203CBEC +_0819DBD4: + bl Swap_InitStruct + bl Swap_InitAllSprites + ldr r0, _0819DBF4 + ldr r0, [r0] + ldrb r0, [r0, #0x15] + cmp r0, #1 + bne _0819DBEA + bl Swap_ShowSummaryMonSprite +_0819DBEA: + movs r0, #0 + bl Swap_InitActions + b _0819DD0E + .align 2, 0 +_0819DBF4: .4byte 0x03001280 +_0819DBF8: + ldr r0, _0819DC10 + bl Swap_PrintOnInfoWindow + movs r0, #2 + bl PutWindowTilemap + ldr r1, _0819DC14 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _0819DD16 + .align 2, 0 +_0819DC10: .4byte 0x085DC0C2 +_0819DC14: .4byte 0x03002360 +_0819DC18: + bl Swap_PrintMonCategory + movs r0, #8 + bl PutWindowTilemap + b _0819DD0E +_0819DC24: + ldr r0, _0819DC44 + ldr r0, [r0] + ldrb r0, [r0, #0x15] + cmp r0, #0 + bne _0819DC32 + bl Swap_PrintMonSpecies +_0819DC32: + movs r0, #1 + bl PutWindowTilemap + ldr r1, _0819DC48 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _0819DD16 + .align 2, 0 +_0819DC44: .4byte 0x03001280 +_0819DC48: .4byte 0x03002360 +_0819DC4C: + bl Swap_PrintPkmnSwap + movs r0, #0 + bl PutWindowTilemap + b _0819DD0E +_0819DC58: + ldr r0, _0819DC78 + ldr r0, [r0] + ldrb r0, [r0, #0x15] + cmp r0, #0 + bne _0819DC66 + bl Swap_PrintActionString +_0819DC66: + movs r0, #6 + bl PutWindowTilemap + ldr r1, _0819DC7C + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _0819DD16 + .align 2, 0 +_0819DC78: .4byte 0x03001280 +_0819DC7C: .4byte 0x03002360 +_0819DC80: + ldr r0, _0819DC90 + ldr r0, [r0] + ldrb r0, [r0, #0x15] + cmp r0, #0 + beq _0819DD0E + bl Swap_PrintMonSpecies2 + b _0819DD0E + .align 2, 0 +_0819DC90: .4byte 0x03001280 +_0819DC94: + bl Swap_PrintActionStrings2 + movs r0, #3 + bl PutWindowTilemap + ldr r1, _0819DCA8 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _0819DD16 + .align 2, 0 +_0819DCA8: .4byte 0x03002360 +_0819DCAC: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + ldr r0, _0819DCFC + ldr r0, [r0] + ldrb r0, [r0, #0x15] + cmp r0, #1 + bne _0819DD08 + movs r0, #3 + bl ShowBg + ldr r1, _0819DD00 + movs r0, #0x50 + bl SetGpuReg + ldr r1, _0819DD04 + movs r0, #0x52 + bl SetGpuReg + b _0819DD0E + .align 2, 0 +_0819DCFC: .4byte 0x03001280 +_0819DD00: .4byte 0x00001248 +_0819DD04: .4byte 0x0000040B +_0819DD08: + movs r0, #3 + bl HideBg +_0819DD0E: + ldr r1, _0819DD20 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 +_0819DD16: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0819DDB2 + .align 2, 0 +_0819DD20: .4byte 0x03002360 +_0819DD24: + ldr r0, _0819DD64 + movs r1, #0 + bl CreateTask + ldr r6, _0819DD68 + ldr r1, [r6] + adds r1, #0x21 + strb r0, [r1] + ldr r0, [r6] + ldrb r5, [r0, #0x15] + cmp r5, #0 + bne _0819DD74 + ldr r4, _0819DD6C + adds r0, #0x21 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r4 + strh r5, [r0, #8] + ldr r0, _0819DD70 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r4 + strh r5, [r0, #8] + b _0819DDAC + .align 2, 0 +_0819DD64: .4byte 0x0819CC3D +_0819DD68: .4byte 0x03001280 +_0819DD6C: .4byte 0x03005B60 +_0819DD70: .4byte 0x0819CB29 +_0819DD74: + bl sub_0819E844 + ldr r4, _0819DDBC + ldr r2, [r6] + adds r0, r2, #0 + adds r0, #0x21 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r4 + movs r3, #0 + movs r1, #1 + strh r1, [r0, #8] + adds r2, #0x22 + strb r3, [r2] + ldr r0, _0819DDC0 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r4 + movs r1, #2 + strh r1, [r0, #8] +_0819DDAC: + ldr r0, _0819DDC4 + bl SetMainCallback2 +_0819DDB2: + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0819DDBC: .4byte 0x03005B60 +_0819DDC0: .4byte 0x0819CA1D +_0819DDC4: .4byte 0x0819C4C9 + thumb_func_end CB2_InitSwapScreen + + thumb_func_start Swap_InitAllSprites +Swap_InitAllSprites: @ 0x0819DDC8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + mov r1, sp + ldr r0, _0819E1B8 + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldm r0!, {r2, r5, r6} + stm r1!, {r2, r5, r6} + mov r1, sp + movs r0, #0x65 + strh r0, [r1, #2] + movs r6, #0 + ldr r4, _0819E1BC + movs r7, #0 + ldr r5, _0819E1C0 +_0819DDEE: + lsls r1, r6, #1 + adds r1, r1, r6 + lsls r1, r1, #0x14 + movs r3, #0x90 + lsls r3, r3, #0xf + adds r1, r1, r3 + asrs r1, r1, #0x10 + mov r0, sp + movs r2, #0x40 + movs r3, #1 + bl CreateSprite + ldr r1, [r4] + adds r1, #5 + adds r1, r1, r6 + strb r0, [r1] + ldr r0, [r4] + adds r0, #5 + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r7, [r0, #0x2e] + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #2 + bls _0819DDEE + ldr r7, _0819E1BC + ldr r1, [r7] + adds r0, r1, #5 + ldrb r1, [r1, #3] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _0819E1C0 + adds r0, r0, r4 + movs r5, #0x20 + ldrsh r1, [r0, r5] + ldr r0, _0819E1C4 + movs r2, #0x58 + movs r3, #0 + bl CreateSprite + ldr r1, [r7] + movs r4, #0 + strb r0, [r1, #4] + ldr r0, _0819E1C8 + movs r1, #0xb0 + movs r2, #0x70 + movs r3, #0 + bl CreateSprite + ldr r1, [r7] + strb r0, [r1, #1] + ldr r0, _0819E1CC + movs r1, #0xb0 + movs r2, #0x90 + movs r3, #0 + bl CreateSprite + ldr r1, [r7] + strb r0, [r1, #2] + ldr r0, [r7] + ldrb r1, [r0, #1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r6, _0819E1C0 + adds r0, r0, r6 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + ldr r0, [r7] + ldrb r1, [r0, #2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + ldr r0, [r7] + ldrb r1, [r0, #1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x28 + strb r4, [r0] + ldr r0, [r7] + ldrb r1, [r0, #1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x29 + strb r4, [r0] + ldr r0, [r7] + ldrb r1, [r0, #2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x28 + strb r4, [r0] + ldr r0, [r7] + ldrb r1, [r0, #2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x29 + strb r4, [r0] + ldr r0, [r7] + ldrb r0, [r0, #0x15] + movs r1, #0xc0 + str r1, [sp, #0x18] + cmp r0, #1 + bne _0819DEF0 + movs r2, #0xf0 + str r2, [sp, #0x18] +_0819DEF0: + mov r1, sp + ldr r0, _0819E1C4 + ldm r0!, {r3, r4, r5} + stm r1!, {r3, r4, r5} + ldm r0!, {r2, r3, r6} + stm r1!, {r2, r3, r6} + mov r0, sp + movs r4, #0x68 + mov sl, r4 + mov r5, sl + strh r5, [r0] + movs r1, #0xf0 + movs r2, #0x78 + movs r3, #0xa + bl CreateSprite + ldr r1, [r7] + strb r0, [r1, #8] + mov r1, sp + ldr r0, _0819E1C8 + ldm r0!, {r2, r3, r6} + stm r1!, {r2, r3, r6} + ldm r0!, {r4, r5, r6} + stm r1!, {r4, r5, r6} + mov r0, sp + movs r1, #0x69 + mov sb, r1 + mov r2, sb + strh r2, [r0] + movs r4, #0x80 + lsls r4, r4, #1 + adds r1, r4, #0 + movs r2, #0x78 + movs r3, #0xa + bl CreateSprite + ldr r1, [r7] + strb r0, [r1, #9] + movs r5, #0x90 + lsls r5, r5, #1 + mov r0, sp + adds r1, r5, #0 + movs r2, #0x78 + movs r3, #0xa + bl CreateSprite + ldr r1, [r7] + strb r0, [r1, #0xa] + mov r1, sp + ldr r0, _0819E1C4 + ldm r0!, {r2, r3, r6} + stm r1!, {r2, r3, r6} + ldm r0!, {r2, r3, r6} + stm r1!, {r2, r3, r6} + mov r0, sp + movs r3, #0x6a + mov r8, r3 + mov r6, r8 + strh r6, [r0] + movs r1, #0xf0 + movs r2, #0x78 + movs r3, #1 + bl CreateSprite + ldr r1, [r7] + strb r0, [r1, #0xb] + mov r1, sp + ldr r0, _0819E1C8 + ldm r0!, {r2, r3, r6} + stm r1!, {r2, r3, r6} + ldm r0!, {r2, r3, r6} + stm r1!, {r2, r3, r6} + mov r1, sp + movs r0, #0x6b + strh r0, [r1] + mov r0, sp + adds r1, r4, #0 + movs r2, #0x78 + movs r3, #1 + bl CreateSprite + ldr r1, [r7] + strb r0, [r1, #0xc] + mov r0, sp + movs r6, #0x6c + strh r6, [r0] + adds r1, r5, #0 + movs r2, #0x78 + movs r3, #1 + bl CreateSprite + ldr r1, [r7] + strb r0, [r1, #0xd] + mov r1, sp + ldr r0, _0819E1C4 + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} + mov r0, sp + mov r4, sl + strh r4, [r0] + ldr r1, [sp, #0x18] + movs r2, #0x90 + movs r3, #0xa + bl CreateSprite + ldr r1, [r7] + strb r0, [r1, #0xe] + mov r1, sp + ldr r0, _0819E1C8 + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} + ldm r0!, {r2, r4, r5} + stm r1!, {r2, r4, r5} + mov r0, sp + mov r3, sb + strh r3, [r0] + ldr r4, [sp, #0x18] + adds r4, #0x10 + adds r1, r4, #0 + movs r2, #0x90 + movs r3, #0xa + bl CreateSprite + ldr r1, [r7] + strb r0, [r1, #0xf] + mov r1, sp + ldr r0, _0819E1C4 + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} + mov r0, sp + mov r5, r8 + strh r5, [r0] + ldr r1, [sp, #0x18] + movs r2, #0x90 + movs r3, #1 + bl CreateSprite + ldr r1, [r7] + strb r0, [r1, #0x10] + mov r1, sp + ldr r0, _0819E1C8 + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} + mov r0, sp + strh r6, [r0] + adds r1, r4, #0 + movs r2, #0x90 + movs r3, #1 + bl CreateSprite + ldr r1, [r7] + strb r0, [r1, #0x11] + movs r6, #0 + ldr r5, _0819E1C0 + adds r4, r7, #0 + movs r7, #0 + movs r0, #4 + mov sl, r0 +_0819E038: + ldr r0, [r4] + lsls r3, r6, #1 + adds r2, r3, r6 + adds r0, #8 + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x28 + strb r7, [r0] + ldr r0, [r4] + adds r0, #8 + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x29 + strb r7, [r0] + ldr r0, [r4] + adds r0, #9 + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x28 + strb r7, [r0] + ldr r0, [r4] + adds r0, #9 + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x29 + strb r7, [r0] + ldr r0, [r4] + adds r0, #0xa + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x28 + strb r7, [r0] + ldr r0, [r4] + adds r0, #0xa + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x29 + strb r7, [r0] + ldr r0, [r4] + adds r0, #0xe + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x28 + strb r7, [r0] + ldr r0, [r4] + adds r0, #0xe + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x29 + strb r7, [r0] + ldr r0, [r4] + adds r0, #0xf + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x28 + strb r7, [r0] + ldr r0, [r4] + adds r0, #0xf + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x29 + strb r7, [r0] + ldr r0, [r4] + adds r0, #8 + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + mov r8, r0 + ldrb r1, [r0] + mov r0, sl + orrs r1, r0 + mov r0, r8 + strb r1, [r0] + ldr r0, [r4] + adds r0, #9 + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + mov r8, r0 + ldrb r1, [r0] + mov r0, sl + orrs r1, r0 + mov r0, r8 + strb r1, [r0] + ldr r0, [r4] + adds r0, #0xa + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r1, [r0] + mov r2, sl + orrs r1, r2 + strb r1, [r0] + ldr r0, [r4] + adds r0, #0xe + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + ldr r0, [r4] + adds r0, #0xf + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r3, _0819E1BC + mov r8, r3 + ldr r0, _0819E1C0 + mov sb, r0 + cmp r6, #1 + bhi _0819E19E + b _0819E038 +_0819E19E: + ldr r0, [r3] + ldrb r0, [r0, #0xe] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + add r1, sb + adds r1, #0x3e + ldrb r2, [r1] + movs r3, #5 + rsbs r3, r3, #0 + adds r0, r3, #0 + b _0819E1D0 + .align 2, 0 +_0819E1B8: .4byte 0x085DC03C +_0819E1BC: .4byte 0x03001280 +_0819E1C0: .4byte 0x020205AC +_0819E1C4: .4byte 0x085DC054 +_0819E1C8: .4byte 0x085DC06C +_0819E1CC: .4byte 0x085DC084 +_0819E1D0: + ands r0, r2 + strb r0, [r1] + mov r1, r8 + ldr r0, [r1] + ldrb r1, [r0, #0xf] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sb + adds r0, #0x3e + ldrb r2, [r0] + adds r1, r3, #0 + ands r1, r2 + strb r1, [r0] + mov r2, r8 + ldr r0, [r2] + ldrb r1, [r0, #8] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sb + adds r0, #0x3e + ldrb r2, [r0] + adds r1, r3, #0 + ands r1, r2 + strb r1, [r0] + mov r4, r8 + ldr r0, [r4] + ldrb r1, [r0, #9] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sb + adds r0, #0x3e + ldrb r2, [r0] + adds r1, r3, #0 + ands r1, r2 + strb r1, [r0] + ldr r0, [r4] + ldrb r1, [r0, #0xa] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sb + adds r0, #0x3e + ldrb r1, [r0] + ands r3, r1 + strb r3, [r0] + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end Swap_InitAllSprites + + thumb_func_start Swap_DestroyAllSprites +Swap_DestroyAllSprites: @ 0x0819E240 + push {r4, r5, r6, r7, lr} + movs r5, #0 +_0819E244: + ldr r6, _0819E308 + ldr r0, [r6] + adds r0, #5 + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _0819E30C + adds r0, r0, r4 + bl DestroySprite + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #2 + bls _0819E244 + ldr r0, [r6] + ldrb r1, [r0, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + ldr r0, [r6] + ldrb r1, [r0, #1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + ldr r0, [r6] + ldrb r1, [r0, #2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + movs r5, #0 +_0819E298: + movs r4, #0 + lsls r6, r5, #1 +_0819E29C: + ldr r0, _0819E308 + ldr r0, [r0] + adds r1, r6, r5 + adds r1, r4, r1 + adds r0, #8 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0819E30C + adds r0, r0, r1 + bl DestroySprite + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #2 + bls _0819E29C + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #1 + bls _0819E298 + movs r5, #0 +_0819E2CE: + movs r4, #0 + adds r7, r5, #1 + lsls r6, r5, #1 +_0819E2D4: + ldr r0, _0819E308 + ldr r0, [r0] + adds r1, r4, r6 + adds r0, #0xe + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0819E30C + adds r0, r0, r1 + bl DestroySprite + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #1 + bls _0819E2D4 + lsls r0, r7, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #1 + bls _0819E2CE + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0819E308: .4byte 0x03001280 +_0819E30C: .4byte 0x020205AC + thumb_func_end Swap_DestroyAllSprites + + thumb_func_start Swap_HandleActionCursorChange +Swap_HandleActionCursorChange: @ 0x0819E310 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #2 + bhi _0819E364 + ldr r4, _0819E35C + ldr r5, _0819E360 + ldr r0, [r5] + ldrb r1, [r0, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + bl sub_0819E5F4 + ldr r0, [r5] + ldrb r2, [r0, #4] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r4 + adds r0, #5 + adds r0, r0, r6 + ldrb r2, [r0] + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r0, [r0, #0x20] + strh r0, [r1, #0x20] + b _0819E38C + .align 2, 0 +_0819E35C: .4byte 0x020205AC +_0819E360: .4byte 0x03001280 +_0819E364: + ldr r2, _0819E394 + ldr r3, _0819E398 + ldr r0, [r3] + ldrb r1, [r0, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + ldr r0, [r3] + ldr r1, [r0, #0x18] + lsls r0, r6, #3 + adds r0, r0, r1 + ldrb r0, [r0] + bl sub_0819E540 +_0819E38C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0819E394: .4byte 0x020205AC +_0819E398: .4byte 0x03001280 + thumb_func_end Swap_HandleActionCursorChange + + thumb_func_start Swap_UpdateBallCursorPosition +Swap_UpdateBallCursorPosition: @ 0x0819E39C + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #5 + bl PlaySE + lsls r4, r4, #0x18 + cmp r4, #0 + ble _0819E3C8 + ldr r1, _0819E3C4 + ldr r2, [r1] + ldrb r0, [r2, #3] + adds r0, #1 + ldrb r3, [r2, #0x17] + cmp r0, r3 + bne _0819E3E0 + movs r0, #0 + b _0819E3E0 + .align 2, 0 +_0819E3C4: .4byte 0x03001280 +_0819E3C8: + ldr r0, _0819E3D8 + ldr r2, [r0] + ldrb r3, [r2, #3] + adds r1, r0, #0 + cmp r3, #0 + beq _0819E3DC + subs r0, r3, #1 + b _0819E3E0 + .align 2, 0 +_0819E3D8: .4byte 0x03001280 +_0819E3DC: + ldrb r0, [r2, #0x17] + subs r0, #1 +_0819E3E0: + strb r0, [r2, #3] + ldr r0, [r1] + ldrb r0, [r0, #3] + bl Swap_HandleActionCursorChange + pop {r4} + pop {r0} + bx r0 + thumb_func_end Swap_UpdateBallCursorPosition + + thumb_func_start Swap_UpdateActionCursorPosition +Swap_UpdateActionCursorPosition: @ 0x0819E3F0 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #5 + bl PlaySE + lsls r4, r4, #0x18 + cmp r4, #0 + ble _0819E430 + ldr r0, _0819E418 + ldr r2, [r0] + ldrb r1, [r2, #3] + adds r4, r0, #0 + cmp r1, #2 + bhi _0819E41C + movs r0, #3 + strb r0, [r2, #3] + b _0819E452 + .align 2, 0 +_0819E418: .4byte 0x03001280 +_0819E41C: + ldrb r0, [r2, #3] + adds r0, #1 + ldrb r1, [r2, #0x17] + cmp r0, r1 + beq _0819E42A + strb r0, [r2, #3] + b _0819E452 +_0819E42A: + movs r0, #0 + strb r0, [r2, #3] + b _0819E452 +_0819E430: + ldr r0, _0819E448 + ldr r1, [r0] + ldrb r3, [r1, #3] + adds r2, r3, #0 + adds r4, r0, #0 + cmp r2, #2 + bls _0819E44C + cmp r2, #0 + beq _0819E44C + subs r0, r3, #1 + b _0819E450 + .align 2, 0 +_0819E448: .4byte 0x03001280 +_0819E44C: + ldrb r0, [r1, #0x17] + subs r0, #1 +_0819E450: + strb r0, [r1, #3] +_0819E452: + ldr r0, [r4] + ldrb r0, [r0, #3] + bl Swap_HandleActionCursorChange + pop {r4} + pop {r0} + bx r0 + thumb_func_end Swap_UpdateActionCursorPosition + + thumb_func_start Swap_UpdateYesNoCursorPosition +Swap_UpdateYesNoCursorPosition: @ 0x0819E460 + push {lr} + lsls r0, r0, #0x18 + cmp r0, #0 + ble _0819E480 + ldr r0, _0819E478 + ldr r1, [r0] + ldrb r3, [r1, #0x16] + adds r2, r0, #0 + cmp r3, #1 + beq _0819E47C + adds r0, r3, #1 + b _0819E496 + .align 2, 0 +_0819E478: .4byte 0x03001280 +_0819E47C: + movs r0, #0 + b _0819E496 +_0819E480: + ldr r0, _0819E490 + ldr r1, [r0] + ldrb r3, [r1, #0x16] + adds r2, r0, #0 + cmp r3, #0 + beq _0819E494 + subs r0, r3, #1 + b _0819E496 + .align 2, 0 +_0819E490: .4byte 0x03001280 +_0819E494: + movs r0, #1 +_0819E496: + strb r0, [r1, #0x16] + ldr r3, _0819E4C4 + ldr r2, [r2] + ldrb r0, [r2, #1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrb r0, [r2, #0x16] + lsls r0, r0, #4 + adds r0, #0x70 + strh r0, [r1, #0x22] + ldrb r0, [r2, #2] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrb r0, [r2, #0x16] + lsls r0, r0, #4 + adds r0, #0x70 + strh r0, [r1, #0x22] + pop {r0} + bx r0 + .align 2, 0 +_0819E4C4: .4byte 0x020205AC + thumb_func_end Swap_UpdateYesNoCursorPosition + + thumb_func_start Swap_UpdateMenuCursorPosition +Swap_UpdateMenuCursorPosition: @ 0x0819E4C8 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #5 + bl PlaySE + lsls r4, r4, #0x18 + cmp r4, #0 + ble _0819E4F4 + ldr r0, _0819E4EC + ldr r1, [r0] + ldrb r3, [r1] + adds r2, r0, #0 + cmp r3, #2 + beq _0819E4F0 + adds r0, r3, #1 + b _0819E50A + .align 2, 0 +_0819E4EC: .4byte 0x03001280 +_0819E4F0: + movs r0, #0 + b _0819E50A +_0819E4F4: + ldr r0, _0819E504 + ldr r1, [r0] + ldrb r3, [r1] + adds r2, r0, #0 + cmp r3, #0 + beq _0819E508 + subs r0, r3, #1 + b _0819E50A + .align 2, 0 +_0819E504: .4byte 0x03001280 +_0819E508: + movs r0, #2 +_0819E50A: + strb r0, [r1] + ldr r3, _0819E53C + ldr r2, [r2] + ldrb r0, [r2, #1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrb r0, [r2] + lsls r0, r0, #4 + adds r0, #0x70 + strh r0, [r1, #0x22] + ldrb r0, [r2, #2] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrb r0, [r2] + lsls r0, r0, #4 + adds r0, #0x70 + strh r0, [r1, #0x22] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0819E53C: .4byte 0x020205AC + thumb_func_end Swap_UpdateMenuCursorPosition + + thumb_func_start sub_0819E540 +sub_0819E540: @ 0x0819E540 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r4, #0 + movs r0, #5 + rsbs r0, r0, #0 + mov sb, r0 + movs r2, #4 + mov r8, r2 + ldr r0, _0819E598 + mov ip, r0 + ldr r7, _0819E59C +_0819E55E: + cmp r6, #2 + bne _0819E5A0 + ldr r5, _0819E598 + ldr r3, _0819E59C + ldr r0, [r3] + adds r0, #0xb + adds r0, r0, r4 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + adds r1, #0x3e + ldrb r2, [r1] + mov r0, sb + ands r0, r2 + strb r0, [r1] + cmp r4, #1 + bhi _0819E5DC + ldr r0, [r3] + adds r0, #0x10 + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + b _0819E5D2 + .align 2, 0 +_0819E598: .4byte 0x020205AC +_0819E59C: .4byte 0x03001280 +_0819E5A0: + cmp r6, #3 + bne _0819E5DC + cmp r4, #1 + bhi _0819E5C2 + ldr r0, [r7] + adds r0, #0x10 + adds r0, r0, r4 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + add r1, ip + adds r1, #0x3e + ldrb r2, [r1] + mov r0, sb + ands r0, r2 + strb r0, [r1] +_0819E5C2: + ldr r0, [r7] + adds r0, #0xb + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, ip +_0819E5D2: + adds r0, #0x3e + ldrb r1, [r0] + mov r2, r8 + orrs r1, r2 + strb r1, [r0] +_0819E5DC: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #2 + bls _0819E55E + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0819E540 + + thumb_func_start sub_0819E5F4 +sub_0819E5F4: @ 0x0819E5F4 + push {r4, r5, r6, lr} + movs r2, #0 + ldr r5, _0819E644 + ldr r4, _0819E648 + adds r6, r5, #0 + movs r3, #4 +_0819E600: + ldr r0, [r4] + adds r0, #0xb + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r3 + strb r1, [r0] + cmp r2, #1 + bhi _0819E634 + ldr r0, [r4] + adds r0, #0x10 + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r3 + strb r1, [r0] +_0819E634: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #2 + bls _0819E600 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0819E644: .4byte 0x020205AC +_0819E648: .4byte 0x03001280 + thumb_func_end sub_0819E5F4 + + thumb_func_start Swap_ShowMenuOptions +Swap_ShowMenuOptions: @ 0x0819E64C + push {r4, r5, lr} + ldr r0, _0819E660 + ldr r3, [r0] + ldrb r1, [r3, #0x15] + adds r5, r0, #0 + cmp r1, #1 + bne _0819E664 + movs r0, #0 + strb r0, [r3, #0x15] + b _0819E668 + .align 2, 0 +_0819E660: .4byte 0x03001280 +_0819E664: + movs r0, #0 + strb r0, [r3] +_0819E668: + ldr r4, _0819E6E4 + ldr r2, [r5] + ldrb r1, [r2, #1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0xb0 + strh r1, [r0, #0x20] + ldrb r0, [r2, #1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r0, [r2] + lsls r0, r0, #4 + adds r0, #0x70 + strh r0, [r1, #0x22] + ldrb r1, [r2, #2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0xd0 + strh r1, [r0, #0x20] + ldrb r0, [r2, #2] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r0, [r2] + lsls r0, r0, #4 + adds r0, #0x70 + strh r0, [r1, #0x22] + ldrb r0, [r2, #1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + adds r1, #0x3e + ldrb r3, [r1] + movs r2, #5 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r3 + strb r0, [r1] + ldr r0, [r5] + ldrb r1, [r0, #2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + bl Swap_PrintMenuOptions + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0819E6E4: .4byte 0x020205AC + thumb_func_end Swap_ShowMenuOptions + + thumb_func_start Swap_ShowYesNoOptions +Swap_ShowYesNoOptions: @ 0x0819E6E8 + push {r4, r5, lr} + ldr r5, _0819E764 + ldr r1, [r5] + movs r0, #0 + strb r0, [r1, #0x16] + ldr r4, _0819E768 + ldr r2, [r5] + ldrb r1, [r2, #1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0xb0 + strh r1, [r0, #0x20] + ldrb r1, [r2, #1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r3, #0x70 + strh r3, [r0, #0x22] + ldrb r1, [r2, #2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0xd0 + strh r1, [r0, #0x20] + ldrb r1, [r2, #2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + strh r3, [r0, #0x22] + ldrb r0, [r2, #1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + adds r1, #0x3e + ldrb r3, [r1] + movs r2, #5 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r3 + strb r0, [r1] + ldr r0, [r5] + ldrb r1, [r0, #2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + bl Swap_PrintYesNoOptions + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0819E764: .4byte 0x03001280 +_0819E768: .4byte 0x020205AC + thumb_func_end Swap_ShowYesNoOptions + + thumb_func_start sub_0819E76C +sub_0819E76C: @ 0x0819E76C + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r5, _0819E7C0 + ldr r3, _0819E7C4 + ldr r0, [r3] + ldrb r1, [r0, #1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + ldr r0, [r3] + ldrb r1, [r0, #2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + adds r0, r4, #0 + movs r1, #0 + bl FillWindowPixelBuffer + adds r0, r4, #0 + movs r1, #2 + bl CopyWindowToVram + adds r0, r4, #0 + bl ClearWindowTilemap + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0819E7C0: .4byte 0x020205AC +_0819E7C4: .4byte 0x03001280 + thumb_func_end sub_0819E76C + + thumb_func_start sub_0819E7C8 +sub_0819E7C8: @ 0x0819E7C8 + push {lr} + movs r0, #6 + bl PutWindowTilemap + movs r0, #6 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #6 + movs r1, #3 + bl CopyWindowToVram + movs r0, #1 + bl PutWindowTilemap + movs r0, #1 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #1 + movs r1, #2 + bl CopyWindowToVram + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0819E7C8 + + thumb_func_start sub_0819E7FC +sub_0819E7FC: @ 0x0819E7FC + push {lr} + sub sp, #0xc + movs r0, #0 + bl PutWindowTilemap + ldr r2, _0819E840 + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + movs r1, #1 + movs r3, #0x48 + bl AddTextPrinterParameterized + movs r0, #0 + movs r1, #2 + bl CopyWindowToVram + movs r0, #7 + bl PutWindowTilemap + movs r0, #7 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #7 + movs r1, #2 + bl CopyWindowToVram + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_0819E840: .4byte 0x085DC13C + thumb_func_end sub_0819E7FC + + thumb_func_start sub_0819E844 +sub_0819E844: @ 0x0819E844 + push {lr} + bl sub_0819E7C8 + movs r0, #5 + bl PutWindowTilemap + movs r0, #5 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #5 + movs r1, #2 + bl CopyWindowToVram + pop {r0} + bx r0 + thumb_func_end sub_0819E844 + + thumb_func_start Swap_PrintPkmnSwap +Swap_PrintPkmnSwap: @ 0x0819E864 + push {lr} + sub sp, #0xc + movs r0, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r2, _0819E894 + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_0819E894: .4byte 0x085DC0B4 + thumb_func_end Swap_PrintPkmnSwap + + thumb_func_start Swap_PrintMonSpecies +Swap_PrintMonSpecies: @ 0x0819E898 + push {r4, lr} + sub sp, #0xc + movs r0, #1 + movs r1, #0 + bl FillWindowPixelBuffer + ldr r0, _0819E8B8 + ldr r1, [r0] + ldrb r0, [r1, #3] + cmp r0, #2 + bls _0819E8BC + movs r0, #1 + movs r1, #2 + bl CopyWindowToVram + b _0819E924 + .align 2, 0 +_0819E8B8: .4byte 0x03001280 +_0819E8BC: + ldrb r2, [r1, #3] + ldrb r0, [r1, #0x14] + cmp r0, #0 + bne _0819E8D0 + movs r0, #0x64 + muls r0, r2, r0 + ldr r1, _0819E8CC + b _0819E8D6 + .align 2, 0 +_0819E8CC: .4byte 0x02024190 +_0819E8D0: + movs r0, #0x64 + muls r0, r2, r0 + ldr r1, _0819E92C +_0819E8D6: + adds r0, r0, r1 + movs r1, #0xb + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _0819E930 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + ldr r0, _0819E934 + adds r1, r1, r0 + adds r0, r4, #0 + bl StringCopy + adds r0, r4, #0 + bl StringLength + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #5 + subs r2, r2, r0 + lsls r2, r2, #0x1b + lsrs r2, r2, #0x18 + ldr r0, _0819E938 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r4, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r3, #2 + bl AddTextPrinterParameterized3 + movs r0, #1 + movs r1, #2 + bl CopyWindowToVram +_0819E924: + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0819E92C: .4byte 0x020243E8 +_0819E930: .4byte 0x02021C7C +_0819E934: .4byte 0x082EA31C +_0819E938: .4byte 0x085DC1D1 + thumb_func_end Swap_PrintMonSpecies + + thumb_func_start Swap_PrintOnInfoWindow +Swap_PrintOnInfoWindow: @ 0x0819E93C + push {r4, lr} + sub sp, #0xc + adds r4, r0, #0 + movs r0, #2 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #5 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + movs r0, #2 + movs r1, #1 + adds r2, r4, #0 + movs r3, #4 + bl AddTextPrinterParameterized + movs r0, #2 + movs r1, #2 + bl CopyWindowToVram + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + thumb_func_end Swap_PrintOnInfoWindow + + thumb_func_start Swap_PrintMenuOptions +Swap_PrintMenuOptions: @ 0x0819E970 + push {r4, r5, lr} + sub sp, #0xc + movs r0, #3 + bl PutWindowTilemap + movs r0, #3 + movs r1, #0 + bl FillWindowPixelBuffer + ldr r5, _0819E9D4 + str r5, [sp] + movs r4, #0 + str r4, [sp, #4] + ldr r0, _0819E9D8 + str r0, [sp, #8] + movs r0, #3 + movs r1, #1 + movs r2, #8 + movs r3, #2 + bl AddTextPrinterParameterized3 + str r5, [sp] + str r4, [sp, #4] + ldr r0, _0819E9DC + str r0, [sp, #8] + movs r0, #3 + movs r1, #1 + movs r2, #8 + movs r3, #0x12 + bl AddTextPrinterParameterized3 + str r5, [sp] + str r4, [sp, #4] + ldr r0, _0819E9E0 + str r0, [sp, #8] + movs r0, #3 + movs r1, #1 + movs r2, #8 + movs r3, #0x22 + bl AddTextPrinterParameterized3 + movs r0, #3 + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0819E9D4: .4byte 0x085DC1CE +_0819E9D8: .4byte 0x085DC0ED +_0819E9DC: .4byte 0x085DC0E8 +_0819E9E0: .4byte 0x085DC0F4 + thumb_func_end Swap_PrintMenuOptions + + thumb_func_start Swap_PrintYesNoOptions +Swap_PrintYesNoOptions: @ 0x0819E9E4 + push {r4, r5, lr} + sub sp, #0xc + movs r0, #4 + bl PutWindowTilemap + movs r0, #4 + movs r1, #0 + bl FillWindowPixelBuffer + ldr r5, _0819EA34 + str r5, [sp] + movs r4, #0 + str r4, [sp, #4] + ldr r0, _0819EA38 + str r0, [sp, #8] + movs r0, #4 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 + str r5, [sp] + str r4, [sp, #4] + ldr r0, _0819EA3C + str r0, [sp, #8] + movs r0, #4 + movs r1, #1 + movs r2, #0 + movs r3, #0x12 + bl AddTextPrinterParameterized3 + movs r0, #4 + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0819EA34: .4byte 0x085DC1CE +_0819EA38: .4byte 0x085DC10C +_0819EA3C: .4byte 0x085DC10F + thumb_func_end Swap_PrintYesNoOptions + + thumb_func_start Swap_PrintActionString +Swap_PrintActionString: @ 0x0819EA40 + push {lr} + sub sp, #0xc + movs r0, #6 + bl PutWindowTilemap + movs r0, #6 + movs r1, #0 + bl FillWindowPixelBuffer + ldr r0, _0819EA74 + ldr r0, [r0] + ldrb r1, [r0, #0x14] + cmp r1, #0 + bne _0819EA80 + ldr r0, _0819EA78 + str r0, [sp] + str r1, [sp, #4] + ldr r0, _0819EA7C + str r0, [sp, #8] + movs r0, #6 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 + b _0819EA98 + .align 2, 0 +_0819EA74: .4byte 0x03001280 +_0819EA78: .4byte 0x085DC1D1 +_0819EA7C: .4byte 0x085DC121 +_0819EA80: + ldr r0, _0819EAA8 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + ldr r0, _0819EAAC + str r0, [sp, #8] + movs r0, #6 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 +_0819EA98: + movs r0, #6 + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_0819EAA8: .4byte 0x085DC1D1 +_0819EAAC: .4byte 0x085DC126 + thumb_func_end Swap_PrintActionString + + thumb_func_start Swap_PrintActionStrings +Swap_PrintActionStrings: @ 0x0819EAB0 + push {lr} + sub sp, #0xc + movs r0, #5 + movs r1, #0 + bl FillWindowPixelBuffer + ldr r0, _0819EB08 + ldr r0, [r0] + ldrb r0, [r0, #0x14] + cmp r0, #0 + beq _0819EAE2 + cmp r0, #1 + bne _0819EAFA + ldr r0, _0819EB0C + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + ldr r0, _0819EB10 + str r0, [sp, #8] + movs r0, #5 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl AddTextPrinterParameterized3 +_0819EAE2: + ldr r0, _0819EB0C + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + ldr r0, _0819EB14 + str r0, [sp, #8] + movs r0, #5 + movs r1, #0 + movs r2, #0x20 + movs r3, #0x18 + bl AddTextPrinterParameterized3 +_0819EAFA: + movs r0, #5 + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_0819EB08: .4byte 0x03001280 +_0819EB0C: .4byte 0x085DC1CE +_0819EB10: .4byte 0x085DC113 +_0819EB14: .4byte 0x085DC11C + thumb_func_end Swap_PrintActionStrings + + thumb_func_start Swap_PrintActionStrings2 +Swap_PrintActionStrings2: @ 0x0819EB18 + push {lr} + sub sp, #0xc + movs r0, #3 + movs r1, #0 + bl FillWindowPixelBuffer + ldr r0, _0819EB70 + ldr r0, [r0] + ldrb r0, [r0, #0x14] + cmp r0, #0 + beq _0819EB4A + cmp r0, #1 + bne _0819EB62 + ldr r0, _0819EB74 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + ldr r0, _0819EB78 + str r0, [sp, #8] + movs r0, #3 + movs r1, #0 + movs r2, #0 + movs r3, #8 + bl AddTextPrinterParameterized3 +_0819EB4A: + ldr r0, _0819EB74 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + ldr r0, _0819EB7C + str r0, [sp, #8] + movs r0, #3 + movs r1, #0 + movs r2, #0x20 + movs r3, #0x20 + bl AddTextPrinterParameterized3 +_0819EB62: + movs r0, #3 + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_0819EB70: .4byte 0x03001280 +_0819EB74: .4byte 0x085DC1CE +_0819EB78: .4byte 0x085DC113 +_0819EB7C: .4byte 0x085DC11C + thumb_func_end Swap_PrintActionStrings2 + + thumb_func_start Swap_PrintOneActionString +Swap_PrintOneActionString: @ 0x0819EB80 + push {lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _0819EB92 + cmp r1, #1 + beq _0819EBC0 + b _0819EBD8 +_0819EB92: + ldr r0, _0819EBB4 + ldr r0, [r0] + ldrb r0, [r0, #0x14] + cmp r0, #1 + bne _0819EBD8 + ldr r0, _0819EBB8 + str r0, [sp] + str r1, [sp, #4] + ldr r0, _0819EBBC + str r0, [sp, #8] + movs r0, #3 + movs r1, #0 + movs r2, #0 + movs r3, #8 + bl AddTextPrinterParameterized3 + b _0819EBD8 + .align 2, 0 +_0819EBB4: .4byte 0x03001280 +_0819EBB8: .4byte 0x085DC1CE +_0819EBBC: .4byte 0x085DC113 +_0819EBC0: + ldr r0, _0819EBE8 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + ldr r0, _0819EBEC + str r0, [sp, #8] + movs r0, #3 + movs r1, #0 + movs r2, #0x20 + movs r3, #0x20 + bl AddTextPrinterParameterized3 +_0819EBD8: + movs r0, #3 + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_0819EBE8: .4byte 0x085DC1CE +_0819EBEC: .4byte 0x085DC11C + thumb_func_end Swap_PrintOneActionString + + thumb_func_start Swap_PrintMonSpecies2 +Swap_PrintMonSpecies2: @ 0x0819EBF0 + push {r4, lr} + sub sp, #0x18 + ldr r0, _0819EC18 + add r1, sp, #0xc + movs r2, #4 + bl CpuSet + ldr r0, _0819EC1C + ldr r2, [r0] + ldrb r0, [r2, #0x15] + cmp r0, #0 + bne _0819EC24 + add r0, sp, #0xc + ldr r1, _0819EC20 + movs r2, #0xe4 + lsls r2, r2, #1 + adds r1, r1, r2 + ldrh r1, [r1] + strh r1, [r0, #8] + b _0819EC2A + .align 2, 0 +_0819EC18: .4byte 0x085DC1C4 +_0819EC1C: .4byte 0x03001280 +_0819EC20: .4byte 0x020377B4 +_0819EC24: + add r1, sp, #0xc + ldrh r0, [r2, #0x24] + strh r0, [r1, #8] +_0819EC2A: + add r0, sp, #0xc + movs r1, #0xf0 + movs r2, #0xa + bl LoadPalette + movs r0, #0 + bl PutWindowTilemap + ldr r0, _0819EC5C + ldr r0, [r0] + ldrb r1, [r0, #0x14] + cmp r1, #0 + bne _0819EC68 + ldr r0, _0819EC60 + str r0, [sp] + str r1, [sp, #4] + ldr r0, _0819EC64 + str r0, [sp, #8] + movs r0, #0 + movs r1, #1 + movs r2, #0x48 + movs r3, #2 + bl AddTextPrinterParameterized3 + b _0819EC80 + .align 2, 0 +_0819EC5C: .4byte 0x03001280 +_0819EC60: .4byte 0x085DC1D1 +_0819EC64: .4byte 0x085DC121 +_0819EC68: + ldr r0, _0819ECAC + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + ldr r0, _0819ECB0 + str r0, [sp, #8] + movs r0, #0 + movs r1, #1 + movs r2, #0x48 + movs r3, #2 + bl AddTextPrinterParameterized3 +_0819EC80: + movs r0, #0 + movs r1, #2 + bl CopyWindowToVram + movs r0, #7 + bl PutWindowTilemap + movs r0, #7 + movs r1, #0 + bl FillWindowPixelBuffer + ldr r0, _0819ECB4 + ldr r1, [r0] + ldrb r0, [r1, #3] + cmp r0, #2 + bls _0819ECB8 + movs r0, #7 + movs r1, #3 + bl CopyWindowToVram + b _0819ED20 + .align 2, 0 +_0819ECAC: .4byte 0x085DC1D1 +_0819ECB0: .4byte 0x085DC126 +_0819ECB4: .4byte 0x03001280 +_0819ECB8: + ldrb r2, [r1, #3] + ldrb r0, [r1, #0x14] + cmp r0, #0 + bne _0819ECCC + movs r0, #0x64 + muls r0, r2, r0 + ldr r1, _0819ECC8 + b _0819ECD2 + .align 2, 0 +_0819ECC8: .4byte 0x02024190 +_0819ECCC: + movs r0, #0x64 + muls r0, r2, r0 + ldr r1, _0819ED28 +_0819ECD2: + adds r0, r0, r1 + movs r1, #0xb + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _0819ED2C + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + ldr r0, _0819ED30 + adds r1, r1, r0 + adds r0, r4, #0 + bl StringCopy + adds r0, r4, #0 + bl StringLength + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #5 + subs r2, r2, r0 + lsls r2, r2, #0x1b + lsrs r2, r2, #0x18 + ldr r0, _0819ED34 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r4, [sp, #8] + movs r0, #7 + movs r1, #1 + movs r3, #2 + bl AddTextPrinterParameterized3 + movs r0, #7 + movs r1, #3 + bl CopyWindowToVram +_0819ED20: + add sp, #0x18 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0819ED28: .4byte 0x020243E8 +_0819ED2C: .4byte 0x02021C7C +_0819ED30: .4byte 0x082EA31C +_0819ED34: .4byte 0x085DC1D1 + thumb_func_end Swap_PrintMonSpecies2 + + thumb_func_start Swap_PrintMonSpecies3 +Swap_PrintMonSpecies3: @ 0x0819ED38 + push {r4, lr} + sub sp, #0xc + ldr r0, _0819ED78 + movs r1, #0xe0 + movs r2, #0xa + bl LoadPalette + ldr r0, _0819ED7C + ldr r1, _0819ED80 + movs r2, #5 + bl CpuSet + movs r0, #6 + bl PutWindowTilemap + ldr r0, _0819ED84 + ldr r0, [r0] + ldrb r1, [r0, #0x14] + cmp r1, #0 + bne _0819ED90 + ldr r0, _0819ED88 + str r0, [sp] + str r1, [sp, #4] + ldr r0, _0819ED8C + str r0, [sp, #8] + movs r0, #6 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 + b _0819EDA8 + .align 2, 0 +_0819ED78: .4byte 0x085DC1C4 +_0819ED7C: .4byte 0x02037594 +_0819ED80: .4byte 0x02037974 +_0819ED84: .4byte 0x03001280 +_0819ED88: .4byte 0x085DC1D1 +_0819ED8C: .4byte 0x085DC121 +_0819ED90: + ldr r0, _0819EDC4 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + ldr r0, _0819EDC8 + str r0, [sp, #8] + movs r0, #6 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 +_0819EDA8: + movs r0, #6 + movs r1, #3 + bl CopyWindowToVram + ldr r0, _0819EDCC + ldr r1, [r0] + ldrb r0, [r1, #3] + cmp r0, #2 + bls _0819EDD0 + movs r0, #1 + movs r1, #2 + bl CopyWindowToVram + b _0819EE38 + .align 2, 0 +_0819EDC4: .4byte 0x085DC1D1 +_0819EDC8: .4byte 0x085DC126 +_0819EDCC: .4byte 0x03001280 +_0819EDD0: + ldrb r2, [r1, #3] + ldrb r0, [r1, #0x14] + cmp r0, #0 + bne _0819EDE4 + movs r0, #0x64 + muls r0, r2, r0 + ldr r1, _0819EDE0 + b _0819EDEA + .align 2, 0 +_0819EDE0: .4byte 0x02024190 +_0819EDE4: + movs r0, #0x64 + muls r0, r2, r0 + ldr r1, _0819EE40 +_0819EDEA: + adds r0, r0, r1 + movs r1, #0xb + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _0819EE44 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + ldr r0, _0819EE48 + adds r1, r1, r0 + adds r0, r4, #0 + bl StringCopy + adds r0, r4, #0 + bl StringLength + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #5 + subs r2, r2, r0 + lsls r2, r2, #0x1b + lsrs r2, r2, #0x18 + ldr r0, _0819EE4C + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r4, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r3, #2 + bl AddTextPrinterParameterized3 + movs r0, #1 + movs r1, #3 + bl CopyWindowToVram +_0819EE38: + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0819EE40: .4byte 0x020243E8 +_0819EE44: .4byte 0x02021C7C +_0819EE48: .4byte 0x082EA31C +_0819EE4C: .4byte 0x085DC1D1 + thumb_func_end Swap_PrintMonSpecies3 + + thumb_func_start Swap_PrintMonCategory +Swap_PrintMonCategory: @ 0x0819EE50 + push {r4, r5, r6, lr} + sub sp, #0x18 + ldr r6, _0819EE74 + ldr r0, [r6] + ldrb r4, [r0, #3] + adds r5, r4, #0 + movs r0, #8 + movs r1, #0 + bl FillWindowPixelBuffer + cmp r4, #2 + bls _0819EE78 + movs r0, #8 + movs r1, #2 + bl CopyWindowToVram + b _0819EF20 + .align 2, 0 +_0819EE74: .4byte 0x03001280 +_0819EE78: + movs r0, #8 + bl PutWindowTilemap + ldr r0, [r6] + ldrb r0, [r0, #0x14] + cmp r0, #0 + bne _0819EE94 + movs r0, #0x64 + muls r0, r4, r0 + ldr r1, _0819EE90 + b _0819EE9A + .align 2, 0 +_0819EE90: .4byte 0x02024190 +_0819EE94: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _0819EF28 +_0819EE9A: + adds r0, r0, r1 + movs r1, #0xb + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + movs r4, #0 + ldr r1, _0819EF2C + lsls r3, r5, #3 + subs r0, r3, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _0819EEEA + adds r6, r1, #0 +_0819EEC4: + mov r2, sp + adds r2, r2, r4 + adds r2, #0xc + subs r1, r3, r5 + lsls r1, r1, #2 + adds r0, r4, r1 + adds r0, r0, r6 + ldrb r0, [r0] + strb r0, [r2] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r1, r4, r1 + adds r1, r1, r6 + ldrb r0, [r1] + cmp r0, #0 + beq _0819EEEA + cmp r4, #4 + bls _0819EEC4 +_0819EEEA: + mov r1, sp + adds r1, r1, r4 + adds r1, #0xc + movs r0, #0xff + strb r0, [r1] + ldr r1, _0819EF30 + add r0, sp, #0xc + bl StringAppend + movs r3, #5 + subs r3, r3, r4 + lsls r3, r3, #0x1b + lsrs r3, r3, #0x18 + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + movs r0, #8 + movs r1, #1 + add r2, sp, #0xc + bl AddTextPrinterParameterized + movs r0, #8 + movs r1, #2 + bl CopyWindowToVram +_0819EF20: + add sp, #0x18 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0819EF28: .4byte 0x020243E8 +_0819EF2C: .4byte 0x0854069C +_0819EF30: .4byte 0x085C8C66 + thumb_func_end Swap_PrintMonCategory + + thumb_func_start Swap_InitActions +Swap_InitActions: @ 0x0819EF34 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r4, _0819EF50 + ldr r3, [r4] + ldrb r0, [r3, #0x15] + cmp r0, #1 + beq _0819EF80 + cmp r2, #0 + beq _0819EF54 + cmp r2, #1 + beq _0819EF6C + b _0819EF80 + .align 2, 0 +_0819EF50: .4byte 0x03001280 +_0819EF54: + strb r2, [r3, #0x14] + ldr r0, [r4] + strb r2, [r0, #3] + ldr r1, [r4] + movs r0, #4 + strb r0, [r1, #0x17] + ldr r1, [r4] + ldr r0, _0819EF68 + b _0819EF7E + .align 2, 0 +_0819EF68: .4byte 0x085DC1D4 +_0819EF6C: + movs r1, #0 + strb r2, [r3, #0x14] + ldr r0, [r4] + strb r1, [r0, #3] + ldr r1, [r4] + movs r0, #5 + strb r0, [r1, #0x17] + ldr r1, [r4] + ldr r0, _0819EF88 +_0819EF7E: + str r0, [r1, #0x18] +_0819EF80: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0819EF88: .4byte 0x085DC1F4 + thumb_func_end Swap_InitActions + + thumb_func_start Swap_RunMenuOptionFunc +Swap_RunMenuOptionFunc: @ 0x0819EF8C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _0819EFAC + ldr r2, _0819EFB0 + ldr r1, _0819EFB4 + ldr r1, [r1] + ldrb r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + str r1, [r3] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_0819EFAC: .4byte 0x0300127C +_0819EFB0: .4byte 0x085DC158 +_0819EFB4: .4byte 0x03001280 + thumb_func_end Swap_RunMenuOptionFunc + + thumb_func_start sub_0819EFB8 +sub_0819EFB8: @ 0x0819EFB8 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r5, _0819EFF4 + ldr r1, [r5] + ldr r0, [r1, #0x2c] + adds r1, #0x30 + movs r2, #1 + bl sub_0819F2E4 + ldr r0, [r5] + ldrb r1, [r0, #3] + movs r5, #0 + strb r1, [r0, #0x12] + movs r0, #3 + bl sub_0819E76C + ldr r1, _0819EFF8 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r5, [r0, #8] + ldr r1, _0819EFFC + str r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0819EFF4: .4byte 0x03001280 +_0819EFF8: .4byte 0x03005B60 +_0819EFFC: .4byte 0x0819D6D5 + thumb_func_end sub_0819EFB8 + + thumb_func_start sub_0819F000 +sub_0819F000: @ 0x0819F000 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0819F018 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r0, #6 + strh r0, [r1, #8] + ldr r0, _0819F01C + str r0, [r1] + bx lr + .align 2, 0 +_0819F018: .4byte 0x03005B60 +_0819F01C: .4byte 0x0819C5F5 + thumb_func_end sub_0819F000 + + thumb_func_start sub_0819F020 +sub_0819F020: @ 0x0819F020 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _0819F060 + ldr r1, [r0] + ldr r0, [r1, #0x2c] + adds r1, #0x30 + movs r2, #1 + bl sub_0819F2E4 + movs r0, #3 + bl sub_0819E76C + ldr r1, _0819F064 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #8] + ldr r2, _0819F068 + lsrs r1, r2, #0x10 + strh r1, [r0, #0x14] + strh r2, [r0, #0x16] + movs r1, #1 + strh r1, [r0, #0x12] + ldr r1, _0819F06C + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0819F060: .4byte 0x03001280 +_0819F064: .4byte 0x03005B60 +_0819F068: .4byte 0x0819CB29 +_0819F06C: .4byte 0x0819D459 + thumb_func_end sub_0819F020 + + thumb_func_start Swap_RunActionFunc +Swap_RunActionFunc: @ 0x0819F070 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _0819F090 + ldr r1, _0819F094 + ldr r2, [r1] + ldrb r1, [r2, #3] + ldr r2, [r2, #0x18] + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r1, [r1, #4] + str r1, [r3] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_0819F090: .4byte 0x0300127C +_0819F094: .4byte 0x03001280 + thumb_func_end Swap_RunActionFunc + + thumb_func_start Swap_ActionCancel +Swap_ActionCancel: @ 0x0819F098 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0819F0BC + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r2, _0819F0C0 + lsrs r0, r2, #0x10 + movs r3, #0 + strh r0, [r1, #0x14] + strh r2, [r1, #0x16] + strh r3, [r1, #8] + strh r3, [r1, #0x12] + ldr r0, _0819F0C4 + str r0, [r1] + bx lr + .align 2, 0 +_0819F0BC: .4byte 0x03005B60 +_0819F0C0: .4byte 0x0819C90D +_0819F0C4: .4byte 0x0819D271 + thumb_func_end Swap_ActionCancel + + thumb_func_start Swap_ActionPkmnForSwap +Swap_ActionPkmnForSwap: @ 0x0819F0C8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0819F0EC + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r2, _0819F0F0 + lsrs r0, r2, #0x10 + movs r3, #0 + strh r0, [r1, #0x14] + strh r2, [r1, #0x16] + strh r3, [r1, #0x12] + strh r3, [r1, #8] + ldr r0, _0819F0F4 + str r0, [r1] + bx lr + .align 2, 0 +_0819F0EC: .4byte 0x03005B60 +_0819F0F0: .4byte 0x0819D6D5 +_0819F0F4: .4byte 0x0819D271 + thumb_func_end Swap_ActionPkmnForSwap + + thumb_func_start Swap_ActionMon +Swap_ActionMon: @ 0x0819F0F8 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r5, _0819F120 + ldr r1, [r5] + ldrb r0, [r1, #0x14] + cmp r0, #0 + bne _0819F12C + ldr r3, _0819F124 + lsls r4, r6, #2 + adds r0, r4, r6 + lsls r0, r0, #3 + adds r0, r0, r3 + ldr r2, _0819F128 + lsrs r1, r2, #0x10 + strh r1, [r0, #0x14] + strh r2, [r0, #0x16] + movs r1, #2 + strh r1, [r0, #0x12] + b _0819F17E + .align 2, 0 +_0819F120: .4byte 0x03001280 +_0819F124: .4byte 0x03005B60 +_0819F128: .4byte 0x0819CA1D +_0819F12C: + ldrb r0, [r1, #3] + bl Swap_AlreadyHasSameSpecies + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #1 + bne _0819F164 + ldr r1, [r5] + adds r0, r1, #0 + adds r0, #0x2d + adds r1, #0x30 + movs r2, #1 + bl sub_0819F1A0 + ldr r1, _0819F15C + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #8] + strh r4, [r0, #0x12] + ldr r1, _0819F160 + b _0819F18A + .align 2, 0 +_0819F15C: .4byte 0x03005B60 +_0819F160: .4byte 0x0819F375 +_0819F164: + ldr r4, _0819F194 + lsls r5, r6, #2 + adds r0, r5, r6 + lsls r0, r0, #3 + adds r0, r0, r4 + ldr r2, _0819F198 + lsrs r1, r2, #0x10 + movs r3, #0 + strh r1, [r0, #0x14] + strh r2, [r0, #0x16] + strh r3, [r0, #0x12] + adds r3, r4, #0 + adds r4, r5, #0 +_0819F17E: + adds r0, r4, r6 + lsls r0, r0, #3 + adds r0, r0, r3 + movs r1, #0 + strh r1, [r0, #8] + ldr r1, _0819F19C +_0819F18A: + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0819F194: .4byte 0x03005B60 +_0819F198: .4byte 0x0819C9BD +_0819F19C: .4byte 0x0819D271 + thumb_func_end Swap_ActionMon + + thumb_func_start sub_0819F1A0 +sub_0819F1A0: @ 0x0819F1A0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + lsls r5, r2, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _0819F1E4 + movs r1, #0x78 + movs r2, #0x40 + movs r3, #1 + bl CreateSprite + strb r0, [r4] + ldr r2, _0819F1E8 + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r2, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _0819F1EC + str r1, [r0] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r5, [r0, #0x3c] + movs r0, #1 + strb r0, [r6] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0819F1E4: .4byte 0x085DC09C +_0819F1E8: .4byte 0x020205AC +_0819F1EC: .4byte 0x0819F4ED + thumb_func_end sub_0819F1A0 + + thumb_func_start Swap_ShowSummaryMonSprite +Swap_ShowSummaryMonSprite: @ 0x0819F1F0 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + sub sp, #0x10 + ldr r0, _0819F2D0 + movs r1, #0x78 + movs r2, #0x40 + movs r3, #1 + bl CreateSprite + ldr r6, _0819F2D4 + ldr r1, [r6] + adds r1, #0x2d + movs r2, #0 + mov sl, r2 + strb r0, [r1] + ldr r0, [r6] + adds r0, #0x2d + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0819F2D8 + mov r8, r1 + add r0, r8 + movs r1, #2 + bl StartSpriteAffineAnim + ldr r0, [r6] + ldrb r1, [r0, #3] + movs r0, #0x64 + adds r4, r1, #0 + muls r4, r0, r4 + ldr r0, _0819F2DC + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + bl GetMonData + mov sb, r0 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl GetMonData + adds r2, r0, #0 + movs r0, #0x58 + str r0, [sp] + movs r0, #0x20 + str r0, [sp, #4] + movs r0, #0xf + str r0, [sp, #8] + ldr r0, _0819F2E0 + str r0, [sp, #0xc] + adds r0, r5, #0 + mov r1, sb + movs r3, #1 + bl CreateMonPicSprite_HandleDeoxys + ldr r1, [r6] + adds r1, #0x2c + strb r0, [r1] + ldr r0, [r6] + adds r0, #0x2c + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + adds r0, #0x28 + mov r2, sl + strb r2, [r0] + ldr r0, [r6] + adds r0, #0x2c + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + adds r0, #0x29 + strb r2, [r0] + ldr r0, [r6] + adds r0, #0x2d + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0819F2D0: .4byte 0x085DC09C +_0819F2D4: .4byte 0x03001280 +_0819F2D8: .4byte 0x020205AC +_0819F2DC: .4byte 0x02024190 +_0819F2E0: .4byte 0x0000FFFF + thumb_func_end Swap_ShowSummaryMonSprite + + thumb_func_start sub_0819F2E4 +sub_0819F2E4: @ 0x0819F2E4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + lsls r5, r2, #0x18 + lsrs r5, r5, #0x18 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl FreeAndDestroyMonPicSprite + ldr r0, _0819F328 + movs r1, #1 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0819F32C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r5, [r1, #0x16] + lsrs r4, r4, #8 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + strh r4, [r1, #0x14] + ldr r1, [r1] + bl _call_via_r1 + movs r0, #1 + strb r0, [r6] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0819F328: .4byte 0x0819F6A1 +_0819F32C: .4byte 0x03005B60 + thumb_func_end sub_0819F2E4 + + thumb_func_start sub_0819F330 +sub_0819F330: @ 0x0819F330 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl FreeAndDestroyMonPicSprite + ldr r5, _0819F370 + lsls r4, r4, #0x10 + lsrs r1, r4, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r0, [r0, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + lsrs r4, r4, #0x18 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r5 + bl DestroySprite + movs r0, #0 + strb r0, [r6] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0819F370: .4byte 0x020205AC + thumb_func_end sub_0819F330 + + thumb_func_start Task_SwapCantHaveSameMons +Task_SwapCantHaveSameMons: @ 0x0819F374 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _0819F3A8 + ldr r0, [r1] + adds r0, #0x30 + ldrb r0, [r0] + adds r3, r1, #0 + cmp r0, #1 + beq _0819F476 + ldr r2, _0819F3AC + lsls r1, r4, #2 + adds r0, r1, r4 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r2, #8 + ldrsh r0, [r0, r2] + adds r5, r1, #0 + cmp r0, #4 + bhi _0819F476 + lsls r0, r0, #2 + ldr r1, _0819F3B0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0819F3A8: .4byte 0x03001280 +_0819F3AC: .4byte 0x03005B60 +_0819F3B0: .4byte 0x0819F3B4 +_0819F3B4: @ jump table + .4byte _0819F3C8 @ case 0 + .4byte _0819F3E4 @ case 1 + .4byte _0819F418 @ case 2 + .4byte _0819F434 @ case 3 + .4byte _0819F454 @ case 4 +_0819F3C8: + ldr r0, _0819F3DC + bl Swap_PrintOnInfoWindow + ldr r0, _0819F3E0 + ldr r0, [r0] + adds r0, #0x20 + movs r1, #0 + strb r1, [r0] + b _0819F43A + .align 2, 0 +_0819F3DC: .4byte 0x085DC141 +_0819F3E0: .4byte 0x03001280 +_0819F3E4: + ldr r0, _0819F410 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0819F3F8 + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0819F476 +_0819F3F8: + movs r0, #5 + bl PlaySE + ldr r0, _0819F414 + ldr r1, [r0] + ldr r0, [r1, #0x2c] + adds r1, #0x30 + movs r2, #1 + bl sub_0819F2E4 + b _0819F43A + .align 2, 0 +_0819F410: .4byte 0x03002360 +_0819F414: .4byte 0x03001280 +_0819F418: + ldr r0, [r3] + adds r0, #0x30 + ldrb r0, [r0] + cmp r0, #1 + beq _0819F476 + movs r0, #5 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #5 + movs r1, #2 + bl CopyWindowToVram + b _0819F43A +_0819F434: + ldr r0, _0819F44C + bl Swap_PrintOnInfoWindow +_0819F43A: + ldr r0, _0819F450 + adds r1, r5, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _0819F476 + .align 2, 0 +_0819F44C: .4byte 0x085DC0D5 +_0819F450: .4byte 0x03005B60 +_0819F454: + bl Swap_PrintMonSpecies3 + bl sub_0819E7FC + ldr r0, _0819F47C + ldr r0, [r0] + adds r0, #0x22 + movs r1, #1 + strb r1, [r0] + ldr r1, _0819F480 + adds r0, r5, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #0x12] + strh r1, [r0, #8] + ldr r1, _0819F484 + str r1, [r0] +_0819F476: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0819F47C: .4byte 0x03001280 +_0819F480: .4byte 0x03005B60 +_0819F484: .4byte 0x0819CB29 + thumb_func_end Task_SwapCantHaveSameMons + + thumb_func_start Swap_AlreadyHasSameSpecies +Swap_AlreadyHasSameSpecies: @ 0x0819F488 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x64 + muls r0, r1, r0 + ldr r1, _0819F4CC + adds r0, r0, r1 + movs r1, #0xb + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + movs r4, #0 +_0819F4A4: + ldr r0, _0819F4D0 + ldr r0, [r0] + ldrb r0, [r0, #0x12] + cmp r4, r0 + beq _0819F4D8 + movs r0, #0x64 + muls r0, r4, r0 + ldr r1, _0819F4D4 + adds r0, r0, r1 + movs r1, #0xb + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r5 + bne _0819F4D8 + movs r0, #1 + b _0819F4E4 + .align 2, 0 +_0819F4CC: .4byte 0x020243E8 +_0819F4D0: .4byte 0x03001280 +_0819F4D4: .4byte 0x02024190 +_0819F4D8: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #2 + bls _0819F4A4 + movs r0, #0 +_0819F4E4: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end Swap_AlreadyHasSameSpecies + + thumb_func_start sub_0819F4EC +sub_0819F4EC: @ 0x0819F4EC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0819F52C + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _0819F534 + movs r1, #1 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0819F538 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldrh r2, [r4, #0x3c] + strh r2, [r1, #0x16] + ldr r1, [r1] + bl _call_via_r1 + ldr r0, _0819F53C + str r0, [r4, #0x1c] +_0819F52C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0819F534: .4byte 0x0819F589 +_0819F538: .4byte 0x03005B60 +_0819F53C: .4byte 0x08007141 + thumb_func_end sub_0819F4EC + + thumb_func_start sub_0819F540 +sub_0819F540: @ 0x0819F540 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0819F580 + ldrb r0, [r4, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + movs r1, #0x3c + ldrsh r0, [r4, r1] + cmp r0, #1 + bne _0819F574 + ldr r0, _0819F570 + ldr r0, [r0] + adds r0, #0x30 + movs r1, #0 + strb r1, [r0] + b _0819F57A + .align 2, 0 +_0819F570: .4byte 0x03001280 +_0819F574: + movs r0, #0 + bl sub_0819BB08 +_0819F57A: + adds r0, r4, #0 + bl DestroySprite +_0819F580: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0819F540 + + thumb_func_start sub_0819F588 +sub_0819F588: @ 0x0819F588 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _0819F5AC + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _0819F606 + cmp r0, #1 + bgt _0819F5B0 + cmp r0, #0 + beq _0819F5B6 + b _0819F668 + .align 2, 0 +_0819F5AC: .4byte 0x03005B60 +_0819F5B0: + cmp r0, #2 + beq _0819F628 + b _0819F668 +_0819F5B6: + movs r0, #0x58 + strh r0, [r4, #0xe] + movs r0, #0x98 + strh r0, [r4, #0x38] + movs r0, #0x40 + strh r0, [r4, #0x12] + movs r0, #0x41 + strh r0, [r4, #0x18] + movs r1, #0x80 + lsls r1, r1, #6 + movs r0, #0 + bl SetGpuRegBits + ldrh r1, [r4, #0xe] + lsls r1, r1, #8 + ldrh r0, [r4, #0x38] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x40 + bl SetGpuReg + ldrh r1, [r4, #0x12] + lsls r1, r1, #8 + ldrh r0, [r4, #0x18] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x44 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0x3f + bl SetGpuReg + movs r0, #0x4a + movs r1, #0x37 + bl SetGpuReg + b _0819F692 +_0819F606: + movs r0, #3 + bl ShowBg + ldr r1, _0819F620 + movs r0, #0x50 + bl SetGpuReg + ldr r1, _0819F624 + movs r0, #0x52 + bl SetGpuReg + b _0819F692 + .align 2, 0 +_0819F620: .4byte 0x00001248 +_0819F624: .4byte 0x0000040B +_0819F628: + ldrh r0, [r4, #0x12] + subs r0, #4 + strh r0, [r4, #0x12] + ldrh r1, [r4, #0x18] + adds r1, #4 + strh r1, [r4, #0x18] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x20 + ble _0819F644 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x5f + ble _0819F64C +_0819F644: + movs r0, #0x20 + strh r0, [r4, #0x12] + movs r0, #0x60 + strh r0, [r4, #0x18] +_0819F64C: + ldrh r1, [r4, #0x12] + lsls r1, r1, #8 + ldrh r0, [r4, #0x18] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x44 + bl SetGpuReg + movs r2, #0x12 + ldrsh r0, [r4, r2] + cmp r0, #0x20 + bne _0819F698 + b _0819F692 +_0819F668: + adds r0, r5, #0 + bl DestroyTask + ldr r0, _0819F688 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r2, #0x16 + ldrsh r0, [r1, r2] + cmp r0, #1 + bne _0819F68C + bl Swap_ShowMonSprite + b _0819F698 + .align 2, 0 +_0819F688: .4byte 0x03005B60 +_0819F68C: + bl Summary_ShowMonSprite + b _0819F698 +_0819F692: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_0819F698: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0819F588 + + thumb_func_start sub_0819F6A0 +sub_0819F6A0: @ 0x0819F6A0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _0819F724 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0819F730 + cmp r0, #1 + beq _0819F780 + movs r0, #3 + bl HideBg + ldr r3, _0819F728 + movs r0, #0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r4, #0x16] + strh r1, [r0, #0x3c] + movs r0, #0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + movs r0, #0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r3, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _0819F72C + str r1, [r0] + movs r0, #0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r1, #1 + bl StartSpriteAffineAnim + movs r1, #0x80 + lsls r1, r1, #6 + movs r0, #0 + bl ClearGpuRegBits + adds r0, r5, #0 + bl DestroyTask + b _0819F7C4 + .align 2, 0 +_0819F724: .4byte 0x03005B60 +_0819F728: .4byte 0x020205AC +_0819F72C: .4byte 0x0819F541 +_0819F730: + movs r0, #0x58 + strh r0, [r4, #0xe] + movs r0, #0x98 + strh r0, [r4, #0x38] + movs r0, #0x20 + strh r0, [r4, #0x12] + movs r0, #0x60 + strh r0, [r4, #0x18] + movs r1, #0x80 + lsls r1, r1, #6 + movs r0, #0 + bl SetGpuRegBits + ldrh r1, [r4, #0xe] + lsls r1, r1, #8 + ldrh r0, [r4, #0x38] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x40 + bl SetGpuReg + ldrh r1, [r4, #0x12] + lsls r1, r1, #8 + ldrh r0, [r4, #0x18] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x44 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0x3f + bl SetGpuReg + movs r0, #0x4a + movs r1, #0x37 + bl SetGpuReg + b _0819F7BE +_0819F780: + ldrh r0, [r4, #0x12] + adds r0, #4 + strh r0, [r4, #0x12] + ldrh r1, [r4, #0x18] + subs r1, #4 + strh r1, [r4, #0x18] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x3f + bgt _0819F79C + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x41 + bgt _0819F7A4 +_0819F79C: + movs r0, #0x40 + strh r0, [r4, #0x12] + movs r0, #0x41 + strh r0, [r4, #0x18] +_0819F7A4: + ldrh r1, [r4, #0x12] + lsls r1, r1, #8 + ldrh r0, [r4, #0x18] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x44 + bl SetGpuReg + movs r1, #0x12 + ldrsh r0, [r4, r1] + cmp r0, #0x40 + bne _0819F7C4 +_0819F7BE: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_0819F7C4: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0819F6A0 + + thumb_func_start Swap_ShowMonSprite +Swap_ShowMonSprite: @ 0x0819F7CC + push {r4, r5, r6, lr} + sub sp, #0x10 + ldr r0, _0819F7E4 + ldr r1, [r0] + ldrb r0, [r1, #0x14] + cmp r0, #0 + bne _0819F7EC + ldrb r1, [r1, #3] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _0819F7E8 + b _0819F7F4 + .align 2, 0 +_0819F7E4: .4byte 0x03001280 +_0819F7E8: .4byte 0x02024190 +_0819F7EC: + ldrb r1, [r1, #3] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _0819F878 +_0819F7F4: + adds r6, r1, r0 + adds r0, r6, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r6, #0 + movs r1, #0 + movs r2, #0 + bl GetMonData + adds r5, r0, #0 + adds r0, r6, #0 + movs r1, #1 + movs r2, #0 + bl GetMonData + adds r1, r0, #0 + movs r0, #0x58 + str r0, [sp] + movs r0, #0x20 + str r0, [sp, #4] + movs r0, #0xf + str r0, [sp, #8] + ldr r0, _0819F87C + str r0, [sp, #0xc] + adds r0, r4, #0 + adds r2, r5, #0 + movs r3, #1 + bl CreateMonPicSprite_HandleDeoxys + ldr r2, _0819F880 + ldr r1, [r2] + adds r1, #0x2c + movs r3, #0 + strb r0, [r1] + ldr r4, _0819F884 + ldr r0, [r2] + adds r0, #0x2c + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x28 + strb r3, [r0] + ldr r0, [r2] + adds r0, #0x2c + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x29 + strb r3, [r0] + ldr r0, [r2] + adds r0, #0x30 + strb r3, [r0] + add sp, #0x10 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0819F878: .4byte 0x020243E8 +_0819F87C: .4byte 0x0000FFFF +_0819F880: .4byte 0x03001280 +_0819F884: .4byte 0x020205AC + thumb_func_end Swap_ShowMonSprite + diff --git a/asm/battle_gfx_sfx_util.s b/asm/battle_gfx_sfx_util.s new file mode 100644 index 0000000..4c6e4d5 --- /dev/null +++ b/asm/battle_gfx_sfx_util.s @@ -0,0 +1,4070 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start AllocateBattleSpritesData +AllocateBattleSpritesData: @ 0x0805CD34 + push {r4, lr} + ldr r4, _0805CD70 + movs r0, #0x10 + bl AllocZeroed + str r0, [r4] + movs r0, #0x10 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1] + movs r0, #0x30 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1, #4] + movs r0, #0x10 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1, #8] + movs r0, #0x50 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1, #0xc] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0805CD70: .4byte 0x02024174 + thumb_func_end AllocateBattleSpritesData + + thumb_func_start FreeBattleSpritesData +FreeBattleSpritesData: @ 0x0805CD74 + push {r4, r5, lr} + ldr r5, _0805CDB4 + ldr r0, [r5] + cmp r0, #0 + beq _0805CDAE + ldr r0, [r0, #0xc] + bl Free + ldr r0, [r5] + movs r4, #0 + str r4, [r0, #0xc] + ldr r0, [r0, #8] + bl Free + ldr r0, [r5] + str r4, [r0, #8] + ldr r0, [r0, #4] + bl Free + ldr r0, [r5] + str r4, [r0, #4] + ldr r0, [r0] + bl Free + ldr r0, [r5] + str r4, [r0] + bl Free + str r4, [r5] +_0805CDAE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0805CDB4: .4byte 0x02024174 + thumb_func_end FreeBattleSpritesData + + thumb_func_start ChooseMoveAndTargetInBattlePalace +ChooseMoveAndTargetInBattlePalace: @ 0x0805CDB8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + movs r0, #1 + rsbs r0, r0, #0 + mov sb, r0 + ldr r4, _0805CE18 + ldrb r0, [r4] + lsls r2, r0, #9 + ldr r1, _0805CE1C + adds r2, r2, r1 + mov sl, r2 + movs r1, #0 + movs r2, #0xff + bl CheckMoveLimitations + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + ldr r0, _0805CE20 + ldr r0, [r0] + adds r0, #0x92 + ldrb r1, [r0] + ldr r2, _0805CE24 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + asrs r4, r0, #0x1f + movs r0, #2 + ands r4, r0 + adds r6, r4, #0 + adds r5, r4, #2 + b _0805CE2A + .align 2, 0 +_0805CE18: .4byte 0x02023D08 +_0805CE1C: .4byte 0x02022D0C +_0805CE20: .4byte 0x02024140 +_0805CE24: .4byte 0x082FACB4 +_0805CE28: + adds r4, #1 +_0805CE2A: + cmp r4, r5 + bge _0805CE50 + ldr r0, _0805CF8C + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + ldr r1, _0805CF90 + adds r0, r0, r1 + ldr r0, [r0] + bl GetNatureFromPersonality + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r0, r4, r0 + ldr r2, _0805CF94 + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, r7 + ble _0805CE28 +_0805CE50: + subs r7, r4, r6 + cmp r4, r5 + bne _0805CE58 + movs r7, #2 +_0805CE58: + movs r6, #0 + movs r4, #0 + mov r1, sl + ldrh r0, [r1] + cmp r0, #0 + beq _0805CE98 + mov r5, sl +_0805CE66: + ldrh r0, [r5] + bl sub_0805D0C4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r7, r0 + bne _0805CE8A + mov r0, sl + adds r0, #8 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0 + beq _0805CE8A + ldr r0, _0805CF98 + lsls r1, r4, #2 + adds r1, r1, r0 + ldr r0, [r1] + orrs r6, r0 +_0805CE8A: + adds r5, #2 + adds r4, #1 + cmp r4, #3 + bgt _0805CE98 + ldrh r0, [r5] + cmp r0, #0 + bne _0805CE66 +_0805CE98: + cmp r6, #0 + beq _0805CEC8 + ldr r3, _0805CF9C + ldr r1, [r3] + adds r1, #0x92 + ldrb r2, [r1] + movs r0, #0xf + ands r0, r2 + strb r0, [r1] + ldr r1, [r3] + adds r1, #0x92 + lsls r0, r6, #4 + ldrb r2, [r1] + orrs r0, r2 + strb r0, [r1] + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + bl BattleAI_SetupAIData + bl BattleAI_ChooseMoveOrAction + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 +_0805CEC8: + movs r0, #1 + rsbs r0, r0, #0 + cmp sb, r0 + beq _0805CED2 + b _0805D028 +_0805CED2: + mov r2, r8 + cmp r2, #0xf + bne _0805CEDA + b _0805D006 +_0805CEDA: + movs r5, #0 + movs r6, #0 + ldr r7, _0805CF98 + mov r4, sl +_0805CEE2: + ldrh r0, [r4] + bl sub_0805D0C4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805CEFA + ldr r0, [r7] + mov r1, r8 + ands r0, r1 + cmp r0, #0 + bne _0805CEFA + adds r5, #1 +_0805CEFA: + ldrh r0, [r4] + bl sub_0805D0C4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0805CF14 + ldr r0, [r7] + mov r2, r8 + ands r0, r2 + cmp r0, #0 + bne _0805CF14 + adds r5, #0x10 +_0805CF14: + ldrh r0, [r4] + bl sub_0805D0C4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _0805CF32 + ldr r0, [r7] + mov r1, r8 + ands r0, r1 + cmp r0, #0 + bne _0805CF32 + movs r2, #0x80 + lsls r2, r2, #1 + adds r5, r5, r2 +_0805CF32: + adds r7, #4 + adds r4, #2 + ldr r0, _0805CF98 + adds r0, #0xc + cmp r7, r0 + ble _0805CEE2 + movs r1, #0xf + ands r1, r5 + cmp r1, #1 + ble _0805CF48 + adds r6, #1 +_0805CF48: + movs r0, #0xf0 + ands r0, r5 + cmp r0, #0x1f + ble _0805CF52 + adds r6, #1 +_0805CF52: + ldr r2, _0805CFA0 + cmp r0, r2 + ble _0805CF5A + adds r6, #1 +_0805CF5A: + cmp r6, #1 + bgt _0805CF62 + cmp r6, #0 + bne _0805CFA4 +_0805CF62: + ldr r5, _0805CF98 +_0805CF64: + bl Random + lsls r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r0 + lsrs r4, r1, #0x10 + lsls r0, r4, #2 + adds r0, r0, r5 + ldr r0, [r0] + mov r1, r8 + ands r0, r1 + cmp r0, #0 + bne _0805CF82 + mov sb, r4 +_0805CF82: + movs r0, #1 + rsbs r0, r0, #0 + cmp sb, r0 + beq _0805CF64 + b _0805CFF0 + .align 2, 0 +_0805CF8C: .4byte 0x02023D08 +_0805CF90: .4byte 0x02023D70 +_0805CF94: .4byte 0x082ECE18 +_0805CF98: .4byte 0x082FACB4 +_0805CF9C: .4byte 0x02024140 +_0805CFA0: .4byte 0x000001FF +_0805CFA4: + cmp r1, #1 + ble _0805CFAA + movs r6, #0 +_0805CFAA: + cmp r0, #0x1f + ble _0805CFB0 + movs r6, #1 +_0805CFB0: + cmp r0, r2 + ble _0805CFB6 + movs r6, #2 +_0805CFB6: + bl Random + lsls r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r0 + lsrs r4, r1, #0x10 + ldr r1, _0805D01C + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r0, [r0] + mov r2, r8 + ands r0, r2 + cmp r0, #0 + bne _0805CFE8 + lsls r0, r4, #1 + add r0, sl + ldrh r0, [r0] + bl sub_0805D0C4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r6, r0 + bne _0805CFE8 + mov sb, r4 +_0805CFE8: + movs r0, #1 + rsbs r0, r0, #0 + cmp sb, r0 + beq _0805CFB6 +_0805CFF0: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x31 + bls _0805D028 +_0805D006: + ldr r2, _0805D020 + ldr r0, _0805D024 + ldrb r1, [r0] + lsls r1, r1, #4 + adds r1, r1, r2 + ldrb r0, [r1, #2] + movs r2, #0x10 + orrs r0, r2 + strb r0, [r1, #2] + movs r0, #0 + b _0805D0B2 + .align 2, 0 +_0805D01C: .4byte 0x082FACB4 +_0805D020: .4byte 0x02023FE0 +_0805D024: .4byte 0x02023D08 +_0805D028: + mov r1, sb + lsls r0, r1, #1 + mov r2, sl + adds r1, r2, r0 + ldrh r0, [r1] + cmp r0, #0xae + bne _0805D050 + ldrb r0, [r2, #0x12] + movs r5, #0 + cmp r0, #7 + beq _0805D05E + ldrb r1, [r2, #0x13] + movs r0, #7 + eors r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + asrs r5, r0, #0x1f + movs r0, #0x10 + ands r5, r0 + b _0805D05E +_0805D050: + ldr r2, _0805D070 + ldrh r1, [r1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r5, [r0, #6] +_0805D05E: + movs r0, #0x10 + ands r0, r5 + cmp r0, #0 + beq _0805D078 + ldr r0, _0805D074 + ldrb r0, [r0] + lsls r0, r0, #8 + b _0805D0A6 + .align 2, 0 +_0805D070: .4byte 0x082ED220 +_0805D074: .4byte 0x02023D08 +_0805D078: + cmp r5, #0 + bne _0805D08C + bl BattlePalaceGetTargetRetValue + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r2, sb + orrs r2, r0 + mov sb, r2 + b _0805D0AC +_0805D08C: + ldr r0, _0805D0C0 + ldrb r0, [r0] + bl GetBattlerPosition + adds r1, r0, #0 + movs r2, #1 + movs r0, #1 + ands r0, r1 + eors r0, r2 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x10 +_0805D0A6: + mov r1, sb + orrs r1, r0 + mov sb, r1 +_0805D0AC: + mov r2, sb + lsls r0, r2, #0x10 + lsrs r0, r0, #0x10 +_0805D0B2: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0805D0C0: .4byte 0x02023D08 + thumb_func_end ChooseMoveAndTargetInBattlePalace + + thumb_func_start sub_0805D0C4 +sub_0805D0C4: @ 0x0805D0C4 + push {lr} + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r1, _0805D0E8 + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #6] + adds r3, r1, #0 + cmp r0, #0x40 + bls _0805D0DE + b _0805D20A +_0805D0DE: + lsls r0, r0, #2 + ldr r1, _0805D0EC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0805D0E8: .4byte 0x082ED220 +_0805D0EC: .4byte 0x0805D0F0 +_0805D0F0: @ jump table + .4byte _0805D1F4 @ case 0 + .4byte _0805D202 @ case 1 + .4byte _0805D1F4 @ case 2 + .4byte _0805D20A @ case 3 + .4byte _0805D1F4 @ case 4 + .4byte _0805D20A @ case 5 + .4byte _0805D20A @ case 6 + .4byte _0805D20A @ case 7 + .4byte _0805D1F4 @ case 8 + .4byte _0805D20A @ case 9 + .4byte _0805D20A @ case 10 + .4byte _0805D20A @ case 11 + .4byte _0805D20A @ case 12 + .4byte _0805D20A @ case 13 + .4byte _0805D20A @ case 14 + .4byte _0805D20A @ case 15 + .4byte _0805D206 @ case 16 + .4byte _0805D20A @ case 17 + .4byte _0805D20A @ case 18 + .4byte _0805D20A @ case 19 + .4byte _0805D20A @ case 20 + .4byte _0805D20A @ case 21 + .4byte _0805D20A @ case 22 + .4byte _0805D20A @ case 23 + .4byte _0805D20A @ case 24 + .4byte _0805D20A @ case 25 + .4byte _0805D20A @ case 26 + .4byte _0805D20A @ case 27 + .4byte _0805D20A @ case 28 + .4byte _0805D20A @ case 29 + .4byte _0805D20A @ case 30 + .4byte _0805D20A @ case 31 + .4byte _0805D1F4 @ case 32 + .4byte _0805D20A @ case 33 + .4byte _0805D20A @ case 34 + .4byte _0805D20A @ case 35 + .4byte _0805D20A @ case 36 + .4byte _0805D20A @ case 37 + .4byte _0805D20A @ case 38 + .4byte _0805D20A @ case 39 + .4byte _0805D20A @ case 40 + .4byte _0805D20A @ case 41 + .4byte _0805D20A @ case 42 + .4byte _0805D20A @ case 43 + .4byte _0805D20A @ case 44 + .4byte _0805D20A @ case 45 + .4byte _0805D20A @ case 46 + .4byte _0805D20A @ case 47 + .4byte _0805D20A @ case 48 + .4byte _0805D20A @ case 49 + .4byte _0805D20A @ case 50 + .4byte _0805D20A @ case 51 + .4byte _0805D20A @ case 52 + .4byte _0805D20A @ case 53 + .4byte _0805D20A @ case 54 + .4byte _0805D20A @ case 55 + .4byte _0805D20A @ case 56 + .4byte _0805D20A @ case 57 + .4byte _0805D20A @ case 58 + .4byte _0805D20A @ case 59 + .4byte _0805D20A @ case 60 + .4byte _0805D20A @ case 61 + .4byte _0805D20A @ case 62 + .4byte _0805D20A @ case 63 + .4byte _0805D202 @ case 64 +_0805D1F4: + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0, #1] + cmp r0, #0 + bne _0805D20A +_0805D202: + movs r0, #2 + b _0805D20C +_0805D206: + movs r0, #1 + b _0805D20C +_0805D20A: + movs r0, #0 +_0805D20C: + pop {r1} + bx r1 + thumb_func_end sub_0805D0C4 + + thumb_func_start BattlePalaceGetTargetRetValue +BattlePalaceGetTargetRetValue: @ 0x0805D210 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r0, _0805D244 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0805D316 + ldr r0, _0805D248 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805D24C + movs r0, #1 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r0, #3 + b _0805D25A + .align 2, 0 +_0805D244: .4byte 0x02022C90 +_0805D248: .4byte 0x02023D08 +_0805D24C: + movs r0, #0 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r0, #2 +_0805D25A: + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r1, _0805D294 + movs r2, #0x58 + mov r0, r8 + muls r0, r2, r0 + adds r5, r0, r1 + adds r0, r7, #0 + muls r0, r2, r0 + adds r6, r0, r1 + ldrh r0, [r5, #0x28] + ldrh r3, [r6, #0x28] + cmp r0, r3 + bne _0805D29C + bl Random + adds r3, r0, #0 + ldr r0, _0805D298 + ldrb r1, [r0] + movs r2, #1 + movs r0, #1 + ands r0, r1 + eors r0, r2 + movs r1, #2 + ands r1, r3 + adds r0, r0, r1 + b _0805D31E + .align 2, 0 +_0805D294: .4byte 0x02023D28 +_0805D298: .4byte 0x02023D08 +_0805D29C: + ldr r4, _0805D2C8 + ldr r0, _0805D2CC + mov sb, r0 + ldrb r0, [r0] + muls r0, r2, r0 + adds r1, #0x48 + adds r0, r0, r1 + ldr r0, [r0] + bl GetNatureFromPersonality + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r4 + ldrb r4, [r0] + cmp r4, #1 + beq _0805D2E8 + cmp r4, #1 + bgt _0805D2D0 + cmp r4, #0 + beq _0805D2D6 + b _0805D316 + .align 2, 0 +_0805D2C8: .4byte 0x082ECF8C +_0805D2CC: .4byte 0x02023D08 +_0805D2D0: + cmp r4, #2 + beq _0805D2FA + b _0805D316 +_0805D2D6: + ldrh r0, [r5, #0x28] + ldrh r6, [r6, #0x28] + cmp r0, r6 + bls _0805D2E4 + mov r1, r8 + lsls r0, r1, #8 + b _0805D320 +_0805D2E4: + lsls r0, r7, #8 + b _0805D320 +_0805D2E8: + ldrh r0, [r5, #0x28] + ldrh r6, [r6, #0x28] + cmp r0, r6 + bhs _0805D2F6 + mov r3, r8 + lsls r0, r3, #8 + b _0805D320 +_0805D2F6: + lsls r0, r7, #8 + b _0805D320 +_0805D2FA: + bl Random + adds r3, r0, #0 + mov r0, sb + ldrb r1, [r0] + movs r2, #1 + movs r0, #1 + ands r0, r1 + eors r0, r2 + ands r4, r3 + adds r0, r0, r4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x10 + b _0805D320 +_0805D316: + ldr r0, _0805D32C + ldrb r1, [r0] + movs r0, #1 + eors r0, r1 +_0805D31E: + lsls r0, r0, #8 +_0805D320: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0805D32C: .4byte 0x02023D08 + thumb_func_end BattlePalaceGetTargetRetValue + + thumb_func_start sub_0805D330 +sub_0805D330: @ 0x0805D330 + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x30] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _0805D374 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r2 + adds r0, r1, #0 + adds r0, #0x3f + ldrb r3, [r0] + lsls r0, r3, #0x1a + cmp r0, #0 + bge _0805D382 + adds r0, r1, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + blt _0805D382 + adds r2, r1, #0 + adds r2, #0x2c + ldrb r1, [r2] + lsls r0, r1, #0x19 + cmp r0, #0 + bge _0805D378 + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + b _0805D382 + .align 2, 0 +_0805D374: .4byte 0x020205AC +_0805D378: + lsls r0, r3, #0x1b + cmp r0, #0 + bge _0805D382 + ldr r0, _0805D388 + str r0, [r4, #0x1c] +_0805D382: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0805D388: .4byte 0x08007141 + thumb_func_end sub_0805D330 + + thumb_func_start sub_0805D38C +sub_0805D38C: @ 0x0805D38C + push {r4, lr} + adds r4, r0, #0 + lsls r1, r1, #0x18 + adds r3, r4, #0 + adds r3, #0x2c + ldrb r0, [r3] + movs r2, #0x40 + orrs r0, r2 + strb r0, [r3] + ldr r0, _0805D3B0 + str r0, [r4, #0x1c] + cmp r1, #0 + bne _0805D3B4 + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAffineAnim + b _0805D3BC + .align 2, 0 +_0805D3B0: .4byte 0x08007141 +_0805D3B4: + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAffineAnim +_0805D3BC: + adds r0, r4, #0 + bl AnimateSprite + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0805D38C + + thumb_func_start sub_0805D3C8 +sub_0805D3C8: @ 0x0805D3C8 + push {lr} + adds r2, r0, #0 + ldr r0, _0805D3F4 + ldrh r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0805D400 + ldrh r0, [r2, #0x2e] + ldrh r1, [r2, #0x24] + adds r0, r0, r1 + strh r0, [r2, #0x24] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0805D400 + movs r1, #0x26 + ldrsh r0, [r2, r1] + cmp r0, #0 + beq _0805D3FC + ldr r0, _0805D3F8 + b _0805D3FE + .align 2, 0 +_0805D3F4: .4byte 0x020240A0 +_0805D3F8: .4byte 0x0805D409 +_0805D3FC: + ldr r0, _0805D404 +_0805D3FE: + str r0, [r2, #0x1c] +_0805D400: + pop {r0} + bx r0 + .align 2, 0 +_0805D404: .4byte 0x08007141 + thumb_func_end sub_0805D3C8 + + thumb_func_start sub_0805D408 +sub_0805D408: @ 0x0805D408 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0x26] + subs r0, #2 + strh r0, [r1, #0x26] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0805D41C + ldr r0, _0805D420 + str r0, [r1, #0x1c] +_0805D41C: + pop {r0} + bx r0 + .align 2, 0 +_0805D420: .4byte 0x08007141 + thumb_func_end sub_0805D408 + + thumb_func_start InitAndLaunchChosenStatusAnimation +InitAndLaunchChosenStatusAnimation: @ 0x0805D424 + push {r4, r5, r6, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + ldr r6, _0805D458 + ldr r1, [r6] + ldr r5, _0805D45C + ldrb r2, [r5] + ldr r3, [r1, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrb r2, [r1] + movs r3, #0x10 + orrs r2, r3 + strb r2, [r1] + cmp r0, #0 + bne _0805D4A4 + cmp r4, #0x20 + bne _0805D460 + ldrb r0, [r5] + movs r1, #6 + bl LaunchStatusAnimation + b _0805D51E + .align 2, 0 +_0805D458: .4byte 0x02024174 +_0805D45C: .4byte 0x02023D08 +_0805D460: + cmp r4, #8 + beq _0805D46C + movs r0, #0x80 + ands r0, r4 + cmp r0, #0 + beq _0805D476 +_0805D46C: + ldrb r0, [r5] + movs r1, #0 + bl LaunchStatusAnimation + b _0805D51E +_0805D476: + cmp r4, #0x10 + bne _0805D484 + ldrb r0, [r5] + movs r1, #2 + bl LaunchStatusAnimation + b _0805D51E +_0805D484: + movs r0, #7 + ands r0, r4 + cmp r0, #0 + beq _0805D496 + ldrb r0, [r5] + movs r1, #4 + bl LaunchStatusAnimation + b _0805D51E +_0805D496: + cmp r4, #0x40 + bne _0805D506 + ldrb r0, [r5] + movs r1, #5 + bl LaunchStatusAnimation + b _0805D51E +_0805D4A4: + movs r0, #0xf0 + lsls r0, r0, #0xc + ands r0, r4 + cmp r0, #0 + beq _0805D4B8 + ldrb r0, [r5] + movs r1, #3 + bl LaunchStatusAnimation + b _0805D51E +_0805D4B8: + movs r0, #7 + ands r0, r4 + cmp r0, #0 + beq _0805D4CA + ldrb r0, [r5] + movs r1, #1 + bl LaunchStatusAnimation + b _0805D51E +_0805D4CA: + movs r0, #0x80 + lsls r0, r0, #0x15 + ands r0, r4 + cmp r0, #0 + beq _0805D4DE + ldrb r0, [r5] + movs r1, #7 + bl LaunchStatusAnimation + b _0805D51E +_0805D4DE: + movs r0, #0x80 + lsls r0, r0, #0x14 + ands r0, r4 + cmp r0, #0 + beq _0805D4F2 + ldrb r0, [r5] + movs r1, #8 + bl LaunchStatusAnimation + b _0805D51E +_0805D4F2: + movs r0, #0xe0 + lsls r0, r0, #8 + ands r0, r4 + cmp r0, #0 + beq _0805D506 + ldrb r0, [r5] + movs r1, #9 + bl LaunchStatusAnimation + b _0805D51E +_0805D506: + ldr r0, [r6] + ldrb r2, [r5] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] +_0805D51E: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end InitAndLaunchChosenStatusAnimation + + thumb_func_start TryHandleLaunchBattleTableAnimation +TryHandleLaunchBattleTableAnimation: @ 0x0805D524 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r4, [sp, #0x24] + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sl, r1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp] + lsls r3, r3, #0x18 + lsrs r5, r3, #0x18 + lsls r4, r4, #0x10 + lsrs r7, r4, #0x10 + cmp r5, #0 + bne _0805D56C + movs r0, #0x80 + ands r0, r7 + cmp r0, #0 + beq _0805D56C + ldr r0, _0805D568 + adds r0, r6, r0 + movs r2, #0x7f + adds r1, r7, #0 + ands r1, r2 + strb r1, [r0] + movs r0, #1 + b _0805D63A + .align 2, 0 +_0805D568: .4byte 0x02024188 +_0805D56C: + ldr r0, _0805D598 + mov sb, r0 + ldr r0, [r0] + ldr r0, [r0] + lsls r4, r6, #2 + adds r0, r4, r0 + ldrb r1, [r0] + movs r2, #4 + mov r8, r2 + mov r0, r8 + ands r0, r1 + cmp r0, #0 + beq _0805D5E8 + adds r0, r5, #0 + bl ShouldAnimBeDoneRegardlessOfSubsitute + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805D59C + movs r0, #1 + b _0805D63A + .align 2, 0 +_0805D598: .4byte 0x02024174 +_0805D59C: + mov r1, sb + ldr r0, [r1] + ldr r0, [r0] + adds r0, r4, r0 + ldrb r1, [r0] + mov r0, r8 + ands r0, r1 + cmp r0, #0 + beq _0805D5E8 + cmp r5, #2 + bne _0805D5E8 + ldr r1, _0805D5E0 + ldr r0, _0805D5E4 + adds r0, r6, r0 + ldrb r2, [r0] + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + bge _0805D5E8 + adds r0, r6, #0 + movs r1, #1 + bl LoadBattleMonGfxAndAnimate + adds r0, r6, #0 + bl ClearBehindSubstituteBit + movs r0, #1 + b _0805D63A + .align 2, 0 +_0805D5E0: .4byte 0x020205AC +_0805D5E4: .4byte 0x02023E88 +_0805D5E8: + ldr r0, _0805D64C + mov r2, sl + strb r2, [r0] + ldr r0, _0805D650 + mov r1, sp + ldrb r1, [r1] + strb r1, [r0] + ldr r4, _0805D654 + ldr r0, [r4] + ldr r0, [r0, #8] + strh r7, [r0] + ldr r0, _0805D658 + adds r1, r5, #0 + movs r2, #0 + bl LaunchBattleAnimation + ldr r0, _0805D65C + movs r1, #0xa + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0805D660 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r6, [r1, #8] + ldr r0, [r4] + movs r2, #8 + ldrsh r1, [r1, r2] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r2, #0x20 + orrs r1, r2 + strb r1, [r0] + movs r0, #0 +_0805D63A: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0805D64C: .4byte 0x020380D6 +_0805D650: .4byte 0x020380D7 +_0805D654: .4byte 0x02024174 +_0805D658: .4byte 0x082778AC +_0805D65C: .4byte 0x0805D665 +_0805D660: .4byte 0x03005B60 + thumb_func_end TryHandleLaunchBattleTableAnimation + + thumb_func_start nullsub_23 +nullsub_23: @ 0x0805D664 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0805D6AC + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _0805D6B0 + thumb_func_end nullsub_23 + + thumb_func_start Task_ClearBitWhenBattleTableAnimDone +Task_ClearBitWhenBattleTableAnimDone: @ 0x0805D674 + ldrb r0, [r0] + cmp r0, #0 + bne _0805D6A6 + ldr r0, _0805D6B4 + ldr r2, [r0] + ldr r1, _0805D6B8 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #8 + ldrsh r0, [r0, r1] + ldr r2, [r2, #4] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r2, [r1] + movs r0, #0x21 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + adds r0, r4, #0 + bl DestroyTask +_0805D6A6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0805D6AC: .4byte 0x02038098 +_0805D6B0: .4byte 0x0203809D +_0805D6B4: .4byte 0x02024174 +_0805D6B8: .4byte 0x03005B60 + thumb_func_end Task_ClearBitWhenBattleTableAnimDone + + thumb_func_start ShouldAnimBeDoneRegardlessOfSubsitute +ShouldAnimBeDoneRegardlessOfSubsitute: @ 0x0805D6BC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xd + bgt _0805D6D0 + cmp r0, #0xa + bge _0805D6D4 + cmp r0, #2 + beq _0805D6D4 + b _0805D6D8 +_0805D6D0: + cmp r0, #0x11 + bne _0805D6D8 +_0805D6D4: + movs r0, #1 + b _0805D6DA +_0805D6D8: + movs r0, #0 +_0805D6DA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ShouldAnimBeDoneRegardlessOfSubsitute + + thumb_func_start InitAndLaunchSpecialAnimation +InitAndLaunchSpecialAnimation: @ 0x0805D6E0 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r0, _0805D738 + strb r1, [r0] + ldr r0, _0805D73C + strb r2, [r0] + ldr r0, _0805D740 + adds r1, r3, #0 + movs r2, #0 + bl LaunchBattleAnimation + ldr r0, _0805D744 + movs r1, #0xa + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0805D748 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #8] + ldr r0, _0805D74C + ldr r0, [r0] + movs r2, #8 + ldrsh r1, [r1, r2] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r2, #0x40 + orrs r1, r2 + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0805D738: .4byte 0x020380D6 +_0805D73C: .4byte 0x020380D7 +_0805D740: .4byte 0x08277908 +_0805D744: .4byte 0x0805D751 +_0805D748: .4byte 0x03005B60 +_0805D74C: .4byte 0x02024174 + thumb_func_end InitAndLaunchSpecialAnimation + + thumb_func_start nullsub_24 +nullsub_24: @ 0x0805D750 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0805D798 + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _0805D79C + thumb_func_end nullsub_24 + + thumb_func_start Task_ClearBitWhenSpecialAnimDone +Task_ClearBitWhenSpecialAnimDone: @ 0x0805D760 + ldrb r0, [r0] + cmp r0, #0 + bne _0805D792 + ldr r0, _0805D7A0 + ldr r2, [r0] + ldr r1, _0805D7A4 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #8 + ldrsh r0, [r0, r1] + ldr r2, [r2, #4] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r2, [r1] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + adds r0, r4, #0 + bl DestroyTask +_0805D792: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0805D798: .4byte 0x02038098 +_0805D79C: .4byte 0x0203809D +_0805D7A0: .4byte 0x02024174 +_0805D7A4: .4byte 0x03005B60 + thumb_func_end Task_ClearBitWhenSpecialAnimDone + + thumb_func_start IsMoveWithoutAnimation +IsMoveWithoutAnimation: @ 0x0805D7A8 + movs r0, #0 + bx lr + thumb_func_end IsMoveWithoutAnimation + + thumb_func_start mplay_80342A4 +mplay_80342A4: @ 0x0805D7AC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r5, #0 + bl IsSEPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0805D7F4 + ldr r2, _0805D7FC + ldr r0, [r2] + ldr r1, [r0, #4] + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #8] + adds r1, #1 + strb r1, [r0, #8] + ldr r2, [r2] + ldr r0, _0805D800 + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #8] + cmp r0, #0x1d + bls _0805D7F8 + ldr r0, _0805D804 + bl m4aMPlayStop + ldr r0, _0805D808 + bl m4aMPlayStop +_0805D7F4: + cmp r5, #0 + beq _0805D80C +_0805D7F8: + movs r0, #1 + b _0805D81E + .align 2, 0 +_0805D7FC: .4byte 0x02024174 +_0805D800: .4byte 0x02023D08 +_0805D804: .4byte 0x03007510 +_0805D808: .4byte 0x03007550 +_0805D80C: + ldr r0, _0805D824 + ldr r0, [r0] + ldr r1, [r0, #4] + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + strb r5, [r0, #8] + movs r0, #0 +_0805D81E: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0805D824: .4byte 0x02024174 + thumb_func_end mplay_80342A4 + + thumb_func_start BattleLoadOpponentMonSpriteGfx +BattleLoadOpponentMonSpriteGfx: @ 0x0805D828 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + movs r1, #0 + bl GetMonData + str r0, [sp] + ldr r0, _0805D868 + ldr r0, [r0] + ldr r0, [r0] + mov r2, r8 + lsls r1, r2, #2 + adds r2, r1, r0 + ldrh r0, [r2, #2] + cmp r0, #0 + bne _0805D86C + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r6, [sp] + b _0805D874 + .align 2, 0 +_0805D868: .4byte 0x02024174 +_0805D86C: + ldrh r5, [r2, #2] + ldr r0, _0805D8C8 + adds r0, r1, r0 + ldr r6, [r0] +_0805D874: + adds r0, r4, #0 + movs r1, #1 + bl GetMonData + mov sl, r0 + mov r0, r8 + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsls r2, r5, #3 + ldr r1, _0805D8CC + adds r2, r2, r1 + ldr r1, _0805D8D0 + ldr r1, [r1] + lsrs r0, r0, #0x16 + adds r1, #4 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + adds r2, r5, #0 + adds r3, r6, #0 + bl HandleLoadSpecialPokePic_DontHandleDeoxys + mov r3, r8 + lsls r2, r3, #4 + movs r0, #0x80 + lsls r0, r0, #1 + adds r7, r2, r0 + ldr r0, _0805D8D4 + ldr r0, [r0] + ldr r0, [r0] + lsls r1, r3, #2 + adds r0, r1, r0 + ldrh r0, [r0, #2] + str r1, [sp, #4] + mov sb, r2 + cmp r0, #0 + bne _0805D8D8 + adds r0, r4, #0 + bl GetMonFrontSpritePal + b _0805D8E2 + .align 2, 0 +_0805D8C8: .4byte 0x02024160 +_0805D8CC: .4byte 0x082DDA1C +_0805D8D0: .4byte 0x02024178 +_0805D8D4: .4byte 0x02024174 +_0805D8D8: + adds r0, r5, #0 + mov r1, sl + ldr r2, [sp] + bl GetMonSpritePalFromSpeciesAndPersonality +_0805D8E2: + adds r6, r0, #0 + ldr r4, _0805D974 + adds r0, r6, #0 + adds r1, r4, #0 + bl LZDecompressVram + adds r0, r4, #0 + adds r1, r7, #0 + movs r2, #0x20 + bl LoadPalette + mov r1, sb + adds r1, #0x80 + adds r0, r4, #0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _0805D978 + cmp r5, r0 + bne _0805D936 + movs r7, #0x80 + lsls r7, r7, #1 + add r7, sb + ldr r5, _0805D97C + ldr r1, [r5] + movs r4, #0x80 + lsls r4, r4, #1 + adds r1, r1, r4 + adds r0, r6, #0 + bl LZDecompressVram + ldr r0, _0805D980 + add r0, r8 + ldrb r1, [r0] + lsls r1, r1, #5 + adds r1, r1, r4 + ldr r0, [r5] + adds r0, r0, r1 + adds r1, r7, #0 + movs r2, #0x20 + bl LoadPalette +_0805D936: + ldr r0, _0805D984 + ldr r0, [r0] + ldr r0, [r0] + ldr r1, [sp, #4] + adds r0, r1, r0 + ldrh r0, [r0, #2] + cmp r0, #0 + beq _0805D962 + ldr r3, _0805D988 + adds r0, r7, #0 + movs r1, #0x10 + movs r2, #6 + bl BlendPalette + lsls r1, r7, #1 + ldr r0, _0805D98C + adds r0, r1, r0 + ldr r2, _0805D990 + adds r1, r1, r2 + ldr r2, _0805D994 + bl CpuSet +_0805D962: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805D974: .4byte 0x0201C000 +_0805D978: .4byte 0x00000181 +_0805D97C: .4byte 0x02024140 +_0805D980: .4byte 0x02024188 +_0805D984: .4byte 0x02024174 +_0805D988: .4byte 0x00007FFF +_0805D98C: .4byte 0x020377B4 +_0805D990: .4byte 0x020373B4 +_0805D994: .4byte 0x04000008 + thumb_func_end BattleLoadOpponentMonSpriteGfx + + thumb_func_start BattleLoadPlayerMonSpriteGfx +BattleLoadPlayerMonSpriteGfx: @ 0x0805D998 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r6, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + movs r1, #0 + bl GetMonData + str r0, [sp] + ldr r0, _0805D9D8 + ldr r0, [r0] + ldr r0, [r0] + mov r2, r8 + lsls r1, r2, #2 + adds r2, r1, r0 + ldrh r0, [r2, #2] + cmp r0, #0 + bne _0805D9DC + adds r0, r6, #0 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r4, [sp] + b _0805D9E4 + .align 2, 0 +_0805D9D8: .4byte 0x02024174 +_0805D9DC: + ldrh r5, [r2, #2] + ldr r0, _0805DA38 + adds r0, r1, r0 + ldr r4, [r0] +_0805D9E4: + adds r0, r6, #0 + movs r1, #1 + bl GetMonData + str r0, [sp, #4] + mov r0, r8 + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r0, #1 + mov r1, r8 + bl sub_08068438 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, r8 + lsls r1, r1, #2 + mov sl, r1 + cmp r0, #1 + beq _0805DA1C + ldr r0, _0805DA3C + ldr r0, [r0] + ldr r0, [r0] + add r0, sl + ldrh r0, [r0, #2] + cmp r0, #0 + beq _0805DA48 +_0805DA1C: + lsls r0, r5, #3 + ldr r1, _0805DA40 + adds r0, r0, r1 + ldr r1, _0805DA44 + ldr r1, [r1] + lsls r2, r7, #2 + adds r1, #4 + adds r1, r1, r2 + ldr r1, [r1] + adds r2, r5, #0 + adds r3, r4, #0 + bl HandleLoadSpecialPokePic_DontHandleDeoxys + b _0805DA62 + .align 2, 0 +_0805DA38: .4byte 0x02024160 +_0805DA3C: .4byte 0x02024174 +_0805DA40: .4byte 0x082D6148 +_0805DA44: .4byte 0x02024178 +_0805DA48: + lsls r0, r5, #3 + ldr r1, _0805DA84 + adds r0, r0, r1 + ldr r1, _0805DA88 + ldr r1, [r1] + lsls r2, r7, #2 + adds r1, #4 + adds r1, r1, r2 + ldr r1, [r1] + adds r2, r5, #0 + adds r3, r4, #0 + bl HandleLoadSpecialPokePic +_0805DA62: + mov r2, r8 + lsls r1, r2, #4 + movs r0, #0x80 + lsls r0, r0, #1 + adds r7, r1, r0 + ldr r0, _0805DA8C + ldr r0, [r0] + ldr r0, [r0] + add r0, sl + ldrh r0, [r0, #2] + mov sb, r1 + cmp r0, #0 + bne _0805DA90 + adds r0, r6, #0 + bl GetMonFrontSpritePal + b _0805DA9A + .align 2, 0 +_0805DA84: .4byte 0x082D6148 +_0805DA88: .4byte 0x02024178 +_0805DA8C: .4byte 0x02024174 +_0805DA90: + adds r0, r5, #0 + ldr r1, [sp, #4] + ldr r2, [sp] + bl GetMonSpritePalFromSpeciesAndPersonality +_0805DA9A: + adds r6, r0, #0 + ldr r4, _0805DB28 + adds r0, r6, #0 + adds r1, r4, #0 + bl LZDecompressVram + adds r0, r4, #0 + adds r1, r7, #0 + movs r2, #0x20 + bl LoadPalette + mov r1, sb + adds r1, #0x80 + adds r0, r4, #0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _0805DB2C + cmp r5, r0 + bne _0805DAEE + movs r7, #0x80 + lsls r7, r7, #1 + add r7, sb + ldr r5, _0805DB30 + ldr r1, [r5] + movs r4, #0x80 + lsls r4, r4, #1 + adds r1, r1, r4 + adds r0, r6, #0 + bl LZDecompressVram + ldr r0, _0805DB34 + add r0, r8 + ldrb r1, [r0] + lsls r1, r1, #5 + adds r1, r1, r4 + ldr r0, [r5] + adds r0, r0, r1 + adds r1, r7, #0 + movs r2, #0x20 + bl LoadPalette +_0805DAEE: + ldr r0, _0805DB38 + ldr r0, [r0] + ldr r0, [r0] + add r0, sl + ldrh r0, [r0, #2] + cmp r0, #0 + beq _0805DB18 + ldr r3, _0805DB3C + adds r0, r7, #0 + movs r1, #0x10 + movs r2, #6 + bl BlendPalette + lsls r1, r7, #1 + ldr r0, _0805DB40 + adds r0, r1, r0 + ldr r2, _0805DB44 + adds r1, r1, r2 + ldr r2, _0805DB48 + bl CpuSet +_0805DB18: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805DB28: .4byte 0x0201C000 +_0805DB2C: .4byte 0x00000181 +_0805DB30: .4byte 0x02024140 +_0805DB34: .4byte 0x02024188 +_0805DB38: .4byte 0x02024174 +_0805DB3C: .4byte 0x00007FFF +_0805DB40: .4byte 0x020377B4 +_0805DB44: .4byte 0x020373B4 +_0805DB48: .4byte 0x04000008 + thumb_func_end BattleLoadPlayerMonSpriteGfx + + thumb_func_start nullsub_25 +nullsub_25: @ 0x0805DB4C + bx lr + .align 2, 0 + thumb_func_end nullsub_25 + + thumb_func_start sub_0805DB50 +sub_0805DB50: @ 0x0805DB50 + bx lr + .align 2, 0 + thumb_func_end sub_0805DB50 + + thumb_func_start DecompressTrainerFrontPic +DecompressTrainerFrontPic: @ 0x0805DB54 + push {r4, lr} + adds r4, r0, #0 + adds r0, r1, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsls r4, r4, #3 + ldr r2, _0805DB94 + adds r2, r4, r2 + ldr r1, _0805DB98 + ldr r1, [r1] + lsrs r0, r0, #0x16 + adds r1, #4 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + movs r2, #0 + bl DecompressPicFromTable_2 + ldr r0, _0805DB9C + adds r4, r4, r0 + adds r0, r4, #0 + bl LoadCompressedSpritePalette + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0805DB94: .4byte 0x082D8EE4 +_0805DB98: .4byte 0x02024178 +_0805DB9C: .4byte 0x082D91CC + thumb_func_end DecompressTrainerFrontPic + + thumb_func_start DecompressTrainerBackPic +DecompressTrainerBackPic: @ 0x0805DBA0 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsls r5, r5, #3 + ldr r2, _0805DBF0 + adds r2, r5, r2 + ldr r1, _0805DBF4 + ldr r1, [r1] + lsrs r0, r0, #0x16 + adds r1, #4 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + movs r2, #0 + bl DecompressPicFromTable_2 + ldr r0, _0805DBF8 + adds r5, r5, r0 + ldr r0, [r5] + lsls r4, r4, #0x14 + movs r1, #0x80 + lsls r1, r1, #0x11 + adds r4, r4, r1 + lsrs r4, r4, #0x10 + adds r1, r4, #0 + movs r2, #0x20 + bl LoadCompressedPalette + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0805DBF0: .4byte 0x082D95DC +_0805DBF4: .4byte 0x02024178 +_0805DBF8: .4byte 0x082D961C + thumb_func_end DecompressTrainerBackPic + + thumb_func_start sub_0805DBFC +sub_0805DBFC: @ 0x0805DBFC + bx lr + .align 2, 0 + thumb_func_end sub_0805DBFC + + thumb_func_start FreeTrainerFrontPicPalette +FreeTrainerFrontPicPalette: @ 0x0805DC00 + push {lr} + lsls r0, r0, #0x10 + ldr r1, _0805DC14 + lsrs r0, r0, #0xd + adds r0, r0, r1 + ldrh r0, [r0, #4] + bl FreeSpritePaletteByTag + pop {r0} + bx r0 + .align 2, 0 +_0805DC14: .4byte 0x082D91CC + thumb_func_end FreeTrainerFrontPicPalette + + thumb_func_start BattleLoadAllHealthBoxesGfxAtOnce +BattleLoadAllHealthBoxesGfxAtOnce: @ 0x0805DC18 + push {r4, r5, r6, r7, lr} + ldr r4, _0805DC44 + adds r0, r4, #0 + bl LoadSpritePalette + adds r4, #8 + adds r0, r4, #0 + bl LoadSpritePalette + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805DC50 + ldr r0, _0805DC48 + bl LoadCompressedSpriteSheet + ldr r0, _0805DC4C + bl LoadCompressedSpriteSheet + movs r5, #2 + b _0805DC72 + .align 2, 0 +_0805DC44: .4byte 0x082FCB20 +_0805DC48: .4byte 0x082FCAC8 +_0805DC4C: .4byte 0x082FCAD0 +_0805DC50: + ldr r4, _0805DC98 + adds r0, r4, #0 + bl LoadCompressedSpriteSheet + adds r4, #8 + adds r0, r4, #0 + bl LoadCompressedSpriteSheet + ldr r4, _0805DC9C + adds r0, r4, #0 + bl LoadCompressedSpriteSheet + adds r4, #8 + adds r0, r4, #0 + bl LoadCompressedSpriteSheet + movs r5, #4 +_0805DC72: + movs r4, #0 + cmp r4, r5 + bhs _0805DC92 + ldr r7, _0805DCA0 + ldr r6, _0805DCA4 +_0805DC7C: + adds r0, r4, r7 + ldrb r0, [r0] + lsls r0, r0, #3 + adds r0, r0, r6 + bl LoadCompressedSpriteSheet + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r5 + blo _0805DC7C +_0805DC92: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805DC98: .4byte 0x082FCAD8 +_0805DC9C: .4byte 0x082FCAE8 +_0805DCA0: .4byte 0x02023D1A +_0805DCA4: .4byte 0x082FCB00 + thumb_func_end BattleLoadAllHealthBoxesGfxAtOnce + + thumb_func_start BattleLoadAllHealthBoxesGfx +BattleLoadAllHealthBoxesGfx: @ 0x0805DCA8 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r5, r4, #0 + movs r6, #0 + cmp r4, #0 + bne _0805DCB8 + b _0805DDCA +_0805DCB8: + cmp r4, #1 + bne _0805DCD4 + ldr r4, _0805DCD0 + adds r0, r4, #0 + bl LoadSpritePalette + adds r4, #8 + adds r0, r4, #0 + bl LoadSpritePalette + b _0805DDCA + .align 2, 0 +_0805DCD0: .4byte 0x082FCB20 +_0805DCD4: + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805DD3C + cmp r4, #2 + bne _0805DD0C + ldr r0, _0805DCF8 + ldr r0, [r0] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0805DD00 + ldr r0, _0805DCFC + bl LoadCompressedSpriteSheet + b _0805DDCA + .align 2, 0 +_0805DCF8: .4byte 0x02022C90 +_0805DCFC: .4byte 0x082FCAF8 +_0805DD00: + ldr r0, _0805DD08 + bl LoadCompressedSpriteSheet + b _0805DDCA + .align 2, 0 +_0805DD08: .4byte 0x082FCAC8 +_0805DD0C: + cmp r4, #3 + bne _0805DD1C + ldr r0, _0805DD18 + bl LoadCompressedSpriteSheet + b _0805DDCA + .align 2, 0 +_0805DD18: .4byte 0x082FCAD0 +_0805DD1C: + cmp r4, #4 + bne _0805DD2C + ldr r0, _0805DD28 + ldrb r0, [r0] + b _0805DDB4 + .align 2, 0 +_0805DD28: .4byte 0x02023D1A +_0805DD2C: + cmp r4, #5 + bne _0805DDC8 + ldr r0, _0805DD38 + ldrb r0, [r0, #1] + b _0805DDB4 + .align 2, 0 +_0805DD38: .4byte 0x02023D1A +_0805DD3C: + cmp r4, #2 + bne _0805DD4C + ldr r0, _0805DD48 + bl LoadCompressedSpriteSheet + b _0805DDCA + .align 2, 0 +_0805DD48: .4byte 0x082FCAD8 +_0805DD4C: + cmp r4, #3 + bne _0805DD5C + ldr r0, _0805DD58 + bl LoadCompressedSpriteSheet + b _0805DDCA + .align 2, 0 +_0805DD58: .4byte 0x082FCAE0 +_0805DD5C: + cmp r4, #4 + bne _0805DD6C + ldr r0, _0805DD68 + bl LoadCompressedSpriteSheet + b _0805DDCA + .align 2, 0 +_0805DD68: .4byte 0x082FCAE8 +_0805DD6C: + cmp r4, #5 + bne _0805DD7C + ldr r0, _0805DD78 + bl LoadCompressedSpriteSheet + b _0805DDCA + .align 2, 0 +_0805DD78: .4byte 0x082FCAF0 +_0805DD7C: + cmp r4, #6 + bne _0805DD8C + ldr r0, _0805DD88 + ldrb r0, [r0] + b _0805DDB4 + .align 2, 0 +_0805DD88: .4byte 0x02023D1A +_0805DD8C: + cmp r4, #7 + bne _0805DD9C + ldr r0, _0805DD98 + ldrb r0, [r0, #1] + b _0805DDB4 + .align 2, 0 +_0805DD98: .4byte 0x02023D1A +_0805DD9C: + cmp r4, #8 + bne _0805DDAC + ldr r0, _0805DDA8 + ldrb r0, [r0, #2] + b _0805DDB4 + .align 2, 0 +_0805DDA8: .4byte 0x02023D1A +_0805DDAC: + cmp r5, #9 + bne _0805DDC8 + ldr r0, _0805DDC0 + ldrb r0, [r0, #3] +_0805DDB4: + lsls r0, r0, #3 + ldr r1, _0805DDC4 + adds r0, r0, r1 + bl LoadCompressedSpriteSheet + b _0805DDCA + .align 2, 0 +_0805DDC0: .4byte 0x02023D1A +_0805DDC4: .4byte 0x082FCB00 +_0805DDC8: + movs r6, #1 +_0805DDCA: + adds r0, r6, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end BattleLoadAllHealthBoxesGfx + + thumb_func_start LoadBattleBarGfx +LoadBattleBarGfx: @ 0x0805DDD4 + push {lr} + ldr r0, _0805DDEC + ldr r1, _0805DDF0 + ldr r1, [r1] + movs r2, #0xba + lsls r2, r2, #1 + adds r1, r1, r2 + ldr r1, [r1] + bl LZDecompressVram + pop {r0} + bx r0 + .align 2, 0 +_0805DDEC: .4byte 0x08C093F8 +_0805DDF0: .4byte 0x02024178 + thumb_func_end LoadBattleBarGfx + + thumb_func_start BattleInitAllSprites +BattleInitAllSprites: @ 0x0805DDF4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + movs r6, #0 + ldrb r0, [r5] + cmp r0, #6 + bls _0805DE04 + b _0805DF62 +_0805DE04: + lsls r0, r0, #2 + ldr r1, _0805DE10 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0805DE10: .4byte 0x0805DE14 +_0805DE14: @ jump table + .4byte _0805DE30 @ case 0 + .4byte _0805DE36 @ case 1 + .4byte _0805DF40 @ case 2 + .4byte _0805DE4C @ case 3 + .4byte _0805DE7C @ case 4 + .4byte _0805DEB8 @ case 5 + .4byte _0805DF58 @ case 6 +_0805DE30: + bl ClearSpritesBattlerHealthboxAnimData + b _0805DF40 +_0805DE36: + ldrb r0, [r4] + bl BattleLoadAllHealthBoxesGfx + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0805DE44 + b _0805DF3C +_0805DE44: + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + b _0805DF62 +_0805DE4C: + ldr r0, _0805DE64 + ldr r0, [r0] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0805DE68 + ldrb r0, [r4] + cmp r0, #0 + bne _0805DE68 + bl CreateSafariPlayerHealthboxSprites + b _0805DE6E + .align 2, 0 +_0805DE64: .4byte 0x02022C90 +_0805DE68: + ldrb r0, [r4] + bl CreateBattlerHealthboxSprites +_0805DE6E: + ldr r2, _0805DE78 + ldrb r1, [r4] + adds r1, r1, r2 + strb r0, [r1] + b _0805DF2A + .align 2, 0 +_0805DE78: .4byte 0x03005AD0 +_0805DE7C: + ldrb r0, [r4] + bl InitBattlerHealthboxCoords + ldr r0, _0805DE9C + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + cmp r0, #1 + bhi _0805DEA4 + ldr r0, _0805DEA0 + adds r0, r1, r0 + ldrb r0, [r0] + movs r1, #0 + bl DummyBattleInterfaceFunc + b _0805DF2A + .align 2, 0 +_0805DE9C: .4byte 0x02023D1A +_0805DEA0: .4byte 0x03005AD0 +_0805DEA4: + ldr r0, _0805DEB4 + adds r0, r1, r0 + ldrb r0, [r0] + movs r1, #1 + bl DummyBattleInterfaceFunc + b _0805DF2A + .align 2, 0 +_0805DEB4: .4byte 0x03005AD0 +_0805DEB8: + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805DF00 + ldr r0, _0805DEF0 + ldr r0, [r0] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0805DF1E + ldr r0, _0805DEF4 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + ldr r2, _0805DEF8 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _0805DEFC + adds r1, r1, r2 + movs r2, #0 + bl UpdateHealthboxAttribute + b _0805DF1E + .align 2, 0 +_0805DEF0: .4byte 0x02022C90 +_0805DEF4: .4byte 0x03005AD0 +_0805DEF8: .4byte 0x02023D12 +_0805DEFC: .4byte 0x02024190 +_0805DF00: + ldr r0, _0805DF48 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + ldr r2, _0805DF4C + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _0805DF50 + adds r1, r1, r2 + movs r2, #0 + bl UpdateHealthboxAttribute +_0805DF1E: + ldr r1, _0805DF48 + ldrb r0, [r4] + adds r0, r0, r1 + ldrb r0, [r0] + bl SetHealthboxSpriteInvisible +_0805DF2A: + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + ldr r1, _0805DF54 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + bne _0805DF62 +_0805DF3C: + movs r0, #0 + strb r0, [r4] +_0805DF40: + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + b _0805DF62 + .align 2, 0 +_0805DF48: .4byte 0x03005AD0 +_0805DF4C: .4byte 0x02023D12 +_0805DF50: .4byte 0x020243E8 +_0805DF54: .4byte 0x02023D10 +_0805DF58: + bl LoadAndCreateEnemyShadowSprites + bl sub_081B8908 + movs r6, #1 +_0805DF62: + adds r0, r6, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end BattleInitAllSprites + + thumb_func_start ClearSpritesHealthboxAnimData +ClearSpritesHealthboxAnimData: @ 0x0805DF6C + push {r4, lr} + ldr r4, _0805DF90 + ldr r0, [r4] + ldr r0, [r0, #4] + movs r1, #0 + movs r2, #0x30 + bl memset + ldr r0, [r4] + ldr r0, [r0, #8] + movs r1, #0 + movs r2, #0x10 + bl memset + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0805DF90: .4byte 0x02024174 + thumb_func_end ClearSpritesHealthboxAnimData + + thumb_func_start ClearSpritesBattlerHealthboxAnimData +ClearSpritesBattlerHealthboxAnimData: @ 0x0805DF94 + push {lr} + bl ClearSpritesHealthboxAnimData + ldr r0, _0805DFAC + ldr r0, [r0] + ldr r0, [r0] + movs r1, #0 + movs r2, #0x10 + bl memset + pop {r0} + bx r0 + .align 2, 0 +_0805DFAC: .4byte 0x02024174 + thumb_func_end ClearSpritesBattlerHealthboxAnimData + + thumb_func_start CopyAllBattleSpritesInvisibilities +CopyAllBattleSpritesInvisibilities: @ 0x0805DFB0 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + movs r4, #0 + ldr r5, _0805E014 + ldrb r0, [r5] + cmp r4, r0 + bge _0805E006 + ldr r0, _0805E018 + mov sb, r0 + movs r0, #1 + mov ip, r0 + movs r0, #2 + rsbs r0, r0, #0 + mov r8, r0 + ldr r7, _0805E01C + ldr r6, _0805E020 +_0805DFD4: + ldr r0, [r7] + ldr r0, [r0] + lsls r3, r4, #2 + adds r3, r3, r0 + adds r0, r4, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sb + adds r0, #0x3e + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1f + mov r0, ip + ands r1, r0 + ldrb r2, [r3] + mov r0, r8 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + adds r4, #1 + ldrb r0, [r5] + cmp r4, r0 + blt _0805DFD4 +_0805E006: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805E014: .4byte 0x02023D10 +_0805E018: .4byte 0x020205AC +_0805E01C: .4byte 0x02024174 +_0805E020: .4byte 0x02023E88 + thumb_func_end CopyAllBattleSpritesInvisibilities + + thumb_func_start CopyBattleSpriteInvisibility +CopyBattleSpriteInvisibility: @ 0x0805E024 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0805E058 + ldr r1, [r1] + ldr r1, [r1] + lsls r3, r0, #2 + adds r3, r3, r1 + ldr r2, _0805E05C + ldr r1, _0805E060 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1f + ldrb r2, [r3] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bx lr + .align 2, 0 +_0805E058: .4byte 0x02024174 +_0805E05C: .4byte 0x020205AC +_0805E060: .4byte 0x02023E88 + thumb_func_end CopyBattleSpriteInvisibility + + thumb_func_start HandleSpeciesGfxDataChange +HandleSpeciesGfxDataChange: @ 0x0805E064 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp] + lsls r2, r2, #0x18 + cmp r2, #0 + beq _0805E138 + ldr r0, _0805E114 + adds r5, r7, r0 + ldrb r1, [r5] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0805E118 + mov r8, r1 + add r0, r8 + ldr r4, _0805E11C + ldr r1, [r4] + ldr r1, [r1, #8] + ldrb r1, [r1] + bl StartSpriteAnim + lsls r0, r7, #0x14 + movs r2, #0x80 + lsls r2, r2, #0x11 + adds r0, r0, r2 + lsrs r6, r0, #0x10 + ldr r2, _0805E120 + ldr r0, [r4] + ldr r0, [r0, #8] + ldrh r1, [r0] + lsls r1, r1, #5 + movs r3, #0x80 + lsls r3, r3, #1 + adds r1, r1, r3 + ldr r0, [r2] + adds r0, r0, r1 + adds r1, r6, #0 + movs r2, #0x20 + bl LoadPalette + ldr r1, _0805E124 + adds r1, r7, r1 + ldr r0, [r4] + ldr r0, [r0, #8] + ldrh r0, [r0] + strb r0, [r1] + ldr r0, [r4] + ldr r1, [r0] + lsls r0, r7, #2 + adds r0, r0, r1 + ldrh r0, [r0, #2] + cmp r0, #0 + beq _0805E0FA + ldr r3, _0805E128 + adds r0, r6, #0 + movs r1, #0x10 + movs r2, #6 + bl BlendPalette + lsls r1, r6, #1 + ldr r0, _0805E12C + adds r0, r1, r0 + ldr r2, _0805E130 + adds r1, r1, r2 + ldr r2, _0805E134 + bl CpuSet +_0805E0FA: + adds r0, r7, #0 + bl GetBattlerSpriteDefault_Y + ldrb r2, [r5] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + add r1, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r1, #0x22] + b _0805E396 + .align 2, 0 +_0805E114: .4byte 0x02023E88 +_0805E118: .4byte 0x020205AC +_0805E11C: .4byte 0x02024174 +_0805E120: .4byte 0x02024140 +_0805E124: .4byte 0x02024188 +_0805E128: .4byte 0x00007FFF +_0805E12C: .4byte 0x020377B4 +_0805E130: .4byte 0x020373B4 +_0805E134: .4byte 0x04000008 +_0805E138: + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0805E174 + movs r0, #0 + mov sl, r0 + ldr r0, _0805E168 + ldr r0, [r0] + ldr r2, [r0, #0x18] + ldrh r1, [r2, #2] + mov r8, r1 + ldr r3, [r2, #8] + mov sb, r3 + ldr r4, [r2, #0xc] + lsls r0, r1, #3 + ldr r1, _0805E16C + adds r0, r0, r1 + ldr r1, _0805E170 + ldr r1, [r1] + ldr r1, [r1, #4] + ldr r3, [r2, #0x10] + b _0805E216 + .align 2, 0 +_0805E168: .4byte 0x02039BD4 +_0805E16C: .4byte 0x082D6148 +_0805E170: .4byte 0x02024178 +_0805E174: + adds r0, r7, #0 + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + ldr r0, [sp] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0805E1A8 + ldr r1, _0805E1A0 + ldr r2, [sp] + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0805E1A4 + b _0805E1B8 + .align 2, 0 +_0805E1A0: .4byte 0x02023D12 +_0805E1A4: .4byte 0x020243E8 +_0805E1A8: + ldr r1, _0805E220 + ldr r3, [sp] + lsls r0, r3, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0805E224 +_0805E1B8: + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + adds r0, r7, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805E234 + ldr r0, _0805E220 + lsls r4, r7, #1 + adds r4, r4, r0 + ldrh r0, [r4] + movs r6, #0x64 + muls r0, r6, r0 + ldr r5, _0805E224 + adds r0, r0, r5 + movs r1, #0 + bl GetMonData + mov sb, r0 + ldrh r0, [r4] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #1 + bl GetMonData + adds r4, r0, #0 + mov r1, r8 + lsls r0, r1, #3 + ldr r1, _0805E228 + adds r0, r0, r1 + ldr r1, _0805E22C + ldr r1, [r1] + mov r3, sl + lsls r2, r3, #2 + adds r1, #4 + adds r1, r1, r2 + ldr r1, [r1] + ldr r3, _0805E230 + lsls r2, r7, #2 + adds r2, r2, r3 + ldr r3, [r2] +_0805E216: + mov r2, r8 + bl HandleLoadSpecialPokePic_DontHandleDeoxys + b _0805E27E + .align 2, 0 +_0805E220: .4byte 0x02023D12 +_0805E224: .4byte 0x02024190 +_0805E228: .4byte 0x082D6148 +_0805E22C: .4byte 0x02024178 +_0805E230: .4byte 0x02024160 +_0805E234: + ldr r0, _0805E3A8 + lsls r4, r7, #1 + adds r4, r4, r0 + ldrh r0, [r4] + movs r6, #0x64 + muls r0, r6, r0 + ldr r5, _0805E3AC + adds r0, r0, r5 + movs r1, #0 + bl GetMonData + mov sb, r0 + ldrh r0, [r4] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #1 + bl GetMonData + adds r4, r0, #0 + mov r1, r8 + lsls r0, r1, #3 + ldr r1, _0805E3B0 + adds r0, r0, r1 + ldr r1, _0805E3B4 + ldr r1, [r1] + mov r3, sl + lsls r2, r3, #2 + adds r1, #4 + adds r1, r1, r2 + ldr r1, [r1] + ldr r3, _0805E3B8 + lsls r2, r7, #2 + adds r2, r2, r3 + ldr r3, [r2] + mov r2, r8 + bl HandleLoadSpecialPokePic_DontHandleDeoxys +_0805E27E: + ldr r0, _0805E3B4 + ldr r0, [r0] + mov r2, sl + lsls r1, r2, #2 + adds r0, #4 + adds r0, r0, r1 + ldr r2, [r0] + ldr r0, _0805E3BC + adds r0, r0, r7 + mov sl, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r3, _0805E3C0 + adds r0, r0, r3 + ldrh r0, [r0, #4] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x11 + ldr r1, _0805E3C4 + adds r0, r0, r1 + ldr r1, _0805E3C8 + str r2, [r1] + str r0, [r1, #4] + ldr r0, _0805E3CC + str r0, [r1, #8] + ldr r0, [r1, #8] + lsls r0, r7, #0x14 + movs r1, #0x80 + lsls r1, r1, #0x11 + adds r0, r0, r1 + lsrs r6, r0, #0x10 + mov r0, r8 + adds r1, r4, #0 + mov r2, sb + bl GetMonSpritePalFromSpeciesAndPersonality + mov sb, r0 + ldr r4, _0805E3D0 + adds r1, r4, #0 + bl LZDecompressVram + adds r0, r4, #0 + adds r1, r6, #0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _0805E3D4 + cmp r8, r0 + bne _0805E326 + mov r2, sl + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0805E3C0 + adds r1, #8 + adds r0, r0, r1 + ldr r1, _0805E3D8 + mov r3, r8 + lsls r2, r3, #2 + adds r1, r1, r2 + ldr r1, [r1] + str r1, [r0] + ldr r5, _0805E3DC + ldr r1, [r5] + movs r4, #0x80 + lsls r4, r4, #1 + adds r1, r1, r4 + mov r0, sb + bl LZDecompressVram + ldr r0, _0805E3E0 + ldr r1, [sp] + adds r0, r1, r0 + ldrb r1, [r0] + lsls r1, r1, #5 + adds r1, r1, r4 + ldr r0, [r5] + adds r0, r0, r1 + adds r1, r6, #0 + movs r2, #0x20 + bl LoadPalette +_0805E326: + ldr r3, _0805E3E4 + adds r0, r6, #0 + movs r1, #0x10 + movs r2, #6 + bl BlendPalette + lsls r1, r6, #1 + ldr r0, _0805E3E8 + adds r0, r1, r0 + ldr r2, _0805E3EC + adds r1, r1, r2 + ldr r2, _0805E3F0 + bl CpuSet + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805E366 + ldr r0, _0805E3F4 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r7, #2 + adds r0, r0, r1 + mov r2, r8 + strh r2, [r0, #2] + ldr r0, _0805E3E0 + adds r1, r7, r0 + ldr r3, [sp] + adds r0, r3, r0 + ldrb r0, [r0] + strb r0, [r1] +_0805E366: + adds r0, r7, #0 + bl GetBattlerSpriteDefault_Y + mov r1, sl + ldrb r2, [r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + ldr r2, _0805E3C0 + adds r1, r1, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r1, #0x22] + mov r3, sl + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, _0805E3E0 + adds r1, r7, r1 + ldrb r1, [r1] + bl StartSpriteAnim +_0805E396: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805E3A8: .4byte 0x02023D12 +_0805E3AC: .4byte 0x020243E8 +_0805E3B0: .4byte 0x082DDA1C +_0805E3B4: .4byte 0x02024178 +_0805E3B8: .4byte 0x02024160 +_0805E3BC: .4byte 0x02023E88 +_0805E3C0: .4byte 0x020205AC +_0805E3C4: .4byte 0x06010000 +_0805E3C8: .4byte 0x040000D4 +_0805E3CC: .4byte 0x84000200 +_0805E3D0: .4byte 0x0201C000 +_0805E3D4: .4byte 0x00000181 +_0805E3D8: .4byte 0x082DD33C +_0805E3DC: .4byte 0x02024140 +_0805E3E0: .4byte 0x02024188 +_0805E3E4: .4byte 0x00007FFF +_0805E3E8: .4byte 0x020377B4 +_0805E3EC: .4byte 0x020373B4 +_0805E3F0: .4byte 0x04000008 +_0805E3F4: .4byte 0x02024174 + thumb_func_end HandleSpeciesGfxDataChange + + thumb_func_start BattleLoadSubstituteOrMonSpriteGfx +BattleLoadSubstituteOrMonSpriteGfx: @ 0x0805E3F8 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r5, r4, #0 + lsls r1, r1, #0x18 + cmp r1, #0 + bne _0805E4B4 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0805E414 + movs r4, #0 + b _0805E41E +_0805E414: + adds r0, r4, #0 + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_0805E41E: + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0805E430 + ldr r0, _0805E42C + b _0805E43E + .align 2, 0 +_0805E42C: .4byte 0x08C2D1C4 +_0805E430: + adds r0, r5, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0805E458 + ldr r0, _0805E450 +_0805E43E: + ldr r1, _0805E454 + ldr r1, [r1] + lsls r4, r4, #2 + adds r1, #4 + adds r1, r1, r4 + ldr r1, [r1] + bl LZDecompressWram + b _0805E46A + .align 2, 0 +_0805E450: .4byte 0x08C2CF84 +_0805E454: .4byte 0x02024178 +_0805E458: + ldr r0, _0805E4A0 + ldr r1, _0805E4A4 + ldr r1, [r1] + lsls r4, r4, #2 + adds r1, #4 + adds r1, r1, r4 + ldr r1, [r1] + bl LZDecompressWram +_0805E46A: + movs r3, #1 + lsls r6, r5, #4 + ldr r0, _0805E4A4 + ldr r0, [r0] + adds r0, #4 + adds r4, r0, r4 + ldr r2, _0805E4A8 + ldr r5, _0805E4AC +_0805E47A: + ldr r0, [r4] + lsls r1, r3, #0xb + adds r1, r0, r1 + str r0, [r2] + str r1, [r2, #4] + str r5, [r2, #8] + ldr r0, [r2, #8] + adds r3, #1 + cmp r3, #3 + ble _0805E47A + movs r0, #0x80 + lsls r0, r0, #1 + adds r1, r6, r0 + ldr r0, _0805E4B0 + movs r2, #0x20 + bl LoadCompressedPalette + b _0805E502 + .align 2, 0 +_0805E4A0: .4byte 0x08C2D1C4 +_0805E4A4: .4byte 0x02024178 +_0805E4A8: .4byte 0x040000D4 +_0805E4AC: .4byte 0x84000200 +_0805E4B0: .4byte 0x08C2CF60 +_0805E4B4: + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805E502 + adds r0, r4, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0805E4EC + ldr r1, _0805E4E4 + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0805E4E8 + adds r0, r0, r1 + adds r1, r4, #0 + bl BattleLoadOpponentMonSpriteGfx + b _0805E502 + .align 2, 0 +_0805E4E4: .4byte 0x02023D12 +_0805E4E8: .4byte 0x020243E8 +_0805E4EC: + ldr r1, _0805E508 + lsls r0, r5, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0805E50C + adds r0, r0, r1 + adds r1, r5, #0 + bl BattleLoadPlayerMonSpriteGfx +_0805E502: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0805E508: .4byte 0x02023D12 +_0805E50C: .4byte 0x02024190 + thumb_func_end BattleLoadSubstituteOrMonSpriteGfx + + thumb_func_start LoadBattleMonGfxAndAnimate +LoadBattleMonGfxAndAnimate: @ 0x0805E510 + push {r4, r5, r6, lr} + adds r5, r1, #0 + adds r4, r2, #0 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r6, #0 + adds r1, r5, #0 + bl BattleLoadSubstituteOrMonSpriteGfx + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + ldr r1, _0805E54C + adds r4, r0, r1 + ldr r0, _0805E550 + adds r0, r6, r0 + ldrb r1, [r0] + adds r0, r4, #0 + bl StartSpriteAnim + cmp r5, #0 + bne _0805E554 + adds r0, r6, #0 + bl GetSubstituteSpriteDefault_Y + b _0805E55A + .align 2, 0 +_0805E54C: .4byte 0x020205AC +_0805E550: .4byte 0x02024188 +_0805E554: + adds r0, r6, #0 + bl GetBattlerSpriteDefault_Y +_0805E55A: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x22] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LoadBattleMonGfxAndAnimate + + thumb_func_start TrySetBehindSubstituteSpriteBit +TrySetBehindSubstituteSpriteBit: @ 0x0805E568 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + cmp r1, #0xa4 + bne _0805E588 + ldr r0, _0805E58C + ldr r0, [r0] + ldr r0, [r0] + lsls r1, r2, #2 + adds r1, r1, r0 + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] +_0805E588: + pop {r0} + bx r0 + .align 2, 0 +_0805E58C: .4byte 0x02024174 + thumb_func_end TrySetBehindSubstituteSpriteBit + + thumb_func_start ClearBehindSubstituteBit +ClearBehindSubstituteBit: @ 0x0805E590 + lsls r0, r0, #0x18 + ldr r1, _0805E5A8 + ldr r1, [r1] + ldr r1, [r1] + lsrs r0, r0, #0x16 + adds r0, r0, r1 + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 +_0805E5A8: .4byte 0x02024174 + thumb_func_end ClearBehindSubstituteBit + + thumb_func_start HandleLowHpMusicChange +HandleLowHpMusicChange: @ 0x0805E5AC + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + adds r7, r6, #0 + movs r1, #0x39 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + movs r1, #0x3a + bl GetMonData + adds r1, r0, #0 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r0, r4, #0 + bl GetHPBarLevel + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0805E624 + ldr r7, _0805E620 + ldr r0, [r7] + ldr r2, [r0] + lsls r4, r6, #2 + adds r0, r4, r2 + ldrb r1, [r0] + movs r5, #2 + movs r3, #2 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _0805E676 + adds r0, r6, #0 + eors r0, r5 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _0805E612 + movs r0, #0x5a + bl PlaySE +_0805E612: + ldr r0, [r7] + ldr r1, [r0] + adds r1, r4, r1 + ldrb r0, [r1] + orrs r0, r5 + strb r0, [r1] + b _0805E676 + .align 2, 0 +_0805E620: .4byte 0x02024174 +_0805E624: + ldr r4, _0805E64C + ldr r0, [r4] + ldr r0, [r0] + lsls r1, r6, #2 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805E650 + movs r0, #0x5a + bl m4aSongNumStop + b _0805E676 + .align 2, 0 +_0805E64C: .4byte 0x02024174 +_0805E650: + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0805E676 + ldr r1, [r4] + movs r0, #2 + eors r7, r0 + ldr r1, [r1] + lsls r0, r7, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0805E676 + movs r0, #0x5a + bl m4aSongNumStop +_0805E676: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end HandleLowHpMusicChange + + thumb_func_start BattleStopLowHpSound +BattleStopLowHpSound: @ 0x0805E67C + push {r4, r5, r6, lr} + movs r0, #0 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r5, _0805E6CC + ldr r0, [r5] + ldr r0, [r0] + lsls r1, r4, #2 + adds r1, r1, r0 + ldrb r2, [r1] + movs r6, #3 + rsbs r6, r6, #0 + adds r0, r6, #0 + ands r0, r2 + strb r0, [r1] + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0805E6BE + ldr r2, [r5] + movs r0, #2 + adds r1, r4, #0 + eors r1, r0 + ldr r0, [r2] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1] + adds r0, r6, #0 + ands r0, r2 + strb r0, [r1] +_0805E6BE: + movs r0, #0x5a + bl m4aSongNumStop + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0805E6CC: .4byte 0x02024174 + thumb_func_end BattleStopLowHpSound + + thumb_func_start GetMonHPBarLevel +GetMonHPBarLevel: @ 0x0805E6D0 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0x39 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + movs r1, #0x3a + bl GetMonData + adds r1, r0, #0 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r0, r4, #0 + bl GetHPBarLevel + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetMonHPBarLevel + + thumb_func_start HandleBattleLowHpMusicChange +HandleBattleLowHpMusicChange: @ 0x0805E704 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r0, _0805E7A8 + ldr r1, _0805E7AC + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0805E79A + movs r0, #0 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r0, #2 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldr r5, _0805E7B0 + mov r1, r8 + lsls r0, r1, #1 + adds r0, r0, r5 + ldrb r0, [r0] + bl pokemon_order_func + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r1, sb + lsls r0, r1, #1 + adds r0, r0, r5 + ldrb r0, [r0] + bl pokemon_order_func + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r7, #0x64 + adds r0, r4, #0 + muls r0, r7, r0 + ldr r6, _0805E7B4 + adds r4, r0, r6 + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _0805E776 + adds r0, r4, #0 + mov r1, r8 + bl HandleLowHpMusicChange +_0805E776: + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0805E79A + adds r0, r5, #0 + muls r0, r7, r0 + adds r4, r0, r6 + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _0805E79A + adds r0, r4, #0 + mov r1, sb + bl HandleLowHpMusicChange +_0805E79A: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805E7A8: .4byte 0x03002360 +_0805E7AC: .4byte 0x00000439 +_0805E7B0: .4byte 0x02023D12 +_0805E7B4: .4byte 0x02024190 + thumb_func_end HandleBattleLowHpMusicChange + + thumb_func_start sub_0805E7B8 +sub_0805E7B8: @ 0x0805E7B8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r5, #0 + ldr r0, _0805E848 + ldrb r0, [r0] + cmp r5, r0 + bge _0805E888 + movs r0, #3 + mov sl, r8 + mov r1, sl + ands r1, r0 + mov sl, r1 + movs r6, #0 + movs r2, #0x3f + rsbs r2, r2, #0 + mov sb, r2 +_0805E7E4: + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + bl IsBattlerSpritePresent + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0805E87C + ldr r4, _0805E84C + ldr r0, _0805E850 + adds r3, r5, r0 + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r1, [r0, #1] + movs r7, #4 + rsbs r7, r7, #0 + adds r2, r7, #0 + ands r1, r2 + mov r2, sl + orrs r1, r2 + strb r1, [r0, #1] + mov r7, r8 + cmp r7, #0 + bne _0805E858 + ldr r0, _0805E854 + ldr r0, [r0] + ldr r2, [r0, #4] + adds r2, r6, r2 + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r0, [r0, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + strb r0, [r2, #6] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r1, [r0, #3] + mov r2, sb + ands r1, r2 + strb r1, [r0, #3] + b _0805E87C + .align 2, 0 +_0805E848: .4byte 0x02023D10 +_0805E84C: .4byte 0x020205AC +_0805E850: .4byte 0x02023E88 +_0805E854: .4byte 0x02024174 +_0805E858: + ldrb r0, [r3] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r4 + ldr r0, _0805E898 + ldr r0, [r0] + ldr r0, [r0, #4] + adds r0, r6, r0 + ldrb r1, [r0, #6] + movs r0, #0x1f + ands r1, r0 + lsls r1, r1, #1 + ldrb r0, [r2, #3] + mov r3, sb + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #3] +_0805E87C: + adds r6, #0xc + adds r5, #1 + ldr r0, _0805E89C + ldrb r0, [r0] + cmp r5, r0 + blt _0805E7E4 +_0805E888: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805E898: .4byte 0x02024174 +_0805E89C: .4byte 0x02023D10 + thumb_func_end sub_0805E7B8 + + thumb_func_start LoadAndCreateEnemyShadowSprites +LoadAndCreateEnemyShadowSprites: @ 0x0805E8A0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _0805E97C + bl LoadCompressedSpriteSheet + movs r0, #1 + bl GetBattlerAtPosition + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _0805E980 + mov r8, r0 + adds r0, r5, #0 + movs r1, #0 + bl GetBattlerSpriteCoord + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + movs r1, #1 + bl GetBattlerSpriteCoord + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #8 + movs r0, #0xe8 + lsls r0, r0, #0xd + adds r2, r2, r0 + asrs r2, r2, #0x10 + mov r0, r8 + adds r1, r4, #0 + movs r3, #0xc8 + bl CreateSprite + ldr r6, _0805E984 + ldr r1, [r6] + ldr r2, [r1, #4] + lsls r1, r5, #1 + adds r1, r1, r5 + lsls r1, r1, #2 + adds r2, r1, r2 + strb r0, [r2, #7] + ldr r7, _0805E988 + ldr r0, [r6] + ldr r0, [r0, #4] + adds r1, r1, r0 + ldrb r1, [r1, #7] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r5, [r0, #0x2e] + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0805E972 + movs r0, #3 + bl GetBattlerAtPosition + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + adds r0, r5, #0 + movs r1, #0 + bl GetBattlerSpriteCoord + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + movs r1, #1 + bl GetBattlerSpriteCoord + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #8 + movs r0, #0xe8 + lsls r0, r0, #0xd + adds r2, r2, r0 + asrs r2, r2, #0x10 + mov r0, r8 + adds r1, r4, #0 + movs r3, #0xc8 + bl CreateSprite + ldr r1, [r6] + ldr r2, [r1, #4] + lsls r1, r5, #1 + adds r1, r1, r5 + lsls r1, r1, #2 + adds r2, r1, r2 + strb r0, [r2, #7] + ldr r0, [r6] + ldr r0, [r0, #4] + adds r1, r1, r0 + ldrb r1, [r1, #7] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r5, [r0, #0x2e] +_0805E972: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805E97C: .4byte 0x082ED028 +_0805E980: .4byte 0x082ED038 +_0805E984: .4byte 0x02024174 +_0805E988: .4byte 0x020205AC + thumb_func_end LoadAndCreateEnemyShadowSprites + + thumb_func_start SpriteCB_EnemyShadow +SpriteCB_EnemyShadow: @ 0x0805E98C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + movs r0, #0 + mov r8, r0 + ldrh r0, [r5, #0x2e] + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0805E9D0 + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0805E9D4 + adds r7, r0, r1 + adds r6, r7, #0 + adds r6, #0x3e + ldrb r1, [r6] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0805E9C8 + adds r0, r4, #0 + bl IsBattlerSpritePresent + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805E9DC +_0805E9C8: + ldr r0, _0805E9D8 + str r0, [r5, #0x1c] + b _0805EA52 + .align 2, 0 +_0805E9D0: .4byte 0x02023E88 +_0805E9D4: .4byte 0x020205AC +_0805E9D8: .4byte 0x0805EA65 +_0805E9DC: + ldr r0, _0805E9F8 + ldrb r0, [r0] + cmp r0, #0 + bne _0805E9EE + ldrb r1, [r6] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0805EA00 +_0805E9EE: + movs r0, #1 + mov r8, r0 + ldr r2, _0805E9FC + lsls r4, r4, #2 + b _0805EA22 + .align 2, 0 +_0805E9F8: .4byte 0x0203809D +_0805E9FC: .4byte 0x02024174 +_0805EA00: + ldr r2, _0805EA5C + ldr r0, [r2] + ldr r0, [r0] + lsls r1, r4, #2 + adds r3, r1, r0 + ldrh r0, [r3, #2] + adds r4, r1, #0 + cmp r0, #0 + beq _0805EA22 + ldr r0, _0805EA60 + ldrh r1, [r3, #2] + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0 + bne _0805EA22 + movs r0, #1 + mov r8, r0 +_0805EA22: + ldr r0, [r2] + ldr r0, [r0] + adds r0, r4, r0 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0805EA36 + movs r0, #1 + mov r8, r0 +_0805EA36: + ldrh r0, [r7, #0x20] + strh r0, [r5, #0x20] + ldrh r0, [r7, #0x24] + strh r0, [r5, #0x24] + adds r2, r5, #0 + adds r2, #0x3e + mov r0, r8 + lsls r3, r0, #2 + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2] +_0805EA52: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805EA5C: .4byte 0x02024174 +_0805EA60: .4byte 0x082D965C + thumb_func_end SpriteCB_EnemyShadow + + thumb_func_start SpriteCB_SetInvisible +SpriteCB_SetInvisible: @ 0x0805EA64 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + bx lr + thumb_func_end SpriteCB_SetInvisible + + thumb_func_start SetBattlerShadowSpriteCallback +SetBattlerShadowSpriteCallback: @ 0x0805EA70 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r6, r4, #0 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + adds r0, r4, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0805EAEC + ldr r0, _0805EAC0 + ldr r3, [r0] + ldr r1, [r3] + lsls r0, r4, #2 + adds r1, r0, r1 + ldrh r0, [r1, #2] + cmp r0, #0 + beq _0805EA9A + adds r5, r0, #0 +_0805EA9A: + ldr r0, _0805EAC4 + adds r0, r5, r0 + ldrb r0, [r0] + cmp r0, #0 + beq _0805EAD0 + ldr r2, _0805EAC8 + ldr r1, [r3, #4] + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #7] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, _0805EACC + b _0805EAEA + .align 2, 0 +_0805EAC0: .4byte 0x02024174 +_0805EAC4: .4byte 0x082D965C +_0805EAC8: .4byte 0x020205AC +_0805EACC: .4byte 0x0805E98D +_0805EAD0: + ldr r2, _0805EAF4 + ldr r1, [r3, #4] + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #7] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, _0805EAF8 +_0805EAEA: + str r1, [r0] +_0805EAEC: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0805EAF4: .4byte 0x020205AC +_0805EAF8: .4byte 0x0805EA65 + thumb_func_end SetBattlerShadowSpriteCallback + + thumb_func_start HideBattlerShadowSprite +HideBattlerShadowSprite: @ 0x0805EAFC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0805EB24 + ldr r1, _0805EB28 + ldr r1, [r1] + ldr r3, [r1, #4] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrb r1, [r1, #7] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, _0805EB2C + str r1, [r0] + bx lr + .align 2, 0 +_0805EB24: .4byte 0x020205AC +_0805EB28: .4byte 0x02024174 +_0805EB2C: .4byte 0x0805EA65 + thumb_func_end HideBattlerShadowSprite + + thumb_func_start sub_0805EB30 +sub_0805EB30: @ 0x0805EB30 + push {r4, r5, r6, lr} + ldr r3, _0805EB9C + movs r0, #0 + movs r6, #0xf0 + lsls r6, r6, #8 +_0805EB3A: + adds r5, r0, #1 + movs r4, #0xf +_0805EB3E: + ldrh r1, [r3] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + bne _0805EB4E + adds r0, r6, #0 + orrs r0, r1 + strh r0, [r3] +_0805EB4E: + ldrh r1, [r3] + movs r2, #0xf0 + lsls r2, r2, #4 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _0805EB62 + adds r0, r2, #0 + orrs r0, r1 + strh r0, [r3] +_0805EB62: + ldrh r1, [r3] + movs r2, #0xf0 + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0 + bne _0805EB74 + adds r0, r1, #0 + orrs r0, r2 + strh r0, [r3] +_0805EB74: + ldrh r1, [r3] + movs r2, #0xf + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _0805EB86 + adds r0, r1, #0 + orrs r0, r2 + strh r0, [r3] +_0805EB86: + adds r3, #2 + subs r4, #1 + cmp r4, #0 + bge _0805EB3E + adds r0, r5, #0 + cmp r0, #8 + ble _0805EB3A + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0805EB9C: .4byte 0x06000240 + thumb_func_end sub_0805EB30 + + thumb_func_start ClearTemporarySpeciesSpriteData +ClearTemporarySpeciesSpriteData: @ 0x0805EBA0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + ldr r0, _0805EBD0 + ldr r0, [r0] + ldr r2, [r0] + lsls r0, r4, #2 + adds r0, r0, r2 + movs r3, #0 + movs r2, #0 + strh r2, [r0, #2] + ldr r0, _0805EBD4 + adds r0, r4, r0 + strb r3, [r0] + cmp r1, #0 + bne _0805EBC8 + adds r0, r4, #0 + bl ClearBehindSubstituteBit +_0805EBC8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0805EBD0: .4byte 0x02024174 +_0805EBD4: .4byte 0x02024188 + thumb_func_end ClearTemporarySpeciesSpriteData + + thumb_func_start AllocateMonSpritesGfx +AllocateMonSpritesGfx: @ 0x0805EBD8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + movs r6, #0 + ldr r4, _0805ECA8 + str r6, [r4] + movs r0, #0xc0 + lsls r0, r0, #1 + bl AllocZeroed + str r0, [r4] + movs r0, #0x80 + lsls r0, r0, #8 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1] +_0805EBFE: + ldr r0, _0805ECA8 + ldr r1, [r0] + lsls r4, r6, #2 + adds r2, r1, #4 + adds r2, r2, r4 + lsls r3, r6, #0xd + ldr r0, [r1] + adds r0, r0, r3 + str r0, [r2] + lsls r3, r6, #1 + adds r0, r3, r6 + lsls r0, r0, #3 + adds r1, r0, r1 + ldr r2, _0805ECAC + adds r1, #0x14 + adds r0, r0, r2 + ldm r0!, {r2, r5, r7} + stm r1!, {r2, r5, r7} + ldm r0!, {r2, r5, r7} + stm r1!, {r2, r5, r7} + movs r5, #0 + mov sb, r3 + lsls r0, r6, #5 + mov r8, r0 + adds r1, r6, #1 + mov sl, r1 + mov ip, r8 + adds r7, r4, #0 +_0805EC36: + ldr r2, _0805ECA8 + ldr r1, [r2] + lsls r4, r5, #3 + add r4, ip + adds r3, r1, #0 + adds r3, #0x74 + adds r3, r3, r4 + adds r0, r1, #4 + adds r0, r0, r7 + lsls r2, r5, #0xb + ldr r0, [r0] + adds r0, r0, r2 + str r0, [r3] + adds r1, r1, r4 + adds r1, #0x78 + movs r0, #0x80 + lsls r0, r0, #4 + strh r0, [r1] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #3 + bls _0805EC36 + ldr r1, _0805ECA8 + ldr r2, [r1] + mov r5, sb + adds r0, r5, r6 + lsls r0, r0, #3 + adds r1, r2, #0 + adds r1, #0x20 + adds r1, r1, r0 + mov r0, r8 + adds r0, #0x74 + adds r2, r2, r0 + str r2, [r1] + mov r7, sl + lsls r0, r7, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #3 + bls _0805EBFE + movs r0, #0x80 + lsls r0, r0, #5 + bl AllocZeroed + ldr r1, _0805ECA8 + ldr r1, [r1] + movs r2, #0xba + lsls r2, r2, #1 + adds r1, r1, r2 + str r0, [r1] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805ECA8: .4byte 0x02024178 +_0805ECAC: .4byte 0x082FA724 + thumb_func_end AllocateMonSpritesGfx + + thumb_func_start FreeMonSpritesGfx +FreeMonSpritesGfx: @ 0x0805ECB0 + push {r4, r5, r6, lr} + ldr r6, _0805ED28 + ldr r0, [r6] + cmp r0, #0 + beq _0805ED22 + movs r1, #0xbe + lsls r1, r1, #1 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #0 + beq _0805ECD6 + bl Free + ldr r0, [r6] + movs r1, #0xbe + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #0 + str r1, [r0] +_0805ECD6: + ldr r0, [r6] + movs r1, #0xbc + lsls r1, r1, #1 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #0 + beq _0805ECF4 + bl Free + ldr r0, [r6] + movs r1, #0xbc + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #0 + str r1, [r0] +_0805ECF4: + ldr r0, [r6] + movs r5, #0xba + lsls r5, r5, #1 + adds r0, r0, r5 + ldr r0, [r0] + bl Free + ldr r0, [r6] + adds r5, r0, r5 + movs r4, #0 + str r4, [r5] + ldr r0, [r0] + bl Free + ldr r0, [r6] + str r4, [r0] + str r4, [r0, #4] + str r4, [r0, #8] + str r4, [r0, #0xc] + str r4, [r0, #0x10] + bl Free + str r4, [r6] +_0805ED22: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0805ED28: .4byte 0x02024178 + thumb_func_end FreeMonSpritesGfx + + thumb_func_start ShouldPlayNormalMonCry +ShouldPlayNormalMonCry: @ 0x0805ED2C + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0x37 + bl GetMonData + ldr r1, _0805ED70 + ands r1, r0 + cmp r1, #0 + bne _0805ED74 + adds r0, r5, #0 + movs r1, #0x39 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + movs r1, #0x3a + bl GetMonData + adds r1, r0, #0 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r0, r4, #0 + bl GetHPBarLevel + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + ble _0805ED74 + movs r0, #1 + b _0805ED76 + .align 2, 0 +_0805ED70: .4byte 0x00000FFF +_0805ED74: + movs r0, #0 +_0805ED76: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end ShouldPlayNormalMonCry + diff --git a/asm/battle_interface.s b/asm/battle_interface.s new file mode 100644 index 0000000..6b2f029 --- /dev/null +++ b/asm/battle_interface.s @@ -0,0 +1,6009 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start DummiedOutFunction +DummiedOutFunction: @ 0x08071D14 + movs r0, #9 + bx lr + thumb_func_end DummiedOutFunction + + thumb_func_start sub_08071D18 +sub_08071D18: @ 0x08071D18 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r7, r1, #0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sl, r2 + movs r3, #0 + movs r2, #0 +_08071D34: + lsls r0, r3, #0x18 + asrs r0, r0, #0x18 + mov r3, sp + adds r1, r3, r0 + strb r2, [r1] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #3 + ble _08071D34 + movs r3, #3 + movs r0, #1 + rsbs r0, r0, #0 + mov sb, r0 + mov r8, sp +_08071D54: + lsls r0, r5, #0x10 + asrs r6, r0, #0x10 + cmp r6, #0 + ble _08071D82 + lsls r4, r3, #0x18 + asrs r4, r4, #0x18 + mov r1, sp + adds r5, r1, r4 + adds r0, r6, #0 + movs r1, #0xa + bl __modsi3 + strb r0, [r5] + adds r0, r6, #0 + movs r1, #0xa + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + subs r4, #1 + lsls r4, r4, #0x18 + lsrs r3, r4, #0x18 + b _08071D54 +_08071D82: + lsls r1, r3, #0x18 + asrs r0, r1, #0x18 + cmp r0, sb + ble _08071DA6 + movs r4, #0xff + movs r3, #1 + rsbs r3, r3, #0 +_08071D90: + asrs r2, r1, #0x18 + mov r5, sp + adds r1, r5, r2 + ldrb r0, [r1] + orrs r0, r4 + strb r0, [r1] + subs r2, #1 + lsls r1, r2, #0x18 + asrs r0, r1, #0x18 + cmp r0, r3 + bgt _08071D90 +_08071DA6: + mov r1, r8 + ldrb r0, [r1, #3] + cmp r0, #0xff + bne _08071DB2 + movs r0, #0 + strb r0, [r1, #3] +_08071DB2: + mov r2, sl + cmp r2, #0 + bne _08071E42 + movs r3, #0 + movs r1, #0 + movs r6, #0xfc + lsls r6, r6, #8 + movs r5, #0x1e + mov ip, r5 +_08071DC4: + lsls r1, r1, #0x18 + asrs r2, r1, #0x18 + mov r0, sp + adds r5, r0, r2 + ldrb r0, [r5] + mov r8, r1 + cmp r0, #0xff + bne _08071DFA + lsls r1, r2, #1 + adds r1, r1, r7 + ldrh r2, [r1] + adds r0, r6, #0 + ands r0, r2 + mov r2, ip + orrs r0, r2 + strh r0, [r1] + lsls r3, r3, #0x18 + asrs r1, r3, #0x17 + adds r1, r1, r7 + adds r1, #0x40 + ldrh r2, [r1] + adds r0, r6, #0 + ands r0, r2 + mov r5, ip + orrs r0, r5 + strh r0, [r1] + b _08071E2A +_08071DFA: + lsls r2, r2, #1 + adds r2, r2, r7 + ldrh r0, [r2] + adds r1, r6, #0 + ands r1, r0 + ldrb r0, [r5] + adds r0, #0x14 + orrs r1, r0 + strh r1, [r2] + lsls r4, r3, #0x18 + asrs r3, r4, #0x18 + lsls r2, r3, #1 + adds r2, r2, r7 + adds r2, #0x40 + ldrh r0, [r2] + adds r1, r6, #0 + ands r1, r0 + mov r5, sp + adds r0, r5, r3 + ldrb r0, [r0] + adds r0, #0x34 + orrs r1, r0 + strh r1, [r2] + adds r3, r4, #0 +_08071E2A: + movs r0, #0x80 + lsls r0, r0, #0x11 + add r0, r8 + lsrs r1, r0, #0x18 + movs r2, #0x80 + lsls r2, r2, #0x11 + adds r0, r3, r2 + lsrs r3, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #3 + ble _08071DC4 + b _08071EA6 +_08071E42: + movs r3, #0 + movs r4, #0xfc + lsls r4, r4, #8 + movs r6, #0x1e +_08071E4A: + lsls r1, r3, #0x18 + asrs r2, r1, #0x18 + mov r3, sp + adds r5, r3, r2 + ldrb r0, [r5] + adds r3, r1, #0 + cmp r0, #0xff + bne _08071E76 + lsls r1, r2, #1 + adds r1, r1, r7 + ldrh r2, [r1] + adds r0, r4, #0 + ands r0, r2 + orrs r0, r6 + strh r0, [r1] + adds r1, #0x40 + ldrh r2, [r1] + adds r0, r4, #0 + ands r0, r2 + orrs r0, r6 + strh r0, [r1] + b _08071E98 +_08071E76: + lsls r2, r2, #1 + adds r2, r2, r7 + ldrh r0, [r2] + adds r1, r4, #0 + ands r1, r0 + ldrb r0, [r5] + adds r0, #0x14 + orrs r1, r0 + strh r1, [r2] + adds r2, #0x40 + ldrh r0, [r2] + adds r1, r4, #0 + ands r1, r0 + ldrb r0, [r5] + adds r0, #0x34 + orrs r1, r0 + strh r1, [r2] +_08071E98: + movs r5, #0x80 + lsls r5, r5, #0x11 + adds r0, r3, r5 + lsrs r3, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #3 + ble _08071E4A +_08071EA6: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08071D18 + + thumb_func_start sub_08071EB8 +sub_08071EB8: @ 0x08071EB8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, r1, #0 + adds r5, r2, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + movs r1, #0x1e + strh r1, [r5, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r5, #0 + movs r2, #0 + bl sub_08071D18 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + adds r5, #0xa + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #1 + bl sub_08071D18 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08071EB8 + + thumb_func_start CreateBattlerHealthboxSprites +CreateBattlerHealthboxSprites: @ 0x08071EEC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + movs r0, #0 + str r0, [sp] + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08072000 + mov r0, sl + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08071F84 + ldr r4, _08071F74 + adds r0, r4, #0 + movs r1, #0xf0 + movs r2, #0xa0 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r0, r4, #0 + movs r1, #0xf0 + movs r2, #0xa0 + movs r3, #1 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r4, _08071F78 + lsls r1, r6, #4 + adds r1, r1, r6 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r2, [r1, #1] + movs r3, #0x3f + adds r0, r3, #0 + ands r0, r2 + strb r0, [r1, #1] + lsls r2, r7, #4 + adds r2, r2, r7 + lsls r2, r2, #2 + adds r2, r2, r4 + ldrb r0, [r2, #1] + ands r3, r0 + strb r3, [r2, #1] + ldrh r3, [r2, #4] + lsls r1, r3, #0x16 + lsrs r1, r1, #0x16 + adds r1, #0x40 + ldr r4, _08071F7C + adds r0, r4, #0 + ands r1, r0 + ldr r0, _08071F80 + ands r0, r3 + orrs r0, r1 + strh r0, [r2, #4] + b _08071FCA + .align 2, 0 +_08071F74: .4byte 0x082FCB38 +_08071F78: .4byte 0x020205AC +_08071F7C: .4byte 0x000003FF +_08071F80: .4byte 0xFFFFFC00 +_08071F84: + ldr r4, _08071FEC + adds r0, r4, #0 + movs r1, #0xf0 + movs r2, #0xa0 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r0, r4, #0 + movs r1, #0xf0 + movs r2, #0xa0 + movs r3, #1 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _08071FF0 + lsls r2, r7, #4 + adds r2, r2, r7 + lsls r2, r2, #2 + adds r2, r2, r0 + ldrh r3, [r2, #4] + lsls r1, r3, #0x16 + lsrs r1, r1, #0x16 + adds r1, #0x20 + ldr r5, _08071FF4 + adds r0, r5, #0 + ands r1, r0 + ldr r0, _08071FF8 + ands r0, r3 + orrs r0, r1 + strh r0, [r2, #4] + movs r0, #2 + str r0, [sp] +_08071FCA: + ldr r2, _08071FF0 + lsls r0, r6, #4 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r7, [r0, #6] + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + adds r1, r0, r2 + strh r6, [r1, #0x38] + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, _08071FFC + str r1, [r0] + b _08072128 + .align 2, 0 +_08071FEC: .4byte 0x082FCB68 +_08071FF0: .4byte 0x020205AC +_08071FF4: .4byte 0x000003FF +_08071FF8: .4byte 0xFFFFFC00 +_08071FFC: .4byte 0x08072335 +_08072000: + mov r0, sl + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080720A4 + mov r0, sl + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x19 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + ldr r4, _08072090 + adds r0, r0, r4 + movs r1, #0xf0 + movs r2, #0xa0 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + mov r0, sl + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x19 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r4 + movs r1, #0xf0 + movs r2, #0xa0 + movs r3, #1 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r4, _08072094 + lsls r0, r6, #4 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r0, r0, r4 + strh r7, [r0, #6] + lsls r2, r7, #4 + adds r2, r2, r7 + lsls r2, r2, #2 + adds r3, r2, r4 + strh r6, [r3, #0x38] + ldrh r1, [r3, #4] + mov r8, r1 + mov r5, r8 + lsls r1, r5, #0x16 + lsrs r1, r1, #0x16 + adds r1, #0x20 + ldr r5, _08072098 + adds r0, r5, #0 + ands r1, r0 + ldr r0, _0807209C + mov r5, r8 + ands r0, r5 + orrs r0, r1 + strh r0, [r3, #4] + adds r4, #0x1c + adds r2, r2, r4 + ldr r0, _080720A0 + str r0, [r2] + movs r0, #1 + b _08072126 + .align 2, 0 +_08072090: .4byte 0x082FCB38 +_08072094: .4byte 0x020205AC +_08072098: .4byte 0x000003FF +_0807209C: .4byte 0xFFFFFC00 +_080720A0: .4byte 0x08072335 +_080720A4: + mov r0, sl + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x19 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + ldr r4, _080721EC + adds r0, r0, r4 + movs r1, #0xf0 + movs r2, #0xa0 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + mov r0, sl + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x19 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r4 + movs r1, #0xf0 + movs r2, #0xa0 + movs r3, #1 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r4, _080721F0 + lsls r0, r6, #4 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r0, r0, r4 + strh r7, [r0, #6] + lsls r2, r7, #4 + adds r2, r2, r7 + lsls r2, r2, #2 + adds r3, r2, r4 + strh r6, [r3, #0x38] + ldrh r1, [r3, #4] + mov r8, r1 + mov r5, r8 + lsls r1, r5, #0x16 + lsrs r1, r1, #0x16 + adds r1, #0x20 + ldr r5, _080721F4 + adds r0, r5, #0 + ands r1, r0 + ldr r0, _080721F8 + mov r5, r8 + ands r0, r5 + orrs r0, r1 + strh r0, [r3, #4] + adds r4, #0x1c + adds r2, r2, r4 + ldr r0, _080721FC + str r0, [r2] + movs r0, #2 +_08072126: + str r0, [sp] +_08072128: + ldr r0, _08072200 + add r0, sl + ldrb r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + ldr r1, _08072204 + adds r0, r0, r1 + movs r1, #0x8c + movs r2, #0x3c + movs r3, #0 + bl CreateSpriteAtEnd + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r5, #4 + adds r4, r4, r5 + lsls r4, r4, #2 + ldr r1, _080721F0 + mov r8, r1 + add r4, r8 + mov r0, sl + bl GetBattlerSide + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x15 + ldr r0, _08072208 + adds r1, r1, r0 + adds r0, r4, #0 + bl SetSubspriteTables + adds r2, r4, #0 + adds r2, #0x42 + ldrb r1, [r2] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r2, #4 + mov sb, r2 + mov r1, sb + orrs r0, r1 + strb r0, [r4, #5] + movs r0, #1 + bl GetHealthboxElementGfxPtr + ldrh r1, [r4, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x11 + ldr r2, _0807220C + adds r1, r1, r2 + ldr r2, _08072210 + bl CpuSet + lsls r0, r6, #4 + adds r0, r0, r6 + lsls r0, r0, #2 + add r0, r8 + strh r5, [r0, #0x38] + mov r2, sl + strh r2, [r0, #0x3a] + adds r0, #0x3e + ldrb r1, [r0] + mov r5, sb + orrs r1, r5 + strb r1, [r0] + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + add r0, r8 + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r5 + strb r1, [r0] + strh r6, [r4, #0x38] + mov r0, sp + ldrh r0, [r0] + strh r0, [r4, #0x3a] + adds r4, #0x3e + ldrb r0, [r4] + orrs r0, r5 + strb r0, [r4] + adds r0, r6, #0 + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080721EC: .4byte 0x082FCB68 +_080721F0: .4byte 0x020205AC +_080721F4: .4byte 0x000003FF +_080721F8: .4byte 0xFFFFFC00 +_080721FC: .4byte 0x08072335 +_08072200: .4byte 0x02023D1A +_08072204: .4byte 0x082FCBB8 +_08072208: .4byte 0x082FCC84 +_0807220C: .4byte 0x06010000 +_08072210: .4byte 0x04000010 + thumb_func_end CreateBattlerHealthboxSprites + + thumb_func_start CreateSafariPlayerHealthboxSprites +CreateSafariPlayerHealthboxSprites: @ 0x08072214 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r4, _080722A0 + adds r0, r4, #0 + movs r1, #0xf0 + movs r2, #0xa0 + movs r3, #1 + bl CreateSprite + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + adds r0, r4, #0 + movs r1, #0xf0 + movs r2, #0xa0 + movs r3, #1 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080722A4 + mov sb, r1 + lsls r4, r6, #4 + adds r4, r4, r6 + lsls r4, r4, #2 + add r4, sb + ldrb r3, [r4, #1] + movs r2, #0x3f + adds r1, r2, #0 + ands r1, r3 + strb r1, [r4, #1] + lsls r3, r0, #4 + adds r3, r3, r0 + lsls r3, r3, #2 + mov r7, sb + adds r5, r3, r7 + ldrb r1, [r5, #1] + ands r2, r1 + strb r2, [r5, #1] + ldrh r1, [r5, #4] + mov r8, r1 + mov r7, r8 + lsls r2, r7, #0x16 + lsrs r2, r2, #0x16 + adds r2, #0x40 + ldr r7, _080722A8 + adds r1, r7, #0 + ands r2, r1 + ldr r1, _080722AC + mov r7, r8 + ands r1, r7 + orrs r1, r2 + strh r1, [r5, #4] + strh r0, [r4, #6] + strh r6, [r5, #0x38] + movs r0, #0x1c + add sb, r0 + add r3, sb + ldr r0, _080722B0 + str r0, [r3] + adds r0, r6, #0 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080722A0: .4byte 0x082FCB98 +_080722A4: .4byte 0x020205AC +_080722A8: .4byte 0x000003FF +_080722AC: .4byte 0xFFFFFC00 +_080722B0: .4byte 0x08072335 + thumb_func_end CreateSafariPlayerHealthboxSprites + + thumb_func_start GetHealthboxElementGfxPtr +GetHealthboxElementGfxPtr: @ 0x080722B4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x13 + ldr r1, _080722C0 + adds r0, r0, r1 + bx lr + .align 2, 0 +_080722C0: .4byte 0x08C11BE4 + thumb_func_end GetHealthboxElementGfxPtr + + thumb_func_start SpriteCB_HealthBar +SpriteCB_HealthBar: @ 0x080722C4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x38] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r1, #0x3a + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _080722F4 + cmp r0, #1 + bgt _08072308 + cmp r0, #0 + bne _08072308 + ldr r2, _080722F0 + lsls r3, r5, #4 + adds r1, r3, r5 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r0, [r1, #0x20] + adds r0, #0x10 + b _08072316 + .align 2, 0 +_080722F0: .4byte 0x020205AC +_080722F4: + ldr r2, _08072304 + lsls r3, r5, #4 + adds r1, r3, r5 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r0, [r1, #0x20] + adds r0, #0x10 + b _08072316 + .align 2, 0 +_08072304: .4byte 0x020205AC +_08072308: + ldr r2, _08072330 + lsls r3, r5, #4 + adds r1, r3, r5 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r0, [r1, #0x20] + adds r0, #8 +_08072316: + strh r0, [r4, #0x20] + ldrh r0, [r1, #0x22] + strh r0, [r4, #0x22] + adds r0, r3, r5 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x24] + strh r1, [r4, #0x24] + ldrh r0, [r0, #0x26] + strh r0, [r4, #0x26] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08072330: .4byte 0x020205AC + thumb_func_end SpriteCB_HealthBar + + thumb_func_start SpriteCB_HealthBoxOther +SpriteCB_HealthBoxOther: @ 0x08072334 + ldrh r1, [r0, #0x38] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r3, _08072358 + lsls r2, r1, #4 + adds r2, r2, r1 + lsls r2, r2, #2 + adds r2, r2, r3 + ldrh r1, [r2, #0x20] + adds r1, #0x40 + strh r1, [r0, #0x20] + ldrh r1, [r2, #0x22] + strh r1, [r0, #0x22] + ldrh r1, [r2, #0x24] + strh r1, [r0, #0x24] + ldrh r1, [r2, #0x26] + strh r1, [r0, #0x26] + bx lr + .align 2, 0 +_08072358: .4byte 0x020205AC + thumb_func_end SpriteCB_HealthBoxOther + + thumb_func_start SetBattleBarStruct +SetBattleBarStruct: @ 0x0807235C + push {r4, r5, r6, r7, lr} + ldr r7, [sp, #0x14] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r6, _0807238C + ldr r4, [r6] + ldr r5, [r4, #0xc] + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #2 + adds r5, r4, r5 + strb r1, [r5] + ldr r0, [r6] + ldr r0, [r0, #0xc] + adds r4, r4, r0 + str r2, [r4, #4] + str r3, [r4, #8] + str r7, [r4, #0xc] + ldr r0, _08072390 + str r0, [r4, #0x10] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0807238C: .4byte 0x02024174 +_08072390: .4byte 0xFFFF8000 + thumb_func_end SetBattleBarStruct + + thumb_func_start SetHealthboxSpriteInvisible +SetHealthboxSpriteInvisible: @ 0x08072394 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _080723DC + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r4 + adds r1, r2, #0 + adds r1, #0x3e + ldrb r0, [r1] + movs r3, #4 + orrs r0, r3 + strb r0, [r1] + movs r0, #0x38 + ldrsh r1, [r2, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r3 + strb r1, [r0] + ldrh r1, [r2, #6] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r3 + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080723DC: .4byte 0x020205AC + thumb_func_end SetHealthboxSpriteInvisible + + thumb_func_start SetHealthboxSpriteVisible +SetHealthboxSpriteVisible: @ 0x080723E0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _08072430 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r5 + adds r4, r2, #0 + adds r4, #0x3e + ldrb r1, [r4] + movs r3, #5 + rsbs r3, r3, #0 + adds r0, r3, #0 + ands r0, r1 + strb r0, [r4] + movs r0, #0x38 + ldrsh r1, [r2, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r4, [r0] + adds r1, r3, #0 + ands r1, r4 + strb r1, [r0] + ldrh r1, [r2, #6] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r1, [r0] + ands r3, r1 + strb r3, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08072430: .4byte 0x020205AC + thumb_func_end SetHealthboxSpriteVisible + + thumb_func_start UpdateSpritePos +UpdateSpritePos: @ 0x08072434 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _08072450 + lsls r3, r0, #4 + adds r3, r3, r0 + lsls r3, r3, #2 + adds r3, r3, r4 + strh r1, [r3, #0x20] + strh r2, [r3, #0x22] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08072450: .4byte 0x020205AC + thumb_func_end UpdateSpritePos + + thumb_func_start DestoryHealthboxSprite +DestoryHealthboxSprite: @ 0x08072454 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _08072490 + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + adds r4, r4, r5 + ldrh r1, [r4, #6] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + bl DestroySprite + movs r0, #0x38 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + bl DestroySprite + adds r0, r4, #0 + bl DestroySprite + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08072490: .4byte 0x020205AC + thumb_func_end DestoryHealthboxSprite + + thumb_func_start DummyBattleInterfaceFunc +DummyBattleInterfaceFunc: @ 0x08072494 + bx lr + .align 2, 0 + thumb_func_end DummyBattleInterfaceFunc + + thumb_func_start UpdateOamPriorityInAllHealthboxes +UpdateOamPriorityInAllHealthboxes: @ 0x08072498 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r6, #0 + ldr r1, _0807251C + mov r8, r1 + ldrb r2, [r1] + cmp r6, r2 + bge _08072510 + ldr r1, _08072520 + mov ip, r1 + movs r1, #3 + ands r0, r1 + lsls r5, r0, #2 + movs r7, #0xd + rsbs r7, r7, #0 + ldr r2, _08072524 + mov sb, r2 +_080724C2: + mov r1, sb + adds r0, r6, r1 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + add r1, ip + ldrb r4, [r1, #6] + ldrh r3, [r1, #0x38] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldrb r2, [r1, #5] + adds r0, r7, #0 + ands r0, r2 + orrs r0, r5 + strb r0, [r1, #5] + lsls r1, r4, #4 + adds r1, r1, r4 + lsls r1, r1, #2 + add r1, ip + ldrb r2, [r1, #5] + adds r0, r7, #0 + ands r0, r2 + orrs r0, r5 + strb r0, [r1, #5] + lsls r1, r3, #4 + adds r1, r1, r3 + lsls r1, r1, #2 + add r1, ip + ldrb r2, [r1, #5] + adds r0, r7, #0 + ands r0, r2 + orrs r0, r5 + strb r0, [r1, #5] + adds r6, #1 + mov r2, r8 + ldrb r2, [r2] + cmp r6, r2 + blt _080724C2 +_08072510: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0807251C: .4byte 0x02023D10 +_08072520: .4byte 0x020205AC +_08072524: .4byte 0x03005AD0 + thumb_func_end UpdateOamPriorityInAllHealthboxes + + thumb_func_start InitBattlerHealthboxCoords +InitBattlerHealthboxCoords: @ 0x08072528 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r5, #0 + movs r4, #0 + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08072554 + adds r0, r6, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0807254E + movs r5, #0x2c + movs r4, #0x1e + b _0807258C +_0807254E: + movs r5, #0x9e + movs r4, #0x58 + b _0807258C +_08072554: + adds r0, r6, #0 + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08072582 + cmp r0, #1 + bgt _0807256C + cmp r0, #0 + beq _08072576 + b _0807258C +_0807256C: + cmp r0, #2 + beq _0807257C + cmp r0, #3 + beq _08072588 + b _0807258C +_08072576: + movs r5, #0x9f + movs r4, #0x4c + b _0807258C +_0807257C: + movs r5, #0xab + movs r4, #0x65 + b _0807258C +_08072582: + movs r5, #0x2c + movs r4, #0x13 + b _0807258C +_08072588: + movs r5, #0x20 + movs r4, #0x2c +_0807258C: + ldr r0, _080725A0 + adds r0, r6, r0 + ldrb r0, [r0] + adds r1, r5, #0 + adds r2, r4, #0 + bl UpdateSpritePos + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080725A0: .4byte 0x03005AD0 + thumb_func_end InitBattlerHealthboxCoords + + thumb_func_start UpdateLvlInHealthbox +UpdateLvlInHealthbox: @ 0x080725A4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x20 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + ldr r1, _080725EC + mov r0, sp + movs r2, #0x1e + bl memcpy + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080725F4 + ldr r1, _080725F0 + lsls r4, r6, #4 + adds r0, r4, r6 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0, #0x3a] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerSide + lsls r0, r0, #0x18 + movs r5, #0x28 + adds r7, r4, #0 + cmp r0, #0 + bne _08072614 + movs r5, #0x49 + b _08072614 + .align 2, 0 +_080725EC: .4byte 0x082FCDBC +_080725F0: .4byte 0x020205AC +_080725F4: + ldr r1, _08072630 + lsls r4, r6, #4 + adds r0, r4, r6 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0, #0x3a] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerSide + lsls r0, r0, #0x18 + movs r5, #0x28 + adds r7, r4, #0 + cmp r0, #0 + bne _08072614 + movs r5, #0x29 +_08072614: + mov r0, r8 + cmp r0, #0x64 + bne _08072634 + mov r0, sp + adds r0, #6 + movs r1, #0x64 + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + movs r1, #3 + mov r8, r1 + b _0807267E + .align 2, 0 +_08072630: .4byte 0x020205AC +_08072634: + movs r0, #0x2a + bl GetHealthboxElementGfxPtr + ldr r2, _080726E0 + adds r1, r7, r6 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r1, [r1, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x16 + adds r1, r1, r5 + lsls r1, r1, #5 + ldr r2, _080726E4 + adds r1, r1, r2 + ldr r2, _080726E8 + bl CpuSet + mov r0, sp + adds r0, #6 + mov r1, r8 + movs r2, #0 + movs r3, #2 + bl ConvertIntToDecimalStringN + mov r2, r8 + cmp r2, #9 + bhi _08072674 + mov r0, sp + adds r0, #7 + ldr r1, _080726EC + bl StringCopy +_08072674: + movs r0, #2 + mov r8, r0 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_0807267E: + ldr r0, _080726F0 + ldr r0, [r0] + movs r1, #0xba + lsls r1, r1, #1 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #7 + mov r2, sp + bl RenderTextFont9 + movs r4, #0 + cmp r4, r8 + bhs _080726D2 + ldr r1, _080726E0 + adds r0, r7, r6 + lsls r0, r0, #2 + adds r6, r0, r1 +_080726A0: + ldr r0, _080726F0 + ldr r0, [r0] + movs r2, #0xba + lsls r2, r2, #1 + adds r0, r0, r2 + lsls r1, r4, #6 + ldr r0, [r0] + adds r0, r0, r1 + adds r0, #0x20 + ldrh r1, [r6, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x16 + adds r1, r1, r5 + adds r1, r1, r4 + lsls r1, r1, #5 + ldr r2, _080726E4 + adds r1, r1, r2 + ldr r2, _080726E8 + bl CpuSet + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r8 + blo _080726A0 +_080726D2: + add sp, #0x20 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080726E0: .4byte 0x020205AC +_080726E4: .4byte 0x06010000 +_080726E8: .4byte 0x04000008 +_080726EC: .4byte 0x085CC4EE +_080726F0: .4byte 0x02024178 + thumb_func_end UpdateLvlInHealthbox + + thumb_func_start sub_080726F4 +sub_080726F4: @ 0x080726F4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r8, r1 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + ldr r1, _08072750 + mov r0, sp + movs r2, #0x14 + bl memcpy + ldr r1, _08072754 + lsls r0, r6, #4 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r7, r0, r1 + ldrh r0, [r7, #0x3a] + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl IsDoubleBattle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0807273E + adds r0, r4, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08072758 +_0807273E: + mov r0, r8 + lsls r1, r0, #0x10 + asrs r1, r1, #0x10 + adds r0, r6, #0 + adds r2, r5, #0 + bl UpdateHpTextInHealthboxInDoubles + b _080727DE + .align 2, 0 +_08072750: .4byte 0x082FCDDA +_08072754: .4byte 0x020205AC +_08072758: + ldrh r0, [r7, #0x3a] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08072772 + movs r7, #0x59 + cmp r5, #0 + bne _0807277A + movs r7, #0x1d + b _0807277A +_08072772: + movs r7, #0x30 + cmp r5, #0 + bne _0807277A + movs r7, #0x14 +_0807277A: + mov r0, sp + adds r0, #6 + mov r2, r8 + lsls r1, r2, #0x10 + asrs r1, r1, #0x10 + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r0, _080727EC + ldr r0, [r0] + movs r1, #0xba + lsls r1, r1, #1 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #7 + mov r2, sp + bl RenderTextFont9 + movs r4, #0 + lsls r0, r6, #4 + ldr r1, _080727F0 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r5, r0, r1 +_080727AC: + ldr r0, _080727EC + ldr r0, [r0] + movs r2, #0xba + lsls r2, r2, #1 + adds r0, r0, r2 + lsls r1, r4, #6 + adds r1, #0x20 + ldr r0, [r0] + adds r0, r0, r1 + ldrh r1, [r5, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x16 + adds r1, r1, r7 + adds r1, r1, r4 + lsls r1, r1, #5 + ldr r2, _080727F4 + adds r1, r1, r2 + ldr r2, _080727F8 + bl CpuSet + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #2 + bls _080727AC +_080727DE: + add sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080727EC: .4byte 0x02024178 +_080727F0: .4byte 0x020205AC +_080727F4: .4byte 0x06010000 +_080727F8: .4byte 0x04000008 + thumb_func_end sub_080726F4 + + thumb_func_start UpdateHpTextInHealthboxInDoubles +UpdateHpTextInHealthboxInDoubles: @ 0x080727FC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + ldr r1, _080728D0 + mov r0, sp + movs r2, #0x14 + bl memcpy + ldr r5, _080728D4 + mov r1, sb + lsls r0, r1, #4 + add r0, sb + lsls r0, r0, #2 + adds r2, r0, r5 + ldrh r0, [r2, #0x3a] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + ldr r0, _080728D8 + ldr r0, [r0] + ldr r1, [r0] + mov r3, sl + lsls r0, r3, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _0807284E + b _080729B4 +_0807284E: + movs r6, #4 + mov r1, r8 + rsbs r0, r1, #0 + orrs r0, r1 + asrs r0, r0, #0x1f + ands r6, r0 + ldrh r0, [r2, #0x38] + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + mov r0, sp + adds r0, #6 + lsls r1, r4, #0x10 + asrs r1, r1, #0x10 + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + mov r2, r8 + cmp r2, #0 + bne _0807287C + ldr r1, _080728DC + bl StringCopy +_0807287C: + ldr r0, _080728E0 + ldr r0, [r0] + movs r3, #0xba + lsls r3, r3, #1 + adds r0, r0, r3 + ldr r0, [r0] + movs r1, #7 + mov r2, sp + bl RenderTextFont9 + adds r4, r6, #0 + adds r0, r4, #3 + cmp r4, r0 + bge _08072920 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + adds r5, r0, r5 +_080728A0: + cmp r4, #2 + bhi _080728EC + ldr r0, _080728E0 + ldr r0, [r0] + movs r1, #0xba + lsls r1, r1, #1 + adds r0, r0, r1 + subs r1, r4, r6 + lsls r1, r1, #6 + adds r1, #0x20 + ldr r0, [r0] + adds r0, r0, r1 + ldrh r1, [r5, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x16 + adds r4, #1 + adds r1, r1, r4 + lsls r1, r1, #5 + ldr r2, _080728E4 + adds r1, r1, r2 + ldr r2, _080728E8 + bl CpuSet + b _08072916 + .align 2, 0 +_080728D0: .4byte 0x082FCDEE +_080728D4: .4byte 0x020205AC +_080728D8: .4byte 0x02024174 +_080728DC: .4byte 0x085C93FF +_080728E0: .4byte 0x02024178 +_080728E4: .4byte 0x06010000 +_080728E8: .4byte 0x04000008 +_080728EC: + ldr r0, _08072968 + ldr r0, [r0] + movs r3, #0xba + lsls r3, r3, #1 + adds r0, r0, r3 + subs r1, r4, r6 + lsls r1, r1, #6 + adds r1, #0x20 + ldr r0, [r0] + adds r0, r0, r1 + ldrh r1, [r5, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x16 + adds r1, r4, r1 + lsls r1, r1, #5 + ldr r2, _0807296C + adds r1, r1, r2 + ldr r2, _08072970 + bl CpuSet + adds r4, #1 +_08072916: + lsls r0, r4, #0x18 + lsrs r4, r0, #0x18 + adds r0, r6, #3 + cmp r4, r0 + blt _080728A0 +_08072920: + mov r3, r8 + cmp r3, #0 + bne _08072980 + ldr r0, _08072968 + ldr r0, [r0] + movs r1, #0xba + lsls r1, r1, #1 + adds r0, r0, r1 + ldr r0, [r0] + adds r0, #0xe0 + ldr r1, _08072974 + lsls r4, r7, #4 + adds r4, r4, r7 + lsls r4, r4, #2 + adds r4, r4, r1 + ldrh r1, [r4, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x11 + adds r1, #0x80 + ldr r5, _08072978 + adds r1, r1, r5 + ldr r2, _08072970 + bl CpuSet + mov r2, r8 + str r2, [sp, #0x14] + add r0, sp, #0x14 + ldrh r1, [r4, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x11 + adds r1, r1, r5 + ldr r2, _0807297C + bl CpuSet + b _080729B4 + .align 2, 0 +_08072968: .4byte 0x02024178 +_0807296C: .4byte 0x06010020 +_08072970: .4byte 0x04000008 +_08072974: .4byte 0x020205AC +_08072978: .4byte 0x06010000 +_0807297C: .4byte 0x05000008 +_08072980: + mov r0, sl + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080729B4 + movs r0, #0x74 + bl GetHealthboxElementGfxPtr + ldr r2, _080729C4 + mov r3, sb + lsls r1, r3, #4 + add r1, sb + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r1, [r1, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x11 + movs r2, #0xd0 + lsls r2, r2, #3 + adds r1, r1, r2 + ldr r2, _080729C8 + adds r1, r1, r2 + ldr r2, _080729CC + bl CpuSet +_080729B4: + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080729C4: .4byte 0x020205AC +_080729C8: .4byte 0x06010000 +_080729CC: .4byte 0x04000008 + thumb_func_end UpdateHpTextInHealthboxInDoubles + + thumb_func_start PrintSafariMonInfo +PrintSafariMonInfo: @ 0x080729D0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x14] + ldr r1, _08072A78 + mov r0, sp + movs r2, #0x14 + bl memcpy + ldr r1, _08072A7C + ldr r2, [sp, #0x14] + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0, #0x3a] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerPosition + ldr r1, _08072A80 + ldr r2, [r1] + movs r3, #0xba + lsls r3, r3, #1 + adds r2, r2, r3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #7 + movs r0, #0xa4 + lsls r0, r0, #3 + adds r1, r1, r0 + ldr r0, [r2] + adds r6, r0, r1 + movs r1, #5 + mov r8, r1 + adds r0, r4, #0 + bl GetNature + lsls r0, r0, #0x18 + mov r4, sp + adds r4, #6 + ldr r1, _08072A84 + lsrs r0, r0, #0x16 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl StringCopy + adds r0, r6, #0 + movs r1, #7 + mov r2, sp + bl RenderTextFont9 + movs r7, #6 + movs r5, #0 + mov r2, sp + adds r2, #9 + str r2, [sp, #0x1c] +_08072A54: + mov r3, sp + adds r0, r3, r7 + ldrb r1, [r0] + adds r0, r1, #0 + subs r0, #0x37 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x13 + bls _08072A72 + adds r0, r1, #0 + adds r0, #0x79 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x13 + bhi _08072A88 +_08072A72: + movs r0, #0x2c + b _08072AA6 + .align 2, 0 +_08072A78: .4byte 0x082FCDDA +_08072A7C: .4byte 0x020205AC +_08072A80: .4byte 0x02024178 +_08072A84: .4byte 0x085ECE24 +_08072A88: + adds r0, r1, #0 + subs r0, #0x4b + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bls _08072AA0 + adds r0, r1, #0 + adds r0, #0x65 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _08072AA4 +_08072AA0: + movs r0, #0x2d + b _08072AA6 +_08072AA4: + movs r0, #0x2b +_08072AA6: + bl GetHealthboxElementGfxPtr + lsls r1, r5, #6 + adds r1, r6, r1 + ldr r2, _08072BBC + bl CpuSet + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r7, #1 + cmp r5, r8 + blo _08072A54 + movs r7, #1 + ldr r0, [sp, #0x14] + lsls r0, r0, #4 + str r0, [sp, #0x18] + movs r1, #1 + add r1, r8 + mov sb, r1 + cmp r7, sb + bge _08072B32 + ldr r1, _08072BC0 + ldr r2, _08072BBC + mov sl, r2 + ldr r3, [sp, #0x14] + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + mov r8, r0 +_08072AE2: + mov r1, r8 + ldrh r0, [r1, #4] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + adds r5, r7, #0 + cmp r7, #0 + bge _08072AF2 + adds r5, r7, #7 +_08072AF2: + asrs r5, r5, #3 + lsls r4, r5, #3 + subs r4, r7, r4 + adds r0, r0, r4 + lsls r5, r5, #6 + adds r0, r0, r5 + lsls r0, r0, #5 + ldr r2, _08072BC4 + adds r1, r0, r2 + adds r0, r6, #0 + mov r2, sl + bl CpuSet + adds r6, #0x20 + mov r3, r8 + ldrh r0, [r3, #4] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + adds r4, #8 + adds r0, r0, r4 + adds r0, r0, r5 + lsls r0, r0, #5 + ldr r2, _08072BC4 + adds r1, r0, r2 + adds r0, r6, #0 + mov r2, sl + bl CpuSet + adds r6, #0x20 + adds r7, #1 + cmp r7, sb + blt _08072AE2 +_08072B32: + ldr r6, _08072BC0 + ldr r3, [sp, #0x18] + ldr r1, [sp, #0x14] + adds r0, r3, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrh r4, [r0, #0x38] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r5, _08072BC8 + ldr r0, [r5] + adds r0, #0x7c + ldrb r1, [r0] + mov r0, sp + adds r0, #6 + movs r2, #1 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r0, [r5] + adds r0, #0x7b + ldrb r1, [r0] + ldr r0, [sp, #0x1c] + movs r2, #1 + movs r3, #2 + bl ConvertIntToDecimalStringN + mov r1, sp + movs r0, #0 + strb r0, [r1, #5] + movs r0, #0xba + strb r0, [r1, #8] + ldr r5, _08072BCC + ldr r0, [r5] + movs r2, #0xba + lsls r2, r2, #1 + adds r0, r0, r2 + ldr r0, [r0] + movs r1, #7 + mov r2, sp + bl RenderTextFont9 + movs r7, #0 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r6, r0, r6 + movs r4, #0x20 +_08072B92: + cmp r7, #1 + bgt _08072BD0 + ldr r0, [r5] + movs r3, #0xba + lsls r3, r3, #1 + adds r0, r0, r3 + ldr r0, [r0] + adds r0, r0, r4 + ldrh r1, [r6, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x16 + adds r2, r7, #2 + adds r1, r1, r2 + lsls r1, r1, #5 + ldr r2, _08072BC4 + adds r1, r1, r2 + ldr r2, _08072BBC + bl CpuSet + b _08072BF0 + .align 2, 0 +_08072BBC: .4byte 0x04000008 +_08072BC0: .4byte 0x020205AC +_08072BC4: .4byte 0x06010000 +_08072BC8: .4byte 0x02024140 +_08072BCC: .4byte 0x02024178 +_08072BD0: + ldr r0, [r5] + movs r3, #0xba + lsls r3, r3, #1 + adds r0, r0, r3 + ldr r0, [r0] + adds r0, r0, r4 + ldrh r1, [r6, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x16 + adds r1, r7, r1 + lsls r1, r1, #5 + ldr r2, _08072C08 + adds r1, r1, r2 + ldr r2, _08072C0C + bl CpuSet +_08072BF0: + adds r4, #0x40 + adds r7, #1 + cmp r7, #4 + ble _08072B92 + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08072C08: .4byte 0x060100C0 +_08072C0C: .4byte 0x04000008 + thumb_func_end PrintSafariMonInfo + + thumb_func_start SwapHpBarsWithHpText +SwapHpBarsWithHpText: @ 0x08072C10 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + movs r0, #0 + mov sb, r0 + ldr r0, _08072D3C + ldrb r0, [r0] + cmp sb, r0 + blt _08072C2A + b _08072EB6 +_08072C2A: + ldr r1, _08072D40 + mov sl, r1 + ldr r2, _08072D44 + mov r8, r2 +_08072C32: + ldr r0, _08072D48 + mov r1, sb + adds r6, r1, r0 + ldrb r1, [r6] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + mov r1, sl + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, [r0] + ldr r0, _08072D4C + cmp r1, r0 + beq _08072C50 + b _08072EA4 +_08072C50: + mov r2, sb + lsls r0, r2, #0x18 + lsrs r7, r0, #0x18 + adds r0, r7, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08072C66 + b _08072EA4 +_08072C66: + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08072C7E + adds r0, r7, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08072C7E + b _08072EA4 +_08072C7E: + ldr r5, _08072D50 + ldr r0, [r5] + ldr r3, [r0] + mov r0, sb + lsls r4, r0, #2 + adds r3, r4, r3 + ldr r0, [r3] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1f + movs r2, #1 + eors r2, r0 + lsls r2, r2, #4 + mov ip, r2 + ldrb r0, [r3] + movs r2, #0x11 + rsbs r2, r2, #0 + adds r1, r2, #0 + ands r0, r1 + mov r1, ip + orrs r0, r1 + strb r0, [r3] + ldr r0, [r5] + ldr r0, [r0] + adds r4, r4, r0 + ldr r0, [r4] + lsls r0, r0, #0x1b + lsrs r4, r0, #0x1f + adds r0, r7, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08072DAC + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08072CCC + b _08072EA4 +_08072CCC: + ldr r0, _08072D54 + ldr r2, [r0] + movs r0, #0x80 + ands r2, r0 + cmp r2, #0 + beq _08072CDA + b _08072EA4 +_08072CDA: + cmp r4, #1 + bne _08072D64 + ldrb r1, [r6] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sl + ldrh r0, [r0, #0x38] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + str r2, [sp] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sl + ldrh r1, [r0, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x11 + ldr r2, _08072D58 + adds r1, r1, r2 + mov r0, sp + ldr r2, _08072D5C + bl CpuSet + ldrb r4, [r6] + mov r1, r8 + ldrh r0, [r1] + movs r2, #0x64 + muls r0, r2, r0 + ldr r1, _08072D60 + adds r0, r0, r1 + movs r1, #0x39 + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r0, r4, #0 + movs r2, #0 + bl UpdateHpTextInHealthboxInDoubles + ldrb r4, [r6] + mov r2, r8 + ldrh r0, [r2] + movs r1, #0x64 + muls r0, r1, r0 + ldr r2, _08072D60 + b _08072E32 + .align 2, 0 +_08072D3C: .4byte 0x02023D10 +_08072D40: .4byte 0x020205AC +_08072D44: .4byte 0x02023D12 +_08072D48: .4byte 0x03005AD0 +_08072D4C: .4byte 0x08007141 +_08072D50: .4byte 0x02024174 +_08072D54: .4byte 0x02022C90 +_08072D58: .4byte 0x06010000 +_08072D5C: .4byte 0x05000040 +_08072D60: .4byte 0x02024190 +_08072D64: + ldrb r0, [r6] + bl UpdateStatusIconInHealthbox + ldrb r0, [r6] + mov r2, r8 + ldrh r1, [r2] + movs r2, #0x64 + muls r1, r2, r1 + ldr r2, _08072DA0 + adds r1, r1, r2 + movs r2, #5 + bl UpdateHealthboxAttribute + movs r0, #0x75 + bl GetHealthboxElementGfxPtr + ldrb r2, [r6] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + add r1, sl + ldrh r1, [r1, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x11 + ldr r2, _08072DA4 + adds r1, r1, r2 + ldr r2, _08072DA8 + bl CpuSet + b _08072E8E + .align 2, 0 +_08072DA0: .4byte 0x02024190 +_08072DA4: .4byte 0x06010680 +_08072DA8: .4byte 0x04000008 +_08072DAC: + cmp r4, #1 + bne _08072E58 + ldr r0, _08072DD0 + ldr r2, [r0] + movs r0, #0x80 + ands r2, r0 + cmp r2, #0 + beq _08072DD8 + ldrb r0, [r6] + mov r2, r8 + ldrh r1, [r2] + movs r2, #0x64 + muls r1, r2, r1 + ldr r2, _08072DD4 + adds r1, r1, r2 + bl PrintSafariMonInfo + b _08072E8E + .align 2, 0 +_08072DD0: .4byte 0x02022C90 +_08072DD4: .4byte 0x020243E8 +_08072DD8: + ldrb r1, [r6] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sl + ldrh r0, [r0, #0x38] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + str r2, [sp] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sl + ldrh r1, [r0, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x11 + ldr r0, _08072E4C + adds r1, r1, r0 + mov r0, sp + ldr r2, _08072E50 + bl CpuSet + ldrb r4, [r6] + mov r1, r8 + ldrh r0, [r1] + movs r2, #0x64 + muls r0, r2, r0 + ldr r1, _08072E54 + adds r0, r0, r1 + movs r1, #0x39 + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r0, r4, #0 + movs r2, #0 + bl UpdateHpTextInHealthboxInDoubles + ldrb r4, [r6] + mov r2, r8 + ldrh r0, [r2] + movs r1, #0x64 + muls r0, r1, r0 + ldr r2, _08072E54 +_08072E32: + adds r0, r0, r2 + movs r1, #0x3a + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r0, r4, #0 + movs r2, #1 + bl UpdateHpTextInHealthboxInDoubles + b _08072E8E + .align 2, 0 +_08072E4C: .4byte 0x06010000 +_08072E50: .4byte 0x05000040 +_08072E54: .4byte 0x020243E8 +_08072E58: + ldrb r0, [r6] + bl UpdateStatusIconInHealthbox + ldrb r0, [r6] + mov r2, r8 + ldrh r1, [r2] + movs r5, #0x64 + muls r1, r5, r1 + ldr r4, _08072EC8 + adds r1, r1, r4 + movs r2, #5 + bl UpdateHealthboxAttribute + ldr r0, _08072ECC + ldr r0, [r0] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08072E8E + ldrb r0, [r6] + mov r2, r8 + ldrh r1, [r2] + muls r1, r5, r1 + adds r1, r1, r4 + movs r2, #4 + bl UpdateHealthboxAttribute +_08072E8E: + ldr r0, _08072ED0 + add r0, sb + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sl + ldrh r1, [r0, #0x3c] + movs r2, #1 + eors r1, r2 + strh r1, [r0, #0x3c] +_08072EA4: + movs r0, #2 + add r8, r0 + movs r1, #1 + add sb, r1 + ldr r0, _08072ED4 + ldrb r0, [r0] + cmp sb, r0 + bge _08072EB6 + b _08072C32 +_08072EB6: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08072EC8: .4byte 0x020243E8 +_08072ECC: .4byte 0x02022C90 +_08072ED0: .4byte 0x03005AD0 +_08072ED4: .4byte 0x02023D10 + thumb_func_end SwapHpBarsWithHpText + + thumb_func_start CreatePartyStatusSummarySprites +CreatePartyStatusSummarySprites: @ 0x08072ED8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x24 + str r1, [sp, #0xc] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #8] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r4, r2, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r3, [sp, #0x10] + cmp r4, #0 + beq _08072F08 + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + beq _08072F58 +_08072F08: + ldr r0, [sp, #8] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08072F2C + movs r0, #0 + mov sb, r0 + movs r5, #0x88 + movs r4, #0x60 + movs r1, #0x64 + mov sl, r1 + ldr r2, _08072F28 + mov r8, r2 + b _08072F68 + .align 2, 0 +_08072F28: .4byte 0x0000FFFB +_08072F2C: + movs r3, #1 + mov sb, r3 + cmp r4, #0 + beq _08072F3E + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08072F44 +_08072F3E: + movs r5, #0x68 + movs r4, #0x28 + b _08072F48 +_08072F44: + movs r5, #0x68 + movs r4, #0x10 +_08072F48: + ldr r6, _08072F54 + mov sl, r6 + movs r0, #5 + mov r8, r0 + b _08072F68 + .align 2, 0 +_08072F54: .4byte 0x0000FF9C +_08072F58: + movs r1, #1 + mov sb, r1 + movs r5, #0x68 + movs r4, #0x28 + ldr r2, _08072FDC + mov sl, r2 + movs r3, #5 + mov r8, r3 +_08072F68: + ldr r0, _08072FE0 + bl LoadCompressedSpriteSheetUsingHeap + ldr r0, _08072FE4 + bl LoadSpriteSheet + ldr r0, _08072FE8 + bl LoadSpritePalette + ldr r0, _08072FEC + bl LoadSpritePalette + mov r0, sb + lsls r6, r0, #1 + adds r0, r6, r0 + lsls r0, r0, #3 + ldr r1, _08072FF0 + adds r0, r0, r1 + lsls r5, r5, #0x10 + asrs r1, r5, #0x10 + lsls r4, r4, #0x10 + asrs r2, r4, #0x10 + movs r3, #0xa + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x14] + lsls r0, r0, #4 + ldr r1, [sp, #0x14] + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08072FF4 + adds r7, r0, r1 + ldr r1, _08072FF8 + adds r0, r7, #0 + bl SetSubspriteTables + mov r2, sl + strh r2, [r7, #0x24] + mov r3, r8 + strh r3, [r7, #0x2e] + str r5, [sp, #0x1c] + str r4, [sp, #0x20] + mov r5, sb + cmp r5, #0 + beq _08072FFC + ldrh r0, [r7, #0x20] + subs r0, #0x60 + strh r0, [r7, #0x20] + ldrb r1, [r7, #3] + movs r0, #0x3f + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r7, #3] + b _08073002 + .align 2, 0 +_08072FDC: .4byte 0x0000FF9C +_08072FE0: .4byte 0x082FCD2C +_08072FE4: .4byte 0x082FCD44 +_08072FE8: .4byte 0x082FCD34 +_08072FEC: .4byte 0x082FCD3C +_08072FF0: .4byte 0x082FCD5C +_08072FF4: .4byte 0x020205AC +_08072FF8: .4byte 0x082FCCBC +_08072FFC: + ldrh r0, [r7, #0x20] + adds r0, #0x60 + strh r0, [r7, #0x20] +_08073002: + movs r0, #0 + mov r8, r0 + ldr r1, _080730B0 + mov sl, r1 + mov r7, sp + mov r2, sb + adds r0, r6, r2 + lsls r0, r0, #3 + str r0, [sp, #0x18] + movs r6, #0xa + movs r5, #0 +_08073018: + ldr r0, _080730B4 + ldr r3, [sp, #0x20] + ldr r1, _080730B8 + adds r2, r3, r1 + ldr r3, [sp, #0x18] + adds r0, r3, r0 + ldr r3, [sp, #0x1c] + asrs r1, r3, #0x10 + asrs r2, r2, #0x10 + movs r3, #9 + bl CreateSpriteAtEnd + strb r0, [r7] + ldr r0, [sp, #0x10] + cmp r0, #0 + bne _08073048 + ldrb r0, [r7] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r2, _080730BC + adds r1, r1, r2 + ldr r0, _080730C0 + str r0, [r1] +_08073048: + ldr r4, _080730B0 + mov r3, sb + cmp r3, #0 + bne _0807306A + ldrb r1, [r7] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sl + strh r3, [r0, #0x24] + ldrb r1, [r7] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sl + mov r1, sb + strh r1, [r0, #0x26] +_0807306A: + ldrb r1, [r7] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0 + mov r2, sp + ldrh r2, [r2, #0x14] + strh r2, [r0, #0x2e] + mov r3, sb + cmp r3, #0 + bne _080730C4 + ldrb r0, [r7] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrh r0, [r1, #0x20] + adds r0, #0x18 + adds r0, r0, r5 + strh r0, [r1, #0x20] + ldrb r1, [r7] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + strh r6, [r0, #0x30] + ldrb r1, [r7] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0x78 + b _08073106 + .align 2, 0 +_080730B0: .4byte 0x020205AC +_080730B4: .4byte 0x082FCD8C +_080730B8: .4byte 0xFFFC0000 +_080730BC: .4byte 0x020205C8 +_080730C0: .4byte 0x08073AC5 +_080730C4: + ldrb r0, [r7] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r4 + ldrh r3, [r2, #0x20] + subs r3, #0x18 + movs r1, #5 + mov r0, r8 + subs r1, r1, r0 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + subs r3, r3, r0 + strh r3, [r2, #0x20] + ldrb r0, [r7] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r4 + movs r1, #6 + mov r3, r8 + subs r1, r1, r3 + lsls r0, r1, #3 + subs r0, r0, r1 + adds r0, #0xa + strh r0, [r2, #0x30] + ldrb r1, [r7] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _0807318C +_08073106: + strh r1, [r0, #0x24] + ldrb r1, [r7] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + mov r1, sb + strh r1, [r0, #0x32] + adds r7, #1 + adds r6, #7 + adds r5, #0xa + movs r2, #1 + add r8, r2 + mov r3, r8 + cmp r3, #5 + bgt _08073128 + b _08073018 +_08073128: + ldr r0, [sp, #8] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08073136 + b _080732E4 +_08073136: + ldr r0, _08073190 + ldr r1, [r0] + movs r2, #0x40 + ands r1, r2 + cmp r1, #0 + beq _080731F0 + ldr r5, _08073194 + mov sl, r5 + ldr r6, _08073198 + ldr r0, _0807319C + adds r7, r0, #0 + ldr r1, _080731A0 + mov sb, r1 + mov r4, sp + ldr r5, [sp, #0xc] + movs r2, #5 + mov r8, r2 +_08073158: + ldrh r0, [r5] + cmp r0, sl + bne _080731A4 + ldrb r0, [r4] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r6 + ldrh r3, [r2, #4] + lsls r1, r3, #0x16 + lsrs r1, r1, #0x16 + adds r1, #1 + ands r1, r7 + mov r0, sb + ands r0, r3 + orrs r0, r1 + strh r0, [r2, #4] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #1 + strh r1, [r0, #0x3c] + b _080731DE + .align 2, 0 +_0807318C: .4byte 0x0000FF88 +_08073190: .4byte 0x02022C90 +_08073194: .4byte 0x0000FFFF +_08073198: .4byte 0x020205AC +_0807319C: .4byte 0x000003FF +_080731A0: .4byte 0xFFFFFC00 +_080731A4: + cmp r0, #0 + bne _080731BC + ldrb r0, [r4] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r6 + ldrh r3, [r2, #4] + lsls r1, r3, #0x16 + lsrs r1, r1, #0x16 + adds r1, #3 + b _080731D4 +_080731BC: + ldr r0, [r5, #4] + cmp r0, #0 + beq _080731DE + ldrb r0, [r4] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r6 + ldrh r3, [r2, #4] + lsls r1, r3, #0x16 + lsrs r1, r1, #0x16 + adds r1, #2 +_080731D4: + ands r1, r7 + mov r0, sb + ands r0, r3 + orrs r0, r1 + strh r0, [r2, #4] +_080731DE: + adds r4, #1 + adds r5, #8 + movs r3, #1 + rsbs r3, r3, #0 + add r8, r3 + mov r0, r8 + cmp r0, #0 + bge _08073158 + b _08073496 +_080731F0: + movs r1, #5 + mov sl, r1 + movs r7, #0 + ldr r2, _08073244 + mov r8, r2 + ldr r3, _08073248 + mov sb, r3 + ldr r5, _0807324C + mov ip, r5 + ldr r6, [sp, #0xc] + mov r5, sp +_08073206: + ldrh r0, [r6] + ldr r1, _08073250 + cmp r0, r1 + bne _08073254 + mov r4, sp + add r4, sl + ldrb r0, [r4] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + add r2, r8 + ldrh r3, [r2, #4] + lsls r1, r3, #0x16 + lsrs r1, r1, #0x16 + adds r1, #1 + mov r0, sb + ands r1, r0 + mov r0, ip + ands r0, r3 + orrs r0, r1 + strh r0, [r2, #4] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + movs r1, #1 + strh r1, [r0, #0x3c] + subs r1, #2 + add sl, r1 + b _080732DA + .align 2, 0 +_08073244: .4byte 0x020205AC +_08073248: .4byte 0x000003FF +_0807324C: .4byte 0xFFFFFC00 +_08073250: .4byte 0x0000FFFF +_08073254: + cmp r0, #0 + bne _0807326C + ldrb r0, [r5] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + add r2, r8 + ldrh r3, [r2, #4] + lsls r1, r3, #0x16 + lsrs r1, r1, #0x16 + adds r1, #3 + b _080732CC +_0807326C: + ldr r1, _080732A8 + ldr r0, [r1] + movs r1, #0x80 + lsls r1, r1, #0xb + ands r0, r1 + cmp r0, #0 + beq _080732B4 + ldr r0, _080732AC + ldr r0, [r0] + movs r2, #0xa8 + lsls r2, r2, #2 + adds r0, r0, r2 + ldrb r1, [r0] + ldr r2, _080732B0 + lsls r0, r7, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _080732B4 + ldrb r0, [r5] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + add r2, r8 + ldrh r3, [r2, #4] + lsls r1, r3, #0x16 + lsrs r1, r1, #0x16 + adds r1, #3 + b _080732CC + .align 2, 0 +_080732A8: .4byte 0x02022C90 +_080732AC: .4byte 0x02024140 +_080732B0: .4byte 0x082FACB4 +_080732B4: + ldr r0, [r6, #4] + cmp r0, #0 + beq _080732D8 + ldrb r0, [r5] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + add r2, r8 + ldrh r3, [r2, #4] + lsls r1, r3, #0x16 + lsrs r1, r1, #0x16 + adds r1, #2 +_080732CC: + mov r0, sb + ands r1, r0 + mov r0, ip + ands r0, r3 + orrs r0, r1 + strh r0, [r2, #4] +_080732D8: + adds r5, #1 +_080732DA: + adds r6, #8 + adds r7, #1 + cmp r7, #5 + ble _08073206 + b _08073496 +_080732E4: + ldr r0, _0807333C + ldr r1, [r0] + ldr r2, _08073340 + ands r1, r2 + cmp r1, #0 + beq _080733A0 + ldr r1, _08073344 + mov sl, r1 + ldr r6, _08073348 + ldr r2, _0807334C + adds r7, r2, #0 + ldr r3, _08073350 + mov sb, r3 + ldr r5, [sp, #0xc] + mov r4, sp + adds r4, #5 + movs r0, #5 + mov r8, r0 +_08073308: + ldrh r0, [r5] + cmp r0, sl + bne _08073354 + ldrb r0, [r4] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r6 + ldrh r3, [r2, #4] + lsls r1, r3, #0x16 + lsrs r1, r1, #0x16 + adds r1, #1 + ands r1, r7 + mov r0, sb + ands r0, r3 + orrs r0, r1 + strh r0, [r2, #4] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #1 + strh r1, [r0, #0x3c] + b _0807338E + .align 2, 0 +_0807333C: .4byte 0x02022C90 +_08073340: .4byte 0x00008040 +_08073344: .4byte 0x0000FFFF +_08073348: .4byte 0x020205AC +_0807334C: .4byte 0x000003FF +_08073350: .4byte 0xFFFFFC00 +_08073354: + cmp r0, #0 + bne _0807336C + ldrb r0, [r4] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r6 + ldrh r3, [r2, #4] + lsls r1, r3, #0x16 + lsrs r1, r1, #0x16 + adds r1, #3 + b _08073384 +_0807336C: + ldr r0, [r5, #4] + cmp r0, #0 + beq _0807338E + ldrb r0, [r4] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r6 + ldrh r3, [r2, #4] + lsls r1, r3, #0x16 + lsrs r1, r1, #0x16 + adds r1, #2 +_08073384: + ands r1, r7 + mov r0, sb + ands r0, r3 + orrs r0, r1 + strh r0, [r2, #4] +_0807338E: + subs r4, #1 + adds r5, #8 + movs r1, #1 + rsbs r1, r1, #0 + add r8, r1 + mov r2, r8 + cmp r2, #0 + bge _08073308 + b _08073496 +_080733A0: + movs r3, #0 + mov r8, r3 + movs r7, #0 + ldr r5, _080733F4 + mov sb, r5 + ldr r6, _080733F8 + mov ip, r6 + ldr r0, _080733FC + mov sl, r0 + ldr r6, [sp, #0xc] + mov r5, sp + adds r5, #5 +_080733B8: + ldrh r0, [r6] + ldr r1, _08073400 + cmp r0, r1 + bne _08073404 + mov r4, sp + add r4, r8 + ldrb r0, [r4] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + add r2, sb + ldrh r3, [r2, #4] + lsls r1, r3, #0x16 + lsrs r1, r1, #0x16 + adds r1, #1 + mov r0, ip + ands r1, r0 + mov r0, sl + ands r0, r3 + orrs r0, r1 + strh r0, [r2, #4] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sb + movs r1, #1 + strh r1, [r0, #0x3c] + add r8, r1 + b _0807348E + .align 2, 0 +_080733F4: .4byte 0x020205AC +_080733F8: .4byte 0x000003FF +_080733FC: .4byte 0xFFFFFC00 +_08073400: .4byte 0x0000FFFF +_08073404: + cmp r0, #0 + bne _0807341C + ldrb r0, [r5] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + add r2, sb + ldrh r3, [r2, #4] + lsls r1, r3, #0x16 + lsrs r1, r1, #0x16 + adds r1, #3 + b _08073480 +_0807341C: + ldr r1, _08073458 + ldr r0, [r1] + movs r1, #0x80 + lsls r1, r1, #0xb + ands r0, r1 + cmp r0, #0 + beq _08073468 + ldr r2, _0807345C + ldr r0, [r2] + ldr r3, _08073460 + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r7, #2 + ldr r2, _08073464 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _08073468 + ldrb r0, [r5] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + add r2, sb + ldrh r3, [r2, #4] + lsls r1, r3, #0x16 + lsrs r1, r1, #0x16 + adds r1, #3 + b _08073480 + .align 2, 0 +_08073458: .4byte 0x02022C90 +_0807345C: .4byte 0x02024140 +_08073460: .4byte 0x000002A1 +_08073464: .4byte 0x082FACB4 +_08073468: + ldr r0, [r6, #4] + cmp r0, #0 + beq _0807348C + ldrb r0, [r5] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + add r2, sb + ldrh r3, [r2, #4] + lsls r1, r3, #0x16 + lsrs r1, r1, #0x16 + adds r1, #2 +_08073480: + mov r0, ip + ands r1, r0 + mov r0, sl + ands r0, r3 + orrs r0, r1 + strh r0, [r2, #4] +_0807348C: + subs r5, #1 +_0807348E: + adds r6, #8 + adds r7, #1 + cmp r7, #5 + ble _080733B8 +_08073496: + ldr r0, _08073520 + movs r1, #5 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r2, _08073524 + lsls r3, r4, #2 + adds r1, r3, r4 + lsls r1, r1, #3 + adds r0, r1, r2 + mov r5, sp + ldrh r5, [r5, #8] + strh r5, [r0, #8] + mov r6, sp + ldrh r6, [r6, #0x14] + strh r6, [r0, #0xa] + movs r0, #0 + mov r8, r0 + adds r0, r2, #0 + adds r0, #0xe + adds r1, r1, r0 +_080734C2: + mov r0, sp + add r0, r8 + ldrb r0, [r0] + strh r0, [r1] + adds r1, #2 + movs r5, #1 + add r8, r5 + mov r6, r8 + cmp r6, #5 + ble _080734C2 + adds r0, r3, r4 + lsls r0, r0, #3 + adds r0, r0, r2 + mov r1, sp + ldrh r1, [r1, #0x10] + strh r1, [r0, #0x1c] + ldr r2, [sp, #0x10] + cmp r2, #0 + beq _08073506 + ldr r0, _08073528 + ldr r0, [r0] + ldr r3, [r0, #8] + ldrb r2, [r3, #9] + lsls r1, r2, #0x1b + lsrs r1, r1, #0x1d + adds r1, #1 + movs r0, #7 + ands r1, r0 + lsls r1, r1, #2 + movs r0, #0x1d + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #9] +_08073506: + movs r0, #0x72 + movs r1, #0 + bl PlaySE12WithPanning + adds r0, r4, #0 + add sp, #0x24 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08073520: .4byte 0x080A8A41 +_08073524: .4byte 0x03005B60 +_08073528: .4byte 0x02024174 + thumb_func_end CreatePartyStatusSummarySprites + + thumb_func_start Task_HidePartyStatusSummary +Task_HidePartyStatusSummary: @ 0x0807352C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r2, _0807363C + lsls r3, r0, #2 + adds r1, r3, r0 + lsls r1, r1, #3 + adds r0, r1, r2 + ldrb r7, [r0, #0x1c] + ldrb r4, [r0, #0xa] + mov sl, r4 + ldrb r0, [r0, #8] + str r0, [sp, #8] + movs r5, #0 + str r3, [sp, #0xc] + adds r2, #0xe + adds r2, r1, r2 +_0807355A: + mov r0, sp + adds r1, r0, r5 + ldrh r0, [r2] + strb r0, [r1] + adds r2, #2 + adds r5, #1 + cmp r5, #5 + ble _0807355A + movs r1, #0xfd + lsls r1, r1, #6 + movs r0, #0x50 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0x10 + bl SetGpuReg + ldr r1, _0807363C + ldr r0, [sp, #0xc] + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0x10 + strh r1, [r0, #0x26] + movs r5, #0 + mov r1, sl + lsls r1, r1, #4 + str r1, [sp, #0x10] + ldr r3, _08073640 + movs r6, #0xd + rsbs r6, r6, #0 + mov ip, r3 + movs r4, #4 +_0807359C: + mov r2, sp + adds r0, r2, r5 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrb r2, [r1, #1] + adds r0, r6, #0 + ands r0, r2 + orrs r0, r4 + strb r0, [r1, #1] + adds r5, #1 + cmp r5, #5 + ble _0807359C + ldr r2, [sp, #0x10] + add r2, sl + lsls r2, r2, #2 + add r2, ip + ldrb r1, [r2, #1] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #1] + cmp r7, #0 + bne _080735D6 + b _080736DC +_080735D6: + movs r5, #0 + mov r6, ip + mov sb, r5 + adds r3, r6, #0 + adds r3, #0x1c + mov r4, sp + movs r7, #0 +_080735E4: + ldr r0, [sp, #8] + str r3, [sp, #0x14] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r3, [sp, #0x14] + cmp r2, #0 + beq _08073648 + movs r0, #5 + subs r0, r0, r5 + mov r1, sp + adds r2, r1, r0 + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + strh r7, [r0, #0x30] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + mov r1, sb + strh r1, [r0, #0x34] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + mov r1, sb + strh r1, [r0, #0x36] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldr r1, _08073644 + str r1, [r0] + ldr r2, _08073640 + mov ip, r2 + b _0807367E + .align 2, 0 +_0807363C: .4byte 0x03005B60 +_08073640: .4byte 0x020205AC +_08073644: .4byte 0x08073A55 +_08073648: + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + strh r7, [r0, #0x30] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + strh r2, [r0, #0x34] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + strh r2, [r0, #0x36] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldr r1, _080736C4 + str r1, [r0] + ldr r0, _080736C8 + mov ip, r0 +_0807367E: + adds r4, #1 + adds r7, #7 + adds r5, #1 + cmp r5, #5 + ble _080735E4 + ldr r3, [sp, #0x10] + add r3, sl + lsls r3, r3, #2 + mov r1, ip + adds r0, r3, r1 + movs r2, #0x2e + ldrsh r1, [r0, r2] + lsrs r2, r1, #0x1f + adds r1, r1, r2 + asrs r1, r1, #1 + movs r2, #0 + strh r1, [r0, #0x2e] + strh r2, [r0, #0x30] + mov r1, ip + adds r1, #0x1c + adds r3, r3, r1 + ldr r1, _080736CC + str r1, [r3] + ldr r1, _080736D0 + bl SetSubspriteTables + ldr r1, _080736D4 + ldr r0, [sp, #0xc] + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080736D8 + str r1, [r0] + b _080736EA + .align 2, 0 +_080736C4: .4byte 0x08073A55 +_080736C8: .4byte 0x020205AC +_080736CC: .4byte 0x0807398D +_080736D0: .4byte 0x082FCCC4 +_080736D4: .4byte 0x03005B60 +_080736D8: .4byte 0x08073705 +_080736DC: + ldr r0, _080736FC + ldr r1, [sp, #0xc] + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _08073700 + str r0, [r1] +_080736EA: + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080736FC: .4byte 0x03005B60 +_08073700: .4byte 0x08073895 + thumb_func_end Task_HidePartyStatusSummary + + thumb_func_start sub_08073704 +sub_08073704: @ 0x08073704 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08073758 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 + ldrh r0, [r4, #0x1e] + adds r1, r0, #1 + strh r1, [r4, #0x1e] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08073744 + ldrh r0, [r4, #0x26] + subs r1, r0, #1 + strh r1, [r4, #0x26] + lsls r0, r1, #0x10 + cmp r0, #0 + blt _08073750 + movs r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg +_08073744: + movs r1, #0x26 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08073750 + ldr r0, _0807375C + str r0, [r4] +_08073750: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08073758: .4byte 0x03005B60 +_0807375C: .4byte 0x08073761 + thumb_func_end sub_08073704 + + thumb_func_start sub_08073760 +sub_08073760: @ 0x08073760 + push {r4, r5, r6, r7, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r7, _080737EC + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r3, r0, #3 + adds r4, r3, r7 + ldrb r2, [r4, #8] + ldrh r0, [r4, #0x26] + subs r0, #1 + strh r0, [r4, #0x26] + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _08073850 + ldrb r5, [r4, #0xa] + movs r4, #0 + ldr r6, _080737F0 + adds r0, r7, #0 + adds r0, #0xe + adds r2, r3, r0 +_08073792: + mov r0, sp + adds r1, r0, r4 + ldrh r0, [r2] + strb r0, [r1] + adds r2, #2 + adds r4, #1 + cmp r4, #5 + ble _08073792 + ldr r0, [r6] + ldr r3, [r0, #8] + ldrb r2, [r3, #9] + lsls r1, r2, #0x1b + lsrs r1, r1, #0x1d + subs r1, #1 + movs r0, #7 + ands r1, r0 + lsls r1, r1, #2 + movs r0, #0x1d + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #9] + ldr r0, [r6] + ldr r0, [r0, #8] + ldrb r1, [r0, #9] + movs r0, #0x1c + ands r0, r1 + cmp r0, #0 + bne _080737F8 + lsls r0, r5, #4 + adds r0, r0, r5 + lsls r0, r0, #2 + ldr r4, _080737F4 + adds r0, r0, r4 + bl DestroySpriteAndFreeResources + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySpriteAndFreeResources + b _0807382E + .align 2, 0 +_080737EC: .4byte 0x03005B60 +_080737F0: .4byte 0x02024174 +_080737F4: .4byte 0x020205AC +_080737F8: + lsls r4, r5, #4 + adds r4, r4, r5 + lsls r4, r4, #2 + ldr r5, _0807384C + adds r4, r4, r5 + adds r0, r4, #0 + bl FreeSpriteOamMatrix + adds r0, r4, #0 + bl DestroySprite + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + bl FreeSpriteOamMatrix + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + bl DestroySprite +_0807382E: + movs r4, #1 + ldr r5, _0807384C +_08073832: + mov r1, sp + adds r0, r1, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + bl DestroySprite + adds r4, #1 + cmp r4, #5 + ble _08073832 + b _08073886 + .align 2, 0 +_0807384C: .4byte 0x020205AC +_08073850: + movs r0, #3 + rsbs r0, r0, #0 + cmp r1, r0 + bne _08073886 + ldr r0, _08073890 + ldr r0, [r0] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + adds r0, r5, #0 + bl DestroyTask +_08073886: + add sp, #8 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08073890: .4byte 0x02024174 + thumb_func_end sub_08073760 + + thumb_func_start sub_08073894 +sub_08073894: @ 0x08073894 + push {r4, r5, r6, r7, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r4, r0, #0 + ldr r7, _080738CC + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r6, r0, #3 + adds r3, r6, r7 + ldrb r5, [r3, #8] + ldrh r0, [r3, #0x26] + subs r1, r0, #1 + strh r1, [r3, #0x26] + lsls r0, r1, #0x10 + asrs r2, r0, #0x10 + cmp r2, #0 + blt _080738D0 + movs r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + b _08073966 + .align 2, 0 +_080738CC: .4byte 0x03005B60 +_080738D0: + movs r0, #1 + rsbs r0, r0, #0 + cmp r2, r0 + bne _08073930 + ldrb r3, [r3, #0xa] + movs r5, #0 + adds r0, r7, #0 + adds r0, #0xe + adds r2, r6, r0 +_080738E2: + mov r0, sp + adds r1, r0, r5 + ldrh r0, [r2] + strb r0, [r1] + adds r2, #2 + adds r5, #1 + cmp r5, #5 + ble _080738E2 + lsls r0, r3, #4 + adds r0, r0, r3 + lsls r0, r0, #2 + ldr r4, _0807392C + adds r0, r0, r4 + bl DestroySpriteAndFreeResources + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySpriteAndFreeResources + movs r5, #1 +_08073912: + mov r1, sp + adds r0, r1, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + adds r5, #1 + cmp r5, #5 + ble _08073912 + b _08073966 + .align 2, 0 +_0807392C: .4byte 0x020205AC +_08073930: + movs r0, #3 + rsbs r0, r0, #0 + cmp r2, r0 + bne _08073966 + ldr r0, _08073970 + ldr r0, [r0] + ldr r0, [r0, #4] + lsls r1, r5, #1 + adds r1, r1, r5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + adds r0, r4, #0 + bl DestroyTask +_08073966: + add sp, #8 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08073970: .4byte 0x02024174 + thumb_func_end sub_08073894 + + thumb_func_start SpriteCB_StatusSummaryBar +SpriteCB_StatusSummaryBar: @ 0x08073974 + push {lr} + adds r1, r0, #0 + ldrh r2, [r1, #0x24] + movs r3, #0x24 + ldrsh r0, [r1, r3] + cmp r0, #0 + beq _08073988 + ldrh r0, [r1, #0x2e] + adds r0, r2, r0 + strh r0, [r1, #0x24] +_08073988: + pop {r0} + bx r0 + thumb_func_end SpriteCB_StatusSummaryBar + + thumb_func_start sub_0807398C +sub_0807398C: @ 0x0807398C + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x30] + adds r1, r0, #0 + adds r1, #0x20 + strh r1, [r2, #0x30] + movs r3, #0x2e + ldrsh r0, [r2, r3] + cmp r0, #0 + ble _080739AA + lsls r0, r1, #0x10 + asrs r0, r0, #0x14 + ldrh r1, [r2, #0x24] + adds r0, r0, r1 + b _080739B2 +_080739AA: + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + ldrh r0, [r2, #0x24] + subs r0, r0, r1 +_080739B2: + strh r0, [r2, #0x24] + ldrh r1, [r2, #0x30] + movs r0, #0xf + ands r0, r1 + strh r0, [r2, #0x30] + pop {r0} + bx r0 + thumb_func_end sub_0807398C + + thumb_func_start SpriteCB_StatusSummaryBallsOnBattleStart +SpriteCB_StatusSummaryBallsOnBattleStart: @ 0x080739C0 + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x30] + movs r2, #0x30 + ldrsh r0, [r4, r2] + cmp r0, #0 + ble _080739D4 + subs r0, r1, #1 + strh r0, [r4, #0x30] + b _08073A4A +_080739D4: + ldrh r0, [r4, #0x32] + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldrh r2, [r4, #0x34] + adds r0, r2, #0 + adds r0, #0x38 + lsls r1, r0, #0x10 + lsrs r2, r1, #0x10 + ldr r0, _08073A04 + ands r2, r0 + strh r2, [r4, #0x34] + cmp r3, #0 + beq _08073A08 + lsrs r0, r1, #0x14 + ldrh r1, [r4, #0x24] + adds r0, r0, r1 + strh r0, [r4, #0x24] + lsls r0, r0, #0x10 + cmp r0, #0 + ble _08073A18 + movs r0, #0 + strh r0, [r4, #0x24] + b _08073A18 + .align 2, 0 +_08073A04: .4byte 0x0000FFF0 +_08073A08: + lsrs r1, r1, #0x14 + ldrh r0, [r4, #0x24] + subs r0, r0, r1 + strh r0, [r4, #0x24] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _08073A18 + strh r3, [r4, #0x24] +_08073A18: + movs r2, #0x24 + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _08073A4A + movs r1, #0x3f + cmp r3, #0 + beq _08073A28 + movs r1, #0xc0 +_08073A28: + movs r2, #0x3c + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _08073A3C + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r0, #0x74 + bl PlaySE2WithPanning + b _08073A46 +_08073A3C: + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r0, #0x73 + bl PlaySE1WithPanning +_08073A46: + ldr r0, _08073A50 + str r0, [r4, #0x1c] +_08073A4A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08073A50: .4byte 0x08007141 + thumb_func_end SpriteCB_StatusSummaryBallsOnBattleStart + + thumb_func_start sub_08073A54 +sub_08073A54: @ 0x08073A54 + push {r4, lr} + adds r3, r0, #0 + ldrh r1, [r3, #0x30] + movs r2, #0x30 + ldrsh r0, [r3, r2] + cmp r0, #0 + ble _08073A68 + subs r0, r1, #1 + strh r0, [r3, #0x30] + b _08073AB8 +_08073A68: + ldrh r0, [r3, #0x32] + lsls r0, r0, #0x18 + ldrh r2, [r3, #0x34] + adds r1, r2, #0 + adds r1, #0x38 + lsls r4, r1, #0x10 + lsrs r2, r4, #0x10 + ldr r1, _08073A88 + ands r2, r1 + strh r2, [r3, #0x34] + cmp r0, #0 + beq _08073A8C + lsrs r0, r4, #0x14 + ldrh r1, [r3, #0x24] + adds r0, r0, r1 + b _08073A92 + .align 2, 0 +_08073A88: .4byte 0x0000FFF0 +_08073A8C: + lsrs r1, r4, #0x14 + ldrh r0, [r3, #0x24] + subs r0, r0, r1 +_08073A92: + strh r0, [r3, #0x24] + movs r2, #0x24 + ldrsh r0, [r3, r2] + movs r2, #0x20 + ldrsh r1, [r3, r2] + adds r0, r0, r1 + adds r0, #8 + movs r1, #0x80 + lsls r1, r1, #1 + cmp r0, r1 + bls _08073AB8 + adds r2, r3, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08073AC0 + str r0, [r3, #0x1c] +_08073AB8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08073AC0: .4byte 0x08007141 + thumb_func_end sub_08073A54 + + thumb_func_start SpriteCB_StatusSummaryBallsOnSwitchout +SpriteCB_StatusSummaryBallsOnSwitchout: @ 0x08073AC4 + ldrh r2, [r0, #0x2e] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r3, _08073AE0 + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrh r2, [r1, #0x24] + strh r2, [r0, #0x24] + ldrh r1, [r1, #0x26] + strh r1, [r0, #0x26] + bx lr + .align 2, 0 +_08073AE0: .4byte 0x020205AC + thumb_func_end SpriteCB_StatusSummaryBallsOnSwitchout + + thumb_func_start UpdateNickInHealthbox +UpdateNickInHealthbox: @ 0x08073AE4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + movs r0, #0 + str r0, [sp, #0xc] + ldr r5, _08073B64 + ldr r1, _08073B68 + adds r0, r5, #0 + bl StringCopy + adds r0, r4, #0 + movs r1, #2 + mov r2, sp + bl GetMonData + mov r0, sp + bl StringGetEnd10 + adds r0, r5, #0 + mov r1, sp + bl StringAppend + adds r7, r0, #0 + adds r0, r4, #0 + bl GetMonGender + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r2, r0, #0 + cmp r0, #0x1d + beq _08073B40 + cmp r0, #0x20 + bne _08073B56 +_08073B40: + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r0, _08073B6C + adds r1, r1, r0 + mov r0, sp + bl StringCompare + cmp r0, #0 + bne _08073B56 + movs r5, #0x64 +_08073B56: + cmp r5, #0 + beq _08073B74 + cmp r5, #0xfe + beq _08073B7C + ldr r1, _08073B70 + b _08073B7E + .align 2, 0 +_08073B64: .4byte 0x02022AE0 +_08073B68: .4byte 0x085CC4EA +_08073B6C: .4byte 0x082EA31C +_08073B70: .4byte 0x085CC4FA +_08073B74: + ldr r1, _08073B78 + b _08073B7E + .align 2, 0 +_08073B78: .4byte 0x085CC4F0 +_08073B7C: + ldr r1, _08073C20 +_08073B7E: + adds r0, r7, #0 + bl StringCopy + ldr r1, _08073C24 + mov r2, sl + lsls r5, r2, #4 + adds r0, r5, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0, #0x3a] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerPosition + ldr r1, _08073C28 + ldr r2, [r1] + movs r1, #0xba + lsls r1, r1, #1 + adds r2, r2, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #7 + movs r0, #0xa4 + lsls r0, r0, #3 + adds r1, r1, r0 + ldr r0, [r2] + adds r7, r0, r1 + ldr r4, _08073C2C + adds r0, r4, #0 + bl StringLength + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + mov r6, r8 + subs r6, #6 + movs r1, #0 + mov sb, r1 + mov r2, r8 + adds r0, r2, r4 + movs r2, #6 + subs r2, r2, r6 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + bl StringFill + adds r0, r4, #0 + bl StringLength + lsls r0, r0, #0x10 + ldr r1, _08073C30 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + mov r8, r0 + adds r0, r7, #0 + movs r1, #7 + adds r2, r4, #0 + bl RenderTextFont9 + movs r6, #3 + cmp sb, r8 + bhs _08073C72 +_08073BFE: + ldr r0, _08073C2C + adds r0, r6, r0 + ldrb r1, [r0] + adds r0, r1, #0 + subs r0, #0x37 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x13 + bls _08073C1C + adds r0, r1, #0 + adds r0, #0x79 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x13 + bhi _08073C34 +_08073C1C: + movs r0, #0x2c + b _08073C52 + .align 2, 0 +_08073C20: .4byte 0x085CC4F5 +_08073C24: .4byte 0x020205AC +_08073C28: .4byte 0x02024178 +_08073C2C: .4byte 0x02022AE0 +_08073C30: .4byte 0xFFFA0000 +_08073C34: + adds r0, r1, #0 + subs r0, #0x4b + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bls _08073C4C + adds r0, r1, #0 + adds r0, #0x65 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _08073C50 +_08073C4C: + movs r0, #0x2d + b _08073C52 +_08073C50: + movs r0, #0x2b +_08073C52: + bl GetHealthboxElementGfxPtr + mov r2, sb + lsls r1, r2, #6 + adds r1, r7, r1 + ldr r2, _08073CE8 + bl CpuSet + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + adds r6, #1 + cmp sb, r8 + blo _08073BFE +_08073C72: + ldr r1, _08073CEC + mov r2, sl + adds r0, r5, r2 + lsls r0, r0, #2 + adds r4, r0, r1 + ldrh r0, [r4, #0x3a] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08073CF4 + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08073CF4 + movs r6, #0 + cmp r6, r8 + bge _08073D64 + ldr r0, _08073CF0 + mov sb, r0 + ldr r5, _08073CE8 +_08073CA2: + ldrh r0, [r4, #4] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + adds r1, r6, #2 + adds r0, r0, r1 + ldr r1, [sp, #0xc] + adds r0, r0, r1 + lsls r0, r0, #5 + mov r2, sb + adds r1, r0, r2 + adds r0, r7, #0 + adds r2, r5, #0 + bl CpuSet + adds r7, #0x20 + ldrh r0, [r4, #4] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + adds r1, r6, #0 + adds r1, #0xa + adds r0, r0, r1 + ldr r1, [sp, #0xc] + adds r0, r0, r1 + lsls r0, r0, #5 + mov r2, sb + adds r1, r0, r2 + adds r0, r7, #0 + adds r2, r5, #0 + bl CpuSet + adds r7, #0x20 + adds r6, #1 + cmp r6, r8 + blt _08073CA2 + b _08073D64 + .align 2, 0 +_08073CE8: .4byte 0x04000008 +_08073CEC: .4byte 0x020205AC +_08073CF0: .4byte 0x06010000 +_08073CF4: + ldr r1, _08073D74 + mov r2, sl + adds r0, r5, r2 + lsls r0, r0, #2 + adds r5, r0, r1 + ldrh r0, [r5, #0x3a] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08073D12 + movs r0, #1 + str r0, [sp, #0xc] +_08073D12: + movs r6, #0 + cmp r6, r8 + bge _08073D64 + ldr r1, _08073D78 + mov sl, r1 + ldr r2, _08073D7C + mov sb, r2 +_08073D20: + ldrh r0, [r5, #4] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + adds r4, r6, #1 + adds r0, r0, r4 + ldr r1, [sp, #0xc] + adds r0, r0, r1 + lsls r0, r0, #5 + mov r2, sl + adds r1, r0, r2 + adds r0, r7, #0 + mov r2, sb + bl CpuSet + adds r7, #0x20 + ldrh r0, [r5, #4] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + adds r1, r6, #0 + adds r1, #9 + adds r0, r0, r1 + ldr r1, [sp, #0xc] + adds r0, r0, r1 + lsls r0, r0, #5 + mov r2, sl + adds r1, r0, r2 + adds r0, r7, #0 + mov r2, sb + bl CpuSet + adds r7, #0x20 + adds r6, r4, #0 + cmp r6, r8 + blt _08073D20 +_08073D64: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08073D74: .4byte 0x020205AC +_08073D78: .4byte 0x06010000 +_08073D7C: .4byte 0x04000008 + thumb_func_end UpdateNickInHealthbox + + thumb_func_start TryAddPokeballIconToHealthbox +TryAddPokeballIconToHealthbox: @ 0x08073D80 + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + ldr r0, _08073E1C + ldr r1, [r0] + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08073E56 + movs r0, #8 + ands r1, r0 + cmp r1, #0 + bne _08073E56 + ldr r6, _08073E20 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r5, r0, r6 + ldrh r0, [r5, #0x3a] + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08073E56 + ldr r1, _08073E24 + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08073E28 + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + bl GetSetPokedexFlag + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08073E56 + ldrh r0, [r5, #0x38] + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r7, #0 + beq _08073E34 + movs r0, #0x46 + bl GetHealthboxElementGfxPtr + lsls r1, r4, #4 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrh r1, [r1, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x11 + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r1, r2 + ldr r2, _08073E2C + adds r1, r1, r2 + ldr r2, _08073E30 + bl CpuSet + b _08073E56 + .align 2, 0 +_08073E1C: .4byte 0x02022C90 +_08073E20: .4byte 0x020205AC +_08073E24: .4byte 0x02023D12 +_08073E28: .4byte 0x020243E8 +_08073E2C: .4byte 0x06010000 +_08073E30: .4byte 0x04000008 +_08073E34: + str r7, [sp] + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrh r1, [r0, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x11 + movs r0, #0x80 + lsls r0, r0, #1 + adds r1, r1, r0 + ldr r0, _08073E60 + adds r1, r1, r0 + ldr r2, _08073E64 + mov r0, sp + bl CpuSet +_08073E56: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08073E60: .4byte 0x06010000 +_08073E64: .4byte 0x05000008 + thumb_func_end TryAddPokeballIconToHealthbox + + thumb_func_start UpdateStatusIconInHealthbox +UpdateStatusIconInHealthbox: @ 0x08073E68 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldr r0, _08073ECC + mov r2, sb + lsls r1, r2, #4 + add r1, sb + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r0, [r1, #0x3a] + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldrh r0, [r1, #0x38] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + adds r0, r7, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08073ED8 + ldr r1, _08073ED0 + lsls r0, r7, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08073ED4 + adds r0, r0, r1 + movs r1, #0x37 + bl GetMonData + adds r4, r0, #0 + bl IsDoubleBattle + lsls r0, r0, #0x18 + movs r3, #0x12 + mov r8, r3 + cmp r0, #0 + bne _08073EF4 + movs r0, #0x1a + mov r8, r0 + b _08073EF4 + .align 2, 0 +_08073ECC: .4byte 0x020205AC +_08073ED0: .4byte 0x02023D12 +_08073ED4: .4byte 0x02024190 +_08073ED8: + ldr r1, _08073F14 + lsls r0, r7, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08073F18 + adds r0, r0, r1 + movs r1, #0x37 + bl GetMonData + adds r4, r0, #0 + movs r1, #0x11 + mov r8, r1 +_08073EF4: + movs r0, #7 + ands r0, r4 + cmp r0, #0 + beq _08073F1C + movs r0, #0x1b + adds r1, r7, #0 + bl GetStatusIconForBattlerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetHealthboxElementGfxPtr + adds r6, r0, #0 + movs r0, #2 + b _08074028 + .align 2, 0 +_08073F14: .4byte 0x02023D12 +_08073F18: .4byte 0x020243E8 +_08073F1C: + movs r0, #0x88 + ands r0, r4 + cmp r0, #0 + beq _08073F3A + movs r0, #0x15 + adds r1, r7, #0 + bl GetStatusIconForBattlerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetHealthboxElementGfxPtr + adds r6, r0, #0 + movs r0, #0 + b _08074028 +_08073F3A: + movs r0, #0x10 + ands r0, r4 + cmp r0, #0 + beq _08073F58 + movs r0, #0x21 + adds r1, r7, #0 + bl GetStatusIconForBattlerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetHealthboxElementGfxPtr + adds r6, r0, #0 + movs r0, #4 + b _08074028 +_08073F58: + movs r0, #0x20 + ands r0, r4 + cmp r0, #0 + beq _08073F76 + movs r0, #0x1e + adds r1, r7, #0 + bl GetStatusIconForBattlerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetHealthboxElementGfxPtr + adds r6, r0, #0 + movs r0, #3 + b _08074028 +_08073F76: + movs r0, #0x40 + ands r0, r4 + cmp r0, #0 + beq _08073F94 + movs r0, #0x18 + adds r1, r7, #0 + bl GetStatusIconForBattlerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetHealthboxElementGfxPtr + adds r6, r0, #0 + movs r0, #1 + b _08074028 +_08073F94: + movs r0, #0x27 + bl GetHealthboxElementGfxPtr + adds r6, r0, #0 + movs r4, #0 + mov r2, sb + lsls r0, r2, #4 + mov r3, r8 + lsls r3, r3, #0x10 + mov r8, r3 + lsls r7, r7, #2 + ldr r1, _08074014 + add r0, sb + lsls r0, r0, #2 + adds r5, r0, r1 +_08073FB2: + ldrh r1, [r5, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x16 + mov r2, r8 + asrs r0, r2, #0x10 + adds r1, r1, r0 + adds r1, r1, r4 + lsls r1, r1, #5 + ldr r3, _08074018 + adds r1, r1, r3 + adds r0, r6, #0 + ldr r2, _0807401C + bl CpuSet + adds r4, #1 + cmp r4, #2 + ble _08073FB2 + ldr r0, _08074020 + ldr r0, [r0] + ldr r0, [r0] + adds r0, r7, r0 + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _08074008 + movs r0, #1 + bl GetHealthboxElementGfxPtr + ldr r2, _08074014 + mov r3, sl + lsls r1, r3, #4 + add r1, sl + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r1, [r1, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x11 + ldr r2, _08074018 + adds r1, r1, r2 + ldr r2, _08074024 + bl CpuSet +_08074008: + mov r0, sb + movs r1, #1 + bl TryAddPokeballIconToHealthbox + b _080740EA + .align 2, 0 +_08074014: .4byte 0x020205AC +_08074018: .4byte 0x06010000 +_0807401C: .4byte 0x04000008 +_08074020: .4byte 0x02024174 +_08074024: .4byte 0x04000010 +_08074028: + mov r1, sb + lsls r5, r1, #4 + add r5, sb + lsls r5, r5, #2 + ldr r2, _080740F8 + adds r5, r5, r2 + ldrb r4, [r5, #5] + lsrs r4, r4, #4 + lsls r4, r4, #4 + adds r4, #0xc + adds r4, r4, r7 + ldr r1, _080740FC + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + movs r3, #0x80 + lsls r3, r3, #1 + adds r1, r4, r3 + movs r2, #2 + bl FillPalette + lsls r4, r4, #1 + ldr r0, _08074100 + adds r0, r4, r0 + ldr r1, _08074104 + adds r4, r4, r1 + adds r1, r4, #0 + movs r2, #1 + bl CpuSet + ldrh r1, [r5, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x16 + add r1, r8 + lsls r1, r1, #5 + ldr r2, _08074108 + mov r8, r2 + add r1, r8 + ldr r2, _0807410C + adds r0, r6, #0 + bl CpuSet + bl IsDoubleBattle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08074096 + adds r0, r7, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080740E2 +_08074096: + ldr r0, _08074110 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r7, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _080740E2 + movs r0, #0 + bl GetHealthboxElementGfxPtr + mov r3, sl + lsls r4, r3, #4 + add r4, sl + lsls r4, r4, #2 + ldr r1, _080740F8 + adds r4, r4, r1 + ldrh r1, [r4, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x11 + add r1, r8 + ldr r5, _08074114 + adds r2, r5, #0 + bl CpuSet + movs r0, #0x41 + bl GetHealthboxElementGfxPtr + ldrh r1, [r4, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x11 + adds r1, #0x20 + add r1, r8 + adds r2, r5, #0 + bl CpuSet +_080740E2: + mov r0, sb + movs r1, #0 + bl TryAddPokeballIconToHealthbox +_080740EA: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080740F8: .4byte 0x020205AC +_080740FC: .4byte 0x082FCE02 +_08074100: .4byte 0x020375B4 +_08074104: .4byte 0x05000200 +_08074108: .4byte 0x06010000 +_0807410C: .4byte 0x04000018 +_08074110: .4byte 0x02024174 +_08074114: .4byte 0x04000008 + thumb_func_end UpdateStatusIconInHealthbox + + thumb_func_start GetStatusIconForBattlerId +GetStatusIconForBattlerId: @ 0x08074118 + push {lr} + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + lsrs r2, r0, #0x18 + adds r0, r2, #0 + subs r0, #0x15 + cmp r0, #0xc + bhi _080741D8 + lsls r0, r0, #2 + ldr r1, _08074134 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08074134: .4byte 0x08074138 +_08074138: @ jump table + .4byte _0807416C @ case 0 + .4byte _080741D8 @ case 1 + .4byte _080741D8 @ case 2 + .4byte _08074182 @ case 3 + .4byte _080741D8 @ case 4 + .4byte _080741D8 @ case 5 + .4byte _08074198 @ case 6 + .4byte _080741D8 @ case 7 + .4byte _080741D8 @ case 8 + .4byte _080741AE @ case 9 + .4byte _080741D8 @ case 10 + .4byte _080741D8 @ case 11 + .4byte _080741C4 @ case 12 +_0807416C: + movs r2, #0x15 + cmp r3, #0 + beq _080741D8 + movs r2, #0x47 + cmp r3, #1 + beq _080741D8 + movs r2, #0x65 + cmp r3, #2 + bne _080741D8 + movs r2, #0x56 + b _080741D8 +_08074182: + movs r2, #0x18 + cmp r3, #0 + beq _080741D8 + movs r2, #0x4a + cmp r3, #1 + beq _080741D8 + movs r2, #0x68 + cmp r3, #2 + bne _080741D8 + movs r2, #0x59 + b _080741D8 +_08074198: + movs r2, #0x1b + cmp r3, #0 + beq _080741D8 + movs r2, #0x4d + cmp r3, #1 + beq _080741D8 + movs r2, #0x6b + cmp r3, #2 + bne _080741D8 + movs r2, #0x5c + b _080741D8 +_080741AE: + movs r2, #0x1e + cmp r3, #0 + beq _080741D8 + movs r2, #0x50 + cmp r3, #1 + beq _080741D8 + movs r2, #0x6e + cmp r3, #2 + bne _080741D8 + movs r2, #0x5f + b _080741D8 +_080741C4: + movs r2, #0x21 + cmp r3, #0 + beq _080741D8 + movs r2, #0x53 + cmp r3, #1 + beq _080741D8 + movs r2, #0x71 + cmp r3, #2 + bne _080741D8 + movs r2, #0x62 +_080741D8: + adds r0, r2, #0 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetStatusIconForBattlerId + + thumb_func_start AddTextPrinterAndCreateWindowOnHealthbox +AddTextPrinterAndCreateWindowOnHealthbox: @ 0x080741E0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _08074254 + lsls r0, r5, #4 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0, #0x3a] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerPosition + ldr r1, _08074258 + ldr r2, [r1] + movs r1, #0xba + lsls r1, r1, #1 + adds r2, r2, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #7 + movs r0, #0xa4 + lsls r0, r0, #3 + adds r1, r1, r0 + ldr r0, [r2] + adds r6, r0, r1 + movs r1, #7 + mov r8, r1 + ldr r2, _0807425C + adds r0, r6, #0 + bl RenderTextFont9 + movs r7, #3 + movs r4, #0 +_08074230: + ldr r0, _0807425C + adds r0, r7, r0 + ldrb r1, [r0] + adds r0, r1, #0 + subs r0, #0x37 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x13 + bls _0807424E + adds r0, r1, #0 + adds r0, #0x79 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x13 + bhi _08074260 +_0807424E: + movs r0, #0x2c + b _0807427E + .align 2, 0 +_08074254: .4byte 0x020205AC +_08074258: .4byte 0x02024178 +_0807425C: .4byte 0x085ABC38 +_08074260: + adds r0, r1, #0 + subs r0, #0x4b + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bls _08074278 + adds r0, r1, #0 + adds r0, #0x65 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _0807427C +_08074278: + movs r0, #0x2d + b _0807427E +_0807427C: + movs r0, #0x2b +_0807427E: + bl GetHealthboxElementGfxPtr + lsls r1, r4, #6 + adds r1, r6, r1 + ldr r2, _08074314 + bl CpuSet + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r7, #1 + cmp r4, r8 + blo _08074230 + movs r7, #3 + movs r2, #3 + add r2, r8 + mov sb, r2 + cmp r7, sb + bge _08074304 + ldr r1, _08074318 + ldr r0, _08074314 + mov sl, r0 + lsls r0, r5, #4 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + mov r8, r0 +_080742B4: + mov r1, r8 + ldrh r0, [r1, #4] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + adds r5, r7, #0 + cmp r7, #0 + bge _080742C4 + adds r5, r7, #7 +_080742C4: + asrs r5, r5, #3 + lsls r4, r5, #3 + subs r4, r7, r4 + adds r0, r0, r4 + lsls r5, r5, #6 + adds r0, r0, r5 + lsls r0, r0, #5 + ldr r2, _0807431C + adds r1, r0, r2 + adds r0, r6, #0 + mov r2, sl + bl CpuSet + adds r6, #0x20 + mov r1, r8 + ldrh r0, [r1, #4] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + adds r4, #8 + adds r0, r0, r4 + adds r0, r0, r5 + lsls r0, r0, #5 + ldr r2, _0807431C + adds r1, r0, r2 + adds r0, r6, #0 + mov r2, sl + bl CpuSet + adds r6, #0x20 + adds r7, #1 + cmp r7, sb + blt _080742B4 +_08074304: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08074314: .4byte 0x04000008 +_08074318: .4byte 0x020205AC +_0807431C: .4byte 0x06010000 + thumb_func_end AddTextPrinterAndCreateWindowOnHealthbox + + thumb_func_start sub_08074320 +sub_08074320: @ 0x08074320 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _080743D0 + mov r8, r0 + ldr r1, _080743D4 + bl StringCopy + adds r7, r0, #0 + ldr r0, _080743D8 + ldrb r1, [r0] + adds r0, r7, #0 + movs r2, #1 + movs r3, #2 + bl ConvertIntToDecimalStringN + adds r7, r0, #0 + ldr r1, _080743DC + bl StringAppend + ldr r0, _080743E0 + lsls r4, r5, #4 + adds r4, r4, r5 + lsls r4, r4, #2 + adds r4, r4, r0 + ldrh r0, [r4, #0x3a] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerPosition + ldr r1, _080743E4 + ldr r2, [r1] + movs r1, #0xba + lsls r1, r1, #1 + adds r2, r2, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #7 + movs r0, #0xa4 + lsls r0, r0, #3 + adds r1, r1, r0 + ldr r0, [r2] + adds r7, r0, r1 + movs r6, #7 + adds r0, r7, #0 + movs r1, #7 + mov r2, r8 + bl RenderTextFont9 + adds r7, #0x20 + movs r5, #4 +_08074390: + ldrh r0, [r4, #4] + lsls r0, r0, #0x16 + lsrs r2, r0, #0x16 + adds r0, r5, #0 + cmp r5, #0 + bge _0807439E + adds r0, r5, #7 +_0807439E: + asrs r0, r0, #3 + lsls r1, r0, #3 + subs r1, r5, r1 + adds r1, #0x18 + adds r1, r2, r1 + lsls r0, r0, #6 + adds r1, r1, r0 + lsls r1, r1, #5 + ldr r0, _080743E8 + adds r1, r1, r0 + adds r0, r7, #0 + ldr r2, _080743EC + bl CpuSet + adds r7, #0x40 + adds r5, #1 + adds r0, r6, #4 + cmp r5, r0 + blt _08074390 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080743D0: .4byte 0x02022AE0 +_080743D4: .4byte 0x085ABC43 +_080743D8: .4byte 0x02039D18 +_080743DC: .4byte 0x085ABC4B +_080743E0: .4byte 0x020205AC +_080743E4: .4byte 0x02024178 +_080743E8: .4byte 0x06010000 +_080743EC: .4byte 0x04000008 + thumb_func_end sub_08074320 + + thumb_func_start UpdateHealthboxAttribute +UpdateHealthboxAttribute: @ 0x080743F0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov r8, r1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + ldr r1, _0807459C + lsls r0, r6, #4 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0, #0x3a] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + cmp r7, #0 + bne _0807442C + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807442C + mov r0, sb + bl GetBattlerSide +_0807442C: + ldr r1, _0807459C + lsls r0, r6, #4 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0, #0x3a] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08074448 + b _080745A8 +_08074448: + cmp r7, #3 + beq _08074450 + cmp r7, #0 + bne _08074464 +_08074450: + mov r0, r8 + movs r1, #0x38 + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r6, #0 + bl UpdateLvlInHealthbox +_08074464: + cmp r7, #1 + bhi _0807447E + mov r0, r8 + movs r1, #0x39 + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r0, r6, #0 + movs r2, #0 + bl sub_080726F4 +_0807447E: + cmp r7, #2 + beq _08074486 + cmp r7, #0 + bne _0807449C +_08074486: + mov r0, r8 + movs r1, #0x3a + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r0, r6, #0 + movs r2, #1 + bl sub_080726F4 +_0807449C: + cmp r7, #5 + beq _080744A4 + cmp r7, #0 + bne _080744D8 +_080744A4: + movs r0, #0 + bl LoadBattleBarGfx + mov r0, r8 + movs r1, #0x3a + bl GetMonData + adds r4, r0, #0 + mov r0, r8 + movs r1, #0x39 + bl GetMonData + adds r3, r0, #0 + movs r0, #0 + str r0, [sp] + mov r0, sb + adds r1, r6, #0 + adds r2, r4, #0 + bl SetBattleBarStruct + mov r0, sb + adds r1, r6, #0 + movs r2, #0 + movs r3, #0 + bl MoveBattleBar +_080744D8: + bl IsDoubleBattle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + cmp r0, #0 + bne _0807455E + cmp r7, #6 + beq _080744EE + cmp r7, #0 + bne _0807455E +_080744EE: + movs r0, #3 + bl LoadBattleBarGfx + mov r0, r8 + movs r1, #0xb + bl GetMonData + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + mov r0, r8 + movs r1, #0x38 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r0, r8 + movs r1, #0x19 + bl GetMonData + adds r3, r0, #0 + ldr r0, _080745A0 + mov ip, r0 + lsls r1, r4, #2 + ldr r2, _080745A4 + lsls r0, r5, #3 + subs r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r2, [r0, #0x13] + movs r0, #0xca + lsls r0, r0, #1 + muls r0, r2, r0 + adds r1, r1, r0 + add r1, ip + ldr r1, [r1] + subs r3, r3, r1 + adds r4, #1 + lsls r4, r4, #2 + adds r4, r4, r0 + add r4, ip + ldr r2, [r4] + subs r2, r2, r1 + mov r0, sl + str r0, [sp] + mov r0, sb + adds r1, r6, #0 + bl SetBattleBarStruct + mov r0, sb + adds r1, r6, #0 + movs r2, #1 + movs r3, #0 + bl MoveBattleBar +_0807455E: + cmp r7, #4 + beq _08074566 + cmp r7, #0 + bne _0807456E +_08074566: + adds r0, r6, #0 + mov r1, r8 + bl UpdateNickInHealthbox +_0807456E: + cmp r7, #9 + beq _08074576 + cmp r7, #0 + bne _0807457C +_08074576: + adds r0, r6, #0 + bl UpdateStatusIconInHealthbox +_0807457C: + cmp r7, #0xa + bne _08074586 + adds r0, r6, #0 + bl AddTextPrinterAndCreateWindowOnHealthbox +_08074586: + adds r0, r7, #0 + subs r0, #0xa + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0807461E + adds r0, r6, #0 + bl sub_08074320 + b _0807461E + .align 2, 0 +_0807459C: .4byte 0x020205AC +_080745A0: .4byte 0x082F00B4 +_080745A4: .4byte 0x082F0D54 +_080745A8: + cmp r7, #3 + beq _080745B0 + cmp r7, #0 + bne _080745C4 +_080745B0: + mov r0, r8 + movs r1, #0x38 + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r6, #0 + bl UpdateLvlInHealthbox +_080745C4: + cmp r7, #5 + beq _080745CC + cmp r7, #0 + bne _08074600 +_080745CC: + movs r0, #0 + bl LoadBattleBarGfx + mov r0, r8 + movs r1, #0x3a + bl GetMonData + adds r4, r0, #0 + mov r0, r8 + movs r1, #0x39 + bl GetMonData + adds r3, r0, #0 + movs r0, #0 + str r0, [sp] + mov r0, sb + adds r1, r6, #0 + adds r2, r4, #0 + bl SetBattleBarStruct + mov r0, sb + adds r1, r6, #0 + movs r2, #0 + movs r3, #0 + bl MoveBattleBar +_08074600: + cmp r7, #4 + beq _08074608 + cmp r7, #0 + bne _08074610 +_08074608: + adds r0, r6, #0 + mov r1, r8 + bl UpdateNickInHealthbox +_08074610: + cmp r7, #9 + beq _08074618 + cmp r7, #0 + bne _0807461E +_08074618: + adds r0, r6, #0 + bl UpdateStatusIconInHealthbox +_0807461E: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end UpdateHealthboxAttribute + + thumb_func_start MoveBattleBar +MoveBattleBar: @ 0x08074630 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sb, r2 + cmp r2, #0 + bne _0807467C + ldr r0, _08074678 + ldr r0, [r0] + ldr r0, [r0, #0xc] + mov r1, r8 + lsls r5, r1, #2 + adds r3, r5, r1 + lsls r3, r3, #2 + adds r3, r3, r0 + ldr r0, [r3, #4] + ldr r1, [r3, #8] + ldr r2, [r3, #0xc] + adds r3, #0x10 + movs r4, #6 + str r4, [sp] + movs r4, #1 + str r4, [sp, #4] + bl CalcNewBarValue + adds r4, r0, #0 + adds r7, r5, #0 + b _080746D8 + .align 2, 0 +_08074678: .4byte 0x02024174 +_0807467C: + ldr r2, _08074728 + mov sl, r2 + ldr r0, [r2] + ldr r2, [r0, #0xc] + mov r0, r8 + lsls r4, r0, #2 + adds r0, r4, r0 + lsls r6, r0, #2 + adds r2, r6, r2 + ldr r0, [r2, #8] + ldr r1, [r2, #0xc] + ldr r2, [r2, #4] + movs r3, #8 + bl GetScaledExpFraction + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r7, r4, #0 + cmp r5, #0 + bne _080746A6 + movs r5, #1 +_080746A6: + mov r1, sl + ldr r0, [r1] + ldr r0, [r0, #0xc] + adds r4, r6, r0 + ldr r6, [r4, #0xc] + adds r0, r6, #0 + adds r1, r5, #0 + bl __divsi3 + cmp r0, #0 + bge _080746BE + rsbs r0, r0, #0 +_080746BE: + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, [r4, #4] + ldr r1, [r4, #8] + adds r3, r4, #0 + adds r3, #0x10 + movs r2, #8 + str r2, [sp] + str r5, [sp, #4] + adds r2, r6, #0 + bl CalcNewBarValue + adds r4, r0, #0 +_080746D8: + mov r2, sb + cmp r2, #1 + beq _080746F4 + cmp r2, #0 + bne _080746FC + ldr r0, _08074728 + ldr r0, [r0] + ldr r0, [r0] + adds r0, r7, r0 + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _080746FC +_080746F4: + mov r0, r8 + mov r1, sb + bl MoveBattleBarGraphically +_080746FC: + movs r0, #1 + rsbs r0, r0, #0 + cmp r4, r0 + bne _08074716 + ldr r0, _08074728 + ldr r0, [r0] + ldr r1, [r0, #0xc] + mov r2, r8 + adds r0, r7, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + movs r1, #0 + str r1, [r0, #0x10] +_08074716: + adds r0, r4, #0 + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08074728: .4byte 0x02024174 + thumb_func_end MoveBattleBar + + thumb_func_start MoveBattleBarGraphically +MoveBattleBarGraphically: @ 0x0807472C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0 + beq _08074748 + cmp r1, #1 + beq _08074830 + b _0807492E +_08074748: + ldr r0, _080747DC + ldr r0, [r0] + ldr r0, [r0, #0xc] + lsls r5, r6, #2 + adds r3, r5, r6 + lsls r3, r3, #2 + adds r3, r3, r0 + ldr r0, [r3, #4] + ldr r1, [r3, #8] + ldr r2, [r3, #0xc] + adds r3, #0x10 + add r4, sp, #8 + str r4, [sp] + movs r4, #6 + str r4, [sp, #4] + bl CalcBarFilledPixels + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #3 + mov sb, r1 + adds r7, r5, #0 + cmp r0, #0x18 + bhi _08074784 + movs r2, #0x38 + mov sb, r2 + cmp r0, #9 + bls _08074784 + movs r4, #0x2f + mov sb, r4 +_08074784: + movs r5, #0 + ldr r0, _080747E0 + mov r8, r0 +_0807478A: + ldr r0, _080747DC + ldr r0, [r0] + ldr r1, [r0, #0xc] + adds r0, r7, r6 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + ldrh r0, [r0, #0x38] + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r5, #1 + bhi _080747EC + mov r0, sb + bl GetHealthboxElementGfxPtr + mov r1, sp + adds r1, r1, r5 + adds r1, #8 + ldrb r1, [r1] + lsls r1, r1, #5 + adds r0, r0, r1 + lsls r1, r4, #4 + adds r1, r1, r4 + lsls r1, r1, #2 + add r1, r8 + ldrh r1, [r1, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x16 + adds r2, r5, #2 + adds r1, r1, r2 + lsls r1, r1, #5 + ldr r2, _080747E4 + adds r1, r1, r2 + ldr r2, _080747E8 + bl CpuSet + b _0807481A + .align 2, 0 +_080747DC: .4byte 0x02024174 +_080747E0: .4byte 0x020205AC +_080747E4: .4byte 0x06010000 +_080747E8: .4byte 0x04000008 +_080747EC: + mov r0, sb + bl GetHealthboxElementGfxPtr + mov r1, sp + adds r1, r1, r5 + adds r1, #8 + ldrb r1, [r1] + lsls r1, r1, #5 + adds r0, r0, r1 + lsls r1, r4, #4 + adds r1, r1, r4 + lsls r1, r1, #2 + add r1, r8 + ldrh r1, [r1, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x16 + adds r1, r5, r1 + lsls r1, r1, #5 + ldr r4, _08074828 + adds r1, r1, r4 + ldr r2, _0807482C + bl CpuSet +_0807481A: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #5 + bls _0807478A + b _0807492E + .align 2, 0 +_08074828: .4byte 0x06010040 +_0807482C: .4byte 0x04000008 +_08074830: + ldr r0, _080748D4 + ldr r0, [r0] + ldr r0, [r0, #0xc] + lsls r5, r6, #2 + adds r3, r5, r6 + lsls r3, r3, #2 + adds r3, r3, r0 + ldr r0, [r3, #4] + ldr r1, [r3, #8] + ldr r2, [r3, #0xc] + adds r3, #0x10 + add r4, sp, #8 + str r4, [sp] + movs r4, #8 + str r4, [sp, #4] + bl CalcBarFilledPixels + ldr r1, _080748D8 + lsls r0, r6, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080748DC + adds r0, r0, r1 + movs r1, #0x38 + bl GetMonData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r7, r5, #0 + cmp r0, #0x64 + bne _08074888 + movs r5, #0 + movs r1, #0 +_08074876: + mov r0, sp + adds r0, r0, r5 + adds r0, #8 + strb r1, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #7 + bls _08074876 +_08074888: + movs r5, #0 + ldr r0, _080748E0 + mov r8, r0 + adds r0, r7, r6 + lsls r4, r0, #2 +_08074892: + cmp r5, #3 + bhi _080748EC + movs r0, #0xc + bl GetHealthboxElementGfxPtr + mov r1, sp + adds r1, r1, r5 + adds r1, #8 + ldrb r1, [r1] + lsls r1, r1, #5 + adds r0, r0, r1 + ldr r1, _080748D4 + ldr r1, [r1] + ldr r1, [r1, #0xc] + adds r1, r4, r1 + ldrb r2, [r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + add r1, r8 + ldrh r1, [r1, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x16 + adds r2, r5, #0 + adds r2, #0x24 + adds r1, r1, r2 + lsls r1, r1, #5 + ldr r2, _080748E4 + adds r1, r1, r2 + ldr r2, _080748E8 + bl CpuSet + b _08074924 + .align 2, 0 +_080748D4: .4byte 0x02024174 +_080748D8: .4byte 0x02023D12 +_080748DC: .4byte 0x02024190 +_080748E0: .4byte 0x020205AC +_080748E4: .4byte 0x06010000 +_080748E8: .4byte 0x04000008 +_080748EC: + movs r0, #0xc + bl GetHealthboxElementGfxPtr + mov r1, sp + adds r1, r1, r5 + adds r1, #8 + ldrb r1, [r1] + lsls r1, r1, #5 + adds r0, r0, r1 + ldr r1, _0807493C + ldr r1, [r1] + ldr r1, [r1, #0xc] + adds r1, r4, r1 + ldrb r2, [r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + add r1, r8 + ldrh r1, [r1, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x16 + adds r1, r5, r1 + lsls r1, r1, #5 + ldr r2, _08074940 + adds r1, r1, r2 + ldr r2, _08074944 + bl CpuSet +_08074924: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #7 + bls _08074892 +_0807492E: + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0807493C: .4byte 0x02024174 +_08074940: .4byte 0x06010B80 +_08074944: .4byte 0x04000008 + thumb_func_end MoveBattleBarGraphically + + thumb_func_start CalcNewBarValue +CalcNewBarValue: @ 0x08074948 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + adds r4, r1, #0 + mov r8, r2 + adds r5, r3, #0 + ldr r1, [sp, #0x18] + ldr r0, [sp, #0x1c] + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + lsls r1, r1, #0x1b + lsrs r2, r1, #0x18 + ldr r1, [r5] + ldr r0, _08074974 + cmp r1, r0 + bne _0807497A + cmp r7, r2 + bge _08074978 + lsls r0, r4, #8 + str r0, [r5] + b _0807497A + .align 2, 0 +_08074974: .4byte 0xFFFF8000 +_08074978: + str r4, [r5] +_0807497A: + mov r0, r8 + subs r4, r4, r0 + cmp r4, #0 + bge _08074986 + movs r4, #0 + b _0807498C +_08074986: + cmp r4, r7 + ble _0807498C + adds r4, r7, #0 +_0807498C: + cmp r7, r2 + bge _080749A8 + ldr r0, [r5] + asrs r1, r0, #8 + adds r6, r0, #0 + cmp r4, r1 + bne _080749B4 + movs r0, #0xff + ands r0, r6 + cmp r0, #0 + bne _080749B4 + movs r0, #1 + rsbs r0, r0, #0 + b _08074A10 +_080749A8: + ldr r6, [r5] + cmp r4, r6 + bne _080749B4 + movs r0, #1 + rsbs r0, r0, #0 + b _08074A10 +_080749B4: + cmp r7, r2 + bge _080749EE + lsls r0, r7, #8 + adds r1, r2, #0 + bl __divsi3 + mov r1, r8 + cmp r1, #0 + bge _080749D2 + adds r0, r6, r0 + str r0, [r5] + asrs r2, r0, #8 + cmp r2, r4 + blt _08074A0E + b _080749E6 +_080749D2: + subs r0, r6, r0 + str r0, [r5] + asrs r2, r0, #8 + movs r1, #0xff + ands r0, r1 + cmp r0, #0 + ble _080749E2 + adds r2, #1 +_080749E2: + cmp r2, r4 + bgt _08074A0E +_080749E6: + lsls r0, r4, #8 + str r0, [r5] + adds r2, r4, #0 + b _08074A0E +_080749EE: + mov r0, r8 + cmp r0, #0 + bge _08074A00 + ldr r0, [r5] + adds r0, r0, r3 + str r0, [r5] + cmp r0, r4 + ble _08074A0C + b _08074A0A +_08074A00: + ldr r0, [r5] + subs r0, r0, r3 + str r0, [r5] + cmp r0, r4 + bge _08074A0C +_08074A0A: + str r4, [r5] +_08074A0C: + ldr r2, [r5] +_08074A0E: + adds r0, r2, #0 +_08074A10: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CalcNewBarValue + + thumb_func_start CalcBarFilledPixels +CalcBarFilledPixels: @ 0x08074A1C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + mov ip, r3 + ldr r7, [sp, #0x14] + ldr r0, [sp, #0x18] + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + subs r5, r1, r2 + cmp r5, #0 + bge _08074A34 + movs r5, #0 + b _08074A3A +_08074A34: + cmp r5, r4 + ble _08074A3A + adds r5, r4, #0 +_08074A3A: + lsls r0, r6, #0x1b + lsrs r3, r0, #0x18 + movs r1, #0 + cmp r1, r6 + bhs _08074A54 + movs r2, #0 +_08074A46: + adds r0, r7, r1 + strb r2, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, r6 + blo _08074A46 +_08074A54: + cmp r4, r3 + bge _08074A68 + mov r1, ip + ldr r0, [r1] + muls r0, r3, r0 + adds r1, r4, #0 + bl __divsi3 + asrs r0, r0, #8 + b _08074A74 +_08074A68: + mov r1, ip + ldr r0, [r1] + muls r0, r3, r0 + adds r1, r4, #0 + bl __divsi3 +_08074A74: + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r3, r2, #0 + cmp r3, #0 + bne _08074A8A + cmp r5, #0 + ble _08074A8A + movs r0, #1 + strb r0, [r7] + movs r3, #1 + b _08074AAE +_08074A8A: + movs r1, #0 + movs r4, #8 +_08074A8E: + cmp r1, r6 + bhs _08074AAE + cmp r2, #7 + bls _08074AAA + adds r0, r7, r1 + strb r4, [r0] + adds r0, r2, #0 + subs r0, #8 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + b _08074A8E +_08074AAA: + adds r0, r7, r1 + strb r2, [r0] +_08074AAE: + adds r0, r3, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CalcBarFilledPixels + + thumb_func_start sub_08074AB8 +sub_08074AB8: @ 0x08074AB8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + adds r5, r0, #0 + adds r6, r1, #0 + adds r4, r2, #0 + mov r8, r3 + ldr r0, [r5] + ldr r1, [r5, #4] + ldr r2, [r5, #8] + movs r3, #6 + str r3, [sp] + movs r3, #1 + str r3, [sp, #4] + adds r3, r6, #0 + bl CalcNewBarValue + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + adds r0, r5, #0 + adds r1, r6, #0 + adds r2, r4, #0 + bl sub_08074B18 + ldr r0, [r5] + cmp r0, #0x2f + bgt _08074AF8 + ldr r0, [r6] + lsls r0, r0, #8 + lsrs r1, r0, #0x10 + b _08074AFA +_08074AF8: + ldrh r1, [r6] +_08074AFA: + movs r2, #0 + ldrsh r0, [r5, r2] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + mov r2, r8 + bl DummiedOutFunction + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_08074AB8 + + thumb_func_start sub_08074B18 +sub_08074B18: @ 0x08074B18 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x1c + adds r5, r0, #0 + adds r3, r1, #0 + mov r8, r2 + ldr r0, [r5] + ldr r1, [r5, #4] + ldr r2, [r5, #8] + add r4, sp, #8 + str r4, [sp] + movs r4, #6 + str r4, [sp, #4] + bl CalcBarFilledPixels + movs r3, #0 + add r7, sp, #0x10 + mov ip, r7 + ldrb r0, [r5, #0xc] + lsls r6, r0, #0x1b + ldr r4, [r5, #0x10] +_08074B44: + lsls r2, r3, #1 + add r2, ip + lsrs r1, r6, #0xf + mov r0, sp + adds r0, r0, r3 + adds r0, #8 + ldrb r0, [r0] + adds r0, r4, r0 + orrs r1, r0 + strh r1, [r2] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #5 + bls _08074B44 + adds r0, r7, #0 + mov r1, r8 + movs r2, #6 + bl CpuSet + add sp, #0x1c + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08074B18 + + thumb_func_start GetScaledExpFraction +GetScaledExpFraction: @ 0x08074B78 + push {r4, r5, r6, r7, lr} + adds r6, r2, #0 + lsls r3, r3, #0x1b + lsrs r7, r3, #0x18 + subs r5, r0, r1 + cmp r5, #0 + bge _08074B8A + movs r5, #0 + b _08074B90 +_08074B8A: + cmp r5, r6 + ble _08074B90 + adds r5, r6, #0 +_08074B90: + muls r0, r7, r0 + adds r1, r6, #0 + bl __divsi3 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + muls r0, r7, r0 + adds r1, r6, #0 + bl __divsi3 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r4, r0 + cmp r0, #0 + bge _08074BB8 + rsbs r0, r0, #0 +_08074BB8: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetScaledExpFraction + + thumb_func_start GetScaledHPFraction +GetScaledHPFraction: @ 0x08074BC4 + push {r4, lr} + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r0, r0, #0x10 + asrs r4, r0, #0x10 + adds r0, r4, #0 + muls r0, r2, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl __divsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _08074BE8 + cmp r4, #0 + ble _08074BE8 + movs r0, #1 +_08074BE8: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetScaledHPFraction + + thumb_func_start GetHPBarLevel +GetHPBarLevel: @ 0x08074BF0 + push {lr} + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r0, r1 + bne _08074C02 + movs r0, #4 + b _08074C1E +_08074C02: + movs r2, #0x30 + bl GetScaledHPFraction + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r0, #3 + cmp r1, #0x18 + bhi _08074C1E + movs r0, #2 + cmp r1, #9 + bhi _08074C1E + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f +_08074C1E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetHPBarLevel + diff --git a/asm/battle_intro.s b/asm/battle_intro.s new file mode 100644 index 0000000..6198282 --- /dev/null +++ b/asm/battle_intro.s @@ -0,0 +1,2168 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start SetAnimBgAttribute +SetAnimBgAttribute: @ 0x0811887C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r4, r2, #0x18 + cmp r6, #3 + bls _08118890 + b _08118982 +_08118890: + ldr r0, _081188AC + adds r0, r6, r0 + ldrb r0, [r0] + bl GetGpuReg + ldr r1, _081188B0 + strh r0, [r1] + cmp r5, #6 + bhi _08118974 + lsls r0, r5, #2 + ldr r1, _081188B4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081188AC: .4byte 0x08572FFE +_081188B0: .4byte 0x02039DE0 +_081188B4: .4byte 0x081188B8 +_081188B8: @ jump table + .4byte _081188D4 @ case 0 + .4byte _081188E8 @ case 1 + .4byte _08118900 @ case 2 + .4byte _08118918 @ case 3 + .4byte _08118930 @ case 4 + .4byte _0811894C @ case 5 + .4byte _08118960 @ case 6 +_081188D4: + ldr r2, _081188E4 + lsls r3, r4, #6 + ldrb r1, [r2, #1] + movs r0, #0x3f + ands r0, r1 + orrs r0, r3 + strb r0, [r2, #1] + b _08118974 + .align 2, 0 +_081188E4: .4byte 0x02039DE0 +_081188E8: + ldr r3, _081188FC + movs r0, #1 + adds r1, r4, #0 + ands r1, r0 + lsls r1, r1, #5 + ldrb r2, [r3, #1] + movs r0, #0x21 + rsbs r0, r0, #0 + b _0811896E + .align 2, 0 +_081188FC: .4byte 0x02039DE0 +_08118900: + ldr r3, _08118914 + movs r0, #1 + adds r1, r4, #0 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r3] + movs r0, #0x41 + rsbs r0, r0, #0 + b _0811893E + .align 2, 0 +_08118914: .4byte 0x02039DE0 +_08118918: + ldr r3, _0811892C + movs r0, #3 + adds r1, r4, #0 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r3] + movs r0, #0xd + rsbs r0, r0, #0 + b _0811893E + .align 2, 0 +_0811892C: .4byte 0x02039DE0 +_08118930: + ldr r3, _08118948 + movs r0, #3 + adds r1, r4, #0 + ands r1, r0 + ldrb r2, [r3] + movs r0, #4 + rsbs r0, r0, #0 +_0811893E: + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _08118974 + .align 2, 0 +_08118948: .4byte 0x02039DE0 +_0811894C: + ldr r2, _0811895C + lsls r3, r4, #7 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + orrs r0, r3 + strb r0, [r2] + b _08118974 + .align 2, 0 +_0811895C: .4byte 0x02039DE0 +_08118960: + ldr r3, _08118988 + movs r0, #0x1f + adds r1, r4, #0 + ands r1, r0 + ldrb r2, [r3, #1] + movs r0, #0x20 + rsbs r0, r0, #0 +_0811896E: + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #1] +_08118974: + ldr r0, _0811898C + adds r0, r6, r0 + ldrb r0, [r0] + ldr r1, _08118988 + ldrh r1, [r1] + bl SetGpuReg +_08118982: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08118988: .4byte 0x02039DE0 +_0811898C: .4byte 0x08572FFE + thumb_func_end SetAnimBgAttribute + + thumb_func_start GetAnimBgAttribute +GetAnimBgAttribute: @ 0x08118990 + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + cmp r2, #3 + bhi _08118A18 + ldr r0, _081189BC + adds r0, r2, r0 + ldrb r0, [r0] + bl GetGpuReg + mov r1, sp + strh r0, [r1] + cmp r4, #6 + bhi _08118A18 + lsls r0, r4, #2 + ldr r1, _081189C0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081189BC: .4byte 0x08573002 +_081189C0: .4byte 0x081189C4 +_081189C4: @ jump table + .4byte _081189E0 @ case 0 + .4byte _081189E8 @ case 1 + .4byte _081189F0 @ case 2 + .4byte _081189F8 @ case 3 + .4byte _08118A00 @ case 4 + .4byte _08118A08 @ case 5 + .4byte _08118A10 @ case 6 +_081189E0: + ldr r0, [sp] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x1e + b _08118A1A +_081189E8: + ldr r0, [sp] + lsls r0, r0, #0x12 + lsrs r0, r0, #0x1f + b _08118A1A +_081189F0: + ldr r0, [sp] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1f + b _08118A1A +_081189F8: + ldr r0, [sp] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1e + b _08118A1A +_08118A00: + ldr r0, [sp] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + b _08118A1A +_08118A08: + ldr r0, [sp] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1f + b _08118A1A +_08118A10: + ldr r0, [sp] + lsls r0, r0, #0x13 + lsrs r0, r0, #0x1b + b _08118A1A +_08118A18: + movs r0, #0 +_08118A1A: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetAnimBgAttribute + + thumb_func_start HandleIntroSlide +HandleIntroSlide: @ 0x08118A24 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r2, _08118A48 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + beq _08118A58 + ldr r0, _08118A4C + ldrh r1, [r0] + ldr r0, _08118A50 + cmp r1, r0 + beq _08118A58 + ldr r0, _08118A54 + b _08118AA8 + .align 2, 0 +_08118A48: .4byte 0x02022C90 +_08118A4C: .4byte 0x0203886E +_08118A50: .4byte 0x00000C03 +_08118A54: .4byte 0x081195B9 +_08118A58: + ldr r2, [r2] + movs r0, #2 + ands r0, r2 + cmp r0, #0 + beq _08118A6C + ldr r0, _08118A68 + b _08118AA8 + .align 2, 0 +_08118A68: .4byte 0x08119311 +_08118A6C: + ldr r0, _08118A78 + ands r0, r2 + cmp r0, #0 + beq _08118A80 + ldr r0, _08118A7C + b _08118AA8 + .align 2, 0 +_08118A78: .4byte 0x003F0100 +_08118A7C: .4byte 0x08119095 +_08118A80: + movs r0, #0x80 + lsls r0, r0, #5 + ands r2, r0 + cmp r2, #0 + beq _08118AA0 + ldr r0, _08118A98 + ldrb r0, [r0] + cmp r0, #2 + beq _08118AA0 + movs r4, #3 + ldr r0, _08118A9C + b _08118AA8 + .align 2, 0 +_08118A98: .4byte 0x0829BDA4 +_08118A9C: .4byte 0x08118D89 +_08118AA0: + ldr r1, _08118AD4 + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r0, [r0] +_08118AA8: + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _08118AD8 + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0 + strh r0, [r1, #8] + 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 +_08118AD4: .4byte 0x08573008 +_08118AD8: .4byte 0x03005B60 + thumb_func_end HandleIntroSlide + + thumb_func_start sub_08118ADC +sub_08118ADC: @ 0x08118ADC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + ldr r0, _08118B28 + movs r1, #0 + strh r1, [r0] + ldr r0, _08118B2C + strh r1, [r0] + ldr r0, _08118B30 + strh r1, [r0] + ldr r0, _08118B34 + strh r1, [r0] + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + ldr r4, _08118B38 + movs r0, #0x48 + adds r1, r4, #0 + bl SetGpuReg + movs r0, #0x4a + adds r1, r4, #0 + bl SetGpuReg + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08118B28: .4byte 0x02022ACC +_08118B2C: .4byte 0x02022ACE +_08118B30: .4byte 0x02022AD0 +_08118B34: .4byte 0x02022AD2 +_08118B38: .4byte 0x00003F3F + thumb_func_end sub_08118ADC + + thumb_func_start BattleIntroSlide1 +BattleIntroSlide1: @ 0x08118B3C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08118B74 + ldrh r0, [r1] + adds r0, #6 + strh r0, [r1] + ldr r1, _08118B78 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #8 + ldrsh r0, [r0, r2] + mov r8, r1 + cmp r0, #4 + bls _08118B68 + b _08118D7A +_08118B68: + lsls r0, r0, #2 + ldr r1, _08118B7C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08118B74: .4byte 0x02022ACC +_08118B78: .4byte 0x03005B60 +_08118B7C: .4byte 0x08118B80 +_08118B80: @ jump table + .4byte _08118B94 @ case 0 + .4byte _08118BC4 @ case 1 + .4byte _08118BEC @ case 2 + .4byte _08118C34 @ case 3 + .4byte _08118D74 @ case 4 +_08118B94: + ldr r0, _08118BAC + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _08118BB0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + add r0, r8 + movs r1, #0x10 + b _08118BBA + .align 2, 0 +_08118BAC: .4byte 0x02022C90 +_08118BB0: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + add r0, r8 + movs r1, #1 +_08118BBA: + strh r1, [r0, #0xc] + ldrh r1, [r0, #8] + adds r1, #1 + strh r1, [r0, #8] + b _08118D7A +_08118BC4: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + mov r3, r8 + adds r1, r0, r3 + ldrh r0, [r1, #0xc] + subs r0, #1 + strh r0, [r1, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08118BDC + b _08118D7A +_08118BDC: + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + movs r0, #0x48 + movs r1, #0x3f + bl SetGpuReg + b _08118D7A +_08118BEC: + ldr r1, _08118C28 + ldrh r0, [r1] + subs r0, #0xff + strh r0, [r1] + movs r1, #0xff + lsls r1, r1, #8 + ands r0, r1 + movs r1, #0xc0 + lsls r1, r1, #6 + cmp r0, r1 + beq _08118C04 + b _08118D7A +_08118C04: + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + add r1, r8 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + movs r0, #0xf0 + strh r0, [r1, #0xc] + movs r0, #0x20 + strh r0, [r1, #0xe] + ldr r2, _08118C2C + ldrh r1, [r2] + ldr r0, _08118C30 + ands r0, r1 + strh r0, [r2] + b _08118D7A + .align 2, 0 +_08118C28: .4byte 0x02022ADA +_08118C2C: .4byte 0x020240A0 +_08118C30: .4byte 0x0000FFFE +_08118C34: + lsls r0, r4, #2 + adds r1, r0, r4 + lsls r1, r1, #3 + mov r5, r8 + adds r2, r1, r5 + ldrh r3, [r2, #0xe] + movs r5, #0xe + ldrsh r1, [r2, r5] + mov ip, r0 + cmp r1, #0 + beq _08118C50 + subs r0, r3, #1 + strh r0, [r2, #0xe] + b _08118C7E +_08118C50: + movs r1, #0xa + ldrsh r0, [r2, r1] + cmp r0, #1 + bne _08118C70 + ldr r2, _08118C68 + ldrh r1, [r2] + ldr r0, _08118C6C + cmp r1, r0 + beq _08118C7E + subs r0, r1, #2 + b _08118C7C + .align 2, 0 +_08118C68: .4byte 0x02022ACE +_08118C6C: .4byte 0x0000FFB0 +_08118C70: + ldr r2, _08118D50 + ldrh r1, [r2] + ldr r0, _08118D54 + cmp r1, r0 + beq _08118C7E + subs r0, r1, #1 +_08118C7C: + strh r0, [r2] +_08118C7E: + ldr r2, _08118D58 + ldrh r1, [r2] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08118C92 + ldr r3, _08118D5C + adds r0, r1, r3 + strh r0, [r2] +_08118C92: + mov r5, ip + adds r0, r5, r4 + lsls r0, r0, #3 + mov r2, r8 + adds r1, r0, r2 + ldrh r2, [r1, #0xc] + movs r3, #0xc + ldrsh r0, [r1, r3] + cmp r0, #0 + beq _08118CAA + subs r0, r2, #2 + strh r0, [r1, #0xc] +_08118CAA: + movs r3, #0 + ldr r5, _08118D60 + mov sb, r5 + ldr r7, _08118D64 + mov r6, sb + adds r5, r1, #0 +_08118CB6: + lsls r2, r3, #1 + ldrb r1, [r6, #0x14] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #7 + adds r2, r2, r0 + adds r2, r2, r7 + ldrh r0, [r5, #0xc] + strh r0, [r2] + adds r3, #1 + cmp r3, #0x4f + ble _08118CB6 + cmp r3, #0x9f + bgt _08118CFA + ldr r7, _08118D64 + ldr r6, _08118D60 + ldr r1, _08118D68 + mov r2, ip + adds r0, r2, r4 + lsls r0, r0, #3 + adds r5, r0, r1 +_08118CE0: + lsls r2, r3, #1 + ldrb r1, [r6, #0x14] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #7 + adds r2, r2, r0 + adds r2, r2, r7 + ldrh r0, [r5, #0xc] + rsbs r0, r0, #0 + strh r0, [r2] + adds r3, #1 + cmp r3, #0x9f + ble _08118CE0 +_08118CFA: + mov r3, ip + adds r0, r3, r4 + lsls r0, r0, #3 + mov r5, r8 + adds r1, r0, r5 + movs r0, #0xc + ldrsh r2, [r1, r0] + cmp r2, #0 + bne _08118D7A + movs r0, #3 + mov r3, sb + strb r0, [r3, #0x15] + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + str r2, [sp] + ldr r1, _08118D6C + ldr r2, _08118D70 + mov r0, sp + bl CpuSet + movs r0, #1 + movs r1, #1 + movs r2, #0 + bl SetBgAttribute + movs r0, #2 + movs r1, #1 + movs r2, #0 + bl SetBgAttribute + movs r1, #0x9c + lsls r1, r1, #8 + movs r0, #0xa + bl SetGpuReg + movs r1, #0xbc + lsls r1, r1, #7 + movs r0, #0xc + bl SetGpuReg + b _08118D7A + .align 2, 0 +_08118D50: .4byte 0x02022ACE +_08118D54: .4byte 0x0000FFC8 +_08118D58: .4byte 0x02022ADA +_08118D5C: .4byte 0xFFFFFC04 +_08118D60: .4byte 0x020397C8 +_08118D64: .4byte 0x020388C8 +_08118D68: .4byte 0x03005B60 +_08118D6C: .4byte 0x0600E000 +_08118D70: .4byte 0x05000200 +_08118D74: + adds r0, r4, #0 + bl sub_08118ADC +_08118D7A: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end BattleIntroSlide1 + + thumb_func_start BattleIntroSlide2 +BattleIntroSlide2: @ 0x08118D88 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _08118DB4 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #0xa + ldrsh r0, [r0, r2] + adds r2, r1, #0 + cmp r0, #3 + beq _08118DC8 + cmp r0, #3 + bgt _08118DB8 + cmp r0, #2 + beq _08118DBC + b _08118DD0 + .align 2, 0 +_08118DB4: .4byte 0x03005B60 +_08118DB8: + cmp r0, #4 + bne _08118DD0 +_08118DBC: + ldr r1, _08118DC4 + ldrh r0, [r1] + adds r0, #8 + b _08118DCE + .align 2, 0 +_08118DC4: .4byte 0x02022ACC +_08118DC8: + ldr r1, _08118E0C + ldrh r0, [r1] + adds r0, #6 +_08118DCE: + strh r0, [r1] +_08118DD0: + lsls r0, r5, #2 + adds r1, r0, r5 + lsls r1, r1, #3 + adds r4, r1, r2 + movs r3, #0xa + ldrsh r1, [r4, r3] + adds r6, r0, #0 + cmp r1, #4 + bne _08118E34 + ldr r7, _08118E10 + ldrh r0, [r4, #0x14] + bl Cos2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _08118DF6 + ldr r1, _08118E14 + adds r0, r0, r1 +_08118DF6: + asrs r0, r0, #9 + subs r0, #8 + strh r0, [r7] + ldrh r1, [r4, #0x14] + movs r2, #0x14 + ldrsh r0, [r4, r2] + cmp r0, #0xb3 + bgt _08118E18 + adds r0, r1, #4 + b _08118E1A + .align 2, 0 +_08118E0C: .4byte 0x02022ACC +_08118E10: .4byte 0x02022ACE +_08118E14: .4byte 0x000001FF +_08118E18: + adds r0, r1, #6 +_08118E1A: + strh r0, [r4, #0x14] + ldr r2, _08118E50 + adds r0, r6, r5 + lsls r0, r0, #3 + adds r3, r0, r2 + movs r0, #0x14 + ldrsh r1, [r3, r0] + movs r0, #0xb4 + lsls r0, r0, #1 + cmp r1, r0 + bne _08118E34 + movs r0, #0 + strh r0, [r3, #0x14] +_08118E34: + adds r0, r6, r5 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r1, #8 + ldrsh r0, [r0, r1] + cmp r0, #4 + bls _08118E44 + b _0811906A +_08118E44: + lsls r0, r0, #2 + ldr r1, _08118E54 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08118E50: .4byte 0x03005B60 +_08118E54: .4byte 0x08118E58 +_08118E58: @ jump table + .4byte _08118E6C @ case 0 + .4byte _08118E9C @ case 1 + .4byte _08118EC8 @ case 2 + .4byte _08118F18 @ case 3 + .4byte _08119064 @ case 4 +_08118E6C: + ldr r1, _08118E88 + adds r0, r6, r5 + lsls r0, r0, #3 + adds r2, r0, r1 + movs r3, #0x10 + strh r3, [r2, #0x10] + ldr r0, _08118E8C + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _08118E90 + strh r3, [r2, #0xc] + b _08118E94 + .align 2, 0 +_08118E88: .4byte 0x03005B60 +_08118E8C: .4byte 0x02022C90 +_08118E90: + movs r0, #1 + strh r0, [r2, #0xc] +_08118E94: + ldrh r0, [r2, #8] + adds r0, #1 + strh r0, [r2, #8] + b _0811906A +_08118E9C: + ldr r0, _08118EC4 + adds r1, r6, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0xc] + subs r0, #1 + strh r0, [r1, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08118EB2 + b _0811906A +_08118EB2: + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + movs r0, #0x48 + movs r1, #0x3f + bl SetGpuReg + b _0811906A + .align 2, 0 +_08118EC4: .4byte 0x03005B60 +_08118EC8: + ldr r1, _08118F08 + ldrh r0, [r1] + subs r0, #0xff + strh r0, [r1] + movs r1, #0xff + lsls r1, r1, #8 + ands r0, r1 + movs r1, #0xc0 + lsls r1, r1, #6 + cmp r0, r1 + beq _08118EE0 + b _0811906A +_08118EE0: + ldr r0, _08118F0C + adds r1, r6, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + movs r0, #0xf0 + strh r0, [r1, #0xc] + movs r0, #0x20 + strh r0, [r1, #0xe] + movs r0, #1 + strh r0, [r1, #0x12] + ldr r2, _08118F10 + ldrh r1, [r2] + ldr r0, _08118F14 + ands r0, r1 + strh r0, [r2] + b _0811906A + .align 2, 0 +_08118F08: .4byte 0x02022ADA +_08118F0C: .4byte 0x03005B60 +_08118F10: .4byte 0x020240A0 +_08118F14: .4byte 0x0000FFFE +_08118F18: + ldr r0, _08118F50 + adds r1, r6, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r2, [r1, #0xe] + movs r3, #0xe + ldrsh r0, [r1, r3] + cmp r0, #0 + beq _08118F58 + subs r0, r2, #1 + strh r0, [r1, #0xe] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08118F78 + ldr r1, _08118F54 + movs r0, #0x50 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0xf + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + b _08118F78 + .align 2, 0 +_08118F50: .4byte 0x03005B60 +_08118F54: .4byte 0x00001842 +_08118F58: + ldrh r2, [r1, #0x10] + movs r0, #0x1f + ands r0, r2 + cmp r0, #0 + beq _08118F78 + ldrh r0, [r1, #0x12] + subs r0, #1 + strh r0, [r1, #0x12] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08118F78 + adds r0, r2, #0 + adds r0, #0xff + strh r0, [r1, #0x10] + movs r0, #4 + strh r0, [r1, #0x12] +_08118F78: + ldr r2, _08119048 + ldrh r1, [r2] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08118F8C + ldr r3, _0811904C + adds r0, r1, r3 + strh r0, [r2] +_08118F8C: + ldr r0, _08119050 + adds r1, r6, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r2, [r1, #0xc] + movs r3, #0xc + ldrsh r0, [r1, r3] + cmp r0, #0 + beq _08118FA2 + subs r0, r2, #2 + strh r0, [r1, #0xc] +_08118FA2: + movs r3, #0 + ldr r0, _08119054 + mov r8, r0 + ldr r2, _08119058 + mov ip, r2 + mov r7, r8 + adds r4, r1, #0 +_08118FB0: + lsls r2, r3, #1 + ldrb r1, [r7, #0x14] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #7 + adds r2, r2, r0 + add r2, ip + ldrh r0, [r4, #0xc] + strh r0, [r2] + adds r3, #1 + cmp r3, #0x4f + ble _08118FB0 + cmp r3, #0x9f + bgt _08118FF4 + ldr r0, _08119058 + mov ip, r0 + ldr r7, _08119054 + ldr r1, _08119050 + adds r0, r6, r5 + lsls r0, r0, #3 + adds r4, r0, r1 +_08118FDA: + lsls r2, r3, #1 + ldrb r1, [r7, #0x14] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #7 + adds r2, r2, r0 + add r2, ip + ldrh r0, [r4, #0xc] + rsbs r0, r0, #0 + strh r0, [r2] + adds r3, #1 + cmp r3, #0x9f + ble _08118FDA +_08118FF4: + ldr r1, _08119050 + adds r0, r6, r5 + lsls r0, r0, #3 + adds r1, r0, r1 + movs r3, #0xc + ldrsh r2, [r1, r3] + cmp r2, #0 + bne _0811906A + movs r0, #3 + mov r3, r8 + strb r0, [r3, #0x15] + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + str r2, [sp] + ldr r1, _0811905C + ldr r2, _08119060 + mov r0, sp + bl CpuSet + movs r0, #1 + movs r1, #1 + movs r2, #0 + bl SetBgAttribute + movs r0, #2 + movs r1, #1 + movs r2, #0 + bl SetBgAttribute + movs r1, #0x9c + lsls r1, r1, #8 + movs r0, #0xa + bl SetGpuReg + movs r1, #0xbc + lsls r1, r1, #7 + movs r0, #0xc + bl SetGpuReg + b _0811906A + .align 2, 0 +_08119048: .4byte 0x02022ADA +_0811904C: .4byte 0xFFFFFC04 +_08119050: .4byte 0x03005B60 +_08119054: .4byte 0x020397C8 +_08119058: .4byte 0x020388C8 +_0811905C: .4byte 0x0600E000 +_08119060: .4byte 0x05000200 +_08119064: + adds r0, r5, #0 + bl sub_08118ADC +_0811906A: + ldr r0, _08119090 + adds r1, r6, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r2, #8 + ldrsh r0, [r1, r2] + cmp r0, #4 + beq _08119082 + ldrh r1, [r1, #0x10] + movs r0, #0x52 + bl SetGpuReg +_08119082: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08119090: .4byte 0x03005B60 + thumb_func_end BattleIntroSlide2 + + thumb_func_start BattleIntroSlide3 +BattleIntroSlide3: @ 0x08119094 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _081190C8 + ldrh r0, [r1] + adds r0, #8 + strh r0, [r1] + ldr r1, _081190CC + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #8 + ldrsh r0, [r0, r2] + adds r4, r1, #0 + cmp r0, #4 + bls _081190BE + b _081192E6 +_081190BE: + lsls r0, r0, #2 + ldr r1, _081190D0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081190C8: .4byte 0x02022ACC +_081190CC: .4byte 0x03005B60 +_081190D0: .4byte 0x081190D4 +_081190D4: @ jump table + .4byte _081190E8 @ case 0 + .4byte _08119140 @ case 1 + .4byte _0811916C @ case 2 + .4byte _081191BC @ case 3 + .4byte _081192E0 @ case 4 +_081190E8: + ldr r1, _08119120 + movs r0, #0x50 + bl SetGpuReg + ldr r4, _08119124 + movs r0, #0x52 + adds r1, r4, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + ldr r1, _08119128 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r2, r0, r1 + strh r4, [r2, #0x10] + ldr r0, _0811912C + ldr r0, [r0] + ldr r1, _08119130 + ands r0, r1 + cmp r0, #0 + beq _08119134 + movs r0, #0x10 + b _08119136 + .align 2, 0 +_08119120: .4byte 0x00001842 +_08119124: .4byte 0x00000808 +_08119128: .4byte 0x03005B60 +_0811912C: .4byte 0x02022C90 +_08119130: .4byte 0x02000002 +_08119134: + movs r0, #1 +_08119136: + strh r0, [r2, #0xc] + ldrh r0, [r2, #8] + adds r0, #1 + strh r0, [r2, #8] + b _081192E6 +_08119140: + ldr r0, _08119168 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0xc] + subs r0, #1 + strh r0, [r1, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08119158 + b _081192E6 +_08119158: + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + movs r0, #0x48 + movs r1, #0x3f + bl SetGpuReg + b _081192E6 + .align 2, 0 +_08119168: .4byte 0x03005B60 +_0811916C: + ldr r1, _081191AC + ldrh r0, [r1] + subs r0, #0xff + strh r0, [r1] + movs r1, #0xff + lsls r1, r1, #8 + ands r0, r1 + movs r1, #0xc0 + lsls r1, r1, #6 + cmp r0, r1 + beq _08119184 + b _081192E6 +_08119184: + ldr r0, _081191B0 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + movs r0, #0xf0 + strh r0, [r1, #0xc] + movs r0, #0x20 + strh r0, [r1, #0xe] + movs r0, #1 + strh r0, [r1, #0x12] + ldr r2, _081191B4 + ldrh r1, [r2] + ldr r0, _081191B8 + ands r0, r1 + strh r0, [r2] + b _081192E6 + .align 2, 0 +_081191AC: .4byte 0x02022ADA +_081191B0: .4byte 0x03005B60 +_081191B4: .4byte 0x020240A0 +_081191B8: .4byte 0x0000FFFE +_081191BC: + lsls r0, r5, #2 + adds r1, r0, r5 + lsls r1, r1, #3 + adds r2, r1, r4 + ldrh r3, [r2, #0xe] + movs r6, #0xe + ldrsh r1, [r2, r6] + mov ip, r0 + cmp r1, #0 + beq _081191D6 + subs r0, r3, #1 + strh r0, [r2, #0xe] + b _081191F6 +_081191D6: + ldrh r1, [r2, #0x10] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _081191F6 + ldrh r0, [r2, #0x12] + subs r0, #1 + strh r0, [r2, #0x12] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _081191F6 + adds r0, r1, #0 + adds r0, #0xff + strh r0, [r2, #0x10] + movs r0, #6 + strh r0, [r2, #0x12] +_081191F6: + ldr r2, _081192C4 + ldrh r1, [r2] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0811920A + ldr r3, _081192C8 + adds r0, r1, r3 + strh r0, [r2] +_0811920A: + mov r6, ip + adds r0, r6, r5 + lsls r0, r0, #3 + adds r1, r0, r4 + ldrh r2, [r1, #0xc] + movs r3, #0xc + ldrsh r0, [r1, r3] + cmp r0, #0 + beq _08119220 + subs r0, r2, #2 + strh r0, [r1, #0xc] +_08119220: + movs r3, #0 + ldr r6, _081192CC + mov r8, r6 + ldr r7, _081192D0 + adds r4, r1, #0 +_0811922A: + lsls r2, r3, #1 + ldrb r1, [r6, #0x14] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #7 + adds r2, r2, r0 + adds r2, r2, r7 + ldrh r0, [r4, #0xc] + strh r0, [r2] + adds r3, #1 + cmp r3, #0x4f + ble _0811922A + cmp r3, #0x9f + bgt _0811926E + ldr r7, _081192D0 + ldr r6, _081192CC + ldr r1, _081192D4 + mov r2, ip + adds r0, r2, r5 + lsls r0, r0, #3 + adds r4, r0, r1 +_08119254: + lsls r2, r3, #1 + ldrb r1, [r6, #0x14] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #7 + adds r2, r2, r0 + adds r2, r2, r7 + ldrh r0, [r4, #0xc] + rsbs r0, r0, #0 + strh r0, [r2] + adds r3, #1 + cmp r3, #0x9f + ble _08119254 +_0811926E: + ldr r1, _081192D4 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r1, r0, r1 + movs r3, #0xc + ldrsh r2, [r1, r3] + cmp r2, #0 + bne _081192E6 + movs r0, #3 + mov r6, r8 + strb r0, [r6, #0x15] + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + str r2, [sp] + ldr r1, _081192D8 + ldr r2, _081192DC + mov r0, sp + bl CpuSet + movs r0, #1 + movs r1, #1 + movs r2, #0 + bl SetBgAttribute + movs r0, #2 + movs r1, #1 + movs r2, #0 + bl SetBgAttribute + movs r1, #0x9c + lsls r1, r1, #8 + movs r0, #0xa + bl SetGpuReg + movs r1, #0xbc + lsls r1, r1, #7 + movs r0, #0xc + bl SetGpuReg + b _081192E6 + .align 2, 0 +_081192C4: .4byte 0x02022ADA +_081192C8: .4byte 0xFFFFFC04 +_081192CC: .4byte 0x020397C8 +_081192D0: .4byte 0x020388C8 +_081192D4: .4byte 0x03005B60 +_081192D8: .4byte 0x0600E000 +_081192DC: .4byte 0x05000200 +_081192E0: + adds r0, r5, #0 + bl sub_08118ADC +_081192E6: + ldr r0, _0811930C + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r2, #8 + ldrsh r0, [r1, r2] + cmp r0, #4 + beq _08119300 + ldrh r1, [r1, #0x10] + movs r0, #0x52 + bl SetGpuReg +_08119300: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0811930C: .4byte 0x03005B60 + thumb_func_end BattleIntroSlide3 + + thumb_func_start BattleIntroSlideLink +BattleIntroSlideLink: @ 0x08119310 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _0811935C + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r7, r0, r1 + movs r1, #8 + ldrsh r0, [r7, r1] + cmp r0, #1 + ble _08119386 + movs r2, #0x10 + ldrsh r0, [r7, r2] + cmp r0, #0 + bne _08119386 + ldr r2, _08119360 + ldrh r1, [r2] + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0 + bne _0811934E + cmp r1, #0x4f + bhi _08119368 +_0811934E: + adds r0, r1, #3 + strh r0, [r2] + ldr r1, _08119364 + ldrh r0, [r1] + subs r0, #3 + strh r0, [r1] + b _08119386 + .align 2, 0 +_0811935C: .4byte 0x03005B60 +_08119360: .4byte 0x02022ACC +_08119364: .4byte 0x02022AD0 +_08119368: + str r5, [sp] + ldr r1, _081193A8 + ldr r4, _081193AC + mov r0, sp + adds r2, r4, #0 + bl CpuSet + str r5, [sp, #4] + add r0, sp, #4 + ldr r1, _081193B0 + adds r2, r4, #0 + bl CpuSet + movs r0, #1 + strh r0, [r7, #0x10] +_08119386: + ldr r0, _081193B4 + lsls r2, r6, #2 + adds r1, r2, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r3, #8 + ldrsh r1, [r1, r3] + mov sb, r0 + adds r5, r2, #0 + cmp r1, #4 + bls _0811939E + b _081195AA +_0811939E: + lsls r0, r1, #2 + ldr r1, _081193B8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081193A8: .4byte 0x0600E000 +_081193AC: .4byte 0x05000200 +_081193B0: .4byte 0x0600F000 +_081193B4: .4byte 0x03005B60 +_081193B8: .4byte 0x081193BC +_081193BC: @ jump table + .4byte _081193D0 @ case 0 + .4byte _081193E2 @ case 1 + .4byte _08119488 @ case 2 + .4byte _081194CC @ case 3 + .4byte _081195A4 @ case 4 +_081193D0: + adds r0, r5, r6 + lsls r0, r0, #3 + add r0, sb + movs r1, #0x20 + strh r1, [r0, #0xc] + ldrh r1, [r0, #8] + adds r1, #1 + strh r1, [r0, #8] + b _081195AA +_081193E2: + adds r0, r5, r6 + lsls r0, r0, #3 + mov r2, sb + adds r1, r0, r2 + ldrh r0, [r1, #0xc] + subs r0, #1 + strh r0, [r1, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _081193F8 + b _081195AA +_081193F8: + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + ldr r4, _08119478 + ldr r5, _0811947C + ldr r0, [r5] + adds r0, #0x7d + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r3, [r1, #1] + movs r2, #0xd + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r3 + movs r3, #8 + mov sb, r3 + mov r3, sb + orrs r0, r3 + strb r0, [r1, #1] + ldr r3, [r5] + adds r0, r3, #0 + adds r0, #0x7d + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + movs r1, #0x1c + adds r1, r1, r4 + mov r8, r1 + add r0, r8 + ldr r6, _08119480 + str r6, [r0] + adds r3, #0x7e + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r1, [r0, #1] + ands r2, r1 + mov r3, sb + orrs r2, r3 + strb r2, [r0, #1] + ldr r0, [r5] + adds r0, #0x7e + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + str r6, [r0] + movs r0, #0x48 + movs r1, #0x3f + bl SetGpuReg + ldr r1, _08119484 + movs r0, #0x4a + bl SetGpuReg + b _081195AA + .align 2, 0 +_08119478: .4byte 0x020205AC +_0811947C: .4byte 0x02024140 +_08119480: .4byte 0x08038829 +_08119484: .4byte 0x00003F06 +_08119488: + ldr r1, _081194C0 + ldrh r0, [r1] + subs r0, #0xff + strh r0, [r1] + movs r1, #0xff + lsls r1, r1, #8 + ands r0, r1 + movs r1, #0xc0 + lsls r1, r1, #6 + cmp r0, r1 + beq _081194A0 + b _081195AA +_081194A0: + adds r1, r5, r6 + lsls r1, r1, #3 + add r1, sb + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + movs r0, #0xf0 + strh r0, [r1, #0xc] + movs r0, #0x20 + strh r0, [r1, #0xe] + ldr r2, _081194C4 + ldrh r1, [r2] + ldr r0, _081194C8 + ands r0, r1 + strh r0, [r2] + b _081195AA + .align 2, 0 +_081194C0: .4byte 0x02022ADA +_081194C4: .4byte 0x020240A0 +_081194C8: .4byte 0x0000FFFE +_081194CC: + ldr r2, _08119590 + ldrh r1, [r2] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + beq _081194E0 + ldr r3, _08119594 + adds r0, r1, r3 + strh r0, [r2] +_081194E0: + adds r0, r5, r6 + lsls r0, r0, #3 + mov r2, sb + adds r1, r0, r2 + ldrh r2, [r1, #0xc] + movs r3, #0xc + ldrsh r0, [r1, r3] + cmp r0, #0 + beq _081194F6 + subs r0, r2, #2 + strh r0, [r1, #0xc] +_081194F6: + movs r3, #0 + ldr r0, _08119598 + mov ip, r0 + ldr r2, _0811959C + mov r8, r2 + mov r7, ip + adds r4, r1, #0 +_08119504: + lsls r2, r3, #1 + ldrb r1, [r7, #0x14] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #7 + adds r2, r2, r0 + add r2, r8 + ldrh r0, [r4, #0xc] + strh r0, [r2] + adds r3, #1 + cmp r3, #0x4f + ble _08119504 + cmp r3, #0x9f + bgt _08119548 + ldr r0, _0811959C + mov r8, r0 + ldr r7, _08119598 + ldr r1, _081195A0 + adds r0, r5, r6 + lsls r0, r0, #3 + adds r4, r0, r1 +_0811952E: + lsls r2, r3, #1 + ldrb r1, [r7, #0x14] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #7 + adds r2, r2, r0 + add r2, r8 + ldrh r0, [r4, #0xc] + rsbs r0, r0, #0 + strh r0, [r2] + adds r3, #1 + cmp r3, #0x9f + ble _0811952E +_08119548: + adds r0, r5, r6 + lsls r0, r0, #3 + mov r2, sb + adds r1, r0, r2 + movs r3, #0xc + ldrsh r0, [r1, r3] + cmp r0, #0 + bne _081195AA + movs r0, #3 + mov r2, ip + strb r0, [r2, #0x15] + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + movs r0, #1 + movs r1, #1 + movs r2, #0 + bl SetBgAttribute + movs r0, #2 + movs r1, #1 + movs r2, #0 + bl SetBgAttribute + movs r1, #0x9c + lsls r1, r1, #8 + movs r0, #0xa + bl SetGpuReg + movs r1, #0xbc + lsls r1, r1, #7 + movs r0, #0xc + bl SetGpuReg + b _081195AA + .align 2, 0 +_08119590: .4byte 0x02022ADA +_08119594: .4byte 0xFFFFFC04 +_08119598: .4byte 0x020397C8 +_0811959C: .4byte 0x020388C8 +_081195A0: .4byte 0x03005B60 +_081195A4: + adds r0, r6, #0 + bl sub_08118ADC +_081195AA: + add sp, #8 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end BattleIntroSlideLink + + thumb_func_start BattleIntroSlidePartner +BattleIntroSlidePartner: @ 0x081195B8 + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _081195E0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #8 + ldrsh r0, [r0, r2] + adds r6, r1, #0 + cmp r0, #5 + bls _081195D6 + b _08119802 +_081195D6: + lsls r0, r0, #2 + ldr r1, _081195E4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081195E0: .4byte 0x03005B60 +_081195E4: .4byte 0x081195E8 +_081195E8: @ jump table + .4byte _08119600 @ case 0 + .4byte _0811960E @ case 1 + .4byte _0811969C @ case 2 + .4byte _081196F8 @ case 3 + .4byte _08119750 @ case 4 + .4byte _081197FC @ case 5 +_08119600: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r6 + movs r1, #1 + strh r1, [r0, #0xc] + b _081197D4 +_0811960E: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r1, r0, r6 + ldrh r0, [r1, #0xc] + subs r0, #1 + strh r0, [r1, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08119624 + b _08119802 +_08119624: + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + ldr r1, _0811967C + movs r0, #0xa + bl SetGpuReg + ldr r1, _08119680 + movs r0, #0xc + bl SetGpuReg + movs r0, #0 + bl GetGpuReg + adds r1, r0, #0 + ldr r2, _08119684 + adds r0, r2, #0 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0 + bl SetGpuReg + movs r1, #0xf8 + lsls r1, r1, #6 + movs r0, #0x48 + bl SetGpuReg + ldr r1, _08119688 + movs r0, #0x4a + bl SetGpuReg + ldr r1, _0811968C + ldr r2, _08119690 + adds r0, r2, #0 + strh r0, [r1] + ldr r1, _08119694 + movs r0, #0xf0 + strh r0, [r1] + ldr r1, _08119698 + subs r2, #0xc0 + adds r0, r2, #0 + strh r0, [r1] + b _08119802 + .align 2, 0 +_0811967C: .4byte 0x00005C0A +_08119680: .4byte 0x00005E0A +_08119684: .4byte 0x0000F040 +_08119688: .4byte 0x00003F3F +_0811968C: .4byte 0x02022ACA +_08119690: .4byte 0x0000FFD0 +_08119694: .4byte 0x02022ACC +_08119698: .4byte 0x02022AD0 +_0811969C: + ldr r2, _081196EC + ldrh r3, [r2] + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r1, #0 + adds r1, r3, r0 + strh r1, [r2] + movs r5, #0xff + lsls r5, r5, #8 + ands r1, r5 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r1, r0 + beq _081196BE + adds r0, r3, #0 + adds r0, #0xff + strh r0, [r2] +_081196BE: + ldrh r0, [r2] + adds r1, r5, #0 + ands r1, r0 + movs r0, #0x80 + lsls r0, r0, #6 + cmp r1, r0 + beq _081196CE + b _08119802 +_081196CE: + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r6 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + movs r0, #0xf0 + strh r0, [r1, #0xc] + ldr r2, _081196F0 + ldrh r1, [r2] + ldr r0, _081196F4 + ands r0, r1 + strh r0, [r2] + b _08119802 + .align 2, 0 +_081196EC: .4byte 0x02022ADA +_081196F0: .4byte 0x020240A0 +_081196F4: .4byte 0x0000FFFE +_081196F8: + ldr r3, _08119744 + ldrh r2, [r3] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r2 + movs r1, #0x98 + lsls r1, r1, #7 + cmp r0, r1 + beq _08119712 + movs r1, #0xff + lsls r1, r1, #2 + adds r0, r2, r1 + strh r0, [r3] +_08119712: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r3, r0, r6 + ldrh r1, [r3, #0xc] + movs r2, #0xc + ldrsh r0, [r3, r2] + cmp r0, #0 + beq _08119728 + subs r0, r1, #2 + strh r0, [r3, #0xc] +_08119728: + ldr r1, _08119748 + ldrh r0, [r3, #0xc] + strh r0, [r1] + ldr r2, _0811974C + rsbs r1, r0, #0 + strh r1, [r2] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08119802 + ldrh r0, [r3, #8] + adds r0, #1 + strh r0, [r3, #8] + b _08119802 + .align 2, 0 +_08119744: .4byte 0x02022ADA +_08119748: .4byte 0x02022ACC +_0811974C: .4byte 0x02022AD0 +_08119750: + ldr r1, _081197DC + ldrh r0, [r1] + adds r3, r0, #2 + strh r3, [r1] + ldr r1, _081197E0 + ldrh r0, [r1] + adds r0, #2 + strh r0, [r1] + ldr r5, _081197E4 + ldrh r2, [r5] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r2 + movs r1, #0xa0 + lsls r1, r1, #7 + cmp r0, r1 + beq _08119778 + adds r0, r2, #0 + adds r0, #0xff + strh r0, [r5] +_08119778: + lsls r0, r3, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + bne _08119802 + str r0, [sp] + ldr r1, _081197E8 + ldr r2, _081197EC + mov r0, sp + bl CpuSet + movs r0, #0 + bl GetGpuReg + ldr r1, _081197F0 + ands r1, r0 + movs r0, #0 + bl SetGpuReg + movs r0, #1 + movs r1, #1 + movs r2, #0 + bl SetBgAttribute + movs r0, #2 + movs r1, #1 + movs r2, #0 + bl SetBgAttribute + movs r1, #0x9c + lsls r1, r1, #8 + movs r0, #0xa + bl SetGpuReg + movs r1, #0xbc + lsls r1, r1, #7 + movs r0, #0xc + bl SetGpuReg + ldr r1, _081197F4 + movs r0, #3 + strb r0, [r1, #0x15] + ldr r1, _081197F8 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 +_081197D4: + ldrh r1, [r0, #8] + adds r1, #1 + strh r1, [r0, #8] + b _08119802 + .align 2, 0 +_081197DC: .4byte 0x02022ACA +_081197E0: .4byte 0x02022AD2 +_081197E4: .4byte 0x02022ADA +_081197E8: .4byte 0x0600E000 +_081197EC: .4byte 0x05000800 +_081197F0: .4byte 0x0000BFFF +_081197F4: .4byte 0x020397C8 +_081197F8: .4byte 0x03005B60 +_081197FC: + adds r0, r4, #0 + bl sub_08118ADC +_08119802: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BattleIntroSlidePartner + + thumb_func_start sub_0811980C +sub_0811980C: @ 0x0811980C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + str r0, [sp] + adds r6, r2, #0 + adds r4, r3, #0 + ldr r0, [sp, #0x24] + ldr r7, [sp, #0x28] + ldr r2, [sp, #0x2c] + mov sb, r2 + ldr r5, [sp, #0x30] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + adds r0, r4, #0 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081198DC + ldr r2, [r1] + lsls r4, r4, #2 + adds r2, #4 + adds r2, r2, r4 + ldr r1, _081198E0 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #0xb + ldr r0, [r2] + adds r0, r0, r1 + movs r2, #0x80 + lsls r2, r2, #3 + adds r1, r7, #0 + bl CpuSet + ldr r1, [sp] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0x80 + lsls r2, r2, #5 + adds r1, r7, #0 + adds r3, r5, #0 + bl LoadBgTiles + adds r0, r6, #0 + adds r0, #8 + cmp r6, r0 + bge _081198B8 + mov ip, r0 + mov r2, r8 + lsls r7, r2, #1 +_0811988A: + mov r1, r8 + adds r2, r1, #0 + adds r2, #8 + adds r4, r6, #1 + cmp r1, r2 + bge _081198B2 + mov r0, sl + lsls r3, r0, #0xc + lsls r0, r6, #6 + add r0, sb + adds r6, r7, r0 + subs r1, r2, r1 +_081198A2: + adds r0, r5, #0 + orrs r0, r3 + strh r0, [r6] + adds r5, #1 + adds r6, #2 + subs r1, #1 + cmp r1, #0 + bne _081198A2 +_081198B2: + adds r6, r4, #0 + cmp r6, ip + blt _0811988A +_081198B8: + ldr r1, [sp] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0x80 + lsls r2, r2, #4 + mov r1, sb + movs r3, #0 + bl LoadBgTilemap + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081198DC: .4byte 0x02024178 +_081198E0: .4byte 0x02024188 + thumb_func_end sub_0811980C + + thumb_func_start unref_sub_8119094 +unref_sub_8119094: @ 0x081198E4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r4, [sp, #0x24] + ldr r5, [sp, #0x28] + mov r8, r5 + ldr r5, [sp, #0x2c] + ldr r6, [sp, #0x30] + mov sb, r6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov ip, r0 + lsls r1, r1, #0x18 + lsls r2, r2, #0x18 + lsls r3, r3, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov sl, r4 + mov r7, r8 + lsls r7, r7, #0x10 + lsrs r6, r7, #0x10 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + mov r0, sb + lsls r0, r0, #0x18 + mov sb, r0 + ldr r4, _081199A8 + ldr r0, _081199AC + ldr r0, [r0] + lsrs r2, r2, #0x16 + adds r0, #4 + adds r0, r0, r2 + lsrs r3, r3, #0xd + ldr r0, [r0] + adds r0, r0, r3 + str r0, [r4] + movs r0, #0xc0 + lsls r0, r0, #0x13 + adds r6, r6, r0 + str r6, [r4, #4] + ldr r0, _081199B0 + str r0, [r4, #8] + ldr r0, [r4, #8] + adds r2, r7, #0 + lsrs r2, r2, #0x15 + mov r6, sb + lsrs r6, r6, #0xf + subs r4, r2, r6 + lsrs r0, r1, #0x18 + adds r1, r0, #0 + adds r1, #8 + cmp r0, r1 + bge _08119998 + mov sb, r1 + mov r7, ip + lsls r7, r7, #1 + mov r8, r7 + lsls r5, r5, #0xb + str r5, [sp] +_08119960: + mov r2, ip + adds r3, r2, #0 + adds r3, #8 + adds r5, r0, #1 + cmp r2, r3 + bge _08119992 + mov r1, sl + lsls r6, r1, #0xc + lsls r0, r0, #6 + movs r7, #0xc0 + lsls r7, r7, #0x13 + adds r0, r0, r7 + ldr r1, [sp] + adds r0, r1, r0 + mov r7, r8 + adds r1, r7, r0 + subs r2, r3, r2 +_08119982: + adds r0, r4, #0 + orrs r0, r6 + strh r0, [r1] + adds r4, #1 + adds r1, #2 + subs r2, #1 + cmp r2, #0 + bne _08119982 +_08119992: + adds r0, r5, #0 + cmp r0, sb + blt _08119960 +_08119998: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081199A8: .4byte 0x040000D4 +_081199AC: .4byte 0x02024178 +_081199B0: .4byte 0x80000400 + thumb_func_end unref_sub_8119094 + diff --git a/asm/battle_main.s b/asm/battle_main.s new file mode 100644 index 0000000..82eef2f --- /dev/null +++ b/asm/battle_main.s @@ -0,0 +1,16886 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start CB2_InitBattle +CB2_InitBattle: @ 0x080365B4 + push {lr} + bl MoveSaveBlocks_ResetHeap + bl AllocateBattleResources + bl AllocateBattleSpritesData + bl AllocateMonSpritesGfx + bl sub_08185CDC + ldr r0, _080365E8 + ldr r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08036620 + movs r0, #0x80 + lsls r0, r0, #0x11 + ands r0, r1 + cmp r0, #0 + beq _080365EC + bl CB2_InitBattleInternal + b _0803660E + .align 2, 0 +_080365E8: .4byte 0x02022C90 +_080365EC: + movs r0, #0x80 + lsls r0, r0, #0xf + ands r1, r0 + cmp r1, #0 + bne _08036608 + bl HandleLinkBattleSetup + ldr r0, _08036604 + bl SetMainCallback2 + b _0803660E + .align 2, 0 +_08036604: .4byte 0x0803782D +_08036608: + ldr r0, _08036618 + bl SetMainCallback2 +_0803660E: + ldr r1, _0803661C + movs r0, #0 + strb r0, [r1] + b _08036624 + .align 2, 0 +_08036618: .4byte 0x08037A7D +_0803661C: .4byte 0x02023FD6 +_08036620: + bl CB2_InitBattleInternal +_08036624: + pop {r0} + bx r0 + thumb_func_end CB2_InitBattle + + thumb_func_start CB2_InitBattleInternal +CB2_InitBattleInternal: @ 0x08036628 + push {r4, r5, lr} + sub sp, #4 + movs r0, #0 + bl SetHBlankCallback + movs r0, #0 + bl SetVBlankCallback + movs r0, #0 + str r0, [sp] + movs r1, #0xc0 + lsls r1, r1, #0x13 + ldr r2, _080366A0 + mov r0, sp + bl CpuSet + movs r0, #0x4c + movs r1, #0 + bl SetGpuReg + movs r0, #0x40 + movs r1, #0xf0 + bl SetGpuReg + ldr r1, _080366A4 + movs r0, #0x44 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0 + bl SetGpuReg + movs r0, #0x4a + movs r1, #0 + bl SetGpuReg + ldr r0, _080366A8 + movs r2, #0xf0 + strh r2, [r0] + ldr r0, _080366AC + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + beq _080366C4 + ldr r0, _080366B0 + ldrh r1, [r0] + ldr r0, _080366B4 + cmp r1, r0 + beq _080366C4 + ldr r1, _080366B8 + movs r0, #0x9f + strh r0, [r1] + ldr r0, _080366BC + strh r2, [r0] + ldr r1, _080366C0 + movs r0, #0x20 + strh r0, [r1] + b _08036712 + .align 2, 0 +_080366A0: .4byte 0x05006000 +_080366A4: .4byte 0x00005051 +_080366A8: .4byte 0x02022AD8 +_080366AC: .4byte 0x02022C90 +_080366B0: .4byte 0x0203886E +_080366B4: .4byte 0x00000C03 +_080366B8: .4byte 0x02022ADA +_080366BC: .4byte 0x02022ADC +_080366C0: .4byte 0x02022ADE +_080366C4: + ldr r0, _0803679C + ldr r2, _080367A0 + adds r1, r2, #0 + strh r1, [r0] + bl ScanlineEffect_Clear + ldr r0, _080367A4 + movs r3, #0xf0 + movs r5, #0xf0 + lsls r5, r5, #3 + adds r2, r0, r5 + movs r1, #0x4f +_080366DC: + strh r3, [r0] + strh r3, [r2] + adds r2, #2 + adds r0, #2 + subs r1, #1 + cmp r1, #0 + bge _080366DC + movs r1, #0x50 + ldr r4, _080367A8 + ldr r0, _080367A4 + ldr r3, _080367AC + movs r5, #0x82 + lsls r5, r5, #4 + adds r2, r0, r5 + adds r0, #0xa0 +_080366FA: + strh r3, [r0] + strh r3, [r2] + adds r2, #2 + adds r0, #2 + adds r1, #1 + cmp r1, #0x9f + ble _080366FA + ldr r0, [r4] + ldr r1, [r4, #4] + ldr r2, [r4, #8] + bl ScanlineEffect_SetParams +_08036712: + bl ResetPaletteFade + ldr r0, _080367B0 + movs r1, #0 + strh r1, [r0] + ldr r0, _080367B4 + strh r1, [r0] + ldr r0, _080367B8 + strh r1, [r0] + ldr r0, _080367BC + strh r1, [r0] + ldr r0, _080367C0 + strh r1, [r0] + ldr r0, _080367C4 + strh r1, [r0] + ldr r0, _080367C8 + strh r1, [r0] + ldr r0, _080367CC + strh r1, [r0] + bl BattleSetup_GetTerrainId + ldr r2, _080367D0 + strb r0, [r2] + ldr r4, _080367D4 + ldr r0, [r4] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + beq _08036752 + movs r0, #8 + strb r0, [r2] +_08036752: + bl sub_08035528 + bl LoadBattleTextboxAndBackground + bl ResetSpriteData + bl ResetTasks + bl DrawBattleEntryBackground + bl FreeAllSpritePalettes + ldr r1, _080367D8 + movs r0, #4 + strb r0, [r1] + ldr r0, _080367DC + bl SetVBlankCallback + bl SetUpBattleVarsAndBirchZigzagoon + ldr r2, [r4] + movs r1, #0xa0 + lsls r1, r1, #1 + adds r0, r2, #0 + ands r0, r1 + cmp r0, r1 + beq _08036792 + ldr r1, _080367E0 + adds r0, r2, #0 + ands r0, r1 + cmp r0, r1 + bne _080367E8 +_08036792: + ldr r0, _080367E4 + bl SetMainCallback2 + b _08036802 + .align 2, 0 +_0803679C: .4byte 0x02022ADA +_080367A0: .4byte 0x00005051 +_080367A4: .4byte 0x020388C8 +_080367A8: .4byte 0x082EBAC8 +_080367AC: .4byte 0x0000FF10 +_080367B0: .4byte 0x02022AC8 +_080367B4: .4byte 0x02022ACA +_080367B8: .4byte 0x02022ACC +_080367BC: .4byte 0x02022ACE +_080367C0: .4byte 0x02022AD0 +_080367C4: .4byte 0x02022AD2 +_080367C8: .4byte 0x02022AD4 +_080367CC: .4byte 0x02022AD6 +_080367D0: .4byte 0x02022C94 +_080367D4: .4byte 0x02022C90 +_080367D8: .4byte 0x030030BC +_080367DC: .4byte 0x080386DD +_080367E0: .4byte 0x00400040 +_080367E4: .4byte 0x08037275 +_080367E8: + movs r0, #0x40 + ands r2, r0 + cmp r2, #0 + beq _080367FC + ldr r0, _080367F8 + bl SetMainCallback2 + b _08036802 + .align 2, 0 +_080367F8: .4byte 0x08037B45 +_080367FC: + ldr r0, _08036880 + bl SetMainCallback2 +_08036802: + ldr r5, _08036884 + ldr r0, [r5] + ldr r1, _08036888 + ands r0, r1 + cmp r0, #0 + bne _0803683C + ldr r4, _0803688C + ldr r0, _08036890 + ldrh r1, [r0] + adds r0, r4, #0 + movs r2, #1 + bl CreateNPCTrainerParty + ldr r0, [r5] + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08036838 + movs r1, #0x96 + lsls r1, r1, #1 + adds r0, r4, r1 + ldr r1, _08036894 + ldrh r1, [r1] + movs r2, #0 + bl CreateNPCTrainerParty +_08036838: + bl SetWildMonHeldItem +_0803683C: + ldr r1, _08036898 + ldr r2, _0803689C + adds r1, r1, r2 + ldrb r0, [r1] + movs r2, #2 + orrs r0, r2 + strb r0, [r1] + ldr r0, _080368A0 + ldr r1, [r0] + ldr r5, _080368A4 + adds r1, r1, r5 + ldrb r2, [r1] + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r4, _080368A8 + movs r0, #0xfa + lsls r0, r0, #1 + adds r5, r4, r0 +_08036864: + adds r0, r4, #0 + movs r1, #3 + bl AdjustFriendship + adds r4, #0x64 + cmp r4, r5 + ble _08036864 + movs r1, #0 + ldr r0, _080368AC + strb r1, [r0] + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08036880: .4byte 0x08036E01 +_08036884: .4byte 0x02022C90 +_08036888: .4byte 0x01000002 +_0803688C: .4byte 0x020243E8 +_08036890: .4byte 0x0203886A +_08036894: .4byte 0x0203886C +_08036898: .4byte 0x03002360 +_0803689C: .4byte 0x00000439 +_080368A0: .4byte 0x03005AF0 +_080368A4: .4byte 0x00000CA9 +_080368A8: .4byte 0x02024190 +_080368AC: .4byte 0x02023FD6 + thumb_func_end CB2_InitBattleInternal + + thumb_func_start sub_080368B0 +sub_080368B0: @ 0x080368B0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + movs r6, #0 + mov sb, r6 + movs r0, #0xce + lsls r0, r0, #1 + mov sl, r0 + mov r8, r6 +_080368C6: + movs r0, #0x64 + mov r4, sb + muls r4, r0, r4 + ldr r0, _08036988 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + adds r0, r4, #0 + movs r1, #0x37 + bl GetMonData + adds r1, r0, #0 + cmp r5, #0 + beq _08036942 + cmp r5, sl + beq _0803690E + cmp r7, #0 + beq _0803690E + cmp r1, #0 + bne _0803690E + movs r0, #1 + mov r2, r8 + lsls r0, r2 + orrs r6, r0 + lsls r0, r6, #0x10 + lsrs r6, r0, #0x10 +_0803690E: + cmp r5, #0 + beq _08036942 + cmp r7, #0 + beq _0803692A + cmp r5, sl + beq _0803691E + cmp r1, #0 + beq _0803692A +_0803691E: + movs r0, #2 + mov r1, r8 + lsls r0, r1 + orrs r6, r0 + lsls r0, r6, #0x10 + lsrs r6, r0, #0x10 +_0803692A: + cmp r5, #0 + beq _08036942 + cmp r5, sl + beq _08036942 + cmp r7, #0 + bne _08036942 + movs r0, #3 + mov r2, r8 + lsls r0, r2 + orrs r6, r0 + lsls r0, r6, #0x10 + lsrs r6, r0, #0x10 +_08036942: + movs r0, #2 + add r8, r0 + movs r1, #1 + add sb, r1 + mov r2, sb + cmp r2, #5 + ble _080368C6 + ldr r4, _0803698C + ldr r0, [r4] + movs r1, #0xc1 + lsls r1, r1, #1 + adds r0, r0, r1 + strb r6, [r0] + ldr r0, [r4] + ldr r5, _08036990 + adds r0, r0, r5 + lsrs r1, r6, #8 + strb r1, [r0] + ldr r0, _08036994 + bl FlagGet + ldr r1, [r4] + adds r1, r1, r5 + lsls r0, r0, #7 + ldrb r2, [r1] + orrs r0, r2 + strb r0, [r1] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08036988: .4byte 0x02024190 +_0803698C: .4byte 0x02024140 +_08036990: .4byte 0x00000183 +_08036994: .4byte 0x000008D2 + thumb_func_end sub_080368B0 + + thumb_func_start SetPlayerBerryDataInBattleStruct +SetPlayerBerryDataInBattleStruct: @ 0x08036998 + push {r4, r5, r6, r7, lr} + ldr r0, _08036A00 + ldr r5, [r0] + movs r0, #0xc2 + lsls r0, r0, #1 + adds r4, r5, r0 + bl IsEnigmaBerryValid + cmp r0, #1 + bne _08036A14 + movs r2, #0 + ldr r7, _08036A04 + movs r1, #0xc6 + lsls r1, r1, #1 + adds r5, r5, r1 + adds r6, r7, #0 + ldr r3, _08036A08 +_080369BA: + adds r0, r4, r2 + ldr r1, [r6] + adds r1, r1, r3 + adds r1, r1, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, #5 + ble _080369BA + adds r1, r4, r2 + movs r0, #0xff + strb r0, [r1] + movs r2, #0 + adds r3, r5, #0 + ldr r6, _08036A04 + ldr r5, _08036A0C +_080369DA: + adds r0, r3, r2 + ldr r1, [r6] + adds r1, r1, r5 + adds r1, r1, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, #0x11 + ble _080369DA + ldr r0, [r7] + ldr r1, _08036A10 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #7] + ldr r0, [r7] + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + b _08036A54 + .align 2, 0 +_08036A00: .4byte 0x02024140 +_08036A04: .4byte 0x03005AEC +_08036A08: .4byte 0x000031F8 +_08036A0C: .4byte 0x00003214 +_08036A10: .4byte 0x00003226 +_08036A14: + movs r0, #0xaf + bl ItemIdToBerryType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBerryInfo + adds r3, r0, #0 + movs r2, #0 + movs r0, #0xc6 + lsls r0, r0, #1 + adds r5, r5, r0 +_08036A2C: + adds r0, r4, r2 + adds r1, r3, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, #5 + ble _08036A2C + adds r1, r4, r2 + movs r0, #0xff + strb r0, [r1] + adds r0, r5, #0 + movs r2, #0 + adds r1, r0, #0 + adds r1, #0x11 +_08036A48: + strb r2, [r1] + subs r1, #1 + cmp r1, r0 + bge _08036A48 + movs r0, #0 + strb r0, [r4, #7] +_08036A54: + strb r0, [r4, #0x1a] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end SetPlayerBerryDataInBattleStruct + + thumb_func_start SetAllPlayersBerryData +SetAllPlayersBerryData: @ 0x08036A5C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _08036B14 + ldr r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08036A74 + b _08036BA0 +_08036A74: + bl IsEnigmaBerryValid + cmp r0, #1 + bne _08036B30 + movs r5, #0 + ldr r3, _08036B18 + ldr r0, _08036B1C + mov r8, r0 + adds r6, r3, #0 + mov r4, r8 + ldr r2, _08036B20 + adds r7, r3, #0 + adds r7, #0x38 +_08036A8E: + adds r1, r5, r6 + ldr r0, [r4] + adds r0, r0, r2 + adds r0, r0, r5 + ldrb r0, [r0] + strb r0, [r1] + adds r1, r5, r7 + ldr r0, [r4] + adds r0, r0, r2 + adds r0, r0, r5 + ldrb r0, [r0] + strb r0, [r1] + adds r5, #1 + cmp r5, #5 + ble _08036A8E + adds r1, r5, r3 + movs r0, #0xff + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x38 + adds r0, r5, r0 + movs r1, #1 + rsbs r1, r1, #0 + strb r1, [r0] + movs r5, #0 + adds r7, r3, #0 + adds r7, #8 + ldr r4, _08036B1C + ldr r2, _08036B24 + adds r6, r3, #0 + adds r6, #0x40 +_08036ACC: + adds r1, r5, r7 + ldr r0, [r4] + adds r0, r0, r2 + adds r0, r0, r5 + ldrb r0, [r0] + strb r0, [r1] + adds r1, r5, r6 + ldr r0, [r4] + adds r0, r0, r2 + adds r0, r0, r5 + ldrb r0, [r0] + strb r0, [r1] + adds r5, #1 + cmp r5, #0x11 + ble _08036ACC + mov r1, r8 + ldr r0, [r1] + ldr r2, _08036B28 + adds r0, r0, r2 + ldrb r1, [r0] + strb r1, [r3, #7] + ldrb r0, [r0] + adds r1, r3, #0 + adds r1, #0x3f + strb r0, [r1] + mov r4, r8 + ldr r0, [r4] + ldr r1, _08036B2C + adds r0, r0, r1 + ldrb r1, [r0] + strb r1, [r3, #0x1a] + ldrb r1, [r0] + adds r0, r3, #0 + adds r0, #0x52 + strb r1, [r0] + b _08036CF4 + .align 2, 0 +_08036B14: .4byte 0x02022C90 +_08036B18: .4byte 0x020240A8 +_08036B1C: .4byte 0x03005AEC +_08036B20: .4byte 0x000031F8 +_08036B24: .4byte 0x00003214 +_08036B28: .4byte 0x00003226 +_08036B2C: .4byte 0x00003227 +_08036B30: + movs r0, #0xaf + bl ItemIdToBerryType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBerryInfo + adds r6, r0, #0 + movs r5, #0 + ldr r4, _08036B9C + adds r7, r4, #0 + adds r7, #0x38 + adds r3, r4, #0 +_08036B4A: + adds r1, r5, r4 + adds r2, r6, r5 + ldrb r0, [r2] + strb r0, [r1] + adds r1, r5, r7 + ldrb r0, [r2] + strb r0, [r1] + adds r5, #1 + cmp r5, #5 + ble _08036B4A + adds r1, r5, r3 + movs r0, #0xff + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x38 + adds r0, r5, r0 + movs r1, #1 + rsbs r1, r1, #0 + strb r1, [r0] + movs r5, #0 + adds r4, r3, #0 + adds r4, #8 + movs r1, #0 + adds r2, r3, #0 + adds r2, #0x40 +_08036B7C: + adds r0, r5, r4 + strb r1, [r0] + adds r0, r5, r2 + strb r1, [r0] + adds r5, #1 + cmp r5, #0x11 + ble _08036B7C + movs r1, #0 + strb r1, [r3, #7] + adds r0, r3, #0 + adds r0, #0x3f + strb r1, [r0] + strb r1, [r3, #0x1a] + adds r0, #0x13 + strb r1, [r0] + b _08036CF4 + .align 2, 0 +_08036B9C: .4byte 0x020240A8 +_08036BA0: + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08036C44 + movs r0, #0x80 + lsls r0, r0, #1 + ands r1, r0 + movs r2, #4 + mov r8, r2 + cmp r1, #0 + beq _08036BBA + movs r4, #2 + mov r8, r4 +_08036BBA: + movs r5, #0 + cmp r5, r8 + blt _08036BC2 + b _08036CF4 +_08036BC2: + ldr r0, _08036C38 + mov ip, r0 + ldr r3, _08036C3C + adds r6, r3, #0 + movs r1, #8 + adds r1, r1, r6 + mov sb, r1 +_08036BD0: + lsls r1, r5, #8 + ldr r0, _08036C40 + adds r7, r1, r0 + lsls r0, r5, #3 + subs r0, r0, r5 + lsls r0, r0, #2 + add r0, ip + ldrb r3, [r0, #0x18] + movs r4, #0 + adds r5, #1 + mov sl, r5 + lsls r1, r3, #3 + subs r0, r1, r3 + adds r5, r1, #0 + lsls r0, r0, #2 + adds r1, r0, r6 +_08036BF0: + adds r0, r7, r4 + ldrb r0, [r0] + strb r0, [r1] + adds r1, #1 + adds r4, #1 + cmp r4, #5 + ble _08036BF0 + subs r0, r5, r3 + lsls r0, r0, #2 + adds r1, r4, r0 + adds r1, r1, r6 + movs r2, #0xff + strb r2, [r1] + movs r4, #0 + mov r2, sb + adds r1, r0, r2 + adds r2, r7, #0 + adds r2, #8 +_08036C14: + adds r0, r2, r4 + ldrb r0, [r0] + strb r0, [r1] + adds r1, #1 + adds r4, #1 + cmp r4, #0x11 + ble _08036C14 + subs r0, r5, r3 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r1, [r7, #7] + strb r1, [r0, #7] + ldrb r1, [r7, #0x1a] + strb r1, [r0, #0x1a] + mov r5, sl + cmp r5, r8 + blt _08036BD0 + b _08036CF4 + .align 2, 0 +_08036C38: .4byte 0x020226A0 +_08036C3C: .4byte 0x020240A8 +_08036C40: .4byte 0x02022080 +_08036C44: + movs r5, #0 + ldr r4, _08036D04 + mov sb, r4 +_08036C4A: + lsls r0, r5, #8 + ldr r1, _08036D08 + adds r7, r0, r1 + movs r4, #0 + adds r2, r5, #1 + mov sl, r2 + lsls r0, r5, #3 + mov r8, r0 + adds r1, r5, #2 + mov ip, r1 + subs r1, r0, r5 + mov r2, ip + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + mov r2, sb + adds r3, r0, r2 + lsls r1, r1, #2 + adds r2, r1, r2 +_08036C70: + adds r0, r7, r4 + ldrb r1, [r0] + strb r1, [r2] + ldrb r0, [r0] + strb r0, [r3] + adds r3, #1 + adds r2, #1 + adds r4, #1 + cmp r4, #5 + ble _08036C70 + mov r0, r8 + subs r3, r0, r5 + lsls r3, r3, #2 + adds r1, r4, r3 + add r1, sb + ldrb r0, [r1] + movs r2, #0xff + orrs r0, r2 + strb r0, [r1] + mov r0, ip + lsls r2, r0, #3 + subs r2, r2, r0 + lsls r2, r2, #2 + adds r1, r4, r2 + add r1, sb + ldrb r0, [r1] + movs r4, #0xff + orrs r0, r4 + strb r0, [r1] + movs r4, #0 + ldr r0, _08036D04 + adds r0, #8 + adds r2, r2, r0 + adds r3, r3, r0 + adds r6, r7, #0 + adds r6, #8 +_08036CB8: + adds r0, r6, r4 + ldrb r1, [r0] + strb r1, [r3] + ldrb r0, [r0] + strb r0, [r2] + adds r2, #1 + adds r3, #1 + adds r4, #1 + cmp r4, #0x11 + ble _08036CB8 + mov r0, r8 + subs r2, r0, r5 + lsls r2, r2, #2 + add r2, sb + ldrb r0, [r7, #7] + strb r0, [r2, #7] + mov r1, ip + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + add r0, sb + ldrb r1, [r7, #7] + strb r1, [r0, #7] + ldrb r1, [r7, #0x1a] + strb r1, [r2, #0x1a] + ldrb r1, [r7, #0x1a] + strb r1, [r0, #0x1a] + mov r5, sl + cmp r5, #1 + ble _08036C4A +_08036CF4: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08036D04: .4byte 0x020240A8 +_08036D08: .4byte 0x02022080 + thumb_func_end SetAllPlayersBerryData + + thumb_func_start sub_08036D0C +sub_08036D0C: @ 0x08036D0C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + movs r6, #0 + ldr r0, _08036D38 + ldrh r2, [r0] + movs r1, #0x80 + lsls r1, r1, #1 + mov ip, r0 + cmp r2, r1 + bne _08036D50 + cmp r3, #0 + bne _08036D40 + ldr r0, _08036D3C + ldr r1, [r0] + movs r2, #0xc + b _08036D46 + .align 2, 0 +_08036D38: .4byte 0x0202207C +_08036D3C: .4byte 0x02022C90 +_08036D40: + ldr r0, _08036D84 + ldr r1, [r0] + movs r2, #8 +_08036D46: + orrs r1, r2 + str r1, [r0] + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_08036D50: + cmp r6, #0 + bne _08036DF4 + movs r2, #0 + cmp r2, r4 + bge _08036D74 + ldr r1, _08036D88 + mov r8, r1 + movs r5, #0x80 + lsls r5, r5, #1 +_08036D62: + adds r1, r1, r5 + adds r2, #1 + cmp r2, r4 + bge _08036D74 + mov r7, r8 + ldrh r0, [r7] + ldrh r7, [r1] + cmp r0, r7 + beq _08036D62 +_08036D74: + cmp r2, r4 + bne _08036D9C + cmp r3, #0 + bne _08036D8C + ldr r0, _08036D84 + ldr r1, [r0] + movs r2, #0xc + b _08036D92 + .align 2, 0 +_08036D84: .4byte 0x02022C90 +_08036D88: .4byte 0x0202207C +_08036D8C: + ldr r0, _08036DE8 + ldr r1, [r0] + movs r2, #8 +_08036D92: + orrs r1, r2 + str r1, [r0] + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_08036D9C: + cmp r6, #0 + bne _08036DF4 + movs r2, #0 + ldr r5, _08036DE8 + cmp r2, r4 + bge _08036DDE + mov r0, ip + ldrh r1, [r0] + movs r0, #0xc0 + lsls r0, r0, #2 + cmp r1, r0 + beq _08036DD6 +_08036DB4: + lsls r0, r2, #8 + add r0, ip + ldrh r0, [r0] + movs r1, #0xc0 + lsls r1, r1, #2 + cmp r0, r1 + bls _08036DC6 + cmp r2, r3 + bne _08036DDE +_08036DC6: + adds r2, #1 + cmp r2, r4 + bge _08036DDE + lsls r0, r2, #8 + add r0, ip + ldrh r0, [r0] + cmp r0, r1 + bne _08036DB4 +_08036DD6: + cmp r2, r3 + beq _08036DB4 + cmp r2, r3 + bge _08036DB4 +_08036DDE: + cmp r2, r4 + bne _08036DEC + ldr r0, [r5] + movs r1, #0xc + b _08036DF0 + .align 2, 0 +_08036DE8: .4byte 0x02022C90 +_08036DEC: + ldr r0, [r5] + movs r1, #8 +_08036DF0: + orrs r0, r1 + str r0, [r5] +_08036DF4: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08036D0C + + thumb_func_start CB2_HandleStartBattle +CB2_HandleStartBattle: @ 0x08036E00 + push {r4, r5, r6, lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _08036E38 + adds r0, #0x25 + strb r5, [r0] + movs r0, #1 + adds r4, r5, #0 + eors r4, r0 + ldr r0, _08036E3C + ldrb r0, [r0] + cmp r0, #0x12 + bls _08036E2C + b _08037268 +_08036E2C: + lsls r0, r0, #2 + ldr r1, _08036E40 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08036E38: .4byte 0x02024118 +_08036E3C: .4byte 0x02023FD6 +_08036E40: .4byte 0x08036E44 +_08036E44: @ jump table + .4byte _08036E90 @ case 0 + .4byte _08036ED4 @ case 1 + .4byte _08036F98 @ case 2 + .4byte _0803702C @ case 3 + .4byte _08037054 @ case 4 + .4byte _08037248 @ case 5 + .4byte _08037254 @ case 6 + .4byte _08037084 @ case 7 + .4byte _080370AC @ case 8 + .4byte _08037248 @ case 9 + .4byte _08037254 @ case 10 + .4byte _080370DC @ case 11 + .4byte _08037104 @ case 12 + .4byte _08037248 @ case 13 + .4byte _08037254 @ case 14 + .4byte _08037134 @ case 15 + .4byte _08037194 @ case 16 + .4byte _080371BC @ case 17 + .4byte _080371FC @ case 18 +_08036E90: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08036EBC + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg + bl sub_0805EB30 + ldr r1, _08036ECC + movs r0, #1 + strb r0, [r1] +_08036EBC: + ldr r0, _08036ED0 + ldrb r0, [r0] + cmp r0, #0 + bne _08036EC6 + b _08037268 +_08036EC6: + bl LoadWirelessStatusIndicatorSpriteGfx + b _08037268 + .align 2, 0 +_08036ECC: .4byte 0x02023FD6 +_08036ED0: .4byte 0x0300319C +_08036ED4: + ldr r2, _08036F58 + ldr r1, [r2] + movs r6, #2 + adds r0, r1, #0 + ands r0, r6 + cmp r0, #0 + beq _08036F78 + ldr r0, _08036F5C + ldrb r0, [r0] + cmp r0, #0 + bne _08036EEC + b _08037268 +_08036EEC: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08036F42 + ldr r4, _08036F60 + ldr r0, [r4] + movs r5, #0xc0 + lsls r5, r5, #1 + adds r0, r0, r5 + movs r1, #0 + strb r1, [r0] + ldr r0, [r4] + ldr r2, _08036F64 + adds r1, r0, r2 + movs r0, #3 + strb r0, [r1] + bl sub_080368B0 + bl SetPlayerBerryDataInBattleStruct + ldr r0, _08036F68 + ldrh r1, [r0] + movs r0, #0xc0 + lsls r0, r0, #4 + cmp r1, r0 + bne _08036F2C + ldr r0, _08036F6C + movs r1, #0 + strh r1, [r0, #0x18] + movs r1, #1 + strh r1, [r0, #0x34] +_08036F2C: + bl bitmask_all_link_players_but_self + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, [r4] + adds r1, r1, r5 + movs r2, #0x20 + bl SendBlock + ldr r0, _08036F70 + strb r6, [r0] +_08036F42: + ldr r0, _08036F74 + ldrb r0, [r0] + cmp r0, #0 + bne _08036F4C + b _08037268 +_08036F4C: + movs r0, #0 + movs r1, #0 + bl CreateWirelessStatusIndicatorSprite + b _08037268 + .align 2, 0 +_08036F58: .4byte 0x02022C90 +_08036F5C: .4byte 0x030031C4 +_08036F60: .4byte 0x02024140 +_08036F64: .4byte 0x00000181 +_08036F68: .4byte 0x0203886A +_08036F6C: .4byte 0x020226A0 +_08036F70: .4byte 0x02023FD6 +_08036F74: .4byte 0x0300319C +_08036F78: + movs r0, #0x80 + lsls r0, r0, #0x11 + ands r0, r1 + cmp r0, #0 + bne _08036F88 + movs r0, #4 + orrs r1, r0 + str r1, [r2] +_08036F88: + ldr r1, _08036F94 + movs r0, #0xf + strb r0, [r1] + bl SetAllPlayersBerryData + b _08037268 + .align 2, 0 +_08036F94: .4byte 0x02023FD6 +_08036F98: + bl GetBlockReceivedStatus + movs r1, #3 + ands r1, r0 + cmp r1, #3 + beq _08036FA6 + b _08037268 +_08036FA6: + bl ResetBlockReceivedFlags + movs r0, #2 + adds r1, r5, #0 + bl sub_08036D0C + bl SetAllPlayersBerryData + ldr r0, _08037018 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0803701C + lsls r2, r0, #2 + adds r2, r2, r0 + lsls r2, r2, #3 + adds r2, r2, r1 + movs r1, #0 + movs r0, #0x87 + lsls r0, r0, #1 + strh r0, [r2, #0xa] + movs r0, #0x5a + strh r0, [r2, #0xc] + strh r1, [r2, #0x12] + ldr r0, _08037020 + ldr r3, [r0] + movs r6, #0xc1 + lsls r6, r6, #1 + adds r0, r3, r6 + ldrb r1, [r0] + adds r6, #1 + adds r0, r3, r6 + ldrb r0, [r0] + lsls r0, r0, #8 + orrs r1, r0 + strh r1, [r2, #0xe] + ldr r1, _08037024 + lsls r4, r4, #8 + adds r1, #2 + adds r4, r4, r1 + ldrh r0, [r4] + strh r0, [r2, #0x10] + lsls r0, r5, #8 + adds r0, r0, r1 + ldrh r0, [r0] + bl sub_08185CE8 + ldrh r0, [r4] + bl sub_08185CE8 + bl SetDeoxysStats + ldr r1, _08037028 + b _08037262 + .align 2, 0 +_08037018: .4byte 0x08035BC9 +_0803701C: .4byte 0x03005B60 +_08037020: .4byte 0x02024140 +_08037024: .4byte 0x0202207C +_08037028: .4byte 0x02023FD6 +_0803702C: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08037038 + b _08037268 +_08037038: + bl bitmask_all_link_players_but_self + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0803704C + movs r2, #0xc8 + bl SendBlock + ldr r1, _08037050 + b _08037262 + .align 2, 0 +_0803704C: .4byte 0x02024190 +_08037050: .4byte 0x02023FD6 +_08037054: + bl GetBlockReceivedStatus + movs r1, #3 + ands r1, r0 + cmp r1, #3 + beq _08037062 + b _08037268 +_08037062: + bl ResetBlockReceivedFlags + ldr r0, _08037078 + lsls r1, r4, #8 + ldr r2, _0803707C + adds r1, r1, r2 + movs r2, #0xc8 + bl memcpy + ldr r1, _08037080 + b _08037262 + .align 2, 0 +_08037078: .4byte 0x020243E8 +_0803707C: .4byte 0x0202207C +_08037080: .4byte 0x02023FD6 +_08037084: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08037090 + b _08037268 +_08037090: + bl bitmask_all_link_players_but_self + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080370A4 + movs r2, #0xc8 + bl SendBlock + ldr r1, _080370A8 + b _08037262 + .align 2, 0 +_080370A4: .4byte 0x02024258 +_080370A8: .4byte 0x02023FD6 +_080370AC: + bl GetBlockReceivedStatus + movs r1, #3 + ands r1, r0 + cmp r1, #3 + beq _080370BA + b _08037268 +_080370BA: + bl ResetBlockReceivedFlags + ldr r0, _080370D0 + lsls r1, r4, #8 + ldr r2, _080370D4 + adds r1, r1, r2 + movs r2, #0xc8 + bl memcpy + ldr r1, _080370D8 + b _08037262 + .align 2, 0 +_080370D0: .4byte 0x020244B0 +_080370D4: .4byte 0x0202207C +_080370D8: .4byte 0x02023FD6 +_080370DC: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080370E8 + b _08037268 +_080370E8: + bl bitmask_all_link_players_but_self + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080370FC + movs r2, #0xc8 + bl SendBlock + ldr r1, _08037100 + b _08037262 + .align 2, 0 +_080370FC: .4byte 0x02024320 +_08037100: .4byte 0x02023FD6 +_08037104: + bl GetBlockReceivedStatus + movs r1, #3 + ands r1, r0 + cmp r1, #3 + beq _08037112 + b _08037268 +_08037112: + bl ResetBlockReceivedFlags + ldr r0, _08037128 + lsls r1, r4, #8 + ldr r2, _0803712C + adds r1, r1, r2 + movs r2, #0xc8 + bl memcpy + ldr r1, _08037130 + b _08037262 + .align 2, 0 +_08037128: .4byte 0x02024578 +_0803712C: .4byte 0x0202207C +_08037130: .4byte 0x02023FD6 +_08037134: + bl sub_08032600 + bl sub_08184D04 + ldr r2, _0803717C + movs r0, #0 + strb r0, [r2, #1] + strb r0, [r2, #2] + ldr r0, _08037180 + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _0803718E + movs r3, #0 + ldr r1, _08037184 + ldrb r0, [r1] + adds r5, r2, #0 + cmp r0, #3 + bne _08037172 + movs r4, #0xff + adds r2, r1, #0 +_08037160: + adds r2, #0x1c + adds r3, #1 + cmp r3, #1 + bgt _08037172 + ldrh r1, [r2] + adds r0, r4, #0 + ands r0, r1 + cmp r0, #3 + beq _08037160 +_08037172: + cmp r3, #2 + bne _08037188 + movs r0, #0x10 + strb r0, [r5] + b _08037268 + .align 2, 0 +_0803717C: .4byte 0x02023FD6 +_08037180: .4byte 0x02022C90 +_08037184: .4byte 0x020226A0 +_08037188: + movs r0, #0x12 + strb r0, [r5] + b _08037268 +_0803718E: + movs r0, #0x12 + strb r0, [r2] + b _08037268 +_08037194: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08037268 + bl bitmask_all_link_players_but_self + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080371B4 + movs r2, #4 + bl SendBlock + ldr r1, _080371B8 + b _08037262 + .align 2, 0 +_080371B4: .4byte 0x0203B9F8 +_080371B8: .4byte 0x02023FD6 +_080371BC: + bl GetBlockReceivedStatus + movs r1, #3 + ands r1, r0 + cmp r1, #3 + bne _08037268 + bl ResetBlockReceivedFlags + ldr r0, _080371EC + ldr r0, [r0] + movs r1, #4 + ands r0, r1 + cmp r0, #0 + bne _080371E6 + ldr r0, _080371F0 + lsls r1, r4, #8 + ldr r2, _080371F4 + adds r1, r1, r2 + movs r2, #4 + bl memcpy +_080371E6: + ldr r1, _080371F8 + b _08037262 + .align 2, 0 +_080371EC: .4byte 0x02022C90 +_080371F0: .4byte 0x0203B9F8 +_080371F4: .4byte 0x0202207C +_080371F8: .4byte 0x02023FD6 +_080371FC: + ldr r0, _08037230 + adds r1, r0, #1 + bl BattleInitAllSprites + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08037268 + ldr r2, _08037234 + ldr r1, _08037238 + ldr r0, [r1] + str r0, [r2] + ldr r0, _0803723C + str r0, [r1] + ldr r0, _08037240 + bl SetMainCallback2 + ldr r2, _08037244 + ldr r1, [r2] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08037268 + movs r0, #0x20 + orrs r1, r0 + str r1, [r2] + b _08037268 + .align 2, 0 +_08037230: .4byte 0x02023FD7 +_08037234: .4byte 0x03005A60 +_08037238: .4byte 0x03002360 +_0803723C: .4byte 0x08039B35 +_08037240: .4byte 0x080380FD +_08037244: .4byte 0x02022C90 +_08037248: + ldr r0, _08037270 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + movs r1, #1 + strb r1, [r0, #1] +_08037254: + ldr r1, _08037270 + ldrb r0, [r1, #1] + subs r0, #1 + strb r0, [r1, #1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08037268 +_08037262: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_08037268: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08037270: .4byte 0x02023FD6 + thumb_func_end CB2_HandleStartBattle + + thumb_func_start CB2_HandleStartMultiPartnerBattle +CB2_HandleStartMultiPartnerBattle: @ 0x08037274 + push {r4, r5, r6, r7, lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _080372AC + adds r0, #0x25 + strb r6, [r0] + movs r0, #1 + adds r7, r6, #0 + eors r7, r0 + ldr r0, _080372B0 + ldrb r0, [r0] + cmp r0, #0x10 + bls _080372A0 + b _08037752 +_080372A0: + lsls r0, r0, #2 + ldr r1, _080372B4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080372AC: .4byte 0x02024118 +_080372B0: .4byte 0x02023FD6 +_080372B4: .4byte 0x080372B8 +_080372B8: @ jump table + .4byte _080372FC @ case 0 + .4byte _08037334 @ case 1 + .4byte _08037414 @ case 2 + .4byte _08037468 @ case 3 + .4byte _0803748C @ case 4 + .4byte _08037508 @ case 5 + .4byte _0803752C @ case 6 + .4byte _080375A8 @ case 7 + .4byte _080375C4 @ case 8 + .4byte _080375F4 @ case 9 + .4byte _08037610 @ case 10 + .4byte _0803763C @ case 11 + .4byte _08037658 @ case 12 + .4byte _08037684 @ case 13 + .4byte _080376B6 @ case 14 + .4byte _080376D8 @ case 15 + .4byte _0803771C @ case 16 +_080372FC: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08037328 + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg + bl sub_0805EB30 + ldr r1, _080373D0 + movs r0, #1 + strb r0, [r1] +_08037328: + ldr r0, _080373D4 + ldrb r0, [r0] + cmp r0, #0 + beq _08037334 + bl LoadWirelessStatusIndicatorSpriteGfx +_08037334: + ldr r2, _080373D8 + ldr r1, [r2] + movs r3, #2 + adds r0, r1, #0 + ands r0, r3 + cmp r0, #0 + beq _080373F4 + ldr r0, _080373DC + ldrb r0, [r0] + cmp r0, #0 + bne _0803734C + b _08037752 +_0803734C: + ldr r4, _080373E0 + movs r0, #0 + strh r0, [r4, #0x18] + strh r3, [r4, #0x34] + adds r1, r4, #0 + adds r1, #0x50 + movs r0, #1 + strh r0, [r1] + adds r1, #0x1c + movs r0, #3 + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x40 + ldr r1, _080373E4 + ldrh r1, [r1] + bl GetFrontierTrainerName + adds r0, r4, #0 + adds r0, #0x5c + ldr r1, _080373E8 + ldrh r1, [r1] + bl GetFrontierTrainerName + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080373BC + ldr r4, _080373EC + ldr r0, [r4] + movs r5, #0xc0 + lsls r5, r5, #1 + adds r0, r0, r5 + movs r1, #0 + strb r1, [r0] + ldr r0, [r4] + ldr r2, _080373F0 + adds r1, r0, r2 + movs r0, #3 + strb r0, [r1] + bl sub_080368B0 + bl SetPlayerBerryDataInBattleStruct + bl bitmask_all_link_players_but_self + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, [r4] + adds r1, r1, r5 + movs r2, #0x20 + bl SendBlock + ldr r1, _080373D0 + movs r0, #2 + strb r0, [r1] +_080373BC: + ldr r0, _080373D4 + ldrb r0, [r0] + cmp r0, #0 + bne _080373C6 + b _08037752 +_080373C6: + movs r0, #0 + movs r1, #0 + bl CreateWirelessStatusIndicatorSprite + b _08037752 + .align 2, 0 +_080373D0: .4byte 0x02023FD6 +_080373D4: .4byte 0x0300319C +_080373D8: .4byte 0x02022C90 +_080373DC: .4byte 0x030031C4 +_080373E0: .4byte 0x020226A0 +_080373E4: .4byte 0x0203886A +_080373E8: .4byte 0x0203886C +_080373EC: .4byte 0x02024140 +_080373F0: .4byte 0x00000181 +_080373F4: + movs r0, #0x80 + lsls r0, r0, #0x11 + ands r0, r1 + cmp r0, #0 + bne _08037404 + movs r0, #4 + orrs r1, r0 + str r1, [r2] +_08037404: + ldr r1, _08037410 + movs r0, #0xd + strb r0, [r1] + bl SetAllPlayersBerryData + b _08037752 + .align 2, 0 +_08037410: .4byte 0x02023FD6 +_08037414: + bl GetBlockReceivedStatus + movs r1, #3 + ands r1, r0 + cmp r1, #3 + beq _08037422 + b _08037752 +_08037422: + bl ResetBlockReceivedFlags + movs r0, #2 + adds r1, r6, #0 + bl sub_08036D0C + bl SetAllPlayersBerryData + ldr r0, _08037460 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08037464 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r2, #0 + movs r0, #0x87 + lsls r0, r0, #1 + strh r0, [r1, #0xa] + movs r0, #0x5a + strh r0, [r1, #0xc] + strh r2, [r1, #0x12] + adds r0, #0xeb + strh r0, [r1, #0xe] + strh r0, [r1, #0x10] + b _08037702 + .align 2, 0 +_08037460: .4byte 0x08035BC9 +_08037464: .4byte 0x03005B60 +_08037468: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08037474 + b _08037752 +_08037474: + bl bitmask_all_link_players_but_self + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08037488 +_0803747E: + movs r2, #0xc8 + bl SendBlock + b _08037702 + .align 2, 0 +_08037488: .4byte 0x02024190 +_0803748C: + bl GetBlockReceivedStatus + movs r1, #3 + ands r1, r0 + cmp r1, #3 + beq _0803749A + b _08037752 +_0803749A: + bl ResetBlockReceivedFlags + ldr r0, _080374D4 + lsls r1, r6, #3 + subs r1, r1, r6 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r0, [r1, #0x18] + cmp r0, #0 + beq _080374E0 + ldr r4, _080374D8 + lsls r1, r7, #8 + ldr r5, _080374DC + adds r1, r1, r5 + adds r0, r4, #0 + movs r2, #0xc8 + bl memcpy + movs r0, #0x96 + lsls r0, r0, #1 + adds r4, r4, r0 + lsls r1, r6, #8 + adds r1, r1, r5 + adds r0, r4, #0 + movs r2, #0xc8 + bl memcpy + b _08037702 + .align 2, 0 +_080374D4: .4byte 0x020226A0 +_080374D8: .4byte 0x02024190 +_080374DC: .4byte 0x0202207C +_080374E0: + ldr r4, _08037500 + lsls r1, r6, #8 + ldr r5, _08037504 + adds r1, r1, r5 + adds r0, r4, #0 + movs r2, #0xc8 + bl memcpy + movs r2, #0x96 + lsls r2, r2, #1 + adds r4, r4, r2 + lsls r1, r7, #8 + adds r1, r1, r5 + adds r0, r4, #0 + movs r2, #0xc8 + b _080376FE + .align 2, 0 +_08037500: .4byte 0x02024190 +_08037504: .4byte 0x0202207C +_08037508: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08037514 + b _08037752 +_08037514: + bl bitmask_all_link_players_but_self + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08037528 + movs r2, #0x64 + bl SendBlock + b _08037702 + .align 2, 0 +_08037528: .4byte 0x02024258 +_0803752C: + bl GetBlockReceivedStatus + movs r1, #3 + ands r1, r0 + cmp r1, #3 + beq _0803753A + b _08037752 +_0803753A: + bl ResetBlockReceivedFlags + ldr r0, _08037574 + lsls r1, r6, #3 + subs r1, r1, r6 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r0, [r1, #0x18] + cmp r0, #0 + beq _08037580 + ldr r4, _08037578 + lsls r1, r7, #8 + ldr r5, _0803757C + adds r1, r1, r5 + adds r0, r4, #0 + movs r2, #0x64 + bl memcpy + movs r0, #0x96 + lsls r0, r0, #1 + adds r4, r4, r0 + lsls r1, r6, #8 + adds r1, r1, r5 + adds r0, r4, #0 + movs r2, #0x64 + bl memcpy + b _08037702 + .align 2, 0 +_08037574: .4byte 0x020226A0 +_08037578: .4byte 0x02024258 +_0803757C: .4byte 0x0202207C +_08037580: + ldr r4, _080375A0 + lsls r1, r6, #8 + ldr r5, _080375A4 + adds r1, r1, r5 + adds r0, r4, #0 + movs r2, #0x64 + bl memcpy + movs r2, #0x96 + lsls r2, r2, #1 + adds r4, r4, r2 + lsls r1, r7, #8 + adds r1, r1, r5 + adds r0, r4, #0 + movs r2, #0x64 + b _080376FE + .align 2, 0 +_080375A0: .4byte 0x02024258 +_080375A4: .4byte 0x0202207C +_080375A8: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080375B4 + b _08037752 +_080375B4: + bl bitmask_all_link_players_but_self + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080375C0 + b _0803747E + .align 2, 0 +_080375C0: .4byte 0x020243E8 +_080375C4: + bl GetBlockReceivedStatus + movs r1, #3 + ands r1, r0 + cmp r1, #3 + beq _080375D2 + b _08037752 +_080375D2: + bl ResetBlockReceivedFlags + bl GetMultiplayerId + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080375E2 + b _08037702 +_080375E2: + ldr r0, _080375EC + ldr r1, _080375F0 + movs r2, #0xc8 + b _080376FE + .align 2, 0 +_080375EC: .4byte 0x020243E8 +_080375F0: .4byte 0x0202207C +_080375F4: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08037600 + b _08037752 +_08037600: + bl bitmask_all_link_players_but_self + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0803760C + b _0803747E + .align 2, 0 +_0803760C: .4byte 0x020244B0 +_08037610: + bl GetBlockReceivedStatus + movs r1, #3 + ands r1, r0 + cmp r1, #3 + beq _0803761E + b _08037752 +_0803761E: + bl ResetBlockReceivedFlags + bl GetMultiplayerId + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08037702 + ldr r0, _08037634 + ldr r1, _08037638 + movs r2, #0xc8 + b _080376FE + .align 2, 0 +_08037634: .4byte 0x020244B0 +_08037638: .4byte 0x0202207C +_0803763C: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08037648 + b _08037752 +_08037648: + bl bitmask_all_link_players_but_self + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08037654 + b _0803747E + .align 2, 0 +_08037654: .4byte 0x02024578 +_08037658: + bl GetBlockReceivedStatus + movs r1, #3 + ands r1, r0 + cmp r1, #3 + bne _08037752 + bl ResetBlockReceivedFlags + bl GetMultiplayerId + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08037702 + ldr r0, _0803767C + ldr r1, _08037680 + movs r2, #0xc8 + b _080376FE + .align 2, 0 +_0803767C: .4byte 0x02024578 +_08037680: .4byte 0x0202207C +_08037684: + bl sub_08032600 + bl sub_08184D04 + ldr r2, _080376A8 + movs r0, #0 + strb r0, [r2, #1] + strb r0, [r2, #2] + ldr r0, _080376AC + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _080376B0 + movs r0, #0xe + strb r0, [r2] + b _08037752 + .align 2, 0 +_080376A8: .4byte 0x02023FD6 +_080376AC: .4byte 0x02022C90 +_080376B0: + movs r0, #0x10 + strb r0, [r2] + b _08037752 +_080376B6: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08037752 + bl bitmask_all_link_players_but_self + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080376D4 + movs r2, #4 + bl SendBlock + b _08037702 + .align 2, 0 +_080376D4: .4byte 0x0203B9F8 +_080376D8: + bl GetBlockReceivedStatus + movs r1, #3 + ands r1, r0 + cmp r1, #3 + bne _08037752 + bl ResetBlockReceivedFlags + ldr r0, _0803770C + ldr r0, [r0] + movs r1, #4 + ands r0, r1 + cmp r0, #0 + bne _08037702 + ldr r0, _08037710 + lsls r1, r7, #8 + ldr r2, _08037714 + adds r1, r1, r2 + movs r2, #4 +_080376FE: + bl memcpy +_08037702: + ldr r1, _08037718 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _08037752 + .align 2, 0 +_0803770C: .4byte 0x02022C90 +_08037710: .4byte 0x0203B9F8 +_08037714: .4byte 0x0202207C +_08037718: .4byte 0x02023FD6 +_0803771C: + ldr r0, _08037758 + adds r1, r0, #1 + bl BattleInitAllSprites + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08037752 + bl sub_08165F94 + ldr r2, _0803775C + ldr r1, _08037760 + ldr r0, [r1] + str r0, [r2] + ldr r0, _08037764 + str r0, [r1] + ldr r0, _08037768 + bl SetMainCallback2 + ldr r2, _0803776C + ldr r1, [r2] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08037752 + movs r0, #0x20 + orrs r1, r0 + str r1, [r2] +_08037752: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08037758: .4byte 0x02023FD7 +_0803775C: .4byte 0x03005A60 +_08037760: .4byte 0x03002360 +_08037764: .4byte 0x08039B35 +_08037768: .4byte 0x080380FD +_0803776C: .4byte 0x02022C90 + thumb_func_end CB2_HandleStartMultiPartnerBattle + + thumb_func_start sub_08037770 +sub_08037770: @ 0x08037770 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + movs r7, #0 + ldr r6, _08037820 + mov sb, r6 +_08037786: + mov r0, sl + adds r1, r7, r0 + movs r0, #0x64 + adds r4, r1, #0 + muls r4, r0, r4 + ldr r0, _08037824 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + lsls r5, r7, #5 + strh r0, [r6] + adds r0, r4, #0 + movs r1, #0xc + bl GetMonData + strh r0, [r6, #2] + movs r0, #4 + add r0, sb + mov r8, r0 + adds r2, r5, r0 + adds r0, r4, #0 + movs r1, #2 + bl GetMonData + adds r0, r4, #0 + movs r1, #0x38 + bl GetMonData + strb r0, [r6, #0xf] + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + strh r0, [r6, #0x10] + adds r0, r4, #0 + movs r1, #0x3a + bl GetMonData + strh r0, [r6, #0x12] + adds r0, r4, #0 + movs r1, #0x37 + bl GetMonData + mov r1, sb + adds r1, #0x14 + adds r5, r5, r1 + str r0, [r5] + adds r0, r4, #0 + movs r1, #0 + bl GetMonData + str r0, [r6, #0x18] + adds r0, r4, #0 + bl GetMonGender + strb r0, [r6, #0x1c] + adds r6, #0x20 + adds r7, #1 + cmp r7, #2 + ble _08037786 + ldr r0, _08037828 + ldr r0, [r0] + mov r1, r8 + subs r1, #4 + movs r2, #0x60 + bl memcpy + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08037820: .4byte 0x02022C9C +_08037824: .4byte 0x02024190 +_08037828: .4byte 0x02022CFC + thumb_func_end sub_08037770 + + thumb_func_start CB2_PreInitMultiBattle +CB2_PreInitMultiBattle: @ 0x0803782C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + movs r0, #4 + mov sb, r0 + movs r4, #0xf + ldr r6, _08037890 + ldr r0, [r6] + movs r1, #0x80 + lsls r1, r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08037852 + movs r1, #2 + mov sb, r1 + movs r4, #3 +_08037852: + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _08037894 + adds r0, #0x25 + movs r2, #0 + mov r8, r2 + strb r7, [r0] + ldr r0, _08037898 + ldr r0, [r0] + adds r1, r0, #0 + adds r1, #0xb4 + str r1, [sp] + adds r0, #0xac + mov sl, r0 + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + ldr r5, _0803789C + ldrb r0, [r5] + cmp r0, #1 + beq _080378F4 + cmp r0, #1 + bgt _080378A0 + cmp r0, #0 + beq _080378AE + b _08037A5A + .align 2, 0 +_08037890: .4byte 0x02022C90 +_08037894: .4byte 0x02024118 +_08037898: .4byte 0x02024140 +_0803789C: .4byte 0x02023FD6 +_080378A0: + cmp r0, #2 + bne _080378A6 + b _080379B4 +_080378A6: + cmp r0, #3 + bne _080378AC + b _080379EE +_080378AC: + b _08037A5A +_080378AE: + ldr r0, _080378EC + ldrb r0, [r0] + cmp r0, #0 + bne _080378B8 + b _08037A5A +_080378B8: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080378C4 + b _08037A5A +_080378C4: + ldr r4, _080378F0 + movs r0, #0x60 + bl Alloc + str r0, [r4] + movs r0, #0 + bl sub_08037770 + bl bitmask_all_link_players_but_self + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, [r4] + movs r2, #0x60 + bl SendBlock + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + b _08037A5A + .align 2, 0 +_080378EC: .4byte 0x030031C4 +_080378F0: .4byte 0x02022CFC +_080378F4: + bl GetBlockReceivedStatus + adds r1, r4, #0 + ands r1, r0 + cmp r1, r4 + beq _08037902 + b _08037A5A +_08037902: + bl ResetBlockReceivedFlags + movs r5, #0 + cmp r8, sb + bge _0803797E + lsls r0, r7, #3 + subs r0, r0, r7 + lsls r6, r0, #2 + mov r8, r5 + ldr r4, _08037940 +_08037916: + cmp r5, r7 + beq _0803796E + mov r2, sb + cmp r2, #4 + bne _08037964 + ldr r2, _08037944 + mov r1, r8 + adds r0, r1, r2 + ldrh r1, [r0, #0x18] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _08037948 + adds r0, r6, r2 + ldrh r1, [r0, #0x18] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08037954 + b _0803796E + .align 2, 0 +_08037940: .4byte 0x0202207C +_08037944: .4byte 0x020226A0 +_08037948: + adds r0, r6, r2 + ldrh r1, [r0, #0x18] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _0803796E +_08037954: + ldr r0, _08037960 + adds r1, r4, #0 + movs r2, #0x60 + bl memcpy + b _0803796E + .align 2, 0 +_08037960: .4byte 0x02022C9C +_08037964: + ldr r0, _080379A0 + adds r1, r4, #0 + movs r2, #0x60 + bl memcpy +_0803796E: + movs r2, #0x80 + lsls r2, r2, #1 + adds r4, r4, r2 + movs r0, #0x1c + add r8, r0 + adds r5, #1 + cmp r5, sb + blt _08037916 +_0803797E: + ldr r1, _080379A4 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r1, _080379A8 + ldr r0, [r1, #8] + ldr r2, [sp] + str r0, [r2] + ldr r0, _080379AC + ldr r0, [r0] + mov r2, sl + str r0, [r2] + ldr r0, _080379B0 + str r0, [r1, #8] + bl sub_081B8DF0 + b _08037A5A + .align 2, 0 +_080379A0: .4byte 0x02022C9C +_080379A4: .4byte 0x02023FD6 +_080379A8: .4byte 0x03002360 +_080379AC: .4byte 0x02022C90 +_080379B0: .4byte 0x0803782D +_080379B4: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08037A5A + ldr r0, _080379E0 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08037A5A + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + ldr r0, _080379E4 + ldrb r0, [r0] + cmp r0, #0 + beq _080379E8 + bl sub_0800A8D4 + b _08037A5A + .align 2, 0 +_080379E0: .4byte 0x02037C74 +_080379E4: .4byte 0x0300319C +_080379E8: + bl sub_0800A7F8 + b _08037A5A +_080379EE: + ldr r0, _08037A24 + ldrb r0, [r0] + cmp r0, #0 + beq _08037A34 + bl sub_08010000 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08037A5A + mov r1, sl + ldr r0, [r1] + str r0, [r6] + ldr r1, _08037A28 + ldr r2, [sp] + ldr r0, [r2] + str r0, [r1, #8] + ldr r0, _08037A2C + bl SetMainCallback2 + ldr r4, _08037A30 + ldr r0, [r4] + bl Free + mov r0, r8 + str r0, [r4] + b _08037A5A + .align 2, 0 +_08037A24: .4byte 0x0300319C +_08037A28: .4byte 0x03002360 +_08037A2C: .4byte 0x08036629 +_08037A30: .4byte 0x02022CFC +_08037A34: + ldr r0, _08037A6C + ldrb r5, [r0] + cmp r5, #0 + bne _08037A5A + mov r1, sl + ldr r0, [r1] + str r0, [r6] + ldr r1, _08037A70 + ldr r2, [sp] + ldr r0, [r2] + str r0, [r1, #8] + ldr r0, _08037A74 + bl SetMainCallback2 + ldr r4, _08037A78 + ldr r0, [r4] + bl Free + str r5, [r4] +_08037A5A: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08037A6C: .4byte 0x030031C4 +_08037A70: .4byte 0x03002360 +_08037A74: .4byte 0x08036629 +_08037A78: .4byte 0x02022CFC + thumb_func_end CB2_PreInitMultiBattle + + thumb_func_start CB2_PreInitIngamePlayerPartnerBattle +CB2_PreInitIngamePlayerPartnerBattle: @ 0x08037A7C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _08037AAC + ldr r0, [r0] + movs r1, #0xb4 + adds r1, r1, r0 + mov r8, r1 + adds r7, r0, #0 + adds r7, #0xac + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + ldr r5, _08037AB0 + ldrb r0, [r5] + cmp r0, #0 + beq _08037AB4 + cmp r0, #1 + beq _08037AF4 + b _08037B26 + .align 2, 0 +_08037AAC: .4byte 0x02024140 +_08037AB0: .4byte 0x02023FD6 +_08037AB4: + ldr r4, _08037AE4 + movs r0, #0x60 + bl Alloc + str r0, [r4] + movs r0, #3 + bl sub_08037770 + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + ldr r1, _08037AE8 + ldr r0, [r1, #8] + mov r2, r8 + str r0, [r2] + ldr r0, _08037AEC + ldr r0, [r0] + str r0, [r7] + ldr r0, _08037AF0 + str r0, [r1, #8] + bl sub_081B8DF0 + b _08037B26 + .align 2, 0 +_08037AE4: .4byte 0x02022CFC +_08037AE8: .4byte 0x03002360 +_08037AEC: .4byte 0x02022C90 +_08037AF0: .4byte 0x08037A7D +_08037AF4: + ldr r0, _08037B30 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + bne _08037B26 + movs r0, #2 + strb r0, [r5] + ldr r1, _08037B34 + ldr r0, [r7] + str r0, [r1] + ldr r1, _08037B38 + mov r2, r8 + ldr r0, [r2] + str r0, [r1, #8] + ldr r0, _08037B3C + bl SetMainCallback2 + ldr r4, _08037B40 + ldr r0, [r4] + bl Free + str r6, [r4] +_08037B26: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08037B30: .4byte 0x02037C74 +_08037B34: .4byte 0x02022C90 +_08037B38: .4byte 0x03002360 +_08037B3C: .4byte 0x08036629 +_08037B40: .4byte 0x02022CFC + thumb_func_end CB2_PreInitIngamePlayerPartnerBattle + + thumb_func_start CB2_HandleStartMultiBattle +CB2_HandleStartMultiBattle: @ 0x08037B44 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _08037B7C + adds r0, #0x25 + strb r7, [r0] + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + ldr r0, _08037B80 + ldrb r0, [r0] + cmp r0, #0xa + bls _08037B70 + b _080380D4 +_08037B70: + lsls r0, r0, #2 + ldr r1, _08037B84 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08037B7C: .4byte 0x02024118 +_08037B80: .4byte 0x02023FD6 +_08037B84: .4byte 0x08037B88 +_08037B88: @ jump table + .4byte _08037BB4 @ case 0 + .4byte _08037BF8 @ case 1 + .4byte _08037CA0 @ case 2 + .4byte _08037D76 @ case 3 + .4byte _08037D9C @ case 4 + .4byte _08037E90 @ case 5 + .4byte _08037EB4 @ case 6 + .4byte _08037FA8 @ case 7 + .4byte _08038008 @ case 8 + .4byte _08038048 @ case 9 + .4byte _08038098 @ case 10 +_08037BB4: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08037BE0 + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg + bl sub_0805EB30 + ldr r1, _08037BF0 + movs r0, #1 + strb r0, [r1] +_08037BE0: + ldr r0, _08037BF4 + ldrb r0, [r0] + cmp r0, #0 + bne _08037BEA + b _080380D4 +_08037BEA: + bl LoadWirelessStatusIndicatorSpriteGfx + b _080380D4 + .align 2, 0 +_08037BF0: .4byte 0x02023FD6 +_08037BF4: .4byte 0x0300319C +_08037BF8: + ldr r2, _08037C68 + ldr r1, [r2] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08037C80 + ldr r0, _08037C6C + ldrb r0, [r0] + cmp r0, #0 + bne _08037C0E + b _080380D4 +_08037C0E: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08037C52 + ldr r4, _08037C70 + ldr r0, [r4] + movs r5, #0xc0 + lsls r5, r5, #1 + adds r0, r0, r5 + movs r1, #0 + strb r1, [r0] + ldr r0, [r4] + ldr r2, _08037C74 + adds r1, r0, r2 + movs r0, #3 + strb r0, [r1] + bl sub_080368B0 + bl SetPlayerBerryDataInBattleStruct + bl bitmask_all_link_players_but_self + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, [r4] + adds r1, r1, r5 + movs r2, #0x20 + bl SendBlock + ldr r1, _08037C78 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_08037C52: + ldr r0, _08037C7C + ldrb r0, [r0] + cmp r0, #0 + bne _08037C5C + b _080380D4 +_08037C5C: + movs r0, #0 + movs r1, #0 + bl CreateWirelessStatusIndicatorSprite + b _080380D4 + .align 2, 0 +_08037C68: .4byte 0x02022C90 +_08037C6C: .4byte 0x030031C4 +_08037C70: .4byte 0x02024140 +_08037C74: .4byte 0x00000181 +_08037C78: .4byte 0x02023FD6 +_08037C7C: .4byte 0x0300319C +_08037C80: + movs r0, #0x80 + lsls r0, r0, #0x11 + ands r0, r1 + cmp r0, #0 + bne _08037C90 + movs r0, #4 + orrs r1, r0 + str r1, [r2] +_08037C90: + ldr r1, _08037C9C + movs r0, #7 + strb r0, [r1] + bl SetAllPlayersBerryData + b _080380D4 + .align 2, 0 +_08037C9C: .4byte 0x02023FD6 +_08037CA0: + bl GetBlockReceivedStatus + movs r1, #0xf + ands r1, r0 + cmp r1, #0xf + beq _08037CAE + b _080380D4 +_08037CAE: + bl ResetBlockReceivedFlags + movs r0, #4 + adds r1, r7, #0 + bl sub_08036D0C + bl SetAllPlayersBerryData + bl SetDeoxysStats + ldr r0, _08037D14 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _08037D18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #0 + movs r1, #0x87 + lsls r1, r1, #1 + strh r1, [r0, #0xa] + movs r1, #0x5a + strh r1, [r0, #0xc] + strh r2, [r0, #0x12] + strh r2, [r0, #0xe] + strh r2, [r0, #0x10] + ldr r1, _08037D1C + adds r4, r0, #0 + adds r5, r1, #2 + movs r7, #0x3f + movs r6, #3 +_08037CF4: + ldrh r0, [r5] + str r2, [sp] + bl sub_08185CE8 + ldr r0, _08037D20 + ldr r2, [sp] + adds r0, r2, r0 + ldrh r0, [r0, #0x18] + cmp r0, #1 + beq _08037D36 + cmp r0, #1 + bgt _08037D24 + cmp r0, #0 + beq _08037D2E + b _08037D5C + .align 2, 0 +_08037D14: .4byte 0x08035BC9 +_08037D18: .4byte 0x03005B60 +_08037D1C: .4byte 0x0202207C +_08037D20: .4byte 0x020226A0 +_08037D24: + cmp r0, #2 + beq _08037D3E + cmp r0, #3 + beq _08037D4E + b _08037D5C +_08037D2E: + ldrh r0, [r5] + adds r1, r7, #0 + ands r1, r0 + b _08037D46 +_08037D36: + ldrh r0, [r5] + adds r1, r7, #0 + ands r1, r0 + b _08037D56 +_08037D3E: + ldrh r0, [r5] + adds r1, r7, #0 + ands r1, r0 + lsls r1, r1, #6 +_08037D46: + ldrh r0, [r4, #0xe] + orrs r1, r0 + strh r1, [r4, #0xe] + b _08037D5C +_08037D4E: + ldrh r0, [r5] + adds r1, r7, #0 + ands r1, r0 + lsls r1, r1, #6 +_08037D56: + ldrh r0, [r4, #0x10] + orrs r1, r0 + strh r1, [r4, #0x10] +_08037D5C: + movs r0, #0x80 + lsls r0, r0, #1 + adds r5, r5, r0 + adds r2, #0x1c + subs r6, #1 + cmp r6, #0 + bge _08037CF4 + bl ZeroEnemyPartyMons + ldr r1, _08037D94 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_08037D76: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08037D82 + b _080380D4 +_08037D82: + bl bitmask_all_link_players_but_self + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08037D98 + movs r2, #0xc8 + bl SendBlock + b _08038082 + .align 2, 0 +_08037D94: .4byte 0x02023FD6 +_08037D98: .4byte 0x02024190 +_08037D9C: + bl GetBlockReceivedStatus + movs r1, #0xf + ands r1, r0 + cmp r1, #0xf + beq _08037DAA + b _080380D4 +_08037DAA: + bl ResetBlockReceivedFlags + movs r6, #0 + lsls r0, r7, #3 + subs r0, r0, r7 + lsls r0, r0, #2 + mov r8, r0 + ldr r4, _08037DD4 + movs r5, #0 +_08037DBC: + cmp r6, r7 + bne _08037DF0 + ldr r0, _08037DD8 + adds r0, r5, r0 + ldrh r0, [r0, #0x18] + cmp r0, #2 + bgt _08037DDC + cmp r0, #1 + bge _08037DE8 + cmp r0, #0 + beq _08037DE0 + b _08037E7A + .align 2, 0 +_08037DD4: .4byte 0x0202207C +_08037DD8: .4byte 0x020226A0 +_08037DDC: + cmp r0, #3 + bne _08037E7A +_08037DE0: + ldr r0, _08037DE4 + b _08037E60 + .align 2, 0 +_08037DE4: .4byte 0x02024190 +_08037DE8: + ldr r0, _08037DEC + b _08037E60 + .align 2, 0 +_08037DEC: .4byte 0x020242BC +_08037DF0: + ldr r2, _08037E10 + adds r0, r5, r2 + ldrh r1, [r0, #0x18] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _08037E14 + mov r1, r8 + adds r0, r1, r2 + ldrh r1, [r0, #0x18] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08037E22 + b _08037E48 + .align 2, 0 +_08037E10: .4byte 0x020226A0 +_08037E14: + mov r1, r8 + adds r0, r1, r2 + ldrh r1, [r0, #0x18] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08037E48 +_08037E22: + adds r0, r5, r2 + ldrh r0, [r0, #0x18] + cmp r0, #2 + bgt _08037E34 + cmp r0, #1 + bge _08037E40 + cmp r0, #0 + beq _08037E38 + b _08037E7A +_08037E34: + cmp r0, #3 + bne _08037E7A +_08037E38: + ldr r0, _08037E3C + b _08037E60 + .align 2, 0 +_08037E3C: .4byte 0x02024190 +_08037E40: + ldr r0, _08037E44 + b _08037E60 + .align 2, 0 +_08037E44: .4byte 0x020242BC +_08037E48: + adds r0, r5, r2 + ldrh r0, [r0, #0x18] + cmp r0, #2 + bgt _08037E5A + cmp r0, #1 + bge _08037E70 + cmp r0, #0 + beq _08037E5E + b _08037E7A +_08037E5A: + cmp r0, #3 + bne _08037E7A +_08037E5E: + ldr r0, _08037E6C +_08037E60: + adds r1, r4, #0 + movs r2, #0xc8 + bl memcpy + b _08037E7A + .align 2, 0 +_08037E6C: .4byte 0x020243E8 +_08037E70: + ldr r0, _08037E8C + adds r1, r4, #0 + movs r2, #0xc8 + bl memcpy +_08037E7A: + movs r2, #0x80 + lsls r2, r2, #1 + adds r4, r4, r2 + adds r5, #0x1c + adds r6, #1 + cmp r6, #3 + ble _08037DBC + b _08038082 + .align 2, 0 +_08037E8C: .4byte 0x02024514 +_08037E90: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08037E9C + b _080380D4 +_08037E9C: + bl bitmask_all_link_players_but_self + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08037EB0 + movs r2, #0x64 + bl SendBlock + b _08038082 + .align 2, 0 +_08037EB0: .4byte 0x02024258 +_08037EB4: + bl GetBlockReceivedStatus + movs r1, #0xf + ands r1, r0 + cmp r1, #0xf + beq _08037EC2 + b _080380D4 +_08037EC2: + bl ResetBlockReceivedFlags + movs r6, #0 + lsls r0, r7, #3 + subs r0, r0, r7 + lsls r0, r0, #2 + mov r8, r0 + ldr r4, _08037EEC + movs r5, #0 +_08037ED4: + cmp r6, r7 + bne _08037F08 + ldr r0, _08037EF0 + adds r0, r5, r0 + ldrh r0, [r0, #0x18] + cmp r0, #2 + bgt _08037EF4 + cmp r0, #1 + bge _08037F00 + cmp r0, #0 + beq _08037EF8 + b _08037F92 + .align 2, 0 +_08037EEC: .4byte 0x0202207C +_08037EF0: .4byte 0x020226A0 +_08037EF4: + cmp r0, #3 + bne _08037F92 +_08037EF8: + ldr r0, _08037EFC + b _08037F78 + .align 2, 0 +_08037EFC: .4byte 0x02024258 +_08037F00: + ldr r0, _08037F04 + b _08037F78 + .align 2, 0 +_08037F04: .4byte 0x02024384 +_08037F08: + ldr r2, _08037F28 + adds r0, r5, r2 + ldrh r1, [r0, #0x18] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _08037F2C + mov r1, r8 + adds r0, r1, r2 + ldrh r1, [r0, #0x18] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08037F3A + b _08037F60 + .align 2, 0 +_08037F28: .4byte 0x020226A0 +_08037F2C: + mov r1, r8 + adds r0, r1, r2 + ldrh r1, [r0, #0x18] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08037F60 +_08037F3A: + adds r0, r5, r2 + ldrh r0, [r0, #0x18] + cmp r0, #2 + bgt _08037F4C + cmp r0, #1 + bge _08037F58 + cmp r0, #0 + beq _08037F50 + b _08037F92 +_08037F4C: + cmp r0, #3 + bne _08037F92 +_08037F50: + ldr r0, _08037F54 + b _08037F78 + .align 2, 0 +_08037F54: .4byte 0x02024258 +_08037F58: + ldr r0, _08037F5C + b _08037F78 + .align 2, 0 +_08037F5C: .4byte 0x02024384 +_08037F60: + adds r0, r5, r2 + ldrh r0, [r0, #0x18] + cmp r0, #2 + bgt _08037F72 + cmp r0, #1 + bge _08037F88 + cmp r0, #0 + beq _08037F76 + b _08037F92 +_08037F72: + cmp r0, #3 + bne _08037F92 +_08037F76: + ldr r0, _08037F84 +_08037F78: + adds r1, r4, #0 + movs r2, #0x64 + bl memcpy + b _08037F92 + .align 2, 0 +_08037F84: .4byte 0x020244B0 +_08037F88: + ldr r0, _08037FA4 + adds r1, r4, #0 + movs r2, #0x64 + bl memcpy +_08037F92: + movs r2, #0x80 + lsls r2, r2, #1 + adds r4, r4, r2 + adds r5, #0x1c + adds r6, #1 + cmp r6, #3 + ble _08037ED4 + b _08038082 + .align 2, 0 +_08037FA4: .4byte 0x020245DC +_08037FA8: + bl sub_08032600 + bl sub_08184D04 + ldr r3, _08037FF0 + movs r0, #0 + strb r0, [r3, #1] + strb r0, [r3, #2] + ldr r0, _08037FF4 + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _08038002 + movs r6, #0 + ldr r0, _08037FF8 + ldrb r1, [r0] + adds r4, r3, #0 + adds r2, r0, #0 + cmp r1, #3 + bne _08037FE6 + movs r3, #0xff +_08037FD4: + adds r2, #0x1c + adds r6, #1 + cmp r6, #3 + bgt _08037FE6 + ldrh r1, [r2] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #3 + beq _08037FD4 +_08037FE6: + cmp r6, #4 + bne _08037FFC + movs r0, #8 + strb r0, [r4] + b _080380D4 + .align 2, 0 +_08037FF0: .4byte 0x02023FD6 +_08037FF4: .4byte 0x02022C90 +_08037FF8: .4byte 0x020226A0 +_08037FFC: + movs r0, #0xa + strb r0, [r4] + b _080380D4 +_08038002: + movs r0, #0xa + strb r0, [r3] + b _080380D4 +_08038008: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080380D4 + ldr r0, _0803803C + ldr r4, [r0] + movs r0, #0xc0 + lsls r0, r0, #1 + adds r4, r4, r0 + ldr r0, _08038040 + ldr r0, [r0] + str r0, [r4] + ldr r0, _08038044 + ldr r0, [r0] + str r0, [r4, #4] + bl bitmask_all_link_players_but_self + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r4, #0 + movs r2, #8 + bl SendBlock + b _08038082 + .align 2, 0 +_0803803C: .4byte 0x02024140 +_08038040: .4byte 0x02022C90 +_08038044: .4byte 0x0203B9F8 +_08038048: + bl GetBlockReceivedStatus + movs r1, #0xf + ands r1, r0 + cmp r1, #0xf + bne _080380D4 + bl ResetBlockReceivedFlags + movs r2, #0 + b _08038062 +_0803805C: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 +_08038062: + cmp r2, #3 + bhi _08038082 + ldr r4, _0803808C + lsls r3, r2, #8 + adds r0, r3, r4 + ldrh r0, [r0] + movs r1, #4 + ands r0, r1 + cmp r0, #0 + beq _0803805C + adds r1, r4, #4 + adds r1, r3, r1 + ldr r0, _08038090 + movs r2, #4 + bl memcpy +_08038082: + ldr r1, _08038094 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080380D4 + .align 2, 0 +_0803808C: .4byte 0x0202207C +_08038090: .4byte 0x0203B9F8 +_08038094: .4byte 0x02023FD6 +_08038098: + ldr r0, _080380E0 + adds r1, r0, #1 + bl BattleInitAllSprites + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080380D4 + ldr r2, _080380E4 + ldr r1, _080380E8 + ldr r0, [r1] + str r0, [r2] + ldr r0, _080380EC + str r0, [r1] + ldr r0, _080380F0 + bl SetMainCallback2 + ldr r3, _080380F4 + ldr r2, [r3] + movs r0, #2 + ands r0, r2 + cmp r0, #0 + beq _080380D4 + ldr r0, _080380F8 + movs r4, #0x80 + lsls r4, r4, #4 + adds r1, r4, #0 + strh r1, [r0] + movs r0, #0x20 + orrs r2, r0 + str r2, [r3] +_080380D4: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080380E0: .4byte 0x02023FD7 +_080380E4: .4byte 0x03005A60 +_080380E8: .4byte 0x03002360 +_080380EC: .4byte 0x08039B35 +_080380F0: .4byte 0x080380FD +_080380F4: .4byte 0x02022C90 +_080380F8: .4byte 0x0203886A + thumb_func_end CB2_HandleStartMultiBattle + + thumb_func_start BattleMainCB2 +BattleMainCB2: @ 0x080380FC + push {lr} + sub sp, #4 + bl AnimateSprites + bl BuildOamBuffer + bl RunTextPrinters + bl UpdatePaletteFade + bl RunTasks + ldr r0, _08038164 + ldrh r1, [r0, #0x2c] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0803815E + ldr r0, _08038168 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + beq _0803815E + bl sub_081861A8 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0803815E + ldr r2, _0803816C + ldr r1, _08038170 + movs r0, #5 + strb r0, [r1] + movs r0, #5 + strh r0, [r2] + bl ResetPaletteFadeControl + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _08038174 + bl SetMainCallback2 +_0803815E: + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_08038164: .4byte 0x03002360 +_08038168: .4byte 0x02022C90 +_0803816C: .4byte 0x02037290 +_08038170: .4byte 0x02023FDE +_08038174: .4byte 0x080381C1 + thumb_func_end BattleMainCB2 + + thumb_func_start FreeRestoreBattleData +FreeRestoreBattleData: @ 0x08038178 + push {lr} + ldr r1, _080381B0 + ldr r0, _080381B4 + ldr r0, [r0] + str r0, [r1] + ldr r2, _080381B8 + movs r0, #3 + strb r0, [r2, #0x15] + ldr r0, _080381BC + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + bl ZeroEnemyPartyMons + movs r0, #0x5a + bl m4aSongNumStop + bl FreeMonSpritesGfx + bl FreeBattleSpritesData + bl FreeBattleResources + pop {r0} + bx r0 + .align 2, 0 +_080381B0: .4byte 0x03002360 +_080381B4: .4byte 0x03005A60 +_080381B8: .4byte 0x020397C8 +_080381BC: .4byte 0x00000439 + thumb_func_end FreeRestoreBattleData + + thumb_func_start CB2_QuitRecordedBattle +CB2_QuitRecordedBattle: @ 0x080381C0 + push {lr} + bl UpdatePaletteFade + ldr r0, _080381F4 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080381EE + ldr r0, _080381F8 + bl m4aMPlayStop + ldr r0, _080381FC + bl m4aMPlayStop + bl FreeRestoreBattleData + bl FreeAllWindowBuffers + ldr r0, _08038200 + ldr r0, [r0, #8] + bl SetMainCallback2 +_080381EE: + pop {r0} + bx r0 + .align 2, 0 +_080381F4: .4byte 0x02037C74 +_080381F8: .4byte 0x03007510 +_080381FC: .4byte 0x03007550 +_08038200: .4byte 0x03002360 + thumb_func_end CB2_QuitRecordedBattle + + thumb_func_start sub_08038204 +sub_08038204: @ 0x08038204 + movs r1, #0 + strh r1, [r0, #0x2e] + ldr r1, _08038210 + str r1, [r0, #0x1c] + bx lr + .align 2, 0 +_08038210: .4byte 0x08038215 + thumb_func_end sub_08038204 + + thumb_func_start sub_08038214 +sub_08038214: @ 0x08038214 + push {r4, r5, lr} + adds r3, r0, #0 + ldr r5, _0803822C + movs r0, #0x2e + ldrsh r1, [r3, r0] + cmp r1, #1 + beq _08038248 + cmp r1, #1 + bgt _08038230 + cmp r1, #0 + beq _08038236 + b _080382B8 + .align 2, 0 +_0803822C: .4byte 0x0201C000 +_08038230: + cmp r1, #2 + beq _080382A4 + b _080382B8 +_08038236: + ldrh r0, [r3, #0x2e] + adds r0, #1 + strh r0, [r3, #0x2e] + strh r1, [r3, #0x30] + ldr r0, _080382A0 + strh r0, [r3, #0x32] + strh r1, [r3, #0x34] + movs r0, #1 + strh r0, [r3, #0x36] +_08038248: + ldrh r0, [r3, #0x36] + subs r0, #1 + strh r0, [r3, #0x36] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080382B8 + movs r0, #2 + strh r0, [r3, #0x36] + movs r4, #0x30 + ldrsh r2, [r3, r4] + movs r0, #0x34 + ldrsh r1, [r3, r0] + lsls r1, r1, #5 + adds r2, r2, r1 + movs r4, #0x32 + ldrsh r0, [r3, r4] + subs r0, r0, r1 + movs r4, #0x3d + lsls r0, r0, #1 + adds r0, r0, r5 + lsls r2, r2, #1 + adds r2, r2, r5 + movs r1, #0x1c +_08038276: + strh r4, [r2] + strh r4, [r0] + adds r0, #4 + adds r2, #4 + subs r1, #2 + cmp r1, #0 + bge _08038276 + ldrh r0, [r3, #0x34] + adds r0, #1 + strh r0, [r3, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x15 + bne _080382B8 + ldrh r0, [r3, #0x2e] + adds r0, #1 + strh r0, [r3, #0x2e] + movs r0, #0x20 + strh r0, [r3, #0x30] + b _080382B8 + .align 2, 0 +_080382A0: .4byte 0x00000281 +_080382A4: + ldrh r0, [r3, #0x30] + subs r0, #1 + strh r0, [r3, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x14 + bne _080382B8 + ldr r0, _080382C0 + bl SetMainCallback2 +_080382B8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080382C0: .4byte 0x080365B5 + thumb_func_end sub_08038214 + + thumb_func_start CreateNPCTrainerParty +CreateNPCTrainerParty: @ 0x080382C4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x24 + str r0, [sp, #0x10] + lsls r1, r1, #0x10 + lsrs r3, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r0, #0 + mov sb, r0 + movs r0, #0x80 + lsls r0, r0, #3 + cmp r3, r0 + bne _080382EA + movs r0, #0 + b _08038696 +_080382EA: + ldr r4, _08038328 + ldr r0, [r4] + ldr r1, _0803832C + ands r0, r1 + lsls r3, r3, #5 + str r3, [sp, #0x20] + cmp r0, #8 + beq _080382FC + b _0803868E +_080382FC: + cmp r2, #1 + bne _08038304 + bl ZeroEnemyPartyMons +_08038304: + ldr r0, [r4] + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08038334 + ldr r0, _08038330 + ldr r1, [sp, #0x20] + adds r2, r1, r0 + ldrb r1, [r2, #0x18] + movs r3, #3 + str r3, [sp, #0x18] + adds r4, r0, #0 + cmp r1, #3 + bhi _08038340 + adds r2, r1, #0 + str r2, [sp, #0x18] + b _08038340 + .align 2, 0 +_08038328: .4byte 0x02022C90 +_0803832C: .4byte 0x043F0908 +_08038330: .4byte 0x082E383C +_08038334: + ldr r1, _0803835C + ldr r2, [sp, #0x20] + adds r0, r2, r1 + ldrb r0, [r0, #0x18] + str r0, [sp, #0x18] + adds r4, r1, #0 +_08038340: + movs r3, #0 + str r3, [sp, #0x14] + ldr r0, [sp, #0x18] + cmp r3, r0 + blt _0803834C + b _0803867E +_0803834C: + ldr r2, [sp, #0x20] + adds r1, r2, r4 + ldrb r0, [r1, #0x12] + cmp r0, #1 + bne _08038360 + movs r3, #0x80 + mov sl, r3 + b _08038372 + .align 2, 0 +_0803835C: .4byte 0x082E383C +_08038360: + ldrb r1, [r1, #2] + movs r0, #0x80 + ands r0, r1 + movs r1, #0x88 + mov sl, r1 + cmp r0, #0 + beq _08038372 + movs r2, #0x78 + mov sl, r2 +_08038372: + movs r6, #0 + ldr r2, [sp, #0x20] + adds r1, r4, #4 + adds r0, r2, r1 + ldrb r0, [r0] + ldr r3, [sp, #0x14] + adds r3, #1 + str r3, [sp, #0x1c] + cmp r0, #0xff + beq _0803839E + adds r3, r1, #0 +_08038388: + adds r1, r2, #0 + adds r0, r6, r2 + adds r0, r0, r3 + ldrb r0, [r0] + add sb, r0 + adds r6, #1 + adds r1, r6, r1 + adds r1, r1, r3 + ldrb r0, [r1] + cmp r0, #0xff + bne _08038388 +_0803839E: + ldr r1, [sp, #0x20] + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, #1 + beq _0803844C + cmp r0, #1 + bgt _080383B2 + cmp r0, #0 + beq _080383C0 + b _08038670 +_080383B2: + cmp r0, #2 + bne _080383B8 + b _08038510 +_080383B8: + cmp r0, #3 + bne _080383BE + b _080385A8 +_080383BE: + b _08038670 +_080383C0: + adds r0, r4, #0 + adds r0, #0x1c + ldr r2, [sp, #0x20] + adds r0, r2, r0 + ldr r4, [r0] + movs r6, #0 + ldr r3, [sp, #0x14] + lsls r2, r3, #3 + adds r0, r2, r4 + ldrh r1, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r1, _08038448 + adds r0, r0, r1 + ldrb r0, [r0] + adds r5, r2, #0 + cmp r0, #0xff + beq _08038406 + adds r3, r1, #0 +_080383E8: + adds r0, r2, r4 + ldrh r0, [r0, #4] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + adds r0, r6, r1 + adds r0, r0, r3 + ldrb r0, [r0] + add sb, r0 + adds r6, #1 + adds r1, r6, r1 + adds r1, r1, r3 + ldrb r0, [r1] + cmp r0, #0xff + bne _080383E8 +_08038406: + mov r2, sb + lsls r0, r2, #8 + add sl, r0 + adds r4, r5, r4 + ldrh r1, [r4] + lsls r0, r1, #5 + subs r0, r0, r1 + movs r1, #0xff + bl __divsi3 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r3, [sp, #0x14] + movs r1, #0x64 + adds r0, r3, #0 + muls r0, r1, r0 + ldr r2, [sp, #0x10] + adds r0, r2, r0 + ldrh r1, [r4, #4] + ldrb r2, [r4, #2] + movs r3, #1 + str r3, [sp] + mov r3, sl + str r3, [sp, #4] + movs r3, #2 + str r3, [sp, #8] + movs r3, #0 + str r3, [sp, #0xc] + adds r3, r6, #0 + bl CreateMon + b _08038670 + .align 2, 0 +_08038448: .4byte 0x082EA31C +_0803844C: + adds r0, r4, #0 + adds r0, #0x1c + ldr r1, [sp, #0x20] + adds r0, r1, r0 + ldr r7, [r0] + movs r6, #0 + ldr r3, [sp, #0x14] + lsls r2, r3, #4 + adds r0, r2, r7 + ldrh r1, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r1, _08038508 + adds r0, r0, r1 + ldrb r0, [r0] + mov r8, r2 + cmp r0, #0xff + beq _08038492 + adds r3, r1, #0 +_08038474: + adds r0, r2, r7 + ldrh r0, [r0, #4] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + adds r0, r6, r1 + adds r0, r0, r3 + ldrb r0, [r0] + add sb, r0 + adds r6, #1 + adds r1, r6, r1 + adds r1, r1, r3 + ldrb r0, [r1] + cmp r0, #0xff + bne _08038474 +_08038492: + mov r2, sb + lsls r0, r2, #8 + add sl, r0 + mov r3, r8 + adds r4, r3, r7 + ldrh r1, [r4] + lsls r0, r1, #5 + subs r0, r0, r1 + movs r1, #0xff + bl __divsi3 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, [sp, #0x14] + movs r1, #0x64 + adds r5, r0, #0 + muls r5, r1, r5 + ldr r2, [sp, #0x10] + adds r5, r2, r5 + ldrh r1, [r4, #4] + ldrb r2, [r4, #2] + movs r0, #1 + str r0, [sp] + mov r3, sl + str r3, [sp, #4] + movs r0, #2 + str r0, [sp, #8] + movs r0, #0 + str r0, [sp, #0xc] + adds r0, r5, #0 + adds r3, r6, #0 + bl CreateMon + movs r6, #0 + mov r0, r8 + adds r0, #6 + adds r4, r7, r0 +_080384DC: + adds r1, r6, #0 + adds r1, #0xd + adds r0, r5, #0 + adds r2, r4, #0 + bl SetMonData + adds r1, r6, #0 + adds r1, #0x11 + ldrh r0, [r4] + lsls r2, r0, #1 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r0, _0803850C + adds r2, r2, r0 + adds r0, r5, #0 + bl SetMonData + adds r4, #2 + adds r6, #1 + cmp r6, #3 + ble _080384DC + b _08038670 + .align 2, 0 +_08038508: .4byte 0x082EA31C +_0803850C: .4byte 0x082ED224 +_08038510: + adds r0, r4, #0 + adds r0, #0x1c + ldr r1, [sp, #0x20] + adds r0, r1, r0 + ldr r4, [r0] + movs r6, #0 + ldr r3, [sp, #0x14] + lsls r2, r3, #3 + adds r0, r2, r4 + ldrh r1, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r1, _080385A4 + adds r0, r0, r1 + ldrb r0, [r0] + adds r5, r2, #0 + cmp r0, #0xff + beq _08038556 + adds r3, r1, #0 +_08038538: + adds r0, r2, r4 + ldrh r0, [r0, #4] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + adds r0, r6, r1 + adds r0, r0, r3 + ldrb r0, [r0] + add sb, r0 + adds r6, #1 + adds r1, r6, r1 + adds r1, r1, r3 + ldrb r0, [r1] + cmp r0, #0xff + bne _08038538 +_08038556: + mov r2, sb + lsls r0, r2, #8 + add sl, r0 + adds r5, r5, r4 + ldrh r1, [r5] + lsls r0, r1, #5 + subs r0, r0, r1 + movs r1, #0xff + bl __divsi3 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r3, [sp, #0x14] + movs r0, #0x64 + adds r4, r3, #0 + muls r4, r0, r4 + ldr r1, [sp, #0x10] + adds r4, r1, r4 + ldrh r1, [r5, #4] + ldrb r2, [r5, #2] + movs r0, #1 + str r0, [sp] + mov r3, sl + str r3, [sp, #4] + movs r0, #2 + str r0, [sp, #8] + movs r0, #0 + str r0, [sp, #0xc] + adds r0, r4, #0 + adds r3, r6, #0 + bl CreateMon + adds r5, #6 + adds r0, r4, #0 + movs r1, #0xc + adds r2, r5, #0 + bl SetMonData + b _08038670 + .align 2, 0 +_080385A4: .4byte 0x082EA31C +_080385A8: + adds r0, r4, #0 + adds r0, #0x1c + ldr r1, [sp, #0x20] + adds r0, r1, r0 + ldr r7, [r0] + movs r6, #0 + ldr r3, [sp, #0x14] + lsls r2, r3, #4 + adds r0, r2, r7 + ldrh r1, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r1, _080386A8 + adds r0, r0, r1 + ldrb r0, [r0] + mov r8, r2 + cmp r0, #0xff + beq _080385EE + adds r3, r1, #0 +_080385D0: + adds r0, r2, r7 + ldrh r0, [r0, #4] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + adds r0, r6, r1 + adds r0, r0, r3 + ldrb r0, [r0] + add sb, r0 + adds r6, #1 + adds r1, r6, r1 + adds r1, r1, r3 + ldrb r0, [r1] + cmp r0, #0xff + bne _080385D0 +_080385EE: + mov r2, sb + lsls r0, r2, #8 + add sl, r0 + mov r3, r8 + adds r5, r3, r7 + ldrh r1, [r5] + lsls r0, r1, #5 + subs r0, r0, r1 + movs r1, #0xff + bl __divsi3 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, [sp, #0x14] + movs r1, #0x64 + adds r4, r0, #0 + muls r4, r1, r4 + ldr r2, [sp, #0x10] + adds r4, r2, r4 + ldrh r1, [r5, #4] + ldrb r2, [r5, #2] + movs r0, #1 + str r0, [sp] + mov r3, sl + str r3, [sp, #4] + movs r0, #2 + str r0, [sp, #8] + movs r0, #0 + str r0, [sp, #0xc] + adds r0, r4, #0 + adds r3, r6, #0 + bl CreateMon + adds r5, #6 + adds r0, r4, #0 + movs r1, #0xc + adds r2, r5, #0 + bl SetMonData + movs r6, #0 + adds r5, r4, #0 + mov r0, r8 + adds r0, #8 + adds r4, r7, r0 +_08038646: + adds r1, r6, #0 + adds r1, #0xd + adds r0, r5, #0 + adds r2, r4, #0 + bl SetMonData + adds r1, r6, #0 + adds r1, #0x11 + ldrh r0, [r4] + lsls r2, r0, #1 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r0, _080386AC + adds r2, r2, r0 + adds r0, r5, #0 + bl SetMonData + adds r4, #2 + adds r6, #1 + cmp r6, #3 + ble _08038646 +_08038670: + ldr r0, [sp, #0x1c] + str r0, [sp, #0x14] + ldr r4, _080386B0 + ldr r1, [sp, #0x18] + cmp r0, r1 + bge _0803867E + b _0803834C +_0803867E: + ldr r2, _080386B4 + ldr r0, _080386B0 + ldr r3, [sp, #0x20] + adds r0, r3, r0 + ldrb r1, [r0, #0x12] + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] +_0803868E: + ldr r0, _080386B0 + ldr r1, [sp, #0x20] + adds r0, r1, r0 + ldrb r0, [r0, #0x18] +_08038696: + add sp, #0x24 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080386A8: .4byte 0x082EA31C +_080386AC: .4byte 0x082ED224 +_080386B0: .4byte 0x082E383C +_080386B4: .4byte 0x02022C90 + thumb_func_end CreateNPCTrainerParty + + thumb_func_start sub_080386B8 +sub_080386B8: @ 0x080386B8 + push {lr} + ldr r0, _080386D8 + ldrh r0, [r0] + subs r0, #0x6f + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x30 + bhi _080386D2 + movs r1, #0x98 + lsls r1, r1, #8 + movs r0, #8 + bl SetGpuReg +_080386D2: + pop {r0} + bx r0 + .align 2, 0 +_080386D8: .4byte 0x04000006 + thumb_func_end sub_080386B8 + + thumb_func_start VBlankCB_Battle +VBlankCB_Battle: @ 0x080386DC + push {lr} + ldr r0, _0803877C + ldr r0, [r0] + ldr r1, _08038780 + ands r0, r1 + cmp r0, #0 + bne _080386EE + bl Random +_080386EE: + ldr r0, _08038784 + ldrh r1, [r0] + movs r0, #0x10 + bl SetGpuReg + ldr r0, _08038788 + ldrh r1, [r0] + movs r0, #0x12 + bl SetGpuReg + ldr r0, _0803878C + ldrh r1, [r0] + movs r0, #0x14 + bl SetGpuReg + ldr r0, _08038790 + ldrh r1, [r0] + movs r0, #0x16 + bl SetGpuReg + ldr r0, _08038794 + ldrh r1, [r0] + movs r0, #0x18 + bl SetGpuReg + ldr r0, _08038798 + ldrh r1, [r0] + movs r0, #0x1a + bl SetGpuReg + ldr r0, _0803879C + ldrh r1, [r0] + movs r0, #0x1c + bl SetGpuReg + ldr r0, _080387A0 + ldrh r1, [r0] + movs r0, #0x1e + bl SetGpuReg + ldr r0, _080387A4 + ldrh r1, [r0] + movs r0, #0x40 + bl SetGpuReg + ldr r0, _080387A8 + ldrh r1, [r0] + movs r0, #0x44 + bl SetGpuReg + ldr r0, _080387AC + ldrh r1, [r0] + movs r0, #0x42 + bl SetGpuReg + ldr r0, _080387B0 + ldrh r1, [r0] + movs r0, #0x46 + bl SetGpuReg + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + bl ScanlineEffect_InitHBlankDmaTransfer + pop {r0} + bx r0 + .align 2, 0 +_0803877C: .4byte 0x02022C90 +_08038780: .4byte 0x013F0102 +_08038784: .4byte 0x02022AC8 +_08038788: .4byte 0x02022ACA +_0803878C: .4byte 0x02022ACC +_08038790: .4byte 0x02022ACE +_08038794: .4byte 0x02022AD0 +_08038798: .4byte 0x02022AD2 +_0803879C: .4byte 0x02022AD4 +_080387A0: .4byte 0x02022AD6 +_080387A4: .4byte 0x02022AD8 +_080387A8: .4byte 0x02022ADA +_080387AC: .4byte 0x02022ADC +_080387B0: .4byte 0x02022ADE + thumb_func_end VBlankCB_Battle + + thumb_func_start sub_080387B4 +sub_080387B4: @ 0x080387B4 + bx lr + .align 2, 0 + thumb_func_end sub_080387B4 + + thumb_func_start sub_080387B8 +sub_080387B8: @ 0x080387B8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _080387D8 + movs r1, #0x32 + ldrsh r0, [r5, r1] + movs r1, #0xff + lsls r1, r1, #8 + ands r0, r1 + lsrs r0, r0, #8 + ldrh r1, [r5, #0x30] + adds r0, r0, r1 + strh r0, [r5, #0x20] + b _080387EA +_080387D8: + movs r1, #0x32 + ldrsh r0, [r5, r1] + movs r1, #0xff + lsls r1, r1, #8 + ands r0, r1 + asrs r0, r0, #8 + ldrh r1, [r5, #0x30] + subs r1, r1, r0 + strh r1, [r5, #0x20] +_080387EA: + movs r1, #0xc0 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r1, [r5, #0x32] + adds r0, r0, r1 + strh r0, [r5, #0x32] + adds r0, r5, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0803881E + ldr r4, _08038824 + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl FreeSpritePaletteByTag + adds r0, r5, #0 + bl FreeSpriteOamMatrix + adds r0, r5, #0 + bl DestroySprite +_0803881E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08038824: .4byte 0x00002710 + thumb_func_end sub_080387B8 + + thumb_func_start sub_08038828 +sub_08038828: @ 0x08038828 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl StartSpriteAffineAnim + ldr r0, _08038844 + str r0, [r4, #0x1c] + movs r0, #0x68 + bl PlaySE + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08038844: .4byte 0x080387B9 + thumb_func_end sub_08038828 + + thumb_func_start sub_08038848 +sub_08038848: @ 0x08038848 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + ldr r0, _08038890 + adds r0, #0x25 + ldrb r2, [r0] + ldr r0, _08038894 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080388B8 + ldr r1, _08038898 + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0, #0x18] + cmp r0, #1 + beq _080388A4 + cmp r0, #1 + bgt _0803889C + cmp r0, #0 + beq _080388B8 + b _080388C0 + .align 2, 0 +_08038890: .4byte 0x02024118 +_08038894: .4byte 0x02022C90 +_08038898: .4byte 0x020226A0 +_0803889C: + cmp r0, #2 + beq _080388B8 + cmp r0, #3 + bne _080388C0 +_080388A4: + ldr r0, _080388B0 + str r0, [sp, #4] + ldr r1, _080388B4 + str r1, [sp, #8] + b _080388C0 + .align 2, 0 +_080388B0: .4byte 0x020243E8 +_080388B4: .4byte 0x02024190 +_080388B8: + ldr r2, _08038A0C + str r2, [sp, #4] + ldr r3, _08038A10 + str r3, [sp, #8] +_080388C0: + movs r7, #0 + movs r0, #0 + mov r8, r0 + ldr r1, [sp] + lsls r1, r1, #2 + str r1, [sp, #0xc] + movs r2, #0xce + lsls r2, r2, #1 + mov sl, r2 + mov sb, r0 +_080388D4: + movs r0, #0x64 + mov r4, r8 + muls r4, r0, r4 + ldr r3, [sp, #4] + adds r4, r3, r4 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r0, r4, #0 + movs r1, #0x37 + bl GetMonData + adds r1, r0, #0 + cmp r5, #0 + beq _08038944 + cmp r5, sl + beq _08038918 + cmp r6, #0 + beq _08038918 + cmp r1, #0 + bne _08038918 + movs r0, #1 + mov r2, sb + lsls r0, r2 + orrs r7, r0 +_08038918: + cmp r5, #0 + beq _08038944 + cmp r6, #0 + beq _08038930 + cmp r5, sl + beq _08038928 + cmp r1, #0 + beq _08038930 +_08038928: + movs r0, #2 + mov r3, sb + lsls r0, r3 + orrs r7, r0 +_08038930: + cmp r5, #0 + beq _08038944 + cmp r5, sl + beq _08038944 + cmp r6, #0 + bne _08038944 + movs r0, #3 + mov r1, sb + lsls r0, r1 + orrs r7, r0 +_08038944: + movs r2, #2 + add sb, r2 + movs r3, #1 + add r8, r3 + mov r0, r8 + cmp r0, #5 + ble _080388D4 + ldr r1, _08038A14 + ldr r2, [sp, #0xc] + ldr r3, [sp] + adds r0, r2, r3 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r7, [r0, #0xe] + movs r7, #0 + movs r0, #0 + mov r8, r0 + movs r1, #0xce + lsls r1, r1, #1 + mov sl, r1 + mov sb, r0 +_0803896E: + movs r0, #0x64 + mov r4, r8 + muls r4, r0, r4 + ldr r2, [sp, #8] + adds r4, r2, r4 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r0, r4, #0 + movs r1, #0x37 + bl GetMonData + adds r1, r0, #0 + cmp r5, #0 + beq _080389DE + cmp r5, sl + beq _080389B2 + cmp r6, #0 + beq _080389B2 + cmp r1, #0 + bne _080389B2 + movs r0, #1 + mov r3, sb + lsls r0, r3 + orrs r7, r0 +_080389B2: + cmp r5, #0 + beq _080389DE + cmp r6, #0 + beq _080389CA + cmp r5, sl + beq _080389C2 + cmp r1, #0 + beq _080389CA +_080389C2: + movs r0, #2 + mov r1, sb + lsls r0, r1 + orrs r7, r0 +_080389CA: + cmp r5, #0 + beq _080389DE + cmp r5, sl + beq _080389DE + cmp r6, #0 + bne _080389DE + movs r0, #3 + mov r2, sb + lsls r0, r2 + orrs r7, r0 +_080389DE: + movs r3, #2 + add sb, r3 + movs r0, #1 + add r8, r0 + mov r1, r8 + cmp r1, #5 + ble _0803896E + ldr r1, _08038A14 + ldr r2, [sp, #0xc] + ldr r3, [sp] + adds r0, r2, r3 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r7, [r0, #0x10] + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08038A0C: .4byte 0x02024190 +_08038A10: .4byte 0x020243E8 +_08038A14: .4byte 0x03005B60 + thumb_func_end sub_08038848 + + thumb_func_start sub_08038A18 +sub_08038A18: @ 0x08038A18 + push {r4, lr} + sub sp, #4 + movs r0, #0 + bl SetHBlankCallback + movs r0, #0 + bl SetVBlankCallback + ldr r0, _08038A54 + ldr r1, [r0] + movs r2, #0x21 + rsbs r2, r2, #0 + ands r1, r2 + str r1, [r0] + ldr r0, _08038A58 + ands r0, r1 + cmp r0, #0 + beq _08038A60 + ldr r0, _08038A5C + ldr r0, [r0, #8] + bl SetMainCallback2 + bl FreeBattleResources + bl FreeBattleSpritesData + bl FreeMonSpritesGfx + b _08038B6A + .align 2, 0 +_08038A54: .4byte 0x02022C90 +_08038A58: .4byte 0x003F0100 +_08038A5C: .4byte 0x03002360 +_08038A60: + str r0, [sp] + movs r1, #0xc0 + lsls r1, r1, #0x13 + ldr r2, _08038B74 + mov r0, sp + bl CpuSet + movs r0, #0x4c + movs r1, #0 + bl SetGpuReg + movs r0, #0x40 + movs r1, #0xf0 + bl SetGpuReg + ldr r4, _08038B78 + movs r0, #0x44 + adds r1, r4, #0 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0 + bl SetGpuReg + movs r0, #0x4a + movs r1, #0 + bl SetGpuReg + ldr r1, _08038B7C + movs r0, #0xf0 + strh r0, [r1] + ldr r0, _08038B80 + strh r4, [r0] + bl ScanlineEffect_Clear + ldr r0, _08038B84 + movs r3, #0xf0 + movs r1, #0xf0 + lsls r1, r1, #3 + adds r2, r0, r1 + movs r1, #0x4f +_08038AB2: + strh r3, [r0] + strh r3, [r2] + adds r2, #2 + adds r0, #2 + subs r1, #1 + cmp r1, #0 + bge _08038AB2 + movs r1, #0x50 + ldr r0, _08038B84 + ldr r3, _08038B88 + movs r4, #0x82 + lsls r4, r4, #4 + adds r2, r0, r4 + adds r0, #0xa0 +_08038ACE: + strh r3, [r0] + strh r3, [r2] + adds r2, #2 + adds r0, #2 + adds r1, #1 + cmp r1, #0x9f + ble _08038ACE + bl ResetPaletteFade + ldr r0, _08038B8C + movs r4, #0 + strh r4, [r0] + ldr r0, _08038B90 + strh r4, [r0] + ldr r0, _08038B94 + strh r4, [r0] + ldr r0, _08038B98 + strh r4, [r0] + ldr r0, _08038B9C + strh r4, [r0] + ldr r0, _08038BA0 + strh r4, [r0] + ldr r0, _08038BA4 + strh r4, [r0] + ldr r0, _08038BA8 + strh r4, [r0] + bl sub_08035528 + ldr r0, _08038BAC + movs r1, #0 + movs r2, #0x40 + bl LoadCompressedPalette + bl LoadBattleMenuWindowGfx + bl ResetSpriteData + bl ResetTasks + bl DrawBattleEntryBackground + movs r0, #0x4a + movs r1, #0x37 + bl SetGpuReg + bl FreeAllSpritePalettes + ldr r1, _08038BB0 + movs r0, #4 + strb r0, [r1] + ldr r0, _08038BB4 + bl SetVBlankCallback + ldr r0, _08038BB8 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08038BBC + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r2, #0x87 + lsls r2, r2, #1 + strh r2, [r1, #0xa] + movs r2, #0x5a + strh r2, [r1, #0xc] + movs r2, #1 + strh r2, [r1, #0x12] + bl sub_08038848 + ldr r0, _08038BC0 + bl SetMainCallback2 + ldr r0, _08038BC4 + strb r4, [r0] +_08038B6A: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08038B74: .4byte 0x05006000 +_08038B78: .4byte 0x00005051 +_08038B7C: .4byte 0x02022AD8 +_08038B80: .4byte 0x02022ADA +_08038B84: .4byte 0x020388C8 +_08038B88: .4byte 0x0000FF10 +_08038B8C: .4byte 0x02022AC8 +_08038B90: .4byte 0x02022ACA +_08038B94: .4byte 0x02022ACC +_08038B98: .4byte 0x02022ACE +_08038B9C: .4byte 0x02022AD0 +_08038BA0: .4byte 0x02022AD2 +_08038BA4: .4byte 0x02022AD4 +_08038BA8: .4byte 0x02022AD6 +_08038BAC: .4byte 0x08C004EC +_08038BB0: .4byte 0x030030BC +_08038BB4: .4byte 0x080386DD +_08038BB8: .4byte 0x08035BC9 +_08038BBC: .4byte 0x03005B60 +_08038BC0: .4byte 0x08038BC9 +_08038BC4: .4byte 0x02023FD6 + thumb_func_end sub_08038A18 + + thumb_func_start sub_08038BC8 +sub_08038BC8: @ 0x08038BC8 + push {lr} + bl sub_08038BE8 + bl AnimateSprites + bl BuildOamBuffer + bl RunTextPrinters + bl UpdatePaletteFade + bl RunTasks + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08038BC8 + + thumb_func_start sub_08038BE8 +sub_08038BE8: @ 0x08038BE8 + push {r4, r5, r6, lr} + sub sp, #8 + ldr r0, _08038C04 + ldrb r1, [r0] + adds r4, r0, #0 + cmp r1, #9 + bls _08038BF8 + b _08038E7A +_08038BF8: + lsls r0, r1, #2 + ldr r1, _08038C08 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08038C04: .4byte 0x02023FD6 +_08038C08: .4byte 0x08038C0C +_08038C0C: @ jump table + .4byte _08038C34 @ case 0 + .4byte _08038C54 @ case 1 + .4byte _08038C76 @ case 2 + .4byte _08038D7C @ case 3 + .4byte _08038DB4 @ case 4 + .4byte _08038DCC @ case 5 + .4byte _08038DE0 @ case 6 + .4byte _08038E00 @ case 7 + .4byte _08038E1A @ case 8 + .4byte _08038E38 @ case 9 +_08038C34: + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + ldr r1, _08038C50 + movs r0, #0xff + strb r0, [r1, #1] + b _08038E28 + .align 2, 0 +_08038C50: .4byte 0x02023FD6 +_08038C54: + ldrb r0, [r4, #1] + subs r0, #1 + strb r0, [r4, #1] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _08038C64 + b _08038E7A +_08038C64: + movs r0, #1 + rsbs r0, r0, #0 + str r1, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + b _08038DC0 +_08038C76: + ldr r0, _08038D04 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08038C84 + b _08038E7A +_08038C84: + bl GetRecordedBattleFrontierFacility + ldr r2, _08038D08 + ldr r1, _08038D0C + adds r2, r2, r1 + movs r1, #1 + ands r1, r0 + lsls r1, r1, #2 + ldrb r3, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08038D10 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + movs r3, #2 + cmp r0, #0 + beq _08038CB0 + movs r3, #4 +_08038CB0: + movs r4, #0 + ldr r6, _08038D14 + cmp r4, r3 + bge _08038CD6 + ldr r1, _08038D18 + ldrb r0, [r1] + cmp r0, #3 + bne _08038CD6 + movs r5, #0xff + adds r2, r1, #0 +_08038CC4: + adds r2, #0x1c + adds r4, #1 + cmp r4, r3 + bge _08038CD6 + ldrh r1, [r2] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #3 + beq _08038CC4 +_08038CD6: + ldr r0, [r6] + ldr r1, _08038D1C + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + bne _08038D60 + cmp r4, r3 + bne _08038D60 + ldr r0, _08038D20 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08038D28 + bl FreeAllWindowBuffers + ldr r0, _08038D24 + bl SetMainCallback2 + b _08038E7A + .align 2, 0 +_08038D04: .4byte 0x02037C74 +_08038D08: .4byte 0x03002360 +_08038D0C: .4byte 0x00000439 +_08038D10: .4byte 0x02022C90 +_08038D14: .4byte 0x03005AF0 +_08038D18: .4byte 0x020226A0 +_08038D1C: .4byte 0x00000CA9 +_08038D20: .4byte 0x000008D2 +_08038D24: .4byte 0x08038F5D +_08038D28: + ldr r2, _08038D3C + ldr r1, _08038D40 + adds r0, r2, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _08038D44 + ldr r0, [r2, #8] + b _08038D64 + .align 2, 0 +_08038D3C: .4byte 0x03002360 +_08038D40: .4byte 0x00000439 +_08038D44: + ldr r0, _08038D58 + ldrb r0, [r0] + cmp r0, #0 + bne _08038E26 + ldr r0, _08038D5C + movs r1, #5 + bl CreateTask + b _08038E26 + .align 2, 0 +_08038D58: .4byte 0x030031C4 +_08038D5C: .4byte 0x080B3251 +_08038D60: + ldr r0, _08038D78 + ldr r0, [r0, #8] +_08038D64: + bl SetMainCallback2 + bl FreeBattleResources + bl FreeBattleSpritesData + bl FreeMonSpritesGfx + b _08038E7A + .align 2, 0 +_08038D78: .4byte 0x03002360 +_08038D7C: + movs r0, #0 + str r0, [sp, #4] + movs r1, #0xc0 + lsls r1, r1, #0x13 + ldr r2, _08038DB0 + add r0, sp, #4 + bl CpuSet + movs r4, #0 +_08038D8E: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl LoadChosenBattleElement + adds r4, #1 + cmp r4, #1 + ble _08038D8E + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + b _08038E26 + .align 2, 0 +_08038DB0: .4byte 0x05006000 +_08038DB4: + ldr r0, _08038DC8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08038E7A +_08038DC0: + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + b _08038E7A + .align 2, 0 +_08038DC8: .4byte 0x02037C74 +_08038DCC: + ldr r0, _08038DDC + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08038E7A + b _08038E26 + .align 2, 0 +_08038DDC: .4byte 0x080B3251 +_08038DE0: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08038E7A + bl sub_0800A8D4 + ldr r0, _08038DFC + movs r1, #0 + bl sub_0814FA04 + b _08038E26 + .align 2, 0 +_08038DFC: .4byte 0x08226D53 +_08038E00: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08038E7A + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08038E7A + b _08038E26 +_08038E1A: + ldr r0, _08038E30 + ldrb r0, [r0] + cmp r0, #0 + bne _08038E26 + bl sub_0800A7F8 +_08038E26: + ldr r1, _08038E34 +_08038E28: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _08038E7A + .align 2, 0 +_08038E30: .4byte 0x0300319C +_08038E34: .4byte 0x02023FD6 +_08038E38: + ldr r2, _08038E84 + ldr r1, _08038E88 + adds r0, r2, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + adds r3, r2, #0 + cmp r0, #0 + beq _08038E5A + ldr r0, _08038E8C + ldrb r0, [r0] + cmp r0, #0 + bne _08038E5A + ldr r0, _08038E90 + ldrb r0, [r0] + cmp r0, #1 + beq _08038E7A +_08038E5A: + ldr r0, _08038E88 + adds r2, r3, r0 + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldr r0, [r3, #8] + bl SetMainCallback2 + bl FreeBattleResources + bl FreeBattleSpritesData + bl FreeMonSpritesGfx +_08038E7A: + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08038E84: .4byte 0x03002360 +_08038E88: .4byte 0x00000439 +_08038E8C: .4byte 0x0300319C +_08038E90: .4byte 0x030031C4 + thumb_func_end sub_08038BE8 + + thumb_func_start sub_08038E94 +sub_08038E94: @ 0x08038E94 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0 + cmp r1, #6 + bhi _08038F54 + lsls r0, r1, #2 + ldr r1, _08038EB0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08038EB0: .4byte 0x08038EB4 +_08038EB4: @ jump table + .4byte _08038ED0 @ case 0 + .4byte _08038EE4 @ case 1 + .4byte _08038EF8 @ case 2 + .4byte _08038F0C @ case 3 + .4byte _08038F20 @ case 4 + .4byte _08038F34 @ case 5 + .4byte _08038F48 @ case 6 +_08038ED0: + ldr r0, _08038EE0 + lsls r1, r2, #2 + adds r1, r1, r0 + ldrb r0, [r1] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + b _08038F54 + .align 2, 0 +_08038EE0: .4byte 0x082EB860 +_08038EE4: + ldr r0, _08038EF4 + lsls r1, r2, #2 + adds r1, r1, r0 + ldrb r0, [r1] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1e + b _08038F54 + .align 2, 0 +_08038EF4: .4byte 0x082EB860 +_08038EF8: + ldr r0, _08038F08 + lsls r1, r2, #2 + adds r1, r1, r0 + ldrh r0, [r1] + lsls r0, r0, #0x17 + lsrs r0, r0, #0x1b + b _08038F54 + .align 2, 0 +_08038F08: .4byte 0x082EB860 +_08038F0C: + ldr r0, _08038F1C + lsls r1, r2, #2 + adds r1, r1, r0 + ldrb r0, [r1, #1] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1e + b _08038F54 + .align 2, 0 +_08038F1C: .4byte 0x082EB860 +_08038F20: + ldr r0, _08038F30 + lsls r1, r2, #2 + adds r1, r1, r0 + ldrb r0, [r1, #1] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1f + b _08038F54 + .align 2, 0 +_08038F30: .4byte 0x082EB860 +_08038F34: + ldr r0, _08038F44 + lsls r1, r2, #2 + adds r1, r1, r0 + ldrb r0, [r1, #1] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + b _08038F54 + .align 2, 0 +_08038F44: .4byte 0x082EB860 +_08038F48: + ldr r0, _08038F58 + lsls r1, r2, #2 + adds r1, r1, r0 + ldr r0, [r1] + lsls r0, r0, #8 + lsrs r0, r0, #0x16 +_08038F54: + pop {r1} + bx r1 + .align 2, 0 +_08038F58: .4byte 0x082EB860 + thumb_func_end sub_08038E94 + + thumb_func_start sub_08038F5C +sub_08038F5C: @ 0x08038F5C + push {r4, lr} + sub sp, #8 + movs r0, #0 + bl SetHBlankCallback + movs r0, #0 + bl SetVBlankCallback + movs r4, #0 + str r4, [sp, #4] + movs r1, #0xc0 + lsls r1, r1, #0x13 + ldr r2, _08038FFC + add r0, sp, #4 + bl CpuSet + bl ResetPaletteFade + ldr r0, _08039000 + strh r4, [r0] + ldr r0, _08039004 + strh r4, [r0] + ldr r0, _08039008 + strh r4, [r0] + ldr r0, _0803900C + strh r4, [r0] + ldr r0, _08039010 + strh r4, [r0] + ldr r0, _08039014 + strh r4, [r0] + ldr r0, _08039018 + strh r4, [r0] + ldr r0, _0803901C + strh r4, [r0] + bl sub_08035528 + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + bl LoadBattleMenuWindowGfx +_08038FB2: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl LoadChosenBattleElement + adds r4, #1 + cmp r4, #1 + ble _08038FB2 + bl ResetSpriteData + bl ResetTasks + bl FreeAllSpritePalettes + ldr r1, _08039020 + movs r0, #4 + strb r0, [r1] + ldr r0, _08039024 + bl SetVBlankCallback + ldr r0, _08039028 + bl SetMainCallback2 + movs r0, #1 + rsbs r0, r0, #0 + movs r4, #0 + str r4, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r0, _0803902C + strb r4, [r0] + add sp, #8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08038FFC: .4byte 0x05006000 +_08039000: .4byte 0x02022AC8 +_08039004: .4byte 0x02022ACA +_08039008: .4byte 0x02022ACC +_0803900C: .4byte 0x02022ACE +_08039010: .4byte 0x02022AD0 +_08039014: .4byte 0x02022AD2 +_08039018: .4byte 0x02022AD4 +_0803901C: .4byte 0x02022AD6 +_08039020: .4byte 0x030030BC +_08039024: .4byte 0x080386DD +_08039028: .4byte 0x08039031 +_0803902C: .4byte 0x02023FD6 + thumb_func_end sub_08038F5C + + thumb_func_start sub_08039030 +sub_08039030: @ 0x08039030 + push {lr} + bl sub_08039050 + bl AnimateSprites + bl BuildOamBuffer + bl RunTextPrinters + bl UpdatePaletteFade + bl RunTasks + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08039030 + + thumb_func_start sub_08039050 +sub_08039050: @ 0x08039050 + push {r4, r5, lr} + sub sp, #4 + ldr r0, _0803906C + ldrb r1, [r0] + adds r4, r0, #0 + cmp r1, #0xc + bls _08039060 + b _08039412 +_08039060: + lsls r0, r1, #2 + ldr r1, _08039070 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803906C: .4byte 0x02023FD6 +_08039070: .4byte 0x08039074 +_08039074: @ jump table + .4byte _080390A8 @ case 0 + .4byte _080390C8 @ case 1 + .4byte _08039104 @ case 2 + .4byte _08039124 @ case 3 + .4byte _08039150 @ case 4 + .4byte _0803918C @ case 5 + .4byte _08039230 @ case 6 + .4byte _080393B8 @ case 7 + .4byte _08039280 @ case 8 + .4byte _080392C4 @ case 9 + .4byte _0803932C @ case 10 + .4byte _0803935C @ case 11 + .4byte _080393B8 @ case 12 +_080390A8: + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + ldr r1, _080390C4 + ldrb r0, [r1] + adds r0, #1 + b _08039410 + .align 2, 0 +_080390C4: .4byte 0x02023FD6 +_080390C8: + ldr r0, _080390F0 + ldr r1, _080390F4 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080390E8 + ldr r0, _080390F8 + ldrb r0, [r0] + cmp r0, #0 + bne _080390E8 + ldr r0, _080390FC + movs r1, #5 + bl CreateTask +_080390E8: + ldr r1, _08039100 + ldrb r0, [r1] + adds r0, #1 + b _08039410 + .align 2, 0 +_080390F0: .4byte 0x03002360 +_080390F4: .4byte 0x00000439 +_080390F8: .4byte 0x030031C4 +_080390FC: .4byte 0x080B3251 +_08039100: .4byte 0x02023FD6 +_08039104: + ldr r0, _0803911C + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08039112 + b _08039412 +_08039112: + ldr r1, _08039120 + ldrb r0, [r1] + adds r0, #1 + b _08039410 + .align 2, 0 +_0803911C: .4byte 0x080B3251 +_08039120: .4byte 0x02023FD6 +_08039124: + ldr r0, _08039144 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08039132 + b _08039412 +_08039132: + ldr r0, _08039148 + movs r1, #0 + bl sub_0814FA04 + ldr r1, _0803914C + ldrb r0, [r1] + adds r0, #1 + b _08039410 + .align 2, 0 +_08039144: .4byte 0x02037C74 +_08039148: .4byte 0x085AC0DD +_0803914C: .4byte 0x02023FD6 +_08039150: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + beq _08039160 + b _08039412 +_08039160: + str r0, [sp] + movs r0, #0x18 + movs r1, #8 + movs r2, #0x1d + movs r3, #0xd + bl HandleBattleWindow + ldr r0, _08039184 + movs r1, #0xc + bl sub_0814FA04 + ldr r4, _08039188 + movs r0, #1 + strb r0, [r4, #1] + bl BattleCreateYesNoCursorAt + b _0803939E + .align 2, 0 +_08039184: .4byte 0x085ABBC9 +_08039188: .4byte 0x02023FD6 +_0803918C: + ldr r0, _080391B0 + ldrh r1, [r0, #0x2e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080391B4 + ldrb r0, [r4, #1] + cmp r0, #0 + bne _080391A0 + b _08039412 +_080391A0: + movs r0, #5 + bl PlaySE + ldrb r0, [r4, #1] + bl BattleDestroyYesNoCursorAt + movs r0, #0 + b _080391D2 + .align 2, 0 +_080391B0: .4byte 0x03002360 +_080391B4: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080391DA + ldrb r0, [r4, #1] + cmp r0, #0 + beq _080391C4 + b _08039412 +_080391C4: + movs r0, #5 + bl PlaySE + ldrb r0, [r4, #1] + bl BattleDestroyYesNoCursorAt + movs r0, #1 +_080391D2: + strb r0, [r4, #1] + bl BattleCreateYesNoCursorAt + b _08039412 +_080391DA: + movs r5, #1 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _08039214 + movs r0, #5 + bl PlaySE + ldr r4, _08039210 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _080391F4 + b _0803939E +_080391F4: + str r5, [sp] + movs r0, #0x18 + movs r1, #8 + movs r2, #0x1d + movs r3, #0xd + bl HandleBattleWindow + bl MoveRecordedBattleToSaveData + strb r0, [r4, #1] + movs r0, #0xa + strb r0, [r4] + b _08039412 + .align 2, 0 +_08039210: .4byte 0x02023FD6 +_08039214: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0803921E + b _08039412 +_0803921E: + movs r0, #5 + bl PlaySE + ldr r1, _0803922C + ldrb r0, [r1] + adds r0, #1 + b _08039410 + .align 2, 0 +_0803922C: .4byte 0x02023FD6 +_08039230: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0803923E + b _08039412 +_0803923E: + str r0, [sp] + movs r0, #0x18 + movs r1, #8 + movs r2, #0x1d + movs r3, #0xd + bl HandleBattleWindow + ldr r0, _08039270 + ldr r1, _08039274 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08039268 + bl sub_0800A8D4 + ldr r0, _08039278 + movs r1, #0 + bl sub_0814FA04 +_08039268: + ldr r1, _0803927C + ldrb r0, [r1] + adds r0, #1 + b _08039410 + .align 2, 0 +_08039270: .4byte 0x03002360 +_08039274: .4byte 0x00000439 +_08039278: .4byte 0x08226D53 +_0803927C: .4byte 0x02023FD6 +_08039280: + ldrb r0, [r4, #1] + subs r0, #1 + strb r0, [r4, #1] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0803928E + b _08039412 +_0803928E: + ldr r0, _080392B4 + ldr r1, _080392B8 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080392AA + ldr r0, _080392BC + ldrb r0, [r0] + cmp r0, #0 + bne _080392AA + bl sub_0800A7F8 +_080392AA: + ldr r1, _080392C0 + ldrb r0, [r1] + adds r0, #1 + b _08039410 + .align 2, 0 +_080392B4: .4byte 0x03002360 +_080392B8: .4byte 0x00000439 +_080392BC: .4byte 0x0300319C +_080392C0: .4byte 0x02023FD6 +_080392C4: + ldr r2, _08039318 + ldr r1, _0803931C + adds r0, r2, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + adds r3, r2, #0 + cmp r0, #0 + beq _080392E8 + ldr r0, _08039320 + ldrb r0, [r0] + cmp r0, #0 + bne _080392E8 + ldr r0, _08039324 + ldrb r0, [r0] + cmp r0, #1 + bne _080392E8 + b _08039412 +_080392E8: + ldr r0, _0803931C + adds r2, r3, r0 + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldr r0, _08039328 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08039304 + b _08039412 +_08039304: + ldr r0, [r3, #8] + bl SetMainCallback2 + bl FreeBattleResources + bl FreeBattleSpritesData + bl FreeMonSpritesGfx + b _08039412 + .align 2, 0 +_08039318: .4byte 0x03002360 +_0803931C: .4byte 0x00000439 +_08039320: .4byte 0x0300319C +_08039324: .4byte 0x030031C4 +_08039328: .4byte 0x02037C74 +_0803932C: + ldrb r0, [r4, #1] + cmp r0, #1 + bne _08039354 + movs r0, #0x37 + bl PlaySE + ldr r0, _0803934C +_0803933A: + bl TryGetStatusString + ldr r0, _08039350 + movs r1, #0 + bl sub_0814FA04 + movs r0, #0x80 + strb r0, [r4, #1] + b _0803939E + .align 2, 0 +_0803934C: .4byte 0x085AC0FB +_08039350: .4byte 0x02022AE0 +_08039354: + ldr r0, _08039358 + b _0803933A + .align 2, 0 +_08039358: .4byte 0x0822247E +_0803935C: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08039412 + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08039412 + ldr r4, _080393A8 + ldrb r0, [r4, #1] + subs r0, #1 + strb r0, [r4, #1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08039412 + ldr r0, _080393AC + ldr r1, _080393B0 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0803939E + bl sub_0800A8D4 + ldr r0, _080393B4 + movs r1, #0 + bl sub_0814FA04 +_0803939E: + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + b _08039412 + .align 2, 0 +_080393A8: .4byte 0x02023FD6 +_080393AC: .4byte 0x03002360 +_080393B0: .4byte 0x00000439 +_080393B4: .4byte 0x08226D53 +_080393B8: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0 + bne _08039412 + ldr r0, _080393F0 + ldr r1, _080393F4 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _080393F8 + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08039412 + movs r0, #1 + rsbs r0, r0, #0 + str r4, [sp] + b _080393FE + .align 2, 0 +_080393F0: .4byte 0x03002360 +_080393F4: .4byte 0x00000439 +_080393F8: + movs r0, #1 + rsbs r0, r0, #0 + str r1, [sp] +_080393FE: + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _0803941C + movs r0, #0x20 + strb r0, [r1, #1] + movs r0, #8 +_08039410: + strb r0, [r1] +_08039412: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0803941C: .4byte 0x02023FD6 + thumb_func_end sub_08039050 + + thumb_func_start SpriteCb_WildMon +SpriteCb_WildMon: @ 0x08039420 + push {lr} + sub sp, #4 + ldr r1, _08039448 + str r1, [r0, #0x1c] + movs r1, #0 + bl StartSpriteAnimIfDifferent + movs r0, #0x80 + lsls r0, r0, #0xa + ldr r1, _0803944C + str r1, [sp] + movs r1, #0 + movs r2, #0xa + movs r3, #0xa + bl BeginNormalPaletteFade + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_08039448: .4byte 0x08039451 +_0803944C: .4byte 0x00002108 + thumb_func_end SpriteCb_WildMon + + thumb_func_start SpriteCb_MoveWildMonToRight +SpriteCb_MoveWildMonToRight: @ 0x08039450 + push {lr} + adds r2, r0, #0 + ldr r0, _08039474 + ldrh r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08039470 + ldrh r0, [r2, #0x24] + adds r0, #2 + strh r0, [r2, #0x24] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08039470 + ldr r0, _08039478 + str r0, [r2, #0x1c] +_08039470: + pop {r0} + bx r0 + .align 2, 0 +_08039474: .4byte 0x020240A0 +_08039478: .4byte 0x0803947D + thumb_func_end SpriteCb_MoveWildMonToRight + + thumb_func_start SpriteCb_WildMonShowHealthbox +SpriteCb_WildMonShowHealthbox: @ 0x0803947C + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080394C4 + ldrh r0, [r4, #0x2e] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_08076320 + ldr r1, _080394CC + movs r2, #0x2e + ldrsh r0, [r4, r2] + adds r0, r0, r1 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible + ldr r0, _080394D0 + str r0, [r4, #0x1c] + adds r0, r4, #0 + movs r1, #0 + bl StartSpriteAnimIfDifferent + movs r0, #0x80 + lsls r0, r0, #0xa + ldr r1, _080394D4 + str r1, [sp] + movs r1, #0 + movs r2, #0xa + movs r3, #0 + bl BeginNormalPaletteFade +_080394C4: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080394CC: .4byte 0x03005AD0 +_080394D0: .4byte 0x080394D9 +_080394D4: .4byte 0x00002108 + thumb_func_end SpriteCb_WildMonShowHealthbox + + thumb_func_start SpriteCb_WildMonAnimate +SpriteCb_WildMonAnimate: @ 0x080394D8 + push {lr} + adds r2, r0, #0 + ldr r0, _080394F8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080394F4 + ldrh r1, [r2, #0x32] + adds r0, r2, #0 + movs r2, #0 + movs r3, #1 + bl BattleAnimateFrontSprite +_080394F4: + pop {r0} + bx r0 + .align 2, 0 +_080394F8: .4byte 0x02037C74 + thumb_func_end SpriteCb_WildMonAnimate + + thumb_func_start SpriteCallbackDummy_2 +SpriteCallbackDummy_2: @ 0x080394FC + bx lr + .align 2, 0 + thumb_func_end SpriteCallbackDummy_2 + + thumb_func_start sub_08039500 +sub_08039500: @ 0x08039500 + movs r1, #6 + strh r1, [r0, #0x34] + movs r1, #1 + strh r1, [r0, #0x36] + ldr r1, _08039510 + str r1, [r0, #0x1c] + bx lr + .align 2, 0 +_08039510: .4byte 0x08039515 + thumb_func_end sub_08039500 + + thumb_func_start sub_08039514 +sub_08039514: @ 0x08039514 + push {r4, lr} + adds r3, r0, #0 + ldrh r0, [r3, #0x36] + subs r0, #1 + strh r0, [r3, #0x36] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08039568 + movs r0, #8 + strh r0, [r3, #0x36] + movs r0, #0x3e + adds r0, r0, r3 + mov ip, r0 + ldrb r2, [r0] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r4, #5 + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrh r0, [r3, #0x34] + subs r0, #1 + strh r0, [r3, #0x34] + lsls r0, r0, #0x10 + asrs r2, r0, #0x10 + cmp r2, #0 + bne _08039568 + ldrb r1, [r1] + adds r0, r4, #0 + ands r0, r1 + mov r1, ip + strb r0, [r1] + ldr r0, _08039570 + str r0, [r3, #0x1c] + ldr r0, _08039574 + str r2, [r0] +_08039568: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08039570: .4byte 0x080394FD +_08039574: .4byte 0x02022C2C + thumb_func_end sub_08039514 + + thumb_func_start SpriteCB_FaintOpponentMon +SpriteCB_FaintOpponentMon: @ 0x08039578 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov sb, r0 + ldrh r0, [r0, #0x2e] + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _0803959C + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r6, #2 + adds r1, r0, r1 + ldrh r0, [r1, #2] + cmp r0, #0 + beq _080395A0 + adds r4, r0, #0 + b _080395A4 + .align 2, 0 +_0803959C: .4byte 0x02024174 +_080395A0: + mov r0, sb + ldrh r4, [r0, #0x32] +_080395A4: + ldr r1, _0803960C + lsls r0, r6, #1 + adds r5, r0, r1 + ldrh r0, [r5] + movs r1, #0x64 + mov r8, r1 + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + ldr r7, _08039610 + adds r0, r0, r7 + movs r1, #0 + bl GetMonData + cmp r4, #0xc9 + bne _08039628 + ldrh r0, [r5] + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + adds r0, r0, r7 + movs r1, #0 + bl GetMonData + adds r2, r0, #0 + movs r0, #0xc0 + lsls r0, r0, #0x12 + ands r0, r2 + lsrs r0, r0, #0x12 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r2 + lsrs r1, r1, #0xc + orrs r0, r1 + movs r1, #0xc0 + lsls r1, r1, #2 + ands r1, r2 + lsrs r1, r1, #6 + orrs r0, r1 + movs r1, #3 + ands r1, r2 + orrs r0, r1 + movs r1, #0x1c + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + bne _08039614 + movs r0, #0xc9 + b _0803961E + .align 2, 0 +_0803960C: .4byte 0x02023D12 +_08039610: .4byte 0x020243E8 +_08039614: + movs r1, #0xce + lsls r1, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_0803961E: + ldr r1, _08039624 + lsls r0, r0, #2 + b _08039660 + .align 2, 0 +_08039624: .4byte 0x082D45C8 +_08039628: + ldr r0, _08039640 + cmp r4, r0 + bne _0803964C + ldr r0, _08039644 + ldr r1, _08039648 + adds r1, r6, r1 + ldrb r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #1] + b _08039664 + .align 2, 0 +_08039640: .4byte 0x00000181 +_08039644: .4byte 0x084FE684 +_08039648: .4byte 0x02024188 +_0803964C: + movs r0, #0xce + lsls r0, r0, #1 + cmp r4, r0 + bls _0803965C + ldr r0, _08039658 + b _08039662 + .align 2, 0 +_08039658: .4byte 0x082D45C8 +_0803965C: + ldr r1, _08039684 + lsls r0, r4, #2 +_08039660: + adds r0, r0, r1 +_08039662: + ldrb r0, [r0, #1] +_08039664: + lsrs r1, r0, #3 + movs r0, #8 + subs r0, r0, r1 + mov r1, sb + strh r0, [r1, #0x34] + movs r0, #1 + strh r0, [r1, #0x36] + ldr r0, _08039688 + str r0, [r1, #0x1c] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08039684: .4byte 0x082D45C8 +_08039688: .4byte 0x0803968D + thumb_func_end SpriteCB_FaintOpponentMon + + thumb_func_start SpriteCB_AnimFaintOpponent +SpriteCB_AnimFaintOpponent: @ 0x0803968C + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x36] + subs r0, #1 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803970C + movs r0, #2 + strh r0, [r4, #0x36] + ldrh r0, [r4, #0x26] + adds r0, #8 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x34] + subs r0, #1 + strh r0, [r4, #0x34] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _080396C0 + adds r0, r4, #0 + bl FreeSpriteOamMatrix + adds r0, r4, #0 + bl DestroySprite + b _0803970C +_080396C0: + ldrh r0, [r4, #0x2e] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerPosition + ldr r1, _08039714 + ldr r1, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r1, #4 + adds r1, r1, r0 + ldr r2, _08039718 + movs r3, #0x2e + ldrsh r0, [r4, r3] + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0xb + ldr r1, [r1] + adds r1, r1, r0 + movs r2, #0x34 + ldrsh r0, [r4, r2] + lsls r0, r0, #8 + adds r1, r1, r0 + movs r2, #0 + movs r0, #0xff +_080396F2: + strb r2, [r1] + adds r1, #1 + subs r0, #1 + cmp r0, #0 + bge _080396F2 + ldr r0, _08039718 + movs r3, #0x2e + ldrsh r1, [r4, r3] + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r4, #0 + bl StartSpriteAnim +_0803970C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08039714: .4byte 0x02024178 +_08039718: .4byte 0x02024188 + thumb_func_end SpriteCB_AnimFaintOpponent + + thumb_func_start sub_0803971C +sub_0803971C: @ 0x0803971C + movs r1, #8 + strh r1, [r0, #0x34] + adds r1, r0, #0 + adds r1, #0x3e + ldrb r1, [r1] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1f + strh r1, [r0, #0x36] + ldr r1, _08039734 + str r1, [r0, #0x1c] + bx lr + .align 2, 0 +_08039734: .4byte 0x08039739 + thumb_func_end sub_0803971C + + thumb_func_start sub_08039738 +sub_08039738: @ 0x08039738 + push {lr} + adds r3, r0, #0 + ldrh r0, [r3, #0x34] + subs r0, #1 + strh r0, [r3, #0x34] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803976A + movs r0, #0x3e + adds r0, r0, r3 + mov ip, r0 + ldrb r2, [r0] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + movs r0, #8 + strh r0, [r3, #0x34] +_0803976A: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08039738 + + thumb_func_start sub_08039770 +sub_08039770: @ 0x08039770 + movs r1, #0x3e + adds r1, r1, r0 + mov ip, r1 + movs r1, #1 + ldrh r2, [r0, #0x36] + ands r2, r1 + lsls r2, r2, #2 + mov r1, ip + ldrb r3, [r1] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r2 + mov r2, ip + strb r1, [r2] + movs r1, #0 + strh r1, [r0, #0x36] + ldr r1, _08039798 + str r1, [r0, #0x1c] + bx lr + .align 2, 0 +_08039798: .4byte 0x080394FD + thumb_func_end sub_08039770 + + thumb_func_start sub_0803979C +sub_0803979C: @ 0x0803979C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080397E4 + ldr r0, _080397EC + ldr r0, [r0] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080397C4 + ldr r0, _080397F0 + ldr r0, [r0] + ldr r1, _080397F4 + ands r0, r1 + cmp r0, #0 + beq _080397D8 +_080397C4: + ldrh r0, [r4, #0x32] + bl HasTwoFramesAnimation + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080397D8 + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAnim +_080397D8: + ldrh r1, [r4, #0x32] + adds r0, r4, #0 + movs r2, #1 + movs r3, #1 + bl BattleAnimateFrontSprite +_080397E4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080397EC: .4byte 0x02023F24 +_080397F0: .4byte 0x02022C90 +_080397F4: .4byte 0x02000002 + thumb_func_end sub_0803979C + + thumb_func_start sub_080397F8 +sub_080397F8: @ 0x080397F8 + ldr r1, _08039800 + str r1, [r0, #0x1c] + bx lr + .align 2, 0 +_08039800: .4byte 0x08039805 + thumb_func_end sub_080397F8 + + thumb_func_start oac_poke_ally_ +oac_poke_ally_: @ 0x08039804 + push {lr} + adds r2, r0, #0 + ldr r0, _0803982C + ldrh r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08039828 + ldrh r0, [r2, #0x24] + subs r0, #2 + strh r0, [r2, #0x24] + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + cmp r1, #0 + bne _08039828 + ldr r0, _08039830 + str r0, [r2, #0x1c] + strh r1, [r2, #0x30] +_08039828: + pop {r0} + bx r0 + .align 2, 0 +_0803982C: .4byte 0x020240A0 +_08039830: .4byte 0x08039841 + thumb_func_end oac_poke_ally_ + + thumb_func_start sub_08039834 +sub_08039834: @ 0x08039834 + ldr r1, _0803983C + str r1, [r0, #0x1c] + bx lr + .align 2, 0 +_0803983C: .4byte 0x08039841 + thumb_func_end sub_08039834 + + thumb_func_start SpriteCallbackDummy_3 +SpriteCallbackDummy_3: @ 0x08039840 + bx lr + .align 2, 0 + thumb_func_end SpriteCallbackDummy_3 + + thumb_func_start sub_08039844 +sub_08039844: @ 0x08039844 + push {lr} + adds r2, r0, #0 + ldr r0, _08039868 + ldrh r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08039864 + ldrh r0, [r2, #0x30] + ldrh r1, [r2, #0x24] + adds r0, r0, r1 + strh r0, [r2, #0x24] + ldrh r0, [r2, #0x32] + ldrh r1, [r2, #0x26] + adds r0, r0, r1 + strh r0, [r2, #0x26] +_08039864: + pop {r0} + bx r0 + .align 2, 0 +_08039868: .4byte 0x020240A0 + thumb_func_end sub_08039844 + + thumb_func_start DoBounceEffect +DoBounceEffect: @ 0x0803986C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sb, r2 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov sl, r3 + cmp r1, #0 + beq _080398A8 + ldr r0, _080398A4 + ldr r0, [r0] + ldr r1, [r0, #4] + lsls r2, r4, #1 + adds r0, r2, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #2 + b _080398BA + .align 2, 0 +_080398A4: .4byte 0x02024174 +_080398A8: + ldr r0, _08039904 + ldr r0, [r0] + ldr r1, [r0, #4] + lsls r2, r4, #1 + adds r0, r2, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 +_080398BA: + ands r0, r1 + adds r6, r2, #0 + cmp r0, #0 + bne _08039970 + ldr r0, _08039908 + bl CreateInvisibleSpriteWithCallback + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + mov r0, r8 + cmp r0, #1 + bne _08039914 + ldr r0, _0803990C + adds r0, r4, r0 + ldrb r7, [r0] + ldr r2, _08039904 + ldr r0, [r2] + ldr r0, [r0, #4] + adds r1, r6, r4 + lsls r1, r1, #2 + adds r0, r1, r0 + strb r5, [r0, #2] + ldr r0, [r2] + ldr r0, [r0, #4] + adds r1, r1, r0 + ldrb r0, [r1] + movs r2, #2 + orrs r0, r2 + strb r0, [r1] + ldr r2, _08039910 + lsls r3, r5, #4 + adds r0, r3, r5 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0x80 + b _08039942 + .align 2, 0 +_08039904: .4byte 0x02024174 +_08039908: .4byte 0x08039A3D +_0803990C: .4byte 0x03005AD0 +_08039910: .4byte 0x020205AC +_08039914: + ldr r0, _08039980 + adds r0, r4, r0 + ldrb r7, [r0] + ldr r2, _08039984 + ldr r0, [r2] + ldr r0, [r0, #4] + adds r1, r6, r4 + lsls r1, r1, #2 + adds r0, r1, r0 + strb r5, [r0, #3] + ldr r0, [r2] + ldr r0, [r0, #4] + adds r1, r1, r0 + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + ldr r2, _08039988 + lsls r3, r5, #4 + adds r0, r3, r5 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0xc0 +_08039942: + strh r1, [r0, #0x2e] + adds r4, r2, #0 + adds r1, r3, r5 + lsls r1, r1, #2 + adds r1, r1, r4 + mov r2, sb + lsls r0, r2, #0x18 + asrs r0, r0, #0x18 + movs r2, #0 + strh r0, [r1, #0x30] + mov r3, sl + lsls r0, r3, #0x18 + asrs r0, r0, #0x18 + strh r0, [r1, #0x32] + strh r7, [r1, #0x34] + mov r0, r8 + strh r0, [r1, #0x36] + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + adds r0, r0, r4 + strh r2, [r0, #0x24] + strh r2, [r0, #0x26] +_08039970: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08039980: .4byte 0x02023E88 +_08039984: .4byte 0x02024174 +_08039988: .4byte 0x020205AC + thumb_func_end DoBounceEffect + + thumb_func_start EndBounceEffect +EndBounceEffect: @ 0x0803998C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #1 + bne _080399E0 + ldr r6, _080399D8 + ldr r0, [r6] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r5, r0, #2 + adds r3, r5, r1 + ldrb r1, [r3] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08039A2E + ldr r2, _080399DC + ldrb r1, [r3, #2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x34] + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + bl DestroySprite + ldr r0, [r6] + ldr r1, [r0, #4] + adds r1, r5, r1 + ldrb r2, [r1] + movs r0, #3 + rsbs r0, r0, #0 + b _08039A1A + .align 2, 0 +_080399D8: .4byte 0x02024174 +_080399DC: .4byte 0x020205AC +_080399E0: + ldr r6, _08039A34 + ldr r0, [r6] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r5, r0, #2 + adds r3, r5, r1 + ldrb r1, [r3] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08039A2E + ldr r2, _08039A38 + ldrb r1, [r3, #3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x34] + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + bl DestroySprite + ldr r0, [r6] + ldr r1, [r0, #4] + adds r1, r5, r1 + ldrb r2, [r1] + movs r0, #5 + rsbs r0, r0, #0 +_08039A1A: + ands r0, r2 + strb r0, [r1] + ldr r0, _08039A38 + lsls r1, r4, #4 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r1, r1, r0 + movs r0, #0 + strh r0, [r1, #0x24] + strh r0, [r1, #0x26] +_08039A2E: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08039A34: .4byte 0x02024174 +_08039A38: .4byte 0x020205AC + thumb_func_end EndBounceEffect + + thumb_func_start SpriteCB_BounceEffect +SpriteCB_BounceEffect: @ 0x08039A3C + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x34] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #1 + bne _08039A54 + movs r2, #0x2e + ldrsh r0, [r4, r2] + b _08039A58 +_08039A54: + movs r1, #0x2e + ldrsh r0, [r4, r1] +_08039A58: + movs r2, #0x32 + ldrsh r1, [r4, r2] + bl Sin + ldr r2, _08039A84 + lsls r1, r5, #4 + adds r1, r1, r5 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r2, [r4, #0x32] + adds r0, r0, r2 + strh r0, [r1, #0x26] + ldrh r0, [r4, #0x30] + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x2e] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08039A84: .4byte 0x020205AC + thumb_func_end SpriteCB_BounceEffect + + thumb_func_start sub_08039A88 +sub_08039A88: @ 0x08039A88 + push {lr} + adds r2, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08039AA0 + ldrh r1, [r2, #0x32] + adds r0, r2, #0 + bl BattleAnimateBackSprite +_08039AA0: + pop {r0} + bx r0 + thumb_func_end sub_08039A88 + + thumb_func_start sub_08039AA4 +sub_08039AA4: @ 0x08039AA4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08039AE0 + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08039ABE + ldr r0, _08039AC4 + str r0, [r4, #0x1c] +_08039ABE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08039AC4: .4byte 0x08039841 + thumb_func_end sub_08039AA4 + + thumb_func_start sub_08039AC8 +sub_08039AC8: @ 0x08039AC8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl StartSpriteAnim + ldr r0, _08039ADC + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08039ADC: .4byte 0x08039AA5 + thumb_func_end sub_08039AC8 + + thumb_func_start sub_08039AE0 +sub_08039AE0: @ 0x08039AE0 + push {lr} + adds r2, r0, #0 + adds r0, #0x2c + ldrb r1, [r0] + movs r0, #0x3f + ands r0, r1 + cmp r0, #0 + bne _08039B02 + ldr r1, _08039B08 + adds r0, r2, #0 + adds r0, #0x2b + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x28 + strb r1, [r0] +_08039B02: + pop {r0} + bx r0 + .align 2, 0 +_08039B08: .4byte 0x082EBB30 + thumb_func_end sub_08039AE0 + + thumb_func_start nullsub_20 +nullsub_20: @ 0x08039B0C + bx lr + .align 2, 0 + thumb_func_end nullsub_20 + + thumb_func_start BeginBattleIntro +BeginBattleIntro: @ 0x08039B10 + push {lr} + bl BattleStartClearSetData + ldr r1, _08039B28 + movs r0, #0 + strb r0, [r1, #1] + ldr r1, _08039B2C + ldr r0, _08039B30 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08039B28: .4byte 0x02023FD6 +_08039B2C: .4byte 0x03005A64 +_08039B30: .4byte 0x0803A805 + thumb_func_end BeginBattleIntro + + thumb_func_start sub_08039B34 +sub_08039B34: @ 0x08039B34 + push {r4, r5, lr} + ldr r0, _08039B74 + ldr r0, [r0] + bl _call_via_r0 + ldr r1, _08039B78 + thumb_func_end sub_08039B34 + + thumb_func_start BattleMainCB1 +BattleMainCB1: @ 0x08039B40 + movs r0, #0 + strb r0, [r1] + ldr r0, _08039B7C + ldrb r0, [r0] + cmp r0, #0 + beq _08039B6E + ldr r5, _08039B80 + adds r4, r1, #0 +_08039B50: + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r0, [r0] + bl _call_via_r0 + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + ldr r1, _08039B7C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + blo _08039B50 +_08039B6E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08039B74: .4byte 0x03005A64 +_08039B78: .4byte 0x02023D08 +_08039B7C: .4byte 0x02023D10 +_08039B80: .4byte 0x03005AC0 + thumb_func_end BattleMainCB1 + + thumb_func_start BattleStartClearSetData +BattleStartClearSetData: @ 0x08039B84 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + movs r0, #0 + bl TurnValuesCleanUp + bl SpecialStatusesClear + movs r2, #0 + movs r3, #0 + ldr r0, _08039C80 + mov sl, r0 + ldr r1, _08039C84 + mov sb, r1 + ldr r0, _08039C88 + mov r8, r0 + ldr r1, _08039C8C + mov ip, r1 + ldr r5, _08039C90 + movs r4, #0 + ldr r7, _08039C94 + ldr r6, _08039C98 +_08039BB4: + ldr r0, _08039C9C + adds r0, r4, r0 + str r3, [r0] + movs r1, #0 +_08039BBC: + adds r0, r5, r1 + strb r3, [r0] + adds r1, #1 + cmp r1, #0x1b + bls _08039BBC + movs r0, #2 + strb r0, [r5, #0x16] + ldr r1, _08039CA0 + adds r0, r2, r1 + strb r3, [r0] + mov r0, ip + strh r3, [r0] + mov r1, r8 + strh r3, [r1] + mov r0, sb + strh r3, [r0] + mov r1, sl + strh r3, [r1] + ldr r0, _08039CA4 + adds r1, r2, r0 + movs r0, #0xff + strb r0, [r1] + strh r3, [r6] + strh r3, [r7] + ldr r1, _08039CA8 + ldr r0, [r1] + ldr r0, [r0, #4] + adds r0, r0, r4 + str r3, [r0] + ldr r1, _08039CAC + adds r0, r4, r1 + str r3, [r0] + movs r0, #2 + add sl, r0 + add sb, r0 + add r8, r0 + add ip, r0 + adds r5, #0x1c + adds r4, #4 + adds r7, #2 + adds r6, #2 + adds r2, #1 + cmp r2, #3 + ble _08039BB4 + movs r5, #0 + ldr r3, _08039CB0 + ldr r4, _08039CB4 + movs r2, #1 +_08039C1C: + strh r5, [r4] + movs r1, #0 +_08039C20: + adds r0, r3, r1 + strb r5, [r0] + adds r1, #1 + cmp r1, #0xb + bls _08039C20 + adds r3, #0xc + adds r4, #2 + subs r2, #1 + cmp r2, #0 + bge _08039C1C + movs r1, #0 + ldr r2, _08039CB8 + strb r1, [r2] + ldr r0, _08039CBC + strb r1, [r0] + ldr r2, _08039CC0 + strh r1, [r2] + ldr r1, _08039CC4 + movs r2, #0 + movs r3, #0 +_08039C48: + adds r0, r1, r2 + strb r3, [r0] + adds r2, #1 + cmp r2, #0x2b + bls _08039C48 + ldr r2, _08039CC8 + movs r0, #0 + str r0, [r2] + ldr r0, _08039CCC + ldr r1, [r0] + movs r0, #0x80 + lsls r0, r0, #0x11 + ands r0, r1 + cmp r0, #0 + bne _08039CD4 + movs r0, #2 + ands r1, r0 + cmp r1, #0 + bne _08039CF2 + ldr r0, _08039CD0 + ldr r0, [r0] + ldrb r1, [r0, #0x15] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08039CF2 + movs r0, #0x80 + b _08039CF0 + .align 2, 0 +_08039C80: .4byte 0x02023F04 +_08039C84: .4byte 0x02023EFC +_08039C88: .4byte 0x02023EF4 +_08039C8C: .4byte 0x02023EEC +_08039C90: .4byte 0x02023F60 +_08039C94: .4byte 0x02023EE4 +_08039C98: .4byte 0x02023F0C +_08039C9C: .4byte 0x02023F50 +_08039CA0: .4byte 0x02023F28 +_08039CA4: .4byte 0x02023F14 +_08039CA8: .4byte 0x0202414C +_08039CAC: .4byte 0x02023ED4 +_08039CB0: .4byte 0x02023F38 +_08039CB4: .4byte 0x02023F32 +_08039CB8: .4byte 0x02023EAF +_08039CBC: .4byte 0x02023EB0 +_08039CC0: .4byte 0x02024070 +_08039CC4: .4byte 0x02024074 +_08039CC8: .4byte 0x02023F24 +_08039CCC: .4byte 0x02022C90 +_08039CD0: .4byte 0x03005AF0 +_08039CD4: + ldr r0, _08039E70 + ands r1, r0 + cmp r1, #0 + bne _08039CF2 + bl GetRecordedBattleRecordMixFriendClass + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08039CF2 + ldr r1, _08039E74 + ldr r0, [r1] + movs r1, #0x80 + orrs r0, r1 + ldr r2, _08039E74 +_08039CF0: + str r0, [r2] +_08039CF2: + ldr r3, _08039E78 + ldr r0, _08039E7C + ldr r0, [r0] + ldrb r0, [r0, #0x15] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1f + movs r1, #0 + strb r0, [r3, #0x1d] + ldr r0, _08039E80 + strb r1, [r0] + ldr r0, _08039E84 + strb r1, [r0] + ldr r0, _08039E88 + str r1, [r0] + ldr r0, _08039E8C + movs r2, #0 + strh r1, [r0] + ldr r1, _08039E90 + ldr r0, [r1] + ldr r0, [r0, #8] + adds r0, #0x20 + strb r2, [r0] + ldr r0, [r1] + ldr r0, [r0, #0xc] + adds r0, #0x20 + strb r2, [r0] + ldr r5, _08039E94 + ldr r6, _08039E98 + ldr r7, _08039E9C + ldr r0, _08039EA0 + mov r8, r0 + ldr r1, _08039EA4 + mov sb, r1 + ldr r2, _08039EA8 + mov sl, r2 + ldr r1, _08039EAC + movs r2, #0 + adds r0, r1, #7 +_08039D3E: + strb r2, [r0] + subs r0, #1 + cmp r0, r1 + bge _08039D3E + movs r4, #0 + strh r4, [r5] + movs r0, #0 + str r0, [r6] + strh r0, [r7] + strb r4, [r3, #0x18] + strb r4, [r3, #0x19] + mov r0, r8 + strb r4, [r0] + mov r1, sb + strb r4, [r1] + ldr r5, _08039EB0 + ldr r0, [r5] + adds r0, #0x6c + strb r4, [r0] + ldr r0, [r5] + adds r0, #0x79 + strb r4, [r0] + ldr r0, [r5] + adds r0, #0x7a + strb r4, [r0] + mov r0, sl + movs r1, #0xb + bl GetMonData + ldr r6, [r5] + adds r6, #0x7c + ldr r2, _08039EB4 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r1, [r1, #8] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08039EB8 + bl __divsi3 + strb r0, [r6] + ldr r0, [r5] + adds r0, #0x7b + movs r1, #3 + strb r1, [r0] + ldr r0, [r5] + strb r4, [r0, #0x12] + ldr r0, [r5] + adds r0, #0x4a + movs r1, #1 + strb r1, [r0] + movs r2, #0 + movs r1, #0 + adds r6, r5, #0 +_08039DAE: + ldr r0, [r5] + adds r0, r2, r0 + adds r0, #0x98 + strb r1, [r0] + ldr r0, [r5] + adds r0, r2, r0 + adds r0, #0xb8 + strb r1, [r0] + ldr r0, [r5] + adds r0, r2, r0 + adds r0, #0xc8 + strb r1, [r0] + ldr r0, [r5] + adds r0, r2, r0 + adds r0, #0xd0 + strb r1, [r0] + ldr r0, [r5] + adds r0, r2, r0 + adds r0, #0xe0 + strb r1, [r0] + ldr r0, [r5] + adds r0, r2, r0 + adds r0, #0xe8 + strb r1, [r0] + ldr r0, [r5] + adds r0, r2, r0 + adds r0, #0xf0 + strb r1, [r0] + ldr r0, [r5] + adds r0, r2, r0 + adds r0, #0xf8 + strb r1, [r0] + adds r2, #1 + cmp r2, #7 + ble _08039DAE + movs r2, #0 + ldr r4, _08039EB0 + movs r3, #0xa5 + lsls r3, r3, #2 + movs r1, #6 +_08039DFE: + ldr r0, [r4] + adds r0, r2, r0 + adds r0, r0, r3 + strb r1, [r0] + adds r2, #1 + cmp r2, #3 + ble _08039DFE + ldr r0, [r6] + adds r0, #0xdf + movs r1, #0 + strb r1, [r0] + ldr r0, [r6] + adds r0, #0x92 + strb r1, [r0] + bl Random + ldr r1, _08039EBC + strh r0, [r1] + ldr r1, _08039EC0 + movs r2, #0 + movs r3, #0 +_08039E28: + adds r0, r1, r2 + strb r3, [r0] + adds r2, #1 + cmp r2, #0x43 + bls _08039E28 + ldr r0, _08039EA8 + bl IsMonShiny + ldr r3, _08039EC0 + movs r1, #1 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r3, #5] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #5] + ldr r2, _08039EB0 + ldr r0, [r2] + movs r1, #0xa8 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + ldr r0, [r2] + ldr r2, _08039EC4 + adds r0, r0, r2 + strb r1, [r0] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08039E70: .4byte 0x02000002 +_08039E74: .4byte 0x02023F24 +_08039E78: .4byte 0x02024118 +_08039E7C: .4byte 0x03005AF0 +_08039E80: .4byte 0x02023EB6 +_08039E84: .4byte 0x02023FDE +_08039E88: .4byte 0x02023D0C +_08039E8C: .4byte 0x02023FD2 +_08039E90: .4byte 0x0202414C +_08039E94: .4byte 0x02023FD0 +_08039E98: .4byte 0x02023E94 +_08039E9C: .4byte 0x020240A0 +_08039EA0: .4byte 0x03005AB4 +_08039EA4: .4byte 0x02023EB4 +_08039EA8: .4byte 0x020243E8 +_08039EAC: .4byte 0x02023FD6 +_08039EB0: .4byte 0x02024140 +_08039EB4: .4byte 0x082F0D54 +_08039EB8: .4byte 0x000004FB +_08039EBC: .4byte 0x02023FD4 +_08039EC0: .4byte 0x03005A70 +_08039EC4: .4byte 0x000002A1 + thumb_func_end BattleStartClearSetData + + thumb_func_start SwitchInClearSetData +SwitchInClearSetData: @ 0x08039EC8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + ldr r4, _0803A02C + ldr r5, _0803A030 + ldrb r1, [r5] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + mov r1, sp + adds r0, r0, r4 + ldm r0!, {r2, r3, r6} + stm r1!, {r2, r3, r6} + ldm r0!, {r2, r3, r7} + stm r1!, {r2, r3, r7} + ldr r0, [r0] + str r0, [r1] + ldr r2, _0803A034 + ldr r3, _0803A038 + ldrh r1, [r3] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0] + mov ip, r4 + mov sb, r5 + ldr r6, _0803A03C + mov sl, r6 + cmp r0, #0x7f + beq _08039FA0 + movs r5, #0 + mov r6, sb + movs r4, #0x58 + ldr r2, _0803A040 + adds r2, #0x18 + movs r1, #6 +_08039F18: + ldrb r0, [r6] + muls r0, r4, r0 + adds r0, r5, r0 + adds r0, r0, r2 + strb r1, [r0] + adds r5, #1 + cmp r5, #7 + ble _08039F18 + movs r5, #0 + ldr r7, _0803A044 + ldrb r7, [r7] + cmp r5, r7 + bge _08039F8C + ldr r0, _0803A048 + mov r8, r0 + ldr r4, _0803A02C + ldr r3, _0803A03C +_08039F3A: + movs r0, #0x58 + muls r0, r5, r0 + mov r1, r8 + adds r2, r0, r1 + ldr r1, [r2] + movs r0, #0x80 + lsls r0, r0, #0x13 + ands r0, r1 + cmp r0, #0 + beq _08039F5E + ldrb r0, [r4, #0x14] + ldr r6, _0803A030 + ldrb r6, [r6] + cmp r0, r6 + bne _08039F5E + ldr r0, _0803A04C + ands r1, r0 + str r1, [r2] +_08039F5E: + ldr r1, [r3] + movs r0, #0x18 + ands r0, r1 + cmp r0, #0 + beq _08039F7E + ldrb r0, [r4, #0x15] + ldr r7, _0803A030 + ldrb r7, [r7] + cmp r0, r7 + bne _08039F7E + movs r0, #0x19 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r3] + movs r0, #0 + strb r0, [r4, #0x15] +_08039F7E: + adds r4, #0x1c + adds r3, #4 + adds r5, #1 + ldr r0, _0803A044 + ldrb r0, [r0] + cmp r5, r0 + blt _08039F3A +_08039F8C: + ldr r1, _0803A038 + ldrh r0, [r1] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r2, _0803A034 + adds r1, r1, r2 + ldrb r0, [r1] + cmp r0, #0x7f + bne _0803A058 +_08039FA0: + mov r3, sb + ldrb r1, [r3] + movs r0, #0x58 + adds r2, r1, #0 + muls r2, r0, r2 + ldr r0, _0803A040 + adds r0, #0x50 + adds r2, r2, r0 + ldr r0, [r2] + ldr r1, _0803A050 + ands r0, r1 + str r0, [r2] + ldrb r1, [r3] + lsls r1, r1, #2 + add r1, sl + ldr r0, [r1] + ldr r2, _0803A054 + ands r0, r2 + str r0, [r1] + movs r5, #0 + ldr r6, _0803A044 + ldrb r6, [r6] + cmp r5, r6 + bge _0803A074 + mov r7, sb + movs r6, #0 +_08039FD4: + ldrb r0, [r7] + bl GetBattlerSide + adds r4, r0, #0 + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerSide + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + beq _0803A014 + ldr r1, _0803A03C + lsls r0, r5, #2 + adds r2, r0, r1 + ldr r1, [r2] + movs r0, #0x18 + ands r0, r1 + cmp r0, #0 + beq _0803A014 + ldr r0, _0803A02C + adds r0, r6, r0 + ldrb r0, [r0, #0x15] + ldrb r3, [r7] + cmp r0, r3 + bne _0803A014 + movs r0, #0x19 + rsbs r0, r0, #0 + ands r1, r0 + movs r0, #0x10 + orrs r1, r0 + str r1, [r2] +_0803A014: + adds r6, #0x1c + adds r5, #1 + ldr r0, _0803A044 + ldrb r0, [r0] + cmp r5, r0 + blt _08039FD4 + ldr r6, _0803A02C + mov ip, r6 + ldr r7, _0803A030 + mov sb, r7 + b _0803A074 + .align 2, 0 +_0803A02C: .4byte 0x02023F60 +_0803A030: .4byte 0x02023D08 +_0803A034: .4byte 0x082ED220 +_0803A038: .4byte 0x02023E8E +_0803A03C: .4byte 0x02023F50 +_0803A040: .4byte 0x02023D28 +_0803A044: .4byte 0x02023D10 +_0803A048: .4byte 0x02023D78 +_0803A04C: .4byte 0xFBFFFFFF +_0803A050: .4byte 0x15100007 +_0803A054: .4byte 0x0003043F +_0803A058: + mov r0, sb + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + ldr r1, _0803A354 + adds r1, #0x50 + adds r0, r0, r1 + movs r1, #0 + str r1, [r0] + mov r2, sb + ldrb r0, [r2] + lsls r0, r0, #2 + add r0, sl + str r1, [r0] +_0803A074: + movs r5, #0 + ldr r3, _0803A358 + mov r8, r3 + ldr r6, _0803A35C + mov sl, r6 + ldr r7, _0803A360 + ldrb r7, [r7] + cmp r5, r7 + bge _0803A0D4 + ldr r3, _0803A364 + ldr r7, _0803A368 + ldr r6, _0803A36C +_0803A08C: + movs r0, #0x58 + muls r0, r5, r0 + adds r4, r0, r3 + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r0, [r0] + lsls r2, r0, #0x10 + ldr r1, [r4] + adds r0, r1, #0 + ands r0, r2 + cmp r0, #0 + beq _0803A0AA + bics r1, r2 + str r1, [r4] +_0803A0AA: + ldr r1, [r4] + movs r0, #0xe0 + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0803A0CA + mov r2, r8 + ldr r0, [r2] + adds r0, r5, r0 + ldrb r0, [r0, #0x14] + ldrb r2, [r6] + cmp r0, r2 + bne _0803A0CA + ldr r0, _0803A370 + ands r1, r0 + str r1, [r4] +_0803A0CA: + adds r5, #1 + ldr r0, _0803A360 + ldrb r0, [r0] + cmp r5, r0 + blt _0803A08C +_0803A0D4: + mov r1, sb + ldrb r0, [r1] + add r0, sl + movs r1, #0 + strb r1, [r0] + mov r2, sb + ldrb r0, [r2] + ldr r3, _0803A374 + adds r0, r0, r3 + strb r1, [r0] + ldrb r1, [r2] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + mov r6, ip + adds r1, r0, r6 + movs r5, #0 + movs r2, #0 +_0803A0F8: + adds r0, r1, r5 + strb r2, [r0] + adds r5, #1 + cmp r5, #0x1b + bls _0803A0F8 + ldr r7, _0803A378 + ldrh r0, [r7] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _0803A37C + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0x7f + bne _0803A184 + mov r2, sb + ldrb r1, [r2] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + add r0, ip + mov r1, sp + ldrb r1, [r1, #0xa] + strb r1, [r0, #0xa] + ldrb r1, [r2] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + add r0, ip + mov r1, sp + ldrb r1, [r1, #0x15] + strb r1, [r0, #0x15] + ldrb r0, [r2] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + add r1, ip + mov r0, sp + ldrb r2, [r0, #0xf] + lsls r2, r2, #0x1c + movs r4, #0xf + lsrs r2, r2, #0x1c + ldrb r3, [r1, #0xf] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1, #0xf] + mov r3, sb + ldrb r1, [r3] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + add r0, ip + mov r1, sp + ldrb r1, [r1, #0xf] + lsrs r1, r1, #4 + lsls r1, r1, #4 + ldrb r2, [r0, #0xf] + ands r4, r2 + orrs r4, r1 + strb r4, [r0, #0xf] + ldrb r1, [r3] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + add r0, ip + mov r1, sp + ldrb r1, [r1, #0x14] + strb r1, [r0, #0x14] +_0803A184: + movs r0, #0 + ldr r6, _0803A380 + strb r0, [r6] + mov r7, sb + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + add r0, ip + movs r4, #0 + movs r1, #2 + strb r1, [r0, #0x16] + ldrb r0, [r7] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + add r1, ip + mov r0, sp + ldrb r0, [r0, #0x18] + movs r2, #2 + ands r2, r0 + ldrb r3, [r1, #0x18] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1, #0x18] + ldrb r0, [r7] + lsls r0, r0, #1 + ldr r1, _0803A384 + adds r0, r0, r1 + movs r2, #0 + strh r4, [r0] + ldrb r0, [r7] + lsls r0, r0, #1 + ldr r3, _0803A388 + adds r0, r0, r3 + strh r4, [r0] + ldrb r0, [r7] + lsls r0, r0, #1 + ldr r6, _0803A38C + adds r0, r0, r6 + strh r4, [r0] + ldrb r0, [r7] + lsls r0, r0, #1 + ldr r7, _0803A390 + adds r0, r0, r7 + strh r4, [r0] + mov r1, sb + ldrb r0, [r1] + lsls r0, r0, #1 + ldr r3, _0803A394 + adds r0, r0, r3 + strh r4, [r0] + ldrb r0, [r1] + ldr r6, _0803A398 + adds r0, r0, r6 + movs r1, #0xff + strb r1, [r0] + mov r7, sb + ldrb r0, [r7] + mov r3, r8 + ldr r1, [r3] + lsls r0, r0, #1 + adds r0, r0, r1 + adds r0, #0x98 + strb r2, [r0] + ldrb r0, [r7] + ldr r1, [r3] + lsls r0, r0, #1 + adds r0, r0, r1 + adds r0, #0x99 + strb r2, [r0] + ldrb r0, [r7] + ldr r1, [r3] + lsls r0, r0, #3 + adds r0, r0, r1 + adds r0, #0xe0 + strb r2, [r0] + ldrb r0, [r7] + ldr r1, [r3] + lsls r0, r0, #3 + adds r0, r0, r1 + adds r0, #0xe1 + strb r2, [r0] + ldrb r0, [r7] + ldr r1, [r3] + lsls r0, r0, #3 + adds r0, r0, r1 + adds r0, #0xe2 + strb r2, [r0] + ldrb r0, [r7] + ldr r1, [r3] + lsls r0, r0, #3 + adds r0, r0, r1 + adds r0, #0xe3 + strb r2, [r0] + ldrb r0, [r7] + ldr r1, [r3] + lsls r0, r0, #3 + adds r0, r0, r1 + adds r0, #0xe4 + strb r2, [r0] + ldrb r0, [r7] + ldr r1, [r3] + lsls r0, r0, #3 + adds r0, r0, r1 + adds r0, #0xe5 + strb r2, [r0] + ldrb r0, [r7] + ldr r1, [r3] + lsls r0, r0, #3 + adds r0, r0, r1 + adds r0, #0xe6 + strb r2, [r0] + ldrb r0, [r7] + ldr r1, [r3] + lsls r0, r0, #3 + adds r0, r0, r1 + adds r0, #0xe7 + strb r2, [r0] + ldr r1, [r3] + adds r1, #0x92 + ldrb r0, [r7] + lsls r0, r0, #2 + ldr r6, _0803A368 + adds r0, r0, r6 + ldr r2, [r0] + ldrb r0, [r1] + bics r0, r2 + strb r0, [r1] + movs r5, #0 + ldr r7, _0803A360 + ldrb r7, [r7] + cmp r5, r7 + bge _0803A2F8 + mov r3, sb + mov r7, r8 + movs r6, #0 +_0803A29A: + ldrb r0, [r3] + cmp r5, r0 + beq _0803A2D0 + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + str r3, [sp, #0x1c] + bl GetBattlerSide + adds r4, r0, #0 + ldr r3, [sp, #0x1c] + ldrb r0, [r3] + bl GetBattlerSide + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + ldr r3, [sp, #0x1c] + cmp r4, r0 + beq _0803A2D0 + ldr r0, [r7] + lsls r1, r5, #1 + adds r0, r1, r0 + adds r0, #0x98 + strb r6, [r0] + ldr r0, [r7] + adds r1, r1, r0 + adds r1, #0x99 + strb r6, [r1] +_0803A2D0: + ldrb r0, [r3] + ldr r1, [r7] + lsls r0, r0, #1 + lsls r2, r5, #3 + adds r0, r0, r2 + adds r0, r0, r1 + adds r0, #0xe0 + strb r6, [r0] + ldrb r0, [r3] + ldr r1, [r7] + lsls r0, r0, #1 + adds r0, r0, r2 + adds r0, r0, r1 + adds r0, #0xe1 + strb r6, [r0] + adds r5, #1 + ldr r0, _0803A360 + ldrb r0, [r0] + cmp r5, r0 + blt _0803A29A +_0803A2F8: + mov r1, sb + ldrb r0, [r1] + mov r2, r8 + ldr r1, [r2] + lsls r0, r0, #1 + adds r0, r0, r1 + adds r0, #0xc8 + movs r2, #0 + strb r2, [r0] + mov r3, sb + ldrb r0, [r3] + mov r6, r8 + ldr r1, [r6] + lsls r0, r0, #1 + adds r0, r0, r1 + adds r0, #0xc9 + strb r2, [r0] + ldr r0, _0803A39C + ldr r0, [r0] + ldr r1, [r0, #4] + ldrb r0, [r3] + lsls r0, r0, #2 + adds r1, r1, r0 + movs r2, #0 + str r2, [r1] + ldr r0, _0803A378 + strh r2, [r0] + ldr r0, [r6] + adds r0, #0xda + movs r1, #0xff + strb r1, [r0] + ldrb r0, [r3] + bl ClearBattlerMoveHistory + mov r7, sb + ldrb r0, [r7] + bl ClearBattlerAbilityHistory + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0803A354: .4byte 0x02023D28 +_0803A358: .4byte 0x02024140 +_0803A35C: .4byte 0x02024150 +_0803A360: .4byte 0x02023D10 +_0803A364: .4byte 0x02023D78 +_0803A368: .4byte 0x082FACB4 +_0803A36C: .4byte 0x02023D08 +_0803A370: .4byte 0xFFFF1FFF +_0803A374: .4byte 0x02024154 +_0803A378: .4byte 0x02023E8E +_0803A37C: .4byte 0x082ED220 +_0803A380: .4byte 0x02023F20 +_0803A384: .4byte 0x02023EEC +_0803A388: .4byte 0x02023EF4 +_0803A38C: .4byte 0x02023EFC +_0803A390: .4byte 0x02023F04 +_0803A394: .4byte 0x02023EE4 +_0803A398: .4byte 0x02023F14 +_0803A39C: .4byte 0x0202414C + thumb_func_end SwitchInClearSetData + + thumb_func_start FaintClearSetData +FaintClearSetData: @ 0x0803A3A0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + movs r5, #0 + ldr r6, _0803A764 + ldr r0, _0803A768 + mov r8, r0 + ldr r1, _0803A76C + mov ip, r1 + ldr r2, _0803A770 + mov sb, r2 + ldr r3, _0803A774 + mov sl, r3 + ldr r7, _0803A778 + ldr r4, _0803A77C + movs r3, #0x58 + adds r2, r6, #0 + adds r2, #0x18 + movs r1, #6 +_0803A3CC: + ldrb r0, [r4] + muls r0, r3, r0 + adds r0, r5, r0 + adds r0, r0, r2 + strb r1, [r0] + adds r5, #1 + cmp r5, #7 + ble _0803A3CC + ldr r0, _0803A77C + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r2, r6, #0 + adds r2, #0x50 + adds r0, r0, r2 + movs r1, #0 + str r1, [r0] + ldr r3, _0803A77C + ldrb r0, [r3] + lsls r0, r0, #2 + add r0, r8 + str r1, [r0] + movs r5, #0 + ldr r6, _0803A780 + ldrb r6, [r6] + cmp r5, r6 + bge _0803A474 + adds r3, r2, #0 + movs r4, #0 + ldr r0, _0803A784 + mov r8, r0 +_0803A40A: + ldr r1, [r3] + movs r0, #0x80 + lsls r0, r0, #0x13 + ands r0, r1 + cmp r0, #0 + beq _0803A42A + ldr r2, _0803A788 + adds r0, r4, r2 + ldrb r0, [r0, #0x14] + ldr r6, _0803A77C + ldrb r6, [r6] + cmp r0, r6 + bne _0803A42A + ldr r0, _0803A78C + ands r1, r0 + str r1, [r3] +_0803A42A: + ldr r1, _0803A77C + ldrb r0, [r1] + lsls r0, r0, #2 + add r0, r8 + ldr r0, [r0] + lsls r2, r0, #0x10 + ldr r1, [r3] + adds r0, r1, #0 + ands r0, r2 + cmp r0, #0 + beq _0803A444 + bics r1, r2 + str r1, [r3] +_0803A444: + ldr r1, [r3] + movs r0, #0xe0 + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0803A466 + mov r2, ip + ldr r0, [r2] + adds r0, r5, r0 + ldrb r0, [r0, #0x14] + ldr r6, _0803A77C + ldrb r6, [r6] + cmp r0, r6 + bne _0803A466 + ldr r0, _0803A790 + ands r1, r0 + str r1, [r3] +_0803A466: + adds r3, #0x58 + adds r4, #0x1c + adds r5, #1 + ldr r0, _0803A780 + ldrb r0, [r0] + cmp r5, r0 + blt _0803A40A +_0803A474: + ldr r1, _0803A77C + ldrb r0, [r1] + add r0, sb + movs r1, #0 + strb r1, [r0] + ldr r2, _0803A77C + ldrb r0, [r2] + add r0, sl + strb r1, [r0] + ldrb r1, [r2] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r3, _0803A788 + adds r1, r0, r3 + movs r5, #0 + movs r2, #0 +_0803A496: + adds r0, r1, r5 + strb r2, [r0] + adds r5, #1 + cmp r5, #0x1b + bls _0803A496 + ldr r6, _0803A77C + ldrb r1, [r6] + lsls r1, r1, #4 + adds r1, r1, r7 + ldrb r2, [r1] + movs r0, #2 + rsbs r0, r0, #0 + mov sb, r0 + ands r0, r2 + strb r0, [r1] + ldrb r1, [r6] + lsls r1, r1, #4 + adds r1, r1, r7 + ldrb r2, [r1] + movs r3, #3 + rsbs r3, r3, #0 + mov r8, r3 + mov r0, r8 + ands r0, r2 + strb r0, [r1] + ldrb r1, [r6] + lsls r1, r1, #4 + adds r1, r1, r7 + ldrb r2, [r1] + movs r6, #5 + rsbs r6, r6, #0 + adds r0, r6, #0 + ands r0, r2 + strb r0, [r1] + ldr r0, _0803A77C + ldrb r1, [r0] + lsls r1, r1, #4 + adds r1, r1, r7 + ldrb r2, [r1] + subs r3, #6 + mov sl, r3 + mov r0, sl + ands r0, r2 + strb r0, [r1] + ldr r0, _0803A77C + ldrb r1, [r0] + lsls r1, r1, #4 + adds r1, r1, r7 + ldrb r2, [r1] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r2, _0803A77C + ldrb r1, [r2] + lsls r1, r1, #4 + adds r1, r1, r7 + ldrb r2, [r1] + movs r5, #0x21 + rsbs r5, r5, #0 + adds r0, r5, #0 + ands r0, r2 + strb r0, [r1] + ldr r3, _0803A77C + ldrb r1, [r3] + lsls r1, r1, #4 + adds r1, r1, r7 + ldrb r2, [r1] + movs r4, #0x41 + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r2 + strb r0, [r1] + ldrb r1, [r3] + lsls r1, r1, #4 + adds r1, r1, r7 + ldrb r2, [r1] + movs r3, #0x7f + adds r0, r3, #0 + ands r0, r2 + strb r0, [r1] + ldr r0, _0803A77C + ldrb r1, [r0] + lsls r1, r1, #4 + adds r1, r1, r7 + ldrb r2, [r1, #1] + mov r0, sb + ands r0, r2 + strb r0, [r1, #1] + ldr r2, _0803A77C + ldrb r1, [r2] + lsls r1, r1, #4 + adds r1, r1, r7 + ldrb r2, [r1, #1] + mov r0, r8 + ands r0, r2 + strb r0, [r1, #1] + ldr r0, _0803A77C + ldrb r1, [r0] + lsls r1, r1, #4 + adds r1, r1, r7 + ldrb r2, [r1, #1] + adds r0, r6, #0 + ands r0, r2 + strb r0, [r1, #1] + ldr r2, _0803A77C + ldrb r1, [r2] + lsls r1, r1, #4 + adds r1, r1, r7 + ldrb r2, [r1, #1] + movs r0, #0x19 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #1] + ldr r1, _0803A77C + ldrb r0, [r1] + lsls r0, r0, #4 + adds r0, r0, r7 + ldrb r1, [r0, #1] + ands r5, r1 + strb r5, [r0, #1] + ldr r2, _0803A77C + ldrb r0, [r2] + lsls r0, r0, #4 + adds r0, r0, r7 + ldrb r1, [r0, #1] + ands r4, r1 + strb r4, [r0, #1] + ldrb r0, [r2] + lsls r0, r0, #4 + adds r0, r0, r7 + ldrb r1, [r0, #1] + ands r3, r1 + strb r3, [r0, #1] + ldrb r0, [r2] + lsls r0, r0, #4 + adds r0, r0, r7 + ldrb r1, [r0, #2] + mov r3, sb + ands r3, r1 + strb r3, [r0, #2] + ldrb r0, [r2] + lsls r0, r0, #4 + adds r0, r0, r7 + ldrb r1, [r0, #2] + mov r2, r8 + ands r2, r1 + strb r2, [r0, #2] + ldr r3, _0803A77C + ldrb r0, [r3] + lsls r0, r0, #4 + adds r0, r0, r7 + ldrb r1, [r0, #2] + ands r6, r1 + strb r6, [r0, #2] + ldrb r0, [r3] + lsls r0, r0, #4 + adds r0, r0, r7 + ldrb r1, [r0, #2] + mov r6, sl + ands r6, r1 + strb r6, [r0, #2] + ldrb r1, [r3] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0803A788 + adds r0, r0, r1 + movs r2, #0 + movs r1, #2 + strb r1, [r0, #0x16] + ldrb r0, [r3] + lsls r0, r0, #1 + ldr r3, _0803A794 + adds r0, r0, r3 + movs r3, #0 + strh r2, [r0] + ldr r6, _0803A77C + ldrb r0, [r6] + lsls r0, r0, #1 + ldr r1, _0803A798 + adds r0, r0, r1 + strh r2, [r0] + ldrb r0, [r6] + lsls r0, r0, #1 + ldr r6, _0803A79C + adds r0, r0, r6 + strh r2, [r0] + ldr r1, _0803A77C + ldrb r0, [r1] + lsls r0, r0, #1 + ldr r6, _0803A7A0 + adds r0, r0, r6 + strh r2, [r0] + ldrb r0, [r1] + lsls r0, r0, #1 + ldr r1, _0803A7A4 + adds r0, r0, r1 + strh r2, [r0] + ldr r2, _0803A77C + ldrb r0, [r2] + ldr r6, _0803A7A8 + adds r0, r0, r6 + movs r1, #0xff + strb r1, [r0] + ldrb r0, [r2] + mov r2, ip + ldr r1, [r2] + lsls r0, r0, #1 + adds r0, r0, r1 + adds r0, #0xc8 + strb r3, [r0] + ldr r6, _0803A77C + ldrb r0, [r6] + ldr r1, [r2] + lsls r0, r0, #1 + adds r0, r0, r1 + adds r0, #0xc9 + strb r3, [r0] + ldrb r0, [r6] + ldr r1, [r2] + lsls r0, r0, #1 + adds r0, r0, r1 + adds r0, #0x98 + strb r3, [r0] + ldrb r0, [r6] + ldr r1, [r2] + lsls r0, r0, #1 + adds r0, r0, r1 + adds r0, #0x99 + strb r3, [r0] + ldrb r0, [r6] + ldr r1, [r2] + lsls r0, r0, #3 + adds r0, r0, r1 + adds r0, #0xe0 + strb r3, [r0] + ldrb r0, [r6] + ldr r1, [r2] + lsls r0, r0, #3 + adds r0, r0, r1 + adds r0, #0xe1 + strb r3, [r0] + ldrb r0, [r6] + ldr r1, [r2] + lsls r0, r0, #3 + adds r0, r0, r1 + adds r0, #0xe2 + strb r3, [r0] + ldrb r0, [r6] + ldr r1, [r2] + lsls r0, r0, #3 + adds r0, r0, r1 + adds r0, #0xe3 + strb r3, [r0] + ldrb r0, [r6] + ldr r1, [r2] + lsls r0, r0, #3 + adds r0, r0, r1 + adds r0, #0xe4 + strb r3, [r0] + ldrb r0, [r6] + ldr r1, [r2] + lsls r0, r0, #3 + adds r0, r0, r1 + adds r0, #0xe5 + strb r3, [r0] + ldrb r0, [r6] + ldr r1, [r2] + lsls r0, r0, #3 + adds r0, r0, r1 + adds r0, #0xe6 + strb r3, [r0] + ldrb r0, [r6] + ldr r1, [r2] + lsls r0, r0, #3 + adds r0, r0, r1 + adds r0, #0xe7 + strb r3, [r0] + ldr r1, [r2] + adds r1, #0x92 + ldrb r0, [r6] + lsls r0, r0, #2 + ldr r2, _0803A784 + adds r0, r0, r2 + ldr r2, [r0] + ldrb r0, [r1] + bics r0, r2 + strb r0, [r1] + movs r5, #0 + ldr r3, _0803A780 + ldrb r3, [r3] + cmp r5, r3 + bge _0803A746 + adds r3, r6, #0 + mov r7, ip + movs r6, #0 +_0803A6E8: + ldrb r0, [r3] + cmp r5, r0 + beq _0803A71E + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + str r3, [sp] + bl GetBattlerSide + adds r4, r0, #0 + ldr r3, [sp] + ldrb r0, [r3] + bl GetBattlerSide + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + ldr r3, [sp] + cmp r4, r0 + beq _0803A71E + ldr r0, [r7] + lsls r1, r5, #1 + adds r0, r1, r0 + adds r0, #0x98 + strb r6, [r0] + ldr r0, [r7] + adds r1, r1, r0 + adds r1, #0x99 + strb r6, [r1] +_0803A71E: + ldrb r0, [r3] + ldr r1, [r7] + lsls r0, r0, #1 + lsls r2, r5, #3 + adds r0, r0, r2 + adds r0, r0, r1 + adds r0, #0xe0 + strb r6, [r0] + ldrb r0, [r3] + ldr r1, [r7] + lsls r0, r0, #1 + adds r0, r0, r2 + adds r0, r0, r1 + adds r0, #0xe1 + strb r6, [r0] + adds r5, #1 + ldr r0, _0803A780 + ldrb r0, [r0] + cmp r5, r0 + blt _0803A6E8 +_0803A746: + ldr r0, _0803A7AC + ldr r0, [r0] + ldr r1, [r0, #4] + ldr r2, _0803A77C + ldrb r0, [r2] + lsls r0, r0, #2 + adds r1, r1, r0 + movs r0, #0 + str r0, [r1] + ldr r4, _0803A764 + ldrb r0, [r2] + movs r3, #0x58 + adds r2, r0, #0 + muls r2, r3, r2 + b _0803A7B0 + .align 2, 0 +_0803A764: .4byte 0x02023D28 +_0803A768: .4byte 0x02023F50 +_0803A76C: .4byte 0x02024140 +_0803A770: .4byte 0x02024150 +_0803A774: .4byte 0x02024154 +_0803A778: .4byte 0x02023FE0 +_0803A77C: .4byte 0x02023D08 +_0803A780: .4byte 0x02023D10 +_0803A784: .4byte 0x082FACB4 +_0803A788: .4byte 0x02023F60 +_0803A78C: .4byte 0xFBFFFFFF +_0803A790: .4byte 0xFFFF1FFF +_0803A794: .4byte 0x02023EEC +_0803A798: .4byte 0x02023EF4 +_0803A79C: .4byte 0x02023EFC +_0803A7A0: .4byte 0x02023F04 +_0803A7A4: .4byte 0x02023EE4 +_0803A7A8: .4byte 0x02023F14 +_0803A7AC: .4byte 0x0202414C +_0803A7B0: + adds r2, r2, r4 + ldr r5, _0803A7FC + ldrh r1, [r2] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r0, [r0, #6] + adds r2, #0x21 + strb r0, [r2] + ldr r6, _0803A800 + ldrb r0, [r6] + adds r1, r0, #0 + muls r1, r3, r1 + adds r1, r1, r4 + ldrh r2, [r1] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r0, [r0, #7] + adds r1, #0x22 + strb r0, [r1] + ldrb r0, [r6] + bl ClearBattlerMoveHistory + ldrb r0, [r6] + bl ClearBattlerAbilityHistory + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0803A7FC: .4byte 0x082F0D54 +_0803A800: .4byte 0x02023D08 + thumb_func_end FaintClearSetData + + thumb_func_start BattleIntroGetMonsData +BattleIntroGetMonsData: @ 0x0803A804 + push {r4, r5, lr} + ldr r5, _0803A814 + ldrb r0, [r5] + cmp r0, #0 + beq _0803A818 + cmp r0, #1 + beq _0803A83C + b _0803A872 + .align 2, 0 +_0803A814: .4byte 0x02023FD6 +_0803A818: + ldr r4, _0803A838 + ldrb r0, [r5, #1] + strb r0, [r4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl BtlController_EmitGetMonData + ldrb r0, [r4] + bl MarkBattlerForControllerExec + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + b _0803A872 + .align 2, 0 +_0803A838: .4byte 0x02023D08 +_0803A83C: + ldr r0, _0803A860 + ldr r2, [r0] + cmp r2, #0 + bne _0803A872 + ldrb r0, [r5, #1] + adds r0, #1 + strb r0, [r5, #1] + ldr r1, _0803A864 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + bne _0803A870 + ldr r1, _0803A868 + ldr r0, _0803A86C + str r0, [r1] + b _0803A872 + .align 2, 0 +_0803A860: .4byte 0x02023D0C +_0803A864: .4byte 0x02023D10 +_0803A868: .4byte 0x03005A64 +_0803A86C: .4byte 0x0803A879 +_0803A870: + strb r2, [r5] +_0803A872: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end BattleIntroGetMonsData + + thumb_func_start BattleIntroPrepareBackgroundSlide +BattleIntroPrepareBackgroundSlide: @ 0x0803A878 + push {r4, r5, lr} + ldr r0, _0803A8B0 + ldr r5, [r0] + cmp r5, #0 + bne _0803A8A8 + movs r0, #0 + bl GetBattlerAtPosition + ldr r4, _0803A8B4 + strb r0, [r4] + ldr r0, _0803A8B8 + ldrb r1, [r0] + movs r0, #0 + bl BtlController_EmitIntroSlide + ldrb r0, [r4] + bl MarkBattlerForControllerExec + ldr r1, _0803A8BC + ldr r0, _0803A8C0 + str r0, [r1] + ldr r0, _0803A8C4 + strb r5, [r0] + strb r5, [r0, #1] +_0803A8A8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0803A8B0: .4byte 0x02023D0C +_0803A8B4: .4byte 0x02023D08 +_0803A8B8: .4byte 0x02022C94 +_0803A8BC: .4byte 0x03005A64 +_0803A8C0: .4byte 0x0803A8C9 +_0803A8C4: .4byte 0x02023FD6 + thumb_func_end BattleIntroPrepareBackgroundSlide + + thumb_func_start BattleIntroDrawTrainersOrMonsSprites +BattleIntroDrawTrainersOrMonsSprites: @ 0x0803A8C8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _0803A92C + ldr r1, [r0] + cmp r1, #0 + beq _0803A8DC + b _0803AB92 +_0803A8DC: + ldr r2, _0803A930 + strb r1, [r2] + ldr r0, _0803A934 + ldrb r0, [r0] + cmp r1, r0 + blo _0803A8EA + b _0803AB8C +_0803A8EA: + movs r7, #0x58 + ldr r0, _0803A938 + mov r8, r0 + mov sb, r2 + movs r1, #0x48 + add r1, r8 + mov sl, r1 +_0803A8F8: + ldr r0, _0803A93C + ldr r0, [r0] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803A940 + ldr r4, _0803A930 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803A940 + ldrb r0, [r4] + muls r0, r7, r0 + mov r2, r8 + adds r3, r0, r2 + movs r2, #0 + movs r1, #0 +_0803A91E: + adds r0, r3, r2 + strb r1, [r0] + adds r2, #1 + cmp r2, #0x57 + bls _0803A91E + b _0803AA0E + .align 2, 0 +_0803A92C: .4byte 0x02023D0C +_0803A930: .4byte 0x02023D08 +_0803A934: .4byte 0x02023D10 +_0803A938: .4byte 0x02023D28 +_0803A93C: .4byte 0x02022C90 +_0803A940: + mov r1, sb + ldrb r0, [r1] + muls r0, r7, r0 + mov r2, r8 + adds r3, r0, r2 + movs r2, #0 + ldr r6, _0803AA88 + ldr r5, _0803AA8C + ldr r4, _0803AA90 +_0803A952: + adds r0, r3, r2 + ldrb r1, [r4] + lsls r1, r1, #9 + adds r1, #4 + adds r1, r2, r1 + adds r1, r1, r5 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, #0x57 + bls _0803A952 + mov r1, sb + ldrb r0, [r1] + adds r2, r0, #0 + muls r2, r7, r2 + add r2, r8 + ldrh r1, [r2] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r0, [r0, #6] + adds r2, #0x21 + strb r0, [r2] + mov r2, sb + ldrb r0, [r2] + adds r2, r0, #0 + muls r2, r7, r2 + add r2, r8 + ldrh r1, [r2] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r0, [r0, #7] + adds r2, #0x22 + strb r0, [r2] + mov r1, sb + ldrb r0, [r1] + adds r1, r0, #0 + muls r1, r7, r1 + add r1, r8 + ldrh r0, [r1] + ldrb r1, [r1, #0x17] + lsrs r1, r1, #7 + bl GetAbilityBySpecies + mov r2, sb + ldrb r1, [r2] + muls r1, r7, r1 + add r1, r8 + adds r1, #0x20 + strb r0, [r1] + ldrb r0, [r2] + bl GetBattlerSide + ldr r1, _0803AA94 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, #0xa8 + ldr r1, [r1] + adds r1, r1, r0 + mov r2, sb + ldrb r0, [r2] + muls r0, r7, r0 + add r0, r8 + ldrh r0, [r0, #0x28] + strh r0, [r1] + movs r2, #0 + ldr r4, _0803AA90 + movs r5, #0x58 + ldr r1, _0803AA98 + adds r6, r4, #0 + movs r0, #0x18 + rsbs r0, r0, #0 + adds r0, r0, r1 + mov ip, r0 + movs r3, #6 +_0803A9EE: + ldrb r0, [r4] + muls r0, r5, r0 + adds r0, r2, r0 + adds r0, r0, r1 + strb r3, [r0] + adds r2, #1 + cmp r2, #7 + ble _0803A9EE + ldrb r0, [r6] + adds r1, r0, #0 + muls r1, r7, r1 + mov r0, ip + adds r0, #0x50 + adds r1, r1, r0 + movs r0, #0 + str r0, [r1] +_0803AA0E: + ldr r4, _0803AA90 + ldrb r0, [r4] + bl GetBattlerPosition + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803AA28 + movs r0, #0 + bl BtlController_EmitDrawTrainerPic + ldrb r0, [r4] + bl MarkBattlerForControllerExec +_0803AA28: + ldr r5, _0803AA9C + ldr r0, [r5] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _0803AAA4 + ldrb r0, [r4] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0803AA4E + movs r0, #0 + bl BtlController_EmitDrawTrainerPic + ldrb r0, [r4] + bl MarkBattlerForControllerExec +_0803AA4E: + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0803AB04 + ldr r0, [r5] + ldr r1, _0803AAA0 + ands r0, r1 + cmp r0, #0 + bne _0803AB04 + ldrb r0, [r4] + muls r0, r7, r0 + add r0, r8 + ldrh r0, [r0] + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r4] + muls r1, r7, r1 + add r1, sl + ldr r2, [r1] + movs r1, #2 + bl HandleSetPokedexFlag + b _0803AB04 + .align 2, 0 +_0803AA88: .4byte 0x082F0D54 +_0803AA8C: .4byte 0x02023508 +_0803AA90: .4byte 0x02023D08 +_0803AA94: .4byte 0x02024140 +_0803AA98: .4byte 0x02023D40 +_0803AA9C: .4byte 0x02022C90 +_0803AAA0: .4byte 0x063F0902 +_0803AAA4: + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0803AB04 + ldr r0, [r5] + ldr r1, _0803ABA0 + ands r0, r1 + cmp r0, #0 + bne _0803AADA + ldrb r0, [r4] + muls r0, r7, r0 + add r0, r8 + ldrh r0, [r0] + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r4] + muls r1, r7, r1 + add r1, sl + ldr r2, [r1] + movs r1, #2 + bl HandleSetPokedexFlag +_0803AADA: + movs r0, #0 + bl BtlController_EmitLoadMonSprite + ldrb r0, [r4] + bl MarkBattlerForControllerExec + ldr r1, _0803ABA4 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0803ABA8 + adds r0, r0, r1 + movs r1, #0xb + movs r2, #0 + bl GetMonData + ldr r1, _0803ABAC + strh r0, [r1, #0x20] +_0803AB04: + ldr r0, _0803ABB0 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0803AB3A + ldr r4, _0803ABB4 + ldrb r0, [r4] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + beq _0803AB2E + ldrb r0, [r4] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bne _0803AB3A +_0803AB2E: + movs r0, #0 + bl BtlController_EmitDrawTrainerPic + ldrb r0, [r4] + bl MarkBattlerForControllerExec +_0803AB3A: + ldr r0, _0803ABB0 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + beq _0803AB64 + ldr r4, _0803ABB4 + ldrb r0, [r4] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bne _0803AB64 + movs r0, #0 + bl BtlController_EmitDrawTrainerPic + ldrb r0, [r4] + bl MarkBattlerForControllerExec +_0803AB64: + ldr r0, _0803ABB0 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xb + ands r0, r1 + cmp r0, #0 + beq _0803AB76 + bl BattleArena_InitPoints +_0803AB76: + mov r1, sb + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r1, _0803ABB8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + bhs _0803AB8C + b _0803A8F8 +_0803AB8C: + ldr r1, _0803ABBC + ldr r0, _0803ABC0 + str r0, [r1] +_0803AB92: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0803ABA0: .4byte 0x063F0902 +_0803ABA4: .4byte 0x02023D12 +_0803ABA8: .4byte 0x020243E8 +_0803ABAC: .4byte 0x03005A70 +_0803ABB0: .4byte 0x02022C90 +_0803ABB4: .4byte 0x02023D08 +_0803ABB8: .4byte 0x02023D10 +_0803ABBC: .4byte 0x03005A64 +_0803ABC0: .4byte 0x0803ABC5 + thumb_func_end BattleIntroDrawTrainersOrMonsSprites + + thumb_func_start BattleIntroDrawPartySummaryScreens +BattleIntroDrawPartySummaryScreens: @ 0x0803ABC4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x30 + ldr r0, _0803AC1C + ldr r0, [r0] + cmp r0, #0 + beq _0803ABD6 + b _0803AD50 +_0803ABD6: + ldr r0, _0803AC20 + ldr r0, [r0] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + bne _0803ABE4 + b _0803ACF0 +_0803ABE4: + movs r7, #0 + add r0, sp, #4 + mov r8, r0 + mov r6, r8 + mov r5, sp +_0803ABEE: + movs r0, #0x64 + adds r1, r7, #0 + muls r1, r0, r1 + ldr r0, _0803AC24 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + cmp r0, #0 + beq _0803AC14 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + movs r1, #0xce + lsls r1, r1, #1 + cmp r0, r1 + bne _0803AC2C +_0803AC14: + ldr r0, _0803AC28 + strh r0, [r5] + movs r0, #0 + b _0803AC3E + .align 2, 0 +_0803AC1C: .4byte 0x02023D0C +_0803AC20: .4byte 0x02022C90 +_0803AC24: .4byte 0x020243E8 +_0803AC28: .4byte 0x0000FFFF +_0803AC2C: + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + strh r0, [r5] + adds r0, r4, #0 + movs r1, #0x37 + bl GetMonData +_0803AC3E: + str r0, [r6] + adds r6, #8 + adds r5, #8 + adds r7, #1 + cmp r7, #5 + ble _0803ABEE + movs r0, #1 + bl GetBattlerAtPosition + ldr r4, _0803AC98 + strb r0, [r4] + movs r0, #0 + mov r1, sp + movs r2, #0x80 + bl BtlController_EmitDrawPartyStatusSummary + ldrb r0, [r4] + bl MarkBattlerForControllerExec + movs r7, #0 + mov r6, r8 + mov r5, sp +_0803AC6A: + movs r0, #0x64 + adds r1, r7, #0 + muls r1, r0, r1 + ldr r0, _0803AC9C + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + cmp r0, #0 + beq _0803AC90 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + movs r1, #0xce + lsls r1, r1, #1 + cmp r0, r1 + bne _0803ACA4 +_0803AC90: + ldr r0, _0803ACA0 + strh r0, [r5] + movs r0, #0 + b _0803ACB6 + .align 2, 0 +_0803AC98: .4byte 0x02023D08 +_0803AC9C: .4byte 0x02024190 +_0803ACA0: .4byte 0x0000FFFF +_0803ACA4: + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + strh r0, [r5] + adds r0, r4, #0 + movs r1, #0x37 + bl GetMonData +_0803ACB6: + str r0, [r6] + adds r6, #8 + adds r5, #8 + adds r7, #1 + cmp r7, #5 + ble _0803AC6A + movs r0, #0 + bl GetBattlerAtPosition + ldr r4, _0803ACE4 + strb r0, [r4] + movs r0, #0 + mov r1, sp + movs r2, #0x80 + bl BtlController_EmitDrawPartyStatusSummary + ldrb r0, [r4] + bl MarkBattlerForControllerExec + ldr r1, _0803ACE8 + ldr r0, _0803ACEC + b _0803AD4E + .align 2, 0 +_0803ACE4: .4byte 0x02023D08 +_0803ACE8: .4byte 0x03005A64 +_0803ACEC: .4byte 0x0803AD65 +_0803ACF0: + movs r7, #0 + add r6, sp, #4 + mov r5, sp +_0803ACF6: + movs r0, #0x64 + adds r1, r7, #0 + muls r1, r0, r1 + ldr r0, _0803AD24 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + cmp r0, #0 + beq _0803AD1C + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + movs r1, #0xce + lsls r1, r1, #1 + cmp r0, r1 + bne _0803AD2C +_0803AD1C: + ldr r0, _0803AD28 + strh r0, [r5] + movs r0, #0 + b _0803AD3E + .align 2, 0 +_0803AD24: .4byte 0x02024190 +_0803AD28: .4byte 0x0000FFFF +_0803AD2C: + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + strh r0, [r5] + adds r0, r4, #0 + movs r1, #0x37 + bl GetMonData +_0803AD3E: + str r0, [r6] + adds r6, #8 + adds r5, #8 + adds r7, #1 + cmp r7, #5 + ble _0803ACF6 + ldr r1, _0803AD5C + ldr r0, _0803AD60 +_0803AD4E: + str r0, [r1] +_0803AD50: + add sp, #0x30 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0803AD5C: .4byte 0x03005A64 +_0803AD60: .4byte 0x0803AD9D + thumb_func_end BattleIntroDrawPartySummaryScreens + + thumb_func_start BattleIntroPrintTrainerWantsToBattle +BattleIntroPrintTrainerWantsToBattle: @ 0x0803AD64 + push {lr} + ldr r0, _0803AD8C + ldr r0, [r0] + cmp r0, #0 + bne _0803AD86 + movs r0, #1 + bl GetBattlerAtPosition + ldr r1, _0803AD90 + strb r0, [r1] + ldrb r1, [r1] + movs r0, #0 + bl PrepareStringBattle + ldr r1, _0803AD94 + ldr r0, _0803AD98 + str r0, [r1] +_0803AD86: + pop {r0} + bx r0 + .align 2, 0 +_0803AD8C: .4byte 0x02023D0C +_0803AD90: .4byte 0x02023D08 +_0803AD94: .4byte 0x03005A64 +_0803AD98: .4byte 0x0803ADC5 + thumb_func_end BattleIntroPrintTrainerWantsToBattle + + thumb_func_start BattleIntroPrintWildMonAttacked +BattleIntroPrintWildMonAttacked: @ 0x0803AD9C + push {lr} + ldr r0, _0803ADB8 + ldr r0, [r0] + cmp r0, #0 + bne _0803ADB4 + ldr r1, _0803ADBC + ldr r0, _0803ADC0 + str r0, [r1] + movs r0, #0 + movs r1, #0 + bl PrepareStringBattle +_0803ADB4: + pop {r0} + bx r0 + .align 2, 0 +_0803ADB8: .4byte 0x02023D0C +_0803ADBC: .4byte 0x03005A64 +_0803ADC0: .4byte 0x0803B011 + thumb_func_end BattleIntroPrintWildMonAttacked + + thumb_func_start BattleIntroPrintOpponentSendsOut +BattleIntroPrintOpponentSendsOut: @ 0x0803ADC4 + push {lr} + ldr r0, _0803ADF4 + ldr r0, [r0] + cmp r0, #0 + bne _0803AE14 + ldr r0, _0803ADF8 + ldr r2, [r0] + movs r0, #0x80 + lsls r0, r0, #0x11 + ands r0, r2 + cmp r0, #0 + beq _0803ADFC + movs r0, #0x80 + lsls r0, r0, #0x12 + ands r0, r2 + cmp r0, #0 + beq _0803ADFC + movs r1, #0x80 + lsls r1, r1, #0x18 + ands r1, r2 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + b _0803ADFE + .align 2, 0 +_0803ADF4: .4byte 0x02023D0C +_0803ADF8: .4byte 0x02022C90 +_0803ADFC: + movs r0, #1 +_0803ADFE: + bl GetBattlerAtPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #1 + bl PrepareStringBattle + ldr r1, _0803AE18 + ldr r0, _0803AE1C + str r0, [r1] +_0803AE14: + pop {r0} + bx r0 + .align 2, 0 +_0803AE18: .4byte 0x03005A64 +_0803AE1C: .4byte 0x0803AEA1 + thumb_func_end BattleIntroPrintOpponentSendsOut + + thumb_func_start BattleIntroOpponent2SendsOutMonAnimation +BattleIntroOpponent2SendsOutMonAnimation: @ 0x0803AE20 + push {r4, r5, lr} + ldr r0, _0803AE8C + ldr r1, [r0] + movs r0, #0x80 + lsls r0, r0, #0x11 + ands r0, r1 + cmp r0, #0 + beq _0803AE40 + movs r0, #0x80 + lsls r0, r0, #0x12 + ands r0, r1 + cmp r0, #0 + beq _0803AE40 + movs r5, #2 + cmp r1, #0 + bge _0803AE42 +_0803AE40: + movs r5, #3 +_0803AE42: + ldr r1, _0803AE90 + movs r0, #0 + strb r0, [r1] + ldr r0, _0803AE94 + ldrb r0, [r0] + cmp r0, #0 + beq _0803AE7E + adds r4, r1, #0 +_0803AE52: + ldrb r0, [r4] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r5 + bne _0803AE6C + movs r0, #0 + bl BtlController_EmitIntroTrainerBallThrow + ldrb r0, [r4] + bl MarkBattlerForControllerExec +_0803AE6C: + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + ldr r1, _0803AE94 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + blo _0803AE52 +_0803AE7E: + ldr r1, _0803AE98 + ldr r0, _0803AE9C + str r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0803AE8C: .4byte 0x02022C90 +_0803AE90: .4byte 0x02023D08 +_0803AE94: .4byte 0x02023D10 +_0803AE98: .4byte 0x03005A64 +_0803AE9C: .4byte 0x0803AF59 + thumb_func_end BattleIntroOpponent2SendsOutMonAnimation + + thumb_func_start BattleIntroOpponent1SendsOutMonAnimation +BattleIntroOpponent1SendsOutMonAnimation: @ 0x0803AEA0 + push {r4, r5, r6, lr} + ldr r0, _0803AEC8 + ldr r2, [r0] + movs r0, #0x80 + lsls r0, r0, #0x11 + ands r0, r2 + cmp r0, #0 + beq _0803AEDC + movs r0, #0x80 + lsls r0, r0, #0x12 + ands r0, r2 + cmp r0, #0 + beq _0803AEDC + movs r1, #0x80 + lsls r1, r1, #0x18 + ands r1, r2 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r5, r0, #0x1f + b _0803AEDE + .align 2, 0 +_0803AEC8: .4byte 0x02022C90 +_0803AECC: + ldr r1, _0803AED4 + ldr r0, _0803AED8 + b _0803AF34 + .align 2, 0 +_0803AED4: .4byte 0x03005A64 +_0803AED8: .4byte 0x0803AE21 +_0803AEDC: + movs r5, #1 +_0803AEDE: + ldr r0, _0803AF3C + ldr r2, [r0] + cmp r2, #0 + bne _0803AF36 + ldr r0, _0803AF40 + strb r2, [r0] + ldr r1, _0803AF44 + adds r4, r0, #0 + ldrb r1, [r1] + cmp r2, r1 + bhs _0803AF30 + adds r6, r4, #0 +_0803AEF6: + ldrb r0, [r4] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r5 + bne _0803AF1C + movs r0, #0 + bl BtlController_EmitIntroTrainerBallThrow + ldrb r0, [r4] + bl MarkBattlerForControllerExec + ldr r0, _0803AF48 + ldr r0, [r0] + ldr r1, _0803AF4C + ands r0, r1 + cmp r0, #0 + bne _0803AECC +_0803AF1C: + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] + ldr r1, _0803AF44 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _0803AF40 + ldrb r1, [r1] + cmp r0, r1 + blo _0803AEF6 +_0803AF30: + ldr r1, _0803AF50 + ldr r0, _0803AF54 +_0803AF34: + str r0, [r1] +_0803AF36: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0803AF3C: .4byte 0x02023D0C +_0803AF40: .4byte 0x02023D08 +_0803AF44: .4byte 0x02023D10 +_0803AF48: .4byte 0x02022C90 +_0803AF4C: .4byte 0x00008040 +_0803AF50: .4byte 0x03005A64 +_0803AF54: .4byte 0x0803AF59 + thumb_func_end BattleIntroOpponent1SendsOutMonAnimation + + thumb_func_start BattleIntroRecordMonsToDex +BattleIntroRecordMonsToDex: @ 0x0803AF58 + push {r4, r5, r6, r7, lr} + ldr r0, _0803AFD0 + ldr r1, [r0] + cmp r1, #0 + bne _0803AFC8 + ldr r2, _0803AFD4 + strb r1, [r2] + ldr r0, _0803AFD8 + ldrb r0, [r0] + cmp r1, r0 + bhs _0803AFC2 + adds r4, r2, #0 + ldr r6, _0803AFDC + movs r5, #0x58 + adds r7, r6, #0 + adds r7, #0x48 +_0803AF78: + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0803AFB0 + ldr r0, _0803AFE0 + ldr r0, [r0] + ldr r1, _0803AFE4 + ands r0, r1 + cmp r0, #0 + bne _0803AFB0 + ldrb r0, [r4] + muls r0, r5, r0 + adds r0, r0, r6 + ldrh r0, [r0] + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r4] + muls r1, r5, r1 + adds r1, r1, r7 + ldr r2, [r1] + movs r1, #2 + bl HandleSetPokedexFlag +_0803AFB0: + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + ldr r1, _0803AFD8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + blo _0803AF78 +_0803AFC2: + ldr r1, _0803AFE8 + ldr r0, _0803AFEC + str r0, [r1] +_0803AFC8: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0803AFD0: .4byte 0x02023D0C +_0803AFD4: .4byte 0x02023D08 +_0803AFD8: .4byte 0x02023D10 +_0803AFDC: .4byte 0x02023D28 +_0803AFE0: .4byte 0x02022C90 +_0803AFE4: .4byte 0x063F0902 +_0803AFE8: .4byte 0x03005A64 +_0803AFEC: .4byte 0x0803B011 + thumb_func_end BattleIntroRecordMonsToDex + + thumb_func_start sub_0803AFF0 +sub_0803AFF0: @ 0x0803AFF0 + push {lr} + ldr r0, _0803B004 + ldr r0, [r0] + cmp r0, #0 + bne _0803B000 + ldr r1, _0803B008 + ldr r0, _0803B00C + str r0, [r1] +_0803B000: + pop {r0} + bx r0 + .align 2, 0 +_0803B004: .4byte 0x02023D0C +_0803B008: .4byte 0x03005A64 +_0803B00C: .4byte 0x0803B011 + thumb_func_end sub_0803AFF0 + + thumb_func_start BattleIntroPrintPlayerSendsOut +BattleIntroPrintPlayerSendsOut: @ 0x0803B010 + push {lr} + ldr r0, _0803B060 + ldr r0, [r0] + cmp r0, #0 + bne _0803B05C + ldr r1, _0803B064 + ldr r2, [r1] + movs r0, #0x80 + lsls r0, r0, #0x11 + ands r0, r2 + cmp r0, #0 + beq _0803B038 + movs r0, #0x80 + lsls r0, r0, #0x12 + ands r0, r2 + cmp r0, #0 + beq _0803B038 + movs r3, #1 + cmp r2, #0 + bge _0803B03A +_0803B038: + movs r3, #0 +_0803B03A: + ldr r0, [r1] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0803B056 + adds r0, r3, #0 + bl GetBattlerAtPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #1 + bl PrepareStringBattle +_0803B056: + ldr r1, _0803B068 + ldr r0, _0803B06C + str r0, [r1] +_0803B05C: + pop {r0} + bx r0 + .align 2, 0 +_0803B060: .4byte 0x02023D0C +_0803B064: .4byte 0x02022C90 +_0803B068: .4byte 0x03005A64 +_0803B06C: .4byte 0x0803B10D + thumb_func_end BattleIntroPrintPlayerSendsOut + + thumb_func_start BattleIntroPlayer2SendsOutMonAnimation +BattleIntroPlayer2SendsOutMonAnimation: @ 0x0803B070 + push {r4, r5, lr} + ldr r0, _0803B0F4 + ldr r1, [r0] + movs r0, #0x80 + lsls r0, r0, #0x11 + ands r0, r1 + cmp r0, #0 + beq _0803B090 + movs r0, #0x80 + lsls r0, r0, #0x12 + ands r0, r1 + cmp r0, #0 + beq _0803B090 + movs r5, #3 + cmp r1, #0 + bge _0803B092 +_0803B090: + movs r5, #2 +_0803B092: + ldr r1, _0803B0F8 + movs r0, #0 + strb r0, [r1] + ldr r0, _0803B0FC + ldrb r0, [r0] + cmp r0, #0 + beq _0803B0CE + adds r4, r1, #0 +_0803B0A2: + ldrb r0, [r4] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r5 + bne _0803B0BC + movs r0, #0 + bl BtlController_EmitIntroTrainerBallThrow + ldrb r0, [r4] + bl MarkBattlerForControllerExec +_0803B0BC: + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + ldr r1, _0803B0FC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + blo _0803B0A2 +_0803B0CE: + ldr r2, _0803B100 + ldr r0, [r2] + adds r0, #0x4c + movs r1, #0 + strb r1, [r0] + ldr r0, [r2] + adds r0, #0xd9 + strb r1, [r0] + ldr r0, [r2] + movs r2, #0xd1 + lsls r2, r2, #1 + adds r0, r0, r2 + strb r1, [r0] + ldr r1, _0803B104 + ldr r0, _0803B108 + str r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0803B0F4: .4byte 0x02022C90 +_0803B0F8: .4byte 0x02023D08 +_0803B0FC: .4byte 0x02023D10 +_0803B100: .4byte 0x02024140 +_0803B104: .4byte 0x03005A64 +_0803B108: .4byte 0x0803B26D + thumb_func_end BattleIntroPlayer2SendsOutMonAnimation + + thumb_func_start BattleIntroPlayer1SendsOutMonAnimation +BattleIntroPlayer1SendsOutMonAnimation: @ 0x0803B10C + push {r4, r5, r6, lr} + ldr r0, _0803B130 + ldr r1, [r0] + movs r0, #0x80 + lsls r0, r0, #0x11 + ands r0, r1 + cmp r0, #0 + beq _0803B144 + movs r0, #0x80 + lsls r0, r0, #0x12 + ands r0, r1 + cmp r0, #0 + beq _0803B144 + movs r6, #1 + cmp r1, #0 + bge _0803B146 + b _0803B144 + .align 2, 0 +_0803B130: .4byte 0x02022C90 +_0803B134: + ldr r1, _0803B13C + ldr r0, _0803B140 + b _0803B1B6 + .align 2, 0 +_0803B13C: .4byte 0x03005A64 +_0803B140: .4byte 0x0803B071 +_0803B144: + movs r6, #0 +_0803B146: + ldr r0, _0803B1C0 + ldr r2, [r0] + cmp r2, #0 + bne _0803B1B8 + ldr r0, _0803B1C4 + strb r2, [r0] + ldr r1, _0803B1C8 + adds r4, r0, #0 + ldrb r1, [r1] + cmp r2, r1 + bhs _0803B198 + adds r5, r4, #0 +_0803B15E: + ldrb r0, [r4] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r6 + bne _0803B184 + movs r0, #0 + bl BtlController_EmitIntroTrainerBallThrow + ldrb r0, [r4] + bl MarkBattlerForControllerExec + ldr r0, _0803B1CC + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _0803B134 +_0803B184: + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + ldr r1, _0803B1C8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _0803B1C4 + ldrb r1, [r1] + cmp r0, r1 + blo _0803B15E +_0803B198: + ldr r2, _0803B1D0 + ldr r0, [r2] + adds r0, #0x4c + movs r1, #0 + strb r1, [r0] + ldr r0, [r2] + adds r0, #0xd9 + strb r1, [r0] + ldr r0, [r2] + movs r2, #0xd1 + lsls r2, r2, #1 + adds r0, r0, r2 + strb r1, [r0] + ldr r1, _0803B1D4 + ldr r0, _0803B1D8 +_0803B1B6: + str r0, [r1] +_0803B1B8: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0803B1C0: .4byte 0x02023D0C +_0803B1C4: .4byte 0x02023D08 +_0803B1C8: .4byte 0x02023D10 +_0803B1CC: .4byte 0x02022C90 +_0803B1D0: .4byte 0x02024140 +_0803B1D4: .4byte 0x03005A64 +_0803B1D8: .4byte 0x0803B26D + thumb_func_end BattleIntroPlayer1SendsOutMonAnimation + + thumb_func_start sub_0803B1DC +sub_0803B1DC: @ 0x0803B1DC + push {r4, r5, lr} + ldr r0, _0803B250 + ldr r1, [r0] + cmp r1, #0 + bne _0803B24A + ldr r2, _0803B254 + strb r1, [r2] + ldr r0, _0803B258 + ldrb r0, [r0] + cmp r1, r0 + bhs _0803B22A + adds r4, r2, #0 + ldr r5, _0803B25C +_0803B1F6: + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803B218 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrb r1, [r0] + movs r0, #0 + movs r2, #0 + bl BtlController_EmitSwitchInAnim + ldrb r0, [r4] + bl MarkBattlerForControllerExec +_0803B218: + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + ldr r1, _0803B258 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + blo _0803B1F6 +_0803B22A: + ldr r2, _0803B260 + ldr r0, [r2] + adds r0, #0x4c + movs r1, #0 + strb r1, [r0] + ldr r0, [r2] + adds r0, #0xd9 + strb r1, [r0] + ldr r0, [r2] + movs r2, #0xd1 + lsls r2, r2, #1 + adds r0, r0, r2 + strb r1, [r0] + ldr r1, _0803B264 + ldr r0, _0803B268 + str r0, [r1] +_0803B24A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0803B250: .4byte 0x02023D0C +_0803B254: .4byte 0x02023D08 +_0803B258: .4byte 0x02023D10 +_0803B25C: .4byte 0x02023D12 +_0803B260: .4byte 0x02024140 +_0803B264: .4byte 0x03005A64 +_0803B268: .4byte 0x0803B26D + thumb_func_end sub_0803B1DC + + thumb_func_start TryDoEventsBeforeFirstTurn +TryDoEventsBeforeFirstTurn: @ 0x0803B26C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + movs r0, #0 + mov sb, r0 + ldr r0, _0803B2B0 + ldr r0, [r0] + cmp r0, #0 + beq _0803B286 + b _0803B4F6 +_0803B286: + ldr r0, _0803B2B4 + ldr r0, [r0] + adds r0, #0x4c + ldrb r0, [r0] + cmp r0, #0 + bne _0803B306 + movs r5, #0 + ldr r1, _0803B2B8 + mov sl, r1 + ldrb r3, [r1] + cmp r5, r3 + bge _0803B2AC + ldr r2, _0803B2BC +_0803B2A0: + adds r0, r5, r2 + strb r5, [r0] + adds r5, #1 + ldrb r0, [r1] + cmp r5, r0 + blt _0803B2A0 +_0803B2AC: + movs r5, #0 + b _0803B2FC + .align 2, 0 +_0803B2B0: .4byte 0x02023D0C +_0803B2B4: .4byte 0x02024140 +_0803B2B8: .4byte 0x02023D10 +_0803B2BC: .4byte 0x02023D22 +_0803B2C0: + adds r4, r5, #1 + mov r8, r4 + ldrb r1, [r1] + cmp r8, r1 + bge _0803B2FA + ldr r6, _0803B334 + ldr r1, _0803B338 + mov sl, r1 + lsls r7, r5, #0x18 +_0803B2D2: + adds r0, r5, r6 + ldrb r0, [r0] + adds r1, r4, r6 + ldrb r1, [r1] + movs r2, #1 + bl GetWhoStrikesFirst + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0803B2F0 + lsls r1, r4, #0x18 + lsrs r1, r1, #0x18 + lsrs r0, r7, #0x18 + bl SwapTurnOrder +_0803B2F0: + adds r4, #1 + ldr r0, _0803B338 + ldrb r0, [r0] + cmp r4, r0 + blt _0803B2D2 +_0803B2FA: + mov r5, r8 +_0803B2FC: + mov r1, sl + ldrb r0, [r1] + subs r0, #1 + cmp r5, r0 + blt _0803B2C0 +_0803B306: + ldr r5, _0803B33C + ldr r0, [r5] + movs r4, #0xd1 + lsls r4, r4, #1 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0 + bne _0803B340 + str r0, [sp] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0xff + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0803B340 + ldr r0, [r5] + adds r0, r0, r4 + movs r1, #1 + strb r1, [r0] + b _0803B4F6 + .align 2, 0 +_0803B334: .4byte 0x02023D22 +_0803B338: .4byte 0x02023D10 +_0803B33C: .4byte 0x02024140 +_0803B340: + ldr r2, _0803B508 + ldr r0, [r2] + adds r0, #0x4c + ldr r1, _0803B50C + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bhs _0803B39A + ldr r5, _0803B510 + adds r4, r2, #0 +_0803B354: + ldr r0, [r4] + adds r0, #0x4c + ldrb r0, [r0] + adds r0, r0, r5 + ldrb r1, [r0] + movs r0, #0 + str r0, [sp] + movs r2, #0 + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0803B37A + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 +_0803B37A: + ldr r1, [r4] + adds r1, #0x4c + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + mov r3, sb + cmp r3, #0 + beq _0803B38C + b _0803B4F6 +_0803B38C: + ldr r0, [r4] + adds r0, #0x4c + ldr r1, _0803B50C + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + blo _0803B354 +_0803B39A: + movs r0, #0 + str r0, [sp] + movs r0, #9 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _0803B3B4 + b _0803B4F6 +_0803B3B4: + str r0, [sp] + movs r0, #0xb + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0803B3CA + b _0803B4F6 +_0803B3CA: + ldr r2, _0803B508 + ldr r0, [r2] + adds r0, #0xd9 + ldr r1, _0803B50C + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bhs _0803B41E + ldr r5, _0803B510 + adds r4, r2, #0 +_0803B3DE: + ldr r0, [r4] + adds r0, #0xd9 + ldrb r0, [r0] + adds r0, r0, r5 + ldrb r1, [r0] + movs r0, #0 + movs r2, #0 + bl ItemBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0803B400 + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 +_0803B400: + ldr r1, [r4] + adds r1, #0xd9 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + mov r0, sb + cmp r0, #0 + bne _0803B4F6 + ldr r0, [r4] + adds r0, #0xd9 + ldr r1, _0803B50C + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + blo _0803B3DE +_0803B41E: + movs r5, #0 + ldr r1, _0803B508 + mov r8, r1 + movs r7, #6 + ldr r6, _0803B514 + ldr r2, _0803B518 + movs r4, #0xff + movs r3, #0 +_0803B42E: + mov r1, r8 + ldr r0, [r1] + adds r0, r5, r0 + adds r0, #0x5c + strb r7, [r0] + adds r1, r5, r6 + ldrb r0, [r1] + orrs r0, r4 + strb r0, [r1] + strh r3, [r2] + adds r2, #2 + adds r5, #1 + cmp r5, #3 + ble _0803B42E + movs r0, #0 + bl TurnValuesCleanUp + bl SpecialStatusesClear + ldr r0, _0803B508 + ldr r0, [r0] + adds r0, #0x91 + ldr r1, _0803B51C + ldrb r1, [r1] + strb r1, [r0] + ldr r0, _0803B520 + movs r1, #0 + bl sub_0814FA04 + ldr r1, _0803B524 + ldr r0, _0803B528 + str r0, [r1] + bl ResetSentPokesToOpponentValue + ldr r1, _0803B52C + movs r2, #0 + adds r0, r1, #7 +_0803B478: + strb r2, [r0] + subs r0, #1 + cmp r0, r1 + bge _0803B478 + movs r5, #0 + ldr r3, _0803B50C + ldr r2, _0803B508 + ldr r6, _0803B530 + ldr r7, _0803B534 + ldrb r0, [r3] + cmp r5, r0 + bge _0803B4AA + ldr r0, _0803B538 + movs r4, #9 + rsbs r4, r4, #0 + adds r1, r0, #0 + adds r1, #0x50 +_0803B49A: + ldr r0, [r1] + ands r0, r4 + str r0, [r1] + adds r1, #0x58 + adds r5, #1 + ldrb r0, [r3] + cmp r5, r0 + blt _0803B49A +_0803B4AA: + ldr r0, [r2] + movs r1, #0 + strb r1, [r0] + ldr r0, [r2] + strb r1, [r0, #1] + ldr r0, [r2] + movs r3, #0xd0 + lsls r3, r3, #1 + adds r0, r0, r3 + strb r1, [r0] + ldr r0, [r2] + adds r3, #1 + adds r0, r0, r3 + strb r1, [r0] + movs r1, #0 + strb r1, [r6, #0x14] + ldr r0, [r2] + adds r0, #0x4d + strb r1, [r0] + ldr r0, [r2] + strb r1, [r0, #3] + strb r1, [r7] + bl Random + ldr r1, _0803B53C + strh r0, [r1] + ldr r0, _0803B540 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xb + ands r0, r1 + cmp r0, #0 + beq _0803B4F6 + bl StopCryAndClearCrySongs + ldr r0, _0803B544 + bl BattleScriptExecute +_0803B4F6: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0803B508: .4byte 0x02024140 +_0803B50C: .4byte 0x02023D10 +_0803B510: .4byte 0x02023D22 +_0803B514: .4byte 0x02023EC0 +_0803B518: .4byte 0x02023F18 +_0803B51C: .4byte 0x02023EB4 +_0803B520: .4byte 0x085AB3BD +_0803B524: .4byte 0x03005A64 +_0803B528: .4byte 0x0803BAB9 +_0803B52C: .4byte 0x02023FD6 +_0803B530: .4byte 0x02024118 +_0803B534: .4byte 0x02023F20 +_0803B538: .4byte 0x02023D28 +_0803B53C: .4byte 0x02023FD4 +_0803B540: .4byte 0x02022C90 +_0803B544: .4byte 0x08289E46 + thumb_func_end TryDoEventsBeforeFirstTurn + + thumb_func_start HandleEndTurn_ContinueBattle +HandleEndTurn_ContinueBattle: @ 0x0803B548 + push {r4, r5, r6, lr} + ldr r0, _0803B5E0 + ldr r0, [r0] + cmp r0, #0 + bne _0803B5D8 + ldr r1, _0803B5E4 + ldr r0, _0803B5E8 + str r0, [r1] + ldr r3, _0803B5EC + ldr r1, _0803B5F0 + movs r2, #0 + adds r0, r1, #7 +_0803B560: + strb r2, [r0] + subs r0, #1 + cmp r0, r1 + bge _0803B560 + movs r4, #0 + ldrb r3, [r3] + cmp r4, r3 + bge _0803B5B2 + ldr r5, _0803B5F4 + adds r6, r5, #0 + adds r6, #0x4c +_0803B576: + movs r0, #0x58 + adds r2, r4, #0 + muls r2, r0, r2 + adds r1, r5, #0 + adds r1, #0x50 + adds r1, r2, r1 + ldr r3, [r1] + subs r0, #0x61 + ands r3, r0 + str r3, [r1] + adds r2, r2, r6 + ldr r0, [r2] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + beq _0803B5A8 + movs r0, #0x80 + lsls r0, r0, #5 + ands r3, r0 + cmp r3, #0 + beq _0803B5A8 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl CancelMultiTurnMoves +_0803B5A8: + adds r4, #1 + ldr r0, _0803B5EC + ldrb r0, [r0] + cmp r4, r0 + blt _0803B576 +_0803B5B2: + ldr r2, _0803B5F8 + ldr r0, [r2] + movs r1, #0 + strb r1, [r0] + ldr r0, [r2] + strb r1, [r0, #1] + ldr r0, [r2] + movs r3, #0xd0 + lsls r3, r3, #1 + adds r0, r0, r3 + strb r1, [r0] + ldr r0, [r2] + adds r3, #1 + adds r0, r0, r3 + strb r1, [r0] + ldr r0, [r2] + strb r1, [r0, #3] + ldr r0, _0803B5FC + strb r1, [r0] +_0803B5D8: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0803B5E0: .4byte 0x02023D0C +_0803B5E4: .4byte 0x03005A64 +_0803B5E8: .4byte 0x0803B601 +_0803B5EC: .4byte 0x02023D10 +_0803B5F0: .4byte 0x02023FD6 +_0803B5F4: .4byte 0x02023D28 +_0803B5F8: .4byte 0x02024140 +_0803B5FC: .4byte 0x02023F20 + thumb_func_end HandleEndTurn_ContinueBattle + + thumb_func_start BattleTurnPassed +BattleTurnPassed: @ 0x0803B600 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + movs r0, #1 + bl TurnValuesCleanUp + ldr r0, _0803B6A4 + ldrb r0, [r0] + cmp r0, #0 + bne _0803B62E + bl DoFieldEndTurnEffects + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0803B622 + b _0803B7BC +_0803B622: + bl BattleScriptPop + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0803B62E + b _0803B7BC +_0803B62E: + bl HandleFaintedMonActions + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _0803B63C + b _0803B7BC +_0803B63C: + ldr r0, _0803B6A8 + ldr r0, [r0] + adds r0, #0x4d + strb r1, [r0] + bl HandleWishPerishSongOnTurnEnd + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + beq _0803B652 + b _0803B7BC +_0803B652: + movs r0, #0 + bl TurnValuesCleanUp + ldr r2, _0803B6AC + ldr r0, [r2] + ldr r1, _0803B6B0 + ands r0, r1 + ldr r1, _0803B6B4 + ands r0, r1 + ldr r1, _0803B6B8 + ands r0, r1 + ldr r1, _0803B6BC + ands r0, r1 + str r0, [r2] + ldr r0, _0803B6C0 + strb r4, [r0, #0x18] + strb r4, [r0, #0x19] + strb r4, [r0, #0x14] + ldr r0, _0803B6C4 + str r4, [r0] + ldr r0, _0803B6C8 + strb r4, [r0] + ldr r1, _0803B6CC + movs r2, #0 + adds r0, r1, #4 +_0803B684: + strb r2, [r0] + subs r0, #1 + cmp r0, r1 + bge _0803B684 + ldr r0, _0803B6A4 + ldrb r0, [r0] + cmp r0, #0 + beq _0803B6DC + ldr r1, _0803B6D0 + movs r0, #0xc + strb r0, [r1] + ldr r1, _0803B6D4 + ldr r0, _0803B6D8 + str r0, [r1] + b _0803B7BC + .align 2, 0 +_0803B6A4: .4byte 0x02023FDE +_0803B6A8: .4byte 0x02024140 +_0803B6AC: .4byte 0x02023F24 +_0803B6B0: .4byte 0xFFFFFDFF +_0803B6B4: .4byte 0xFFF7FFFF +_0803B6B8: .4byte 0xFFBFFFFF +_0803B6BC: .4byte 0xFFEFFFFF +_0803B6C0: .4byte 0x02024118 +_0803B6C4: .4byte 0x02023E94 +_0803B6C8: .4byte 0x02023F20 +_0803B6CC: .4byte 0x02023FD6 +_0803B6D0: .4byte 0x02023D27 +_0803B6D4: .4byte 0x03005A64 +_0803B6D8: .4byte 0x0803D45D +_0803B6DC: + ldr r1, _0803B770 + ldrb r0, [r1, #0x13] + ldr r2, _0803B774 + mov r8, r2 + cmp r0, #0xfe + bhi _0803B6F6 + adds r0, #1 + strb r0, [r1, #0x13] + ldr r1, [r2] + adds r1, #0xda + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0803B6F6: + movs r2, #0 + ldr r4, _0803B778 + ldr r0, _0803B77C + mov ip, r0 + ldr r1, _0803B780 + mov sb, r1 + ldrb r0, [r4] + cmp r2, r0 + bge _0803B724 + ldr r7, _0803B784 + movs r6, #0xff + movs r5, #0 + ldr r3, _0803B788 +_0803B710: + adds r1, r2, r7 + ldrb r0, [r1] + orrs r0, r6 + strb r0, [r1] + strh r5, [r3] + adds r3, #2 + adds r2, #1 + ldrb r1, [r4] + cmp r2, r1 + blt _0803B710 +_0803B724: + movs r2, #0 + ldr r3, _0803B774 + movs r1, #6 +_0803B72A: + ldr r0, [r3] + adds r0, r2, r0 + adds r0, #0x5c + strb r1, [r0] + adds r2, #1 + cmp r2, #3 + ble _0803B72A + mov r2, r8 + ldr r0, [r2] + adds r0, #0x91 + mov r2, ip + ldrb r1, [r2] + strb r1, [r0] + mov r0, sb + movs r1, #0 + bl sub_0814FA04 + ldr r1, _0803B78C + ldr r0, _0803B790 + str r0, [r1] + bl Random + ldr r1, _0803B794 + strh r0, [r1] + ldr r0, _0803B798 + ldr r1, [r0] + movs r0, #0x80 + lsls r0, r0, #0xa + ands r0, r1 + cmp r0, #0 + beq _0803B7A0 + ldr r0, _0803B79C + bl BattleScriptExecute + b _0803B7BC + .align 2, 0 +_0803B770: .4byte 0x03005A70 +_0803B774: .4byte 0x02024140 +_0803B778: .4byte 0x02023D10 +_0803B77C: .4byte 0x02023EB4 +_0803B780: .4byte 0x085AB3BD +_0803B784: .4byte 0x02023EC0 +_0803B788: .4byte 0x02023F18 +_0803B78C: .4byte 0x03005A64 +_0803B790: .4byte 0x0803BAB9 +_0803B794: .4byte 0x02023FD4 +_0803B798: .4byte 0x02022C90 +_0803B79C: .4byte 0x08289E09 +_0803B7A0: + movs r0, #0x80 + lsls r0, r0, #0xb + ands r1, r0 + cmp r1, #0 + beq _0803B7BC + mov r1, r8 + ldr r0, [r1] + adds r0, #0xda + ldrb r0, [r0] + cmp r0, #0 + bne _0803B7BC + ldr r0, _0803B7C8 + bl BattleScriptExecute +_0803B7BC: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0803B7C8: .4byte 0x08289E46 + thumb_func_end BattleTurnPassed + + thumb_func_start IsRunningFromBattleImpossible +IsRunningFromBattleImpossible: @ 0x0803B7CC + push {r4, r5, r6, r7, lr} + sub sp, #4 + ldr r1, _0803B7F0 + ldr r0, _0803B7F4 + ldrb r2, [r0] + movs r0, #0x58 + muls r0, r2, r0 + adds r1, r0, r1 + ldrh r0, [r1, #0x2e] + cmp r0, #0xaf + bne _0803B7FC + ldr r1, _0803B7F8 + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r2, [r0, #7] + b _0803B806 + .align 2, 0 +_0803B7F0: .4byte 0x02023D28 +_0803B7F4: .4byte 0x02023D08 +_0803B7F8: .4byte 0x020240A8 +_0803B7FC: + ldrh r0, [r1, #0x2e] + bl sub_080D6CF8 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 +_0803B806: + ldr r1, _0803B91C + ldr r3, _0803B920 + ldrb r0, [r3] + strb r0, [r1] + cmp r2, #0x25 + bne _0803B814 + b _0803B990 +_0803B814: + ldr r0, _0803B924 + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _0803B822 + b _0803B990 +_0803B822: + ldr r1, _0803B928 + ldrb r2, [r3] + movs r0, #0x58 + muls r0, r2, r0 + adds r0, r0, r1 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x32 + bne _0803B836 + b _0803B990 +_0803B836: + adds r0, r2, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r5, #0 + ldr r0, _0803B92C + ldrb r0, [r0] + cmp r5, r0 + bge _0803B8CA + movs r7, #0 +_0803B84C: + lsrs r4, r7, #0x18 + adds r0, r4, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r6, r0 + beq _0803B870 + ldr r1, _0803B928 + movs r0, #0x58 + muls r0, r5, r0 + adds r0, r0, r1 + adds r2, r0, #0 + adds r2, #0x20 + ldrb r0, [r2] + cmp r0, #0x17 + bne _0803B870 + b _0803B998 +_0803B870: + adds r0, r4, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r6, r0 + beq _0803B8BA + ldr r3, _0803B928 + ldr r0, _0803B920 + ldrb r0, [r0] + movs r2, #0x58 + muls r0, r2, r0 + adds r1, r0, r3 + adds r0, r1, #0 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x1a + beq _0803B8BA + adds r0, r1, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #2 + beq _0803B8BA + adds r0, r1, #0 + adds r0, #0x22 + ldrb r0, [r0] + cmp r0, #2 + beq _0803B8BA + adds r0, r5, #0 + muls r0, r2, r0 + adds r0, r0, r3 + adds r2, r0, #0 + adds r2, #0x20 + ldrb r0, [r2] + cmp r0, #0x47 + bne _0803B8BA + b _0803B9B4 +_0803B8BA: + movs r0, #0x80 + lsls r0, r0, #0x11 + adds r7, r7, r0 + adds r5, #1 + ldr r0, _0803B92C + ldrb r0, [r0] + cmp r5, r0 + blt _0803B84C +_0803B8CA: + ldr r4, _0803B920 + ldrb r1, [r4] + movs r0, #0 + str r0, [sp] + movs r0, #0xf + movs r2, #0x2a + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + beq _0803B93C + ldr r6, _0803B928 + ldrb r0, [r4] + movs r3, #0x58 + muls r0, r3, r0 + adds r1, r0, r6 + adds r0, r1, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #8 + beq _0803B902 + adds r0, r1, #0 + adds r0, #0x22 + ldrb r0, [r0] + cmp r0, #8 + bne _0803B93C +_0803B902: + ldr r0, _0803B930 + subs r1, r5, #1 + strb r1, [r0, #0x17] + ldr r2, _0803B934 + adds r0, r1, #0 + muls r0, r3, r0 + adds r0, r0, r6 + adds r0, #0x20 + ldrb r0, [r0] + strb r0, [r2] + ldr r1, _0803B938 + movs r0, #2 + b _0803B9D4 + .align 2, 0 +_0803B91C: .4byte 0x02023EB3 +_0803B920: .4byte 0x02023D08 +_0803B924: .4byte 0x02022C90 +_0803B928: .4byte 0x02023D28 +_0803B92C: .4byte 0x02023D10 +_0803B930: .4byte 0x02024118 +_0803B934: .4byte 0x02023EAE +_0803B938: .4byte 0x02023FD6 +_0803B93C: + ldr r1, _0803B970 + ldr r0, _0803B974 + ldrb r2, [r0] + movs r0, #0x58 + muls r0, r2, r0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _0803B978 + ands r0, r1 + cmp r0, #0 + bne _0803B966 + ldr r1, _0803B97C + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _0803B984 +_0803B966: + ldr r1, _0803B980 + movs r0, #0 + strb r0, [r1, #5] + movs r0, #1 + b _0803B9D6 + .align 2, 0 +_0803B970: .4byte 0x02023D28 +_0803B974: .4byte 0x02023D08 +_0803B978: .4byte 0x0400E000 +_0803B97C: .4byte 0x02023F50 +_0803B980: .4byte 0x02023FD6 +_0803B984: + ldr r0, _0803B994 + ldr r0, [r0] + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + bne _0803B9D0 +_0803B990: + movs r0, #0 + b _0803B9D6 + .align 2, 0 +_0803B994: .4byte 0x02022C90 +_0803B998: + ldr r0, _0803B9A8 + strb r5, [r0, #0x17] + ldr r1, _0803B9AC + ldrb r0, [r2] + strb r0, [r1] + ldr r1, _0803B9B0 + movs r0, #2 + b _0803B9D4 + .align 2, 0 +_0803B9A8: .4byte 0x02024118 +_0803B9AC: .4byte 0x02023EAE +_0803B9B0: .4byte 0x02023FD6 +_0803B9B4: + ldr r0, _0803B9C4 + strb r5, [r0, #0x17] + ldr r1, _0803B9C8 + ldrb r0, [r2] + strb r0, [r1] + ldr r1, _0803B9CC + movs r0, #2 + b _0803B9D4 + .align 2, 0 +_0803B9C4: .4byte 0x02024118 +_0803B9C8: .4byte 0x02023EAE +_0803B9CC: .4byte 0x02023FD6 +_0803B9D0: + ldr r1, _0803B9E0 + movs r0, #1 +_0803B9D4: + strb r0, [r1, #5] +_0803B9D6: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0803B9E0: .4byte 0x02023FD6 + thumb_func_end IsRunningFromBattleImpossible + + thumb_func_start sub_0803B9E4 +sub_0803B9E4: @ 0x0803B9E4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r3, #0 + ldr r0, _0803BA80 + mov r8, r0 + ldr r1, _0803BA84 + mov ip, r1 + ldr r7, _0803BA88 + lsls r0, r5, #1 + adds r4, r0, r5 + adds r6, r0, #0 +_0803BA00: + mov r0, ip + adds r2, r3, r0 + ldr r1, [r7] + adds r0, r4, r3 + adds r0, r0, r1 + adds r0, #0x60 + ldrb r0, [r0] + strb r0, [r2] + adds r3, #1 + cmp r3, #2 + ble _0803BA00 + mov r1, r8 + adds r0, r6, r1 + ldrb r0, [r0] + bl pokemon_order_func + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r7, _0803BA88 + ldr r0, [r7] + adds r0, r5, r0 + adds r0, #0x5c + ldrb r0, [r0] + bl pokemon_order_func + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl sub_081B8C50 + ldr r0, _0803BA8C + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0803BA90 + movs r3, #0 + adds r4, r7, #0 + adds r6, r6, r5 + movs r0, #2 + adds r1, r5, #0 + eors r1, r0 + ldr r7, _0803BA84 + lsls r0, r1, #1 + adds r5, r0, r1 +_0803BA5E: + ldr r0, [r4] + adds r1, r6, r3 + adds r1, r1, r0 + adds r1, #0x60 + adds r2, r3, r7 + ldrb r0, [r2] + strb r0, [r1] + ldr r1, [r4] + adds r0, r5, r3 + adds r0, r0, r1 + adds r0, #0x60 + ldrb r1, [r2] + strb r1, [r0] + adds r3, #1 + cmp r3, #2 + ble _0803BA5E + b _0803BAAA + .align 2, 0 +_0803BA80: .4byte 0x02023D12 +_0803BA84: .4byte 0x0203CBCC +_0803BA88: .4byte 0x02024140 +_0803BA8C: .4byte 0x02022C90 +_0803BA90: + movs r3, #0 + adds r2, r6, r5 + ldr r4, _0803BAB4 +_0803BA96: + ldr r0, [r7] + adds r1, r2, r3 + adds r1, r1, r0 + adds r1, #0x60 + adds r0, r3, r4 + ldrb r0, [r0] + strb r0, [r1] + adds r3, #1 + cmp r3, #2 + ble _0803BA96 +_0803BAAA: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0803BAB4: .4byte 0x0203CBCC + thumb_func_end sub_0803B9E4 + + thumb_func_start HandleAction_TryFinish +HandleAction_TryFinish: @ 0x0803BAB8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + ldr r0, _0803BAD4 + movs r1, #0 + strb r1, [r0, #4] + ldr r0, _0803BAD8 + strb r1, [r0] + ldr r0, _0803BADC + bl _0803C956 + .align 2, 0 +_0803BAD4: .4byte 0x02023FD6 +_0803BAD8: .4byte 0x02023D08 +_0803BADC: .4byte 0x02023D10 + thumb_func_end HandleAction_TryFinish + + thumb_func_start HandleTurnActionSelectionState +HandleTurnActionSelectionState: @ 0x0803BAE0 + ldr r4, _0803BB08 + ldrb r0, [r4] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _0803BB0C + ldrb r0, [r4] + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #8 + bls _0803BAFC + bl _0803C948 +_0803BAFC: + lsls r0, r0, #2 + ldr r1, _0803BB10 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803BB08: .4byte 0x02023D08 +_0803BB0C: .4byte 0x02023FD6 +_0803BB10: .4byte 0x0803BB14 +_0803BB14: @ jump table + .4byte _0803BB38 @ case 0 + .4byte _0803BB50 @ case 1 + .4byte _0803BC70 @ case 2 + .4byte _0803C41C @ case 3 + .4byte _0803C714 @ case 4 + .4byte _0803C7C8 @ case 5 + .4byte _0803C80C @ case 6 + .4byte _0803C838 @ case 7 + .4byte _0803C87C @ case 8 +_0803BB38: + bl RecordedBattle_CopyBattlerMoves + ldr r1, _0803BB48 + ldr r0, _0803BB4C + ldrb r0, [r0] + adds r0, r0, r1 + bl _0803C864 + .align 2, 0 +_0803BB48: .4byte 0x02023FD6 +_0803BB4C: .4byte 0x02023D08 +_0803BB50: + ldr r0, _0803BBE8 + ldrb r1, [r0] + ldr r4, _0803BBEC + ldr r0, [r4] + adds r1, r1, r0 + adds r1, #0x5c + movs r0, #6 + strb r0, [r1] + ldr r0, _0803BBF0 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _0803BBAC + movs r1, #2 + movs r0, #2 + ands r0, r5 + cmp r0, #0 + beq _0803BBAC + eors r5, r1 + adds r0, r5, #0 + bl GetBattlerAtPosition + ldr r1, [r4] + adds r1, #0x91 + ldrb r1, [r1] + ldr r2, _0803BBF4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _0803BBAC + ldr r4, _0803BBF8 + adds r0, r5, #0 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #5 + beq _0803BBAC + bl _0803C948 +_0803BBAC: + ldr r0, _0803BBEC + ldr r0, [r0] + adds r0, #0x91 + ldrb r3, [r0] + ldr r1, _0803BBF4 + ldr r4, _0803BBE8 + ldrb r2, [r4] + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + ands r3, r0 + cmp r3, #0 + beq _0803BC14 + ldr r0, _0803BBFC + adds r0, r2, r0 + movs r1, #0xd + strb r1, [r0] + ldr r0, _0803BBF0 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _0803BC00 + ldr r0, _0803BBF8 + ldrb r1, [r4] + adds r1, r1, r0 + movs r0, #5 + strb r0, [r1] + bl _0803C948 + .align 2, 0 +_0803BBE8: .4byte 0x02023D08 +_0803BBEC: .4byte 0x02024140 +_0803BBF0: .4byte 0x02022C90 +_0803BBF4: .4byte 0x082FACB4 +_0803BBF8: .4byte 0x02023FD6 +_0803BBFC: .4byte 0x02023EC0 +_0803BC00: + ldr r0, _0803BC10 + ldrb r1, [r4] + adds r1, r1, r0 + movs r0, #4 + strb r0, [r1] + bl _0803C948 + .align 2, 0 +_0803BC10: .4byte 0x02023FD6 +_0803BC14: + ldr r1, _0803BC44 + movs r0, #0x58 + muls r0, r2, r0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r1, [r0] + movs r0, #0x80 + lsls r0, r0, #5 + ands r0, r1 + cmp r0, #0 + bne _0803BC34 + movs r0, #0x80 + lsls r0, r0, #0xf + ands r1, r0 + cmp r1, #0 + beq _0803BC50 +_0803BC34: + ldr r0, _0803BC48 + adds r0, r2, r0 + strb r3, [r0] + ldr r1, _0803BC4C + ldrb r0, [r4] + bl _0803C8B6 + .align 2, 0 +_0803BC44: .4byte 0x02023D28 +_0803BC48: .4byte 0x02023EC0 +_0803BC4C: .4byte 0x02023FD6 +_0803BC50: + ldr r0, _0803BC68 + ldrb r1, [r0] + ldr r0, _0803BC6C + ldrb r2, [r0, #1] + ldrb r0, [r0, #2] + lsls r0, r0, #8 + orrs r2, r0 + movs r0, #0 + bl BtlController_EmitChooseAction + bl _0803C7AC + .align 2, 0 +_0803BC68: .4byte 0x02023EC0 +_0803BC6C: .4byte 0x02023508 +_0803BC70: + ldr r3, _0803BCD4 + ldr r1, _0803BCD8 + ldr r6, _0803BCDC + ldrb r5, [r6] + lsls r0, r5, #2 + adds r0, r0, r1 + ldr r2, [r0] + lsls r1, r2, #4 + movs r0, #0xf0 + lsls r0, r0, #0x18 + orrs r1, r0 + orrs r1, r2 + lsls r0, r2, #8 + orrs r1, r0 + lsls r2, r2, #0xc + orrs r1, r2 + ldr r0, [r3] + ands r0, r1 + cmp r0, #0 + beq _0803BC9C + bl _0803C948 +_0803BC9C: + ldr r4, _0803BCE0 + lsls r0, r5, #9 + adds r4, #1 + adds r0, r0, r4 + ldrb r1, [r0] + adds r0, r5, #0 + bl RecordedBattle_SetBattlerAction + ldr r1, _0803BCE4 + ldrb r0, [r6] + adds r1, r0, r1 + lsls r0, r0, #9 + adds r0, r0, r4 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r6] + lsls r0, r0, #9 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0xc + bls _0803BCC8 + b _0803C308 +_0803BCC8: + lsls r0, r0, #2 + ldr r1, _0803BCE8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803BCD4: .4byte 0x02023D0C +_0803BCD8: .4byte 0x082FACB4 +_0803BCDC: .4byte 0x02023D08 +_0803BCE0: .4byte 0x02023508 +_0803BCE4: .4byte 0x02023EC0 +_0803BCE8: .4byte 0x0803BCEC +_0803BCEC: @ jump table + .4byte _0803BD20 @ case 0 + .4byte _0803BE74 @ case 1 + .4byte _0803BEAC @ case 2 + .4byte _0803C308 @ case 3 + .4byte _0803C308 @ case 4 + .4byte _0803C084 @ case 5 + .4byte _0803C0D0 @ case 6 + .4byte _0803C308 @ case 7 + .4byte _0803C308 @ case 8 + .4byte _0803C308 @ case 9 + .4byte _0803C308 @ case 10 + .4byte _0803C308 @ case 11 + .4byte _0803C0F8 @ case 12 +_0803BD20: + bl AreAllMovesUnusable + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0803BD78 + ldr r0, _0803BD68 + ldr r3, _0803BD6C + ldrb r1, [r3] + adds r1, r1, r0 + movs r4, #0 + movs r0, #6 + strb r0, [r1] + ldrb r1, [r3] + ldr r2, _0803BD70 + ldr r0, [r2] + adds r1, r1, r0 + adds r1, #0x54 + strb r4, [r1] + ldrb r1, [r3] + ldr r0, [r2] + adds r1, r1, r0 + adds r1, #0x84 + movs r0, #4 + strb r0, [r1] + ldrb r1, [r3] + ldr r2, [r2] + adds r2, r1, r2 + ldr r0, _0803BD74 + lsls r1, r1, #9 + adds r0, #3 + adds r1, r1, r0 + ldrb r0, [r1] + strb r0, [r2, #0xc] + bl _0803C9B4 + .align 2, 0 +_0803BD68: .4byte 0x02023FD6 +_0803BD6C: .4byte 0x02023D08 +_0803BD70: .4byte 0x02024140 +_0803BD74: .4byte 0x02023508 +_0803BD78: + ldr r3, _0803BDB8 + ldr r5, _0803BDBC + ldrb r4, [r5] + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r2, [r0, #6] + cmp r2, #0 + beq _0803BDCC + ldr r1, _0803BDC0 + lsls r0, r4, #1 + adds r0, r0, r1 + strh r2, [r0] + ldrb r2, [r5] + ldr r0, _0803BDC4 + ldr r1, [r0] + adds r1, r2, r1 + adds r1, #0x80 + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0, #0xc] + strb r0, [r1] + ldr r1, _0803BDC8 + ldrb r0, [r5] + adds r0, r0, r1 + movs r1, #4 + strb r1, [r0] + bl _0803C9B4 + .align 2, 0 +_0803BDB8: .4byte 0x02023F60 +_0803BDBC: .4byte 0x02023D08 +_0803BDC0: .4byte 0x02023F18 +_0803BDC4: .4byte 0x02024140 +_0803BDC8: .4byte 0x02023FD6 +_0803BDCC: + add r2, sp, #4 + ldr r3, _0803BE6C + movs r1, #0x58 + adds r0, r4, #0 + muls r0, r1, r0 + adds r0, r0, r3 + ldrh r0, [r0] + strh r0, [r2, #0x10] + ldrb r0, [r5] + muls r0, r1, r0 + adds r0, r0, r3 + adds r0, #0x21 + ldrb r0, [r0] + strb r0, [r2, #0x12] + ldrb r0, [r5] + muls r0, r1, r0 + adds r0, r0, r3 + adds r0, #0x22 + ldrb r0, [r0] + strb r0, [r2, #0x13] + movs r4, #0 + mov r1, sp + adds r1, #0xc + str r1, [sp, #0x18] + add r2, sp, #0x10 + mov sl, r2 + mov r8, r3 + adds r7, r5, #0 + movs r6, #0x58 + movs r0, #0xc + add r0, r8 + mov sb, r0 + add r5, sp, #4 +_0803BE0E: + lsls r2, r4, #1 + ldrb r0, [r7] + muls r0, r6, r0 + adds r0, r2, r0 + add r0, sb + ldrh r0, [r0] + strh r0, [r5] + ldr r1, [sp, #0x18] + adds r3, r1, r4 + ldrb r0, [r7] + muls r0, r6, r0 + adds r0, r4, r0 + mov r1, r8 + adds r1, #0x24 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r3] + ldrb r0, [r7] + adds r1, r0, #0 + muls r1, r6, r1 + adds r2, r2, r1 + add r2, sb + ldrh r0, [r2] + add r1, r8 + adds r1, #0x3b + ldrb r1, [r1] + lsls r2, r4, #0x18 + lsrs r2, r2, #0x18 + bl CalculatePPWithBonus + mov r2, sl + adds r1, r2, r4 + strb r0, [r1] + adds r5, #2 + adds r4, #1 + cmp r4, #3 + ble _0803BE0E + ldr r0, _0803BE70 + ldr r1, [r0] + movs r0, #1 + ands r1, r0 + movs r0, #0 + movs r2, #0 + add r3, sp, #4 + bl BtlController_EmitChooseMove + b _0803C072 + .align 2, 0 +_0803BE6C: .4byte 0x02023D28 +_0803BE70: .4byte 0x02022C90 +_0803BE74: + ldr r0, _0803BE98 + ldr r0, [r0] + ldr r1, _0803BE9C + ands r0, r1 + cmp r0, #0 + bne _0803BE82 + b _0803C0D0 +_0803BE82: + ldr r4, _0803BEA0 + ldrb r0, [r4] + movs r1, #1 + bl RecordedBattle_ClearBattlerAction + ldr r1, _0803BEA4 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0803BEA8 + b _0803C3C8 + .align 2, 0 +_0803BE98: .4byte 0x02022C90 +_0803BE9C: .4byte 0x021F0902 +_0803BEA0: .4byte 0x02023D08 +_0803BEA4: .4byte 0x02023EC4 +_0803BEA8: .4byte 0x08289E01 +_0803BEAC: + ldr r5, _0803BF14 + ldrb r0, [r5] + ldr r3, _0803BF18 + ldr r1, [r3] + adds r1, r0, r1 + adds r1, #0x58 + ldr r2, _0803BF1C + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strb r0, [r1] + ldr r7, _0803BF20 + ldrb r2, [r5] + movs r6, #0x58 + adds r0, r2, #0 + muls r0, r6, r0 + adds r1, r7, #0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r1, [r0] + ldr r0, _0803BF24 + ands r1, r0 + cmp r1, #0 + bne _0803BEFC + ldr r0, _0803BF28 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xb + ands r0, r1 + cmp r0, #0 + bne _0803BEFC + ldr r0, _0803BF2C + lsls r1, r2, #2 + adds r1, r1, r0 + ldr r1, [r1] + movs r0, #0x80 + lsls r0, r0, #3 + ands r1, r0 + cmp r1, #0 + beq _0803BF30 +_0803BEFC: + ldr r0, _0803BF14 + ldrb r0, [r0] + lsls r1, r0, #1 + adds r1, r1, r0 + adds r1, #0x60 + ldr r0, [r3] + adds r0, r0, r1 + str r0, [sp] + movs r0, #0 + movs r1, #2 + movs r2, #6 + b _0803C044 + .align 2, 0 +_0803BF14: .4byte 0x02023D08 +_0803BF18: .4byte 0x02024140 +_0803BF1C: .4byte 0x02023D12 +_0803BF20: .4byte 0x02023D28 +_0803BF24: .4byte 0x0400E000 +_0803BF28: .4byte 0x02022C90 +_0803BF2C: .4byte 0x02023F50 +_0803BF30: + str r1, [sp] + movs r0, #0xc + adds r1, r2, #0 + movs r2, #0x17 + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _0803BFB8 + ldrb r1, [r5] + str r4, [sp] + movs r0, #0xc + movs r2, #0x47 + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + beq _0803BF80 + ldrb r0, [r5] + muls r0, r6, r0 + adds r1, r0, r7 + adds r0, r1, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #2 + beq _0803BF80 + adds r0, r1, #0 + adds r0, #0x22 + ldrb r0, [r0] + cmp r0, #2 + beq _0803BF80 + adds r0, r1, #0 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x1a + bne _0803BFB8 +_0803BF80: + ldr r5, _0803BFE4 + ldrb r1, [r5] + movs r0, #0 + str r0, [sp] + movs r0, #0xf + movs r2, #0x2a + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + beq _0803BFF4 + ldr r2, _0803BFE8 + ldrb r1, [r5] + movs r0, #0x58 + muls r0, r1, r0 + adds r1, r0, r2 + adds r0, r1, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #8 + beq _0803BFB8 + adds r0, r1, #0 + adds r0, #0x22 + ldrb r0, [r0] + cmp r0, #8 + bne _0803BFF4 +_0803BFB8: + subs r1, r4, #1 + lsls r1, r1, #4 + movs r0, #4 + orrs r1, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, _0803BFEC + ldrb r3, [r0] + ldr r4, _0803BFF0 + ldr r0, _0803BFE4 + ldrb r0, [r0] + lsls r2, r0, #1 + adds r2, r2, r0 + adds r2, #0x60 + ldr r0, [r4] + adds r0, r0, r2 + str r0, [sp] + movs r0, #0 + movs r2, #6 + bl BtlController_EmitChoosePokemon + b _0803C072 + .align 2, 0 +_0803BFE4: .4byte 0x02023D08 +_0803BFE8: .4byte 0x02023D28 +_0803BFEC: .4byte 0x02023EAE +_0803BFF0: .4byte 0x02024140 +_0803BFF4: + ldr r0, _0803C010 + ldrb r1, [r0] + adds r4, r0, #0 + cmp r1, #2 + bne _0803C01C + ldr r0, _0803C014 + ldrb r0, [r0] + cmp r0, #2 + bne _0803C01C + ldr r0, _0803C018 + ldr r3, [r0] + adds r0, r3, #0 + adds r0, #0x5c + b _0803C032 + .align 2, 0 +_0803C010: .4byte 0x02023D08 +_0803C014: .4byte 0x02023EC0 +_0803C018: .4byte 0x02024140 +_0803C01C: + ldrb r0, [r4] + cmp r0, #3 + bne _0803C054 + ldr r0, _0803C04C + ldrb r0, [r0, #1] + cmp r0, #2 + bne _0803C054 + ldr r0, _0803C050 + ldr r3, [r0] + adds r0, r3, #0 + adds r0, #0x5d +_0803C032: + ldrb r2, [r0] + ldrb r1, [r4] + lsls r0, r1, #1 + adds r0, r0, r1 + adds r0, #0x60 + adds r3, r3, r0 + str r3, [sp] + movs r0, #0 + movs r1, #0 +_0803C044: + movs r3, #0 + bl BtlController_EmitChoosePokemon + b _0803C072 + .align 2, 0 +_0803C04C: .4byte 0x02023EC0 +_0803C050: .4byte 0x02024140 +_0803C054: + ldr r2, _0803C07C + ldr r0, _0803C080 + ldrb r0, [r0] + lsls r1, r0, #1 + adds r1, r1, r0 + adds r1, #0x60 + ldr r0, [r2] + adds r0, r0, r1 + str r0, [sp] + movs r0, #0 + movs r1, #0 + movs r2, #6 + movs r3, #0 + bl BtlController_EmitChoosePokemon +_0803C072: + ldr r0, _0803C080 + ldrb r0, [r0] + bl MarkBattlerForControllerExec + b _0803C308 + .align 2, 0 +_0803C07C: .4byte 0x02024140 +_0803C080: .4byte 0x02023D08 +_0803C084: + bl IsPlayerPartyAndPokemonStorageFull + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803C090 + b _0803C308 +_0803C090: + ldr r1, _0803C0BC + ldr r3, _0803C0C0 + ldrb r0, [r3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0803C0C4 + str r1, [r0] + ldr r0, _0803C0C8 + ldrb r1, [r3] + adds r1, r1, r0 + movs r4, #0 + movs r0, #6 + strb r0, [r1] + ldrb r1, [r3] + ldr r2, _0803C0CC + ldr r0, [r2] + adds r1, r1, r0 + adds r1, #0x54 + strb r4, [r1] + ldrb r1, [r3] + b _0803C3E4 + .align 2, 0 +_0803C0BC: .4byte 0x02023EC4 +_0803C0C0: .4byte 0x02023D08 +_0803C0C4: .4byte 0x08289099 +_0803C0C8: .4byte 0x02023FD6 +_0803C0CC: .4byte 0x02024140 +_0803C0D0: + ldr r2, _0803C0F0 + ldr r4, _0803C0F4 + ldrb r1, [r4] + lsls r0, r1, #1 + adds r0, r0, r1 + adds r0, #0x60 + ldr r1, [r2] + adds r1, r1, r0 + movs r0, #0 + bl BtlController_EmitChooseItem + ldrb r0, [r4] + bl MarkBattlerForControllerExec + b _0803C308 + .align 2, 0 +_0803C0F0: .4byte 0x02024140 +_0803C0F4: .4byte 0x02023D08 +_0803C0F8: + ldr r4, _0803C188 + ldr r5, _0803C18C + ldrb r0, [r5] + adds r0, r0, r4 + movs r1, #7 + strb r1, [r0] + ldrb r0, [r5] + bl GetBattlerPosition + movs r6, #2 + eors r0, r6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r4 + movs r1, #1 + strb r1, [r0] + ldrb r0, [r5] + bl RecordedBattle_ClearBattlerAction + ldrb r0, [r5] + bl GetBattlerPosition + eors r0, r6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + ldr r1, _0803C190 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r7, #0x58 + muls r0, r7, r0 + adds r4, r1, #0 + adds r4, #0x50 + adds r0, r0, r4 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #5 + ands r0, r1 + cmp r0, #0 + bne _0803C176 + ldrb r0, [r5] + bl GetBattlerPosition + eors r0, r6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + muls r0, r7, r0 + adds r0, r0, r4 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + beq _0803C194 +_0803C176: + movs r0, #0 + bl BtlController_EmitEndBounceEffect + ldrb r0, [r5] + bl MarkBattlerForControllerExec + bl _0803C9B4 + .align 2, 0 +_0803C188: .4byte 0x02023FD6 +_0803C18C: .4byte 0x02023D08 +_0803C190: .4byte 0x02023D28 +_0803C194: + ldr r4, _0803C1D0 + ldrb r0, [r5] + bl GetBattlerPosition + eors r0, r6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #2 + bne _0803C1D4 + ldrb r0, [r5] + bl GetBattlerPosition + eors r0, r6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl RecordedBattle_ClearBattlerAction + b _0803C2F2 + .align 2, 0 +_0803C1D0: .4byte 0x02023EC0 +_0803C1D4: + ldrb r0, [r5] + bl GetBattlerPosition + eors r0, r6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #3 + bne _0803C1FA + ldrb r0, [r5] + bl GetBattlerPosition + eors r0, r6 + b _0803C2AC +_0803C1FA: + ldrb r0, [r5] + bl GetBattlerPosition + eors r0, r6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0 + bne _0803C26C + ldr r4, _0803C264 + ldrb r0, [r5] + bl GetBattlerPosition + eors r0, r6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x14 + adds r0, r0, r4 + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + blt _0803C25A + ldr r4, _0803C268 + ldrb r0, [r5] + bl GetBattlerPosition + eors r0, r6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrh r0, [r1, #6] + cmp r0, #0 + beq _0803C26C +_0803C25A: + ldrb r0, [r5] + bl GetBattlerPosition + eors r0, r6 + b _0803C2AC + .align 2, 0 +_0803C264: .4byte 0x02023FE0 +_0803C268: .4byte 0x02023F60 +_0803C26C: + ldr r0, _0803C2C0 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xa + ands r0, r1 + cmp r0, #0 + beq _0803C2D4 + ldr r4, _0803C2C4 + ldr r6, _0803C2C8 + ldrb r0, [r6] + bl GetBattlerPosition + movs r5, #2 + eors r0, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0 + bne _0803C2D4 + ldr r1, _0803C2CC + ldr r0, _0803C2D0 + ldr r0, [r0] + str r0, [r1] + ldrb r0, [r6] + bl GetBattlerPosition + eors r0, r5 +_0803C2AC: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + bl RecordedBattle_ClearBattlerAction + b _0803C2F2 + .align 2, 0 +_0803C2C0: .4byte 0x02022C90 +_0803C2C4: .4byte 0x02023EC0 +_0803C2C8: .4byte 0x02023D08 +_0803C2CC: .4byte 0x03005AE0 +_0803C2D0: .4byte 0x0203B9FC +_0803C2D4: + ldr r0, _0803C304 + ldrb r0, [r0] + bl GetBattlerPosition + movs r1, #2 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #3 + bl RecordedBattle_ClearBattlerAction +_0803C2F2: + movs r0, #0 + bl BtlController_EmitEndBounceEffect + ldr r0, _0803C304 + ldrb r0, [r0] + bl MarkBattlerForControllerExec + b _0803C9B4 + .align 2, 0 +_0803C304: .4byte 0x02023D08 +_0803C308: + ldr r1, _0803C348 + ldr r2, [r1] + movs r5, #8 + adds r0, r2, #0 + ands r0, r5 + adds r3, r1, #0 + cmp r0, #0 + beq _0803C364 + ldr r0, _0803C34C + ands r2, r0 + cmp r2, #0 + beq _0803C364 + ldr r0, _0803C350 + ldr r4, _0803C354 + ldrb r2, [r4] + lsls r1, r2, #9 + adds r0, #1 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #3 + bne _0803C364 + ldr r1, _0803C358 + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r1, _0803C35C + str r1, [r0] + ldr r1, _0803C360 + ldrb r0, [r4] + adds r0, r0, r1 + movs r3, #0 + strb r5, [r0] + b _0803C3D6 + .align 2, 0 +_0803C348: .4byte 0x02022C90 +_0803C34C: .4byte 0x043F0100 +_0803C350: .4byte 0x02023508 +_0803C354: .4byte 0x02023D08 +_0803C358: .4byte 0x02023EC4 +_0803C35C: .4byte 0x08289F42 +_0803C360: .4byte 0x02023FD6 +_0803C364: + ldr r0, [r3] + ldr r1, _0803C390 + ands r0, r1 + cmp r0, #8 + bne _0803C3A4 + ldr r0, _0803C394 + ldr r4, _0803C398 + ldrb r1, [r4] + lsls r1, r1, #9 + adds r0, #1 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #3 + bne _0803C3A4 + ldr r0, _0803C39C + bl BattleScriptExecute + ldr r1, _0803C3A0 + ldrb r0, [r4] + adds r0, r0, r1 + b _0803C864 + .align 2, 0 +_0803C390: .4byte 0x0200000A +_0803C394: .4byte 0x02023508 +_0803C398: .4byte 0x02023D08 +_0803C39C: .4byte 0x08289086 +_0803C3A0: .4byte 0x02023FD6 +_0803C3A4: + bl IsRunningFromBattleImpossible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0803C408 + ldr r0, _0803C3F0 + ldr r4, _0803C3F4 + ldrb r2, [r4] + lsls r1, r2, #9 + adds r0, #1 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #3 + bne _0803C408 + ldr r1, _0803C3F8 + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r1, _0803C3FC +_0803C3C8: + str r1, [r0] + ldr r0, _0803C400 + ldrb r1, [r4] + adds r1, r1, r0 + movs r3, #0 + movs r0, #6 + strb r0, [r1] +_0803C3D6: + ldrb r1, [r4] + ldr r2, _0803C404 + ldr r0, [r2] + adds r1, r1, r0 + adds r1, #0x54 + strb r3, [r1] + ldrb r1, [r4] +_0803C3E4: + ldr r0, [r2] + adds r1, r1, r0 + adds r1, #0x84 + movs r0, #1 + strb r0, [r1] + b _0803C9B4 + .align 2, 0 +_0803C3F0: .4byte 0x02023508 +_0803C3F4: .4byte 0x02023D08 +_0803C3F8: .4byte 0x02023EC4 +_0803C3FC: .4byte 0x08289093 +_0803C400: .4byte 0x02023FD6 +_0803C404: .4byte 0x02024140 +_0803C408: + ldr r2, _0803C414 + ldr r0, _0803C418 + ldrb r1, [r0] + adds r1, r1, r2 + b _0803C7B8 + .align 2, 0 +_0803C414: .4byte 0x02023FD6 +_0803C418: .4byte 0x02023D08 +_0803C41C: + ldr r4, _0803C460 + ldr r1, _0803C464 + ldr r3, _0803C468 + ldrb r5, [r3] + lsls r0, r5, #2 + adds r0, r0, r1 + ldr r2, [r0] + lsls r0, r2, #4 + movs r1, #0xf0 + lsls r1, r1, #0x18 + orrs r0, r1 + orrs r0, r2 + lsls r1, r2, #8 + orrs r0, r1 + lsls r2, r2, #0xc + orrs r0, r2 + ldr r1, [r4] + ands r1, r0 + adds r4, r3, #0 + cmp r1, #0 + beq _0803C448 + b _0803C948 +_0803C448: + ldr r1, _0803C46C + adds r0, r5, r1 + ldrb r0, [r0] + adds r2, r1, #0 + cmp r0, #9 + bls _0803C456 + b _0803C948 +_0803C456: + lsls r0, r0, #2 + ldr r1, _0803C470 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803C460: .4byte 0x02023D0C +_0803C464: .4byte 0x082FACB4 +_0803C468: .4byte 0x02023D08 +_0803C46C: .4byte 0x02023EC0 +_0803C470: .4byte 0x0803C474 +_0803C474: @ jump table + .4byte _0803C49C @ case 0 + .4byte _0803C5E0 @ case 1 + .4byte _0803C618 @ case 2 + .4byte _0803C64E @ case 3 + .4byte _0803C670 @ case 4 + .4byte _0803C684 @ case 5 + .4byte _0803C698 @ case 6 + .4byte _0803C6C8 @ case 7 + .4byte _0803C6DC @ case 8 + .4byte _0803C700 @ case 9 +_0803C49C: + ldr r1, _0803C4B8 + ldrb r3, [r4] + lsls r0, r3, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r1, [r0] + cmp r1, #3 + blt _0803C4CE + cmp r1, #9 + ble _0803C4BC + cmp r1, #0xf + beq _0803C4C2 + b _0803C4CE + .align 2, 0 +_0803C4B8: .4byte 0x02023508 +_0803C4BC: + adds r0, r3, r2 + strb r1, [r0] + b _0803C9B4 +_0803C4C2: + adds r1, r3, r2 + movs r0, #2 + strb r0, [r1] + bl sub_0803CA3C + b _0803C9B4 +_0803C4CE: + movs r0, #2 + bl sub_08185D94 + ldr r4, _0803C504 + ldr r6, _0803C508 + ldrb r3, [r6] + lsls r1, r3, #9 + adds r5, r4, #2 + adds r0, r1, r5 + ldrb r2, [r0] + adds r7, r4, #3 + adds r1, r1, r7 + ldrb r0, [r1] + lsls r0, r0, #8 + orrs r2, r0 + ldr r0, _0803C50C + cmp r2, r0 + bne _0803C514 + ldr r0, _0803C510 + adds r0, r3, r0 + movs r1, #1 + strb r1, [r0] + ldrb r0, [r6] + bl RecordedBattle_ClearBattlerAction + b _0803C948 + .align 2, 0 +_0803C504: .4byte 0x02023508 +_0803C508: .4byte 0x02023D08 +_0803C50C: .4byte 0x0000FFFF +_0803C510: .4byte 0x02023FD6 +_0803C514: + bl TrySetCantSelectMoveBattleScript + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0803C560 + ldrb r0, [r6] + movs r1, #1 + bl RecordedBattle_ClearBattlerAction + ldr r0, _0803C558 + ldrb r1, [r6] + adds r1, r1, r0 + movs r3, #0 + movs r0, #6 + strb r0, [r1] + ldrb r1, [r6] + ldr r2, _0803C55C + ldr r0, [r2] + adds r1, r1, r0 + adds r1, #0x54 + strb r3, [r1] + ldrb r0, [r6] + lsls r0, r0, #9 + adds r1, r4, #1 + adds r0, r0, r1 + strb r3, [r0] + ldrb r1, [r6] + ldr r0, [r2] + adds r1, r1, r0 + adds r1, #0x84 + movs r0, #2 + strb r0, [r1] + b _0803C9B4 + .align 2, 0 +_0803C558: .4byte 0x02023FD6 +_0803C55C: .4byte 0x02024140 +_0803C560: + ldr r0, _0803C5CC + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xa + ands r0, r1 + cmp r0, #0 + bne _0803C586 + ldrb r0, [r6] + lsls r1, r0, #9 + adds r1, r1, r5 + ldrb r1, [r1] + bl RecordedBattle_SetBattlerAction + ldrb r0, [r6] + lsls r1, r0, #9 + adds r1, r1, r7 + ldrb r1, [r1] + bl RecordedBattle_SetBattlerAction +_0803C586: + ldrb r0, [r6] + ldr r4, _0803C5D0 + ldr r1, [r4] + adds r1, r0, r1 + adds r1, #0x80 + lsls r0, r0, #9 + adds r0, r0, r5 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _0803C5D4 + ldrb r2, [r6] + lsls r5, r2, #1 + adds r5, r5, r0 + ldr r3, _0803C5D8 + ldr r4, [r4] + adds r0, r2, r4 + adds r0, #0x80 + ldrb r0, [r0] + lsls r0, r0, #1 + movs r1, #0x58 + muls r1, r2, r1 + adds r0, r0, r1 + adds r3, #0xc + adds r0, r0, r3 + ldrh r0, [r0] + strh r0, [r5] + ldrb r0, [r6] + adds r4, r0, r4 + lsls r0, r0, #9 + adds r0, r0, r7 + ldrb r0, [r0] + strb r0, [r4, #0xc] + ldr r0, _0803C5DC + ldrb r1, [r6] + b _0803C7B6 + .align 2, 0 +_0803C5CC: .4byte 0x02022C90 +_0803C5D0: .4byte 0x02024140 +_0803C5D4: .4byte 0x02023F18 +_0803C5D8: .4byte 0x02023D28 +_0803C5DC: .4byte 0x02023FD6 +_0803C5E0: + ldr r2, _0803C608 + ldr r5, _0803C60C + ldrb r4, [r5] + lsls r1, r4, #9 + adds r0, r2, #1 + adds r0, r1, r0 + ldrb r3, [r0] + adds r2, #2 + adds r1, r1, r2 + ldrb r0, [r1] + lsls r0, r0, #8 + orrs r3, r0 + cmp r3, #0 + bne _0803C5FE + b _0803C860 +_0803C5FE: + ldr r0, _0803C610 + strh r3, [r0] + ldr r0, _0803C614 + ldrb r1, [r5] + b _0803C7B6 + .align 2, 0 +_0803C608: .4byte 0x02023508 +_0803C60C: .4byte 0x02023D08 +_0803C610: .4byte 0x02023EAC +_0803C614: .4byte 0x02023FD6 +_0803C618: + ldr r0, _0803C63C + ldr r4, _0803C640 + ldrb r2, [r4] + lsls r1, r2, #9 + adds r0, #1 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #6 + bne _0803C648 + ldr r0, _0803C644 + adds r0, r2, r0 + movs r1, #1 + strb r1, [r0] + ldrb r0, [r4] + bl RecordedBattle_ClearBattlerAction + b _0803C948 + .align 2, 0 +_0803C63C: .4byte 0x02023508 +_0803C640: .4byte 0x02023D08 +_0803C644: .4byte 0x02023FD6 +_0803C648: + bl sub_0803CA3C + b _0803C7B2 +_0803C64E: + ldr r2, _0803C664 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #8 + orrs r0, r1 + str r0, [r2] + ldr r2, _0803C668 + ldr r0, _0803C66C + ldrb r1, [r0] + adds r1, r1, r2 + b _0803C7B8 + .align 2, 0 +_0803C664: .4byte 0x02023F24 +_0803C668: .4byte 0x02023FD6 +_0803C66C: .4byte 0x02023D08 +_0803C670: + ldr r2, _0803C67C + ldr r0, _0803C680 + ldrb r1, [r0] + adds r1, r1, r2 + b _0803C7B8 + .align 2, 0 +_0803C67C: .4byte 0x02023FD6 +_0803C680: .4byte 0x02023D08 +_0803C684: + ldr r2, _0803C690 + ldr r0, _0803C694 + ldrb r1, [r0] + adds r1, r1, r2 + b _0803C7B8 + .align 2, 0 +_0803C690: .4byte 0x02023FD6 +_0803C694: .4byte 0x02023D08 +_0803C698: + ldr r3, _0803C6BC + ldr r0, _0803C6C0 + ldrb r4, [r0] + lsls r1, r4, #9 + adds r0, r3, #1 + adds r0, r1, r0 + ldrb r2, [r0] + adds r3, #2 + adds r1, r1, r3 + ldrb r0, [r1] + lsls r0, r0, #8 + orrs r2, r0 + cmp r2, #0 + bne _0803C6B6 + b _0803C860 +_0803C6B6: + ldr r1, _0803C6C4 + adds r1, r4, r1 + b _0803C7B8 + .align 2, 0 +_0803C6BC: .4byte 0x02023508 +_0803C6C0: .4byte 0x02023D08 +_0803C6C4: .4byte 0x02023FD6 +_0803C6C8: + ldr r2, _0803C6D4 + ldr r0, _0803C6D8 + ldrb r1, [r0] + adds r1, r1, r2 + b _0803C7B8 + .align 2, 0 +_0803C6D4: .4byte 0x02023FD6 +_0803C6D8: .4byte 0x02023D08 +_0803C6DC: + ldr r2, _0803C6F4 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #8 + orrs r0, r1 + str r0, [r2] + ldr r2, _0803C6F8 + ldr r0, _0803C6FC + ldrb r1, [r0] + adds r1, r1, r2 + b _0803C7B8 + .align 2, 0 +_0803C6F4: .4byte 0x02023F24 +_0803C6F8: .4byte 0x02023FD6 +_0803C6FC: .4byte 0x02023D08 +_0803C700: + ldr r2, _0803C70C + ldr r0, _0803C710 + ldrb r1, [r0] + adds r1, r1, r2 + b _0803C7B8 + .align 2, 0 +_0803C70C: .4byte 0x02023FD6 +_0803C710: .4byte 0x02023D08 +_0803C714: + ldr r3, _0803C78C + ldr r6, _0803C790 + ldr r0, _0803C794 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r2, [r0] + lsls r1, r2, #4 + movs r0, #0xf0 + lsls r0, r0, #0x18 + orrs r1, r0 + orrs r1, r2 + lsls r0, r2, #8 + orrs r1, r0 + lsls r2, r2, #0xc + orrs r1, r2 + ldr r0, [r3] + ands r0, r1 + cmp r0, #0 + beq _0803C73E + b _0803C948 +_0803C73E: + bl AllAtActionConfirmed + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f + ldr r0, _0803C798 + ldr r0, [r0] + movs r1, #0x41 + ands r0, r1 + cmp r0, #1 + bne _0803C780 + movs r1, #2 + movs r0, #2 + ands r0, r5 + cmp r0, #0 + bne _0803C780 + adds r0, r5, #0 + eors r0, r1 + bl GetBattlerAtPosition + ldr r1, _0803C79C + ldr r1, [r1] + adds r1, #0x91 + ldrb r1, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r0, r0, r6 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _0803C7A0 +_0803C780: + movs r0, #0 + movs r1, #0 + adds r2, r4, #0 + bl BtlController_EmitLinkStandbyMsg + b _0803C7AA + .align 2, 0 +_0803C78C: .4byte 0x02023D0C +_0803C790: .4byte 0x082FACB4 +_0803C794: .4byte 0x02023D08 +_0803C798: .4byte 0x02022C90 +_0803C79C: .4byte 0x02024140 +_0803C7A0: + movs r0, #0 + movs r1, #1 + adds r2, r4, #0 + bl BtlController_EmitLinkStandbyMsg +_0803C7AA: + ldr r4, _0803C7C0 +_0803C7AC: + ldrb r0, [r4] + bl MarkBattlerForControllerExec +_0803C7B2: + ldr r0, _0803C7C4 + ldrb r1, [r4] +_0803C7B6: + adds r1, r1, r0 +_0803C7B8: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0803C948 + .align 2, 0 +_0803C7C0: .4byte 0x02023D08 +_0803C7C4: .4byte 0x02023FD6 +_0803C7C8: + ldr r3, _0803C7FC + ldr r1, _0803C800 + ldr r0, _0803C804 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r2, [r0] + lsls r1, r2, #4 + movs r0, #0xf0 + lsls r0, r0, #0x18 + orrs r1, r0 + orrs r1, r2 + lsls r0, r2, #8 + orrs r1, r0 + lsls r2, r2, #0xc + orrs r1, r2 + ldr r0, [r3] + ands r0, r1 + cmp r0, #0 + beq _0803C7F2 + b _0803C948 +_0803C7F2: + ldr r1, _0803C808 + ldrb r0, [r1, #4] + adds r0, #1 + strb r0, [r1, #4] + b _0803C948 + .align 2, 0 +_0803C7FC: .4byte 0x02023D0C +_0803C800: .4byte 0x082FACB4 +_0803C804: .4byte 0x02023D08 +_0803C808: .4byte 0x02023FD6 +_0803C80C: + ldr r5, _0803C82C + ldrb r2, [r5] + ldr r0, _0803C830 + ldr r0, [r0] + adds r1, r2, r0 + adds r0, r1, #0 + adds r0, #0x54 + ldrb r0, [r0] + cmp r0, #0 + beq _0803C8F8 + ldr r0, _0803C834 + adds r0, r2, r0 + adds r1, #0x84 + ldrb r1, [r1] + strb r1, [r0] + b _0803C948 + .align 2, 0 +_0803C82C: .4byte 0x02023D08 +_0803C830: .4byte 0x02024140 +_0803C834: .4byte 0x02023FD6 +_0803C838: + ldr r3, _0803C86C + ldr r1, _0803C870 + ldr r0, _0803C874 + ldrb r4, [r0] + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r2, [r0] + lsls r1, r2, #4 + movs r0, #0xf0 + lsls r0, r0, #0x18 + orrs r1, r0 + orrs r1, r2 + lsls r0, r2, #8 + orrs r1, r0 + lsls r2, r2, #0xc + orrs r1, r2 + ldr r0, [r3] + ands r0, r1 + cmp r0, #0 + bne _0803C948 +_0803C860: + ldr r0, _0803C878 + adds r0, r4, r0 +_0803C864: + movs r1, #1 + strb r1, [r0] + b _0803C948 + .align 2, 0 +_0803C86C: .4byte 0x02023D0C +_0803C870: .4byte 0x082FACB4 +_0803C874: .4byte 0x02023D08 +_0803C878: .4byte 0x02023FD6 +_0803C87C: + ldr r5, _0803C8C0 + ldrb r2, [r5] + ldr r4, _0803C8C4 + ldr r0, [r4] + adds r0, r2, r0 + adds r0, #0x54 + ldrb r0, [r0] + cmp r0, #0 + beq _0803C8F8 + ldr r0, _0803C8C8 + lsls r1, r2, #9 + adds r0, #1 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0xd + bne _0803C8D8 + ldr r2, _0803C8CC + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #8 + orrs r0, r1 + str r0, [r2] + ldr r1, _0803C8D0 + ldrb r0, [r5] + adds r0, r0, r1 + movs r1, #3 + strb r1, [r0] + ldr r1, _0803C8D4 + ldrb r0, [r5] +_0803C8B6: + adds r0, r0, r1 + movs r1, #4 + strb r1, [r0] + b _0803C948 + .align 2, 0 +_0803C8C0: .4byte 0x02023D08 +_0803C8C4: .4byte 0x02024140 +_0803C8C8: .4byte 0x02023508 +_0803C8CC: .4byte 0x02023F24 +_0803C8D0: .4byte 0x02023EC0 +_0803C8D4: .4byte 0x02023FD6 +_0803C8D8: + adds r0, r2, #0 + movs r1, #1 + bl RecordedBattle_ClearBattlerAction + ldr r2, _0803C8F4 + ldrb r0, [r5] + adds r2, r0, r2 + ldr r1, [r4] + adds r0, r0, r1 + adds r0, #0x84 + ldrb r0, [r0] + strb r0, [r2] + b _0803C948 + .align 2, 0 +_0803C8F4: .4byte 0x02023FD6 +_0803C8F8: + ldr r0, _0803C9C4 + strb r2, [r0] + ldr r7, _0803C9C8 + ldr r6, _0803C9CC + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r4, [r0] + str r4, [r7] + ldr r3, _0803C9D0 + ldr r1, _0803C9D4 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r2, [r0] + lsls r1, r2, #4 + movs r0, #0xf0 + lsls r0, r0, #0x18 + orrs r1, r0 + orrs r1, r2 + lsls r0, r2, #8 + orrs r1, r0 + lsls r2, r2, #0xc + orrs r1, r2 + ldr r0, [r3] + ands r0, r1 + cmp r0, #0 + bne _0803C93E + ldr r0, _0803C9D8 + ldrb r1, [r4] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl _call_via_r0 +_0803C93E: + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r1, [r7] + str r1, [r0] +_0803C948: + ldr r0, _0803C9DC + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + ldr r0, _0803C9E0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 +_0803C956: + adds r5, r0, #0 + ldrb r0, [r5] + cmp r1, r0 + bhs _0803C962 + bl HandleTurnActionSelectionState +_0803C962: + ldr r0, _0803C9E4 + ldrb r0, [r0, #4] + ldrb r1, [r5] + cmp r0, r1 + bne _0803C9B4 + movs r0, #1 + bl sub_08185D94 + ldr r1, _0803C9E8 + ldr r0, _0803C9EC + str r0, [r1] + ldr r0, _0803C9F0 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + beq _0803C9B4 + movs r4, #0 + ldrb r5, [r5] + cmp r4, r5 + bge _0803C9B4 +_0803C98E: + ldr r0, _0803C9F4 + adds r0, r4, r0 + ldrb r0, [r0] + cmp r0, #2 + bne _0803C9AA + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0803C9F8 + ldr r1, [r1] + adds r1, r4, r1 + adds r1, #0x5c + ldrb r1, [r1] + bl sub_08056DEC +_0803C9AA: + adds r4, #1 + ldr r0, _0803C9E0 + ldrb r0, [r0] + cmp r4, r0 + blt _0803C98E +_0803C9B4: + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0803C9C4: .4byte 0x02023EAF +_0803C9C8: .4byte 0x02023EB8 +_0803C9CC: .4byte 0x02023EC4 +_0803C9D0: .4byte 0x02023D0C +_0803C9D4: .4byte 0x082FACB4 +_0803C9D8: .4byte 0x082EC694 +_0803C9DC: .4byte 0x02023D08 +_0803C9E0: .4byte 0x02023D10 +_0803C9E4: .4byte 0x02023FD6 +_0803C9E8: .4byte 0x03005A64 +_0803C9EC: .4byte 0x0803CF2D +_0803C9F0: .4byte 0x02022C90 +_0803C9F4: .4byte 0x02023EC0 +_0803C9F8: .4byte 0x02024140 + thumb_func_end HandleTurnActionSelectionState + + thumb_func_start AllAtActionConfirmed +AllAtActionConfirmed: @ 0x0803C9FC + push {r4, r5, lr} + movs r3, #0 + movs r1, #0 + ldr r0, _0803CA2C + ldrb r2, [r0] + adds r5, r0, #0 + cmp r3, r2 + bge _0803CA1E + ldr r4, _0803CA30 +_0803CA0E: + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, #5 + bne _0803CA18 + adds r3, #1 +_0803CA18: + adds r1, #1 + cmp r1, r2 + blt _0803CA0E +_0803CA1E: + adds r0, r3, #1 + ldrb r5, [r5] + cmp r0, r5 + beq _0803CA34 + movs r0, #0 + b _0803CA36 + .align 2, 0 +_0803CA2C: .4byte 0x02023D10 +_0803CA30: .4byte 0x02023FD6 +_0803CA34: + movs r0, #1 +_0803CA36: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end AllAtActionConfirmed + + thumb_func_start sub_0803CA3C +sub_0803CA3C: @ 0x0803CA3C + push {r4, r5, r6, r7, lr} + ldr r7, _0803CB10 + ldrb r0, [r7] + ldr r6, _0803CB14 + ldr r1, [r6] + adds r1, r0, r1 + adds r1, #0x5c + ldr r4, _0803CB18 + lsls r0, r0, #9 + adds r2, r4, #1 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + lsls r1, r0, #9 + adds r1, r1, r2 + ldrb r1, [r1] + bl RecordedBattle_SetBattlerAction + ldr r0, _0803CB1C + ldr r0, [r0] + movs r1, #0x42 + ands r0, r1 + cmp r0, #0x42 + bne _0803CB0A + ldrb r0, [r7] + ldr r2, [r6] + lsls r1, r0, #1 + adds r1, r1, r0 + adds r1, r1, r2 + adds r1, #0x60 + ldrb r2, [r1] + movs r0, #0xf + ands r0, r2 + strb r0, [r1] + ldrb r0, [r7] + ldr r2, [r6] + lsls r1, r0, #1 + adds r1, r1, r0 + adds r1, r1, r2 + adds r1, #0x60 + lsls r0, r0, #9 + adds r5, r4, #2 + adds r0, r0, r5 + ldrb r2, [r0] + movs r3, #0xf0 + adds r0, r3, #0 + ands r0, r2 + ldrb r2, [r1] + orrs r0, r2 + strb r0, [r1] + ldrb r1, [r7] + ldr r2, [r6] + lsls r0, r1, #1 + adds r0, r0, r1 + adds r0, r0, r2 + adds r0, #0x61 + lsls r1, r1, #9 + adds r4, #3 + mov ip, r4 + add r1, ip + ldrb r1, [r1] + strb r1, [r0] + ldrb r0, [r7] + movs r4, #2 + eors r0, r4 + ldr r2, [r6] + lsls r1, r0, #1 + adds r1, r1, r0 + adds r1, r1, r2 + adds r1, #0x60 + ldrb r2, [r1] + adds r0, r3, #0 + ands r0, r2 + strb r0, [r1] + ldrb r0, [r7] + eors r0, r4 + ldr r2, [r6] + lsls r1, r0, #1 + adds r1, r1, r0 + adds r1, r1, r2 + adds r1, #0x60 + ldrb r0, [r7] + lsls r0, r0, #9 + adds r0, r0, r5 + ldrb r0, [r0] + ands r3, r0 + lsrs r3, r3, #4 + ldrb r0, [r1] + orrs r3, r0 + strb r3, [r1] + ldrb r0, [r7] + eors r4, r0 + ldr r0, [r6] + lsls r1, r4, #1 + adds r1, r1, r4 + adds r1, r1, r0 + adds r1, #0x62 + ldrb r0, [r7] + lsls r0, r0, #9 + add r0, ip + ldrb r0, [r0] + strb r0, [r1] +_0803CB0A: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0803CB10: .4byte 0x02023D08 +_0803CB14: .4byte 0x02024140 +_0803CB18: .4byte 0x02023508 +_0803CB1C: .4byte 0x02022C90 + thumb_func_end sub_0803CA3C + + thumb_func_start SwapTurnOrder +SwapTurnOrder: @ 0x0803CB20 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _0803CB4C + adds r4, r0, r2 + ldrb r5, [r4] + adds r2, r1, r2 + ldrb r3, [r2] + strb r3, [r4] + strb r5, [r2] + ldr r2, _0803CB50 + adds r0, r0, r2 + ldrb r5, [r0] + adds r1, r1, r2 + ldrb r2, [r1] + strb r2, [r0] + strb r5, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0803CB4C: .4byte 0x02023D1E +_0803CB50: .4byte 0x02023D22 + thumb_func_end SwapTurnOrder + + thumb_func_start GetWhoStrikesFirst +GetWhoStrikesFirst: @ 0x0803CB54 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sl, r1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + str r0, [sp] + movs r0, #0x13 + movs r1, #0 + movs r2, #0xd + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803CC1C + ldr r1, [sp, #8] + str r1, [sp] + movs r0, #0x13 + movs r1, #0 + movs r2, #0x4d + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803CC1C + ldr r1, _0803CBD4 + movs r0, #0x58 + mov r2, sb + muls r2, r0, r2 + adds r0, r2, #0 + adds r0, r0, r1 + adds r0, #0x20 + ldrb r3, [r0] + cmp r3, #0x21 + bne _0803CBC0 + ldr r0, _0803CBD8 + ldrh r1, [r0] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _0803CBD0 +_0803CBC0: + cmp r3, #0x22 + bne _0803CBDC + ldr r0, _0803CBD8 + ldrh r1, [r0] + movs r0, #0x60 + ands r0, r1 + cmp r0, #0 + beq _0803CBDC +_0803CBD0: + movs r3, #2 + b _0803CBDE + .align 2, 0 +_0803CBD4: .4byte 0x02023D28 +_0803CBD8: .4byte 0x02024070 +_0803CBDC: + movs r3, #1 +_0803CBDE: + movs r0, #0x58 + mov r1, sl + muls r1, r0, r1 + adds r0, r1, #0 + ldr r2, _0803CC14 + adds r0, r0, r2 + adds r0, #0x20 + ldrb r2, [r0] + cmp r2, #0x21 + bne _0803CBFE + ldr r0, _0803CC18 + ldrh r1, [r0] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _0803CC0E +_0803CBFE: + cmp r2, #0x22 + bne _0803CC1E + ldr r0, _0803CC18 + ldrh r1, [r0] + movs r0, #0x60 + ands r0, r1 + cmp r0, #0 + beq _0803CC1E +_0803CC0E: + movs r7, #2 + b _0803CC20 + .align 2, 0 +_0803CC14: .4byte 0x02023D28 +_0803CC18: .4byte 0x02024070 +_0803CC1C: + movs r3, #1 +_0803CC1E: + movs r7, #1 +_0803CC20: + ldr r1, _0803CC64 + movs r0, #0x58 + mov r2, sb + muls r2, r0, r2 + adds r0, r2, #0 + adds r4, r0, r1 + ldrh r0, [r4, #6] + muls r3, r0, r3 + ldr r2, _0803CC68 + movs r1, #0x1b + ldrsb r1, [r4, r1] + lsls r1, r1, #1 + adds r0, r1, r2 + ldrb r0, [r0] + muls r0, r3, r0 + adds r2, #1 + adds r1, r1, r2 + ldrb r1, [r1] + bl __divsi3 + mov r8, r0 + ldrh r0, [r4, #0x2e] + cmp r0, #0xaf + bne _0803CC70 + ldr r1, _0803CC6C + mov r3, sb + lsls r0, r3, #3 + subs r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r6, [r0, #7] + ldrb r5, [r0, #0x1a] + b _0803CC84 + .align 2, 0 +_0803CC64: .4byte 0x02023D28 +_0803CC68: .4byte 0x082FA6B6 +_0803CC6C: .4byte 0x020240A8 +_0803CC70: + ldrh r0, [r4, #0x2e] + bl sub_080D6CF8 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldrh r0, [r4, #0x2e] + bl sub_080D6D1C + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_0803CC84: + ldr r0, _0803CD40 + ldr r0, [r0] + ldr r1, _0803CD44 + ands r0, r1 + cmp r0, #0 + bne _0803CCB8 + ldr r0, _0803CD48 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0803CCB8 + mov r0, sb + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803CCB8 + movs r0, #0x6e + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + movs r1, #0x64 + bl __udivsi3 + mov r8, r0 +_0803CCB8: + cmp r6, #0x18 + bne _0803CCC2 + mov r2, r8 + lsrs r2, r2, #1 + mov r8, r2 +_0803CCC2: + ldr r1, _0803CD4C + movs r0, #0x58 + mov r3, sb + muls r3, r0, r3 + adds r0, r3, #0 + adds r1, #0x4c + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0803CCE0 + mov r0, r8 + lsrs r0, r0, #2 + mov r8, r0 +_0803CCE0: + cmp r6, #0x1a + bne _0803CCFC + ldr r0, _0803CD50 + ldrh r4, [r0] + lsls r0, r5, #0x10 + subs r0, r0, r5 + movs r1, #0x64 + bl __divsi3 + cmp r4, r0 + bge _0803CCFC + movs r1, #1 + rsbs r1, r1, #0 + mov r8, r1 +_0803CCFC: + ldr r1, _0803CD4C + movs r0, #0x58 + mov r2, sl + muls r2, r0, r2 + adds r0, r2, #0 + adds r4, r0, r1 + ldrh r0, [r4, #6] + adds r3, r0, #0 + muls r3, r7, r3 + ldr r2, _0803CD54 + movs r1, #0x1b + ldrsb r1, [r4, r1] + lsls r1, r1, #1 + adds r0, r1, r2 + ldrb r0, [r0] + muls r0, r3, r0 + adds r2, #1 + adds r1, r1, r2 + ldrb r1, [r1] + bl __divsi3 + adds r7, r0, #0 + ldrh r0, [r4, #0x2e] + cmp r0, #0xaf + bne _0803CD5C + ldr r1, _0803CD58 + mov r3, sl + lsls r0, r3, #3 + subs r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r6, [r0, #7] + ldrb r5, [r0, #0x1a] + b _0803CD70 + .align 2, 0 +_0803CD40: .4byte 0x02022C90 +_0803CD44: .4byte 0x023F0102 +_0803CD48: .4byte 0x00000869 +_0803CD4C: .4byte 0x02023D28 +_0803CD50: .4byte 0x02023FD4 +_0803CD54: .4byte 0x082FA6B6 +_0803CD58: .4byte 0x020240A8 +_0803CD5C: + ldrh r0, [r4, #0x2e] + bl sub_080D6CF8 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldrh r0, [r4, #0x2e] + bl sub_080D6D1C + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_0803CD70: + ldr r0, _0803CDE8 + ldr r0, [r0] + ldr r1, _0803CDEC + ands r0, r1 + cmp r0, #0 + bne _0803CDA0 + ldr r0, _0803CDF0 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0803CDA0 + mov r0, sl + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803CDA0 + movs r0, #0x6e + muls r0, r7, r0 + movs r1, #0x64 + bl __udivsi3 + adds r7, r0, #0 +_0803CDA0: + cmp r6, #0x18 + bne _0803CDA6 + lsrs r7, r7, #1 +_0803CDA6: + ldr r2, _0803CDF4 + movs r0, #0x58 + mov r1, sl + muls r1, r0, r1 + adds r0, r1, #0 + adds r1, r2, #0 + adds r1, #0x4c + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0803CDC2 + lsrs r7, r7, #2 +_0803CDC2: + cmp r6, #0x1a + bne _0803CDDC + ldr r0, _0803CDF8 + ldrh r4, [r0] + lsls r0, r5, #0x10 + subs r0, r0, r5 + movs r1, #0x64 + bl __divsi3 + cmp r4, r0 + bge _0803CDDC + movs r7, #1 + rsbs r7, r7, #0 +_0803CDDC: + ldr r2, [sp, #4] + cmp r2, #0 + beq _0803CDFC + movs r3, #0 + b _0803CE98 + .align 2, 0 +_0803CDE8: .4byte 0x02022C90 +_0803CDEC: .4byte 0x023F0102 +_0803CDF0: .4byte 0x00000869 +_0803CDF4: .4byte 0x02023D28 +_0803CDF8: .4byte 0x02023FD4 +_0803CDFC: + ldr r0, _0803CE1C + mov r3, sb + adds r1, r3, r0 + ldrb r1, [r1] + adds r2, r0, #0 + cmp r1, #0 + bne _0803CE4C + ldr r0, _0803CE20 + lsls r1, r3, #4 + adds r1, r1, r0 + ldrb r0, [r1] + lsls r0, r0, #0x1d + cmp r0, #0 + bge _0803CE24 + movs r3, #0xa5 + b _0803CE4E + .align 2, 0 +_0803CE1C: .4byte 0x02023EC0 +_0803CE20: .4byte 0x02023FE0 +_0803CE24: + ldr r0, _0803CE44 + ldr r0, [r0] + add r0, sb + adds r0, #0x80 + ldrb r0, [r0] + lsls r0, r0, #1 + movs r1, #0x58 + mov r3, sb + muls r3, r1, r3 + adds r1, r3, #0 + adds r0, r0, r1 + ldr r1, _0803CE48 + adds r1, #0xc + adds r0, r0, r1 + ldrh r3, [r0] + b _0803CE4E + .align 2, 0 +_0803CE44: .4byte 0x02024140 +_0803CE48: .4byte 0x02023D28 +_0803CE4C: + movs r3, #0 +_0803CE4E: + mov r1, sl + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _0803CE98 + ldr r0, _0803CE6C + lsls r1, r1, #4 + adds r1, r1, r0 + ldrb r0, [r1] + lsls r0, r0, #0x1d + cmp r0, #0 + bge _0803CE70 + movs r2, #0xa5 + b _0803CE9A + .align 2, 0 +_0803CE6C: .4byte 0x02023FE0 +_0803CE70: + ldr r0, _0803CE90 + ldr r0, [r0] + add r0, sl + adds r0, #0x80 + ldrb r0, [r0] + lsls r0, r0, #1 + movs r1, #0x58 + mov r2, sl + muls r2, r1, r2 + adds r1, r2, #0 + adds r0, r0, r1 + ldr r1, _0803CE94 + adds r1, #0xc + adds r0, r0, r1 + ldrh r2, [r0] + b _0803CE9A + .align 2, 0 +_0803CE90: .4byte 0x02024140 +_0803CE94: .4byte 0x02023D28 +_0803CE98: + movs r2, #0 +_0803CE9A: + ldr r4, _0803CEE4 + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #7 + ldrsb r1, [r0, r1] + lsls r3, r2, #1 + cmp r1, #0 + bne _0803CEBE + adds r0, r3, r2 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r0, [r0, #7] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0803CEFC +_0803CEBE: + adds r0, r3, r2 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r0, [r0, #7] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r1, r0 + bne _0803CEF2 + cmp r8, r7 + bne _0803CEE8 + bl Random + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0803CEE8 + movs r3, #2 + b _0803CF18 + .align 2, 0 +_0803CEE4: .4byte 0x082ED220 +_0803CEE8: + cmp r8, r7 + bhs _0803CF1A + movs r0, #1 + str r0, [sp, #8] + b _0803CF1A +_0803CEF2: + cmp r1, r0 + bge _0803CF1A + movs r1, #1 + str r1, [sp, #8] + b _0803CF1A +_0803CEFC: + cmp r8, r7 + bne _0803CF12 + bl Random + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0803CF12 + movs r2, #2 + str r2, [sp, #8] + b _0803CF1A +_0803CF12: + cmp r8, r7 + bhs _0803CF1A + movs r3, #1 +_0803CF18: + str r3, [sp, #8] +_0803CF1A: + ldr r0, [sp, #8] + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end GetWhoStrikesFirst + + thumb_func_start SetActionsAndBattlersTurnOrder +SetActionsAndBattlersTurnOrder: @ 0x0803CF2C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + movs r3, #0 + ldr r0, _0803CF80 + ldr r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803CF98 + ldr r0, _0803CF84 + strb r3, [r0] + ldr r4, _0803CF88 + mov r8, r0 + ldrb r0, [r4] + cmp r3, r0 + blo _0803CF54 + b _0803D18E +_0803CF54: + ldr r7, _0803CF8C + ldr r6, _0803CF90 + mov r2, r8 + ldr r5, _0803CF94 +_0803CF5C: + adds r1, r3, r7 + ldrb r0, [r2] + adds r0, r0, r6 + ldrb r0, [r0] + strb r0, [r1] + adds r1, r3, r5 + ldrb r0, [r2] + strb r0, [r1] + adds r3, #1 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r4] + cmp r0, r1 + blo _0803CF5C + b _0803D18E + .align 2, 0 +_0803CF80: .4byte 0x02022C90 +_0803CF84: .4byte 0x02023D08 +_0803CF88: .4byte 0x02023D10 +_0803CF8C: .4byte 0x02023D1E +_0803CF90: .4byte 0x02023EC0 +_0803CF94: .4byte 0x02023D22 +_0803CF98: + movs r2, #2 + ands r1, r2 + cmp r1, #0 + beq _0803CFE8 + ldr r0, _0803CFDC + strb r3, [r0] + ldr r1, _0803CFE0 + mov r8, r0 + adds r2, r1, #0 + ldrb r2, [r2] + cmp r3, r2 + bhs _0803D004 + ldr r0, _0803CFE4 + ldrb r1, [r0] + adds r4, r0, #0 + cmp r1, #3 + beq _0803D002 +_0803CFBA: + mov r7, r8 + ldrb r0, [r7] + adds r0, #1 + strb r0, [r7] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0803CFE0 + ldrb r1, [r1] + cmp r0, r1 + bhs _0803D004 + ldrb r0, [r7] + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #3 + bne _0803CFBA + b _0803D002 + .align 2, 0 +_0803CFDC: .4byte 0x02023D08 +_0803CFE0: .4byte 0x02023D10 +_0803CFE4: .4byte 0x02023EC0 +_0803CFE8: + ldr r1, _0803D06C + ldrb r0, [r1] + ldr r4, _0803D070 + mov r8, r4 + cmp r0, #3 + bne _0803CFF8 + strb r3, [r4] + movs r3, #5 +_0803CFF8: + ldrb r0, [r1, #2] + cmp r0, #3 + bne _0803D004 + mov r7, r8 + strb r2, [r7] +_0803D002: + movs r3, #5 +_0803D004: + cmp r3, #5 + bne _0803D08C + ldr r6, _0803D074 + ldr r1, _0803D06C + mov r2, r8 + ldrb r0, [r2] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r6] + ldr r2, _0803D078 + mov r3, r8 + ldrb r0, [r3] + strb r0, [r2] + movs r3, #1 + movs r5, #0 + adds r4, r1, #0 + ldr r7, _0803D07C + mov sl, r7 + ldr r0, _0803D080 + mov ip, r0 + ldr r1, _0803D084 + mov sb, r1 + ldr r7, _0803D088 + ldrb r7, [r7] + cmp r5, r7 + bge _0803D05E + adds r7, r6, #0 + adds r6, r4, #0 + adds r4, r2, #0 + ldr r2, _0803D088 +_0803D040: + mov r0, r8 + ldrb r0, [r0] + cmp r5, r0 + beq _0803D056 + adds r1, r3, r7 + adds r0, r5, r6 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, r4 + strb r5, [r0] + adds r3, #1 +_0803D056: + adds r5, #1 + ldrb r1, [r2] + cmp r5, r1 + blt _0803D040 +_0803D05E: + mov r2, ip + mov r3, sl + str r2, [r3] + mov r4, sb + ldr r0, [r4] + b _0803D198 + .align 2, 0 +_0803D06C: .4byte 0x02023EC0 +_0803D070: .4byte 0x02023D08 +_0803D074: .4byte 0x02023D1E +_0803D078: .4byte 0x02023D22 +_0803D07C: .4byte 0x03005A64 +_0803D080: .4byte 0x0803D335 +_0803D084: .4byte 0x02024140 +_0803D088: .4byte 0x02023D10 +_0803D08C: + movs r0, #0 + mov r7, r8 + strb r0, [r7] + ldr r1, _0803D11C + ldrb r0, [r1] + cmp r0, #0 + beq _0803D0D2 + ldr r6, _0803D120 + mov r2, r8 + ldr r5, _0803D124 + ldr r4, _0803D128 +_0803D0A2: + ldrb r0, [r2] + adds r0, r0, r6 + ldrb r1, [r0] + subs r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0803D0C0 + adds r0, r3, r5 + strb r1, [r0] + adds r1, r3, r4 + mov r7, r8 + ldrb r0, [r7] + strb r0, [r1] + adds r3, #1 +_0803D0C0: + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0803D11C + ldrb r1, [r1] + cmp r0, r1 + blo _0803D0A2 +_0803D0D2: + movs r0, #0 + mov r2, r8 + strb r0, [r2] + ldr r4, _0803D11C + ldrb r0, [r4] + cmp r0, #0 + beq _0803D116 + ldr r6, _0803D120 + ldr r5, _0803D124 + ldr r4, _0803D128 +_0803D0E6: + ldrb r0, [r2] + adds r0, r0, r6 + ldrb r1, [r0] + subs r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _0803D104 + adds r0, r3, r5 + strb r1, [r0] + adds r1, r3, r4 + mov r7, r8 + ldrb r0, [r7] + strb r0, [r1] + adds r3, #1 +_0803D104: + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0803D11C + ldrb r1, [r1] + cmp r0, r1 + blo _0803D0E6 +_0803D116: + movs r5, #0 + b _0803D184 + .align 2, 0 +_0803D11C: .4byte 0x02023D10 +_0803D120: .4byte 0x02023EC0 +_0803D124: .4byte 0x02023D1E +_0803D128: .4byte 0x02023D22 +_0803D12C: + adds r4, r5, #1 + adds r7, r4, #0 + ldrb r1, [r1] + cmp r7, r1 + bge _0803D182 + ldr r6, _0803D1AC + lsls r2, r5, #0x18 + mov r8, r2 +_0803D13C: + ldr r0, _0803D1B0 + adds r1, r5, r0 + ldrb r3, [r1] + adds r0, r4, r0 + ldrb r1, [r0] + adds r0, r5, r6 + ldrb r2, [r0] + cmp r2, #1 + beq _0803D178 + adds r0, r4, r6 + ldrb r0, [r0] + cmp r0, #1 + beq _0803D178 + cmp r2, #2 + beq _0803D178 + cmp r0, #2 + beq _0803D178 + adds r0, r3, #0 + movs r2, #0 + bl GetWhoStrikesFirst + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0803D178 + lsls r1, r4, #0x18 + lsrs r1, r1, #0x18 + mov r3, r8 + lsrs r0, r3, #0x18 + bl SwapTurnOrder +_0803D178: + adds r4, #1 + ldr r0, _0803D1B4 + ldrb r0, [r0] + cmp r4, r0 + blt _0803D13C +_0803D182: + adds r5, r7, #0 +_0803D184: + ldr r1, _0803D1B4 + ldrb r0, [r1] + subs r0, #1 + cmp r5, r0 + blt _0803D12C +_0803D18E: + ldr r1, _0803D1B8 + ldr r0, _0803D1BC + str r0, [r1] + ldr r0, _0803D1C0 + ldr r0, [r0] +_0803D198: + adds r0, #0x48 + movs r1, #0 + strb r1, [r0] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0803D1AC: .4byte 0x02023D1E +_0803D1B0: .4byte 0x02023D22 +_0803D1B4: .4byte 0x02023D10 +_0803D1B8: .4byte 0x03005A64 +_0803D1BC: .4byte 0x0803D335 +_0803D1C0: .4byte 0x02024140 + thumb_func_end SetActionsAndBattlersTurnOrder + + thumb_func_start TurnValuesCleanUp +TurnValuesCleanUp: @ 0x0803D1C4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldr r1, _0803D21C + movs r0, #0 + strb r0, [r1] + ldr r0, _0803D220 + ldrb r2, [r0] + adds r5, r1, #0 + cmp r2, #0 + beq _0803D2BC + ldr r7, _0803D224 + adds r6, r5, #0 + ldr r0, _0803D228 + mov ip, r0 + ldr r1, _0803D22C + mov r8, r1 + mov sl, r8 +_0803D1F2: + mov r2, sb + cmp r2, #0 + beq _0803D230 + ldrb r1, [r6] + lsls r1, r1, #4 + adds r1, r1, r7 + ldrb r2, [r1] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldrb r1, [r6] + lsls r1, r1, #4 + adds r1, r1, r7 + ldrb r2, [r1] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + b _0803D28C + .align 2, 0 +_0803D21C: .4byte 0x02023D08 +_0803D220: .4byte 0x02023D10 +_0803D224: .4byte 0x02023FE0 +_0803D228: .4byte 0x02023D78 +_0803D22C: .4byte 0x02023F60 +_0803D230: + ldrb r0, [r6] + lsls r0, r0, #4 + adds r2, r0, r7 + movs r1, #0 + mov r4, sl + movs r3, #0 +_0803D23C: + adds r0, r2, r1 + strb r3, [r0] + adds r1, #1 + cmp r1, #0xf + bls _0803D23C + ldrb r1, [r5] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r4 + ldrb r0, [r1, #0x16] + cmp r0, #0 + beq _0803D25A + subs r0, #1 + strb r0, [r1, #0x16] +_0803D25A: + ldrb r1, [r5] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r4 + ldrb r0, [r1, #0x19] + cmp r0, #0 + beq _0803D28C + subs r0, #1 + strb r0, [r1, #0x19] + ldrb r2, [r5] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r0, [r0, #0x19] + cmp r0, #0 + bne _0803D28C + movs r0, #0x58 + muls r2, r0, r2 + add r2, ip + ldr r0, [r2] + ldr r1, _0803D2D4 + ands r0, r1 + str r0, [r2] +_0803D28C: + ldrb r2, [r5] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + add r0, r8 + ldrb r0, [r0, #0xa] + cmp r0, #0 + bne _0803D2AA + movs r0, #0x58 + muls r2, r0, r2 + add r2, ip + ldr r0, [r2] + ldr r1, _0803D2D8 + ands r0, r1 + str r0, [r2] +_0803D2AA: + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0803D2DC + ldrb r1, [r1] + cmp r0, r1 + blo _0803D1F2 +_0803D2BC: + movs r0, #0 + ldr r2, _0803D2E0 + strb r0, [r2, #8] + strb r0, [r2, #0x14] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0803D2D4: .4byte 0xFFBFFFFF +_0803D2D8: .4byte 0xFEFFFFFF +_0803D2DC: .4byte 0x02023D10 +_0803D2E0: .4byte 0x02023F38 + thumb_func_end TurnValuesCleanUp + + thumb_func_start SpecialStatusesClear +SpecialStatusesClear: @ 0x0803D2E4 + push {r4, r5, r6, lr} + ldr r2, _0803D328 + movs r0, #0 + strb r0, [r2] + ldr r0, _0803D32C + ldrb r1, [r0] + adds r6, r0, #0 + cmp r1, #0 + beq _0803D322 + adds r3, r2, #0 + movs r4, #0 + ldr r5, _0803D330 +_0803D2FC: + ldrb r1, [r3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, r0, r5 + movs r1, #0 +_0803D308: + adds r0, r2, r1 + strb r4, [r0] + adds r1, #1 + cmp r1, #0x13 + bls _0803D308 + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r6] + cmp r0, r1 + blo _0803D2FC +_0803D322: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0803D328: .4byte 0x02023D08 +_0803D32C: .4byte 0x02023D10 +_0803D330: .4byte 0x02024020 + thumb_func_end SpecialStatusesClear + + thumb_func_start CheckFocusPunch_ClearVarsBeforeTurnStarts +CheckFocusPunch_ClearVarsBeforeTurnStarts: @ 0x0803D334 + push {r4, r5, r6, r7, lr} + ldr r0, _0803D3BC + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + bne _0803D3F2 + ldr r2, _0803D3C0 + ldr r0, [r2] + adds r0, #0x48 + ldr r1, _0803D3C4 + ldrb r0, [r0] + mov ip, r2 + adds r6, r1, #0 + ldrb r1, [r6] + cmp r0, r1 + bhs _0803D3F2 + ldr r5, _0803D3C8 + ldr r4, _0803D3CC + movs r7, #0x84 + lsls r7, r7, #1 +_0803D360: + ldr r1, [r2] + adds r1, #0x48 + ldrb r0, [r1] + strb r0, [r4] + strb r0, [r5] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r1, _0803D3D0 + ldrb r3, [r5] + lsls r0, r3, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, r7 + bne _0803D3E4 + ldr r1, _0803D3D4 + movs r0, #0x58 + muls r0, r3, r0 + adds r1, #0x4c + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _0803D3E4 + ldr r2, _0803D3D8 + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #0x18] + lsls r0, r0, #0x1f + cmp r0, #0 + bne _0803D3E4 + ldr r0, _0803D3DC + lsls r1, r3, #4 + adds r1, r1, r0 + ldrb r0, [r1] + lsls r0, r0, #0x1d + cmp r0, #0 + blt _0803D3E4 + ldr r0, _0803D3E0 + bl BattleScriptExecute + b _0803D42C + .align 2, 0 +_0803D3BC: .4byte 0x02023F24 +_0803D3C0: .4byte 0x02024140 +_0803D3C4: .4byte 0x02023D10 +_0803D3C8: .4byte 0x02023D08 +_0803D3CC: .4byte 0x02023EAF +_0803D3D0: .4byte 0x02023F18 +_0803D3D4: .4byte 0x02023D28 +_0803D3D8: .4byte 0x02023F60 +_0803D3DC: .4byte 0x02023FE0 +_0803D3E0: .4byte 0x08289787 +_0803D3E4: + mov r2, ip + ldr r0, [r2] + adds r0, #0x48 + ldrb r0, [r0] + ldrb r1, [r6] + cmp r0, r1 + blo _0803D360 +_0803D3F2: + bl TryClearRageStatuses + ldr r1, _0803D434 + movs r0, #0 + strb r0, [r1] + ldr r1, _0803D438 + ldr r0, _0803D43C + movs r3, #0 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _0803D440 + movs r2, #0 + strh r3, [r0] + ldr r0, _0803D444 + ldr r0, [r0] + strb r2, [r0, #0x13] + ldr r1, _0803D448 + ldr r0, _0803D44C + str r0, [r1] + ldr r0, _0803D450 + strb r2, [r0, #3] + strb r2, [r0, #4] + ldr r0, _0803D454 + strb r2, [r0, #0x16] + ldr r0, _0803D458 + ldr r0, [r0] + ldr r0, [r0, #8] + adds r0, #0x20 + strb r2, [r0] +_0803D42C: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0803D434: .4byte 0x02023D26 +_0803D438: .4byte 0x02023D27 +_0803D43C: .4byte 0x02023D1E +_0803D440: .4byte 0x020240A4 +_0803D444: .4byte 0x02024140 +_0803D448: .4byte 0x03005A64 +_0803D44C: .4byte 0x0803D45D +_0803D450: .4byte 0x02023FD6 +_0803D454: .4byte 0x02024118 +_0803D458: .4byte 0x0202414C + thumb_func_end CheckFocusPunch_ClearVarsBeforeTurnStarts + + thumb_func_start RunBattleScriptCommands +RunBattleScriptCommands: @ 0x0803D45C + push {r4, r5, r6, lr} + ldr r6, _0803D4B0 + ldrb r0, [r6] + ldr r2, _0803D4B4 + cmp r0, #0 + beq _0803D46C + movs r0, #0xc + strb r0, [r2] +_0803D46C: + ldr r5, _0803D4B8 + ldr r0, [r5] + adds r0, #0x4b + ldr r4, _0803D4BC + ldrb r1, [r4] + strb r1, [r0] + ldr r1, _0803D4C0 + ldrb r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _0803D4C4 + thumb_func_end RunBattleScriptCommands + + thumb_func_start RunTurnActionsFunctions +RunTurnActionsFunctions: @ 0x0803D488 + ldrb r1, [r4] + ldrb r0, [r0] + cmp r1, r0 + blo _0803D4D8 + ldr r2, _0803D4C8 + ldr r0, [r2] + ldr r1, _0803D4CC + ands r0, r1 + str r0, [r2] + ldr r3, _0803D4D0 + ldr r2, _0803D4D4 + ldrb r1, [r6] + movs r0, #0x7f + ands r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r3] + b _0803D4F0 + .align 2, 0 +_0803D4B0: .4byte 0x02023FDE +_0803D4B4: .4byte 0x02023D27 +_0803D4B8: .4byte 0x02024140 +_0803D4BC: .4byte 0x02023D26 +_0803D4C0: .4byte 0x082EC600 +_0803D4C4: .4byte 0x02023D10 +_0803D4C8: .4byte 0x02023F24 +_0803D4CC: .4byte 0xFFEFFFFF +_0803D4D0: .4byte 0x03005A64 +_0803D4D4: .4byte 0x082EC638 +_0803D4D8: + ldr r0, [r5] + adds r0, #0x4b + ldrb r0, [r0] + cmp r0, r1 + beq _0803D4F0 + ldr r2, _0803D4F8 + ldr r0, [r2] + ldr r1, _0803D4FC + ands r0, r1 + ldr r1, _0803D500 + ands r0, r1 + str r0, [r2] +_0803D4F0: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0803D4F8: .4byte 0x02023F24 +_0803D4FC: .4byte 0xFFFFFDFF +_0803D500: .4byte 0xFFF7FFFF + thumb_func_end RunTurnActionsFunctions + + thumb_func_start HandleEndTurn_BattleWon +HandleEndTurn_BattleWon: @ 0x0803D504 + push {r4, lr} + ldr r1, _0803D540 + movs r0, #0 + strb r0, [r1] + ldr r1, _0803D544 + ldr r2, [r1] + ldr r0, _0803D548 + ands r0, r2 + cmp r0, #0 + beq _0803D564 + ldr r1, _0803D54C + ldr r4, _0803D550 + ldrb r0, [r4] + strh r0, [r1] + ldr r1, _0803D554 + ldrb r0, [r4] + strb r0, [r1] + movs r0, #0 + bl GetBattlerAtPosition + ldr r1, _0803D558 + strb r0, [r1] + ldr r1, _0803D55C + ldr r0, _0803D560 + str r0, [r1] + ldrb r1, [r4] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4] + b _0803D6E4 + .align 2, 0 +_0803D540: .4byte 0x02023D27 +_0803D544: .4byte 0x02022C90 +_0803D548: .4byte 0x02000002 +_0803D54C: .4byte 0x02037290 +_0803D550: .4byte 0x02023FDE +_0803D554: .4byte 0x02022C0C +_0803D558: .4byte 0x02023EAF +_0803D55C: .4byte 0x02023EB8 +_0803D560: .4byte 0x08288FBD +_0803D564: + movs r0, #8 + ands r0, r2 + cmp r0, #0 + beq _0803D5A0 + ldr r0, _0803D58C + ands r2, r0 + cmp r2, #0 + beq _0803D5A0 + bl BattleStopLowHpSound + ldr r1, _0803D590 + ldr r0, _0803D594 + str r0, [r1] + ldr r0, _0803D598 + ldrh r1, [r0] + ldr r0, _0803D59C + cmp r1, r0 + bne _0803D58A + b _0803D6CA +_0803D58A: + b _0803D6D4 + .align 2, 0 +_0803D58C: .4byte 0x043F0900 +_0803D590: .4byte 0x02023EB8 +_0803D594: .4byte 0x0828900F +_0803D598: .4byte 0x0203886A +_0803D59C: .4byte 0x000003FE +_0803D5A0: + ldr r0, [r1] + movs r1, #0xa + ands r0, r1 + cmp r0, #8 + beq _0803D5AC + b _0803D6DE +_0803D5AC: + bl BattleStopLowHpSound + ldr r1, _0803D5D4 + ldr r0, _0803D5D8 + str r0, [r1] + ldr r1, _0803D5DC + ldr r0, _0803D5E0 + ldrh r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r1 + ldrb r0, [r0, #1] + subs r0, #3 + cmp r0, #0x32 + bls _0803D5CA + b _0803D6D4 +_0803D5CA: + lsls r0, r0, #2 + ldr r1, _0803D5E4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803D5D4: .4byte 0x02023EB8 +_0803D5D8: .4byte 0x08288EB5 +_0803D5DC: .4byte 0x082E383C +_0803D5E0: .4byte 0x0203886A +_0803D5E4: .4byte 0x0803D5E8 +_0803D5E8: @ jump table + .4byte _0803D6C0 @ case 0 + .4byte _0803D6D4 @ case 1 + .4byte _0803D6D4 @ case 2 + .4byte _0803D6D4 @ case 3 + .4byte _0803D6D4 @ case 4 + .4byte _0803D6D4 @ case 5 + .4byte _0803D6C0 @ case 6 + .4byte _0803D6D4 @ case 7 + .4byte _0803D6C0 @ case 8 + .4byte _0803D6D4 @ case 9 + .4byte _0803D6C0 @ case 10 + .4byte _0803D6D4 @ case 11 + .4byte _0803D6D4 @ case 12 + .4byte _0803D6D4 @ case 13 + .4byte _0803D6D4 @ case 14 + .4byte _0803D6D4 @ case 15 + .4byte _0803D6D4 @ case 16 + .4byte _0803D6D4 @ case 17 + .4byte _0803D6D4 @ case 18 + .4byte _0803D6D4 @ case 19 + .4byte _0803D6D4 @ case 20 + .4byte _0803D6D4 @ case 21 + .4byte _0803D6D4 @ case 22 + .4byte _0803D6D4 @ case 23 + .4byte _0803D6D4 @ case 24 + .4byte _0803D6D4 @ case 25 + .4byte _0803D6D4 @ case 26 + .4byte _0803D6D4 @ case 27 + .4byte _0803D6B4 @ case 28 + .4byte _0803D6CA @ case 29 + .4byte _0803D6D4 @ case 30 + .4byte _0803D6D4 @ case 31 + .4byte _0803D6D4 @ case 32 + .4byte _0803D6D4 @ case 33 + .4byte _0803D6D4 @ case 34 + .4byte _0803D6B4 @ case 35 + .4byte _0803D6D4 @ case 36 + .4byte _0803D6D4 @ case 37 + .4byte _0803D6D4 @ case 38 + .4byte _0803D6D4 @ case 39 + .4byte _0803D6D4 @ case 40 + .4byte _0803D6D4 @ case 41 + .4byte _0803D6D4 @ case 42 + .4byte _0803D6D4 @ case 43 + .4byte _0803D6D4 @ case 44 + .4byte _0803D6D4 @ case 45 + .4byte _0803D6C0 @ case 46 + .4byte _0803D6D4 @ case 47 + .4byte _0803D6D4 @ case 48 + .4byte _0803D6D4 @ case 49 + .4byte _0803D6C0 @ case 50 +_0803D6B4: + ldr r0, _0803D6BC + bl PlayBGM + b _0803D6E4 + .align 2, 0 +_0803D6BC: .4byte 0x00000163 +_0803D6C0: + movs r0, #0xd4 + lsls r0, r0, #1 + bl PlayBGM + b _0803D6E4 +_0803D6CA: + movs r0, #0xb1 + lsls r0, r0, #1 + bl PlayBGM + b _0803D6E4 +_0803D6D4: + movs r0, #0xce + lsls r0, r0, #1 + bl PlayBGM + b _0803D6E4 +_0803D6DE: + ldr r1, _0803D6F0 + ldr r0, _0803D6F4 + str r0, [r1] +_0803D6E4: + ldr r1, _0803D6F8 + ldr r0, _0803D6FC + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803D6F0: .4byte 0x02023EB8 +_0803D6F4: .4byte 0x08288EF2 +_0803D6F8: .4byte 0x03005A64 +_0803D6FC: .4byte 0x0803D919 + thumb_func_end HandleEndTurn_BattleWon + + thumb_func_start HandleEndTurn_BattleLost +HandleEndTurn_BattleLost: @ 0x0803D700 + push {r4, lr} + ldr r1, _0803D748 + movs r0, #0 + strb r0, [r1] + ldr r0, _0803D74C + ldr r1, [r0] + ldr r0, _0803D750 + ands r0, r1 + cmp r0, #0 + beq _0803D7BC + ldr r0, _0803D754 + ands r1, r0 + cmp r1, #0 + beq _0803D784 + ldr r3, _0803D758 + ldrb r2, [r3] + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _0803D76C + ldr r1, _0803D75C + ldr r0, _0803D760 + str r0, [r1] + movs r0, #0x7f + ands r0, r2 + strb r0, [r3] + ldr r0, _0803D764 + ldr r1, [r0] + ldr r0, _0803D768 + adds r1, r1, r0 + ldrb r0, [r1] + movs r2, #8 + orrs r0, r2 + strb r0, [r1] + b _0803D7C2 + .align 2, 0 +_0803D748: .4byte 0x02023D27 +_0803D74C: .4byte 0x02022C90 +_0803D750: .4byte 0x02000002 +_0803D754: .4byte 0x003F0100 +_0803D758: .4byte 0x02023FDE +_0803D75C: .4byte 0x02023EB8 +_0803D760: .4byte 0x08289F50 +_0803D764: .4byte 0x03005AF0 +_0803D768: .4byte 0x00000CA9 +_0803D76C: + ldr r1, _0803D77C + ldr r0, _0803D780 + str r0, [r1] + movs r0, #0x7f + ands r0, r2 + strb r0, [r3] + b _0803D7C2 + .align 2, 0 +_0803D77C: .4byte 0x02023EB8 +_0803D780: .4byte 0x08288F93 +_0803D784: + ldr r1, _0803D7A8 + ldr r4, _0803D7AC + ldrb r0, [r4] + strb r0, [r1] + movs r0, #0 + bl GetBattlerAtPosition + ldr r1, _0803D7B0 + strb r0, [r1] + ldr r1, _0803D7B4 + ldr r0, _0803D7B8 + str r0, [r1] + ldrb r1, [r4] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4] + b _0803D7C2 + .align 2, 0 +_0803D7A8: .4byte 0x02022C0C +_0803D7AC: .4byte 0x02023FDE +_0803D7B0: .4byte 0x02023EAF +_0803D7B4: .4byte 0x02023EB8 +_0803D7B8: .4byte 0x08288FBD +_0803D7BC: + ldr r1, _0803D7D0 + ldr r0, _0803D7D4 + str r0, [r1] +_0803D7C2: + ldr r1, _0803D7D8 + ldr r0, _0803D7DC + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803D7D0: .4byte 0x02023EB8 +_0803D7D4: .4byte 0x08288EF5 +_0803D7D8: .4byte 0x03005A64 +_0803D7DC: .4byte 0x0803D919 + thumb_func_end HandleEndTurn_BattleLost + + thumb_func_start HandleEndTurn_RanFromBattle +HandleEndTurn_RanFromBattle: @ 0x0803D7E0 + push {lr} + ldr r1, _0803D81C + movs r0, #0 + strb r0, [r1] + ldr r1, _0803D820 + ldr r2, [r1] + ldr r0, _0803D824 + ands r0, r2 + cmp r0, #0 + beq _0803D83C + movs r0, #8 + ands r2, r0 + cmp r2, #0 + beq _0803D83C + ldr r1, _0803D828 + ldr r0, _0803D82C + str r0, [r1] + ldr r1, _0803D830 + movs r0, #9 + strb r0, [r1] + ldr r0, _0803D834 + ldr r1, [r0] + ldr r0, _0803D838 + adds r1, r1, r0 + ldrb r0, [r1] + movs r2, #8 + orrs r0, r2 + strb r0, [r1] + b _0803D8AA + .align 2, 0 +_0803D81C: .4byte 0x02023D27 +_0803D820: .4byte 0x02022C90 +_0803D824: .4byte 0x003F0100 +_0803D828: .4byte 0x02023EB8 +_0803D82C: .4byte 0x08289F49 +_0803D830: .4byte 0x02023FDE +_0803D834: .4byte 0x03005AF0 +_0803D838: .4byte 0x00000CA9 +_0803D83C: + ldr r0, [r1] + movs r1, #0x80 + lsls r1, r1, #0x13 + ands r0, r1 + cmp r0, #0 + beq _0803D864 + ldr r1, _0803D858 + ldr r0, _0803D85C + str r0, [r1] + ldr r1, _0803D860 + movs r0, #9 + strb r0, [r1] + b _0803D8AA + .align 2, 0 +_0803D858: .4byte 0x02023EB8 +_0803D85C: .4byte 0x08289F49 +_0803D860: .4byte 0x02023FDE +_0803D864: + ldr r1, _0803D884 + ldr r0, _0803D888 + ldrb r0, [r0] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrb r0, [r0, #1] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1e + cmp r0, #1 + beq _0803D894 + cmp r0, #2 + beq _0803D8A4 + ldr r1, _0803D88C + ldr r0, _0803D890 + b _0803D8A8 + .align 2, 0 +_0803D884: .4byte 0x02023FE0 +_0803D888: .4byte 0x02023EAF +_0803D88C: .4byte 0x02023EB8 +_0803D890: .4byte 0x08289078 +_0803D894: + ldr r1, _0803D89C + ldr r0, _0803D8A0 + b _0803D8A8 + .align 2, 0 +_0803D89C: .4byte 0x02023EB8 +_0803D8A0: .4byte 0x08289063 +_0803D8A4: + ldr r1, _0803D8B4 + ldr r0, _0803D8B8 +_0803D8A8: + str r0, [r1] +_0803D8AA: + ldr r1, _0803D8BC + ldr r0, _0803D8C0 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0803D8B4: .4byte 0x02023EB8 +_0803D8B8: .4byte 0x08289071 +_0803D8BC: .4byte 0x03005A64 +_0803D8C0: .4byte 0x0803D919 + thumb_func_end HandleEndTurn_RanFromBattle + + thumb_func_start HandleEndTurn_MonFled +HandleEndTurn_MonFled: @ 0x0803D8C4 + ldr r1, _0803D8F8 + movs r0, #0 + strb r0, [r1] + ldr r1, _0803D8FC + movs r0, #0xfd + strb r0, [r1] + movs r0, #7 + strb r0, [r1, #1] + ldr r2, _0803D900 + ldrb r0, [r2] + strb r0, [r1, #2] + ldr r3, _0803D904 + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + strb r0, [r1, #3] + movs r0, #0xff + strb r0, [r1, #4] + ldr r1, _0803D908 + ldr r0, _0803D90C + str r0, [r1] + ldr r1, _0803D910 + ldr r0, _0803D914 + str r0, [r1] + bx lr + .align 2, 0 +_0803D8F8: .4byte 0x02023D27 +_0803D8FC: .4byte 0x02022C0C +_0803D900: .4byte 0x02023EAF +_0803D904: .4byte 0x02023D12 +_0803D908: .4byte 0x02023EB8 +_0803D90C: .4byte 0x0828907F +_0803D910: .4byte 0x03005A64 +_0803D914: .4byte 0x0803D919 + thumb_func_end HandleEndTurn_MonFled + + thumb_func_start HandleEndTurn_FinishBattle +HandleEndTurn_FinishBattle: @ 0x0803D918 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _0803D994 + ldrb r0, [r0] + subs r0, #0xb + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _0803D92E + b _0803DA50 +_0803D92E: + ldr r0, _0803D998 + ldr r1, [r0] + ldr r0, _0803D99C + ands r1, r0 + cmp r1, #0 + bne _0803D9F6 + ldr r2, _0803D9A0 + strb r1, [r2] + ldr r0, _0803D9A4 + ldrb r0, [r0] + cmp r1, r0 + bhs _0803D9F2 + adds r5, r2, #0 + ldr r0, _0803D9A8 + mov r8, r0 + movs r7, #0x64 + ldr r6, _0803D9AC +_0803D950: + ldrb r0, [r5] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803D9E0 + ldr r4, _0803D9B0 + ldrh r0, [r4, #6] + cmp r0, #0 + bne _0803D9B4 + ldrb r0, [r5] + lsls r0, r0, #1 + add r0, r8 + ldrh r0, [r0] + muls r0, r7, r0 + adds r0, r0, r6 + movs r1, #0xb + movs r2, #0 + bl GetMonData + strh r0, [r4, #6] + ldrb r0, [r5] + lsls r0, r0, #1 + add r0, r8 + ldrh r0, [r0] + muls r0, r7, r0 + adds r0, r0, r6 + movs r1, #2 + adds r2, r4, #0 + adds r2, #8 + bl GetMonData + b _0803D9E0 + .align 2, 0 +_0803D994: .4byte 0x02023D27 +_0803D998: .4byte 0x02022C90 +_0803D99C: .4byte 0x023F0B92 +_0803D9A0: .4byte 0x02023D08 +_0803D9A4: .4byte 0x02023D10 +_0803D9A8: .4byte 0x02023D12 +_0803D9AC: .4byte 0x02024190 +_0803D9B0: .4byte 0x03005A70 +_0803D9B4: + ldrb r0, [r5] + lsls r0, r0, #1 + add r0, r8 + ldrh r0, [r0] + muls r0, r7, r0 + adds r0, r0, r6 + movs r1, #0xb + movs r2, #0 + bl GetMonData + strh r0, [r4, #0x26] + ldrb r0, [r5] + lsls r0, r0, #1 + add r0, r8 + ldrh r0, [r0] + muls r0, r7, r0 + adds r0, r0, r6 + movs r1, #2 + adds r2, r4, #0 + adds r2, #0x14 + bl GetMonData +_0803D9E0: + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + ldr r1, _0803DA30 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + blo _0803D950 +_0803D9F2: + bl PutPokemonTodayCaughtOnAir +_0803D9F6: + ldr r0, _0803DA34 + ldr r0, [r0] + ldr r1, _0803DA38 + ands r0, r1 + cmp r0, #0 + bne _0803DA12 + ldr r0, _0803DA3C + ldrb r1, [r0, #5] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0803DA12 + bl sub_080EECA4 +_0803DA12: + bl sub_0818619C + movs r0, #3 + bl BeginFastPaletteFade + movs r0, #5 + bl FadeOutMapMusic + ldr r1, _0803DA40 + ldr r0, _0803DA44 + str r0, [r1] + ldr r1, _0803DA48 + ldr r0, _0803DA4C + str r0, [r1] + b _0803DA6A + .align 2, 0 +_0803DA30: .4byte 0x02023D10 +_0803DA34: .4byte 0x02022C90 +_0803DA38: .4byte 0x023F0B9A +_0803DA3C: .4byte 0x03005A70 +_0803DA40: .4byte 0x03005A64 +_0803DA44: .4byte 0x0803DA81 +_0803DA48: .4byte 0x03005F28 +_0803DA4C: .4byte 0x080380FD +_0803DA50: + ldr r0, _0803DA74 + ldr r0, [r0] + cmp r0, #0 + bne _0803DA6A + ldr r1, _0803DA78 + ldr r0, _0803DA7C + ldr r0, [r0] + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 +_0803DA6A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0803DA74: .4byte 0x02023D0C +_0803DA78: .4byte 0x082EC694 +_0803DA7C: .4byte 0x02023EB8 + thumb_func_end HandleEndTurn_FinishBattle + + thumb_func_start FreeResetData_ReturnToOvOrDoEvolutions +FreeResetData_ReturnToOvOrDoEvolutions: @ 0x0803DA80 + push {lr} + ldr r0, _0803DAAC + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0803DAC6 + bl ResetSpriteData + ldr r0, _0803DAB0 + ldrb r0, [r0] + cmp r0, #0 + beq _0803DAA2 + ldr r0, _0803DAB4 + ldrb r0, [r0] + cmp r0, #1 + beq _0803DAC0 +_0803DAA2: + ldr r1, _0803DAB8 + ldr r0, _0803DABC + str r0, [r1] + b _0803DAE2 + .align 2, 0 +_0803DAAC: .4byte 0x02037C74 +_0803DAB0: .4byte 0x03005AB4 +_0803DAB4: .4byte 0x02023FDE +_0803DAB8: .4byte 0x03005A64 +_0803DABC: .4byte 0x0803DBB1 +_0803DAC0: + ldr r1, _0803DAE8 + ldr r0, _0803DAEC + str r0, [r1] +_0803DAC6: + bl FreeAllWindowBuffers + ldr r0, _0803DAF0 + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + bne _0803DAE2 + bl FreeMonSpritesGfx + bl FreeBattleResources + bl FreeBattleSpritesData +_0803DAE2: + pop {r0} + bx r0 + .align 2, 0 +_0803DAE8: .4byte 0x03005A64 +_0803DAEC: .4byte 0x0803DAF5 +_0803DAF0: .4byte 0x02022C90 + thumb_func_end FreeResetData_ReturnToOvOrDoEvolutions + + thumb_func_start TryEvolvePokemon +TryEvolvePokemon: @ 0x0803DAF4 + push {r4, r5, r6, lr} + ldr r0, _0803DB4C + ldrb r1, [r0] + adds r3, r0, #0 + cmp r1, #0 + beq _0803DB6E +_0803DB00: + movs r6, #0 +_0803DB02: + ldrb r2, [r3] + ldr r0, _0803DB50 + lsls r1, r6, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0803DB60 + bics r2, r1 + strb r2, [r3] + movs r0, #0x64 + adds r1, r6, #0 + muls r1, r0, r1 + ldr r0, _0803DB54 + adds r5, r1, r0 + adds r0, r5, #0 + movs r1, #0 + bl GetEvolutionTargetSpecies + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0 + beq _0803DB60 + bl FreeAllWindowBuffers + ldr r0, _0803DB58 + ldr r1, _0803DB5C + str r1, [r0] + lsls r3, r6, #0x18 + lsrs r3, r3, #0x18 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #1 + bl EvolutionScene + b _0803DB74 + .align 2, 0 +_0803DB4C: .4byte 0x03005AB4 +_0803DB50: .4byte 0x082FACB4 +_0803DB54: .4byte 0x02024190 +_0803DB58: .4byte 0x03005A64 +_0803DB5C: .4byte 0x0803DB89 +_0803DB60: + adds r6, #1 + ldr r3, _0803DB7C + cmp r6, #5 + ble _0803DB02 + ldrb r0, [r3] + cmp r0, #0 + bne _0803DB00 +_0803DB6E: + ldr r1, _0803DB80 + ldr r0, _0803DB84 + str r0, [r1] +_0803DB74: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0803DB7C: .4byte 0x03005AB4 +_0803DB80: .4byte 0x03005A64 +_0803DB84: .4byte 0x0803DBB1 + thumb_func_end TryEvolvePokemon + + thumb_func_start WaitForEvoSceneToFinish +WaitForEvoSceneToFinish: @ 0x0803DB88 + push {lr} + ldr r0, _0803DBA0 + ldr r1, [r0, #4] + ldr r0, _0803DBA4 + cmp r1, r0 + bne _0803DB9A + ldr r1, _0803DBA8 + ldr r0, _0803DBAC + str r0, [r1] +_0803DB9A: + pop {r0} + bx r0 + .align 2, 0 +_0803DBA0: .4byte 0x03002360 +_0803DBA4: .4byte 0x080380FD +_0803DBA8: .4byte 0x03005A64 +_0803DBAC: .4byte 0x0803DAF5 + thumb_func_end WaitForEvoSceneToFinish + + thumb_func_start ReturnFromBattleToOverworld +ReturnFromBattleToOverworld: @ 0x0803DBB0 + push {r4, r5, r6, lr} + ldr r6, _0803DC34 + ldr r0, [r6] + movs r5, #2 + ands r0, r5 + cmp r0, #0 + bne _0803DBCC + ldr r4, _0803DC38 + adds r0, r4, #0 + bl RandomlyGivePartyPokerus + adds r0, r4, #0 + bl PartySpreadPokerus +_0803DBCC: + ldr r4, [r6] + adds r0, r4, #0 + ands r0, r5 + cmp r0, #0 + beq _0803DBDE + ldr r0, _0803DC3C + ldrb r0, [r0] + cmp r0, #0 + bne _0803DC2C +_0803DBDE: + ldr r1, _0803DC40 + ldr r5, _0803DC44 + ldrb r0, [r5] + strh r0, [r1] + ldr r3, _0803DC48 + ldr r0, _0803DC4C + adds r2, r3, r0 + ldrb r1, [r2] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldr r0, _0803DC50 + ldr r0, [r0] + str r0, [r3] + movs r0, #0x80 + lsls r0, r0, #3 + ands r4, r0 + cmp r4, #0 + beq _0803DC1E + ldr r0, _0803DC54 + bl UpdateRoamerHPStatus + ldrb r1, [r5] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0803DC1A + cmp r1, #7 + bne _0803DC1E +_0803DC1A: + bl SetRoamerInactive +_0803DC1E: + movs r0, #0x5a + bl m4aSongNumStop + ldr r0, _0803DC48 + ldr r0, [r0, #8] + bl SetMainCallback2 +_0803DC2C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0803DC34: .4byte 0x02022C90 +_0803DC38: .4byte 0x02024190 +_0803DC3C: .4byte 0x030031C4 +_0803DC40: .4byte 0x02037290 +_0803DC44: .4byte 0x02023FDE +_0803DC48: .4byte 0x03002360 +_0803DC4C: .4byte 0x00000439 +_0803DC50: .4byte 0x03005A60 +_0803DC54: .4byte 0x020243E8 + thumb_func_end ReturnFromBattleToOverworld + + thumb_func_start RunBattleScriptCommands_PopCallbacksStack +RunBattleScriptCommands_PopCallbacksStack: @ 0x0803DC58 + push {lr} + ldr r0, _0803DC94 + ldrb r0, [r0] + subs r0, #0xb + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0803DCA0 + ldr r3, _0803DC98 + ldr r0, [r3] + ldr r0, [r0, #0xc] + adds r1, r0, #0 + adds r1, #0x20 + ldrb r0, [r1] + cmp r0, #0 + beq _0803DC7C + subs r0, #1 + strb r0, [r1] +_0803DC7C: + ldr r2, _0803DC9C + ldr r0, [r3] + ldr r1, [r0, #0xc] + adds r0, r1, #0 + adds r0, #0x20 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r2] + b _0803DCBA + .align 2, 0 +_0803DC94: .4byte 0x02023D27 +_0803DC98: .4byte 0x0202414C +_0803DC9C: .4byte 0x03005A64 +_0803DCA0: + ldr r0, _0803DCC0 + ldr r0, [r0] + cmp r0, #0 + bne _0803DCBA + ldr r1, _0803DCC4 + ldr r0, _0803DCC8 + ldr r0, [r0] + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 +_0803DCBA: + pop {r0} + bx r0 + .align 2, 0 +_0803DCC0: .4byte 0x02023D0C +_0803DCC4: .4byte 0x082EC694 +_0803DCC8: .4byte 0x02023EB8 + thumb_func_end RunBattleScriptCommands_PopCallbacksStack + + thumb_func_start sub_0803DCCC +sub_0803DCCC: @ 0x0803DCCC + push {lr} + ldr r0, _0803DCEC + ldr r0, [r0] + cmp r0, #0 + bne _0803DCE8 + ldr r1, _0803DCF0 + ldr r0, _0803DCF4 + ldr r0, [r0] + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 +_0803DCE8: + pop {r0} + bx r0 + .align 2, 0 +_0803DCEC: .4byte 0x02023D0C +_0803DCF0: .4byte 0x082EC694 +_0803DCF4: .4byte 0x02023EB8 + thumb_func_end sub_0803DCCC + + thumb_func_start HandleAction_UseMove +HandleAction_UseMove: @ 0x0803DCF8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + movs r0, #4 + str r0, [sp] + ldr r6, _0803DD38 + ldr r1, _0803DD3C + ldr r0, _0803DD40 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r6] + ldr r1, _0803DD44 + ldr r3, [r1] + adds r0, r3, #0 + adds r0, #0x91 + ldrb r2, [r0] + ldr r1, _0803DD48 + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ands r2, r0 + cmp r2, #0 + beq _0803DD50 + ldr r1, _0803DD4C + movs r0, #0xc + b _0803E47C + .align 2, 0 +_0803DD38: .4byte 0x02023EAF +_0803DD3C: .4byte 0x02023D22 +_0803DD40: .4byte 0x02023D26 +_0803DD44: .4byte 0x02024140 +_0803DD48: .4byte 0x082FACB4 +_0803DD4C: .4byte 0x02023D27 +_0803DD50: + ldr r1, _0803DDC8 + movs r0, #1 + strb r0, [r1] + ldr r1, _0803DDCC + movs r0, #1 + strb r0, [r1, #0xe] + ldr r5, _0803DDD0 + adds r0, r3, r5 + strb r2, [r0] + ldr r0, _0803DDD4 + strb r2, [r0] + ldr r0, _0803DDD8 + strb r2, [r0] + ldr r0, _0803DDDC + strb r2, [r0, #6] + ldr r2, _0803DDE0 + ldr r0, _0803DDE4 + mov sb, r0 + ldrb r0, [r6] + ldr r3, _0803DDE8 + ldr r1, [r3] + adds r0, r0, r1 + adds r0, #0x80 + ldrb r0, [r0] + mov r5, sb + strb r0, [r5] + strb r0, [r2] + ldr r1, _0803DDEC + ldrb r4, [r6] + lsls r0, r4, #4 + adds r3, r0, r1 + ldrb r1, [r3] + lsls r0, r1, #0x1d + mov r8, r2 + cmp r0, #0 + bge _0803DDFC + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3] + ldr r2, _0803DDF0 + ldr r1, _0803DDF4 + movs r0, #0xa5 + strh r0, [r1] + strh r0, [r2] + ldr r2, _0803DDF8 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #4 + orrs r0, r1 + str r0, [r2] + movs r0, #0xa5 + movs r1, #0 + bl GetMoveTarget + ldrb r1, [r6] + ldr r3, _0803DDE8 + ldr r2, [r3] + b _0803DF56 + .align 2, 0 +_0803DDC8: .4byte 0x02023EB5 +_0803DDCC: .4byte 0x02024118 +_0803DDD0: .4byte 0x000001A3 +_0803DDD4: .4byte 0x02023F20 +_0803DDD8: .4byte 0x02023EB6 +_0803DDDC: .4byte 0x02023FD6 +_0803DDE0: .4byte 0x02023E8C +_0803DDE4: .4byte 0x02023E8D +_0803DDE8: .4byte 0x02024140 +_0803DDEC: .4byte 0x02023FE0 +_0803DDF0: .4byte 0x02023E8E +_0803DDF4: .4byte 0x02023E90 +_0803DDF8: .4byte 0x02023F24 +_0803DDFC: + ldr r5, _0803DE34 + mov sl, r5 + movs r0, #0x58 + adds r5, r4, #0 + muls r5, r0, r5 + mov r0, sl + adds r0, #0x50 + adds r0, r5, r0 + ldr r1, [r0] + movs r0, #0x80 + lsls r0, r0, #5 + ands r0, r1 + cmp r0, #0 + bne _0803DE22 + movs r7, #0x80 + lsls r7, r7, #0xf + ands r7, r1 + cmp r7, #0 + beq _0803DE44 +_0803DE22: + ldr r3, _0803DE38 + ldr r2, _0803DE3C + ldr r1, _0803DE40 + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2] + strh r0, [r3] + b _0803DF7C + .align 2, 0 +_0803DE34: .4byte 0x02023D28 +_0803DE38: .4byte 0x02023E8E +_0803DE3C: .4byte 0x02023E90 +_0803DE40: .4byte 0x02023F0C +_0803DE44: + ldr r1, _0803DE98 + mov ip, r1 + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + add r0, ip + ldrh r3, [r0, #6] + adds r1, r3, #0 + cmp r1, #0 + beq _0803DF1C + ldrb r2, [r0, #0xc] + lsls r0, r2, #1 + adds r0, r0, r5 + mov r4, sl + adds r4, #0xc + adds r0, r0, r4 + ldrh r0, [r0] + cmp r1, r0 + bne _0803DEA8 + ldr r2, _0803DE9C + ldr r0, _0803DEA0 + strh r3, [r0] + strh r3, [r2] + ldrb r1, [r6] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + add r0, ip + ldrb r0, [r0, #0xc] + mov r3, sb + strb r0, [r3] + mov r5, r8 + strb r0, [r5] + ldrh r0, [r2] + movs r1, #0 + bl GetMoveTarget + ldrb r1, [r6] + ldr r3, _0803DEA4 + ldr r2, [r3] + b _0803DF56 + .align 2, 0 +_0803DE98: .4byte 0x02023F60 +_0803DE9C: .4byte 0x02023E8E +_0803DEA0: .4byte 0x02023E90 +_0803DEA4: .4byte 0x02024140 +_0803DEA8: + cmp r1, #0 + beq _0803DF1C + cmp r1, r0 + beq _0803DF1C + mov r5, sb + strb r2, [r5] + mov r0, r8 + strb r2, [r0] + ldr r3, _0803DF10 + ldr r2, _0803DF14 + ldrb r0, [r0] + lsls r0, r0, #1 + ldrb r1, [r6] + movs r5, #0x58 + muls r1, r5, r1 + adds r0, r0, r1 + adds r0, r0, r4 + ldrh r0, [r0] + strh r0, [r2] + strh r0, [r3] + ldrb r1, [r6] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + add r0, ip + movs r2, #0 + strh r7, [r0, #6] + ldrb r1, [r6] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + add r0, ip + strb r2, [r0, #0xc] + ldrb r0, [r6] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + add r1, ip + ldrb r2, [r1, #0xe] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #0xe] + ldrh r0, [r3] + movs r1, #0 + bl GetMoveTarget + ldrb r1, [r6] + ldr r3, _0803DF18 + ldr r2, [r3] + b _0803DF56 + .align 2, 0 +_0803DF10: .4byte 0x02023E8E +_0803DF14: .4byte 0x02023E90 +_0803DF18: .4byte 0x02024140 +_0803DF1C: + ldr r3, _0803DF5C + mov r5, r8 + ldrb r0, [r5] + lsls r0, r0, #1 + ldr r4, _0803DF60 + ldrb r2, [r4] + movs r1, #0x58 + muls r1, r2, r1 + adds r0, r0, r1 + adds r3, #0xc + adds r0, r0, r3 + ldr r1, _0803DF64 + lsls r2, r2, #1 + adds r2, r2, r1 + ldrh r3, [r0] + ldrh r2, [r2] + cmp r3, r2 + beq _0803DF74 + ldr r1, _0803DF68 + ldr r0, _0803DF6C + strh r3, [r0] + strh r3, [r1] + ldrh r0, [r1] + movs r1, #0 + bl GetMoveTarget + ldrb r1, [r4] + ldr r2, _0803DF70 + ldr r2, [r2] +_0803DF56: + adds r1, r1, r2 + strb r0, [r1, #0xc] + b _0803DF7C + .align 2, 0 +_0803DF5C: .4byte 0x02023D28 +_0803DF60: .4byte 0x02023EAF +_0803DF64: .4byte 0x02023F18 +_0803DF68: .4byte 0x02023E8E +_0803DF6C: .4byte 0x02023E90 +_0803DF70: .4byte 0x02024140 +_0803DF74: + ldr r1, _0803DFA8 + ldr r0, _0803DFAC + strh r3, [r0] + strh r3, [r1] +_0803DF7C: + ldr r2, _0803DFB0 + ldr r1, _0803DFB4 + ldrb r3, [r1] + movs r0, #0x58 + muls r0, r3, r0 + adds r0, r0, r2 + ldrh r0, [r0, #0x28] + mov r8, r1 + cmp r0, #0 + beq _0803DFC4 + adds r0, r3, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803DFBC + ldr r0, _0803DFB8 + ldr r1, _0803DFA8 + ldrh r1, [r1] + strh r1, [r0, #0x22] + b _0803DFC4 + .align 2, 0 +_0803DFA8: .4byte 0x02023E8E +_0803DFAC: .4byte 0x02023E90 +_0803DFB0: .4byte 0x02023D28 +_0803DFB4: .4byte 0x02023EAF +_0803DFB8: .4byte 0x03005A70 +_0803DFBC: + ldr r0, _0803E028 + ldr r1, _0803E02C + ldrh r1, [r1] + strh r1, [r0, #0x24] +_0803DFC4: + mov r1, r8 + ldrb r0, [r1] + bl GetBattlerSide + movs r1, #1 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _0803E030 + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r5, r0, r1 + ldrb r0, [r5, #8] + cmp r0, #0 + beq _0803E040 + ldr r2, _0803E034 + ldr r0, _0803E02C + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #6] + cmp r0, #0 + bne _0803E040 + mov r3, r8 + ldrb r0, [r3] + bl GetBattlerSide + adds r4, r0, #0 + ldrb r0, [r5, #9] + bl GetBattlerSide + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + beq _0803E040 + ldr r1, _0803E038 + ldrb r2, [r5, #9] + movs r0, #0x58 + muls r0, r2, r0 + adds r0, r0, r1 + ldrh r0, [r0, #0x28] + cmp r0, #0 + beq _0803E040 + ldr r0, _0803E03C + strb r2, [r0] + b _0803E3AA + .align 2, 0 +_0803E028: .4byte 0x03005A70 +_0803E02C: .4byte 0x02023E8E +_0803E030: .4byte 0x02023F38 +_0803E034: .4byte 0x082ED220 +_0803E038: .4byte 0x02023D28 +_0803E03C: .4byte 0x02023EB0 +_0803E040: + ldr r0, _0803E15C + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + ldr r5, _0803E160 + mov r8, r5 + cmp r0, #0 + bne _0803E052 + b _0803E320 +_0803E052: + ldr r1, _0803E164 + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r5, [r0, #8] + cmp r5, #0 + beq _0803E064 + b _0803E270 +_0803E064: + ldr r2, _0803E168 + ldr r0, _0803E16C + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, r0, r2 + ldrb r0, [r4, #1] + cmp r0, #0 + bne _0803E080 + ldrb r0, [r4, #6] + cmp r0, #0x10 + bne _0803E080 + b _0803E270 +_0803E080: + ldr r3, _0803E170 + ldr r2, _0803E160 + ldrb r6, [r2] + ldr r0, _0803E174 + ldr r0, [r0] + adds r0, r6, r0 + ldrb r1, [r0, #0xc] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r3 + adds r0, #0x20 + ldrb r0, [r0] + mov r8, r2 + cmp r0, #0x1f + bne _0803E0A0 + b _0803E270 +_0803E0A0: + ldrb r0, [r4, #2] + cmp r0, #0xd + beq _0803E0A8 + b _0803E270 +_0803E0A8: + adds r0, r6, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _0803E178 + strb r5, [r1] + ldr r0, _0803E17C + ldrb r0, [r0] + cmp r5, r0 + bhs _0803E120 + adds r4, r1, #0 +_0803E0C0: + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r6, r0 + beq _0803E10E + ldr r0, _0803E160 + ldrb r1, [r0] + ldr r0, _0803E174 + ldr r0, [r0] + adds r1, r1, r0 + ldrb r0, [r1, #0xc] + ldrb r1, [r4] + cmp r0, r1 + beq _0803E10E + ldr r1, _0803E170 + ldrb r2, [r4] + movs r0, #0x58 + muls r0, r2, r0 + adds r0, r0, r1 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x1f + bne _0803E10E + adds r0, r2, #0 + bl GetBattlerTurnOrderNum + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, [sp] + cmp r0, r3 + bhs _0803E10E + ldrb r0, [r4] + bl GetBattlerTurnOrderNum + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] +_0803E10E: + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + ldr r1, _0803E17C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + blo _0803E0C0 +_0803E120: + ldr r5, [sp] + cmp r5, #4 + beq _0803E128 + b _0803E222 +_0803E128: + ldr r2, _0803E168 + ldr r0, _0803E180 + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #6] + ands r5, r0 + cmp r5, #0 + beq _0803E1A8 + ldr r0, _0803E160 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803E188 + bl Random + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0803E184 + movs r0, #1 + b _0803E19A + .align 2, 0 +_0803E15C: .4byte 0x02022C90 +_0803E160: .4byte 0x02023EAF +_0803E164: .4byte 0x02023F38 +_0803E168: .4byte 0x082ED220 +_0803E16C: .4byte 0x02023E8E +_0803E170: .4byte 0x02023D28 +_0803E174: .4byte 0x02024140 +_0803E178: .4byte 0x02023D08 +_0803E17C: .4byte 0x02023D10 +_0803E180: .4byte 0x02023E90 +_0803E184: + movs r0, #3 + b _0803E19A +_0803E188: + bl Random + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0803E198 + movs r0, #0 + b _0803E19A +_0803E198: + movs r0, #2 +_0803E19A: + bl GetBattlerAtPosition + ldr r1, _0803E1A4 + strb r0, [r1] + b _0803E1B8 + .align 2, 0 +_0803E1A4: .4byte 0x02023EB0 +_0803E1A8: + ldr r2, _0803E1F0 + ldr r0, _0803E1F4 + ldrb r0, [r0] + ldr r1, _0803E1F8 + ldr r1, [r1] + adds r0, r0, r1 + ldrb r0, [r0, #0xc] + strb r0, [r2] +_0803E1B8: + ldr r7, _0803E1FC + ldrb r0, [r7] + ldr r1, _0803E200 + mov r8, r1 + ldr r5, _0803E1F0 + ldrb r1, [r5] + lsls r1, r1, #2 + add r1, r8 + ldr r1, [r1] + ands r0, r1 + cmp r0, #0 + bne _0803E1D2 + b _0803E3AA +_0803E1D2: + ldr r6, _0803E1F4 + ldrb r0, [r6] + bl GetBattlerSide + adds r4, r0, #0 + ldrb r0, [r5] + bl GetBattlerSide + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + beq _0803E204 + ldrb r0, [r5] + b _0803E398 + .align 2, 0 +_0803E1F0: .4byte 0x02023EB0 +_0803E1F4: .4byte 0x02023EAF +_0803E1F8: .4byte 0x02024140 +_0803E1FC: .4byte 0x02023EB4 +_0803E200: .4byte 0x082FACB4 +_0803E204: + ldrb r0, [r6] + bl GetBattlerPosition + movs r1, #1 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + strb r0, [r5] + ldrb r1, [r7] + ldrb r2, [r5] + lsls r0, r2, #2 + add r0, r8 + b _0803E38E +_0803E222: + ldr r4, _0803E25C + ldr r0, _0803E260 + ldr r3, [sp] + adds r0, r3, r0 + ldrb r0, [r0] + strb r0, [r4] + ldrb r0, [r4] + ldr r2, _0803E264 + movs r1, #0x58 + muls r1, r0, r1 + adds r1, r1, r2 + adds r1, #0x20 + ldrb r1, [r1] + bl RecordAbilityBattle + ldr r2, _0803E268 + ldrb r1, [r4] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r2, #2 + orrs r1, r2 + strb r1, [r0] + ldr r1, _0803E26C + ldrb r0, [r4] + strb r0, [r1] + b _0803E3AA + .align 2, 0 +_0803E25C: .4byte 0x02023D08 +_0803E260: .4byte 0x02023D22 +_0803E264: .4byte 0x02023D28 +_0803E268: .4byte 0x02024020 +_0803E26C: .4byte 0x02023EB0 +_0803E270: + ldr r0, _0803E2B4 + ldr r0, [r0] + movs r4, #1 + ands r0, r4 + cmp r0, #0 + beq _0803E320 + ldr r2, _0803E2B8 + ldr r0, _0803E2BC + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #6] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0803E320 + mov r5, r8 + ldrb r0, [r5] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803E2C4 + bl Random + adds r1, r4, #0 + ands r1, r0 + cmp r1, #0 + beq _0803E2C0 + movs r0, #1 + b _0803E2D6 + .align 2, 0 +_0803E2B4: .4byte 0x02022C90 +_0803E2B8: .4byte 0x082ED220 +_0803E2BC: .4byte 0x02023E90 +_0803E2C0: + movs r0, #3 + b _0803E2D6 +_0803E2C4: + bl Random + adds r1, r4, #0 + ands r1, r0 + cmp r1, #0 + beq _0803E2D4 + movs r0, #0 + b _0803E2D6 +_0803E2D4: + movs r0, #2 +_0803E2D6: + bl GetBattlerAtPosition + ldr r1, _0803E310 + strb r0, [r1] + ldr r0, _0803E314 + ldrb r1, [r0] + ldr r2, _0803E318 + ldr r5, _0803E310 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _0803E3AA + ldr r0, _0803E31C + ldrb r0, [r0] + bl GetBattlerSide + adds r4, r0, #0 + ldrb r0, [r5] + bl GetBattlerSide + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + beq _0803E3AA + ldrb r0, [r5] + b _0803E398 + .align 2, 0 +_0803E310: .4byte 0x02023EB0 +_0803E314: .4byte 0x02023EB4 +_0803E318: .4byte 0x082FACB4 +_0803E31C: .4byte 0x02023EAF +_0803E320: + ldr r5, _0803E360 + mov r2, r8 + ldrb r0, [r2] + ldr r1, _0803E364 + ldr r1, [r1] + adds r0, r0, r1 + ldrb r0, [r0, #0xc] + strb r0, [r5] + ldr r6, _0803E368 + ldrb r1, [r6] + ldr r7, _0803E36C + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _0803E3AA + ldrb r0, [r2] + bl GetBattlerSide + adds r4, r0, #0 + ldrb r0, [r5] + bl GetBattlerSide + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + beq _0803E370 + ldrb r0, [r5] + b _0803E398 + .align 2, 0 +_0803E360: .4byte 0x02023EB0 +_0803E364: .4byte 0x02024140 +_0803E368: .4byte 0x02023EB4 +_0803E36C: .4byte 0x082FACB4 +_0803E370: + mov r1, r8 + ldrb r0, [r1] + bl GetBattlerPosition + movs r1, #1 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + strb r0, [r5] + ldrb r1, [r6] + ldrb r2, [r5] + lsls r0, r2, #2 + adds r0, r0, r7 +_0803E38E: + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _0803E3AA + adds r0, r2, #0 +_0803E398: + bl GetBattlerPosition + movs r1, #2 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + strb r0, [r5] +_0803E3AA: + ldr r0, _0803E3E0 + ldr r1, [r0] + movs r2, #0x80 + lsls r2, r2, #0xa + ands r1, r2 + adds r5, r0, #0 + cmp r1, #0 + beq _0803E448 + ldr r0, _0803E3E4 + ldr r4, _0803E3E8 + ldrb r2, [r4] + lsls r1, r2, #4 + adds r1, r1, r0 + ldrb r0, [r1, #2] + lsls r0, r0, #0x1b + cmp r0, #0 + bge _0803E448 + ldr r1, _0803E3EC + movs r0, #0x58 + muls r0, r2, r0 + adds r0, r0, r1 + ldrh r0, [r0, #0x28] + cmp r0, #0 + bne _0803E3F4 + ldr r1, _0803E3F0 + movs r0, #0xc + b _0803E47C + .align 2, 0 +_0803E3E0: .4byte 0x02022C90 +_0803E3E4: .4byte 0x02023FE0 +_0803E3E8: .4byte 0x02023EAF +_0803E3EC: .4byte 0x02023D28 +_0803E3F0: .4byte 0x02023D27 +_0803E3F4: + ldr r3, _0803E420 + lsls r0, r2, #2 + adds r0, r0, r3 + ldr r0, [r0] + cmp r0, #0 + beq _0803E42C + ldr r1, _0803E424 + movs r2, #0 + movs r0, #4 + strb r0, [r1, #5] + ldr r1, _0803E428 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r3 + ldr r0, [r0] + str r0, [r1] + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r3 + str r2, [r0] + b _0803E464 + .align 2, 0 +_0803E420: .4byte 0x02023ED4 +_0803E424: .4byte 0x02023FD6 +_0803E428: .4byte 0x02023EB8 +_0803E42C: + ldr r1, _0803E43C + movs r0, #4 + strb r0, [r1, #5] + ldr r1, _0803E440 + ldr r0, _0803E444 + str r0, [r1] + b _0803E464 + .align 2, 0 +_0803E43C: .4byte 0x02023FD6 +_0803E440: .4byte 0x02023EB8 +_0803E444: .4byte 0x08289C35 +_0803E448: + ldr r4, _0803E490 + ldr r3, _0803E494 + ldr r2, _0803E498 + ldr r0, _0803E49C + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r3 + ldr r0, [r0] + str r0, [r4] +_0803E464: + ldr r0, [r5] + movs r1, #0x80 + lsls r1, r1, #0xb + ands r0, r1 + cmp r0, #0 + beq _0803E478 + ldr r0, _0803E4A0 + ldrb r0, [r0] + bl BattleArena_AddMindPoints +_0803E478: + ldr r1, _0803E4A4 + movs r0, #0xa +_0803E47C: + strb r0, [r1] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0803E490: .4byte 0x02023EB8 +_0803E494: .4byte 0x08286C30 +_0803E498: .4byte 0x082ED220 +_0803E49C: .4byte 0x02023E8E +_0803E4A0: .4byte 0x02023EAF +_0803E4A4: .4byte 0x02023D27 + thumb_func_end HandleAction_UseMove + + thumb_func_start HandleAction_Switch +HandleAction_Switch: @ 0x0803E4A8 + push {r4, lr} + ldr r3, _0803E514 + ldr r1, _0803E518 + ldr r0, _0803E51C + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r3] + ldr r0, _0803E520 + movs r2, #0 + strh r2, [r0] + ldr r0, _0803E524 + strh r2, [r0] + ldr r1, _0803E528 + ldrb r0, [r3] + adds r0, r0, r1 + strb r2, [r0] + ldr r1, _0803E52C + ldrb r0, [r3] + adds r0, r0, r1 + strb r2, [r0] + ldr r2, _0803E530 + movs r0, #0xfd + strb r0, [r2] + movs r0, #7 + strb r0, [r2, #1] + ldrb r4, [r3] + strb r4, [r2, #2] + ldrb r0, [r3] + ldr r1, _0803E534 + ldr r1, [r1] + adds r0, r0, r1 + adds r0, #0x58 + ldrb r0, [r0] + strb r0, [r2, #3] + movs r0, #0xff + strb r0, [r2, #4] + ldr r0, _0803E538 + strb r4, [r0, #0x17] + ldr r1, _0803E53C + ldr r0, _0803E540 + str r0, [r1] + ldr r1, _0803E544 + movs r0, #0xa + strb r0, [r1] + ldr r1, _0803E548 + ldrb r0, [r1, #2] + cmp r0, #0xfe + bhi _0803E50E + adds r0, #1 + strb r0, [r1, #2] +_0803E50E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803E514: .4byte 0x02023EAF +_0803E518: .4byte 0x02023D22 +_0803E51C: .4byte 0x02023D26 +_0803E520: .4byte 0x02022AC8 +_0803E524: .4byte 0x02022ACA +_0803E528: .4byte 0x02024150 +_0803E52C: .4byte 0x02024154 +_0803E530: .4byte 0x02022C0C +_0803E534: .4byte 0x02024140 +_0803E538: .4byte 0x02024118 +_0803E53C: .4byte 0x02023EB8 +_0803E540: .4byte 0x0828909D +_0803E544: .4byte 0x02023D27 +_0803E548: .4byte 0x03005A70 + thumb_func_end HandleAction_Switch + + thumb_func_start HandleAction_UseItem +HandleAction_UseItem: @ 0x0803E54C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r4, _0803E5AC + ldr r2, _0803E5B0 + ldr r1, _0803E5B4 + ldr r0, _0803E5B8 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r2] + strb r0, [r4] + ldr r0, _0803E5BC + movs r1, #0 + strh r1, [r0] + ldr r0, _0803E5C0 + strh r1, [r0] + ldrb r0, [r4] + bl ClearFuryCutterDestinyBondGrudge + ldr r5, _0803E5C4 + ldr r2, _0803E5C8 + ldrb r1, [r4] + lsls r1, r1, #9 + adds r0, r2, #1 + adds r0, r1, r0 + ldrb r3, [r0] + adds r2, #2 + adds r1, r1, r2 + ldrb r0, [r1] + lsls r0, r0, #8 + orrs r3, r0 + strh r3, [r5] + cmp r3, #0xc + bhi _0803E5D8 + ldr r2, _0803E5CC + ldr r1, _0803E5D0 + ldrh r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r2] + ldr r0, _0803E5D4 + mov sl, r0 + b _0803E836 + .align 2, 0 +_0803E5AC: .4byte 0x02023EAF +_0803E5B0: .4byte 0x02023EB0 +_0803E5B4: .4byte 0x02023D22 +_0803E5B8: .4byte 0x02023D26 +_0803E5BC: .4byte 0x02022AC8 +_0803E5C0: .4byte 0x02022ACA +_0803E5C4: .4byte 0x02023EAC +_0803E5C8: .4byte 0x02023508 +_0803E5CC: .4byte 0x02023EB8 +_0803E5D0: .4byte 0x0828A290 +_0803E5D4: .4byte 0x02023D27 +_0803E5D8: + adds r0, r3, #0 + subs r0, #0x50 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bhi _0803E600 + ldr r0, _0803E5F4 + ldr r1, _0803E5F8 + ldr r1, [r1] + str r1, [r0] + ldr r1, _0803E5FC + mov sl, r1 + b _0803E836 + .align 2, 0 +_0803E5F4: .4byte 0x02023EB8 +_0803E5F8: .4byte 0x0828A2DC +_0803E5FC: .4byte 0x02023D27 +_0803E600: + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803E628 + ldr r0, _0803E61C + ldr r1, _0803E620 + ldr r1, [r1] + str r1, [r0] + ldr r2, _0803E624 + mov sl, r2 + b _0803E836 + .align 2, 0 +_0803E61C: .4byte 0x02023EB8 +_0803E620: .4byte 0x0828A2C4 +_0803E624: .4byte 0x02023D27 +_0803E628: + ldr r3, _0803E660 + ldrb r0, [r4] + strb r0, [r3, #0x17] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x19 + ldr r2, _0803E664 + ldr r1, [r2] + adds r0, r0, r1 + adds r0, #0xc4 + ldrb r0, [r0] + subs r0, #1 + mov r8, r4 + ldr r1, _0803E668 + mov sb, r1 + ldr r6, _0803E66C + mov ip, r3 + adds r7, r2, #0 + ldr r2, _0803E670 + mov sl, r2 + cmp r0, #4 + bls _0803E654 + b _0803E81E +_0803E654: + lsls r0, r0, #2 + ldr r1, _0803E674 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803E660: .4byte 0x02024118 +_0803E664: .4byte 0x02024140 +_0803E668: .4byte 0x02023EB8 +_0803E66C: .4byte 0x0828A2C4 +_0803E670: .4byte 0x02023D27 +_0803E674: .4byte 0x0803E678 +_0803E678: @ jump table + .4byte _0803E81E @ case 0 + .4byte _0803E81E @ case 1 + .4byte _0803E68C @ case 2 + .4byte _0803E720 @ case 3 + .4byte _0803E7F0 @ case 4 +_0803E68C: + ldr r5, _0803E6C4 + movs r0, #0 + strb r0, [r5, #5] + ldr r2, _0803E6C8 + ldrb r0, [r2] + lsrs r0, r0, #1 + ldr r1, [r7] + adds r0, r0, r1 + adds r0, #0xc6 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + mov r8, r2 + cmp r0, #0 + beq _0803E6D8 + movs r0, #0x3e + ands r0, r1 + ldr r1, _0803E6CC + mov sb, r1 + ldr r6, _0803E6D0 + ldr r2, _0803E6D4 + mov sl, r2 + cmp r0, #0 + bne _0803E6BE + b _0803E81E +_0803E6BE: + movs r0, #5 + strb r0, [r5, #5] + b _0803E81E + .align 2, 0 +_0803E6C4: .4byte 0x02023FD6 +_0803E6C8: .4byte 0x02023EAF +_0803E6CC: .4byte 0x02023EB8 +_0803E6D0: .4byte 0x0828A2C4 +_0803E6D4: .4byte 0x02023D27 +_0803E6D8: + ldr r0, _0803E714 + mov sb, r0 + ldr r6, _0803E718 + ldr r1, _0803E71C + mov sl, r1 + mov r4, r8 + adds r3, r7, #0 + adds r2, r5, #0 +_0803E6E8: + ldrb r1, [r4] + lsrs r1, r1, #1 + ldr r0, [r3] + adds r1, r1, r0 + adds r1, #0xc6 + ldrb r0, [r1] + lsrs r0, r0, #1 + strb r0, [r1] + ldrb r0, [r2, #5] + adds r0, #1 + strb r0, [r2, #5] + ldrb r0, [r4] + lsrs r0, r0, #1 + ldr r1, [r3] + adds r0, r0, r1 + adds r0, #0xc6 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0803E6E8 + b _0803E81E + .align 2, 0 +_0803E714: .4byte 0x02023EB8 +_0803E718: .4byte 0x0828A2C4 +_0803E71C: .4byte 0x02023D27 +_0803E720: + ldr r3, _0803E754 + movs r0, #4 + strb r0, [r3, #5] + ldr r2, _0803E758 + ldrb r0, [r2] + lsrs r0, r0, #1 + ldr r1, [r7] + adds r0, r0, r1 + adds r6, r0, #0 + adds r6, #0xc6 + ldrb r1, [r6] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + mov r8, r2 + cmp r5, #0 + beq _0803E768 + movs r0, #5 + strb r0, [r3, #5] + ldr r2, _0803E75C + mov sb, r2 + ldr r6, _0803E760 + ldr r0, _0803E764 + mov sl, r0 + b _0803E81E + .align 2, 0 +_0803E754: .4byte 0x02023FD6 +_0803E758: .4byte 0x02023EAF +_0803E75C: .4byte 0x02023EB8 +_0803E760: .4byte 0x0828A2C4 +_0803E764: .4byte 0x02023D27 +_0803E768: + ldr r3, _0803E7DC + movs r4, #0xfd + strb r4, [r3] + movs r0, #5 + strb r0, [r3, #1] + movs r2, #1 + strb r2, [r3, #2] + movs r0, #0xff + strb r0, [r3, #3] + ldr r1, _0803E7E0 + strb r4, [r1] + strb r5, [r1, #1] + movs r0, #0xd2 + strb r0, [r1, #2] + strb r5, [r1, #3] + subs r0, #0xd3 + strb r0, [r1, #4] + ldrb r0, [r6] + ands r2, r0 + ldr r1, _0803E7E4 + mov sb, r1 + ldr r6, _0803E7E8 + ldr r0, _0803E7EC + mov sl, r0 + cmp r2, #0 + bne _0803E7CC + mov r5, r8 + adds r4, r7, #0 + adds r2, r3, #0 +_0803E7A2: + ldrb r1, [r5] + lsrs r1, r1, #1 + ldr r0, [r4] + adds r1, r1, r0 + adds r1, #0xc6 + ldrb r0, [r1] + lsrs r0, r0, #1 + strb r0, [r1] + ldrb r0, [r2, #2] + adds r0, #1 + strb r0, [r2, #2] + ldrb r0, [r5] + lsrs r0, r0, #1 + ldr r1, [r4] + adds r0, r0, r1 + adds r0, #0xc6 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0803E7A2 +_0803E7CC: + ldrb r0, [r3, #2] + adds r0, #0xe + movs r1, #0 + mov r2, ip + strb r0, [r2, #0x10] + strb r1, [r2, #0x11] + b _0803E81E + .align 2, 0 +_0803E7DC: .4byte 0x02022C0C +_0803E7E0: .4byte 0x02022C1C +_0803E7E4: .4byte 0x02023EB8 +_0803E7E8: .4byte 0x0828A2C4 +_0803E7EC: .4byte 0x02023D27 +_0803E7F0: + ldr r0, _0803E804 + ldr r1, [r0] + movs r0, #1 + ands r1, r0 + cmp r1, #0 + beq _0803E80C + ldr r1, _0803E808 + movs r0, #2 + strb r0, [r1, #5] + b _0803E810 + .align 2, 0 +_0803E804: .4byte 0x02022C90 +_0803E808: .4byte 0x02023FD6 +_0803E80C: + ldr r0, _0803E84C + strb r1, [r0, #5] +_0803E810: + ldr r0, _0803E850 + mov r8, r0 + ldr r1, _0803E854 + mov sb, r1 + ldr r6, _0803E858 + ldr r2, _0803E85C + mov sl, r2 +_0803E81E: + mov r1, r8 + ldrb r0, [r1] + lsrs r0, r0, #1 + ldr r1, [r7] + adds r0, r0, r1 + adds r0, #0xc4 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r0, [r0] + mov r2, sb + str r0, [r2] +_0803E836: + movs r0, #0xa + mov r1, sl + strb r0, [r1] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0803E84C: .4byte 0x02023FD6 +_0803E850: .4byte 0x02023EAF +_0803E854: .4byte 0x02023EB8 +_0803E858: .4byte 0x0828A2C4 +_0803E85C: .4byte 0x02023D27 + thumb_func_end HandleAction_UseItem + + thumb_func_start TryRunFromBattle +TryRunFromBattle: @ 0x0803E860 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r7, #0 + ldr r1, _0803E88C + movs r0, #0x58 + muls r0, r5, r0 + adds r1, r0, r1 + ldrh r0, [r1, #0x2e] + cmp r0, #0xaf + bne _0803E894 + ldr r1, _0803E890 + lsls r0, r5, #3 + subs r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #7] + b _0803E89E + .align 2, 0 +_0803E88C: .4byte 0x02023D28 +_0803E890: .4byte 0x020240A8 +_0803E894: + ldrh r0, [r1, #0x2e] + bl sub_080D6CF8 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 +_0803E89E: + ldr r0, _0803E8CC + strb r5, [r0] + cmp r1, #0x25 + bne _0803E8DC + ldr r2, _0803E8D0 + ldr r1, _0803E8D4 + movs r0, #0x58 + muls r0, r5, r0 + adds r0, r0, r1 + ldrh r0, [r0, #0x2e] + strh r0, [r2] + ldr r0, _0803E8D8 + lsls r2, r5, #4 + adds r2, r2, r0 + ldrb r1, [r2, #1] + movs r0, #0x19 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2, #1] + b _0803E9B0 + .align 2, 0 +_0803E8CC: .4byte 0x02023EB3 +_0803E8D0: .4byte 0x02023EAC +_0803E8D4: .4byte 0x02023D28 +_0803E8D8: .4byte 0x02023FE0 +_0803E8DC: + ldr r0, _0803E968 + mov sl, r0 + movs r2, #0x58 + mov sb, r2 + mov r0, sb + muls r0, r5, r0 + add r0, sl + mov r8, r0 + adds r0, #0x20 + ldrb r6, [r0] + cmp r6, #0x32 + bne _0803E99C + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0803E978 + ldr r4, _0803E96C + ldr r1, [r4] + adds r1, #0x6c + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + bl GetPyramidRunMultiplier + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + mov r2, r8 + ldrh r0, [r2, #6] + muls r0, r1, r0 + movs r2, #1 + adds r1, r5, #0 + eors r1, r2 + mov r2, sb + muls r2, r1, r2 + adds r1, r2, #0 + add r1, sl + ldrh r1, [r1, #6] + bl __divsi3 + ldr r1, [r4] + adds r1, #0x6c + ldrb r2, [r1] + lsls r1, r2, #4 + subs r1, r1, r2 + lsls r1, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl Random + movs r1, #0xff + ands r1, r0 + cmp r4, r1 + bhi _0803E94C + b _0803EA52 +_0803E94C: + ldr r0, _0803E970 + strb r6, [r0] + ldr r0, _0803E974 + lsls r2, r5, #4 + adds r2, r2, r0 + ldrb r1, [r2, #1] + movs r0, #0x19 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r2, #1] + b _0803E9B0 + .align 2, 0 +_0803E968: .4byte 0x02023D28 +_0803E96C: .4byte 0x02024140 +_0803E970: .4byte 0x02023EAE +_0803E974: .4byte 0x02023FE0 +_0803E978: + ldr r0, _0803E994 + strb r6, [r0] + ldr r0, _0803E998 + lsls r2, r5, #4 + adds r2, r2, r0 + ldrb r1, [r2, #1] + movs r0, #0x19 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r2, #1] + b _0803E9B0 + .align 2, 0 +_0803E994: .4byte 0x02023EAE +_0803E998: .4byte 0x02023FE0 +_0803E99C: + ldr r1, _0803E9B8 + ldr r2, [r1] + ldr r0, _0803E9BC + ands r0, r2 + cmp r0, #0 + beq _0803E9C0 + movs r0, #8 + ands r2, r0 + cmp r2, #0 + beq _0803E9C0 +_0803E9B0: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + b _0803EA52 + .align 2, 0 +_0803E9B8: .4byte 0x02022C90 +_0803E9BC: .4byte 0x043F0100 +_0803E9C0: + ldr r0, [r1] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0803EA46 + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0803E9FC + bl GetPyramidRunMultiplier + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r4, _0803E9F8 + movs r3, #0x58 + adds r0, r5, #0 + muls r0, r3, r0 + adds r0, r0, r4 + ldrh r0, [r0, #6] + muls r0, r1, r0 + movs r2, #1 + adds r1, r5, #0 + eors r1, r2 + muls r1, r3, r1 + adds r1, r1, r4 + b _0803EA1A + .align 2, 0 +_0803E9F8: .4byte 0x02023D28 +_0803E9FC: + ldr r3, _0803EA74 + movs r2, #0x58 + adds r0, r5, #0 + muls r0, r2, r0 + adds r4, r0, r3 + movs r1, #1 + adds r0, r5, #0 + eors r0, r1 + muls r0, r2, r0 + adds r1, r0, r3 + ldrh r0, [r4, #6] + ldrh r2, [r1, #6] + cmp r0, r2 + bhs _0803EA40 + lsls r0, r0, #7 +_0803EA1A: + ldrh r1, [r1, #6] + bl __divsi3 + ldr r1, _0803EA78 + ldr r1, [r1] + adds r1, #0x6c + ldrb r2, [r1] + lsls r1, r2, #4 + subs r1, r1, r2 + lsls r1, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl Random + movs r1, #0xff + ands r1, r0 + cmp r4, r1 + bls _0803EA46 +_0803EA40: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 +_0803EA46: + ldr r0, _0803EA78 + ldr r1, [r0] + adds r1, #0x6c + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0803EA52: + cmp r7, #0 + beq _0803EA64 + ldr r1, _0803EA7C + ldr r0, _0803EA80 + ldrb r0, [r0] + strb r0, [r1] + ldr r1, _0803EA84 + movs r0, #4 + strb r0, [r1] +_0803EA64: + adds r0, r7, #0 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0803EA74: .4byte 0x02023D28 +_0803EA78: .4byte 0x02024140 +_0803EA7C: .4byte 0x02023D26 +_0803EA80: .4byte 0x02023D10 +_0803EA84: .4byte 0x02023FDE + thumb_func_end TryRunFromBattle + + thumb_func_start HandleAction_Run +HandleAction_Run: @ 0x0803EA88 + push {r4, r5, r6, lr} + ldr r4, _0803EAD8 + ldr r1, _0803EADC + ldr r5, _0803EAE0 + ldrb r0, [r5] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4] + ldr r0, _0803EAE4 + ldr r0, [r0] + ldr r1, _0803EAE8 + ands r0, r1 + cmp r0, #0 + beq _0803EB4C + ldr r0, _0803EAEC + ldrb r1, [r0] + strb r1, [r5] + ldr r2, _0803EAF0 + movs r0, #0 + strb r0, [r2] + lsls r1, r1, #0x18 + cmp r1, #0 + beq _0803EB20 + adds r4, r2, #0 + ldr r6, _0803EAF4 + ldr r5, _0803EAF8 +_0803EABC: + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803EAFC + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r0, [r0] + cmp r0, #3 + bne _0803EB0E + ldrb r0, [r5] + movs r1, #2 + b _0803EB0A + .align 2, 0 +_0803EAD8: .4byte 0x02023EAF +_0803EADC: .4byte 0x02023D22 +_0803EAE0: .4byte 0x02023D26 +_0803EAE4: .4byte 0x02022C90 +_0803EAE8: .4byte 0x02000002 +_0803EAEC: .4byte 0x02023D10 +_0803EAF0: .4byte 0x02023D08 +_0803EAF4: .4byte 0x02023EC0 +_0803EAF8: .4byte 0x02023FDE +_0803EAFC: + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r0, [r0] + cmp r0, #3 + bne _0803EB0E + ldrb r0, [r5] + movs r1, #1 +_0803EB0A: + orrs r0, r1 + strb r0, [r5] +_0803EB0E: + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + ldr r1, _0803EB3C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + blo _0803EABC +_0803EB20: + ldr r2, _0803EB40 + ldrb r0, [r2] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2] + ldr r0, _0803EB44 + ldr r1, [r0] + ldr r0, _0803EB48 + adds r1, r1, r0 + ldrb r0, [r1] + movs r2, #8 + orrs r0, r2 + b _0803EBD6 + .align 2, 0 +_0803EB3C: .4byte 0x02023D10 +_0803EB40: .4byte 0x02023FDE +_0803EB44: .4byte 0x03005AF0 +_0803EB48: .4byte 0x00000CA9 +_0803EB4C: + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803EB8C + ldrb r0, [r4] + bl TryRunFromBattle + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803EBD8 + ldrb r0, [r4] + bl ClearFuryCutterDestinyBondGrudge + ldr r1, _0803EB7C + movs r0, #3 + strb r0, [r1, #5] + ldr r1, _0803EB80 + ldr r0, _0803EB84 + str r0, [r1] + ldr r1, _0803EB88 + movs r0, #0xa + b _0803EBD6 + .align 2, 0 +_0803EB7C: .4byte 0x02023FD6 +_0803EB80: .4byte 0x02023EB8 +_0803EB84: .4byte 0x0828908A +_0803EB88: .4byte 0x02023D27 +_0803EB8C: + ldr r1, _0803EBB4 + ldrb r2, [r4] + movs r0, #0x58 + muls r0, r2, r0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _0803EBB8 + ands r0, r1 + cmp r0, #0 + beq _0803EBCC + ldr r1, _0803EBBC + movs r0, #4 + strb r0, [r1, #5] + ldr r1, _0803EBC0 + ldr r0, _0803EBC4 + str r0, [r1] + ldr r1, _0803EBC8 + movs r0, #0xa + b _0803EBD6 + .align 2, 0 +_0803EBB4: .4byte 0x02023D28 +_0803EBB8: .4byte 0x0400E000 +_0803EBBC: .4byte 0x02023FD6 +_0803EBC0: .4byte 0x02023EB8 +_0803EBC4: .4byte 0x0828908A +_0803EBC8: .4byte 0x02023D27 +_0803EBCC: + ldr r0, _0803EBE0 + ldrb r0, [r0] + strb r0, [r5] + ldr r1, _0803EBE4 + movs r0, #6 +_0803EBD6: + strb r0, [r1] +_0803EBD8: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0803EBE0: .4byte 0x02023D10 +_0803EBE4: .4byte 0x02023FDE + thumb_func_end HandleAction_Run + + thumb_func_start HandleAction_WatchesCarefully +HandleAction_WatchesCarefully: @ 0x0803EBE8 + ldr r2, _0803EC10 + ldr r1, _0803EC14 + ldr r0, _0803EC18 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r2] + ldr r0, _0803EC1C + movs r1, #0 + strh r1, [r0] + ldr r0, _0803EC20 + strh r1, [r0] + ldr r1, _0803EC24 + ldr r0, _0803EC28 + ldr r0, [r0] + str r0, [r1] + ldr r1, _0803EC2C + movs r0, #0xa + strb r0, [r1] + bx lr + .align 2, 0 +_0803EC10: .4byte 0x02023EAF +_0803EC14: .4byte 0x02023D22 +_0803EC18: .4byte 0x02023D26 +_0803EC1C: .4byte 0x02022AC8 +_0803EC20: .4byte 0x02022ACA +_0803EC24: .4byte 0x02023EB8 +_0803EC28: .4byte 0x0828A2E0 +_0803EC2C: .4byte 0x02023D27 + thumb_func_end HandleAction_WatchesCarefully + + thumb_func_start HandleAction_SafariZoneBallThrow +HandleAction_SafariZoneBallThrow: @ 0x0803EC30 + ldr r2, _0803EC68 + ldr r1, _0803EC6C + ldr r0, _0803EC70 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r2] + ldr r0, _0803EC74 + movs r1, #0 + strh r1, [r0] + ldr r0, _0803EC78 + strh r1, [r0] + ldr r1, _0803EC7C + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + ldr r1, _0803EC80 + movs r0, #5 + strh r0, [r1] + ldr r1, _0803EC84 + ldr r0, _0803EC88 + ldr r0, [r0, #0x14] + str r0, [r1] + ldr r1, _0803EC8C + movs r0, #0xa + strb r0, [r1] + bx lr + .align 2, 0 +_0803EC68: .4byte 0x02023EAF +_0803EC6C: .4byte 0x02023D22 +_0803EC70: .4byte 0x02023D26 +_0803EC74: .4byte 0x02022AC8 +_0803EC78: .4byte 0x02022ACA +_0803EC7C: .4byte 0x02039D18 +_0803EC80: .4byte 0x02023EAC +_0803EC84: .4byte 0x02023EB8 +_0803EC88: .4byte 0x0828A290 +_0803EC8C: .4byte 0x02023D27 + thumb_func_end HandleAction_SafariZoneBallThrow + + thumb_func_start HandleAction_ThrowPokeblock +HandleAction_ThrowPokeblock: @ 0x0803EC90 + push {r4, r5, r6, lr} + ldr r3, _0803ED10 + ldr r1, _0803ED14 + ldr r0, _0803ED18 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r3] + ldr r0, _0803ED1C + movs r1, #0 + strh r1, [r0] + ldr r0, _0803ED20 + strh r1, [r0] + ldr r6, _0803ED24 + ldr r2, _0803ED28 + ldrb r0, [r3] + lsls r0, r0, #9 + adds r1, r2, #1 + adds r0, r0, r1 + ldrb r0, [r0] + subs r0, #1 + strb r0, [r6, #5] + ldr r1, _0803ED2C + ldrb r0, [r3] + lsls r0, r0, #9 + adds r2, #2 + adds r0, r0, r2 + ldrb r0, [r0] + strh r0, [r1] + ldr r1, _0803ED30 + ldrb r0, [r1, #0x1f] + cmp r0, #0xfe + bhi _0803ECD6 + adds r0, #1 + strb r0, [r1, #0x1f] +_0803ECD6: + ldr r2, _0803ED34 + ldr r0, [r2] + adds r1, r0, #0 + adds r1, #0x7a + ldrb r0, [r1] + cmp r0, #2 + bhi _0803ECE8 + adds r0, #1 + strb r0, [r1] +_0803ECE8: + ldr r0, [r2] + adds r3, r0, #0 + adds r3, #0x7b + ldrb r5, [r3] + adds r4, r5, #0 + cmp r4, #1 + bls _0803ED40 + ldr r2, _0803ED38 + adds r0, #0x7a + ldrb r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + ldrb r6, [r6, #5] + adds r0, r0, r6 + adds r0, r0, r2 + ldrb r0, [r0] + cmp r4, r0 + bhs _0803ED3C + movs r0, #1 + b _0803ED3E + .align 2, 0 +_0803ED10: .4byte 0x02023EAF +_0803ED14: .4byte 0x02023D22 +_0803ED18: .4byte 0x02023D26 +_0803ED1C: .4byte 0x02022AC8 +_0803ED20: .4byte 0x02022ACA +_0803ED24: .4byte 0x02023FD6 +_0803ED28: .4byte 0x02023508 +_0803ED2C: .4byte 0x02023EAC +_0803ED30: .4byte 0x03005A70 +_0803ED34: .4byte 0x02024140 +_0803ED38: .4byte 0x082EC664 +_0803ED3C: + subs r0, r5, r0 +_0803ED3E: + strb r0, [r3] +_0803ED40: + ldr r1, _0803ED54 + ldr r0, _0803ED58 + ldr r0, [r0, #8] + str r0, [r1] + ldr r1, _0803ED5C + movs r0, #0xa + strb r0, [r1] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0803ED54: .4byte 0x02023EB8 +_0803ED58: .4byte 0x0828A2E0 +_0803ED5C: .4byte 0x02023D27 + thumb_func_end HandleAction_ThrowPokeblock + + thumb_func_start HandleAction_GoNear +HandleAction_GoNear: @ 0x0803ED60 + push {r4, lr} + ldr r2, _0803EDE0 + ldr r1, _0803EDE4 + ldr r0, _0803EDE8 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r2] + ldr r0, _0803EDEC + movs r4, #0 + strh r4, [r0] + ldr r0, _0803EDF0 + strh r4, [r0] + ldr r3, _0803EDF4 + ldr r0, [r3] + adds r2, r0, #0 + adds r2, #0x7c + ldr r1, _0803EDF8 + adds r0, #0x79 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + ldrb r1, [r2] + adds r0, r0, r1 + strb r0, [r2] + ldr r0, [r3] + adds r1, r0, #0 + adds r1, #0x7c + ldrb r0, [r1] + cmp r0, #0x14 + bls _0803EDA2 + movs r0, #0x14 + strb r0, [r1] +_0803EDA2: + ldr r0, [r3] + adds r2, r0, #0 + adds r2, #0x7b + ldr r1, _0803EDFC + adds r0, #0x79 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + ldrb r1, [r2] + adds r0, r0, r1 + strb r0, [r2] + ldr r0, [r3] + adds r1, r0, #0 + adds r1, #0x7b + ldrb r0, [r1] + cmp r0, #0x14 + bls _0803EDC8 + movs r0, #0x14 + strb r0, [r1] +_0803EDC8: + ldr r0, [r3] + adds r1, r0, #0 + adds r1, #0x79 + ldrb r0, [r1] + cmp r0, #2 + bhi _0803EE04 + adds r0, #1 + strb r0, [r1] + ldr r0, _0803EE00 + strb r4, [r0, #5] + b _0803EE0A + .align 2, 0 +_0803EDE0: .4byte 0x02023EAF +_0803EDE4: .4byte 0x02023D22 +_0803EDE8: .4byte 0x02023D26 +_0803EDEC: .4byte 0x02022AC8 +_0803EDF0: .4byte 0x02022ACA +_0803EDF4: .4byte 0x02024140 +_0803EDF8: .4byte 0x082EC673 +_0803EDFC: .4byte 0x082EC677 +_0803EE00: .4byte 0x02023FD6 +_0803EE04: + ldr r1, _0803EE20 + movs r0, #1 + strb r0, [r1, #5] +_0803EE0A: + ldr r1, _0803EE24 + ldr r0, _0803EE28 + ldr r0, [r0, #4] + str r0, [r1] + ldr r1, _0803EE2C + movs r0, #0xa + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803EE20: .4byte 0x02023FD6 +_0803EE24: .4byte 0x02023EB8 +_0803EE28: .4byte 0x0828A2E0 +_0803EE2C: .4byte 0x02023D27 + thumb_func_end HandleAction_GoNear + + thumb_func_start HandleAction_SafariZoneRun +HandleAction_SafariZoneRun: @ 0x0803EE30 + push {r4, lr} + ldr r2, _0803EE58 + ldr r1, _0803EE5C + ldr r4, _0803EE60 + ldrb r0, [r4] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r2] + movs r0, #0x11 + bl PlaySE + ldr r0, _0803EE64 + ldrb r0, [r0] + strb r0, [r4] + ldr r1, _0803EE68 + movs r0, #4 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803EE58: .4byte 0x02023EAF +_0803EE5C: .4byte 0x02023D22 +_0803EE60: .4byte 0x02023D26 +_0803EE64: .4byte 0x02023D10 +_0803EE68: .4byte 0x02023FDE + thumb_func_end HandleAction_SafariZoneRun + + thumb_func_start HandleAction_WallyBallThrow +HandleAction_WallyBallThrow: @ 0x0803EE6C + ldr r3, _0803EEB8 + ldr r1, _0803EEBC + ldr r0, _0803EEC0 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r2, [r0] + strb r2, [r3] + ldr r0, _0803EEC4 + movs r1, #0 + strh r1, [r0] + ldr r0, _0803EEC8 + strh r1, [r0] + ldr r1, _0803EECC + movs r0, #0xfd + strb r0, [r1] + movs r0, #7 + strb r0, [r1, #1] + strb r2, [r1, #2] + ldr r2, _0803EED0 + ldrb r0, [r3] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strb r0, [r1, #3] + movs r0, #0xff + strb r0, [r1, #4] + ldr r1, _0803EED4 + ldr r0, _0803EED8 + ldr r0, [r0, #0xc] + str r0, [r1] + ldr r1, _0803EEDC + movs r0, #0xa + strb r0, [r1] + ldr r1, _0803EEE0 + movs r0, #0xc + strb r0, [r1, #1] + bx lr + .align 2, 0 +_0803EEB8: .4byte 0x02023EAF +_0803EEBC: .4byte 0x02023D22 +_0803EEC0: .4byte 0x02023D26 +_0803EEC4: .4byte 0x02022AC8 +_0803EEC8: .4byte 0x02022ACA +_0803EECC: .4byte 0x02022C0C +_0803EED0: .4byte 0x02023D12 +_0803EED4: .4byte 0x02023EB8 +_0803EED8: .4byte 0x0828A2E0 +_0803EEDC: .4byte 0x02023D27 +_0803EEE0: .4byte 0x02023D1E + thumb_func_end HandleAction_WallyBallThrow + + thumb_func_start sub_0803EEE4 +sub_0803EEE4: @ 0x0803EEE4 + push {lr} + bl HandleFaintedMonActions + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0803EF00 + ldr r0, _0803EF04 + ldr r0, [r0] + adds r0, #0x4d + strb r1, [r0] + ldr r1, _0803EF08 + movs r0, #0xc + strb r0, [r1] +_0803EF00: + pop {r0} + bx r0 + .align 2, 0 +_0803EF04: .4byte 0x02024140 +_0803EF08: .4byte 0x02023D27 + thumb_func_end sub_0803EEE4 + + thumb_func_start HandleAction_NothingIsFainted +HandleAction_NothingIsFainted: @ 0x0803EF0C + ldr r1, _0803EF2C + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r3, _0803EF30 + ldr r2, _0803EF34 + ldrb r0, [r1] + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r3] + ldr r2, _0803EF38 + ldr r0, [r2] + ldr r1, _0803EF3C + ands r0, r1 + str r0, [r2] + bx lr + .align 2, 0 +_0803EF2C: .4byte 0x02023D26 +_0803EF30: .4byte 0x02023D27 +_0803EF34: .4byte 0x02023D1E +_0803EF38: .4byte 0x02023F24 +_0803EF3C: .4byte 0xF1E892AF + thumb_func_end HandleAction_NothingIsFainted + + thumb_func_start HandleAction_ActionFinished +HandleAction_ActionFinished: @ 0x0803EF40 + push {r4, r5, r6, lr} + ldr r1, _0803EFC8 + ldr r2, _0803EFCC + ldrb r0, [r2] + adds r0, r0, r1 + ldrb r0, [r0] + ldr r6, _0803EFD0 + ldr r1, [r6] + adds r0, r0, r1 + adds r0, #0x5c + movs r1, #6 + strb r1, [r0] + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + ldr r3, _0803EFD4 + ldr r1, _0803EFD8 + ldrb r0, [r2] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r3] + bl SpecialStatusesClear + ldr r2, _0803EFDC + ldr r0, [r2] + ldr r1, _0803EFE0 + ands r0, r1 + str r0, [r2] + ldr r0, _0803EFE4 + movs r1, #0 + strh r1, [r0] + ldr r0, _0803EFE8 + movs r4, #0 + str r4, [r0] + ldr r0, _0803EFEC + strb r1, [r0] + ldr r5, _0803EFF0 + strb r1, [r5, #0x18] + strb r1, [r5, #0x19] + ldr r2, _0803EFF4 + ldr r3, _0803EFF8 + ldrb r0, [r3] + lsls r0, r0, #1 + adds r0, r0, r2 + strh r4, [r0] + ldr r2, _0803EFFC + ldrb r0, [r3] + lsls r0, r0, #1 + adds r0, r0, r2 + strh r4, [r0] + ldr r0, [r6] + strb r1, [r0, #0x13] + ldr r0, _0803F000 + strh r4, [r0] + strb r1, [r5, #0x14] + ldr r0, _0803F004 + strb r1, [r0, #3] + strb r1, [r0, #4] + strb r1, [r5, #0x16] + ldr r0, _0803F008 + ldr r0, [r0] + ldr r0, [r0, #8] + adds r0, #0x20 + strb r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0803EFC8: .4byte 0x02023D22 +_0803EFCC: .4byte 0x02023D26 +_0803EFD0: .4byte 0x02024140 +_0803EFD4: .4byte 0x02023D27 +_0803EFD8: .4byte 0x02023D1E +_0803EFDC: .4byte 0x02023F24 +_0803EFE0: .4byte 0xF1E892AF +_0803EFE4: .4byte 0x02023E8E +_0803EFE8: .4byte 0x02023E94 +_0803EFEC: .4byte 0x02023F20 +_0803EFF0: .4byte 0x02024118 +_0803EFF4: .4byte 0x02023EF4 +_0803EFF8: .4byte 0x02023EAF +_0803EFFC: .4byte 0x02023EFC +_0803F000: .4byte 0x020240A4 +_0803F004: .4byte 0x02023FD6 +_0803F008: .4byte 0x0202414C + thumb_func_end HandleAction_ActionFinished + diff --git a/asm/battle_message.s b/asm/battle_message.s new file mode 100644 index 0000000..b78414a --- /dev/null +++ b/asm/battle_message.s @@ -0,0 +1,3317 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start BufferStringBattle +BufferStringBattle: @ 0x0814E184 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + movs r7, #0 + ldr r4, _0814E22C + ldr r0, _0814E230 + mov ip, r0 + ldrb r1, [r0] + lsls r1, r1, #9 + ldr r0, _0814E234 + adds r1, r1, r0 + str r1, [r4] + ldr r2, _0814E238 + ldrh r0, [r1, #4] + strh r0, [r2] + ldr r2, _0814E23C + ldrb r0, [r1, #6] + strb r0, [r2] + ldr r5, _0814E240 + ldrb r0, [r1, #7] + strb r0, [r5, #0x17] + ldr r3, _0814E244 + ldr r0, [r3] + adds r0, #0x52 + ldrb r1, [r1, #8] + strb r1, [r0] + ldr r0, [r3] + adds r0, #0xb1 + ldr r1, [r4] + ldrb r1, [r1, #9] + strb r1, [r0] + ldr r1, _0814E248 + ldr r2, [r4] + ldrb r0, [r2, #0xa] + strb r0, [r1] + ldr r0, [r3] + adds r0, #0x8e + ldrb r1, [r2, #0xb] + strb r1, [r0] + movs r2, #0 + mov r8, r5 + ldr r1, _0814E24C + mov sb, r1 + ldr r3, _0814E250 +_0814E1E2: + adds r0, r2, r3 + ldr r1, [r4] + adds r1, #0xc + adds r1, r1, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, #3 + ble _0814E1E2 + movs r2, #0 + ldr r5, _0814E24C + ldr r3, _0814E22C + ldr r4, _0814E254 +_0814E1FC: + adds r1, r2, r5 + ldr r0, [r3] + adds r0, #0x10 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r1, r2, r4 + ldr r0, [r3] + adds r0, #0x20 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r2, #1 + cmp r2, #0xf + ble _0814E1FC + cmp r6, #5 + bls _0814E220 + b _0814E768 +_0814E220: + lsls r0, r6, #2 + ldr r1, _0814E258 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0814E22C: .4byte 0x0203A874 +_0814E230: .4byte 0x02023D08 +_0814E234: .4byte 0x02022D0C +_0814E238: .4byte 0x02023EAC +_0814E23C: .4byte 0x02023EAE +_0814E240: .4byte 0x02024118 +_0814E244: .4byte 0x02024140 +_0814E248: .4byte 0x02023EB3 +_0814E24C: .4byte 0x02022C0C +_0814E250: .4byte 0x0203A870 +_0814E254: .4byte 0x02022C1C +_0814E258: .4byte 0x0814E25C +_0814E25C: @ jump table + .4byte _0814E274 @ case 0 + .4byte _0814E354 @ case 1 + .4byte _0814E43C @ case 2 + .4byte _0814E4D8 @ case 3 + .4byte _0814E5A0 @ case 4 + .4byte _0814E600 @ case 5 +_0814E274: + ldr r0, _0814E2AC + ldr r2, [r0] + movs r0, #8 + ands r0, r2 + cmp r0, #0 + beq _0814E314 + ldr r0, _0814E2B0 + ands r0, r2 + cmp r0, #0 + beq _0814E2F0 + movs r0, #0x80 + lsls r0, r0, #0x10 + ands r0, r2 + cmp r0, #0 + bne _0814E308 + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + beq _0814E2BC + movs r0, #0x80 + lsls r0, r0, #0x11 + ands r2, r0 + ldr r7, _0814E2B4 + cmp r2, #0 + bne _0814E2A8 + b _0814E788 +_0814E2A8: + ldr r7, _0814E2B8 + b _0814E788 + .align 2, 0 +_0814E2AC: .4byte 0x02022C90 +_0814E2B0: .4byte 0x02000002 +_0814E2B4: .4byte 0x085AAE91 +_0814E2B8: .4byte 0x085AC12D +_0814E2BC: + ldr r0, _0814E2CC + ldrh r1, [r0] + movs r0, #0xc0 + lsls r0, r0, #4 + cmp r1, r0 + bne _0814E2D4 + ldr r7, _0814E2D0 + b _0814E788 + .align 2, 0 +_0814E2CC: .4byte 0x0203886A +_0814E2D0: .4byte 0x085AAE68 +_0814E2D4: + movs r0, #0x80 + lsls r0, r0, #0x11 + ands r2, r0 + ldr r7, _0814E2E8 + cmp r2, #0 + bne _0814E2E2 + b _0814E788 +_0814E2E2: + ldr r7, _0814E2EC + b _0814E788 + .align 2, 0 +_0814E2E8: .4byte 0x085AAE7F +_0814E2EC: .4byte 0x085AC118 +_0814E2F0: + movs r0, #0x80 + lsls r0, r0, #0xf + ands r0, r2 + cmp r0, #0 + bne _0814E308 + movs r0, #0x80 + lsls r0, r0, #8 + ands r2, r0 + ldr r7, _0814E30C + cmp r2, #0 + bne _0814E308 + b _0814E788 +_0814E308: + ldr r7, _0814E310 + b _0814E788 + .align 2, 0 +_0814E30C: .4byte 0x085AAE68 +_0814E310: .4byte 0x085ABDF4 +_0814E314: + movs r0, #0x80 + lsls r0, r0, #6 + ands r0, r2 + cmp r0, #0 + beq _0814E328 + ldr r7, _0814E324 + b _0814E788 + .align 2, 0 +_0814E324: .4byte 0x085AAE22 +_0814E328: + movs r0, #1 + ands r0, r2 + cmp r0, #0 + beq _0814E338 + ldr r7, _0814E334 + b _0814E788 + .align 2, 0 +_0814E334: .4byte 0x085AAE4E +_0814E338: + movs r0, #0x80 + lsls r0, r0, #2 + ands r2, r0 + ldr r7, _0814E34C + cmp r2, #0 + bne _0814E346 + b _0814E788 +_0814E346: + ldr r7, _0814E350 + b _0814E788 + .align 2, 0 +_0814E34C: .4byte 0x085AAE0C +_0814E350: .4byte 0x085AAE36 +_0814E354: + mov r1, ip + ldrb r0, [r1] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0814E3B8 + ldr r0, _0814E37C + ldr r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0814E3B0 + movs r0, #0x80 + lsls r0, r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _0814E384 + ldr r7, _0814E380 + b _0814E788 + .align 2, 0 +_0814E37C: .4byte 0x02022C90 +_0814E380: .4byte 0x085ABE13 +_0814E384: + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0814E398 + ldr r7, _0814E394 + b _0814E788 + .align 2, 0 +_0814E394: .4byte 0x085AAF4B +_0814E398: + movs r0, #0x40 + ands r1, r0 + ldr r7, _0814E3A8 + cmp r1, #0 + bne _0814E3A4 + b _0814E788 +_0814E3A4: + ldr r7, _0814E3AC + b _0814E788 + .align 2, 0 +_0814E3A8: .4byte 0x085AAF4B +_0814E3AC: .4byte 0x085AAF8E +_0814E3B0: + ldr r7, _0814E3B4 + b _0814E788 + .align 2, 0 +_0814E3B4: .4byte 0x085AAF42 +_0814E3B8: + ldr r0, _0814E3DC + ldr r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0814E410 + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + bne _0814E3D8 + movs r0, #0x80 + lsls r0, r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0814E3E4 +_0814E3D8: + ldr r7, _0814E3E0 + b _0814E788 + .align 2, 0 +_0814E3DC: .4byte 0x02022C90 +_0814E3E0: .4byte 0x085ABDBB +_0814E3E4: + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0814E3F4 + ldr r7, _0814E3F0 + b _0814E788 + .align 2, 0 +_0814E3F0: .4byte 0x085AAF06 +_0814E3F4: + ldr r0, _0814E404 + ands r1, r0 + ldr r7, _0814E408 + cmp r1, #0 + bne _0814E400 + b _0814E788 +_0814E400: + ldr r7, _0814E40C + b _0814E788 + .align 2, 0 +_0814E404: .4byte 0x02000002 +_0814E408: .4byte 0x085AAEBA +_0814E40C: .4byte 0x085AAEF3 +_0814E410: + ldr r0, _0814E42C + ands r1, r0 + cmp r1, #0 + beq _0814E428 + ldr r0, _0814E430 + ldrh r1, [r0] + movs r0, #0xc0 + lsls r0, r0, #4 + ldr r7, _0814E434 + cmp r1, r0 + beq _0814E428 + b _0814E788 +_0814E428: + ldr r7, _0814E438 + b _0814E788 + .align 2, 0 +_0814E42C: .4byte 0x02000002 +_0814E430: .4byte 0x0203886A +_0814E434: .4byte 0x085AAEE4 +_0814E438: .4byte 0x085AAEA7 +_0814E43C: + mov r1, ip + ldrb r0, [r1] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0814E494 + ldr r0, _0814E45C + ldr r0, [r0] + adds r0, #0xb1 + ldrb r2, [r0] + cmp r2, #0 + bne _0814E464 + ldr r7, _0814E460 + b _0814E788 + .align 2, 0 +_0814E45C: .4byte 0x02024140 +_0814E460: .4byte 0x085AAFA6 +_0814E464: + cmp r2, #1 + beq _0814E474 + ldr r0, _0814E478 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0814E480 +_0814E474: + ldr r7, _0814E47C + b _0814E788 + .align 2, 0 +_0814E478: .4byte 0x02022C90 +_0814E47C: .4byte 0x085AAFB4 +_0814E480: + ldr r7, _0814E48C + cmp r2, #2 + beq _0814E488 + b _0814E788 +_0814E488: + ldr r7, _0814E490 + b _0814E788 + .align 2, 0 +_0814E48C: .4byte 0x085AAFC9 +_0814E490: .4byte 0x085AAFBC +_0814E494: + ldr r0, _0814E4C0 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #4 + ldr r2, _0814E4C4 + cmp r1, r0 + beq _0814E4AE + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0x12 + ands r0, r1 + cmp r0, #0 + beq _0814E4D0 +_0814E4AE: + ldr r0, [r2] + movs r1, #0x40 + ands r0, r1 + ldr r7, _0814E4C8 + cmp r0, #0 + bne _0814E4BC + b _0814E788 +_0814E4BC: + ldr r7, _0814E4CC + b _0814E788 + .align 2, 0 +_0814E4C0: .4byte 0x0203886A +_0814E4C4: .4byte 0x02022C90 +_0814E4C8: .4byte 0x085AAFEB +_0814E4CC: .4byte 0x085AAFFA +_0814E4D0: + ldr r7, _0814E4D4 + b _0814E788 + .align 2, 0 +_0814E4D4: .4byte 0x085AAFD8 +_0814E4D8: + mov r4, r8 + ldrb r0, [r4, #0x17] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0814E530 + ldr r0, _0814E504 + ldr r0, [r0] + adds r0, #0xb1 + ldrb r2, [r0] + cmp r2, #0 + beq _0814E4FE + ldr r0, _0814E508 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0814E510 +_0814E4FE: + ldr r7, _0814E50C + b _0814E788 + .align 2, 0 +_0814E504: .4byte 0x02024140 +_0814E508: .4byte 0x02022C90 +_0814E50C: .4byte 0x085AAF58 +_0814E510: + cmp r2, #1 + bne _0814E51C + ldr r7, _0814E518 + b _0814E788 + .align 2, 0 +_0814E518: .4byte 0x085AAF61 +_0814E51C: + ldr r7, _0814E528 + cmp r2, #2 + beq _0814E524 + b _0814E788 +_0814E524: + ldr r7, _0814E52C + b _0814E788 + .align 2, 0 +_0814E528: .4byte 0x085AAF76 +_0814E52C: .4byte 0x085AAF6C +_0814E530: + ldr r0, _0814E54C + ldr r1, [r0] + ldr r0, _0814E550 + ands r0, r1 + cmp r0, #0 + beq _0814E584 + movs r0, #0x80 + lsls r0, r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0814E554 + ldrb r0, [r4, #0x17] + b _0814E592 + .align 2, 0 +_0814E54C: .4byte 0x02022C90 +_0814E550: .4byte 0x02000002 +_0814E554: + movs r0, #0x40 + ands r1, r0 + cmp r1, #0 + beq _0814E564 + ldr r7, _0814E560 + b _0814E788 + .align 2, 0 +_0814E560: .4byte 0x085AAF33 +_0814E564: + ldr r0, _0814E578 + ldrh r1, [r0] + movs r0, #0xc0 + lsls r0, r0, #4 + ldr r7, _0814E57C + cmp r1, r0 + beq _0814E574 + b _0814E788 +_0814E574: + ldr r7, _0814E580 + b _0814E788 + .align 2, 0 +_0814E578: .4byte 0x0203886A +_0814E57C: .4byte 0x085AAF24 +_0814E580: .4byte 0x085AAED1 +_0814E584: + movs r0, #0x80 + lsls r0, r0, #8 + ands r1, r0 + cmp r1, #0 + beq _0814E574 + mov r1, r8 + ldrb r0, [r1, #0x17] +_0814E592: + ldr r7, _0814E59C + cmp r0, #1 + beq _0814E59A + b _0814E788 +_0814E59A: + b _0814E574 + .align 2, 0 +_0814E59C: .4byte 0x085ABDE1 +_0814E5A0: + mov r0, sb + bl ChooseMoveUsedParticle + ldr r0, _0814E5CC + ldr r2, [r0] + ldrh r1, [r2] + movs r0, #0xb1 + lsls r0, r0, #1 + cmp r1, r0 + bls _0814E5DC + ldr r0, _0814E5D0 + ldr r1, _0814E5D4 + ldr r1, [r1] + adds r1, #0x8e + ldrb r2, [r1] + lsls r1, r2, #3 + subs r1, r1, r2 + ldr r2, _0814E5D8 + adds r1, r1, r2 + bl StringCopy + b _0814E5EA + .align 2, 0 +_0814E5CC: .4byte 0x0203A874 +_0814E5D0: .4byte 0x02022C1C +_0814E5D4: .4byte 0x02024140 +_0814E5D8: .4byte 0x085ABC9A +_0814E5DC: + ldr r0, _0814E5F4 + ldrh r1, [r2] + lsls r1, r1, #3 + ldr r2, _0814E5F8 + adds r1, r1, r2 + bl StringCopy +_0814E5EA: + ldr r0, _0814E5F4 + bl ChooseTypeOfMoveUsedString + ldr r7, _0814E5FC + b _0814E788 + .align 2, 0 +_0814E5F4: .4byte 0x02022C1C +_0814E5F8: .4byte 0x082EACC4 +_0814E5FC: .4byte 0x085AB034 +_0814E600: + ldr r4, _0814E640 + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0814E674 + movs r0, #0x7f + ands r0, r1 + strb r0, [r4] + mov r1, ip + ldrb r0, [r1] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0814E62E + ldrb r1, [r4] + cmp r1, #3 + beq _0814E62E + movs r0, #3 + eors r0, r1 + strb r0, [r4] +_0814E62E: + ldr r0, _0814E640 + ldrb r0, [r0] + subs r0, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0814E648 + ldr r7, _0814E644 + b _0814E788 + .align 2, 0 +_0814E640: .4byte 0x02022C0C +_0814E644: .4byte 0x085AA970 +_0814E648: + ldr r0, _0814E658 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0814E660 + ldr r7, _0814E65C + b _0814E788 + .align 2, 0 +_0814E658: .4byte 0x02022C90 +_0814E65C: .4byte 0x085AAA45 +_0814E660: + ldr r0, _0814E66C + ldrh r1, [r0] + movs r0, #0xc0 + lsls r0, r0, #4 + ldr r7, _0814E670 + b _0814E788 + .align 2, 0 +_0814E66C: .4byte 0x0203886A +_0814E670: .4byte 0x085AAA36 +_0814E674: + mov r1, ip + ldrb r0, [r1] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0814E690 + ldrb r1, [r4] + cmp r1, #3 + beq _0814E690 + movs r0, #3 + eors r0, r1 + strb r0, [r4] +_0814E690: + ldr r0, _0814E6B0 + ldr r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0814E6E8 + ldr r0, _0814E6B4 + ldrb r0, [r0] + cmp r0, #2 + beq _0814E6D8 + cmp r0, #2 + bgt _0814E6B8 + cmp r0, #1 + beq _0814E6BE + b _0814E788 + .align 2, 0 +_0814E6B0: .4byte 0x02022C90 +_0814E6B4: .4byte 0x02022C0C +_0814E6B8: + cmp r0, #3 + beq _0814E6E0 + b _0814E788 +_0814E6BE: + movs r0, #0x80 + lsls r0, r0, #0x10 + ands r1, r0 + ldr r7, _0814E6D0 + cmp r1, #0 + beq _0814E788 + ldr r7, _0814E6D4 + b _0814E788 + .align 2, 0 +_0814E6D0: .4byte 0x085AA9D6 +_0814E6D4: .4byte 0x085ABE2F +_0814E6D8: + ldr r7, _0814E6DC + b _0814E788 + .align 2, 0 +_0814E6DC: .4byte 0x085AA9FA +_0814E6E0: + ldr r7, _0814E6E4 + b _0814E788 + .align 2, 0 +_0814E6E4: .4byte 0x085AAA20 +_0814E6E8: + ldr r0, _0814E708 + ldrh r1, [r0] + movs r0, #0xc0 + lsls r0, r0, #4 + cmp r1, r0 + bne _0814E730 + ldr r0, _0814E70C + ldrb r0, [r0] + cmp r0, #2 + beq _0814E720 + cmp r0, #2 + bgt _0814E710 + cmp r0, #1 + beq _0814E716 + b _0814E788 + .align 2, 0 +_0814E708: .4byte 0x0203886A +_0814E70C: .4byte 0x02022C0C +_0814E710: + cmp r0, #3 + beq _0814E728 + b _0814E788 +_0814E716: + ldr r7, _0814E71C + b _0814E788 + .align 2, 0 +_0814E71C: .4byte 0x085AAD22 +_0814E720: + ldr r7, _0814E724 + b _0814E788 + .align 2, 0 +_0814E724: .4byte 0x085AC0B1 +_0814E728: + ldr r7, _0814E72C + b _0814E788 + .align 2, 0 +_0814E72C: .4byte 0x085AC0C6 +_0814E730: + ldr r0, _0814E744 + ldrb r0, [r0] + cmp r0, #2 + beq _0814E758 + cmp r0, #2 + bgt _0814E748 + cmp r0, #1 + beq _0814E74E + b _0814E788 + .align 2, 0 +_0814E744: .4byte 0x02022C0C +_0814E748: + cmp r0, #3 + beq _0814E760 + b _0814E788 +_0814E74E: + ldr r7, _0814E754 + b _0814E788 + .align 2, 0 +_0814E754: .4byte 0x085AA9C6 +_0814E758: + ldr r7, _0814E75C + b _0814E788 + .align 2, 0 +_0814E75C: .4byte 0x085AA9EA +_0814E760: + ldr r7, _0814E764 + b _0814E788 + .align 2, 0 +_0814E764: .4byte 0x085AAA0E +_0814E768: + movs r0, #0xbe + lsls r0, r0, #1 + cmp r6, r0 + bls _0814E77C + ldr r1, _0814E778 + movs r0, #0xff + strb r0, [r1] + b _0814E78E + .align 2, 0 +_0814E778: .4byte 0x02022AE0 +_0814E77C: + ldr r1, _0814E79C + adds r0, r6, #0 + subs r0, #0xc + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r7, [r0] +_0814E788: + adds r0, r7, #0 + bl TryGetStatusString +_0814E78E: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0814E79C: .4byte 0x085AB3DC + thumb_func_end BufferStringBattle + + thumb_func_start TryGetStatusString +TryGetStatusString: @ 0x0814E7A0 + push {lr} + ldr r1, _0814E7AC + bl BattleStringExpandPlaceholdersToDisplayedString + pop {r1} + bx r1 + .align 2, 0 +_0814E7AC: .4byte 0x02022AE0 + thumb_func_end TryGetStatusString + + thumb_func_start BattleStringExpandPlaceholdersToDisplayedString +BattleStringExpandPlaceholdersToDisplayedString: @ 0x0814E7B0 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0xc + mov sb, r0 + mov r8, r1 + movs r6, #0 + movs r4, #0 + ldr r0, _0814E7D8 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x12 + ands r0, r1 + cmp r0, #0 + beq _0814E7E0 + ldr r0, _0814E7DC + ldrb r7, [r0] + b _0814E7E8 + .align 2, 0 +_0814E7D8: .4byte 0x02022C90 +_0814E7DC: .4byte 0x0203C480 +_0814E7E0: + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 +_0814E7E8: + mov r0, sb + ldrb r1, [r0] + bl sub_0814F63C + thumb_func_end BattleStringExpandPlaceholdersToDisplayedString + + thumb_func_start BattleStringExpandPlaceholders +BattleStringExpandPlaceholders: @ 0x0814E7F0 + cmp r1, #0xfd + beq _0814E7F8 + bl BattlePutTextOnWindow +_0814E7F8: + movs r1, #1 + add sb, r1 + mov r2, sb + ldrb r0, [r2] + cmp r0, #0x33 + bls _0814E808 + bl _0814F5DC +_0814E808: + lsls r0, r0, #2 + ldr r1, _0814E814 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0814E814: .4byte 0x0814E818 +_0814E818: @ jump table + .4byte _0814E8E8 @ case 0 + .4byte _0814E8FC @ case 1 + .4byte _0814E922 @ case 2 + .4byte _0814E92C @ case 3 + .4byte _0814E938 @ case 4 + .4byte _0814E944 @ case 5 + .4byte _0814E978 @ case 6 + .4byte _0814E9AC @ case 7 + .4byte _0814E9E0 @ case 8 + .4byte _0814EA14 @ case 9 + .4byte _0814EA50 @ case 10 + .4byte _0814EA90 @ case 11 + .4byte _0814EAD0 @ case 12 + .4byte _0814EB10 @ case 13 + .4byte _0814EBC8 @ case 14 + .4byte _0814EC50 @ case 15 + .4byte _0814ECEC @ case 16 + .4byte _0814ED88 @ case 17 + .4byte _0814EE24 @ case 18 + .4byte _0814EEC0 @ case 19 + .4byte _0814EF5C @ case 20 + .4byte _0814EF74 @ case 21 + .4byte _0814EFB0 @ case 22 + .4byte _0814F098 @ case 23 + .4byte _0814F0A0 @ case 24 + .4byte _0814F0B0 @ case 25 + .4byte _0814F0C0 @ case 26 + .4byte _0814F0D0 @ case 27 + .4byte _0814F0F0 @ case 28 + .4byte _0814F178 @ case 29 + .4byte _0814F242 @ case 30 + .4byte _0814F254 @ case 31 + .4byte _0814F268 @ case 32 + .4byte _0814F27C @ case 33 + .4byte _0814F2A0 @ case 34 + .4byte _0814F2BC @ case 35 + .4byte _0814F2E4 @ case 36 + .4byte _0814F324 @ case 37 + .4byte _0814F354 @ case 38 + .4byte _0814F3E8 @ case 39 + .4byte _0814F434 @ case 40 + .4byte _0814F43C @ case 41 + .4byte _0814F408 @ case 42 + .4byte _0814F410 @ case 43 + .4byte _0814F460 @ case 44 + .4byte _0814F468 @ case 45 + .4byte _0814F48C @ case 46 + .4byte _0814F4D8 @ case 47 + .4byte _0814F524 @ case 48 + .4byte _0814F564 @ case 49 + .4byte _0814F5B0 @ case 50 + .4byte _0814F5D0 @ case 51 +_0814E8E8: + ldr r1, _0814E8F4 + ldrb r0, [r1] + cmp r0, #0xfd + bne _0814E91C + ldr r4, _0814E8F8 + b _0814E906 + .align 2, 0 +_0814E8F4: .4byte 0x02022C0C +_0814E8F8: .4byte 0x02021C40 +_0814E8FC: + ldr r1, _0814E914 + ldrb r0, [r1] + cmp r0, #0xfd + bne _0814E91C + ldr r4, _0814E918 +_0814E906: + adds r0, r1, #0 + adds r1, r4, #0 + bl ExpandBattleTextBuffPlaceholders + bl _0814F5DC + .align 2, 0 +_0814E914: .4byte 0x02022C1C +_0814E918: .4byte 0x02021C54 +_0814E91C: + adds r4, r1, #0 + bl _0814F5DC +_0814E922: + ldr r4, _0814E928 + bl _0814F5DC + .align 2, 0 +_0814E928: .4byte 0x02021C40 +_0814E92C: + ldr r4, _0814E934 + bl _0814F5DC + .align 2, 0 +_0814E934: .4byte 0x02021C54 +_0814E938: + ldr r4, _0814E940 + bl _0814F5DC + .align 2, 0 +_0814E940: .4byte 0x02021C68 +_0814E944: + movs r0, #0 + bl GetBattlerAtPosition + ldr r1, _0814E970 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0814E974 + adds r0, r0, r1 + movs r1, #2 + mov r2, sp + bl GetMonData + mov r0, sp + bl StringGetEnd10 + bl _0814F5DA + .align 2, 0 +_0814E970: .4byte 0x02023D12 +_0814E974: .4byte 0x02024190 +_0814E978: + movs r0, #1 + bl GetBattlerAtPosition + ldr r1, _0814E9A4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0814E9A8 + adds r0, r0, r1 + movs r1, #2 + mov r2, sp + bl GetMonData + mov r0, sp + bl StringGetEnd10 + bl _0814F5DA + .align 2, 0 +_0814E9A4: .4byte 0x02023D12 +_0814E9A8: .4byte 0x020243E8 +_0814E9AC: + movs r0, #2 + bl GetBattlerAtPosition + ldr r1, _0814E9D8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0814E9DC + adds r0, r0, r1 + movs r1, #2 + mov r2, sp + bl GetMonData + mov r0, sp + bl StringGetEnd10 + bl _0814F5DA + .align 2, 0 +_0814E9D8: .4byte 0x02023D12 +_0814E9DC: .4byte 0x02024190 +_0814E9E0: + movs r0, #3 + bl GetBattlerAtPosition + ldr r1, _0814EA0C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0814EA10 + adds r0, r0, r1 + movs r1, #2 + mov r2, sp + bl GetMonData + mov r0, sp + bl StringGetEnd10 + bl _0814F5DA + .align 2, 0 +_0814EA0C: .4byte 0x02023D12 +_0814EA10: .4byte 0x020243E8 +_0814EA14: + ldr r2, _0814EA44 + ldr r1, _0814EA48 + lsls r0, r7, #3 + subs r0, r0, r7 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0, #0x18] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0814EA4C + adds r0, r0, r1 + movs r1, #2 + mov r2, sp + bl GetMonData + mov r0, sp + bl StringGetEnd10 + bl _0814F5DA + .align 2, 0 +_0814EA44: .4byte 0x02023D12 +_0814EA48: .4byte 0x020226A0 +_0814EA4C: .4byte 0x02024190 +_0814EA50: + ldr r2, _0814EA84 + ldr r1, _0814EA88 + lsls r0, r7, #3 + subs r0, r0, r7 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r1, [r0, #0x18] + movs r0, #1 + eors r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0814EA8C + adds r0, r0, r1 + movs r1, #2 + mov r2, sp + bl GetMonData + mov r0, sp + bl StringGetEnd10 + bl _0814F5DA + .align 2, 0 +_0814EA84: .4byte 0x02023D12 +_0814EA88: .4byte 0x020226A0 +_0814EA8C: .4byte 0x020243E8 +_0814EA90: + ldr r2, _0814EAC4 + ldr r1, _0814EAC8 + lsls r0, r7, #3 + subs r0, r0, r7 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r1, [r0, #0x18] + movs r0, #2 + eors r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0814EACC + adds r0, r0, r1 + movs r1, #2 + mov r2, sp + bl GetMonData + mov r0, sp + bl StringGetEnd10 + bl _0814F5DA + .align 2, 0 +_0814EAC4: .4byte 0x02023D12 +_0814EAC8: .4byte 0x020226A0 +_0814EACC: .4byte 0x02024190 +_0814EAD0: + ldr r2, _0814EB04 + ldr r1, _0814EB08 + lsls r0, r7, #3 + subs r0, r0, r7 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r1, [r0, #0x18] + movs r0, #3 + eors r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0814EB0C + adds r0, r0, r1 + movs r1, #2 + mov r2, sp + bl GetMonData + mov r0, sp + bl StringGetEnd10 + bl _0814F5DA + .align 2, 0 +_0814EB04: .4byte 0x02023D12 +_0814EB08: .4byte 0x020226A0 +_0814EB0C: .4byte 0x020243E8 +_0814EB10: + ldr r4, _0814EB34 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + adds r2, r4, #0 + cmp r0, #0 + beq _0814EB8C + ldr r0, _0814EB38 + ldr r1, [r0] + movs r0, #8 + ands r1, r0 + ldr r4, _0814EB3C + cmp r1, #0 + beq _0814EB4E + ldr r4, _0814EB40 + b _0814EB4E + .align 2, 0 +_0814EB34: .4byte 0x02023EAF +_0814EB38: .4byte 0x02022C90 +_0814EB3C: .4byte 0x085AB009 +_0814EB40: .4byte 0x085AB00F +_0814EB44: + mov r3, r8 + adds r0, r3, r6 + strb r1, [r0] + adds r6, #1 + adds r4, #1 +_0814EB4E: + ldrb r1, [r4] + adds r0, r1, #0 + cmp r0, #0xff + bne _0814EB44 + ldrb r0, [r2] + bl GetBattlerPosition + adds r1, r0, #0 + movs r0, #1 + ands r0, r1 + bl GetBattlerAtPosition + ldr r1, _0814EB84 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0814EB88 + adds r0, r0, r1 + movs r1, #2 + mov r2, sp + bl GetMonData + b _0814EBB6 + .align 2, 0 +_0814EB84: .4byte 0x02023D12 +_0814EB88: .4byte 0x020243E8 +_0814EB8C: + ldrb r0, [r2] + bl GetBattlerPosition + adds r1, r0, #0 + movs r0, #1 + ands r0, r1 + bl GetBattlerAtPosition + ldr r1, _0814EBC0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0814EBC4 + adds r0, r0, r1 + movs r1, #2 + mov r2, sp + bl GetMonData +_0814EBB6: + mov r0, sp + bl StringGetEnd10 + bl _0814F5DA + .align 2, 0 +_0814EBC0: .4byte 0x02023D12 +_0814EBC4: .4byte 0x02024190 +_0814EBC8: + ldr r4, _0814EC04 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0814EC10 + ldrb r0, [r4] + bl GetBattlerPosition + adds r1, r0, #0 + movs r0, #1 + ands r0, r1 + bl GetBattlerAtPosition + ldr r1, _0814EC08 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, #4 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0814EC0C + adds r0, r0, r1 + movs r1, #2 + mov r2, sp + bl GetMonData + b _0814EC3C + .align 2, 0 +_0814EC04: .4byte 0x02023EAF +_0814EC08: .4byte 0x02023D12 +_0814EC0C: .4byte 0x02024190 +_0814EC10: + ldrb r0, [r4] + bl GetBattlerPosition + adds r1, r0, #0 + movs r0, #1 + ands r0, r1 + bl GetBattlerAtPosition + ldr r1, _0814EC48 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, #4 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0814EC4C + adds r0, r0, r1 + movs r1, #2 + mov r2, sp + bl GetMonData +_0814EC3C: + mov r0, sp + bl StringGetEnd10 + bl _0814F5DA + .align 2, 0 +_0814EC48: .4byte 0x02023D12 +_0814EC4C: .4byte 0x020243E8 +_0814EC50: + ldr r5, _0814ECA8 + ldrb r0, [r5] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0814ECC0 + ldr r0, _0814ECAC + ldr r1, [r0] + movs r0, #8 + ands r1, r0 + ldr r4, _0814ECB0 + cmp r1, #0 + beq _0814EC6E + ldr r4, _0814ECB4 +_0814EC6E: + ldrb r1, [r4] + adds r0, r1, #0 + ldr r3, _0814ECB8 + ldr r2, _0814ECBC + mov ip, r2 + adds r2, r5, #0 + cmp r0, #0xff + beq _0814EC90 +_0814EC7E: + mov r5, r8 + adds r0, r5, r6 + strb r1, [r0] + adds r6, #1 + adds r4, #1 + ldrb r1, [r4] + adds r0, r1, #0 + cmp r0, #0xff + bne _0814EC7E +_0814EC90: + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + add r0, ip + movs r1, #2 + mov r2, sp + bl GetMonData + b _0814ECDA + .align 2, 0 +_0814ECA8: .4byte 0x02023EAF +_0814ECAC: .4byte 0x02022C90 +_0814ECB0: .4byte 0x085AB009 +_0814ECB4: .4byte 0x085AB00F +_0814ECB8: .4byte 0x02023D12 +_0814ECBC: .4byte 0x020243E8 +_0814ECC0: + ldr r1, _0814ECE4 + ldrb r0, [r5] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0814ECE8 + adds r0, r0, r1 + movs r1, #2 + mov r2, sp + bl GetMonData +_0814ECDA: + mov r0, sp + bl StringGetEnd10 + bl _0814F5DA + .align 2, 0 +_0814ECE4: .4byte 0x02023D12 +_0814ECE8: .4byte 0x02024190 +_0814ECEC: + ldr r5, _0814ED44 + ldrb r0, [r5] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0814ED5C + ldr r0, _0814ED48 + ldr r1, [r0] + movs r0, #8 + ands r1, r0 + ldr r4, _0814ED4C + cmp r1, #0 + beq _0814ED0A + ldr r4, _0814ED50 +_0814ED0A: + ldrb r1, [r4] + adds r0, r1, #0 + ldr r3, _0814ED54 + ldr r2, _0814ED58 + mov ip, r2 + adds r2, r5, #0 + cmp r0, #0xff + beq _0814ED2C +_0814ED1A: + mov r5, r8 + adds r0, r5, r6 + strb r1, [r0] + adds r6, #1 + adds r4, #1 + ldrb r1, [r4] + adds r0, r1, #0 + cmp r0, #0xff + bne _0814ED1A +_0814ED2C: + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + add r0, ip + movs r1, #2 + mov r2, sp + bl GetMonData + b _0814ED76 + .align 2, 0 +_0814ED44: .4byte 0x02023EB0 +_0814ED48: .4byte 0x02022C90 +_0814ED4C: .4byte 0x085AB009 +_0814ED50: .4byte 0x085AB00F +_0814ED54: .4byte 0x02023D12 +_0814ED58: .4byte 0x020243E8 +_0814ED5C: + ldr r1, _0814ED80 + ldrb r0, [r5] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0814ED84 + adds r0, r0, r1 + movs r1, #2 + mov r2, sp + bl GetMonData +_0814ED76: + mov r0, sp + bl StringGetEnd10 + bl _0814F5DA + .align 2, 0 +_0814ED80: .4byte 0x02023D12 +_0814ED84: .4byte 0x02024190 +_0814ED88: + ldr r5, _0814EDE0 + ldrb r0, [r5] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0814EDF8 + ldr r0, _0814EDE4 + ldr r1, [r0] + movs r0, #8 + ands r1, r0 + ldr r4, _0814EDE8 + cmp r1, #0 + beq _0814EDA6 + ldr r4, _0814EDEC +_0814EDA6: + ldrb r1, [r4] + adds r0, r1, #0 + ldr r3, _0814EDF0 + ldr r2, _0814EDF4 + mov ip, r2 + adds r2, r5, #0 + cmp r0, #0xff + beq _0814EDC8 +_0814EDB6: + mov r5, r8 + adds r0, r5, r6 + strb r1, [r0] + adds r6, #1 + adds r4, #1 + ldrb r1, [r4] + adds r0, r1, #0 + cmp r0, #0xff + bne _0814EDB6 +_0814EDC8: + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + add r0, ip + movs r1, #2 + mov r2, sp + bl GetMonData + b _0814EE12 + .align 2, 0 +_0814EDE0: .4byte 0x02023EB2 +_0814EDE4: .4byte 0x02022C90 +_0814EDE8: .4byte 0x085AB009 +_0814EDEC: .4byte 0x085AB00F +_0814EDF0: .4byte 0x02023D12 +_0814EDF4: .4byte 0x020243E8 +_0814EDF8: + ldr r1, _0814EE1C + ldrb r0, [r5] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0814EE20 + adds r0, r0, r1 + movs r1, #2 + mov r2, sp + bl GetMonData +_0814EE12: + mov r0, sp + bl StringGetEnd10 + bl _0814F5DA + .align 2, 0 +_0814EE1C: .4byte 0x02023D12 +_0814EE20: .4byte 0x02024190 +_0814EE24: + ldr r5, _0814EE7C + ldrb r0, [r5] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0814EE94 + ldr r0, _0814EE80 + ldr r1, [r0] + movs r0, #8 + ands r1, r0 + ldr r4, _0814EE84 + cmp r1, #0 + beq _0814EE42 + ldr r4, _0814EE88 +_0814EE42: + ldrb r1, [r4] + adds r0, r1, #0 + ldr r3, _0814EE8C + ldr r2, _0814EE90 + mov ip, r2 + adds r2, r5, #0 + cmp r0, #0xff + beq _0814EE64 +_0814EE52: + mov r5, r8 + adds r0, r5, r6 + strb r1, [r0] + adds r6, #1 + adds r4, #1 + ldrb r1, [r4] + adds r0, r1, #0 + cmp r0, #0xff + bne _0814EE52 +_0814EE64: + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + add r0, ip + movs r1, #2 + mov r2, sp + bl GetMonData + b _0814EEAE + .align 2, 0 +_0814EE7C: .4byte 0x02023D08 +_0814EE80: .4byte 0x02022C90 +_0814EE84: .4byte 0x085AB009 +_0814EE88: .4byte 0x085AB00F +_0814EE8C: .4byte 0x02023D12 +_0814EE90: .4byte 0x020243E8 +_0814EE94: + ldr r1, _0814EEB8 + ldrb r0, [r5] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0814EEBC + adds r0, r0, r1 + movs r1, #2 + mov r2, sp + bl GetMonData +_0814EEAE: + mov r0, sp + bl StringGetEnd10 + b _0814F5DA + .align 2, 0 +_0814EEB8: .4byte 0x02023D12 +_0814EEBC: .4byte 0x02024190 +_0814EEC0: + ldr r5, _0814EF18 + ldrb r0, [r5, #0x17] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0814EF30 + ldr r0, _0814EF1C + ldr r1, [r0] + movs r0, #8 + ands r1, r0 + ldr r4, _0814EF20 + cmp r1, #0 + beq _0814EEDE + ldr r4, _0814EF24 +_0814EEDE: + ldrb r1, [r4] + adds r0, r1, #0 + ldr r3, _0814EF28 + ldr r2, _0814EF2C + mov ip, r2 + adds r2, r5, #0 + cmp r0, #0xff + beq _0814EF00 +_0814EEEE: + mov r5, r8 + adds r0, r5, r6 + strb r1, [r0] + adds r6, #1 + adds r4, #1 + ldrb r1, [r4] + adds r0, r1, #0 + cmp r0, #0xff + bne _0814EEEE +_0814EF00: + ldrb r0, [r2, #0x17] + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + add r0, ip + movs r1, #2 + mov r2, sp + bl GetMonData + b _0814EF4A + .align 2, 0 +_0814EF18: .4byte 0x02024118 +_0814EF1C: .4byte 0x02022C90 +_0814EF20: .4byte 0x085AB009 +_0814EF24: .4byte 0x085AB00F +_0814EF28: .4byte 0x02023D12 +_0814EF2C: .4byte 0x020243E8 +_0814EF30: + ldr r1, _0814EF54 + ldrb r0, [r5, #0x17] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0814EF58 + adds r0, r0, r1 + movs r1, #2 + mov r2, sp + bl GetMonData +_0814EF4A: + mov r0, sp + bl StringGetEnd10 + b _0814F5DA + .align 2, 0 +_0814EF54: .4byte 0x02023D12 +_0814EF58: .4byte 0x02024190 +_0814EF5C: + ldr r0, _0814EF70 + ldr r2, [r0] + ldrh r1, [r2] + movs r0, #0xb1 + lsls r0, r0, #1 + cmp r1, r0 + bhi _0814EF82 + ldrh r0, [r2] + b _0814EFA2 + .align 2, 0 +_0814EF70: .4byte 0x0203A874 +_0814EF74: + ldr r0, _0814EF94 + ldr r2, [r0] + ldrh r1, [r2, #2] + movs r0, #0xb1 + lsls r0, r0, #1 + cmp r1, r0 + bls _0814EFA0 +_0814EF82: + ldr r0, _0814EF98 + ldr r0, [r0] + adds r0, #0x8e + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + ldr r1, _0814EF9C + adds r4, r0, r1 + b _0814F5DC + .align 2, 0 +_0814EF94: .4byte 0x0203A874 +_0814EF98: .4byte 0x02024140 +_0814EF9C: .4byte 0x085ABC9A +_0814EFA0: + ldrh r0, [r2, #2] +_0814EFA2: + lsls r0, r0, #3 + ldr r1, _0814EFAC + adds r4, r0, r1 + b _0814F5DC + .align 2, 0 +_0814EFAC: .4byte 0x082EACC4 +_0814EFB0: + ldr r0, _0814EFE4 + ldr r1, [r0] + ldr r0, _0814EFE8 + ands r0, r1 + cmp r0, #0 + beq _0814F086 + ldr r2, _0814EFEC + ldrh r0, [r2] + cmp r0, #0xaf + bne _0814F07C + movs r0, #0x40 + ands r1, r0 + cmp r1, #0 + bne _0814F02C + ldr r0, _0814EFF0 + adds r0, #0x25 + ldrb r0, [r0] + cmp r0, #0 + beq _0814EFF8 + ldr r2, _0814EFF4 + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0814F004 + b _0814F074 + .align 2, 0 +_0814EFE4: .4byte 0x02022C90 +_0814EFE8: .4byte 0x02000002 +_0814EFEC: .4byte 0x02023EAC +_0814EFF0: .4byte 0x02024118 +_0814EFF4: .4byte 0x02023EB3 +_0814EFF8: + ldr r2, _0814F020 + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0814F074 +_0814F004: + ldrb r0, [r2] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _0814F024 + adds r1, r1, r0 + mov r0, sp + bl StringCopy + ldr r1, _0814F028 + mov r0, sp + bl StringAppend + b _0814F5DA + .align 2, 0 +_0814F020: .4byte 0x02023EB3 +_0814F024: .4byte 0x020240A8 +_0814F028: .4byte 0x085AB28D +_0814F02C: + ldr r2, _0814F060 + ldr r0, _0814F064 + adds r0, #0x25 + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, _0814F068 + ldrb r2, [r1] + ldrh r0, [r0, #0x18] + cmp r0, r2 + bne _0814F074 + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + ldr r0, _0814F06C + adds r1, r1, r0 + mov r0, sp + bl StringCopy + ldr r1, _0814F070 + mov r0, sp + bl StringAppend + b _0814F5DA + .align 2, 0 +_0814F060: .4byte 0x020226A0 +_0814F064: .4byte 0x02024118 +_0814F068: .4byte 0x02023EB3 +_0814F06C: .4byte 0x020240A8 +_0814F070: .4byte 0x085AB28D +_0814F074: + ldr r4, _0814F078 + b _0814F5DC + .align 2, 0 +_0814F078: .4byte 0x085AB288 +_0814F07C: + ldrh r0, [r2] + mov r1, sp + bl CopyItemName + b _0814F5DA +_0814F086: + ldr r0, _0814F094 + ldrh r0, [r0] + mov r1, sp + bl CopyItemName + b _0814F5DA + .align 2, 0 +_0814F094: .4byte 0x02023EAC +_0814F098: + ldr r0, _0814F09C + b _0814F0D8 + .align 2, 0 +_0814F09C: .4byte 0x02023EAE +_0814F0A0: + ldr r1, _0814F0A8 + ldr r0, _0814F0AC + b _0814F0D4 + .align 2, 0 +_0814F0A8: .4byte 0x0203A870 +_0814F0AC: .4byte 0x02023EAF +_0814F0B0: + ldr r1, _0814F0B8 + ldr r0, _0814F0BC + b _0814F0D4 + .align 2, 0 +_0814F0B8: .4byte 0x0203A870 +_0814F0BC: .4byte 0x02023EB0 +_0814F0C0: + ldr r1, _0814F0C8 + ldr r0, _0814F0CC + ldrb r0, [r0, #0x17] + b _0814F0D6 + .align 2, 0 +_0814F0C8: .4byte 0x0203A870 +_0814F0CC: .4byte 0x02024118 +_0814F0D0: + ldr r1, _0814F0E4 + ldr r0, _0814F0E8 +_0814F0D4: + ldrb r0, [r0] +_0814F0D6: + adds r0, r0, r1 +_0814F0D8: + ldrb r0, [r0] + lsls r0, r0, #3 + ldr r1, _0814F0EC + adds r4, r0, r1 + b _0814F5DC + .align 2, 0 +_0814F0E4: .4byte 0x0203A870 +_0814F0E8: .4byte 0x02023EB2 +_0814F0EC: .4byte 0x082EBDC4 +_0814F0F0: + ldr r0, _0814F104 + ldr r1, [r0] + movs r0, #0x80 + lsls r0, r0, #0x14 + ands r0, r1 + cmp r0, #0 + beq _0814F108 + bl GetSecretBaseTrainerPicIndex + b _0814F5B8 + .align 2, 0 +_0814F104: .4byte 0x02022C90 +_0814F108: + ldr r3, _0814F120 + ldrh r2, [r3] + movs r0, #0xc0 + lsls r0, r0, #4 + cmp r2, r0 + bne _0814F124 + bl sub_080686F0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _0814F5BC + .align 2, 0 +_0814F120: .4byte 0x0203886A +_0814F124: + ldr r0, _0814F130 + cmp r2, r0 + bne _0814F134 + bl sub_081A48F8 + b _0814F5B8 + .align 2, 0 +_0814F130: .4byte 0x000003FE +_0814F134: + ldr r0, _0814F140 + ands r0, r1 + cmp r0, #0 + beq _0814F144 + ldrh r0, [r3] + b _0814F5B4 + .align 2, 0 +_0814F140: .4byte 0x003F0100 +_0814F144: + movs r0, #0x80 + lsls r0, r0, #0x13 + ands r0, r1 + cmp r0, #0 + beq _0814F156 + ldrh r0, [r3] + bl GetTrainerHillOpponentClass + b _0814F5B8 +_0814F156: + movs r0, #0x80 + lsls r0, r0, #4 + ands r1, r0 + cmp r1, #0 + beq _0814F166 + bl GetEreaderTrainerClassId + b _0814F5B8 +_0814F166: + ldr r1, _0814F174 + ldrh r0, [r3] + lsls r0, r0, #5 + adds r0, r0, r1 + ldrb r1, [r0, #1] + movs r0, #0xb + b _0814F5BE + .align 2, 0 +_0814F174: .4byte 0x082E383C +_0814F178: + ldr r0, _0814F1AC + ldr r1, [r0] + movs r0, #0x80 + lsls r0, r0, #0x14 + ands r0, r1 + cmp r0, #0 + beq _0814F1B4 + movs r3, #0 + ldr r0, _0814F1B0 + ldr r2, [r0] +_0814F18C: + mov r1, sp + adds r0, r1, r3 + ldr r1, [r2] + adds r1, #2 + adds r1, r1, r3 + ldrb r1, [r1] + strb r1, [r0] + adds r3, #1 + cmp r3, #6 + ble _0814F18C + mov r2, sp + adds r1, r2, r3 + movs r0, #0xff + strb r0, [r1] + b _0814F5DA + .align 2, 0 +_0814F1AC: .4byte 0x02022C90 +_0814F1B0: .4byte 0x0202414C +_0814F1B4: + ldr r3, _0814F1EC + ldrh r2, [r3] + movs r0, #0xc0 + lsls r0, r0, #4 + cmp r2, r0 + bne _0814F1F4 + movs r3, #0 + ldr r2, _0814F1F0 + movs r1, #1 + adds r0, r7, #0 + eors r0, r1 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r2, #8 + adds r2, r1, r2 +_0814F1D4: + mov r5, sp + adds r1, r5, r3 + ldrb r0, [r2] + strb r0, [r1] + adds r2, #1 + adds r3, #1 + cmp r3, #6 + ble _0814F1D4 + adds r1, r5, r3 + movs r0, #0xff + strb r0, [r1] + b _0814F5DA + .align 2, 0 +_0814F1EC: .4byte 0x0203886A +_0814F1F0: .4byte 0x020226A0 +_0814F1F4: + ldr r0, _0814F204 + cmp r2, r0 + bne _0814F208 + mov r0, sp + bl CopyFrontierBrainTrainerName + b _0814F5DA + .align 2, 0 +_0814F204: .4byte 0x000003FE +_0814F208: + ldr r0, _0814F214 + ands r0, r1 + cmp r0, #0 + beq _0814F218 + ldrh r1, [r3] + b _0814F5D4 + .align 2, 0 +_0814F214: .4byte 0x003F0100 +_0814F218: + movs r0, #0x80 + lsls r0, r0, #0x13 + ands r0, r1 + cmp r0, #0 + beq _0814F22C + ldrh r1, [r3] + mov r0, sp + bl GetTrainerHillTrainerName + b _0814F5DA +_0814F22C: + movs r0, #0x80 + lsls r0, r0, #4 + ands r1, r0 + cmp r1, #0 + beq _0814F23E + mov r0, sp + bl GetEreaderTrainerName + b _0814F5DA +_0814F23E: + ldrh r0, [r3] + b _0814F514 +_0814F242: + lsls r0, r7, #3 + subs r0, r0, r7 + lsls r0, r0, #2 + ldr r1, _0814F250 + adds r4, r0, r1 + b _0814F5DC + .align 2, 0 +_0814F250: .4byte 0x020226A8 +_0814F254: + ldr r4, _0814F264 + lsls r0, r7, #3 + subs r0, r0, r7 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r0, #0x18] + movs r0, #2 + b _0814F28A + .align 2, 0 +_0814F264: .4byte 0x020226A0 +_0814F268: + ldr r4, _0814F278 + lsls r0, r7, #3 + subs r0, r0, r7 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r0, #0x18] + movs r0, #1 + b _0814F28A + .align 2, 0 +_0814F278: .4byte 0x020226A0 +_0814F27C: + ldr r4, _0814F29C + lsls r0, r7, #3 + subs r0, r0, r7 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r0, #0x18] + movs r0, #3 +_0814F28A: + eors r0, r1 + bl GetBattlerMultiplayerId + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r4, #8 + adds r4, r1, r4 + b _0814F5DC + .align 2, 0 +_0814F29C: .4byte 0x020226A0 +_0814F2A0: + ldr r0, _0814F2B4 + ldrb r0, [r0, #0x17] + bl GetBattlerMultiplayerId + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _0814F2B8 + adds r4, r1, r0 + b _0814F5DC + .align 2, 0 +_0814F2B4: .4byte 0x02024118 +_0814F2B8: .4byte 0x020226A8 +_0814F2BC: + ldr r0, _0814F2D0 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + beq _0814F2D8 + ldr r4, _0814F2D4 + b _0814F5DC + .align 2, 0 +_0814F2D0: .4byte 0x02022C90 +_0814F2D4: .4byte 0x020226A8 +_0814F2D8: + ldr r0, _0814F2E0 + ldr r4, [r0] + b _0814F5DC + .align 2, 0 +_0814F2E0: .4byte 0x03005AF0 +_0814F2E4: + ldr r0, _0814F2F8 + ldr r1, [r0] + ldr r0, _0814F2FC + ands r0, r1 + cmp r0, #0 + beq _0814F304 + ldr r0, _0814F300 + ldrh r1, [r0] + movs r0, #2 + b _0814F576 + .align 2, 0 +_0814F2F8: .4byte 0x02022C90 +_0814F2FC: .4byte 0x003F0100 +_0814F300: .4byte 0x0203886A +_0814F304: + movs r0, #0x80 + lsls r0, r0, #0x13 + ands r1, r0 + cmp r1, #0 + beq _0814F31C + ldr r0, _0814F318 + ldrh r1, [r0] + movs r0, #4 + b _0814F5A0 + .align 2, 0 +_0814F318: .4byte 0x0203886A +_0814F31C: + bl GetTrainerALoseText + adds r4, r0, #0 + b _0814F5DC +_0814F324: + ldr r0, _0814F334 + ldr r1, [r0] + ldr r0, _0814F338 + ands r0, r1 + cmp r0, #0 + beq _0814F340 + ldr r0, _0814F33C + b _0814F572 + .align 2, 0 +_0814F334: .4byte 0x02022C90 +_0814F338: .4byte 0x003F0100 +_0814F33C: .4byte 0x0203886A +_0814F340: + movs r0, #0x80 + lsls r0, r0, #0x13 + ands r1, r0 + cmp r1, #0 + bne _0814F34C + b _0814F5DC +_0814F34C: + ldr r0, _0814F350 + b _0814F59C + .align 2, 0 +_0814F350: .4byte 0x0203886A +_0814F354: + ldr r0, _0814F3A8 + ldrb r0, [r0, #0x17] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0814F3C0 + ldr r0, _0814F3AC + ldr r1, [r0] + movs r0, #8 + ands r1, r0 + ldr r4, _0814F3B0 + cmp r1, #0 + beq _0814F372 + ldr r4, _0814F3B4 +_0814F372: + ldrb r1, [r4] + adds r0, r1, #0 + ldr r2, _0814F3B8 + mov ip, r2 + ldr r2, _0814F3BC + cmp r0, #0xff + beq _0814F392 +_0814F380: + mov r3, r8 + adds r0, r3, r6 + strb r1, [r0] + adds r6, #1 + adds r4, #1 + ldrb r1, [r4] + adds r0, r1, #0 + cmp r0, #0xff + bne _0814F380 +_0814F392: + ldr r0, [r2] + adds r0, #0x52 + ldrb r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + add r0, ip + movs r1, #2 + mov r2, sp + bl GetMonData + b _0814F3D8 + .align 2, 0 +_0814F3A8: .4byte 0x02024118 +_0814F3AC: .4byte 0x02022C90 +_0814F3B0: .4byte 0x085AB009 +_0814F3B4: .4byte 0x085AB00F +_0814F3B8: .4byte 0x020243E8 +_0814F3BC: .4byte 0x02024140 +_0814F3C0: + ldr r0, _0814F3E0 + ldr r0, [r0] + adds r0, #0x52 + ldrb r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0814F3E4 + adds r0, r0, r1 + movs r1, #2 + mov r2, sp + bl GetMonData +_0814F3D8: + mov r0, sp + bl StringGetEnd10 + b _0814F5DA + .align 2, 0 +_0814F3E0: .4byte 0x02024140 +_0814F3E4: .4byte 0x02024190 +_0814F3E8: + ldr r0, _0814F3FC + bl FlagGet + lsls r0, r0, #0x18 + ldr r4, _0814F400 + cmp r0, #0 + bne _0814F3F8 + b _0814F5DC +_0814F3F8: + ldr r4, _0814F404 + b _0814F5DC + .align 2, 0 +_0814F3FC: .4byte 0x000008AB +_0814F400: .4byte 0x085AB225 +_0814F404: .4byte 0x085AB22A +_0814F408: + ldr r0, _0814F40C + b _0814F412 + .align 2, 0 +_0814F40C: .4byte 0x02023EAF +_0814F410: + ldr r0, _0814F428 +_0814F412: + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + ldr r4, _0814F42C + cmp r0, #0 + beq _0814F422 + b _0814F5DC +_0814F422: + ldr r4, _0814F430 + b _0814F5DC + .align 2, 0 +_0814F428: .4byte 0x02023EB0 +_0814F42C: .4byte 0x085AB020 +_0814F430: .4byte 0x085AB025 +_0814F434: + ldr r0, _0814F438 + b _0814F43E + .align 2, 0 +_0814F438: .4byte 0x02023EAF +_0814F43C: + ldr r0, _0814F454 +_0814F43E: + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + ldr r4, _0814F458 + cmp r0, #0 + beq _0814F44E + b _0814F5DC +_0814F44E: + ldr r4, _0814F45C + b _0814F5DC + .align 2, 0 +_0814F454: .4byte 0x02023EB0 +_0814F458: .4byte 0x085AB016 +_0814F45C: .4byte 0x085AB01B +_0814F460: + ldr r0, _0814F464 + b _0814F46A + .align 2, 0 +_0814F464: .4byte 0x02023EAF +_0814F468: + ldr r0, _0814F480 +_0814F46A: + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + ldr r4, _0814F484 + cmp r0, #0 + beq _0814F47A + b _0814F5DC +_0814F47A: + ldr r4, _0814F488 + b _0814F5DC + .align 2, 0 +_0814F480: .4byte 0x02023EB0 +_0814F484: .4byte 0x085AB02A +_0814F488: .4byte 0x085AB02F +_0814F48C: + ldr r0, _0814F49C + ldr r1, [r0] + ldr r0, _0814F4A0 + ands r0, r1 + cmp r0, #0 + beq _0814F4A8 + ldr r0, _0814F4A4 + b _0814F5B2 + .align 2, 0 +_0814F49C: .4byte 0x02022C90 +_0814F4A0: .4byte 0x003F0100 +_0814F4A4: .4byte 0x0203886C +_0814F4A8: + movs r0, #0x80 + lsls r0, r0, #0x13 + ands r1, r0 + cmp r1, #0 + beq _0814F4C0 + ldr r0, _0814F4BC + ldrh r0, [r0] + bl GetTrainerHillOpponentClass + b _0814F5B8 + .align 2, 0 +_0814F4BC: .4byte 0x0203886C +_0814F4C0: + ldr r1, _0814F4D0 + ldr r0, _0814F4D4 + ldrh r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r1 + ldrb r1, [r0, #1] + movs r0, #0xb + b _0814F5BE + .align 2, 0 +_0814F4D0: .4byte 0x082E383C +_0814F4D4: .4byte 0x0203886C +_0814F4D8: + ldr r0, _0814F4E8 + ldr r1, [r0] + ldr r0, _0814F4EC + ands r0, r1 + cmp r0, #0 + beq _0814F4F4 + ldr r0, _0814F4F0 + b _0814F5D2 + .align 2, 0 +_0814F4E8: .4byte 0x02022C90 +_0814F4EC: .4byte 0x003F0100 +_0814F4F0: .4byte 0x0203886C +_0814F4F4: + movs r0, #0x80 + lsls r0, r0, #0x13 + ands r1, r0 + cmp r1, #0 + beq _0814F510 + ldr r0, _0814F50C + ldrh r1, [r0] + mov r0, sp + bl GetTrainerHillTrainerName + b _0814F5DA + .align 2, 0 +_0814F50C: .4byte 0x0203886C +_0814F510: + ldr r0, _0814F51C + ldrh r0, [r0] +_0814F514: + lsls r0, r0, #5 + ldr r1, _0814F520 + adds r4, r0, r1 + b _0814F5DC + .align 2, 0 +_0814F51C: .4byte 0x0203886C +_0814F520: .4byte 0x082E3840 +_0814F524: + ldr r0, _0814F538 + ldr r1, [r0] + ldr r0, _0814F53C + ands r0, r1 + cmp r0, #0 + beq _0814F544 + ldr r0, _0814F540 + ldrh r1, [r0] + movs r0, #2 + b _0814F576 + .align 2, 0 +_0814F538: .4byte 0x02022C90 +_0814F53C: .4byte 0x003F0100 +_0814F540: .4byte 0x0203886C +_0814F544: + movs r0, #0x80 + lsls r0, r0, #0x13 + ands r1, r0 + cmp r1, #0 + beq _0814F55C + ldr r0, _0814F558 + ldrh r1, [r0] + movs r0, #4 + b _0814F5A0 + .align 2, 0 +_0814F558: .4byte 0x0203886C +_0814F55C: + bl GetTrainerBLoseText + adds r4, r0, #0 + b _0814F5DC +_0814F564: + ldr r0, _0814F580 + ldr r1, [r0] + ldr r0, _0814F584 + ands r0, r1 + cmp r0, #0 + beq _0814F590 + ldr r0, _0814F588 +_0814F572: + ldrh r1, [r0] + movs r0, #1 +_0814F576: + bl CopyFrontierTrainerText + ldr r4, _0814F58C + b _0814F5DC + .align 2, 0 +_0814F580: .4byte 0x02022C90 +_0814F584: .4byte 0x003F0100 +_0814F588: .4byte 0x0203886C +_0814F58C: .4byte 0x02021C7C +_0814F590: + movs r0, #0x80 + lsls r0, r0, #0x13 + ands r1, r0 + cmp r1, #0 + beq _0814F5DC + ldr r0, _0814F5A8 +_0814F59C: + ldrh r1, [r0] + movs r0, #3 +_0814F5A0: + bl CopyTrainerHillTrainerText + ldr r4, _0814F5AC + b _0814F5DC + .align 2, 0 +_0814F5A8: .4byte 0x0203886C +_0814F5AC: .4byte 0x02021C7C +_0814F5B0: + ldr r0, _0814F5C8 +_0814F5B2: + ldrh r0, [r0] +_0814F5B4: + bl GetFrontierOpponentClass +_0814F5B8: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_0814F5BC: + movs r1, #0xb +_0814F5BE: + muls r1, r0, r1 + ldr r0, _0814F5CC + adds r4, r1, r0 + b _0814F5DC + .align 2, 0 +_0814F5C8: .4byte 0x0203886E +_0814F5CC: .4byte 0x082E3564 +_0814F5D0: + ldr r0, _0814F628 +_0814F5D2: + ldrh r1, [r0] +_0814F5D4: + mov r0, sp + bl GetFrontierTrainerName +_0814F5DA: + mov r4, sp +_0814F5DC: + ldrb r1, [r4] + adds r0, r1, #0 + mov r5, sb + ldrb r2, [r5] + mov r3, sb + adds r3, #1 + cmp r0, #0xff + beq _0814F5FE +_0814F5EC: + mov r5, r8 + adds r0, r5, r6 + strb r1, [r0] + adds r6, #1 + adds r4, #1 + ldrb r1, [r4] + adds r0, r1, #0 + cmp r0, #0xff + bne _0814F5EC +_0814F5FE: + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x24 + beq _0814F612 + cmp r0, #0x30 + beq _0814F612 + cmp r0, #0x25 + beq _0814F612 + cmp r0, #0x31 + bne _0814F638 +_0814F612: + mov r0, r8 + adds r1, r0, r6 + movs r0, #0xfc + strb r0, [r1] + adds r6, #1 + mov r2, r8 + adds r1, r2, r6 + movs r0, #9 + strb r0, [r1] + adds r6, #1 + b _0814F638 + .align 2, 0 +_0814F628: .4byte 0x0203886E + thumb_func_end BattleStringExpandPlaceholders + + thumb_func_start BattlePutTextOnWindow +BattlePutTextOnWindow: @ 0x0814F62C + mov r3, r8 + adds r0, r3, r6 + strb r1, [r0] + adds r6, #1 + mov r3, sb + adds r3, #1 +_0814F638: + mov sb, r3 + ldrb r1, [r3] + thumb_func_end BattlePutTextOnWindow + + thumb_func_start sub_0814F63C +sub_0814F63C: @ 0x0814F63C + adds r0, r1, #0 + cmp r0, #0xff + beq _0814F646 + bl BattleStringExpandPlaceholders +_0814F646: + mov r5, r8 + adds r1, r5, r6 + mov r2, sb + ldrb r0, [r2] + strb r0, [r1] + adds r6, #1 + adds r0, r6, #0 + add sp, #0xc + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0814F63C + + thumb_func_start ExpandBattleTextBuffPlaceholders +ExpandBattleTextBuffPlaceholders: @ 0x0814F664 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + adds r7, r0, #0 + adds r6, r1, #0 + movs r5, #1 + movs r0, #0 + mov r8, r0 + movs r0, #0xff + strb r0, [r6] + ldrb r0, [r7, #1] + cmp r0, #0xff + bne _0814F682 + b _0814F902 +_0814F682: + adds r0, r7, r5 + ldrb r1, [r0] + adds r4, r0, #0 + cmp r1, #0xa + bls _0814F68E + b _0814F8F8 +_0814F68E: + lsls r0, r1, #2 + ldr r1, _0814F698 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0814F698: .4byte 0x0814F69C +_0814F69C: @ jump table + .4byte _0814F6C8 @ case 0 + .4byte _0814F6E4 @ case 1 + .4byte _0814F738 @ case 2 + .4byte _0814F750 @ case 3 + .4byte _0814F760 @ case 4 + .4byte _0814F7D8 @ case 5 + .4byte _0814F7EC @ case 6 + .4byte _0814F7FE @ case 7 + .4byte _0814F844 @ case 8 + .4byte _0814F858 @ case 9 + .4byte _0814F870 @ case 10 +_0814F6C8: + adds r0, r5, r7 + ldrb r1, [r0, #1] + ldrb r0, [r0, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldr r0, _0814F6E0 + subs r1, #0xc + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + b _0814F8D6 + .align 2, 0 +_0814F6E0: .4byte 0x085AB3DC +_0814F6E4: + ldrb r0, [r4, #1] + cmp r0, #2 + beq _0814F700 + cmp r0, #2 + bgt _0814F6F4 + cmp r0, #1 + beq _0814F6FA + b _0814F722 +_0814F6F4: + cmp r0, #4 + beq _0814F708 + b _0814F722 +_0814F6FA: + ldrb r4, [r4, #3] + mov r8, r4 + b _0814F722 +_0814F700: + ldrb r1, [r4, #3] + ldrb r0, [r4, #4] + lsls r0, r0, #8 + b _0814F71E +_0814F708: + ldrb r0, [r4, #3] + mov r8, r0 + ldrb r0, [r4, #4] + lsls r0, r0, #8 + mov r1, r8 + orrs r1, r0 + ldrb r0, [r4, #5] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r4, #6] + lsls r0, r0, #0x18 +_0814F71E: + orrs r1, r0 + mov r8, r1 +_0814F722: + adds r4, r5, r7 + ldrb r3, [r4, #2] + adds r0, r6, #0 + mov r1, r8 + movs r2, #0 + bl ConvertIntToDecimalStringN + adds r0, r5, #3 + ldrb r4, [r4, #1] + adds r5, r0, r4 + b _0814F8F8 +_0814F738: + adds r0, r5, r7 + ldrb r1, [r0, #1] + ldrb r0, [r0, #2] + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #3 + ldr r0, _0814F74C + adds r1, r1, r0 + b _0814F8D6 + .align 2, 0 +_0814F74C: .4byte 0x082EACC4 +_0814F750: + adds r0, r5, r7 + ldrb r0, [r0, #1] + lsls r1, r0, #2 + adds r1, r1, r0 + ldr r0, _0814F75C + b _0814F860 + .align 2, 0 +_0814F75C: .4byte 0x082EBC88 +_0814F760: + ldrb r0, [r4, #1] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0814F784 + ldrb r1, [r4, #2] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0814F780 + adds r0, r0, r1 + movs r1, #2 + mov r2, sp + bl GetMonData + b _0814F7C0 + .align 2, 0 +_0814F780: .4byte 0x02024190 +_0814F784: + ldr r0, _0814F79C + ldr r0, [r0] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _0814F7A4 + ldr r1, _0814F7A0 + adds r0, r6, #0 + bl StringAppend + b _0814F7AC + .align 2, 0 +_0814F79C: .4byte 0x02022C90 +_0814F7A0: .4byte 0x085AB00F +_0814F7A4: + ldr r1, _0814F7D0 + adds r0, r6, #0 + bl StringAppend +_0814F7AC: + adds r0, r5, r7 + ldrb r1, [r0, #2] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0814F7D4 + adds r0, r0, r1 + movs r1, #2 + mov r2, sp + bl GetMonData +_0814F7C0: + mov r0, sp + bl StringGetEnd10 + adds r0, r6, #0 + mov r1, sp + bl StringAppend + b _0814F8F6 + .align 2, 0 +_0814F7D0: .4byte 0x085AB009 +_0814F7D4: .4byte 0x020243E8 +_0814F7D8: + ldr r1, _0814F7E8 + adds r0, r5, r7 + ldrb r0, [r0, #1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + b _0814F862 + .align 2, 0 +_0814F7E8: .4byte 0x085AB08C +_0814F7EC: + adds r0, r5, r7 + ldrb r1, [r0, #1] + ldrb r0, [r0, #2] + lsls r0, r0, #8 + orrs r1, r0 + adds r0, r6, #0 + bl GetSpeciesName + b _0814F8F6 +_0814F7FE: + adds r4, r5, r7 + ldrb r0, [r4, #1] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0814F824 + ldrb r1, [r4, #2] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0814F820 + adds r0, r0, r1 + movs r1, #2 + adds r2, r6, #0 + bl GetMonData + b _0814F836 + .align 2, 0 +_0814F820: .4byte 0x02024190 +_0814F824: + ldrb r1, [r4, #2] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0814F840 + adds r0, r0, r1 + movs r1, #2 + adds r2, r6, #0 + bl GetMonData +_0814F836: + adds r0, r6, #0 + bl StringGetEnd10 + b _0814F8F6 + .align 2, 0 +_0814F840: .4byte 0x020243E8 +_0814F844: + ldr r1, _0814F854 + adds r0, r5, r7 + ldrb r0, [r0, #1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + b _0814F862 + .align 2, 0 +_0814F854: .4byte 0x085AB0D0 +_0814F858: + adds r0, r5, r7 + ldrb r1, [r0, #1] + lsls r1, r1, #3 + ldr r0, _0814F86C +_0814F860: + adds r1, r1, r0 +_0814F862: + adds r0, r6, #0 + bl StringAppend + adds r5, #2 + b _0814F8F8 + .align 2, 0 +_0814F86C: .4byte 0x082EBDC4 +_0814F870: + adds r0, r5, r7 + ldrb r2, [r0, #1] + ldrb r0, [r0, #2] + lsls r0, r0, #8 + orrs r2, r0 + ldr r0, _0814F8B8 + ldr r0, [r0] + ldr r1, _0814F8BC + ands r0, r1 + cmp r0, #0 + beq _0814F8EE + cmp r2, #0xaf + bne _0814F8E4 + ldr r2, _0814F8C0 + ldr r0, _0814F8C4 + adds r0, #0x25 + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, _0814F8C8 + ldrb r2, [r1] + ldrh r0, [r0, #0x18] + cmp r0, r2 + bne _0814F8D4 + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + ldr r0, _0814F8CC + adds r1, r1, r0 + adds r0, r6, #0 + bl StringCopy + ldr r1, _0814F8D0 + b _0814F8D6 + .align 2, 0 +_0814F8B8: .4byte 0x02022C90 +_0814F8BC: .4byte 0x02000002 +_0814F8C0: .4byte 0x020226A0 +_0814F8C4: .4byte 0x02024118 +_0814F8C8: .4byte 0x02023EB3 +_0814F8CC: .4byte 0x020240A8 +_0814F8D0: .4byte 0x085AB28D +_0814F8D4: + ldr r1, _0814F8E0 +_0814F8D6: + adds r0, r6, #0 + bl StringAppend + b _0814F8F6 + .align 2, 0 +_0814F8E0: .4byte 0x085AB288 +_0814F8E4: + adds r0, r2, #0 + adds r1, r6, #0 + bl CopyItemName + b _0814F8F6 +_0814F8EE: + adds r0, r2, #0 + adds r1, r6, #0 + bl CopyItemName +_0814F8F6: + adds r5, #3 +_0814F8F8: + adds r0, r7, r5 + ldrb r0, [r0] + cmp r0, #0xff + beq _0814F902 + b _0814F682 +_0814F902: + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ExpandBattleTextBuffPlaceholders + + thumb_func_start ChooseMoveUsedParticle +ChooseMoveUsedParticle: @ 0x0814F910 + push {r4, r5, lr} + adds r4, r0, #0 + movs r2, #0 + ldr r5, _0814F944 + ldr r3, _0814F948 +_0814F91A: + cmp r2, #4 + beq _0814F930 + ldrh r1, [r3] + cmp r1, #0 + bne _0814F926 + adds r2, #1 +_0814F926: + ldr r0, [r5] + adds r3, #2 + ldrh r0, [r0] + cmp r1, r0 + bne _0814F91A +_0814F930: + cmp r2, #0 + blt _0814F95C + cmp r2, #2 + bgt _0814F950 + ldr r1, _0814F94C + adds r0, r4, #0 + bl StringCopy + b _0814F95C + .align 2, 0 +_0814F944: .4byte 0x0203A874 +_0814F948: .4byte 0x085AC146 +_0814F94C: .4byte 0x085ABC96 +_0814F950: + cmp r2, #4 + bgt _0814F95C + ldr r1, _0814F964 + adds r0, r4, #0 + bl StringCopy +_0814F95C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0814F964: .4byte 0x085ABC98 + thumb_func_end ChooseMoveUsedParticle + + thumb_func_start ChooseTypeOfMoveUsedString +ChooseTypeOfMoveUsedString: @ 0x0814F968 + push {r4, r5, lr} + adds r3, r0, #0 + movs r4, #0 + b _0814F972 +_0814F970: + adds r3, #1 +_0814F972: + ldrb r0, [r3] + cmp r0, #0xff + bne _0814F970 + ldr r1, _0814F9A8 + ldr r5, _0814F9AC + movs r0, #0 + lsls r0, r0, #1 + adds r2, r0, r1 +_0814F982: + cmp r4, #4 + beq _0814F99C + ldrh r1, [r2] + cmp r1, #0 + bne _0814F98E + adds r4, #1 +_0814F98E: + ldr r0, [r5] + adds r2, #2 + ldrh r0, [r0] + cmp r1, r0 + bne _0814F982 + cmp r4, #4 + bhi _0814F9F8 +_0814F99C: + lsls r0, r4, #2 + ldr r1, _0814F9B0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0814F9A8: .4byte 0x085AC146 +_0814F9AC: .4byte 0x0203A874 +_0814F9B0: .4byte 0x0814F9B4 +_0814F9B4: @ jump table + .4byte _0814F9C8 @ case 0 + .4byte _0814F9D0 @ case 1 + .4byte _0814F9D8 @ case 2 + .4byte _0814F9E0 @ case 3 + .4byte _0814F9F0 @ case 4 +_0814F9C8: + ldr r1, _0814F9CC + b _0814F9E2 + .align 2, 0 +_0814F9CC: .4byte 0x085AB03C +_0814F9D0: + ldr r1, _0814F9D4 + b _0814F9E2 + .align 2, 0 +_0814F9D4: .4byte 0x085AB044 +_0814F9D8: + ldr r1, _0814F9DC + b _0814F9E2 + .align 2, 0 +_0814F9DC: .4byte 0x085AB048 +_0814F9E0: + ldr r1, _0814F9EC +_0814F9E2: + adds r0, r3, #0 + bl StringCopy + b _0814F9F8 + .align 2, 0 +_0814F9EC: .4byte 0x085AB04E +_0814F9F0: + ldr r1, _0814FA00 + adds r0, r3, #0 + bl StringCopy +_0814F9F8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0814FA00: .4byte 0x085AB055 + thumb_func_end ChooseTypeOfMoveUsedString + + thumb_func_start sub_0814FA04 +sub_0814FA04: @ 0x0814FA04 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x10 + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + ldr r1, _0814FA30 + ldr r0, _0814FA34 + adds r0, #0x24 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + mov r8, r0 + movs r0, #0x80 + ands r0, r7 + cmp r0, #0 + beq _0814FA38 + movs r0, #0x7f + ands r7, r0 + b _0814FA56 + .align 2, 0 +_0814FA30: .4byte 0x085AC468 +_0814FA34: .4byte 0x02024118 +_0814FA38: + lsls r0, r7, #1 + adds r0, r0, r7 + lsls r0, r0, #2 + add r0, r8 + ldrb r1, [r0] + adds r0, r7, #0 + bl FillWindowPixelBuffer + adds r0, r7, #0 + bl PutWindowTilemap + adds r0, r7, #0 + movs r1, #3 + bl CopyWindowToVram +_0814FA56: + str r4, [sp] + mov r0, sp + strb r7, [r0, #4] + mov r1, sp + lsls r6, r7, #1 + adds r3, r6, r7 + lsls r3, r3, #2 + add r3, r8 + ldrb r0, [r3, #1] + strb r0, [r1, #5] + ldrb r0, [r3, #2] + strb r0, [r1, #6] + ldrb r0, [r3, #3] + strb r0, [r1, #7] + mov r0, sp + ldrb r0, [r0, #6] + strb r0, [r1, #8] + mov r0, sp + ldrb r0, [r0, #7] + strb r0, [r1, #9] + ldrb r0, [r3, #4] + strb r0, [r1, #0xa] + ldrb r0, [r3, #5] + strb r0, [r1, #0xb] + mov r4, sp + ldrb r2, [r4, #0xc] + movs r1, #0x10 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4, #0xc] + mov r2, sp + ldrb r0, [r3, #7] + lsls r0, r0, #4 + movs r5, #0xf + strb r0, [r2, #0xc] + ldrb r2, [r3, #8] + adds r0, r5, #0 + ands r0, r2 + ldrb r2, [r4, #0xd] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0xd] + mov r2, sp + ldrb r0, [r3, #9] + lsls r0, r0, #4 + ands r1, r5 + orrs r1, r0 + strb r1, [r2, #0xd] + cmp r7, #0x16 + bne _0814FACC + ldr r0, _0814FAC8 + ldrb r2, [r0] + movs r1, #3 + rsbs r1, r1, #0 + ands r1, r2 + b _0814FAD4 + .align 2, 0 +_0814FAC8: .4byte 0x030030B4 +_0814FACC: + ldr r0, _0814FAF0 + ldrb r1, [r0] + movs r2, #2 + orrs r1, r2 +_0814FAD4: + strb r1, [r0] + adds r3, r0, #0 + ldr r0, _0814FAF4 + ldr r1, [r0] + ldr r2, _0814FAF8 + ands r1, r2 + adds r2, r0, #0 + cmp r1, #0 + beq _0814FAFC + ldrb r0, [r3] + movs r1, #4 + orrs r0, r1 + b _0814FB04 + .align 2, 0 +_0814FAF0: .4byte 0x030030B4 +_0814FAF4: .4byte 0x02022C90 +_0814FAF8: .4byte 0x01000002 +_0814FAFC: + ldrb r1, [r3] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 +_0814FB04: + strb r0, [r3] + cmp r7, #0 + beq _0814FB0E + cmp r7, #0x16 + bne _0814FB58 +_0814FB0E: + ldr r1, [r2] + ldr r0, _0814FB1C + ands r0, r1 + cmp r0, #0 + beq _0814FB20 + movs r6, #1 + b _0814FB48 + .align 2, 0 +_0814FB1C: .4byte 0x02000002 +_0814FB20: + movs r0, #0x80 + lsls r0, r0, #0x11 + ands r1, r0 + cmp r1, #0 + beq _0814FB40 + ldr r4, _0814FB3C + bl GetBattleSceneInRecordedBattle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r4 + ldrb r6, [r0] + b _0814FB48 + .align 2, 0 +_0814FB3C: .4byte 0x085AC470 +_0814FB40: + bl GetPlayerTextSpeedDelay + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_0814FB48: + ldr r0, _0814FB54 + ldrb r1, [r0] + movs r2, #1 + orrs r1, r2 + strb r1, [r0] + b _0814FB6A + .align 2, 0 +_0814FB54: .4byte 0x030030B4 +_0814FB58: + adds r0, r6, r7 + lsls r0, r0, #2 + add r0, r8 + ldrb r6, [r0, #6] + ldrb r1, [r3] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3] +_0814FB6A: + mov r0, sp + adds r1, r6, #0 + movs r2, #0 + bl AddTextPrinter + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_0814FA04 + + thumb_func_start SetPpNumbersPaletteInMoveSelection +SetPpNumbersPaletteInMoveSelection: @ 0x0814FB80 + push {r4, r5, lr} + ldr r0, _0814FBE0 + ldrb r2, [r0] + lsls r1, r2, #9 + ldr r0, _0814FBE4 + adds r1, r1, r0 + ldr r0, _0814FBE8 + adds r2, r2, r0 + ldrb r2, [r2] + adds r0, r1, #0 + adds r0, #8 + adds r0, r0, r2 + ldrb r0, [r0] + adds r1, #0xc + adds r1, r1, r2 + ldrb r1, [r1] + bl GetCurrentPpToMaxPpState + lsls r0, r0, #0x18 + ldr r5, _0814FBEC + lsrs r0, r0, #0x16 + ldr r2, _0814FBF0 + adds r1, r0, r2 + ldrh r1, [r1] + adds r2, r5, #0 + adds r2, #0xb8 + strh r1, [r2] + ldr r1, _0814FBF4 + adds r0, r0, r1 + ldrh r0, [r0] + adds r5, #0xb6 + strh r0, [r5] + ldr r4, _0814FBF8 + adds r0, r2, #0 + adds r1, r4, #0 + movs r2, #1 + bl CpuSet + subs r4, #2 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #1 + bl CpuSet + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0814FBE0: .4byte 0x02023D08 +_0814FBE4: .4byte 0x02022D0C +_0814FBE8: .4byte 0x02024154 +_0814FBEC: .4byte 0x020373B4 +_0814FBF0: .4byte 0x08D85604 +_0814FBF4: .4byte 0x08D85606 +_0814FBF8: .4byte 0x0203786C + thumb_func_end SetPpNumbersPaletteInMoveSelection + + thumb_func_start GetCurrentPpToMaxPpState +GetCurrentPpToMaxPpState: @ 0x0814FBFC + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r3, r2, #0 + lsls r1, r1, #0x18 + lsrs r0, r1, #0x18 + cmp r0, r2 + beq _0814FC44 + cmp r0, #2 + bhi _0814FC16 + cmp r2, #1 + bhi _0814FC44 + b _0814FC1E +_0814FC16: + cmp r0, #7 + bhi _0814FC28 + cmp r2, #2 + bhi _0814FC44 +_0814FC1E: + movs r0, #2 + subs r0, r0, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0814FC46 +_0814FC28: + cmp r2, #0 + bne _0814FC30 + movs r0, #2 + b _0814FC46 +_0814FC30: + lsrs r0, r1, #0x1a + cmp r2, r0 + bhi _0814FC3A + movs r0, #1 + b _0814FC46 +_0814FC3A: + lsrs r0, r1, #0x19 + cmp r3, r0 + bhi _0814FC44 + movs r0, #0 + b _0814FC46 +_0814FC44: + movs r0, #3 +_0814FC46: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetCurrentPpToMaxPpState + diff --git a/asm/battle_palace.s b/asm/battle_palace.s new file mode 100644 index 0000000..d1daffb --- /dev/null +++ b/asm/battle_palace.s @@ -0,0 +1,600 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start CallBattlePalaceFunction +CallBattlePalaceFunction: @ 0x08195560 + push {lr} + ldr r1, _08195578 + ldr r0, _0819557C + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + thumb_func_end CallBattlePalaceFunction + + thumb_func_start sub_08195574 +sub_08195574: @ 0x08195574 + bx r0 + .align 2, 0 +_08195578: .4byte 0x085D68CC +_0819557C: .4byte 0x02037280 + thumb_func_end sub_08195574 + + thumb_func_start sub_08195580 +sub_08195580: @ 0x08195580 + push {r4, r5, r6, r7, lr} + ldr r4, _08195614 + ldr r0, [r4] + ldr r1, _08195618 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r5, r0, #0x1e + ldr r0, _0819561C + bl VarGet + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + ldr r0, [r4] + ldr r2, _08195620 + adds r0, r0, r2 + movs r6, #0 + strb r6, [r0] + ldr r1, [r4] + adds r2, #0xa + adds r0, r1, r2 + strh r6, [r0] + ldr r0, _08195618 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r4] + ldr r2, _08195618 + adds r1, r1, r2 + ldrb r2, [r1] + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r4, [r4] + ldr r0, _08195624 + adds r3, r4, r0 + ldr r2, _08195628 + lsls r1, r5, #2 + lsls r0, r7, #3 + adds r1, r1, r0 + adds r1, r1, r2 + ldr r0, [r3] + ldr r1, [r1] + ands r0, r1 + cmp r0, #0 + bne _081955F2 + lsls r0, r5, #1 + lsls r1, r7, #2 + adds r0, r0, r1 + ldr r2, _0819562C + adds r1, r4, r2 + adds r1, r1, r0 + strh r6, [r1] +_081955F2: + ldr r0, _08195630 + ldr r0, [r0] + movs r1, #4 + ldrsb r1, [r0, r1] + movs r2, #5 + ldrsb r2, [r0, r2] + movs r3, #1 + rsbs r3, r3, #0 + movs r0, #0 + bl SetDynamicWarp + ldr r0, _08195634 + strh r6, [r0] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08195614: .4byte 0x03005AF0 +_08195618: .4byte 0x00000CA9 +_0819561C: .4byte 0x000040CE +_08195620: .4byte 0x00000CA8 +_08195624: .4byte 0x00000CDC +_08195628: .4byte 0x085D6914 +_0819562C: .4byte 0x00000DC8 +_08195630: .4byte 0x03005AEC +_08195634: .4byte 0x0203886A + thumb_func_end sub_08195580 + + thumb_func_start sub_08195638 +sub_08195638: @ 0x08195638 + push {r4, r5, r6, r7, lr} + ldr r5, _08195664 + ldr r0, [r5] + ldr r1, _08195668 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r7, r0, #0x1e + ldr r0, _0819566C + bl VarGet + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r0, _08195670 + ldrh r0, [r0] + cmp r0, #1 + beq _08195690 + cmp r0, #1 + bgt _08195674 + cmp r0, #0 + beq _0819567A + b _081956D0 + .align 2, 0 +_08195664: .4byte 0x03005AF0 +_08195668: .4byte 0x00000CA9 +_0819566C: .4byte 0x000040CE +_08195670: .4byte 0x02037282 +_08195674: + cmp r0, #2 + beq _081956B0 + b _081956D0 +_0819567A: + ldr r0, _08195688 + ldr r1, [r5] + ldr r2, _0819568C + adds r1, r1, r2 + ldrh r1, [r1] + strh r1, [r0] + b _081956D0 + .align 2, 0 +_08195688: .4byte 0x02037290 +_0819568C: .4byte 0x00000DC6 +_08195690: + ldr r3, _081956A8 + ldr r0, [r5] + lsls r1, r7, #1 + lsls r2, r6, #2 + adds r1, r1, r2 + ldr r2, _081956AC + adds r0, r0, r2 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r3] + b _081956D0 + .align 2, 0 +_081956A8: .4byte 0x02037290 +_081956AC: .4byte 0x00000DC8 +_081956B0: + ldr r4, _081956D8 + ldr r2, [r5] + ldr r0, _081956DC + adds r2, r2, r0 + ldr r3, _081956E0 + lsls r0, r7, #2 + lsls r1, r6, #3 + adds r0, r0, r1 + adds r0, r0, r3 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + strh r0, [r4] +_081956D0: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081956D8: .4byte 0x02037290 +_081956DC: .4byte 0x00000CDC +_081956E0: .4byte 0x085D6914 + thumb_func_end sub_08195638 + + thumb_func_start sub_081956E4 +sub_081956E4: @ 0x081956E4 + push {r4, r5, r6, lr} + ldr r6, _08195710 + ldr r0, [r6] + ldr r1, _08195714 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r5, r0, #0x1e + ldr r0, _08195718 + bl VarGet + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, _0819571C + ldrh r0, [r0] + cmp r0, #1 + beq _0819573C + cmp r0, #1 + bgt _08195720 + cmp r0, #0 + beq _08195726 + b _081957A0 + .align 2, 0 +_08195710: .4byte 0x03005AF0 +_08195714: .4byte 0x00000CA9 +_08195718: .4byte 0x000040CE +_0819571C: .4byte 0x02037282 +_08195720: + cmp r0, #2 + beq _0819575C + b _081957A0 +_08195726: + ldr r0, [r6] + ldr r1, _08195734 + ldrh r1, [r1] + ldr r2, _08195738 + adds r0, r0, r2 + strh r1, [r0] + b _081957A0 + .align 2, 0 +_08195734: .4byte 0x02037284 +_08195738: .4byte 0x00000DC6 +_0819573C: + ldr r2, [r6] + lsls r0, r5, #1 + lsls r1, r4, #2 + adds r0, r0, r1 + ldr r1, _08195754 + adds r2, r2, r1 + adds r2, r2, r0 + ldr r0, _08195758 + ldrh r0, [r0] + strh r0, [r2] + b _081957A0 + .align 2, 0 +_08195754: .4byte 0x00000DC8 +_08195758: .4byte 0x02037284 +_0819575C: + ldr r0, _0819577C + ldrh r0, [r0] + cmp r0, #0 + beq _08195788 + ldr r2, [r6] + ldr r0, _08195780 + adds r2, r2, r0 + ldr r3, _08195784 + lsls r1, r5, #2 + lsls r0, r4, #3 + adds r1, r1, r0 + adds r1, r1, r3 + ldr r0, [r2] + ldr r1, [r1] + orrs r0, r1 + b _0819579E + .align 2, 0 +_0819577C: .4byte 0x02037284 +_08195780: .4byte 0x00000CDC +_08195784: .4byte 0x085D6914 +_08195788: + ldr r2, [r6] + ldr r1, _081957A8 + adds r2, r2, r1 + ldr r3, _081957AC + lsls r1, r5, #2 + lsls r0, r4, #3 + adds r1, r1, r0 + adds r1, r1, r3 + ldr r0, [r2] + ldr r1, [r1] + ands r0, r1 +_0819579E: + str r0, [r2] +_081957A0: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081957A8: .4byte 0x00000CDC +_081957AC: .4byte 0x085D6924 + thumb_func_end sub_081956E4 + + thumb_func_start sub_081957B0 +sub_081957B0: @ 0x081957B0 + push {r4, lr} + ldr r0, _081957EC + bl VarGet + lsls r0, r0, #0x10 + ldr r1, _081957F0 + ldr r2, [r1] + ldr r3, _081957F4 + adds r1, r2, r3 + ldrb r1, [r1] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1d + lsrs r0, r0, #0xe + adds r1, r1, r0 + ldr r0, _081957F8 + adds r2, r2, r0 + adds r2, r2, r1 + ldrh r0, [r2] + cmp r0, #0x31 + bhi _08195800 + ldr r4, _081957FC + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + strh r0, [r4] + b _08195816 + .align 2, 0 +_081957EC: .4byte 0x000040CE +_081957F0: .4byte 0x03005AF0 +_081957F4: .4byte 0x00000CA9 +_081957F8: .4byte 0x00000DC8 +_081957FC: .4byte 0x02037290 +_08195800: + cmp r0, #0x62 + bhi _08195810 + ldr r1, _0819580C + movs r0, #3 + b _08195814 + .align 2, 0 +_0819580C: .4byte 0x02037290 +_08195810: + ldr r1, _0819581C + movs r0, #4 +_08195814: + strh r0, [r1] +_08195816: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0819581C: .4byte 0x02037290 + thumb_func_end sub_081957B0 + + thumb_func_start sub_08195820 +sub_08195820: @ 0x08195820 + push {r4, lr} + ldr r4, _0819584C + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xff + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r0, #2 + adds r1, r1, r0 + lsrs r1, r1, #6 + strh r1, [r4] + ldrh r0, [r4] + movs r1, #0 + bl SetBattleFacilityTrainerGfxId + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0819584C: .4byte 0x0203886A + thumb_func_end sub_08195820 + + thumb_func_start sub_08195850 +sub_08195850: @ 0x08195850 + push {lr} + ldr r3, _08195870 + ldrh r1, [r3] + ldr r0, _08195874 + cmp r1, r0 + bhi _0819586C + ldr r2, _08195878 + movs r0, #0x34 + muls r1, r0, r1 + ldr r0, [r2] + adds r0, r0, r1 + adds r0, #0xc + bl FrontierSpeechToString +_0819586C: + pop {r0} + bx r0 + .align 2, 0 +_08195870: .4byte 0x0203886A +_08195874: .4byte 0x0000012B +_08195878: .4byte 0x0203B954 + thumb_func_end sub_08195850 + + thumb_func_start sub_0819587C +sub_0819587C: @ 0x0819587C + push {r4, r5, r6, r7, lr} + ldr r4, _081958D0 + ldr r0, [r4] + ldr r1, _081958D4 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r7, r0, #0x1e + ldr r0, _081958D8 + bl VarGet + lsls r0, r0, #0x18 + ldr r4, [r4] + lsls r1, r7, #1 + lsrs r5, r0, #0x16 + adds r1, r1, r5 + ldr r3, _081958DC + adds r6, r4, r3 + adds r3, r6, r1 + ldrh r2, [r3] + ldr r0, _081958E0 + cmp r2, r0 + bhi _081958CA + adds r2, #1 + strh r2, [r3] + movs r3, #0xdd + lsls r3, r3, #4 + adds r0, r4, r3 + adds r1, r0, r1 + adds r0, r5, #0 + ldrh r3, [r1] + cmp r7, r3 + bls _081958C0 + adds r0, #2 +_081958C0: + adds r0, r6, r0 + ldrh r0, [r0] + cmp r0, #0 + beq _081958CA + strh r2, [r1] +_081958CA: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081958D0: .4byte 0x03005AF0 +_081958D4: .4byte 0x00000CA9 +_081958D8: .4byte 0x000040CE +_081958DC: .4byte 0x00000DC8 +_081958E0: .4byte 0x0000270E + thumb_func_end sub_0819587C + + thumb_func_start sub_081958E4 +sub_081958E4: @ 0x081958E4 + push {r4, lr} + ldr r4, _08195918 + ldr r0, [r4] + ldr r1, _0819591C + ldrh r1, [r1] + ldr r2, _08195920 + adds r0, r0, r2 + strb r1, [r0] + movs r0, #0x80 + lsls r0, r0, #7 + movs r1, #0 + bl VarSet + ldr r1, [r4] + ldr r0, _08195924 + adds r1, r1, r0 + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + bl sub_081A482C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08195918: .4byte 0x03005AF0 +_0819591C: .4byte 0x02037282 +_08195920: .4byte 0x00000CA8 +_08195924: .4byte 0x00000CA9 + thumb_func_end sub_081958E4 + + thumb_func_start sub_08195928 +sub_08195928: @ 0x08195928 + push {r4, r5, lr} + ldr r0, _08195970 + bl VarGet + lsls r0, r0, #0x10 + ldr r4, _08195974 + ldr r2, [r4] + ldr r3, _08195978 + adds r1, r2, r3 + ldrb r1, [r1] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1d + lsrs r0, r0, #0xe + adds r1, r1, r0 + ldr r0, _0819597C + adds r2, r2, r0 + adds r2, r2, r1 + ldrh r0, [r2] + cmp r0, #0x29 + bls _08195988 + bl Random + ldr r4, [r4] + ldr r5, _08195980 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #9 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0xf + adds r0, r0, r5 + ldrh r0, [r0] + ldr r1, _08195984 + adds r4, r4, r1 + b _081959A6 + .align 2, 0 +_08195970: .4byte 0x000040CE +_08195974: .4byte 0x03005AF0 +_08195978: .4byte 0x00000CA9 +_0819597C: .4byte 0x00000DC8 +_08195980: .4byte 0x085D6900 +_08195984: .4byte 0x00000DC6 +_08195988: + bl Random + ldr r4, [r4] + ldr r5, _081959B0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #6 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0xf + adds r0, r0, r5 + ldrh r0, [r0] + ldr r3, _081959B4 + adds r4, r4, r3 +_081959A6: + strh r0, [r4] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081959B0: .4byte 0x085D68F4 +_081959B4: .4byte 0x00000DC6 + thumb_func_end sub_08195928 + + thumb_func_start sub_081959B8 +sub_081959B8: @ 0x081959B8 + push {r4, r5, lr} + ldr r4, _081959F0 + ldr r0, [r4] + ldr r1, _081959F4 + adds r0, r0, r1 + ldrh r0, [r0] + movs r1, #1 + bl AddBagItem + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #1 + bne _08195A00 + ldr r0, [r4] + ldr r1, _081959F4 + adds r0, r0, r1 + ldrh r0, [r0] + ldr r1, _081959F8 + bl CopyItemName + ldr r0, [r4] + ldr r1, _081959F4 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0] + ldr r0, _081959FC + strh r5, [r0] + b _08195A06 + .align 2, 0 +_081959F0: .4byte 0x03005AF0 +_081959F4: .4byte 0x00000DC6 +_081959F8: .4byte 0x02021C40 +_081959FC: .4byte 0x02037290 +_08195A00: + ldr r1, _08195A0C + movs r0, #0 + strh r0, [r1] +_08195A06: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08195A0C: .4byte 0x02037290 + thumb_func_end sub_081959B8 + diff --git a/asm/battle_pike.s b/asm/battle_pike.s new file mode 100644 index 0000000..0488d9e --- /dev/null +++ b/asm/battle_pike.s @@ -0,0 +1,3298 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start CallBattlePikeFunction +CallBattlePikeFunction: @ 0x081A6DD4 + push {lr} + ldr r1, _081A6DEC + ldr r0, _081A6DF0 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + thumb_func_end CallBattlePikeFunction + + thumb_func_start nullsub_76 +nullsub_76: @ 0x081A6DE8 + bx r0 + .align 2, 0 +_081A6DEC: .4byte 0x085DDE30 +_081A6DF0: .4byte 0x02037280 + thumb_func_end nullsub_76 + + thumb_func_start SetRoomType +SetRoomType: @ 0x081A6DF4 + push {lr} + bl GetNextRoomType + ldr r1, _081A6E04 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_081A6E04: .4byte 0x03001288 + thumb_func_end SetRoomType + + thumb_func_start SetupRoomEventObjects +SetupRoomEventObjects: @ 0x081A6E08 + push {r4, r5, r6, r7, lr} + movs r4, #1 + movs r6, #0 + movs r5, #0 + movs r7, #0 + ldr r0, _081A6E24 + ldrb r0, [r0] + cmp r0, #8 + bhi _081A6EB2 + lsls r0, r0, #2 + ldr r1, _081A6E28 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081A6E24: .4byte 0x03001288 +_081A6E28: .4byte 0x081A6E2C +_081A6E2C: @ jump table + .4byte _081A6E50 @ case 0 + .4byte _081A6E5A @ case 1 + .4byte _081A6E5E @ case 2 + .4byte _081A6E68 @ case 3 + .4byte _081A6E7C @ case 4 + .4byte _081A6E56 @ case 5 + .4byte _081A6E80 @ case 6 + .4byte _081A6E88 @ case 7 + .4byte _081A6E8E @ case 8 +_081A6E50: + movs r0, #0 + bl PrepareOneTrainer +_081A6E56: + movs r4, #0 + b _081A6E9A +_081A6E5A: + movs r5, #0x1c + b _081A6E9A +_081A6E5E: + bl GetNPCRoomGraphicsId + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + b _081A6E9A +_081A6E68: + movs r5, #0x30 + ldr r0, _081A6E78 + ldrb r0, [r0] + movs r7, #0xe1 + cmp r0, #1 + bne _081A6E98 + movs r7, #0xe2 + b _081A6E98 + .align 2, 0 +_081A6E78: .4byte 0x03001289 +_081A6E7C: + movs r5, #0x30 + b _081A6E9A +_081A6E80: + movs r0, #1 + bl PrepareOneTrainer + b _081A6E94 +_081A6E88: + bl PrepareTwoTrainers + b _081A6E56 +_081A6E8E: + movs r0, #5 + bl SetFrontierBrainEventObjGfx +_081A6E94: + movs r7, #0x1c + movs r4, #0 +_081A6E98: + movs r6, #1 +_081A6E9A: + cmp r4, #1 + bne _081A6EA6 + ldr r0, _081A6EB8 + adds r1, r5, #0 + bl VarSet +_081A6EA6: + cmp r6, #1 + bne _081A6EB2 + ldr r0, _081A6EBC + adds r1, r7, #0 + bl VarSet +_081A6EB2: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A6EB8: .4byte 0x00004010 +_081A6EBC: .4byte 0x00004011 + thumb_func_end SetupRoomEventObjects + + thumb_func_start GetBattlePikeData +GetBattlePikeData: @ 0x081A6EC0 + push {lr} + ldr r1, _081A6EE4 + ldr r0, [r1] + ldr r2, _081A6EE8 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r2, r0, #0x1e + ldr r0, _081A6EEC + ldrh r0, [r0] + adds r3, r1, #0 + cmp r0, #4 + bhi _081A6FBA + lsls r0, r0, #2 + ldr r1, _081A6EF0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081A6EE4: .4byte 0x03005AF0 +_081A6EE8: .4byte 0x00000CA9 +_081A6EEC: .4byte 0x02037282 +_081A6EF0: .4byte 0x081A6EF4 +_081A6EF4: @ jump table + .4byte _081A6F08 @ case 0 + .4byte _081A6F20 @ case 1 + .4byte _081A6F44 @ case 2 + .4byte _081A6F68 @ case 3 + .4byte _081A6F8C @ case 4 +_081A6F08: + ldr r0, _081A6F18 + ldr r1, [r3] + ldr r3, _081A6F1C + adds r1, r1, r3 + ldrh r1, [r1] + strh r1, [r0] + b _081A6FBA + .align 2, 0 +_081A6F18: .4byte 0x02037290 +_081A6F1C: .4byte 0x00000E02 +_081A6F20: + ldr r2, _081A6F38 + ldr r1, [r3] + ldr r3, _081A6F3C + adds r0, r1, r3 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1d + ldr r3, _081A6F40 + adds r1, r1, r3 + adds r1, r1, r0 + ldrh r0, [r1] + b _081A6FB8 + .align 2, 0 +_081A6F38: .4byte 0x02037290 +_081A6F3C: .4byte 0x00000CA9 +_081A6F40: .4byte 0x00000E04 +_081A6F44: + ldr r2, _081A6F5C + ldr r1, [r3] + ldr r3, _081A6F60 + adds r0, r1, r3 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1d + ldr r3, _081A6F64 + adds r1, r1, r3 + adds r1, r1, r0 + ldrh r0, [r1] + b _081A6FB8 + .align 2, 0 +_081A6F5C: .4byte 0x02037290 +_081A6F60: .4byte 0x00000CA9 +_081A6F64: .4byte 0x00000E08 +_081A6F68: + ldr r2, _081A6F80 + ldr r1, [r3] + ldr r3, _081A6F84 + adds r0, r1, r3 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1d + ldr r3, _081A6F88 + adds r1, r1, r3 + adds r1, r1, r0 + ldrh r0, [r1] + b _081A6FB8 + .align 2, 0 +_081A6F80: .4byte 0x02037290 +_081A6F84: .4byte 0x00000CA9 +_081A6F88: .4byte 0x00000E0C +_081A6F8C: + cmp r2, #0 + beq _081A6FA8 + ldr r2, _081A6FA0 + ldr r0, [r3] + ldr r1, _081A6FA4 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #4 + b _081A6FB6 + .align 2, 0 +_081A6FA0: .4byte 0x02037290 +_081A6FA4: .4byte 0x00000CDC +_081A6FA8: + ldr r2, _081A6FC0 + ldr r0, [r3] + ldr r3, _081A6FC4 + adds r0, r0, r3 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #3 +_081A6FB6: + ands r0, r1 +_081A6FB8: + strh r0, [r2] +_081A6FBA: + pop {r0} + bx r0 + .align 2, 0 +_081A6FC0: .4byte 0x02037290 +_081A6FC4: .4byte 0x00000CDC + thumb_func_end GetBattlePikeData + + thumb_func_start SetBattlePikeData +SetBattlePikeData: @ 0x081A6FC8 + push {r4, r5, lr} + ldr r1, _081A6FF0 + ldr r0, [r1] + ldr r2, _081A6FF4 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r3, r0, #0x1e + ldr r0, _081A6FF8 + ldrh r0, [r0] + adds r2, r1, #0 + cmp r0, #4 + bls _081A6FE4 + b _081A712A +_081A6FE4: + lsls r0, r0, #2 + ldr r1, _081A6FFC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081A6FF0: .4byte 0x03005AF0 +_081A6FF4: .4byte 0x00000CA9 +_081A6FF8: .4byte 0x02037282 +_081A6FFC: .4byte 0x081A7000 +_081A7000: @ jump table + .4byte _081A7014 @ case 0 + .4byte _081A702C @ case 1 + .4byte _081A7058 @ case 2 + .4byte _081A7094 @ case 3 + .4byte _081A70C4 @ case 4 +_081A7014: + ldr r0, [r2] + ldr r1, _081A7024 + ldrh r1, [r1] + ldr r5, _081A7028 + adds r0, r0, r5 + strh r1, [r0] + b _081A712A + .align 2, 0 +_081A7024: .4byte 0x02037284 +_081A7028: .4byte 0x00000E02 +_081A702C: + ldr r0, _081A7048 + ldrh r3, [r0] + ldr r0, _081A704C + cmp r3, r0 + bls _081A7038 + b _081A712A +_081A7038: + ldr r0, [r2] + ldr r2, _081A7050 + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1d + ldr r5, _081A7054 + b _081A70AC + .align 2, 0 +_081A7048: .4byte 0x02037284 +_081A704C: .4byte 0x0000270F +_081A7050: .4byte 0x00000CA9 +_081A7054: .4byte 0x00000E04 +_081A7058: + ldr r0, _081A7084 + ldrh r4, [r0] + adds r3, r4, #0 + ldr r0, _081A7088 + cmp r3, r0 + bhi _081A712A + ldr r1, [r2] + ldr r2, _081A708C + adds r0, r1, r2 + ldrb r0, [r0] + lsls r2, r0, #0x1e + lsrs r0, r2, #0x1d + ldr r5, _081A7090 + adds r1, r1, r5 + adds r0, r1, r0 + ldrh r0, [r0] + cmp r0, r3 + bhs _081A712A + lsrs r0, r2, #0x1d + adds r0, r1, r0 + strh r4, [r0] + b _081A712A + .align 2, 0 +_081A7084: .4byte 0x02037284 +_081A7088: .4byte 0x0000270F +_081A708C: .4byte 0x00000CA9 +_081A7090: .4byte 0x00000E08 +_081A7094: + ldr r0, _081A70B4 + ldrh r3, [r0] + ldr r0, _081A70B8 + cmp r3, r0 + bhi _081A712A + ldr r0, [r2] + ldr r2, _081A70BC + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1d + ldr r5, _081A70C0 +_081A70AC: + adds r0, r0, r5 + adds r0, r0, r1 + strh r3, [r0] + b _081A712A + .align 2, 0 +_081A70B4: .4byte 0x02037284 +_081A70B8: .4byte 0x0000270F +_081A70BC: .4byte 0x00000CA9 +_081A70C0: .4byte 0x00000E0C +_081A70C4: + cmp r3, #0 + beq _081A70FC + ldr r0, _081A70E0 + ldrh r0, [r0] + cmp r0, #0 + beq _081A70E8 + ldr r0, [r2] + ldr r1, _081A70E4 + adds r0, r0, r1 + ldr r1, [r0] + movs r2, #0x80 + lsls r2, r2, #4 + orrs r1, r2 + b _081A7128 + .align 2, 0 +_081A70E0: .4byte 0x02037284 +_081A70E4: .4byte 0x00000CDC +_081A70E8: + ldr r0, [r2] + ldr r2, _081A70F4 + adds r0, r0, r2 + ldr r1, [r0] + ldr r2, _081A70F8 + b _081A7126 + .align 2, 0 +_081A70F4: .4byte 0x00000CDC +_081A70F8: .4byte 0xFFFFF7FF +_081A70FC: + ldr r0, _081A7114 + ldrh r0, [r0] + cmp r0, #0 + beq _081A711C + ldr r0, [r2] + ldr r5, _081A7118 + adds r0, r0, r5 + ldr r1, [r0] + movs r2, #0x80 + lsls r2, r2, #3 + orrs r1, r2 + b _081A7128 + .align 2, 0 +_081A7114: .4byte 0x02037284 +_081A7118: .4byte 0x00000CDC +_081A711C: + ldr r0, [r2] + ldr r1, _081A7130 + adds r0, r0, r1 + ldr r1, [r0] + ldr r2, _081A7134 +_081A7126: + ands r1, r2 +_081A7128: + str r1, [r0] +_081A712A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081A7130: .4byte 0x00000CDC +_081A7134: .4byte 0xFFFFFBFF + thumb_func_end SetBattlePikeData + + thumb_func_start GetInFinalRoom +GetInFinalRoom: @ 0x081A7138 + push {lr} + ldr r0, _081A7150 + ldr r0, [r0] + ldr r1, _081A7154 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0xe + bls _081A715C + ldr r1, _081A7158 + movs r0, #1 + b _081A7160 + .align 2, 0 +_081A7150: .4byte 0x03005AF0 +_081A7154: .4byte 0x00000CB2 +_081A7158: .4byte 0x02037290 +_081A715C: + ldr r1, _081A7168 + movs r0, #0 +_081A7160: + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_081A7168: .4byte 0x02037290 + thumb_func_end GetInFinalRoom + + thumb_func_start GetRoomType +GetRoomType: @ 0x081A716C + ldr r0, _081A7178 + ldr r1, _081A717C + ldrb r1, [r1] + strh r1, [r0] + bx lr + .align 2, 0 +_081A7178: .4byte 0x02037290 +_081A717C: .4byte 0x03001288 + thumb_func_end GetRoomType + + thumb_func_start sub_081A7180 +sub_081A7180: @ 0x081A7180 + ldr r1, _081A7188 + movs r0, #1 + strb r0, [r1] + bx lr + .align 2, 0 +_081A7188: .4byte 0x0300128A + thumb_func_end sub_081A7180 + + thumb_func_start sub_081A718C +sub_081A718C: @ 0x081A718C + ldr r1, _081A7194 + movs r0, #0 + strb r0, [r1] + bx lr + .align 2, 0 +_081A7194: .4byte 0x0300128A + thumb_func_end sub_081A718C + + thumb_func_start sub_081A7198 +sub_081A7198: @ 0x081A7198 + push {r4, lr} + ldr r4, _081A71D0 + ldr r0, [r4] + ldr r1, _081A71D4 + ldrh r1, [r1] + ldr r2, _081A71D8 + adds r0, r0, r2 + strb r1, [r0] + movs r0, #0x80 + lsls r0, r0, #7 + movs r1, #0 + bl VarSet + ldr r1, [r4] + ldr r0, _081A71DC + adds r1, r1, r0 + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + bl save_serialize_map + movs r0, #1 + bl TrySavingData + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081A71D0: .4byte 0x03005AF0 +_081A71D4: .4byte 0x02037282 +_081A71D8: .4byte 0x00000CA8 +_081A71DC: .4byte 0x00000CA9 + thumb_func_end sub_081A7198 + + thumb_func_start sub_081A71E0 +sub_081A71E0: @ 0x081A71E0 + bx lr + .align 2, 0 + thumb_func_end sub_081A71E0 + + thumb_func_start nullsub_124 +nullsub_124: @ 0x081A71E4 + bx lr + .align 2, 0 + thumb_func_end nullsub_124 + + thumb_func_start GetRoomInflictedStatus +GetRoomInflictedStatus: @ 0x081A71E8 + push {lr} + ldr r0, _081A7200 + ldr r0, [r0] + cmp r0, #0x20 + beq _081A720E + cmp r0, #0x20 + bhi _081A7204 + cmp r0, #7 + beq _081A723C + cmp r0, #0x10 + beq _081A7218 + b _081A7242 + .align 2, 0 +_081A7200: .4byte 0x0300128C +_081A7204: + cmp r0, #0x40 + beq _081A7230 + cmp r0, #0x80 + beq _081A7224 + b _081A7242 +_081A720E: + ldr r1, _081A7214 + movs r0, #0 + b _081A7240 + .align 2, 0 +_081A7214: .4byte 0x02037290 +_081A7218: + ldr r1, _081A7220 + movs r0, #1 + b _081A7240 + .align 2, 0 +_081A7220: .4byte 0x02037290 +_081A7224: + ldr r1, _081A722C + movs r0, #2 + b _081A7240 + .align 2, 0 +_081A722C: .4byte 0x02037290 +_081A7230: + ldr r1, _081A7238 + movs r0, #3 + b _081A7240 + .align 2, 0 +_081A7238: .4byte 0x02037290 +_081A723C: + ldr r1, _081A7248 + movs r0, #4 +_081A7240: + strh r0, [r1] +_081A7242: + pop {r0} + bx r0 + .align 2, 0 +_081A7248: .4byte 0x02037290 + thumb_func_end GetRoomInflictedStatus + + thumb_func_start GetRoomInflictedStatusMon +GetRoomInflictedStatusMon: @ 0x081A724C + ldr r0, _081A7258 + ldr r1, _081A725C + ldrb r1, [r1] + strh r1, [r0] + bx lr + .align 2, 0 +_081A7258: .4byte 0x02037290 +_081A725C: .4byte 0x03001289 + thumb_func_end GetRoomInflictedStatusMon + + thumb_func_start HealOneOrTwoMons +HealOneOrTwoMons: @ 0x081A7260 + push {r4, lr} + bl Random + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + movs r0, #1 + ands r4, r0 + adds r4, #1 + adds r0, r4, #0 + bl TryHealMons + ldr r0, _081A7284 + strh r4, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081A7284: .4byte 0x02037290 + thumb_func_end HealOneOrTwoMons + + thumb_func_start BufferNPCMessage +BufferNPCMessage: @ 0x081A7288 + push {lr} + ldr r0, _081A72A8 + ldr r0, [r0] + ldr r1, _081A72AC + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #4 + bhi _081A72B8 + ldr r1, _081A72B0 + ldr r0, _081A72B4 + ldrb r0, [r0] + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r1, [r0, #2] + b _081A72E0 + .align 2, 0 +_081A72A8: .4byte 0x03005AF0 +_081A72AC: .4byte 0x00000CB2 +_081A72B0: .4byte 0x085DDB54 +_081A72B4: .4byte 0x03001290 +_081A72B8: + cmp r0, #0xa + bhi _081A72D4 + ldr r1, _081A72CC + ldr r0, _081A72D0 + ldrb r0, [r0] + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r1, [r0, #3] + b _081A72E0 + .align 2, 0 +_081A72CC: .4byte 0x085DDB54 +_081A72D0: .4byte 0x03001290 +_081A72D4: + ldr r1, _081A72F4 + ldr r0, _081A72F8 + ldrb r0, [r0] + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r1, [r0, #4] +_081A72E0: + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _081A72FC + adds r0, r0, r1 + bl FrontierSpeechToString + pop {r0} + bx r0 + .align 2, 0 +_081A72F4: .4byte 0x085DDB54 +_081A72F8: .4byte 0x03001290 +_081A72FC: .4byte 0x085DDC1C + thumb_func_end BufferNPCMessage + + thumb_func_start StatusInflictionScreenFade +StatusInflictionScreenFade: @ 0x081A7300 + push {lr} + ldr r0, _081A7310 + movs r1, #2 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_081A7310: .4byte 0x081A7C65 + thumb_func_end StatusInflictionScreenFade + + thumb_func_start HealMon +HealMon: @ 0x081A7314 + push {r4, r5, r6, lr} + sub sp, #4 + adds r5, r0, #0 + movs r4, #0 + movs r1, #0 +_081A731E: + mov r2, sp + adds r0, r2, r4 + strb r1, [r0] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _081A731E + adds r0, r5, #0 + movs r1, #0x3a + bl GetMonData + lsls r2, r0, #0x10 + mov r1, sp + strb r0, [r1] + mov r0, sp + lsrs r2, r2, #0x18 + strb r2, [r0, #1] + adds r0, r5, #0 + movs r1, #0x39 + mov r2, sp + bl SetMonData + adds r0, r5, #0 + movs r1, #0x15 + bl GetMonData + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r4, #0 +_081A735A: + adds r1, r4, #0 + adds r1, #0xd + adds r0, r5, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r6, #0 + adds r2, r4, #0 + bl CalculatePPWithBonus + mov r1, sp + strb r0, [r1] + adds r1, r4, #0 + adds r1, #0x11 + adds r0, r5, #0 + mov r2, sp + bl SetMonData + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _081A735A + mov r0, sp + movs r1, #0 + strb r1, [r0] + strb r1, [r0, #1] + strb r1, [r0, #2] + strb r1, [r0, #3] + adds r0, r5, #0 + movs r1, #0x37 + mov r2, sp + bl SetMonData + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end HealMon + + thumb_func_start DoesAbilityPreventStatus +DoesAbilityPreventStatus: @ 0x081A73A8 + push {r4, lr} + adds r4, r1, #0 + bl GetMonAbility + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + cmp r4, #0x20 + beq _081A73D2 + cmp r4, #0x20 + bhi _081A73C8 + cmp r4, #7 + beq _081A73E4 + cmp r4, #0x10 + beq _081A73D8 + b _081A73F4 +_081A73C8: + cmp r4, #0x40 + beq _081A73DE + cmp r4, #0x80 + beq _081A73EE + b _081A73F4 +_081A73D2: + cmp r0, #0x28 + bne _081A73F4 + b _081A73F2 +_081A73D8: + cmp r0, #0x29 + bne _081A73F4 + b _081A73F2 +_081A73DE: + cmp r0, #7 + bne _081A73F4 + b _081A73F2 +_081A73E4: + cmp r0, #0xf + beq _081A73F2 + cmp r0, #0x48 + bne _081A73F4 + b _081A73F2 +_081A73EE: + cmp r0, #0x11 + bne _081A73F4 +_081A73F2: + movs r1, #1 +_081A73F4: + adds r0, r1, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end DoesAbilityPreventStatus + + thumb_func_start DoesTypePreventStatus +DoesTypePreventStatus: @ 0x081A73FC + push {lr} + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + movs r3, #0 + cmp r1, #0x20 + beq _081A7444 + cmp r1, #0x20 + bhi _081A7416 + cmp r1, #7 + beq _081A749C + cmp r1, #0x10 + beq _081A7484 + b _081A749C +_081A7416: + cmp r1, #0x40 + beq _081A7460 + cmp r1, #0x80 + bne _081A749C + ldr r1, _081A7440 + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r2, [r0, #6] + cmp r2, #8 + beq _081A749A + cmp r2, #3 + beq _081A749A + ldrb r0, [r0, #7] + cmp r0, #8 + beq _081A749A + cmp r0, #3 + bne _081A749C + b _081A749A + .align 2, 0 +_081A7440: .4byte 0x082F0D54 +_081A7444: + ldr r0, _081A745C + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #6] + cmp r0, #0xf + beq _081A749A + ldrb r0, [r1, #7] + cmp r0, #0xf + bne _081A749C + b _081A749A + .align 2, 0 +_081A745C: .4byte 0x082F0D54 +_081A7460: + ldr r1, _081A7480 + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r2, [r0, #6] + cmp r2, #4 + beq _081A749A + cmp r2, #0xd + beq _081A749A + ldrb r0, [r0, #7] + cmp r0, #4 + beq _081A749A + cmp r0, #0xd + bne _081A749C + b _081A749A + .align 2, 0 +_081A7480: .4byte 0x082F0D54 +_081A7484: + ldr r0, _081A74A4 + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #6] + cmp r0, #0xa + beq _081A749A + ldrb r0, [r1, #7] + cmp r0, #0xa + bne _081A749C +_081A749A: + movs r3, #1 +_081A749C: + adds r0, r3, #0 + pop {r1} + bx r1 + .align 2, 0 +_081A74A4: .4byte 0x082F0D54 + thumb_func_end DoesTypePreventStatus + + thumb_func_start TryInflictRandomStatus +TryInflictRandomStatus: @ 0x081A74A8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + movs r6, #0 +_081A74B6: + mov r1, sp + adds r0, r1, r6 + strb r6, [r0] + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #2 + bls _081A74B6 + movs r4, #0 + mov r8, r4 +_081A74CA: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, sp + adds r2, r1, r6 + ldrb r3, [r2] + adds r1, r1, r0 + ldrb r0, [r1] + strb r0, [r2] + strb r3, [r1] + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + cmp r0, #9 + bls _081A74CA + ldr r0, _081A7550 + ldr r0, [r0] + ldr r4, _081A7554 + adds r0, r0, r4 + ldrh r0, [r0] + movs r1, #1 + mov sl, r1 + cmp r0, #4 + bls _081A7528 + movs r4, #3 + mov sl, r4 + cmp r0, #9 + bhi _081A7528 + movs r0, #2 + mov sl, r0 +_081A7528: + movs r1, #0 + str r1, [sp, #4] + ldr r7, _081A7558 +_081A752E: + movs r4, #0 + mov sb, r4 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + cmp r0, #0x22 + bhi _081A755C + movs r0, #0x80 + b _081A757C + .align 2, 0 +_081A7550: .4byte 0x03005AF0 +_081A7554: .4byte 0x00000CB2 +_081A7558: .4byte 0x0300128C +_081A755C: + cmp r0, #0x3b + bhi _081A7564 + movs r0, #0x20 + b _081A757C +_081A7564: + cmp r0, #0x4f + bhi _081A756C + movs r0, #0x40 + b _081A757C +_081A756C: + cmp r1, #0x59 + bhi _081A757A + movs r0, #7 + b _081A757C +_081A7574: + movs r0, #1 + mov sb, r0 + b _081A75EE +_081A757A: + movs r0, #0x10 +_081A757C: + str r0, [r7] + ldr r0, _081A7610 + ldr r0, [r0] + ldr r1, [sp, #4] + cmp r1, r0 + beq _081A75F4 + str r0, [sp, #4] + movs r4, #0 + mov r8, r4 + movs r6, #0 +_081A7590: + mov r1, sp + adds r0, r1, r6 + ldrb r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _081A7614 + adds r5, r1, r0 + adds r0, r5, #0 + movs r1, #0x37 + bl GetMonData + bl pokemon_ailments_get_primary + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081A75E0 + adds r0, r5, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _081A75E0 + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + adds r0, r5, #0 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r1, [r7] + adds r0, r4, #0 + bl DoesTypePreventStatus + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081A7574 +_081A75E0: + cmp r8, sl + beq _081A75EE + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #2 + bls _081A7590 +_081A75EE: + mov r4, r8 + cmp r4, #0 + beq _081A764C +_081A75F4: + mov r0, sb + cmp r0, #0 + beq _081A752E + ldr r0, _081A7610 + ldr r0, [r0] + cmp r0, #0x20 + beq _081A7618 + cmp r0, #0x20 + bhi _081A7650 + cmp r0, #7 + beq _081A7650 + cmp r0, #0x10 + beq _081A7624 + b _081A7650 + .align 2, 0 +_081A7610: .4byte 0x0300128C +_081A7614: .4byte 0x02024190 +_081A7618: + ldr r1, _081A7620 + movs r0, #1 + b _081A7654 + .align 2, 0 +_081A7620: .4byte 0x03001289 +_081A7624: + bl Random + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + movs r2, #1 + ands r1, r2 + cmp r1, #0 + beq _081A7640 + ldr r0, _081A763C + strb r2, [r0] + b _081A7656 + .align 2, 0 +_081A763C: .4byte 0x03001289 +_081A7640: + ldr r0, _081A7648 + strb r1, [r0] + b _081A7656 + .align 2, 0 +_081A7648: .4byte 0x03001289 +_081A764C: + movs r0, #0 + b _081A76D6 +_081A7650: + ldr r1, _081A76E8 + movs r0, #0 +_081A7654: + strb r0, [r1] +_081A7656: + movs r1, #0 + mov r8, r1 + movs r6, #0 +_081A765C: + mov r4, sp + adds r0, r4, r6 + ldrb r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _081A76EC + adds r5, r1, r0 + adds r0, r5, #0 + movs r1, #0x37 + bl GetMonData + bl pokemon_ailments_get_primary + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081A76C6 + adds r0, r5, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _081A76C6 + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + adds r0, r5, #0 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r7, _081A76F0 + ldr r1, [r7] + adds r0, r5, #0 + bl DoesAbilityPreventStatus + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081A76C6 + ldr r1, [r7] + adds r0, r4, #0 + bl DoesTypePreventStatus + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081A76C6 + adds r0, r5, #0 + movs r1, #0x37 + adds r2, r7, #0 + bl SetMonData +_081A76C6: + cmp r8, sl + beq _081A76D4 + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #2 + bls _081A765C +_081A76D4: + movs r0, #1 +_081A76D6: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081A76E8: .4byte 0x03001289 +_081A76EC: .4byte 0x02024190 +_081A76F0: .4byte 0x0300128C + thumb_func_end TryInflictRandomStatus + + thumb_func_start AtLeastOneHealthyMon +AtLeastOneHealthyMon: @ 0x081A76F4 + push {r4, r5, r6, r7, lr} + ldr r0, _081A7714 + ldr r0, [r0] + ldr r1, _081A7718 + adds r0, r0, r1 + ldrh r0, [r0] + movs r7, #1 + cmp r0, #4 + bls _081A770E + movs r7, #3 + cmp r0, #9 + bhi _081A770E + movs r7, #2 +_081A770E: + movs r6, #0 + movs r5, #0 + b _081A7722 + .align 2, 0 +_081A7714: .4byte 0x03005AF0 +_081A7718: .4byte 0x00000CB2 +_081A771C: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_081A7722: + cmp r5, #2 + bhi _081A7758 + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _081A7760 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0x37 + bl GetMonData + bl pokemon_ailments_get_primary + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081A7754 + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _081A7754 + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_081A7754: + cmp r6, r7 + bne _081A771C +_081A7758: + cmp r6, #0 + beq _081A7764 + movs r0, #1 + b _081A7766 + .align 2, 0 +_081A7760: .4byte 0x02024190 +_081A7764: + movs r0, #0 +_081A7766: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end AtLeastOneHealthyMon + + thumb_func_start GetNextRoomType +GetNextRoomType: @ 0x081A776C + push {r4, r5, r6, lr} + sub sp, #8 + ldr r1, _081A778C + ldr r0, [r1] + movs r4, #0xe1 + lsls r4, r4, #4 + adds r0, r0, r4 + ldrb r2, [r0] + movs r3, #0x78 + ands r3, r2 + adds r5, r1, #0 + cmp r3, #0x40 + bne _081A7790 + lsls r0, r2, #0x19 + lsrs r0, r0, #0x1c + b _081A78C8 + .align 2, 0 +_081A778C: .4byte 0x03005AF0 +_081A7790: + ldr r0, _081A77B0 + lsls r1, r2, #0x1d + ldrh r0, [r0] + lsrs r1, r1, #0x1d + cmp r0, r1 + bne _081A77B4 + cmp r3, #0x18 + bne _081A77A4 + bl TryInflictRandomStatus +_081A77A4: + ldr r0, [r5] + adds r0, r0, r4 + ldrb r0, [r0] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1c + b _081A78C8 + .align 2, 0 +_081A77B0: .4byte 0x02037286 +_081A77B4: + movs r2, #0 + ldr r3, _081A78D0 + movs r1, #0 +_081A77BA: + mov r4, sp + adds r0, r4, r2 + strb r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #7 + bls _081A77BA + movs r4, #8 + ldr r0, [r5] + movs r6, #0xe1 + lsls r6, r6, #4 + adds r0, r0, r6 + ldrb r0, [r0] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1c + adds r0, r0, r3 + ldrb r1, [r0] + movs r2, #0 + adds r5, r3, #0 + movs r3, #1 +_081A77E4: + adds r0, r2, r5 + ldrb r0, [r0] + cmp r0, r1 + bne _081A77F8 + mov r6, sp + adds r0, r6, r2 + strb r3, [r0] + subs r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_081A77F8: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #7 + bls _081A77E4 + mov r0, sp + ldrb r0, [r0, #7] + cmp r0, #1 + beq _081A7820 + bl AtLeastTwoAliveMons + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081A7820 + mov r1, sp + movs r0, #1 + strb r0, [r1, #7] + subs r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_081A7820: + mov r0, sp + ldrb r0, [r0, #3] + cmp r0, #1 + beq _081A783E + bl AtLeastOneHealthyMon + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081A783E + mov r1, sp + movs r0, #1 + strb r0, [r1, #3] + subs r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_081A783E: + ldr r0, _081A78D4 + ldr r0, [r0] + movs r1, #0xe1 + lsls r1, r1, #4 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _081A787A + mov r0, sp + ldrb r0, [r0, #1] + cmp r0, #1 + beq _081A7866 + mov r1, sp + movs r0, #1 + strb r0, [r1, #1] + subs r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_081A7866: + mov r0, sp + ldrb r0, [r0, #4] + cmp r0, #1 + beq _081A787A + mov r1, sp + movs r0, #1 + strb r0, [r1, #4] + subs r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_081A787A: + adds r0, r4, #0 + bl AllocZeroed + adds r5, r0, #0 + movs r3, #0 + movs r2, #0 +_081A7886: + mov r6, sp + adds r0, r6, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _081A789C + adds r1, r3, #0 + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + adds r1, r5, r1 + strb r2, [r1] +_081A789C: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #7 + bls _081A7886 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r4, #0 + bl __modsi3 + adds r0, r5, r0 + ldrb r4, [r0] + adds r0, r5, #0 + bl Free + cmp r4, #3 + bne _081A78C6 + bl TryInflictRandomStatus +_081A78C6: + adds r0, r4, #0 +_081A78C8: + add sp, #8 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_081A78D0: .4byte 0x085DDEA4 +_081A78D4: .4byte 0x03005AF0 + thumb_func_end GetNextRoomType + + thumb_func_start GetNPCRoomGraphicsId +GetNPCRoomGraphicsId: @ 0x081A78D8 + push {r4, lr} + ldr r4, _081A78FC + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x19 + bl __umodsi3 + strb r0, [r4] + ldr r1, _081A7900 + ldrb r0, [r4] + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r0, [r0] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081A78FC: .4byte 0x03001290 +_081A7900: .4byte 0x085DDB54 + thumb_func_end GetNPCRoomGraphicsId + + thumb_func_start sub_081A7904 +sub_081A7904: @ 0x081A7904 + ldr r0, _081A790C + ldrb r0, [r0] + bx lr + .align 2, 0 +_081A790C: .4byte 0x0300128A + thumb_func_end sub_081A7904 + + thumb_func_start TryGenerateBattlePikeWildMon +TryGenerateBattlePikeWildMon: @ 0x081A7910 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + bl GetBattlePikeWildMonHeaderId + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r7, _081A798C + ldr r0, [r7] + ldr r4, _081A7990 + adds r0, r0, r4 + ldrb r0, [r0] + lsls r0, r0, #0x1e + ldr r1, _081A7994 + lsrs r0, r0, #0x1c + adds r0, r0, r1 + ldr r0, [r0] + str r0, [sp, #4] + ldr r0, _081A7998 + movs r1, #0xb + movs r2, #0 + bl GetMonData + adds r5, r0, #0 + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + bl SpeciesToPikeMonId + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, [r7] + adds r0, r0, r4 + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _081A799C + bl GetHighestLevelInPlayerParty + adds r7, r0, #0 + cmp r7, #0x3b + ble _081A7988 + lsls r0, r6, #2 + ldr r1, [sp, #4] + adds r0, r0, r1 + ldr r1, [r0] + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #2] + subs r7, r7, r0 + cmp r7, #0x3b + bgt _081A79B2 +_081A7988: + movs r7, #0x3c + b _081A79B2 + .align 2, 0 +_081A798C: .4byte 0x03005AF0 +_081A7990: .4byte 0x00000CA9 +_081A7994: .4byte 0x085DDB4C +_081A7998: .4byte 0x020243E8 +_081A799C: + lsls r0, r6, #2 + ldr r2, [sp, #4] + adds r0, r0, r2 + ldr r1, [r0] + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #2] + movs r0, #0x32 + subs r7, r0, r1 +_081A79B2: + mov r0, r8 + cmp r0, #1 + bne _081A79CA + lsls r0, r7, #0x18 + lsrs r0, r0, #0x18 + bl CanEncounterWildMon + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081A79CA + movs r0, #0 + b _081A7A62 +_081A79CA: + ldr r0, _081A7A74 + ldr r1, _081A7A78 + mov r8, r1 + lsls r6, r6, #2 + mov sb, r6 + ldr r2, [sp, #4] + add r2, sb + mov sl, r2 + ldr r1, [r2] + lsls r6, r5, #1 + adds r4, r6, r5 + lsls r4, r4, #2 + adds r1, r4, r1 + ldrh r2, [r1] + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + add r1, r8 + ldrb r2, [r1, #0x13] + movs r1, #0xca + lsls r1, r1, #1 + muls r2, r1, r2 + lsls r1, r7, #2 + ldr r3, _081A7A7C + adds r1, r1, r3 + adds r2, r2, r1 + movs r1, #0x19 + bl SetMonData + mov r1, sl + ldr r0, [r1] + adds r4, r4, r0 + ldrh r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + ldrb r0, [r0, #0x17] + mov r7, sb + cmp r0, #0 + beq _081A7A28 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + ands r0, r1 +_081A7A28: + str r0, [sp] + ldr r0, _081A7A74 + movs r1, #0x2e + mov r2, sp + bl SetMonData + movs r4, #0 + adds r0, r6, r5 + lsls r6, r0, #2 +_081A7A3A: + ldr r2, [sp, #4] + adds r0, r7, r2 + ldr r0, [r0] + adds r0, r6, r0 + lsls r1, r4, #1 + adds r0, #4 + adds r0, r0, r1 + ldrh r1, [r0] + lsls r2, r4, #0x18 + lsrs r2, r2, #0x18 + ldr r0, _081A7A74 + bl SetMonMoveSlot + adds r4, #1 + cmp r4, #3 + ble _081A7A3A + ldr r0, _081A7A74 + bl CalculateMonStats + movs r0, #1 +_081A7A62: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081A7A74: .4byte 0x020243E8 +_081A7A78: .4byte 0x082F0D54 +_081A7A7C: .4byte 0x082F00B4 + thumb_func_end TryGenerateBattlePikeWildMon + + thumb_func_start GetBattlePikeWildMonHeaderId +GetBattlePikeWildMonHeaderId: @ 0x081A7A80 + push {lr} + ldr r0, _081A7AA8 + ldr r1, [r0] + ldr r2, _081A7AAC + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1d + ldr r2, _081A7AB0 + adds r1, r1, r2 + adds r1, r1, r0 + ldrh r1, [r1] + adds r2, r1, #0 + movs r0, #0x8c + lsls r0, r0, #1 + cmp r1, r0 + bhi _081A7AB4 + movs r1, #0 + b _081A7ACC + .align 2, 0 +_081A7AA8: .4byte 0x03005AF0 +_081A7AAC: .4byte 0x00000CA9 +_081A7AB0: .4byte 0x00000E04 +_081A7AB4: + movs r0, #0x8c + lsls r0, r0, #2 + cmp r1, r0 + bhi _081A7AC0 + movs r1, #1 + b _081A7ACC +_081A7AC0: + movs r0, #0xd2 + lsls r0, r0, #2 + movs r1, #3 + cmp r2, r0 + bhi _081A7ACC + movs r1, #2 +_081A7ACC: + adds r0, r1, #0 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetBattlePikeWildMonHeaderId + + thumb_func_start DoStatusInflictionScreenFade +DoStatusInflictionScreenFade: @ 0x081A7AD4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _081A7B04 + ldr r2, _081A7B08 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_081A7AE6: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081A7AE6 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081A7B04: .4byte 0x085DDEC0 +_081A7B08: .4byte 0x03005B60 + thumb_func_end DoStatusInflictionScreenFade + + thumb_func_start StatusInflictionFadeOut +StatusInflictionFadeOut: @ 0x081A7B0C + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x14] + movs r2, #0x14 + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _081A7B24 + subs r0, r1, #1 + strh r0, [r4, #0x14] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _081A7B48 +_081A7B24: + ldrh r0, [r4, #0xa] + strh r0, [r4, #0x14] + ldrh r0, [r4, #0x10] + ldrh r1, [r4, #0x16] + adds r0, r0, r1 + strh r0, [r4, #0x16] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x10 + ble _081A7B3C + movs r0, #0x10 + strh r0, [r4, #0x16] +_081A7B3C: + movs r0, #1 + rsbs r0, r0, #0 + ldrb r1, [r4, #0x16] + ldr r2, _081A7B64 + bl BlendPalettes +_081A7B48: + movs r2, #0x16 + ldrsh r0, [r4, r2] + cmp r0, #0xf + ble _081A7B5A + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + ldrh r0, [r4, #0xc] + strh r0, [r4, #0x14] +_081A7B5A: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081A7B64: .4byte 0x00002D6B + thumb_func_end StatusInflictionFadeOut + + thumb_func_start StatusInflictionFadeIn +StatusInflictionFadeIn: @ 0x081A7B68 + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x14] + movs r2, #0x14 + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _081A7B80 + subs r0, r1, #1 + strh r0, [r4, #0x14] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _081A7BA2 +_081A7B80: + ldrh r0, [r4, #0xc] + strh r0, [r4, #0x14] + ldrh r0, [r4, #0x16] + ldrh r1, [r4, #0x12] + subs r0, r0, r1 + strh r0, [r4, #0x16] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _081A7B96 + movs r0, #0 + strh r0, [r4, #0x16] +_081A7B96: + movs r0, #1 + rsbs r0, r0, #0 + ldrb r1, [r4, #0x16] + ldr r2, _081A7BC8 + bl BlendPalettes +_081A7BA2: + movs r0, #0x16 + ldrsh r1, [r4, r0] + cmp r1, #0 + bne _081A7BD6 + ldrh r0, [r4, #0xe] + subs r0, #1 + strh r0, [r4, #0xe] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _081A7BD0 + ldr r0, _081A7BCC + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + b _081A7BD6 + .align 2, 0 +_081A7BC8: .4byte 0x00002D6B +_081A7BCC: .4byte 0x081A7AD5 +_081A7BD0: + ldrh r0, [r4, #0xa] + strh r0, [r4, #0x14] + strh r1, [r4, #8] +_081A7BD6: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end StatusInflictionFadeIn + + thumb_func_start StartStatusInflictionScreenFade +StartStatusInflictionScreenFade: @ 0x081A7BE0 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #4 + mov r8, r0 + adds r4, r1, #0 + adds r5, r2, #0 + adds r6, r3, #0 + ldr r3, [sp, #0x18] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + ldr r0, _081A7C3C + movs r1, #3 + str r3, [sp] + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _081A7C40 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + mov r0, r8 + strh r0, [r1, #0xa] + strh r4, [r1, #0xc] + strh r5, [r1, #0xe] + strh r6, [r1, #0x10] + ldr r3, [sp] + strh r3, [r1, #0x12] + strh r0, [r1, #0x14] + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081A7C3C: .4byte 0x081A7AD5 +_081A7C40: .4byte 0x03005B60 + thumb_func_end StartStatusInflictionScreenFade + + thumb_func_start IsStatusInflictionScreenFadeTaskFinished +IsStatusInflictionScreenFadeTaskFinished: @ 0x081A7C44 + push {lr} + ldr r0, _081A7C58 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _081A7C5C + movs r0, #0 + b _081A7C5E + .align 2, 0 +_081A7C58: .4byte 0x081A7AD5 +_081A7C5C: + movs r0, #1 +_081A7C5E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsStatusInflictionScreenFadeTaskFinished + + thumb_func_start Task_DoStatusInflictionScreenFade +Task_DoStatusInflictionScreenFade: @ 0x081A7C64 + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r4, r0, #0 + ldr r1, _081A7C98 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r1, r0, r1 + ldrh r2, [r1, #8] + movs r3, #8 + ldrsh r0, [r1, r3] + cmp r0, #0 + bne _081A7C9C + adds r0, r2, #1 + strh r0, [r1, #8] + movs r0, #2 + str r0, [sp] + movs r0, #0 + movs r1, #0 + movs r2, #3 + movs r3, #2 + bl StartStatusInflictionScreenFade + b _081A7CB0 + .align 2, 0 +_081A7C98: .4byte 0x03005B60 +_081A7C9C: + bl IsStatusInflictionScreenFadeTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081A7CB0 + bl EnableBothScriptContexts + adds r0, r4, #0 + bl DestroyTask +_081A7CB0: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end Task_DoStatusInflictionScreenFade + + thumb_func_start TryHealMons +TryHealMons: @ 0x081A7CB8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + cmp r0, #0 + bne _081A7CD0 + b _081A7DFA +_081A7CD0: + movs r0, #0 + mov r8, r0 +_081A7CD4: + mov r0, sp + add r0, r8 + mov r1, r8 + strb r1, [r0] + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + cmp r0, #2 + bls _081A7CD4 + movs r5, #0 +_081A7CEC: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + mov r2, sp + add r2, r8 + ldrb r3, [r2] + mov r0, sp + adds r1, r0, r4 + ldrb r0, [r1] + strb r0, [r2] + strb r3, [r1] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #9 + bls _081A7CEC + movs r1, #0 + mov r8, r1 +_081A7D30: + movs r0, #0 + mov sl, r0 + mov r4, sp + add r4, r8 + ldrb r1, [r4] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _081A7D78 + adds r7, r1, r0 + adds r0, r7, #0 + movs r1, #0x39 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r7, #0 + movs r1, #0x3a + bl GetMonData + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + str r4, [sp, #8] + cmp r5, r6 + blo _081A7DC4 + adds r0, r7, #0 + movs r1, #0x37 + bl GetMonData + bl pokemon_ailments_get_primary + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081A7D7C + movs r0, #1 + mov sl, r0 + b _081A7DC8 + .align 2, 0 +_081A7D78: .4byte 0x02024190 +_081A7D7C: + adds r0, r7, #0 + movs r1, #0x15 + bl GetMonData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + movs r4, #0 + b _081A7D94 +_081A7D8E: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_081A7D94: + cmp r4, #3 + bhi _081A7DC8 + adds r1, r4, #0 + adds r1, #0xd + adds r0, r7, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r1, sb + adds r2, r4, #0 + bl CalculatePPWithBonus + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r1, r4, #0 + adds r1, #0x11 + adds r0, r7, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, r6 + bhs _081A7D8E +_081A7DC4: + movs r1, #1 + mov sl, r1 +_081A7DC8: + mov r0, sl + cmp r0, #1 + bne _081A7DEC + ldr r0, [sp, #8] + ldrb r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081A7E0C + adds r0, r0, r1 + bl HealMon + ldr r0, [sp, #4] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + cmp r0, #0 + beq _081A7DFA +_081A7DEC: + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + cmp r0, #2 + bls _081A7D30 +_081A7DFA: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A7E0C: .4byte 0x02024190 + thumb_func_end TryHealMons + + thumb_func_start GetInBattlePike +GetInBattlePike: @ 0x081A7E10 + push {r4, lr} + ldr r4, _081A7E24 + bl InBattlePike + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081A7E24: .4byte 0x02037290 + thumb_func_end GetInBattlePike + + thumb_func_start InBattlePike +InBattlePike: @ 0x081A7E28 + push {lr} + movs r2, #0 + ldr r0, _081A7E54 + ldrh r1, [r0, #0x12] + ldr r3, _081A7E58 + adds r0, r1, r3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bls _081A7E4A + movs r0, #0xb3 + lsls r0, r0, #1 + cmp r1, r0 + beq _081A7E4A + adds r0, #1 + cmp r1, r0 + bne _081A7E4C +_081A7E4A: + movs r2, #1 +_081A7E4C: + adds r0, r2, #0 + pop {r1} + bx r1 + .align 2, 0 +_081A7E54: .4byte 0x02036FB8 +_081A7E58: .4byte 0xFFFFFEA1 + thumb_func_end InBattlePike + + thumb_func_start SetHintedRoom +SetHintedRoom: @ 0x081A7E5C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r4, _081A7EB0 + movs r0, #0 + strh r0, [r4] + movs r0, #1 + bl GetPikeQueenFightType + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081A7EB8 + movs r0, #1 + strh r0, [r4] + bl Random + ldr r5, _081A7EB4 + ldr r4, [r5] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #6 + bl __umodsi3 + movs r3, #0xe1 + lsls r3, r3, #4 + adds r4, r4, r3 + movs r1, #7 + ands r1, r0 + ldrb r2, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4] + ldr r2, [r5] + adds r2, r2, r3 + ldrb r1, [r2] + movs r0, #0x79 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x40 + b _081A7FC8 + .align 2, 0 +_081A7EB0: .4byte 0x02037290 +_081A7EB4: .4byte 0x03005AF0 +_081A7EB8: + bl Random + ldr r7, _081A7F2C + ldr r4, [r7] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + movs r3, #0xe1 + lsls r3, r3, #4 + adds r4, r4, r3 + movs r1, #7 + ands r1, r0 + ldrb r2, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4] + ldr r0, [r7] + adds r0, r0, r3 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + movs r6, #8 + cmp r0, #0 + beq _081A7EF2 + movs r6, #6 +_081A7EF2: + adds r0, r6, #0 + bl AllocZeroed + adds r5, r0, #0 + movs r2, #0 + movs r3, #0 + cmp r2, r6 + bhs _081A7F3E + adds r4, r7, #0 +_081A7F04: + ldr r0, [r4] + movs r1, #0xe1 + lsls r1, r1, #4 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _081A7F30 + cmp r2, #1 + beq _081A7F34 + cmp r2, #4 + beq _081A7F34 + adds r1, r3, #0 + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + adds r1, r5, r1 + strb r2, [r1] + b _081A7F34 + .align 2, 0 +_081A7F2C: .4byte 0x03005AF0 +_081A7F30: + adds r0, r5, r2 + strb r2, [r0] +_081A7F34: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, r6 + blo _081A7F04 +_081A7F3E: + bl Random + ldr r7, _081A7FD8 + ldr r4, [r7] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r6, #0 + bl __modsi3 + adds r0, r5, r0 + ldrb r0, [r0] + movs r6, #0xe1 + lsls r6, r6, #4 + adds r4, r4, r6 + movs r1, #0xf + ands r1, r0 + lsls r1, r1, #3 + ldrb r2, [r4] + movs r0, #0x79 + rsbs r0, r0, #0 + mov r8, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4] + adds r0, r5, #0 + bl Free + ldr r0, [r7] + adds r0, r0, r6 + ldrb r1, [r0] + movs r0, #0x78 + ands r0, r1 + cmp r0, #0x18 + bne _081A7F9C + bl AtLeastOneHealthyMon + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081A7F9C + ldr r2, [r7] + adds r2, r2, r6 + ldrb r1, [r2] + mov r0, r8 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r2] +_081A7F9C: + ldr r5, _081A7FD8 + ldr r0, [r5] + movs r4, #0xe1 + lsls r4, r4, #4 + adds r0, r0, r4 + ldrb r1, [r0] + movs r0, #0x78 + ands r0, r1 + cmp r0, #0x38 + bne _081A7FCC + bl AtLeastTwoAliveMons + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081A7FCC + ldr r2, [r5] + adds r2, r2, r4 + ldrb r1, [r2] + movs r0, #0x79 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 +_081A7FC8: + orrs r0, r1 + strb r0, [r2] +_081A7FCC: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A7FD8: .4byte 0x03005AF0 + thumb_func_end SetHintedRoom + + thumb_func_start GetHintedRoomIndex +GetHintedRoomIndex: @ 0x081A7FDC + ldr r1, _081A7FF4 + ldr r0, _081A7FF8 + ldr r0, [r0] + movs r2, #0xe1 + lsls r2, r2, #4 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1d + strh r0, [r1] + bx lr + .align 2, 0 +_081A7FF4: .4byte 0x02037290 +_081A7FF8: .4byte 0x03005AF0 + thumb_func_end GetHintedRoomIndex + + thumb_func_start GetRoomTypeHint +GetRoomTypeHint: @ 0x081A7FFC + ldr r2, _081A8018 + ldr r1, _081A801C + ldr r0, _081A8020 + ldr r0, [r0] + movs r3, #0xe1 + lsls r3, r3, #4 + adds r0, r0, r3 + ldrb r0, [r0] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1c + adds r0, r0, r1 + ldrb r0, [r0] + strh r0, [r2] + bx lr + .align 2, 0 +_081A8018: .4byte 0x02037290 +_081A801C: .4byte 0x085DDEA4 +_081A8020: .4byte 0x03005AF0 + thumb_func_end GetRoomTypeHint + + thumb_func_start PrepareOneTrainer +PrepareOneTrainer: @ 0x081A8024 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + movs r7, #6 + cmp r0, #0 + bne _081A8030 + movs r7, #1 +_081A8030: + ldr r4, _081A8078 + ldr r1, [r4] + ldr r2, _081A807C + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1d + ldr r2, _081A8080 + adds r1, r1, r2 + adds r1, r1, r0 + ldrh r0, [r1] + movs r1, #0xe + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r5, r4, #0 +_081A8052: + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + adds r1, r7, #0 + bl sub_0816245C + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r3, #0 + ldr r1, [r5] + ldr r2, _081A8084 + adds r0, r1, r2 + ldrh r0, [r0] + subs r2, r0, #1 + cmp r3, r2 + bge _081A809A + ldr r0, _081A8088 + adds r1, r1, r0 + b _081A8094 + .align 2, 0 +_081A8078: .4byte 0x03005AF0 +_081A807C: .4byte 0x00000CA9 +_081A8080: .4byte 0x00000E04 +_081A8084: .4byte 0x00000CB2 +_081A8088: .4byte 0x00000CB4 +_081A808C: + adds r1, #2 + adds r3, #1 + cmp r3, r2 + bge _081A809A +_081A8094: + ldrh r0, [r1] + cmp r0, r4 + bne _081A808C +_081A809A: + ldr r0, [r5] + ldr r1, _081A80DC + adds r0, r0, r1 + ldrh r0, [r0] + subs r0, #1 + cmp r3, r0 + bne _081A8052 + ldr r5, _081A80E0 + strh r4, [r5] + ldr r1, _081A80E4 + ldr r0, _081A80E8 + str r0, [r1] + ldrh r0, [r5] + movs r1, #0 + bl SetBattleFacilityTrainerGfxId + ldr r0, _081A80EC + ldr r1, [r0] + ldr r0, _081A80DC + adds r2, r1, r0 + ldrh r0, [r2] + cmp r0, #0xd + bhi _081A80D6 + subs r0, #1 + lsls r0, r0, #1 + ldr r2, _081A80F0 + adds r1, r1, r2 + adds r1, r1, r0 + ldrh r0, [r5] + strh r0, [r1] +_081A80D6: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A80DC: .4byte 0x00000CB2 +_081A80E0: .4byte 0x0203886A +_081A80E4: .4byte 0x0203B954 +_081A80E8: .4byte 0x085B4A10 +_081A80EC: .4byte 0x03005AF0 +_081A80F0: .4byte 0x00000CB4 + thumb_func_end PrepareOneTrainer + + thumb_func_start PrepareTwoTrainers +PrepareTwoTrainers: @ 0x081A80F4 + push {r4, r5, r6, r7, lr} + ldr r4, _081A8144 + ldr r1, [r4] + ldr r2, _081A8148 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1d + ldr r2, _081A814C + adds r1, r1, r2 + adds r1, r1, r0 + ldrh r0, [r1] + movs r1, #0xe + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r1, _081A8150 + ldr r0, _081A8154 + str r0, [r1] + lsls r7, r5, #0x18 + adds r6, r4, #0 +_081A8120: + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + bl sub_0816245C + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r3, #0 + ldr r1, [r6] + ldr r2, _081A8158 + adds r0, r1, r2 + ldrh r0, [r0] + subs r2, r0, #1 + cmp r3, r2 + bge _081A816E + ldr r0, _081A815C + adds r1, r1, r0 + b _081A8168 + .align 2, 0 +_081A8144: .4byte 0x03005AF0 +_081A8148: .4byte 0x00000CA9 +_081A814C: .4byte 0x00000E04 +_081A8150: .4byte 0x0203B954 +_081A8154: .4byte 0x085B4A10 +_081A8158: .4byte 0x00000CB2 +_081A815C: .4byte 0x00000CB4 +_081A8160: + adds r1, #2 + adds r3, #1 + cmp r3, r2 + bge _081A816E +_081A8168: + ldrh r0, [r1] + cmp r0, r4 + bne _081A8160 +_081A816E: + ldr r0, [r6] + ldr r1, _081A8220 + adds r0, r0, r1 + ldrh r0, [r0] + subs r0, #1 + cmp r3, r0 + bne _081A8120 + ldr r5, _081A8224 + strh r4, [r5] + ldrh r0, [r5] + movs r1, #0 + bl SetBattleFacilityTrainerGfxId + ldr r3, _081A8228 + ldr r1, [r3] + ldr r0, _081A8220 + adds r2, r1, r0 + ldrh r0, [r2] + cmp r0, #0xe + bhi _081A81A4 + subs r0, #1 + lsls r0, r0, #1 + ldr r2, _081A822C + adds r1, r1, r2 + adds r1, r1, r0 + ldrh r0, [r5] + strh r0, [r1] +_081A81A4: + adds r5, r3, #0 +_081A81A6: + lsrs r0, r7, #0x18 + movs r1, #1 + bl sub_0816245C + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r3, #0 + ldr r1, [r5] + ldr r2, _081A8220 + adds r0, r1, r2 + ldrh r0, [r0] + cmp r3, r0 + bge _081A81E6 + adds r2, #2 + adds r0, r1, r2 + ldrh r0, [r0] + cmp r0, r4 + beq _081A81E6 + ldr r0, _081A8228 + ldr r1, [r0] + subs r2, #2 + adds r0, r1, r2 + ldrh r2, [r0] + ldr r0, _081A822C + adds r1, r1, r0 +_081A81D8: + adds r1, #2 + adds r3, #1 + cmp r3, r2 + bge _081A81E6 + ldrh r0, [r1] + cmp r0, r4 + bne _081A81D8 +_081A81E6: + ldr r0, [r5] + ldr r1, _081A8220 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r3, r0 + bne _081A81A6 + ldr r5, _081A8230 + strh r4, [r5] + ldrh r0, [r5] + movs r1, #1 + bl SetBattleFacilityTrainerGfxId + ldr r0, _081A8228 + ldr r1, [r0] + ldr r0, _081A8220 + adds r2, r1, r0 + ldrh r0, [r2] + cmp r0, #0xd + bhi _081A821A + subs r0, #2 + lsls r0, r0, #1 + ldr r2, _081A822C + adds r1, r1, r2 + adds r1, r1, r0 + ldrh r0, [r5] + strh r0, [r1] +_081A821A: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A8220: .4byte 0x00000CB2 +_081A8224: .4byte 0x0203886A +_081A8228: .4byte 0x03005AF0 +_081A822C: .4byte 0x00000CB4 +_081A8230: .4byte 0x0203886C + thumb_func_end PrepareTwoTrainers + + thumb_func_start ClearPikeTrainerIds +ClearPikeTrainerIds: @ 0x081A8234 + push {r4, r5, lr} + movs r2, #0 + ldr r5, _081A8260 + ldr r4, _081A8264 + ldr r0, _081A8268 + adds r3, r0, #0 +_081A8240: + ldr r1, [r5] + lsls r0, r2, #1 + adds r1, r1, r4 + adds r1, r1, r0 + ldrh r0, [r1] + orrs r0, r3 + strh r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xd + bls _081A8240 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081A8260: .4byte 0x03005AF0 +_081A8264: .4byte 0x00000CB4 +_081A8268: .4byte 0x0000FFFF + thumb_func_end ClearPikeTrainerIds + + thumb_func_start BufferRecordMixingTrainerMessage +BufferRecordMixingTrainerMessage: @ 0x081A826C + push {lr} + ldr r0, _081A8294 + ldrh r0, [r0] + cmp r0, #0 + bne _081A82A4 + ldr r3, _081A8298 + ldrh r1, [r3] + ldr r0, _081A829C + cmp r1, r0 + bhi _081A82C2 + ldr r2, _081A82A0 + movs r0, #0x34 + muls r1, r0, r1 + ldr r0, [r2] + adds r0, r0, r1 + adds r0, #0xc + bl FrontierSpeechToString + b _081A82C2 + .align 2, 0 +_081A8294: .4byte 0x02037282 +_081A8298: .4byte 0x0203886A +_081A829C: .4byte 0x0000012B +_081A82A0: .4byte 0x0203B954 +_081A82A4: + cmp r0, #1 + bne _081A82C2 + ldr r3, _081A82C8 + ldrh r1, [r3] + ldr r0, _081A82CC + cmp r1, r0 + bhi _081A82C2 + ldr r2, _081A82D0 + movs r0, #0x34 + muls r1, r0, r1 + ldr r0, [r2] + adds r0, r0, r1 + adds r0, #0xc + bl FrontierSpeechToString +_081A82C2: + pop {r0} + bx r0 + .align 2, 0 +_081A82C8: .4byte 0x0203886C +_081A82CC: .4byte 0x0000012B +_081A82D0: .4byte 0x0203B954 + thumb_func_end BufferRecordMixingTrainerMessage + + thumb_func_start AtLeastTwoAliveMons +AtLeastTwoAliveMons: @ 0x081A82D4 + push {r4, r5, r6, lr} + ldr r5, _081A8304 + movs r6, #0 + movs r4, #0 +_081A82DC: + adds r0, r5, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + bne _081A82EE + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_081A82EE: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r5, #0x64 + cmp r4, #2 + bls _081A82DC + cmp r6, #1 + bhi _081A8308 + movs r0, #1 + b _081A830A + .align 2, 0 +_081A8304: .4byte 0x02024190 +_081A8308: + movs r0, #0 +_081A830A: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end AtLeastTwoAliveMons + + thumb_func_start GetPikeQueenFightType +GetPikeQueenFightType: @ 0x081A8310 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + movs r6, #0 + ldr r1, _081A8360 + ldr r2, [r1] + ldr r3, _081A8364 + adds r1, r2, r3 + ldrb r1, [r1] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1d + ldr r3, _081A8368 + adds r2, r2, r3 + adds r2, r2, r1 + lsrs r4, r0, #0x18 + ldrh r2, [r2] + adds r0, r4, r2 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r0, #5 + bl GetPlayerSymbolCountForFacility + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + blt _081A8370 + cmp r2, #1 + bgt _081A8370 + ldr r1, _081A836C + adds r0, r2, #0 + adds r0, #0x14 + adds r0, r0, r1 + ldrb r0, [r0] + ldrb r1, [r1, #0x17] + subs r0, r0, r1 + cmp r4, r0 + bne _081A83B4 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + b _081A83B4 + .align 2, 0 +_081A8360: .4byte 0x03005AF0 +_081A8364: .4byte 0x00000CA9 +_081A8368: .4byte 0x00000E04 +_081A836C: .4byte 0x085DDE14 +_081A8370: + ldr r5, _081A838C + movs r0, #5 + lsls r3, r0, #2 + adds r0, r3, r5 + ldrb r1, [r0] + adds r0, r5, #3 + adds r0, r3, r0 + ldrb r2, [r0] + subs r1, r1, r2 + cmp r4, r1 + bne _081A8390 + movs r6, #3 + b _081A83B4 + .align 2, 0 +_081A838C: .4byte 0x085DDE14 +_081A8390: + adds r0, r5, #1 + adds r0, r3, r0 + ldrb r1, [r0] + subs r0, r1, r2 + cmp r4, r0 + beq _081A83B2 + cmp r4, r1 + bls _081A83B4 + subs r0, r4, r1 + adds r0, r0, r2 + adds r1, r5, #2 + adds r1, r3, r1 + ldrb r1, [r1] + bl __modsi3 + cmp r0, #0 + bne _081A83B4 +_081A83B2: + movs r6, #4 +_081A83B4: + adds r0, r6, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end GetPikeQueenFightType + + thumb_func_start GetCurrentRoomPikeQueenFightType +GetCurrentRoomPikeQueenFightType: @ 0x081A83BC + push {r4, lr} + ldr r4, _081A83D4 + movs r0, #0 + bl GetPikeQueenFightType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081A83D4: .4byte 0x02037290 + thumb_func_end GetCurrentRoomPikeQueenFightType + + thumb_func_start HealSomeMonsBeforePikeQueen +HealSomeMonsBeforePikeQueen: @ 0x081A83D8 + push {r4, lr} + ldr r3, _081A840C + ldr r2, _081A8410 + ldr r0, _081A8414 + ldr r0, [r0] + movs r1, #0xe1 + lsls r1, r1, #4 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + lsls r0, r1, #1 + adds r0, r0, r1 + ldrh r2, [r2] + adds r0, r0, r2 + adds r0, r0, r3 + ldrb r4, [r0] + adds r0, r4, #0 + bl TryHealMons + ldr r0, _081A8418 + strh r4, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081A840C: .4byte 0x085DDEAD +_081A8410: .4byte 0x02037286 +_081A8414: .4byte 0x03005AF0 +_081A8418: .4byte 0x02037290 + thumb_func_end HealSomeMonsBeforePikeQueen + + thumb_func_start SetHealingRoomsDisabled +SetHealingRoomsDisabled: @ 0x081A841C + ldr r0, _081A8438 + ldr r2, [r0] + ldr r0, _081A843C + ldrb r1, [r0] + movs r0, #0xe1 + lsls r0, r0, #4 + adds r2, r2, r0 + lsls r1, r1, #7 + ldrb r3, [r2] + movs r0, #0x7f + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + bx lr + .align 2, 0 +_081A8438: .4byte 0x03005AF0 +_081A843C: .4byte 0x02037282 + thumb_func_end SetHealingRoomsDisabled + + thumb_func_start CanAnyPartyMonsBeHealed +CanAnyPartyMonsBeHealed: @ 0x081A8440 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r1, _081A84A4 + movs r0, #1 + strh r0, [r1] + movs r0, #0 + mov sl, r0 +_081A8454: + movs r0, #0 + mov sb, r0 + movs r0, #0x64 + mov r1, sl + muls r1, r0, r1 + ldr r0, _081A84A8 + adds r7, r1, r0 + adds r0, r7, #0 + movs r1, #0x39 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r7, #0 + movs r1, #0x3a + bl GetMonData + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r4, r5 + blo _081A84E2 + adds r0, r7, #0 + movs r1, #0x37 + bl GetMonData + bl pokemon_ailments_get_primary + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081A84E2 + adds r0, r7, #0 + movs r1, #0x15 + bl GetMonData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r6, #0 + b _081A84B2 + .align 2, 0 +_081A84A4: .4byte 0x02037290 +_081A84A8: .4byte 0x02024190 +_081A84AC: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_081A84B2: + cmp r6, #3 + bhi _081A84E6 + adds r1, r6, #0 + adds r1, #0xd + adds r0, r7, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r1, r8 + adds r2, r6, #0 + bl CalculatePPWithBonus + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r1, r6, #0 + adds r1, #0x11 + adds r0, r7, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, r5 + bhs _081A84AC +_081A84E2: + movs r0, #1 + mov sb, r0 +_081A84E6: + mov r0, sb + cmp r0, #1 + bne _081A84F8 + ldr r1, _081A84F4 + movs r0, #0 + strh r0, [r1] + b _081A8506 + .align 2, 0 +_081A84F4: .4byte 0x02037290 +_081A84F8: + mov r0, sl + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + cmp r0, #2 + bls _081A8454 +_081A8506: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end CanAnyPartyMonsBeHealed + + thumb_func_start BackupMonHeldItems +BackupMonHeldItems: @ 0x081A8514 + push {r4, r5, r6, r7, lr} + movs r5, #0 + ldr r7, _081A8558 + ldr r6, _081A855C +_081A851C: + ldr r0, [r6] + lsls r4, r5, #1 + ldr r1, _081A8560 + adds r0, r0, r1 + adds r0, r0, r4 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + movs r2, #0xea + lsls r2, r2, #1 + adds r1, r1, r2 + ldr r0, [r7] + adds r0, r0, r1 + movs r1, #0xc + bl GetMonData + ldr r1, [r6] + ldr r2, _081A8564 + adds r1, r1, r2 + adds r1, r1, r4 + strh r0, [r1] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #2 + bls _081A851C + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A8558: .4byte 0x03005AEC +_081A855C: .4byte 0x03005AF0 +_081A8560: .4byte 0x00000CAA +_081A8564: .4byte 0x00000E12 + thumb_func_end BackupMonHeldItems + + thumb_func_start RestoreMonHeldItems +RestoreMonHeldItems: @ 0x081A8568 + push {r4, lr} + movs r4, #0 +_081A856C: + ldr r0, _081A85A0 + ldr r2, [r0] + lsls r3, r4, #1 + ldr r1, _081A85A4 + adds r0, r2, r1 + adds r0, r0, r3 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081A85A8 + adds r0, r0, r1 + ldr r1, _081A85AC + adds r3, r3, r1 + adds r2, r2, r3 + movs r1, #0xc + bl SetMonData + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #2 + bls _081A856C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081A85A0: .4byte 0x03005AF0 +_081A85A4: .4byte 0x00000CAA +_081A85A8: .4byte 0x0202412C +_081A85AC: .4byte 0x00000E12 + thumb_func_end RestoreMonHeldItems + + thumb_func_start InitPikeChallenge +InitPikeChallenge: @ 0x081A85B0 + push {r4, r5, r6, lr} + ldr r3, _081A860C + ldr r1, [r3] + ldr r2, _081A8610 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r5, r0, #0x1e + ldr r0, _081A8614 + adds r1, r1, r0 + movs r4, #0 + strb r4, [r1] + ldr r1, [r3] + ldr r6, _081A8618 + adds r0, r1, r6 + strh r4, [r0] + adds r1, r1, r2 + ldrb r2, [r1] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r3, [r3] + ldr r0, _081A861C + adds r2, r3, r0 + ldr r1, _081A8620 + lsls r0, r5, #2 + adds r0, r0, r1 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _081A85FC + lsls r1, r5, #1 + ldr r2, _081A8624 + adds r0, r3, r2 + adds r0, r0, r1 + strh r4, [r0] +_081A85FC: + ldr r0, _081A8628 + strh r4, [r0] + ldr r1, _081A862C + movs r0, #0 + strb r0, [r1] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081A860C: .4byte 0x03005AF0 +_081A8610: .4byte 0x00000CA9 +_081A8614: .4byte 0x00000CA8 +_081A8618: .4byte 0x00000CB2 +_081A861C: .4byte 0x00000CDC +_081A8620: .4byte 0x085DDEC8 +_081A8624: .4byte 0x00000E04 +_081A8628: .4byte 0x0203886A +_081A862C: .4byte 0x02023FDE + thumb_func_end InitPikeChallenge + + thumb_func_start CanEncounterWildMon +CanEncounterWildMon: @ 0x081A8630 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r4, _081A8680 + adds r0, r4, #0 + movs r1, #6 + bl GetMonData + cmp r0, #0 + bne _081A8684 + adds r0, r4, #0 + bl GetMonAbility + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x33 + beq _081A8656 + cmp r0, #0x16 + bne _081A8684 +_081A8656: + adds r0, r4, #0 + movs r1, #0x38 + bl GetMonData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + bls _081A8684 + subs r0, #5 + cmp r5, r0 + bgt _081A8684 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _081A8684 + movs r0, #0 + b _081A8686 + .align 2, 0 +_081A8680: .4byte 0x02024190 +_081A8684: + movs r0, #1 +_081A8686: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end CanEncounterWildMon + + thumb_func_start SpeciesToPikeMonId +SpeciesToPikeMonId: @ 0x081A868C + push {lr} + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _081A869C + cmp r2, r0 + bne _081A86A0 + movs r1, #0 + b _081A86AA + .align 2, 0 +_081A869C: .4byte 0x0000017B +_081A86A0: + ldr r0, _081A86B0 + movs r1, #2 + cmp r2, r0 + bne _081A86AA + movs r1, #1 +_081A86AA: + adds r0, r1, #0 + pop {r1} + bx r1 + .align 2, 0 +_081A86B0: .4byte 0x00000149 + thumb_func_end SpeciesToPikeMonId + diff --git a/asm/battle_pyramid.s b/asm/battle_pyramid.s new file mode 100644 index 0000000..630143a --- /dev/null +++ b/asm/battle_pyramid.s @@ -0,0 +1,3801 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start CallBattlePyramidFunction +CallBattlePyramidFunction: @ 0x081A8BFC + push {lr} + ldr r1, _081A8C14 + ldr r0, _081A8C18 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + thumb_func_end CallBattlePyramidFunction + + thumb_func_start sub_081A8C10 +sub_081A8C10: @ 0x081A8C10 + bx r0 + .align 2, 0 +_081A8C14: .4byte 0x085DF718 +_081A8C18: .4byte 0x02037280 + thumb_func_end sub_081A8C10 + + thumb_func_start InitPyramidChallenge +InitPyramidChallenge: @ 0x081A8C1C + push {r4, r5, r6, lr} + ldr r3, _081A8C5C + ldr r1, [r3] + ldr r4, _081A8C60 + adds r0, r1, r4 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r5, r0, #0x1e + ldr r0, _081A8C64 + adds r1, r1, r0 + movs r2, #0 + strb r2, [r1] + ldr r1, [r3] + ldr r6, _081A8C68 + adds r0, r1, r6 + strh r2, [r0] + adds r1, r1, r4 + ldrb r2, [r1] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + cmp r5, #0 + beq _081A8C70 + ldr r0, [r3] + ldr r1, _081A8C6C + adds r0, r0, r1 + ldr r2, [r0] + movs r0, #0x80 + lsls r0, r0, #6 + b _081A8C7C + .align 2, 0 +_081A8C5C: .4byte 0x03005AF0 +_081A8C60: .4byte 0x00000CA9 +_081A8C64: .4byte 0x00000CA8 +_081A8C68: .4byte 0x00000CB2 +_081A8C6C: .4byte 0x00000CDC +_081A8C70: + ldr r0, [r3] + ldr r6, _081A8CA8 + adds r0, r0, r6 + ldr r2, [r0] + movs r0, #0x80 + lsls r0, r0, #5 +_081A8C7C: + ands r2, r0 + cmp r2, #0 + bne _081A8C94 + ldr r0, [r3] + lsls r1, r5, #1 + ldr r3, _081A8CAC + adds r0, r0, r3 + adds r0, r0, r1 + strh r2, [r0] + adds r0, r5, #0 + bl InitPyramidBagItems +_081A8C94: + bl InitBattlePyramidBagCursorPosition + ldr r0, _081A8CB0 + movs r1, #0 + strh r1, [r0] + ldr r0, _081A8CB4 + strb r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081A8CA8: .4byte 0x00000CDC +_081A8CAC: .4byte 0x00000E1A +_081A8CB0: .4byte 0x0203886A +_081A8CB4: .4byte 0x02023FDE + thumb_func_end InitPyramidChallenge + + thumb_func_start GetBattlePyramidData +GetBattlePyramidData: @ 0x081A8CB8 + push {r4, lr} + ldr r1, _081A8CE0 + ldr r0, [r1] + ldr r2, _081A8CE4 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r4, r0, #0x1e + ldr r0, _081A8CE8 + ldrh r0, [r0] + adds r3, r1, #0 + cmp r0, #6 + bls _081A8CD4 + b _081A8DBA +_081A8CD4: + lsls r0, r0, #2 + ldr r1, _081A8CEC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081A8CE0: .4byte 0x03005AF0 +_081A8CE4: .4byte 0x00000CA9 +_081A8CE8: .4byte 0x02037282 +_081A8CEC: .4byte 0x081A8CF0 +_081A8CF0: @ jump table + .4byte _081A8D0C @ case 0 + .4byte _081A8D1C @ case 1 + .4byte _081A8D34 @ case 2 + .4byte _081A8D64 @ case 3 + .4byte _081A8D78 @ case 4 + .4byte _081A8D90 @ case 5 + .4byte _081A8DA8 @ case 6 +_081A8D0C: + ldr r0, _081A8D14 + ldr r1, [r3] + ldr r3, _081A8D18 + b _081A8D7E + .align 2, 0 +_081A8D14: .4byte 0x02037290 +_081A8D18: .4byte 0x00000E18 +_081A8D1C: + ldr r2, _081A8D2C + ldr r0, [r3] + lsls r1, r4, #1 + ldr r3, _081A8D30 + adds r0, r0, r3 + adds r0, r0, r1 + ldrh r0, [r0] + b _081A8DB8 + .align 2, 0 +_081A8D2C: .4byte 0x02037290 +_081A8D30: .4byte 0x00000E1A +_081A8D34: + cmp r4, #0 + beq _081A8D4C + ldr r2, _081A8D44 + ldr r0, [r3] + ldr r1, _081A8D48 + adds r0, r0, r1 + b _081A8DB0 + .align 2, 0 +_081A8D44: .4byte 0x02037290 +_081A8D48: .4byte 0x00000CDC +_081A8D4C: + ldr r2, _081A8D5C + ldr r0, [r3] + ldr r3, _081A8D60 + adds r0, r0, r3 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #5 + b _081A8DB6 + .align 2, 0 +_081A8D5C: .4byte 0x02037290 +_081A8D60: .4byte 0x00000CDC +_081A8D64: + ldr r0, _081A8D70 + ldr r1, [r3] + ldr r2, _081A8D74 + adds r1, r1, r2 + b _081A8D80 + .align 2, 0 +_081A8D70: .4byte 0x02037290 +_081A8D74: .4byte 0x00000E1A +_081A8D78: + ldr r0, _081A8D88 + ldr r1, [r3] + ldr r3, _081A8D8C +_081A8D7E: + adds r1, r1, r3 +_081A8D80: + ldrh r1, [r1] + strh r1, [r0] + b _081A8DBA + .align 2, 0 +_081A8D88: .4byte 0x02037290 +_081A8D8C: .4byte 0x00000E1C +_081A8D90: + ldr r2, _081A8DA0 + ldr r0, [r3] + ldr r1, _081A8DA4 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #5 + b _081A8DB6 + .align 2, 0 +_081A8DA0: .4byte 0x02037290 +_081A8DA4: .4byte 0x00000CDC +_081A8DA8: + ldr r2, _081A8DC0 + ldr r0, [r3] + ldr r3, _081A8DC4 + adds r0, r0, r3 +_081A8DB0: + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #6 +_081A8DB6: + ands r0, r1 +_081A8DB8: + strh r0, [r2] +_081A8DBA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081A8DC0: .4byte 0x02037290 +_081A8DC4: .4byte 0x00000CDC + thumb_func_end GetBattlePyramidData + + thumb_func_start SetBattlePyramidData +SetBattlePyramidData: @ 0x081A8DC8 + push {lr} + ldr r0, _081A8DEC + ldr r2, [r0] + ldr r1, _081A8DF0 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r1, r0, #0x1e + ldr r0, _081A8DF4 + ldrh r0, [r0] + cmp r0, #1 + beq _081A8E18 + cmp r0, #1 + bgt _081A8DF8 + cmp r0, #0 + beq _081A8E02 + b _081A8EA6 + .align 2, 0 +_081A8DEC: .4byte 0x03005AF0 +_081A8DF0: .4byte 0x00000CA9 +_081A8DF4: .4byte 0x02037282 +_081A8DF8: + cmp r0, #2 + beq _081A8E30 + cmp r0, #7 + beq _081A8E9C + b _081A8EA6 +_081A8E02: + ldr r0, _081A8E10 + ldrh r1, [r0] + ldr r3, _081A8E14 + adds r0, r2, r3 + strh r1, [r0] + b _081A8EA6 + .align 2, 0 +_081A8E10: .4byte 0x02037284 +_081A8E14: .4byte 0x00000E18 +_081A8E18: + lsls r1, r1, #1 + ldr r3, _081A8E28 + adds r0, r2, r3 + adds r0, r0, r1 + ldr r1, _081A8E2C + ldrh r1, [r1] + strh r1, [r0] + b _081A8EA6 + .align 2, 0 +_081A8E28: .4byte 0x00000E1A +_081A8E2C: .4byte 0x02037284 +_081A8E30: + cmp r1, #0 + beq _081A8E64 + ldr r0, _081A8E48 + ldrh r0, [r0] + cmp r0, #0 + beq _081A8E50 + ldr r1, _081A8E4C + adds r0, r2, r1 + ldr r1, [r0] + movs r2, #0x80 + lsls r2, r2, #6 + b _081A8E76 + .align 2, 0 +_081A8E48: .4byte 0x02037284 +_081A8E4C: .4byte 0x00000CDC +_081A8E50: + ldr r3, _081A8E5C + adds r0, r2, r3 + ldr r1, [r0] + ldr r2, _081A8E60 + b _081A8E8C + .align 2, 0 +_081A8E5C: .4byte 0x00000CDC +_081A8E60: .4byte 0xFFFFDFFF +_081A8E64: + ldr r0, _081A8E7C + ldrh r0, [r0] + cmp r0, #0 + beq _081A8E84 + ldr r1, _081A8E80 + adds r0, r2, r1 + ldr r1, [r0] + movs r2, #0x80 + lsls r2, r2, #5 +_081A8E76: + orrs r1, r2 + str r1, [r0] + b _081A8EA6 + .align 2, 0 +_081A8E7C: .4byte 0x02037284 +_081A8E80: .4byte 0x00000CDC +_081A8E84: + ldr r3, _081A8E94 + adds r0, r2, r3 + ldr r1, [r0] + ldr r2, _081A8E98 +_081A8E8C: + ands r1, r2 + str r1, [r0] + b _081A8EA6 + .align 2, 0 +_081A8E94: .4byte 0x00000CDC +_081A8E98: .4byte 0xFFFFEFFF +_081A8E9C: + ldr r0, _081A8EAC + ldrh r1, [r0] + ldr r3, _081A8EB0 + adds r0, r2, r3 + strb r1, [r0] +_081A8EA6: + pop {r0} + bx r0 + .align 2, 0 +_081A8EAC: .4byte 0x02037284 +_081A8EB0: .4byte 0x00000E2A + thumb_func_end SetBattlePyramidData + + thumb_func_start sub_081A8EB4 +sub_081A8EB4: @ 0x081A8EB4 + push {r4, lr} + ldr r4, _081A8EEC + ldr r0, [r4] + ldr r1, _081A8EF0 + ldrh r1, [r1] + ldr r2, _081A8EF4 + adds r0, r0, r2 + strb r1, [r0] + movs r0, #0x80 + lsls r0, r0, #7 + movs r1, #0 + bl VarSet + ldr r1, [r4] + ldr r0, _081A8EF8 + adds r1, r1, r0 + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + bl save_serialize_map + movs r0, #1 + bl TrySavingData + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081A8EEC: .4byte 0x03005AF0 +_081A8EF0: .4byte 0x02037282 +_081A8EF4: .4byte 0x00000CA8 +_081A8EF8: .4byte 0x00000CA9 + thumb_func_end sub_081A8EB4 + + thumb_func_start SetBattlePyramidRewardItem +SetBattlePyramidRewardItem: @ 0x081A8EFC + push {r4, r5, lr} + ldr r4, _081A8F38 + ldr r1, [r4] + ldr r2, _081A8F3C + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1d + ldr r2, _081A8F40 + adds r1, r1, r2 + adds r1, r1, r0 + ldrh r0, [r1] + cmp r0, #0x29 + bls _081A8F4C + bl Random + ldr r4, [r4] + ldr r5, _081A8F44 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #9 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0xf + adds r0, r0, r5 + ldrh r0, [r0] + ldr r1, _081A8F48 + adds r4, r4, r1 + b _081A8F6A + .align 2, 0 +_081A8F38: .4byte 0x03005AF0 +_081A8F3C: .4byte 0x00000CA9 +_081A8F40: .4byte 0x00000E1A +_081A8F44: .4byte 0x085DF76C +_081A8F48: .4byte 0x00000E18 +_081A8F4C: + bl Random + ldr r4, [r4] + ldr r5, _081A8F74 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #6 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0xf + adds r0, r0, r5 + ldrh r0, [r0] + ldr r2, _081A8F78 + adds r4, r4, r2 +_081A8F6A: + strh r0, [r4] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081A8F74: .4byte 0x085DF760 +_081A8F78: .4byte 0x00000E18 + thumb_func_end SetBattlePyramidRewardItem + + thumb_func_start GiveBattlePyramidRewardItem +GiveBattlePyramidRewardItem: @ 0x081A8F7C + push {r4, r5, lr} + ldr r4, _081A8FB4 + ldr r0, [r4] + ldr r1, _081A8FB8 + adds r0, r0, r1 + ldrh r0, [r0] + movs r1, #1 + bl AddBagItem + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #1 + bne _081A8FC4 + ldr r0, [r4] + ldr r1, _081A8FB8 + adds r0, r0, r1 + ldrh r0, [r0] + ldr r1, _081A8FBC + bl CopyItemName + ldr r0, [r4] + ldr r1, _081A8FB8 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0] + ldr r0, _081A8FC0 + strh r5, [r0] + b _081A8FCA + .align 2, 0 +_081A8FB4: .4byte 0x03005AF0 +_081A8FB8: .4byte 0x00000E18 +_081A8FBC: .4byte 0x02021C40 +_081A8FC0: .4byte 0x02037290 +_081A8FC4: + ldr r1, _081A8FD0 + movs r0, #0 + strh r0, [r1] +_081A8FCA: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081A8FD0: .4byte 0x02037290 + thumb_func_end GiveBattlePyramidRewardItem + + thumb_func_start SeedPyramidFloor +SeedPyramidFloor: @ 0x081A8FD4 + push {r4, r5, lr} + movs r4, #0 + ldr r5, _081A9004 +_081A8FDA: + bl Random + ldr r1, [r5] + lsls r2, r4, #1 + ldr r3, _081A9008 + adds r1, r1, r3 + adds r1, r1, r2 + strh r0, [r1] + adds r4, #1 + cmp r4, #3 + ble _081A8FDA + ldr r0, _081A9004 + ldr r0, [r0] + ldr r1, _081A900C + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081A9004: .4byte 0x03005AF0 +_081A9008: .4byte 0x00000E22 +_081A900C: .4byte 0x00000E2A + thumb_func_end SeedPyramidFloor + + thumb_func_start SetPickupItem +SetPickupItem: @ 0x081A9010 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r5, _081A90E0 + ldr r1, [r5] + ldr r2, _081A90E4 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + mov sl, r0 + adds r2, #9 + adds r0, r1, r2 + ldrh r0, [r0] + str r0, [sp] + mov r2, sl + lsls r0, r2, #1 + ldr r2, _081A90E8 + adds r1, r1, r2 + adds r1, r1, r0 + ldrh r0, [r1] + movs r1, #7 + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + cmp r0, #0x13 + bls _081A9054 + movs r0, #0x13 + mov r8, r0 +_081A9054: + bl GetPyramidFloorTemplateId + lsls r0, r0, #0x18 + ldr r1, _081A90EC + ldrh r4, [r1] + ldr r1, _081A90F0 + lsrs r0, r0, #0x14 + adds r0, r0, r1 + ldrb r0, [r0, #1] + subs r4, r4, r0 + subs r7, r4, #1 + ldr r1, [r5] + lsrs r0, r7, #0x1f + adds r0, r7, r0 + asrs r0, r0, #1 + lsls r0, r0, #1 + ldr r2, _081A90F4 + adds r1, r1, r2 + adds r1, r1, r0 + ldrh r6, [r1] + adds r0, r6, #0 + bl SeedRng2 + movs r5, #0 + mov r0, r8 + lsls r0, r0, #2 + mov sb, r0 + cmp r5, r4 + bge _081A90A8 +_081A908E: + bl Random2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r5, #1 + adds r0, r7, #1 + cmp r5, r0 + blt _081A908E +_081A90A8: + ldr r0, _081A90F8 + ldr r1, [sp] + adds r0, r1, r0 + ldrb r5, [r0] + ldr r1, _081A90FC + ldr r3, _081A9100 + ldr r4, _081A9104 + cmp r5, #0x3e + bhi _081A90D4 + lsls r2, r5, #1 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r6, r0 + blt _081A90D4 + adds r0, r2, r1 +_081A90C6: + adds r0, #2 + adds r5, #1 + cmp r5, #0x3e + bhi _081A90D4 + ldrb r2, [r0] + cmp r6, r2 + bge _081A90C6 +_081A90D4: + mov r0, sl + cmp r0, #0 + beq _081A910C + ldr r2, _081A9108 + b _081A910E + .align 2, 0 +_081A90E0: .4byte 0x03005AF0 +_081A90E4: .4byte 0x00000CA9 +_081A90E8: .4byte 0x00000E1A +_081A90EC: .4byte 0x02037292 +_081A90F0: .4byte 0x085DEE88 +_081A90F4: .4byte 0x00000E22 +_081A90F8: .4byte 0x085DF372 +_081A90FC: .4byte 0x085DF2F4 +_081A9100: .4byte 0x02037278 +_081A9104: .4byte 0x0203727A +_081A9108: .4byte 0x085DF164 +_081A910C: + ldr r2, _081A913C +_081A910E: + lsls r0, r5, #1 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #1 + mov r1, sb + add r1, r8 + lsls r1, r1, #2 + adds r0, r0, r1 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r3] + movs r0, #1 + strh r0, [r4] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A913C: .4byte 0x085DEFD4 + thumb_func_end SetPickupItem + + thumb_func_start HidePyramidItem +HidePyramidItem: @ 0x081A9140 + push {r4, r5, lr} + ldr r0, _081A9154 + ldr r0, [r0] + movs r1, #0xc7 + lsls r1, r1, #4 + adds r3, r0, r1 + movs r2, #0 + ldr r4, _081A9158 + b _081A916C + .align 2, 0 +_081A9154: .4byte 0x03005AEC +_081A9158: .4byte 0x02037292 +_081A915C: + adds r2, #1 + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r0, r0, r3 + ldrb r0, [r0] + cmp r0, #0 + beq _081A9182 +_081A916C: + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r1, r0, r3 + ldrb r0, [r1] + ldrh r5, [r4] + cmp r0, r5 + bne _081A915C + ldr r0, _081A9188 + strh r0, [r1, #4] + strh r0, [r1, #6] +_081A9182: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081A9188: .4byte 0x00007FFF + thumb_func_end HidePyramidItem + + thumb_func_start InitPyramidFacilityTrainers +InitPyramidFacilityTrainers: @ 0x081A918C + ldr r1, _081A9194 + ldr r0, _081A9198 + str r0, [r1] + bx lr + .align 2, 0 +_081A9194: .4byte 0x0203B954 +_081A9198: .4byte 0x085B4A10 + thumb_func_end InitPyramidFacilityTrainers + + thumb_func_start ShowPostBattleHintText +ShowPostBattleHintText: @ 0x081A919C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #8 + movs r0, #0 + mov sb, r0 + movs r7, #0 + ldr r0, _081A91EC + ldr r0, [r0] + movs r1, #0xc7 + lsls r1, r1, #4 + adds r1, r1, r0 + mov r8, r1 + ldr r2, _081A91F0 + ldr r0, _081A91F4 + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #8] + bl LocalIdToPyramidTrainerId + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + movs r6, #0 + ldr r2, _081A91F8 + ldr r0, _081A91FC + ldr r1, [r0] + movs r0, #0x34 + muls r0, r5, r0 + adds r0, r0, r1 + ldrb r1, [r2] + ldrb r0, [r0] + cmp r1, r0 + bne _081A9200 + ldrb r2, [r2, #1] + mov sb, r2 + b _081A9226 + .align 2, 0 +_081A91EC: .4byte 0x03005AEC +_081A91F0: .4byte 0x02036FF0 +_081A91F4: .4byte 0x03005B50 +_081A91F8: .4byte 0x085DF454 +_081A91FC: .4byte 0x0203B954 +_081A9200: + adds r6, #1 + cmp r6, #0x31 + bhi _081A9226 + ldr r4, _081A925C + lsls r3, r6, #1 + adds r2, r3, r4 + ldr r0, _081A9260 + ldr r1, [r0] + movs r0, #0x34 + muls r0, r5, r0 + adds r0, r0, r1 + ldrb r1, [r2] + ldrb r0, [r0] + cmp r1, r0 + bne _081A9200 + adds r0, r4, #1 + adds r0, r3, r0 + ldrb r0, [r0] + mov sb, r0 +_081A9226: + ldr r3, _081A9264 + ldr r2, _081A9268 + ldr r0, _081A926C + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #8] + subs r0, #1 + adds r0, r0, r3 + ldrb r0, [r0] + str r0, [sp] + movs r6, #0 + mov r3, sb + lsls r3, r3, #2 + mov sb, r3 +_081A9248: + ldr r0, [sp] + cmp r0, #8 + bls _081A9250 + b _081A9360 +_081A9250: + lsls r0, r0, #2 + ldr r1, _081A9270 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081A925C: .4byte 0x085DF454 +_081A9260: .4byte 0x0203B954 +_081A9264: .4byte 0x085DF710 +_081A9268: .4byte 0x02036FF0 +_081A926C: .4byte 0x03005B50 +_081A9270: .4byte 0x081A9274 +_081A9274: @ jump table + .4byte _081A9298 @ case 0 + .4byte _081A92A8 @ case 1 + .4byte _081A92EA @ case 2 + .4byte _081A932C @ case 3 + .4byte _081A9332 @ case 4 + .4byte _081A9338 @ case 5 + .4byte _081A933E @ case 6 + .4byte _081A934A @ case 7 + .4byte _081A9356 @ case 8 +_081A9298: + mov r0, sp + movs r1, #8 + movs r2, #0 + bl GetPostBattleDirectionHintTextIndex + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + b _081A9366 +_081A92A8: + movs r6, #0 + ldr r2, _081A92B4 + mov r4, r8 + adds r4, #4 + mov r5, r8 + b _081A92D8 + .align 2, 0 +_081A92B4: .4byte 0x7FFF0000 +_081A92B8: + ldrb r0, [r5, #1] + cmp r0, #0x3b + bne _081A92D2 + movs r1, #0 + ldrsh r0, [r4, r1] + asrs r1, r2, #0x10 + cmp r0, r1 + beq _081A92D2 + movs r3, #2 + ldrsh r0, [r4, r3] + cmp r0, r1 + beq _081A92D2 + adds r7, #1 +_081A92D2: + adds r4, #0x18 + adds r5, #0x18 + adds r6, #1 +_081A92D8: + str r2, [sp, #4] + bl GetNumBattlePyramidEventObjects + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, [sp, #4] + cmp r6, r0 + blt _081A92B8 + b _081A9366 +_081A92EA: + bl GetPyramidFloorTemplateId + lsls r0, r0, #0x18 + ldr r1, _081A931C + lsrs r0, r0, #0x14 + adds r0, r0, r1 + ldrb r7, [r0, #1] + ldr r0, _081A9320 + ldr r0, [r0] + ldr r1, _081A9324 + adds r0, r0, r1 + ldrb r2, [r0] + ldr r1, _081A9328 + movs r6, #7 +_081A9306: + ldr r0, [r1] + ands r0, r2 + cmp r0, #0 + beq _081A9310 + subs r7, #1 +_081A9310: + adds r1, #4 + subs r6, #1 + cmp r6, #0 + bge _081A9306 + b _081A9366 + .align 2, 0 +_081A931C: .4byte 0x085DEE88 +_081A9320: .4byte 0x03005AF0 +_081A9324: .4byte 0x00000E2A +_081A9328: .4byte 0x082FACB4 +_081A932C: + mov r0, sp + movs r1, #8 + b _081A934E +_081A9332: + mov r0, sp + movs r1, #8 + b _081A9342 +_081A9338: + mov r0, sp + movs r1, #0x10 + b _081A934E +_081A933E: + mov r0, sp + movs r1, #0x10 +_081A9342: + movs r2, #1 + bl GetPostBattleDirectionHintTextIndex + b _081A9360 +_081A934A: + mov r0, sp + movs r1, #0x18 +_081A934E: + movs r2, #2 + bl GetPostBattleDirectionHintTextIndex + b _081A9360 +_081A9356: + mov r0, sp + movs r1, #0x18 + movs r2, #1 + bl GetPostBattleDirectionHintTextIndex +_081A9360: + cmp r6, #0 + bne _081A9366 + b _081A9248 +_081A9366: + ldr r1, _081A938C + add r1, sb + ldr r0, [sp] + ldr r1, [r1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + lsls r0, r7, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl ShowFieldMessage + add sp, #8 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A938C: .4byte 0x085DF6F8 + thumb_func_end ShowPostBattleHintText + + thumb_func_start UpdatePyramidWinStreak +UpdatePyramidWinStreak: @ 0x081A9390 + push {r4, r5, lr} + ldr r5, _081A93D0 + ldr r1, [r5] + ldr r2, _081A93D4 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r2, r0, #0x1d + ldr r4, _081A93D8 + adds r1, r1, r4 + adds r1, r1, r2 + ldrh r3, [r1] + ldr r0, _081A93DC + cmp r3, r0 + bhi _081A93B2 + adds r0, r3, #1 + strh r0, [r1] +_081A93B2: + ldr r0, [r5] + adds r1, r0, r4 + adds r1, r1, r2 + ldr r3, _081A93E0 + adds r0, r0, r3 + adds r0, r0, r2 + ldrh r1, [r1] + ldrh r2, [r0] + cmp r1, r2 + bls _081A93C8 + strh r1, [r0] +_081A93C8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081A93D0: .4byte 0x03005AF0 +_081A93D4: .4byte 0x00000CA9 +_081A93D8: .4byte 0x00000E1A +_081A93DC: .4byte 0x000003E6 +_081A93E0: .4byte 0x00000E1E + thumb_func_end UpdatePyramidWinStreak + + thumb_func_start GetInBattlePyramid +GetInBattlePyramid: @ 0x081A93E4 + push {r4, lr} + ldr r4, _081A93F8 + bl InBattlePyramid + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081A93F8: .4byte 0x02037290 + thumb_func_end GetInBattlePyramid + + thumb_func_start UpdatePyramidLightRadius +UpdatePyramidLightRadius: @ 0x081A93FC + push {r4, lr} + ldr r0, _081A940C + ldrh r0, [r0] + cmp r0, #0 + beq _081A9410 + cmp r0, #1 + beq _081A942C + b _081A94CC + .align 2, 0 +_081A940C: .4byte 0x02037284 +_081A9410: + ldr r0, _081A9420 + ldr r0, [r0] + ldr r1, _081A9424 + ldrh r1, [r1] + ldr r2, _081A9428 + adds r0, r0, r2 + strb r1, [r0] + b _081A94CC + .align 2, 0 +_081A9420: .4byte 0x03005AF0 +_081A9424: .4byte 0x02037282 +_081A9428: .4byte 0x00000E68 +_081A942C: + ldr r4, _081A945C + ldrh r0, [r4] + cmp r0, #1 + beq _081A9488 + cmp r0, #1 + bgt _081A94CC + cmp r0, #0 + bne _081A94CC + ldr r0, _081A9460 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081A94CC + ldr r0, _081A9464 + ldr r0, [r0] + ldr r2, _081A9468 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, #0x77 + bls _081A946C + movs r0, #0x78 + strb r0, [r1] + b _081A9474 + .align 2, 0 +_081A945C: .4byte 0x02037290 +_081A9460: .4byte 0x02037C74 +_081A9464: .4byte 0x03005AF0 +_081A9468: .4byte 0x00000E68 +_081A946C: + ldr r0, _081A9480 + ldrh r0, [r0] + bl PlaySE +_081A9474: + ldr r1, _081A9484 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _081A94CC + .align 2, 0 +_081A9480: .4byte 0x02037286 +_081A9484: .4byte 0x02037290 +_081A9488: + ldr r1, _081A94BC + ldrh r0, [r1] + cmp r0, #0 + beq _081A94C8 + subs r0, #1 + strh r0, [r1] + ldr r3, _081A94C0 + ldr r1, [r3] + ldr r2, _081A94C4 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r0, [r3] + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, #0x78 + bls _081A94B6 + movs r0, #0x78 + strb r0, [r1] + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] +_081A94B6: + bl WriteBattlePyramidViewScanlineEffectBuffer + b _081A94CC + .align 2, 0 +_081A94BC: .4byte 0x02037282 +_081A94C0: .4byte 0x03005AF0 +_081A94C4: .4byte 0x00000E68 +_081A94C8: + movs r0, #2 + strh r0, [r4] +_081A94CC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end UpdatePyramidLightRadius + + thumb_func_start ClearPyramidPartyHeldItems +ClearPyramidPartyHeldItems: @ 0x081A94D4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + movs r1, #0 + mov r0, sp + strh r1, [r0] + movs r5, #0 + movs r0, #0x64 + mov sb, r0 + ldr r1, _081A9534 + mov r8, r1 +_081A94EE: + movs r4, #0 + adds r7, r5, #1 + mov r6, sb + muls r6, r5, r6 +_081A94F6: + ldr r0, _081A9538 + ldr r0, [r0] + lsls r1, r4, #1 + ldr r2, _081A953C + adds r0, r0, r2 + adds r1, r0, r1 + ldrh r0, [r1] + cmp r0, #0 + beq _081A951A + subs r0, #1 + cmp r0, r5 + bne _081A951A + mov r1, r8 + adds r0, r6, r1 + movs r1, #0xc + mov r2, sp + bl SetMonData +_081A951A: + adds r4, #1 + cmp r4, #3 + ble _081A94F6 + adds r5, r7, #0 + cmp r5, #5 + ble _081A94EE + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A9534: .4byte 0x02024190 +_081A9538: .4byte 0x03005AF0 +_081A953C: .4byte 0x00000CAA + thumb_func_end ClearPyramidPartyHeldItems + + thumb_func_start SetPyramidFloorPalette +SetPyramidFloorPalette: @ 0x081A9540 + push {lr} + ldr r0, _081A9550 + movs r1, #0 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_081A9550: .4byte 0x081A9555 + thumb_func_end SetPyramidFloorPalette + + thumb_func_start Task_SetPyramidFloorPalette +Task_SetPyramidFloorPalette: @ 0x081A9554 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _081A958C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _081A9584 + ldr r0, _081A9590 + ldr r0, [r0] + ldr r1, _081A9594 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #5 + ldr r1, _081A9598 + adds r0, r0, r1 + ldr r1, _081A959C + movs r2, #0x10 + bl CpuSet + adds r0, r4, #0 + bl DestroyTask +_081A9584: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081A958C: .4byte 0x02037C74 +_081A9590: .4byte 0x03005AF0 +_081A9594: .4byte 0x00000CB2 +_081A9598: .4byte 0x08D856AC +_081A959C: .4byte 0x02037474 + thumb_func_end Task_SetPyramidFloorPalette + + thumb_func_start sub_081A95A0 +sub_081A95A0: @ 0x081A95A0 + push {lr} + bl sub_0809F6AC + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081A95A0 + + thumb_func_start RestorePyramidPlayerParty +RestorePyramidPlayerParty: @ 0x081A95AC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + movs r0, #0 + str r0, [sp] +_081A95BC: + ldr r0, _081A962C + ldr r0, [r0] + ldr r2, [sp] + lsls r1, r2, #1 + ldr r5, _081A9630 + adds r0, r0, r5 + adds r0, r0, r1 + ldrh r0, [r0] + subs r5, r0, #1 + movs r0, #0 + str r0, [sp, #4] + movs r2, #0x64 + adds r1, r5, #0 + muls r1, r2, r1 + str r1, [sp, #8] + movs r0, #0x8e + lsls r0, r0, #2 + adds r6, r1, r0 + movs r1, #0 + str r1, [sp, #0x10] +_081A95E4: + ldr r2, _081A9634 + ldr r0, [r2] + adds r0, r0, r6 + movs r1, #0xb + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + ldr r3, _081A9638 + ldr r1, [sp, #0x10] + adds r0, r1, r3 + movs r1, #0xb + movs r2, #0 + str r3, [sp, #0x14] + bl GetMonData + ldr r3, [sp, #0x14] + cmp r4, r0 + bne _081A96B4 + movs r6, #0 + adds r2, r5, #1 + str r2, [sp, #0xc] + movs r1, #0x64 + adds r0, r5, #0 + muls r0, r1, r0 + movs r5, #0x8e + lsls r5, r5, #2 + adds r5, r5, r0 + mov sb, r5 + ldr r7, [sp, #4] + muls r7, r1, r7 + mov sl, r3 +_081A9624: + movs r5, #0 + adds r0, r6, #1 + mov r8, r0 + b _081A963E + .align 2, 0 +_081A962C: .4byte 0x03005AF0 +_081A9630: .4byte 0x00000CAA +_081A9634: .4byte 0x03005AEC +_081A9638: .4byte 0x02024190 +_081A963C: + adds r5, #1 +_081A963E: + cmp r5, #3 + bgt _081A9666 + ldr r1, _081A96A8 + ldr r0, [r1] + add r0, sb + adds r1, r5, #0 + adds r1, #0xd + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + adds r1, r6, #0 + adds r1, #0xd + mov r2, sl + adds r0, r7, r2 + movs r2, #0 + bl GetMonData + cmp r4, r0 + bne _081A963C +_081A9666: + cmp r5, #4 + bne _081A9678 + lsls r2, r6, #0x18 + lsrs r2, r2, #0x18 + mov r5, sl + adds r0, r7, r5 + movs r1, #0xa6 + bl SetMonMoveSlot +_081A9678: + mov r6, r8 + cmp r6, #3 + ble _081A9624 + ldr r1, _081A96A8 + ldr r0, [r1] + ldr r2, [sp, #8] + adds r0, r0, r2 + movs r5, #0x8e + lsls r5, r5, #2 + adds r0, r0, r5 + ldr r1, _081A96AC + ldr r2, [sp, #0x10] + adds r1, r2, r1 + movs r2, #0x64 + bl memcpy + ldr r0, _081A96B0 + ldr r5, [sp, #4] + adds r0, r5, r0 + mov r1, sp + ldrb r1, [r1, #0xc] + strb r1, [r0] + b _081A96C4 + .align 2, 0 +_081A96A8: .4byte 0x03005AEC +_081A96AC: .4byte 0x02024190 +_081A96B0: .4byte 0x0203CBC4 +_081A96B4: + ldr r2, [sp, #0x10] + adds r2, #0x64 + str r2, [sp, #0x10] + ldr r0, [sp, #4] + adds r0, #1 + str r0, [sp, #4] + cmp r0, #2 + ble _081A95E4 +_081A96C4: + ldr r1, [sp] + adds r1, #1 + str r1, [sp] + cmp r1, #2 + bgt _081A96D0 + b _081A95BC +_081A96D0: + movs r2, #0 + str r2, [sp] + ldr r4, _081A9704 + ldr r3, _081A9708 + ldr r2, _081A970C +_081A96DA: + ldr r1, [r4] + ldr r5, [sp] + lsls r0, r5, #1 + adds r1, r1, r3 + adds r1, r1, r0 + adds r0, r5, r2 + ldrb r0, [r0] + strh r0, [r1] + adds r5, #1 + str r5, [sp] + cmp r5, #2 + ble _081A96DA + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A9704: .4byte 0x03005AF0 +_081A9708: .4byte 0x00000CAA +_081A970C: .4byte 0x0203CBC4 + thumb_func_end RestorePyramidPlayerParty + + thumb_func_start GetPostBattleDirectionHintTextIndex +GetPostBattleDirectionHintTextIndex: @ 0x081A9710 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sl, r0 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + movs r4, #0 + ldr r0, _081A9798 + ldr r5, [r0, #8] + ldr r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #1 + adds r0, #0xe + adds r5, r5, r0 + movs r3, #0 + ldr r0, _081A979C + mov r8, r0 + ldr r1, _081A97A0 + mov ip, r1 + ldr r0, _081A97A4 + mov sb, r0 +_081A9744: + movs r2, #0 +_081A9746: + lsls r0, r2, #1 + adds r0, r0, r5 + ldrh r1, [r0] + mov r0, r8 + ands r0, r1 + cmp r0, ip + bne _081A9802 + adds r2, #7 + ldr r0, _081A97A8 + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sb + movs r5, #0xc + ldrsh r1, [r0, r5] + subs r2, r2, r1 + adds r1, r3, #7 + movs r3, #0xe + ldrsh r0, [r0, r3] + subs r3, r1, r0 + cmp r2, r6 + bge _081A9786 + rsbs r0, r6, #0 + cmp r2, r0 + ble _081A9786 + cmp r3, r6 + bge _081A9786 + cmp r3, r0 + ble _081A9786 + cmp r7, #0 + bne _081A97FC +_081A9786: + cmp r2, #0 + ble _081A97AC + cmp r3, #0 + ble _081A97AC + movs r4, #3 + cmp r2, r3 + blt _081A97F4 + movs r4, #2 + b _081A97F4 + .align 2, 0 +_081A9798: .4byte 0x03005B20 +_081A979C: .4byte 0x000003FF +_081A97A0: .4byte 0x0000028E +_081A97A4: .4byte 0x02036FF0 +_081A97A8: .4byte 0x03005B50 +_081A97AC: + cmp r2, #0 + bge _081A97BE + cmp r3, #0 + bge _081A97BE + movs r4, #1 + cmp r2, r3 + ble _081A97F4 + movs r4, #0 + b _081A97F4 +_081A97BE: + cmp r2, #0 + bne _081A97CC + movs r4, #0 + cmp r3, #0 + ble _081A97F4 + movs r4, #3 + b _081A97F4 +_081A97CC: + cmp r3, #0 + bne _081A97DA + movs r4, #1 + cmp r2, #0 + ble _081A97F4 + movs r4, #2 + b _081A97F4 +_081A97DA: + cmp r2, #0 + bge _081A97EA + adds r0, r2, r3 + movs r4, #1 + cmp r0, #0 + ble _081A97F4 + movs r4, #3 + b _081A97F4 +_081A97EA: + adds r0, r2, r3 + mvns r0, r0 + asrs r4, r0, #0x1f + movs r0, #2 + ands r4, r0 +_081A97F4: + movs r0, #0 + mov r5, sl + str r0, [r5] + b _081A9810 +_081A97FC: + mov r0, sl + str r7, [r0] + b _081A9810 +_081A9802: + adds r2, #1 + cmp r2, #0x1f + ble _081A9746 + adds r5, #0x5e + adds r3, #1 + cmp r3, #0x1f + ble _081A9744 +_081A9810: + adds r0, r4, #0 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end GetPostBattleDirectionHintTextIndex + + thumb_func_start LocalIdToPyramidTrainerId +LocalIdToPyramidTrainerId: @ 0x081A9820 + lsls r0, r0, #0x18 + ldr r1, _081A9834 + ldr r1, [r1] + lsrs r0, r0, #0x17 + adds r1, r1, r0 + ldr r0, _081A9838 + adds r1, r1, r0 + ldrh r0, [r1] + bx lr + .align 2, 0 +_081A9834: .4byte 0x03005AF0 +_081A9838: .4byte 0x00000CB2 + thumb_func_end LocalIdToPyramidTrainerId + + thumb_func_start GetBattlePyramidTrainerFlag +GetBattlePyramidTrainerFlag: @ 0x081A983C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081A986C + ldr r2, [r1] + ldr r1, _081A9870 + adds r2, r2, r1 + ldr r4, _081A9874 + ldr r3, _081A9878 + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrb r0, [r1, #8] + subs r0, #1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r0, [r0] + ldrb r1, [r2] + ands r0, r1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081A986C: .4byte 0x03005AF0 +_081A9870: .4byte 0x00000E2A +_081A9874: .4byte 0x082FACB4 +_081A9878: .4byte 0x02036FF0 + thumb_func_end GetBattlePyramidTrainerFlag + + thumb_func_start MarkApproachingPyramidTrainersAsBattled +MarkApproachingPyramidTrainersAsBattled: @ 0x081A987C + push {lr} + ldr r0, _081A98AC + ldrh r0, [r0] + bl MarkPyramidTrainerAsBattled + ldr r0, _081A98B0 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + beq _081A98A6 + movs r0, #1 + bl GetChosenApproachingTrainerEventObjectId + ldr r1, _081A98B4 + strb r0, [r1] + ldr r0, _081A98B8 + ldrh r0, [r0] + bl MarkPyramidTrainerAsBattled +_081A98A6: + pop {r0} + bx r0 + .align 2, 0 +_081A98AC: .4byte 0x0203886A +_081A98B0: .4byte 0x02022C90 +_081A98B4: .4byte 0x03005B50 +_081A98B8: .4byte 0x0203886C + thumb_func_end MarkApproachingPyramidTrainersAsBattled + + thumb_func_start MarkPyramidTrainerAsBattled +MarkPyramidTrainerAsBattled: @ 0x081A98BC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + movs r3, #0 + ldr r0, _081A9958 + mov ip, r0 + ldr r6, _081A995C + ldr r1, _081A9960 + mov sl, r1 + ldr r7, _081A9964 + mov sb, r7 + ldr r0, _081A9968 + mov r8, r0 + ldr r4, _081A996C +_081A98E0: + mov r1, sb + ldr r2, [r1] + lsls r0, r3, #1 + mov r7, r8 + adds r1, r2, r7 + adds r1, r1, r0 + ldrh r0, [r1] + cmp r0, r5 + bne _081A98FE + ldr r1, _081A9970 + adds r0, r2, r1 + ldr r1, [r4] + ldrb r2, [r0] + orrs r1, r2 + strb r1, [r0] +_081A98FE: + adds r4, #4 + adds r3, #1 + cmp r3, #7 + ble _081A98E0 + ldrb r1, [r6] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, ip + movs r3, #2 + strb r3, [r0, #6] + mov r7, sl + ldr r2, [r7] + ldr r0, _081A9974 + ldrh r1, [r0] + subs r1, #1 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r2, r2, r0 + ldr r1, _081A9978 + adds r2, r2, r1 + strb r3, [r2] + ldrb r1, [r6] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, ip + ldrh r1, [r0, #0x10] + strh r1, [r0, #0xc] + ldrb r1, [r6] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, ip + ldrh r1, [r0, #0x12] + strh r1, [r0, #0xe] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A9958: .4byte 0x02036FF0 +_081A995C: .4byte 0x03005B50 +_081A9960: .4byte 0x03005AEC +_081A9964: .4byte 0x03005AF0 +_081A9968: .4byte 0x00000CB4 +_081A996C: .4byte 0x082FACB4 +_081A9970: .4byte 0x00000E2A +_081A9974: .4byte 0x02037292 +_081A9978: .4byte 0x00000C79 + thumb_func_end MarkPyramidTrainerAsBattled + + thumb_func_start GenerateBattlePyramidWildMon +GenerateBattlePyramidWildMon: @ 0x081A997C + push {r4, r5, r6, lr} + sub sp, #0x14 + ldr r0, _081A99BC + ldr r1, [r0] + ldr r2, _081A99C0 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r5, r0, #0x1e + lsls r0, r5, #1 + ldr r2, _081A99C4 + adds r1, r1, r2 + adds r1, r1, r0 + ldrh r0, [r1] + movs r1, #7 + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x14 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x13 + bls _081A99B2 + movs r0, #0x13 +_081A99B2: + cmp r5, #0 + beq _081A99CC + ldr r1, _081A99C8 + b _081A99CE + .align 2, 0 +_081A99BC: .4byte 0x03005AF0 +_081A99C0: .4byte 0x00000CA9 +_081A99C4: .4byte 0x00000E1A +_081A99C8: .4byte 0x085DEE38 +_081A99CC: + ldr r1, _081A9A44 +_081A99CE: + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r6, [r0] + ldr r4, _081A9A48 + adds r0, r4, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + subs r0, #1 + str r0, [sp, #0x10] + lsls r2, r0, #1 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r6, r2 + adds r0, r4, #0 + movs r1, #0xb + bl SetMonData + ldr r1, [sp, #0x10] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrh r1, [r0] + mov r0, sp + bl GetSpeciesName + adds r0, r4, #0 + movs r1, #2 + mov r2, sp + bl SetMonData + cmp r5, #0 + beq _081A9A4C + bl SetFacilityPtrsGetLevel + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, [sp, #0x10] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r0, [r0, #2] + subs r5, r5, r0 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xb + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + subs r0, #5 + adds r5, r5, r0 + b _081A9A6E + .align 2, 0 +_081A9A44: .4byte 0x085DE668 +_081A9A48: .4byte 0x020243E8 +_081A9A4C: + bl Random + ldr r2, [sp, #0x10] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrb r4, [r1, #2] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xb + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + subs r0, #5 + adds r5, r4, r0 +_081A9A6E: + ldr r4, _081A9AB8 + ldr r2, _081A9ABC + ldr r1, [sp, #0x10] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrh r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #0x13] + movs r0, #0xca + lsls r0, r0, #1 + adds r2, r1, #0 + muls r2, r0, r2 + lsls r0, r5, #2 + ldr r1, _081A9AC0 + adds r0, r0, r1 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0x19 + bl SetMonData + ldr r1, [sp, #0x10] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r1, [r0, #3] + cmp r1, #0 + blt _081A9AC4 + cmp r1, #1 + bgt _081A9AC4 + adds r2, r0, #3 + b _081A9AF4 + .align 2, 0 +_081A9AB8: .4byte 0x020243E8 +_081A9ABC: .4byte 0x082F0D54 +_081A9AC0: .4byte 0x082F00B4 +_081A9AC4: + ldr r2, _081A9B00 + ldr r1, [sp, #0x10] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrh r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #0x17] + cmp r0, #0 + beq _081A9B08 + ldr r4, _081A9B04 + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + bl GetMonData + movs r1, #1 + ands r1, r0 + str r1, [sp, #0xc] + add r2, sp, #0xc +_081A9AF4: + adds r0, r4, #0 + movs r1, #0x2e + bl SetMonData + b _081A9B14 + .align 2, 0 +_081A9B00: .4byte 0x082F0D54 +_081A9B04: .4byte 0x020243E8 +_081A9B08: + str r0, [sp, #0xc] + ldr r0, _081A9B94 + add r2, sp, #0xc + movs r1, #0x2e + bl SetMonData +_081A9B14: + movs r0, #0 + str r0, [sp, #0xc] + movs r2, #0 + lsls r4, r5, #1 +_081A9B1C: + ldr r1, [sp, #0x10] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + lsls r1, r2, #1 + adds r0, #4 + adds r0, r0, r1 + ldrh r1, [r0] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r0, _081A9B94 + bl SetMonMoveSlot + ldr r0, [sp, #0xc] + adds r0, #1 + str r0, [sp, #0xc] + adds r2, r0, #0 + cmp r2, #3 + ble _081A9B1C + ldr r0, _081A9B98 + ldr r0, [r0] + ldr r1, _081A9B9C + adds r0, r0, r1 + adds r0, r0, r4 + ldrh r0, [r0] + cmp r0, #0x8b + bls _081A9B84 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x11 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r0, #0xf + str r0, [sp, #0x10] + movs r0, #0 + str r0, [sp, #0xc] +_081A9B6E: + adds r1, r0, #0 + adds r1, #0x27 + ldr r0, _081A9B94 + add r2, sp, #0x10 + bl SetMonData + ldr r0, [sp, #0xc] + adds r0, #1 + str r0, [sp, #0xc] + cmp r0, #5 + ble _081A9B6E +_081A9B84: + ldr r0, _081A9B94 + bl CalculateMonStats + add sp, #0x14 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081A9B94: .4byte 0x020243E8 +_081A9B98: .4byte 0x03005AF0 +_081A9B9C: .4byte 0x00000E1A + thumb_func_end GenerateBattlePyramidWildMon + + thumb_func_start GetPyramidRunMultiplier +GetPyramidRunMultiplier: @ 0x081A9BA0 + push {lr} + bl GetPyramidFloorTemplateId + lsls r0, r0, #0x18 + ldr r1, _081A9BB4 + lsrs r0, r0, #0x14 + adds r0, r0, r1 + ldrb r0, [r0, #4] + pop {r1} + bx r1 + .align 2, 0 +_081A9BB4: .4byte 0x085DEE88 + thumb_func_end GetPyramidRunMultiplier + + thumb_func_start InBattlePyramid +InBattlePyramid: @ 0x081A9BB8 + push {lr} + ldr r0, _081A9BC8 + ldrh r1, [r0, #0x12] + ldr r0, _081A9BCC + cmp r1, r0 + bne _081A9BD0 + movs r0, #1 + b _081A9BDE + .align 2, 0 +_081A9BC8: .4byte 0x02036FB8 +_081A9BCC: .4byte 0x00000169 +_081A9BD0: + movs r0, #0xbd + lsls r0, r0, #1 + cmp r1, r0 + beq _081A9BDC + movs r0, #0 + b _081A9BDE +_081A9BDC: + movs r0, #2 +_081A9BDE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end InBattlePyramid + + thumb_func_start InBattlePyramid_ +InBattlePyramid_: @ 0x081A9BE4 + push {lr} + movs r2, #0 + ldr r0, _081A9C00 + ldrh r1, [r0, #0x12] + ldr r0, _081A9C04 + cmp r1, r0 + beq _081A9BF8 + adds r0, #0x11 + cmp r1, r0 + bne _081A9BFA +_081A9BF8: + movs r2, #1 +_081A9BFA: + adds r0, r2, #0 + pop {r1} + bx r1 + .align 2, 0 +_081A9C00: .4byte 0x02036FB8 +_081A9C04: .4byte 0x00000169 + thumb_func_end InBattlePyramid_ + + thumb_func_start sub_081A9C08 +sub_081A9C08: @ 0x081A9C08 + push {lr} + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081A9C30 + bl RestorePyramidPlayerParty + ldr r0, _081A9C34 + ldr r0, [r0] + ldr r1, _081A9C38 + adds r0, r0, r1 + movs r1, #2 + strb r1, [r0] + ldr r0, _081A9C3C + movs r1, #0 + bl VarSet + bl LoadPlayerParty +_081A9C30: + pop {r0} + bx r0 + .align 2, 0 +_081A9C34: .4byte 0x03005AF0 +_081A9C38: .4byte 0x00000CA8 +_081A9C3C: .4byte 0x0000400E + thumb_func_end sub_081A9C08 + + thumb_func_start SoftResetInBattlePyramid +SoftResetInBattlePyramid: @ 0x081A9C40 + push {lr} + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081A9C50 + bl DoSoftReset +_081A9C50: + pop {r0} + bx r0 + thumb_func_end SoftResetInBattlePyramid + + thumb_func_start CopyPyramidTrainerSpeechBefore +CopyPyramidTrainerSpeechBefore: @ 0x081A9C54 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r2, _081A9C70 + movs r1, #0x34 + muls r1, r0, r1 + ldr r0, [r2] + adds r0, r0, r1 + adds r0, #0xc + bl FrontierSpeechToString + pop {r0} + bx r0 + .align 2, 0 +_081A9C70: .4byte 0x0203B954 + thumb_func_end CopyPyramidTrainerSpeechBefore + + thumb_func_start CopyPyramidTrainerWinSpeech +CopyPyramidTrainerWinSpeech: @ 0x081A9C74 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r2, _081A9C90 + movs r1, #0x34 + muls r1, r0, r1 + ldr r0, [r2] + adds r0, r0, r1 + adds r0, #0x18 + bl FrontierSpeechToString + pop {r0} + bx r0 + .align 2, 0 +_081A9C90: .4byte 0x0203B954 + thumb_func_end CopyPyramidTrainerWinSpeech + + thumb_func_start CopyPyramidTrainerLoseSpeech +CopyPyramidTrainerLoseSpeech: @ 0x081A9C94 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r2, _081A9CB0 + movs r1, #0x34 + muls r1, r0, r1 + ldr r0, [r2] + adds r0, r0, r1 + adds r0, #0x24 + bl FrontierSpeechToString + pop {r0} + bx r0 + .align 2, 0 +_081A9CB0: .4byte 0x0203B954 + thumb_func_end CopyPyramidTrainerLoseSpeech + + thumb_func_start GetBattlePyramindTrainerEncounterMusicId +GetBattlePyramindTrainerEncounterMusicId: @ 0x081A9CB4 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r4, #0 + ldr r3, _081A9CDC + ldr r1, _081A9CE0 + ldr r2, [r1] + movs r1, #0x34 + muls r0, r1, r0 + adds r0, r0, r2 + ldrb r0, [r0] + adds r0, r0, r3 + ldrb r2, [r0] + ldr r1, _081A9CE4 +_081A9CD0: + ldrb r0, [r1] + cmp r0, r2 + bne _081A9CE8 + ldrb r0, [r1, #1] + b _081A9CF2 + .align 2, 0 +_081A9CDC: .4byte 0x082EFF52 +_081A9CE0: .4byte 0x0203B954 +_081A9CE4: .4byte 0x085DF37C +_081A9CE8: + adds r1, #4 + adds r4, #1 + cmp r4, #0x35 + bls _081A9CD0 + movs r0, #0 +_081A9CF2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetBattlePyramindTrainerEncounterMusicId + + thumb_func_start sub_081A9CF8 +sub_081A9CF8: @ 0x081A9CF8 + push {lr} + ldr r0, _081A9D04 + bl ScriptContext1_SetupScript + pop {r0} + bx r0 + .align 2, 0 +_081A9D04: .4byte 0x0822D751 + thumb_func_end sub_081A9CF8 + + thumb_func_start GetUniqueTrainerId +GetUniqueTrainerId: @ 0x081A9D08 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _081A9D84 + ldr r4, [r0] + ldr r1, _081A9D88 + adds r0, r4, r1 + ldrb r1, [r0] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1d + ldr r2, _081A9D8C + adds r0, r4, r2 + adds r0, r0, r1 + ldrh r0, [r0] + movs r1, #7 + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _081A9D90 + adds r4, r4, r1 + ldrh r1, [r4] + cmp r1, #7 + bne _081A9D98 + adds r0, #1 + lsls r7, r0, #0x18 + lsls r1, r1, #0x18 + mov r8, r1 +_081A9D44: + lsrs r0, r7, #0x18 + mov r2, r8 + lsrs r1, r2, #0x18 + bl sub_0816245C + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + movs r2, #0 + cmp r2, r5 + bge _081A9D7C + ldr r1, _081A9D84 + ldr r0, [r1] + ldr r4, _081A9D94 + adds r0, r0, r4 + ldrh r0, [r0] + cmp r0, r3 + beq _081A9D7C + adds r6, r1, #0 +_081A9D68: + adds r2, #1 + cmp r2, r5 + bge _081A9D7C + ldr r0, [r6] + lsls r1, r2, #1 + adds r0, r0, r4 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, r3 + bne _081A9D68 +_081A9D7C: + cmp r2, r5 + bne _081A9D44 + b _081A9DDA + .align 2, 0 +_081A9D84: .4byte 0x03005AF0 +_081A9D88: .4byte 0x00000CA9 +_081A9D8C: .4byte 0x00000E1A +_081A9D90: .4byte 0x00000CB2 +_081A9D94: .4byte 0x00000CB4 +_081A9D98: + lsls r1, r1, #0x18 + mov r8, r1 + lsls r7, r0, #0x18 +_081A9D9E: + lsrs r0, r7, #0x18 + mov r2, r8 + lsrs r1, r2, #0x18 + bl sub_0816245C + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + movs r2, #0 + cmp r2, r5 + bge _081A9DD6 + ldr r1, _081A9DE8 + ldr r0, [r1] + ldr r4, _081A9DEC + adds r0, r0, r4 + ldrh r0, [r0] + cmp r0, r3 + beq _081A9DD6 + adds r6, r1, #0 +_081A9DC2: + adds r2, #1 + cmp r2, r5 + bge _081A9DD6 + ldr r0, [r6] + lsls r1, r2, #1 + adds r0, r0, r4 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, r3 + bne _081A9DC2 +_081A9DD6: + cmp r2, r5 + bne _081A9D9E +_081A9DDA: + adds r0, r3, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081A9DE8: .4byte 0x03005AF0 +_081A9DEC: .4byte 0x00000CB4 + thumb_func_end GetUniqueTrainerId + + thumb_func_start GenerateBattlePyramidFloorLayout +GenerateBattlePyramidFloorLayout: @ 0x081A9DF0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + str r0, [sp, #4] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp, #8] + movs r0, #0x10 + bl AllocZeroed + str r0, [sp, #0xc] + bl GetPyramidFloorLayoutOffsets + mov r4, sp + adds r4, #1 + mov r0, sp + adds r1, r4, #0 + bl GetPyramidEntranceAndExitSquareIds + movs r7, #0 +_081A9E1E: + ldr r1, [sp, #0xc] + adds r0, r1, r7 + ldrb r0, [r0] + ldr r2, _081A9EF0 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r1, _081A9EF4 + adds r0, r0, r1 + ldr r6, [r0] + ldr r2, [r6, #0xc] + mov sl, r2 + ldr r0, [sp, #4] + ldr r1, _081A9EF8 + str r0, [r1, #8] + ldr r0, [r6] + lsls r0, r0, #2 + adds r2, r0, #0 + adds r2, #0xf + str r2, [r1] + ldr r0, [r6, #4] + lsls r0, r0, #2 + adds r0, #0xe + str r0, [r1, #4] + ldr r0, [sp, #4] + mov sb, r0 + adds r1, r7, #0 + cmp r7, #0 + bge _081A9E58 + adds r1, r7, #3 +_081A9E58: + asrs r1, r1, #2 + ldr r4, [r6, #4] + adds r0, r1, #0 + muls r0, r4, r0 + adds r0, #7 + muls r2, r0, r2 + lsls r1, r1, #2 + subs r1, r7, r1 + ldr r3, [r6] + adds r0, r1, #0 + muls r0, r3, r0 + adds r0, #7 + adds r2, r2, r0 + lsls r2, r2, #1 + add sb, r2 + movs r1, #0 + mov r8, r1 + adds r2, r7, #1 + str r2, [sp, #0x10] + cmp r8, r4 + bge _081A9F2E +_081A9E82: + movs r0, #0 + mov ip, r0 + mov r1, r8 + adds r1, #1 + str r1, [sp, #0x14] + cmp ip, r3 + bge _081A9F1A + ldr r2, _081A9EFC + str r2, [sp, #0x18] + mov r4, sb + mov r5, sl +_081A9E98: + ldrh r1, [r5] + ldr r0, _081A9F00 + ands r0, r1 + ldr r2, _081A9F04 + cmp r0, r2 + bne _081A9F0C + mov r0, sp + ldrb r0, [r0, #1] + cmp r7, r0 + beq _081A9F0C + mov r0, sp + ldrb r0, [r0] + cmp r7, r0 + bne _081A9EDC + ldr r1, [sp, #8] + cmp r1, #0 + bne _081A9EDC + ldr r2, [sp, #0x18] + ldr r3, [r2] + adds r2, r7, #0 + cmp r7, #0 + bge _081A9EC6 + adds r2, r7, #3 +_081A9EC6: + asrs r2, r2, #2 + lsls r1, r2, #2 + subs r1, r7, r1 + ldr r0, [r6] + muls r0, r1, r0 + add r0, ip + strh r0, [r3] + ldr r0, [r6, #4] + muls r0, r2, r0 + add r0, r8 + strh r0, [r3, #2] +_081A9EDC: + ldrh r0, [r5] + movs r1, #0xfc + lsls r1, r1, #8 + ands r1, r0 + ldr r2, _081A9F08 + adds r0, r2, #0 + orrs r1, r0 + strh r1, [r4] + ldr r3, [r6] + b _081A9F0E + .align 2, 0 +_081A9EF0: .4byte 0x00000169 +_081A9EF4: .4byte 0x0845A1F4 +_081A9EF8: .4byte 0x03005B20 +_081A9EFC: .4byte 0x03005AEC +_081A9F00: .4byte 0x000003FF +_081A9F04: .4byte 0x0000028E +_081A9F08: .4byte 0x0000028D +_081A9F0C: + strh r1, [r4] +_081A9F0E: + adds r4, #2 + adds r5, #2 + movs r0, #1 + add ip, r0 + cmp ip, r3 + blt _081A9E98 +_081A9F1A: + lsls r0, r3, #3 + adds r0, #0x1e + add sb, r0 + lsls r0, r3, #1 + add sl, r0 + ldr r1, [sp, #0x14] + mov r8, r1 + ldr r0, [r6, #4] + cmp r8, r0 + blt _081A9E82 +_081A9F2E: + ldr r7, [sp, #0x10] + cmp r7, #0xf + bgt _081A9F36 + b _081A9E1E +_081A9F36: + bl RunOnLoadMapScript + ldr r0, [sp, #0xc] + bl Free + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end GenerateBattlePyramidFloorLayout + + thumb_func_start LoadBattlePyramidEventObjectTemplates +LoadBattlePyramidEventObjectTemplates: @ 0x081A9F50 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + movs r5, #0 + mov r6, sp + adds r6, #1 + add r0, sp, #4 + mov r8, r0 + ldr r4, _081A9FB4 + ldr r3, _081A9FB8 + ldr r0, _081A9FBC + adds r2, r0, #0 +_081A9F6A: + ldr r0, [r4] + lsls r1, r5, #1 + adds r0, r0, r3 + adds r0, r0, r1 + ldrh r1, [r0] + orrs r1, r2 + strh r1, [r0] + adds r5, #1 + cmp r5, #7 + ble _081A9F6A + bl GetPyramidFloorTemplateId + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + mov r0, sp + adds r1, r6, #0 + bl GetPyramidEntranceAndExitSquareIds + movs r0, #0 + str r0, [sp, #4] + ldr r0, _081A9FC0 + ldr r1, [r0] + movs r0, #0xc7 + lsls r0, r0, #4 + adds r1, r1, r0 + ldr r2, _081A9FC4 + mov r0, r8 + bl CpuSet + movs r5, #0 +_081A9FA6: + cmp r5, #0 + bne _081A9FCC + ldr r1, _081A9FC8 + lsls r0, r7, #4 + adds r0, r0, r1 + ldrb r0, [r0, #3] + b _081A9FD4 + .align 2, 0 +_081A9FB4: .4byte 0x03005AF0 +_081A9FB8: .4byte 0x00000CB4 +_081A9FBC: .4byte 0x0000FFFF +_081A9FC0: .4byte 0x03005AEC +_081A9FC4: .4byte 0x05000180 +_081A9FC8: .4byte 0x085DEE88 +_081A9FCC: + ldr r1, _081A9FE4 + lsls r0, r7, #4 + adds r0, r0, r1 + ldrb r0, [r0, #2] +_081A9FD4: + cmp r0, #4 + bhi _081AA05C + lsls r0, r0, #2 + ldr r1, _081A9FE8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081A9FE4: .4byte 0x085DEE88 +_081A9FE8: .4byte 0x081A9FEC +_081A9FEC: @ jump table + .4byte _081AA000 @ case 0 + .4byte _081AA00A @ case 1 + .4byte _081AA01A @ case 2 + .4byte _081AA028 @ case 3 + .4byte _081AA044 @ case 4 +_081AA000: + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + bl SetPyramidObjectPositionsUniformly + b _081AA05C +_081AA00A: + lsls r0, r5, #0x18 + lsrs r4, r0, #0x18 + mov r0, sp + ldrb r1, [r0] + adds r0, r4, #0 + bl SetPyramidObjectPositionsInAndNearSquare + b _081AA036 +_081AA01A: + lsls r0, r5, #0x18 + lsrs r4, r0, #0x18 + ldrb r1, [r6] + adds r0, r4, #0 + bl SetPyramidObjectPositionsInAndNearSquare + b _081AA036 +_081AA028: + lsls r0, r5, #0x18 + lsrs r4, r0, #0x18 + mov r0, sp + ldrb r1, [r0] + adds r0, r4, #0 + bl SetPyramidObjectPositionsNearSquare +_081AA036: + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081AA05C + adds r0, r4, #0 + bl SetPyramidObjectPositionsUniformly + b _081AA05C +_081AA044: + lsls r0, r5, #0x18 + lsrs r4, r0, #0x18 + ldrb r1, [r6] + adds r0, r4, #0 + bl SetPyramidObjectPositionsNearSquare + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081AA05C + adds r0, r4, #0 + bl SetPyramidObjectPositionsUniformly +_081AA05C: + adds r5, #1 + cmp r5, #1 + ble _081A9FA6 + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LoadBattlePyramidEventObjectTemplates + + thumb_func_start LoadBattlePyramidFloorEventObjectScripts +LoadBattlePyramidFloorEventObjectScripts: @ 0x081AA070 + push {r4, r5, lr} + ldr r0, _081AA094 + ldr r0, [r0] + ldr r5, _081AA098 + ldr r4, _081AA09C + movs r2, #0xc8 + lsls r2, r2, #4 + adds r1, r0, r2 + movs r3, #0xc7 + lsls r3, r3, #4 + adds r2, r0, r3 + movs r3, #0x3f +_081AA088: + ldrb r0, [r2, #1] + cmp r0, #0x3b + beq _081AA0A0 + str r5, [r1] + b _081AA0A2 + .align 2, 0 +_081AA094: .4byte 0x03005AEC +_081AA098: .4byte 0x0822D718 +_081AA09C: .4byte 0x0822D733 +_081AA0A0: + str r4, [r1] +_081AA0A2: + adds r1, #0x18 + adds r2, #0x18 + subs r3, #1 + cmp r3, #0 + bge _081AA088 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LoadBattlePyramidFloorEventObjectScripts + + thumb_func_start GetPyramidEntranceAndExitSquareIds +GetPyramidEntranceAndExitSquareIds: @ 0x081AA0B4 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r5, _081AA104 + ldr r1, [r5] + ldr r2, _081AA108 + adds r0, r1, r2 + ldrh r2, [r0] + movs r3, #0xf + ands r2, r3 + strb r2, [r4] + ldr r7, _081AA10C + adds r1, r1, r7 + ldrh r0, [r1] + ands r0, r3 + strb r0, [r6] + cmp r2, r0 + bne _081AA0FE + ldr r1, [r5] + ldr r2, _081AA108 + adds r0, r1, r2 + ldrh r2, [r0] + adds r3, r2, #1 + adds r0, r3, #0 + asrs r0, r0, #4 + lsls r0, r0, #4 + subs r0, r3, r0 + strb r0, [r4] + adds r0, r1, r7 + ldrh r1, [r0] + adds r2, r1, #0 + adds r2, #0xf + adds r0, r2, #0 + asrs r0, r0, #4 + lsls r0, r0, #4 + subs r0, r2, r0 + strb r0, [r6] +_081AA0FE: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081AA104: .4byte 0x03005AF0 +_081AA108: .4byte 0x00000E28 +_081AA10C: .4byte 0x00000E22 + thumb_func_end GetPyramidEntranceAndExitSquareIds + + thumb_func_start SetPyramidObjectPositionsUniformly +SetPyramidObjectPositionsUniformly: @ 0x081AA110 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + movs r5, #0 + bl GetPyramidFloorTemplateId + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r0, #0x10 + bl AllocZeroed + str r0, [sp, #8] + bl GetPyramidFloorLayoutOffsets + ldr r0, _081AA15C + ldr r0, [r0] + ldr r1, _081AA160 + adds r0, r0, r1 + ldrh r4, [r0] + movs r0, #0xf + ands r4, r0 + ldr r0, [sp] + cmp r0, #0 + bne _081AA168 + ldr r1, _081AA164 + lsls r0, r6, #4 + adds r0, r0, r1 + ldrb r0, [r0, #1] + mov sl, r0 + movs r1, #0 + str r1, [sp, #4] + b _081AA176 + .align 2, 0 +_081AA15C: .4byte 0x03005AF0 +_081AA160: .4byte 0x00000E26 +_081AA164: .4byte 0x085DEE88 +_081AA168: + ldr r1, _081AA188 + lsls r0, r6, #4 + adds r0, r0, r1 + ldrb r1, [r0] + mov sl, r1 + ldrb r0, [r0, #1] + str r0, [sp, #4] +_081AA176: + movs r0, #0 + mov r8, r0 + cmp r8, sl + bge _081AA238 +_081AA17E: + movs r1, #1 + add r1, r8 + mov sb, r1 + b _081AA1A6 + .align 2, 0 +_081AA188: .4byte 0x085DEE88 +_081AA18C: + lsls r2, r4, #0x18 + lsrs r2, r2, #0x18 + ldr r3, [sp, #4] + add r3, r8 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r0, [sp] + ldr r1, [sp, #8] + bl TrySetPyramidEventObjectPositionInSquare + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081AA22E +_081AA1A6: + ldr r0, _081AA1D0 + mov ip, r0 + ldr r6, _081AA1D4 + ldr r7, _081AA1D8 + movs r3, #2 + lsls r0, r4, #2 + mov r1, ip + adds r2, r0, r1 +_081AA1B6: + movs r0, #1 + ands r0, r5 + cmp r0, #0 + beq _081AA1DC + ldr r0, [r6] + adds r0, r0, r7 + ldrh r1, [r0] + ldr r0, [r2] + ands r0, r1 + cmp r0, #0 + bne _081AA1EC + b _081AA1EA + .align 2, 0 +_081AA1D0: .4byte 0x082FACB4 +_081AA1D4: .4byte 0x03005AF0 +_081AA1D8: .4byte 0x00000E28 +_081AA1DC: + ldr r0, [r6] + adds r0, r0, r7 + ldrh r1, [r0] + ldr r0, [r2] + ands r0, r1 + cmp r0, #0 + beq _081AA1EC +_081AA1EA: + orrs r5, r3 +_081AA1EC: + adds r2, #4 + adds r4, #1 + cmp r4, #0xf + ble _081AA1F8 + mov r2, ip + movs r4, #0 +_081AA1F8: + ldr r0, [r6] + ldr r1, _081AA218 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0xf + ands r1, r0 + cmp r4, r1 + bne _081AA21E + movs r1, #1 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _081AA21C + movs r0, #6 + orrs r5, r0 + b _081AA21E + .align 2, 0 +_081AA218: .4byte 0x00000E26 +_081AA21C: + orrs r5, r1 +_081AA21E: + adds r0, r5, #0 + ands r0, r3 + cmp r0, #0 + beq _081AA1B6 + movs r0, #4 + ands r0, r5 + cmp r0, #0 + beq _081AA18C +_081AA22E: + movs r0, #1 + ands r5, r0 + mov r8, sb + cmp r8, sl + blt _081AA17E +_081AA238: + ldr r0, [sp, #8] + bl Free + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetPyramidObjectPositionsUniformly + + thumb_func_start SetPyramidObjectPositionsInAndNearSquare +SetPyramidObjectPositionsInAndNearSquare: @ 0x081AA250 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp, #4] + movs r6, #0 + movs r7, #0 + movs r0, #0 + str r0, [sp, #0xc] + bl GetPyramidFloorTemplateId + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #0x10 + bl AllocZeroed + str r0, [sp, #0x14] + bl GetPyramidFloorLayoutOffsets + ldr r1, [sp] + cmp r1, #0 + bne _081AA29C + ldr r1, _081AA298 + lsls r0, r4, #4 + adds r0, r0, r1 + ldrb r0, [r0, #1] + str r0, [sp, #0x10] + movs r0, #0 + b _081AA2A8 + .align 2, 0 +_081AA298: .4byte 0x085DEE88 +_081AA29C: + ldr r1, _081AA2DC + lsls r0, r4, #4 + adds r0, r0, r1 + ldrb r2, [r0] + str r2, [sp, #0x10] + ldrb r0, [r0, #1] +_081AA2A8: + movs r3, #0 + str r3, [sp, #8] + ldr r1, [sp, #0x10] + asrs r1, r1, #0x1f + str r1, [sp, #0x18] + ldr r2, [sp, #0x10] + cmp r3, r2 + bge _081AA39A + str r0, [sp, #0x1c] + adds r3, r0, #0 + lsls r3, r3, #0x18 + mov sb, r3 +_081AA2C0: + cmp r7, #0 + bne _081AA2E6 + mov r0, sb + lsrs r3, r0, #0x18 + ldr r0, [sp] + ldr r1, [sp, #0x14] + ldr r2, [sp, #4] + bl TrySetPyramidEventObjectPositionInSquare + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081AA2E0 + movs r7, #1 + b _081AA2E6 + .align 2, 0 +_081AA2DC: .4byte 0x085DEE88 +_081AA2E0: + ldr r1, [sp, #0xc] + adds r1, #1 + str r1, [sp, #0xc] +_081AA2E6: + movs r0, #1 + ands r0, r7 + cmp r0, #0 + beq _081AA378 + ldr r2, _081AA31C + mov r8, r2 + ldr r3, [sp, #4] + lsls r4, r3, #2 + adds r0, r6, r4 + add r0, r8 + ldrb r2, [r0] + mov r0, sb + lsrs r3, r0, #0x18 + ldr r0, [sp] + ldr r1, [sp, #0x14] + bl TrySetPyramidEventObjectPositionInSquare + lsls r0, r0, #0x18 + ldr r1, [sp, #0x1c] + mov sl, r1 + adds r5, r4, #0 + cmp r0, #0 + beq _081AA360 + ldr r4, [sp, #0xc] + adds r4, #1 + b _081AA33A + .align 2, 0 +_081AA31C: .4byte 0x085DF77E +_081AA320: + adds r0, r6, r5 + adds r0, r0, r2 + ldrb r2, [r0] + mov r0, sl + lsls r3, r0, #0x18 + lsrs r3, r3, #0x18 + ldr r0, [sp] + ldr r1, [sp, #0x14] + bl TrySetPyramidEventObjectPositionInSquare + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081AA358 +_081AA33A: + adds r6, #1 + ldr r0, _081AA35C + adds r1, r6, r5 + adds r1, r1, r0 + ldrb r1, [r1] + adds r2, r0, #0 + cmp r1, #0xff + beq _081AA34E + cmp r6, #3 + ble _081AA350 +_081AA34E: + movs r6, #0 +_081AA350: + adds r7, #2 + asrs r0, r7, #1 + cmp r0, #4 + bne _081AA320 +_081AA358: + str r4, [sp, #0xc] + b _081AA378 + .align 2, 0 +_081AA35C: .4byte 0x085DF77E +_081AA360: + adds r6, #1 + adds r0, r6, r4 + add r0, r8 + ldrb r0, [r0] + cmp r0, #0xff + beq _081AA370 + cmp r6, #3 + ble _081AA372 +_081AA370: + movs r6, #0 +_081AA372: + ldr r1, [sp, #0xc] + adds r1, #1 + str r1, [sp, #0xc] +_081AA378: + asrs r0, r7, #1 + cmp r0, #4 + beq _081AA39A + movs r0, #1 + ands r7, r0 + ldr r2, [sp, #0x1c] + adds r2, #1 + str r2, [sp, #0x1c] + movs r3, #0x80 + lsls r3, r3, #0x11 + add sb, r3 + ldr r0, [sp, #8] + adds r0, #1 + str r0, [sp, #8] + ldr r1, [sp, #0x10] + cmp r0, r1 + blt _081AA2C0 +_081AA39A: + movs r1, #0 + ldr r2, [sp, #0x10] + ldr r3, [sp, #0x18] + subs r0, r2, r3 + asrs r0, r0, #1 + ldr r2, [sp, #0xc] + cmp r0, r2 + ble _081AA3AC + movs r1, #1 +_081AA3AC: + adds r0, r1, #0 + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SetPyramidObjectPositionsInAndNearSquare + + thumb_func_start SetPyramidObjectPositionsNearSquare +SetPyramidObjectPositionsNearSquare: @ 0x081AA3C0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + movs r4, #0 + movs r7, #0 + movs r0, #0 + mov r8, r0 + bl GetPyramidFloorTemplateId + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r0, #0x10 + bl AllocZeroed + str r0, [sp, #8] + bl GetPyramidFloorLayoutOffsets + ldr r1, [sp] + cmp r1, #0 + bne _081AA40C + ldr r1, _081AA408 + lsls r0, r5, #4 + adds r0, r0, r1 + ldrb r0, [r0, #1] + mov sl, r0 + movs r0, #0 + b _081AA418 + .align 2, 0 +_081AA408: .4byte 0x085DEE88 +_081AA40C: + ldr r1, _081AA448 + lsls r0, r5, #4 + adds r0, r0, r1 + ldrb r2, [r0] + mov sl, r2 + ldrb r0, [r0, #1] +_081AA418: + movs r3, #0 + str r3, [sp, #4] + mov r1, sl + asrs r1, r1, #0x1f + str r1, [sp, #0xc] + cmp r3, sl + bge _081AA4B6 + ldr r2, _081AA44C + mov sb, r2 + lsls r5, r6, #2 + lsls r6, r0, #0x18 +_081AA42E: + adds r0, r4, r5 + add r0, sb + ldrb r2, [r0] + lsrs r3, r6, #0x18 + ldr r0, [sp] + ldr r1, [sp, #8] + bl TrySetPyramidEventObjectPositionInSquare + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081AA48C + adds r7, #1 + b _081AA466 + .align 2, 0 +_081AA448: .4byte 0x085DEE88 +_081AA44C: .4byte 0x085DF77E +_081AA450: + adds r0, r4, r5 + adds r0, r0, r1 + ldrb r2, [r0] + lsrs r3, r6, #0x18 + ldr r0, [sp] + ldr r1, [sp, #8] + bl TrySetPyramidEventObjectPositionInSquare + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081AA4A0 +_081AA466: + adds r4, #1 + adds r0, r4, r5 + add r0, sb + ldrb r0, [r0] + ldr r1, _081AA488 + cmp r0, #0xff + beq _081AA478 + cmp r4, #3 + ble _081AA47A +_081AA478: + movs r4, #0 +_081AA47A: + movs r3, #1 + add r8, r3 + mov r0, r8 + cmp r0, #4 + bne _081AA450 + b _081AA4A0 + .align 2, 0 +_081AA488: .4byte 0x085DF77E +_081AA48C: + adds r4, #1 + adds r0, r4, r5 + add r0, sb + ldrb r0, [r0] + cmp r0, #0xff + beq _081AA49C + cmp r4, #3 + ble _081AA49E +_081AA49C: + movs r4, #0 +_081AA49E: + adds r7, #1 +_081AA4A0: + mov r1, r8 + cmp r1, #4 + beq _081AA4B6 + movs r2, #0x80 + lsls r2, r2, #0x11 + adds r6, r6, r2 + ldr r3, [sp, #4] + adds r3, #1 + str r3, [sp, #4] + cmp r3, sl + blt _081AA42E +_081AA4B6: + movs r1, #0 + mov r2, sl + ldr r3, [sp, #0xc] + subs r0, r2, r3 + asrs r0, r0, #1 + cmp r0, r7 + ble _081AA4C6 + movs r1, #1 +_081AA4C6: + adds r0, r1, #0 + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end SetPyramidObjectPositionsNearSquare + + thumb_func_start TrySetPyramidEventObjectPositionInSquare +TrySetPyramidEventObjectPositionInSquare: @ 0x081AA4D8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + mov sl, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + lsls r3, r3, #0x18 + lsrs r7, r3, #0x18 + ldr r0, _081AA53C + ldr r0, [r0] + ldr r1, _081AA540 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081AA548 + movs r6, #7 +_081AA50A: + movs r4, #7 + lsls r5, r6, #0x18 +_081AA50E: + lsls r1, r4, #0x18 + lsrs r1, r1, #0x18 + mov r0, r8 + str r0, [sp] + str r7, [sp, #4] + mov r0, sb + lsrs r2, r5, #0x18 + mov r3, sl + bl TrySetPyramidEventObjectPositionAtCoords + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081AA544 + subs r4, #1 + cmp r4, #0 + bge _081AA50E + subs r6, #1 + movs r1, #1 + rsbs r1, r1, #0 + cmp r6, r1 + bgt _081AA50A + b _081AA574 + .align 2, 0 +_081AA53C: .4byte 0x03005AF0 +_081AA540: .4byte 0x00000E22 +_081AA544: + movs r0, #0 + b _081AA576 +_081AA548: + movs r6, #0 +_081AA54A: + movs r4, #0 + lsls r5, r6, #0x18 +_081AA54E: + lsls r1, r4, #0x18 + lsrs r1, r1, #0x18 + mov r0, r8 + str r0, [sp] + str r7, [sp, #4] + mov r0, sb + lsrs r2, r5, #0x18 + mov r3, sl + bl TrySetPyramidEventObjectPositionAtCoords + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081AA544 + adds r4, #1 + cmp r4, #7 + ble _081AA54E + adds r6, #1 + cmp r6, #7 + ble _081AA54A +_081AA574: + movs r0, #1 +_081AA576: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TrySetPyramidEventObjectPositionInSquare + + thumb_func_start TrySetPyramidEventObjectPositionAtCoords +TrySetPyramidEventObjectPositionAtCoords: @ 0x081AA588 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + ldr r4, [sp, #0x34] + ldr r5, [sp, #0x38] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp, #4] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov sl, r4 + lsls r5, r5, #0x18 + lsrs r6, r5, #0x18 + ldr r0, _081AA6BC + ldr r0, [r0] + movs r1, #0xc7 + lsls r1, r1, #4 + adds r1, r0, r1 + str r1, [sp, #8] + add r3, sl + ldrb r1, [r3] + adds r1, #0x2c + movs r0, #0x19 + bl Overworld_GetMapHeaderByGroupAndId + adds r5, r0, #0 + movs r7, #0 + ldr r1, [r5, #4] + ldrb r2, [r1] + cmp r7, r2 + bge _081AA6D2 + movs r0, #3 + ands r0, r4 + lsls r0, r0, #3 + str r0, [sp, #0xc] +_081AA5E0: + ldr r1, [r1, #4] + lsls r2, r7, #1 + adds r0, r2, r7 + lsls r0, r0, #3 + adds r3, r0, r1 + movs r4, #4 + ldrsh r0, [r3, r4] + ldr r1, [r5, #4] + mov ip, r1 + mov sb, r2 + ldr r2, [sp, #4] + cmp r0, r2 + bne _081AA6C8 + movs r4, #6 + ldrsh r0, [r3, r4] + cmp r0, r8 + bne _081AA6C8 + ldr r0, [sp] + cmp r0, #0 + bne _081AA60E + ldrb r0, [r3, #1] + cmp r0, #0x3b + bne _081AA61A +_081AA60E: + ldr r1, [sp] + cmp r1, #1 + bne _081AA6C8 + ldrb r0, [r3, #1] + cmp r0, #0x3b + bne _081AA6C8 +_081AA61A: + movs r3, #0 + ldr r2, [r5, #4] + mov ip, r2 + cmp r3, r6 + bge _081AA654 + ldr r4, [sp, #4] + ldr r0, [sp, #0xc] + adds r4, r4, r0 + str r4, [sp, #0x10] + mov r1, sl + lsrs r0, r1, #2 + lsls r0, r0, #3 + mov r2, r8 + adds r1, r2, r0 + ldr r2, [sp, #8] + adds r2, #4 +_081AA63A: + movs r4, #0 + ldrsh r0, [r2, r4] + ldr r4, [sp, #0x10] + cmp r0, r4 + bne _081AA64C + movs r4, #2 + ldrsh r0, [r2, r4] + cmp r0, r1 + beq _081AA654 +_081AA64C: + adds r2, #0x18 + adds r3, #1 + cmp r3, r6 + blt _081AA63A +_081AA654: + cmp r3, r6 + bne _081AA6C8 + lsls r0, r6, #1 + mov r8, r0 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, [sp, #8] + adds r5, r0, r1 + mov r3, ip + ldr r2, [r3, #4] + mov r4, sb + adds r1, r4, r7 + lsls r1, r1, #3 + adds r0, r5, #0 + adds r1, r1, r2 + ldm r1!, {r2, r3, r4} + stm r0!, {r2, r3, r4} + ldm r1!, {r2, r3, r4} + stm r0!, {r2, r3, r4} + ldrh r0, [r5, #4] + ldr r1, [sp, #0xc] + adds r0, r0, r1 + strh r0, [r5, #4] + mov r2, sl + lsrs r0, r2, #2 + lsls r0, r0, #3 + ldrh r3, [r5, #6] + adds r0, r0, r3 + strh r0, [r5, #6] + adds r0, r6, #1 + strb r0, [r5] + ldrb r0, [r5, #1] + cmp r0, #0x3b + beq _081AA6B8 + adds r0, r6, #0 + bl GetUniqueTrainerId + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + adds r4, r7, #0 + adds r0, r4, #0 + bl GetBattleFacilityTrainerGfxId + strb r0, [r5, #1] + ldr r0, _081AA6C0 + ldr r0, [r0] + ldr r1, _081AA6C4 + adds r0, r0, r1 + add r0, r8 + strh r4, [r0] +_081AA6B8: + movs r0, #0 + b _081AA6D4 + .align 2, 0 +_081AA6BC: .4byte 0x03005AEC +_081AA6C0: .4byte 0x03005AF0 +_081AA6C4: .4byte 0x00000CB4 +_081AA6C8: + adds r7, #1 + mov r1, ip + ldrb r2, [r1] + cmp r7, r2 + blt _081AA5E0 +_081AA6D2: + movs r0, #1 +_081AA6D4: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end TrySetPyramidEventObjectPositionAtCoords + + thumb_func_start GetPyramidFloorLayoutOffsets +GetPyramidFloorLayoutOffsets: @ 0x081AA6E4 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldr r0, _081AA744 + ldr r0, [r0] + ldr r2, _081AA748 + adds r1, r0, r2 + ldrh r4, [r1] + ldr r1, _081AA74C + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #0x10 + orrs r4, r0 + bl GetPyramidFloorTemplateId + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r3, #0 + ldr r2, _081AA750 + mov ip, r2 + movs r7, #7 +_081AA70C: + adds r2, r6, r3 + adds r0, r4, #0 + ands r0, r7 + lsls r1, r5, #4 + adds r0, r0, r1 + add r0, ip + ldrb r0, [r0] + strb r0, [r2] + asrs r4, r4, #3 + cmp r3, #7 + bne _081AA738 + ldr r0, _081AA744 + ldr r1, [r0] + ldr r2, _081AA754 + adds r0, r1, r2 + ldrh r4, [r0] + ldr r0, _081AA758 + adds r1, r1, r0 + ldrh r0, [r1] + lsls r0, r0, #0x10 + orrs r4, r0 + asrs r4, r4, #8 +_081AA738: + adds r3, #1 + cmp r3, #0xf + ble _081AA70C + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081AA744: .4byte 0x03005AF0 +_081AA748: .4byte 0x00000E22 +_081AA74C: .4byte 0x00000E24 +_081AA750: .4byte 0x085DEE8D +_081AA754: .4byte 0x00000E26 +_081AA758: .4byte 0x00000E28 + thumb_func_end GetPyramidFloorLayoutOffsets + + thumb_func_start GetPyramidFloorTemplateId +GetPyramidFloorTemplateId: @ 0x081AA75C + push {r4, lr} + ldr r0, _081AA794 + ldr r4, [r0] + ldr r1, _081AA798 + adds r0, r4, r1 + ldrh r0, [r0] + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldr r0, _081AA79C + adds r4, r4, r0 + ldrh r0, [r4] + ldr r1, _081AA7A0 + adds r0, r0, r1 + ldrb r2, [r0] + cmp r2, #0x21 + bhi _081AA7B0 + ldr r1, _081AA7A4 + lsls r0, r2, #1 + adds r0, r0, r1 +_081AA788: + ldrb r1, [r0] + cmp r3, r1 + bge _081AA7A8 + ldrb r0, [r0, #1] + b _081AA7B2 + .align 2, 0 +_081AA794: .4byte 0x03005AF0 +_081AA798: .4byte 0x00000E28 +_081AA79C: .4byte 0x00000CB2 +_081AA7A0: .4byte 0x085DEFCC +_081AA7A4: .4byte 0x085DEF88 +_081AA7A8: + adds r0, #2 + adds r2, #1 + cmp r2, #0x21 + bls _081AA788 +_081AA7B0: + movs r0, #0 +_081AA7B2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetPyramidFloorTemplateId + + thumb_func_start GetNumBattlePyramidEventObjects +GetNumBattlePyramidEventObjects: @ 0x081AA7B8 + push {lr} + ldr r0, _081AA7D0 + ldr r0, [r0] + movs r1, #0xc7 + lsls r1, r1, #4 + adds r2, r0, r1 + movs r1, #0 + movs r3, #0xc7 + lsls r3, r3, #4 + adds r0, r0, r3 + b _081AA7E6 + .align 2, 0 +_081AA7D0: .4byte 0x03005AEC +_081AA7D4: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xf + bhi _081AA7EC + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 +_081AA7E6: + ldrb r0, [r0] + cmp r0, #0 + bne _081AA7D4 +_081AA7EC: + adds r0, r1, #0 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetNumBattlePyramidEventObjects + + thumb_func_start InitPyramidBagItems +InitPyramidBagItems: @ 0x081AA7F4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r3, #0 + ldr r1, _081AA84C + mov r8, r1 + lsls r1, r0, #2 + adds r1, r1, r0 + movs r0, #0 + mov ip, r0 + lsls r4, r1, #1 + ldr r7, _081AA850 + movs r6, #0 + ldr r5, _081AA854 + lsls r2, r1, #2 +_081AA816: + mov r1, r8 + ldr r0, [r1] + adds r1, r0, r7 + adds r1, r1, r2 + strh r6, [r1] + adds r1, r3, r4 + adds r0, r0, r5 + adds r0, r0, r1 + mov r1, ip + strb r1, [r0] + adds r2, #2 + adds r3, #1 + cmp r3, #9 + ble _081AA816 + movs r0, #0x15 + movs r1, #1 + bl AddPyramidBagItem + movs r0, #0x22 + movs r1, #1 + bl AddPyramidBagItem + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081AA84C: .4byte 0x03005AF0 +_081AA850: .4byte 0x00000E2C +_081AA854: .4byte 0x00000E54 + thumb_func_end InitPyramidBagItems + + thumb_func_start GetBattlePyramidPickupItemId +GetBattlePyramidPickupItemId: @ 0x081AA858 + push {r4, r5, r6, lr} + ldr r0, _081AA8BC + ldr r1, [r0] + ldr r2, _081AA8C0 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r6, r0, #0x1e + lsls r0, r6, #1 + ldr r2, _081AA8C4 + adds r1, r1, r2 + adds r1, r1, r0 + ldrh r0, [r1] + movs r1, #7 + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x13 + ble _081AA882 + movs r4, #0x13 +_081AA882: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + movs r1, #0 + ldr r3, _081AA8C8 + ldrb r0, [r3] + lsls r5, r4, #2 + cmp r0, r2 + bgt _081AA8AE +_081AA8A0: + adds r1, #1 + cmp r1, #9 + bhi _081AA8B2 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + ble _081AA8A0 +_081AA8AE: + cmp r1, #9 + bls _081AA8B4 +_081AA8B2: + movs r1, #9 +_081AA8B4: + cmp r6, #0 + bne _081AA8D0 + ldr r2, _081AA8CC + b _081AA8D2 + .align 2, 0 +_081AA8BC: .4byte 0x03005AF0 +_081AA8C0: .4byte 0x00000CA9 +_081AA8C4: .4byte 0x00000E1A +_081AA8C8: .4byte 0x085DF7BE +_081AA8CC: .4byte 0x085DEFD4 +_081AA8D0: + ldr r2, _081AA8E4 +_081AA8D2: + lsls r1, r1, #1 + adds r0, r5, r4 + lsls r0, r0, #2 + adds r1, r1, r0 + adds r1, r1, r2 + ldrh r0, [r1] + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_081AA8E4: .4byte 0x085DF164 + thumb_func_end GetBattlePyramidPickupItemId + diff --git a/asm/battle_pyramid_bag.s b/asm/battle_pyramid_bag.s new file mode 100644 index 0000000..2db3f16 --- /dev/null +++ b/asm/battle_pyramid_bag.s @@ -0,0 +1,4120 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start InitBattlePyramidBagCursorPosition +InitBattlePyramidBagCursorPosition: @ 0x081C46F4 + ldr r1, _081C4700 + movs r0, #0 + strh r0, [r1, #6] + strh r0, [r1, #8] + bx lr + .align 2, 0 +_081C4700: .4byte 0x0203CBFC + thumb_func_end InitBattlePyramidBagCursorPosition + + thumb_func_start CB2_PyramidBagMenuFromStartMenu +CB2_PyramidBagMenuFromStartMenu: @ 0x081C4704 + push {lr} + ldr r1, _081C4714 + movs r0, #0 + bl sub_081C47A0 + pop {r0} + bx r0 + .align 2, 0 +_081C4714: .4byte 0x08085AFD + thumb_func_end CB2_PyramidBagMenuFromStartMenu + + thumb_func_start sub_081C4718 +sub_081C4718: @ 0x081C4718 + push {lr} + ldr r1, _081C4728 + movs r0, #1 + bl sub_081C47A0 + pop {r0} + bx r0 + .align 2, 0 +_081C4728: .4byte 0x0805996D + thumb_func_end sub_081C4718 + + thumb_func_start sub_081C472C +sub_081C472C: @ 0x081C472C + push {lr} + bl ScriptContext2_Enable + movs r0, #1 + movs r1, #0 + bl FadeScreen + ldr r0, _081C4748 + movs r1, #0xa + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_081C4748: .4byte 0x081C474D + thumb_func_end sub_081C472C + + thumb_func_start sub_081C474C +sub_081C474C: @ 0x081C474C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _081C477C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081C4776 + bl CleanupOverworldWindowsAndTilemaps + ldr r0, _081C4780 + ldr r1, _081C4784 + str r1, [r0] + ldr r1, _081C4788 + movs r0, #3 + bl sub_081C47A0 + adds r0, r4, #0 + bl DestroyTask +_081C4776: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C477C: .4byte 0x02037C74 +_081C4780: .4byte 0x03005B10 +_081C4784: .4byte 0x081B9069 +_081C4788: .4byte 0x08085A31 + thumb_func_end sub_081C474C + + thumb_func_start sub_081C478C +sub_081C478C: @ 0x081C478C + push {lr} + ldr r0, _081C479C + ldr r1, [r0] + movs r0, #4 + bl sub_081C47A0 + pop {r0} + bx r0 + .align 2, 0 +_081C479C: .4byte 0x0203CBFC + thumb_func_end sub_081C478C + + thumb_func_start sub_081C47A0 +sub_081C47A0: @ 0x081C47A0 + push {r4, r5, r6, lr} + adds r5, r1, #0 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r6, _081C4804 + ldr r0, _081C4808 + bl AllocZeroed + str r0, [r6] + cmp r4, #4 + beq _081C47BA + ldr r0, _081C480C + strb r4, [r0, #4] +_081C47BA: + cmp r5, #0 + beq _081C47C2 + ldr r0, _081C480C + str r5, [r0] +_081C47C2: + ldr r0, [r6] + movs r1, #0 + str r1, [r0] + ldr r1, _081C4810 + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] + ldr r0, [r6] + ldr r1, _081C4814 + adds r0, r0, r1 + movs r1, #1 + rsbs r1, r1, #0 + strb r1, [r0] + ldr r0, [r6] + ldr r1, _081C4818 + adds r0, r0, r1 + movs r1, #0xff + movs r2, #0xb + bl memset + ldr r0, [r6] + ldr r1, _081C481C + adds r0, r0, r1 + movs r1, #0xff + movs r2, #5 + bl memset + ldr r0, _081C4820 + bl SetMainCallback2 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081C4804: .4byte 0x0203CBF8 +_081C4808: .4byte 0x0000098C +_081C480C: .4byte 0x0203CBFC +_081C4810: .4byte 0x00000814 +_081C4814: .4byte 0x00000816 +_081C4818: .4byte 0x00000804 +_081C481C: .4byte 0x0000080F +_081C4820: .4byte 0x081C4855 + thumb_func_end sub_081C47A0 + + thumb_func_start sub_081C4824 +sub_081C4824: @ 0x081C4824 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl do_scheduled_bg_tilemap_copies_to_vram + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081C4824 + + thumb_func_start sub_081C4840 +sub_081C4840: @ 0x081C4840 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081C4840 + + thumb_func_start sub_081C4854 +sub_081C4854: @ 0x081C4854 + push {lr} +_081C4856: + bl sub_081221F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081C487A + bl sub_081C4880 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081C487A + bl sub_081221B8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081C4856 +_081C487A: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081C4854 + + thumb_func_start sub_081C4880 +sub_081C4880: @ 0x081C4880 + push {lr} + sub sp, #4 + ldr r0, _081C48A0 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0x10 + bls _081C4894 + b _081C49C4 +_081C4894: + lsls r0, r0, #2 + ldr r1, _081C48A4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081C48A0: .4byte 0x03002360 +_081C48A4: .4byte 0x081C48A8 +_081C48A8: @ jump table + .4byte _081C48EC @ case 0 + .4byte _081C48F6 @ case 1 + .4byte _081C48FC @ case 2 + .4byte _081C4902 @ case 3 + .4byte _081C4914 @ case 4 + .4byte _081C491A @ case 5 + .4byte _081C492A @ case 6 + .4byte _081C4944 @ case 7 + .4byte _081C4950 @ case 8 + .4byte _081C4956 @ case 9 + .4byte _081C4964 @ case 10 + .4byte _081C496A @ case 11 + .4byte _081C4970 @ case 12 + .4byte _081C4976 @ case 13 + .4byte _081C497C @ case 14 + .4byte _081C4982 @ case 15 + .4byte _081C4990 @ case 16 +_081C48EC: + bl SetVBlankHBlankCallbacksToNull + bl clear_scheduled_bg_copies_to_vram + b _081C49AA +_081C48F6: + bl ScanlineEffect_Stop + b _081C49AA +_081C48FC: + bl FreeAllSpritePalettes + b _081C49AA +_081C4902: + bl ResetPaletteFade + ldr r2, _081C4910 + ldrb r0, [r2, #8] + movs r1, #0x80 + orrs r0, r1 + b _081C49A8 + .align 2, 0 +_081C4910: .4byte 0x02037C74 +_081C4914: + bl ResetSpriteData + b _081C49AA +_081C491A: + bl sub_081221B8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081C49AA + bl ResetTasks + b _081C49AA +_081C492A: + bl sub_081C49E4 + ldr r0, _081C493C + ldr r0, [r0] + ldr r1, _081C4940 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0] + b _081C49AA + .align 2, 0 +_081C493C: .4byte 0x0203CBF8 +_081C4940: .4byte 0x00000984 +_081C4944: + bl sub_081C4A40 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081C49DC + b _081C49AA +_081C4950: + bl sub_081C63F0 + b _081C49AA +_081C4956: + bl sub_081C5120 + bl sub_081C51B8 + bl sub_081C521C + b _081C49AA +_081C4964: + bl SetBagItemsListTemplate + b _081C49AA +_081C496A: + bl sub_081C4EF4 + b _081C49AA +_081C4970: + bl sub_081C66B4 + b _081C49AA +_081C4976: + bl AddScrollArrow + b _081C49AA +_081C497C: + bl sub_081C67CC + b _081C49AA +_081C4982: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + b _081C49AA +_081C4990: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r2, _081C49BC + ldrb r1, [r2, #8] + movs r0, #0x7f + ands r0, r1 +_081C49A8: + strb r0, [r2, #8] +_081C49AA: + ldr r1, _081C49C0 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _081C49DC + .align 2, 0 +_081C49BC: .4byte 0x02037C74 +_081C49C0: .4byte 0x03002360 +_081C49C4: + ldr r0, _081C49D4 + bl SetVBlankCallback + ldr r0, _081C49D8 + bl SetMainCallback2 + movs r0, #1 + b _081C49DE + .align 2, 0 +_081C49D4: .4byte 0x081C4841 +_081C49D8: .4byte 0x081C4825 +_081C49DC: + movs r0, #0 +_081C49DE: + add sp, #4 + pop {r1} + bx r1 + thumb_func_end sub_081C4880 + + thumb_func_start sub_081C49E4 +sub_081C49E4: @ 0x081C49E4 + push {lr} + bl ResetVramOamAndBgCntRegs + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _081C4A38 + movs r0, #0 + movs r2, #3 + bl InitBgsFromTemplates + ldr r0, _081C4A3C + ldr r1, [r0] + adds r1, #4 + movs r0, #2 + bl SetBgTilemapBuffer + bl ResetAllBgsCoordinates + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 +_081C4A38: .4byte 0x085EF704 +_081C4A3C: .4byte 0x0203CBF8 + thumb_func_end sub_081C49E4 + + thumb_func_start sub_081C4A40 +sub_081C4A40: @ 0x081C4A40 + push {r4, lr} + sub sp, #4 + ldr r4, _081C4A60 + ldr r0, [r4] + ldr r1, _081C4A64 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #4 + bhi _081C4AF8 + lsls r0, r0, #2 + ldr r1, _081C4A68 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081C4A60: .4byte 0x0203CBF8 +_081C4A64: .4byte 0x00000984 +_081C4A68: .4byte 0x081C4A6C +_081C4A6C: @ jump table + .4byte _081C4A80 @ case 0 + .4byte _081C4A9C @ case 1 + .4byte _081C4AC0 @ case 2 + .4byte _081C4AD0 @ case 3 + .4byte _081C4ADC @ case 4 +_081C4A80: + bl reset_temp_tile_data_buffers + ldr r1, _081C4A98 + movs r0, #0 + str r0, [sp] + movs r0, #2 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + b _081C4AE0 + .align 2, 0 +_081C4A98: .4byte 0x08D9A7CC +_081C4A9C: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081C4B10 + ldr r0, _081C4AB8 + ldr r4, _081C4ABC + ldr r1, [r4] + adds r1, #4 + bl LZDecompressVram + ldr r1, [r4] + b _081C4AE4 + .align 2, 0 +_081C4AB8: .4byte 0x08D9AFFC +_081C4ABC: .4byte 0x0203CBF8 +_081C4AC0: + ldr r0, _081C4ACC + movs r1, #0 + movs r2, #0x20 + bl LoadCompressedPalette + b _081C4AE0 + .align 2, 0 +_081C4ACC: .4byte 0x08D9B13C +_081C4AD0: + ldr r0, _081C4AD8 + bl LoadCompressedSpriteSheet + b _081C4AE0 + .align 2, 0 +_081C4AD8: .4byte 0x085EF81C +_081C4ADC: + bl sub_081C6658 +_081C4AE0: + ldr r0, _081C4AF0 + ldr r1, [r0] +_081C4AE4: + ldr r0, _081C4AF4 + adds r1, r1, r0 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _081C4B10 + .align 2, 0 +_081C4AF0: .4byte 0x0203CBF8 +_081C4AF4: .4byte 0x00000984 +_081C4AF8: + bl LoadListMenuArrowsGfx + ldr r0, [r4] + ldr r1, _081C4B0C + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0] + movs r0, #1 + b _081C4B12 + .align 2, 0 +_081C4B0C: .4byte 0x00000984 +_081C4B10: + movs r0, #0 +_081C4B12: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081C4A40 + + thumb_func_start SetBagItemsListTemplate +SetBagItemsListTemplate: @ 0x081C4B1C + push {r4, r5, r6, r7, lr} + ldr r0, _081C4BE4 + ldr r2, [r0] + ldr r1, _081C4BE8 + adds r0, r2, r1 + ldrb r1, [r0] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r3, _081C4BEC + adds r0, r0, r3 + adds r7, r2, r0 + movs r6, #0 + ldr r1, _081C4BF0 + ldr r0, [r1] + ldr r4, _081C4BF4 + adds r0, r0, r4 + ldrb r0, [r0] + subs r0, #1 + cmp r6, r0 + bge _081C4B8A + adds r5, r1, #0 +_081C4B4C: + lsls r1, r6, #1 + adds r4, r1, r6 + lsls r4, r4, #3 + ldr r0, _081C4BF8 + adds r4, r4, r0 + ldr r0, [r5] + adds r0, r0, r4 + adds r1, r1, r7 + ldrh r1, [r1] + bl PyramidBag_CopyItemName + ldr r1, [r5] + lsls r2, r6, #3 + ldr r3, _081C4BFC + adds r0, r1, r3 + adds r0, r0, r2 + adds r4, r1, r4 + str r4, [r0] + ldr r4, _081C4C00 + adds r0, r1, r4 + adds r0, r0, r2 + str r6, [r0] + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r0, _081C4BF4 + adds r1, r1, r0 + ldrb r0, [r1] + subs r0, #1 + cmp r6, r0 + blt _081C4B4C +_081C4B8A: + ldr r5, _081C4BF0 + lsls r4, r6, #1 + adds r4, r4, r6 + lsls r4, r4, #3 + ldr r1, _081C4BF8 + adds r4, r4, r1 + ldr r0, [r5] + adds r0, r0, r4 + ldr r1, _081C4C04 + bl StringCopy + ldr r1, [r5] + lsls r2, r6, #3 + ldr r3, _081C4BFC + adds r0, r1, r3 + adds r0, r0, r2 + adds r4, r1, r4 + str r4, [r0] + ldr r4, _081C4C00 + adds r1, r1, r4 + adds r1, r1, r2 + movs r0, #2 + rsbs r0, r0, #0 + str r0, [r1] + ldr r2, _081C4C08 + adds r1, r2, #0 + ldr r0, _081C4C0C + ldm r0!, {r4, r6, r7} + stm r1!, {r4, r6, r7} + ldm r0!, {r4, r6, r7} + stm r1!, {r4, r6, r7} + ldr r1, [r5] + ldr r6, _081C4BF4 + adds r0, r1, r6 + ldrb r0, [r0] + strh r0, [r2, #0xc] + adds r3, r1, r3 + str r3, [r2] + ldr r7, _081C4C10 + adds r1, r1, r7 + ldrb r0, [r1] + strh r0, [r2, #0xe] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C4BE4: .4byte 0x03005AF0 +_081C4BE8: .4byte 0x00000CA9 +_081C4BEC: .4byte 0x00000E2C +_081C4BF0: .4byte 0x0203CBF8 +_081C4BF4: .4byte 0x00000821 +_081C4BF8: .4byte 0x0000087C +_081C4BFC: .4byte 0x00000824 +_081C4C00: .4byte 0x00000828 +_081C4C04: .4byte 0x085C9448 +_081C4C08: .4byte 0x03006050 +_081C4C0C: .4byte 0x085EF710 +_081C4C10: .4byte 0x00000822 + thumb_func_end SetBagItemsListTemplate + + thumb_func_start PyramidBag_CopyItemName +PyramidBag_CopyItemName: @ 0x081C4C14 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + adds r0, r4, #0 + bl ItemId_GetImportance + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bne _081C4C58 + ldr r0, _081C4C4C + adds r1, r4, #0 + subs r1, #0x84 + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r1, _081C4C50 + adds r0, r4, #0 + bl CopyItemName + ldr r1, _081C4C54 + adds r0, r5, #0 + bl StringExpandPlaceholders + b _081C4C60 + .align 2, 0 +_081C4C4C: .4byte 0x02021C40 +_081C4C50: .4byte 0x02021C54 +_081C4C54: .4byte 0x085C976F +_081C4C58: + adds r0, r4, #0 + adds r1, r5, #0 + bl CopyItemName +_081C4C60: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PyramidBag_CopyItemName + + thumb_func_start PyramidBagMoveCursorFunc +PyramidBagMoveCursorFunc: @ 0x081C4C68 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #1 + beq _081C4C7E + movs r0, #5 + bl PlaySE + bl sub_081C66E0 +_081C4C7E: + ldr r5, _081C4CD0 + ldr r1, [r5] + ldr r2, _081C4CD4 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0xff + bne _081C4D0C + adds r2, #1 + adds r0, r1, r2 + ldrb r1, [r0] + movs r0, #1 + eors r0, r1 + bl sub_081C67B8 + movs r0, #2 + rsbs r0, r0, #0 + cmp r4, r0 + beq _081C4CE8 + ldr r0, _081C4CD8 + ldr r2, [r0] + lsls r3, r4, #1 + ldr r1, _081C4CDC + adds r0, r2, r1 + ldrb r1, [r0] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r3, r3, r0 + ldr r0, _081C4CE0 + adds r2, r2, r0 + adds r2, r2, r3 + ldrh r0, [r2] + ldr r1, [r5] + ldr r2, _081C4CE4 + adds r1, r1, r2 + ldrb r1, [r1] + bl ShowItemImage + b _081C4CF6 + .align 2, 0 +_081C4CD0: .4byte 0x0203CBF8 +_081C4CD4: .4byte 0x00000814 +_081C4CD8: .4byte 0x03005AF0 +_081C4CDC: .4byte 0x00000CA9 +_081C4CE0: .4byte 0x00000E2C +_081C4CE4: .4byte 0x00000815 +_081C4CE8: + ldr r0, _081C4D14 + ldr r1, [r5] + ldr r2, _081C4D18 + adds r1, r1, r2 + ldrb r1, [r1] + bl ShowItemImage +_081C4CF6: + ldr r0, _081C4D1C + ldr r1, [r0] + ldr r0, _081C4D18 + adds r1, r1, r0 + ldrb r0, [r1] + movs r2, #1 + eors r0, r2 + strb r0, [r1] + adds r0, r4, #0 + bl PrintItemDescription +_081C4D0C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C4D14: .4byte 0x0000FFFF +_081C4D18: .4byte 0x00000815 +_081C4D1C: .4byte 0x0203CBF8 + thumb_func_end PyramidBagMoveCursorFunc + + thumb_func_start PrintItemQuantity +PrintItemQuantity: @ 0x081C4D20 + push {r4, r5, r6, lr} + sub sp, #0x10 + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + movs r0, #2 + rsbs r0, r0, #0 + cmp r4, r0 + beq _081C4DB2 + ldr r0, _081C4D58 + ldr r0, [r0] + ldr r1, _081C4D5C + adds r0, r0, r1 + ldrb r1, [r0] + cmp r1, #0xff + beq _081C4D68 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + cmp r1, r0 + bne _081C4D60 + adds r0, r5, #0 + movs r1, #1 + bl sub_081C52B4 + b _081C4D68 + .align 2, 0 +_081C4D58: .4byte 0x0203CBF8 +_081C4D5C: .4byte 0x00000814 +_081C4D60: + adds r0, r5, #0 + movs r1, #0xff + bl sub_081C52B4 +_081C4D68: + ldr r0, _081C4DBC + ldr r1, _081C4DC0 + ldr r3, [r1] + ldr r2, _081C4DC4 + adds r1, r3, r2 + ldrb r2, [r1] + lsls r2, r2, #0x1e + lsrs r2, r2, #0x1e + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #1 + adds r1, r4, r1 + ldr r2, _081C4DC8 + adds r3, r3, r2 + adds r3, r3, r1 + ldrb r1, [r3] + movs r2, #1 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r4, _081C4DCC + ldr r1, _081C4DD0 + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r1, #0 + str r1, [sp] + str r1, [sp, #4] + movs r0, #0xff + str r0, [sp, #8] + str r1, [sp, #0xc] + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #0x60 + adds r3, r5, #0 + bl PrintOnWindow_Font1 +_081C4DB2: + add sp, #0x10 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081C4DBC: .4byte 0x02021C40 +_081C4DC0: .4byte 0x03005AF0 +_081C4DC4: .4byte 0x00000CA9 +_081C4DC8: .4byte 0x00000E54 +_081C4DCC: .4byte 0x02021C7C +_081C4DD0: .4byte 0x085C943C + thumb_func_end PrintItemQuantity + + thumb_func_start PrintItemDescription +PrintItemDescription: @ 0x081C4DD4 + push {r4, lr} + sub sp, #0x10 + adds r3, r0, #0 + movs r0, #2 + rsbs r0, r0, #0 + cmp r3, r0 + beq _081C4E18 + ldr r0, _081C4E0C + ldr r2, [r0] + lsls r3, r3, #1 + ldr r1, _081C4E10 + adds r0, r2, r1 + ldrb r1, [r0] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r3, r3, r0 + ldr r0, _081C4E14 + adds r2, r2, r0 + adds r2, r2, r3 + ldrh r0, [r2] + bl ItemId_GetHoldEffect + adds r4, r0, #0 + b _081C4E34 + .align 2, 0 +_081C4E0C: .4byte 0x03005AF0 +_081C4E10: .4byte 0x00000CA9 +_081C4E14: .4byte 0x00000E2C +_081C4E18: + ldr r0, _081C4E5C + ldr r2, _081C4E60 + ldr r1, _081C4E64 + ldrb r1, [r1, #4] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl StringCopy + ldr r4, _081C4E68 + ldr r1, _081C4E6C + adds r0, r4, #0 + bl StringExpandPlaceholders +_081C4E34: + movs r0, #1 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + movs r0, #1 + adds r1, r4, #0 + movs r2, #0 + movs r3, #2 + bl PrintOnWindow_Font1 + add sp, #0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C4E5C: .4byte 0x02021C40 +_081C4E60: .4byte 0x085C9728 +_081C4E64: .4byte 0x0203CBFC +_081C4E68: .4byte 0x02021C7C +_081C4E6C: .4byte 0x085C9738 + thumb_func_end PrintItemDescription + + thumb_func_start AddScrollArrow +AddScrollArrow: @ 0x081C4E70 + push {r4, lr} + sub sp, #0x10 + ldr r4, _081C4EB8 + ldr r1, [r4] + ldr r2, _081C4EBC + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0xff + bne _081C4EB0 + adds r2, #0xb + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, #1 + adds r1, r1, r2 + ldrb r1, [r1] + subs r0, r0, r1 + str r0, [sp] + ldr r0, _081C4EC0 + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, _081C4EC4 + str r0, [sp, #0xc] + movs r0, #2 + movs r1, #0xac + movs r2, #0xc + movs r3, #0x94 + bl AddScrollIndicatorArrowPairParameterized + ldr r1, [r4] + ldr r2, _081C4EBC + adds r1, r1, r2 + strb r0, [r1] +_081C4EB0: + add sp, #0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C4EB8: .4byte 0x0203CBF8 +_081C4EBC: .4byte 0x00000816 +_081C4EC0: .4byte 0x00000B5E +_081C4EC4: .4byte 0x0203CC04 + thumb_func_end AddScrollArrow + + thumb_func_start RemoveScrollArrow +RemoveScrollArrow: @ 0x081C4EC8 + push {r4, lr} + ldr r4, _081C4EEC + ldr r0, [r4] + ldr r2, _081C4EF0 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, #0xff + beq _081C4EE6 + bl RemoveScrollIndicatorArrowPair + ldr r0, [r4] + ldr r1, _081C4EF0 + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] +_081C4EE6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C4EEC: .4byte 0x0203CBF8 +_081C4EF0: .4byte 0x00000816 + thumb_func_end RemoveScrollArrow + + thumb_func_start sub_081C4EF4 +sub_081C4EF4: @ 0x081C4EF4 + push {r4, lr} + ldr r0, _081C4F24 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _081C4F28 + adds r4, r4, r0 + ldr r0, _081C4F2C + ldr r2, _081C4F30 + ldrh r1, [r2, #8] + ldrh r2, [r2, #6] + bl ListMenuInit + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C4F24: .4byte 0x081C53C5 +_081C4F28: .4byte 0x03005B68 +_081C4F2C: .4byte 0x03006050 +_081C4F30: .4byte 0x0203CBFC + thumb_func_end sub_081C4EF4 + + thumb_func_start SwapItems +SwapItems: @ 0x081C4F34 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _081C4F94 + ldr r6, [r2] + ldr r3, _081C4F98 + adds r2, r6, r3 + ldrb r3, [r2] + lsls r3, r3, #0x1e + lsrs r2, r3, #0x1e + lsls r4, r2, #2 + adds r4, r4, r2 + lsls r4, r4, #2 + ldr r2, _081C4F9C + adds r4, r4, r2 + adds r4, r6, r4 + lsrs r3, r3, #0x1e + lsls r2, r3, #2 + adds r2, r2, r3 + lsls r2, r2, #1 + ldr r3, _081C4FA0 + adds r2, r2, r3 + adds r6, r6, r2 + lsls r5, r0, #1 + adds r5, r5, r4 + ldrh r2, [r5] + mov r8, r2 + lsls r2, r1, #1 + adds r2, r2, r4 + ldrh r3, [r2] + strh r3, [r5] + mov r3, r8 + strh r3, [r2] + adds r0, r6, r0 + ldrb r2, [r0] + adds r6, r6, r1 + ldrb r1, [r6] + strb r1, [r0] + strb r2, [r6] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081C4F94: .4byte 0x03005AF0 +_081C4F98: .4byte 0x00000CA9 +_081C4F9C: .4byte 0x00000E2C +_081C4FA0: .4byte 0x00000E54 + thumb_func_end SwapItems + + thumb_func_start MovePyramidBagItemSlotInList +MovePyramidBagItemSlotInList: @ 0x081C4FA4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r7, r4, #0 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + ldr r0, _081C501C + ldr r3, [r0] + ldr r1, _081C5020 + adds r0, r3, r1 + ldrb r1, [r0] + lsls r1, r1, #0x1e + lsrs r2, r1, #0x1e + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _081C5024 + adds r0, r0, r2 + adds r6, r3, r0 + lsrs r1, r1, #0x1e + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r1, _081C5028 + adds r0, r0, r1 + adds r3, r3, r0 + cmp r4, r5 + beq _081C505E + lsls r0, r4, #1 + adds r0, r0, r6 + ldrh r0, [r0] + mov ip, r0 + adds r0, r3, r4 + ldrb r0, [r0] + mov r8, r0 + cmp r5, r4 + bls _081C502C + subs r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r2, r4, #0x10 + cmp r4, r5 + bge _081C5050 +_081C4FFE: + asrs r2, r2, #0x10 + lsls r0, r2, #1 + adds r0, r0, r6 + ldrh r1, [r0, #2] + strh r1, [r0] + adds r1, r3, r2 + ldrb r0, [r1, #1] + strb r0, [r1] + adds r2, #1 + lsls r2, r2, #0x10 + asrs r0, r2, #0x10 + cmp r0, r5 + blt _081C4FFE + b _081C5050 + .align 2, 0 +_081C501C: .4byte 0x03005AF0 +_081C5020: .4byte 0x00000CA9 +_081C5024: .4byte 0x00000E2C +_081C5028: .4byte 0x00000E54 +_081C502C: + lsls r2, r7, #0x10 + cmp r7, r5 + ble _081C5050 +_081C5032: + asrs r2, r2, #0x10 + lsls r1, r2, #1 + adds r1, r1, r6 + subs r0, r1, #2 + ldrh r0, [r0] + strh r0, [r1] + adds r1, r3, r2 + subs r0, r1, #1 + ldrb r0, [r0] + strb r0, [r1] + subs r2, #1 + lsls r2, r2, #0x10 + asrs r0, r2, #0x10 + cmp r0, r5 + bgt _081C5032 +_081C5050: + lsls r0, r5, #1 + adds r0, r0, r6 + mov r2, ip + strh r2, [r0] + adds r0, r3, r5 + mov r1, r8 + strb r1, [r0] +_081C505E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end MovePyramidBagItemSlotInList + + thumb_func_start CompactItems +CompactItems: @ 0x081C5068 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r0, _081C5110 + ldr r3, [r0] + ldr r1, _081C5114 + adds r0, r3, r1 + ldrb r1, [r0] + lsls r1, r1, #0x1e + lsrs r2, r1, #0x1e + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _081C5118 + adds r0, r0, r2 + adds r0, r0, r3 + mov sb, r0 + lsrs r1, r1, #0x1e + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r4, _081C511C + adds r0, r0, r4 + adds r3, r3, r0 + mov r8, r3 + movs r5, #0 + movs r3, #0 +_081C50A0: + lsls r0, r5, #1 + mov r1, sb + adds r2, r0, r1 + ldrh r0, [r2] + mov r4, r8 + adds r1, r4, r5 + cmp r0, #0 + beq _081C50B6 + ldrb r0, [r1] + cmp r0, #0 + bne _081C50BA +_081C50B6: + strh r3, [r2] + strb r3, [r1] +_081C50BA: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #9 + bls _081C50A0 + movs r5, #0 +_081C50C6: + adds r1, r5, #1 + lsls r0, r1, #0x18 + lsrs r4, r0, #0x18 + adds r7, r1, #0 + cmp r4, #9 + bhi _081C50FA + lsls r0, r5, #1 + mov r1, sb + adds r6, r0, r1 +_081C50D8: + ldrh r0, [r6] + cmp r0, #0 + beq _081C50E8 + mov r2, r8 + adds r0, r2, r5 + ldrb r0, [r0] + cmp r0, #0 + bne _081C50F0 +_081C50E8: + adds r0, r5, #0 + adds r1, r4, #0 + bl SwapItems +_081C50F0: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #9 + bls _081C50D8 +_081C50FA: + lsls r0, r7, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #8 + bls _081C50C6 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C5110: .4byte 0x03005AF0 +_081C5114: .4byte 0x00000CA9 +_081C5118: .4byte 0x00000E2C +_081C511C: .4byte 0x00000E54 + thumb_func_end CompactItems + + thumb_func_start sub_081C5120 +sub_081C5120: @ 0x081C5120 + push {r4, r5, r6, lr} + ldr r0, _081C5190 + ldr r2, [r0] + ldr r1, _081C5194 + adds r0, r2, r1 + ldrb r1, [r0] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _081C5198 + adds r0, r0, r1 + adds r5, r2, r0 + bl CompactItems + ldr r3, _081C519C + ldr r0, [r3] + ldr r2, _081C51A0 + adds r0, r0, r2 + movs r1, #0 + strb r1, [r0] + movs r4, #0 + adds r6, r3, #0 +_081C5150: + lsls r0, r4, #1 + adds r0, r0, r5 + ldrh r0, [r0] + ldr r3, _081C519C + cmp r0, #0 + beq _081C5166 + ldr r1, [r6] + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_081C5166: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #9 + bls _081C5150 + ldr r0, [r3] + ldr r2, _081C51A0 + adds r0, r0, r2 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + ldr r0, [r3] + adds r2, r0, r2 + ldrb r2, [r2] + cmp r2, #8 + bls _081C51A8 + ldr r2, _081C51A4 + adds r1, r0, r2 + movs r0, #8 + strb r0, [r1] + b _081C51AE + .align 2, 0 +_081C5190: .4byte 0x03005AF0 +_081C5194: .4byte 0x00000CA9 +_081C5198: .4byte 0x00000E2C +_081C519C: .4byte 0x0203CBF8 +_081C51A0: .4byte 0x00000821 +_081C51A4: .4byte 0x00000822 +_081C51A8: + ldr r1, _081C51B4 + adds r0, r0, r1 + strb r2, [r0] +_081C51AE: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081C51B4: .4byte 0x00000822 + thumb_func_end sub_081C5120 + + thumb_func_start sub_081C51B8 +sub_081C51B8: @ 0x081C51B8 + push {r4, r5, lr} + ldr r0, _081C5200 + ldrh r1, [r0, #8] + adds r3, r0, #0 + ldr r4, _081C5204 + cmp r1, #0 + beq _081C51E0 + ldrh r0, [r3, #8] + ldr r1, [r4] + ldr r5, _081C5208 + adds r2, r1, r5 + ldrb r2, [r2] + adds r0, r0, r2 + subs r5, #1 + adds r1, r1, r5 + ldrb r1, [r1] + cmp r0, r1 + ble _081C51E0 + subs r0, r1, r2 + strh r0, [r3, #8] +_081C51E0: + adds r2, r3, #0 + ldrh r1, [r2, #8] + ldrh r0, [r2, #6] + adds r1, r1, r0 + ldr r0, [r4] + ldr r4, _081C520C + adds r0, r0, r4 + ldrb r0, [r0] + cmp r1, r0 + blt _081C5214 + adds r1, r0, #0 + cmp r1, #0 + bne _081C5210 + strh r1, [r2, #6] + b _081C5214 + .align 2, 0 +_081C5200: .4byte 0x0203CBFC +_081C5204: .4byte 0x0203CBF8 +_081C5208: .4byte 0x00000822 +_081C520C: .4byte 0x00000821 +_081C5210: + subs r0, #1 + strh r0, [r3, #6] +_081C5214: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081C51B8 + + thumb_func_start sub_081C521C +sub_081C521C: @ 0x081C521C + push {r4, r5, r6, r7, lr} + ldr r0, _081C5284 + ldrh r1, [r0, #6] + adds r5, r0, #0 + cmp r1, #4 + bls _081C527C + movs r4, #0 + ldrh r0, [r5, #6] + subs r0, #4 + cmp r4, r0 + bgt _081C527C + ldrh r2, [r5, #8] + ldr r6, _081C5288 + ldr r0, [r6] + ldr r3, _081C528C + adds r1, r0, r3 + ldrb r1, [r1] + adds r2, r2, r1 + ldr r7, _081C5290 + adds r0, r0, r7 + ldrb r0, [r0] + cmp r2, r0 + beq _081C527C + adds r3, r5, #0 +_081C524C: + ldrh r0, [r3, #6] + subs r0, #1 + strh r0, [r3, #6] + ldrh r0, [r3, #8] + adds r0, #1 + strh r0, [r3, #8] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldrh r0, [r3, #6] + subs r0, #4 + cmp r4, r0 + bgt _081C527C + ldrh r2, [r5, #8] + ldr r1, [r6] + ldr r7, _081C528C + adds r0, r1, r7 + ldrb r0, [r0] + adds r2, r2, r0 + ldr r0, _081C5290 + adds r1, r1, r0 + ldrb r1, [r1] + cmp r2, r1 + bne _081C524C +_081C527C: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C5284: .4byte 0x0203CBFC +_081C5288: .4byte 0x0203CBF8 +_081C528C: .4byte 0x00000822 +_081C5290: .4byte 0x00000821 + thumb_func_end sub_081C521C + + thumb_func_start sub_081C5294 +sub_081C5294: @ 0x081C5294 + push {r4, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl ListMenuGetYCoordForPrintingArrowCursor + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r4, #0 + bl sub_081C52B4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_081C5294 + + thumb_func_start sub_081C52B4 +sub_081C52B4: @ 0x081C52B4 + push {r4, r5, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r2, r1, #0x18 + cmp r2, #0xff + bne _081C52F0 + movs r0, #1 + movs r1, #0 + bl GetMenuCursorDimensionByFont + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + movs r1, #1 + bl GetMenuCursorDimensionByFont + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r4, [sp] + str r0, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + adds r3, r5, #0 + bl FillWindowPixelRect + b _081C5304 +_081C52F0: + ldr r1, _081C530C + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + str r2, [sp, #0xc] + movs r2, #0 + adds r3, r5, #0 + bl PrintOnWindow_Font1 +_081C5304: + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C530C: .4byte 0x085C9421 + thumb_func_end sub_081C52B4 + + thumb_func_start sub_081C5310 +sub_081C5310: @ 0x081C5310 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _081C5340 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081C5344 + str r1, [r0] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C5340: .4byte 0x03005B60 +_081C5344: .4byte 0x081C5349 + thumb_func_end sub_081C5310 + + thumb_func_start sub_081C5348 +sub_081C5348: @ 0x081C5348 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _081C5380 + adds r2, r0, r1 + ldr r0, _081C5384 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081C53B8 + ldrb r0, [r2] + ldr r4, _081C5388 + subs r2, r4, #2 + adds r1, r4, #0 + bl DestroyListMenuTask + ldr r0, _081C538C + ldr r0, [r0] + ldr r0, [r0] + cmp r0, #0 + beq _081C5390 + bl SetMainCallback2 + b _081C539A + .align 2, 0 +_081C5380: .4byte 0x03005B68 +_081C5384: .4byte 0x02037C74 +_081C5388: .4byte 0x0203CC04 +_081C538C: .4byte 0x0203CBF8 +_081C5390: + adds r0, r4, #0 + subs r0, #8 + ldr r0, [r0] + bl SetMainCallback2 +_081C539A: + bl RemoveScrollArrow + bl ResetSpriteData + bl FreeAllSpritePalettes + bl FreeAllWindowBuffers + ldr r0, _081C53C0 + ldr r0, [r0] + bl Free + adds r0, r5, #0 + bl DestroyTask +_081C53B8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C53C0: .4byte 0x0203CBF8 + thumb_func_end sub_081C5348 + + thumb_func_start Task_HandlePyramidBagInput +Task_HandlePyramidBagInput: @ 0x081C53C4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _081C5440 + adds r7, r0, r1 + bl sub_081221F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081C53E6 + b _081C5512 +_081C53E6: + ldr r0, _081C5444 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _081C53F4 + b _081C5512 +_081C53F4: + ldr r0, _081C5448 + ldrh r1, [r0, #0x2e] + movs r0, #4 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0 + beq _081C5458 + ldr r4, _081C544C + ldrb r0, [r4, #4] + cmp r0, #2 + bne _081C540E + b _081C5512 +_081C540E: + ldrb r0, [r7] + adds r1, r4, #0 + adds r1, #8 + adds r2, r4, #6 + bl ListMenuGetScrollAndRow + ldrh r1, [r4, #8] + ldrh r0, [r4, #6] + adds r1, r1, r0 + ldr r0, _081C5450 + ldr r0, [r0] + ldr r2, _081C5454 + adds r0, r0, r2 + ldrb r0, [r0] + subs r0, #1 + cmp r1, r0 + beq _081C5512 + movs r0, #5 + bl PlaySE + adds r0, r5, #0 + bl Task_BeginItemSwap + b _081C5512 + .align 2, 0 +_081C5440: .4byte 0x03005B68 +_081C5444: .4byte 0x02037C74 +_081C5448: .4byte 0x03002360 +_081C544C: .4byte 0x0203CBFC +_081C5450: .4byte 0x0203CBF8 +_081C5454: .4byte 0x00000821 +_081C5458: + ldrb r0, [r7] + bl ListMenu_ProcessInput + adds r6, r0, #0 + ldrb r0, [r7] + ldr r1, _081C5480 + mov r8, r1 + mov r2, r8 + subs r2, #2 + bl ListMenuGetScrollAndRow + movs r0, #2 + rsbs r0, r0, #0 + cmp r6, r0 + beq _081C5484 + adds r0, #1 + cmp r6, r0 + bne _081C549C + b _081C5512 + .align 2, 0 +_081C5480: .4byte 0x0203CC04 +_081C5484: + movs r0, #5 + bl PlaySE + ldr r0, _081C5498 + strh r4, [r0] + adds r0, r5, #0 + bl sub_081C5310 + b _081C5512 + .align 2, 0 +_081C5498: .4byte 0x0203CB48 +_081C549C: + movs r0, #5 + bl PlaySE + ldr r2, _081C54F8 + mov ip, r2 + ldr r0, _081C54FC + ldr r2, [r0] + lsls r3, r6, #1 + ldr r0, _081C5500 + adds r4, r2, r0 + ldrb r1, [r4] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r3, r3, r0 + ldr r1, _081C5504 + adds r0, r2, r1 + adds r0, r0, r3 + ldrh r0, [r0] + mov r1, ip + strh r0, [r1] + strh r6, [r7, #2] + ldrb r1, [r4] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r0, r6, r0 + ldr r1, _081C5508 + adds r2, r2, r1 + adds r2, r2, r0 + ldrb r0, [r2] + strh r0, [r7, #4] + mov r0, r8 + subs r0, #8 + ldrb r0, [r0, #4] + cmp r0, #2 + bne _081C550C + adds r0, r5, #0 + bl sub_081C5F5C + b _081C5512 + .align 2, 0 +_081C54F8: .4byte 0x0203CB48 +_081C54FC: .4byte 0x03005AF0 +_081C5500: .4byte 0x00000CA9 +_081C5504: .4byte 0x00000E2C +_081C5508: .4byte 0x00000E54 +_081C550C: + adds r0, r5, #0 + bl sub_081C551C +_081C5512: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end Task_HandlePyramidBagInput + + thumb_func_start sub_081C551C +sub_081C551C: @ 0x081C551C + push {r4, r5, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + ldr r0, _081C555C + adds r4, r4, r0 + bl RemoveScrollArrow + ldrb r0, [r4] + movs r1, #1 + bl sub_081C5294 + ldr r0, _081C5560 + ldrb r4, [r0, #4] + cmp r4, #1 + beq _081C5570 + cmp r4, #3 + beq _081C55C0 + ldr r0, _081C5564 + ldr r1, [r0] + ldr r0, _081C5568 + adds r2, r1, r0 + ldr r0, _081C556C + str r0, [r2] + movs r0, #0x82 + lsls r0, r0, #4 + adds r1, r1, r0 + movs r0, #4 + b _081C55D4 + .align 2, 0 +_081C555C: .4byte 0x03005B68 +_081C5560: .4byte 0x0203CBFC +_081C5564: .4byte 0x0203CBF8 +_081C5568: .4byte 0x00000818 +_081C556C: .4byte 0x085EF758 +_081C5570: + ldr r0, _081C558C + ldrh r0, [r0] + bl ItemId_GetSecondaryId + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081C559C + ldr r0, _081C5590 + ldr r1, [r0] + ldr r0, _081C5594 + adds r2, r1, r0 + ldr r0, _081C5598 + b _081C55CA + .align 2, 0 +_081C558C: .4byte 0x0203CB48 +_081C5590: .4byte 0x0203CBF8 +_081C5594: .4byte 0x00000818 +_081C5598: .4byte 0x085EF75E +_081C559C: + ldr r0, _081C55B4 + ldr r0, [r0] + ldr r1, _081C55B8 + adds r2, r0, r1 + ldr r1, _081C55BC + str r1, [r2] + movs r1, #0x82 + lsls r1, r1, #4 + adds r0, r0, r1 + strb r4, [r0] + b _081C55D6 + .align 2, 0 +_081C55B4: .4byte 0x0203CBF8 +_081C55B8: .4byte 0x00000818 +_081C55BC: .4byte 0x085EF760 +_081C55C0: + ldr r0, _081C561C + ldr r1, [r0] + ldr r0, _081C5620 + adds r2, r1, r0 + ldr r0, _081C5624 +_081C55CA: + str r0, [r2] + movs r0, #0x82 + lsls r0, r0, #4 + adds r1, r1, r0 + movs r0, #2 +_081C55D4: + strb r0, [r1] +_081C55D6: + ldr r0, _081C5628 + ldrh r0, [r0] + ldr r1, _081C562C + bl CopyItemName + ldr r4, _081C5630 + ldr r1, _081C5634 + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #1 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + movs r0, #1 + adds r1, r4, #0 + movs r2, #0 + movs r3, #2 + bl PrintOnWindow_Font1 + ldr r0, _081C561C + ldr r0, [r0] + movs r1, #0x82 + lsls r1, r1, #4 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + bne _081C5638 + movs r0, #0 + b _081C563E + .align 2, 0 +_081C561C: .4byte 0x0203CBF8 +_081C5620: .4byte 0x00000818 +_081C5624: .4byte 0x085EF75C +_081C5628: .4byte 0x0203CB48 +_081C562C: .4byte 0x02021C40 +_081C5630: .4byte 0x02021C7C +_081C5634: .4byte 0x085C9450 +_081C5638: + cmp r0, #2 + bne _081C564C + movs r0, #1 +_081C563E: + bl sub_081C64E4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_081C56A8 + b _081C565E +_081C564C: + movs r0, #2 + bl sub_081C64E4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + movs r2, #2 + bl sub_081C5724 +_081C565E: + ldr r0, _081C567C + ldr r0, [r0] + movs r1, #0x82 + lsls r1, r1, #4 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #4 + bne _081C5688 + ldr r0, _081C5680 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081C5684 + b _081C5694 + .align 2, 0 +_081C567C: .4byte 0x0203CBF8 +_081C5680: .4byte 0x03005B60 +_081C5684: .4byte 0x081C5811 +_081C5688: + ldr r0, _081C56A0 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081C56A4 +_081C5694: + str r0, [r1] + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C56A0: .4byte 0x03005B60 +_081C56A4: .4byte 0x081C5795 + thumb_func_end sub_081C551C + + thumb_func_start sub_081C56A8 +sub_081C56A8: @ 0x081C56A8 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0x14 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + mov r8, r0 + str r0, [sp] + movs r0, #0x10 + str r0, [sp, #4] + ldr r6, _081C5718 + ldr r1, [r6] + movs r5, #0x82 + lsls r5, r5, #4 + adds r0, r1, r5 + ldrb r0, [r0] + str r0, [sp, #8] + ldr r0, _081C571C + str r0, [sp, #0xc] + ldr r0, _081C5720 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [sp, #0x10] + adds r0, r4, #0 + movs r1, #1 + movs r2, #8 + movs r3, #2 + bl AddItemMenuActionTextPrinters + movs r0, #1 + movs r1, #1 + bl GetFontAttribute + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + ldr r0, [r6] + adds r0, r0, r5 + ldrb r0, [r0] + str r0, [sp, #4] + mov r0, r8 + str r0, [sp, #8] + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl sub_081984B0 + add sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081C5718: .4byte 0x0203CBF8 +_081C571C: .4byte 0x085EF728 +_081C5720: .4byte 0x00000818 + thumb_func_end sub_081C56A8 + + thumb_func_start sub_081C5724 +sub_081C5724: @ 0x081C5724 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0x14 + adds r6, r0, #0 + adds r4, r1, #0 + adds r5, r2, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r0, #0x30 + mov r8, r0 + str r0, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + ldr r0, _081C5788 + str r0, [sp, #0xc] + ldr r0, _081C578C + ldr r0, [r0] + ldr r1, _081C5790 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [sp, #0x10] + adds r0, r6, #0 + movs r1, #1 + movs r2, #8 + movs r3, #2 + bl sub_08198ECC + mov r0, r8 + str r0, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + str r0, [sp, #0xc] + adds r0, r6, #0 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl sub_081990E4 + add sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081C5788: .4byte 0x085EF728 +_081C578C: .4byte 0x0203CBF8 +_081C5790: .4byte 0x00000818 + thumb_func_end sub_081C5724 + + thumb_func_start HandleFewMenuActionsInput +HandleFewMenuActionsInput: @ 0x081C5794 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r6, r5, #0 + bl sub_081221F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081C57FC + bl Menu_ProcessInputNoWrap + lsls r0, r0, #0x18 + asrs r4, r0, #0x18 + movs r0, #2 + rsbs r0, r0, #0 + cmp r4, r0 + beq _081C57FC + adds r0, #1 + cmp r4, r0 + bne _081C57D4 + movs r0, #5 + bl PlaySE + ldr r0, _081C57D0 + ldr r1, [r0, #0x1c] + adds r0, r5, #0 + bl _call_via_r1 + b _081C57FC + .align 2, 0 +_081C57D0: .4byte 0x085EF728 +_081C57D4: + movs r0, #5 + bl PlaySE + ldr r1, _081C5804 + ldr r0, _081C5808 + ldr r0, [r0] + ldr r2, _081C580C + adds r0, r0, r2 + ldr r0, [r0] + adds r0, r0, r4 + ldrb r0, [r0] + lsls r0, r0, #3 + adds r1, #4 + adds r0, r0, r1 + ldr r1, [r0] + cmp r1, #0 + beq _081C57FC + adds r0, r6, #0 + bl _call_via_r1 +_081C57FC: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081C5804: .4byte 0x085EF728 +_081C5808: .4byte 0x0203CBF8 +_081C580C: .4byte 0x00000818 + thumb_func_end HandleFewMenuActionsInput + + thumb_func_start HandleMenuActionInput +HandleMenuActionInput: @ 0x081C5810 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + bl sub_081221F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081C5824 + b _081C598C +_081C5824: + bl Menu_GetCursorPos + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r5, _081C5868 + ldrh r1, [r5, #0x2e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _081C586C + lsls r0, r4, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bgt _081C5842 + b _081C598C +_081C5842: + subs r0, #2 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + bl IsValidMenuAction + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081C5854 + b _081C598C +_081C5854: + movs r0, #5 + bl PlaySE + movs r1, #1 + rsbs r1, r1, #0 + movs r0, #0 + bl sub_08199250 + b _081C598C + .align 2, 0 +_081C5868: .4byte 0x03002360 +_081C586C: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _081C58B0 + lsls r0, r4, #0x18 + asrs r1, r0, #0x18 + ldr r0, _081C58AC + ldr r0, [r0] + movs r2, #0x82 + lsls r2, r2, #4 + adds r0, r0, r2 + ldrb r0, [r0] + subs r0, #2 + cmp r1, r0 + blt _081C588C + b _081C598C +_081C588C: + adds r0, r1, #2 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + bl IsValidMenuAction + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081C598C + movs r0, #5 + bl PlaySE + movs r0, #0 + movs r1, #1 + bl sub_08199250 + b _081C598C + .align 2, 0 +_081C58AC: .4byte 0x0203CBF8 +_081C58B0: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _081C58C4 + bl GetLRKeysState + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081C58EC +_081C58C4: + lsls r0, r4, #0x18 + asrs r1, r0, #0x18 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081C598C + subs r0, r1, #1 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + bl IsValidMenuAction + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081C598C + movs r0, #5 + bl PlaySE + movs r0, #1 + rsbs r0, r0, #0 + b _081C5926 +_081C58EC: + ldrh r1, [r5, #0x2e] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _081C5902 + bl GetLRKeysState + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _081C592E +_081C5902: + lsls r0, r4, #0x18 + asrs r1, r0, #0x18 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _081C598C + adds r0, r1, #1 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + bl IsValidMenuAction + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081C598C + movs r0, #5 + bl PlaySE + movs r0, #1 +_081C5926: + movs r1, #0 + bl sub_08199250 + b _081C598C +_081C592E: + ldrh r1, [r5, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081C5974 + movs r0, #5 + bl PlaySE + ldr r2, _081C5968 + ldr r0, _081C596C + ldr r0, [r0] + lsls r1, r4, #0x18 + asrs r1, r1, #0x18 + ldr r3, _081C5970 + adds r0, r0, r3 + ldr r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #3 + adds r2, #4 + adds r0, r0, r2 + ldr r1, [r0] + cmp r1, #0 + beq _081C598C + adds r0, r6, #0 + bl _call_via_r1 + b _081C598C + .align 2, 0 +_081C5968: .4byte 0x085EF728 +_081C596C: .4byte 0x0203CBF8 +_081C5970: .4byte 0x00000818 +_081C5974: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081C598C + movs r0, #5 + bl PlaySE + ldr r0, _081C5994 + ldr r1, [r0, #0x1c] + adds r0, r6, #0 + bl _call_via_r1 +_081C598C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081C5994: .4byte 0x085EF728 + thumb_func_end HandleMenuActionInput + + thumb_func_start IsValidMenuAction +IsValidMenuAction: @ 0x081C5998 + push {lr} + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + blt _081C59CC + ldr r0, _081C59C4 + ldr r2, [r0] + movs r3, #0x82 + lsls r3, r3, #4 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r1, r0 + bgt _081C59CC + ldr r3, _081C59C8 + adds r0, r2, r3 + ldr r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #5 + beq _081C59CC + movs r0, #1 + b _081C59CE + .align 2, 0 +_081C59C4: .4byte 0x0203CBF8 +_081C59C8: .4byte 0x00000818 +_081C59CC: + movs r0, #0 +_081C59CE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsValidMenuAction + + thumb_func_start sub_081C59D4 +sub_081C59D4: @ 0x081C59D4 + push {lr} + ldr r0, _081C59F0 + ldr r0, [r0] + movs r1, #0x82 + lsls r1, r1, #4 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + bne _081C59F4 + movs r0, #0 + bl sub_081C652C + b _081C5A06 + .align 2, 0 +_081C59F0: .4byte 0x0203CBF8 +_081C59F4: + cmp r0, #2 + bne _081C5A00 + movs r0, #1 + bl sub_081C652C + b _081C5A06 +_081C5A00: + movs r0, #2 + bl sub_081C652C +_081C5A06: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081C59D4 + + thumb_func_start BagAction_UseOnField +BagAction_UseOnField: @ 0x081C5A0C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r4, _081C5A48 + ldrh r0, [r4] + bl ItemId_GetImportance + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + beq _081C5A38 + cmp r0, #2 + beq _081C5A38 + cmp r0, #3 + beq _081C5A38 + ldrh r0, [r4] + bl ItemIsMail + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081C5A54 +_081C5A38: + bl sub_081C59D4 + ldr r1, _081C5A4C + ldr r2, _081C5A50 + adds r0, r5, #0 + bl DisplayItemMessageInBattlePyramid + b _081C5A7E + .align 2, 0 +_081C5A48: .4byte 0x0203CB48 +_081C5A4C: .4byte 0x085C9556 +_081C5A50: .4byte 0x081C5F25 +_081C5A54: + ldrh r0, [r4] + bl sub_080D6DF8 + cmp r0, #0 + beq _081C5A7E + bl sub_081C59D4 + movs r0, #1 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + ldrh r0, [r4] + bl sub_080D6DF8 + adds r1, r0, #0 + adds r0, r5, #0 + bl _call_via_r1 +_081C5A7E: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end BagAction_UseOnField + + thumb_func_start BagAction_Cancel +BagAction_Cancel: @ 0x081C5A84 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + ldr r0, _081C5AC4 + adds r4, r4, r0 + bl sub_081C59D4 + movs r1, #2 + ldrsh r0, [r4, r1] + bl PrintItemDescription + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + ldrb r0, [r4] + movs r1, #0 + bl sub_081C5294 + adds r0, r5, #0 + bl SetTaskToMainPyramidBagInputHandler + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C5AC4: .4byte 0x03005B68 + thumb_func_end BagAction_Cancel + + thumb_func_start SetTaskToMainPyramidBagInputHandler +SetTaskToMainPyramidBagInputHandler: @ 0x081C5AC8 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl AddScrollArrow + ldr r1, _081C5AE8 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081C5AEC + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C5AE8: .4byte 0x03005B60 +_081C5AEC: .4byte 0x081C53C5 + thumb_func_end SetTaskToMainPyramidBagInputHandler + + thumb_func_start BagAction_Toss +BagAction_Toss: @ 0x081C5AF0 + push {r4, r5, r6, r7, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r6, r0, #3 + ldr r7, _081C5B1C + adds r4, r6, r7 + bl sub_081C59D4 + movs r0, #1 + strh r0, [r4, #0x10] + movs r1, #4 + ldrsh r0, [r4, r1] + cmp r0, #1 + bne _081C5B20 + adds r0, r5, #0 + bl sub_081C5B7C + b _081C5B60 + .align 2, 0 +_081C5B1C: .4byte 0x03005B68 +_081C5B20: + ldr r0, _081C5B68 + ldrh r0, [r0] + ldr r1, _081C5B6C + bl CopyItemName + ldr r4, _081C5B70 + ldr r1, _081C5B74 + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #1 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + movs r0, #1 + adds r1, r4, #0 + movs r2, #0 + movs r3, #2 + bl PrintOnWindow_Font1 + bl sub_081C5C30 + adds r0, r7, #0 + subs r0, #8 + adds r0, r6, r0 + ldr r1, _081C5B78 + str r1, [r0] +_081C5B60: + add sp, #0x10 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C5B68: .4byte 0x0203CB48 +_081C5B6C: .4byte 0x02021C40 +_081C5B70: .4byte 0x02021C7C +_081C5B74: .4byte 0x085C9523 +_081C5B78: .4byte 0x081C5CC5 + thumb_func_end BagAction_Toss + + thumb_func_start sub_081C5B7C +sub_081C5B7C: @ 0x081C5B7C + push {r4, r5, lr} + sub sp, #0x10 + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + ldr r0, _081C5BE0 + adds r4, r4, r0 + ldr r0, _081C5BE4 + ldrh r0, [r0] + ldr r1, _081C5BE8 + bl CopyItemName + ldr r0, _081C5BEC + movs r2, #0x10 + ldrsh r1, [r4, r2] + movs r2, #0 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r4, _081C5BF0 + ldr r1, _081C5BF4 + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #1 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + movs r0, #1 + adds r1, r4, #0 + movs r2, #0 + movs r3, #2 + bl PrintOnWindow_Font1 + ldr r1, _081C5BF8 + adds r0, r5, #0 + bl sub_081C656C + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C5BE0: .4byte 0x03005B68 +_081C5BE4: .4byte 0x0203CB48 +_081C5BE8: .4byte 0x02021C40 +_081C5BEC: .4byte 0x02021C54 +_081C5BF0: .4byte 0x02021C7C +_081C5BF4: .4byte 0x085C9540 +_081C5BF8: .4byte 0x085EF764 + thumb_func_end sub_081C5B7C + + thumb_func_start DontTossItem +DontTossItem: @ 0x081C5BFC + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + ldr r0, _081C5C2C + adds r4, r4, r0 + movs r1, #2 + ldrsh r0, [r4, r1] + bl PrintItemDescription + ldrb r0, [r4] + movs r1, #0 + bl sub_081C5294 + adds r0, r5, #0 + bl SetTaskToMainPyramidBagInputHandler + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C5C2C: .4byte 0x03005B68 + thumb_func_end DontTossItem + + thumb_func_start sub_081C5C30 +sub_081C5C30: @ 0x081C5C30 + push {r4, lr} + sub sp, #0xc + ldr r0, _081C5C70 + movs r1, #1 + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r4, _081C5C74 + ldr r1, _081C5C78 + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #3 + bl sub_081C64AC + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + movs r0, #3 + movs r1, #1 + adds r2, r4, #0 + movs r3, #8 + bl AddTextPrinterParameterized + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C5C70: .4byte 0x02021C40 +_081C5C74: .4byte 0x02021C7C +_081C5C78: .4byte 0x085C943C + thumb_func_end sub_081C5C30 + + thumb_func_start sub_081C5C7C +sub_081C5C7C: @ 0x081C5C7C + push {r4, lr} + sub sp, #0xc + adds r1, r0, #0 + ldr r0, _081C5CB8 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r4, _081C5CBC + ldr r1, _081C5CC0 + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + movs r0, #3 + movs r1, #1 + adds r2, r4, #0 + movs r3, #8 + bl AddTextPrinterParameterized + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C5CB8: .4byte 0x02021C40 +_081C5CBC: .4byte 0x02021C7C +_081C5CC0: .4byte 0x085C943C + thumb_func_end sub_081C5C7C + + thumb_func_start sub_081C5CC4 +sub_081C5CC4: @ 0x081C5CC4 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r6, r5, #0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _081C5CF4 + adds r4, r0, r1 + adds r0, r4, #0 + adds r0, #0x10 + ldrh r1, [r4, #4] + bl AdjustQuantityAccordingToDPadInput + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081C5CF8 + movs r1, #0x10 + ldrsh r0, [r4, r1] + bl sub_081C5C7C + b _081C5D54 + .align 2, 0 +_081C5CF4: .4byte 0x03005B68 +_081C5CF8: + ldr r0, _081C5D28 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081C5D2C + movs r0, #5 + bl PlaySE + movs r0, #3 + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + movs r0, #3 + bl ClearWindowTilemap + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + adds r0, r5, #0 + bl sub_081C5B7C + b _081C5D54 + .align 2, 0 +_081C5D28: .4byte 0x03002360 +_081C5D2C: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081C5D54 + movs r0, #5 + bl PlaySE + movs r0, #3 + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + movs r0, #3 + bl ClearWindowTilemap + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + adds r0, r6, #0 + bl DontTossItem +_081C5D54: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081C5CC4 + + thumb_func_start TossItem +TossItem: @ 0x081C5D5C + push {r4, r5, r6, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r5, _081C5DC0 + adds r6, r4, r5 + ldr r0, _081C5DC4 + ldrh r0, [r0] + ldr r1, _081C5DC8 + bl CopyItemName + ldr r0, _081C5DCC + movs r2, #0x10 + ldrsh r1, [r6, r2] + movs r2, #0 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r6, _081C5DD0 + ldr r1, _081C5DD4 + adds r0, r6, #0 + bl StringExpandPlaceholders + movs r0, #1 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + movs r0, #1 + adds r1, r6, #0 + movs r2, #0 + movs r3, #2 + bl PrintOnWindow_Font1 + subs r5, #8 + adds r4, r4, r5 + ldr r0, _081C5DD8 + str r0, [r4] + add sp, #0x10 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081C5DC0: .4byte 0x03005B68 +_081C5DC4: .4byte 0x0203CB48 +_081C5DC8: .4byte 0x02021C40 +_081C5DCC: .4byte 0x02021C54 +_081C5DD0: .4byte 0x02021C7C +_081C5DD4: .4byte 0x085C9532 +_081C5DD8: .4byte 0x081C5DDD + thumb_func_end TossItem + + thumb_func_start sub_081C5DDC +sub_081C5DDC: @ 0x081C5DDC + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _081C5E44 + adds r4, r0, r1 + ldr r6, _081C5E48 + subs r7, r6, #2 + ldr r0, _081C5E4C + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _081C5E3E + movs r0, #5 + bl PlaySE + ldr r0, _081C5E50 + ldrh r0, [r0] + ldrh r1, [r4, #0x10] + bl RemovePyramidBagItem + ldrb r0, [r4] + adds r1, r6, #0 + adds r2, r7, #0 + bl DestroyListMenuTask + bl sub_081C5120 + bl sub_081C51B8 + bl SetBagItemsListTemplate + ldr r0, _081C5E54 + ldrh r1, [r6] + ldrh r2, [r7] + bl ListMenuInit + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + adds r0, r5, #0 + bl SetTaskToMainPyramidBagInputHandler +_081C5E3E: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C5E44: .4byte 0x03005B68 +_081C5E48: .4byte 0x0203CC04 +_081C5E4C: .4byte 0x03002360 +_081C5E50: .4byte 0x0203CB48 +_081C5E54: .4byte 0x03006050 + thumb_func_end sub_081C5DDC + + thumb_func_start BagAction_Give +BagAction_Give: @ 0x081C5E58 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r6, r4, #0 + bl sub_081C59D4 + ldr r5, _081C5E80 + ldrh r0, [r5] + bl ItemIsMail + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081C5E8C + ldr r1, _081C5E84 + ldr r2, _081C5E88 + adds r0, r4, #0 + bl DisplayItemMessageInBattlePyramid + b _081C5EB6 + .align 2, 0 +_081C5E80: .4byte 0x0203CB48 +_081C5E84: .4byte 0x085C945C +_081C5E88: .4byte 0x081C5EFD +_081C5E8C: + ldrh r0, [r5] + bl ItemId_GetHoldEffectParam + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081C5EB0 + ldr r0, _081C5EA8 + ldr r1, [r0] + ldr r0, _081C5EAC + str r0, [r1] + adds r0, r4, #0 + bl sub_081C5310 + b _081C5EB6 + .align 2, 0 +_081C5EA8: .4byte 0x0203CBF8 +_081C5EAC: .4byte 0x081B7C01 +_081C5EB0: + adds r0, r6, #0 + bl sub_081C5EBC +_081C5EB6: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end BagAction_Give + + thumb_func_start sub_081C5EBC +sub_081C5EBC: @ 0x081C5EBC + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081C5EE8 + ldrh r0, [r0] + ldr r1, _081C5EEC + bl CopyItemName + ldr r5, _081C5EF0 + ldr r1, _081C5EF4 + adds r0, r5, #0 + bl StringExpandPlaceholders + ldr r2, _081C5EF8 + adds r0, r4, #0 + adds r1, r5, #0 + bl DisplayItemMessageInBattlePyramid + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C5EE8: .4byte 0x0203CB48 +_081C5EEC: .4byte 0x02021C40 +_081C5EF0: .4byte 0x02021C7C +_081C5EF4: .4byte 0x085C948E +_081C5EF8: .4byte 0x081C5EFD + thumb_func_end sub_081C5EBC + + thumb_func_start sub_081C5EFC +sub_081C5EFC: @ 0x081C5EFC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _081C5F20 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081C5F1A + movs r0, #5 + bl PlaySE + adds r0, r4, #0 + bl sub_081C5F24 +_081C5F1A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C5F20: .4byte 0x03002360 + thumb_func_end sub_081C5EFC + + thumb_func_start sub_081C5F24 +sub_081C5F24: @ 0x081C5F24 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + ldr r0, _081C5F58 + adds r4, r4, r0 + bl sub_081C65DC + movs r1, #2 + ldrsh r0, [r4, r1] + bl PrintItemDescription + ldrb r0, [r4] + movs r1, #0 + bl sub_081C5294 + adds r0, r5, #0 + bl SetTaskToMainPyramidBagInputHandler + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C5F58: .4byte 0x03005B68 + thumb_func_end sub_081C5F24 + + thumb_func_start sub_081C5F5C +sub_081C5F5C: @ 0x081C5F5C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r6, r4, #0 + ldr r5, _081C5F80 + ldrh r0, [r5] + bl itemid_80BF6D8_mail_related + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081C5F8C + ldr r1, _081C5F84 + ldr r2, _081C5F88 + adds r0, r4, #0 + bl DisplayItemMessageInBattlePyramid + b _081C5FA6 + .align 2, 0 +_081C5F80: .4byte 0x0203CB48 +_081C5F84: .4byte 0x085C945C +_081C5F88: .4byte 0x081C5EFD +_081C5F8C: + ldrh r0, [r5] + bl ItemId_GetHoldEffectParam + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081C5FA0 + adds r0, r4, #0 + bl sub_081C5310 + b _081C5FA6 +_081C5FA0: + adds r0, r6, #0 + bl sub_081C5EBC +_081C5FA6: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_081C5F5C + + thumb_func_start BagAction_UseInBattle +BagAction_UseInBattle: @ 0x081C5FAC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r4, _081C5FD8 + ldrh r0, [r4] + bl sub_080D6E44 + cmp r0, #0 + beq _081C5FD0 + bl sub_081C59D4 + ldrh r0, [r4] + bl sub_080D6E44 + adds r1, r0, #0 + adds r0, r5, #0 + bl _call_via_r1 +_081C5FD0: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C5FD8: .4byte 0x0203CB48 + thumb_func_end BagAction_UseInBattle + + thumb_func_start Task_BeginItemSwap +Task_BeginItemSwap: @ 0x081C5FDC + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _081C609C + mov sb, r0 + adds r1, r4, #0 + add r1, sb + mov r8, r1 + ldr r0, _081C60A0 + ldrh r1, [r0, #6] + ldrh r0, [r0, #8] + adds r1, r1, r0 + mov r2, r8 + strh r1, [r2, #2] + ldr r0, _081C60A4 + ldr r0, [r0] + ldr r2, _081C60A8 + adds r0, r0, r2 + movs r5, #0 + strb r1, [r0] + mov r1, r8 + ldrb r0, [r1] + movs r1, #0x10 + movs r2, #1 + bl ListMenuSetUnkIndicatorsStructField + ldr r0, _081C60AC + ldr r3, [r0] + mov r0, r8 + movs r1, #2 + ldrsh r2, [r0, r1] + lsls r2, r2, #1 + ldr r1, _081C60B0 + adds r0, r3, r1 + ldrb r1, [r0] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, r2, r0 + ldr r0, _081C60B4 + adds r3, r3, r0 + adds r3, r3, r2 + ldrh r0, [r3] + ldr r1, _081C60B8 + bl CopyItemName + ldr r6, _081C60BC + ldr r1, _081C60C0 + adds r0, r6, #0 + bl StringExpandPlaceholders + movs r0, #1 + movs r1, #0 + bl FillWindowPixelBuffer + str r5, [sp] + str r5, [sp, #4] + str r5, [sp, #8] + str r5, [sp, #0xc] + movs r0, #1 + adds r1, r6, #0 + movs r2, #0 + movs r3, #2 + bl PrintOnWindow_Font1 + mov r1, r8 + ldrb r0, [r1] + movs r1, #1 + bl sub_081C5294 + mov r2, r8 + ldrb r0, [r2, #2] + bl sub_081C680C + movs r0, #8 + rsbs r0, r0, #0 + add sb, r0 + add r4, sb + ldr r0, _081C60C4 + str r0, [r4] + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081C609C: .4byte 0x03005B68 +_081C60A0: .4byte 0x0203CBFC +_081C60A4: .4byte 0x0203CBF8 +_081C60A8: .4byte 0x00000814 +_081C60AC: .4byte 0x03005AF0 +_081C60B0: .4byte 0x00000CA9 +_081C60B4: .4byte 0x00000E2C +_081C60B8: .4byte 0x02021C40 +_081C60BC: .4byte 0x02021C7C +_081C60C0: .4byte 0x085C947F +_081C60C4: .4byte 0x081C60C9 + thumb_func_end Task_BeginItemSwap + + thumb_func_start Task_ItemSwapHandleInput +Task_ItemSwapHandleInput: @ 0x081C60C8 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _081C6104 + adds r4, r0, r1 + bl sub_081221F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081C6174 + ldr r7, _081C6108 + ldrh r1, [r7, #0x2e] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _081C6110 + movs r0, #5 + bl PlaySE + ldrb r0, [r4] + ldr r1, _081C610C + subs r2, r1, #2 + bl ListMenuGetScrollAndRow + b _081C6158 + .align 2, 0 +_081C6104: .4byte 0x03005B68 +_081C6108: .4byte 0x03002360 +_081C610C: .4byte 0x0203CC04 +_081C6110: + ldrb r0, [r4] + bl ListMenu_ProcessInput + adds r6, r0, #0 + ldrb r0, [r4] + ldr r4, _081C6144 + subs r2, r4, #2 + adds r1, r4, #0 + bl ListMenuGetScrollAndRow + movs r0, #0 + bl sub_081C67E8 + subs r4, #8 + ldrb r0, [r4, #6] + bl sub_081C680C + movs r0, #2 + rsbs r0, r0, #0 + cmp r6, r0 + beq _081C6148 + adds r0, #1 + cmp r6, r0 + bne _081C6168 + b _081C6174 + .align 2, 0 +_081C6144: .4byte 0x0203CC04 +_081C6148: + movs r0, #5 + bl PlaySE + ldrh r1, [r7, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081C6160 +_081C6158: + adds r0, r5, #0 + bl PerformItemSwap + b _081C6174 +_081C6160: + adds r0, r5, #0 + bl sub_081C622C + b _081C6174 +_081C6168: + movs r0, #5 + bl PlaySE + adds r0, r5, #0 + bl PerformItemSwap +_081C6174: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Task_ItemSwapHandleInput + + thumb_func_start PerformItemSwap +PerformItemSwap: @ 0x081C617C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _081C61B8 + adds r5, r0, r1 + ldr r7, _081C61BC + subs r0, r7, #2 + mov r8, r0 + ldrh r0, [r0] + ldrh r1, [r7] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r3, #2 + ldrsh r1, [r5, r3] + cmp r1, r4 + beq _081C61AE + subs r0, r4, #1 + cmp r1, r0 + bne _081C61C0 +_081C61AE: + adds r0, r6, #0 + bl sub_081C622C + b _081C6214 + .align 2, 0 +_081C61B8: .4byte 0x03005B68 +_081C61BC: .4byte 0x0203CC04 +_081C61C0: + ldrb r0, [r5, #2] + lsls r1, r4, #0x18 + lsrs r1, r1, #0x18 + bl MovePyramidBagItemSlotInList + ldr r0, _081C6220 + ldr r0, [r0] + ldr r1, _081C6224 + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] + movs r0, #1 + bl sub_081C67E8 + ldrb r0, [r5] + adds r1, r7, #0 + mov r2, r8 + bl DestroyListMenuTask + movs r3, #2 + ldrsh r0, [r5, r3] + cmp r0, r4 + bge _081C61F8 + adds r1, r7, #0 + subs r1, #8 + ldrh r0, [r1, #6] + subs r0, #1 + strh r0, [r1, #6] +_081C61F8: + bl SetBagItemsListTemplate + ldr r0, _081C6228 + ldrh r1, [r7] + mov r3, r8 + ldrh r2, [r3] + bl ListMenuInit + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5] + adds r0, r6, #0 + bl SetTaskToMainPyramidBagInputHandler +_081C6214: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C6220: .4byte 0x0203CBF8 +_081C6224: .4byte 0x00000814 +_081C6228: .4byte 0x03006050 + thumb_func_end PerformItemSwap + + thumb_func_start sub_081C622C +sub_081C622C: @ 0x081C622C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r0, #0 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _081C6298 + adds r4, r0, r1 + ldr r5, _081C629C + subs r7, r5, #2 + ldr r0, _081C62A0 + ldr r0, [r0] + ldr r1, _081C62A4 + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] + movs r0, #1 + bl sub_081C67E8 + ldrb r0, [r4] + adds r1, r5, #0 + adds r2, r7, #0 + bl DestroyListMenuTask + movs r0, #2 + ldrsh r2, [r4, r0] + ldrh r0, [r5] + ldrh r1, [r7] + adds r0, r0, r1 + cmp r2, r0 + bge _081C6276 + adds r1, r5, #0 + subs r1, #8 + ldrh r0, [r1, #6] + subs r0, #1 + strh r0, [r1, #6] +_081C6276: + bl SetBagItemsListTemplate + ldr r0, _081C62A8 + ldrh r1, [r5] + ldrh r2, [r7] + bl ListMenuInit + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + adds r0, r6, #0 + bl SetTaskToMainPyramidBagInputHandler + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C6298: .4byte 0x03005B68 +_081C629C: .4byte 0x0203CC04 +_081C62A0: .4byte 0x0203CBF8 +_081C62A4: .4byte 0x00000814 +_081C62A8: .4byte 0x03006050 + thumb_func_end sub_081C622C + + thumb_func_start sub_081C62AC +sub_081C62AC: @ 0x081C62AC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + ldr r0, _081C6388 + mov sb, r0 + movs r0, #0x14 + bl Alloc + adds r7, r0, #0 + movs r0, #0xa + bl Alloc + adds r5, r0, #0 + ldr r1, _081C638C + mov r8, r1 + ldr r2, [r1] + ldr r4, _081C6390 + adds r0, r2, r4 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r0, _081C6394 + adds r1, r1, r0 + adds r0, r7, #0 + movs r2, #0x14 + bl memcpy + mov r1, r8 + ldr r2, [r1] + adds r0, r2, r4 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldr r0, _081C6398 + adds r1, r1, r0 + adds r0, r5, #0 + movs r2, #0xa + bl memcpy + movs r6, #0 +_081C6310: + movs r0, #0x64 + muls r0, r6, r0 + add r0, sb + movs r1, #0xc + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r1, sp + strh r0, [r1] + cmp r0, #0 + beq _081C63A0 + movs r1, #1 + bl AddBagItem + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081C63A0 + mov r1, r8 + ldr r2, [r1] + adds r0, r2, r4 + ldrb r1, [r0] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, _081C6394 + adds r0, r0, r1 + adds r1, r7, #0 + movs r2, #0x14 + bl memcpy + mov r0, r8 + ldr r2, [r0] + adds r0, r2, r4 + ldrb r1, [r0] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldr r1, _081C6398 + adds r0, r0, r1 + adds r1, r5, #0 + movs r2, #0xa + bl memcpy + adds r0, r7, #0 + bl Free + adds r0, r5, #0 + bl Free + ldr r1, _081C639C + movs r0, #1 + strh r0, [r1] + b _081C63DE + .align 2, 0 +_081C6388: .4byte 0x02024190 +_081C638C: .4byte 0x03005AF0 +_081C6390: .4byte 0x00000CA9 +_081C6394: .4byte 0x00000E2C +_081C6398: .4byte 0x00000E54 +_081C639C: .4byte 0x02037290 +_081C63A0: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #2 + bls _081C6310 + movs r1, #0 + mov r0, sp + strh r1, [r0] + movs r6, #0 + movs r4, #0x64 +_081C63B4: + adds r0, r6, #0 + muls r0, r4, r0 + add r0, sb + movs r1, #0xc + mov r2, sp + bl SetMonData + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #2 + bls _081C63B4 + ldr r1, _081C63EC + movs r0, #0 + strh r0, [r1] + adds r0, r7, #0 + bl Free + adds r0, r5, #0 + bl Free +_081C63DE: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C63EC: .4byte 0x02037290 + thumb_func_end sub_081C62AC + + thumb_func_start sub_081C63F0 +sub_081C63F0: @ 0x081C63F0 + push {r4, lr} + ldr r0, _081C644C + bl InitWindows + bl DeactivateAllTextPrinters + movs r0, #0 + movs r1, #1 + movs r2, #0xe0 + bl LoadUserWindowBorderGfx + movs r0, #0 + movs r1, #0xa + movs r2, #0xd0 + bl LoadMessageBoxGfx + ldr r0, _081C6450 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + movs r4, #0 +_081C641C: + adds r0, r4, #0 + movs r1, #0 + bl FillWindowPixelBuffer + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #4 + bls _081C641C + movs r0, #0 + bl PutWindowTilemap + movs r0, #1 + bl PutWindowTilemap + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C644C: .4byte 0x085EF778 +_081C6450: .4byte 0x085D7B04 + thumb_func_end sub_081C63F0 + + thumb_func_start PrintOnWindow_Font1 +PrintOnWindow_Font1: @ 0x081C6454 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0x14 + ldr r4, [sp, #0x28] + ldr r6, [sp, #0x2c] + ldr r5, [sp, #0x30] + mov r8, r5 + ldr r5, [sp, #0x34] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + str r4, [sp] + str r6, [sp, #4] + lsls r4, r5, #1 + adds r4, r4, r5 + ldr r5, _081C64A8 + adds r4, r4, r5 + str r4, [sp, #8] + mov r4, r8 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + str r4, [sp, #0xc] + str r1, [sp, #0x10] + movs r1, #1 + bl AddTextPrinterParameterized4 + add sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081C64A8: .4byte 0x085EF76C + thumb_func_end PrintOnWindow_Font1 + + thumb_func_start sub_081C64AC +sub_081C64AC: @ 0x081C64AC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + movs r2, #1 + movs r3, #0xe + bl DrawStdFrameWithCustomTileAndPalette + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081C64AC + + thumb_func_start sub_081C64C8 +sub_081C64C8: @ 0x081C64C8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081C64DC + ldr r1, [r1] + ldr r2, _081C64E0 + adds r1, r1, r2 + adds r1, r1, r0 + ldrb r0, [r1] + bx lr + .align 2, 0 +_081C64DC: .4byte 0x0203CBF8 +_081C64E0: .4byte 0x0000080F + thumb_func_end sub_081C64C8 + + thumb_func_start sub_081C64E4 +sub_081C64E4: @ 0x081C64E4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _081C6520 + ldr r3, _081C6524 + adds r1, r2, r3 + ldr r0, [r0] + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, #0xff + bne _081C6518 + lsls r0, r2, #3 + ldr r1, _081C6528 + adds r0, r0, r1 + bl AddWindow + strb r0, [r4] + ldrb r0, [r4] + movs r1, #0 + movs r2, #1 + movs r3, #0xe + bl DrawStdFrameWithCustomTileAndPalette + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram +_081C6518: + ldrb r0, [r4] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081C6520: .4byte 0x0203CBF8 +_081C6524: .4byte 0x0000080F +_081C6528: .4byte 0x085EF7A0 + thumb_func_end sub_081C64E4 + + thumb_func_start sub_081C652C +sub_081C652C: @ 0x081C652C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081C6564 + ldr r2, _081C6568 + adds r0, r0, r2 + ldr r1, [r1] + adds r4, r1, r0 + ldrb r0, [r4] + cmp r0, #0xff + beq _081C655E + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + ldrb r0, [r4] + bl ClearWindowTilemap + ldrb r0, [r4] + bl RemoveWindow + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #0xff + strb r0, [r4] +_081C655E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C6564: .4byte 0x0203CBF8 +_081C6568: .4byte 0x0000080F + thumb_func_end sub_081C652C + + thumb_func_start sub_081C656C +sub_081C656C: @ 0x081C656C + push {lr} + sub sp, #0x10 + adds r3, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081C6594 + movs r2, #2 + str r2, [sp] + movs r2, #1 + str r2, [sp, #4] + movs r2, #0xe + str r2, [sp, #8] + str r3, [sp, #0xc] + movs r2, #1 + movs r3, #0 + bl CreateYesNoMenuWithCallbacks + add sp, #0x10 + pop {r0} + bx r0 + .align 2, 0 +_081C6594: .4byte 0x085EF7C0 + thumb_func_end sub_081C656C + + thumb_func_start DisplayItemMessageInBattlePyramid +DisplayItemMessageInBattlePyramid: @ 0x081C6598 + push {r4, r5, r6, lr} + sub sp, #0x10 + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #2 + movs r1, #0x11 + bl FillWindowPixelBuffer + bl GetPlayerTextSpeedDelay + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + str r1, [sp] + str r0, [sp, #4] + str r5, [sp, #8] + str r6, [sp, #0xc] + adds r0, r4, #0 + movs r1, #2 + movs r2, #0xa + movs r3, #0xd + bl DisplayMessageAndContinueTask + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + add sp, #0x10 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end DisplayItemMessageInBattlePyramid + + thumb_func_start sub_081C65DC +sub_081C65DC: @ 0x081C65DC + push {lr} + movs r0, #2 + movs r1, #0 + bl ClearDialogWindowAndFrameToTransparent + movs r0, #2 + bl ClearWindowTilemap + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081C65DC + + thumb_func_start sub_081C65F8 +sub_081C65F8: @ 0x081C65F8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _081C6648 + ldr r2, _081C664C + adds r1, r4, r2 + ldr r0, [r0] + adds r5, r0, r1 + ldrb r0, [r5] + cmp r0, #0xff + beq _081C6640 + ldr r0, _081C6650 + adds r4, r4, r0 + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl FreeSpritePaletteByTag + ldrb r1, [r5] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _081C6654 + adds r0, r0, r4 + bl FreeSpriteOamMatrix + ldrb r1, [r5] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + movs r0, #0xff + strb r0, [r5] +_081C6640: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C6648: .4byte 0x0203CBF8 +_081C664C: .4byte 0x00000804 +_081C6650: .4byte 0x00001024 +_081C6654: .4byte 0x020205AC + thumb_func_end sub_081C65F8 + + thumb_func_start sub_081C6658 +sub_081C6658: @ 0x081C6658 + push {r4, lr} + sub sp, #8 + movs r0, #0x40 + bl Alloc + adds r4, r0, #0 + ldr r0, _081C66A0 + adds r1, r4, #0 + bl LZDecompressVram + ldr r0, _081C66A4 + ldr r0, [r0] + ldr r1, _081C66A8 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x19 + adds r0, r4, r0 + str r0, [sp] + ldr r1, _081C66AC + ldr r0, [sp, #4] + ands r0, r1 + ldr r1, _081C66B0 + orrs r0, r1 + str r0, [sp, #4] + mov r0, sp + bl LoadSpritePalette + adds r0, r4, #0 + bl Free + add sp, #8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C66A0: .4byte 0x08D9AFC8 +_081C66A4: .4byte 0x03005AF0 +_081C66A8: .4byte 0x00000CA9 +_081C66AC: .4byte 0xFFFF0000 +_081C66B0: .4byte 0x00001024 + thumb_func_end sub_081C6658 + + thumb_func_start sub_081C66B4 +sub_081C66B4: @ 0x081C66B4 + push {r4, lr} + ldr r0, _081C66D4 + ldr r4, [r0] + ldr r0, _081C66D8 + adds r4, r4, r0 + ldr r0, _081C66DC + movs r1, #0x44 + movs r2, #0x38 + movs r3, #0 + bl CreateSprite + strb r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C66D4: .4byte 0x0203CBF8 +_081C66D8: .4byte 0x00000804 +_081C66DC: .4byte 0x085EF824 + thumb_func_end sub_081C66B4 + + thumb_func_start sub_081C66E0 +sub_081C66E0: @ 0x081C66E0 + push {r4, lr} + ldr r0, _081C6718 + ldr r0, [r0] + ldr r1, _081C671C + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _081C6720 + adds r4, r0, r1 + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _081C6710 + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAffineAnim + ldr r0, _081C6724 + str r0, [r4, #0x1c] +_081C6710: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C6718: .4byte 0x0203CBF8 +_081C671C: .4byte 0x00000804 +_081C6720: .4byte 0x020205AC +_081C6724: .4byte 0x081C6729 + thumb_func_end sub_081C66E0 + + thumb_func_start sub_081C6728 +sub_081C6728: @ 0x081C6728 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _081C6744 + adds r0, r4, #0 + movs r1, #0 + bl StartSpriteAffineAnim + ldr r0, _081C674C + str r0, [r4, #0x1c] +_081C6744: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C674C: .4byte 0x08007141 + thumb_func_end sub_081C6728 + + thumb_func_start ShowItemImage +ShowItemImage: @ 0x081C6750 + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + ldr r0, _081C67A8 + ldr r2, _081C67AC + adds r1, r4, r2 + ldr r0, [r0] + adds r5, r0, r1 + ldrb r0, [r5] + cmp r0, #0xff + bne _081C67A0 + ldr r0, _081C67B0 + adds r4, r4, r0 + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl FreeSpritePaletteByTag + adds r0, r4, #0 + adds r1, r4, #0 + adds r2, r6, #0 + bl AddItemIconSprite + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x40 + beq _081C67A0 + strb r2, [r5] + ldr r1, _081C67B4 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + movs r1, #0x18 + strh r1, [r0, #0x24] + movs r1, #0x58 + strh r1, [r0, #0x26] +_081C67A0: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081C67A8: .4byte 0x0203CBF8 +_081C67AC: .4byte 0x00000805 +_081C67B0: .4byte 0x00001025 +_081C67B4: .4byte 0x020205AC + thumb_func_end ShowItemImage + + thumb_func_start sub_081C67B8 +sub_081C67B8: @ 0x081C67B8 + push {lr} + lsls r0, r0, #0x18 + movs r1, #0x80 + lsls r1, r1, #0x11 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + bl sub_081C65F8 + pop {r0} + bx r0 + thumb_func_end sub_081C67B8 + + thumb_func_start sub_081C67CC +sub_081C67CC: @ 0x081C67CC + push {lr} + ldr r0, _081C67E0 + ldr r0, [r0] + ldr r1, _081C67E4 + adds r0, r0, r1 + movs r1, #8 + bl sub_08122350 + pop {r0} + bx r0 + .align 2, 0 +_081C67E0: .4byte 0x0203CBF8 +_081C67E4: .4byte 0x00000807 + thumb_func_end sub_081C67CC + + thumb_func_start sub_081C67E8 +sub_081C67E8: @ 0x081C67E8 + push {lr} + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r0, _081C6804 + ldr r0, [r0] + ldr r1, _081C6808 + adds r0, r0, r1 + movs r1, #8 + bl sub_08122408 + pop {r0} + bx r0 + .align 2, 0 +_081C6804: .4byte 0x0203CBF8 +_081C6808: .4byte 0x00000807 + thumb_func_end sub_081C67E8 + + thumb_func_start sub_081C680C +sub_081C680C: @ 0x081C680C + push {lr} + adds r3, r0, #0 + lsls r3, r3, #0x18 + ldr r0, _081C6830 + ldr r0, [r0] + ldr r1, _081C6834 + adds r0, r0, r1 + lsrs r3, r3, #4 + movs r1, #0x80 + lsls r1, r1, #0xd + adds r3, r3, r1 + lsrs r3, r3, #0x10 + movs r1, #0x88 + movs r2, #0x78 + bl sub_08122454 + pop {r0} + bx r0 + .align 2, 0 +_081C6830: .4byte 0x0203CBF8 +_081C6834: .4byte 0x00000807 + thumb_func_end sub_081C680C + diff --git a/asm/battle_records.s b/asm/battle_records.s new file mode 100644 index 0000000..68bfb27 --- /dev/null +++ b/asm/battle_records.s @@ -0,0 +1,1321 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ClearLinkBattleRecord +ClearLinkBattleRecord: @ 0x0813BFB8 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + mov r1, sp + movs r0, #0 + strh r0, [r1] + ldr r2, _0813BFE4 + mov r0, sp + adds r1, r4, #0 + bl CpuSet + movs r0, #0xff + strb r0, [r4] + movs r0, #0 + strh r0, [r4, #8] + strh r0, [r4, #0xa] + strh r0, [r4, #0xc] + strh r0, [r4, #0xe] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813BFE4: .4byte 0x01000008 + thumb_func_end ClearLinkBattleRecord + + thumb_func_start ClearLinkBattleRecords +ClearLinkBattleRecords: @ 0x0813BFE8 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #4 +_0813BFEE: + adds r0, r4, #0 + bl ClearLinkBattleRecord + adds r4, #0x10 + subs r5, #1 + cmp r5, #0 + bge _0813BFEE + movs r0, #0x17 + movs r1, #0 + bl SetGameStat + movs r0, #0x18 + movs r1, #0 + bl SetGameStat + movs r0, #0x19 + movs r1, #0 + bl SetGameStat + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ClearLinkBattleRecords + + thumb_func_start GetLinkBattleRecordTotalBattles +GetLinkBattleRecordTotalBattles: @ 0x0813C01C + adds r1, r0, #0 + ldrh r0, [r1, #0xa] + ldrh r2, [r1, #0xc] + adds r0, r0, r2 + ldrh r1, [r1, #0xe] + adds r0, r0, r1 + bx lr + .align 2, 0 + thumb_func_end GetLinkBattleRecordTotalBattles + + thumb_func_start FindLinkBattleRecord +FindLinkBattleRecord: @ 0x0813C02C + push {r4, r5, r6, r7, lr} + adds r7, r1, #0 + lsls r2, r2, #0x10 + lsrs r6, r2, #0x10 + movs r5, #0 + adds r4, r0, #0 +_0813C038: + adds r0, r4, #0 + adds r1, r7, #0 + movs r2, #7 + bl StringCompareN + cmp r0, #0 + bne _0813C050 + ldrh r0, [r4, #8] + cmp r0, r6 + bne _0813C050 + adds r0, r5, #0 + b _0813C05A +_0813C050: + adds r4, #0x10 + adds r5, #1 + cmp r5, #4 + ble _0813C038 + movs r0, #5 +_0813C05A: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end FindLinkBattleRecord + + thumb_func_start SortLinkBattleRecords +SortLinkBattleRecords: @ 0x0813C060 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x14 + mov r8, r0 + movs r0, #4 +_0813C06E: + subs r2, r0, #1 + mov sb, r2 + cmp r2, #0 + blt _0813C0C8 + lsls r0, r0, #4 + mov r1, r8 + adds r6, r1, r0 + lsls r0, r2, #4 + adds r5, r0, r1 +_0813C080: + adds r0, r6, #0 + str r2, [sp, #0x10] + bl GetLinkBattleRecordTotalBattles + adds r4, r0, #0 + adds r0, r5, #0 + bl GetLinkBattleRecordTotalBattles + ldr r2, [sp, #0x10] + cmp r4, r0 + ble _0813C0BA + mov r1, sp + adds r0, r6, #0 + ldm r0!, {r3, r4, r7} + stm r1!, {r3, r4, r7} + ldr r0, [r0] + str r0, [r1] + adds r1, r6, #0 + adds r0, r5, #0 + ldm r0!, {r3, r4, r7} + stm r1!, {r3, r4, r7} + ldr r0, [r0] + str r0, [r1] + adds r1, r5, #0 + mov r0, sp + ldm r0!, {r3, r4, r7} + stm r1!, {r3, r4, r7} + ldr r0, [r0] + str r0, [r1] +_0813C0BA: + subs r5, #0x10 + movs r0, #1 + rsbs r0, r0, #0 + add sb, r0 + mov r1, sb + cmp r1, #0 + bge _0813C080 +_0813C0C8: + adds r0, r2, #0 + cmp r0, #0 + bgt _0813C06E + add sp, #0x14 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end SortLinkBattleRecords + + thumb_func_start UpdateLinkBattleRecord +UpdateLinkBattleRecord: @ 0x0813C0DC + push {lr} + adds r2, r0, #0 + cmp r1, #2 + beq _0813C10C + cmp r1, #2 + bgt _0813C0EE + cmp r1, #1 + beq _0813C0F4 + b _0813C136 +_0813C0EE: + cmp r1, #3 + beq _0813C124 + b _0813C136 +_0813C0F4: + ldrh r0, [r2, #0xa] + adds r0, #1 + strh r0, [r2, #0xa] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _0813C108 + cmp r0, r1 + bls _0813C136 + strh r1, [r2, #0xa] + b _0813C136 + .align 2, 0 +_0813C108: .4byte 0x0000270F +_0813C10C: + ldrh r0, [r2, #0xc] + adds r0, #1 + strh r0, [r2, #0xc] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _0813C120 + cmp r0, r1 + bls _0813C136 + strh r1, [r2, #0xc] + b _0813C136 + .align 2, 0 +_0813C120: .4byte 0x0000270F +_0813C124: + ldrh r0, [r2, #0xe] + adds r0, #1 + strh r0, [r2, #0xe] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _0813C13C + cmp r0, r1 + bls _0813C136 + strh r1, [r2, #0xe] +_0813C136: + pop {r0} + bx r0 + .align 2, 0 +_0813C13C: .4byte 0x0000270F + thumb_func_end UpdateLinkBattleRecord + + thumb_func_start UpdateLinkBattleGameStats +UpdateLinkBattleGameStats: @ 0x0813C140 + push {r4, lr} + cmp r0, #2 + beq _0813C15A + cmp r0, #2 + bgt _0813C150 + cmp r0, #1 + beq _0813C156 + b _0813C172 +_0813C150: + cmp r0, #3 + beq _0813C15E + b _0813C172 +_0813C156: + movs r4, #0x17 + b _0813C160 +_0813C15A: + movs r4, #0x18 + b _0813C160 +_0813C15E: + movs r4, #0x19 +_0813C160: + adds r0, r4, #0 + bl GetGameStat + ldr r1, _0813C178 + cmp r0, r1 + bhi _0813C172 + adds r0, r4, #0 + bl IncrementGameStat +_0813C172: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813C178: .4byte 0x0000270E + thumb_func_end UpdateLinkBattleGameStats + + thumb_func_start UpdateLinkBattleRecords +UpdateLinkBattleRecords: @ 0x0813C17C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r6, r0, #0 + mov r8, r1 + mov sl, r3 + ldr r0, [sp, #0x20] + lsls r2, r2, #0x10 + lsrs r7, r2, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + mov r0, sl + bl UpdateLinkBattleGameStats + adds r0, r6, #0 + bl SortLinkBattleRecords + adds r0, r6, #0 + mov r1, r8 + adds r2, r7, #0 + bl FindLinkBattleRecord + adds r5, r0, #0 + cmp r5, #5 + bne _0813C1E0 + movs r5, #4 + adds r4, r6, #0 + adds r4, #0x40 + adds r0, r4, #0 + bl ClearLinkBattleRecord + adds r0, r4, #0 + mov r1, r8 + movs r2, #7 + bl StringCopyN + strh r7, [r4, #8] + adds r2, r6, #0 + adds r2, #0x54 + ldr r1, _0813C200 + mov r3, sb + lsls r0, r3, #3 + subs r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0, #0x1a] + strb r0, [r2] +_0813C1E0: + lsls r0, r5, #4 + adds r0, r6, r0 + mov r1, sl + bl UpdateLinkBattleRecord + adds r0, r6, #0 + bl SortLinkBattleRecords + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0813C200: .4byte 0x020226A0 + thumb_func_end UpdateLinkBattleRecords + + thumb_func_start ClearPlayerLinkBattleRecords +ClearPlayerLinkBattleRecords: @ 0x0813C204 + push {lr} + ldr r0, _0813C218 + ldr r0, [r0] + ldr r1, _0813C21C + adds r0, r0, r1 + bl ClearLinkBattleRecords + pop {r0} + bx r0 + .align 2, 0 +_0813C218: .4byte 0x03005AEC +_0813C21C: .4byte 0x00003150 + thumb_func_end ClearPlayerLinkBattleRecords + + thumb_func_start IncTrainerCardWins +IncTrainerCardWins: @ 0x0813C220 + push {lr} + movs r1, #0x64 + muls r1, r0, r1 + ldr r0, _0813C240 + adds r1, r1, r0 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r2, _0813C244 + cmp r0, r2 + bls _0813C23C + strh r2, [r1] +_0813C23C: + pop {r0} + bx r0 + .align 2, 0 +_0813C240: .4byte 0x0203980C +_0813C244: .4byte 0x0000270F + thumb_func_end IncTrainerCardWins + + thumb_func_start IncTrainerCardLosses +IncTrainerCardLosses: @ 0x0813C248 + push {lr} + movs r1, #0x64 + muls r1, r0, r1 + ldr r0, _0813C268 + adds r1, r1, r0 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r2, _0813C26C + cmp r0, r2 + bls _0813C264 + strh r2, [r1] +_0813C264: + pop {r0} + bx r0 + .align 2, 0 +_0813C268: .4byte 0x0203980E +_0813C26C: .4byte 0x0000270F + thumb_func_end IncTrainerCardLosses + + thumb_func_start UpdateTrainerCardWinsLosses +UpdateTrainerCardWinsLosses: @ 0x0813C270 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0813C284 + ldrb r0, [r0] + cmp r0, #1 + beq _0813C288 + cmp r0, #2 + beq _0813C296 + b _0813C2A4 + .align 2, 0 +_0813C284: .4byte 0x02023FDE +_0813C288: + eors r0, r4 + bl IncTrainerCardWins + adds r0, r4, #0 + bl IncTrainerCardLosses + b _0813C2A4 +_0813C296: + movs r0, #1 + eors r0, r4 + bl IncTrainerCardLosses + adds r0, r4, #0 + bl IncTrainerCardWins +_0813C2A4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end UpdateTrainerCardWinsLosses + + thumb_func_start UpdatePlayerLinkBattleRecords +UpdatePlayerLinkBattleRecords: @ 0x0813C2AC + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + bl InUnionRoom + cmp r0, #1 + beq _0813C2E6 + adds r0, r4, #0 + bl UpdateTrainerCardWinsLosses + ldr r0, _0813C2F0 + ldr r0, [r0] + ldr r1, _0813C2F4 + adds r0, r0, r1 + movs r1, #0x64 + adds r3, r4, #0 + muls r3, r1, r3 + ldr r2, _0813C2F8 + adds r1, r3, r2 + subs r2, #0x30 + adds r3, r3, r2 + ldrh r2, [r3, #0xe] + ldr r3, _0813C2FC + ldrb r3, [r3] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r4, [sp] + bl UpdateLinkBattleRecords +_0813C2E6: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813C2F0: .4byte 0x03005AEC +_0813C2F4: .4byte 0x00003150 +_0813C2F8: .4byte 0x02039828 +_0813C2FC: .4byte 0x02023FDE + thumb_func_end UpdatePlayerLinkBattleRecords + + thumb_func_start PrintLinkBattleWinsLossesDraws +PrintLinkBattleWinsLossesDraws: @ 0x0813C300 + push {r4, lr} + sub sp, #0xc + ldr r4, _0813C36C + movs r0, #0x17 + bl GetGameStat + adds r1, r0, #0 + adds r0, r4, #0 + movs r2, #1 + movs r3, #4 + bl ConvertIntToDecimalStringN + ldr r4, _0813C370 + movs r0, #0x18 + bl GetGameStat + adds r1, r0, #0 + adds r0, r4, #0 + movs r2, #1 + movs r3, #4 + bl ConvertIntToDecimalStringN + ldr r4, _0813C374 + movs r0, #0x19 + bl GetGameStat + adds r1, r0, #0 + adds r0, r4, #0 + movs r2, #1 + movs r3, #4 + bl ConvertIntToDecimalStringN + ldr r4, _0813C378 + ldr r1, _0813C37C + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r0, _0813C380 + ldrb r0, [r0] + movs r1, #0x12 + str r1, [sp] + movs r1, #0 + str r1, [sp, #4] + str r1, [sp, #8] + movs r1, #1 + adds r2, r4, #0 + movs r3, #0 + bl AddTextPrinterParameterized + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813C36C: .4byte 0x02021C40 +_0813C370: .4byte 0x02021C54 +_0813C374: .4byte 0x02021C68 +_0813C378: .4byte 0x02021C7C +_0813C37C: .4byte 0x085937EF +_0813C380: .4byte 0x0203A840 + thumb_func_end PrintLinkBattleWinsLossesDraws + + thumb_func_start PrintLinkBattleRecord +PrintLinkBattleRecord: @ 0x0813C384 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + adds r6, r0, #0 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + ldrh r0, [r6, #0xa] + cmp r0, #0 + bne _0813C408 + ldr r7, [r6, #0xc] + cmp r7, #0 + bne _0813C408 + ldr r0, _0813C3FC + mov r8, r0 + ldrb r0, [r0] + ldr r2, _0813C400 + lsls r4, r4, #3 + adds r4, #2 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r4, [sp] + str r7, [sp, #4] + str r7, [sp, #8] + movs r1, #1 + movs r3, #8 + bl AddTextPrinterParameterized + mov r1, r8 + ldrb r0, [r1] + ldr r5, _0813C404 + str r4, [sp] + str r7, [sp, #4] + str r7, [sp, #8] + movs r1, #1 + adds r2, r5, #0 + movs r3, #0x50 + bl AddTextPrinterParameterized + mov r1, r8 + ldrb r0, [r1] + str r4, [sp] + str r7, [sp, #4] + str r7, [sp, #8] + movs r1, #1 + adds r2, r5, #0 + movs r3, #0x78 + bl AddTextPrinterParameterized + mov r1, r8 + ldrb r0, [r1] + str r4, [sp] + str r7, [sp, #4] + str r7, [sp, #8] + movs r1, #1 + adds r2, r5, #0 + movs r3, #0xa8 + bl AddTextPrinterParameterized + b _0813C49A + .align 2, 0 +_0813C3FC: .4byte 0x0203A840 +_0813C400: .4byte 0x08593811 +_0813C404: .4byte 0x08593817 +_0813C408: + ldr r0, _0813C4A8 + movs r1, #8 + bl StringFillWithTerminator + ldr r0, _0813C4A8 + adds r1, r6, #0 + movs r2, #7 + bl StringCopyN + ldr r0, _0813C4AC + mov r8, r0 + ldrb r0, [r0] + lsls r4, r4, #3 + adds r4, #2 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r4, [sp] + movs r5, #0 + str r5, [sp, #4] + str r5, [sp, #8] + movs r1, #1 + ldr r2, _0813C4A8 + movs r3, #8 + bl AddTextPrinterParameterized + ldrh r1, [r6, #0xa] + ldr r0, _0813C4A8 + movs r2, #1 + movs r3, #4 + bl ConvertIntToDecimalStringN + mov r1, r8 + ldrb r0, [r1] + str r4, [sp] + str r5, [sp, #4] + str r5, [sp, #8] + movs r1, #1 + ldr r2, _0813C4A8 + movs r3, #0x50 + bl AddTextPrinterParameterized + ldrh r1, [r6, #0xc] + ldr r0, _0813C4A8 + movs r2, #1 + movs r3, #4 + bl ConvertIntToDecimalStringN + mov r1, r8 + ldrb r0, [r1] + str r4, [sp] + str r5, [sp, #4] + str r5, [sp, #8] + movs r1, #1 + ldr r2, _0813C4A8 + movs r3, #0x78 + bl AddTextPrinterParameterized + ldrh r1, [r6, #0xe] + ldr r0, _0813C4A8 + movs r2, #1 + movs r3, #4 + bl ConvertIntToDecimalStringN + mov r1, r8 + ldrb r0, [r1] + str r4, [sp] + str r5, [sp, #4] + str r5, [sp, #8] + movs r1, #1 + ldr r2, _0813C4A8 + movs r3, #0xa8 + bl AddTextPrinterParameterized +_0813C49A: + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0813C4A8: .4byte 0x02021C40 +_0813C4AC: .4byte 0x0203A840 + thumb_func_end PrintLinkBattleRecord + + thumb_func_start ShowLinkBattleRecords +ShowLinkBattleRecords: @ 0x0813C4B0 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0xc + ldr r6, _0813C560 + ldr r0, _0813C564 + bl AddWindow + strb r0, [r6] + ldrb r0, [r6] + movs r1, #0 + bl ClearStdWindowAndFrame + ldrb r0, [r6] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r5, _0813C568 + ldr r1, _0813C56C + adds r0, r5, #0 + bl StringExpandPlaceholders + ldrb r0, [r6] + movs r1, #2 + str r1, [sp] + movs r4, #0 + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + adds r2, r5, #0 + movs r3, #0x30 + bl AddTextPrinterParameterized + ldr r0, _0813C570 + mov r8, r0 + ldr r0, [r0] + ldr r1, _0813C574 + mov sb, r1 + add r0, sb + bl PrintLinkBattleWinsLossesDraws + ldr r1, _0813C578 + adds r0, r5, #0 + bl StringExpandPlaceholders + ldrb r0, [r6] + movs r1, #0x2a + str r1, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + adds r2, r5, #0 + movs r3, #0x50 + bl AddTextPrinterParameterized + mov r7, r8 + movs r6, #0xe0 + lsls r6, r6, #0x13 + mov r5, sb + movs r4, #4 +_0813C52A: + ldr r0, [r7] + adds r0, r0, r5 + lsrs r1, r6, #0x18 + bl PrintLinkBattleRecord + movs r0, #0x80 + lsls r0, r0, #0x12 + adds r6, r6, r0 + adds r5, #0x10 + subs r4, #1 + cmp r4, #0 + bge _0813C52A + ldr r4, _0813C560 + ldrb r0, [r4] + bl PutWindowTilemap + ldrb r0, [r4] + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0813C560: .4byte 0x0203A840 +_0813C564: .4byte 0x085937D8 +_0813C568: .4byte 0x02021C7C +_0813C56C: .4byte 0x085937E0 +_0813C570: .4byte 0x03005AEC +_0813C574: .4byte 0x00003150 +_0813C578: .4byte 0x08593801 + thumb_func_end ShowLinkBattleRecords + + thumb_func_start RemoveRecordsWindow +RemoveRecordsWindow: @ 0x0813C57C + push {r4, lr} + ldr r4, _0813C594 + ldrb r0, [r4] + movs r1, #0 + bl DrawStdWindowFrame + ldrb r0, [r4] + bl RemoveWindow + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813C594: .4byte 0x0203A840 + thumb_func_end RemoveRecordsWindow + + thumb_func_start Task_TrainerHillWaitForPaletteFade +Task_TrainerHillWaitForPaletteFade: @ 0x0813C598 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _0813C5BC + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0813C5B8 + ldr r0, _0813C5C0 + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _0813C5C4 + str r0, [r1] +_0813C5B8: + pop {r0} + bx r0 + .align 2, 0 +_0813C5BC: .4byte 0x02037C74 +_0813C5C0: .4byte 0x03005B60 +_0813C5C4: .4byte 0x0813C5C9 + thumb_func_end Task_TrainerHillWaitForPaletteFade + + thumb_func_start Task_CloseTrainerHillRecordsOnButton +Task_CloseTrainerHillRecordsOnButton: @ 0x0813C5C8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _0813C5FC + adds r4, r1, r0 + ldr r0, _0813C600 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0813C5EC + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0813C5F6 +_0813C5EC: + movs r0, #5 + bl PlaySE + ldr r0, _0813C604 + str r0, [r4] +_0813C5F6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813C5FC: .4byte 0x03005B60 +_0813C600: .4byte 0x03002360 +_0813C604: .4byte 0x0813C609 + thumb_func_end Task_CloseTrainerHillRecordsOnButton + + thumb_func_start Task_BeginPaletteFade +Task_BeginPaletteFade: @ 0x0813C608 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _0813C638 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0813C63C + str r1, [r0] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813C638: .4byte 0x03005B60 +_0813C63C: .4byte 0x0813C641 + thumb_func_end Task_BeginPaletteFade + + thumb_func_start Task_ExitTrainerHillRecords +Task_ExitTrainerHillRecords: @ 0x0813C640 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0813C678 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0813C670 + ldr r0, _0813C67C + bl SetMainCallback2 + ldr r0, _0813C680 + ldr r0, [r0] + bl Free + movs r0, #0 + bl RemoveTrainerHillRecordsWindow + bl FreeAllWindowBuffers + adds r0, r4, #0 + bl DestroyTask +_0813C670: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813C678: .4byte 0x02037C74 +_0813C67C: .4byte 0x08085B35 +_0813C680: .4byte 0x0203A844 + thumb_func_end Task_ExitTrainerHillRecords + + thumb_func_start RemoveTrainerHillRecordsWindow +RemoveTrainerHillRecordsWindow: @ 0x0813C684 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #0 + bl FillWindowPixelBuffer + adds r0, r4, #0 + bl ClearWindowTilemap + adds r0, r4, #0 + movs r1, #2 + bl CopyWindowToVram + adds r0, r4, #0 + bl RemoveWindow + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RemoveTrainerHillRecordsWindow + + thumb_func_start ClearVramOamPlttRegs +ClearVramOamPlttRegs: @ 0x0813C6B0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + movs r3, #0xc0 + lsls r3, r3, #0x13 + movs r4, #0xc0 + lsls r4, r4, #9 + add r0, sp, #4 + mov r8, r0 + mov r2, sp + movs r6, #0 + ldr r1, _0813C7E0 + movs r5, #0x80 + lsls r5, r5, #5 + ldr r7, _0813C7E4 + movs r0, #0x81 + lsls r0, r0, #0x18 + mov ip, r0 +_0813C6D6: + strh r6, [r2] + mov r0, sp + str r0, [r1] + str r3, [r1, #4] + str r7, [r1, #8] + ldr r0, [r1, #8] + adds r3, r3, r5 + subs r4, r4, r5 + cmp r4, r5 + bhi _0813C6D6 + strh r6, [r2] + mov r2, sp + str r2, [r1] + str r3, [r1, #4] + lsrs r0, r4, #1 + mov r2, ip + orrs r0, r2 + str r0, [r1, #8] + ldr r0, [r1, #8] + movs r0, #0xe0 + lsls r0, r0, #0x13 + movs r3, #0x80 + lsls r3, r3, #3 + movs r4, #0 + str r4, [sp, #4] + ldr r2, _0813C7E0 + mov r1, r8 + str r1, [r2] + str r0, [r2, #4] + lsrs r0, r3, #2 + movs r1, #0x85 + lsls r1, r1, #0x18 + orrs r0, r1 + str r0, [r2, #8] + ldr r0, [r2, #8] + movs r1, #0xa0 + lsls r1, r1, #0x13 + mov r0, sp + strh r4, [r0] + str r0, [r2] + str r1, [r2, #4] + lsrs r3, r3, #1 + movs r0, #0x81 + lsls r0, r0, #0x18 + orrs r3, r0 + str r3, [r2, #8] + ldr r0, [r2, #8] + movs r0, #0 + movs r1, #0 + bl SetGpuReg + movs r0, #8 + movs r1, #0 + bl SetGpuReg + movs r0, #0x10 + movs r1, #0 + bl SetGpuReg + movs r0, #0x12 + movs r1, #0 + bl SetGpuReg + movs r0, #0xa + movs r1, #0 + bl SetGpuReg + movs r0, #0x14 + movs r1, #0 + bl SetGpuReg + movs r0, #0x16 + movs r1, #0 + bl SetGpuReg + movs r0, #0xc + movs r1, #0 + bl SetGpuReg + movs r0, #0x18 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1a + movs r1, #0 + bl SetGpuReg + movs r0, #0xe + movs r1, #0 + bl SetGpuReg + movs r0, #0x1c + movs r1, #0 + bl SetGpuReg + movs r0, #0x1e + movs r1, #0 + bl SetGpuReg + movs r0, #0x40 + movs r1, #0 + bl SetGpuReg + movs r0, #0x44 + movs r1, #0 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0 + bl SetGpuReg + movs r0, #0x4a + movs r1, #0 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0813C7E0: .4byte 0x040000D4 +_0813C7E4: .4byte 0x81000800 + thumb_func_end ClearVramOamPlttRegs + + thumb_func_start ClearTasksAndGraphicalStructs +ClearTasksAndGraphicalStructs: @ 0x0813C7E8 + push {lr} + bl ScanlineEffect_Stop + bl ResetTasks + bl ResetSpriteData + bl ResetPaletteFade + bl FreeAllSpritePalettes + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ClearTasksAndGraphicalStructs + + thumb_func_start ResetBgCoordinates +ResetBgCoordinates: @ 0x0813C804 + push {lr} + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ResetBgCoordinates + + thumb_func_start SetDispcntReg +SetDispcntReg: @ 0x0813C85C + push {lr} + movs r1, #0x94 + lsls r1, r1, #4 + movs r0, #0 + bl SetGpuReg + pop {r0} + bx r0 + thumb_func_end SetDispcntReg + + thumb_func_start LoadTrainerHillRecordsWindowGfx +LoadTrainerHillRecordsWindowGfx: @ 0x0813C86C + push {r4, lr} + sub sp, #8 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _0813C8A8 + adds r0, r4, #0 + movs r2, #0xc0 + movs r3, #0 + bl LoadBgTiles + ldr r1, _0813C8AC + movs r0, #0x20 + str r0, [sp] + str r0, [sp, #4] + adds r0, r4, #0 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBufferRect + ldr r0, _0813C8B0 + movs r1, #0 + movs r2, #0x20 + bl LoadPalette + add sp, #8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813C8A8: .4byte 0x08592EE0 +_0813C8AC: .4byte 0x08592FC0 +_0813C8B0: .4byte 0x08592FA0 + thumb_func_end LoadTrainerHillRecordsWindowGfx + + thumb_func_start VblankCB_TrainerHillRecords +VblankCB_TrainerHillRecords: @ 0x0813C8B4 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end VblankCB_TrainerHillRecords + + thumb_func_start MainCB2_TrainerHillRecords +MainCB2_TrainerHillRecords: @ 0x0813C8C8 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end MainCB2_TrainerHillRecords + + thumb_func_start ShowTrainerHillRecords +ShowTrainerHillRecords: @ 0x0813C8E0 + push {lr} + movs r0, #0 + bl SetVBlankCallback + ldr r0, _0813C8F4 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_0813C8F4: .4byte 0x0813C8F9 + thumb_func_end ShowTrainerHillRecords + + thumb_func_start CB2_ShowTrainerHillRecords +CB2_ShowTrainerHillRecords: @ 0x0813C8F8 + push {r4, lr} + sub sp, #4 + ldr r0, _0813C918 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #7 + bls _0813C90C + b _0813CA18 +_0813C90C: + lsls r0, r0, #2 + ldr r1, _0813C91C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0813C918: .4byte 0x03002360 +_0813C91C: .4byte 0x0813C920 +_0813C920: @ jump table + .4byte _0813C940 @ case 0 + .4byte _0813C94C @ case 1 + .4byte _0813C952 @ case 2 + .4byte _0813C984 @ case 3 + .4byte _0813C99A @ case 4 + .4byte _0813C9BA @ case 5 + .4byte _0813C9CC @ case 6 + .4byte _0813C9F0 @ case 7 +_0813C940: + movs r0, #0 + bl SetVBlankCallback + bl ClearVramOamPlttRegs + b _0813C9DC +_0813C94C: + bl ClearTasksAndGraphicalStructs + b _0813C9DC +_0813C952: + ldr r4, _0813C97C + movs r0, #0x80 + lsls r0, r0, #4 + bl AllocZeroed + str r0, [r4] + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _0813C980 + movs r0, #0 + movs r2, #2 + bl InitBgsFromTemplates + ldr r1, [r4] + movs r0, #3 + bl SetBgTilemapBuffer + bl ResetBgCoordinates + b _0813C9DC + .align 2, 0 +_0813C97C: .4byte 0x0203A844 +_0813C980: .4byte 0x085937C0 +_0813C984: + movs r0, #3 + bl LoadTrainerHillRecordsWindowGfx + movs r0, #0 + bl stdpal_get + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + b _0813C9DC +_0813C99A: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0813CA18 + movs r0, #0 + bl ShowBg + movs r0, #3 + bl ShowBg + movs r0, #3 + bl CopyBgTilemapBufferToVram + b _0813C9DC +_0813C9BA: + ldr r0, _0813C9C8 + bl InitWindows + bl DeactivateAllTextPrinters + b _0813C9DC + .align 2, 0 +_0813C9C8: .4byte 0x085937C8 +_0813C9CC: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade +_0813C9DC: + ldr r1, _0813C9EC + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0813CA18 + .align 2, 0 +_0813C9EC: .4byte 0x03002360 +_0813C9F0: + bl SetDispcntReg + ldr r0, _0813CA20 + bl SetVBlankCallback + bl PrintOnTrainerHillRecordsWindow + ldr r0, _0813CA24 + movs r1, #8 + bl CreateTask + ldr r0, _0813CA28 + bl SetMainCallback2 + ldr r0, _0813CA2C + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] +_0813CA18: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813CA20: .4byte 0x0813C8B5 +_0813CA24: .4byte 0x0813C599 +_0813CA28: .4byte 0x0813C8C9 +_0813CA2C: .4byte 0x03002360 + thumb_func_end CB2_ShowTrainerHillRecords + diff --git a/asm/battle_script_commands.s b/asm/battle_script_commands.s new file mode 100644 index 0000000..95e5619 --- /dev/null +++ b/asm/battle_script_commands.s @@ -0,0 +1,33949 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start atk00_attackcanceler +atk00_attackcanceler: @ 0x08045C3C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + ldr r0, _08045C58 + ldrb r0, [r0] + cmp r0, #0 + beq _08045C60 + ldr r1, _08045C5C + movs r0, #0xc + strb r0, [r1] + b _08045FD8 + .align 2, 0 +_08045C58: .4byte 0x02023FDE +_08045C5C: .4byte 0x02023D27 +_08045C60: + ldr r2, _08045C90 + ldr r0, _08045C94 + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + ldrh r0, [r0, #0x28] + cmp r0, #0 + bne _08045CA4 + ldr r2, _08045C98 + ldr r1, [r2] + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08045CA4 + movs r0, #0x80 + lsls r0, r0, #0xc + orrs r1, r0 + str r1, [r2] + ldr r1, _08045C9C + ldr r0, _08045CA0 + b _08045FD6 + .align 2, 0 +_08045C90: .4byte 0x02023D28 +_08045C94: .4byte 0x02023EAF +_08045C98: .4byte 0x02023F24 +_08045C9C: .4byte 0x02023EB8 +_08045CA0: .4byte 0x08286FD6 +_08045CA4: + bl sub_080416AC + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _08045CB2 + b _08045FD8 +_08045CB2: + ldr r0, _08045D20 + ldrb r1, [r0] + str r2, [sp] + movs r0, #2 + movs r2, #0 + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08045CCA + b _08045FD8 +_08045CCA: + ldr r4, _08045D24 + ldr r0, _08045D28 + ldrb r1, [r0] + ldr r3, _08045D2C + ldrb r2, [r3] + movs r0, #0x58 + muls r2, r0, r2 + adds r1, r1, r2 + adds r0, r4, #0 + adds r0, #0x24 + adds r1, r1, r0 + ldrb r0, [r1] + ldr r5, _08045D30 + cmp r0, #0 + bne _08045D48 + ldr r0, _08045D34 + ldrh r0, [r0] + cmp r0, #0xa5 + beq _08045D48 + ldr r0, [r5] + ldr r1, _08045D38 + ands r0, r1 + cmp r0, #0 + bne _08045D48 + adds r0, r4, #0 + adds r0, #0x50 + adds r0, r2, r0 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #5 + ands r0, r1 + cmp r0, #0 + bne _08045D48 + ldr r1, _08045D3C + ldr r0, _08045D40 + str r0, [r1] + ldr r2, _08045D44 + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + b _08045FD8 + .align 2, 0 +_08045D20: .4byte 0x02023EB0 +_08045D24: .4byte 0x02023D28 +_08045D28: .4byte 0x02023E8C +_08045D2C: .4byte 0x02023EAF +_08045D30: .4byte 0x02023F24 +_08045D34: .4byte 0x02023E8E +_08045D38: .4byte 0x00800200 +_08045D3C: .4byte 0x02023EB8 +_08045D40: .4byte 0x08289602 +_08045D44: .4byte 0x02023F20 +_08045D48: + ldr r0, [r5] + ldr r1, _08045D8C + ands r0, r1 + str r0, [r5] + movs r6, #0x80 + lsls r6, r6, #0x12 + ands r0, r6 + cmp r0, #0 + bne _08045DA0 + ldrb r1, [r3] + movs r0, #0x58 + muls r0, r1, r0 + adds r1, r4, #0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #5 + ands r0, r1 + cmp r0, #0 + bne _08045DA0 + bl IsMonDisobedient + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _08045DA0 + cmp r2, #2 + bne _08045D90 + ldr r0, [r5] + orrs r0, r6 + str r0, [r5] + b _08045FD8 + .align 2, 0 +_08045D8C: .4byte 0xFF7FFFFF +_08045D90: + ldr r0, _08045D9C + ldrb r1, [r0] + movs r2, #1 + orrs r1, r2 + strb r1, [r0] + b _08045FD8 + .align 2, 0 +_08045D9C: .4byte 0x02023F20 +_08045DA0: + ldr r2, _08045E04 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0x12 + orrs r0, r1 + str r0, [r2] + ldr r2, _08045E08 + ldr r1, _08045E0C + ldrb r3, [r1] + lsls r0, r3, #4 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1b + mov r8, r1 + mov sb, r2 + cmp r0, #0 + bge _08045E28 + ldr r2, _08045E10 + ldr r0, _08045E14 + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #8] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08045E28 + ldr r0, _08045E18 + ldrb r0, [r0] + ldr r2, _08045E1C + adds r1, r3, #0 + bl PressurePPLose + mov r0, r8 + ldrb r1, [r0] + lsls r1, r1, #4 + add r1, sb + ldrb r2, [r1] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + bl BattleScriptPushCursor + ldr r1, _08045E20 + ldr r0, _08045E24 + b _08045FD6 + .align 2, 0 +_08045E04: .4byte 0x02023F24 +_08045E08: .4byte 0x02023FE0 +_08045E0C: .4byte 0x02023EB0 +_08045E10: .4byte 0x082ED220 +_08045E14: .4byte 0x02023E8E +_08045E18: .4byte 0x02023EAF +_08045E1C: .4byte 0x00000115 +_08045E20: .4byte 0x02023EB8 +_08045E24: .4byte 0x0828971C +_08045E28: + movs r2, #0 + ldr r0, _08045EA4 + ldrb r0, [r0] + cmp r2, r0 + bge _08045E6A + ldr r6, _08045EA8 + ldr r1, _08045EAC + mov ip, r1 + adds r5, r0, #0 + ldr r7, _08045EB0 +_08045E3C: + adds r4, r2, r7 + ldrb r3, [r4] + lsls r0, r3, #4 + adds r0, r0, r6 + ldrb r0, [r0] + lsls r0, r0, #0x1a + cmp r0, #0 + bge _08045E64 + ldr r0, _08045EB4 + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, ip + ldrb r1, [r0, #8] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08045E64 + b _08045F90 +_08045E64: + adds r2, #1 + cmp r2, r5 + blt _08045E3C +_08045E6A: + ldr r0, _08045EB8 + mov r1, r8 + ldrb r2, [r1] + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r3, [r1] + lsls r0, r3, #0x1e + cmp r0, #0 + bge _08045EC8 + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r3 + strb r0, [r1] + ldr r4, _08045EBC + movs r0, #0x1f + strb r0, [r4] + bl BattleScriptPushCursor + ldr r1, _08045EC0 + ldr r0, _08045EC4 + str r0, [r1] + mov r1, r8 + ldrb r0, [r1] + ldrb r1, [r4] + bl RecordAbilityBattle + b _08045FD8 + .align 2, 0 +_08045EA4: .4byte 0x02023D10 +_08045EA8: .4byte 0x02023FE0 +_08045EAC: .4byte 0x082ED220 +_08045EB0: .4byte 0x02023D22 +_08045EB4: .4byte 0x02023E8E +_08045EB8: .4byte 0x02024020 +_08045EBC: .4byte 0x02023EAE +_08045EC0: .4byte 0x02023EB8 +_08045EC4: .4byte 0x08289AC6 +_08045EC8: + lsls r0, r2, #4 + add r0, sb + ldrb r0, [r0] + lsls r0, r0, #0x1f + cmp r0, #0 + bne _08045ED6 + b _08045FD0 +_08045ED6: + ldr r1, _08045F6C + ldr r2, _08045F70 + ldrh r3, [r2] + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #8] + movs r0, #2 + ands r0, r1 + adds r4, r2, #0 + cmp r0, #0 + beq _08045FD0 + cmp r3, #0xae + bne _08045F14 + ldr r2, _08045F74 + ldr r0, _08045F78 + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r1, r0, r2 + adds r0, r1, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #7 + beq _08045F14 + adds r0, r1, #0 + adds r0, #0x22 + ldrb r0, [r0] + cmp r0, #7 + bne _08045FD0 +_08045F14: + ldrh r0, [r4] + bl IsTwoTurnsMove + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08045F3A + ldr r1, _08045F74 + ldr r0, _08045F78 + ldrb r2, [r0] + movs r0, #0x58 + muls r0, r2, r0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #5 + ands r0, r1 + cmp r0, #0 + beq _08045FD0 +_08045F3A: + ldr r0, _08045F78 + ldrb r0, [r0] + bl CancelMultiTurnMoves + ldr r2, _08045F7C + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08045F80 + ldr r3, _08045F84 + ldrb r0, [r3] + lsls r0, r0, #1 + adds r0, r0, r1 + movs r2, #0 + strh r2, [r0] + ldr r1, _08045F88 + ldrb r0, [r3] + lsls r0, r0, #1 + adds r0, r0, r1 + strh r2, [r0] + ldr r1, _08045F8C + movs r0, #1 + strb r0, [r1, #6] + b _08045FD0 + .align 2, 0 +_08045F6C: .4byte 0x082ED220 +_08045F70: .4byte 0x02023E8E +_08045F74: .4byte 0x02023D28 +_08045F78: .4byte 0x02023EAF +_08045F7C: .4byte 0x02023F20 +_08045F80: .4byte 0x02023EF4 +_08045F84: .4byte 0x02023EB0 +_08045F88: .4byte 0x02023EFC +_08045F8C: .4byte 0x02023FD6 +_08045F90: + ldr r0, _08045FBC + ldrb r0, [r0] + ldr r2, _08045FC0 + adds r1, r3, #0 + bl PressurePPLose + ldrb r1, [r4] + lsls r1, r1, #4 + adds r1, r1, r6 + ldrb r2, [r1] + movs r0, #0x21 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r1, _08045FC4 + ldrb r0, [r4] + strb r0, [r1, #0x17] + bl BattleScriptPushCursor + ldr r1, _08045FC8 + ldr r0, _08045FCC + b _08045FD6 + .align 2, 0 +_08045FBC: .4byte 0x02023EAF +_08045FC0: .4byte 0x00000121 +_08045FC4: .4byte 0x02024118 +_08045FC8: .4byte 0x02023EB8 +_08045FCC: .4byte 0x08289734 +_08045FD0: + ldr r1, _08045FE8 + ldr r0, [r1] + adds r0, #1 +_08045FD6: + str r0, [r1] +_08045FD8: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08045FE8: .4byte 0x02023EB8 + thumb_func_end atk00_attackcanceler + + thumb_func_start JumpIfMoveFailed +JumpIfMoveFailed: @ 0x08045FEC + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + ldr r1, _08046038 + ldr r5, [r1] + adds r4, r5, r0 + ldr r0, _0804603C + ldrb r1, [r0] + movs r0, #0x29 + ands r0, r1 + cmp r0, #0 + beq _0804604C + ldr r1, _08046040 + ldr r3, _08046044 + ldrb r0, [r3] + lsls r0, r0, #1 + adds r0, r0, r1 + movs r2, #0 + strh r2, [r0] + ldr r1, _08046048 + ldrb r0, [r3] + lsls r0, r0, #1 + adds r0, r0, r1 + strh r2, [r0] + ldrb r4, [r5, #1] + ldrb r0, [r5, #2] + lsls r0, r0, #8 + orrs r4, r0 + ldrb r0, [r5, #3] + lsls r0, r0, #0x10 + orrs r4, r0 + ldrb r0, [r5, #4] + lsls r0, r0, #0x18 + orrs r4, r0 + b _08046066 + .align 2, 0 +_08046038: .4byte 0x02023EB8 +_0804603C: .4byte 0x02023F20 +_08046040: .4byte 0x02023EF4 +_08046044: .4byte 0x02023EB0 +_08046048: .4byte 0x02023EFC +_0804604C: + bl TrySetDestinyBondToHappen + ldr r0, _08046074 + ldrb r1, [r0] + str r6, [sp] + movs r0, #3 + movs r2, #0 + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804606A +_08046066: + ldr r0, _08046078 + str r4, [r0] +_0804606A: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08046074: .4byte 0x02023EB0 +_08046078: .4byte 0x02023EB8 + thumb_func_end JumpIfMoveFailed + + thumb_func_start atk40_jumpifaffectedbyprotect +atk40_jumpifaffectedbyprotect: @ 0x0804607C + push {lr} + ldr r1, _080460C4 + ldr r0, _080460C8 + ldrb r0, [r0] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _080460DC + ldr r2, _080460CC + ldr r0, _080460D0 + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #8] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080460DC + ldr r2, _080460D4 + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + movs r0, #5 + movs r1, #0 + bl JumpIfMoveFailed + ldr r1, _080460D8 + movs r0, #1 + strb r0, [r1, #6] + b _080460E4 + .align 2, 0 +_080460C4: .4byte 0x02023FE0 +_080460C8: .4byte 0x02023EB0 +_080460CC: .4byte 0x082ED220 +_080460D0: .4byte 0x02023E8E +_080460D4: .4byte 0x02023F20 +_080460D8: .4byte 0x02023FD6 +_080460DC: + ldr r1, _080460E8 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] +_080460E4: + pop {r0} + bx r0 + .align 2, 0 +_080460E8: .4byte 0x02023EB8 + thumb_func_end atk40_jumpifaffectedbyprotect + + thumb_func_start JumpIfMoveAffectedByProtect +JumpIfMoveAffectedByProtect: @ 0x080460EC + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + movs r4, #0 + ldr r1, _08046140 + ldr r0, _08046144 + ldrb r0, [r0] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _08046138 + ldr r2, _08046148 + ldr r0, _0804614C + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #8] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08046138 + ldr r2, _08046150 + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + movs r0, #7 + adds r1, r3, #0 + bl JumpIfMoveFailed + ldr r1, _08046154 + movs r0, #1 + strb r0, [r1, #6] + movs r4, #1 +_08046138: + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08046140: .4byte 0x02023FE0 +_08046144: .4byte 0x02023EB0 +_08046148: .4byte 0x082ED220 +_0804614C: .4byte 0x02023E8E +_08046150: .4byte 0x02023F20 +_08046154: .4byte 0x02023FD6 + thumb_func_end JumpIfMoveAffectedByProtect + + thumb_func_start AccuracyCalcHelper +AccuracyCalcHelper: @ 0x08046158 + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r2, _080461B8 + ldr r3, _080461BC + ldrb r4, [r3] + lsls r0, r4, #2 + adds r0, r0, r2 + ldr r1, [r0] + movs r0, #0x18 + ands r1, r0 + adds r6, r2, #0 + cmp r1, #0 + beq _0804618A + ldr r1, _080461C0 + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _080461C4 + ldrb r0, [r0, #0x15] + ldrb r1, [r1] + cmp r0, r1 + beq _08046274 +_0804618A: + ldr r0, _080461C8 + ldr r1, [r0] + movs r2, #0x80 + lsls r2, r2, #9 + ands r1, r2 + adds r2, r0, #0 + cmp r1, #0 + bne _080461D0 + ldrb r0, [r3] + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080461D0 +_080461AA: + ldr r0, _080461CC + ldrb r1, [r0] + movs r2, #1 + orrs r1, r2 + strb r1, [r0] + b _08046274 + .align 2, 0 +_080461B8: .4byte 0x02023F50 +_080461BC: .4byte 0x02023EB0 +_080461C0: .4byte 0x02023F60 +_080461C4: .4byte 0x02023EAF +_080461C8: .4byte 0x02023F24 +_080461CC: .4byte 0x02023F20 +_080461D0: + ldr r0, [r2] + ldr r1, _08046280 + ands r0, r1 + str r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0xa + ands r0, r1 + cmp r0, #0 + bne _080461F2 + ldrb r0, [r3] + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r0, [r0] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080461AA +_080461F2: + ldr r0, [r2] + ldr r1, _08046284 + ands r0, r1 + str r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0xb + ands r0, r1 + cmp r0, #0 + bne _08046212 + ldrb r0, [r3] + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r0, [r0] + ands r0, r1 + cmp r0, #0 + bne _080461AA +_08046212: + ldr r0, [r2] + ldr r1, _08046288 + ands r0, r1 + str r0, [r2] + movs r0, #0 + str r0, [sp] + movs r0, #0x13 + movs r1, #0 + movs r2, #0xd + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r5, #1 + cmp r0, #0 + bne _08046262 + str r0, [sp] + movs r0, #0x13 + movs r1, #0 + movs r2, #0x4d + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08046262 + ldr r0, _0804628C + ldrh r1, [r0] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + beq _08046262 + ldr r0, _08046290 + adds r1, r4, r5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0x98 + beq _08046274 +_08046262: + ldr r1, _08046290 + adds r0, r4, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0x11 + beq _08046274 + cmp r0, #0x4e + bne _08046294 +_08046274: + movs r0, #7 + adds r1, r5, #0 + bl JumpIfMoveFailed + movs r0, #1 + b _08046296 + .align 2, 0 +_08046280: .4byte 0xFFFEFFFF +_08046284: .4byte 0xFFFDFFFF +_08046288: .4byte 0xFFFBFFFF +_0804628C: .4byte 0x02024070 +_08046290: .4byte 0x082ED220 +_08046294: + movs r0, #0 +_08046296: + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end AccuracyCalcHelper + + thumb_func_start atk01_accuracycheck +atk01_accuracycheck: @ 0x080462A0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r0, _080462F8 + ldr r5, [r0] + ldrb r6, [r5, #5] + ldrb r1, [r5, #6] + lsls r1, r1, #8 + orrs r6, r1 + adds r1, r6, #2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r7, r0, #0 + cmp r1, #1 + bhi _0804635C + ldr r2, _080462FC + ldr r3, _08046300 + ldrb r4, [r3] + lsls r0, r4, #2 + adds r0, r0, r2 + ldr r1, [r0] + movs r0, #0x18 + ands r1, r0 + cmp r1, #0 + beq _08046310 + ldr r0, _08046304 + cmp r6, r0 + bne _08046310 + ldr r1, _08046308 + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0804630C + ldrb r0, [r0, #0x15] + ldrb r1, [r1] + cmp r0, r1 + bne _08046310 + adds r0, r5, #7 + str r0, [r7] + b _08046612 + .align 2, 0 +_080462F8: .4byte 0x02023EB8 +_080462FC: .4byte 0x02023F50 +_08046300: .4byte 0x02023EB0 +_08046304: .4byte 0x0000FFFF +_08046308: .4byte 0x02023F60 +_0804630C: .4byte 0x02023EAF +_08046310: + ldrb r0, [r3] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + ldr r1, _0804633C + ands r0, r1 + cmp r0, #0 + beq _08046340 + ldr r2, [r7] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r7] + b _08046612 + .align 2, 0 +_0804633C: .4byte 0x000400C0 +_08046340: + movs r0, #0 + bl JumpIfMoveAffectedByProtect + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0804634E + b _08046612 +_0804634E: + ldr r1, _08046358 + ldr r0, [r1] + adds r0, #7 + str r0, [r1] + b _08046612 + .align 2, 0 +_08046358: .4byte 0x02023EB8 +_0804635C: + cmp r6, #0 + bne _08046364 + ldr r0, _0804637C + ldrh r6, [r0] +_08046364: + ldr r0, _08046380 + ldr r0, [r0] + ldrb r0, [r0, #0x13] + cmp r0, #0 + beq _08046384 + movs r1, #0x3f + mov sl, r1 + mov r2, sl + ands r2, r0 + mov sl, r2 + b _08046392 + .align 2, 0 +_0804637C: .4byte 0x02023E8E +_08046380: .4byte 0x02024140 +_08046384: + ldr r1, _080463D8 + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #2] + mov sl, r0 +_08046392: + adds r0, r6, #0 + bl JumpIfMoveAffectedByProtect + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080463A0 + b _08046612 +_080463A0: + adds r0, r6, #0 + bl AccuracyCalcHelper + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080463AE + b _08046612 +_080463AE: + ldr r3, _080463DC + ldr r0, _080463E0 + ldrb r0, [r0] + movs r2, #0x58 + adds r4, r0, #0 + muls r4, r2, r4 + adds r0, r3, #0 + adds r0, #0x50 + adds r0, r4, r0 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x16 + ands r0, r1 + cmp r0, #0 + beq _080463E8 + ldr r0, _080463E4 + ldrb r0, [r0] + muls r0, r2, r0 + adds r0, r0, r3 + ldrb r5, [r0, #0x1e] + b _080463FE + .align 2, 0 +_080463D8: .4byte 0x082ED220 +_080463DC: .4byte 0x02023D28 +_080463E0: .4byte 0x02023EB0 +_080463E4: .4byte 0x02023EAF +_080463E8: + ldr r0, _0804654C + ldrb r0, [r0] + muls r0, r2, r0 + adds r0, r0, r3 + ldrb r0, [r0, #0x1e] + adds r0, #6 + adds r1, r4, r3 + ldrb r1, [r1, #0x1f] + subs r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_080463FE: + lsls r0, r5, #0x18 + cmp r0, #0 + bge _08046406 + movs r5, #0 +_08046406: + lsls r0, r5, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0xc + ble _08046410 + movs r5, #0xc +_08046410: + ldr r1, _08046550 + lsls r4, r6, #1 + adds r0, r4, r6 + lsls r0, r0, #2 + adds r7, r0, r1 + ldrb r3, [r7, #3] + mov r8, r3 + movs r0, #0 + str r0, [sp] + movs r0, #0x13 + movs r1, #0 + movs r2, #0xd + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r4, [sp, #4] + cmp r0, #0 + bne _08046462 + str r0, [sp] + movs r0, #0x13 + movs r1, #0 + movs r2, #0x4d + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08046462 + ldr r0, _08046554 + ldrh r1, [r0] + movs r0, #0x60 + ands r0, r1 + cmp r0, #0 + beq _08046462 + ldrb r0, [r7] + cmp r0, #0x98 + bne _08046462 + movs r0, #0x32 + mov r8, r0 +_08046462: + ldr r1, _08046558 + lsls r0, r5, #0x18 + asrs r0, r0, #0x16 + adds r0, r0, r1 + ldrb r1, [r0] + mov r4, r8 + muls r4, r1, r4 + ldrb r1, [r0, #1] + adds r0, r4, #0 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r7, _0804655C + ldr r0, _0804654C + ldrb r0, [r0] + movs r5, #0x58 + muls r0, r5, r0 + adds r0, r0, r7 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0xe + bne _080464A0 + lsls r0, r4, #6 + adds r0, r0, r4 + lsls r0, r0, #1 + movs r1, #0x64 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_080464A0: + movs r0, #0 + str r0, [sp] + movs r0, #0x13 + movs r1, #0 + movs r2, #0xd + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _080464F8 + str r0, [sp] + movs r0, #0x13 + movs r1, #0 + movs r2, #0x4d + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080464F8 + ldr r0, _08046560 + ldrb r0, [r0] + muls r0, r5, r0 + adds r0, r0, r7 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #8 + bne _080464F8 + ldr r0, _08046554 + ldrh r1, [r0] + movs r0, #0x18 + ands r0, r1 + cmp r0, #0 + beq _080464F8 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #4 + movs r1, #0x64 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_080464F8: + ldr r2, _0804655C + ldr r0, _0804654C + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + adds r0, #0x20 + ldrb r0, [r0] + mov sb, r2 + cmp r0, #0x37 + bne _08046524 + mov r1, sl + cmp r1, #8 + bhi _08046524 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #4 + movs r1, #0x64 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_08046524: + ldr r2, _08046560 + mov r8, r2 + ldrb r2, [r2] + movs r7, #0x58 + adds r0, r2, #0 + muls r0, r7, r0 + mov r3, sb + adds r1, r0, r3 + ldrh r0, [r1, #0x2e] + cmp r0, #0xaf + bne _08046568 + ldr r1, _08046564 + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r5, [r0, #7] + ldrb r2, [r0, #0x1a] + b _08046584 + .align 2, 0 +_0804654C: .4byte 0x02023EAF +_08046550: .4byte 0x082ED220 +_08046554: .4byte 0x02024070 +_08046558: .4byte 0x082ECA78 +_0804655C: .4byte 0x02023D28 +_08046560: .4byte 0x02023EB0 +_08046564: .4byte 0x020240A8 +_08046568: + ldrh r0, [r1, #0x2e] + bl sub_080D6CF8 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + mov r1, r8 + ldrb r0, [r1] + muls r0, r7, r0 + add r0, sb + ldrh r0, [r0, #0x2e] + bl sub_080D6D1C + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 +_08046584: + ldr r0, _080465E8 + ldr r1, _080465EC + ldrb r1, [r1] + strb r1, [r0] + cmp r5, #0x16 + bne _080465A0 + movs r0, #0x64 + subs r0, r0, r2 + muls r0, r4, r0 + movs r1, #0x64 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_080465A0: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r0, #1 + cmp r0, r4 + ble _0804660A + ldr r2, _080465F0 + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080465F4 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08046600 + ldr r1, _080465F8 + ldr r2, [sp, #4] + adds r0, r2, r6 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #6] + cmp r0, #8 + beq _080465E2 + cmp r0, #0x20 + bne _08046600 +_080465E2: + ldr r1, _080465FC + movs r0, #2 + b _08046604 + .align 2, 0 +_080465E8: .4byte 0x02023EB3 +_080465EC: .4byte 0x02023EB0 +_080465F0: .4byte 0x02023F20 +_080465F4: .4byte 0x02022C90 +_080465F8: .4byte 0x082ED220 +_080465FC: .4byte 0x02023FD6 +_08046600: + ldr r1, _08046624 + movs r0, #0 +_08046604: + strb r0, [r1, #6] + bl CheckWonderGuardAndLevitate +_0804660A: + movs r0, #7 + adds r1, r6, #0 + bl JumpIfMoveFailed +_08046612: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08046624: .4byte 0x02023FD6 + thumb_func_end atk01_accuracycheck + + thumb_func_start atk02_attackstring +atk02_attackstring: @ 0x08046628 + push {r4, r5, lr} + ldr r0, _08046668 + ldr r5, [r0] + cmp r5, #0 + bne _08046660 + ldr r4, _0804666C + ldr r0, [r4] + movs r1, #0xc0 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + bne _08046654 + ldr r0, _08046670 + ldrb r1, [r0] + movs r0, #4 + bl PrepareStringBattle + ldr r0, [r4] + movs r1, #0x80 + lsls r1, r1, #3 + orrs r0, r1 + str r0, [r4] +_08046654: + ldr r0, _08046674 + ldr r1, [r0] + adds r1, #1 + str r1, [r0] + ldr r0, _08046678 + strb r5, [r0, #7] +_08046660: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08046668: .4byte 0x02023D0C +_0804666C: .4byte 0x02023F24 +_08046670: .4byte 0x02023EAF +_08046674: .4byte 0x02023EB8 +_08046678: .4byte 0x02023FD6 + thumb_func_end atk02_attackstring + + thumb_func_start atk03_ppreduce +atk03_ppreduce: @ 0x0804667C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + movs r6, #1 + ldr r0, _080466CC + ldr r0, [r0] + cmp r0, #0 + beq _08046694 + b _0804682E +_08046694: + ldr r1, _080466D0 + ldr r2, _080466D4 + ldrb r3, [r2] + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r4, r0, #0x1f + mov sb, r2 + cmp r4, #0 + bne _08046736 + ldr r2, _080466D8 + ldr r0, _080466DC + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #6] + cmp r0, #0x20 + beq _080466E6 + cmp r0, #0x20 + bgt _080466E0 + cmp r0, #8 + beq _080466FC + b _08046716 + .align 2, 0 +_080466CC: .4byte 0x02023D0C +_080466D0: .4byte 0x02024020 +_080466D4: .4byte 0x02023EAF +_080466D8: .4byte 0x082ED220 +_080466DC: .4byte 0x02023E8E +_080466E0: + cmp r0, #0x40 + beq _080466FC + b _08046716 +_080466E6: + str r4, [sp] + movs r0, #0x12 + adds r1, r3, #0 + movs r2, #0x2e + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r0, #1 + b _08046736 +_080466FC: + mov r0, sb + ldrb r1, [r0] + movs r0, #0 + str r0, [sp] + movs r0, #0x10 + movs r2, #0x2e + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r6, r0 + b _08046736 +_08046716: + ldr r1, _08046798 + mov r2, sb + ldrb r0, [r2] + ldrb r7, [r1] + cmp r0, r7 + beq _08046736 + ldr r2, _0804679C + ldrb r1, [r1] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x2e + bne _08046736 + adds r6, #1 +_08046736: + ldr r0, _080467A0 + ldr r4, [r0] + movs r0, #0xa0 + lsls r0, r0, #4 + ands r4, r0 + cmp r4, #0 + bne _0804681C + ldr r2, _0804679C + ldr r3, _080467A4 + ldr r1, _080467A8 + ldrb r5, [r1] + movs r0, #0x58 + mov r8, r0 + mov r0, r8 + muls r0, r5, r0 + ldrb r7, [r3] + adds r0, r0, r7 + movs r7, #0x24 + adds r7, r7, r2 + mov ip, r7 + add r0, ip + ldrb r0, [r0] + mov sb, r1 + mov sl, r2 + adds r7, r3, #0 + cmp r0, #0 + beq _0804681C + ldr r0, _080467AC + lsls r1, r5, #4 + adds r1, r1, r0 + ldrb r0, [r1, #2] + movs r2, #8 + orrs r0, r2 + strb r0, [r1, #2] + mov r1, sb + ldrb r0, [r1] + mov r2, r8 + muls r2, r0, r2 + adds r0, r2, #0 + ldrb r1, [r7] + adds r0, r0, r1 + mov r1, ip + adds r2, r0, r1 + ldrb r0, [r2] + cmp r0, r6 + ble _080467B0 + subs r0, r0, r6 + strb r0, [r2] + b _080467B2 + .align 2, 0 +_08046798: .4byte 0x02023EB0 +_0804679C: .4byte 0x02023D28 +_080467A0: .4byte 0x02023F24 +_080467A4: .4byte 0x02023E8C +_080467A8: .4byte 0x02023EAF +_080467AC: .4byte 0x02023FE0 +_080467B0: + strb r4, [r2] +_080467B2: + mov r2, sb + ldrb r3, [r2] + movs r4, #0x58 + adds r0, r3, #0 + muls r0, r4, r0 + mov r1, sl + adds r1, #0x50 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xe + ands r0, r1 + cmp r0, #0 + bne _0804681C + ldr r1, _08046840 + lsls r0, r3, #3 + subs r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #0x18] + lsrs r1, r1, #4 + ldr r2, _08046844 + ldrb r0, [r7] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _0804681C + ldr r0, _08046848 + strb r3, [r0] + ldrb r1, [r7] + adds r1, #9 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r2, sb + ldrb r0, [r2] + muls r0, r4, r0 + mov r2, sl + adds r2, #0x24 + adds r0, r0, r2 + ldrb r7, [r7] + adds r0, r0, r7 + str r0, [sp] + movs r0, #0 + movs r2, #0 + movs r3, #1 + bl BtlController_EmitSetMonData + mov r7, sb + ldrb r0, [r7] + bl MarkBattlerForControllerExec +_0804681C: + ldr r2, _0804684C + ldr r0, [r2] + ldr r1, _08046850 + ands r0, r1 + str r0, [r2] + ldr r1, _08046854 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] +_0804682E: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08046840: .4byte 0x02023F60 +_08046844: .4byte 0x082FACB4 +_08046848: .4byte 0x02023D08 +_0804684C: .4byte 0x02023F24 +_08046850: .4byte 0xFFFFF7FF +_08046854: .4byte 0x02023EB8 + thumb_func_end atk03_ppreduce + + thumb_func_start atk04_critcalc +atk04_critcalc: @ 0x08046858 + push {r4, r5, r6, r7, lr} + ldr r1, _0804687C + ldr r0, _08046880 + ldrb r2, [r0] + movs r0, #0x58 + muls r0, r2, r0 + adds r0, r0, r1 + ldrh r0, [r0, #0x2e] + cmp r0, #0xaf + bne _08046888 + ldr r1, _08046884 + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r6, [r0, #7] + b _08046890 + .align 2, 0 +_0804687C: .4byte 0x02023D28 +_08046880: .4byte 0x02023EAF +_08046884: .4byte 0x020240A8 +_08046888: + bl sub_080D6CF8 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_08046890: + ldr r1, _0804691C + ldr r3, _08046920 + ldrb r0, [r3] + strb r0, [r1] + ldr r4, _08046924 + ldrb r1, [r3] + movs r0, #0x58 + adds r7, r1, #0 + muls r7, r0, r7 + adds r0, r4, #0 + adds r0, #0x50 + adds r0, r7, r0 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xd + ands r0, r1 + rsbs r0, r0, #0 + asrs r5, r0, #0x1f + movs r0, #2 + ands r5, r0 + ldr r2, _08046928 + ldr r0, _0804692C + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + mov ip, r3 + cmp r1, #0x2b + bne _080468D0 + adds r5, #1 +_080468D0: + adds r0, r5, #0 + cmp r1, #0x4b + bne _080468D8 + adds r0, #1 +_080468D8: + cmp r1, #0xc8 + bne _080468DE + adds r0, #1 +_080468DE: + adds r2, r0, #0 + cmp r1, #0xd1 + bne _080468E6 + adds r2, #1 +_080468E6: + movs r1, #0 + cmp r6, #0x3f + bne _080468F6 + adds r0, r7, r4 + ldrh r0, [r0] + cmp r0, #0x71 + bne _080468F6 + movs r1, #1 +_080468F6: + lsls r5, r1, #1 + movs r3, #0 + cmp r6, #0x42 + bne _08046910 + mov r0, ip + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r4 + ldrh r0, [r0] + cmp r0, #0x53 + bne _08046910 + movs r3, #1 +_08046910: + lsls r1, r3, #1 + cmp r6, #0x29 + bne _08046930 + adds r0, r5, #1 + adds r0, r2, r0 + b _08046932 + .align 2, 0 +_0804691C: .4byte 0x02023EB3 +_08046920: .4byte 0x02023EAF +_08046924: .4byte 0x02023D28 +_08046928: .4byte 0x082ED220 +_0804692C: .4byte 0x02023E8E +_08046930: + adds r0, r2, r5 +_08046932: + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r5, r0, #0 + cmp r5, #4 + bls _08046940 + movs r5, #4 +_08046940: + ldr r0, _0804699C + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r4 + adds r0, #0x20 + ldrb r4, [r0] + cmp r4, #4 + beq _080469B0 + cmp r4, #0x4b + beq _080469B0 + ldr r1, _080469A0 + mov r2, ip + ldrb r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + bne _080469B0 + ldr r0, _080469A4 + ldr r0, [r0] + movs r1, #0x84 + lsls r1, r1, #2 + ands r0, r1 + cmp r0, #0 + bne _080469B0 + bl Random + ldr r2, _080469A8 + lsls r1, r5, #1 + adds r1, r1, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrh r1, [r1] + bl __umodsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080469B0 + ldr r1, _080469AC + movs r0, #2 + b _080469B4 + .align 2, 0 +_0804699C: .4byte 0x02023EB0 +_080469A0: .4byte 0x02023F50 +_080469A4: .4byte 0x02022C90 +_080469A8: .4byte 0x082ECAAC +_080469AC: .4byte 0x02023EB5 +_080469B0: + ldr r1, _080469C4 + movs r0, #1 +_080469B4: + strb r0, [r1] + ldr r1, _080469C8 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080469C4: .4byte 0x02023EB5 +_080469C8: .4byte 0x02023EB8 + thumb_func_end atk04_critcalc + + thumb_func_start atk05_damagecalc +atk05_damagecalc: @ 0x080469CC + push {r4, r5, r6, r7, lr} + sub sp, #0x10 + ldr r4, _08046A84 + ldr r5, _08046A88 + ldrb r0, [r5] + bl GetBattlerPosition + movs r1, #1 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r3, [r1] + ldr r6, _08046A8C + ldrb r0, [r6] + movs r4, #0x58 + muls r0, r4, r0 + ldr r2, _08046A90 + adds r0, r0, r2 + ldrb r1, [r5] + muls r1, r4, r1 + adds r1, r1, r2 + ldr r7, _08046A94 + ldrh r2, [r7] + ldr r4, _08046A98 + ldrh r4, [r4] + str r4, [sp] + ldr r4, _08046A9C + ldr r4, [r4] + ldrb r4, [r4, #0x13] + str r4, [sp, #4] + ldrb r4, [r6] + str r4, [sp, #8] + ldrb r4, [r5] + str r4, [sp, #0xc] + bl CalculateBaseDamage + ldr r4, _08046AA0 + ldr r1, _08046AA4 + ldrb r1, [r1] + muls r1, r0, r1 + ldr r0, _08046AA8 + ldrb r0, [r0, #0xe] + adds r3, r1, #0 + muls r3, r0, r3 + str r3, [r4] + ldr r1, _08046AAC + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #2 + ands r0, r1 + cmp r0, #0 + beq _08046A50 + ldr r2, _08046AB0 + ldrh r1, [r7] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #2] + cmp r0, #0xd + bne _08046A50 + lsls r0, r3, #1 + str r0, [r4] +_08046A50: + ldr r1, _08046AB4 + ldr r0, _08046A8C + ldrb r0, [r0] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1c + cmp r0, #0 + bge _08046A72 + ldr r4, _08046AA0 + ldr r1, [r4] + lsls r0, r1, #4 + subs r0, r0, r1 + movs r1, #0xa + bl __divsi3 + str r0, [r4] +_08046A72: + ldr r1, _08046AB8 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + add sp, #0x10 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08046A84: .4byte 0x02023F32 +_08046A88: .4byte 0x02023EB0 +_08046A8C: .4byte 0x02023EAF +_08046A90: .4byte 0x02023D28 +_08046A94: .4byte 0x02023E8E +_08046A98: .4byte 0x020240A4 +_08046A9C: .4byte 0x02024140 +_08046AA0: .4byte 0x02023E94 +_08046AA4: .4byte 0x02023EB5 +_08046AA8: .4byte 0x02024118 +_08046AAC: .4byte 0x02023F50 +_08046AB0: .4byte 0x082ED220 +_08046AB4: .4byte 0x02023FE0 +_08046AB8: .4byte 0x02023EB8 + thumb_func_end atk05_damagecalc + + thumb_func_start AI_CalcDmg +AI_CalcDmg: @ 0x08046ABC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x10 + adds r5, r1, #0 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r4, _08046B74 + adds r0, r5, #0 + bl GetBattlerPosition + movs r1, #1 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r3, [r1] + movs r1, #0x58 + adds r0, r7, #0 + muls r0, r1, r0 + ldr r2, _08046B78 + adds r0, r0, r2 + muls r1, r5, r1 + adds r1, r1, r2 + ldr r2, _08046B7C + mov r8, r2 + ldrh r2, [r2] + ldr r6, _08046B80 + ldrh r4, [r6] + str r4, [sp] + ldr r4, _08046B84 + ldr r4, [r4] + ldrb r4, [r4, #0x13] + str r4, [sp, #4] + str r7, [sp, #8] + str r5, [sp, #0xc] + bl CalculateBaseDamage + ldr r4, _08046B88 + movs r1, #0 + strh r1, [r6] + ldr r1, _08046B8C + ldrb r1, [r1] + muls r1, r0, r1 + ldr r0, _08046B90 + ldrb r0, [r0, #0xe] + adds r3, r1, #0 + muls r3, r0, r3 + str r3, [r4] + ldr r1, _08046B94 + lsls r0, r7, #2 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #2 + ands r0, r1 + cmp r0, #0 + beq _08046B4A + ldr r2, _08046B98 + mov r0, r8 + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #2] + cmp r0, #0xd + bne _08046B4A + lsls r0, r3, #1 + str r0, [r4] +_08046B4A: + ldr r0, _08046B9C + lsls r1, r7, #4 + adds r1, r1, r0 + ldrb r0, [r1] + lsls r0, r0, #0x1c + cmp r0, #0 + bge _08046B68 + ldr r4, _08046B88 + ldr r1, [r4] + lsls r0, r1, #4 + subs r0, r0, r1 + movs r1, #0xa + bl __divsi3 + str r0, [r4] +_08046B68: + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08046B74: .4byte 0x02023F32 +_08046B78: .4byte 0x02023D28 +_08046B7C: .4byte 0x02023E8E +_08046B80: .4byte 0x020240A4 +_08046B84: .4byte 0x02024140 +_08046B88: .4byte 0x02023E94 +_08046B8C: .4byte 0x02023EB5 +_08046B90: .4byte 0x02024118 +_08046B94: .4byte 0x02023F50 +_08046B98: .4byte 0x082ED220 +_08046B9C: .4byte 0x02023FE0 + thumb_func_end AI_CalcDmg + + thumb_func_start ModulateDmgByType +ModulateDmgByType: @ 0x08046BA0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r5, _08046BD0 + ldr r0, [r5] + muls r0, r4, r0 + movs r1, #0xa + bl __divsi3 + str r0, [r5] + cmp r0, #0 + bne _08046BC0 + cmp r4, #0 + beq _08046BC0 + movs r0, #1 + str r0, [r5] +_08046BC0: + cmp r4, #5 + beq _08046BF0 + cmp r4, #5 + bgt _08046BD4 + cmp r4, #0 + beq _08046BDA + b _08046C72 + .align 2, 0 +_08046BD0: .4byte 0x02023E94 +_08046BD4: + cmp r4, #0x14 + beq _08046C30 + b _08046C72 +_08046BDA: + ldr r2, _08046BEC + ldrb r0, [r2] + movs r1, #8 + orrs r0, r1 + movs r1, #0xfb + ands r0, r1 + movs r1, #0xfd + ands r0, r1 + b _08046C70 + .align 2, 0 +_08046BEC: .4byte 0x02023F20 +_08046BF0: + ldr r2, _08046C20 + ldr r0, _08046C24 + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #1] + cmp r0, #0 + beq _08046C72 + ldr r2, _08046C28 + ldrb r1, [r2] + movs r0, #0x29 + ands r0, r1 + cmp r0, #0 + bne _08046C72 + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08046C2C + movs r0, #0xfd + ands r0, r1 + b _08046C70 + .align 2, 0 +_08046C20: .4byte 0x082ED220 +_08046C24: .4byte 0x02023E8E +_08046C28: .4byte 0x02023F20 +_08046C2C: + movs r0, #4 + b _08046C6E +_08046C30: + ldr r2, _08046C60 + ldr r0, _08046C64 + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #1] + cmp r0, #0 + beq _08046C72 + ldr r2, _08046C68 + ldrb r1, [r2] + movs r0, #0x29 + ands r0, r1 + cmp r0, #0 + bne _08046C72 + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08046C6C + movs r0, #0xfb + ands r0, r1 + b _08046C70 + .align 2, 0 +_08046C60: .4byte 0x082ED220 +_08046C64: .4byte 0x02023E8E +_08046C68: .4byte 0x02023F20 +_08046C6C: + movs r0, #2 +_08046C6E: + orrs r0, r1 +_08046C70: + strb r0, [r2] +_08046C72: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end ModulateDmgByType + + thumb_func_start atk06_typecalc +atk06_typecalc: @ 0x08046C78 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + movs r3, #0 + ldr r1, _08046CA0 + ldrh r0, [r1] + cmp r0, #0xa5 + bne _08046C8C + b _08046EA0 +_08046C8C: + ldr r0, _08046CA4 + ldr r0, [r0] + ldrb r0, [r0, #0x13] + cmp r0, #0 + beq _08046CA8 + movs r1, #0x3f + mov r8, r1 + ands r1, r0 + mov r8, r1 + b _08046CB8 + .align 2, 0 +_08046CA0: .4byte 0x02023E8E +_08046CA4: .4byte 0x02024140 +_08046CA8: + ldr r2, _08046D40 + ldrh r1, [r1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #2] + mov r8, r0 +_08046CB8: + ldr r2, _08046D44 + ldr r0, _08046D48 + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r1, r0, r2 + adds r0, r1, #0 + adds r0, #0x21 + ldrb r0, [r0] + adds r5, r2, #0 + cmp r0, r8 + beq _08046CDA + adds r0, r1, #0 + adds r0, #0x22 + ldrb r0, [r0] + cmp r0, r8 + bne _08046CF0 +_08046CDA: + ldr r4, _08046D4C + ldr r1, [r4] + lsls r0, r1, #4 + subs r0, r0, r1 + str r0, [r4] + movs r1, #0xa + str r3, [sp, #4] + bl __divsi3 + str r0, [r4] + ldr r3, [sp, #4] +_08046CF0: + ldr r2, _08046D50 + ldrb r1, [r2] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r5 + adds r0, #0x20 + ldrb r0, [r0] + adds r4, r2, #0 + cmp r0, #0x1a + bne _08046D68 + mov r1, r8 + cmp r1, #4 + bne _08046D68 + ldr r3, _08046D54 + strb r0, [r3] + ldr r2, _08046D58 + ldrb r0, [r2] + movs r1, #9 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08046D5C + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r1 + movs r2, #0 + strh r2, [r0] + ldr r1, _08046D60 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r1 + strh r2, [r0] + ldr r0, _08046D64 + mov r1, r8 + strb r1, [r0, #6] + ldrb r0, [r4] + ldrb r1, [r3] + bl RecordAbilityBattle + b _08046E04 + .align 2, 0 +_08046D40: .4byte 0x082ED220 +_08046D44: .4byte 0x02023D28 +_08046D48: .4byte 0x02023EAF +_08046D4C: .4byte 0x02023E94 +_08046D50: .4byte 0x02023EB0 +_08046D54: .4byte 0x02023EAE +_08046D58: .4byte 0x02023F20 +_08046D5C: .4byte 0x02023EF4 +_08046D60: .4byte 0x02023EFC +_08046D64: .4byte 0x02023FD6 +_08046D68: + ldr r1, _08046D74 + adds r0, r3, r1 + ldrb r0, [r0] + adds r2, r1, #0 + b _08046DE4 + .align 2, 0 +_08046D74: .4byte 0x082EBB38 +_08046D78: + adds r3, #3 + b _08046DE0 +_08046D7C: + ldr r5, _08046EB4 + adds r0, r3, r5 + ldrb r0, [r0] + cmp r0, r8 + bne _08046DD8 + adds r1, r3, #1 + adds r1, r1, r5 + ldr r2, _08046EB8 + ldr r7, _08046EBC + ldrb r0, [r7] + movs r6, #0x58 + muls r0, r6, r0 + adds r0, r0, r2 + adds r0, #0x21 + ldrb r4, [r1] + ldrb r0, [r0] + cmp r4, r0 + bne _08046DB2 + adds r0, r3, #2 + adds r0, r0, r5 + ldrb r0, [r0] + str r2, [sp] + str r3, [sp, #4] + bl ModulateDmgByType + ldr r3, [sp, #4] + ldr r2, [sp] +_08046DB2: + ldrb r0, [r7] + muls r0, r6, r0 + adds r0, r0, r2 + adds r1, r0, #0 + adds r1, #0x22 + ldrb r1, [r1] + cmp r4, r1 + bne _08046DD8 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, r4 + beq _08046DD8 + adds r0, r3, #2 + adds r0, r0, r5 + ldrb r0, [r0] + str r3, [sp, #4] + bl ModulateDmgByType + ldr r3, [sp, #4] +_08046DD8: + adds r3, #3 + ldr r5, _08046EB8 + ldr r4, _08046EBC + ldr r2, _08046EB4 +_08046DE0: + adds r0, r3, r2 + ldrb r0, [r0] +_08046DE4: + cmp r0, #0xff + beq _08046E04 + cmp r0, #0xfe + bne _08046D7C + ldrb r1, [r4] + movs r0, #0x58 + muls r0, r1, r0 + adds r1, r5, #0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x16 + ands r0, r1 + cmp r0, #0 + beq _08046D78 +_08046E04: + ldr r2, _08046EB8 + ldr r5, _08046EBC + ldrb r1, [r5] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + adds r0, #0x20 + ldrb r6, [r0] + cmp r6, #0x19 + bne _08046E82 + ldr r0, _08046EC0 + ldrb r0, [r0] + ldr r7, _08046EC4 + ldrh r1, [r7] + bl AttacksThisTurn + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _08046E82 + ldr r1, _08046EC8 + mov r8, r1 + ldrb r4, [r1] + ands r0, r4 + cmp r0, #0 + beq _08046E40 + movs r0, #6 + ands r0, r4 + cmp r0, #6 + bne _08046E82 +_08046E40: + ldr r2, _08046ECC + ldrh r1, [r7] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #1] + cmp r0, #0 + beq _08046E82 + ldr r3, _08046ED0 + strb r6, [r3] + movs r0, #1 + orrs r0, r4 + mov r1, r8 + strb r0, [r1] + ldr r1, _08046ED4 + ldrb r0, [r5] + lsls r0, r0, #1 + adds r0, r0, r1 + movs r2, #0 + strh r2, [r0] + ldr r1, _08046ED8 + ldrb r0, [r5] + lsls r0, r0, #1 + adds r0, r0, r1 + strh r2, [r0] + ldr r1, _08046EDC + movs r0, #3 + strb r0, [r1, #6] + ldrb r0, [r5] + ldrb r1, [r3] + bl RecordAbilityBattle +_08046E82: + ldr r0, _08046EC8 + ldrb r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08046EA0 + ldr r2, _08046EE0 + ldr r0, _08046EC0 + ldrb r1, [r0] + lsls r1, r1, #4 + adds r1, r1, r2 + ldrb r0, [r1, #1] + movs r2, #2 + orrs r0, r2 + strb r0, [r1, #1] +_08046EA0: + ldr r1, _08046EE4 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08046EB4: .4byte 0x082EBB38 +_08046EB8: .4byte 0x02023D28 +_08046EBC: .4byte 0x02023EB0 +_08046EC0: .4byte 0x02023EAF +_08046EC4: .4byte 0x02023E8E +_08046EC8: .4byte 0x02023F20 +_08046ECC: .4byte 0x082ED220 +_08046ED0: .4byte 0x02023EAE +_08046ED4: .4byte 0x02023EF4 +_08046ED8: .4byte 0x02023EFC +_08046EDC: .4byte 0x02023FD6 +_08046EE0: .4byte 0x02023FE0 +_08046EE4: .4byte 0x02023EB8 + thumb_func_end atk06_typecalc + + thumb_func_start CheckWonderGuardAndLevitate +CheckWonderGuardAndLevitate: @ 0x08046EE8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + movs r6, #0 + movs r5, #0 + ldr r0, _08046F28 + ldrh r1, [r0] + mov sb, r0 + cmp r1, #0xa5 + bne _08046F00 + b _08047148 +_08046F00: + ldr r2, _08046F2C + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r2 + ldrb r0, [r1, #1] + cmp r0, #0 + bne _08046F12 + b _08047148 +_08046F12: + ldr r0, _08046F30 + ldr r0, [r0] + ldrb r0, [r0, #0x13] + cmp r0, #0 + beq _08046F34 + movs r1, #0x3f + mov ip, r1 + mov r2, ip + ands r2, r0 + mov ip, r2 + b _08046F38 + .align 2, 0 +_08046F28: .4byte 0x02023E8E +_08046F2C: .4byte 0x082ED220 +_08046F30: .4byte 0x02024140 +_08046F34: + ldrb r1, [r1, #2] + mov ip, r1 +_08046F38: + ldr r2, _08046F6C + ldr r3, _08046F70 + ldrb r1, [r3] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + adds r0, #0x20 + ldrb r1, [r0] + adds r7, r2, #0 + mov r8, r3 + cmp r1, #0x1a + bne _08046F7C + mov r0, ip + cmp r0, #4 + bne _08046F7C + ldr r0, _08046F74 + strb r1, [r0] + ldr r0, _08046F78 + mov r1, ip + strb r1, [r0, #6] + ldrb r0, [r3] + movs r1, #0x1a + bl RecordAbilityBattle + b _08047148 + .align 2, 0 +_08046F6C: .4byte 0x02023D28 +_08046F70: .4byte 0x02023EB0 +_08046F74: .4byte 0x02023EAE +_08046F78: .4byte 0x02023FD6 +_08046F7C: + ldr r1, _08046F88 + adds r0, r5, r1 + ldrb r0, [r0] + adds r4, r1, #0 + b _080470CE + .align 2, 0 +_08046F88: .4byte 0x082EBB38 +_08046F8C: + adds r0, r5, r4 + ldrb r0, [r0] + cmp r0, ip + beq _08046F96 + b _080470C8 +_08046F96: + adds r2, r5, #1 + adds r3, r2, r4 + mov r0, r8 + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r7 + adds r0, #0x21 + ldrb r1, [r3] + adds r3, r2, #0 + ldrb r0, [r0] + cmp r1, r0 + bne _08046FD6 + adds r0, r5, #2 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0 + bne _08046FD6 + ldr r2, _08047154 + ldrb r0, [r2] + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08047158 + ldr r0, _0804715C + ldrb r2, [r0] + lsls r2, r2, #4 + adds r2, r2, r1 + ldrb r0, [r2, #1] + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #1] +_08046FD6: + adds r2, r3, r4 + mov r0, r8 + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r7 + adds r1, r0, #0 + adds r1, #0x22 + ldrb r2, [r2] + ldrb r1, [r1] + cmp r2, r1 + bne _0804701C + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, r2 + beq _0804701C + adds r0, r5, #2 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0 + bne _0804701C + ldr r2, _08047154 + ldrb r0, [r2] + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08047158 + ldr r0, _0804715C + ldrb r2, [r0] + lsls r2, r2, #4 + adds r2, r2, r1 + ldrb r0, [r2, #1] + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #1] +_0804701C: + adds r2, r3, r4 + mov r0, r8 + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r7 + adds r0, #0x21 + ldrb r1, [r2] + ldrb r0, [r0] + cmp r1, r0 + bne _08047040 + adds r0, r5, #2 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0x14 + bne _08047040 + movs r0, #1 + orrs r6, r0 +_08047040: + adds r2, r3, r4 + mov r0, r8 + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r7 + adds r1, r0, #0 + adds r1, #0x22 + ldrb r2, [r2] + ldrb r1, [r1] + cmp r2, r1 + bne _0804706E + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, r2 + beq _0804706E + adds r0, r5, #2 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0x14 + bne _0804706E + movs r0, #1 + orrs r6, r0 +_0804706E: + adds r2, r3, r4 + mov r0, r8 + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r7 + adds r0, #0x21 + ldrb r1, [r2] + ldrb r0, [r0] + cmp r1, r0 + bne _08047096 + adds r0, r5, #2 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #5 + bne _08047096 + movs r0, #2 + orrs r6, r0 + lsls r0, r6, #0x18 + lsrs r6, r0, #0x18 +_08047096: + adds r2, r3, r4 + mov r0, r8 + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r7 + adds r1, r0, #0 + adds r1, #0x22 + ldrb r2, [r2] + ldrb r1, [r1] + cmp r2, r1 + bne _080470C8 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, r2 + beq _080470C8 + adds r0, r5, #2 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #5 + bne _080470C8 + movs r0, #2 + orrs r6, r0 + lsls r0, r6, #0x18 + lsrs r6, r0, #0x18 +_080470C8: + adds r5, #3 + adds r0, r5, r4 + ldrb r0, [r0] +_080470CE: + cmp r0, #0xff + beq _080470F2 + cmp r0, #0xfe + beq _080470D8 + b _08046F8C +_080470D8: + mov r2, r8 + ldrb r1, [r2] + movs r0, #0x58 + muls r0, r1, r0 + adds r1, r7, #0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x16 + ands r0, r1 + cmp r0, #0 + beq _080470C8 +_080470F2: + mov r0, r8 + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r7 + adds r0, #0x20 + ldrb r4, [r0] + cmp r4, #0x19 + bne _08047148 + ldr r0, _0804715C + ldrb r0, [r0] + mov r2, sb + ldrh r1, [r2] + bl AttacksThisTurn + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _08047148 + movs r0, #3 + ands r6, r0 + cmp r6, #1 + beq _08047148 + ldr r2, _08047160 + mov r0, sb + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #1] + cmp r0, #0 + beq _08047148 + ldr r0, _08047164 + strb r4, [r0] + ldr r1, _08047168 + movs r0, #3 + strb r0, [r1, #6] + mov r1, r8 + ldrb r0, [r1] + movs r1, #0x19 + bl RecordAbilityBattle +_08047148: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08047154: .4byte 0x02023F20 +_08047158: .4byte 0x02023FE0 +_0804715C: .4byte 0x02023EAF +_08047160: .4byte 0x082ED220 +_08047164: .4byte 0x02023EAE +_08047168: .4byte 0x02023FD6 + thumb_func_end CheckWonderGuardAndLevitate + + thumb_func_start ModulateDmgByType2 +ModulateDmgByType2: @ 0x0804716C + push {r4, r5, r6, r7, lr} + adds r6, r2, #0 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + ldr r7, _080471A0 + ldr r0, [r7] + muls r0, r4, r0 + movs r1, #0xa + bl __divsi3 + str r0, [r7] + cmp r0, #0 + bne _08047192 + cmp r4, #0 + beq _08047192 + movs r0, #1 + str r0, [r7] +_08047192: + cmp r4, #5 + beq _080471BA + cmp r4, #5 + bgt _080471A4 + cmp r4, #0 + beq _080471AA + b _0804721E + .align 2, 0 +_080471A0: .4byte 0x02023E94 +_080471A4: + cmp r4, #0x14 + beq _080471EC + b _0804721E +_080471AA: + ldrb r0, [r6] + movs r1, #8 + orrs r0, r1 + movs r1, #0xfb + ands r0, r1 + movs r1, #0xfd + ands r0, r1 + b _0804721C +_080471BA: + ldr r0, _080471E4 + lsls r1, r5, #1 + adds r1, r1, r5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #1] + cmp r0, #0 + beq _0804721E + ldrb r1, [r6] + movs r0, #0x29 + ands r0, r1 + cmp r0, #0 + bne _0804721E + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080471E8 + movs r0, #0xfd + ands r0, r1 + b _0804721C + .align 2, 0 +_080471E4: .4byte 0x082ED220 +_080471E8: + movs r0, #4 + b _0804721A +_080471EC: + ldr r0, _08047214 + lsls r1, r5, #1 + adds r1, r1, r5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #1] + cmp r0, #0 + beq _0804721E + ldrb r1, [r6] + movs r0, #0x29 + ands r0, r1 + cmp r0, #0 + bne _0804721E + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08047218 + movs r0, #0xfb + ands r0, r1 + b _0804721C + .align 2, 0 +_08047214: .4byte 0x082ED220 +_08047218: + movs r0, #2 +_0804721A: + orrs r0, r1 +_0804721C: + strb r0, [r6] +_0804721E: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end ModulateDmgByType2 + + thumb_func_start TypeCalc +TypeCalc: @ 0x08047224 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp, #4] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sb, r2 + movs r0, #0 + mov r8, r0 + mov r0, sp + mov r1, r8 + strb r1, [r0] + mov r2, sl + cmp r2, #0xa5 + bne _08047256 + movs r0, #0 + b _080473DE +_08047256: + ldr r1, _080472C4 + mov r3, sl + lsls r2, r3, #1 + adds r0, r2, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #2] + str r0, [sp, #8] + ldr r1, _080472C8 + movs r0, #0x58 + ldr r3, [sp, #4] + muls r0, r3, r0 + adds r3, r0, r1 + adds r0, r3, #0 + adds r0, #0x21 + ldrb r0, [r0] + str r2, [sp, #0xc] + adds r5, r1, #0 + ldr r1, [sp, #8] + cmp r0, r1 + beq _0804728A + adds r0, r3, #0 + adds r0, #0x22 + ldrb r0, [r0] + cmp r0, r1 + bne _0804729C +_0804728A: + ldr r4, _080472CC + ldr r1, [r4] + lsls r0, r1, #4 + subs r0, r0, r1 + str r0, [r4] + movs r1, #0xa + bl __divsi3 + str r0, [r4] +_0804729C: + movs r0, #0x58 + mov r2, sb + muls r2, r0, r2 + adds r0, r2, #0 + adds r0, r0, r5 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x1a + bne _080472D0 + ldr r3, [sp, #8] + cmp r3, #4 + bne _080472D0 + movs r1, #9 + mov r0, sp + ldrb r0, [r0] + orrs r0, r1 + mov r1, sp + strb r0, [r1] + b _08047380 + .align 2, 0 +_080472C4: .4byte 0x082ED220 +_080472C8: .4byte 0x02023D28 +_080472CC: .4byte 0x02023E94 +_080472D0: + ldr r1, _080472EC + mov r2, r8 + adds r0, r2, r1 + ldrb r0, [r0] + adds r2, r1, #0 + cmp r0, #0xff + beq _08047380 + cmp r0, #0xfe + bne _080472F6 + movs r0, #0x58 + mov r3, sb + muls r3, r0, r3 + adds r0, r3, #0 + b _0804736E + .align 2, 0 +_080472EC: .4byte 0x082EBB38 +_080472F0: + movs r0, #3 + add r8, r0 + b _08047358 +_080472F6: + ldr r7, _080473F0 + mov r1, r8 + adds r0, r1, r7 + ldrb r0, [r0] + ldr r2, [sp, #8] + cmp r0, r2 + bne _08047350 + adds r1, #1 + adds r1, r1, r7 + ldr r2, _080473F4 + movs r0, #0x58 + mov r3, sb + muls r3, r0, r3 + adds r0, r3, #0 + adds r5, r0, r2 + adds r6, r5, #0 + adds r6, #0x21 + ldrb r4, [r1] + ldrb r0, [r6] + cmp r4, r0 + bne _08047330 + mov r0, r8 + adds r0, #2 + adds r0, r0, r7 + ldrb r0, [r0] + mov r1, sl + mov r2, sp + bl ModulateDmgByType2 +_08047330: + adds r0, r5, #0 + adds r0, #0x22 + ldrb r0, [r0] + cmp r4, r0 + bne _08047350 + ldrb r0, [r6] + cmp r0, r4 + beq _08047350 + mov r0, r8 + adds r0, #2 + adds r0, r0, r7 + ldrb r0, [r0] + mov r1, sl + mov r2, sp + bl ModulateDmgByType2 +_08047350: + movs r1, #3 + add r8, r1 + ldr r5, _080473F4 + ldr r2, _080473F0 +_08047358: + mov r3, r8 + adds r0, r3, r2 + ldrb r0, [r0] + cmp r0, #0xff + beq _08047380 + cmp r0, #0xfe + bne _080472F6 + movs r0, #0x58 + mov r1, sb + muls r1, r0, r1 + adds r0, r1, #0 +_0804736E: + adds r1, r5, #0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x16 + ands r0, r1 + cmp r0, #0 + beq _080472F0 +_08047380: + movs r0, #0x58 + mov r2, sb + muls r2, r0, r2 + adds r0, r2, #0 + adds r0, r0, r5 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x19 + bne _080473DA + mov r0, sp + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080473DA + ldr r0, [sp, #4] + mov r1, sl + bl AttacksThisTurn + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #2 + bne _080473DA + mov r0, sp + ldrb r3, [r0] + adds r0, r1, #0 + ands r0, r3 + cmp r0, #0 + beq _080473C2 + movs r0, #6 + ands r0, r3 + cmp r0, #6 + bne _080473DA +_080473C2: + ldr r0, _080473F8 + ldr r1, [sp, #0xc] + add r1, sl + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #1] + cmp r0, #0 + beq _080473DA + mov r0, sp + movs r1, #1 + orrs r1, r3 + strb r1, [r0] +_080473DA: + mov r0, sp + ldrb r0, [r0] +_080473DE: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080473F0: .4byte 0x082EBB38 +_080473F4: .4byte 0x02023D28 +_080473F8: .4byte 0x082ED220 + thumb_func_end TypeCalc + + thumb_func_start AI_TypeCalc +AI_TypeCalc: @ 0x080473FC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #4] + movs r7, #0 + mov r0, sp + strb r7, [r0] + ldr r2, _08047438 + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #6] + mov sb, r1 + ldrb r0, [r0, #7] + mov r8, r0 + cmp r6, #0xa5 + bne _0804743C + movs r0, #0 + b _080474E0 + .align 2, 0 +_08047438: .4byte 0x082F0D54 +_0804743C: + ldr r2, _08047460 + lsls r1, r6, #1 + adds r0, r1, r6 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #2] + mov sl, r0 + str r1, [sp, #8] + ldr r3, [sp, #4] + cmp r3, #0x1a + bne _08047464 + cmp r0, #4 + bne _08047464 + movs r1, #9 + mov r0, sp + strb r1, [r0] + b _080474AA + .align 2, 0 +_08047460: .4byte 0x082ED220 +_08047464: + ldr r0, _080474F0 + adds r1, r7, r0 + ldrb r0, [r1] + cmp r0, #0xff + beq _080474AA + adds r4, r1, #0 +_08047470: + ldrb r0, [r4] + cmp r0, #0xfe + beq _0804749C + cmp r0, sl + bne _0804749C + ldrb r5, [r4, #1] + cmp r5, sb + bne _0804748A + ldrb r0, [r4, #2] + adds r1, r6, #0 + mov r2, sp + bl ModulateDmgByType2 +_0804748A: + cmp r5, r8 + bne _0804749C + cmp sb, r8 + beq _0804749C + ldrb r0, [r4, #2] + adds r1, r6, #0 + mov r2, sp + bl ModulateDmgByType2 +_0804749C: + adds r4, #3 + adds r7, #3 + ldr r1, _080474F0 + adds r0, r7, r1 + ldrb r0, [r0] + cmp r0, #0xff + bne _08047470 +_080474AA: + ldr r3, [sp, #4] + cmp r3, #0x19 + bne _080474DC + mov r0, sp + ldrb r2, [r0] + movs r0, #2 + ands r0, r2 + cmp r0, #0 + beq _080474C4 + movs r0, #6 + ands r0, r2 + cmp r0, #6 + bne _080474DC +_080474C4: + ldr r0, _080474F4 + ldr r3, [sp, #8] + adds r1, r3, r6 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #1] + cmp r0, #0 + beq _080474DC + mov r0, sp + movs r1, #8 + orrs r1, r2 + strb r1, [r0] +_080474DC: + mov r0, sp + ldrb r0, [r0] +_080474E0: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080474F0: .4byte 0x082EBB38 +_080474F4: .4byte 0x082ED220 + thumb_func_end AI_TypeCalc + + thumb_func_start Unused_ApplyRandomDmgMultiplier +Unused_ApplyRandomDmgMultiplier: @ 0x080474F8 + push {r4, lr} + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xf + ands r0, r1 + movs r1, #0x64 + subs r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r4, _08047530 + ldr r0, [r4] + cmp r0, #0 + beq _0804752A + muls r0, r1, r0 + str r0, [r4] + movs r1, #0x64 + bl __divsi3 + str r0, [r4] + cmp r0, #0 + bne _0804752A + movs r0, #1 + str r0, [r4] +_0804752A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08047530: .4byte 0x02023E94 + thumb_func_end Unused_ApplyRandomDmgMultiplier + + thumb_func_start atk07_adjustnormaldamage +atk07_adjustnormaldamage: @ 0x08047534 + push {r4, r5, r6, r7, lr} + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xf + ands r0, r1 + movs r1, #0x64 + subs r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r4, _0804758C + ldr r0, [r4] + cmp r0, #0 + beq _08047566 + muls r0, r1, r0 + str r0, [r4] + movs r1, #0x64 + bl __divsi3 + str r0, [r4] + cmp r0, #0 + bne _08047566 + movs r0, #1 + str r0, [r4] +_08047566: + ldr r7, _08047590 + ldr r6, _08047594 + ldrb r2, [r6] + movs r5, #0x58 + adds r0, r2, #0 + muls r0, r5, r0 + adds r1, r0, r7 + ldrh r0, [r1, #0x2e] + cmp r0, #0xaf + bne _0804759C + ldr r1, _08047598 + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r4, [r0, #7] + ldrb r6, [r0, #0x1a] + b _080475B6 + .align 2, 0 +_0804758C: .4byte 0x02023E94 +_08047590: .4byte 0x02023D28 +_08047594: .4byte 0x02023EB0 +_08047598: .4byte 0x020240A8 +_0804759C: + ldrh r0, [r1, #0x2e] + bl sub_080D6CF8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldrb r0, [r6] + muls r0, r5, r0 + adds r0, r0, r7 + ldrh r0, [r0, #0x2e] + bl sub_080D6D1C + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_080475B6: + ldr r1, _08047678 + ldr r5, _0804767C + ldrb r0, [r5] + strb r0, [r1] + cmp r4, #0x27 + bne _080475F4 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r6 + bhs _080475F4 + ldrb r0, [r5] + movs r1, #0x27 + bl RecordItemEffectBattle + ldr r2, _08047680 + ldrb r1, [r5] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0] +_080475F4: + ldr r2, _08047684 + ldr r3, _0804767C + ldrb r4, [r3] + movs r0, #0x58 + muls r0, r4, r0 + adds r1, r2, #0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r1, [r0] + movs r0, #0x80 + lsls r0, r0, #0x11 + ands r1, r0 + adds r5, r2, #0 + cmp r1, #0 + bne _080476C4 + ldr r2, _08047688 + ldr r0, _0804768C + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #0x65 + beq _08047646 + ldr r0, _08047690 + lsls r1, r4, #4 + adds r1, r1, r0 + ldrb r0, [r1] + lsls r0, r0, #0x1e + cmp r0, #0 + blt _08047646 + ldr r0, _08047680 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1] + lsrs r0, r0, #7 + cmp r0, #0 + beq _080476C4 +_08047646: + ldrb r0, [r3] + movs r4, #0x58 + muls r0, r4, r0 + adds r0, r0, r5 + ldrh r1, [r0, #0x28] + ldr r2, _08047694 + ldr r0, [r2] + cmp r1, r0 + bgt _080476C4 + subs r0, r1, #1 + str r0, [r2] + ldr r1, _08047690 + ldrb r3, [r3] + lsls r0, r3, #4 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1e + cmp r0, #0 + bge _0804769C + ldr r0, _08047698 + ldrb r1, [r0] + movs r2, #0x40 + orrs r1, r2 + strb r1, [r0] + b _080476C4 + .align 2, 0 +_08047678: .4byte 0x02023EB3 +_0804767C: .4byte 0x02023EB0 +_08047680: .4byte 0x02024020 +_08047684: .4byte 0x02023D28 +_08047688: .4byte 0x082ED220 +_0804768C: .4byte 0x02023E8E +_08047690: .4byte 0x02023FE0 +_08047694: .4byte 0x02023E94 +_08047698: .4byte 0x02023F20 +_0804769C: + ldr r0, _080476D4 + lsls r1, r3, #2 + adds r1, r1, r3 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1] + lsrs r0, r0, #7 + cmp r0, #0 + beq _080476C4 + ldr r2, _080476D8 + ldrb r0, [r2] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2] + ldr r1, _080476DC + adds r0, r3, #0 + muls r0, r4, r0 + adds r0, r0, r5 + ldrh r0, [r0, #0x2e] + strh r0, [r1] +_080476C4: + ldr r1, _080476E0 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080476D4: .4byte 0x02024020 +_080476D8: .4byte 0x02023F20 +_080476DC: .4byte 0x02023EAC +_080476E0: .4byte 0x02023EB8 + thumb_func_end atk07_adjustnormaldamage + + thumb_func_start atk08_adjustnormaldamage2 +atk08_adjustnormaldamage2: @ 0x080476E4 + push {r4, r5, r6, r7, lr} + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xf + ands r0, r1 + movs r1, #0x64 + subs r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r4, _0804773C + ldr r0, [r4] + cmp r0, #0 + beq _08047716 + muls r0, r1, r0 + str r0, [r4] + movs r1, #0x64 + bl __divsi3 + str r0, [r4] + cmp r0, #0 + bne _08047716 + movs r0, #1 + str r0, [r4] +_08047716: + ldr r7, _08047740 + ldr r6, _08047744 + ldrb r2, [r6] + movs r5, #0x58 + adds r0, r2, #0 + muls r0, r5, r0 + adds r1, r0, r7 + ldrh r0, [r1, #0x2e] + cmp r0, #0xaf + bne _0804774C + ldr r1, _08047748 + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r4, [r0, #7] + ldrb r6, [r0, #0x1a] + b _08047766 + .align 2, 0 +_0804773C: .4byte 0x02023E94 +_08047740: .4byte 0x02023D28 +_08047744: .4byte 0x02023EB0 +_08047748: .4byte 0x020240A8 +_0804774C: + ldrh r0, [r1, #0x2e] + bl sub_080D6CF8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldrb r0, [r6] + muls r0, r5, r0 + adds r0, r0, r7 + ldrh r0, [r0, #0x2e] + bl sub_080D6D1C + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_08047766: + ldr r1, _0804780C + ldr r5, _08047810 + ldrb r0, [r5] + strb r0, [r1] + cmp r4, #0x27 + bne _080477A4 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r6 + bhs _080477A4 + ldrb r0, [r5] + movs r1, #0x27 + bl RecordItemEffectBattle + ldr r2, _08047814 + ldrb r1, [r5] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0] +_080477A4: + ldr r4, _08047818 + ldr r6, _08047810 + ldrb r2, [r6] + movs r7, #0x58 + adds r3, r2, #0 + muls r3, r7, r3 + adds r0, r4, #0 + adds r0, #0x50 + adds r0, r3, r0 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + bne _08047850 + ldr r5, _0804781C + lsls r0, r2, #4 + adds r0, r0, r5 + ldrb r0, [r0] + lsls r0, r0, #0x1e + cmp r0, #0 + blt _080477E2 + ldr r0, _08047814 + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1] + lsrs r0, r0, #7 + cmp r0, #0 + beq _08047850 +_080477E2: + adds r0, r3, r4 + ldrh r1, [r0, #0x28] + ldr r2, _08047820 + ldr r0, [r2] + cmp r1, r0 + bgt _08047850 + subs r0, r1, #1 + str r0, [r2] + ldrb r3, [r6] + lsls r0, r3, #4 + adds r0, r0, r5 + ldrb r0, [r0] + lsls r0, r0, #0x1e + cmp r0, #0 + bge _08047828 + ldr r0, _08047824 + ldrb r1, [r0] + movs r2, #0x40 + orrs r1, r2 + strb r1, [r0] + b _08047850 + .align 2, 0 +_0804780C: .4byte 0x02023EB3 +_08047810: .4byte 0x02023EB0 +_08047814: .4byte 0x02024020 +_08047818: .4byte 0x02023D28 +_0804781C: .4byte 0x02023FE0 +_08047820: .4byte 0x02023E94 +_08047824: .4byte 0x02023F20 +_08047828: + ldr r0, _08047860 + lsls r1, r3, #2 + adds r1, r1, r3 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1] + lsrs r0, r0, #7 + cmp r0, #0 + beq _08047850 + ldr r2, _08047864 + ldrb r0, [r2] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08047868 + adds r0, r3, #0 + muls r0, r7, r0 + adds r0, r0, r4 + ldrh r0, [r0, #0x2e] + strh r0, [r1] +_08047850: + ldr r1, _0804786C + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08047860: .4byte 0x02024020 +_08047864: .4byte 0x02023F20 +_08047868: .4byte 0x02023EAC +_0804786C: .4byte 0x02023EB8 + thumb_func_end atk08_adjustnormaldamage2 + + thumb_func_start atk09_attackanimation +atk09_attackanimation: @ 0x08047870 + push {r4, r5, r6, r7, lr} + sub sp, #0x10 + ldr r0, _080478B4 + ldr r0, [r0] + cmp r0, #0 + beq _0804787E + b _080479F6 +_0804787E: + ldr r0, _080478B8 + ldr r0, [r0] + movs r1, #0x80 + ands r0, r1 + ldr r5, _080478BC + cmp r0, #0 + beq _080478CC + ldrh r0, [r5] + cmp r0, #0x90 + beq _080478CC + cmp r0, #0xa4 + beq _080478CC + ldr r4, _080478C0 + ldr r0, [r4] + adds r0, #1 + bl BattleScriptPush + ldr r0, _080478C4 + str r0, [r4] + ldr r1, _080478C8 + ldrb r0, [r1, #0x18] + adds r0, #1 + strb r0, [r1, #0x18] + ldrb r0, [r1, #0x19] + adds r0, #1 + strb r0, [r1, #0x19] + b _080479F6 + .align 2, 0 +_080478B4: .4byte 0x02023D0C +_080478B8: .4byte 0x02023F24 +_080478BC: .4byte 0x02023E8E +_080478C0: .4byte 0x02023EB8 +_080478C4: .4byte 0x08289141 +_080478C8: .4byte 0x02024118 +_080478CC: + ldr r2, _08047938 + ldrh r1, [r5] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #6] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + bne _080478F2 + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _080478F2 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080478FA +_080478F2: + ldr r0, _0804793C + ldrb r0, [r0, #0x19] + cmp r0, #0 + bne _080479C8 +_080478FA: + ldr r0, _08047940 + ldrb r1, [r0] + movs r0, #0x29 + ands r0, r1 + cmp r0, #0 + bne _080479E8 + ldr r1, _08047944 + ldr r3, _08047948 + ldrb r0, [r3] + strb r0, [r1] + ldr r2, _0804794C + ldr r0, _08047950 + ldrb r1, [r0] + movs r0, #0x58 + adds r4, r1, #0 + muls r4, r0, r4 + adds r0, r2, #0 + adds r0, #0x50 + adds r0, r4, r0 + ldr r1, [r0] + movs r0, #0x80 + lsls r0, r0, #0x11 + ands r1, r0 + adds r7, r3, #0 + mov ip, r2 + cmp r1, #0 + beq _08047958 + ldr r0, _08047954 + ldrb r6, [r0] + b _08047982 + .align 2, 0 +_08047938: .4byte 0x082ED220 +_0804793C: .4byte 0x02024118 +_08047940: .4byte 0x02023F20 +_08047944: .4byte 0x02023D08 +_08047948: .4byte 0x02023EAF +_0804794C: .4byte 0x02023D28 +_08047950: .4byte 0x02023EB0 +_08047954: .4byte 0x02023EB6 +_08047958: + ldr r3, _08047978 + ldrb r0, [r3] + cmp r0, #1 + bls _08047980 + mov r1, ip + adds r0, r4, r1 + ldrh r2, [r0, #0x28] + ldr r0, _0804797C + ldr r1, [r0] + movs r6, #1 + adds r4, r0, #0 + cmp r2, r1 + ble _08047984 + ldrb r6, [r3] + b _08047984 + .align 2, 0 +_08047978: .4byte 0x02023EB6 +_0804797C: .4byte 0x02023E94 +_08047980: + ldrb r6, [r3] +_08047982: + ldr r4, _080479D4 +_08047984: + ldrh r1, [r5] + ldr r5, _080479D8 + ldrb r2, [r5, #0x18] + ldr r0, _080479DC + ldrh r3, [r0] + ldr r0, [r4] + str r0, [sp] + ldrb r4, [r7] + movs r0, #0x58 + muls r0, r4, r0 + add r0, ip + adds r0, #0x2b + ldrb r0, [r0] + str r0, [sp, #4] + ldrb r4, [r7] + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + ldr r4, _080479E0 + adds r0, r0, r4 + str r0, [sp, #8] + str r6, [sp, #0xc] + movs r0, #0 + bl BtlController_EmitMoveAnimation + ldrb r0, [r5, #0x18] + adds r0, #1 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0x19] + adds r0, #1 + strb r0, [r5, #0x19] + ldrb r0, [r7] + bl MarkBattlerForControllerExec +_080479C8: + ldr r1, _080479E4 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + b _080479F6 + .align 2, 0 +_080479D4: .4byte 0x02023E94 +_080479D8: .4byte 0x02024118 +_080479DC: .4byte 0x02024184 +_080479E0: .4byte 0x02023F60 +_080479E4: .4byte 0x02023EB8 +_080479E8: + ldr r4, _08047A00 + ldr r0, [r4] + adds r0, #1 + bl BattleScriptPush + ldr r0, _08047A04 + str r0, [r4] +_080479F6: + add sp, #0x10 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08047A00: .4byte 0x02023EB8 +_08047A04: .4byte 0x08289141 + thumb_func_end atk09_attackanimation + + thumb_func_start atk3A_waitstate +atk3A_waitstate: @ 0x08047A08 + push {lr} + ldr r0, _08047A20 + ldr r0, [r0] + cmp r0, #0 + bne _08047A1A + ldr r1, _08047A24 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] +_08047A1A: + pop {r0} + bx r0 + .align 2, 0 +_08047A20: .4byte 0x02023D0C +_08047A24: .4byte 0x02023EB8 + thumb_func_end atk3A_waitstate + + thumb_func_start atk0B_healthbarupdate +atk0B_healthbarupdate: @ 0x08047A28 + push {r4, lr} + ldr r0, _08047A8C + ldr r0, [r0] + cmp r0, #0 + bne _08047AEA + ldr r0, _08047A90 + ldrb r1, [r0] + movs r0, #0x29 + ands r0, r1 + cmp r0, #0 + bne _08047AE2 + ldr r0, _08047A94 + ldr r0, [r0] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + ldr r2, _08047A98 + strb r0, [r2] + ldr r1, _08047A9C + ldrb r2, [r2] + movs r0, #0x58 + muls r0, r2, r0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + beq _08047AA8 + ldr r0, _08047AA0 + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #0xa] + cmp r0, #0 + beq _08047AA8 + ldr r0, _08047AA4 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08047AA8 + movs r0, #0x80 + adds r1, r2, #0 + bl PrepareStringBattle + b _08047AE2 + .align 2, 0 +_08047A8C: .4byte 0x02023D0C +_08047A90: .4byte 0x02023F20 +_08047A94: .4byte 0x02023EB8 +_08047A98: .4byte 0x02023D08 +_08047A9C: .4byte 0x02023D28 +_08047AA0: .4byte 0x02023F60 +_08047AA4: .4byte 0x02023F24 +_08047AA8: + ldr r0, _08047AF0 + ldr r0, [r0] + ldr r1, _08047AF4 + cmp r0, r1 + bgt _08047AB6 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 +_08047AB6: + movs r0, #0 + bl BtlController_EmitHealthBarUpdate + ldr r4, _08047AF8 + ldrb r0, [r4] + bl MarkBattlerForControllerExec + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08047AE2 + ldr r0, _08047AF0 + ldr r0, [r0] + cmp r0, #0 + ble _08047AE2 + ldr r0, _08047AFC + ldrb r1, [r0, #5] + movs r2, #1 + orrs r1, r2 + strb r1, [r0, #5] +_08047AE2: + ldr r1, _08047B00 + ldr r0, [r1] + adds r0, #2 + str r0, [r1] +_08047AEA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08047AF0: .4byte 0x02023E94 +_08047AF4: .4byte 0x00002710 +_08047AF8: .4byte 0x02023D08 +_08047AFC: .4byte 0x03005A70 +_08047B00: .4byte 0x02023EB8 + thumb_func_end atk0B_healthbarupdate + + thumb_func_start atk0C_datahpupdate +atk0C_datahpupdate: @ 0x08047B04 + push {r4, r5, r6, r7, lr} + sub sp, #4 + ldr r0, _08047B2C + ldr r0, [r0] + cmp r0, #0 + beq _08047B12 + b _08047EE2 +_08047B12: + ldr r0, _08047B30 + ldr r0, [r0] + ldrb r1, [r0, #0x13] + cmp r1, #0 + beq _08047B34 + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08047B34 + movs r6, #0x3f + ands r6, r1 + b _08047B44 + .align 2, 0 +_08047B2C: .4byte 0x02023D0C +_08047B30: .4byte 0x02024140 +_08047B34: + ldr r2, _08047BD0 + ldr r0, _08047BD4 + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r6, [r0, #2] +_08047B44: + ldr r0, _08047BD8 + ldrb r1, [r0] + movs r0, #0x29 + ands r0, r1 + cmp r0, #0 + beq _08047B52 + b _08047EB4 +_08047B52: + ldr r0, _08047BDC + ldr r0, [r0] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + ldr r7, _08047BE0 + strb r0, [r7] + ldr r1, _08047BE4 + ldrb r2, [r7] + movs r0, #0x58 + muls r0, r2, r0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + beq _08047C68 + ldr r0, _08047BE8 + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r4, r1, r0 + ldrb r1, [r4, #0xa] + mov ip, r0 + cmp r1, #0 + beq _08047C68 + ldr r0, _08047BEC + ldr r3, [r0] + movs r0, #0x80 + lsls r0, r0, #1 + ands r3, r0 + cmp r3, #0 + bne _08047C68 + adds r5, r1, #0 + ldr r6, _08047BF0 + ldr r4, [r6] + cmp r5, r4 + blt _08047BFC + ldr r0, _08047BF4 + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r0, #4 + adds r1, r1, r0 + ldr r0, [r1] + cmp r0, #0 + bne _08047BB6 + str r4, [r1] +_08047BB6: + ldrb r0, [r7] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + add r1, ip + ldr r2, [r6] + ldrb r0, [r1, #0xa] + subs r0, r0, r2 + strb r0, [r1, #0xa] + ldr r1, _08047BF8 + ldr r0, [r6] + str r0, [r1] + b _08047C2C + .align 2, 0 +_08047BD0: .4byte 0x082ED220 +_08047BD4: .4byte 0x02023E8E +_08047BD8: .4byte 0x02023F20 +_08047BDC: .4byte 0x02023EB8 +_08047BE0: .4byte 0x02023D08 +_08047BE4: .4byte 0x02023D28 +_08047BE8: .4byte 0x02023F60 +_08047BEC: .4byte 0x02023F24 +_08047BF0: .4byte 0x02023E94 +_08047BF4: .4byte 0x02024020 +_08047BF8: .4byte 0x02023E98 +_08047BFC: + ldr r0, _08047C54 + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r0, #4 + adds r1, r1, r0 + ldr r0, [r1] + cmp r0, #0 + bne _08047C10 + str r5, [r1] +_08047C10: + ldr r2, _08047C58 + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + add r0, ip + ldrb r0, [r0, #0xa] + str r0, [r2] + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + add r0, ip + strb r3, [r0, #0xa] +_08047C2C: + ldr r0, _08047C5C + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + add r0, ip + ldrb r0, [r0, #0xa] + cmp r0, #0 + beq _08047C40 + b _08047EDA +_08047C40: + ldr r4, _08047C60 + ldr r0, [r4] + adds r0, #2 + str r0, [r4] + bl BattleScriptPushCursor + ldr r0, _08047C64 + str r0, [r4] + b _08047EE2 + .align 2, 0 +_08047C54: .4byte 0x02024020 +_08047C58: .4byte 0x02023E98 +_08047C5C: .4byte 0x02023D08 +_08047C60: .4byte 0x02023EB8 +_08047C64: .4byte 0x08289C83 +_08047C68: + ldr r0, _08047CA8 + ldr r2, [r0] + ldr r1, _08047CAC + ands r2, r1 + str r2, [r0] + ldr r1, _08047CB0 + ldr r5, [r1] + mov ip, r0 + adds r7, r1, #0 + cmp r5, #0 + bge _08047CBC + ldr r4, _08047CB4 + ldr r2, _08047CB8 + ldrb r0, [r2] + movs r3, #0x58 + adds r1, r0, #0 + muls r1, r3, r1 + adds r1, r1, r4 + ldrh r0, [r1, #0x28] + subs r0, r0, r5 + strh r0, [r1, #0x28] + ldrb r0, [r2] + muls r0, r3, r0 + adds r1, r0, r4 + ldrh r3, [r1, #0x2c] + ldrh r0, [r1, #0x28] + adds r5, r2, #0 + cmp r0, r3 + bhi _08047CA4 + b _08047E7A +_08047CA4: + strh r3, [r1, #0x28] + b _08047E7A + .align 2, 0 +_08047CA8: .4byte 0x02023F24 +_08047CAC: .4byte 0xFFFFFEFF +_08047CB0: .4byte 0x02023E94 +_08047CB4: .4byte 0x02023D28 +_08047CB8: .4byte 0x02023D08 +_08047CBC: + movs r0, #0x20 + ands r0, r2 + cmp r0, #0 + beq _08047CD8 + movs r0, #0x21 + rsbs r0, r0, #0 + ands r2, r0 + mov r0, ip + str r2, [r0] + ldr r5, _08047CD4 + b _08047D20 + .align 2, 0 +_08047CD4: .4byte 0x02023D08 +_08047CD8: + ldr r0, _08047D00 + ldr r2, _08047D04 + ldrb r1, [r2] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + adds r0, r0, r5 + str r0, [r1] + ldr r0, _08047D08 + ldr r0, [r0] + ldrb r0, [r0, #1] + adds r5, r2, #0 + cmp r0, #0 + bne _08047D14 + ldr r1, _08047D0C + ldrb r0, [r5] + adds r0, r0, r1 + ldr r1, _08047D10 + b _08047D1C + .align 2, 0 +_08047D00: .4byte 0x02023E9C +_08047D04: .4byte 0x02023D08 +_08047D08: .4byte 0x02023EB8 +_08047D0C: .4byte 0x02023F2C +_08047D10: .4byte 0x02023EAF +_08047D14: + ldr r1, _08047D40 + ldrb r0, [r5] + adds r0, r0, r1 + ldr r1, _08047D44 +_08047D1C: + ldrb r1, [r1] + strb r1, [r0] +_08047D20: + ldr r4, _08047D48 + ldrb r0, [r5] + movs r3, #0x58 + muls r0, r3, r0 + adds r2, r0, r4 + ldrh r0, [r2, #0x28] + ldr r1, [r7] + cmp r0, r1 + ble _08047D50 + subs r0, r0, r1 + strh r0, [r2, #0x28] + ldr r0, _08047D4C + str r1, [r0] + adds r7, r0, #0 + b _08047D60 + .align 2, 0 +_08047D40: .4byte 0x02023F2C +_08047D44: .4byte 0x02023EB0 +_08047D48: .4byte 0x02023D28 +_08047D4C: .4byte 0x02023E98 +_08047D50: + ldr r2, _08047DD4 + str r0, [r2] + ldrb r0, [r5] + muls r0, r3, r0 + adds r0, r0, r4 + movs r1, #0 + strh r1, [r0, #0x28] + adds r7, r2, #0 +_08047D60: + ldr r2, _08047DD8 + ldrb r1, [r5] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r2, #4 + adds r3, r0, r1 + ldr r0, [r3] + adds r4, r2, #0 + cmp r0, #0 + bne _08047D88 + mov r1, ip + ldr r0, [r1] + movs r1, #0x80 + lsls r1, r1, #0xd + ands r0, r1 + cmp r0, #0 + bne _08047D88 + ldr r0, [r7] + str r0, [r3] +_08047D88: + cmp r6, #8 + bhi _08047E10 + mov r1, ip + ldr r0, [r1] + movs r1, #0x80 + lsls r1, r1, #0xd + ands r0, r1 + cmp r0, #0 + bne _08047E0C + ldr r0, _08047DDC + ldrh r0, [r0] + cmp r0, #0xdc + beq _08047E0C + ldr r3, _08047DE0 + ldrb r0, [r5] + lsls r0, r0, #4 + adds r1, r3, #4 + adds r0, r0, r1 + ldr r2, [r7] + str r2, [r0] + ldrb r1, [r5] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #8 + adds r0, r0, r1 + str r2, [r0] + ldr r0, _08047DE4 + ldr r0, [r0] + ldrb r0, [r0, #1] + cmp r0, #0 + bne _08047DEC + ldrb r0, [r5] + lsls r0, r0, #4 + adds r0, r0, r3 + ldr r2, _08047DE8 + b _08047DF4 + .align 2, 0 +_08047DD4: .4byte 0x02023E98 +_08047DD8: .4byte 0x02024020 +_08047DDC: .4byte 0x02023E8E +_08047DE0: .4byte 0x02023FE0 +_08047DE4: .4byte 0x02023EB8 +_08047DE8: .4byte 0x02023EAF +_08047DEC: + ldrb r0, [r5] + lsls r0, r0, #4 + adds r0, r0, r3 + ldr r2, _08047E08 +_08047DF4: + ldrb r1, [r2] + strb r1, [r0, #0xc] + ldrb r1, [r5] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r1, [r2] + strb r1, [r0, #0x10] + b _08047E7A + .align 2, 0 +_08047E08: .4byte 0x02023EB0 +_08047E0C: + cmp r6, #8 + bls _08047E7A +_08047E10: + mov r1, ip + ldr r0, [r1] + movs r1, #0x80 + lsls r1, r1, #0xd + ands r0, r1 + cmp r0, #0 + bne _08047E7A + ldr r3, _08047E54 + ldrb r0, [r5] + lsls r0, r0, #4 + adds r1, r3, #0 + adds r1, #8 + adds r0, r0, r1 + ldr r2, [r7] + str r2, [r0] + ldrb r1, [r5] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0xc + adds r0, r0, r1 + str r2, [r0] + ldr r0, _08047E58 + ldr r0, [r0] + ldrb r0, [r0, #1] + cmp r0, #0 + bne _08047E60 + ldrb r0, [r5] + lsls r0, r0, #4 + adds r0, r0, r3 + ldr r2, _08047E5C + b _08047E68 + .align 2, 0 +_08047E54: .4byte 0x02023FE0 +_08047E58: .4byte 0x02023EB8 +_08047E5C: .4byte 0x02023EAF +_08047E60: + ldrb r0, [r5] + lsls r0, r0, #4 + adds r0, r0, r3 + ldr r2, _08047EA8 +_08047E68: + ldrb r1, [r2] + strb r1, [r0, #0xd] + ldrb r1, [r5] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r1, [r2] + strb r1, [r0, #0x11] +_08047E7A: + mov r1, ip + ldr r0, [r1] + ldr r1, _08047EAC + ands r0, r1 + mov r1, ip + str r0, [r1] + ldrb r1, [r5] + movs r0, #0x58 + muls r0, r1, r0 + ldr r1, _08047EB0 + adds r0, r0, r1 + str r0, [sp] + movs r0, #0 + movs r1, #0x2a + movs r2, #0 + movs r3, #2 + bl BtlController_EmitSetMonData + ldrb r0, [r5] + bl MarkBattlerForControllerExec + b _08047EDA + .align 2, 0 +_08047EA8: .4byte 0x02023EB0 +_08047EAC: .4byte 0xFFEFFFFF +_08047EB0: .4byte 0x02023D50 +_08047EB4: + ldr r0, _08047EEC + ldr r0, [r0] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + ldr r1, _08047EF0 + strb r0, [r1] + ldr r2, _08047EF4 + ldrb r1, [r1] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #4 + adds r1, r0, r2 + ldr r0, [r1] + cmp r0, #0 + bne _08047EDA + ldr r0, _08047EF8 + str r0, [r1] +_08047EDA: + ldr r1, _08047EEC + ldr r0, [r1] + adds r0, #2 + str r0, [r1] +_08047EE2: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08047EEC: .4byte 0x02023EB8 +_08047EF0: .4byte 0x02023D08 +_08047EF4: .4byte 0x02024020 +_08047EF8: .4byte 0x0000FFFF + thumb_func_end atk0C_datahpupdate + + thumb_func_start atk0D_critmessage +atk0D_critmessage: @ 0x08047EFC + push {lr} + ldr r0, _08047F38 + ldr r0, [r0] + cmp r0, #0 + bne _08047F32 + ldr r0, _08047F3C + ldrb r0, [r0] + cmp r0, #2 + bne _08047F2A + ldr r0, _08047F40 + ldrb r1, [r0] + movs r0, #0x29 + ands r0, r1 + cmp r0, #0 + bne _08047F2A + ldr r0, _08047F44 + ldrb r1, [r0] + movs r0, #0xd9 + bl PrepareStringBattle + ldr r1, _08047F48 + movs r0, #1 + strb r0, [r1, #7] +_08047F2A: + ldr r1, _08047F4C + ldr r0, [r1] + adds r0, #1 + str r0, [r1] +_08047F32: + pop {r0} + bx r0 + .align 2, 0 +_08047F38: .4byte 0x02023D0C +_08047F3C: .4byte 0x02023EB5 +_08047F40: .4byte 0x02023F20 +_08047F44: .4byte 0x02023EAF +_08047F48: .4byte 0x02023FD6 +_08047F4C: .4byte 0x02023EB8 + thumb_func_end atk0D_critmessage + + thumb_func_start atk0E_effectivenesssound +atk0E_effectivenesssound: @ 0x08047F50 + push {r4, lr} + ldr r0, _08047F88 + ldr r0, [r0] + cmp r0, #0 + bne _08048010 + ldr r4, _08047F8C + ldr r0, _08047F90 + ldrb r0, [r0] + strb r0, [r4] + ldr r1, _08047F94 + ldrb r2, [r1] + movs r0, #1 + ands r0, r2 + cmp r0, #0 + bne _08048008 + movs r0, #0xfe + ands r0, r2 + cmp r0, #0x10 + beq _08047FC2 + cmp r0, #0x10 + bgt _08047F9E + cmp r0, #4 + beq _08047FB2 + cmp r0, #4 + bgt _08047F98 + cmp r0, #2 + beq _08047FAC + b _08047FC2 + .align 2, 0 +_08047F88: .4byte 0x02023D0C +_08047F8C: .4byte 0x02023D08 +_08047F90: .4byte 0x02023EB0 +_08047F94: .4byte 0x02023F20 +_08047F98: + cmp r0, #8 + beq _08048008 + b _08047FC2 +_08047F9E: + cmp r0, #0x40 + beq _08047FC2 + cmp r0, #0x40 + bgt _08047FC2 + cmp r0, #0x20 + beq _08048008 + b _08047FC2 +_08047FAC: + movs r0, #0 + movs r1, #0xe + b _08047FB6 +_08047FB2: + movs r0, #0 + movs r1, #0xc +_08047FB6: + bl BtlController_EmitPlaySE + ldrb r0, [r4] + bl MarkBattlerForControllerExec + b _08048008 +_08047FC2: + ldrb r1, [r1] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08047FD2 + movs r0, #0 + movs r1, #0xe + b _08047FDE +_08047FD2: + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08047FF0 + movs r0, #0 + movs r1, #0xc +_08047FDE: + bl BtlController_EmitPlaySE + ldr r0, _08047FEC + ldrb r0, [r0] + bl MarkBattlerForControllerExec + b _08048008 + .align 2, 0 +_08047FEC: .4byte 0x02023D08 +_08047FF0: + movs r0, #0x28 + ands r0, r1 + cmp r0, #0 + bne _08048008 + movs r0, #0 + movs r1, #0xd + bl BtlController_EmitPlaySE + ldr r0, _08048018 + ldrb r0, [r0] + bl MarkBattlerForControllerExec +_08048008: + ldr r1, _0804801C + ldr r0, [r1] + adds r0, #1 + str r0, [r1] +_08048010: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08048018: .4byte 0x02023D08 +_0804801C: .4byte 0x02023EB8 + thumb_func_end atk0E_effectivenesssound + + thumb_func_start atk0F_resultmessage +atk0F_resultmessage: @ 0x08048020 + push {r4, r5, r6, r7, lr} + movs r3, #0 + ldr r0, _0804805C + ldr r0, [r0] + cmp r0, #0 + beq _0804802E + b _080481C0 +_0804802E: + ldr r1, _08048060 + ldrb r2, [r1] + movs r4, #1 + adds r0, r4, #0 + ands r0, r2 + adds r6, r1, #0 + ldr r7, _08048064 + cmp r0, #0 + beq _0804806C + movs r0, #8 + ands r0, r2 + cmp r0, #0 + beq _0804804E + ldrb r0, [r7, #6] + cmp r0, #2 + bls _0804806C +_0804804E: + ldr r1, _08048068 + ldrb r0, [r7, #6] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r3, [r0] + strb r4, [r7, #7] + b _080481AA + .align 2, 0 +_0804805C: .4byte 0x02023D0C +_08048060: .4byte 0x02023F20 +_08048064: .4byte 0x02023FD6 +_08048068: .4byte 0x085AB9A0 +_0804806C: + movs r0, #1 + strb r0, [r7, #7] + ldrb r5, [r6] + movs r0, #0xfe + ands r0, r5 + cmp r0, #0x10 + beq _080480B0 + cmp r0, #0x10 + bgt _08048092 + cmp r0, #4 + beq _080480AC + cmp r0, #4 + bgt _0804808C + cmp r0, #2 + beq _080480A8 + b _080480F8 +_0804808C: + cmp r0, #8 + beq _08048104 + b _080480F8 +_08048092: + cmp r0, #0x40 + beq _080480B4 + cmp r0, #0x40 + bgt _080480A2 + cmp r0, #0x20 + bne _080480A0 + b _080481A4 +_080480A0: + b _080480F8 +_080480A2: + cmp r0, #0x80 + beq _080480B8 + b _080480F8 +_080480A8: + movs r3, #0xde + b _080481AE +_080480AC: + movs r3, #0xdd + b _080481AE +_080480B0: + movs r3, #0xda + b _080481AE +_080480B4: + movs r3, #0x99 + b _080481AE +_080480B8: + ldr r4, _080480E0 + ldr r2, _080480E4 + ldr r3, _080480E8 + ldrb r1, [r3] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + ldrh r0, [r0, #0x2e] + strh r0, [r4] + ldr r1, _080480EC + ldrb r0, [r3] + strb r0, [r1] + movs r0, #0x3f + ands r0, r5 + strb r0, [r6] + bl BattleScriptPushCursor + ldr r1, _080480F0 + ldr r0, _080480F4 + b _080481BE + .align 2, 0 +_080480E0: .4byte 0x02023EAC +_080480E4: .4byte 0x02023D28 +_080480E8: .4byte 0x02023EB0 +_080480EC: .4byte 0x02023EB3 +_080480F0: .4byte 0x02023EB8 +_080480F4: .4byte 0x08289D9E +_080480F8: + adds r2, r6, #0 + ldrb r5, [r2] + movs r0, #8 + ands r0, r5 + cmp r0, #0 + beq _08048108 +_08048104: + movs r3, #0x1b + b _080481AE +_08048108: + movs r0, #0x10 + ands r0, r5 + cmp r0, #0 + beq _08048130 + movs r0, #0xef + ands r0, r5 + movs r1, #0xfd + ands r0, r1 + movs r1, #0xfb + ands r0, r1 + strb r0, [r2] + bl BattleScriptPushCursor + ldr r1, _08048128 + ldr r0, _0804812C + b _080481BE + .align 2, 0 +_08048128: .4byte 0x02023EB8 +_0804812C: .4byte 0x08289756 +_08048130: + movs r0, #0x40 + ands r0, r5 + cmp r0, #0 + beq _08048150 + movs r0, #0x3f + ands r0, r5 + strb r0, [r2] + bl BattleScriptPushCursor + ldr r1, _08048148 + ldr r0, _0804814C + b _080481BE + .align 2, 0 +_08048148: .4byte 0x02023EB8 +_0804814C: .4byte 0x0828974F +_08048150: + movs r0, #0x80 + ands r0, r5 + cmp r0, #0 + beq _08048198 + ldr r4, _08048180 + ldr r2, _08048184 + ldr r3, _08048188 + ldrb r1, [r3] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + ldrh r0, [r0, #0x2e] + strh r0, [r4] + ldr r1, _0804818C + ldrb r0, [r3] + strb r0, [r1] + movs r0, #0x3f + ands r0, r5 + strb r0, [r6] + bl BattleScriptPushCursor + ldr r1, _08048190 + ldr r0, _08048194 + b _080481BE + .align 2, 0 +_08048180: .4byte 0x02023EAC +_08048184: .4byte 0x02023D28 +_08048188: .4byte 0x02023EB0 +_0804818C: .4byte 0x02023EB3 +_08048190: .4byte 0x02023EB8 +_08048194: .4byte 0x08289D9E +_08048198: + movs r0, #0x20 + ands r0, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _080481A8 +_080481A4: + movs r3, #0xe5 + b _080481AE +_080481A8: + strb r0, [r7, #7] +_080481AA: + cmp r3, #0 + beq _080481B8 +_080481AE: + adds r0, r3, #0 + ldr r1, _080481C8 + ldrb r1, [r1] + bl PrepareStringBattle +_080481B8: + ldr r1, _080481CC + ldr r0, [r1] + adds r0, #1 +_080481BE: + str r0, [r1] +_080481C0: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080481C8: .4byte 0x02023EAF +_080481CC: .4byte 0x02023EB8 + thumb_func_end atk0F_resultmessage + + thumb_func_start atk10_printstring +atk10_printstring: @ 0x080481D0 + push {r4, lr} + ldr r0, _08048200 + ldr r0, [r0] + cmp r0, #0 + bne _080481FA + ldr r4, _08048204 + ldr r1, [r4] + ldrb r0, [r1, #1] + ldrb r1, [r1, #2] + lsls r1, r1, #8 + orrs r0, r1 + ldr r1, _08048208 + ldrb r1, [r1] + bl PrepareStringBattle + ldr r0, [r4] + adds r0, #3 + str r0, [r4] + ldr r1, _0804820C + movs r0, #1 + strb r0, [r1, #7] +_080481FA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08048200: .4byte 0x02023D0C +_08048204: .4byte 0x02023EB8 +_08048208: .4byte 0x02023EAF +_0804820C: .4byte 0x02023FD6 + thumb_func_end atk10_printstring + + thumb_func_start atk11_printselectionstring +atk11_printselectionstring: @ 0x08048210 + push {r4, r5, lr} + ldr r5, _08048244 + ldr r0, _08048248 + ldrb r0, [r0] + strb r0, [r5] + ldr r4, _0804824C + ldr r0, [r4] + ldrb r1, [r0, #1] + ldrb r0, [r0, #2] + lsls r0, r0, #8 + orrs r1, r0 + movs r0, #0 + bl BtlController_EmitPrintSelectionString + ldrb r0, [r5] + bl MarkBattlerForControllerExec + ldr r0, [r4] + adds r0, #3 + str r0, [r4] + ldr r1, _08048250 + movs r0, #1 + strb r0, [r1, #7] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08048244: .4byte 0x02023D08 +_08048248: .4byte 0x02023EAF +_0804824C: .4byte 0x02023EB8 +_08048250: .4byte 0x02023FD6 + thumb_func_end atk11_printselectionstring + + thumb_func_start atk12_waitmessage +atk12_waitmessage: @ 0x08048254 + push {r4, r5, r6, lr} + ldr r0, _08048270 + ldr r4, [r0] + cmp r4, #0 + bne _080482A2 + ldr r6, _08048274 + ldrb r0, [r6, #7] + cmp r0, #0 + bne _0804827C + ldr r1, _08048278 + ldr r0, [r1] + adds r0, #3 + str r0, [r1] + b _080482A2 + .align 2, 0 +_08048270: .4byte 0x02023D0C +_08048274: .4byte 0x02023FD6 +_08048278: .4byte 0x02023EB8 +_0804827C: + ldr r5, _080482A8 + ldr r2, [r5] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldr r3, _080482AC + ldrh r0, [r3] + adds r0, #1 + strh r0, [r3] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r1 + blo _080482A2 + movs r1, #0 + strh r4, [r3] + adds r0, r2, #3 + str r0, [r5] + strb r1, [r6, #7] +_080482A2: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080482A8: .4byte 0x02023EB8 +_080482AC: .4byte 0x02023FD0 + thumb_func_end atk12_waitmessage + + thumb_func_start atk13_printfromtable +atk13_printfromtable: @ 0x080482B0 + push {r4, r5, lr} + ldr r0, _080482F4 + ldr r0, [r0] + cmp r0, #0 + bne _080482EE + ldr r4, _080482F8 + ldr r2, [r4] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + ldr r5, _080482FC + ldrb r0, [r5, #5] + lsls r0, r0, #1 + adds r1, r1, r0 + ldrh r0, [r1] + ldr r1, _08048300 + ldrb r1, [r1] + bl PrepareStringBattle + ldr r0, [r4] + adds r0, #5 + str r0, [r4] + movs r0, #1 + strb r0, [r5, #7] +_080482EE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080482F4: .4byte 0x02023D0C +_080482F8: .4byte 0x02023EB8 +_080482FC: .4byte 0x02023FD6 +_08048300: .4byte 0x02023EAF + thumb_func_end atk13_printfromtable + + thumb_func_start atk14_printselectionstringfromtable +atk14_printselectionstringfromtable: @ 0x08048304 + push {r4, r5, r6, lr} + ldr r0, _08048354 + ldr r0, [r0] + cmp r0, #0 + bne _0804834E + ldr r5, _08048358 + ldr r2, [r5] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + ldr r6, _0804835C + ldrb r0, [r6, #5] + lsls r0, r0, #1 + adds r1, r1, r0 + ldr r4, _08048360 + ldr r0, _08048364 + ldrb r0, [r0] + strb r0, [r4] + ldrh r1, [r1] + movs r0, #0 + bl BtlController_EmitPrintSelectionString + ldrb r0, [r4] + bl MarkBattlerForControllerExec + ldr r0, [r5] + adds r0, #5 + str r0, [r5] + movs r0, #1 + strb r0, [r6, #7] +_0804834E: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08048354: .4byte 0x02023D0C +_08048358: .4byte 0x02023EB8 +_0804835C: .4byte 0x02023FD6 +_08048360: .4byte 0x02023D08 +_08048364: .4byte 0x02023EAF + thumb_func_end atk14_printselectionstringfromtable + + thumb_func_start GetBattlerTurnOrderNum +GetBattlerTurnOrderNum: @ 0x08048368 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + movs r1, #0 + ldr r0, _08048398 + ldrb r3, [r0] + cmp r1, r3 + bge _0804838E + ldr r4, _0804839C + ldrb r0, [r4] + cmp r0, r2 + beq _0804838E +_08048380: + adds r1, #1 + cmp r1, r3 + bge _0804838E + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, r2 + bne _08048380 +_0804838E: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08048398: .4byte 0x02023D10 +_0804839C: .4byte 0x02023D22 + thumb_func_end GetBattlerTurnOrderNum + + thumb_func_start SetMoveEffect +SetMoveEffect: @ 0x080483A0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + movs r0, #0 + mov sl, r0 + movs r7, #0 + movs r1, #1 + str r1, [sp, #4] + ldr r1, _080483E4 + ldrb r3, [r1, #3] + movs r0, #0x40 + ands r0, r3 + cmp r0, #0 + beq _080483F8 + ldr r2, _080483E8 + ldr r0, _080483EC + ldrb r0, [r0] + strb r0, [r2] + movs r0, #0xbf + ands r0, r3 + adds r3, r1, #0 + strb r0, [r3, #3] + movs r7, #0x40 + ldr r1, _080483F0 + ldr r0, _080483F4 + b _08048404 + .align 2, 0 +_080483E4: .4byte 0x02023FD6 +_080483E8: .4byte 0x02023EB2 +_080483EC: .4byte 0x02023EAF +_080483F0: .4byte 0x02024118 +_080483F4: .4byte 0x02023EB0 +_080483F8: + ldr r2, _08048448 + ldr r0, _0804844C + ldrb r0, [r0] + strb r0, [r2] + ldr r1, _08048450 + ldr r0, _08048454 +_08048404: + ldrb r0, [r0] + strb r0, [r1, #0x17] + mov sb, r2 + ldr r2, _08048458 + mov r4, sb + ldrb r1, [r4] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x13 + bne _08048468 + ldr r0, _0804845C + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #6 + ands r0, r1 + cmp r0, #0 + bne _08048468 + cmp r5, #0 + bne _08048468 + ldr r1, _08048460 + ldrb r0, [r1, #3] + cmp r0, #9 + bhi _08048468 + ldr r1, _08048464 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + ldr r2, _08048460 + strb r5, [r2, #3] + bl _080495F8 + .align 2, 0 +_08048448: .4byte 0x02023EB2 +_0804844C: .4byte 0x02023EB0 +_08048450: .4byte 0x02024118 +_08048454: .4byte 0x02023EAF +_08048458: .4byte 0x02023D28 +_0804845C: .4byte 0x02023F24 +_08048460: .4byte 0x02023FD6 +_08048464: .4byte 0x02023EB8 +_08048468: + mov r3, sb + ldrb r0, [r3] + bl GetBattlerPosition + ldr r2, _080484B0 + movs r1, #1 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r1, [r1] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080484C0 + ldr r0, _080484B4 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #6 + ands r0, r1 + cmp r0, #0 + bne _080484C0 + cmp r5, #0 + bne _080484C0 + ldr r0, _080484B8 + ldrb r1, [r0, #3] + cmp r1, #7 + bhi _080484C0 + ldr r1, _080484BC + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + ldr r4, _080484B8 + strb r5, [r4, #3] + bl _080495F8 + .align 2, 0 +_080484B0: .4byte 0x02023F32 +_080484B4: .4byte 0x02023F24 +_080484B8: .4byte 0x02023FD6 +_080484BC: .4byte 0x02023EB8 +_080484C0: + ldr r3, _080484F4 + ldr r2, _080484F8 + ldrb r1, [r2] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r3 + ldrh r4, [r0, #0x28] + mov sb, r2 + mov r8, r3 + cmp r4, #0 + bne _08048504 + ldr r1, _080484FC + ldrb r0, [r1, #3] + cmp r0, #0xb + beq _08048504 + cmp r0, #0x1f + beq _08048504 + ldr r1, _08048500 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + ldr r2, _080484FC + strb r4, [r2, #3] + bl _080495F8 + .align 2, 0 +_080484F4: .4byte 0x02023D28 +_080484F8: .4byte 0x02023EB2 +_080484FC: .4byte 0x02023FD6 +_08048500: .4byte 0x02023EB8 +_08048504: + mov r3, sb + ldrb r1, [r3] + movs r0, #0x58 + muls r0, r1, r0 + mov r1, r8 + adds r1, #0x50 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + beq _0804853C + cmp r7, #0x40 + beq _0804853C + ldr r0, _08048534 + ldr r1, [r0] + adds r1, #1 + str r1, [r0] + movs r0, #0 + ldr r4, _08048538 + strb r0, [r4, #3] + bl _080495F8 + .align 2, 0 +_08048534: .4byte 0x02023EB8 +_08048538: .4byte 0x02023FD6 +_0804853C: + ldr r1, _08048568 + ldrb r0, [r1, #3] + cmp r0, #6 + bls _08048546 + b _08048B80 +_08048546: + ldr r1, _0804856C + ldr r2, _08048568 + ldrb r0, [r2, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #0x10 + bne _08048558 + b _0804873C +_08048558: + cmp r0, #0x10 + bhi _08048570 + cmp r0, #7 + beq _0804858A + cmp r0, #8 + beq _08048640 + b _08048A34 + .align 2, 0 +_08048568: .4byte 0x02023FD6 +_0804856C: .4byte 0x082ECAB8 +_08048570: + cmp r0, #0x40 + bne _08048576 + b _080488C4 +_08048576: + cmp r0, #0x40 + bhi _08048582 + cmp r0, #0x20 + bne _08048580 + b _0804882A +_08048580: + b _08048A34 +_08048582: + cmp r0, #0x80 + bne _08048588 + b _08048942 +_08048588: + b _08048A34 +_0804858A: + mov r3, sb + ldrb r1, [r3] + movs r0, #0x58 + muls r0, r1, r0 + add r0, r8 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x2b + beq _080485EC + ldr r0, _080485E4 + movs r1, #0 + strb r1, [r0] + ldr r1, _080485E8 + ldrb r3, [r1] + adds r7, r0, #0 + mov ip, r1 + cmp r3, #0 + beq _080485F8 + mov r4, r8 + ldr r0, [r4, #0x50] + movs r1, #0x70 + ands r0, r1 + cmp r0, #0 + bne _080485F8 + adds r1, r7, #0 + mov r6, r8 + adds r6, #0x50 + movs r5, #0x58 + movs r4, #0x70 +_080485C4: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r3 + bhs _080485F8 + ldrb r0, [r7] + muls r0, r5, r0 + adds r0, r0, r6 + ldr r0, [r0] + ands r0, r4 + cmp r0, #0 + beq _080485C4 + b _080485F8 + .align 2, 0 +_080485E4: .4byte 0x02023D08 +_080485E8: .4byte 0x02023D10 +_080485EC: + ldr r0, _08048638 + ldr r2, _0804863C + ldrb r1, [r2] + strb r1, [r0] + adds r7, r0, #0 + mov ip, r2 +_080485F8: + mov r0, sb + ldrb r2, [r0] + movs r0, #0x58 + adds r1, r2, #0 + muls r1, r0, r1 + mov r0, r8 + adds r0, #0x4c + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, #0 + beq _08048610 + b _08048A34 +_08048610: + ldrb r0, [r7] + mov r3, ip + ldrb r3, [r3] + cmp r0, r3 + beq _0804861C + b _08048A34 +_0804861C: + mov r4, r8 + adds r0, r1, r4 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x48 + bne _0804862A + b _08048A34 +_0804862A: + cmp r0, #0xf + bne _08048630 + b _08048A34 +_08048630: + adds r0, r2, #0 + bl CancelMultiTurnMoves + b _08048A24 + .align 2, 0 +_08048638: .4byte 0x02023D08 +_0804863C: .4byte 0x02023D10 +_08048640: + mov r2, sb + ldrb r1, [r2] + movs r0, #0x58 + muls r0, r1, r0 + add r0, r8 + adds r0, #0x20 + ldrb r1, [r0] + cmp r1, #0x11 + bne _080486B0 + cmp r5, #1 + beq _0804865A + cmp r6, #0x80 + bne _080486B0 +_0804865A: + ldr r0, _08048698 + strb r1, [r0] + mov r3, sb + ldrb r0, [r3] + movs r1, #0x11 + bl RecordAbilityBattle + ldr r4, _0804869C + ldr r0, [r4] + adds r0, #1 + bl BattleScriptPush + ldr r0, _080486A0 + str r0, [r4] + ldr r2, _080486A4 + ldr r1, [r2] + movs r0, #0x80 + lsls r0, r0, #6 + ands r0, r1 + cmp r0, #0 + bne _08048686 + b _08048960 +_08048686: + movs r0, #1 + ldr r4, _080486A8 + strb r0, [r4, #5] +_0804868C: + ldr r0, _080486AC + ands r1, r0 + str r1, [r2] + bl _080495F2 + .align 2, 0 +_08048698: .4byte 0x02023EAE +_0804869C: .4byte 0x02023EB8 +_080486A0: .4byte 0x08289B71 +_080486A4: .4byte 0x02023F24 +_080486A8: .4byte 0x02023FD6 +_080486AC: .4byte 0xFFFFDFFF +_080486B0: + mov r2, sb + ldrb r0, [r2] + movs r1, #0x58 + muls r0, r1, r0 + add r0, r8 + adds r1, r0, #0 + adds r1, #0x21 + ldrb r1, [r1] + cmp r1, #3 + beq _080486D4 + adds r0, #0x22 + ldrb r0, [r0] + cmp r0, #3 + beq _080486D4 + cmp r1, #8 + beq _080486D4 + cmp r0, #8 + bne _080486EE +_080486D4: + ldr r0, _08048738 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #6 + ands r0, r1 + cmp r0, #0 + beq _080486EE + cmp r5, #1 + bne _080486E8 + b _080489A6 +_080486E8: + cmp r6, #0x80 + bne _080486EE + b _080489A6 +_080486EE: + mov r3, sb + ldrb r1, [r3] + movs r0, #0x58 + muls r1, r0, r1 + mov r4, r8 + adds r3, r1, r4 + adds r0, r3, #0 + adds r0, #0x21 + ldrb r4, [r0] + cmp r4, #3 + bne _08048706 + b _08048A34 +_08048706: + adds r0, #1 + ldrb r0, [r0] + cmp r0, #3 + bne _08048710 + b _08048A34 +_08048710: + cmp r4, #8 + bne _08048716 + b _08048A34 +_08048716: + cmp r0, #8 + bne _0804871C + b _08048A34 +_0804871C: + mov r0, r8 + adds r0, #0x4c + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, #0 + beq _0804872A + b _08048A34 +_0804872A: + adds r0, r3, #0 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x11 + bne _08048736 + b _08048A34 +_08048736: + b _08048A24 + .align 2, 0 +_08048738: .4byte 0x02023F24 +_0804873C: + mov r2, sb + ldrb r1, [r2] + movs r0, #0x58 + muls r0, r1, r0 + add r0, r8 + adds r0, #0x20 + ldrb r1, [r0] + cmp r1, #0x29 + bne _08048794 + cmp r5, #1 + beq _08048756 + cmp r6, #0x80 + bne _08048794 +_08048756: + ldr r0, _08048784 + strb r1, [r0] + mov r3, sb + ldrb r0, [r3] + movs r1, #0x29 + bl RecordAbilityBattle + ldr r4, _08048788 + ldr r0, [r4] + adds r0, #1 + bl BattleScriptPush + ldr r0, _0804878C + str r0, [r4] + ldr r2, _08048790 + ldr r1, [r2] + movs r0, #0x80 + lsls r0, r0, #6 + ands r0, r1 + cmp r0, #0 + beq _08048782 + b _08048686 +_08048782: + b _08048960 + .align 2, 0 +_08048784: .4byte 0x02023EAE +_08048788: .4byte 0x02023EB8 +_0804878C: .4byte 0x08289B59 +_08048790: .4byte 0x02023F24 +_08048794: + mov r2, sb + ldrb r1, [r2] + movs r0, #0x58 + muls r0, r1, r0 + mov r3, r8 + adds r1, r0, r3 + adds r0, r1, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0xa + beq _080487B4 + adds r0, r1, #0 + adds r0, #0x22 + ldrb r0, [r0] + cmp r0, #0xa + bne _080487E4 +_080487B4: + ldr r0, _080487D8 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #6 + ands r0, r1 + cmp r0, #0 + beq _080487E4 + cmp r5, #1 + beq _080487CA + cmp r6, #0x80 + bne _080487E4 +_080487CA: + ldr r4, _080487DC + ldr r0, [r4] + adds r0, #1 + bl BattleScriptPush + ldr r0, _080487E0 + b _080489B2 + .align 2, 0 +_080487D8: .4byte 0x02023F24 +_080487DC: .4byte 0x02023EB8 +_080487E0: .4byte 0x08289B59 +_080487E4: + mov r4, sb + ldrb r0, [r4] + movs r1, #0x58 + adds r2, r0, #0 + muls r2, r1, r2 + mov r0, r8 + adds r1, r2, r0 + adds r0, r1, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0xa + bne _080487FE + b _08048A34 +_080487FE: + adds r0, r1, #0 + adds r0, #0x22 + ldrb r0, [r0] + cmp r0, #0xa + bne _0804880A + b _08048A34 +_0804880A: + adds r0, r1, #0 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x29 + bne _08048816 + b _08048A34 +_08048816: + mov r0, r8 + adds r0, #0x4c + adds r0, r2, r0 + ldr r0, [r0] + cmp r0, #0 + beq _08048824 + b _08048A34 +_08048824: + movs r1, #1 + mov sl, r1 + b _08048A34 +_0804882A: + movs r0, #0 + str r0, [sp] + movs r0, #0x13 + movs r1, #0 + movs r2, #0xd + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _08048866 + str r0, [sp] + movs r0, #0x13 + movs r1, #0 + movs r2, #0x4d + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08048866 + ldr r0, _080488B8 + ldrh r1, [r0] + movs r0, #0x60 + ands r0, r1 + cmp r0, #0 + beq _08048866 + movs r2, #0 + str r2, [sp, #4] +_08048866: + ldr r4, _080488BC + ldr r0, _080488C0 + ldrb r3, [r0] + movs r0, #0x58 + adds r2, r3, #0 + muls r2, r0, r2 + adds r1, r2, r4 + adds r0, r1, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0xf + bne _08048880 + b _08048A34 +_08048880: + adds r0, r1, #0 + adds r0, #0x22 + ldrb r0, [r0] + cmp r0, #0xf + bne _0804888C + b _08048A34 +_0804888C: + adds r0, r4, #0 + adds r0, #0x4c + adds r0, r2, r0 + ldr r0, [r0] + cmp r0, #0 + beq _0804889A + b _08048A34 +_0804889A: + ldr r4, [sp, #4] + cmp r4, #0 + bne _080488A2 + b _08048A34 +_080488A2: + adds r0, r1, #0 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x28 + bne _080488AE + b _08048A34 +_080488AE: + adds r0, r3, #0 + bl CancelMultiTurnMoves + b _08048A24 + .align 2, 0 +_080488B8: .4byte 0x02024070 +_080488BC: .4byte 0x02023D28 +_080488C0: .4byte 0x02023EB2 +_080488C4: + mov r2, sb + ldrb r1, [r2] + movs r0, #0x58 + muls r1, r0, r1 + mov r3, r8 + adds r0, r1, r3 + adds r0, #0x20 + ldrb r2, [r0] + cmp r2, #7 + bne _08048934 + cmp r5, #1 + beq _080488E2 + cmp r6, #0x80 + beq _080488E2 + b _08048A34 +_080488E2: + ldr r0, _08048914 + strb r2, [r0] + mov r4, sb + ldrb r0, [r4] + movs r1, #7 + bl RecordAbilityBattle + ldr r4, _08048918 + ldr r0, [r4] + adds r0, #1 + bl BattleScriptPush + ldr r0, _0804891C + str r0, [r4] + ldr r2, _08048920 + ldr r1, [r2] + movs r0, #0x80 + lsls r0, r0, #6 + ands r0, r1 + cmp r0, #0 + beq _08048928 + movs r0, #1 + ldr r3, _08048924 + strb r0, [r3, #5] + b _0804868C + .align 2, 0 +_08048914: .4byte 0x02023EAE +_08048918: .4byte 0x02023EB8 +_0804891C: .4byte 0x08289B65 +_08048920: .4byte 0x02023F24 +_08048924: .4byte 0x02023FD6 +_08048928: + ldr r4, _08048930 + strb r0, [r4, #5] + bl _080495F2 + .align 2, 0 +_08048930: .4byte 0x02023FD6 +_08048934: + mov r0, r8 + adds r0, #0x4c + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, #0 + bne _08048A34 + b _08048A24 +_08048942: + mov r2, sb + ldrb r1, [r2] + movs r0, #0x58 + muls r0, r1, r0 + add r0, r8 + adds r0, #0x20 + ldrb r1, [r0] + cmp r1, #0x11 + bne _0804896C + cmp r5, #1 + bne _0804895A + b _0804865A +_0804895A: + cmp r6, #0x80 + bne _0804896C + b _0804865A +_08048960: + ldr r1, _08048968 + strb r0, [r1, #5] + bl _080495F2 + .align 2, 0 +_08048968: .4byte 0x02023FD6 +_0804896C: + mov r2, sb + ldrb r0, [r2] + movs r1, #0x58 + muls r0, r1, r0 + add r0, r8 + adds r1, r0, #0 + adds r1, #0x21 + ldrb r1, [r1] + cmp r1, #3 + beq _08048990 + adds r0, #0x22 + ldrb r0, [r0] + cmp r0, #3 + beq _08048990 + cmp r1, #8 + beq _08048990 + cmp r0, #8 + bne _080489D4 +_08048990: + ldr r0, _080489C4 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #6 + ands r0, r1 + cmp r0, #0 + beq _080489D4 + cmp r5, #1 + beq _080489A6 + cmp r6, #0x80 + bne _080489D4 +_080489A6: + ldr r4, _080489C8 + ldr r0, [r4] + adds r0, #1 + bl BattleScriptPush + ldr r0, _080489CC +_080489B2: + str r0, [r4] + ldr r1, _080489D0 + movs r2, #0 + movs r0, #2 + strb r0, [r1, #5] + strb r2, [r1, #3] + bl _080495F8 + .align 2, 0 +_080489C4: .4byte 0x02023F24 +_080489C8: .4byte 0x02023EB8 +_080489CC: .4byte 0x08289B71 +_080489D0: .4byte 0x02023FD6 +_080489D4: + mov r3, sb + ldrb r0, [r3] + movs r6, #0x58 + muls r0, r6, r0 + mov r2, r8 + adds r2, #0x4c + adds r5, r0, r2 + ldr r4, [r5] + cmp r4, #0 + bne _08048A34 + mov r3, r8 + adds r1, r0, r3 + adds r0, r1, #0 + adds r0, #0x21 + ldrb r3, [r0] + cmp r3, #3 + beq _08048A2A + adds r0, #1 + ldrb r0, [r0] + cmp r0, #3 + beq _08048A2A + cmp r3, #8 + beq _08048A2A + cmp r0, #8 + beq _08048A2A + adds r0, r1, #0 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x11 + beq _08048A34 + mov r4, sb + ldrb r0, [r4] + adds r1, r0, #0 + muls r1, r6, r1 + adds r1, r1, r2 + ldr r0, [r1] + movs r2, #9 + rsbs r2, r2, #0 + ands r0, r2 + str r0, [r1] +_08048A24: + movs r0, #1 + mov sl, r0 + b _08048A34 +_08048A2A: + ldr r0, _08048A78 + ldrb r1, [r0] + movs r2, #8 + orrs r1, r2 + strb r1, [r0] +_08048A34: + mov r1, sl + cmp r1, #1 + beq _08048A3C + b _08048B5C +_08048A3C: + ldr r0, _08048A7C + ldr r0, [r0] + adds r0, #1 + bl BattleScriptPush + ldr r1, _08048A80 + ldr r0, _08048A84 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r3, [r0] + cmp r3, #7 + bne _08048A90 + bl Random + ldr r2, _08048A88 + ldr r1, _08048A8C + ldrb r3, [r1] + movs r1, #0x58 + muls r3, r1, r3 + adds r2, #0x4c + adds r3, r3, r2 + movs r1, #3 + ands r1, r0 + adds r1, #2 + ldr r0, [r3] + orrs r0, r1 + str r0, [r3] + b _08048AA4 + .align 2, 0 +_08048A78: .4byte 0x02023F20 +_08048A7C: .4byte 0x02023EB8 +_08048A80: .4byte 0x082ECAB8 +_08048A84: .4byte 0x02023FD6 +_08048A88: .4byte 0x02023D28 +_08048A8C: .4byte 0x02023EB2 +_08048A90: + ldr r2, _08048AF4 + ldr r0, _08048AF8 + ldrb r1, [r0] + movs r0, #0x58 + muls r1, r0, r1 + adds r2, #0x4c + adds r1, r1, r2 + ldr r0, [r1] + orrs r0, r3 + str r0, [r1] +_08048AA4: + ldr r2, _08048AFC + ldr r1, _08048B00 + ldr r5, _08048B04 + ldrb r0, [r5, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r2] + ldr r4, _08048B08 + ldr r1, _08048AF8 + ldrb r0, [r1] + strb r0, [r4] + ldrb r1, [r1] + movs r0, #0x58 + muls r0, r1, r0 + ldr r1, _08048B0C + adds r0, r0, r1 + str r0, [sp] + movs r0, #0 + movs r1, #0x28 + movs r2, #0 + movs r3, #4 + bl BtlController_EmitSetMonData + ldrb r0, [r4] + bl MarkBattlerForControllerExec + ldr r2, _08048B10 + ldr r1, [r2] + movs r0, #0x80 + lsls r0, r0, #6 + ands r0, r1 + cmp r0, #0 + beq _08048B18 + movs r0, #1 + strb r0, [r5, #5] + ldr r0, _08048B14 + ands r1, r0 + str r1, [r2] + b _08048B1A + .align 2, 0 +_08048AF4: .4byte 0x02023D28 +_08048AF8: .4byte 0x02023EB2 +_08048AFC: .4byte 0x02023EB8 +_08048B00: .4byte 0x082ECBA8 +_08048B04: .4byte 0x02023FD6 +_08048B08: .4byte 0x02023D08 +_08048B0C: .4byte 0x02023D74 +_08048B10: .4byte 0x02023F24 +_08048B14: .4byte 0xFFFFDFFF +_08048B18: + strb r0, [r5, #5] +_08048B1A: + ldr r0, _08048B50 + ldrb r2, [r0, #3] + cmp r2, #2 + beq _08048B32 + cmp r2, #6 + beq _08048B32 + cmp r2, #5 + beq _08048B32 + cmp r2, #3 + beq _08048B32 + bl _080495F8 +_08048B32: + ldr r0, _08048B54 + ldr r0, [r0] + adds r0, #0xb2 + ldr r2, _08048B50 + ldrb r1, [r2, #3] + strb r1, [r0] + ldr r2, _08048B58 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #7 + orrs r0, r1 + str r0, [r2] + bl _080495F8 + .align 2, 0 +_08048B50: .4byte 0x02023FD6 +_08048B54: .4byte 0x02024140 +_08048B58: .4byte 0x02023F24 +_08048B5C: + mov r3, sl + cmp r3, #0 + beq _08048B66 + bl _080495F8 +_08048B66: + ldr r0, _08048B78 + strb r3, [r0, #3] + ldr r1, _08048B7C + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + bl _080495F8 + .align 2, 0 +_08048B78: .4byte 0x02023FD6 +_08048B7C: .4byte 0x02023EB8 +_08048B80: + mov r4, sb + ldrb r1, [r4] + movs r0, #0x58 + muls r1, r0, r1 + mov r0, r8 + adds r0, #0x50 + adds r1, r1, r0 + ldr r2, _08048BBC + ldr r0, _08048BC0 + ldrb r3, [r0, #3] + lsls r0, r3, #2 + adds r0, r0, r2 + ldr r1, [r1] + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _08048BA6 + bl _080495D4 +_08048BA6: + subs r0, r3, #7 + cmp r0, #0x34 + bls _08048BB0 + bl _080495F2 +_08048BB0: + lsls r0, r0, #2 + ldr r1, _08048BC4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08048BBC: .4byte 0x082ECAB8 +_08048BC0: .4byte 0x02023FD6 +_08048BC4: .4byte 0x08048BC8 +_08048BC8: @ jump table + .4byte _08048C9C @ case 0 + .4byte _08048D10 @ case 1 + .4byte _08048E84 @ case 2 + .4byte _08048D9C @ case 3 + .4byte _08048E18 @ case 4 + .4byte _08048EBC @ case 5 + .4byte _08048F04 @ case 6 + .4byte _08048FD0 @ case 7 + .4byte _08049014 @ case 8 + .4byte _08049014 @ case 9 + .4byte _08049014 @ case 10 + .4byte _08049014 @ case 11 + .4byte _08049014 @ case 12 + .4byte _08049014 @ case 13 + .4byte _08049014 @ case 14 + .4byte _0804905C @ case 15 + .4byte _0804905C @ case 16 + .4byte _0804905C @ case 17 + .4byte _0804905C @ case 18 + .4byte _0804905C @ case 19 + .4byte _0804905C @ case 20 + .4byte _0804905C @ case 21 + .4byte _0804913C @ case 22 + .4byte _08049184 @ case 23 + .4byte _080491A4 @ case 24 + .4byte _08049360 @ case 25 + .4byte _0804939C @ case 26 + .4byte _080493B8 @ case 27 + .4byte _080493D0 @ case 28 + .4byte _080493E8 @ case 29 + .4byte _08049448 @ case 30 + .4byte _08049460 @ case 31 + .4byte _080490A8 @ case 32 + .4byte _080490A8 @ case 33 + .4byte _080490A8 @ case 34 + .4byte _080490A8 @ case 35 + .4byte _080490A8 @ case 36 + .4byte _080490A8 @ case 37 + .4byte _080490A8 @ case 38 + .4byte _080490F0 @ case 39 + .4byte _080490F0 @ case 40 + .4byte _080490F0 @ case 41 + .4byte _080490F0 @ case 42 + .4byte _080490F0 @ case 43 + .4byte _080490F0 @ case 44 + .4byte _080490F0 @ case 45 + .4byte _080494A4 @ case 46 + .4byte _08049500 @ case 47 + .4byte _080495F2 @ case 48 + .4byte _080495F2 @ case 49 + .4byte _080495F2 @ case 50 + .4byte _080495F2 @ case 51 + .4byte _080495E4 @ case 52 +_08048C9C: + mov r1, sb + ldrb r0, [r1] + movs r5, #0x58 + adds r1, r0, #0 + muls r1, r5, r1 + mov r2, r8 + adds r0, r1, r2 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x14 + bne _08048CB6 + bl _080495D4 +_08048CB6: + mov r4, r8 + adds r4, #0x50 + adds r0, r1, r4 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + beq _08048CCA + bl _080495D4 +_08048CCA: + bl Random + mov r3, sb + ldrb r1, [r3] + adds r2, r1, #0 + muls r2, r5, r2 + adds r2, r2, r4 + lsls r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r0 + lsrs r1, r1, #0x10 + adds r1, #2 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + ldr r4, _08048D04 + ldr r0, [r4] + adds r0, #1 + bl BattleScriptPush + ldr r1, _08048D08 + ldr r0, _08048D0C + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _080495F0 + .align 2, 0 +_08048D04: .4byte 0x02023EB8 +_08048D08: .4byte 0x082ECBA8 +_08048D0C: .4byte 0x02023FD6 +_08048D10: + mov r4, sb + ldrb r2, [r4] + movs r4, #0x58 + adds r0, r2, #0 + muls r0, r4, r0 + add r0, r8 + adds r0, #0x20 + ldrb r1, [r0] + cmp r1, #0x27 + bne _08048D54 + cmp r5, #1 + beq _08048D30 + cmp r6, #0x80 + beq _08048D30 + bl _080495D4 +_08048D30: + ldr r0, _08048D48 + strb r1, [r0] + mov r1, sb + ldrb r0, [r1] + movs r1, #0x27 + bl RecordAbilityBattle + ldr r1, _08048D4C + ldr r0, _08048D50 + str r0, [r1] + bl _080495F2 + .align 2, 0 +_08048D48: .4byte 0x02023EAE +_08048D4C: .4byte 0x02023EB8 +_08048D50: .4byte 0x08289B8B +_08048D54: + adds r0, r2, #0 + bl GetBattlerTurnOrderNum + ldr r1, _08048D90 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + bhi _08048D6A + bl _080495D4 +_08048D6A: + mov r2, sb + ldrb r0, [r2] + adds r2, r0, #0 + muls r2, r4, r2 + mov r0, r8 + adds r0, #0x50 + adds r2, r2, r0 + ldr r1, _08048D94 + ldr r0, _08048D98 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r2] + ldr r0, [r0] + orrs r1, r0 + str r1, [r2] + bl _080495D4 + .align 2, 0 +_08048D90: .4byte 0x02023D26 +_08048D94: .4byte 0x082ECAB8 +_08048D98: .4byte 0x02023FD6 +_08048D9C: + mov r3, sb + ldrb r0, [r3] + movs r5, #0x58 + muls r0, r5, r0 + mov r4, r8 + adds r4, #0x50 + adds r2, r0, r4 + ldr r1, [r2] + movs r0, #0x70 + ands r0, r1 + cmp r0, #0 + beq _08048DB8 + bl _080495D4 +_08048DB8: + movs r0, #0x80 + lsls r0, r0, #5 + orrs r1, r0 + str r1, [r2] + ldr r1, _08048E04 + ldrb r0, [r3] + lsls r0, r0, #1 + adds r0, r0, r1 + ldr r1, _08048E08 + ldrh r1, [r1] + strh r1, [r0] + bl Random + mov r2, sb + ldrb r1, [r2] + adds r2, r1, #0 + muls r2, r5, r2 + adds r2, r2, r4 + movs r1, #3 + ands r1, r0 + adds r1, #2 + lsls r1, r1, #4 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + ldr r4, _08048E0C + ldr r0, [r4] + adds r0, #1 + bl BattleScriptPush + ldr r1, _08048E10 + ldr r0, _08048E14 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _080495F0 + .align 2, 0 +_08048E04: .4byte 0x02023F0C +_08048E08: .4byte 0x02023E8E +_08048E0C: .4byte 0x02023EB8 +_08048E10: .4byte 0x082ECBA8 +_08048E14: .4byte 0x02023FD6 +_08048E18: + ldr r5, _08048E68 + ldrb r0, [r5] + bl GetBattlerPosition + movs r1, #1 + ands r1, r0 + cmp r1, #0 + bne _08048E50 + ldr r4, _08048E6C + ldrh r3, [r4] + ldr r2, _08048E70 + ldrb r1, [r5] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + adds r0, #0x2a + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + adds r0, r3, r0 + strh r0, [r4] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r3, r0 + bls _08048E50 + ldr r3, _08048E74 + adds r0, r3, #0 + strh r0, [r4] +_08048E50: + ldr r4, _08048E78 + ldr r0, [r4] + adds r0, #1 + bl BattleScriptPush + ldr r1, _08048E7C + ldr r0, _08048E80 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + b _080495F0 + .align 2, 0 +_08048E68: .4byte 0x02023EAF +_08048E6C: .4byte 0x02023FD2 +_08048E70: .4byte 0x02023D28 +_08048E74: .4byte 0x0000FFFF +_08048E78: .4byte 0x02023EB8 +_08048E7C: .4byte 0x082ECBA8 +_08048E80: .4byte 0x02023FD6 +_08048E84: + mov r4, sb + ldrb r1, [r4] + movs r0, #0x58 + muls r0, r1, r0 + mov r1, r8 + adds r1, #0x4c + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #0 + beq _08048E9A + b _080495D4 +_08048E9A: + bl Random + ldr r4, _08048EB8 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + adds r0, #3 + strb r0, [r4, #3] + movs r0, #0 + movs r1, #0 + bl SetMoveEffect + b _080495F2 + .align 2, 0 +_08048EB8: .4byte 0x02023FD6 +_08048EBC: + mov r0, sb + ldrb r1, [r0] + movs r0, #0x58 + adds r2, r1, #0 + muls r2, r0, r2 + mov r0, r8 + adds r0, #0x50 + adds r2, r2, r0 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #5 + orrs r0, r1 + str r0, [r2] + ldr r1, _08048EF8 + mov r2, sb + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldr r1, _08048EFC + ldrh r1, [r1] + strh r1, [r0] + ldr r0, _08048F00 + ldrb r1, [r2] + lsls r1, r1, #4 + adds r1, r1, r0 + ldrb r0, [r1, #1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1, #1] + b _080495D4 + .align 2, 0 +_08048EF8: .4byte 0x02023F0C +_08048EFC: .4byte 0x02023E8E +_08048F00: .4byte 0x02023FE0 +_08048F04: + mov r3, sb + ldrb r0, [r3] + movs r6, #0x58 + muls r0, r6, r0 + mov r4, r8 + adds r4, #0x50 + adds r0, r0, r4 + ldr r5, [r0] + movs r0, #0xe0 + lsls r0, r0, #8 + ands r5, r0 + cmp r5, #0 + beq _08048F20 + b _080495D4 +_08048F20: + bl Random + mov r2, sb + ldrb r1, [r2] + adds r2, r1, #0 + muls r2, r6, r2 + adds r2, r2, r4 + movs r1, #3 + ands r1, r0 + adds r1, #3 + lsls r1, r1, #0xd + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + mov r3, sb + ldrb r1, [r3] + ldr r2, _08048FB4 + ldr r0, [r2] + lsls r1, r1, #1 + adds r1, r1, r0 + ldr r6, _08048FB8 + ldrh r0, [r6] + strb r0, [r1, #4] + ldrb r1, [r3] + ldr r0, [r2] + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r6] + lsrs r0, r0, #8 + strb r0, [r1, #5] + ldrb r1, [r3] + ldr r0, [r2] + adds r1, r1, r0 + ldr r0, _08048FBC + ldrb r0, [r0] + strb r0, [r1, #0x14] + ldr r4, _08048FC0 + ldr r0, [r4] + adds r0, #1 + bl BattleScriptPush + ldr r1, _08048FC4 + ldr r2, _08048FC8 + ldrb r0, [r2, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r4] + strb r5, [r2, #5] + ldr r3, _08048FCC + ldrh r0, [r3] + ldrh r4, [r6] + cmp r0, r4 + bne _08048F8E + b _080495F2 +_08048F8E: + adds r1, r2, #0 + adds r2, r6, #0 +_08048F92: + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bls _08048FA2 + b _080495F2 +_08048FA2: + ldrb r0, [r1, #5] + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + ldrh r4, [r2] + cmp r0, r4 + bne _08048F92 + b _080495F2 + .align 2, 0 +_08048FB4: .4byte 0x02024140 +_08048FB8: .4byte 0x02023E8E +_08048FBC: .4byte 0x02023EAF +_08048FC0: .4byte 0x02023EB8 +_08048FC4: .4byte 0x082ECBA8 +_08048FC8: .4byte 0x02023FD6 +_08048FCC: .4byte 0x085ABAEE +_08048FD0: + ldr r1, _08049000 + ldr r0, _08049004 + ldr r0, [r0] + cmp r0, #0 + bge _08048FDC + adds r0, #3 +_08048FDC: + asrs r0, r0, #2 + str r0, [r1] + cmp r0, #0 + bne _08048FE8 + movs r0, #1 + str r0, [r1] +_08048FE8: + ldr r4, _08049008 + ldr r0, [r4] + adds r0, #1 + bl BattleScriptPush + ldr r1, _0804900C + ldr r0, _08049010 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + b _080495F0 + .align 2, 0 +_08049000: .4byte 0x02023E94 +_08049004: .4byte 0x02023E98 +_08049008: .4byte 0x02023EB8 +_0804900C: .4byte 0x082ECBA8 +_08049010: .4byte 0x02023FD6 +_08049014: + ldr r4, _0804904C + ldrb r1, [r4, #3] + adds r1, #0xf2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0x10 + adds r2, r7, #0 + movs r3, #0 + bl ChangeStatBuffs + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + beq _08049032 + b _080495D4 +_08049032: + ldr r2, _08049050 + ldrb r1, [r4, #3] + movs r0, #0x3f + ands r0, r1 + strb r0, [r2, #0x10] + strb r3, [r2, #0x11] + ldr r4, _08049054 + ldr r0, [r4] + adds r0, #1 + bl BattleScriptPush + ldr r0, _08049058 + b _080495F0 + .align 2, 0 +_0804904C: .4byte 0x02023FD6 +_08049050: .4byte 0x02024118 +_08049054: .4byte 0x02023EB8 +_08049058: .4byte 0x0828725C +_0804905C: + movs r0, #0x70 + rsbs r0, r0, #0 + ldr r4, _08049098 + ldrb r1, [r4, #3] + adds r1, #0xeb + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r2, r7, #0 + movs r3, #0 + bl ChangeStatBuffs + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + beq _0804907C + b _080495D4 +_0804907C: + ldr r2, _0804909C + ldrb r1, [r4, #3] + movs r0, #0x3f + ands r0, r1 + strb r0, [r2, #0x10] + strb r3, [r2, #0x11] + ldr r4, _080490A0 + ldr r0, [r4] + adds r0, #1 + bl BattleScriptPush + ldr r0, _080490A4 + b _080495F0 + .align 2, 0 +_08049098: .4byte 0x02023FD6 +_0804909C: .4byte 0x02024118 +_080490A0: .4byte 0x02023EB8 +_080490A4: .4byte 0x082872ED +_080490A8: + ldr r4, _080490E0 + ldrb r1, [r4, #3] + adds r1, #0xda + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0x20 + adds r2, r7, #0 + movs r3, #0 + bl ChangeStatBuffs + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + beq _080490C6 + b _080495D4 +_080490C6: + ldr r2, _080490E4 + ldrb r1, [r4, #3] + movs r0, #0x3f + ands r0, r1 + strb r0, [r2, #0x10] + strb r3, [r2, #0x11] + ldr r4, _080490E8 + ldr r0, [r4] + adds r0, #1 + bl BattleScriptPush + ldr r0, _080490EC + b _080495F0 + .align 2, 0 +_080490E0: .4byte 0x02023FD6 +_080490E4: .4byte 0x02024118 +_080490E8: .4byte 0x02023EB8 +_080490EC: .4byte 0x0828725C +_080490F0: + movs r0, #0x60 + rsbs r0, r0, #0 + ldr r4, _0804912C + ldrb r1, [r4, #3] + adds r1, #0xd3 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r2, r7, #0 + movs r3, #0 + bl ChangeStatBuffs + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + beq _08049110 + b _080495D4 +_08049110: + ldr r2, _08049130 + ldrb r1, [r4, #3] + movs r0, #0x3f + ands r0, r1 + strb r0, [r2, #0x10] + strb r3, [r2, #0x11] + ldr r4, _08049134 + ldr r0, [r4] + adds r0, #1 + bl BattleScriptPush + ldr r0, _08049138 + b _080495F0 + .align 2, 0 +_0804912C: .4byte 0x02023FD6 +_08049130: .4byte 0x02024118 +_08049134: .4byte 0x02023EB8 +_08049138: .4byte 0x082872ED +_0804913C: + mov r0, sb + ldrb r1, [r0] + movs r0, #0x58 + adds r2, r1, #0 + muls r2, r0, r2 + mov r0, r8 + adds r0, #0x50 + adds r2, r2, r0 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r2] + ldr r2, _08049178 + mov r3, sb + ldrb r1, [r3] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #2 + strb r1, [r0, #0x19] + ldr r1, _0804917C + ldrb r0, [r3] + lsls r0, r0, #1 + adds r0, r0, r1 + ldr r1, _08049180 + ldrh r1, [r1] + strh r1, [r0] + b _080495D4 + .align 2, 0 +_08049178: .4byte 0x02023F60 +_0804917C: .4byte 0x02023F0C +_08049180: .4byte 0x02023E8E +_08049184: + ldr r0, _080491A0 + ldrb r1, [r0] + movs r0, #0x58 + adds r2, r1, #0 + muls r2, r0, r2 + mov r0, r8 + adds r0, #0x50 + adds r2, r2, r0 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0x10 +_0804919A: + orrs r0, r1 + str r0, [r2] + b _080495D4 + .align 2, 0 +_080491A0: .4byte 0x02023EAF +_080491A4: + ldr r5, _080491DC + ldr r0, [r5] + movs r1, #0x80 + lsls r1, r1, #0x13 + ands r0, r1 + cmp r0, #0 + beq _080491B4 + b _080495D4 +_080491B4: + ldr r6, _080491E0 + ldrb r0, [r6] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldrb r0, [r6] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080491E8 + ldr r0, [r5] + ldr r1, _080491E4 + ands r0, r1 + cmp r0, #0 + bne _08049214 + b _080495D4 + .align 2, 0 +_080491DC: .4byte 0x02022C90 +_080491E0: .4byte 0x02023EAF +_080491E4: .4byte 0x0A3F0902 +_080491E8: + ldr r0, [r5] + ldr r1, _08049258 + ands r0, r1 + cmp r0, #0 + bne _08049214 + ldr r0, _0804925C + adds r0, #0x29 + adds r0, r4, r0 + ldrb r1, [r0] + ldr r3, _08049260 + ldr r2, _08049264 + ldrb r0, [r6] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r3 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _08049214 + b _080495D4 +_08049214: + ldr r2, _08049268 + ldr r1, _0804926C + ldrb r0, [r1] + movs r5, #0x58 + muls r0, r5, r0 + adds r4, r0, r2 + ldrh r0, [r4, #0x2e] + adds r7, r1, #0 + mov r8, r2 + cmp r0, #0 + beq _0804927C + adds r0, r4, #0 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x3c + bne _0804927C + bl BattleScriptPushCursor + ldr r1, _08049270 + ldr r0, _08049274 + str r0, [r1] + ldr r1, _08049278 + ldrb r0, [r7] + muls r0, r5, r0 + add r0, r8 + adds r0, #0x20 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + ldrb r1, [r1] + bl RecordAbilityBattle + b _080495F2 + .align 2, 0 +_08049258: .4byte 0x0A3F0902 +_0804925C: .4byte 0x02024074 +_08049260: .4byte 0x082FACB4 +_08049264: .4byte 0x02023D12 +_08049268: .4byte 0x02023D28 +_0804926C: .4byte 0x02023EB0 +_08049270: .4byte 0x02023EB8 +_08049274: .4byte 0x08289C0A +_08049278: .4byte 0x02023EAE +_0804927C: + ldr r4, _08049348 + mov sl, r4 + ldrb r2, [r4] + movs r0, #0x58 + mov sb, r0 + mov r0, sb + muls r0, r2, r0 + add r0, r8 + ldrh r4, [r0, #0x2e] + cmp r4, #0 + beq _08049294 + b _080495D4 +_08049294: + ldrb r0, [r7] + mov r1, sb + muls r1, r0, r1 + adds r0, r1, #0 + add r0, r8 + ldrh r3, [r0, #0x2e] + adds r1, r3, #0 + cmp r1, #0xaf + bne _080492A8 + b _080495D4 +_080492A8: + adds r0, r3, #0 + subs r0, #0x79 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xb + bhi _080492B6 + b _080495D4 +_080492B6: + cmp r1, #0 + bne _080492BC + b _080495D4 +_080492BC: + ldr r5, _0804934C + lsls r0, r2, #1 + adds r0, #0xd0 + ldr r1, [r5] + adds r1, r1, r0 + ldr r2, _08049350 + strh r3, [r1] + strh r3, [r2] + ldrb r0, [r7] + mov r3, sb + muls r3, r0, r3 + adds r0, r3, #0 + add r0, r8 + movs r6, #0 + strh r4, [r0, #0x2e] + ldr r4, _08049354 + mov r1, sl + ldrb r0, [r1] + strb r0, [r4] + str r2, [sp] + movs r0, #0 + movs r1, #2 + movs r2, #0 + movs r3, #2 + bl BtlController_EmitSetMonData + mov r2, sl + ldrb r0, [r2] + bl MarkBattlerForControllerExec + ldrb r0, [r7] + strb r0, [r4] + ldrb r0, [r7] + mov r3, sb + muls r3, r0, r3 + adds r0, r3, #0 + mov r1, r8 + adds r1, #0x2e + adds r0, r0, r1 + str r0, [sp] + movs r0, #0 + movs r1, #2 + movs r2, #0 + movs r3, #2 + bl BtlController_EmitSetMonData + ldrb r0, [r7] + bl MarkBattlerForControllerExec + ldr r4, _08049358 + ldr r0, [r4] + adds r0, #1 + bl BattleScriptPush + ldr r0, _0804935C + str r0, [r4] + ldrb r0, [r7] + ldr r1, [r5] + lsls r0, r0, #1 + adds r0, r0, r1 + adds r0, #0xc8 + strb r6, [r0] + ldrb r0, [r7] + ldr r1, [r5] + lsls r0, r0, #1 + adds r0, r0, r1 + adds r0, #0xc9 + strb r6, [r0] + b _080495F2 + .align 2, 0 +_08049348: .4byte 0x02023EAF +_0804934C: .4byte 0x02024140 +_08049350: .4byte 0x02023EAC +_08049354: .4byte 0x02023D08 +_08049358: .4byte 0x02023EB8 +_0804935C: .4byte 0x082899AA +_08049360: + ldr r3, _08049390 + ldrb r1, [r3] + movs r0, #0x58 + adds r2, r1, #0 + muls r2, r0, r2 + mov r0, r8 + adds r0, #0x50 + adds r2, r2, r0 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0x13 + orrs r0, r1 + str r0, [r2] + ldr r2, _08049394 + ldrb r1, [r3] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, _08049398 + ldrb r1, [r1] + strb r1, [r0, #0x14] + b _080495D4 + .align 2, 0 +_08049390: .4byte 0x02023EB0 +_08049394: .4byte 0x02023F60 +_08049398: .4byte 0x02023EAF +_0804939C: + ldr r0, _080493B4 + ldrb r1, [r0] + movs r0, #0x58 + adds r2, r1, #0 + muls r2, r0, r2 + mov r0, r8 + adds r0, #0x50 + adds r2, r2, r0 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0x14 + b _0804919A + .align 2, 0 +_080493B4: .4byte 0x02023EB0 +_080493B8: + ldr r4, _080493C8 + ldr r0, [r4] + adds r0, #1 + bl BattleScriptPush + ldr r0, _080493CC + b _080495F0 + .align 2, 0 +_080493C8: .4byte 0x02023EB8 +_080493CC: .4byte 0x082894AF +_080493D0: + ldr r4, _080493E0 + ldr r0, [r4] + adds r0, #1 + bl BattleScriptPush + ldr r0, _080493E4 + b _080495F0 + .align 2, 0 +_080493E0: .4byte 0x02023EB8 +_080493E4: .4byte 0x0828954B +_080493E8: + ldr r6, _08049438 + ldrb r0, [r6] + movs r2, #0x58 + muls r0, r2, r0 + mov r1, r8 + adds r1, #0x4c + adds r5, r0, r1 + ldr r4, [r5] + movs r0, #0x40 + ands r0, r4 + cmp r0, #0 + bne _08049402 + b _080495D4 +_08049402: + movs r0, #0x41 + rsbs r0, r0, #0 + ands r4, r0 + str r4, [r5] + ldr r4, _0804943C + ldrb r0, [r6] + strb r0, [r4] + ldrb r0, [r4] + muls r0, r2, r0 + adds r0, r0, r1 + str r0, [sp] + movs r0, #0 + movs r1, #0x28 + movs r2, #0 + movs r3, #4 + bl BtlController_EmitSetMonData + ldrb r0, [r4] + bl MarkBattlerForControllerExec + ldr r4, _08049440 + ldr r0, [r4] + adds r0, #1 + bl BattleScriptPush + ldr r0, _08049444 + b _080495F0 + .align 2, 0 +_08049438: .4byte 0x02023EB0 +_0804943C: .4byte 0x02023D08 +_08049440: .4byte 0x02023EB8 +_08049444: .4byte 0x082898E9 +_08049448: + ldr r4, _08049458 + ldr r0, [r4] + adds r0, #1 + bl BattleScriptPush + ldr r0, _0804945C + b _080495F0 + .align 2, 0 +_08049458: .4byte 0x02023EB8 +_0804945C: .4byte 0x0828969F +_08049460: + ldr r4, _08049490 + ldr r0, _08049494 + ldr r0, [r0] + movs r1, #3 + bl __divsi3 + str r0, [r4] + cmp r0, #0 + bne _08049476 + movs r0, #1 + str r0, [r4] +_08049476: + ldr r4, _08049498 + ldr r0, [r4] + adds r0, #1 + bl BattleScriptPush + ldr r1, _0804949C + ldr r0, _080494A0 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + b _080495F0 + .align 2, 0 +_08049490: .4byte 0x02023E94 +_08049494: .4byte 0x02023E98 +_08049498: .4byte 0x02023EB8 +_0804949C: .4byte 0x082ECBA8 +_080494A0: .4byte 0x02023FD6 +_080494A4: + mov r4, sb + ldrb r0, [r4] + movs r5, #0x58 + muls r0, r5, r0 + mov r4, r8 + adds r4, #0x50 + adds r2, r0, r4 + ldr r1, [r2] + movs r0, #0xc0 + lsls r0, r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080494C0 + b _080495D4 +_080494C0: + movs r0, #0x80 + lsls r0, r0, #5 + orrs r1, r0 + str r1, [r2] + ldr r1, _080494F8 + mov r2, sb + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldr r1, _080494FC + ldrh r1, [r1] + strh r1, [r0] + bl Random + mov r3, sb + ldrb r1, [r3] + adds r2, r1, #0 + muls r2, r5, r2 + adds r2, r2, r4 + movs r1, #1 + ands r1, r0 + adds r1, #2 + lsls r1, r1, #0xa + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + b _080495F2 + .align 2, 0 +_080494F8: .4byte 0x02023F0C +_080494FC: .4byte 0x02023E8E +_08049500: + mov r4, sb + ldrb r3, [r4] + movs r5, #0x58 + adds r0, r3, #0 + muls r0, r5, r0 + mov r2, r8 + adds r1, r0, r2 + adds r0, r1, #0 + adds r0, #0x20 + ldrb r2, [r0] + cmp r2, #0x3c + bne _08049540 + ldrh r0, [r1, #0x2e] + cmp r0, #0 + beq _080495D4 + ldr r0, _08049534 + strb r2, [r0] + ldr r1, _08049538 + ldr r0, _0804953C + str r0, [r1] + ldrb r0, [r4] + movs r1, #0x3c + bl RecordAbilityBattle + b _080495F2 + .align 2, 0 +_08049534: .4byte 0x02023EAE +_08049538: .4byte 0x02023EB8 +_0804953C: .4byte 0x08289BC7 +_08049540: + ldrh r0, [r1, #0x2e] + cmp r0, #0 + beq _080495D4 + adds r0, r3, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _080495B8 + mov r3, sb + ldrb r0, [r3] + muls r0, r5, r0 + add r0, r8 + ldrh r0, [r0, #0x2e] + strh r0, [r1] + ldrb r0, [r3] + muls r0, r5, r0 + add r0, r8 + movs r5, #0 + movs r1, #0 + strh r1, [r0, #0x2e] + ldr r2, _080495BC + adds r2, #0x29 + adds r2, r4, r2 + ldr r3, _080495C0 + ldr r1, _080495C4 + mov r4, sb + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r3 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r4, _080495C8 + ldr r0, [r4] + adds r0, #1 + bl BattleScriptPush + ldr r0, _080495CC + str r0, [r4] + mov r1, sb + ldrb r0, [r1] + ldr r2, _080495D0 + ldr r1, [r2] + lsls r0, r0, #1 + adds r0, r0, r1 + adds r0, #0xc8 + strb r5, [r0] + mov r3, sb + ldrb r0, [r3] + ldr r1, [r2] + lsls r0, r0, #1 + adds r0, r0, r1 + adds r0, #0xc9 + strb r5, [r0] + b _080495F2 + .align 2, 0 +_080495B8: .4byte 0x02023EAC +_080495BC: .4byte 0x02024074 +_080495C0: .4byte 0x082FACB4 +_080495C4: .4byte 0x02023D12 +_080495C8: .4byte 0x02023EB8 +_080495CC: .4byte 0x082896F0 +_080495D0: .4byte 0x02024140 +_080495D4: + ldr r1, _080495E0 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + b _080495F2 + .align 2, 0 +_080495E0: .4byte 0x02023EB8 +_080495E4: + ldr r4, _08049608 + ldr r0, [r4] + adds r0, #1 + bl BattleScriptPush + ldr r0, _0804960C +_080495F0: + str r0, [r4] +_080495F2: + ldr r1, _08049610 + movs r0, #0 + strb r0, [r1, #3] +_080495F8: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08049608: .4byte 0x02023EB8 +_0804960C: .4byte 0x0828975D +_08049610: .4byte 0x02023FD6 + thumb_func_end SetMoveEffect + + thumb_func_start atk15_seteffectwithchance +atk15_seteffectwithchance: @ 0x08049614 + push {r4, lr} + ldr r2, _08049640 + ldr r0, _08049644 + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x20 + bne _08049650 + ldr r2, _08049648 + ldr r0, _0804964C + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #5] + lsls r4, r0, #1 + b _08049660 + .align 2, 0 +_08049640: .4byte 0x02023D28 +_08049644: .4byte 0x02023EAF +_08049648: .4byte 0x082ED220 +_0804964C: .4byte 0x02023E8E +_08049650: + ldr r2, _08049680 + ldr r0, _08049684 + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r4, [r0, #5] +_08049660: + ldr r3, _08049688 + ldrb r2, [r3, #3] + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _08049690 + ldr r0, _0804968C + ldrb r1, [r0] + movs r0, #0x29 + ands r0, r1 + cmp r0, #0 + bne _08049690 + movs r0, #0x7f + ands r0, r2 + strb r0, [r3, #3] + b _080496BE + .align 2, 0 +_08049680: .4byte 0x082ED220 +_08049684: .4byte 0x02023E8E +_08049688: .4byte 0x02023FD6 +_0804968C: .4byte 0x02023F20 +_08049690: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r4 + bhs _080496DA + ldr r0, _080496C8 + ldrb r0, [r0, #3] + cmp r0, #0 + beq _080496DA + ldr r0, _080496CC + ldrb r1, [r0] + movs r0, #0x29 + ands r0, r1 + cmp r0, #0 + bne _080496DA + cmp r4, #0x63 + bls _080496D0 +_080496BE: + movs r0, #0 + movs r1, #0x80 + bl SetMoveEffect + b _080496E2 + .align 2, 0 +_080496C8: .4byte 0x02023FD6 +_080496CC: .4byte 0x02023F20 +_080496D0: + movs r0, #0 + movs r1, #0 + bl SetMoveEffect + b _080496E2 +_080496DA: + ldr r1, _080496F4 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] +_080496E2: + ldr r0, _080496F8 + movs r1, #0 + strb r1, [r0, #3] + ldr r0, _080496FC + strb r1, [r0, #0x16] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080496F4: .4byte 0x02023EB8 +_080496F8: .4byte 0x02023FD6 +_080496FC: .4byte 0x02024118 + thumb_func_end atk15_seteffectwithchance + + thumb_func_start atk16_seteffectprimary +atk16_seteffectprimary: @ 0x08049700 + push {lr} + movs r0, #1 + movs r1, #0 + bl SetMoveEffect + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end atk16_seteffectprimary + + thumb_func_start atk17_seteffectsecondary +atk17_seteffectsecondary: @ 0x08049710 + push {lr} + movs r0, #0 + movs r1, #0 + bl SetMoveEffect + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end atk17_seteffectsecondary + + thumb_func_start atk18_clearstatusfromeffect +atk18_clearstatusfromeffect: @ 0x08049720 + push {lr} + ldr r0, _08049744 + ldr r0, [r0] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + ldr r2, _08049748 + strb r0, [r2] + ldr r3, _0804974C + ldrb r0, [r3, #3] + cmp r0, #6 + bhi _08049754 + ldr r1, _08049750 + ldrb r2, [r2] + movs r0, #0x58 + muls r2, r0, r2 + adds r1, #0x4c + b _0804975E + .align 2, 0 +_08049744: .4byte 0x02023EB8 +_08049748: .4byte 0x02023D08 +_0804974C: .4byte 0x02023FD6 +_08049750: .4byte 0x02023D28 +_08049754: + ldr r1, _08049788 + ldrb r2, [r2] + movs r0, #0x58 + muls r2, r0, r2 + adds r1, #0x50 +_0804975E: + adds r2, r2, r1 + ldr r1, _0804978C + ldrb r0, [r3, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + ldr r0, [r2] + bics r0, r1 + str r0, [r2] + ldr r0, _08049790 + movs r2, #0 + strb r2, [r0, #3] + ldr r1, _08049794 + ldr r0, [r1] + adds r0, #2 + str r0, [r1] + ldr r0, _08049798 + strb r2, [r0, #0x16] + pop {r0} + bx r0 + .align 2, 0 +_08049788: .4byte 0x02023D28 +_0804978C: .4byte 0x082ECAB8 +_08049790: .4byte 0x02023FD6 +_08049794: .4byte 0x02023EB8 +_08049798: .4byte 0x02024118 + thumb_func_end atk18_clearstatusfromeffect + + thumb_func_start atk19_tryfaintmon +atk19_tryfaintmon: @ 0x0804979C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + ldr r0, _08049808 + ldr r2, [r0] + ldrb r1, [r2, #2] + adds r6, r0, #0 + cmp r1, #0 + beq _08049820 + ldrb r0, [r2, #1] + bl GetBattlerForBattleScript + ldr r5, _0804980C + strb r0, [r5] + ldr r2, _08049810 + ldr r1, _08049814 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + lsls r1, r1, #0x1c + ldr r0, [r2] + ands r0, r1 + cmp r0, #0 + bne _080497D4 + b _08049A6C +_080497D4: + ldr r1, [r6] + ldrb r4, [r1, #3] + ldrb r0, [r1, #4] + lsls r0, r0, #8 + orrs r4, r0 + ldrb r0, [r1, #5] + lsls r0, r0, #0x10 + orrs r4, r0 + ldrb r0, [r1, #6] + lsls r0, r0, #0x18 + orrs r4, r0 + bl HandleAction_RunBattleScript + str r4, [r6] + ldrb r0, [r5] + bl GetBattlerSide + ldr r1, _08049818 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r1 + ldrh r2, [r0] + ldr r1, _0804981C + ands r1, r2 + strh r1, [r0] + b _08049A72 + .align 2, 0 +_08049808: .4byte 0x02023EB8 +_0804980C: .4byte 0x02023D08 +_08049810: .4byte 0x02023F24 +_08049814: .4byte 0x082FACB4 +_08049818: .4byte 0x02023F32 +_0804981C: .4byte 0x0000FDFF +_08049820: + ldrb r0, [r2, #1] + cmp r0, #1 + bne _08049848 + ldr r1, _08049838 + ldr r0, _0804983C + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _08049840 + ldrb r0, [r0] + mov sb, r0 + ldr r4, _08049844 + b _08049858 + .align 2, 0 +_08049838: .4byte 0x02023D08 +_0804983C: .4byte 0x02023EAF +_08049840: .4byte 0x02023EB0 +_08049844: .4byte 0x08288D32 +_08049848: + ldr r1, _080498C0 + ldr r0, _080498C4 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _080498C8 + ldrb r0, [r0] + mov sb, r0 + ldr r4, _080498CC +_08049858: + mov r8, r1 + ldr r0, _080498D0 + ldrb r1, [r0] + ldr r2, _080498D4 + mov r7, r8 + ldrb r3, [r7] + lsls r0, r3, #2 + adds r0, r0, r2 + ldr r2, [r0] + ands r1, r2 + cmp r1, #0 + beq _08049872 + b _08049A6C +_08049872: + ldr r1, _080498D8 + movs r0, #0x58 + muls r0, r3, r0 + adds r0, r0, r1 + ldrh r0, [r0, #0x28] + cmp r0, #0 + beq _08049882 + b _08049A6C +_08049882: + ldr r5, _080498DC + lsls r1, r2, #0x1c + ldr r0, [r5] + orrs r0, r1 + str r0, [r5] + ldr r0, [r6] + adds r0, #7 + bl BattleScriptPush + str r4, [r6] + ldrb r0, [r7] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080498E4 + ldr r0, [r5] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r5] + ldr r1, _080498E0 + ldrb r0, [r1] + cmp r0, #0xfe + bhi _080498B8 + adds r0, #1 + strb r0, [r1] +_080498B8: + ldrb r0, [r7] + bl AdjustFriendshipOnBattleFaint + b _0804990E + .align 2, 0 +_080498C0: .4byte 0x02023D08 +_080498C4: .4byte 0x02023EB0 +_080498C8: .4byte 0x02023EAF +_080498CC: .4byte 0x08288D3F +_080498D0: .4byte 0x02023EB4 +_080498D4: .4byte 0x082FACB4 +_080498D8: .4byte 0x02023D28 +_080498DC: .4byte 0x02023F24 +_080498E0: .4byte 0x03005A70 +_080498E4: + ldr r4, _08049A2C + ldrb r0, [r4, #1] + cmp r0, #0xfe + bhi _080498F0 + adds r0, #1 + strb r0, [r4, #1] +_080498F0: + ldr r1, _08049A30 + mov r2, r8 + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08049A34 + adds r0, r0, r1 + movs r1, #0xb + movs r2, #0 + bl GetMonData + strh r0, [r4, #0x20] +_0804990E: + ldr r2, _08049A38 + ldr r1, [r2] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0804994C + ldr r6, _08049A3C + ldr r0, _08049A40 + ldrb r0, [r0] + movs r5, #0x58 + muls r0, r5, r0 + adds r0, r0, r6 + ldrh r0, [r0, #0x28] + cmp r0, #0 + beq _0804994C + movs r0, #0x41 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r2] + ldr r4, _08049A44 + ldr r0, [r4] + bl BattleScriptPush + ldr r1, _08049A48 + mov r0, sb + muls r0, r5, r0 + adds r0, r0, r6 + ldrh r0, [r0, #0x28] + str r0, [r1] + ldr r0, _08049A4C + str r0, [r4] +_0804994C: + ldr r1, _08049A50 + ldr r6, _08049A54 + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #7 + ands r0, r1 + cmp r0, #0 + bne _08049964 + b _08049A72 +_08049964: + ldr r0, _08049A38 + ldr r5, [r0] + movs r0, #0x80 + lsls r0, r0, #0x11 + ands r5, r0 + cmp r5, #0 + beq _08049974 + b _08049A72 +_08049974: + ldr r3, _08049A40 + mov r8, r3 + ldrb r0, [r3] + bl GetBattlerSide + adds r4, r0, #0 + ldrb r0, [r6] + bl GetBattlerSide + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + beq _08049A72 + ldr r0, _08049A3C + mov sb, r0 + mov r2, r8 + ldrb r1, [r2] + movs r7, #0x58 + adds r2, r1, #0 + muls r2, r7, r2 + adds r0, r2, r0 + ldrh r0, [r0, #0x28] + cmp r0, #0 + beq _08049A72 + ldr r0, _08049A58 + ldrh r0, [r0] + cmp r0, #0xa5 + beq _08049A72 + ldr r0, _08049A5C + ldr r0, [r0] + adds r0, r1, r0 + adds r0, #0x80 + ldrb r4, [r0] + adds r0, r4, r2 + mov r6, sb + adds r6, #0x24 + adds r0, r0, r6 + strb r5, [r0] + ldr r5, _08049A44 + ldr r0, [r5] + bl BattleScriptPush + ldr r0, _08049A60 + str r0, [r5] + ldr r5, _08049A64 + mov r3, r8 + ldrb r0, [r3] + strb r0, [r5] + adds r1, r4, #0 + adds r1, #9 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrb r0, [r5] + muls r0, r7, r0 + adds r0, r0, r6 + adds r0, r0, r4 + str r0, [sp] + movs r0, #0 + movs r2, #0 + movs r3, #1 + bl BtlController_EmitSetMonData + ldrb r0, [r5] + bl MarkBattlerForControllerExec + ldr r1, _08049A68 + movs r0, #0xfd + strb r0, [r1] + movs r0, #2 + strb r0, [r1, #1] + lsls r4, r4, #1 + mov r2, r8 + ldrb r0, [r2] + muls r0, r7, r0 + adds r0, r4, r0 + mov r2, sb + adds r2, #0xc + adds r0, r0, r2 + ldrh r0, [r0] + strb r0, [r1, #2] + mov r3, r8 + ldrb r0, [r3] + muls r0, r7, r0 + adds r4, r4, r0 + adds r4, r4, r2 + ldrh r0, [r4] + lsrs r0, r0, #8 + strb r0, [r1, #3] + movs r0, #0xff + strb r0, [r1, #4] + b _08049A72 + .align 2, 0 +_08049A2C: .4byte 0x03005A70 +_08049A30: .4byte 0x02023D12 +_08049A34: .4byte 0x020243E8 +_08049A38: .4byte 0x02023F24 +_08049A3C: .4byte 0x02023D28 +_08049A40: .4byte 0x02023EAF +_08049A44: .4byte 0x02023EB8 +_08049A48: .4byte 0x02023E94 +_08049A4C: .4byte 0x082893C6 +_08049A50: .4byte 0x02023F50 +_08049A54: .4byte 0x02023EB0 +_08049A58: .4byte 0x02023E8E +_08049A5C: .4byte 0x02024140 +_08049A60: .4byte 0x08289715 +_08049A64: .4byte 0x02023D08 +_08049A68: .4byte 0x02022C0C +_08049A6C: + ldr r0, [r6] + adds r0, #7 + str r0, [r6] +_08049A72: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end atk19_tryfaintmon + + thumb_func_start atk1A_dofaintanimation +atk1A_dofaintanimation: @ 0x08049A80 + push {r4, r5, lr} + ldr r0, _08049AB0 + ldr r0, [r0] + cmp r0, #0 + bne _08049AAA + ldr r5, _08049AB4 + ldr r0, [r5] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + ldr r4, _08049AB8 + strb r0, [r4] + movs r0, #0 + bl BtlController_EmitFaintAnimation + ldrb r0, [r4] + bl MarkBattlerForControllerExec + ldr r0, [r5] + adds r0, #2 + str r0, [r5] +_08049AAA: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08049AB0: .4byte 0x02023D0C +_08049AB4: .4byte 0x02023EB8 +_08049AB8: .4byte 0x02023D08 + thumb_func_end atk1A_dofaintanimation + + thumb_func_start atk1B_cleareffectsonfaint +atk1B_cleareffectsonfaint: @ 0x08049ABC + push {r4, r5, lr} + sub sp, #4 + ldr r0, _08049B30 + ldr r5, [r0] + cmp r5, #0 + bne _08049B28 + ldr r0, _08049B34 + ldr r0, [r0] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + ldr r4, _08049B38 + strb r0, [r4] + ldr r0, _08049B3C + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xb + ands r0, r1 + cmp r0, #0 + beq _08049AF4 + ldr r2, _08049B40 + ldrb r1, [r4] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + ldrh r0, [r0, #0x28] + cmp r0, #0 + bne _08049B1C +_08049AF4: + ldr r1, _08049B40 + ldrb r0, [r4] + movs r2, #0x58 + muls r0, r2, r0 + adds r1, #0x4c + adds r0, r0, r1 + str r5, [r0] + ldrb r0, [r4] + muls r0, r2, r0 + adds r0, r0, r1 + str r0, [sp] + movs r0, #0 + movs r1, #0x28 + movs r2, #0 + movs r3, #4 + bl BtlController_EmitSetMonData + ldrb r0, [r4] + bl MarkBattlerForControllerExec +_08049B1C: + bl FaintClearSetData + ldr r1, _08049B34 + ldr r0, [r1] + adds r0, #2 + str r0, [r1] +_08049B28: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08049B30: .4byte 0x02023D0C +_08049B34: .4byte 0x02023EB8 +_08049B38: .4byte 0x02023D08 +_08049B3C: .4byte 0x02022C90 +_08049B40: .4byte 0x02023D28 + thumb_func_end atk1B_cleareffectsonfaint + + thumb_func_start atk1C_jumpifstatus +atk1C_jumpifstatus: @ 0x08049B44 + push {r4, r5, lr} + ldr r5, _08049BA0 + ldr r0, [r5] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, [r5] + ldrb r4, [r2, #2] + ldrb r1, [r2, #3] + lsls r1, r1, #8 + adds r4, r4, r1 + ldrb r1, [r2, #4] + lsls r1, r1, #0x10 + adds r4, r4, r1 + ldrb r1, [r2, #5] + lsls r1, r1, #0x18 + adds r4, r4, r1 + ldrb r3, [r2, #6] + ldrb r1, [r2, #7] + lsls r1, r1, #8 + adds r3, r3, r1 + ldrb r1, [r2, #8] + lsls r1, r1, #0x10 + adds r3, r3, r1 + ldrb r1, [r2, #9] + lsls r1, r1, #0x18 + adds r3, r3, r1 + ldr r2, _08049BA4 + movs r1, #0x58 + muls r1, r0, r1 + adds r0, r2, #0 + adds r0, #0x4c + adds r0, r1, r0 + ldr r0, [r0] + ands r0, r4 + cmp r0, #0 + beq _08049BA8 + adds r0, r1, r2 + ldrh r0, [r0, #0x28] + cmp r0, #0 + beq _08049BA8 + str r3, [r5] + b _08049BB0 + .align 2, 0 +_08049BA0: .4byte 0x02023EB8 +_08049BA4: .4byte 0x02023D28 +_08049BA8: + ldr r1, _08049BB8 + ldr r0, [r1] + adds r0, #0xa + str r0, [r1] +_08049BB0: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08049BB8: .4byte 0x02023EB8 + thumb_func_end atk1C_jumpifstatus + + thumb_func_start atk1D_jumpifstatus2 +atk1D_jumpifstatus2: @ 0x08049BBC + push {r4, r5, lr} + ldr r5, _08049C18 + ldr r0, [r5] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, [r5] + ldrb r4, [r2, #2] + ldrb r1, [r2, #3] + lsls r1, r1, #8 + adds r4, r4, r1 + ldrb r1, [r2, #4] + lsls r1, r1, #0x10 + adds r4, r4, r1 + ldrb r1, [r2, #5] + lsls r1, r1, #0x18 + adds r4, r4, r1 + ldrb r3, [r2, #6] + ldrb r1, [r2, #7] + lsls r1, r1, #8 + adds r3, r3, r1 + ldrb r1, [r2, #8] + lsls r1, r1, #0x10 + adds r3, r3, r1 + ldrb r1, [r2, #9] + lsls r1, r1, #0x18 + adds r3, r3, r1 + ldr r2, _08049C1C + movs r1, #0x58 + muls r1, r0, r1 + adds r0, r2, #0 + adds r0, #0x50 + adds r0, r1, r0 + ldr r0, [r0] + ands r0, r4 + cmp r0, #0 + beq _08049C20 + adds r0, r1, r2 + ldrh r0, [r0, #0x28] + cmp r0, #0 + beq _08049C20 + str r3, [r5] + b _08049C28 + .align 2, 0 +_08049C18: .4byte 0x02023EB8 +_08049C1C: .4byte 0x02023D28 +_08049C20: + ldr r1, _08049C30 + ldr r0, [r1] + adds r0, #0xa + str r0, [r1] +_08049C28: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08049C30: .4byte 0x02023EB8 + thumb_func_end atk1D_jumpifstatus2 + + thumb_func_start atk1E_jumpifability +atk1E_jumpifability: @ 0x08049C34 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + ldr r6, _08049C88 + ldr r2, [r6] + ldrb r5, [r2, #2] + mov r8, r5 + ldrb r1, [r2, #3] + ldrb r0, [r2, #4] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x10 + adds r1, r1, r0 + ldrb r0, [r2, #6] + lsls r0, r0, #0x18 + adds r7, r1, r0 + ldrb r0, [r2, #1] + cmp r0, #8 + bne _08049C94 + ldr r0, _08049C8C + ldrb r1, [r0] + movs r0, #0 + str r0, [sp] + movs r0, #0xd + adds r2, r5, #0 + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + beq _08049D08 + ldr r1, _08049C90 + strb r5, [r1] + str r7, [r6] + subs r4, #1 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + b _08049CF0 + .align 2, 0 +_08049C88: .4byte 0x02023EB8 +_08049C8C: .4byte 0x02023EAF +_08049C90: .4byte 0x02023EAE +_08049C94: + cmp r0, #9 + bne _08049CCC + ldr r0, _08049CC4 + ldrb r1, [r0] + movs r0, #0 + str r0, [sp] + movs r0, #0xc + adds r2, r5, #0 + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + beq _08049D08 + ldr r1, _08049CC8 + strb r5, [r1] + str r7, [r6] + subs r4, #1 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + b _08049CF0 + .align 2, 0 +_08049CC4: .4byte 0x02023EAF +_08049CC8: .4byte 0x02023EAE +_08049CCC: + ldrb r0, [r2, #1] + bl GetBattlerForBattleScript + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08049CFC + movs r0, #0x58 + muls r0, r4, r0 + adds r0, r0, r1 + adds r0, #0x20 + ldrb r1, [r0] + cmp r1, r8 + bne _08049D08 + ldr r0, _08049D00 + strb r1, [r0] + str r7, [r6] + ldrb r1, [r0] + adds r0, r4, #0 +_08049CF0: + bl RecordAbilityBattle + ldr r0, _08049D04 + strb r4, [r0, #0x15] + b _08049D0E + .align 2, 0 +_08049CFC: .4byte 0x02023D28 +_08049D00: .4byte 0x02023EAE +_08049D04: .4byte 0x02024118 +_08049D08: + ldr r0, [r6] + adds r0, #7 + str r0, [r6] +_08049D0E: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end atk1E_jumpifability + + thumb_func_start atk1F_jumpifsideaffecting +atk1F_jumpifsideaffecting: @ 0x08049D1C + push {r4, r5, r6, lr} + ldr r0, _08049D34 + ldr r0, [r0] + ldrb r4, [r0, #1] + cmp r4, #1 + bne _08049D3C + ldr r0, _08049D38 + ldrb r0, [r0] + bl GetBattlerPosition + b _08049D46 + .align 2, 0 +_08049D34: .4byte 0x02023EB8 +_08049D38: .4byte 0x02023EAF +_08049D3C: + ldr r0, _08049D7C + ldrb r0, [r0] + bl GetBattlerPosition + movs r4, #1 +_08049D46: + ands r4, r0 + ldr r6, _08049D80 + ldr r3, [r6] + ldrb r2, [r3, #2] + ldrb r0, [r3, #3] + lsls r0, r0, #8 + orrs r2, r0 + ldrb r1, [r3, #4] + ldrb r0, [r3, #5] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r3, #6] + lsls r0, r0, #0x10 + adds r1, r1, r0 + ldrb r0, [r3, #7] + lsls r0, r0, #0x18 + adds r5, r1, r0 + ldr r1, _08049D84 + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ands r2, r0 + cmp r2, #0 + beq _08049D88 + str r5, [r6] + b _08049D8E + .align 2, 0 +_08049D7C: .4byte 0x02023EB0 +_08049D80: .4byte 0x02023EB8 +_08049D84: .4byte 0x02023F32 +_08049D88: + adds r0, r3, #0 + adds r0, #8 + str r0, [r6] +_08049D8E: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end atk1F_jumpifsideaffecting + + thumb_func_start atk20_jumpifstat +atk20_jumpifstat: @ 0x08049D94 + push {r4, r5, lr} + movs r5, #0 + ldr r4, _08049DC8 + ldr r0, [r4] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08049DCC + ldr r3, [r4] + movs r1, #0x58 + muls r0, r1, r0 + ldrb r1, [r3, #3] + adds r0, r0, r1 + adds r2, #0x18 + adds r0, r0, r2 + ldrb r2, [r0] + ldrb r0, [r3, #2] + cmp r0, #5 + bhi _08049E52 + lsls r0, r0, #2 + ldr r1, _08049DD0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08049DC8: .4byte 0x02023EB8 +_08049DCC: .4byte 0x02023D28 +_08049DD0: .4byte 0x08049DD4 +_08049DD4: @ jump table + .4byte _08049DEC @ case 0 + .4byte _08049DFC @ case 1 + .4byte _08049E0C @ case 2 + .4byte _08049E1C @ case 3 + .4byte _08049E2C @ case 4 + .4byte _08049E40 @ case 5 +_08049DEC: + ldr r0, _08049DF8 + ldr r0, [r0] + ldrb r0, [r0, #4] + cmp r2, r0 + bne _08049E52 + b _08049E4C + .align 2, 0 +_08049DF8: .4byte 0x02023EB8 +_08049DFC: + ldr r0, _08049E08 + ldr r0, [r0] + ldrb r0, [r0, #4] + cmp r2, r0 + beq _08049E52 + b _08049E4C + .align 2, 0 +_08049E08: .4byte 0x02023EB8 +_08049E0C: + ldr r0, _08049E18 + ldr r0, [r0] + ldrb r0, [r0, #4] + cmp r2, r0 + bls _08049E52 + b _08049E4C + .align 2, 0 +_08049E18: .4byte 0x02023EB8 +_08049E1C: + ldr r0, _08049E28 + ldr r0, [r0] + ldrb r0, [r0, #4] + cmp r2, r0 + bhs _08049E52 + b _08049E4C + .align 2, 0 +_08049E28: .4byte 0x02023EB8 +_08049E2C: + ldr r0, _08049E3C + ldr r0, [r0] + ldrb r0, [r0, #4] + ands r2, r0 + cmp r2, #0 + beq _08049E52 + b _08049E4C + .align 2, 0 +_08049E3C: .4byte 0x02023EB8 +_08049E40: + ldr r0, _08049E74 + ldr r0, [r0] + ldrb r0, [r0, #4] + ands r2, r0 + cmp r2, #0 + bne _08049E52 +_08049E4C: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_08049E52: + cmp r5, #0 + beq _08049E78 + ldr r3, _08049E74 + ldr r2, [r3] + ldrb r1, [r2, #5] + ldrb r0, [r2, #6] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r2, #7] + lsls r0, r0, #0x10 + adds r1, r1, r0 + ldrb r0, [r2, #8] + lsls r0, r0, #0x18 + adds r1, r1, r0 + str r1, [r3] + b _08049E80 + .align 2, 0 +_08049E74: .4byte 0x02023EB8 +_08049E78: + ldr r1, _08049E88 + ldr r0, [r1] + adds r0, #9 + str r0, [r1] +_08049E80: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08049E88: .4byte 0x02023EB8 + thumb_func_end atk20_jumpifstat + + thumb_func_start atk21_jumpifstatus3condition +atk21_jumpifstatus3condition: @ 0x08049E8C + push {r4, r5, r6, lr} + ldr r4, _08049EE0 + ldr r0, [r4] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + ldr r5, _08049EE4 + strb r0, [r5] + ldr r2, [r4] + ldrb r1, [r2, #2] + ldrb r0, [r2, #3] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x10 + adds r1, r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x18 + adds r6, r1, r0 + ldrb r1, [r2, #7] + ldrb r0, [r2, #8] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r2, #9] + lsls r0, r0, #0x10 + adds r1, r1, r0 + ldrb r0, [r2, #0xa] + lsls r0, r0, #0x18 + adds r3, r1, r0 + ldrb r0, [r2, #6] + cmp r0, #0 + beq _08049EEC + ldr r0, _08049EE8 + ldrb r1, [r5] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + ands r0, r6 + cmp r0, #0 + bne _08049F04 + b _08049EFC + .align 2, 0 +_08049EE0: .4byte 0x02023EB8 +_08049EE4: .4byte 0x02023D08 +_08049EE8: .4byte 0x02023F50 +_08049EEC: + ldr r0, _08049F00 + ldrb r1, [r5] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + ands r0, r6 + cmp r0, #0 + beq _08049F04 +_08049EFC: + str r3, [r4] + b _08049F0A + .align 2, 0 +_08049F00: .4byte 0x02023F50 +_08049F04: + adds r0, r2, #0 + adds r0, #0xb + str r0, [r4] +_08049F0A: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end atk21_jumpifstatus3condition + + thumb_func_start atk22_jumpiftype +atk22_jumpiftype: @ 0x08049F10 + push {r4, r5, r6, lr} + ldr r4, _08049F58 + ldr r0, [r4] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, [r4] + ldrb r5, [r3, #2] + ldrb r2, [r3, #3] + ldrb r1, [r3, #4] + lsls r1, r1, #8 + adds r2, r2, r1 + ldrb r1, [r3, #5] + lsls r1, r1, #0x10 + adds r2, r2, r1 + ldrb r1, [r3, #6] + lsls r1, r1, #0x18 + adds r6, r2, r1 + ldr r2, _08049F5C + movs r1, #0x58 + muls r0, r1, r0 + adds r1, r0, r2 + adds r0, r1, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, r5 + beq _08049F54 + adds r0, r1, #0 + adds r0, #0x22 + ldrb r0, [r0] + cmp r0, r5 + bne _08049F60 +_08049F54: + str r6, [r4] + b _08049F64 + .align 2, 0 +_08049F58: .4byte 0x02023EB8 +_08049F5C: .4byte 0x02023D28 +_08049F60: + adds r0, r3, #7 + str r0, [r4] +_08049F64: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end atk22_jumpiftype + + thumb_func_start atk23_getexp +atk23_getexp: @ 0x08049F6C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + movs r6, #0 + ldr r0, _08049FB4 + ldr r0, [r0] + adds r0, #0x50 + mov sb, r0 + ldr r0, _08049FB8 + ldr r0, [r0] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + ldr r1, _08049FBC + strb r0, [r1] + ldr r2, _08049FC0 + movs r1, #2 + ands r1, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x19 + adds r1, r1, r2 + ldrb r1, [r1] + mov r8, r1 + ldr r0, _08049FC4 + ldrb r0, [r0, #0x1c] + cmp r0, #6 + bls _08049FA8 + bl _0804A8E2 +_08049FA8: + lsls r0, r0, #2 + ldr r1, _08049FC8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08049FB4: .4byte 0x02024140 +_08049FB8: .4byte 0x02023EB8 +_08049FBC: .4byte 0x02023EB1 +_08049FC0: .4byte 0x020240A2 +_08049FC4: .4byte 0x02024118 +_08049FC8: .4byte 0x08049FCC +_08049FCC: @ jump table + .4byte _08049FE8 @ case 0 + .4byte _0804A054 @ case 1 + .4byte _0804A16E @ case 2 + .4byte _0804A480 @ case 3 + .4byte _0804A584 @ case 4 + .4byte _0804A870 @ case 5 + .4byte _0804A8B8 @ case 6 +_08049FE8: + ldr r4, _0804A038 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08049FFC + bl _0804A8AC +_08049FFC: + ldr r0, _0804A03C + ldr r0, [r0] + ldr r1, _0804A040 + ands r0, r1 + cmp r0, #0 + beq _0804A00C + bl _0804A8AC +_0804A00C: + ldr r1, _0804A044 + ldrb r0, [r1, #0x1c] + adds r0, #1 + strb r0, [r1, #0x1c] + ldr r0, _0804A048 + ldr r2, [r0] + adds r2, #0xdf + ldr r3, _0804A04C + ldr r1, _0804A050 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r3 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + bl _0804A8E2 + .align 2, 0 +_0804A038: .4byte 0x02023EB1 +_0804A03C: .4byte 0x02022C90 +_0804A040: .4byte 0x063F0982 +_0804A044: .4byte 0x02024118 +_0804A048: .4byte 0x02024140 +_0804A04C: .4byte 0x082FACB4 +_0804A050: .4byte 0x02023D12 +_0804A054: + movs r5, #0 + movs r7, #0 +_0804A058: + movs r0, #0x64 + adds r1, r7, #0 + muls r1, r0, r1 + ldr r0, _0804A0A8 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _0804A0C6 + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _0804A0C6 + ldr r0, _0804A0AC + lsls r1, r7, #2 + adds r1, r1, r0 + ldr r0, [r1] + mov r1, r8 + ands r0, r1 + cmp r0, #0 + beq _0804A08C + adds r5, #1 +_0804A08C: + adds r0, r4, #0 + movs r1, #0xc + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xaf + bne _0804A0B8 + ldr r0, _0804A0B0 + ldr r0, [r0] + ldr r2, _0804A0B4 + adds r0, r0, r2 + ldrb r4, [r0] + b _0804A0C0 + .align 2, 0 +_0804A0A8: .4byte 0x02024190 +_0804A0AC: .4byte 0x082FACB4 +_0804A0B0: .4byte 0x03005AEC +_0804A0B4: .4byte 0x00003226 +_0804A0B8: + bl sub_080D6CF8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_0804A0C0: + cmp r4, #0x19 + bne _0804A0C6 + adds r6, #1 +_0804A0C6: + adds r7, #1 + cmp r7, #5 + ble _0804A058 + ldr r3, _0804A12C + ldr r2, _0804A130 + ldr r0, _0804A134 + ldrb r1, [r0] + movs r0, #0x58 + muls r1, r0, r1 + adds r1, r1, r2 + ldrh r2, [r1] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r2, [r0, #9] + adds r1, #0x2a + ldrb r0, [r1] + muls r0, r2, r0 + movs r1, #7 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r6, #0 + beq _0804A13C + lsrs r4, r0, #0x11 + adds r0, r4, #0 + adds r1, r5, #0 + bl __divsi3 + mov r3, sb + strh r0, [r3] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0804A112 + movs r0, #1 + strh r0, [r3] +_0804A112: + ldr r5, _0804A138 + adds r0, r4, #0 + adds r1, r6, #0 + bl __divsi3 + strh r0, [r5] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0804A156 + movs r0, #1 + strh r0, [r5] + b _0804A156 + .align 2, 0 +_0804A12C: .4byte 0x082F0D54 +_0804A130: .4byte 0x02023D28 +_0804A134: .4byte 0x02023EB1 +_0804A138: .4byte 0x020240A6 +_0804A13C: + adds r0, r1, #0 + adds r1, r5, #0 + bl __divsi3 + mov r1, sb + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0804A152 + movs r0, #1 + strh r0, [r1] +_0804A152: + ldr r0, _0804A1A0 + strh r6, [r0] +_0804A156: + ldr r1, _0804A1A4 + ldrb r0, [r1, #0x1c] + adds r0, #1 + movs r2, #0 + strb r0, [r1, #0x1c] + ldr r1, _0804A1A8 + ldr r0, [r1] + strb r2, [r0, #0x10] + ldr r0, [r1] + adds r0, #0x53 + mov r2, r8 + strb r2, [r0] +_0804A16E: + ldr r0, _0804A1AC + ldr r0, [r0] + cmp r0, #0 + beq _0804A178 + b _0804A8E2 +_0804A178: + ldr r0, _0804A1A8 + ldr r0, [r0] + ldrb r1, [r0, #0x10] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0804A1B0 + adds r0, r0, r1 + movs r1, #0xc + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xaf + bne _0804A1BC + ldr r0, _0804A1B4 + ldr r0, [r0] + ldr r3, _0804A1B8 + adds r0, r0, r3 + ldrb r4, [r0] + b _0804A1C4 + .align 2, 0 +_0804A1A0: .4byte 0x020240A6 +_0804A1A4: .4byte 0x02024118 +_0804A1A8: .4byte 0x02024140 +_0804A1AC: .4byte 0x02023D0C +_0804A1B0: .4byte 0x02024190 +_0804A1B4: .4byte 0x03005AEC +_0804A1B8: .4byte 0x00003226 +_0804A1BC: + bl sub_080D6CF8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_0804A1C4: + ldr r5, _0804A1E4 + cmp r4, #0x19 + beq _0804A1EC + ldr r0, [r5] + adds r1, r0, #0 + adds r1, #0x53 + ldrb r0, [r1] + movs r2, #1 + ands r2, r0 + cmp r2, #0 + bne _0804A1EC + lsrs r0, r0, #1 + strb r0, [r1] + ldr r1, _0804A1E8 + b _0804A210 + .align 2, 0 +_0804A1E4: .4byte 0x02024140 +_0804A1E8: .4byte 0x02024118 +_0804A1EC: + ldr r0, [r5] + ldrb r1, [r0, #0x10] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0804A21C + adds r0, r0, r1 + movs r1, #0x38 + bl GetMonData + cmp r0, #0x64 + bne _0804A228 + ldr r1, [r5] + adds r1, #0x53 + ldrb r0, [r1] + lsrs r0, r0, #1 + strb r0, [r1] + ldr r1, _0804A220 + movs r2, #0 +_0804A210: + movs r0, #5 + strb r0, [r1, #0x1c] + ldr r0, _0804A224 + str r2, [r0] + b _0804A8E2 + .align 2, 0 +_0804A21C: .4byte 0x02024190 +_0804A220: .4byte 0x02024118 +_0804A224: .4byte 0x02023E94 +_0804A228: + ldr r0, _0804A28C + ldr r0, [r0] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + bne _0804A256 + ldr r0, _0804A290 + ldrh r0, [r0, #0x28] + cmp r0, #0 + beq _0804A256 + ldr r0, [r5] + ldrb r0, [r0, #0x12] + cmp r0, #0 + bne _0804A256 + bl BattleStopLowHpSound + ldr r0, _0804A294 + bl PlayBGM + ldr r1, [r5] + ldrb r0, [r1, #0x12] + adds r0, #1 + strb r0, [r1, #0x12] +_0804A256: + ldr r5, _0804A298 + ldr r0, [r5] + ldrb r1, [r0, #0x10] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0804A29C + adds r0, r0, r1 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + bne _0804A270 + b _0804A45A +_0804A270: + ldr r0, [r5] + adds r0, #0x53 + ldrb r0, [r0] + movs r3, #1 + ands r3, r0 + cmp r3, #0 + beq _0804A2A4 + ldr r1, _0804A2A0 + mov r2, sb + ldrh r0, [r2] + str r0, [r1] + mov sb, r1 + b _0804A2AA + .align 2, 0 +_0804A28C: .4byte 0x02022C90 +_0804A290: .4byte 0x02023D28 +_0804A294: .4byte 0x00000161 +_0804A298: .4byte 0x02024140 +_0804A29C: .4byte 0x02024190 +_0804A2A0: .4byte 0x02023E94 +_0804A2A4: + ldr r0, _0804A320 + str r3, [r0] + mov sb, r0 +_0804A2AA: + cmp r4, #0x19 + bne _0804A2BA + ldr r0, _0804A324 + ldrh r1, [r0] + mov r3, sb + ldr r0, [r3] + adds r0, r0, r1 + str r0, [r3] +_0804A2BA: + cmp r4, #0x28 + bne _0804A2D0 + mov r0, sb + ldr r1, [r0] + movs r0, #0x96 + muls r0, r1, r0 + movs r1, #0x64 + bl __divsi3 + mov r1, sb + str r0, [r1] +_0804A2D0: + ldr r5, _0804A328 + ldr r0, [r5] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _0804A2EC + ldr r4, _0804A320 + ldr r1, [r4] + movs r0, #0x96 + muls r0, r1, r0 + movs r1, #0x64 + bl __divsi3 + str r0, [r4] +_0804A2EC: + ldr r4, _0804A32C + ldr r0, [r4] + ldrb r1, [r0, #0x10] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0804A330 + adds r0, r0, r1 + bl IsTradedMon + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0804A354 + ldr r0, [r5] + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + beq _0804A338 + ldr r0, [r4] + ldrb r0, [r0, #0x10] + cmp r0, #2 + bls _0804A338 + ldr r7, _0804A334 + ldr r2, _0804A320 + mov sb, r2 + b _0804A35A + .align 2, 0 +_0804A320: .4byte 0x02023E94 +_0804A324: .4byte 0x020240A6 +_0804A328: .4byte 0x02022C90 +_0804A32C: .4byte 0x02024140 +_0804A330: .4byte 0x02024190 +_0804A334: .4byte 0x00000149 +_0804A338: + ldr r4, _0804A350 + ldr r1, [r4] + movs r0, #0x96 + muls r0, r1, r0 + movs r1, #0x64 + bl __divsi3 + str r0, [r4] + movs r7, #0xa5 + lsls r7, r7, #1 + mov sb, r4 + b _0804A35A + .align 2, 0 +_0804A350: .4byte 0x02023E94 +_0804A354: + ldr r7, _0804A390 + ldr r3, _0804A394 + mov sb, r3 +_0804A35A: + ldr r0, _0804A398 + ldr r1, [r0] + movs r0, #1 + ands r1, r0 + cmp r1, #0 + beq _0804A3C6 + ldr r0, _0804A39C + ldr r1, _0804A3A0 + ldr r4, [r1] + ldrh r0, [r0, #4] + adds r5, r1, #0 + ldr r3, _0804A3A4 + ldr r2, _0804A3A8 + ldrb r1, [r4, #0x10] + cmp r0, r1 + bne _0804A3AC + ldrb r1, [r2] + ldr r0, [r3, #8] + ands r1, r0 + cmp r1, #0 + bne _0804A3AC + adds r1, r4, #0 + adds r1, #0x8f + movs r0, #2 + strb r0, [r1] + b _0804A3CE + .align 2, 0 +_0804A390: .4byte 0x00000149 +_0804A394: .4byte 0x02023E94 +_0804A398: .4byte 0x02022C90 +_0804A39C: .4byte 0x02023D12 +_0804A3A0: .4byte 0x02024140 +_0804A3A4: .4byte 0x082FACB4 +_0804A3A8: .4byte 0x02023EB4 +_0804A3AC: + ldrb r2, [r2] + ldr r0, [r3] + ands r2, r0 + cmp r2, #0 + bne _0804A3BE + ldr r0, [r5] + adds r0, #0x8f + strb r2, [r0] + b _0804A3CE +_0804A3BE: + ldr r0, [r5] + adds r0, #0x8f + movs r1, #2 + b _0804A3CC +_0804A3C6: + ldr r0, _0804A468 + ldr r0, [r0] + adds r0, #0x8f +_0804A3CC: + strb r1, [r0] +_0804A3CE: + ldr r1, _0804A46C + movs r2, #0 + mov ip, r2 + movs r4, #0xfd + strb r4, [r1] + movs r5, #4 + strb r5, [r1, #1] + ldr r6, _0804A468 + ldr r2, [r6] + movs r3, #0x8f + adds r3, r3, r2 + mov r8, r3 + ldrb r0, [r3] + strb r0, [r1, #2] + ldrb r0, [r2, #0x10] + strb r0, [r1, #3] + mov r0, ip + strb r0, [r1, #4] + strb r7, [r1, #5] + movs r3, #0xff + lsls r3, r3, #8 + ands r7, r3 + asrs r0, r7, #8 + strb r0, [r1, #6] + movs r0, #0xff + strb r0, [r1, #7] + ldr r1, _0804A470 + strb r4, [r1] + movs r0, #1 + strb r0, [r1, #1] + strb r5, [r1, #2] + movs r0, #5 + strb r0, [r1, #3] + mov r0, sb + ldr r2, [r0] + strb r2, [r1, #4] + adds r0, r2, #0 + ands r0, r3 + asrs r0, r0, #8 + strb r0, [r1, #5] + movs r0, #0xff + lsls r0, r0, #0x10 + ands r0, r2 + asrs r0, r0, #0x10 + strb r0, [r1, #6] + lsrs r2, r2, #0x18 + strb r2, [r1, #7] + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1, #8] + mov r2, r8 + ldrb r1, [r2] + movs r0, #0xd + bl PrepareStringBattle + ldr r0, [r6] + ldrb r1, [r0, #0x10] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0804A474 + adds r0, r0, r1 + ldr r3, _0804A478 + ldr r1, _0804A47C + ldrb r2, [r1] + movs r1, #0x58 + muls r1, r2, r1 + adds r1, r1, r3 + ldrh r1, [r1] + bl MonGainEVs +_0804A45A: + ldr r0, _0804A468 + ldr r1, [r0] + adds r1, #0x53 + ldrb r0, [r1] + lsrs r0, r0, #1 + strb r0, [r1] + b _0804A55A + .align 2, 0 +_0804A468: .4byte 0x02024140 +_0804A46C: .4byte 0x02022C0C +_0804A470: .4byte 0x02022C1C +_0804A474: .4byte 0x02024190 +_0804A478: .4byte 0x02023D28 +_0804A47C: .4byte 0x02023EB1 +_0804A480: + ldr r0, _0804A564 + ldr r2, [r0] + cmp r2, #0 + beq _0804A48A + b _0804A8E2 +_0804A48A: + ldr r1, _0804A568 + ldr r7, _0804A56C + ldr r0, [r7] + adds r0, #0x8f + ldrb r0, [r0] + lsls r0, r0, #9 + adds r0, r0, r1 + strb r2, [r0] + ldr r0, [r7] + ldrb r0, [r0, #0x10] + movs r6, #0x64 + muls r0, r6, r0 + ldr r5, _0804A570 + adds r0, r0, r5 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _0804A55A + ldr r0, [r7] + ldrb r0, [r0, #0x10] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #0x38 + bl GetMonData + cmp r0, #0x64 + beq _0804A55A + ldr r0, [r7] + ldrb r0, [r0, #0x10] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #0x3a + bl GetMonData + ldr r4, _0804A574 + ldr r1, [r4] + ldr r1, [r1, #0x10] + strh r0, [r1] + ldr r0, [r7] + ldrb r0, [r0, #0x10] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #0x3b + bl GetMonData + ldr r1, [r4] + ldr r1, [r1, #0x10] + strh r0, [r1, #2] + ldr r0, [r7] + ldrb r0, [r0, #0x10] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #0x3c + bl GetMonData + ldr r1, [r4] + ldr r1, [r1, #0x10] + strh r0, [r1, #4] + ldr r0, [r7] + ldrb r0, [r0, #0x10] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #0x3d + bl GetMonData + ldr r1, [r4] + ldr r1, [r1, #0x10] + strh r0, [r1, #6] + ldr r0, [r7] + ldrb r0, [r0, #0x10] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #0x3e + bl GetMonData + ldr r1, [r4] + ldr r1, [r1, #0x10] + strh r0, [r1, #8] + ldr r0, [r7] + ldrb r0, [r0, #0x10] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #0x3f + bl GetMonData + ldr r1, [r4] + ldr r1, [r1, #0x10] + strh r0, [r1, #0xa] + ldr r4, _0804A578 + ldr r1, [r7] + adds r0, r1, #0 + adds r0, #0x8f + ldrb r0, [r0] + strb r0, [r4] + ldrb r1, [r1, #0x10] + ldr r0, _0804A57C + ldrh r2, [r0] + movs r0, #0 + bl BtlController_EmitExpUpdate + ldrb r0, [r4] + bl MarkBattlerForControllerExec +_0804A55A: + ldr r1, _0804A580 + ldrb r0, [r1, #0x1c] + adds r0, #1 + strb r0, [r1, #0x1c] + b _0804A8E2 + .align 2, 0 +_0804A564: .4byte 0x02023D0C +_0804A568: .4byte 0x02023508 +_0804A56C: .4byte 0x02024140 +_0804A570: .4byte 0x02024190 +_0804A574: .4byte 0x0202414C +_0804A578: .4byte 0x02023D08 +_0804A57C: .4byte 0x02023E94 +_0804A580: .4byte 0x02024118 +_0804A584: + ldr r0, _0804A81C + ldr r0, [r0] + cmp r0, #0 + beq _0804A58E + b _0804A8E2 +_0804A58E: + ldr r1, _0804A820 + ldr r0, _0804A824 + ldr r4, [r0] + adds r0, r4, #0 + adds r0, #0x8f + ldrb r0, [r0] + strb r0, [r1] + ldr r3, _0804A828 + ldrb r2, [r1] + lsls r1, r2, #9 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, #0x21 + beq _0804A5AC + b _0804A858 +_0804A5AC: + adds r0, r3, #1 + adds r0, r1, r0 + ldrb r0, [r0] + cmp r0, #0xb + beq _0804A5B8 + b _0804A858 +_0804A5B8: + ldr r0, _0804A82C + ldr r0, [r0] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _0804A5E2 + ldr r0, _0804A830 + lsls r1, r2, #1 + adds r1, r1, r0 + ldrh r0, [r1] + ldrb r4, [r4, #0x10] + cmp r0, r4 + bne _0804A5E2 + adds r1, r0, #0 + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0804A834 + adds r0, r0, r1 + adds r1, r2, #0 + bl HandleLowHpMusicChange +_0804A5E2: + ldr r1, _0804A838 + movs r3, #0xfd + strb r3, [r1] + movs r0, #4 + strb r0, [r1, #1] + ldr r6, _0804A820 + ldrb r0, [r6] + strb r0, [r1, #2] + ldr r0, _0804A824 + mov sb, r0 + ldr r2, [r0] + ldrb r0, [r2, #0x10] + strb r0, [r1, #3] + movs r0, #0xff + strb r0, [r1, #4] + ldr r4, _0804A83C + strb r3, [r4] + movs r0, #1 + strb r0, [r4, #1] + strb r0, [r4, #2] + movs r0, #3 + strb r0, [r4, #3] + ldrb r0, [r2, #0x10] + movs r1, #0x64 + mov r8, r1 + mov r2, r8 + muls r2, r0, r2 + adds r0, r2, #0 + ldr r7, _0804A834 + adds r0, r0, r7 + movs r1, #0x38 + bl GetMonData + strb r0, [r4, #4] + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r4, #5] + bl BattleScriptPushCursor + ldr r2, _0804A840 + ldr r1, _0804A844 + mov r3, sb + ldr r5, [r3] + ldrb r0, [r5, #0x10] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r1, _0804A848 + ldr r0, _0804A84C + str r0, [r1] + ldr r4, _0804A850 + ldr r2, _0804A828 + ldrb r1, [r6] + lsls r1, r1, #9 + adds r0, r2, #2 + adds r0, r1, r0 + ldrb r3, [r0] + adds r2, #3 + adds r1, r1, r2 + ldrb r0, [r1] + lsls r0, r0, #8 + orrs r3, r0 + str r3, [r4] + ldrb r0, [r5, #0x10] + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + adds r0, r0, r7 + movs r1, #0 + bl AdjustFriendship + ldr r1, _0804A830 + mov r2, sb + ldr r0, [r2] + ldrb r2, [r0, #0x10] + ldrh r0, [r1] + cmp r0, r2 + bne _0804A74E + ldr r4, _0804A854 + ldrh r0, [r4, #0x28] + cmp r0, #0 + beq _0804A74E + mov r0, r8 + muls r0, r2, r0 + adds r0, r0, r7 + movs r1, #0x38 + bl GetMonData + adds r1, r4, #0 + adds r1, #0x2a + strb r0, [r1] + mov r3, sb + ldr r0, [r3] + ldrb r0, [r0, #0x10] + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + adds r0, r0, r7 + movs r1, #0x39 + bl GetMonData + strh r0, [r4, #0x28] + mov r2, sb + ldr r0, [r2] + ldrb r0, [r0, #0x10] + mov r3, r8 + muls r3, r0, r3 + adds r0, r3, #0 + adds r0, r0, r7 + movs r1, #0x3a + bl GetMonData + strh r0, [r4, #0x2c] + mov r1, sb + ldr r0, [r1] + ldrb r0, [r0, #0x10] + mov r2, r8 + muls r2, r0, r2 + adds r0, r2, #0 + adds r0, r0, r7 + movs r1, #0x3b + bl GetMonData + strh r0, [r4, #2] + mov r3, sb + ldr r0, [r3] + ldrb r0, [r0, #0x10] + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + adds r0, r0, r7 + movs r1, #0x3c + bl GetMonData + strh r0, [r4, #4] + mov r2, sb + ldr r0, [r2] + ldrb r0, [r0, #0x10] + mov r3, r8 + muls r3, r0, r3 + adds r0, r3, #0 + adds r0, r0, r7 + movs r1, #0x3d + bl GetMonData + strh r0, [r4, #6] + mov r1, sb + ldr r0, [r1] + ldrb r0, [r0, #0x10] + mov r2, r8 + muls r2, r0, r2 + adds r0, r2, #0 + adds r0, r0, r7 + movs r1, #0x3d + bl GetMonData + strh r0, [r4, #6] + mov r3, sb + ldr r0, [r3] + ldrb r0, [r0, #0x10] + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + adds r0, r0, r7 + movs r1, #0x3e + bl GetMonData + strh r0, [r4, #8] + mov r2, sb + ldr r0, [r2] + ldrb r0, [r0, #0x10] + mov r3, r8 + muls r3, r0, r3 + adds r0, r3, #0 + adds r0, r0, r7 + movs r1, #0x3f + bl GetMonData + strh r0, [r4, #0xa] +_0804A74E: + ldr r0, _0804A830 + ldr r7, _0804A824 + ldr r1, [r7] + ldrb r2, [r1, #0x10] + ldrh r0, [r0, #4] + cmp r0, r2 + beq _0804A75E + b _0804A85E +_0804A75E: + ldr r6, _0804A854 + movs r0, #0xd8 + adds r0, r0, r6 + mov r8, r0 + ldrh r0, [r0] + cmp r0, #0 + beq _0804A85E + ldr r0, _0804A82C + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0804A85E + movs r5, #0x64 + adds r0, r2, #0 + muls r0, r5, r0 + ldr r4, _0804A834 + adds r0, r0, r4 + movs r1, #0x38 + bl GetMonData + adds r1, r6, #0 + adds r1, #0xda + strb r0, [r1] + ldr r0, [r7] + ldrb r0, [r0, #0x10] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #0x39 + bl GetMonData + mov r1, r8 + strh r0, [r1] + ldr r0, [r7] + ldrb r0, [r0, #0x10] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #0x3a + bl GetMonData + adds r1, r6, #0 + adds r1, #0xdc + strh r0, [r1] + ldr r0, [r7] + ldrb r0, [r0, #0x10] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #0x3b + bl GetMonData + adds r1, r6, #0 + adds r1, #0xb2 + strh r0, [r1] + ldr r0, [r7] + ldrb r0, [r0, #0x10] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #0x3c + bl GetMonData + adds r1, r6, #0 + adds r1, #0xb4 + strh r0, [r1] + ldr r0, [r7] + ldrb r0, [r0, #0x10] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #0x3d + bl GetMonData + movs r2, #0xb6 + adds r2, r2, r6 + mov r8, r2 + strh r0, [r2] + ldr r0, [r7] + ldrb r0, [r0, #0x10] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #0x3d + bl GetMonData + mov r3, r8 + strh r0, [r3] + ldr r0, [r7] + ldrb r0, [r0, #0x10] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #0x3e + bl GetMonData + adds r1, r6, #0 + adds r1, #0xb8 + strh r0, [r1] + b _0804A85E + .align 2, 0 +_0804A81C: .4byte 0x02023D0C +_0804A820: .4byte 0x02023D08 +_0804A824: .4byte 0x02024140 +_0804A828: .4byte 0x02023508 +_0804A82C: .4byte 0x02022C90 +_0804A830: .4byte 0x02023D12 +_0804A834: .4byte 0x02024190 +_0804A838: .4byte 0x02022C0C +_0804A83C: .4byte 0x02022C1C +_0804A840: .4byte 0x03005AB4 +_0804A844: .4byte 0x082FACB4 +_0804A848: .4byte 0x02023EB8 +_0804A84C: .4byte 0x08289145 +_0804A850: .4byte 0x02023E94 +_0804A854: .4byte 0x02023D28 +_0804A858: + ldr r1, _0804A868 + movs r0, #0 + str r0, [r1] +_0804A85E: + ldr r1, _0804A86C + movs r0, #5 + strb r0, [r1, #0x1c] + b _0804A8E2 + .align 2, 0 +_0804A868: .4byte 0x02023E94 +_0804A86C: .4byte 0x02024118 +_0804A870: + ldr r0, _0804A880 + ldr r0, [r0] + cmp r0, #0 + beq _0804A888 + ldr r1, _0804A884 + movs r0, #3 + strb r0, [r1, #0x1c] + b _0804A8E2 + .align 2, 0 +_0804A880: .4byte 0x02023E94 +_0804A884: .4byte 0x02024118 +_0804A888: + ldr r2, _0804A8A4 + ldr r1, [r2] + ldrb r0, [r1, #0x10] + adds r0, #1 + strb r0, [r1, #0x10] + ldr r0, [r2] + ldrb r0, [r0, #0x10] + cmp r0, #5 + bhi _0804A8AC + ldr r1, _0804A8A8 + movs r0, #2 + strb r0, [r1, #0x1c] + b _0804A8E2 + .align 2, 0 +_0804A8A4: .4byte 0x02024140 +_0804A8A8: .4byte 0x02024118 +_0804A8AC: + ldr r1, _0804A8B4 + movs r0, #6 + strb r0, [r1, #0x1c] + b _0804A8E2 + .align 2, 0 +_0804A8B4: .4byte 0x02024118 +_0804A8B8: + ldr r0, _0804A8F0 + ldr r5, [r0] + cmp r5, #0 + bne _0804A8E2 + ldr r4, _0804A8F4 + ldr r2, _0804A8F8 + ldrb r0, [r2] + movs r1, #0x58 + muls r0, r1, r0 + adds r0, r0, r4 + movs r3, #0 + strh r5, [r0, #0x2e] + ldrb r0, [r2] + muls r0, r1, r0 + adds r0, r0, r4 + adds r0, #0x20 + strb r3, [r0] + ldr r1, _0804A8FC + ldr r0, [r1] + adds r0, #2 + str r0, [r1] +_0804A8E2: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0804A8F0: .4byte 0x02023D0C +_0804A8F4: .4byte 0x02023D28 +_0804A8F8: .4byte 0x02023EB1 +_0804A8FC: .4byte 0x02023EB8 + thumb_func_end atk23_getexp + + thumb_func_start atk24 +atk24: @ 0x0804A900 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r6, #0 + ldr r0, _0804A964 + ldr r0, [r0] + cmp r0, #0 + beq _0804A912 + b _0804AB52 +_0804A912: + ldr r0, _0804A968 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + beq _0804A978 + ldr r0, _0804A96C + ldrh r1, [r0] + ldr r0, _0804A970 + cmp r1, r0 + bne _0804A978 + movs r5, #0 +_0804A92C: + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _0804A974 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _0804A95C + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + bne _0804A95C + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + adds r0, r6, r0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 +_0804A95C: + adds r5, #1 + cmp r5, #2 + ble _0804A92C + b _0804A9D8 + .align 2, 0 +_0804A964: .4byte 0x02023D0C +_0804A968: .4byte 0x02022C90 +_0804A96C: .4byte 0x0203886E +_0804A970: .4byte 0x00000C03 +_0804A974: .4byte 0x02024190 +_0804A978: + movs r5, #0 +_0804A97A: + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _0804AAF0 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _0804A9D2 + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + bne _0804A9D2 + ldr r0, _0804AAF4 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xb + ands r0, r1 + cmp r0, #0 + beq _0804A9C4 + ldr r0, _0804AAF8 + ldr r0, [r0] + movs r1, #0xa8 + lsls r1, r1, #2 + adds r0, r0, r1 + ldrb r1, [r0] + ldr r2, _0804AAFC + lsls r0, r5, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _0804A9D2 +_0804A9C4: + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + adds r0, r6, r0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 +_0804A9D2: + adds r5, #1 + cmp r5, #5 + ble _0804A97A +_0804A9D8: + cmp r6, #0 + bne _0804A9E6 + ldr r0, _0804AB00 + ldrb r1, [r0] + movs r2, #2 + orrs r1, r2 + strb r1, [r0] +_0804A9E6: + movs r6, #0 + movs r5, #0 +_0804A9EA: + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _0804AB04 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _0804AA40 + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + bne _0804AA40 + ldr r0, _0804AAF4 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xb + ands r0, r1 + cmp r0, #0 + beq _0804AA32 + ldr r0, _0804AAF8 + ldr r0, [r0] + ldr r1, _0804AB08 + adds r0, r0, r1 + ldrb r1, [r0] + ldr r2, _0804AAFC + lsls r0, r5, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _0804AA40 +_0804AA32: + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + adds r0, r6, r0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 +_0804AA40: + adds r5, #1 + cmp r5, #5 + ble _0804A9EA + ldr r2, _0804AB00 + cmp r6, #0 + bne _0804AA54 + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] +_0804AA54: + ldrb r0, [r2] + cmp r0, #0 + bne _0804AB4A + ldr r0, _0804AAF4 + ldr r1, [r0] + ldr r2, _0804AB0C + ands r1, r2 + mov r8, r0 + cmp r1, #0 + beq _0804AB4A + movs r3, #0 + movs r5, #0 + ldr r0, _0804AB10 + ldrb r1, [r0] + mov ip, r0 + ldr r7, _0804AB14 + cmp r3, r1 + bge _0804AAA0 + ldr r0, _0804AB18 + movs r6, #0x80 + lsls r6, r6, #0x15 + ldr r4, [r0] + adds r2, r1, #0 + ldr r1, _0804AB1C +_0804AA84: + adds r0, r6, #0 + lsls r0, r5 + ands r0, r4 + cmp r0, #0 + beq _0804AA98 + ldrb r0, [r1] + lsls r0, r0, #0x19 + cmp r0, #0 + blt _0804AA98 + adds r3, #1 +_0804AA98: + adds r1, #0x28 + adds r5, #2 + cmp r5, r2 + blt _0804AA84 +_0804AAA0: + movs r2, #0 + movs r5, #1 + mov r4, ip + ldrb r1, [r4] + cmp r5, r1 + bge _0804AADA + ldr r0, _0804AB18 + movs r4, #0x80 + lsls r4, r4, #0x15 + mov ip, r4 + ldr r6, [r0] + ldr r0, _0804AB1C + adds r4, r1, #0 + adds r1, r0, #0 + adds r1, #0x14 +_0804AABE: + mov r0, ip + lsls r0, r5 + ands r0, r6 + cmp r0, #0 + beq _0804AAD2 + ldrb r0, [r1] + lsls r0, r0, #0x19 + cmp r0, #0 + blt _0804AAD2 + adds r2, #1 +_0804AAD2: + adds r1, #0x28 + adds r5, #2 + cmp r5, r4 + blt _0804AABE +_0804AADA: + mov r1, r8 + ldr r0, [r1] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0804AB20 + adds r0, r2, r3 + cmp r0, #1 + bgt _0804AB28 + b _0804AB42 + .align 2, 0 +_0804AAF0: .4byte 0x02024190 +_0804AAF4: .4byte 0x02022C90 +_0804AAF8: .4byte 0x02024140 +_0804AAFC: .4byte 0x082FACB4 +_0804AB00: .4byte 0x02023FDE +_0804AB04: .4byte 0x020243E8 +_0804AB08: .4byte 0x000002A1 +_0804AB0C: .4byte 0x02000002 +_0804AB10: .4byte 0x02023D10 +_0804AB14: .4byte 0x02023EB8 +_0804AB18: .4byte 0x02023F24 +_0804AB1C: .4byte 0x02024020 +_0804AB20: + cmp r2, #0 + beq _0804AB42 + cmp r3, #0 + beq _0804AB42 +_0804AB28: + ldr r2, [r7] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + adds r1, r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + adds r1, r1, r0 + str r1, [r7] + b _0804AB52 +_0804AB42: + ldr r0, [r7] + adds r0, #5 + str r0, [r7] + b _0804AB52 +_0804AB4A: + ldr r1, _0804AB5C + ldr r0, [r1] + adds r0, #5 + str r0, [r1] +_0804AB52: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0804AB5C: .4byte 0x02023EB8 + thumb_func_end atk24 + + thumb_func_start MoveValuesCleanUp +MoveValuesCleanUp: @ 0x0804AB60 + ldr r1, _0804AB88 + movs r0, #0 + strb r0, [r1] + ldr r0, _0804AB8C + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xe] + ldr r0, _0804AB90 + strb r1, [r0] + ldr r0, _0804AB94 + strb r2, [r0, #3] + strb r2, [r0, #6] + ldr r2, _0804AB98 + ldr r0, [r2] + subs r1, #0x42 + ands r0, r1 + ldr r1, _0804AB9C + ands r0, r1 + str r0, [r2] + bx lr + .align 2, 0 +_0804AB88: .4byte 0x02023F20 +_0804AB8C: .4byte 0x02024118 +_0804AB90: .4byte 0x02023EB5 +_0804AB94: .4byte 0x02023FD6 +_0804AB98: .4byte 0x02023F24 +_0804AB9C: .4byte 0xFFFFBFFF + thumb_func_end MoveValuesCleanUp + + thumb_func_start atk25_movevaluescleanup +atk25_movevaluescleanup: @ 0x0804ABA0 + push {lr} + bl MoveValuesCleanUp + ldr r1, _0804ABB4 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0804ABB4: .4byte 0x02023EB8 + thumb_func_end atk25_movevaluescleanup + + thumb_func_start atk26_setmultihit +atk26_setmultihit: @ 0x0804ABB8 + ldr r3, _0804ABC8 + ldr r2, _0804ABCC + ldr r0, [r2] + ldrb r1, [r0, #1] + strb r1, [r3] + adds r0, #2 + str r0, [r2] + bx lr + .align 2, 0 +_0804ABC8: .4byte 0x02023EB6 +_0804ABCC: .4byte 0x02023EB8 + thumb_func_end atk26_setmultihit + + thumb_func_start atk27_decrementmultihit +atk27_decrementmultihit: @ 0x0804ABD0 + push {lr} + ldr r1, _0804ABEC + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804ABF4 + ldr r1, _0804ABF0 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] + b _0804AC0E + .align 2, 0 +_0804ABEC: .4byte 0x02023EB6 +_0804ABF0: .4byte 0x02023EB8 +_0804ABF4: + ldr r3, _0804AC14 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + adds r1, r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + adds r1, r1, r0 + str r1, [r3] +_0804AC0E: + pop {r0} + bx r0 + .align 2, 0 +_0804AC14: .4byte 0x02023EB8 + thumb_func_end atk27_decrementmultihit + + thumb_func_start atk28_goto +atk28_goto: @ 0x0804AC18 + ldr r3, _0804AC34 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + adds r1, r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + adds r1, r1, r0 + str r1, [r3] + bx lr + .align 2, 0 +_0804AC34: .4byte 0x02023EB8 + thumb_func_end atk28_goto + + thumb_func_start atk29_jumpifbyte +atk29_jumpifbyte: @ 0x0804AC38 + push {r4, r5, r6, lr} + ldr r3, _0804AC7C + ldr r1, [r3] + ldrb r6, [r1, #1] + ldrb r2, [r1, #2] + ldrb r0, [r1, #3] + lsls r0, r0, #8 + adds r2, r2, r0 + ldrb r0, [r1, #4] + lsls r0, r0, #0x10 + adds r2, r2, r0 + ldrb r0, [r1, #5] + lsls r0, r0, #0x18 + adds r5, r2, r0 + ldrb r4, [r1, #6] + ldrb r2, [r1, #7] + ldrb r0, [r1, #8] + lsls r0, r0, #8 + adds r2, r2, r0 + ldrb r0, [r1, #9] + lsls r0, r0, #0x10 + adds r2, r2, r0 + ldrb r0, [r1, #0xa] + lsls r0, r0, #0x18 + adds r2, r2, r0 + adds r1, #0xb + str r1, [r3] + cmp r6, #5 + bhi _0804ACD0 + lsls r0, r6, #2 + ldr r1, _0804AC80 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804AC7C: .4byte 0x02023EB8 +_0804AC80: .4byte 0x0804AC84 +_0804AC84: @ jump table + .4byte _0804AC9C @ case 0 + .4byte _0804ACA4 @ case 1 + .4byte _0804ACAC @ case 2 + .4byte _0804ACB4 @ case 3 + .4byte _0804ACBC @ case 4 + .4byte _0804ACC6 @ case 5 +_0804AC9C: + ldrb r0, [r5] + cmp r0, r4 + bne _0804ACD0 + b _0804ACCE +_0804ACA4: + ldrb r0, [r5] + cmp r0, r4 + beq _0804ACD0 + b _0804ACCE +_0804ACAC: + ldrb r0, [r5] + cmp r0, r4 + bls _0804ACD0 + b _0804ACCE +_0804ACB4: + ldrb r0, [r5] + cmp r0, r4 + bhs _0804ACD0 + b _0804ACCE +_0804ACBC: + ldrb r0, [r5] + ands r4, r0 + cmp r4, #0 + beq _0804ACD0 + b _0804ACCE +_0804ACC6: + ldrb r0, [r5] + ands r4, r0 + cmp r4, #0 + bne _0804ACD0 +_0804ACCE: + str r2, [r3] +_0804ACD0: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end atk29_jumpifbyte + + thumb_func_start atk2A_jumpifhalfword +atk2A_jumpifhalfword: @ 0x0804ACD8 + push {r4, r5, r6, lr} + ldr r3, _0804AD24 + ldr r1, [r3] + ldrb r6, [r1, #1] + ldrb r2, [r1, #2] + ldrb r0, [r1, #3] + lsls r0, r0, #8 + adds r2, r2, r0 + ldrb r0, [r1, #4] + lsls r0, r0, #0x10 + adds r2, r2, r0 + ldrb r0, [r1, #5] + lsls r0, r0, #0x18 + adds r5, r2, r0 + ldrb r4, [r1, #6] + ldrb r0, [r1, #7] + lsls r0, r0, #8 + orrs r4, r0 + ldrb r2, [r1, #8] + ldrb r0, [r1, #9] + lsls r0, r0, #8 + adds r2, r2, r0 + ldrb r0, [r1, #0xa] + lsls r0, r0, #0x10 + adds r2, r2, r0 + ldrb r0, [r1, #0xb] + lsls r0, r0, #0x18 + adds r2, r2, r0 + adds r1, #0xc + str r1, [r3] + cmp r6, #5 + bhi _0804AD78 + lsls r0, r6, #2 + ldr r1, _0804AD28 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804AD24: .4byte 0x02023EB8 +_0804AD28: .4byte 0x0804AD2C +_0804AD2C: @ jump table + .4byte _0804AD44 @ case 0 + .4byte _0804AD4C @ case 1 + .4byte _0804AD54 @ case 2 + .4byte _0804AD5C @ case 3 + .4byte _0804AD64 @ case 4 + .4byte _0804AD6E @ case 5 +_0804AD44: + ldrh r0, [r5] + cmp r0, r4 + bne _0804AD78 + b _0804AD76 +_0804AD4C: + ldrh r0, [r5] + cmp r0, r4 + beq _0804AD78 + b _0804AD76 +_0804AD54: + ldrh r0, [r5] + cmp r0, r4 + bls _0804AD78 + b _0804AD76 +_0804AD5C: + ldrh r0, [r5] + cmp r0, r4 + bhs _0804AD78 + b _0804AD76 +_0804AD64: + ldrh r0, [r5] + ands r4, r0 + cmp r4, #0 + beq _0804AD78 + b _0804AD76 +_0804AD6E: + ldrh r0, [r5] + ands r4, r0 + cmp r4, #0 + bne _0804AD78 +_0804AD76: + str r2, [r3] +_0804AD78: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end atk2A_jumpifhalfword + + thumb_func_start atk2B_jumpifword +atk2B_jumpifword: @ 0x0804AD80 + push {r4, r5, r6, lr} + ldr r3, _0804ADD8 + ldr r1, [r3] + ldrb r6, [r1, #1] + ldrb r2, [r1, #2] + ldrb r0, [r1, #3] + lsls r0, r0, #8 + adds r2, r2, r0 + ldrb r0, [r1, #4] + lsls r0, r0, #0x10 + adds r2, r2, r0 + ldrb r0, [r1, #5] + lsls r0, r0, #0x18 + adds r5, r2, r0 + ldrb r4, [r1, #6] + ldrb r0, [r1, #7] + lsls r0, r0, #8 + orrs r4, r0 + ldrb r0, [r1, #8] + lsls r0, r0, #0x10 + orrs r4, r0 + ldrb r0, [r1, #9] + lsls r0, r0, #0x18 + orrs r4, r0 + ldrb r2, [r1, #0xa] + ldrb r0, [r1, #0xb] + lsls r0, r0, #8 + adds r2, r2, r0 + ldrb r0, [r1, #0xc] + lsls r0, r0, #0x10 + adds r2, r2, r0 + ldrb r0, [r1, #0xd] + lsls r0, r0, #0x18 + adds r2, r2, r0 + adds r1, #0xe + str r1, [r3] + cmp r6, #5 + bhi _0804AE2C + lsls r0, r6, #2 + ldr r1, _0804ADDC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804ADD8: .4byte 0x02023EB8 +_0804ADDC: .4byte 0x0804ADE0 +_0804ADE0: @ jump table + .4byte _0804ADF8 @ case 0 + .4byte _0804AE00 @ case 1 + .4byte _0804AE08 @ case 2 + .4byte _0804AE10 @ case 3 + .4byte _0804AE18 @ case 4 + .4byte _0804AE22 @ case 5 +_0804ADF8: + ldr r0, [r5] + cmp r0, r4 + bne _0804AE2C + b _0804AE2A +_0804AE00: + ldr r0, [r5] + cmp r0, r4 + beq _0804AE2C + b _0804AE2A +_0804AE08: + ldr r0, [r5] + cmp r0, r4 + bls _0804AE2C + b _0804AE2A +_0804AE10: + ldr r0, [r5] + cmp r0, r4 + bhs _0804AE2C + b _0804AE2A +_0804AE18: + ldr r0, [r5] + ands r0, r4 + cmp r0, #0 + beq _0804AE2C + b _0804AE2A +_0804AE22: + ldr r0, [r5] + ands r0, r4 + cmp r0, #0 + bne _0804AE2C +_0804AE2A: + str r2, [r3] +_0804AE2C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end atk2B_jumpifword + + thumb_func_start atk2C_jumpifarrayequal +atk2C_jumpifarrayequal: @ 0x0804AE34 + push {r4, r5, r6, r7, lr} + ldr r2, _0804AE8C + ldr r3, [r2] + ldrb r1, [r3, #1] + ldrb r0, [r3, #2] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r3, #3] + lsls r0, r0, #0x10 + adds r1, r1, r0 + ldrb r0, [r3, #4] + lsls r0, r0, #0x18 + adds r5, r1, r0 + ldrb r1, [r3, #5] + ldrb r0, [r3, #6] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r3, #7] + lsls r0, r0, #0x10 + adds r1, r1, r0 + ldrb r0, [r3, #8] + lsls r0, r0, #0x18 + adds r4, r1, r0 + ldrb r6, [r3, #9] + ldrb r1, [r3, #0xa] + ldrb r0, [r3, #0xb] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r3, #0xc] + lsls r0, r0, #0x10 + adds r1, r1, r0 + ldrb r0, [r3, #0xd] + lsls r0, r0, #0x18 + adds r1, r1, r0 + mov ip, r1 + movs r1, #0 + cmp r1, r6 + bhs _0804AEAC + ldrb r0, [r5] + ldrb r7, [r4] + cmp r0, r7 + beq _0804AE90 + adds r0, r3, #0 + b _0804AEA8 + .align 2, 0 +_0804AE8C: .4byte 0x02023EB8 +_0804AE90: + adds r5, #1 + adds r4, #1 + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, r6 + bhs _0804AEAC + ldrb r0, [r5] + ldrb r3, [r4] + cmp r0, r3 + beq _0804AE90 + ldr r0, [r2] +_0804AEA8: + adds r0, #0xe + str r0, [r2] +_0804AEAC: + cmp r1, r6 + bne _0804AEB4 + mov r7, ip + str r7, [r2] +_0804AEB4: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end atk2C_jumpifarrayequal + + thumb_func_start atk2D_jumpifarraynotequal +atk2D_jumpifarraynotequal: @ 0x0804AEBC + push {r4, r5, r6, r7, lr} + movs r7, #0 + ldr r3, _0804AF30 + ldr r1, [r3] + ldrb r2, [r1, #1] + ldrb r0, [r1, #2] + lsls r0, r0, #8 + adds r2, r2, r0 + ldrb r0, [r1, #3] + lsls r0, r0, #0x10 + adds r2, r2, r0 + ldrb r0, [r1, #4] + lsls r0, r0, #0x18 + adds r5, r2, r0 + ldrb r2, [r1, #5] + ldrb r0, [r1, #6] + lsls r0, r0, #8 + adds r2, r2, r0 + ldrb r0, [r1, #7] + lsls r0, r0, #0x10 + adds r2, r2, r0 + ldrb r0, [r1, #8] + lsls r0, r0, #0x18 + adds r4, r2, r0 + ldrb r6, [r1, #9] + ldrb r2, [r1, #0xa] + ldrb r0, [r1, #0xb] + lsls r0, r0, #8 + adds r2, r2, r0 + ldrb r0, [r1, #0xc] + lsls r0, r0, #0x10 + adds r2, r2, r0 + ldrb r0, [r1, #0xd] + lsls r0, r0, #0x18 + adds r2, r2, r0 + mov ip, r2 + movs r1, #0 + cmp r7, r6 + bhs _0804AF26 +_0804AF0A: + ldrb r0, [r5] + ldrb r2, [r4] + cmp r0, r2 + bne _0804AF18 + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 +_0804AF18: + adds r5, #1 + adds r4, #1 + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, r6 + blo _0804AF0A +_0804AF26: + cmp r7, r6 + beq _0804AF34 + mov r0, ip + b _0804AF38 + .align 2, 0 +_0804AF30: .4byte 0x02023EB8 +_0804AF34: + ldr r0, [r3] + adds r0, #0xe +_0804AF38: + str r0, [r3] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end atk2D_jumpifarraynotequal + + thumb_func_start atk2E_setbyte +atk2E_setbyte: @ 0x0804AF40 + ldr r3, _0804AF64 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + adds r1, r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + adds r1, r1, r0 + ldrb r0, [r2, #5] + strb r0, [r1] + ldr r0, [r3] + adds r0, #6 + str r0, [r3] + bx lr + .align 2, 0 +_0804AF64: .4byte 0x02023EB8 + thumb_func_end atk2E_setbyte + + thumb_func_start atk2F_addbyte +atk2F_addbyte: @ 0x0804AF68 + ldr r3, _0804AF90 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + adds r1, r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + adds r1, r1, r0 + ldrb r0, [r2, #5] + ldrb r2, [r1] + adds r0, r0, r2 + strb r0, [r1] + ldr r0, [r3] + adds r0, #6 + str r0, [r3] + bx lr + .align 2, 0 +_0804AF90: .4byte 0x02023EB8 + thumb_func_end atk2F_addbyte + + thumb_func_start atk30_subbyte +atk30_subbyte: @ 0x0804AF94 + ldr r3, _0804AFBC + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + adds r1, r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + adds r1, r1, r0 + ldrb r0, [r1] + ldrb r2, [r2, #5] + subs r0, r0, r2 + strb r0, [r1] + ldr r0, [r3] + adds r0, #6 + str r0, [r3] + bx lr + .align 2, 0 +_0804AFBC: .4byte 0x02023EB8 + thumb_func_end atk30_subbyte + + thumb_func_start atk31_copyarray +atk31_copyarray: @ 0x0804AFC0 + push {r4, r5, r6, lr} + ldr r3, _0804B010 + ldr r1, [r3] + ldrb r2, [r1, #1] + ldrb r0, [r1, #2] + lsls r0, r0, #8 + adds r2, r2, r0 + ldrb r0, [r1, #3] + lsls r0, r0, #0x10 + adds r2, r2, r0 + ldrb r0, [r1, #4] + lsls r0, r0, #0x18 + adds r6, r2, r0 + ldrb r2, [r1, #5] + ldrb r0, [r1, #6] + lsls r0, r0, #8 + adds r2, r2, r0 + ldrb r0, [r1, #7] + lsls r0, r0, #0x10 + adds r2, r2, r0 + ldrb r0, [r1, #8] + lsls r0, r0, #0x18 + adds r5, r2, r0 + ldrb r4, [r1, #9] + movs r2, #0 + cmp r2, r4 + bge _0804B004 +_0804AFF6: + adds r0, r6, r2 + adds r1, r5, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, r4 + blt _0804AFF6 +_0804B004: + ldr r0, [r3] + adds r0, #0xa + str r0, [r3] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0804B010: .4byte 0x02023EB8 + thumb_func_end atk31_copyarray + + thumb_func_start atk32_copyarraywithindex +atk32_copyarraywithindex: @ 0x0804B014 + push {r4, r5, r6, r7, lr} + ldr r3, _0804B07C + ldr r1, [r3] + ldrb r2, [r1, #1] + ldrb r0, [r1, #2] + lsls r0, r0, #8 + adds r2, r2, r0 + ldrb r0, [r1, #3] + lsls r0, r0, #0x10 + adds r2, r2, r0 + ldrb r0, [r1, #4] + lsls r0, r0, #0x18 + adds r7, r2, r0 + ldrb r2, [r1, #5] + ldrb r0, [r1, #6] + lsls r0, r0, #8 + adds r2, r2, r0 + ldrb r0, [r1, #7] + lsls r0, r0, #0x10 + adds r2, r2, r0 + ldrb r0, [r1, #8] + lsls r0, r0, #0x18 + adds r6, r2, r0 + ldrb r2, [r1, #9] + ldrb r0, [r1, #0xa] + lsls r0, r0, #8 + adds r2, r2, r0 + ldrb r0, [r1, #0xb] + lsls r0, r0, #0x10 + adds r2, r2, r0 + ldrb r0, [r1, #0xc] + lsls r0, r0, #0x18 + adds r5, r2, r0 + ldrb r4, [r1, #0xd] + movs r2, #0 + cmp r2, r4 + bge _0804B070 +_0804B05E: + adds r0, r7, r2 + ldrb r1, [r5] + adds r1, r2, r1 + adds r1, r6, r1 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, r4 + blt _0804B05E +_0804B070: + ldr r0, [r3] + adds r0, #0xe + str r0, [r3] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0804B07C: .4byte 0x02023EB8 + thumb_func_end atk32_copyarraywithindex + + thumb_func_start atk33_orbyte +atk33_orbyte: @ 0x0804B080 + ldr r3, _0804B0A8 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + adds r1, r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + adds r1, r1, r0 + ldrb r0, [r1] + ldrb r2, [r2, #5] + orrs r0, r2 + strb r0, [r1] + ldr r0, [r3] + adds r0, #6 + str r0, [r3] + bx lr + .align 2, 0 +_0804B0A8: .4byte 0x02023EB8 + thumb_func_end atk33_orbyte + + thumb_func_start atk34_orhalfword +atk34_orhalfword: @ 0x0804B0AC + push {r4, lr} + ldr r4, _0804B0E0 + ldr r3, [r4] + ldrb r2, [r3, #1] + ldrb r0, [r3, #2] + lsls r0, r0, #8 + adds r2, r2, r0 + ldrb r0, [r3, #3] + lsls r0, r0, #0x10 + adds r2, r2, r0 + ldrb r0, [r3, #4] + lsls r0, r0, #0x18 + adds r2, r2, r0 + ldrb r1, [r3, #5] + ldrb r0, [r3, #6] + lsls r0, r0, #8 + orrs r1, r0 + ldrh r0, [r2] + orrs r1, r0 + strh r1, [r2] + ldr r0, [r4] + adds r0, #7 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804B0E0: .4byte 0x02023EB8 + thumb_func_end atk34_orhalfword + + thumb_func_start atk35_orword +atk35_orword: @ 0x0804B0E4 + push {r4, lr} + ldr r4, _0804B124 + ldr r2, [r4] + ldrb r3, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + adds r3, r3, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + adds r3, r3, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + adds r3, r3, r0 + ldrb r1, [r2, #5] + ldrb r0, [r2, #6] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r2, #7] + lsls r0, r0, #0x10 + adds r1, r1, r0 + ldrb r0, [r2, #8] + lsls r0, r0, #0x18 + adds r1, r1, r0 + ldr r0, [r3] + orrs r0, r1 + str r0, [r3] + ldr r0, [r4] + adds r0, #9 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804B124: .4byte 0x02023EB8 + thumb_func_end atk35_orword + + thumb_func_start atk36_bicbyte +atk36_bicbyte: @ 0x0804B128 + ldr r3, _0804B150 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + adds r1, r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + adds r1, r1, r0 + ldrb r2, [r2, #5] + ldrb r0, [r1] + bics r0, r2 + strb r0, [r1] + ldr r0, [r3] + adds r0, #6 + str r0, [r3] + bx lr + .align 2, 0 +_0804B150: .4byte 0x02023EB8 + thumb_func_end atk36_bicbyte + + thumb_func_start atk37_bichalfword +atk37_bichalfword: @ 0x0804B154 + push {r4, lr} + ldr r4, _0804B188 + ldr r3, [r4] + ldrb r1, [r3, #1] + ldrb r0, [r3, #2] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r3, #3] + lsls r0, r0, #0x10 + adds r1, r1, r0 + ldrb r0, [r3, #4] + lsls r0, r0, #0x18 + adds r1, r1, r0 + ldrb r2, [r3, #5] + ldrb r0, [r3, #6] + lsls r0, r0, #8 + orrs r2, r0 + ldrh r0, [r1] + bics r0, r2 + strh r0, [r1] + ldr r0, [r4] + adds r0, #7 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804B188: .4byte 0x02023EB8 + thumb_func_end atk37_bichalfword + + thumb_func_start atk38_bicword +atk38_bicword: @ 0x0804B18C + push {r4, lr} + ldr r4, _0804B1CC + ldr r2, [r4] + ldrb r3, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + adds r3, r3, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + adds r3, r3, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + adds r3, r3, r0 + ldrb r1, [r2, #5] + ldrb r0, [r2, #6] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r2, #7] + lsls r0, r0, #0x10 + adds r1, r1, r0 + ldrb r0, [r2, #8] + lsls r0, r0, #0x18 + adds r1, r1, r0 + ldr r0, [r3] + bics r0, r1 + str r0, [r3] + ldr r0, [r4] + adds r0, #9 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804B1CC: .4byte 0x02023EB8 + thumb_func_end atk38_bicword + + thumb_func_start atk39_pause +atk39_pause: @ 0x0804B1D0 + push {r4, r5, lr} + ldr r0, _0804B204 + ldr r4, [r0] + cmp r4, #0 + bne _0804B1FC + ldr r5, _0804B208 + ldr r2, [r5] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldr r3, _0804B20C + ldrh r0, [r3] + adds r0, #1 + strh r0, [r3] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r1 + blo _0804B1FC + strh r4, [r3] + adds r0, r2, #3 + str r0, [r5] +_0804B1FC: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0804B204: .4byte 0x02023D0C +_0804B208: .4byte 0x02023EB8 +_0804B20C: .4byte 0x02023FD0 + thumb_func_end atk39_pause + + thumb_func_start atk0A_waitanimation +atk0A_waitanimation: @ 0x0804B210 + push {lr} + ldr r0, _0804B228 + ldr r0, [r0] + cmp r0, #0 + bne _0804B222 + ldr r1, _0804B22C + ldr r0, [r1] + adds r0, #1 + str r0, [r1] +_0804B222: + pop {r0} + bx r0 + .align 2, 0 +_0804B228: .4byte 0x02023D0C +_0804B22C: .4byte 0x02023EB8 + thumb_func_end atk0A_waitanimation + + thumb_func_start atk3B_healthbar_update +atk3B_healthbar_update: @ 0x0804B230 + push {lr} + ldr r0, _0804B244 + ldr r0, [r0] + ldrb r0, [r0, #1] + cmp r0, #0 + bne _0804B250 + ldr r0, _0804B248 + ldr r1, _0804B24C + b _0804B254 + .align 2, 0 +_0804B244: .4byte 0x02023EB8 +_0804B248: .4byte 0x02023D08 +_0804B24C: .4byte 0x02023EB0 +_0804B250: + ldr r0, _0804B278 + ldr r1, _0804B27C +_0804B254: + ldrb r1, [r1] + strb r1, [r0] + ldr r0, _0804B280 + ldrh r1, [r0] + movs r0, #0 + bl BtlController_EmitHealthBarUpdate + ldr r0, _0804B278 + ldrb r0, [r0] + bl MarkBattlerForControllerExec + ldr r1, _0804B284 + ldr r0, [r1] + adds r0, #2 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0804B278: .4byte 0x02023D08 +_0804B27C: .4byte 0x02023EAF +_0804B280: .4byte 0x02023E94 +_0804B284: .4byte 0x02023EB8 + thumb_func_end atk3B_healthbar_update + + thumb_func_start atk3C_return +atk3C_return: @ 0x0804B288 + push {lr} + bl HandleAction_RunBattleScript + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end atk3C_return + + thumb_func_start atk3D_end +atk3D_end: @ 0x0804B294 + push {lr} + ldr r0, _0804B2C0 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xb + ands r0, r1 + cmp r0, #0 + beq _0804B2AC + ldr r0, _0804B2C4 + ldrb r0, [r0] + bl BattleArena_AddSkillPoints +_0804B2AC: + ldr r0, _0804B2C8 + movs r1, #0 + strb r1, [r0] + ldr r0, _0804B2CC + strb r1, [r0] + ldr r1, _0804B2D0 + movs r0, #0xb + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0804B2C0: .4byte 0x02022C90 +_0804B2C4: .4byte 0x02023EAF +_0804B2C8: .4byte 0x02023F20 +_0804B2CC: .4byte 0x02023D08 +_0804B2D0: .4byte 0x02023D27 + thumb_func_end atk3D_end + + thumb_func_start atk3E_end2 +atk3E_end2: @ 0x0804B2D4 + ldr r1, _0804B2E4 + movs r0, #0 + strb r0, [r1] + ldr r1, _0804B2E8 + movs r0, #0xb + strb r0, [r1] + bx lr + .align 2, 0 +_0804B2E4: .4byte 0x02023D08 +_0804B2E8: .4byte 0x02023D27 + thumb_func_end atk3E_end2 + + thumb_func_start atk3F_end3 +atk3F_end3: @ 0x0804B2EC + push {lr} + bl HandleAction_RunBattleScript + ldr r3, _0804B320 + ldr r0, [r3] + ldr r0, [r0, #0xc] + adds r1, r0, #0 + adds r1, #0x20 + ldrb r0, [r1] + cmp r0, #0 + beq _0804B306 + subs r0, #1 + strb r0, [r1] +_0804B306: + ldr r2, _0804B324 + ldr r0, [r3] + ldr r1, [r0, #0xc] + adds r0, r1, #0 + adds r0, #0x20 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r2] + pop {r0} + bx r0 + .align 2, 0 +_0804B320: .4byte 0x0202414C +_0804B324: .4byte 0x03005A64 + thumb_func_end atk3F_end3 + + thumb_func_start atk41_call +atk41_call: @ 0x0804B328 + push {r4, lr} + ldr r4, _0804B354 + ldr r0, [r4] + adds r0, #5 + bl BattleScriptPush + ldr r2, [r4] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804B354: .4byte 0x02023EB8 + thumb_func_end atk41_call + + thumb_func_start atk42_jumpiftype2 +atk42_jumpiftype2: @ 0x0804B358 + push {r4, lr} + ldr r4, _0804B3A0 + ldr r0, [r4] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, [r4] + ldr r2, _0804B3A4 + movs r1, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + adds r1, r0, #0 + adds r1, #0x21 + ldrb r2, [r3, #2] + ldrb r1, [r1] + cmp r2, r1 + beq _0804B386 + adds r0, #0x22 + ldrb r0, [r0] + cmp r2, r0 + bne _0804B3A8 +_0804B386: + ldrb r1, [r3, #3] + ldrb r0, [r3, #4] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r3, #5] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r3, #6] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _0804B3AC + .align 2, 0 +_0804B3A0: .4byte 0x02023EB8 +_0804B3A4: .4byte 0x02023D28 +_0804B3A8: + adds r0, r3, #7 + str r0, [r4] +_0804B3AC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end atk42_jumpiftype2 + + thumb_func_start atk43_jumpifabilitypresent +atk43_jumpifabilitypresent: @ 0x0804B3B4 + push {r4, lr} + sub sp, #4 + ldr r4, _0804B3EC + ldr r0, [r4] + ldrb r2, [r0, #1] + movs r0, #0 + str r0, [sp] + movs r0, #0x13 + movs r1, #0 + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0804B3F0 + ldr r2, [r4] + ldrb r1, [r2, #2] + ldrb r0, [r2, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _0804B3F6 + .align 2, 0 +_0804B3EC: .4byte 0x02023EB8 +_0804B3F0: + ldr r0, [r4] + adds r0, #6 + str r0, [r4] +_0804B3F6: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end atk43_jumpifabilitypresent + + thumb_func_start atk44_endselectionscript +atk44_endselectionscript: @ 0x0804B400 + ldr r0, _0804B414 + ldrb r0, [r0] + ldr r1, _0804B418 + ldr r1, [r1] + adds r0, r0, r1 + adds r0, #0x54 + movs r1, #1 + strb r1, [r0] + bx lr + .align 2, 0 +_0804B414: .4byte 0x02023EAF +_0804B418: .4byte 0x02024140 + thumb_func_end atk44_endselectionscript + + thumb_func_start atk45_playanimation +atk45_playanimation: @ 0x0804B41C + push {r4, r5, r6, lr} + ldr r5, _0804B470 + ldr r0, [r5] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + ldr r6, _0804B474 + strb r0, [r6] + ldr r2, [r5] + ldrb r1, [r2, #3] + ldrb r0, [r2, #4] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x10 + adds r1, r1, r0 + ldrb r0, [r2, #6] + lsls r0, r0, #0x18 + adds r3, r1, r0 + ldrb r4, [r2, #2] + adds r0, r4, #0 + cmp r0, #1 + beq _0804B452 + cmp r0, #0x11 + beq _0804B452 + cmp r0, #2 + bne _0804B478 +_0804B452: + ldr r4, _0804B470 + ldr r0, [r4] + ldrb r1, [r0, #2] + ldrh r2, [r3] + movs r0, #0 + bl BtlController_EmitBattleAnimation + ldr r0, _0804B474 + ldrb r0, [r0] + bl MarkBattlerForControllerExec + ldr r0, [r4] + adds r0, #7 + str r0, [r4] + b _0804B4DA + .align 2, 0 +_0804B470: .4byte 0x02023EB8 +_0804B474: .4byte 0x02023D08 +_0804B478: + ldr r0, _0804B490 + ldr r0, [r0] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0804B498 + adds r0, r2, #7 + bl BattleScriptPush + ldr r0, _0804B494 + b _0804B4D8 + .align 2, 0 +_0804B490: .4byte 0x02023F24 +_0804B494: .4byte 0x08289141 +_0804B498: + adds r0, r4, #0 + subs r0, #0xa + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _0804B4C4 + ldr r1, _0804B4BC + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _0804B4C0 + ands r0, r1 + cmp r0, #0 + beq _0804B4C4 + adds r0, r2, #7 + b _0804B4D8 + .align 2, 0 +_0804B4BC: .4byte 0x02023F50 +_0804B4C0: .4byte 0x000400C0 +_0804B4C4: + ldrb r1, [r2, #2] + ldrh r2, [r3] + movs r0, #0 + bl BtlController_EmitBattleAnimation + ldrb r0, [r6] + bl MarkBattlerForControllerExec + ldr r0, [r5] + adds r0, #7 +_0804B4D8: + str r0, [r5] +_0804B4DA: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end atk45_playanimation + + thumb_func_start atk46_playanimation2 +atk46_playanimation2: @ 0x0804B4E0 + push {r4, r5, r6, r7, lr} + ldr r6, _0804B548 + ldr r0, [r6] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + ldr r7, _0804B54C + strb r0, [r7] + ldr r2, [r6] + ldrb r1, [r2, #2] + ldrb r0, [r2, #3] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x10 + adds r1, r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x18 + adds r3, r1, r0 + ldrb r1, [r2, #6] + ldrb r0, [r2, #7] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r2, #8] + lsls r0, r0, #0x10 + adds r1, r1, r0 + ldrb r0, [r2, #9] + lsls r0, r0, #0x18 + adds r4, r1, r0 + ldrb r5, [r3] + adds r0, r5, #0 + cmp r0, #1 + beq _0804B52A + cmp r0, #0x11 + beq _0804B52A + cmp r0, #2 + bne _0804B550 +_0804B52A: + ldrb r1, [r3] + ldrh r2, [r4] + movs r0, #0 + bl BtlController_EmitBattleAnimation + ldr r0, _0804B54C + ldrb r0, [r0] + bl MarkBattlerForControllerExec + ldr r1, _0804B548 + ldr r0, [r1] + adds r0, #0xa + str r0, [r1] + b _0804B5A6 + .align 2, 0 +_0804B548: .4byte 0x02023EB8 +_0804B54C: .4byte 0x02023D08 +_0804B550: + ldr r0, _0804B560 + ldr r0, [r0] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0804B564 + adds r0, r2, #0 + b _0804B5A2 + .align 2, 0 +_0804B560: .4byte 0x02023F24 +_0804B564: + adds r0, r5, #0 + subs r0, #0xa + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _0804B590 + ldr r1, _0804B588 + ldrb r0, [r7] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _0804B58C + ands r0, r1 + cmp r0, #0 + beq _0804B590 + adds r0, r2, #0 + b _0804B5A2 + .align 2, 0 +_0804B588: .4byte 0x02023F50 +_0804B58C: .4byte 0x000400C0 +_0804B590: + ldrb r1, [r3] + ldrh r2, [r4] + movs r0, #0 + bl BtlController_EmitBattleAnimation + ldrb r0, [r7] + bl MarkBattlerForControllerExec + ldr r0, [r6] +_0804B5A2: + adds r0, #0xa + str r0, [r6] +_0804B5A6: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end atk46_playanimation2 + + thumb_func_start atk47_setgraphicalstatchangevalues +atk47_setgraphicalstatchangevalues: @ 0x0804B5AC + push {r4, lr} + movs r3, #0 + ldr r1, _0804B5C8 + ldrb r0, [r1, #0x1a] + movs r2, #0xf0 + ands r2, r0 + adds r4, r1, #0 + cmp r2, #0x20 + beq _0804B5DA + cmp r2, #0x20 + bgt _0804B5CC + cmp r2, #0x10 + beq _0804B5D6 + b _0804B5E4 + .align 2, 0 +_0804B5C8: .4byte 0x02024118 +_0804B5CC: + cmp r2, #0x90 + beq _0804B5DE + cmp r2, #0xa0 + beq _0804B5E2 + b _0804B5E4 +_0804B5D6: + movs r3, #0xf + b _0804B5E4 +_0804B5DA: + movs r3, #0x27 + b _0804B5E4 +_0804B5DE: + movs r3, #0x16 + b _0804B5E4 +_0804B5E2: + movs r3, #0x2e +_0804B5E4: + ldrb r1, [r4, #0x1a] + movs r0, #0xf + ands r0, r1 + adds r0, r3, r0 + subs r0, #1 + movs r1, #0 + strb r0, [r4, #0x10] + strb r1, [r4, #0x11] + ldr r1, _0804B604 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804B604: .4byte 0x02023EB8 + thumb_func_end atk47_setgraphicalstatchangevalues + + thumb_func_start atk48_playstatchangeanimation +atk48_playstatchangeanimation: @ 0x0804B608 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + movs r7, #0 + movs r0, #0 + mov r8, r0 + movs r3, #0 + ldr r5, _0804B67C + ldr r0, [r5] + ldrb r0, [r0, #1] + str r3, [sp] + bl GetBattlerForBattleScript + ldr r2, _0804B680 + strb r0, [r2] + ldr r0, [r5] + ldrb r4, [r0, #2] + ldrb r1, [r0, #3] + movs r0, #1 + ands r0, r1 + ldr r3, [sp] + cmp r0, #0 + beq _0804B71C + movs r0, #2 + ands r0, r1 + movs r1, #0x15 + cmp r0, #0 + beq _0804B648 + movs r1, #0x2d +_0804B648: + cmp r4, #0 + beq _0804B6F0 + movs r0, #1 + mov sl, r0 + ldr r0, _0804B684 + mov sb, r0 + lsls r5, r1, #0x10 +_0804B656: + adds r0, r4, #0 + mov r1, sl + ands r0, r1 + cmp r0, #0 + beq _0804B6E2 + ldr r0, _0804B67C + ldr r0, [r0] + ldrb r1, [r0, #3] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0804B688 + ldr r0, _0804B680 + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r7, r0 + b _0804B6D0 + .align 2, 0 +_0804B67C: .4byte 0x02023EB8 +_0804B680: .4byte 0x02023D08 +_0804B684: .4byte 0x02023D40 +_0804B688: + ldr r6, _0804B70C + ldrb r0, [r6] + str r3, [sp] + bl GetBattlerPosition + mov r1, sl + ands r1, r0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0804B710 + adds r0, r0, r1 + ldrb r0, [r0, #4] + ldr r3, [sp] + cmp r0, #0 + bne _0804B6E2 + ldr r0, _0804B714 + ldrb r2, [r6] + movs r1, #0x58 + muls r2, r1, r2 + adds r0, r2, r0 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x1d + beq _0804B6E2 + cmp r0, #0x49 + beq _0804B6E2 + cmp r0, #0x33 + bne _0804B6C6 + cmp r7, #6 + beq _0804B6E2 +_0804B6C6: + cmp r0, #0x34 + bne _0804B6CE + cmp r7, #1 + beq _0804B6E2 +_0804B6CE: + adds r0, r7, r2 +_0804B6D0: + add r0, sb + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _0804B6E2 + lsrs r0, r5, #0x10 + mov r8, r0 + adds r3, #1 +_0804B6E2: + lsrs r4, r4, #1 + movs r1, #0x80 + lsls r1, r1, #9 + adds r5, r5, r1 + adds r7, #1 + cmp r4, #0 + bne _0804B656 +_0804B6F0: + ldr r0, _0804B718 + mov sb, r0 + cmp r3, #1 + ble _0804B77E + ldr r0, [r0] + ldrb r1, [r0, #3] + movs r0, #2 + ands r0, r1 + movs r1, #0x39 + mov r8, r1 + cmp r0, #0 + beq _0804B77E + movs r0, #0x3a + b _0804B77C + .align 2, 0 +_0804B70C: .4byte 0x02023D08 +_0804B710: .4byte 0x02023F38 +_0804B714: .4byte 0x02023D28 +_0804B718: .4byte 0x02023EB8 +_0804B71C: + movs r0, #2 + ands r0, r1 + movs r1, #0xe + cmp r0, #0 + beq _0804B728 + movs r1, #0x26 +_0804B728: + mov sb, r5 + cmp r4, #0 + beq _0804B764 + ldr r6, _0804B798 + adds r5, r2, #0 + lsls r2, r1, #0x10 +_0804B734: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _0804B756 + ldrb r1, [r5] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r7, r0 + adds r0, r0, r6 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0xb + bgt _0804B756 + lsrs r1, r2, #0x10 + mov r8, r1 + adds r3, #1 +_0804B756: + lsrs r4, r4, #1 + movs r0, #0x80 + lsls r0, r0, #9 + adds r2, r2, r0 + adds r7, #1 + cmp r4, #0 + bne _0804B734 +_0804B764: + cmp r3, #1 + ble _0804B77E + mov r1, sb + ldr r0, [r1] + ldrb r1, [r0, #3] + movs r0, #2 + ands r0, r1 + movs r1, #0x37 + mov r8, r1 + cmp r0, #0 + beq _0804B77E + movs r0, #0x38 +_0804B77C: + mov r8, r0 +_0804B77E: + mov r1, sb + ldr r2, [r1] + ldrb r1, [r2, #3] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0804B79C + cmp r3, #1 + bgt _0804B79C + adds r0, r2, #4 + mov r1, sb + b _0804B7EA + .align 2, 0 +_0804B798: .4byte 0x02023D40 +_0804B79C: + cmp r3, #0 + beq _0804B7E4 + ldr r4, _0804B7D8 + ldrb r0, [r4, #0x1b] + cmp r0, #0 + bne _0804B7E4 + movs r0, #0 + movs r1, #1 + mov r2, r8 + str r3, [sp] + bl BtlController_EmitBattleAnimation + ldr r0, _0804B7DC + ldrb r0, [r0] + bl MarkBattlerForControllerExec + ldr r0, _0804B7E0 + ldr r0, [r0] + ldrb r1, [r0, #3] + movs r0, #4 + ands r0, r1 + ldr r3, [sp] + cmp r0, #0 + beq _0804B7D4 + cmp r3, #1 + ble _0804B7D4 + movs r0, #1 + strb r0, [r4, #0x1b] +_0804B7D4: + ldr r1, _0804B7E0 + b _0804B7E6 + .align 2, 0 +_0804B7D8: .4byte 0x02024118 +_0804B7DC: .4byte 0x02023D08 +_0804B7E0: .4byte 0x02023EB8 +_0804B7E4: + mov r1, sb +_0804B7E6: + ldr r0, [r1] + adds r0, #4 +_0804B7EA: + str r0, [r1] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end atk48_playstatchangeanimation + + thumb_func_start sub_0804B7FC +sub_0804B7FC: @ 0x0804B7FC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + movs r0, #0 + mov sl, r0 + ldr r2, _0804B84C + ldrh r1, [r2] + ldr r0, _0804B850 + movs r3, #0 + str r3, [sp, #0x18] + cmp r1, r0 + beq _0804B81E + ldrh r2, [r2] + str r2, [sp, #0x18] +_0804B81E: + ldr r0, _0804B854 + ldr r0, [r0] + ldrb r4, [r0, #1] + str r4, [sp, #0x10] + ldrb r0, [r0, #2] + str r0, [sp, #0x14] + ldr r1, _0804B858 + ldr r0, _0804B85C + ldrb r2, [r0] + movs r0, #0x58 + muls r0, r2, r0 + adds r1, r0, r1 + ldrh r0, [r1, #0x2e] + cmp r0, #0xaf + bne _0804B864 + ldr r1, _0804B860 + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #7] + b _0804B86E + .align 2, 0 +_0804B84C: .4byte 0x02023E90 +_0804B850: .4byte 0x0000FFFF +_0804B854: .4byte 0x02023EB8 +_0804B858: .4byte 0x02023D28 +_0804B85C: .4byte 0x02023EAF +_0804B860: .4byte 0x020240A8 +_0804B864: + ldrh r0, [r1, #0x2e] + bl sub_080D6CF8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_0804B86E: + str r0, [sp, #8] + ldr r1, _0804B890 + ldr r0, _0804B894 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, #0xc8 + ldr r1, [r1] + adds r0, r1, r0 + str r0, [sp, #0xc] + ldrb r0, [r1, #0x13] + cmp r0, #0 + beq _0804B920 + movs r5, #0x3f + ands r5, r0 + str r5, [sp, #4] + b _0804B932 + .align 2, 0 +_0804B890: .4byte 0x02024140 +_0804B894: .4byte 0x02023EAF +_0804B898: + ldr r4, _0804B8AC + strb r2, [r4] + movs r0, #0 + movs r1, #1 + bl BtlController_EmitSpriteInvisibility + ldrb r0, [r4] + bl MarkBattlerForControllerExec + b _0804BD8A + .align 2, 0 +_0804B8AC: .4byte 0x02023D08 +_0804B8B0: + ldr r4, _0804B8D4 + strb r2, [r4] + movs r0, #0 + movs r1, #0 + bl BtlController_EmitSpriteInvisibility + ldrb r0, [r4] + bl MarkBattlerForControllerExec + ldrb r1, [r6] + lsls r1, r1, #2 + adds r1, r1, r5 + ldr r0, [r1] + ldr r2, _0804B8D8 + ands r0, r2 + str r0, [r1] + b _0804BD8A + .align 2, 0 +_0804B8D4: .4byte 0x02023D08 +_0804B8D8: .4byte 0xFFFBFF3F + thumb_func_end sub_0804B7FC + + thumb_func_start sub_0804B8DC +sub_0804B8DC: @ 0x0804B8DC + strb r2, [r7] + ldr r0, [r5] + orrs r0, r6 + str r0, [r5] + ldr r0, _0804B910 + strb r4, [r0, #0x14] + bl MoveValuesCleanUp + ldr r2, _0804B914 + mov r0, r8 + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sb + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + bl BattleScriptPush + ldr r1, _0804B918 + ldr r0, _0804B91C + bl _0804C1E8 + .align 2, 0 +_0804B910: .4byte 0x02024118 +_0804B914: .4byte 0x08286C30 +_0804B918: .4byte 0x02023EB8 +_0804B91C: .4byte 0x08289E05 +_0804B920: + ldr r2, _0804B938 + ldr r0, _0804B93C + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #2] + str r0, [sp, #4] +_0804B932: + ldr r1, _0804B940 + mov ip, r1 + b _0804B94E + .align 2, 0 +_0804B938: .4byte 0x082ED220 +_0804B93C: .4byte 0x02023E8E +_0804B940: .4byte 0x02024118 + thumb_func_end sub_0804B8DC + + thumb_func_start atk49_moveend +atk49_moveend: @ 0x0804B944 + mov r2, sl + cmp r2, #0 + beq _0804B94E + bl _0804C1D4 +_0804B94E: + mov r3, ip + ldrb r0, [r3, #0x14] + cmp r0, #0x11 + bls _0804B95A + bl _0804C1A0 +_0804B95A: + lsls r0, r0, #2 + ldr r1, _0804B964 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804B964: .4byte 0x0804B968 +_0804B968: @ jump table + .4byte _0804B9B0 @ case 0 + .4byte _0804BA8C @ case 1 + .4byte _0804BB48 @ case 2 + .4byte _0804BB6C @ case 3 + .4byte _0804BB84 @ case 4 + .4byte _0804BBAC @ case 5 + .4byte _0804BBD0 @ case 6 + .4byte _0804BC78 @ case 7 + .4byte _0804BCEE @ case 8 + .4byte _0804BD24 @ case 9 + .4byte _0804BDC4 @ case 10 + .4byte _0804BCB8 @ case 11 + .4byte _0804BCD8 @ case 12 + .4byte _0804BE08 @ case 13 + .4byte _0804BE4C @ case 14 + .4byte _0804C02C @ case 15 + .4byte _0804C114 @ case 16 + .4byte _0804C1A0 @ case 17 +_0804B9B0: + ldr r6, _0804BA68 + ldr r5, _0804BA6C + ldrb r3, [r5] + movs r7, #0x58 + adds r2, r3, #0 + muls r2, r7, r2 + adds r0, r6, #0 + adds r0, #0x50 + adds r0, r2, r0 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x10 + ands r0, r1 + cmp r0, #0 + bne _0804B9D0 + b _0804BDB4 +_0804B9D0: + adds r0, r2, r6 + ldrh r0, [r0, #0x28] + cmp r0, #0 + bne _0804B9DA + b _0804BDB4 +_0804B9DA: + ldr r0, _0804BA70 + ldrb r1, [r0] + cmp r1, r3 + bne _0804B9E4 + b _0804BDB4 +_0804B9E4: + adds r0, r1, #0 + bl GetBattlerSide + adds r4, r0, #0 + ldrb r0, [r5] + bl GetBattlerSide + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + bne _0804B9FC + b _0804BDB4 +_0804B9FC: + ldr r0, _0804BA74 + ldrb r1, [r0] + movs r0, #0x29 + ands r0, r1 + cmp r0, #0 + beq _0804BA0A + b _0804BDB4 +_0804BA0A: + ldr r2, _0804BA78 + ldrb r3, [r5] + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r1, r0, #2 + adds r0, r2, #0 + adds r0, #8 + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, #0 + bne _0804BA2E + adds r0, r2, #0 + adds r0, #0xc + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, #0 + bne _0804BA2E + b _0804BDB4 +_0804BA2E: + ldr r2, _0804BA7C + ldr r0, _0804BA80 + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #1] + cmp r0, #0 + bne _0804BA44 + b _0804BDB4 +_0804BA44: + adds r0, r3, #0 + muls r0, r7, r0 + adds r1, r0, r6 + ldrb r2, [r1, #0x19] + movs r0, #0x19 + ldrsb r0, [r1, r0] + cmp r0, #0xb + ble _0804BA56 + b _0804BDB4 +_0804BA56: + adds r0, r2, #1 + strb r0, [r1, #0x19] + bl BattleScriptPushCursor + ldr r1, _0804BA84 + ldr r0, _0804BA88 + str r0, [r1] + b _0804BCE8 + .align 2, 0 +_0804BA68: .4byte 0x02023D28 +_0804BA6C: .4byte 0x02023EB0 +_0804BA70: .4byte 0x02023EAF +_0804BA74: .4byte 0x02023F20 +_0804BA78: .4byte 0x02024020 +_0804BA7C: .4byte 0x082ED220 +_0804BA80: .4byte 0x02023E8E +_0804BA84: .4byte 0x02023EB8 +_0804BA88: .4byte 0x08289395 +_0804BA8C: + ldr r4, _0804BB28 + ldr r6, _0804BB2C + ldrb r2, [r6] + movs r5, #0x58 + mov ip, r5 + mov r1, ip + muls r1, r2, r1 + adds r7, r4, #0 + adds r7, #0x4c + adds r5, r1, r7 + ldr r3, [r5] + movs r0, #0x20 + ands r0, r3 + cmp r0, #0 + bne _0804BAAC + b _0804BDB4 +_0804BAAC: + adds r0, r1, r4 + ldrh r0, [r0, #0x28] + cmp r0, #0 + bne _0804BAB6 + b _0804BDB4 +_0804BAB6: + ldr r0, _0804BB30 + ldrb r0, [r0] + cmp r0, r2 + bne _0804BAC0 + b _0804BDB4 +_0804BAC0: + ldr r0, _0804BB34 + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r0, #0xc + adds r1, r1, r0 + ldr r0, [r1] + cmp r0, #0 + bne _0804BAD4 + b _0804BDB4 +_0804BAD4: + ldr r0, _0804BB38 + ldrb r1, [r0] + movs r0, #0x29 + ands r0, r1 + cmp r0, #0 + beq _0804BAE2 + b _0804BDB4 +_0804BAE2: + ldr r0, [sp, #4] + cmp r0, #0xa + beq _0804BAEA + b _0804BDB4 +_0804BAEA: + movs r0, #0x21 + rsbs r0, r0, #0 + ands r3, r0 + str r3, [r5] + ldr r4, _0804BB3C + ldrb r0, [r6] + strb r0, [r4] + ldrb r0, [r6] + mov r1, ip + muls r1, r0, r1 + adds r0, r1, #0 + adds r0, r0, r7 + str r0, [sp] + movs r0, #0 + movs r1, #0x28 + movs r2, #0 + movs r3, #4 + bl BtlController_EmitSetMonData + ldrb r0, [r4] + bl MarkBattlerForControllerExec + bl BattleScriptPushCursor + ldr r1, _0804BB40 + ldr r0, _0804BB44 + str r0, [r1] + movs r2, #1 + mov sl, r2 + b _0804BDB4 + .align 2, 0 +_0804BB28: .4byte 0x02023D28 +_0804BB2C: .4byte 0x02023EB0 +_0804BB30: .4byte 0x02023EAF +_0804BB34: .4byte 0x02024020 +_0804BB38: .4byte 0x02023F20 +_0804BB3C: .4byte 0x02023D08 +_0804BB40: .4byte 0x02023EB8 +_0804BB44: .4byte 0x0828980A +_0804BB48: + ldr r0, _0804BB68 + ldrb r1, [r0] + movs r0, #0 + str r0, [sp] + movs r0, #7 + movs r2, #0 + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804BB62 + b _0804BDB4 +_0804BB62: + movs r3, #1 + mov sl, r3 + b _0804BDB4 + .align 2, 0 +_0804BB68: .4byte 0x02023EB0 +_0804BB6C: + ldr r0, _0804BB80 + ldrb r1, [r0] + movs r0, #0 + str r0, [sp] + movs r0, #4 + movs r2, #0 + movs r3, #0 + bl AbilityBattleEffects + b _0804BCE2 + .align 2, 0 +_0804BB80: .4byte 0x02023EB0 +_0804BB84: + movs r0, #0 + str r0, [sp] + movs r0, #5 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804BB9C + b _0804BDB4 +_0804BB9C: + movs r5, #1 + mov sl, r5 + ldr r0, _0804BBA8 + mov ip, r0 + b _0804C1A0 + .align 2, 0 +_0804BBA8: .4byte 0x02024118 +_0804BBAC: + ldr r0, _0804BBCC + ldrb r1, [r0] + movs r0, #0 + str r0, [sp] + movs r0, #8 + movs r2, #0 + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804BBC6 + b _0804BDB4 +_0804BBC6: + movs r1, #1 + mov sl, r1 + b _0804BDB4 + .align 2, 0 +_0804BBCC: .4byte 0x02023EAF +_0804BBD0: + ldr r0, _0804BC60 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x12 + ands r0, r1 + cmp r0, #0 + beq _0804BC14 + ldr r2, [sp, #8] + cmp r2, #0x1d + bne _0804BC14 + ldr r0, _0804BC64 + ldrh r2, [r0] + adds r3, r0, #0 + cmp r2, #0xa5 + beq _0804BC14 + ldr r4, [sp, #0xc] + ldrh r1, [r4] + cmp r1, #0 + beq _0804BBFC + ldr r0, _0804BC68 + cmp r1, r0 + bne _0804BC14 +_0804BBFC: + cmp r2, #0xe2 + bne _0804BC0E + ldr r0, _0804BC6C + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _0804BC0E + b _0804C0E6 +_0804BC0E: + ldrh r0, [r3] + ldr r1, [sp, #0xc] + strh r0, [r1] +_0804BC14: + movs r4, #0 + ldr r2, _0804BC70 + ldr r3, _0804BC74 + ldrb r1, [r3] + movs r0, #0x58 + muls r0, r1, r0 + adds r2, #0xc + adds r0, r0, r2 + ldrh r0, [r0] + ldr r5, [sp, #0xc] + ldrh r1, [r5] + mov sb, r3 + cmp r0, r1 + beq _0804BC4C + mov r6, sb + movs r3, #0x58 + adds r5, r1, #0 +_0804BC36: + adds r4, #1 + cmp r4, #3 + bgt _0804BC4C + lsls r0, r4, #1 + ldrb r1, [r6] + muls r1, r3, r1 + adds r0, r0, r1 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r0, r5 + bne _0804BC36 +_0804BC4C: + cmp r4, #4 + bne _0804BC56 + movs r0, #0 + ldr r1, [sp, #0xc] + strh r0, [r1] +_0804BC56: + mov r2, ip + ldrb r0, [r2, #0x14] + adds r0, #1 + strb r0, [r2, #0x14] + b _0804C1A0 + .align 2, 0 +_0804BC60: .4byte 0x02023F24 +_0804BC64: .4byte 0x02023E90 +_0804BC68: .4byte 0x0000FFFF +_0804BC6C: .4byte 0x02023F20 +_0804BC70: .4byte 0x02023D28 +_0804BC74: .4byte 0x02023EAF +_0804BC78: + movs r4, #0 + ldr r0, _0804BCAC + ldrb r3, [r0] + cmp r4, r3 + blt _0804BC84 + b _0804BE32 +_0804BC84: + ldr r7, _0804BCB0 + movs r6, #0 + movs r3, #0xd0 + adds r5, r0, #0 + ldr r2, _0804BCB4 +_0804BC8E: + ldr r0, [r7] + adds r0, r0, r3 + ldrh r1, [r0] + cmp r1, #0 + beq _0804BC9C + strh r1, [r2, #0x2e] + strh r6, [r0] +_0804BC9C: + adds r3, #2 + adds r2, #0x58 + adds r4, #1 + ldrb r0, [r5] + cmp r4, r0 + blt _0804BC8E + b _0804BE32 + .align 2, 0 +_0804BCAC: .4byte 0x02023D10 +_0804BCB0: .4byte 0x02024140 +_0804BCB4: .4byte 0x02023D28 +_0804BCB8: + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ItemBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0804BDB4 + movs r2, #1 + mov sl, r2 + ldr r3, _0804BCD4 + mov ip, r3 + b _0804C1A0 + .align 2, 0 +_0804BCD4: .4byte 0x02024118 +_0804BCD8: + movs r0, #4 + movs r1, #0 + movs r2, #0 + bl ItemBattleEffects +_0804BCE2: + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0804BDB4 +_0804BCE8: + movs r4, #1 + mov sl, r4 + b _0804BDB4 +_0804BCEE: + ldr r1, _0804BD14 + ldr r0, _0804BD18 + ldrb r2, [r0] + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _0804BD1C + ands r0, r1 + cmp r0, #0 + bne _0804BD04 + b _0804C0E6 +_0804BD04: + ldr r0, _0804BD20 + ldr r0, [r0] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0804BD12 + b _0804B898 +_0804BD12: + b _0804C0E6 + .align 2, 0 +_0804BD14: .4byte 0x02023F50 +_0804BD18: .4byte 0x02023EAF +_0804BD1C: .4byte 0x000400C0 +_0804BD20: .4byte 0x02023F24 +_0804BD24: + ldr r0, _0804BD94 + ldrb r1, [r0] + movs r0, #0x29 + ands r0, r1 + cmp r0, #0 + bne _0804BD50 + ldr r1, _0804BD98 + ldr r0, _0804BD9C + ldrb r2, [r0] + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _0804BDA0 + ands r0, r1 + cmp r0, #0 + beq _0804BD50 + adds r0, r2, #0 + bl WasUnableToUseMove + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0804BDB4 +_0804BD50: + ldr r4, _0804BDA4 + ldr r5, _0804BD9C + ldrb r0, [r5] + strb r0, [r4] + movs r0, #0 + movs r1, #0 + bl BtlController_EmitSpriteInvisibility + ldrb r0, [r4] + bl MarkBattlerForControllerExec + ldr r0, _0804BD98 + ldrb r2, [r5] + lsls r2, r2, #2 + adds r2, r2, r0 + ldr r0, [r2] + ldr r1, _0804BDA8 + ands r0, r1 + str r0, [r2] + ldr r2, _0804BDAC + ldrb r1, [r5] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_0804BD8A: + ldr r1, _0804BDB0 + ldrb r0, [r1, #0x14] + adds r0, #1 + strb r0, [r1, #0x14] + b _0804C1EA + .align 2, 0 +_0804BD94: .4byte 0x02023F20 +_0804BD98: .4byte 0x02023F50 +_0804BD9C: .4byte 0x02023EAF +_0804BDA0: .4byte 0x000400C0 +_0804BDA4: .4byte 0x02023D08 +_0804BDA8: .4byte 0xFFFBFF3F +_0804BDAC: .4byte 0x02024020 +_0804BDB0: .4byte 0x02024118 +_0804BDB4: + ldr r1, _0804BDC0 + ldrb r0, [r1, #0x14] + adds r0, #1 + strb r0, [r1, #0x14] + mov ip, r1 + b _0804C1A0 + .align 2, 0 +_0804BDC0: .4byte 0x02024118 +_0804BDC4: + ldr r0, _0804BDF4 + ldr r6, _0804BDF8 + ldrb r2, [r6] + lsls r3, r2, #2 + adds r1, r3, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1] + lsls r0, r0, #0x1d + cmp r0, #0 + blt _0804BE32 + ldr r0, _0804BDFC + ldrb r0, [r0] + cmp r2, r0 + bhs _0804BE32 + ldr r5, _0804BE00 + adds r0, r3, r5 + ldr r0, [r0] + ldr r1, _0804BE04 + ands r0, r1 + cmp r0, #0 + bne _0804BDF2 + b _0804B8B0 +_0804BDF2: + b _0804BE32 + .align 2, 0 +_0804BDF4: .4byte 0x02024020 +_0804BDF8: .4byte 0x02023EB0 +_0804BDFC: .4byte 0x02023D10 +_0804BE00: .4byte 0x02023F50 +_0804BE04: .4byte 0x000400C0 +_0804BE08: + movs r4, #0 + ldr r0, _0804BE3C + ldrb r2, [r0] + cmp r4, r2 + bge _0804BE32 + ldr r2, _0804BE40 + ldr r5, _0804BE44 + adds r3, r0, #0 + ldr r1, _0804BE48 +_0804BE1A: + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _0804BE26 + ldr r0, [r1] + ands r0, r5 + str r0, [r1] +_0804BE26: + adds r2, #0x1c + adds r1, #0x58 + adds r4, #1 + ldrb r0, [r3] + cmp r4, r0 + blt _0804BE1A +_0804BE32: + mov r1, ip + ldrb r0, [r1, #0x14] + adds r0, #1 + strb r0, [r1, #0x14] + b _0804C1A0 + .align 2, 0 +_0804BE3C: .4byte 0x02023D10 +_0804BE40: .4byte 0x02023F60 +_0804BE44: .4byte 0xFEFFFFFF +_0804BE48: .4byte 0x02023D78 +_0804BE4C: + ldr r1, _0804BF00 + ldr r3, [r1] + movs r0, #0x80 + lsls r0, r0, #5 + ands r0, r3 + ldr r2, _0804BF04 + mov sb, r2 + adds r5, r1, #0 + cmp r0, #0 + beq _0804BE76 + ldr r0, _0804BF08 + ldrb r2, [r2] + strb r2, [r0] + ldr r1, _0804BF0C + ldrb r0, [r1] + mov r4, sb + strb r0, [r4] + strb r2, [r1] + ldr r0, _0804BF10 + ands r3, r0 + str r3, [r5] +_0804BE76: + ldr r0, [r5] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _0804BE92 + ldr r0, _0804BF14 + mov r2, sb + ldrb r1, [r2] + lsls r1, r1, #1 + adds r1, r1, r0 + ldr r0, _0804BF18 + ldrh r0, [r0] + strh r0, [r1] +_0804BE92: + ldr r0, _0804BF1C + ldrb r1, [r0] + ldr r2, _0804BF20 + mov r3, sb + ldrb r4, [r3] + lsls r0, r4, #2 + adds r0, r0, r2 + ldr r3, [r0] + ands r1, r3 + adds r6, r2, #0 + cmp r1, #0 + beq _0804BEAC + b _0804C018 +_0804BEAC: + ldr r0, _0804BF24 + ldr r1, [r0] + adds r1, #0x91 + ldrb r1, [r1] + ands r1, r3 + adds r7, r0, #0 + cmp r1, #0 + beq _0804BEBE + b _0804C018 +_0804BEBE: + ldr r0, _0804BF28 + ldr r2, [sp, #0x18] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r1, [r1] + mov r8, r0 + cmp r1, #0x7f + bne _0804BED4 + b _0804C018 +_0804BED4: + ldr r0, [r5] + movs r1, #0x80 + lsls r1, r1, #0x12 + ands r0, r1 + cmp r0, #0 + beq _0804BF38 + ldr r0, _0804BF2C + lsls r1, r4, #1 + adds r1, r1, r0 + ldr r0, _0804BF18 + ldrh r0, [r0] + strh r0, [r1] + ldr r0, _0804BF30 + mov r3, sb + ldrb r1, [r3] + lsls r1, r1, #1 + adds r1, r1, r0 + ldr r0, _0804BF34 + ldrh r0, [r0] + strh r0, [r1] + b _0804BF52 + .align 2, 0 +_0804BF00: .4byte 0x02023F24 +_0804BF04: .4byte 0x02023EAF +_0804BF08: .4byte 0x02023D08 +_0804BF0C: .4byte 0x02023EB0 +_0804BF10: .4byte 0xFFFFEFFF +_0804BF14: .4byte 0x02023EE4 +_0804BF18: .4byte 0x02023E90 +_0804BF1C: .4byte 0x02023EB4 +_0804BF20: .4byte 0x082FACB4 +_0804BF24: .4byte 0x02024140 +_0804BF28: .4byte 0x082ED220 +_0804BF2C: .4byte 0x02023EEC +_0804BF30: .4byte 0x02023F04 +_0804BF34: .4byte 0x02023E8E +_0804BF38: + ldr r1, _0804BFA0 + lsls r0, r4, #1 + adds r0, r0, r1 + ldr r1, _0804BFA4 + strh r1, [r0] + ldr r1, _0804BFA8 + mov r4, sb + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #1 + rsbs r1, r1, #0 + strh r1, [r0] +_0804BF52: + ldr r2, _0804BFAC + ldrb r3, [r2] + lsls r0, r3, #2 + adds r0, r0, r6 + ldr r0, [r0] + lsls r0, r0, #0x1c + ldr r1, [r5] + ands r1, r0 + cmp r1, #0 + bne _0804BF70 + ldr r0, _0804BFB0 + adds r0, r3, r0 + mov r3, sb + ldrb r1, [r3] + strb r1, [r0] +_0804BF70: + ldr r0, [r5] + movs r1, #0x80 + lsls r1, r1, #0x12 + ands r0, r1 + cmp r0, #0 + beq _0804C00C + ldr r0, _0804BFB4 + ldrb r1, [r0] + movs r0, #0x29 + ands r0, r1 + cmp r0, #0 + bne _0804C00C + ldr r0, _0804BFB8 + ldrh r3, [r0] + ldr r0, _0804BFA4 + cmp r3, r0 + bne _0804BFC0 + ldr r1, _0804BFBC + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r1 + strh r3, [r0] + b _0804C018 + .align 2, 0 +_0804BFA0: .4byte 0x02023EEC +_0804BFA4: .4byte 0x0000FFFF +_0804BFA8: .4byte 0x02023F04 +_0804BFAC: .4byte 0x02023EB0 +_0804BFB0: .4byte 0x02023F14 +_0804BFB4: .4byte 0x02023F20 +_0804BFB8: .4byte 0x02023E90 +_0804BFBC: .4byte 0x02023EF4 +_0804BFC0: + ldr r0, _0804BFE4 + ldrb r1, [r2] + lsls r1, r1, #1 + adds r1, r1, r0 + ldr r4, _0804BFE8 + ldrh r0, [r4] + strh r0, [r1] + ldr r0, [r7] + ldrb r3, [r0, #0x13] + cmp r3, #0 + beq _0804BFF0 + ldr r0, _0804BFEC + ldrb r1, [r2] + lsls r1, r1, #1 + adds r1, r1, r0 + movs r0, #0x3f + ands r0, r3 + b _0804C016 + .align 2, 0 +_0804BFE4: .4byte 0x02023EF4 +_0804BFE8: .4byte 0x02023E8E +_0804BFEC: .4byte 0x02023EFC +_0804BFF0: + ldr r0, _0804C008 + ldrb r2, [r2] + lsls r2, r2, #1 + adds r2, r2, r0 + ldrh r1, [r4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + ldrb r0, [r0, #2] + strh r0, [r2] + b _0804C018 + .align 2, 0 +_0804C008: .4byte 0x02023EFC +_0804C00C: + ldr r0, _0804C024 + ldrb r1, [r2] + lsls r1, r1, #1 + adds r1, r1, r0 + ldr r0, _0804C028 +_0804C016: + strh r0, [r1] +_0804C018: + mov r4, ip + ldrb r0, [r4, #0x14] + adds r0, #1 + strb r0, [r4, #0x14] + b _0804C1A0 + .align 2, 0 +_0804C024: .4byte 0x02023EF4 +_0804C028: .4byte 0x0000FFFF +_0804C02C: + ldr r0, _0804C0F0 + ldrb r1, [r0] + ldr r7, _0804C0F4 + ldr r2, _0804C0F8 + ldrb r3, [r2] + lsls r0, r3, #2 + adds r0, r0, r7 + ldr r4, [r0] + ands r1, r4 + mov sb, r2 + cmp r1, #0 + bne _0804C0E6 + ldr r6, _0804C0FC + ldr r5, [r6] + adds r0, r5, #0 + adds r0, #0x91 + ldrb r0, [r0] + ands r0, r4 + cmp r0, #0 + bne _0804C0E6 + ldr r1, _0804C100 + ldr r2, [sp, #0x18] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #8] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0804C0E6 + ldr r0, _0804C104 + ldr r1, [r0] + movs r0, #0x80 + lsls r0, r0, #0x12 + ands r0, r1 + cmp r0, #0 + beq _0804C0E6 + ldr r4, _0804C108 + ldrb r0, [r4] + cmp r3, r0 + beq _0804C0E6 + ldrb r2, [r4] + lsls r0, r2, #2 + adds r0, r0, r7 + ldr r0, [r0] + lsls r0, r0, #0x1c + ands r1, r0 + cmp r1, #0 + bne _0804C0E6 + ldr r0, _0804C10C + ldrb r1, [r0] + movs r0, #0x29 + ands r0, r1 + cmp r0, #0 + bne _0804C0E6 + lsls r1, r2, #1 + adds r1, r1, r5 + adds r1, #0x98 + ldr r3, _0804C110 + ldrh r0, [r3] + strb r0, [r1] + ldrb r1, [r4] + ldr r0, [r6] + lsls r1, r1, #1 + adds r1, r1, r0 + adds r1, #0x99 + ldrh r0, [r3] + lsrs r0, r0, #8 + strb r0, [r1] + ldrb r0, [r4] + mov r2, sb + ldrb r1, [r2] + ldr r2, [r6] + lsls r0, r0, #3 + lsls r1, r1, #1 + adds r0, r0, r1 + adds r0, r0, r2 + adds r0, #0xe0 + ldrh r1, [r3] + strb r1, [r0] + ldrb r1, [r4] + mov r4, sb + ldrb r0, [r4] + ldr r2, [r6] + lsls r1, r1, #3 + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r2 + adds r1, #0xe1 + ldrh r0, [r3] + lsrs r0, r0, #8 + strb r0, [r1] +_0804C0E6: + mov r5, ip + ldrb r0, [r5, #0x14] + adds r0, #1 + strb r0, [r5, #0x14] + b _0804C1A0 + .align 2, 0 +_0804C0F0: .4byte 0x02023EB4 +_0804C0F4: .4byte 0x082FACB4 +_0804C0F8: .4byte 0x02023EAF +_0804C0FC: .4byte 0x02024140 +_0804C100: .4byte 0x082ED220 +_0804C104: .4byte 0x02023F24 +_0804C108: .4byte 0x02023EB0 +_0804C10C: .4byte 0x02023F20 +_0804C110: .4byte 0x02023E90 +_0804C114: + ldr r5, _0804C1FC + ldr r2, [r5] + movs r0, #0x80 + lsls r0, r0, #0xc + ands r0, r2 + cmp r0, #0 + bne _0804C198 + ldr r0, _0804C200 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0804C198 + ldr r1, _0804C204 + ldr r0, _0804C208 + ldrb r0, [r0] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrb r0, [r0, #1] + lsls r0, r0, #0x1d + cmp r0, #0 + blt _0804C198 + ldr r0, _0804C20C + mov sb, r0 + ldr r1, _0804C210 + mov r8, r1 + ldrh r0, [r1] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + add r1, sb + ldrb r0, [r1, #6] + cmp r0, #8 + bne _0804C198 + movs r6, #0x80 + lsls r6, r6, #2 + adds r4, r6, #0 + ands r4, r2 + cmp r4, #0 + bne _0804C198 + ldr r7, _0804C214 + ldrb r0, [r7] + bl GetBattlerPosition + movs r1, #2 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _0804C218 + movs r0, #0x58 + muls r0, r2, r0 + adds r0, r0, r1 + ldrh r0, [r0, #0x28] + cmp r0, #0 + beq _0804C18E + bl sub_0804B8DC +_0804C18E: + ldr r0, [r5] + orrs r0, r6 + str r0, [r5] + ldr r2, _0804C21C + mov ip, r2 +_0804C198: + mov r3, ip + ldrb r0, [r3, #0x14] + adds r0, #1 + strb r0, [r3, #0x14] +_0804C1A0: + ldr r4, [sp, #0x10] + cmp r4, #1 + bne _0804C1B2 + mov r5, sl + cmp r5, #0 + bne _0804C1B2 + movs r0, #0x11 + mov r1, ip + strb r0, [r1, #0x14] +_0804C1B2: + ldr r2, [sp, #0x10] + cmp r2, #2 + bne _0804C1C8 + ldr r4, [sp, #0x14] + mov r3, ip + ldrb r3, [r3, #0x14] + cmp r4, r3 + bne _0804C1C8 + movs r0, #0x11 + mov r4, ip + strb r0, [r4, #0x14] +_0804C1C8: + mov r5, ip + ldrb r0, [r5, #0x14] + cmp r0, #0x11 + beq _0804C1D4 + bl atk49_moveend +_0804C1D4: + mov r1, ip + ldrb r0, [r1, #0x14] + cmp r0, #0x11 + bne _0804C1EA + mov r2, sl + cmp r2, #0 + bne _0804C1EA + ldr r1, _0804C220 + ldr r0, [r1] + adds r0, #3 +_0804C1E8: + str r0, [r1] +_0804C1EA: + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0804C1FC: .4byte 0x02023F24 +_0804C200: .4byte 0x02022C90 +_0804C204: .4byte 0x02023FE0 +_0804C208: .4byte 0x02023EAF +_0804C20C: .4byte 0x082ED220 +_0804C210: .4byte 0x02023E8E +_0804C214: .4byte 0x02023EB0 +_0804C218: .4byte 0x02023D28 +_0804C21C: .4byte 0x02024118 +_0804C220: .4byte 0x02023EB8 + thumb_func_end atk49_moveend + + thumb_func_start atk4A_typecalc2 +atk4A_typecalc2: @ 0x0804C224 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r4, #0 + movs r5, #0 + ldr r2, _0804C288 + ldr r0, _0804C28C + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #2] + mov r8, r0 + ldr r2, _0804C290 + ldr r3, _0804C294 + ldrb r1, [r3] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + adds r0, #0x20 + ldrb r0, [r0] + mov ip, r2 + adds r7, r3, #0 + cmp r0, #0x1a + bne _0804C2B8 + mov r1, r8 + cmp r1, #4 + bne _0804C2B8 + ldr r3, _0804C298 + strb r0, [r3] + ldr r2, _0804C29C + ldrb r0, [r2] + movs r1, #9 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0804C2A0 + ldrb r0, [r7] + lsls r0, r0, #1 + adds r0, r0, r1 + strh r4, [r0] + ldr r0, _0804C2A4 + mov r2, r8 + strb r2, [r0, #6] + ldrb r0, [r7] + ldrb r1, [r3] + bl RecordAbilityBattle + b _0804C39A + .align 2, 0 +_0804C288: .4byte 0x082ED220 +_0804C28C: .4byte 0x02023E8E +_0804C290: .4byte 0x02023D28 +_0804C294: .4byte 0x02023EB0 +_0804C298: .4byte 0x02023EAE +_0804C29C: .4byte 0x02023F20 +_0804C2A0: .4byte 0x02023EF4 +_0804C2A4: .4byte 0x02023FD6 +_0804C2A8: + ldr r0, _0804C2B4 + ldrb r1, [r0] + movs r2, #8 + orrs r1, r2 + strb r1, [r0] + b _0804C39A + .align 2, 0 +_0804C2B4: .4byte 0x02023F20 +_0804C2B8: + ldr r1, _0804C2C4 + adds r0, r5, r1 + ldrb r0, [r0] + adds r6, r1, #0 + b _0804C37A + .align 2, 0 +_0804C2C4: .4byte 0x082EBB38 +_0804C2C8: + adds r0, r5, r6 + ldrb r0, [r0] + cmp r0, r8 + bne _0804C374 + adds r2, r5, #1 + adds r3, r2, r6 + ldrb r1, [r7] + movs r0, #0x58 + muls r0, r1, r0 + add r0, ip + adds r0, #0x21 + ldrb r1, [r3] + adds r3, r2, #0 + ldrb r0, [r0] + cmp r1, r0 + bne _0804C306 + adds r0, r5, #2 + adds r0, r0, r6 + ldrb r1, [r0] + cmp r1, #0 + beq _0804C2A8 + cmp r1, #5 + bne _0804C2FA + movs r0, #4 + orrs r4, r0 +_0804C2FA: + cmp r1, #0x14 + bne _0804C306 + movs r0, #2 + orrs r4, r0 + lsls r0, r4, #0x18 + lsrs r4, r0, #0x18 +_0804C306: + adds r2, r3, r6 + ldrb r1, [r7] + movs r0, #0x58 + muls r0, r1, r0 + add r0, ip + adds r1, r0, #0 + adds r1, #0x22 + ldrb r2, [r2] + ldrb r1, [r1] + cmp r2, r1 + bne _0804C374 + adds r0, #0x21 + ldrb r1, [r0] + cmp r1, r2 + beq _0804C32E + adds r0, r5, #2 + adds r0, r0, r6 + ldrb r0, [r0] + cmp r0, #0 + beq _0804C2A8 +_0804C32E: + cmp r1, r2 + beq _0804C344 + adds r0, r5, #2 + adds r0, r0, r6 + ldrb r0, [r0] + cmp r0, #5 + bne _0804C344 + movs r0, #4 + orrs r4, r0 + lsls r0, r4, #0x18 + lsrs r4, r0, #0x18 +_0804C344: + adds r2, r3, r6 + ldrb r1, [r7] + movs r0, #0x58 + muls r0, r1, r0 + add r0, ip + adds r1, r0, #0 + adds r1, #0x22 + ldrb r2, [r2] + ldrb r1, [r1] + cmp r2, r1 + bne _0804C374 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, r2 + beq _0804C374 + adds r0, r5, #2 + adds r0, r0, r6 + ldrb r0, [r0] + cmp r0, #0x14 + bne _0804C374 + movs r0, #2 + orrs r4, r0 + lsls r0, r4, #0x18 + lsrs r4, r0, #0x18 +_0804C374: + adds r5, #3 + adds r0, r5, r6 + ldrb r0, [r0] +_0804C37A: + cmp r0, #0xff + beq _0804C39A + cmp r0, #0xfe + bne _0804C2C8 + ldrb r1, [r7] + movs r0, #0x58 + muls r0, r1, r0 + mov r1, ip + adds r1, #0x50 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x16 + ands r0, r1 + cmp r0, #0 + beq _0804C374 +_0804C39A: + ldr r2, _0804C448 + ldr r0, _0804C44C + mov r8, r0 + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + adds r0, #0x20 + ldrb r6, [r0] + cmp r6, #0x19 + bne _0804C416 + movs r5, #0x29 + ands r5, r4 + cmp r5, #0 + bne _0804C416 + ldr r0, _0804C450 + ldrb r0, [r0] + ldr r7, _0804C454 + ldrh r1, [r7] + bl AttacksThisTurn + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #2 + bne _0804C416 + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + beq _0804C3DC + movs r0, #6 + ands r4, r0 + cmp r4, #6 + bne _0804C416 +_0804C3DC: + ldr r2, _0804C458 + ldrh r1, [r7] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #1] + cmp r0, #0 + beq _0804C416 + ldr r3, _0804C45C + strb r6, [r3] + ldr r2, _0804C460 + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0804C464 + mov r2, r8 + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r1 + strh r5, [r0] + ldr r1, _0804C468 + movs r0, #3 + strb r0, [r1, #6] + ldrb r0, [r2] + ldrb r1, [r3] + bl RecordAbilityBattle +_0804C416: + ldr r0, _0804C460 + ldrb r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0804C434 + ldr r2, _0804C46C + ldr r0, _0804C450 + ldrb r1, [r0] + lsls r1, r1, #4 + adds r1, r1, r2 + ldrb r0, [r1, #1] + movs r2, #2 + orrs r0, r2 + strb r0, [r1, #1] +_0804C434: + ldr r1, _0804C470 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0804C448: .4byte 0x02023D28 +_0804C44C: .4byte 0x02023EB0 +_0804C450: .4byte 0x02023EAF +_0804C454: .4byte 0x02023E8E +_0804C458: .4byte 0x082ED220 +_0804C45C: .4byte 0x02023EAE +_0804C460: .4byte 0x02023F20 +_0804C464: .4byte 0x02023EF4 +_0804C468: .4byte 0x02023FD6 +_0804C46C: .4byte 0x02023FE0 +_0804C470: .4byte 0x02023EB8 + thumb_func_end atk4A_typecalc2 + + thumb_func_start atk4B_returnatktoball +atk4B_returnatktoball: @ 0x0804C474 + push {r4, lr} + ldr r4, _0804C4B0 + ldr r0, _0804C4B4 + ldrb r0, [r0] + strb r0, [r4] + ldr r2, _0804C4B8 + ldr r1, _0804C4BC + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + lsls r1, r1, #0x1c + ldr r0, [r2] + ands r0, r1 + cmp r0, #0 + bne _0804C4A2 + movs r0, #0 + movs r1, #0 + bl BtlController_EmitReturnMonToBall + ldrb r0, [r4] + bl MarkBattlerForControllerExec +_0804C4A2: + ldr r1, _0804C4C0 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804C4B0: .4byte 0x02023D08 +_0804C4B4: .4byte 0x02023EAF +_0804C4B8: .4byte 0x02023F24 +_0804C4BC: .4byte 0x082FACB4 +_0804C4C0: .4byte 0x02023EB8 + thumb_func_end atk4B_returnatktoball + + thumb_func_start atk4C_getswitchedmondata +atk4C_getswitchedmondata: @ 0x0804C4C4 + push {r4, r5, lr} + ldr r0, _0804C51C + ldr r0, [r0] + cmp r0, #0 + bne _0804C514 + ldr r5, _0804C520 + ldr r0, [r5] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + ldr r4, _0804C524 + strb r0, [r4] + ldr r3, _0804C528 + ldrb r0, [r4] + lsls r2, r0, #1 + adds r2, r2, r3 + ldr r1, _0804C52C + ldr r1, [r1] + adds r0, r0, r1 + adds r0, #0x5c + ldrb r0, [r0] + strh r0, [r2] + ldr r1, _0804C530 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r2, [r0] + movs r0, #0 + movs r1, #0 + bl BtlController_EmitGetMonData + ldrb r0, [r4] + bl MarkBattlerForControllerExec + ldr r0, [r5] + adds r0, #2 + str r0, [r5] +_0804C514: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0804C51C: .4byte 0x02023D0C +_0804C520: .4byte 0x02023EB8 +_0804C524: .4byte 0x02023D08 +_0804C528: .4byte 0x02023D12 +_0804C52C: .4byte 0x02024140 +_0804C530: .4byte 0x082FACB4 + thumb_func_end atk4C_getswitchedmondata + + thumb_func_start atk4D_switchindataupdate +atk4D_switchindataupdate: @ 0x0804C534 + push {r4, r5, r6, r7, lr} + sub sp, #0x58 + ldr r0, _0804C6DC + ldr r0, [r0] + cmp r0, #0 + beq _0804C542 + b _0804C6D4 +_0804C542: + ldr r0, _0804C6E0 + ldr r0, [r0] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + ldr r4, _0804C6E4 + strb r0, [r4] + ldr r6, _0804C6E8 + ldrb r0, [r4] + movs r5, #0x58 + adds r1, r0, #0 + muls r1, r5, r1 + adds r1, r1, r6 + mov r0, sp + movs r2, #0x58 + bl memcpy + ldrb r0, [r4] + muls r0, r5, r0 + adds r3, r0, r6 + movs r2, #0 + ldr r5, _0804C6EC +_0804C56E: + adds r0, r3, r2 + ldrb r1, [r4] + lsls r1, r1, #9 + adds r1, #4 + adds r1, r2, r1 + adds r1, r1, r5 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, #0x57 + bls _0804C56E + ldr r4, _0804C6E8 + ldr r6, _0804C6E4 + ldrb r0, [r6] + movs r7, #0x58 + adds r2, r0, #0 + muls r2, r7, r2 + adds r2, r2, r4 + ldr r3, _0804C6F0 + ldrh r1, [r2] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0, #6] + adds r2, #0x21 + strb r0, [r2] + ldrb r0, [r6] + adds r1, r0, #0 + muls r1, r7, r1 + adds r1, r1, r4 + ldrh r2, [r1] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0, #7] + adds r1, #0x22 + strb r0, [r1] + ldrb r0, [r6] + adds r1, r0, #0 + muls r1, r7, r1 + adds r1, r1, r4 + ldrh r0, [r1] + ldrb r1, [r1, #0x17] + lsrs r1, r1, #7 + bl GetAbilityBySpecies + ldrb r1, [r6] + muls r1, r7, r1 + adds r1, r1, r4 + adds r1, #0x20 + strb r0, [r1] + ldrb r0, [r6] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _0804C6F4 + adds r0, #0x29 + adds r0, r2, r0 + ldrb r1, [r0] + ldr r3, _0804C6F8 + ldr r2, _0804C6FC + ldrb r5, [r6] + lsls r0, r5, #1 + adds r0, r0, r2 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r3 + ldr r0, [r0] + ands r1, r0 + mov ip, r4 + cmp r1, #0 + beq _0804C60E + adds r0, r5, #0 + muls r0, r7, r0 + add r0, ip + movs r1, #0 + strh r1, [r0, #0x2e] +_0804C60E: + ldr r2, _0804C700 + ldr r0, _0804C704 + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #0x7f + bne _0804C656 + movs r2, #0 + adds r4, r6, #0 + movs r6, #0x58 + mov r5, ip + adds r5, #0x18 + add r3, sp, #0x18 +_0804C62E: + ldrb r0, [r4] + adds r1, r0, #0 + muls r1, r6, r1 + adds r1, r2, r1 + adds r1, r1, r5 + adds r0, r3, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r2, #1 + cmp r2, #7 + ble _0804C62E + ldr r0, _0804C6E4 + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + mov r1, ip + adds r1, #0x50 + adds r0, r0, r1 + ldr r1, [sp, #0x50] + str r1, [r0] +_0804C656: + bl SwitchInClearSetData + ldr r0, _0804C708 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xa + ands r0, r1 + cmp r0, #0 + beq _0804C6A8 + ldr r4, _0804C6E8 + ldr r0, _0804C6E4 + ldrb r3, [r0] + movs r0, #0x58 + adds r2, r3, #0 + muls r2, r0, r2 + adds r1, r2, r4 + ldrh r0, [r1, #0x2c] + lsrs r0, r0, #1 + ldrh r1, [r1, #0x28] + cmp r0, r1 + blo _0804C6A8 + cmp r1, #0 + beq _0804C6A8 + adds r0, r4, #0 + adds r0, #0x4c + adds r0, r2, r0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _0804C6A8 + ldr r0, _0804C70C + ldr r2, [r0] + adds r2, #0x92 + ldr r1, _0804C6F8 + lsls r0, r3, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] +_0804C6A8: + ldr r0, _0804C710 + ldr r3, _0804C6E4 + ldrb r2, [r3] + strb r2, [r0, #0x17] + ldr r1, _0804C714 + movs r0, #0xfd + strb r0, [r1] + movs r0, #7 + strb r0, [r1, #1] + strb r2, [r1, #2] + ldr r2, _0804C6FC + ldrb r0, [r3] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strb r0, [r1, #3] + movs r0, #0xff + strb r0, [r1, #4] + ldr r1, _0804C6E0 + ldr r0, [r1] + adds r0, #2 + str r0, [r1] +_0804C6D4: + add sp, #0x58 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0804C6DC: .4byte 0x02023D0C +_0804C6E0: .4byte 0x02023EB8 +_0804C6E4: .4byte 0x02023D08 +_0804C6E8: .4byte 0x02023D28 +_0804C6EC: .4byte 0x02023508 +_0804C6F0: .4byte 0x082F0D54 +_0804C6F4: .4byte 0x02024074 +_0804C6F8: .4byte 0x082FACB4 +_0804C6FC: .4byte 0x02023D12 +_0804C700: .4byte 0x082ED220 +_0804C704: .4byte 0x02023E8E +_0804C708: .4byte 0x02022C90 +_0804C70C: .4byte 0x02024140 +_0804C710: .4byte 0x02024118 +_0804C714: .4byte 0x02022C0C + thumb_func_end atk4D_switchindataupdate + + thumb_func_start atk4E_switchinanim +atk4E_switchinanim: @ 0x0804C718 + push {r4, r5, r6, lr} + ldr r0, _0804C7BC + ldr r0, [r0] + cmp r0, #0 + bne _0804C7B6 + ldr r0, _0804C7C0 + ldr r0, [r0] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + ldr r6, _0804C7C4 + strb r0, [r6] + ldrb r0, [r6] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0804C76E + ldr r0, _0804C7C8 + ldr r0, [r0] + ldr r1, _0804C7CC + ands r0, r1 + cmp r0, #0 + bne _0804C76E + ldr r4, _0804C7D0 + ldrb r0, [r6] + movs r5, #0x58 + muls r0, r5, r0 + adds r0, r0, r4 + ldrh r0, [r0] + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r6] + muls r1, r5, r1 + adds r4, #0x48 + adds r1, r1, r4 + ldr r2, [r1] + movs r1, #2 + bl HandleSetPokedexFlag +_0804C76E: + ldr r2, _0804C7D4 + ldr r1, _0804C7D8 + ldr r5, _0804C7C4 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + ldrb r0, [r2] + bics r0, r1 + strb r0, [r2] + ldr r1, _0804C7DC + ldrb r0, [r5] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrb r1, [r0] + ldr r4, _0804C7C0 + ldr r0, [r4] + ldrb r2, [r0, #2] + movs r0, #0 + bl BtlController_EmitSwitchInAnim + ldrb r0, [r5] + bl MarkBattlerForControllerExec + ldr r0, [r4] + adds r0, #3 + str r0, [r4] + ldr r0, _0804C7C8 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xb + ands r0, r1 + cmp r0, #0 + beq _0804C7B6 + bl BattleArena_InitPoints +_0804C7B6: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0804C7BC: .4byte 0x02023D0C +_0804C7C0: .4byte 0x02023EB8 +_0804C7C4: .4byte 0x02023D08 +_0804C7C8: .4byte 0x02022C90 +_0804C7CC: .4byte 0x063F0902 +_0804C7D0: .4byte 0x02023D28 +_0804C7D4: .4byte 0x02023EB4 +_0804C7D8: .4byte 0x082FACB4 +_0804C7DC: .4byte 0x02023D12 + thumb_func_end atk4E_switchinanim + + thumb_func_start atk4F_jumpifcantswitch +atk4F_jumpifcantswitch: @ 0x0804C7E0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r4, _0804C844 + ldr r0, [r4] + ldrb r1, [r0, #1] + movs r0, #0x7f + ands r0, r1 + bl GetBattlerForBattleScript + ldr r3, _0804C848 + strb r0, [r3] + ldr r2, [r4] + ldrb r1, [r2, #1] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0804C858 + ldr r1, _0804C84C + ldrb r3, [r3] + movs r0, #0x58 + muls r0, r3, r0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _0804C850 + ands r0, r1 + cmp r0, #0 + bne _0804C82C + ldr r1, _0804C854 + lsls r0, r3, #2 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _0804C858 +_0804C82C: + ldrb r1, [r2, #2] + ldrb r0, [r2, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _0804CB30 + .align 2, 0 +_0804C844: .4byte 0x02023EB8 +_0804C848: .4byte 0x02023D08 +_0804C84C: .4byte 0x02023D28 +_0804C850: .4byte 0x0400E000 +_0804C854: .4byte 0x02023F50 +_0804C858: + ldr r0, _0804C8DC + ldr r1, [r0] + movs r0, #0x80 + lsls r0, r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _0804C8F0 + ldr r5, _0804C8E0 + ldrb r0, [r5] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0804C8E4 + mov r8, r1 + cmp r0, #1 + bne _0804C87E + ldr r0, _0804C8E8 + mov r8, r0 +_0804C87E: + movs r4, #0 + ldrb r1, [r5] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0804C88C + movs r4, #3 +_0804C88C: + adds r6, r4, #3 + cmp r4, r6 + bge _0804C8D4 + ldr r7, _0804C8EC +_0804C894: + movs r0, #0x64 + muls r0, r4, r0 + mov r1, r8 + adds r5, r1, r0 + adds r0, r5, #0 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _0804C8CE + adds r0, r5, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + bne _0804C8CE + adds r0, r5, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _0804C8CE + ldr r0, _0804C8E0 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r7 + ldrh r0, [r0] + cmp r0, r4 + bne _0804C8D4 +_0804C8CE: + adds r4, #1 + cmp r4, r6 + blt _0804C894 +_0804C8D4: + cmp r4, r6 + bne _0804C8DA + b _0804CB00 +_0804C8DA: + b _0804CB28 + .align 2, 0 +_0804C8DC: .4byte 0x02022C90 +_0804C8E0: .4byte 0x02023D08 +_0804C8E4: .4byte 0x02024190 +_0804C8E8: .4byte 0x020243E8 +_0804C8EC: .4byte 0x02023D12 +_0804C8F0: + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0804C9BC + movs r0, #0x80 + lsls r0, r0, #0x10 + ands r1, r0 + cmp r1, #0 + beq _0804C930 + ldr r5, _0804C914 + ldrb r0, [r5] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804C91C + ldr r0, _0804C918 + b _0804C946 + .align 2, 0 +_0804C914: .4byte 0x02023D08 +_0804C918: .4byte 0x02024190 +_0804C91C: + ldr r1, _0804C92C + mov r8, r1 + ldrb r0, [r5] + movs r4, #3 + cmp r0, #1 + bne _0804C962 + movs r4, #0 + b _0804C962 + .align 2, 0 +_0804C92C: .4byte 0x020243E8 +_0804C930: + ldr r5, _0804C9AC + ldrb r0, [r5] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0804C9B0 + mov r8, r1 + cmp r0, #1 + bne _0804C948 + ldr r0, _0804C9B4 +_0804C946: + mov r8, r0 +_0804C948: + movs r4, #0 + ldrb r0, [r5] + bl GetBattlerMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetLinkTrainerFlankId + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bne _0804C962 + movs r4, #3 +_0804C962: + adds r6, r4, #3 + cmp r4, r6 + bge _0804C8D4 + ldr r7, _0804C9B8 +_0804C96A: + movs r0, #0x64 + muls r0, r4, r0 + mov r1, r8 + adds r5, r1, r0 + adds r0, r5, #0 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _0804C9A4 + adds r0, r5, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + bne _0804C9A4 + adds r0, r5, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _0804C9A4 + ldr r0, _0804C9AC + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r7 + ldrh r0, [r0] + cmp r0, r4 + bne _0804C8D4 +_0804C9A4: + adds r4, #1 + cmp r4, r6 + blt _0804C96A + b _0804C8D4 + .align 2, 0 +_0804C9AC: .4byte 0x02023D08 +_0804C9B0: .4byte 0x02024190 +_0804C9B4: .4byte 0x020243E8 +_0804C9B8: .4byte 0x02023D12 +_0804C9BC: + movs r0, #0x80 + lsls r0, r0, #8 + ands r1, r0 + cmp r1, #0 + beq _0804CA40 + ldr r5, _0804CA34 + ldrb r0, [r5] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0804CA40 + ldr r0, _0804CA38 + mov r8, r0 + movs r4, #0 + ldrb r0, [r5] + cmp r0, #3 + bne _0804C9E4 + movs r4, #3 +_0804C9E4: + adds r6, r4, #3 + cmp r4, r6 + blt _0804C9EC + b _0804C8D4 +_0804C9EC: + ldr r7, _0804CA3C +_0804C9EE: + movs r0, #0x64 + muls r0, r4, r0 + mov r1, r8 + adds r5, r1, r0 + adds r0, r5, #0 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _0804CA2A + adds r0, r5, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + bne _0804CA2A + adds r0, r5, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _0804CA2A + ldr r0, _0804CA34 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r7 + ldrh r0, [r0] + cmp r0, r4 + beq _0804CA2A + b _0804C8D4 +_0804CA2A: + adds r4, #1 + cmp r4, r6 + blt _0804C9EE + b _0804C8D4 + .align 2, 0 +_0804CA34: .4byte 0x02023D08 +_0804CA38: .4byte 0x020243E8 +_0804CA3C: .4byte 0x02023D12 +_0804CA40: + ldr r0, _0804CA70 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #1 + bne _0804CA84 + movs r0, #1 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _0804CA74 + ldr r0, [r0] + ands r0, r4 + cmp r0, #0 + beq _0804CA78 + movs r0, #3 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + b _0804CA7A + .align 2, 0 +_0804CA70: .4byte 0x02023D08 +_0804CA74: .4byte 0x02022C90 +_0804CA78: + adds r6, r7, #0 +_0804CA7A: + ldr r0, _0804CA80 + mov r8, r0 + b _0804CAB2 + .align 2, 0 +_0804CA80: .4byte 0x020243E8 +_0804CA84: + movs r0, #0 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _0804CAA8 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0804CAAC + movs r0, #2 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + b _0804CAAE + .align 2, 0 +_0804CAA8: .4byte 0x02022C90 +_0804CAAC: + adds r6, r7, #0 +_0804CAAE: + ldr r1, _0804CB1C + mov r8, r1 +_0804CAB2: + movs r4, #0 +_0804CAB4: + movs r0, #0x64 + muls r0, r4, r0 + mov r1, r8 + adds r5, r1, r0 + adds r0, r5, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _0804CAF6 + adds r0, r5, #0 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _0804CAF6 + adds r0, r5, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + bne _0804CAF6 + ldr r1, _0804CB20 + lsls r0, r7, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r4, r0 + beq _0804CAF6 + lsls r0, r6, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r4, r0 + bne _0804CAFC +_0804CAF6: + adds r4, #1 + cmp r4, #5 + ble _0804CAB4 +_0804CAFC: + cmp r4, #6 + bne _0804CB28 +_0804CB00: + ldr r3, _0804CB24 + ldr r2, [r3] + ldrb r1, [r2, #2] + ldrb r0, [r2, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _0804CB30 + .align 2, 0 +_0804CB1C: .4byte 0x02024190 +_0804CB20: .4byte 0x02023D12 +_0804CB24: .4byte 0x02023EB8 +_0804CB28: + ldr r1, _0804CB3C + ldr r0, [r1] + adds r0, #6 + str r0, [r1] +_0804CB30: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0804CB3C: .4byte 0x02023EB8 + thumb_func_end atk4F_jumpifcantswitch + + thumb_func_start sub_0804CB40 +sub_0804CB40: @ 0x0804CB40 + push {r4, r5, lr} + sub sp, #4 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r5, _0804CBA8 + ldrb r0, [r5] + ldr r4, _0804CBAC + ldr r1, [r4] + adds r1, r0, r1 + adds r1, #0x58 + ldr r3, _0804CBB0 + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r5] + ldr r1, [r4] + adds r0, r0, r1 + adds r0, #0x5c + movs r1, #6 + strb r1, [r0] + ldr r1, [r4] + adds r1, #0x93 + ldr r3, _0804CBB4 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r3 + ldr r3, [r0] + ldrb r0, [r1] + bics r0, r3 + strb r0, [r1] + ldrb r0, [r5] + lsls r1, r0, #1 + adds r1, r1, r0 + adds r1, #0x60 + ldr r0, [r4] + adds r0, r0, r1 + str r0, [sp] + movs r0, #0 + movs r1, #1 + movs r3, #0 + bl BtlController_EmitChoosePokemon + ldrb r0, [r5] + bl MarkBattlerForControllerExec + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0804CBA8: .4byte 0x02023D08 +_0804CBAC: .4byte 0x02024140 +_0804CBB0: .4byte 0x02023D12 +_0804CBB4: .4byte 0x082FACB4 + thumb_func_end sub_0804CB40 + + thumb_func_start atk50_openpartyscreen +atk50_openpartyscreen: @ 0x0804CBB8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + movs r7, #0 + movs r0, #0 + mov sb, r0 + ldr r6, _0804CC68 + ldr r2, [r6] + ldrb r1, [r2, #2] + ldrb r0, [r2, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + mov r8, r1 + ldrb r1, [r2, #1] + adds r0, r1, #0 + mov ip, r6 + cmp r0, #5 + beq _0804CBEE + b _0804D094 +_0804CBEE: + ldr r0, _0804CC6C + ldr r0, [r0] + movs r1, #0x41 + ands r1, r0 + cmp r1, #1 + beq _0804CCE0 + ldr r1, _0804CC70 + strb r7, [r1] + ldr r0, _0804CC74 + ldrb r0, [r0] + cmp r7, r0 + blo _0804CC08 + b _0804D080 +_0804CC08: + ldr r7, _0804CC78 + ldr r6, _0804CC7C + adds r4, r1, #0 + ldr r2, _0804CC80 + mov r8, r2 +_0804CC12: + ldrb r2, [r4] + lsls r0, r2, #2 + adds r0, r0, r6 + ldr r1, [r0] + lsls r1, r1, #0x1c + ldr r0, [r7] + ands r0, r1 + cmp r0, #0 + beq _0804CCB8 + adds r0, r2, #0 + movs r1, #6 + movs r2, #6 + bl HasNoMonsToSwitch + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0804CC84 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r0, [r0] + mov r2, r8 + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r1, [r0] + lsls r1, r1, #0x1c + ldr r0, [r7] + bics r0, r1 + str r0, [r7] + movs r0, #0 + movs r1, #2 + movs r2, #0 + bl BtlController_EmitLinkStandbyMsg + ldrb r0, [r4] + bl MarkBattlerForControllerExec + b _0804CCC8 + .align 2, 0 +_0804CC68: .4byte 0x02023EB8 +_0804CC6C: .4byte 0x02022C90 +_0804CC70: .4byte 0x02023D08 +_0804CC74: .4byte 0x02023D10 +_0804CC78: .4byte 0x02023F24 +_0804CC7C: .4byte 0x082FACB4 +_0804CC80: .4byte 0x02023EB4 +_0804CC84: + ldr r5, _0804CCB4 + ldrb r0, [r4] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrb r0, [r1] + lsls r0, r0, #0x19 + cmp r0, #0 + blt _0804CCC8 + movs r0, #6 + bl sub_0804CB40 + ldrb r1, [r4] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r1, [r0] + movs r2, #0x40 + orrs r1, r2 + strb r1, [r0] + b _0804CCC8 + .align 2, 0 +_0804CCB4: .4byte 0x02024020 +_0804CCB8: + movs r0, #0 + movs r1, #2 + movs r2, #0 + bl BtlController_EmitLinkStandbyMsg + ldrb r0, [r4] + bl MarkBattlerForControllerExec +_0804CCC8: + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + ldr r1, _0804CCDC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + blo _0804CC12 + b _0804D080 + .align 2, 0 +_0804CCDC: .4byte 0x02023D10 +_0804CCE0: + ands r0, r1 + cmp r0, #0 + bne _0804CCE8 + b _0804D080 +_0804CCE8: + ldr r0, _0804CD40 + mov r8, r0 + ldr r0, [r0] + lsrs r5, r0, #0x1c + ldr r6, _0804CD44 + ldr r0, [r6] + ands r0, r5 + cmp r0, #0 + beq _0804CDA0 + ldr r4, _0804CD48 + strb r7, [r4] + movs r0, #0 + movs r1, #6 + movs r2, #6 + bl HasNoMonsToSwitch + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0804CD50 + ldr r2, _0804CD4C + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r1, [r0] + lsls r1, r1, #0x1c + mov r2, r8 + ldr r0, [r2] + bics r0, r1 + str r0, [r2] + movs r0, #0 + bl BtlController_EmitCmd42 + ldrb r0, [r4] + bl MarkBattlerForControllerExec + b _0804CDA0 + .align 2, 0 +_0804CD40: .4byte 0x02023F24 +_0804CD44: .4byte 0x082FACB4 +_0804CD48: .4byte 0x02023D08 +_0804CD4C: .4byte 0x02023EB4 +_0804CD50: + ldr r6, _0804CD84 + ldrb r0, [r4] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrb r0, [r1] + lsls r0, r0, #0x19 + cmp r0, #0 + blt _0804CD8C + ldr r0, _0804CD88 + ldr r0, [r0] + adds r0, #0x5e + ldrb r0, [r0] + bl sub_0804CB40 + ldrb r1, [r4] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r1, [r0] + movs r2, #0x40 + orrs r1, r2 + strb r1, [r0] + b _0804CDA0 + .align 2, 0 +_0804CD84: .4byte 0x02024020 +_0804CD88: .4byte 0x02024140 +_0804CD8C: + movs r0, #0 + movs r1, #2 + movs r2, #0 + bl BtlController_EmitLinkStandbyMsg + ldrb r0, [r4] + bl MarkBattlerForControllerExec + movs r0, #1 + mov sb, r0 +_0804CDA0: + ldr r6, _0804CDF8 + ldr r0, [r6, #8] + ands r0, r5 + cmp r0, #0 + beq _0804CE5E + ldr r0, [r6] + ands r0, r5 + cmp r0, #0 + bne _0804CE5E + ldr r4, _0804CDFC + movs r0, #2 + strb r0, [r4] + movs r0, #2 + movs r1, #6 + movs r2, #6 + bl HasNoMonsToSwitch + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0804CE08 + ldr r2, _0804CE00 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r2, _0804CE04 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r1, [r0] + lsls r1, r1, #0x1c + ldr r0, [r2] + bics r0, r1 + str r0, [r2] + movs r0, #0 + bl BtlController_EmitCmd42 + ldrb r0, [r4] + bl MarkBattlerForControllerExec + b _0804CE5E + .align 2, 0 +_0804CDF8: .4byte 0x082FACB4 +_0804CDFC: .4byte 0x02023D08 +_0804CE00: .4byte 0x02023EB4 +_0804CE04: .4byte 0x02023F24 +_0804CE08: + ldr r6, _0804CE3C + ldrb r0, [r4] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrb r0, [r1] + lsls r0, r0, #0x19 + cmp r0, #0 + blt _0804CE44 + ldr r0, _0804CE40 + ldr r0, [r0] + adds r0, #0x5c + ldrb r0, [r0] + bl sub_0804CB40 + ldrb r1, [r4] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r1, [r0] + movs r2, #0x40 + orrs r1, r2 + strb r1, [r0] + b _0804CE5E + .align 2, 0 +_0804CE3C: .4byte 0x02024020 +_0804CE40: .4byte 0x02024140 +_0804CE44: + movs r0, #1 + mov r1, sb + ands r0, r1 + cmp r0, #0 + bne _0804CE5E + movs r0, #0 + movs r1, #2 + movs r2, #0 + bl BtlController_EmitLinkStandbyMsg + ldrb r0, [r4] + bl MarkBattlerForControllerExec +_0804CE5E: + ldr r6, _0804CEB0 + ldr r0, [r6, #4] + ands r0, r5 + cmp r0, #0 + beq _0804CF14 + ldr r4, _0804CEB4 + movs r0, #1 + strb r0, [r4] + movs r0, #1 + movs r1, #6 + movs r2, #6 + bl HasNoMonsToSwitch + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0804CEC0 + ldr r2, _0804CEB8 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r2, _0804CEBC + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r1, [r0] + lsls r1, r1, #0x1c + ldr r0, [r2] + bics r0, r1 + str r0, [r2] + movs r0, #0 + bl BtlController_EmitCmd42 + ldrb r0, [r4] + bl MarkBattlerForControllerExec + b _0804CF14 + .align 2, 0 +_0804CEB0: .4byte 0x082FACB4 +_0804CEB4: .4byte 0x02023D08 +_0804CEB8: .4byte 0x02023EB4 +_0804CEBC: .4byte 0x02023F24 +_0804CEC0: + ldr r6, _0804CEF4 + ldrb r0, [r4] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrb r0, [r1] + lsls r0, r0, #0x19 + cmp r0, #0 + blt _0804CEFC + ldr r0, _0804CEF8 + ldr r0, [r0] + adds r0, #0x5f + ldrb r0, [r0] + bl sub_0804CB40 + ldrb r1, [r4] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r1, [r0] + movs r2, #0x40 + orrs r1, r2 + strb r1, [r0] + b _0804CF14 + .align 2, 0 +_0804CEF4: .4byte 0x02024020 +_0804CEF8: .4byte 0x02024140 +_0804CEFC: + movs r0, #0 + movs r1, #2 + movs r2, #0 + bl BtlController_EmitLinkStandbyMsg + ldrb r0, [r4] + bl MarkBattlerForControllerExec + movs r0, #2 + mov r2, sb + orrs r2, r0 + mov sb, r2 +_0804CF14: + ldr r6, _0804CF6C + ldr r0, [r6, #0xc] + ands r0, r5 + cmp r0, #0 + beq _0804CFD2 + ldr r0, [r6, #4] + ands r0, r5 + cmp r0, #0 + bne _0804CFD2 + ldr r4, _0804CF70 + movs r0, #3 + strb r0, [r4] + movs r0, #3 + movs r1, #6 + movs r2, #6 + bl HasNoMonsToSwitch + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0804CF7C + ldr r2, _0804CF74 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r2, _0804CF78 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r1, [r0] + lsls r1, r1, #0x1c + ldr r0, [r2] + bics r0, r1 + str r0, [r2] + movs r0, #0 + bl BtlController_EmitCmd42 + ldrb r0, [r4] + bl MarkBattlerForControllerExec + b _0804CFD2 + .align 2, 0 +_0804CF6C: .4byte 0x082FACB4 +_0804CF70: .4byte 0x02023D08 +_0804CF74: .4byte 0x02023EB4 +_0804CF78: .4byte 0x02023F24 +_0804CF7C: + ldr r6, _0804CFB0 + ldrb r0, [r4] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrb r0, [r1] + lsls r0, r0, #0x19 + cmp r0, #0 + blt _0804CFB8 + ldr r0, _0804CFB4 + ldr r0, [r0] + adds r0, #0x5d + ldrb r0, [r0] + bl sub_0804CB40 + ldrb r1, [r4] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r1, [r0] + movs r2, #0x40 + orrs r1, r2 + strb r1, [r0] + b _0804CFD2 + .align 2, 0 +_0804CFB0: .4byte 0x02024020 +_0804CFB4: .4byte 0x02024140 +_0804CFB8: + movs r0, #2 + mov r1, sb + ands r1, r0 + cmp r1, #0 + bne _0804CFD2 + movs r0, #0 + movs r1, #2 + movs r2, #0 + bl BtlController_EmitLinkStandbyMsg + ldrb r0, [r4] + bl MarkBattlerForControllerExec +_0804CFD2: + ldr r1, _0804D004 + ldrb r0, [r1] + lsls r0, r0, #0x19 + cmp r0, #0 + blt _0804D02A + adds r0, r1, #0 + adds r0, #0x28 + ldrb r0, [r0] + lsls r0, r0, #0x19 + cmp r0, #0 + blt _0804D02A + cmp r5, #0 + beq _0804D02A + ldr r0, _0804D008 + ldrb r1, [r0] + ldr r0, _0804D00C + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _0804D014 + ldr r1, _0804D010 + movs r0, #2 + strb r0, [r1] + b _0804D018 + .align 2, 0 +_0804D004: .4byte 0x02024020 +_0804D008: .4byte 0x02023EB4 +_0804D00C: .4byte 0x082FACB4 +_0804D010: .4byte 0x02023D08 +_0804D014: + ldr r0, _0804D058 + strb r1, [r0] +_0804D018: + movs r0, #0 + movs r1, #2 + movs r2, #0 + bl BtlController_EmitLinkStandbyMsg + ldr r0, _0804D058 + ldrb r0, [r0] + bl MarkBattlerForControllerExec +_0804D02A: + ldr r1, _0804D05C + ldrb r0, [r1, #0x14] + lsls r0, r0, #0x19 + cmp r0, #0 + blt _0804D080 + adds r0, r1, #0 + adds r0, #0x3c + ldrb r0, [r0] + lsls r0, r0, #0x19 + cmp r0, #0 + blt _0804D080 + cmp r5, #0 + beq _0804D080 + ldr r0, _0804D060 + ldrb r0, [r0] + ldr r1, _0804D064 + ldr r1, [r1, #4] + ands r0, r1 + cmp r0, #0 + beq _0804D068 + ldr r1, _0804D058 + movs r0, #3 + b _0804D06C + .align 2, 0 +_0804D058: .4byte 0x02023D08 +_0804D05C: .4byte 0x02024020 +_0804D060: .4byte 0x02023EB4 +_0804D064: .4byte 0x082FACB4 +_0804D068: + ldr r1, _0804D08C + movs r0, #1 +_0804D06C: + strb r0, [r1] + movs r0, #0 + movs r1, #2 + movs r2, #0 + bl BtlController_EmitLinkStandbyMsg + ldr r0, _0804D08C + ldrb r0, [r0] + bl MarkBattlerForControllerExec +_0804D080: + ldr r1, _0804D090 + ldr r0, [r1] + adds r0, #6 + str r0, [r1] + b _0804D434 + .align 2, 0 +_0804D08C: .4byte 0x02023D08 +_0804D090: .4byte 0x02023EB8 +_0804D094: + cmp r0, #6 + beq _0804D09A + b _0804D288 +_0804D09A: + ldr r0, _0804D110 + ldr r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0804D0A8 + b _0804D224 +_0804D0A8: + movs r0, #1 + ands r1, r0 + cmp r1, #0 + bne _0804D0B2 + b _0804D224 +_0804D0B2: + ldr r7, _0804D114 + ldr r0, [r7] + lsrs r5, r0, #0x1c + ldr r4, _0804D118 + ldr r0, [r4, #8] + ands r0, r5 + cmp r0, #0 + beq _0804D15A + ldr r0, [r4] + ands r0, r5 + cmp r0, #0 + beq _0804D15A + ldr r6, _0804D11C + movs r0, #2 + strb r0, [r6] + ldr r0, _0804D120 + ldrb r1, [r0, #1] + movs r0, #2 + movs r2, #6 + bl HasNoMonsToSwitch + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0804D128 + ldr r2, _0804D124 + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + lsls r1, r1, #0x1c + ldr r0, [r7] + bics r0, r1 + str r0, [r7] + movs r0, #0 + bl BtlController_EmitCmd42 + ldrb r0, [r6] + bl MarkBattlerForControllerExec + b _0804D15A + .align 2, 0 +_0804D110: .4byte 0x02022C90 +_0804D114: .4byte 0x02023F24 +_0804D118: .4byte 0x082FACB4 +_0804D11C: .4byte 0x02023D08 +_0804D120: .4byte 0x02023508 +_0804D124: .4byte 0x02023EB4 +_0804D128: + ldr r4, _0804D1B8 + ldrb r0, [r6] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r0, [r1] + lsls r0, r0, #0x19 + cmp r0, #0 + blt _0804D15A + ldr r0, _0804D1BC + ldr r0, [r0] + adds r0, #0x5c + ldrb r0, [r0] + bl sub_0804CB40 + ldrb r1, [r6] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r1, [r0] + movs r2, #0x40 + orrs r1, r2 + strb r1, [r0] +_0804D15A: + ldr r4, _0804D1C0 + ldr r0, [r4, #0xc] + ands r0, r5 + cmp r0, #0 + beq _0804D20A + ldr r0, [r4, #4] + ands r5, r0 + cmp r5, #0 + beq _0804D20A + ldr r5, _0804D1C4 + movs r0, #3 + strb r0, [r5] + ldr r0, _0804D1C8 + ldr r2, _0804D1CC + adds r0, r0, r2 + ldrb r1, [r0] + movs r0, #3 + movs r2, #6 + bl HasNoMonsToSwitch + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0804D1D8 + ldr r2, _0804D1D0 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r2, _0804D1D4 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + lsls r1, r1, #0x1c + ldr r0, [r2] + bics r0, r1 + str r0, [r2] + movs r0, #0 + bl BtlController_EmitCmd42 + ldrb r0, [r5] + bl MarkBattlerForControllerExec + b _0804D20A + .align 2, 0 +_0804D1B8: .4byte 0x02024020 +_0804D1BC: .4byte 0x02024140 +_0804D1C0: .4byte 0x082FACB4 +_0804D1C4: .4byte 0x02023D08 +_0804D1C8: .4byte 0x02023508 +_0804D1CC: .4byte 0x00000201 +_0804D1D0: .4byte 0x02023EB4 +_0804D1D4: .4byte 0x02023F24 +_0804D1D8: + ldr r4, _0804D218 + ldrb r0, [r5] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r0, [r1] + lsls r0, r0, #0x19 + cmp r0, #0 + blt _0804D20A + ldr r0, _0804D21C + ldr r0, [r0] + adds r0, #0x5d + ldrb r0, [r0] + bl sub_0804CB40 + ldrb r1, [r5] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r1, [r0] + movs r2, #0x40 + orrs r1, r2 + strb r1, [r0] +_0804D20A: + ldr r1, _0804D220 + ldr r0, [r1] + adds r0, #6 + str r0, [r1] + mov ip, r1 + b _0804D228 + .align 2, 0 +_0804D218: .4byte 0x02024020 +_0804D21C: .4byte 0x02024140 +_0804D220: .4byte 0x02023EB8 +_0804D224: + adds r0, r2, #6 + str r0, [r6] +_0804D228: + ldr r0, _0804D278 + ldr r0, [r0] + lsrs r5, r0, #0x1c + ldr r1, _0804D27C + movs r0, #0 + strb r0, [r1] + ldr r4, _0804D280 + ldr r2, [r4] + ands r2, r5 + ldr r6, _0804D284 + cmp r2, #0 + bne _0804D264 + adds r7, r6, #0 + ldrb r0, [r6] + cmp r2, r0 + bhs _0804D264 + adds r3, r1, #0 +_0804D24A: + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + ldrb r2, [r3] + lsls r0, r2, #2 + adds r0, r0, r4 + ldr r0, [r0] + ands r0, r5 + cmp r0, #0 + bne _0804D264 + ldrb r0, [r7] + cmp r2, r0 + blo _0804D24A +_0804D264: + ldrb r0, [r1] + ldrb r6, [r6] + cmp r0, r6 + beq _0804D26E + b _0804D434 +_0804D26E: + mov r1, r8 + mov r2, ip + str r1, [r2] + b _0804D434 + .align 2, 0 +_0804D278: .4byte 0x02023F24 +_0804D27C: .4byte 0x02023EB1 +_0804D280: .4byte 0x082FACB4 +_0804D284: .4byte 0x02023D10 +_0804D288: + movs r0, #0x80 + ands r0, r1 + movs r5, #1 + cmp r0, #0 + beq _0804D294 + movs r5, #0 +_0804D294: + movs r0, #0x7f + ands r0, r1 + bl GetBattlerForBattleScript + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r1, _0804D2BC + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _0804D2C0 + ldr r0, [r6] + adds r0, #6 + str r0, [r6] + b _0804D434 + .align 2, 0 +_0804D2BC: .4byte 0x02024020 +_0804D2C0: + adds r0, r7, #0 + movs r1, #6 + movs r2, #6 + bl HasNoMonsToSwitch + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0804D310 + ldr r2, _0804D300 + strb r7, [r2] + ldr r3, _0804D304 + ldr r4, _0804D308 + ldrb r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r0, [r0] + ldrb r1, [r3] + orrs r0, r1 + strb r0, [r3] + ldr r3, _0804D30C + ldrb r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + lsls r1, r1, #0x1c + ldr r0, [r3] + bics r0, r1 + str r0, [r3] + mov r0, r8 + str r0, [r6] + b _0804D434 + .align 2, 0 +_0804D300: .4byte 0x02023D08 +_0804D304: .4byte 0x02023EB4 +_0804D308: .4byte 0x082FACB4 +_0804D30C: .4byte 0x02023F24 +_0804D310: + ldr r4, _0804D3D8 + strb r7, [r4] + ldrb r0, [r4] + ldr r3, _0804D3DC + ldr r1, [r3] + adds r1, r0, r1 + adds r1, #0x58 + ldr r2, _0804D3E0 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r4] + ldr r1, [r3] + adds r0, r0, r1 + adds r0, #0x5c + movs r1, #6 + strb r1, [r0] + ldr r1, [r3] + adds r1, #0x93 + ldr r2, _0804D3E4 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r2, [r0] + ldrb r0, [r1] + bics r0, r2 + strb r0, [r1] + ldrb r1, [r4] + movs r0, #2 + eors r0, r1 + ldr r3, [r3] + adds r0, r0, r3 + adds r0, #0x5c + ldrb r2, [r0] + ldrb r1, [r4] + lsls r0, r1, #1 + adds r0, r0, r1 + adds r0, #0x60 + adds r3, r3, r0 + str r3, [sp] + movs r0, #0 + adds r1, r5, #0 + movs r3, #0 + bl BtlController_EmitChoosePokemon + ldrb r0, [r4] + bl MarkBattlerForControllerExec + ldr r0, [r6] + adds r0, #6 + str r0, [r6] + ldrb r0, [r4] + bl GetBattlerPosition + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804D390 + ldr r1, _0804D3E8 + ldrb r0, [r1, #2] + cmp r0, #0xfe + bhi _0804D390 + adds r0, #1 + strb r0, [r1, #2] +_0804D390: + ldr r0, _0804D3EC + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0804D3F4 + ldr r1, _0804D3D8 + movs r0, #0 + strb r0, [r1] + ldr r0, _0804D3F0 + ldrb r0, [r0] + cmp r0, #0 + beq _0804D434 + adds r4, r1, #0 +_0804D3AC: + ldrb r0, [r4] + cmp r0, r7 + beq _0804D3C2 + movs r0, #0 + movs r1, #2 + movs r2, #0 + bl BtlController_EmitLinkStandbyMsg + ldrb r0, [r4] + bl MarkBattlerForControllerExec +_0804D3C2: + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + ldr r1, _0804D3F0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + blo _0804D3AC + b _0804D434 + .align 2, 0 +_0804D3D8: .4byte 0x02023D08 +_0804D3DC: .4byte 0x02024140 +_0804D3E0: .4byte 0x02023D12 +_0804D3E4: .4byte 0x082FACB4 +_0804D3E8: .4byte 0x03005A70 +_0804D3EC: .4byte 0x02022C90 +_0804D3F0: .4byte 0x02023D10 +_0804D3F4: + adds r0, r7, #0 + bl GetBattlerPosition + movs r1, #1 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + ldr r4, _0804D444 + strb r0, [r4] + ldr r0, _0804D448 + ldrb r1, [r0] + ldr r2, _0804D44C + ldrb r3, [r4] + lsls r0, r3, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _0804D424 + movs r0, #2 + eors r3, r0 + strb r3, [r4] +_0804D424: + movs r0, #0 + movs r1, #2 + movs r2, #0 + bl BtlController_EmitLinkStandbyMsg + ldrb r0, [r4] + bl MarkBattlerForControllerExec +_0804D434: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0804D444: .4byte 0x02023D08 +_0804D448: .4byte 0x02023EB4 +_0804D44C: .4byte 0x082FACB4 + thumb_func_end atk50_openpartyscreen + + thumb_func_start atk51_switchhandleorder +atk51_switchhandleorder: @ 0x0804D450 + push {r4, r5, r6, r7, lr} + ldr r0, _0804D47C + ldr r0, [r0] + cmp r0, #0 + beq _0804D45C + b _0804D6BA +_0804D45C: + ldr r4, _0804D480 + ldr r0, [r4] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + ldr r5, _0804D484 + strb r0, [r5] + ldr r0, [r4] + ldrb r0, [r0, #2] + cmp r0, #1 + beq _0804D4FC + cmp r0, #1 + bgt _0804D488 + cmp r0, #0 + beq _0804D492 + b _0804D6B2 + .align 2, 0 +_0804D47C: .4byte 0x02023D0C +_0804D480: .4byte 0x02023EB8 +_0804D484: .4byte 0x02023D08 +_0804D488: + cmp r0, #2 + beq _0804D518 + cmp r0, #3 + beq _0804D552 + b _0804D6B2 +_0804D492: + movs r6, #0 + ldr r0, _0804D4EC + ldrb r0, [r0] + cmp r6, r0 + blt _0804D49E + b _0804D6B2 +_0804D49E: + ldr r7, _0804D4F0 +_0804D4A0: + ldrb r0, [r7] + cmp r0, #0x22 + bne _0804D4DA + ldr r5, _0804D4F4 + ldr r0, [r5] + adds r0, r6, r0 + adds r0, #0x5c + ldrb r1, [r7, #1] + strb r1, [r0] + ldr r0, [r5] + adds r0, #0x93 + ldrb r1, [r0] + ldr r2, _0804D4F8 + lsls r0, r6, #2 + adds r0, r0, r2 + ldr r4, [r0] + ands r1, r4 + cmp r1, #0 + bne _0804D4DA + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r7, #1] + bl RecordedBattle_SetBattlerAction + ldr r1, [r5] + adds r1, #0x93 + ldrb r0, [r1] + orrs r4, r0 + strb r4, [r1] +_0804D4DA: + movs r0, #0x80 + lsls r0, r0, #2 + adds r7, r7, r0 + adds r6, #1 + ldr r0, _0804D4EC + ldrb r0, [r0] + cmp r6, r0 + blt _0804D4A0 + b _0804D6B2 + .align 2, 0 +_0804D4EC: .4byte 0x02023D10 +_0804D4F0: .4byte 0x02023508 +_0804D4F4: .4byte 0x02024140 +_0804D4F8: .4byte 0x082FACB4 +_0804D4FC: + ldr r0, _0804D514 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0804D50A + b _0804D6B2 +_0804D50A: + ldrb r0, [r5] + bl sub_0803B9E4 + b _0804D6B2 + .align 2, 0 +_0804D514: .4byte 0x02022C90 +_0804D518: + ldr r4, _0804D62C + ldr r0, [r4] + adds r0, #0x93 + ldrb r1, [r0] + ldr r6, _0804D630 + ldrb r2, [r5] + lsls r0, r2, #2 + adds r0, r0, r6 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _0804D552 + ldr r0, _0804D634 + lsls r1, r2, #9 + adds r0, #1 + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r2, #0 + bl RecordedBattle_SetBattlerAction + ldr r2, [r4] + adds r2, #0x93 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] +_0804D552: + ldr r1, _0804D638 + ldr r6, _0804D634 + ldr r7, _0804D63C + ldrb r0, [r7] + lsls r0, r0, #9 + adds r2, r6, #1 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + ldr r1, _0804D62C + mov ip, r1 + ldr r1, [r1] + adds r1, r0, r1 + adds r1, #0x5c + lsls r0, r0, #9 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _0804D640 + ldr r1, [r0] + movs r0, #0x42 + ands r0, r1 + cmp r0, #0x42 + bne _0804D644 + ldrb r0, [r7] + mov r3, ip + ldr r2, [r3] + lsls r1, r0, #1 + adds r1, r1, r0 + adds r1, r1, r2 + adds r1, #0x60 + ldrb r2, [r1] + movs r0, #0xf + ands r0, r2 + strb r0, [r1] + ldrb r0, [r7] + ldr r2, [r3] + lsls r1, r0, #1 + adds r1, r1, r0 + adds r1, r1, r2 + adds r1, #0x60 + lsls r0, r0, #9 + adds r5, r6, #2 + adds r0, r0, r5 + ldrb r2, [r0] + movs r3, #0xf0 + adds r0, r3, #0 + ands r0, r2 + ldrb r2, [r1] + orrs r0, r2 + strb r0, [r1] + ldrb r1, [r7] + mov r0, ip + ldr r2, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + adds r0, r0, r2 + adds r0, #0x61 + lsls r1, r1, #9 + adds r6, #3 + adds r1, r1, r6 + ldrb r1, [r1] + strb r1, [r0] + ldrb r0, [r7] + movs r4, #2 + eors r0, r4 + mov r1, ip + ldr r2, [r1] + lsls r1, r0, #1 + adds r1, r1, r0 + adds r1, r1, r2 + adds r1, #0x60 + ldrb r2, [r1] + adds r0, r3, #0 + ands r0, r2 + strb r0, [r1] + ldrb r0, [r7] + eors r0, r4 + mov r1, ip + ldr r2, [r1] + lsls r1, r0, #1 + adds r1, r1, r0 + adds r1, r1, r2 + adds r1, #0x60 + ldrb r0, [r7] + lsls r0, r0, #9 + adds r0, r0, r5 + ldrb r0, [r0] + ands r3, r0 + lsrs r3, r3, #4 + ldrb r0, [r1] + orrs r3, r0 + strb r3, [r1] + ldrb r0, [r7] + eors r4, r0 + mov r2, ip + ldr r0, [r2] + lsls r1, r4, #1 + adds r1, r1, r4 + adds r1, r1, r0 + adds r1, #0x62 + ldrb r0, [r7] + lsls r0, r0, #9 + adds r0, r0, r6 + ldrb r0, [r0] + strb r0, [r1] + b _0804D666 + .align 2, 0 +_0804D62C: .4byte 0x02024140 +_0804D630: .4byte 0x082FACB4 +_0804D634: .4byte 0x02023508 +_0804D638: .4byte 0x02023FD6 +_0804D63C: .4byte 0x02023D08 +_0804D640: .4byte 0x02022C90 +_0804D644: + movs r0, #0x80 + lsls r0, r0, #0xf + ands r1, r0 + cmp r1, #0 + beq _0804D660 + ldrb r0, [r7] + mov r3, ip + ldr r1, [r3] + adds r1, r0, r1 + adds r1, #0x5c + ldrb r1, [r1] + bl sub_08056DEC + b _0804D666 +_0804D660: + ldrb r0, [r7] + bl sub_0803B9E4 +_0804D666: + ldr r1, _0804D6C0 + movs r5, #0xfd + strb r5, [r1] + movs r0, #6 + strb r0, [r1, #1] + ldr r4, _0804D6C4 + ldr r3, _0804D6C8 + ldrb r0, [r3] + movs r2, #0x58 + muls r0, r2, r0 + adds r0, r0, r4 + ldrh r0, [r0] + strb r0, [r1, #2] + ldrb r0, [r3] + muls r0, r2, r0 + adds r0, r0, r4 + ldrh r0, [r0] + lsrs r0, r0, #8 + strb r0, [r1, #3] + movs r0, #0xff + strb r0, [r1, #4] + ldr r2, _0804D6CC + strb r5, [r2] + movs r0, #7 + strb r0, [r2, #1] + ldr r3, _0804D6D0 + ldrb r0, [r3] + strb r0, [r2, #2] + ldr r1, _0804D6D4 + ldrb r0, [r3] + lsls r0, r0, #9 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r2, #3] + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r2, #4] +_0804D6B2: + ldr r1, _0804D6D8 + ldr r0, [r1] + adds r0, #3 + str r0, [r1] +_0804D6BA: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0804D6C0: .4byte 0x02022C0C +_0804D6C4: .4byte 0x02023D28 +_0804D6C8: .4byte 0x02023EAF +_0804D6CC: .4byte 0x02022C1C +_0804D6D0: .4byte 0x02023D08 +_0804D6D4: .4byte 0x02023508 +_0804D6D8: .4byte 0x02023EB8 + thumb_func_end atk51_switchhandleorder + + thumb_func_start atk52_switchineffects +atk52_switchineffects: @ 0x0804D6DC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r0, _0804D814 + mov sb, r0 + ldr r0, [r0] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + ldr r4, _0804D818 + strb r0, [r4] + ldrb r0, [r4] + bl sub_0803F6B0 + ldr r1, _0804D81C + mov r8, r1 + ldr r1, _0804D820 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + lsls r1, r1, #0x1c + mov r2, r8 + ldr r0, [r2] + bics r0, r1 + str r0, [r2] + ldr r2, _0804D824 + ldrb r0, [r4] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r2, [r1] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldrb r0, [r4] + bl GetBattlerSide + ldr r5, _0804D828 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r5 + ldrh r1, [r0] + movs r7, #0x80 + lsls r7, r7, #2 + mov sl, r7 + mov r0, sl + ands r0, r1 + cmp r0, #0 + beq _0804D74C + b _0804D860 +_0804D74C: + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r5 + ldrh r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _0804D764 + b _0804D860 +_0804D764: + ldr r7, _0804D82C + ldrb r2, [r4] + movs r6, #0x58 + adds r0, r2, #0 + muls r0, r6, r0 + adds r1, r0, r7 + adds r0, r1, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #2 + beq _0804D860 + adds r0, r1, #0 + adds r0, #0x22 + ldrb r0, [r0] + cmp r0, #2 + beq _0804D860 + adds r0, r1, #0 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x1a + beq _0804D860 + adds r0, r2, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r5 + ldrh r2, [r0] + mov r1, sl + orrs r1, r2 + strh r1, [r0] + ldrb r0, [r4] + adds r2, r0, #0 + muls r2, r6, r2 + adds r0, r7, #0 + adds r0, #0x50 + adds r2, r2, r0 + ldr r0, [r2] + ldr r1, _0804D830 + ands r0, r1 + str r0, [r2] + mov r1, r8 + ldr r0, [r1] + movs r2, #0x41 + rsbs r2, r2, #0 + ands r0, r2 + str r0, [r1] + ldrb r0, [r4] + bl GetBattlerSide + ldr r2, _0804D834 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r0, [r1, #0xa] + movs r1, #5 + subs r1, r1, r0 + lsls r1, r1, #0x19 + lsrs r1, r1, #0x18 + ldr r5, _0804D838 + ldrb r0, [r4] + muls r0, r6, r0 + adds r0, r0, r7 + ldrh r0, [r0, #0x2c] + bl __divsi3 + str r0, [r5] + cmp r0, #0 + bne _0804D7F8 + movs r0, #1 + str r0, [r5] +_0804D7F8: + ldr r0, _0804D83C + ldrb r1, [r4] + strb r1, [r0, #0x17] + bl BattleScriptPushCursor + mov r7, sb + ldr r0, [r7] + ldrb r0, [r0, #1] + cmp r0, #0 + bne _0804D844 + ldr r0, _0804D840 + str r0, [r7] + b _0804D9BE + .align 2, 0 +_0804D814: .4byte 0x02023EB8 +_0804D818: .4byte 0x02023D08 +_0804D81C: .4byte 0x02023F24 +_0804D820: .4byte 0x082FACB4 +_0804D824: .4byte 0x02024020 +_0804D828: .4byte 0x02023F32 +_0804D82C: .4byte 0x02023D28 +_0804D830: .4byte 0xFDFFFFFF +_0804D834: .4byte 0x02023F38 +_0804D838: .4byte 0x02023E94 +_0804D83C: .4byte 0x02024118 +_0804D840: .4byte 0x08289418 +_0804D844: + cmp r0, #1 + bne _0804D854 + ldr r0, _0804D850 + mov r1, sb + str r0, [r1] + b _0804D9BE + .align 2, 0 +_0804D850: .4byte 0x082893E1 +_0804D854: + ldr r0, _0804D85C + mov r2, sb + str r0, [r2] + b _0804D9BE + .align 2, 0 +_0804D85C: .4byte 0x0828944F +_0804D860: + ldr r2, _0804D95C + ldr r1, _0804D960 + ldrb r3, [r1] + movs r0, #0x58 + muls r0, r3, r0 + adds r0, r0, r2 + adds r0, #0x20 + ldrb r0, [r0] + adds r5, r1, #0 + ldr r4, _0804D964 + cmp r0, #0x36 + bne _0804D88E + lsls r0, r3, #3 + subs r0, r0, r3 + lsls r0, r0, #2 + adds r2, r0, r4 + ldrb r1, [r2, #0x18] + lsls r0, r1, #0x1e + cmp r0, #0 + blt _0804D88E + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #0x18] +_0804D88E: + ldrb r0, [r5] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r2, [r1, #0x18] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #0x18] + ldrb r1, [r5] + movs r0, #0 + str r0, [sp] + movs r2, #0 + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0804D8B8 + b _0804D9BE +_0804D8B8: + ldrb r1, [r5] + movs r0, #0 + movs r2, #0 + bl ItemBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804D9BE + ldrb r0, [r5] + bl GetBattlerSide + ldr r1, _0804D968 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r1 + ldrh r2, [r0] + ldr r1, _0804D96C + ands r1, r2 + strh r1, [r0] + movs r4, #0 + ldr r0, _0804D970 + ldrb r7, [r0] + cmp r4, r7 + bge _0804D908 + ldr r6, _0804D974 + adds r1, r5, #0 + ldr r5, _0804D978 + movs r3, #0xc + adds r2, r0, #0 +_0804D8F2: + adds r0, r4, r6 + ldrb r0, [r0] + ldrb r7, [r1] + cmp r0, r7 + bne _0804D900 + adds r0, r4, r5 + strb r3, [r0] +_0804D900: + adds r4, #1 + ldrb r0, [r2] + cmp r4, r0 + blt _0804D8F2 +_0804D908: + movs r4, #0 + ldr r0, _0804D970 + ldrb r0, [r0] + cmp r4, r0 + bge _0804D93C + ldr r6, _0804D97C + ldr r5, _0804D95C +_0804D916: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, #0xa8 + ldr r1, [r6] + adds r1, r1, r0 + movs r0, #0x58 + muls r0, r4, r0 + adds r0, r0, r5 + ldrh r0, [r0, #0x28] + strh r0, [r1] + adds r4, #1 + ldr r0, _0804D970 + ldrb r0, [r0] + cmp r4, r0 + blt _0804D916 +_0804D93C: + ldr r0, _0804D980 + ldr r1, [r0] + ldrb r1, [r1, #1] + adds r5, r0, #0 + cmp r1, #5 + bne _0804D9B8 + ldr r0, _0804D984 + ldr r0, [r0] + lsrs r4, r0, #0x1c + ldr r1, _0804D988 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r2, _0804D98C + b _0804D99E + .align 2, 0 +_0804D95C: .4byte 0x02023D28 +_0804D960: .4byte 0x02023D08 +_0804D964: .4byte 0x02023F60 +_0804D968: .4byte 0x02023F32 +_0804D96C: .4byte 0x0000FDFF +_0804D970: .4byte 0x02023D10 +_0804D974: .4byte 0x02023D22 +_0804D978: .4byte 0x02023D1E +_0804D97C: .4byte 0x02024140 +_0804D980: .4byte 0x02023EB8 +_0804D984: .4byte 0x02023F24 +_0804D988: .4byte 0x02023EB1 +_0804D98C: .4byte 0x082FACB4 +_0804D990: + ldr r0, _0804D9D0 + ldrb r3, [r1] + ldrb r0, [r0] + cmp r3, r0 + bhs _0804D9B8 + adds r0, r3, #1 + strb r0, [r1] +_0804D99E: + ldrb r0, [r1] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r3, [r0] + adds r0, r4, #0 + ands r0, r3 + cmp r0, #0 + beq _0804D990 + ldr r0, _0804D9D4 + ldrb r0, [r0] + ands r0, r3 + cmp r0, #0 + bne _0804D990 +_0804D9B8: + ldr r0, [r5] + adds r0, #2 + str r0, [r5] +_0804D9BE: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0804D9D0: .4byte 0x02023D10 +_0804D9D4: .4byte 0x02023EB4 + thumb_func_end atk52_switchineffects + + thumb_func_start atk53_trainerslidein +atk53_trainerslidein: @ 0x0804D9D8 + push {r4, r5, lr} + ldr r5, _0804DA00 + ldr r0, [r5] + ldrb r0, [r0, #1] + bl GetBattlerAtPosition + ldr r4, _0804DA04 + strb r0, [r4] + movs r0, #0 + bl BtlController_EmitTrainerSlide + ldrb r0, [r4] + bl MarkBattlerForControllerExec + ldr r0, [r5] + adds r0, #2 + str r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0804DA00: .4byte 0x02023EB8 +_0804DA04: .4byte 0x02023D08 + thumb_func_end atk53_trainerslidein + + thumb_func_start atk54_playse +atk54_playse: @ 0x0804DA08 + push {r4, r5, lr} + ldr r5, _0804DA38 + ldr r0, _0804DA3C + ldrb r0, [r0] + strb r0, [r5] + ldr r4, _0804DA40 + ldr r0, [r4] + ldrb r1, [r0, #1] + ldrb r0, [r0, #2] + lsls r0, r0, #8 + orrs r1, r0 + movs r0, #0 + bl BtlController_EmitPlaySE + ldrb r0, [r5] + bl MarkBattlerForControllerExec + ldr r0, [r4] + adds r0, #3 + str r0, [r4] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0804DA38: .4byte 0x02023D08 +_0804DA3C: .4byte 0x02023EAF +_0804DA40: .4byte 0x02023EB8 + thumb_func_end atk54_playse + + thumb_func_start atk55_fanfare +atk55_fanfare: @ 0x0804DA44 + push {r4, r5, lr} + ldr r5, _0804DA74 + ldr r0, _0804DA78 + ldrb r0, [r0] + strb r0, [r5] + ldr r4, _0804DA7C + ldr r0, [r4] + ldrb r1, [r0, #1] + ldrb r0, [r0, #2] + lsls r0, r0, #8 + orrs r1, r0 + movs r0, #0 + movs r2, #0 + bl BtlController_EmitPlayFanfareOrBGM + ldrb r0, [r5] + bl MarkBattlerForControllerExec + ldr r0, [r4] + adds r0, #3 + str r0, [r4] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0804DA74: .4byte 0x02023D08 +_0804DA78: .4byte 0x02023EAF +_0804DA7C: .4byte 0x02023EB8 + thumb_func_end atk55_fanfare + + thumb_func_start atk56_playfaintcry +atk56_playfaintcry: @ 0x0804DA80 + push {r4, r5, lr} + ldr r5, _0804DAA8 + ldr r0, [r5] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + ldr r4, _0804DAAC + strb r0, [r4] + movs r0, #0 + bl BtlController_EmitFaintingCry + ldrb r0, [r4] + bl MarkBattlerForControllerExec + ldr r0, [r5] + adds r0, #2 + str r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0804DAA8: .4byte 0x02023EB8 +_0804DAAC: .4byte 0x02023D08 + thumb_func_end atk56_playfaintcry + + thumb_func_start atk57 +atk57: @ 0x0804DAB0 + push {r4, lr} + movs r0, #0 + bl GetBattlerAtPosition + ldr r4, _0804DADC + strb r0, [r4] + ldr r0, _0804DAE0 + ldrb r1, [r0] + movs r0, #0 + bl BtlController_EmitCmd55 + ldrb r0, [r4] + bl MarkBattlerForControllerExec + ldr r1, _0804DAE4 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804DADC: .4byte 0x02023D08 +_0804DAE0: .4byte 0x02023FDE +_0804DAE4: .4byte 0x02023EB8 + thumb_func_end atk57 + + thumb_func_start atk58_returntoball +atk58_returntoball: @ 0x0804DAE8 + push {r4, r5, lr} + ldr r5, _0804DB14 + ldr r0, [r5] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + ldr r4, _0804DB18 + strb r0, [r4] + movs r0, #0 + movs r1, #1 + bl BtlController_EmitReturnMonToBall + ldrb r0, [r4] + bl MarkBattlerForControllerExec + ldr r0, [r5] + adds r0, #2 + str r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0804DB14: .4byte 0x02023EB8 +_0804DB18: .4byte 0x02023D08 + thumb_func_end atk58_returntoball + + thumb_func_start atk59_handlelearnnewmove +atk59_handlelearnnewmove: @ 0x0804DB1C + push {r4, r5, r6, r7, lr} + ldr r0, _0804DB90 + ldr r2, [r0] + ldrb r6, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r6, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r6, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r6, r0 + ldrb r4, [r2, #5] + ldrb r0, [r2, #6] + lsls r0, r0, #8 + orrs r4, r0 + ldrb r0, [r2, #7] + lsls r0, r0, #0x10 + orrs r4, r0 + ldrb r0, [r2, #8] + lsls r0, r0, #0x18 + orrs r4, r0 + ldr r0, _0804DB94 + ldr r0, [r0] + ldrb r1, [r0, #0x10] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0804DB98 + adds r0, r0, r1 + ldrb r1, [r2, #9] + bl MonTryLearningNewMove + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, _0804DB9C + cmp r5, r0 + bne _0804DB86 + adds r7, r5, #0 +_0804DB6A: + ldr r0, _0804DB94 + ldr r0, [r0] + ldrb r1, [r0, #0x10] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0804DB98 + adds r0, r0, r1 + movs r1, #0 + bl MonTryLearningNewMove + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, r7 + beq _0804DB6A +_0804DB86: + cmp r5, #0 + bne _0804DBA0 + ldr r0, _0804DB90 + str r4, [r0] + b _0804DC48 + .align 2, 0 +_0804DB90: .4byte 0x02023EB8 +_0804DB94: .4byte 0x02024140 +_0804DB98: .4byte 0x02024190 +_0804DB9C: .4byte 0x0000FFFE +_0804DBA0: + ldr r0, _0804DBB0 + cmp r5, r0 + bne _0804DBB8 + ldr r1, _0804DBB4 + ldr r0, [r1] + adds r0, #0xa + str r0, [r1] + b _0804DC48 + .align 2, 0 +_0804DBB0: .4byte 0x0000FFFF +_0804DBB4: .4byte 0x02023EB8 +_0804DBB8: + movs r0, #0 + bl GetBattlerAtPosition + ldr r1, _0804DC50 + strb r0, [r1] + ldr r2, _0804DC54 + ldrb r3, [r1] + lsls r0, r3, #1 + adds r0, r0, r2 + ldr r1, _0804DC58 + ldr r1, [r1] + ldrh r0, [r0] + ldrb r1, [r1, #0x10] + cmp r0, r1 + bne _0804DBF8 + ldr r4, _0804DC5C + movs r0, #0x58 + adds r2, r3, #0 + muls r2, r0, r2 + adds r0, r4, #0 + adds r0, #0x50 + adds r0, r2, r0 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xe + ands r0, r1 + cmp r0, #0 + bne _0804DBF8 + adds r0, r2, r4 + adds r1, r5, #0 + bl GiveMoveToBattleMon +_0804DBF8: + ldr r0, _0804DC60 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0804DC44 + movs r0, #2 + bl GetBattlerAtPosition + ldr r1, _0804DC50 + strb r0, [r1] + ldr r2, _0804DC54 + ldrb r3, [r1] + lsls r0, r3, #1 + adds r0, r0, r2 + ldr r1, _0804DC58 + ldr r1, [r1] + ldrh r0, [r0] + ldrb r1, [r1, #0x10] + cmp r0, r1 + bne _0804DC44 + ldr r4, _0804DC5C + movs r0, #0x58 + adds r2, r3, #0 + muls r2, r0, r2 + adds r0, r4, #0 + adds r0, #0x50 + adds r0, r2, r0 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xe + ands r0, r1 + cmp r0, #0 + bne _0804DC44 + adds r0, r2, r4 + adds r1, r5, #0 + bl GiveMoveToBattleMon +_0804DC44: + ldr r0, _0804DC64 + str r6, [r0] +_0804DC48: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0804DC50: .4byte 0x02023D08 +_0804DC54: .4byte 0x02023D12 +_0804DC58: .4byte 0x02024140 +_0804DC5C: .4byte 0x02023D28 +_0804DC60: .4byte 0x02022C90 +_0804DC64: .4byte 0x02023EB8 + thumb_func_end atk59_handlelearnnewmove + + thumb_func_start atk5A_yesnoboxlearnmove +atk5A_yesnoboxlearnmove: @ 0x0804DC68 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + ldr r0, _0804DC8C + movs r1, #0 + strb r1, [r0] + ldr r0, _0804DC90 + ldrb r1, [r0, #0x1f] + adds r2, r0, #0 + cmp r1, #6 + bls _0804DC82 + b _0804DFE8 +_0804DC82: + lsls r0, r1, #2 + ldr r1, _0804DC94 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804DC8C: .4byte 0x02023D08 +_0804DC90: .4byte 0x02024118 +_0804DC94: .4byte 0x0804DC98 +_0804DC98: @ jump table + .4byte _0804DCB4 @ case 0 + .4byte _0804DCEC @ case 1 + .4byte _0804DD92 @ case 2 + .4byte _0804DDE8 @ case 3 + .4byte _0804DE14 @ case 4 + .4byte _0804DFBC @ case 5 + .4byte _0804DFDC @ case 6 +_0804DCB4: + movs r4, #0 + str r4, [sp] + movs r0, #0x18 + movs r1, #8 + movs r2, #0x1d + movs r3, #0xd + bl HandleBattleWindow + ldr r0, _0804DCE0 + movs r1, #0xc + bl sub_0814FA04 + ldr r1, _0804DCE4 + ldrb r0, [r1, #0x1f] + adds r0, #1 + strb r0, [r1, #0x1f] + ldr r0, _0804DCE8 + strb r4, [r0, #1] + movs r0, #0 + bl BattleCreateYesNoCursorAt + b _0804DFE8 + .align 2, 0 +_0804DCE0: .4byte 0x085ABBC9 +_0804DCE4: .4byte 0x02024118 +_0804DCE8: .4byte 0x02023FD6 +_0804DCEC: + ldr r0, _0804DD78 + ldrh r1, [r0, #0x2e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0804DD14 + ldr r4, _0804DD7C + ldrb r0, [r4, #1] + cmp r0, #0 + beq _0804DD14 + movs r0, #5 + bl PlaySE + ldrb r0, [r4, #1] + bl BattleDestroyYesNoCursorAt + movs r0, #0 + strb r0, [r4, #1] + bl BattleCreateYesNoCursorAt +_0804DD14: + ldr r0, _0804DD78 + ldrh r1, [r0, #0x2e] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0804DD3C + ldr r4, _0804DD7C + ldrb r0, [r4, #1] + cmp r0, #0 + bne _0804DD3C + movs r0, #5 + bl PlaySE + ldrb r0, [r4, #1] + bl BattleDestroyYesNoCursorAt + movs r0, #1 + strb r0, [r4, #1] + bl BattleCreateYesNoCursorAt +_0804DD3C: + ldr r0, _0804DD78 + ldrh r1, [r0, #0x2e] + movs r5, #1 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _0804DD80 + movs r0, #5 + bl PlaySE + ldr r0, _0804DD7C + ldrb r4, [r0, #1] + cmp r4, #0 + bne _0804DE3A + str r5, [sp] + movs r0, #0x18 + movs r1, #8 + movs r2, #0x1d + movs r3, #0xd + bl HandleBattleWindow + movs r0, #1 + rsbs r0, r0, #0 + str r4, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + b _0804DDC2 + .align 2, 0 +_0804DD78: .4byte 0x03002360 +_0804DD7C: .4byte 0x02023FD6 +_0804DD80: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0804DD8A + b _0804DFE8 +_0804DD8A: + movs r0, #5 + bl PlaySE + b _0804DE3A +_0804DD92: + ldr r0, _0804DDCC + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0804DDA0 + b _0804DFE8 +_0804DDA0: + bl FreeAllWindowBuffers + ldr r0, _0804DDD0 + ldr r1, _0804DDD4 + ldr r1, [r1] + ldrb r1, [r1, #0x10] + ldr r2, _0804DDD8 + ldrb r2, [r2] + subs r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r3, _0804DDDC + ldr r4, _0804DDE0 + ldrh r4, [r4] + str r4, [sp] + bl ShowSelectMovePokemonSummaryScreen +_0804DDC2: + ldr r1, _0804DDE4 + ldrb r0, [r1, #0x1f] + adds r0, #1 + strb r0, [r1, #0x1f] + b _0804DFE8 + .align 2, 0 +_0804DDCC: .4byte 0x02037C74 +_0804DDD0: .4byte 0x02024190 +_0804DDD4: .4byte 0x02024140 +_0804DDD8: .4byte 0x0202418D +_0804DDDC: .4byte 0x080A8BC1 +_0804DDE0: .4byte 0x02024186 +_0804DDE4: .4byte 0x02024118 +_0804DDE8: + ldr r0, _0804DE08 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0804DDF6 + b _0804DFE8 +_0804DDF6: + ldr r0, _0804DE0C + ldr r1, [r0, #4] + ldr r0, _0804DE10 + cmp r1, r0 + beq _0804DE02 + b _0804DFE8 +_0804DE02: + ldrb r0, [r2, #0x1f] + adds r0, #1 + b _0804DFE6 + .align 2, 0 +_0804DE08: .4byte 0x02037C74 +_0804DE0C: .4byte 0x03002360 +_0804DE10: .4byte 0x080380FD +_0804DE14: + ldr r0, _0804DE44 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0804DE22 + b _0804DFE8 +_0804DE22: + ldr r0, _0804DE48 + ldr r1, [r0, #4] + ldr r0, _0804DE4C + cmp r1, r0 + beq _0804DE2E + b _0804DFE8 +_0804DE2E: + bl sub_081C14C8 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #4 + bne _0804DE54 +_0804DE3A: + ldr r1, _0804DE50 + movs r0, #5 + strb r0, [r1, #0x1f] + b _0804DFE8 + .align 2, 0 +_0804DE44: .4byte 0x02037C74 +_0804DE48: .4byte 0x03002360 +_0804DE4C: .4byte 0x080380FD +_0804DE50: .4byte 0x02024118 +_0804DE54: + ldr r6, _0804DE90 + ldr r0, [r6] + ldrb r0, [r0, #0x10] + movs r1, #0x64 + mov r8, r1 + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + ldr r7, _0804DE94 + adds r0, r0, r7 + adds r1, r5, #0 + adds r1, #0xd + bl GetMonData + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r4, #0 + bl IsHMMove2 + cmp r0, #0 + beq _0804DEA4 + ldr r0, _0804DE98 + ldr r1, _0804DE9C + ldrb r1, [r1] + bl PrepareStringBattle + ldr r1, _0804DEA0 + movs r0, #6 + strb r0, [r1, #0x1f] + b _0804DFE8 + .align 2, 0 +_0804DE90: .4byte 0x02024140 +_0804DE94: .4byte 0x02024190 +_0804DE98: .4byte 0x0000013F +_0804DE9C: .4byte 0x02023D08 +_0804DEA0: .4byte 0x02024118 +_0804DEA4: + ldr r3, _0804DF98 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + ldr r1, _0804DF9C + movs r0, #0xfd + strb r0, [r1] + movs r0, #2 + strb r0, [r1, #1] + strb r4, [r1, #2] + lsrs r0, r4, #8 + strb r0, [r1, #3] + movs r0, #0xff + strb r0, [r1, #4] + ldr r0, [r6] + ldrb r0, [r0, #0x10] + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + adds r0, r0, r7 + adds r1, r5, #0 + bl RemoveMonPPBonus + ldr r0, [r6] + ldrb r0, [r0, #0x10] + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + adds r0, r0, r7 + ldr r7, _0804DFA0 + ldrh r1, [r7] + adds r2, r5, #0 + bl SetMonMoveSlot + ldr r0, _0804DFA4 + ldr r1, [r6] + ldrh r0, [r0] + ldrb r1, [r1, #0x10] + cmp r0, r1 + bne _0804DF3A + ldr r4, _0804DFA8 + ldr r0, [r4, #0x50] + movs r1, #0x80 + lsls r1, r1, #0xe + ands r0, r1 + cmp r0, #0 + bne _0804DF3A + ldr r0, _0804DFAC + ldrb r1, [r0, #0x18] + lsrs r1, r1, #4 + ldr r2, _0804DFB0 + lsls r0, r5, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _0804DF3A + adds r0, r4, #0 + adds r1, r5, #0 + bl RemoveBattleMonPPBonus + ldrh r1, [r7] + adds r0, r4, #0 + adds r2, r5, #0 + bl SetBattleMonMoveSlot +_0804DF3A: + ldr r0, _0804DFB4 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0804DFE8 + ldr r2, _0804DFA4 + ldr r0, _0804DFB8 + ldr r1, [r0] + ldrh r0, [r2, #4] + ldrb r1, [r1, #0x10] + cmp r0, r1 + bne _0804DFE8 + ldr r4, _0804DFA8 + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xe + ands r0, r1 + cmp r0, #0 + bne _0804DFE8 + ldr r0, _0804DFAC + adds r0, #0x50 + ldrb r1, [r0] + lsrs r1, r1, #4 + ldr r2, _0804DFB0 + lsls r0, r5, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _0804DFE8 + adds r4, #0xb0 + adds r0, r4, #0 + adds r1, r5, #0 + bl RemoveBattleMonPPBonus + ldr r0, _0804DFA0 + ldrh r1, [r0] + adds r0, r4, #0 + adds r2, r5, #0 + bl SetBattleMonMoveSlot + b _0804DFE8 + .align 2, 0 +_0804DF98: .4byte 0x02023EB8 +_0804DF9C: .4byte 0x02022C1C +_0804DFA0: .4byte 0x02024186 +_0804DFA4: .4byte 0x02023D12 +_0804DFA8: .4byte 0x02023D28 +_0804DFAC: .4byte 0x02023F60 +_0804DFB0: .4byte 0x082FACB4 +_0804DFB4: .4byte 0x02022C90 +_0804DFB8: .4byte 0x02024140 +_0804DFBC: + movs r0, #1 + str r0, [sp] + movs r0, #0x18 + movs r1, #8 + movs r2, #0x1d + movs r3, #0xd + bl HandleBattleWindow + ldr r1, _0804DFD8 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] + b _0804DFE8 + .align 2, 0 +_0804DFD8: .4byte 0x02023EB8 +_0804DFDC: + ldr r0, _0804DFF4 + ldr r0, [r0] + cmp r0, #0 + bne _0804DFE8 + movs r0, #2 +_0804DFE6: + strb r0, [r2, #0x1f] +_0804DFE8: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0804DFF4: .4byte 0x02023D0C + thumb_func_end atk5A_yesnoboxlearnmove + + thumb_func_start atk5B_yesnoboxstoplearningmove +atk5B_yesnoboxstoplearningmove: @ 0x0804DFF8 + push {r4, r5, lr} + sub sp, #4 + ldr r5, _0804E00C + ldrb r4, [r5, #0x1f] + cmp r4, #0 + beq _0804E010 + cmp r4, #1 + beq _0804E040 + b _0804E12A + .align 2, 0 +_0804E00C: .4byte 0x02024118 +_0804E010: + str r4, [sp] + movs r0, #0x18 + movs r1, #8 + movs r2, #0x1d + movs r3, #0xd + bl HandleBattleWindow + ldr r0, _0804E038 + movs r1, #0xc + bl sub_0814FA04 + ldrb r0, [r5, #0x1f] + adds r0, #1 + strb r0, [r5, #0x1f] + ldr r0, _0804E03C + strb r4, [r0, #1] + movs r0, #0 + bl BattleCreateYesNoCursorAt + b _0804E12A + .align 2, 0 +_0804E038: .4byte 0x085ABBC9 +_0804E03C: .4byte 0x02023FD6 +_0804E040: + ldr r0, _0804E0C8 + ldrh r1, [r0, #0x2e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0804E068 + ldr r4, _0804E0CC + ldrb r0, [r4, #1] + cmp r0, #0 + beq _0804E068 + movs r0, #5 + bl PlaySE + ldrb r0, [r4, #1] + bl BattleDestroyYesNoCursorAt + movs r0, #0 + strb r0, [r4, #1] + bl BattleCreateYesNoCursorAt +_0804E068: + ldr r0, _0804E0C8 + ldrh r1, [r0, #0x2e] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0804E090 + ldr r4, _0804E0CC + ldrb r0, [r4, #1] + cmp r0, #0 + bne _0804E090 + movs r0, #5 + bl PlaySE + ldrb r0, [r4, #1] + bl BattleDestroyYesNoCursorAt + movs r0, #1 + strb r0, [r4, #1] + bl BattleCreateYesNoCursorAt +_0804E090: + ldr r0, _0804E0C8 + ldrh r1, [r0, #0x2e] + movs r4, #1 + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + beq _0804E0F4 + movs r0, #5 + bl PlaySE + ldr r0, _0804E0CC + ldrb r0, [r0, #1] + cmp r0, #0 + beq _0804E0D4 + ldr r3, _0804E0D0 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _0804E0DC + .align 2, 0 +_0804E0C8: .4byte 0x03002360 +_0804E0CC: .4byte 0x02023FD6 +_0804E0D0: .4byte 0x02023EB8 +_0804E0D4: + ldr r1, _0804E0F0 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] +_0804E0DC: + movs r0, #1 + str r0, [sp] + movs r0, #0x18 + movs r1, #8 + movs r2, #0x1d + movs r3, #0xd + bl HandleBattleWindow + b _0804E12A + .align 2, 0 +_0804E0F0: .4byte 0x02023EB8 +_0804E0F4: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0804E12A + movs r0, #5 + bl PlaySE + ldr r3, _0804E134 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + str r4, [sp] + movs r0, #0x18 + movs r1, #8 + movs r2, #0x1d + movs r3, #0xd + bl HandleBattleWindow +_0804E12A: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0804E134: .4byte 0x02023EB8 + thumb_func_end atk5B_yesnoboxstoplearningmove + + thumb_func_start atk5C_hitanimation +atk5C_hitanimation: @ 0x0804E138 + push {r4, lr} + ldr r4, _0804E1A4 + ldr r0, [r4] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + ldr r2, _0804E1A8 + strb r0, [r2] + ldr r0, _0804E1AC + ldrb r1, [r0] + movs r0, #0x29 + ands r0, r1 + cmp r0, #0 + bne _0804E1BC + ldr r0, _0804E1B0 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0804E18A + ldr r1, _0804E1B4 + ldrb r2, [r2] + movs r0, #0x58 + muls r0, r2, r0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + beq _0804E18A + ldr r0, _0804E1B8 + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #0xa] + cmp r0, #0 + bne _0804E1BC +_0804E18A: + movs r0, #0 + bl BtlController_EmitHitAnimation + ldr r0, _0804E1A8 + ldrb r0, [r0] + bl MarkBattlerForControllerExec + ldr r1, _0804E1A4 + ldr r0, [r1] + adds r0, #2 + str r0, [r1] + b _0804E1C2 + .align 2, 0 +_0804E1A4: .4byte 0x02023EB8 +_0804E1A8: .4byte 0x02023D08 +_0804E1AC: .4byte 0x02023F20 +_0804E1B0: .4byte 0x02023F24 +_0804E1B4: .4byte 0x02023D28 +_0804E1B8: .4byte 0x02023F60 +_0804E1BC: + ldr r0, [r4] + adds r0, #2 + str r0, [r4] +_0804E1C2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end atk5C_hitanimation + + thumb_func_start GetTrainerMoneyToGive +GetTrainerMoneyToGive: @ 0x0804E1C8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + movs r6, #0 + movs r5, #0 + movs r0, #0x80 + lsls r0, r0, #3 + cmp r1, r0 + bne _0804E204 + ldr r0, _0804E1FC + ldr r0, [r0] + ldr r0, [r0] + adds r0, #0x94 + ldrb r2, [r0] + ldr r0, _0804E200 + ldr r0, [r0] + adds r0, #0x4a + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + muls r0, r2, r0 + b _0804E2E4 + .align 2, 0 +_0804E1FC: .4byte 0x0202414C +_0804E200: .4byte 0x02024140 +_0804E204: + ldr r0, _0804E220 + lsls r1, r1, #5 + adds r3, r1, r0 + ldrb r2, [r3] + mov ip, r0 + adds r4, r1, #0 + cmp r2, #1 + beq _0804E252 + cmp r2, #1 + bgt _0804E224 + cmp r2, #0 + beq _0804E22E + b _0804E264 + .align 2, 0 +_0804E220: .4byte 0x082E383C +_0804E224: + cmp r2, #2 + beq _0804E240 + cmp r2, #3 + beq _0804E252 + b _0804E264 +_0804E22E: + mov r0, ip + adds r0, #0x1c + adds r0, r4, r0 + ldr r1, [r0] + ldrb r0, [r3, #0x18] + lsls r0, r0, #3 + adds r0, r0, r1 + subs r0, #8 + b _0804E262 +_0804E240: + mov r0, ip + adds r0, #0x1c + adds r0, r4, r0 + ldr r1, [r0] + ldrb r0, [r3, #0x18] + lsls r0, r0, #3 + adds r0, r0, r1 + subs r0, #8 + b _0804E262 +_0804E252: + mov r0, ip + adds r0, #0x1c + adds r0, r4, r0 + ldr r1, [r0] + ldrb r0, [r3, #0x18] + lsls r0, r0, #4 + adds r0, r0, r1 + subs r0, #0x10 +_0804E262: + ldrb r5, [r0, #2] +_0804E264: + ldr r1, _0804E2C4 + lsls r0, r6, #2 + adds r3, r0, r1 + ldrb r2, [r3] + ldr r7, _0804E2C8 + mov sb, r1 + ldr r0, _0804E2CC + mov r8, r0 + cmp r2, #0xff + beq _0804E296 + mov r1, ip + adds r0, r4, r1 + ldrb r1, [r0, #1] + cmp r2, r1 + beq _0804E296 + adds r1, r0, #0 + adds r0, r3, #0 +_0804E286: + adds r0, #4 + adds r6, #1 + ldrb r2, [r0] + cmp r2, #0xff + beq _0804E296 + ldrb r3, [r1, #1] + cmp r2, r3 + bne _0804E286 +_0804E296: + mov r0, r8 + ldr r1, [r0] + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + bne _0804E2D0 + movs r0, #1 + ands r1, r0 + cmp r1, #0 + beq _0804E2D0 + ldr r0, [r7] + adds r0, #0x4a + ldrb r0, [r0] + lsls r0, r0, #2 + adds r1, r5, #0 + muls r1, r0, r1 + lsls r0, r6, #2 + add r0, sb + ldrb r0, [r0, #1] + lsls r0, r0, #1 + b _0804E2E2 + .align 2, 0 +_0804E2C4: .4byte 0x082EBCE4 +_0804E2C8: .4byte 0x02024140 +_0804E2CC: .4byte 0x02022C90 +_0804E2D0: + ldr r0, [r7] + adds r0, #0x4a + ldrb r0, [r0] + lsls r0, r0, #2 + adds r1, r5, #0 + muls r1, r0, r1 + lsls r0, r6, #2 + add r0, sb + ldrb r0, [r0, #1] +_0804E2E2: + muls r0, r1, r0 +_0804E2E4: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end GetTrainerMoneyToGive + + thumb_func_start atk5D_getmoneyreward +atk5D_getmoneyreward: @ 0x0804E2F0 + push {r4, lr} + ldr r0, _0804E364 + ldrh r0, [r0] + bl GetTrainerMoneyToGive + adds r4, r0, #0 + ldr r0, _0804E368 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + beq _0804E314 + ldr r0, _0804E36C + ldrh r0, [r0] + bl GetTrainerMoneyToGive + adds r4, r4, r0 +_0804E314: + ldr r0, _0804E370 + ldr r0, [r0] + movs r1, #0x92 + lsls r1, r1, #3 + adds r0, r0, r1 + adds r1, r4, #0 + bl AddMoney + ldr r1, _0804E374 + movs r0, #0xfd + strb r0, [r1] + movs r0, #1 + strb r0, [r1, #1] + movs r0, #4 + strb r0, [r1, #2] + movs r0, #5 + strb r0, [r1, #3] + strb r4, [r1, #4] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r4 + lsrs r0, r0, #8 + strb r0, [r1, #5] + movs r0, #0xff + lsls r0, r0, #0x10 + ands r0, r4 + lsrs r0, r0, #0x10 + strb r0, [r1, #6] + lsrs r0, r4, #0x18 + strb r0, [r1, #7] + movs r0, #0xff + strb r0, [r1, #8] + ldr r1, _0804E378 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804E364: .4byte 0x0203886A +_0804E368: .4byte 0x02022C90 +_0804E36C: .4byte 0x0203886C +_0804E370: .4byte 0x03005AEC +_0804E374: .4byte 0x02022C0C +_0804E378: .4byte 0x02023EB8 + thumb_func_end atk5D_getmoneyreward + + thumb_func_start atk5E +atk5E: @ 0x0804E37C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r4, _0804E3A0 + ldr r0, [r4] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + ldr r6, _0804E3A4 + strb r0, [r6] + ldr r5, _0804E3A8 + ldrb r0, [r5] + mov r8, r4 + cmp r0, #0 + beq _0804E3AC + cmp r0, #1 + beq _0804E3C4 + b _0804E418 + .align 2, 0 +_0804E3A0: .4byte 0x02023EB8 +_0804E3A4: .4byte 0x02023D08 +_0804E3A8: .4byte 0x02023FD6 +_0804E3AC: + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl BtlController_EmitGetMonData + ldrb r0, [r6] + bl MarkBattlerForControllerExec + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + b _0804E418 +_0804E3C4: + ldr r0, _0804E424 + ldr r0, [r0] + cmp r0, #0 + bne _0804E418 + ldrb r0, [r6] + lsls r0, r0, #9 + ldr r1, _0804E428 + adds r0, r0, r1 + mov ip, r0 + movs r2, #0 + adds r4, r6, #0 + movs r5, #0x58 + ldr r6, _0804E42C + adds r7, r6, #0 + subs r7, #0x18 + mov r3, ip + adds r3, #0xc +_0804E3E6: + lsls r1, r2, #1 + ldrb r0, [r4] + muls r0, r5, r0 + adds r1, r1, r0 + adds r1, r1, r7 + ldrh r0, [r3] + strh r0, [r1] + ldrb r0, [r4] + adds r1, r0, #0 + muls r1, r5, r1 + adds r1, r2, r1 + adds r1, r1, r6 + mov r0, ip + adds r0, #0x24 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r3, #2 + adds r2, #1 + cmp r2, #3 + ble _0804E3E6 + mov r1, r8 + ldr r0, [r1] + adds r0, #2 + str r0, [r1] +_0804E418: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0804E424: .4byte 0x02023D0C +_0804E428: .4byte 0x0202350C +_0804E42C: .4byte 0x02023D4C + thumb_func_end atk5E + + thumb_func_start atk5F_swapattackerwithtarget +atk5F_swapattackerwithtarget: @ 0x0804E430 + push {lr} + ldr r0, _0804E458 + ldr r2, _0804E45C + ldrb r3, [r2] + strb r3, [r0] + ldr r1, _0804E460 + ldrb r0, [r1] + strb r0, [r2] + strb r3, [r1] + ldr r2, _0804E464 + ldr r1, [r2] + movs r3, #0x80 + lsls r3, r3, #5 + adds r0, r1, #0 + ands r0, r3 + cmp r0, #0 + beq _0804E46C + ldr r0, _0804E468 + ands r1, r0 + b _0804E46E + .align 2, 0 +_0804E458: .4byte 0x02023D08 +_0804E45C: .4byte 0x02023EAF +_0804E460: .4byte 0x02023EB0 +_0804E464: .4byte 0x02023F24 +_0804E468: .4byte 0xFFFFEFFF +_0804E46C: + orrs r1, r3 +_0804E46E: + str r1, [r2] + ldr r1, _0804E47C + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0804E47C: .4byte 0x02023EB8 + thumb_func_end atk5F_swapattackerwithtarget + + thumb_func_start atk60_incrementgamestat +atk60_incrementgamestat: @ 0x0804E480 + push {lr} + ldr r0, _0804E4A8 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804E49A + ldr r0, _0804E4AC + ldr r0, [r0] + ldrb r0, [r0, #1] + bl IncrementGameStat +_0804E49A: + ldr r1, _0804E4AC + ldr r0, [r1] + adds r0, #2 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0804E4A8: .4byte 0x02023EAF +_0804E4AC: .4byte 0x02023EB8 + thumb_func_end atk60_incrementgamestat + + thumb_func_start atk61_drawpartystatussummary +atk61_drawpartystatussummary: @ 0x0804E4B0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x30 + ldr r0, _0804E514 + ldr r0, [r0] + cmp r0, #0 + bne _0804E564 + ldr r0, _0804E518 + ldr r0, [r0] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + ldr r1, _0804E51C + strb r0, [r1] + ldrb r0, [r1] + bl GetBattlerSide + lsls r0, r0, #0x18 + ldr r1, _0804E520 + mov r8, r1 + cmp r0, #0 + bne _0804E4E2 + ldr r0, _0804E524 + mov r8, r0 +_0804E4E2: + movs r7, #0 + add r6, sp, #4 + mov r5, sp +_0804E4E8: + movs r0, #0x64 + muls r0, r7, r0 + mov r1, r8 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + cmp r0, #0 + beq _0804E50C + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + movs r1, #0xce + lsls r1, r1, #1 + cmp r0, r1 + bne _0804E52C +_0804E50C: + ldr r0, _0804E528 + strh r0, [r5] + movs r0, #0 + b _0804E53E + .align 2, 0 +_0804E514: .4byte 0x02023D0C +_0804E518: .4byte 0x02023EB8 +_0804E51C: .4byte 0x02023D08 +_0804E520: .4byte 0x020243E8 +_0804E524: .4byte 0x02024190 +_0804E528: .4byte 0x0000FFFF +_0804E52C: + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + strh r0, [r5] + adds r0, r4, #0 + movs r1, #0x37 + bl GetMonData +_0804E53E: + str r0, [r6] + adds r6, #8 + adds r5, #8 + adds r7, #1 + cmp r7, #5 + ble _0804E4E8 + movs r0, #0 + mov r1, sp + movs r2, #1 + bl BtlController_EmitDrawPartyStatusSummary + ldr r0, _0804E570 + ldrb r0, [r0] + bl MarkBattlerForControllerExec + ldr r1, _0804E574 + ldr r0, [r1] + adds r0, #2 + str r0, [r1] +_0804E564: + add sp, #0x30 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0804E570: .4byte 0x02023D08 +_0804E574: .4byte 0x02023EB8 + thumb_func_end atk61_drawpartystatussummary + + thumb_func_start atk62_hidepartystatussummary +atk62_hidepartystatussummary: @ 0x0804E578 + push {r4, r5, lr} + ldr r5, _0804E5A0 + ldr r0, [r5] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + ldr r4, _0804E5A4 + strb r0, [r4] + movs r0, #0 + bl BtlController_EmitHidePartyStatusSummary + ldrb r0, [r4] + bl MarkBattlerForControllerExec + ldr r0, [r5] + adds r0, #2 + str r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0804E5A0: .4byte 0x02023EB8 +_0804E5A4: .4byte 0x02023D08 + thumb_func_end atk62_hidepartystatussummary + + thumb_func_start atk63_jumptocalledmove +atk63_jumptocalledmove: @ 0x0804E5A8 + push {r4, lr} + ldr r0, _0804E5C0 + ldr r1, [r0] + ldrb r1, [r1, #1] + adds r4, r0, #0 + cmp r1, #0 + beq _0804E5CC + ldr r0, _0804E5C4 + ldr r1, _0804E5C8 + ldrh r1, [r1] + strh r1, [r0] + b _0804E5DA + .align 2, 0 +_0804E5C0: .4byte 0x02023EB8 +_0804E5C4: .4byte 0x02023E8E +_0804E5C8: .4byte 0x02023E92 +_0804E5CC: + ldr r2, _0804E5F8 + ldr r1, _0804E5FC + ldr r0, _0804E600 + ldrh r0, [r0] + strh r0, [r1] + strh r0, [r2] + adds r0, r1, #0 +_0804E5DA: + ldr r3, _0804E604 + ldr r2, _0804E608 + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r3 + ldr r0, [r0] + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804E5F8: .4byte 0x02023E90 +_0804E5FC: .4byte 0x02023E8E +_0804E600: .4byte 0x02023E92 +_0804E604: .4byte 0x08286C30 +_0804E608: .4byte 0x082ED220 + thumb_func_end atk63_jumptocalledmove + + thumb_func_start atk64_statusanimation +atk64_statusanimation: @ 0x0804E60C + push {r4, lr} + ldr r0, _0804E67C + ldr r0, [r0] + cmp r0, #0 + bne _0804E674 + ldr r0, _0804E680 + ldr r0, [r0] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + ldr r4, _0804E684 + strb r0, [r4] + ldr r1, _0804E688 + ldrb r2, [r4] + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _0804E68C + ands r0, r1 + cmp r0, #0 + bne _0804E66C + ldr r0, _0804E690 + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #0xa] + cmp r0, #0 + bne _0804E66C + ldr r0, _0804E694 + ldr r0, [r0] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0804E66C + ldr r1, _0804E698 + movs r0, #0x58 + muls r0, r2, r0 + adds r1, #0x4c + adds r0, r0, r1 + ldr r2, [r0] + movs r0, #0 + movs r1, #0 + bl BtlController_EmitStatusAnimation + ldrb r0, [r4] + bl MarkBattlerForControllerExec +_0804E66C: + ldr r1, _0804E680 + ldr r0, [r1] + adds r0, #2 + str r0, [r1] +_0804E674: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804E67C: .4byte 0x02023D0C +_0804E680: .4byte 0x02023EB8 +_0804E684: .4byte 0x02023D08 +_0804E688: .4byte 0x02023F50 +_0804E68C: .4byte 0x000400C0 +_0804E690: .4byte 0x02023F60 +_0804E694: .4byte 0x02023F24 +_0804E698: .4byte 0x02023D28 + thumb_func_end atk64_statusanimation + + thumb_func_start atk65_status2animation +atk65_status2animation: @ 0x0804E69C + push {r4, r5, lr} + ldr r0, _0804E724 + ldr r0, [r0] + cmp r0, #0 + bne _0804E71C + ldr r4, _0804E728 + ldr r0, [r4] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + ldr r5, _0804E72C + strb r0, [r5] + ldr r1, [r4] + ldrb r3, [r1, #2] + ldrb r0, [r1, #3] + lsls r0, r0, #8 + orrs r3, r0 + ldrb r0, [r1, #4] + lsls r0, r0, #0x10 + orrs r3, r0 + ldrb r0, [r1, #5] + lsls r0, r0, #0x18 + orrs r3, r0 + ldr r1, _0804E730 + ldrb r2, [r5] + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _0804E734 + ands r0, r1 + cmp r0, #0 + bne _0804E714 + ldr r0, _0804E738 + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #0xa] + cmp r0, #0 + bne _0804E714 + ldr r0, _0804E73C + ldr r0, [r0] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0804E714 + ldr r1, _0804E740 + movs r0, #0x58 + muls r0, r2, r0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r2, [r0] + ands r2, r3 + movs r0, #0 + movs r1, #1 + bl BtlController_EmitStatusAnimation + ldrb r0, [r5] + bl MarkBattlerForControllerExec +_0804E714: + ldr r1, _0804E728 + ldr r0, [r1] + adds r0, #6 + str r0, [r1] +_0804E71C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0804E724: .4byte 0x02023D0C +_0804E728: .4byte 0x02023EB8 +_0804E72C: .4byte 0x02023D08 +_0804E730: .4byte 0x02023F50 +_0804E734: .4byte 0x000400C0 +_0804E738: .4byte 0x02023F60 +_0804E73C: .4byte 0x02023F24 +_0804E740: .4byte 0x02023D28 + thumb_func_end atk65_status2animation + + thumb_func_start atk66_chosenstatusanimation +atk66_chosenstatusanimation: @ 0x0804E744 + push {r4, r5, lr} + ldr r0, _0804E7BC + ldr r0, [r0] + cmp r0, #0 + bne _0804E7B6 + ldr r4, _0804E7C0 + ldr r0, [r4] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + ldr r5, _0804E7C4 + strb r0, [r5] + ldr r4, [r4] + ldrb r2, [r4, #3] + ldrb r0, [r4, #4] + lsls r0, r0, #8 + orrs r2, r0 + ldrb r0, [r4, #5] + lsls r0, r0, #0x10 + orrs r2, r0 + ldrb r0, [r4, #6] + lsls r0, r0, #0x18 + orrs r2, r0 + ldr r1, _0804E7C8 + ldrb r3, [r5] + lsls r0, r3, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _0804E7CC + ands r0, r1 + cmp r0, #0 + bne _0804E7AE + ldr r0, _0804E7D0 + lsls r1, r3, #3 + subs r1, r1, r3 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #0xa] + cmp r0, #0 + bne _0804E7AE + ldr r0, _0804E7D4 + ldr r0, [r0] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0804E7AE + ldrb r1, [r4, #2] + movs r0, #0 + bl BtlController_EmitStatusAnimation + ldrb r0, [r5] + bl MarkBattlerForControllerExec +_0804E7AE: + ldr r1, _0804E7C0 + ldr r0, [r1] + adds r0, #7 + str r0, [r1] +_0804E7B6: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0804E7BC: .4byte 0x02023D0C +_0804E7C0: .4byte 0x02023EB8 +_0804E7C4: .4byte 0x02023D08 +_0804E7C8: .4byte 0x02023F50 +_0804E7CC: .4byte 0x000400C0 +_0804E7D0: .4byte 0x02023F60 +_0804E7D4: .4byte 0x02023F24 + thumb_func_end atk66_chosenstatusanimation + + thumb_func_start atk67_yesnobox +atk67_yesnobox: @ 0x0804E7D8 + push {r4, r5, lr} + sub sp, #4 + ldr r5, _0804E7EC + ldrb r4, [r5] + cmp r4, #0 + beq _0804E7F0 + cmp r4, #1 + beq _0804E81C + b _0804E8AE + .align 2, 0 +_0804E7EC: .4byte 0x02023FD6 +_0804E7F0: + str r4, [sp] + movs r0, #0x18 + movs r1, #8 + movs r2, #0x1d + movs r3, #0xd + bl HandleBattleWindow + ldr r0, _0804E818 + movs r1, #0xc + bl sub_0814FA04 + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + strb r4, [r5, #1] + movs r0, #0 + bl BattleCreateYesNoCursorAt + b _0804E8AE + .align 2, 0 +_0804E818: .4byte 0x085ABBC9 +_0804E81C: + ldr r0, _0804E880 + ldrh r1, [r0, #0x2e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0804E842 + ldrb r0, [r5, #1] + cmp r0, #0 + beq _0804E842 + movs r0, #5 + bl PlaySE + ldrb r0, [r5, #1] + bl BattleDestroyYesNoCursorAt + movs r0, #0 + strb r0, [r5, #1] + bl BattleCreateYesNoCursorAt +_0804E842: + ldr r0, _0804E880 + ldrh r1, [r0, #0x2e] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0804E86A + ldr r4, _0804E884 + ldrb r0, [r4, #1] + cmp r0, #0 + bne _0804E86A + movs r0, #5 + bl PlaySE + ldrb r0, [r4, #1] + bl BattleDestroyYesNoCursorAt + movs r0, #1 + strb r0, [r4, #1] + bl BattleCreateYesNoCursorAt +_0804E86A: + ldr r0, _0804E880 + ldrh r1, [r0, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0804E888 + ldr r0, _0804E884 + movs r4, #1 + strb r4, [r0, #1] + b _0804E892 + .align 2, 0 +_0804E880: .4byte 0x03002360 +_0804E884: .4byte 0x02023FD6 +_0804E888: + movs r4, #1 + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + beq _0804E8AE +_0804E892: + movs r0, #5 + bl PlaySE + str r4, [sp] + movs r0, #0x18 + movs r1, #8 + movs r2, #0x1d + movs r3, #0xd + bl HandleBattleWindow + ldr r1, _0804E8B8 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] +_0804E8AE: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0804E8B8: .4byte 0x02023EB8 + thumb_func_end atk67_yesnobox + + thumb_func_start atk68_cancelallactions +atk68_cancelallactions: @ 0x0804E8BC + push {r4, r5, lr} + movs r1, #0 + ldr r2, _0804E8E8 + ldr r5, _0804E8EC + ldrb r0, [r2] + cmp r1, r0 + bge _0804E8DA + ldr r4, _0804E8F0 + movs r3, #0xc +_0804E8CE: + adds r0, r1, r4 + strb r3, [r0] + adds r1, #1 + ldrb r0, [r2] + cmp r1, r0 + blt _0804E8CE +_0804E8DA: + ldr r0, [r5] + adds r0, #1 + str r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0804E8E8: .4byte 0x02023D10 +_0804E8EC: .4byte 0x02023EB8 +_0804E8F0: .4byte 0x02023D1E + thumb_func_end atk68_cancelallactions + + thumb_func_start atk69_adjustsetdamage +atk69_adjustsetdamage: @ 0x0804E8F4 + push {r4, r5, r6, r7, lr} + ldr r7, _0804E91C + ldr r6, _0804E920 + ldrb r2, [r6] + movs r5, #0x58 + adds r0, r2, #0 + muls r0, r5, r0 + adds r1, r0, r7 + ldrh r0, [r1, #0x2e] + cmp r0, #0xaf + bne _0804E928 + ldr r1, _0804E924 + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r4, [r0, #7] + ldrb r6, [r0, #0x1a] + b _0804E942 + .align 2, 0 +_0804E91C: .4byte 0x02023D28 +_0804E920: .4byte 0x02023EB0 +_0804E924: .4byte 0x020240A8 +_0804E928: + ldrh r0, [r1, #0x2e] + bl sub_080D6CF8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldrb r0, [r6] + muls r0, r5, r0 + adds r0, r0, r7 + ldrh r0, [r0, #0x2e] + bl sub_080D6D1C + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_0804E942: + ldr r1, _0804EA04 + ldr r5, _0804EA08 + ldrb r0, [r5] + strb r0, [r1] + cmp r4, #0x27 + bne _0804E980 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r6 + bhs _0804E980 + ldrb r0, [r5] + movs r1, #0x27 + bl RecordItemEffectBattle + ldr r2, _0804EA0C + ldrb r1, [r5] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0] +_0804E980: + ldr r2, _0804EA10 + ldr r3, _0804EA08 + ldrb r4, [r3] + movs r0, #0x58 + muls r0, r4, r0 + adds r1, r2, #0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r1, [r0] + movs r0, #0x80 + lsls r0, r0, #0x11 + ands r1, r0 + adds r5, r2, #0 + cmp r1, #0 + bne _0804EA50 + ldr r2, _0804EA14 + ldr r0, _0804EA18 + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #0x65 + beq _0804E9D2 + ldr r0, _0804EA1C + lsls r1, r4, #4 + adds r1, r1, r0 + ldrb r0, [r1] + lsls r0, r0, #0x1e + cmp r0, #0 + blt _0804E9D2 + ldr r0, _0804EA0C + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1] + lsrs r0, r0, #7 + cmp r0, #0 + beq _0804EA50 +_0804E9D2: + ldrb r0, [r3] + movs r4, #0x58 + muls r0, r4, r0 + adds r0, r0, r5 + ldrh r1, [r0, #0x28] + ldr r2, _0804EA20 + ldr r0, [r2] + cmp r1, r0 + bgt _0804EA50 + subs r0, r1, #1 + str r0, [r2] + ldr r1, _0804EA1C + ldrb r3, [r3] + lsls r0, r3, #4 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1e + cmp r0, #0 + bge _0804EA28 + ldr r0, _0804EA24 + ldrb r1, [r0] + movs r2, #0x40 + orrs r1, r2 + strb r1, [r0] + b _0804EA50 + .align 2, 0 +_0804EA04: .4byte 0x02023EB3 +_0804EA08: .4byte 0x02023EB0 +_0804EA0C: .4byte 0x02024020 +_0804EA10: .4byte 0x02023D28 +_0804EA14: .4byte 0x082ED220 +_0804EA18: .4byte 0x02023E8E +_0804EA1C: .4byte 0x02023FE0 +_0804EA20: .4byte 0x02023E94 +_0804EA24: .4byte 0x02023F20 +_0804EA28: + ldr r0, _0804EA60 + lsls r1, r3, #2 + adds r1, r1, r3 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1] + lsrs r0, r0, #7 + cmp r0, #0 + beq _0804EA50 + ldr r2, _0804EA64 + ldrb r0, [r2] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0804EA68 + adds r0, r3, #0 + muls r0, r4, r0 + adds r0, r0, r5 + ldrh r0, [r0, #0x2e] + strh r0, [r1] +_0804EA50: + ldr r1, _0804EA6C + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0804EA60: .4byte 0x02024020 +_0804EA64: .4byte 0x02023F20 +_0804EA68: .4byte 0x02023EAC +_0804EA6C: .4byte 0x02023EB8 + thumb_func_end atk69_adjustsetdamage + + thumb_func_start atk6A_removeitem +atk6A_removeitem: @ 0x0804EA70 + push {r4, r5, r6, lr} + sub sp, #4 + ldr r6, _0804EAD0 + ldr r0, [r6] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + ldr r5, _0804EAD4 + strb r0, [r5] + ldr r1, _0804EAD8 + ldrb r4, [r5] + lsls r0, r4, #1 + adds r0, #0xb8 + ldr r1, [r1] + adds r1, r1, r0 + ldr r2, _0804EADC + movs r3, #0x58 + adds r0, r4, #0 + muls r0, r3, r0 + adds r0, r0, r2 + ldrh r0, [r0, #0x2e] + strh r0, [r1] + ldrb r0, [r5] + muls r0, r3, r0 + adds r0, r0, r2 + movs r1, #0 + strh r1, [r0, #0x2e] + ldrb r0, [r5] + muls r0, r3, r0 + adds r2, #0x2e + adds r0, r0, r2 + str r0, [sp] + movs r0, #0 + movs r1, #2 + movs r2, #0 + movs r3, #2 + bl BtlController_EmitSetMonData + ldrb r0, [r5] + bl MarkBattlerForControllerExec + ldr r0, [r6] + adds r0, #2 + str r0, [r6] + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0804EAD0: .4byte 0x02023EB8 +_0804EAD4: .4byte 0x02023D08 +_0804EAD8: .4byte 0x02024140 +_0804EADC: .4byte 0x02023D28 + thumb_func_end atk6A_removeitem + + thumb_func_start atk6B_atknameinbuff1 +atk6B_atknameinbuff1: @ 0x0804EAE0 + ldr r1, _0804EB0C + movs r0, #0xfd + strb r0, [r1] + movs r0, #7 + strb r0, [r1, #1] + ldr r2, _0804EB10 + ldrb r0, [r2] + strb r0, [r1, #2] + ldr r3, _0804EB14 + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + strb r0, [r1, #3] + movs r0, #0xff + strb r0, [r1, #4] + ldr r1, _0804EB18 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + bx lr + .align 2, 0 +_0804EB0C: .4byte 0x02022C0C +_0804EB10: .4byte 0x02023EAF +_0804EB14: .4byte 0x02023D12 +_0804EB18: .4byte 0x02023EB8 + thumb_func_end atk6B_atknameinbuff1 + + thumb_func_start atk6C_drawlvlupbox +atk6C_drawlvlupbox: @ 0x0804EB1C + push {r4, lr} + sub sp, #4 + ldr r0, _0804EB38 + ldrb r1, [r0, #0x1e] + adds r4, r0, #0 + cmp r1, #0 + bne _0804EB40 + bl IsMonGettingExpSentOut + cmp r0, #0 + beq _0804EB3C + movs r0, #3 + b _0804EB3E + .align 2, 0 +_0804EB38: .4byte 0x02024118 +_0804EB3C: + movs r0, #1 +_0804EB3E: + strb r0, [r4, #0x1e] +_0804EB40: + ldrb r0, [r4, #0x1e] + subs r0, #1 + cmp r0, #9 + bls _0804EB4A + b _0804ED0A +_0804EB4A: + lsls r0, r0, #2 + ldr r1, _0804EB54 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804EB54: .4byte 0x0804EB58 +_0804EB58: @ jump table + .4byte _0804EB80 @ case 0 + .4byte _0804EBAC @ case 1 + .4byte _0804EBC4 @ case 2 + .4byte _0804EC18 @ case 3 + .4byte _0804EC2C @ case 4 + .4byte _0804EC44 @ case 5 + .4byte _0804EC2C @ case 6 + .4byte _0804EC64 @ case 7 + .4byte _0804EC94 @ case 8 + .4byte _0804ECD8 @ case 9 +_0804EB80: + ldr r1, _0804EBA4 + movs r0, #0x60 + strh r0, [r1] + movs r0, #2 + movs r1, #7 + movs r2, #0 + bl SetBgAttribute + movs r0, #2 + bl ShowBg + bl sub_0804ED94 + ldr r1, _0804EBA8 + movs r0, #2 + strb r0, [r1, #0x1e] + b _0804ED0A + .align 2, 0 +_0804EBA4: .4byte 0x02022AD2 +_0804EBA8: .4byte 0x02024118 +_0804EBAC: + bl sub_0804EDE4 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0804EBB8 + b _0804ED0A +_0804EBB8: + ldr r1, _0804EBC0 + movs r0, #3 + strb r0, [r1, #0x1e] + b _0804ED0A + .align 2, 0 +_0804EBC0: .4byte 0x02024118 +_0804EBC4: + ldr r1, _0804EC0C + movs r0, #0 + strh r0, [r1] + ldr r1, _0804EC10 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r2, #0 + strh r0, [r1] + movs r0, #0 + movs r1, #7 + movs r2, #1 + bl SetBgAttribute + movs r0, #1 + movs r1, #7 + movs r2, #0 + bl SetBgAttribute + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #0x80 + str r0, [sp] + movs r0, #0x12 + movs r1, #7 + movs r2, #0x1d + movs r3, #0x13 + bl HandleBattleWindow + ldr r1, _0804EC14 + movs r0, #4 + strb r0, [r1, #0x1e] + b _0804ED0A + .align 2, 0 +_0804EC0C: .4byte 0x02022ACC +_0804EC10: .4byte 0x02022ACE +_0804EC14: .4byte 0x02024118 +_0804EC18: + bl DrawLevelUpWindow1 + movs r0, #0xd + bl PutWindowTilemap + movs r0, #0xd + movs r1, #3 + bl CopyWindowToVram + b _0804EC82 +_0804EC2C: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0804ED0A + ldr r0, _0804EC40 + strh r1, [r0] + b _0804EC82 + .align 2, 0 +_0804EC40: .4byte 0x02022ACE +_0804EC44: + ldr r0, _0804EC60 + ldrh r0, [r0, #0x2e] + cmp r0, #0 + beq _0804ED0A + movs r0, #5 + bl PlaySE + bl DrawLevelUpWindow2 + movs r0, #0xd + movs r1, #2 + bl CopyWindowToVram + b _0804EC82 + .align 2, 0 +_0804EC60: .4byte 0x03002360 +_0804EC64: + ldr r0, _0804EC8C + ldrh r0, [r0, #0x2e] + cmp r0, #0 + beq _0804ED0A + movs r0, #5 + bl PlaySE + movs r0, #0x81 + str r0, [sp] + movs r0, #0x12 + movs r1, #7 + movs r2, #0x1d + movs r3, #0x13 + bl HandleBattleWindow +_0804EC82: + ldr r1, _0804EC90 + ldrb r0, [r1, #0x1e] + adds r0, #1 + strb r0, [r1, #0x1e] + b _0804ED0A + .align 2, 0 +_0804EC8C: .4byte 0x03002360 +_0804EC90: .4byte 0x02024118 +_0804EC94: + bl sub_0804EF50 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804ED0A + movs r0, #0xe + bl ClearWindowTilemap + movs r0, #0xe + movs r1, #1 + bl CopyWindowToVram + movs r0, #0xd + bl ClearWindowTilemap + movs r0, #0xd + movs r1, #1 + bl CopyWindowToVram + movs r0, #2 + movs r1, #7 + movs r2, #2 + bl SetBgAttribute + movs r0, #2 + bl ShowBg + ldr r1, _0804ECD4 + movs r0, #0xa + strb r0, [r1, #0x1e] + b _0804ED0A + .align 2, 0 +_0804ECD4: .4byte 0x02024118 +_0804ECD8: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804ED0A + movs r0, #0 + movs r1, #7 + movs r2, #0 + bl SetBgAttribute + movs r0, #1 + movs r1, #7 + movs r2, #1 + bl SetBgAttribute + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + ldr r1, _0804ED14 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] +_0804ED0A: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804ED14: .4byte 0x02023EB8 + thumb_func_end atk6C_drawlvlupbox + + thumb_func_start DrawLevelUpWindow1 +DrawLevelUpWindow1: @ 0x0804ED18 + push {lr} + sub sp, #0x14 + ldr r0, _0804ED50 + ldr r0, [r0] + ldrb r1, [r0, #0x10] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0804ED54 + adds r0, r0, r1 + add r1, sp, #8 + bl GetMonLevelUpWindowStats + ldr r0, _0804ED58 + ldr r0, [r0] + ldr r1, [r0, #0x10] + movs r0, #0xd + str r0, [sp] + movs r0, #0xf + str r0, [sp, #4] + movs r0, #0xd + add r2, sp, #8 + movs r3, #0xe + bl DrawLevelUpWindowPg1 + add sp, #0x14 + pop {r0} + bx r0 + .align 2, 0 +_0804ED50: .4byte 0x02024140 +_0804ED54: .4byte 0x02024190 +_0804ED58: .4byte 0x0202414C + thumb_func_end DrawLevelUpWindow1 + + thumb_func_start DrawLevelUpWindow2 +DrawLevelUpWindow2: @ 0x0804ED5C + push {lr} + sub sp, #0x10 + ldr r0, _0804ED8C + ldr r0, [r0] + ldrb r1, [r0, #0x10] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0804ED90 + adds r0, r0, r1 + add r1, sp, #4 + bl GetMonLevelUpWindowStats + movs r0, #0xf + str r0, [sp] + movs r0, #0xd + add r1, sp, #4 + movs r2, #0xe + movs r3, #0xd + bl DrawLevelUpWindowPg2 + add sp, #0x10 + pop {r0} + bx r0 + .align 2, 0 +_0804ED8C: .4byte 0x02024140 +_0804ED90: .4byte 0x02024190 + thumb_func_end DrawLevelUpWindow2 + + thumb_func_start sub_0804ED94 +sub_0804ED94: @ 0x0804ED94 + push {lr} + ldr r1, _0804EDD4 + movs r0, #0 + strh r0, [r1] + ldr r1, _0804EDD8 + movs r2, #0xd0 + lsls r2, r2, #1 + adds r0, r2, #0 + strh r0, [r1] + ldr r0, _0804EDDC + movs r1, #0x60 + movs r2, #0x20 + bl LoadPalette + ldr r1, _0804EDE0 + movs r0, #0xe + movs r2, #0 + movs r3, #0 + bl CopyToWindowPixelBuffer + movs r0, #0xe + bl PutWindowTilemap + movs r0, #0xe + movs r1, #3 + bl CopyWindowToVram + bl PutMonIconOnLvlUpBox + pop {r0} + bx r0 + .align 2, 0 +_0804EDD4: .4byte 0x02022AD2 +_0804EDD8: .4byte 0x02022AD0 +_0804EDDC: .4byte 0x082ECC4C +_0804EDE0: .4byte 0x082ECC6C + thumb_func_end sub_0804ED94 + + thumb_func_start sub_0804EDE4 +sub_0804EDE4: @ 0x0804EDE4 + push {r4, r5, lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0804EDF4 + movs r0, #1 + b _0804EE2E +_0804EDF4: + ldr r4, _0804EE04 + ldrh r1, [r4] + movs r5, #0x80 + lsls r5, r5, #2 + cmp r1, r5 + bne _0804EE08 + movs r0, #0 + b _0804EE2E + .align 2, 0 +_0804EE04: .4byte 0x02022AD0 +_0804EE08: + movs r0, #0xd0 + lsls r0, r0, #1 + cmp r1, r0 + bne _0804EE14 + bl PutLevelAndGenderOnLvlUpBox +_0804EE14: + ldrh r0, [r4] + adds r0, #8 + strh r0, [r4] + lsls r0, r0, #0x10 + ldr r1, _0804EE34 + cmp r0, r1 + bls _0804EE24 + strh r5, [r4] +_0804EE24: + ldrh r1, [r4] + eors r1, r5 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f +_0804EE2E: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0804EE34: .4byte 0x01FF0000 + thumb_func_end sub_0804EDE4 + + thumb_func_start PutLevelAndGenderOnLvlUpBox +PutLevelAndGenderOnLvlUpBox: @ 0x0804EE38 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x10 + ldr r6, _0804EF00 + ldr r0, [r6] + ldrb r0, [r0, #0x10] + movs r5, #0x64 + muls r0, r5, r0 + ldr r4, _0804EF04 + adds r0, r0, r4 + movs r1, #0x38 + bl GetMonData + mov r8, r0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + ldr r0, [r6] + ldrb r0, [r0, #0x10] + muls r0, r5, r0 + adds r0, r0, r4 + bl GetMonGender + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, [r6] + ldrb r0, [r0, #0x10] + muls r0, r5, r0 + adds r0, r0, r4 + ldr r5, _0804EF08 + adds r1, r5, #0 + bl GetMonNickname + str r5, [sp] + mov r2, sp + movs r1, #0 + movs r0, #0xe + strb r0, [r2, #4] + mov r0, sp + strb r1, [r0, #5] + movs r4, #0x20 + strb r4, [r0, #6] + strb r1, [r0, #7] + strb r4, [r0, #8] + strb r1, [r0, #9] + strb r1, [r0, #0xa] + strb r1, [r0, #0xb] + mov r3, sp + ldrb r2, [r3, #0xc] + subs r1, #0x10 + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3, #0xc] + mov r2, sp + movs r0, #0x10 + strb r0, [r2, #0xc] + ldrb r0, [r2, #0xd] + ands r1, r0 + strb r1, [r2, #0xd] + mov r0, sp + strb r4, [r0, #0xd] + movs r1, #0xff + movs r2, #0 + bl AddTextPrinter + movs r0, #0xf9 + strb r0, [r5] + adds r5, #1 + movs r0, #5 + strb r0, [r5] + adds r5, #1 + adds r0, r5, #0 + mov r1, r8 + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + adds r5, r0, #0 + movs r1, #0 + movs r2, #1 + bl StringFill + adds r5, r0, #0 + cmp r7, #0xff + beq _0804EF2C + cmp r7, #0 + bne _0804EF0C + movs r1, #0 + movs r2, #0xc + bl WriteColorChangeControlCode + adds r5, r0, #0 + movs r1, #1 + movs r2, #0xd + bl WriteColorChangeControlCode + adds r5, r0, #0 + movs r0, #0xb5 + b _0804EF24 + .align 2, 0 +_0804EF00: .4byte 0x02024140 +_0804EF04: .4byte 0x02024190 +_0804EF08: .4byte 0x02021C7C +_0804EF0C: + adds r0, r5, #0 + movs r1, #0 + movs r2, #0xe + bl WriteColorChangeControlCode + adds r5, r0, #0 + movs r1, #1 + movs r2, #0xf + bl WriteColorChangeControlCode + adds r5, r0, #0 + movs r0, #0xb6 +_0804EF24: + strb r0, [r5] + adds r5, #1 + movs r0, #0xff + strb r0, [r5] +_0804EF2C: + mov r0, sp + movs r1, #0xa + strb r1, [r0, #7] + strb r1, [r0, #9] + movs r1, #0xff + movs r2, #0 + bl AddTextPrinter + movs r0, #0xe + movs r1, #2 + bl CopyWindowToVram + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end PutLevelAndGenderOnLvlUpBox + + thumb_func_start sub_0804EF50 +sub_0804EF50: @ 0x0804EF50 + push {lr} + ldr r0, _0804EF64 + ldrh r1, [r0] + movs r3, #0xd0 + lsls r3, r3, #1 + adds r2, r0, #0 + cmp r1, r3 + bne _0804EF68 + movs r0, #0 + b _0804EF8C + .align 2, 0 +_0804EF64: .4byte 0x02022AD0 +_0804EF68: + ldrh r0, [r2] + adds r1, r0, #0 + subs r1, #0x10 + ldr r0, _0804EF78 + cmp r1, r0 + bgt _0804EF7C + strh r3, [r2] + b _0804EF7E + .align 2, 0 +_0804EF78: .4byte 0x0000019F +_0804EF7C: + strh r1, [r2] +_0804EF7E: + ldrh r1, [r2] + movs r0, #0xd0 + lsls r0, r0, #1 + eors r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f +_0804EF8C: + pop {r1} + bx r1 + thumb_func_end sub_0804EF50 + + thumb_func_start PutMonIconOnLvlUpBox +PutMonIconOnLvlUpBox: @ 0x0804EF90 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0x10 + ldr r0, _0804F038 + mov r8, r0 + ldr r0, [r0] + ldrb r0, [r0, #0x10] + movs r6, #0x64 + muls r0, r6, r0 + ldr r5, _0804F03C + adds r0, r0, r5 + movs r1, #0xb + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + mov r1, r8 + ldr r0, [r1] + ldrb r0, [r0, #0x10] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #0 + bl GetMonData + adds r1, r0, #0 + adds r0, r4, #0 + movs r2, #1 + bl GetMonIconPtr + str r0, [sp] + ldr r5, _0804F040 + ldr r0, [sp, #4] + ands r0, r5 + movs r1, #0x80 + lsls r1, r1, #2 + orrs r0, r1 + ldr r1, _0804F044 + ands r0, r1 + ldr r1, _0804F048 + orrs r0, r1 + str r0, [sp, #4] + adds r0, r4, #0 + bl GetValidMonIconPalettePtr + str r0, [sp, #8] + add r4, sp, #8 + ldr r0, [r4, #4] + ands r0, r5 + ldr r1, _0804F04C + orrs r0, r1 + str r0, [r4, #4] + mov r0, sp + bl LoadSpriteSheet + adds r0, r4, #0 + bl LoadSpritePalette + ldr r0, _0804F050 + movs r1, #0x80 + lsls r1, r1, #1 + movs r2, #0xa + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0804F054 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #0 + strh r0, [r1, #0x2e] + ldr r0, _0804F058 + ldrh r0, [r0] + strh r0, [r1, #0x30] + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0804F038: .4byte 0x02024140 +_0804F03C: .4byte 0x02024190 +_0804F040: .4byte 0xFFFF0000 +_0804F044: .4byte 0x0000FFFF +_0804F048: .4byte 0xD75A0000 +_0804F04C: .4byte 0x0000D75A +_0804F050: .4byte 0x082ECD44 +_0804F054: .4byte 0x020205AC +_0804F058: .4byte 0x02022AD0 + thumb_func_end PutMonIconOnLvlUpBox + + thumb_func_start SpriteCB_MonIconOnLvlUpBox +SpriteCB_MonIconOnLvlUpBox: @ 0x0804F05C + push {r4, lr} + adds r2, r0, #0 + ldr r0, _0804F078 + ldrh r1, [r2, #0x30] + ldrh r0, [r0] + subs r1, r1, r0 + strh r1, [r2, #0x24] + lsls r1, r1, #0x10 + cmp r1, #0 + beq _0804F07C + movs r0, #1 + strh r0, [r2, #0x2e] + b _0804F098 + .align 2, 0 +_0804F078: .4byte 0x02022AD0 +_0804F07C: + movs r1, #0x2e + ldrsh r0, [r2, r1] + cmp r0, #0 + beq _0804F098 + adds r0, r2, #0 + bl DestroySprite + ldr r4, _0804F0A0 + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl FreeSpritePaletteByTag +_0804F098: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804F0A0: .4byte 0x0000D75A + thumb_func_end SpriteCB_MonIconOnLvlUpBox + + thumb_func_start IsMonGettingExpSentOut +IsMonGettingExpSentOut: @ 0x0804F0A4 + push {lr} + ldr r3, _0804F0CC + ldr r0, _0804F0D0 + ldr r0, [r0] + ldrh r1, [r3] + ldrb r2, [r0, #0x10] + cmp r1, r2 + beq _0804F0C6 + ldr r0, _0804F0D4 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0804F0D8 + ldrh r0, [r3, #4] + cmp r0, r2 + bne _0804F0D8 +_0804F0C6: + movs r0, #1 + b _0804F0DA + .align 2, 0 +_0804F0CC: .4byte 0x02023D12 +_0804F0D0: .4byte 0x02024140 +_0804F0D4: .4byte 0x02022C90 +_0804F0D8: + movs r0, #0 +_0804F0DA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsMonGettingExpSentOut + + thumb_func_start atk6D_resetsentmonsvalue +atk6D_resetsentmonsvalue: @ 0x0804F0E0 + push {lr} + bl ResetSentPokesToOpponentValue + ldr r1, _0804F0F4 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0804F0F4: .4byte 0x02023EB8 + thumb_func_end atk6D_resetsentmonsvalue + + thumb_func_start atk6E_setatktoplayer0 +atk6E_setatktoplayer0: @ 0x0804F0F8 + push {lr} + movs r0, #0 + bl GetBattlerAtPosition + ldr r1, _0804F110 + strb r0, [r1] + ldr r1, _0804F114 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0804F110: .4byte 0x02023EAF +_0804F114: .4byte 0x02023EB8 + thumb_func_end atk6E_setatktoplayer0 + + thumb_func_start atk6F_makevisible +atk6F_makevisible: @ 0x0804F118 + push {r4, r5, lr} + ldr r5, _0804F144 + ldr r0, [r5] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + ldr r4, _0804F148 + strb r0, [r4] + movs r0, #0 + movs r1, #0 + bl BtlController_EmitSpriteInvisibility + ldrb r0, [r4] + bl MarkBattlerForControllerExec + ldr r0, [r5] + adds r0, #2 + str r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0804F144: .4byte 0x02023EB8 +_0804F148: .4byte 0x02023D08 + thumb_func_end atk6F_makevisible + + thumb_func_start atk70_recordlastability +atk70_recordlastability: @ 0x0804F14C + push {r4, lr} + ldr r4, _0804F174 + ldr r0, [r4] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + ldr r1, _0804F178 + strb r0, [r1] + ldrb r0, [r1] + ldr r1, _0804F17C + ldrb r1, [r1] + bl RecordAbilityBattle + ldr r0, [r4] + adds r0, #1 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804F174: .4byte 0x02023EB8 +_0804F178: .4byte 0x02023D08 +_0804F17C: .4byte 0x02023EAE + thumb_func_end atk70_recordlastability + + thumb_func_start BufferMoveToLearnIntoBattleTextBuff2 +BufferMoveToLearnIntoBattleTextBuff2: @ 0x0804F180 + ldr r2, _0804F1A0 + movs r0, #0xfd + strb r0, [r2] + movs r0, #2 + strb r0, [r2, #1] + ldr r0, _0804F1A4 + ldrh r1, [r0] + strb r1, [r2, #2] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + lsrs r0, r0, #8 + strb r0, [r2, #3] + movs r0, #0xff + strb r0, [r2, #4] + bx lr + .align 2, 0 +_0804F1A0: .4byte 0x02022C1C +_0804F1A4: .4byte 0x02024186 + thumb_func_end BufferMoveToLearnIntoBattleTextBuff2 + + thumb_func_start atk71_buffermovetolearn +atk71_buffermovetolearn: @ 0x0804F1A8 + push {lr} + bl BufferMoveToLearnIntoBattleTextBuff2 + ldr r1, _0804F1BC + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0804F1BC: .4byte 0x02023EB8 + thumb_func_end atk71_buffermovetolearn + + thumb_func_start atk72_jumpifplayerran +atk72_jumpifplayerran: @ 0x0804F1C0 + push {lr} + ldr r0, _0804F1EC + ldrb r0, [r0] + bl TryRunFromBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0804F1F4 + ldr r3, _0804F1F0 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _0804F1FC + .align 2, 0 +_0804F1EC: .4byte 0x02023EB1 +_0804F1F0: .4byte 0x02023EB8 +_0804F1F4: + ldr r1, _0804F200 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] +_0804F1FC: + pop {r0} + bx r0 + .align 2, 0 +_0804F200: .4byte 0x02023EB8 + thumb_func_end atk72_jumpifplayerran + + thumb_func_start atk73_hpthresholds +atk73_hpthresholds: @ 0x0804F204 + push {r4, r5, r6, lr} + ldr r0, _0804F254 + ldr r4, [r0] + movs r6, #1 + ands r4, r6 + cmp r4, #0 + bne _0804F29A + ldr r0, _0804F258 + ldr r0, [r0] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + ldr r1, _0804F25C + strb r0, [r1] + movs r1, #1 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0804F260 + movs r1, #0x58 + muls r1, r0, r1 + adds r1, r1, r2 + ldrh r5, [r1, #0x28] + movs r0, #0x64 + muls r0, r5, r0 + ldrh r1, [r1, #0x2c] + bl __divsi3 + cmp r0, #0 + bne _0804F242 + movs r0, #1 +_0804F242: + cmp r0, #0x45 + bgt _0804F24A + cmp r5, #0 + bne _0804F268 +_0804F24A: + ldr r0, _0804F264 + ldr r0, [r0] + adds r0, #0xb1 + strb r4, [r0] + b _0804F29A + .align 2, 0 +_0804F254: .4byte 0x02022C90 +_0804F258: .4byte 0x02023EB8 +_0804F25C: .4byte 0x02023D08 +_0804F260: .4byte 0x02023D28 +_0804F264: .4byte 0x02024140 +_0804F268: + cmp r0, #0x27 + ble _0804F27C + ldr r0, _0804F278 + ldr r0, [r0] + adds r0, #0xb1 + strb r6, [r0] + b _0804F29A + .align 2, 0 +_0804F278: .4byte 0x02024140 +_0804F27C: + cmp r0, #9 + ble _0804F290 + ldr r0, _0804F28C + ldr r0, [r0] + adds r0, #0xb1 + movs r1, #2 + b _0804F298 + .align 2, 0 +_0804F28C: .4byte 0x02024140 +_0804F290: + ldr r0, _0804F2A8 + ldr r0, [r0] + adds r0, #0xb1 + movs r1, #3 +_0804F298: + strb r1, [r0] +_0804F29A: + ldr r1, _0804F2AC + ldr r0, [r1] + adds r0, #2 + str r0, [r1] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0804F2A8: .4byte 0x02024140 +_0804F2AC: .4byte 0x02023EB8 + thumb_func_end atk73_hpthresholds + + thumb_func_start atk74_hpthresholds2 +atk74_hpthresholds2: @ 0x0804F2B0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _0804F314 + ldr r7, [r0] + movs r0, #1 + mov r8, r0 + ands r7, r0 + cmp r7, #0 + bne _0804F34A + ldr r0, _0804F318 + ldr r0, [r0] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + adds r4, r0, #0 + ldr r0, _0804F31C + strb r4, [r0] + movs r0, #1 + eors r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + ldr r1, _0804F320 + ldr r6, [r1] + lsrs r0, r0, #0x17 + adds r0, r0, r6 + adds r0, #0xa8 + ldrb r5, [r0] + ldr r1, _0804F324 + movs r0, #0x58 + muls r0, r4, r0 + adds r0, r0, r1 + ldrh r4, [r0, #0x28] + subs r1, r5, r4 + movs r0, #0x64 + muls r0, r1, r0 + adds r1, r5, #0 + bl __divsi3 + adds r1, r0, #0 + cmp r4, r5 + blo _0804F328 + adds r0, r6, #0 + adds r0, #0xb1 + strb r7, [r0] + b _0804F34A + .align 2, 0 +_0804F314: .4byte 0x02022C90 +_0804F318: .4byte 0x02023EB8 +_0804F31C: .4byte 0x02023D08 +_0804F320: .4byte 0x02024140 +_0804F324: .4byte 0x02023D28 +_0804F328: + cmp r0, #0x1d + bgt _0804F336 + adds r0, r6, #0 + adds r0, #0xb1 + mov r1, r8 + strb r1, [r0] + b _0804F34A +_0804F336: + cmp r1, #0x45 + bgt _0804F342 + adds r1, r6, #0 + adds r1, #0xb1 + movs r0, #2 + b _0804F348 +_0804F342: + adds r1, r6, #0 + adds r1, #0xb1 + movs r0, #3 +_0804F348: + strb r0, [r1] +_0804F34A: + ldr r1, _0804F35C + ldr r0, [r1] + adds r0, #2 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0804F35C: .4byte 0x02023EB8 + thumb_func_end atk74_hpthresholds2 + + thumb_func_start atk75_useitemonopponent +atk75_useitemonopponent: @ 0x0804F360 + push {lr} + sub sp, #4 + ldr r2, _0804F3A0 + ldr r1, _0804F3A4 + ldrb r0, [r1] + strb r0, [r2] + ldr r2, _0804F3A8 + ldrb r0, [r1] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r2, [r0] + movs r0, #0x64 + muls r0, r2, r0 + ldr r1, _0804F3AC + adds r0, r0, r1 + ldr r1, _0804F3B0 + ldrh r1, [r1] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r3, #1 + str r3, [sp] + movs r3, #0 + bl sub_0806B7EC + ldr r1, _0804F3B4 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_0804F3A0: .4byte 0x0202415C +_0804F3A4: .4byte 0x02023EAF +_0804F3A8: .4byte 0x02023D12 +_0804F3AC: .4byte 0x020243E8 +_0804F3B0: .4byte 0x02023EAC +_0804F3B4: .4byte 0x02023EB8 + thumb_func_end atk75_useitemonopponent + + thumb_func_start atk76_various +atk76_various: @ 0x0804F3B8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r4, _0804F3E0 + ldr r0, [r4] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + ldr r1, _0804F3E4 + strb r0, [r1] + ldr r0, [r4] + ldrb r0, [r0, #2] + cmp r0, #0x1a + bls _0804F3D6 + b _0804F97C +_0804F3D6: + lsls r0, r0, #2 + ldr r1, _0804F3E8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804F3E0: .4byte 0x02023EB8 +_0804F3E4: .4byte 0x02023D08 +_0804F3E8: .4byte 0x0804F3EC +_0804F3EC: @ jump table + .4byte _0804F458 @ case 0 + .4byte _0804F468 @ case 1 + .4byte _0804F4C8 @ case 2 + .4byte _0804F4D8 @ case 3 + .4byte _0804F4F0 @ case 4 + .4byte _0804F52C @ case 5 + .4byte _0804F564 @ case 6 + .4byte _0804F5EC @ case 7 + .4byte _0804F62C @ case 8 + .4byte _0804F6D8 @ case 9 + .4byte _0804F6F4 @ case 10 + .4byte _0804F748 @ case 11 + .4byte _0804F7A0 @ case 12 + .4byte _0804F824 @ case 13 + .4byte _0804F838 @ case 14 + .4byte _0804F83E @ case 15 + .4byte _0804F844 @ case 16 + .4byte _0804F86C @ case 17 + .4byte _0804F876 @ case 18 + .4byte _0804F884 @ case 19 + .4byte _0804F898 @ case 20 + .4byte _0804F8D0 @ case 21 + .4byte _0804F8E4 @ case 22 + .4byte _0804F8FC @ case 23 + .4byte _0804F928 @ case 24 + .4byte _0804F93C @ case 25 + .4byte _0804F968 @ case 26 +_0804F458: + ldr r0, _0804F464 + ldrb r0, [r0] + bl CancelMultiTurnMoves + b _0804F97C + .align 2, 0 +_0804F464: .4byte 0x02023D08 +_0804F468: + ldr r1, _0804F4A4 + ldr r4, _0804F4A8 + ldrb r0, [r4] + strb r0, [r1] + ldrb r0, [r1] + bl GetBattlerSide + movs r1, #1 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0804F4AC + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r2, r1, r2 + ldrb r0, [r2, #8] + cmp r0, #0 + beq _0804F4B4 + ldr r1, _0804F4B0 + ldrb r2, [r2, #9] + movs r0, #0x58 + muls r0, r2, r0 + adds r0, r0, r1 + ldrh r0, [r0, #0x28] + cmp r0, #0 + beq _0804F4B4 + strb r2, [r4] + b _0804F97C + .align 2, 0 +_0804F4A4: .4byte 0x02023EAF +_0804F4A8: .4byte 0x02023EB0 +_0804F4AC: .4byte 0x02023F38 +_0804F4B0: .4byte 0x02023D28 +_0804F4B4: + ldr r0, _0804F4C0 + ldr r1, _0804F4C4 + ldrb r1, [r1] + strb r1, [r0] + b _0804F97C + .align 2, 0 +_0804F4C0: .4byte 0x02023EB0 +_0804F4C4: .4byte 0x02023D08 +_0804F4C8: + bl IsRunningFromBattleImpossible + ldr r1, _0804F4D4 + strb r0, [r1] + b _0804F97C + .align 2, 0 +_0804F4D4: .4byte 0x02023FD6 +_0804F4D8: + ldr r0, _0804F4E8 + ldrh r0, [r0] + movs r1, #0 + bl GetMoveTarget + ldr r1, _0804F4EC + strb r0, [r1] + b _0804F97C + .align 2, 0 +_0804F4E8: .4byte 0x02023E8E +_0804F4EC: .4byte 0x02023EB0 +_0804F4F0: + ldr r2, _0804F510 + ldr r1, _0804F514 + ldr r0, _0804F518 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + lsls r0, r0, #0x1c + ldr r2, [r2] + ands r2, r0 + cmp r2, #0 + beq _0804F520 + ldr r1, _0804F51C + movs r0, #1 + strb r0, [r1] + b _0804F97C + .align 2, 0 +_0804F510: .4byte 0x02023F24 +_0804F514: .4byte 0x082FACB4 +_0804F518: .4byte 0x02023D08 +_0804F51C: .4byte 0x02023FD6 +_0804F520: + ldr r0, _0804F528 + strb r2, [r0] + b _0804F97C + .align 2, 0 +_0804F528: .4byte 0x02023FD6 +_0804F52C: + ldr r4, _0804F55C + ldr r3, _0804F560 + ldrb r0, [r3] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r2, [r1] + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldrb r0, [r3] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r2, [r1] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + b _0804F97C + .align 2, 0 +_0804F55C: .4byte 0x02024020 +_0804F560: .4byte 0x02023D08 +_0804F564: + ldr r4, _0804F588 + ldr r1, _0804F58C + ldr r0, [r1] + ldrh r3, [r4] + ldrb r2, [r0, #0x10] + adds r6, r1, #0 + cmp r3, r2 + beq _0804F580 + ldrh r0, [r4, #4] + cmp r0, r2 + beq _0804F57C + b _0804F97C +_0804F57C: + cmp r3, r0 + bne _0804F594 +_0804F580: + ldr r1, _0804F590 + movs r0, #0 + b _0804F598 + .align 2, 0 +_0804F588: .4byte 0x02023D12 +_0804F58C: .4byte 0x02024140 +_0804F590: .4byte 0x02023D08 +_0804F594: + ldr r1, _0804F5E4 + movs r0, #2 +_0804F598: + strb r0, [r1] + adds r5, r1, #0 + ldrb r2, [r5] + lsls r0, r2, #1 + adds r0, #0xc8 + ldr r1, [r6] + adds r4, r1, r0 + movs r3, #0 + ldr r1, _0804F5E8 + movs r0, #0x58 + muls r0, r2, r0 + adds r1, #0xc + adds r0, r0, r1 + ldrh r0, [r0] + ldrh r2, [r4] + cmp r0, r2 + beq _0804F5D8 + adds r6, r5, #0 + movs r5, #0x58 + adds r2, r1, #0 +_0804F5C0: + adds r3, #1 + cmp r3, #3 + bgt _0804F5D8 + lsls r1, r3, #1 + ldrb r0, [r6] + muls r0, r5, r0 + adds r1, r1, r0 + adds r1, r1, r2 + ldrh r0, [r1] + ldrh r1, [r4] + cmp r0, r1 + bne _0804F5C0 +_0804F5D8: + cmp r3, #4 + beq _0804F5DE + b _0804F97C +_0804F5DE: + movs r0, #0 + strh r0, [r4] + b _0804F97C + .align 2, 0 +_0804F5E4: .4byte 0x02023D08 +_0804F5E8: .4byte 0x02023D28 +_0804F5EC: + ldr r0, _0804F61C + ldr r0, [r0] + movs r1, #0xb + ands r0, r1 + cmp r0, #8 + beq _0804F5FA + b _0804F97C +_0804F5FA: + ldr r1, _0804F620 + ldrh r0, [r1, #0x28] + cmp r0, #0 + bne _0804F604 + b _0804F97C +_0804F604: + adds r0, r1, #0 + adds r0, #0x80 + ldrh r0, [r0] + cmp r0, #0 + bne _0804F610 + b _0804F97C +_0804F610: + ldr r0, _0804F624 + ldr r1, [r0] + ldr r2, _0804F628 + ands r1, r2 + str r1, [r0] + b _0804F97C + .align 2, 0 +_0804F61C: .4byte 0x02022C90 +_0804F620: .4byte 0x02023D28 +_0804F624: .4byte 0x02023F24 +_0804F628: .4byte 0xFFBFFFFF +_0804F62C: + ldr r2, _0804F6BC + mov r8, r2 + movs r0, #0 + strb r0, [r2] + ldr r1, _0804F6C0 + ldr r6, _0804F6C4 + ldrb r0, [r2, #1] + strb r0, [r6] + strb r0, [r1, #0x17] + ldr r0, _0804F6C8 + ldr r0, [r0] + adds r7, r0, #0 + adds r7, #0x92 + ldrb r3, [r7] + ldr r1, _0804F6CC + ldrb r2, [r6] + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r5, [r0] + adds r0, r3, #0 + ands r0, r5 + cmp r0, #0 + beq _0804F65C + b _0804F97C +_0804F65C: + ldr r4, _0804F6D0 + movs r0, #0x58 + mov ip, r0 + mov r1, ip + muls r1, r2, r1 + adds r2, r1, #0 + adds r1, r2, r4 + ldrh r0, [r1, #0x2c] + lsrs r0, r0, #1 + ldrh r1, [r1, #0x28] + cmp r0, r1 + bhs _0804F676 + b _0804F97C +_0804F676: + cmp r1, #0 + bne _0804F67C + b _0804F97C +_0804F67C: + adds r0, r4, #0 + adds r0, #0x4c + adds r0, r2, r0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + beq _0804F68E + b _0804F97C +_0804F68E: + orrs r3, r5 + strb r3, [r7] + movs r0, #1 + mov r2, r8 + strb r0, [r2] + ldrb r0, [r6] + mov r1, ip + muls r1, r0, r1 + adds r0, r1, #0 + adds r1, r4, #0 + adds r1, #0x48 + adds r0, r0, r1 + ldr r0, [r0] + bl GetNatureFromPersonality + ldr r1, _0804F6D4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r1 + ldrb r0, [r0] + mov r2, r8 + strb r0, [r2, #5] + b _0804F97C + .align 2, 0 +_0804F6BC: .4byte 0x02023FD6 +_0804F6C0: .4byte 0x02024118 +_0804F6C4: .4byte 0x02023D08 +_0804F6C8: .4byte 0x02024140 +_0804F6CC: .4byte 0x082FACB4 +_0804F6D0: .4byte 0x02023D28 +_0804F6D4: .4byte 0x082ECE7C +_0804F6D8: + ldr r4, _0804F6F0 + adds r0, r4, #0 + bl BattleArena_ShowJudgmentWindow + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _0804F6EA + b _0804F984 +_0804F6EA: + strb r3, [r4, #1] + b _0804F97C + .align 2, 0 +_0804F6F0: .4byte 0x02023FD6 +_0804F6F4: + ldr r0, _0804F72C + adds r0, #0x80 + movs r1, #0 + strh r1, [r0] + ldr r2, _0804F730 + ldr r3, _0804F734 + ldr r1, [r3, #4] + lsls r1, r1, #0x1c + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + ldr r0, _0804F738 + ldr r2, [r0] + ldr r0, _0804F73C + adds r2, r2, r0 + ldr r0, _0804F740 + ldrh r0, [r0, #2] + lsls r0, r0, #2 + adds r0, r0, r3 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r1, _0804F744 + adds r1, #0x34 + ldrb r0, [r1] + movs r2, #2 + b _0804F800 + .align 2, 0 +_0804F72C: .4byte 0x02023D28 +_0804F730: .4byte 0x02023F24 +_0804F734: .4byte 0x082FACB4 +_0804F738: .4byte 0x02024140 +_0804F73C: .4byte 0x000002A1 +_0804F740: .4byte 0x02023D12 +_0804F744: .4byte 0x02023F60 +_0804F748: + ldr r1, _0804F788 + movs r0, #0 + strh r0, [r1, #0x28] + ldr r2, _0804F78C + ldr r3, _0804F790 + ldr r1, [r3] + lsls r1, r1, #0x1c + ldr r0, [r2] + orrs r0, r1 + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r2] + ldr r0, _0804F794 + ldr r2, [r0] + movs r1, #0xa8 + lsls r1, r1, #2 + adds r2, r2, r1 + ldr r0, _0804F798 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r3 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r2, _0804F79C + ldrb r0, [r2, #0x18] + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #0x18] + b _0804F97C + .align 2, 0 +_0804F788: .4byte 0x02023D28 +_0804F78C: .4byte 0x02023F24 +_0804F790: .4byte 0x082FACB4 +_0804F794: .4byte 0x02024140 +_0804F798: .4byte 0x02023D12 +_0804F79C: .4byte 0x02023F60 +_0804F7A0: + ldr r0, _0804F808 + movs r1, #0 + strh r1, [r0, #0x28] + adds r0, #0x80 + strh r1, [r0] + ldr r2, _0804F80C + ldr r3, _0804F810 + ldr r0, [r3] + lsls r0, r0, #0x1c + ldr r1, [r2] + orrs r1, r0 + ldr r0, [r3, #4] + lsls r0, r0, #0x1c + orrs r1, r0 + movs r0, #0x80 + lsls r0, r0, #0xf + orrs r1, r0 + str r1, [r2] + ldr r5, _0804F814 + ldr r2, [r5] + movs r0, #0xa8 + lsls r0, r0, #2 + adds r2, r2, r0 + ldr r4, _0804F818 + ldrh r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r3 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r2, [r5] + ldr r1, _0804F81C + adds r2, r2, r1 + ldrh r0, [r4, #2] + lsls r0, r0, #2 + adds r0, r0, r3 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r1, _0804F820 + ldrb r0, [r1, #0x18] + movs r2, #2 + orrs r0, r2 + strb r0, [r1, #0x18] + adds r1, #0x34 + ldrb r0, [r1] +_0804F800: + orrs r0, r2 + strb r0, [r1] + b _0804F97C + .align 2, 0 +_0804F808: .4byte 0x02023D28 +_0804F80C: .4byte 0x02023F24 +_0804F810: .4byte 0x082FACB4 +_0804F814: .4byte 0x02024140 +_0804F818: .4byte 0x02023D12 +_0804F81C: .4byte 0x000002A1 +_0804F820: .4byte 0x02023F60 +_0804F824: + movs r0, #0 + bl BtlController_EmitUnknownYesNoBox + ldr r0, _0804F834 + ldrb r0, [r0] + bl MarkBattlerForControllerExec + b _0804F97C + .align 2, 0 +_0804F834: .4byte 0x02023D08 +_0804F838: + bl DrawArenaRefereeTextBox + b _0804F97C +_0804F83E: + bl RemoveArenaRefereeTextBox + b _0804F97C +_0804F844: + ldr r1, _0804F860 + ldr r0, _0804F864 + ldr r0, [r0] + ldrb r0, [r0, #1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl TryGetStatusString + ldr r0, _0804F868 + movs r1, #0x16 + bl sub_0814FA04 + b _0804F97C + .align 2, 0 +_0804F860: .4byte 0x085AC04C +_0804F864: .4byte 0x02023EB8 +_0804F868: .4byte 0x02022AE0 +_0804F86C: + movs r0, #0x16 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + b _0804F930 +_0804F876: + bl IsCryFinished + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804F882 + b _0804F984 +_0804F882: + b _0804F97C +_0804F884: + ldr r4, _0804F890 + movs r0, #1 + strb r0, [r4] + ldr r0, _0804F894 + adds r0, #0x58 + b _0804F8AE + .align 2, 0 +_0804F890: .4byte 0x02023D08 +_0804F894: .4byte 0x02023D28 +_0804F898: + ldr r0, _0804F8C4 + ldrb r0, [r0] + cmp r0, #3 + bls _0804F97C + ldr r4, _0804F8C8 + movs r0, #3 + strb r0, [r4] + ldr r0, _0804F8CC + movs r2, #0x84 + lsls r2, r2, #1 + adds r0, r0, r2 +_0804F8AE: + ldrh r0, [r0, #0x28] + cmp r0, #0 + beq _0804F97C + movs r0, #0 + movs r1, #0 + bl BtlController_EmitReturnMonToBall + ldrb r0, [r4] + bl MarkBattlerForControllerExec + b _0804F97C + .align 2, 0 +_0804F8C4: .4byte 0x02023D10 +_0804F8C8: .4byte 0x02023D08 +_0804F8CC: .4byte 0x02023D28 +_0804F8D0: + ldr r0, _0804F8DC + ldr r1, _0804F8E0 + movs r2, #0x55 + bl m4aMPlayVolumeControl + b _0804F97C + .align 2, 0 +_0804F8DC: .4byte 0x030074D0 +_0804F8E0: .4byte 0x0000FFFF +_0804F8E4: + ldr r0, _0804F8F4 + ldr r1, _0804F8F8 + movs r2, #0x80 + lsls r2, r2, #1 + bl m4aMPlayVolumeControl + b _0804F97C + .align 2, 0 +_0804F8F4: .4byte 0x030074D0 +_0804F8F8: .4byte 0x0000FFFF +_0804F8FC: + ldr r0, _0804F918 + ldr r2, [r0] + ldr r0, _0804F91C + adds r2, r2, r0 + ldr r1, _0804F920 + ldr r0, _0804F924 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + b _0804F97C + .align 2, 0 +_0804F918: .4byte 0x02024140 +_0804F91C: .4byte 0x000002A2 +_0804F920: .4byte 0x082FACB4 +_0804F924: .4byte 0x02023D08 +_0804F928: + ldr r0, _0804F938 + ldrb r0, [r0] + bl sub_08056E6C +_0804F930: + cmp r0, #0 + bne _0804F984 + b _0804F97C + .align 2, 0 +_0804F938: .4byte 0x02023D08 +_0804F93C: + ldr r0, _0804F954 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804F95C + ldr r1, _0804F958 + movs r0, #5 + strb r0, [r1] + b _0804F97C + .align 2, 0 +_0804F954: .4byte 0x02023D08 +_0804F958: .4byte 0x02023FDE +_0804F95C: + ldr r1, _0804F964 + movs r0, #0xa + strb r0, [r1] + b _0804F97C + .align 2, 0 +_0804F964: .4byte 0x02023FDE +_0804F968: + movs r1, #0xce + lsls r1, r1, #1 + movs r0, #0 + movs r2, #1 + bl BtlController_EmitPlayFanfareOrBGM + ldr r0, _0804F990 + ldrb r0, [r0] + bl MarkBattlerForControllerExec +_0804F97C: + ldr r1, _0804F994 + ldr r0, [r1] + adds r0, #3 + str r0, [r1] +_0804F984: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0804F990: .4byte 0x02023D08 +_0804F994: .4byte 0x02023EB8 + thumb_func_end atk76_various + + thumb_func_start atk77_setprotectlike +atk77_setprotectlike: @ 0x0804F998 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r6, #1 + ldr r2, _0804FA64 + ldr r1, _0804FA68 + ldrb r3, [r1] + lsls r0, r3, #1 + adds r0, r0, r2 + ldrh r0, [r0] + mov r8, r1 + ldr r7, _0804FA6C + cmp r0, #0xb6 + beq _0804F9C8 + cmp r0, #0xc5 + beq _0804F9C8 + cmp r0, #0xcb + beq _0804F9C8 + lsls r0, r3, #3 + subs r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r7 + movs r1, #0 + strb r1, [r0, #8] +_0804F9C8: + ldr r0, _0804FA70 + ldrb r1, [r0] + ldr r0, _0804FA74 + ldrb r0, [r0] + subs r0, #1 + cmp r1, r0 + bne _0804F9D8 + movs r6, #0 +_0804F9D8: + ldr r2, _0804FA78 + mov r5, r8 + ldrb r1, [r5] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrb r4, [r0, #8] + lsls r4, r4, #1 + adds r4, r4, r2 + bl Random + ldrh r1, [r4] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r1, r0 + blo _0804FA8C + cmp r6, #0 + beq _0804FA8C + ldr r4, _0804FA7C + ldr r3, _0804FA80 + ldrh r0, [r3] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r0, [r1] + cmp r0, #0x6f + bne _0804FA28 + ldr r0, _0804FA84 + ldrb r1, [r5] + lsls r1, r1, #4 + adds r1, r1, r0 + ldrb r0, [r1] + movs r2, #1 + orrs r0, r2 + strb r0, [r1] + ldr r1, _0804FA88 + movs r0, #0 + strb r0, [r1, #5] +_0804FA28: + ldrh r0, [r3] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r0, [r1] + cmp r0, #0x74 + bne _0804FA4E + ldr r0, _0804FA84 + ldrb r1, [r5] + lsls r1, r1, #4 + adds r1, r1, r0 + ldrb r0, [r1] + movs r2, #2 + orrs r0, r2 + strb r0, [r1] + ldr r1, _0804FA88 + movs r0, #1 + strb r0, [r1, #5] +_0804FA4E: + mov r1, r8 + ldrb r0, [r1] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r7 + ldrb r0, [r1, #8] + adds r0, #1 + strb r0, [r1, #8] + b _0804FAAE + .align 2, 0 +_0804FA64: .4byte 0x02023F04 +_0804FA68: .4byte 0x02023EAF +_0804FA6C: .4byte 0x02023F60 +_0804FA70: .4byte 0x02023D26 +_0804FA74: .4byte 0x02023D10 +_0804FA78: .4byte 0x082ECD5C +_0804FA7C: .4byte 0x082ED220 +_0804FA80: .4byte 0x02023E8E +_0804FA84: .4byte 0x02023FE0 +_0804FA88: .4byte 0x02023FD6 +_0804FA8C: + ldr r2, _0804FAC0 + ldr r0, _0804FAC4 + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0 + strb r1, [r0, #8] + ldr r1, _0804FAC8 + movs r0, #2 + strb r0, [r1, #5] + ldr r2, _0804FACC + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] +_0804FAAE: + ldr r1, _0804FAD0 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0804FAC0: .4byte 0x02023F60 +_0804FAC4: .4byte 0x02023EAF +_0804FAC8: .4byte 0x02023FD6 +_0804FACC: .4byte 0x02023F20 +_0804FAD0: .4byte 0x02023EB8 + thumb_func_end atk77_setprotectlike + + thumb_func_start atk78_faintifabilitynotdamp +atk78_faintifabilitynotdamp: @ 0x0804FAD4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _0804FB90 + ldr r2, [r0] + cmp r2, #0 + bne _0804FBD8 + ldr r1, _0804FB94 + strb r2, [r1] + ldr r0, _0804FB98 + ldrb r3, [r0] + adds r5, r1, #0 + mov r8, r0 + ldr r6, _0804FB9C + cmp r2, r3 + bhs _0804FB20 + adds r0, r6, #0 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #6 + beq _0804FB20 + adds r2, r3, #0 + adds r4, r6, #0 + movs r3, #0x58 +_0804FB04: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r2 + bhs _0804FB20 + ldrb r0, [r5] + muls r0, r3, r0 + adds r0, r0, r4 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #6 + bne _0804FB04 +_0804FB20: + ldrb r0, [r5] + mov r1, r8 + ldrb r1, [r1] + cmp r0, r1 + bne _0804FBBC + ldr r4, _0804FBA0 + ldr r7, _0804FBA4 + ldrb r0, [r7] + strb r0, [r4] + ldr r2, _0804FBA8 + ldrb r1, [r4] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r6 + ldrh r0, [r0, #0x28] + str r0, [r2] + ldr r1, _0804FBAC + movs r0, #0 + bl BtlController_EmitHealthBarUpdate + ldrb r0, [r4] + bl MarkBattlerForControllerExec + ldr r1, _0804FBB0 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + movs r0, #0 + strb r0, [r5] + mov r2, r8 + ldrb r0, [r2] + cmp r0, #0 + beq _0804FBD8 + adds r3, r5, #0 + ldrb r5, [r7] + ldr r7, _0804FBB4 + adds r4, r0, #0 + ldr r6, _0804FBB8 +_0804FB6C: + ldrb r2, [r3] + cmp r2, r5 + beq _0804FB82 + ldrb r0, [r6] + ldrb r1, [r3] + lsls r1, r1, #2 + adds r1, r1, r7 + ldr r1, [r1] + ands r0, r1 + cmp r0, #0 + beq _0804FBD8 +_0804FB82: + adds r0, r2, #1 + strb r0, [r3] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r4 + blo _0804FB6C + b _0804FBD8 + .align 2, 0 +_0804FB90: .4byte 0x02023D0C +_0804FB94: .4byte 0x02023EB0 +_0804FB98: .4byte 0x02023D10 +_0804FB9C: .4byte 0x02023D28 +_0804FBA0: .4byte 0x02023D08 +_0804FBA4: .4byte 0x02023EAF +_0804FBA8: .4byte 0x02023E94 +_0804FBAC: .4byte 0x00007FFF +_0804FBB0: .4byte 0x02023EB8 +_0804FBB4: .4byte 0x082FACB4 +_0804FBB8: .4byte 0x02023EB4 +_0804FBBC: + ldr r1, _0804FBE4 + movs r0, #6 + strb r0, [r1] + ldrb r0, [r5] + movs r1, #0x58 + muls r1, r0, r1 + adds r1, r1, r6 + adds r1, #0x20 + ldrb r1, [r1] + bl RecordAbilityBattle + ldr r1, _0804FBE8 + ldr r0, _0804FBEC + str r0, [r1] +_0804FBD8: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0804FBE4: .4byte 0x02023EAE +_0804FBE8: .4byte 0x02023EB8 +_0804FBEC: .4byte 0x08289AE8 + thumb_func_end atk78_faintifabilitynotdamp + + thumb_func_start atk79_setatkhptozero +atk79_setatkhptozero: @ 0x0804FBF0 + push {r4, lr} + sub sp, #4 + ldr r0, _0804FC3C + ldr r3, [r0] + cmp r3, #0 + bne _0804FC34 + ldr r4, _0804FC40 + ldr r0, _0804FC44 + ldrb r0, [r0] + strb r0, [r4] + ldr r1, _0804FC48 + ldrb r0, [r4] + movs r2, #0x58 + muls r0, r2, r0 + adds r0, r0, r1 + strh r3, [r0, #0x28] + ldrb r0, [r4] + muls r0, r2, r0 + adds r1, #0x28 + adds r0, r0, r1 + str r0, [sp] + movs r0, #0 + movs r1, #0x2a + movs r2, #0 + movs r3, #2 + bl BtlController_EmitSetMonData + ldrb r0, [r4] + bl MarkBattlerForControllerExec + ldr r1, _0804FC4C + ldr r0, [r1] + adds r0, #1 + str r0, [r1] +_0804FC34: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804FC3C: .4byte 0x02023D0C +_0804FC40: .4byte 0x02023D08 +_0804FC44: .4byte 0x02023EAF +_0804FC48: .4byte 0x02023D28 +_0804FC4C: .4byte 0x02023EB8 + thumb_func_end atk79_setatkhptozero + + thumb_func_start atk7A_jumpifnexttargetvalid +atk7A_jumpifnexttargetvalid: @ 0x0804FC50 + push {r4, r5, r6, r7, lr} + ldr r3, _0804FCC8 + ldr r2, [r3] + ldrb r4, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r4, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r4, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r4, r0 + ldr r0, _0804FCCC + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + adds r7, r3, #0 + cmp r0, #0 + beq _0804FCE8 + ldr r0, _0804FCD0 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + ldr r2, _0804FCD4 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r3, r0, #0 + ldr r6, _0804FCD8 + ldr r5, _0804FCDC + ldr r0, _0804FCE0 + mov ip, r0 + ldrb r0, [r2] + cmp r1, r0 + bne _0804FCA6 +_0804FC96: + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r2] + cmp r0, r1 + beq _0804FC96 +_0804FCA6: + ldrb r0, [r6] + ldrb r1, [r3] + lsls r1, r1, #2 + adds r1, r1, r5 + ldr r1, [r1] + ands r0, r1 + cmp r0, #0 + bne _0804FC96 + ldrb r0, [r3] + mov r2, ip + ldrb r2, [r2] + cmp r0, r2 + blo _0804FCE4 + ldr r0, [r7] + adds r0, #5 + str r0, [r7] + b _0804FCEC + .align 2, 0 +_0804FCC8: .4byte 0x02023EB8 +_0804FCCC: .4byte 0x02022C90 +_0804FCD0: .4byte 0x02023EB0 +_0804FCD4: .4byte 0x02023EAF +_0804FCD8: .4byte 0x02023EB4 +_0804FCDC: .4byte 0x082FACB4 +_0804FCE0: .4byte 0x02023D10 +_0804FCE4: + str r4, [r7] + b _0804FCEC +_0804FCE8: + adds r0, r2, #5 + str r0, [r3] +_0804FCEC: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end atk7A_jumpifnexttargetvalid + + thumb_func_start atk7B_tryhealhalfhealth +atk7B_tryhealhalfhealth: @ 0x0804FCF4 + push {r4, r5, r6, lr} + ldr r4, _0804FD50 + ldr r1, [r4] + ldrb r2, [r1, #1] + ldrb r0, [r1, #2] + lsls r0, r0, #8 + orrs r2, r0 + ldrb r0, [r1, #3] + lsls r0, r0, #0x10 + orrs r2, r0 + ldrb r0, [r1, #4] + lsls r0, r0, #0x18 + orrs r2, r0 + ldrb r0, [r1, #5] + ldr r3, _0804FD54 + cmp r0, #1 + bne _0804FD1C + ldr r0, _0804FD58 + ldrb r0, [r0] + strb r0, [r3] +_0804FD1C: + ldr r1, _0804FD5C + ldr r6, _0804FD60 + ldrb r0, [r3] + movs r5, #0x58 + muls r0, r5, r0 + adds r0, r0, r6 + ldrh r0, [r0, #0x2c] + lsrs r0, r0, #1 + str r0, [r1] + cmp r0, #0 + bne _0804FD36 + movs r0, #1 + str r0, [r1] +_0804FD36: + ldr r0, [r1] + rsbs r0, r0, #0 + str r0, [r1] + ldrb r0, [r3] + muls r0, r5, r0 + adds r0, r0, r6 + ldrh r1, [r0, #0x28] + ldrh r0, [r0, #0x2c] + cmp r1, r0 + bne _0804FD64 + str r2, [r4] + b _0804FD6A + .align 2, 0 +_0804FD50: .4byte 0x02023EB8 +_0804FD54: .4byte 0x02023EB0 +_0804FD58: .4byte 0x02023EAF +_0804FD5C: .4byte 0x02023E94 +_0804FD60: .4byte 0x02023D28 +_0804FD64: + ldr r0, [r4] + adds r0, #6 + str r0, [r4] +_0804FD6A: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end atk7B_tryhealhalfhealth + + thumb_func_start atk7C_trymirrormove +atk7C_trymirrormove: @ 0x0804FD70 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r2, _0804FE10 + ldr r0, _0804FE14 + mov sl, r0 + movs r1, #0 + add r0, sp, #4 +_0804FD86: + strh r1, [r0] + subs r0, #2 + cmp r0, sp + bge _0804FD86 + movs r1, #0 + mov r8, r1 + movs r5, #0 + ldrb r1, [r2] + cmp r5, r1 + bge _0804FDDC + ldr r0, _0804FE18 + ldrb r6, [r0] + ldr r2, _0804FE1C + mov sb, r2 + lsls r4, r6, #3 + mov r2, sp + ldr r0, _0804FE14 + mov ip, r0 + adds r7, r1, #0 +_0804FDAC: + cmp r5, r6 + beq _0804FDD4 + mov r1, ip + ldr r0, [r1] + adds r0, r4, r0 + adds r1, r0, #0 + adds r1, #0xe0 + ldrb r3, [r1] + adds r0, #0xe1 + ldrb r0, [r0] + lsls r0, r0, #8 + orrs r3, r0 + cmp r3, #0 + beq _0804FDD4 + cmp r3, sb + beq _0804FDD4 + strh r3, [r2] + adds r2, #2 + movs r0, #1 + add r8, r0 +_0804FDD4: + adds r4, #2 + adds r5, #1 + cmp r5, r7 + blt _0804FDAC +_0804FDDC: + ldr r1, _0804FE18 + ldrb r0, [r1] + mov r2, sl + ldr r1, [r2] + lsls r0, r0, #1 + adds r0, r0, r1 + adds r1, r0, #0 + adds r1, #0x98 + ldrb r3, [r1] + adds r0, #0x99 + ldrb r0, [r0] + lsls r0, r0, #8 + orrs r3, r0 + cmp r3, #0 + beq _0804FE2C + ldr r0, _0804FE1C + cmp r3, r0 + beq _0804FE2C + ldr r2, _0804FE20 + ldr r0, [r2] + ldr r1, _0804FE24 + ands r0, r1 + str r0, [r2] + ldr r4, _0804FE28 + strh r3, [r4] + b _0804FE56 + .align 2, 0 +_0804FE10: .4byte 0x02023D10 +_0804FE14: .4byte 0x02024140 +_0804FE18: .4byte 0x02023EAF +_0804FE1C: .4byte 0x0000FFFF +_0804FE20: .4byte 0x02023F24 +_0804FE24: .4byte 0xFFFFFBFF +_0804FE28: .4byte 0x02023E8E +_0804FE2C: + mov r0, r8 + cmp r0, #0 + beq _0804FE9C + ldr r2, _0804FE80 + ldr r0, [r2] + ldr r1, _0804FE84 + ands r0, r1 + str r0, [r2] + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r1, r8 + bl __modsi3 + adds r5, r0, #0 + ldr r4, _0804FE88 + lsls r0, r5, #1 + add r0, sp + ldrh r0, [r0] + strh r0, [r4] +_0804FE56: + ldrh r0, [r4] + movs r1, #0 + bl GetMoveTarget + ldr r1, _0804FE8C + strb r0, [r1] + ldr r5, _0804FE90 + ldr r3, _0804FE94 + ldr r2, _0804FE98 + ldrh r1, [r4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r3 + ldr r0, [r0] + str r0, [r5] + b _0804FEBA + .align 2, 0 +_0804FE80: .4byte 0x02023F24 +_0804FE84: .4byte 0xFFFFFBFF +_0804FE88: .4byte 0x02023E8E +_0804FE8C: .4byte 0x02023EB0 +_0804FE90: .4byte 0x02023EB8 +_0804FE94: .4byte 0x08286C30 +_0804FE98: .4byte 0x082ED220 +_0804FE9C: + ldr r2, _0804FECC + ldr r0, _0804FED0 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r2, #0x20 + orrs r1, r2 + strb r1, [r0] + ldr r1, _0804FED4 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] +_0804FEBA: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0804FECC: .4byte 0x02024020 +_0804FED0: .4byte 0x02023EAF +_0804FED4: .4byte 0x02023EB8 + thumb_func_end atk7C_trymirrormove + + thumb_func_start atk7D_setrain +atk7D_setrain: @ 0x0804FED8 + push {lr} + ldr r2, _0804FEF8 + ldrh r0, [r2] + movs r1, #7 + ands r1, r0 + cmp r1, #0 + beq _0804FF04 + ldr r2, _0804FEFC + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0804FF00 + movs r0, #2 + strb r0, [r1, #5] + b _0804FF14 + .align 2, 0 +_0804FEF8: .4byte 0x02024070 +_0804FEFC: .4byte 0x02023F20 +_0804FF00: .4byte 0x02023FD6 +_0804FF04: + movs r0, #1 + strh r0, [r2] + ldr r0, _0804FF20 + strb r1, [r0, #5] + ldr r0, _0804FF24 + adds r0, #0x28 + movs r1, #5 + strb r1, [r0] +_0804FF14: + ldr r1, _0804FF28 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0804FF20: .4byte 0x02023FD6 +_0804FF24: .4byte 0x02024074 +_0804FF28: .4byte 0x02023EB8 + thumb_func_end atk7D_setrain + + thumb_func_start atk7E_setreflect +atk7E_setreflect: @ 0x0804FF2C + push {r4, r5, r6, lr} + ldr r6, _0804FF5C + ldrb r0, [r6] + bl GetBattlerPosition + ldr r4, _0804FF60 + movs r5, #1 + adds r1, r5, #0 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r1, [r1] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _0804FF6C + ldr r2, _0804FF64 + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0804FF68 + movs r0, #0 + b _0804FFE0 + .align 2, 0 +_0804FF5C: .4byte 0x02023EAF +_0804FF60: .4byte 0x02023F32 +_0804FF64: .4byte 0x02023F20 +_0804FF68: .4byte 0x02023FD6 +_0804FF6C: + ldrb r0, [r6] + bl GetBattlerPosition + adds r1, r5, #0 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r0, [r1] + movs r2, #1 + orrs r0, r2 + strh r0, [r1] + ldrb r0, [r6] + bl GetBattlerPosition + ldr r4, _0804FFD0 + adds r1, r5, #0 + ands r1, r0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #5 + strb r1, [r0] + ldrb r0, [r6] + bl GetBattlerPosition + adds r1, r5, #0 + ands r1, r0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r1, [r6] + strb r1, [r0, #1] + ldr r0, _0804FFD4 + ldr r0, [r0] + ands r0, r5 + cmp r0, #0 + beq _0804FFDC + movs r0, #1 + bl CountAliveMonsInBattle + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #2 + bne _0804FFDC + ldr r0, _0804FFD8 + strb r1, [r0, #5] + b _0804FFE2 + .align 2, 0 +_0804FFD0: .4byte 0x02023F38 +_0804FFD4: .4byte 0x02022C90 +_0804FFD8: .4byte 0x02023FD6 +_0804FFDC: + ldr r1, _0804FFF0 + movs r0, #1 +_0804FFE0: + strb r0, [r1, #5] +_0804FFE2: + ldr r1, _0804FFF4 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0804FFF0: .4byte 0x02023FD6 +_0804FFF4: .4byte 0x02023EB8 + thumb_func_end atk7E_setreflect + + thumb_func_start atk7F_setseeded +atk7F_setseeded: @ 0x0804FFF8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r7, _08050038 + ldrb r5, [r7] + movs r0, #0x29 + ands r0, r5 + cmp r0, #0 + bne _0805002A + ldr r0, _0805003C + mov sb, r0 + ldr r1, _08050040 + mov r8, r1 + ldrb r4, [r1] + lsls r0, r4, #2 + mov r2, sb + adds r6, r0, r2 + ldr r2, [r6] + movs r0, #4 + mov ip, r0 + adds r3, r2, #0 + ands r3, r0 + cmp r3, #0 + beq _08050048 +_0805002A: + movs r0, #1 + orrs r0, r5 + strb r0, [r7] + ldr r1, _08050044 + movs r0, #1 + strb r0, [r1, #5] + b _08050098 + .align 2, 0 +_08050038: .4byte 0x02023F20 +_0805003C: .4byte 0x02023F50 +_08050040: .4byte 0x02023EB0 +_08050044: .4byte 0x02023FD6 +_08050048: + ldr r1, _08050074 + movs r0, #0x58 + muls r0, r4, r0 + adds r1, r0, r1 + adds r0, r1, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0xc + beq _08050064 + adds r0, r1, #0 + adds r0, #0x22 + ldrb r0, [r0] + cmp r0, #0xc + bne _0805007C +_08050064: + movs r0, #1 + orrs r0, r5 + strb r0, [r7] + ldr r1, _08050078 + movs r0, #2 + strb r0, [r1, #5] + b _08050098 + .align 2, 0 +_08050074: .4byte 0x02023D28 +_08050078: .4byte 0x02023FD6 +_0805007C: + ldr r0, _080500AC + ldrb r0, [r0] + orrs r2, r0 + str r2, [r6] + mov r2, r8 + ldrb r1, [r2] + lsls r1, r1, #2 + add r1, sb + ldr r0, [r1] + mov r2, ip + orrs r0, r2 + str r0, [r1] + ldr r0, _080500B0 + strb r3, [r0, #5] +_08050098: + ldr r1, _080500B4 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080500AC: .4byte 0x02023EAF +_080500B0: .4byte 0x02023FD6 +_080500B4: .4byte 0x02023EB8 + thumb_func_end atk7F_setseeded + + thumb_func_start atk80_manipulatedamage +atk80_manipulatedamage: @ 0x080500B8 + push {r4, lr} + ldr r1, _080500D0 + ldr r0, [r1] + ldrb r2, [r0, #1] + adds r4, r1, #0 + cmp r2, #1 + beq _080500E8 + cmp r2, #1 + bgt _080500D4 + cmp r2, #0 + beq _080500DA + b _08050128 + .align 2, 0 +_080500D0: .4byte 0x02023EB8 +_080500D4: + cmp r2, #2 + beq _08050120 + b _08050128 +_080500DA: + ldr r1, _080500E4 + ldr r0, [r1] + rsbs r0, r0, #0 + b _08050126 + .align 2, 0 +_080500E4: .4byte 0x02023E94 +_080500E8: + ldr r3, _08050114 + ldr r0, [r3] + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + str r0, [r3] + cmp r0, #0 + bne _080500FA + str r2, [r3] +_080500FA: + ldr r2, _08050118 + ldr r0, _0805011C + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + ldrh r0, [r0, #0x2c] + lsrs r1, r0, #1 + ldr r0, [r3] + cmp r1, r0 + bge _08050128 + str r1, [r3] + b _08050128 + .align 2, 0 +_08050114: .4byte 0x02023E94 +_08050118: .4byte 0x02023D28 +_0805011C: .4byte 0x02023EB0 +_08050120: + ldr r1, _08050134 + ldr r0, [r1] + lsls r0, r0, #1 +_08050126: + str r0, [r1] +_08050128: + ldr r0, [r4] + adds r0, #2 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08050134: .4byte 0x02023E94 + thumb_func_end atk80_manipulatedamage + + thumb_func_start atk81_trysetrest +atk81_trysetrest: @ 0x08050138 + push {r4, r5, r6, r7, lr} + sub sp, #4 + ldr r0, _08050190 + mov ip, r0 + ldr r1, [r0] + ldrb r6, [r1, #1] + ldrb r0, [r1, #2] + lsls r0, r0, #8 + orrs r6, r0 + ldrb r0, [r1, #3] + lsls r0, r0, #0x10 + orrs r6, r0 + ldrb r0, [r1, #4] + lsls r0, r0, #0x18 + orrs r6, r0 + ldr r5, _08050194 + ldr r2, _08050198 + ldr r0, _0805019C + ldrb r0, [r0] + strb r0, [r2] + strb r0, [r5] + ldr r4, _080501A0 + ldr r1, _080501A4 + ldrb r0, [r2] + movs r3, #0x58 + muls r0, r3, r0 + adds r0, r0, r1 + ldrh r0, [r0, #0x2c] + rsbs r0, r0, #0 + str r0, [r4] + ldrb r0, [r2] + adds r4, r0, #0 + muls r4, r3, r4 + adds r0, r4, r1 + ldrh r3, [r0, #0x28] + adds r7, r5, #0 + adds r5, r2, #0 + adds r2, r1, #0 + ldrh r0, [r0, #0x2c] + cmp r3, r0 + bne _080501A8 + mov r0, ip + str r6, [r0] + b _080501F8 + .align 2, 0 +_08050190: .4byte 0x02023EB8 +_08050194: .4byte 0x02023D08 +_08050198: .4byte 0x02023EB0 +_0805019C: .4byte 0x02023EAF +_080501A0: .4byte 0x02023E94 +_080501A4: .4byte 0x02023D28 +_080501A8: + adds r0, r2, #0 + adds r0, #0x4c + adds r0, r4, r0 + ldr r1, [r0] + movs r0, #0xf8 + ands r1, r0 + cmp r1, #0 + beq _080501C4 + ldr r1, _080501C0 + movs r0, #1 + strb r0, [r1, #5] + b _080501C8 + .align 2, 0 +_080501C0: .4byte 0x02023FD6 +_080501C4: + ldr r0, _08050200 + strb r1, [r0, #5] +_080501C8: + ldrb r0, [r5] + movs r3, #0x58 + muls r0, r3, r0 + adds r2, #0x4c + adds r0, r0, r2 + movs r1, #3 + str r1, [r0] + ldrb r0, [r7] + muls r0, r3, r0 + adds r0, r0, r2 + str r0, [sp] + movs r0, #0 + movs r1, #0x28 + movs r2, #0 + movs r3, #4 + bl BtlController_EmitSetMonData + ldrb r0, [r7] + bl MarkBattlerForControllerExec + ldr r1, _08050204 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] +_080501F8: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08050200: .4byte 0x02023FD6 +_08050204: .4byte 0x02023EB8 + thumb_func_end atk81_trysetrest + + thumb_func_start atk82_jumpifnotfirstturn +atk82_jumpifnotfirstturn: @ 0x08050208 + push {r4, r5, lr} + ldr r5, _0805023C + ldr r4, [r5] + ldrb r3, [r4, #1] + ldrb r0, [r4, #2] + lsls r0, r0, #8 + orrs r3, r0 + ldrb r0, [r4, #3] + lsls r0, r0, #0x10 + orrs r3, r0 + ldrb r0, [r4, #4] + lsls r0, r0, #0x18 + orrs r3, r0 + ldr r2, _08050240 + ldr r0, _08050244 + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #0x16] + cmp r0, #0 + beq _08050248 + adds r0, r4, #5 + str r0, [r5] + b _0805024A + .align 2, 0 +_0805023C: .4byte 0x02023EB8 +_08050240: .4byte 0x02023F60 +_08050244: .4byte 0x02023EAF +_08050248: + str r3, [r5] +_0805024A: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end atk82_jumpifnotfirstturn + + thumb_func_start atk83_nop +atk83_nop: @ 0x08050250 + ldr r1, _0805025C + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + bx lr + .align 2, 0 +_0805025C: .4byte 0x02023EB8 + thumb_func_end atk83_nop + + thumb_func_start UproarWakeUpCheck +UproarWakeUpCheck: @ 0x08050260 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + movs r2, #0 + ldr r0, _080502B8 + ldrb r1, [r0] + mov r8, r0 + cmp r2, r1 + bge _080502D4 + ldr r0, _080502BC + mov ip, r0 + movs r0, #0x58 + muls r0, r3, r0 + add r0, ip + adds r5, r0, #0 + adds r5, #0x20 + adds r4, r1, #0 + movs r3, #0 + ldr r6, _080502C0 + ldr r7, _080502C4 +_0805028C: + mov r0, ip + adds r0, #0x50 + adds r0, r3, r0 + ldr r0, [r0] + movs r1, #0x70 + ands r0, r1 + cmp r0, #0 + beq _080502CC + ldrb r0, [r5] + cmp r0, #0x2b + beq _080502CC + movs r3, #0 + strb r2, [r6, #0x17] + ldr r1, _080502C8 + ldrb r0, [r1] + cmp r0, #0xff + beq _080502EC + cmp r0, r2 + beq _080502E0 + movs r0, #1 + strb r0, [r7, #5] + b _080502D4 + .align 2, 0 +_080502B8: .4byte 0x02023D10 +_080502BC: .4byte 0x02023D28 +_080502C0: .4byte 0x02024118 +_080502C4: .4byte 0x02023FD6 +_080502C8: .4byte 0x02023EB0 +_080502CC: + adds r3, #0x58 + adds r2, #1 + cmp r2, r4 + blt _0805028C +_080502D4: + mov r1, r8 + ldrb r1, [r1] + cmp r2, r1 + beq _080502F0 + movs r0, #1 + b _080502F2 +_080502E0: + ldr r0, _080502E8 + strb r3, [r0, #5] + b _080502D4 + .align 2, 0 +_080502E8: .4byte 0x02023FD6 +_080502EC: + strb r2, [r1] + b _080502D4 +_080502F0: + movs r0, #0 +_080502F2: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end UproarWakeUpCheck + + thumb_func_start atk84_jumpifcantmakeasleep +atk84_jumpifcantmakeasleep: @ 0x080502FC + push {r4, r5, r6, lr} + ldr r5, _08050328 + ldr r1, [r5] + ldrb r4, [r1, #1] + ldrb r0, [r1, #2] + lsls r0, r0, #8 + orrs r4, r0 + ldrb r0, [r1, #3] + lsls r0, r0, #0x10 + orrs r4, r0 + ldrb r0, [r1, #4] + lsls r0, r0, #0x18 + orrs r4, r0 + ldr r6, _0805032C + ldrb r0, [r6] + bl UproarWakeUpCheck + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08050330 + str r4, [r5] + b _08050372 + .align 2, 0 +_08050328: .4byte 0x02023EB8 +_0805032C: .4byte 0x02023EB0 +_08050330: + ldr r1, _08050360 + ldrb r3, [r6] + movs r0, #0x58 + muls r0, r3, r0 + adds r0, r0, r1 + adds r0, #0x20 + ldrb r0, [r0] + adds r1, r0, #0 + cmp r1, #0xf + beq _08050348 + cmp r1, #0x48 + bne _0805036C +_08050348: + ldr r2, _08050364 + strb r0, [r2] + ldr r1, _08050368 + movs r0, #2 + strb r0, [r1, #5] + str r4, [r5] + ldrb r1, [r2] + adds r0, r3, #0 + bl RecordAbilityBattle + b _08050372 + .align 2, 0 +_08050360: .4byte 0x02023D28 +_08050364: .4byte 0x02023EAE +_08050368: .4byte 0x02023FD6 +_0805036C: + ldr r0, [r5] + adds r0, #5 + str r0, [r5] +_08050372: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end atk84_jumpifcantmakeasleep + + thumb_func_start atk85_stockpile +atk85_stockpile: @ 0x08050378 + push {r4, r5, lr} + ldr r5, _080503A0 + ldr r4, _080503A4 + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r5 + ldrb r0, [r1, #9] + cmp r0, #3 + bne _080503B0 + ldr r2, _080503A8 + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + ldr r1, _080503AC + movs r0, #1 + strb r0, [r1, #5] + b _080503DA + .align 2, 0 +_080503A0: .4byte 0x02023F60 +_080503A4: .4byte 0x02023EAF +_080503A8: .4byte 0x02023F20 +_080503AC: .4byte 0x02023FD6 +_080503B0: + adds r0, #1 + movs r3, #0 + strb r0, [r1, #9] + ldr r2, _080503E8 + movs r0, #0xfd + strb r0, [r2] + movs r0, #1 + strb r0, [r2, #1] + strb r0, [r2, #2] + strb r0, [r2, #3] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r0, [r0, #9] + strb r0, [r2, #4] + movs r0, #0xff + strb r0, [r2, #5] + ldr r0, _080503EC + strb r3, [r0, #5] +_080503DA: + ldr r1, _080503F0 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080503E8: .4byte 0x02022C0C +_080503EC: .4byte 0x02023FD6 +_080503F0: .4byte 0x02023EB8 + thumb_func_end atk85_stockpile + + thumb_func_start atk86_stockpiletobasedamage +atk86_stockpiletobasedamage: @ 0x080503F4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x10 + ldr r3, _0805042C + ldr r1, [r3] + ldrb r2, [r1, #1] + ldrb r0, [r1, #2] + lsls r0, r0, #8 + orrs r2, r0 + ldrb r0, [r1, #3] + lsls r0, r0, #0x10 + orrs r2, r0 + ldrb r0, [r1, #4] + lsls r0, r0, #0x18 + orrs r2, r0 + ldr r7, _08050430 + ldr r6, _08050434 + ldrb r1, [r6] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrb r0, [r0, #9] + cmp r0, #0 + bne _08050438 + str r2, [r3] + b _080504DA + .align 2, 0 +_0805042C: .4byte 0x02023EB8 +_08050430: .4byte 0x02023F60 +_08050434: .4byte 0x02023EAF +_08050438: + ldr r0, _080504E8 + ldrb r0, [r0, #6] + cmp r0, #1 + beq _080504C0 + ldr r0, _080504EC + mov r8, r0 + ldr r4, _080504F0 + ldr r5, _080504F4 + ldrb r0, [r5] + bl GetBattlerPosition + movs r1, #1 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r3, [r1] + ldrb r0, [r6] + movs r4, #0x58 + muls r0, r4, r0 + ldr r2, _080504F8 + adds r0, r0, r2 + ldrb r1, [r5] + muls r1, r4, r1 + adds r1, r1, r2 + ldr r2, _080504FC + ldrh r2, [r2] + movs r4, #0 + str r4, [sp] + str r4, [sp, #4] + ldrb r4, [r6] + str r4, [sp, #8] + ldrb r4, [r5] + str r4, [sp, #0xc] + bl CalculateBaseDamage + ldrb r2, [r6] + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r7 + ldrb r1, [r1, #9] + adds r3, r0, #0 + muls r3, r1, r3 + mov r1, r8 + str r3, [r1] + ldr r2, _08050500 + ldrb r1, [r6] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrb r0, [r0, #9] + strb r0, [r2, #0x18] + ldr r1, _08050504 + ldrb r0, [r6] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1c + cmp r0, #0 + bge _080504C0 + lsls r0, r3, #4 + subs r0, r0, r3 + movs r1, #0xa + bl __divsi3 + mov r1, r8 + str r0, [r1] +_080504C0: + ldr r2, _08050508 + ldr r0, _0805050C + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0 + strb r1, [r0, #9] + ldr r1, _08050510 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] +_080504DA: + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080504E8: .4byte 0x02023FD6 +_080504EC: .4byte 0x02023E94 +_080504F0: .4byte 0x02023F32 +_080504F4: .4byte 0x02023EB0 +_080504F8: .4byte 0x02023D28 +_080504FC: .4byte 0x02023E8E +_08050500: .4byte 0x02024118 +_08050504: .4byte 0x02023FE0 +_08050508: .4byte 0x02023F60 +_0805050C: .4byte 0x02023EAF +_08050510: .4byte 0x02023EB8 + thumb_func_end atk86_stockpiletobasedamage + + thumb_func_start atk87_stockpiletohpheal +atk87_stockpiletohpheal: @ 0x08050514 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r7, _08050554 + ldr r1, [r7] + ldrb r2, [r1, #1] + ldrb r0, [r1, #2] + lsls r0, r0, #8 + orrs r2, r0 + ldrb r0, [r1, #3] + lsls r0, r0, #0x10 + orrs r2, r0 + ldrb r0, [r1, #4] + lsls r0, r0, #0x18 + orrs r2, r0 + ldr r0, _08050558 + mov r8, r0 + ldr r6, _0805055C + ldrb r3, [r6] + lsls r0, r3, #3 + subs r0, r0, r3 + lsls r0, r0, #2 + mov r1, r8 + adds r4, r0, r1 + ldrb r1, [r4, #9] + cmp r1, #0 + bne _08050564 + str r2, [r7] + ldr r0, _08050560 + strb r1, [r0, #5] + b _080505E0 + .align 2, 0 +_08050554: .4byte 0x02023EB8 +_08050558: .4byte 0x02023F60 +_0805055C: .4byte 0x02023EAF +_08050560: .4byte 0x02023FD6 +_08050564: + ldr r1, _08050588 + movs r0, #0x58 + muls r0, r3, r0 + adds r1, r0, r1 + ldrh r0, [r1, #0x2c] + ldrh r3, [r1, #0x28] + cmp r0, r3 + bne _08050594 + movs r0, #0 + strb r0, [r4, #9] + str r2, [r7] + ldr r1, _0805058C + ldrb r0, [r6] + strb r0, [r1] + ldr r1, _08050590 + movs r0, #1 + strb r0, [r1, #5] + b _080505E0 + .align 2, 0 +_08050588: .4byte 0x02023D28 +_0805058C: .4byte 0x02023EB0 +_08050590: .4byte 0x02023FD6 +_08050594: + ldr r5, _080505EC + ldrh r0, [r1, #0x2c] + ldrb r1, [r4, #9] + movs r2, #3 + subs r2, r2, r1 + movs r4, #1 + adds r1, r4, #0 + lsls r1, r2 + bl __divsi3 + str r0, [r5] + cmp r0, #0 + bne _080505B0 + str r4, [r5] +_080505B0: + ldr r0, [r5] + rsbs r0, r0, #0 + str r0, [r5] + ldr r3, _080505F0 + ldrb r1, [r6] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + ldrb r0, [r0, #9] + movs r2, #0 + strb r0, [r3, #0x18] + ldrb r1, [r6] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + strb r2, [r0, #9] + ldr r0, [r7] + adds r0, #5 + str r0, [r7] + ldr r1, _080505F4 + ldrb r0, [r6] + strb r0, [r1] +_080505E0: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080505EC: .4byte 0x02023E94 +_080505F0: .4byte 0x02024118 +_080505F4: .4byte 0x02023EB0 + thumb_func_end atk87_stockpiletohpheal + + thumb_func_start atk88_negativedamage +atk88_negativedamage: @ 0x080505F8 + push {lr} + ldr r2, _08050620 + ldr r0, _08050624 + ldr r0, [r0] + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + rsbs r0, r0, #0 + str r0, [r2] + cmp r0, #0 + bne _08050614 + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r2] +_08050614: + ldr r1, _08050628 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08050620: .4byte 0x02023E94 +_08050624: .4byte 0x02023E98 +_08050628: .4byte 0x02023EB8 + thumb_func_end atk88_negativedamage + + thumb_func_start ChangeStatBuffs +ChangeStatBuffs: @ 0x0805062C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov r8, r3 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + movs r0, #0 + mov sb, r0 + mov sl, r0 + movs r0, #0x40 + ands r0, r5 + cmp r0, #0 + beq _08050660 + ldr r0, _08050658 + ldr r1, _0805065C + b _08050664 + .align 2, 0 +_08050658: .4byte 0x02023D08 +_0805065C: .4byte 0x02023EAF +_08050660: + ldr r0, _08050704 + ldr r1, _08050708 +_08050664: + ldrb r1, [r1] + strb r1, [r0] + movs r0, #0xbf + ands r5, r0 + movs r0, #0x80 + ands r0, r5 + cmp r0, #0 + beq _0805067E + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 +_0805067E: + movs r0, #0x7f + ands r5, r0 + movs r0, #0x20 + ands r0, r5 + cmp r0, #0 + beq _08050694 + mov r0, sl + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 +_08050694: + movs r0, #0xdf + ands r5, r0 + ldr r1, _0805070C + movs r4, #0 + movs r2, #0xfd + strb r2, [r1] + movs r0, #5 + strb r0, [r1, #1] + strb r7, [r1, #2] + movs r3, #1 + rsbs r3, r3, #0 + mov ip, r3 + movs r0, #0xff + strb r0, [r1, #3] + lsls r0, r6, #0x18 + cmp r0, #0 + blt _080506B8 + b _0805099C +_080506B8: + ldr r4, _08050710 + ldr r1, _08050704 + ldrb r0, [r1] + bl GetBattlerPosition + movs r1, #1 + ands r1, r0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r0, [r0, #4] + cmp r0, #0 + beq _08050758 + mov r2, sb + cmp r2, #0 + bne _08050758 + ldr r0, _08050714 + ldrh r0, [r0] + cmp r0, #0xae + beq _08050788 + cmp r5, #1 + bne _08050778 + ldr r4, _08050718 + ldr r3, _08050704 + ldrb r0, [r3] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r0, [r1] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _08050720 + ldr r0, _0805071C + mov r4, r8 + str r4, [r0] + b _08050778 + .align 2, 0 +_08050704: .4byte 0x02023D08 +_08050708: .4byte 0x02023EB0 +_0805070C: .4byte 0x02022C0C +_08050710: .4byte 0x02023F38 +_08050714: .4byte 0x02023E8E +_08050718: .4byte 0x02024020 +_0805071C: .4byte 0x02023EB8 +_08050720: + mov r0, r8 + bl BattleScriptPush + ldr r1, _08050748 + ldr r6, _0805074C + ldrb r0, [r6] + strb r0, [r1, #0x17] + ldr r1, _08050750 + ldr r0, _08050754 + str r0, [r1] + ldrb r1, [r6] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r1, [r0] + movs r2, #1 + orrs r1, r2 + strb r1, [r0] + b _08050778 + .align 2, 0 +_08050748: .4byte 0x02024118 +_0805074C: .4byte 0x02023D08 +_08050750: .4byte 0x02023EB8 +_08050754: .4byte 0x0828938B +_08050758: + ldr r0, _0805077C + ldrh r0, [r0] + cmp r0, #0xae + beq _08050788 + mov r0, sl + cmp r0, #1 + beq _08050788 + movs r0, #0 + bl JumpIfMoveAffectedByProtect + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08050788 + ldr r1, _08050780 + ldr r0, _08050784 + str r0, [r1] +_08050778: + movs r0, #1 + b _08050A90 + .align 2, 0 +_0805077C: .4byte 0x02023E8E +_08050780: .4byte 0x02023EB8 +_08050784: .4byte 0x082884A4 +_08050788: + ldr r2, _080507D0 + ldr r1, _080507D4 + ldrb r3, [r1] + movs r4, #0x58 + adds r0, r3, #0 + muls r0, r4, r0 + adds r0, r0, r2 + adds r0, #0x20 + ldrb r0, [r0] + mov sl, r2 + cmp r0, #0x1d + beq _080507A4 + cmp r0, #0x49 + bne _0805083C +_080507A4: + mov r0, sb + cmp r0, #0 + bne _0805083C + ldr r0, _080507D8 + ldrh r0, [r0] + cmp r0, #0xae + beq _0805083C + cmp r5, #1 + bne _08050778 + ldr r4, _080507DC + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r0, [r0] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _080507E4 + ldr r0, _080507E0 + mov r1, r8 + str r1, [r0] + b _08050778 + .align 2, 0 +_080507D0: .4byte 0x02023D28 +_080507D4: .4byte 0x02023D08 +_080507D8: .4byte 0x02023E8E +_080507DC: .4byte 0x02024020 +_080507E0: .4byte 0x02023EB8 +_080507E4: + mov r0, r8 + bl BattleScriptPush + ldr r1, _08050828 + ldr r2, _0805082C + ldrb r0, [r2] + strb r0, [r1, #0x17] + ldr r1, _08050830 + ldr r0, _08050834 + str r0, [r1] + ldr r1, _08050838 + ldrb r0, [r2] + movs r3, #0x58 + muls r0, r3, r0 + add r0, sl + adds r0, #0x20 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r2] + ldrb r1, [r1] + bl RecordAbilityBattle + ldr r6, _0805082C + ldrb r1, [r6] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r1, [r0] + movs r2, #1 + orrs r1, r2 + strb r1, [r0] + b _08050778 + .align 2, 0 +_08050828: .4byte 0x02024118 +_0805082C: .4byte 0x02023D08 +_08050830: .4byte 0x02023EB8 +_08050834: .4byte 0x08289B4F +_08050838: .4byte 0x02023EAE +_0805083C: + ldr r1, _08050888 + ldrb r0, [r1] + movs r4, #0x58 + muls r0, r4, r0 + add r0, sl + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x33 + bne _0805089C + mov r2, sb + cmp r2, #0 + bne _0805089C + cmp r7, #6 + bne _0805089C + cmp r5, #1 + bne _08050778 + mov r0, r8 + bl BattleScriptPush + ldr r1, _0805088C + ldr r3, _08050888 + ldrb r0, [r3] + strb r0, [r1, #0x17] + ldr r1, _08050890 + ldr r0, _08050894 + str r0, [r1] + ldr r1, _08050898 + ldrb r0, [r3] + muls r0, r4, r0 + add r0, sl + adds r0, #0x20 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r3] + ldrb r1, [r1] + bl RecordAbilityBattle + b _08050778 + .align 2, 0 +_08050888: .4byte 0x02023D08 +_0805088C: .4byte 0x02024118 +_08050890: .4byte 0x02023EB8 +_08050894: .4byte 0x08289BB7 +_08050898: .4byte 0x02023EAE +_0805089C: + ldr r4, _080508EC + ldrb r0, [r4] + movs r4, #0x58 + muls r0, r4, r0 + add r0, sl + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x34 + bne _08050900 + mov r0, sb + cmp r0, #0 + bne _08050900 + cmp r7, #1 + bne _08050900 + cmp r5, #1 + beq _080508BE + b _08050778 +_080508BE: + mov r0, r8 + bl BattleScriptPush + ldr r1, _080508F0 + ldr r2, _080508EC + ldrb r0, [r2] + strb r0, [r1, #0x17] + ldr r1, _080508F4 + ldr r0, _080508F8 + str r0, [r1] + ldr r1, _080508FC + ldrb r0, [r2] + muls r0, r4, r0 + add r0, sl + adds r0, #0x20 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r2] + ldrb r1, [r1] + bl RecordAbilityBattle + b _08050778 + .align 2, 0 +_080508EC: .4byte 0x02023D08 +_080508F0: .4byte 0x02024118 +_080508F4: .4byte 0x02023EB8 +_080508F8: .4byte 0x08289BB7 +_080508FC: .4byte 0x02023EAE +_08050900: + ldr r3, _0805098C + ldrb r1, [r3] + movs r0, #0x58 + muls r0, r1, r0 + add r0, sl + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x13 + bne _08050918 + cmp r5, #0 + bne _08050918 + b _08050778 +_08050918: + lsls r0, r6, #0x18 + asrs r0, r0, #0x1c + movs r1, #7 + ands r0, r1 + rsbs r0, r0, #0 + lsls r0, r0, #0x18 + ldr r3, _08050990 + movs r4, #0 + movs r1, #0xfd + strb r1, [r3] + movs r2, #1 + lsrs r6, r0, #0x18 + asrs r0, r0, #0x18 + subs r1, #0xff + cmp r0, r1 + bne _08050942 + strb r4, [r3, #1] + movs r0, #0xd3 + strb r0, [r3, #2] + strb r4, [r3, #3] + movs r2, #4 +_08050942: + adds r0, r2, r3 + strb r4, [r0] + adds r2, #1 + adds r1, r2, r3 + movs r0, #0xd4 + strb r0, [r1] + adds r2, #1 + adds r0, r2, r3 + strb r4, [r0] + adds r2, #1 + adds r1, r2, r3 + movs r0, #0xff + strb r0, [r1] + ldr r4, _0805098C + ldrb r2, [r4] + movs r0, #0x58 + muls r0, r2, r0 + adds r0, r7, r0 + mov r1, sl + adds r1, #0x18 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _080509F2 + movs r1, #0 + ldr r0, _08050994 + ldrb r0, [r0] + ldr r3, _08050998 + mov r8, r3 + cmp r0, r2 + bne _08050986 + movs r1, #1 +_08050986: + mov r4, r8 + strb r1, [r4, #5] + b _08050A20 + .align 2, 0 +_0805098C: .4byte 0x02023D08 +_08050990: .4byte 0x02022C1C +_08050994: .4byte 0x02023EB0 +_08050998: .4byte 0x02023FD6 +_0805099C: + asrs r6, r0, #0x1c + movs r0, #7 + ands r6, r0 + ldr r3, _080509FC + strb r2, [r3] + movs r2, #1 + cmp r6, #2 + bne _080509B6 + strb r4, [r3, #1] + movs r0, #0xd1 + strb r0, [r3, #2] + strb r4, [r3, #3] + movs r2, #4 +_080509B6: + adds r0, r2, r3 + strb r4, [r0] + adds r2, #1 + adds r1, r2, r3 + movs r0, #0xd2 + strb r0, [r1] + adds r2, #1 + adds r0, r2, r3 + strb r4, [r0] + adds r2, #1 + adds r1, r2, r3 + ldrb r0, [r1] + mov r2, ip + orrs r0, r2 + strb r0, [r1] + ldr r2, _08050A00 + ldr r4, _08050A04 + ldrb r3, [r4] + movs r0, #0x58 + muls r0, r3, r0 + adds r0, r7, r0 + adds r1, r2, #0 + adds r1, #0x18 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + mov sl, r2 + cmp r0, #0xc + bne _08050A0C +_080509F2: + ldr r1, _08050A08 + movs r0, #2 + strb r0, [r1, #5] + mov r8, r1 + b _08050A20 + .align 2, 0 +_080509FC: .4byte 0x02022C1C +_08050A00: .4byte 0x02023D28 +_08050A04: .4byte 0x02023D08 +_08050A08: .4byte 0x02023FD6 +_08050A0C: + movs r1, #0 + ldr r0, _08050AA0 + ldrb r0, [r0] + ldr r2, _08050AA4 + mov r8, r2 + cmp r0, r3 + bne _08050A1C + movs r1, #1 +_08050A1C: + mov r3, r8 + strb r1, [r3, #5] +_08050A20: + ldr r2, _08050AA8 + ldrb r0, [r2] + movs r4, #0x58 + adds r1, r0, #0 + muls r1, r4, r1 + adds r1, r7, r1 + mov r3, sl + adds r3, #0x18 + adds r1, r1, r3 + lsls r0, r6, #0x18 + asrs r0, r0, #0x18 + ldrb r6, [r1] + adds r0, r0, r6 + strb r0, [r1] + ldrb r0, [r2] + muls r0, r4, r0 + adds r0, r7, r0 + adds r1, r0, r3 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bge _08050A50 + movs r0, #0 + strb r0, [r1] +_08050A50: + ldr r1, _08050AA8 + ldrb r0, [r1] + muls r0, r4, r0 + adds r0, r7, r0 + adds r1, r0, r3 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0xc + ble _08050A66 + movs r0, #0xc + strb r0, [r1] +_08050A66: + mov r2, r8 + ldrb r0, [r2, #5] + cmp r0, #2 + bne _08050A8E + movs r3, #1 + ands r3, r5 + cmp r3, #0 + beq _08050A80 + ldr r0, _08050AAC + ldrb r1, [r0] + movs r2, #1 + orrs r1, r2 + strb r1, [r0] +_08050A80: + mov r4, r8 + ldrb r0, [r4, #5] + cmp r0, #2 + bne _08050A8E + cmp r3, #0 + bne _08050A8E + b _08050778 +_08050A8E: + movs r0, #0 +_08050A90: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08050AA0: .4byte 0x02023EB0 +_08050AA4: .4byte 0x02023FD6 +_08050AA8: .4byte 0x02023D08 +_08050AAC: .4byte 0x02023F20 + thumb_func_end ChangeStatBuffs + + thumb_func_start atk89_statbuffchange +atk89_statbuffchange: @ 0x08050AB0 + push {r4, r5, lr} + ldr r5, _08050AF4 + ldr r2, [r5] + ldrb r3, [r2, #2] + ldrb r0, [r2, #3] + lsls r0, r0, #8 + orrs r3, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x10 + orrs r3, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x18 + orrs r3, r0 + ldr r0, _08050AF8 + ldrb r4, [r0, #0x1a] + movs r0, #0xf0 + ands r0, r4 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #0xf + ands r1, r4 + ldrb r2, [r2, #1] + bl ChangeStatBuffs + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08050AEC + ldr r0, [r5] + adds r0, #6 + str r0, [r5] +_08050AEC: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08050AF4: .4byte 0x02023EB8 +_08050AF8: .4byte 0x02024118 + thumb_func_end atk89_statbuffchange + + thumb_func_start atk8A_normalisebuffs +atk8A_normalisebuffs: @ 0x08050AFC + push {r4, r5, r6, r7, lr} + movs r2, #0 + ldr r0, _08050B44 + ldrb r1, [r0] + ldr r0, _08050B48 + mov ip, r0 + cmp r2, r1 + bge _08050B34 + ldr r0, _08050B4C + movs r4, #6 + adds r5, r1, #0 + movs r7, #0x58 + adds r6, r0, #0 + adds r6, #0x18 +_08050B18: + adds r3, r2, #1 + movs r1, #7 + adds r0, r2, #0 + muls r0, r7, r0 + adds r0, r0, r6 + adds r0, #7 +_08050B24: + strb r4, [r0] + subs r0, #1 + subs r1, #1 + cmp r1, #0 + bge _08050B24 + adds r2, r3, #0 + cmp r2, r5 + blt _08050B18 +_08050B34: + mov r1, ip + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08050B44: .4byte 0x02023D10 +_08050B48: .4byte 0x02023EB8 +_08050B4C: .4byte 0x02023D28 + thumb_func_end atk8A_normalisebuffs + + thumb_func_start atk8B_setbide +atk8B_setbide: @ 0x08050B50 + push {r4, r5, lr} + ldr r4, _08050BA8 + ldr r3, _08050BAC + ldrb r0, [r3] + movs r5, #0x58 + adds r2, r0, #0 + muls r2, r5, r2 + adds r4, #0x50 + adds r2, r2, r4 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #5 + orrs r0, r1 + str r0, [r2] + ldr r1, _08050BB0 + ldrb r0, [r3] + lsls r0, r0, #1 + adds r0, r0, r1 + ldr r1, _08050BB4 + ldrh r1, [r1] + movs r2, #0 + strh r1, [r0] + ldr r1, _08050BB8 + ldrb r0, [r3] + lsls r0, r0, #2 + adds r0, r0, r1 + str r2, [r0] + ldrb r0, [r3] + adds r1, r0, #0 + muls r1, r5, r1 + adds r1, r1, r4 + ldr r0, [r1] + movs r2, #0x80 + lsls r2, r2, #2 + orrs r0, r2 + str r0, [r1] + ldr r1, _08050BBC + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08050BA8: .4byte 0x02023D28 +_08050BAC: .4byte 0x02023EAF +_08050BB0: .4byte 0x02023F0C +_08050BB4: .4byte 0x02023E8E +_08050BB8: .4byte 0x02023E9C +_08050BBC: .4byte 0x02023EB8 + thumb_func_end atk8B_setbide + + thumb_func_start atk8C_confuseifrepeatingattackends +atk8C_confuseifrepeatingattackends: @ 0x08050BC0 + push {lr} + ldr r1, _08050BF0 + ldr r0, _08050BF4 + ldrb r2, [r0] + movs r0, #0x58 + muls r0, r2, r0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0xc0 + lsls r1, r1, #4 + ands r0, r1 + cmp r0, #0 + bne _08050BE2 + ldr r1, _08050BF8 + movs r0, #0x75 + strb r0, [r1, #3] +_08050BE2: + ldr r1, _08050BFC + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08050BF0: .4byte 0x02023D28 +_08050BF4: .4byte 0x02023EAF +_08050BF8: .4byte 0x02023FD6 +_08050BFC: .4byte 0x02023EB8 + thumb_func_end atk8C_confuseifrepeatingattackends + + thumb_func_start atk8D_setmultihitcounter +atk8D_setmultihitcounter: @ 0x08050C00 + push {r4, r5, lr} + ldr r0, _08050C14 + ldr r0, [r0] + ldrb r1, [r0, #1] + cmp r1, #0 + beq _08050C1C + ldr r0, _08050C18 + strb r1, [r0] + b _08050C36 + .align 2, 0 +_08050C14: .4byte 0x02023EB8 +_08050C18: .4byte 0x02023EB6 +_08050C1C: + ldr r4, _08050C44 + bl Random + movs r5, #3 + ands r0, r5 + strb r0, [r4] + cmp r0, #1 + bls _08050C32 + bl Random + ands r0, r5 +_08050C32: + adds r0, #2 + strb r0, [r4] +_08050C36: + ldr r1, _08050C48 + ldr r0, [r1] + adds r0, #2 + str r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08050C44: .4byte 0x02023EB6 +_08050C48: .4byte 0x02023EB8 + thumb_func_end atk8D_setmultihitcounter + + thumb_func_start atk8E_initmultihitstring +atk8E_initmultihitstring: @ 0x08050C4C + ldr r1, _08050C6C + movs r2, #0 + movs r0, #0xfd + strb r0, [r1, #8] + movs r0, #1 + strb r0, [r1, #9] + strb r0, [r1, #0xa] + strb r0, [r1, #0xb] + strb r2, [r1, #0xc] + movs r0, #0xff + strb r0, [r1, #0xd] + ldr r1, _08050C70 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + bx lr + .align 2, 0 +_08050C6C: .4byte 0x02024118 +_08050C70: .4byte 0x02023EB8 + thumb_func_end atk8E_initmultihitstring + + thumb_func_start TryDoForceSwitchOut +TryDoForceSwitchOut: @ 0x08050C74 + push {r4, r5, r6, r7, lr} + ldr r6, _08050CA8 + ldr r7, _08050CAC + ldrb r0, [r7] + movs r5, #0x58 + adds r1, r0, #0 + muls r1, r5, r1 + adds r1, r1, r6 + adds r1, #0x2a + ldr r4, _08050CB0 + ldrb r3, [r4] + adds r0, r3, #0 + muls r0, r5, r0 + adds r0, r0, r6 + adds r0, #0x2a + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + blo _08050CBC + ldr r0, _08050CB4 + ldr r1, [r0] + adds r1, r3, r1 + adds r1, #0x58 + ldr r2, _08050CB8 + lsls r0, r3, #1 + b _08050D18 + .align 2, 0 +_08050CA8: .4byte 0x02023D28 +_08050CAC: .4byte 0x02023EAF +_08050CB0: .4byte 0x02023EB0 +_08050CB4: .4byte 0x02024140 +_08050CB8: .4byte 0x02023D12 +_08050CBC: + bl Random + movs r3, #0xff + ands r3, r0 + ldrb r0, [r7] + muls r0, r5, r0 + adds r0, r0, r6 + adds r0, #0x2a + ldrb r2, [r0] + ldrb r4, [r4] + adds r0, r4, #0 + muls r0, r5, r0 + adds r0, r0, r6 + adds r0, #0x2a + ldrb r1, [r0] + adds r2, r2, r1 + adds r0, r3, #0 + muls r0, r2, r0 + asrs r0, r0, #8 + adds r0, #1 + lsrs r1, r1, #2 + cmp r0, r1 + bhi _08050D0C + ldr r3, _08050D08 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + movs r0, #0 + b _08050D26 + .align 2, 0 +_08050D08: .4byte 0x02023EB8 +_08050D0C: + ldr r0, _08050D2C + ldr r1, [r0] + adds r1, r4, r1 + adds r1, #0x58 + ldr r2, _08050D30 + lsls r0, r4, #1 +_08050D18: + adds r0, r0, r2 + ldrh r0, [r0] + strb r0, [r1] + ldr r1, _08050D34 + ldr r0, _08050D38 + str r0, [r1] + movs r0, #1 +_08050D26: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08050D2C: .4byte 0x02024140 +_08050D30: .4byte 0x02023D12 +_08050D34: .4byte 0x02023EB8 +_08050D38: .4byte 0x08289360 + thumb_func_end TryDoForceSwitchOut + + thumb_func_start atk8F_forcerandomswitch +atk8F_forcerandomswitch: @ 0x08050D3C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + movs r0, #0 + str r0, [sp, #4] + ldr r5, _08050DA8 + ldr r0, [r5] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + bne _08050D5A + b _08051020 +_08050D5A: + ldr r4, _08050DAC + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + ldr r1, _08050DB0 + str r1, [sp] + cmp r0, #0 + bne _08050D70 + ldr r0, _08050DB4 + str r0, [sp] +_08050D70: + ldr r2, [r5] + movs r1, #0x81 + lsls r1, r1, #1 + adds r0, r2, #0 + ands r0, r1 + cmp r0, r1 + beq _08050D92 + ldr r1, _08050DB8 + adds r0, r2, #0 + ands r0, r1 + cmp r0, r1 + beq _08050D92 + movs r0, #0x80 + lsls r0, r0, #0xf + ands r0, r2 + cmp r0, #0 + beq _08050DD8 +_08050D92: + ldr r2, _08050DAC + ldrb r1, [r2] + movs r0, #2 + ands r0, r1 + adds r1, r2, #0 + cmp r0, #0 + beq _08050DBC + movs r0, #3 + mov sb, r0 + movs r0, #6 + b _08050DC2 + .align 2, 0 +_08050DA8: .4byte 0x02022C90 +_08050DAC: .4byte 0x02023EB0 +_08050DB0: .4byte 0x020243E8 +_08050DB4: .4byte 0x02024190 +_08050DB8: .4byte 0x02000100 +_08050DBC: + movs r0, #0 + mov sb, r0 + movs r0, #3 +_08050DC2: + mov r8, r0 + movs r0, #3 + mov sl, r0 + movs r0, #1 + str r0, [sp, #8] + ldr r2, _08050DD4 + ldrb r1, [r1] + b _08050E9E + .align 2, 0 +_08050DD4: .4byte 0x02023D12 +_08050DD8: + movs r0, #0x42 + ands r0, r2 + cmp r0, #0x42 + beq _08050DEA + ldr r1, _08050E08 + adds r0, r2, #0 + ands r0, r1 + cmp r0, r1 + bne _08050E2C +_08050DEA: + ldrb r0, [r4] + bl GetBattlerMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetLinkTrainerFlankId + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bne _08050E0C + movs r1, #3 + mov sb, r1 + movs r0, #6 + b _08050E12 + .align 2, 0 +_08050E08: .4byte 0x02000040 +_08050E0C: + movs r1, #0 + mov sb, r1 + movs r0, #3 +_08050E12: + mov r8, r0 + movs r1, #3 + mov sl, r1 + movs r0, #1 + str r0, [sp, #8] + ldr r2, _08050E24 + ldr r0, _08050E28 + ldrb r1, [r0] + b _08050E9E + .align 2, 0 +_08050E24: .4byte 0x02023D12 +_08050E28: .4byte 0x02023EB0 +_08050E2C: + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r2 + cmp r0, #0 + beq _08050E84 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08050E50 + movs r1, #0 + mov sb, r1 + movs r0, #6 + mov r8, r0 + mov sl, r0 + movs r1, #2 + b _08050E70 +_08050E50: + ldrb r1, [r4] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08050E62 + movs r0, #3 + mov sb, r0 + movs r1, #6 + b _08050E68 +_08050E62: + movs r0, #0 + mov sb, r0 + movs r1, #3 +_08050E68: + mov r8, r1 + movs r0, #3 + mov sl, r0 + movs r1, #1 +_08050E70: + str r1, [sp, #8] + ldr r2, _08050E7C + ldr r0, _08050E80 + ldrb r1, [r0] + b _08050E9E + .align 2, 0 +_08050E7C: .4byte 0x02023D12 +_08050E80: .4byte 0x02023EB0 +_08050E84: + movs r0, #1 + ands r2, r0 + cmp r2, #0 + beq _08050EB4 + movs r0, #0 + mov sb, r0 + movs r1, #6 + mov r8, r1 + mov sl, r1 + movs r0, #2 + str r0, [sp, #8] + ldr r2, _08050EB0 + ldrb r1, [r4] +_08050E9E: + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r7, [r0] + movs r0, #2 + eors r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r5, [r1] + b _08050ECE + .align 2, 0 +_08050EB0: .4byte 0x02023D12 +_08050EB4: + movs r1, #0 + mov sb, r1 + movs r0, #6 + mov r8, r0 + mov sl, r0 + movs r1, #1 + str r1, [sp, #8] + ldr r1, _08050F30 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r5, [r0] + adds r7, r5, #0 +_08050ECE: + mov r6, sb + cmp r6, r8 + bge _08050F0C +_08050ED4: + movs r0, #0x64 + muls r0, r6, r0 + ldr r1, [sp] + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _08050F06 + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + bne _08050F06 + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _08050F06 + ldr r0, [sp, #4] + adds r0, #1 + str r0, [sp, #4] +_08050F06: + adds r6, #1 + cmp r6, r8 + blt _08050ED4 +_08050F0C: + ldr r1, [sp, #4] + ldr r0, [sp, #8] + cmp r1, r0 + bgt _08050F38 + ldr r3, _08050F34 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08051024 + .align 2, 0 +_08050F30: .4byte 0x02023D12 +_08050F34: .4byte 0x02023EB8 +_08050F38: + bl TryDoForceSwitchOut + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08050F88 +_08050F42: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r1, sl + bl __modsi3 + adds r6, r0, #0 + add r6, sb + cmp r6, r7 + beq _08050F42 + cmp r6, r5 + beq _08050F42 + movs r0, #0x64 + muls r0, r6, r0 + ldr r1, [sp] + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _08050F42 + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #1 + beq _08050F42 + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _08050F42 +_08050F88: + ldr r4, _0805100C + ldrb r0, [r4] + ldr r1, _08051010 + ldr r1, [r1] + adds r0, r0, r1 + adds r0, #0x5c + strb r6, [r0] + bl IsMultiBattle + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08050FA6 + ldrb r0, [r4] + bl sub_0803B9E4 +_08050FA6: + ldr r0, _08051014 + ldr r2, [r0] + movs r1, #0x81 + lsls r1, r1, #1 + adds r0, r2, #0 + ands r0, r1 + cmp r0, r1 + beq _08050FD0 + movs r0, #0x42 + ands r0, r2 + cmp r0, #0x42 + beq _08050FD0 + ldr r1, _08051018 + adds r0, r2, #0 + ands r0, r1 + cmp r0, r1 + beq _08050FD0 + ldr r0, _0805101C + ands r2, r0 + cmp r2, r0 + bne _08050FEE +_08050FD0: + ldr r5, _0805100C + ldrb r0, [r5] + lsls r4, r6, #0x18 + lsrs r4, r4, #0x18 + adds r1, r4, #0 + movs r2, #0 + bl sub_081B8B20 + ldrb r1, [r5] + movs r0, #2 + eors r0, r1 + adds r1, r4, #0 + movs r2, #1 + bl sub_081B8B20 +_08050FEE: + ldr r0, _08051014 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + beq _08051024 + ldr r0, _0805100C + ldrb r0, [r0] + lsls r1, r6, #0x18 + lsrs r1, r1, #0x18 + bl sub_08056DEC + b _08051024 + .align 2, 0 +_0805100C: .4byte 0x02023EB0 +_08051010: .4byte 0x02024140 +_08051014: .4byte 0x02022C90 +_08051018: .4byte 0x02000100 +_0805101C: .4byte 0x02000040 +_08051020: + bl TryDoForceSwitchOut +_08051024: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end atk8F_forcerandomswitch + + thumb_func_start atk90_tryconversiontypechange +atk90_tryconversiontypechange: @ 0x08051034 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + movs r6, #0 + ldr r2, _080510C8 + ldr r3, _080510CC + ldrb r1, [r3] + movs r0, #0x58 + muls r0, r1, r0 + adds r1, r2, #0 + adds r1, #0xc + adds r0, r0, r1 + ldrh r0, [r0] + mov r8, r2 + cmp r0, #0 + beq _08051076 + movs r5, #0x58 + adds r2, r1, #0 +_0805105C: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #3 + bhi _08051076 + lsls r1, r6, #1 + ldrb r0, [r3] + muls r0, r5, r0 + adds r1, r1, r0 + adds r1, r1, r2 + ldrh r0, [r1] + cmp r0, #0 + bne _0805105C +_08051076: + movs r3, #0 + cmp r3, r6 + bhs _080510F8 + ldr r0, _080510D0 + mov sl, r0 + ldr r5, _080510C8 + mov ip, r5 + ldr r7, _080510CC + ldrb r0, [r7] + movs r4, #0x58 + adds r5, r0, #0 + muls r5, r4, r5 + movs r0, #0xc + add r0, ip + mov sb, r0 +_08051094: + lsls r0, r3, #1 + adds r0, r0, r5 + add r0, sb + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sl + ldrb r2, [r0, #2] + cmp r2, #9 + bne _080510D6 + mov r0, r8 + adds r1, r5, r0 + adds r0, r1, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #7 + beq _080510C2 + adds r0, r1, #0 + adds r0, #0x22 + ldrb r0, [r0] + cmp r0, #7 + bne _080510D4 +_080510C2: + movs r2, #7 + b _080510D6 + .align 2, 0 +_080510C8: .4byte 0x02023D28 +_080510CC: .4byte 0x02023EAF +_080510D0: .4byte 0x082ED220 +_080510D4: + movs r2, #0 +_080510D6: + ldrb r0, [r7] + muls r0, r4, r0 + add r0, ip + adds r1, r0, #0 + adds r1, #0x21 + ldrb r1, [r1] + cmp r2, r1 + beq _080510EE + adds r0, #0x22 + ldrb r0, [r0] + cmp r2, r0 + bne _080510F8 +_080510EE: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, r6 + blo _08051094 +_080510F8: + cmp r3, r6 + bne _0805111C + ldr r3, _08051118 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _080511C0 + .align 2, 0 +_08051118: .4byte 0x02023EB8 +_0805111C: + movs r7, #3 + ldr r5, _08051174 + mov sb, r5 +_08051122: + bl Random + adds r3, r0, #0 + ands r3, r7 + cmp r3, r6 + bhs _08051122 + ldr r4, _08051178 + lsls r1, r3, #1 + ldr r3, _0805117C + ldrb r2, [r3] + movs r0, #0x58 + adds r5, r2, #0 + muls r5, r0, r5 + adds r1, r1, r5 + adds r0, r4, #0 + adds r0, #0xc + adds r1, r1, r0 + ldrh r1, [r1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sb + ldrb r2, [r0, #2] + mov r8, r4 + adds r4, r3, #0 + cmp r2, #9 + bne _08051182 + mov r0, r8 + adds r2, r5, r0 + adds r0, r2, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #7 + beq _08051170 + adds r0, r2, #0 + adds r0, #0x22 + ldrb r0, [r0] + cmp r0, #7 + bne _08051180 +_08051170: + movs r2, #7 + b _08051182 + .align 2, 0 +_08051174: .4byte 0x082ED220 +_08051178: .4byte 0x02023D28 +_0805117C: .4byte 0x02023EAF +_08051180: + movs r2, #0 +_08051182: + ldrb r0, [r4] + movs r3, #0x58 + muls r0, r3, r0 + add r0, r8 + adds r1, r0, #0 + adds r1, #0x21 + ldrb r5, [r1] + cmp r2, r5 + beq _08051122 + adds r0, #0x22 + ldrb r0, [r0] + cmp r2, r0 + beq _08051122 + strb r2, [r1] + ldrb r0, [r4] + muls r0, r3, r0 + add r0, r8 + adds r0, #0x22 + strb r2, [r0] + ldr r1, _080511D0 + movs r0, #0xfd + strb r0, [r1] + movs r0, #3 + strb r0, [r1, #1] + strb r2, [r1, #2] + movs r0, #0xff + strb r0, [r1, #3] + ldr r1, _080511D4 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] +_080511C0: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080511D0: .4byte 0x02022C0C +_080511D4: .4byte 0x02023EB8 + thumb_func_end atk90_tryconversiontypechange + + thumb_func_start atk91_givepaydaymoney +atk91_givepaydaymoney: @ 0x080511D8 + push {r4, lr} + ldr r0, _08051240 + ldr r0, [r0] + ldr r1, _08051244 + ands r0, r1 + cmp r0, #0 + bne _08051260 + ldr r1, _08051248 + ldrh r0, [r1] + cmp r0, #0 + beq _08051260 + adds r1, r0, #0 + ldr r0, _0805124C + ldr r0, [r0] + adds r0, #0x4a + ldrb r0, [r0] + adds r4, r1, #0 + muls r4, r0, r4 + ldr r0, _08051250 + ldr r0, [r0] + movs r1, #0x92 + lsls r1, r1, #3 + adds r0, r0, r1 + adds r1, r4, #0 + bl AddMoney + ldr r1, _08051254 + movs r0, #0xfd + strb r0, [r1] + movs r0, #1 + strb r0, [r1, #1] + movs r0, #2 + strb r0, [r1, #2] + movs r0, #5 + strb r0, [r1, #3] + strb r4, [r1, #4] + movs r0, #0xff + lsls r0, r0, #8 + ands r4, r0 + lsrs r4, r4, #8 + strb r4, [r1, #5] + movs r0, #0xff + strb r0, [r1, #6] + ldr r4, _08051258 + ldr r0, [r4] + adds r0, #1 + bl BattleScriptPush + ldr r0, _0805125C + str r0, [r4] + b _08051268 + .align 2, 0 +_08051240: .4byte 0x02022C90 +_08051244: .4byte 0x02000002 +_08051248: .4byte 0x02023FD2 +_0805124C: .4byte 0x02024140 +_08051250: .4byte 0x03005AEC +_08051254: .4byte 0x02022C0C +_08051258: .4byte 0x02023EB8 +_0805125C: .4byte 0x0828988F +_08051260: + ldr r1, _08051270 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] +_08051268: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08051270: .4byte 0x02023EB8 + thumb_func_end atk91_givepaydaymoney + + thumb_func_start atk92_setlightscreen +atk92_setlightscreen: @ 0x08051274 + push {r4, r5, r6, lr} + ldr r5, _080512A4 + ldrb r0, [r5] + bl GetBattlerPosition + ldr r4, _080512A8 + movs r6, #1 + adds r1, r6, #0 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r1, [r1] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080512B4 + ldr r2, _080512AC + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + ldr r1, _080512B0 + movs r0, #0 + b _08051328 + .align 2, 0 +_080512A4: .4byte 0x02023EAF +_080512A8: .4byte 0x02023F32 +_080512AC: .4byte 0x02023F20 +_080512B0: .4byte 0x02023FD6 +_080512B4: + ldrb r0, [r5] + bl GetBattlerPosition + adds r1, r6, #0 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r0, [r1] + movs r2, #2 + orrs r0, r2 + strh r0, [r1] + ldrb r0, [r5] + bl GetBattlerPosition + ldr r4, _08051318 + adds r1, r6, #0 + ands r1, r0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #5 + strb r1, [r0, #2] + ldrb r0, [r5] + bl GetBattlerPosition + adds r1, r6, #0 + ands r1, r0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r1, [r5] + strb r1, [r0, #3] + ldr r0, _0805131C + ldr r0, [r0] + ands r0, r6 + cmp r0, #0 + beq _08051324 + movs r0, #1 + bl CountAliveMonsInBattle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _08051324 + ldr r1, _08051320 + movs r0, #4 + b _08051328 + .align 2, 0 +_08051318: .4byte 0x02023F38 +_0805131C: .4byte 0x02022C90 +_08051320: .4byte 0x02023FD6 +_08051324: + ldr r1, _08051338 + movs r0, #3 +_08051328: + strb r0, [r1, #5] + ldr r1, _0805133C + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08051338: .4byte 0x02023FD6 +_0805133C: .4byte 0x02023EB8 + thumb_func_end atk92_setlightscreen + + thumb_func_start atk93_tryKO +atk93_tryKO: @ 0x08051340 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r7, _0805136C + ldr r6, _08051370 + ldrb r2, [r6] + movs r5, #0x58 + adds r0, r2, #0 + muls r0, r5, r0 + adds r1, r0, r7 + ldrh r0, [r1, #0x2e] + cmp r0, #0xaf + bne _08051378 + ldr r1, _08051374 + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r4, [r0, #7] + ldrb r6, [r0, #0x1a] + b _08051392 + .align 2, 0 +_0805136C: .4byte 0x02023D28 +_08051370: .4byte 0x02023EB0 +_08051374: .4byte 0x020240A8 +_08051378: + ldrh r0, [r1, #0x2e] + bl sub_080D6CF8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldrb r0, [r6] + muls r0, r5, r0 + adds r0, r0, r7 + ldrh r0, [r0, #0x2e] + bl sub_080D6D1C + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_08051392: + ldr r1, _0805140C + ldr r5, _08051410 + ldrb r0, [r5] + strb r0, [r1] + cmp r4, #0x27 + bne _080513D0 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r6 + bhs _080513D0 + ldrb r0, [r5] + movs r1, #0x27 + bl RecordItemEffectBattle + ldr r2, _08051414 + ldrb r1, [r5] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0] +_080513D0: + ldr r1, _08051418 + ldr r2, _08051410 + ldrb r3, [r2] + movs r6, #0x58 + adds r0, r3, #0 + muls r0, r6, r0 + adds r5, r0, r1 + adds r0, r5, #0 + adds r0, #0x20 + ldrb r4, [r0] + mov r8, r1 + mov sb, r2 + cmp r4, #5 + bne _0805142C + ldr r2, _0805141C + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08051420 + strb r4, [r0] + ldr r1, _08051424 + ldr r0, _08051428 + str r0, [r1] + mov r1, sb + ldrb r0, [r1] + movs r1, #5 + bl RecordAbilityBattle + b _08051680 + .align 2, 0 +_0805140C: .4byte 0x02023EB3 +_08051410: .4byte 0x02023EB0 +_08051414: .4byte 0x02024020 +_08051418: .4byte 0x02023D28 +_0805141C: .4byte 0x02023F20 +_08051420: .4byte 0x02023EAE +_08051424: .4byte 0x02023EB8 +_08051428: .4byte 0x08289ADA +_0805142C: + ldr r1, _080514A0 + lsls r0, r3, #2 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x18 + ands r0, r1 + cmp r0, #0 + bne _080514B0 + ldr r1, _080514A4 + ldr r0, _080514A8 + ldrh r0, [r0] + lsls r2, r0, #1 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r1 + ldr r7, _080514AC + ldrb r0, [r7] + muls r0, r6, r0 + add r0, r8 + adds r0, #0x2a + ldrb r0, [r0] + adds r1, r5, #0 + adds r1, #0x2a + ldrb r1, [r1] + subs r0, r0, r1 + ldrb r2, [r2, #3] + adds r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r0, #1 + cmp r0, r4 + blt _08051480 + b _08051618 +_08051480: + ldrb r0, [r7] + adds r1, r0, #0 + muls r1, r6, r1 + add r1, r8 + adds r1, #0x2a + mov r2, sb + ldrb r0, [r2] + muls r0, r6, r0 + add r0, r8 + adds r0, #0x2a + ldrb r1, [r1] + movs r4, #1 + ldrb r0, [r0] + cmp r1, r0 + bhs _08051546 + b _08051618 + .align 2, 0 +_080514A0: .4byte 0x02023F50 +_080514A4: .4byte 0x082ED220 +_080514A8: .4byte 0x02023E8E +_080514AC: .4byte 0x02023EAF +_080514B0: + ldr r1, _0805157C + lsls r0, r3, #3 + subs r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08051580 + ldrb r0, [r0, #0x15] + adds r7, r1, #0 + ldrb r3, [r7] + cmp r0, r3 + bne _080514DA + ldrb r0, [r7] + muls r0, r6, r0 + add r0, r8 + adds r0, #0x2a + adds r1, r5, #0 + adds r1, #0x2a + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bhs _08051552 +_080514DA: + ldr r1, _08051584 + ldr r0, _08051588 + ldrh r0, [r0] + lsls r2, r0, #1 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r1 + ldr r6, _0805158C + ldrb r0, [r7] + movs r5, #0x58 + muls r0, r5, r0 + adds r0, r0, r6 + adds r0, #0x2a + ldrb r1, [r0] + ldr r0, _08051590 + mov r8, r0 + ldrb r0, [r0] + muls r0, r5, r0 + adds r0, r0, r6 + adds r0, #0x2a + ldrb r0, [r0] + subs r1, r1, r0 + ldrb r2, [r2, #3] + adds r1, r1, r2 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r0, #1 + cmp r0, r4 + bge _08051544 + ldrb r0, [r7] + adds r1, r0, #0 + muls r1, r5, r1 + adds r1, r1, r6 + adds r1, #0x2a + mov r2, r8 + ldrb r0, [r2] + muls r0, r5, r0 + adds r0, r0, r6 + adds r0, #0x2a + ldrb r1, [r1] + movs r4, #1 + ldrb r0, [r0] + cmp r1, r0 + bhs _08051546 +_08051544: + movs r4, #0 +_08051546: + ldr r3, _0805158C + mov r8, r3 + ldr r0, _08051590 + mov sb, r0 + cmp r4, #0 + beq _08051618 +_08051552: + ldr r0, _08051594 + mov r1, sb + ldrb r2, [r1] + lsls r1, r2, #4 + adds r1, r1, r0 + ldrb r0, [r1] + lsls r0, r0, #0x1e + cmp r0, #0 + bge _080515A0 + ldr r1, _08051598 + movs r0, #0x58 + muls r0, r2, r0 + add r0, r8 + ldrh r0, [r0, #0x28] + subs r0, #1 + str r0, [r1] + ldr r2, _0805159C + ldrb r0, [r2] + movs r1, #0x40 + b _080515FE + .align 2, 0 +_0805157C: .4byte 0x02023F60 +_08051580: .4byte 0x02023EAF +_08051584: .4byte 0x082ED220 +_08051588: .4byte 0x02023E8E +_0805158C: .4byte 0x02023D28 +_08051590: .4byte 0x02023EB0 +_08051594: .4byte 0x02023FE0 +_08051598: .4byte 0x02023E94 +_0805159C: .4byte 0x02023F20 +_080515A0: + ldr r0, _080515DC + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1] + lsrs r0, r0, #7 + cmp r0, #0 + beq _080515EC + ldr r1, _080515E0 + movs r3, #0x58 + adds r0, r2, #0 + muls r0, r3, r0 + add r0, r8 + ldrh r0, [r0, #0x28] + subs r0, #1 + str r0, [r1] + ldr r2, _080515E4 + ldrb r0, [r2] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2] + ldr r1, _080515E8 + mov r2, sb + ldrb r0, [r2] + muls r0, r3, r0 + add r0, r8 + ldrh r0, [r0, #0x2e] + strh r0, [r1] + b _08051602 + .align 2, 0 +_080515DC: .4byte 0x02024020 +_080515E0: .4byte 0x02023E94 +_080515E4: .4byte 0x02023F20 +_080515E8: .4byte 0x02023EAC +_080515EC: + ldr r1, _0805160C + movs r0, #0x58 + muls r0, r2, r0 + add r0, r8 + ldrh r0, [r0, #0x28] + str r0, [r1] + ldr r2, _08051610 + ldrb r0, [r2] + movs r1, #0x10 +_080515FE: + orrs r0, r1 + strb r0, [r2] +_08051602: + ldr r1, _08051614 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] + b _08051680 + .align 2, 0 +_0805160C: .4byte 0x02023E94 +_08051610: .4byte 0x02023F20 +_08051614: .4byte 0x02023EB8 +_08051618: + ldr r2, _0805164C + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + ldr r3, _08051650 + ldr r0, _08051654 + ldrb r0, [r0] + movs r2, #0x58 + adds r1, r0, #0 + muls r1, r2, r1 + adds r1, r1, r3 + adds r1, #0x2a + ldr r0, _08051658 + ldrb r0, [r0] + muls r0, r2, r0 + adds r0, r0, r3 + adds r0, #0x2a + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + blo _08051660 + ldr r1, _0805165C + movs r0, #0 + b _08051664 + .align 2, 0 +_0805164C: .4byte 0x02023F20 +_08051650: .4byte 0x02023D28 +_08051654: .4byte 0x02023EAF +_08051658: .4byte 0x02023EB0 +_0805165C: .4byte 0x02023FD6 +_08051660: + ldr r1, _0805168C + movs r0, #1 +_08051664: + strb r0, [r1, #5] + ldr r3, _08051690 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] +_08051680: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805168C: .4byte 0x02023FD6 +_08051690: .4byte 0x02023EB8 + thumb_func_end atk93_tryKO + + thumb_func_start atk94_damagetohalftargethp +atk94_damagetohalftargethp: @ 0x08051694 + push {lr} + ldr r3, _080516C0 + ldr r2, _080516C4 + ldr r0, _080516C8 + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + ldrh r0, [r0, #0x28] + lsrs r0, r0, #1 + str r0, [r3] + cmp r0, #0 + bne _080516B2 + movs r0, #1 + str r0, [r3] +_080516B2: + ldr r1, _080516CC + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080516C0: .4byte 0x02023E94 +_080516C4: .4byte 0x02023D28 +_080516C8: .4byte 0x02023EB0 +_080516CC: .4byte 0x02023EB8 + thumb_func_end atk94_damagetohalftargethp + + thumb_func_start atk95_setsandstorm +atk95_setsandstorm: @ 0x080516D0 + push {lr} + ldr r2, _080516F0 + ldrh r1, [r2] + movs r0, #0x18 + ands r0, r1 + cmp r0, #0 + beq _080516FC + ldr r2, _080516F4 + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + ldr r1, _080516F8 + movs r0, #2 + strb r0, [r1, #5] + b _0805170E + .align 2, 0 +_080516F0: .4byte 0x02024070 +_080516F4: .4byte 0x02023F20 +_080516F8: .4byte 0x02023FD6 +_080516FC: + movs r0, #8 + strh r0, [r2] + ldr r1, _0805171C + movs r0, #3 + strb r0, [r1, #5] + ldr r0, _08051720 + adds r0, #0x28 + movs r1, #5 + strb r1, [r0] +_0805170E: + ldr r1, _08051724 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0805171C: .4byte 0x02023FD6 +_08051720: .4byte 0x02024074 +_08051724: .4byte 0x02023EB8 + thumb_func_end atk95_setsandstorm + + thumb_func_start atk96_weatherdamage +atk96_weatherdamage: @ 0x08051728 + push {r4, r5, lr} + sub sp, #4 + movs r0, #0 + str r0, [sp] + movs r0, #0x13 + movs r1, #0 + movs r2, #0xd + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _08051746 + b _08051858 +_08051746: + str r0, [sp] + movs r0, #0x13 + movs r1, #0 + movs r2, #0x4d + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0805175C + b _08051858 +_0805175C: + ldr r2, _080517D0 + ldrh r1, [r2] + movs r0, #0x18 + ands r0, r1 + adds r4, r2, #0 + ldr r5, _080517D4 + cmp r0, #0 + beq _080517EA + ldr r0, _080517D8 + ldrb r2, [r5] + movs r1, #0x58 + muls r1, r2, r1 + adds r3, r1, r0 + adds r0, r3, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #5 + beq _080517E4 + cmp r0, #8 + beq _080517E4 + cmp r0, #4 + beq _080517E4 + adds r0, r3, #0 + adds r0, #0x22 + ldrb r0, [r0] + cmp r0, #5 + beq _080517E4 + cmp r0, #8 + beq _080517E4 + cmp r0, #4 + beq _080517E4 + adds r0, r3, #0 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #8 + beq _080517E4 + ldr r0, _080517DC + lsls r1, r2, #2 + adds r1, r1, r0 + ldr r1, [r1] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080517E4 + movs r0, #0x80 + lsls r0, r0, #0xb + ands r1, r0 + cmp r1, #0 + bne _080517E4 + ldr r1, _080517E0 + ldrh r0, [r3, #0x2c] + lsrs r0, r0, #4 + str r0, [r1] + cmp r0, #0 + bne _080517EA + movs r0, #1 + b _080517E8 + .align 2, 0 +_080517D0: .4byte 0x02024070 +_080517D4: .4byte 0x02023EAF +_080517D8: .4byte 0x02023D28 +_080517DC: .4byte 0x02023F50 +_080517E0: .4byte 0x02023E94 +_080517E4: + ldr r1, _08051840 + movs r0, #0 +_080517E8: + str r0, [r1] +_080517EA: + ldrh r1, [r4] + movs r4, #0x80 + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + beq _08051860 + ldr r1, _08051844 + ldrb r3, [r5] + movs r0, #0x58 + muls r0, r3, r0 + adds r2, r0, r1 + adds r0, r2, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0xf + beq _0805184C + adds r0, r2, #0 + adds r0, #0x22 + ldrb r0, [r0] + cmp r0, #0xf + beq _0805184C + ldr r0, _08051848 + lsls r1, r3, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r1, #0 + ands r0, r4 + cmp r0, #0 + bne _0805184C + movs r0, #0x80 + lsls r0, r0, #0xb + ands r1, r0 + cmp r1, #0 + bne _0805184C + ldr r1, _08051840 + ldrh r0, [r2, #0x2c] + lsrs r0, r0, #4 + str r0, [r1] + cmp r0, #0 + bne _08051860 + movs r0, #1 + str r0, [r1] + b _08051860 + .align 2, 0 +_08051840: .4byte 0x02023E94 +_08051844: .4byte 0x02023D28 +_08051848: .4byte 0x02023F50 +_0805184C: + ldr r1, _08051854 + movs r0, #0 + str r0, [r1] + b _08051860 + .align 2, 0 +_08051854: .4byte 0x02023E94 +_08051858: + ldr r1, _0805188C + movs r0, #0 + str r0, [r1] + ldr r5, _08051890 +_08051860: + ldr r0, _08051894 + ldrb r1, [r0] + ldr r2, _08051898 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _0805187A + ldr r1, _0805188C + movs r0, #0 + str r0, [r1] +_0805187A: + ldr r1, _0805189C + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0805188C: .4byte 0x02023E94 +_08051890: .4byte 0x02023EAF +_08051894: .4byte 0x02023EB4 +_08051898: .4byte 0x082FACB4 +_0805189C: .4byte 0x02023EB8 + thumb_func_end atk96_weatherdamage + + thumb_func_start atk97_tryinfatuating +atk97_tryinfatuating: @ 0x080518A0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r4, _080518CC + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080518D8 + ldr r1, _080518D0 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _080518D4 + b _080518E8 + .align 2, 0 +_080518CC: .4byte 0x02023EAF +_080518D0: .4byte 0x02023D12 +_080518D4: .4byte 0x02024190 +_080518D8: + ldr r1, _0805190C + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _08051910 +_080518E8: + adds r5, r1, r0 + ldr r4, _08051914 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805191C + ldr r1, _0805190C + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _08051918 + b _0805192C + .align 2, 0 +_0805190C: .4byte 0x02023D12 +_08051910: .4byte 0x020243E8 +_08051914: .4byte 0x02023EB0 +_08051918: .4byte 0x02024190 +_0805191C: + ldr r1, _08051988 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _0805198C +_0805192C: + adds r4, r1, r0 + adds r0, r5, #0 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 + adds r0, r5, #0 + movs r1, #0 + bl GetMonData + mov sb, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + adds r0, r4, #0 + movs r1, #0 + bl GetMonData + adds r7, r0, #0 + ldr r5, _08051990 + ldrb r0, [r5] + movs r6, #0x58 + muls r0, r6, r0 + ldr r1, _08051994 + adds r0, r0, r1 + adds r0, #0x20 + ldrb r2, [r0] + cmp r2, #0xc + bne _080519A4 + ldr r1, _08051998 + ldr r0, _0805199C + str r0, [r1] + ldr r0, _080519A0 + strb r2, [r0] + ldrb r0, [r5] + movs r1, #0xc + bl RecordAbilityBattle + b _08051A3C + .align 2, 0 +_08051988: .4byte 0x02023D12 +_0805198C: .4byte 0x020243E8 +_08051990: .4byte 0x02023EB0 +_08051994: .4byte 0x02023D28 +_08051998: .4byte 0x02023EB8 +_0805199C: .4byte 0x08289B7D +_080519A0: .4byte 0x02023EAE +_080519A4: + mov r0, sl + mov r1, sb + bl GetGenderFromSpeciesAndPersonality + adds r4, r0, #0 + mov r0, r8 + adds r1, r7, #0 + bl GetGenderFromSpeciesAndPersonality + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + beq _080519F4 + ldrb r0, [r5] + muls r0, r6, r0 + ldr r4, _08051A10 + adds r4, #0x50 + adds r0, r0, r4 + ldr r0, [r0] + movs r1, #0xf0 + lsls r1, r1, #0xc + ands r0, r1 + cmp r0, #0 + bne _080519F4 + mov r0, sl + mov r1, sb + bl GetGenderFromSpeciesAndPersonality + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _080519F4 + mov r0, r8 + adds r1, r7, #0 + bl GetGenderFromSpeciesAndPersonality + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08051A18 +_080519F4: + ldr r3, _08051A14 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08051A3C + .align 2, 0 +_08051A10: .4byte 0x02023D28 +_08051A14: .4byte 0x02023EB8 +_08051A18: + ldrb r0, [r5] + adds r2, r0, #0 + muls r2, r6, r2 + adds r2, r2, r4 + ldr r1, _08051A4C + ldr r0, _08051A50 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + lsls r1, r1, #0x10 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + ldr r1, _08051A54 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] +_08051A3C: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08051A4C: .4byte 0x082FACB4 +_08051A50: .4byte 0x02023EAF +_08051A54: .4byte 0x02023EB8 + thumb_func_end atk97_tryinfatuating + + thumb_func_start atk98_updatestatusicon +atk98_updatestatusicon: @ 0x08051A58 + push {r4, r5, r6, r7, lr} + ldr r0, _08051AA0 + ldr r0, [r0] + cmp r0, #0 + bne _08051B44 + ldr r5, _08051AA4 + ldr r1, [r5] + ldrb r0, [r1, #1] + cmp r0, #4 + beq _08051AB0 + bl GetBattlerForBattleScript + ldr r4, _08051AA8 + strb r0, [r4] + ldr r3, _08051AAC + ldrb r1, [r4] + movs r0, #0x58 + adds r2, r1, #0 + muls r2, r0, r2 + adds r0, r3, #0 + adds r0, #0x4c + adds r0, r2, r0 + ldr r1, [r0] + adds r3, #0x50 + adds r2, r2, r3 + ldr r2, [r2] + movs r0, #0 + bl BtlController_EmitStatusIconUpdate + ldrb r0, [r4] + bl MarkBattlerForControllerExec + ldr r0, [r5] + adds r0, #2 + str r0, [r5] + b _08051B44 + .align 2, 0 +_08051AA0: .4byte 0x02023D0C +_08051AA4: .4byte 0x02023EB8 +_08051AA8: .4byte 0x02023D08 +_08051AAC: .4byte 0x02023D28 +_08051AB0: + ldr r4, _08051B4C + ldr r5, _08051B50 + ldrb r0, [r5] + strb r0, [r4] + ldr r6, _08051B54 + ldrb r1, [r6] + ldr r7, _08051B58 + ldrb r2, [r4] + lsls r0, r2, #2 + adds r0, r0, r7 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _08051AEC + ldr r3, _08051B5C + movs r0, #0x58 + muls r2, r0, r2 + adds r0, r3, #0 + adds r0, #0x4c + adds r0, r2, r0 + ldr r1, [r0] + adds r3, #0x50 + adds r2, r2, r3 + ldr r2, [r2] + movs r0, #0 + bl BtlController_EmitStatusIconUpdate + ldrb r0, [r4] + bl MarkBattlerForControllerExec +_08051AEC: + ldr r0, _08051B60 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08051B3C + ldrb r0, [r5] + bl GetBattlerPosition + movs r1, #2 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + strb r0, [r4] + ldrb r1, [r6] + ldrb r2, [r4] + lsls r0, r2, #2 + adds r0, r0, r7 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _08051B3C + ldr r3, _08051B5C + movs r0, #0x58 + muls r2, r0, r2 + adds r0, r3, #0 + adds r0, #0x4c + adds r0, r2, r0 + ldr r1, [r0] + adds r3, #0x50 + adds r2, r2, r3 + ldr r2, [r2] + movs r0, #0 + bl BtlController_EmitStatusIconUpdate + ldrb r0, [r4] + bl MarkBattlerForControllerExec +_08051B3C: + ldr r1, _08051B64 + ldr r0, [r1] + adds r0, #2 + str r0, [r1] +_08051B44: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08051B4C: .4byte 0x02023D08 +_08051B50: .4byte 0x02023EAF +_08051B54: .4byte 0x02023EB4 +_08051B58: .4byte 0x082FACB4 +_08051B5C: .4byte 0x02023D28 +_08051B60: .4byte 0x02022C90 +_08051B64: .4byte 0x02023EB8 + thumb_func_end atk98_updatestatusicon + + thumb_func_start atk99_setmist +atk99_setmist: @ 0x08051B68 + push {r4, r5, r6, lr} + ldr r6, _08051B98 + ldr r4, _08051B9C + ldrb r0, [r4] + bl GetBattlerPosition + movs r5, #1 + adds r1, r5, #0 + ands r1, r0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r0, [r0, #4] + cmp r0, #0 + beq _08051BA8 + ldr r2, _08051BA0 + ldrb r0, [r2] + movs r1, #0x20 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08051BA4 + strb r5, [r0, #5] + b _08051BF6 + .align 2, 0 +_08051B98: .4byte 0x02023F38 +_08051B9C: .4byte 0x02023EAF +_08051BA0: .4byte 0x02023F20 +_08051BA4: .4byte 0x02023FD6 +_08051BA8: + ldrb r0, [r4] + bl GetBattlerPosition + adds r1, r5, #0 + ands r1, r0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #5 + strb r1, [r0, #4] + ldrb r0, [r4] + bl GetBattlerPosition + adds r1, r5, #0 + ands r1, r0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r1, [r4] + strb r1, [r0, #5] + ldrb r0, [r4] + bl GetBattlerPosition + ldr r2, _08051C04 + adds r1, r5, #0 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r2, [r1] + movs r3, #0x80 + lsls r3, r3, #1 + adds r0, r3, #0 + movs r3, #0 + orrs r0, r2 + strh r0, [r1] + ldr r0, _08051C08 + strb r3, [r0, #5] +_08051BF6: + ldr r1, _08051C0C + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08051C04: .4byte 0x02023F32 +_08051C08: .4byte 0x02023FD6 +_08051C0C: .4byte 0x02023EB8 + thumb_func_end atk99_setmist + + thumb_func_start atk9A_setfocusenergy +atk9A_setfocusenergy: @ 0x08051C10 + push {lr} + ldr r1, _08051C40 + ldr r0, _08051C44 + ldrb r2, [r0] + movs r0, #0x58 + muls r0, r2, r0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r1, [r0] + movs r3, #0x80 + lsls r3, r3, #0xd + adds r2, r1, #0 + ands r2, r3 + cmp r2, #0 + beq _08051C50 + ldr r2, _08051C48 + ldrb r0, [r2] + movs r1, #0x20 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08051C4C + movs r0, #1 + strb r0, [r1, #5] + b _08051C58 + .align 2, 0 +_08051C40: .4byte 0x02023D28 +_08051C44: .4byte 0x02023EAF +_08051C48: .4byte 0x02023F20 +_08051C4C: .4byte 0x02023FD6 +_08051C50: + orrs r1, r3 + str r1, [r0] + ldr r0, _08051C64 + strb r2, [r0, #5] +_08051C58: + ldr r1, _08051C68 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08051C64: .4byte 0x02023FD6 +_08051C68: .4byte 0x02023EB8 + thumb_func_end atk9A_setfocusenergy + + thumb_func_start atk9B_transformdataexecution +atk9B_transformdataexecution: @ 0x08051C6C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r1, _08051CC4 + ldr r2, _08051CC8 + adds r0, r2, #0 + strh r0, [r1] + ldr r1, _08051CCC + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + ldr r7, _08051CD0 + ldr r0, _08051CD4 + mov ip, r0 + ldrb r1, [r0] + movs r6, #0x58 + adds r0, r1, #0 + muls r0, r6, r0 + adds r5, r7, #0 + adds r5, #0x50 + adds r0, r0, r5 + ldr r0, [r0] + movs r4, #0x80 + lsls r4, r4, #0xe + ands r0, r4 + cmp r0, #0 + bne _08051CB2 + ldr r0, _08051CD8 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r2, [r1] + ldr r0, _08051CDC + ands r2, r0 + cmp r2, #0 + beq _08051CE8 +_08051CB2: + ldr r2, _08051CE0 + ldrb r0, [r2] + movs r1, #0x20 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08051CE4 + movs r0, #1 + b _08051DFC + .align 2, 0 +_08051CC4: .4byte 0x02023E90 +_08051CC8: .4byte 0x0000FFFF +_08051CCC: .4byte 0x02023EB8 +_08051CD0: .4byte 0x02023D28 +_08051CD4: .4byte 0x02023EB0 +_08051CD8: .4byte 0x02023F50 +_08051CDC: .4byte 0x000400C0 +_08051CE0: .4byte 0x02023F20 +_08051CE4: .4byte 0x02023FD6 +_08051CE8: + ldr r3, _08051DBC + ldrb r0, [r3] + adds r1, r0, #0 + muls r1, r6, r1 + adds r1, r1, r5 + ldr r0, [r1] + orrs r0, r4 + str r0, [r1] + ldr r4, _08051DC0 + ldrb r1, [r3] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + strh r2, [r0, #4] + ldrb r0, [r3] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r2, [r1, #0xb] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #0xb] + ldrb r1, [r3] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + mov r2, ip + ldrb r1, [r2] + muls r1, r6, r1 + adds r2, r7, #0 + adds r2, #0x48 + adds r1, r1, r2 + ldr r1, [r1] + str r1, [r0] + ldrb r0, [r3] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r2, [r1, #0x18] + movs r0, #0xf + ands r0, r2 + strb r0, [r1, #0x18] + ldr r1, _08051DC4 + movs r0, #0xfd + strb r0, [r1] + movs r0, #6 + strb r0, [r1, #1] + mov r2, ip + ldrb r0, [r2] + muls r0, r6, r0 + adds r0, r0, r7 + ldrh r0, [r0] + strb r0, [r1, #2] + ldrb r0, [r2] + muls r0, r6, r0 + adds r0, r0, r7 + ldrh r0, [r0] + lsrs r0, r0, #8 + strb r0, [r1, #3] + movs r0, #0xff + strb r0, [r1, #4] + ldrb r0, [r3] + muls r0, r6, r0 + adds r5, r0, r7 + ldrb r0, [r2] + muls r0, r6, r0 + adds r2, r0, r7 + movs r4, #0 + adds r6, r3, #0 + ldr r0, _08051DC8 + mov r8, r0 +_08051D80: + adds r0, r5, r4 + adds r1, r2, r4 + ldrb r1, [r1] + strb r1, [r0] + adds r4, #1 + cmp r4, #0x23 + bls _08051D80 + movs r4, #0 + ldr r7, _08051DCC + ldr r3, _08051DD0 + adds r5, r3, #0 + adds r5, #0x18 +_08051D98: + lsls r1, r4, #1 + ldrb r2, [r6] + movs r0, #0x58 + muls r2, r0, r2 + adds r1, r1, r2 + adds r1, r1, r3 + ldrh r1, [r1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrb r1, [r0, #4] + cmp r1, #4 + bhi _08051DD4 + adds r0, r4, r2 + adds r0, r0, r5 + b _08051DDA + .align 2, 0 +_08051DBC: .4byte 0x02023EAF +_08051DC0: .4byte 0x02023F60 +_08051DC4: .4byte 0x02022C0C +_08051DC8: .4byte 0x02023D08 +_08051DCC: .4byte 0x082ED220 +_08051DD0: .4byte 0x02023D34 +_08051DD4: + adds r0, r4, r2 + adds r0, r0, r5 + movs r1, #5 +_08051DDA: + strb r1, [r0] + adds r4, #1 + cmp r4, #3 + ble _08051D98 + ldrb r0, [r6] + mov r1, r8 + strb r0, [r1] + movs r0, #0 + movs r1, #2 + bl BtlController_EmitResetActionMoveSelection + mov r2, r8 + ldrb r0, [r2] + bl MarkBattlerForControllerExec + ldr r1, _08051E08 + movs r0, #0 +_08051DFC: + strb r0, [r1, #5] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08051E08: .4byte 0x02023FD6 + thumb_func_end atk9B_transformdataexecution + + thumb_func_start atk9C_setsubstitute +atk9C_setsubstitute: @ 0x08051E0C + push {r4, r5, r6, r7, lr} + ldr r7, _08051E3C + ldr r6, _08051E40 + ldrb r0, [r6] + movs r5, #0x58 + muls r0, r5, r0 + adds r3, r0, r7 + ldrh r0, [r3, #0x2c] + lsrs r1, r0, #2 + adds r2, r1, #0 + cmp r1, #0 + bne _08051E26 + movs r2, #1 +_08051E26: + ldrh r0, [r3, #0x28] + cmp r0, r2 + bhi _08051E4C + ldr r1, _08051E44 + movs r0, #0 + str r0, [r1] + ldr r1, _08051E48 + movs r0, #1 + strb r0, [r1, #5] + b _08051EA0 + .align 2, 0 +_08051E3C: .4byte 0x02023D28 +_08051E40: .4byte 0x02023EAF +_08051E44: .4byte 0x02023E94 +_08051E48: .4byte 0x02023FD6 +_08051E4C: + ldr r4, _08051EB0 + str r1, [r4] + cmp r1, #0 + bne _08051E58 + movs r0, #1 + str r0, [r4] +_08051E58: + ldrb r0, [r6] + adds r2, r0, #0 + muls r2, r5, r2 + adds r3, r7, #0 + adds r3, #0x50 + adds r2, r2, r3 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0x11 + orrs r0, r1 + str r0, [r2] + ldrb r0, [r6] + adds r1, r0, #0 + muls r1, r5, r1 + adds r1, r1, r3 + ldr r0, [r1] + ldr r2, _08051EB4 + ands r0, r2 + str r0, [r1] + ldr r2, _08051EB8 + ldrb r1, [r6] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, [r4] + movs r2, #0 + strb r1, [r0, #0xa] + ldr r0, _08051EBC + strb r2, [r0, #5] + ldr r2, _08051EC0 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #1 + orrs r0, r1 + str r0, [r2] +_08051EA0: + ldr r1, _08051EC4 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08051EB0: .4byte 0x02023E94 +_08051EB4: .4byte 0xFFFF1FFF +_08051EB8: .4byte 0x02023F60 +_08051EBC: .4byte 0x02023FD6 +_08051EC0: .4byte 0x02023F24 +_08051EC4: .4byte 0x02023EB8 + thumb_func_end atk9C_setsubstitute + + thumb_func_start IsMoveUncopyableByMimic +IsMoveUncopyableByMimic: @ 0x08051EC8 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + movs r3, #0 + ldr r0, _08051F08 + ldrh r1, [r0] + ldr r4, _08051F0C + adds r5, r0, #0 + cmp r1, r4 + beq _08051EF0 + cmp r1, r2 + beq _08051EF0 + adds r1, r5, #0 +_08051EE2: + adds r1, #2 + adds r3, #1 + ldrh r0, [r1] + cmp r0, r4 + beq _08051EF0 + cmp r0, r2 + bne _08051EE2 +_08051EF0: + lsls r0, r3, #1 + adds r0, r0, r5 + ldrh r1, [r0] + ldr r0, _08051F0C + eors r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08051F08: .4byte 0x082ECD64 +_08051F0C: .4byte 0x0000FFFE + thumb_func_end IsMoveUncopyableByMimic + + thumb_func_start atk9D_mimicattackcopy +atk9D_mimicattackcopy: @ 0x08051F10 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _08051F88 + ldr r1, _08051F8C + adds r7, r1, #0 + strh r7, [r0] + ldr r5, _08051F90 + ldr r6, _08051F94 + ldrb r0, [r6] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r0, [r0] + bl IsMoveUncopyableByMimic + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08051F6A + ldr r3, _08051F98 + ldr r2, _08051F9C + ldrb r1, [r2] + movs r0, #0x58 + adds r4, r1, #0 + muls r4, r0, r4 + adds r0, r3, #0 + adds r0, #0x50 + adds r0, r4, r0 + ldr r1, [r0] + movs r0, #0x80 + lsls r0, r0, #0xe + ands r1, r0 + mov ip, r3 + mov sb, r2 + cmp r1, #0 + bne _08051F6A + ldrb r0, [r6] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r1, [r0] + cmp r1, #0 + beq _08051F6A + cmp r1, r7 + bne _08051FA4 +_08051F6A: + ldr r3, _08051FA0 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _080520DC + .align 2, 0 +_08051F88: .4byte 0x02023E90 +_08051F8C: .4byte 0x0000FFFF +_08051F90: .4byte 0x02023EEC +_08051F94: .4byte 0x02023EB0 +_08051F98: .4byte 0x02023D28 +_08051F9C: .4byte 0x02023EAF +_08051FA0: .4byte 0x02023EB8 +_08051FA4: + movs r2, #0 + mov r3, ip + adds r3, #0xc + adds r0, r4, r3 + ldrh r0, [r0] + ldr r4, _08052034 + mov sl, r4 + cmp r0, r1 + beq _08051FDE + mov r8, r3 + adds r7, r5, #0 + adds r5, r6, #0 + mov r4, sb + movs r3, #0x58 +_08051FC0: + adds r2, #1 + cmp r2, #3 + bgt _08051FDE + lsls r1, r2, #1 + ldrb r0, [r4] + muls r0, r3, r0 + adds r1, r1, r0 + add r1, r8 + ldrb r0, [r5] + lsls r0, r0, #1 + adds r0, r0, r7 + ldrh r1, [r1] + ldrh r0, [r0] + cmp r1, r0 + bne _08051FC0 +_08051FDE: + cmp r2, #4 + bne _080520C0 + ldr r5, _08052038 + ldrb r1, [r5] + lsls r1, r1, #1 + mov r2, sb + ldrb r0, [r2] + movs r6, #0x58 + muls r0, r6, r0 + adds r1, r1, r0 + mov r0, ip + adds r0, #0xc + adds r1, r1, r0 + ldr r2, _0805203C + ldr r3, _08052040 + ldrb r0, [r3] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r1] + ldr r4, _08052044 + ldrb r0, [r3] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r4, [r0, #4] + cmp r4, #4 + bhi _08052048 + mov r1, sb + ldrb r0, [r1] + muls r0, r6, r0 + ldrb r1, [r5] + adds r0, r0, r1 + mov r1, ip + adds r1, #0x24 + adds r0, r0, r1 + strb r4, [r0] + b _0805205C + .align 2, 0 +_08052034: .4byte 0x02023EB8 +_08052038: .4byte 0x02023E8C +_0805203C: .4byte 0x02023EEC +_08052040: .4byte 0x02023EB0 +_08052044: .4byte 0x082ED220 +_08052048: + mov r4, sb + ldrb r0, [r4] + muls r0, r6, r0 + ldrb r1, [r5] + adds r0, r0, r1 + mov r1, ip + adds r1, #0x24 + adds r0, r0, r1 + movs r1, #5 + strb r1, [r0] +_0805205C: + ldr r1, _080520B4 + movs r0, #0xfd + strb r0, [r1] + movs r0, #2 + strb r0, [r1, #1] + ldrb r0, [r3] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strb r0, [r1, #2] + ldrb r0, [r3] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + lsrs r0, r0, #8 + strb r0, [r1, #3] + movs r0, #0xff + strb r0, [r1, #4] + ldr r1, _080520B8 + mov r2, sb + ldrb r0, [r2] + lsls r2, r0, #3 + subs r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r1 + ldrb r4, [r2, #0x18] + lsrs r3, r4, #4 + ldr r1, _080520BC + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + orrs r1, r3 + lsls r1, r1, #4 + movs r0, #0xf + ands r0, r4 + orrs r0, r1 + strb r0, [r2, #0x18] + mov r4, sl + ldr r0, [r4] + adds r0, #5 + str r0, [r4] + b _080520DC + .align 2, 0 +_080520B4: .4byte 0x02022C0C +_080520B8: .4byte 0x02023F60 +_080520BC: .4byte 0x082FACB4 +_080520C0: + mov r0, sl + ldr r2, [r0] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + mov r2, sl + str r1, [r2] +_080520DC: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end atk9D_mimicattackcopy + + thumb_func_start atk9E_metronome +atk9E_metronome: @ 0x080520EC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r7, _0805216C + movs r6, #0xb1 + lsls r6, r6, #1 + ldr r5, _08052170 + ldr r0, _08052174 + mov r8, r0 +_080520FE: + bl Random + ldr r2, _08052178 + adds r1, r2, #0 + ands r0, r1 + adds r0, #1 + strh r0, [r7] + cmp r0, r6 + bhi _080520FE + movs r0, #3 +_08052112: + subs r0, #1 + cmp r0, #0 + bge _08052112 + ldr r4, _0805216C + ldrh r2, [r4] + ldr r3, _0805217C + subs r0, r5, #2 +_08052120: + adds r0, #2 + ldrh r1, [r0] + cmp r1, r2 + beq _0805212C + cmp r1, r3 + bne _08052120 +_0805212C: + ldr r0, _0805217C + cmp r1, r0 + bne _080520FE + ldr r2, _08052180 + ldr r0, [r2] + ldr r1, _08052184 + ands r0, r1 + str r0, [r2] + ldr r3, _08052188 + ldr r2, _0805218C + ldrh r1, [r4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r3 + ldr r0, [r0] + mov r1, r8 + str r0, [r1] + ldrh r0, [r4] + movs r1, #0 + bl GetMoveTarget + ldr r1, _08052190 + strb r0, [r1] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805216C: .4byte 0x02023E8E +_08052170: .4byte 0x082ECD64 +_08052174: .4byte 0x02023EB8 +_08052178: .4byte 0x000001FF +_0805217C: .4byte 0x0000FFFF +_08052180: .4byte 0x02023F24 +_08052184: .4byte 0xFFFFFBFF +_08052188: .4byte 0x08286C30 +_0805218C: .4byte 0x082ED220 +_08052190: .4byte 0x02023EB0 + thumb_func_end atk9E_metronome + + thumb_func_start atk9F_dmgtolevel +atk9F_dmgtolevel: @ 0x08052194 + ldr r3, _080521B4 + ldr r2, _080521B8 + ldr r0, _080521BC + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + adds r0, #0x2a + ldrb r0, [r0] + str r0, [r3] + ldr r1, _080521C0 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + bx lr + .align 2, 0 +_080521B4: .4byte 0x02023E94 +_080521B8: .4byte 0x02023D28 +_080521BC: .4byte 0x02023EAF +_080521C0: .4byte 0x02023EB8 + thumb_func_end atk9F_dmgtolevel + + thumb_func_start atkA0_psywavedamageeffect +atkA0_psywavedamageeffect: @ 0x080521C4 + push {r4, lr} + movs r4, #0xf +_080521C8: + bl Random + adds r3, r4, #0 + ands r3, r0 + cmp r3, #0xa + bgt _080521C8 + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r3, r0, #1 + ldr r4, _08052208 + ldr r2, _0805220C + ldr r0, _08052210 + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + adds r0, #0x2a + ldrb r1, [r0] + adds r0, r3, #0 + adds r0, #0x32 + muls r0, r1, r0 + movs r1, #0x64 + bl __divsi3 + str r0, [r4] + ldr r1, _08052214 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08052208: .4byte 0x02023E94 +_0805220C: .4byte 0x02023D28 +_08052210: .4byte 0x02023EAF +_08052214: .4byte 0x02023EB8 + thumb_func_end atkA0_psywavedamageeffect + + thumb_func_start atkA1_counterdamagecalculator +atkA1_counterdamagecalculator: @ 0x08052218 + push {r4, r5, r6, lr} + ldr r4, _08052288 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r5, _0805228C + ldrb r0, [r4] + lsls r0, r0, #4 + adds r0, r0, r5 + ldrb r0, [r0, #0xc] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldrb r0, [r4] + lsls r1, r0, #4 + adds r0, r5, #4 + adds r0, r1, r0 + ldr r3, [r0] + cmp r3, #0 + beq _080522CC + cmp r6, r2 + beq _080522CC + ldr r6, _08052290 + adds r0, r1, r5 + ldrb r0, [r0, #0xc] + movs r4, #0x58 + muls r0, r4, r0 + adds r0, r0, r6 + ldrh r0, [r0, #0x28] + cmp r0, #0 + beq _080522CC + ldr r1, _08052294 + lsls r0, r3, #1 + str r0, [r1] + ldr r1, _08052298 + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r1, r0, r1 + ldrb r0, [r1, #8] + cmp r0, #0 + beq _080522A0 + ldrb r1, [r1, #9] + adds r0, r1, #0 + muls r0, r4, r0 + adds r0, r0, r6 + ldrh r0, [r0, #0x28] + cmp r0, #0 + beq _080522A0 + ldr r0, _0805229C + strb r1, [r0] + b _080522B0 + .align 2, 0 +_08052288: .4byte 0x02023EAF +_0805228C: .4byte 0x02023FE0 +_08052290: .4byte 0x02023D28 +_08052294: .4byte 0x02023E94 +_08052298: .4byte 0x02023F38 +_0805229C: .4byte 0x02023EB0 +_080522A0: + ldr r2, _080522BC + ldr r1, _080522C0 + ldr r0, _080522C4 + ldrb r0, [r0] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrb r0, [r0, #0xc] + strb r0, [r2] +_080522B0: + ldr r1, _080522C8 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] + b _080522FC + .align 2, 0 +_080522BC: .4byte 0x02023EB0 +_080522C0: .4byte 0x02023FE0 +_080522C4: .4byte 0x02023EAF +_080522C8: .4byte 0x02023EB8 +_080522CC: + ldr r2, _08052304 + ldr r0, _08052308 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r2, #0x20 + orrs r1, r2 + strb r1, [r0] + ldr r3, _0805230C + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] +_080522FC: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08052304: .4byte 0x02024020 +_08052308: .4byte 0x02023EAF +_0805230C: .4byte 0x02023EB8 + thumb_func_end atkA1_counterdamagecalculator + + thumb_func_start atkA2_mirrorcoatdamagecalculator +atkA2_mirrorcoatdamagecalculator: @ 0x08052310 + push {r4, r5, r6, lr} + ldr r4, _08052380 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r5, _08052384 + ldrb r0, [r4] + lsls r0, r0, #4 + adds r0, r0, r5 + ldrb r0, [r0, #0xd] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldrb r0, [r4] + lsls r1, r0, #4 + adds r0, r5, #0 + adds r0, #8 + adds r0, r1, r0 + ldr r3, [r0] + cmp r3, #0 + beq _080523C4 + cmp r6, r2 + beq _080523C4 + ldr r6, _08052388 + adds r0, r1, r5 + ldrb r0, [r0, #0xd] + movs r4, #0x58 + muls r0, r4, r0 + adds r0, r0, r6 + ldrh r0, [r0, #0x28] + cmp r0, #0 + beq _080523C4 + ldr r1, _0805238C + lsls r0, r3, #1 + str r0, [r1] + ldr r1, _08052390 + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r1, r0, r1 + ldrb r0, [r1, #8] + cmp r0, #0 + beq _08052398 + ldrb r1, [r1, #9] + adds r0, r1, #0 + muls r0, r4, r0 + adds r0, r0, r6 + ldrh r0, [r0, #0x28] + cmp r0, #0 + beq _08052398 + ldr r0, _08052394 + strb r1, [r0] + b _080523A8 + .align 2, 0 +_08052380: .4byte 0x02023EAF +_08052384: .4byte 0x02023FE0 +_08052388: .4byte 0x02023D28 +_0805238C: .4byte 0x02023E94 +_08052390: .4byte 0x02023F38 +_08052394: .4byte 0x02023EB0 +_08052398: + ldr r2, _080523B4 + ldr r1, _080523B8 + ldr r0, _080523BC + ldrb r0, [r0] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrb r0, [r0, #0xd] + strb r0, [r2] +_080523A8: + ldr r1, _080523C0 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] + b _080523F4 + .align 2, 0 +_080523B4: .4byte 0x02023EB0 +_080523B8: .4byte 0x02023FE0 +_080523BC: .4byte 0x02023EAF +_080523C0: .4byte 0x02023EB8 +_080523C4: + ldr r2, _080523FC + ldr r0, _08052400 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r2, #0x20 + orrs r1, r2 + strb r1, [r0] + ldr r3, _08052404 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] +_080523F4: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080523FC: .4byte 0x02024020 +_08052400: .4byte 0x02023EAF +_08052404: .4byte 0x02023EB8 + thumb_func_end atkA2_mirrorcoatdamagecalculator + + thumb_func_start atkA3_disablelastusedattack +atkA3_disablelastusedattack: @ 0x08052408 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + movs r4, #0 + ldr r2, _08052508 + ldr r3, _0805250C + ldrb r1, [r3] + movs r0, #0x58 + muls r0, r1, r0 + adds r7, r2, #0 + adds r7, #0xc + adds r0, r0, r7 + ldr r5, _08052510 + lsls r1, r1, #1 + adds r1, r1, r5 + ldrh r0, [r0] + mov sb, r2 + adds r6, r3, #0 + ldr r2, _08052514 + mov r8, r2 + ldrh r1, [r1] + cmp r0, r1 + beq _0805245C + mov ip, r6 + movs r3, #0x58 +_0805243C: + adds r4, #1 + cmp r4, #3 + bgt _0805245C + lsls r2, r4, #1 + mov r0, ip + ldrb r1, [r0] + adds r0, r1, #0 + muls r0, r3, r0 + adds r2, r2, r0 + adds r2, r2, r7 + lsls r1, r1, #1 + adds r1, r1, r5 + ldrh r0, [r2] + ldrh r1, [r1] + cmp r0, r1 + bne _0805243C +_0805245C: + ldrb r1, [r6] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + ldrh r0, [r0, #4] + cmp r0, #0 + bne _08052520 + cmp r4, #4 + beq _08052520 + movs r5, #0x58 + adds r0, r1, #0 + muls r0, r5, r0 + adds r0, r4, r0 + mov r1, sb + adds r1, #0x24 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _08052520 + ldr r1, _08052518 + movs r0, #0xfd + strb r0, [r1] + movs r0, #2 + strb r0, [r1, #1] + lsls r2, r4, #1 + ldrb r0, [r6] + muls r0, r5, r0 + adds r0, r2, r0 + mov r3, sb + adds r3, #0xc + adds r0, r0, r3 + ldrh r0, [r0] + strb r0, [r1, #2] + ldrb r0, [r6] + muls r0, r5, r0 + adds r0, r2, r0 + adds r0, r0, r3 + ldrh r0, [r0] + lsrs r0, r0, #8 + strb r0, [r1, #3] + movs r0, #0xff + strb r0, [r1, #4] + ldrb r1, [r6] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + muls r1, r5, r1 + adds r2, r2, r1 + adds r2, r2, r3 + ldrh r1, [r2] + strh r1, [r0, #4] + bl Random + ldrb r2, [r6] + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + add r1, r8 + movs r2, #3 + ands r2, r0 + adds r2, #2 + ldrb r3, [r1, #0xb] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1, #0xb] + ldrb r0, [r6] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + add r1, r8 + ldrb r3, [r1, #0xb] + lsls r2, r3, #0x1c + lsrs r2, r2, #0x18 + movs r0, #0xf + ands r0, r3 + orrs r0, r2 + strb r0, [r1, #0xb] + ldr r1, _0805251C + ldr r0, [r1] + adds r0, #5 + str r0, [r1] + b _0805253A + .align 2, 0 +_08052508: .4byte 0x02023D28 +_0805250C: .4byte 0x02023EB0 +_08052510: .4byte 0x02023EEC +_08052514: .4byte 0x02023F60 +_08052518: .4byte 0x02022C0C +_0805251C: .4byte 0x02023EB8 +_08052520: + ldr r3, _08052548 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] +_0805253A: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08052548: .4byte 0x02023EB8 + thumb_func_end atkA3_disablelastusedattack + + thumb_func_start atkA4_trysetencore +atkA4_trysetencore: @ 0x0805254C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + movs r5, #0 + ldr r3, _08052640 + ldr r4, _08052644 + ldrb r1, [r4] + movs r0, #0x58 + muls r0, r1, r0 + adds r6, r3, #0 + adds r6, #0xc + adds r0, r0, r6 + ldr r2, _08052648 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r0] + mov sl, r3 + mov r8, r2 + ldr r2, _0805264C + mov sb, r2 + ldrh r1, [r1] + cmp r0, r1 + beq _080525A6 + mov ip, r4 + adds r7, r6, #0 + mov r6, r8 + movs r3, #0x58 +_08052586: + adds r5, #1 + cmp r5, #3 + bgt _080525A6 + lsls r2, r5, #1 + mov r0, ip + ldrb r1, [r0] + adds r0, r1, #0 + muls r0, r3, r0 + adds r2, r2, r0 + adds r2, r2, r7 + lsls r1, r1, #1 + adds r1, r1, r6 + ldrh r0, [r2] + ldrh r1, [r1] + cmp r0, r1 + bne _08052586 +_080525A6: + ldrb r0, [r4] + lsls r0, r0, #1 + add r0, r8 + ldrh r2, [r0] + cmp r2, #0xa5 + beq _080525BA + cmp r2, #0xe3 + beq _080525BA + cmp r2, #0x77 + bne _080525BC +_080525BA: + movs r5, #4 +_080525BC: + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + mov r2, sb + adds r3, r0, r2 + ldrh r0, [r3, #6] + cmp r0, #0 + bne _08052654 + cmp r5, #4 + beq _08052654 + movs r0, #0x58 + adds r2, r1, #0 + muls r2, r0, r2 + adds r0, r5, r2 + mov r1, sl + adds r1, #0x24 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _08052654 + lsls r0, r5, #1 + adds r0, r0, r2 + subs r1, #0x18 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r3, #6] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + add r0, sb + strb r5, [r0, #0xc] + bl Random + ldrb r2, [r4] + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + add r1, sb + movs r2, #3 + ands r2, r0 + adds r2, #3 + ldrb r3, [r1, #0xe] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1, #0xe] + ldrb r0, [r4] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + add r1, sb + ldrb r3, [r1, #0xe] + lsls r2, r3, #0x1c + lsrs r2, r2, #0x18 + movs r0, #0xf + ands r0, r3 + orrs r0, r2 + strb r0, [r1, #0xe] + ldr r1, _08052650 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] + b _0805266E + .align 2, 0 +_08052640: .4byte 0x02023D28 +_08052644: .4byte 0x02023EB0 +_08052648: .4byte 0x02023EEC +_0805264C: .4byte 0x02023F60 +_08052650: .4byte 0x02023EB8 +_08052654: + ldr r3, _0805267C + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] +_0805266E: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805267C: .4byte 0x02023EB8 + thumb_func_end atkA4_trysetencore + + thumb_func_start atkA5_painsplitdmgcalc +atkA5_painsplitdmgcalc: @ 0x08052680 + push {r4, r5, r6, r7, lr} + ldr r6, _08052700 + ldr r0, _08052704 + mov ip, r0 + ldrb r0, [r0] + movs r7, #0x58 + adds r2, r0, #0 + muls r2, r7, r2 + adds r0, r6, #0 + adds r0, #0x50 + adds r0, r2, r0 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + bne _08052720 + ldr r5, _08052708 + ldrb r0, [r5] + muls r0, r7, r0 + adds r0, r0, r6 + ldrh r3, [r0, #0x28] + adds r0, r2, r6 + ldrh r1, [r0, #0x28] + adds r3, r3, r1 + asrs r3, r3, #1 + ldr r4, _0805270C + subs r1, r1, r3 + str r1, [r4] + ldr r2, _08052710 + strb r1, [r2] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + asrs r0, r0, #8 + strb r0, [r2, #1] + movs r0, #0xff + lsls r0, r0, #0x10 + ands r0, r1 + asrs r0, r0, #0x10 + strb r0, [r2, #2] + lsrs r1, r1, #0x18 + strb r1, [r2, #3] + ldrb r0, [r5] + muls r0, r7, r0 + adds r0, r0, r6 + ldrh r0, [r0, #0x28] + subs r0, r0, r3 + str r0, [r4] + ldr r2, _08052714 + mov r0, ip + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #4 + adds r0, r0, r2 + ldr r1, _08052718 + str r1, [r0] + ldr r1, _0805271C + ldr r0, [r1] + adds r0, #5 + str r0, [r1] + b _0805273A + .align 2, 0 +_08052700: .4byte 0x02023D28 +_08052704: .4byte 0x02023EB0 +_08052708: .4byte 0x02023EAF +_0805270C: .4byte 0x02023E94 +_08052710: .4byte 0x02024118 +_08052714: .4byte 0x02024020 +_08052718: .4byte 0x0000FFFF +_0805271C: .4byte 0x02023EB8 +_08052720: + ldr r3, _08052740 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] +_0805273A: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08052740: .4byte 0x02023EB8 + thumb_func_end atkA5_painsplitdmgcalc + + thumb_func_start atkA6_settypetorandomresistance +atkA6_settypetorandomresistance: @ 0x08052744 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r1, _080527AC + ldr r4, _080527B0 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r2, r0, r1 + ldrh r1, [r2] + cmp r1, #0 + beq _0805278E + ldr r0, _080527B4 + cmp r1, r0 + beq _0805278E + ldrh r0, [r2] + bl IsTwoTurnsMove + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0805282C + ldr r1, _080527B8 + ldr r2, _080527BC + ldrb r0, [r4] + adds r0, r0, r2 + ldrb r2, [r0] + movs r0, #0x58 + muls r0, r2, r0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #5 + ands r0, r1 + cmp r0, #0 + beq _0805282C +_0805278E: + ldr r3, _080527C0 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08052918 + .align 2, 0 +_080527AC: .4byte 0x02023EF4 +_080527B0: .4byte 0x02023EAF +_080527B4: .4byte 0x0000FFFF +_080527B8: .4byte 0x02023D28 +_080527BC: .4byte 0x02023F14 +_080527C0: .4byte 0x02023EB8 +_080527C4: + mov r0, ip + strb r5, [r0] + mov r1, sl + ldrb r0, [r1] + muls r0, r2, r0 + adds r0, r0, r7 + adds r0, #0x22 + strb r5, [r0] + ldr r1, _080527E8 + movs r0, #0xfd + strb r0, [r1] + movs r0, #3 + strb r0, [r1, #1] + strb r5, [r1, #2] + movs r0, #0xff + strb r0, [r1, #3] + ldr r1, _080527EC + b _0805281A + .align 2, 0 +_080527E8: .4byte 0x02022C0C +_080527EC: .4byte 0x02023EB8 +_080527F0: + mov r0, r8 + adds r0, #1 + adds r0, r0, r3 + ldrb r2, [r0] + strb r2, [r4] + mov r4, sl + ldrb r0, [r4] + muls r0, r6, r0 + ldr r7, _08052824 + adds r0, r0, r7 + adds r0, #0x22 + strb r2, [r0] + ldr r1, _08052828 + movs r0, #0xfd + strb r0, [r1] + movs r0, #3 + strb r0, [r1, #1] + strb r2, [r1, #2] + movs r0, #0xff + strb r0, [r1, #3] + mov r1, ip +_0805281A: + ldr r0, [r1] + adds r0, #5 + str r0, [r1] + b _08052918 + .align 2, 0 +_08052824: .4byte 0x02023D28 +_08052828: .4byte 0x02022C0C +_0805282C: + movs r4, #0 + mov r8, r4 + movs r7, #0x7f + mov sb, r7 +_08052834: + bl Random + mov r4, sb + ands r4, r0 + cmp r4, #0x70 + bhi _08052834 + lsls r0, r4, #1 + adds r4, r0, r4 + ldr r6, _08052928 + adds r3, r4, r6 + ldr r1, _0805292C + ldr r2, _08052930 + ldrb r5, [r2] + lsls r0, r5, #1 + adds r0, r0, r1 + ldrb r1, [r3] + mov sl, r2 + ldrh r0, [r0] + cmp r1, r0 + bne _08052890 + adds r0, r4, #2 + adds r0, r0, r6 + ldrb r0, [r0] + cmp r0, #5 + bhi _08052890 + ldr r7, _08052934 + movs r2, #0x58 + adds r0, r5, #0 + muls r0, r2, r0 + adds r3, r0, r7 + movs r0, #0x21 + adds r0, r0, r3 + mov ip, r0 + adds r0, r4, #1 + adds r0, r0, r6 + ldrb r5, [r0] + mov r1, ip + ldrb r0, [r1] + adds r1, r5, #0 + cmp r0, r1 + beq _08052890 + adds r0, r3, #0 + adds r0, #0x22 + ldrb r0, [r0] + cmp r0, r1 + bne _080527C4 +_08052890: + movs r7, #1 + add r8, r7 + ldr r0, _08052938 + cmp r8, r0 + ble _08052834 + movs r0, #0 + mov r8, r0 + ldr r1, _0805293C + mov ip, r1 + ldr r3, _08052928 + adds r0, r4, #1 + adds r0, r0, r3 + mov sb, r0 + adds r5, r3, #0 +_080528AC: + ldrb r1, [r5] + cmp r1, #0xff + bgt _080528B6 + cmp r1, #0xfe + bge _080528F0 +_080528B6: + mov r4, sl + ldrb r2, [r4] + lsls r0, r2, #1 + ldr r7, _0805292C + adds r0, r0, r7 + ldrh r0, [r0] + cmp r1, r0 + bne _080528F0 + ldrb r0, [r5, #2] + cmp r0, #5 + bhi _080528F0 + movs r6, #0x58 + adds r0, r2, #0 + muls r0, r6, r0 + ldr r1, _08052934 + adds r2, r0, r1 + adds r4, r2, #0 + adds r4, #0x21 + ldrb r0, [r4] + mov r7, sb + ldrb r1, [r7] + cmp r0, r1 + beq _080528F0 + adds r0, r2, #0 + adds r0, #0x22 + ldrb r0, [r0] + cmp r0, r1 + beq _080528F0 + b _080527F0 +_080528F0: + adds r5, #3 + movs r0, #3 + add r8, r0 + ldr r0, _08052940 + cmp r8, r0 + bls _080528AC + mov r1, ip + ldr r2, [r1] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + mov r4, ip + str r1, [r4] +_08052918: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08052928: .4byte 0x082EBB38 +_0805292C: .4byte 0x02023EFC +_08052930: .4byte 0x02023EAF +_08052934: .4byte 0x02023D28 +_08052938: .4byte 0x000003E7 +_0805293C: .4byte 0x02023EB8 +_08052940: .4byte 0x0000014F + thumb_func_end atkA6_settypetorandomresistance + + thumb_func_start atkA7_setalwayshitflag +atkA7_setalwayshitflag: @ 0x08052944 + push {r4, lr} + ldr r4, _08052988 + ldr r3, _0805298C + ldrb r1, [r3] + lsls r1, r1, #2 + adds r1, r1, r4 + ldr r0, [r1] + movs r2, #0x19 + rsbs r2, r2, #0 + ands r0, r2 + str r0, [r1] + ldrb r1, [r3] + lsls r1, r1, #2 + adds r1, r1, r4 + ldr r0, [r1] + movs r2, #0x10 + orrs r0, r2 + str r0, [r1] + ldr r2, _08052990 + ldrb r1, [r3] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, _08052994 + ldrb r1, [r1] + strb r1, [r0, #0x15] + ldr r1, _08052998 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08052988: .4byte 0x02023F50 +_0805298C: .4byte 0x02023EB0 +_08052990: .4byte 0x02023F60 +_08052994: .4byte 0x02023EAF +_08052998: .4byte 0x02023EB8 + thumb_func_end atkA7_setalwayshitflag + + thumb_func_start atkA8_copymovepermanently +atkA8_copymovepermanently: @ 0x0805299C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + ldr r0, _08052AFC + ldr r1, _08052B00 + adds r5, r1, #0 + strh r5, [r0] + ldr r3, _08052B04 + ldr r2, _08052B08 + ldrb r1, [r2] + movs r0, #0x58 + adds r4, r1, #0 + muls r4, r0, r4 + adds r0, r3, #0 + adds r0, #0x50 + adds r0, r4, r0 + ldr r1, [r0] + movs r0, #0x80 + lsls r0, r0, #0xe + ands r1, r0 + mov ip, r3 + mov sl, r2 + cmp r1, #0 + beq _080529D4 + b _08052B28 +_080529D4: + ldr r0, _08052B0C + ldr r2, _08052B10 + ldrb r1, [r2] + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r1, [r1] + mov sb, r0 + mov r8, r2 + cmp r1, #0xa5 + bne _080529EA + b _08052B28 +_080529EA: + cmp r1, #0 + bne _080529F0 + b _08052B28 +_080529F0: + cmp r1, r5 + bne _080529F6 + b _08052B28 +_080529F6: + cmp r1, #0xa6 + bne _080529FC + b _08052B28 +_080529FC: + movs r7, #0 + mov r5, sb + mov r0, ip + adds r0, #0xc + adds r1, r4, r0 + mov r3, r8 +_08052A08: + ldrh r2, [r1] + cmp r2, #0xa6 + beq _08052A1A + ldrb r0, [r3] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r0, [r0] + cmp r2, r0 + beq _08052A22 +_08052A1A: + adds r1, #2 + adds r7, #1 + cmp r7, #3 + ble _08052A08 +_08052A22: + cmp r7, #4 + beq _08052A28 + b _08052B28 +_08052A28: + ldr r4, _08052B14 + ldrb r1, [r4] + lsls r1, r1, #1 + mov r2, sl + ldrb r0, [r2] + movs r3, #0x58 + muls r0, r3, r0 + adds r1, r1, r0 + mov r6, ip + adds r6, #0xc + adds r1, r1, r6 + mov r2, r8 + ldrb r0, [r2] + lsls r0, r0, #1 + add r0, sb + ldrh r0, [r0] + strh r0, [r1] + mov r1, sl + ldrb r0, [r1] + adds r2, r0, #0 + muls r2, r3, r2 + ldrb r4, [r4] + adds r2, r2, r4 + mov r5, ip + adds r5, #0x24 + adds r2, r2, r5 + ldr r4, _08052B18 + mov r1, r8 + ldrb r0, [r1] + lsls r0, r0, #1 + add r0, sb + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r0, [r0, #4] + strb r0, [r2] + ldr r1, _08052B1C + mov r2, sl + ldrb r0, [r2] + strb r0, [r1] + movs r7, #0 + ldrb r0, [r2] + muls r0, r3, r0 + adds r4, r0, r5 + adds r3, r0, #0 + add r2, sp, #4 + add r5, sp, #0xc +_08052A8A: + adds r0, r3, r6 + ldrh r0, [r0] + strh r0, [r2] + adds r1, r5, r7 + ldrb r0, [r4] + strb r0, [r1] + adds r4, #1 + adds r3, #2 + adds r2, #2 + adds r7, #1 + cmp r7, #3 + ble _08052A8A + add r2, sp, #4 + mov r0, sl + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + add r0, ip + adds r0, #0x3b + ldrb r0, [r0] + strb r0, [r2, #0xc] + str r2, [sp] + movs r0, #0 + movs r1, #3 + movs r2, #0 + movs r3, #0x10 + bl BtlController_EmitSetMonData + ldr r0, _08052B1C + ldrb r0, [r0] + bl MarkBattlerForControllerExec + ldr r1, _08052B20 + movs r0, #0xfd + strb r0, [r1] + movs r0, #2 + strb r0, [r1, #1] + ldr r3, _08052B0C + ldr r2, _08052B10 + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + strb r0, [r1, #2] + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + lsrs r0, r0, #8 + strb r0, [r1, #3] + movs r0, #0xff + strb r0, [r1, #4] + ldr r1, _08052B24 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] + b _08052B42 + .align 2, 0 +_08052AFC: .4byte 0x02023E90 +_08052B00: .4byte 0x0000FFFF +_08052B04: .4byte 0x02023D28 +_08052B08: .4byte 0x02023EAF +_08052B0C: .4byte 0x02023EE4 +_08052B10: .4byte 0x02023EB0 +_08052B14: .4byte 0x02023E8C +_08052B18: .4byte 0x082ED220 +_08052B1C: .4byte 0x02023D08 +_08052B20: .4byte 0x02022C0C +_08052B24: .4byte 0x02023EB8 +_08052B28: + ldr r3, _08052B54 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] +_08052B42: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08052B54: .4byte 0x02023EB8 + thumb_func_end atkA8_copymovepermanently + + thumb_func_start IsTwoTurnsMove +IsTwoTurnsMove: @ 0x08052B58 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r2, _08052B88 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r0, [r1] + cmp r0, #0x91 + beq _08052B82 + cmp r0, #0x27 + beq _08052B82 + cmp r0, #0x4b + beq _08052B82 + cmp r0, #0x97 + beq _08052B82 + cmp r0, #0x9b + beq _08052B82 + cmp r0, #0x1a + bne _08052B8C +_08052B82: + movs r0, #1 + b _08052B8E + .align 2, 0 +_08052B88: .4byte 0x082ED220 +_08052B8C: + movs r0, #0 +_08052B8E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsTwoTurnsMove + + thumb_func_start IsInvalidForSleepTalkOrAssist +IsInvalidForSleepTalkOrAssist: @ 0x08052B94 + push {lr} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + beq _08052BB2 + cmp r1, #0xd6 + beq _08052BB2 + movs r0, #0x89 + lsls r0, r0, #1 + cmp r1, r0 + beq _08052BB2 + cmp r1, #0x77 + beq _08052BB2 + cmp r1, #0x76 + bne _08052BB6 +_08052BB2: + movs r0, #1 + b _08052BB8 +_08052BB6: + movs r0, #0 +_08052BB8: + pop {r1} + bx r1 + thumb_func_end IsInvalidForSleepTalkOrAssist + + thumb_func_start AttacksThisTurn +AttacksThisTurn: @ 0x08052BBC + push {lr} + lsls r1, r1, #0x10 + lsrs r2, r1, #0x10 + ldr r1, _08052C14 + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0] + adds r3, r1, #0 + cmp r0, #0x97 + bne _08052BE0 + ldr r0, _08052C18 + ldrh r1, [r0] + movs r0, #0x60 + ands r0, r1 + cmp r0, #0 + bne _08052C20 +_08052BE0: + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0] + cmp r0, #0x91 + beq _08052C02 + cmp r0, #0x27 + beq _08052C02 + cmp r0, #0x4b + beq _08052C02 + cmp r0, #0x97 + beq _08052C02 + cmp r0, #0x9b + beq _08052C02 + cmp r0, #0x1a + bne _08052C20 +_08052C02: + ldr r0, _08052C1C + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x14 + ands r0, r1 + cmp r0, #0 + beq _08052C20 + movs r0, #1 + b _08052C22 + .align 2, 0 +_08052C14: .4byte 0x082ED220 +_08052C18: .4byte 0x02024070 +_08052C1C: .4byte 0x02023F24 +_08052C20: + movs r0, #2 +_08052C22: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end AttacksThisTurn + + thumb_func_start atkA9_trychoosesleeptalkmove +atkA9_trychoosesleeptalkmove: @ 0x08052C28 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + movs r6, #0 + movs r5, #0 + ldr r0, _08052CB8 + mov sb, r0 + movs r1, #0x58 + mov r8, r1 + ldr r7, _08052CBC + movs r0, #0x84 + lsls r0, r0, #1 + mov sl, r0 +_08052C46: + lsls r4, r5, #1 + mov r1, sb + ldrb r0, [r1] + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + adds r0, r4, r0 + adds r0, r0, r7 + ldrh r0, [r0] + bl IsInvalidForSleepTalkOrAssist + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08052C86 + mov r1, sb + ldrb r0, [r1] + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + adds r0, r4, r0 + adds r0, r0, r7 + ldrh r1, [r0] + cmp r1, sl + beq _08052C86 + cmp r1, #0xfd + beq _08052C86 + adds r0, r1, #0 + bl IsTwoTurnsMove + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08052C94 +_08052C86: + ldr r1, _08052CC0 + lsls r0, r5, #2 + adds r0, r0, r1 + ldr r0, [r0] + orrs r6, r0 + lsls r0, r6, #0x18 + lsrs r6, r0, #0x18 +_08052C94: + adds r5, #1 + cmp r5, #3 + ble _08052C46 + ldr r0, _08052CB8 + ldrb r0, [r0] + adds r1, r6, #0 + movs r2, #0xfd + bl CheckMoveLimitations + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0xf + bne _08052CC8 + ldr r1, _08052CC4 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] + b _08052D2C + .align 2, 0 +_08052CB8: .4byte 0x02023EAF +_08052CBC: .4byte 0x02023D34 +_08052CC0: .4byte 0x082FACB4 +_08052CC4: .4byte 0x02023EB8 +_08052CC8: + movs r7, #3 + ldr r4, _08052D3C +_08052CCC: + bl Random + adds r5, r7, #0 + ands r5, r0 + lsls r0, r5, #2 + adds r0, r0, r4 + ldr r0, [r0] + ands r0, r6 + cmp r0, #0 + bne _08052CCC + ldr r4, _08052D40 + ldr r2, _08052D44 + lsls r1, r5, #1 + ldr r0, _08052D48 + ldrb r3, [r0] + movs r0, #0x58 + muls r0, r3, r0 + adds r1, r1, r0 + adds r2, #0xc + adds r1, r1, r2 + ldrh r0, [r1] + strh r0, [r4] + ldr r0, _08052D4C + strb r5, [r0] + ldr r2, _08052D50 + ldr r0, [r2] + ldr r1, _08052D54 + ands r0, r1 + str r0, [r2] + ldrh r0, [r4] + movs r1, #0 + bl GetMoveTarget + ldr r1, _08052D58 + strb r0, [r1] + ldr r3, _08052D5C + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] +_08052D2C: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08052D3C: .4byte 0x082FACB4 +_08052D40: .4byte 0x02023E92 +_08052D44: .4byte 0x02023D28 +_08052D48: .4byte 0x02023EAF +_08052D4C: .4byte 0x02023E8C +_08052D50: .4byte 0x02023F24 +_08052D54: .4byte 0xFFFFFBFF +_08052D58: .4byte 0x02023EB0 +_08052D5C: .4byte 0x02023EB8 + thumb_func_end atkA9_trychoosesleeptalkmove + + thumb_func_start atkAA_setdestinybond +atkAA_setdestinybond: @ 0x08052D60 + ldr r1, _08052D84 + ldr r0, _08052D88 + ldrb r2, [r0] + movs r0, #0x58 + muls r2, r0, r2 + adds r1, #0x50 + adds r2, r2, r1 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0x12 + orrs r0, r1 + str r0, [r2] + ldr r1, _08052D8C + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + bx lr + .align 2, 0 +_08052D84: .4byte 0x02023D28 +_08052D88: .4byte 0x02023EAF +_08052D8C: .4byte 0x02023EB8 + thumb_func_end atkAA_setdestinybond + + thumb_func_start TrySetDestinyBondToHappen +TrySetDestinyBondToHappen: @ 0x08052D90 + push {r4, r5, lr} + ldr r0, _08052DE0 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r4, _08052DE4 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r1, _08052DE8 + ldrb r2, [r4] + movs r0, #0x58 + muls r0, r2, r0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x12 + ands r0, r1 + cmp r0, #0 + beq _08052DDA + cmp r5, r3 + beq _08052DDA + ldr r2, _08052DEC + ldr r1, [r2] + movs r0, #0x80 + lsls r0, r0, #0x11 + ands r0, r1 + cmp r0, #0 + bne _08052DDA + movs r0, #0x40 + orrs r1, r0 + str r1, [r2] +_08052DDA: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08052DE0: .4byte 0x02023EAF +_08052DE4: .4byte 0x02023EB0 +_08052DE8: .4byte 0x02023D28 +_08052DEC: .4byte 0x02023F24 + thumb_func_end TrySetDestinyBondToHappen + + thumb_func_start atkAB_trysetdestinybondtohappen +atkAB_trysetdestinybondtohappen: @ 0x08052DF0 + push {lr} + bl TrySetDestinyBondToHappen + ldr r1, _08052E04 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08052E04: .4byte 0x02023EB8 + thumb_func_end atkAB_trysetdestinybondtohappen + + thumb_func_start atkAC_remaininghptopower +atkAC_remaininghptopower: @ 0x08052E08 + push {lr} + ldr r2, _08052E5C + ldr r0, _08052E60 + ldrb r1, [r0] + movs r0, #0x58 + muls r1, r0, r1 + adds r1, r1, r2 + movs r2, #0x28 + ldrsh r0, [r1, r2] + movs r2, #0x2c + ldrsh r1, [r1, r2] + movs r2, #0x30 + bl GetScaledHPFraction + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r3, #0 + ldr r0, _08052E64 + ldrb r2, [r0] + cmp r1, r2 + ble _08052E42 + adds r2, r0, #0 +_08052E34: + adds r3, #2 + cmp r3, #0xb + bgt _08052E42 + adds r0, r3, r2 + ldrb r0, [r0] + cmp r1, r0 + bgt _08052E34 +_08052E42: + ldr r2, _08052E68 + ldr r1, _08052E64 + adds r0, r3, #1 + adds r0, r0, r1 + ldrb r0, [r0] + strh r0, [r2] + ldr r1, _08052E6C + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08052E5C: .4byte 0x02023D28 +_08052E60: .4byte 0x02023EAF +_08052E64: .4byte 0x082ECD8C +_08052E68: .4byte 0x020240A4 +_08052E6C: .4byte 0x02023EB8 + thumb_func_end atkAC_remaininghptopower + + thumb_func_start atkAD_tryspiteppreduce +atkAD_tryspiteppreduce: @ 0x08052E70 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r4, _08052FF0 + ldr r1, _08052FF4 + ldrb r3, [r1] + lsls r0, r3, #1 + adds r0, r0, r4 + ldrh r2, [r0] + mov r8, r1 + cmp r2, #0 + bne _08052E90 + b _08053018 +_08052E90: + ldr r0, _08052FF8 + cmp r2, r0 + bne _08052E98 + b _08053018 +_08052E98: + movs r7, #0 + ldr r0, _08052FFC + movs r1, #0x58 + muls r1, r3, r1 + adds r3, r0, #0 + adds r3, #0xc + adds r1, r1, r3 + ldrh r1, [r1] + cmp r2, r1 + beq _08052ED0 + adds r6, r4, #0 + mov r5, r8 + adds r4, r3, #0 + movs r3, #0x58 +_08052EB4: + adds r7, #1 + cmp r7, #3 + bgt _08052ED0 + ldrb r0, [r5] + lsls r2, r0, #1 + adds r2, r2, r6 + lsls r1, r7, #1 + muls r0, r3, r0 + adds r1, r1, r0 + adds r1, r1, r4 + ldrh r0, [r2] + ldrh r1, [r1] + cmp r0, r1 + bne _08052EB4 +_08052ED0: + cmp r7, #4 + bne _08052ED6 + b _08053018 +_08052ED6: + mov r4, r8 + ldrb r0, [r4] + movs r1, #0x58 + mov sb, r1 + mov r3, sb + muls r3, r0, r3 + adds r0, r3, #0 + adds r0, r7, r0 + ldr r1, _08052FFC + adds r1, #0x24 + mov sl, r1 + add r0, sl + ldrb r0, [r0] + cmp r0, #1 + bhi _08052EF6 + b _08053018 +_08052EF6: + bl Random + movs r1, #3 + ands r1, r0 + adds r6, r1, #2 + ldrb r0, [r4] + mov r3, sb + muls r3, r0, r3 + adds r0, r3, #0 + adds r0, r7, r0 + add r0, sl + ldrb r0, [r0] + cmp r0, r6 + bge _08052F14 + adds r6, r0, #0 +_08052F14: + ldr r1, _08053000 + movs r5, #0xfd + strb r5, [r1] + movs r0, #2 + strb r0, [r1, #1] + ldr r2, _08052FF0 + mov r3, r8 + ldrb r0, [r3] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strb r0, [r1, #2] + ldrb r0, [r3] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + lsrs r0, r0, #8 + strb r0, [r1, #3] + movs r0, #0xff + strb r0, [r1, #4] + ldr r4, _08053004 + adds r0, r4, #0 + adds r1, r6, #0 + movs r2, #0 + movs r3, #1 + bl ConvertIntToDecimalStringN + strb r5, [r4] + movs r0, #1 + strb r0, [r4, #1] + strb r0, [r4, #2] + strb r0, [r4, #3] + strb r6, [r4, #4] + subs r0, #2 + strb r0, [r4, #5] + mov r1, r8 + ldrb r0, [r1] + mov r1, sb + muls r1, r0, r1 + adds r1, r7, r1 + add r1, sl + ldrb r0, [r1] + subs r0, r0, r6 + strb r0, [r1] + ldr r4, _08053008 + mov r3, r8 + ldrb r0, [r3] + strb r0, [r4] + ldr r1, _0805300C + ldrb r3, [r4] + lsls r0, r3, #3 + subs r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #0x18] + lsrs r1, r1, #4 + ldr r2, _08053010 + lsls r0, r7, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _08052FC8 + mov r2, sb + muls r2, r3, r2 + ldr r0, _08052FFC + adds r0, #0x50 + adds r0, r2, r0 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xe + ands r0, r1 + cmp r0, #0 + bne _08052FC8 + adds r1, r7, #0 + adds r1, #9 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r3, sl + adds r0, r2, r3 + adds r0, r0, r7 + str r0, [sp] + movs r0, #0 + movs r2, #0 + movs r3, #1 + bl BtlController_EmitSetMonData + ldrb r0, [r4] + bl MarkBattlerForControllerExec +_08052FC8: + ldr r1, _08053014 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] + ldr r1, _08052FFC + ldr r0, _08052FF4 + ldrb r2, [r0] + movs r0, #0x58 + muls r0, r2, r0 + adds r0, r7, r0 + adds r1, #0x24 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _08053032 + adds r0, r2, #0 + bl CancelMultiTurnMoves + b _08053032 + .align 2, 0 +_08052FF0: .4byte 0x02023EEC +_08052FF4: .4byte 0x02023EB0 +_08052FF8: .4byte 0x0000FFFF +_08052FFC: .4byte 0x02023D28 +_08053000: .4byte 0x02022C0C +_08053004: .4byte 0x02022C1C +_08053008: .4byte 0x02023D08 +_0805300C: .4byte 0x02023F60 +_08053010: .4byte 0x082FACB4 +_08053014: .4byte 0x02023EB8 +_08053018: + ldr r3, _08053044 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] +_08053032: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08053044: .4byte 0x02023EB8 + thumb_func_end atkAD_tryspiteppreduce + + thumb_func_start atkAE_healpartystatus +atkAE_healpartystatus: @ 0x08053048 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + movs r4, #0 + str r4, [sp, #4] + mov r8, r4 + ldr r0, _080530B8 + ldrh r0, [r0] + cmp r0, #0xd7 + beq _08053064 + b _0805324E +_08053064: + ldr r6, _080530BC + mov r0, r8 + strb r0, [r6, #5] + ldr r5, _080530C0 + ldrb r0, [r5] + bl GetBattlerSide + lsls r0, r0, #0x18 + ldr r1, _080530C4 + mov sl, r1 + cmp r0, #0 + bne _08053080 + ldr r2, _080530C8 + mov sl, r2 +_08053080: + ldr r4, _080530CC + ldrb r3, [r5] + movs r7, #0x58 + adds r2, r3, #0 + muls r2, r7, r2 + adds r0, r2, r4 + adds r1, r0, #0 + adds r1, #0x20 + ldrb r0, [r1] + cmp r0, #0x2b + beq _080530D4 + adds r0, r4, #0 + adds r0, #0x4c + adds r0, r2, r0 + mov r1, r8 + str r1, [r0] + ldrb r0, [r5] + adds r2, r0, #0 + muls r2, r7, r2 + adds r0, r4, #0 + adds r0, #0x50 + adds r2, r2, r0 + ldr r0, [r2] + ldr r1, _080530D0 + ands r0, r1 + str r0, [r2] + b _080530E4 + .align 2, 0 +_080530B8: .4byte 0x02023E8E +_080530BC: .4byte 0x02023FD6 +_080530C0: .4byte 0x02023EAF +_080530C4: .4byte 0x020243E8 +_080530C8: .4byte 0x02024190 +_080530CC: .4byte 0x02023D28 +_080530D0: .4byte 0xF7FFFFFF +_080530D4: + ldrb r1, [r1] + adds r0, r3, #0 + bl RecordAbilityBattle + ldrb r0, [r6, #5] + movs r1, #1 + orrs r0, r1 + strb r0, [r6, #5] +_080530E4: + ldr r7, _08053158 + ldr r0, _0805315C + ldrb r0, [r0] + bl GetBattlerPosition + movs r2, #2 + mov sb, r2 + mov r1, sb + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + ldr r1, _08053160 + strb r0, [r1, #0x17] + strb r0, [r7] + ldr r0, _08053164 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0805318A + ldr r0, _08053168 + ldrb r2, [r0] + ldr r1, _0805316C + ldrb r3, [r7] + lsls r0, r3, #2 + adds r0, r0, r1 + ldr r0, [r0] + ands r2, r0 + cmp r2, #0 + bne _0805318A + ldr r5, _08053170 + movs r6, #0x58 + adds r4, r3, #0 + muls r4, r6, r4 + adds r0, r4, r5 + adds r1, r0, #0 + adds r1, #0x20 + ldrb r0, [r1] + cmp r0, #0x2b + beq _08053178 + adds r0, r5, #0 + adds r0, #0x4c + adds r0, r4, r0 + str r2, [r0] + ldrb r0, [r7] + adds r2, r0, #0 + muls r2, r6, r2 + adds r0, r5, #0 + adds r0, #0x50 + adds r2, r2, r0 + ldr r0, [r2] + ldr r1, _08053174 + ands r0, r1 + str r0, [r2] + b _0805318A + .align 2, 0 +_08053158: .4byte 0x02023D08 +_0805315C: .4byte 0x02023EAF +_08053160: .4byte 0x02024118 +_08053164: .4byte 0x02022C90 +_08053168: .4byte 0x02023EB4 +_0805316C: .4byte 0x082FACB4 +_08053170: .4byte 0x02023D28 +_08053174: .4byte 0xF7FFFFFF +_08053178: + ldrb r1, [r1] + adds r0, r3, #0 + bl RecordAbilityBattle + ldr r1, _080531D0 + ldrb r0, [r1, #5] + mov r2, sb + orrs r0, r2 + strb r0, [r1, #5] +_0805318A: + movs r6, #0 + ldr r7, _080531D4 +_0805318E: + movs r0, #0x64 + adds r4, r6, #0 + muls r4, r0, r4 + add r4, sl + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r4, #0 + movs r1, #0x2e + bl GetMonData + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r5, #0 + beq _08053246 + movs r0, #0xce + lsls r0, r0, #1 + cmp r5, r0 + beq _08053246 + ldr r2, _080531D8 + ldr r0, _080531DC + ldrb r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r0, r6 + bne _080531E0 + movs r0, #0x58 + muls r0, r1, r0 + b _08053210 + .align 2, 0 +_080531D0: .4byte 0x02023FD6 +_080531D4: .4byte 0x02023D28 +_080531D8: .4byte 0x02023D12 +_080531DC: .4byte 0x02023EAF +_080531E0: + ldr r0, _08053218 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08053228 + ldr r0, _0805321C + ldrb r3, [r0] + lsls r0, r3, #1 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r0, r6 + bne _08053228 + ldr r0, _08053220 + ldrb r1, [r0] + ldr r2, _08053224 + lsls r0, r3, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _08053228 + movs r0, #0x58 + muls r0, r3, r0 +_08053210: + adds r0, r0, r7 + adds r0, #0x20 + ldrb r0, [r0] + b _08053234 + .align 2, 0 +_08053218: .4byte 0x02022C90 +_0805321C: .4byte 0x02023D08 +_08053220: .4byte 0x02023EB4 +_08053224: .4byte 0x082FACB4 +_08053228: + adds r0, r5, #0 + adds r1, r4, #0 + bl GetAbilityBySpecies + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_08053234: + cmp r0, #0x2b + beq _08053246 + movs r0, #1 + lsls r0, r6 + mov r1, r8 + orrs r1, r0 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 +_08053246: + adds r6, #1 + cmp r6, #5 + ble _0805318E + b _080532CC +_0805324E: + ldr r1, _08053308 + movs r0, #4 + strb r0, [r1, #5] + movs r2, #0x3f + mov r8, r2 + ldr r3, _0805330C + ldr r2, _08053310 + ldrb r0, [r2] + movs r5, #0x58 + muls r0, r5, r0 + movs r1, #0x4c + adds r1, r1, r3 + mov sb, r1 + add r0, sb + str r4, [r0] + ldrb r0, [r2] + adds r1, r0, #0 + muls r1, r5, r1 + adds r7, r3, #0 + adds r7, #0x50 + adds r1, r1, r7 + ldr r0, [r1] + ldr r6, _08053314 + ands r0, r6 + str r0, [r1] + ldrb r0, [r2] + bl GetBattlerPosition + movs r1, #2 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + ldr r4, _08053318 + strb r0, [r4] + ldr r0, _0805331C + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _080532CC + ldr r0, _08053320 + ldrb r2, [r0] + ldr r1, _08053324 + ldrb r3, [r4] + lsls r0, r3, #2 + adds r0, r0, r1 + ldr r0, [r0] + ands r2, r0 + cmp r2, #0 + bne _080532CC + adds r0, r3, #0 + muls r0, r5, r0 + add r0, sb + str r2, [r0] + ldrb r0, [r4] + adds r1, r0, #0 + muls r1, r5, r1 + adds r1, r1, r7 + ldr r0, [r1] + ands r0, r6 + str r0, [r1] +_080532CC: + mov r2, r8 + cmp r2, #0 + beq _080532EE + ldr r4, _08053318 + ldr r0, _08053310 + ldrb r0, [r0] + strb r0, [r4] + add r0, sp, #4 + str r0, [sp] + movs r0, #0 + movs r1, #0x28 + movs r3, #4 + bl BtlController_EmitSetMonData + ldrb r0, [r4] + bl MarkBattlerForControllerExec +_080532EE: + ldr r1, _08053328 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08053308: .4byte 0x02023FD6 +_0805330C: .4byte 0x02023D28 +_08053310: .4byte 0x02023EAF +_08053314: .4byte 0xF7FFFFFF +_08053318: .4byte 0x02023D08 +_0805331C: .4byte 0x02022C90 +_08053320: .4byte 0x02023EB4 +_08053324: .4byte 0x082FACB4 +_08053328: .4byte 0x02023EB8 + thumb_func_end atkAE_healpartystatus + + thumb_func_start atkAF_cursetarget +atkAF_cursetarget: @ 0x0805332C + push {r4, r5, lr} + ldr r5, _0805336C + ldr r0, _08053370 + ldrb r0, [r0] + movs r4, #0x58 + adds r1, r0, #0 + muls r1, r4, r1 + adds r0, r5, #0 + adds r0, #0x50 + adds r1, r1, r0 + ldr r2, [r1] + movs r3, #0x80 + lsls r3, r3, #0x15 + adds r0, r2, #0 + ands r0, r3 + cmp r0, #0 + beq _08053378 + ldr r3, _08053374 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _0805339C + .align 2, 0 +_0805336C: .4byte 0x02023D28 +_08053370: .4byte 0x02023EB0 +_08053374: .4byte 0x02023EB8 +_08053378: + orrs r2, r3 + str r2, [r1] + ldr r1, _080533A4 + ldr r0, _080533A8 + ldrb r0, [r0] + muls r0, r4, r0 + adds r0, r0, r5 + ldrh r0, [r0, #0x2c] + lsrs r0, r0, #1 + str r0, [r1] + cmp r0, #0 + bne _08053394 + movs r0, #1 + str r0, [r1] +_08053394: + ldr r1, _080533AC + ldr r0, [r1] + adds r0, #5 + str r0, [r1] +_0805339C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080533A4: .4byte 0x02023E94 +_080533A8: .4byte 0x02023EAF +_080533AC: .4byte 0x02023EB8 + thumb_func_end atkAF_cursetarget + + thumb_func_start atkB0_trysetspikes +atkB0_trysetspikes: @ 0x080533B0 + push {r4, lr} + ldr r4, _08053404 + ldrb r0, [r4] + bl GetBattlerSide + movs r1, #1 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08053408 + lsls r2, r0, #1 + adds r0, r2, r0 + lsls r0, r0, #2 + adds r3, r0, r1 + ldrb r0, [r3, #0xa] + cmp r0, #3 + bne _08053414 + ldr r2, _0805340C + ldrb r1, [r4] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r2, #0x20 + orrs r1, r2 + strb r1, [r0] + ldr r3, _08053410 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _0805342E + .align 2, 0 +_08053404: .4byte 0x02023EAF +_08053408: .4byte 0x02023F38 +_0805340C: .4byte 0x02024020 +_08053410: .4byte 0x02023EB8 +_08053414: + ldr r1, _08053434 + adds r1, r2, r1 + ldrh r2, [r1] + movs r0, #0x10 + orrs r0, r2 + strh r0, [r1] + ldrb r0, [r3, #0xa] + adds r0, #1 + strb r0, [r3, #0xa] + ldr r1, _08053438 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] +_0805342E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08053434: .4byte 0x02023F32 +_08053438: .4byte 0x02023EB8 + thumb_func_end atkB0_trysetspikes + + thumb_func_start atkB1_setforesight +atkB1_setforesight: @ 0x0805343C + ldr r1, _08053460 + ldr r0, _08053464 + ldrb r2, [r0] + movs r0, #0x58 + muls r2, r0, r2 + adds r1, #0x50 + adds r2, r2, r1 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0x16 + orrs r0, r1 + str r0, [r2] + ldr r1, _08053468 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + bx lr + .align 2, 0 +_08053460: .4byte 0x02023D28 +_08053464: .4byte 0x02023EB0 +_08053468: .4byte 0x02023EB8 + thumb_func_end atkB1_setforesight + + thumb_func_start atkB2_trysetperishsong +atkB2_trysetperishsong: @ 0x0805346C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + movs r6, #0 + movs r3, #0 + ldr r0, _080534B0 + adds r7, r0, #0 + ldr r0, _080534B4 + mov r8, r0 + ldrb r1, [r7] + cmp r6, r1 + bge _080534D8 + movs r5, #0x20 + ldr r0, _080534B8 + mov ip, r0 + ldr r0, _080534BC + adds r4, r0, #0 + adds r4, #0xf + ldr r2, _080534C0 +_08053494: + ldr r1, [r2] + adds r0, r1, #0 + ands r0, r5 + cmp r0, #0 + bne _080534AC + movs r0, #0x58 + muls r0, r3, r0 + add r0, ip + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x2b + bne _080534C4 +_080534AC: + adds r6, #1 + b _080534CC + .align 2, 0 +_080534B0: .4byte 0x02023D10 +_080534B4: .4byte 0x02023EAF +_080534B8: .4byte 0x02023D28 +_080534BC: .4byte 0x02023F60 +_080534C0: .4byte 0x02023F50 +_080534C4: + orrs r1, r5 + str r1, [r2] + movs r0, #0x33 + strb r0, [r4] +_080534CC: + adds r4, #0x1c + adds r2, #4 + adds r3, #1 + ldrb r0, [r7] + cmp r3, r0 + blt _08053494 +_080534D8: + mov r1, r8 + ldrb r0, [r1] + bl PressurePPLoseOnUsingPerishSong + ldr r0, _08053504 + ldrb r0, [r0] + cmp r6, r0 + bne _0805350C + ldr r3, _08053508 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08053514 + .align 2, 0 +_08053504: .4byte 0x02023D10 +_08053508: .4byte 0x02023EB8 +_0805350C: + ldr r1, _08053520 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] +_08053514: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08053520: .4byte 0x02023EB8 + thumb_func_end atkB2_trysetperishsong + + thumb_func_start atkB3_rolloutdamagecalculation +atkB3_rolloutdamagecalculation: @ 0x08053524 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r0, _08053548 + ldrb r1, [r0] + movs r0, #0x29 + ands r0, r1 + cmp r0, #0 + beq _08053558 + ldr r0, _0805354C + ldrb r0, [r0] + bl CancelMultiTurnMoves + ldr r1, _08053550 + ldr r0, _08053554 + str r0, [r1] + b _08053670 + .align 2, 0 +_08053548: .4byte 0x02023F20 +_0805354C: .4byte 0x02023EAF +_08053550: .4byte 0x02023EB8 +_08053554: .4byte 0x08286FE8 +_08053558: + ldr r2, _0805367C + ldr r1, _08053680 + ldrb r3, [r1] + movs r5, #0x58 + adds r0, r3, #0 + muls r0, r5, r0 + adds r4, r2, #0 + adds r4, #0x50 + adds r0, r0, r4 + ldr r0, [r0] + movs r7, #0x80 + lsls r7, r7, #5 + ands r0, r7 + adds r6, r1, #0 + mov sb, r2 + ldr r1, _08053684 + mov ip, r1 + ldr r2, _08053688 + mov r8, r2 + cmp r0, #0 + bne _080535CA + lsls r0, r3, #3 + subs r0, r0, r3 + lsls r0, r0, #2 + add r0, ip + ldrb r2, [r0, #0x11] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #5 + orrs r1, r2 + strb r1, [r0, #0x11] + ldrb r1, [r6] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + add r0, ip + ldrb r2, [r0, #0x11] + movs r1, #0xf + ands r1, r2 + movs r2, #0x50 + orrs r1, r2 + strb r1, [r0, #0x11] + ldrb r0, [r6] + adds r1, r0, #0 + muls r1, r5, r1 + adds r1, r1, r4 + ldr r0, [r1] + orrs r0, r7 + str r0, [r1] + ldr r1, _0805368C + ldrb r0, [r6] + lsls r0, r0, #1 + adds r0, r0, r1 + mov r2, r8 + ldrh r1, [r2] + strh r1, [r0] +_080535CA: + ldrb r0, [r6] + lsls r2, r0, #3 + subs r2, r2, r0 + lsls r2, r2, #2 + add r2, ip + ldrb r3, [r2, #0x11] + lsls r1, r3, #0x1c + lsrs r1, r1, #0x1c + subs r1, #1 + movs r0, #0xf + ands r1, r0 + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #0x11] + cmp r1, #0 + bne _080535FE + ldrb r0, [r6] + adds r1, r0, #0 + muls r1, r5, r1 + adds r1, r1, r4 + ldr r0, [r1] + ldr r2, _08053690 + ands r0, r2 + str r0, [r1] +_080535FE: + ldr r3, _08053694 + ldr r2, _08053698 + mov r0, r8 + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #1] + strh r0, [r3] + movs r2, #1 + ldrb r1, [r6] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + mov r1, ip + adds r4, r0, r1 + ldrb r0, [r4, #0x11] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + movs r1, #5 + subs r1, r1, r0 + ldr r7, _0805369C + adds r5, r3, #0 + cmp r2, r1 + bge _0805364C + adds r1, r5, #0 + adds r3, r4, #0 + movs r4, #5 +_08053638: + ldrh r0, [r1] + lsls r0, r0, #1 + strh r0, [r1] + adds r2, #1 + ldrb r0, [r3, #0x11] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + subs r0, r4, r0 + cmp r2, r0 + blt _08053638 +_0805364C: + ldrb r1, [r6] + movs r0, #0x58 + muls r0, r1, r0 + mov r1, sb + adds r1, #0x50 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x17 + ands r0, r1 + cmp r0, #0 + beq _0805366A + ldrh r0, [r5] + lsls r0, r0, #1 + strh r0, [r5] +_0805366A: + ldr r0, [r7] + adds r0, #1 + str r0, [r7] +_08053670: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805367C: .4byte 0x02023D28 +_08053680: .4byte 0x02023EAF +_08053684: .4byte 0x02023F60 +_08053688: .4byte 0x02023E8E +_0805368C: .4byte 0x02023F0C +_08053690: .4byte 0xFFFFEFFF +_08053694: .4byte 0x020240A4 +_08053698: .4byte 0x082ED220 +_0805369C: .4byte 0x02023EB8 + thumb_func_end atkB3_rolloutdamagecalculation + + thumb_func_start atkB4_jumpifconfusedandstatmaxed +atkB4_jumpifconfusedandstatmaxed: @ 0x080536A0 + push {r4, r5, lr} + ldr r5, _080536F0 + ldr r0, _080536F4 + ldrb r1, [r0] + movs r0, #0x58 + adds r3, r1, #0 + muls r3, r0, r3 + adds r0, r5, #0 + adds r0, #0x50 + adds r0, r3, r0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + ldr r4, _080536F8 + cmp r0, #0 + beq _080536FC + ldr r2, [r4] + ldrb r0, [r2, #1] + adds r0, r0, r3 + adds r1, r5, #0 + adds r1, #0x18 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0xc + bne _080536FC + ldrb r1, [r2, #2] + ldrb r0, [r2, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _08053702 + .align 2, 0 +_080536F0: .4byte 0x02023D28 +_080536F4: .4byte 0x02023EB0 +_080536F8: .4byte 0x02023EB8 +_080536FC: + ldr r0, [r4] + adds r0, #6 + str r0, [r4] +_08053702: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end atkB4_jumpifconfusedandstatmaxed + + thumb_func_start atkB5_furycuttercalc +atkB5_furycuttercalc: @ 0x08053708 + push {r4, r5, lr} + ldr r0, _08053730 + ldrb r1, [r0] + movs r0, #0x29 + ands r0, r1 + cmp r0, #0 + beq _08053744 + ldr r2, _08053734 + ldr r0, _08053738 + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0 + strb r1, [r0, #0x10] + ldr r1, _0805373C + ldr r0, _08053740 + str r0, [r1] + b _0805379C + .align 2, 0 +_08053730: .4byte 0x02023F20 +_08053734: .4byte 0x02023F60 +_08053738: .4byte 0x02023EAF +_0805373C: .4byte 0x02023EB8 +_08053740: .4byte 0x08286FE8 +_08053744: + ldr r5, _080537A4 + ldr r4, _080537A8 + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r5 + ldrb r0, [r1, #0x10] + cmp r0, #5 + beq _0805375C + adds r0, #1 + strb r0, [r1, #0x10] +_0805375C: + ldr r3, _080537AC + ldr r2, _080537B0 + ldr r0, _080537B4 + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #1] + strh r0, [r3] + movs r2, #1 + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r4, _080537B8 + ldrb r1, [r0, #0x10] + cmp r2, r1 + bge _08053796 + adds r1, r3, #0 + adds r3, r0, #0 +_08053788: + ldrh r0, [r1] + lsls r0, r0, #1 + strh r0, [r1] + adds r2, #1 + ldrb r0, [r3, #0x10] + cmp r2, r0 + blt _08053788 +_08053796: + ldr r0, [r4] + adds r0, #1 + str r0, [r4] +_0805379C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080537A4: .4byte 0x02023F60 +_080537A8: .4byte 0x02023EAF +_080537AC: .4byte 0x020240A4 +_080537B0: .4byte 0x082ED220 +_080537B4: .4byte 0x02023E8E +_080537B8: .4byte 0x02023EB8 + thumb_func_end atkB5_furycuttercalc + + thumb_func_start atkB6_happinesstodamagecalculation +atkB6_happinesstodamagecalculation: @ 0x080537BC + push {r4, lr} + ldr r2, _080537E8 + ldr r0, _080537EC + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #0x79 + bne _080537FC + ldr r4, _080537F0 + ldr r2, _080537F4 + ldr r0, _080537F8 + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + adds r0, #0x2b + ldrb r1, [r0] + b _08053812 + .align 2, 0 +_080537E8: .4byte 0x082ED220 +_080537EC: .4byte 0x02023E8E +_080537F0: .4byte 0x020240A4 +_080537F4: .4byte 0x02023D28 +_080537F8: .4byte 0x02023EAF +_080537FC: + ldr r4, _08053830 + ldr r2, _08053834 + ldr r0, _08053838 + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + adds r0, #0x2b + ldrb r0, [r0] + movs r1, #0xff + subs r1, r1, r0 +_08053812: + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + movs r1, #0x19 + bl __divsi3 + strh r0, [r4] + ldr r1, _0805383C + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08053830: .4byte 0x020240A4 +_08053834: .4byte 0x02023D28 +_08053838: .4byte 0x02023EAF +_0805383C: .4byte 0x02023EB8 + thumb_func_end atkB6_happinesstodamagecalculation + + thumb_func_start atkB7_presentdamagecalculation +atkB7_presentdamagecalculation: @ 0x08053840 + push {r4, lr} + bl Random + movs r4, #0xff + ands r4, r0 + cmp r4, #0x65 + bgt _0805385C + ldr r1, _08053858 + movs r0, #0x28 + strh r0, [r1] + b _0805389E + .align 2, 0 +_08053858: .4byte 0x020240A4 +_0805385C: + cmp r4, #0xb1 + bgt _0805386C + ldr r1, _08053868 + movs r0, #0x50 + strh r0, [r1] + b _0805389E + .align 2, 0 +_08053868: .4byte 0x020240A4 +_0805386C: + cmp r4, #0xcb + bgt _0805387C + ldr r1, _08053878 + movs r0, #0x78 + strh r0, [r1] + b _0805389E + .align 2, 0 +_08053878: .4byte 0x020240A4 +_0805387C: + ldr r3, _080538A8 + ldr r2, _080538AC + ldr r0, _080538B0 + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + ldrh r0, [r0, #0x2c] + lsrs r0, r0, #2 + str r0, [r3] + cmp r0, #0 + bne _08053898 + movs r0, #1 + str r0, [r3] +_08053898: + ldr r0, [r3] + rsbs r0, r0, #0 + str r0, [r3] +_0805389E: + cmp r4, #0xcb + bgt _080538BC + ldr r1, _080538B4 + ldr r0, _080538B8 + b _080538F6 + .align 2, 0 +_080538A8: .4byte 0x02023E94 +_080538AC: .4byte 0x02023D28 +_080538B0: .4byte 0x02023EB0 +_080538B4: .4byte 0x02023EB8 +_080538B8: .4byte 0x08286FB8 +_080538BC: + ldr r2, _080538D8 + ldr r0, _080538DC + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + ldrh r1, [r0, #0x2c] + ldrh r0, [r0, #0x28] + cmp r1, r0 + bne _080538E8 + ldr r1, _080538E0 + ldr r0, _080538E4 + b _080538F6 + .align 2, 0 +_080538D8: .4byte 0x02023D28 +_080538DC: .4byte 0x02023EB0 +_080538E0: .4byte 0x02023EB8 +_080538E4: .4byte 0x08288483 +_080538E8: + ldr r2, _08053900 + ldrb r1, [r2] + movs r0, #0xf7 + ands r0, r1 + strb r0, [r2] + ldr r1, _08053904 + ldr r0, _08053908 +_080538F6: + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08053900: .4byte 0x02023F20 +_08053904: .4byte 0x02023EB8 +_08053908: .4byte 0x08288469 + thumb_func_end atkB7_presentdamagecalculation + + thumb_func_start atkB8_setsafeguard +atkB8_setsafeguard: @ 0x0805390C + push {r4, r5, r6, r7, lr} + ldr r7, _08053940 + ldrb r0, [r7] + bl GetBattlerPosition + ldr r4, _08053944 + movs r6, #1 + adds r1, r6, #0 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r1, [r1] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08053950 + ldr r2, _08053948 + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0805394C + movs r0, #0 + strb r0, [r1, #5] + b _08053998 + .align 2, 0 +_08053940: .4byte 0x02023EAF +_08053944: .4byte 0x02023F32 +_08053948: .4byte 0x02023F20 +_0805394C: .4byte 0x02023FD6 +_08053950: + ldrb r0, [r7] + bl GetBattlerPosition + adds r1, r6, #0 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r0, [r1] + movs r2, #0x20 + orrs r0, r2 + strh r0, [r1] + ldrb r0, [r7] + bl GetBattlerPosition + ldr r5, _080539A8 + adds r1, r6, #0 + ands r1, r0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r4, #5 + strb r4, [r0, #6] + ldrb r0, [r7] + bl GetBattlerPosition + adds r1, r6, #0 + ands r1, r0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r1, [r7] + strb r1, [r0, #7] + ldr r0, _080539AC + strb r4, [r0, #5] +_08053998: + ldr r1, _080539B0 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080539A8: .4byte 0x02023F38 +_080539AC: .4byte 0x02023FD6 +_080539B0: .4byte 0x02023EB8 + thumb_func_end atkB8_setsafeguard + + thumb_func_start atkB9_magnitudedamagecalculation +atkB9_magnitudedamagecalculation: @ 0x080539B4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #4 + bgt _080539E0 + ldr r1, _080539DC + movs r0, #0xa + strh r0, [r1] + movs r3, #4 + b _08053A4C + .align 2, 0 +_080539DC: .4byte 0x020240A4 +_080539E0: + cmp r3, #0xe + bgt _080539F4 + ldr r1, _080539F0 + movs r0, #0x1e + strh r0, [r1] + movs r3, #5 + b _08053A4C + .align 2, 0 +_080539F0: .4byte 0x020240A4 +_080539F4: + cmp r3, #0x22 + bgt _08053A08 + ldr r1, _08053A04 + movs r0, #0x32 + strh r0, [r1] + movs r3, #6 + b _08053A4C + .align 2, 0 +_08053A04: .4byte 0x020240A4 +_08053A08: + cmp r3, #0x40 + bgt _08053A1C + ldr r1, _08053A18 + movs r0, #0x46 + strh r0, [r1] + movs r3, #7 + b _08053A4C + .align 2, 0 +_08053A18: .4byte 0x020240A4 +_08053A1C: + cmp r3, #0x54 + bgt _08053A30 + ldr r1, _08053A2C + movs r0, #0x5a + strh r0, [r1] + movs r3, #8 + b _08053A4C + .align 2, 0 +_08053A2C: .4byte 0x020240A4 +_08053A30: + cmp r3, #0x5e + bgt _08053A44 + ldr r1, _08053A40 + movs r0, #0x6e + strh r0, [r1] + movs r3, #9 + b _08053A4C + .align 2, 0 +_08053A40: .4byte 0x020240A4 +_08053A44: + ldr r1, _08053AB8 + movs r0, #0x96 + strh r0, [r1] + movs r3, #0xa +_08053A4C: + ldr r1, _08053ABC + movs r2, #0 + movs r0, #0xfd + strb r0, [r1] + movs r0, #1 + strb r0, [r1, #1] + strb r0, [r1, #2] + movs r0, #2 + strb r0, [r1, #3] + strb r3, [r1, #4] + movs r0, #0xff + strb r0, [r1, #5] + ldr r1, _08053AC0 + strb r2, [r1] + ldr r0, _08053AC4 + ldrb r3, [r0] + adds r6, r1, #0 + ldr r0, _08053AC8 + mov r8, r0 + cmp r2, r3 + bhs _08053AA4 + adds r4, r6, #0 + ldr r0, _08053ACC + ldrb r5, [r0] + ldr r1, _08053AD0 + mov ip, r1 + ldr r7, _08053AD4 +_08053A82: + ldrb r2, [r4] + cmp r2, r5 + beq _08053A98 + ldrb r0, [r7] + ldrb r1, [r6] + lsls r1, r1, #2 + add r1, ip + ldr r1, [r1] + ands r0, r1 + cmp r0, #0 + beq _08053AA4 +_08053A98: + adds r0, r2, #1 + strb r0, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r3 + blo _08053A82 +_08053AA4: + mov r1, r8 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08053AB8: .4byte 0x020240A4 +_08053ABC: .4byte 0x02022C0C +_08053AC0: .4byte 0x02023EB0 +_08053AC4: .4byte 0x02023D10 +_08053AC8: .4byte 0x02023EB8 +_08053ACC: .4byte 0x02023EAF +_08053AD0: .4byte 0x082FACB4 +_08053AD4: .4byte 0x02023EB4 + thumb_func_end atkB9_magnitudedamagecalculation + + thumb_func_start atkBA_jumpifnopursuitswitchdmg +atkBA_jumpifnopursuitswitchdmg: @ 0x08053AD8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _08053AFC + ldrb r0, [r0] + cmp r0, #1 + bne _08053B08 + ldr r0, _08053B00 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08053B04 + movs r0, #1 + b _08053B22 + .align 2, 0 +_08053AFC: .4byte 0x02023EB6 +_08053B00: .4byte 0x02023EAF +_08053B04: + movs r0, #0 + b _08053B22 +_08053B08: + ldr r0, _08053B1C + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08053B20 + movs r0, #3 + b _08053B22 + .align 2, 0 +_08053B1C: .4byte 0x02023EAF +_08053B20: + movs r0, #2 +_08053B22: + bl GetBattlerAtPosition + ldr r1, _08053BFC + strb r0, [r1] + ldr r0, _08053C00 + ldr r1, _08053BFC + ldrb r3, [r1] + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, #0 + beq _08053B3A + b _08053C40 +_08053B3A: + ldr r5, _08053C04 + ldr r0, _08053C08 + ldr r1, [r0] + adds r1, r3, r1 + ldrb r2, [r5] + ldrb r1, [r1, #0xc] + cmp r2, r1 + bne _08053C40 + ldr r4, _08053C0C + movs r2, #0x58 + adds r0, r3, #0 + muls r0, r2, r0 + adds r1, r4, #0 + adds r1, #0x4c + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x27 + ands r0, r1 + cmp r0, #0 + bne _08053C40 + ldrb r0, [r5] + muls r0, r2, r0 + adds r0, r0, r4 + ldrh r0, [r0, #0x28] + cmp r0, #0 + beq _08053C40 + ldr r0, _08053C10 + lsls r1, r3, #3 + subs r1, r1, r3 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #0x18] + lsls r0, r0, #0x1f + cmp r0, #0 + bne _08053C40 + ldr r0, _08053C14 + lsls r1, r3, #1 + adds r1, r1, r0 + ldrh r0, [r1] + cmp r0, #0xe4 + bne _08053C40 + movs r1, #0 + ldr r0, _08053C18 + ldr r2, _08053C1C + mov r8, r2 + ldr r7, _08053C20 + mov sl, r7 + ldr r2, _08053C24 + mov sb, r2 + ldr r7, _08053C28 + mov ip, r7 + ldrb r2, [r0] + cmp r1, r2 + bge _08053BC6 + ldr r6, _08053C2C + ldr r5, _08053BFC + ldr r4, _08053C30 + movs r3, #0xb + adds r2, r0, #0 +_08053BB0: + adds r0, r1, r6 + ldrb r0, [r0] + ldrb r7, [r5] + cmp r0, r7 + bne _08053BBE + adds r0, r1, r4 + strb r3, [r0] +_08053BBE: + adds r1, #1 + ldrb r0, [r2] + cmp r1, r0 + blt _08053BB0 +_08053BC6: + movs r0, #0xe4 + mov r1, r8 + strh r0, [r1] + ldr r2, _08053BFC + ldrb r0, [r2] + ldr r7, _08053C08 + ldr r1, [r7] + adds r0, r0, r1 + adds r0, #0x80 + ldrb r0, [r0] + mov r1, sb + strb r0, [r1] + mov r2, sl + strb r0, [r2] + ldr r7, _08053C34 + ldr r0, [r7] + adds r0, #5 + str r0, [r7] + movs r0, #1 + ldr r1, _08053C38 + strb r0, [r1, #0x18] + mov r2, ip + ldr r0, [r2] + ldr r1, _08053C3C + ands r0, r1 + str r0, [r2] + b _08053C5A + .align 2, 0 +_08053BFC: .4byte 0x02023EB0 +_08053C00: .4byte 0x02023EC0 +_08053C04: .4byte 0x02023EAF +_08053C08: .4byte 0x02024140 +_08053C0C: .4byte 0x02023D28 +_08053C10: .4byte 0x02023F60 +_08053C14: .4byte 0x02023F18 +_08053C18: .4byte 0x02023D10 +_08053C1C: .4byte 0x02023E8E +_08053C20: .4byte 0x02023E8C +_08053C24: .4byte 0x02023E8D +_08053C28: .4byte 0x02023F24 +_08053C2C: .4byte 0x02023D22 +_08053C30: .4byte 0x02023D1E +_08053C34: .4byte 0x02023EB8 +_08053C38: .4byte 0x02024118 +_08053C3C: .4byte 0xFFFFFBFF +_08053C40: + ldr r3, _08053C68 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] +_08053C5A: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08053C68: .4byte 0x02023EB8 + thumb_func_end atkBA_jumpifnopursuitswitchdmg + + thumb_func_start atkBB_setsunny +atkBB_setsunny: @ 0x08053C6C + push {lr} + ldr r2, _08053C8C + ldrh r1, [r2] + movs r0, #0x60 + ands r0, r1 + cmp r0, #0 + beq _08053C98 + ldr r2, _08053C90 + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08053C94 + movs r0, #2 + strb r0, [r1, #5] + b _08053CAA + .align 2, 0 +_08053C8C: .4byte 0x02024070 +_08053C90: .4byte 0x02023F20 +_08053C94: .4byte 0x02023FD6 +_08053C98: + movs r0, #0x20 + strh r0, [r2] + ldr r1, _08053CB8 + movs r0, #4 + strb r0, [r1, #5] + ldr r0, _08053CBC + adds r0, #0x28 + movs r1, #5 + strb r1, [r0] +_08053CAA: + ldr r1, _08053CC0 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08053CB8: .4byte 0x02023FD6 +_08053CBC: .4byte 0x02024074 +_08053CC0: .4byte 0x02023EB8 + thumb_func_end atkBB_setsunny + + thumb_func_start atkBC_maxattackhalvehp +atkBC_maxattackhalvehp: @ 0x08053CC4 + push {r4, r5, lr} + ldr r5, _08053D10 + ldr r4, _08053D14 + ldrb r0, [r4] + movs r3, #0x58 + muls r0, r3, r0 + adds r2, r0, r5 + ldrh r0, [r2, #0x2c] + lsrs r1, r0, #1 + cmp r1, #0 + bne _08053CDC + movs r1, #1 +_08053CDC: + movs r0, #0x19 + ldrsb r0, [r2, r0] + cmp r0, #0xb + bgt _08053D20 + ldrh r0, [r2, #0x28] + cmp r0, r1 + bls _08053D20 + movs r0, #0xc + strb r0, [r2, #0x19] + ldr r1, _08053D18 + ldrb r0, [r4] + muls r0, r3, r0 + adds r0, r0, r5 + ldrh r0, [r0, #0x2c] + lsrs r0, r0, #1 + str r0, [r1] + cmp r0, #0 + bne _08053D04 + movs r0, #1 + str r0, [r1] +_08053D04: + ldr r1, _08053D1C + ldr r0, [r1] + adds r0, #5 + str r0, [r1] + b _08053D3A + .align 2, 0 +_08053D10: .4byte 0x02023D28 +_08053D14: .4byte 0x02023EAF +_08053D18: .4byte 0x02023E94 +_08053D1C: .4byte 0x02023EB8 +_08053D20: + ldr r3, _08053D40 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] +_08053D3A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08053D40: .4byte 0x02023EB8 + thumb_func_end atkBC_maxattackhalvehp + + thumb_func_start atkBD_copyfoestats +atkBD_copyfoestats: @ 0x08053D44 + push {r4, r5, r6, r7, lr} + movs r2, #0 + ldr r7, _08053D7C + ldr r6, _08053D80 + movs r4, #0x58 + ldr r3, _08053D84 + ldr r5, _08053D88 +_08053D52: + ldrb r0, [r6] + adds r1, r0, #0 + muls r1, r4, r1 + adds r1, r2, r1 + adds r1, r1, r3 + ldrb r0, [r5] + muls r0, r4, r0 + adds r0, r2, r0 + adds r0, r0, r3 + ldrb r0, [r0] + strb r0, [r1] + adds r2, #1 + cmp r2, #7 + ble _08053D52 + ldr r0, [r7] + adds r0, #5 + str r0, [r7] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08053D7C: .4byte 0x02023EB8 +_08053D80: .4byte 0x02023EAF +_08053D84: .4byte 0x02023D40 +_08053D88: .4byte 0x02023EB0 + thumb_func_end atkBD_copyfoestats + + thumb_func_start atkBE_rapidspinfree +atkBE_rapidspinfree: @ 0x08053D8C + push {r4, r5, r6, lr} + ldr r1, _08053DFC + ldr r5, _08053E00 + ldrb r2, [r5] + movs r6, #0x58 + adds r0, r2, #0 + muls r0, r6, r0 + adds r4, r1, #0 + adds r4, #0x50 + adds r0, r0, r4 + ldr r0, [r0] + movs r1, #0xe0 + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08053E20 + ldr r1, _08053E04 + ldr r3, _08053E08 + ldrb r0, [r3] + strb r0, [r1, #0x17] + ldrb r0, [r5] + adds r1, r0, #0 + muls r1, r6, r1 + adds r1, r1, r4 + ldr r0, [r1] + ldr r2, _08053E0C + ands r0, r2 + str r0, [r1] + ldrb r0, [r5] + ldr r1, _08053E10 + ldr r2, [r1] + adds r0, r0, r2 + ldrb r0, [r0, #0x14] + strb r0, [r3] + ldr r1, _08053E14 + movs r0, #0xfd + strb r0, [r1] + movs r0, #2 + strb r0, [r1, #1] + ldrb r0, [r5] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrb r0, [r0, #4] + strb r0, [r1, #2] + ldrb r0, [r5] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrb r0, [r0, #5] + strb r0, [r1, #3] + movs r0, #0xff + strb r0, [r1, #4] + bl BattleScriptPushCursor + ldr r1, _08053E18 + ldr r0, _08053E1C + b _08053ECA + .align 2, 0 +_08053DFC: .4byte 0x02023D28 +_08053E00: .4byte 0x02023EAF +_08053E04: .4byte 0x02024118 +_08053E08: .4byte 0x02023EB0 +_08053E0C: .4byte 0xFFFF1FFF +_08053E10: .4byte 0x02024140 +_08053E14: .4byte 0x02022C0C +_08053E18: .4byte 0x02023EB8 +_08053E1C: .4byte 0x0828954D +_08053E20: + ldr r4, _08053E54 + lsls r0, r2, #2 + adds r3, r0, r4 + ldr r1, [r3] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08053E60 + movs r0, #5 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r3] + ldrb r1, [r5] + lsls r1, r1, #2 + adds r1, r1, r4 + ldr r0, [r1] + movs r2, #4 + rsbs r2, r2, #0 + ands r0, r2 + str r0, [r1] + bl BattleScriptPushCursor + ldr r1, _08053E58 + ldr r0, _08053E5C + b _08053ECA + .align 2, 0 +_08053E54: .4byte 0x02023F50 +_08053E58: .4byte 0x02023EB8 +_08053E5C: .4byte 0x0828955E +_08053E60: + adds r0, r2, #0 + bl GetBattlerSide + ldr r4, _08053EB0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r4 + ldrh r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08053EC4 + ldrb r0, [r5] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r4 + ldrh r2, [r0] + ldr r1, _08053EB4 + ands r1, r2 + movs r4, #0 + strh r1, [r0] + ldrb r0, [r5] + bl GetBattlerSide + ldr r2, _08053EB8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + strb r4, [r1, #0xa] + bl BattleScriptPushCursor + ldr r1, _08053EBC + ldr r0, _08053EC0 + b _08053ECA + .align 2, 0 +_08053EB0: .4byte 0x02023F32 +_08053EB4: .4byte 0x0000FFEF +_08053EB8: .4byte 0x02023F38 +_08053EBC: .4byte 0x02023EB8 +_08053EC0: .4byte 0x08289565 +_08053EC4: + ldr r1, _08053ED4 + ldr r0, [r1] + adds r0, #1 +_08053ECA: + str r0, [r1] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08053ED4: .4byte 0x02023EB8 + thumb_func_end atkBE_rapidspinfree + + thumb_func_start atkBF_setdefensecurlbit +atkBF_setdefensecurlbit: @ 0x08053ED8 + ldr r1, _08053EFC + ldr r0, _08053F00 + ldrb r2, [r0] + movs r0, #0x58 + muls r2, r0, r2 + adds r1, #0x50 + adds r2, r2, r1 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0x17 + orrs r0, r1 + str r0, [r2] + ldr r1, _08053F04 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + bx lr + .align 2, 0 +_08053EFC: .4byte 0x02023D28 +_08053F00: .4byte 0x02023EAF +_08053F04: .4byte 0x02023EB8 + thumb_func_end atkBF_setdefensecurlbit + + thumb_func_start atkC0_recoverbasedonsunlight +atkC0_recoverbasedonsunlight: @ 0x08053F08 + push {r4, r5, r6, r7, lr} + sub sp, #4 + ldr r1, _08053F74 + ldr r5, _08053F78 + ldrb r0, [r5] + strb r0, [r1] + ldr r7, _08053F7C + ldrb r0, [r5] + movs r6, #0x58 + muls r0, r6, r0 + adds r0, r0, r7 + ldrh r1, [r0, #0x28] + ldrh r0, [r0, #0x2c] + cmp r1, r0 + beq _08053FE8 + ldr r4, _08053F80 + ldrh r0, [r4] + cmp r0, #0 + beq _08053F5A + movs r0, #0 + str r0, [sp] + movs r0, #0x13 + movs r1, #0 + movs r2, #0xd + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _08053F5A + str r0, [sp] + movs r0, #0x13 + movs r1, #0 + movs r2, #0x4d + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08053F88 +_08053F5A: + ldr r3, _08053F84 + ldr r2, _08053F7C + ldr r0, _08053F78 + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + ldrh r0, [r0, #0x2c] + lsrs r0, r0, #1 + str r0, [r3] + adds r1, r3, #0 + b _08053FC2 + .align 2, 0 +_08053F74: .4byte 0x02023EB0 +_08053F78: .4byte 0x02023EAF +_08053F7C: .4byte 0x02023D28 +_08053F80: .4byte 0x02024070 +_08053F84: .4byte 0x02023E94 +_08053F88: + ldrh r1, [r4] + movs r0, #0x60 + ands r0, r1 + cmp r0, #0 + beq _08053FB4 + ldr r4, _08053FB0 + ldrb r0, [r5] + muls r0, r6, r0 + adds r0, r0, r7 + ldrh r1, [r0, #0x2c] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + movs r1, #0x1e + bl __divsi3 + str r0, [r4] + adds r1, r4, #0 + b _08053FC2 + .align 2, 0 +_08053FB0: .4byte 0x02023E94 +_08053FB4: + ldr r1, _08053FE0 + ldrb r0, [r5] + muls r0, r6, r0 + adds r0, r0, r7 + ldrh r0, [r0, #0x2c] + lsrs r0, r0, #2 + str r0, [r1] +_08053FC2: + adds r2, r1, #0 + ldr r0, [r2] + cmp r0, #0 + bne _08053FCE + movs r0, #1 + str r0, [r2] +_08053FCE: + ldr r0, [r1] + rsbs r0, r0, #0 + str r0, [r1] + ldr r1, _08053FE4 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] + b _08054002 + .align 2, 0 +_08053FE0: .4byte 0x02023E94 +_08053FE4: .4byte 0x02023EB8 +_08053FE8: + ldr r3, _0805400C + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] +_08054002: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805400C: .4byte 0x02023EB8 + thumb_func_end atkC0_recoverbasedonsunlight + + thumb_func_start atkC1_hiddenpowercalc +atkC1_hiddenpowercalc: @ 0x08054010 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r2, _08054120 + ldr r0, _08054124 + ldrb r1, [r0] + movs r0, #0x58 + adds r4, r1, #0 + muls r4, r0, r4 + adds r4, r4, r2 + ldrb r0, [r4, #0x14] + mov sl, r0 + mov r7, sl + lsls r7, r7, #0x1b + adds r0, r7, #0 + lsrs r0, r0, #0x1b + mov sl, r0 + movs r1, #2 + mov r2, sl + ands r2, r1 + asrs r2, r2, #1 + ldrh r7, [r4, #0x14] + mov sb, r7 + mov r0, sb + lsls r0, r0, #0x16 + mov sb, r0 + lsrs r3, r0, #0x1b + adds r0, r1, #0 + ands r0, r3 + orrs r2, r0 + ldrb r7, [r4, #0x15] + mov r8, r7 + mov r0, r8 + lsls r0, r0, #0x19 + mov r8, r0 + lsrs r3, r0, #0x1b + adds r0, r1, #0 + ands r0, r3 + lsls r0, r0, #1 + orrs r2, r0 + ldr r6, [r4, #0x14] + lsls r6, r6, #0xc + lsrs r3, r6, #0x1b + adds r0, r1, #0 + ands r0, r3 + lsls r0, r0, #2 + orrs r2, r0 + ldrh r5, [r4, #0x16] + lsls r5, r5, #0x17 + lsrs r3, r5, #0x1b + adds r0, r1, #0 + ands r0, r3 + lsls r0, r0, #3 + orrs r2, r0 + ldrb r3, [r4, #0x17] + lsls r3, r3, #0x1a + lsrs r0, r3, #0x1b + ands r1, r0 + lsls r1, r1, #4 + orrs r2, r1 + movs r1, #1 + adds r4, r1, #0 + mov r7, sl + ands r4, r7 + mov r0, sb + lsrs r0, r0, #0x1b + mov sb, r0 + adds r0, r1, #0 + mov r7, sb + ands r0, r7 + lsls r0, r0, #1 + orrs r4, r0 + mov r0, r8 + lsrs r0, r0, #0x1b + mov r8, r0 + adds r0, r1, #0 + mov r7, r8 + ands r0, r7 + lsls r0, r0, #2 + orrs r4, r0 + lsrs r6, r6, #0x1b + adds r0, r1, #0 + ands r0, r6 + lsls r0, r0, #3 + orrs r4, r0 + lsrs r5, r5, #0x1b + adds r0, r1, #0 + ands r0, r5 + lsls r0, r0, #4 + orrs r4, r0 + lsrs r3, r3, #0x1b + ands r1, r3 + lsls r1, r1, #5 + orrs r4, r1 + ldr r5, _08054128 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + movs r1, #0x3f + bl __divsi3 + adds r0, #0x1e + strh r0, [r5] + ldr r6, _0805412C + ldr r5, [r6] + lsls r0, r4, #4 + subs r0, r0, r4 + movs r1, #0x3f + bl __divsi3 + adds r0, #1 + strb r0, [r5, #0x13] + ldr r1, [r6] + ldrb r0, [r1, #0x13] + cmp r0, #8 + bls _08054100 + adds r0, #1 + strb r0, [r1, #0x13] +_08054100: + ldr r2, [r6] + ldrb r0, [r2, #0x13] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r2, #0x13] + ldr r1, _08054130 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08054120: .4byte 0x02023D28 +_08054124: .4byte 0x02023EAF +_08054128: .4byte 0x020240A4 +_0805412C: .4byte 0x02024140 +_08054130: .4byte 0x02023EB8 + thumb_func_end atkC1_hiddenpowercalc + + thumb_func_start atkC2_selectfirstvalidtarget +atkC2_selectfirstvalidtarget: @ 0x08054134 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _08054190 + movs r1, #0 + strb r1, [r0] + ldr r1, _08054194 + ldrb r1, [r1] + adds r6, r0, #0 + ldr r0, _08054198 + mov r8, r0 + cmp r1, #0 + beq _0805417E + adds r3, r6, #0 + ldr r0, _0805419C + ldrb r5, [r0] + ldr r0, _080541A0 + mov ip, r0 + adds r4, r1, #0 + ldr r7, _080541A4 +_0805415C: + ldrb r2, [r3] + cmp r2, r5 + beq _08054172 + ldrb r0, [r7] + ldrb r1, [r6] + lsls r1, r1, #2 + add r1, ip + ldr r1, [r1] + ands r0, r1 + cmp r0, #0 + beq _0805417E +_08054172: + adds r0, r2, #1 + strb r0, [r3] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r4 + blo _0805415C +_0805417E: + mov r1, r8 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08054190: .4byte 0x02023EB0 +_08054194: .4byte 0x02023D10 +_08054198: .4byte 0x02023EB8 +_0805419C: .4byte 0x02023EAF +_080541A0: .4byte 0x082FACB4 +_080541A4: .4byte 0x02023EB4 + thumb_func_end atkC2_selectfirstvalidtarget + + thumb_func_start atkC3_trysetfutureattack +atkC3_trysetfutureattack: @ 0x080541A8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + ldr r0, _080541E0 + mov r8, r0 + ldr r6, _080541E4 + ldrb r1, [r6] + adds r0, r1, r0 + ldrb r7, [r0] + cmp r7, #0 + beq _080541EC + ldr r3, _080541E8 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _080542DC + .align 2, 0 +_080541E0: .4byte 0x02024074 +_080541E4: .4byte 0x02023EB0 +_080541E8: .4byte 0x02023EB8 +_080541EC: + adds r0, r1, #0 + bl GetBattlerPosition + ldr r4, _080542B0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + mov sl, r1 + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r2, [r0] + movs r1, #0x40 + movs r5, #0 + mov r3, sp + strh r5, [r3, #0x10] + orrs r1, r2 + strh r1, [r0] + ldrb r0, [r6] + lsls r0, r0, #1 + mov r1, r8 + adds r1, #0x18 + adds r0, r0, r1 + ldr r1, _080542B4 + mov sb, r1 + ldrh r1, [r1] + strh r1, [r0] + mov r0, r8 + adds r0, #4 + ldrb r2, [r6] + adds r0, r0, r2 + ldr r5, _080542B8 + ldrb r1, [r5] + strb r1, [r0] + ldrb r0, [r6] + add r0, r8 + movs r1, #3 + strb r1, [r0] + ldrb r0, [r6] + bl GetBattlerPosition + mov r1, sl + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r3, [r1] + ldrb r0, [r5] + movs r4, #0x58 + muls r0, r4, r0 + ldr r2, _080542BC + adds r0, r0, r2 + ldrb r1, [r6] + muls r1, r4, r1 + adds r1, r1, r2 + mov r4, sb + ldrh r2, [r4] + str r7, [sp] + str r7, [sp, #4] + ldrb r4, [r5] + str r4, [sp, #8] + ldrb r4, [r6] + str r4, [sp, #0xc] + bl CalculateBaseDamage + ldrb r1, [r6] + lsls r1, r1, #2 + mov r2, r8 + adds r2, #8 + adds r1, r1, r2 + str r0, [r1] + ldr r1, _080542C0 + ldrb r0, [r5] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1c + cmp r0, #0 + bge _0805429C + ldrb r4, [r6] + lsls r4, r4, #2 + adds r4, r4, r2 + ldr r1, [r4] + lsls r0, r1, #4 + subs r0, r0, r1 + movs r1, #0xa + bl __divsi3 + str r0, [r4] +_0805429C: + mov r5, sb + ldrh r1, [r5] + ldr r0, _080542C4 + cmp r1, r0 + bne _080542CC + ldr r0, _080542C8 + mov r1, sl + strb r1, [r0, #5] + b _080542D4 + .align 2, 0 +_080542B0: .4byte 0x02023F32 +_080542B4: .4byte 0x02023E8E +_080542B8: .4byte 0x02023EAF +_080542BC: .4byte 0x02023D28 +_080542C0: .4byte 0x02023FE0 +_080542C4: .4byte 0x00000161 +_080542C8: .4byte 0x02023FD6 +_080542CC: + ldr r0, _080542EC + mov r2, sp + ldrb r2, [r2, #0x10] + strb r2, [r0, #5] +_080542D4: + ldr r1, _080542F0 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] +_080542DC: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080542EC: .4byte 0x02023FD6 +_080542F0: .4byte 0x02023EB8 + thumb_func_end atkC3_trysetfutureattack + + thumb_func_start atkC4_trydobeatup +atkC4_trydobeatup: @ 0x080542F4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r0, _08054338 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + ldr r7, _0805433C + cmp r0, #0 + bne _0805430E + ldr r7, _08054340 +_0805430E: + ldr r2, _08054344 + ldr r0, _08054348 + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + ldrh r0, [r0, #0x28] + cmp r0, #0 + bne _08054350 + ldr r3, _0805434C + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + b _080544EC + .align 2, 0 +_08054338: .4byte 0x02023EAF +_0805433C: .4byte 0x020243E8 +_08054340: .4byte 0x02024190 +_08054344: .4byte 0x02023D28 +_08054348: .4byte 0x02023EB0 +_0805434C: .4byte 0x02023EB8 +_08054350: + ldr r6, _0805448C + ldrb r0, [r6] + mov r8, r0 + cmp r0, #5 + bls _0805435C + b _080544B8 +_0805435C: + adds r4, r6, #0 + movs r5, #0x64 +_08054360: + ldrb r0, [r4] + muls r0, r5, r0 + adds r0, r7, r0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _080543A4 + ldrb r0, [r6] + muls r0, r5, r0 + adds r0, r7, r0 + movs r1, #0x41 + bl GetMonData + cmp r0, #0 + beq _080543A4 + ldrb r0, [r4] + muls r0, r5, r0 + adds r0, r7, r0 + movs r1, #0x41 + bl GetMonData + movs r1, #0xce + lsls r1, r1, #1 + cmp r0, r1 + beq _080543A4 + ldrb r0, [r4] + muls r0, r5, r0 + adds r0, r7, r0 + movs r1, #0x37 + bl GetMonData + cmp r0, #0 + beq _080543B4 +_080543A4: + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + adds r6, r4, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + bls _08054360 +_080543B4: + ldr r1, _0805448C + mov sb, r1 + ldrb r2, [r1] + cmp r2, #5 + bhi _080544B8 + ldr r1, _08054490 + movs r0, #0xfd + strb r0, [r1] + movs r0, #4 + strb r0, [r1, #1] + ldr r6, _08054494 + ldrb r0, [r6] + strb r0, [r1, #2] + strb r2, [r1, #3] + movs r0, #0xff + strb r0, [r1, #4] + ldr r1, _08054498 + ldr r0, [r1] + adds r0, #9 + str r0, [r1] + ldr r2, _0805449C + mov r8, r2 + ldr r5, _080544A0 + mov r1, sb + ldrb r0, [r1] + movs r4, #0x64 + muls r0, r4, r0 + adds r0, r7, r0 + movs r1, #0xb + bl GetMonData + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrb r3, [r1, #1] + mov r2, r8 + str r3, [r2] + ldr r2, _080544A4 + ldr r0, _080544A8 + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #1] + muls r0, r3, r0 + mov r1, r8 + str r0, [r1] + mov r2, sb + ldrb r0, [r2] + muls r0, r4, r0 + adds r0, r7, r0 + movs r1, #0x38 + bl GetMonData + lsls r0, r0, #1 + movs r1, #5 + bl __udivsi3 + adds r0, #2 + mov r2, r8 + ldr r1, [r2] + muls r0, r1, r0 + str r0, [r2] + ldr r3, _080544AC + ldr r1, _080544B0 + ldrb r2, [r1] + movs r1, #0x58 + muls r1, r2, r1 + adds r1, r1, r3 + ldrh r2, [r1] + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrb r1, [r1, #2] + bl __divsi3 + mov r1, r8 + str r0, [r1] + movs r1, #0x32 + bl __divsi3 + adds r2, r0, #2 + mov r0, r8 + str r2, [r0] + ldr r1, _080544B4 + ldrb r0, [r6] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1c + cmp r0, #0 + bge _08054480 + lsls r0, r2, #4 + subs r0, r0, r2 + movs r1, #0xa + bl __divsi3 + mov r1, r8 + str r0, [r1] +_08054480: + mov r2, sb + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + b _080544F2 + .align 2, 0 +_0805448C: .4byte 0x02023FD6 +_08054490: .4byte 0x02022C0C +_08054494: .4byte 0x02023EAF +_08054498: .4byte 0x02023EB8 +_0805449C: .4byte 0x02023E94 +_080544A0: .4byte 0x082F0D54 +_080544A4: .4byte 0x082ED220 +_080544A8: .4byte 0x02023E8E +_080544AC: .4byte 0x02023D28 +_080544B0: .4byte 0x02023EB0 +_080544B4: .4byte 0x02023FE0 +_080544B8: + mov r0, r8 + cmp r0, #0 + beq _080544D8 + ldr r3, _080544D4 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + b _080544EC + .align 2, 0 +_080544D4: .4byte 0x02023EB8 +_080544D8: + ldr r3, _08054500 + ldr r2, [r3] + ldrb r1, [r2, #5] + ldrb r0, [r2, #6] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #7] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #8] +_080544EC: + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] +_080544F2: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08054500: .4byte 0x02023EB8 + thumb_func_end atkC4_trydobeatup + + thumb_func_start atkC5_setsemiinvulnerablebit +atkC5_setsemiinvulnerablebit: @ 0x08054504 + push {lr} + ldr r0, _08054518 + ldrh r1, [r0] + cmp r1, #0x5b + beq _08054544 + cmp r1, #0x5b + bgt _0805451C + cmp r1, #0x13 + beq _08054528 + b _08054570 + .align 2, 0 +_08054518: .4byte 0x02023E8E +_0805451C: + ldr r0, _08054538 + cmp r1, r0 + beq _0805455C + adds r0, #0x31 + cmp r1, r0 + bne _08054570 +_08054528: + ldr r2, _0805453C + ldr r0, _08054540 + ldrb r1, [r0] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r0, [r1] + movs r2, #0x40 + b _0805456C + .align 2, 0 +_08054538: .4byte 0x00000123 +_0805453C: .4byte 0x02023F50 +_08054540: .4byte 0x02023EAF +_08054544: + ldr r2, _08054554 + ldr r0, _08054558 + ldrb r1, [r0] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r0, [r1] + movs r2, #0x80 + b _0805456C + .align 2, 0 +_08054554: .4byte 0x02023F50 +_08054558: .4byte 0x02023EAF +_0805455C: + ldr r2, _0805457C + ldr r0, _08054580 + ldrb r1, [r0] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r0, [r1] + movs r2, #0x80 + lsls r2, r2, #0xb +_0805456C: + orrs r0, r2 + str r0, [r1] +_08054570: + ldr r1, _08054584 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0805457C: .4byte 0x02023F50 +_08054580: .4byte 0x02023EAF +_08054584: .4byte 0x02023EB8 + thumb_func_end atkC5_setsemiinvulnerablebit + + thumb_func_start sub_08054588 +sub_08054588: @ 0x08054588 + push {lr} + ldr r0, _0805459C + ldrh r1, [r0] + cmp r1, #0x5b + beq _080545CC + cmp r1, #0x5b + bgt _080545A0 + cmp r1, #0x13 + beq _080545AC + b _080545FA + .align 2, 0 +_0805459C: .4byte 0x02023E8E +_080545A0: + ldr r0, _080545C0 + cmp r1, r0 + beq _080545E8 + adds r0, #0x31 + cmp r1, r0 + bne _080545FA +_080545AC: + ldr r2, _080545C4 + ldr r0, _080545C8 + ldrb r1, [r0] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r0, [r1] + movs r2, #0x41 + rsbs r2, r2, #0 + b _080545F6 + .align 2, 0 +_080545C0: .4byte 0x00000123 +_080545C4: .4byte 0x02023F50 +_080545C8: .4byte 0x02023EAF +_080545CC: + ldr r2, _080545E0 + ldr r0, _080545E4 + ldrb r1, [r0] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r0, [r1] + movs r2, #0x81 + rsbs r2, r2, #0 + b _080545F6 + .align 2, 0 +_080545E0: .4byte 0x02023F50 +_080545E4: .4byte 0x02023EAF +_080545E8: + ldr r2, _08054608 + ldr r0, _0805460C + ldrb r1, [r0] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r0, [r1] + ldr r2, _08054610 +_080545F6: + ands r0, r2 + str r0, [r1] +_080545FA: + ldr r1, _08054614 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08054608: .4byte 0x02023F50 +_0805460C: .4byte 0x02023EAF +_08054610: .4byte 0xFFFBFFFF +_08054614: .4byte 0x02023EB8 + thumb_func_end sub_08054588 + + thumb_func_start atkC7_setminimize +atkC7_setminimize: @ 0x08054618 + push {lr} + ldr r0, _08054648 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x12 + ands r0, r1 + cmp r0, #0 + beq _0805463C + ldr r2, _0805464C + ldr r0, _08054650 + ldrb r1, [r0] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r0, [r1] + movs r2, #0x80 + lsls r2, r2, #1 + orrs r0, r2 + str r0, [r1] +_0805463C: + ldr r1, _08054654 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08054648: .4byte 0x02023F24 +_0805464C: .4byte 0x02023F50 +_08054650: .4byte 0x02023EAF +_08054654: .4byte 0x02023EB8 + thumb_func_end atkC7_setminimize + + thumb_func_start atkC8_sethail +atkC8_sethail: @ 0x08054658 + push {lr} + ldr r3, _0805467C + ldrh r1, [r3] + movs r2, #0x80 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _08054688 + ldr r2, _08054680 + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08054684 + movs r0, #2 + strb r0, [r1, #5] + b _08054696 + .align 2, 0 +_0805467C: .4byte 0x02024070 +_08054680: .4byte 0x02023F20 +_08054684: .4byte 0x02023FD6 +_08054688: + strh r2, [r3] + ldr r0, _080546A4 + movs r1, #5 + strb r1, [r0, #5] + ldr r0, _080546A8 + adds r0, #0x28 + strb r1, [r0] +_08054696: + ldr r1, _080546AC + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080546A4: .4byte 0x02023FD6 +_080546A8: .4byte 0x02024074 +_080546AC: .4byte 0x02023EB8 + thumb_func_end atkC8_sethail + + thumb_func_start atkC9_jumpifattackandspecialattackcannotfall +atkC9_jumpifattackandspecialattackcannotfall: @ 0x080546B0 + push {r4, lr} + ldr r2, _080546F4 + ldr r0, _080546F8 + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r1, r0, r2 + movs r0, #0x19 + ldrsb r0, [r1, r0] + adds r3, r2, #0 + cmp r0, #0 + bne _08054704 + movs r0, #0x1c + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _08054704 + ldr r0, _080546FC + ldrb r0, [r0, #6] + cmp r0, #1 + beq _08054704 + ldr r3, _08054700 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08054730 + .align 2, 0 +_080546F4: .4byte 0x02023D28 +_080546F8: .4byte 0x02023EB0 +_080546FC: .4byte 0x02023FD6 +_08054700: .4byte 0x02023EB8 +_08054704: + ldr r4, _08054738 + ldr r0, _0805473C + ldrb r0, [r0] + strb r0, [r4] + ldr r2, _08054740 + ldrb r1, [r4] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r3 + ldrh r0, [r0, #0x28] + str r0, [r2] + ldr r1, _08054744 + movs r0, #0 + bl BtlController_EmitHealthBarUpdate + ldrb r0, [r4] + bl MarkBattlerForControllerExec + ldr r1, _08054748 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] +_08054730: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08054738: .4byte 0x02023D08 +_0805473C: .4byte 0x02023EAF +_08054740: .4byte 0x02023E94 +_08054744: .4byte 0x00007FFF +_08054748: .4byte 0x02023EB8 + thumb_func_end atkC9_jumpifattackandspecialattackcannotfall + + thumb_func_start atkCA_setforcedtarget +atkCA_setforcedtarget: @ 0x0805474C + push {r4, r5, lr} + ldr r4, _0805478C + ldrb r0, [r4] + bl GetBattlerSide + ldr r5, _08054790 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + movs r0, #1 + strb r0, [r1, #8] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrb r0, [r4] + strb r0, [r1, #9] + ldr r1, _08054794 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0805478C: .4byte 0x02023EAF +_08054790: .4byte 0x02023F38 +_08054794: .4byte 0x02023EB8 + thumb_func_end atkCA_setforcedtarget + + thumb_func_start atkCB_setcharge +atkCB_setcharge: @ 0x08054798 + push {r4, lr} + ldr r0, _080547EC + ldr r3, _080547F0 + ldrb r1, [r3] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + movs r2, #0x80 + lsls r2, r2, #2 + orrs r0, r2 + str r0, [r1] + ldr r4, _080547F4 + ldrb r1, [r3] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r2, [r0, #0x12] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #2 + orrs r1, r2 + strb r1, [r0, #0x12] + ldrb r1, [r3] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r2, [r0, #0x12] + movs r1, #0xf + ands r1, r2 + movs r2, #0x20 + orrs r1, r2 + strb r1, [r0, #0x12] + ldr r1, _080547F8 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080547EC: .4byte 0x02023F50 +_080547F0: .4byte 0x02023EAF +_080547F4: .4byte 0x02023F60 +_080547F8: .4byte 0x02023EB8 + thumb_func_end atkCB_setcharge + + thumb_func_start atkCC_callterrainattack +atkCC_callterrainattack: @ 0x080547FC + push {r4, lr} + ldr r2, _0805484C + ldr r0, [r2] + ldr r1, _08054850 + ands r0, r1 + str r0, [r2] + ldr r4, _08054854 + ldr r1, _08054858 + ldr r0, _0805485C + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r4] + ldrh r0, [r4] + movs r1, #0 + bl GetMoveTarget + ldr r1, _08054860 + strb r0, [r1] + ldr r3, _08054864 + ldr r2, _08054868 + ldrh r1, [r4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r3 + ldr r0, [r0] + bl BattleScriptPush + ldr r1, _0805486C + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0805484C: .4byte 0x02023F24 +_08054850: .4byte 0xFFFFFBFF +_08054854: .4byte 0x02023E8E +_08054858: .4byte 0x082ECD98 +_0805485C: .4byte 0x02022C94 +_08054860: .4byte 0x02023EB0 +_08054864: .4byte 0x08286C30 +_08054868: .4byte 0x082ED220 +_0805486C: .4byte 0x02023EB8 + thumb_func_end atkCC_callterrainattack + + thumb_func_start atkCD_cureifburnedparalysedorpoisoned +atkCD_cureifburnedparalysedorpoisoned: @ 0x08054870 + push {r4, r5, r6, lr} + sub sp, #4 + ldr r1, _080548BC + ldr r3, _080548C0 + ldrb r0, [r3] + movs r6, #0x58 + muls r0, r6, r0 + adds r5, r1, #0 + adds r5, #0x4c + adds r2, r0, r5 + ldr r0, [r2] + movs r1, #0xd8 + ands r0, r1 + cmp r0, #0 + beq _080548CC + movs r0, #0 + str r0, [r2] + ldr r1, _080548C4 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] + ldr r4, _080548C8 + ldrb r0, [r3] + strb r0, [r4] + ldrb r0, [r4] + muls r0, r6, r0 + adds r0, r0, r5 + str r0, [sp] + movs r0, #0 + movs r1, #0x28 + movs r2, #0 + movs r3, #4 + bl BtlController_EmitSetMonData + ldrb r0, [r4] + bl MarkBattlerForControllerExec + b _080548E6 + .align 2, 0 +_080548BC: .4byte 0x02023D28 +_080548C0: .4byte 0x02023EAF +_080548C4: .4byte 0x02023EB8 +_080548C8: .4byte 0x02023D08 +_080548CC: + ldr r3, _080548F0 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] +_080548E6: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080548F0: .4byte 0x02023EB8 + thumb_func_end atkCD_cureifburnedparalysedorpoisoned + + thumb_func_start atkCE_settorment +atkCE_settorment: @ 0x080548F4 + push {lr} + ldr r1, _0805492C + ldr r0, _08054930 + ldrb r2, [r0] + movs r0, #0x58 + muls r0, r2, r0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r1, [r0] + movs r2, #0x80 + lsls r2, r2, #0x18 + cmp r1, #0 + bge _08054938 + ldr r3, _08054934 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08054944 + .align 2, 0 +_0805492C: .4byte 0x02023D28 +_08054930: .4byte 0x02023EB0 +_08054934: .4byte 0x02023EB8 +_08054938: + orrs r1, r2 + str r1, [r0] + ldr r1, _08054948 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] +_08054944: + pop {r0} + bx r0 + .align 2, 0 +_08054948: .4byte 0x02023EB8 + thumb_func_end atkCE_settorment + + thumb_func_start atkCF_jumpifnodamage +atkCF_jumpifnodamage: @ 0x0805494C + push {lr} + ldr r2, _08054978 + ldr r0, _0805497C + ldrb r0, [r0] + lsls r1, r0, #4 + adds r0, r2, #4 + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, #0 + bne _0805496C + adds r0, r2, #0 + adds r0, #8 + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, #0 + beq _08054984 +_0805496C: + ldr r1, _08054980 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] + b _0805499E + .align 2, 0 +_08054978: .4byte 0x02023FE0 +_0805497C: .4byte 0x02023EAF +_08054980: .4byte 0x02023EB8 +_08054984: + ldr r3, _080549A4 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] +_0805499E: + pop {r0} + bx r0 + .align 2, 0 +_080549A4: .4byte 0x02023EB8 + thumb_func_end atkCF_jumpifnodamage + + thumb_func_start atkD0_settaunt +atkD0_settaunt: @ 0x080549A8 + push {r4, lr} + ldr r4, _080549EC + ldr r3, _080549F0 + ldrb r0, [r3] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r2, r1, r4 + ldrb r1, [r2, #0x13] + lsls r0, r1, #0x1c + cmp r0, #0 + bne _080549F8 + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #0x13] + ldrb r1, [r3] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r2, [r0, #0x13] + movs r1, #0xf + ands r1, r2 + movs r2, #0x20 + orrs r1, r2 + strb r1, [r0, #0x13] + ldr r1, _080549F4 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] + b _08054A12 + .align 2, 0 +_080549EC: .4byte 0x02023F60 +_080549F0: .4byte 0x02023EB0 +_080549F4: .4byte 0x02023EB8 +_080549F8: + ldr r3, _08054A18 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] +_08054A12: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08054A18: .4byte 0x02023EB8 + thumb_func_end atkD0_settaunt + + thumb_func_start atkD1_trysethelpinghand +atkD1_trysethelpinghand: @ 0x08054A1C + push {r4, lr} + ldr r4, _08054A84 + ldrb r0, [r4] + bl GetBattlerPosition + movs r1, #2 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + ldr r3, _08054A88 + strb r0, [r3] + ldr r0, _08054A8C + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08054AA0 + ldr r0, _08054A90 + ldrb r1, [r0] + ldr r2, _08054A94 + ldrb r3, [r3] + lsls r0, r3, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _08054AA0 + ldr r1, _08054A98 + ldrb r0, [r4] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1c + cmp r0, #0 + blt _08054AA0 + lsls r0, r3, #4 + adds r2, r0, r1 + ldrb r1, [r2] + lsls r0, r1, #0x1c + cmp r0, #0 + blt _08054AA0 + movs r0, #8 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08054A9C + ldr r0, [r1] + adds r0, #5 + str r0, [r1] + b _08054ABA + .align 2, 0 +_08054A84: .4byte 0x02023EAF +_08054A88: .4byte 0x02023EB0 +_08054A8C: .4byte 0x02022C90 +_08054A90: .4byte 0x02023EB4 +_08054A94: .4byte 0x082FACB4 +_08054A98: .4byte 0x02023FE0 +_08054A9C: .4byte 0x02023EB8 +_08054AA0: + ldr r3, _08054AC0 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] +_08054ABA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08054AC0: .4byte 0x02023EB8 + thumb_func_end atkD1_trysethelpinghand + + thumb_func_start atkD2_tryswapitems +atkD2_tryswapitems: @ 0x08054AC4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r4, _08054BC8 + ldr r0, [r4] + movs r1, #0x80 + lsls r1, r1, #0x13 + ands r0, r1 + cmp r0, #0 + bne _08054BAA + ldr r0, _08054BCC + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08054AF8 + ldr r0, [r4] + ldr r1, _08054BD0 + ands r0, r1 + cmp r0, #0 + beq _08054BAA +_08054AF8: + ldr r6, _08054BCC + ldrb r0, [r6] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r7, _08054BD4 + ldrb r0, [r7] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _08054BC8 + ldr r0, [r0] + ldr r1, _08054BD0 + ands r0, r1 + cmp r0, #0 + bne _08054B56 + ldr r0, _08054BD8 + adds r2, r0, #0 + adds r2, #0x29 + adds r0, r4, r2 + ldrb r1, [r0] + ldr r4, _08054BDC + ldr r3, _08054BE0 + ldrb r0, [r6] + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _08054BAA + adds r0, r5, r2 + ldrb r1, [r0] + ldrb r0, [r7] + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _08054BAA +_08054B56: + ldr r0, _08054BE4 + mov r8, r0 + ldr r1, _08054BCC + ldrb r4, [r1] + movs r5, #0x58 + adds r0, r4, #0 + muls r0, r5, r0 + add r0, r8 + mov sb, r0 + ldrh r3, [r0, #0x2e] + adds r1, r3, #0 + cmp r1, #0 + bne _08054B7E + ldr r0, _08054BD4 + ldrb r0, [r0] + muls r0, r5, r0 + add r0, r8 + ldrh r0, [r0, #0x2e] + cmp r0, #0 + beq _08054BAA +_08054B7E: + cmp r1, #0xaf + beq _08054BAA + ldr r7, _08054BD4 + ldrb r0, [r7] + muls r0, r5, r0 + mov r2, r8 + adds r1, r0, r2 + ldrh r2, [r1, #0x2e] + cmp r2, #0xaf + beq _08054BAA + adds r0, r3, #0 + subs r0, #0x79 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xb + bls _08054BAA + adds r0, r2, #0 + subs r0, #0x79 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xb + bhi _08054BEC +_08054BAA: + ldr r3, _08054BE8 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08054D42 + .align 2, 0 +_08054BC8: .4byte 0x02022C90 +_08054BCC: .4byte 0x02023EAF +_08054BD0: .4byte 0x0A3F0902 +_08054BD4: .4byte 0x02023EB0 +_08054BD8: .4byte 0x02024074 +_08054BDC: .4byte 0x082FACB4 +_08054BE0: .4byte 0x02023D12 +_08054BE4: .4byte 0x02023D28 +_08054BE8: .4byte 0x02023EB8 +_08054BEC: + adds r0, r1, #0 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x3c + bne _08054C20 + ldr r1, _08054C14 + ldr r0, _08054C18 + str r0, [r1] + ldr r1, _08054C1C + ldrb r0, [r7] + muls r0, r5, r0 + add r0, r8 + adds r0, #0x20 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + ldrb r1, [r1] + bl RecordAbilityBattle + b _08054D42 + .align 2, 0 +_08054C14: .4byte 0x02023EB8 +_08054C18: .4byte 0x08289BC7 +_08054C1C: .4byte 0x02023EAE +_08054C20: + ldr r3, _08054D0C + mov sl, r3 + lsls r0, r4, #1 + adds r0, #0xd0 + ldr r1, [r3] + adds r6, r1, r0 + mov r0, sb + ldrh r0, [r0, #0x2e] + mov sb, r0 + strh r2, [r6] + ldr r1, _08054D10 + ldrb r0, [r1] + muls r0, r5, r0 + add r0, r8 + movs r1, #0 + strh r1, [r0, #0x2e] + ldrb r0, [r7] + muls r0, r5, r0 + add r0, r8 + mov r2, sb + strh r2, [r0, #0x2e] + ldr r4, _08054D14 + ldr r3, _08054D10 + ldrb r0, [r3] + strb r0, [r4] + str r6, [sp] + movs r0, #0 + movs r1, #2 + movs r2, #0 + movs r3, #2 + bl BtlController_EmitSetMonData + ldr r1, _08054D10 + ldrb r0, [r1] + bl MarkBattlerForControllerExec + ldrb r0, [r7] + strb r0, [r4] + ldrb r0, [r7] + muls r0, r5, r0 + mov r1, r8 + adds r1, #0x2e + adds r0, r0, r1 + str r0, [sp] + movs r0, #0 + movs r1, #2 + movs r2, #0 + movs r3, #2 + bl BtlController_EmitSetMonData + ldrb r0, [r7] + bl MarkBattlerForControllerExec + ldrb r0, [r7] + mov r2, sl + ldr r1, [r2] + lsls r0, r0, #1 + adds r0, r0, r1 + adds r0, #0xc8 + movs r3, #0 + strb r3, [r0] + ldrb r0, [r7] + ldr r1, [r2] + lsls r0, r0, #1 + adds r0, r0, r1 + adds r0, #0xc9 + strb r3, [r0] + ldr r1, _08054D10 + ldrb r0, [r1] + ldr r1, [r2] + lsls r0, r0, #1 + adds r0, r0, r1 + adds r0, #0xc8 + strb r3, [r0] + ldr r2, _08054D10 + ldrb r0, [r2] + mov r3, sl + ldr r1, [r3] + lsls r0, r0, #1 + adds r0, r0, r1 + adds r0, #0xc9 + movs r1, #0 + strb r1, [r0] + ldr r1, _08054D18 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] + ldr r1, _08054D1C + movs r3, #0xfd + strb r3, [r1] + movs r2, #0xa + strb r2, [r1, #1] + ldrh r0, [r6] + strb r0, [r1, #2] + ldrh r0, [r6] + lsrs r0, r0, #8 + strb r0, [r1, #3] + movs r0, #0xff + strb r0, [r1, #4] + ldr r1, _08054D20 + strb r3, [r1] + strb r2, [r1, #1] + mov r2, sb + strb r2, [r1, #2] + mov r3, sb + lsrs r0, r3, #8 + strb r0, [r1, #3] + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1, #4] + cmp r3, #0 + beq _08054D28 + ldrh r0, [r6] + cmp r0, #0 + beq _08054D3C + ldr r1, _08054D24 + movs r0, #2 + b _08054D40 + .align 2, 0 +_08054D0C: .4byte 0x02024140 +_08054D10: .4byte 0x02023EAF +_08054D14: .4byte 0x02023D08 +_08054D18: .4byte 0x02023EB8 +_08054D1C: .4byte 0x02022C0C +_08054D20: .4byte 0x02022C1C +_08054D24: .4byte 0x02023FD6 +_08054D28: + ldrh r0, [r6] + cmp r0, #0 + beq _08054D3C + ldr r0, _08054D38 + movs r1, #0 + strb r1, [r0, #5] + b _08054D42 + .align 2, 0 +_08054D38: .4byte 0x02023FD6 +_08054D3C: + ldr r1, _08054D54 + movs r0, #1 +_08054D40: + strb r0, [r1, #5] +_08054D42: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08054D54: .4byte 0x02023FD6 + thumb_func_end atkD2_tryswapitems + + thumb_func_start atkD3_trycopyability +atkD3_trycopyability: @ 0x08054D58 + push {r4, lr} + ldr r3, _08054D98 + ldr r4, _08054D9C + ldrb r0, [r4] + movs r2, #0x58 + muls r0, r2, r0 + adds r0, r0, r3 + adds r0, #0x20 + ldrb r1, [r0] + adds r0, r1, #0 + cmp r0, #0 + beq _08054DAC + cmp r0, #0x19 + beq _08054DAC + ldr r0, _08054DA0 + ldrb r0, [r0] + muls r0, r2, r0 + adds r0, r0, r3 + adds r0, #0x20 + strb r1, [r0] + ldr r1, _08054DA4 + ldrb r0, [r4] + muls r0, r2, r0 + adds r0, r0, r3 + adds r0, #0x20 + ldrb r0, [r0] + strb r0, [r1] + ldr r1, _08054DA8 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] + b _08054DC6 + .align 2, 0 +_08054D98: .4byte 0x02023D28 +_08054D9C: .4byte 0x02023EB0 +_08054DA0: .4byte 0x02023EAF +_08054DA4: .4byte 0x02023EAE +_08054DA8: .4byte 0x02023EB8 +_08054DAC: + ldr r3, _08054DCC + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] +_08054DC6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08054DCC: .4byte 0x02023EB8 + thumb_func_end atkD3_trycopyability + + thumb_func_start atkD4_trywish +atkD4_trywish: @ 0x08054DD0 + push {r4, r5, r6, r7, lr} + ldr r7, _08054DE4 + ldr r2, [r7] + ldrb r3, [r2, #1] + cmp r3, #0 + beq _08054DE8 + cmp r3, #1 + beq _08054E20 + b _08054E9C + .align 2, 0 +_08054DE4: .4byte 0x02023EB8 +_08054DE8: + ldr r1, _08054E14 + ldr r4, _08054E18 + adds r0, r1, #0 + adds r0, #0x20 + ldrb r5, [r4] + adds r3, r0, r5 + ldrb r0, [r3] + cmp r0, #0 + bne _08054E6C + movs r0, #2 + strb r0, [r3] + ldrb r0, [r4] + adds r1, #0x24 + adds r1, r0, r1 + ldr r2, _08054E1C + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strb r0, [r1] + ldr r0, [r7] + adds r0, #6 + b _08054E9A + .align 2, 0 +_08054E14: .4byte 0x02024074 +_08054E18: .4byte 0x02023EAF +_08054E1C: .4byte 0x02023D12 +_08054E20: + ldr r1, _08054E84 + movs r0, #0xfd + strb r0, [r1] + movs r0, #4 + strb r0, [r1, #1] + ldr r4, _08054E88 + ldrb r0, [r4] + strb r0, [r1, #2] + ldr r0, _08054E8C + adds r0, #0x24 + ldrb r5, [r4] + adds r0, r0, r5 + ldrb r0, [r0] + strb r0, [r1, #3] + movs r0, #0xff + strb r0, [r1, #4] + ldr r1, _08054E90 + ldr r6, _08054E94 + ldrb r0, [r4] + movs r5, #0x58 + muls r0, r5, r0 + adds r0, r0, r6 + ldrh r0, [r0, #0x2c] + lsrs r0, r0, #1 + str r0, [r1] + cmp r0, #0 + bne _08054E58 + str r3, [r1] +_08054E58: + ldr r0, [r1] + rsbs r0, r0, #0 + str r0, [r1] + ldrb r0, [r4] + muls r0, r5, r0 + adds r0, r0, r6 + ldrh r1, [r0, #0x28] + ldrh r0, [r0, #0x2c] + cmp r1, r0 + bne _08054E98 +_08054E6C: + ldrb r1, [r2, #2] + ldrb r0, [r2, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r7] + b _08054E9C + .align 2, 0 +_08054E84: .4byte 0x02022C0C +_08054E88: .4byte 0x02023EB0 +_08054E8C: .4byte 0x02024074 +_08054E90: .4byte 0x02023E94 +_08054E94: .4byte 0x02023D28 +_08054E98: + adds r0, r2, #6 +_08054E9A: + str r0, [r7] +_08054E9C: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end atkD4_trywish + + thumb_func_start atkD5_trysetroots +atkD5_trysetroots: @ 0x08054EA4 + push {lr} + ldr r1, _08054EDC + ldr r0, _08054EE0 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r2, r0, r1 + ldr r1, [r2] + movs r3, #0x80 + lsls r3, r3, #3 + adds r0, r1, #0 + ands r0, r3 + cmp r0, #0 + beq _08054EE8 + ldr r3, _08054EE4 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08054EF4 + .align 2, 0 +_08054EDC: .4byte 0x02023F50 +_08054EE0: .4byte 0x02023EAF +_08054EE4: .4byte 0x02023EB8 +_08054EE8: + orrs r1, r3 + str r1, [r2] + ldr r1, _08054EF8 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] +_08054EF4: + pop {r0} + bx r0 + .align 2, 0 +_08054EF8: .4byte 0x02023EB8 + thumb_func_end atkD5_trysetroots + + thumb_func_start atkD6_doubledamagedealtifdamaged +atkD6_doubledamagedealtifdamaged: @ 0x08054EFC + push {lr} + ldr r3, _08054F48 + ldr r0, _08054F4C + ldrb r0, [r0] + lsls r2, r0, #4 + adds r0, r3, #4 + adds r0, r2, r0 + ldr r0, [r0] + cmp r0, #0 + beq _08054F1C + adds r0, r2, r3 + ldr r1, _08054F50 + ldrb r0, [r0, #0xc] + ldrb r1, [r1] + cmp r0, r1 + beq _08054F34 +_08054F1C: + adds r0, r3, #0 + adds r0, #8 + adds r0, r2, r0 + ldr r0, [r0] + cmp r0, #0 + beq _08054F3A + adds r0, r2, r3 + ldr r1, _08054F50 + ldrb r0, [r0, #0xd] + ldrb r1, [r1] + cmp r0, r1 + bne _08054F3A +_08054F34: + ldr r1, _08054F54 + movs r0, #2 + strb r0, [r1, #0xe] +_08054F3A: + ldr r1, _08054F58 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08054F48: .4byte 0x02023FE0 +_08054F4C: .4byte 0x02023EAF +_08054F50: .4byte 0x02023EB0 +_08054F54: .4byte 0x02024118 +_08054F58: .4byte 0x02023EB8 + thumb_func_end atkD6_doubledamagedealtifdamaged + + thumb_func_start atkD7_setyawn +atkD7_setyawn: @ 0x08054F5C + push {r4, lr} + ldr r1, _08054FA0 + ldr r0, _08054FA4 + ldrb r3, [r0] + lsls r0, r3, #2 + adds r4, r0, r1 + ldr r2, [r4] + movs r0, #0xc0 + lsls r0, r0, #5 + ands r0, r2 + cmp r0, #0 + bne _08054F84 + ldr r1, _08054FA8 + movs r0, #0x58 + muls r0, r3, r0 + adds r1, #0x4c + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _08054FB0 +_08054F84: + ldr r3, _08054FAC + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08054FC0 + .align 2, 0 +_08054FA0: .4byte 0x02023F50 +_08054FA4: .4byte 0x02023EB0 +_08054FA8: .4byte 0x02023D28 +_08054FAC: .4byte 0x02023EB8 +_08054FB0: + movs r0, #0x80 + lsls r0, r0, #5 + orrs r2, r0 + str r2, [r4] + ldr r1, _08054FC8 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] +_08054FC0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08054FC8: .4byte 0x02023EB8 + thumb_func_end atkD7_setyawn + + thumb_func_start atkD8_setdamagetohealthdifference +atkD8_setdamagetohealthdifference: @ 0x08054FCC + push {lr} + ldr r2, _08055008 + ldr r0, _0805500C + ldrb r0, [r0] + movs r1, #0x58 + muls r0, r1, r0 + adds r3, r0, r2 + ldr r0, _08055010 + ldrb r0, [r0] + muls r0, r1, r0 + adds r1, r0, r2 + ldrh r0, [r3, #0x28] + ldrh r2, [r1, #0x28] + cmp r0, r2 + bhi _08055018 + ldr r3, _08055014 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _0805502A + .align 2, 0 +_08055008: .4byte 0x02023D28 +_0805500C: .4byte 0x02023EB0 +_08055010: .4byte 0x02023EAF +_08055014: .4byte 0x02023EB8 +_08055018: + ldr r2, _08055030 + ldrh r0, [r3, #0x28] + ldrh r1, [r1, #0x28] + subs r0, r0, r1 + str r0, [r2] + ldr r1, _08055034 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] +_0805502A: + pop {r0} + bx r0 + .align 2, 0 +_08055030: .4byte 0x02023E94 +_08055034: .4byte 0x02023EB8 + thumb_func_end atkD8_setdamagetohealthdifference + + thumb_func_start atkD9_scaledamagebyhealthratio +atkD9_scaledamagebyhealthratio: @ 0x08055038 + push {r4, lr} + ldr r4, _08055084 + ldrh r0, [r4] + cmp r0, #0 + bne _08055074 + ldr r2, _08055088 + ldr r0, _0805508C + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r3, [r0, #1] + ldr r2, _08055090 + ldr r0, _08055094 + ldrb r1, [r0] + movs r0, #0x58 + muls r1, r0, r1 + adds r1, r1, r2 + ldrh r0, [r1, #0x28] + muls r0, r3, r0 + ldrh r1, [r1, #0x2c] + bl __divsi3 + strh r0, [r4] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08055074 + movs r0, #1 + strh r0, [r4] +_08055074: + ldr r1, _08055098 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08055084: .4byte 0x020240A4 +_08055088: .4byte 0x082ED220 +_0805508C: .4byte 0x02023E8E +_08055090: .4byte 0x02023D28 +_08055094: .4byte 0x02023EAF +_08055098: .4byte 0x02023EB8 + thumb_func_end atkD9_scaledamagebyhealthratio + + thumb_func_start atkDA_tryswapabilities +atkDA_tryswapabilities: @ 0x0805509C + push {r4, r5, r6, lr} + ldr r5, _08055100 + ldr r0, _08055104 + ldrb r0, [r0] + movs r4, #0x58 + muls r0, r4, r0 + adds r0, r0, r5 + adds r2, r0, #0 + adds r2, #0x20 + ldrb r1, [r2] + cmp r1, #0 + bne _080550C4 + ldr r0, _08055108 + ldrb r0, [r0] + muls r0, r4, r0 + adds r0, r0, r5 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0 + beq _080550E4 +_080550C4: + cmp r1, #0x19 + beq _080550E4 + ldr r6, _08055108 + ldrb r0, [r6] + muls r0, r4, r0 + adds r0, r0, r5 + adds r0, #0x20 + ldrb r3, [r0] + cmp r3, #0x19 + beq _080550E4 + ldr r0, _0805510C + ldrb r1, [r0] + movs r0, #0x29 + ands r0, r1 + cmp r0, #0 + beq _08055114 +_080550E4: + ldr r3, _08055110 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _0805512A + .align 2, 0 +_08055100: .4byte 0x02023D28 +_08055104: .4byte 0x02023EAF +_08055108: .4byte 0x02023EB0 +_0805510C: .4byte 0x02023F20 +_08055110: .4byte 0x02023EB8 +_08055114: + ldrb r1, [r2] + strb r3, [r2] + ldrb r0, [r6] + muls r0, r4, r0 + adds r0, r0, r5 + adds r0, #0x20 + strb r1, [r0] + ldr r1, _08055130 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] +_0805512A: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08055130: .4byte 0x02023EB8 + thumb_func_end atkDA_tryswapabilities + + thumb_func_start atkDB_tryimprison +atkDB_tryimprison: @ 0x08055134 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r1, _08055154 + ldr r4, _08055158 + ldrb r2, [r4] + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #6 + ands r0, r1 + cmp r0, #0 + beq _08055184 + b _08055206 + .align 2, 0 +_08055154: .4byte 0x02023F50 +_08055158: .4byte 0x02023EAF +_0805515C: + ldr r0, _0805517C + mov r2, sb + ldrb r1, [r2] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + movs r2, #0x80 + lsls r2, r2, #6 + orrs r0, r2 + str r0, [r1] + ldr r1, _08055180 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] + b _080551FE + .align 2, 0 +_0805517C: .4byte 0x02023F50 +_08055180: .4byte 0x02023EB8 +_08055184: + adds r0, r2, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldrb r0, [r4] + bl PressurePPLoseOnUsingImprison + movs r6, #0 + b _080551F6 +_0805519A: + adds r0, r6, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r8, r0 + beq _080551F0 + movs r4, #0 + ldr r7, _0805522C + mov sb, r7 + ldr r0, _08055230 + mov ip, r0 + mov r1, sb + ldrb r0, [r1] + mov r2, ip + adds r2, #0xc + movs r1, #0x58 + muls r0, r1, r0 + adds r3, r0, r2 + adds r5, r6, #0 + muls r5, r1, r5 +_080551C4: + movs r2, #0 + ldrh r1, [r3] + mov r0, ip + adds r0, #0xc + adds r0, r5, r0 +_080551CE: + ldrh r7, [r0] + cmp r1, r7 + bne _080551D8 + cmp r1, #0 + bne _080551E0 +_080551D8: + adds r0, #2 + adds r2, #1 + cmp r2, #3 + ble _080551CE +_080551E0: + cmp r2, #4 + bne _080551EC + adds r3, #2 + adds r4, #1 + cmp r4, #3 + ble _080551C4 +_080551EC: + cmp r4, #4 + bne _0805515C +_080551F0: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_080551F6: + ldr r0, _08055234 + ldrb r0, [r0] + cmp r6, r0 + blo _0805519A +_080551FE: + ldr r0, _08055234 + ldrb r0, [r0] + cmp r6, r0 + bne _08055220 +_08055206: + ldr r3, _08055238 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] +_08055220: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805522C: .4byte 0x02023EAF +_08055230: .4byte 0x02023D28 +_08055234: .4byte 0x02023D10 +_08055238: .4byte 0x02023EB8 + thumb_func_end atkDB_tryimprison + + thumb_func_start atkDC_trysetgrudge +atkDC_trysetgrudge: @ 0x0805523C + push {lr} + ldr r1, _08055274 + ldr r0, _08055278 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r2, r0, r1 + ldr r1, [r2] + movs r3, #0x80 + lsls r3, r3, #7 + adds r0, r1, #0 + ands r0, r3 + cmp r0, #0 + beq _08055280 + ldr r3, _0805527C + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _0805528C + .align 2, 0 +_08055274: .4byte 0x02023F50 +_08055278: .4byte 0x02023EAF +_0805527C: .4byte 0x02023EB8 +_08055280: + orrs r1, r3 + str r1, [r2] + ldr r1, _08055290 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] +_0805528C: + pop {r0} + bx r0 + .align 2, 0 +_08055290: .4byte 0x02023EB8 + thumb_func_end atkDC_trysetgrudge + + thumb_func_start atkDD_weightdamagecalculation +atkDD_weightdamagecalculation: @ 0x08055294 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r5, #0 + ldr r2, _080552F8 + ldrh r0, [r2] + ldr r1, _080552FC + cmp r0, r1 + beq _0805530C + adds r6, r2, #0 + ldr r0, _08055300 + mov r8, r0 + adds r7, r1, #0 + adds r4, r6, #0 +_080552B0: + ldr r0, _08055304 + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + add r0, r8 + ldrh r0, [r0] + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + bl GetPokedexHeightWeight + ldrh r1, [r4] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r1, r0 + bhi _080552DE + adds r4, #4 + adds r5, #2 + ldrh r0, [r4] + cmp r0, r7 + bne _080552B0 +_080552DE: + lsls r0, r5, #1 + adds r0, r0, r6 + ldrh r1, [r0] + ldr r0, _080552FC + cmp r1, r0 + beq _0805530C + ldr r0, _08055308 + adds r1, r5, #1 + lsls r1, r1, #1 + adds r1, r1, r6 + ldrh r1, [r1] + strh r1, [r0] + b _08055312 + .align 2, 0 +_080552F8: .4byte 0x082ECDAC +_080552FC: .4byte 0x0000FFFF +_08055300: .4byte 0x02023D28 +_08055304: .4byte 0x02023EB0 +_08055308: .4byte 0x020240A4 +_0805530C: + ldr r1, _08055324 + movs r0, #0x78 + strh r0, [r1] +_08055312: + ldr r1, _08055328 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08055324: .4byte 0x020240A4 +_08055328: .4byte 0x02023EB8 + thumb_func_end atkDD_weightdamagecalculation + + thumb_func_start atkDE_assistattackselect +atkDE_assistattackselect: @ 0x0805532C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + movs r0, #0 + mov sl, r0 + ldr r0, _0805544C + ldr r0, [r0] + adds r0, #0x18 + str r0, [sp, #4] + ldr r0, _08055450 + ldrb r0, [r0] + bl GetBattlerPosition + movs r1, #1 + ands r1, r0 + ldr r0, _08055454 + str r0, [sp] + cmp r1, #0 + beq _0805535C + ldr r1, _08055458 + str r1, [sp] +_0805535C: + movs r2, #0 +_0805535E: + ldr r1, _0805545C + ldr r0, _08055450 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + adds r1, r2, #1 + str r1, [sp, #8] + ldrh r0, [r0] + cmp r2, r0 + beq _08055404 + movs r0, #0x64 + adds r6, r2, #0 + muls r6, r0, r6 + ldr r0, [sp] + adds r4, r0, r6 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + cmp r0, #0 + beq _08055404 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + movs r1, #0xce + lsls r1, r1, #1 + cmp r0, r1 + beq _08055404 + movs r5, #0 + ldr r1, _08055460 + mov r8, r1 + mov sb, r6 + mov r1, sl + lsls r0, r1, #1 + ldr r1, [sp, #4] + adds r6, r0, r1 +_080553A8: + movs r7, #0 + adds r1, r5, #0 + adds r1, #0xd + ldr r0, [sp] + add r0, sb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r4, #0 + bl IsInvalidForSleepTalkOrAssist + lsls r0, r0, #0x18 + adds r1, r5, #1 + cmp r0, #0 + bne _080553FE + ldr r0, _08055464 + ldrh r2, [r0] + adds r3, r0, #0 + cmp r2, r8 + beq _080553F2 + cmp r4, r2 + beq _080553E8 + ldr r5, _08055460 + adds r2, r3, #0 +_080553DA: + adds r2, #2 + adds r7, #1 + ldrh r0, [r2] + cmp r0, r5 + beq _080553F2 + cmp r4, r0 + bne _080553DA +_080553E8: + lsls r0, r7, #1 + adds r0, r0, r3 + ldrh r0, [r0] + cmp r0, r8 + bne _080553FE +_080553F2: + cmp r4, #0 + beq _080553FE + strh r4, [r6] + adds r6, #2 + movs r0, #1 + add sl, r0 +_080553FE: + adds r5, r1, #0 + cmp r5, #3 + ble _080553A8 +_08055404: + ldr r2, [sp, #8] + cmp r2, #5 + ble _0805535E + mov r1, sl + cmp r1, #0 + beq _0805547C + ldr r2, _08055468 + ldr r0, [r2] + ldr r1, _0805546C + ands r0, r1 + str r0, [r2] + ldr r4, _08055470 + bl Random + movs r1, #0xff + ands r1, r0 + mov r0, sl + muls r0, r1, r0 + asrs r0, r0, #8 + lsls r0, r0, #1 + ldr r1, [sp, #4] + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r4] + ldrh r0, [r4] + movs r1, #0 + bl GetMoveTarget + ldr r1, _08055474 + strb r0, [r1] + ldr r1, _08055478 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] + b _08055496 + .align 2, 0 +_0805544C: .4byte 0x02024140 +_08055450: .4byte 0x02023EAF +_08055454: .4byte 0x02024190 +_08055458: .4byte 0x020243E8 +_0805545C: .4byte 0x02023D12 +_08055460: .4byte 0x0000FFFF +_08055464: .4byte 0x082ECD64 +_08055468: .4byte 0x02023F24 +_0805546C: .4byte 0xFFFFFBFF +_08055470: .4byte 0x02023E92 +_08055474: .4byte 0x02023EB0 +_08055478: .4byte 0x02023EB8 +_0805547C: + ldr r3, _080554A8 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] +_08055496: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080554A8: .4byte 0x02023EB8 + thumb_func_end atkDE_assistattackselect + + thumb_func_start atkDF_trysetmagiccoat +atkDF_trysetmagiccoat: @ 0x080554AC + push {lr} + ldr r1, _080554F4 + ldr r3, _080554F8 + ldrb r0, [r3] + strb r0, [r1] + ldr r2, _080554FC + ldrb r1, [r3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r2, #0x20 + orrs r1, r2 + strb r1, [r0] + ldr r0, _08055500 + ldrb r1, [r0] + ldr r0, _08055504 + ldrb r0, [r0] + subs r0, #1 + cmp r1, r0 + bne _0805550C + ldr r3, _08055508 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08055524 + .align 2, 0 +_080554F4: .4byte 0x02023EB0 +_080554F8: .4byte 0x02023EAF +_080554FC: .4byte 0x02024020 +_08055500: .4byte 0x02023D26 +_08055504: .4byte 0x02023D10 +_08055508: .4byte 0x02023EB8 +_0805550C: + ldr r0, _08055528 + ldrb r1, [r3] + lsls r1, r1, #4 + adds r1, r1, r0 + ldrb r0, [r1] + movs r2, #0x10 + orrs r0, r2 + strb r0, [r1] + ldr r1, _0805552C + ldr r0, [r1] + adds r0, #5 + str r0, [r1] +_08055524: + pop {r0} + bx r0 + .align 2, 0 +_08055528: .4byte 0x02023FE0 +_0805552C: .4byte 0x02023EB8 + thumb_func_end atkDF_trysetmagiccoat + + thumb_func_start atkE0_trysetsnatch +atkE0_trysetsnatch: @ 0x08055530 + push {lr} + ldr r2, _08055574 + ldr r3, _08055578 + ldrb r1, [r3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r2, #0x20 + orrs r1, r2 + strb r1, [r0] + ldr r0, _0805557C + ldrb r1, [r0] + ldr r0, _08055580 + ldrb r0, [r0] + subs r0, #1 + cmp r1, r0 + bne _08055588 + ldr r3, _08055584 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _0805559E + .align 2, 0 +_08055574: .4byte 0x02024020 +_08055578: .4byte 0x02023EAF +_0805557C: .4byte 0x02023D26 +_08055580: .4byte 0x02023D10 +_08055584: .4byte 0x02023EB8 +_08055588: + ldr r0, _080555A4 + ldrb r1, [r3] + lsls r1, r1, #4 + adds r1, r1, r0 + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] + ldr r1, _080555A8 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] +_0805559E: + pop {r0} + bx r0 + .align 2, 0 +_080555A4: .4byte 0x02023FE0 +_080555A8: .4byte 0x02023EB8 + thumb_func_end atkE0_trysetsnatch + + thumb_func_start atkE1_trygetintimidatetarget +atkE1_trygetintimidatetarget: @ 0x080555AC + push {r4, r5, r6, lr} + ldr r4, _08055650 + ldr r0, _08055654 + ldr r0, [r0] + adds r0, #0xd8 + ldrb r0, [r0] + strb r0, [r4, #0x17] + ldrb r0, [r4, #0x17] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r2, _08055658 + movs r0, #0xfd + strb r0, [r2] + movs r0, #9 + strb r0, [r2, #1] + ldr r3, _0805565C + ldrb r1, [r4, #0x17] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r3 + adds r0, #0x20 + ldrb r0, [r0] + strb r0, [r2, #2] + movs r0, #0xff + strb r0, [r2, #3] + ldr r2, _08055660 + ldr r1, _08055664 + ldrb r0, [r2] + ldrb r1, [r1] + cmp r0, r1 + bhs _08055632 + adds r4, r2, #0 + ldr r6, _08055668 +_080555F2: + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r5 + beq _08055614 + ldr r0, _0805566C + ldrb r1, [r0] + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r0, [r0] + ands r1, r0 + ldr r2, _08055664 + cmp r1, #0 + beq _08055628 +_08055614: + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + ldr r1, _08055664 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r2, r1, #0 + ldrb r1, [r2] + cmp r0, r1 + blo _080555F2 +_08055628: + ldr r0, _08055660 + ldrb r0, [r0] + ldrb r2, [r2] + cmp r0, r2 + blo _08055674 +_08055632: + ldr r3, _08055670 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _0805567C + .align 2, 0 +_08055650: .4byte 0x02024118 +_08055654: .4byte 0x02024140 +_08055658: .4byte 0x02022C0C +_0805565C: .4byte 0x02023D28 +_08055660: .4byte 0x02023EB0 +_08055664: .4byte 0x02023D10 +_08055668: .4byte 0x082FACB4 +_0805566C: .4byte 0x02023EB4 +_08055670: .4byte 0x02023EB8 +_08055674: + ldr r1, _08055684 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] +_0805567C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08055684: .4byte 0x02023EB8 + thumb_func_end atkE1_trygetintimidatetarget + + thumb_func_start atkE2_switchoutabilities +atkE2_switchoutabilities: @ 0x08055688 + push {r4, r5, r6, lr} + sub sp, #4 + ldr r5, _080556F0 + ldr r0, [r5] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + ldr r4, _080556F4 + strb r0, [r4] + ldr r3, _080556F8 + ldrb r0, [r4] + movs r6, #0x58 + adds r1, r0, #0 + muls r1, r6, r1 + adds r0, r1, r3 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x1e + bne _080556E2 + adds r3, #0x4c + adds r1, r1, r3 + movs r0, #0 + str r0, [r1] + ldr r2, _080556FC + ldrb r1, [r4] + ldr r0, _08055700 + ldr r0, [r0] + adds r0, r1, r0 + adds r0, #0x58 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r2, [r0] + adds r0, r1, #0 + muls r0, r6, r0 + adds r0, r0, r3 + str r0, [sp] + movs r0, #0 + movs r1, #0x28 + movs r3, #4 + bl BtlController_EmitSetMonData + ldrb r0, [r4] + bl MarkBattlerForControllerExec +_080556E2: + ldr r0, [r5] + adds r0, #2 + str r0, [r5] + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080556F0: .4byte 0x02023EB8 +_080556F4: .4byte 0x02023D08 +_080556F8: .4byte 0x02023D28 +_080556FC: .4byte 0x082FACB4 +_08055700: .4byte 0x02024140 + thumb_func_end atkE2_switchoutabilities + + thumb_func_start atkE3_jumpifhasnohp +atkE3_jumpifhasnohp: @ 0x08055704 + push {r4, lr} + ldr r4, _08055740 + ldr r0, [r4] + ldrb r0, [r0, #1] + bl GetBattlerForBattleScript + ldr r1, _08055744 + strb r0, [r1] + ldr r2, _08055748 + ldrb r1, [r1] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + ldrh r0, [r0, #0x28] + cmp r0, #0 + bne _0805574C + ldr r2, [r4] + ldrb r1, [r2, #2] + ldrb r0, [r2, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _08055752 + .align 2, 0 +_08055740: .4byte 0x02023EB8 +_08055744: .4byte 0x02023D08 +_08055748: .4byte 0x02023D28 +_0805574C: + ldr r0, [r4] + adds r0, #6 + str r0, [r4] +_08055752: + pop {r4} + pop {r0} + bx r0 + thumb_func_end atkE3_jumpifhasnohp + + thumb_func_start atkE4_getsecretpowereffect +atkE4_getsecretpowereffect: @ 0x08055758 + push {lr} + ldr r0, _0805576C + ldrb r0, [r0] + cmp r0, #7 + bhi _080557F4 + lsls r0, r0, #2 + ldr r1, _08055770 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0805576C: .4byte 0x02022C94 +_08055770: .4byte 0x08055774 +_08055774: @ jump table + .4byte _08055794 @ case 0 + .4byte _080557A0 @ case 1 + .4byte _080557AC @ case 2 + .4byte _080557B8 @ case 3 + .4byte _080557C4 @ case 4 + .4byte _080557D0 @ case 5 + .4byte _080557DC @ case 6 + .4byte _080557E8 @ case 7 +_08055794: + ldr r1, _0805579C + movs r0, #2 + b _080557F8 + .align 2, 0 +_0805579C: .4byte 0x02023FD6 +_080557A0: + ldr r1, _080557A8 + movs r0, #1 + b _080557F8 + .align 2, 0 +_080557A8: .4byte 0x02023FD6 +_080557AC: + ldr r1, _080557B4 + movs r0, #0x1b + b _080557F8 + .align 2, 0 +_080557B4: .4byte 0x02023FD6 +_080557B8: + ldr r1, _080557C0 + movs r0, #0x17 + b _080557F8 + .align 2, 0 +_080557C0: .4byte 0x02023FD6 +_080557C4: + ldr r1, _080557CC + movs r0, #0x16 + b _080557F8 + .align 2, 0 +_080557CC: .4byte 0x02023FD6 +_080557D0: + ldr r1, _080557D8 + movs r0, #0x18 + b _080557F8 + .align 2, 0 +_080557D8: .4byte 0x02023FD6 +_080557DC: + ldr r1, _080557E4 + movs r0, #7 + b _080557F8 + .align 2, 0 +_080557E4: .4byte 0x02023FD6 +_080557E8: + ldr r1, _080557F0 + movs r0, #8 + b _080557F8 + .align 2, 0 +_080557F0: .4byte 0x02023FD6 +_080557F4: + ldr r1, _08055808 + movs r0, #5 +_080557F8: + strb r0, [r1, #3] + ldr r1, _0805580C + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08055808: .4byte 0x02023FD6 +_0805580C: .4byte 0x02023EB8 + thumb_func_end atkE4_getsecretpowereffect + + thumb_func_start atkE5_pickup +atkE5_pickup: @ 0x08055810 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + bl InBattlePike + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08055828 + b _080559E8 +_08055828: + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080558D4 + movs r6, #0 + mov r7, sp + ldr r0, _08055874 + mov r8, r0 +_0805583A: + movs r0, #0x64 + adds r4, r6, #0 + muls r4, r0, r4 + ldr r0, _08055878 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r4, #0 + movs r1, #0xc + bl GetMonData + strh r0, [r7] + adds r0, r4, #0 + movs r1, #0x2e + bl GetMonData + cmp r0, #0 + beq _0805587C + lsls r0, r5, #3 + subs r0, r0, r5 + lsls r0, r0, #2 + add r0, r8 + ldrb r0, [r0, #0x17] + b _08055886 + .align 2, 0 +_08055874: .4byte 0x082F0D54 +_08055878: .4byte 0x02024190 +_0805587C: + lsls r0, r5, #3 + subs r0, r0, r5 + lsls r0, r0, #2 + add r0, r8 + ldrb r0, [r0, #0x16] +_08055886: + cmp r0, #0x35 + bne _080558C6 + cmp r5, #0 + beq _080558C6 + movs r0, #0xce + lsls r0, r0, #1 + cmp r5, r0 + beq _080558C6 + ldrh r0, [r7] + cmp r0, #0 + bne _080558C6 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __umodsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080558C6 + bl GetBattlePyramidPickupItemId + strh r0, [r7] + movs r0, #0x64 + muls r0, r6, r0 + ldr r1, _080558D0 + adds r0, r0, r1 + movs r1, #0xc + mov r2, sp + bl SetMonData +_080558C6: + adds r6, #1 + cmp r6, #5 + ble _0805583A + b _080559E8 + .align 2, 0 +_080558D0: .4byte 0x02024190 +_080558D4: + movs r6, #0 + movs r1, #0x64 + mov r8, r1 + ldr r7, _08055918 + mov sl, sp +_080558DE: + mov r4, r8 + muls r4, r6, r4 + adds r4, r4, r7 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r4, #0 + movs r1, #0xc + bl GetMonData + mov r1, sl + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0x2e + bl GetMonData + cmp r0, #0 + beq _08055940 + lsls r0, r5, #3 + subs r0, r0, r5 + lsls r0, r0, #2 + ldr r1, _0805591C + adds r0, r0, r1 + ldrb r0, [r0, #0x17] + b _0805594C + .align 2, 0 +_08055918: .4byte 0x02024190 +_0805591C: .4byte 0x082F0D54 +_08055920: + mov r0, r8 + muls r0, r6, r0 + adds r0, r0, r7 + adds r2, r1, #0 + adds r2, #0x63 + subs r2, r2, r4 + lsls r2, r2, #1 + ldr r1, _0805593C + adds r2, r2, r1 + movs r1, #0xc + bl SetMonData + b _080559E0 + .align 2, 0 +_0805593C: .4byte 0x082ECDE8 +_08055940: + lsls r0, r5, #3 + subs r0, r0, r5 + lsls r0, r0, #2 + ldr r1, _080559B0 + adds r0, r0, r1 + ldrb r0, [r0, #0x16] +_0805594C: + adds r1, r6, #1 + mov sb, r1 + cmp r0, #0x35 + bne _080559E0 + cmp r5, #0 + beq _080559E0 + movs r0, #0xce + lsls r0, r0, #1 + cmp r5, r0 + beq _080559E0 + mov r1, sl + ldrh r0, [r1] + cmp r0, #0 + bne _080559E0 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __umodsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080559E0 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + mov r0, r8 + muls r0, r6, r0 + adds r0, r0, r7 + movs r1, #0x38 + bl GetMonData + subs r0, #1 + movs r1, #0xa + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #9 + bls _080559AC + movs r1, #9 +_080559AC: + movs r2, #0 + b _080559BE + .align 2, 0 +_080559B0: .4byte 0x082F0D54 +_080559B4: + adds r0, r4, #0 + subs r0, #0x62 + cmp r0, #1 + bls _08055920 + adds r2, #1 +_080559BE: + cmp r2, #8 + bgt _080559E0 + ldr r0, _08055A00 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, r4 + ble _080559B4 + mov r0, r8 + muls r0, r6, r0 + adds r0, r0, r7 + adds r2, r1, r2 + lsls r2, r2, #1 + ldr r1, _08055A04 + adds r2, r2, r1 + movs r1, #0xc + bl SetMonData +_080559E0: + mov r6, sb + cmp r6, #5 + bgt _080559E8 + b _080558DE +_080559E8: + ldr r1, _08055A08 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08055A00: .4byte 0x082ECDFE +_08055A04: .4byte 0x082ECDC4 +_08055A08: .4byte 0x02023EB8 + thumb_func_end atkE5_pickup + + thumb_func_start atkE6_docastformchangeanimation +atkE6_docastformchangeanimation: @ 0x08055A0C + push {r4, lr} + ldr r4, _08055A60 + ldr r0, _08055A64 + ldrb r0, [r0, #0x17] + strb r0, [r4] + ldr r1, _08055A68 + ldrb r2, [r4] + movs r0, #0x58 + muls r0, r2, r0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + ldr r3, _08055A6C + cmp r0, #0 + beq _08055A3C + ldr r0, [r3] + adds r0, #0x7f + ldrb r1, [r0] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0] +_08055A3C: + ldr r0, [r3] + adds r0, #0x7f + ldrb r2, [r0] + movs r0, #0 + movs r1, #0 + bl BtlController_EmitBattleAnimation + ldrb r0, [r4] + bl MarkBattlerForControllerExec + ldr r1, _08055A70 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08055A60: .4byte 0x02023D08 +_08055A64: .4byte 0x02024118 +_08055A68: .4byte 0x02023D28 +_08055A6C: .4byte 0x02024140 +_08055A70: .4byte 0x02023EB8 + thumb_func_end atkE6_docastformchangeanimation + + thumb_func_start atkE7_trycastformdatachange +atkE7_trycastformdatachange: @ 0x08055A74 + push {r4, lr} + ldr r1, _08055AA4 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + ldr r0, _08055AA8 + ldrb r0, [r0, #0x17] + bl CastformDataTypeChange + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + beq _08055A9E + ldr r0, _08055AAC + bl BattleScriptPushCursorAndCallback + ldr r0, _08055AB0 + ldr r0, [r0] + adds r0, #0x7f + subs r1, r4, #1 + strb r1, [r0] +_08055A9E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08055AA4: .4byte 0x02023EB8 +_08055AA8: .4byte 0x02024118 +_08055AAC: .4byte 0x08289A31 +_08055AB0: .4byte 0x02024140 + thumb_func_end atkE7_trycastformdatachange + + thumb_func_start atkE8_settypebasedhalvers +atkE8_settypebasedhalvers: @ 0x08055AB4 + push {r4, lr} + movs r4, #0 + ldr r2, _08055AF0 + ldr r0, _08055AF4 + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #0xc9 + bne _08055B04 + ldr r1, _08055AF8 + ldr r0, _08055AFC + ldrb r0, [r0] + lsls r0, r0, #2 + adds r2, r0, r1 + ldr r1, [r2] + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r1, #0 + ands r0, r3 + cmp r0, #0 + bne _08055B28 + orrs r1, r3 + str r1, [r2] + ldr r0, _08055B00 + strb r4, [r0, #5] + b _08055B2C + .align 2, 0 +_08055AF0: .4byte 0x082ED220 +_08055AF4: .4byte 0x02023E8E +_08055AF8: .4byte 0x02023F50 +_08055AFC: .4byte 0x02023EAF +_08055B00: .4byte 0x02023FD6 +_08055B04: + ldr r1, _08055B38 + ldr r0, _08055B3C + ldrb r0, [r0] + lsls r0, r0, #2 + adds r2, r0, r1 + ldr r1, [r2] + movs r3, #0x80 + lsls r3, r3, #0xa + adds r0, r1, #0 + ands r0, r3 + cmp r0, #0 + bne _08055B28 + orrs r1, r3 + str r1, [r2] + ldr r1, _08055B40 + movs r0, #1 + strb r0, [r1, #5] + movs r4, #1 +_08055B28: + cmp r4, #0 + beq _08055B48 +_08055B2C: + ldr r1, _08055B44 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] + b _08055B62 + .align 2, 0 +_08055B38: .4byte 0x02023F50 +_08055B3C: .4byte 0x02023EAF +_08055B40: .4byte 0x02023FD6 +_08055B44: .4byte 0x02023EB8 +_08055B48: + ldr r3, _08055B68 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] +_08055B62: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08055B68: .4byte 0x02023EB8 + thumb_func_end atkE8_settypebasedhalvers + + thumb_func_start atkE9_setweatherballtype +atkE9_setweatherballtype: @ 0x08055B6C + push {lr} + sub sp, #4 + movs r0, #0 + str r0, [sp] + movs r0, #0x13 + movs r1, #0 + movs r2, #0xd + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _08055C0C + str r0, [sp] + movs r0, #0x13 + movs r1, #0 + movs r2, #0x4d + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08055C0C + ldr r2, _08055BBC + ldrb r0, [r2] + cmp r0, #0 + beq _08055BAA + ldr r1, _08055BC0 + movs r0, #2 + strb r0, [r1, #0xe] +_08055BAA: + ldrh r1, [r2] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + beq _08055BC8 + ldr r0, _08055BC4 + ldr r1, [r0] + movs r0, #0x8b + b _08055C0A + .align 2, 0 +_08055BBC: .4byte 0x02024070 +_08055BC0: .4byte 0x02024118 +_08055BC4: .4byte 0x02024140 +_08055BC8: + movs r0, #0x18 + ands r0, r1 + cmp r0, #0 + beq _08055BDC + ldr r0, _08055BD8 + ldr r1, [r0] + movs r0, #0x85 + b _08055C0A + .align 2, 0 +_08055BD8: .4byte 0x02024140 +_08055BDC: + movs r0, #0x60 + ands r0, r1 + cmp r0, #0 + beq _08055BF0 + ldr r0, _08055BEC + ldr r1, [r0] + movs r0, #0x8a + b _08055C0A + .align 2, 0 +_08055BEC: .4byte 0x02024140 +_08055BF0: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08055C04 + ldr r0, _08055C00 + ldr r1, [r0] + movs r0, #0x8f + b _08055C0A + .align 2, 0 +_08055C00: .4byte 0x02024140 +_08055C04: + ldr r0, _08055C1C + ldr r1, [r0] + movs r0, #0x80 +_08055C0A: + strb r0, [r1, #0x13] +_08055C0C: + ldr r1, _08055C20 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_08055C1C: .4byte 0x02024140 +_08055C20: .4byte 0x02023EB8 + thumb_func_end atkE9_setweatherballtype + + thumb_func_start atkEA_tryrecycleitem +atkEA_tryrecycleitem: @ 0x08055C24 + push {r4, r5, r6, r7, lr} + sub sp, #4 + ldr r7, _08055C8C + ldr r0, _08055C90 + ldrb r0, [r0] + strb r0, [r7] + ldr r1, _08055C94 + ldrb r2, [r7] + lsls r0, r2, #1 + adds r0, #0xb8 + ldr r1, [r1] + adds r6, r1, r0 + ldrh r5, [r6] + cmp r5, #0 + beq _08055CA4 + ldr r4, _08055C98 + movs r3, #0x58 + adds r0, r2, #0 + muls r0, r3, r0 + adds r0, r0, r4 + ldrh r0, [r0, #0x2e] + cmp r0, #0 + bne _08055CA4 + ldr r1, _08055C9C + strh r5, [r1] + strh r0, [r6] + ldrb r0, [r7] + muls r0, r3, r0 + adds r0, r0, r4 + ldrh r1, [r1] + strh r1, [r0, #0x2e] + ldrb r0, [r7] + muls r0, r3, r0 + adds r1, r4, #0 + adds r1, #0x2e + adds r0, r0, r1 + str r0, [sp] + movs r0, #0 + movs r1, #2 + movs r2, #0 + movs r3, #2 + bl BtlController_EmitSetMonData + ldrb r0, [r7] + bl MarkBattlerForControllerExec + ldr r1, _08055CA0 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] + b _08055CBE + .align 2, 0 +_08055C8C: .4byte 0x02023D08 +_08055C90: .4byte 0x02023EAF +_08055C94: .4byte 0x02024140 +_08055C98: .4byte 0x02023D28 +_08055C9C: .4byte 0x02023EAC +_08055CA0: .4byte 0x02023EB8 +_08055CA4: + ldr r3, _08055CC8 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] +_08055CBE: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08055CC8: .4byte 0x02023EB8 + thumb_func_end atkEA_tryrecycleitem + + thumb_func_start atkEB_settypetoterrain +atkEB_settypetoterrain: @ 0x08055CCC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _08055D3C + mov r8, r0 + ldr r7, _08055D40 + ldrb r0, [r7] + movs r6, #0x58 + muls r0, r6, r0 + mov r1, r8 + adds r3, r0, r1 + movs r0, #0x21 + adds r0, r0, r3 + mov ip, r0 + ldr r5, _08055D44 + ldr r4, _08055D48 + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r2, [r0] + mov r1, ip + ldrb r0, [r1] + adds r1, r2, #0 + cmp r0, r1 + beq _08055D54 + adds r0, r3, #0 + adds r0, #0x22 + ldrb r0, [r0] + cmp r0, r1 + beq _08055D54 + mov r0, ip + strb r2, [r0] + ldrb r0, [r7] + adds r1, r0, #0 + muls r1, r6, r1 + add r1, r8 + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r0, [r0] + adds r1, #0x22 + strb r0, [r1] + ldr r1, _08055D4C + movs r0, #0xfd + strb r0, [r1] + movs r0, #3 + strb r0, [r1, #1] + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r0, [r0] + strb r0, [r1, #2] + movs r0, #0xff + strb r0, [r1, #3] + ldr r1, _08055D50 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] + b _08055D6E + .align 2, 0 +_08055D3C: .4byte 0x02023D28 +_08055D40: .4byte 0x02023EAF +_08055D44: .4byte 0x082ECE07 +_08055D48: .4byte 0x02022C94 +_08055D4C: .4byte 0x02022C0C +_08055D50: .4byte 0x02023EB8 +_08055D54: + ldr r3, _08055D78 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] +_08055D6E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08055D78: .4byte 0x02023EB8 + thumb_func_end atkEB_settypetoterrain + + thumb_func_start atkEC_pursuitrelated +atkEC_pursuitrelated: @ 0x08055D7C + push {r4, r5, r6, lr} + ldr r5, _08055DF0 + ldrb r0, [r5] + bl GetBattlerPosition + movs r1, #2 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + ldr r4, _08055DF4 + strb r0, [r4] + ldr r0, _08055DF8 + ldr r0, [r0] + movs r6, #1 + ands r0, r6 + cmp r0, #0 + beq _08055E1C + ldr r0, _08055DFC + ldrb r1, [r0] + ldr r2, _08055E00 + ldrb r3, [r4] + lsls r0, r3, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _08055E1C + ldr r0, _08055E04 + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, #0 + bne _08055E1C + ldr r1, _08055E08 + lsls r0, r3, #1 + adds r0, r0, r1 + ldrh r2, [r0] + cmp r2, #0xe4 + bne _08055E1C + ldr r0, _08055E0C + adds r0, r3, r0 + movs r1, #0xb + strb r1, [r0] + ldr r0, _08055E10 + strh r2, [r0] + ldr r1, _08055E14 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] + ldr r0, _08055E18 + strb r6, [r0, #0x18] + ldrb r1, [r5] + adds r0, #0x20 + strb r1, [r0] + ldrb r0, [r4] + strb r0, [r5] + b _08055E36 + .align 2, 0 +_08055DF0: .4byte 0x02023EAF +_08055DF4: .4byte 0x02023D08 +_08055DF8: .4byte 0x02022C90 +_08055DFC: .4byte 0x02023EB4 +_08055E00: .4byte 0x082FACB4 +_08055E04: .4byte 0x02023EC0 +_08055E08: .4byte 0x02023F18 +_08055E0C: .4byte 0x02023D1E +_08055E10: .4byte 0x02023E8E +_08055E14: .4byte 0x02023EB8 +_08055E18: .4byte 0x02024118 +_08055E1C: + ldr r3, _08055E3C + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] +_08055E36: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08055E3C: .4byte 0x02023EB8 + thumb_func_end atkEC_pursuitrelated + + thumb_func_start atkEF_snatchsetbattlers +atkEF_snatchsetbattlers: @ 0x08055E40 + push {r4, lr} + ldr r1, _08055E64 + ldr r3, _08055E68 + ldrb r0, [r3] + strb r0, [r1] + ldr r2, _08055E6C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r4, r1, #0 + ldrb r1, [r2] + cmp r0, r1 + bne _08055E74 + ldr r1, _08055E70 + ldrb r0, [r1, #0x17] + strb r0, [r2] + strb r0, [r3] + b _08055E7A + .align 2, 0 +_08055E64: .4byte 0x02023EB2 +_08055E68: .4byte 0x02023EAF +_08055E6C: .4byte 0x02023EB0 +_08055E70: .4byte 0x02024118 +_08055E74: + ldr r1, _08055E8C + ldrb r0, [r1, #0x17] + strb r0, [r2] +_08055E7A: + ldrb r0, [r4] + strb r0, [r1, #0x17] + ldr r1, _08055E90 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08055E8C: .4byte 0x02024118 +_08055E90: .4byte 0x02023EB8 + thumb_func_end atkEF_snatchsetbattlers + + thumb_func_start atkEE_removelightscreenreflect +atkEE_removelightscreenreflect: @ 0x08055E94 + push {r4, lr} + ldr r0, _08055EDC + ldrb r0, [r0] + bl GetBattlerSide + movs r1, #1 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08055EE0 + lsls r3, r0, #1 + adds r0, r3, r0 + lsls r0, r0, #2 + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, #0 + bne _08055EBC + ldrb r1, [r4, #2] + cmp r1, #0 + beq _08055EF4 +_08055EBC: + ldr r2, _08055EE4 + adds r2, r3, r2 + ldrh r1, [r2] + ldr r0, _08055EE8 + ands r0, r1 + movs r3, #0 + ldr r1, _08055EEC + ands r0, r1 + strh r0, [r2] + strb r3, [r4] + strb r3, [r4, #2] + ldr r1, _08055EF0 + movs r0, #1 + strb r0, [r1, #0x18] + strb r0, [r1, #0x19] + b _08055EFA + .align 2, 0 +_08055EDC: .4byte 0x02023EAF +_08055EE0: .4byte 0x02023F38 +_08055EE4: .4byte 0x02023F32 +_08055EE8: .4byte 0x0000FFFE +_08055EEC: .4byte 0x0000FFFD +_08055EF0: .4byte 0x02024118 +_08055EF4: + ldr r0, _08055F08 + strb r1, [r0, #0x18] + strb r1, [r0, #0x19] +_08055EFA: + ldr r1, _08055F0C + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08055F08: .4byte 0x02024118 +_08055F0C: .4byte 0x02023EB8 + thumb_func_end atkEE_removelightscreenreflect + + thumb_func_start atkEF_handleballthrow +atkEF_handleballthrow: @ 0x08055F10 + push {r4, r5, r6, lr} + movs r4, #0 + ldr r0, _08055F50 + ldr r0, [r0] + cmp r0, #0 + beq _08055F1E + b _080562A6 +_08055F1E: + ldr r5, _08055F54 + ldr r0, _08055F58 + ldrb r0, [r0] + strb r0, [r5] + ldr r6, _08055F5C + movs r1, #1 + eors r0, r1 + strb r0, [r6] + ldr r0, _08055F60 + ldr r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08055F6C + movs r0, #0 + movs r1, #5 + bl BtlController_EmitBallThrowAnim + ldrb r0, [r5] + bl MarkBattlerForControllerExec + ldr r1, _08055F64 + ldr r0, _08055F68 + b _080562A4 + .align 2, 0 +_08055F50: .4byte 0x02023D0C +_08055F54: .4byte 0x02023D08 +_08055F58: .4byte 0x02023EAF +_08055F5C: .4byte 0x02023EB0 +_08055F60: .4byte 0x02022C90 +_08055F64: .4byte 0x02023EB8 +_08055F68: .4byte 0x0828A38A +_08055F6C: + movs r0, #0x80 + lsls r0, r0, #2 + ands r1, r0 + cmp r1, #0 + beq _08055F94 + movs r0, #0 + movs r1, #4 + bl BtlController_EmitBallThrowAnim + ldrb r0, [r5] + bl MarkBattlerForControllerExec + ldr r1, _08055F8C + ldr r0, _08055F90 + b _080562A4 + .align 2, 0 +_08055F8C: .4byte 0x02023EB8 +_08055F90: .4byte 0x0828A352 +_08055F94: + ldr r0, _08055FB8 + ldrh r0, [r0] + cmp r0, #5 + bne _08055FC0 + ldr r0, _08055FBC + ldr r0, [r0] + adds r0, #0x7c + ldrb r0, [r0] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r0, r1, #8 + subs r0, r0, r1 + movs r1, #0x64 + bl __divsi3 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + b _08055FD8 + .align 2, 0 +_08055FB8: .4byte 0x02023EAC +_08055FBC: .4byte 0x02024140 +_08055FC0: + ldr r3, _08055FF4 + ldr r2, _08055FF8 + ldrb r1, [r6] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + ldrh r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r5, [r0, #8] +_08055FD8: + ldr r2, _08055FFC + ldrh r0, [r2] + cmp r0, #5 + bhi _08055FE2 + b _080560D8 +_08055FE2: + subs r0, #6 + cmp r0, #6 + bls _08055FEA + b _080560E2 +_08055FEA: + lsls r0, r0, #2 + ldr r1, _08056000 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08055FF4: .4byte 0x082F0D54 +_08055FF8: .4byte 0x02023D28 +_08055FFC: .4byte 0x02023EAC +_08056000: .4byte 0x08056004 +_08056004: @ jump table + .4byte _08056020 @ case 0 + .4byte _08056050 @ case 1 + .4byte _08056062 @ case 2 + .4byte _08056090 @ case 3 + .4byte _080560C0 @ case 4 + .4byte _08056082 @ case 5 + .4byte _08056082 @ case 6 +_08056020: + ldr r2, _08056048 + ldr r0, _0805604C + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + adds r1, r0, #0 + adds r1, #0x21 + ldrb r1, [r1] + cmp r1, #0xb + beq _080560B4 + adds r0, #0x22 + ldrb r0, [r0] + cmp r0, #0xb + beq _080560B4 + cmp r1, #6 + beq _080560B4 + cmp r0, #6 + beq _080560B4 + b _08056082 + .align 2, 0 +_08056048: .4byte 0x02023D28 +_0805604C: .4byte 0x02023EB0 +_08056050: + bl GetCurrentMapType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r4, #0xa + cmp r0, #5 + bne _080560E2 + movs r4, #0x23 + b _080560E2 +_08056062: + ldr r2, _08056088 + ldr r0, _0805608C + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + adds r0, #0x2a + ldrb r1, [r0] + cmp r1, #0x27 + bhi _08056082 + movs r0, #0x28 + subs r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #9 + bhi _080560E2 +_08056082: + movs r4, #0xa + b _080560E2 + .align 2, 0 +_08056088: .4byte 0x02023D28 +_0805608C: .4byte 0x02023EB0 +_08056090: + ldr r2, _080560B8 + ldr r0, _080560BC + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + ldrh r0, [r0] + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + bl GetSetPokedexFlag + lsls r0, r0, #0x18 + movs r4, #0xa + cmp r0, #0 + beq _080560E2 +_080560B4: + movs r4, #0x1e + b _080560E2 + .align 2, 0 +_080560B8: .4byte 0x02023D28 +_080560BC: .4byte 0x02023EB0 +_080560C0: + ldr r0, _080560D4 + ldrb r0, [r0, #0x13] + adds r0, #0xa + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x28 + bls _080560E2 + movs r4, #0x28 + b _080560E2 + .align 2, 0 +_080560D4: .4byte 0x03005A70 +_080560D8: + ldr r1, _0805614C + ldrh r0, [r2] + subs r0, #2 + adds r0, r0, r1 + ldrb r4, [r0] +_080560E2: + adds r0, r5, #0 + muls r0, r4, r0 + movs r1, #0xa + bl __divsi3 + ldr r5, _08056150 + ldr r1, _08056154 + ldrb r2, [r1] + movs r1, #0x58 + adds r4, r2, #0 + muls r4, r1, r4 + adds r3, r4, r5 + ldrh r2, [r3, #0x2c] + lsls r1, r2, #1 + adds r1, r1, r2 + ldrh r2, [r3, #0x28] + lsls r2, r2, #1 + subs r2, r1, r2 + muls r0, r2, r0 + bl __divsi3 + adds r6, r0, #0 + adds r5, #0x4c + adds r4, r4, r5 + ldr r4, [r4] + movs r0, #0x27 + ands r0, r4 + cmp r0, #0 + beq _0805611E + lsls r6, r6, #1 +_0805611E: + movs r0, #0xd8 + ands r4, r0 + cmp r4, #0 + beq _08056132 + lsls r0, r6, #4 + subs r0, r0, r6 + movs r1, #0xa + bl __udivsi3 + adds r6, r0, #0 +_08056132: + ldr r1, _08056158 + ldrh r0, [r1] + cmp r0, #5 + beq _08056174 + cmp r0, #1 + bne _08056160 + ldr r0, _0805615C + ldrb r1, [r0, #5] + movs r2, #2 + orrs r1, r2 + strb r1, [r0, #5] + b _08056174 + .align 2, 0 +_0805614C: .4byte 0x082ECE11 +_08056150: .4byte 0x02023D28 +_08056154: .4byte 0x02023EB0 +_08056158: .4byte 0x02023EAC +_0805615C: .4byte 0x03005A70 +_08056160: + ldr r0, _080561B8 + ldrh r1, [r1] + adds r0, r0, r1 + adds r1, r0, #0 + adds r1, #0x34 + ldrb r0, [r1] + cmp r0, #0xfe + bhi _08056174 + adds r0, #1 + strb r0, [r1] +_08056174: + cmp r6, #0xfe + bls _080561D8 + movs r0, #0 + movs r1, #4 + bl BtlController_EmitBallThrowAnim + ldr r0, _080561BC + ldrb r0, [r0] + bl MarkBattlerForControllerExec + ldr r1, _080561C0 + ldr r0, _080561C4 + str r0, [r1] + ldr r1, _080561C8 + ldr r0, _080561CC + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080561D0 + adds r0, r0, r1 + ldr r2, _080561D4 + movs r1, #0x26 + bl SetMonData + bl CalculatePlayerPartyCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #6 + beq _08056266 + b _08056290 + .align 2, 0 +_080561B8: .4byte 0x03005A70 +_080561BC: .4byte 0x02023D08 +_080561C0: .4byte 0x02023EB8 +_080561C4: .4byte 0x0828A30C +_080561C8: .4byte 0x02023D12 +_080561CC: .4byte 0x02023EB0 +_080561D0: .4byte 0x020243E8 +_080561D4: .4byte 0x02023EAC +_080561D8: + movs r0, #0xff + lsls r0, r0, #0x10 + adds r1, r6, #0 + bl __udivsi3 + bl Sqrt + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl Sqrt + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r0, _08056200 + adds r1, r6, #0 + bl __udivsi3 + adds r6, r0, #0 + movs r4, #0 + b _0805620A + .align 2, 0 +_08056200: .4byte 0x000FFFF0 +_08056204: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_0805620A: + cmp r4, #3 + bhi _0805621A + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r6 + blo _08056204 +_0805621A: + ldr r5, _08056270 + ldrh r0, [r5] + cmp r0, #1 + bne _08056224 + movs r4, #4 +_08056224: + movs r0, #0 + adds r1, r4, #0 + bl BtlController_EmitBallThrowAnim + ldr r0, _08056274 + ldrb r0, [r0] + bl MarkBattlerForControllerExec + cmp r4, #4 + bne _0805629C + ldr r1, _08056278 + ldr r0, _0805627C + str r0, [r1] + ldr r1, _08056280 + ldr r0, _08056284 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08056288 + adds r0, r0, r1 + movs r1, #0x26 + adds r2, r5, #0 + bl SetMonData + bl CalculatePlayerPartyCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #6 + bne _08056290 +_08056266: + ldr r1, _0805628C + movs r0, #0 + strb r0, [r1, #5] + b _080562A6 + .align 2, 0 +_08056270: .4byte 0x02023EAC +_08056274: .4byte 0x02023D08 +_08056278: .4byte 0x02023EB8 +_0805627C: .4byte 0x0828A30C +_08056280: .4byte 0x02023D12 +_08056284: .4byte 0x02023EB0 +_08056288: .4byte 0x020243E8 +_0805628C: .4byte 0x02023FD6 +_08056290: + ldr r1, _08056298 + movs r0, #1 + strb r0, [r1, #5] + b _080562A6 + .align 2, 0 +_08056298: .4byte 0x02023FD6 +_0805629C: + ldr r0, _080562AC + strb r4, [r0, #5] + ldr r1, _080562B0 + ldr r0, _080562B4 +_080562A4: + str r0, [r1] +_080562A6: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080562AC: .4byte 0x02023FD6 +_080562B0: .4byte 0x02023EB8 +_080562B4: .4byte 0x0828A35C + thumb_func_end atkEF_handleballthrow + + thumb_func_start atkF0_givecaughtmon +atkF0_givecaughtmon: @ 0x080562B8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _08056328 + mov sb, r0 + ldr r5, _0805632C + ldrb r0, [r5] + movs r6, #1 + eors r0, r6 + lsls r0, r0, #1 + add r0, sb + ldrh r0, [r0] + movs r7, #0x64 + muls r0, r7, r0 + ldr r1, _08056330 + mov r8, r1 + add r0, r8 + bl GiveMonToPlayer + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080563A2 + bl sub_0813B254 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _08056344 + ldr r0, _08056334 + strb r1, [r0, #5] + ldr r4, _08056338 + ldr r0, _0805633C + bl VarGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBoxNamePtr + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCopy + ldrb r0, [r5] + eors r0, r6 + lsls r0, r0, #1 + add r0, sb + ldrh r0, [r0] + muls r0, r7, r0 + add r0, r8 + ldr r2, _08056340 + movs r1, #2 + bl GetMonData + b _0805638E + .align 2, 0 +_08056328: .4byte 0x02023D12 +_0805632C: .4byte 0x02023EAF +_08056330: .4byte 0x020243E8 +_08056334: .4byte 0x02023FD6 +_08056338: .4byte 0x02021C40 +_0805633C: .4byte 0x00004036 +_08056340: .4byte 0x02021C54 +_08056344: + ldr r4, _08056434 + ldr r0, _08056438 + bl VarGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBoxNamePtr + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCopy + ldrb r0, [r5] + eors r0, r6 + lsls r0, r0, #1 + add r0, sb + ldrh r0, [r0] + muls r0, r7, r0 + add r0, r8 + ldr r2, _0805643C + movs r1, #2 + bl GetMonData + ldr r4, _08056440 + bl get_unknown_box_id + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBoxNamePtr + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCopy + ldr r1, _08056444 + movs r0, #2 + strb r0, [r1, #5] +_0805638E: + ldr r0, _08056448 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080563A2 + ldr r1, _08056444 + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_080563A2: + ldr r0, _0805644C + mov sl, r0 + ldr r1, _08056450 + mov sb, r1 + ldrb r0, [r1] + movs r4, #1 + eors r0, r4 + lsls r0, r0, #1 + add r0, sl + ldrh r0, [r0] + movs r1, #0x64 + mov r8, r1 + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + ldr r6, _08056454 + adds r0, r0, r6 + movs r1, #0xb + movs r2, #0 + bl GetMonData + ldr r5, _08056458 + strh r0, [r5, #0x28] + mov r1, sb + ldrb r0, [r1] + eors r0, r4 + lsls r0, r0, #1 + add r0, sl + ldrh r0, [r0] + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + adds r0, r0, r6 + adds r2, r5, #0 + adds r2, #0x2a + movs r1, #2 + bl GetMonData + mov r1, sb + ldrb r0, [r1] + eors r4, r0 + lsls r4, r4, #1 + add r4, sl + ldrh r0, [r4] + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + adds r0, r0, r6 + movs r1, #0x26 + movs r2, #0 + bl GetMonData + movs r1, #0xf + ands r0, r1 + lsls r0, r0, #2 + ldrb r2, [r5, #5] + movs r1, #0x3d + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #5] + ldr r1, _0805645C + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08056434: .4byte 0x02021C40 +_08056438: .4byte 0x00004036 +_0805643C: .4byte 0x02021C54 +_08056440: .4byte 0x02021C68 +_08056444: .4byte 0x02023FD6 +_08056448: .4byte 0x000008AB +_0805644C: .4byte 0x02023D12 +_08056450: .4byte 0x02023EAF +_08056454: .4byte 0x020243E8 +_08056458: .4byte 0x03005A70 +_0805645C: .4byte 0x02023EB8 + thumb_func_end atkF0_givecaughtmon + + thumb_func_start atkF1_trysetcaughtmondexflags +atkF1_trysetcaughtmondexflags: @ 0x08056460 + push {r4, r5, lr} + ldr r4, _080564B0 + adds r0, r4, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + adds r0, r5, #0 + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + bl GetSetPokedexFlag + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080564B8 + ldr r3, _080564B4 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _080564D2 + .align 2, 0 +_080564B0: .4byte 0x020243E8 +_080564B4: .4byte 0x02023EB8 +_080564B8: + adds r0, r5, #0 + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + adds r2, r4, #0 + bl HandleSetPokedexFlag + ldr r1, _080564D8 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] +_080564D2: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080564D8: .4byte 0x02023EB8 + thumb_func_end atkF1_trysetcaughtmondexflags + + thumb_func_start atkF2_displaydexinfo +atkF2_displaydexinfo: @ 0x080564DC + push {r4, lr} + sub sp, #4 + ldr r0, _08056504 + movs r1, #0xb + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, _08056508 + ldrb r0, [r0] + cmp r0, #5 + bls _080564F8 + b _0805663C +_080564F8: + lsls r0, r0, #2 + ldr r1, _0805650C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08056504: .4byte 0x020243E8 +_08056508: .4byte 0x02023FD6 +_0805650C: .4byte 0x08056510 +_08056510: @ jump table + .4byte _08056528 @ case 0 + .4byte _0805653A @ case 1 + .4byte _08056588 @ case 2 + .4byte _080565D8 @ case 3 + .4byte _080565F0 @ case 4 + .4byte _08056628 @ case 5 +_08056528: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + b _08056616 +_0805653A: + ldr r0, _08056578 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08056548 + b _0805663C +_08056548: + bl FreeAllWindowBuffers + adds r0, r4, #0 + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r3, _0805657C + ldr r1, _08056580 + ldrb r2, [r1] + movs r1, #0x58 + muls r2, r1, r2 + adds r1, r3, #0 + adds r1, #0x54 + adds r1, r2, r1 + ldr r1, [r1] + adds r3, #0x48 + adds r2, r2, r3 + ldr r2, [r2] + bl CreateDexDisplayMonDataTask + ldr r1, _08056584 + strb r0, [r1, #1] + b _08056618 + .align 2, 0 +_08056578: .4byte 0x02037C74 +_0805657C: .4byte 0x02023D28 +_08056580: .4byte 0x02023EB0 +_08056584: .4byte 0x02023FD6 +_08056588: + ldr r0, _080565C0 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0805663C + ldr r0, _080565C4 + ldr r1, [r0, #4] + ldr r0, _080565C8 + cmp r1, r0 + bne _0805663C + ldr r2, _080565CC + ldr r4, _080565D0 + ldrb r1, [r4, #1] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrb r0, [r0, #4] + cmp r0, #0 + bne _0805663C + ldr r0, _080565D4 + bl SetVBlankCallback + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + b _0805663C + .align 2, 0 +_080565C0: .4byte 0x02037C74 +_080565C4: .4byte 0x03002360 +_080565C8: .4byte 0x080380FD +_080565CC: .4byte 0x03005B60 +_080565D0: .4byte 0x02023FD6 +_080565D4: .4byte 0x080386DD +_080565D8: + bl sub_08035528 + bl LoadBattleTextboxAndBackground + ldr r1, _080565EC + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r2, #0 + strh r0, [r1] + b _08056616 + .align 2, 0 +_080565EC: .4byte 0x02022AD4 +_080565F0: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0805663C + ldr r0, _08056620 + str r1, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + movs r0, #0 + bl ShowBg + movs r0, #3 + bl ShowBg +_08056616: + ldr r1, _08056624 +_08056618: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0805663C + .align 2, 0 +_08056620: .4byte 0x0000FFFF +_08056624: .4byte 0x02023FD6 +_08056628: + ldr r0, _08056644 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0805663C + ldr r1, _08056648 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] +_0805663C: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08056644: .4byte 0x02037C74 +_08056648: .4byte 0x02023EB8 + thumb_func_end atkF2_displaydexinfo + + thumb_func_start HandleBattleWindow +HandleBattleWindow: @ 0x0805664C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + ldr r4, [sp, #0x40] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp, #0x10] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x1c] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r3, [sp, #0x14] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov sl, r4 + movs r1, #0 + add r0, sp, #0xc + strh r1, [r0] + ldr r6, [sp, #0x10] + cmp r6, r3 + ble _08056686 + b _08056772 +_08056686: + mov r4, r8 + adds r0, r6, #1 + str r0, [sp, #0x18] + ldr r2, [sp, #0x1c] + cmp r4, r2 + bgt _08056768 + add r5, sp, #0xc + lsls r7, r6, #0x18 + mov sb, r7 +_08056698: + ldr r0, [sp, #0x10] + cmp r6, r0 + bne _080566C4 + cmp r4, r8 + bne _080566AC + ldr r0, _080566A8 + b _0805670E + .align 2, 0 +_080566A8: .4byte 0x00001022 +_080566AC: + ldr r2, [sp, #0x1c] + cmp r4, r2 + bne _080566BC + ldr r0, _080566B8 + b _0805670E + .align 2, 0 +_080566B8: .4byte 0x00001024 +_080566BC: + ldr r0, _080566C0 + b _0805670E + .align 2, 0 +_080566C0: .4byte 0x00001023 +_080566C4: + ldr r7, [sp, #0x14] + cmp r6, r7 + bne _080566F0 + cmp r4, r8 + bne _080566D8 + ldr r0, _080566D4 + b _0805670E + .align 2, 0 +_080566D4: .4byte 0x00001028 +_080566D8: + ldr r0, [sp, #0x1c] + cmp r4, r0 + bne _080566E8 + ldr r0, _080566E4 + b _0805670E + .align 2, 0 +_080566E4: .4byte 0x0000102A +_080566E8: + ldr r0, _080566EC + b _0805670E + .align 2, 0 +_080566EC: .4byte 0x00001029 +_080566F0: + cmp r4, r8 + bne _080566FC + ldr r0, _080566F8 + b _0805670E + .align 2, 0 +_080566F8: .4byte 0x00001025 +_080566FC: + ldr r2, [sp, #0x1c] + cmp r4, r2 + bne _0805670C + ldr r0, _08056708 + b _0805670E + .align 2, 0 +_08056708: .4byte 0x00001027 +_0805670C: + ldr r0, _08056744 +_0805670E: + strh r0, [r5] + movs r1, #1 + mov r0, sl + ands r0, r1 + cmp r0, #0 + beq _0805671E + movs r0, #0 + strh r0, [r5] +_0805671E: + movs r0, #0x80 + mov r7, sl + ands r0, r7 + cmp r0, #0 + beq _08056748 + lsls r2, r4, #0x18 + lsrs r2, r2, #0x18 + str r1, [sp] + str r1, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #1 + add r1, sp, #0xc + mov r7, sb + lsrs r3, r7, #0x18 + bl CopyToBgTilemapBufferRect_ChangePalette + b _08056760 + .align 2, 0 +_08056744: .4byte 0x00001026 +_08056748: + lsls r2, r4, #0x18 + lsrs r2, r2, #0x18 + str r1, [sp] + str r1, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #0 + add r1, sp, #0xc + mov r7, sb + lsrs r3, r7, #0x18 + bl CopyToBgTilemapBufferRect_ChangePalette +_08056760: + adds r4, #1 + ldr r0, [sp, #0x1c] + cmp r4, r0 + ble _08056698 +_08056768: + ldr r6, [sp, #0x18] + ldr r2, [sp, #0x14] + cmp r6, r2 + bgt _08056772 + b _08056686 +_08056772: + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end HandleBattleWindow + + thumb_func_start BattleCreateYesNoCursorAt +BattleCreateYesNoCursorAt: @ 0x08056784 + push {lr} + sub sp, #0x10 + adds r3, r0, #0 + add r0, sp, #0xc + movs r2, #1 + strh r2, [r0] + movs r1, #2 + strh r1, [r0, #2] + lsls r3, r3, #0x19 + movs r0, #0x90 + lsls r0, r0, #0x14 + adds r3, r3, r0 + lsrs r3, r3, #0x18 + str r2, [sp] + str r1, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #0 + add r1, sp, #0xc + movs r2, #0x19 + bl CopyToBgTilemapBufferRect_ChangePalette + movs r0, #0 + bl CopyBgTilemapBufferToVram + add sp, #0x10 + pop {r0} + bx r0 + thumb_func_end BattleCreateYesNoCursorAt + + thumb_func_start BattleDestroyYesNoCursorAt +BattleDestroyYesNoCursorAt: @ 0x080567BC + push {lr} + sub sp, #0x10 + adds r3, r0, #0 + add r0, sp, #0xc + ldr r1, _080567F8 + strh r1, [r0] + strh r1, [r0, #2] + lsls r3, r3, #0x19 + movs r0, #0x90 + lsls r0, r0, #0x14 + adds r3, r3, r0 + lsrs r3, r3, #0x18 + movs r0, #1 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #0 + add r1, sp, #0xc + movs r2, #0x19 + bl CopyToBgTilemapBufferRect_ChangePalette + movs r0, #0 + bl CopyBgTilemapBufferToVram + add sp, #0x10 + pop {r0} + bx r0 + .align 2, 0 +_080567F8: .4byte 0x00001016 + thumb_func_end BattleDestroyYesNoCursorAt + + thumb_func_start atkF3_trygivecaughtmonnick +atkF3_trygivecaughtmonnick: @ 0x080567FC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r0, _08056820 + ldrb r1, [r0] + adds r4, r0, #0 + cmp r1, #4 + bls _08056814 + b _08056A72 +_08056814: + lsls r0, r1, #2 + ldr r1, _08056824 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08056820: .4byte 0x02023FD6 +_08056824: .4byte 0x08056828 +_08056828: @ jump table + .4byte _0805683C @ case 0 + .4byte _08056870 @ case 1 + .4byte _0805690C @ case 2 + .4byte _080569E4 @ case 3 + .4byte _08056A3C @ case 4 +_0805683C: + movs r4, #0 + str r4, [sp] + movs r0, #0x18 + movs r1, #8 + movs r2, #0x1d + movs r3, #0xd + bl HandleBattleWindow + ldr r0, _08056868 + movs r1, #0xc + bl sub_0814FA04 + ldr r1, _0805686C + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + strb r4, [r1, #1] + movs r0, #0 + bl BattleCreateYesNoCursorAt + b _08056A72 + .align 2, 0 +_08056868: .4byte 0x085ABBC9 +_0805686C: .4byte 0x02023FD6 +_08056870: + ldr r0, _080568E8 + ldrh r1, [r0, #0x2e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08056896 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _08056896 + movs r0, #5 + bl PlaySE + ldrb r0, [r4, #1] + bl BattleDestroyYesNoCursorAt + movs r0, #0 + strb r0, [r4, #1] + bl BattleCreateYesNoCursorAt +_08056896: + ldr r0, _080568E8 + ldrh r1, [r0, #0x2e] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080568BE + ldr r4, _080568EC + ldrb r0, [r4, #1] + cmp r0, #0 + bne _080568BE + movs r0, #5 + bl PlaySE + ldrb r0, [r4, #1] + bl BattleDestroyYesNoCursorAt + movs r0, #1 + strb r0, [r4, #1] + bl BattleCreateYesNoCursorAt +_080568BE: + ldr r0, _080568E8 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080568F0 + movs r0, #5 + bl PlaySE + ldr r1, _080568EC + ldrb r0, [r1, #1] + cmp r0, #0 + bne _08056902 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #3 + bl BeginFastPaletteFade + b _08056A72 + .align 2, 0 +_080568E8: .4byte 0x03002360 +_080568EC: .4byte 0x02023FD6 +_080568F0: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _080568FA + b _08056A72 +_080568FA: + movs r0, #5 + bl PlaySE + ldr r1, _08056908 +_08056902: + movs r0, #4 + strb r0, [r1] + b _08056A72 + .align 2, 0 +_08056908: .4byte 0x02023FD6 +_0805690C: + ldr r0, _080569C8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0805691A + b _08056A72 +_0805691A: + ldr r7, _080569CC + ldr r0, _080569D0 + mov sl, r0 + ldrb r0, [r0] + movs r4, #1 + eors r0, r4 + lsls r0, r0, #1 + adds r0, r0, r7 + ldrh r0, [r0] + movs r1, #0x64 + mov sb, r1 + mov r2, sb + muls r2, r0, r2 + adds r0, r2, #0 + ldr r1, _080569D4 + mov r8, r1 + add r0, r8 + ldr r1, _080569D8 + ldr r2, [r1] + adds r2, #0x6d + movs r1, #2 + bl GetMonData + bl FreeAllWindowBuffers + mov r2, sl + ldrb r0, [r2] + eors r0, r4 + lsls r0, r0, #1 + adds r0, r0, r7 + ldrh r0, [r0] + mov r1, sb + muls r1, r0, r1 + adds r0, r1, #0 + add r0, r8 + movs r1, #0xb + bl GetMonData + adds r6, r0, #0 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + mov r2, sl + ldrb r0, [r2] + eors r0, r4 + lsls r0, r0, #1 + adds r0, r0, r7 + ldrh r0, [r0] + mov r1, sb + muls r1, r0, r1 + adds r0, r1, #0 + add r0, r8 + bl GetMonGender + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + mov r2, sl + ldrb r0, [r2] + eors r4, r0 + lsls r4, r4, #1 + adds r4, r4, r7 + ldrh r0, [r4] + mov r1, sb + muls r1, r0, r1 + adds r0, r1, #0 + add r0, r8 + movs r1, #0 + movs r2, #0 + bl GetMonData + ldr r2, _080569D8 + ldr r1, [r2] + adds r1, #0x6d + str r0, [sp] + ldr r0, _080569DC + str r0, [sp, #4] + movs r0, #2 + adds r2, r6, #0 + adds r3, r5, #0 + bl DoNamingScreen + ldr r1, _080569E0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _08056A72 + .align 2, 0 +_080569C8: .4byte 0x02037C74 +_080569CC: .4byte 0x02023D12 +_080569D0: .4byte 0x02023EAF +_080569D4: .4byte 0x020243E8 +_080569D8: .4byte 0x02024140 +_080569DC: .4byte 0x080380FD +_080569E0: .4byte 0x02023FD6 +_080569E4: + ldr r0, _08056A20 + ldr r1, [r0, #4] + ldr r0, _08056A24 + cmp r1, r0 + bne _08056A72 + ldr r0, _08056A28 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08056A72 + ldr r2, _08056A2C + ldr r0, _08056A30 + ldrb r1, [r0] + movs r0, #1 + eors r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08056A34 + adds r0, r0, r1 + ldr r1, _08056A38 + ldr r2, [r1] + adds r2, #0x6d + movs r1, #2 + bl SetMonData + b _08056A58 + .align 2, 0 +_08056A20: .4byte 0x03002360 +_08056A24: .4byte 0x080380FD +_08056A28: .4byte 0x02037C74 +_08056A2C: .4byte 0x02023D12 +_08056A30: .4byte 0x02023EAF +_08056A34: .4byte 0x020243E8 +_08056A38: .4byte 0x02024140 +_08056A3C: + bl CalculatePlayerPartyCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #6 + bne _08056A58 + ldr r1, _08056A54 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] + b _08056A72 + .align 2, 0 +_08056A54: .4byte 0x02023EB8 +_08056A58: + ldr r3, _08056A84 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] +_08056A72: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08056A84: .4byte 0x02023EB8 + thumb_func_end atkF3_trygivecaughtmonnick + + thumb_func_start atkF4_subattackerhpbydmg +atkF4_subattackerhpbydmg: @ 0x08056A88 + ldr r2, _08056AA8 + ldr r0, _08056AAC + ldrb r1, [r0] + movs r0, #0x58 + muls r1, r0, r1 + adds r1, r1, r2 + ldr r0, _08056AB0 + ldr r2, [r0] + ldrh r0, [r1, #0x28] + subs r0, r0, r2 + strh r0, [r1, #0x28] + ldr r1, _08056AB4 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + bx lr + .align 2, 0 +_08056AA8: .4byte 0x02023D28 +_08056AAC: .4byte 0x02023EAF +_08056AB0: .4byte 0x02023E94 +_08056AB4: .4byte 0x02023EB8 + thumb_func_end atkF4_subattackerhpbydmg + + thumb_func_start atkF5_removeattackerstatus1 +atkF5_removeattackerstatus1: @ 0x08056AB8 + ldr r1, _08056AD4 + ldr r0, _08056AD8 + ldrb r2, [r0] + movs r0, #0x58 + muls r0, r2, r0 + adds r1, #0x4c + adds r0, r0, r1 + movs r1, #0 + str r1, [r0] + ldr r1, _08056ADC + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + bx lr + .align 2, 0 +_08056AD4: .4byte 0x02023D28 +_08056AD8: .4byte 0x02023EAF +_08056ADC: .4byte 0x02023EB8 + thumb_func_end atkF5_removeattackerstatus1 + + thumb_func_start atkF6_finishaction +atkF6_finishaction: @ 0x08056AE0 + ldr r1, _08056AE8 + movs r0, #0xc + strb r0, [r1] + bx lr + .align 2, 0 +_08056AE8: .4byte 0x02023D27 + thumb_func_end atkF6_finishaction + + thumb_func_start atkF7_finishturn +atkF7_finishturn: @ 0x08056AEC + ldr r1, _08056AFC + movs r0, #0xc + strb r0, [r1] + ldr r1, _08056B00 + ldr r0, _08056B04 + ldrb r0, [r0] + strb r0, [r1] + bx lr + .align 2, 0 +_08056AFC: .4byte 0x02023D27 +_08056B00: .4byte 0x02023D26 +_08056B04: .4byte 0x02023D10 + thumb_func_end atkF7_finishturn + + thumb_func_start atkF8_trainerslideout +atkF8_trainerslideout: @ 0x08056B08 + push {r4, r5, lr} + ldr r5, _08056B30 + ldr r0, [r5] + ldrb r0, [r0, #1] + bl GetBattlerAtPosition + ldr r4, _08056B34 + strb r0, [r4] + movs r0, #0 + bl BtlController_EmitTrainerSlideBack + ldrb r0, [r4] + bl MarkBattlerForControllerExec + ldr r0, [r5] + adds r0, #2 + str r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08056B30: .4byte 0x02023EB8 +_08056B34: .4byte 0x02023D08 + thumb_func_end atkF8_trainerslideout + diff --git a/asm/battle_setup.s b/asm/battle_setup.s new file mode 100644 index 0000000..30c1ebc --- /dev/null +++ b/asm/battle_setup.s @@ -0,0 +1,3824 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start Task_BattleStart +Task_BattleStart: @ 0x080AFEEC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080AFF0C + adds r4, r0, r1 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _080AFF10 + cmp r0, #1 + beq _080AFF2A + b _080AFF4E + .align 2, 0 +_080AFF0C: .4byte 0x03005B68 +_080AFF10: + bl sub_080FB730 + cmp r0, #0 + bne _080AFF4E + ldrb r0, [r4, #2] + bl BattleTransition_StartOnField + bl ClearMirageTowerPulseBlendEffect + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + b _080AFF4E +_080AFF2A: + bl IsBattleTransitionDone + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080AFF4E + bl CleanupOverworldWindowsAndTilemaps + ldr r0, _080AFF54 + bl SetMainCallback2 + bl RestartWildEncounterImmunitySteps + bl ClearPoisonStepCounter + adds r0, r5, #0 + bl DestroyTask +_080AFF4E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080AFF54: .4byte 0x080365B5 + thumb_func_end Task_BattleStart + + thumb_func_start CreateBattleStartTask +CreateBattleStartTask: @ 0x080AFF58 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + ldr r0, _080AFF8C + movs r1, #1 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080AFF90 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #0xa] + adds r0, r5, #0 + bl PlayMapChosenOrBattleBGM + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080AFF8C: .4byte 0x080AFEED +_080AFF90: .4byte 0x03005B60 + thumb_func_end CreateBattleStartTask + + thumb_func_start BattleSetup_StartWildBattle +BattleSetup_StartWildBattle: @ 0x080AFF94 + push {lr} + bl GetSafariZoneFlag + cmp r0, #0 + beq _080AFFA4 + bl DoSafariBattle + b _080AFFA8 +_080AFFA4: + bl DoStandardWildBattle +_080AFFA8: + pop {r0} + bx r0 + thumb_func_end BattleSetup_StartWildBattle + + thumb_func_start BattleSetup_StartBattlePikeWildBattle +BattleSetup_StartBattlePikeWildBattle: @ 0x080AFFAC + push {lr} + bl DoBattlePikeWildBattle + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BattleSetup_StartBattlePikeWildBattle + + thumb_func_start DoStandardWildBattle +DoStandardWildBattle: @ 0x080AFFB8 + push {r4, lr} + bl ScriptContext2_Enable + bl FreezeEventObjects + bl sub_0808B658 + ldr r1, _080B0018 + ldr r0, _080B001C + str r0, [r1, #8] + ldr r4, _080B0020 + movs r0, #0 + str r0, [r4] + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080AFFEE + ldr r0, _080B0024 + movs r1, #0 + bl VarSet + ldr r0, [r4] + movs r1, #0x80 + lsls r1, r1, #0xe + orrs r0, r1 + str r0, [r4] +_080AFFEE: + bl GetWildBattleTransition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl CreateBattleStartTask + movs r0, #7 + bl IncrementGameStat + movs r0, #8 + bl IncrementGameStat + bl sub_080EF7CC + bl sub_080B0B04 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B0018: .4byte 0x03002360 +_080B001C: .4byte 0x080B03F5 +_080B0020: .4byte 0x02022C90 +_080B0024: .4byte 0x0000400E + thumb_func_end DoStandardWildBattle + + thumb_func_start BattleSetup_StartRoamerBattle +BattleSetup_StartRoamerBattle: @ 0x080B0028 + push {lr} + bl ScriptContext2_Enable + bl FreezeEventObjects + bl sub_0808B658 + ldr r1, _080B006C + ldr r0, _080B0070 + str r0, [r1, #8] + ldr r1, _080B0074 + movs r0, #0x80 + lsls r0, r0, #3 + str r0, [r1] + bl GetWildBattleTransition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl CreateBattleStartTask + movs r0, #7 + bl IncrementGameStat + movs r0, #8 + bl IncrementGameStat + bl sub_080EF7CC + bl sub_080B0B04 + pop {r0} + bx r0 + .align 2, 0 +_080B006C: .4byte 0x03002360 +_080B0070: .4byte 0x080B03F5 +_080B0074: .4byte 0x02022C90 + thumb_func_end BattleSetup_StartRoamerBattle + + thumb_func_start DoSafariBattle +DoSafariBattle: @ 0x080B0078 + push {lr} + bl ScriptContext2_Enable + bl FreezeEventObjects + bl sub_0808B658 + ldr r1, _080B00A4 + ldr r0, _080B00A8 + str r0, [r1, #8] + ldr r1, _080B00AC + movs r0, #0x80 + str r0, [r1] + bl GetWildBattleTransition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl CreateBattleStartTask + pop {r0} + bx r0 + .align 2, 0 +_080B00A4: .4byte 0x03002360 +_080B00A8: .4byte 0x080FCA01 +_080B00AC: .4byte 0x02022C90 + thumb_func_end DoSafariBattle + + thumb_func_start DoBattlePikeWildBattle +DoBattlePikeWildBattle: @ 0x080B00B0 + push {lr} + bl ScriptContext2_Enable + bl FreezeEventObjects + bl sub_0808B658 + ldr r1, _080B00F4 + ldr r0, _080B00F8 + str r0, [r1, #8] + ldr r1, _080B00FC + movs r0, #0x80 + lsls r0, r0, #0xd + str r0, [r1] + bl GetWildBattleTransition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl CreateBattleStartTask + movs r0, #7 + bl IncrementGameStat + movs r0, #8 + bl IncrementGameStat + bl sub_080EF7CC + bl sub_080B0B04 + pop {r0} + bx r0 + .align 2, 0 +_080B00F4: .4byte 0x03002360 +_080B00F8: .4byte 0x080B03F5 +_080B00FC: .4byte 0x02022C90 + thumb_func_end DoBattlePikeWildBattle + + thumb_func_start DoTrainerBattle +DoTrainerBattle: @ 0x080B0100 + push {lr} + bl GetTrainerBattleTransition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl CreateBattleStartTask + movs r0, #7 + bl IncrementGameStat + movs r0, #9 + bl IncrementGameStat + bl sub_080B0B20 + pop {r0} + bx r0 + thumb_func_end DoTrainerBattle + + thumb_func_start sub_080B0124 +sub_080B0124: @ 0x080B0124 + push {lr} + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B0142 + movs r0, #0xa + bl sub_080B08F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl CreateBattleStartTask + b _080B0152 +_080B0142: + movs r0, #0xb + bl sub_080B08F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl CreateBattleStartTask +_080B0152: + movs r0, #7 + bl IncrementGameStat + movs r0, #9 + bl IncrementGameStat + bl sub_080B0B20 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080B0124 + + thumb_func_start StartWallyTutorialBattle +StartWallyTutorialBattle: @ 0x080B0168 + push {lr} + ldr r0, _080B0194 + movs r1, #0xc4 + lsls r1, r1, #1 + movs r2, #5 + bl CreateMaleMon + bl ScriptContext2_Enable + ldr r1, _080B0198 + ldr r0, _080B019C + str r0, [r1, #8] + ldr r1, _080B01A0 + movs r0, #0x80 + lsls r0, r0, #2 + str r0, [r1] + movs r0, #8 + movs r1, #0 + bl CreateBattleStartTask + pop {r0} + bx r0 + .align 2, 0 +_080B0194: .4byte 0x020243E8 +_080B0198: .4byte 0x03002360 +_080B019C: .4byte 0x08085B35 +_080B01A0: .4byte 0x02022C90 + thumb_func_end StartWallyTutorialBattle + + thumb_func_start BattleSetup_StartScriptedWildBattle +BattleSetup_StartScriptedWildBattle: @ 0x080B01A4 + push {lr} + bl ScriptContext2_Enable + ldr r1, _080B01DC + ldr r0, _080B01E0 + str r0, [r1, #8] + ldr r1, _080B01E4 + movs r0, #0 + str r0, [r1] + bl GetWildBattleTransition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl CreateBattleStartTask + movs r0, #7 + bl IncrementGameStat + movs r0, #8 + bl IncrementGameStat + bl sub_080EF7CC + bl sub_080B0B04 + pop {r0} + bx r0 + .align 2, 0 +_080B01DC: .4byte 0x03002360 +_080B01E0: .4byte 0x080B0469 +_080B01E4: .4byte 0x02022C90 + thumb_func_end BattleSetup_StartScriptedWildBattle + + thumb_func_start BattleSetup_StartLatiBattle +BattleSetup_StartLatiBattle: @ 0x080B01E8 + push {lr} + bl ScriptContext2_Enable + ldr r1, _080B0224 + ldr r0, _080B0228 + str r0, [r1, #8] + ldr r1, _080B022C + movs r0, #0x80 + lsls r0, r0, #6 + str r0, [r1] + bl GetWildBattleTransition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl CreateBattleStartTask + movs r0, #7 + bl IncrementGameStat + movs r0, #8 + bl IncrementGameStat + bl sub_080EF7CC + bl sub_080B0B04 + pop {r0} + bx r0 + .align 2, 0 +_080B0224: .4byte 0x03002360 +_080B0228: .4byte 0x080B0469 +_080B022C: .4byte 0x02022C90 + thumb_func_end BattleSetup_StartLatiBattle + + thumb_func_start BattleSetup_StartLegendaryBattle +BattleSetup_StartLegendaryBattle: @ 0x080B0230 + push {r4, lr} + bl ScriptContext2_Enable + ldr r1, _080B0270 + ldr r0, _080B0274 + str r0, [r1, #8] + ldr r4, _080B0278 + movs r0, #0x80 + lsls r0, r0, #6 + str r0, [r4] + ldr r0, _080B027C + movs r1, #0xb + movs r2, #0 + bl GetMonData + adds r1, r0, #0 + movs r0, #0xca + lsls r0, r0, #1 + cmp r1, r0 + beq _080B02B4 + cmp r1, r0 + bhi _080B0284 + cmp r1, #0x97 + beq _080B02F0 + cmp r1, #0x97 + blo _080B0296 + cmp r1, #0xfa + bhi _080B0296 + cmp r1, #0xf9 + blo _080B0296 + ldr r1, _080B0280 + b _080B02E2 + .align 2, 0 +_080B0270: .4byte 0x03002360 +_080B0274: .4byte 0x080B0469 +_080B0278: .4byte 0x02022C90 +_080B027C: .4byte 0x020243E8 +_080B0280: .4byte 0x00000229 +_080B0284: + movs r0, #0xcb + lsls r0, r0, #1 + cmp r1, r0 + beq _080B02CA + cmp r1, r0 + blo _080B0296 + adds r0, #4 + cmp r1, r0 + beq _080B02E0 +_080B0296: + ldr r2, _080B02B0 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0x15 + orrs r0, r1 + str r0, [r2] + movs r1, #0xf0 + lsls r1, r1, #1 + movs r0, #0x17 + bl CreateBattleStartTask + b _080B02FA + .align 2, 0 +_080B02B0: .4byte 0x02022C90 +_080B02B4: + ldr r0, [r4] + movs r1, #0x80 + lsls r1, r1, #0x16 + orrs r0, r1 + str r0, [r4] + movs r1, #0xf0 + lsls r1, r1, #1 + movs r0, #0x16 + bl CreateBattleStartTask + b _080B02FA +_080B02CA: + ldr r0, [r4] + movs r1, #0x80 + lsls r1, r1, #0x17 + orrs r0, r1 + str r0, [r4] + movs r1, #0xeb + lsls r1, r1, #1 + movs r0, #0x18 + bl CreateBattleStartTask + b _080B02FA +_080B02E0: + ldr r1, _080B02EC +_080B02E2: + movs r0, #0 + bl CreateBattleStartTask + b _080B02FA + .align 2, 0 +_080B02EC: .4byte 0x00000227 +_080B02F0: + movs r1, #0xec + lsls r1, r1, #1 + movs r0, #0xa + bl CreateBattleStartTask +_080B02FA: + movs r0, #7 + bl IncrementGameStat + movs r0, #8 + bl IncrementGameStat + bl sub_080EF7CC + bl sub_080B0B04 + pop {r4} + pop {r0} + bx r0 + thumb_func_end BattleSetup_StartLegendaryBattle + + thumb_func_start StartGroudonKyogreBattle +StartGroudonKyogreBattle: @ 0x080B0314 + push {lr} + bl ScriptContext2_Enable + ldr r1, _080B033C + ldr r0, _080B0340 + str r0, [r1, #8] + ldr r1, _080B0344 + movs r0, #0xc0 + lsls r0, r0, #6 + str r0, [r1] + ldr r0, _080B0348 + ldrb r0, [r0] + cmp r0, #2 + bne _080B034C + movs r1, #0xf0 + lsls r1, r1, #1 + movs r0, #0xb + bl CreateBattleStartTask + b _080B0356 + .align 2, 0 +_080B033C: .4byte 0x03002360 +_080B0340: .4byte 0x080B0469 +_080B0344: .4byte 0x02022C90 +_080B0348: .4byte 0x0829BDA4 +_080B034C: + movs r1, #0xf0 + lsls r1, r1, #1 + movs r0, #6 + bl CreateBattleStartTask +_080B0356: + movs r0, #7 + bl IncrementGameStat + movs r0, #8 + bl IncrementGameStat + bl sub_080EF7CC + bl sub_080B0B04 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end StartGroudonKyogreBattle + + thumb_func_start StartRegiBattle +StartRegiBattle: @ 0x080B0370 + push {lr} + bl ScriptContext2_Enable + ldr r1, _080B03A8 + ldr r0, _080B03AC + str r0, [r1, #8] + ldr r1, _080B03B0 + movs r0, #0xc0 + lsls r0, r0, #7 + str r0, [r1] + ldr r0, _080B03B4 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + adds r2, r1, #0 + movs r0, #0xc9 + lsls r0, r0, #1 + cmp r1, r0 + beq _080B03C8 + cmp r1, r0 + bgt _080B03B8 + subs r0, #1 + cmp r1, r0 + beq _080B03C4 + b _080B03D0 + .align 2, 0 +_080B03A8: .4byte 0x03002360 +_080B03AC: .4byte 0x080B0469 +_080B03B0: .4byte 0x02022C90 +_080B03B4: .4byte 0x020243E8 +_080B03B8: + ldr r0, _080B03C0 + cmp r2, r0 + beq _080B03CC + b _080B03D0 + .align 2, 0 +_080B03C0: .4byte 0x00000193 +_080B03C4: + movs r0, #0x15 + b _080B03D2 +_080B03C8: + movs r0, #0x13 + b _080B03D2 +_080B03CC: + movs r0, #0x14 + b _080B03D2 +_080B03D0: + movs r0, #0xa +_080B03D2: + ldr r1, _080B03F0 + bl CreateBattleStartTask + movs r0, #7 + bl IncrementGameStat + movs r0, #8 + bl IncrementGameStat + bl sub_080EF7CC + bl sub_080B0B04 + pop {r0} + bx r0 + .align 2, 0 +_080B03F0: .4byte 0x000001DF + thumb_func_end StartRegiBattle + + thumb_func_start CB2_EndWildBattle +CB2_EndWildBattle: @ 0x080B03F4 + push {lr} + sub sp, #4 + mov r1, sp + movs r0, #0 + strh r0, [r1] + movs r1, #0xa0 + lsls r1, r1, #0x13 + ldr r2, _080B043C + mov r0, sp + bl CpuSet + movs r0, #0 + movs r1, #0x80 + bl ResetOamRange + ldr r0, _080B0440 + ldrb r0, [r0] + bl IsPlayerDefeated + cmp r0, #1 + bne _080B0448 + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B0448 + bl InBattlePike + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B0448 + ldr r0, _080B0444 + bl SetMainCallback2 + b _080B0454 + .align 2, 0 +_080B043C: .4byte 0x01000100 +_080B0440: .4byte 0x02023FDE +_080B0444: .4byte 0x080858C1 +_080B0448: + ldr r0, _080B045C + bl SetMainCallback2 + ldr r1, _080B0460 + ldr r0, _080B0464 + str r0, [r1] +_080B0454: + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_080B045C: .4byte 0x08085A31 +_080B0460: .4byte 0x03005B0C +_080B0464: .4byte 0x080AEFED + thumb_func_end CB2_EndWildBattle + + thumb_func_start CB2_EndScriptedWildBattle +CB2_EndScriptedWildBattle: @ 0x080B0468 + push {lr} + sub sp, #4 + mov r1, sp + movs r0, #0 + strh r0, [r1] + movs r1, #0xa0 + lsls r1, r1, #0x13 + ldr r2, _080B04A4 + mov r0, sp + bl CpuSet + movs r0, #0 + movs r1, #0x80 + bl ResetOamRange + ldr r0, _080B04A8 + ldrb r0, [r0] + bl IsPlayerDefeated + cmp r0, #1 + bne _080B04BC + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B04B0 + ldr r0, _080B04AC + bl SetMainCallback2 + b _080B04C2 + .align 2, 0 +_080B04A4: .4byte 0x01000100 +_080B04A8: .4byte 0x02023FDE +_080B04AC: .4byte 0x08085B35 +_080B04B0: + ldr r0, _080B04B8 + bl SetMainCallback2 + b _080B04C2 + .align 2, 0 +_080B04B8: .4byte 0x080858C1 +_080B04BC: + ldr r0, _080B04C8 + bl SetMainCallback2 +_080B04C2: + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_080B04C8: .4byte 0x08085B35 + thumb_func_end CB2_EndScriptedWildBattle + + thumb_func_start BattleSetup_GetTerrainId +BattleSetup_GetTerrainId: @ 0x080B04CC + push {r4, r5, lr} + sub sp, #4 + mov r4, sp + adds r4, #2 + 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, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r0, r5, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl MetatileBehavior_IsTallGrass + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B0502 + movs r0, #0 + b _080B0616 +_080B0502: + adds r0, r4, #0 + bl MetatileBehavior_IsLongGrass_Duplicate + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B0512 + movs r0, #1 + b _080B0616 +_080B0512: + adds r0, r4, #0 + bl MetatileBehavior_IsSandOrDeepSand + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B0614 + ldr r0, _080B0534 + ldrb r0, [r0, #0x17] + subs r0, #1 + cmp r0, #8 + bhi _080B0598 + lsls r0, r0, #2 + ldr r1, _080B0538 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B0534: .4byte 0x02036FB8 +_080B0538: .4byte 0x080B053C +_080B053C: @ jump table + .4byte _080B0598 @ case 0 + .4byte _080B0598 @ case 1 + .4byte _080B0598 @ case 2 + .4byte _080B0560 @ case 3 + .4byte _080B0584 @ case 4 + .4byte _080B0588 @ case 5 + .4byte _080B0598 @ case 6 + .4byte _080B0570 @ case 7 + .4byte _080B0570 @ case 8 +_080B0560: + lsls r0, r5, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl MetatileBehavior_IsIndoorEncounter + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B0574 +_080B0570: + movs r0, #8 + b _080B0616 +_080B0574: + adds r0, r4, #0 + bl MetatileBehavior_IsSurfableWaterOrUnderwater + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B05DC + movs r0, #7 + b _080B0616 +_080B0584: + movs r0, #3 + b _080B0616 +_080B0588: + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsSurfableWaterOrUnderwater + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B05EE + b _080B060C +_080B0598: + lsls r0, r5, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl MetatileBehavior_IsDeepOrOceanWater + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B05EE + adds r0, r4, #0 + bl MetatileBehavior_IsSurfableWaterOrUnderwater + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B05DC + adds r0, r4, #0 + bl MetatileBehavior_IsMountain + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B05C4 + movs r0, #6 + b _080B0616 +_080B05C4: + movs r0, #8 + bl TestPlayerAvatarFlags + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B05F2 + adds r0, r4, #0 + bl MetatileBehavior_GetBridgeType + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B05E0 +_080B05DC: + movs r0, #5 + b _080B0616 +_080B05E0: + adds r0, r4, #0 + bl MetatileBehavior_IsBridge + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080B05F2 +_080B05EE: + movs r0, #4 + b _080B0616 +_080B05F2: + ldr r0, _080B0610 + ldr r0, [r0] + ldrh r1, [r0, #4] + movs r0, #0xe0 + lsls r0, r0, #5 + cmp r1, r0 + beq _080B0614 + bl GetSav1Weather + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #8 + beq _080B0614 +_080B060C: + movs r0, #9 + b _080B0616 + .align 2, 0 +_080B0610: .4byte 0x03005AEC +_080B0614: + movs r0, #2 +_080B0616: + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end BattleSetup_GetTerrainId + + thumb_func_start GetBattleTransitionTypeByMap +GetBattleTransitionTypeByMap: @ 0x080B0620 + push {r4, lr} + sub sp, #4 + mov r4, sp + adds r4, #2 + 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, r0, #0x10 + lsrs r4, r0, #0x10 + bl Overworld_GetFlashLevel + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B0650 + movs r0, #2 + b _080B067A +_080B0650: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsSurfableWaterOrUnderwater + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B0678 + ldr r0, _080B0670 + ldrb r0, [r0, #0x17] + cmp r0, #4 + beq _080B0674 + cmp r0, #5 + beq _080B0678 + movs r0, #0 + b _080B067A + .align 2, 0 +_080B0670: .4byte 0x02036FB8 +_080B0674: + movs r0, #1 + b _080B067A +_080B0678: + movs r0, #3 +_080B067A: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetBattleTransitionTypeByMap + + thumb_func_start GetSumOfPlayerPartyLevel +GetSumOfPlayerPartyLevel: @ 0x080B0684 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r7, #0 + movs r6, #0 +_080B068E: + movs r0, #0x64 + adds r1, r6, #0 + muls r1, r0, r1 + ldr r0, _080B06E0 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + adds r1, r0, #0 + movs r0, #0xce + lsls r0, r0, #1 + cmp r1, r0 + beq _080B06D2 + cmp r1, #0 + beq _080B06D2 + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _080B06D2 + adds r0, r4, #0 + movs r1, #0x38 + bl GetMonData + adds r0, r7, r0 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + subs r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + beq _080B06D8 +_080B06D2: + adds r6, #1 + cmp r6, #5 + ble _080B068E +_080B06D8: + adds r0, r7, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080B06E0: .4byte 0x02024190 + thumb_func_end GetSumOfPlayerPartyLevel + + thumb_func_start GetSumOfEnemyPartyLevel +GetSumOfEnemyPartyLevel: @ 0x080B06E4 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r5, _080B070C + lsrs r2, r0, #0xb + adds r4, r2, r5 + ldrb r0, [r4, #0x18] + cmp r0, r1 + bhs _080B06FA + adds r1, r0, #0 +_080B06FA: + movs r3, #0 + ldrb r0, [r4] + cmp r0, #1 + beq _080B0740 + cmp r0, #1 + bgt _080B0710 + cmp r0, #0 + beq _080B071A + b _080B07B0 + .align 2, 0 +_080B070C: .4byte 0x082E383C +_080B0710: + cmp r0, #2 + beq _080B0766 + cmp r0, #3 + beq _080B078C + b _080B07B0 +_080B071A: + adds r0, r5, #0 + adds r0, #0x1c + adds r0, r2, r0 + ldr r4, [r0] + movs r2, #0 + cmp r3, r1 + bhs _080B07B0 +_080B0728: + lsls r0, r2, #3 + adds r0, r0, r4 + ldrb r0, [r0, #2] + adds r0, r3, r0 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, r1 + blo _080B0728 + b _080B07B0 +_080B0740: + adds r0, r5, #0 + adds r0, #0x1c + adds r0, r2, r0 + ldr r4, [r0] + movs r2, #0 + cmp r3, r1 + bhs _080B07B0 +_080B074E: + lsls r0, r2, #4 + adds r0, r0, r4 + ldrb r0, [r0, #2] + adds r0, r3, r0 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, r1 + blo _080B074E + b _080B07B0 +_080B0766: + adds r0, r5, #0 + adds r0, #0x1c + adds r0, r2, r0 + ldr r4, [r0] + movs r2, #0 + cmp r3, r1 + bhs _080B07B0 +_080B0774: + lsls r0, r2, #3 + adds r0, r0, r4 + ldrb r0, [r0, #2] + adds r0, r3, r0 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, r1 + blo _080B0774 + b _080B07B0 +_080B078C: + adds r0, r5, #0 + adds r0, #0x1c + adds r0, r2, r0 + ldr r4, [r0] + movs r2, #0 + cmp r3, r1 + bhs _080B07B0 +_080B079A: + lsls r0, r2, #4 + adds r0, r0, r4 + ldrb r0, [r0, #2] + adds r0, r3, r0 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, r1 + blo _080B079A +_080B07B0: + adds r0, r3, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end GetSumOfEnemyPartyLevel + + thumb_func_start GetWildBattleTransition +GetWildBattleTransition: @ 0x080B07B8 + push {r4, r5, r6, lr} + bl GetBattleTransitionTypeByMap + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r6, r5, #0 + ldr r0, _080B07F0 + movs r1, #0x38 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + bl GetSumOfPlayerPartyLevel + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + bhs _080B0800 + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B07F4 + movs r0, #0 + b _080B081E + .align 2, 0 +_080B07F0: .4byte 0x020243E8 +_080B07F4: + ldr r0, _080B07FC + lsls r1, r5, #1 + b _080B0810 + .align 2, 0 +_080B07FC: .4byte 0x0852AB24 +_080B0800: + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B081C + ldr r0, _080B0818 + lsls r1, r6, #1 + adds r0, #1 +_080B0810: + adds r1, r1, r0 + ldrb r0, [r1] + b _080B081E + .align 2, 0 +_080B0818: .4byte 0x0852AB24 +_080B081C: + movs r0, #0xa +_080B081E: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end GetWildBattleTransition + + thumb_func_start GetTrainerBattleTransition +GetTrainerBattleTransition: @ 0x080B0824 + push {r4, r5, r6, lr} + ldr r4, _080B084C + ldrh r1, [r4] + movs r0, #0x80 + lsls r0, r0, #3 + cmp r1, r0 + beq _080B0884 + ldr r1, _080B0850 + ldrh r2, [r4] + lsls r0, r2, #5 + adds r0, r0, r1 + ldrb r1, [r0, #1] + cmp r1, #0x1f + bne _080B0880 + adds r1, r2, #0 + ldr r0, _080B0854 + cmp r1, r0 + bne _080B0858 + movs r0, #0xc + b _080B08EC + .align 2, 0 +_080B084C: .4byte 0x0203886A +_080B0850: .4byte 0x082E383C +_080B0854: .4byte 0x00000105 +_080B0858: + movs r0, #0x83 + lsls r0, r0, #1 + cmp r1, r0 + bne _080B0864 + movs r0, #0xd + b _080B08EC +_080B0864: + ldr r0, _080B0870 + cmp r1, r0 + bne _080B0874 + movs r0, #0xe + b _080B08EC + .align 2, 0 +_080B0870: .4byte 0x00000107 +_080B0874: + movs r0, #0x84 + lsls r0, r0, #1 + cmp r1, r0 + bne _080B0884 + movs r0, #0xf + b _080B08EC +_080B0880: + cmp r1, #0x26 + bne _080B0888 +_080B0884: + movs r0, #0x10 + b _080B08EC +_080B0888: + cmp r1, #9 + beq _080B0894 + cmp r1, #0x35 + beq _080B0894 + cmp r1, #0x31 + bne _080B0898 +_080B0894: + movs r0, #0x12 + b _080B08EC +_080B0898: + cmp r1, #3 + beq _080B08A4 + cmp r1, #0xd + beq _080B08A4 + cmp r1, #0xb + bne _080B08A8 +_080B08A4: + movs r0, #0x11 + b _080B08EC +_080B08A8: + ldrb r0, [r0, #0x12] + movs r5, #1 + cmp r0, #1 + bne _080B08B2 + movs r5, #2 +_080B08B2: + bl GetBattleTransitionTypeByMap + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldrh r0, [r4] + adds r1, r5, #0 + bl GetSumOfEnemyPartyLevel + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + bl GetSumOfPlayerPartyLevel + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + blo _080B08E4 + ldr r0, _080B08E0 + lsls r1, r6, #1 + adds r0, #1 + b _080B08E8 + .align 2, 0 +_080B08E0: .4byte 0x0852AB2C +_080B08E4: + ldr r0, _080B08F4 + lsls r1, r6, #1 +_080B08E8: + adds r1, r1, r0 + ldrb r0, [r1] +_080B08EC: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080B08F4: .4byte 0x0852AB2C + thumb_func_end GetTrainerBattleTransition + + thumb_func_start sub_080B08F8 +sub_080B08F8: @ 0x080B08F8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _080B0928 + movs r1, #0x38 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + bl GetSumOfPlayerPartyLevel + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + bhs _080B097C + cmp r5, #0xa + beq _080B0934 + cmp r5, #0xa + bgt _080B092C + cmp r5, #3 + beq _080B0948 + b _080B0958 + .align 2, 0 +_080B0928: .4byte 0x020243E8 +_080B092C: + cmp r5, #0xd + bgt _080B0958 + movs r0, #4 + b _080B0A0C +_080B0934: + ldr r4, _080B0944 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + b _080B0A00 + .align 2, 0 +_080B0944: .4byte 0x0852AB40 +_080B0948: + ldr r4, _080B0954 + bl Random + ands r5, r0 + lsls r0, r5, #0x10 + b _080B0A06 + .align 2, 0 +_080B0954: .4byte 0x0852AB43 +_080B0958: + ldr r0, _080B0974 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #3 + beq _080B09D8 + ldr r4, _080B0978 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _080B09FE + .align 2, 0 +_080B0974: .4byte 0x000040CE +_080B0978: .4byte 0x0852AB34 +_080B097C: + cmp r5, #0xa + beq _080B0992 + cmp r5, #0xa + bgt _080B098A + cmp r5, #3 + beq _080B09A4 + b _080B09B4 +_080B098A: + cmp r5, #0xd + bgt _080B09B4 + movs r0, #3 + b _080B0A0C +_080B0992: + ldr r4, _080B09A0 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + b _080B0A00 + .align 2, 0 +_080B09A0: .4byte 0x0852AB40 +_080B09A4: + ldr r4, _080B09B0 + bl Random + ands r5, r0 + lsls r0, r5, #0x10 + b _080B0A06 + .align 2, 0 +_080B09B0: .4byte 0x0852AB43 +_080B09B4: + ldr r0, _080B09D0 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #3 + beq _080B09D8 + ldr r4, _080B09D4 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _080B09FE + .align 2, 0 +_080B09D0: .4byte 0x000040CE +_080B09D4: .4byte 0x0852AB34 +_080B09D8: + ldr r0, _080B0A14 + ldr r1, [r0] + ldr r2, _080B0A18 + adds r0, r1, r2 + ldrh r0, [r0] + lsls r2, r0, #2 + ldr r3, _080B0A1C + adds r1, r1, r3 + adds r2, r1, r2 + lsls r0, r0, #1 + adds r0, #1 + lsls r0, r0, #1 + adds r1, r1, r0 + ldrh r0, [r1] + ldrh r2, [r2] + adds r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _080B0A20 +_080B09FE: + movs r1, #0xc +_080B0A00: + bl __umodsi3 + lsls r0, r0, #0x10 +_080B0A06: + lsrs r0, r0, #0x10 + adds r0, r0, r4 + ldrb r0, [r0] +_080B0A0C: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080B0A14: .4byte 0x03005AF0 +_080B0A18: .4byte 0x00000CB2 +_080B0A1C: .4byte 0x00000CB4 +_080B0A20: .4byte 0x0852AB34 + thumb_func_end sub_080B08F8 + + thumb_func_start ChooseStarter +ChooseStarter: @ 0x080B0A24 + push {lr} + ldr r0, _080B0A38 + bl SetMainCallback2 + ldr r1, _080B0A3C + ldr r0, _080B0A40 + str r0, [r1, #8] + pop {r0} + bx r0 + .align 2, 0 +_080B0A38: .4byte 0x08133EC5 +_080B0A3C: .4byte 0x03002360 +_080B0A40: .4byte 0x080B0A45 + thumb_func_end ChooseStarter + + thumb_func_start CB2_GiveStarter +CB2_GiveStarter: @ 0x080B0A44 + push {lr} + sub sp, #8 + ldr r0, _080B0A88 + bl GetVarPointer + ldr r2, _080B0A8C + ldrh r1, [r2] + strh r1, [r0] + ldrh r0, [r2] + bl GetStarterPokemon + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0 + str r1, [sp] + str r1, [sp, #4] + movs r1, #5 + movs r2, #0 + movs r3, #0 + bl ScriptGiveMon + bl ResetTasks + bl GetFlavorRelationByPersonality + ldr r0, _080B0A90 + bl SetMainCallback2 + movs r0, #0 + bl BattleTransition_Start + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 +_080B0A88: .4byte 0x00004023 +_080B0A8C: .4byte 0x02037290 +_080B0A90: .4byte 0x080B0A95 + thumb_func_end CB2_GiveStarter + + thumb_func_start CB2_StartFirstBattle +CB2_StartFirstBattle: @ 0x080B0A94 + push {lr} + bl UpdatePaletteFade + bl RunTasks + bl IsBattleTransitionDone + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080B0ADC + ldr r1, _080B0AE0 + movs r0, #0x10 + str r0, [r1] + ldr r1, _080B0AE4 + ldr r0, _080B0AE8 + str r0, [r1, #8] + bl FreeAllWindowBuffers + ldr r0, _080B0AEC + bl SetMainCallback2 + bl RestartWildEncounterImmunitySteps + bl ClearPoisonStepCounter + movs r0, #7 + bl IncrementGameStat + movs r0, #8 + bl IncrementGameStat + bl sub_080EF7CC + bl sub_080B0B04 +_080B0ADC: + pop {r0} + bx r0 + .align 2, 0 +_080B0AE0: .4byte 0x02022C90 +_080B0AE4: .4byte 0x03002360 +_080B0AE8: .4byte 0x080B0AF1 +_080B0AEC: .4byte 0x080365B5 + thumb_func_end CB2_StartFirstBattle + + thumb_func_start CB2_EndFirstBattle +CB2_EndFirstBattle: @ 0x080B0AF0 + push {lr} + bl Overworld_ClearSavedMusic + ldr r0, _080B0B00 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080B0B00: .4byte 0x08085B35 + thumb_func_end CB2_EndFirstBattle + + thumb_func_start sub_080B0B04 +sub_080B0B04: @ 0x080B0B04 + push {lr} + movs r0, #8 + bl GetGameStat + movs r1, #0x3c + bl __umodsi3 + cmp r0, #0 + bne _080B0B1A + bl UpdateGymLeaderRematch +_080B0B1A: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080B0B04 + + thumb_func_start sub_080B0B20 +sub_080B0B20: @ 0x080B0B20 + push {lr} + movs r0, #9 + bl GetGameStat + movs r1, #0x14 + bl __umodsi3 + cmp r0, #0 + bne _080B0B36 + bl UpdateGymLeaderRematch +_080B0B36: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080B0B20 + + thumb_func_start TrainerBattleLoadArg32 +TrainerBattleLoadArg32: @ 0x080B0B3C + adds r2, r0, #0 + ldrb r0, [r2] + ldrb r1, [r2, #1] + lsls r1, r1, #8 + orrs r0, r1 + ldrb r1, [r2, #2] + lsls r1, r1, #0x10 + orrs r0, r1 + ldrb r1, [r2, #3] + lsls r1, r1, #0x18 + orrs r0, r1 + bx lr + thumb_func_end TrainerBattleLoadArg32 + + thumb_func_start TrainerBattleLoadArg16 +TrainerBattleLoadArg16: @ 0x080B0B54 + adds r1, r0, #0 + ldrb r0, [r1] + ldrb r1, [r1, #1] + lsls r1, r1, #8 + orrs r0, r1 + bx lr + thumb_func_end TrainerBattleLoadArg16 + + thumb_func_start TrainerBattleLoadArg8 +TrainerBattleLoadArg8: @ 0x080B0B60 + ldrb r0, [r0] + bx lr + thumb_func_end TrainerBattleLoadArg8 + + thumb_func_start GetTrainerBFlag +GetTrainerBFlag: @ 0x080B0B64 + ldr r1, _080B0B78 + movs r2, #0xa0 + lsls r2, r2, #3 + adds r0, r2, #0 + ldrh r1, [r1] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bx lr + .align 2, 0 +_080B0B78: .4byte 0x0203886A + thumb_func_end GetTrainerBFlag + + thumb_func_start GetTrainerAFlag +GetTrainerAFlag: @ 0x080B0B7C + ldr r1, _080B0B90 + movs r2, #0xa0 + lsls r2, r2, #3 + adds r0, r2, #0 + ldrh r1, [r1] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bx lr + .align 2, 0 +_080B0B90: .4byte 0x0203886C + thumb_func_end GetTrainerAFlag + + thumb_func_start IsPlayerDefeated +IsPlayerDefeated: @ 0x080B0B94 + push {lr} + subs r0, #1 + cmp r0, #6 + bhi _080B0BCC + lsls r0, r0, #2 + ldr r1, _080B0BA8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B0BA8: .4byte 0x080B0BAC +_080B0BAC: @ jump table + .4byte _080B0BCC @ case 0 + .4byte _080B0BC8 @ case 1 + .4byte _080B0BC8 @ case 2 + .4byte _080B0BCC @ case 3 + .4byte _080B0BCC @ case 4 + .4byte _080B0BCC @ case 5 + .4byte _080B0BCC @ case 6 +_080B0BC8: + movs r0, #1 + b _080B0BCE +_080B0BCC: + movs r0, #0 +_080B0BCE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsPlayerDefeated + + thumb_func_start ResetTrainerOpponentIds +ResetTrainerOpponentIds: @ 0x080B0BD4 + ldr r0, _080B0BE0 + movs r1, #0 + strh r1, [r0] + ldr r0, _080B0BE4 + strh r1, [r0] + bx lr + .align 2, 0 +_080B0BE0: .4byte 0x0203886A +_080B0BE4: .4byte 0x0203886C + thumb_func_end ResetTrainerOpponentIds + + thumb_func_start InitTrainerBattleVariables +InitTrainerBattleVariables: @ 0x080B0BE8 + push {lr} + ldr r0, _080B0C04 + movs r1, #0 + strh r1, [r0] + ldr r0, _080B0C08 + ldrb r1, [r0] + cmp r1, #0 + bne _080B0C18 + ldr r0, _080B0C0C + str r1, [r0] + ldr r0, _080B0C10 + str r1, [r0] + ldr r0, _080B0C14 + b _080B0C24 + .align 2, 0 +_080B0C04: .4byte 0x02038868 +_080B0C08: .4byte 0x0203889C +_080B0C0C: .4byte 0x02038874 +_080B0C10: .4byte 0x0203887C +_080B0C14: .4byte 0x02038890 +_080B0C18: + ldr r0, _080B0C40 + movs r1, #0 + str r1, [r0] + ldr r0, _080B0C44 + str r1, [r0] + ldr r0, _080B0C48 +_080B0C24: + str r1, [r0] + ldr r1, _080B0C4C + movs r0, #0 + strh r0, [r1] + ldr r0, _080B0C50 + movs r1, #0 + str r1, [r0] + ldr r0, _080B0C54 + str r1, [r0] + ldr r0, _080B0C58 + str r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_080B0C40: .4byte 0x02038878 +_080B0C44: .4byte 0x02038880 +_080B0C48: .4byte 0x02038894 +_080B0C4C: .4byte 0x02038870 +_080B0C50: .4byte 0x02038884 +_080B0C54: .4byte 0x02038888 +_080B0C58: .4byte 0x0203888C + thumb_func_end InitTrainerBattleVariables + + thumb_func_start TrainerBattleLoadArgs +TrainerBattleLoadArgs: @ 0x080B0C5C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 +_080B0C62: + ldrb r0, [r4, #4] + cmp r0, #6 + bhi _080B0CD4 + lsls r0, r0, #2 + ldr r1, _080B0C74 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B0C74: .4byte 0x080B0C78 +_080B0C78: @ jump table + .4byte _080B0C94 @ case 0 + .4byte _080B0CA2 @ case 1 + .4byte _080B0CB0 @ case 2 + .4byte _080B0CBE @ case 3 + .4byte _080B0CC6 @ case 4 + .4byte _080B0CCE @ case 5 + .4byte _080B0CD8 @ case 6 +_080B0C94: + adds r0, r5, #0 + bl TrainerBattleLoadArg8 + ldr r1, [r4] + strb r0, [r1] + adds r5, #1 + b _080B0CD4 +_080B0CA2: + adds r0, r5, #0 + bl TrainerBattleLoadArg16 + ldr r1, [r4] + strh r0, [r1] + adds r5, #2 + b _080B0CD4 +_080B0CB0: + adds r0, r5, #0 + bl TrainerBattleLoadArg32 + ldr r1, [r4] + str r0, [r1] + adds r5, #4 + b _080B0CD4 +_080B0CBE: + ldr r1, [r4] + movs r0, #0 + strb r0, [r1] + b _080B0CD4 +_080B0CC6: + ldr r1, [r4] + movs r0, #0 + strh r0, [r1] + b _080B0CD4 +_080B0CCE: + ldr r1, [r4] + movs r0, #0 + str r0, [r1] +_080B0CD4: + adds r4, #8 + b _080B0C62 +_080B0CD8: + ldr r0, [r4] + str r5, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end TrainerBattleLoadArgs + + thumb_func_start SetMapVarsToTrainer +SetMapVarsToTrainer: @ 0x080B0CE4 + push {lr} + ldr r0, _080B0D0C + ldrh r1, [r0] + cmp r1, #0 + beq _080B0D06 + ldr r0, _080B0D10 + strh r1, [r0] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080B0D14 + ldr r2, [r1] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + bl GetEventObjectIdByLocalIdAndMap + ldr r1, _080B0D18 + strb r0, [r1] +_080B0D06: + pop {r0} + bx r0 + .align 2, 0 +_080B0D0C: .4byte 0x02038870 +_080B0D10: .4byte 0x02037292 +_080B0D14: .4byte 0x03005AEC +_080B0D18: .4byte 0x03005B50 + thumb_func_end SetMapVarsToTrainer + + thumb_func_start BattleSetup_ConfigureTrainerBattle +BattleSetup_ConfigureTrainerBattle: @ 0x080B0D1C + push {r4, r5, lr} + adds r5, r0, #0 + bl InitTrainerBattleVariables + ldr r4, _080B0D48 + adds r0, r5, #0 + bl TrainerBattleLoadArg8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + ldrh r0, [r4] + subs r0, #1 + cmp r0, #0xb + bls _080B0D3C + b _080B0EE0 +_080B0D3C: + lsls r0, r0, #2 + ldr r1, _080B0D4C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B0D48: .4byte 0x02038868 +_080B0D4C: .4byte 0x080B0D50 +_080B0D50: @ jump table + .4byte _080B0DB8 @ case 0 + .4byte _080B0D9C @ case 1 + .4byte _080B0D80 @ case 2 + .4byte _080B0D94 @ case 3 + .4byte _080B0E00 @ case 4 + .4byte _080B0DC0 @ case 5 + .4byte _080B0DD8 @ case 6 + .4byte _080B0DC0 @ case 7 + .4byte _080B0E28 @ case 8 + .4byte _080B0E7C @ case 9 + .4byte _080B0E84 @ case 10 + .4byte _080B0E94 @ case 11 +_080B0D80: + ldr r0, _080B0D8C + adds r1, r5, #0 + bl TrainerBattleLoadArgs + ldr r0, _080B0D90 + b _080B0F0A + .align 2, 0 +_080B0D8C: .4byte 0x0852AC20 +_080B0D90: .4byte 0x0824245C +_080B0D94: + ldr r0, _080B0D98 + b _080B0DC2 + .align 2, 0 +_080B0D98: .4byte 0x0852ABD8 +_080B0D9C: + ldr r0, _080B0DA8 + ldrb r0, [r0] + cmp r0, #0 + bne _080B0DB0 + ldr r0, _080B0DAC + b _080B0EEA + .align 2, 0 +_080B0DA8: .4byte 0x0203889C +_080B0DAC: .4byte 0x0852AB90 +_080B0DB0: + ldr r0, _080B0DB4 + b _080B0F02 + .align 2, 0 +_080B0DB4: .4byte 0x0852ACF8 +_080B0DB8: + ldr r0, _080B0DBC + b _080B0EEA + .align 2, 0 +_080B0DBC: .4byte 0x0852AB90 +_080B0DC0: + ldr r0, _080B0DD0 +_080B0DC2: + adds r1, r5, #0 + bl TrainerBattleLoadArgs + bl SetMapVarsToTrainer + ldr r0, _080B0DD4 + b _080B0F0A + .align 2, 0 +_080B0DD0: .4byte 0x0852AC68 +_080B0DD4: .4byte 0x08242424 +_080B0DD8: + ldr r0, _080B0DF4 + adds r1, r5, #0 + bl TrainerBattleLoadArgs + bl SetMapVarsToTrainer + ldr r4, _080B0DF8 + ldrh r0, [r4] + bl GetRematchTrainerId + strh r0, [r4] + ldr r0, _080B0DFC + b _080B0F0A + .align 2, 0 +_080B0DF4: .4byte 0x0852ABD8 +_080B0DF8: .4byte 0x0203886A +_080B0DFC: .4byte 0x08242492 +_080B0E00: + ldr r0, _080B0E1C + adds r1, r5, #0 + bl TrainerBattleLoadArgs + bl SetMapVarsToTrainer + ldr r4, _080B0E20 + ldrh r0, [r4] + bl GetRematchTrainerId + strh r0, [r4] + ldr r0, _080B0E24 + b _080B0F0A + .align 2, 0 +_080B0E1C: .4byte 0x0852AB48 +_080B0E20: .4byte 0x0203886A +_080B0E24: .4byte 0x0824246B +_080B0E28: + ldr r0, _080B0E48 + ldrb r0, [r0] + cmp r0, #0 + bne _080B0E58 + ldr r0, _080B0E4C + adds r1, r5, #0 + bl TrainerBattleLoadArgs + bl SetMapVarsToTrainer + ldr r0, _080B0E50 + ldrb r0, [r0] + bl LocalIdToPyramidTrainerId + ldr r1, _080B0E54 + b _080B0E6A + .align 2, 0 +_080B0E48: .4byte 0x0203889C +_080B0E4C: .4byte 0x0852AB48 +_080B0E50: .4byte 0x02037292 +_080B0E54: .4byte 0x0203886A +_080B0E58: + ldr r0, _080B0E70 + adds r1, r5, #0 + bl TrainerBattleLoadArgs + ldr r0, _080B0E74 + ldrb r0, [r0] + bl LocalIdToPyramidTrainerId +_080B0E68: + ldr r1, _080B0E78 +_080B0E6A: + strh r0, [r1] + b _080B0F08 + .align 2, 0 +_080B0E70: .4byte 0x0852ACB0 +_080B0E74: .4byte 0x02037292 +_080B0E78: .4byte 0x0203886C +_080B0E7C: + ldr r0, _080B0E80 + b _080B0E86 + .align 2, 0 +_080B0E80: .4byte 0x0852AB48 +_080B0E84: + ldr r0, _080B0E90 +_080B0E86: + adds r1, r5, #0 + bl TrainerBattleLoadArgs + movs r0, #0 + b _080B0F0A + .align 2, 0 +_080B0E90: .4byte 0x0852ACB0 +_080B0E94: + ldr r0, _080B0EB4 + ldrb r0, [r0] + cmp r0, #0 + bne _080B0EC4 + ldr r0, _080B0EB8 + adds r1, r5, #0 + bl TrainerBattleLoadArgs + bl SetMapVarsToTrainer + ldr r0, _080B0EBC + ldrb r0, [r0] + bl LocalIdToHillTrainerId + ldr r1, _080B0EC0 + b _080B0E6A + .align 2, 0 +_080B0EB4: .4byte 0x0203889C +_080B0EB8: .4byte 0x0852AB48 +_080B0EBC: .4byte 0x02037292 +_080B0EC0: .4byte 0x0203886A +_080B0EC4: + ldr r0, _080B0ED8 + adds r1, r5, #0 + bl TrainerBattleLoadArgs + ldr r0, _080B0EDC + ldrb r0, [r0] + bl LocalIdToHillTrainerId + b _080B0E68 + .align 2, 0 +_080B0ED8: .4byte 0x0852ACB0 +_080B0EDC: .4byte 0x02037292 +_080B0EE0: + ldr r0, _080B0EF8 + ldrb r0, [r0] + cmp r0, #0 + bne _080B0F00 + ldr r0, _080B0EFC +_080B0EEA: + adds r1, r5, #0 + bl TrainerBattleLoadArgs + bl SetMapVarsToTrainer + b _080B0F08 + .align 2, 0 +_080B0EF8: .4byte 0x0203889C +_080B0EFC: .4byte 0x0852AB48 +_080B0F00: + ldr r0, _080B0F10 +_080B0F02: + adds r1, r5, #0 + bl TrainerBattleLoadArgs +_080B0F08: + ldr r0, _080B0F14 +_080B0F0A: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080B0F10: .4byte 0x0852ACB0 +_080B0F14: .4byte 0x082423FC + thumb_func_end BattleSetup_ConfigureTrainerBattle + + thumb_func_start ConfigureAndSetUpOneTrainerBattle +ConfigureAndSetUpOneTrainerBattle: @ 0x080B0F18 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080B0F4C + strb r0, [r2] + ldr r4, _080B0F50 + ldr r3, _080B0F54 + lsls r2, r0, #3 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r3 + ldrb r0, [r2, #8] + strh r0, [r4] + adds r1, #1 + adds r0, r1, #0 + bl BattleSetup_ConfigureTrainerBattle + ldr r0, _080B0F58 + bl ScriptContext1_SetupScript + bl ScriptContext2_Enable + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B0F4C: .4byte 0x03005B50 +_080B0F50: .4byte 0x02037292 +_080B0F54: .4byte 0x02036FF0 +_080B0F58: .4byte 0x082423EE + thumb_func_end ConfigureAndSetUpOneTrainerBattle + + thumb_func_start ConfigureTwoTrainersBattle +ConfigureTwoTrainersBattle: @ 0x080B0F5C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080B0F84 + strb r0, [r2] + ldr r4, _080B0F88 + ldr r3, _080B0F8C + lsls r2, r0, #3 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r3 + ldrb r0, [r2, #8] + strh r0, [r4] + adds r1, #1 + adds r0, r1, #0 + bl BattleSetup_ConfigureTrainerBattle + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B0F84: .4byte 0x03005B50 +_080B0F88: .4byte 0x02037292 +_080B0F8C: .4byte 0x02036FF0 + thumb_func_end ConfigureTwoTrainersBattle + + thumb_func_start SetUpTwoTrainersBattle +SetUpTwoTrainersBattle: @ 0x080B0F90 + push {lr} + ldr r0, _080B0FA0 + bl ScriptContext1_SetupScript + bl ScriptContext2_Enable + pop {r0} + bx r0 + .align 2, 0 +_080B0FA0: .4byte 0x082423EE + thumb_func_end SetUpTwoTrainersBattle + + thumb_func_start GetTrainerFlagFromScriptPointer +GetTrainerFlagFromScriptPointer: @ 0x080B0FA4 + push {lr} + adds r0, #2 + bl TrainerBattleLoadArg16 + lsls r0, r0, #0x10 + movs r1, #0xa0 + lsls r1, r1, #0x13 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetTrainerFlagFromScriptPointer + + thumb_func_start SetUpTrainerMovement +SetUpTrainerMovement: @ 0x080B0FC4 + push {r4, lr} + ldr r0, _080B0FF0 + ldrb r0, [r0] + lsls r4, r0, #3 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _080B0FF4 + adds r4, r4, r0 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl GroundEffect_DeepSandTracks + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl SetTrainerMovementType + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B0FF0: .4byte 0x03005B50 +_080B0FF4: .4byte 0x02036FF0 + thumb_func_end SetUpTrainerMovement + + thumb_func_start GetTrainerBattleMode +GetTrainerBattleMode: @ 0x080B0FF8 + ldr r0, _080B1000 + ldrb r0, [r0] + bx lr + .align 2, 0 +_080B1000: .4byte 0x02038868 + thumb_func_end GetTrainerBattleMode + + thumb_func_start GetTrainerFlag +GetTrainerFlag: @ 0x080B1004 + push {lr} + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B1020 + ldr r0, _080B101C + ldrb r0, [r0] + bl GetBattlePyramidTrainerFlag + b _080B103E + .align 2, 0 +_080B101C: .4byte 0x03005B50 +_080B1020: + bl InTrainerHill + cmp r0, #0 + bne _080B1036 + bl GetTrainerBFlag + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl FlagGet + b _080B103E +_080B1036: + ldr r0, _080B1048 + ldrb r0, [r0] + bl GetHillTrainerFlag +_080B103E: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_080B1048: .4byte 0x03005B50 + thumb_func_end GetTrainerFlag + + thumb_func_start SetBattledTrainersFlags +SetBattledTrainersFlags: @ 0x080B104C + push {lr} + ldr r0, _080B1074 + ldrh r0, [r0] + cmp r0, #0 + beq _080B1062 + bl GetTrainerAFlag + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl FlagSet +_080B1062: + bl GetTrainerBFlag + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl FlagSet + pop {r0} + bx r0 + .align 2, 0 +_080B1074: .4byte 0x0203886C + thumb_func_end SetBattledTrainersFlags + + thumb_func_start SetBattledTrainerFlag +SetBattledTrainerFlag: @ 0x080B1078 + push {lr} + bl GetTrainerBFlag + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl FlagSet + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetBattledTrainerFlag + + thumb_func_start HasTrainerBeenFought +HasTrainerBeenFought: @ 0x080B108C + push {lr} + lsls r0, r0, #0x10 + movs r1, #0xa0 + lsls r1, r1, #0x13 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + thumb_func_end HasTrainerBeenFought + + thumb_func_start ClearTrainerFlag +ClearTrainerFlag: @ 0x080B10A4 + push {lr} + lsls r0, r0, #0x10 + movs r1, #0xa0 + lsls r1, r1, #0x13 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + bl FlagSet + pop {r0} + bx r0 + thumb_func_end ClearTrainerFlag + + thumb_func_start SetTrainerFlag +SetTrainerFlag: @ 0x080B10B8 + push {lr} + lsls r0, r0, #0x10 + movs r1, #0xa0 + lsls r1, r1, #0x13 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + bl FlagClear + pop {r0} + bx r0 + thumb_func_end SetTrainerFlag + + thumb_func_start BattleSetup_StartTrainerBattle +BattleSetup_StartTrainerBattle: @ 0x080B10CC + push {r4, lr} + ldr r0, _080B10DC + ldrb r0, [r0] + cmp r0, #2 + bne _080B10E8 + ldr r1, _080B10E0 + ldr r0, _080B10E4 + b _080B10EC + .align 2, 0 +_080B10DC: .4byte 0x03005E08 +_080B10E0: .4byte 0x02022C90 +_080B10E4: .4byte 0x00008009 +_080B10E8: + ldr r1, _080B1140 + movs r0, #8 +_080B10EC: + str r0, [r1] + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B1170 + ldr r0, _080B1144 + movs r1, #0 + bl VarSet + ldr r2, _080B1140 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0xe + orrs r0, r1 + str r0, [r2] + ldr r0, _080B1148 + ldrb r0, [r0] + cmp r0, #2 + bne _080B1150 + movs r0, #1 + bl FillFrontierTrainersParties + ldr r4, _080B114C + adds r0, r4, #0 + bl ZeroMonData + adds r0, r4, #0 + adds r0, #0x64 + bl ZeroMonData + movs r1, #0x96 + lsls r1, r1, #1 + adds r0, r4, r1 + bl ZeroMonData + movs r1, #0xc8 + lsls r1, r1, #1 + adds r0, r4, r1 + bl ZeroMonData + b _080B1166 + .align 2, 0 +_080B1140: .4byte 0x02022C90 +_080B1144: .4byte 0x0000400E +_080B1148: .4byte 0x03005E08 +_080B114C: .4byte 0x0202444C +_080B1150: + movs r0, #1 + bl FillFrontierTrainerParty + ldr r4, _080B116C + adds r0, r4, #0 + bl ZeroMonData + adds r4, #0x64 + adds r0, r4, #0 + bl ZeroMonData +_080B1166: + bl MarkApproachingPyramidTrainersAsBattled + b _080B11A4 + .align 2, 0 +_080B116C: .4byte 0x0202444C +_080B1170: + bl sub_081D52F0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B11A4 + ldr r2, _080B1194 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0x13 + orrs r0, r1 + str r0, [r2] + ldr r0, _080B1198 + ldrb r0, [r0] + cmp r0, #2 + bne _080B119C + bl FillHillTrainersParties + b _080B11A0 + .align 2, 0 +_080B1194: .4byte 0x02022C90 +_080B1198: .4byte 0x03005E08 +_080B119C: + bl FillHillTrainerParty +_080B11A0: + bl SetHillTrainerFlag +_080B11A4: + ldr r1, _080B11DC + ldr r2, _080B11E0 + ldrb r0, [r2] + strb r0, [r1] + movs r1, #0 + strb r1, [r2] + ldr r0, _080B11E4 + strb r1, [r0] + ldr r1, _080B11E8 + movs r0, #0 + strh r0, [r1] + ldr r1, _080B11EC + ldr r0, _080B11F0 + str r0, [r1, #8] + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B11D4 + bl sub_081D52F0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B11F4 +_080B11D4: + bl sub_080B0124 + b _080B11F8 + .align 2, 0 +_080B11DC: .4byte 0x02038899 +_080B11E0: .4byte 0x03005E08 +_080B11E4: .4byte 0x02038898 +_080B11E8: .4byte 0x03005DE0 +_080B11EC: .4byte 0x03002360 +_080B11F0: .4byte 0x080B1205 +_080B11F4: + bl DoTrainerBattle +_080B11F8: + bl ScriptContext1_Stop + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BattleSetup_StartTrainerBattle + + thumb_func_start CB2_EndTrainerBattle +CB2_EndTrainerBattle: @ 0x080B1204 + push {lr} + ldr r0, _080B123C + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #3 + cmp r1, r0 + beq _080B1232 + ldr r0, _080B1240 + ldrb r0, [r0] + bl IsPlayerDefeated + cmp r0, #1 + bne _080B1254 + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B1232 + bl sub_081D52F0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B1248 +_080B1232: + ldr r0, _080B1244 + bl SetMainCallback2 + b _080B1276 + .align 2, 0 +_080B123C: .4byte 0x0203886A +_080B1240: .4byte 0x02023FDE +_080B1244: .4byte 0x08085B35 +_080B1248: + ldr r0, _080B1250 + bl SetMainCallback2 + b _080B1276 + .align 2, 0 +_080B1250: .4byte 0x080858C1 +_080B1254: + ldr r0, _080B127C + bl SetMainCallback2 + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B1276 + bl sub_081D52F0 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B1276 + bl RegisterTrainerInMatchCall + bl SetBattledTrainersFlags +_080B1276: + pop {r0} + bx r0 + .align 2, 0 +_080B127C: .4byte 0x08085B35 + thumb_func_end CB2_EndTrainerBattle + + thumb_func_start CB2_EndRematchBattle +CB2_EndRematchBattle: @ 0x080B1280 + push {lr} + ldr r0, _080B1298 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #3 + cmp r1, r0 + bne _080B12A0 + ldr r0, _080B129C + bl SetMainCallback2 + b _080B12CE + .align 2, 0 +_080B1298: .4byte 0x0203886A +_080B129C: .4byte 0x08085B35 +_080B12A0: + ldr r0, _080B12B4 + ldrb r0, [r0] + bl IsPlayerDefeated + cmp r0, #1 + bne _080B12BC + ldr r0, _080B12B8 + bl SetMainCallback2 + b _080B12CE + .align 2, 0 +_080B12B4: .4byte 0x02023FDE +_080B12B8: .4byte 0x080858C1 +_080B12BC: + ldr r0, _080B12D4 + bl SetMainCallback2 + bl RegisterTrainerInMatchCall + bl SetBattledTrainersFlags + bl HandleRematchVarsOnBattleEnd +_080B12CE: + pop {r0} + bx r0 + .align 2, 0 +_080B12D4: .4byte 0x08085B35 + thumb_func_end CB2_EndRematchBattle + + thumb_func_start BattleSetup_StartRematchBattle +BattleSetup_StartRematchBattle: @ 0x080B12D8 + push {lr} + ldr r1, _080B12F4 + movs r0, #8 + str r0, [r1] + ldr r1, _080B12F8 + ldr r0, _080B12FC + str r0, [r1, #8] + bl DoTrainerBattle + bl ScriptContext1_Stop + pop {r0} + bx r0 + .align 2, 0 +_080B12F4: .4byte 0x02022C90 +_080B12F8: .4byte 0x03002360 +_080B12FC: .4byte 0x080B1281 + thumb_func_end BattleSetup_StartRematchBattle + + thumb_func_start ShowTrainerIntroSpeech +ShowTrainerIntroSpeech: @ 0x080B1300 + push {lr} + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B1368 + ldr r0, _080B1328 + ldrb r0, [r0] + cmp r0, #1 + bhi _080B1330 + ldr r0, _080B132C + ldrb r0, [r0] + bl LocalIdToPyramidTrainerId + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl CopyPyramidTrainerSpeechBefore + b _080B13C4 + .align 2, 0 +_080B1328: .4byte 0x03005E08 +_080B132C: .4byte 0x02037292 +_080B1330: + ldr r3, _080B135C + ldr r2, _080B1360 + ldr r0, _080B1364 + ldrb r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0, #8] + bl LocalIdToPyramidTrainerId + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl CopyPyramidTrainerSpeechBefore + b _080B13C4 + .align 2, 0 +_080B135C: .4byte 0x02036FF0 +_080B1360: .4byte 0x03005DF0 +_080B1364: .4byte 0x0203889C +_080B1368: + bl sub_081D52F0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B13D8 + ldr r0, _080B1390 + ldrb r0, [r0] + cmp r0, #1 + bhi _080B1398 + ldr r0, _080B1394 + ldrb r0, [r0] + bl LocalIdToHillTrainerId + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #2 + bl CopyTrainerHillTrainerText + b _080B13C4 + .align 2, 0 +_080B1390: .4byte 0x03005E08 +_080B1394: .4byte 0x02037292 +_080B1398: + ldr r3, _080B13CC + ldr r2, _080B13D0 + ldr r0, _080B13D4 + ldrb r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0, #8] + bl LocalIdToHillTrainerId + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #2 + bl CopyTrainerHillTrainerText +_080B13C4: + bl sub_08097C40 + b _080B13E0 + .align 2, 0 +_080B13CC: .4byte 0x02036FF0 +_080B13D0: .4byte 0x03005DF0 +_080B13D4: .4byte 0x0203889C +_080B13D8: + bl GetIntroSpeechOfApproachingTrainer + bl ShowFieldMessage +_080B13E0: + pop {r0} + bx r0 + thumb_func_end ShowTrainerIntroSpeech + + thumb_func_start BattleSetup_GetScriptAddrAfterBattle +BattleSetup_GetScriptAddrAfterBattle: @ 0x080B13E4 + push {lr} + ldr r0, _080B13F4 + ldr r0, [r0] + cmp r0, #0 + bne _080B13F0 + ldr r0, _080B13F8 +_080B13F0: + pop {r1} + bx r1 + .align 2, 0 +_080B13F4: .4byte 0x0203888C +_080B13F8: .4byte 0x08276D3D + thumb_func_end BattleSetup_GetScriptAddrAfterBattle + + thumb_func_start BattleSetup_GetTrainerPostBattleScript +BattleSetup_GetTrainerPostBattleScript: @ 0x080B13FC + push {lr} + ldr r1, _080B141C + ldrb r2, [r1] + cmp r2, #0 + beq _080B1428 + movs r0, #0 + strb r0, [r1] + ldr r0, _080B1420 + ldr r2, [r0] + cmp r2, #0 + beq _080B1440 + ldr r1, _080B1424 + movs r0, #1 + strh r0, [r1] + adds r0, r2, #0 + b _080B1442 + .align 2, 0 +_080B141C: .4byte 0x02038898 +_080B1420: .4byte 0x02038894 +_080B1424: .4byte 0x03005DE0 +_080B1428: + ldr r0, _080B1438 + ldr r1, [r0] + cmp r1, #0 + beq _080B1440 + ldr r0, _080B143C + strh r2, [r0] + adds r0, r1, #0 + b _080B1442 + .align 2, 0 +_080B1438: .4byte 0x02038890 +_080B143C: .4byte 0x03005DE0 +_080B1440: + ldr r0, _080B1448 +_080B1442: + pop {r1} + bx r1 + .align 2, 0 +_080B1448: .4byte 0x08244D10 + thumb_func_end BattleSetup_GetTrainerPostBattleScript + + thumb_func_start ShowTrainerCantBattleSpeech +ShowTrainerCantBattleSpeech: @ 0x080B144C + push {lr} + bl GetTrainerCantBattleSpeech + bl ShowFieldMessage + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ShowTrainerCantBattleSpeech + + thumb_func_start SetUpTrainerEncounterMusic +SetUpTrainerEncounterMusic: @ 0x080B145C + push {lr} + ldr r0, _080B146C + ldrb r0, [r0] + cmp r0, #0 + bne _080B1474 + ldr r0, _080B1470 + b _080B1476 + .align 2, 0 +_080B146C: .4byte 0x0203889C +_080B1470: .4byte 0x0203886A +_080B1474: + ldr r0, _080B149C +_080B1476: + ldrh r1, [r0] + ldr r0, _080B14A0 + ldrh r0, [r0] + cmp r0, #1 + beq _080B154E + cmp r0, #8 + beq _080B154E + adds r0, r1, #0 + bl GetTrainerEncounterMusicId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xd + bhi _080B1548 + lsls r0, r0, #2 + ldr r1, _080B14A4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B149C: .4byte 0x0203886C +_080B14A0: .4byte 0x02038868 +_080B14A4: .4byte 0x080B14A8 +_080B14A8: @ jump table + .4byte _080B14E0 @ case 0 + .4byte _080B14E6 @ case 1 + .4byte _080B14F0 @ case 2 + .4byte _080B1548 @ case 3 + .4byte _080B14F8 @ case 4 + .4byte _080B14FE @ case 5 + .4byte _080B1508 @ case 6 + .4byte _080B1510 @ case 7 + .4byte _080B1518 @ case 8 + .4byte _080B1520 @ case 9 + .4byte _080B1528 @ case 10 + .4byte _080B152E @ case 11 + .4byte _080B1538 @ case 12 + .4byte _080B1540 @ case 13 +_080B14E0: + movs r0, #0xbe + lsls r0, r0, #1 + b _080B154A +_080B14E6: + ldr r0, _080B14EC + b _080B154A + .align 2, 0 +_080B14EC: .4byte 0x00000197 +_080B14F0: + ldr r0, _080B14F4 + b _080B154A + .align 2, 0 +_080B14F4: .4byte 0x0000017B +_080B14F8: + movs r0, #0xd0 + lsls r0, r0, #1 + b _080B154A +_080B14FE: + ldr r0, _080B1504 + b _080B154A + .align 2, 0 +_080B1504: .4byte 0x000001A1 +_080B1508: + ldr r0, _080B150C + b _080B154A + .align 2, 0 +_080B150C: .4byte 0x000001A3 +_080B1510: + ldr r0, _080B1514 + b _080B154A + .align 2, 0 +_080B1514: .4byte 0x000001B9 +_080B1518: + ldr r0, _080B151C + b _080B154A + .align 2, 0 +_080B151C: .4byte 0x00000181 +_080B1520: + ldr r0, _080B1524 + b _080B154A + .align 2, 0 +_080B1524: .4byte 0x000001C1 +_080B1528: + movs r0, #0xe1 + lsls r0, r0, #1 + b _080B154A +_080B152E: + ldr r0, _080B1534 + b _080B154A + .align 2, 0 +_080B1534: .4byte 0x000001C3 +_080B1538: + ldr r0, _080B153C + b _080B154A + .align 2, 0 +_080B153C: .4byte 0x000001C5 +_080B1540: + ldr r0, _080B1544 + b _080B154A + .align 2, 0 +_080B1544: .4byte 0x0000018D +_080B1548: + ldr r0, _080B1554 +_080B154A: + bl PlayNewMapMusic +_080B154E: + pop {r0} + bx r0 + .align 2, 0 +_080B1554: .4byte 0x000001A7 + thumb_func_end SetUpTrainerEncounterMusic + + thumb_func_start ReturnEmptyStringIfNull +ReturnEmptyStringIfNull: @ 0x080B1558 + push {lr} + cmp r0, #0 + bne _080B1560 + ldr r0, _080B1564 +_080B1560: + pop {r1} + bx r1 + .align 2, 0 +_080B1564: .4byte 0x085C93D0 + thumb_func_end ReturnEmptyStringIfNull + + thumb_func_start GetIntroSpeechOfApproachingTrainer +GetIntroSpeechOfApproachingTrainer: @ 0x080B1568 + push {lr} + ldr r0, _080B1578 + ldrb r0, [r0] + cmp r0, #0 + beq _080B1580 + ldr r0, _080B157C + b _080B1582 + .align 2, 0 +_080B1578: .4byte 0x0203889C +_080B157C: .4byte 0x02038878 +_080B1580: + ldr r0, _080B158C +_080B1582: + ldr r0, [r0] + bl ReturnEmptyStringIfNull + pop {r1} + bx r1 + .align 2, 0 +_080B158C: .4byte 0x02038874 + thumb_func_end GetIntroSpeechOfApproachingTrainer + + thumb_func_start GetTrainerALoseText +GetTrainerALoseText: @ 0x080B1590 + push {r4, lr} + ldr r0, _080B15A4 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #3 + cmp r1, r0 + bne _080B15A8 + bl GetSecretBaseTrainerLoseText + b _080B15AC + .align 2, 0 +_080B15A4: .4byte 0x0203886A +_080B15A8: + ldr r0, _080B15C4 + ldr r0, [r0] +_080B15AC: + ldr r4, _080B15C8 + bl ReturnEmptyStringIfNull + adds r1, r0, #0 + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080B15C4: .4byte 0x0203887C +_080B15C8: .4byte 0x02021C7C + thumb_func_end GetTrainerALoseText + + thumb_func_start GetTrainerBLoseText +GetTrainerBLoseText: @ 0x080B15CC + push {r4, lr} + ldr r4, _080B15E8 + ldr r0, _080B15EC + ldr r0, [r0] + bl ReturnEmptyStringIfNull + adds r1, r0, #0 + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080B15E8: .4byte 0x02021C7C +_080B15EC: .4byte 0x02038880 + thumb_func_end GetTrainerBLoseText + + thumb_func_start GetTrainerWonSpeech +GetTrainerWonSpeech: @ 0x080B15F0 + push {lr} + ldr r0, _080B1600 + ldr r0, [r0] + bl ReturnEmptyStringIfNull + pop {r1} + bx r1 + .align 2, 0 +_080B1600: .4byte 0x02038884 + thumb_func_end GetTrainerWonSpeech + + thumb_func_start GetTrainerCantBattleSpeech +GetTrainerCantBattleSpeech: @ 0x080B1604 + push {lr} + ldr r0, _080B1614 + ldr r0, [r0] + bl ReturnEmptyStringIfNull + pop {r1} + bx r1 + .align 2, 0 +_080B1614: .4byte 0x02038888 + thumb_func_end GetTrainerCantBattleSpeech + + thumb_func_start FirstBattleTrainerIdToRematchTableId +FirstBattleTrainerIdToRematchTableId: @ 0x080B1618 + push {lr} + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r3, #0 + adds r2, r0, #0 +_080B1622: + ldrh r0, [r2] + cmp r0, r1 + bne _080B162C + adds r0, r3, #0 + b _080B1638 +_080B162C: + adds r2, #0x10 + adds r3, #1 + cmp r3, #0x4d + ble _080B1622 + movs r0, #1 + rsbs r0, r0, #0 +_080B1638: + pop {r1} + bx r1 + thumb_func_end FirstBattleTrainerIdToRematchTableId + + thumb_func_start TrainerIdToRematchTableId +TrainerIdToRematchTableId: @ 0x080B163C + push {r4, r5, lr} + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + movs r4, #0 + adds r2, r0, #0 +_080B1646: + movs r1, #0 + ldrh r0, [r2] + cmp r0, #0 + beq _080B166C + movs r3, #0 +_080B1650: + adds r0, r2, r3 + ldrh r0, [r0] + cmp r0, r5 + bne _080B165C + adds r0, r4, #0 + b _080B1678 +_080B165C: + adds r3, #2 + adds r1, #1 + cmp r1, #4 + bgt _080B166C + adds r0, r2, r3 + ldrh r0, [r0] + cmp r0, #0 + bne _080B1650 +_080B166C: + adds r2, #0x10 + adds r4, #1 + cmp r4, #0x4d + ble _080B1646 + movs r0, #1 + rsbs r0, r0, #0 +_080B1678: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TrainerIdToRematchTableId + + thumb_func_start sub_080B1680 +sub_080B1680: @ 0x080B1680 + push {lr} + cmp r0, #0x48 + ble _080B168A + movs r0, #1 + b _080B16A4 +_080B168A: + cmp r0, #0x40 + bne _080B16A2 + movs r0, #0x7e + bl FlagGet + movs r1, #0 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B169E + movs r1, #1 +_080B169E: + adds r0, r1, #0 + b _080B16A4 +_080B16A2: + movs r0, #0 +_080B16A4: + pop {r1} + bx r1 + thumb_func_end sub_080B1680 + + thumb_func_start SetRematchIdForTrainer +SetRematchIdForTrainer: @ 0x080B16A8 + push {r4, r5, r6, lr} + adds r6, r1, #0 + movs r5, #1 + lsls r1, r6, #4 + adds r1, r1, r0 + adds r4, r1, #2 + b _080B16BA +_080B16B6: + adds r4, #2 + adds r5, #1 +_080B16BA: + cmp r5, #4 + bgt _080B16CE + ldrh r0, [r4] + cmp r0, #0 + beq _080B16CE + bl HasTrainerBeenFought + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B16B6 +_080B16CE: + ldr r0, _080B16E0 + ldr r0, [r0] + ldr r1, _080B16E4 + adds r0, r0, r1 + adds r0, r0, r6 + strb r5, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080B16E0: .4byte 0x03005AEC +_080B16E4: .4byte 0x000009CA + thumb_func_end SetRematchIdForTrainer + + thumb_func_start UpdateRandomTrainerRematches +UpdateRandomTrainerRematches: @ 0x080B16E8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sb, r1 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + mov r8, r2 + movs r7, #0 + movs r5, #0 + adds r4, r6, #0 + adds r4, #0xa +_080B1706: + ldrh r0, [r4] + cmp r0, sb + bne _080B1760 + ldrh r0, [r4, #2] + cmp r0, r8 + bne _080B1760 + adds r0, r5, #0 + bl sub_080B1680 + cmp r0, #0 + bne _080B1760 + ldr r0, _080B1778 + ldr r0, [r0] + ldr r1, _080B177C + adds r0, r0, r1 + adds r0, r0, r5 + ldrb r0, [r0] + cmp r0, #0 + bne _080B175E + movs r1, #0xae + lsls r1, r1, #1 + adds r0, r5, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B1760 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x1e + bhi _080B1760 + adds r0, r6, #0 + adds r1, r5, #0 + bl SetRematchIdForTrainer +_080B175E: + movs r7, #1 +_080B1760: + adds r4, #0x10 + adds r5, #1 + cmp r5, #0x40 + ble _080B1706 + adds r0, r7, #0 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080B1778: .4byte 0x03005AEC +_080B177C: .4byte 0x000009CA + thumb_func_end UpdateRandomTrainerRematches + + thumb_func_start UpdateRematchIfDefeated +UpdateRematchIfDefeated: @ 0x080B1780 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _080B17A8 + lsls r0, r4, #4 + adds r0, r0, r5 + ldrh r0, [r0] + bl HasTrainerBeenFought + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080B17A0 + adds r0, r5, #0 + adds r1, r4, #0 + bl SetRematchIdForTrainer +_080B17A0: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B17A8: .4byte 0x0852AD40 + thumb_func_end UpdateRematchIfDefeated + + thumb_func_start DoesSomeoneWantRematchIn_ +DoesSomeoneWantRematchIn_: @ 0x080B17AC + push {r4, r5, r6, lr} + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + movs r1, #0 + adds r3, r0, #0 + adds r3, #0xa + ldr r5, _080B17DC +_080B17BE: + ldrh r0, [r3] + cmp r0, r4 + bne _080B17E4 + ldrh r0, [r3, #2] + cmp r0, r2 + bne _080B17E4 + ldr r0, [r5] + ldr r6, _080B17E0 + adds r0, r0, r6 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _080B17E4 + movs r0, #1 + b _080B17EE + .align 2, 0 +_080B17DC: .4byte 0x03005AEC +_080B17E0: .4byte 0x000009CA +_080B17E4: + adds r3, #0x10 + adds r1, #1 + cmp r1, #0x4d + ble _080B17BE + movs r0, #0 +_080B17EE: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end DoesSomeoneWantRematchIn_ + + thumb_func_start IsRematchTrainerIn_ +IsRematchTrainerIn_: @ 0x080B17F4 + push {r4, lr} + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + movs r1, #0 + adds r3, r0, #0 + adds r3, #0xa +_080B1804: + ldrh r0, [r3] + cmp r0, r4 + bne _080B1814 + ldrh r0, [r3, #2] + cmp r0, r2 + bne _080B1814 + movs r0, #1 + b _080B181E +_080B1814: + adds r3, #0x10 + adds r1, #1 + cmp r1, #0x4d + ble _080B1804 + movs r0, #0 +_080B181E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end IsRematchTrainerIn_ + + thumb_func_start IsFirstTrainerIdReadyForRematch +IsFirstTrainerIdReadyForRematch: @ 0x080B1824 + push {lr} + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl FirstBattleTrainerIdToRematchTableId + adds r1, r0, #0 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _080B1858 + cmp r1, #0x63 + bgt _080B1858 + ldr r0, _080B1850 + ldr r0, [r0] + ldr r2, _080B1854 + adds r0, r0, r2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _080B1858 + movs r0, #1 + b _080B185A + .align 2, 0 +_080B1850: .4byte 0x03005AEC +_080B1854: .4byte 0x000009CA +_080B1858: + movs r0, #0 +_080B185A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsFirstTrainerIdReadyForRematch + + thumb_func_start IsTrainerReadyForRematch_ +IsTrainerReadyForRematch_: @ 0x080B1860 + push {lr} + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl TrainerIdToRematchTableId + adds r1, r0, #0 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _080B1894 + cmp r1, #0x63 + bgt _080B1894 + ldr r0, _080B188C + ldr r0, [r0] + ldr r2, _080B1890 + adds r0, r0, r2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _080B1894 + movs r0, #1 + b _080B1896 + .align 2, 0 +_080B188C: .4byte 0x03005AEC +_080B1890: .4byte 0x000009CA +_080B1894: + movs r0, #0 +_080B1896: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsTrainerReadyForRematch_ + + thumb_func_start GetRematchTrainerIdFromTable +GetRematchTrainerIdFromTable: @ 0x080B189C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl FirstBattleTrainerIdToRematchTableId + adds r1, r0, #0 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _080B18C4 + movs r0, #0 + b _080B18EA +_080B18B6: + subs r0, r6, #1 + lsls r0, r0, #1 + adds r0, r7, r0 + ldrh r0, [r0] + b _080B18EA +_080B18C0: + ldrh r0, [r5] + b _080B18EA +_080B18C4: + lsls r0, r1, #4 + adds r7, r4, r0 + movs r6, #1 + adds r5, r7, #2 + adds r4, r5, #0 +_080B18CE: + ldrh r0, [r4] + cmp r0, #0 + beq _080B18B6 + bl HasTrainerBeenFought + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B18C0 + adds r4, #2 + adds r5, #2 + adds r6, #1 + cmp r6, #4 + ble _080B18CE + ldrh r0, [r7, #8] +_080B18EA: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end GetRematchTrainerIdFromTable + + thumb_func_start GetLastBeatenRematchTrainerIdFromTable +GetLastBeatenRematchTrainerIdFromTable: @ 0x080B18F0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl FirstBattleTrainerIdToRematchTableId + adds r1, r0, #0 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _080B191E + movs r0, #0 + b _080B1940 +_080B190A: + subs r0, r5, #1 + lsls r0, r0, #1 + adds r0, r6, r0 + ldrh r0, [r0] + b _080B1940 +_080B1914: + subs r0, r5, #1 + lsls r0, r0, #1 + adds r0, r6, r0 + ldrh r0, [r0] + b _080B1940 +_080B191E: + lsls r0, r1, #4 + adds r6, r4, r0 + movs r5, #1 + adds r4, r6, #2 +_080B1926: + ldrh r0, [r4] + cmp r0, #0 + beq _080B190A + bl HasTrainerBeenFought + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B1914 + adds r4, #2 + adds r5, #1 + cmp r5, #4 + ble _080B1926 + ldrh r0, [r6, #8] +_080B1940: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetLastBeatenRematchTrainerIdFromTable + + thumb_func_start ClearTrainerWantRematchState +ClearTrainerWantRematchState: @ 0x080B1948 + push {lr} + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl TrainerIdToRematchTableId + adds r1, r0, #0 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _080B196A + ldr r0, _080B1970 + ldr r0, [r0] + ldr r2, _080B1974 + adds r0, r0, r2 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] +_080B196A: + pop {r0} + bx r0 + .align 2, 0 +_080B1970: .4byte 0x03005AEC +_080B1974: .4byte 0x000009CA + thumb_func_end ClearTrainerWantRematchState + + thumb_func_start GetTrainerMatchCallFlag +GetTrainerMatchCallFlag: @ 0x080B1978 + push {r4, lr} + adds r3, r0, #0 + movs r1, #0 + movs r4, #0xae + lsls r4, r4, #1 + ldr r2, _080B1990 +_080B1984: + ldrh r0, [r2] + cmp r0, r3 + bne _080B1994 + adds r0, r1, r4 + b _080B199E + .align 2, 0 +_080B1990: .4byte 0x0852AD40 +_080B1994: + adds r2, #0x10 + adds r1, #1 + cmp r1, #0x4d + ble _080B1984 + ldr r0, _080B19A4 +_080B199E: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080B19A4: .4byte 0x0000FFFF + thumb_func_end GetTrainerMatchCallFlag + + thumb_func_start RegisterTrainerInMatchCall +RegisterTrainerInMatchCall: @ 0x080B19A8 + push {lr} + ldr r0, _080B19D4 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B19CE + ldr r0, _080B19D8 + ldrh r0, [r0] + bl GetTrainerMatchCallFlag + adds r1, r0, #0 + ldr r0, _080B19DC + cmp r1, r0 + beq _080B19CE + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + bl FlagSet +_080B19CE: + pop {r0} + bx r0 + .align 2, 0 +_080B19D4: .4byte 0x0000012F +_080B19D8: .4byte 0x0203886A +_080B19DC: .4byte 0x0000FFFF + thumb_func_end RegisterTrainerInMatchCall + + thumb_func_start WasSecondRematchWon +WasSecondRematchWon: @ 0x080B19E0 + push {r4, lr} + adds r4, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl FirstBattleTrainerIdToRematchTableId + adds r1, r0, #0 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _080B1A0A + lsls r0, r1, #4 + adds r0, r0, r4 + ldrh r0, [r0, #2] + bl HasTrainerBeenFought + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B1A0A + movs r0, #1 + b _080B1A0C +_080B1A0A: + movs r0, #0 +_080B1A0C: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end WasSecondRematchWon + + thumb_func_start HasAtLeastFiveBadges +HasAtLeastFiveBadges: @ 0x080B1A14 + push {r4, r5, r6, lr} + movs r6, #0 + movs r5, #0 + ldr r4, _080B1A34 +_080B1A1C: + ldrh r0, [r4] + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080B1A38 + adds r6, #1 + cmp r6, #4 + ble _080B1A38 + movs r0, #1 + b _080B1A42 + .align 2, 0 +_080B1A34: .4byte 0x0852B220 +_080B1A38: + adds r4, #2 + adds r5, #1 + cmp r5, #7 + bls _080B1A1C + movs r0, #0 +_080B1A42: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end HasAtLeastFiveBadges + + thumb_func_start IncrementRematchStepCounter +IncrementRematchStepCounter: @ 0x080B1A48 + push {lr} + bl HasAtLeastFiveBadges + cmp r0, #0 + beq _080B1A70 + ldr r0, _080B1A64 + ldr r0, [r0] + ldr r2, _080B1A68 + adds r1, r0, r2 + ldrh r0, [r1] + cmp r0, #0xfe + bls _080B1A6C + movs r0, #0xff + b _080B1A6E + .align 2, 0 +_080B1A64: .4byte 0x03005AEC +_080B1A68: .4byte 0x000009C8 +_080B1A6C: + adds r0, #1 +_080B1A6E: + strh r0, [r1] +_080B1A70: + pop {r0} + bx r0 + thumb_func_end IncrementRematchStepCounter + + thumb_func_start IsRematchStepCounterMaxed +IsRematchStepCounterMaxed: @ 0x080B1A74 + push {lr} + bl HasAtLeastFiveBadges + cmp r0, #0 + beq _080B1A98 + ldr r0, _080B1A90 + ldr r0, [r0] + ldr r1, _080B1A94 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0xfe + bls _080B1A98 + movs r0, #1 + b _080B1A9A + .align 2, 0 +_080B1A90: .4byte 0x03005AEC +_080B1A94: .4byte 0x000009C8 +_080B1A98: + movs r0, #0 +_080B1A9A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsRematchStepCounterMaxed + + thumb_func_start TryUpdateRandomTrainerRematches +TryUpdateRandomTrainerRematches: @ 0x080B1AA0 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + bl IsRematchStepCounterMaxed + cmp r0, #0 + beq _080B1ACC + ldr r0, _080B1AD4 + adds r1, r5, #0 + adds r2, r4, #0 + bl UpdateRandomTrainerRematches + cmp r0, #1 + bne _080B1ACC + ldr r0, _080B1AD8 + ldr r0, [r0] + ldr r1, _080B1ADC + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0] +_080B1ACC: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B1AD4: .4byte 0x0852AD40 +_080B1AD8: .4byte 0x03005AEC +_080B1ADC: .4byte 0x000009C8 + thumb_func_end TryUpdateRandomTrainerRematches + + thumb_func_start DoesSomeoneWantRematchIn +DoesSomeoneWantRematchIn: @ 0x080B1AE0 + push {lr} + adds r3, r0, #0 + adds r2, r1, #0 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldr r0, _080B1AFC + adds r1, r3, #0 + bl DoesSomeoneWantRematchIn_ + pop {r1} + bx r1 + .align 2, 0 +_080B1AFC: .4byte 0x0852AD40 + thumb_func_end DoesSomeoneWantRematchIn + + thumb_func_start IsRematchTrainerIn +IsRematchTrainerIn: @ 0x080B1B00 + push {lr} + adds r3, r0, #0 + adds r2, r1, #0 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldr r0, _080B1B1C + adds r1, r3, #0 + bl IsRematchTrainerIn_ + pop {r1} + bx r1 + .align 2, 0 +_080B1B1C: .4byte 0x0852AD40 + thumb_func_end IsRematchTrainerIn + + thumb_func_start GetRematchTrainerId +GetRematchTrainerId: @ 0x080B1B20 + push {lr} + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, _080B1B38 + bl GetRematchTrainerIdFromTable + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 +_080B1B38: .4byte 0x0852AD40 + thumb_func_end GetRematchTrainerId + + thumb_func_start GetLastBeatenRematchTrainerId +GetLastBeatenRematchTrainerId: @ 0x080B1B3C + push {lr} + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, _080B1B54 + bl GetLastBeatenRematchTrainerIdFromTable + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 +_080B1B54: .4byte 0x0852AD40 + thumb_func_end GetLastBeatenRematchTrainerId + + thumb_func_start ShouldTryRematchBattle +ShouldTryRematchBattle: @ 0x080B1B58 + push {r4, r5, lr} + ldr r5, _080B1B7C + ldr r4, _080B1B80 + ldrh r1, [r4] + adds r0, r5, #0 + bl IsFirstTrainerIdReadyForRematch + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B1B84 + ldrh r1, [r4] + adds r0, r5, #0 + bl WasSecondRematchWon + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _080B1B86 + .align 2, 0 +_080B1B7C: .4byte 0x0852AD40 +_080B1B80: .4byte 0x0203886A +_080B1B84: + movs r0, #1 +_080B1B86: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end ShouldTryRematchBattle + + thumb_func_start IsTrainerReadyForRematch +IsTrainerReadyForRematch: @ 0x080B1B8C + push {lr} + ldr r0, _080B1BA0 + ldr r1, _080B1BA4 + ldrh r1, [r1] + bl IsTrainerReadyForRematch_ + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_080B1BA0: .4byte 0x0852AD40 +_080B1BA4: .4byte 0x0203886A + thumb_func_end IsTrainerReadyForRematch + + thumb_func_start HandleRematchVarsOnBattleEnd +HandleRematchVarsOnBattleEnd: @ 0x080B1BA8 + push {lr} + ldr r0, _080B1BBC + ldr r1, _080B1BC0 + ldrh r1, [r1] + bl ClearTrainerWantRematchState + bl SetBattledTrainersFlags + pop {r0} + bx r0 + .align 2, 0 +_080B1BBC: .4byte 0x0852AD40 +_080B1BC0: .4byte 0x0203886A + thumb_func_end HandleRematchVarsOnBattleEnd + + thumb_func_start ShouldTryGetTrainerScript +ShouldTryGetTrainerScript: @ 0x080B1BC4 + push {lr} + ldr r1, _080B1BE0 + ldrb r0, [r1] + cmp r0, #1 + bls _080B1BEC + movs r0, #0 + strb r0, [r1] + ldr r1, _080B1BE4 + movs r0, #1 + strb r0, [r1] + ldr r1, _080B1BE8 + movs r0, #1 + b _080B1BF6 + .align 2, 0 +_080B1BE0: .4byte 0x02038899 +_080B1BE4: .4byte 0x02038898 +_080B1BE8: .4byte 0x02037290 +_080B1BEC: + ldr r1, _080B1BFC + movs r0, #0 + strb r0, [r1] + ldr r1, _080B1C00 + movs r0, #0 +_080B1BF6: + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080B1BFC: .4byte 0x02038898 +_080B1C00: .4byte 0x02037290 + thumb_func_end ShouldTryGetTrainerScript + + thumb_func_start CountBattledRematchTeams +CountBattledRematchTeams: @ 0x080B1C04 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + ldr r7, _080B1C20 + lsrs r4, r0, #0xc + adds r6, r4, r7 + ldrh r0, [r6] + bl HasTrainerBeenFought + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080B1C24 + movs r0, #0 + b _080B1C50 + .align 2, 0 +_080B1C20: .4byte 0x0852AD40 +_080B1C24: + movs r5, #1 + adds r0, r4, #2 + adds r0, r0, r7 + ldrh r0, [r0] + cmp r0, #0 + beq _080B1C4C + adds r4, r6, #2 +_080B1C32: + ldrh r0, [r4] + bl HasTrainerBeenFought + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B1C4C + adds r4, #2 + adds r5, #1 + cmp r5, #4 + bgt _080B1C4C + ldrh r0, [r4] + cmp r0, #0 + bne _080B1C32 +_080B1C4C: + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 +_080B1C50: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CountBattledRematchTeams + diff --git a/asm/battle_tent.s b/asm/battle_tent.s new file mode 100644 index 0000000..e0d4af9 --- /dev/null +++ b/asm/battle_tent.s @@ -0,0 +1,1146 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_081B9654 +sub_081B9654: @ 0x081B9654 + push {lr} + ldr r1, _081B966C + ldr r0, _081B9670 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + thumb_func_end sub_081B9654 + + thumb_func_start sub_081B9668 +sub_081B9668: @ 0x081B9668 + bx r0 + .align 2, 0 +_081B966C: .4byte 0x085E196C +_081B9670: .4byte 0x02037280 + thumb_func_end sub_081B9668 + + thumb_func_start sub_081B9674 +sub_081B9674: @ 0x081B9674 + push {lr} + ldr r1, _081B96B4 + ldr r0, [r1] + ldr r2, _081B96B8 + adds r0, r0, r2 + movs r2, #0 + strb r2, [r0] + ldr r1, [r1] + ldr r3, _081B96BC + adds r0, r1, r3 + strh r2, [r0] + ldr r0, _081B96C0 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r0, _081B96C4 + ldr r0, [r0] + movs r1, #4 + ldrsb r1, [r0, r1] + movs r2, #5 + ldrsb r2, [r0, r2] + movs r3, #1 + rsbs r3, r3, #0 + movs r0, #0 + bl SetDynamicWarp + pop {r0} + bx r0 + .align 2, 0 +_081B96B4: .4byte 0x03005AF0 +_081B96B8: .4byte 0x00000CA8 +_081B96BC: .4byte 0x00000CB2 +_081B96C0: .4byte 0x00000CA9 +_081B96C4: .4byte 0x03005AEC + thumb_func_end sub_081B9674 + + thumb_func_start sub_081B96C8 +sub_081B96C8: @ 0x081B96C8 + ldr r1, _081B96D8 + ldr r0, _081B96DC + ldr r0, [r0] + ldr r2, _081B96E0 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r1] + bx lr + .align 2, 0 +_081B96D8: .4byte 0x02037290 +_081B96DC: .4byte 0x03005AF0 +_081B96E0: .4byte 0x00000E6A + thumb_func_end sub_081B96C8 + + thumb_func_start sub_081B96E4 +sub_081B96E4: @ 0x081B96E4 + ldr r0, _081B96F4 + ldr r0, [r0] + ldr r1, _081B96F8 + ldrh r1, [r1] + ldr r2, _081B96FC + adds r0, r0, r2 + strh r1, [r0] + bx lr + .align 2, 0 +_081B96F4: .4byte 0x03005AF0 +_081B96F8: .4byte 0x02037284 +_081B96FC: .4byte 0x00000E6A + thumb_func_end sub_081B96E4 + + thumb_func_start sub_081B9700 +sub_081B9700: @ 0x081B9700 + push {r4, lr} + ldr r4, _081B972C + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xff + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r0, #2 + adds r1, r1, r0 + lsrs r1, r1, #6 + strh r1, [r4] + ldrh r0, [r4] + movs r1, #0 + bl SetBattleFacilityTrainerGfxId + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B972C: .4byte 0x0203886A + thumb_func_end sub_081B9700 + + thumb_func_start sub_081B9730 +sub_081B9730: @ 0x081B9730 + push {lr} + ldr r3, _081B9750 + ldrh r1, [r3] + ldr r0, _081B9754 + cmp r1, r0 + bhi _081B974C + ldr r2, _081B9758 + movs r0, #0x34 + muls r1, r0, r1 + ldr r0, [r2] + adds r0, r0, r1 + adds r0, #0xc + bl FrontierSpeechToString +_081B974C: + pop {r0} + bx r0 + .align 2, 0 +_081B9750: .4byte 0x0203886A +_081B9754: .4byte 0x0000012B +_081B9758: .4byte 0x0203B954 + thumb_func_end sub_081B9730 + + thumb_func_start sub_081B975C +sub_081B975C: @ 0x081B975C + push {r4, lr} + ldr r4, _081B9790 + ldr r0, [r4] + ldr r1, _081B9794 + ldrh r1, [r1] + ldr r2, _081B9798 + adds r0, r0, r2 + strb r1, [r0] + movs r0, #0x80 + lsls r0, r0, #7 + movs r1, #0 + bl VarSet + ldr r1, [r4] + ldr r0, _081B979C + adds r1, r1, r0 + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + bl sub_081A482C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B9790: .4byte 0x03005AF0 +_081B9794: .4byte 0x02037282 +_081B9798: .4byte 0x00000CA8 +_081B979C: .4byte 0x00000CA9 + thumb_func_end sub_081B975C + + thumb_func_start sub_081B97A0 +sub_081B97A0: @ 0x081B97A0 + push {r4, r5, lr} + ldr r0, _081B97BC + ldr r4, [r0] + ldr r5, _081B97C0 + bl Random + ldrh r0, [r5] + ldr r1, _081B97C4 + adds r4, r4, r1 + strh r0, [r4] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B97BC: .4byte 0x03005AF0 +_081B97C0: .4byte 0x085E198C +_081B97C4: .4byte 0x00000E6A + thumb_func_end sub_081B97A0 + + thumb_func_start sub_081B97C8 +sub_081B97C8: @ 0x081B97C8 + push {r4, r5, lr} + ldr r4, _081B9800 + ldr r0, [r4] + ldr r1, _081B9804 + adds r0, r0, r1 + ldrh r0, [r0] + movs r1, #1 + bl AddBagItem + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #1 + bne _081B9810 + ldr r0, [r4] + ldr r1, _081B9804 + adds r0, r0, r1 + ldrh r0, [r0] + ldr r1, _081B9808 + bl CopyItemName + ldr r0, [r4] + ldr r1, _081B9804 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0] + ldr r0, _081B980C + strh r5, [r0] + b _081B9816 + .align 2, 0 +_081B9800: .4byte 0x03005AF0 +_081B9804: .4byte 0x00000E6A +_081B9808: .4byte 0x02021C40 +_081B980C: .4byte 0x02037290 +_081B9810: + ldr r1, _081B981C + movs r0, #0 + strh r0, [r1] +_081B9816: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B981C: .4byte 0x02037290 + thumb_func_end sub_081B97C8 + + thumb_func_start sub_081B9820 +sub_081B9820: @ 0x081B9820 + push {lr} + ldr r1, _081B9838 + ldr r0, _081B983C + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + thumb_func_end sub_081B9820 + + thumb_func_start sub_081B9834 +sub_081B9834: @ 0x081B9834 + bx r0 + .align 2, 0 +_081B9838: .4byte 0x085E1990 +_081B983C: .4byte 0x02037280 + thumb_func_end sub_081B9834 + + thumb_func_start sub_081B9840 +sub_081B9840: @ 0x081B9840 + push {lr} + ldr r1, _081B9880 + ldr r0, [r1] + ldr r2, _081B9884 + adds r0, r0, r2 + movs r2, #0 + strb r2, [r0] + ldr r1, [r1] + ldr r3, _081B9888 + adds r0, r1, r3 + strh r2, [r0] + ldr r0, _081B988C + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r0, _081B9890 + ldr r0, [r0] + movs r1, #4 + ldrsb r1, [r0, r1] + movs r2, #5 + ldrsb r2, [r0, r2] + movs r3, #1 + rsbs r3, r3, #0 + movs r0, #0 + bl SetDynamicWarp + pop {r0} + bx r0 + .align 2, 0 +_081B9880: .4byte 0x03005AF0 +_081B9884: .4byte 0x00000CA8 +_081B9888: .4byte 0x00000CB2 +_081B988C: .4byte 0x00000CA9 +_081B9890: .4byte 0x03005AEC + thumb_func_end sub_081B9840 + + thumb_func_start sub_081B9894 +sub_081B9894: @ 0x081B9894 + ldr r1, _081B98A4 + ldr r0, _081B98A8 + ldr r0, [r0] + ldr r2, _081B98AC + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r1] + bx lr + .align 2, 0 +_081B98A4: .4byte 0x02037290 +_081B98A8: .4byte 0x03005AF0 +_081B98AC: .4byte 0x00000E6C + thumb_func_end sub_081B9894 + + thumb_func_start sub_081B98B0 +sub_081B98B0: @ 0x081B98B0 + ldr r0, _081B98C0 + ldr r0, [r0] + ldr r1, _081B98C4 + ldrh r1, [r1] + ldr r2, _081B98C8 + adds r0, r0, r2 + strh r1, [r0] + bx lr + .align 2, 0 +_081B98C0: .4byte 0x03005AF0 +_081B98C4: .4byte 0x02037284 +_081B98C8: .4byte 0x00000E6C + thumb_func_end sub_081B98B0 + + thumb_func_start sub_081B98CC +sub_081B98CC: @ 0x081B98CC + push {r4, lr} + ldr r4, _081B9900 + ldr r0, [r4] + ldr r1, _081B9904 + ldrh r1, [r1] + ldr r2, _081B9908 + adds r0, r0, r2 + strb r1, [r0] + movs r0, #0x80 + lsls r0, r0, #7 + movs r1, #0 + bl VarSet + ldr r1, [r4] + ldr r0, _081B990C + adds r1, r1, r0 + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + bl sub_081A482C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B9900: .4byte 0x03005AF0 +_081B9904: .4byte 0x02037282 +_081B9908: .4byte 0x00000CA8 +_081B990C: .4byte 0x00000CA9 + thumb_func_end sub_081B98CC + + thumb_func_start sub_081B9910 +sub_081B9910: @ 0x081B9910 + push {r4, r5, lr} + ldr r0, _081B992C + ldr r4, [r0] + ldr r5, _081B9930 + bl Random + ldrh r0, [r5] + ldr r1, _081B9934 + adds r4, r4, r1 + strh r0, [r4] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B992C: .4byte 0x03005AF0 +_081B9930: .4byte 0x085E19AC +_081B9934: .4byte 0x00000E6C + thumb_func_end sub_081B9910 + + thumb_func_start sub_081B9938 +sub_081B9938: @ 0x081B9938 + push {r4, r5, lr} + ldr r4, _081B9970 + ldr r0, [r4] + ldr r1, _081B9974 + adds r0, r0, r1 + ldrh r0, [r0] + movs r1, #1 + bl AddBagItem + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #1 + bne _081B9980 + ldr r0, [r4] + ldr r1, _081B9974 + adds r0, r0, r1 + ldrh r0, [r0] + ldr r1, _081B9978 + bl CopyItemName + ldr r0, [r4] + ldr r1, _081B9974 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0] + ldr r0, _081B997C + strh r5, [r0] + b _081B9986 + .align 2, 0 +_081B9970: .4byte 0x03005AF0 +_081B9974: .4byte 0x00000E6C +_081B9978: .4byte 0x02021C40 +_081B997C: .4byte 0x02037290 +_081B9980: + ldr r1, _081B998C + movs r0, #0 + strh r0, [r1] +_081B9986: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B998C: .4byte 0x02037290 + thumb_func_end sub_081B9938 + + thumb_func_start sub_081B9990 +sub_081B9990: @ 0x081B9990 + push {lr} + ldr r0, _081B99A0 + ldr r1, _081B99A4 + ldrh r1, [r1] + bl GetFrontierTrainerName + pop {r0} + bx r0 + .align 2, 0 +_081B99A0: .4byte 0x02021C40 +_081B99A4: .4byte 0x0203886A + thumb_func_end sub_081B9990 + + thumb_func_start sub_081B99A8 +sub_081B99A8: @ 0x081B99A8 + push {lr} + ldr r1, _081B99C0 + ldr r0, _081B99C4 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + thumb_func_end sub_081B99A8 + + thumb_func_start sub_081B99BC +sub_081B99BC: @ 0x081B99BC + bx r0 + .align 2, 0 +_081B99C0: .4byte 0x085E19B0 +_081B99C4: .4byte 0x02037280 + thumb_func_end sub_081B99BC + + thumb_func_start sub_081B99C8 +sub_081B99C8: @ 0x081B99C8 + push {lr} + ldr r1, _081B9A08 + ldr r0, [r1] + ldr r2, _081B9A0C + adds r0, r0, r2 + movs r2, #0 + strb r2, [r0] + ldr r1, [r1] + ldr r3, _081B9A10 + adds r0, r1, r3 + strh r2, [r0] + ldr r0, _081B9A14 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r0, _081B9A18 + ldr r0, [r0] + movs r1, #4 + ldrsb r1, [r0, r1] + movs r2, #5 + ldrsb r2, [r0, r2] + movs r3, #1 + rsbs r3, r3, #0 + movs r0, #0 + bl SetDynamicWarp + pop {r0} + bx r0 + .align 2, 0 +_081B9A08: .4byte 0x03005AF0 +_081B9A0C: .4byte 0x00000CA8 +_081B9A10: .4byte 0x00000CB2 +_081B9A14: .4byte 0x00000CA9 +_081B9A18: .4byte 0x03005AEC + thumb_func_end sub_081B99C8 + + thumb_func_start sub_081B9A1C +sub_081B9A1C: @ 0x081B9A1C + ldr r1, _081B9A2C + ldr r0, _081B9A30 + ldr r0, [r0] + ldr r2, _081B9A34 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r1] + bx lr + .align 2, 0 +_081B9A2C: .4byte 0x02037290 +_081B9A30: .4byte 0x03005AF0 +_081B9A34: .4byte 0x00000E6E + thumb_func_end sub_081B9A1C + + thumb_func_start sub_081B9A38 +sub_081B9A38: @ 0x081B9A38 + ldr r0, _081B9A48 + ldr r0, [r0] + ldr r1, _081B9A4C + ldrh r1, [r1] + ldr r2, _081B9A50 + adds r0, r0, r2 + strh r1, [r0] + bx lr + .align 2, 0 +_081B9A48: .4byte 0x03005AF0 +_081B9A4C: .4byte 0x02037284 +_081B9A50: .4byte 0x00000E6E + thumb_func_end sub_081B9A38 + + thumb_func_start sub_081B9A54 +sub_081B9A54: @ 0x081B9A54 + push {r4, lr} + ldr r4, _081B9A88 + ldr r0, [r4] + ldr r1, _081B9A8C + ldrh r1, [r1] + ldr r2, _081B9A90 + adds r0, r0, r2 + strb r1, [r0] + movs r0, #0x80 + lsls r0, r0, #7 + movs r1, #0 + bl VarSet + ldr r1, [r4] + ldr r0, _081B9A94 + adds r1, r1, r0 + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + bl sub_081A482C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B9A88: .4byte 0x03005AF0 +_081B9A8C: .4byte 0x02037282 +_081B9A90: .4byte 0x00000CA8 +_081B9A94: .4byte 0x00000CA9 + thumb_func_end sub_081B9A54 + + thumb_func_start sub_081B9A98 +sub_081B9A98: @ 0x081B9A98 + push {r4, r5, lr} + ldr r0, _081B9AB4 + ldr r4, [r0] + ldr r5, _081B9AB8 + bl Random + ldrh r0, [r5] + ldr r1, _081B9ABC + adds r4, r4, r1 + strh r0, [r4] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B9AB4: .4byte 0x03005AF0 +_081B9AB8: .4byte 0x085E19D8 +_081B9ABC: .4byte 0x00000E6E + thumb_func_end sub_081B9A98 + + thumb_func_start sub_081B9AC0 +sub_081B9AC0: @ 0x081B9AC0 + push {r4, r5, lr} + ldr r4, _081B9AF8 + ldr r0, [r4] + ldr r1, _081B9AFC + adds r0, r0, r1 + ldrh r0, [r0] + movs r1, #1 + bl AddBagItem + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #1 + bne _081B9B08 + ldr r0, [r4] + ldr r1, _081B9AFC + adds r0, r0, r1 + ldrh r0, [r0] + ldr r1, _081B9B00 + bl CopyItemName + ldr r0, [r4] + ldr r1, _081B9AFC + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0] + ldr r0, _081B9B04 + strh r5, [r0] + b _081B9B0E + .align 2, 0 +_081B9AF8: .4byte 0x03005AF0 +_081B9AFC: .4byte 0x00000E6E +_081B9B00: .4byte 0x02021C40 +_081B9B04: .4byte 0x02037290 +_081B9B08: + ldr r1, _081B9B14 + movs r0, #0 + strh r0, [r1] +_081B9B0E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B9B14: .4byte 0x02037290 + thumb_func_end sub_081B9AC0 + + thumb_func_start sub_081B9B18 +sub_081B9B18: @ 0x081B9B18 + push {lr} + bl ZeroPlayerPartyMons + bl DoBattleFactorySelectScreen + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081B9B18 + + thumb_func_start sub_081B9B28 +sub_081B9B28: @ 0x081B9B28 + push {lr} + bl DoBattleFactorySwapScreen + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081B9B28 + + thumb_func_start InSlateportBattleTent +InSlateportBattleTent: @ 0x081B9B34 + push {lr} + movs r2, #0 + ldr r1, _081B9B58 + ldrb r0, [r1, #0x14] + cmp r0, #8 + bne _081B9B52 + ldr r3, _081B9B5C + adds r0, r3, #0 + ldrh r1, [r1, #0x12] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bhi _081B9B52 + movs r2, #1 +_081B9B52: + adds r0, r2, #0 + pop {r1} + bx r1 + .align 2, 0 +_081B9B58: .4byte 0x02036FB8 +_081B9B5C: .4byte 0xFFFFFE7F + thumb_func_end InSlateportBattleTent + + thumb_func_start sub_081B9B60 +sub_081B9B60: @ 0x081B9B60 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x3c + ldr r1, _081B9C58 + ldr r0, _081B9C5C + str r0, [r1] + add r0, sp, #0xc + mov sb, r0 + mov r1, sp + adds r1, #0x18 + str r1, [sp, #0x2c] + ldr r5, _081B9C60 + ldr r4, _081B9C64 + movs r2, #0 + adds r3, r1, #0 + mov r1, sb + mov r0, sp + movs r6, #5 + mov r8, r6 +_081B9B8C: + strh r2, [r0] + strh r2, [r1] + strh r2, [r3] + adds r3, #2 + adds r1, #2 + adds r0, #2 + movs r7, #1 + rsbs r7, r7, #0 + add r8, r7 + mov r6, r8 + cmp r6, #0 + bge _081B9B8C + str r4, [r5] + movs r7, #0 + mov sl, r7 + movs r0, #0 + mov r8, r0 + ldr r1, [sp, #0x2c] + str r1, [sp, #0x30] + mov r2, sp + str r2, [sp, #0x34] + lsls r6, r0, #1 + str r6, [sp, #0x24] + add r6, sb + str r6, [sp, #0x28] +_081B9BBE: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x46 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + movs r2, #0 + mov r7, r8 + adds r6, r2, r7 + cmp r2, r6 + bge _081B9C1C + ldr r1, [sp, #0x28] + ldrh r0, [r1] + cmp r0, r5 + beq _081B9C1C + ldr r0, _081B9C60 + ldr r1, [r0] + lsls r0, r5, #4 + adds r4, r0, r1 + ldrh r7, [r4] + mov ip, r7 + lsls r3, r2, #1 + ldr r1, [sp, #0x24] + add r1, sp + str r6, [sp, #0x38] +_081B9BF6: + ldrh r0, [r1] + cmp r0, ip + bne _081B9C06 + mov r0, sl + cmp r0, #0 + bne _081B9C1C + ldrh r7, [r4] + mov sl, r7 +_081B9C06: + adds r3, #2 + adds r1, #2 + adds r2, #1 + ldr r0, [sp, #0x38] + cmp r2, r0 + bge _081B9C1C + mov r7, sb + adds r0, r7, r3 + ldrh r0, [r0] + cmp r0, r5 + bne _081B9BF6 +_081B9C1C: + cmp r2, r6 + bne _081B9CBC + movs r2, #0 + cmp r2, r6 + bge _081B9C74 + ldr r0, _081B9C68 + mov ip, r0 + ldr r7, _081B9C60 + ldr r1, [sp, #0x24] + ldr r0, [sp, #0x2c] + adds r4, r1, r0 +_081B9C32: + ldrh r3, [r4] + cmp r3, #0 + beq _081B9C6C + ldr r1, [r7] + lsls r0, r5, #4 + adds r1, r0, r1 + ldrb r0, [r1, #0xa] + lsls r0, r0, #1 + add r0, ip + ldrh r0, [r0] + cmp r3, r0 + bne _081B9C6C + ldrh r0, [r1] + cmp r0, sl + bne _081B9C74 + movs r1, #0 + mov sl, r1 + b _081B9C74 + .align 2, 0 +_081B9C58: .4byte 0x0203B954 +_081B9C5C: .4byte 0x085BC958 +_081B9C60: .4byte 0x0203B958 +_081B9C64: .4byte 0x085BCF70 +_081B9C68: .4byte 0x085ADBF4 +_081B9C6C: + adds r4, #2 + adds r2, #1 + cmp r2, r6 + blt _081B9C32 +_081B9C74: + cmp r2, r6 + bne _081B9CBC + ldr r0, _081B9CD4 + ldr r1, [r0] + mov r2, r8 + lsls r3, r2, #1 + adds r0, r3, r2 + lsls r0, r0, #2 + adds r1, r1, r0 + movs r6, #0xe7 + lsls r6, r6, #4 + adds r1, r1, r6 + strh r5, [r1] + ldr r0, _081B9CD8 + ldr r0, [r0] + lsls r1, r5, #4 + adds r1, r1, r0 + ldrh r0, [r1] + ldr r7, [sp, #0x34] + strh r0, [r7] + ldr r2, _081B9CDC + ldrb r0, [r1, #0xa] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + ldr r1, [sp, #0x30] + strh r0, [r1] + add r3, sb + strh r5, [r3] + adds r1, #2 + str r1, [sp, #0x30] + adds r2, r7, #0 + adds r2, #2 + str r2, [sp, #0x34] + movs r6, #1 + add r8, r6 +_081B9CBC: + mov r7, r8 + cmp r7, #6 + beq _081B9CC4 + b _081B9BBE +_081B9CC4: + add sp, #0x3c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B9CD4: .4byte 0x03005AF0 +_081B9CD8: .4byte 0x0203B958 +_081B9CDC: .4byte 0x085ADBF4 + thumb_func_end sub_081B9B60 + + thumb_func_start sub_081B9CE0 +sub_081B9CE0: @ 0x081B9CE0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + movs r0, #0 + mov sl, r0 + ldr r1, _081B9D8C + ldr r0, _081B9D90 + str r0, [r1] + ldr r1, _081B9D94 + ldr r0, _081B9D98 + str r0, [r1] + ldr r7, _081B9D9C + ldr r1, _081B9DA0 + mov r8, r1 +_081B9D02: + mov r2, sl + lsls r6, r2, #1 +_081B9D06: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x1e + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + movs r5, #0 + ldr r1, [r7] + ldr r4, _081B9DA4 + adds r0, r1, r4 + ldrh r0, [r0] + cmp r5, r0 + bge _081B9D4A + ldr r2, _081B9DA8 + adds r0, r1, r2 + ldrh r0, [r0] + cmp r0, r3 + beq _081B9D4A + ldr r0, _081B9D9C + ldr r1, [r0] + adds r0, r1, r4 + ldrh r2, [r0] + adds r4, #2 + adds r1, r1, r4 +_081B9D3C: + adds r1, #2 + adds r5, #1 + cmp r5, r2 + bge _081B9D4A + ldrh r0, [r1] + cmp r0, r3 + bne _081B9D3C +_081B9D4A: + ldr r0, [r7] + ldr r1, _081B9DA4 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r5, r0 + bne _081B9D06 + ldr r2, _081B9DAC + strh r3, [r2] + ldrh r3, [r2] + ldr r4, _081B9D8C + ldr r1, [r4] + movs r0, #0x34 + muls r0, r3, r0 + adds r0, r0, r1 + ldr r0, [r0, #0x30] + adds r1, r6, r0 + ldrh r0, [r1] + cmp r0, r8 + beq _081B9D7E + ldr r3, _081B9DA0 +_081B9D72: + adds r1, #2 + movs r6, #1 + add sl, r6 + ldrh r0, [r1] + cmp r0, r3 + bne _081B9D72 +_081B9D7E: + mov r0, sl + cmp r0, #8 + bgt _081B9DB0 + movs r1, #0 + mov sl, r1 + b _081B9D02 + .align 2, 0 +_081B9D8C: .4byte 0x0203B954 +_081B9D90: .4byte 0x085BC958 +_081B9D94: .4byte 0x0203B958 +_081B9D98: .4byte 0x085BCF70 +_081B9D9C: .4byte 0x03005AF0 +_081B9DA0: .4byte 0x0000FFFF +_081B9DA4: .4byte 0x00000CB2 +_081B9DA8: .4byte 0x00000CB4 +_081B9DAC: .4byte 0x0203886A +_081B9DB0: + ldr r0, _081B9ED4 + ldr r1, [r0] + ldr r6, _081B9ED8 + adds r3, r1, r6 + ldrh r0, [r3] + cmp r0, #1 + bhi _081B9DCA + lsls r0, r0, #1 + ldr r3, _081B9EDC + adds r1, r1, r3 + adds r1, r1, r0 + ldrh r0, [r2] + strh r0, [r1] +_081B9DCA: + ldrh r1, [r2] + ldr r2, [r4] + movs r0, #0x34 + muls r0, r1, r0 + adds r0, r0, r2 + ldr r0, [r0, #0x30] + mov sb, r0 + movs r5, #0 + ldr r7, _081B9EE0 + mov r8, sp +_081B9DDE: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r1, sl + bl __modsi3 + lsls r0, r0, #1 + add r0, sb + ldrh r0, [r0] + strh r0, [r7] + movs r2, #0 + ldrh r0, [r7] + ldr r4, _081B9EE4 + ldr r3, [r4] + lsls r0, r0, #4 + adds r0, r0, r3 + ldr r1, _081B9ED4 + ldrh r6, [r0] + ldr r1, [r1] +_081B9E06: + movs r4, #0xe7 + lsls r4, r4, #4 + adds r0, r1, r4 + ldrh r0, [r0] + lsls r0, r0, #4 + adds r0, r0, r3 + ldrh r0, [r0] + cmp r6, r0 + beq _081B9E20 + adds r1, #0xc + adds r2, #1 + cmp r2, #5 + ble _081B9E06 +_081B9E20: + cmp r2, #6 + bne _081B9EC0 + movs r4, #0 + cmp r4, r5 + bge _081B9E50 + mov r0, sp + ldrh r0, [r0] + cmp r0, r6 + beq _081B9E50 + ldr r6, _081B9EE0 + ldr r3, _081B9EE4 + mov r2, sp +_081B9E38: + adds r2, #2 + adds r4, #1 + cmp r4, r5 + bge _081B9E50 + ldrh r0, [r6] + ldr r1, [r3] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrh r1, [r2] + ldrh r0, [r0] + cmp r1, r0 + bne _081B9E38 +_081B9E50: + cmp r4, r5 + bne _081B9EC0 + movs r4, #0 + cmp r4, r5 + bge _081B9E86 + ldr r6, _081B9EE8 + mov ip, r6 + add r3, sp, #8 +_081B9E60: + ldrh r2, [r3] + cmp r2, #0 + beq _081B9E7E + ldr r1, _081B9EE0 + ldrh r0, [r1] + ldr r6, _081B9EE4 + ldr r1, [r6] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrb r0, [r0, #0xa] + lsls r0, r0, #1 + add r0, ip + ldrh r0, [r0] + cmp r2, r0 + beq _081B9E86 +_081B9E7E: + adds r3, #2 + adds r4, #1 + cmp r4, r5 + blt _081B9E60 +_081B9E86: + cmp r4, r5 + bne _081B9EC0 + lsls r2, r5, #1 + ldrh r0, [r7] + ldr r1, _081B9EE4 + ldr r4, [r1] + lsls r0, r0, #4 + adds r0, r0, r4 + ldrh r0, [r0] + mov r3, r8 + strh r0, [r3] + add r1, sp, #8 + adds r1, r1, r2 + ldr r3, _081B9EE8 + ldrh r0, [r7] + lsls r0, r0, #4 + adds r0, r0, r4 + ldrb r0, [r0, #0xa] + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + strh r0, [r1] + ldr r0, _081B9EEC + adds r2, r2, r0 + ldrh r0, [r7] + strh r0, [r2] + movs r4, #2 + add r8, r4 + adds r5, #1 +_081B9EC0: + cmp r5, #3 + bne _081B9DDE + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B9ED4: .4byte 0x03005AF0 +_081B9ED8: .4byte 0x00000CB2 +_081B9EDC: .4byte 0x00000CB4 +_081B9EE0: .4byte 0x03001294 +_081B9EE4: .4byte 0x0203B958 +_081B9EE8: .4byte 0x085ADBF4 +_081B9EEC: .4byte 0x03005FD8 + thumb_func_end sub_081B9CE0 + diff --git a/asm/battle_tower.s b/asm/battle_tower.s new file mode 100644 index 0000000..583f1e1 --- /dev/null +++ b/asm/battle_tower.s @@ -0,0 +1,8307 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_08161E88 +sub_08161E88: @ 0x08161E88 + push {lr} + ldr r1, _08161EA0 + ldr r0, _08161EA4 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + thumb_func_end sub_08161E88 + + thumb_func_start nullsub_61 +nullsub_61: @ 0x08161E9C + bx r0 + .align 2, 0 +_08161EA0: .4byte 0x085BE8B0 +_08161EA4: .4byte 0x02037280 + thumb_func_end nullsub_61 + + thumb_func_start sub_08161EA8 +sub_08161EA8: @ 0x08161EA8 + push {r4, r5, r6, r7, lr} + ldr r4, _08161F48 + ldr r0, [r4] + ldr r1, _08161F4C + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r5, r0, #0x1e + ldr r0, _08161F50 + bl VarGet + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r0, [r4] + ldr r2, _08161F54 + adds r0, r0, r2 + movs r7, #0 + movs r1, #1 + strb r1, [r0] + ldr r1, [r4] + adds r2, #0xa + adds r0, r1, r2 + strh r7, [r0] + ldr r0, _08161F4C + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r4] + ldr r2, _08161F4C + adds r1, r1, r2 + ldrb r2, [r1] + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + bl sub_081A3864 + ldr r4, [r4] + ldr r0, _08161F58 + adds r3, r4, r0 + ldr r2, _08161F5C + lsls r1, r5, #2 + lsls r0, r6, #3 + adds r1, r1, r0 + adds r1, r1, r2 + ldr r0, [r3] + ldr r1, [r1] + ands r0, r1 + cmp r0, #0 + bne _08161F22 + lsls r0, r5, #1 + lsls r1, r6, #2 + adds r0, r0, r1 + movs r2, #0xce + lsls r2, r2, #4 + adds r1, r4, r2 + adds r1, r1, r0 + strh r7, [r1] +_08161F22: + bl ValidateBattleTowerRecordChecksums + ldr r0, _08161F60 + ldr r0, [r0] + movs r1, #4 + ldrsb r1, [r0, r1] + movs r2, #5 + ldrsb r2, [r0, r2] + movs r3, #1 + rsbs r3, r3, #0 + movs r0, #0 + bl SetDynamicWarp + ldr r0, _08161F64 + strh r7, [r0] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08161F48: .4byte 0x03005AF0 +_08161F4C: .4byte 0x00000CA9 +_08161F50: .4byte 0x000040CE +_08161F54: .4byte 0x00000CA8 +_08161F58: .4byte 0x00000CDC +_08161F5C: .4byte 0x085BE8F0 +_08161F60: .4byte 0x03005AEC +_08161F64: .4byte 0x0203886A + thumb_func_end sub_08161EA8 + + thumb_func_start sub_08161F68 +sub_08161F68: @ 0x08161F68 + push {r4, r5, r6, lr} + ldr r5, _08161F98 + ldr r0, [r5] + ldr r4, _08161F9C + adds r0, r0, r4 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r6, r0, #0x1e + ldr r0, _08161FA0 + bl VarGet + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r0, _08161FA4 + ldrh r0, [r0] + cmp r0, #1 + beq _08161FA8 + cmp r0, #1 + ble _08161FFC + cmp r0, #2 + beq _08161FBC + cmp r0, #3 + beq _08161FEC + b _08161FFC + .align 2, 0 +_08161F98: .4byte 0x03005AF0 +_08161F9C: .4byte 0x00000CA9 +_08161FA0: .4byte 0x000040CE +_08161FA4: .4byte 0x02037282 +_08161FA8: + adds r0, r6, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl GetCurrentBattleTowerWinStreak + ldr r1, _08161FB8 + strh r0, [r1] + b _08161FFC + .align 2, 0 +_08161FB8: .4byte 0x02037290 +_08161FBC: + ldr r4, _08161FE0 + ldr r2, [r5] + ldr r0, _08161FE4 + adds r2, r2, r0 + ldr r3, _08161FE8 + lsls r0, r6, #2 + lsls r1, r1, #3 + adds r0, r0, r1 + adds r0, r0, r3 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + strh r0, [r4] + b _08161FFC + .align 2, 0 +_08161FE0: .4byte 0x02037290 +_08161FE4: .4byte 0x00000CDC +_08161FE8: .4byte 0x085BE8F0 +_08161FEC: + ldr r1, [r5] + adds r0, r1, r4 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + ldr r2, _08162004 + adds r1, r1, r2 + strb r0, [r1] +_08161FFC: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08162004: .4byte 0x00000D07 + thumb_func_end sub_08161F68 + + thumb_func_start sub_08162008 +sub_08162008: @ 0x08162008 + push {r4, r5, r6, r7, lr} + ldr r6, _08162038 + ldr r0, [r6] + ldr r7, _0816203C + adds r0, r0, r7 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r5, r0, #0x1e + ldr r0, _08162040 + bl VarGet + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, _08162044 + ldrh r0, [r0] + cmp r0, #1 + beq _08162048 + cmp r0, #1 + ble _081620C8 + cmp r0, #2 + beq _08162064 + cmp r0, #3 + beq _081620B8 + b _081620C8 + .align 2, 0 +_08162038: .4byte 0x03005AF0 +_0816203C: .4byte 0x00000CA9 +_08162040: .4byte 0x000040CE +_08162044: .4byte 0x02037282 +_08162048: + ldr r2, [r6] + lsls r0, r5, #1 + lsls r1, r4, #2 + adds r0, r0, r1 + movs r1, #0xce + lsls r1, r1, #4 + adds r2, r2, r1 + adds r2, r2, r0 + ldr r0, _08162060 + ldrh r0, [r0] + strh r0, [r2] + b _081620C8 + .align 2, 0 +_08162060: .4byte 0x02037284 +_08162064: + ldr r0, _08162088 + ldrh r0, [r0] + cmp r0, #0 + beq _08162094 + ldr r2, [r6] + ldr r0, _0816208C + adds r2, r2, r0 + ldr r3, _08162090 + lsls r1, r5, #2 + lsls r0, r4, #3 + adds r1, r1, r0 + adds r1, r1, r3 + ldr r0, [r2] + ldr r1, [r1] + orrs r0, r1 + str r0, [r2] + b _081620C8 + .align 2, 0 +_08162088: .4byte 0x02037284 +_0816208C: .4byte 0x00000CDC +_08162090: .4byte 0x085BE8F0 +_08162094: + ldr r2, [r6] + ldr r1, _081620B0 + adds r2, r2, r1 + ldr r3, _081620B4 + lsls r1, r5, #2 + lsls r0, r4, #3 + adds r1, r1, r0 + adds r1, r1, r3 + ldr r0, [r2] + ldr r1, [r1] + ands r0, r1 + str r0, [r2] + b _081620C8 + .align 2, 0 +_081620B0: .4byte 0x00000CDC +_081620B4: .4byte 0x085BE910 +_081620B8: + ldr r1, [r6] + adds r0, r1, r7 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + ldr r2, _081620D0 + adds r1, r1, r2 + strb r0, [r1] +_081620C8: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081620D0: .4byte 0x00000D07 + thumb_func_end sub_08162008 + + thumb_func_start sub_081620D4 +sub_081620D4: @ 0x081620D4 + push {r4, r5, lr} + ldr r0, _08162124 + ldrh r1, [r0] + movs r0, #0xfa + lsls r0, r0, #1 + cmp r1, r0 + bne _081620EE + ldr r0, _08162128 + ldr r0, [r0] + ldr r1, _0816212C + adds r0, r0, r1 + bl ClearEReaderTrainer +_081620EE: + ldr r5, _08162128 + ldr r0, [r5] + ldr r1, _08162130 + adds r2, r0, r1 + ldrh r1, [r2] + ldr r0, _08162134 + cmp r1, r0 + bhi _08162102 + adds r0, r1, #1 + strh r0, [r2] +_08162102: + ldr r1, [r5] + ldr r4, _08162138 + adds r1, r1, r4 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + bl SaveCurrentWinStreak + ldr r1, _0816213C + ldr r0, [r5] + adds r0, r0, r4 + ldrh r0, [r0] + strh r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08162124: .4byte 0x0203886A +_08162128: .4byte 0x03005AF0 +_0816212C: .4byte 0x00000BEC +_08162130: .4byte 0x00000D04 +_08162134: .4byte 0x0000270E +_08162138: .4byte 0x00000CB2 +_0816213C: .4byte 0x02037290 + thumb_func_end sub_081620D4 + + thumb_func_start ChooseSpecialBattleTowerTrainer +ChooseSpecialBattleTowerTrainer: @ 0x08162140 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x3c + movs r0, #0 + str r0, [sp, #0x24] + ldr r4, _081622B4 + ldr r0, [r4] + ldr r1, _081622B8 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + mov sl, r0 + ldr r0, _081622BC + bl VarGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x2c] + ldr r0, _081622C0 + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0816217A + b _081622B0 +_0816217A: + mov r0, sl + ldr r1, [sp, #0x2c] + bl GetCurrentBattleTowerWinStreak + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x28] + movs r7, #0 + mov r2, sp + str r2, [sp, #0x34] +_0816218E: + movs r3, #0xec + adds r0, r7, #0 + muls r0, r3, r0 + movs r4, #0xe7 + lsls r4, r4, #3 + adds r0, r0, r4 + ldr r5, _081622B4 + ldr r1, [r5] + movs r2, #0 + mov r8, r2 + mov sb, r2 + movs r5, #0 + adds r3, r7, #1 + str r3, [sp, #0x30] + adds r1, r1, r0 +_081621AC: + ldm r1!, {r0} + mov r4, r8 + orrs r4, r0 + mov r8, r4 + add sb, r0 + adds r5, #1 + cmp r5, #0x39 + bls _081621AC + movs r6, #0 + movs r5, #0 + movs r0, #0xec + adds r2, r7, #0 + muls r2, r0, r2 +_081621C6: + ldr r3, _081622B4 + ldr r1, [r3] + movs r0, #0x2c + muls r0, r5, r0 + adds r0, r0, r2 + adds r1, r1, r0 + ldr r4, _081622C4 + adds r0, r1, r4 + ldrh r0, [r0] + cmp r0, #0 + beq _081621F8 + movs r0, #0xef + lsls r0, r0, #3 + adds r4, r1, r0 + mov r0, sl + str r2, [sp, #0x38] + bl GetFrontierEnemyMonLevel + ldrb r1, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, [sp, #0x38] + cmp r1, r0 + bhi _081621F8 + adds r6, #1 +_081621F8: + adds r5, #1 + cmp r5, #3 + ble _081621C6 + ldr r0, _081622C8 + ldr r1, [sp, #0x2c] + adds r0, r1, r0 + ldrb r0, [r0] + cmp r6, r0 + blt _08162252 + ldr r3, _081622B4 + ldr r2, [r3] + movs r4, #0xec + adds r3, r7, #0 + muls r3, r4, r3 + adds r1, r2, r3 + ldr r5, _081622CC + adds r0, r1, r5 + ldrh r0, [r0] + ldr r4, [sp, #0x28] + cmp r0, r4 + bne _08162252 + subs r5, #2 + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, sl + bne _08162252 + mov r0, r8 + cmp r0, #0 + beq _08162252 + movs r1, #0x82 + lsls r1, r1, #4 + adds r0, r2, r1 + adds r0, r0, r3 + ldr r0, [r0] + cmp r0, sb + bne _08162252 + movs r2, #0x96 + lsls r2, r2, #1 + adds r0, r7, r2 + ldr r3, [sp, #0x34] + stm r3!, {r0} + str r3, [sp, #0x34] + ldr r4, [sp, #0x24] + adds r4, #1 + str r4, [sp, #0x24] +_08162252: + ldr r7, [sp, #0x30] + cmp r7, #4 + ble _0816218E + ldr r5, [sp, #0x2c] + cmp r5, #0 + bne _081622AA + bl ValidateApprenticesChecksums + movs r7, #0 + ldr r0, _081622B4 + ldr r0, [r0] + ldr r4, _081622D0 + adds r2, r0, #0 + adds r2, #0xdc + ldr r1, [sp, #0x24] + lsls r0, r1, #2 + mov r5, sp + adds r3, r0, r5 +_08162276: + ldrb r0, [r2] + lsls r1, r0, #0x19 + lsrs r0, r1, #0x1e + cmp r0, #0 + beq _081622A2 + ldrb r0, [r2, #1] + adds r0, r0, r4 + ldrb r0, [r0] + ldr r5, [sp, #0x28] + cmp r0, r5 + bne _081622A2 + lsrs r0, r1, #0x1e + subs r0, #1 + cmp r0, sl + bne _081622A2 + movs r1, #0xc8 + lsls r1, r1, #1 + adds r0, r7, r1 + stm r3!, {r0} + ldr r5, [sp, #0x24] + adds r5, #1 + str r5, [sp, #0x24] +_081622A2: + adds r2, #0x44 + adds r7, #1 + cmp r7, #3 + ble _08162276 +_081622AA: + ldr r0, [sp, #0x24] + cmp r0, #0 + bne _081622D4 +_081622B0: + movs r0, #0 + b _081622EE + .align 2, 0 +_081622B4: .4byte 0x03005AF0 +_081622B8: .4byte 0x00000CA9 +_081622BC: .4byte 0x000040CE +_081622C0: .4byte 0x000040CF +_081622C4: .4byte 0x0000076C +_081622C8: .4byte 0x085BE93A +_081622CC: .4byte 0x0000073A +_081622D0: .4byte 0x085BE930 +_081622D4: + ldr r4, _08162300 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, [sp, #0x24] + bl __modsi3 + lsls r0, r0, #2 + add r0, sp + ldr r0, [r0] + strh r0, [r4] + movs r0, #1 +_081622EE: + add sp, #0x3c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08162300: .4byte 0x0203886A + thumb_func_end ChooseSpecialBattleTowerTrainer + + thumb_func_start ChooseNextBattleTowerTrainer +ChooseNextBattleTowerTrainer: @ 0x08162304 + push {r4, r5, r6, r7, lr} + ldr r6, _08162320 + ldr r0, [r6] + ldr r1, _08162324 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #2 + bne _08162328 + bl sub_08165C24 + b _08162444 + .align 2, 0 +_08162320: .4byte 0x03005AF0 +_08162324: .4byte 0x00000CA9 +_08162328: + ldr r0, _08162388 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + bl GetCurrentFacilityWinStreak + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #7 + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + bl SetFacilityPtrsGetLevel + subs r4, #2 + cmp r4, #1 + bhi _0816239C + ldr r1, [r6] + ldr r2, _0816238C + adds r0, r1, r2 + ldrh r3, [r0] + ldr r2, _08162390 + lsls r0, r3, #2 + ldr r4, _08162394 + adds r1, r1, r4 + adds r0, r1, r0 + ldrh r0, [r0] + strh r0, [r2] + ldr r4, _08162398 + lsls r0, r3, #1 + adds r0, #1 + lsls r0, r0, #1 + adds r1, r1, r0 + ldrh r0, [r1] + strh r0, [r4] + ldrh r0, [r2] + movs r1, #0 + bl SetBattleFacilityTrainerGfxId + ldrh r0, [r4] + movs r1, #1 + bl SetBattleFacilityTrainerGfxId + b _08162444 + .align 2, 0 +_08162388: .4byte 0x000040CE +_0816238C: .4byte 0x00000CB2 +_08162390: .4byte 0x0203886A +_08162394: .4byte 0x00000CB4 +_08162398: .4byte 0x0203886C +_0816239C: + bl ChooseSpecialBattleTowerTrainer + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081623C8 + ldr r4, _081623C0 + ldrh r0, [r4] + movs r1, #0 + bl SetBattleFacilityTrainerGfxId + ldr r1, [r6] + ldr r2, _081623C4 + adds r0, r1, r2 + ldrh r0, [r0] + lsls r0, r0, #1 + adds r2, #2 + b _0816243C + .align 2, 0 +_081623C0: .4byte 0x0203886A +_081623C4: .4byte 0x00000CB2 +_081623C8: + lsls r7, r5, #0x18 + adds r5, r6, #0 + ldr r6, _0816244C +_081623CE: + ldr r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsrs r0, r7, #0x18 + bl sub_0816245C + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + movs r4, #0 + ldr r1, [r5] + adds r0, r1, r6 + ldrh r0, [r0] + cmp r4, r0 + bge _08162410 + ldr r2, _08162450 + adds r0, r1, r2 + ldrh r0, [r0] + cmp r0, r3 + beq _08162410 + ldr r0, _08162454 + ldr r1, [r0] + subs r2, #2 + adds r0, r1, r2 + ldrh r2, [r0] + ldr r0, _08162450 + adds r1, r1, r0 +_08162402: + adds r1, #2 + adds r4, #1 + cmp r4, r2 + bge _08162410 + ldrh r0, [r1] + cmp r0, r3 + bne _08162402 +_08162410: + ldr r0, [r5] + ldr r1, _0816244C + adds r0, r0, r1 + ldrh r0, [r0] + cmp r4, r0 + bne _081623CE + ldr r4, _08162458 + strh r3, [r4] + ldrh r0, [r4] + movs r1, #0 + bl SetBattleFacilityTrainerGfxId + ldr r0, _08162454 + ldr r1, [r0] + ldr r2, _0816244C + adds r0, r1, r2 + ldrh r2, [r0] + adds r0, r2, #1 + cmp r0, #6 + bgt _08162444 + lsls r0, r2, #1 + ldr r2, _08162450 +_0816243C: + adds r1, r1, r2 + adds r1, r1, r0 + ldrh r0, [r4] + strh r0, [r1] +_08162444: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0816244C: .4byte 0x00000CB2 +_08162450: .4byte 0x00000CB4 +_08162454: .4byte 0x03005AF0 +_08162458: .4byte 0x0203886A + thumb_func_end ChooseNextBattleTowerTrainer + + thumb_func_start sub_0816245C +sub_0816245C: @ 0x0816245C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r3, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r0, #7 + bhi _08162498 + cmp r1, #6 + bne _08162484 + ldr r2, _08162480 + lsls r1, r0, #2 + adds r0, r2, #2 + adds r0, r1, r0 + adds r1, r1, r2 + ldrh r0, [r0] + ldrh r4, [r1] + b _0816249E + .align 2, 0 +_08162480: .4byte 0x085BE95E +_08162484: + ldr r2, _08162494 + lsls r1, r3, #2 + adds r0, r2, #2 + adds r0, r1, r0 + adds r1, r1, r2 + ldrh r0, [r0] + ldrh r4, [r1] + b _0816249E + .align 2, 0 +_08162494: .4byte 0x085BE93E +_08162498: + ldr r1, _081624C4 + ldrh r0, [r1, #0x1e] + ldrh r4, [r1, #0x1c] +_0816249E: + subs r0, r0, r4 + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r5, #0 + bl __umodsi3 + adds r4, r4, r0 + lsls r4, r4, #0x10 + lsrs r5, r4, #0x10 + adds r0, r5, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081624C4: .4byte 0x085BE93E + thumb_func_end sub_0816245C + + thumb_func_start sub_081624C8 +sub_081624C8: @ 0x081624C8 + push {r4, lr} + adds r4, r2, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r2, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r0, #7 + bhi _08162508 + cmp r1, #6 + bne _081624E8 + ldr r1, _081624E4 + lsls r2, r0, #2 + b _081624EC + .align 2, 0 +_081624E4: .4byte 0x085BE95E +_081624E8: + ldr r1, _08162504 + lsls r2, r2, #2 +_081624EC: + adds r0, r1, #2 + adds r0, r2, r0 + adds r2, r2, r1 + ldrh r0, [r0] + ldrh r1, [r2] + subs r0, r0, r1 + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldrh r0, [r2] + b _08162518 + .align 2, 0 +_08162504: .4byte 0x085BE93E +_08162508: + ldr r0, _08162524 + ldrh r1, [r0, #0x1e] + ldrh r2, [r0, #0x1c] + subs r1, r1, r2 + adds r1, #1 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldrh r0, [r0, #0x1c] +_08162518: + strh r0, [r4] + strb r1, [r3] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08162524: .4byte 0x085BE93E + thumb_func_end sub_081624C8 + + thumb_func_start SetBattleFacilityTrainerGfxId +SetBattleFacilityTrainerGfxId: @ 0x08162528 + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r6, r4, #0 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + bl SetFacilityPtrsGetLevel + movs r0, #0xfa + lsls r0, r0, #1 + cmp r4, r0 + bne _08162550 + ldr r0, _08162548 + ldr r0, [r0] + ldr r1, _0816254C + b _0816258E + .align 2, 0 +_08162548: .4byte 0x03005AF0 +_0816254C: .4byte 0x00000BED +_08162550: + ldr r0, _0816255C + cmp r4, r0 + bne _08162560 + bl SetFrontierBrainEventObjGfx_2 + b _08162694 + .align 2, 0 +_0816255C: .4byte 0x000003FE +_08162560: + ldr r0, _08162570 + cmp r4, r0 + bhi _08162578 + ldr r0, _08162574 + ldr r1, [r0] + movs r0, #0x34 + muls r0, r4, r0 + b _0816258E + .align 2, 0 +_08162570: .4byte 0x0000012B +_08162574: .4byte 0x0203B954 +_08162578: + ldr r0, _08162594 + cmp r4, r0 + bhi _081625A4 + ldr r0, _08162598 + ldr r0, [r0] + ldr r1, _0816259C + adds r2, r4, r1 + movs r1, #0xec + muls r1, r2, r1 + adds r0, r0, r1 + ldr r1, _081625A0 +_0816258E: + adds r0, r0, r1 + ldrb r2, [r0] + b _081625C8 + .align 2, 0 +_08162594: .4byte 0x0000018F +_08162598: .4byte 0x03005AF0 +_0816259C: .4byte 0xFFFFFED4 +_081625A0: .4byte 0x00000739 +_081625A4: + ldr r3, _081625F8 + ldr r0, _081625FC + ldr r1, [r0] + ldr r0, _08162600 + adds r2, r6, r0 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r1, r1, r0 + adds r1, #0xdc + ldrb r1, [r1] + lsls r1, r1, #0x1b + lsrs r1, r1, #0x1b + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #4 + adds r0, r0, r3 + ldrb r2, [r0, #0xa] +_081625C8: + movs r1, #0 + ldr r3, _08162604 + ldrb r0, [r3] + cmp r0, r2 + beq _081625E0 +_081625D2: + adds r1, #1 + cmp r1, #0x1d + bhi _081625E0 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _081625D2 +_081625E0: + cmp r1, #0x1e + beq _0816260C + ldr r0, _08162608 + adds r0, r1, r0 + ldrb r1, [r0] + cmp r5, #1 + beq _08162650 + cmp r5, #1 + ble _0816263A + cmp r5, #0xf + bne _0816263A + b _0816265C + .align 2, 0 +_081625F8: .4byte 0x085DC21C +_081625FC: .4byte 0x03005AF0 +_08162600: .4byte 0xFFFFFE70 +_08162604: .4byte 0x085BBE20 +_08162608: .4byte 0x085BBE52 +_0816260C: + movs r1, #0 + ldr r3, _08162644 + ldrb r0, [r3] + cmp r0, r2 + beq _08162624 +_08162616: + adds r1, #1 + cmp r1, #0x13 + bhi _08162624 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _08162616 +_08162624: + cmp r1, #0x14 + beq _08162668 + ldr r0, _08162648 + adds r0, r1, r0 + ldrb r1, [r0] + cmp r5, #1 + beq _08162650 + cmp r5, #1 + ble _0816263A + cmp r5, #0xf + beq _0816265C +_0816263A: + ldr r0, _0816264C + bl VarSet + b _08162694 + .align 2, 0 +_08162644: .4byte 0x085BBE3E +_08162648: .4byte 0x085BBE70 +_0816264C: .4byte 0x00004010 +_08162650: + ldr r0, _08162658 + bl VarSet + b _08162694 + .align 2, 0 +_08162658: .4byte 0x00004011 +_0816265C: + ldr r0, _08162664 + bl VarSet + b _08162694 + .align 2, 0 +_08162664: .4byte 0x0000401E +_08162668: + cmp r5, #1 + beq _0816267C + cmp r5, #1 + ble _08162674 + cmp r5, #0xf + beq _0816268C +_08162674: + ldr r0, _08162678 + b _0816267E + .align 2, 0 +_08162678: .4byte 0x00004010 +_0816267C: + ldr r0, _08162688 +_0816267E: + movs r1, #7 + bl VarSet + b _08162694 + .align 2, 0 +_08162688: .4byte 0x00004011 +_0816268C: + ldr r0, _0816269C + movs r1, #7 + bl VarSet +_08162694: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0816269C: .4byte 0x0000401E + thumb_func_end SetBattleFacilityTrainerGfxId + + thumb_func_start SetEReaderTrainerGfxId +SetEReaderTrainerGfxId: @ 0x081626A0 + push {lr} + movs r0, #0xfa + lsls r0, r0, #1 + movs r1, #0 + bl SetBattleFacilityTrainerGfxId + pop {r0} + bx r0 + thumb_func_end SetEReaderTrainerGfxId + + thumb_func_start GetBattleFacilityTrainerGfxId +GetBattleFacilityTrainerGfxId: @ 0x081626B0 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r5, r4, #0 + bl SetFacilityPtrsGetLevel + movs r0, #0xfa + lsls r0, r0, #1 + cmp r4, r0 + bne _081626D4 + ldr r0, _081626CC + ldr r0, [r0] + ldr r1, _081626D0 + b _08162702 + .align 2, 0 +_081626CC: .4byte 0x03005AF0 +_081626D0: .4byte 0x00000BED +_081626D4: + ldr r0, _081626E4 + cmp r4, r0 + bhi _081626EC + ldr r0, _081626E8 + ldr r1, [r0] + movs r0, #0x34 + muls r0, r4, r0 + b _08162702 + .align 2, 0 +_081626E4: .4byte 0x0000012B +_081626E8: .4byte 0x0203B954 +_081626EC: + ldr r0, _08162708 + cmp r4, r0 + bhi _08162718 + ldr r0, _0816270C + ldr r0, [r0] + ldr r1, _08162710 + adds r2, r4, r1 + movs r1, #0xec + muls r1, r2, r1 + adds r0, r0, r1 + ldr r1, _08162714 +_08162702: + adds r0, r0, r1 + ldrb r2, [r0] + b _0816273C + .align 2, 0 +_08162708: .4byte 0x0000018F +_0816270C: .4byte 0x03005AF0 +_08162710: .4byte 0xFFFFFED4 +_08162714: .4byte 0x00000739 +_08162718: + ldr r3, _0816275C + ldr r0, _08162760 + ldr r1, [r0] + ldr r0, _08162764 + adds r2, r5, r0 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r1, r1, r0 + adds r1, #0xdc + ldrb r1, [r1] + lsls r1, r1, #0x1b + lsrs r1, r1, #0x1b + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #4 + adds r0, r0, r3 + ldrb r2, [r0, #0xa] +_0816273C: + movs r1, #0 + ldr r3, _08162768 + ldrb r0, [r3] + cmp r0, r2 + beq _08162754 +_08162746: + adds r1, #1 + cmp r1, #0x1d + bhi _08162754 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _08162746 +_08162754: + cmp r1, #0x1e + beq _08162770 + ldr r0, _0816276C + b _08162796 + .align 2, 0 +_0816275C: .4byte 0x085DC21C +_08162760: .4byte 0x03005AF0 +_08162764: .4byte 0xFFFFFE70 +_08162768: .4byte 0x085BBE20 +_0816276C: .4byte 0x085BBE52 +_08162770: + movs r1, #0 + ldr r3, _08162790 + ldrb r0, [r3] + cmp r0, r2 + beq _08162788 +_0816277A: + adds r1, #1 + cmp r1, #0x13 + bhi _08162788 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _0816277A +_08162788: + cmp r1, #0x14 + bne _08162794 + movs r0, #7 + b _0816279A + .align 2, 0 +_08162790: .4byte 0x085BBE3E +_08162794: + ldr r0, _081627A0 +_08162796: + adds r0, r1, r0 + ldrb r0, [r0] +_0816279A: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081627A0: .4byte 0x085BBE70 + thumb_func_end GetBattleFacilityTrainerGfxId + + thumb_func_start PutNewBattleTowerRecord +PutNewBattleTowerRecord: @ 0x081627A4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + movs r1, #0 + mov r8, r1 + mov sl, r0 + movs r5, #0 + ldr r2, _08162828 + ldr r0, [r2] + mov r4, sl + ldrb r4, [r4, #0xc] + str r4, [sp, #0x18] + mov sb, r5 + movs r7, #4 + str r7, [sp, #0x1c] + ldr r1, _0816282C + adds r1, r1, r0 + mov ip, r1 +_081627CE: + movs r6, #0 + movs r3, #0 + mov r2, ip + ldrb r0, [r2] + ldr r4, [sp, #0x18] + cmp r0, r4 + bne _081627FE + mov r4, sb + mov r2, sl + adds r2, #0xc +_081627E2: + adds r3, #1 + cmp r3, #3 + bgt _081627FE + ldr r7, _08162828 + ldr r0, [r7] + adds r1, r3, r4 + ldr r7, _0816282C + adds r0, r0, r7 + adds r0, r0, r1 + adds r1, r2, r3 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _081627E2 +_081627FE: + cmp r3, #4 + bne _08162848 + movs r6, #0 + ldr r1, _08162828 + ldr r0, [r1] + ldr r3, _08162830 + adds r0, r0, r3 + ldr r2, [sp, #0x1c] + adds r0, r0, r2 + ldrb r0, [r0] + mov r4, sl + ldrb r4, [r4, #8] + cmp r0, r4 + bne _08162848 + adds r1, r0, #0 + mov r2, sb + adds r2, #4 +_08162820: + cmp r1, #0xff + bne _08162834 + movs r6, #7 + b _08162848 + .align 2, 0 +_08162828: .4byte 0x03005AF0 +_0816282C: .4byte 0x00000744 +_08162830: .4byte 0x0000073C +_08162834: + adds r6, #1 + cmp r6, #6 + bgt _08162848 + ldr r7, _08162874 + ldr r0, [r7] + adds r0, r0, r3 + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, r1 + beq _08162820 +_08162848: + cmp r6, #7 + beq _0816285E + movs r0, #0xec + add sb, r0 + ldr r1, [sp, #0x1c] + adds r1, #0xec + str r1, [sp, #0x1c] + add ip, r0 + adds r5, #1 + cmp r5, #4 + ble _081627CE +_0816285E: + cmp r5, #4 + bgt _08162878 + ldr r2, _08162874 + ldr r0, [r2] + movs r1, #0xec + muls r1, r5, r1 + adds r0, r0, r1 + movs r4, #0xe7 + lsls r4, r4, #3 + adds r0, r0, r4 + b _081628B6 + .align 2, 0 +_08162874: .4byte 0x03005AF0 +_08162878: + movs r5, #0 + ldr r7, _081628C0 + ldr r0, [r7] + ldr r1, _081628C4 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0 + beq _081628A2 + adds r3, r7, #0 + adds r2, r1, #0 + movs r1, #0 +_0816288E: + adds r1, #0xec + adds r5, #1 + cmp r5, #4 + bgt _081628C8 + ldr r0, [r3] + adds r0, r0, r1 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r0, #0 + bne _0816288E +_081628A2: + cmp r5, #4 + bgt _081628C8 + ldr r1, _081628C0 + ldr r0, [r1] + movs r1, #0xec + muls r1, r5, r1 + adds r0, r0, r1 + movs r2, #0xe7 + lsls r2, r2, #3 + adds r0, r0, r2 +_081628B6: + mov r1, sl + movs r2, #0xec + bl memcpy + b _0816298E + .align 2, 0 +_081628C0: .4byte 0x03005AF0 +_081628C4: .4byte 0x0000073A +_081628C8: + mov r2, sp + ldr r4, _08162920 + ldr r0, [r4] + ldr r3, _08162924 + adds r0, r0, r3 + ldrh r0, [r0] + movs r1, #0 + strh r0, [r2] + add r0, sp, #0xc + strh r1, [r0] + movs r7, #1 + add r8, r7 + movs r5, #1 + add r0, sp, #0xc + mov sb, r0 + mov ip, r3 +_081628E8: + movs r3, #0 + adds r7, r5, #1 + cmp r3, r8 + bge _08162932 + ldr r1, _08162920 + ldr r0, [r1] + movs r2, #0xec + adds r1, r5, #0 + muls r1, r2, r1 + adds r0, r0, r1 + mov r1, ip + adds r4, r0, r1 + mov r6, sp +_08162902: + lsls r0, r3, #1 + add r0, sp + ldrh r2, [r4] + adds r1, r2, #0 + ldrh r0, [r0] + cmp r1, r0 + bhs _08162928 + movs r3, #0 + movs r4, #1 + mov r8, r4 + strh r2, [r6] + mov r0, sb + strh r5, [r0] + b _08162932 + .align 2, 0 +_08162920: .4byte 0x03005AF0 +_08162924: .4byte 0x0000073A +_08162928: + cmp r1, r0 + bhi _08162932 + adds r3, #1 + cmp r3, r8 + blt _08162902 +_08162932: + cmp r3, r8 + bne _08162958 + mov r1, r8 + lsls r2, r1, #1 + mov r4, sp + adds r3, r4, r2 + ldr r1, _081629A0 + ldr r0, [r1] + movs r4, #0xec + adds r1, r5, #0 + muls r1, r4, r1 + adds r0, r0, r1 + add r0, ip + ldrh r0, [r0] + strh r0, [r3] + add r2, sb + strh r5, [r2] + movs r0, #1 + add r8, r0 +_08162958: + adds r5, r7, #0 + cmp r5, #4 + ble _081628E8 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r1, r8 + bl __modsi3 + adds r5, r0, #0 + ldr r0, _081629A0 + ldr r0, [r0] + lsls r1, r5, #1 + add r1, sp + adds r1, #0xc + ldrh r2, [r1] + movs r1, #0xec + muls r1, r2, r1 + adds r0, r0, r1 + movs r1, #0xe7 + lsls r1, r1, #3 + adds r0, r0, r1 + mov r1, sl + movs r2, #0xec + bl memcpy +_0816298E: + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081629A0: .4byte 0x03005AF0 + thumb_func_end PutNewBattleTowerRecord + + thumb_func_start GetFrontierTrainerFrontSpriteId +GetFrontierTrainerFrontSpriteId: @ 0x081629A4 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r5, r4, #0 + bl SetFacilityPtrsGetLevel + movs r0, #0xfa + lsls r0, r0, #1 + cmp r4, r0 + bne _081629D4 + ldr r1, _081629C8 + ldr r0, _081629CC + ldr r0, [r0] + ldr r2, _081629D0 + adds r0, r0, r2 + ldrb r0, [r0] + adds r0, r0, r1 + b _08162ACC + .align 2, 0 +_081629C8: .4byte 0x082EFF00 +_081629CC: .4byte 0x03005AF0 +_081629D0: .4byte 0x00000BED +_081629D4: + ldr r0, _081629E4 + cmp r4, r0 + bne _081629E8 + bl PrintHyphens + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _08162ACE + .align 2, 0 +_081629E4: .4byte 0x000003FE +_081629E8: + ldr r0, _08162A00 + cmp r4, r0 + bhi _08162A0C + ldr r2, _08162A04 + ldr r0, _08162A08 + ldr r1, [r0] + movs r0, #0x34 + muls r0, r4, r0 + adds r0, r0, r1 + ldrb r0, [r0] + adds r0, r0, r2 + b _08162ACC + .align 2, 0 +_08162A00: .4byte 0x0000012B +_08162A04: .4byte 0x082EFF00 +_08162A08: .4byte 0x0203B954 +_08162A0C: + ldr r0, _08162A30 + cmp r4, r0 + bhi _08162A68 + ldr r0, _08162A34 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + beq _08162A3C + ldr r4, _08162A38 + bl GetRecordedBattleRecordMixFriendLanguage + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r4 + b _08162ACC + .align 2, 0 +_08162A30: .4byte 0x0000018F +_08162A34: .4byte 0x02022C90 +_08162A38: .4byte 0x082EFF00 +_08162A3C: + ldr r3, _08162A58 + ldr r0, _08162A5C + ldr r0, [r0] + ldr r1, _08162A60 + adds r2, r4, r1 + movs r1, #0xec + muls r1, r2, r1 + adds r0, r0, r1 + ldr r2, _08162A64 + adds r0, r0, r2 + ldrb r0, [r0] + adds r0, r0, r3 + b _08162ACC + .align 2, 0 +_08162A58: .4byte 0x082EFF00 +_08162A5C: .4byte 0x03005AF0 +_08162A60: .4byte 0xFFFFFED4 +_08162A64: .4byte 0x00000739 +_08162A68: + ldr r0, _08162AA0 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + bne _08162AB4 + ldr r4, _08162AA4 + ldr r3, _08162AA8 + ldr r0, _08162AAC + ldr r1, [r0] + ldr r0, _08162AB0 + adds r2, r5, r0 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r1, r1, r0 + adds r1, #0xdc + ldrb r1, [r1] + lsls r1, r1, #0x1b + lsrs r1, r1, #0x1b + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #4 + adds r0, r0, r3 + ldrb r0, [r0, #0xa] + adds r0, r0, r4 + b _08162ACC + .align 2, 0 +_08162AA0: .4byte 0x02022C90 +_08162AA4: .4byte 0x082EFF00 +_08162AA8: .4byte 0x085DC21C +_08162AAC: .4byte 0x03005AF0 +_08162AB0: .4byte 0xFFFFFE70 +_08162AB4: + ldr r5, _08162AD4 + ldr r4, _08162AD8 + bl GetTextSpeedInRecordedBattle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #4 + adds r1, r1, r4 + ldrb r0, [r1, #0xa] + adds r0, r0, r5 +_08162ACC: + ldrb r0, [r0] +_08162ACE: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08162AD4: .4byte 0x082EFF00 +_08162AD8: .4byte 0x085DC21C + thumb_func_end GetFrontierTrainerFrontSpriteId + + thumb_func_start GetFrontierOpponentClass +GetFrontierOpponentClass: @ 0x08162ADC + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r5, r4, #0 + bl SetFacilityPtrsGetLevel + movs r0, #0xfa + lsls r0, r0, #1 + cmp r4, r0 + bne _08162B0C + ldr r1, _08162B00 + ldr r0, _08162B04 + ldr r0, [r0] + ldr r2, _08162B08 + adds r0, r0, r2 + ldrb r0, [r0] + b _08162B2A + .align 2, 0 +_08162B00: .4byte 0x082EFF52 +_08162B04: .4byte 0x03005AF0 +_08162B08: .4byte 0x00000BED +_08162B0C: + ldr r0, _08162B1C + cmp r4, r0 + bne _08162B20 + bl sub_081A48F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _08162C22 + .align 2, 0 +_08162B1C: .4byte 0x000003FE +_08162B20: + ldr r0, _08162B30 + cmp r4, r0 + bne _08162B3C + ldr r0, _08162B34 + ldr r1, _08162B38 +_08162B2A: + adds r0, r0, r1 + ldrb r0, [r0] + b _08162C22 + .align 2, 0 +_08162B30: .4byte 0x00000C03 +_08162B34: .4byte 0x082E383C +_08162B38: .4byte 0x00006481 +_08162B3C: + ldr r0, _08162B58 + cmp r4, r0 + bhi _08162B64 + ldr r2, _08162B5C + ldr r0, _08162B60 + ldr r1, [r0] + movs r0, #0x34 + muls r0, r4, r0 + adds r0, r0, r1 + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r0, [r0] + b _08162C22 + .align 2, 0 +_08162B58: .4byte 0x0000012B +_08162B5C: .4byte 0x082EFF52 +_08162B60: .4byte 0x0203B954 +_08162B64: + ldr r0, _08162B88 + cmp r4, r0 + bhi _08162BC0 + ldr r0, _08162B8C + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + beq _08162B94 + ldr r4, _08162B90 + bl GetRecordedBattleRecordMixFriendLanguage + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r4 + ldrb r0, [r0] + b _08162C22 + .align 2, 0 +_08162B88: .4byte 0x0000018F +_08162B8C: .4byte 0x02022C90 +_08162B90: .4byte 0x082EFF52 +_08162B94: + ldr r3, _08162BB0 + ldr r0, _08162BB4 + ldr r0, [r0] + ldr r1, _08162BB8 + adds r2, r4, r1 + movs r1, #0xec + muls r1, r2, r1 + adds r0, r0, r1 + ldr r2, _08162BBC + adds r0, r0, r2 + ldrb r0, [r0] + adds r0, r0, r3 + ldrb r0, [r0] + b _08162C22 + .align 2, 0 +_08162BB0: .4byte 0x082EFF52 +_08162BB4: .4byte 0x03005AF0 +_08162BB8: .4byte 0xFFFFFED4 +_08162BBC: .4byte 0x00000739 +_08162BC0: + ldr r0, _08162BEC + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + beq _08162BF8 + ldr r5, _08162BF0 + ldr r4, _08162BF4 + bl GetTextSpeedInRecordedBattle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #4 + adds r1, r1, r4 + ldrb r0, [r1, #0xa] + adds r0, r0, r5 + ldrb r0, [r0] + b _08162C22 + .align 2, 0 +_08162BEC: .4byte 0x02022C90 +_08162BF0: .4byte 0x082EFF52 +_08162BF4: .4byte 0x085DC21C +_08162BF8: + ldr r4, _08162C28 + ldr r3, _08162C2C + ldr r0, _08162C30 + ldr r1, [r0] + ldr r0, _08162C34 + adds r2, r5, r0 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r1, r1, r0 + adds r1, #0xdc + ldrb r1, [r1] + lsls r1, r1, #0x1b + lsrs r1, r1, #0x1b + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #4 + adds r0, r0, r3 + ldrb r0, [r0, #0xa] + adds r0, r0, r4 + ldrb r0, [r0] +_08162C22: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08162C28: .4byte 0x082EFF52 +_08162C2C: .4byte 0x085DC21C +_08162C30: .4byte 0x03005AF0 +_08162C34: .4byte 0xFFFFFE70 + thumb_func_end GetFrontierOpponentClass + + thumb_func_start GetFrontierTrainerFacilityClass +GetFrontierTrainerFacilityClass: @ 0x08162C38 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r5, r4, #0 + bl SetFacilityPtrsGetLevel + movs r0, #0xfa + lsls r0, r0, #1 + cmp r4, r0 + bne _08162C5C + ldr r0, _08162C54 + ldr r0, [r0] + ldr r1, _08162C58 + b _08162CAC + .align 2, 0 +_08162C54: .4byte 0x03005AF0 +_08162C58: .4byte 0x00000BED +_08162C5C: + ldr r0, _08162C6C + cmp r4, r0 + bhi _08162C74 + ldr r0, _08162C70 + ldr r1, [r0] + movs r0, #0x34 + muls r0, r4, r0 + b _08162CAC + .align 2, 0 +_08162C6C: .4byte 0x0000012B +_08162C70: .4byte 0x0203B954 +_08162C74: + ldr r0, _08162C94 + cmp r4, r0 + bhi _08162CC0 + ldr r0, _08162C98 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + beq _08162C9C + bl GetRecordedBattleRecordMixFriendLanguage + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _08162D10 + .align 2, 0 +_08162C94: .4byte 0x0000018F +_08162C98: .4byte 0x02022C90 +_08162C9C: + ldr r0, _08162CB4 + ldr r0, [r0] + ldr r1, _08162CB8 + adds r2, r4, r1 + movs r1, #0xec + muls r1, r2, r1 + adds r0, r0, r1 + ldr r1, _08162CBC +_08162CAC: + adds r0, r0, r1 + ldrb r0, [r0] + b _08162D10 + .align 2, 0 +_08162CB4: .4byte 0x03005AF0 +_08162CB8: .4byte 0xFFFFFED4 +_08162CBC: .4byte 0x00000739 +_08162CC0: + ldr r0, _08162CE4 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + beq _08162CEC + ldr r4, _08162CE8 + bl GetTextSpeedInRecordedBattle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #4 + adds r1, r1, r4 + ldrb r0, [r1, #0xa] + b _08162D10 + .align 2, 0 +_08162CE4: .4byte 0x02022C90 +_08162CE8: .4byte 0x085DC21C +_08162CEC: + ldr r3, _08162D18 + ldr r0, _08162D1C + ldr r1, [r0] + ldr r0, _08162D20 + adds r2, r5, r0 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r1, r1, r0 + adds r1, #0xdc + ldrb r1, [r1] + lsls r1, r1, #0x1b + lsrs r1, r1, #0x1b + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #4 + adds r0, r0, r3 + ldrb r0, [r0, #0xa] +_08162D10: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08162D18: .4byte 0x085DC21C +_08162D1C: .4byte 0x03005AF0 +_08162D20: .4byte 0xFFFFFE70 + thumb_func_end GetFrontierTrainerFacilityClass + + thumb_func_start GetFrontierTrainerName +GetFrontierTrainerName: @ 0x08162D24 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + movs r4, #0 + bl SetFacilityPtrsGetLevel + movs r0, #0xfa + lsls r0, r0, #1 + cmp r5, r0 + bne _08162D58 + ldr r0, _08162D54 + ldr r0, [r0] + movs r1, #0xbf + lsls r1, r1, #4 + adds r2, r0, r1 +_08162D44: + adds r0, r6, r4 + adds r1, r2, r4 + ldrb r1, [r1] + strb r1, [r0] + adds r4, #1 + cmp r4, #6 + ble _08162D44 + b _08162E76 + .align 2, 0 +_08162D54: .4byte 0x03005AF0 +_08162D58: + ldr r0, _08162D68 + cmp r5, r0 + bne _08162D6C + adds r0, r6, #0 + bl CopyFrontierBrainTrainerName + b _08162E7C + .align 2, 0 +_08162D68: .4byte 0x000003FE +_08162D6C: + ldr r0, _08162D84 + cmp r5, r0 + bne _08162D8C + ldr r2, _08162D88 +_08162D74: + adds r0, r6, r4 + adds r1, r4, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r4, #1 + cmp r4, #6 + ble _08162D74 + b _08162E76 + .align 2, 0 +_08162D84: .4byte 0x00000C03 +_08162D88: .4byte 0x082E9CC0 +_08162D8C: + ldr r0, _08162DB0 + cmp r5, r0 + bhi _08162DB8 + ldr r0, _08162DB4 + ldr r1, [r0] + movs r0, #0x34 + muls r0, r5, r0 + adds r0, r0, r1 + adds r2, r0, #4 +_08162D9E: + adds r0, r6, r4 + adds r1, r2, r4 + ldrb r1, [r1] + strb r1, [r0] + adds r4, #1 + cmp r4, #6 + ble _08162D9E + b _08162E76 + .align 2, 0 +_08162DB0: .4byte 0x0000012B +_08162DB4: .4byte 0x0203B954 +_08162DB8: + ldr r0, _08162DD4 + cmp r5, r0 + bhi _08162E0C + ldr r0, _08162DD8 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + beq _08162DDC + adds r0, r6, #0 + bl sub_081861C0 + b _08162E7C + .align 2, 0 +_08162DD4: .4byte 0x0000018F +_08162DD8: .4byte 0x02022C90 +_08162DDC: + ldr r0, _08162E00 + ldr r1, [r0] + ldr r0, _08162E04 + adds r2, r5, r0 + movs r0, #0xec + muls r0, r2, r0 + ldr r2, _08162E08 + adds r1, r1, r2 + adds r2, r0, r1 +_08162DEE: + adds r1, r6, r4 + ldrb r0, [r2] + strb r0, [r1] + adds r2, #1 + adds r4, #1 + cmp r4, #6 + ble _08162DEE + b _08162E76 + .align 2, 0 +_08162E00: .4byte 0x03005AF0 +_08162E04: .4byte 0xFFFFFED4 +_08162E08: .4byte 0x0000073C +_08162E0C: + ldr r0, _08162E3C + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + beq _08162E44 + ldr r5, _08162E40 +_08162E1C: + bl GetTextSpeedInRecordedBattle + adds r2, r6, r4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #4 + adds r1, r4, r1 + adds r1, r1, r5 + ldrb r0, [r1] + strb r0, [r2] + adds r4, #1 + cmp r4, #6 + ble _08162E1C + b _08162E76 + .align 2, 0 +_08162E3C: .4byte 0x02022C90 +_08162E40: .4byte 0x085DC21C +_08162E44: + ldr r7, _08162E84 + ldr r0, _08162E88 + ldr r2, [r0] + ldr r0, _08162E8C + adds r1, r5, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, r2, r0 + adds r3, r2, #0 + adds r3, #0xdc +_08162E5A: + adds r2, r6, r4 + ldrb r1, [r3] + lsls r1, r1, #0x1b + lsrs r1, r1, #0x1b + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #4 + adds r0, r4, r0 + adds r0, r0, r7 + ldrb r0, [r0] + strb r0, [r2] + adds r4, #1 + cmp r4, #6 + ble _08162E5A +_08162E76: + adds r1, r6, r4 + movs r0, #0xff + strb r0, [r1] +_08162E7C: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08162E84: .4byte 0x085DC21C +_08162E88: .4byte 0x03005AF0 +_08162E8C: .4byte 0xFFFFFE70 + thumb_func_end GetFrontierTrainerName + + thumb_func_start IsFrontierTrainerFemale +IsFrontierTrainerFemale: @ 0x08162E90 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r5, r4, #0 + bl SetFacilityPtrsGetLevel + movs r0, #0xfa + lsls r0, r0, #1 + cmp r4, r0 + bne _08162EB4 + ldr r0, _08162EAC + ldr r0, [r0] + ldr r1, _08162EB0 + b _08162EF6 + .align 2, 0 +_08162EAC: .4byte 0x03005AF0 +_08162EB0: .4byte 0x00000BED +_08162EB4: + ldr r0, _08162EC4 + cmp r4, r0 + bne _08162EC8 + bl IsFrontierBrainFemale + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _08162F62 + .align 2, 0 +_08162EC4: .4byte 0x000003FE +_08162EC8: + ldr r0, _08162ED8 + cmp r4, r0 + bhi _08162EE0 + ldr r0, _08162EDC + ldr r1, [r0] + movs r0, #0x34 + muls r0, r4, r0 + b _08162EF6 + .align 2, 0 +_08162ED8: .4byte 0x0000012B +_08162EDC: .4byte 0x0203B954 +_08162EE0: + ldr r0, _08162EFC + cmp r4, r0 + bhi _08162F0C + ldr r0, _08162F00 + ldr r0, [r0] + ldr r1, _08162F04 + adds r2, r4, r1 + movs r1, #0xec + muls r1, r2, r1 + adds r0, r0, r1 + ldr r1, _08162F08 +_08162EF6: + adds r0, r0, r1 + ldrb r2, [r0] + b _08162F30 + .align 2, 0 +_08162EFC: .4byte 0x0000018F +_08162F00: .4byte 0x03005AF0 +_08162F04: .4byte 0xFFFFFED4 +_08162F08: .4byte 0x00000739 +_08162F0C: + ldr r3, _08162F50 + ldr r0, _08162F54 + ldr r1, [r0] + ldr r0, _08162F58 + adds r2, r5, r0 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r1, r1, r0 + adds r1, #0xdc + ldrb r1, [r1] + lsls r1, r1, #0x1b + lsrs r1, r1, #0x1b + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #4 + adds r0, r0, r3 + ldrb r2, [r0, #0xa] +_08162F30: + movs r1, #0 + ldr r3, _08162F5C + ldrb r0, [r3] + cmp r0, r2 + beq _08162F48 +_08162F3A: + adds r1, #1 + cmp r1, #0x13 + bhi _08162F48 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _08162F3A +_08162F48: + cmp r1, #0x14 + bne _08162F60 + movs r0, #0 + b _08162F62 + .align 2, 0 +_08162F50: .4byte 0x085DC21C +_08162F54: .4byte 0x03005AF0 +_08162F58: .4byte 0xFFFFFE70 +_08162F5C: .4byte 0x085BBE3E +_08162F60: + movs r0, #1 +_08162F62: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end IsFrontierTrainerFemale + + thumb_func_start FillFrontierTrainerParty +FillFrontierTrainerParty: @ 0x08162F68 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl ZeroEnemyPartyMons + ldr r0, _08162F88 + ldrh r0, [r0] + movs r1, #0 + adds r2, r4, #0 + bl FillTrainerParty + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08162F88: .4byte 0x0203886A + thumb_func_end FillFrontierTrainerParty + + thumb_func_start FillFrontierTrainersParties +FillFrontierTrainersParties: @ 0x08162F8C + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl ZeroEnemyPartyMons + ldr r0, _08162FB8 + ldrh r0, [r0] + movs r1, #0 + adds r2, r4, #0 + bl FillTrainerParty + ldr r0, _08162FBC + ldrh r0, [r0] + movs r1, #3 + adds r2, r4, #0 + bl FillTrainerParty + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08162FB8: .4byte 0x0203886A +_08162FBC: .4byte 0x0203886C + thumb_func_end FillFrontierTrainersParties + + thumb_func_start FillTentTrainerParty +FillTentTrainerParty: @ 0x08162FC0 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl ZeroEnemyPartyMons + ldr r0, _08162FE0 + ldrh r0, [r0] + movs r1, #0 + adds r2, r4, #0 + bl FillTentTrainerParty_ + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08162FE0: .4byte 0x0203886A + thumb_func_end FillTentTrainerParty + + thumb_func_start FillTrainerParty +FillTrainerParty: @ 0x08162FE4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x40 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp, #0x18] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x1c] + add r4, sp, #0x14 + movs r0, #0xff + strb r0, [r4] + bl SetFacilityPtrsGetLevel + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x20] + ldr r0, _08163048 + cmp r5, r0 + bhi _08163058 + adds r0, r5, #0 + bl GetFrontierTrainerFixedIvs + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x24] + ldr r0, _0816304C + ldrh r2, [r0] + ldr r0, _08163050 + ldr r1, [r0] + movs r0, #0x34 + muls r0, r2, r0 + adds r0, r0, r1 + ldr r0, [r0, #0x30] + str r0, [sp, #0x2c] + movs r0, #0 + str r0, [sp, #0x28] + ldr r2, [sp, #0x2c] + ldrh r1, [r2] + ldr r0, _08163054 + cmp r1, r0 + bne _08163044 + b _08163198 +_08163044: + b _08163180 + .align 2, 0 +_08163048: .4byte 0x0000012B +_0816304C: .4byte 0x0203886A +_08163050: .4byte 0x0203B954 +_08163054: .4byte 0x0000FFFF +_08163058: + movs r0, #0xfa + lsls r0, r0, #1 + cmp r5, r0 + bne _081630A0 + ldr r7, [sp, #0x18] + adds r0, r7, #3 + cmp r7, r0 + blt _0816306A + b _08163346 +_0816306A: + ldr r4, _08163098 +_0816306C: + movs r0, #0x64 + muls r0, r7, r0 + ldr r1, _0816309C + adds r0, r0, r1 + ldr r5, [sp, #0x18] + subs r2, r7, r5 + movs r1, #0x2c + muls r2, r1, r2 + movs r6, #0xc2 + lsls r6, r6, #4 + adds r2, r2, r6 + ldr r1, [r4] + adds r1, r1, r2 + bl CreateBattleTowerMon + adds r7, #1 + adds r0, r5, #0 + adds r0, #3 + cmp r7, r0 + blt _0816306C + b _08163346 + .align 2, 0 +_08163098: .4byte 0x03005AF0 +_0816309C: .4byte 0x020243E8 +_081630A0: + ldr r0, _081630AC + cmp r5, r0 + bne _081630B0 + bl CreateFrontierBrainPokemon + b _08163346 + .align 2, 0 +_081630AC: .4byte 0x000003FE +_081630B0: + ldr r0, _08163120 + cmp r5, r0 + bhi _08163138 + movs r6, #0 + ldr r7, [sp, #0x18] + ldr r1, [sp, #0x1c] + adds r0, r7, r1 + cmp r7, r0 + blt _081630C4 + b _08163346 +_081630C4: + ldr r2, _08163124 + adds r1, r5, r2 + movs r0, #0xec + adds r2, r1, #0 + muls r2, r0, r2 + mov r8, r2 + muls r0, r5, r0 + ldr r5, _08163128 + adds r4, r0, r5 +_081630D6: + ldr r0, _0816312C + ldr r3, [r0] + movs r0, #0x2c + adds r2, r6, #0 + muls r2, r0, r2 + mov r1, r8 + adds r0, r2, r1 + adds r1, r3, r0 + ldr r5, _08163130 + adds r0, r1, r5 + ldrh r0, [r0] + cmp r0, #0 + beq _08163110 + adds r5, #0xc + adds r0, r1, r5 + ldrb r0, [r0] + ldr r1, [sp, #0x20] + cmp r0, r1 + bhi _08163110 + movs r0, #0x64 + muls r0, r7, r0 + ldr r1, _08163134 + adds r0, r0, r1 + adds r1, r3, r4 + adds r2, #0x34 + adds r1, r1, r2 + movs r2, #0 + bl CreateBattleTowerMon2 +_08163110: + adds r6, #1 + adds r7, #1 + ldr r2, [sp, #0x18] + ldr r5, [sp, #0x1c] + adds r0, r2, r5 + cmp r7, r0 + blt _081630D6 + b _08163346 + .align 2, 0 +_08163120: .4byte 0x0000018F +_08163124: .4byte 0xFFFFFED4 +_08163128: .4byte 0xFFFEF2A8 +_0816312C: .4byte 0x03005AF0 +_08163130: .4byte 0x0000076C +_08163134: .4byte 0x020243E8 +_08163138: + ldr r7, [sp, #0x18] + adds r0, r7, #3 + cmp r7, r0 + blt _08163142 + b _08163346 +_08163142: + ldr r6, _08163174 + lsls r0, r5, #4 + adds r0, r0, r5 + lsls r0, r0, #2 + ldr r1, _08163178 + adds r5, r0, r1 + movs r4, #0 +_08163150: + movs r0, #0x64 + muls r0, r7, r0 + ldr r1, _0816317C + adds r0, r0, r1 + ldr r1, [r6] + adds r1, r1, r5 + lsrs r2, r4, #0x18 + bl CreateApprenticeMon + movs r2, #0x80 + lsls r2, r2, #0x11 + adds r4, r4, r2 + adds r7, #1 + ldr r0, [sp, #0x18] + adds r0, #3 + cmp r7, r0 + blt _08163150 + b _08163346 + .align 2, 0 +_08163174: .4byte 0x03005AF0 +_08163178: .4byte 0xFFFF969C +_0816317C: .4byte 0x020243E8 +_08163180: + ldr r0, [sp, #0x28] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x28] + lsls r0, r0, #1 + ldr r5, [sp, #0x2c] + adds r0, r0, r5 + ldrh r1, [r0] + ldr r0, _081631E8 + cmp r1, r0 + bne _08163180 +_08163198: + movs r7, #0 + bl Random + adds r4, r0, #0 + bl Random + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r0, r0, #0x10 + orrs r4, r0 + str r4, [sp, #0x30] + ldr r6, [sp, #0x1c] + cmp r7, r6 + bne _081631B6 + b _08163346 +_081631B6: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, [sp, #0x28] + bl __modsi3 + lsls r0, r0, #1 + ldr r1, [sp, #0x2c] + adds r0, r0, r1 + ldrh r4, [r0] + ldr r2, [sp, #0x20] + cmp r2, #0x32 + beq _081631D6 + cmp r2, #0x14 + bne _081631DE +_081631D6: + ldr r0, _081631EC + cmp r4, r0 + bls _081631DE + b _0816333E +_081631DE: + movs r6, #0 + ldr r5, [sp, #0x18] + adds r5, r5, r7 + mov r8, r5 + b _081631F2 + .align 2, 0 +_081631E8: .4byte 0x0000FFFF +_081631EC: .4byte 0x00000351 +_081631F0: + adds r6, #1 +_081631F2: + cmp r6, r8 + bge _08163216 + movs r1, #0x64 + adds r0, r6, #0 + muls r0, r1, r0 + ldr r2, _08163358 + adds r0, r0, r2 + movs r1, #0xb + movs r2, #0 + bl GetMonData + ldr r1, _0816335C + ldr r2, [r1] + lsls r1, r4, #4 + adds r1, r1, r2 + ldrh r1, [r1] + cmp r0, r1 + bne _081631F0 +_08163216: + cmp r6, r8 + beq _0816321C + b _0816333E +_0816321C: + movs r6, #0 + cmp r6, r8 + bge _08163266 + ldr r5, _08163360 + mov sb, r5 + movs r3, #0 +_08163228: + ldr r0, _08163358 + adds r5, r3, r0 + adds r0, r5, #0 + movs r1, #0xc + movs r2, #0 + str r3, [sp, #0x38] + bl GetMonData + ldr r3, [sp, #0x38] + cmp r0, #0 + beq _0816325E + adds r0, r5, #0 + movs r1, #0xc + movs r2, #0 + bl GetMonData + ldr r1, _0816335C + ldr r2, [r1] + lsls r1, r4, #4 + adds r1, r1, r2 + ldrb r1, [r1, #0xa] + lsls r1, r1, #1 + add r1, sb + ldr r3, [sp, #0x38] + ldrh r1, [r1] + cmp r0, r1 + beq _08163266 +_0816325E: + adds r3, #0x64 + adds r6, #1 + cmp r6, r8 + blt _08163228 +_08163266: + cmp r6, r8 + bne _0816333E + movs r6, #0 + cmp r6, r7 + bge _08163288 + add r0, sp, #0xc + ldrh r0, [r0] + cmp r0, r4 + beq _08163288 + add r1, sp, #0xc +_0816327A: + adds r1, #2 + adds r6, #1 + cmp r6, r7 + bge _08163288 + ldrh r0, [r1] + cmp r0, r4 + bne _0816327A +_08163288: + cmp r6, r7 + bne _0816333E + lsls r0, r7, #1 + add r0, sp + adds r0, #0xc + strh r4, [r0] + movs r1, #0x64 + mov r0, r8 + muls r0, r1, r0 + ldr r2, _08163358 + adds r0, r0, r2 + ldr r5, _0816335C + ldr r2, [r5] + lsls r4, r4, #4 + adds r2, r4, r2 + ldrh r1, [r2] + ldrb r3, [r2, #0xc] + ldr r6, [sp, #0x24] + str r6, [sp] + ldrb r2, [r2, #0xb] + str r2, [sp, #4] + ldr r2, [sp, #0x30] + str r2, [sp, #8] + ldr r2, [sp, #0x20] + bl CreateMonWithEVSpreadNatureOTID + movs r0, #0xff + mov r6, sp + strb r0, [r6, #0x14] + movs r6, #0 + adds r0, r7, #1 + str r0, [sp, #0x34] + mov sb, r4 + movs r0, #0x64 + mov r3, r8 + muls r3, r0, r3 + mov r1, sb + str r1, [sp, #0x3c] + ldr r2, _08163358 + mov sl, r2 +_081632D8: + ldr r0, [r5] + ldr r7, [sp, #0x3c] + adds r0, r7, r0 + lsls r4, r6, #1 + adds r0, #2 + adds r0, r0, r4 + ldrh r1, [r0] + lsls r2, r6, #0x18 + lsrs r2, r2, #0x18 + mov r7, sl + adds r0, r3, r7 + str r3, [sp, #0x38] + bl SetMonMoveSlot + ldr r0, [r5] + ldr r1, [sp, #0x3c] + adds r0, r1, r0 + adds r0, #2 + adds r0, r0, r4 + ldrh r0, [r0] + ldr r3, [sp, #0x38] + cmp r0, #0xda + bne _0816330C + movs r0, #0 + mov r2, sp + strb r0, [r2, #0x14] +_0816330C: + adds r6, #1 + cmp r6, #3 + ble _081632D8 + movs r5, #0x64 + mov r4, r8 + muls r4, r5, r4 + ldr r6, _08163358 + adds r4, r4, r6 + adds r0, r4, #0 + movs r1, #0x20 + add r2, sp, #0x14 + bl SetMonData + ldr r0, _0816335C + ldr r0, [r0] + add r0, sb + ldrb r2, [r0, #0xa] + lsls r2, r2, #1 + ldr r0, _08163360 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0xc + bl SetMonData + ldr r7, [sp, #0x34] +_0816333E: + ldr r0, [sp, #0x1c] + cmp r7, r0 + beq _08163346 + b _081631B6 +_08163346: + add sp, #0x40 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08163358: .4byte 0x020243E8 +_0816335C: .4byte 0x0203B958 +_08163360: .4byte 0x085ADBF4 + thumb_func_end FillTrainerParty + + thumb_func_start Unused_CreateApprenticeMons +Unused_CreateApprenticeMons: @ 0x08163364 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp, #8] + movs r1, #0xff + add r0, sp, #4 + strb r1, [r0] + ldr r0, _08163438 + ldr r2, [r0] + movs r0, #0xdc + adds r0, r0, r2 + mov sl, r0 + ldrb r0, [r0, #1] + movs r1, #9 + str r1, [sp, #0x10] + cmp r0, #4 + bhi _08163394 + movs r0, #6 + str r0, [sp, #0x10] +_08163394: + ldr r1, _0816343C + adds r0, r2, r1 + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + movs r1, #0x32 + str r1, [sp, #0xc] + cmp r0, #0 + beq _081633AA + movs r0, #0x64 + str r0, [sp, #0xc] +_081633AA: + movs r7, #0 + adds r2, #0xe2 + str r2, [sp, #0x14] + add r1, sp, #4 + mov sb, r1 +_081633B4: + ldr r2, [sp, #8] + adds r6, r2, r7 + movs r0, #0x64 + muls r0, r6, r0 + ldr r1, _08163440 + adds r0, r0, r1 + lsls r5, r7, #1 + adds r4, r5, r7 + lsls r4, r4, #2 + mov r2, sl + adds r1, r2, r4 + ldrh r1, [r1, #4] + movs r2, #8 + str r2, [sp] + ldr r2, [sp, #0xc] + ldr r3, [sp, #0x10] + bl CreateMonWithEVSpread + movs r0, #0xff + mov r1, sb + strb r0, [r1] + adds r2, r7, #1 + mov r8, r2 + movs r1, #3 +_081633E4: + ldr r2, [sp, #0x14] + adds r0, r2, r4 + ldrh r0, [r0] + cmp r0, #0xda + bne _081633F4 + movs r2, #0 + mov r0, sb + strb r2, [r0] +_081633F4: + adds r4, #2 + subs r1, #1 + cmp r1, #0 + bge _081633E4 + movs r0, #0x64 + adds r4, r6, #0 + muls r4, r0, r4 + ldr r0, _08163440 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x20 + add r2, sp, #4 + bl SetMonData + adds r2, r5, r7 + lsls r2, r2, #2 + add r2, sl + adds r2, #0xe + adds r0, r4, #0 + movs r1, #0xc + bl SetMonData + mov r7, r8 + cmp r7, #3 + bne _081633B4 + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08163438: .4byte 0x03005AF0 +_0816343C: .4byte 0x00000CA9 +_08163440: .4byte 0x020243E8 + thumb_func_end Unused_CreateApprenticeMons + + thumb_func_start RandomizeFacilityTrainerMonSet +RandomizeFacilityTrainerMonSet: @ 0x08163444 + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + bl SetFacilityPtrsGetLevel + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _08163468 + ldr r1, [r0] + movs r0, #0x34 + muls r0, r4, r0 + adds r0, r0, r1 + ldr r5, [r0, #0x30] + movs r4, #0 + ldrh r1, [r5] + b _08163478 + .align 2, 0 +_08163468: .4byte 0x0203B954 +_0816346C: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #1 + adds r0, r0, r5 + ldrh r1, [r0] +_08163478: + ldr r0, _081634A8 + cmp r1, r0 + bne _0816346C +_0816347E: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r4, #0 + bl __modsi3 + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r1, [r0] + cmp r6, #0x32 + beq _0816349A + cmp r6, #0x14 + bne _081634A0 +_0816349A: + ldr r0, _081634AC + cmp r1, r0 + bhi _0816347E +_081634A0: + adds r0, r1, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_081634A8: .4byte 0x0000FFFF +_081634AC: .4byte 0x00000351 + thumb_func_end RandomizeFacilityTrainerMonSet + + thumb_func_start FillFactoryTrainerParty +FillFactoryTrainerParty: @ 0x081634B0 + push {lr} + bl ZeroEnemyPartyMons + ldr r0, _081634D4 + ldr r0, [r0] + ldr r1, _081634D8 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + cmp r0, #2 + beq _081634E0 + ldr r0, _081634DC + ldrh r0, [r0] + movs r1, #0 + bl FillFactoryFrontierTrainerParty + b _081634EA + .align 2, 0 +_081634D4: .4byte 0x03005AF0 +_081634D8: .4byte 0x00000CA9 +_081634DC: .4byte 0x0203886A +_081634E0: + ldr r0, _081634F0 + ldrh r0, [r0] + movs r1, #0 + bl FillFactoryTentTrainerParty +_081634EA: + pop {r0} + bx r0 + .align 2, 0 +_081634F0: .4byte 0x0203886A + thumb_func_end FillFactoryTrainerParty + + thumb_func_start FillFactoryFrontierTrainerParty +FillFactoryFrontierTrainerParty: @ 0x081634F4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + adds r3, r2, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp, #0x10] + ldr r0, _0816354C + cmp r2, r0 + bhi _0816356A + ldr r4, _08163550 + ldr r0, _08163554 + bl VarGet + lsls r0, r0, #0x18 + ldr r4, [r4] + lsrs r0, r0, #0x16 + movs r2, #0xce + lsls r2, r2, #4 + adds r1, r4, r2 + adds r1, r1, r0 + ldrh r0, [r1] + movs r1, #7 + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r3, _08163558 + adds r4, r4, r3 + ldrh r0, [r4] + cmp r0, #5 + bhi _0816355C + adds r0, r1, #0 + movs r1, #0 + bl GetFactoryMonFixedIV + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _081635C6 + .align 2, 0 +_0816354C: .4byte 0x0000012B +_08163550: .4byte 0x03005AF0 +_08163554: .4byte 0x000040CE +_08163558: .4byte 0x00000CB2 +_0816355C: + adds r0, r1, #0 + movs r1, #1 + bl GetFactoryMonFixedIV + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _081635C6 +_0816356A: + movs r0, #0xfa + lsls r0, r0, #1 + cmp r2, r0 + bne _081635B4 + ldr r7, [sp, #0x10] + adds r0, r7, #3 + cmp r7, r0 + blt _0816357C + b _08163696 +_0816357C: + ldr r4, _081635AC +_0816357E: + movs r0, #0x64 + muls r0, r7, r0 + ldr r1, _081635B0 + adds r0, r0, r1 + ldr r1, [sp, #0x10] + subs r2, r7, r1 + movs r1, #0x2c + muls r2, r1, r2 + movs r3, #0xc2 + lsls r3, r3, #4 + adds r2, r2, r3 + ldr r1, [r4] + adds r1, r1, r2 + bl CreateBattleTowerMon + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, [sp, #0x10] + adds r0, #3 + cmp r7, r0 + blt _0816357E + b _08163696 + .align 2, 0 +_081635AC: .4byte 0x03005AF0 +_081635B0: .4byte 0x020243E8 +_081635B4: + ldr r0, _081635C0 + cmp r3, r0 + bne _081635C4 + bl FillFactoryBrainParty + b _08163696 + .align 2, 0 +_081635C0: .4byte 0x000003FE +_081635C4: + movs r0, #0x1f +_081635C6: + str r0, [sp, #0x18] + bl SetFacilityPtrsGetLevel + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x14] + ldr r0, _081636A8 + ldr r1, [r0] + ldrb r2, [r1, #0xa] + ldrb r0, [r1, #0xb] + lsls r0, r0, #8 + orrs r2, r0 + ldrb r0, [r1, #0xc] + lsls r0, r0, #0x10 + orrs r2, r0 + ldrb r0, [r1, #0xd] + lsls r0, r0, #0x18 + orrs r2, r0 + mov r8, r2 + movs r7, #0 +_081635EE: + ldr r1, _081636AC + lsls r0, r7, #1 + adds r0, r0, r1 + ldrh r0, [r0] + mov sb, r0 + ldr r3, [sp, #0x10] + adds r5, r3, r7 + movs r0, #0x64 + adds r6, r5, #0 + muls r6, r0, r6 + ldr r1, _081636B0 + adds r0, r6, r1 + ldr r3, _081636B4 + ldr r2, [r3] + mov r1, sb + lsls r4, r1, #4 + adds r2, r4, r2 + ldrh r1, [r2] + ldrb r3, [r2, #0xc] + mov sl, r3 + ldr r3, [sp, #0x18] + str r3, [sp] + ldrb r2, [r2, #0xb] + str r2, [sp, #4] + mov r2, r8 + str r2, [sp, #8] + ldr r2, [sp, #0x14] + mov r3, sl + bl CreateMonWithEVSpreadNatureOTID + movs r1, #0 + add r0, sp, #0xc + strb r1, [r0] + movs r3, #0 + adds r7, #1 + mov sl, r7 + adds r7, r4, #0 +_08163638: + ldr r0, _081636B4 + ldr r1, [r0] + mov r2, sb + lsls r0, r2, #4 + adds r0, r0, r1 + lsls r1, r3, #1 + adds r0, #2 + adds r0, r0, r1 + ldrh r1, [r0] + ldr r2, _081636B0 + adds r0, r6, r2 + adds r2, r3, #0 + str r3, [sp, #0x1c] + bl SetMonMoveAvoidReturn + ldr r3, [sp, #0x1c] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #3 + bls _08163638 + movs r3, #0x64 + adds r4, r5, #0 + muls r4, r3, r4 + ldr r0, _081636B0 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x20 + add r2, sp, #0xc + bl SetMonData + ldr r1, _081636B4 + ldr r0, [r1] + adds r0, r7, r0 + ldrb r2, [r0, #0xa] + lsls r2, r2, #1 + ldr r0, _081636B8 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0xc + bl SetMonData + mov r2, sl + lsls r0, r2, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #2 + bls _081635EE +_08163696: + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081636A8: .4byte 0x03005AF0 +_081636AC: .4byte 0x03005FD8 +_081636B0: .4byte 0x020243E8 +_081636B4: .4byte 0x0203B958 +_081636B8: .4byte 0x085ADBF4 + thumb_func_end FillFactoryFrontierTrainerParty + + thumb_func_start FillFactoryTentTrainerParty +FillFactoryTentTrainerParty: @ 0x081636BC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp, #0x10] + ldr r0, _081637B8 + ldr r1, [r0] + ldrb r0, [r1, #0xa] + mov sb, r0 + ldrb r0, [r1, #0xb] + lsls r0, r0, #8 + mov r2, sb + orrs r2, r0 + ldrb r0, [r1, #0xc] + lsls r0, r0, #0x10 + orrs r2, r0 + ldrb r0, [r1, #0xd] + lsls r0, r0, #0x18 + orrs r2, r0 + mov sb, r2 + movs r7, #0 + mov r8, r7 +_081636F0: + ldr r1, _081637BC + mov r2, r8 + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r4, [r0] + ldr r5, [sp, #0x10] + add r5, r8 + movs r7, #0x64 + adds r6, r5, #0 + muls r6, r7, r6 + ldr r1, _081637C0 + adds r0, r6, r1 + ldr r7, _081637C4 + ldr r2, [r7] + lsls r4, r4, #4 + adds r2, r4, r2 + ldrh r1, [r2] + ldrb r3, [r2, #0xc] + movs r7, #0 + str r7, [sp] + ldrb r2, [r2, #0xb] + str r2, [sp, #4] + mov r2, sb + str r2, [sp, #8] + movs r2, #0x1e + bl CreateMonWithEVSpreadNatureOTID + movs r1, #0 + add r0, sp, #0xc + strb r1, [r0] + mov sl, r5 + mov r0, r8 + adds r0, #1 + str r0, [sp, #0x14] + mov r8, r4 + mov r5, r8 +_08163738: + ldr r1, _081637C4 + ldr r0, [r1] + adds r0, r5, r0 + lsls r4, r7, #1 + adds r0, #2 + adds r0, r0, r4 + ldrh r1, [r0] + ldr r2, _081637C0 + adds r0, r6, r2 + adds r2, r7, #0 + bl SetMonMoveAvoidReturn + ldr r1, _081637C4 + ldr r0, [r1] + adds r0, r5, r0 + adds r0, #2 + adds r0, r0, r4 + ldrh r0, [r0] + cmp r0, #0xda + bne _08163766 + movs r1, #0 + add r0, sp, #0xc + strb r1, [r0] +_08163766: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #3 + bls _08163738 + movs r2, #0x64 + mov r4, sl + muls r4, r2, r4 + ldr r7, _081637C0 + adds r4, r4, r7 + adds r0, r4, #0 + movs r1, #0x20 + add r2, sp, #0xc + bl SetMonData + ldr r1, _081637C4 + ldr r0, [r1] + add r0, r8 + ldrb r2, [r0, #0xa] + lsls r2, r2, #1 + ldr r0, _081637C8 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0xc + bl SetMonData + ldr r2, [sp, #0x14] + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + cmp r0, #2 + bls _081636F0 + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081637B8: .4byte 0x03005AF0 +_081637BC: .4byte 0x03005FD8 +_081637C0: .4byte 0x020243E8 +_081637C4: .4byte 0x0203B958 +_081637C8: .4byte 0x085ADBF4 + thumb_func_end FillFactoryTentTrainerParty + + thumb_func_start FrontierSpeechToString +FrontierSpeechToString: @ 0x081637CC + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #3 + movs r2, #2 + movs r3, #0x14 + bl sub_0811F2A4 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08163824 + ldr r5, _08163820 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #2 + movs r3, #3 + bl ConvertEasyChatWordsToString + ldrb r0, [r5] + movs r1, #1 + cmp r0, #0xfe + beq _08163802 + adds r2, r5, #0 +_081637F8: + adds r0, r1, r2 + ldrb r0, [r0] + adds r1, #1 + cmp r0, #0xfe + bne _081637F8 +_08163802: + ldr r2, _08163820 + adds r0, r1, r2 + ldrb r0, [r0] + adds r3, r2, #0 + cmp r0, #0xfe + beq _08163818 +_0816380E: + adds r1, #1 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0xfe + bne _0816380E +_08163818: + adds r1, r1, r3 + movs r0, #0xfa + strb r0, [r1] + b _08163830 + .align 2, 0 +_08163820: .4byte 0x02021C7C +_08163824: + ldr r0, _08163838 + adds r1, r4, #0 + movs r2, #3 + movs r3, #2 + bl ConvertEasyChatWordsToString +_08163830: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08163838: .4byte 0x02021C7C + thumb_func_end FrontierSpeechToString + + thumb_func_start sub_0816383C +sub_0816383C: @ 0x0816383C + push {lr} + bl SetFacilityPtrsGetLevel + ldr r0, _08163850 + ldrh r0, [r0] + cmp r0, #0 + beq _08163858 + ldr r0, _08163854 + b _0816385A + .align 2, 0 +_08163850: .4byte 0x02037282 +_08163854: .4byte 0x0203886C +_08163858: + ldr r0, _0816386C +_0816385A: + ldrh r3, [r0] + movs r0, #0xfa + lsls r0, r0, #1 + cmp r3, r0 + bne _08163878 + ldr r0, _08163870 + ldr r0, [r0] + ldr r1, _08163874 + b _081638AE + .align 2, 0 +_0816386C: .4byte 0x0203886A +_08163870: .4byte 0x03005AF0 +_08163874: .4byte 0x00000BFC +_08163878: + ldr r0, _08163894 + cmp r3, r0 + bhi _0816389C + ldr r2, _08163898 + movs r0, #0x34 + adds r1, r3, #0 + muls r1, r0, r1 + ldr r0, [r2] + adds r0, r0, r1 + adds r0, #0xc + bl FrontierSpeechToString + b _081638D0 + .align 2, 0 +_08163894: .4byte 0x0000012B +_08163898: .4byte 0x0203B954 +_0816389C: + ldr r0, _081638B8 + cmp r3, r0 + bhi _081638C4 + ldr r1, _081638BC + movs r0, #0xec + muls r0, r3, r0 + ldr r1, [r1] + adds r0, r0, r1 + ldr r1, _081638C0 +_081638AE: + adds r0, r0, r1 + bl FrontierSpeechToString + b _081638D0 + .align 2, 0 +_081638B8: .4byte 0x0000018F +_081638BC: .4byte 0x03005AF0 +_081638C0: .4byte 0xFFFEF2B8 +_081638C4: + adds r0, r3, #0 + adds r0, #0x70 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl CopyFriendsApprenticeChallengeText +_081638D0: + pop {r0} + bx r0 + thumb_func_end sub_0816383C + + thumb_func_start HandleSpecialTrainerBattleEnd +HandleSpecialTrainerBattleEnd: @ 0x081638D4 + push {r4, r5, r6, lr} + sub sp, #4 + bl RecordedBattle_SaveBattleOutcome + ldr r0, _081638F0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0xa + bhi _081639A0 + lsls r0, r0, #2 + ldr r1, _081638F4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081638F0: .4byte 0x02024118 +_081638F4: .4byte 0x081638F8 +_081638F8: @ jump table + .4byte _08163924 @ case 0 + .4byte _08163960 @ case 1 + .4byte _0816399C @ case 2 + .4byte _08163924 @ case 3 + .4byte _08163924 @ case 4 + .4byte _08163924 @ case 5 + .4byte _08163924 @ case 6 + .4byte _08163924 @ case 7 + .4byte _081639A0 @ case 8 + .4byte _08163924 @ case 9 + .4byte _08163924 @ case 10 +_08163924: + ldr r0, _08163948 + ldr r0, [r0] + ldr r2, _0816394C + adds r1, r0, r2 + ldr r2, [r1] + ldr r0, _08163950 + cmp r2, r0 + bhi _08163954 + adds r0, r2, #1 + str r0, [r1] + movs r1, #0x14 + bl __umodsi3 + cmp r0, #0 + bne _081639A0 + bl UpdateGymLeaderRematch + b _081639A0 + .align 2, 0 +_08163948: .4byte 0x03005AF0 +_0816394C: .4byte 0x00000EBC +_08163950: .4byte 0x00FFFFFE +_08163954: + ldr r0, _0816395C + str r0, [r1] + b _081639A0 + .align 2, 0 +_0816395C: .4byte 0x00FFFFFF +_08163960: + movs r5, #0 + ldr r6, _08163994 +_08163964: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + movs r0, #0x8e + lsls r0, r0, #2 + adds r1, r4, r0 + ldr r0, [r6] + adds r0, r0, r1 + movs r1, #0xc + bl GetMonData + mov r1, sp + strh r0, [r1] + ldr r0, _08163998 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0xc + mov r2, sp + bl SetMonData + adds r5, #1 + cmp r5, #5 + ble _08163964 + b _081639A0 + .align 2, 0 +_08163994: .4byte 0x03005AEC +_08163998: .4byte 0x02024190 +_0816399C: + bl CopyEReaderTrainerFarewellMessage +_081639A0: + ldr r0, _081639B0 + bl SetMainCallback2 + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081639B0: .4byte 0x08085B35 + thumb_func_end HandleSpecialTrainerBattleEnd + + thumb_func_start Task_StartBattleAfterTransition +Task_StartBattleAfterTransition: @ 0x081639B4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl IsBattleTransitionDone + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081639D8 + ldr r0, _081639E0 + ldr r1, _081639E4 + str r1, [r0, #8] + ldr r0, _081639E8 + bl SetMainCallback2 + adds r0, r4, #0 + bl DestroyTask +_081639D8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081639E0: .4byte 0x03002360 +_081639E4: .4byte 0x081638D5 +_081639E8: .4byte 0x080365B5 + thumb_func_end Task_StartBattleAfterTransition + + thumb_func_start DoSpecialTrainerBattle +DoSpecialTrainerBattle: @ 0x081639EC + push {r4, r5, r6, lr} + sub sp, #4 + ldr r0, _08163A0C + ldr r2, _08163A10 + ldrh r1, [r2] + adds r0, #0x26 + strb r1, [r0] + ldrh r0, [r2] + cmp r0, #0xa + bls _08163A02 + b _08163D90 +_08163A02: + lsls r0, r0, #2 + ldr r1, _08163A14 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08163A0C: .4byte 0x02024118 +_08163A10: .4byte 0x02037280 +_08163A14: .4byte 0x08163A18 +_08163A18: @ jump table + .4byte _08163A44 @ case 0 + .4byte _08163AE8 @ case 1 + .4byte _08163B38 @ case 2 + .4byte _08163B98 @ case 3 + .4byte _08163BEC @ case 4 + .4byte _08163C50 @ case 5 + .4byte _08163C9C @ case 6 + .4byte _08163CDC @ case 7 + .4byte _08163D54 @ case 8 + .4byte _08163D1C @ case 9 + .4byte _08163CF0 @ case 10 +_08163A44: + ldr r5, _08163A64 + movs r0, #0x84 + lsls r0, r0, #1 + str r0, [r5] + ldr r0, _08163A68 + bl VarGet + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #1 + beq _08163A7E + cmp r4, #1 + bgt _08163A6C + cmp r4, #0 + beq _08163A76 + b _08163ACE + .align 2, 0 +_08163A64: .4byte 0x02022C90 +_08163A68: .4byte 0x000040CE +_08163A6C: + cmp r4, #2 + beq _08163A8C + cmp r4, #3 + beq _08163AC0 + b _08163ACE +_08163A76: + movs r0, #3 + bl FillFrontierTrainerParty + b _08163ACE +_08163A7E: + movs r0, #4 + bl FillFrontierTrainerParty + ldr r0, [r5] + orrs r0, r4 + str r0, [r5] + b _08163ACE +_08163A8C: + movs r0, #2 + bl FillFrontierTrainersParties + ldr r1, _08163AB0 + ldr r0, _08163AB4 + ldr r0, [r0] + ldr r2, _08163AB8 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r1] + ldrh r0, [r1] + bl FillPartnerParty + ldr r0, [r5] + ldr r1, _08163ABC + orrs r0, r1 + str r0, [r5] + b _08163ACE + .align 2, 0 +_08163AB0: .4byte 0x0203886E +_08163AB4: .4byte 0x03005AF0 +_08163AB8: .4byte 0x00000CD6 +_08163ABC: .4byte 0x00408041 +_08163AC0: + ldr r0, [r5] + ldr r1, _08163AE0 + orrs r0, r1 + str r0, [r5] + movs r0, #2 + bl FillFrontierTrainersParties +_08163ACE: + ldr r0, _08163AE4 + movs r1, #1 + bl CreateTask + movs r0, #0 + bl PlayMapChosenOrBattleBGM + movs r0, #0 + b _08163D38 + .align 2, 0 +_08163AE0: .4byte 0x00800043 +_08163AE4: .4byte 0x081639B5 +_08163AE8: + movs r5, #0 + ldr r6, _08163B2C +_08163AEC: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _08163B30 + adds r0, r4, r0 + movs r1, #0xc + bl GetMonData + mov r1, sp + strh r0, [r1] + movs r0, #0x8e + lsls r0, r0, #2 + adds r4, r4, r0 + ldr r0, [r6] + adds r0, r0, r4 + movs r1, #0xc + mov r2, sp + bl SetMonData + adds r5, #1 + cmp r5, #5 + ble _08163AEC + ldr r0, _08163B34 + movs r1, #1 + bl CreateTask + movs r0, #0 + bl PlayMapChosenOrBattleBGM + movs r0, #0xc + b _08163D38 + .align 2, 0 +_08163B2C: .4byte 0x03005AEC +_08163B30: .4byte 0x02024190 +_08163B34: .4byte 0x081639B5 +_08163B38: + bl ZeroEnemyPartyMons + movs r5, #0 + ldr r4, _08163B80 +_08163B40: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _08163B84 + adds r0, r0, r1 + movs r1, #0x2c + adds r2, r5, #0 + muls r2, r1, r2 + movs r1, #0xc2 + lsls r1, r1, #4 + adds r2, r2, r1 + ldr r1, [r4] + adds r1, r1, r2 + bl CreateBattleTowerMon + adds r5, #1 + cmp r5, #2 + ble _08163B40 + ldr r1, _08163B88 + ldr r0, _08163B8C + str r0, [r1] + ldr r1, _08163B90 + movs r0, #0 + strh r0, [r1] + ldr r0, _08163B94 + movs r1, #1 + bl CreateTask + movs r0, #0 + bl PlayMapChosenOrBattleBGM + movs r0, #0xd + b _08163D38 + .align 2, 0 +_08163B80: .4byte 0x03005AF0 +_08163B84: .4byte 0x020243E8 +_08163B88: .4byte 0x02022C90 +_08163B8C: .4byte 0x00000808 +_08163B90: .4byte 0x0203886A +_08163B94: .4byte 0x081639B5 +_08163B98: + ldr r4, _08163BD4 + ldr r0, _08163BD8 + str r0, [r4] + ldr r0, _08163BDC + bl VarGet + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #1 + bne _08163BB2 + ldr r0, [r4] + orrs r0, r1 + str r0, [r4] +_08163BB2: + ldr r0, _08163BE0 + ldrh r1, [r0] + ldr r0, _08163BE4 + cmp r1, r0 + bne _08163BC2 + movs r0, #2 + bl FillFrontierTrainerParty +_08163BC2: + ldr r0, _08163BE8 + movs r1, #1 + bl CreateTask + movs r0, #0 + bl GetMonFlavorRelation + movs r0, #3 + b _08163D38 + .align 2, 0 +_08163BD4: .4byte 0x02022C90 +_08163BD8: .4byte 0x00010008 +_08163BDC: .4byte 0x000040CE +_08163BE0: .4byte 0x0203886A +_08163BE4: .4byte 0x000003FE +_08163BE8: .4byte 0x081639B5 +_08163BEC: + ldr r4, _08163C20 + ldr r0, _08163C24 + str r0, [r4] + ldr r0, _08163C28 + bl VarGet + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #1 + bne _08163C06 + ldr r0, [r4] + orrs r0, r1 + str r0, [r4] +_08163C06: + ldr r0, _08163C2C + ldr r0, [r0] + ldr r2, _08163C30 + adds r0, r0, r2 + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + cmp r0, #2 + beq _08163C34 + movs r0, #3 + bl FillFrontierTrainerParty + b _08163C3A + .align 2, 0 +_08163C20: .4byte 0x02022C90 +_08163C24: .4byte 0x00020008 +_08163C28: .4byte 0x000040CE +_08163C2C: .4byte 0x03005AF0 +_08163C30: .4byte 0x00000CA9 +_08163C34: + movs r0, #3 + bl FillTentTrainerParty +_08163C3A: + ldr r0, _08163C4C + movs r1, #1 + bl CreateTask + movs r0, #0 + bl PlayMapChosenOrBattleBGM + movs r0, #4 + b _08163D38 + .align 2, 0 +_08163C4C: .4byte 0x081639B5 +_08163C50: + ldr r1, _08163C70 + ldr r0, _08163C74 + str r0, [r1] + ldr r0, _08163C78 + ldr r0, [r0] + ldr r1, _08163C7C + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + cmp r0, #2 + beq _08163C80 + movs r0, #3 + bl FillFrontierTrainerParty + b _08163C86 + .align 2, 0 +_08163C70: .4byte 0x02022C90 +_08163C74: .4byte 0x00040008 +_08163C78: .4byte 0x03005AF0 +_08163C7C: .4byte 0x00000CA9 +_08163C80: + movs r0, #3 + bl FillTentTrainerParty +_08163C86: + ldr r0, _08163C98 + movs r1, #1 + bl CreateTask + movs r0, #0 + bl PlayMapChosenOrBattleBGM + movs r0, #5 + b _08163D38 + .align 2, 0 +_08163C98: .4byte 0x081639B5 +_08163C9C: + ldr r4, _08163CCC + ldr r0, _08163CD0 + str r0, [r4] + ldr r0, _08163CD4 + bl VarGet + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #1 + bne _08163CB6 + ldr r0, [r4] + orrs r0, r1 + str r0, [r4] +_08163CB6: + bl FillFactoryTrainerParty + ldr r0, _08163CD8 + movs r1, #1 + bl CreateTask + movs r0, #0 + bl PlayMapChosenOrBattleBGM + movs r0, #6 + b _08163D38 + .align 2, 0 +_08163CCC: .4byte 0x02022C90 +_08163CD0: .4byte 0x00080008 +_08163CD4: .4byte 0x000040CE +_08163CD8: .4byte 0x081639B5 +_08163CDC: + ldr r1, _08163CEC + movs r0, #0x84 + lsls r0, r0, #1 + str r0, [r1] + movs r0, #3 + bl FillFrontierTrainerParty + b _08163D28 + .align 2, 0 +_08163CEC: .4byte 0x02022C90 +_08163CF0: + ldr r1, _08163D10 + ldr r0, _08163D14 + str r0, [r1] + movs r0, #3 + bl FillFrontierTrainerParty + ldr r0, _08163D18 + movs r1, #1 + bl CreateTask + movs r0, #0 + bl PlayMapChosenOrBattleBGM + movs r0, #0xa + b _08163D38 + .align 2, 0 +_08163D10: .4byte 0x02022C90 +_08163D14: .4byte 0x00200008 +_08163D18: .4byte 0x081639B5 +_08163D1C: + ldr r1, _08163D48 + ldr r0, _08163D4C + str r0, [r1] + movs r0, #1 + bl FillFrontierTrainersParties +_08163D28: + ldr r0, _08163D50 + movs r1, #1 + bl CreateTask + movs r0, #0 + bl PlayMapChosenOrBattleBGM + movs r0, #7 +_08163D38: + bl sub_080B08F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl BattleTransition_StartOnField + b _08163D90 + .align 2, 0 +_08163D48: .4byte 0x02022C90 +_08163D4C: .4byte 0x00008109 +_08163D50: .4byte 0x081639B5 +_08163D54: + ldr r1, _08163D98 + ldr r0, _08163D9C + str r0, [r1] + ldr r5, _08163DA0 + adds r0, r5, #0 + bl FillPartnerParty + ldr r4, _08163DA4 + movs r0, #0 + strb r0, [r4] + ldr r0, _08163DA8 + bl BattleSetup_ConfigureTrainerBattle + movs r0, #1 + strb r0, [r4] + ldr r0, _08163DAC + bl BattleSetup_ConfigureTrainerBattle + ldr r0, _08163DB0 + strh r5, [r0] + ldr r0, _08163DB4 + movs r1, #1 + bl CreateTask + movs r0, #0 + bl PlayMapChosenOrBattleBGM + movs r0, #0x12 + bl BattleTransition_StartOnField +_08163D90: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08163D98: .4byte 0x02022C90 +_08163D9C: .4byte 0x00408049 +_08163DA0: .4byte 0x00000C03 +_08163DA4: .4byte 0x0203889C +_08163DA8: .4byte 0x0820DA82 +_08163DAC: .4byte 0x0820DA91 +_08163DB0: .4byte 0x0203886E +_08163DB4: .4byte 0x081639B5 + thumb_func_end DoSpecialTrainerBattle + + thumb_func_start SaveCurrentWinStreak +SaveCurrentWinStreak: @ 0x08163DB8 + push {r4, r5, r6, lr} + ldr r6, _08163E00 + ldr r0, [r6] + ldr r1, _08163E04 + adds r0, r0, r1 + ldrb r5, [r0] + lsls r5, r5, #0x1e + lsrs r5, r5, #0x1e + ldr r0, _08163E08 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + adds r1, r4, #0 + bl GetCurrentBattleTowerWinStreak + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, [r6] + lsls r5, r5, #1 + lsls r4, r4, #2 + adds r5, r5, r4 + movs r1, #0xce + lsls r1, r1, #4 + adds r0, r0, r1 + adds r1, r0, r5 + ldrh r0, [r1] + cmp r0, r2 + bhs _08163DF8 + strh r2, [r1] +_08163DF8: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08163E00: .4byte 0x03005AF0 +_08163E04: .4byte 0x00000CA9 +_08163E08: .4byte 0x000040CE + thumb_func_end SaveCurrentWinStreak + + thumb_func_start sub_08163E0C +sub_08163E0C: @ 0x08163E0C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r4, _08163E54 + ldr r0, [r4] + ldr r1, _08163E58 + adds r5, r0, r1 + adds r0, r5, #0 + bl ClearBattleTowerRecord + ldr r0, [r4] + ldr r2, _08163E5C + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r6, r0, #0x1e + ldr r0, _08163E60 + bl VarGet + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r2, [r4] + ldrb r0, [r2, #8] + cmp r0, #0 + beq _08163E68 + ldr r4, _08163E64 + ldrb r0, [r2, #0xa] + ldrb r1, [r2, #0xb] + adds r0, r0, r1 + ldrb r1, [r2, #0xc] + adds r0, r0, r1 + ldrb r1, [r2, #0xd] + adds r0, r0, r1 + movs r1, #0x14 + b _08163E7A + .align 2, 0 +_08163E54: .4byte 0x03005AF0 +_08163E58: .4byte 0x0000064C +_08163E5C: .4byte 0x00000CA9 +_08163E60: .4byte 0x000040CE +_08163E64: .4byte 0x085BBE3E +_08163E68: + ldr r4, _08163F44 + ldrb r0, [r2, #0xa] + ldrb r1, [r2, #0xb] + adds r0, r0, r1 + ldrb r1, [r2, #0xc] + adds r0, r0, r1 + ldrb r1, [r2, #0xd] + adds r0, r0, r1 + movs r1, #0x1e +_08163E7A: + bl __umodsi3 + adds r0, r0, r4 + ldrb r0, [r0] + strb r6, [r5] + strb r0, [r5, #1] + adds r0, r5, #0 + adds r0, #0xc + ldr r4, _08163F48 + ldr r1, [r4] + adds r1, #0xa + bl CopyTrainerId + adds r0, r5, #4 + ldr r1, [r4] + bl StringCopy7 + adds r0, r6, #0 + adds r1, r7, #0 + bl GetCurrentBattleTowerWinStreak + strh r0, [r5, #2] + movs r4, #0 + movs r2, #0x10 + adds r2, r2, r5 + mov ip, r2 + movs r7, #0x1c + adds r7, r7, r5 + mov sb, r7 + adds r6, r5, #0 + adds r6, #0x28 + movs r0, #0xe4 + adds r0, r0, r5 + mov r8, r0 +_08163EBE: + lsls r2, r4, #1 + mov r1, ip + adds r3, r1, r2 + ldr r0, _08163F4C + ldr r1, [r0] + ldr r7, _08163F50 + adds r0, r1, r7 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r3] + mov r0, sb + adds r3, r0, r2 + adds r7, #0xc + adds r0, r1, r7 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r3] + adds r3, r6, r2 + ldr r0, _08163F54 + adds r1, r1, r0 + adds r1, r1, r2 + ldrh r0, [r1] + strh r0, [r3] + adds r4, #1 + cmp r4, #5 + ble _08163EBE + movs r4, #0 +_08163EF4: + ldr r6, _08163F48 + ldr r0, [r6] + lsls r1, r4, #1 + ldr r2, _08163F58 + adds r0, r0, r2 + adds r1, r0, r1 + ldrh r0, [r1] + cmp r0, #0 + beq _08163F1C + adds r1, r0, #0 + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08163F5C + adds r0, r0, r1 + movs r1, #0x2c + muls r1, r4, r1 + adds r1, #0x34 + adds r1, r5, r1 + bl sub_0806823C +_08163F1C: + adds r4, #1 + cmp r4, #3 + ble _08163EF4 + ldr r0, _08163F60 + ldrb r0, [r0] + mov r7, r8 + strb r0, [r7] + ldr r0, [r6] + ldr r1, _08163F64 + adds r0, r0, r1 + bl CalcEmeraldBattleTowerChecksum + bl SaveCurrentWinStreak + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08163F44: .4byte 0x085BBE20 +_08163F48: .4byte 0x03005AF0 +_08163F4C: .4byte 0x03005AEC +_08163F50: .4byte 0x00002BBC +_08163F54: .4byte 0x00002BD4 +_08163F58: .4byte 0x00000CAA +_08163F5C: .4byte 0x0202412C +_08163F60: .4byte 0x0829BDA5 +_08163F64: .4byte 0x0000064C + thumb_func_end sub_08163E0C + + thumb_func_start SaveBattleTowerProgress +SaveBattleTowerProgress: @ 0x08163F68 + push {r4, r5, lr} + ldr r5, _08163FE8 + ldr r0, [r5] + ldr r1, _08163FEC + adds r0, r0, r1 + ldrb r4, [r0] + lsls r4, r4, #0x1e + lsrs r4, r4, #0x1e + ldr r0, _08163FF0 + bl VarGet + lsls r0, r0, #0x10 + ldr r5, [r5] + lsls r4, r4, #1 + lsrs r0, r0, #0xe + adds r4, r4, r0 + movs r2, #0xce + lsls r2, r2, #4 + adds r0, r5, r2 + adds r0, r0, r4 + ldrh r0, [r0] + movs r1, #7 + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r0, _08163FF4 + ldrh r0, [r0] + cmp r0, #0 + bne _08163FB6 + cmp r1, #1 + bgt _08163FB2 + ldr r1, _08163FF8 + adds r0, r5, r1 + ldrh r0, [r0] + cmp r0, #0 + beq _08163FB6 +_08163FB2: + bl sub_08163E0C +_08163FB6: + ldr r4, _08163FE8 + ldr r0, [r4] + ldr r1, _08163FF4 + ldrh r1, [r1] + ldr r2, _08163FFC + adds r0, r0, r2 + strb r1, [r0] + movs r0, #0x80 + lsls r0, r0, #7 + movs r1, #0 + bl VarSet + ldr r1, [r4] + ldr r0, _08163FEC + adds r1, r1, r0 + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + bl sub_081A482C + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08163FE8: .4byte 0x03005AF0 +_08163FEC: .4byte 0x00000CA9 +_08163FF0: .4byte 0x000040CE +_08163FF4: .4byte 0x02037282 +_08163FF8: .4byte 0x00000CB2 +_08163FFC: .4byte 0x00000CA8 + thumb_func_end SaveBattleTowerProgress + + thumb_func_start SpriteCB_Null6 +SpriteCB_Null6: @ 0x08164000 + bx lr + .align 2, 0 + thumb_func_end SpriteCB_Null6 + + thumb_func_start GetEreaderTrainerFrontSpriteId +GetEreaderTrainerFrontSpriteId: @ 0x08164004 + bx lr + .align 2, 0 + thumb_func_end GetEreaderTrainerFrontSpriteId + + thumb_func_start sub_08164008 +sub_08164008: @ 0x08164008 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + ldr r4, _081640A0 + adds r0, r4, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + adds r4, #0x64 + adds r0, r4, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r6, #0 + movs r2, #0 + ldr r0, _081640A4 + ldr r1, [r0] + ldr r0, _081640A8 + adds r5, r5, r0 + lsls r0, r5, #4 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r1, #0xe0 + adds r0, r0, r1 + mov r3, sp +_0816404A: + ldrh r1, [r0] + cmp r1, r7 + beq _08164058 + cmp r1, r4 + beq _08164058 + stm r3!, {r2} + adds r6, #1 +_08164058: + adds r0, #0xc + adds r2, #1 + cmp r2, #2 + ble _0816404A + bl Random + ldr r4, _081640AC + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r6, #0 + bl __modsi3 + lsls r0, r0, #2 + add r0, sp + ldr r0, [r0] + strh r0, [r4] +_08164078: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r6, #0 + bl __modsi3 + lsls r0, r0, #2 + add r0, sp + ldr r0, [r0] + strh r0, [r4, #2] + ldrh r1, [r4] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r1, r0 + beq _08164078 + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081640A0: .4byte 0x02024190 +_081640A4: .4byte 0x03005AF0 +_081640A8: .4byte 0xFFFFFE70 +_081640AC: .4byte 0x03005FD8 + thumb_func_end sub_08164008 + + thumb_func_start sub_081640B0 +sub_081640B0: @ 0x081640B0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + ldr r6, _081641B0 + ldr r0, [r6] + ldr r1, _081641B4 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + str r0, [sp, #0xc] + ldr r4, _081641B8 + adds r0, r4, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x10] + adds r4, #0x64 + adds r0, r4, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x14] + movs r3, #0 + mov r8, r3 + movs r7, #0 + adds r2, r6, #0 + ldr r0, _081641BC + adds r5, r5, r0 + ldr r6, _081641C0 + mov sl, sp + movs r0, #0xec + adds r1, r5, #0 + muls r1, r0, r1 + mov sb, r1 +_0816410E: + ldr r1, [r2] + movs r0, #0x2c + muls r0, r7, r0 + mov r3, sb + adds r5, r0, r3 + adds r1, r1, r5 + adds r0, r1, r6 + ldrh r0, [r0] + ldr r3, [sp, #0x10] + cmp r0, r3 + beq _08164162 + ldr r3, [sp, #0x14] + cmp r0, r3 + beq _08164162 + movs r0, #0xef + lsls r0, r0, #3 + adds r4, r1, r0 + ldr r1, [sp, #0xc] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + str r2, [sp, #0x18] + bl GetFrontierEnemyMonLevel + ldrb r1, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, [sp, #0x18] + cmp r1, r0 + bhi _08164162 + ldr r0, [r2] + adds r0, r0, r5 + adds r0, r0, r6 + ldrh r0, [r0] + cmp r0, #0 + beq _08164162 + mov r3, sl + adds r3, #4 + mov sl, r3 + subs r3, #4 + stm r3!, {r7} + movs r0, #1 + add r8, r0 +_08164162: + adds r7, #1 + cmp r7, #3 + ble _0816410E + bl Random + ldr r4, _081641C4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r1, r8 + bl __modsi3 + lsls r0, r0, #2 + add r0, sp + ldr r0, [r0] + strh r0, [r4, #4] +_08164180: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r1, r8 + bl __modsi3 + lsls r0, r0, #2 + add r0, sp + ldr r0, [r0] + strh r0, [r4, #6] + ldrh r1, [r4, #4] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r1, r0 + beq _08164180 + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081641B0: .4byte 0x03005AF0 +_081641B4: .4byte 0x00000CA9 +_081641B8: .4byte 0x02024190 +_081641BC: .4byte 0xFFFFFED4 +_081641C0: .4byte 0x0000076C +_081641C4: .4byte 0x03005FD8 + thumb_func_end sub_081640B0 + + thumb_func_start sub_081641C8 +sub_081641C8: @ 0x081641C8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x4c + ldr r0, _08164530 + ldr r0, [r0] + movs r1, #0xc7 + lsls r1, r1, #4 + adds r1, r0, r1 + str r1, [sp, #0x24] + ldr r5, _08164534 + ldr r0, [r5] + ldr r2, _08164538 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + str r0, [sp, #0x14] + ldr r0, _0816453C + bl VarGet + lsls r0, r0, #0x10 + ldr r1, [r5] + ldr r3, [sp, #0x14] + lsls r2, r3, #1 + lsrs r0, r0, #0xe + adds r2, r2, r0 + movs r4, #0xce + lsls r4, r4, #4 + adds r1, r1, r4 + adds r1, r1, r2 + ldrh r0, [r1] + movs r1, #7 + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x18] + ldr r4, _08164540 + adds r0, r4, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + str r0, [sp, #0x1c] + adds r4, #0x64 + adds r0, r4, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + str r0, [sp, #0x20] + bl SetFacilityPtrsGetLevel + movs r7, #0 + ldr r0, [sp, #0x18] + lsls r0, r0, #0x18 + mov sl, r0 +_08164240: + lsls r6, r7, #1 +_08164242: + mov r1, sl + lsrs r0, r1, #0x18 + movs r1, #0 + bl sub_0816245C + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + movs r2, #0 + mov sb, r2 + cmp sb, r7 + bge _08164290 + ldr r0, [r5] + ldr r3, _08164544 + adds r1, r0, r3 + ldrh r0, [r1] + cmp r0, r8 + beq _08164290 + ldr r0, _08164548 + ldr r2, [r0] + movs r4, #0x34 + mov r0, r8 + muls r0, r4, r0 + adds r0, r0, r2 + ldrb r3, [r0] +_08164274: + ldrh r0, [r1] + muls r0, r4, r0 + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, r3 + beq _08164290 + adds r1, #2 + movs r0, #1 + add sb, r0 + cmp sb, r7 + bge _08164290 + ldrh r0, [r1] + cmp r0, r8 + bne _08164274 +_08164290: + cmp sb, r7 + bne _08164242 + ldr r0, [r5] + ldr r1, _08164544 + adds r0, r0, r1 + adds r0, r0, r6 + mov r2, r8 + strh r2, [r0] + mov r7, sb + adds r7, #1 + cmp r7, #5 + ble _08164240 + movs r3, #8 + mov sl, r3 + movs r4, #0 + mov sb, r4 + ldr r0, [sp, #0x24] + str r0, [sp, #0x40] +_081642B4: + ldr r1, _08164534 + ldr r0, [r1] + mov r2, sb + lsls r1, r2, #1 + ldr r3, _08164544 + adds r0, r0, r3 + adds r0, r0, r1 + ldrh r0, [r0] + mov r8, r0 + bl GetBattleFacilityTrainerGfxId + ldr r4, [sp, #0x40] + strb r0, [r4, #0x19] + movs r7, #0 +_081642D0: + adds r0, r7, #1 + str r0, [sp, #0x30] + mov r1, sl + lsls r1, r1, #1 + str r1, [sp, #0x38] + mov r2, sl + adds r2, #1 + str r2, [sp, #0x34] + mov r0, sl + subs r0, #1 + lsls r0, r0, #1 + str r0, [sp, #0x28] +_081642E8: + mov r0, r8 + bl RandomizeFacilityTrainerMonSet + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + movs r0, #1 + ands r0, r7 + cmp r0, #0 + beq _0816431C + ldr r3, _08164534 + ldr r0, [r3] + ldr r4, _08164544 + adds r0, r0, r4 + ldr r1, [sp, #0x28] + adds r0, r0, r1 + ldrh r2, [r0] + ldr r0, _0816454C + ldr r0, [r0] + lsls r2, r2, #4 + adds r2, r2, r0 + lsls r1, r6, #4 + adds r1, r1, r0 + ldrb r0, [r2, #0xa] + ldrb r1, [r1, #0xa] + cmp r0, r1 + beq _081642E8 +_0816431C: + movs r5, #8 + cmp r5, sl + bge _08164358 + ldr r2, _08164534 + ldr r0, [r2] + ldr r1, _0816454C + ldr r3, [r1] + lsls r1, r6, #4 + adds r1, r1, r3 + ldr r4, _08164550 + adds r2, r0, r4 + ldrh r0, [r1] + mov ip, r0 +_08164336: + ldrh r0, [r2] + lsls r0, r0, #4 + adds r0, r0, r3 + ldrh r0, [r0] + cmp r0, ip + beq _08164358 + ldrh r0, [r1] + ldr r4, [sp, #0x1c] + cmp r4, r0 + beq _08164358 + ldr r4, [sp, #0x20] + cmp r4, r0 + beq _08164358 + adds r2, #2 + adds r5, #1 + cmp r5, sl + blt _08164336 +_08164358: + cmp r5, sl + bne _081642E8 + ldr r1, _08164534 + ldr r0, [r1] + ldr r2, _08164544 + adds r0, r0, r2 + ldr r3, [sp, #0x38] + adds r0, r0, r3 + strh r6, [r0] + ldr r4, [sp, #0x34] + mov sl, r4 + ldr r7, [sp, #0x30] + cmp r7, #1 + ble _081642D0 + ldr r0, [sp, #0x40] + adds r0, #0x18 + str r0, [sp, #0x40] + movs r1, #1 + add sb, r1 + mov r2, sb + cmp r2, #5 + ble _081642B4 + movs r3, #0 + mov sl, r3 + bl ValidateApprenticesChecksums + movs r4, #0 + mov sb, r4 + ldr r0, _08164534 + ldr r0, [r0] + movs r2, #0 + adds r6, r0, #0 + adds r6, #0xdc + mov r8, sp +_0816439C: + ldrb r0, [r6] + lsls r4, r0, #0x19 + lsrs r0, r4, #0x1e + cmp r0, #0 + beq _08164408 + ldr r1, _08164554 + ldrb r0, [r6, #1] + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #7 + str r2, [sp, #0x44] + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, [sp, #0x44] + ldr r1, [sp, #0x18] + cmp r0, r1 + bgt _08164408 + lsrs r0, r4, #0x1e + subs r0, #1 + ldr r3, [sp, #0x14] + cmp r0, r3 + bne _08164408 + movs r5, #0 + ldr r0, _08164534 + ldr r0, [r0] + adds r0, #0xe0 + adds r1, r2, r0 + movs r7, #2 +_081643D8: + ldrh r0, [r1] + ldr r4, [sp, #0x1c] + cmp r4, r0 + beq _081643E8 + ldr r3, [sp, #0x20] + cmp r3, r0 + beq _081643E8 + adds r5, #1 +_081643E8: + adds r1, #0xc + subs r7, #1 + cmp r7, #0 + bge _081643D8 + cmp r5, #2 + ble _08164408 + movs r0, #0xc8 + lsls r0, r0, #1 + add r0, sb + mov r4, r8 + adds r4, #4 + mov r8, r4 + subs r4, #4 + stm r4!, {r0} + movs r0, #1 + add sl, r0 +_08164408: + adds r2, #0x44 + adds r6, #0x44 + movs r1, #1 + add sb, r1 + mov r3, sb + cmp r3, #3 + ble _0816439C + mov r4, sl + cmp r4, #0 + beq _0816445A + bl Random + ldr r6, _08164534 + ldr r4, [r6] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r1, sl + bl __modsi3 + lsls r0, r0, #2 + add r0, sp + ldr r0, [r0] + movs r5, #0xcc + lsls r5, r5, #4 + adds r4, r4, r5 + strh r0, [r4] + ldrh r0, [r4] + bl GetBattleFacilityTrainerGfxId + ldr r1, [sp, #0x24] + adds r1, #0xa8 + strb r0, [r1, #1] + movs r0, #0xd8 + lsls r0, r0, #2 + bl FlagClear + ldr r0, [r6] + adds r0, r0, r5 + ldrh r0, [r0] + bl sub_08164008 +_0816445A: + movs r0, #0 + mov sl, r0 + mov sb, r0 + mov r1, sp + str r1, [sp, #0x3c] +_08164464: + ldr r0, _08164534 + movs r2, #0xec + mov r1, sb + muls r1, r2, r1 + movs r3, #0xe7 + lsls r3, r3, #3 + adds r1, r1, r3 + ldr r0, [r0] + movs r2, #0 + movs r3, #0 + movs r7, #0 + mov r4, sb + adds r4, #1 + str r4, [sp, #0x2c] + adds r1, r0, r1 +_08164482: + ldm r1!, {r0} + orrs r2, r0 + adds r3, r3, r0 + adds r7, #1 + cmp r7, #0x39 + bls _08164482 + ldr r0, _08164534 + ldr r5, [r0] + movs r1, #0xec + mov r6, sb + muls r6, r1, r6 + adds r4, r5, r6 + ldr r1, _08164558 + adds r0, r4, r1 + ldrh r0, [r0] + movs r1, #7 + str r2, [sp, #0x44] + str r3, [sp, #0x48] + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r2, [sp, #0x44] + ldr r3, [sp, #0x48] + ldr r1, [sp, #0x18] + cmp r0, r1 + bgt _0816457E + movs r1, #0xe7 + lsls r1, r1, #3 + adds r0, r4, r1 + ldrb r0, [r0] + ldr r4, [sp, #0x14] + cmp r0, r4 + bne _0816457E + cmp r2, #0 + beq _0816457E + adds r1, #0xe8 + adds r0, r5, r1 + adds r0, r0, r6 + ldr r0, [r0] + cmp r0, r3 + bne _0816457E + movs r5, #0 + movs r7, #0 + ldr r2, _08164534 + mov r8, r2 + ldr r3, _0816455C +_081644E0: + mov r4, r8 + ldr r2, [r4] + movs r0, #0x2c + adds r1, r7, #0 + muls r1, r0, r1 + movs r4, #0xec + mov r0, sb + muls r0, r4, r0 + adds r6, r1, r0 + adds r2, r2, r6 + adds r0, r2, r3 + ldrh r0, [r0] + ldr r1, [sp, #0x1c] + cmp r1, r0 + beq _08164564 + ldr r4, [sp, #0x20] + cmp r4, r0 + beq _08164564 + movs r0, #0xef + lsls r0, r0, #3 + adds r4, r2, r0 + ldr r1, [sp, #0x14] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + str r3, [sp, #0x48] + bl GetFrontierEnemyMonLevel + ldrb r1, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, [sp, #0x48] + cmp r1, r0 + bhi _08164564 + mov r2, r8 + ldr r0, [r2] + adds r0, r0, r6 + adds r0, r0, r3 + ldrh r0, [r0] + cmp r0, #0 + b _08164560 + .align 2, 0 +_08164530: .4byte 0x03005AEC +_08164534: .4byte 0x03005AF0 +_08164538: .4byte 0x00000CA9 +_0816453C: .4byte 0x000040CE +_08164540: .4byte 0x02024190 +_08164544: .4byte 0x00000CB4 +_08164548: .4byte 0x0203B954 +_0816454C: .4byte 0x0203B958 +_08164550: .4byte 0x00000CC4 +_08164554: .4byte 0x085BE930 +_08164558: .4byte 0x0000073A +_0816455C: .4byte 0x0000076C +_08164560: + beq _08164564 + adds r5, #1 +_08164564: + adds r7, #1 + cmp r7, #3 + ble _081644E0 + cmp r5, #1 + ble _0816457E + movs r0, #0x96 + lsls r0, r0, #1 + add r0, sb + ldr r3, [sp, #0x3c] + stm r3!, {r0} + str r3, [sp, #0x3c] + movs r4, #1 + add sl, r4 +_0816457E: + ldr r0, [sp, #0x2c] + mov sb, r0 + cmp r0, #4 + bgt _08164588 + b _08164464 +_08164588: + mov r1, sl + cmp r1, #0 + beq _081645C8 + bl Random + ldr r6, _081645D8 + ldr r4, [r6] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r1, sl + bl __modsi3 + lsls r0, r0, #2 + add r0, sp + ldr r0, [r0] + ldr r5, _081645DC + adds r4, r4, r5 + strh r0, [r4] + ldrh r0, [r4] + bl GetBattleFacilityTrainerGfxId + ldr r1, [sp, #0x24] + adds r1, #0xc0 + strb r0, [r1, #1] + ldr r0, _081645E0 + bl FlagClear + ldr r0, [r6] + adds r0, r0, r5 + ldrh r0, [r0] + bl sub_081640B0 +_081645C8: + add sp, #0x4c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081645D8: .4byte 0x03005AF0 +_081645DC: .4byte 0x00000CC2 +_081645E0: .4byte 0x00000361 + thumb_func_end sub_081641C8 + + thumb_func_start sub_081645E4 +sub_081645E4: @ 0x081645E4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + movs r7, #0 + movs r6, #0 + bl SetFacilityPtrsGetLevel + movs r0, #0xfa + lsls r0, r0, #1 + cmp r5, r0 + beq _081646CC + subs r0, #0xc9 + cmp r5, r0 + bhi _0816461C + ldr r0, _08164618 + ldr r1, [r0] + lsls r0, r4, #4 + adds r0, r0, r1 + ldrh r7, [r0, #2] + ldrh r6, [r0] + b _081646CC + .align 2, 0 +_08164618: .4byte 0x0203B958 +_0816461C: + ldr r0, _08164654 + cmp r5, r0 + bhi _0816466C + ldr r0, _08164658 + ldr r3, [r0] + ldr r1, _0816465C + ldr r0, _08164660 + ldrh r0, [r0] + adds r0, #1 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x2c + muls r1, r0, r1 + ldr r0, _08164664 + adds r2, r5, r0 + movs r0, #0xec + muls r0, r2, r0 + adds r1, r1, r0 + adds r3, r3, r1 + movs r1, #0xee + lsls r1, r1, #3 + adds r0, r3, r1 + ldrh r7, [r0] + ldr r2, _08164668 + adds r3, r3, r2 + ldrh r6, [r3] + b _081646CC + .align 2, 0 +_08164654: .4byte 0x0000018F +_08164658: .4byte 0x03005AF0 +_0816465C: .4byte 0x03005FD8 +_08164660: .4byte 0x02037282 +_08164664: .4byte 0xFFFFFED4 +_08164668: .4byte 0x0000076C +_0816466C: + ldr r4, _081646F4 + ldr r3, [r4] + ldr r1, _081646F8 + ldr r0, _081646FC + ldrh r0, [r0] + subs r0, #1 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r2, _08164700 + adds r1, r5, r2 + lsls r2, r1, #4 + adds r2, r2, r1 + lsls r2, r2, #2 + adds r0, r0, r2 + adds r3, r3, r0 + adds r0, r3, #0 + adds r0, #0xe2 + ldrh r7, [r0] + adds r3, #0xe0 + ldrh r6, [r3] + movs r3, #0 + ldr r0, _08164704 + mov sb, r0 + mov r8, sb + mov ip, r4 + adds r5, r2, #0 + movs r4, #0x8a + lsls r4, r4, #1 +_081646AC: + mov r1, r8 + adds r2, r3, r1 + mov r1, ip + ldr r0, [r1] + adds r1, r3, r5 + adds r0, r0, r4 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r2] + adds r3, #1 + cmp r3, #6 + ble _081646AC + mov r2, sb + adds r1, r3, r2 + movs r0, #0xff + strb r0, [r1] +_081646CC: + ldr r0, _08164708 + lsls r1, r7, #3 + ldr r2, _0816470C + adds r1, r1, r2 + bl StringCopy + ldr r0, _08164710 + lsls r1, r6, #1 + adds r1, r1, r6 + lsls r1, r1, #1 + ldr r2, _08164714 + adds r1, r1, r2 + bl StringCopy + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081646F4: .4byte 0x03005AF0 +_081646F8: .4byte 0x03005FD8 +_081646FC: .4byte 0x02037282 +_08164700: .4byte 0xFFFFFE70 +_08164704: .4byte 0x02021C68 +_08164708: .4byte 0x02021C40 +_0816470C: .4byte 0x082EACC4 +_08164710: .4byte 0x02021C54 +_08164714: .4byte 0x082EA31C + thumb_func_end sub_081645E4 + + thumb_func_start sub_08164718 +sub_08164718: @ 0x08164718 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + bl SetFacilityPtrsGetLevel + bl GetCurrentFacilityWinStreak + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #7 + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + ldr r0, _0816475C + ldrh r0, [r0] + subs r5, r0, #2 + ldr r0, _08164760 + ldr r0, [r0] + lsls r1, r5, #1 + ldr r2, _08164764 + adds r0, r0, r2 + adds r0, r0, r1 + ldrh r7, [r0] + movs r3, #0 + str r3, [sp] + ldr r4, _08164768 + lsls r6, r7, #0x10 + b _08164774 + .align 2, 0 +_0816475C: .4byte 0x02037292 +_08164760: .4byte 0x03005AF0 +_08164764: .4byte 0x00000CB4 +_08164768: .4byte 0x085BC444 +_0816476C: + adds r4, #8 + ldr r0, [sp] + adds r0, #1 + str r0, [sp] +_08164774: + ldr r1, [sp] + cmp r1, #0x31 + bhi _0816478A + lsrs r0, r6, #0x10 + bl GetFrontierTrainerFacilityClass + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, [r4] + cmp r1, r0 + bne _0816476C +_0816478A: + ldr r0, _081647A0 + ldrh r0, [r0] + cmp r0, #4 + bls _08164794 + b _081649A2 +_08164794: + lsls r0, r0, #2 + ldr r1, _081647A4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081647A0: .4byte 0x02037282 +_081647A4: .4byte 0x081647A8 +_081647A8: @ jump table + .4byte _081647BC @ case 0 + .4byte _08164864 @ case 1 + .4byte _0816487C @ case 2 + .4byte _0816489C @ case 3 + .4byte _081649A2 @ case 4 +_081647BC: + movs r0, #0xfa + lsls r0, r0, #1 + cmp r7, r0 + bne _081647C6 + b _08164A34 +_081647C6: + subs r0, #0xc9 + cmp r7, r0 + ble _081647D2 + ldr r0, _081647DC + cmp r7, r0 + bgt _081647E4 +_081647D2: + ldr r0, _081647E0 + adds r1, r7, #0 + bl GetFrontierTrainerName + b _081649A2 + .align 2, 0 +_081647DC: .4byte 0x0000018F +_081647E0: .4byte 0x02021C40 +_081647E4: + movs r3, #0 + ldr r6, _08164850 + lsls r2, r7, #0x10 + str r2, [sp, #4] + ldr r4, _08164854 + mov sl, r4 + ldr r5, _08164858 + mov ip, r5 + mov sb, sl + mov r8, r6 + ldr r0, _0816485C + adds r1, r7, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r4, r0, #2 + movs r5, #0x8a + lsls r5, r5, #1 +_08164806: + mov r1, sb + adds r2, r3, r1 + mov r1, r8 + ldr r0, [r1] + adds r1, r3, r4 + adds r0, r0, r5 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r2] + adds r3, #1 + cmp r3, #6 + ble _08164806 + mov r2, sl + adds r1, r3, r2 + movs r0, #0xff + strb r0, [r1] + ldr r1, [r6] + ldr r3, _0816485C + adds r2, r7, r3 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r1, r1, r0 + adds r1, #0xde + ldrb r1, [r1] + mov r0, ip + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r0, _08164860 + ldr r4, [sp, #4] + lsrs r1, r4, #0x10 + bl GetFrontierTrainerName + b _081649A2 + .align 2, 0 +_08164850: .4byte 0x03005AF0 +_08164854: .4byte 0x02021C40 +_08164858: .4byte 0x02021C54 +_0816485C: .4byte 0xFFFFFE70 +_08164860: .4byte 0x02021C68 +_08164864: + ldr r0, _08164874 + ldr r1, [r0] + lsls r0, r5, #2 + adds r1, r1, r0 + ldr r5, _08164878 + adds r1, r1, r5 + b _08164888 + .align 2, 0 +_08164874: .4byte 0x03005AF0 +_08164878: .4byte 0x00000CC4 +_0816487C: + ldr r0, _08164894 + ldr r1, [r0] + lsls r0, r5, #2 + adds r1, r1, r0 + ldr r0, _08164898 + adds r1, r1, r0 +_08164888: + adds r0, r7, #0 + ldrh r1, [r1] + bl sub_081645E4 + b _081649A2 + .align 2, 0 +_08164894: .4byte 0x03005AF0 +_08164898: .4byte 0x00000CC6 +_0816489C: + ldr r0, _081648D0 + strh r7, [r0] + ldr r0, _081648D4 + cmp r7, r0 + bgt _081648E8 + ldr r0, _081648D8 + ldr r4, [r0] + lsls r1, r5, #1 + adds r0, r1, #0 + adds r0, #8 + lsls r0, r0, #1 + ldr r3, _081648DC + adds r2, r4, r3 + adds r0, r2, r0 + ldrh r3, [r0] + ldr r5, _081648E0 + adds r0, r4, r5 + strh r3, [r0] + adds r1, #9 + lsls r1, r1, #1 + adds r2, r2, r1 + ldrh r0, [r2] + ldr r1, _081648E4 + adds r4, r4, r1 + strh r0, [r4] + b _08164926 + .align 2, 0 +_081648D0: .4byte 0x0203886E +_081648D4: .4byte 0x0000012B +_081648D8: .4byte 0x03005AF0 +_081648DC: .4byte 0x00000CB4 +_081648E0: .4byte 0x00000CD8 +_081648E4: .4byte 0x00000CDA +_081648E8: + ldr r0, _08164900 + cmp r7, r0 + bgt _08164910 + ldr r0, _08164904 + ldr r1, [r0] + ldr r3, _08164908 + ldrh r2, [r3, #4] + ldr r4, _0816490C + adds r0, r1, r4 + strh r2, [r0] + ldrh r0, [r3, #6] + b _08164920 + .align 2, 0 +_08164900: .4byte 0x0000018F +_08164904: .4byte 0x03005AF0 +_08164908: .4byte 0x03005FD8 +_0816490C: .4byte 0x00000CD8 +_08164910: + ldr r0, _081649B8 + ldr r1, [r0] + ldr r3, _081649BC + ldrh r2, [r3] + ldr r4, _081649C0 + adds r0, r1, r4 + strh r2, [r0] + ldrh r0, [r3, #2] +_08164920: + ldr r5, _081649C4 + adds r1, r1, r5 + strh r0, [r1] +_08164926: + movs r5, #0 + mov r0, r8 + lsls r0, r0, #0x18 + str r0, [sp, #8] +_0816492E: + lsls r1, r5, #1 + mov sl, r1 + adds r2, r5, #1 + mov sb, r2 + lsrs r0, r5, #0x1f + adds r0, r5, r0 + asrs r0, r0, #1 + lsls r0, r0, #0x18 + mov r8, r0 +_08164940: + ldr r3, [sp, #8] + lsrs r0, r3, #0x18 + mov r4, r8 + lsrs r1, r4, #0x18 + bl sub_0816245C + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldr r0, _081649C8 + ldrh r0, [r0] + cmp r0, r3 + beq _08164940 + movs r2, #0 + cmp r2, r5 + bge _08164982 + ldr r1, _081649B8 + ldr r0, [r1] + ldr r4, _081649CC + adds r0, r0, r4 + ldrh r0, [r0] + adds r6, r1, #0 + cmp r0, r3 + beq _08164982 +_0816496E: + adds r2, #1 + cmp r2, r5 + bge _08164982 + ldr r0, [r6] + lsls r1, r2, #1 + adds r0, r0, r4 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, r3 + bne _0816496E +_08164982: + cmp r2, r5 + bne _08164940 + ldr r5, _081649B8 + ldr r0, [r5] + ldr r1, _081649CC + adds r0, r0, r1 + add r0, sl + strh r3, [r0] + mov r5, sb + ldr r6, _081649B8 + cmp r5, #0xd + ble _0816492E + ldr r0, [r6] + ldr r2, _081649D0 + adds r0, r0, r2 + strh r7, [r0] +_081649A2: + movs r0, #0xfa + lsls r0, r0, #1 + cmp r7, r0 + beq _08164A34 + subs r0, #0xc9 + cmp r7, r0 + bgt _081649D8 + ldr r0, _081649D4 + ldr r3, [sp] + lsls r1, r3, #3 + b _081649E4 + .align 2, 0 +_081649B8: .4byte 0x03005AF0 +_081649BC: .4byte 0x03005FD8 +_081649C0: .4byte 0x00000CD8 +_081649C4: .4byte 0x00000CDA +_081649C8: .4byte 0x0203886E +_081649CC: .4byte 0x00000CB4 +_081649D0: .4byte 0x00000CD6 +_081649D4: .4byte 0x085BC444 +_081649D8: + ldr r0, _081649FC + cmp r7, r0 + bgt _08164A08 + ldr r0, _08164A00 + ldr r4, [sp] + lsls r1, r4, #3 +_081649E4: + adds r0, #4 + adds r1, r1, r0 + ldr r0, _08164A04 + ldrh r0, [r0] + ldr r1, [r1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl ShowFieldMessage + b _08164A34 + .align 2, 0 +_081649FC: .4byte 0x0000018F +_08164A00: .4byte 0x085BC444 +_08164A04: .4byte 0x02037282 +_08164A08: + ldr r0, _08164A44 + ldr r1, [r0] + ldr r5, _08164A48 + adds r2, r7, r5 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r1, r1, r0 + adds r1, #0xdc + ldrb r0, [r1] + lsls r0, r0, #0x1b + ldr r1, _08164A4C + lsrs r0, r0, #0x19 + adds r0, r0, r1 + ldr r1, _08164A50 + ldrh r1, [r1] + ldr r0, [r0] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl ShowFieldMessage +_08164A34: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08164A44: .4byte 0x03005AF0 +_08164A48: .4byte 0xFFFFFE70 +_08164A4C: .4byte 0x085BC5D4 +_08164A50: .4byte 0x02037282 + thumb_func_end sub_08164718 + + thumb_func_start sub_08164A54 +sub_08164A54: @ 0x08164A54 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + ldr r4, _08164A98 + ldr r0, [r4] + ldr r1, _08164A9C + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r7, r0, #0x1e + ldr r0, _08164AA0 + bl VarGet + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, [r4] + ldr r2, _08164AA4 + adds r0, r0, r2 + ldrh r6, [r0] + bl GetMultiplayerId + ldr r0, _08164AA8 + ldrh r0, [r0] + cmp r0, #6 + bls _08164A8C + b _08164C96 +_08164A8C: + lsls r0, r0, #2 + ldr r1, _08164AAC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08164A98: .4byte 0x03005AF0 +_08164A9C: .4byte 0x00000CA9 +_08164AA0: .4byte 0x000040CE +_08164AA4: .4byte 0x00000CB2 +_08164AA8: .4byte 0x02037290 +_08164AAC: .4byte 0x08164AB0 +_08164AB0: @ jump table + .4byte _08164ACC @ case 0 + .4byte _08164B1C @ case 1 + .4byte _08164BC0 @ case 2 + .4byte _08164BF4 @ case 3 + .4byte _08164C78 @ case 4 + .4byte _08164C88 @ case 5 + .4byte _08164C96 @ case 6 +_08164ACC: + cmp r5, #3 + beq _08164AD2 + b _08164C90 +_08164AD2: + ldr r0, _08164B10 + ldr r0, [r0] + lsls r1, r7, #1 + adds r0, r0, r1 + ldr r3, _08164B14 + adds r0, r0, r3 + ldrh r0, [r0] + movs r1, #7 + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp] + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08164AF8 + b _08164C96 +_08164AF8: + bl bitmask_all_link_players_but_self + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, sp + movs r2, #4 + bl SendBlock + ldr r1, _08164B18 + movs r0, #1 + b _08164C94 + .align 2, 0 +_08164B10: .4byte 0x03005AF0 +_08164B14: .4byte 0x00000CEC +_08164B18: .4byte 0x02037290 +_08164B1C: + bl GetBlockReceivedStatus + movs r1, #3 + ands r1, r0 + cmp r1, #3 + beq _08164B2A + b _08164C96 +_08164B2A: + bl ResetBlockReceivedFlags + ldr r1, _08164BB0 + movs r0, #0x80 + lsls r0, r0, #1 + adds r2, r1, r0 + ldrh r0, [r1] + ldrh r3, [r2] + cmp r0, r3 + bhi _08164B40 + ldrh r0, [r2] +_08164B40: + str r0, [sp] + movs r4, #0 + ldr r0, _08164BB4 + mov sb, r0 +_08164B48: + adds r1, r4, #1 + mov r8, r1 + lsrs r0, r4, #0x1f + adds r0, r4, r0 + asrs r0, r0, #1 + lsls r7, r0, #0x18 +_08164B54: + ldr r0, [sp] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsrs r1, r7, #0x18 + bl sub_0816245C + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + movs r2, #0 + cmp r2, r4 + bge _08164B90 + mov r1, sb + ldr r0, [r1] + ldr r1, _08164BB8 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, r3 + beq _08164B90 + ldr r6, _08164BB4 + adds r5, r1, #0 +_08164B7C: + adds r2, #1 + cmp r2, r4 + bge _08164B90 + ldr r0, [r6] + lsls r1, r2, #1 + adds r0, r0, r5 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, r3 + bne _08164B7C +_08164B90: + cmp r4, r2 + bne _08164B54 + mov r2, sb + ldr r0, [r2] + lsls r1, r4, #1 + ldr r2, _08164BB8 + adds r0, r0, r2 + adds r0, r0, r1 + strh r3, [r0] + mov r4, r8 + cmp r4, #0xd + ble _08164B48 + ldr r1, _08164BBC + movs r0, #2 + b _08164C94 + .align 2, 0 +_08164BB0: .4byte 0x0202207C +_08164BB4: .4byte 0x03005AF0 +_08164BB8: .4byte 0x00000CB4 +_08164BBC: .4byte 0x02037290 +_08164BC0: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08164C96 + bl bitmask_all_link_players_but_self + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08164BE8 + ldr r1, [r1] + ldr r3, _08164BEC + adds r1, r1, r3 + movs r2, #0x28 + bl SendBlock + ldr r1, _08164BF0 + movs r0, #3 + b _08164C94 + .align 2, 0 +_08164BE8: .4byte 0x03005AF0 +_08164BEC: .4byte 0x00000CB4 +_08164BF0: .4byte 0x02037290 +_08164BF4: + bl GetBlockReceivedStatus + movs r1, #3 + ands r1, r0 + cmp r1, #3 + bne _08164C96 + bl ResetBlockReceivedFlags + ldr r4, _08164C58 + ldr r0, [r4] + ldr r5, _08164C5C + adds r0, r0, r5 + ldr r1, _08164C60 + movs r2, #0x28 + bl memcpy + ldr r2, _08164C64 + ldr r1, [r4] + lsls r0, r6, #2 + adds r1, r1, r5 + adds r0, r1, r0 + ldrh r0, [r0] + strh r0, [r2] + ldr r4, _08164C68 + lsls r0, r6, #1 + adds r0, #1 + lsls r0, r0, #1 + adds r1, r1, r0 + ldrh r0, [r1] + strh r0, [r4] + ldrh r0, [r2] + movs r1, #0 + bl SetBattleFacilityTrainerGfxId + ldrh r0, [r4] + movs r1, #1 + bl SetBattleFacilityTrainerGfxId + ldr r0, _08164C6C + ldrb r0, [r0] + cmp r0, #0 + beq _08164C90 + ldr r0, _08164C70 + ldrb r0, [r0] + cmp r0, #0 + bne _08164C90 + ldr r1, _08164C74 + movs r0, #4 + b _08164C94 + .align 2, 0 +_08164C58: .4byte 0x03005AF0 +_08164C5C: .4byte 0x00000CB4 +_08164C60: .4byte 0x0202207C +_08164C64: .4byte 0x0203886A +_08164C68: .4byte 0x0203886C +_08164C6C: .4byte 0x030031C4 +_08164C70: .4byte 0x0300319C +_08164C74: .4byte 0x02037290 +_08164C78: + bl sub_0800A7F8 + ldr r1, _08164C84 + movs r0, #5 + b _08164C94 + .align 2, 0 +_08164C84: .4byte 0x02037290 +_08164C88: + ldr r0, _08164CA4 + ldrb r0, [r0] + cmp r0, #0 + bne _08164C96 +_08164C90: + ldr r1, _08164CA8 + movs r0, #6 +_08164C94: + strh r0, [r1] +_08164C96: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08164CA4: .4byte 0x030031C4 +_08164CA8: .4byte 0x02037290 + thumb_func_end sub_08164A54 + + thumb_func_start sub_08164CAC +sub_08164CAC: @ 0x08164CAC + push {lr} + ldr r0, _08164CC0 + ldrb r0, [r0] + cmp r0, #0 + beq _08164CBA + bl sub_0800A7F8 +_08164CBA: + pop {r0} + bx r0 + .align 2, 0 +_08164CC0: .4byte 0x0300319C + thumb_func_end sub_08164CAC + + thumb_func_start sub_08164CC4 +sub_08164CC4: @ 0x08164CC4 + push {lr} + ldr r0, _08164CDC + ldr r0, [r0] + ldr r1, _08164CE0 + adds r0, r0, r1 + ldrh r0, [r0] + movs r1, #0xf + bl SetBattleFacilityTrainerGfxId + pop {r0} + bx r0 + .align 2, 0 +_08164CDC: .4byte 0x03005AF0 +_08164CE0: .4byte 0x00000CD6 + thumb_func_end sub_08164CC4 + + thumb_func_start sub_08164CE4 +sub_08164CE4: @ 0x08164CE4 + push {r4, r5, r6, lr} + ldr r0, _08164D70 + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08164D6A + ldr r5, _08164D74 + ldr r0, [r5] + ldr r1, _08164D78 + adds r0, r0, r1 + ldr r4, _08164D7C + ldrh r1, [r4] + bl GetFrontierTrainerName + ldr r0, [r5] + ldr r2, _08164D80 + adds r0, r0, r2 + ldrh r1, [r4] + bl GetBattleTowerTrainerLanguage + ldr r6, _08164D84 + ldrh r0, [r6, #2] + movs r4, #0x64 + muls r0, r4, r0 + ldr r1, _08164D88 + adds r0, r0, r1 + movs r1, #0xb + movs r2, #0 + bl GetMonData + ldr r1, [r5] + ldr r2, _08164D8C + adds r1, r1, r2 + strh r0, [r1] + ldrh r0, [r6] + muls r0, r4, r0 + ldr r1, _08164D90 + adds r0, r0, r1 + movs r1, #0xb + movs r2, #0 + bl GetMonData + ldr r1, [r5] + ldr r2, _08164D94 + adds r1, r1, r2 + strh r0, [r1] + movs r2, #0 + movs r4, #0xbe + lsls r4, r4, #4 + ldr r3, _08164D98 + adds r6, r5, #0 +_08164D4C: + ldr r0, [r5] + adds r0, r0, r4 + adds r0, r0, r2 + adds r1, r2, r3 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, #9 + ble _08164D4C + ldr r0, [r6] + ldr r1, _08164D9C + ldrb r1, [r1] + ldr r2, _08164DA0 + adds r0, r0, r2 + strb r1, [r0] +_08164D6A: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08164D70: .4byte 0x000040CE +_08164D74: .4byte 0x03005AF0 +_08164D78: .4byte 0x00000BD8 +_08164D7C: .4byte 0x0203886A +_08164D80: .4byte 0x00000BEB +_08164D84: .4byte 0x02023D12 +_08164D88: .4byte 0x020243E8 +_08164D8C: .4byte 0x00000BD6 +_08164D90: .4byte 0x02024190 +_08164D94: .4byte 0x00000BD4 +_08164D98: .4byte 0x02023D58 +_08164D9C: .4byte 0x02023FDE +_08164DA0: .4byte 0x00000D06 + thumb_func_end sub_08164CE4 + + thumb_func_start ValidateBattleTowerRecordChecksums +ValidateBattleTowerRecordChecksums: @ 0x08164DA4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _08164E30 + ldr r0, [r0] + movs r3, #0 + movs r2, #0 + ldr r4, _08164E34 + adds r1, r0, r4 +_08164DB6: + ldm r1!, {r0} + adds r3, r3, r0 + adds r2, #1 + cmp r2, #0x39 + bls _08164DB6 + ldr r5, _08164E30 + ldr r1, [r5] + ldr r2, _08164E38 + adds r0, r1, r2 + ldr r0, [r0] + cmp r0, r3 + beq _08164DD6 + ldr r3, _08164E34 + adds r0, r1, r3 + bl ClearBattleTowerRecord +_08164DD6: + movs r4, #0 + adds r7, r5, #0 + movs r6, #0xec + mov r8, r7 +_08164DDE: + adds r0, r4, #0 + muls r0, r6, r0 + movs r1, #0xe7 + lsls r1, r1, #3 + adds r0, r0, r1 + ldr r1, [r7] + movs r3, #0 + movs r2, #0 + adds r5, r4, #1 + adds r1, r1, r0 +_08164DF2: + ldm r1!, {r0} + adds r3, r3, r0 + adds r2, #1 + cmp r2, #0x39 + bls _08164DF2 + mov r0, r8 + ldr r2, [r0] + adds r1, r4, #0 + muls r1, r6, r1 + movs r4, #0x82 + lsls r4, r4, #4 + adds r0, r2, r4 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, r3 + beq _08164E1E + movs r3, #0xe7 + lsls r3, r3, #3 + adds r0, r1, r3 + adds r0, r2, r0 + bl ClearBattleTowerRecord +_08164E1E: + adds r4, r5, #0 + cmp r4, #4 + ble _08164DDE + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08164E30: .4byte 0x03005AF0 +_08164E34: .4byte 0x0000064C +_08164E38: .4byte 0x00000734 + thumb_func_end ValidateBattleTowerRecordChecksums + + thumb_func_start CalcEmeraldBattleTowerChecksum +CalcEmeraldBattleTowerChecksum: @ 0x08164E3C + push {r4, lr} + adds r2, r0, #0 + adds r2, #0xe8 + movs r1, #0 + str r1, [r2] + movs r3, #0 + adds r4, r0, #0 +_08164E4A: + ldr r0, [r2] + ldm r4!, {r1} + adds r0, r0, r1 + str r0, [r2] + adds r3, #1 + cmp r3, #0x39 + bls _08164E4A + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CalcEmeraldBattleTowerChecksum + + thumb_func_start CalcRubyBattleTowerChecksum +CalcRubyBattleTowerChecksum: @ 0x08164E60 + push {r4, lr} + adds r2, r0, #0 + adds r2, #0xa0 + movs r1, #0 + str r1, [r2] + movs r3, #0 + adds r4, r0, #0 +_08164E6E: + ldr r0, [r2] + ldm r4!, {r1} + adds r0, r0, r1 + str r0, [r2] + adds r3, #1 + cmp r3, #0x27 + bls _08164E6E + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CalcRubyBattleTowerChecksum + + thumb_func_start ClearBattleTowerRecord +ClearBattleTowerRecord: @ 0x08164E84 + push {lr} + movs r1, #0 + movs r2, #0 +_08164E8A: + stm r0!, {r2} + adds r1, #1 + cmp r1, #0x3a + bls _08164E8A + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ClearBattleTowerRecord + + thumb_func_start GetCurrentBattleTowerWinStreak +GetCurrentBattleTowerWinStreak: @ 0x08164E98 + push {lr} + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + ldr r2, _08164EC0 + ldr r2, [r2] + lsrs r0, r0, #0x17 + lsrs r1, r1, #0x16 + adds r0, r0, r1 + movs r1, #0xce + lsls r1, r1, #4 + adds r2, r2, r1 + adds r2, r2, r0 + ldrh r0, [r2] + ldr r1, _08164EC4 + cmp r0, r1 + bls _08164EBA + adds r0, r1, #0 +_08164EBA: + pop {r1} + bx r1 + .align 2, 0 +_08164EC0: .4byte 0x03005AF0 +_08164EC4: .4byte 0x0000270F + thumb_func_end GetCurrentBattleTowerWinStreak + + thumb_func_start AwardBattleTowerRibbons +AwardBattleTowerRibbons: @ 0x08164EC8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0xc + ldr r0, _08164FC0 + ldr r0, [r0] + ldr r1, _08164FC4 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + adds r4, r0, #0 + ldr r0, _08164FC8 + bl VarGet + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r2, #0x44 + mov sb, r2 + cmp r4, #0 + beq _08164EF8 + movs r0, #0x45 + mov sb, r0 +_08164EF8: + ldr r5, _08164FCC + movs r0, #0 + strh r0, [r5] + adds r0, r4, #0 + bl GetCurrentBattleTowerWinStreak + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x37 + bls _08164F64 + movs r6, #0 + ldr r7, _08164FD0 + mov r8, r5 + mov r5, sp +_08164F14: + ldr r0, _08164FC0 + ldr r0, [r0] + lsls r1, r6, #1 + ldr r2, _08164FD4 + adds r0, r0, r2 + adds r0, r0, r1 + ldrh r1, [r0] + subs r1, #1 + movs r0, #0 + strb r1, [r5] + strb r0, [r5, #1] + movs r0, #0x64 + muls r0, r1, r0 + movs r1, #0x8e + lsls r1, r1, #2 + adds r4, r0, r1 + ldr r0, [r7] + adds r0, r0, r4 + mov r1, sb + bl GetMonData + cmp r0, #0 + bne _08164F5C + movs r0, #1 + mov r2, r8 + strh r0, [r2] + ldr r0, [r7] + adds r0, r0, r4 + mov r1, sb + bl SetMonData + ldr r0, [r7] + adds r0, r0, r4 + bl GetRibbonCount + strb r0, [r5, #1] +_08164F5C: + adds r5, #4 + adds r6, #1 + cmp r6, #2 + ble _08164F14 +_08164F64: + ldr r0, _08164FCC + ldrh r0, [r0] + cmp r0, #0 + beq _08164FB2 + movs r0, #0x2a + bl IncrementGameStat + mov r3, sp + add r2, sp, #4 + movs r6, #1 +_08164F78: + ldrb r1, [r3, #1] + ldrb r0, [r2, #1] + cmp r0, r1 + bls _08164F88 + ldr r1, [sp] + ldr r0, [r2] + str r0, [sp] + str r1, [r2] +_08164F88: + adds r2, #4 + subs r6, #1 + cmp r6, #0 + bge _08164F78 + mov r0, sp + ldrb r0, [r0, #1] + cmp r0, #4 + bls _08164FB2 + ldr r2, _08164FD0 + mov r0, sp + ldrb r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + movs r0, #0x8e + lsls r0, r0, #2 + adds r1, r1, r0 + ldr r0, [r2] + adds r0, r0, r1 + mov r1, sb + bl sub_080EEFFC +_08164FB2: + add sp, #0xc + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08164FC0: .4byte 0x03005AF0 +_08164FC4: .4byte 0x00000CA9 +_08164FC8: .4byte 0x000040CE +_08164FCC: .4byte 0x02037290 +_08164FD0: .4byte 0x03005AEC +_08164FD4: .4byte 0x00000CAA + thumb_func_end AwardBattleTowerRibbons + + thumb_func_start FillEReaderTrainerWithPlayerData +FillEReaderTrainerWithPlayerData: @ 0x08164FD8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r1, _08165004 + ldr r2, [r1] + ldr r0, _08165008 + adds r7, r2, r0 + ldrb r0, [r2, #8] + adds r5, r1, #0 + cmp r0, #0 + beq _08165010 + ldr r4, _0816500C + ldrb r0, [r2, #0xa] + ldrb r1, [r2, #0xb] + adds r0, r0, r1 + ldrb r1, [r2, #0xc] + adds r0, r0, r1 + ldrb r1, [r2, #0xd] + adds r0, r0, r1 + movs r1, #0x14 + b _08165022 + .align 2, 0 +_08165004: .4byte 0x03005AF0 +_08165008: .4byte 0x00000BEC +_0816500C: .4byte 0x085BBE3E +_08165010: + ldr r4, _081650B0 + ldrb r0, [r2, #0xa] + ldrb r1, [r2, #0xb] + adds r0, r0, r1 + ldrb r1, [r2, #0xc] + adds r0, r0, r1 + ldrb r1, [r2, #0xd] + adds r0, r0, r1 + movs r1, #0x1e +_08165022: + bl __umodsi3 + adds r0, r0, r4 + ldrb r0, [r0] + strb r0, [r7, #1] + adds r0, r7, #0 + adds r0, #0xc + ldr r1, [r5] + adds r1, #0xa + bl CopyTrainerId + adds r0, r7, #4 + ldr r1, [r5] + bl StringCopy7 + movs r0, #1 + strh r0, [r7, #2] + movs r6, #7 + movs r4, #0 + ldr r0, _081650B4 + mov r8, r0 + adds r5, r7, #0 + adds r5, #0x10 + ldr r1, _081650B8 + mov ip, r1 + adds r3, r7, #0 + adds r3, #0x28 + adds r2, r7, #0 + adds r2, #0x1c +_0816505C: + lsls r0, r4, #1 + mov sb, r0 + mov r1, r8 + ldr r0, [r1] + add r0, ip + add r0, sb + ldrh r0, [r0] + strh r0, [r5] + strh r6, [r2] + adds r0, r6, #6 + strh r0, [r3] + adds r6, #1 + adds r5, #2 + adds r3, #2 + adds r2, #2 + adds r4, #1 + cmp r4, #5 + ble _0816505C + movs r4, #0 +_08165082: + movs r0, #0x64 + muls r0, r4, r0 + ldr r1, _081650BC + adds r0, r0, r1 + movs r1, #0x2c + muls r1, r4, r1 + adds r1, #0x34 + adds r1, r7, r1 + bl sub_0806823C + adds r4, #1 + cmp r4, #2 + ble _08165082 + adds r0, r7, #0 + bl SetEReaderTrainerChecksum + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081650B0: .4byte 0x085BBE20 +_081650B4: .4byte 0x03005AEC +_081650B8: .4byte 0x00002BBC +_081650BC: .4byte 0x02024190 + thumb_func_end FillEReaderTrainerWithPlayerData + + thumb_func_start GetMonCountForBattleMode +GetMonCountForBattleMode: @ 0x081650C0 + ldr r1, _081650D4 + ldr r0, _081650D8 + ldr r0, [r0] + ldr r2, _081650DC + adds r0, r0, r2 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_081650D4: .4byte 0x082EFF00 +_081650D8: .4byte 0x03005AF0 +_081650DC: .4byte 0x00000BED + thumb_func_end GetMonCountForBattleMode + + thumb_func_start GetEreaderTrainerClassId +GetEreaderTrainerClassId: @ 0x081650E0 + ldr r1, _081650F4 + ldr r0, _081650F8 + ldr r0, [r0] + ldr r2, _081650FC + adds r0, r0, r2 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_081650F4: .4byte 0x082EFF52 +_081650F8: .4byte 0x03005AF0 +_081650FC: .4byte 0x00000BED + thumb_func_end GetEreaderTrainerClassId + + thumb_func_start GetEreaderTrainerName +GetEreaderTrainerName: @ 0x08165100 + push {r4, lr} + adds r3, r0, #0 + movs r2, #0 + ldr r0, _0816512C + ldr r0, [r0] + movs r1, #0xbf + lsls r1, r1, #4 + adds r4, r0, r1 +_08165110: + adds r0, r3, r2 + adds r1, r4, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, #4 + ble _08165110 + adds r1, r3, r2 + movs r0, #0xff + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816512C: .4byte 0x03005AF0 + thumb_func_end GetEreaderTrainerName + + thumb_func_start ValidateEReaderTrainer +ValidateEReaderTrainer: @ 0x08165130 + push {r4, r5, r6, lr} + ldr r2, _0816515C + movs r0, #0 + strh r0, [r2] + ldr r1, _08165160 + ldr r0, [r1] + ldr r3, _08165164 + adds r5, r0, r3 + movs r4, #0 + movs r3, #0 + adds r6, r1, #0 + adds r1, r5, #0 +_08165148: + ldm r1!, {r0} + orrs r4, r0 + adds r3, #1 + cmp r3, #0x2d + bls _08165148 + cmp r4, #0 + bne _08165168 + movs r0, #1 + strh r0, [r2] + b _08165192 + .align 2, 0 +_0816515C: .4byte 0x02037290 +_08165160: .4byte 0x03005AF0 +_08165164: .4byte 0x00000BEC +_08165168: + movs r4, #0 + movs r3, #0 + adds r2, r5, #0 +_0816516E: + ldm r2!, {r0} + adds r4, r4, r0 + adds r3, #1 + cmp r3, #0x2d + bls _0816516E + ldr r1, [r6] + ldr r2, _08165198 + adds r0, r1, r2 + ldr r0, [r0] + cmp r0, r4 + beq _08165192 + ldr r3, _0816519C + adds r0, r1, r3 + bl ClearEReaderTrainer + ldr r1, _081651A0 + movs r0, #1 + strh r0, [r1] +_08165192: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08165198: .4byte 0x00000CA4 +_0816519C: .4byte 0x00000BEC +_081651A0: .4byte 0x02037290 + thumb_func_end ValidateEReaderTrainer + + thumb_func_start SetEReaderTrainerChecksum +SetEReaderTrainerChecksum: @ 0x081651A4 + push {r4, lr} + adds r2, r0, #0 + adds r2, #0xb8 + movs r1, #0 + str r1, [r2] + movs r3, #0 + adds r4, r0, #0 +_081651B2: + ldr r0, [r2] + ldm r4!, {r1} + adds r0, r0, r1 + str r0, [r2] + adds r3, #1 + cmp r3, #0x2d + bls _081651B2 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetEReaderTrainerChecksum + + thumb_func_start ClearEReaderTrainer +ClearEReaderTrainer: @ 0x081651C8 + push {lr} + movs r1, #0 + movs r2, #0 +_081651CE: + stm r0!, {r2} + adds r1, #1 + cmp r1, #0x2e + bls _081651CE + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ClearEReaderTrainer + + thumb_func_start CopyEReaderTrainerGreeting +CopyEReaderTrainerGreeting: @ 0x081651DC + push {lr} + ldr r0, _081651F0 + ldr r0, [r0] + ldr r1, _081651F4 + adds r0, r0, r1 + bl FrontierSpeechToString + pop {r0} + bx r0 + .align 2, 0 +_081651F0: .4byte 0x03005AF0 +_081651F4: .4byte 0x00000BFC + thumb_func_end CopyEReaderTrainerGreeting + + thumb_func_start CopyEReaderTrainerFarewellMessage +CopyEReaderTrainerFarewellMessage: @ 0x081651F8 + push {lr} + ldr r0, _0816520C + ldrb r0, [r0] + cmp r0, #3 + bne _08165214 + ldr r1, _08165210 + movs r0, #0xff + strb r0, [r1] + b _0816523C + .align 2, 0 +_0816520C: .4byte 0x02023FDE +_08165210: .4byte 0x02021C7C +_08165214: + cmp r0, #1 + bne _08165230 + ldr r0, _08165228 + ldr r0, [r0] + ldr r1, _0816522C + adds r0, r0, r1 + bl FrontierSpeechToString + b _0816523C + .align 2, 0 +_08165228: .4byte 0x03005AF0 +_0816522C: .4byte 0x00000C14 +_08165230: + ldr r0, _08165240 + ldr r0, [r0] + ldr r1, _08165244 + adds r0, r0, r1 + bl FrontierSpeechToString +_0816523C: + pop {r0} + bx r0 + .align 2, 0 +_08165240: .4byte 0x03005AF0 +_08165244: .4byte 0x00000C08 + thumb_func_end CopyEReaderTrainerFarewellMessage + + thumb_func_start sub_08165248 +sub_08165248: @ 0x08165248 + push {lr} + ldr r0, _08165278 + ldr r0, [r0] + ldr r1, _0816527C + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + bne _0816525C + bl sub_080F0C84 +_0816525C: + movs r0, #0x77 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08165274 + bl sub_080F0C84 + movs r0, #0x77 + bl FlagClear +_08165274: + pop {r0} + bx r0 + .align 2, 0 +_08165278: .4byte 0x03005AF0 +_0816527C: .4byte 0x00000CA8 + thumb_func_end sub_08165248 + + thumb_func_start FillPartnerParty +FillPartnerParty: @ 0x08165280 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x40 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + bl SetFacilityPtrsGetLevel + ldr r0, _081653AC + cmp r7, r0 + beq _0816529C + b _081653C8 +_0816529C: + movs r0, #0 + mov sl, r0 + mov r1, sp + adds r1, #0x18 + str r1, [sp, #0x30] +_081652A6: + mov r2, sl + lsls r2, r2, #2 + mov sb, r2 + mov r3, sl + adds r3, #1 + str r3, [sp, #0x38] + mov r0, sb + add r0, sl + lsls r0, r0, #2 + ldr r4, _081653B0 + adds r5, r0, r4 +_081652BC: + bl Random + adds r4, r0, #0 + bl Random + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r0, r0, #0x10 + orrs r4, r0 + str r4, [sp, #0x18] + ldr r0, _081653B4 + adds r1, r4, #0 + bl IsShinyOtIdPersonality + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #0 + bne _081652BC + ldr r0, [sp, #0x18] + bl GetNatureFromPersonality + ldrb r1, [r5, #4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r1, r0 + bne _081652BC + movs r0, #0x64 + mov r6, sl + muls r6, r0, r6 + ldr r1, _081653B8 + mov r8, r1 + adds r0, r6, r1 + mov r5, sb + add r5, sl + lsls r5, r5, #2 + ldr r2, _081653B0 + adds r3, r5, r2 + ldrh r1, [r3] + ldrb r2, [r3, #3] + ldrb r3, [r3, #2] + mov ip, r3 + movs r4, #1 + str r4, [sp] + mov r3, sl + str r3, [sp, #4] + str r4, [sp, #8] + ldr r4, _081653B4 + str r4, [sp, #0xc] + mov r3, ip + bl CreateMon + str r7, [sp, #0x18] + movs r3, #0 + mov r4, r8 + ldr r0, _081653BC + adds r5, r5, r0 +_0816532C: + adds r1, r3, #0 + adds r1, #0x1a + adds r2, r5, r3 + adds r0, r6, r4 + bl SetMonData + ldr r0, [sp, #0x18] + adds r0, #1 + str r0, [sp, #0x18] + adds r3, r0, #0 + cmp r3, #5 + ble _0816532C + movs r0, #0 + str r0, [sp, #0x18] + movs r1, #0 + movs r0, #0x64 + mov r4, sl + muls r4, r0, r4 + ldr r7, _081653C0 + ldr r6, _081653B8 + mov r0, sb + add r0, sl + lsls r5, r0, #2 +_0816535A: + lsls r0, r1, #1 + adds r0, r0, r5 + adds r0, r0, r7 + ldrh r1, [r0] + ldr r3, [sp, #0x30] + ldrb r2, [r3] + adds r0, r4, r6 + bl SetMonMoveSlot + ldr r0, [sp, #0x18] + adds r0, #1 + str r0, [sp, #0x18] + adds r1, r0, #0 + cmp r1, #3 + ble _0816535A + movs r0, #0x64 + mov r4, sl + muls r4, r0, r4 + ldr r0, _081653B8 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #7 + ldr r2, _081653C4 + bl SetMonData + movs r0, #0 + str r0, [sp, #0x18] + adds r0, r4, #0 + movs r1, #0x31 + ldr r2, [sp, #0x30] + bl SetMonData + adds r0, r4, #0 + bl CalculateMonStats + ldr r1, [sp, #0x38] + mov sl, r1 + cmp r1, #2 + bgt _081653AA + b _081652A6 +_081653AA: + b _081656A6 + .align 2, 0 +_081653AC: .4byte 0x00000C03 +_081653B0: .4byte 0x085BC614 +_081653B4: .4byte 0x0000EF2A +_081653B8: .4byte 0x020242BC +_081653BC: .4byte 0x085BC619 +_081653C0: .4byte 0x085BC620 +_081653C4: .4byte 0x082E9CC0 +_081653C8: + movs r0, #0xfa + lsls r0, r0, #1 + cmp r7, r0 + bne _081653E0 + add r0, sp, #0x10 + ldr r1, _081653DC + ldrb r1, [r1] + strb r1, [r0] + b _081656A6 + .align 2, 0 +_081653DC: .4byte 0x0829BDA5 +_081653E0: + ldr r0, _08165548 + cmp r7, r0 + bls _081653E8 + b _08165564 +_081653E8: + bl SetFacilityPtrsGetLevel + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x24] + adds r0, r7, #0 + bl GetFrontierTrainerFixedIvs + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x20] + bl Random + adds r4, r0, #0 + bl Random + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r0, r0, #0x10 + orrs r4, r0 + str r4, [sp, #0x2c] + movs r2, #0 + mov sl, r2 + mov r3, sp + adds r3, #0x18 + str r3, [sp, #0x30] + mov r4, sp + adds r4, #0x1c + str r4, [sp, #0x34] +_08165422: + ldr r0, _0816554C + ldr r1, [r0] + mov r0, sl + adds r0, #0x12 + lsls r0, r0, #1 + ldr r2, _08165550 + adds r1, r1, r2 + adds r1, r1, r0 + ldrh r1, [r1] + str r1, [sp, #0x28] + movs r4, #0x64 + mov r3, sl + muls r3, r4, r3 + mov r8, r3 + ldr r0, _08165554 + mov sb, r0 + mov r0, r8 + add r0, sb + ldr r6, _08165558 + ldr r4, [r6] + lsls r5, r1, #4 + adds r4, r5, r4 + ldrh r1, [r4] + ldr r3, [sp, #0x24] + lsls r2, r3, #0x18 + ldrb r3, [r4, #0xc] + mov ip, r3 + ldr r3, [sp, #0x20] + str r3, [sp] + ldrb r4, [r4, #0xb] + str r4, [sp, #4] + ldr r4, [sp, #0x2c] + str r4, [sp, #8] + lsrs r2, r2, #0x18 + mov r3, ip + bl CreateMonWithEVSpreadNatureOTID + movs r0, #0xff + str r0, [sp, #0x1c] + movs r0, #0 + str r0, [sp, #0x18] + movs r2, #0 + mov r0, sl + adds r0, #1 + str r0, [sp, #0x38] + mov r4, r8 + mov r3, sb +_08165480: + ldr r0, [r6] + adds r0, r5, r0 + lsls r1, r2, #1 + adds r0, #2 + adds r0, r0, r1 + ldrh r1, [r0] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, r3 + str r3, [sp, #0x3c] + bl SetMonMoveSlot + ldr r0, [r6] + adds r0, r5, r0 + ldr r2, [sp, #0x18] + lsls r1, r2, #1 + adds r0, #2 + adds r0, r0, r1 + ldrh r0, [r0] + ldr r3, [sp, #0x3c] + cmp r0, #0xda + bne _081654B0 + movs r0, #0 + str r0, [sp, #0x1c] +_081654B0: + adds r0, r2, #1 + str r0, [sp, #0x18] + adds r2, r0, #0 + cmp r2, #3 + ble _08165480 + movs r1, #0x64 + mov r4, sl + muls r4, r1, r4 + ldr r0, _08165554 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x20 + ldr r2, [sp, #0x34] + bl SetMonData + ldr r0, _08165558 + ldr r1, [r0] + ldr r2, [sp, #0x28] + lsls r0, r2, #4 + adds r0, r0, r1 + ldrb r2, [r0, #0xa] + lsls r2, r2, #1 + ldr r0, _0816555C + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0xc + bl SetMonData + movs r0, #0 + str r0, [sp, #0x18] + movs r2, #0 + ldr r0, _08165560 + ldr r1, [r0] + movs r0, #0x34 + muls r0, r7, r0 + adds r0, r0, r1 + adds r3, r0, #4 +_081654FA: + mov r1, sp + adds r1, r1, r2 + adds r1, #0x10 + adds r0, r3, r2 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, [sp, #0x18] + adds r0, #1 + str r0, [sp, #0x18] + adds r2, r0, #0 + cmp r2, #7 + ble _081654FA + movs r3, #0x64 + mov r4, sl + muls r4, r3, r4 + ldr r0, _08165554 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #7 + add r2, sp, #0x10 + bl SetMonData + adds r0, r7, #0 + bl IsFrontierTrainerFemale + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x18] + adds r0, r4, #0 + movs r1, #0x31 + ldr r2, [sp, #0x30] + bl SetMonData + ldr r4, [sp, #0x38] + mov sl, r4 + cmp r4, #1 + bgt _08165546 + b _08165422 +_08165546: + b _081656A6 + .align 2, 0 +_08165548: .4byte 0x0000012B +_0816554C: .4byte 0x03005AF0 +_08165550: .4byte 0x00000CB4 +_08165554: .4byte 0x020242BC +_08165558: .4byte 0x0203B958 +_0816555C: .4byte 0x085ADBF4 +_08165560: .4byte 0x0203B954 +_08165564: + ldr r0, _08165624 + cmp r7, r0 + bhi _0816563C + ldr r1, _08165628 + adds r0, r7, r1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + movs r2, #0 + mov sl, r2 + mov r3, sp + adds r3, #0x18 + str r3, [sp, #0x30] + movs r0, #0xec + muls r0, r7, r0 + movs r4, #0xe7 + lsls r4, r4, #3 + adds r6, r0, r4 + ldr r5, _0816562C +_08165588: + movs r0, #0x64 + mov r1, sl + muls r1, r0, r1 + adds r0, r1, #0 + ldr r1, _08165630 + adds r0, r0, r1 + ldr r3, [r5] + adds r1, r3, r6 + mov r2, sl + adds r2, #0x12 + lsls r2, r2, #1 + ldr r4, _08165634 + adds r3, r3, r4 + adds r3, r3, r2 + ldrh r3, [r3] + movs r2, #0x2c + muls r2, r3, r2 + adds r2, #0x34 + adds r1, r1, r2 + movs r2, #1 + bl CreateBattleTowerMon2 + movs r0, #0 + str r0, [sp, #0x18] + movs r2, #0 + mov r0, sl + adds r0, #1 + str r0, [sp, #0x38] + ldr r1, [r5] + movs r0, #0xec + adds r4, r7, #0 + muls r4, r0, r4 + ldr r0, _08165638 + adds r3, r1, r0 +_081655CC: + mov r1, sp + adds r1, r1, r2 + adds r1, #0x10 + adds r0, r2, r4 + adds r0, r3, r0 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, [sp, #0x18] + adds r0, #1 + str r0, [sp, #0x18] + adds r2, r0, #0 + cmp r2, #7 + ble _081655CC + movs r0, #0x64 + mov r4, sl + muls r4, r0, r4 + ldr r0, _08165630 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #7 + add r2, sp, #0x10 + bl SetMonData + movs r1, #0x96 + lsls r1, r1, #1 + adds r0, r7, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl IsFrontierTrainerFemale + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x18] + adds r0, r4, #0 + movs r1, #0x31 + ldr r2, [sp, #0x30] + bl SetMonData + ldr r2, [sp, #0x38] + mov sl, r2 + cmp r2, #1 + ble _08165588 + b _081656A6 + .align 2, 0 +_08165624: .4byte 0x0000018F +_08165628: .4byte 0xFFFFFED4 +_0816562C: .4byte 0x03005AF0 +_08165630: .4byte 0x020242BC +_08165634: .4byte 0x00000CB4 +_08165638: .4byte 0x0000073C +_0816563C: + ldr r3, _081656B8 + adds r0, r7, r3 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + movs r4, #0 + mov sl, r4 + mov r0, sp + adds r0, #0x18 + str r0, [sp, #0x30] + ldr r1, _081656BC + mov r8, r1 + movs r5, #0x24 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + adds r6, r0, #0 + adds r6, #0xdc +_0816565E: + movs r0, #0x64 + mov r4, sl + muls r4, r0, r4 + ldr r0, _081656C0 + adds r4, r4, r0 + mov r2, r8 + ldr r0, [r2] + adds r1, r0, r6 + ldr r3, _081656C4 + adds r0, r0, r3 + adds r0, r0, r5 + ldrb r2, [r0] + adds r0, r4, #0 + bl CreateApprenticeMon + movs r1, #0xc8 + lsls r1, r1, #1 + adds r0, r7, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl IsFrontierTrainerFemale + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x18] + adds r0, r4, #0 + movs r1, #0x31 + ldr r2, [sp, #0x30] + bl SetMonData + adds r5, #2 + movs r2, #1 + add sl, r2 + mov r3, sl + cmp r3, #1 + ble _0816565E +_081656A6: + add sp, #0x40 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081656B8: .4byte 0xFFFFFE70 +_081656BC: .4byte 0x03005AF0 +_081656C0: .4byte 0x020242BC +_081656C4: .4byte 0x00000CB4 + thumb_func_end FillPartnerParty + + thumb_func_start RubyBattleTowerRecordToEmerald +RubyBattleTowerRecordToEmerald: @ 0x081656C8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + adds r6, r0, #0 + adds r5, r1, #0 + movs r2, #0 + adds r1, r6, #0 + adds r3, r6, #0 + adds r3, #0x58 +_081656E0: + ldrh r0, [r1, #0x1c] + cmp r0, #0 + beq _081656E8 + adds r2, #1 +_081656E8: + adds r1, #0x2c + cmp r1, r3 + ble _081656E0 + cmp r2, #3 + beq _081656F6 + movs r0, #0 + b _08165802 +_081656F6: + ldrb r0, [r6] + strb r0, [r5] + ldrh r0, [r6, #2] + strh r0, [r5, #2] + movs r2, #0 + ldr r0, _08165758 + ldrb r1, [r0] + ldrb r3, [r6, #1] + mov ip, r0 + adds r4, r5, #4 + adds r7, r6, #4 + movs r0, #0xc + adds r0, r0, r5 + mov sb, r0 + movs r0, #0xc + adds r0, r0, r6 + mov r8, r0 + adds r0, r5, #0 + adds r0, #0x10 + str r0, [sp, #4] + movs r0, #0x10 + adds r0, r0, r6 + mov sl, r0 + adds r0, r5, #0 + adds r0, #0x1c + str r0, [sp, #8] + adds r0, #0xc + str r0, [sp, #0xc] + adds r0, #0x90 + str r0, [sp, #0x10] + cmp r1, r3 + beq _08165746 + mov r1, ip +_08165738: + adds r1, #2 + adds r2, #1 + cmp r2, #0x51 + bgt _08165746 + ldrb r0, [r1] + cmp r0, r3 + bne _08165738 +_08165746: + cmp r2, #0x52 + beq _0816575C + lsls r0, r2, #1 + mov r1, ip + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + b _0816575E + .align 2, 0 +_08165758: .4byte 0x085BBE84 +_0816575C: + movs r0, #0x2b +_0816575E: + strb r0, [r5, #1] + movs r2, #0 + adds r3, r7, #0 +_08165764: + adds r0, r4, r2 + adds r1, r3, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, #7 + ble _08165764 + movs r2, #0 + mov r4, sb + mov r3, r8 +_08165778: + adds r0, r4, r2 + adds r1, r3, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, #3 + ble _08165778 + mov r3, sl + ldr r1, [sp, #4] + movs r2, #5 +_0816578C: + ldrh r0, [r3] + strh r0, [r1] + adds r3, #2 + adds r1, #2 + subs r2, #1 + cmp r2, #0 + bge _0816578C + ldr r3, _08165814 + ldr r1, [sp, #8] + movs r2, #5 +_081657A0: + ldrh r0, [r3] + strh r0, [r1] + adds r3, #2 + adds r1, #2 + subs r2, #1 + cmp r2, #0 + bge _081657A0 + ldr r3, _08165818 + ldr r1, [sp, #0xc] + movs r2, #5 +_081657B4: + ldrh r0, [r3] + strh r0, [r1] + adds r3, #2 + adds r1, #2 + subs r2, #1 + cmp r2, #0 + bge _081657B4 + adds r2, r6, #0 + adds r3, r5, #0 + movs r4, #0x58 + adds r4, r4, r2 + mov r8, r4 +_081657CC: + adds r1, r3, #0 + adds r1, #0x34 + adds r0, r2, #0 + adds r0, #0x1c + ldm r0!, {r4, r6, r7} + stm r1!, {r4, r6, r7} + ldm r0!, {r4, r6, r7} + stm r1!, {r4, r6, r7} + ldm r0!, {r4, r6, r7} + stm r1!, {r4, r6, r7} + ldm r0!, {r6, r7} + stm r1!, {r6, r7} + adds r2, #0x2c + adds r3, #0x2c + cmp r2, r8 + ble _081657CC + movs r0, #0 + str r0, [sp] + ldr r2, _0816581C + mov r0, sp + ldr r1, [sp, #0x10] + bl CpuSet + adds r0, r5, #0 + bl CalcEmeraldBattleTowerChecksum + movs r0, #1 +_08165802: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08165814: .4byte 0x085BE986 +_08165818: .4byte 0x085BE992 +_0816581C: .4byte 0x0500000B + thumb_func_end RubyBattleTowerRecordToEmerald + + thumb_func_start EmeraldBattleTowerRecordToRuby +EmeraldBattleTowerRecordToRuby: @ 0x08165820 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r4, r0, #0 + adds r6, r1, #0 + movs r2, #0 + adds r1, r4, #0 + adds r3, r4, #0 + adds r3, #0x58 +_08165838: + ldrh r0, [r1, #0x34] + cmp r0, #0 + beq _08165840 + adds r2, #1 +_08165840: + adds r1, #0x2c + cmp r1, r3 + ble _08165838 + cmp r2, #3 + beq _0816584E + movs r0, #0 + b _08165914 +_0816584E: + ldrb r0, [r4] + strb r0, [r6] + ldrh r0, [r4, #2] + strh r0, [r6, #2] + movs r2, #0 + ldr r0, _081658A0 + ldrb r1, [r0, #1] + ldrb r3, [r4, #1] + mov ip, r0 + adds r5, r6, #4 + adds r7, r4, #4 + movs r0, #0xc + adds r0, r0, r6 + mov sb, r0 + movs r0, #0xc + adds r0, r0, r4 + mov r8, r0 + adds r0, r6, #0 + adds r0, #0x10 + str r0, [sp] + movs r0, #0x10 + adds r0, r0, r4 + mov sl, r0 + cmp r1, r3 + beq _08165892 + mov r1, ip + adds r1, #1 +_08165884: + adds r1, #2 + adds r2, #1 + cmp r2, #0x51 + bgt _08165892 + ldrb r0, [r1] + cmp r0, r3 + bne _08165884 +_08165892: + cmp r2, #0x52 + beq _081658A4 + lsls r0, r2, #1 + add r0, ip + ldrb r0, [r0] + b _081658A6 + .align 2, 0 +_081658A0: .4byte 0x085BBE84 +_081658A4: + movs r0, #0x24 +_081658A6: + strb r0, [r6, #1] + movs r2, #0 + adds r3, r7, #0 +_081658AC: + adds r0, r5, r2 + adds r1, r3, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, #7 + ble _081658AC + movs r2, #0 + mov r5, sb + mov r3, r8 +_081658C0: + adds r0, r5, r2 + adds r1, r3, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, #3 + ble _081658C0 + mov r3, sl + ldr r1, [sp] + movs r2, #5 +_081658D4: + ldrh r0, [r3] + strh r0, [r1] + adds r3, #2 + adds r1, #2 + subs r2, #1 + cmp r2, #0 + bge _081658D4 + adds r2, r4, #0 + adds r3, r6, #0 + movs r4, #0x58 + adds r4, r4, r2 + mov r8, r4 +_081658EC: + adds r1, r3, #0 + adds r1, #0x1c + adds r0, r2, #0 + adds r0, #0x34 + ldm r0!, {r4, r5, r7} + stm r1!, {r4, r5, r7} + ldm r0!, {r4, r5, r7} + stm r1!, {r4, r5, r7} + ldm r0!, {r4, r5, r7} + stm r1!, {r4, r5, r7} + ldm r0!, {r5, r7} + stm r1!, {r5, r7} + adds r2, #0x2c + adds r3, #0x2c + cmp r2, r8 + ble _081658EC + adds r0, r6, #0 + bl CalcRubyBattleTowerChecksum + movs r0, #1 +_08165914: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end EmeraldBattleTowerRecordToRuby + + thumb_func_start CalcApprenticeChecksum +CalcApprenticeChecksum: @ 0x08165924 + push {r4, lr} + adds r2, r0, #0 + movs r0, #0 + str r0, [r2, #0x40] + movs r3, #0 + adds r4, r2, #0 +_08165930: + ldr r0, [r2, #0x40] + ldm r4!, {r1} + adds r0, r0, r1 + str r0, [r2, #0x40] + adds r3, #1 + cmp r3, #0xf + bls _08165930 + pop {r4} + pop {r0} + bx r0 + thumb_func_end CalcApprenticeChecksum + + thumb_func_start ClearApprentice +ClearApprentice: @ 0x08165944 + push {lr} + movs r1, #0 + movs r3, #0 + adds r2, r0, #0 +_0816594C: + stm r2!, {r3} + adds r1, #1 + cmp r1, #0x10 + bls _0816594C + bl ResetApprenticeStruct + pop {r0} + bx r0 + thumb_func_end ClearApprentice + + thumb_func_start ValidateApprenticesChecksums +ValidateApprenticesChecksums: @ 0x0816595C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + movs r5, #0 + ldr r0, _081659C0 + mov r8, r0 + mov sb, r8 +_0816596C: + lsls r0, r5, #4 + adds r1, r0, r5 + lsls r1, r1, #2 + adds r1, #0xdc + mov r3, sb + ldr r2, [r3] + movs r4, #0 + movs r3, #0 + adds r6, r0, #0 + adds r7, r5, #1 + adds r2, r2, r1 +_08165982: + ldm r2!, {r0} + adds r4, r4, r0 + adds r3, #1 + cmp r3, #0xf + bls _08165982 + mov r0, r8 + ldr r2, [r0] + adds r0, r6, r5 + lsls r1, r0, #2 + movs r3, #0x8e + lsls r3, r3, #1 + adds r0, r2, r3 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, r4 + beq _081659AC + adds r0, r1, #0 + adds r0, #0xdc + adds r0, r2, r0 + bl ClearApprentice +_081659AC: + adds r5, r7, #0 + cmp r5, #3 + ble _0816596C + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081659C0: .4byte 0x03005AF0 + thumb_func_end ValidateApprenticesChecksums + + thumb_func_start GetBattleTowerTrainerLanguage +GetBattleTowerTrainerLanguage: @ 0x081659C4 + push {r4, lr} + adds r3, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r4, r1, #0 + movs r0, #0xfa + lsls r0, r0, #1 + cmp r1, r0 + bne _081659E0 + ldr r0, _081659DC + b _08165A34 + .align 2, 0 +_081659DC: .4byte 0x0829BDA5 +_081659E0: + ldr r0, _081659EC + cmp r1, r0 + bhi _081659F4 + ldr r0, _081659F0 + b _08165A34 + .align 2, 0 +_081659EC: .4byte 0x0000012B +_081659F0: .4byte 0x0829BDA5 +_081659F4: + ldr r0, _08165A10 + cmp r1, r0 + bhi _08165A20 + ldr r0, _08165A14 + ldr r0, [r0] + ldr r4, _08165A18 + adds r2, r1, r4 + movs r1, #0xec + muls r1, r2, r1 + adds r0, r0, r1 + ldr r1, _08165A1C + adds r0, r0, r1 + b _08165A34 + .align 2, 0 +_08165A10: .4byte 0x0000018F +_08165A14: .4byte 0x03005AF0 +_08165A18: .4byte 0xFFFFFED4 +_08165A1C: .4byte 0x0000081C +_08165A20: + ldr r0, _08165A40 + ldr r2, [r0] + ldr r0, _08165A44 + adds r1, r4, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, r2, r0 + ldr r1, _08165A48 + adds r0, r2, r1 +_08165A34: + ldrb r0, [r0] + strb r0, [r3] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08165A40: .4byte 0x03005AF0 +_08165A44: .4byte 0xFFFFFE70 +_08165A48: .4byte 0x0000011B + thumb_func_end GetBattleTowerTrainerLanguage + + thumb_func_start SetFacilityPtrsGetLevel +SetFacilityPtrsGetLevel: @ 0x08165A4C + push {lr} + ldr r0, _08165A78 + ldr r0, [r0] + ldr r1, _08165A7C + adds r2, r0, r1 + ldrb r1, [r2] + movs r0, #3 + ands r0, r1 + cmp r0, #2 + beq _08165A90 + ldr r1, _08165A80 + ldr r0, _08165A84 + str r0, [r1] + ldr r1, _08165A88 + ldr r0, _08165A8C + str r0, [r1] + ldrb r0, [r2] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + bl GetFrontierEnemyMonLevel + b _08165A94 + .align 2, 0 +_08165A78: .4byte 0x03005AF0 +_08165A7C: .4byte 0x00000CA9 +_08165A80: .4byte 0x0203B954 +_08165A84: .4byte 0x085B4A10 +_08165A88: .4byte 0x0203B958 +_08165A8C: .4byte 0x085B8700 +_08165A90: + bl SetTentPtrsGetLevel +_08165A94: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + thumb_func_end SetFacilityPtrsGetLevel + + thumb_func_start GetFrontierEnemyMonLevel +GetFrontierEnemyMonLevel: @ 0x08165A9C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _08165AAA + cmp r0, #1 + beq _08165AAE +_08165AAA: + movs r0, #0x32 + b _08165ABC +_08165AAE: + bl GetHighestLevelInPlayerParty + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3b + bhi _08165ABC + movs r0, #0x3c +_08165ABC: + pop {r1} + bx r1 + thumb_func_end GetFrontierEnemyMonLevel + + thumb_func_start GetHighestLevelInPlayerParty +GetHighestLevelInPlayerParty: @ 0x08165AC0 + push {r4, r5, r6, lr} + movs r6, #0 + movs r5, #0 +_08165AC6: + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _08165B10 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + cmp r0, #0 + beq _08165B00 + adds r0, r4, #0 + movs r1, #0x41 + movs r2, #0 + bl GetMonData + movs r1, #0xce + lsls r1, r1, #1 + cmp r0, r1 + beq _08165B00 + adds r0, r4, #0 + movs r1, #0x38 + movs r2, #0 + bl GetMonData + cmp r0, r6 + ble _08165B00 + adds r6, r0, #0 +_08165B00: + adds r5, #1 + cmp r5, #5 + ble _08165AC6 + adds r0, r6, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08165B10: .4byte 0x02024190 + thumb_func_end GetHighestLevelInPlayerParty + + thumb_func_start GetFrontierTrainerFixedIvs +GetFrontierTrainerFixedIvs: @ 0x08165B14 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + cmp r0, #0x63 + bls _08165B46 + movs r1, #6 + cmp r0, #0x77 + bls _08165B46 + movs r1, #9 + cmp r0, #0x8b + bls _08165B46 + movs r1, #0xc + cmp r0, #0x9f + bls _08165B46 + movs r1, #0xf + cmp r0, #0xb3 + bls _08165B46 + movs r1, #0x12 + cmp r0, #0xc7 + bls _08165B46 + movs r1, #0x1f + cmp r0, #0xdb + bhi _08165B46 + movs r1, #0x15 +_08165B46: + adds r0, r1, #0 + pop {r1} + bx r1 + thumb_func_end GetFrontierTrainerFixedIvs + + thumb_func_start sub_08165B4C +sub_08165B4C: @ 0x08165B4C + push {lr} + ldr r0, _08165B78 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #2 + beq _08165B64 + cmp r0, #3 + beq _08165B64 + cmp r0, #4 + bne _08165B7C +_08165B64: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x1e + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _08165B7E + .align 2, 0 +_08165B78: .4byte 0x000040CF +_08165B7C: + movs r0, #0 +_08165B7E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08165B4C + + thumb_func_start SetTentPtrsGetLevel +SetTentPtrsGetLevel: @ 0x08165B84 + push {lr} + ldr r0, _08165BA0 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #4 + bne _08165BB4 + ldr r1, _08165BA4 + ldr r0, _08165BA8 + str r0, [r1] + ldr r1, _08165BAC + ldr r0, _08165BB0 + b _08165BFE + .align 2, 0 +_08165BA0: .4byte 0x000040CF +_08165BA4: .4byte 0x0203B954 +_08165BA8: .4byte 0x085BC958 +_08165BAC: .4byte 0x0203B958 +_08165BB0: .4byte 0x085BCF70 +_08165BB4: + cmp r0, #2 + bne _08165BD4 + ldr r1, _08165BC4 + ldr r0, _08165BC8 + str r0, [r1] + ldr r1, _08165BCC + ldr r0, _08165BD0 + b _08165BFE + .align 2, 0 +_08165BC4: .4byte 0x0203B954 +_08165BC8: .4byte 0x085BD554 +_08165BCC: .4byte 0x0203B958 +_08165BD0: .4byte 0x085BDB6C +_08165BD4: + cmp r0, #3 + bne _08165BF4 + ldr r1, _08165BE4 + ldr r0, _08165BE8 + str r0, [r1] + ldr r1, _08165BEC + ldr r0, _08165BF0 + b _08165BFE + .align 2, 0 +_08165BE4: .4byte 0x0203B954 +_08165BE8: .4byte 0x085BDFC8 +_08165BEC: .4byte 0x0203B958 +_08165BF0: .4byte 0x085BE5E0 +_08165BF4: + ldr r1, _08165C14 + ldr r0, _08165C18 + str r0, [r1] + ldr r1, _08165C1C + ldr r0, _08165C20 +_08165BFE: + str r0, [r1] + bl GetHighestLevelInPlayerParty + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1d + bhi _08165C0E + movs r0, #0x1e +_08165C0E: + pop {r1} + bx r1 + .align 2, 0 +_08165C14: .4byte 0x0203B954 +_08165C18: .4byte 0x085B4A10 +_08165C1C: .4byte 0x0203B958 +_08165C20: .4byte 0x085B8700 + thumb_func_end SetTentPtrsGetLevel + + thumb_func_start sub_08165C24 +sub_08165C24: @ 0x08165C24 + push {r4, r5, lr} + ldr r5, _08165CA0 +_08165C28: + bl sub_08165B4C + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r3, #0 + ldr r1, [r5] + ldr r2, _08165CA4 + adds r0, r1, r2 + ldrh r0, [r0] + cmp r3, r0 + bge _08165C64 + adds r2, #2 + adds r0, r1, r2 + ldrh r0, [r0] + cmp r0, r4 + beq _08165C64 + ldr r0, _08165CA0 + ldr r1, [r0] + subs r2, #2 + adds r0, r1, r2 + ldrh r2, [r0] + ldr r0, _08165CA8 + adds r1, r1, r0 +_08165C56: + adds r1, #2 + adds r3, #1 + cmp r3, r2 + bge _08165C64 + ldrh r0, [r1] + cmp r0, r4 + bne _08165C56 +_08165C64: + ldr r0, [r5] + ldr r1, _08165CA4 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r3, r0 + bne _08165C28 + ldr r5, _08165CAC + strh r4, [r5] + ldrh r0, [r5] + movs r1, #0 + bl SetBattleFacilityTrainerGfxId + ldr r0, _08165CA0 + ldr r1, [r0] + ldr r2, _08165CA4 + adds r0, r1, r2 + ldrh r2, [r0] + adds r0, r2, #1 + cmp r0, #2 + bgt _08165C98 + lsls r0, r2, #1 + ldr r2, _08165CA8 + adds r1, r1, r2 + adds r1, r1, r0 + ldrh r0, [r5] + strh r0, [r1] +_08165C98: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08165CA0: .4byte 0x03005AF0 +_08165CA4: .4byte 0x00000CB2 +_08165CA8: .4byte 0x00000CB4 +_08165CAC: .4byte 0x0203886A + thumb_func_end sub_08165C24 + + thumb_func_start FillTentTrainerParty_ +FillTentTrainerParty_: @ 0x08165CB0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x38 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp, #0x18] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x1c] + bl SetTentPtrsGetLevel + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x20] + ldr r0, _08165CF0 + ldrh r2, [r0] + ldr r0, _08165CF4 + ldr r1, [r0] + movs r0, #0x34 + muls r0, r2, r0 + adds r0, r0, r1 + ldr r0, [r0, #0x30] + str r0, [sp, #0x28] + movs r0, #0 + str r0, [sp, #0x24] + ldr r2, [sp, #0x28] + ldrh r1, [r2] + b _08165D0A + .align 2, 0 +_08165CF0: .4byte 0x0203886A +_08165CF4: .4byte 0x0203B954 +_08165CF8: + ldr r0, [sp, #0x24] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x24] + lsls r0, r0, #1 + ldr r6, [sp, #0x28] + adds r0, r0, r6 + ldrh r1, [r0] +_08165D0A: + ldr r0, _08165D2C + cmp r1, r0 + bne _08165CF8 + movs r0, #0 + mov r8, r0 + bl Random + adds r4, r0, #0 + bl Random + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r0, r0, #0x10 + orrs r4, r0 + str r4, [sp, #0x2c] + b _08165E9E + .align 2, 0 +_08165D2C: .4byte 0x0000FFFF +_08165D30: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, [sp, #0x24] + bl __modsi3 + lsls r0, r0, #1 + ldr r2, [sp, #0x28] + adds r0, r0, r2 + ldrh r4, [r0] + movs r6, #0 + ldr r7, [sp, #0x18] + add r7, r8 + b _08165D50 +_08165D4E: + adds r6, #1 +_08165D50: + cmp r6, r7 + bge _08165D74 + movs r1, #0x64 + adds r0, r6, #0 + muls r0, r1, r0 + ldr r2, _08165EB8 + adds r0, r0, r2 + movs r1, #0xb + movs r2, #0 + bl GetMonData + ldr r1, _08165EBC + ldr r2, [r1] + lsls r1, r4, #4 + adds r1, r1, r2 + ldrh r1, [r1] + cmp r0, r1 + bne _08165D4E +_08165D74: + cmp r6, r7 + beq _08165D7A + b _08165E9E +_08165D7A: + movs r6, #0 + cmp r6, r7 + bge _08165DC4 + ldr r0, _08165EC0 + mov sb, r0 + movs r3, #0 +_08165D86: + ldr r1, _08165EB8 + adds r5, r3, r1 + adds r0, r5, #0 + movs r1, #0xc + movs r2, #0 + str r3, [sp, #0x34] + bl GetMonData + ldr r3, [sp, #0x34] + cmp r0, #0 + beq _08165DBC + adds r0, r5, #0 + movs r1, #0xc + movs r2, #0 + bl GetMonData + ldr r1, _08165EBC + ldr r2, [r1] + lsls r1, r4, #4 + adds r1, r1, r2 + ldrb r1, [r1, #0xa] + lsls r1, r1, #1 + add r1, sb + ldr r3, [sp, #0x34] + ldrh r1, [r1] + cmp r0, r1 + beq _08165DC4 +_08165DBC: + adds r3, #0x64 + adds r6, #1 + cmp r6, r7 + blt _08165D86 +_08165DC4: + cmp r6, r7 + bne _08165E9E + movs r6, #0 + cmp r6, r8 + bge _08165DE6 + add r0, sp, #0xc + ldrh r0, [r0] + cmp r0, r4 + beq _08165DE6 + add r1, sp, #0xc +_08165DD8: + adds r1, #2 + adds r6, #1 + cmp r6, r8 + bge _08165DE6 + ldrh r0, [r1] + cmp r0, r4 + bne _08165DD8 +_08165DE6: + cmp r6, r8 + bne _08165E9E + mov r2, r8 + lsls r0, r2, #1 + add r0, sp + adds r0, #0xc + strh r4, [r0] + movs r6, #0x64 + adds r0, r7, #0 + muls r0, r6, r0 + ldr r1, _08165EB8 + adds r0, r0, r1 + ldr r5, _08165EBC + ldr r2, [r5] + lsls r4, r4, #4 + adds r2, r4, r2 + ldrh r1, [r2] + ldrb r3, [r2, #0xc] + movs r6, #0 + str r6, [sp] + ldrb r2, [r2, #0xb] + str r2, [sp, #4] + ldr r2, [sp, #0x2c] + str r2, [sp, #8] + ldr r2, [sp, #0x20] + bl CreateMonWithEVSpreadNatureOTID + add r1, sp, #0x14 + movs r0, #0xff + strb r0, [r1] + mov sb, r4 + mov r0, r8 + adds r0, #1 + str r0, [sp, #0x30] + movs r0, #0x64 + adds r1, r7, #0 + muls r1, r0, r1 + mov r8, r1 + adds r3, r5, #0 + mov r5, sb + ldr r2, _08165EB8 + mov sl, r2 +_08165E3A: + ldr r0, [r3] + adds r0, r5, r0 + lsls r4, r6, #1 + adds r0, #2 + adds r0, r0, r4 + ldrh r1, [r0] + lsls r2, r6, #0x18 + lsrs r2, r2, #0x18 + mov r0, r8 + add r0, sl + str r3, [sp, #0x34] + bl SetMonMoveSlot + ldr r3, [sp, #0x34] + ldr r0, [r3] + adds r0, r5, r0 + adds r0, #2 + adds r0, r0, r4 + ldrh r0, [r0] + cmp r0, #0xda + bne _08165E6A + movs r0, #0 + mov r1, sp + strb r0, [r1, #0x14] +_08165E6A: + adds r6, #1 + cmp r6, #3 + ble _08165E3A + movs r2, #0x64 + adds r4, r7, #0 + muls r4, r2, r4 + ldr r6, _08165EB8 + adds r4, r4, r6 + adds r0, r4, #0 + movs r1, #0x20 + add r2, sp, #0x14 + bl SetMonData + ldr r0, _08165EBC + ldr r0, [r0] + add r0, sb + ldrb r2, [r0, #0xa] + lsls r2, r2, #1 + ldr r0, _08165EC0 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0xc + bl SetMonData + ldr r0, [sp, #0x30] + mov r8, r0 +_08165E9E: + ldr r1, [sp, #0x1c] + cmp r8, r1 + beq _08165EA6 + b _08165D30 +_08165EA6: + add sp, #0x38 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08165EB8: .4byte 0x020243E8 +_08165EBC: .4byte 0x0203B958 +_08165EC0: .4byte 0x085ADBF4 + thumb_func_end FillTentTrainerParty_ + + thumb_func_start FacilityClassToGraphicsId +FacilityClassToGraphicsId: @ 0x08165EC4 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + movs r1, #0 + ldr r3, _08165EF0 + ldrb r0, [r3] + cmp r0, r2 + beq _08165EE6 +_08165ED4: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x1d + bhi _08165EE6 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _08165ED4 +_08165EE6: + cmp r1, #0x1e + beq _08165EF8 + ldr r0, _08165EF4 + b _08165F22 + .align 2, 0 +_08165EF0: .4byte 0x085BBE20 +_08165EF4: .4byte 0x085BBE52 +_08165EF8: + movs r1, #0 + ldr r3, _08165F1C + ldrb r0, [r3] + cmp r0, r2 + beq _08165F14 +_08165F02: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x13 + bhi _08165F14 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _08165F02 +_08165F14: + cmp r1, #0x14 + bne _08165F20 + movs r0, #7 + b _08165F26 + .align 2, 0 +_08165F1C: .4byte 0x085BBE3E +_08165F20: + ldr r0, _08165F2C +_08165F22: + adds r0, r1, r0 + ldrb r0, [r0] +_08165F26: + pop {r1} + bx r1 + .align 2, 0 +_08165F2C: .4byte 0x085BBE70 + thumb_func_end FacilityClassToGraphicsId + + thumb_func_start ValidateBattleTowerRecord +ValidateBattleTowerRecord: @ 0x08165F30 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r2, _08165F7C + movs r0, #0xec + muls r0, r6, r0 + movs r1, #0xe7 + lsls r1, r1, #3 + adds r0, r0, r1 + ldr r1, [r2] + movs r5, #0 + movs r4, #0 + movs r3, #0 + adds r1, r1, r0 +_08165F4C: + ldm r1!, {r0} + adds r5, r5, r0 + orrs r4, r0 + adds r3, #1 + cmp r3, #0x39 + bls _08165F4C + cmp r5, #0 + bne _08165F60 + cmp r4, #0 + beq _08165F8C +_08165F60: + ldr r2, [r2] + movs r0, #0xec + adds r1, r6, #0 + muls r1, r0, r1 + movs r3, #0x82 + lsls r3, r3, #4 + adds r0, r2, r3 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, r5 + bne _08165F80 + movs r0, #1 + b _08165F8E + .align 2, 0 +_08165F7C: .4byte 0x03005AF0 +_08165F80: + movs r3, #0xe7 + lsls r3, r3, #3 + adds r0, r1, r3 + adds r0, r2, r0 + bl ClearBattleTowerRecord +_08165F8C: + movs r0, #0 +_08165F8E: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end ValidateBattleTowerRecord + + thumb_func_start sub_08165F94 +sub_08165F94: @ 0x08165F94 + push {r4, r5, r6, r7, lr} + ldr r0, _08165FFC + ldr r0, [r0] + ldr r1, _08166000 + ands r0, r1 + cmp r0, #0 + beq _08165FF4 + bl SetFacilityPtrsGetLevel + lsls r0, r0, #0x18 + movs r5, #0 + ldr r7, _08166004 + lsrs r0, r0, #0x16 + ldr r1, _08166008 + adds r6, r0, r1 +_08165FB2: + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _0816600C + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + adds r1, r0, #0 + cmp r1, #0 + beq _08165FEE + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrb r1, [r0, #0x13] + movs r0, #0xca + lsls r0, r0, #1 + adds r2, r1, #0 + muls r2, r0, r2 + adds r2, r2, r6 + adds r0, r4, #0 + movs r1, #0x19 + bl SetMonData + adds r0, r4, #0 + bl CalculateMonStats +_08165FEE: + adds r5, #1 + cmp r5, #5 + ble _08165FB2 +_08165FF4: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08165FFC: .4byte 0x02022C90 +_08166000: .4byte 0x02000002 +_08166004: .4byte 0x082F0D54 +_08166008: .4byte 0x082F00B4 +_0816600C: .4byte 0x020243E8 + thumb_func_end sub_08165F94 + diff --git a/asm/battle_transition.s b/asm/battle_transition.s new file mode 100644 index 0000000..44a32f2 --- /dev/null +++ b/asm/battle_transition.s @@ -0,0 +1,10448 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start CB2_TestBattleTransition +CB2_TestBattleTransition: @ 0x08145F44 + push {r4, lr} + ldr r4, _08145F54 + ldrb r0, [r4] + cmp r0, #0 + beq _08145F58 + cmp r0, #1 + beq _08145F6C + b _08145F80 + .align 2, 0 +_08145F54: .4byte 0x0300120B +_08145F58: + ldr r0, _08145F68 + ldrb r0, [r0] + bl LaunchBattleTransitionTask + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + b _08145F80 + .align 2, 0 +_08145F68: .4byte 0x0300120A +_08145F6C: + bl IsBattleTransitionDone + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08145F80 + movs r0, #0 + strb r0, [r4] + ldr r0, _08145F98 + bl SetMainCallback2 +_08145F80: + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08145F98: .4byte 0x08085A31 + thumb_func_end CB2_TestBattleTransition + + thumb_func_start TestBattleTransition +TestBattleTransition: @ 0x08145F9C + push {lr} + ldr r1, _08145FAC + strb r0, [r1] + ldr r0, _08145FB0 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_08145FAC: .4byte 0x0300120A +_08145FB0: .4byte 0x08145F45 + thumb_func_end TestBattleTransition + + thumb_func_start BattleTransition_StartOnField +BattleTransition_StartOnField: @ 0x08145FB4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08145FC8 + ldr r1, _08145FCC + str r1, [r2, #4] + bl LaunchBattleTransitionTask + pop {r0} + bx r0 + .align 2, 0 +_08145FC8: .4byte 0x03002360 +_08145FCC: .4byte 0x080857B9 + thumb_func_end BattleTransition_StartOnField + + thumb_func_start BattleTransition_Start +BattleTransition_Start: @ 0x08145FD0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl LaunchBattleTransitionTask + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BattleTransition_Start + + thumb_func_start IsBattleTransitionDone +IsBattleTransitionDone: @ 0x08145FE0 + push {r4, lr} + ldr r0, _08146004 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _08146008 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0x26 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _0814600C + movs r0, #0 + b _08146020 + .align 2, 0 +_08146004: .4byte 0x08146069 +_08146008: .4byte 0x03005B60 +_0814600C: + adds r0, r2, #0 + bl DestroyTask + ldr r4, _08146028 + ldr r0, [r4] + bl Free + movs r0, #0 + str r0, [r4] + movs r0, #1 +_08146020: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08146028: .4byte 0x0203A86C + thumb_func_end IsBattleTransitionDone + + thumb_func_start LaunchBattleTransitionTask +LaunchBattleTransitionTask: @ 0x0814602C + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _0814605C + movs r1, #2 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08146060 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #0xa] + ldr r4, _08146064 + movs r0, #0x3c + bl AllocZeroed + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814605C: .4byte 0x08146069 +_08146060: .4byte 0x03005B60 +_08146064: .4byte 0x0203A86C + thumb_func_end LaunchBattleTransitionTask + + thumb_func_start Phase2Task_29 +Phase2Task_29: @ 0x08146068 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _08146098 + ldr r2, _0814609C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_0814607A: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0814607A + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08146098: .4byte 0x085A8548 +_0814609C: .4byte 0x03005B60 + thumb_func_end Phase2Task_29 + + thumb_func_start Transition_Phase1 +Transition_Phase1: @ 0x081460A0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080ABCCC + ldr r0, _081460CC + ldr r1, _081460D0 + ldr r2, _081460D4 + bl CpuSet + ldr r1, _081460D8 + movs r2, #0xa + ldrsh r0, [r4, r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #0 + bne _081460DC + movs r0, #2 + strh r0, [r4, #8] + movs r0, #1 + b _081460EA + .align 2, 0 +_081460CC: .4byte 0x020377B4 +_081460D0: .4byte 0x020373B4 +_081460D4: .4byte 0x04000100 +_081460D8: .4byte 0x085A83F8 +_081460DC: + movs r1, #4 + bl CreateTask + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 +_081460EA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end Transition_Phase1 + + thumb_func_start Transition_WaitForPhase1 +Transition_WaitForPhase1: @ 0x081460F0 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08146110 + movs r2, #0xa + ldrsh r0, [r4, r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _08146114 + movs r0, #0 + b _0814611C + .align 2, 0 +_08146110: .4byte 0x085A83F8 +_08146114: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #1 +_0814611C: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end Transition_WaitForPhase1 + + thumb_func_start Transition_Phase2 +Transition_Phase2: @ 0x08146124 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08146148 + movs r2, #0xa + ldrsh r0, [r4, r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0 + bl CreateTask + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08146148: .4byte 0x085A84A0 + thumb_func_end Transition_Phase2 + + thumb_func_start Transition_WaitForPhase2 +Transition_WaitForPhase2: @ 0x0814614C + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + strh r0, [r4, #0x26] + ldr r1, _08146178 + movs r2, #0xa + ldrsh r0, [r4, r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08146170 + movs r0, #1 + strh r0, [r4, #0x26] +_08146170: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08146178: .4byte 0x085A84A0 + thumb_func_end Transition_WaitForPhase2 + + thumb_func_start Phase1Task_TransitionAll +Phase1Task_TransitionAll: @ 0x0814617C + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r4, r0, #0 + ldr r1, _081461B0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r1, r0, r1 + ldrh r2, [r1, #8] + movs r3, #8 + ldrsh r0, [r1, r3] + cmp r0, #0 + bne _081461B4 + adds r0, r2, #1 + strh r0, [r1, #8] + movs r0, #2 + str r0, [sp] + movs r0, #0 + movs r1, #0 + movs r2, #3 + movs r3, #2 + bl CreatePhase1Task + b _081461C4 + .align 2, 0 +_081461B0: .4byte 0x03005B60 +_081461B4: + bl IsPhase1Done + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081461C4 + adds r0, r4, #0 + bl DestroyTask +_081461C4: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end Phase1Task_TransitionAll + + thumb_func_start Phase2Task_30 +Phase2Task_30: @ 0x081461CC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _081461FC + ldr r2, _08146200 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_081461DE: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081461DE + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081461FC: .4byte 0x085A8558 +_08146200: .4byte 0x03005B60 + thumb_func_end Phase2Task_30 + + thumb_func_start Phase2_Blur_Func1 +Phase2_Blur_Func1: @ 0x08146204 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x4c + movs r1, #0 + bl SetGpuReg + movs r0, #0xa + movs r1, #0x40 + bl SetGpuRegBits + movs r0, #0xc + movs r1, #0x40 + bl SetGpuRegBits + movs r0, #0xe + movs r1, #0x40 + bl SetGpuRegBits + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end Phase2_Blur_Func1 + + thumb_func_start Phase2_Blur_Func2 +Phase2_Blur_Func2: @ 0x08146238 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + ldrh r0, [r4, #0xa] + movs r1, #0xa + ldrsh r2, [r4, r1] + cmp r2, #0 + beq _0814624E + subs r0, #1 + strh r0, [r4, #0xa] + b _0814628E +_0814624E: + movs r0, #4 + strh r0, [r4, #0xa] + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xa + bne _08146270 + movs r1, #1 + rsbs r1, r1, #0 + str r2, [sp] + adds r0, r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade +_08146270: + ldrh r1, [r4, #0xc] + movs r0, #0xf + ands r0, r1 + lsls r1, r0, #4 + orrs r1, r0 + movs r0, #0x4c + bl SetGpuReg + movs r1, #0xc + ldrsh r0, [r4, r1] + cmp r0, #0xe + ble _0814628E + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_0814628E: + movs r0, #0 + add sp, #4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end Phase2_Blur_Func2 + + thumb_func_start Phase2_Blur_Func3 +Phase2_Blur_Func3: @ 0x08146298 + push {lr} + ldr r0, _081462BC + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081462B4 + ldr r0, _081462C0 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_081462B4: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_081462BC: .4byte 0x02037C74 +_081462C0: .4byte 0x081461CD + thumb_func_end Phase2_Blur_Func3 + + thumb_func_start Phase2Task_31 +Phase2Task_31: @ 0x081462C4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _081462F4 + ldr r2, _081462F8 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_081462D6: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081462D6 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081462F4: .4byte 0x085A8564 +_081462F8: .4byte 0x03005B60 + thumb_func_end Phase2Task_31 + + thumb_func_start Phase2_Swirl_Func1 +Phase2_Swirl_Func1: @ 0x081462FC + push {r4, r5, lr} + sub sp, #8 + adds r5, r0, #0 + bl sub_08149FC8 + bl ScanlineEffect_Clear + movs r0, #1 + rsbs r0, r0, #0 + movs r4, #0 + str r4, [sp] + movs r1, #4 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _08146358 + ldr r1, _0814635C + ldr r1, [r1] + movs r2, #0x14 + ldrsh r1, [r1, r2] + str r4, [sp] + movs r2, #0xa0 + str r2, [sp, #4] + movs r2, #0 + movs r3, #2 + bl sub_0814A058 + ldr r0, _08146360 + bl SetVBlankCallback + ldr r0, _08146364 + bl SetHBlankCallback + movs r0, #3 + bl EnableInterrupts + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + movs r0, #0 + add sp, #8 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08146358: .4byte 0x02039048 +_0814635C: .4byte 0x0203A86C +_08146360: .4byte 0x081463E1 +_08146364: .4byte 0x08146419 + thumb_func_end Phase2_Swirl_Func1 + + thumb_func_start Phase2_Swirl_Func2 +Phase2_Swirl_Func2: @ 0x08146368 + push {r4, r5, lr} + sub sp, #8 + ldr r4, _081463D0 + ldr r2, [r4] + ldrb r1, [r2] + movs r1, #0 + strb r1, [r2] + ldrh r1, [r0, #0xa] + adds r1, #4 + strh r1, [r0, #0xa] + ldrh r1, [r0, #0xc] + adds r1, #8 + strh r1, [r0, #0xc] + ldr r3, _081463D4 + ldr r1, [r4] + movs r2, #0x14 + ldrsh r1, [r1, r2] + movs r5, #0xa + ldrsh r2, [r0, r5] + movs r5, #0xc + ldrsh r0, [r0, r5] + str r0, [sp] + movs r0, #0xa0 + str r0, [sp, #4] + adds r0, r3, #0 + movs r3, #2 + bl sub_0814A058 + ldr r0, _081463D8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081463BA + ldr r0, _081463DC + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_081463BA: + ldr r0, [r4] + ldrb r1, [r0] + adds r1, #1 + ldrb r2, [r0] + strb r1, [r0] + movs r0, #0 + add sp, #8 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081463D0: .4byte 0x0203A86C +_081463D4: .4byte 0x020388C8 +_081463D8: .4byte 0x02037C74 +_081463DC: .4byte 0x081462C5 + thumb_func_end Phase2_Swirl_Func2 + + thumb_func_start VBlankCB_Phase2_Swirl +VBlankCB_Phase2_Swirl: @ 0x081463E0 + push {lr} + bl VBlankCB_BattleTransition + ldr r0, _08146408 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #0 + beq _08146404 + ldr r1, _0814640C + ldr r0, _08146410 + str r0, [r1] + movs r2, #0xf0 + lsls r2, r2, #3 + adds r0, r0, r2 + str r0, [r1, #4] + ldr r0, _08146414 + str r0, [r1, #8] + ldr r0, [r1, #8] +_08146404: + pop {r0} + bx r0 + .align 2, 0 +_08146408: .4byte 0x0203A86C +_0814640C: .4byte 0x040000D4 +_08146410: .4byte 0x020388C8 +_08146414: .4byte 0x800000A0 + thumb_func_end VBlankCB_Phase2_Swirl + + thumb_func_start HBlankCB_Phase2_Shuffle +HBlankCB_Phase2_Shuffle: @ 0x08146418 + ldr r1, _08146438 + ldr r0, _0814643C + ldrh r0, [r0] + lsls r0, r0, #1 + movs r2, #0xf0 + lsls r2, r2, #3 + adds r1, r1, r2 + adds r0, r0, r1 + ldrh r1, [r0] + ldr r0, _08146440 + strh r1, [r0] + adds r0, #4 + strh r1, [r0] + adds r0, #4 + strh r1, [r0] + bx lr + .align 2, 0 +_08146438: .4byte 0x020388C8 +_0814643C: .4byte 0x04000006 +_08146440: .4byte 0x04000014 + thumb_func_end HBlankCB_Phase2_Shuffle + + thumb_func_start Phase2Task_32 +Phase2Task_32: @ 0x08146444 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _08146474 + ldr r2, _08146478 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_08146456: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08146456 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08146474: .4byte 0x085A856C +_08146478: .4byte 0x03005B60 + thumb_func_end Phase2Task_32 + + thumb_func_start Phase2_Shuffle_Func1 +Phase2_Shuffle_Func1: @ 0x0814647C + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + bl sub_08149FC8 + bl ScanlineEffect_Clear + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r1, #4 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _081464D0 + ldr r1, [r0] + ldr r0, _081464D4 + movs r2, #0x16 + ldrsh r1, [r1, r2] + movs r2, #0xa0 + lsls r2, r2, #1 + bl memset + ldr r0, _081464D8 + bl SetVBlankCallback + ldr r0, _081464DC + bl SetHBlankCallback + movs r0, #3 + bl EnableInterrupts + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081464D0: .4byte 0x0203A86C +_081464D4: .4byte 0x02039048 +_081464D8: .4byte 0x08146571 +_081464DC: .4byte 0x081465A9 + thumb_func_end Phase2_Shuffle_Func1 + + thumb_func_start Phase2_Shuffle_Func2 +Phase2_Shuffle_Func2: @ 0x081464E0 + push {r4, r5, r6, r7, lr} + ldr r1, _08146560 + ldr r2, [r1] + ldrb r1, [r2] + movs r1, #0 + strb r1, [r2] + ldrh r4, [r0, #0xa] + ldrh r2, [r0, #0xc] + lsls r3, r2, #0x10 + asrs r3, r3, #0x18 + movs r5, #0x84 + lsls r5, r5, #5 + adds r1, r4, r5 + strh r1, [r0, #0xa] + movs r1, #0xc0 + lsls r1, r1, #1 + adds r2, r2, r1 + strh r2, [r0, #0xc] + movs r5, #0 + lsls r7, r3, #0x10 +_08146508: + lsrs r0, r4, #8 + asrs r1, r7, #0x10 + bl Sin + ldr r1, _08146564 + lsls r2, r5, #1 + adds r2, r2, r1 + ldr r6, _08146560 + ldr r1, [r6] + ldrh r1, [r1, #0x16] + adds r0, r0, r1 + strh r0, [r2] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r1, #0x84 + lsls r1, r1, #5 + adds r0, r4, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r5, #0x9f + bls _08146508 + ldr r0, _08146568 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0814654E + ldr r0, _0814656C + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_0814654E: + ldr r0, [r6] + ldrb r1, [r0] + adds r1, #1 + ldrb r2, [r0] + strb r1, [r0] + movs r0, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08146560: .4byte 0x0203A86C +_08146564: .4byte 0x020388C8 +_08146568: .4byte 0x02037C74 +_0814656C: .4byte 0x08146445 + thumb_func_end Phase2_Shuffle_Func2 + + thumb_func_start VBlankCB_Phase2_Shuffle +VBlankCB_Phase2_Shuffle: @ 0x08146570 + push {lr} + bl VBlankCB_BattleTransition + ldr r0, _08146598 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #0 + beq _08146594 + ldr r1, _0814659C + ldr r0, _081465A0 + str r0, [r1] + movs r2, #0xf0 + lsls r2, r2, #3 + adds r0, r0, r2 + str r0, [r1, #4] + ldr r0, _081465A4 + str r0, [r1, #8] + ldr r0, [r1, #8] +_08146594: + pop {r0} + bx r0 + .align 2, 0 +_08146598: .4byte 0x0203A86C +_0814659C: .4byte 0x040000D4 +_081465A0: .4byte 0x020388C8 +_081465A4: .4byte 0x800000A0 + thumb_func_end VBlankCB_Phase2_Shuffle + + thumb_func_start HBlankCB_Phase2_Swirl +HBlankCB_Phase2_Swirl: @ 0x081465A8 + ldr r1, _081465C8 + ldr r0, _081465CC + ldrh r0, [r0] + lsls r0, r0, #1 + movs r2, #0xf0 + lsls r2, r2, #3 + adds r1, r1, r2 + adds r0, r0, r1 + ldrh r1, [r0] + ldr r0, _081465D0 + strh r1, [r0] + adds r0, #4 + strh r1, [r0] + adds r0, #4 + strh r1, [r0] + bx lr + .align 2, 0 +_081465C8: .4byte 0x020388C8 +_081465CC: .4byte 0x04000006 +_081465D0: .4byte 0x04000016 + thumb_func_end HBlankCB_Phase2_Swirl + + thumb_func_start Phase2Task_33 +Phase2Task_33: @ 0x081465D4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _08146604 + ldr r2, _08146608 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_081465E6: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081465E6 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08146604: .4byte 0x085A85AC +_08146608: .4byte 0x03005B60 + thumb_func_end Phase2Task_33 + + thumb_func_start Phase2Task_Aqua +Phase2Task_Aqua: @ 0x0814660C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _0814663C + ldr r2, _08146640 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_0814661E: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0814661E + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0814663C: .4byte 0x085A8574 +_08146640: .4byte 0x03005B60 + thumb_func_end Phase2Task_Aqua + + thumb_func_start Phase2Task_BigPokeball +Phase2Task_BigPokeball: @ 0x08146644 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _08146674 + ldr r2, _08146678 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_08146656: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08146656 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08146674: .4byte 0x085A8590 +_08146678: .4byte 0x03005B60 + thumb_func_end Phase2Task_BigPokeball + + thumb_func_start Phase2Task_Blackhole1 +Phase2Task_Blackhole1: @ 0x0814667C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _081466AC + ldr r2, _081466B0 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_0814668E: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0814668E + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081466AC: .4byte 0x085A85C4 +_081466B0: .4byte 0x03005B60 + thumb_func_end Phase2Task_Blackhole1 + + thumb_func_start Phase2Task_Blackhole2 +Phase2Task_Blackhole2: @ 0x081466B4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _081466E4 + ldr r2, _081466E8 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_081466C6: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081466C6 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081466E4: .4byte 0x085A85DC +_081466E8: .4byte 0x03005B60 + thumb_func_end Phase2Task_Blackhole2 + + thumb_func_start Phase2Task_Blur +Phase2Task_Blur: @ 0x081466EC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _0814671C + ldr r2, _08146720 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_081466FE: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081466FE + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0814671C: .4byte 0x085A85F4 +_08146720: .4byte 0x03005B60 + thumb_func_end Phase2Task_Blur + + thumb_func_start Phase2Task_Clockwise_BlackFade +Phase2Task_Clockwise_BlackFade: @ 0x08146724 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _08146754 + ldr r2, _08146758 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_08146736: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08146736 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08146754: .4byte 0x085A860C +_08146758: .4byte 0x03005B60 + thumb_func_end Phase2Task_Clockwise_BlackFade + + thumb_func_start sub_0814675C +sub_0814675C: @ 0x0814675C + push {r4, lr} + adds r4, r0, #0 + bl sub_08149FC8 + bl ScanlineEffect_Clear + movs r1, #0 + movs r0, #0x10 + strh r0, [r4, #0xa] + strh r1, [r4, #0xc] + strh r1, [r4, #0x10] + movs r0, #0x80 + lsls r0, r0, #7 + strh r0, [r4, #0x12] + ldr r0, _081467B8 + ldr r2, [r0] + movs r0, #0x3f + strh r0, [r2, #2] + strh r1, [r2, #4] + movs r0, #0xf0 + strh r0, [r2, #6] + movs r0, #0xa0 + strh r0, [r2, #8] + ldr r0, _081467BC + strh r0, [r2, #0xe] + ldrh r0, [r4, #0xa] + lsls r0, r0, #8 + ldrh r1, [r4, #0xc] + orrs r0, r1 + strh r0, [r2, #0x10] + ldr r0, _081467C0 + movs r2, #0xf0 + movs r1, #0x9f + ldr r3, _081467C4 + adds r0, r0, r3 +_081467A2: + strh r2, [r0] + subs r0, #2 + subs r1, #1 + cmp r1, #0 + bge _081467A2 + ldr r0, _081467C8 + bl SetVBlankCallback + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081467B8: .4byte 0x0203A86C +_081467BC: .4byte 0x00003F41 +_081467C0: .4byte 0x020388C8 +_081467C4: .4byte 0x000008BE +_081467C8: .4byte 0x08146FFD + thumb_func_end sub_0814675C + + thumb_func_start Phase2_Aqua_Func1 +Phase2_Aqua_Func1: @ 0x081467CC + push {r4, r5, lr} + sub sp, #0xc + adds r4, r0, #0 + movs r5, #0 + movs r0, #0x3c + strh r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0814675C + add r0, sp, #4 + add r1, sp, #8 + bl sub_0814A018 + mov r0, sp + strh r5, [r0] + ldr r1, [sp, #4] + ldr r2, _08146814 + bl CpuSet + ldr r0, _08146818 + ldr r1, [sp, #8] + bl LZ77UnCompVram + ldr r0, _0814681C + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + add sp, #0xc + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08146814: .4byte 0x01000400 +_08146818: .4byte 0x0859A980 +_0814681C: .4byte 0x0859A960 + thumb_func_end Phase2_Aqua_Func1 + + thumb_func_start Phase2_Magma_Func1 +Phase2_Magma_Func1: @ 0x08146820 + push {r4, r5, lr} + sub sp, #0xc + adds r4, r0, #0 + movs r5, #0 + movs r0, #0x3c + strh r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0814675C + add r0, sp, #4 + add r1, sp, #8 + bl sub_0814A018 + mov r0, sp + strh r5, [r0] + ldr r1, [sp, #4] + ldr r2, _08146868 + bl CpuSet + ldr r0, _0814686C + ldr r1, [sp, #8] + bl LZ77UnCompVram + ldr r0, _08146870 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + add sp, #0xc + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08146868: .4byte 0x01000400 +_0814686C: .4byte 0x0859AF54 +_08146870: .4byte 0x0859A960 + thumb_func_end Phase2_Magma_Func1 + + thumb_func_start Phase2_Regi_Func1 +Phase2_Regi_Func1: @ 0x08146874 + push {r4, r5, lr} + sub sp, #0xc + adds r4, r0, #0 + movs r5, #0 + movs r0, #0x3c + strh r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0814675C + add r0, sp, #4 + add r1, sp, #8 + bl sub_0814A018 + mov r0, sp + strh r5, [r0] + ldr r1, [sp, #4] + ldr r2, _081468B8 + bl CpuSet + ldr r0, _081468BC + ldr r1, [sp, #8] + movs r2, #0x80 + lsls r2, r2, #5 + bl CpuSet + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + add sp, #0xc + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081468B8: .4byte 0x01000400 +_081468BC: .4byte 0x0859B6C4 + thumb_func_end Phase2_Regi_Func1 + + thumb_func_start Phase2_BigPokeball_Func1 +Phase2_BigPokeball_Func1: @ 0x081468C0 + push {r4, lr} + sub sp, #0xc + adds r4, r0, #0 + bl sub_0814675C + add r0, sp, #4 + add r1, sp, #8 + bl sub_0814A018 + mov r1, sp + movs r0, #0 + strh r0, [r1] + ldr r1, [sp, #4] + ldr r2, _08146908 + mov r0, sp + bl CpuSet + ldr r0, _0814690C + ldr r1, [sp, #8] + movs r2, #0xb0 + lsls r2, r2, #2 + bl CpuSet + ldr r0, _08146910 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + add sp, #0xc + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08146908: .4byte 0x01000400 +_0814690C: .4byte 0x08598DE0 +_08146910: .4byte 0x085A8984 + thumb_func_end Phase2_BigPokeball_Func1 + + thumb_func_start Phase2_BigPokeball_Func2 +Phase2_BigPokeball_Func2: @ 0x08146914 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x10 + adds r7, r0, #0 + add r1, sp, #0xc + add r0, sp, #8 + bl sub_0814A018 + ldr r5, _0814699C + movs r1, #0 + ldr r0, [sp, #8] + mov sb, r0 + ldr r6, _081469A0 + mov r8, r6 + movs r0, #0xf0 + lsls r0, r0, #8 + mov ip, r0 +_0814693A: + movs r0, #0 + lsls r3, r1, #0x10 + asrs r4, r3, #0xb +_08146940: + lsls r2, r0, #0x10 + asrs r2, r2, #0x10 + adds r1, r4, r2 + lsls r1, r1, #1 + add r1, sb + ldrh r0, [r5] + mov r6, ip + orrs r0, r6 + strh r0, [r1] + adds r2, #1 + lsls r2, r2, #0x10 + adds r5, #2 + lsrs r0, r2, #0x10 + asrs r2, r2, #0x10 + cmp r2, #0x1d + ble _08146940 + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r3, r1 + lsrs r1, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x13 + ble _0814693A + movs r6, #0x10 + ldrsh r2, [r7, r6] + movs r1, #0x12 + ldrsh r0, [r7, r1] + str r0, [sp] + movs r0, #0xa0 + str r0, [sp, #4] + mov r0, r8 + movs r1, #0 + movs r3, #0x84 + bl sub_0814A058 + ldrh r0, [r7, #8] + adds r0, #1 + strh r0, [r7, #8] + movs r0, #1 + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0814699C: .4byte 0x085A8AD0 +_081469A0: .4byte 0x020388C8 + thumb_func_end Phase2_BigPokeball_Func2 + + thumb_func_start Phase2_Aqua_Func2 +Phase2_Aqua_Func2: @ 0x081469A4 + push {r4, lr} + sub sp, #0x10 + adds r4, r0, #0 + add r1, sp, #0xc + add r0, sp, #8 + bl sub_0814A018 + ldr r0, _081469E4 + ldr r1, [sp, #8] + bl LZ77UnCompVram + ldr r0, _081469E8 + movs r1, #0x10 + ldrsh r2, [r4, r1] + movs r3, #0x12 + ldrsh r1, [r4, r3] + str r1, [sp] + movs r1, #0xa0 + str r1, [sp, #4] + movs r1, #0 + movs r3, #0x84 + bl sub_0814A058 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + add sp, #0x10 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081469E4: .4byte 0x0859ACF8 +_081469E8: .4byte 0x020388C8 + thumb_func_end Phase2_Aqua_Func2 + + thumb_func_start Phase2_Magma_Func2 +Phase2_Magma_Func2: @ 0x081469EC + push {r4, lr} + sub sp, #0x10 + adds r4, r0, #0 + add r1, sp, #0xc + add r0, sp, #8 + bl sub_0814A018 + ldr r0, _08146A2C + ldr r1, [sp, #8] + bl LZ77UnCompVram + ldr r0, _08146A30 + movs r1, #0x10 + ldrsh r2, [r4, r1] + movs r3, #0x12 + ldrsh r1, [r4, r3] + str r1, [sp] + movs r1, #0xa0 + str r1, [sp, #4] + movs r1, #0 + movs r3, #0x84 + bl sub_0814A058 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + add sp, #0x10 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08146A2C: .4byte 0x0859B3E0 +_08146A30: .4byte 0x020388C8 + thumb_func_end Phase2_Magma_Func2 + + thumb_func_start Phase2_Regice_Func2 +Phase2_Regice_Func2: @ 0x08146A34 + push {r4, lr} + sub sp, #0x10 + adds r4, r0, #0 + add r1, sp, #0xc + add r0, sp, #8 + bl sub_0814A018 + ldr r0, _08146A80 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _08146A84 + ldr r1, [sp, #8] + movs r2, #0xa0 + lsls r2, r2, #2 + bl CpuSet + ldr r0, _08146A88 + movs r1, #0x10 + ldrsh r2, [r4, r1] + movs r3, #0x12 + ldrsh r1, [r4, r3] + str r1, [sp] + movs r1, #0xa0 + str r1, [sp, #4] + movs r1, #0 + movs r3, #0x84 + bl sub_0814A058 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + add sp, #0x10 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08146A80: .4byte 0x0859BD64 +_08146A84: .4byte 0x0859BDC4 +_08146A88: .4byte 0x020388C8 + thumb_func_end Phase2_Regice_Func2 + + thumb_func_start Phase2_Registeel_Func2 +Phase2_Registeel_Func2: @ 0x08146A8C + push {r4, lr} + sub sp, #0x10 + adds r4, r0, #0 + add r1, sp, #0xc + add r0, sp, #8 + bl sub_0814A018 + ldr r0, _08146AD8 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _08146ADC + ldr r1, [sp, #8] + movs r2, #0xa0 + lsls r2, r2, #2 + bl CpuSet + ldr r0, _08146AE0 + movs r1, #0x10 + ldrsh r2, [r4, r1] + movs r3, #0x12 + ldrsh r1, [r4, r3] + str r1, [sp] + movs r1, #0xa0 + str r1, [sp, #4] + movs r1, #0 + movs r3, #0x84 + bl sub_0814A058 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + add sp, #0x10 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08146AD8: .4byte 0x0859BD84 +_08146ADC: .4byte 0x0859C5C4 +_08146AE0: .4byte 0x020388C8 + thumb_func_end Phase2_Registeel_Func2 + + thumb_func_start Phase2_Regirock_Func2 +Phase2_Regirock_Func2: @ 0x08146AE4 + push {r4, lr} + sub sp, #0x10 + adds r4, r0, #0 + add r1, sp, #0xc + add r0, sp, #8 + bl sub_0814A018 + ldr r0, _08146B30 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _08146B34 + ldr r1, [sp, #8] + movs r2, #0xa0 + lsls r2, r2, #2 + bl CpuSet + ldr r0, _08146B38 + movs r1, #0x10 + ldrsh r2, [r4, r1] + movs r3, #0x12 + ldrsh r1, [r4, r3] + str r1, [sp] + movs r1, #0xa0 + str r1, [sp, #4] + movs r1, #0 + movs r3, #0x84 + bl sub_0814A058 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + add sp, #0x10 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08146B30: .4byte 0x0859BDA4 +_08146B34: .4byte 0x0859CDC4 +_08146B38: .4byte 0x020388C8 + thumb_func_end Phase2_Regirock_Func2 + + thumb_func_start Phase2_Kyogre_Func3 +Phase2_Kyogre_Func3: @ 0x08146B3C + push {r4, lr} + sub sp, #0xc + adds r4, r0, #0 + add r0, sp, #4 + add r1, sp, #8 + bl sub_0814A018 + mov r1, sp + movs r0, #0 + strh r0, [r1] + ldr r1, [sp, #4] + ldr r2, _08146B7C + mov r0, sp + bl CpuSet + ldr r0, _08146B80 + ldr r1, [sp, #8] + bl LZ77UnCompVram + ldr r0, _08146B84 + ldr r1, [sp, #4] + bl LZ77UnCompVram + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + add sp, #0xc + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08146B7C: .4byte 0x01000400 +_08146B80: .4byte 0x0859D5E4 +_08146B84: .4byte 0x0859DC98 + thumb_func_end Phase2_Kyogre_Func3 + + thumb_func_start Phase2_Kyogre_Func4 +Phase2_Kyogre_Func4: @ 0x08146B88 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0xa + ldrsh r5, [r4, r0] + adds r0, r5, #0 + movs r1, #3 + bl __modsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08146BC0 + adds r0, r5, #0 + movs r1, #0x1e + bl __modsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0xb + ldr r1, _08146BE0 + adds r0, r0, r1 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette +_08146BC0: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x3a + ble _08146BD8 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + strh r0, [r4, #0xa] +_08146BD8: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08146BE0: .4byte 0x0859E850 + thumb_func_end Phase2_Kyogre_Func4 + + thumb_func_start Phase2_Kyogre_Func5 +Phase2_Kyogre_Func5: @ 0x08146BE4 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0xa + ldrsh r5, [r4, r0] + adds r0, r5, #0 + movs r1, #5 + bl __modsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08146C12 + adds r0, r5, #0 + movs r1, #5 + bl __divsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0xb + ldr r1, _08146C38 + adds r0, r0, r1 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette +_08146C12: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x44 + ble _08146C2E + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + strh r0, [r4, #0xa] + movs r0, #0x1e + strh r0, [r4, #0x18] +_08146C2E: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08146C38: .4byte 0x0859E990 + thumb_func_end Phase2_Kyogre_Func5 + + thumb_func_start Phase2_WeatherDuo_Func6 +Phase2_WeatherDuo_Func6: @ 0x08146C3C + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + ldr r0, _08146C64 + movs r1, #0 + str r1, [sp] + movs r1, #1 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08146C64: .4byte 0xFFFF8000 + thumb_func_end Phase2_WeatherDuo_Func6 + + thumb_func_start Phase2_WeatherDuo_Func7 +Phase2_WeatherDuo_Func7: @ 0x08146C68 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08146CA8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08146C9E + ldr r1, _08146CAC + ldrh r2, [r1, #0xa] + ldr r0, _08146CB0 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r2, [r1, #0xa] + ldr r0, _08146CB4 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + bl sub_0814A044 + ldr r0, [r4] + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_08146C9E: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08146CA8: .4byte 0x02037C74 +_08146CAC: .4byte 0x040000B0 +_08146CB0: .4byte 0x0000C5FF +_08146CB4: .4byte 0x00007FFF + thumb_func_end Phase2_WeatherDuo_Func7 + + thumb_func_start Phase2_BigPokeball_Func3 +Phase2_BigPokeball_Func3: @ 0x08146CB8 + push {r4, r5, lr} + sub sp, #8 + adds r3, r0, #0 + ldr r2, _08146D40 + ldr r1, [r2] + ldrb r0, [r1] + movs r0, #0 + strb r0, [r1] + ldrh r1, [r3, #0xe] + movs r4, #0xe + ldrsh r0, [r3, r4] + adds r4, r2, #0 + cmp r0, #0 + beq _08146CDE + subs r0, r1, #1 + strh r0, [r3, #0xe] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08146CE8 +_08146CDE: + ldrh r0, [r3, #0xc] + adds r0, #1 + strh r0, [r3, #0xc] + movs r0, #2 + strh r0, [r3, #0xe] +_08146CE8: + ldr r2, [r4] + ldrh r0, [r3, #0xa] + lsls r0, r0, #8 + ldrh r1, [r3, #0xc] + orrs r0, r1 + strh r0, [r2, #0x10] + movs r5, #0xc + ldrsh r0, [r3, r5] + cmp r0, #0xf + ble _08146D02 + ldrh r0, [r3, #8] + adds r0, #1 + strh r0, [r3, #8] +_08146D02: + ldrh r0, [r3, #0x10] + adds r0, #8 + strh r0, [r3, #0x10] + ldr r0, _08146D44 + adds r1, r0, #0 + ldrh r5, [r3, #0x12] + adds r1, r1, r5 + strh r1, [r3, #0x12] + ldr r0, _08146D48 + movs r5, #0x10 + ldrsh r2, [r3, r5] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + str r1, [sp] + movs r1, #0xa0 + str r1, [sp, #4] + movs r1, #0 + movs r3, #0x84 + bl sub_0814A058 + ldr r1, [r4] + ldrb r0, [r1] + adds r0, #1 + ldrb r2, [r1] + strb r0, [r1] + movs r0, #0 + add sp, #8 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08146D40: .4byte 0x0203A86C +_08146D44: .4byte 0xFFFFFF00 +_08146D48: .4byte 0x020388C8 + thumb_func_end Phase2_BigPokeball_Func3 + + thumb_func_start Phase2_BigPokeball_Func4 +Phase2_BigPokeball_Func4: @ 0x08146D4C + push {r4, r5, lr} + sub sp, #8 + adds r3, r0, #0 + ldr r2, _08146DD4 + ldr r1, [r2] + ldrb r0, [r1] + movs r0, #0 + strb r0, [r1] + ldrh r1, [r3, #0xe] + movs r4, #0xe + ldrsh r0, [r3, r4] + adds r4, r2, #0 + cmp r0, #0 + beq _08146D72 + subs r0, r1, #1 + strh r0, [r3, #0xe] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08146D7C +_08146D72: + ldrh r0, [r3, #0xa] + subs r0, #1 + strh r0, [r3, #0xa] + movs r0, #2 + strh r0, [r3, #0xe] +_08146D7C: + ldr r2, [r4] + ldrh r0, [r3, #0xa] + lsls r0, r0, #8 + ldrh r1, [r3, #0xc] + orrs r0, r1 + strh r0, [r2, #0x10] + movs r5, #0xa + ldrsh r0, [r3, r5] + cmp r0, #0 + bne _08146D96 + ldrh r0, [r3, #8] + adds r0, #1 + strh r0, [r3, #8] +_08146D96: + ldrh r0, [r3, #0x10] + adds r0, #8 + strh r0, [r3, #0x10] + ldr r0, _08146DD8 + adds r1, r0, #0 + ldrh r5, [r3, #0x12] + adds r1, r1, r5 + strh r1, [r3, #0x12] + ldr r0, _08146DDC + movs r5, #0x10 + ldrsh r2, [r3, r5] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + str r1, [sp] + movs r1, #0xa0 + str r1, [sp, #4] + movs r1, #0 + movs r3, #0x84 + bl sub_0814A058 + ldr r1, [r4] + ldrb r0, [r1] + adds r0, #1 + ldrb r2, [r1] + strb r0, [r1] + movs r0, #0 + add sp, #8 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08146DD4: .4byte 0x0203A86C +_08146DD8: .4byte 0xFFFFFF00 +_08146DDC: .4byte 0x020388C8 + thumb_func_end Phase2_BigPokeball_Func4 + + thumb_func_start Phase2_BigPokeball_Func5 +Phase2_BigPokeball_Func5: @ 0x08146DE0 + push {r4, r5, r6, r7, lr} + sub sp, #8 + adds r4, r0, #0 + ldr r7, _08146E44 + ldr r0, [r7] + ldrb r1, [r0] + movs r6, #0 + strb r6, [r0] + ldrh r0, [r4, #0x10] + adds r0, #8 + strh r0, [r4, #0x10] + ldr r0, _08146E48 + adds r1, r0, #0 + ldrh r3, [r4, #0x12] + adds r1, r1, r3 + strh r1, [r4, #0x12] + ldr r0, _08146E4C + movs r3, #0x10 + ldrsh r2, [r4, r3] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + str r1, [sp] + movs r5, #0xa0 + str r5, [sp, #4] + movs r1, #0 + movs r3, #0x84 + bl sub_0814A058 + movs r1, #0x12 + ldrsh r0, [r4, r1] + cmp r0, #0 + bgt _08146E30 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + strh r5, [r4, #0xa] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0xc] + strh r6, [r4, #0xe] +_08146E30: + ldr r0, [r7] + ldrb r1, [r0] + adds r1, #1 + ldrb r2, [r0] + strb r1, [r0] + movs r0, #0 + add sp, #8 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08146E44: .4byte 0x0203A86C +_08146E48: .4byte 0xFFFFFF00 +_08146E4C: .4byte 0x020388C8 + thumb_func_end Phase2_BigPokeball_Func5 + + thumb_func_start Phase2_FramesCountdown +Phase2_FramesCountdown: @ 0x08146E50 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0x18] + subs r0, #1 + strh r0, [r1, #0x18] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08146E66 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] +_08146E66: + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end Phase2_FramesCountdown + + thumb_func_start Phase2_WeatherTrio_Func1 +Phase2_WeatherTrio_Func1: @ 0x08146E6C + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + ldr r0, _08146E94 + movs r1, #0 + str r1, [sp] + movs r1, #1 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08146E94: .4byte 0x0000FFFF + thumb_func_end Phase2_WeatherTrio_Func1 + + thumb_func_start Phase2_WaitPaletteFade +Phase2_WaitPaletteFade: @ 0x08146E98 + push {lr} + adds r2, r0, #0 + ldr r0, _08146EB4 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08146EAE + ldrh r0, [r2, #8] + adds r0, #1 + strh r0, [r2, #8] +_08146EAE: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_08146EB4: .4byte 0x02037C74 + thumb_func_end Phase2_WaitPaletteFade + + thumb_func_start Phase2_BigPokeball_Func6 +Phase2_BigPokeball_Func6: @ 0x08146EB8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08146F38 + ldr r0, [r0] + ldrb r1, [r0] + movs r3, #0 + strb r3, [r0] + ldrh r2, [r4, #0xc] + movs r0, #0xc + ldrsh r1, [r4, r0] + ldr r0, _08146F3C + cmp r1, r0 + bgt _08146ED8 + adds r0, r2, #0 + adds r0, #0x80 + strh r0, [r4, #0xc] +_08146ED8: + ldrh r1, [r4, #0xa] + movs r2, #0xa + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _08146EF4 + ldrh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + subs r0, r1, r0 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _08146EF4 + strh r3, [r4, #0xa] +_08146EF4: + ldr r0, _08146F40 + movs r1, #0xa + ldrsh r3, [r4, r1] + movs r1, #0x78 + movs r2, #0x50 + bl sub_0814A0D4 + movs r2, #0xa + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _08146F50 + movs r0, #0 + bl SetVBlankCallback + ldr r1, _08146F44 + ldrh r2, [r1, #0xa] + ldr r0, _08146F48 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r2, [r1, #0xa] + ldr r0, _08146F4C + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + bl sub_0814A044 + ldr r0, [r4] + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + b _08146F70 + .align 2, 0 +_08146F38: .4byte 0x0203A86C +_08146F3C: .4byte 0x000003FF +_08146F40: .4byte 0x020388C8 +_08146F44: .4byte 0x040000B0 +_08146F48: .4byte 0x0000C5FF +_08146F4C: .4byte 0x00007FFF +_08146F50: + ldrh r1, [r4, #0xe] + movs r2, #0xe + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _08146F64 + adds r0, r1, #1 + strh r0, [r4, #0xe] + ldr r0, _08146F78 + bl SetVBlankCallback +_08146F64: + ldr r0, _08146F7C + ldr r1, [r0] + ldrb r0, [r1] + adds r0, #1 + ldrb r2, [r1] + strb r0, [r1] +_08146F70: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08146F78: .4byte 0x08147029 +_08146F7C: .4byte 0x0203A86C + thumb_func_end Phase2_BigPokeball_Func6 + + thumb_func_start Transition_BigPokeball_Vblank +Transition_BigPokeball_Vblank: @ 0x08146F80 + push {lr} + ldr r1, _08146FDC + ldrh r2, [r1, #0xa] + ldr r0, _08146FE0 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r2, [r1, #0xa] + ldr r0, _08146FE4 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + bl VBlankCB_BattleTransition + ldr r2, _08146FE8 + ldr r0, [r2] + ldrb r0, [r0] + cmp r0, #0 + beq _08146FB8 + ldr r1, _08146FEC + ldr r0, _08146FF0 + str r0, [r1] + movs r3, #0xf0 + lsls r3, r3, #3 + adds r0, r0, r3 + str r0, [r1, #4] + ldr r0, _08146FF4 + str r0, [r1, #8] + ldr r0, [r1, #8] +_08146FB8: + ldr r1, _08146FF8 + ldr r2, [r2] + ldrh r0, [r2, #2] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r2, #4] + strh r0, [r1] + subs r1, #6 + ldrh r0, [r2, #8] + strh r0, [r1] + adds r1, #0xc + ldrh r0, [r2, #0xe] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r2, #0x10] + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08146FDC: .4byte 0x040000B0 +_08146FE0: .4byte 0x0000C5FF +_08146FE4: .4byte 0x00007FFF +_08146FE8: .4byte 0x0203A86C +_08146FEC: .4byte 0x040000D4 +_08146FF0: .4byte 0x020388C8 +_08146FF4: .4byte 0x800000A0 +_08146FF8: .4byte 0x04000048 + thumb_func_end Transition_BigPokeball_Vblank + + thumb_func_start VBlankCB0_Phase2_BigPokeball +VBlankCB0_Phase2_BigPokeball: @ 0x08146FFC + push {lr} + bl Transition_BigPokeball_Vblank + ldr r1, _08147018 + ldr r0, _0814701C + str r0, [r1] + ldr r0, _08147020 + str r0, [r1, #4] + ldr r0, _08147024 + str r0, [r1, #8] + ldr r0, [r1, #8] + pop {r0} + bx r0 + .align 2, 0 +_08147018: .4byte 0x040000B0 +_0814701C: .4byte 0x02039048 +_08147020: .4byte 0x04000010 +_08147024: .4byte 0xA2400001 + thumb_func_end VBlankCB0_Phase2_BigPokeball + + thumb_func_start VBlankCB1_Phase2_BigPokeball +VBlankCB1_Phase2_BigPokeball: @ 0x08147028 + push {lr} + bl Transition_BigPokeball_Vblank + ldr r1, _08147044 + ldr r0, _08147048 + str r0, [r1] + ldr r0, _0814704C + str r0, [r1, #4] + ldr r0, _08147050 + str r0, [r1, #8] + ldr r0, [r1, #8] + pop {r0} + bx r0 + .align 2, 0 +_08147044: .4byte 0x040000B0 +_08147048: .4byte 0x02039048 +_0814704C: .4byte 0x04000040 +_08147050: .4byte 0xA2400001 + thumb_func_end VBlankCB1_Phase2_BigPokeball + + thumb_func_start Phase2Task_GridSquares +Phase2Task_GridSquares: @ 0x08147054 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _08147084 + ldr r2, _08147088 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_08147066: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08147066 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08147084: .4byte 0x085A862C +_08147088: .4byte 0x03005B60 + thumb_func_end Phase2Task_GridSquares + + thumb_func_start Phase2_PokeballsTrail_Func1 +Phase2_PokeballsTrail_Func1: @ 0x0814708C + push {r4, lr} + sub sp, #0xc + adds r4, r0, #0 + add r0, sp, #4 + add r1, sp, #8 + bl sub_0814A018 + ldr r0, _081470CC + ldr r1, [sp, #8] + movs r2, #0x20 + bl CpuSet + movs r0, #0 + str r0, [sp] + ldr r1, [sp, #4] + ldr r2, _081470D0 + mov r0, sp + bl CpuSet + ldr r0, _081470D4 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + add sp, #0xc + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081470CC: .4byte 0x08599360 +_081470D0: .4byte 0x05000200 +_081470D4: .4byte 0x085A8984 + thumb_func_end Phase2_PokeballsTrail_Func1 + + thumb_func_start Phase2_PokeballsTrail_Func2 +Phase2_PokeballsTrail_Func2: @ 0x081470D8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x10 + adds r7, r0, #0 + ldr r1, _08147158 + mov r0, sp + movs r2, #4 + bl memcpy + add r4, sp, #4 + ldr r1, _0814715C + adds r0, r4, #0 + movs r2, #0xa + bl memcpy + bl Random + movs r5, #1 + ands r5, r0 + movs r1, #0 + mov r8, r4 + ldr r6, _08147160 +_08147106: + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + lsls r0, r5, #1 + add r0, sp + movs r2, #0 + ldrsh r0, [r0, r2] + str r0, [r6] + lsls r4, r1, #0x10 + asrs r4, r4, #0x10 + lsls r0, r4, #5 + adds r0, #0x10 + str r0, [r6, #4] + str r5, [r6, #8] + lsls r0, r4, #1 + add r0, r8 + movs r1, #0 + ldrsh r0, [r0, r1] + str r0, [r6, #0xc] + movs r0, #0x2d + bl FieldEffectStart + adds r4, #1 + lsls r4, r4, #0x10 + movs r0, #1 + eors r5, r0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsrs r1, r4, #0x10 + asrs r4, r4, #0x10 + cmp r4, #4 + ble _08147106 + ldrh r0, [r7, #8] + adds r0, #1 + strh r0, [r7, #8] + movs r0, #0 + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08147158: .4byte 0x085A8638 +_0814715C: .4byte 0x085A863C +_08147160: .4byte 0x020388A8 + thumb_func_end Phase2_PokeballsTrail_Func2 + + thumb_func_start Phase2_PokeballsTrail_Func3 +Phase2_PokeballsTrail_Func3: @ 0x08147164 + push {lr} + movs r0, #0x2d + bl FieldEffectActiveListContains + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08147184 + bl sub_0814A044 + ldr r0, _0814718C + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_08147184: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0814718C: .4byte 0x08147055 + thumb_func_end Phase2_PokeballsTrail_Func3 + + thumb_func_start FldEff_Pokeball +FldEff_Pokeball: @ 0x08147190 + push {r4, r5, lr} + ldr r0, _081471EC + ldr r5, _081471F0 + movs r2, #0 + ldrsh r1, [r5, r2] + movs r3, #4 + ldrsh r2, [r5, r3] + movs r3, #0 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081471F4 + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + adds r4, r4, r1 + ldrb r1, [r4, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #5] + ldrb r1, [r4, #1] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #1] + ldr r0, [r5, #8] + strh r0, [r4, #0x2e] + ldr r0, [r5, #0xc] + strh r0, [r4, #0x30] + ldr r0, _081471F8 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl InitSpriteAffineAnim + ldrb r1, [r5, #8] + adds r0, r4, #0 + bl StartSpriteAffineAnim + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081471EC: .4byte 0x085A8918 +_081471F0: .4byte 0x020388A8 +_081471F4: .4byte 0x020205AC +_081471F8: .4byte 0x0000FFFF + thumb_func_end FldEff_Pokeball + + thumb_func_start sub_081471FC +sub_081471FC: @ 0x081471FC + push {r4, r5, r6, lr} + sub sp, #4 + adds r4, r0, #0 + ldr r1, _0814721C + mov r0, sp + movs r2, #4 + bl memcpy + ldrh r1, [r4, #0x30] + movs r2, #0x30 + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _08147220 + subs r0, r1, #1 + strh r0, [r4, #0x30] + b _081472B2 + .align 2, 0 +_0814721C: .4byte 0x085A8646 +_08147220: + ldrh r0, [r4, #0x20] + lsls r1, r0, #0x10 + lsrs r0, r1, #0x10 + cmp r0, #0xf0 + bhi _0814728E + asrs r0, r1, #0x13 + lsls r0, r0, #0x10 + ldrh r1, [r4, #0x22] + lsls r1, r1, #0x10 + asrs r1, r1, #0x13 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsrs r2, r0, #0x10 + asrs r5, r0, #0x10 + movs r3, #0x32 + ldrsh r0, [r4, r3] + cmp r5, r0 + beq _0814728E + strh r2, [r4, #0x32] + ldr r0, _081472BC + ldrh r2, [r0] + lsrs r2, r2, #8 + movs r0, #0x1f + ands r2, r0 + lsls r2, r2, #0xb + movs r0, #0xc0 + lsls r0, r0, #0x13 + adds r2, r2, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + subs r0, r1, #2 + lsls r0, r0, #5 + adds r0, r0, r5 + lsls r0, r0, #1 + adds r0, r0, r2 + ldr r6, _081472C0 + adds r3, r6, #0 + strh r3, [r0] + subs r0, r1, #1 + lsls r0, r0, #5 + adds r0, r0, r5 + lsls r0, r0, #1 + adds r0, r0, r2 + strh r3, [r0] + lsls r0, r1, #5 + adds r0, r0, r5 + lsls r0, r0, #1 + adds r0, r0, r2 + strh r3, [r0] + adds r1, #1 + lsls r1, r1, #5 + adds r1, r1, r5 + lsls r1, r1, #1 + adds r1, r1, r2 + strh r3, [r1] +_0814728E: + movs r1, #0x2e + ldrsh r0, [r4, r1] + lsls r0, r0, #1 + add r0, sp + ldrh r0, [r0] + ldrh r2, [r4, #0x20] + adds r0, r0, r2 + strh r0, [r4, #0x20] + adds r0, #0xf + lsls r0, r0, #0x10 + movs r1, #0x87 + lsls r1, r1, #0x11 + cmp r0, r1 + bls _081472B2 + adds r0, r4, #0 + movs r1, #0x2d + bl FieldEffectStop +_081472B2: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081472BC: .4byte 0x04000008 +_081472C0: .4byte 0x0000F001 + thumb_func_end sub_081471FC + + thumb_func_start Phase2Task_Groudon +Phase2Task_Groudon: @ 0x081472C4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _081472F4 + ldr r2, _081472F8 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_081472D6: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081472D6 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081472F4: .4byte 0x085A864C +_081472F8: .4byte 0x03005B60 + thumb_func_end Phase2Task_Groudon + + thumb_func_start Phase2_Clockwise_BlackFade_Func1 +Phase2_Clockwise_BlackFade_Func1: @ 0x081472FC + push {r4, lr} + adds r4, r0, #0 + bl sub_08149FC8 + bl ScanlineEffect_Clear + ldr r0, _08147350 + ldr r1, [r0] + movs r0, #0 + strh r0, [r1, #2] + movs r0, #0x3f + strh r0, [r1, #4] + ldr r0, _08147354 + strh r0, [r1, #6] + movs r0, #0xa0 + strh r0, [r1, #8] + movs r1, #0 + ldr r3, _08147358 + ldr r2, _0814735C +_08147322: + lsls r0, r1, #1 + adds r0, r0, r3 + strh r2, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0x9f + bls _08147322 + ldr r0, _08147360 + bl SetVBlankCallback + ldr r0, _08147350 + ldr r1, [r0] + movs r0, #0x78 + strh r0, [r1, #0x2c] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08147350: .4byte 0x0203A86C +_08147354: .4byte 0x0000F0F1 +_08147358: .4byte 0x02039048 +_0814735C: .4byte 0x0000F3F4 +_08147360: .4byte 0x08147749 + thumb_func_end Phase2_Clockwise_BlackFade_Func1 + + thumb_func_start Phase2_Clockwise_BlackFade_Func2 +Phase2_Clockwise_BlackFade_Func2: @ 0x08147364 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + adds r6, r0, #0 + ldr r2, _081473EC + ldr r1, [r2] + ldrb r0, [r1] + movs r0, #0 + strb r0, [r1] + ldr r1, [r2] + adds r0, r1, #0 + adds r0, #0x24 + movs r2, #0x2c + ldrsh r3, [r1, r2] + movs r1, #1 + rsbs r1, r1, #0 + str r1, [sp] + movs r1, #1 + str r1, [sp, #4] + str r1, [sp, #8] + movs r1, #0x78 + movs r2, #0x50 + bl sub_0814A26C + ldr r5, _081473F0 +_08147394: + ldr r4, _081473EC + ldr r0, [r4] + movs r7, #0x2a + ldrsh r3, [r0, r7] + lsls r3, r3, #1 + adds r3, r3, r5 + ldrh r1, [r0, #0x28] + adds r1, #1 + movs r7, #0xf0 + lsls r7, r7, #7 + adds r2, r7, #0 + orrs r1, r2 + strh r1, [r3] + adds r0, #0x24 + movs r1, #1 + movs r2, #1 + bl sub_0814A2E8 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08147394 + ldr r1, [r4] + ldrh r0, [r1, #0x2c] + adds r0, #0x10 + strh r0, [r1, #0x2c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xef + ble _081473D8 + movs r0, #0 + strh r0, [r1, #0x2e] + ldrh r0, [r6, #8] + adds r0, #1 + strh r0, [r6, #8] +_081473D8: + ldr r0, [r4] + ldrb r1, [r0] + adds r1, #1 + ldrb r2, [r0] + strb r1, [r0] + movs r0, #0 + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081473EC: .4byte 0x0203A86C +_081473F0: .4byte 0x020388C8 + thumb_func_end Phase2_Clockwise_BlackFade_Func2 + + thumb_func_start Phase2_Clockwise_BlackFade_Func3 +Phase2_Clockwise_BlackFade_Func3: @ 0x081473F4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x10 + mov r8, r0 + add r1, sp, #0xc + movs r0, #0 + strb r0, [r1] + ldr r4, _08147478 + ldr r1, [r4] + ldrb r0, [r1] + movs r0, #0 + strb r0, [r1] + ldr r1, [r4] + adds r0, r1, #0 + adds r0, #0x24 + movs r2, #0x2e + ldrsh r1, [r1, r2] + str r1, [sp] + movs r1, #1 + str r1, [sp, #4] + str r1, [sp, #8] + movs r1, #0x78 + movs r2, #0x50 + movs r3, #0xf0 + bl sub_0814A26C + mov sb, r4 + mov r7, sb + add r5, sp, #0xc +_08147432: + movs r1, #0x78 + ldr r3, [r7] + ldrh r0, [r3, #0x28] + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r2, #0x2e + ldrsh r0, [r3, r2] + cmp r0, #0x4f + ble _0814744A + ldrh r1, [r3, #0x28] + movs r4, #0xf0 +_0814744A: + ldr r6, _0814747C + movs r0, #0x2a + ldrsh r2, [r3, r0] + lsls r2, r2, #1 + adds r2, r2, r6 + lsls r1, r1, #0x10 + asrs r1, r1, #8 + lsls r0, r4, #0x10 + asrs r4, r0, #0x10 + orrs r4, r1 + strh r4, [r2] + ldrb r0, [r5] + cmp r0, #0 + bne _08147480 + adds r0, r3, #0 + adds r0, #0x24 + movs r1, #1 + movs r2, #1 + bl sub_0814A2E8 + strb r0, [r5] + b _08147432 + .align 2, 0 +_08147478: .4byte 0x0203A86C +_0814747C: .4byte 0x020388C8 +_08147480: + ldr r1, [r7] + ldrh r0, [r1, #0x2e] + adds r0, #8 + strh r0, [r1, #0x2e] + lsls r0, r0, #0x10 + asrs r2, r0, #0x10 + cmp r2, #0x9f + ble _0814749E + movs r0, #0xf0 + strh r0, [r1, #0x2c] + mov r1, r8 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _081474C6 +_0814749E: + movs r3, #0x2a + ldrsh r0, [r1, r3] + cmp r0, r2 + bge _081474C6 + adds r3, r4, #0 + ldr r5, _081474E4 +_081474AA: + ldr r2, [r5] + ldrh r0, [r2, #0x2a] + adds r0, #1 + strh r0, [r2, #0x2a] + lsls r0, r0, #0x10 + asrs r0, r0, #0xf + adds r0, r0, r6 + strh r3, [r0] + movs r4, #0x2a + ldrsh r1, [r2, r4] + movs r4, #0x2e + ldrsh r0, [r2, r4] + cmp r1, r0 + blt _081474AA +_081474C6: + mov r1, sb + ldr r0, [r1] + ldrb r1, [r0] + adds r1, #1 + ldrb r2, [r0] + strb r1, [r0] + movs r0, #0 + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081474E4: .4byte 0x0203A86C + thumb_func_end Phase2_Clockwise_BlackFade_Func3 + + thumb_func_start Phase2_Clockwise_BlackFade_Func4 +Phase2_Clockwise_BlackFade_Func4: @ 0x081474E8 + push {r4, r5, r6, lr} + sub sp, #0xc + adds r6, r0, #0 + ldr r2, _08147568 + ldr r1, [r2] + ldrb r0, [r1] + movs r0, #0 + strb r0, [r1] + ldr r1, [r2] + adds r0, r1, #0 + adds r0, #0x24 + movs r2, #0x2c + ldrsh r3, [r1, r2] + movs r1, #0xa0 + str r1, [sp] + movs r1, #1 + str r1, [sp, #4] + str r1, [sp, #8] + movs r1, #0x78 + movs r2, #0x50 + bl sub_0814A26C + ldr r5, _0814756C +_08147516: + ldr r4, _08147568 + ldr r0, [r4] + movs r1, #0x2a + ldrsh r3, [r0, r1] + lsls r3, r3, #1 + adds r3, r3, r5 + ldrh r1, [r0, #0x28] + lsls r1, r1, #8 + movs r2, #0xf0 + orrs r1, r2 + strh r1, [r3] + adds r0, #0x24 + movs r1, #1 + movs r2, #1 + bl sub_0814A2E8 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08147516 + ldr r1, [r4] + ldrh r0, [r1, #0x2c] + subs r0, #0x10 + strh r0, [r1, #0x2c] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _08147554 + movs r0, #0xa0 + strh r0, [r1, #0x2e] + ldrh r0, [r6, #8] + adds r0, #1 + strh r0, [r6, #8] +_08147554: + ldr r0, [r4] + ldrb r1, [r0] + adds r1, #1 + ldrb r2, [r0] + strb r1, [r0] + movs r0, #0 + add sp, #0xc + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08147568: .4byte 0x0203A86C +_0814756C: .4byte 0x020388C8 + thumb_func_end Phase2_Clockwise_BlackFade_Func4 + + thumb_func_start Phase2_Clockwise_BlackFade_Func5 +Phase2_Clockwise_BlackFade_Func5: @ 0x08147570 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + mov sb, r0 + add r1, sp, #0xc + movs r0, #0 + strb r0, [r1] + ldr r4, _081475F8 + ldr r1, [r4] + ldrb r0, [r1] + movs r0, #0 + strb r0, [r1] + ldr r1, [r4] + adds r0, r1, #0 + adds r0, #0x24 + movs r2, #0x2e + ldrsh r1, [r1, r2] + str r1, [sp] + movs r1, #1 + str r1, [sp, #4] + str r1, [sp, #8] + movs r1, #0x78 + movs r2, #0x50 + movs r3, #0 + bl sub_0814A26C + ldr r7, _081475FC + mov sl, r7 + ldr r0, _081475F8 + mov r8, r0 + add r6, sp, #0xc +_081475B4: + mov r1, r8 + ldr r4, [r1] + movs r2, #0x2a + ldrsh r0, [r4, r2] + lsls r0, r0, #1 + mov r7, sl + adds r5, r0, r7 + ldrb r1, [r5] + ldrh r2, [r4, #0x28] + adds r3, r2, #0 + movs r7, #0x2e + ldrsh r0, [r4, r7] + cmp r0, #0x50 + bgt _081475D4 + movs r2, #0x78 + adds r1, r3, #0 +_081475D4: + lsls r0, r2, #0x10 + asrs r0, r0, #8 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + orrs r1, r0 + movs r7, #0 + strh r1, [r5] + ldrb r0, [r6] + cmp r0, #0 + bne _08147600 + adds r0, r4, #0 + adds r0, #0x24 + movs r1, #1 + movs r2, #1 + bl sub_0814A2E8 + strb r0, [r6] + b _081475B4 + .align 2, 0 +_081475F8: .4byte 0x0203A86C +_081475FC: .4byte 0x020388C8 +_08147600: + mov r0, r8 + ldr r2, [r0] + ldrh r0, [r2, #0x2e] + subs r0, #8 + strh r0, [r2, #0x2e] + lsls r0, r0, #0x10 + asrs r3, r0, #0x10 + cmp r3, #0 + bgt _0814761E + strh r7, [r2, #0x2c] + mov r1, sb + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _08147648 +_0814761E: + movs r4, #0x2a + ldrsh r0, [r2, r4] + cmp r0, r3 + ble _08147648 + ldr r6, _08147668 + adds r3, r1, #0 + ldr r5, _0814766C +_0814762C: + ldr r2, [r5] + ldrh r0, [r2, #0x2a] + subs r0, #1 + strh r0, [r2, #0x2a] + lsls r0, r0, #0x10 + asrs r0, r0, #0xf + adds r0, r0, r6 + strh r3, [r0] + movs r7, #0x2a + ldrsh r1, [r2, r7] + movs r4, #0x2e + ldrsh r0, [r2, r4] + cmp r1, r0 + bgt _0814762C +_08147648: + ldr r7, _0814766C + ldr r0, [r7] + ldrb r1, [r0] + adds r1, #1 + ldrb r2, [r0] + strb r1, [r0] + movs r0, #0 + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08147668: .4byte 0x020388C8 +_0814766C: .4byte 0x0203A86C + thumb_func_end Phase2_Clockwise_BlackFade_Func5 + + thumb_func_start Phase2_Clockwise_BlackFade_Func6 +Phase2_Clockwise_BlackFade_Func6: @ 0x08147670 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + adds r7, r0, #0 + ldr r1, _08147700 + ldr r0, [r1] + ldrb r2, [r0] + movs r2, #0 + strb r2, [r0] + ldr r1, [r1] + adds r0, r1, #0 + adds r0, #0x24 + movs r4, #0x2c + ldrsh r3, [r1, r4] + str r2, [sp] + movs r1, #1 + str r1, [sp, #4] + str r1, [sp, #8] + movs r1, #0x78 + movs r2, #0x50 + bl sub_0814A26C + ldr r6, _08147704 +_0814769C: + movs r2, #0x78 + ldr r5, _08147700 + ldr r3, [r5] + ldrh r4, [r3, #0x28] + movs r1, #0x28 + ldrsh r0, [r3, r1] + cmp r0, #0x77 + ble _081476B0 + movs r2, #0 + movs r4, #0xf0 +_081476B0: + movs r0, #0x2a + ldrsh r1, [r3, r0] + lsls r1, r1, #1 + adds r1, r1, r6 + lsls r2, r2, #8 + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + orrs r0, r2 + strh r0, [r1] + adds r0, r3, #0 + adds r0, #0x24 + movs r1, #1 + movs r2, #1 + bl sub_0814A2E8 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0814769C + ldr r0, [r5] + ldrh r1, [r0, #0x2c] + adds r1, #0x10 + strh r1, [r0, #0x2c] + movs r1, #0x28 + ldrsh r0, [r0, r1] + cmp r0, #0x78 + ble _081476EA + ldrh r0, [r7, #8] + adds r0, #1 + strh r0, [r7, #8] +_081476EA: + ldr r0, [r5] + ldrb r1, [r0] + adds r1, #1 + ldrb r2, [r0] + strb r1, [r0] + movs r0, #0 + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08147700: .4byte 0x0203A86C +_08147704: .4byte 0x020388C8 + thumb_func_end Phase2_Clockwise_BlackFade_Func6 + + thumb_func_start Phase2_Clockwise_BlackFade_Func7 +Phase2_Clockwise_BlackFade_Func7: @ 0x08147708 + push {lr} + ldr r1, _08147738 + ldrh r2, [r1, #0xa] + ldr r0, _0814773C + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r2, [r1, #0xa] + ldr r0, _08147740 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + bl sub_0814A044 + ldr r0, _08147744 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_08147738: .4byte 0x040000B0 +_0814773C: .4byte 0x0000C5FF +_08147740: .4byte 0x00007FFF +_08147744: .4byte 0x081472C5 + thumb_func_end Phase2_Clockwise_BlackFade_Func7 + + thumb_func_start VBlankCB_Phase2_Clockwise_BlackFade +VBlankCB_Phase2_Clockwise_BlackFade: @ 0x08147748 + push {r4, lr} + ldr r4, _081477B4 + ldrh r1, [r4, #0xa] + ldr r0, _081477B8 + ands r0, r1 + strh r0, [r4, #0xa] + ldrh r1, [r4, #0xa] + ldr r0, _081477BC + ands r0, r1 + strh r0, [r4, #0xa] + ldrh r0, [r4, #0xa] + bl VBlankCB_BattleTransition + ldr r3, _081477C0 + ldr r0, [r3] + ldrb r0, [r0] + cmp r0, #0 + beq _08147780 + ldr r1, _081477C4 + ldr r0, _081477C8 + str r0, [r1] + movs r2, #0xf0 + lsls r2, r2, #3 + adds r0, r0, r2 + str r0, [r1, #4] + ldr r0, _081477CC + str r0, [r1, #8] + ldr r0, [r1, #8] +_08147780: + ldr r2, _081477D0 + ldr r1, [r3] + ldrh r0, [r1, #2] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #4] + strh r0, [r2] + subs r2, #6 + ldrh r0, [r1, #8] + strh r0, [r2] + subs r2, #4 + ldr r0, _081477C8 + movs r1, #0xf0 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrh r1, [r0] + strh r1, [r2] + str r0, [r4] + str r2, [r4, #4] + ldr r0, _081477D4 + str r0, [r4, #8] + ldr r0, [r4, #8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081477B4: .4byte 0x040000B0 +_081477B8: .4byte 0x0000C5FF +_081477BC: .4byte 0x00007FFF +_081477C0: .4byte 0x0203A86C +_081477C4: .4byte 0x040000D4 +_081477C8: .4byte 0x020388C8 +_081477CC: .4byte 0x800000A0 +_081477D0: .4byte 0x04000048 +_081477D4: .4byte 0xA2400001 + thumb_func_end VBlankCB_Phase2_Clockwise_BlackFade + + thumb_func_start Phase2Task_Kyogre +Phase2Task_Kyogre: @ 0x081477D8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _08147808 + ldr r2, _0814780C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_081477EA: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081477EA + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08147808: .4byte 0x085A8668 +_0814780C: .4byte 0x03005B60 + thumb_func_end Phase2Task_Kyogre + + thumb_func_start Phase2_Ripple_Func1 +Phase2_Ripple_Func1: @ 0x08147810 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08149FC8 + bl ScanlineEffect_Clear + movs r2, #0 + ldr r4, _08147858 + ldr r3, _0814785C +_08147822: + lsls r1, r2, #1 + adds r1, r1, r4 + ldr r0, [r3] + ldrh r0, [r0, #0x16] + strh r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x9f + bls _08147822 + ldr r0, _08147860 + bl SetVBlankCallback + ldr r0, _08147864 + bl SetHBlankCallback + movs r0, #2 + bl EnableInterrupts + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08147858: .4byte 0x02039048 +_0814785C: .4byte 0x0203A86C +_08147860: .4byte 0x08147949 +_08147864: .4byte 0x08147981 + thumb_func_end Phase2_Ripple_Func1 + + thumb_func_start Phase2_Ripple_Func2 +Phase2_Ripple_Func2: @ 0x08147868 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r6, r0, #0 + ldr r0, _08147934 + ldr r1, [r0] + ldrb r0, [r1] + movs r0, #0 + strb r0, [r1] + ldrh r2, [r6, #0xc] + lsls r1, r2, #0x10 + asrs r0, r1, #0x18 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldrh r4, [r6, #0xa] + movs r0, #0xc0 + lsls r0, r0, #1 + mov r8, r0 + movs r5, #0x80 + lsls r5, r5, #3 + adds r0, r4, r5 + strh r0, [r6, #0xa] + ldr r0, _08147938 + cmp r1, r0 + bgt _081478A4 + movs r1, #0xc0 + lsls r1, r1, #1 + adds r0, r2, r1 + strh r0, [r6, #0xc] +_081478A4: + movs r5, #0 + lsls r7, r3, #0x10 +_081478A8: + lsrs r0, r4, #8 + asrs r1, r7, #0x10 + bl Sin + ldr r1, _0814793C + lsls r2, r5, #1 + adds r2, r2, r1 + ldr r1, _08147934 + ldr r1, [r1] + ldrh r1, [r1, #0x16] + adds r0, r0, r1 + strh r0, [r2] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + mov r1, r8 + adds r0, r4, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r5, #0x9f + bls _081478A8 + ldrh r0, [r6, #0xe] + adds r0, #1 + strh r0, [r6, #0xe] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x51 + bne _081478F8 + ldrh r0, [r6, #0x10] + adds r0, #1 + strh r0, [r6, #0x10] + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #2 + rsbs r1, r1, #0 + movs r2, #0 + str r2, [sp] + movs r3, #0x10 + bl BeginNormalPaletteFade +_081478F8: + movs r5, #0x10 + ldrsh r0, [r6, r5] + cmp r0, #0 + beq _0814791A + ldr r0, _08147940 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0814791A + ldr r0, _08147944 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_0814791A: + ldr r0, _08147934 + ldr r1, [r0] + ldrb r0, [r1] + adds r0, #1 + ldrb r2, [r1] + strb r0, [r1] + movs r0, #0 + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08147934: .4byte 0x0203A86C +_08147938: .4byte 0x1FFF0000 +_0814793C: .4byte 0x020388C8 +_08147940: .4byte 0x02037C74 +_08147944: .4byte 0x081477D9 + thumb_func_end Phase2_Ripple_Func2 + + thumb_func_start VBlankCB_Phase2_Ripple +VBlankCB_Phase2_Ripple: @ 0x08147948 + push {lr} + bl VBlankCB_BattleTransition + ldr r0, _08147970 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #0 + beq _0814796C + ldr r1, _08147974 + ldr r0, _08147978 + str r0, [r1] + movs r2, #0xf0 + lsls r2, r2, #3 + adds r0, r0, r2 + str r0, [r1, #4] + ldr r0, _0814797C + str r0, [r1, #8] + ldr r0, [r1, #8] +_0814796C: + pop {r0} + bx r0 + .align 2, 0 +_08147970: .4byte 0x0203A86C +_08147974: .4byte 0x040000D4 +_08147978: .4byte 0x020388C8 +_0814797C: .4byte 0x800000A0 + thumb_func_end VBlankCB_Phase2_Ripple + + thumb_func_start HBlankCB_Phase2_Ripple +HBlankCB_Phase2_Ripple: @ 0x08147980 + ldr r1, _081479A0 + ldr r0, _081479A4 + ldrh r0, [r0] + lsls r0, r0, #1 + movs r2, #0xf0 + lsls r2, r2, #3 + adds r1, r1, r2 + adds r0, r0, r1 + ldrh r1, [r0] + ldr r0, _081479A8 + strh r1, [r0] + adds r0, #4 + strh r1, [r0] + adds r0, #4 + strh r1, [r0] + bx lr + .align 2, 0 +_081479A0: .4byte 0x020388C8 +_081479A4: .4byte 0x04000006 +_081479A8: .4byte 0x04000016 + thumb_func_end HBlankCB_Phase2_Ripple + + thumb_func_start Phase2Task_MugShotTransition +Phase2Task_MugShotTransition: @ 0x081479AC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _081479DC + ldr r2, _081479E0 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_081479BE: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081479BE + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081479DC: .4byte 0x085A8670 +_081479E0: .4byte 0x03005B60 + thumb_func_end Phase2Task_MugShotTransition + + thumb_func_start Phase2_Wave_Func1 +Phase2_Wave_Func1: @ 0x081479E4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08149FC8 + bl ScanlineEffect_Clear + ldr r0, _08147A30 + ldr r1, [r0] + movs r2, #0 + movs r0, #0x3f + strh r0, [r1, #2] + strh r2, [r1, #4] + movs r0, #0xf0 + strh r0, [r1, #6] + movs r0, #0xa0 + strh r0, [r1, #8] + movs r1, #0 + ldr r3, _08147A34 + movs r2, #0xf2 +_08147A0A: + lsls r0, r1, #1 + adds r0, r0, r3 + strh r2, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x9f + bls _08147A0A + ldr r0, _08147A38 + bl SetVBlankCallback + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08147A30: .4byte 0x0203A86C +_08147A34: .4byte 0x02039048 +_08147A38: .4byte 0x08147B19 + thumb_func_end Phase2_Wave_Func1 + + thumb_func_start Phase2_Wave_Func2 +Phase2_Wave_Func2: @ 0x08147A3C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldr r0, _08147AD0 + ldr r1, [r0] + ldrb r0, [r1] + movs r0, #0 + strb r0, [r1] + ldr r7, _08147AD4 + ldrh r0, [r4, #0xc] + ldrb r5, [r4, #0xc] + adds r0, #0x10 + strh r0, [r4, #0xc] + ldrh r0, [r4, #0xa] + adds r0, #8 + strh r0, [r4, #0xa] + movs r6, #0 + movs r0, #1 + mov r8, r0 +_08147A64: + adds r0, r5, #0 + movs r1, #0x28 + bl Sin + ldrh r1, [r4, #0xa] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r0, #0 + bge _08147A7A + movs r1, #0 +_08147A7A: + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xf0 + ble _08147A84 + movs r1, #0xf0 +_08147A84: + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + lsls r1, r0, #8 + movs r2, #0xf1 + orrs r1, r2 + strh r1, [r7] + cmp r0, #0xef + bgt _08147A98 + movs r0, #0 + mov r8, r0 +_08147A98: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r0, r5, #4 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r7, #2 + cmp r6, #0x9f + bls _08147A64 + mov r1, r8 + cmp r1, #0 + beq _08147AB6 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_08147AB6: + ldr r0, _08147AD0 + ldr r1, [r0] + ldrb r0, [r1] + adds r0, #1 + ldrb r2, [r1] + strb r0, [r1] + movs r0, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08147AD0: .4byte 0x0203A86C +_08147AD4: .4byte 0x020388C8 + thumb_func_end Phase2_Wave_Func2 + + thumb_func_start Phase2_Wave_Func3 +Phase2_Wave_Func3: @ 0x08147AD8 + push {lr} + ldr r1, _08147B08 + ldrh r2, [r1, #0xa] + ldr r0, _08147B0C + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r2, [r1, #0xa] + ldr r0, _08147B10 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + bl sub_0814A044 + ldr r0, _08147B14 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_08147B08: .4byte 0x040000B0 +_08147B0C: .4byte 0x0000C5FF +_08147B10: .4byte 0x00007FFF +_08147B14: .4byte 0x081479AD + thumb_func_end Phase2_Wave_Func3 + + thumb_func_start VBlankCB_Phase2_Wave +VBlankCB_Phase2_Wave: @ 0x08147B18 + push {r4, lr} + ldr r4, _08147B78 + ldrh r1, [r4, #0xa] + ldr r0, _08147B7C + ands r0, r1 + strh r0, [r4, #0xa] + ldrh r1, [r4, #0xa] + ldr r0, _08147B80 + ands r0, r1 + strh r0, [r4, #0xa] + ldrh r0, [r4, #0xa] + bl VBlankCB_BattleTransition + ldr r3, _08147B84 + ldr r0, [r3] + ldrb r0, [r0] + cmp r0, #0 + beq _08147B50 + ldr r1, _08147B88 + ldr r0, _08147B8C + str r0, [r1] + movs r2, #0xf0 + lsls r2, r2, #3 + adds r0, r0, r2 + str r0, [r1, #4] + ldr r0, _08147B90 + str r0, [r1, #8] + ldr r0, [r1, #8] +_08147B50: + ldr r2, _08147B94 + ldr r1, [r3] + ldrh r0, [r1, #2] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #4] + strh r0, [r2] + subs r2, #6 + ldrh r0, [r1, #8] + strh r0, [r2] + ldr r0, _08147B98 + str r0, [r4] + ldr r0, _08147B9C + str r0, [r4, #4] + ldr r0, _08147BA0 + str r0, [r4, #8] + ldr r0, [r4, #8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08147B78: .4byte 0x040000B0 +_08147B7C: .4byte 0x0000C5FF +_08147B80: .4byte 0x00007FFF +_08147B84: .4byte 0x0203A86C +_08147B88: .4byte 0x040000D4 +_08147B8C: .4byte 0x020388C8 +_08147B90: .4byte 0x800000A0 +_08147B94: .4byte 0x04000048 +_08147B98: .4byte 0x02039048 +_08147B9C: .4byte 0x04000040 +_08147BA0: .4byte 0xA2400001 + thumb_func_end VBlankCB_Phase2_Wave + + thumb_func_start Phase2Task_Sidney +Phase2Task_Sidney: @ 0x08147BA4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08147BC0 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r2, #0 + strh r2, [r1, #0x26] + bl Phase2Task_PokeballsTrail + pop {r0} + bx r0 + .align 2, 0 +_08147BC0: .4byte 0x03005B60 + thumb_func_end Phase2Task_Sidney + + thumb_func_start Phase2Task_Phoebe +Phase2Task_Phoebe: @ 0x08147BC4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08147BE0 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r2, #1 + strh r2, [r1, #0x26] + bl Phase2Task_PokeballsTrail + pop {r0} + bx r0 + .align 2, 0 +_08147BE0: .4byte 0x03005B60 + thumb_func_end Phase2Task_Phoebe + + thumb_func_start Phase2Task_Glacia +Phase2Task_Glacia: @ 0x08147BE4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08147C00 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r2, #2 + strh r2, [r1, #0x26] + bl Phase2Task_PokeballsTrail + pop {r0} + bx r0 + .align 2, 0 +_08147C00: .4byte 0x03005B60 + thumb_func_end Phase2Task_Glacia + + thumb_func_start Phase2Task_Drake +Phase2Task_Drake: @ 0x08147C04 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08147C20 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r2, #3 + strh r2, [r1, #0x26] + bl Phase2Task_PokeballsTrail + pop {r0} + bx r0 + .align 2, 0 +_08147C20: .4byte 0x03005B60 + thumb_func_end Phase2Task_Drake + + thumb_func_start Phase2Task_Champion +Phase2Task_Champion: @ 0x08147C24 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08147C40 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r2, #4 + strh r2, [r1, #0x26] + bl Phase2Task_PokeballsTrail + pop {r0} + bx r0 + .align 2, 0 +_08147C40: .4byte 0x03005B60 + thumb_func_end Phase2Task_Champion + + thumb_func_start Phase2Task_PokeballsTrail +Phase2Task_PokeballsTrail: @ 0x08147C44 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _08147C74 + ldr r2, _08147C78 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_08147C56: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08147C56 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08147C74: .4byte 0x085A867C +_08147C78: .4byte 0x03005B60 + thumb_func_end Phase2Task_PokeballsTrail + + thumb_func_start Phase2_Mugshot_Func1 +Phase2_Mugshot_Func1: @ 0x08147C7C + push {r4, lr} + adds r4, r0, #0 + bl sub_08149FC8 + bl ScanlineEffect_Clear + adds r0, r4, #0 + bl Mugshots_CreateOpponentPlayerSprites + movs r0, #0 + strh r0, [r4, #0xa] + movs r0, #1 + strh r0, [r4, #0xc] + movs r0, #0xef + strh r0, [r4, #0xe] + ldr r0, _08147CD4 + ldr r1, [r0] + movs r0, #0x3f + strh r0, [r1, #2] + movs r0, #0x3e + strh r0, [r1, #4] + movs r0, #0xa0 + strh r0, [r1, #8] + movs r1, #0 + ldr r3, _08147CD8 + ldr r2, _08147CDC +_08147CB0: + lsls r0, r1, #1 + adds r0, r0, r3 + strh r2, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x9f + bls _08147CB0 + ldr r0, _08147CE0 + bl SetVBlankCallback + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08147CD4: .4byte 0x0203A86C +_08147CD8: .4byte 0x02039048 +_08147CDC: .4byte 0x0000F0F1 +_08147CE0: .4byte 0x0814818D + thumb_func_end Phase2_Mugshot_Func1 + + thumb_func_start Phase2_Mugshot_Func2 +Phase2_Mugshot_Func2: @ 0x08147CE4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + mov r8, r0 + ldr r6, _08147D8C + add r1, sp, #4 + mov r0, sp + bl sub_0814A018 + ldr r0, _08147D90 + ldr r1, [sp, #4] + movs r2, #0xf0 + bl CpuSet + ldr r1, _08147D94 + mov r2, r8 + movs r3, #0x26 + ldrsh r0, [r2, r3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + ldr r1, _08147D98 + ldr r0, _08147D9C + ldr r0, [r0] + ldrb r0, [r0, #8] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0xfa + movs r2, #0xc + bl LoadPalette + movs r1, #0 + ldr r5, [sp] + movs r0, #0xf0 + lsls r0, r0, #8 + adds r7, r0, #0 +_08147D38: + movs r0, #0 + lsls r3, r1, #0x10 + asrs r4, r3, #0xb +_08147D3E: + lsls r2, r0, #0x10 + asrs r2, r2, #0x10 + adds r1, r4, r2 + lsls r1, r1, #1 + adds r1, r1, r5 + ldrh r0, [r6] + orrs r0, r7 + strh r0, [r1] + adds r2, #1 + lsls r2, r2, #0x10 + adds r6, #2 + lsrs r0, r2, #0x10 + asrs r2, r2, #0x10 + cmp r2, #0x1f + ble _08147D3E + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r3, r1 + lsrs r1, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x13 + ble _08147D38 + movs r0, #2 + bl EnableInterrupts + ldr r0, _08147DA0 + bl SetHBlankCallback + mov r2, r8 + ldrh r0, [r2, #8] + adds r0, #1 + strh r0, [r2, #8] + movs r0, #0 + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08147D8C: .4byte 0x085A8F80 +_08147D90: .4byte 0x085995A0 +_08147D94: .4byte 0x085A8A8C +_08147D98: .4byte 0x085A8AA0 +_08147D9C: .4byte 0x03005AF0 +_08147DA0: .4byte 0x081482A1 + thumb_func_end Phase2_Mugshot_Func2 + + thumb_func_start Phase2_Mugshot_Func3 +Phase2_Mugshot_Func3: @ 0x08147DA4 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r0, _08147E88 + ldr r1, [r0] + ldrb r0, [r1] + movs r0, #0 + strb r0, [r1] + ldr r7, _08147E8C + ldrh r0, [r4, #0xa] + ldrb r5, [r4, #0xa] + adds r0, #0x10 + strh r0, [r4, #0xa] + movs r6, #0 +_08147DBE: + adds r0, r5, #0 + movs r1, #0x10 + bl Sin + ldrh r1, [r4, #0xc] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r0, #0 + bge _08147DD4 + movs r2, #1 +_08147DD4: + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xf0 + ble _08147DDE + movs r2, #0xf0 +_08147DDE: + strh r2, [r7] + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r7, #2 + adds r0, r5, #0 + adds r0, #0x10 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r6, #0x4f + bls _08147DBE + cmp r6, #0x9f + bhi _08147E36 +_08147DF8: + adds r0, r5, #0 + movs r1, #0x10 + bl Sin + ldrh r1, [r4, #0xe] + subs r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r2, r1, #0x10 + cmp r1, #0 + bge _08147E0E + movs r2, #0 +_08147E0E: + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xef + ble _08147E18 + movs r2, #0xef +_08147E18: + lsls r0, r2, #0x10 + asrs r0, r0, #8 + movs r1, #0xf0 + orrs r0, r1 + strh r0, [r7] + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r7, #2 + adds r0, r5, #0 + adds r0, #0x10 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r6, #0x9f + bls _08147DF8 +_08147E36: + ldrh r1, [r4, #0xc] + adds r1, #8 + strh r1, [r4, #0xc] + ldrh r0, [r4, #0xe] + subs r0, #8 + strh r0, [r4, #0xe] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #0xf0 + ble _08147E4E + movs r0, #0xf0 + strh r0, [r4, #0xc] +_08147E4E: + movs r1, #0xe + ldrsh r0, [r4, r1] + cmp r0, #0 + bge _08147E5A + movs r0, #0 + strh r0, [r4, #0xe] +_08147E5A: + ldr r0, [r4, #0xc] + cmp r0, #0xf0 + bne _08147E66 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_08147E66: + ldr r0, _08147E88 + ldr r1, [r0] + ldrh r0, [r1, #0x18] + subs r0, #8 + strh r0, [r1, #0x18] + ldrh r0, [r1, #0x1a] + adds r0, #8 + strh r0, [r1, #0x1a] + ldrb r0, [r1] + adds r0, #1 + ldrb r2, [r1] + strb r0, [r1] + movs r0, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08147E88: .4byte 0x0203A86C +_08147E8C: .4byte 0x020388C8 + thumb_func_end Phase2_Mugshot_Func3 + + thumb_func_start Phase2_Mugshot_Func4 +Phase2_Mugshot_Func4: @ 0x08147E90 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _08147F04 + ldr r1, [r2] + ldrb r0, [r1] + movs r0, #0 + strb r0, [r1] + ldr r1, _08147F08 + adds r5, r2, #0 + movs r2, #0xf0 +_08147EA4: + strh r2, [r1] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, #2 + cmp r0, #0x9f + bls _08147EA4 + ldrh r0, [r4, #8] + adds r0, #1 + movs r1, #0 + strh r0, [r4, #8] + strh r1, [r4, #0xa] + strh r1, [r4, #0xc] + strh r1, [r4, #0xe] + ldr r1, [r5] + ldrh r0, [r1, #0x18] + subs r0, #8 + strh r0, [r1, #0x18] + ldrh r0, [r1, #0x1a] + adds r0, #8 + strh r0, [r1, #0x1a] + movs r1, #0x22 + ldrsh r0, [r4, r1] + movs r1, #0 + bl sub_08148544 + movs r1, #0x24 + ldrsh r0, [r4, r1] + movs r1, #1 + bl sub_08148544 + movs r1, #0x22 + ldrsh r0, [r4, r1] + bl sub_0814855C + movs r0, #0x68 + bl PlaySE + ldr r1, [r5] + ldrb r0, [r1] + adds r0, #1 + ldrb r2, [r1] + strb r0, [r1] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08147F04: .4byte 0x0203A86C +_08147F08: .4byte 0x020388C8 + thumb_func_end Phase2_Mugshot_Func4 + + thumb_func_start Phase2_Mugshot_Func5 +Phase2_Mugshot_Func5: @ 0x08147F0C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08147F44 + ldr r1, [r0] + ldrh r0, [r1, #0x18] + subs r0, #8 + strh r0, [r1, #0x18] + ldrh r0, [r1, #0x1a] + adds r0, #8 + strh r0, [r1, #0x1a] + movs r1, #0x22 + ldrsh r0, [r4, r1] + bl sub_08148578 + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08147F3C + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r1, #0x24 + ldrsh r0, [r4, r1] + bl sub_0814855C +_08147F3C: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08147F44: .4byte 0x0203A86C + thumb_func_end Phase2_Mugshot_Func5 + + thumb_func_start Phase2_Mugshot_Func6 +Phase2_Mugshot_Func6: @ 0x08147F48 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + ldr r7, _08147FE8 + ldr r1, [r7] + ldrh r0, [r1, #0x18] + subs r0, #8 + movs r2, #0 + mov r8, r2 + strh r0, [r1, #0x18] + ldrh r0, [r1, #0x1a] + adds r0, #8 + strh r0, [r1, #0x1a] + movs r1, #0x24 + ldrsh r0, [r6, r1] + bl sub_08148578 + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08147FDC + ldr r1, [r7] + ldrb r0, [r1] + movs r0, #0 + strb r0, [r1] + movs r0, #0 + bl SetVBlankCallback + ldr r1, _08147FEC + ldrh r2, [r1, #0xa] + ldr r0, _08147FF0 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r2, [r1, #0xa] + ldr r0, _08147FF4 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + ldr r4, _08147FF8 + movs r5, #0xa0 + lsls r5, r5, #1 + adds r0, r4, #0 + movs r1, #0 + adds r2, r5, #0 + bl memset + movs r2, #0xf0 + lsls r2, r2, #3 + adds r4, r4, r2 + adds r0, r4, #0 + movs r1, #0 + adds r2, r5, #0 + bl memset + movs r0, #0x40 + movs r1, #0xf0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + ldrh r0, [r6, #8] + adds r0, #1 + strh r0, [r6, #8] + mov r0, r8 + strh r0, [r6, #0xe] + strh r0, [r6, #0x10] + ldr r1, [r7] + movs r0, #0xbf + strh r0, [r1, #0xe] + ldr r0, _08147FFC + bl SetVBlankCallback +_08147FDC: + movs r0, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08147FE8: .4byte 0x0203A86C +_08147FEC: .4byte 0x040000B0 +_08147FF0: .4byte 0x0000C5FF +_08147FF4: .4byte 0x00007FFF +_08147FF8: .4byte 0x020388C8 +_08147FFC: .4byte 0x08148221 + thumb_func_end Phase2_Mugshot_Func6 + + thumb_func_start Phase2_Mugshot_Func7 +Phase2_Mugshot_Func7: @ 0x08148000 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r2, _081480C0 + ldr r1, [r2] + ldrb r0, [r1] + movs r0, #0 + strb r0, [r1] + movs r6, #1 + ldr r1, [r2] + ldrh r0, [r1, #0x18] + subs r0, #8 + strh r0, [r1, #0x18] + ldrh r0, [r1, #0x1a] + adds r0, #8 + strh r0, [r1, #0x1a] + ldrh r1, [r4, #0x10] + movs r3, #0x10 + ldrsh r0, [r4, r3] + mov ip, r2 + cmp r0, #0x4f + bgt _0814802E + adds r0, r1, #2 + strh r0, [r4, #0x10] +_0814802E: + movs r1, #0x10 + ldrsh r0, [r4, r1] + cmp r0, #0x50 + ble _0814803A + movs r0, #0x50 + strh r0, [r4, #0x10] +_0814803A: + ldrh r0, [r4, #0xe] + adds r0, #1 + strh r0, [r4, #0xe] + movs r1, #1 + ands r0, r1 + ldrh r3, [r4, #0x10] + cmp r0, #0 + beq _0814809C + movs r2, #0 + lsls r0, r3, #0x10 + movs r6, #0 + cmp r0, #0 + blt _0814809C + movs r7, #0x50 + ldr r5, _081480C4 +_08148058: + lsls r0, r2, #0x10 + asrs r3, r0, #0x10 + subs r1, r7, r3 + adds r0, r3, #0 + adds r0, #0x50 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0xf + adds r1, r1, r5 + ldrh r0, [r1] + cmp r0, #0xf + bhi _08148078 + movs r6, #1 + adds r0, #1 + strh r0, [r1] +_08148078: + lsls r0, r2, #0x10 + asrs r0, r0, #0xf + adds r1, r0, r5 + ldrh r0, [r1] + cmp r0, #0xf + bhi _0814808A + movs r6, #1 + adds r0, #1 + strh r0, [r1] +_0814808A: + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + asrs r0, r0, #0x10 + movs r3, #0x10 + ldrsh r1, [r4, r3] + ldrh r3, [r4, #0x10] + cmp r0, r1 + ble _08148058 +_0814809C: + cmp r3, #0x50 + bne _081480AA + cmp r6, #0 + bne _081480AA + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_081480AA: + mov r1, ip + ldr r0, [r1] + ldrb r1, [r0] + adds r1, #1 + ldrb r2, [r0] + strb r1, [r0] + movs r0, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081480C0: .4byte 0x0203A86C +_081480C4: .4byte 0x020388C8 + thumb_func_end Phase2_Mugshot_Func7 + + thumb_func_start Phase2_Mugshot_Func8 +Phase2_Mugshot_Func8: @ 0x081480C8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r5, _081480F8 + ldr r0, [r5] + ldrb r1, [r0] + movs r6, #0 + strb r6, [r0] + movs r0, #1 + rsbs r0, r0, #0 + ldr r2, _081480FC + movs r1, #0x10 + bl BlendPalettes + ldr r1, [r5] + movs r0, #0xff + strh r0, [r1, #0xe] + strh r6, [r4, #0xe] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #1 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_081480F8: .4byte 0x0203A86C +_081480FC: .4byte 0x00007FFF + thumb_func_end Phase2_Mugshot_Func8 + + thumb_func_start Phase2_Mugshot_Func9 +Phase2_Mugshot_Func9: @ 0x08148100 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08148144 + ldr r1, [r5] + ldrb r0, [r1] + movs r0, #0 + strb r0, [r1] + ldrh r0, [r4, #0xe] + adds r0, #1 + strh r0, [r4, #0xe] + ldr r0, _08148148 + movs r2, #0xe + ldrsh r1, [r4, r2] + movs r2, #0xa0 + lsls r2, r2, #1 + bl memset + movs r1, #0xe + ldrsh r0, [r4, r1] + cmp r0, #0xf + ble _08148130 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_08148130: + ldr r0, [r5] + ldrb r1, [r0] + adds r1, #1 + ldrb r2, [r0] + strb r1, [r0] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08148144: .4byte 0x0203A86C +_08148148: .4byte 0x020388C8 + thumb_func_end Phase2_Mugshot_Func9 + + thumb_func_start Phase2_Mugshot_Func10 +Phase2_Mugshot_Func10: @ 0x0814814C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08148180 + ldrh r2, [r1, #0xa] + ldr r0, _08148184 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r2, [r1, #0xa] + ldr r0, _08148188 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + bl sub_0814A044 + ldr r0, [r4] + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08148180: .4byte 0x040000B0 +_08148184: .4byte 0x0000C5FF +_08148188: .4byte 0x00007FFF + thumb_func_end Phase2_Mugshot_Func10 + + thumb_func_start VBlankCB0_Phase2_Mugshots +VBlankCB0_Phase2_Mugshots: @ 0x0814818C + push {r4, lr} + ldr r4, _081481F4 + ldrh r1, [r4, #0xa] + ldr r0, _081481F8 + ands r0, r1 + strh r0, [r4, #0xa] + ldrh r1, [r4, #0xa] + ldr r0, _081481FC + ands r0, r1 + strh r0, [r4, #0xa] + ldrh r0, [r4, #0xa] + bl VBlankCB_BattleTransition + ldr r3, _08148200 + ldr r0, [r3] + ldrb r0, [r0] + cmp r0, #0 + beq _081481C4 + ldr r1, _08148204 + ldr r0, _08148208 + str r0, [r1] + movs r2, #0xf0 + lsls r2, r2, #3 + adds r0, r0, r2 + str r0, [r1, #4] + ldr r0, _0814820C + str r0, [r1, #8] + ldr r0, [r1, #8] +_081481C4: + ldr r2, _08148210 + ldr r1, [r3] + ldrh r0, [r1, #0x1c] + strh r0, [r2] + adds r2, #0x36 + ldrh r0, [r1, #2] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #4] + strh r0, [r2] + subs r2, #6 + ldrh r0, [r1, #8] + strh r0, [r2] + ldr r0, _08148214 + str r0, [r4] + ldr r0, _08148218 + str r0, [r4, #4] + ldr r0, _0814821C + str r0, [r4, #8] + ldr r0, [r4, #8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081481F4: .4byte 0x040000B0 +_081481F8: .4byte 0x0000C5FF +_081481FC: .4byte 0x00007FFF +_08148200: .4byte 0x0203A86C +_08148204: .4byte 0x040000D4 +_08148208: .4byte 0x020388C8 +_0814820C: .4byte 0x800000A0 +_08148210: .4byte 0x04000012 +_08148214: .4byte 0x02039048 +_08148218: .4byte 0x04000040 +_0814821C: .4byte 0xA2400001 + thumb_func_end VBlankCB0_Phase2_Mugshots + + thumb_func_start VBlankCB1_Phase2_Mugshots +VBlankCB1_Phase2_Mugshots: @ 0x08148220 + push {r4, lr} + ldr r4, _08148274 + ldrh r1, [r4, #0xa] + ldr r0, _08148278 + ands r0, r1 + strh r0, [r4, #0xa] + ldrh r1, [r4, #0xa] + ldr r0, _0814827C + ands r0, r1 + strh r0, [r4, #0xa] + ldrh r0, [r4, #0xa] + bl VBlankCB_BattleTransition + ldr r2, _08148280 + ldr r0, [r2] + ldrb r0, [r0] + cmp r0, #0 + beq _08148258 + ldr r1, _08148284 + ldr r0, _08148288 + str r0, [r1] + movs r3, #0xf0 + lsls r3, r3, #3 + adds r0, r0, r3 + str r0, [r1, #4] + ldr r0, _0814828C + str r0, [r1, #8] + ldr r0, [r1, #8] +_08148258: + ldr r1, _08148290 + ldr r0, [r2] + ldrh r0, [r0, #0xe] + strh r0, [r1] + ldr r0, _08148294 + str r0, [r4] + ldr r0, _08148298 + str r0, [r4, #4] + ldr r0, _0814829C + str r0, [r4, #8] + ldr r0, [r4, #8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08148274: .4byte 0x040000B0 +_08148278: .4byte 0x0000C5FF +_0814827C: .4byte 0x00007FFF +_08148280: .4byte 0x0203A86C +_08148284: .4byte 0x040000D4 +_08148288: .4byte 0x020388C8 +_0814828C: .4byte 0x800000A0 +_08148290: .4byte 0x04000050 +_08148294: .4byte 0x02039048 +_08148298: .4byte 0x04000054 +_0814829C: .4byte 0xA2400001 + thumb_func_end VBlankCB1_Phase2_Mugshots + + thumb_func_start HBlankCB_Phase2_Mugshots +HBlankCB_Phase2_Mugshots: @ 0x081482A0 + push {lr} + ldr r0, _081482B4 + ldrh r0, [r0] + cmp r0, #0x4f + bhi _081482C0 + ldr r1, _081482B8 + ldr r0, _081482BC + ldr r0, [r0] + ldrh r0, [r0, #0x18] + b _081482C8 + .align 2, 0 +_081482B4: .4byte 0x04000006 +_081482B8: .4byte 0x04000010 +_081482BC: .4byte 0x0203A86C +_081482C0: + ldr r1, _081482D0 + ldr r0, _081482D4 + ldr r0, [r0] + ldrh r0, [r0, #0x1a] +_081482C8: + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_081482D0: .4byte 0x04000010 +_081482D4: .4byte 0x0203A86C + thumb_func_end HBlankCB_Phase2_Mugshots + + thumb_func_start Mugshots_CreateOpponentPlayerSprites +Mugshots_CreateOpponentPlayerSprites: @ 0x081482D8 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #4 + adds r4, r0, #0 + ldr r0, _08148420 + movs r2, #0x26 + ldrsh r1, [r4, r2] + mov r8, r1 + add r0, r8 + ldrb r0, [r0] + ldr r2, _08148424 + lsls r1, r1, #2 + mov r8, r1 + adds r1, r1, r2 + ldrh r1, [r1] + subs r1, #0x20 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r2, #2 + add r2, r8 + ldrh r2, [r2] + adds r2, #0x2a + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + ldr r5, _08148428 + str r5, [sp] + movs r3, #0 + bl CreateTrainerSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x22] + ldr r0, _0814842C + ldr r0, [r0] + ldrb r0, [r0, #8] + bl PlayerGenderToFrontTrainerPicId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x88 + lsls r1, r1, #1 + str r5, [sp] + movs r2, #0x6a + movs r3, #0 + bl CreateTrainerSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x24] + movs r3, #0x22 + ldrsh r0, [r4, r3] + lsls r5, r0, #4 + adds r5, r5, r0 + lsls r5, r5, #2 + ldr r1, _08148430 + adds r5, r5, r1 + movs r2, #0x24 + ldrsh r0, [r4, r2] + lsls r6, r0, #4 + adds r6, r6, r0 + lsls r6, r6, #2 + adds r6, r6, r1 + ldr r0, _08148434 + str r0, [r5, #0x1c] + str r0, [r6, #0x1c] + ldrb r0, [r5, #1] + movs r1, #3 + orrs r0, r1 + strb r0, [r5, #1] + ldrb r0, [r6, #1] + orrs r0, r1 + strb r0, [r6, #1] + bl AllocOamMatrix + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r3, #0x1f + mov sb, r3 + mov r4, sb + ands r0, r4 + lsls r0, r0, #1 + ldrb r2, [r5, #3] + movs r4, #0x3f + rsbs r4, r4, #0 + adds r1, r4, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #3] + bl AllocOamMatrix + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, sb + ands r0, r1 + lsls r0, r0, #1 + ldrb r1, [r6, #3] + ands r4, r1 + orrs r4, r0 + strb r4, [r6, #3] + ldrb r2, [r5, #1] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r5, #1] + ldrb r0, [r6, #1] + ands r1, r0 + orrs r1, r2 + strb r1, [r6, #1] + ldrb r0, [r5, #3] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r5, #3] + ldrb r0, [r6, #3] + orrs r0, r1 + strb r0, [r6, #3] + adds r0, r5, #0 + movs r1, #1 + movs r2, #3 + movs r3, #3 + bl CalcCenterToCornerVec + adds r0, r6, #0 + movs r1, #1 + movs r2, #3 + movs r3, #3 + bl CalcCenterToCornerVec + ldrb r0, [r5, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + ldr r2, _08148438 + mov r3, r8 + adds r1, r3, r2 + movs r4, #0 + ldrsh r1, [r1, r4] + adds r2, #2 + add r8, r2 + mov r3, r8 + movs r4, #0 + ldrsh r2, [r3, r4] + movs r3, #0 + bl SetOamMatrixRotationScaling + ldrb r0, [r6, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + ldr r1, _0814843C + movs r2, #0x80 + lsls r2, r2, #2 + movs r3, #0 + bl SetOamMatrixRotationScaling + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08148420: .4byte 0x085A86A4 +_08148424: .4byte 0x085A86BE +_08148428: .4byte 0x0201C000 +_0814842C: .4byte 0x03005AF0 +_08148430: .4byte 0x020205AC +_08148434: .4byte 0x08148441 +_08148438: .4byte 0x085A86AA +_0814843C: .4byte 0xFFFFFE00 + thumb_func_end Mugshots_CreateOpponentPlayerSprites + + thumb_func_start sub_08148440 +sub_08148440: @ 0x08148440 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08148464 +_08148446: + movs r1, #0x2e + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08148446 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08148464: .4byte 0x085A86D4 + thumb_func_end sub_08148440 + + thumb_func_start sub_08148468 +sub_08148468: @ 0x08148468 + movs r0, #0 + bx lr + thumb_func_end sub_08148468 + + thumb_func_start sub_0814846C +sub_0814846C: @ 0x0814846C + push {r4, r5, lr} + sub sp, #8 + adds r5, r0, #0 + ldr r1, _081484B0 + mov r0, sp + movs r2, #4 + bl memcpy + add r4, sp, #4 + ldr r1, _081484B4 + adds r0, r4, #0 + movs r2, #4 + bl memcpy + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] + movs r1, #0x3c + ldrsh r0, [r5, r1] + lsls r0, r0, #1 + add r0, sp + ldrh r0, [r0] + strh r0, [r5, #0x30] + movs r1, #0x3c + ldrsh r0, [r5, r1] + lsls r0, r0, #1 + adds r4, r4, r0 + ldrh r0, [r4] + strh r0, [r5, #0x32] + movs r0, #1 + add sp, #8 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081484B0: .4byte 0x085A86F0 +_081484B4: .4byte 0x085A86F4 + thumb_func_end sub_0814846C + + thumb_func_start sub_081484B8 +sub_081484B8: @ 0x081484B8 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0x30] + ldrh r3, [r1, #0x20] + adds r2, r0, r3 + strh r2, [r1, #0x20] + movs r3, #0x3c + ldrsh r0, [r1, r3] + cmp r0, #0 + beq _081484D6 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x84 + bgt _081484E4 + b _081484DE +_081484D6: + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x67 + ble _081484E4 +_081484DE: + ldrh r0, [r1, #0x2e] + adds r0, #1 + strh r0, [r1, #0x2e] +_081484E4: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081484B8 + + thumb_func_start sub_081484EC +sub_081484EC: @ 0x081484EC + push {lr} + adds r2, r0, #0 + ldrh r3, [r2, #0x32] + ldrh r0, [r2, #0x30] + adds r1, r3, r0 + strh r1, [r2, #0x30] + ldrh r0, [r2, #0x20] + adds r0, r0, r1 + strh r0, [r2, #0x20] + lsls r1, r1, #0x10 + cmp r1, #0 + bne _08148512 + ldrh r0, [r2, #0x2e] + adds r0, #1 + strh r0, [r2, #0x2e] + rsbs r0, r3, #0 + strh r0, [r2, #0x32] + movs r0, #1 + strh r0, [r2, #0x3a] +_08148512: + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end sub_081484EC + + thumb_func_start sub_08148518 +sub_08148518: @ 0x08148518 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x32] + ldrh r1, [r2, #0x30] + adds r0, r0, r1 + strh r0, [r2, #0x30] + ldrh r1, [r2, #0x20] + adds r1, r1, r0 + strh r1, [r2, #0x20] + adds r1, #0x1f + lsls r1, r1, #0x10 + movs r0, #0x97 + lsls r0, r0, #0x11 + cmp r1, r0 + bls _0814853C + ldrh r0, [r2, #0x2e] + adds r0, #1 + strh r0, [r2, #0x2e] +_0814853C: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08148518 + + thumb_func_start sub_08148544 +sub_08148544: @ 0x08148544 + ldr r3, _08148558 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r3 + strh r1, [r2, #0x3c] + bx lr + .align 2, 0 +_08148558: .4byte 0x020205AC + thumb_func_end sub_08148544 + + thumb_func_start sub_0814855C +sub_0814855C: @ 0x0814855C + ldr r2, _08148574 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r0, [r1, #0x2e] + adds r0, #1 + strh r0, [r1, #0x2e] + bx lr + .align 2, 0 +_08148574: .4byte 0x020205AC + thumb_func_end sub_0814855C + + thumb_func_start sub_08148578 +sub_08148578: @ 0x08148578 + ldr r2, _0814858C + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r2, #0x3a + ldrsh r0, [r1, r2] + bx lr + .align 2, 0 +_0814858C: .4byte 0x020205AC + thumb_func_end sub_08148578 + + thumb_func_start Phase2Task_Rayquaza +Phase2Task_Rayquaza: @ 0x08148590 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _081485C0 + ldr r2, _081485C4 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_081485A2: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081485A2 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081485C0: .4byte 0x085A86F8 +_081485C4: .4byte 0x03005B60 + thumb_func_end Phase2Task_Rayquaza + + thumb_func_start Phase2_Slice_Func1 +Phase2_Slice_Func1: @ 0x081485C8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08149FC8 + bl ScanlineEffect_Clear + movs r4, #0 + movs r3, #0 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r5, #0xc] + movs r0, #1 + strh r0, [r5, #0xe] + ldr r2, _08148640 + ldr r1, [r2] + movs r0, #0x3f + strh r0, [r1, #2] + strh r3, [r1, #4] + movs r0, #0xa0 + strh r0, [r1, #8] + ldrb r0, [r1] + strb r4, [r1] + ldr r4, _08148644 + adds r6, r2, #0 + movs r2, #0xf0 +_081485FA: + lsls r1, r3, #1 + adds r1, r1, r4 + ldr r0, [r6] + ldrh r0, [r0, #0x14] + strh r0, [r1] + adds r0, r3, #0 + adds r0, #0xa0 + lsls r0, r0, #1 + adds r0, r0, r4 + strh r2, [r0] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0x9f + bls _081485FA + movs r0, #2 + bl EnableInterrupts + movs r0, #4 + movs r1, #0x10 + bl SetGpuRegBits + ldr r0, _08148648 + bl SetVBlankCallback + ldr r0, _0814864C + bl SetHBlankCallback + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + movs r0, #1 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08148640: .4byte 0x0203A86C +_08148644: .4byte 0x02039048 +_08148648: .4byte 0x0814875D +_0814864C: .4byte 0x081487E9 + thumb_func_end Phase2_Slice_Func1 + + thumb_func_start Phase2_Slice_Func2 +Phase2_Slice_Func2: @ 0x08148650 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r3, r0, #0 + ldr r2, _081486CC + ldr r1, [r2] + ldrb r0, [r1] + movs r0, #0 + strb r0, [r1] + ldrh r0, [r3, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + ldrh r1, [r3, #0xa] + adds r0, r0, r1 + strh r0, [r3, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov r8, r2 + cmp r0, #0xf0 + ble _0814867C + movs r0, #0xf0 + strh r0, [r3, #0xa] +_0814867C: + ldrh r4, [r3, #0xc] + movs r0, #0xc + ldrsh r1, [r3, r0] + ldr r0, _081486D0 + ldrh r2, [r3, #0xe] + cmp r1, r0 + bgt _0814868E + adds r0, r4, r2 + strh r0, [r3, #0xc] +_0814868E: + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x7f + bgt _0814869A + lsls r0, r2, #1 + strh r0, [r3, #0xe] +_0814869A: + movs r5, #0 + ldr r7, _081486D4 + movs r1, #0xa0 + lsls r1, r1, #1 + adds r1, r1, r7 + mov ip, r1 + mov r6, r8 +_081486A8: + lsls r0, r5, #1 + adds r2, r0, r7 + mov r1, ip + adds r4, r0, r1 + movs r0, #1 + ands r0, r5 + cmp r0, #0 + beq _081486D8 + ldr r1, [r6] + ldrh r0, [r3, #0xa] + ldrh r1, [r1, #0x14] + adds r0, r0, r1 + strh r0, [r2] + ldrh r1, [r3, #0xa] + movs r0, #0xf0 + subs r0, r0, r1 + b _081486EA + .align 2, 0 +_081486CC: .4byte 0x0203A86C +_081486D0: .4byte 0x00000FFF +_081486D4: .4byte 0x020388C8 +_081486D8: + ldr r0, [r6] + ldrh r0, [r0, #0x14] + ldrh r1, [r3, #0xa] + subs r0, r0, r1 + strh r0, [r2] + ldrh r0, [r3, #0xa] + lsls r0, r0, #8 + movs r1, #0xf1 + orrs r0, r1 +_081486EA: + strh r0, [r4] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0x9f + bls _081486A8 + movs r1, #0xa + ldrsh r0, [r3, r1] + cmp r0, #0xef + ble _08148704 + ldrh r0, [r3, #8] + adds r0, #1 + strh r0, [r3, #8] +_08148704: + mov r1, r8 + ldr r0, [r1] + ldrb r1, [r0] + adds r1, #1 + ldrb r2, [r0] + strb r1, [r0] + movs r0, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end Phase2_Slice_Func2 + + thumb_func_start Phase2_Slice_Func3 +Phase2_Slice_Func3: @ 0x0814871C + push {lr} + ldr r1, _0814874C + ldrh r2, [r1, #0xa] + ldr r0, _08148750 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r2, [r1, #0xa] + ldr r0, _08148754 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + bl sub_0814A044 + ldr r0, _08148758 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0814874C: .4byte 0x040000B0 +_08148750: .4byte 0x0000C5FF +_08148754: .4byte 0x00007FFF +_08148758: .4byte 0x08148591 + thumb_func_end Phase2_Slice_Func3 + + thumb_func_start VBlankCB_Phase2_Slice +VBlankCB_Phase2_Slice: @ 0x0814875C + push {r4, lr} + ldr r4, _081487BC + ldrh r1, [r4, #0xa] + ldr r0, _081487C0 + ands r0, r1 + strh r0, [r4, #0xa] + ldrh r1, [r4, #0xa] + ldr r0, _081487C4 + ands r0, r1 + strh r0, [r4, #0xa] + ldrh r0, [r4, #0xa] + bl VBlankCB_BattleTransition + ldr r2, _081487C8 + ldr r0, _081487CC + ldr r1, [r0] + ldrh r0, [r1, #2] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #4] + strh r0, [r2] + subs r2, #6 + ldrh r0, [r1, #8] + strh r0, [r2] + ldrb r0, [r1] + cmp r0, #0 + beq _081487A6 + ldr r1, _081487D0 + ldr r0, _081487D4 + str r0, [r1] + movs r2, #0xf0 + lsls r2, r2, #3 + adds r0, r0, r2 + str r0, [r1, #4] + ldr r0, _081487D8 + str r0, [r1, #8] + ldr r0, [r1, #8] +_081487A6: + ldr r0, _081487DC + str r0, [r4] + ldr r0, _081487E0 + str r0, [r4, #4] + ldr r0, _081487E4 + str r0, [r4, #8] + ldr r0, [r4, #8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081487BC: .4byte 0x040000B0 +_081487C0: .4byte 0x0000C5FF +_081487C4: .4byte 0x00007FFF +_081487C8: .4byte 0x04000048 +_081487CC: .4byte 0x0203A86C +_081487D0: .4byte 0x040000D4 +_081487D4: .4byte 0x020388C8 +_081487D8: .4byte 0x80000140 +_081487DC: .4byte 0x02039188 +_081487E0: .4byte 0x04000040 +_081487E4: .4byte 0xA2400001 + thumb_func_end VBlankCB_Phase2_Slice + + thumb_func_start HBlankCB_Phase2_Slice +HBlankCB_Phase2_Slice: @ 0x081487E8 + push {lr} + ldr r2, _08148814 + ldrh r0, [r2] + cmp r0, #0x9f + bhi _0814880E + ldr r1, _08148818 + ldrh r0, [r2] + lsls r0, r0, #1 + movs r2, #0xf0 + lsls r2, r2, #3 + adds r1, r1, r2 + adds r0, r0, r1 + ldrh r1, [r0] + ldr r0, _0814881C + strh r1, [r0] + adds r0, #4 + strh r1, [r0] + adds r0, #4 + strh r1, [r0] +_0814880E: + pop {r0} + bx r0 + .align 2, 0 +_08148814: .4byte 0x04000006 +_08148818: .4byte 0x020388C8 +_0814881C: .4byte 0x04000014 + thumb_func_end HBlankCB_Phase2_Slice + + thumb_func_start Phase2Task_RectangularSpiral +Phase2Task_RectangularSpiral: @ 0x08148820 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _08148850 + ldr r2, _08148854 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_08148832: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08148832 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08148850: .4byte 0x085A8704 +_08148854: .4byte 0x03005B60 + thumb_func_end Phase2Task_RectangularSpiral + + thumb_func_start Phase2_ShredSplit_Func1 +Phase2_ShredSplit_Func1: @ 0x08148858 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + bl sub_08149FC8 + bl ScanlineEffect_Clear + ldr r0, _08148914 + ldr r1, [r0] + movs r2, #0 + movs r0, #0x3f + strh r0, [r1, #2] + strh r2, [r1, #4] + movs r0, #0xa0 + strh r0, [r1, #8] + movs r4, #0 + ldr r5, _08148918 + movs r0, #0xf0 + lsls r0, r0, #3 + adds r0, r0, r5 + mov ip, r0 + mov r8, r4 + movs r1, #0xf0 + mov sb, r1 +_0814888C: + lsls r2, r4, #1 + mov r7, ip + adds r1, r2, r7 + ldr r0, _08148914 + ldr r3, [r0] + ldrh r0, [r3, #0x14] + strh r0, [r1] + adds r1, r4, #0 + adds r1, #0xa0 + lsls r1, r1, #1 + adds r0, r1, r7 + mov r7, sb + strh r7, [r0] + adds r2, r2, r5 + ldrh r0, [r3, #0x14] + strh r0, [r2] + adds r1, r1, r5 + mov r0, sb + strh r0, [r1] + movs r1, #0xa0 + lsls r1, r1, #1 + adds r0, r4, r1 + lsls r0, r0, #1 + adds r0, r0, r5 + mov r7, r8 + strh r7, [r0] + adds r1, #0xa0 + adds r0, r4, r1 + lsls r0, r0, #1 + adds r0, r0, r5 + subs r1, #0xe0 + strh r1, [r0] + movs r7, #0xa0 + lsls r7, r7, #2 + adds r0, r4, r7 + lsls r0, r0, #1 + adds r0, r0, r5 + movs r1, #1 + strh r1, [r0] + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x9f + bls _0814888C + movs r0, #0 + strh r0, [r6, #0x10] + strh r0, [r6, #0x12] + movs r0, #7 + strh r0, [r6, #0x14] + movs r0, #2 + bl EnableInterrupts + ldr r0, _0814891C + bl SetVBlankCallback + ldr r0, _08148920 + bl SetHBlankCallback + ldrh r0, [r6, #8] + adds r0, #1 + strh r0, [r6, #8] + movs r0, #1 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08148914: .4byte 0x0203A86C +_08148918: .4byte 0x020388C8 +_0814891C: .4byte 0x0814875D +_08148920: .4byte 0x081487E9 + thumb_func_end Phase2_ShredSplit_Func1 + + thumb_func_start Phase2_ShredSplit_Func2 +Phase2_ShredSplit_Func2: @ 0x08148924 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + mov sb, r0 + ldr r1, _081489CC + mov r0, sp + movs r2, #2 + bl memcpy + add r4, sp, #4 + ldr r1, _081489D0 + adds r0, r4, #0 + movs r2, #4 + bl memcpy + ldr r2, _081489D4 + ldr r1, [r2] + ldrb r0, [r1] + movs r0, #0 + strb r0, [r1] + str r0, [sp, #8] + mov sl, r0 + mov r1, sb + movs r3, #0x12 + ldrsh r0, [r1, r3] + ldr r1, [sp, #8] + cmp r1, r0 + ble _08148964 + b _08148B28 +_08148964: + movs r7, #0 + mov r2, sl + rsbs r2, r2, #0 + str r2, [sp, #0xc] + mov r3, sl + adds r3, #1 + str r3, [sp, #0x10] +_08148972: + movs r6, #0 + mov r0, sp + adds r0, r0, r7 + mov ip, r0 +_0814897A: + lsls r0, r6, #1 + add r0, sp + adds r0, #4 + movs r1, #0 + ldrsh r0, [r0, r1] + ldr r2, [sp, #0xc] + muls r0, r2, r0 + lsls r0, r0, #1 + mov r3, ip + ldrb r3, [r3] + adds r0, r0, r3 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + blt _08148A26 + cmp r0, #0x4f + bne _081489A2 + cmp r7, #1 + beq _08148A26 +_081489A2: + lsls r1, r0, #1 + ldr r0, _081489D8 + adds r4, r1, r0 + movs r2, #0xa0 + lsls r2, r2, #1 + adds r0, r0, r2 + adds r3, r1, r0 + ldr r0, _081489DC + adds r1, r1, r0 + ldrh r2, [r4] + cmp r2, #0xef + bls _081489E0 + movs r1, #0xf0 + strh r1, [r4] + ldr r0, [sp, #8] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #8] + b _08148A00 + .align 2, 0 +_081489CC: .4byte 0x085A8714 +_081489D0: .4byte 0x085A8716 +_081489D4: .4byte 0x0203A86C +_081489D8: .4byte 0x02038B48 +_081489DC: .4byte 0x02038DC8 +_081489E0: + ldrh r0, [r3] + lsrs r0, r0, #8 + adds r0, r2, r0 + strh r0, [r4] + ldrh r0, [r1] + cmp r0, #0x7f + bhi _081489F2 + lsls r0, r0, #1 + strh r0, [r1] +_081489F2: + ldrh r2, [r3] + ldr r0, _08148AA0 + cmp r2, r0 + bhi _08148A00 + ldrh r0, [r1] + adds r0, r2, r0 + strh r0, [r3] +_08148A00: + lsls r0, r5, #0x10 + asrs r0, r0, #0xf + ldr r1, _08148AA4 + adds r2, r0, r1 + ldr r1, _08148AA8 + adds r3, r0, r1 + ldr r0, _08148AAC + ldr r1, [r0] + ldrh r0, [r4] + ldrh r1, [r1, #0x14] + adds r0, r0, r1 + strh r0, [r2] + ldrh r0, [r4] + movs r1, #0xf0 + subs r0, r1, r0 + strh r0, [r3] + mov r2, sl + cmp r2, #0 + beq _08148A30 +_08148A26: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #1 + bls _0814897A +_08148A30: + adds r0, r7, #1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + cmp r7, #1 + bls _08148972 + movs r7, #0 + ldr r3, _08148AB0 + mov r8, r3 +_08148A40: + movs r6, #0 + mov r0, sp + adds r0, r0, r7 + mov ip, r0 + adds r1, r7, #1 + str r1, [sp, #0x14] +_08148A4C: + mov r2, ip + ldrb r1, [r2] + adds r1, #1 + lsls r0, r6, #1 + add r0, sp + adds r0, #4 + movs r3, #0 + ldrsh r0, [r0, r3] + ldr r2, [sp, #0xc] + muls r0, r2, r0 + lsls r0, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #0xa0 + bgt _08148B00 + cmp r1, #0x50 + bne _08148A76 + cmp r7, #1 + beq _08148B00 +_08148A76: + lsls r1, r1, #1 + mov r3, r8 + adds r4, r1, r3 + movs r0, #0xa0 + lsls r0, r0, #1 + add r0, r8 + adds r3, r1, r0 + ldr r0, _08148AB4 + adds r1, r1, r0 + ldrh r2, [r4] + cmp r2, #0xef + bls _08148AB8 + movs r1, #0xf0 + strh r1, [r4] + ldr r0, [sp, #8] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #8] + b _08148AD8 + .align 2, 0 +_08148AA0: .4byte 0x00000FFF +_08148AA4: .4byte 0x020388C8 +_08148AA8: .4byte 0x02038A08 +_08148AAC: .4byte 0x0203A86C +_08148AB0: .4byte 0x02038B48 +_08148AB4: .4byte 0x02038DC8 +_08148AB8: + ldrh r0, [r3] + lsrs r0, r0, #8 + adds r0, r2, r0 + strh r0, [r4] + ldrh r0, [r1] + cmp r0, #0x7f + bhi _08148ACA + lsls r0, r0, #1 + strh r0, [r1] +_08148ACA: + ldrh r2, [r3] + ldr r0, _08148B84 + cmp r2, r0 + bhi _08148AD8 + ldrh r0, [r1] + adds r0, r2, r0 + strh r0, [r3] +_08148AD8: + lsls r0, r5, #0x10 + asrs r0, r0, #0xf + ldr r1, _08148B88 + adds r2, r0, r1 + ldr r1, _08148B8C + adds r3, r0, r1 + ldr r1, _08148B90 + ldr r0, [r1] + ldrh r1, [r0, #0x14] + ldrh r0, [r4] + subs r1, r1, r0 + strh r1, [r2] + ldrh r0, [r4] + lsls r0, r0, #8 + movs r1, #0xf1 + orrs r0, r1 + strh r0, [r3] + mov r2, sl + cmp r2, #0 + beq _08148B0A +_08148B00: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #1 + bls _08148A4C +_08148B0A: + ldr r3, [sp, #0x14] + lsls r0, r3, #0x10 + lsrs r7, r0, #0x10 + cmp r7, #1 + bls _08148A40 + ldr r1, [sp, #0x10] + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 + mov r2, sb + movs r3, #0x12 + ldrsh r0, [r2, r3] + cmp sl, r0 + bgt _08148B28 + b _08148964 +_08148B28: + mov r1, sb + ldrh r0, [r1, #0x10] + subs r0, #1 + strh r0, [r1, #0x10] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _08148B3A + movs r0, #0 + strh r0, [r1, #0x10] +_08148B3A: + mov r2, sb + movs r3, #0x10 + ldrsh r0, [r2, r3] + cmp r0, #0 + bgt _08148B58 + movs r1, #0x12 + ldrsh r0, [r2, r1] + adds r0, #1 + cmp r0, #0x14 + bgt _08148B58 + ldrh r0, [r2, #0x14] + strh r0, [r2, #0x10] + ldrh r0, [r2, #0x12] + adds r0, #1 + strh r0, [r2, #0x12] +_08148B58: + ldr r2, [sp, #8] + cmp r2, #0x9f + bls _08148B66 + mov r3, sb + ldrh r0, [r3, #8] + adds r0, #1 + strh r0, [r3, #8] +_08148B66: + ldr r0, _08148B90 + ldr r1, [r0] + ldrb r0, [r1] + adds r0, #1 + ldrb r2, [r1] + strb r0, [r1] + movs r0, #0 + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08148B84: .4byte 0x00000FFF +_08148B88: .4byte 0x020388C8 +_08148B8C: .4byte 0x02038A08 +_08148B90: .4byte 0x0203A86C + thumb_func_end Phase2_ShredSplit_Func2 + + thumb_func_start Phase2_ShredSplit_Func3 +Phase2_ShredSplit_Func3: @ 0x08148B94 + push {r4, r5, lr} + adds r3, r0, #0 + movs r2, #1 + ldr r5, _08148BCC + movs r1, #0 + ldr r4, _08148BD0 +_08148BA0: + lsls r0, r1, #1 + adds r0, r0, r4 + ldrh r0, [r0] + cmp r0, #0xf0 + beq _08148BB0 + cmp r0, r5 + beq _08148BB0 + movs r2, #0 +_08148BB0: + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0x9f + bls _08148BA0 + cmp r2, #1 + bne _08148BC4 + ldrh r0, [r3, #8] + adds r0, #1 + strh r0, [r3, #8] +_08148BC4: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08148BCC: .4byte 0x0000FF10 +_08148BD0: .4byte 0x02039048 + thumb_func_end Phase2_ShredSplit_Func3 + + thumb_func_start Phase2_ShredSplit_Func4 +Phase2_ShredSplit_Func4: @ 0x08148BD4 + push {lr} + ldr r1, _08148C04 + ldrh r2, [r1, #0xa] + ldr r0, _08148C08 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r2, [r1, #0xa] + ldr r0, _08148C0C + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + bl sub_0814A044 + ldr r0, _08148C10 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_08148C04: .4byte 0x040000B0 +_08148C08: .4byte 0x0000C5FF +_08148C0C: .4byte 0x00007FFF +_08148C10: .4byte 0x08148821 + thumb_func_end Phase2_ShredSplit_Func4 + + thumb_func_start Phase2Task_Regice +Phase2Task_Regice: @ 0x08148C14 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _08148C44 + ldr r2, _08148C48 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_08148C26: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08148C26 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08148C44: .4byte 0x085A871C +_08148C48: .4byte 0x03005B60 + thumb_func_end Phase2Task_Regice + + thumb_func_start Phase2Task_Regirock +Phase2Task_Regirock: @ 0x08148C4C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _08148C7C + ldr r2, _08148C80 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_08148C5E: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08148C5E + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08148C7C: .4byte 0x085A8728 +_08148C80: .4byte 0x03005B60 + thumb_func_end Phase2Task_Regirock + + thumb_func_start Phase2_Blackhole_Func1 +Phase2_Blackhole_Func1: @ 0x08148C84 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08149FC8 + bl ScanlineEffect_Clear + ldr r0, _08148CD8 + ldr r1, [r0] + movs r0, #0 + strh r0, [r1, #2] + movs r0, #0x3f + strh r0, [r1, #4] + movs r0, #0xf0 + strh r0, [r1, #6] + movs r0, #0xa0 + strh r0, [r1, #8] + ldr r0, _08148CDC + movs r2, #0 + movs r1, #0x9f + ldr r3, _08148CE0 + adds r0, r0, r3 +_08148CAE: + strh r2, [r0] + subs r0, #2 + subs r1, #1 + cmp r1, #0 + bge _08148CAE + movs r4, #0 + ldr r0, _08148CE4 + bl SetVBlankCallback + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + movs r0, #1 + strh r0, [r5, #0xa] + adds r0, #0xff + strh r0, [r5, #0xc] + strh r4, [r5, #0x16] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08148CD8: .4byte 0x0203A86C +_08148CDC: .4byte 0x020388C8 +_08148CE0: .4byte 0x000008BE +_08148CE4: .4byte 0x08147029 + thumb_func_end Phase2_Blackhole_Func1 + + thumb_func_start Phase2_Blackhole1_Func3 +Phase2_Blackhole1_Func3: @ 0x08148CE8 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x16 + ldrsh r0, [r4, r1] + cmp r0, #1 + bne _08148D2C + ldr r1, _08148D20 + ldrh r2, [r1, #0xa] + ldr r0, _08148D24 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r2, [r1, #0xa] + ldr r0, _08148D28 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + movs r0, #0 + bl SetVBlankCallback + ldr r0, [r4] + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + b _08148D9E + .align 2, 0 +_08148D20: .4byte 0x040000B0 +_08148D24: .4byte 0x0000C5FF +_08148D28: .4byte 0x00007FFF +_08148D2C: + ldr r5, _08148D88 + ldr r1, [r5] + ldrb r0, [r1] + movs r0, #0 + strb r0, [r1] + ldrh r2, [r4, #0xc] + movs r0, #0xc + ldrsh r1, [r4, r0] + ldr r0, _08148D8C + cmp r1, r0 + bgt _08148D48 + adds r0, r2, #0 + adds r0, #0x80 + strh r0, [r4, #0xc] +_08148D48: + ldrh r1, [r4, #0xa] + movs r2, #0xa + ldrsh r0, [r4, r2] + cmp r0, #0x9f + bgt _08148D5C + ldrh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + adds r0, r1, r0 + strh r0, [r4, #0xa] +_08148D5C: + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0xa0 + ble _08148D68 + movs r0, #0xa0 + strh r0, [r4, #0xa] +_08148D68: + ldr r0, _08148D90 + movs r2, #0xa + ldrsh r3, [r4, r2] + movs r1, #0x78 + movs r2, #0x50 + bl sub_0814A0D4 + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0xa0 + bne _08148D94 + movs r0, #1 + strh r0, [r4, #0x16] + bl sub_0814A044 + b _08148D9E + .align 2, 0 +_08148D88: .4byte 0x0203A86C +_08148D8C: .4byte 0x000003FF +_08148D90: .4byte 0x020388C8 +_08148D94: + ldr r0, [r5] + ldrb r1, [r0] + adds r1, #1 + ldrb r2, [r0] + strb r1, [r0] +_08148D9E: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end Phase2_Blackhole1_Func3 + + thumb_func_start Phase2_Blackhole1_Func2 +Phase2_Blackhole1_Func2: @ 0x08148DA8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r6, _08148E20 + ldr r0, [r6] + ldrb r1, [r0] + movs r5, #0 + strb r5, [r0] + ldrh r1, [r4, #0x16] + movs r2, #0x16 + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _08148DCA + adds r0, r1, #1 + strh r0, [r4, #0x16] + movs r0, #0x30 + strh r0, [r4, #0xa] + strh r5, [r4, #0x14] +_08148DCA: + ldr r1, _08148E24 + movs r2, #0x14 + ldrsh r0, [r4, r2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ldrh r1, [r4, #0xa] + adds r0, r0, r1 + strh r0, [r4, #0xa] + movs r2, #0x14 + ldrsh r1, [r4, r2] + adds r1, #1 + lsrs r0, r1, #0x1f + adds r0, r1, r0 + asrs r0, r0, #1 + lsls r0, r0, #1 + subs r1, r1, r0 + strh r1, [r4, #0x14] + ldr r0, _08148E28 + movs r1, #0xa + ldrsh r3, [r4, r1] + movs r1, #0x78 + movs r2, #0x50 + bl sub_0814A0D4 + movs r2, #0xa + ldrsh r0, [r4, r2] + cmp r0, #8 + bgt _08148E0C + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + strh r5, [r4, #0x16] +_08148E0C: + ldr r0, [r6] + ldrb r1, [r0] + adds r1, #1 + ldrb r2, [r0] + strb r1, [r0] + movs r0, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08148E20: .4byte 0x0203A86C +_08148E24: .4byte 0x085A8730 +_08148E28: .4byte 0x020388C8 + thumb_func_end Phase2_Blackhole1_Func2 + + thumb_func_start Phase2_Blackhole2_Func2 +Phase2_Blackhole2_Func2: @ 0x08148E2C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08148EA8 + ldr r1, [r0] + ldrb r0, [r1] + movs r0, #0 + strb r0, [r1] + ldrh r1, [r4, #0x16] + movs r2, #0x16 + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _08148E4E + adds r0, r1, #1 + strh r0, [r4, #0x16] + movs r0, #2 + strh r0, [r4, #0x12] + strh r0, [r4, #0x14] +_08148E4E: + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0xa0 + ble _08148E5A + movs r0, #0xa0 + strh r0, [r4, #0xa] +_08148E5A: + ldr r0, _08148EAC + movs r2, #0xa + ldrsh r3, [r4, r2] + movs r1, #0x78 + movs r2, #0x50 + bl sub_0814A0D4 + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0xa0 + bne _08148E96 + ldr r1, _08148EB0 + ldrh r2, [r1, #0xa] + ldr r0, _08148EB4 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r2, [r1, #0xa] + ldr r0, _08148EB8 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + bl sub_0814A044 + ldr r0, [r4] + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_08148E96: + ldrh r2, [r4, #0x12] + ldrb r0, [r4, #0x12] + cmp r0, #0x80 + bgt _08148EBC + ldrh r1, [r4, #0x14] + adds r0, r2, #0 + adds r0, #8 + b _08148EC8 + .align 2, 0 +_08148EA8: .4byte 0x0203A86C +_08148EAC: .4byte 0x020388C8 +_08148EB0: .4byte 0x040000B0 +_08148EB4: .4byte 0x0000C5FF +_08148EB8: .4byte 0x00007FFF +_08148EBC: + ldrh r0, [r4, #0x14] + subs r0, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + adds r0, r2, #0 + adds r0, #0x10 +_08148EC8: + strh r0, [r4, #0x12] + movs r0, #0xff + ands r2, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r0, r2, #0 + bl Sin + ldrh r2, [r4, #0xa] + adds r0, r0, r2 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _08148EE8 + movs r0, #1 + strh r0, [r4, #0xa] +_08148EE8: + ldrh r0, [r4, #0x12] + lsls r1, r0, #0x10 + asrs r0, r1, #0x10 + cmp r0, #0xfe + ble _08148EFC + asrs r0, r1, #0x18 + strh r0, [r4, #0x12] + ldrh r0, [r4, #0x14] + adds r0, #1 + strh r0, [r4, #0x14] +_08148EFC: + ldr r0, _08148F10 + ldr r1, [r0] + ldrb r0, [r1] + adds r0, #1 + ldrb r2, [r1] + strb r0, [r1] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08148F10: .4byte 0x0203A86C + thumb_func_end Phase2_Blackhole2_Func2 + + thumb_func_start Phase2Task_Registeel +Phase2Task_Registeel: @ 0x08148F14 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _08148F44 + ldr r2, _08148F48 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_08148F26: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08148F26 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08148F44: .4byte 0x085A8734 +_08148F48: .4byte 0x03005B60 + thumb_func_end Phase2Task_Registeel + + thumb_func_start Phase2_RectangularSpiral_Func1 +Phase2_RectangularSpiral_Func1: @ 0x08148F4C + push {r4, r5, lr} + sub sp, #0xc + adds r5, r0, #0 + add r0, sp, #4 + add r1, sp, #8 + bl sub_0814A018 + ldr r4, _08148FF0 + ldr r1, [sp, #8] + adds r0, r4, #0 + movs r2, #0x10 + bl CpuSet + movs r0, #0xe0 + lsls r0, r0, #1 + adds r4, r4, r0 + ldr r1, [sp, #8] + adds r1, #0x40 + adds r0, r4, #0 + movs r2, #0x10 + bl CpuSet + mov r1, sp + movs r2, #0xf0 + lsls r2, r2, #8 + adds r0, r2, #0 + strh r0, [r1] + ldr r1, [sp, #4] + ldr r2, _08148FF4 + mov r0, sp + bl CpuSet + ldr r0, _08148FF8 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + movs r1, #0 + movs r4, #1 + movs r0, #1 + strh r0, [r5, #0xe] + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + ldr r5, _08148FFC + strb r1, [r5] + ldr r0, _08149000 + strh r0, [r5, #2] + strb r4, [r5, #4] + movs r2, #0x9a + lsls r2, r2, #1 + strh r2, [r5, #6] + strb r1, [r5, #8] + strb r1, [r5, #0xc] + movs r0, #1 + rsbs r0, r0, #0 + strh r0, [r5, #0xe] + strb r4, [r5, #0x10] + strh r2, [r5, #0x12] + strb r1, [r5, #0x14] + strb r1, [r5, #0x18] + ldr r2, _08149004 + strh r2, [r5, #0x1a] + strb r4, [r5, #0x1c] + ldr r3, _08149008 + strh r3, [r5, #0x1e] + adds r0, r5, #0 + adds r0, #0x20 + strb r1, [r0] + adds r0, #4 + strb r1, [r0] + strh r2, [r5, #0x26] + adds r0, #4 + strb r4, [r0] + strh r3, [r5, #0x2a] + adds r0, #4 + strb r1, [r0] + movs r0, #0 + add sp, #0xc + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08148FF0: .4byte 0x0859A780 +_08148FF4: .4byte 0x01000400 +_08148FF8: .4byte 0x085A8984 +_08148FFC: .4byte 0x03001210 +_08149000: .4byte 0x0000FFFF +_08149004: .4byte 0x0000FFFD +_08149008: .4byte 0x00000133 + thumb_func_end Phase2_RectangularSpiral_Func1 + + thumb_func_start Phase2_RectangularSpiral_Func2 +Phase2_RectangularSpiral_Func2: @ 0x0814900C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + mov r8, r0 + movs r7, #1 + add r1, sp, #4 + mov r0, sp + bl sub_0814A018 + movs r0, #0 +_08149022: + movs r5, #0 + adds r6, r0, #1 +_08149026: + ldr r1, _081490B8 + lsrs r0, r5, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + lsls r1, r5, #1 + adds r1, r1, r5 + lsls r1, r1, #2 + ldr r2, _081490BC + adds r4, r1, r2 + adds r1, r4, #0 + bl sub_08149108 + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0814908A + movs r7, #0 + ldrh r2, [r4, #2] + movs r0, #1 + ands r0, r5 + cmp r0, #1 + bne _08149060 + ldr r0, _081490C0 + adds r1, r0, #0 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + subs r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r2, r1, #0x10 +_08149060: + lsls r0, r2, #0x10 + asrs r1, r0, #0x10 + adds r0, r1, #0 + cmp r1, #0 + bge _0814906C + adds r0, #0x1f +_0814906C: + asrs r2, r0, #5 + lsls r0, r2, #5 + subs r0, r1, r0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r2, #5 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r1, r0 + ldr r0, [sp] + lsls r1, r1, #1 + adds r1, r1, r0 + ldr r2, _081490C4 + adds r0, r2, #0 + strh r0, [r1] +_0814908A: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #3 + bls _08149026 + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _08149022 + cmp r7, #1 + bne _081490A8 + mov r1, r8 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] +_081490A8: + movs r0, #0 + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081490B8: .4byte 0x085A87E8 +_081490BC: .4byte 0x03001210 +_081490C0: .4byte 0x0000027D +_081490C4: .4byte 0x0000F002 + thumb_func_end Phase2_RectangularSpiral_Func2 + + thumb_func_start Phase2_RectangularSpiral_Func3 +Phase2_RectangularSpiral_Func3: @ 0x081490C8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _081490FC + ldrh r2, [r1, #0xa] + ldr r0, _08149100 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r2, [r1, #0xa] + ldr r0, _08149104 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + bl sub_0814A044 + ldr r0, [r4] + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081490FC: .4byte 0x040000B0 +_08149100: .4byte 0x0000C5FF +_08149104: .4byte 0x00007FFF + thumb_func_end Phase2_RectangularSpiral_Func3 + + thumb_func_start sub_08149108 +sub_08149108: @ 0x08149108 + push {r4, lr} + adds r2, r1, #0 + ldrb r1, [r2] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r3, [r1] + ldrb r0, [r2, #4] + lsls r0, r0, #1 + adds r0, r0, r3 + movs r4, #0 + ldrsh r1, [r0, r4] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0814918E + ldr r1, _0814914C + ldrh r0, [r3] + strh r0, [r1] + ldrh r0, [r3, #2] + strh r0, [r1] + ldrh r0, [r3, #4] + strh r0, [r1] + ldrh r0, [r3, #6] + strh r0, [r1] + movs r1, #0 + ldrsh r0, [r3, r1] + cmp r0, #2 + beq _08149160 + cmp r0, #2 + bgt _08149150 + cmp r0, #1 + beq _0814915A + b _08149172 + .align 2, 0 +_0814914C: .4byte 0x03001208 +_08149150: + cmp r0, #3 + beq _08149166 + cmp r0, #4 + beq _0814916C + b _08149172 +_0814915A: + ldrh r0, [r2, #2] + adds r0, #1 + b _08149170 +_08149160: + ldrh r0, [r2, #2] + subs r0, #1 + b _08149170 +_08149166: + ldrh r0, [r2, #2] + subs r0, #0x20 + b _08149170 +_0814916C: + ldrh r0, [r2, #2] + adds r0, #0x20 +_08149170: + strh r0, [r2, #2] +_08149172: + movs r4, #2 + ldrsh r1, [r2, r4] + ldr r0, _08149194 + cmp r1, r0 + bgt _0814918E + ldrb r0, [r2, #4] + lsls r0, r0, #1 + adds r0, r0, r3 + movs r4, #0 + ldrsh r1, [r0, r4] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _08149198 +_0814918E: + movs r0, #0 + b _081491F8 + .align 2, 0 +_08149194: .4byte 0x0000027F +_08149198: + ldrb r0, [r2, #8] + cmp r0, #0 + bne _081491B4 + movs r0, #2 + rsbs r0, r0, #0 + cmp r1, r0 + bne _081491B4 + movs r0, #1 + strb r0, [r2, #8] + strb r0, [r2, #4] + ldrh r0, [r2, #6] + strh r0, [r2, #2] + movs r0, #4 + strb r0, [r2] +_081491B4: + ldrb r0, [r2, #4] + lsls r0, r0, #1 + adds r0, r0, r3 + movs r3, #2 + ldrsh r1, [r2, r3] + movs r4, #0 + ldrsh r0, [r0, r4] + cmp r1, r0 + bne _081491F6 + ldrb r0, [r2] + adds r1, r0, #1 + strb r1, [r2] + ldrb r0, [r2, #8] + cmp r0, #1 + bne _081491E4 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #7 + bls _081491F6 + ldrb r0, [r2, #4] + adds r0, #1 + strb r0, [r2, #4] + movs r0, #4 + b _081491F4 +_081491E4: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _081491F6 + ldrb r0, [r2, #4] + adds r0, #1 + strb r0, [r2, #4] + movs r0, #0 +_081491F4: + strb r0, [r2] +_081491F6: + movs r0, #1 +_081491F8: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08149108 + + thumb_func_start Phase2Task_Ripple +Phase2Task_Ripple: @ 0x08149200 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _08149230 + ldr r2, _08149234 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_08149212: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08149212 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08149230: .4byte 0x085A87F0 +_08149234: .4byte 0x03005B60 + thumb_func_end Phase2Task_Ripple + + thumb_func_start Phase2_Groudon_Func3 +Phase2_Groudon_Func3: @ 0x08149238 + push {r4, lr} + sub sp, #0xc + adds r4, r0, #0 + add r0, sp, #4 + add r1, sp, #8 + bl sub_0814A018 + mov r1, sp + movs r0, #0 + strh r0, [r1] + ldr r1, [sp, #4] + ldr r2, _0814927C + mov r0, sp + bl CpuSet + ldr r0, _08149280 + ldr r1, [sp, #8] + bl LZ77UnCompVram + ldr r0, _08149284 + ldr r1, [sp, #4] + bl LZ77UnCompVram + ldrh r0, [r4, #8] + adds r0, #1 + movs r1, #0 + strh r0, [r4, #8] + strh r1, [r4, #0xa] + movs r0, #0 + add sp, #0xc + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0814927C: .4byte 0x01000400 +_08149280: .4byte 0x0859DFCC +_08149284: .4byte 0x0859E538 + thumb_func_end Phase2_Groudon_Func3 + + thumb_func_start Phase2_Groudon_Func4 +Phase2_Groudon_Func4: @ 0x08149288 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0xa + ldrsh r5, [r4, r0] + adds r0, r5, #0 + movs r1, #3 + bl __modsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _081492C0 + adds r0, r5, #0 + movs r1, #0x1e + bl __modsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #3 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0xb + ldr r1, _081492E0 + adds r0, r0, r1 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette +_081492C0: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x3a + ble _081492D8 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + strh r0, [r4, #0xa] +_081492D8: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081492E0: .4byte 0x0859EB50 + thumb_func_end Phase2_Groudon_Func4 + + thumb_func_start Phase2_Groudon_Func5 +Phase2_Groudon_Func5: @ 0x081492E4 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0xa + ldrsh r5, [r4, r0] + adds r0, r5, #0 + movs r1, #5 + bl __modsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08149312 + adds r0, r5, #0 + movs r1, #5 + bl __divsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0xb + ldr r1, _08149338 + adds r0, r0, r1 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette +_08149312: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x44 + ble _0814932E + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + strh r0, [r4, #0xa] + movs r0, #0x1e + strh r0, [r4, #0x18] +_0814932E: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08149338: .4byte 0x0859ED50 + thumb_func_end Phase2_Groudon_Func5 + + thumb_func_start Phase2Task_Shards +Phase2Task_Shards: @ 0x0814933C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _0814936C + ldr r2, _08149370 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_0814934E: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0814934E + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0814936C: .4byte 0x085A8810 +_08149370: .4byte 0x03005B60 + thumb_func_end Phase2Task_Shards + + thumb_func_start Phase2_Rayquaza_Func3 +Phase2_Rayquaza_Func3: @ 0x08149374 + push {r4, r5, r6, lr} + sub sp, #0xc + adds r4, r0, #0 + bl sub_08149FC8 + bl ScanlineEffect_Clear + ldr r1, _081493FC + movs r0, #8 + bl SetGpuReg + add r0, sp, #4 + add r1, sp, #8 + bl sub_0814A018 + mov r1, sp + movs r0, #0 + strh r0, [r1] + ldr r1, [sp, #4] + ldr r2, _08149400 + mov r0, sp + bl CpuSet + ldr r0, _08149404 + ldr r1, [sp, #8] + movs r2, #0x80 + lsls r2, r2, #5 + bl CpuSet + ldr r0, _08149408 + ldr r1, [r0] + movs r0, #0 + strh r0, [r1, #0x20] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + ldr r0, _0814940C + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + movs r2, #0 + ldr r3, _08149410 + movs r6, #0 + movs r0, #0xf0 + lsls r0, r0, #3 + adds r5, r3, r0 + movs r4, #0x80 + lsls r4, r4, #1 +_081493D6: + lsls r1, r2, #1 + adds r0, r1, r3 + strh r6, [r0] + adds r1, r1, r5 + strh r4, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0x9f + bls _081493D6 + ldr r0, _08149414 + bl SetVBlankCallback + movs r0, #0 + add sp, #0xc + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_081493FC: .4byte 0x00009A08 +_08149400: .4byte 0x01000400 +_08149404: .4byte 0x0859F150 +_08149408: .4byte 0x0203A86C +_0814940C: .4byte 0x0859EFF0 +_08149410: .4byte 0x020388C8 +_08149414: .4byte 0x081495C9 + thumb_func_end Phase2_Rayquaza_Func3 + + thumb_func_start Phase2_Rayquaza_Func4 +Phase2_Rayquaza_Func4: @ 0x08149418 + push {r4, lr} + sub sp, #8 + adds r4, r0, #0 + add r1, sp, #4 + mov r0, sp + bl sub_0814A018 + ldr r0, _08149444 + ldr r1, [sp] + movs r2, #0x80 + lsls r2, r2, #4 + bl CpuSet + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08149444: .4byte 0x085A6690 + thumb_func_end Phase2_Rayquaza_Func4 + + thumb_func_start Phase2_Rayquaza_Func5 +Phase2_Rayquaza_Func5: @ 0x08149448 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0xa] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _08149474 + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0 + bge _08149460 + adds r0, #3 +_08149460: + lsls r0, r0, #0xe + lsrs r0, r0, #0x10 + adds r0, #5 + lsls r0, r0, #5 + ldr r1, _08149494 + adds r0, r0, r1 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette +_08149474: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x28 + ble _0814948C + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + strh r0, [r4, #0xa] +_0814948C: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08149494: .4byte 0x0859EF50 + thumb_func_end Phase2_Rayquaza_Func5 + + thumb_func_start Phase2_Rayquaza_Func6 +Phase2_Rayquaza_Func6: @ 0x08149498 + push {lr} + sub sp, #4 + adds r1, r0, #0 + ldrh r0, [r1, #0xa] + adds r0, #1 + movs r2, #0 + strh r0, [r1, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x14 + ble _081494C2 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + strh r2, [r1, #0xa] + ldr r0, _081494CC + str r2, [sp] + movs r1, #2 + movs r3, #0x10 + bl BeginNormalPaletteFade +_081494C2: + movs r0, #0 + add sp, #4 + pop {r1} + bx r1 + .align 2, 0 +_081494CC: .4byte 0xFFFF8000 + thumb_func_end Phase2_Rayquaza_Func6 + + thumb_func_start Phase2_Rayquaza_Func7 +Phase2_Rayquaza_Func7: @ 0x081494D0 + push {lr} + adds r2, r0, #0 + ldr r0, _081494F4 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081494EE + ldr r0, _081494F8 + ldr r1, [r0] + movs r0, #1 + strh r0, [r1, #0x20] + ldrh r0, [r2, #8] + adds r0, #1 + strh r0, [r2, #8] +_081494EE: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_081494F4: .4byte 0x02037C74 +_081494F8: .4byte 0x0203A86C + thumb_func_end Phase2_Rayquaza_Func7 + + thumb_func_start Phase2_Rayquaza_Func8 +Phase2_Rayquaza_Func8: @ 0x081494FC + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08149524 + movs r1, #8 + movs r2, #0 + bl BlendPalettes + ldr r0, _08149528 + movs r1, #0 + movs r2, #0 + bl BlendPalettes + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08149524: .4byte 0x00007FFF +_08149528: .4byte 0xFFFF8000 + thumb_func_end Phase2_Rayquaza_Func8 + + thumb_func_start Phase2_Rayquaza_Func9 +Phase2_Rayquaza_Func9: @ 0x0814952C + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0xa + ldrsh r5, [r4, r0] + adds r0, r5, #0 + movs r1, #3 + bl __modsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0814955A + adds r0, r5, #0 + movs r1, #3 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0xb + ldr r1, _081495B8 + adds r0, r0, r1 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette +_0814955A: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x27 + ble _081495B0 + ldr r0, _081495BC + ldr r1, [r0] + movs r0, #0 + strh r0, [r1, #2] + movs r0, #0x3f + strh r0, [r1, #4] + movs r0, #0xf0 + strh r0, [r1, #6] + movs r0, #0xa0 + strh r0, [r1, #8] + movs r1, #0 + ldr r5, _081495C0 + ldr r3, _081495C4 + movs r2, #0 +_08149584: + lsls r0, r1, #1 + adds r0, r0, r3 + strh r2, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0x9f + bls _08149584 + adds r0, r5, #0 + bl SetVBlankCallback + ldrh r0, [r4, #8] + adds r0, #1 + movs r2, #0 + strh r0, [r4, #8] + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r4, #0xc] + strh r2, [r4, #0x16] + movs r0, #0 + bl ClearGpuRegBits +_081495B0: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081495B8: .4byte 0x0859EF50 +_081495BC: .4byte 0x0203A86C +_081495C0: .4byte 0x08147029 +_081495C4: .4byte 0x02039048 + thumb_func_end Phase2_Rayquaza_Func9 + + thumb_func_start VBlankCB_Phase2_Rayquaza +VBlankCB_Phase2_Rayquaza: @ 0x081495C8 + push {lr} + ldr r1, _081495F4 + ldrh r2, [r1, #0xa] + ldr r0, _081495F8 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r2, [r1, #0xa] + ldr r0, _081495FC + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + bl VBlankCB_BattleTransition + ldr r0, _08149600 + ldr r0, [r0] + movs r1, #0x20 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08149608 + ldr r2, _08149604 + b _08149614 + .align 2, 0 +_081495F4: .4byte 0x040000B0 +_081495F8: .4byte 0x0000C5FF +_081495FC: .4byte 0x00007FFF +_08149600: .4byte 0x0203A86C +_08149604: .4byte 0x020388C8 +_08149608: + ldr r2, _08149628 + cmp r0, #1 + bne _08149614 + movs r0, #0xf0 + lsls r0, r0, #3 + adds r2, r2, r0 +_08149614: + ldr r1, _0814962C + str r2, [r1] + ldr r0, _08149630 + str r0, [r1, #4] + ldr r0, _08149634 + str r0, [r1, #8] + ldr r0, [r1, #8] + pop {r0} + bx r0 + .align 2, 0 +_08149628: .4byte 0x020388C8 +_0814962C: .4byte 0x040000B0 +_08149630: .4byte 0x04000012 +_08149634: .4byte 0xA2400001 + thumb_func_end VBlankCB_Phase2_Rayquaza + + thumb_func_start Phase2Task_ShredSplit +Phase2Task_ShredSplit: @ 0x08149638 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _08149668 + ldr r2, _0814966C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_0814964A: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0814964A + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08149668: .4byte 0x085A883C +_0814966C: .4byte 0x03005B60 + thumb_func_end Phase2Task_ShredSplit + + thumb_func_start Phase2_WhiteFade_Func1 +Phase2_WhiteFade_Func1: @ 0x08149670 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08149FC8 + bl ScanlineEffect_Clear + ldr r0, _081496D8 + ldr r1, [r0] + movs r2, #0 + movs r0, #0xbf + strh r0, [r1, #0xe] + strh r2, [r1, #0x12] + movs r0, #0x1e + strh r0, [r1, #2] + movs r0, #0x3f + strh r0, [r1, #4] + movs r0, #0xa0 + strh r0, [r1, #8] + movs r1, #0 + ldr r2, _081496DC + movs r4, #0 + movs r3, #0xf0 +_0814969C: + lsls r0, r1, #1 + adds r0, r0, r2 + strh r4, [r0] + adds r0, r1, #0 + adds r0, #0xa0 + lsls r0, r0, #1 + adds r0, r0, r2 + strh r3, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0x9f + bls _0814969C + movs r0, #2 + bl EnableInterrupts + ldr r0, _081496E0 + bl SetHBlankCallback + ldr r0, _081496E4 + bl SetVBlankCallback + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081496D8: .4byte 0x0203A86C +_081496DC: .4byte 0x02039048 +_081496E0: .4byte 0x08149901 +_081496E4: .4byte 0x08149835 + thumb_func_end Phase2_WhiteFade_Func1 + + thumb_func_start Phase2_WhiteFade_Func2 +Phase2_WhiteFade_Func2: @ 0x081496E8 + push {r4, r5, r6, lr} + sub sp, #0x10 + adds r6, r0, #0 + ldr r1, _08149750 + mov r0, sp + movs r2, #0x10 + bl memcpy + movs r5, #0 + movs r4, #0 +_081496FC: + ldr r0, _08149754 + bl CreateInvisibleSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08149758 + adds r2, r1, r0 + movs r0, #0xf0 + strh r0, [r2, #0x20] + strh r4, [r2, #0x22] + lsls r1, r5, #0x10 + asrs r1, r1, #0x10 + lsls r0, r1, #1 + add r0, sp + ldrh r0, [r0] + strh r0, [r2, #0x38] + adds r1, #1 + lsls r1, r1, #0x10 + lsls r0, r4, #0x10 + movs r3, #0xa0 + lsls r3, r3, #0xd + adds r0, r0, r3 + lsrs r4, r0, #0x10 + lsrs r5, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #7 + ble _081496FC + ldrh r0, [r2, #0x3a] + adds r0, #1 + strh r0, [r2, #0x3a] + ldrh r0, [r6, #8] + adds r0, #1 + strh r0, [r6, #8] + movs r0, #0 + add sp, #0x10 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08149750: .4byte 0x085A8850 +_08149754: .4byte 0x08149925 +_08149758: .4byte 0x020205AC + thumb_func_end Phase2_WhiteFade_Func2 + + thumb_func_start Phase2_WhiteFade_Func3 +Phase2_WhiteFade_Func3: @ 0x0814975C + push {r4, lr} + adds r4, r0, #0 + ldr r2, _08149790 + ldr r1, [r2] + ldrb r0, [r1] + movs r0, #0 + strb r0, [r1] + ldr r0, [r2] + movs r1, #0x20 + ldrsh r0, [r0, r1] + cmp r0, #7 + ble _08149786 + movs r0, #1 + rsbs r0, r0, #0 + ldr r2, _08149794 + movs r1, #0x10 + bl BlendPalettes + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_08149786: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08149790: .4byte 0x0203A86C +_08149794: .4byte 0x00007FFF + thumb_func_end Phase2_WhiteFade_Func3 + + thumb_func_start Phase2_WhiteFade_Func4 +Phase2_WhiteFade_Func4: @ 0x08149798 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r4, _081497EC + ldr r0, [r4] + ldrb r1, [r0] + movs r5, #0 + strb r5, [r0] + ldr r1, _081497F0 + ldrh r2, [r1, #0xa] + ldr r0, _081497F4 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r2, [r1, #0xa] + ldr r0, _081497F8 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + movs r0, #0 + bl SetVBlankCallback + movs r0, #0 + bl SetHBlankCallback + ldr r1, [r4] + movs r0, #0xf0 + strh r0, [r1, #6] + strh r5, [r1, #0x12] + movs r0, #0xff + strh r0, [r1, #0xe] + movs r0, #0x3f + strh r0, [r1, #2] + ldr r0, _081497FC + bl SetVBlankCallback + ldrh r0, [r6, #8] + adds r0, #1 + strh r0, [r6, #8] + movs r0, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_081497EC: .4byte 0x0203A86C +_081497F0: .4byte 0x040000B0 +_081497F4: .4byte 0x0000C5FF +_081497F8: .4byte 0x00007FFF +_081497FC: .4byte 0x081498C5 + thumb_func_end Phase2_WhiteFade_Func4 + + thumb_func_start Phase2_WhiteFade_Func5 +Phase2_WhiteFade_Func5: @ 0x08149800 + push {lr} + ldr r0, _0814982C + ldr r1, [r0] + ldrh r0, [r1, #0x12] + adds r0, #1 + strh r0, [r1, #0x12] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x10 + bls _08149826 + bl sub_0814A044 + ldr r0, _08149830 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_08149826: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0814982C: .4byte 0x0203A86C +_08149830: .4byte 0x08149639 + thumb_func_end Phase2_WhiteFade_Func5 + + thumb_func_start VBlankCB0_Phase2_WhiteFade +VBlankCB0_Phase2_WhiteFade: @ 0x08149834 + push {r4, lr} + ldr r4, _08149898 + ldrh r1, [r4, #0xa] + ldr r0, _0814989C + ands r0, r1 + strh r0, [r4, #0xa] + ldrh r1, [r4, #0xa] + ldr r0, _081498A0 + ands r0, r1 + strh r0, [r4, #0xa] + ldrh r0, [r4, #0xa] + bl VBlankCB_BattleTransition + ldr r2, _081498A4 + ldr r0, _081498A8 + ldr r1, [r0] + ldrh r0, [r1, #0xe] + strh r0, [r2] + subs r2, #8 + ldrh r0, [r1, #2] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #4] + strh r0, [r2] + subs r2, #6 + ldrh r0, [r1, #8] + strh r0, [r2] + ldrb r0, [r1] + cmp r0, #0 + beq _08149884 + ldr r1, _081498AC + ldr r0, _081498B0 + str r0, [r1] + movs r2, #0xf0 + lsls r2, r2, #3 + adds r0, r0, r2 + str r0, [r1, #4] + ldr r0, _081498B4 + str r0, [r1, #8] + ldr r0, [r1, #8] +_08149884: + ldr r0, _081498B8 + str r0, [r4] + ldr r0, _081498BC + str r0, [r4, #4] + ldr r0, _081498C0 + str r0, [r4, #8] + ldr r0, [r4, #8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08149898: .4byte 0x040000B0 +_0814989C: .4byte 0x0000C5FF +_081498A0: .4byte 0x00007FFF +_081498A4: .4byte 0x04000050 +_081498A8: .4byte 0x0203A86C +_081498AC: .4byte 0x040000D4 +_081498B0: .4byte 0x020388C8 +_081498B4: .4byte 0x80000140 +_081498B8: .4byte 0x02039188 +_081498BC: .4byte 0x04000040 +_081498C0: .4byte 0xA2400001 + thumb_func_end VBlankCB0_Phase2_WhiteFade + + thumb_func_start VBlankCB1_Phase2_WhiteFade +VBlankCB1_Phase2_WhiteFade: @ 0x081498C4 + push {lr} + bl VBlankCB_BattleTransition + ldr r1, _081498F8 + ldr r0, _081498FC + ldr r2, [r0] + ldrh r0, [r2, #0x12] + strh r0, [r1] + subs r1, #4 + ldrh r0, [r2, #0xe] + strh r0, [r1] + subs r1, #8 + ldrh r0, [r2, #2] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r2, #4] + strh r0, [r1] + subs r1, #0xa + ldrh r0, [r2, #6] + strh r0, [r1] + adds r1, #4 + ldrh r0, [r2, #8] + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_081498F8: .4byte 0x04000054 +_081498FC: .4byte 0x0203A86C + thumb_func_end VBlankCB1_Phase2_WhiteFade + + thumb_func_start HBlankCB_Phase2_WhiteFade +HBlankCB_Phase2_WhiteFade: @ 0x08149900 + ldr r2, _08149918 + ldr r1, _0814991C + ldr r0, _08149920 + ldrh r0, [r0] + lsls r0, r0, #1 + movs r3, #0xf0 + lsls r3, r3, #3 + adds r1, r1, r3 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2] + bx lr + .align 2, 0 +_08149918: .4byte 0x04000054 +_0814991C: .4byte 0x020388C8 +_08149920: .4byte 0x04000006 + thumb_func_end HBlankCB_Phase2_WhiteFade + + thumb_func_start sub_08149924 +sub_08149924: @ 0x08149924 + push {r4, r5, r6, lr} + adds r3, r0, #0 + ldrh r1, [r3, #0x38] + movs r2, #0x38 + ldrsh r0, [r3, r2] + cmp r0, #0 + beq _08149950 + subs r0, r1, #1 + strh r0, [r3, #0x38] + movs r1, #0x3a + ldrsh r0, [r3, r1] + cmp r0, #0 + beq _08149A0C + ldr r0, _0814994C + ldr r1, [r0] + ldrb r0, [r1] + movs r0, #1 + strb r0, [r1] + b _08149A0C + .align 2, 0 +_0814994C: .4byte 0x0203A86C +_08149950: + movs r2, #0x22 + ldrsh r1, [r3, r2] + lsls r1, r1, #1 + ldr r0, _08149A14 + adds r6, r1, r0 + movs r2, #0xa0 + lsls r2, r2, #1 + adds r0, r0, r2 + adds r5, r1, r0 + movs r4, #0 +_08149964: + lsls r1, r4, #1 + adds r2, r1, r6 + ldrh r0, [r3, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + strh r0, [r2] + adds r1, r1, r5 + ldrh r0, [r3, #0x20] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r1] + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x13 + bls _08149964 + movs r1, #0x20 + ldrsh r0, [r3, r1] + ldrh r2, [r3, #0x20] + cmp r0, #0 + bne _0814999E + movs r0, #0x2e + ldrsh r1, [r3, r0] + movs r0, #0x80 + lsls r0, r0, #5 + cmp r1, r0 + bne _0814999E + movs r0, #1 + strh r0, [r3, #0x30] +_0814999E: + adds r1, r2, #0 + subs r1, #0x10 + strh r1, [r3, #0x20] + ldrh r0, [r3, #0x2e] + adds r0, #0x80 + strh r0, [r3, #0x2e] + lsls r1, r1, #0x10 + cmp r1, #0 + bge _081499B4 + movs r0, #0 + strh r0, [r3, #0x20] +_081499B4: + movs r1, #0x2e + ldrsh r0, [r3, r1] + movs r1, #0x80 + lsls r1, r1, #5 + cmp r0, r1 + ble _081499C2 + strh r1, [r3, #0x2e] +_081499C2: + movs r2, #0x3a + ldrsh r0, [r3, r2] + cmp r0, #0 + beq _081499D4 + ldr r0, _08149A18 + ldr r1, [r0] + ldrb r0, [r1] + movs r0, #1 + strb r0, [r1] +_081499D4: + movs r1, #0x30 + ldrsh r0, [r3, r1] + cmp r0, #0 + beq _08149A0C + movs r2, #0x3a + ldrsh r0, [r3, r2] + ldr r2, _08149A18 + cmp r0, #0 + beq _081499FE + ldr r0, [r2] + movs r1, #0x20 + ldrsh r0, [r0, r1] + cmp r0, #6 + ble _08149A0C + ldrh r0, [r3, #0x32] + adds r1, r0, #1 + strh r1, [r3, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + ble _08149A0C +_081499FE: + ldr r1, [r2] + ldrh r0, [r1, #0x20] + adds r0, #1 + strh r0, [r1, #0x20] + adds r0, r3, #0 + bl DestroySprite +_08149A0C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08149A14: .4byte 0x020388C8 +_08149A18: .4byte 0x0203A86C + thumb_func_end sub_08149924 + + thumb_func_start Phase2Task_Shuffle +Phase2Task_Shuffle: @ 0x08149A1C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _08149A4C + ldr r2, _08149A50 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_08149A2E: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08149A2E + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08149A4C: .4byte 0x085A8860 +_08149A50: .4byte 0x03005B60 + thumb_func_end Phase2Task_Shuffle + + thumb_func_start Phase2_GridSquares_Func1 +Phase2_GridSquares_Func1: @ 0x08149A54 + push {r4, lr} + sub sp, #0xc + adds r4, r0, #0 + add r0, sp, #4 + add r1, sp, #8 + bl sub_0814A018 + ldr r0, _08149A9C + ldr r1, [sp, #8] + movs r2, #0x10 + bl CpuSet + mov r1, sp + movs r2, #0xf0 + lsls r2, r2, #8 + adds r0, r2, #0 + strh r0, [r1] + ldr r1, [sp, #4] + ldr r2, _08149AA0 + mov r0, sp + bl CpuSet + ldr r0, _08149AA4 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + add sp, #0xc + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08149A9C: .4byte 0x0859A780 +_08149AA0: .4byte 0x01000400 +_08149AA4: .4byte 0x085A8984 + thumb_func_end Phase2_GridSquares_Func1 + + thumb_func_start Phase2_GridSquares_Func2 +Phase2_GridSquares_Func2: @ 0x08149AA8 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08149AEA + mov r0, sp + bl sub_0814A000 + movs r0, #3 + strh r0, [r4, #0xa] + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + movs r1, #0xc + ldrsh r0, [r4, r1] + lsls r0, r0, #5 + ldr r1, _08149AFC + adds r0, r0, r1 + ldr r1, [sp] + movs r2, #0x10 + bl CpuSet + movs r1, #0xc + ldrsh r0, [r4, r1] + cmp r0, #0xd + ble _08149AEA + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0x10 + strh r0, [r4, #0xa] +_08149AEA: + ldrh r0, [r4, #0xa] + subs r0, #1 + strh r0, [r4, #0xa] + movs r0, #0 + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08149AFC: .4byte 0x0859A780 + thumb_func_end Phase2_GridSquares_Func2 + + thumb_func_start Phase2_GridSquares_Func3 +Phase2_GridSquares_Func3: @ 0x08149B00 + push {lr} + ldrh r1, [r0, #0xa] + subs r1, #1 + strh r1, [r0, #0xa] + lsls r1, r1, #0x10 + cmp r1, #0 + bne _08149B20 + bl sub_0814A044 + ldr r0, _08149B28 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_08149B20: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_08149B28: .4byte 0x08149A1D + thumb_func_end Phase2_GridSquares_Func3 + + thumb_func_start Phase2Task_Slice +Phase2Task_Slice: @ 0x08149B2C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _08149B5C + ldr r2, _08149B60 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_08149B3E: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08149B3E + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08149B5C: .4byte 0x085A886C +_08149B60: .4byte 0x03005B60 + thumb_func_end Phase2Task_Slice + + thumb_func_start Phase2_Shards_Func1 +Phase2_Shards_Func1: @ 0x08149B64 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08149FC8 + bl ScanlineEffect_Clear + ldr r0, _08149BBC + ldr r1, [r0] + movs r2, #0 + movs r0, #0x3f + strh r0, [r1, #2] + strh r2, [r1, #4] + movs r0, #0xa0 + strh r0, [r1, #8] + movs r1, #0 + ldr r2, _08149BC0 + movs r3, #0xf0 + adds r4, r2, #0 +_08149B88: + lsls r0, r1, #1 + adds r0, r0, r2 + strh r3, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0x9f + bls _08149B88 + movs r0, #0xf0 + lsls r0, r0, #3 + adds r1, r4, r0 + adds r0, r4, #0 + movs r2, #0xa0 + bl CpuSet + ldr r0, _08149BC4 + bl SetVBlankCallback + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08149BBC: .4byte 0x0203A86C +_08149BC0: .4byte 0x020388C8 +_08149BC4: .4byte 0x08149DA9 + thumb_func_end Phase2_Shards_Func1 + + thumb_func_start Phase2_Shards_Func2 +Phase2_Shards_Func2: @ 0x08149BC8 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0xc + mov r8, r0 + ldr r0, _08149C3C + ldr r0, [r0] + adds r0, #0x24 + ldr r6, _08149C40 + mov r2, r8 + movs r3, #0xa + ldrsh r1, [r2, r3] + lsls r4, r1, #2 + adds r4, r4, r1 + lsls r4, r4, #1 + adds r1, r4, r6 + movs r5, #0 + ldrsh r1, [r1, r5] + adds r2, r6, #2 + adds r2, r4, r2 + movs r3, #0 + ldrsh r2, [r2, r3] + adds r3, r6, #4 + adds r3, r4, r3 + movs r5, #0 + ldrsh r3, [r3, r5] + adds r5, r6, #6 + adds r4, r4, r5 + movs r5, #0 + ldrsh r4, [r4, r5] + str r4, [sp] + movs r4, #1 + str r4, [sp, #4] + str r4, [sp, #8] + bl sub_0814A26C + mov r0, r8 + movs r2, #0xa + ldrsh r1, [r0, r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r6, #8 + adds r0, r0, r6 + ldrh r0, [r0] + mov r3, r8 + strh r0, [r3, #0xc] + ldrh r0, [r3, #8] + adds r0, #1 + strh r0, [r3, #8] + movs r0, #1 + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08149C3C: .4byte 0x0203A86C +_08149C40: .4byte 0x085A8880 + thumb_func_end Phase2_Shards_Func2 + + thumb_func_start Phase2_Shards_Func3 +Phase2_Shards_Func3: @ 0x08149C44 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + ldr r0, _08149C94 + ldr r1, [r0] + ldrb r0, [r1] + movs r0, #0 + strb r0, [r1] + mov r8, r0 + movs r7, #0 + ldr r0, _08149C98 + mov sb, r0 +_08149C60: + ldr r1, _08149C98 + ldr r0, _08149C94 + ldr r2, [r0] + movs r3, #0x2a + ldrsh r0, [r2, r3] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + lsrs r3, r0, #8 + movs r5, #0xff + ands r5, r0 + movs r4, #0xc + ldrsh r0, [r6, r4] + cmp r0, #0 + bne _08149C9C + movs r1, #0x28 + ldrsh r0, [r2, r1] + cmp r3, r0 + bge _08149C88 + ldrh r3, [r2, #0x28] +_08149C88: + lsls r0, r3, #0x10 + lsls r1, r5, #0x10 + cmp r0, r1 + ble _08149CB4 + lsrs r3, r1, #0x10 + b _08149CB4 + .align 2, 0 +_08149C94: .4byte 0x0203A86C +_08149C98: .4byte 0x020388C8 +_08149C9C: + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + movs r4, #0x28 + ldrsh r1, [r2, r4] + cmp r0, r1 + ble _08149CAA + ldrh r5, [r2, #0x28] +_08149CAA: + lsls r0, r5, #0x10 + lsls r1, r3, #0x10 + cmp r0, r1 + bgt _08149CB4 + lsrs r5, r1, #0x10 +_08149CB4: + ldr r0, _08149CD8 + ldr r4, [r0] + movs r0, #0x2a + ldrsh r2, [r4, r0] + lsls r2, r2, #1 + add r2, sb + lsls r1, r3, #0x10 + asrs r1, r1, #8 + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + orrs r0, r1 + strh r0, [r2] + cmp r7, #0 + beq _08149CDC + ldrh r0, [r6, #8] + adds r0, #1 + strh r0, [r6, #8] + b _08149D00 + .align 2, 0 +_08149CD8: .4byte 0x0203A86C +_08149CDC: + adds r0, r4, #0 + adds r0, #0x24 + movs r1, #1 + movs r2, #1 + bl sub_0814A2E8 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + mov r1, r8 + lsls r0, r1, #0x10 + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r0, r3 + lsrs r4, r0, #0x10 + mov r8, r4 + asrs r0, r0, #0x10 + cmp r0, #0xf + ble _08149C60 +_08149D00: + ldr r0, _08149D1C + ldr r1, [r0] + ldrb r0, [r1] + adds r0, #1 + ldrb r2, [r1] + strb r0, [r1] + movs r0, #0 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08149D1C: .4byte 0x0203A86C + thumb_func_end Phase2_Shards_Func3 + + thumb_func_start Phase2_Shards_Func4 +Phase2_Shards_Func4: @ 0x08149D20 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0xa] + adds r0, #1 + strh r0, [r2, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #6 + ble _08149D6C + ldr r1, _08149D5C + ldrh r2, [r1, #0xa] + ldr r0, _08149D60 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r2, [r1, #0xa] + ldr r0, _08149D64 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + bl sub_0814A044 + ldr r0, _08149D68 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + movs r0, #0 + b _08149D84 + .align 2, 0 +_08149D5C: .4byte 0x040000B0 +_08149D60: .4byte 0x0000C5FF +_08149D64: .4byte 0x00007FFF +_08149D68: .4byte 0x08149B2D +_08149D6C: + ldrh r0, [r2, #8] + adds r0, #1 + strh r0, [r2, #8] + ldr r1, _08149D88 + movs r3, #0xa + ldrsh r0, [r2, r3] + subs r0, #1 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2, #0xe] + movs r0, #1 +_08149D84: + pop {r1} + bx r1 + .align 2, 0 +_08149D88: .4byte 0x085A88C6 + thumb_func_end Phase2_Shards_Func4 + + thumb_func_start Phase2_Shards_Func5 +Phase2_Shards_Func5: @ 0x08149D8C + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0xe] + subs r0, #1 + strh r0, [r1, #0xe] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08149DA0 + movs r0, #0 + b _08149DA4 +_08149DA0: + movs r0, #1 + strh r0, [r1, #8] +_08149DA4: + pop {r1} + bx r1 + thumb_func_end Phase2_Shards_Func5 + + thumb_func_start VBlankCB_Phase2_Shards +VBlankCB_Phase2_Shards: @ 0x08149DA8 + push {r4, lr} + ldr r4, _08149E14 + ldrh r1, [r4, #0xa] + ldr r0, _08149E18 + ands r0, r1 + strh r0, [r4, #0xa] + ldrh r1, [r4, #0xa] + ldr r0, _08149E1C + ands r0, r1 + strh r0, [r4, #0xa] + ldrh r0, [r4, #0xa] + bl VBlankCB_BattleTransition + ldr r3, _08149E20 + ldr r0, [r3] + ldrb r0, [r0] + cmp r0, #0 + beq _08149DE0 + ldr r1, _08149E24 + ldr r0, _08149E28 + str r0, [r1] + movs r2, #0xf0 + lsls r2, r2, #3 + adds r0, r0, r2 + str r0, [r1, #4] + ldr r0, _08149E2C + str r0, [r1, #8] + ldr r0, [r1, #8] +_08149DE0: + ldr r2, _08149E30 + ldr r1, [r3] + ldrh r0, [r1, #2] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #4] + strh r0, [r2] + subs r2, #6 + ldrh r0, [r1, #8] + strh r0, [r2] + subs r2, #4 + ldr r0, _08149E28 + movs r1, #0xf0 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrh r1, [r0] + strh r1, [r2] + str r0, [r4] + str r2, [r4, #4] + ldr r0, _08149E34 + str r0, [r4, #8] + ldr r0, [r4, #8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08149E14: .4byte 0x040000B0 +_08149E18: .4byte 0x0000C5FF +_08149E1C: .4byte 0x00007FFF +_08149E20: .4byte 0x0203A86C +_08149E24: .4byte 0x040000D4 +_08149E28: .4byte 0x020388C8 +_08149E2C: .4byte 0x800000A0 +_08149E30: .4byte 0x04000048 +_08149E34: .4byte 0xA2400001 + thumb_func_end VBlankCB_Phase2_Shards + + thumb_func_start CreatePhase1Task +CreatePhase1Task: @ 0x08149E38 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #4 + mov r8, r0 + adds r4, r1, #0 + adds r5, r2, #0 + adds r6, r3, #0 + ldr r3, [sp, #0x18] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + ldr r0, _08149E94 + movs r1, #3 + str r3, [sp] + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08149E98 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + mov r0, r8 + strh r0, [r1, #0xa] + strh r4, [r1, #0xc] + strh r5, [r1, #0xe] + strh r6, [r1, #0x10] + ldr r3, [sp] + strh r3, [r1, #0x12] + strh r0, [r1, #0x14] + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08149E94: .4byte 0x08149EBD +_08149E98: .4byte 0x03005B60 + thumb_func_end CreatePhase1Task + + thumb_func_start IsPhase1Done +IsPhase1Done: @ 0x08149E9C + push {lr} + ldr r0, _08149EB0 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _08149EB4 + movs r0, #0 + b _08149EB6 + .align 2, 0 +_08149EB0: .4byte 0x08149EBD +_08149EB4: + movs r0, #1 +_08149EB6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsPhase1Done + + thumb_func_start Phase2Task_Magma +Phase2Task_Magma: @ 0x08149EBC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _08149EEC + ldr r2, _08149EF0 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_08149ECE: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08149ECE + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08149EEC: .4byte 0x085A88D4 +_08149EF0: .4byte 0x03005B60 + thumb_func_end Phase2Task_Magma + + thumb_func_start Phase1_TransitionAll_Func1 +Phase1_TransitionAll_Func1: @ 0x08149EF4 + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x14] + movs r2, #0x14 + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _08149F0C + subs r0, r1, #1 + strh r0, [r4, #0x14] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08149F30 +_08149F0C: + ldrh r0, [r4, #0xa] + strh r0, [r4, #0x14] + ldrh r0, [r4, #0x10] + ldrh r1, [r4, #0x16] + adds r0, r0, r1 + strh r0, [r4, #0x16] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x10 + ble _08149F24 + movs r0, #0x10 + strh r0, [r4, #0x16] +_08149F24: + movs r0, #1 + rsbs r0, r0, #0 + ldrb r1, [r4, #0x16] + ldr r2, _08149F4C + bl BlendPalettes +_08149F30: + movs r2, #0x16 + ldrsh r0, [r4, r2] + cmp r0, #0xf + ble _08149F42 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + ldrh r0, [r4, #0xc] + strh r0, [r4, #0x14] +_08149F42: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08149F4C: .4byte 0x00002D6B + thumb_func_end Phase1_TransitionAll_Func1 + + thumb_func_start Phase1_TransitionAll_Func2 +Phase1_TransitionAll_Func2: @ 0x08149F50 + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x14] + movs r2, #0x14 + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _08149F68 + subs r0, r1, #1 + strh r0, [r4, #0x14] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08149F8A +_08149F68: + ldrh r0, [r4, #0xc] + strh r0, [r4, #0x14] + ldrh r0, [r4, #0x16] + ldrh r1, [r4, #0x12] + subs r0, r0, r1 + strh r0, [r4, #0x16] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _08149F7E + movs r0, #0 + strh r0, [r4, #0x16] +_08149F7E: + movs r0, #1 + rsbs r0, r0, #0 + ldrb r1, [r4, #0x16] + ldr r2, _08149FB0 + bl BlendPalettes +_08149F8A: + movs r0, #0x16 + ldrsh r1, [r4, r0] + cmp r1, #0 + bne _08149FBE + ldrh r0, [r4, #0xe] + subs r0, #1 + strh r0, [r4, #0xe] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08149FB8 + ldr r0, _08149FB4 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + b _08149FBE + .align 2, 0 +_08149FB0: .4byte 0x00002D6B +_08149FB4: .4byte 0x08149EBD +_08149FB8: + ldrh r0, [r4, #0xa] + strh r0, [r4, #0x14] + strh r1, [r4, #8] +_08149FBE: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end Phase1_TransitionAll_Func2 + + thumb_func_start sub_08149FC8 +sub_08149FC8: @ 0x08149FC8 + push {r4, lr} + ldr r4, _08149FE8 + ldr r0, [r4] + movs r1, #0 + movs r2, #0x3c + bl memset + ldr r1, [r4] + adds r0, r1, #0 + adds r0, #0x14 + adds r1, #0x16 + bl sub_0808956C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08149FE8: .4byte 0x0203A86C + thumb_func_end sub_08149FC8 + + thumb_func_start VBlankCB_BattleTransition +VBlankCB_BattleTransition: @ 0x08149FEC + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end VBlankCB_BattleTransition + + thumb_func_start sub_0814A000 +sub_0814A000: @ 0x0814A000 + ldr r1, _0814A014 + ldrh r1, [r1] + lsrs r1, r1, #2 + lsls r1, r1, #0x1e + lsrs r1, r1, #0x10 + movs r2, #0xc0 + lsls r2, r2, #0x13 + adds r1, r1, r2 + str r1, [r0] + bx lr + .align 2, 0 +_0814A014: .4byte 0x04000008 + thumb_func_end sub_0814A000 + + thumb_func_start sub_0814A018 +sub_0814A018: @ 0x0814A018 + push {r4, lr} + ldr r3, _0814A040 + ldrh r2, [r3] + lsrs r2, r2, #8 + ldrh r3, [r3] + lsrs r3, r3, #2 + lsls r2, r2, #0x1b + lsrs r2, r2, #0x10 + lsls r3, r3, #0x1e + lsrs r3, r3, #0x10 + movs r4, #0xc0 + lsls r4, r4, #0x13 + adds r2, r2, r4 + str r2, [r0] + adds r3, r3, r4 + str r3, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814A040: .4byte 0x04000008 + thumb_func_end sub_0814A018 + + thumb_func_start sub_0814A044 +sub_0814A044: @ 0x0814A044 + push {lr} + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0814A044 + + thumb_func_start sub_0814A058 +sub_0814A058: @ 0x0814A058 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sl, r0 + ldr r0, [sp, #0x20] + ldr r4, [sp, #0x24] + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + lsls r4, r4, #0x10 + movs r6, #0 + lsrs r5, r4, #0x10 + cmp r4, #0 + ble _0814A0C0 + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + mov sb, r0 + lsls r1, r1, #0x10 + mov r8, r1 + lsls r0, r3, #0x10 + asrs r7, r0, #0x10 +_0814A090: + lsls r4, r2, #0x10 + asrs r4, r4, #0x10 + movs r0, #0xff + ands r0, r4 + mov r2, r8 + asrs r1, r2, #0x10 + bl Sin + lsls r1, r6, #1 + add r1, sl + add r0, sb + strh r0, [r1] + lsls r1, r5, #0x10 + ldr r0, _0814A0D0 + adds r1, r1, r0 + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r4, r4, r7 + lsls r4, r4, #0x10 + lsrs r2, r4, #0x10 + lsrs r5, r1, #0x10 + cmp r1, #0 + bgt _0814A090 +_0814A0C0: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0814A0D0: .4byte 0xFFFF0000 + thumb_func_end sub_0814A058 + + thumb_func_start sub_0814A0D4 +sub_0814A0D4: @ 0x0814A0D4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + mov sb, r0 + adds r5, r2, #0 + adds r4, r3, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp] + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + movs r2, #0xa0 + lsls r2, r2, #1 + movs r1, #0xa + bl memset + movs r1, #0 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + str r4, [sp, #4] + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + str r5, [sp, #8] +_0814A10C: + lsls r5, r1, #0x10 + asrs r0, r5, #0x10 + mov sl, r0 + ldr r1, [sp, #4] + bl Sin + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + mov r0, sl + ldr r1, [sp, #4] + bl Cos + ldr r2, [sp] + lsls r1, r2, #0x10 + asrs r1, r1, #0x10 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + subs r2, r1, r4 + lsls r2, r2, #0x10 + adds r1, r1, r4 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldr r3, [sp, #8] + subs r1, r3, r0 + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + adds r0, r3, r0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + lsrs r1, r2, #0x10 + str r5, [sp, #0x10] + cmp r2, #0 + bge _0814A158 + movs r1, #0 +_0814A158: + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xf0 + ble _0814A162 + movs r6, #0xf0 +_0814A162: + lsls r0, r7, #0x10 + cmp r0, #0 + bge _0814A16A + movs r7, #0 +_0814A16A: + mov r2, r8 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x9f + ble _0814A178 + movs r3, #0x9f + mov r8, r3 +_0814A178: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x10 + orrs r6, r0 + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + str r0, [sp, #0xc] + lsls r0, r0, #1 + add r0, sb + strh r6, [r0] + mov r0, r8 + lsls r4, r0, #0x10 + asrs r0, r4, #0xf + add r0, sb + strh r6, [r0] + mov r0, sl + adds r0, #1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldr r1, [sp, #4] + bl Cos + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldr r2, [sp, #8] + subs r1, r2, r0 + lsls r1, r1, #0x10 + adds r0, r2, r0 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + lsrs r3, r1, #0x10 + cmp r1, #0 + bge _0814A1BA + movs r3, #0 +_0814A1BA: + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x9f + ble _0814A1C4 + movs r2, #0x9f +_0814A1C4: + lsls r0, r3, #0x10 + asrs r1, r0, #0x10 + adds r3, r0, #0 + lsls r5, r2, #0x10 + ldr r0, [sp, #0xc] + cmp r0, r1 + ble _0814A1E8 + adds r2, r1, #0 +_0814A1D4: + lsls r1, r7, #0x10 + ldr r0, _0814A268 + adds r1, r1, r0 + asrs r0, r1, #0xf + add r0, sb + strh r6, [r0] + lsrs r7, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, r2 + bgt _0814A1D4 +_0814A1E8: + lsls r1, r7, #0x10 + asrs r0, r3, #0x10 + cmp r1, r3 + bge _0814A206 + adds r2, r0, #0 +_0814A1F2: + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r1, r3 + asrs r1, r0, #0xf + add r1, sb + strh r6, [r1] + adds r1, r0, #0 + asrs r0, r1, #0x10 + cmp r0, r2 + blt _0814A1F2 +_0814A206: + asrs r0, r5, #0x10 + cmp r4, r5 + ble _0814A224 + adds r1, r0, #0 +_0814A20E: + ldr r2, _0814A268 + adds r0, r4, r2 + lsrs r3, r0, #0x10 + mov r8, r3 + asrs r0, r0, #0xf + add r0, sb + strh r6, [r0] + lsls r4, r3, #0x10 + asrs r0, r4, #0x10 + cmp r0, r1 + bgt _0814A20E +_0814A224: + mov r0, r8 + lsls r4, r0, #0x10 + asrs r0, r5, #0x10 + cmp r4, r5 + bge _0814A244 + adds r2, r0, #0 +_0814A230: + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r4, r1 + asrs r1, r0, #0xf + add r1, sb + strh r6, [r1] + adds r4, r0, #0 + asrs r0, r4, #0x10 + cmp r0, r2 + blt _0814A230 +_0814A244: + ldr r2, [sp, #0x10] + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r2, r3 + lsrs r1, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x3f + bgt _0814A256 + b _0814A10C +_0814A256: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0814A268: .4byte 0xFFFF0000 + thumb_func_end sub_0814A0D4 + + thumb_func_start sub_0814A26C +sub_0814A26C: @ 0x0814A26C + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldr r0, [sp, #0x14] + ldr r5, [sp, #0x18] + ldr r4, [sp, #0x1c] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r7, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + strh r1, [r6] + strh r2, [r6, #2] + strh r1, [r6, #4] + strh r2, [r6, #6] + strh r3, [r6, #8] + strh r7, [r6, #0xa] + strh r5, [r6, #0xc] + strh r4, [r6, #0xe] + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + subs r3, r3, r1 + strh r3, [r6, #0x10] + lsls r0, r3, #0x10 + cmp r0, #0 + bge _0814A2BE + rsbs r0, r3, #0 + strh r0, [r6, #0x10] + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + rsbs r0, r0, #0 + strh r0, [r6, #0xc] +_0814A2BE: + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + lsls r1, r2, #0x10 + asrs r1, r1, #0x10 + subs r1, r0, r1 + strh r1, [r6, #0x12] + lsls r0, r1, #0x10 + cmp r0, #0 + bge _0814A2DC + rsbs r0, r1, #0 + strh r0, [r6, #0x12] + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + rsbs r0, r0, #0 + strh r0, [r6, #0xe] +_0814A2DC: + movs r0, #0 + strh r0, [r6, #0x14] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0814A26C + + thumb_func_start sub_0814A2E8 +sub_0814A2E8: @ 0x0814A2E8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r3, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sb, r1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sl, r2 + ldrh r0, [r3, #0x10] + mov r8, r0 + movs r1, #0x10 + ldrsh r6, [r3, r1] + ldrh r2, [r3, #0x12] + mov ip, r2 + movs r4, #0x12 + ldrsh r5, [r3, r4] + cmp r6, r5 + ble _0814A338 + ldrh r0, [r3, #0xc] + ldrh r2, [r3, #4] + adds r1, r0, r2 + strh r1, [r3, #4] + ldrh r2, [r3, #0x14] + add r2, ip + strh r2, [r3, #0x14] + lsls r1, r2, #0x10 + asrs r1, r1, #0x10 + adds r4, r0, #0 + ldrh r7, [r3, #0xe] + cmp r1, r6 + ble _0814A35E + ldrh r1, [r3, #6] + adds r0, r7, r1 + strh r0, [r3, #6] + mov r1, r8 + b _0814A35A +_0814A338: + ldrh r0, [r3, #0xe] + ldrh r2, [r3, #6] + adds r1, r0, r2 + strh r1, [r3, #6] + ldrh r2, [r3, #0x14] + add r2, r8 + strh r2, [r3, #0x14] + lsls r1, r2, #0x10 + asrs r1, r1, #0x10 + ldrh r4, [r3, #0xc] + adds r7, r0, #0 + cmp r1, r5 + ble _0814A35E + ldrh r1, [r3, #4] + adds r0, r4, r1 + strh r0, [r3, #4] + mov r1, ip +_0814A35A: + subs r0, r2, r1 + strh r0, [r3, #0x14] +_0814A35E: + movs r5, #0 + lsls r0, r4, #0x10 + asrs r2, r0, #0x10 + cmp r2, #0 + ble _0814A376 + movs r4, #4 + ldrsh r1, [r3, r4] + movs r4, #8 + ldrsh r0, [r3, r4] + ldrh r4, [r3, #8] + cmp r1, r0 + bge _0814A388 +_0814A376: + cmp r2, #0 + bge _0814A396 + movs r0, #4 + ldrsh r1, [r3, r0] + movs r2, #8 + ldrsh r0, [r3, r2] + ldrh r4, [r3, #8] + cmp r1, r0 + bgt _0814A396 +_0814A388: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + mov r0, sb + cmp r0, #0 + beq _0814A396 + strh r4, [r3, #4] +_0814A396: + lsls r0, r7, #0x10 + asrs r2, r0, #0x10 + cmp r2, #0 + ble _0814A3AC + movs r4, #6 + ldrsh r1, [r3, r4] + movs r4, #0xa + ldrsh r0, [r3, r4] + ldrh r4, [r3, #0xa] + cmp r1, r0 + bge _0814A3BE +_0814A3AC: + cmp r2, #0 + bge _0814A3CC + movs r0, #6 + ldrsh r1, [r3, r0] + movs r2, #0xa + ldrsh r0, [r3, r2] + ldrh r4, [r3, #0xa] + cmp r1, r0 + bgt _0814A3CC +_0814A3BE: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + mov r0, sl + cmp r0, #0 + beq _0814A3CC + strh r4, [r3, #6] +_0814A3CC: + cmp r5, #2 + beq _0814A3D4 + movs r0, #0 + b _0814A3D6 +_0814A3D4: + movs r0, #1 +_0814A3D6: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_0814A2E8 + + thumb_func_start Phase2_29_Func1 +Phase2_29_Func1: @ 0x0814A3E4 + push {r4, lr} + sub sp, #0xc + adds r4, r0, #0 + bl sub_0814675C + add r0, sp, #4 + add r1, sp, #8 + bl sub_0814A018 + mov r1, sp + movs r0, #0 + strh r0, [r1] + ldr r1, [sp, #4] + ldr r2, _0814A428 + mov r0, sp + bl CpuSet + ldr r0, _0814A42C + ldr r1, [sp, #8] + bl LZ77UnCompVram + ldr r0, _0814A430 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + add sp, #0xc + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0814A428: .4byte 0x01000400 +_0814A42C: .4byte 0x085A76B0 +_0814A430: .4byte 0x085A7690 + thumb_func_end Phase2_29_Func1 + + thumb_func_start Phase2_29_Func2 +Phase2_29_Func2: @ 0x0814A434 + push {r4, lr} + sub sp, #0x10 + adds r4, r0, #0 + add r1, sp, #0xc + add r0, sp, #8 + bl sub_0814A018 + ldr r0, _0814A474 + ldr r1, [sp, #8] + bl LZ77UnCompVram + ldr r0, _0814A478 + movs r1, #0x10 + ldrsh r2, [r4, r1] + movs r3, #0x12 + ldrsh r1, [r4, r3] + str r1, [sp] + movs r1, #0xa0 + str r1, [sp, #4] + movs r1, #0 + movs r3, #0x84 + bl sub_0814A058 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #1 + add sp, #0x10 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0814A474: .4byte 0x085A7D3C +_0814A478: .4byte 0x020388C8 + thumb_func_end Phase2_29_Func2 + + thumb_func_start Phase2Task_Swirl +Phase2Task_Swirl: @ 0x0814A47C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _0814A4AC + ldr r2, _0814A4B0 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_0814A48E: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0814A48E + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0814A4AC: .4byte 0x085A9480 +_0814A4B0: .4byte 0x03005B60 + thumb_func_end Phase2Task_Swirl + + thumb_func_start Phase2Task_Wave +Phase2Task_Wave: @ 0x0814A4B4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _0814A4E4 + ldr r2, _0814A4E8 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_0814A4C6: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0814A4C6 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0814A4E4: .4byte 0x085A9498 +_0814A4E8: .4byte 0x03005B60 + thumb_func_end Phase2Task_Wave + + thumb_func_start Phase2_30_Func1 +Phase2_30_Func1: @ 0x0814A4EC + push {r4, r5, r6, lr} + sub sp, #0xc + adds r4, r0, #0 + bl sub_08149FC8 + bl ScanlineEffect_Clear + movs r1, #0xc0 + lsls r1, r1, #7 + movs r0, #0 + bl ClearGpuRegBits + movs r5, #0 + movs r0, #0x80 + lsls r0, r0, #6 + strh r0, [r4, #0xc] + ldr r0, _0814A574 + strh r0, [r4, #0xa] + strh r5, [r4, #0x12] + movs r0, #0x10 + strh r0, [r4, #0x14] + movs r0, #0xa0 + lsls r0, r0, #4 + strh r0, [r4, #0x16] + ldr r6, _0814A578 + ldr r2, [r6] + ldr r3, _0814A57C + strh r3, [r2, #0xe] + ldrh r0, [r4, #0x14] + lsls r0, r0, #8 + ldrh r1, [r4, #0x12] + orrs r0, r1 + strh r0, [r2, #0x10] + ldr r0, _0814A580 + strh r3, [r0] + ldr r1, _0814A584 + ldrh r0, [r2, #0x10] + strh r0, [r1] + add r0, sp, #4 + add r1, sp, #8 + bl sub_0814A018 + mov r0, sp + strh r5, [r0] + ldr r1, [sp, #4] + ldr r2, _0814A588 + bl CpuSet + ldr r0, _0814A58C + ldr r1, [sp, #8] + bl LZ77UnCompVram + ldr r0, _0814A590 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + ldr r0, [r6] + strh r5, [r0, #0x16] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + add sp, #0xc + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0814A574: .4byte 0x00007FFF +_0814A578: .4byte 0x0203A86C +_0814A57C: .4byte 0x00003F41 +_0814A580: .4byte 0x04000050 +_0814A584: .4byte 0x04000052 +_0814A588: .4byte 0x01000400 +_0814A58C: .4byte 0x085A76B0 +_0814A590: .4byte 0x085A7690 + thumb_func_end Phase2_30_Func1 + + thumb_func_start Phase2_30_Func2 +Phase2_30_Func2: @ 0x0814A594 + push {r4, lr} + sub sp, #8 + adds r4, r0, #0 + add r1, sp, #4 + mov r0, sp + bl sub_0814A018 + ldr r0, _0814A5BC + ldr r1, [sp] + bl LZ77UnCompVram + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #1 + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0814A5BC: .4byte 0x085A7D3C + thumb_func_end Phase2_30_Func2 + + thumb_func_start Phase2_30_Func3 +Phase2_30_Func3: @ 0x0814A5C0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r2, #0 + ldr r6, _0814A600 + ldr r4, _0814A604 + ldr r3, _0814A608 +_0814A5CC: + lsls r1, r2, #1 + adds r1, r1, r4 + ldr r0, [r3] + ldrh r0, [r0, #0x16] + strh r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x9f + bls _0814A5CC + adds r0, r6, #0 + bl SetVBlankCallback + ldr r0, _0814A60C + bl SetHBlankCallback + movs r0, #2 + bl EnableInterrupts + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + movs r0, #1 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0814A600: .4byte 0x0814A745 +_0814A604: .4byte 0x02039048 +_0814A608: .4byte 0x0203A86C +_0814A60C: .4byte 0x0814A78D + thumb_func_end Phase2_30_Func3 + + thumb_func_start Phase2_30_Func4 +Phase2_30_Func4: @ 0x0814A610 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r4, r0, #0 + ldr r1, _0814A658 + ldr r0, [r1] + ldrb r2, [r0] + movs r3, #0 + strb r3, [r0] + ldrh r2, [r4, #0xc] + lsls r0, r2, #0x10 + asrs r0, r0, #0x18 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + ldrh r6, [r4, #0xa] + movs r0, #0xc0 + lsls r0, r0, #1 + mov r8, r0 + ldrh r0, [r4, #0x16] + subs r0, r6, r0 + strh r0, [r4, #0xa] + movs r5, #0xe + ldrsh r0, [r4, r5] + adds r5, r1, #0 + cmp r0, #0x45 + ble _0814A662 + movs r1, #0xc + ldrsh r0, [r4, r1] + ldr r1, _0814A65C + adds r0, r0, r1 + cmp r0, #0 + blt _0814A660 + adds r0, r2, r1 + strh r0, [r4, #0xc] + b _0814A662 + .align 2, 0 +_0814A658: .4byte 0x0203A86C +_0814A65C: .4byte 0xFFFFFE80 +_0814A660: + strh r3, [r4, #0xc] +_0814A662: + movs r2, #0xe + ldrsh r0, [r4, r2] + cmp r0, #0 + blt _0814A6A0 + movs r1, #3 + bl __modsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0814A6A0 + ldrh r1, [r4, #0x12] + movs r2, #0x12 + ldrsh r0, [r4, r2] + cmp r0, #0xf + bgt _0814A686 + adds r0, r1, #1 + strh r0, [r4, #0x12] + b _0814A694 +_0814A686: + ldrh r1, [r4, #0x14] + movs r2, #0x14 + ldrsh r0, [r4, r2] + cmp r0, #0 + ble _0814A694 + subs r0, r1, #1 + strh r0, [r4, #0x14] +_0814A694: + ldr r0, [r5] + ldrh r1, [r4, #0x14] + lsls r1, r1, #8 + ldrh r2, [r4, #0x12] + orrs r1, r2 + strh r1, [r0, #0x10] +_0814A6A0: + movs r5, #0 + lsls r7, r7, #0x10 +_0814A6A4: + lsrs r0, r6, #8 + asrs r1, r7, #0x10 + bl Sin + ldr r1, _0814A734 + lsls r2, r5, #1 + adds r2, r2, r1 + ldr r1, _0814A738 + ldr r1, [r1] + ldrh r1, [r1, #0x16] + adds r0, r0, r1 + strh r0, [r2] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + mov r1, r8 + adds r0, r6, r1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r5, #0x9f + bls _0814A6A4 + ldrh r0, [r4, #0xe] + adds r0, #1 + strh r0, [r4, #0xe] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x65 + bne _0814A6F2 + ldrh r0, [r4, #0x10] + adds r0, #1 + strh r0, [r4, #0x10] + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade +_0814A6F2: + movs r2, #0x10 + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _0814A714 + ldr r0, _0814A73C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0814A714 + ldr r0, _0814A740 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_0814A714: + ldrh r0, [r4, #0x16] + subs r0, #0x11 + strh r0, [r4, #0x16] + ldr r0, _0814A738 + ldr r1, [r0] + ldrb r0, [r1] + adds r0, #1 + ldrb r2, [r1] + strb r0, [r1] + movs r0, #0 + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0814A734: .4byte 0x020388C8 +_0814A738: .4byte 0x0203A86C +_0814A73C: .4byte 0x02037C74 +_0814A740: .4byte 0x0814A4B5 + thumb_func_end Phase2_30_Func4 + + thumb_func_start VBlankCB_Phase2_30 +VBlankCB_Phase2_30: @ 0x0814A744 + push {lr} + bl VBlankCB_BattleTransition + ldr r2, _0814A778 + ldr r0, _0814A77C + ldr r1, [r0] + ldrh r0, [r1, #0xe] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #0x10] + strh r0, [r2] + ldrb r0, [r1] + cmp r0, #0 + beq _0814A774 + ldr r1, _0814A780 + ldr r0, _0814A784 + str r0, [r1] + movs r2, #0xf0 + lsls r2, r2, #3 + adds r0, r0, r2 + str r0, [r1, #4] + ldr r0, _0814A788 + str r0, [r1, #8] + ldr r0, [r1, #8] +_0814A774: + pop {r0} + bx r0 + .align 2, 0 +_0814A778: .4byte 0x04000050 +_0814A77C: .4byte 0x0203A86C +_0814A780: .4byte 0x040000D4 +_0814A784: .4byte 0x020388C8 +_0814A788: .4byte 0x800000A0 + thumb_func_end VBlankCB_Phase2_30 + + thumb_func_start HBlankCB_Phase2_30 +HBlankCB_Phase2_30: @ 0x0814A78C + ldr r1, _0814A7A4 + ldr r0, _0814A7A8 + ldrh r0, [r0] + lsls r0, r0, #1 + movs r2, #0xf0 + lsls r2, r2, #3 + adds r1, r1, r2 + adds r0, r0, r1 + ldrh r1, [r0] + ldr r0, _0814A7AC + strh r1, [r0] + bx lr + .align 2, 0 +_0814A7A4: .4byte 0x020388C8 +_0814A7A8: .4byte 0x04000006 +_0814A7AC: .4byte 0x04000012 + thumb_func_end HBlankCB_Phase2_30 + + thumb_func_start Phase2Task_WhiteFade +Phase2Task_WhiteFade: @ 0x0814A7B0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _0814A7E0 + ldr r2, _0814A7E4 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_0814A7C2: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0814A7C2 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0814A7E0: .4byte 0x085A94A8 +_0814A7E4: .4byte 0x03005B60 + thumb_func_end Phase2Task_WhiteFade + + thumb_func_start Task_BattleTransitionMain +Task_BattleTransitionMain: @ 0x0814A7E8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _0814A818 + ldr r2, _0814A81C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_0814A7FA: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0814A7FA + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0814A818: .4byte 0x085A94B8 +_0814A81C: .4byte 0x03005B60 + thumb_func_end Task_BattleTransitionMain + + thumb_func_start TransitionPhase1_Task_RunFuncs +TransitionPhase1_Task_RunFuncs: @ 0x0814A820 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _0814A850 + ldr r2, _0814A854 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_0814A832: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0814A832 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0814A850: .4byte 0x085A94CC +_0814A854: .4byte 0x03005B60 + thumb_func_end TransitionPhase1_Task_RunFuncs + + thumb_func_start Phase2_31_Func1 +Phase2_31_Func1: @ 0x0814A858 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0x14 + mov r8, r0 + add r1, sp, #0x10 + add r0, sp, #0xc + bl sub_0814A018 + ldr r0, _0814A8E0 + ldr r1, [sp, #0x10] + bl LZ77UnCompVram + movs r4, #0x20 + str r4, [sp] + str r4, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + movs r6, #1 + str r6, [sp] + str r4, [sp, #4] + movs r5, #0xf + str r5, [sp, #8] + movs r0, #0 + movs r1, #1 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect + str r6, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #1 + movs r2, #0x1d + movs r3, #0 + bl FillBgTilemapBufferRect + movs r0, #0 + bl CopyBgTilemapBufferToVram + ldr r0, _0814A8E4 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + movs r0, #0 + mov r1, r8 + strh r6, [r1, #0xc] + strh r0, [r1, #0xe] + strh r0, [r1, #0x10] + movs r0, #0xa + strh r0, [r1, #0x16] + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + movs r0, #0 + add sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0814A8E0: .4byte 0x085A8048 +_0814A8E4: .4byte 0x085A8028 + thumb_func_end Phase2_31_Func1 + + thumb_func_start Phase2_31_Func2 +Phase2_31_Func2: @ 0x0814A8E8 + push {r4, r5, lr} + sub sp, #0x24 + adds r4, r0, #0 + ldr r1, _0814A954 + movs r2, #4 + str r2, [sp] + str r2, [sp, #4] + ldrb r0, [r4, #0xc] + str r0, [sp, #8] + ldrb r0, [r4, #0xe] + str r0, [sp, #0xc] + str r2, [sp, #0x10] + str r2, [sp, #0x14] + movs r0, #0xf + str r0, [sp, #0x18] + movs r5, #0 + str r5, [sp, #0x1c] + str r5, [sp, #0x20] + movs r0, #0 + movs r2, #0 + movs r3, #0 + bl CopyRectToBgTilemapBufferRect + movs r0, #0 + bl CopyBgTilemapBufferToVram + ldrh r0, [r4, #0xc] + adds r0, #4 + strh r0, [r4, #0xc] + ldrh r0, [r4, #0x10] + adds r0, #1 + strh r0, [r4, #0x10] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + bne _0814A94A + movs r0, #1 + strh r0, [r4, #0xc] + ldrh r0, [r4, #0xe] + adds r0, #4 + strh r0, [r4, #0xe] + strh r5, [r4, #0x10] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x13 + ble _0814A94A + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_0814A94A: + movs r0, #0 + add sp, #0x24 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0814A954: .4byte 0x085A83D8 + thumb_func_end Phase2_31_Func2 + + thumb_func_start Phase2_31_Func3 +Phase2_31_Func3: @ 0x0814A958 + push {r4, r5, r6, lr} + sub sp, #0x10 + adds r4, r0, #0 + add r1, sp, #0xc + add r0, sp, #8 + bl sub_0814A018 + ldrh r0, [r4, #0x14] + adds r1, r0, #1 + strh r1, [r4, #0x14] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x16 + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _0814AA16 + movs r1, #0x12 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _0814A9BC + cmp r0, #1 + bgt _0814A98A + cmp r0, #0 + beq _0814A994 + b _0814A9EC +_0814A98A: + cmp r0, #2 + beq _0814A9D4 + cmp r0, #3 + beq _0814A9DC + b _0814A9EC +_0814A994: + movs r2, #0xfa + ldr r6, _0814A9B4 + movs r3, #0 + ldr r5, _0814A9B8 +_0814A99C: + lsls r1, r2, #1 + adds r0, r1, r6 + strh r3, [r0] + adds r1, r1, r5 + strh r3, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xfe + bls _0814A99C + b _0814AA0C + .align 2, 0 +_0814A9B4: .4byte 0x020373B4 +_0814A9B8: .4byte 0x020377B4 +_0814A9BC: + ldr r0, _0814A9CC + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + ldr r0, _0814A9D0 + b _0814A9DE + .align 2, 0 +_0814A9CC: .4byte 0xFFFF7FFF +_0814A9D0: .4byte 0x085A81A4 +_0814A9D4: + ldr r0, _0814A9D8 + b _0814A9DE + .align 2, 0 +_0814A9D8: .4byte 0x085A82A4 +_0814A9DC: + ldr r0, _0814A9E8 +_0814A9DE: + ldr r1, [sp, #0xc] + bl LZ77UnCompVram + b _0814AA0C + .align 2, 0 +_0814A9E8: .4byte 0x085A8354 +_0814A9EC: + movs r0, #0x20 + str r0, [sp] + str r0, [sp, #4] + movs r0, #0 + movs r1, #1 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, #0 + bl CopyBgTilemapBufferToVram + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _0814AA16 +_0814AA0C: + movs r0, #0 + strh r0, [r4, #0x14] + ldrh r0, [r4, #0x12] + adds r0, #1 + strh r0, [r4, #0x12] +_0814AA16: + movs r0, #0 + add sp, #0x10 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end Phase2_31_Func3 + + thumb_func_start Phase2_33_Func1 +Phase2_33_Func1: @ 0x0814AA20 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0x14 + mov r8, r0 + add r1, sp, #0x10 + add r0, sp, #0xc + bl sub_0814A018 + ldr r0, _0814AABC + ldr r1, [sp, #0x10] + bl LZ77UnCompVram + movs r4, #0x20 + str r4, [sp] + str r4, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + movs r6, #1 + str r6, [sp] + str r4, [sp, #4] + movs r5, #0xf + str r5, [sp, #8] + movs r0, #0 + movs r1, #1 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect + str r6, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #1 + movs r2, #0x1d + movs r3, #0 + bl FillBgTilemapBufferRect + movs r0, #0 + bl CopyBgTilemapBufferToVram + ldr r4, _0814AAC0 + adds r0, r4, #0 + movs r1, #0xe0 + movs r2, #0x20 + bl LoadPalette + adds r0, r4, #0 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + movs r0, #0xe0 + movs r1, #0x10 + movs r2, #8 + movs r3, #0 + bl BlendPalette + movs r1, #0 + movs r0, #0x22 + mov r2, r8 + strh r0, [r2, #0xc] + strh r1, [r2, #0xe] + ldrh r0, [r2, #8] + adds r0, #1 + strh r0, [r2, #8] + movs r0, #0 + add sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0814AABC: .4byte 0x085A8048 +_0814AAC0: .4byte 0x085A8028 + thumb_func_end Phase2_33_Func1 + + thumb_func_start Phase2_33_Func2 +Phase2_33_Func2: @ 0x0814AAC4 + push {r4, r5, r6, lr} + sub sp, #0x24 + adds r6, r0, #0 + ldr r1, _0814AB3C + movs r2, #0xc + ldrsh r0, [r6, r2] + adds r0, r0, r1 + ldrb r5, [r0] + adds r0, r5, #0 + movs r1, #7 + bl __umodsi3 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + movs r1, #7 + bl __udivsi3 + ldr r1, _0814AB40 + movs r2, #4 + str r2, [sp] + str r2, [sp, #4] + lsls r4, r4, #2 + adds r4, #1 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r4, [sp, #8] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x18 + str r0, [sp, #0xc] + str r2, [sp, #0x10] + str r2, [sp, #0x14] + movs r0, #0xf + str r0, [sp, #0x18] + movs r0, #0 + str r0, [sp, #0x1c] + str r0, [sp, #0x20] + movs r2, #0 + movs r3, #0 + bl CopyRectToBgTilemapBufferRect + movs r0, #0 + bl CopyBgTilemapBufferToVram + ldrh r0, [r6, #0xc] + subs r0, #1 + strh r0, [r6, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _0814AB30 + ldrh r0, [r6, #8] + adds r0, #1 + strh r0, [r6, #8] +_0814AB30: + movs r0, #0 + add sp, #0x24 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0814AB3C: .4byte 0x085A94E0 +_0814AB40: .4byte 0x085A83D8 + thumb_func_end Phase2_33_Func2 + + thumb_func_start Phase2_33_Func3 +Phase2_33_Func3: @ 0x0814AB44 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0xe0 + movs r1, #0x10 + movs r2, #3 + movs r3, #0 + bl BlendPalette + ldr r0, _0814AB74 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + movs r0, #0 + strh r0, [r4, #0xc] + strh r0, [r4, #0xe] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0814AB74: .4byte 0xFFFF3FFF + thumb_func_end Phase2_33_Func3 + + thumb_func_start Phase2_33_Func4 +Phase2_33_Func4: @ 0x0814AB78 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x24 + adds r7, r0, #0 + ldrh r0, [r7, #0xe] + movs r1, #1 + eors r0, r1 + movs r6, #0 + strh r0, [r7, #0xe] + cmp r0, #0 + beq _0814ABEC + ldr r0, _0814ABE4 + mov r8, r0 + movs r4, #4 + str r4, [sp] + str r4, [sp, #4] + ldr r5, _0814ABE8 + movs r1, #0xc + ldrsh r0, [r7, r1] + adds r0, r0, r5 + ldrb r0, [r0] + movs r1, #7 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #8] + movs r2, #0xc + ldrsh r0, [r7, r2] + adds r0, r0, r5 + ldrb r0, [r0] + movs r1, #7 + bl __udivsi3 + lsls r0, r0, #0x1a + lsrs r0, r0, #0x18 + str r0, [sp, #0xc] + str r4, [sp, #0x10] + str r4, [sp, #0x14] + movs r0, #0xe + str r0, [sp, #0x18] + str r6, [sp, #0x1c] + str r6, [sp, #0x20] + movs r0, #0 + mov r1, r8 + movs r2, #0 + movs r3, #0 + bl CopyRectToBgTilemapBufferRect + b _0814AC38 + .align 2, 0 +_0814ABE4: .4byte 0x085A83D8 +_0814ABE8: .4byte 0x085A94E0 +_0814ABEC: + movs r1, #0xc + ldrsh r0, [r7, r1] + cmp r0, #0 + ble _0814AC32 + ldr r1, _0814AC5C + subs r0, #1 + adds r0, r0, r1 + ldrb r5, [r0] + adds r0, r5, #0 + movs r1, #7 + bl __umodsi3 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x16 + adds r4, #1 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + movs r1, #7 + bl __udivsi3 + adds r3, r0, #0 + lsls r3, r3, #0x1a + lsrs r3, r3, #0x18 + movs r0, #4 + str r0, [sp] + str r0, [sp, #4] + movs r0, #0xf + str r0, [sp, #8] + movs r0, #0 + movs r1, #1 + adds r2, r4, #0 + bl FillBgTilemapBufferRect +_0814AC32: + ldrh r0, [r7, #0xc] + adds r0, #1 + strh r0, [r7, #0xc] +_0814AC38: + movs r1, #0xc + ldrsh r0, [r7, r1] + cmp r0, #0x22 + ble _0814AC46 + ldrh r0, [r7, #8] + adds r0, #1 + strh r0, [r7, #8] +_0814AC46: + movs r0, #0 + bl CopyBgTilemapBufferToVram + movs r0, #0 + add sp, #0x24 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0814AC5C: .4byte 0x085A94E0 + thumb_func_end Phase2_33_Func4 + + thumb_func_start Phase2_31_33_Func5 +Phase2_31_33_Func5: @ 0x0814AC60 + push {r4, lr} + sub sp, #8 + adds r4, r0, #0 + movs r0, #0x20 + str r0, [sp] + str r0, [sp, #4] + movs r0, #0 + movs r1, #1 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, #0 + bl CopyBgTilemapBufferToVram + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + ldr r0, [r4] + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + movs r0, #0 + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end Phase2_31_33_Func5 + + thumb_func_start sub_0814ACA4 +sub_0814ACA4: @ 0x0814ACA4 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0814ACEC + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r6, r1, r2 + ldrh r0, [r6, #0xc] + movs r1, #1 + eors r0, r1 + strh r0, [r6, #0xc] + cmp r0, #0 + bne _0814ACE4 + ldr r5, _0814ACF0 + ldrh r1, [r5] + movs r0, #0x12 + bl SetGpuReg + ldr r4, _0814ACF4 + ldrh r1, [r4] + movs r0, #0x10 + bl SetGpuReg + ldrh r0, [r6, #8] + ldrh r1, [r5] + adds r0, r0, r1 + strh r0, [r5] + ldrh r0, [r6, #0xa] + ldrh r1, [r4] + adds r0, r0, r1 + strh r0, [r4] +_0814ACE4: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0814ACEC: .4byte 0x03005B60 +_0814ACF0: .4byte 0x02022AC8 +_0814ACF4: .4byte 0x02022ACA + thumb_func_end sub_0814ACA4 + + thumb_func_start Phase2_32_Func1 +Phase2_32_Func1: @ 0x0814ACF8 + push {r4, r5, r6, lr} + sub sp, #0x10 + adds r6, r0, #0 + movs r5, #0 + add r1, sp, #0xc + add r0, sp, #8 + bl sub_0814A018 + ldr r0, _0814AD74 + ldr r1, [sp, #0xc] + bl LZ77UnCompVram + movs r0, #0x20 + str r0, [sp] + str r0, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, #0 + bl CopyBgTilemapBufferToVram + ldr r0, _0814AD78 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _0814AD7C + strh r5, [r0] + ldr r4, _0814AD80 + strh r5, [r4] + movs r0, #0x12 + movs r1, #0 + bl SetGpuReg + ldrh r1, [r4] + movs r0, #0x10 + bl SetGpuReg + strh r5, [r6, #0xc] + ldr r0, _0814AD84 + movs r1, #1 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + bl Random + lsls r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r0 + lsrs r1, r1, #0x10 + cmp r1, #1 + beq _0814ADA4 + cmp r1, #1 + bgt _0814AD88 + cmp r1, #0 + beq _0814AD8E + b _0814ADDC + .align 2, 0 +_0814AD74: .4byte 0x085A8048 +_0814AD78: .4byte 0x085A8028 +_0814AD7C: .4byte 0x02022AC8 +_0814AD80: .4byte 0x02022ACA +_0814AD84: .4byte 0x0814ACA5 +_0814AD88: + cmp r1, #2 + beq _0814ADC0 + b _0814ADDC +_0814AD8E: + ldr r0, _0814ADA0 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #1 + strh r0, [r1, #8] + strh r0, [r1, #0xa] + b _0814ADEE + .align 2, 0 +_0814ADA0: .4byte 0x03005B60 +_0814ADA4: + ldr r1, _0814ADB8 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0814ADBC + strh r1, [r0, #8] + movs r1, #1 + rsbs r1, r1, #0 + b _0814ADEC + .align 2, 0 +_0814ADB8: .4byte 0x03005B60 +_0814ADBC: .4byte 0x0000FFFF +_0814ADC0: + ldr r1, _0814ADD4 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #1 + strh r1, [r0, #8] + ldr r1, _0814ADD8 + b _0814ADEC + .align 2, 0 +_0814ADD4: .4byte 0x03005B60 +_0814ADD8: .4byte 0x0000FFFF +_0814ADDC: + ldr r1, _0814AE00 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0814AE04 + strh r1, [r0, #8] + movs r1, #1 +_0814ADEC: + strh r1, [r0, #0xa] +_0814ADEE: + ldrh r0, [r6, #8] + adds r0, #1 + strh r0, [r6, #8] + movs r0, #0 + add sp, #0x10 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0814AE00: .4byte 0x03005B60 +_0814AE04: .4byte 0x0000FFFF + thumb_func_end Phase2_32_Func1 + + thumb_func_start Phase2_32_Func2 +Phase2_32_Func2: @ 0x0814AE08 + push {r4, lr} + sub sp, #0x24 + adds r4, r0, #0 + ldr r1, _0814AE6C + movs r2, #0xc + ldrsh r0, [r4, r2] + adds r0, r0, r1 + ldrb r3, [r0] + lsrs r2, r3, #3 + movs r0, #7 + ands r3, r0 + ldr r1, _0814AE70 + movs r0, #4 + str r0, [sp] + str r0, [sp, #4] + lsls r2, r2, #2 + adds r2, #1 + str r2, [sp, #8] + lsls r3, r3, #2 + str r3, [sp, #0xc] + str r0, [sp, #0x10] + str r0, [sp, #0x14] + movs r0, #0xf + str r0, [sp, #0x18] + movs r0, #0 + str r0, [sp, #0x1c] + str r0, [sp, #0x20] + movs r2, #0 + movs r3, #0 + bl CopyRectToBgTilemapBufferRect + movs r0, #0 + bl CopyBgTilemapBufferToVram + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x3f + ble _0814AE60 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_0814AE60: + movs r0, #0 + add sp, #0x24 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0814AE6C: .4byte 0x085A9503 +_0814AE70: .4byte 0x085A83D8 + thumb_func_end Phase2_32_Func2 + + thumb_func_start Phase2_32_Func3 +Phase2_32_Func3: @ 0x0814AE74 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0814AE94 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + movs r0, #0 + strh r0, [r4, #0xc] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0814AE94: .4byte 0xFFFF7FFF + thumb_func_end Phase2_32_Func3 + + thumb_func_start Phase2_32_Func4 +Phase2_32_Func4: @ 0x0814AE98 + push {r4, lr} + sub sp, #0xc + adds r4, r0, #0 + ldr r1, _0814AEF8 + movs r2, #0xc + ldrsh r0, [r4, r2] + adds r0, r0, r1 + ldrb r3, [r0] + lsrs r2, r3, #3 + movs r0, #7 + ands r3, r0 + lsls r2, r2, #2 + adds r2, #1 + lsls r3, r3, #2 + movs r0, #4 + str r0, [sp] + str r0, [sp, #4] + movs r0, #0xf + str r0, [sp, #8] + movs r0, #0 + movs r1, #1 + bl FillBgTilemapBufferRect + movs r0, #0 + bl CopyBgTilemapBufferToVram + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x3f + ble _0814AEEE + ldr r0, _0814AEFC + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_0814AEEE: + movs r0, #0 + add sp, #0xc + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0814AEF8: .4byte 0x085A9503 +_0814AEFC: .4byte 0x0814ACA5 + thumb_func_end Phase2_32_Func4 + + thumb_func_start Phase2_32_Func5 +Phase2_32_Func5: @ 0x0814AF00 + push {r4, r5, lr} + sub sp, #8 + adds r5, r0, #0 + ldr r0, _0814AF64 + movs r1, #0 + strh r1, [r0] + ldr r4, _0814AF68 + strh r1, [r4] + movs r0, #0x12 + movs r1, #0 + bl SetGpuReg + ldrh r1, [r4] + movs r0, #0x10 + bl SetGpuReg + movs r0, #0x20 + str r0, [sp] + str r0, [sp, #4] + movs r0, #0 + movs r1, #1 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, #0 + bl CopyBgTilemapBufferToVram + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + ldr r0, [r5] + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + movs r0, #0 + add sp, #8 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0814AF64: .4byte 0x02022AC8 +_0814AF68: .4byte 0x02022ACA + thumb_func_end Phase2_32_Func5 + diff --git a/asm/battle_tv.s b/asm/battle_tv.s new file mode 100644 index 0000000..66b0698 --- /dev/null +++ b/asm/battle_tv.s @@ -0,0 +1,5092 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start BattleTv_SetDataBasedOnString +BattleTv_SetDataBasedOnString: @ 0x0817C808 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp] + ldr r0, _0817C88C + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + bne _0817C834 + ldr r0, [sp] + cmp r0, #0x1b + beq _0817C834 + cmp r0, #0xdd + beq _0817C834 + bl _0817DF52 +_0817C834: + ldr r0, _0817C890 + ldr r0, [r0] + movs r1, #0x81 + lsls r1, r1, #2 + adds r7, r0, r1 + ldr r5, _0817C894 + ldrb r0, [r5] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0817C898 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _0817C89C + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldr r0, _0817C8A0 + ldr r0, [r0] + ldrb r0, [r0, #7] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + cmp r4, #0 + bne _0817C8AC + ldr r2, _0817C8A4 + ldrb r0, [r5] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _0817C8A8 + b _0817C8BC + .align 2, 0 +_0817C88C: .4byte 0x02022C90 +_0817C890: .4byte 0x02024140 +_0817C894: .4byte 0x02023EAF +_0817C898: .4byte 0x02023EB0 +_0817C89C: .4byte 0x02023EB2 +_0817C8A0: .4byte 0x0203A874 +_0817C8A4: .4byte 0x02023D12 +_0817C8A8: .4byte 0x02024190 +_0817C8AC: + ldr r2, _0817C8D8 + ldrb r0, [r5] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _0817C8DC +_0817C8BC: + adds r1, r1, r0 + str r1, [sp, #8] + cmp r6, #0 + bne _0817C8E8 + ldr r0, _0817C8E0 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _0817C8E4 + b _0817C8F8 + .align 2, 0 +_0817C8D8: .4byte 0x02023D12 +_0817C8DC: .4byte 0x020243E8 +_0817C8E0: .4byte 0x02023EB0 +_0817C8E4: .4byte 0x02024190 +_0817C8E8: + ldr r0, _0817C938 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _0817C93C +_0817C8F8: + adds r1, r1, r0 + str r1, [sp, #0xc] + ldr r0, _0817C940 + ldrb r0, [r0] + ldr r1, _0817C944 + ldr r1, [r1] + ldrh r1, [r1] + bl GetBattlerMoveSlotId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + cmp r0, #3 + bls _0817C948 + ldr r0, [sp] + bl sub_0817DF64 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0817C948 + ldr r2, [sp] + cmp r2, #0xc + bls _0817C948 + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r7, r0 + adds r0, #0x57 + ldrb r1, [r0] + movs r2, #0x1e + bl _0817DF4E + .align 2, 0 +_0817C938: .4byte 0x02023EB0 +_0817C93C: .4byte 0x020243E8 +_0817C940: .4byte 0x02023EAF +_0817C944: .4byte 0x0203A874 +_0817C948: + ldr r0, _0817C988 + ldrb r0, [r0] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x19 + mov r8, r0 + ldr r0, _0817C98C + ldrb r0, [r0] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r5, r0, #0x19 + ldr r0, _0817C990 + ldrb r0, [r0] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r3, r0, #0x19 + ldr r1, [sp] + subs r1, #2 + movs r0, #0xb0 + lsls r0, r0, #1 + cmp r1, r0 + bls _0817C97E + bl _0817DF52 +_0817C97E: + lsls r0, r1, #2 + ldr r1, _0817C994 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0817C988: .4byte 0x02023EAF +_0817C98C: .4byte 0x02023EB0 +_0817C990: .4byte 0x02023EB2 +_0817C994: .4byte 0x0817C998 +_0817C998: @ jump table + .4byte _0817DC26 @ case 0 + .4byte _0817DF52 @ case 1 + .4byte _0817DF52 @ case 2 + .4byte _0817DF52 @ case 3 + .4byte _0817DF52 @ case 4 + .4byte _0817DF52 @ case 5 + .4byte _0817DF52 @ case 6 + .4byte _0817DF52 @ case 7 + .4byte _0817DF52 @ case 8 + .4byte _0817DF52 @ case 9 + .4byte _0817DF52 @ case 10 + .4byte _0817DF52 @ case 11 + .4byte _0817DF52 @ case 12 + .4byte _0817DF52 @ case 13 + .4byte _0817DF52 @ case 14 + .4byte _0817DF52 @ case 15 + .4byte _0817DF52 @ case 16 + .4byte _0817DF52 @ case 17 + .4byte _0817DF52 @ case 18 + .4byte _0817DF52 @ case 19 + .4byte _0817DF52 @ case 20 + .4byte _0817DF52 @ case 21 + .4byte _0817DF52 @ case 22 + .4byte _0817DF52 @ case 23 + .4byte _0817DF52 @ case 24 + .4byte _0817CF1C @ case 25 + .4byte _0817DC20 @ case 26 + .4byte _0817DC2C @ case 27 + .4byte _0817DF52 @ case 28 + .4byte _0817DF52 @ case 29 + .4byte _0817DF52 @ case 30 + .4byte _0817DF52 @ case 31 + .4byte _0817DF52 @ case 32 + .4byte _0817D914 @ case 33 + .4byte _0817DF52 @ case 34 + .4byte _0817DF52 @ case 35 + .4byte _0817DF52 @ case 36 + .4byte _0817DF52 @ case 37 + .4byte _0817D684 @ case 38 + .4byte _0817DF52 @ case 39 + .4byte _0817D750 @ case 40 + .4byte _0817DF52 @ case 41 + .4byte _0817D6E4 @ case 42 + .4byte _0817DF52 @ case 43 + .4byte _0817D5B0 @ case 44 + .4byte _0817DF52 @ case 45 + .4byte _0817D618 @ case 46 + .4byte _0817D9D0 @ case 47 + .4byte _0817DF52 @ case 48 + .4byte _0817DA3C @ case 49 + .4byte _0817DF52 @ case 50 + .4byte _0817DF52 @ case 51 + .4byte _0817DF52 @ case 52 + .4byte _0817D86E @ case 53 + .4byte _0817DF52 @ case 54 + .4byte _0817D8D0 @ case 55 + .4byte _0817DF52 @ case 56 + .4byte _0817DF52 @ case 57 + .4byte _0817DF52 @ case 58 + .4byte _0817DF52 @ case 59 + .4byte _0817DF52 @ case 60 + .4byte _0817DF52 @ case 61 + .4byte _0817DF52 @ case 62 + .4byte _0817DF52 @ case 63 + .4byte _0817DF52 @ case 64 + .4byte _0817DA80 @ case 65 + .4byte _0817DF52 @ case 66 + .4byte _0817D7F8 @ case 67 + .4byte _0817DF52 @ case 68 + .4byte _0817D840 @ case 69 + .4byte _0817DF52 @ case 70 + .4byte _0817DF52 @ case 71 + .4byte _0817DEEC @ case 72 + .4byte _0817DF52 @ case 73 + .4byte _0817DF52 @ case 74 + .4byte _0817DCBC @ case 75 + .4byte _0817DC74 @ case 76 + .4byte _0817DD88 @ case 77 + .4byte _0817DDD0 @ case 78 + .4byte _0817DDFA @ case 79 + .4byte _0817DF52 @ case 80 + .4byte _0817DF52 @ case 81 + .4byte _0817DF52 @ case 82 + .4byte _0817DF52 @ case 83 + .4byte _0817DF52 @ case 84 + .4byte _0817DF52 @ case 85 + .4byte _0817DF52 @ case 86 + .4byte _0817DF52 @ case 87 + .4byte _0817D50A @ case 88 + .4byte _0817D50A @ case 89 + .4byte _0817D50A @ case 90 + .4byte _0817D50A @ case 91 + .4byte _0817D544 @ case 92 + .4byte _0817DF52 @ case 93 + .4byte _0817DF3A @ case 94 + .4byte _0817DE1C @ case 95 + .4byte _0817DE68 @ case 96 + .4byte _0817DF52 @ case 97 + .4byte _0817DF3A @ case 98 + .4byte _0817DF52 @ case 99 + .4byte _0817DF52 @ case 100 + .4byte _0817DF52 @ case 101 + .4byte _0817D3E8 @ case 102 + .4byte _0817DF52 @ case 103 + .4byte _0817D430 @ case 104 + .4byte _0817D978 @ case 105 + .4byte _0817DF52 @ case 106 + .4byte _0817DF52 @ case 107 + .4byte _0817DF52 @ case 108 + .4byte _0817DF52 @ case 109 + .4byte _0817DF52 @ case 110 + .4byte _0817DF52 @ case 111 + .4byte _0817DF52 @ case 112 + .4byte _0817DF52 @ case 113 + .4byte _0817DF52 @ case 114 + .4byte _0817DF52 @ case 115 + .4byte _0817DF52 @ case 116 + .4byte _0817DF52 @ case 117 + .4byte _0817DF52 @ case 118 + .4byte _0817DF52 @ case 119 + .4byte _0817DF52 @ case 120 + .4byte _0817DF52 @ case 121 + .4byte _0817DF52 @ case 122 + .4byte _0817D252 @ case 123 + .4byte _0817DF52 @ case 124 + .4byte _0817DF52 @ case 125 + .4byte _0817DF52 @ case 126 + .4byte _0817DF52 @ case 127 + .4byte _0817DF52 @ case 128 + .4byte _0817DF52 @ case 129 + .4byte _0817DF52 @ case 130 + .4byte _0817DF52 @ case 131 + .4byte _0817DF52 @ case 132 + .4byte _0817DF52 @ case 133 + .4byte _0817DF52 @ case 134 + .4byte _0817DF52 @ case 135 + .4byte _0817DF52 @ case 136 + .4byte _0817D142 @ case 137 + .4byte _0817D190 @ case 138 + .4byte _0817DF52 @ case 139 + .4byte _0817DF52 @ case 140 + .4byte _0817DF52 @ case 141 + .4byte _0817D47A @ case 142 + .4byte _0817D4B4 @ case 143 + .4byte _0817D344 @ case 144 + .4byte _0817D38C @ case 145 + .4byte _0817DB0E @ case 146 + .4byte _0817DB44 @ case 147 + .4byte _0817DF52 @ case 148 + .4byte _0817D064 @ case 149 + .4byte _0817DF52 @ case 150 + .4byte _0817DF52 @ case 151 + .4byte _0817DF52 @ case 152 + .4byte _0817DF52 @ case 153 + .4byte _0817DF52 @ case 154 + .4byte _0817DF52 @ case 155 + .4byte _0817DF52 @ case 156 + .4byte _0817DB88 @ case 157 + .4byte _0817DF52 @ case 158 + .4byte _0817CF88 @ case 159 + .4byte _0817DF52 @ case 160 + .4byte _0817DF52 @ case 161 + .4byte _0817DF52 @ case 162 + .4byte _0817DF52 @ case 163 + .4byte _0817DF52 @ case 164 + .4byte _0817DF52 @ case 165 + .4byte _0817DF52 @ case 166 + .4byte _0817DF52 @ case 167 + .4byte _0817DF52 @ case 168 + .4byte _0817DF52 @ case 169 + .4byte _0817DF52 @ case 170 + .4byte _0817DF52 @ case 171 + .4byte _0817DF52 @ case 172 + .4byte _0817DF52 @ case 173 + .4byte _0817DF52 @ case 174 + .4byte _0817DF52 @ case 175 + .4byte _0817D08C @ case 176 + .4byte _0817D1C0 @ case 177 + .4byte _0817D200 @ case 178 + .4byte _0817D21E @ case 179 + .4byte _0817DF52 @ case 180 + .4byte _0817DF52 @ case 181 + .4byte _0817DF52 @ case 182 + .4byte _0817DF52 @ case 183 + .4byte _0817DF52 @ case 184 + .4byte _0817D0C2 @ case 185 + .4byte _0817D10C @ case 186 + .4byte _0817DF52 @ case 187 + .4byte _0817DF52 @ case 188 + .4byte _0817DF52 @ case 189 + .4byte _0817DF52 @ case 190 + .4byte _0817DF52 @ case 191 + .4byte _0817DF52 @ case 192 + .4byte _0817DF52 @ case 193 + .4byte _0817DF52 @ case 194 + .4byte _0817DF52 @ case 195 + .4byte _0817DF52 @ case 196 + .4byte _0817DF52 @ case 197 + .4byte _0817DF52 @ case 198 + .4byte _0817DF52 @ case 199 + .4byte _0817DF52 @ case 200 + .4byte _0817DF52 @ case 201 + .4byte _0817DF52 @ case 202 + .4byte _0817DF52 @ case 203 + .4byte _0817DF52 @ case 204 + .4byte _0817DF52 @ case 205 + .4byte _0817DF52 @ case 206 + .4byte _0817DF52 @ case 207 + .4byte _0817DF52 @ case 208 + .4byte _0817DF52 @ case 209 + .4byte _0817DF52 @ case 210 + .4byte _0817D26C @ case 211 + .4byte _0817D29E @ case 212 + .4byte _0817D2EC @ case 213 + .4byte _0817D308 @ case 214 + .4byte _0817D264 @ case 215 + .4byte _0817DF52 @ case 216 + .4byte _0817DF52 @ case 217 + .4byte _0817DF52 @ case 218 + .4byte _0817CF44 @ case 219 + .4byte _0817CF80 @ case 220 + .4byte _0817DF52 @ case 221 + .4byte _0817DF52 @ case 222 + .4byte _0817DF52 @ case 223 + .4byte _0817DF52 @ case 224 + .4byte _0817DF52 @ case 225 + .4byte _0817DF52 @ case 226 + .4byte _0817DF52 @ case 227 + .4byte _0817DACC @ case 228 + .4byte _0817DF52 @ case 229 + .4byte _0817DF52 @ case 230 + .4byte _0817DF52 @ case 231 + .4byte _0817DF52 @ case 232 + .4byte _0817DF52 @ case 233 + .4byte _0817DF52 @ case 234 + .4byte _0817DF52 @ case 235 + .4byte _0817DF52 @ case 236 + .4byte _0817DF52 @ case 237 + .4byte _0817DF52 @ case 238 + .4byte _0817DF52 @ case 239 + .4byte _0817DF52 @ case 240 + .4byte _0817DF52 @ case 241 + .4byte _0817DF52 @ case 242 + .4byte _0817DF52 @ case 243 + .4byte _0817DF52 @ case 244 + .4byte _0817DF52 @ case 245 + .4byte _0817DF52 @ case 246 + .4byte _0817DF52 @ case 247 + .4byte _0817DF52 @ case 248 + .4byte _0817DF52 @ case 249 + .4byte _0817DF52 @ case 250 + .4byte _0817DF52 @ case 251 + .4byte _0817D018 @ case 252 + .4byte _0817DF52 @ case 253 + .4byte _0817DF52 @ case 254 + .4byte _0817DF52 @ case 255 + .4byte _0817DF52 @ case 256 + .4byte _0817DF52 @ case 257 + .4byte _0817DF52 @ case 258 + .4byte _0817DF52 @ case 259 + .4byte _0817DF52 @ case 260 + .4byte _0817DF52 @ case 261 + .4byte _0817DF52 @ case 262 + .4byte _0817DF52 @ case 263 + .4byte _0817DF52 @ case 264 + .4byte _0817DF52 @ case 265 + .4byte _0817DF52 @ case 266 + .4byte _0817DF52 @ case 267 + .4byte _0817DF52 @ case 268 + .4byte _0817DF52 @ case 269 + .4byte _0817DF52 @ case 270 + .4byte _0817DF52 @ case 271 + .4byte _0817DF52 @ case 272 + .4byte _0817DF52 @ case 273 + .4byte _0817DF52 @ case 274 + .4byte _0817DF52 @ case 275 + .4byte _0817DF52 @ case 276 + .4byte _0817DF52 @ case 277 + .4byte _0817DF52 @ case 278 + .4byte _0817DF52 @ case 279 + .4byte _0817DF52 @ case 280 + .4byte _0817DF52 @ case 281 + .4byte _0817DF52 @ case 282 + .4byte _0817DF52 @ case 283 + .4byte _0817DF52 @ case 284 + .4byte _0817DF52 @ case 285 + .4byte _0817DF52 @ case 286 + .4byte _0817DF52 @ case 287 + .4byte _0817DF52 @ case 288 + .4byte _0817DF52 @ case 289 + .4byte _0817DF52 @ case 290 + .4byte _0817DF52 @ case 291 + .4byte _0817DF52 @ case 292 + .4byte _0817DF52 @ case 293 + .4byte _0817DF52 @ case 294 + .4byte _0817DF52 @ case 295 + .4byte _0817DF52 @ case 296 + .4byte _0817DF52 @ case 297 + .4byte _0817DF52 @ case 298 + .4byte _0817DF52 @ case 299 + .4byte _0817DF52 @ case 300 + .4byte _0817DF52 @ case 301 + .4byte _0817DF52 @ case 302 + .4byte _0817DF52 @ case 303 + .4byte _0817DF52 @ case 304 + .4byte _0817DF52 @ case 305 + .4byte _0817DF52 @ case 306 + .4byte _0817DF52 @ case 307 + .4byte _0817DF52 @ case 308 + .4byte _0817DF52 @ case 309 + .4byte _0817DF52 @ case 310 + .4byte _0817DF52 @ case 311 + .4byte _0817DF52 @ case 312 + .4byte _0817DBE4 @ case 313 + .4byte _0817DBA8 @ case 314 + .4byte _0817DF52 @ case 315 + .4byte _0817DF52 @ case 316 + .4byte _0817DF52 @ case 317 + .4byte _0817DF52 @ case 318 + .4byte _0817DF52 @ case 319 + .4byte _0817DF52 @ case 320 + .4byte _0817DF52 @ case 321 + .4byte _0817DF52 @ case 322 + .4byte _0817DF52 @ case 323 + .4byte _0817DF52 @ case 324 + .4byte _0817DF52 @ case 325 + .4byte _0817D50A @ case 326 + .4byte _0817DF52 @ case 327 + .4byte _0817DF52 @ case 328 + .4byte _0817DF52 @ case 329 + .4byte _0817DF52 @ case 330 + .4byte _0817DF52 @ case 331 + .4byte _0817DF52 @ case 332 + .4byte _0817CFD0 @ case 333 + .4byte _0817DF52 @ case 334 + .4byte _0817DF52 @ case 335 + .4byte _0817DF52 @ case 336 + .4byte _0817DF52 @ case 337 + .4byte _0817DF52 @ case 338 + .4byte _0817DF52 @ case 339 + .4byte _0817DF52 @ case 340 + .4byte _0817DF52 @ case 341 + .4byte _0817DF52 @ case 342 + .4byte _0817DF52 @ case 343 + .4byte _0817DF52 @ case 344 + .4byte _0817DF52 @ case 345 + .4byte _0817DF52 @ case 346 + .4byte _0817DF52 @ case 347 + .4byte _0817DF52 @ case 348 + .4byte _0817DD04 @ case 349 + .4byte _0817DC74 @ case 350 + .4byte _0817DCBC @ case 351 + .4byte _0817DE92 @ case 352 +_0817CF1C: + movs r0, #1 + mov r1, sl + movs r2, #2 + movs r3, #0 + bl AddMovePoints + ldr r0, _0817CF40 + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _0817CF38 + bl _0817DF52 +_0817CF38: + bl TrySetBattleSeminarShow + bl _0817DF52 + .align 2, 0 +_0817CF40: .4byte 0x02022C90 +_0817CF44: + movs r0, #1 + mov r1, sl + movs r2, #1 + movs r3, #0 + bl AddMovePoints + ldr r0, _0817CF7C + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _0817CF60 + bl _0817DF52 +_0817CF60: + ldr r0, [sp, #0xc] + movs r1, #0x39 + movs r2, #0 + bl GetMonData + cmp r0, #0 + bne _0817CF72 + bl _0817DF52 +_0817CF72: + bl TrySetBattleSeminarShow + bl _0817DF52 + .align 2, 0 +_0817CF7C: .4byte 0x02022C90 +_0817CF80: + movs r0, #1 + mov r1, sl + movs r2, #0 + b _0817D33A +_0817CF88: + lsls r3, r4, #1 + adds r3, r3, r4 + lsls r3, r3, #2 + adds r3, r7, r3 + ldr r1, _0817CFC4 + ldr r0, _0817CFC8 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + adds r0, #1 + movs r1, #7 + ands r0, r1 + lsls r0, r0, #0xf + ldr r1, [r3, #0x50] + ldr r2, _0817CFCC + ands r1, r2 + orrs r1, r0 + str r1, [r3, #0x50] + adds r3, #0x55 + movs r0, #3 + mov r1, sl + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r3] + movs r0, #0xd + rsbs r0, r0, #0 + bl _0817DAB8 + .align 2, 0 +_0817CFC4: .4byte 0x02023D12 +_0817CFC8: .4byte 0x02023EAF +_0817CFCC: .4byte 0xFFFC7FFF +_0817CFD0: + lsls r2, r4, #1 + adds r2, r2, r4 + lsls r2, r2, #2 + adds r2, r7, r2 + ldr r1, _0817D010 + ldr r0, _0817D014 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r1, #1 + adds r4, r2, #0 + adds r4, #0x52 + movs r0, #7 + ands r1, r0 + lsls r1, r1, #2 + ldrb r3, [r4] + movs r0, #0x1d + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4] + adds r2, #0x55 + movs r0, #3 + mov r1, sl + ands r1, r0 + lsls r1, r1, #4 + ldrb r3, [r2] + movs r0, #0x31 + rsbs r0, r0, #0 + bl _0817DE56 + .align 2, 0 +_0817D010: .4byte 0x02023D12 +_0817D014: .4byte 0x02023EAF +_0817D018: + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r5, r7, r0 + ldr r1, _0817D05C + ldr r0, _0817D060 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r1, #1 + adds r3, r5, #0 + adds r3, #0x52 + lsls r1, r1, #5 + ldrb r2, [r3] + movs r0, #0x1f + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + adds r4, r5, #0 + adds r4, #0x55 + mov r0, sl + lsls r2, r0, #6 + ldrb r1, [r4] + movs r0, #0x3f + ands r0, r1 + orrs r0, r2 + strb r0, [r4] + adds r2, r5, #0 + adds r2, #0x58 + ldrb r0, [r2] + movs r1, #0x40 + bl _0817DE58 + .align 2, 0 +_0817D05C: .4byte 0x02023D12 +_0817D060: .4byte 0x02023EAF +_0817D064: + ldr r1, _0817D088 + ldrb r0, [r1] + cmp r0, #0 + beq _0817D070 + bl _0817DF52 +_0817D070: + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r7, r0 + adds r0, #0x57 + ldrb r2, [r0] + movs r1, #0x1f + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #0x14 + bl _0817DF4E + .align 2, 0 +_0817D088: .4byte 0x02022C10 +_0817D08C: + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r3, r7, r0 + adds r0, r3, #0 + adds r0, #0x53 + ldrb r0, [r0] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1d + cmp r0, #0 + bne _0817D0A6 + bl _0817DF52 +_0817D0A6: + adds r2, r6, #0 + subs r1, r0, #1 + lsls r1, r1, #2 + adds r0, r3, #0 + adds r0, #0x56 + ldrb r3, [r0] + lsls r3, r3, #0x1e + lsrs r3, r3, #0x1e + adds r3, r3, r1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #2 + bl sub_0817D9BC +_0817D0C2: + lsls r2, r4, #1 + adds r2, r2, r4 + lsls r2, r2, #2 + adds r2, r7, r2 + ldr r1, _0817D104 + ldr r0, _0817D108 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r1, #1 + adds r4, r2, #0 + adds r4, #0x53 + movs r0, #7 + ands r1, r0 + lsls r1, r1, #3 + ldrb r3, [r4] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4] + adds r2, #0x56 + movs r0, #3 + mov r1, sl + ands r1, r0 + lsls r1, r1, #2 + ldrb r3, [r2] + movs r0, #0xd + rsbs r0, r0, #0 + bl _0817DE56 + .align 2, 0 +_0817D104: .4byte 0x02023D12 +_0817D108: .4byte 0x02023EAF +_0817D10C: + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r3, r7, r0 + adds r0, r3, #0 + adds r0, #0x53 + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1d + cmp r0, #0 + bne _0817D126 + bl _0817DF52 +_0817D126: + adds r2, r6, #0 + subs r1, r0, #1 + lsls r1, r1, #2 + adds r0, r3, #0 + adds r0, #0x56 + ldrb r3, [r0] + lsls r3, r3, #0x1c + lsrs r3, r3, #0x1e + adds r3, r3, r1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #2 + bl sub_0817DA6E +_0817D142: + lsls r2, r4, #1 + adds r2, r2, r4 + lsls r2, r2, #2 + adds r2, r7, r2 + ldr r1, _0817D184 + ldr r0, _0817D188 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r1, #1 + adds r2, #0x56 + movs r0, #7 + ands r1, r0 + lsls r1, r1, #4 + ldrb r3, [r2] + movs r0, #0x71 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + movs r0, #3 + mov r1, sl + ands r1, r0 + lsls r1, r1, #7 + ldrh r3, [r2] + ldr r0, _0817D18C + ands r0, r3 + orrs r0, r1 + strh r0, [r2] + bl _0817DF52 + .align 2, 0 +_0817D184: .4byte 0x02023D12 +_0817D188: .4byte 0x02023EAF +_0817D18C: .4byte 0xFFFFFE7F +_0817D190: + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r0, r7, r0 + adds r0, #0x56 + ldrb r0, [r0] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1d + cmp r0, #0 + bne _0817D1A8 + bl _0817DF52 +_0817D1A8: + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r7, r0 + adds r0, #0x57 + ldrb r2, [r0] + movs r1, #0x1f + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #0x16 + bl _0817DF4E +_0817D1C0: + mov r2, r8 + lsls r3, r2, #3 + lsls r0, r4, #4 + adds r3, r3, r0 + adds r3, r7, r3 + ldr r1, _0817D1F8 + ldr r0, _0817D1FC + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r1, #1 + adds r3, #0x35 + movs r0, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + movs r2, #3 + mov r1, sl + ands r1, r2 + lsls r1, r1, #3 + movs r2, #0x19 + rsbs r2, r2, #0 + bl _0817DAB8 + .align 2, 0 +_0817D1F8: .4byte 0x02023D12 +_0817D1FC: .4byte 0x02023EAF +_0817D200: + mov r1, r8 + lsls r0, r1, #3 + lsls r1, r4, #4 + adds r0, r0, r1 + adds r0, r7, r0 + adds r0, #0x35 + ldrb r1, [r0] + lsls r0, r1, #0x1d + lsrs r0, r0, #0x1d + cmp r0, #0 + bne _0817D21A + bl _0817DF52 +_0817D21A: + adds r2, r4, #0 + b _0817D238 +_0817D21E: + lsls r0, r5, #3 + lsls r1, r6, #4 + adds r0, r0, r1 + adds r0, r7, r0 + adds r0, #0x35 + ldrb r1, [r0] + lsls r0, r1, #0x1d + lsrs r0, r0, #0x1d + cmp r0, #0 + bne _0817D236 + bl _0817DF52 +_0817D236: + adds r2, r6, #0 +_0817D238: + subs r0, #1 + lsls r0, r0, #2 + lsls r3, r1, #0x1b + lsrs r3, r3, #0x1e + adds r3, r3, r0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #2 + movs r1, #6 + bl AddMovePoints + bl _0817DF52 +_0817D252: + ldr r0, _0817D260 + ldr r0, [r0] + adds r0, #0xb3 + movs r1, #1 + bl _0817DF50 + .align 2, 0 +_0817D260: .4byte 0x02024140 +_0817D264: + movs r0, #0x12 + mov r1, sl + movs r2, #0 + b _0817D33A +_0817D26C: + ldr r0, _0817D28C + ldrb r2, [r0, #2] + cmp r2, #0 + bne _0817D278 + bl _0817DF52 +_0817D278: + ldr r1, _0817D290 + ldrh r0, [r1] + cmp r0, #0xd1 + bne _0817D294 + subs r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r0, #0x17 + b _0817D338 + .align 2, 0 +_0817D28C: .4byte 0x02022C0C +_0817D290: .4byte 0x02022C1E +_0817D294: + subs r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r0, #0x16 + b _0817D338 +_0817D29E: + ldr r0, _0817D2C8 + ldrb r2, [r0, #2] + cmp r2, #0 + bne _0817D2AA + bl _0817DF52 +_0817D2AA: + ldr r0, _0817D2CC + ldr r1, _0817D2D0 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bne _0817D2E2 + ldr r1, _0817D2D4 + ldrh r0, [r1] + cmp r0, #0xd1 + bne _0817D2D8 + subs r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r0, #0x17 + b _0817D338 + .align 2, 0 +_0817D2C8: .4byte 0x02022C0C +_0817D2CC: .4byte 0x02023EAF +_0817D2D0: .4byte 0x02023EB0 +_0817D2D4: .4byte 0x02022C1E +_0817D2D8: + subs r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r0, #0x16 + b _0817D338 +_0817D2E2: + subs r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r0, #0x1b + b _0817D338 +_0817D2EC: + ldr r0, _0817D304 + ldrb r2, [r0, #2] + cmp r2, #0 + bne _0817D2F8 + bl _0817DF52 +_0817D2F8: + subs r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r0, #0x18 + b _0817D338 + .align 2, 0 +_0817D304: .4byte 0x02022C0C +_0817D308: + ldr r0, _0817D328 + ldrb r2, [r0, #2] + cmp r2, #0 + bne _0817D314 + bl _0817DF52 +_0817D314: + ldr r1, _0817D32C + ldrh r0, [r1] + cmp r0, #0xd3 + bne _0817D330 + subs r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r0, #0x1a + b _0817D338 + .align 2, 0 +_0817D328: .4byte 0x02022C0C +_0817D32C: .4byte 0x02022C1E +_0817D330: + subs r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r0, #0x19 +_0817D338: + mov r1, sl +_0817D33A: + movs r3, #0 + bl AddMovePoints + bl _0817DF52 +_0817D344: + lsls r2, r5, #3 + lsls r0, r6, #4 + adds r2, r2, r0 + adds r2, r7, r2 + ldr r1, _0817D384 + ldr r0, _0817D388 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r1, #1 + adds r4, r2, #0 + adds r4, #0x30 + movs r0, #7 + ands r1, r0 + ldrb r3, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4] + adds r2, #0x32 + movs r0, #3 + mov r1, sl + ands r1, r0 + lsls r1, r1, #2 + ldrb r3, [r2] + movs r0, #0xd + rsbs r0, r0, #0 + bl _0817DE56 + .align 2, 0 +_0817D384: .4byte 0x02023D12 +_0817D388: .4byte 0x02023EAF +_0817D38C: + ldr r0, [sp, #8] + movs r1, #0x39 + movs r2, #0 + bl GetMonData + cmp r0, #0 + bne _0817D39E + bl _0817DF52 +_0817D39E: + mov r2, r8 + lsls r0, r2, #3 + lsls r1, r4, #4 + adds r0, r0, r1 + adds r1, r7, r0 + adds r0, r1, #0 + adds r0, #0x30 + ldrb r0, [r0] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1d + cmp r0, #0 + bne _0817D3BA + bl _0817DF52 +_0817D3BA: + subs r2, r0, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r1, #0 + adds r0, #0x32 + ldrb r3, [r0] + lsls r3, r3, #0x1c + lsrs r3, r3, #0x1e + movs r0, #8 + movs r1, #0 + bl AddMovePoints + lsls r1, r4, #1 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r1, r7, r1 + adds r1, #0x57 + ldrb r2, [r1] + movs r0, #0x1f + rsbs r0, r0, #0 + ands r0, r2 + movs r2, #2 + b _0817D59E +_0817D3E8: + lsls r2, r5, #3 + lsls r0, r6, #4 + adds r2, r2, r0 + adds r2, r7, r2 + ldr r1, _0817D428 + ldr r0, _0817D42C + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r1, #1 + adds r4, r2, #0 + adds r4, #0x30 + movs r0, #7 + ands r1, r0 + lsls r1, r1, #3 + ldrb r3, [r4] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4] + adds r2, #0x32 + movs r0, #3 + mov r1, sl + ands r1, r0 + lsls r1, r1, #4 + ldrb r3, [r2] + movs r0, #0x31 + rsbs r0, r0, #0 + bl _0817DE56 + .align 2, 0 +_0817D428: .4byte 0x02023D12 +_0817D42C: .4byte 0x02023EAF +_0817D430: + mov r1, r8 + lsls r0, r1, #3 + lsls r1, r4, #4 + adds r0, r0, r1 + adds r1, r7, r0 + adds r0, r1, #0 + adds r0, #0x30 + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1d + cmp r0, #0 + bne _0817D44C + bl _0817DF52 +_0817D44C: + subs r2, r0, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r1, #0 + adds r0, #0x32 + ldrb r3, [r0] + lsls r3, r3, #0x1a + lsrs r3, r3, #0x1e + movs r0, #8 + movs r1, #1 + bl AddMovePoints + lsls r1, r4, #1 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r1, r7, r1 + adds r1, #0x57 + ldrb r2, [r1] + movs r0, #0x1f + rsbs r0, r0, #0 + ands r0, r2 + movs r2, #4 + b _0817D59E +_0817D47A: + lsls r2, r5, #3 + lsls r0, r6, #4 + adds r2, r2, r0 + adds r2, r7, r2 + ldr r1, _0817D4A8 + ldr r0, _0817D4AC + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r1, #1 + movs r0, #7 + ands r1, r0 + lsls r1, r1, #6 + ldrh r3, [r2, #0x30] + ldr r0, _0817D4B0 + ands r0, r3 + orrs r0, r1 + strh r0, [r2, #0x30] + adds r2, #0x32 + bl _0817DDB6 + .align 2, 0 +_0817D4A8: .4byte 0x02023D12 +_0817D4AC: .4byte 0x02023EAF +_0817D4B0: .4byte 0xFFFFFE3F +_0817D4B4: + ldr r0, [sp, #8] + movs r1, #0x39 + movs r2, #0 + bl GetMonData + cmp r0, #0 + bne _0817D4C6 + bl _0817DF52 +_0817D4C6: + mov r1, r8 + lsls r0, r1, #3 + lsls r1, r4, #4 + adds r0, r0, r1 + adds r1, r7, r0 + ldrh r0, [r1, #0x30] + lsls r0, r0, #0x17 + lsrs r0, r0, #0x1d + cmp r0, #0 + bne _0817D4DE + bl _0817DF52 +_0817D4DE: + subs r2, r0, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r1, #0 + adds r0, #0x32 + ldrb r3, [r0] + lsrs r3, r3, #6 + movs r0, #8 + movs r1, #5 + bl AddMovePoints + lsls r1, r4, #1 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r1, r7, r1 + adds r1, #0x57 + ldrb r2, [r1] + movs r0, #0x1f + rsbs r0, r0, #0 + ands r0, r2 + movs r2, #0xa + b _0817D59E +_0817D50A: + lsls r2, r5, #3 + lsls r0, r6, #4 + adds r2, r2, r0 + adds r2, r7, r2 + ldr r1, _0817D53C + ldr r0, _0817D540 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r1, #1 + adds r4, r2, #0 + adds r4, #0x31 + movs r0, #7 + ands r1, r0 + lsls r1, r1, #1 + ldrb r3, [r4] + movs r0, #0xf + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4] + adds r2, #0x33 + bl _0817DE4A + .align 2, 0 +_0817D53C: .4byte 0x02023D12 +_0817D540: .4byte 0x02023EAF +_0817D544: + ldr r0, [sp, #8] + movs r1, #0x39 + movs r2, #0 + bl GetMonData + cmp r0, #0 + bne _0817D556 + bl _0817DF52 +_0817D556: + mov r1, r8 + lsls r0, r1, #3 + lsls r1, r4, #4 + adds r0, r0, r1 + adds r1, r7, r0 + adds r0, r1, #0 + adds r0, #0x31 + ldrb r0, [r0] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1d + cmp r0, #0 + bne _0817D572 + bl _0817DF52 +_0817D572: + subs r2, r0, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r1, #0 + adds r0, #0x33 + ldrb r3, [r0] + lsls r3, r3, #0x1e + lsrs r3, r3, #0x1e + movs r0, #8 + movs r1, #6 + bl AddMovePoints + lsls r1, r4, #1 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r1, r7, r1 + adds r1, #0x57 + ldrb r2, [r1] + movs r0, #0x1f + rsbs r0, r0, #0 + ands r0, r2 + movs r2, #0xc +_0817D59E: + orrs r0, r2 + mov r2, r8 + lsls r3, r2, #5 + movs r2, #0x1f + ands r0, r2 + orrs r0, r3 + strb r0, [r1] + bl _0817DF52 +_0817D5B0: + ldr r5, _0817D608 + ldr r6, _0817D60C + ldrb r0, [r6] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r2, [r0] + lsls r2, r2, #2 + mov r0, sb + lsls r4, r0, #1 + add r4, sb + lsls r4, r4, #3 + adds r2, r2, r4 + adds r2, r7, r2 + ldr r0, _0817D610 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r1, [r0] + adds r1, #1 + movs r0, #7 + ands r1, r0 + lsls r1, r1, #6 + ldrh r3, [r2] + ldr r0, _0817D614 + ands r0, r3 + orrs r0, r1 + strh r0, [r2] + ldrb r0, [r6] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r1, [r0] + lsls r1, r1, #2 + adds r1, r1, r4 + adds r1, r7, r1 + mov r2, sl + lsls r3, r2, #6 + ldrb r2, [r1, #2] + movs r0, #0x3f + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #2] + bl _0817DF52 + .align 2, 0 +_0817D608: .4byte 0x02023D12 +_0817D60C: .4byte 0x02023EB2 +_0817D610: .4byte 0x02023EAF +_0817D614: .4byte 0xFFFFFE3F +_0817D618: + ldr r0, [sp, #8] + movs r1, #0x39 + movs r2, #0 + bl GetMonData + cmp r0, #0 + bne _0817D62A + bl _0817DF52 +_0817D62A: + ldr r6, _0817D67C + ldr r5, _0817D680 + ldrb r0, [r5] + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r0, [r0] + lsls r0, r0, #2 + lsls r1, r4, #1 + adds r4, r1, r4 + lsls r1, r4, #3 + adds r0, r0, r1 + adds r1, r7, r0 + ldrh r0, [r1] + lsls r0, r0, #0x17 + lsrs r0, r0, #0x1d + cmp r0, #0 + beq _0817D65E + subs r2, r0, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r3, [r1, #2] + lsrs r3, r3, #6 + movs r0, #8 + movs r1, #4 + bl AddMovePoints +_0817D65E: + lsls r3, r4, #2 + adds r3, r7, r3 + adds r3, #0x57 + ldrb r0, [r3] + movs r1, #0x1f + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #8 + orrs r1, r0 + strb r1, [r3] + ldrb r0, [r5] + lsls r0, r0, #1 + adds r0, r0, r6 + b _0817D7E0 + .align 2, 0 +_0817D67C: .4byte 0x02023D12 +_0817D680: .4byte 0x02023EAF +_0817D684: + ldr r5, _0817D6D8 + ldr r6, _0817D6DC + ldrb r0, [r6] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r2, [r0] + lsls r2, r2, #2 + mov r0, sb + lsls r4, r0, #1 + add r4, sb + lsls r4, r4, #3 + adds r2, r2, r4 + adds r2, r7, r2 + ldr r0, _0817D6E0 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r1, [r0] + adds r1, #1 + movs r0, #7 + ands r1, r0 + ldrb r3, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r6] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r1, [r0] + lsls r1, r1, #2 + adds r1, r1, r4 + adds r1, r7, r1 + movs r0, #3 + mov r2, sl + ands r2, r0 + lsls r2, r2, #2 + ldrb r3, [r1, #2] + movs r0, #0xd + rsbs r0, r0, #0 + b _0817D738 + .align 2, 0 +_0817D6D8: .4byte 0x02023D12 +_0817D6DC: .4byte 0x02023EB2 +_0817D6E0: .4byte 0x02023EAF +_0817D6E4: + ldr r5, _0817D744 + ldr r6, _0817D748 + ldrb r0, [r6] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r2, [r0] + lsls r2, r2, #2 + mov r1, sb + lsls r4, r1, #1 + add r4, sb + lsls r4, r4, #3 + adds r2, r2, r4 + adds r2, r7, r2 + ldr r0, _0817D74C + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r1, [r0] + adds r1, #1 + movs r0, #7 + ands r1, r0 + lsls r1, r1, #3 + ldrb r3, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r6] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r1, [r0] + lsls r1, r1, #2 + adds r1, r1, r4 + adds r1, r7, r1 + movs r0, #3 + mov r2, sl + ands r2, r0 + lsls r2, r2, #4 + ldrb r3, [r1, #2] + movs r0, #0x31 + rsbs r0, r0, #0 +_0817D738: + ands r0, r3 + orrs r0, r2 + strb r0, [r1, #2] + bl _0817DF52 + .align 2, 0 +_0817D744: .4byte 0x02023D12 +_0817D748: .4byte 0x02023EB2 +_0817D74C: .4byte 0x02023EAF +_0817D750: + ldr r0, [sp, #8] + movs r1, #0x39 + movs r2, #0 + bl GetMonData + cmp r0, #0 + bne _0817D762 + bl _0817DF52 +_0817D762: + ldr r2, _0817D7F0 + mov r8, r2 + ldr r6, _0817D7F4 + ldrb r0, [r6] + lsls r0, r0, #1 + add r0, r8 + ldrh r0, [r0] + lsls r0, r0, #2 + lsls r1, r4, #1 + adds r5, r1, r4 + lsls r4, r5, #3 + adds r0, r0, r4 + adds r1, r7, r0 + ldrb r0, [r1] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1d + cmp r0, #0 + beq _0817D79A + subs r2, r0, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r3, [r1, #2] + lsls r3, r3, #0x1c + lsrs r3, r3, #0x1e + movs r0, #8 + movs r1, #2 + bl AddMovePoints +_0817D79A: + ldrb r0, [r6] + lsls r0, r0, #1 + add r0, r8 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r4 + adds r1, r7, r0 + ldrb r0, [r1] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1d + cmp r0, #0 + beq _0817D7C6 + subs r2, r0, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r3, [r1, #2] + lsls r3, r3, #0x1a + lsrs r3, r3, #0x1e + movs r0, #8 + movs r1, #3 + bl AddMovePoints +_0817D7C6: + lsls r3, r5, #2 + adds r3, r7, r3 + adds r3, #0x57 + ldrb r0, [r3] + movs r1, #0x1f + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #6 + orrs r1, r0 + strb r1, [r3] + ldrb r0, [r6] + lsls r0, r0, #1 + add r0, r8 +_0817D7E0: + ldrh r0, [r0] + lsls r0, r0, #5 + movs r2, #0x1f + ands r1, r2 + orrs r1, r0 + strb r1, [r3] + b _0817DF52 + .align 2, 0 +_0817D7F0: .4byte 0x02023D12 +_0817D7F4: .4byte 0x02023EAF +_0817D7F8: + lsls r2, r5, #3 + lsls r0, r6, #4 + adds r2, r2, r0 + adds r2, r7, r2 + ldr r1, _0817D838 + ldr r0, _0817D83C + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r1, #1 + adds r4, r2, #0 + adds r4, #0x31 + movs r0, #7 + ands r1, r0 + lsls r1, r1, #4 + ldrb r3, [r4] + movs r0, #0x71 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4] + adds r2, #0x33 + movs r0, #3 + mov r1, sl + ands r1, r0 + lsls r1, r1, #2 + ldrb r3, [r2] + movs r0, #0xd + rsbs r0, r0, #0 + b _0817DE56 + .align 2, 0 +_0817D838: .4byte 0x02023D12 +_0817D83C: .4byte 0x02023EAF +_0817D840: + mov r1, r8 + lsls r0, r1, #3 + lsls r1, r4, #4 + adds r0, r0, r1 + adds r1, r7, r0 + adds r0, r1, #0 + adds r0, #0x31 + ldrb r0, [r0] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1d + cmp r0, #0 + bne _0817D85A + b _0817DF52 +_0817D85A: + subs r2, r0, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r1, #0 + adds r0, #0x33 + ldrb r3, [r0] + lsls r3, r3, #0x1c + lsrs r3, r3, #0x1e + movs r0, #9 + b _0817DF32 +_0817D86E: + ldr r5, _0817D8C4 + ldr r6, _0817D8C8 + ldrb r0, [r6] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r2, [r0] + lsls r2, r2, #2 + mov r0, sb + lsls r4, r0, #1 + add r4, sb + lsls r4, r4, #3 + adds r2, r2, r4 + adds r2, r7, r2 + ldr r0, _0817D8CC + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r1, [r0] + adds r1, #1 + movs r0, #7 + ands r1, r0 + lsls r1, r1, #1 + ldrb r3, [r2, #1] + movs r0, #0xf + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #1] + ldrb r0, [r6] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r1, [r0] + lsls r1, r1, #2 + adds r1, r1, r4 + adds r1, r7, r1 + movs r0, #3 + mov r2, sl + ands r2, r0 + ldrb r3, [r1, #3] + movs r0, #4 + rsbs r0, r0, #0 + b _0817DA22 + .align 2, 0 +_0817D8C4: .4byte 0x02023D12 +_0817D8C8: .4byte 0x02023EB2 +_0817D8CC: .4byte 0x02023EAF +_0817D8D0: + ldr r1, _0817D90C + ldr r0, _0817D910 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + lsls r1, r1, #2 + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r1, r7, r1 + ldrb r0, [r1, #1] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1d + cmp r0, #0 + bne _0817D8F4 + b _0817DF52 +_0817D8F4: + subs r2, r0, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r3, [r1, #3] + lsls r3, r3, #0x1e + lsrs r3, r3, #0x1e + movs r0, #9 + movs r1, #2 + bl AddMovePoints + b _0817DF52 + .align 2, 0 +_0817D90C: .4byte 0x02023D12 +_0817D910: .4byte 0x02023EAF +_0817D914: + ldr r5, _0817D96C + ldr r6, _0817D970 + ldrb r0, [r6] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r2, [r0] + lsls r2, r2, #2 + mov r1, sb + lsls r4, r1, #1 + add r4, sb + lsls r4, r4, #3 + adds r2, r2, r4 + adds r2, r7, r2 + ldr r0, _0817D974 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r1, [r0] + adds r1, #1 + movs r0, #7 + ands r1, r0 + lsls r1, r1, #4 + ldrb r3, [r2, #1] + movs r0, #0x71 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #1] + ldrb r0, [r6] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r1, [r0] + lsls r1, r1, #2 + adds r1, r1, r4 + adds r1, r7, r1 + movs r0, #3 + mov r2, sl + ands r2, r0 + lsls r2, r2, #2 + ldrb r3, [r1, #3] + movs r0, #0xd + rsbs r0, r0, #0 + b _0817DA22 + .align 2, 0 +_0817D96C: .4byte 0x02023D12 +_0817D970: .4byte 0x02023EB2 +_0817D974: .4byte 0x02023EAF +_0817D978: + ldr r1, _0817D9C4 + ldr r0, _0817D9C8 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + lsls r1, r1, #2 + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r1, r7, r1 + ldrb r0, [r1, #1] + lsls r0, r0, #0x19 + lsrs r2, r0, #0x1d + cmp r2, #0 + bne _0817D99C + b _0817DF52 +_0817D99C: + ldr r0, _0817D9CC + ldr r0, [r0] + ldrh r0, [r0] + cmp r0, #0xad + bne _0817D9A8 + b _0817DF52 +_0817D9A8: + cmp r0, #0xd6 + bne _0817D9AE + b _0817DF52 +_0817D9AE: + subs r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r3, [r1, #3] + lsls r3, r3, #0x1c + lsrs r3, r3, #0x1e + movs r0, #9 + thumb_func_end BattleTv_SetDataBasedOnString + + thumb_func_start sub_0817D9BC +sub_0817D9BC: @ 0x0817D9BC + movs r1, #3 + bl AddMovePoints + b _0817DF52 + .align 2, 0 +_0817D9C4: .4byte 0x02023D12 +_0817D9C8: .4byte 0x02023EAF +_0817D9CC: .4byte 0x0203A874 +_0817D9D0: + ldr r5, _0817DA2C + ldr r6, _0817DA30 + ldrb r0, [r6] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r3, [r0] + lsls r3, r3, #2 + mov r2, sb + lsls r4, r2, #1 + add r4, sb + lsls r4, r4, #3 + adds r3, r3, r4 + adds r3, r7, r3 + ldr r0, _0817DA34 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r0, [r0] + adds r0, #1 + movs r1, #7 + ands r0, r1 + lsls r0, r0, #0xf + ldr r1, [r3] + ldr r2, _0817DA38 + ands r1, r2 + orrs r1, r0 + str r1, [r3] + ldrb r0, [r6] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r1, [r0] + lsls r1, r1, #2 + adds r1, r1, r4 + adds r1, r7, r1 + movs r0, #3 + mov r2, sl + ands r2, r0 + lsls r2, r2, #4 + ldrb r3, [r1, #3] + movs r0, #0x31 + rsbs r0, r0, #0 +_0817DA22: + ands r0, r3 + orrs r0, r2 + strb r0, [r1, #3] + b _0817DF52 + .align 2, 0 +_0817DA2C: .4byte 0x02023D12 +_0817DA30: .4byte 0x02023EB2 +_0817DA34: .4byte 0x02023EAF +_0817DA38: .4byte 0xFFFC7FFF +_0817DA3C: + ldr r1, _0817DA78 + ldr r0, _0817DA7C + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + lsls r1, r1, #2 + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r1, r7, r1 + ldr r0, [r1] + lsls r0, r0, #0xe + lsrs r0, r0, #0x1d + cmp r0, #0 + bne _0817DA60 + b _0817DF52 +_0817DA60: + subs r2, r0, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r3, [r1, #3] + lsls r3, r3, #0x1a + lsrs r3, r3, #0x1e + movs r0, #9 + thumb_func_end sub_0817D9BC + + thumb_func_start sub_0817DA6E +sub_0817DA6E: @ 0x0817DA6E + movs r1, #4 + bl AddMovePoints + b _0817DF52 + .align 2, 0 +_0817DA78: .4byte 0x02023D12 +_0817DA7C: .4byte 0x02023EAF +_0817DA80: + lsls r3, r3, #3 + mov r1, sb + lsls r0, r1, #4 + adds r3, r3, r0 + adds r3, r7, r3 + ldr r1, _0817DAC0 + ldr r0, _0817DAC4 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + adds r0, #1 + movs r1, #7 + ands r0, r1 + lsls r0, r0, #0xf + ldr r1, [r3, #0x30] + ldr r2, _0817DAC8 + ands r1, r2 + orrs r1, r0 + str r1, [r3, #0x30] + adds r3, #0x33 + movs r0, #3 + mov r1, sl + ands r1, r0 + lsls r1, r1, #4 + ldrb r2, [r3] + movs r0, #0x31 + rsbs r0, r0, #0 +_0817DAB8: + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _0817DF52 + .align 2, 0 +_0817DAC0: .4byte 0x02023D12 +_0817DAC4: .4byte 0x02023EAF +_0817DAC8: .4byte 0xFFFC7FFF +_0817DACC: + mov r2, r8 + lsls r0, r2, #3 + lsls r1, r4, #4 + adds r0, r0, r1 + adds r3, r7, r0 + ldr r0, [r3, #0x30] + lsls r0, r0, #0xe + lsrs r0, r0, #0x1d + cmp r0, #0 + beq _0817DAF8 + subs r2, r0, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r3, #0 + adds r0, #0x33 + ldrb r3, [r0] + lsls r3, r3, #0x1a + lsrs r3, r3, #0x1e + movs r0, #9 + movs r1, #1 + bl AddMovePoints +_0817DAF8: + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r7, r0 + adds r0, #0x57 + ldrb r2, [r0] + movs r1, #0x1f + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #0x18 + b _0817DF4E +_0817DB0E: + lsls r2, r6, #1 + adds r2, r2, r6 + lsls r2, r2, #2 + adds r2, r7, r2 + ldr r1, _0817DB3C + ldr r0, _0817DB40 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r1, #1 + adds r4, r2, #0 + adds r4, #0x50 + movs r0, #7 + ands r1, r0 + ldrb r3, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4] + adds r2, #0x54 + b _0817DE4A + .align 2, 0 +_0817DB3C: .4byte 0x02023D12 +_0817DB40: .4byte 0x02023EAF +_0817DB44: + ldr r1, [sp, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, r7, r0 + adds r0, r4, #0 + adds r0, #0x50 + ldrb r0, [r0] + lsls r0, r0, #0x1d + lsrs r2, r0, #0x1d + cmp r2, #0 + bne _0817DB5E + b _0817DF52 +_0817DB5E: + movs r0, #1 + eors r1, r0 + subs r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r0, #0x54 + ldrb r3, [r0] + lsls r3, r3, #0x1e + lsrs r3, r3, #0x1e + movs r0, #0xa + bl AddMovePoints + adds r2, r4, #0 + adds r2, #0x57 + ldrb r1, [r2] + movs r0, #0x1f + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0xe + b _0817DE58 +_0817DB88: + lsls r1, r4, #1 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r1, r7, r1 + adds r3, r1, #0 + adds r3, #0x50 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r3] + adds r1, #0x54 + ldrb r2, [r1] + movs r0, #4 + rsbs r0, r0, #0 + b _0817DE16 +_0817DBA8: + mov r0, r8 + lsls r2, r0, #3 + lsls r0, r4, #4 + adds r2, r2, r0 + adds r2, r7, r2 + ldr r1, _0817DBDC + ldr r0, _0817DBE0 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r1, #1 + adds r4, r2, #0 + adds r4, #0x34 + movs r0, #7 + ands r1, r0 + ldrb r3, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4] + adds r2, #0x33 + mov r1, sl + lsls r3, r1, #6 + b _0817DDBA + .align 2, 0 +_0817DBDC: .4byte 0x02023D12 +_0817DBE0: .4byte 0x02023EAF +_0817DBE4: + mov r0, r8 + lsls r2, r0, #3 + lsls r0, r4, #4 + adds r2, r2, r0 + adds r2, r7, r2 + ldr r1, _0817DC18 + ldr r0, _0817DC1C + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r1, #1 + adds r2, #0x34 + movs r0, #7 + ands r1, r0 + lsls r1, r1, #3 + ldrb r3, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + mov r1, sl + lsls r3, r1, #6 + movs r1, #0x3f + b _0817DDBE + .align 2, 0 +_0817DC18: .4byte 0x02023D12 +_0817DC1C: .4byte 0x02023EAF +_0817DC20: + movs r0, #0 + bl AddPointsOnFainting +_0817DC26: + mov r2, r8 + lsls r0, r2, #3 + b _0817DC34 +_0817DC2C: + movs r0, #1 + bl AddPointsOnFainting + lsls r0, r5, #3 +_0817DC34: + lsls r1, r4, #4 + adds r0, r0, r1 + adds r1, r7, r0 + adds r4, r1, #0 + adds r4, #0x34 + ldrb r5, [r4] + lsls r0, r5, #0x1d + cmp r0, #0 + beq _0817DC5A + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r5 + strb r0, [r4] + adds r2, r1, #0 + adds r2, #0x33 + ldrb r1, [r2] + movs r0, #0x3f + ands r0, r1 + strb r0, [r2] +_0817DC5A: + ldrb r1, [r4] + lsls r0, r1, #0x1a + lsrs r0, r0, #0x1d + cmp r0, #0 + bne _0817DC66 + b _0817DF52 +_0817DC66: + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x3f + ands r0, r1 + strb r0, [r4] + b _0817DF52 +_0817DC74: + lsls r2, r4, #1 + adds r2, r2, r4 + lsls r2, r2, #2 + adds r2, r7, r2 + ldr r1, _0817DCB4 + ldr r0, _0817DCB8 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r1, #1 + adds r4, r2, #0 + adds r4, #0x50 + movs r0, #7 + ands r1, r0 + lsls r1, r1, #3 + ldrb r3, [r4] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4] + adds r2, #0x54 + movs r0, #3 + mov r1, sl + ands r1, r0 + lsls r1, r1, #2 + ldrb r3, [r2] + movs r0, #0xd + rsbs r0, r0, #0 + b _0817DE56 + .align 2, 0 +_0817DCB4: .4byte 0x02023D12 +_0817DCB8: .4byte 0x02023EAF +_0817DCBC: + lsls r2, r4, #1 + adds r2, r2, r4 + lsls r2, r2, #2 + adds r2, r7, r2 + ldr r1, _0817DCF8 + ldr r0, _0817DCFC + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r1, #1 + adds r4, r2, #0 + adds r4, #0x50 + movs r0, #7 + ands r1, r0 + lsls r1, r1, #6 + ldrh r3, [r4] + ldr r0, _0817DD00 + ands r0, r3 + orrs r0, r1 + strh r0, [r4] + adds r2, #0x54 + movs r0, #3 + mov r1, sl + ands r1, r0 + lsls r1, r1, #4 + ldrb r3, [r2] + movs r0, #0x31 + rsbs r0, r0, #0 + b _0817DE56 + .align 2, 0 +_0817DCF8: .4byte 0x02023D12 +_0817DCFC: .4byte 0x02023EAF +_0817DD00: .4byte 0xFFFFFE3F +_0817DD04: + ldr r1, _0817DD80 + ldrh r0, [r1] + cmp r0, #0x73 + bne _0817DD2E + lsls r1, r4, #1 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r1, r7, r1 + adds r3, r1, #0 + adds r3, #0x50 + ldrb r2, [r3] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r3] + adds r1, #0x54 + ldrb r2, [r1] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] +_0817DD2E: + ldr r2, _0817DD80 + ldrh r0, [r2] + cmp r0, #0x71 + bne _0817DD56 + lsls r1, r4, #1 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r1, r7, r1 + adds r3, r1, #0 + adds r3, #0x50 + ldrh r2, [r3] + ldr r0, _0817DD84 + ands r0, r2 + strh r0, [r3] + adds r1, #0x54 + ldrb r2, [r1] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] +_0817DD56: + ldr r1, _0817DD80 + ldrh r0, [r1] + cmp r0, #0x36 + beq _0817DD60 + b _0817DF52 +_0817DD60: + lsls r1, r4, #1 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r1, r7, r1 + adds r4, r1, #0 + adds r4, #0x51 + ldrb r2, [r4] + movs r0, #0x71 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r4] + adds r1, #0x55 + ldrb r2, [r1] + movs r0, #4 + rsbs r0, r0, #0 + b _0817DE16 + .align 2, 0 +_0817DD80: .4byte 0x02022C0E +_0817DD84: .4byte 0xFFFFFE3F +_0817DD88: + lsls r2, r4, #1 + adds r2, r2, r4 + lsls r2, r2, #2 + adds r2, r7, r2 + ldr r1, _0817DDC8 + ldr r0, _0817DDCC + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r1, #1 + adds r4, r2, #0 + adds r4, #0x51 + movs r0, #7 + ands r1, r0 + lsls r1, r1, #1 + ldrb r3, [r4] + movs r0, #0xf + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4] + adds r2, #0x54 +_0817DDB6: + mov r0, sl + lsls r3, r0, #6 +_0817DDBA: + ldrb r1, [r2] + movs r0, #0x3f +_0817DDBE: + ands r0, r1 + orrs r0, r3 + strb r0, [r2] + b _0817DF52 + .align 2, 0 +_0817DDC8: .4byte 0x02023D12 +_0817DDCC: .4byte 0x02023EAF +_0817DDD0: + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r1, r7, r0 + adds r0, r1, #0 + adds r0, #0x51 + ldrb r0, [r0] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1d + cmp r0, #0 + bne _0817DDE8 + b _0817DF52 +_0817DDE8: + subs r2, r0, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r1, #0 + adds r0, #0x54 + ldrb r3, [r0] + lsrs r3, r3, #6 + movs r0, #0xf + b _0817DF32 +_0817DDFA: + lsls r1, r4, #1 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r1, r7, r1 + adds r4, r1, #0 + adds r4, #0x51 + ldrb r2, [r4] + movs r0, #0xf + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r4] + adds r1, #0x54 + ldrb r2, [r1] + movs r0, #0x3f +_0817DE16: + ands r0, r2 + strb r0, [r1] + b _0817DF52 +_0817DE1C: + lsls r2, r4, #1 + adds r2, r2, r4 + lsls r2, r2, #2 + adds r2, r7, r2 + ldr r1, _0817DE60 + ldr r0, _0817DE64 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r1, #1 + adds r4, r2, #0 + adds r4, #0x51 + movs r0, #7 + ands r1, r0 + lsls r1, r1, #4 + ldrb r3, [r4] + movs r0, #0x71 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4] + adds r2, #0x55 +_0817DE4A: + movs r0, #3 + mov r1, sl + ands r1, r0 + ldrb r3, [r2] + movs r0, #4 + rsbs r0, r0, #0 +_0817DE56: + ands r0, r3 +_0817DE58: + orrs r0, r1 + strb r0, [r2] + b _0817DF52 + .align 2, 0 +_0817DE60: .4byte 0x02023D12 +_0817DE64: .4byte 0x02023EAF +_0817DE68: + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r1, r7, r0 + adds r0, r1, #0 + adds r0, #0x51 + ldrb r0, [r0] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1d + cmp r0, #0 + beq _0817DF52 + subs r2, r0, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r1, #0 + adds r0, #0x55 + ldrb r3, [r0] + lsls r3, r3, #0x1e + lsrs r3, r3, #0x1e + movs r0, #0x10 + b _0817DF32 +_0817DE92: + lsls r1, r6, #1 + adds r1, r1, r6 + lsls r1, r1, #2 + adds r1, r7, r1 + adds r3, r1, #0 + adds r3, #0x50 + ldrb r2, [r3] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r3] + adds r1, #0x54 + ldrb r2, [r1] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldrh r2, [r3] + ldr r0, _0817DEE0 + ands r0, r2 + strh r0, [r3] + ldrb r2, [r1] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r1, _0817DEE4 + ldr r0, _0817DEE8 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrb r2, [r0] + movs r0, #0x11 + movs r1, #0 + mov r3, sl + bl AddMovePoints + b _0817DF52 + .align 2, 0 +_0817DEE0: .4byte 0xFFFFFE3F +_0817DEE4: .4byte 0x02023D12 +_0817DEE8: .4byte 0x02023EAF +_0817DEEC: + lsls r0, r4, #4 + adds r4, r7, r0 + adds r0, r4, #0 + adds r0, #0x35 + ldrb r0, [r0] + lsrs r0, r0, #5 + cmp r0, #0 + beq _0817DF14 + subs r2, r0, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r0, #0x36 + ldrb r3, [r0] + lsls r3, r3, #0x1e + lsrs r3, r3, #0x1e + movs r0, #0x15 + movs r1, #0 + bl AddMovePoints +_0817DF14: + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsrs r0, r0, #5 + cmp r0, #0 + beq _0817DF52 + subs r2, r0, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r0, #0x3e + ldrb r3, [r0] + lsls r3, r3, #0x1e + lsrs r3, r3, #0x1e + movs r0, #0x15 +_0817DF32: + movs r1, #0 + bl AddMovePoints + b _0817DF52 +_0817DF3A: + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r7, r0 + adds r0, #0x57 + ldrb r2, [r0] + movs r1, #0x1f + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #0x1c +_0817DF4E: + orrs r1, r2 +_0817DF50: + strb r1, [r0] +_0817DF52: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0817DA6E + + thumb_func_start sub_0817DF64 +sub_0817DF64: @ 0x0817DF64 + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + movs r3, #0 + ldr r4, _0817DF98 + ldr r6, _0817DF9C + adds r2, r4, #0 + adds r1, r4, #0 +_0817DF74: + ldrh r0, [r1] + cmp r0, r5 + beq _0817DF86 + adds r2, #2 + adds r1, #2 + adds r3, #1 + ldrh r0, [r2] + cmp r0, r6 + bne _0817DF74 +_0817DF86: + lsls r0, r3, #1 + adds r0, r0, r4 + ldrh r1, [r0] + ldr r0, _0817DF9C + cmp r1, r0 + beq _0817DFA0 + movs r0, #0 + b _0817DFA2 + .align 2, 0 +_0817DF98: .4byte 0x085D3304 +_0817DF9C: .4byte 0x0000FFFF +_0817DFA0: + movs r0, #1 +_0817DFA2: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_0817DF64 + + thumb_func_start BattleTv_SetDataBasedOnMove +BattleTv_SetDataBasedOnMove: @ 0x0817DFA8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + str r2, [sp, #4] + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp] + ldr r0, _0817E020 + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + bne _0817DFCE + b _0817E1BC +_0817DFCE: + ldr r0, _0817E024 + ldr r0, [r0] + movs r1, #0x81 + lsls r1, r1, #2 + adds r1, r0, r1 + str r1, [sp, #8] + ldr r2, _0817E028 + mov sl, r2 + ldrb r0, [r2] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldr r0, _0817E02C + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + mov r1, sl + ldrb r0, [r1] + adds r1, r7, #0 + bl GetBattlerMoveSlotId + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #3 + bls _0817E030 + mov r2, sb + lsls r0, r2, #1 + add r0, sb + lsls r0, r0, #2 + ldr r1, [sp, #8] + adds r0, r1, r0 + adds r0, #0x57 + ldrb r1, [r0] + movs r2, #0x1e + orrs r1, r2 + strb r1, [r0] + b _0817E1BC + .align 2, 0 +_0817E020: .4byte 0x02022C90 +_0817E024: .4byte 0x02024140 +_0817E028: .4byte 0x02023EAF +_0817E02C: .4byte 0x02023EB0 +_0817E030: + mov r2, sl + ldrb r0, [r2] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x19 + lsls r0, r0, #3 + lsls r4, r4, #4 + adds r0, r0, r4 + ldr r1, [sp, #8] + adds r0, r1, r0 + mov r2, sl + ldrb r1, [r2] + lsls r1, r1, #1 + ldr r2, _0817E1CC + adds r1, r1, r2 + ldrh r2, [r1] + adds r2, #1 + adds r0, #0x35 + lsls r2, r2, #5 + ldrb r3, [r0] + movs r1, #0x1f + ands r1, r3 + orrs r1, r2 + strb r1, [r0] + mov r1, sl + ldrb r0, [r1] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x19 + lsls r0, r0, #3 + adds r0, r0, r4 + ldr r2, [sp, #8] + adds r0, r2, r0 + adds r0, #0x36 + movs r1, #3 + mov r8, r6 + mov r2, r8 + ands r2, r1 + mov r8, r2 + ldrb r2, [r0] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + mov r2, r8 + orrs r1, r2 + strb r1, [r0] + mov r1, sb + lsls r0, r1, #1 + add r0, sb + lsls r0, r0, #2 + ldr r2, [sp, #8] + adds r0, r2, r0 + str r0, [sp, #0xc] + adds r5, r0, #0 + adds r5, #0x53 + lsls r2, r6, #6 + ldrb r1, [r5] + movs r0, #0x3f + ands r0, r1 + orrs r0, r2 + strb r0, [r5] + ldr r1, _0817E1D0 + lsls r4, r7, #1 + adds r0, r4, r7 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r2, [r0] + movs r0, #0 + adds r1, r6, #0 + movs r3, #0 + bl AddMovePoints + ldr r0, [sp] + adds r1, r7, #0 + adds r2, r6, #0 + bl AddPointsBasedOnWeather + ldr r0, [sp, #4] + ldrb r1, [r0, #0x12] + movs r0, #0xf + ands r0, r1 + str r4, [sp, #0x10] + cmp r0, #0 + beq _0817E0E8 + movs r0, #7 + adds r1, r7, #0 + adds r2, r6, #0 + movs r3, #0 + bl AddMovePoints +_0817E0E8: + ldr r0, _0817E1D4 + cmp r7, r0 + bne _0817E11E + mov r1, sl + ldrb r0, [r1] + lsls r0, r0, #1 + ldr r2, _0817E1CC + adds r0, r0, r2 + ldrh r1, [r0] + adds r1, #1 + movs r0, #7 + ands r1, r0 + ldrb r2, [r5] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5] + ldr r2, [sp, #0xc] + adds r2, #0x56 + ldrb r1, [r2] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + mov r1, r8 + orrs r0, r1 + strb r0, [r2] +_0817E11E: + cmp r7, #0x78 + beq _0817E126 + cmp r7, #0x99 + bne _0817E17E +_0817E126: + movs r0, #1 + mov r2, sb + eors r0, r2 + lsls r2, r0, #1 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r0, [sp, #8] + adds r2, r0, r2 + mov r1, sl + ldrb r0, [r1] + lsls r0, r0, #1 + ldr r1, _0817E1CC + adds r0, r0, r1 + ldrh r1, [r0] + adds r1, #1 + adds r4, r2, #0 + adds r4, #0x58 + movs r0, #7 + ands r1, r0 + lsls r1, r1, #3 + ldrb r3, [r4] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + mov r1, r8 + lsls r3, r1, #1 + movs r1, #7 + rsbs r1, r1, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r4] + adds r2, #0x57 + ldrb r1, [r2] + movs r0, #0x1f + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x1a + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4] + movs r1, #1 + orrs r0, r1 + strb r0, [r4] +_0817E17E: + ldr r1, _0817E1D0 + ldr r2, [sp, #0x10] + adds r0, r2, r7 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r4, [r0, #2] + ldrb r5, [r0, #1] + movs r0, #0xd + adds r1, r4, #0 + adds r2, r5, #0 + movs r3, #0 + bl AddMovePoints + movs r0, #0xe + adds r1, r4, #0 + adds r2, r5, #0 + movs r3, #0 + bl AddMovePoints + movs r0, #0xb + adds r1, r4, #0 + movs r2, #0 + movs r3, #0 + bl AddMovePoints + movs r0, #0xc + adds r1, r4, #0 + movs r2, #0 + movs r3, #0 + bl AddMovePoints +_0817E1BC: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0817E1CC: .4byte 0x02023D12 +_0817E1D0: .4byte 0x082ED220 +_0817E1D4: .4byte 0x00000111 + thumb_func_end BattleTv_SetDataBasedOnMove + + thumb_func_start BattleTv_SetDataBasedOnAnimation +BattleTv_SetDataBasedOnAnimation: @ 0x0817E1D8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _0817E20C + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _0817E29A + ldr r0, _0817E210 + ldr r0, [r0] + movs r1, #0x81 + lsls r1, r1, #2 + adds r4, r0, r1 + ldr r0, _0817E214 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r5, #0x12 + beq _0817E218 + cmp r5, #0x13 + beq _0817E256 + b _0817E29A + .align 2, 0 +_0817E20C: .4byte 0x02022C90 +_0817E210: .4byte 0x02024140 +_0817E214: .4byte 0x02023EAF +_0817E218: + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r4, r4, r0 + ldr r0, [r4, #0x50] + lsls r0, r0, #0xe + lsrs r0, r0, #0x1d + cmp r0, #0 + beq _0817E29A + subs r0, #1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x55 + ldrb r3, [r1] + lsls r3, r3, #0x1c + lsrs r3, r3, #0x1e + adds r3, r3, r0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #2 + movs r1, #0 + bl AddMovePoints + adds r2, r4, #0 + adds r2, #0x57 + ldrb r1, [r2] + movs r0, #0x1f + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + b _0817E296 +_0817E256: + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r4, r4, r0 + adds r0, r4, #0 + adds r0, #0x52 + ldrb r0, [r0] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1d + cmp r0, #0 + beq _0817E29A + subs r0, #1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x55 + ldrb r3, [r1] + lsls r3, r3, #0x1a + lsrs r3, r3, #0x1e + adds r3, r3, r0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #2 + movs r1, #1 + bl AddMovePoints + adds r2, r4, #0 + adds r2, #0x57 + ldrb r1, [r2] + movs r0, #0x1f + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x12 +_0817E296: + orrs r0, r1 + strb r0, [r2] +_0817E29A: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end BattleTv_SetDataBasedOnAnimation + + thumb_func_start TryPutLinkBattleTvShowOnAir +TryPutLinkBattleTvShowOnAir: @ 0x0817E2A0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + movs r0, #0 + str r0, [sp] + movs r1, #0 + str r1, [sp, #4] + movs r2, #0 + str r2, [sp, #8] + ldr r3, _0817E428 + str r3, [sp, #0xc] + movs r4, #0 + str r4, [sp, #0x10] + movs r7, #0 + str r7, [sp, #0x14] + mov r8, r0 + ldr r0, _0817E42C + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0xb3 + ldrb r0, [r0] + cmp r0, #0 + beq _0817E2D6 + b _0817E51C +_0817E2D6: + movs r2, #0xd2 + lsls r2, r2, #1 + adds r2, r2, r1 + mov sl, r2 + movs r6, #0 +_0817E2E0: + movs r0, #0x64 + adds r4, r6, #0 + muls r4, r0, r4 + ldr r0, _0817E430 + adds r0, r4, r0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + cmp r0, #0 + beq _0817E300 + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 +_0817E300: + ldr r5, _0817E434 + adds r0, r4, r5 + movs r1, #0xb + movs r2, #0 + bl GetMonData + cmp r0, #0 + beq _0817E316 + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 +_0817E316: + adds r6, #1 + cmp r6, #5 + ble _0817E2E0 + ldr r0, _0817E438 + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + bne _0817E32A + b _0817E51C +_0817E32A: + cmp r8, r7 + beq _0817E330 + b _0817E51C +_0817E330: + movs r6, #0 + lsls r3, r6, #1 + str r3, [sp, #0x18] + movs r4, #0x64 + mov r8, r4 +_0817E33A: + mov r1, r8 + muls r1, r6, r1 + ldr r0, _0817E430 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + adds r0, r6, #1 + mov sb, r0 + cmp r7, #0 + beq _0817E39A + adds r0, r4, #0 + movs r1, #0x2d + movs r2, #0 + bl GetMonData + cmp r0, #0 + bne _0817E39A + movs r4, #0 + lsls r0, r6, #3 + mov r2, sl + adds r1, r0, r2 + movs r3, #3 +_0817E370: + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + ldrh r4, [r1] + adds r0, r0, r4 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r1, #2 + subs r3, #1 + cmp r3, #0 + bge _0817E370 + ldr r1, [sp, #8] + lsls r0, r1, #0x10 + lsls r1, r4, #0x10 + cmp r0, r1 + bge _0817E39A + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x10] + lsrs r1, r1, #0x10 + str r1, [sp, #8] + str r7, [sp] +_0817E39A: + mov r0, r8 + muls r0, r6, r0 + ldr r2, _0817E434 + adds r4, r0, r2 + adds r0, r4, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + ldr r3, [sp, #8] + lsls r3, r3, #0x10 + str r3, [sp, #0x1c] + cmp r7, #0 + beq _0817E44C + adds r0, r4, #0 + movs r1, #0x2d + movs r2, #0 + bl GetMonData + cmp r0, #0 + bne _0817E44C + movs r4, #0 + ldr r0, [sp, #0xc] + lsls r2, r0, #0x10 + movs r3, #1 + lsls r1, r3, #1 + adds r1, #1 + lsls r1, r1, #4 + lsls r0, r6, #3 + adds r0, r0, r1 + mov r3, sl + adds r1, r0, r3 + movs r3, #3 +_0817E3E0: + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + ldrh r4, [r1] + adds r0, r0, r4 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r1, #2 + subs r3, #1 + cmp r3, #0 + bge _0817E3E0 + asrs r1, r2, #0x10 + lsls r5, r4, #0x10 + asrs r0, r5, #0x10 + cmp r1, r0 + bne _0817E43C + mov r0, r8 + muls r0, r6, r0 + ldr r1, _0817E434 + adds r0, r0, r1 + movs r1, #0x19 + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + ldr r2, [sp, #0x14] + mov r0, r8 + muls r0, r2, r0 + ldr r3, _0817E434 + adds r0, r0, r3 + movs r1, #0x19 + movs r2, #0 + bl GetMonData + cmp r4, r0 + bls _0817E44C + b _0817E440 + .align 2, 0 +_0817E428: .4byte 0x00007FFF +_0817E42C: .4byte 0x02024140 +_0817E430: .4byte 0x02024190 +_0817E434: .4byte 0x020243E8 +_0817E438: .4byte 0x02022C90 +_0817E43C: + cmp r1, r0 + ble _0817E44C +_0817E440: + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x14] + lsrs r5, r5, #0x10 + str r5, [sp, #0xc] + str r7, [sp, #4] +_0817E44C: + mov r6, sb + cmp r6, #5 + bgt _0817E454 + b _0817E33A +_0817E454: + movs r4, #0 + movs r6, #0 + movs r3, #0 + ldr r5, _0817E4C0 + ldr r7, [sp, #0x10] + lsls r0, r7, #3 + mov r1, sl + adds r2, r0, r1 +_0817E464: + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + movs r7, #0 + ldrsh r1, [r2, r7] + cmp r0, r1 + bge _0817E474 + ldrh r4, [r2] + adds r6, r3, #0 +_0817E474: + adds r2, #2 + adds r3, #1 + cmp r3, #3 + ble _0817E464 + movs r0, #0x64 + ldr r1, [sp, #0x10] + muls r0, r1, r0 + adds r0, r0, r5 + adds r1, r6, #0 + adds r1, #0xd + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r2, [sp, #0x1c] + cmp r2, #0 + beq _0817E51C + cmp r4, #0 + beq _0817E51C + ldr r0, _0817E4C4 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0817E508 + ldr r3, [sp, #0x10] + cmp r3, #2 + bhi _0817E4CC + ldr r0, _0817E4C8 + adds r0, #0x25 + ldrb r0, [r0] + bl GetLinkTrainerFlankId + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0817E4DC + b _0817E51C + .align 2, 0 +_0817E4C0: .4byte 0x02024190 +_0817E4C4: .4byte 0x02022C90 +_0817E4C8: .4byte 0x02024118 +_0817E4CC: + ldr r0, _0817E504 + adds r0, #0x25 + ldrb r0, [r0] + bl GetLinkTrainerFlankId + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0817E51C +_0817E4DC: + movs r3, #0 + ldr r7, [sp, #0x14] + cmp r7, #2 + bls _0817E4E6 + movs r3, #1 +_0817E4E6: + lsls r0, r3, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0817E504 + adds r1, #0x25 + ldrb r1, [r1] + bl sub_0806EA10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r4, #0 + ldr r2, [sp] + ldr r3, [sp, #4] + bl PutBattleUpdateOnTheAir + b _0817E51C + .align 2, 0 +_0817E504: .4byte 0x02024118 +_0817E508: + ldr r0, _0817E52C + adds r0, #0x25 + ldrb r1, [r0] + movs r0, #1 + eors r0, r1 + adds r1, r4, #0 + ldr r2, [sp] + ldr r3, [sp, #4] + bl PutBattleUpdateOnTheAir +_0817E51C: + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0817E52C: .4byte 0x02024118 + thumb_func_end TryPutLinkBattleTvShowOnAir + + thumb_func_start AddMovePoints +AddMovePoints: @ 0x0817E530 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov sb, r3 + ldr r0, _0817E58C + ldr r0, [r0] + movs r1, #0xd2 + lsls r1, r1, #1 + adds r1, r1, r0 + mov r8, r1 + movs r2, #0x81 + lsls r2, r2, #2 + adds r7, r0, r2 + ldr r0, _0817E590 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0817E594 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + mov r0, sl + cmp r0, #0x1b + bls _0817E580 + b _0817E918 +_0817E580: + lsls r0, r0, #2 + ldr r1, _0817E598 + adds r1, r0, r1 + ldr r1, [r1] + mov ip, r0 + mov pc, r1 + .align 2, 0 +_0817E58C: .4byte 0x02024140 +_0817E590: .4byte 0x02023EAF +_0817E594: .4byte 0x02023EB0 +_0817E598: .4byte 0x0817E59C +_0817E59C: @ jump table + .4byte _0817E60C @ case 0 + .4byte _0817E60C @ case 1 + .4byte _0817E708 @ case 2 + .4byte _0817E648 @ case 3 + .4byte _0817E648 @ case 4 + .4byte _0817E648 @ case 5 + .4byte _0817E648 @ case 6 + .4byte _0817E648 @ case 7 + .4byte _0817E74C @ case 8 + .4byte _0817E74C @ case 9 + .4byte _0817E778 @ case 10 + .4byte _0817E79C @ case 11 + .4byte _0817E824 @ case 12 + .4byte _0817E88C @ case 13 + .4byte _0817E8D4 @ case 14 + .4byte _0817E74C @ case 15 + .4byte _0817E74C @ case 16 + .4byte _0817E72C @ case 17 + .4byte _0817E60C @ case 18 + .4byte _0817E6B6 @ case 19 + .4byte _0817E6F4 @ case 20 + .4byte _0817E74C @ case 21 + .4byte _0817E60C @ case 22 + .4byte _0817E60C @ case 23 + .4byte _0817E60C @ case 24 + .4byte _0817E60C @ case 25 + .4byte _0817E60C @ case 26 + .4byte _0817E60C @ case 27 +_0817E60C: + ldr r1, _0817E63C + ldr r0, _0817E640 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + lsls r1, r1, #2 + adds r1, r1, r6 + lsls r1, r1, #1 + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #4 + adds r1, r1, r0 + add r1, r8 + ldr r0, _0817E644 + add r0, ip + ldr r2, [r0] + lsls r0, r5, #1 + adds r0, r0, r2 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + b _0817E916 + .align 2, 0 +_0817E63C: .4byte 0x02023D12 +_0817E640: .4byte 0x02023EAF +_0817E644: .4byte 0x085D3294 +_0817E648: + ldr r1, _0817E67C + add r1, ip + ldr r7, _0817E680 + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r2, r0, #4 + ldr r4, _0817E684 + ldr r1, [r1] + ldr r3, _0817E688 + ldrh r0, [r1] + cmp r6, r0 + bne _0817E68C + ldrb r0, [r3] + lsls r0, r0, #1 + adds r0, r0, r7 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r5 + lsls r0, r0, #1 + adds r0, r0, r2 + add r0, r8 + ldrh r1, [r1, #2] + ldrh r2, [r0] + adds r1, r1, r2 + strh r1, [r0] + b _0817E918 + .align 2, 0 +_0817E67C: .4byte 0x085D3294 +_0817E680: .4byte 0x02023D12 +_0817E684: .4byte 0x0000FFFF +_0817E688: .4byte 0x02023EAF +_0817E68C: + adds r1, #4 + ldrh r0, [r1] + cmp r0, r4 + bne _0817E696 + b _0817E918 +_0817E696: + cmp r6, r0 + bne _0817E68C + ldrb r0, [r3] + lsls r0, r0, #1 + adds r0, r0, r7 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r5 + lsls r0, r0, #1 + adds r0, r0, r2 + add r0, r8 + ldrh r1, [r1, #2] + ldrh r5, [r0] + adds r1, r1, r5 + strh r1, [r0] + b _0817E918 +_0817E6B6: + movs r0, #1 + adds r1, r5, #0 + eors r1, r0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r7, r0 + adds r0, #0x57 + ldrb r2, [r0] + movs r1, #0x1f + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + mov r0, sb + lsls r1, r0, #1 + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #4 + adds r1, r1, r0 + add r1, r8 + ldr r0, _0817E6F0 + add r0, ip + ldr r2, [r0] + lsls r0, r6, #1 + adds r0, r0, r2 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + b _0817E916 + .align 2, 0 +_0817E6F0: .4byte 0x085D3294 +_0817E6F4: + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r0, r7, r0 + adds r0, #0x57 + ldrb r2, [r0] + movs r1, #0x1f + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] +_0817E708: + mov r0, sb + lsls r1, r0, #1 + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #4 + adds r1, r1, r0 + add r1, r8 + ldr r0, _0817E728 + add r0, ip + ldr r2, [r0] + lsls r0, r6, #1 + adds r0, r0, r2 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + b _0817E916 + .align 2, 0 +_0817E728: .4byte 0x085D3294 +_0817E72C: + lsls r1, r5, #2 + add r1, sb + lsls r1, r1, #1 + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #4 + adds r1, r1, r0 + add r1, r8 + ldr r0, _0817E748 + add r0, ip + ldr r2, [r0] + lsls r0, r6, #1 + adds r0, r0, r2 + b _0817E910 + .align 2, 0 +_0817E748: .4byte 0x085D3294 +_0817E74C: + lsls r2, r5, #2 + add r2, sb + lsls r2, r2, #1 + movs r1, #1 + eors r1, r4 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #4 + adds r2, r2, r0 + add r2, r8 + ldr r0, _0817E774 + add r0, ip + ldr r1, [r0] + lsls r0, r6, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ldrh r1, [r2] + adds r0, r0, r1 + strh r0, [r2] + b _0817E918 + .align 2, 0 +_0817E774: .4byte 0x085D3294 +_0817E778: + lsls r1, r5, #2 + add r1, sb + lsls r1, r1, #1 + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r0, r0, #4 + adds r1, r1, r0 + add r1, r8 + ldr r0, _0817E798 + add r0, ip + ldr r0, [r0] + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + b _0817E916 + .align 2, 0 +_0817E798: .4byte 0x085D3294 +_0817E79C: + lsls r0, r3, #4 + adds r2, r7, r0 + adds r0, r2, #0 + adds r0, #0x34 + ldrb r0, [r0] + lsls r0, r0, #0x1d + lsrs r1, r0, #0x1d + adds r4, r2, #0 + adds r4, #0x3c + ldrb r0, [r4] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1d + cmn r1, r0 + bne _0817E7BA + b _0817E918 +_0817E7BA: + cmp r6, #0xa + beq _0817E7C0 + b _0817E918 +_0817E7C0: + cmp r1, #0 + beq _0817E7EC + subs r1, #1 + lsls r1, r1, #2 + adds r0, r2, #0 + adds r0, #0x33 + ldrb r0, [r0] + lsrs r0, r0, #6 + adds r1, r1, r0 + lsls r1, r1, #1 + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #4 + adds r1, r1, r0 + add r1, r8 + ldr r0, _0817E820 + add r0, ip + ldr r0, [r0] + ldrh r0, [r0] + ldrh r5, [r1] + adds r0, r0, r5 + strh r0, [r1] +_0817E7EC: + ldrb r0, [r4] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1d + cmp r0, #0 + bne _0817E7F8 + b _0817E918 +_0817E7F8: + subs r1, r0, #1 + lsls r1, r1, #2 + adds r0, r2, #0 + adds r0, #0x3b + ldrb r0, [r0] + lsrs r0, r0, #6 + adds r1, r1, r0 + lsls r1, r1, #1 + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #4 + adds r1, r1, r0 + add r1, r8 + ldr r0, _0817E820 + add r0, ip + ldr r0, [r0] + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + b _0817E916 + .align 2, 0 +_0817E820: .4byte 0x085D3294 +_0817E824: + lsls r1, r3, #4 + adds r1, r7, r1 + adds r0, r1, #0 + adds r0, #0x34 + ldrb r4, [r0] + lsls r0, r4, #0x1a + lsrs r2, r0, #0x1d + adds r5, r1, #0 + adds r5, #0x3c + ldrb r0, [r5] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1d + cmn r2, r0 + beq _0817E918 + cmp r6, #0xd + bne _0817E918 + cmp r2, #0 + beq _0817E86A + subs r1, r2, #1 + lsls r1, r1, #2 + lsrs r0, r4, #6 + adds r1, r1, r0 + lsls r1, r1, #1 + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #4 + adds r1, r1, r0 + add r1, r8 + ldr r0, _0817E888 + add r0, ip + ldr r0, [r0] + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] +_0817E86A: + ldrb r2, [r5] + lsls r0, r2, #0x1a + lsrs r0, r0, #0x1d + cmp r0, #0 + beq _0817E918 + subs r1, r0, #1 + lsls r1, r1, #2 + lsrs r0, r2, #6 + adds r1, r1, r0 + lsls r1, r1, #1 + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #4 + b _0817E906 + .align 2, 0 +_0817E888: .4byte 0x085D3294 +_0817E88C: + cmp r6, #8 + bhi _0817E918 + cmp r5, #0 + beq _0817E918 + lsls r0, r3, #1 + adds r3, r0, r3 + lsls r0, r3, #2 + adds r2, r7, r0 + adds r0, r2, #0 + adds r0, #0x50 + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1d + cmp r0, #0 + beq _0817E918 + subs r1, r0, #1 + lsls r1, r1, #2 + adds r0, r2, #0 + adds r0, #0x54 + ldrb r0, [r0] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1e + adds r1, r1, r0 + lsls r1, r1, #1 + lsls r0, r3, #4 + adds r1, r1, r0 + add r1, r8 + ldr r0, _0817E8D0 + add r0, ip + ldr r0, [r0] + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + b _0817E916 + .align 2, 0 +_0817E8D0: .4byte 0x085D3294 +_0817E8D4: + cmp r6, #8 + bls _0817E918 + cmp r5, #0 + beq _0817E918 + lsls r0, r3, #1 + adds r3, r0, r3 + lsls r0, r3, #2 + adds r2, r7, r0 + adds r0, r2, #0 + adds r0, #0x50 + ldrh r0, [r0] + lsls r0, r0, #0x17 + lsrs r0, r0, #0x1d + cmp r0, #0 + beq _0817E918 + subs r1, r0, #1 + lsls r1, r1, #2 + adds r0, r2, #0 + adds r0, #0x54 + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + adds r1, r1, r0 + lsls r1, r1, #1 + lsls r0, r3, #4 +_0817E906: + adds r1, r1, r0 + add r1, r8 + ldr r0, _0817E928 + add r0, ip + ldr r0, [r0] +_0817E910: + ldrh r0, [r0] + ldrh r5, [r1] + adds r0, r0, r5 +_0817E916: + strh r0, [r1] +_0817E918: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0817E928: .4byte 0x085D3294 + thumb_func_end AddMovePoints + + thumb_func_start AddPointsOnFainting +AddPointsOnFainting: @ 0x0817E92C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _0817E988 + ldr r0, [r0] + movs r1, #0x81 + lsls r1, r1, #2 + adds r5, r0, r1 + ldr r3, _0817E98C + mov r8, r3 + ldrb r0, [r3] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0817E990 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r6, r5, r0 + adds r0, r6, #0 + adds r0, #0x57 + ldrb r0, [r0] + lsrs r3, r0, #5 + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1c + cmp r0, #0 + bne _0817E974 + b _0817ECFC +_0817E974: + subs r0, #1 + cmp r0, #0xe + bls _0817E97C + b _0817ED68 +_0817E97C: + lsls r0, r0, #2 + ldr r1, _0817E994 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0817E988: .4byte 0x02024140 +_0817E98C: .4byte 0x02023EAF +_0817E990: .4byte 0x02023EB0 +_0817E994: .4byte 0x0817E998 +_0817E998: @ jump table + .4byte _0817E9D4 @ case 0 + .4byte _0817EA00 @ case 1 + .4byte _0817EA2C @ case 2 + .4byte _0817EA80 @ case 3 + .4byte _0817EAAA @ case 4 + .4byte _0817EAD2 @ case 5 + .4byte _0817EAFA @ case 6 + .4byte _0817EB18 @ case 7 + .4byte _0817EB46 @ case 8 + .4byte _0817EB78 @ case 9 + .4byte _0817EC00 @ case 10 + .4byte _0817EC2E @ case 11 + .4byte _0817EC6E @ case 12 + .4byte _0817ECC8 @ case 13 + .4byte _0817ED68 @ case 14 +_0817E9D4: + lsls r0, r3, #3 + lsls r1, r4, #4 + adds r0, r0, r1 + adds r3, r5, r0 + adds r0, r3, #0 + adds r0, #0x30 + ldrb r0, [r0] + lsls r0, r0, #0x1d + lsrs r1, r0, #0x1d + cmp r1, #0 + bne _0817E9EC + b _0817ED68 +_0817E9EC: + movs r0, #1 + adds r2, r4, #0 + eors r2, r0 + subs r1, #1 + lsls r1, r1, #2 + adds r0, r3, #0 + adds r0, #0x32 + ldrb r3, [r0] + lsls r3, r3, #0x1c + b _0817ED30 +_0817EA00: + lsls r0, r3, #3 + lsls r1, r4, #4 + adds r0, r0, r1 + adds r3, r5, r0 + adds r0, r3, #0 + adds r0, #0x30 + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r1, r0, #0x1d + cmp r1, #0 + bne _0817EA18 + b _0817ED68 +_0817EA18: + movs r0, #1 + adds r2, r4, #0 + eors r2, r0 + subs r1, #1 + lsls r1, r1, #2 + adds r0, r3, #0 + adds r0, #0x32 + ldrb r3, [r0] + lsls r3, r3, #0x1a + b _0817ED30 +_0817EA2C: + lsls r0, r3, #2 + lsls r1, r4, #1 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r0, r0, r1 + adds r5, r5, r0 + ldrb r0, [r5] + lsls r0, r0, #0x1d + lsrs r1, r0, #0x1d + cmp r1, #0 + beq _0817EA60 + movs r0, #1 + adds r2, r4, #0 + eors r2, r0 + subs r0, r1, #1 + lsls r0, r0, #2 + ldrb r3, [r5, #2] + lsls r3, r3, #0x1c + lsrs r3, r3, #0x1e + adds r3, r3, r0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #0x13 + movs r1, #0 + bl AddMovePoints +_0817EA60: + ldrb r0, [r5] + lsls r0, r0, #0x1a + lsrs r1, r0, #0x1d + cmp r1, #0 + bne _0817EA6C + b _0817ED68 +_0817EA6C: + movs r0, #1 + adds r2, r4, #0 + eors r2, r0 + subs r0, r1, #1 + lsls r0, r0, #2 + ldrb r3, [r5, #2] + lsls r3, r3, #0x1a + lsrs r3, r3, #0x1e + adds r3, r3, r0 + b _0817ED34 +_0817EA80: + lsls r0, r3, #2 + lsls r1, r4, #1 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r0, r0, r1 + adds r1, r5, r0 + ldrh r0, [r1] + lsls r0, r0, #0x17 + lsrs r3, r0, #0x1d + cmp r3, #0 + bne _0817EA98 + b _0817ED68 +_0817EA98: + movs r0, #1 + adds r2, r4, #0 + eors r2, r0 + subs r0, r3, #1 + lsls r0, r0, #2 + ldrb r3, [r1, #2] + lsrs r3, r3, #6 + adds r3, r3, r0 + b _0817ED34 +_0817EAAA: + lsls r0, r3, #3 + lsls r1, r4, #4 + adds r0, r0, r1 + adds r3, r5, r0 + ldrh r0, [r3, #0x30] + lsls r0, r0, #0x17 + lsrs r1, r0, #0x1d + cmp r1, #0 + bne _0817EABE + b _0817ED68 +_0817EABE: + movs r0, #1 + adds r2, r4, #0 + eors r2, r0 + subs r1, #1 + lsls r1, r1, #2 + adds r0, r3, #0 + adds r0, #0x32 + ldrb r3, [r0] + lsrs r3, r3, #6 + b _0817ED32 +_0817EAD2: + lsls r0, r3, #3 + lsls r1, r4, #4 + adds r0, r0, r1 + adds r3, r5, r0 + adds r0, r3, #0 + adds r0, #0x31 + ldrb r0, [r0] + lsls r0, r0, #0x1c + lsrs r1, r0, #0x1d + cmp r1, #0 + bne _0817EAEA + b _0817ED68 +_0817EAEA: + movs r0, #1 + adds r2, r4, #0 + eors r2, r0 + subs r1, #1 + lsls r1, r1, #2 + adds r0, r3, #0 + adds r0, #0x33 + b _0817ED2C +_0817EAFA: + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r3, r5, r0 + adds r0, r3, #0 + adds r0, #0x50 + ldrb r0, [r0] + lsls r0, r0, #0x1d + lsrs r1, r0, #0x1d + cmp r1, #0 + bne _0817EB12 + b _0817ED68 +_0817EB12: + movs r0, #1 + adds r2, r4, #0 + b _0817ED22 +_0817EB18: + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r3, r5, r0 + ldr r0, [r3, #0x50] + lsls r0, r0, #0xe + lsrs r0, r0, #0x1d + cmp r0, #0 + bne _0817EB2C + b _0817ED68 +_0817EB2C: + adds r2, r4, #0 + subs r1, r0, #1 + lsls r1, r1, #2 + adds r0, r3, #0 + adds r0, #0x55 + ldrb r3, [r0] + lsls r3, r3, #0x1c + lsrs r3, r3, #0x1e + adds r3, r3, r1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #0x14 + b _0817ED3A +_0817EB46: + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r3, r5, r0 + adds r0, r3, #0 + adds r0, #0x52 + ldrb r0, [r0] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1d + cmp r0, #0 + bne _0817EB5E + b _0817ED68 +_0817EB5E: + adds r2, r4, #0 + subs r1, r0, #1 + lsls r1, r1, #2 + adds r0, r3, #0 + adds r0, #0x55 + ldrb r3, [r0] + lsls r3, r3, #0x1a + lsrs r3, r3, #0x1e + adds r3, r3, r1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #0x14 + b _0817ED3A +_0817EB78: + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r3, r5, r0 + adds r0, r3, #0 + adds r0, #0x58 + ldrb r0, [r0] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _0817EBC0 + adds r0, r3, #0 + adds r0, #0x52 + ldrb r0, [r0] + lsrs r0, r0, #5 + subs r6, r0, #1 + ldr r1, _0817EBF8 + ldr r0, _0817EBFC + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r6, r0 + beq _0817EBC0 + adds r2, r4, #0 + lsls r1, r6, #2 + adds r0, r3, #0 + adds r0, #0x55 + ldrb r3, [r0] + lsrs r3, r3, #6 + adds r3, r3, r1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #0x13 + movs r1, #0 + bl AddMovePoints +_0817EBC0: + movs r1, #1 + eors r1, r4 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r5, r0 + adds r0, r1, #0 + adds r0, #0x58 + ldrb r0, [r0] + lsls r0, r0, #0x19 + cmp r0, #0 + blt _0817EBDA + b _0817ED68 +_0817EBDA: + movs r0, #1 + adds r2, r4, #0 + eors r2, r0 + adds r0, r1, #0 + adds r0, #0x52 + ldrb r0, [r0] + lsrs r0, r0, #5 + subs r0, #1 + lsls r0, r0, #2 + adds r1, #0x55 + ldrb r3, [r1] + lsrs r3, r3, #6 + adds r3, r3, r0 + b _0817ED34 + .align 2, 0 +_0817EBF8: .4byte 0x02023D12 +_0817EBFC: .4byte 0x02023EAF +_0817EC00: + movs r0, #1 + eors r0, r4 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r5, r1 + adds r1, #0x56 + ldrb r0, [r1] + lsls r0, r0, #0x19 + lsrs r5, r0, #0x1d + cmp r5, #0 + bne _0817EC1A + b _0817ED68 +_0817EC1A: + movs r0, #1 + adds r2, r4, #0 + eors r2, r0 + subs r0, r5, #1 + lsls r0, r0, #2 + ldrh r3, [r1] + lsls r3, r3, #0x17 + lsrs r3, r3, #0x1e + adds r3, r3, r0 + b _0817ED34 +_0817EC2E: + lsls r2, r4, #4 + movs r1, #1 + adds r0, r4, #0 + eors r0, r1 + lsls r6, r0, #0x18 + adds r0, r5, #0 + adds r0, #0x30 + adds r4, r2, r0 + movs r5, #1 +_0817EC40: + ldr r0, [r4] + lsls r0, r0, #0xe + lsrs r0, r0, #0x1d + cmp r0, #0 + beq _0817EC64 + subs r0, #1 + lsls r0, r0, #2 + ldrb r3, [r4, #3] + lsls r3, r3, #0x1a + lsrs r3, r3, #0x1e + adds r3, r3, r0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #0x13 + movs r1, #0 + lsrs r2, r6, #0x18 + bl AddMovePoints +_0817EC64: + adds r4, #8 + subs r5, #1 + cmp r5, #0 + bge _0817EC40 + b _0817ED68 +_0817EC6E: + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r5, r0 + adds r0, #0x58 + ldrb r3, [r0] + lsls r0, r3, #0x1f + cmp r0, #0 + beq _0817EC9C + adds r2, r4, #0 + lsls r0, r3, #0x1a + lsrs r0, r0, #0x1d + subs r0, #1 + lsls r0, r0, #2 + lsls r3, r3, #0x1d + lsrs r3, r3, #0x1e + adds r3, r3, r0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #0x13 + movs r1, #0 + bl AddMovePoints +_0817EC9C: + movs r0, #1 + eors r0, r4 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r5, r1 + adds r1, #0x58 + ldrb r1, [r1] + lsls r0, r1, #0x1f + cmp r0, #0 + beq _0817ED68 + movs r0, #1 + adds r2, r4, #0 + eors r2, r0 + lsls r0, r1, #0x1a + lsrs r0, r0, #0x1d + subs r0, #1 + lsls r0, r0, #2 + lsls r3, r1, #0x1d + lsrs r3, r3, #0x1e + adds r3, r3, r0 + b _0817ED34 +_0817ECC8: + cmp r7, #1 + bne _0817ED68 + adds r2, r4, #0 + ldr r1, _0817ECF4 + ldr r0, _0817ECF8 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + lsls r1, r1, #2 + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r5, r0 + adds r0, #0x53 + ldrb r3, [r0] + lsrs r3, r3, #6 + adds r3, r3, r1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #0x14 + b _0817ED3A + .align 2, 0 +_0817ECF4: .4byte 0x02023D12 +_0817ECF8: .4byte 0x02023EAF +_0817ECFC: + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r3, r5, r0 + adds r0, r3, #0 + adds r0, #0x57 + ldrb r0, [r0] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1c + cmp r0, #7 + bne _0817ED42 + adds r0, r3, #0 + adds r0, #0x50 + ldrb r0, [r0] + lsls r0, r0, #0x1d + lsrs r1, r0, #0x1d + cmp r1, #0 + beq _0817ED68 + movs r0, #1 +_0817ED22: + eors r2, r0 + subs r1, #1 + lsls r1, r1, #2 + adds r0, r3, #0 + adds r0, #0x54 +_0817ED2C: + ldrb r3, [r0] + lsls r3, r3, #0x1e +_0817ED30: + lsrs r3, r3, #0x1e +_0817ED32: + adds r3, r3, r1 +_0817ED34: + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #0x13 +_0817ED3A: + movs r1, #0 + bl AddMovePoints + b _0817ED68 +_0817ED42: + adds r2, r4, #0 + ldr r1, _0817ED74 + mov r3, r8 + ldrb r0, [r3] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + lsls r1, r1, #2 + adds r0, r6, #0 + adds r0, #0x53 + ldrb r3, [r0] + lsrs r3, r3, #6 + adds r3, r3, r1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #0x14 + movs r1, #0 + bl AddMovePoints +_0817ED68: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0817ED74: .4byte 0x02023D12 + thumb_func_end AddPointsOnFainting + + thumb_func_start TrySetBattleSeminarShow +TrySetBattleSeminarShow: @ 0x0817ED78 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x28 + ldr r7, _0817F034 + ldr r0, [r7] + ldr r1, _0817F038 + ands r0, r1 + cmp r0, #0 + beq _0817ED92 + b _0817F0A6 +_0817ED92: + ldr r4, _0817F03C + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0817EDA4 + b _0817F0A6 +_0817EDA4: + ldr r5, _0817F040 + ldrb r4, [r4] + movs r1, #0x58 + adds r6, r4, #0 + muls r6, r1, r6 + adds r0, r6, r5 + ldrb r0, [r0, #0x1e] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #5 + bgt _0817EDBC + b _0817F0A6 +_0817EDBC: + ldr r0, _0817F044 + ldrb r0, [r0] + muls r0, r1, r0 + adds r0, r0, r5 + ldrb r0, [r0, #0x1f] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #6 + ble _0817EDD0 + b _0817F0A6 +_0817EDD0: + ldr r0, _0817F048 + ldrh r1, [r0] + cmp r1, #0xed + bne _0817EDDA + b _0817F0A6 +_0817EDDA: + ldr r0, _0817F04C + cmp r1, r0 + bne _0817EDE2 + b _0817F0A6 +_0817EDE2: + ldr r0, [r7] + movs r1, #0xc8 + lsls r1, r1, #0xe + ands r0, r1 + cmp r0, #0 + beq _0817EDF0 + b _0817F0A6 +_0817EDF0: + ldr r3, _0817F050 + ldr r2, _0817F054 + adds r0, r4, r2 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r6 + adds r1, r5, #0 + adds r1, #0xc + adds r0, r0, r1 + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0, #1] + adds r6, r2, #0 + cmp r0, #0 + bne _0817EE16 + b _0817F0A6 +_0817EE16: + movs r5, #0 + str r1, [sp, #0x24] + ldr r1, _0817F058 + ldr r4, _0817F05C + adds r3, r1, #0 + adds r2, r1, #0 +_0817EE22: + ldr r0, [sp, #0x24] + ldrh r7, [r2] + cmp r0, r7 + beq _0817EE36 + adds r3, #2 + adds r2, #2 + adds r5, #1 + ldrh r0, [r3] + cmp r0, r4 + bne _0817EE22 +_0817EE36: + lsls r0, r5, #1 + adds r0, r0, r1 + ldrh r1, [r0] + ldr r0, _0817F05C + cmp r1, r0 + beq _0817EE44 + b _0817F0A6 +_0817EE44: + ldr r2, _0817F03C + ldrb r0, [r2] + adds r0, r0, r6 + ldrb r0, [r0] + lsls r0, r0, #2 + mov r1, sp + adds r1, r1, r0 + adds r1, #0x10 + ldr r0, _0817F060 + ldr r0, [r0] + str r0, [r1] + ldr r0, _0817F048 + ldrh r1, [r0] + str r1, [sp, #0x24] + movs r5, #0 + add r3, sp, #0x20 + mov sl, r3 + mov r8, r0 + add r7, sp, #0x10 + ldr r4, _0817F044 + mov sb, r4 +_0817EE6E: + lsls r1, r5, #1 + ldr r6, _0817F03C + ldrb r0, [r6] + movs r2, #0x58 + muls r0, r2, r0 + adds r1, r1, r0 + ldr r0, _0817F040 + adds r0, #0xc + adds r1, r1, r0 + ldrh r0, [r1] + mov r3, r8 + strh r0, [r3] + movs r6, #0 + mov r4, sl + strh r6, [r4] + ldrh r0, [r3] + adds r1, r7, #0 + mov r2, sl + bl ShouldCalculateDamage + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0817EF60 + ldr r4, _0817F064 + mov r1, sb + ldrb r0, [r1] + bl GetBattlerPosition + movs r1, #1 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r3, [r1] + ldr r2, _0817F03C + ldrb r0, [r2] + movs r4, #0x58 + muls r0, r4, r0 + ldr r6, _0817F040 + adds r0, r0, r6 + mov r2, sb + ldrb r1, [r2] + muls r1, r4, r1 + adds r1, r1, r6 + mov r4, r8 + ldrh r2, [r4] + mov r6, sl + ldrh r4, [r6] + str r4, [sp] + movs r4, #0 + str r4, [sp, #4] + ldr r6, _0817F03C + ldrb r4, [r6] + str r4, [sp, #8] + mov r6, sb + ldrb r4, [r6] + str r4, [sp, #0xc] + bl CalculateBaseDamage + adds r3, r0, #0 + ldr r4, _0817F060 + str r3, [r4] + ldr r1, _0817F068 + ldr r2, _0817F03C + ldrb r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #2 + ands r0, r1 + cmp r0, #0 + beq _0817EF16 + ldr r2, _0817F050 + mov r6, r8 + ldrh r1, [r6] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #2] + cmp r0, #0xd + bne _0817EF16 + lsls r0, r3, #1 + str r0, [r4] +_0817EF16: + ldr r0, _0817F06C + ldr r6, _0817F03C + ldrb r1, [r6] + lsls r1, r1, #4 + adds r1, r1, r0 + ldrb r0, [r1] + lsls r0, r0, #0x1c + cmp r0, #0 + bge _0817EF38 + ldr r4, _0817F060 + ldr r1, [r4] + lsls r0, r1, #4 + subs r0, r0, r1 + movs r1, #0xa + bl __divsi3 + str r0, [r4] +_0817EF38: + mov r1, r8 + ldrh r0, [r1] + ldrb r1, [r6] + mov r3, sb + ldrb r2, [r3] + bl TypeCalc + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r0, _0817F060 + ldr r0, [r0] + str r0, [r7] + cmp r0, #0 + bne _0817EF60 + movs r0, #0x29 + ands r0, r1 + cmp r0, #0 + bne _0817EF60 + movs r0, #1 + str r0, [r7] +_0817EF60: + adds r7, #4 + adds r5, #1 + cmp r5, #3 + ble _0817EE6E + movs r5, #0 + ldr r3, _0817F03C + ldr r6, _0817F054 + ldr r4, _0817F070 + mov r8, r4 + movs r7, #0x64 + mov sb, r7 + mov sl, r6 +_0817EF78: + ldrb r0, [r3] + adds r0, r0, r6 + ldrb r2, [r0] + cmp r5, r2 + bne _0817EF84 + b _0817F080 +_0817EF84: + lsls r0, r5, #2 + mov r1, sp + adds r1, r1, r0 + adds r1, #0x10 + lsls r0, r2, #2 + add r0, sp + adds r0, #0x10 + ldr r1, [r1] + ldr r0, [r0] + cmp r1, r0 + ble _0817F080 + movs r7, #1 + cmp r2, #0 + beq _0817EFA2 + movs r7, #0 +_0817EFA2: + movs r5, #0 + ldr r4, _0817F044 + ldr r6, _0817F074 + ldr r0, _0817F03C + ldrb r0, [r0] + add r0, sl + ldrb r3, [r0] + add r2, sp, #0x10 +_0817EFB2: + cmp r5, r3 + beq _0817EFC6 + lsls r0, r7, #2 + add r0, sp + adds r0, #0x10 + ldr r1, [r2] + ldr r0, [r0] + cmp r1, r0 + ble _0817EFC6 + adds r7, r5, #0 +_0817EFC6: + adds r2, #4 + adds r5, #1 + cmp r5, #3 + ble _0817EFB2 + ldrb r0, [r4] + lsls r0, r0, #1 + add r0, r8 + ldrh r0, [r0] + mov r1, sb + muls r1, r0, r1 + adds r0, r1, #0 + adds r0, r0, r6 + movs r1, #0xb + movs r2, #0 + bl GetMonData + adds r6, r0, #0 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + ldr r2, _0817F03C + ldrb r0, [r2] + lsls r0, r0, #1 + add r0, r8 + ldrh r0, [r0] + mov r3, sb + muls r3, r0, r3 + adds r0, r3, #0 + ldr r1, _0817F078 + adds r0, r0, r1 + movs r1, #0xb + movs r2, #0 + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r4, _0817F03C + ldrb r3, [r4] + mov r2, sl + adds r0, r3, r2 + ldrb r2, [r0] + movs r0, #0x58 + adds r4, r3, #0 + muls r4, r0, r4 + ldr r5, _0817F07C + adds r3, r4, r5 + lsls r0, r7, #1 + adds r0, r0, r4 + adds r0, r0, r5 + ldrh r0, [r0] + str r0, [sp] + adds r0, r6, #0 + bl sub_080EEE7C + b _0817F088 + .align 2, 0 +_0817F034: .4byte 0x02022C90 +_0817F038: .4byte 0x02000003 +_0817F03C: .4byte 0x02023EAF +_0817F040: .4byte 0x02023D28 +_0817F044: .4byte 0x02023EB0 +_0817F048: .4byte 0x02023E8E +_0817F04C: .4byte 0x00000137 +_0817F050: .4byte 0x082ED220 +_0817F054: .4byte 0x02024154 +_0817F058: .4byte 0x085D2F0C +_0817F05C: .4byte 0x0000FFFF +_0817F060: .4byte 0x02023E94 +_0817F064: .4byte 0x02023F32 +_0817F068: .4byte 0x02023F50 +_0817F06C: .4byte 0x02023FE0 +_0817F070: .4byte 0x02023D12 +_0817F074: .4byte 0x020243E8 +_0817F078: .4byte 0x02024190 +_0817F07C: .4byte 0x02023D34 +_0817F080: + adds r5, #1 + cmp r5, #3 + bgt _0817F088 + b _0817EF78 +_0817F088: + ldr r2, _0817F0B8 + ldr r1, _0817F0BC + ldr r0, _0817F0C0 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #2 + add r0, sp + adds r0, #0x10 + ldr r0, [r0] + str r0, [r2] + ldr r0, _0817F0C4 + mov r3, sp + ldrh r3, [r3, #0x24] + strh r3, [r0] +_0817F0A6: + add sp, #0x28 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0817F0B8: .4byte 0x02023E94 +_0817F0BC: .4byte 0x02024154 +_0817F0C0: .4byte 0x02023EAF +_0817F0C4: .4byte 0x02023E8E + thumb_func_end TrySetBattleSeminarShow + + thumb_func_start ShouldCalculateDamage +ShouldCalculateDamage: @ 0x0817F0C8 + push {r4, r5, r6, r7, lr} + adds r6, r1, #0 + mov ip, r2 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r1, _0817F110 + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #1] + cmp r0, #0 + beq _0817F132 + movs r4, #0 + ldr r5, _0817F114 + ldr r7, _0817F118 + adds r3, r5, #0 + adds r1, r5, #0 +_0817F0EC: + ldrh r0, [r1] + cmp r2, r0 + beq _0817F0FE + adds r3, #2 + adds r1, #2 + adds r4, #1 + ldrh r0, [r3] + cmp r0, r7 + bne _0817F0EC +_0817F0FE: + lsls r0, r4, #1 + adds r0, r0, r5 + ldrh r1, [r0] + ldr r0, _0817F118 + cmp r1, r0 + beq _0817F11C + movs r0, #0 + str r0, [r6] + b _0817F14C + .align 2, 0 +_0817F110: .4byte 0x082ED220 +_0817F114: .4byte 0x085D2F0C +_0817F118: .4byte 0x0000FFFF +_0817F11C: + cmp r2, #0x95 + bne _0817F140 + ldr r2, _0817F138 + ldr r0, _0817F13C + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + adds r0, #0x2a + ldrb r0, [r0] + asrs r0, r0, #1 +_0817F132: + str r0, [r6] + movs r0, #0 + b _0817F14C + .align 2, 0 +_0817F138: .4byte 0x02023D28 +_0817F13C: .4byte 0x02023EAF +_0817F140: + cmp r2, #0xde + bne _0817F14A + movs r0, #0xa + mov r1, ip + strh r0, [r1] +_0817F14A: + movs r0, #1 +_0817F14C: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ShouldCalculateDamage + + thumb_func_start BattleTv_ClearExplosionFaintCause +BattleTv_ClearExplosionFaintCause: @ 0x0817F154 + push {r4, r5, lr} + ldr r0, _0817F1D8 + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _0817F1D0 + ldr r0, _0817F1DC + ldr r3, [r0] + ldr r0, _0817F1E0 + adds r4, r3, r0 + ldrb r2, [r4] + subs r1, #0x21 + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4] + ldr r0, _0817F1E4 + adds r2, r3, r0 + ldrb r0, [r2] + ands r1, r0 + strb r1, [r2] + ldrb r5, [r4] + movs r1, #0x1f + adds r0, r1, #0 + ands r0, r5 + strb r0, [r4] + ldrb r0, [r2] + ands r1, r0 + strb r1, [r2] + movs r0, #0x97 + lsls r0, r0, #2 + adds r4, r3, r0 + ldrb r2, [r4] + movs r1, #0x39 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4] + movs r0, #0x9a + lsls r0, r0, #2 + adds r3, r3, r0 + ldrb r0, [r3] + ands r1, r0 + strb r1, [r3] + ldrb r2, [r4] + movs r1, #7 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4] + ldrb r0, [r3] + ands r1, r0 + strb r1, [r3] + ldrb r2, [r4] + movs r1, #2 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4] + ldrb r0, [r3] + ands r1, r0 + strb r1, [r3] +_0817F1D0: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0817F1D8: .4byte 0x02022C90 +_0817F1DC: .4byte 0x02024140 +_0817F1E0: .4byte 0x0000025B +_0817F1E4: .4byte 0x00000267 + thumb_func_end BattleTv_ClearExplosionFaintCause + + thumb_func_start GetBattlerMoveSlotId +GetBattlerMoveSlotId: @ 0x0817F1E8 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + adds r0, r5, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + ldr r6, _0817F20C + cmp r0, #0 + bne _0817F202 + ldr r6, _0817F210 +_0817F202: + movs r4, #0 + ldr r1, _0817F214 + lsls r0, r5, #1 + adds r5, r0, r1 + b _0817F21A + .align 2, 0 +_0817F20C: .4byte 0x020243E8 +_0817F210: .4byte 0x02024190 +_0817F214: .4byte 0x02023D12 +_0817F218: + adds r4, #1 +_0817F21A: + cmp r4, #3 + bgt _0817F234 + ldrh r1, [r5] + movs r0, #0x64 + muls r0, r1, r0 + adds r0, r6, r0 + adds r1, r4, #0 + adds r1, #0xd + movs r2, #0 + bl GetMonData + cmp r0, r7 + bne _0817F218 +_0817F234: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetBattlerMoveSlotId + + thumb_func_start AddPointsBasedOnWeather +AddPointsBasedOnWeather: @ 0x0817F240 + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + adds r4, r3, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r6, r1, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r5, r2, #0 + movs r0, #7 + ands r0, r3 + cmp r0, #0 + beq _0817F260 + movs r0, #3 + b _0817F276 +_0817F260: + movs r0, #0x60 + ands r0, r3 + cmp r0, #0 + beq _0817F26C + movs r0, #4 + b _0817F276 +_0817F26C: + movs r0, #0x18 + ands r0, r3 + cmp r0, #0 + beq _0817F27E + movs r0, #5 +_0817F276: + movs r3, #0 + bl AddMovePoints + b _0817F292 +_0817F27E: + movs r0, #0x80 + ands r4, r0 + cmp r4, #0 + beq _0817F292 + movs r0, #6 + adds r1, r6, #0 + adds r2, r5, #0 + movs r3, #0 + bl AddMovePoints +_0817F292: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end AddPointsBasedOnWeather + diff --git a/asm/battle_util.s b/asm/battle_util.s new file mode 100644 index 0000000..88dc6d1 --- /dev/null +++ b/asm/battle_util.s @@ -0,0 +1,13131 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start GetBattlerForBattleScript +GetBattlerForBattleScript: @ 0x0803F00C + push {lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r0, #0 + cmp r1, #0xe + bhi _0803F0BA + lsls r0, r1, #2 + ldr r1, _0803F024 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803F024: .4byte 0x0803F028 +_0803F028: @ jump table + .4byte _0803F064 @ case 0 + .4byte _0803F070 @ case 1 + .4byte _0803F07C @ case 2 + .4byte _0803F098 @ case 3 + .4byte _0803F0A4 @ case 4 + .4byte _0803F098 @ case 5 + .4byte _0803F0A4 @ case 6 + .4byte _0803F088 @ case 7 + .4byte _0803F0A4 @ case 8 + .4byte _0803F0A4 @ case 9 + .4byte _0803F08C @ case 10 + .4byte _0803F0A4 @ case 11 + .4byte _0803F0A8 @ case 12 + .4byte _0803F0AC @ case 13 + .4byte _0803F0B0 @ case 14 +_0803F064: + ldr r0, _0803F06C + ldrb r0, [r0] + b _0803F0BA + .align 2, 0 +_0803F06C: .4byte 0x02023EB0 +_0803F070: + ldr r0, _0803F078 + ldrb r0, [r0] + b _0803F0BA + .align 2, 0 +_0803F078: .4byte 0x02023EAF +_0803F07C: + ldr r0, _0803F084 + ldrb r0, [r0] + b _0803F0BA + .align 2, 0 +_0803F084: .4byte 0x02023EB2 +_0803F088: + movs r0, #0 + b _0803F0BA +_0803F08C: + ldr r0, _0803F094 + ldrb r0, [r0, #0x17] + b _0803F0BA + .align 2, 0 +_0803F094: .4byte 0x02024118 +_0803F098: + ldr r0, _0803F0A0 + ldrb r0, [r0] + b _0803F0BA + .align 2, 0 +_0803F0A0: .4byte 0x02023EB1 +_0803F0A4: + movs r0, #0 + b _0803F0B2 +_0803F0A8: + movs r0, #1 + b _0803F0B2 +_0803F0AC: + movs r0, #2 + b _0803F0B2 +_0803F0B0: + movs r0, #3 +_0803F0B2: + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_0803F0BA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetBattlerForBattleScript + + thumb_func_start PressurePPLose +PressurePPLose: @ 0x0803F0C0 + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldr r1, _0803F0F0 + movs r4, #0x58 + muls r0, r4, r0 + adds r0, r0, r1 + adds r0, #0x20 + ldrb r0, [r0] + mov ip, r1 + cmp r0, #0x2e + bne _0803F172 + movs r3, #0 + adds r0, r5, #0 + muls r0, r4, r0 + adds r1, #0xc + adds r1, r0, r1 + b _0803F0FC + .align 2, 0 +_0803F0F0: .4byte 0x02023D28 +_0803F0F4: + adds r1, #2 + adds r3, #1 + cmp r3, #3 + bgt _0803F102 +_0803F0FC: + ldrh r0, [r1] + cmp r0, r2 + bne _0803F0F4 +_0803F102: + cmp r3, #4 + beq _0803F172 + movs r7, #0x58 + adds r2, r5, #0 + muls r2, r7, r2 + adds r0, r3, r2 + mov r6, ip + adds r6, #0x24 + adds r1, r0, r6 + ldrb r0, [r1] + cmp r0, #0 + beq _0803F11E + subs r0, #1 + strb r0, [r1] +_0803F11E: + mov r0, ip + adds r0, #0x50 + adds r0, r2, r0 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xe + ands r0, r1 + cmp r0, #0 + bne _0803F172 + ldr r1, _0803F17C + lsls r0, r5, #3 + subs r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #0x18] + lsrs r1, r1, #4 + ldr r2, _0803F180 + lsls r0, r3, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _0803F172 + ldr r4, _0803F184 + strb r5, [r4] + adds r1, r3, #0 + adds r1, #9 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrb r0, [r4] + muls r0, r7, r0 + adds r0, r0, r6 + adds r0, r0, r3 + str r0, [sp] + movs r0, #0 + movs r2, #0 + movs r3, #1 + bl BtlController_EmitSetMonData + ldrb r0, [r4] + bl MarkBattlerForControllerExec +_0803F172: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0803F17C: .4byte 0x02023F60 +_0803F180: .4byte 0x082FACB4 +_0803F184: .4byte 0x02023D08 + thumb_func_end PressurePPLose + + thumb_func_start PressurePPLoseOnUsingImprison +PressurePPLoseOnUsingImprison: @ 0x0803F188 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r0, #4 + mov r8, r0 + adds r0, r5, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + movs r4, #0 + ldr r0, _0803F2A8 + ldrb r0, [r0] + cmp r4, r0 + bge _0803F230 + ldr r1, _0803F2AC + movs r0, #0x58 + adds r7, r5, #0 + muls r7, r0, r7 + adds r1, #0xc + mov sl, r1 +_0803F1BE: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r4, #1 + cmp sb, r0 + beq _0803F226 + ldr r0, _0803F2AC + movs r3, #0x58 + adds r1, r4, #0 + muls r1, r3, r1 + adds r1, r1, r0 + adds r1, #0x20 + ldrb r1, [r1] + adds r4, r0, #0 + cmp r1, #0x2e + bne _0803F226 + movs r2, #0 + adds r0, r5, #0 + muls r0, r3, r0 + adds r1, r4, #0 + adds r1, #0xc + adds r0, r0, r1 + ldrh r0, [r0] + movs r1, #0x8f + lsls r1, r1, #1 + cmp r0, r1 + beq _0803F20E + adds r3, r1, #0 + mov r0, sl + adds r1, r7, r0 +_0803F200: + adds r1, #2 + adds r2, #1 + cmp r2, #3 + bgt _0803F20E + ldrh r0, [r1] + cmp r0, r3 + bne _0803F200 +_0803F20E: + cmp r2, #4 + beq _0803F226 + mov r8, r2 + adds r1, r2, r7 + adds r0, r4, #0 + adds r0, #0x24 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0 + beq _0803F226 + subs r0, #1 + strb r0, [r1] +_0803F226: + adds r4, r6, #0 + ldr r0, _0803F2A8 + ldrb r0, [r0] + cmp r4, r0 + blt _0803F1BE +_0803F230: + mov r1, r8 + cmp r1, #4 + beq _0803F298 + ldr r6, _0803F2AC + movs r3, #0x58 + adds r0, r5, #0 + muls r0, r3, r0 + adds r1, r6, #0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xe + ands r0, r1 + cmp r0, #0 + bne _0803F298 + ldr r1, _0803F2B0 + lsls r0, r5, #3 + subs r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #0x18] + lsrs r1, r1, #4 + ldr r2, _0803F2B4 + mov r4, r8 + lsls r0, r4, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _0803F298 + ldr r4, _0803F2B8 + strb r5, [r4] + mov r1, r8 + adds r1, #9 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrb r0, [r4] + muls r0, r3, r0 + adds r2, r6, #0 + adds r2, #0x24 + adds r0, r0, r2 + add r0, r8 + str r0, [sp] + movs r0, #0 + movs r2, #0 + movs r3, #1 + bl BtlController_EmitSetMonData + ldrb r0, [r4] + bl MarkBattlerForControllerExec +_0803F298: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0803F2A8: .4byte 0x02023D10 +_0803F2AC: .4byte 0x02023D28 +_0803F2B0: .4byte 0x02023F60 +_0803F2B4: .4byte 0x082FACB4 +_0803F2B8: .4byte 0x02023D08 + thumb_func_end PressurePPLoseOnUsingImprison + + thumb_func_start PressurePPLoseOnUsingPerishSong +PressurePPLoseOnUsingPerishSong: @ 0x0803F2BC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + movs r6, #4 + movs r1, #0 + ldr r0, _0803F3B4 + mov r8, r0 + ldrb r0, [r0] + cmp r1, r0 + bge _0803F33E + ldr r7, _0803F3B8 + movs r2, #0x58 + mov ip, r2 + mov r5, ip + muls r5, r3, r5 + adds r0, r7, #0 + adds r0, #0xc + adds r2, r5, r0 + mov sl, r2 + mov sb, r5 +_0803F2EE: + mov r0, ip + muls r0, r1, r0 + adds r0, r0, r7 + adds r0, #0x20 + ldrb r0, [r0] + adds r4, r1, #1 + cmp r0, #0x2e + bne _0803F334 + cmp r1, r3 + beq _0803F334 + movs r2, #0 + mov r1, sl + ldrh r0, [r1] + cmp r0, #0xc3 + beq _0803F31E + ldr r1, _0803F3BC + add r1, sb +_0803F310: + adds r1, #2 + adds r2, #1 + cmp r2, #3 + bgt _0803F31E + ldrh r0, [r1] + cmp r0, #0xc3 + bne _0803F310 +_0803F31E: + cmp r2, #4 + beq _0803F334 + adds r6, r2, #0 + adds r0, r6, r5 + ldr r2, _0803F3C0 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, #0 + beq _0803F334 + subs r0, #1 + strb r0, [r1] +_0803F334: + adds r1, r4, #0 + mov r0, r8 + ldrb r0, [r0] + cmp r1, r0 + blt _0803F2EE +_0803F33E: + cmp r6, #4 + beq _0803F3A2 + ldr r7, _0803F3B8 + movs r5, #0x58 + adds r0, r3, #0 + muls r0, r5, r0 + adds r1, r7, #0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xe + ands r0, r1 + cmp r0, #0 + bne _0803F3A2 + ldr r1, _0803F3C4 + lsls r0, r3, #3 + subs r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #0x18] + lsrs r1, r1, #4 + ldr r2, _0803F3C8 + lsls r0, r6, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _0803F3A2 + ldr r4, _0803F3CC + strb r3, [r4] + adds r1, r6, #0 + adds r1, #9 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrb r0, [r4] + muls r0, r5, r0 + adds r2, r7, #0 + adds r2, #0x24 + adds r0, r0, r2 + adds r0, r0, r6 + str r0, [sp] + movs r0, #0 + movs r2, #0 + movs r3, #1 + bl BtlController_EmitSetMonData + ldrb r0, [r4] + bl MarkBattlerForControllerExec +_0803F3A2: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0803F3B4: .4byte 0x02023D10 +_0803F3B8: .4byte 0x02023D28 +_0803F3BC: .4byte 0x02023D34 +_0803F3C0: .4byte 0x02023D4C +_0803F3C4: .4byte 0x02023F60 +_0803F3C8: .4byte 0x082FACB4 +_0803F3CC: .4byte 0x02023D08 + thumb_func_end PressurePPLoseOnUsingPerishSong + + thumb_func_start MarkAllBattlersForControllerExec +MarkAllBattlersForControllerExec: @ 0x0803F3D0 + push {r4, r5, lr} + ldr r0, _0803F400 + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _0803F410 + movs r2, #0 + ldr r4, _0803F404 + ldrb r0, [r4] + cmp r2, r0 + bge _0803F42E + ldr r3, _0803F408 + ldr r5, _0803F40C +_0803F3EC: + ldm r5!, {r1} + lsls r1, r1, #0x1c + ldr r0, [r3] + orrs r0, r1 + str r0, [r3] + adds r2, #1 + ldrb r0, [r4] + cmp r2, r0 + blt _0803F3EC + b _0803F42E + .align 2, 0 +_0803F400: .4byte 0x02022C90 +_0803F404: .4byte 0x02023D10 +_0803F408: .4byte 0x02023D0C +_0803F40C: .4byte 0x082FACB4 +_0803F410: + movs r2, #0 + ldr r4, _0803F434 + ldrb r0, [r4] + cmp r2, r0 + bge _0803F42E + ldr r3, _0803F438 + ldr r5, _0803F43C +_0803F41E: + ldr r0, [r3] + ldm r5!, {r1} + orrs r0, r1 + str r0, [r3] + adds r2, #1 + ldrb r0, [r4] + cmp r2, r0 + blt _0803F41E +_0803F42E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0803F434: .4byte 0x02023D10 +_0803F438: .4byte 0x02023D0C +_0803F43C: .4byte 0x082FACB4 + thumb_func_end MarkAllBattlersForControllerExec + + thumb_func_start MarkBattlerForControllerExec +MarkBattlerForControllerExec: @ 0x0803F440 + push {lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r0, _0803F468 + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _0803F474 + ldr r2, _0803F46C + ldr r1, _0803F470 + lsls r0, r3, #2 + adds r0, r0, r1 + ldr r1, [r0] + lsls r1, r1, #0x1c + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + b _0803F484 + .align 2, 0 +_0803F468: .4byte 0x02022C90 +_0803F46C: .4byte 0x02023D0C +_0803F470: .4byte 0x082FACB4 +_0803F474: + ldr r2, _0803F488 + ldr r1, _0803F48C + lsls r0, r3, #2 + adds r0, r0, r1 + ldr r1, [r2] + ldr r0, [r0] + orrs r1, r0 + str r1, [r2] +_0803F484: + pop {r0} + bx r0 + .align 2, 0 +_0803F488: .4byte 0x02023D0C +_0803F48C: .4byte 0x082FACB4 + thumb_func_end MarkBattlerForControllerExec + + thumb_func_start sub_0803F490 +sub_0803F490: @ 0x0803F490 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r4, #0 + ldr r5, _0803F4A4 + ldr r1, _0803F4A8 + lsls r0, r7, #2 + adds r6, r0, r1 + b _0803F4BA + .align 2, 0 +_0803F4A4: .4byte 0x02023D0C +_0803F4A8: .4byte 0x082FACB4 +_0803F4AC: + lsls r0, r4, #2 + ldr r1, [r6] + lsls r1, r0 + ldr r0, [r5] + orrs r0, r1 + str r0, [r5] + adds r4, #1 +_0803F4BA: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + blt _0803F4AC + ldr r2, _0803F4DC + movs r1, #0x80 + lsls r1, r1, #0x15 + lsls r1, r7 + ldr r0, [r2] + bics r0, r1 + str r0, [r2] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0803F4DC: .4byte 0x02023D0C + thumb_func_end sub_0803F490 + + thumb_func_start CancelMultiTurnMoves +CancelMultiTurnMoves: @ 0x0803F4E0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0803F530 + movs r2, #0x58 + adds r3, r0, #0 + muls r3, r2, r3 + adds r1, #0x50 + adds r3, r3, r1 + ldr r1, [r3] + ldr r2, _0803F534 + ands r1, r2 + ldr r2, _0803F538 + ands r1, r2 + movs r2, #0x71 + rsbs r2, r2, #0 + ands r1, r2 + ldr r2, _0803F53C + ands r1, r2 + str r1, [r3] + ldr r1, _0803F540 + lsls r2, r0, #2 + adds r2, r2, r1 + ldr r1, [r2] + ldr r3, _0803F544 + ands r1, r3 + str r1, [r2] + ldr r2, _0803F548 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r2, [r1, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #0x11] + movs r0, #0 + strb r0, [r1, #0x10] + bx lr + .align 2, 0 +_0803F530: .4byte 0x02023D28 +_0803F534: .4byte 0xFFFFEFFF +_0803F538: .4byte 0xFFFFF3FF +_0803F53C: .4byte 0xFFFFFCFF +_0803F540: .4byte 0x02023F50 +_0803F544: .4byte 0xFFFBFF3F +_0803F548: .4byte 0x02023F60 + thumb_func_end CancelMultiTurnMoves + + thumb_func_start WasUnableToUseMove +WasUnableToUseMove: @ 0x0803F54C + push {lr} + lsls r0, r0, #0x18 + ldr r1, _0803F598 + lsrs r0, r0, #0x14 + adds r1, r0, r1 + ldrb r0, [r1] + lsrs r0, r0, #7 + cmp r0, #0 + bne _0803F592 + ldrb r2, [r1, #1] + lsls r0, r2, #0x1e + cmp r0, #0 + blt _0803F592 + lsls r0, r2, #0x1a + cmp r0, #0 + blt _0803F592 + lsls r0, r2, #0x19 + cmp r0, #0 + blt _0803F592 + lsrs r0, r2, #7 + cmp r0, #0 + bne _0803F592 + ldrb r1, [r1, #2] + lsls r0, r1, #0x1f + cmp r0, #0 + bne _0803F592 + lsls r0, r1, #0x1e + cmp r0, #0 + blt _0803F592 + lsls r0, r1, #0x1d + cmp r0, #0 + blt _0803F592 + lsls r0, r2, #0x1f + cmp r0, #0 + beq _0803F59C +_0803F592: + movs r0, #1 + b _0803F59E + .align 2, 0 +_0803F598: .4byte 0x02023FE0 +_0803F59C: + movs r0, #0 +_0803F59E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end WasUnableToUseMove + + thumb_func_start PrepareStringBattle +PrepareStringBattle: @ 0x0803F5A4 + push {r4, lr} + adds r2, r0, #0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldr r4, _0803F5C4 + strb r1, [r4] + movs r0, #0 + adds r1, r2, #0 + bl BtlController_EmitPrintString + ldrb r0, [r4] + bl MarkBattlerForControllerExec + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803F5C4: .4byte 0x02023D08 + thumb_func_end PrepareStringBattle + + thumb_func_start ResetSentPokesToOpponentValue +ResetSentPokesToOpponentValue: @ 0x0803F5C8 + push {r4, r5, r6, lr} + movs r3, #0 + ldr r0, _0803F61C + strb r3, [r0] + strb r3, [r0, #1] + movs r1, #0 + ldr r0, _0803F620 + ldrb r2, [r0] + adds r6, r0, #0 + cmp r1, r2 + bge _0803F5F6 + ldr r5, _0803F624 + adds r4, r2, #0 + ldr r2, _0803F628 +_0803F5E4: + ldrh r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r0, [r0] + orrs r3, r0 + adds r2, #4 + adds r1, #2 + cmp r1, r4 + blt _0803F5E4 +_0803F5F6: + movs r1, #1 + adds r2, r6, #0 + ldrb r0, [r2] + cmp r1, r0 + bge _0803F616 + ldr r5, _0803F61C + movs r4, #2 +_0803F604: + adds r0, r1, #0 + ands r0, r4 + asrs r0, r0, #1 + adds r0, r0, r5 + strb r3, [r0] + adds r1, #2 + ldrb r0, [r2] + cmp r1, r0 + blt _0803F604 +_0803F616: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0803F61C: .4byte 0x020240A2 +_0803F620: .4byte 0x02023D10 +_0803F624: .4byte 0x082FACB4 +_0803F628: .4byte 0x02023D12 + thumb_func_end ResetSentPokesToOpponentValue + + thumb_func_start sub_0803F62C +sub_0803F62C: @ 0x0803F62C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r4, #0 + adds r0, r5, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0803F690 + movs r0, #2 + ands r0, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x19 + mov ip, r0 + ldr r1, _0803F69C + adds r0, r0, r1 + strb r4, [r0] + adds r5, r4, #0 + ldr r0, _0803F6A0 + ldrb r2, [r0] + mov r8, r1 + cmp r4, r2 + bge _0803F68A + ldr r0, _0803F6A4 + ldrb r7, [r0] + ldr r1, _0803F6A8 + adds r6, r2, #0 + ldr r3, _0803F6AC + adds r2, r1, #0 +_0803F66E: + ldr r0, [r2] + ands r0, r7 + cmp r0, #0 + bne _0803F680 + ldrh r0, [r3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + orrs r4, r0 +_0803F680: + adds r3, #4 + adds r2, #8 + adds r5, #2 + cmp r5, r6 + blt _0803F66E +_0803F68A: + mov r0, ip + add r0, r8 + strb r4, [r0] +_0803F690: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0803F69C: .4byte 0x020240A2 +_0803F6A0: .4byte 0x02023D10 +_0803F6A4: .4byte 0x02023EB4 +_0803F6A8: .4byte 0x082FACB4 +_0803F6AC: .4byte 0x02023D12 + thumb_func_end sub_0803F62C + + thumb_func_start sub_0803F6B0 +sub_0803F6B0: @ 0x0803F6B0 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0803F6CC + adds r0, r4, #0 + bl sub_0803F62C + b _0803F702 +_0803F6CC: + movs r3, #1 + ldr r5, _0803F708 + ldrb r0, [r5] + cmp r3, r0 + bge _0803F702 + ldr r0, _0803F70C + mov ip, r0 + movs r7, #2 + ldr r6, _0803F710 + ldr r1, _0803F714 + lsls r0, r4, #1 + adds r4, r0, r1 +_0803F6E4: + adds r2, r3, #0 + ands r2, r7 + asrs r2, r2, #1 + add r2, ip + ldrh r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + adds r3, #1 + ldrb r0, [r5] + cmp r3, r0 + blt _0803F6E4 +_0803F702: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0803F708: .4byte 0x02023D10 +_0803F70C: .4byte 0x020240A2 +_0803F710: .4byte 0x082FACB4 +_0803F714: .4byte 0x02023D12 + thumb_func_end sub_0803F6B0 + + thumb_func_start BattleScriptPush +BattleScriptPush: @ 0x0803F718 + push {r4, lr} + ldr r1, _0803F738 + ldr r1, [r1] + ldr r3, [r1, #8] + adds r4, r3, #0 + adds r4, #0x20 + ldrb r1, [r4] + adds r2, r1, #1 + strb r2, [r4] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x16 + adds r3, r3, r1 + str r0, [r3] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803F738: .4byte 0x0202414C + thumb_func_end BattleScriptPush + + thumb_func_start BattleScriptPushCursor +BattleScriptPushCursor: @ 0x0803F73C + ldr r0, _0803F75C + ldr r0, [r0] + ldr r2, [r0, #8] + adds r3, r2, #0 + adds r3, #0x20 + ldrb r0, [r3] + adds r1, r0, #1 + strb r1, [r3] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r2, r2, r0 + ldr r0, _0803F760 + ldr r0, [r0] + str r0, [r2] + bx lr + .align 2, 0 +_0803F75C: .4byte 0x0202414C +_0803F760: .4byte 0x02023EB8 + thumb_func_end BattleScriptPushCursor + + thumb_func_start HandleAction_RunBattleScript +HandleAction_RunBattleScript: @ 0x0803F764 + ldr r3, _0803F784 + ldr r0, _0803F788 + ldr r0, [r0] + ldr r1, [r0, #8] + adds r2, r1, #0 + adds r2, #0x20 + ldrb r0, [r2] + subs r0, #1 + strb r0, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r3] + bx lr + .align 2, 0 +_0803F784: .4byte 0x02023EB8 +_0803F788: .4byte 0x0202414C + thumb_func_end HandleAction_RunBattleScript + + thumb_func_start TrySetCantSelectMoveBattleScript +TrySetCantSelectMoveBattleScript: @ 0x0803F78C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r6, #0 + ldr r2, _0803F80C + ldr r1, _0803F810 + ldr r3, _0803F814 + ldrb r4, [r3] + lsls r0, r4, #9 + adds r1, #2 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #1 + movs r1, #0x58 + muls r1, r4, r1 + adds r0, r0, r1 + adds r2, #0xc + adds r0, r0, r2 + ldrh r5, [r0] + ldr r1, _0803F818 + lsls r0, r4, #1 + adds r0, #0xc8 + ldr r1, [r1] + adds r1, r1, r0 + mov r8, r1 + ldr r1, _0803F81C + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0, #4] + adds r7, r3, #0 + adds r3, r1, #0 + cmp r0, r5 + bne _0803F846 + cmp r5, #0 + beq _0803F846 + ldr r0, _0803F820 + strb r4, [r0, #0x17] + ldr r0, _0803F824 + strh r5, [r0] + ldr r0, _0803F828 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xa + ands r0, r1 + cmp r0, #0 + beq _0803F838 + ldr r1, _0803F82C + ldrb r0, [r7] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0803F830 + str r1, [r0] + ldr r0, _0803F834 + ldrb r1, [r7] + lsls r1, r1, #4 + adds r1, r1, r0 + ldrb r0, [r1, #2] + movs r2, #0x10 + orrs r0, r2 + strb r0, [r1, #2] + b _0803F846 + .align 2, 0 +_0803F80C: .4byte 0x02023D28 +_0803F810: .4byte 0x02023508 +_0803F814: .4byte 0x02023D08 +_0803F818: .4byte 0x02024140 +_0803F81C: .4byte 0x02023F60 +_0803F820: .4byte 0x02024118 +_0803F824: .4byte 0x02023E8E +_0803F828: .4byte 0x02022C90 +_0803F82C: .4byte 0x02023ED4 +_0803F830: .4byte 0x082893B2 +_0803F834: .4byte 0x02023FE0 +_0803F838: + ldr r0, _0803F89C + ldrb r1, [r7] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, _0803F8A0 + str r0, [r1] + movs r6, #1 +_0803F846: + ldr r1, _0803F8A4 + ldrb r2, [r7] + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r5, r0 + bne _0803F8D0 + cmp r5, #0xa5 + beq _0803F8D0 + ldr r1, _0803F8A8 + movs r0, #0x58 + muls r0, r2, r0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #0 + bge _0803F8D0 + adds r0, r2, #0 + bl CancelMultiTurnMoves + ldr r0, _0803F8AC + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xa + ands r0, r1 + cmp r0, #0 + beq _0803F8BC + ldr r1, _0803F8B0 + ldrb r0, [r7] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0803F8B4 + str r1, [r0] + ldr r0, _0803F8B8 + ldrb r1, [r7] + lsls r1, r1, #4 + adds r1, r1, r0 + ldrb r0, [r1, #2] + movs r2, #0x10 + orrs r0, r2 + strb r0, [r1, #2] + b _0803F8CE + .align 2, 0 +_0803F89C: .4byte 0x02023EC4 +_0803F8A0: .4byte 0x082893A7 +_0803F8A4: .4byte 0x02023EEC +_0803F8A8: .4byte 0x02023D28 +_0803F8AC: .4byte 0x02022C90 +_0803F8B0: .4byte 0x02023ED4 +_0803F8B4: .4byte 0x08289620 +_0803F8B8: .4byte 0x02023FE0 +_0803F8BC: + ldr r1, _0803F924 + ldrb r0, [r7] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0803F928 + str r1, [r0] + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_0803F8CE: + ldr r3, _0803F92C +_0803F8D0: + ldrb r0, [r7] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrb r0, [r1, #0x13] + lsls r0, r0, #0x1c + cmp r0, #0 + beq _0803F95A + ldr r0, _0803F930 + lsls r1, r5, #1 + adds r1, r1, r5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #1] + cmp r0, #0 + bne _0803F95A + ldr r0, _0803F934 + strh r5, [r0] + ldr r0, _0803F938 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xa + ands r0, r1 + cmp r0, #0 + beq _0803F948 + ldr r1, _0803F93C + ldrb r0, [r7] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0803F940 + str r1, [r0] + ldr r0, _0803F944 + ldrb r1, [r7] + lsls r1, r1, #4 + adds r1, r1, r0 + ldrb r0, [r1, #2] + movs r2, #0x10 + orrs r0, r2 + strb r0, [r1, #2] + b _0803F95A + .align 2, 0 +_0803F924: .4byte 0x02023EC4 +_0803F928: .4byte 0x08289611 +_0803F92C: .4byte 0x02023F60 +_0803F930: .4byte 0x082ED220 +_0803F934: .4byte 0x02023E8E +_0803F938: .4byte 0x02022C90 +_0803F93C: .4byte 0x02023ED4 +_0803F940: .4byte 0x08289637 +_0803F944: .4byte 0x02023FE0 +_0803F948: + ldr r1, _0803F99C + ldrb r0, [r7] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0803F9A0 + str r1, [r0] + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_0803F95A: + ldr r4, _0803F9A4 + ldrb r0, [r4] + adds r1, r5, #0 + bl GetImprisonedMovesCount + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0803F9CE + ldr r0, _0803F9A8 + strh r5, [r0] + ldr r0, _0803F9AC + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xa + ands r0, r1 + cmp r0, #0 + beq _0803F9BC + ldr r1, _0803F9B0 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0803F9B4 + str r1, [r0] + ldr r0, _0803F9B8 + ldrb r1, [r4] + lsls r1, r1, #4 + adds r1, r1, r0 + ldrb r0, [r1, #2] + movs r2, #0x10 + orrs r0, r2 + strb r0, [r1, #2] + b _0803F9CE + .align 2, 0 +_0803F99C: .4byte 0x02023EC4 +_0803F9A0: .4byte 0x08289628 +_0803F9A4: .4byte 0x02023D08 +_0803F9A8: .4byte 0x02023E8E +_0803F9AC: .4byte 0x02022C90 +_0803F9B0: .4byte 0x02023ED4 +_0803F9B4: .4byte 0x0828970D +_0803F9B8: .4byte 0x02023FE0 +_0803F9BC: + ldr r1, _0803F9F0 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0803F9F4 + str r1, [r0] + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_0803F9CE: + ldr r1, _0803F9F8 + ldr r0, _0803F9FC + ldrb r2, [r0] + movs r0, #0x58 + muls r0, r2, r0 + adds r1, r0, r1 + ldrh r0, [r1, #0x2e] + cmp r0, #0xaf + bne _0803FA04 + ldr r1, _0803FA00 + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r4, [r0, #7] + b _0803FA0E + .align 2, 0 +_0803F9F0: .4byte 0x02023EC4 +_0803F9F4: .4byte 0x08289709 +_0803F9F8: .4byte 0x02023D28 +_0803F9FC: .4byte 0x02023D08 +_0803FA00: .4byte 0x020240A8 +_0803FA04: + ldrh r0, [r1, #0x2e] + bl sub_080D6CF8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_0803FA0E: + ldr r2, _0803FA68 + ldr r1, _0803FA6C + ldrb r0, [r1] + strb r0, [r2] + ldr r0, _0803FA70 + mov ip, r0 + adds r7, r1, #0 + cmp r4, #0x1d + bne _0803FA98 + mov r0, r8 + ldrh r1, [r0] + adds r2, r1, #0 + cmp r2, #0 + beq _0803FA98 + ldr r0, _0803FA74 + cmp r2, r0 + beq _0803FA98 + cmp r2, r5 + beq _0803FA98 + ldr r0, _0803FA78 + strh r1, [r0] + ldr r2, _0803FA7C + ldrb r1, [r7] + movs r0, #0x58 + muls r0, r1, r0 + add r0, ip + ldrh r0, [r0, #0x2e] + strh r0, [r2] + ldr r0, _0803FA80 + ldr r1, [r0] + movs r0, #0x80 + lsls r0, r0, #0xa + ands r1, r0 + ldrb r2, [r7] + cmp r1, #0 + beq _0803FA88 + ldr r0, _0803FA84 + lsls r1, r2, #4 + adds r1, r1, r0 + ldrb r0, [r1, #2] + movs r2, #0x10 + orrs r0, r2 + strb r0, [r1, #2] + b _0803FA98 + .align 2, 0 +_0803FA68: .4byte 0x02023EB3 +_0803FA6C: .4byte 0x02023D08 +_0803FA70: .4byte 0x02023D28 +_0803FA74: .4byte 0x0000FFFF +_0803FA78: .4byte 0x02023E8E +_0803FA7C: .4byte 0x02023EAC +_0803FA80: .4byte 0x02022C90 +_0803FA84: .4byte 0x02023FE0 +_0803FA88: + ldr r1, _0803FAD4 + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r1, _0803FAD8 + str r1, [r0] + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_0803FA98: + ldr r0, _0803FADC + ldrb r3, [r7] + lsls r1, r3, #9 + adds r0, #2 + adds r1, r1, r0 + movs r0, #0x58 + muls r0, r3, r0 + ldrb r1, [r1] + adds r0, r0, r1 + mov r1, ip + adds r1, #0x24 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _0803FAF8 + ldr r0, _0803FAE0 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xa + ands r0, r1 + cmp r0, #0 + beq _0803FAE8 + ldr r0, _0803FAE4 + lsls r1, r3, #4 + adds r1, r1, r0 + ldrb r0, [r1, #2] + movs r2, #0x10 + orrs r0, r2 + strb r0, [r1, #2] + b _0803FAF8 + .align 2, 0 +_0803FAD4: .4byte 0x02023EC4 +_0803FAD8: .4byte 0x08289D9A +_0803FADC: .4byte 0x02023508 +_0803FAE0: .4byte 0x02022C90 +_0803FAE4: .4byte 0x02023FE0 +_0803FAE8: + ldr r1, _0803FB04 + lsls r0, r3, #2 + adds r0, r0, r1 + ldr r1, _0803FB08 + str r1, [r0] + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_0803FAF8: + adds r0, r6, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0803FB04: .4byte 0x02023EC4 +_0803FB08: .4byte 0x082895FE + thumb_func_end TrySetCantSelectMoveBattleScript + + thumb_func_start CheckMoveLimitations +CheckMoveLimitations: @ 0x0803FB0C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r3, r2, #0x18 + ldr r1, _0803FB50 + lsls r0, r7, #1 + adds r0, #0xc8 + ldr r1, [r1] + adds r1, r1, r0 + str r1, [sp, #4] + ldr r1, _0803FB54 + movs r0, #0x58 + muls r0, r7, r0 + adds r1, r0, r1 + ldrh r0, [r1, #0x2e] + cmp r0, #0xaf + bne _0803FB5C + ldr r2, _0803FB58 + lsls r1, r7, #3 + subs r0, r1, r7 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #7] + str r0, [sp] + b _0803FB6E + .align 2, 0 +_0803FB50: .4byte 0x02024140 +_0803FB54: .4byte 0x02023D28 +_0803FB58: .4byte 0x020240A8 +_0803FB5C: + ldrh r0, [r1, #0x2e] + str r3, [sp, #0x14] + bl sub_080D6CF8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + lsls r1, r7, #3 + ldr r3, [sp, #0x14] +_0803FB6E: + ldr r0, _0803FCE8 + strb r7, [r0] + movs r0, #0 + mov sb, r0 + lsls r2, r7, #1 + str r2, [sp, #0xc] + ldr r5, _0803FCEC + mov ip, r5 + ldr r0, _0803FCF0 + movs r2, #0x58 + adds r6, r7, #0 + muls r6, r2, r6 + str r6, [sp, #8] + ldr r2, _0803FCF4 + adds r5, r6, r2 + movs r6, #0 + str r6, [sp, #0x10] + mov sl, r0 + subs r0, r1, r7 + lsls r0, r0, #2 + mov r8, r0 + ldr r6, _0803FCF8 +_0803FB9A: + ldrh r0, [r5] + cmp r0, #0 + bne _0803FBB0 + movs r0, #1 + ands r0, r3 + cmp r0, #0 + beq _0803FBB0 + ldr r0, [r6] + orrs r4, r0 + lsls r0, r4, #0x18 + lsrs r4, r0, #0x18 +_0803FBB0: + ldr r0, [sp, #8] + add r0, sb + mov r1, sl + adds r1, #0x24 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _0803FBD0 + movs r0, #2 + ands r0, r3 + cmp r0, #0 + beq _0803FBD0 + ldr r0, [r6] + orrs r4, r0 + lsls r0, r4, #0x18 + lsrs r4, r0, #0x18 +_0803FBD0: + mov r1, r8 + add r1, ip + ldrh r0, [r5] + ldrh r1, [r1, #4] + cmp r0, r1 + bne _0803FBEC + movs r0, #4 + ands r0, r3 + cmp r0, #0 + beq _0803FBEC + ldr r0, [r6] + orrs r4, r0 + lsls r0, r4, #0x18 + lsrs r4, r0, #0x18 +_0803FBEC: + movs r0, #0x58 + adds r2, r7, #0 + muls r2, r0, r2 + ldr r1, [sp, #0x10] + adds r0, r1, r2 + ldr r1, _0803FCF4 + adds r0, r0, r1 + mov ip, r0 + ldr r1, _0803FCFC + ldr r0, [sp, #0xc] + adds r1, r0, r1 + str r1, [sp, #0x18] + mov r1, ip + ldrh r1, [r1] + mov ip, r1 + ldr r0, [sp, #0x18] + ldrh r0, [r0] + cmp ip, r0 + bne _0803FC2E + movs r0, #8 + ands r0, r3 + cmp r0, #0 + beq _0803FC2E + mov r0, sl + adds r0, #0x50 + adds r0, r2, r0 + ldr r0, [r0] + cmp r0, #0 + bge _0803FC2E + ldr r0, [r6] + orrs r4, r0 + lsls r0, r4, #0x18 + lsrs r4, r0, #0x18 +_0803FC2E: + ldr r0, _0803FCEC + add r0, r8 + ldrb r0, [r0, #0x13] + lsls r0, r0, #0x1c + cmp r0, #0 + beq _0803FC5C + movs r0, #0x10 + ands r0, r3 + cmp r0, #0 + beq _0803FC5C + ldr r2, _0803FD00 + ldrh r1, [r5] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #1] + cmp r0, #0 + bne _0803FC5C + ldr r0, [r6] + orrs r4, r0 + lsls r0, r4, #0x18 + lsrs r4, r0, #0x18 +_0803FC5C: + ldrh r1, [r5] + adds r0, r7, #0 + str r3, [sp, #0x14] + bl GetImprisonedMovesCount + lsls r0, r0, #0x18 + ldr r3, [sp, #0x14] + cmp r0, #0 + beq _0803FC7E + movs r0, #0x20 + ands r0, r3 + cmp r0, #0 + beq _0803FC7E + ldr r0, [r6] + orrs r4, r0 + lsls r0, r4, #0x18 + lsrs r4, r0, #0x18 +_0803FC7E: + ldr r1, _0803FCEC + mov r0, r8 + adds r2, r0, r1 + ldrb r0, [r2, #0xe] + lsls r0, r0, #0x1c + mov ip, r1 + cmp r0, #0 + beq _0803FC9E + ldrh r0, [r2, #6] + ldrh r1, [r5] + cmp r0, r1 + beq _0803FC9E + ldr r0, [r6] + orrs r4, r0 + lsls r0, r4, #0x18 + lsrs r4, r0, #0x18 +_0803FC9E: + ldr r2, [sp] + cmp r2, #0x1d + bne _0803FCC0 + ldr r0, [sp, #4] + ldrh r1, [r0] + cmp r1, #0 + beq _0803FCC0 + ldr r0, _0803FD04 + cmp r1, r0 + beq _0803FCC0 + ldrh r2, [r5] + cmp r1, r2 + beq _0803FCC0 + ldr r0, [r6] + orrs r4, r0 + lsls r0, r4, #0x18 + lsrs r4, r0, #0x18 +_0803FCC0: + adds r6, #4 + adds r5, #2 + ldr r0, [sp, #0x10] + adds r0, #2 + str r0, [sp, #0x10] + movs r1, #1 + add sb, r1 + mov r2, sb + cmp r2, #3 + bgt _0803FCD6 + b _0803FB9A +_0803FCD6: + adds r0, r4, #0 + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0803FCE8: .4byte 0x02023EB3 +_0803FCEC: .4byte 0x02023F60 +_0803FCF0: .4byte 0x02023D28 +_0803FCF4: .4byte 0x02023D34 +_0803FCF8: .4byte 0x082FACB4 +_0803FCFC: .4byte 0x02023EEC +_0803FD00: .4byte 0x082ED220 +_0803FD04: .4byte 0x0000FFFF + thumb_func_end CheckMoveLimitations + + thumb_func_start AreAllMovesUnusable +AreAllMovesUnusable: @ 0x0803FD08 + push {r4, lr} + ldr r4, _0803FD3C + ldrb r0, [r4] + movs r1, #0 + movs r2, #0xff + bl CheckMoveLimitations + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0xf + bne _0803FD4C + ldr r0, _0803FD40 + ldrb r1, [r4] + lsls r1, r1, #4 + adds r1, r1, r0 + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + ldr r1, _0803FD44 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _0803FD48 + str r1, [r0] + b _0803FD5E + .align 2, 0 +_0803FD3C: .4byte 0x02023D08 +_0803FD40: .4byte 0x02023FE0 +_0803FD44: .4byte 0x02023EC4 +_0803FD48: .4byte 0x082895FA +_0803FD4C: + ldr r0, _0803FD6C + ldrb r1, [r4] + lsls r1, r1, #4 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] +_0803FD5E: + movs r0, #0 + cmp r3, #0xf + bne _0803FD66 + movs r0, #1 +_0803FD66: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0803FD6C: .4byte 0x02023FE0 + thumb_func_end AreAllMovesUnusable + + thumb_func_start GetImprisonedMovesCount +GetImprisonedMovesCount: @ 0x0803FD70 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + movs r6, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + movs r4, #0 + ldr r0, _0803FE04 + ldrb r0, [r0] + cmp r6, r0 + bge _0803FDF4 + ldr r7, _0803FE08 + mov r8, r7 +_0803FD9A: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r3, r4, #1 + cmp sb, r0 + beq _0803FDEA + ldr r1, _0803FE0C + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #6 + ands r0, r1 + cmp r0, #0 + beq _0803FDEA + movs r2, #0 + movs r0, #0x58 + adds r1, r4, #0 + muls r1, r0, r1 + adds r0, r1, r7 + ldrh r0, [r0] + cmp r5, r0 + beq _0803FDE0 + mov r4, r8 + adds r0, r1, r4 +_0803FDD2: + adds r0, #2 + adds r2, #1 + cmp r2, #3 + bgt _0803FDEA + ldrh r1, [r0] + cmp r5, r1 + bne _0803FDD2 +_0803FDE0: + cmp r2, #3 + bgt _0803FDEA + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_0803FDEA: + adds r4, r3, #0 + ldr r0, _0803FE04 + ldrb r0, [r0] + cmp r4, r0 + blt _0803FD9A +_0803FDF4: + adds r0, r6, #0 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0803FE04: .4byte 0x02023D10 +_0803FE08: .4byte 0x02023D34 +_0803FE0C: .4byte 0x02023F50 + thumb_func_end GetImprisonedMovesCount + + thumb_func_start DoFieldEndTurnEffects +DoFieldEndTurnEffects: @ 0x0803FE10 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + movs r0, #0 + mov sb, r0 + ldr r1, _0803FEB4 + mov r2, sb + strb r2, [r1] + ldr r0, _0803FEB8 + ldrb r4, [r0] + adds r6, r1, #0 + mov sl, r0 + ldr r7, _0803FEBC + ldr r3, _0803FEC0 + mov ip, r3 + cmp sb, r4 + bhs _0803FE64 + ldr r2, _0803FEC4 + ldrb r1, [r2] + ldr r5, _0803FEC8 + ldr r0, [r5] + ands r1, r0 + cmp r1, #0 + beq _0803FE64 + adds r3, r6, #0 +_0803FE46: + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r4 + bhs _0803FE64 + ldrb r0, [r2] + ldrb r1, [r6] + lsls r1, r1, #2 + adds r1, r1, r5 + ldr r1, [r1] + ands r0, r1 + cmp r0, #0 + bne _0803FE46 +_0803FE64: + movs r0, #0 + strb r0, [r7] + mov r0, sl + ldrb r4, [r0] + cmp r4, #0 + beq _0803FE9E + ldr r2, _0803FEC4 + ldrb r1, [r2] + ldr r5, _0803FEC8 + ldr r0, [r5] + ands r1, r0 + cmp r1, #0 + beq _0803FE9E + adds r3, r7, #0 +_0803FE80: + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r4 + bhs _0803FE9E + ldrb r0, [r2] + ldrb r1, [r7] + lsls r1, r1, #2 + adds r1, r1, r5 + ldr r1, [r1] + ands r0, r1 + cmp r0, #0 + bne _0803FE80 +_0803FE9E: + mov r1, ip + ldr r0, [r1] + ldrb r0, [r0, #3] + cmp r0, #0xa + bls _0803FEAA + b _08040536 +_0803FEAA: + lsls r0, r0, #2 + ldr r1, _0803FECC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803FEB4: .4byte 0x02023EAF +_0803FEB8: .4byte 0x02023D10 +_0803FEBC: .4byte 0x02023EB0 +_0803FEC0: .4byte 0x02024140 +_0803FEC4: .4byte 0x02023EB4 +_0803FEC8: .4byte 0x082FACB4 +_0803FECC: .4byte 0x0803FED0 +_0803FED0: @ jump table + .4byte _0803FEFC @ case 0 + .4byte _0803FF82 @ case 1 + .4byte _08040048 @ case 2 + .4byte _08040114 @ case 3 + .4byte _080401F0 @ case 4 + .4byte _080402A8 @ case 5 + .4byte _0804035C @ case 6 + .4byte _080403E0 @ case 7 + .4byte _08040450 @ case 8 + .4byte _080404A8 @ case 9 + .4byte _0804052C @ case 10 +_0803FEFC: + movs r5, #0 + ldr r1, _0803FF1C + mov sl, r1 + ldrb r2, [r1] + cmp r5, r2 + bge _0803FF16 + ldr r2, _0803FF20 +_0803FF0A: + adds r0, r5, r2 + strb r5, [r0] + adds r5, #1 + ldrb r3, [r1] + cmp r5, r3 + blt _0803FF0A +_0803FF16: + movs r5, #0 + b _0803FF64 + .align 2, 0 +_0803FF1C: .4byte 0x02023D10 +_0803FF20: .4byte 0x02023D22 +_0803FF24: + adds r4, r5, #1 + adds r6, r4, #0 + ldrb r1, [r1] + cmp r6, r1 + bge _0803FF62 + ldr r7, _08040020 + ldr r0, _08040024 + mov sl, r0 + lsls r1, r5, #0x18 + mov r8, r1 +_0803FF38: + adds r0, r5, r7 + ldrb r0, [r0] + adds r1, r4, r7 + ldrb r1, [r1] + movs r2, #0 + bl GetWhoStrikesFirst + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0803FF58 + lsls r1, r4, #0x18 + lsrs r1, r1, #0x18 + mov r2, r8 + lsrs r0, r2, #0x18 + bl SwapTurnOrder +_0803FF58: + adds r4, #1 + ldr r0, _08040024 + ldrb r0, [r0] + cmp r4, r0 + blt _0803FF38 +_0803FF62: + adds r5, r6, #0 +_0803FF64: + mov r1, sl + ldrb r0, [r1] + subs r0, #1 + cmp r5, r0 + blt _0803FF24 + ldr r2, _08040028 + ldr r1, [r2] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + ldr r0, [r2] + adds r0, #0xdb + movs r1, #0 + strb r1, [r0] + mov ip, r2 +_0803FF82: + mov r1, ip + ldr r0, [r1] + adds r0, #0xdb + ldrb r0, [r0] + cmp r0, #1 + bls _0803FF90 + b _0804026C +_0803FF90: + ldr r3, _0804002C + mov r8, r3 + movs r7, #0 + ldr r6, _08040030 + ldr r5, _08040034 +_0803FF9A: + ldr r0, [r1] + adds r0, #0xdb + ldrb r4, [r0] + ldr r2, _08040038 + lsls r1, r4, #1 + adds r0, r1, r4 + lsls r0, r0, #2 + adds r2, r0, r2 + ldrb r0, [r2, #1] + strb r0, [r6] + mov r3, r8 + strb r0, [r3] + ldr r0, _0804003C + adds r3, r1, r0 + ldrh r1, [r3] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0803FFFC + ldrb r0, [r2] + subs r0, #1 + strb r0, [r2] + movs r4, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803FFFC + ldrh r0, [r3] + ldr r2, _08040040 + adds r1, r2, #0 + ands r0, r1 + strh r0, [r3] + ldr r0, _08040044 + bl BattleScriptExecute + movs r0, #0xfd + strb r0, [r5] + movs r0, #2 + strb r0, [r5, #1] + movs r0, #0x73 + strb r0, [r5, #2] + strb r7, [r5, #3] + ldrb r0, [r5, #4] + orrs r0, r4 + strb r0, [r5, #4] + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 +_0803FFFC: + ldr r2, _08040028 + ldr r1, [r2] + adds r1, #0xdb + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + mov ip, r2 + mov r3, sb + cmp r3, #0 + beq _08040012 + b _0804053E +_08040012: + mov r1, ip + ldr r0, [r1] + adds r0, #0xdb + ldrb r0, [r0] + cmp r0, #1 + bls _0803FF9A + b _0804026C + .align 2, 0 +_08040020: .4byte 0x02023D22 +_08040024: .4byte 0x02023D10 +_08040028: .4byte 0x02024140 +_0804002C: .4byte 0x02023D08 +_08040030: .4byte 0x02023EAF +_08040034: .4byte 0x02022C0C +_08040038: .4byte 0x02023F38 +_0804003C: .4byte 0x02023F32 +_08040040: .4byte 0x0000FFFE +_08040044: .4byte 0x08289282 +_08040048: + mov r1, ip + ldr r0, [r1] + adds r0, #0xdb + ldrb r0, [r0] + cmp r0, #1 + bls _08040056 + b _080401B0 +_08040056: + movs r0, #2 + mov sl, r0 + movs r2, #0 + mov r8, r2 + ldr r7, _080400F0 + ldr r5, _080400F4 +_08040062: + ldr r0, [r1] + adds r0, #0xdb + ldrb r4, [r0] + ldr r2, _080400F8 + lsls r1, r4, #1 + adds r0, r1, r4 + lsls r0, r0, #2 + adds r2, r0, r2 + ldrb r0, [r2, #3] + strb r0, [r7] + ldr r3, _080400FC + strb r0, [r3] + ldr r0, _08040100 + adds r3, r1, r0 + ldrh r1, [r3] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080400CA + ldrb r0, [r2, #2] + subs r0, #1 + strb r0, [r2, #2] + movs r6, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080400CA + ldrh r0, [r3] + ldr r2, _08040104 + adds r1, r2, #0 + ands r0, r1 + strh r0, [r3] + ldr r0, _08040108 + bl BattleScriptExecute + ldr r0, _0804010C + strb r4, [r0, #5] + movs r0, #0xfd + strb r0, [r5] + mov r3, sl + strb r3, [r5, #1] + movs r0, #0x71 + strb r0, [r5, #2] + mov r0, r8 + strb r0, [r5, #3] + ldrb r0, [r5, #4] + orrs r0, r6 + strb r0, [r5, #4] + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 +_080400CA: + ldr r2, _08040110 + ldr r1, [r2] + adds r1, #0xdb + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + mov ip, r2 + mov r1, sb + cmp r1, #0 + beq _080400E0 + b _0804053E +_080400E0: + mov r1, ip + ldr r0, [r1] + adds r0, #0xdb + ldrb r0, [r0] + cmp r0, #1 + bls _08040062 + b _080401B0 + .align 2, 0 +_080400F0: .4byte 0x02023EAF +_080400F4: .4byte 0x02022C0C +_080400F8: .4byte 0x02023F38 +_080400FC: .4byte 0x02023D08 +_08040100: .4byte 0x02023F32 +_08040104: .4byte 0x0000FFFD +_08040108: .4byte 0x08289282 +_0804010C: .4byte 0x02023FD6 +_08040110: .4byte 0x02024140 +_08040114: + mov r1, ip + ldr r0, [r1] + adds r0, #0xdb + ldrb r0, [r0] + cmp r0, #1 + bhi _080401B0 + ldr r0, _080401CC + mov sl, r0 + movs r2, #0 + mov r8, r2 + ldr r7, _080401D0 + ldr r5, _080401D4 +_0804012C: + ldr r0, [r1] + adds r0, #0xdb + ldrb r4, [r0] + ldr r1, _080401D8 + lsls r3, r4, #1 + adds r0, r3, r4 + lsls r0, r0, #2 + adds r1, r0, r1 + ldrb r0, [r1, #5] + strb r0, [r7] + mov r2, sl + strb r0, [r2] + ldrb r0, [r1, #4] + cmp r0, #0 + beq _0804018E + subs r0, #1 + strb r0, [r1, #4] + movs r6, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804018E + ldr r2, _080401DC + adds r2, r3, r2 + ldrh r0, [r2] + ldr r3, _080401E0 + adds r1, r3, #0 + ands r0, r1 + strh r0, [r2] + ldr r0, _080401E4 + bl BattleScriptExecute + ldr r0, _080401E8 + strb r4, [r0, #5] + movs r0, #0xfd + strb r0, [r5] + movs r0, #2 + strb r0, [r5, #1] + movs r0, #0x36 + strb r0, [r5, #2] + mov r0, r8 + strb r0, [r5, #3] + ldrb r0, [r5, #4] + orrs r0, r6 + strb r0, [r5, #4] + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 +_0804018E: + ldr r2, _080401EC + ldr r1, [r2] + adds r1, #0xdb + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + mov ip, r2 + mov r1, sb + cmp r1, #0 + beq _080401A4 + b _0804053E +_080401A4: + mov r1, ip + ldr r0, [r1] + adds r0, #0xdb + ldrb r0, [r0] + cmp r0, #1 + bls _0804012C +_080401B0: + mov r2, sb + cmp r2, #0 + beq _080401B8 + b _0804053E +_080401B8: + mov r3, ip + ldr r0, [r3] + ldrb r1, [r0, #3] + adds r1, #1 + strb r1, [r0, #3] + ldr r0, [r3] + adds r0, #0xdb + strb r2, [r0] + b _08040536 + .align 2, 0 +_080401CC: .4byte 0x02023D08 +_080401D0: .4byte 0x02023EAF +_080401D4: .4byte 0x02022C0C +_080401D8: .4byte 0x02023F38 +_080401DC: .4byte 0x02023F32 +_080401E0: .4byte 0x0000FEFF +_080401E4: .4byte 0x08289282 +_080401E8: .4byte 0x02023FD6 +_080401EC: .4byte 0x02024140 +_080401F0: + mov r1, ip + ldr r0, [r1] + adds r0, #0xdb + ldrb r0, [r0] + cmp r0, #1 + bhi _0804026C + ldr r6, _0804028C + ldr r5, _08040290 +_08040200: + ldr r0, [r1] + adds r0, #0xdb + ldrb r4, [r0] + ldr r2, _08040294 + lsls r1, r4, #1 + adds r0, r1, r4 + lsls r0, r0, #2 + adds r2, r0, r2 + ldrb r0, [r2, #7] + strb r0, [r5] + strb r0, [r6] + ldr r0, _08040298 + adds r3, r1, r0 + ldrh r1, [r3] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0804024A + ldrb r0, [r2, #6] + subs r0, #1 + strb r0, [r2, #6] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804024A + ldrh r0, [r3] + ldr r2, _0804029C + adds r1, r2, #0 + ands r0, r1 + strh r0, [r3] + ldr r0, _080402A0 + bl BattleScriptExecute + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 +_0804024A: + ldr r2, _080402A4 + ldr r1, [r2] + adds r1, #0xdb + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + mov ip, r2 + mov r3, sb + cmp r3, #0 + beq _08040260 + b _0804053E +_08040260: + mov r1, ip + ldr r0, [r1] + adds r0, #0xdb + ldrb r0, [r0] + cmp r0, #1 + bls _08040200 +_0804026C: + mov r0, sb + cmp r0, #0 + beq _08040274 + b _0804053E +_08040274: + mov r1, ip + ldr r0, [r1] + ldrb r1, [r0, #3] + adds r1, #1 + strb r1, [r0, #3] + mov r2, ip + ldr r0, [r2] + adds r0, #0xdb + mov r3, sb + strb r3, [r0] + b _08040536 + .align 2, 0 +_0804028C: .4byte 0x02023D08 +_08040290: .4byte 0x02023EAF +_08040294: .4byte 0x02023F38 +_08040298: .4byte 0x02023F32 +_0804029C: .4byte 0x0000FFDF +_080402A0: .4byte 0x08289293 +_080402A4: .4byte 0x02024140 +_080402A8: + mov r2, ip + ldr r0, [r2] + adds r0, #0xdb + ldr r1, _0804033C + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bhs _08040328 + ldr r4, _08040340 + ldr r5, _08040344 +_080402BC: + ldr r0, [r2] + adds r0, #0xdb + ldrb r0, [r0] + adds r0, r0, r5 + ldrb r0, [r0] + strb r0, [r4] + ldr r0, _08040348 + adds r0, #0x20 + ldrb r2, [r4] + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, #0 + beq _08040304 + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08040304 + ldr r1, _0804034C + ldrb r2, [r4] + movs r0, #0x58 + muls r0, r2, r0 + adds r0, r0, r1 + ldrh r0, [r0, #0x28] + cmp r0, #0 + beq _08040304 + ldr r0, _08040350 + strb r2, [r0] + ldr r0, _08040354 + bl BattleScriptExecute + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 +_08040304: + ldr r2, _08040358 + ldr r1, [r2] + adds r1, #0xdb + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + mov ip, r2 + mov r3, sb + cmp r3, #0 + beq _0804031A + b _0804053E +_0804031A: + ldr r0, [r2] + adds r0, #0xdb + ldr r1, _0804033C + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + blo _080402BC +_08040328: + mov r0, sb + cmp r0, #0 + beq _08040330 + b _0804053E +_08040330: + mov r2, ip + ldr r1, [r2] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + b _08040536 + .align 2, 0 +_0804033C: .4byte 0x02023D10 +_08040340: .4byte 0x02023D08 +_08040344: .4byte 0x02023D22 +_08040348: .4byte 0x02024074 +_0804034C: .4byte 0x02023D28 +_08040350: .4byte 0x02023EB0 +_08040354: .4byte 0x0828963F +_08040358: .4byte 0x02024140 +_0804035C: + ldr r3, _08040394 + ldrh r2, [r3] + movs r0, #7 + ands r0, r2 + cmp r0, #0 + bne _0804036A + b _08040508 +_0804036A: + movs r0, #4 + ands r0, r2 + cmp r0, #0 + bne _080403B6 + ldr r1, _08040398 + adds r1, #0x28 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080403A8 + ldr r0, _0804039C + ands r0, r2 + ldr r1, _080403A0 + ands r0, r1 + strh r0, [r3] + ldr r1, _080403A4 + movs r0, #2 + strb r0, [r1, #5] + b _080403D4 + .align 2, 0 +_08040394: .4byte 0x02024070 +_08040398: .4byte 0x02024074 +_0804039C: .4byte 0x0000FFFE +_080403A0: .4byte 0x0000FFFD +_080403A4: .4byte 0x02023FD6 +_080403A8: + movs r0, #2 + ands r0, r2 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + bne _080403C2 + b _080403D0 +_080403B6: + movs r0, #2 + ands r0, r2 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + beq _080403D0 +_080403C2: + ldr r1, _080403CC + movs r0, #1 + strb r0, [r1, #5] + b _080403D4 + .align 2, 0 +_080403CC: .4byte 0x02023FD6 +_080403D0: + ldr r0, _080403D8 + strb r1, [r0, #5] +_080403D4: + ldr r0, _080403DC + b _080404FA + .align 2, 0 +_080403D8: .4byte 0x02023FD6 +_080403DC: .4byte 0x082891B4 +_080403E0: + ldr r3, _08040414 + ldrh r2, [r3] + movs r0, #0x18 + ands r0, r2 + cmp r0, #0 + bne _080403EE + b _08040508 +_080403EE: + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + bne _08040428 + ldr r1, _08040418 + adds r1, #0x28 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08040428 + ldr r0, _0804041C + ands r0, r2 + strh r0, [r3] + ldr r1, _08040420 + ldr r0, _08040424 + b _0804042C + .align 2, 0 +_08040414: .4byte 0x02024070 +_08040418: .4byte 0x02024074 +_0804041C: .4byte 0x0000FFF7 +_08040420: .4byte 0x02023EB8 +_08040424: .4byte 0x08289251 +_08040428: + ldr r1, _08040440 + ldr r0, _08040444 +_0804042C: + str r0, [r1] + adds r3, r1, #0 + ldr r1, _08040448 + movs r2, #0 + movs r0, #0xc + strb r0, [r1, #0x10] + ldr r0, _0804044C + strb r2, [r0, #5] + b _080404F8 + .align 2, 0 +_08040440: .4byte 0x02023EB8 +_08040444: .4byte 0x082891CF +_08040448: .4byte 0x02024118 +_0804044C: .4byte 0x02023FD6 +_08040450: + ldr r3, _08040480 + ldrh r2, [r3] + movs r0, #0x60 + ands r0, r2 + cmp r0, #0 + beq _08040508 + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + bne _08040494 + ldr r1, _08040484 + adds r1, #0x28 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08040494 + ldr r0, _08040488 + ands r0, r2 + strh r0, [r3] + ldr r1, _0804048C + ldr r0, _08040490 + b _08040498 + .align 2, 0 +_08040480: .4byte 0x02024070 +_08040484: .4byte 0x02024074 +_08040488: .4byte 0x0000FFDF +_0804048C: .4byte 0x02023EB8 +_08040490: .4byte 0x08289268 +_08040494: + ldr r1, _080404A0 + ldr r0, _080404A4 +_08040498: + str r0, [r1] + adds r3, r1, #0 + b _080404F8 + .align 2, 0 +_080404A0: .4byte 0x02023EB8 +_080404A4: .4byte 0x0828925A +_080404A8: + ldr r3, _080404D0 + ldrh r2, [r3] + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _08040508 + ldr r1, _080404D4 + adds r1, #0x28 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080404E4 + ldr r0, _080404D8 + ands r0, r2 + strh r0, [r3] + ldr r1, _080404DC + ldr r0, _080404E0 + b _080404E8 + .align 2, 0 +_080404D0: .4byte 0x02024070 +_080404D4: .4byte 0x02024074 +_080404D8: .4byte 0x0000FF7F +_080404DC: .4byte 0x02023EB8 +_080404E0: .4byte 0x08289251 +_080404E4: + ldr r1, _08040518 + ldr r0, _0804051C +_080404E8: + str r0, [r1] + adds r3, r1, #0 + ldr r1, _08040520 + movs r0, #0xd + strb r0, [r1, #0x10] + ldr r1, _08040524 + movs r0, #1 + strb r0, [r1, #5] +_080404F8: + ldr r0, [r3] +_080404FA: + bl BattleScriptExecute + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 +_08040508: + ldr r2, _08040528 + ldr r1, [r2] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + mov ip, r2 + b _08040536 + .align 2, 0 +_08040518: .4byte 0x02023EB8 +_0804051C: .4byte 0x082891CF +_08040520: .4byte 0x02024118 +_08040524: .4byte 0x02023FD6 +_08040528: .4byte 0x02024140 +_0804052C: + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 +_08040536: + mov r3, sb + cmp r3, #0 + bne _0804053E + b _0803FE9E +_0804053E: + ldr r0, _0804055C + ldr r1, [r0] + ldr r0, _08040560 + eors r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0804055C: .4byte 0x03005A64 +_08040560: .4byte 0x0803B601 + thumb_func_end DoFieldEndTurnEffects + + thumb_func_start BattleScriptPop +BattleScriptPop: @ 0x08040564 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + movs r0, #0 + mov sb, r0 + ldr r2, _08040598 + ldr r0, [r2] + ldr r1, _0804059C + orrs r0, r1 + str r0, [r2] + ldr r5, _080405A0 + ldr r2, [r5] + ldr r0, _080405A4 + ldrb r1, [r2, #1] + adds r7, r5, #0 + mov r8, r0 + ldrb r3, [r0] + cmp r1, r3 + blo _08040594 + bl _08040F78 +_08040594: + bl _08040F6E + .align 2, 0 +_08040598: .4byte 0x02023F24 +_0804059C: .4byte 0x01000020 +_080405A0: .4byte 0x02024140 +_080405A4: .4byte 0x02023D10 + thumb_func_end BattleScriptPop + + thumb_func_start DoBattlerEndTurnEffects +DoBattlerEndTurnEffects: @ 0x080405A8 + ldr r3, _080405DC + ldr r4, _080405E0 + ldr r1, _080405E4 + ldr r5, [r5] + ldrb r0, [r5, #1] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4] + strb r0, [r3] + ldr r0, _080405E8 + ldrb r1, [r0] + ldr r2, _080405EC + ldrb r0, [r3] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + adds r6, r3, #0 + cmp r1, #0 + beq _080405F0 + ldrb r0, [r5, #1] + adds r0, #1 + strb r0, [r5, #1] + bl _08040F5C + .align 2, 0 +_080405DC: .4byte 0x02023D08 +_080405E0: .4byte 0x02023EAF +_080405E4: .4byte 0x02023D22 +_080405E8: .4byte 0x02023EB4 +_080405EC: .4byte 0x082FACB4 +_080405F0: + ldrb r0, [r5] + cmp r0, #0x13 + bls _080405FA + bl _08040F52 +_080405FA: + lsls r0, r0, #2 + ldr r1, _08040604 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08040604: .4byte 0x08040608 +_08040608: @ jump table + .4byte _08040658 @ case 0 + .4byte _080406B8 @ case 1 + .4byte _080406D6 @ case 2 + .4byte _08040706 @ case 3 + .4byte _08040784 @ case 4 + .4byte _080407CC @ case 5 + .4byte _0804084C @ case 6 + .4byte _08040894 @ case 7 + .4byte _080408F8 @ case 8 + .4byte _08040940 @ case 9 + .4byte _08040AA0 @ case 10 + .4byte _08040BBC @ case 11 + .4byte _08040C64 @ case 12 + .4byte _08040D28 @ case 13 + .4byte _08040DDC @ case 14 + .4byte _08040DFC @ case 15 + .4byte _08040E48 @ case 16 + .4byte _08040E78 @ case 17 + .4byte _080406EE @ case 18 + .4byte _08040F44 @ case 19 +_08040658: + ldr r1, _080406A8 + ldrb r3, [r6] + lsls r0, r3, #2 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + bne _08040670 + bl _08040F1E +_08040670: + ldr r0, _080406AC + movs r1, #0x58 + muls r1, r3, r1 + adds r0, r1, r0 + ldrh r2, [r0, #0x28] + ldrh r5, [r0, #0x2c] + cmp r2, r5 + bne _08040684 + bl _08040F1E +_08040684: + cmp r2, #0 + bne _0804068C + bl _08040F1E +_0804068C: + ldr r1, _080406B0 + ldrh r0, [r0, #0x2c] + lsrs r0, r0, #4 + str r0, [r1] + cmp r0, #0 + bne _0804069C + movs r0, #1 + str r0, [r1] +_0804069C: + ldr r0, [r1] + rsbs r0, r0, #0 + str r0, [r1] + ldr r0, _080406B4 + bl _08040F10 + .align 2, 0 +_080406A8: .4byte 0x02023F50 +_080406AC: .4byte 0x02023D28 +_080406B0: .4byte 0x02023E94 +_080406B4: .4byte 0x08289676 +_080406B8: + ldrb r1, [r6] + movs r0, #0 + str r0, [sp] + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080406D2 + bl _08040F1E +_080406D2: + bl _08040F14 +_080406D6: + ldrb r1, [r6] + movs r0, #1 + movs r2, #0 + bl ItemBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080406EA + bl _08040F1E +_080406EA: + bl _08040F14 +_080406EE: + ldrb r1, [r6] + movs r0, #1 + movs r2, #1 + bl ItemBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08040702 + bl _08040F1E +_08040702: + bl _08040F14 +_08040706: + ldr r0, _0804076C + ldrb r2, [r6] + lsls r1, r2, #2 + adds r1, r1, r0 + ldr r1, [r1] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _0804071C + bl _08040F1E +_0804071C: + ldr r3, _08040770 + movs r5, #3 + ands r5, r1 + movs r1, #0x58 + adds r0, r5, #0 + muls r0, r1, r0 + adds r0, r0, r3 + ldrh r0, [r0, #0x28] + cmp r0, #0 + bne _08040734 + bl _08040F1E +_08040734: + adds r0, r2, #0 + muls r0, r1, r0 + adds r0, r0, r3 + ldrh r0, [r0, #0x28] + cmp r0, #0 + bne _08040744 + bl _08040F1E +_08040744: + ldr r0, _08040774 + strb r5, [r0] + ldr r2, _08040778 + ldrb r0, [r6] + muls r0, r1, r0 + adds r0, r0, r3 + ldrh r0, [r0, #0x2c] + lsrs r0, r0, #3 + str r0, [r2] + cmp r0, #0 + bne _0804075E + movs r0, #1 + str r0, [r2] +_0804075E: + ldr r1, _0804077C + strb r5, [r1, #0x10] + ldrb r0, [r4] + strb r0, [r1, #0x11] + ldr r0, _08040780 + b _08040F10 + .align 2, 0 +_0804076C: .4byte 0x02023F50 +_08040770: .4byte 0x02023D28 +_08040774: .4byte 0x02023EB0 +_08040778: .4byte 0x02023E94 +_0804077C: .4byte 0x02024118 +_08040780: .4byte 0x0828929D +_08040784: + ldr r2, _080407C0 + ldrb r1, [r6] + movs r0, #0x58 + adds r3, r1, #0 + muls r3, r0, r3 + adds r0, r2, #0 + adds r0, #0x4c + adds r0, r3, r0 + ldr r0, [r0] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + bne _080407A0 + b _08040F1E +_080407A0: + adds r1, r3, r2 + ldrh r0, [r1, #0x28] + cmp r0, #0 + bne _080407AA + b _08040F1E +_080407AA: + ldr r2, _080407C4 + ldrh r0, [r1, #0x2c] + lsrs r0, r0, #3 + str r0, [r2] + cmp r0, #0 + bne _080407BA + movs r0, #1 + str r0, [r2] +_080407BA: + ldr r0, _080407C8 + b _08040F10 + .align 2, 0 +_080407C0: .4byte 0x02023D28 +_080407C4: .4byte 0x02023E94 +_080407C8: .4byte 0x082897C5 +_080407CC: + ldr r4, _08040840 + ldrb r0, [r6] + movs r7, #0x58 + mov r8, r7 + mov r2, r8 + muls r2, r0, r2 + adds r3, r4, #0 + adds r3, #0x4c + adds r0, r2, r3 + ldr r0, [r0] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080407EA + b _08040F1E +_080407EA: + adds r1, r2, r4 + ldrh r0, [r1, #0x28] + cmp r0, #0 + bne _080407F4 + b _08040F1E +_080407F4: + ldr r5, _08040844 + ldrh r0, [r1, #0x2c] + lsrs r0, r0, #4 + str r0, [r5] + cmp r0, #0 + bne _08040804 + movs r0, #1 + str r0, [r5] +_08040804: + ldrb r0, [r6] + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + adds r2, r0, r3 + ldr r1, [r2] + movs r4, #0xf0 + lsls r4, r4, #4 + adds r0, r1, #0 + ands r0, r4 + cmp r0, r4 + beq _08040824 + movs r7, #0x80 + lsls r7, r7, #1 + adds r0, r1, r7 + str r0, [r2] +_08040824: + ldrb r0, [r6] + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + adds r0, r0, r3 + ldr r0, [r0] + ands r0, r4 + lsrs r0, r0, #8 + ldr r1, [r5] + muls r0, r1, r0 + str r0, [r5] + ldr r0, _08040848 + b _08040F10 + .align 2, 0 +_08040840: .4byte 0x02023D28 +_08040844: .4byte 0x02023E94 +_08040848: .4byte 0x082897C5 +_0804084C: + ldr r2, _08040888 + ldrb r1, [r6] + movs r0, #0x58 + adds r3, r1, #0 + muls r3, r0, r3 + adds r0, r2, #0 + adds r0, #0x4c + adds r0, r3, r0 + ldr r0, [r0] + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + bne _08040868 + b _08040F1E +_08040868: + adds r1, r3, r2 + ldrh r0, [r1, #0x28] + cmp r0, #0 + bne _08040872 + b _08040F1E +_08040872: + ldr r2, _0804088C + ldrh r0, [r1, #0x2c] + lsrs r0, r0, #3 + str r0, [r2] + cmp r0, #0 + bne _08040882 + movs r0, #1 + str r0, [r2] +_08040882: + ldr r0, _08040890 + b _08040F10 + .align 2, 0 +_08040888: .4byte 0x02023D28 +_0804088C: .4byte 0x02023E94 +_08040890: .4byte 0x082897E7 +_08040894: + ldr r4, _080408E0 + ldrb r1, [r6] + movs r0, #0x58 + muls r1, r0, r1 + adds r0, r4, #0 + adds r0, #0x50 + adds r5, r1, r0 + ldr r2, [r5] + movs r0, #0x80 + lsls r0, r0, #0x14 + ands r0, r2 + cmp r0, #0 + bne _080408B0 + b _08040F1E +_080408B0: + adds r3, r1, r4 + ldrh r0, [r3, #0x28] + cmp r0, #0 + bne _080408BA + b _08040F1E +_080408BA: + adds r0, r4, #0 + adds r0, #0x4c + adds r0, r1, r0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + beq _080408EC + ldr r1, _080408E4 + ldrh r0, [r3, #0x2c] + lsrs r0, r0, #2 + str r0, [r1] + cmp r0, #0 + bne _080408DA + movs r0, #1 + str r0, [r1] +_080408DA: + ldr r0, _080408E8 + b _08040F10 + .align 2, 0 +_080408E0: .4byte 0x02023D28 +_080408E4: .4byte 0x02023E94 +_080408E8: .4byte 0x082898C7 +_080408EC: + ldr r0, _080408F4 + ands r2, r0 + str r2, [r5] + b _08040F1E + .align 2, 0 +_080408F4: .4byte 0xF7FFFFFF +_080408F8: + ldr r2, _08040934 + ldrb r1, [r6] + movs r0, #0x58 + adds r3, r1, #0 + muls r3, r0, r3 + adds r0, r2, #0 + adds r0, #0x50 + adds r0, r3, r0 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x15 + ands r0, r1 + cmp r0, #0 + bne _08040916 + b _08040F1E +_08040916: + adds r1, r3, r2 + ldrh r0, [r1, #0x28] + cmp r0, #0 + bne _08040920 + b _08040F1E +_08040920: + ldr r2, _08040938 + ldrh r0, [r1, #0x2c] + lsrs r0, r0, #2 + str r0, [r2] + cmp r0, #0 + bne _08040930 + movs r0, #1 + str r0, [r2] +_08040930: + ldr r0, _0804093C + b _08040F10 + .align 2, 0 +_08040934: .4byte 0x02023D28 +_08040938: .4byte 0x02023E94 +_0804093C: .4byte 0x082898D8 +_08040940: + ldr r3, _080409E0 + mov r8, r3 + ldrb r0, [r6] + movs r3, #0x58 + adds r1, r0, #0 + muls r1, r3, r1 + movs r5, #0x50 + add r5, r8 + mov sl, r5 + adds r4, r1, r5 + ldr r2, [r4] + movs r5, #0xe0 + lsls r5, r5, #8 + adds r0, r2, #0 + ands r0, r5 + cmp r0, #0 + bne _08040964 + b _08040F1E +_08040964: + mov r7, r8 + adds r0, r1, r7 + ldrh r0, [r0, #0x28] + cmp r0, #0 + bne _08040970 + b _08040F1E +_08040970: + ldr r1, _080409E4 + adds r0, r2, r1 + str r0, [r4] + ldrb r4, [r6] + adds r0, r4, #0 + muls r0, r3, r0 + add r0, sl + ldr r0, [r0] + ands r0, r5 + cmp r0, #0 + beq _08040A00 + ldr r1, _080409E8 + ldr r0, _080409EC + ldr r2, [r0] + lsls r0, r4, #1 + adds r0, r0, r2 + ldrb r0, [r0, #4] + strb r0, [r1, #0x10] + ldrb r0, [r6] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrb r0, [r0, #5] + strb r0, [r1, #0x11] + ldr r1, _080409F0 + movs r0, #0xfd + strb r0, [r1] + movs r0, #2 + strb r0, [r1, #1] + ldrb r0, [r6] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrb r0, [r0, #4] + strb r0, [r1, #2] + ldrb r0, [r6] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrb r0, [r0, #5] + strb r0, [r1, #3] + movs r0, #0xff + strb r0, [r1, #4] + ldr r1, _080409F4 + ldr r0, _080409F8 + str r0, [r1] + ldr r2, _080409FC + ldrb r0, [r6] + muls r0, r3, r0 + add r0, r8 + ldrh r0, [r0, #0x2c] + lsrs r0, r0, #4 + str r0, [r2] + cmp r0, #0 + bne _08040A2C + movs r0, #1 + str r0, [r2] + b _08040A2C + .align 2, 0 +_080409E0: .4byte 0x02023D28 +_080409E4: .4byte 0xFFFFE000 +_080409E8: .4byte 0x02024118 +_080409EC: .4byte 0x02024140 +_080409F0: .4byte 0x02022C0C +_080409F4: .4byte 0x02023EB8 +_080409F8: .4byte 0x08289896 +_080409FC: .4byte 0x02023E94 +_08040A00: + ldr r2, _08040A30 + movs r0, #0xfd + strb r0, [r2] + movs r0, #2 + strb r0, [r2, #1] + ldrb r1, [r6] + ldr r0, _08040A34 + ldr r3, [r0] + lsls r1, r1, #1 + adds r1, r1, r3 + ldrb r0, [r1, #4] + strb r0, [r2, #2] + ldrb r0, [r6] + lsls r0, r0, #1 + adds r0, r0, r3 + ldrb r0, [r0, #5] + strb r0, [r2, #3] + movs r0, #0xff + strb r0, [r2, #4] + ldr r1, _08040A38 + ldr r0, _08040A3C + str r0, [r1] +_08040A2C: + ldr r0, [r1] + b _08040F10 + .align 2, 0 +_08040A30: .4byte 0x02022C0C +_08040A34: .4byte 0x02024140 +_08040A38: .4byte 0x02023EB8 +_08040A3C: .4byte 0x082898A8 +_08040A40: + movs r0, #8 + rsbs r0, r0, #0 + ands r3, r0 + str r3, [r2] + ldrb r0, [r6] + mov r2, r8 + muls r2, r0, r2 + mov r0, sl + adds r0, #0x50 + adds r2, r2, r0 + ldr r0, [r2] + ldr r1, _08040A90 + ands r0, r1 + str r0, [r2] + ldr r1, _08040A94 + movs r0, #1 + strb r0, [r1, #5] + ldr r0, _08040A98 + bl BattleScriptExecute + ldr r4, _08040A9C + ldrb r0, [r6] + strb r0, [r4] + ldrb r0, [r4] + mov r3, r8 + muls r3, r0, r3 + adds r0, r3, #0 + add r0, sb + str r0, [sp] + movs r0, #0 + movs r1, #0x28 + movs r2, #0 + movs r3, #4 + bl BtlController_EmitSetMonData + ldrb r0, [r4] + bl MarkBattlerForControllerExec + b _08040B08 + .align 2, 0 +_08040A90: .4byte 0xF7FFFFFF +_08040A94: .4byte 0x02023FD6 +_08040A98: .4byte 0x082897BC +_08040A9C: .4byte 0x02023D08 +_08040AA0: + ldr r2, _08040B1C + ldrb r1, [r6] + movs r0, #0x58 + muls r0, r1, r0 + adds r1, r2, #0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r1, [r0] + movs r0, #0x70 + ands r1, r0 + adds r7, r2, #0 + cmp r1, #0 + beq _08040BAA + movs r0, #0 + strb r0, [r4] + mov r5, r8 + ldrb r0, [r5] + cmp r0, #0 + beq _08040B08 + mov sl, r7 + adds r6, r4, #0 + movs r1, #0x58 + mov r8, r1 + movs r3, #0x4c + adds r3, r3, r7 + mov sb, r3 + str r0, [sp, #4] + movs r5, #7 + mov ip, r5 +_08040ADA: + ldrb r4, [r6] + mov r1, r8 + muls r1, r4, r1 + mov r0, sb + adds r2, r1, r0 + ldr r3, [r2] + adds r0, r3, #0 + mov r5, ip + ands r0, r5 + cmp r0, #0 + beq _08040AFA + adds r0, r1, r7 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x2b + bne _08040A40 +_08040AFA: + adds r0, r4, #1 + strb r0, [r6] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, [sp, #4] + cmp r0, r1 + blo _08040ADA +_08040B08: + ldr r2, _08040B20 + ldr r1, _08040B24 + ldrb r0, [r2] + ldrb r1, [r1] + cmp r0, r1 + beq _08040B28 + movs r3, #2 + mov sb, r3 + b _08040F58 + .align 2, 0 +_08040B1C: .4byte 0x02023D28 +_08040B20: .4byte 0x02023EAF +_08040B24: .4byte 0x02023D10 +_08040B28: + ldr r5, _08040B60 + ldrb r0, [r5] + strb r0, [r2] + ldr r2, _08040B64 + ldrb r0, [r5] + movs r7, #0x58 + adds r1, r0, #0 + muls r1, r7, r1 + adds r6, r2, #0 + adds r6, #0x50 + adds r1, r1, r6 + ldr r0, [r1] + subs r0, #0x10 + str r0, [r1] + ldrb r0, [r5] + bl WasUnableToUseMove + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + beq _08040B6C + ldrb r0, [r5] + bl CancelMultiTurnMoves + ldr r1, _08040B68 + movs r0, #1 + strb r0, [r1, #5] + b _08040BA0 + .align 2, 0 +_08040B60: .4byte 0x02023D08 +_08040B64: .4byte 0x02023D28 +_08040B68: .4byte 0x02023FD6 +_08040B6C: + ldrb r3, [r5] + adds r0, r3, #0 + muls r0, r7, r0 + adds r2, r0, r6 + ldr r0, [r2] + movs r1, #0x70 + ands r0, r1 + cmp r0, #0 + beq _08040B94 + ldr r0, _08040B90 + strb r4, [r0, #5] + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #5 + orrs r0, r1 + str r0, [r2] + b _08040BA0 + .align 2, 0 +_08040B90: .4byte 0x02023FD6 +_08040B94: + ldr r1, _08040BB4 + movs r0, #1 + strb r0, [r1, #5] + adds r0, r3, #0 + bl CancelMultiTurnMoves +_08040BA0: + ldr r0, _08040BB8 + bl BattleScriptExecute + movs r5, #1 + mov sb, r5 +_08040BAA: + mov r7, sb + cmp r7, #2 + bne _08040BB2 + b _08040F52 +_08040BB2: + b _08040F1E + .align 2, 0 +_08040BB4: .4byte 0x02023FD6 +_08040BB8: .4byte 0x0828982E +_08040BBC: + ldr r1, _08040BF4 + ldrb r0, [r6] + movs r7, #0x58 + muls r0, r7, r0 + adds r5, r1, #0 + adds r5, #0x50 + adds r2, r0, r5 + ldr r1, [r2] + movs r4, #0xc0 + lsls r4, r4, #4 + adds r0, r1, #0 + ands r0, r4 + cmp r0, #0 + bne _08040BDA + b _08040F1E +_08040BDA: + ldr r3, _08040BF8 + adds r0, r1, r3 + str r0, [r2] + ldrb r0, [r6] + bl WasUnableToUseMove + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08040BFC + ldrb r0, [r6] + bl CancelMultiTurnMoves + b _08040F1E + .align 2, 0 +_08040BF4: .4byte 0x02023D28 +_08040BF8: .4byte 0xFFFFFC00 +_08040BFC: + ldrb r0, [r6] + muls r0, r7, r0 + adds r2, r0, r5 + ldr r1, [r2] + adds r0, r1, #0 + ands r0, r4 + cmp r0, #0 + beq _08040C0E + b _08040F1E +_08040C0E: + movs r0, #0x80 + lsls r0, r0, #5 + ands r0, r1 + cmp r0, #0 + bne _08040C1A + b _08040F1E +_08040C1A: + ldr r0, _08040C58 + ands r1, r0 + str r1, [r2] + ldrb r0, [r6] + muls r0, r7, r0 + adds r0, r0, r5 + ldr r0, [r0] + movs r4, #7 + ands r0, r4 + cmp r0, #0 + beq _08040C32 + b _08040F1E +_08040C32: + ldr r1, _08040C5C + movs r0, #0x47 + strb r0, [r1, #3] + movs r0, #1 + movs r1, #0 + bl SetMoveEffect + ldrb r0, [r6] + muls r0, r7, r0 + adds r0, r0, r5 + ldr r0, [r0] + ands r0, r4 + cmp r0, #0 + bne _08040C50 + b _08040F14 +_08040C50: + ldr r0, _08040C60 + bl BattleScriptExecute + b _08040F14 + .align 2, 0 +_08040C58: .4byte 0xFFFFEFFF +_08040C5C: .4byte 0x02023FD6 +_08040C60: .4byte 0x08289837 +_08040C64: + ldr r0, _08040CE4 + ldrb r3, [r6] + lsls r1, r3, #3 + subs r1, r1, r3 + lsls r1, r1, #2 + adds r5, r1, r0 + ldrb r1, [r5, #0xb] + lsls r1, r1, #0x1c + adds r7, r0, #0 + cmp r1, #0 + bne _08040C7C + b _08040F1E +_08040C7C: + movs r4, #0 + ldr r2, _08040CE8 + movs r0, #0x58 + adds r1, r3, #0 + muls r1, r0, r1 + adds r2, #0xc + adds r1, r1, r2 + ldrh r0, [r5, #4] + ldrh r1, [r1] + cmp r0, r1 + beq _08040CBA + mov ip, r7 + mov r8, r2 + adds r5, r6, #0 + movs r3, #0x58 +_08040C9A: + adds r4, #1 + cmp r4, #3 + bgt _08040CBA + ldrb r2, [r5] + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + add r1, ip + lsls r0, r4, #1 + muls r2, r3, r2 + adds r0, r0, r2 + add r0, r8 + ldrh r1, [r1, #4] + ldrh r0, [r0] + cmp r1, r0 + bne _08040C9A +_08040CBA: + cmp r4, #4 + bne _08040CEC + ldrb r1, [r6] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + movs r1, #0 + strh r1, [r0, #4] + ldrb r0, [r6] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r7 + ldrb r2, [r1, #0xb] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #0xb] + b _08040F1E + .align 2, 0 +_08040CE4: .4byte 0x02023F60 +_08040CE8: .4byte 0x02023D28 +_08040CEC: + ldrb r0, [r6] + lsls r2, r0, #3 + subs r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r7 + ldrb r3, [r2, #0xb] + lsls r1, r3, #0x1c + lsrs r1, r1, #0x1c + subs r1, #1 + movs r0, #0xf + ands r1, r0 + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #0xb] + adds r2, r1, #0 + cmp r2, #0 + beq _08040D14 + b _08040F1E +_08040D14: + ldrb r1, [r6] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r2, [r0, #4] + ldr r0, _08040D24 + b _08040F10 + .align 2, 0 +_08040D24: .4byte 0x082893AB +_08040D28: + ldr r3, _08040D74 + ldrb r1, [r6] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r2, r0, r3 + ldrb r5, [r2, #0xe] + lsls r4, r5, #0x1c + cmp r4, #0 + bne _08040D3E + b _08040F1E +_08040D3E: + ldr r7, _08040D78 + mov r8, r7 + ldrb r0, [r2, #0xc] + lsls r0, r0, #1 + movs r7, #0x58 + muls r1, r7, r1 + adds r0, r0, r1 + mov r1, r8 + adds r1, #0xc + adds r0, r0, r1 + ldrh r0, [r0] + ldrh r1, [r2, #6] + cmp r0, r1 + beq _08040D7C + movs r0, #0 + strh r0, [r2, #6] + ldrb r0, [r6] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrb r2, [r1, #0xe] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #0xe] + b _08040F1E + .align 2, 0 +_08040D74: .4byte 0x02023F60 +_08040D78: .4byte 0x02023D28 +_08040D7C: + lsrs r1, r4, #0x1c + subs r1, #1 + movs r0, #0xf + ands r1, r0 + movs r4, #0x10 + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r5 + orrs r0, r1 + strb r0, [r2, #0xe] + cmp r1, #0 + beq _08040DB2 + ldrb r1, [r6] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + muls r1, r7, r1 + ldrb r0, [r0, #0xc] + adds r1, r1, r0 + mov r0, r8 + adds r0, #0x24 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0 + beq _08040DB2 + b _08040F1E +_08040DB2: + ldrb r1, [r6] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r1, #0 + strh r1, [r0, #6] + ldrb r0, [r6] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrb r2, [r1, #0xe] + adds r0, r4, #0 + ands r0, r2 + strb r0, [r1, #0xe] + ldr r0, _08040DD8 + b _08040F10 + .align 2, 0 +_08040DD8: .4byte 0x082893BF +_08040DDC: + ldr r0, _08040DF8 + ldrb r1, [r6] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r2, [r1] + movs r0, #0x18 + ands r0, r2 + cmp r0, #0 + beq _08040DF4 + adds r0, r2, #0 + subs r0, #8 + str r0, [r1] +_08040DF4: + ldr r1, [r7] + b _08040F22 + .align 2, 0 +_08040DF8: .4byte 0x02023F50 +_08040DFC: + ldr r2, _08040E3C + ldrb r1, [r6] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r3, r0, r2 + ldrb r2, [r3, #0x12] + lsls r1, r2, #0x1c + cmp r1, #0 + beq _08040E36 + lsrs r1, r1, #0x1c + subs r1, #1 + movs r0, #0xf + ands r1, r0 + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x12] + cmp r1, #0 + bne _08040E36 + ldr r0, _08040E40 + ldrb r2, [r6] + lsls r2, r2, #2 + adds r2, r2, r0 + ldr r0, [r2] + ldr r1, _08040E44 + ands r0, r1 + str r0, [r2] +_08040E36: + ldr r1, [r7] + b _08040F22 + .align 2, 0 +_08040E3C: .4byte 0x02023F60 +_08040E40: .4byte 0x02023F50 +_08040E44: .4byte 0xFFFFFDFF +_08040E48: + ldr r2, _08040E74 + ldrb r1, [r6] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r3, r0, r2 + ldrb r2, [r3, #0x13] + lsls r1, r2, #0x1c + cmp r1, #0 + beq _08040E6E + lsrs r1, r1, #0x1c + subs r1, #1 + movs r0, #0xf + ands r1, r0 + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x13] +_08040E6E: + ldr r1, [r7] + b _08040F22 + .align 2, 0 +_08040E74: .4byte 0x02023F60 +_08040E78: + ldr r4, _08040F2C + ldrb r0, [r6] + lsls r0, r0, #2 + adds r2, r0, r4 + ldr r1, [r2] + movs r3, #0xc0 + lsls r3, r3, #5 + adds r0, r1, #0 + ands r0, r3 + cmp r0, #0 + beq _08040F1E + ldr r5, _08040F30 + adds r0, r1, r5 + str r0, [r2] + ldrb r2, [r6] + lsls r0, r2, #2 + adds r0, r0, r4 + ldr r0, [r0] + ands r0, r3 + cmp r0, #0 + bne _08040F1E + ldr r3, _08040F34 + movs r5, #0x58 + adds r1, r2, #0 + muls r1, r5, r1 + adds r4, r3, #0 + adds r4, #0x4c + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, #0 + bne _08040F1E + adds r0, r1, r3 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x48 + beq _08040F1E + cmp r0, #0xf + beq _08040F1E + adds r0, r2, #0 + bl UproarWakeUpCheck + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08040F1E + ldrb r0, [r6] + bl CancelMultiTurnMoves + bl Random + ldrb r1, [r6] + adds r2, r1, #0 + muls r2, r5, r2 + adds r2, r2, r4 + movs r1, #3 + ands r1, r0 + adds r1, #2 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + ldrb r0, [r6] + muls r0, r5, r0 + adds r0, r0, r4 + str r0, [sp] + movs r0, #0 + movs r1, #0x28 + movs r2, #0 + movs r3, #4 + bl BtlController_EmitSetMonData + ldrb r0, [r6] + bl MarkBattlerForControllerExec + ldr r1, _08040F38 + ldrb r0, [r6] + strb r0, [r1] + ldr r0, _08040F3C +_08040F10: + bl BattleScriptExecute +_08040F14: + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 +_08040F1E: + ldr r0, _08040F40 + ldr r1, [r0] +_08040F22: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _08040F52 + .align 2, 0 +_08040F2C: .4byte 0x02023F50 +_08040F30: .4byte 0xFFFFF800 +_08040F34: .4byte 0x02023D28 +_08040F38: .4byte 0x02023EB2 +_08040F3C: .4byte 0x08289900 +_08040F40: .4byte 0x02024140 +_08040F44: + ldr r1, [r7] + movs r0, #0 + strb r0, [r1] + ldr r1, [r7] + ldrb r0, [r1, #1] + adds r0, #1 + strb r0, [r1, #1] +_08040F52: + mov r7, sb + cmp r7, #0 + beq _08040F5C +_08040F58: + mov r0, sb + b _08040F84 +_08040F5C: + ldr r5, _08040F94 + ldr r2, [r5] + ldr r0, _08040F98 + ldrb r1, [r2, #1] + adds r7, r5, #0 + mov r8, r0 + ldrb r0, [r0] + cmp r1, r0 + bhs _08040F78 +_08040F6E: + ldrb r0, [r2] + cmp r0, #0x13 + bhi _08040F78 + bl DoBattlerEndTurnEffects +_08040F78: + ldr r0, _08040F9C + ldr r1, [r0] + ldr r2, _08040FA0 + ands r1, r2 + str r1, [r0] + movs r0, #0 +_08040F84: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08040F94: .4byte 0x02024140 +_08040F98: .4byte 0x02023D10 +_08040F9C: .4byte 0x02023F24 +_08040FA0: .4byte 0xFEFFFFDF + thumb_func_end DoBattlerEndTurnEffects + + thumb_func_start HandleWishPerishSongOnTurnEnd +HandleWishPerishSongOnTurnEnd: @ 0x08040FA4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r2, _08040FD8 + ldr r0, [r2] + ldr r1, _08040FDC + orrs r0, r1 + str r0, [r2] + ldr r1, _08040FE0 + ldr r3, [r1] + movs r4, #0xd0 + lsls r4, r4, #1 + adds r0, r3, r4 + ldrb r0, [r0] + mov sl, r2 + adds r6, r1, #0 + cmp r0, #1 + bne _08040FCE + b _08041188 +_08040FCE: + cmp r0, #1 + bgt _08040FE4 + cmp r0, #0 + beq _08040FEC + b _08041348 + .align 2, 0 +_08040FD8: .4byte 0x02023F24 +_08040FDC: .4byte 0x01000020 +_08040FE0: .4byte 0x02024140 +_08040FE4: + cmp r0, #2 + bne _08040FEA + b _080412DA +_08040FEA: + b _08041348 +_08040FEC: + ldr r2, _08041030 + adds r0, r3, r2 + ldr r1, _08041034 + ldrb r0, [r0] + mov r8, r1 + ldrb r7, [r1] + cmp r0, r7 + blo _08040FFE + b _08041172 +_08040FFE: + ldr r4, _08041038 + ldr r5, _0804103C + ldr r7, _08041040 + movs r0, #0x18 + adds r0, r0, r7 + mov ip, r0 +_0804100A: + ldr r0, [r6] + adds r3, r0, r2 + ldrb r0, [r3] + strb r0, [r4] + ldr r0, _08041044 + ldrb r1, [r0] + ldr r2, _08041048 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _0804104C + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + b _08041160 + .align 2, 0 +_08041030: .4byte 0x000001A1 +_08041034: .4byte 0x02023D10 +_08041038: .4byte 0x02023D08 +_0804103C: .4byte 0x02022C0C +_08041040: .4byte 0x02024074 +_08041044: .4byte 0x02023EB4 +_08041048: .4byte 0x082FACB4 +_0804104C: + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + ldr r1, _08041090 + ldrb r0, [r4] + adds r2, r0, r1 + ldrb r0, [r2] + mov sb, r1 + cmp r0, #0 + bne _08041062 + b _08041160 +_08041062: + subs r0, #1 + strb r0, [r2] + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _08041160 + ldr r1, _08041094 + ldrb r2, [r4] + movs r0, #0x58 + muls r0, r2, r0 + adds r0, r0, r1 + ldrh r0, [r0, #0x28] + cmp r0, #0 + beq _08041160 + lsls r0, r2, #1 + add r0, ip + ldrh r0, [r0] + cmp r0, #0xf8 + bne _0804109C + ldr r0, _08041098 + strb r3, [r0, #5] + b _080410A2 + .align 2, 0 +_08041090: .4byte 0x02024074 +_08041094: .4byte 0x02023D28 +_08041098: .4byte 0x02023FD6 +_0804109C: + ldr r1, _0804113C + movs r0, #1 + strb r0, [r1, #5] +_080410A2: + movs r0, #0xfd + strb r0, [r5] + movs r6, #2 + movs r0, #2 + strb r0, [r5, #1] + ldrb r0, [r4] + lsls r0, r0, #1 + add r0, ip + ldrh r0, [r0] + strb r0, [r5, #2] + ldrb r0, [r4] + lsls r0, r0, #1 + add r0, ip + ldrh r0, [r0] + lsrs r0, r0, #8 + strb r0, [r5, #3] + movs r0, #0xff + strb r0, [r5, #4] + ldr r5, _08041140 + ldrb r0, [r4] + strb r0, [r5] + ldr r1, _08041144 + adds r0, r7, #4 + ldrb r2, [r4] + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r1] + ldr r2, _08041148 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r1, r7, #0 + adds r1, #8 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r2] + ldr r2, _0804114C + ldrb r1, [r5] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #4 + adds r0, r0, r2 + ldr r1, _08041150 + str r1, [r0] + ldr r0, _08041154 + bl BattleScriptExecute + ldrb r1, [r4] + adds r0, r1, r7 + ldrb r0, [r0] + cmp r0, #0 + beq _0804110C + b _080412A4 +_0804110C: + eors r1, r6 + mov r3, sb + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, #0 + beq _0804111A + b _080412A4 +_0804111A: + ldrb r0, [r5] + bl GetBattlerPosition + ldr r2, _08041158 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r1, [r0] + ldr r4, _0804115C + adds r2, r4, #0 + ands r1, r2 + strh r1, [r0] + b _080412A4 + .align 2, 0 +_0804113C: .4byte 0x02023FD6 +_08041140: .4byte 0x02023EB0 +_08041144: .4byte 0x02023EAF +_08041148: .4byte 0x02023E94 +_0804114C: .4byte 0x02024020 +_08041150: .4byte 0x0000FFFF +_08041154: .4byte 0x0828956C +_08041158: .4byte 0x02023F32 +_0804115C: .4byte 0x0000FFBF +_08041160: + ldr r0, [r6] + ldr r2, _080411D8 + adds r0, r0, r2 + ldrb r0, [r0] + mov r1, r8 + ldrb r1, [r1] + cmp r0, r1 + bhs _08041172 + b _0804100A +_08041172: + ldr r0, [r6] + movs r2, #0xd0 + lsls r2, r2, #1 + adds r0, r0, r2 + movs r1, #1 + strb r1, [r0] + ldr r0, [r6] + ldr r3, _080411D8 + adds r1, r0, r3 + movs r0, #0 + strb r0, [r1] +_08041188: + adds r3, r6, #0 + ldr r0, [r6] + ldr r2, _080411D8 + adds r0, r0, r2 + ldr r1, _080411DC + ldrb r0, [r0] + mov r8, r1 + ldrb r4, [r1] + cmp r0, r4 + blo _0804119E + b _080412C4 +_0804119E: + ldr r5, _080411E0 + ldr r4, _080411E4 + ldr r7, _080411E8 + mov ip, r7 + ldr r0, _080411EC + mov sb, r0 +_080411AA: + ldr r1, _080411F0 + ldr r0, [r3] + adds r3, r0, r2 + ldrb r0, [r3] + adds r0, r0, r1 + ldrb r0, [r0] + mov r1, sb + strb r0, [r1] + strb r0, [r5] + ldr r0, _080411F4 + ldrb r1, [r0] + ldr r2, _080411F8 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _080411FC + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + b _080412B0 + .align 2, 0 +_080411D8: .4byte 0x000001A1 +_080411DC: .4byte 0x02023D10 +_080411E0: .4byte 0x02023D08 +_080411E4: .4byte 0x02022C0C +_080411E8: .4byte 0x02023F60 +_080411EC: .4byte 0x02023EAF +_080411F0: .4byte 0x02023D22 +_080411F4: .4byte 0x02023EB4 +_080411F8: .4byte 0x082FACB4 +_080411FC: + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + ldr r7, _08041270 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r0, [r0] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080412B0 + movs r0, #0xfd + strb r0, [r4] + movs r0, #1 + strb r0, [r4, #1] + strb r0, [r4, #2] + strb r0, [r4, #3] + ldrb r1, [r5] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + add r0, ip + ldrb r0, [r0, #0xf] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + strb r0, [r4, #4] + movs r0, #0xff + strb r0, [r4, #5] + ldrb r2, [r5] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + mov r3, ip + adds r4, r0, r3 + ldrb r3, [r4, #0xf] + lsls r1, r3, #0x1c + cmp r1, #0 + bne _08041284 + lsls r2, r2, #2 + adds r2, r2, r7 + ldr r0, [r2] + movs r1, #0x21 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2] + ldr r3, _08041274 + ldr r2, _08041278 + ldrb r1, [r5] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + ldrh r0, [r0, #0x28] + str r0, [r3] + ldr r1, _0804127C + ldr r0, _08041280 + b _0804129C + .align 2, 0 +_08041270: .4byte 0x02023F50 +_08041274: .4byte 0x02023E94 +_08041278: .4byte 0x02023D28 +_0804127C: .4byte 0x02023EB8 +_08041280: .4byte 0x0828948D +_08041284: + lsrs r1, r1, #0x1c + subs r1, #1 + movs r0, #0xf + ands r1, r0 + movs r7, #0x10 + rsbs r7, r7, #0 + adds r0, r7, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4, #0xf] + ldr r1, _080412A8 + ldr r0, _080412AC +_0804129C: + str r0, [r1] + ldr r0, [r1] + bl BattleScriptExecute +_080412A4: + movs r0, #1 + b _08041354 + .align 2, 0 +_080412A8: .4byte 0x02023EB8 +_080412AC: .4byte 0x082894A8 +_080412B0: + adds r3, r6, #0 + ldr r0, [r6] + ldr r2, _08041330 + adds r0, r0, r2 + ldrb r0, [r0] + mov r1, r8 + ldrb r1, [r1] + cmp r0, r1 + bhs _080412C4 + b _080411AA +_080412C4: + ldr r0, [r6] + movs r2, #0xd0 + lsls r2, r2, #1 + adds r0, r0, r2 + movs r1, #2 + strb r1, [r0] + ldr r0, [r6] + ldr r3, _08041330 + adds r1, r0, r3 + movs r0, #0 + strb r0, [r1] +_080412DA: + ldr r0, _08041334 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xb + ands r0, r1 + cmp r0, #0 + beq _08041348 + ldr r0, [r6] + adds r0, #0xda + ldrb r0, [r0] + cmp r0, #2 + bne _08041348 + ldr r1, _08041338 + ldrh r0, [r1, #0x28] + cmp r0, #0 + beq _08041348 + adds r0, r1, #0 + adds r0, #0x80 + ldrh r0, [r0] + cmp r0, #0 + beq _08041348 + movs r4, #0 +_08041306: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl CancelMultiTurnMoves + adds r4, #1 + cmp r4, #1 + ble _08041306 + ldr r1, _0804133C + ldr r0, _08041340 + str r0, [r1] + bl BattleScriptExecute + ldr r0, _08041344 + ldr r1, [r0] + movs r4, #0xd0 + lsls r4, r4, #1 + adds r1, r1, r4 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080412A4 + .align 2, 0 +_08041330: .4byte 0x000001A1 +_08041334: .4byte 0x02022C90 +_08041338: .4byte 0x02023D28 +_0804133C: .4byte 0x02023EB8 +_08041340: .4byte 0x08289E7B +_08041344: .4byte 0x02024140 +_08041348: + mov r7, sl + ldr r0, [r7] + ldr r1, _08041364 + ands r0, r1 + str r0, [r7] + movs r0, #0 +_08041354: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08041364: .4byte 0xFEFFFFDF + thumb_func_end HandleWishPerishSongOnTurnEnd + + thumb_func_start HandleFaintedMonActions +HandleFaintedMonActions: @ 0x08041368 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + ldr r0, _08041380 + ldr r0, [r0] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080413B0 + b _0804164A + .align 2, 0 +_08041380: .4byte 0x02022C90 +_08041384: + ldr r0, _08041394 + bl BattleScriptExecute + ldr r0, [r5] + adds r0, #0x4d + movs r1, #2 + b _080413A4 + .align 2, 0 +_08041394: .4byte 0x08288D4C +_08041398: + ldr r0, _080413AC + bl BattleScriptExecute + ldr r0, [r5] + adds r0, #0x4d + movs r1, #5 +_080413A4: + strb r1, [r0] +_080413A6: + movs r0, #1 + b _0804164C + .align 2, 0 +_080413AC: .4byte 0x08288D55 +_080413B0: + ldr r0, _080413CC + mov r8, r0 +_080413B4: + mov r1, r8 + ldr r0, [r1] + adds r0, #0x4d + ldrb r0, [r0] + cmp r0, #7 + bls _080413C2 + b _0804163C +_080413C2: + lsls r0, r0, #2 + ldr r1, _080413D0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080413CC: .4byte 0x02024140 +_080413D0: .4byte 0x080413D4 +_080413D4: @ jump table + .4byte _080413F4 @ case 0 + .4byte _08041446 @ case 1 + .4byte _080414E0 @ case 2 + .4byte _08041522 @ case 3 + .4byte _08041536 @ case 4 + .4byte _080415A0 @ case 5 + .4byte _080415D4 @ case 6 + .4byte _0804163C @ case 7 +_080413F4: + mov r4, r8 + ldr r0, [r4] + adds r0, #0x4e + movs r1, #0 + strb r1, [r0] + ldr r1, [r4] + adds r1, #0x4d + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r5, #0 + ldr r0, _080414C0 + ldrb r0, [r0] + cmp r5, r0 + bge _08041446 + ldr r6, _080414C4 +_08041414: + ldrb r0, [r6] + ldr r2, _080414C8 + lsls r1, r5, #2 + adds r1, r1, r2 + ldr r4, [r1] + ands r0, r4 + cmp r0, #0 + beq _0804143C + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + movs r1, #6 + movs r2, #6 + bl HasNoMonsToSwitch + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804143C + ldrb r0, [r6] + bics r0, r4 + strb r0, [r6] +_0804143C: + adds r5, #1 + ldr r0, _080414C0 + ldrb r0, [r0] + cmp r5, r0 + blt _08041414 +_08041446: + ldr r0, _080414CC + mov r8, r0 + ldr r1, _080414D0 + mov ip, r1 + ldr r2, _080414D4 + mov r5, r8 + ldr r7, _080414D8 + ldr r6, _080414DC +_08041456: + ldr r3, [r5] + adds r1, r3, #0 + adds r1, #0x4e + ldrb r0, [r1] + strb r0, [r2] + mov r4, ip + strb r0, [r4] + ldrb r4, [r1] + movs r0, #0x58 + muls r0, r4, r0 + adds r0, r0, r7 + ldrh r0, [r0, #0x28] + cmp r0, #0 + bne _0804149E + adds r0, r3, #0 + adds r0, #0xdf + ldrb r1, [r0] + ldr r3, _080414C8 + lsls r0, r4, #1 + adds r0, r0, r6 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r3 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _0804149E + ldr r0, _080414C4 + ldrb r1, [r0] + lsls r0, r4, #2 + adds r0, r0, r3 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _0804149E + b _08041384 +_0804149E: + ldr r0, [r5] + adds r0, #0x4e + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + ldr r0, _080414C0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrb r0, [r0] + cmp r1, r0 + bne _08041456 + mov r1, r8 + ldr r0, [r1] + adds r0, #0x4d + movs r1, #3 + strb r1, [r0] + b _0804163C + .align 2, 0 +_080414C0: .4byte 0x02023D10 +_080414C4: .4byte 0x02023EB4 +_080414C8: .4byte 0x082FACB4 +_080414CC: .4byte 0x02024140 +_080414D0: .4byte 0x02023EB1 +_080414D4: .4byte 0x02023EB0 +_080414D8: .4byte 0x02023D28 +_080414DC: .4byte 0x02023D12 +_080414E0: + ldr r0, _0804150C + ldrb r0, [r0] + bl sub_0803F62C + ldr r2, _08041510 + ldr r1, [r2] + adds r1, #0x4e + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r1, _08041514 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + bne _08041518 + ldr r0, [r2] + adds r0, #0x4d + movs r1, #3 + strb r1, [r0] + b _0804163A + .align 2, 0 +_0804150C: .4byte 0x02023EB1 +_08041510: .4byte 0x02024140 +_08041514: .4byte 0x02023D10 +_08041518: + ldr r0, [r2] + adds r0, #0x4d + movs r1, #1 + strb r1, [r0] + b _0804163A +_08041522: + mov r4, r8 + ldr r0, [r4] + adds r0, #0x4e + movs r1, #0 + strb r1, [r0] + ldr r1, [r4] + adds r1, #0x4d + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_08041536: + ldr r0, _08041584 + mov ip, r0 + ldr r7, _08041588 + ldr r5, _0804158C + ldr r2, _08041590 + ldr r6, _08041594 +_08041542: + ldr r0, [r5] + adds r4, r0, #0 + adds r4, #0x4e + ldrb r0, [r4] + strb r0, [r7] + mov r1, ip + strb r0, [r1] + ldrb r3, [r4] + movs r0, #0x58 + muls r0, r3, r0 + adds r0, r0, r2 + ldrh r0, [r0, #0x28] + cmp r0, #0 + bne _08041570 + ldr r0, _08041598 + ldrb r1, [r0] + lsls r0, r3, #2 + adds r0, r0, r6 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _08041570 + b _08041398 +_08041570: + adds r0, r3, #1 + strb r0, [r4] + ldr r1, _0804159C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + bne _08041542 + b _080415B8 + .align 2, 0 +_08041584: .4byte 0x02023EB1 +_08041588: .4byte 0x02023EB0 +_0804158C: .4byte 0x02024140 +_08041590: .4byte 0x02023D28 +_08041594: .4byte 0x082FACB4 +_08041598: .4byte 0x02023EB4 +_0804159C: .4byte 0x02023D10 +_080415A0: + mov r1, r8 + ldr r0, [r1] + adds r0, #0x4e + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + ldr r0, _080415C4 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrb r0, [r0] + cmp r1, r0 + bne _080415C8 +_080415B8: + mov r4, r8 + ldr r0, [r4] + adds r0, #0x4d + movs r1, #6 + strb r1, [r0] + b _0804163C + .align 2, 0 +_080415C4: .4byte 0x02023D10 +_080415C8: + mov r1, r8 + ldr r0, [r1] + adds r0, #0x4d + movs r1, #4 + strb r1, [r0] + b _0804163C +_080415D4: + movs r0, #0 + str r0, [sp] + movs r0, #9 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _080415EE + b _080413A6 +_080415EE: + str r0, [sp] + movs r0, #0xb + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08041604 + b _080413A6 +_08041604: + movs r0, #1 + movs r1, #0 + movs r2, #1 + bl ItemBattleEffects + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _08041618 + b _080413A6 +_08041618: + str r0, [sp] + movs r0, #6 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0804162E + b _080413A6 +_0804162E: + ldr r2, _08041658 + ldr r1, [r2] + adds r1, #0x4d + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0804163A: + mov r8, r2 +_0804163C: + mov r4, r8 + ldr r0, [r4] + adds r0, #0x4d + ldrb r0, [r0] + cmp r0, #7 + beq _0804164A + b _080413B4 +_0804164A: + movs r0, #0 +_0804164C: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08041658: .4byte 0x02024140 + thumb_func_end HandleFaintedMonActions + + thumb_func_start TryClearRageStatuses +TryClearRageStatuses: @ 0x0804165C + push {r4, r5, r6, lr} + movs r3, #0 + ldr r0, _0804169C + adds r5, r0, #0 + ldrb r0, [r5] + cmp r3, r0 + bge _08041694 + ldr r4, _080416A0 + movs r6, #0x80 + lsls r6, r6, #0x10 + ldr r2, _080416A4 +_08041672: + ldr r1, [r2] + adds r0, r1, #0 + ands r0, r6 + cmp r0, #0 + beq _08041688 + ldrh r0, [r4] + cmp r0, #0x63 + beq _08041688 + ldr r0, _080416A8 + ands r1, r0 + str r1, [r2] +_08041688: + adds r4, #2 + adds r2, #0x58 + adds r3, #1 + ldrb r0, [r5] + cmp r3, r0 + blt _08041672 +_08041694: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0804169C: .4byte 0x02023D10 +_080416A0: .4byte 0x02023F18 +_080416A4: .4byte 0x02023D78 +_080416A8: .4byte 0xFF7FFFFF + thumb_func_end TryClearRageStatuses + + thumb_func_start sub_080416AC +sub_080416AC: @ 0x080416AC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + movs r0, #0 + mov sb, r0 + ldr r1, _080416C8 + mov sl, r1 + ldr r2, _080416CC + mov r8, r2 + b _080416DA + .align 2, 0 +_080416C8: .4byte 0x0202411C +_080416CC: .4byte 0x02024140 + thumb_func_end sub_080416AC + + thumb_func_start AtkCanceller_UnableToUseMove +AtkCanceller_UnableToUseMove: @ 0x080416D0 + mov r3, sb + cmp r3, #0 + beq _080416DA + bl _08041FC8 +_080416DA: + mov r4, r8 + ldr r0, [r4] + ldr r7, _080416F8 + adds r0, r0, r7 + ldrb r0, [r0] + cmp r0, #0xe + bls _080416EC + bl _08041FB6 +_080416EC: + lsls r0, r0, #2 + ldr r1, _080416FC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080416F8: .4byte 0x000001A3 +_080416FC: .4byte 0x08041700 +_08041700: @ jump table + .4byte _0804173C @ case 0 + .4byte _08041788 @ case 1 + .4byte _080418D0 @ case 2 + .4byte _08041990 @ case 3 + .4byte _08041A04 @ case 4 + .4byte _08041A80 @ case 5 + .4byte _08041AF8 @ case 6 + .4byte _08041B78 @ case 7 + .4byte _08041C00 @ case 8 + .4byte _08041C68 @ case 9 + .4byte _08041D54 @ case 10 + .4byte _08041DD4 @ case 11 + .4byte _08041E74 @ case 12 + .4byte _08041F5C @ case 13 + .4byte _08041FB6 @ case 14 +_0804173C: + ldr r1, _08041770 + ldr r3, _08041774 + ldrb r2, [r3] + movs r0, #0x58 + muls r2, r0, r2 + adds r1, #0x50 + adds r2, r2, r1 + ldr r0, [r2] + ldr r1, _08041778 + ands r0, r1 + str r0, [r2] + ldr r0, _0804177C + ldrb r2, [r3] + lsls r2, r2, #2 + adds r2, r2, r0 + ldr r0, [r2] + ldr r1, _08041780 + ands r0, r1 + str r0, [r2] + mov r1, r8 + ldr r0, [r1] + ldr r2, _08041784 + adds r1, r0, r2 + bl _08041FB0 + .align 2, 0 +_08041770: .4byte 0x02023D28 +_08041774: .4byte 0x02023EAF +_08041778: .4byte 0xFDFFFFFF +_0804177C: .4byte 0x02023F50 +_08041780: .4byte 0xFFFFBFFF +_08041784: .4byte 0x000001A3 +_08041788: + ldr r7, _080417F0 + ldr r4, _080417F4 + ldrb r1, [r4] + movs r5, #0x58 + adds r0, r1, #0 + muls r0, r5, r0 + adds r6, r7, #0 + adds r6, #0x4c + adds r0, r0, r6 + ldr r0, [r0] + movs r3, #7 + mov r8, r3 + ands r0, r3 + cmp r0, #0 + bne _080417A8 + b _080418AE +_080417A8: + adds r0, r1, #0 + bl UproarWakeUpCheck + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08041808 + ldrb r0, [r4] + adds r2, r0, #0 + muls r2, r5, r2 + adds r2, r2, r6 + ldr r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2] + ldrb r0, [r4] + adds r2, r0, #0 + muls r2, r5, r2 + adds r0, r7, #0 + adds r0, #0x50 + adds r2, r2, r0 + ldr r0, [r2] + ldr r1, _080417F8 + ands r0, r1 + str r0, [r2] + bl BattleScriptPushCursor + ldr r1, _080417FC + movs r0, #1 + strb r0, [r1, #5] + ldr r1, _08041800 + ldr r0, _08041804 + str r0, [r1] + movs r4, #2 + mov sb, r4 + b _080418AE + .align 2, 0 +_080417F0: .4byte 0x02023D28 +_080417F4: .4byte 0x02023EAF +_080417F8: .4byte 0xF7FFFFFF +_080417FC: .4byte 0x02023FD6 +_08041800: .4byte 0x02023EB8 +_08041804: .4byte 0x082897A8 +_08041808: + ldrb r0, [r4] + adds r1, r0, #0 + muls r1, r5, r1 + adds r0, r1, r7 + adds r0, #0x20 + ldrb r0, [r0] + movs r3, #1 + cmp r0, #0x30 + bne _0804181C + movs r3, #2 +_0804181C: + adds r2, r1, r6 + ldr r1, [r2] + adds r0, r1, #0 + mov r7, r8 + ands r0, r7 + cmp r0, r3 + bhs _08041834 + movs r0, #8 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r2] + b _08041838 +_08041834: + subs r0, r1, r3 + str r0, [r2] +_08041838: + ldr r2, _08041878 + ldr r0, _0804187C + ldrb r1, [r0] + movs r0, #0x58 + muls r1, r0, r1 + adds r0, r2, #0 + adds r0, #0x4c + adds r0, r1, r0 + ldr r4, [r0] + movs r0, #7 + ands r4, r0 + cmp r4, #0 + beq _08041890 + ldr r0, _08041880 + ldrh r0, [r0] + cmp r0, #0xad + beq _080418AE + cmp r0, #0xd6 + beq _080418AE + ldr r1, _08041884 + ldr r0, _08041888 + str r0, [r1] + ldr r2, _0804188C + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0xc + orrs r0, r1 + str r0, [r2] + movs r0, #2 + mov sb, r0 + b _080418AE + .align 2, 0 +_08041878: .4byte 0x02023D28 +_0804187C: .4byte 0x02023EAF +_08041880: .4byte 0x02023E8E +_08041884: .4byte 0x02023EB8 +_08041888: .4byte 0x0828979B +_0804188C: .4byte 0x02023F24 +_08041890: + adds r2, #0x50 + adds r2, r1, r2 + ldr r0, [r2] + ldr r1, _080418B8 + ands r0, r1 + str r0, [r2] + bl BattleScriptPushCursor + ldr r0, _080418BC + strb r4, [r0, #5] + ldr r1, _080418C0 + ldr r0, _080418C4 + str r0, [r1] + movs r1, #2 + mov sb, r1 +_080418AE: + ldr r1, _080418C8 + ldr r0, [r1] + ldr r3, _080418CC + adds r2, r0, r3 + b _08041DAA + .align 2, 0 +_080418B8: .4byte 0xF7FFFFFF +_080418BC: .4byte 0x02023FD6 +_080418C0: .4byte 0x02023EB8 +_080418C4: .4byte 0x082897A8 +_080418C8: .4byte 0x02024140 +_080418CC: .4byte 0x000001A3 +_080418D0: + ldr r1, _0804192C + ldr r7, _08041930 + ldrb r0, [r7] + movs r6, #0x58 + muls r0, r6, r0 + adds r5, r1, #0 + adds r5, #0x4c + adds r0, r0, r5 + ldr r0, [r0] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08041970 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #5 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0 + beq _08041948 + ldr r2, _08041934 + ldr r0, _08041938 + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #0x7d + bne _08041916 + b _08041DA2 +_08041916: + ldr r1, _0804193C + ldr r0, _08041940 + str r0, [r1] + ldr r2, _08041944 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #2 + orrs r0, r1 + str r0, [r2] + b _08041968 + .align 2, 0 +_0804192C: .4byte 0x02023D28 +_08041930: .4byte 0x02023EAF +_08041934: .4byte 0x082ED220 +_08041938: .4byte 0x02023E8E +_0804193C: .4byte 0x02023EB8 +_08041940: .4byte 0x082897F2 +_08041944: .4byte 0x02023F24 +_08041948: + ldrb r0, [r7] + adds r2, r0, #0 + muls r2, r6, r2 + adds r2, r2, r5 + ldr r0, [r2] + movs r1, #0x21 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2] + bl BattleScriptPushCursor + ldr r1, _0804197C + ldr r0, _08041980 + str r0, [r1] + ldr r0, _08041984 + strb r4, [r0, #5] +_08041968: + movs r7, #2 + mov sb, r7 + ldr r0, _08041988 + mov r8, r0 +_08041970: + mov r1, r8 + ldr r0, [r1] + ldr r2, _0804198C + adds r1, r0, r2 + b _08041FB0 + .align 2, 0 +_0804197C: .4byte 0x02023EB8 +_08041980: .4byte 0x082897FF +_08041984: .4byte 0x02023FD6 +_08041988: .4byte 0x02024140 +_0804198C: .4byte 0x000001A3 +_08041990: + ldr r1, _080419E4 + ldr r0, _080419E8 + ldrb r2, [r0] + movs r0, #0x58 + muls r0, r2, r0 + adds r0, r0, r1 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x36 + beq _080419A6 + b _08041DA2 +_080419A6: + ldr r0, _080419EC + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #0x18] + lsls r0, r0, #0x1f + cmp r0, #0 + bne _080419BA + b _08041DA2 +_080419BA: + adds r0, r2, #0 + bl CancelMultiTurnMoves + ldr r2, _080419F0 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0xc + orrs r0, r1 + str r0, [r2] + ldr r1, _080419F4 + movs r0, #0 + strb r0, [r1, #5] + ldr r1, _080419F8 + ldr r0, _080419FC + str r0, [r1] + ldr r2, _08041A00 + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + b _08041D9E + .align 2, 0 +_080419E4: .4byte 0x02023D28 +_080419E8: .4byte 0x02023EAF +_080419EC: .4byte 0x02023F60 +_080419F0: .4byte 0x02023F24 +_080419F4: .4byte 0x02023FD6 +_080419F8: .4byte 0x02023EB8 +_080419FC: .4byte 0x08289C35 +_08041A00: .4byte 0x02023F20 +_08041A04: + ldr r1, _08041A5C + ldr r3, _08041A60 + ldrb r2, [r3] + movs r0, #0x58 + muls r0, r2, r0 + adds r1, #0x50 + adds r2, r0, r1 + ldr r1, [r2] + movs r0, #0x80 + lsls r0, r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _08041A50 + ldr r0, _08041A64 + ands r1, r0 + str r1, [r2] + ldr r2, _08041A68 + ldrb r1, [r3] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0 + strb r1, [r0, #0x19] + ldrb r0, [r3] + bl CancelMultiTurnMoves + ldr r1, _08041A6C + ldr r0, _08041A70 + str r0, [r1] + ldr r2, _08041A74 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0xc + orrs r0, r1 + str r0, [r2] + movs r7, #1 + mov sb, r7 +_08041A50: + ldr r1, _08041A78 + ldr r0, [r1] + ldr r3, _08041A7C + adds r2, r0, r3 + b _08041DAA + .align 2, 0 +_08041A5C: .4byte 0x02023D28 +_08041A60: .4byte 0x02023EAF +_08041A64: .4byte 0xFFBFFFFF +_08041A68: .4byte 0x02023F60 +_08041A6C: .4byte 0x02023EB8 +_08041A70: .4byte 0x082879EA +_08041A74: .4byte 0x02023F24 +_08041A78: .4byte 0x02024140 +_08041A7C: .4byte 0x000001A3 +_08041A80: + ldr r1, _08041AD8 + ldr r3, _08041ADC + ldrb r2, [r3] + movs r0, #0x58 + muls r0, r2, r0 + adds r1, #0x50 + adds r2, r0, r1 + ldr r1, [r2] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08041ACC + movs r0, #9 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r2] + ldr r0, _08041AE0 + ldrb r2, [r3] + lsls r2, r2, #4 + adds r2, r2, r0 + ldrb r0, [r2, #2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #2] + ldrb r0, [r3] + bl CancelMultiTurnMoves + ldr r1, _08041AE4 + ldr r0, _08041AE8 + str r0, [r1] + ldr r2, _08041AEC + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0xc + orrs r0, r1 + str r0, [r2] + movs r4, #1 + mov sb, r4 +_08041ACC: + ldr r1, _08041AF0 + ldr r0, [r1] + ldr r7, _08041AF4 + adds r2, r0, r7 + b _08041DAA + .align 2, 0 +_08041AD8: .4byte 0x02023D28 +_08041ADC: .4byte 0x02023EAF +_08041AE0: .4byte 0x02023FE0 +_08041AE4: .4byte 0x02023EB8 +_08041AE8: .4byte 0x08289823 +_08041AEC: .4byte 0x02023F24 +_08041AF0: .4byte 0x02024140 +_08041AF4: .4byte 0x000001A3 +_08041AF8: + ldr r0, _08041B50 + ldr r3, _08041B54 + ldrb r2, [r3] + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, _08041B58 + ldrh r1, [r1, #4] + ldrh r0, [r0] + cmp r1, r0 + bne _08041B44 + cmp r1, #0 + beq _08041B44 + ldr r0, _08041B5C + lsls r2, r2, #4 + adds r2, r2, r0 + ldrb r0, [r2, #1] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #1] + ldr r1, _08041B60 + ldrb r0, [r3] + strb r0, [r1, #0x17] + ldrb r0, [r3] + bl CancelMultiTurnMoves + ldr r1, _08041B64 + ldr r0, _08041B68 + str r0, [r1] + ldr r2, _08041B6C + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0xc + orrs r0, r1 + str r0, [r2] + movs r0, #1 + mov sb, r0 +_08041B44: + ldr r1, _08041B70 + ldr r0, [r1] + ldr r3, _08041B74 + adds r2, r0, r3 + b _08041DAA + .align 2, 0 +_08041B50: .4byte 0x02023F60 +_08041B54: .4byte 0x02023EAF +_08041B58: .4byte 0x02023E8E +_08041B5C: .4byte 0x02023FE0 +_08041B60: .4byte 0x02024118 +_08041B64: .4byte 0x02023EB8 +_08041B68: .4byte 0x0828939C +_08041B6C: .4byte 0x02023F24 +_08041B70: .4byte 0x02024140 +_08041B74: .4byte 0x000001A3 +_08041B78: + ldr r0, _08041BD8 + ldr r4, _08041BDC + ldrb r3, [r4] + lsls r1, r3, #3 + subs r1, r1, r3 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #0x13] + lsls r0, r0, #0x1c + cmp r0, #0 + beq _08041BCC + ldr r2, _08041BE0 + ldr r0, _08041BE4 + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #1] + cmp r0, #0 + bne _08041BCC + ldr r0, _08041BE8 + lsls r2, r3, #4 + adds r2, r2, r0 + ldrb r0, [r2, #2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #2] + ldrb r0, [r4] + bl CancelMultiTurnMoves + ldr r1, _08041BEC + ldr r0, _08041BF0 + str r0, [r1] + ldr r2, _08041BF4 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0xc + orrs r0, r1 + str r0, [r2] + movs r4, #1 + mov sb, r4 +_08041BCC: + ldr r1, _08041BF8 + ldr r0, [r1] + ldr r7, _08041BFC + adds r2, r0, r7 + b _08041DAA + .align 2, 0 +_08041BD8: .4byte 0x02023F60 +_08041BDC: .4byte 0x02023EAF +_08041BE0: .4byte 0x082ED220 +_08041BE4: .4byte 0x02023E8E +_08041BE8: .4byte 0x02023FE0 +_08041BEC: .4byte 0x02023EB8 +_08041BF0: .4byte 0x0828962C +_08041BF4: .4byte 0x02023F24 +_08041BF8: .4byte 0x02024140 +_08041BFC: .4byte 0x000001A3 +_08041C00: + ldr r4, _08041C48 + ldrb r0, [r4] + ldr r1, _08041C4C + ldrh r1, [r1] + bl GetImprisonedMovesCount + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08041C3E + ldr r0, _08041C50 + ldrb r2, [r4] + lsls r2, r2, #4 + adds r2, r2, r0 + ldrb r0, [r2, #1] + movs r1, #0x20 + orrs r0, r1 + strb r0, [r2, #1] + ldrb r0, [r4] + bl CancelMultiTurnMoves + ldr r1, _08041C54 + ldr r0, _08041C58 + str r0, [r1] + ldr r2, _08041C5C + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0xc + orrs r0, r1 + str r0, [r2] + movs r0, #1 + mov sb, r0 +_08041C3E: + ldr r1, _08041C60 + ldr r0, [r1] + ldr r3, _08041C64 + adds r2, r0, r3 + b _08041DAA + .align 2, 0 +_08041C48: .4byte 0x02023EAF +_08041C4C: .4byte 0x02023E8E +_08041C50: .4byte 0x02023FE0 +_08041C54: .4byte 0x02023EB8 +_08041C58: .4byte 0x082896FE +_08041C5C: .4byte 0x02023F24 +_08041C60: .4byte 0x02024140 +_08041C64: .4byte 0x000001A3 +_08041C68: + ldr r7, _08041CB0 + ldr r5, _08041CB4 + ldrb r0, [r5] + movs r6, #0x58 + muls r0, r6, r0 + adds r4, r7, #0 + adds r4, #0x50 + adds r2, r0, r4 + ldr r1, [r2] + movs r3, #7 + adds r0, r1, #0 + ands r0, r3 + cmp r0, #0 + beq _08041D3A + subs r0, r1, #1 + str r0, [r2] + ldrb r0, [r5] + muls r0, r6, r0 + adds r0, r0, r4 + ldr r0, [r0] + ands r0, r3 + cmp r0, #0 + beq _08041D28 + bl Random + movs r1, #1 + movs r2, #1 + ands r2, r0 + cmp r2, #0 + beq _08041CBC + ldr r1, _08041CB8 + movs r0, #0 + strb r0, [r1, #5] + bl BattleScriptPushCursor + b _08041D06 + .align 2, 0 +_08041CB0: .4byte 0x02023D28 +_08041CB4: .4byte 0x02023EAF +_08041CB8: .4byte 0x02023FD6 +_08041CBC: + ldr r0, _08041D0C + movs r4, #1 + strb r1, [r0, #5] + ldr r1, _08041D10 + ldrb r0, [r5] + strb r0, [r1] + ldrb r0, [r5] + adds r1, r0, #0 + muls r1, r6, r1 + adds r1, r1, r7 + movs r0, #0x28 + str r0, [sp] + str r2, [sp, #4] + ldrb r0, [r5] + str r0, [sp, #8] + ldrb r0, [r5] + str r0, [sp, #0xc] + adds r0, r1, #0 + movs r2, #1 + movs r3, #0 + bl CalculateBaseDamage + ldr r1, _08041D14 + str r0, [r1] + ldr r0, _08041D18 + ldrb r1, [r5] + lsls r1, r1, #4 + adds r1, r1, r0 + ldrb r0, [r1, #1] + orrs r0, r4 + strb r0, [r1, #1] + ldr r2, _08041D1C + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0xc + orrs r0, r1 + str r0, [r2] +_08041D06: + ldr r1, _08041D20 + ldr r0, _08041D24 + b _08041D30 + .align 2, 0 +_08041D0C: .4byte 0x02023FD6 +_08041D10: .4byte 0x02023EB0 +_08041D14: .4byte 0x02023E94 +_08041D18: .4byte 0x02023FE0 +_08041D1C: .4byte 0x02023F24 +_08041D20: .4byte 0x02023EB8 +_08041D24: .4byte 0x08289845 +_08041D28: + bl BattleScriptPushCursor + ldr r1, _08041D44 + ldr r0, _08041D48 +_08041D30: + str r0, [r1] + movs r4, #1 + mov sb, r4 + ldr r7, _08041D4C + mov r8, r7 +_08041D3A: + mov r1, r8 + ldr r0, [r1] + ldr r2, _08041D50 + adds r1, r0, r2 + b _08041FB0 + .align 2, 0 +_08041D44: .4byte 0x02023EB8 +_08041D48: .4byte 0x08289888 +_08041D4C: .4byte 0x02024140 +_08041D50: .4byte 0x000001A3 +_08041D54: + ldr r1, _08041DB4 + ldr r4, _08041DB8 + ldrb r2, [r4] + movs r0, #0x58 + muls r0, r2, r0 + adds r1, #0x4c + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08041DA2 + bl Random + lsls r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r0 + cmp r1, #0 + bne _08041DA2 + ldr r0, _08041DBC + ldrb r2, [r4] + lsls r2, r2, #4 + adds r2, r2, r0 + ldrb r0, [r2] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08041DC0 + ldr r0, _08041DC4 + str r0, [r1] + ldr r2, _08041DC8 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0xc + orrs r0, r1 + str r0, [r2] +_08041D9E: + movs r3, #1 + mov sb, r3 +_08041DA2: + ldr r1, _08041DCC + ldr r0, [r1] + ldr r4, _08041DD0 + adds r2, r0, r4 +_08041DAA: + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + mov r8, r1 + b _08041FB6 + .align 2, 0 +_08041DB4: .4byte 0x02023D28 +_08041DB8: .4byte 0x02023EAF +_08041DBC: .4byte 0x02023FE0 +_08041DC0: .4byte 0x02023EB8 +_08041DC4: .4byte 0x08289813 +_08041DC8: .4byte 0x02023F24 +_08041DCC: .4byte 0x02024140 +_08041DD0: .4byte 0x000001A3 +_08041DD4: + ldr r1, _08041E0C + ldr r4, _08041E10 + ldrb r2, [r4] + movs r0, #0x58 + muls r0, r2, r0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r1, [r0] + movs r0, #0xf0 + lsls r0, r0, #0xc + ands r1, r0 + cmp r1, #0 + beq _08041E4E + lsrs r0, r1, #0x10 + bl CountTrailingZeroBits + ldr r1, _08041E14 + strb r0, [r1, #0x17] + bl Random + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _08041E18 + bl BattleScriptPushCursor + b _08041E40 + .align 2, 0 +_08041E0C: .4byte 0x02023D28 +_08041E10: .4byte 0x02023EAF +_08041E14: .4byte 0x02024118 +_08041E18: + ldr r0, _08041E58 + bl BattleScriptPush + ldr r2, _08041E5C + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0xc + orrs r0, r1 + str r0, [r2] + ldr r0, _08041E60 + ldrb r2, [r4] + lsls r2, r2, #4 + adds r2, r2, r0 + ldrb r0, [r2, #1] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2, #1] + ldrb r0, [r4] + bl CancelMultiTurnMoves +_08041E40: + ldr r1, _08041E64 + ldr r0, _08041E68 + str r0, [r1] + movs r7, #1 + mov sb, r7 + ldr r0, _08041E6C + mov r8, r0 +_08041E4E: + mov r1, r8 + ldr r0, [r1] + ldr r2, _08041E70 + adds r1, r0, r2 + b _08041FB0 + .align 2, 0 +_08041E58: .4byte 0x082898BC +_08041E5C: .4byte 0x02023F24 +_08041E60: .4byte 0x02023FE0 +_08041E64: .4byte 0x02023EB8 +_08041E68: .4byte 0x082898AF +_08041E6C: .4byte 0x02024140 +_08041E70: .4byte 0x000001A3 +_08041E74: + ldr r1, _08041EAC + ldr r6, _08041EB0 + ldrb r0, [r6] + movs r5, #0x58 + muls r0, r5, r0 + adds r1, #0x50 + adds r3, r0, r1 + ldr r2, [r3] + movs r4, #0xc0 + lsls r4, r4, #2 + adds r0, r2, #0 + ands r0, r4 + cmp r0, #0 + beq _08041F46 + ldr r7, _08041EB4 + adds r0, r2, r7 + str r0, [r3] + ldrb r2, [r6] + adds r0, r2, #0 + muls r0, r5, r0 + adds r0, r0, r1 + ldr r0, [r0] + ands r0, r4 + cmp r0, #0 + beq _08041EC0 + ldr r1, _08041EB8 + ldr r0, _08041EBC + b _08041F40 + .align 2, 0 +_08041EAC: .4byte 0x02023D28 +_08041EB0: .4byte 0x02023EAF +_08041EB4: .4byte 0xFFFFFF00 +_08041EB8: .4byte 0x02023EB8 +_08041EBC: .4byte 0x082892F9 +_08041EC0: + ldr r3, _08041F18 + lsls r0, r2, #2 + adds r0, r0, r3 + ldr r0, [r0] + cmp r0, #0 + beq _08041F3C + ldr r1, _08041F1C + movs r0, #0x75 + strh r0, [r1] + ldrb r0, [r6] + lsls r0, r0, #2 + adds r0, r0, r3 + ldr r0, [r0] + lsls r0, r0, #1 + mov r1, sl + str r0, [r1] + ldr r4, _08041F20 + ldr r1, _08041F24 + ldrb r0, [r6] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4] + ldr r0, _08041F28 + ldrb r1, [r0] + ldr r2, _08041F2C + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _08041F0A + movs r0, #0x75 + movs r1, #1 + bl GetMoveTarget + strb r0, [r4] +_08041F0A: + ldr r1, _08041F30 + ldr r0, _08041F34 + str r0, [r1] + ldr r2, _08041F38 + mov r8, r2 + b _08041F42 + .align 2, 0 +_08041F18: .4byte 0x02023E9C +_08041F1C: .4byte 0x02023E8E +_08041F20: .4byte 0x02023EB0 +_08041F24: .4byte 0x02023F2C +_08041F28: .4byte 0x02023EB4 +_08041F2C: .4byte 0x082FACB4 +_08041F30: .4byte 0x02023EB8 +_08041F34: .4byte 0x08289304 +_08041F38: .4byte 0x02024140 +_08041F3C: + ldr r1, _08041F50 + ldr r0, _08041F54 +_08041F40: + str r0, [r1] +_08041F42: + movs r3, #1 + mov sb, r3 +_08041F46: + mov r4, r8 + ldr r0, [r4] + ldr r7, _08041F58 + adds r1, r0, r7 + b _08041FB0 + .align 2, 0 +_08041F50: .4byte 0x02023EB8 +_08041F54: .4byte 0x0828934C +_08041F58: .4byte 0x000001A3 +_08041F5C: + ldr r1, _08042008 + ldr r0, _0804200C + ldrb r2, [r0] + movs r0, #0x58 + muls r0, r2, r0 + adds r1, #0x4c + adds r4, r0, r1 + ldr r3, [r4] + movs r0, #0x20 + ands r0, r3 + cmp r0, #0 + beq _08041FA8 + ldr r2, _08042010 + ldr r0, _08042014 + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #0x7d + bne _08041FA0 + movs r0, #0x21 + rsbs r0, r0, #0 + ands r3, r0 + str r3, [r4] + bl BattleScriptPushCursor + ldr r1, _08042018 + ldr r0, _0804201C + str r0, [r1] + ldr r1, _08042020 + movs r0, #1 + strb r0, [r1, #5] +_08041FA0: + movs r0, #2 + mov sb, r0 + ldr r1, _08042024 + mov r8, r1 +_08041FA8: + mov r2, r8 + ldr r0, [r2] + ldr r3, _08042028 + adds r1, r0, r3 +_08041FB0: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_08041FB6: + mov r4, r8 + ldr r0, [r4] + ldr r7, _08042028 + adds r0, r0, r7 + ldrb r0, [r0] + cmp r0, #0xe + beq _08041FC8 + bl AtkCanceller_UnableToUseMove +_08041FC8: + mov r0, sb + cmp r0, #2 + bne _08041FF4 + ldr r4, _0804202C + ldr r0, _0804200C + ldrb r0, [r0] + strb r0, [r4] + ldrb r1, [r4] + movs r0, #0x58 + muls r0, r1, r0 + ldr r1, _08042030 + adds r0, r0, r1 + str r0, [sp] + movs r0, #0 + movs r1, #0x28 + movs r2, #0 + movs r3, #4 + bl BtlController_EmitSetMonData + ldrb r0, [r4] + bl MarkBattlerForControllerExec +_08041FF4: + mov r0, sb + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08042008: .4byte 0x02023D28 +_0804200C: .4byte 0x02023EAF +_08042010: .4byte 0x082ED220 +_08042014: .4byte 0x02023E8E +_08042018: .4byte 0x02023EB8 +_0804201C: .4byte 0x082897FF +_08042020: .4byte 0x02023FD6 +_08042024: .4byte 0x02024140 +_08042028: .4byte 0x000001A3 +_0804202C: .4byte 0x02023D08 +_08042030: .4byte 0x02023D74 + thumb_func_end AtkCanceller_UnableToUseMove + + thumb_func_start HasNoMonsToSwitch +HasNoMonsToSwitch: @ 0x08042034 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sl, r1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sb, r2 + ldr r0, _08042060 + ldr r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08042064 + movs r0, #0 + b _080422E0 + .align 2, 0 +_08042060: .4byte 0x02022C90 +_08042064: + movs r0, #0x80 + lsls r0, r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _080420DC + adds r0, r4, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + ldr r1, _080420D4 + mov r8, r1 + cmp r0, #0 + bne _08042082 + ldr r2, _080420D8 + mov r8, r2 +_08042082: + movs r0, #2 + ands r0, r4 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x19 + lsls r0, r6, #1 + adds r4, r0, r6 + adds r0, r4, #3 + cmp r4, r0 + bge _080420CC + adds r7, r0, #0 +_08042096: + movs r0, #0x64 + muls r0, r4, r0 + mov r1, r8 + adds r5, r1, r0 + adds r0, r5, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _080420C6 + adds r0, r5, #0 + movs r1, #0x41 + bl GetMonData + cmp r0, #0 + beq _080420C6 + adds r0, r5, #0 + movs r1, #0x41 + bl GetMonData + movs r1, #0xce + lsls r1, r1, #1 + cmp r0, r1 + bne _080420CC +_080420C6: + adds r4, #1 + cmp r4, r7 + blt _08042096 +_080420CC: + movs r1, #0 + lsls r0, r6, #1 + adds r0, r0, r6 + b _08042196 + .align 2, 0 +_080420D4: .4byte 0x020243E8 +_080420D8: .4byte 0x02024190 +_080420DC: + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080421AC + movs r0, #0x80 + lsls r0, r0, #0x10 + ands r1, r0 + cmp r1, #0 + beq _08042124 + adds r0, r4, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08042110 + ldr r2, _0804210C + mov r8, r2 + adds r0, r4, #0 + bl GetBattlerMultiplayerId + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + b _08042142 + .align 2, 0 +_0804210C: .4byte 0x02024190 +_08042110: + ldr r0, _08042120 + mov r8, r0 + movs r1, #1 + eors r1, r4 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r6, r0, #0x1f + b _0804214C + .align 2, 0 +_08042120: .4byte 0x020243E8 +_08042124: + adds r0, r4, #0 + bl GetBattlerMultiplayerId + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + adds r0, r4, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + ldr r1, _080421A4 + mov r8, r1 + cmp r0, #0 + bne _08042142 + ldr r2, _080421A8 + mov r8, r2 +_08042142: + adds r0, r7, #0 + bl GetLinkTrainerFlankId + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_0804214C: + lsls r0, r6, #1 + adds r4, r0, r6 + adds r1, r4, #3 + mov sb, r0 + cmp r4, r1 + bge _08042190 + adds r7, r1, #0 +_0804215A: + movs r0, #0x64 + muls r0, r4, r0 + mov r1, r8 + adds r5, r1, r0 + adds r0, r5, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _0804218A + adds r0, r5, #0 + movs r1, #0x41 + bl GetMonData + cmp r0, #0 + beq _0804218A + adds r0, r5, #0 + movs r1, #0x41 + bl GetMonData + movs r1, #0xce + lsls r1, r1, #1 + cmp r0, r1 + bne _08042190 +_0804218A: + adds r4, #1 + cmp r4, r7 + blt _0804215A +_08042190: + movs r1, #0 + mov r2, sb + adds r0, r2, r6 +_08042196: + adds r0, #3 + cmp r4, r0 + bne _0804219E + movs r1, #1 +_0804219E: + adds r0, r1, #0 + b _080422E0 + .align 2, 0 +_080421A4: .4byte 0x020243E8 +_080421A8: .4byte 0x02024190 +_080421AC: + movs r0, #0x80 + lsls r0, r0, #8 + ands r1, r0 + cmp r1, #0 + beq _0804221A + adds r0, r4, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0804221A + ldr r0, _080421D8 + mov r8, r0 + movs r6, #3 + cmp r4, #1 + bne _080421D0 + movs r6, #0 +_080421D0: + adds r4, r6, #0 + adds r6, r4, #3 + b _080421DE + .align 2, 0 +_080421D8: .4byte 0x020243E8 +_080421DC: + adds r4, #1 +_080421DE: + cmp r4, r6 + bge _08042212 + movs r0, #0x64 + muls r0, r4, r0 + mov r1, r8 + adds r5, r1, r0 + adds r0, r5, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _080421DC + adds r0, r5, #0 + movs r1, #0x41 + bl GetMonData + cmp r0, #0 + beq _080421DC + adds r0, r5, #0 + movs r1, #0x41 + bl GetMonData + movs r1, #0xce + lsls r1, r1, #1 + cmp r0, r1 + beq _080421DC +_08042212: + movs r0, #0 + cmp r4, r6 + bne _080422E0 + b _080422DE +_0804221A: + adds r0, r4, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08042248 + movs r0, #1 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r0, #3 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r2, _08042244 + mov r8, r2 + b _08042260 + .align 2, 0 +_08042244: .4byte 0x020243E8 +_08042248: + movs r0, #0 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r0, #2 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _080422F0 + mov r8, r0 +_08042260: + mov r1, sl + cmp r1, #6 + bne _08042270 + ldr r1, _080422F4 + lsls r0, r7, #1 + adds r0, r0, r1 + ldrb r0, [r0] + mov sl, r0 +_08042270: + mov r2, sb + cmp r2, #6 + bne _08042280 + ldr r1, _080422F4 + lsls r0, r6, #1 + adds r0, r0, r1 + ldrb r0, [r0] + mov sb, r0 +_08042280: + movs r4, #0 +_08042282: + movs r0, #0x64 + muls r0, r4, r0 + mov r1, r8 + adds r5, r1, r0 + adds r0, r5, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _080422D2 + adds r0, r5, #0 + movs r1, #0x41 + bl GetMonData + cmp r0, #0 + beq _080422D2 + adds r0, r5, #0 + movs r1, #0x41 + bl GetMonData + movs r1, #0xce + lsls r1, r1, #1 + cmp r0, r1 + beq _080422D2 + cmp r4, sl + beq _080422D2 + cmp r4, sb + beq _080422D2 + ldr r0, _080422F8 + ldr r1, [r0] + adds r0, r7, r1 + adds r0, #0x5c + ldrb r0, [r0] + cmp r4, r0 + beq _080422D2 + adds r0, r6, r1 + adds r0, #0x5c + ldrb r0, [r0] + cmp r4, r0 + bne _080422D8 +_080422D2: + adds r4, #1 + cmp r4, #5 + ble _08042282 +_080422D8: + movs r0, #0 + cmp r4, #6 + bne _080422E0 +_080422DE: + movs r0, #1 +_080422E0: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080422F0: .4byte 0x02024190 +_080422F4: .4byte 0x02023D12 +_080422F8: .4byte 0x02024140 + thumb_func_end HasNoMonsToSwitch + + thumb_func_start CastformDataTypeChange +CastformDataTypeChange: @ 0x080422FC + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r5, #0 + ldr r1, _0804236C + movs r0, #0x58 + muls r0, r6, r0 + adds r4, r0, r1 + ldrh r1, [r4] + ldr r0, _08042370 + cmp r1, r0 + bne _080423A0 + adds r0, r4, #0 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x3b + bne _080423A0 + ldrh r0, [r4, #0x28] + cmp r0, #0 + beq _080423A0 + str r5, [sp] + movs r0, #0x13 + movs r1, #0 + movs r2, #0xd + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804234E + str r5, [sp] + movs r0, #0x13 + movs r1, #0 + movs r2, #0x4d + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08042374 +_0804234E: + adds r2, r4, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #0 + beq _08042374 + adds r1, r4, #0 + adds r1, #0x22 + ldrb r0, [r1] + cmp r0, #0 + beq _08042374 + strb r5, [r2] + strb r5, [r1] + movs r0, #1 + b _08042458 + .align 2, 0 +_0804236C: .4byte 0x02023D28 +_08042370: .4byte 0x00000181 +_08042374: + movs r0, #0 + str r0, [sp] + movs r0, #0x13 + movs r1, #0 + movs r2, #0xd + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _080423A0 + str r0, [sp] + movs r0, #0x13 + movs r1, #0 + movs r2, #0x4d + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080423A4 +_080423A0: + movs r0, #0 + b _08042458 +_080423A4: + ldr r1, _08042460 + ldrh r0, [r1] + movs r2, #0xe7 + ands r2, r0 + adds r4, r1, #0 + cmp r2, #0 + bne _080423D2 + ldr r1, _08042464 + movs r0, #0x58 + muls r0, r6, r0 + adds r1, r0, r1 + adds r3, r1, #0 + adds r3, #0x21 + ldrb r0, [r3] + cmp r0, #0 + beq _080423D2 + adds r1, #0x22 + ldrb r0, [r1] + cmp r0, #0 + beq _080423D2 + strb r2, [r3] + strb r2, [r1] + movs r5, #1 +_080423D2: + ldrh r1, [r4] + movs r0, #0x60 + ands r0, r1 + cmp r0, #0 + beq _080423FE + ldr r1, _08042464 + movs r0, #0x58 + muls r0, r6, r0 + adds r1, r0, r1 + adds r2, r1, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #0xa + beq _080423FE + adds r1, #0x22 + ldrb r0, [r1] + cmp r0, #0xa + beq _080423FE + movs r0, #0xa + strb r0, [r2] + strb r0, [r1] + movs r5, #2 +_080423FE: + ldrh r1, [r4] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + beq _0804242A + ldr r1, _08042464 + movs r0, #0x58 + muls r0, r6, r0 + adds r1, r0, r1 + adds r2, r1, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #0xb + beq _0804242A + adds r1, #0x22 + ldrb r0, [r1] + cmp r0, #0xb + beq _0804242A + movs r0, #0xb + strb r0, [r2] + strb r0, [r1] + movs r5, #3 +_0804242A: + ldrh r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08042456 + ldr r1, _08042464 + movs r0, #0x58 + muls r0, r6, r0 + adds r1, r0, r1 + adds r2, r1, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #0xf + beq _08042456 + adds r1, #0x22 + ldrb r0, [r1] + cmp r0, #0xf + beq _08042456 + movs r0, #0xf + strb r0, [r2] + strb r0, [r1] + movs r5, #4 +_08042456: + adds r0, r5, #0 +_08042458: + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08042460: .4byte 0x02024070 +_08042464: .4byte 0x02023D28 + thumb_func_end CastformDataTypeChange + + thumb_func_start AbilityBattleEffects +AbilityBattleEffects: @ 0x08042468 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x28 + ldr r4, [sp, #0x48] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sl, r1 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r8, r3 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + movs r0, #0 + mov sb, r0 + ldr r5, _080424C4 + ldr r1, _080424C8 + ldrb r0, [r5] + ldrb r1, [r1] + cmp r0, r1 + blo _080424A4 + mov r1, sl + strb r1, [r5] +_080424A4: + ldrb r0, [r5] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080424D4 + ldr r1, _080424CC + ldrb r0, [r5] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _080424D0 + b _080424E4 + .align 2, 0 +_080424C4: .4byte 0x02023EAF +_080424C8: .4byte 0x02023D10 +_080424CC: .4byte 0x02023D12 +_080424D0: .4byte 0x02024190 +_080424D4: + ldr r1, _08042514 + ldrb r0, [r5] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _08042518 +_080424E4: + adds r7, r1, r0 + ldr r5, _0804251C + ldr r1, _08042520 + ldrb r0, [r5] + ldrb r1, [r1] + cmp r0, r1 + blo _080424F6 + mov r2, sl + strb r2, [r5] +_080424F6: + ldrb r0, [r5] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08042528 + ldr r1, _08042514 + ldrb r0, [r5] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _08042524 + b _08042538 + .align 2, 0 +_08042514: .4byte 0x02023D12 +_08042518: .4byte 0x020243E8 +_0804251C: .4byte 0x02023EB0 +_08042520: .4byte 0x02023D10 +_08042524: .4byte 0x02024190 +_08042528: + ldr r1, _08042588 + ldrb r0, [r5] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _0804258C +_08042538: + adds r5, r1, r0 + adds r0, r7, #0 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #8] + adds r0, r7, #0 + movs r1, #0 + bl GetMonData + str r0, [sp, #0x10] + adds r0, r5, #0 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0xc] + adds r0, r5, #0 + movs r1, #0 + bl GetMonData + str r0, [sp, #0x14] + ldr r0, _08042590 + ldr r0, [r0] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0804257A + bl _0804407A +_0804257A: + mov r3, r8 + cmp r3, #0 + beq _08042598 + ldr r0, _08042594 + strb r3, [r0] + adds r7, r0, #0 + b _080425AE + .align 2, 0 +_08042588: .4byte 0x02023D12 +_0804258C: .4byte 0x020243E8 +_08042590: .4byte 0x02022C90 +_08042594: .4byte 0x02023EAE +_08042598: + ldr r2, _080425B8 + ldr r1, _080425BC + movs r0, #0x58 + mov r5, sl + muls r5, r0, r5 + adds r0, r5, #0 + adds r0, r0, r1 + adds r0, #0x20 + ldrb r0, [r0] + strb r0, [r2] + adds r7, r2, #0 +_080425AE: + cmp r4, #0 + beq _080425C0 + adds r5, r4, #0 + b _080425C4 + .align 2, 0 +_080425B8: .4byte 0x02023EAE +_080425BC: .4byte 0x02023D28 +_080425C0: + ldr r0, _080425D8 + ldrh r5, [r0] +_080425C4: + ldr r1, _080425DC + ldr r0, [r1] + ldrb r0, [r0, #0x13] + mov r8, r1 + cmp r0, #0 + beq _080425E0 + movs r3, #0x3f + ands r3, r0 + b _080425EC + .align 2, 0 +_080425D8: .4byte 0x02023E8E +_080425DC: .4byte 0x02024140 +_080425E0: + ldr r1, _08042600 + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r3, [r0, #2] +_080425EC: + ldr r0, [sp, #4] + cmp r0, #0x13 + bls _080425F6 + bl _0804405E +_080425F6: + lsls r0, r0, #2 + ldr r1, _08042604 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08042600: .4byte 0x082ED220 +_08042604: .4byte 0x08042608 +_08042608: @ jump table + .4byte _08042658 @ case 0 + .4byte _0804291C @ case 1 + .4byte _08042B38 @ case 2 + .4byte _08042BCC @ case 3 + .4byte _08042DEC @ case 4 + .4byte _08043548 @ case 5 + .4byte _080438AC @ case 6 + .4byte _080438FC @ case 7 + .4byte _08043980 @ case 8 + .4byte _08043A04 @ case 9 + .4byte _08043C24 @ case 10 + .4byte _08043A48 @ case 11 + .4byte _08043C68 @ case 12 + .4byte _08043CC4 @ case 13 + .4byte _08043D20 @ case 14 + .4byte _08043E1C @ case 15 + .4byte _08043E60 @ case 16 + .4byte _08043EBC @ case 17 + .4byte _0804402C @ case 18 + .4byte _08043DD6 @ case 19 +_08042658: + ldr r2, _0804268C + ldr r0, _08042690 + ldrb r1, [r2] + adds r5, r0, #0 + ldrb r3, [r5] + cmp r1, r3 + blo _0804266A + mov r0, sl + strb r0, [r2] +_0804266A: + ldrb r0, [r7] + cmp r0, #0x2d + bne _08042672 + b _080427E8 +_08042672: + cmp r0, #0x2d + bgt _080426A4 + cmp r0, #0xd + bne _0804267C + b _080428E4 +_0804267C: + cmp r0, #0xd + bgt _08042694 + cmp r0, #2 + bne _08042686 + b _080427B8 +_08042686: + bl _0804405E + .align 2, 0 +_0804268C: .4byte 0x02023EAF +_08042690: .4byte 0x02023D10 +_08042694: + cmp r0, #0x16 + bne _0804269A + b _08042848 +_0804269A: + cmp r0, #0x24 + bne _080426A0 + b _080428A8 +_080426A0: + bl _0804405E +_080426A4: + cmp r0, #0x46 + bne _080426AA + b _08042818 +_080426AA: + cmp r0, #0x46 + bgt _080426B8 + cmp r0, #0x3b + bne _080426B4 + b _0804287C +_080426B4: + bl _0804405E +_080426B8: + cmp r0, #0x4d + bne _080426BE + b _080428E4 +_080426BE: + cmp r0, #0xff + beq _080426C6 + bl _0804405E +_080426C6: + ldr r0, _080426EC + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + bne _0804278C + bl GetCurrentWeather + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, #3 + cmp r0, #0xa + bhi _0804278C + lsls r0, r0, #2 + ldr r1, _080426F0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080426EC: .4byte 0x02022C90 +_080426F0: .4byte 0x080426F4 +_080426F4: @ jump table + .4byte _08042720 @ case 0 + .4byte _0804278C @ case 1 + .4byte _08042720 @ case 2 + .4byte _0804278C @ case 3 + .4byte _0804278C @ case 4 + .4byte _08042744 @ case 5 + .4byte _0804278C @ case 6 + .4byte _0804278C @ case 7 + .4byte _0804278C @ case 8 + .4byte _08042768 @ case 9 + .4byte _08042720 @ case 10 +_08042720: + ldr r2, _0804273C + ldrh r1, [r2] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _0804278C + movs r0, #5 + strh r0, [r2] + ldr r1, _08042740 + movs r0, #0xa + strb r0, [r1, #0x10] + mov r2, sl + strb r2, [r1, #0x17] + b _08042782 + .align 2, 0 +_0804273C: .4byte 0x02024070 +_08042740: .4byte 0x02024118 +_08042744: + ldr r3, _08042760 + ldrh r1, [r3] + movs r2, #0x18 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _0804278C + strh r2, [r3] + ldr r1, _08042764 + movs r0, #0xc + strb r0, [r1, #0x10] + mov r3, sl + strb r3, [r1, #0x17] + b _08042782 + .align 2, 0 +_08042760: .4byte 0x02024070 +_08042764: .4byte 0x02024118 +_08042768: + ldr r3, _080427A8 + ldrh r1, [r3] + movs r2, #0x60 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _0804278C + strh r2, [r3] + ldr r1, _080427AC + movs r0, #0xb + strb r0, [r1, #0x10] + mov r5, sl + strb r5, [r1, #0x17] +_08042782: + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 +_0804278C: + mov r0, sb + cmp r0, #0 + bne _08042796 + bl _0804407A +_08042796: + bl GetCurrentWeather + ldr r1, _080427B0 + strb r0, [r1, #5] + ldr r0, _080427B4 + bl BattleScriptPushCursorAndCallback + bl _0804405E + .align 2, 0 +_080427A8: .4byte 0x02024070 +_080427AC: .4byte 0x02024118 +_080427B0: .4byte 0x02023FD6 +_080427B4: .4byte 0x0828926F +_080427B8: + ldr r2, _080427DC + ldrh r1, [r2] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080427C8 + bl _0804405E +_080427C8: + movs r0, #5 + strh r0, [r2] + ldr r0, _080427E0 + bl BattleScriptPushCursorAndCallback + ldr r0, _080427E4 + mov r1, sl + strb r1, [r0, #0x17] + bl _08044010 + .align 2, 0 +_080427DC: .4byte 0x02024070 +_080427E0: .4byte 0x082899B8 +_080427E4: .4byte 0x02024118 +_080427E8: + ldr r2, _0804280C + ldrh r1, [r2] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080427F8 + bl _0804405E +_080427F8: + movs r0, #0x18 + strh r0, [r2] + ldr r0, _08042810 + bl BattleScriptPushCursorAndCallback + ldr r0, _08042814 + mov r2, sl + strb r2, [r0, #0x17] + bl _08044010 + .align 2, 0 +_0804280C: .4byte 0x02024070 +_08042810: .4byte 0x082899F8 +_08042814: .4byte 0x02024118 +_08042818: + ldr r2, _0804283C + ldrh r1, [r2] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08042828 + bl _0804405E +_08042828: + movs r0, #0x60 + strh r0, [r2] + ldr r0, _08042840 + bl BattleScriptPushCursorAndCallback + ldr r0, _08042844 + mov r3, sl + strb r3, [r0, #0x17] + bl _08044010 + .align 2, 0 +_0804283C: .4byte 0x02024070 +_08042840: .4byte 0x08289AB2 +_08042844: .4byte 0x02024118 +_08042848: + ldr r0, _08042874 + mov r5, sl + lsls r2, r5, #2 + adds r1, r2, r5 + lsls r1, r1, #2 + adds r3, r1, r0 + ldrb r0, [r3] + lsls r0, r0, #0x1c + cmp r0, #0 + bge _08042860 + bl _0804405E +_08042860: + ldr r1, _08042878 + adds r1, r2, r1 + ldr r0, [r1] + movs r2, #0x80 + lsls r2, r2, #0xc + orrs r0, r2 + str r0, [r1] + ldrb r0, [r3] + movs r1, #8 + b _080428D2 + .align 2, 0 +_08042874: .4byte 0x02024020 +_08042878: .4byte 0x02023F50 +_0804287C: + mov r0, sl + bl CastformDataTypeChange + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + cmp r0, #0 + bne _08042890 + bl _0804407A +_08042890: + ldr r0, _080428A0 + bl BattleScriptPushCursorAndCallback + ldr r0, _080428A4 + mov r1, sl + strb r1, [r0, #0x17] + bl _08043F22 + .align 2, 0 +_080428A0: .4byte 0x08289A31 +_080428A4: .4byte 0x02024118 +_080428A8: + ldr r0, _080428DC + mov r3, sl + lsls r2, r3, #2 + adds r1, r2, r3 + lsls r1, r1, #2 + adds r3, r1, r0 + ldrb r0, [r3] + lsls r0, r0, #0x1b + cmp r0, #0 + bge _080428C0 + bl _0804405E +_080428C0: + ldr r1, _080428E0 + adds r1, r2, r1 + ldr r0, [r1] + movs r2, #0x80 + lsls r2, r2, #0xd + orrs r0, r2 + str r0, [r1] + ldrb r0, [r3] + movs r1, #0x10 +_080428D2: + orrs r0, r1 + strb r0, [r3] + bl _0804405E + .align 2, 0 +_080428DC: .4byte 0x02024020 +_080428E0: .4byte 0x02023F50 +_080428E4: + movs r6, #0 + ldrb r5, [r5] + cmp r6, r5 + blo _080428F0 + bl _0804405E +_080428F0: + adds r0, r6, #0 + bl CastformDataTypeChange + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + cmp r0, #0 + beq _08042904 + bl sub_08043F18 +_08042904: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _08042918 + ldrb r0, [r0] + cmp r6, r0 + blo _080428F0 + bl _0804405E + .align 2, 0 +_08042918: .4byte 0x02023D10 +_0804291C: + ldr r5, _0804294C + mov r8, r5 + movs r0, #0x58 + mov r6, sl + muls r6, r0, r6 + adds r4, r6, r5 + ldrh r0, [r4, #0x28] + cmp r0, #0 + bne _08042932 + bl _0804405E +_08042932: + ldr r0, _08042950 + mov r1, sl + strb r1, [r0] + ldrb r5, [r7] + cmp r5, #0x2c + beq _08042962 + cmp r5, #0x2c + bgt _08042954 + cmp r5, #3 + bne _08042948 + b _08042AC4 +_08042948: + bl _0804405E + .align 2, 0 +_0804294C: .4byte 0x02023D28 +_08042950: .4byte 0x02023EAF +_08042954: + cmp r5, #0x36 + bne _0804295A + b _08042B10 +_0804295A: + cmp r5, #0x3d + beq _080429E0 + bl _0804405E +_08042962: + movs r0, #0 + str r0, [sp] + movs r0, #0x13 + movs r1, #0 + movs r2, #0xd + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _0804297E + bl _0804405E +_0804297E: + str r0, [sp] + movs r0, #0x13 + movs r1, #0 + movs r2, #0x4d + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08042996 + bl _0804405E +_08042996: + ldr r0, _080429D4 + ldrh r1, [r0] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _080429A6 + bl _0804405E +_080429A6: + ldrh r0, [r4, #0x2c] + ldrh r2, [r4, #0x28] + cmp r0, r2 + bhi _080429B2 + bl _0804405E +_080429B2: + strb r5, [r7] + ldr r0, _080429D8 + bl BattleScriptPushCursorAndCallback + ldr r1, _080429DC + ldrh r0, [r4, #0x2c] + lsrs r0, r0, #4 + str r0, [r1] + cmp r0, #0 + bne _080429CA + movs r0, #1 + str r0, [r1] +_080429CA: + ldr r0, [r1] + rsbs r0, r0, #0 + str r0, [r1] + bl _08044010 + .align 2, 0 +_080429D4: .4byte 0x02024070 +_080429D8: .4byte 0x082899E4 +_080429DC: .4byte 0x02023E94 +_080429E0: + mov r0, r8 + adds r0, #0x4c + adds r5, r6, r0 + ldrb r0, [r5] + cmp r0, #0 + bne _080429F0 + bl _0804405E +_080429F0: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0 + beq _08042A0A + bl _0804405E +_08042A0A: + ldr r0, [r5] + movs r1, #0x88 + ands r0, r1 + cmp r0, #0 + beq _08042A1C + ldr r0, _08042A9C + ldr r1, _08042AA0 + bl StringCopy +_08042A1C: + ldr r0, [r5] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + beq _08042A2E + ldr r0, _08042A9C + ldr r1, _08042AA4 + bl StringCopy +_08042A2E: + ldr r0, [r5] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08042A40 + ldr r0, _08042A9C + ldr r1, _08042AA8 + bl StringCopy +_08042A40: + ldr r0, [r5] + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08042A52 + ldr r0, _08042A9C + ldr r1, _08042AAC + bl StringCopy +_08042A52: + ldr r0, [r5] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08042A64 + ldr r0, _08042A9C + ldr r1, _08042AB0 + bl StringCopy +_08042A64: + str r4, [r5] + mov r1, r8 + adds r1, #0x50 + adds r1, r6, r1 + ldr r0, [r1] + ldr r2, _08042AB4 + ands r0, r2 + str r0, [r1] + ldr r0, _08042AB8 + ldr r4, _08042ABC + mov r3, sl + strb r3, [r4] + strb r3, [r0, #0x17] + ldr r0, _08042AC0 + bl BattleScriptPushCursorAndCallback + str r5, [sp] + movs r0, #0 + movs r1, #0x28 + movs r2, #0 + movs r3, #4 + bl BtlController_EmitSetMonData + ldrb r0, [r4] + bl MarkBattlerForControllerExec + bl _08044010 + .align 2, 0 +_08042A9C: .4byte 0x02022C0C +_08042AA0: .4byte 0x085ABC54 +_08042AA4: .4byte 0x085ABC50 +_08042AA8: .4byte 0x085ABC5B +_08042AAC: .4byte 0x085ABC57 +_08042AB0: .4byte 0x085ABC5E +_08042AB4: .4byte 0xF7FFFFFF +_08042AB8: .4byte 0x02024118 +_08042ABC: .4byte 0x02023D08 +_08042AC0: .4byte 0x08289A0C +_08042AC4: + ldrb r2, [r4, #0x1b] + movs r0, #0x1b + ldrsb r0, [r4, r0] + cmp r0, #0xb + ble _08042AD2 + bl _0804405E +_08042AD2: + ldr r0, _08042B04 + mov r5, sl + lsls r1, r5, #3 + subs r1, r1, r5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #0x16] + cmp r0, #2 + bne _08042AE8 + bl _0804405E +_08042AE8: + adds r0, r2, #1 + movs r1, #0 + strb r0, [r4, #0x1b] + ldr r4, _08042B08 + movs r0, #0x11 + strb r0, [r4, #0x10] + strb r1, [r4, #0x11] + ldr r0, _08042B0C + bl BattleScriptPushCursorAndCallback + strb r5, [r4, #0x17] + bl _08044010 + .align 2, 0 +_08042B04: .4byte 0x02023F60 +_08042B08: .4byte 0x02024118 +_08042B0C: .4byte 0x082899CC +_08042B10: + ldr r2, _08042B34 + ldrb r0, [r0] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r3, [r1, #0x18] + lsls r0, r3, #0x1f + lsrs r0, r0, #0x1f + movs r2, #1 + eors r2, r0 + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1, #0x18] + bl _0804405E + .align 2, 0 +_08042B34: .4byte 0x02023F60 +_08042B38: + ldrb r0, [r7] + cmp r0, #0x2b + beq _08042B42 + bl _0804405E +_08042B42: + movs r4, #0 + ldr r0, _08042BB0 + ldrh r2, [r0] + ldr r3, _08042BB4 + adds r1, r0, #0 + cmp r2, r3 + bne _08042B54 + bl _0804405E +_08042B54: + cmp r2, r5 + beq _08042B6C + adds r2, r1, #0 +_08042B5A: + adds r2, #2 + adds r4, #1 + ldrh r0, [r2] + cmp r0, r3 + bne _08042B68 + bl _0804405E +_08042B68: + cmp r0, r5 + bne _08042B5A +_08042B6C: + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r0] + ldr r0, _08042BB4 + cmp r1, r0 + bne _08042B7C + bl _0804405E +_08042B7C: + ldr r1, _08042BB8 + ldr r0, _08042BBC + ldrb r2, [r0] + movs r0, #0x58 + muls r0, r2, r0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #5 + ands r0, r1 + cmp r0, #0 + beq _08042BA2 + ldr r0, _08042BC0 + ldr r1, [r0] + movs r2, #0x80 + lsls r2, r2, #4 + orrs r1, r2 + str r1, [r0] +_08042BA2: + ldr r1, _08042BC4 + ldr r0, _08042BC8 + str r0, [r1] + movs r0, #1 + mov sb, r0 + bl _08044064 + .align 2, 0 +_08042BB0: .4byte 0x082EC67C +_08042BB4: .4byte 0x0000FFFF +_08042BB8: .4byte 0x02023D28 +_08042BBC: .4byte 0x02023EAF +_08042BC0: .4byte 0x02023F24 +_08042BC4: .4byte 0x02023EB8 +_08042BC8: .4byte 0x08289BA7 +_08042BCC: + cmp r5, #0 + bne _08042BD4 + bl _0804405E +_08042BD4: + ldrb r0, [r7] + cmp r0, #0xb + beq _08042C44 + cmp r0, #0xb + bgt _08042BE4 + cmp r0, #0xa + beq _08042BEA + b _08042D66 +_08042BE4: + cmp r0, #0x12 + beq _08042C9C + b _08042D66 +_08042BEA: + cmp r3, #0xd + beq _08042BF0 + b _08042D66 +_08042BF0: + ldr r0, _08042C1C + lsls r1, r5, #1 + adds r1, r1, r5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #1] + cmp r0, #0 + bne _08042C02 + b _08042D66 +_08042C02: + ldr r1, _08042C20 + ldr r0, _08042C24 + ldrb r0, [r0] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrb r0, [r0, #2] + lsls r0, r0, #0x1c + cmp r0, #0 + bge _08042C30 + ldr r1, _08042C28 + ldr r0, _08042C2C + b _08042C34 + .align 2, 0 +_08042C1C: .4byte 0x082ED220 +_08042C20: .4byte 0x02023FE0 +_08042C24: .4byte 0x02023EAF +_08042C28: .4byte 0x02023EB8 +_08042C2C: .4byte 0x08289AF7 +_08042C30: + ldr r1, _08042C3C + ldr r0, _08042C40 +_08042C34: + str r0, [r1] + movs r1, #1 + b _08042D64 + .align 2, 0 +_08042C3C: .4byte 0x02023EB8 +_08042C40: .4byte 0x08289AF6 +_08042C44: + cmp r3, #0xb + beq _08042C4A + b _08042D66 +_08042C4A: + ldr r0, _08042C74 + lsls r1, r5, #1 + adds r1, r1, r5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #1] + cmp r0, #0 + bne _08042C5C + b _08042D66 +_08042C5C: + ldr r1, _08042C78 + ldr r0, _08042C7C + ldrb r0, [r0] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrb r0, [r0, #2] + lsls r0, r0, #0x1c + cmp r0, #0 + bge _08042C88 + ldr r1, _08042C80 + ldr r0, _08042C84 + b _08042C8C + .align 2, 0 +_08042C74: .4byte 0x082ED220 +_08042C78: .4byte 0x02023FE0 +_08042C7C: .4byte 0x02023EAF +_08042C80: .4byte 0x02023EB8 +_08042C84: .4byte 0x08289AF7 +_08042C88: + ldr r1, _08042C94 + ldr r0, _08042C98 +_08042C8C: + str r0, [r1] + movs r2, #1 + mov sb, r2 + b _08042D66 + .align 2, 0 +_08042C94: .4byte 0x02023EB8 +_08042C98: .4byte 0x08289AF6 +_08042C9C: + cmp r3, #0xa + bne _08042D66 + ldr r1, _08042CEC + movs r0, #0x58 + mov r3, sl + muls r3, r0, r3 + adds r0, r3, #0 + adds r1, #0x4c + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + bne _08042D66 + ldr r2, _08042CF0 + ldr r0, [r2] + ldr r0, [r0, #4] + mov r5, sl + lsls r1, r5, #2 + adds r0, r0, r1 + ldr r3, [r0] + movs r4, #1 + ands r3, r4 + adds r5, r1, #0 + cmp r3, #0 + bne _08042D2C + ldr r0, _08042CF4 + strb r3, [r0, #5] + ldr r1, _08042CF8 + ldr r0, _08042CFC + ldrb r0, [r0] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrb r0, [r0, #2] + lsls r0, r0, #0x1c + cmp r0, #0 + bge _08042D08 + ldr r1, _08042D00 + ldr r0, _08042D04 + b _08042D0C + .align 2, 0 +_08042CEC: .4byte 0x02023D28 +_08042CF0: .4byte 0x0202414C +_08042CF4: .4byte 0x02023FD6 +_08042CF8: .4byte 0x02023FE0 +_08042CFC: .4byte 0x02023EAF +_08042D00: .4byte 0x02023EB8 +_08042D04: .4byte 0x08289B30 +_08042D08: + ldr r1, _08042D24 + ldr r0, _08042D28 +_08042D0C: + str r0, [r1] + ldr r0, [r2] + ldr r1, [r0, #4] + adds r1, r1, r5 + ldr r0, [r1] + movs r2, #1 + orrs r0, r2 + str r0, [r1] + movs r0, #2 + mov sb, r0 + b _08042D66 + .align 2, 0 +_08042D24: .4byte 0x02023EB8 +_08042D28: .4byte 0x08289B2F +_08042D2C: + ldr r0, _08042D48 + strb r4, [r0, #5] + ldr r1, _08042D4C + ldr r0, _08042D50 + ldrb r0, [r0] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrb r0, [r0, #2] + lsls r0, r0, #0x1c + cmp r0, #0 + bge _08042D5C + ldr r1, _08042D54 + ldr r0, _08042D58 + b _08042D60 + .align 2, 0 +_08042D48: .4byte 0x02023FD6 +_08042D4C: .4byte 0x02023FE0 +_08042D50: .4byte 0x02023EAF +_08042D54: .4byte 0x02023EB8 +_08042D58: .4byte 0x08289B30 +_08042D5C: + ldr r1, _08042DA0 + ldr r0, _08042DA4 +_08042D60: + str r0, [r1] + movs r1, #2 +_08042D64: + mov sb, r1 +_08042D66: + mov r2, sb + cmp r2, #1 + beq _08042D70 + bl _0804405E +_08042D70: + ldr r1, _08042DA8 + movs r0, #0x58 + mov r3, sl + muls r3, r0, r3 + adds r0, r3, #0 + adds r1, r0, r1 + ldrh r0, [r1, #0x2c] + ldrh r5, [r1, #0x28] + cmp r0, r5 + bne _08042DCC + ldr r1, _08042DAC + ldr r0, _08042DB0 + ldrb r0, [r0] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrb r0, [r0, #2] + lsls r0, r0, #0x1c + cmp r0, #0 + bge _08042DB8 + ldr r1, _08042DA0 + ldr r0, _08042DB4 + str r0, [r1] + bl _0804405E + .align 2, 0 +_08042DA0: .4byte 0x02023EB8 +_08042DA4: .4byte 0x08289B2F +_08042DA8: .4byte 0x02023D28 +_08042DAC: .4byte 0x02023FE0 +_08042DB0: .4byte 0x02023EAF +_08042DB4: .4byte 0x08289B1A +_08042DB8: + ldr r1, _08042DC4 + ldr r0, _08042DC8 + str r0, [r1] + bl _0804405E + .align 2, 0 +_08042DC4: .4byte 0x02023EB8 +_08042DC8: .4byte 0x08289B19 +_08042DCC: + ldr r2, _08042DE8 + ldrh r0, [r1, #0x2c] + lsrs r0, r0, #2 + str r0, [r2] + cmp r0, #0 + bne _08042DDC + mov r0, sb + str r0, [r2] +_08042DDC: + ldr r0, [r2] + rsbs r0, r0, #0 + str r0, [r2] + bl _0804405E + .align 2, 0 +_08042DE8: .4byte 0x02023E94 +_08042DEC: + ldrb r0, [r7] + subs r0, #9 + cmp r0, #0x2f + bls _08042DF8 + bl _0804405E +_08042DF8: + lsls r0, r0, #2 + ldr r1, _08042E04 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08042E04: .4byte 0x08042E08 +_08042E08: @ jump table + .4byte _08043224 @ case 0 + .4byte _0804405E @ case 1 + .4byte _0804405E @ case 2 + .4byte _0804405E @ case 3 + .4byte _0804405E @ case 4 + .4byte _0804405E @ case 5 + .4byte _0804405E @ case 6 + .4byte _08042EC8 @ case 7 + .4byte _0804405E @ case 8 + .4byte _0804405E @ case 9 + .4byte _0804405E @ case 10 + .4byte _0804405E @ case 11 + .4byte _0804405E @ case 12 + .4byte _0804405E @ case 13 + .4byte _0804405E @ case 14 + .4byte _08042F90 @ case 15 + .4byte _0804405E @ case 16 + .4byte _0804405E @ case 17 + .4byte _08043050 @ case 18 + .4byte _0804405E @ case 19 + .4byte _0804405E @ case 20 + .4byte _0804405E @ case 21 + .4byte _0804405E @ case 22 + .4byte _0804405E @ case 23 + .4byte _0804405E @ case 24 + .4byte _0804405E @ case 25 + .4byte _0804405E @ case 26 + .4byte _0804405E @ case 27 + .4byte _0804405E @ case 28 + .4byte _08043148 @ case 29 + .4byte _0804405E @ case 30 + .4byte _0804405E @ case 31 + .4byte _0804405E @ case 32 + .4byte _0804405E @ case 33 + .4byte _0804405E @ case 34 + .4byte _0804405E @ case 35 + .4byte _0804405E @ case 36 + .4byte _0804405E @ case 37 + .4byte _0804405E @ case 38 + .4byte _0804405E @ case 39 + .4byte _08043300 @ case 40 + .4byte _0804405E @ case 41 + .4byte _0804405E @ case 42 + .4byte _0804405E @ case 43 + .4byte _0804405E @ case 44 + .4byte _0804405E @ case 45 + .4byte _0804405E @ case 46 + .4byte _080433DC @ case 47 +_08042EC8: + ldr r0, _08042F70 + ldrb r1, [r0] + movs r0, #0x29 + ands r0, r1 + cmp r0, #0 + beq _08042ED8 + bl _0804405E +_08042ED8: + cmp r5, #0xa5 + bne _08042EE0 + bl _0804405E +_08042EE0: + ldr r0, _08042F74 + lsls r1, r5, #1 + adds r1, r1, r5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #1] + cmp r0, #0 + bne _08042EF4 + bl _0804405E +_08042EF4: + ldr r2, _08042F78 + ldr r0, _08042F7C + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r1, r0, #2 + adds r0, r2, #0 + adds r0, #8 + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, #0 + bne _08042F1C + adds r0, r2, #0 + adds r0, #0xc + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, #0 + bne _08042F1C + bl _0804405E +_08042F1C: + ldr r1, _08042F80 + movs r0, #0x58 + mov r2, sl + muls r2, r0, r2 + adds r0, r2, #0 + adds r1, r0, r1 + adds r4, r1, #0 + adds r4, #0x21 + ldrb r0, [r4] + cmp r0, r3 + bne _08042F36 + bl _0804405E +_08042F36: + adds r2, r1, #0 + adds r2, #0x22 + ldrb r0, [r2] + cmp r0, r3 + bne _08042F44 + bl _0804405E +_08042F44: + ldrh r0, [r1, #0x28] + cmp r0, #0 + bne _08042F4E + bl _0804405E +_08042F4E: + strb r3, [r4] + strb r3, [r2] + ldr r1, _08042F84 + movs r0, #0xfd + strb r0, [r1] + movs r0, #3 + strb r0, [r1, #1] + strb r3, [r1, #2] + movs r0, #0xff + strb r0, [r1, #3] + bl BattleScriptPushCursor + ldr r1, _08042F88 + ldr r0, _08042F8C + str r0, [r1] + bl _08044010 + .align 2, 0 +_08042F70: .4byte 0x02023F20 +_08042F74: .4byte 0x082ED220 +_08042F78: .4byte 0x02024020 +_08042F7C: .4byte 0x02023EB0 +_08042F80: .4byte 0x02023D28 +_08042F84: .4byte 0x02022C0C +_08042F88: .4byte 0x02023EB8 +_08042F8C: .4byte 0x08289BD5 +_08042F90: + ldr r0, _08043028 + ldrb r1, [r0] + movs r0, #0x29 + ands r0, r1 + cmp r0, #0 + beq _08042FA0 + bl _0804405E +_08042FA0: + ldr r1, _0804302C + ldr r0, _08043030 + ldrb r2, [r0] + movs r0, #0x58 + muls r0, r2, r0 + adds r3, r0, r1 + ldrh r0, [r3, #0x28] + cmp r0, #0 + bne _08042FB6 + bl _0804405E +_08042FB6: + ldr r0, _08043034 + lsls r1, r2, #4 + adds r1, r1, r0 + ldrb r0, [r1, #1] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _08042FC8 + bl _0804405E +_08042FC8: + ldr r2, _08043038 + ldr r0, _0804303C + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r1, r0, #2 + adds r0, r2, #0 + adds r0, #8 + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, #0 + bne _08042FF0 + adds r0, r2, #0 + adds r0, #0xc + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, #0 + bne _08042FF0 + bl _0804405E +_08042FF0: + ldr r1, _08043040 + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #8] + movs r2, #1 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _0804300A + bl _0804405E +_0804300A: + ldr r1, _08043044 + ldrh r0, [r3, #0x2c] + lsrs r0, r0, #4 + str r0, [r1] + cmp r0, #0 + bne _08043018 + str r2, [r1] +_08043018: + bl BattleScriptPushCursor + ldr r1, _08043048 + ldr r0, _0804304C + str r0, [r1] + bl _08044010 + .align 2, 0 +_08043028: .4byte 0x02023F20 +_0804302C: .4byte 0x02023D28 +_08043030: .4byte 0x02023EAF +_08043034: .4byte 0x02023FE0 +_08043038: .4byte 0x02024020 +_0804303C: .4byte 0x02023EB0 +_08043040: .4byte 0x082ED220 +_08043044: .4byte 0x02023E94 +_08043048: .4byte 0x02023EB8 +_0804304C: .4byte 0x08289BDC +_08043050: + ldr r0, _0804311C + ldrb r1, [r0] + movs r0, #0x29 + ands r0, r1 + cmp r0, #0 + beq _08043060 + bl _0804405E +_08043060: + ldr r1, _08043120 + ldr r0, _08043124 + ldrb r2, [r0] + movs r0, #0x58 + muls r0, r2, r0 + adds r0, r0, r1 + ldrh r0, [r0, #0x28] + cmp r0, #0 + bne _08043076 + bl _0804405E +_08043076: + ldr r0, _08043128 + lsls r1, r2, #4 + adds r1, r1, r0 + ldrb r0, [r1, #1] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _08043088 + bl _0804405E +_08043088: + ldr r2, _0804312C + ldr r0, _08043130 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r1, r0, #2 + adds r0, r2, #0 + adds r0, #8 + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, #0 + bne _080430B0 + adds r0, r2, #0 + adds r0, #0xc + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, #0 + bne _080430B0 + bl _0804405E +_080430B0: + ldr r1, _08043134 + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #8] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080430C8 + bl _0804405E +_080430C8: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __umodsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080430E0 + bl _0804405E +_080430E0: + ldr r5, _08043138 + movs r4, #3 +_080430E4: + bl Random + ands r0, r4 + strb r0, [r5, #3] + cmp r0, #0 + beq _080430E4 + ldr r1, _08043138 + ldrb r0, [r1, #3] + cmp r0, #3 + bne _080430FC + adds r0, #2 + strb r0, [r1, #3] +_080430FC: + ldrb r0, [r1, #3] + adds r0, #0x40 + strb r0, [r1, #3] + bl BattleScriptPushCursor + ldr r1, _0804313C + ldr r0, _08043140 + str r0, [r1] + ldr r2, _08043144 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #6 + orrs r0, r1 + str r0, [r2] + bl _08044010 + .align 2, 0 +_0804311C: .4byte 0x02023F20 +_08043120: .4byte 0x02023D28 +_08043124: .4byte 0x02023EAF +_08043128: .4byte 0x02023FE0 +_0804312C: .4byte 0x02024020 +_08043130: .4byte 0x02023EB0 +_08043134: .4byte 0x082ED220 +_08043138: .4byte 0x02023FD6 +_0804313C: .4byte 0x02023EB8 +_08043140: .4byte 0x08289C04 +_08043144: .4byte 0x02023F24 +_08043148: + ldr r0, _080431F8 + ldrb r1, [r0] + movs r0, #0x29 + ands r0, r1 + cmp r0, #0 + beq _08043158 + bl _0804405E +_08043158: + ldr r1, _080431FC + ldr r0, _08043200 + ldrb r2, [r0] + movs r0, #0x58 + muls r0, r2, r0 + adds r0, r0, r1 + ldrh r0, [r0, #0x28] + cmp r0, #0 + bne _0804316E + bl _0804405E +_0804316E: + ldr r0, _08043204 + lsls r1, r2, #4 + adds r1, r1, r0 + ldrb r0, [r1, #1] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _08043180 + bl _0804405E +_08043180: + ldr r2, _08043208 + ldr r0, _0804320C + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r1, r0, #2 + adds r0, r2, #0 + adds r0, #8 + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, #0 + bne _080431A8 + adds r0, r2, #0 + adds r0, #0xc + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, #0 + bne _080431A8 + bl _0804405E +_080431A8: + ldr r1, _08043210 + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #8] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080431C0 + bl _0804405E +_080431C0: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080431D8 + bl _0804405E +_080431D8: + ldr r1, _08043214 + movs r0, #0x42 + strb r0, [r1, #3] + bl BattleScriptPushCursor + ldr r1, _08043218 + ldr r0, _0804321C + str r0, [r1] + ldr r2, _08043220 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #6 + orrs r0, r1 + str r0, [r2] + bl _08044010 + .align 2, 0 +_080431F8: .4byte 0x02023F20 +_080431FC: .4byte 0x02023D28 +_08043200: .4byte 0x02023EAF +_08043204: .4byte 0x02023FE0 +_08043208: .4byte 0x02024020 +_0804320C: .4byte 0x02023EB0 +_08043210: .4byte 0x082ED220 +_08043214: .4byte 0x02023FD6 +_08043218: .4byte 0x02023EB8 +_0804321C: .4byte 0x08289C04 +_08043220: .4byte 0x02023F24 +_08043224: + ldr r0, _080432D4 + ldrb r1, [r0] + movs r0, #0x29 + ands r0, r1 + cmp r0, #0 + beq _08043234 + bl _0804405E +_08043234: + ldr r1, _080432D8 + ldr r0, _080432DC + ldrb r2, [r0] + movs r0, #0x58 + muls r0, r2, r0 + adds r0, r0, r1 + ldrh r0, [r0, #0x28] + cmp r0, #0 + bne _0804324A + bl _0804405E +_0804324A: + ldr r0, _080432E0 + lsls r1, r2, #4 + adds r1, r1, r0 + ldrb r0, [r1, #1] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _0804325C + bl _0804405E +_0804325C: + ldr r2, _080432E4 + ldr r0, _080432E8 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r1, r0, #2 + adds r0, r2, #0 + adds r0, #8 + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, #0 + bne _08043284 + adds r0, r2, #0 + adds r0, #0xc + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, #0 + bne _08043284 + bl _0804405E +_08043284: + ldr r1, _080432EC + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #8] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0804329C + bl _0804405E +_0804329C: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080432B4 + bl _0804405E +_080432B4: + ldr r1, _080432F0 + movs r0, #0x45 + strb r0, [r1, #3] + bl BattleScriptPushCursor + ldr r1, _080432F4 + ldr r0, _080432F8 + str r0, [r1] + ldr r2, _080432FC + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #6 + orrs r0, r1 + str r0, [r2] + bl _08044010 + .align 2, 0 +_080432D4: .4byte 0x02023F20 +_080432D8: .4byte 0x02023D28 +_080432DC: .4byte 0x02023EAF +_080432E0: .4byte 0x02023FE0 +_080432E4: .4byte 0x02024020 +_080432E8: .4byte 0x02023EB0 +_080432EC: .4byte 0x082ED220 +_080432F0: .4byte 0x02023FD6 +_080432F4: .4byte 0x02023EB8 +_080432F8: .4byte 0x08289C04 +_080432FC: .4byte 0x02023F24 +_08043300: + ldr r0, _080433B0 + ldrb r1, [r0] + movs r0, #0x29 + ands r0, r1 + cmp r0, #0 + beq _08043310 + bl _0804405E +_08043310: + ldr r1, _080433B4 + ldr r0, _080433B8 + ldrb r2, [r0] + movs r0, #0x58 + muls r0, r2, r0 + adds r0, r0, r1 + ldrh r0, [r0, #0x28] + cmp r0, #0 + bne _08043326 + bl _0804405E +_08043326: + ldr r0, _080433BC + lsls r1, r2, #4 + adds r1, r1, r0 + ldrb r0, [r1, #1] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _08043338 + bl _0804405E +_08043338: + ldr r1, _080433C0 + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #8] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08043350 + bl _0804405E +_08043350: + ldr r2, _080433C4 + ldr r0, _080433C8 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r1, r0, #2 + adds r0, r2, #0 + adds r0, #8 + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, #0 + bne _08043378 + adds r0, r2, #0 + adds r0, #0xc + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, #0 + bne _08043378 + bl _0804405E +_08043378: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08043390 + bl _0804405E +_08043390: + ldr r1, _080433CC + movs r0, #0x43 + strb r0, [r1, #3] + bl BattleScriptPushCursor + ldr r1, _080433D0 + ldr r0, _080433D4 + str r0, [r1] + ldr r2, _080433D8 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #6 + orrs r0, r1 + str r0, [r2] + bl _08044010 + .align 2, 0 +_080433B0: .4byte 0x02023F20 +_080433B4: .4byte 0x02023D28 +_080433B8: .4byte 0x02023EAF +_080433BC: .4byte 0x02023FE0 +_080433C0: .4byte 0x082ED220 +_080433C4: .4byte 0x02024020 +_080433C8: .4byte 0x02023EB0 +_080433CC: .4byte 0x02023FD6 +_080433D0: .4byte 0x02023EB8 +_080433D4: .4byte 0x08289C04 +_080433D8: .4byte 0x02023F24 +_080433DC: + ldr r0, _08043520 + ldrb r1, [r0] + movs r0, #0x29 + ands r0, r1 + cmp r0, #0 + beq _080433EC + bl _0804405E +_080433EC: + ldr r6, _08043524 + ldr r3, _08043528 + mov r8, r3 + ldrb r1, [r3] + movs r7, #0x58 + adds r0, r1, #0 + muls r0, r7, r0 + adds r0, r0, r6 + ldrh r0, [r0, #0x28] + cmp r0, #0 + bne _08043406 + bl _0804405E +_08043406: + ldr r0, _0804352C + lsls r1, r1, #4 + adds r1, r1, r0 + ldrb r0, [r1, #1] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _08043418 + bl _0804405E +_08043418: + ldr r1, _08043530 + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #8] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08043430 + bl _0804405E +_08043430: + ldr r3, _08043534 + ldr r5, _08043538 + ldrb r1, [r5] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r2, r0, #2 + adds r0, r3, #0 + adds r0, #8 + adds r0, r2, r0 + ldr r0, [r0] + cmp r0, #0 + bne _08043458 + adds r0, r3, #0 + adds r0, #0xc + adds r0, r2, r0 + ldr r0, [r0] + cmp r0, #0 + bne _08043458 + bl _0804405E +_08043458: + adds r0, r1, #0 + muls r0, r7, r0 + adds r0, r0, r6 + ldrh r0, [r0, #0x28] + cmp r0, #0 + bne _08043468 + bl _0804405E +_08043468: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08043480 + bl _0804405E +_08043480: + mov r1, r8 + ldrb r0, [r1] + muls r0, r7, r0 + adds r0, r0, r6 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0xc + bne _08043494 + bl _0804405E +_08043494: + ldr r0, [sp, #8] + ldr r1, [sp, #0x10] + bl GetGenderFromSpeciesAndPersonality + adds r4, r0, #0 + ldr r0, [sp, #0xc] + ldr r1, [sp, #0x14] + bl GetGenderFromSpeciesAndPersonality + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + bne _080434B2 + bl _0804405E +_080434B2: + mov r2, r8 + ldrb r0, [r2] + muls r0, r7, r0 + adds r4, r6, #0 + adds r4, #0x50 + adds r0, r0, r4 + ldr r0, [r0] + movs r1, #0xf0 + lsls r1, r1, #0xc + ands r0, r1 + cmp r0, #0 + beq _080434CE + bl _0804405E +_080434CE: + ldr r0, [sp, #8] + ldr r1, [sp, #0x10] + bl GetGenderFromSpeciesAndPersonality + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080434E2 + bl _0804405E +_080434E2: + ldr r0, [sp, #0xc] + ldr r1, [sp, #0x14] + bl GetGenderFromSpeciesAndPersonality + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080434F6 + bl _0804405E +_080434F6: + mov r3, r8 + ldrb r0, [r3] + adds r2, r0, #0 + muls r2, r7, r2 + adds r2, r2, r4 + ldr r1, _0804353C + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + lsls r1, r1, #0x10 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + bl BattleScriptPushCursor + ldr r1, _08043540 + ldr r0, _08043544 + str r0, [r1] + bl _08044010 + .align 2, 0 +_08043520: .4byte 0x02023F20 +_08043524: .4byte 0x02023D28 +_08043528: .4byte 0x02023EAF +_0804352C: .4byte 0x02023FE0 +_08043530: .4byte 0x082ED220 +_08043534: .4byte 0x02024020 +_08043538: .4byte 0x02023EB0 +_0804353C: .4byte 0x082FACB4 +_08043540: .4byte 0x02023EB8 +_08043544: .4byte 0x08289BF7 +_08043548: + movs r5, #0 + mov sl, r5 + ldr r0, _0804357C + ldrb r0, [r0] + cmp sl, r0 + blo _08043558 + bl _0804405E +_08043558: + ldr r1, _08043580 + movs r0, #0x58 + mov r2, sl + muls r2, r0, r2 + adds r0, r2, #0 + adds r0, r0, r1 + adds r0, #0x20 + ldrb r0, [r0] + subs r0, #7 + adds r2, r1, #0 + cmp r0, #0x41 + bls _08043572 + b _080437D6 +_08043572: + lsls r0, r0, #2 + ldr r1, _08043584 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804357C: .4byte 0x02023D10 +_08043580: .4byte 0x02023D28 +_08043584: .4byte 0x08043588 +_08043588: @ jump table + .4byte _080436EC @ case 0 + .4byte _080437D6 @ case 1 + .4byte _080437D6 @ case 2 + .4byte _080437D6 @ case 3 + .4byte _080437D6 @ case 4 + .4byte _080437B0 @ case 5 + .4byte _080437D6 @ case 6 + .4byte _080437D6 @ case 7 + .4byte _08043714 @ case 8 + .4byte _080437D6 @ case 9 + .4byte _08043690 @ case 10 + .4byte _080437D6 @ case 11 + .4byte _080437D6 @ case 12 + .4byte _080436BC @ case 13 + .4byte _080437D6 @ case 14 + .4byte _080437D6 @ case 15 + .4byte _080437D6 @ case 16 + .4byte _080437D6 @ case 17 + .4byte _080437D6 @ case 18 + .4byte _080437D6 @ case 19 + .4byte _080437D6 @ case 20 + .4byte _080437D6 @ case 21 + .4byte _080437D6 @ case 22 + .4byte _080437D6 @ case 23 + .4byte _080437D6 @ case 24 + .4byte _080437D6 @ case 25 + .4byte _080437D6 @ case 26 + .4byte _080437D6 @ case 27 + .4byte _080437D6 @ case 28 + .4byte _080437D6 @ case 29 + .4byte _080437D6 @ case 30 + .4byte _080437D6 @ case 31 + .4byte _080437D6 @ case 32 + .4byte _08043780 @ case 33 + .4byte _08043750 @ case 34 + .4byte _080437D6 @ case 35 + .4byte _080437D6 @ case 36 + .4byte _080437D6 @ case 37 + .4byte _080437D6 @ case 38 + .4byte _080437D6 @ case 39 + .4byte _080437D6 @ case 40 + .4byte _080437D6 @ case 41 + .4byte _080437D6 @ case 42 + .4byte _080437D6 @ case 43 + .4byte _080437D6 @ case 44 + .4byte _080437D6 @ case 45 + .4byte _080437D6 @ case 46 + .4byte _080437D6 @ case 47 + .4byte _080437D6 @ case 48 + .4byte _080437D6 @ case 49 + .4byte _080437D6 @ case 50 + .4byte _080437D6 @ case 51 + .4byte _080437D6 @ case 52 + .4byte _080437D6 @ case 53 + .4byte _080437D6 @ case 54 + .4byte _080437D6 @ case 55 + .4byte _080437D6 @ case 56 + .4byte _080437D6 @ case 57 + .4byte _080437D6 @ case 58 + .4byte _080437D6 @ case 59 + .4byte _080437D6 @ case 60 + .4byte _080437D6 @ case 61 + .4byte _080437D6 @ case 62 + .4byte _080437D6 @ case 63 + .4byte _080437D6 @ case 64 + .4byte _08043714 @ case 65 +_08043690: + movs r0, #0x58 + mov r3, sl + muls r3, r0, r3 + adds r0, r3, #0 + adds r1, r2, #0 + adds r1, #0x4c + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _080436B0 + ands r0, r1 + cmp r0, #0 + bne _080436AA + b _080437D6 +_080436AA: + ldr r0, _080436B4 + ldr r1, _080436B8 + b _0804379C + .align 2, 0 +_080436B0: .4byte 0x00000F88 +_080436B4: .4byte 0x02022C0C +_080436B8: .4byte 0x085ABC54 +_080436BC: + movs r0, #0x58 + mov r1, sl + muls r1, r0, r1 + adds r0, r1, #0 + adds r1, r2, #0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _080436D6 + b _080437D6 +_080436D6: + ldr r0, _080436E4 + ldr r1, _080436E8 + bl StringCopy + movs r2, #2 + mov sb, r2 + b _080437DC + .align 2, 0 +_080436E4: .4byte 0x02022C0C +_080436E8: .4byte 0x085ABC62 +_080436EC: + movs r0, #0x58 + mov r3, sl + muls r3, r0, r3 + adds r0, r3, #0 + adds r1, r2, #0 + adds r1, #0x4c + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080437D6 + ldr r0, _0804370C + ldr r1, _08043710 + b _0804379C + .align 2, 0 +_0804370C: .4byte 0x02022C0C +_08043710: .4byte 0x085ABC5B +_08043714: + movs r0, #0x58 + mov r3, sl + muls r3, r0, r3 + adds r0, r2, #0 + adds r0, #0x4c + adds r0, r3, r0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + beq _080437D6 + adds r2, #0x50 + adds r2, r3, r2 + ldr r0, [r2] + ldr r1, _08043744 + ands r0, r1 + str r0, [r2] + ldr r0, _08043748 + ldr r1, _0804374C + bl StringCopy + movs r0, #1 + mov sb, r0 + b _080437DC + .align 2, 0 +_08043744: .4byte 0xF7FFFFFF +_08043748: .4byte 0x02022C0C +_0804374C: .4byte 0x085ABC50 +_08043750: + movs r0, #0x58 + mov r1, sl + muls r1, r0, r1 + adds r0, r1, #0 + adds r1, r2, #0 + adds r1, #0x4c + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080437D6 + ldr r0, _08043778 + ldr r1, _0804377C + bl StringCopy + movs r2, #1 + mov sb, r2 + b _080437DC + .align 2, 0 +_08043778: .4byte 0x02022C0C +_0804377C: .4byte 0x085ABC57 +_08043780: + movs r0, #0x58 + mov r3, sl + muls r3, r0, r3 + adds r0, r3, #0 + adds r1, r2, #0 + adds r1, #0x4c + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080437D6 + ldr r0, _080437A8 + ldr r1, _080437AC +_0804379C: + bl StringCopy + movs r5, #1 + mov sb, r5 + b _080437DC + .align 2, 0 +_080437A8: .4byte 0x02022C0C +_080437AC: .4byte 0x085ABC5E +_080437B0: + movs r0, #0x58 + mov r1, sl + muls r1, r0, r1 + adds r0, r1, #0 + adds r1, r2, #0 + adds r1, #0x50 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0xf0 + lsls r1, r1, #0xc + ands r0, r1 + cmp r0, #0 + beq _080437D6 + ldr r0, _080437EC + ldr r1, _080437F0 + bl StringCopy + movs r2, #3 + mov sb, r2 +_080437D6: + mov r3, sb + cmp r3, #0 + beq _08043890 +_080437DC: + mov r5, sb + cmp r5, #2 + beq _08043810 + cmp r5, #2 + bgt _080437F4 + cmp r5, #1 + beq _080437FC + b _0804383C + .align 2, 0 +_080437EC: .4byte 0x02022C0C +_080437F0: .4byte 0x085ABC67 +_080437F4: + mov r0, sb + cmp r0, #3 + beq _08043828 + b _0804383C +_080437FC: + ldr r1, _0804380C + movs r0, #0x58 + mov r2, sl + muls r2, r0, r2 + adds r1, #0x4c + adds r2, r2, r1 + movs r0, #0 + b _0804383A + .align 2, 0 +_0804380C: .4byte 0x02023D28 +_08043810: + ldr r1, _08043824 + movs r0, #0x58 + mov r2, sl + muls r2, r0, r2 + adds r1, #0x50 + adds r2, r2, r1 + ldr r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + b _08043838 + .align 2, 0 +_08043824: .4byte 0x02023D28 +_08043828: + ldr r1, _08043874 + movs r0, #0x58 + mov r2, sl + muls r2, r0, r2 + adds r1, #0x50 + adds r2, r2, r1 + ldr r0, [r2] + ldr r1, _08043878 +_08043838: + ands r0, r1 +_0804383A: + str r0, [r2] +_0804383C: + bl BattleScriptPushCursor + ldr r1, _0804387C + ldr r0, _08043880 + str r0, [r1] + ldr r0, _08043884 + mov r1, sl + strb r1, [r0, #0x17] + ldr r4, _08043888 + strb r1, [r4] + ldrb r1, [r4] + movs r0, #0x58 + muls r0, r1, r0 + ldr r1, _0804388C + adds r0, r0, r1 + str r0, [sp] + movs r0, #0 + movs r1, #0x28 + movs r2, #0 + movs r3, #4 + bl BtlController_EmitSetMonData + ldrb r0, [r4] + bl MarkBattlerForControllerExec + bl _0804407A + .align 2, 0 +_08043874: .4byte 0x02023D28 +_08043878: .4byte 0xFFF0FFFF +_0804387C: .4byte 0x02023EB8 +_08043880: .4byte 0x08289C14 +_08043884: .4byte 0x02024118 +_08043888: .4byte 0x02023D08 +_0804388C: .4byte 0x02023D74 +_08043890: + mov r0, sl + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + ldr r0, _080438A8 + ldrb r0, [r0] + cmp sl, r0 + bhs _080438A4 + b _08043558 +_080438A4: + bl _0804405E + .align 2, 0 +_080438A8: .4byte 0x02023D10 +_080438AC: + movs r2, #0 + mov sl, r2 + ldr r0, _080438F4 + ldrb r0, [r0] + cmp sl, r0 + blo _080438BA + b _0804405E +_080438BA: + ldr r4, _080438F8 +_080438BC: + movs r0, #0x58 + mov r3, sl + muls r3, r0, r3 + adds r0, r3, #0 + adds r0, r0, r4 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x3b + bne _080438E0 + mov r0, sl + bl CastformDataTypeChange + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + cmp r0, #0 + beq _080438E0 + b _08043F3C +_080438E0: + mov r0, sl + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + ldr r0, _080438F4 + ldrb r0, [r0] + cmp sl, r0 + blo _080438BC + b _0804405E + .align 2, 0 +_080438F4: .4byte 0x02023D10 +_080438F8: .4byte 0x02023D28 +_080438FC: + ldrb r0, [r7] + cmp r0, #0x1c + beq _08043904 + b _0804405E +_08043904: + ldr r4, _08043964 + ldr r1, [r4] + movs r0, #0x80 + lsls r0, r0, #7 + ands r0, r1 + cmp r0, #0 + bne _08043914 + b _0804405E +_08043914: + ldr r0, _08043968 + ands r1, r0 + str r1, [r4] + mov r5, r8 + ldr r1, [r5] + adds r1, #0xb2 + ldrb r2, [r1] + movs r0, #0x3f + ands r0, r2 + strb r0, [r1] + ldr r0, [r5] + adds r1, r0, #0 + adds r1, #0xb2 + ldrb r0, [r1] + cmp r0, #6 + bne _08043938 + movs r0, #2 + strb r0, [r1] +_08043938: + ldr r1, _0804396C + mov r2, r8 + ldr r0, [r2] + adds r0, #0xb2 + ldrb r0, [r0] + adds r0, #0x40 + strb r0, [r1, #3] + ldr r1, _08043970 + ldr r0, _08043974 + ldrb r0, [r0] + strb r0, [r1, #0x17] + bl BattleScriptPushCursor + ldr r1, _08043978 + ldr r0, _0804397C + str r0, [r1] + ldr r0, [r4] + movs r1, #0x80 + lsls r1, r1, #6 + orrs r0, r1 + str r0, [r4] + b _08044010 + .align 2, 0 +_08043964: .4byte 0x02023F24 +_08043968: .4byte 0xFFFFBFFF +_0804396C: .4byte 0x02023FD6 +_08043970: .4byte 0x02024118 +_08043974: .4byte 0x02023EB0 +_08043978: .4byte 0x02023EB8 +_0804397C: .4byte 0x08289C07 +_08043980: + ldrb r0, [r7] + cmp r0, #0x1c + beq _08043988 + b _0804405E +_08043988: + ldr r4, _080439E8 + ldr r1, [r4] + movs r0, #0x80 + lsls r0, r0, #7 + ands r0, r1 + cmp r0, #0 + bne _08043998 + b _0804405E +_08043998: + ldr r0, _080439EC + ands r1, r0 + str r1, [r4] + mov r3, r8 + ldr r1, [r3] + adds r1, #0xb2 + ldrb r2, [r1] + movs r0, #0x3f + ands r0, r2 + strb r0, [r1] + ldr r0, [r3] + adds r1, r0, #0 + adds r1, #0xb2 + ldrb r0, [r1] + cmp r0, #6 + bne _080439BC + movs r0, #2 + strb r0, [r1] +_080439BC: + ldr r1, _080439F0 + mov r3, r8 + ldr r0, [r3] + adds r0, #0xb2 + ldrb r0, [r0] + strb r0, [r1, #3] + ldr r1, _080439F4 + ldr r0, _080439F8 + ldrb r0, [r0] + strb r0, [r1, #0x17] + bl BattleScriptPushCursor + ldr r1, _080439FC + ldr r0, _08043A00 + str r0, [r1] + ldr r0, [r4] + movs r1, #0x80 + lsls r1, r1, #6 + orrs r0, r1 + str r0, [r4] + b _08044010 + .align 2, 0 +_080439E8: .4byte 0x02023F24 +_080439EC: .4byte 0xFFFFBFFF +_080439F0: .4byte 0x02023FD6 +_080439F4: .4byte 0x02024118 +_080439F8: .4byte 0x02023EAF +_080439FC: .4byte 0x02023EB8 +_08043A00: .4byte 0x08289C07 +_08043A04: + movs r4, #0 + ldr r0, _08043A3C + ldrb r1, [r0] + cmp r4, r1 + blt _08043A10 + b _0804405E +_08043A10: + ldr r0, _08043A40 + adds r5, r1, #0 + ldr r2, _08043A44 + adds r3, r0, #0 + adds r3, #0x20 + movs r6, #0x80 + lsls r6, r6, #0xc +_08043A1E: + ldrb r1, [r3] + cmp r1, #0x16 + bne _08043A2E + ldr r0, [r2] + ands r0, r6 + cmp r0, #0 + beq _08043A2E + b _08043F64 +_08043A2E: + adds r2, #4 + adds r3, #0x58 + adds r4, #1 + cmp r4, r5 + blt _08043A1E + b _0804405E + .align 2, 0 +_08043A3C: .4byte 0x02023D10 +_08043A40: .4byte 0x02023D28 +_08043A44: .4byte 0x02023F50 +_08043A48: + movs r4, #0 + ldr r0, _08043B24 + ldrb r0, [r0] + cmp r4, r0 + blt _08043A54 + b _0804405E +_08043A54: + ldr r5, _08043B28 + mov r8, r5 + ldr r0, _08043B2C + adds r0, #0x20 + str r0, [sp, #0x1c] + movs r1, #0 + str r1, [sp, #0x20] +_08043A62: + ldr r2, [sp, #0x1c] + ldrb r0, [r2] + cmp r0, #0x24 + beq _08043A6C + b _08043BFE +_08043A6C: + ldr r0, _08043B30 + ldr r3, [sp, #0x20] + adds r0, r3, r0 + ldr r1, [r0] + movs r0, #0x80 + lsls r0, r0, #0xd + ands r1, r0 + str r3, [sp, #0x18] + cmp r1, #0 + bne _08043A82 + b _08043BFE +_08043A82: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerPosition + movs r1, #1 + adds r5, r0, #0 + eors r5, r1 + ands r5, r1 + adds r0, r5, #0 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r0, r5, #2 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _08043B34 + ldr r0, [r0] + movs r2, #1 + ands r0, r2 + cmp r0, #0 + bne _08043AB4 + b _08043BC4 +_08043AB4: + movs r1, #0x58 + adds r0, r6, #0 + muls r0, r1, r0 + ldr r3, _08043B2C + adds r1, r0, r3 + adds r0, r1, #0 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0 + beq _08043B80 + ldrh r0, [r1, #0x28] + cmp r0, #0 + beq _08043B3C + movs r1, #0x58 + adds r0, r7, #0 + muls r0, r1, r0 + adds r1, r0, r3 + adds r0, r1, #0 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0 + beq _08043B3C + ldrh r0, [r1, #0x28] + cmp r0, #0 + beq _08043B3C + str r2, [sp, #0x24] + bl Random + ldr r2, [sp, #0x24] + adds r1, r2, #0 + ands r1, r0 + lsls r1, r1, #1 + orrs r5, r1 + adds r0, r5, #0 + bl GetBattlerAtPosition + mov r2, r8 + strb r0, [r2] + ldrb r0, [r2] + movs r3, #0x58 + muls r0, r3, r0 + ldr r5, _08043B2C + adds r0, r0, r5 + adds r0, #0x20 + ldrb r0, [r0] + ldr r1, [sp, #0x1c] + strb r0, [r1] + ldrb r0, [r2] + muls r0, r3, r0 + adds r0, r0, r5 + adds r0, #0x20 + ldrb r0, [r0] + ldr r2, _08043B38 + strb r0, [r2] + b _08043BEC + .align 2, 0 +_08043B24: .4byte 0x02023D10 +_08043B28: .4byte 0x02023D08 +_08043B2C: .4byte 0x02023D28 +_08043B30: .4byte 0x02023F50 +_08043B34: .4byte 0x02022C90 +_08043B38: .4byte 0x02023EAE +_08043B3C: + ldr r3, _08043B7C + movs r2, #0x58 + adds r0, r6, #0 + muls r0, r2, r0 + adds r1, r0, r3 + adds r0, r1, #0 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0 + beq _08043B80 + ldrh r0, [r1, #0x28] + cmp r0, #0 + beq _08043B80 + mov r5, r8 + strb r6, [r5] + adds r1, r4, #0 + muls r1, r2, r1 + adds r1, r1, r3 + ldrb r0, [r5] + muls r0, r2, r0 + adds r0, r0, r3 + adds r0, #0x20 + ldrb r0, [r0] + adds r1, #0x20 + strb r0, [r1] + ldrb r0, [r5] + muls r0, r2, r0 + adds r0, r0, r3 + adds r0, #0x20 + ldrb r0, [r0] + b _08043BE8 + .align 2, 0 +_08043B7C: .4byte 0x02023D28 +_08043B80: + ldr r3, _08043BC0 + movs r2, #0x58 + adds r0, r7, #0 + muls r0, r2, r0 + adds r1, r0, r3 + adds r0, r1, #0 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0 + beq _08043BF6 + ldrh r0, [r1, #0x28] + cmp r0, #0 + beq _08043BF6 + mov r5, r8 + strb r7, [r5] + adds r1, r4, #0 + muls r1, r2, r1 + adds r1, r1, r3 + ldrb r0, [r5] + muls r0, r2, r0 + adds r0, r0, r3 + adds r0, #0x20 + ldrb r0, [r0] + adds r1, #0x20 + strb r0, [r1] + ldrb r0, [r5] + muls r0, r2, r0 + adds r0, r0, r3 + adds r0, #0x20 + ldrb r0, [r0] + b _08043BE8 + .align 2, 0 +_08043BC0: .4byte 0x02023D28 +_08043BC4: + mov r2, r8 + strb r6, [r2] + movs r3, #0x58 + adds r0, r6, #0 + muls r0, r3, r0 + ldr r5, _08043C18 + adds r0, r0, r5 + adds r2, r0, #0 + adds r2, #0x20 + ldrb r1, [r2] + cmp r1, #0 + beq _08043BF6 + ldrh r0, [r0, #0x28] + cmp r0, #0 + beq _08043BF6 + ldr r0, [sp, #0x1c] + strb r1, [r0] + ldrb r0, [r2] +_08043BE8: + ldr r1, _08043C1C + strb r0, [r1] +_08043BEC: + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 +_08043BF6: + mov r2, sb + cmp r2, #0 + beq _08043BFE + b _08043F80 +_08043BFE: + ldr r3, [sp, #0x1c] + adds r3, #0x58 + str r3, [sp, #0x1c] + ldr r5, [sp, #0x20] + adds r5, #4 + str r5, [sp, #0x20] + adds r4, #1 + ldr r0, _08043C20 + ldrb r0, [r0] + cmp r4, r0 + bge _08043C16 + b _08043A62 +_08043C16: + b _0804405E + .align 2, 0 +_08043C18: .4byte 0x02023D28 +_08043C1C: .4byte 0x02023EAE +_08043C20: .4byte 0x02023D10 +_08043C24: + movs r4, #0 + ldr r0, _08043C5C + ldrb r1, [r0] + cmp r4, r1 + blt _08043C30 + b _0804405E +_08043C30: + ldr r0, _08043C60 + adds r5, r1, #0 + ldr r2, _08043C64 + adds r3, r0, #0 + adds r3, #0x20 + movs r6, #0x80 + lsls r6, r6, #0xc +_08043C3E: + ldrb r1, [r3] + cmp r1, #0x16 + bne _08043C4E + ldr r0, [r2] + ands r0, r6 + cmp r0, #0 + beq _08043C4E + b _08043FF4 +_08043C4E: + adds r2, #4 + adds r3, #0x58 + adds r4, #1 + cmp r4, r5 + blt _08043C3E + b _0804405E + .align 2, 0 +_08043C5C: .4byte 0x02023D10 +_08043C60: .4byte 0x02023D28 +_08043C64: .4byte 0x02023F50 +_08043C68: + mov r0, sl + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r4, #0 + ldr r0, _08043CB8 + ldrb r0, [r0] + cmp r4, r0 + blt _08043C7E + b _0804405E +_08043C7E: + ldr r7, _08043CBC +_08043C80: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r3, r4, #1 + cmp r0, r5 + beq _08043CAA + movs r0, #0x58 + muls r0, r4, r0 + adds r0, r0, r7 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, r6 + bne _08043CAA + ldr r0, _08043CC0 + strb r6, [r0] + lsls r0, r3, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 +_08043CAA: + adds r4, r3, #0 + ldr r0, _08043CB8 + ldrb r0, [r0] + cmp r4, r0 + blt _08043C80 + b _0804405E + .align 2, 0 +_08043CB8: .4byte 0x02023D10 +_08043CBC: .4byte 0x02023D28 +_08043CC0: .4byte 0x02023EAE +_08043CC4: + mov r0, sl + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r4, #0 + ldr r0, _08043D14 + ldrb r0, [r0] + cmp r4, r0 + blt _08043CDA + b _0804405E +_08043CDA: + ldr r7, _08043D18 +_08043CDC: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r3, r4, #1 + cmp r0, r5 + bne _08043D06 + movs r0, #0x58 + muls r0, r4, r0 + adds r0, r0, r7 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, r6 + bne _08043D06 + ldr r0, _08043D1C + strb r6, [r0] + lsls r0, r3, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 +_08043D06: + adds r4, r3, #0 + ldr r0, _08043D14 + ldrb r0, [r0] + cmp r4, r0 + blt _08043CDC + b _0804405E + .align 2, 0 +_08043D14: .4byte 0x02023D10 +_08043D18: .4byte 0x02023D28 +_08043D1C: .4byte 0x02023EAE +_08043D20: + ldrb r0, [r7] + cmp r0, #0xfd + beq _08043D44 + cmp r0, #0xfe + beq _08043D7C + movs r4, #0 + ldr r0, _08043D3C + adds r5, r0, #0 + ldrb r0, [r5] + cmp r4, r0 + blt _08043D38 + b _0804405E +_08043D38: + ldr r2, _08043D40 + b _08043DB4 + .align 2, 0 +_08043D3C: .4byte 0x02023D10 +_08043D40: .4byte 0x02023D28 +_08043D44: + movs r4, #0 + ldr r0, _08043D74 + ldrb r0, [r0] + cmp r4, r0 + blt _08043D50 + b _0804405E +_08043D50: + ldr r5, _08043D78 + movs r2, #0x80 + lsls r2, r2, #9 + adds r1, r0, #0 +_08043D58: + lsls r0, r4, #2 + adds r0, r0, r5 + ldr r0, [r0] + ands r0, r2 + adds r3, r4, #1 + cmp r0, #0 + beq _08043D6C + lsls r0, r3, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 +_08043D6C: + adds r4, r3, #0 + cmp r4, r1 + blt _08043D58 + b _0804405E + .align 2, 0 +_08043D74: .4byte 0x02023D10 +_08043D78: .4byte 0x02023F50 +_08043D7C: + movs r4, #0 + ldr r0, _08043DAC + ldrb r0, [r0] + cmp r4, r0 + blt _08043D88 + b _0804405E +_08043D88: + ldr r5, _08043DB0 + movs r2, #0x80 + lsls r2, r2, #0xa + adds r1, r0, #0 +_08043D90: + lsls r0, r4, #2 + adds r0, r0, r5 + ldr r0, [r0] + ands r0, r2 + adds r3, r4, #1 + cmp r0, #0 + beq _08043DA4 + lsls r0, r3, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 +_08043DA4: + adds r4, r3, #0 + cmp r4, r1 + blt _08043D90 + b _0804405E + .align 2, 0 +_08043DAC: .4byte 0x02023D10 +_08043DB0: .4byte 0x02023F50 +_08043DB4: + movs r0, #0x58 + muls r0, r4, r0 + adds r0, r0, r2 + adds r0, #0x20 + ldrb r0, [r0] + adds r3, r4, #1 + cmp r0, r6 + bne _08043DCC + strb r6, [r7] + lsls r0, r3, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 +_08043DCC: + adds r4, r3, #0 + ldrb r1, [r5] + cmp r4, r1 + blt _08043DB4 + b _0804405E +_08043DD6: + movs r4, #0 + ldr r0, _08043E14 + ldrb r0, [r0] + cmp r4, r0 + blt _08043DE2 + b _0804405E +_08043DE2: + ldr r2, _08043E18 + mov r8, r2 + adds r2, r0, #0 + movs r5, #0x58 +_08043DEA: + adds r0, r4, #0 + muls r0, r5, r0 + mov r3, r8 + adds r1, r0, r3 + adds r0, r1, #0 + adds r0, #0x20 + ldrb r0, [r0] + adds r3, r4, #1 + cmp r0, r6 + bne _08043E0C + ldrh r0, [r1, #0x28] + cmp r0, #0 + beq _08043E0C + strb r6, [r7] + lsls r0, r3, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 +_08043E0C: + adds r4, r3, #0 + cmp r4, r2 + blt _08043DEA + b _0804405E + .align 2, 0 +_08043E14: .4byte 0x02023D10 +_08043E18: .4byte 0x02023D28 +_08043E1C: + movs r4, #0 + ldr r0, _08043E54 + ldrb r0, [r0] + cmp r4, r0 + blt _08043E28 + b _0804405E +_08043E28: + ldr r7, _08043E58 + adds r1, r0, #0 + movs r5, #0x58 + ldr r2, _08043E5C +_08043E30: + adds r0, r4, #0 + muls r0, r5, r0 + adds r0, r0, r7 + adds r0, #0x20 + ldrb r0, [r0] + adds r3, r4, #1 + cmp r0, r6 + bne _08043E4C + cmp r4, sl + beq _08043E4C + strb r6, [r2] + lsls r0, r3, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 +_08043E4C: + adds r4, r3, #0 + cmp r4, r1 + blt _08043E30 + b _0804405E + .align 2, 0 +_08043E54: .4byte 0x02023D10 +_08043E58: .4byte 0x02023D28 +_08043E5C: .4byte 0x02023EAE +_08043E60: + mov r0, sl + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r4, #0 + ldr r0, _08043EB0 + ldrb r0, [r0] + cmp r4, r0 + blt _08043E76 + b _0804405E +_08043E76: + ldr r7, _08043EB4 +_08043E78: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r5 + beq _08043EA4 + movs r0, #0x58 + muls r0, r4, r0 + adds r0, r0, r7 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, r6 + bne _08043EA4 + ldr r0, _08043EB8 + strb r6, [r0] + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 +_08043EA4: + adds r4, #1 + ldr r0, _08043EB0 + ldrb r0, [r0] + cmp r4, r0 + blt _08043E78 + b _0804405E + .align 2, 0 +_08043EB0: .4byte 0x02023D10 +_08043EB4: .4byte 0x02023D28 +_08043EB8: .4byte 0x02023EAE +_08043EBC: + mov r0, sl + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r4, #0 + ldr r0, _08043F0C + ldrb r0, [r0] + cmp r4, r0 + blt _08043ED2 + b _0804405E +_08043ED2: + ldr r7, _08043F10 +_08043ED4: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r5 + bne _08043F00 + movs r0, #0x58 + muls r0, r4, r0 + adds r0, r0, r7 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, r6 + bne _08043F00 + ldr r0, _08043F14 + strb r6, [r0] + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 +_08043F00: + adds r4, #1 + ldr r0, _08043F0C + ldrb r0, [r0] + cmp r4, r0 + blt _08043ED4 + b _0804405E + .align 2, 0 +_08043F0C: .4byte 0x02023D10 +_08043F10: .4byte 0x02023D28 +_08043F14: .4byte 0x02023EAE + thumb_func_end AbilityBattleEffects + + thumb_func_start sub_08043F18 +sub_08043F18: @ 0x08043F18 + ldr r0, _08043F30 + bl BattleScriptPushCursorAndCallback + ldr r0, _08043F34 + strb r6, [r0, #0x17] +_08043F22: + ldr r0, _08043F38 + ldr r0, [r0] + adds r0, #0x7f + mov r1, sb + subs r1, #1 + strb r1, [r0] + b _0804405E + .align 2, 0 +_08043F30: .4byte 0x08289A31 +_08043F34: .4byte 0x02024118 +_08043F38: .4byte 0x02024140 +_08043F3C: + ldr r0, _08043F58 + bl BattleScriptPushCursorAndCallback + ldr r0, _08043F5C + mov r5, sl + strb r5, [r0, #0x17] + ldr r0, _08043F60 + ldr r0, [r0] + adds r0, #0x7f + mov r1, sb + subs r1, #1 + strb r1, [r0] + b _0804407A + .align 2, 0 +_08043F58: .4byte 0x08289A31 +_08043F5C: .4byte 0x02024118 +_08043F60: .4byte 0x02024140 +_08043F64: + strb r1, [r7] + ldr r0, [r2] + ldr r1, _08043F78 + ands r0, r1 + str r0, [r2] + ldr r0, _08043F7C + bl BattleScriptPushCursorAndCallback + b _08044008 + .align 2, 0 +_08043F78: .4byte 0xFFF7FFFF +_08043F7C: .4byte 0x08289A40 +_08043F80: + ldr r0, _08043FD0 + bl BattleScriptPushCursorAndCallback + ldr r1, _08043FD4 + ldr r0, [sp, #0x18] + adds r1, r0, r1 + ldr r0, [r1] + ldr r2, _08043FD8 + ands r0, r2 + str r0, [r1] + ldr r0, _08043FDC + strb r4, [r0, #0x17] + ldr r1, _08043FE0 + movs r4, #0xfd + strb r4, [r1] + movs r0, #4 + strb r0, [r1, #1] + ldr r2, _08043FE4 + ldrb r0, [r2] + strb r0, [r1, #2] + ldr r3, _08043FE8 + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + strb r0, [r1, #3] + movs r0, #0xff + strb r0, [r1, #4] + ldr r1, _08043FEC + strb r4, [r1] + movs r0, #9 + strb r0, [r1, #1] + ldr r0, _08043FF0 + ldrb r0, [r0] + strb r0, [r1, #2] + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1, #3] + b _0804405E + .align 2, 0 +_08043FD0: .4byte 0x082899DA +_08043FD4: .4byte 0x02023F50 +_08043FD8: .4byte 0xFFEFFFFF +_08043FDC: .4byte 0x02024118 +_08043FE0: .4byte 0x02022C0C +_08043FE4: .4byte 0x02023D08 +_08043FE8: .4byte 0x02023D12 +_08043FEC: .4byte 0x02022C1C +_08043FF0: .4byte 0x02023EAE +_08043FF4: + strb r1, [r7] + ldr r0, [r2] + ldr r1, _0804401C + ands r0, r1 + str r0, [r2] + bl BattleScriptPushCursor + ldr r1, _08044020 + ldr r0, _08044024 + str r0, [r1] +_08044008: + ldr r0, _08044028 + ldr r0, [r0] + adds r0, #0xd8 + strb r4, [r0] +_08044010: + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + b _0804405E + .align 2, 0 +_0804401C: .4byte 0xFFF7FFFF +_08044020: .4byte 0x02023EB8 +_08044024: .4byte 0x08289A49 +_08044028: .4byte 0x02024140 +_0804402C: + movs r4, #0 + ldr r0, _0804408C + ldrb r1, [r0] + cmp r4, r1 + bge _0804405E + ldr r0, _08044090 + adds r2, r1, #0 + adds r1, r0, #0 + adds r1, #0x20 + ldr r3, _08044094 +_08044040: + ldrb r0, [r1] + cmp r0, r6 + bne _08044056 + cmp r4, sl + beq _08044056 + strb r6, [r3] + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 +_08044056: + adds r1, #0x58 + adds r4, #1 + cmp r4, r2 + blt _08044040 +_0804405E: + mov r1, sb + cmp r1, #0 + beq _0804407A +_08044064: + ldr r2, [sp, #4] + cmp r2, #0xb + bhi _0804407A + ldr r1, _08044094 + ldrb r0, [r1] + cmp r0, #0xff + beq _0804407A + adds r1, r0, #0 + mov r0, sl + bl RecordAbilityBattle +_0804407A: + mov r0, sb + add sp, #0x28 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0804408C: .4byte 0x02023D10 +_08044090: .4byte 0x02023D28 +_08044094: .4byte 0x02023EAE + thumb_func_end sub_08043F18 + + thumb_func_start BattleScriptExecute +BattleScriptExecute: @ 0x08044098 + ldr r1, _080440C4 + str r0, [r1] + ldr r0, _080440C8 + ldr r0, [r0] + ldr r2, [r0, #0xc] + adds r3, r2, #0 + adds r3, #0x20 + ldrb r0, [r3] + adds r1, r0, #1 + strb r1, [r3] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r2, r2, r0 + ldr r1, _080440CC + ldr r0, [r1] + str r0, [r2] + ldr r0, _080440D0 + str r0, [r1] + ldr r1, _080440D4 + movs r0, #0 + strb r0, [r1] + bx lr + .align 2, 0 +_080440C4: .4byte 0x02023EB8 +_080440C8: .4byte 0x0202414C +_080440CC: .4byte 0x03005A64 +_080440D0: .4byte 0x0803DC59 +_080440D4: .4byte 0x02023D27 + thumb_func_end BattleScriptExecute + + thumb_func_start BattleScriptPushCursorAndCallback +BattleScriptPushCursorAndCallback: @ 0x080440D8 + push {r4, lr} + adds r4, r0, #0 + bl BattleScriptPushCursor + ldr r0, _0804410C + str r4, [r0] + ldr r0, _08044110 + ldr r0, [r0] + ldr r2, [r0, #0xc] + adds r3, r2, #0 + adds r3, #0x20 + ldrb r0, [r3] + adds r1, r0, #1 + strb r1, [r3] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r2, r2, r0 + ldr r1, _08044114 + ldr r0, [r1] + str r0, [r2] + ldr r0, _08044118 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804410C: .4byte 0x02023EB8 +_08044110: .4byte 0x0202414C +_08044114: .4byte 0x03005A64 +_08044118: .4byte 0x0803DCCD + thumb_func_end BattleScriptPushCursorAndCallback + + thumb_func_start ItemBattleEffects +ItemBattleEffects: @ 0x0804411C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x2c + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #8] + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + movs r0, #0 + mov sl, r0 + movs r1, #0 + str r1, [sp, #0xc] + add r0, sp, #4 + strb r1, [r0] + ldr r4, _08044168 + ldr r1, _0804416C + movs r0, #0x58 + muls r0, r7, r0 + adds r0, r0, r1 + ldrh r0, [r0, #0x2e] + strh r0, [r4] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xaf + bne _08044174 + ldr r1, _08044170 + lsls r0, r7, #3 + subs r0, r0, r7 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r5, [r0, #7] + ldrb r0, [r0, #0x1a] + b _08044188 + .align 2, 0 +_08044168: .4byte 0x02023EAC +_0804416C: .4byte 0x02023D28 +_08044170: .4byte 0x020240A8 +_08044174: + ldrh r0, [r4] + bl sub_080D6CF8 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldrh r0, [r4] + bl sub_080D6D1C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_08044188: + mov sb, r0 + ldr r1, _080441B0 + ldr r0, _080441B4 + ldrb r2, [r0] + movs r0, #0x58 + muls r0, r2, r0 + adds r0, r0, r1 + ldrh r0, [r0, #0x2e] + str r0, [sp, #0x14] + cmp r0, #0xaf + bne _080441BC + ldr r1, _080441B8 + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r3, [r0, #7] + mov r8, r3 + ldrb r0, [r0, #0x1a] + b _080441D2 + .align 2, 0 +_080441B0: .4byte 0x02023D28 +_080441B4: .4byte 0x02023EAF +_080441B8: .4byte 0x020240A8 +_080441BC: + ldr r0, [sp, #0x14] + bl sub_080D6CF8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r0, [sp, #0x14] + bl sub_080D6D1C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_080441D2: + str r0, [sp, #0x10] + ldr r2, _08044208 + ldr r0, _0804420C + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + ldrh r4, [r0, #0x2e] + cmp r4, #0xaf + beq _080441F2 + adds r0, r4, #0 + bl sub_080D6CF8 + adds r0, r4, #0 + bl sub_080D6D1C +_080441F2: + ldr r0, [sp, #8] + cmp r0, #4 + bls _080441FC + bl _0804546A +_080441FC: + lsls r0, r0, #2 + ldr r1, _08044210 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08044208: .4byte 0x02023D28 +_0804420C: .4byte 0x02023EB0 +_08044210: .4byte 0x08044214 +_08044214: @ jump table + .4byte _08044228 @ case 0 + .4byte _080442C8 @ case 1 + .4byte _0804546A @ case 2 + .4byte _08044EC0 @ case 3 + .4byte _08045310 @ case 4 +_08044228: + cmp r5, #0x17 + beq _08044258 + cmp r5, #0x20 + beq _08044234 + bl _0804546A +_08044234: + adds r0, r7, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08044244 + bl _0804546A +_08044244: + ldr r0, _08044254 + ldr r0, [r0] + adds r0, #0x4a + movs r1, #2 + strb r1, [r0] + bl _0804546A + .align 2, 0 +_08044254: .4byte 0x02024140 +_08044258: + ldr r1, _080442B0 + mov r8, r1 + movs r0, #0x58 + adds r1, r7, #0 + muls r1, r0, r1 + mov r0, r8 + adds r0, #0x18 + adds r1, r1, r0 + movs r2, #6 + movs r3, #7 + mov sl, r3 +_0804426E: + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #5 + bgt _0804427C + strb r2, [r1] + movs r5, #5 + str r5, [sp, #0xc] +_0804427C: + adds r1, #1 + movs r0, #1 + rsbs r0, r0, #0 + add sl, r0 + mov r3, sl + cmp r3, #0 + bge _0804426E + ldr r5, [sp, #0xc] + cmp r5, #0 + bne _08044294 + bl _0804546A +_08044294: + ldr r0, _080442B4 + strb r7, [r0, #0x17] + ldr r0, _080442B8 + strb r7, [r0] + ldr r1, _080442BC + ldr r0, _080442C0 + strb r7, [r0] + strb r7, [r1] + ldr r0, _080442C4 + bl BattleScriptExecute + bl _0804546A + .align 2, 0 +_080442B0: .4byte 0x02023D28 +_080442B4: .4byte 0x02024118 +_080442B8: .4byte 0x02023EB3 +_080442BC: .4byte 0x02023D08 +_080442C0: .4byte 0x02023EAF +_080442C4: .4byte 0x08289D36 +_080442C8: + ldr r1, _080442F0 + movs r0, #0x58 + muls r0, r7, r0 + adds r0, r0, r1 + ldrh r0, [r0, #0x28] + mov r8, r1 + cmp r0, #0 + bne _080442DC + bl _0804546A +_080442DC: + subs r0, r5, #1 + cmp r0, #0x2a + bls _080442E6 + bl _08044E16 +_080442E6: + lsls r0, r0, #2 + ldr r1, _080442F4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080442F0: .4byte 0x02023D28 +_080442F4: .4byte 0x080442F8 +_080442F8: @ jump table + .4byte _080443A4 @ case 0 + .4byte _08044B84 @ case 1 + .4byte _08044C48 @ case 2 + .4byte _08044BB4 @ case 3 + .4byte _08044BE8 @ case 4 + .4byte _08044C18 @ case 5 + .4byte _080443F0 @ case 6 + .4byte _08044C84 @ case 7 + .4byte _08044CB4 @ case 8 + .4byte _080445BC @ case 9 + .4byte _0804463C @ case 10 + .4byte _080446B8 @ case 11 + .4byte _0804474C @ case 12 + .4byte _080447E0 @ case 13 + .4byte _08044874 @ case 14 + .4byte _080448DC @ case 15 + .4byte _08044930 @ case 16 + .4byte _08044984 @ case 17 + .4byte _080449EC @ case 18 + .4byte _08044A50 @ case 19 + .4byte _08044A9C @ case 20 + .4byte _08044E16 @ case 21 + .4byte _080444F0 @ case 22 + .4byte _08044E16 @ case 23 + .4byte _08044E16 @ case 24 + .4byte _08044E16 @ case 25 + .4byte _08044E16 @ case 26 + .4byte _08044DE0 @ case 27 + .4byte _08044E16 @ case 28 + .4byte _08044E16 @ case 29 + .4byte _08044E16 @ case 30 + .4byte _08044E16 @ case 31 + .4byte _08044E16 @ case 32 + .4byte _08044E16 @ case 33 + .4byte _08044E16 @ case 34 + .4byte _08044E16 @ case 35 + .4byte _08044E16 @ case 36 + .4byte _08044E16 @ case 37 + .4byte _08044E16 @ case 38 + .4byte _08044E16 @ case 39 + .4byte _08044E16 @ case 40 + .4byte _08044E16 @ case 41 + .4byte _0804455C @ case 42 +_080443A4: + movs r0, #0x58 + muls r0, r7, r0 + mov r1, r8 + adds r2, r0, r1 + ldrh r0, [r2, #0x2c] + ldrh r1, [r2, #0x28] + lsrs r0, r0, #1 + cmp r1, r0 + bls _080443BA + bl _08044E16 +_080443BA: + cmp r6, #0 + beq _080443C2 + bl _08044E16 +_080443C2: + ldr r4, _080443E8 + mov r3, sb + str r3, [r4] + ldrh r3, [r2, #0x28] + mov r5, sb + adds r0, r3, r5 + ldrh r1, [r2, #0x2c] + cmp r0, r1 + ble _080443D8 + subs r0, r1, r3 + str r0, [r4] +_080443D8: + ldr r0, [r4] + rsbs r0, r0, #0 + str r0, [r4] + ldr r0, _080443EC + bl BattleScriptExecute + b _08044742 + .align 2, 0 +_080443E8: .4byte 0x02023E94 +_080443EC: .4byte 0x08289D4C +_080443F0: + cmp r6, #0 + beq _080443F8 + bl _08044E16 +_080443F8: + adds r0, r7, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804441C + ldr r1, _08044414 + lsls r0, r7, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _08044418 + b _0804442A + .align 2, 0 +_08044414: .4byte 0x02023D12 +_08044418: .4byte 0x02024190 +_0804441C: + ldr r1, _08044498 + lsls r0, r7, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _0804449C +_0804442A: + adds r4, r1, r0 + movs r1, #0 + mov sl, r1 + add r5, sp, #4 +_08044432: + mov r1, sl + adds r1, #0xd + adds r0, r4, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + mov r1, sl + adds r1, #0x11 + adds r0, r4, #0 + bl GetMonData + strb r0, [r5] + adds r0, r4, #0 + movs r1, #0x15 + bl GetMonData + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r6, #0 + beq _08044462 + ldrb r0, [r5] + cmp r0, #0 + beq _0804446C +_08044462: + movs r2, #1 + add sl, r2 + mov r3, sl + cmp r3, #3 + ble _08044432 +_0804446C: + mov r5, sl + cmp r5, #4 + bne _08044476 + bl _08044E16 +_08044476: + lsls r2, r5, #0x18 + lsrs r2, r2, #0x18 + adds r0, r6, #0 + bl CalculatePPWithBonus + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + add r0, sp, #4 + ldrb r0, [r0] + mov r3, sb + adds r1, r0, r3 + cmp r1, r2 + ble _080444A0 + add r0, sp, #4 + strb r2, [r0] + b _080444A4 + .align 2, 0 +_08044498: .4byte 0x02023D12 +_0804449C: .4byte 0x020243E8 +_080444A0: + add r0, sp, #4 + strb r1, [r0] +_080444A4: + ldr r1, _080444E4 + movs r0, #0xfd + strb r0, [r1] + movs r0, #2 + strb r0, [r1, #1] + strb r6, [r1, #2] + lsrs r0, r6, #8 + strb r0, [r1, #3] + movs r0, #0xff + strb r0, [r1, #4] + ldr r0, _080444E8 + bl BattleScriptExecute + mov r1, sl + adds r1, #9 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + add r5, sp, #4 + str r5, [sp] + movs r0, #0 + movs r2, #0 + movs r3, #1 + bl BtlController_EmitSetMonData + ldr r0, _080444EC + ldrb r0, [r0] + bl MarkBattlerForControllerExec + movs r0, #3 + str r0, [sp, #0xc] + bl _08044E1E + .align 2, 0 +_080444E4: .4byte 0x02022C0C +_080444E8: .4byte 0x08289D69 +_080444EC: .4byte 0x02023D08 +_080444F0: + ldr r0, _08044544 + movs r1, #0x58 + muls r1, r7, r1 + adds r0, #0x18 + adds r1, r1, r0 + movs r2, #6 + movs r3, #7 + mov sl, r3 +_08044500: + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #5 + bgt _0804450E + strb r2, [r1] + movs r5, #5 + str r5, [sp, #0xc] +_0804450E: + adds r1, #1 + movs r0, #1 + rsbs r0, r0, #0 + add sl, r0 + mov r3, sl + cmp r3, #0 + bge _08044500 + movs r5, #8 + mov sl, r5 + ldr r0, [sp, #0xc] + cmp r0, #0 + bne _0804452A + bl _0804546A +_0804452A: + ldr r0, _08044548 + strb r7, [r0, #0x17] + ldr r0, _0804454C + strb r7, [r0] + ldr r1, _08044550 + ldr r0, _08044554 + strb r7, [r0] + strb r7, [r1] + ldr r0, _08044558 + bl BattleScriptExecute + bl _08044E16 + .align 2, 0 +_08044544: .4byte 0x02023D28 +_08044548: .4byte 0x02024118 +_0804454C: .4byte 0x02023EB3 +_08044550: .4byte 0x02023D08 +_08044554: .4byte 0x02023EAF +_08044558: .4byte 0x08289D36 +_0804455C: + movs r0, #0x58 + muls r0, r7, r0 + mov r2, r8 + adds r1, r0, r2 + ldrh r0, [r1, #0x28] + ldrh r3, [r1, #0x2c] + cmp r0, r3 + blo _08044570 + bl _08044E16 +_08044570: + cmp r6, #0 + beq _08044578 + bl _08044E16 +_08044578: + ldr r3, _080445B4 + ldrh r0, [r1, #0x2c] + lsrs r0, r0, #4 + str r0, [r3] + cmp r0, #0 + bne _08044588 + movs r0, #1 + str r0, [r3] +_08044588: + ldrh r2, [r1, #0x28] + ldr r0, [r3] + adds r0, r2, r0 + ldrh r1, [r1, #0x2c] + cmp r0, r1 + ble _08044598 + subs r0, r1, r2 + str r0, [r3] +_08044598: + ldr r0, [r3] + rsbs r0, r0, #0 + str r0, [r3] + ldr r0, _080445B8 + bl BattleScriptExecute + movs r0, #4 + str r0, [sp, #0xc] + adds r0, r7, #0 + adds r1, r5, #0 + bl RecordItemEffectBattle + bl _08044E16 + .align 2, 0 +_080445B4: .4byte 0x02023E94 +_080445B8: .4byte 0x08289D79 +_080445BC: + movs r0, #0x58 + adds r1, r7, #0 + muls r1, r0, r1 + str r1, [sp, #0x18] + adds r4, r1, #0 + add r4, r8 + ldrh r0, [r4, #0x2c] + ldrh r1, [r4, #0x28] + lsrs r0, r0, #1 + cmp r1, r0 + bls _080445D6 + bl _08044E16 +_080445D6: + cmp r6, #0 + beq _080445DE + bl _08044E16 +_080445DE: + ldr r1, _08044634 + movs r0, #0xfd + strb r0, [r1] + movs r0, #8 + strb r0, [r1, #1] + strb r6, [r1, #2] + movs r0, #0xff + strb r0, [r1, #3] + ldr r5, _08044638 + ldrh r0, [r4, #0x2c] + mov r1, sb + bl __divsi3 + str r0, [r5] + cmp r0, #0 + bne _08044602 + movs r0, #1 + str r0, [r5] +_08044602: + ldrh r2, [r4, #0x28] + ldr r0, [r5] + adds r0, r2, r0 + ldrh r1, [r4, #0x2c] + cmp r0, r1 + ble _08044612 + subs r0, r1, r2 + str r0, [r5] +_08044612: + ldr r0, [r5] + rsbs r0, r0, #0 + str r0, [r5] + mov r0, r8 + adds r0, #0x48 + ldr r2, [sp, #0x18] + adds r0, r2, r0 + ldr r0, [r0] + movs r1, #0 + bl sub_0806E30C + lsls r0, r0, #0x18 + cmp r0, #0 + bge _08044630 + b _080447BC +_08044630: + b _080447D0 + .align 2, 0 +_08044634: .4byte 0x02022C0C +_08044638: .4byte 0x02023E94 +_0804463C: + movs r0, #0x58 + adds r5, r7, #0 + muls r5, r0, r5 + str r5, [sp, #0x1c] + add r5, r8 + ldrh r0, [r5, #0x2c] + ldrh r1, [r5, #0x28] + lsrs r0, r0, #1 + cmp r1, r0 + bls _08044654 + bl _08044E16 +_08044654: + cmp r6, #0 + beq _0804465C + bl _08044E16 +_0804465C: + ldr r1, _080446B0 + movs r0, #0xfd + strb r0, [r1] + movs r0, #8 + strb r0, [r1, #1] + movs r6, #1 + strb r6, [r1, #2] + movs r0, #0xff + strb r0, [r1, #3] + ldr r4, _080446B4 + ldrh r0, [r5, #0x2c] + mov r1, sb + bl __divsi3 + str r0, [r4] + cmp r0, #0 + bne _08044680 + str r6, [r4] +_08044680: + ldrh r2, [r5, #0x28] + ldr r0, [r4] + adds r0, r2, r0 + ldrh r1, [r5, #0x2c] + cmp r0, r1 + ble _08044690 + subs r0, r1, r2 + str r0, [r4] +_08044690: + ldr r0, [r4] + rsbs r0, r0, #0 + str r0, [r4] + mov r0, r8 + adds r0, #0x48 + ldr r1, [sp, #0x1c] + adds r0, r1, r0 + ldr r0, [r0] + movs r1, #1 + bl sub_0806E30C + lsls r0, r0, #0x18 + cmp r0, #0 + bge _080446AE + b _0804484E +_080446AE: + b _08044864 + .align 2, 0 +_080446B0: .4byte 0x02022C0C +_080446B4: .4byte 0x02023E94 +_080446B8: + movs r0, #0x58 + adds r3, r7, #0 + muls r3, r0, r3 + str r3, [sp, #0x20] + adds r5, r3, #0 + add r5, r8 + ldrh r0, [r5, #0x2c] + ldrh r1, [r5, #0x28] + lsrs r0, r0, #1 + cmp r1, r0 + bls _080446D0 + b _08044E16 +_080446D0: + cmp r6, #0 + beq _080446D6 + b _08044E16 +_080446D6: + ldr r1, _08044730 + movs r0, #0xfd + strb r0, [r1] + movs r0, #8 + strb r0, [r1, #1] + movs r0, #2 + strb r0, [r1, #2] + movs r0, #0xff + strb r0, [r1, #3] + ldr r4, _08044734 + ldrh r0, [r5, #0x2c] + mov r1, sb + bl __divsi3 + str r0, [r4] + cmp r0, #0 + bne _080446FC + movs r0, #1 + str r0, [r4] +_080446FC: + ldrh r2, [r5, #0x28] + ldr r0, [r4] + adds r0, r2, r0 + ldrh r1, [r5, #0x2c] + cmp r0, r1 + ble _0804470C + subs r0, r1, r2 + str r0, [r4] +_0804470C: + ldr r0, [r4] + rsbs r0, r0, #0 + str r0, [r4] + mov r0, r8 + adds r0, #0x48 + ldr r5, [sp, #0x20] + adds r0, r5, r0 + ldr r0, [r0] + movs r1, #2 + bl sub_0806E30C + lsls r0, r0, #0x18 + cmp r0, #0 + bge _0804473C + ldr r0, _08044738 + bl BattleScriptExecute + b _08044742 + .align 2, 0 +_08044730: .4byte 0x02022C0C +_08044734: .4byte 0x02023E94 +_08044738: .4byte 0x08289DAC +_0804473C: + ldr r0, _08044748 + bl BattleScriptExecute +_08044742: + movs r0, #4 + str r0, [sp, #0xc] + b _08044E1E + .align 2, 0 +_08044748: .4byte 0x08289D4C +_0804474C: + movs r0, #0x58 + adds r1, r7, #0 + muls r1, r0, r1 + str r1, [sp, #0x24] + adds r5, r1, #0 + add r5, r8 + ldrh r0, [r5, #0x2c] + ldrh r1, [r5, #0x28] + lsrs r0, r0, #1 + cmp r1, r0 + bls _08044764 + b _08044E16 +_08044764: + cmp r6, #0 + beq _0804476A + b _08044E16 +_0804476A: + ldr r1, _080447C4 + movs r0, #0xfd + strb r0, [r1] + movs r0, #8 + strb r0, [r1, #1] + movs r0, #3 + strb r0, [r1, #2] + movs r0, #0xff + strb r0, [r1, #3] + ldr r4, _080447C8 + ldrh r0, [r5, #0x2c] + mov r1, sb + bl __divsi3 + str r0, [r4] + cmp r0, #0 + bne _08044790 + movs r0, #1 + str r0, [r4] +_08044790: + ldrh r2, [r5, #0x28] + ldr r0, [r4] + adds r0, r2, r0 + ldrh r1, [r5, #0x2c] + cmp r0, r1 + ble _080447A0 + subs r0, r1, r2 + str r0, [r4] +_080447A0: + ldr r0, [r4] + rsbs r0, r0, #0 + str r0, [r4] + mov r0, r8 + adds r0, #0x48 + ldr r2, [sp, #0x24] + adds r0, r2, r0 + ldr r0, [r0] + movs r1, #3 + bl sub_0806E30C + lsls r0, r0, #0x18 + cmp r0, #0 + bge _080447D0 +_080447BC: + ldr r0, _080447CC + bl BattleScriptExecute + b _080447D6 + .align 2, 0 +_080447C4: .4byte 0x02022C0C +_080447C8: .4byte 0x02023E94 +_080447CC: .4byte 0x08289DAC +_080447D0: + ldr r0, _080447DC + bl BattleScriptExecute +_080447D6: + movs r3, #4 + str r3, [sp, #0xc] + b _08044E1E + .align 2, 0 +_080447DC: .4byte 0x08289D4C +_080447E0: + movs r0, #0x58 + adds r5, r7, #0 + muls r5, r0, r5 + str r5, [sp, #0x28] + add r5, r8 + ldrh r0, [r5, #0x2c] + ldrh r1, [r5, #0x28] + lsrs r0, r0, #1 + cmp r1, r0 + bls _080447F6 + b _08044E16 +_080447F6: + cmp r6, #0 + beq _080447FC + b _08044E16 +_080447FC: + ldr r1, _08044858 + movs r0, #0xfd + strb r0, [r1] + movs r0, #8 + strb r0, [r1, #1] + movs r0, #4 + strb r0, [r1, #2] + movs r0, #0xff + strb r0, [r1, #3] + ldr r4, _0804485C + ldrh r0, [r5, #0x2c] + mov r1, sb + bl __divsi3 + str r0, [r4] + cmp r0, #0 + bne _08044822 + movs r0, #1 + str r0, [r4] +_08044822: + ldrh r2, [r5, #0x28] + ldr r0, [r4] + adds r0, r2, r0 + ldrh r1, [r5, #0x2c] + cmp r0, r1 + ble _08044832 + subs r0, r1, r2 + str r0, [r4] +_08044832: + ldr r0, [r4] + rsbs r0, r0, #0 + str r0, [r4] + mov r0, r8 + adds r0, #0x48 + ldr r1, [sp, #0x28] + adds r0, r1, r0 + ldr r0, [r0] + movs r1, #4 + bl sub_0806E30C + lsls r0, r0, #0x18 + cmp r0, #0 + bge _08044864 +_0804484E: + ldr r0, _08044860 + bl BattleScriptExecute + b _0804486A + .align 2, 0 +_08044858: .4byte 0x02022C0C +_0804485C: .4byte 0x02023E94 +_08044860: .4byte 0x08289DAC +_08044864: + ldr r0, _08044870 + bl BattleScriptExecute +_0804486A: + movs r2, #4 + str r2, [sp, #0xc] + b _08044E1E + .align 2, 0 +_08044870: .4byte 0x08289D4C +_08044874: + movs r0, #0x58 + muls r0, r7, r0 + mov r3, r8 + adds r5, r0, r3 + ldrh r4, [r5, #0x28] + ldrh r0, [r5, #0x2c] + mov r1, sb + bl __divsi3 + cmp r4, r0 + ble _0804488C + b _08044E16 +_0804488C: + cmp r6, #0 + beq _08044892 + b _08044E16 +_08044892: + movs r0, #0x19 + ldrsb r0, [r5, r0] + cmp r0, #0xb + ble _0804489C + b _08044E16 +_0804489C: + ldr r1, _080448CC + movs r2, #0xfd + strb r2, [r1] + movs r0, #5 + strb r0, [r1, #1] + movs r0, #1 + strb r0, [r1, #2] + movs r0, #0xff + strb r0, [r1, #3] + ldr r1, _080448D0 + strb r2, [r1] + strb r6, [r1, #1] + movs r0, #0xd2 + strb r0, [r1, #2] + strb r6, [r1, #3] + subs r0, #0xd3 + strb r0, [r1, #4] + ldr r0, _080448D4 + strb r7, [r0] + ldr r1, _080448D8 + movs r0, #0x11 + strb r0, [r1, #0x1a] + movs r0, #0xf + b _08044A30 + .align 2, 0 +_080448CC: .4byte 0x02022C0C +_080448D0: .4byte 0x02022C1C +_080448D4: .4byte 0x02023EB2 +_080448D8: .4byte 0x02024118 +_080448DC: + movs r0, #0x58 + muls r0, r7, r0 + mov r1, r8 + adds r5, r0, r1 + ldrh r4, [r5, #0x28] + ldrh r0, [r5, #0x2c] + mov r1, sb + bl __divsi3 + cmp r4, r0 + ble _080448F4 + b _08044E16 +_080448F4: + cmp r6, #0 + beq _080448FA + b _08044E16 +_080448FA: + movs r0, #0x1a + ldrsb r0, [r5, r0] + cmp r0, #0xb + ble _08044904 + b _08044E16 +_08044904: + ldr r1, _08044924 + movs r0, #0xfd + strb r0, [r1] + movs r0, #5 + strb r0, [r1, #1] + movs r0, #2 + strb r0, [r1, #2] + movs r0, #0xff + strb r0, [r1, #3] + ldr r0, _08044928 + strb r7, [r0] + ldr r1, _0804492C + movs r0, #0x12 + strb r0, [r1, #0x1a] + movs r0, #0x10 + b _080449CA + .align 2, 0 +_08044924: .4byte 0x02022C0C +_08044928: .4byte 0x02023EB2 +_0804492C: .4byte 0x02024118 +_08044930: + movs r0, #0x58 + muls r0, r7, r0 + mov r3, r8 + adds r5, r0, r3 + ldrh r4, [r5, #0x28] + ldrh r0, [r5, #0x2c] + mov r1, sb + bl __divsi3 + cmp r4, r0 + ble _08044948 + b _08044E16 +_08044948: + cmp r6, #0 + beq _0804494E + b _08044E16 +_0804494E: + movs r0, #0x1b + ldrsb r0, [r5, r0] + cmp r0, #0xb + ble _08044958 + b _08044E16 +_08044958: + ldr r1, _08044978 + movs r0, #0xfd + strb r0, [r1] + movs r0, #5 + strb r0, [r1, #1] + movs r0, #3 + strb r0, [r1, #2] + movs r0, #0xff + strb r0, [r1, #3] + ldr r0, _0804497C + strb r7, [r0] + ldr r1, _08044980 + movs r0, #0x13 + strb r0, [r1, #0x1a] + movs r0, #0x11 + b _08044A30 + .align 2, 0 +_08044978: .4byte 0x02022C0C +_0804497C: .4byte 0x02023EB2 +_08044980: .4byte 0x02024118 +_08044984: + movs r0, #0x58 + muls r0, r7, r0 + mov r1, r8 + adds r5, r0, r1 + ldrh r4, [r5, #0x28] + ldrh r0, [r5, #0x2c] + mov r1, sb + bl __divsi3 + cmp r4, r0 + ble _0804499C + b _08044E16 +_0804499C: + cmp r6, #0 + beq _080449A2 + b _08044E16 +_080449A2: + movs r0, #0x1c + ldrsb r0, [r5, r0] + cmp r0, #0xb + ble _080449AC + b _08044E16 +_080449AC: + ldr r1, _080449DC + movs r0, #0xfd + strb r0, [r1] + movs r0, #5 + strb r0, [r1, #1] + movs r0, #4 + strb r0, [r1, #2] + movs r0, #0xff + strb r0, [r1, #3] + ldr r0, _080449E0 + strb r7, [r0] + ldr r1, _080449E4 + movs r0, #0x14 + strb r0, [r1, #0x1a] + movs r0, #0x12 +_080449CA: + strb r0, [r1, #0x10] + strb r6, [r1, #0x11] + ldr r0, _080449E8 + bl BattleScriptExecute + movs r2, #5 + str r2, [sp, #0xc] + b _08044E1E + .align 2, 0 +_080449DC: .4byte 0x02022C0C +_080449E0: .4byte 0x02023EB2 +_080449E4: .4byte 0x02024118 +_080449E8: .4byte 0x08289DD6 +_080449EC: + movs r0, #0x58 + muls r0, r7, r0 + mov r3, r8 + adds r5, r0, r3 + ldrh r4, [r5, #0x28] + ldrh r0, [r5, #0x2c] + mov r1, sb + bl __divsi3 + cmp r4, r0 + ble _08044A04 + b _08044E16 +_08044A04: + cmp r6, #0 + beq _08044A0A + b _08044E16 +_08044A0A: + movs r0, #0x1d + ldrsb r0, [r5, r0] + cmp r0, #0xb + ble _08044A14 + b _08044E16 +_08044A14: + ldr r1, _08044A40 + movs r0, #0xfd + strb r0, [r1] + movs r0, #5 + strb r0, [r1, #1] + strb r0, [r1, #2] + movs r0, #0xff + strb r0, [r1, #3] + ldr r0, _08044A44 + strb r7, [r0] + ldr r1, _08044A48 + movs r0, #0x15 + strb r0, [r1, #0x1a] + movs r0, #0x13 +_08044A30: + strb r0, [r1, #0x10] + strb r6, [r1, #0x11] + ldr r0, _08044A4C + bl BattleScriptExecute + movs r5, #5 + str r5, [sp, #0xc] + b _08044E1E + .align 2, 0 +_08044A40: .4byte 0x02022C0C +_08044A44: .4byte 0x02023EB2 +_08044A48: .4byte 0x02024118 +_08044A4C: .4byte 0x08289DD6 +_08044A50: + movs r0, #0x58 + adds r5, r7, #0 + muls r5, r0, r5 + mov r1, r8 + adds r0, r5, r1 + ldrh r4, [r0, #0x28] + ldrh r0, [r0, #0x2c] + mov r1, sb + bl __divsi3 + cmp r4, r0 + ble _08044A6A + b _08044E16 +_08044A6A: + cmp r6, #0 + beq _08044A70 + b _08044E16 +_08044A70: + mov r0, r8 + adds r0, #0x50 + adds r1, r5, r0 + ldr r2, [r1] + movs r3, #0x80 + lsls r3, r3, #0xd + adds r0, r2, #0 + ands r0, r3 + cmp r0, #0 + beq _08044A86 + b _08044E16 +_08044A86: + orrs r2, r3 + str r2, [r1] + ldr r0, _08044A98 + bl BattleScriptExecute + movs r2, #2 + str r2, [sp, #0xc] + b _08044E1E + .align 2, 0 +_08044A98: .4byte 0x08289DF1 +_08044A9C: + cmp r6, #0 + beq _08044AA2 + b _08044E16 +_08044AA2: + movs r0, #0x58 + adds r5, r7, #0 + muls r5, r0, r5 + mov r3, r8 + adds r0, r5, r3 + ldrh r4, [r0, #0x28] + ldrh r0, [r0, #0x2c] + mov r1, sb + bl __divsi3 + cmp r4, r0 + ble _08044ABC + b _08044E16 +_08044ABC: + movs r0, #0 + mov sl, r0 + adds r0, r5, #1 + mov r1, r8 + adds r1, #0x18 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0xb + ble _08044AEC + mov r0, r8 + adds r0, #0x19 + adds r1, r5, r0 +_08044AD8: + adds r1, #1 + movs r2, #1 + add sl, r2 + mov r3, sl + cmp r3, #4 + bgt _08044AEC + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0xb + bgt _08044AD8 +_08044AEC: + mov r5, sl + cmp r5, #5 + bne _08044AF4 + b _08044E16 +_08044AF4: + movs r0, #0x58 + muls r0, r7, r0 + adds r4, r0, #1 + ldr r5, _08044B6C +_08044AFC: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #5 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 + adds r0, r0, r4 + adds r0, r0, r5 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0xc + beq _08044AFC + ldr r1, _08044B70 + movs r2, #0 + movs r3, #0xfd + strb r3, [r1] + movs r0, #5 + strb r0, [r1, #1] + mov r0, sl + adds r0, #1 + strb r0, [r1, #2] + movs r0, #0xff + strb r0, [r1, #3] + ldr r0, _08044B74 + strb r3, [r0] + strb r2, [r0, #1] + movs r1, #0xd1 + strb r1, [r0, #2] + strb r2, [r0, #3] + strb r2, [r0, #4] + movs r1, #0xd2 + strb r1, [r0, #5] + strb r2, [r0, #6] + subs r1, #0xd3 + strb r1, [r0, #7] + ldr r0, _08044B78 + strb r7, [r0] + ldr r1, _08044B7C + mov r0, sl + adds r0, #0x21 + strb r0, [r1, #0x1a] + adds r0, #6 + strb r0, [r1, #0x10] + strb r2, [r1, #0x11] + ldr r0, _08044B80 + bl BattleScriptExecute + movs r0, #5 + str r0, [sp, #0xc] + b _08044E1E + .align 2, 0 +_08044B6C: .4byte 0x02023D40 +_08044B70: .4byte 0x02022C0C +_08044B74: .4byte 0x02022C1C +_08044B78: .4byte 0x02023EB2 +_08044B7C: .4byte 0x02024118 +_08044B80: .4byte 0x08289DD6 +_08044B84: + movs r0, #0x58 + adds r1, r7, #0 + muls r1, r0, r1 + mov r0, r8 + adds r0, #0x4c + adds r1, r1, r0 + ldr r2, [r1] + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + bne _08044B9C + b _08044E16 +_08044B9C: + movs r0, #0x41 + rsbs r0, r0, #0 + ands r2, r0 + str r2, [r1] + ldr r0, _08044BB0 + bl BattleScriptExecute + movs r1, #1 + str r1, [sp, #0xc] + b _08044E1E + .align 2, 0 +_08044BB0: .4byte 0x08289C8E +_08044BB4: + movs r0, #0x58 + adds r1, r7, #0 + muls r1, r0, r1 + mov r0, r8 + adds r0, #0x4c + adds r1, r1, r0 + ldr r2, [r1] + movs r0, #0x88 + ands r0, r2 + cmp r0, #0 + bne _08044BCC + b _08044E16 +_08044BCC: + ldr r0, _08044BE0 + ands r2, r0 + str r2, [r1] + ldr r0, _08044BE4 + bl BattleScriptExecute + movs r2, #1 + str r2, [sp, #0xc] + b _08044E1E + .align 2, 0 +_08044BE0: .4byte 0xFFFFF077 +_08044BE4: .4byte 0x08289CA6 +_08044BE8: + movs r0, #0x58 + adds r1, r7, #0 + muls r1, r0, r1 + mov r0, r8 + adds r0, #0x4c + adds r1, r1, r0 + ldr r2, [r1] + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + bne _08044C00 + b _08044E16 +_08044C00: + movs r0, #0x11 + rsbs r0, r0, #0 + ands r2, r0 + str r2, [r1] + ldr r0, _08044C14 + bl BattleScriptExecute + movs r3, #1 + str r3, [sp, #0xc] + b _08044E1E + .align 2, 0 +_08044C14: .4byte 0x08289CBE +_08044C18: + movs r0, #0x58 + adds r1, r7, #0 + muls r1, r0, r1 + mov r0, r8 + adds r0, #0x4c + adds r1, r1, r0 + ldr r2, [r1] + movs r0, #0x20 + ands r0, r2 + cmp r0, #0 + bne _08044C30 + b _08044E16 +_08044C30: + movs r0, #0x21 + rsbs r0, r0, #0 + ands r2, r0 + str r2, [r1] + ldr r0, _08044C44 + bl BattleScriptExecute + movs r5, #1 + str r5, [sp, #0xc] + b _08044E1E + .align 2, 0 +_08044C44: .4byte 0x08289CD6 +_08044C48: + movs r0, #0x58 + adds r3, r7, #0 + muls r3, r0, r3 + mov r0, r8 + adds r0, #0x4c + adds r2, r3, r0 + ldr r1, [r2] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _08044C60 + b _08044E16 +_08044C60: + movs r0, #8 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r2] + mov r1, r8 + adds r1, #0x50 + adds r1, r3, r1 + ldr r0, [r1] + ldr r2, _08044C7C + ands r0, r2 + str r0, [r1] + ldr r0, _08044C80 + b _08044DCA + .align 2, 0 +_08044C7C: .4byte 0xF7FFFFFF +_08044C80: .4byte 0x08289CEE +_08044C84: + movs r0, #0x58 + adds r1, r7, #0 + muls r1, r0, r1 + mov r0, r8 + adds r0, #0x50 + adds r1, r1, r0 + ldr r2, [r1] + movs r0, #7 + ands r0, r2 + cmp r0, #0 + bne _08044C9C + b _08044E16 +_08044C9C: + movs r0, #8 + rsbs r0, r0, #0 + ands r2, r0 + str r2, [r1] + ldr r0, _08044CB0 + bl BattleScriptExecute + movs r1, #2 + str r1, [sp, #0xc] + b _08044E1E + .align 2, 0 +_08044CB0: .4byte 0x08289D06 +_08044CB4: + movs r0, #0x58 + adds r5, r7, #0 + muls r5, r0, r5 + mov r0, r8 + adds r0, #0x4c + adds r4, r5, r0 + ldr r2, [r4] + ldrb r0, [r4] + cmp r0, #0 + bne _08044CDA + mov r0, r8 + adds r0, #0x50 + adds r0, r5, r0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _08044CDA + b _08044E16 +_08044CDA: + movs r3, #0 + mov sl, r3 + movs r0, #0x88 + ands r2, r0 + cmp r2, #0 + beq _08044CF2 + ldr r0, _08044D80 + ldr r1, _08044D84 + bl StringCopy + movs r0, #1 + mov sl, r0 +_08044CF2: + ldr r0, [r4] + movs r1, #7 + mov sb, r1 + ands r0, r1 + mov r6, r8 + adds r6, #0x50 + cmp r0, #0 + beq _08044D18 + adds r2, r5, r6 + ldr r0, [r2] + ldr r1, _08044D88 + ands r0, r1 + str r0, [r2] + ldr r0, _08044D80 + ldr r1, _08044D8C + bl StringCopy + movs r2, #1 + add sl, r2 +_08044D18: + ldr r0, [r4] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08044D2E + ldr r0, _08044D80 + ldr r1, _08044D90 + bl StringCopy + movs r3, #1 + add sl, r3 +_08044D2E: + ldr r0, [r4] + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08044D44 + ldr r0, _08044D80 + ldr r1, _08044D94 + bl StringCopy + movs r0, #1 + add sl, r0 +_08044D44: + ldr r0, [r4] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08044D5A + ldr r0, _08044D80 + ldr r1, _08044D98 + bl StringCopy + movs r1, #1 + add sl, r1 +_08044D5A: + adds r0, r5, r6 + ldr r0, [r0] + mov r2, sb + ands r0, r2 + cmp r0, #0 + beq _08044D72 + ldr r0, _08044D80 + ldr r1, _08044D9C + bl StringCopy + movs r3, #1 + add sl, r3 +_08044D72: + mov r5, sl + cmp r5, #1 + bgt _08044DA4 + ldr r1, _08044DA0 + movs r0, #0 + b _08044DA8 + .align 2, 0 +_08044D80: .4byte 0x02022C0C +_08044D84: .4byte 0x085ABC54 +_08044D88: .4byte 0xF7FFFFFF +_08044D8C: .4byte 0x085ABC50 +_08044D90: .4byte 0x085ABC5B +_08044D94: .4byte 0x085ABC57 +_08044D98: .4byte 0x085ABC5E +_08044D9C: .4byte 0x085ABC62 +_08044DA0: .4byte 0x02023FD6 +_08044DA4: + ldr r1, _08044DD4 + movs r0, #1 +_08044DA8: + strb r0, [r1, #5] + ldr r2, _08044DD8 + movs r0, #0x58 + adds r3, r7, #0 + muls r3, r0, r3 + adds r0, r2, #0 + adds r0, #0x4c + adds r0, r3, r0 + movs r1, #0 + str r1, [r0] + adds r2, #0x50 + adds r3, r3, r2 + ldr r0, [r3] + subs r1, #8 + ands r0, r1 + str r0, [r3] + ldr r0, _08044DDC +_08044DCA: + bl BattleScriptExecute + movs r0, #1 + str r0, [sp, #0xc] + b _08044E1E + .align 2, 0 +_08044DD4: .4byte 0x02023FD6 +_08044DD8: .4byte 0x02023D28 +_08044DDC: .4byte 0x08289D1C +_08044DE0: + movs r0, #0x58 + adds r1, r7, #0 + muls r1, r0, r1 + mov r0, r8 + adds r0, #0x50 + adds r1, r1, r0 + ldr r2, [r1] + movs r0, #0xf0 + lsls r0, r0, #0xc + ands r0, r2 + cmp r0, #0 + beq _08044E16 + ldr r0, _08044E3C + ands r2, r0 + str r2, [r1] + ldr r0, _08044E40 + ldr r1, _08044E44 + bl StringCopy + ldr r0, _08044E48 + bl BattleScriptExecute + ldr r1, _08044E4C + movs r0, #0 + strb r0, [r1, #5] + movs r1, #2 + str r1, [sp, #0xc] +_08044E16: + ldr r2, [sp, #0xc] + cmp r2, #0 + bne _08044E1E + b _0804546A +_08044E1E: + ldr r0, _08044E50 + strb r7, [r0, #0x17] + ldr r0, _08044E54 + strb r7, [r0] + ldr r4, _08044E58 + ldr r0, _08044E5C + strb r7, [r0] + strb r7, [r4] + ldr r3, [sp, #0xc] + cmp r3, #1 + beq _08044E60 + cmp r3, #3 + beq _08044E66 + b _0804546A + .align 2, 0 +_08044E3C: .4byte 0xFFF0FFFF +_08044E40: .4byte 0x02022C0C +_08044E44: .4byte 0x085ABC67 +_08044E48: .4byte 0x08289D1C +_08044E4C: .4byte 0x02023FD6 +_08044E50: .4byte 0x02024118 +_08044E54: .4byte 0x02023EB3 +_08044E58: .4byte 0x02023D08 +_08044E5C: .4byte 0x02023EAF +_08044E60: + movs r0, #0x58 + muls r0, r7, r0 + b _080452CC +_08044E66: + ldr r4, _08044EB4 + movs r0, #0x58 + adds r3, r7, #0 + muls r3, r0, r3 + adds r0, r4, #0 + adds r0, #0x50 + adds r0, r3, r0 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xe + ands r0, r1 + cmp r0, #0 + beq _08044E82 + b _0804546A +_08044E82: + ldr r1, _08044EB8 + lsls r0, r7, #3 + subs r0, r0, r7 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #0x18] + lsrs r1, r1, #4 + ldr r2, _08044EBC + mov r5, sl + lsls r0, r5, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _08044EA2 + b _0804546A +_08044EA2: + adds r1, r5, r3 + adds r0, r4, #0 + adds r0, #0x24 + adds r1, r1, r0 + add r0, sp, #4 + ldrb r0, [r0] + strb r0, [r1] + b _0804546A + .align 2, 0 +_08044EB4: .4byte 0x02023D28 +_08044EB8: .4byte 0x02023F60 +_08044EBC: .4byte 0x082FACB4 +_08044EC0: + movs r7, #0 + ldr r0, _08044EF0 + ldrb r0, [r0] + cmp r7, r0 + blo _08044ECC + b _0804546A +_08044ECC: + ldr r4, _08044EF4 + ldr r1, _08044EF8 + movs r0, #0x58 + muls r0, r7, r0 + adds r0, r0, r1 + ldrh r0, [r0, #0x2e] + strh r0, [r4] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xaf + bne _08044F00 + ldr r1, _08044EFC + lsls r0, r7, #3 + subs r0, r0, r7 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r5, [r0, #7] + b _08044F10 + .align 2, 0 +_08044EF0: .4byte 0x02023D10 +_08044EF4: .4byte 0x02023EAC +_08044EF8: .4byte 0x02023D28 +_08044EFC: .4byte 0x020240A8 +_08044F00: + ldrh r0, [r4] + bl sub_080D6CF8 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldrh r0, [r4] + bl sub_080D6D1C +_08044F10: + subs r0, r5, #2 + cmp r0, #0x1a + bls _08044F18 + b _080452B4 +_08044F18: + lsls r0, r0, #2 + ldr r1, _08044F24 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08044F24: .4byte 0x08044F28 +_08044F28: @ jump table + .4byte _08044F94 @ case 0 + .4byte _08045084 @ case 1 + .4byte _08044FD0 @ case 2 + .4byte _0804500C @ case 3 + .4byte _08045048 @ case 4 + .4byte _080452B4 @ case 5 + .4byte _080450CC @ case 6 + .4byte _08045160 @ case 7 + .4byte _080452B4 @ case 8 + .4byte _080452B4 @ case 9 + .4byte _080452B4 @ case 10 + .4byte _080452B4 @ case 11 + .4byte _080452B4 @ case 12 + .4byte _080452B4 @ case 13 + .4byte _080452B4 @ case 14 + .4byte _080452B4 @ case 15 + .4byte _080452B4 @ case 16 + .4byte _080452B4 @ case 17 + .4byte _080452B4 @ case 18 + .4byte _080452B4 @ case 19 + .4byte _080452B4 @ case 20 + .4byte _08045254 @ case 21 + .4byte _080452B4 @ case 22 + .4byte _080452B4 @ case 23 + .4byte _080452B4 @ case 24 + .4byte _080452B4 @ case 25 + .4byte _08045108 @ case 26 +_08044F94: + ldr r1, _08044FC4 + movs r0, #0x58 + muls r0, r7, r0 + adds r1, #0x4c + adds r2, r0, r1 + ldr r1, [r2] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08044FAA + b _080452B4 +_08044FAA: + movs r0, #0x41 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r2] + bl BattleScriptPushCursor + ldr r1, _08044FC8 + ldr r0, _08044FCC + str r0, [r1] + movs r0, #1 + str r0, [sp, #0xc] + b _080452BA + .align 2, 0 +_08044FC4: .4byte 0x02023D28 +_08044FC8: .4byte 0x02023EB8 +_08044FCC: .4byte 0x08289C94 +_08044FD0: + ldr r1, _08044FFC + movs r0, #0x58 + muls r0, r7, r0 + adds r1, #0x4c + adds r2, r0, r1 + ldr r1, [r2] + movs r0, #0x88 + ands r0, r1 + cmp r0, #0 + bne _08044FE6 + b _080452B4 +_08044FE6: + ldr r0, _08045000 + ands r1, r0 + str r1, [r2] + bl BattleScriptPushCursor + ldr r1, _08045004 + ldr r0, _08045008 + str r0, [r1] + movs r1, #1 + str r1, [sp, #0xc] + b _080452BA + .align 2, 0 +_08044FFC: .4byte 0x02023D28 +_08045000: .4byte 0xFFFFF077 +_08045004: .4byte 0x02023EB8 +_08045008: .4byte 0x08289CAC +_0804500C: + ldr r1, _0804503C + movs r0, #0x58 + muls r0, r7, r0 + adds r1, #0x4c + adds r2, r0, r1 + ldr r1, [r2] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _08045022 + b _080452B4 +_08045022: + movs r0, #0x11 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r2] + bl BattleScriptPushCursor + ldr r1, _08045040 + ldr r0, _08045044 + str r0, [r1] + movs r2, #1 + str r2, [sp, #0xc] + b _080452BA + .align 2, 0 +_0804503C: .4byte 0x02023D28 +_08045040: .4byte 0x02023EB8 +_08045044: .4byte 0x08289CC4 +_08045048: + ldr r1, _08045078 + movs r0, #0x58 + muls r0, r7, r0 + adds r1, #0x4c + adds r2, r0, r1 + ldr r1, [r2] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _0804505E + b _080452B4 +_0804505E: + movs r0, #0x21 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r2] + bl BattleScriptPushCursor + ldr r1, _0804507C + ldr r0, _08045080 + str r0, [r1] + movs r3, #1 + str r3, [sp, #0xc] + b _080452BA + .align 2, 0 +_08045078: .4byte 0x02023D28 +_0804507C: .4byte 0x02023EB8 +_08045080: .4byte 0x08289CDC +_08045084: + ldr r2, _080450BC + movs r0, #0x58 + adds r4, r7, #0 + muls r4, r0, r4 + adds r0, r2, #0 + adds r0, #0x4c + adds r3, r4, r0 + ldr r1, [r3] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _0804509E + b _080452B4 +_0804509E: + movs r0, #8 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r3] + adds r2, #0x50 + adds r2, r4, r2 + ldr r0, [r2] + ldr r1, _080450C0 + ands r0, r1 + str r0, [r2] + bl BattleScriptPushCursor + ldr r1, _080450C4 + ldr r0, _080450C8 + b _0804521C + .align 2, 0 +_080450BC: .4byte 0x02023D28 +_080450C0: .4byte 0xF7FFFFFF +_080450C4: .4byte 0x02023EB8 +_080450C8: .4byte 0x08289CF4 +_080450CC: + ldr r1, _080450FC + movs r0, #0x58 + muls r0, r7, r0 + adds r1, #0x50 + adds r2, r0, r1 + ldr r1, [r2] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _080450E2 + b _080452B4 +_080450E2: + movs r0, #8 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r2] + bl BattleScriptPushCursor + ldr r1, _08045100 + ldr r0, _08045104 + str r0, [r1] + movs r0, #2 + str r0, [sp, #0xc] + b _080452BA + .align 2, 0 +_080450FC: .4byte 0x02023D28 +_08045100: .4byte 0x02023EB8 +_08045104: .4byte 0x08289D0C +_08045108: + ldr r1, _08045144 + movs r0, #0x58 + muls r0, r7, r0 + adds r1, #0x50 + adds r2, r0, r1 + ldr r1, [r2] + movs r0, #0xf0 + lsls r0, r0, #0xc + ands r0, r1 + cmp r0, #0 + bne _08045120 + b _080452B4 +_08045120: + ldr r0, _08045148 + ands r1, r0 + str r1, [r2] + ldr r0, _0804514C + ldr r1, _08045150 + bl StringCopy + bl BattleScriptPushCursor + ldr r1, _08045154 + movs r0, #0 + strb r0, [r1, #5] + ldr r1, _08045158 + ldr r0, _0804515C + str r0, [r1] + movs r1, #2 + str r1, [sp, #0xc] + b _080452BA + .align 2, 0 +_08045144: .4byte 0x02023D28 +_08045148: .4byte 0xFFF0FFFF +_0804514C: .4byte 0x02022C0C +_08045150: .4byte 0x085ABC67 +_08045154: .4byte 0x02023FD6 +_08045158: .4byte 0x02023EB8 +_0804515C: .4byte 0x08289D22 +_08045160: + ldr r4, _08045224 + movs r0, #0x58 + adds r5, r7, #0 + muls r5, r0, r5 + adds r0, r4, #0 + adds r0, #0x4c + adds r6, r5, r0 + ldr r2, [r6] + ldrb r0, [r6] + cmp r0, #0 + bne _08045188 + adds r0, r4, #0 + adds r0, #0x50 + adds r0, r5, r0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _08045188 + b _080452B4 +_08045188: + movs r0, #0x88 + ands r2, r0 + cmp r2, #0 + beq _08045198 + ldr r0, _08045228 + ldr r1, _0804522C + bl StringCopy +_08045198: + ldr r0, [r6] + movs r2, #7 + mov r8, r2 + ands r0, r2 + adds r4, #0x50 + cmp r0, #0 + beq _080451B8 + adds r2, r5, r4 + ldr r0, [r2] + ldr r1, _08045230 + ands r0, r1 + str r0, [r2] + ldr r0, _08045228 + ldr r1, _08045234 + bl StringCopy +_080451B8: + ldr r0, [r6] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080451CA + ldr r0, _08045228 + ldr r1, _08045238 + bl StringCopy +_080451CA: + ldr r0, [r6] + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080451DC + ldr r0, _08045228 + ldr r1, _0804523C + bl StringCopy +_080451DC: + ldr r0, [r6] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080451EE + ldr r0, _08045228 + ldr r1, _08045240 + bl StringCopy +_080451EE: + adds r5, r5, r4 + ldr r0, [r5] + mov r3, r8 + ands r0, r3 + cmp r0, #0 + beq _08045202 + ldr r0, _08045228 + ldr r1, _08045244 + bl StringCopy +_08045202: + movs r4, #0 + str r4, [r6] + ldr r0, [r5] + movs r1, #8 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r5] + bl BattleScriptPushCursor + ldr r0, _08045248 + strb r4, [r0, #5] + ldr r1, _0804524C + ldr r0, _08045250 +_0804521C: + str r0, [r1] + movs r5, #1 + str r5, [sp, #0xc] + b _080452BA + .align 2, 0 +_08045224: .4byte 0x02023D28 +_08045228: .4byte 0x02022C0C +_0804522C: .4byte 0x085ABC54 +_08045230: .4byte 0xF7FFFFFF +_08045234: .4byte 0x085ABC50 +_08045238: .4byte 0x085ABC5B +_0804523C: .4byte 0x085ABC57 +_08045240: .4byte 0x085ABC5E +_08045244: .4byte 0x085ABC62 +_08045248: .4byte 0x02023FD6 +_0804524C: .4byte 0x02023EB8 +_08045250: .4byte 0x08289D22 +_08045254: + ldr r0, _080452A0 + mov r8, r0 + movs r0, #0x58 + adds r1, r7, #0 + muls r1, r0, r1 + mov r0, r8 + adds r0, #0x18 + adds r1, r1, r0 + movs r2, #6 + movs r3, #7 + mov sl, r3 +_0804526A: + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #5 + bgt _08045278 + strb r2, [r1] + movs r5, #5 + str r5, [sp, #0xc] +_08045278: + adds r1, #1 + movs r0, #1 + rsbs r0, r0, #0 + add sl, r0 + mov r3, sl + cmp r3, #0 + bge _0804526A + ldr r5, [sp, #0xc] + cmp r5, #0 + beq _080452F8 + ldr r0, _080452A4 + strb r7, [r0, #0x17] + ldr r0, _080452A8 + strb r7, [r0] + bl BattleScriptPushCursor + ldr r1, _080452AC + ldr r0, _080452B0 + str r0, [r1] + b _0804546A + .align 2, 0 +_080452A0: .4byte 0x02023D28 +_080452A4: .4byte 0x02024118 +_080452A8: .4byte 0x02023EB3 +_080452AC: .4byte 0x02023EB8 +_080452B0: .4byte 0x08289D3C +_080452B4: + ldr r0, [sp, #0xc] + cmp r0, #0 + beq _080452F8 +_080452BA: + ldr r0, _080452E8 + strb r7, [r0, #0x17] + ldr r0, _080452EC + strb r7, [r0] + ldr r4, _080452F0 + strb r7, [r4] + ldrb r1, [r4] + movs r0, #0x58 + muls r0, r1, r0 +_080452CC: + ldr r1, _080452F4 + adds r0, r0, r1 + str r0, [sp] + movs r0, #0 + movs r1, #0x28 + movs r2, #0 + movs r3, #4 + bl BtlController_EmitSetMonData + ldrb r0, [r4] + bl MarkBattlerForControllerExec + b _0804546A + .align 2, 0 +_080452E8: .4byte 0x02024118 +_080452EC: .4byte 0x02023EB3 +_080452F0: .4byte 0x02023D08 +_080452F4: .4byte 0x02023D74 +_080452F8: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _0804530C + ldrb r0, [r0] + cmp r7, r0 + bhs _08045308 + b _08044ECC +_08045308: + b _0804546A + .align 2, 0 +_0804530C: .4byte 0x02023D10 +_08045310: + ldr r7, _08045328 + ldr r0, [r7] + cmp r0, #0 + bne _0804531A + b _0804546A +_0804531A: + mov r1, r8 + cmp r1, #0x1e + beq _0804532C + cmp r1, #0x3e + beq _080453D4 + b _0804546A + .align 2, 0 +_08045328: .4byte 0x02023E94 +_0804532C: + ldr r0, _080453B8 + ldrb r1, [r0] + movs r0, #0x29 + ands r0, r1 + cmp r0, #0 + beq _0804533A + b _0804546A +_0804533A: + ldr r2, _080453BC + ldr r4, _080453C0 + ldrb r1, [r4] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r1, r0, #2 + adds r0, r2, #0 + adds r0, #8 + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, #0 + bne _08045360 + adds r0, r2, #0 + adds r0, #0xc + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, #0 + bne _08045360 + b _0804546A +_08045360: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r2, [sp, #0x10] + cmp r0, r2 + bhs _0804546A + ldr r2, _080453C4 + ldr r0, _080453C8 + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #8] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0804546A + ldr r2, _080453CC + ldrb r1, [r4] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + ldrh r0, [r0, #0x28] + cmp r0, #0 + beq _0804546A + ldr r1, _080453D0 + movs r0, #8 + strb r0, [r1, #3] + bl BattleScriptPushCursor + movs r0, #0 + movs r1, #0 + bl SetMoveEffect + bl HandleAction_RunBattleScript + b _0804546A + .align 2, 0 +_080453B8: .4byte 0x02023F20 +_080453BC: .4byte 0x02024020 +_080453C0: .4byte 0x02023EB0 +_080453C4: .4byte 0x082ED220 +_080453C8: .4byte 0x02023E8E +_080453CC: .4byte 0x02023D28 +_080453D0: .4byte 0x02023FD6 +_080453D4: + ldr r0, _0804547C + ldrb r0, [r0] + movs r5, #0x29 + ands r5, r0 + cmp r5, #0 + bne _0804546A + ldr r1, _08045480 + ldr r4, _08045484 + ldrb r2, [r4] + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r6, r1, #4 + adds r0, r0, r6 + ldr r1, [r0] + cmp r1, #0 + beq _0804546A + ldr r0, _08045488 + cmp r1, r0 + beq _0804546A + ldr r0, _0804548C + ldrb r3, [r0] + cmp r3, r2 + beq _0804546A + ldr r2, _08045490 + ldrb r1, [r0] + movs r0, #0x58 + muls r0, r1, r0 + adds r0, r0, r2 + ldrh r1, [r0, #0x28] + ldrh r0, [r0, #0x2c] + cmp r1, r0 + beq _0804546A + cmp r1, #0 + beq _0804546A + ldr r0, _08045494 + mov r1, sp + ldrh r1, [r1, #0x14] + strh r1, [r0] + ldr r0, _08045498 + strb r3, [r0] + ldr r0, _0804549C + strb r3, [r0, #0x17] + ldrb r1, [r4] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r0, [r0] + ldr r1, [sp, #0x10] + bl __divsi3 + rsbs r0, r0, #0 + str r0, [r7] + ldrb r1, [r4] + cmp r0, #0 + bne _0804544C + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r7] +_0804544C: + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + str r5, [r0] + bl BattleScriptPushCursor + ldr r1, _080454A0 + ldr r0, _080454A4 + str r0, [r1] + ldr r0, [sp, #0xc] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0xc] +_0804546A: + ldr r0, [sp, #0xc] + add sp, #0x2c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0804547C: .4byte 0x02023F20 +_08045480: .4byte 0x02024020 +_08045484: .4byte 0x02023EB0 +_08045488: .4byte 0x0000FFFF +_0804548C: .4byte 0x02023EAF +_08045490: .4byte 0x02023D28 +_08045494: .4byte 0x02023EAC +_08045498: .4byte 0x02023EB3 +_0804549C: .4byte 0x02024118 +_080454A0: .4byte 0x02023EB8 +_080454A4: .4byte 0x08289D7F + thumb_func_end ItemBattleEffects + + thumb_func_start ClearFuryCutterDestinyBondGrudge +ClearFuryCutterDestinyBondGrudge: @ 0x080454A8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080454E0 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r2, #0 + strb r2, [r1, #0x10] + ldr r1, _080454E4 + movs r2, #0x58 + adds r3, r0, #0 + muls r3, r2, r3 + adds r1, #0x50 + adds r3, r3, r1 + ldr r1, [r3] + ldr r2, _080454E8 + ands r1, r2 + str r1, [r3] + ldr r1, _080454EC + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + ldr r2, _080454F0 + ands r1, r2 + str r1, [r0] + bx lr + .align 2, 0 +_080454E0: .4byte 0x02023F60 +_080454E4: .4byte 0x02023D28 +_080454E8: .4byte 0xFDFFFFFF +_080454EC: .4byte 0x02023F50 +_080454F0: .4byte 0xFFFFBFFF + thumb_func_end ClearFuryCutterDestinyBondGrudge + + thumb_func_start sub_080454F4 +sub_080454F4: @ 0x080454F4 + push {lr} + ldr r0, _08045514 + ldr r0, [r0] + cmp r0, #0 + bne _08045510 + ldr r1, _08045518 + ldr r0, _0804551C + ldr r0, [r0] + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 +_08045510: + pop {r0} + bx r0 + .align 2, 0 +_08045514: .4byte 0x02023D0C +_08045518: .4byte 0x082EC694 +_0804551C: .4byte 0x02023EB8 + thumb_func_end sub_080454F4 + + thumb_func_start GetMoveTarget +GetMoveTarget: @ 0x08045520 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r0, r1, #0x18 + movs r5, #0 + cmp r0, #0 + beq _0804553E + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + b _0804554A +_0804553E: + ldr r1, _0804555C + lsls r0, r7, #1 + adds r0, r0, r7 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r6, [r0, #6] +_0804554A: + cmp r6, #0x40 + bls _08045550 + b _08045860 +_08045550: + lsls r0, r6, #2 + ldr r1, _08045560 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804555C: .4byte 0x082ED220 +_08045560: .4byte 0x08045564 +_08045564: @ jump table + .4byte _08045668 @ case 0 + .4byte _08045768 @ case 1 + .4byte _0804585C @ case 2 + .4byte _08045860 @ case 3 + .4byte _08045780 @ case 4 + .4byte _08045860 @ case 5 + .4byte _08045860 @ case 6 + .4byte _08045860 @ case 7 + .4byte _08045768 @ case 8 + .4byte _08045860 @ case 9 + .4byte _08045860 @ case 10 + .4byte _08045860 @ case 11 + .4byte _08045860 @ case 12 + .4byte _08045860 @ case 13 + .4byte _08045860 @ case 14 + .4byte _08045860 @ case 15 + .4byte _0804585C @ case 16 + .4byte _08045860 @ case 17 + .4byte _08045860 @ case 18 + .4byte _08045860 @ case 19 + .4byte _08045860 @ case 20 + .4byte _08045860 @ case 21 + .4byte _08045860 @ case 22 + .4byte _08045860 @ case 23 + .4byte _08045860 @ case 24 + .4byte _08045860 @ case 25 + .4byte _08045860 @ case 26 + .4byte _08045860 @ case 27 + .4byte _08045860 @ case 28 + .4byte _08045860 @ case 29 + .4byte _08045860 @ case 30 + .4byte _08045860 @ case 31 + .4byte _08045768 @ case 32 + .4byte _08045860 @ case 33 + .4byte _08045860 @ case 34 + .4byte _08045860 @ case 35 + .4byte _08045860 @ case 36 + .4byte _08045860 @ case 37 + .4byte _08045860 @ case 38 + .4byte _08045860 @ case 39 + .4byte _08045860 @ case 40 + .4byte _08045860 @ case 41 + .4byte _08045860 @ case 42 + .4byte _08045860 @ case 43 + .4byte _08045860 @ case 44 + .4byte _08045860 @ case 45 + .4byte _08045860 @ case 46 + .4byte _08045860 @ case 47 + .4byte _08045860 @ case 48 + .4byte _08045860 @ case 49 + .4byte _08045860 @ case 50 + .4byte _08045860 @ case 51 + .4byte _08045860 @ case 52 + .4byte _08045860 @ case 53 + .4byte _08045860 @ case 54 + .4byte _08045860 @ case 55 + .4byte _08045860 @ case 56 + .4byte _08045860 @ case 57 + .4byte _08045860 @ case 58 + .4byte _08045860 @ case 59 + .4byte _08045860 @ case 60 + .4byte _08045860 @ case 61 + .4byte _08045860 @ case 62 + .4byte _08045860 @ case 63 + .4byte _08045768 @ case 64 +_08045668: + ldr r0, _08045748 + ldrb r0, [r0] + bl GetBattlerSide + movs r1, #1 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _0804574C + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r2, r0, r1 + ldrb r0, [r2, #8] + cmp r0, #0 + beq _0804569A + ldr r1, _08045750 + ldrb r4, [r2, #9] + movs r0, #0x58 + muls r0, r4, r0 + adds r0, r0, r1 + ldrh r0, [r0, #0x28] + cmp r0, #0 + beq _0804569A + b _080457B0 +_0804569A: + ldr r0, _08045748 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r7, #1 + mov r8, r0 +_080456AA: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _08045754 + ldrb r1, [r1] + bl __modsi3 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r6, _08045748 + ldrb r3, [r6] + cmp r5, r3 + beq _080456AA + adds r0, r5, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + beq _080456AA + ldr r0, _08045758 + ldrb r2, [r0] + ldr r1, _0804575C + lsls r0, r5, #2 + adds r0, r0, r1 + ldr r0, [r0] + ands r2, r0 + cmp r2, #0 + bne _080456AA + ldr r0, _08045760 + mov r3, r8 + adds r1, r3, r7 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #2] + cmp r0, #0xd + beq _080456F8 + b _08045860 +_080456F8: + ldrb r1, [r6] + str r2, [sp] + movs r0, #0x10 + movs r2, #0x1f + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804570E + b _08045860 +_0804570E: + ldr r2, _08045750 + movs r1, #0x58 + adds r0, r5, #0 + muls r0, r1, r0 + adds r0, r0, r2 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x1f + bne _08045722 + b _08045860 +_08045722: + movs r4, #2 + eors r5, r4 + adds r0, r5, #0 + muls r0, r1, r0 + adds r0, r0, r2 + adds r0, #0x20 + ldrb r1, [r0] + adds r0, r5, #0 + bl RecordAbilityBattle + ldr r1, _08045764 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + orrs r1, r4 + strb r1, [r0] + b _08045860 + .align 2, 0 +_08045748: .4byte 0x02023EAF +_0804574C: .4byte 0x02023F38 +_08045750: .4byte 0x02023D28 +_08045754: .4byte 0x02023D10 +_08045758: .4byte 0x02023EB4 +_0804575C: .4byte 0x082FACB4 +_08045760: .4byte 0x082ED220 +_08045764: .4byte 0x02024020 +_08045768: + ldr r0, _0804577C + ldrb r0, [r0] + bl GetBattlerPosition + adds r1, r0, #0 + movs r2, #1 + movs r0, #1 + ands r0, r1 + eors r0, r2 + b _08045812 + .align 2, 0 +_0804577C: .4byte 0x02023EAF +_08045780: + ldr r0, _080457B4 + ldrb r0, [r0] + bl GetBattlerSide + movs r1, #1 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _080457B8 + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r2, r0, r1 + ldrb r0, [r2, #8] + cmp r0, #0 + beq _080457C0 + ldr r1, _080457BC + ldrb r4, [r2, #9] + movs r0, #0x58 + muls r0, r4, r0 + adds r0, r0, r1 + ldrh r0, [r0, #0x28] + cmp r0, #0 + beq _080457C0 +_080457B0: + adds r5, r4, #0 + b _08045860 + .align 2, 0 +_080457B4: .4byte 0x02023EAF +_080457B8: .4byte 0x02023F38 +_080457BC: .4byte 0x02023D28 +_080457C0: + ldr r0, _080457F4 + ldr r0, [r0] + movs r4, #1 + ands r0, r4 + cmp r0, #0 + beq _0804583C + movs r0, #4 + ands r6, r0 + cmp r6, #0 + beq _0804583C + ldr r0, _080457F8 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08045800 + bl Random + adds r1, r4, #0 + ands r1, r0 + cmp r1, #0 + beq _080457FC + movs r0, #1 + b _08045812 + .align 2, 0 +_080457F4: .4byte 0x02022C90 +_080457F8: .4byte 0x02023EAF +_080457FC: + movs r0, #3 + b _08045812 +_08045800: + bl Random + adds r1, r4, #0 + ands r1, r0 + cmp r1, #0 + beq _08045810 + movs r0, #0 + b _08045812 +_08045810: + movs r0, #2 +_08045812: + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _08045834 + ldrb r1, [r0] + ldr r2, _08045838 + lsls r0, r5, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _08045860 + movs r0, #2 + eors r5, r0 + b _08045860 + .align 2, 0 +_08045834: .4byte 0x02023EB4 +_08045838: .4byte 0x082FACB4 +_0804583C: + ldr r0, _08045858 + ldrb r0, [r0] + bl GetBattlerPosition + adds r1, r0, #0 + movs r2, #1 + movs r0, #1 + ands r0, r1 + eors r0, r2 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + b _08045860 + .align 2, 0 +_08045858: .4byte 0x02023EAF +_0804585C: + ldr r0, _0804587C + ldrb r5, [r0] +_08045860: + ldr r0, _0804587C + ldrb r0, [r0] + ldr r1, _08045880 + ldr r1, [r1] + adds r0, r0, r1 + strb r5, [r0, #0xc] + adds r0, r5, #0 + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0804587C: .4byte 0x02023EAF +_08045880: .4byte 0x02024140 + thumb_func_end GetMoveTarget + + thumb_func_start HasObedientBitSet +HasObedientBitSet: @ 0x08045884 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080458CA + ldr r0, _080458D0 + lsls r4, r4, #1 + adds r5, r4, r0 + ldrh r0, [r5] + movs r7, #0x64 + muls r0, r7, r0 + ldr r6, _080458D4 + adds r0, r0, r6 + movs r1, #0xb + movs r2, #0 + bl GetMonData + movs r1, #0xcd + lsls r1, r1, #1 + cmp r0, r1 + beq _080458D8 + ldrh r0, [r5] + muls r0, r7, r0 + adds r0, r0, r6 + movs r1, #0xb + movs r2, #0 + bl GetMonData + cmp r0, #0x97 + beq _080458D8 +_080458CA: + movs r0, #1 + b _080458EE + .align 2, 0 +_080458D0: .4byte 0x02023D12 +_080458D4: .4byte 0x02024190 +_080458D8: + ldr r0, _080458F4 + adds r0, r4, r0 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080458F8 + adds r0, r0, r1 + movs r1, #0x50 + movs r2, #0 + bl GetMonData +_080458EE: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080458F4: .4byte 0x02023D12 +_080458F8: .4byte 0x02024190 + thumb_func_end HasObedientBitSet + + thumb_func_start IsMonDisobedient +IsMonDisobedient: @ 0x080458FC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x10 + movs r6, #0 + ldr r5, _080459F0 + ldr r0, [r5] + ldr r1, _080459F4 + ands r0, r1 + cmp r0, #0 + bne _080459EC + ldr r4, _080459F8 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080459EC + ldrb r0, [r4] + bl HasObedientBitSet + cmp r0, #0 + beq _080459B6 + ldr r0, [r5] + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + beq _08045948 + ldrb r0, [r4] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + beq _080459EC +_08045948: + ldr r0, _080459F0 + ldr r1, [r0] + ldr r0, _080459FC + ands r0, r1 + cmp r0, #0 + bne _080459EC + movs r0, #0x80 + lsls r0, r0, #0x11 + ands r1, r0 + cmp r1, #0 + bne _080459EC + ldr r2, _08045A00 + ldr r0, _080459F8 + ldrb r1, [r0] + movs r0, #0x58 + muls r1, r0, r1 + adds r0, r2, #0 + adds r0, #0x54 + adds r0, r1, r0 + ldr r0, [r0] + adds r2, #0x3c + adds r1, r1, r2 + bl IsOtherTrainer + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080459EC + ldr r0, _08045A04 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080459EC + movs r6, #0xa + ldr r0, _08045A08 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0804599A + movs r6, #0x1e +_0804599A: + ldr r0, _08045A0C + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080459A8 + movs r6, #0x32 +_080459A8: + ldr r0, _08045A10 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080459B6 + movs r6, #0x46 +_080459B6: + ldr r5, _08045A00 + ldr r0, _080459F8 + mov r8, r0 + ldrb r0, [r0] + movs r7, #0x58 + muls r0, r7, r0 + adds r0, r0, r5 + adds r0, #0x2a + ldrb r0, [r0] + cmp r0, r6 + bls _080459EC + bl Random + movs r1, #0xff + ands r1, r0 + mov r2, r8 + ldrb r0, [r2] + adds r2, r0, #0 + muls r2, r7, r2 + adds r0, r2, r5 + adds r0, #0x2a + ldrb r0, [r0] + adds r0, r0, r6 + muls r0, r1, r0 + asrs r4, r0, #8 + cmp r4, r6 + bge _08045A14 +_080459EC: + movs r0, #0 + b _08045C10 + .align 2, 0 +_080459F0: .4byte 0x02022C90 +_080459F4: .4byte 0x02000002 +_080459F8: .4byte 0x02023EAF +_080459FC: .4byte 0x003F0100 +_08045A00: .4byte 0x02023D28 +_08045A04: .4byte 0x0000086E +_08045A08: .4byte 0x00000868 +_08045A0C: .4byte 0x0000086A +_08045A10: .4byte 0x0000086C +_08045A14: + ldr r3, _08045A50 + ldrh r0, [r3] + cmp r0, #0x63 + bne _08045A2A + adds r0, r5, #0 + adds r0, #0x50 + adds r0, r2, r0 + ldr r1, [r0] + ldr r2, _08045A54 + ands r1, r2 + str r1, [r0] +_08045A2A: + mov r1, r8 + ldrb r0, [r1] + muls r0, r7, r0 + adds r1, r5, #0 + adds r1, #0x4c + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + beq _08045A60 + ldrh r0, [r3] + cmp r0, #0xad + beq _08045A4A + cmp r0, #0xd6 + bne _08045A60 +_08045A4A: + ldr r1, _08045A58 + ldr r0, _08045A5C + b _08045BBA + .align 2, 0 +_08045A50: .4byte 0x02023E8E +_08045A54: .4byte 0xFF7FFFFF +_08045A58: .4byte 0x02023EB8 +_08045A5C: .4byte 0x08289C1D +_08045A60: + bl Random + movs r5, #0xff + adds r1, r5, #0 + ands r1, r0 + ldr r7, _08045B00 + ldr r2, _08045B04 + mov sb, r2 + ldrb r3, [r2] + movs r0, #0x58 + mov r8, r0 + mov r0, r8 + muls r0, r3, r0 + adds r0, r0, r7 + adds r0, #0x2a + ldrb r2, [r0] + adds r0, r2, r6 + muls r0, r1, r0 + asrs r4, r0, #8 + cmp r4, r6 + bge _08045B28 + ldr r6, _08045B08 + ldr r5, _08045B0C + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r1, [r0] + adds r0, r3, #0 + movs r2, #0xff + bl CheckMoveLimitations + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xf + bne _08045AA8 + b _08045BAA +_08045AA8: + ldr r1, _08045B10 + mov r8, r1 + movs r7, #3 +_08045AAE: + bl Random + ands r0, r7 + mov r2, r8 + strb r0, [r2] + strb r0, [r5] + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r0, [r0] + ands r0, r4 + cmp r0, #0 + bne _08045AAE + ldr r4, _08045B14 + ldr r3, _08045B00 + ldr r0, _08045B0C + ldrb r0, [r0] + lsls r0, r0, #1 + ldr r1, _08045B04 + ldrb r2, [r1] + movs r1, #0x58 + muls r1, r2, r1 + adds r0, r0, r1 + adds r3, #0xc + adds r0, r0, r3 + ldrh r0, [r0] + strh r0, [r4] + ldr r1, _08045B18 + ldr r0, _08045B1C + str r0, [r1] + ldrh r0, [r4] + movs r1, #0 + bl GetMoveTarget + ldr r1, _08045B20 + strb r0, [r1] + ldr r2, _08045B24 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0xe + b _08045C0A + .align 2, 0 +_08045B00: .4byte 0x02023D28 +_08045B04: .4byte 0x02023EAF +_08045B08: .4byte 0x082FACB4 +_08045B0C: .4byte 0x02023E8C +_08045B10: .4byte 0x02023E8D +_08045B14: .4byte 0x02023E92 +_08045B18: .4byte 0x02023EB8 +_08045B1C: .4byte 0x08289C2D +_08045B20: .4byte 0x02023EB0 +_08045B24: .4byte 0x02023F24 +_08045B28: + subs r0, r2, r6 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + bl Random + adds r4, r5, #0 + ands r4, r0 + cmp r4, r6 + bge _08045BA4 + mov r1, sb + ldrb r0, [r1] + mov r1, r8 + muls r1, r0, r1 + adds r0, r7, #0 + adds r0, #0x4c + adds r0, r1, r0 + ldr r0, [r0] + ands r0, r5 + cmp r0, #0 + bne _08045BA4 + adds r0, r1, r7 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0x48 + beq _08045BA4 + cmp r0, #0xf + beq _08045BA4 + movs r2, #0 + ldr r0, _08045B98 + ldrb r3, [r0] + mov r8, r0 + cmp r2, r3 + bge _08045B8A + ldr r0, [r7, #0x50] + movs r1, #0x70 + ands r0, r1 + cmp r0, #0 + bne _08045B8A + adds r1, r7, #0 + adds r1, #0x50 + movs r5, #0x70 +_08045B7A: + adds r1, #0x58 + adds r2, #1 + cmp r2, r3 + bge _08045B8A + ldr r0, [r1] + ands r0, r5 + cmp r0, #0 + beq _08045B7A +_08045B8A: + mov r0, r8 + ldrb r0, [r0] + cmp r2, r0 + bne _08045BA4 + ldr r1, _08045B9C + ldr r0, _08045BA0 + b _08045BBA + .align 2, 0 +_08045B98: .4byte 0x02023D10 +_08045B9C: .4byte 0x02023EB8 +_08045BA0: .4byte 0x08289C61 +_08045BA4: + subs r4, r4, r6 + cmp r4, r6 + blt _08045BCC +_08045BAA: + bl Random + ldr r2, _08045BC0 + movs r1, #3 + ands r1, r0 + strb r1, [r2, #5] + ldr r1, _08045BC4 + ldr r0, _08045BC8 +_08045BBA: + str r0, [r1] + movs r0, #1 + b _08045C10 + .align 2, 0 +_08045BC0: .4byte 0x02023FD6 +_08045BC4: .4byte 0x02023EB8 +_08045BC8: .4byte 0x08289C35 +_08045BCC: + ldr r4, _08045C20 + ldrb r1, [r4] + movs r0, #0x58 + muls r1, r0, r1 + ldr r0, _08045C24 + adds r1, r1, r0 + movs r0, #0x28 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + ldrb r0, [r4] + str r0, [sp, #8] + ldrb r0, [r4] + str r0, [sp, #0xc] + adds r0, r1, #0 + movs r2, #1 + movs r3, #0 + bl CalculateBaseDamage + ldr r1, _08045C28 + str r0, [r1] + ldr r1, _08045C2C + ldrb r0, [r4] + strb r0, [r1] + ldr r1, _08045C30 + ldr r0, _08045C34 + str r0, [r1] + ldr r2, _08045C38 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0xc +_08045C0A: + orrs r0, r1 + str r0, [r2] + movs r0, #2 +_08045C10: + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08045C20: .4byte 0x02023EAF +_08045C24: .4byte 0x02023D28 +_08045C28: .4byte 0x02023E94 +_08045C2C: .4byte 0x02023EB0 +_08045C30: .4byte 0x02023EB8 +_08045C34: .4byte 0x08289C78 +_08045C38: .4byte 0x02023F24 + thumb_func_end IsMonDisobedient + diff --git a/asm/battle_util2.s b/asm/battle_util2.s new file mode 100644 index 0000000..e02a666 --- /dev/null +++ b/asm/battle_util2.s @@ -0,0 +1,626 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start AllocateBattleResources +AllocateBattleResources: @ 0x08056B38 + push {r4, r5, r6, lr} + ldr r5, _08056C10 + ldr r6, _08056C14 + ldr r0, [r6] + movs r1, #0x80 + lsls r1, r1, #0x13 + ands r0, r1 + cmp r0, #0 + beq _08056B4E + bl InitTrainerHillBattleStruct +_08056B4E: + ldr r4, _08056C18 + movs r0, #0xa9 + lsls r0, r0, #2 + bl AllocZeroed + str r0, [r4] + movs r0, #0x20 + bl AllocZeroed + str r0, [r5] + movs r0, #0xa0 + bl AllocZeroed + ldr r1, [r5] + str r0, [r1] + movs r0, #0x10 + bl AllocZeroed + ldr r1, [r5] + str r0, [r1, #4] + movs r0, #0x24 + bl AllocZeroed + ldr r1, [r5] + str r0, [r1, #8] + movs r0, #0x24 + bl AllocZeroed + ldr r1, [r5] + str r0, [r1, #0xc] + movs r0, #0xc + bl AllocZeroed + ldr r1, [r5] + str r0, [r1, #0x10] + movs r0, #0x1c + bl AllocZeroed + ldr r1, [r5] + str r0, [r1, #0x14] + movs r0, #0x54 + bl AllocZeroed + ldr r1, [r5] + str r0, [r1, #0x18] + movs r0, #0x24 + bl AllocZeroed + ldr r1, [r5] + str r0, [r1, #0x1c] + ldr r4, _08056C1C + movs r5, #0x80 + lsls r5, r5, #5 + adds r0, r5, #0 + bl AllocZeroed + str r0, [r4] + ldr r4, _08056C20 + adds r0, r5, #0 + bl AllocZeroed + str r0, [r4] + ldr r4, _08056C24 + movs r0, #0x80 + lsls r0, r0, #6 + bl AllocZeroed + str r0, [r4] + ldr r4, _08056C28 + adds r0, r5, #0 + bl AllocZeroed + str r0, [r4] + ldr r0, [r6] + movs r1, #0x80 + lsls r1, r1, #0x14 + ands r0, r1 + cmp r0, #0 + beq _08056C0A + ldr r0, _08056C2C + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r2, _08056C30 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #5 + ldr r0, _08056C34 + adds r1, r1, r0 + ldr r0, [r2] + adds r0, r0, r1 + bl CreateSecretBaseEnemyParty +_08056C0A: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08056C10: .4byte 0x0202414C +_08056C14: .4byte 0x02022C90 +_08056C18: .4byte 0x02024140 +_08056C1C: .4byte 0x02024144 +_08056C20: .4byte 0x02024148 +_08056C24: .4byte 0x02022D00 +_08056C28: .4byte 0x02022D04 +_08056C2C: .4byte 0x00004054 +_08056C30: .4byte 0x03005AEC +_08056C34: .4byte 0x00001A9C + thumb_func_end AllocateBattleResources + + thumb_func_start FreeBattleResources +FreeBattleResources: @ 0x08056C38 + push {r4, r5, r6, lr} + ldr r0, _08056CE8 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x13 + ands r0, r1 + cmp r0, #0 + beq _08056C4C + bl FreeDataStruct +_08056C4C: + ldr r6, _08056CEC + ldr r0, [r6] + cmp r0, #0 + beq _08056CE0 + ldr r4, _08056CF0 + ldr r0, [r4] + bl Free + movs r5, #0 + str r5, [r4] + ldr r0, [r6] + ldr r0, [r0] + bl Free + ldr r0, [r6] + str r5, [r0] + ldr r0, [r0, #4] + bl Free + ldr r0, [r6] + str r5, [r0, #4] + ldr r0, [r0, #8] + bl Free + ldr r0, [r6] + str r5, [r0, #8] + ldr r0, [r0, #0xc] + bl Free + ldr r0, [r6] + str r5, [r0, #0xc] + ldr r0, [r0, #0x10] + bl Free + ldr r0, [r6] + str r5, [r0, #0x10] + ldr r0, [r0, #0x14] + bl Free + ldr r0, [r6] + str r5, [r0, #0x14] + ldr r0, [r0, #0x18] + bl Free + ldr r0, [r6] + str r5, [r0, #0x18] + ldr r0, [r0, #0x1c] + bl Free + ldr r0, [r6] + str r5, [r0, #0x1c] + bl Free + str r5, [r6] + ldr r4, _08056CF4 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _08056CF8 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _08056CFC + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _08056D00 + ldr r0, [r4] + bl Free + str r5, [r4] +_08056CE0: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08056CE8: .4byte 0x02022C90 +_08056CEC: .4byte 0x0202414C +_08056CF0: .4byte 0x02024140 +_08056CF4: .4byte 0x02024144 +_08056CF8: .4byte 0x02024148 +_08056CFC: .4byte 0x02022D00 +_08056D00: .4byte 0x02022D04 + thumb_func_end FreeBattleResources + + thumb_func_start AdjustFriendshipOnBattleFaint +AdjustFriendshipOnBattleFaint: @ 0x08056D04 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _08056D48 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08056D50 + movs r0, #1 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #3 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r2, _08056D4C + movs r0, #0x58 + adds r1, r3, #0 + muls r1, r0, r1 + adds r1, r1, r2 + adds r1, #0x2a + muls r0, r4, r0 + adds r0, r0, r2 + adds r0, #0x2a + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bls _08056D5A + adds r4, r3, #0 + b _08056D5A + .align 2, 0 +_08056D48: .4byte 0x02022C90 +_08056D4C: .4byte 0x02023D28 +_08056D50: + movs r0, #1 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_08056D5A: + ldr r2, _08056D9C + movs r1, #0x58 + adds r0, r4, #0 + muls r0, r1, r0 + adds r0, r0, r2 + adds r3, r0, #0 + adds r3, #0x2a + adds r0, r5, #0 + muls r0, r1, r0 + adds r0, r0, r2 + adds r1, r0, #0 + adds r1, #0x2a + ldrb r0, [r3] + ldrb r2, [r1] + cmp r0, r2 + bls _08056DC8 + ldrb r1, [r1] + subs r0, r0, r1 + cmp r0, #0x1d + ble _08056DA8 + ldr r1, _08056DA0 + lsls r0, r5, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08056DA4 + adds r0, r0, r1 + movs r1, #8 + bl AdjustFriendship + b _08056DDE + .align 2, 0 +_08056D9C: .4byte 0x02023D28 +_08056DA0: .4byte 0x02023D12 +_08056DA4: .4byte 0x02024190 +_08056DA8: + ldr r1, _08056DC0 + lsls r0, r5, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08056DC4 + adds r0, r0, r1 + movs r1, #6 + bl AdjustFriendship + b _08056DDE + .align 2, 0 +_08056DC0: .4byte 0x02023D12 +_08056DC4: .4byte 0x02024190 +_08056DC8: + ldr r1, _08056DE4 + lsls r0, r5, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08056DE8 + adds r0, r0, r1 + movs r1, #6 + bl AdjustFriendship +_08056DDE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08056DE4: .4byte 0x02023D12 +_08056DE8: .4byte 0x02024190 + thumb_func_end AdjustFriendshipOnBattleFaint + + thumb_func_start sub_08056DEC +sub_08056DEC: @ 0x08056DEC + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + adds r0, r4, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08056E58 + movs r2, #0 + ldr r6, _08056E60 + lsls r3, r4, #1 + ldr r5, _08056E64 + ldr r4, _08056E68 +_08056E0E: + adds r0, r2, r5 + ldr r1, [r4] + adds r1, r2, r1 + adds r1, #0x60 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, #2 + ble _08056E0E + adds r0, r3, r6 + ldrb r0, [r0] + bl pokemon_order_func + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r7, #0 + bl pokemon_order_func + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl sub_081B8C50 + movs r2, #0 + ldr r4, _08056E68 + ldr r3, _08056E64 +_08056E46: + ldr r0, [r4] + adds r0, r2, r0 + adds r0, #0x60 + adds r1, r2, r3 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, #2 + ble _08056E46 +_08056E58: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08056E60: .4byte 0x02023D12 +_08056E64: .4byte 0x0203CBCC +_08056E68: .4byte 0x02024140 + thumb_func_end sub_08056DEC + + thumb_func_start sub_08056E6C +sub_08056E6C: @ 0x08056E6C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + movs r0, #0 + mov r8, r0 + ldr r1, _08056E88 + mov sl, r1 + b _08056E94 + .align 2, 0 +_08056E88: .4byte 0x02023FD6 +_08056E8C: + mov r2, r8 + cmp r2, #0 + beq _08056E94 + b _08057016 +_08056E94: + mov r1, sl + ldrb r0, [r1] + cmp r0, #1 + bne _08056E9E + b _08056FA0 +_08056E9E: + cmp r0, #1 + ble _08056EA4 + b _0805700C +_08056EA4: + cmp r0, #0 + beq _08056EAA + b _0805700C +_08056EAA: + ldr r6, _08056EFC + movs r0, #0x58 + mov r5, sb + muls r5, r0, r5 + adds r0, r6, #0 + adds r0, #0x4c + adds r4, r5, r0 + ldr r0, [r4] + movs r7, #7 + ands r0, r7 + cmp r0, #0 + beq _08056F82 + mov r0, sb + bl UproarWakeUpCheck + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08056F0C + ldr r0, [r4] + movs r1, #8 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r4] + adds r2, r6, #0 + adds r2, #0x50 + adds r2, r5, r2 + ldr r0, [r2] + ldr r1, _08056F00 + ands r0, r1 + str r0, [r2] + bl BattleScriptPushCursor + movs r0, #1 + mov r2, sl + strb r0, [r2, #5] + ldr r1, _08056F04 + ldr r0, _08056F08 + str r0, [r1] + movs r0, #2 + mov r8, r0 + b _08056F82 + .align 2, 0 +_08056EFC: .4byte 0x02023D28 +_08056F00: .4byte 0xF7FFFFFF +_08056F04: .4byte 0x02023EB8 +_08056F08: .4byte 0x082897A8 +_08056F0C: + adds r0, r5, r6 + adds r0, #0x20 + ldrb r0, [r0] + movs r2, #1 + cmp r0, #0x30 + bne _08056F1A + movs r2, #2 +_08056F1A: + ldr r1, [r4] + adds r0, r1, #0 + ands r0, r7 + cmp r0, r2 + bhs _08056F2E + movs r0, #8 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r4] + b _08056F32 +_08056F2E: + subs r0, r1, r2 + str r0, [r4] +_08056F32: + ldr r2, _08056F58 + movs r0, #0x58 + mov r1, sb + muls r1, r0, r1 + adds r0, r2, #0 + adds r0, #0x4c + adds r0, r1, r0 + ldr r4, [r0] + movs r0, #7 + ands r4, r0 + cmp r4, #0 + beq _08056F64 + ldr r1, _08056F5C + ldr r0, _08056F60 + str r0, [r1] + movs r1, #2 + mov r8, r1 + b _08056F82 + .align 2, 0 +_08056F58: .4byte 0x02023D28 +_08056F5C: .4byte 0x02023EB8 +_08056F60: .4byte 0x0828979B +_08056F64: + adds r2, #0x50 + adds r2, r1, r2 + ldr r0, [r2] + ldr r1, _08056F90 + ands r0, r1 + str r0, [r2] + bl BattleScriptPushCursor + ldr r0, _08056F94 + strb r4, [r0, #5] + ldr r1, _08056F98 + ldr r0, _08056F9C + str r0, [r1] + movs r2, #2 + mov r8, r2 +_08056F82: + ldr r1, _08056F94 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + mov sl, r1 + b _0805700C + .align 2, 0 +_08056F90: .4byte 0xF7FFFFFF +_08056F94: .4byte 0x02023FD6 +_08056F98: .4byte 0x02023EB8 +_08056F9C: .4byte 0x082897A8 +_08056FA0: + ldr r1, _08056FD8 + movs r0, #0x58 + mov r2, sb + muls r2, r0, r2 + adds r0, r2, #0 + adds r1, #0x4c + adds r4, r0, r1 + ldr r0, [r4] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08057004 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #5 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0 + beq _08056FE4 + ldr r1, _08056FDC + ldr r0, _08056FE0 + str r0, [r1] + b _08056FFC + .align 2, 0 +_08056FD8: .4byte 0x02023D28 +_08056FDC: .4byte 0x02023EB8 +_08056FE0: .4byte 0x082897F2 +_08056FE4: + ldr r0, [r4] + movs r1, #0x21 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r4] + bl BattleScriptPushCursor + ldr r1, _08057054 + ldr r0, _08057058 + str r0, [r1] + mov r0, sl + strb r5, [r0, #5] +_08056FFC: + movs r1, #2 + mov r8, r1 + ldr r2, _0805705C + mov sl, r2 +_08057004: + mov r1, sl + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0805700C: + mov r2, sl + ldrb r0, [r2] + cmp r0, #2 + beq _08057016 + b _08056E8C +_08057016: + mov r0, r8 + cmp r0, #2 + bne _08057040 + ldr r4, _08057060 + mov r1, sb + strb r1, [r4] + ldrb r1, [r4] + movs r0, #0x58 + muls r0, r1, r0 + ldr r1, _08057064 + adds r0, r0, r1 + str r0, [sp] + movs r0, #0 + movs r1, #0x28 + movs r2, #0 + movs r3, #4 + bl BtlController_EmitSetMonData + ldrb r0, [r4] + bl MarkBattlerForControllerExec +_08057040: + mov r0, r8 + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08057054: .4byte 0x02023EB8 +_08057058: .4byte 0x082897FF +_0805705C: .4byte 0x02023FD6 +_08057060: .4byte 0x02023D08 +_08057064: .4byte 0x02023D74 + thumb_func_end sub_08056E6C + diff --git a/asm/berry.s b/asm/berry.s new file mode 100644 index 0000000..b530c52 --- /dev/null +++ b/asm/berry.s @@ -0,0 +1,1083 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ClearEnigmaBerries +ClearEnigmaBerries: @ 0x080E0B04 + push {lr} + sub sp, #4 + mov r1, sp + movs r0, #0 + strh r0, [r1] + ldr r0, _080E0B24 + ldr r1, [r0] + ldr r0, _080E0B28 + adds r1, r1, r0 + ldr r2, _080E0B2C + mov r0, sp + bl CpuSet + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_080E0B24: .4byte 0x03005AEC +_080E0B28: .4byte 0x000031F8 +_080E0B2C: .4byte 0x0100001A + thumb_func_end ClearEnigmaBerries + + thumb_func_start SetEnigmaBerry +SetEnigmaBerry: @ 0x080E0B30 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080E0B54 + ldr r0, [r0] + ldr r1, _080E0B58 + adds r3, r0, r1 + movs r2, #0 +_080E0B3E: + adds r0, r3, r2 + adds r1, r4, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, #0x33 + bls _080E0B3E + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E0B54: .4byte 0x03005AEC +_080E0B58: .4byte 0x000031F8 + thumb_func_end SetEnigmaBerry + + thumb_func_start GetEnigmaBerryChecksum +GetEnigmaBerryChecksum: @ 0x080E0B5C + push {lr} + adds r3, r0, #0 + movs r2, #0 + movs r1, #0 +_080E0B64: + adds r0, r3, r1 + ldrb r0, [r0] + adds r2, r2, r0 + adds r1, #1 + cmp r1, #0x2f + bls _080E0B64 + adds r0, r2, #0 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetEnigmaBerryChecksum + + thumb_func_start IsEnigmaBerryValid +IsEnigmaBerryValid: @ 0x080E0B78 + push {r4, lr} + ldr r4, _080E0BAC + ldr r1, [r4] + ldr r2, _080E0BB0 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080E0BC0 + ldr r2, _080E0BB4 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080E0BC0 + ldr r2, _080E0BB8 + adds r0, r1, r2 + bl GetEnigmaBerryChecksum + ldr r1, [r4] + ldr r2, _080E0BBC + adds r1, r1, r2 + ldr r1, [r1] + cmp r0, r1 + bne _080E0BC0 + movs r0, #1 + b _080E0BC2 + .align 2, 0 +_080E0BAC: .4byte 0x03005AEC +_080E0BB0: .4byte 0x0000320C +_080E0BB4: .4byte 0x00003202 +_080E0BB8: .4byte 0x000031F8 +_080E0BBC: .4byte 0x00003228 +_080E0BC0: + movs r0, #0 +_080E0BC2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end IsEnigmaBerryValid + + thumb_func_start GetBerryInfo +GetBerryInfo: @ 0x080E0BC8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x2b + bne _080E0BEC + bl IsEnigmaBerryValid + cmp r0, #0 + beq _080E0BEC + ldr r0, _080E0BE4 + ldr r0, [r0] + ldr r1, _080E0BE8 + b _080E0C00 + .align 2, 0 +_080E0BE4: .4byte 0x03005AEC +_080E0BE8: .4byte 0x000031F8 +_080E0BEC: + subs r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x2a + bls _080E0BF8 + movs r4, #1 +_080E0BF8: + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + ldr r1, _080E0C08 +_080E0C00: + adds r0, r0, r1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080E0C08: .4byte 0x08563134 + thumb_func_end GetBerryInfo + + thumb_func_start GetBerryTreeInfo +GetBerryTreeInfo: @ 0x080E0C0C + lsls r0, r0, #0x18 + ldr r1, _080E0C20 + lsrs r0, r0, #0x15 + ldr r2, _080E0C24 + adds r0, r0, r2 + ldr r1, [r1] + adds r1, r1, r0 + adds r0, r1, #0 + bx lr + .align 2, 0 +_080E0C20: .4byte 0x03005AEC +_080E0C24: .4byte 0x0000169C + thumb_func_end GetBerryTreeInfo + + thumb_func_start EventObjectInteractionWaterBerryTree +EventObjectInteractionWaterBerryTree: @ 0x080E0C28 + push {lr} + ldr r0, _080E0C50 + ldrb r0, [r0] + bl EventObjectGetBerryTreeId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBerryTreeInfo + adds r2, r0, #0 + ldrb r0, [r2, #1] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x19 + cmp r0, #2 + beq _080E0C64 + cmp r0, #2 + bgt _080E0C54 + cmp r0, #1 + beq _080E0C5E + b _080E0C7A + .align 2, 0 +_080E0C50: .4byte 0x03005B50 +_080E0C54: + cmp r0, #3 + beq _080E0C6A + cmp r0, #4 + beq _080E0C70 + b _080E0C7A +_080E0C5E: + ldrb r0, [r2, #5] + movs r1, #0x10 + b _080E0C74 +_080E0C64: + ldrb r0, [r2, #5] + movs r1, #0x20 + b _080E0C74 +_080E0C6A: + ldrb r0, [r2, #5] + movs r1, #0x40 + b _080E0C74 +_080E0C70: + ldrb r0, [r2, #5] + movs r1, #0x80 +_080E0C74: + orrs r0, r1 + strb r0, [r2, #5] + b _080E0C7E +_080E0C7A: + movs r0, #0 + b _080E0C80 +_080E0C7E: + movs r0, #1 +_080E0C80: + pop {r1} + bx r1 + thumb_func_end EventObjectInteractionWaterBerryTree + + thumb_func_start IsPlayerFacingEmptyBerryTreePatch +IsPlayerFacingEmptyBerryTreePatch: @ 0x080E0C84 + push {lr} + bl GetEventObjectScriptPointerPlayerFacing + ldr r1, _080E0CAC + cmp r0, r1 + bne _080E0CB4 + ldr r0, _080E0CB0 + ldrb r0, [r0] + bl EventObjectGetBerryTreeId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetStageByBerryTreeId + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080E0CB4 + movs r0, #1 + b _080E0CB6 + .align 2, 0 +_080E0CAC: .4byte 0x08244D23 +_080E0CB0: .4byte 0x03005B50 +_080E0CB4: + movs r0, #0 +_080E0CB6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsPlayerFacingEmptyBerryTreePatch + + thumb_func_start TryToWaterBerryTree +TryToWaterBerryTree: @ 0x080E0CBC + push {lr} + bl GetEventObjectScriptPointerPlayerFacing + ldr r1, _080E0CD4 + cmp r0, r1 + bne _080E0CD8 + bl EventObjectInteractionWaterBerryTree + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _080E0CDA + .align 2, 0 +_080E0CD4: .4byte 0x08244D23 +_080E0CD8: + movs r0, #0 +_080E0CDA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TryToWaterBerryTree + + thumb_func_start ClearBerryTrees +ClearBerryTrees: @ 0x080E0CE0 + push {r4, r5, r6, lr} + movs r2, #0 + ldr r6, _080E0D08 + ldr r5, _080E0D0C + ldr r0, _080E0D10 + ldr r3, [r0] + ldr r4, [r0, #4] +_080E0CEE: + ldr r0, [r6] + lsls r1, r2, #3 + adds r0, r0, r1 + adds r0, r0, r5 + str r3, [r0] + str r4, [r0, #4] + adds r2, #1 + cmp r2, #0x7f + ble _080E0CEE + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080E0D08: .4byte 0x03005AEC +_080E0D0C: .4byte 0x0000169C +_080E0D10: .4byte 0x085636B0 + thumb_func_end ClearBerryTrees + + thumb_func_start BerryTreeGrow +BerryTreeGrow: @ 0x080E0D14 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #1] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080E0D26 +_080E0D22: + movs r0, #0 + b _080E0DB2 +_080E0D26: + lsls r0, r1, #0x19 + lsrs r0, r0, #0x19 + cmp r0, #5 + bhi _080E0DB0 + lsls r0, r0, #2 + ldr r1, _080E0D38 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E0D38: .4byte 0x080E0D3C +_080E0D3C: @ jump table + .4byte _080E0D22 @ case 0 + .4byte _080E0D5C @ case 1 + .4byte _080E0D5C @ case 2 + .4byte _080E0D5C @ case 3 + .4byte _080E0D54 @ case 4 + .4byte _080E0D74 @ case 5 +_080E0D54: + adds r0, r4, #0 + bl CalcBerryYield + strb r0, [r4, #4] +_080E0D5C: + ldrb r2, [r4, #1] + lsls r1, r2, #0x19 + lsrs r1, r1, #0x19 + adds r1, #1 + movs r0, #0x7f + ands r1, r0 + movs r0, #0x80 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #1] + b _080E0DB0 +_080E0D74: + ldrb r0, [r4, #5] + movs r1, #0x11 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #0x21 + rsbs r0, r0, #0 + ands r1, r0 + subs r0, #0x20 + ands r1, r0 + movs r0, #0x7f + ands r1, r0 + movs r0, #0 + strb r0, [r4, #4] + ldrb r2, [r4, #1] + subs r0, #0x80 + ands r0, r2 + movs r2, #2 + orrs r0, r2 + strb r0, [r4, #1] + adds r1, #1 + movs r0, #0xf + ands r1, r0 + strb r1, [r4, #5] + cmp r1, #0xa + bne _080E0DB0 + ldr r0, _080E0DB8 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [r4] + str r1, [r4, #4] +_080E0DB0: + movs r0, #1 +_080E0DB2: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080E0DB8: .4byte 0x085636B0 + thumb_func_end BerryTreeGrow + + thumb_func_start BerryTreeTimeUpdate +BerryTreeTimeUpdate: @ 0x080E0DBC + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + movs r2, #0 +_080E0DC2: + ldr r1, _080E0E0C + lsls r0, r2, #3 + ldr r3, _080E0E10 + adds r0, r0, r3 + ldr r1, [r1] + adds r4, r1, r0 + ldrb r0, [r4] + adds r7, r2, #1 + cmp r0, #0 + beq _080E0E5C + ldrb r1, [r4, #1] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _080E0E5C + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080E0E5C + ldrb r0, [r4] + bl GetStageDurationByBerryType + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #3 + subs r1, r1, r0 + cmp r6, r1 + blt _080E0E18 + ldr r0, _080E0E14 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [r4] + str r1, [r4, #4] + b _080E0E5C + .align 2, 0 +_080E0E0C: .4byte 0x03005AEC +_080E0E10: .4byte 0x0000169C +_080E0E14: .4byte 0x085636B0 +_080E0E18: + adds r5, r6, #0 + cmp r5, #0 + beq _080E0E5C + ldrh r1, [r4, #2] + cmp r1, r5 + ble _080E0E28 + subs r0, r1, r5 + b _080E0E5A +_080E0E28: + subs r5, r5, r1 + ldrb r0, [r4] + bl GetStageDurationByBerryType + strh r0, [r4, #2] + adds r0, r4, #0 + bl BerryTreeGrow + cmp r0, #0 + beq _080E0E5C + ldrb r1, [r4, #1] + movs r0, #0x7f + ands r0, r1 + cmp r0, #5 + bne _080E0E4C + ldrh r0, [r4, #2] + lsls r0, r0, #2 + strh r0, [r4, #2] +_080E0E4C: + cmp r5, #0 + beq _080E0E5C + ldrh r0, [r4, #2] + adds r1, r0, #0 + cmp r0, r5 + ble _080E0E28 + subs r0, r0, r5 +_080E0E5A: + strh r0, [r4, #2] +_080E0E5C: + adds r2, r7, #0 + cmp r2, #0x7f + ble _080E0DC2 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end BerryTreeTimeUpdate + + thumb_func_start PlantBerryTree +PlantBerryTree: @ 0x080E0E68 + push {r4, r5, r6, r7, lr} + adds r4, r1, #0 + adds r5, r2, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r3, r3, #0x18 + lsrs r7, r3, #0x18 + bl GetBerryTreeInfo + adds r6, r0, #0 + ldr r0, _080E0ECC + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [r6] + str r1, [r6, #4] + strb r4, [r6] + adds r0, r4, #0 + bl GetStageDurationByBerryType + strh r0, [r6, #2] + movs r1, #0x7f + ands r1, r5 + ldrb r2, [r6, #1] + movs r0, #0x80 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r6, #1] + cmp r5, #5 + bne _080E0EBA + adds r0, r6, #0 + bl CalcBerryYield + strb r0, [r6, #4] + ldrh r0, [r6, #2] + lsls r0, r0, #2 + strh r0, [r6, #2] +_080E0EBA: + cmp r7, #0 + bne _080E0EC6 + ldrb r0, [r6, #1] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r6, #1] +_080E0EC6: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E0ECC: .4byte 0x085636B0 + thumb_func_end PlantBerryTree + + thumb_func_start RemoveBerryTree +RemoveBerryTree: @ 0x080E0ED0 + lsls r0, r0, #0x18 + ldr r1, _080E0EEC + ldr r2, [r1] + lsrs r0, r0, #0x15 + adds r2, r2, r0 + ldr r0, _080E0EF0 + adds r2, r2, r0 + ldr r0, _080E0EF4 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [r2] + str r1, [r2, #4] + bx lr + .align 2, 0 +_080E0EEC: .4byte 0x03005AEC +_080E0EF0: .4byte 0x0000169C +_080E0EF4: .4byte 0x085636B0 + thumb_func_end RemoveBerryTree + + thumb_func_start GetBerryTypeByBerryTreeId +GetBerryTypeByBerryTreeId: @ 0x080E0EF8 + lsls r0, r0, #0x18 + ldr r1, _080E0F0C + ldr r1, [r1] + lsrs r0, r0, #0x15 + adds r1, r1, r0 + ldr r0, _080E0F10 + adds r1, r1, r0 + ldrb r0, [r1] + bx lr + .align 2, 0 +_080E0F0C: .4byte 0x03005AEC +_080E0F10: .4byte 0x0000169C + thumb_func_end GetBerryTypeByBerryTreeId + + thumb_func_start GetStageByBerryTreeId +GetStageByBerryTreeId: @ 0x080E0F14 + lsls r0, r0, #0x18 + ldr r1, _080E0F2C + ldr r1, [r1] + lsrs r0, r0, #0x15 + adds r1, r1, r0 + ldr r0, _080E0F30 + adds r1, r1, r0 + ldrb r0, [r1] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x19 + bx lr + .align 2, 0 +_080E0F2C: .4byte 0x03005AEC +_080E0F30: .4byte 0x0000169D + thumb_func_end GetStageByBerryTreeId + + thumb_func_start ItemIdToBerryType +ItemIdToBerryType: @ 0x080E0F34 + push {lr} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r2, _080E0F50 + adds r0, r0, r2 + lsrs r0, r0, #0x10 + cmp r0, #0x2a + bhi _080E0F54 + adds r0, r1, #0 + adds r0, #0x7c + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _080E0F56 + .align 2, 0 +_080E0F50: .4byte 0xFF7B0000 +_080E0F54: + movs r0, #1 +_080E0F56: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ItemIdToBerryType + + thumb_func_start BerryTypeToItemId +BerryTypeToItemId: @ 0x080E0F5C + push {lr} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r2, _080E0F78 + adds r0, r0, r2 + lsrs r0, r0, #0x10 + cmp r0, #0x2a + bhi _080E0F7C + adds r0, r1, #0 + adds r0, #0x84 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _080E0F7E + .align 2, 0 +_080E0F78: .4byte 0xFFFF0000 +_080E0F7C: + movs r0, #0x85 +_080E0F7E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end BerryTypeToItemId + + thumb_func_start GetBerryNameByBerryType +GetBerryNameByBerryType: @ 0x080E0F84 + push {r4, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBerryInfo + adds r1, r0, #0 + adds r0, r4, #0 + movs r2, #6 + bl memcpy + movs r0, #0xff + strb r0, [r4, #6] + pop {r4} + pop {r0} + bx r0 + thumb_func_end GetBerryNameByBerryType + + thumb_func_start ResetBerryTreeSparkleFlag +ResetBerryTreeSparkleFlag: @ 0x080E0FA4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBerryTreeInfo + ldrb r2, [r0, #1] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #1] + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ResetBerryTreeSparkleFlag + + thumb_func_start BerryTreeGetNumStagesWatered +BerryTreeGetNumStagesWatered: @ 0x080E0FBC + push {lr} + ldrb r2, [r0, #5] + movs r0, #0x10 + ands r0, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + rsbs r0, r0, #0 + lsrs r1, r0, #0x1f + movs r0, #0x20 + ands r0, r2 + cmp r0, #0 + beq _080E0FD6 + adds r1, #1 +_080E0FD6: + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + beq _080E0FE4 + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 +_080E0FE4: + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _080E0FF2 + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 +_080E0FF2: + adds r0, r1, #0 + pop {r1} + bx r1 + thumb_func_end BerryTreeGetNumStagesWatered + + thumb_func_start GetNumStagesWateredByBerryTreeId +GetNumStagesWateredByBerryTreeId: @ 0x080E0FF8 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBerryTreeInfo + bl BerryTreeGetNumStagesWatered + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetNumStagesWateredByBerryTreeId + + thumb_func_start CalcBerryYieldInternal +CalcBerryYieldInternal: @ 0x080E1010 + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + cmp r2, #0 + bne _080E1026 + lsls r0, r6, #0x18 + b _080E105A +_080E1026: + subs r1, r0, r6 + subs r0, r2, #1 + adds r5, r1, #0 + muls r5, r0, r5 + adds r4, r1, #0 + muls r4, r2, r4 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + subs r4, r4, r5 + adds r4, #1 + adds r1, r4, #0 + bl __umodsi3 + adds r5, r5, r0 + movs r0, #3 + ands r0, r5 + cmp r0, #1 + bls _080E1054 + lsrs r0, r5, #2 + adds r0, #1 + b _080E1056 +_080E1054: + lsrs r0, r5, #2 +_080E1056: + adds r0, r0, r6 + lsls r0, r0, #0x18 +_080E105A: + lsrs r0, r0, #0x18 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CalcBerryYieldInternal + + thumb_func_start CalcBerryYield +CalcBerryYield: @ 0x080E1064 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4] + bl GetBerryInfo + ldrb r6, [r0, #0xb] + ldrb r5, [r0, #0xa] + adds r0, r4, #0 + bl BerryTreeGetNumStagesWatered + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r5, #0 + adds r1, r6, #0 + bl CalcBerryYieldInternal + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end CalcBerryYield + + thumb_func_start GetBerryCountByBerryTreeId +GetBerryCountByBerryTreeId: @ 0x080E1090 + lsls r0, r0, #0x18 + ldr r1, _080E10A4 + ldr r1, [r1] + lsrs r0, r0, #0x15 + adds r1, r1, r0 + movs r0, #0xb5 + lsls r0, r0, #5 + adds r1, r1, r0 + ldrb r0, [r1] + bx lr + .align 2, 0 +_080E10A4: .4byte 0x03005AEC + thumb_func_end GetBerryCountByBerryTreeId + + thumb_func_start GetStageDurationByBerryType +GetStageDurationByBerryType: @ 0x080E10A8 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBerryInfo + ldrb r1, [r0, #0x14] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #0x12 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + thumb_func_end GetStageDurationByBerryType + + thumb_func_start EventObjectInteractionGetBerryTreeData +EventObjectInteractionGetBerryTreeData: @ 0x080E10C0 + push {r4, r5, r6, lr} + ldr r0, _080E10FC + ldrb r0, [r0] + bl EventObjectGetBerryTreeId + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r5, #0 + bl GetBerryTypeByBerryTreeId + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r0, r5, #0 + bl ResetBerryTreeSparkleFlag + ldr r0, _080E1100 + ldrb r0, [r0] + ldr r1, _080E1104 + ldr r2, [r1] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + bl IsBerryTreeSparkling + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080E110C + ldr r1, _080E1108 + movs r0, #0xff + strh r0, [r1] + b _080E111A + .align 2, 0 +_080E10FC: .4byte 0x03005B50 +_080E1100: .4byte 0x02037292 +_080E1104: .4byte 0x03005AEC +_080E1108: .4byte 0x02037280 +_080E110C: + ldr r4, _080E1144 + adds r0, r5, #0 + bl GetStageByBerryTreeId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] +_080E111A: + ldr r4, _080E1148 + adds r0, r5, #0 + bl GetNumStagesWateredByBerryTreeId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + ldr r4, _080E114C + adds r0, r5, #0 + bl GetBerryCountByBerryTreeId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + ldr r1, _080E1150 + adds r0, r6, #0 + bl GetBerryNameByBerryType + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080E1144: .4byte 0x02037280 +_080E1148: .4byte 0x02037282 +_080E114C: .4byte 0x02037284 +_080E1150: .4byte 0x02021C40 + thumb_func_end EventObjectInteractionGetBerryTreeData + + thumb_func_start Bag_ChooseBerry +Bag_ChooseBerry: @ 0x080E1154 + push {lr} + ldr r0, _080E1160 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080E1160: .4byte 0x081AA955 + thumb_func_end Bag_ChooseBerry + + thumb_func_start EventObjectInteractionPlantBerryTree +EventObjectInteractionPlantBerryTree: @ 0x080E1164 + push {r4, lr} + ldr r0, _080E1194 + ldrh r0, [r0] + bl ItemIdToBerryType + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _080E1198 + ldrb r0, [r0] + bl EventObjectGetBerryTreeId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r4, #0 + movs r2, #1 + movs r3, #1 + bl PlantBerryTree + bl EventObjectInteractionGetBerryTreeData + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E1194: .4byte 0x0203CB48 +_080E1198: .4byte 0x03005B50 + thumb_func_end EventObjectInteractionPlantBerryTree + + thumb_func_start EventObjectInteractionPickBerryTree +EventObjectInteractionPickBerryTree: @ 0x080E119C + push {r4, r5, r6, lr} + ldr r0, _080E11E0 + ldrb r0, [r0] + bl EventObjectGetBerryTreeId + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + adds r0, r5, #0 + bl GetBerryTypeByBerryTreeId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r6, _080E11E4 + bl BerryTypeToItemId + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + bl GetBerryCountByBerryTreeId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl AddBagItem + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r6] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080E11E0: .4byte 0x03005B50 +_080E11E4: .4byte 0x02037280 + thumb_func_end EventObjectInteractionPickBerryTree + + thumb_func_start EventObjectInteractionRemoveBerryTree +EventObjectInteractionRemoveBerryTree: @ 0x080E11E8 + push {lr} + ldr r0, _080E1210 + ldrb r0, [r0] + bl EventObjectGetBerryTreeId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl RemoveBerryTree + ldr r0, _080E1214 + ldrb r0, [r0] + ldr r1, _080E1218 + ldr r2, [r1] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + bl sub_08092860 + pop {r0} + bx r0 + .align 2, 0 +_080E1210: .4byte 0x03005B50 +_080E1214: .4byte 0x02037292 +_080E1218: .4byte 0x03005AEC + thumb_func_end EventObjectInteractionRemoveBerryTree + + thumb_func_start PlayerHasBerries +PlayerHasBerries: @ 0x080E121C + push {lr} + movs r0, #4 + bl IsBagPocketNonEmpty + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + thumb_func_end PlayerHasBerries + + thumb_func_start ResetBerryTreeSparkleFlags +ResetBerryTreeSparkleFlags: @ 0x080E122C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov r4, sp + adds r4, #2 + mov r0, sp + adds r1, r4, #0 + bl GetCameraCoords + mov r0, sp + ldrh r2, [r0] + ldrh r1, [r4] + adds r1, #3 + adds r3, r2, #0 + adds r3, #0xe + lsls r1, r1, #0x10 + movs r5, #0x80 + lsls r5, r5, #0xc + adds r0, r1, r5 + lsrs r0, r0, #0x10 + mov sl, r0 + mov r5, sp + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + mov sb, r2 + ldr r4, _080E12C4 + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + mov r8, r3 + asrs r7, r1, #0x10 + movs r6, #0xf +_080E1270: + ldrb r0, [r4] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _080E12AC + ldrb r0, [r4, #6] + cmp r0, #0xc + bne _080E12AC + ldrh r0, [r4, #0x10] + strh r0, [r5] + ldrh r0, [r4, #0x12] + mov r1, sp + strh r0, [r1, #2] + movs r2, #0 + ldrsh r1, [r5, r2] + cmp sb, r1 + bgt _080E12AC + cmp r1, r8 + bgt _080E12AC + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + cmp r7, r1 + bgt _080E12AC + mov r2, sl + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + cmp r1, r0 + bgt _080E12AC + ldrb r0, [r4, #0x1d] + bl ResetBerryTreeSparkleFlag +_080E12AC: + adds r4, #0x24 + subs r6, #1 + cmp r6, #0 + bge _080E1270 + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E12C4: .4byte 0x02036FF0 + thumb_func_end ResetBerryTreeSparkleFlags + diff --git a/asm/berry_blender.s b/asm/berry_blender.s new file mode 100644 index 0000000..c8e82b7 --- /dev/null +++ b/asm/berry_blender.s @@ -0,0 +1,9269 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start Blender_ControlHitPitch +Blender_ControlHitPitch: @ 0x0807F170 + push {lr} + ldr r0, _0807F190 + ldr r1, _0807F194 + ldr r2, _0807F198 + ldr r2, [r2] + adds r2, #0x4c + movs r3, #0 + ldrsh r2, [r2, r3] + subs r2, #0x80 + lsls r2, r2, #0x11 + asrs r2, r2, #0x10 + bl m4aMPlayPitchControl + pop {r0} + bx r0 + .align 2, 0 +_0807F190: .4byte 0x03007550 +_0807F194: .4byte 0x0000FFFF +_0807F198: .4byte 0x02031F44 + thumb_func_end Blender_ControlHitPitch + + thumb_func_start VBlankCB0_BerryBlender +VBlankCB0_BerryBlender: @ 0x0807F19C + push {r4, lr} + sub sp, #0x10 + bl BerryBlender_SetBackgroundsPos + ldr r0, _0807F20C + ldr r0, [r0] + mov ip, r0 + movs r0, #0xa0 + lsls r0, r0, #1 + add r0, ip + ldr r1, [r0] + movs r0, #0xa2 + lsls r0, r0, #1 + add r0, ip + ldr r2, [r0] + movs r0, #0xa4 + lsls r0, r0, #1 + add r0, ip + movs r4, #0 + ldrsh r3, [r0, r4] + movs r0, #0xa5 + lsls r0, r0, #1 + add r0, ip + movs r4, #0 + ldrsh r0, [r0, r4] + str r0, [sp] + movs r0, #0xa6 + lsls r0, r0, #1 + add r0, ip + movs r4, #0 + ldrsh r0, [r0, r4] + str r0, [sp, #4] + movs r0, #0xa7 + lsls r0, r0, #1 + add r0, ip + movs r4, #0 + ldrsh r0, [r0, r4] + str r0, [sp, #8] + movs r0, #0xa8 + lsls r0, r0, #1 + add r0, ip + ldrh r0, [r0] + str r0, [sp, #0xc] + movs r0, #2 + bl SetBgAffine + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + add sp, #0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807F20C: .4byte 0x02031F44 + thumb_func_end VBlankCB0_BerryBlender + + thumb_func_start LoadBerryBlenderGfx +LoadBerryBlenderGfx: @ 0x0807F210 + push {r4, r5, lr} + ldr r1, _0807F22C + ldr r0, [r1] + ldrb r0, [r0, #1] + adds r5, r1, #0 + cmp r0, #9 + bls _0807F220 + b _0807F400 +_0807F220: + lsls r0, r0, #2 + ldr r1, _0807F230 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807F22C: .4byte 0x02031F44 +_0807F230: .4byte 0x0807F234 +_0807F234: @ jump table + .4byte _0807F25C @ case 0 + .4byte _0807F28C @ case 1 + .4byte _0807F2B8 @ case 2 + .4byte _0807F2E4 @ case 3 + .4byte _0807F300 @ case 4 + .4byte _0807F32C @ case 5 + .4byte _0807F348 @ case 6 + .4byte _0807F378 @ case 7 + .4byte _0807F388 @ case 8 + .4byte _0807F3B8 @ case 9 +_0807F25C: + ldr r5, _0807F280 + adds r0, r5, #0 + bl GetDecompressedDataSize + adds r0, #0x64 + bl AllocZeroed + adds r1, r0, #0 + ldr r4, _0807F284 + ldr r0, [r4] + ldr r2, _0807F288 + adds r0, r0, r2 + str r1, [r0] + adds r0, r5, #0 + bl LZDecompressVram + ldr r1, [r4] + b _0807F39E + .align 2, 0 +_0807F280: .4byte 0x08D9154C +_0807F284: .4byte 0x02031F44 +_0807F288: .4byte 0x000011B8 +_0807F28C: + ldr r1, _0807F2B0 + movs r2, #0x80 + lsls r2, r2, #3 + movs r0, #2 + movs r3, #0 + bl CopyToBgTilemapBuffer + movs r0, #2 + bl CopyBgTilemapBufferToVram + ldr r0, _0807F2B4 + movs r2, #0x80 + lsls r2, r2, #1 + movs r1, #0 + bl LoadPalette + b _0807F39A + .align 2, 0 +_0807F2B0: .4byte 0x0830D374 +_0807F2B4: .4byte 0x0830D354 +_0807F2B8: + ldr r0, [r5] + ldr r1, _0807F2DC + adds r0, r0, r1 + ldr r4, [r0] + ldr r0, _0807F2E0 + bl GetDecompressedDataSize + adds r2, r0, #0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + movs r0, #2 + adds r1, r4, #0 + movs r3, #0 + bl LoadBgTiles + ldr r1, [r5] + b _0807F39E + .align 2, 0 +_0807F2DC: .4byte 0x000011B8 +_0807F2E0: .4byte 0x08D9154C +_0807F2E4: + ldr r0, _0807F2F8 + ldr r1, [r5] + ldr r2, _0807F2FC + adds r1, r1, r2 + ldr r1, [r1] + bl LZDecompressVram + ldr r1, [r5] + b _0807F39E + .align 2, 0 +_0807F2F8: .4byte 0x08D91D6C +_0807F2FC: .4byte 0x000011B8 +_0807F300: + ldr r0, [r5] + ldr r1, _0807F324 + adds r0, r0, r1 + ldr r4, [r0] + ldr r0, _0807F328 + bl GetDecompressedDataSize + adds r2, r0, #0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + movs r0, #1 + adds r1, r4, #0 + movs r3, #0 + bl LoadBgTiles + ldr r1, [r5] + b _0807F39E + .align 2, 0 +_0807F324: .4byte 0x000011B8 +_0807F328: .4byte 0x08D91D6C +_0807F32C: + ldr r0, _0807F340 + ldr r1, [r5] + ldr r2, _0807F344 + adds r1, r1, r2 + ldr r1, [r1] + bl LZDecompressVram + ldr r1, [r5] + b _0807F39E + .align 2, 0 +_0807F340: .4byte 0x08D927A0 +_0807F344: .4byte 0x000011B8 +_0807F348: + ldr r0, [r5] + ldr r1, _0807F370 + adds r0, r0, r1 + ldr r4, [r0] + ldr r0, _0807F374 + bl GetDecompressedDataSize + adds r2, r0, #0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + movs r0, #1 + adds r1, r4, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + movs r0, #1 + bl CopyBgTilemapBufferToVram + ldr r1, [r5] + b _0807F39E + .align 2, 0 +_0807F370: .4byte 0x000011B8 +_0807F374: .4byte 0x08D927A0 +_0807F378: + ldr r0, _0807F384 + movs r1, #0x80 + movs r2, #0x20 + bl LoadPalette + b _0807F39A + .align 2, 0 +_0807F384: .4byte 0x0830D774 +_0807F388: + ldr r0, _0807F3A8 + bl LoadSpriteSheet + ldr r0, _0807F3AC + bl LoadSpriteSheet + ldr r0, _0807F3B0 + bl LoadSpriteSheet +_0807F39A: + ldr r0, _0807F3B4 + ldr r1, [r0] +_0807F39E: + ldrb r0, [r1, #1] + adds r0, #1 + strb r0, [r1, #1] + b _0807F400 + .align 2, 0 +_0807F3A8: .4byte 0x0830F9B0 +_0807F3AC: .4byte 0x0830FAC8 +_0807F3B0: .4byte 0x0830FA28 +_0807F3B4: .4byte 0x02031F44 +_0807F3B8: + ldr r0, _0807F3E8 + bl LoadSpriteSheet + ldr r0, _0807F3EC + bl LoadSpriteSheet + ldr r0, _0807F3F0 + bl LoadSpritePalette + ldr r0, _0807F3F4 + bl LoadSpritePalette + ldr r4, _0807F3F8 + ldr r0, [r4] + ldr r2, _0807F3FC + adds r0, r0, r2 + ldr r0, [r0] + bl Free + ldr r1, [r4] + movs r0, #0 + strb r0, [r1, #1] + movs r0, #1 + b _0807F402 + .align 2, 0 +_0807F3E8: .4byte 0x0830FB14 +_0807F3EC: .4byte 0x0830FB48 +_0807F3F0: .4byte 0x0830F9C0 +_0807F3F4: .4byte 0x0830F9B8 +_0807F3F8: .4byte 0x02031F44 +_0807F3FC: .4byte 0x000011B8 +_0807F400: + movs r0, #0 +_0807F402: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end LoadBerryBlenderGfx + + thumb_func_start sub_0807F408 +sub_0807F408: @ 0x0807F408 + push {lr} + sub sp, #8 + movs r0, #0x1e + str r0, [sp] + movs r0, #0x14 + str r0, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, #0 + bl CopyBgTilemapBufferToVram + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuRegBits + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0807F408 + + thumb_func_start InitBerryBlenderWindows +InitBerryBlenderWindows: @ 0x0807F46C + push {r4, lr} + sub sp, #8 + ldr r0, _0807F4B4 + bl InitWindows + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0807F4AC + bl DeactivateAllTextPrinters + movs r4, #0 +_0807F482: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl FillWindowPixelBuffer + adds r4, #1 + cmp r4, #4 + ble _0807F482 + movs r0, #0x1e + str r0, [sp] + movs r0, #0x14 + str r0, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, #0xe0 + bl Menu_LoadStdPalAt +_0807F4AC: + add sp, #8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807F4B4: .4byte 0x0830F870 + thumb_func_end InitBerryBlenderWindows + + thumb_func_start DoBerryBlending +DoBerryBlending: @ 0x0807F4B8 + push {r4, lr} + ldr r4, _0807F4F0 + ldr r0, [r4] + cmp r0, #0 + bne _0807F4CA + ldr r0, _0807F4F4 + bl AllocZeroed + str r0, [r4] +_0807F4CA: + ldr r0, [r4] + adds r0, #0x63 + movs r1, #0 + strb r1, [r0] + ldr r0, [r4] + strb r1, [r0] + ldr r0, [r4] + adds r0, #0x63 + strb r1, [r0] + ldr r0, _0807F4F8 + ldrb r0, [r0] + bl Blender_SetPlayerNamesLocal + ldr r0, _0807F4FC + bl SetMainCallback2 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807F4F0: .4byte 0x02031F44 +_0807F4F4: .4byte 0x000011DC +_0807F4F8: .4byte 0x02037280 +_0807F4FC: .4byte 0x0807F501 + thumb_func_end DoBerryBlending + + thumb_func_start sub_0807F500 +sub_0807F500: @ 0x0807F500 + push {r4, r5, r6, lr} + sub sp, #4 + ldr r1, _0807F51C + ldr r0, [r1] + ldrb r0, [r0] + adds r6, r1, #0 + cmp r0, #6 + bls _0807F512 + b _0807F71A +_0807F512: + lsls r0, r0, #2 + ldr r1, _0807F520 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807F51C: .4byte 0x02031F44 +_0807F520: .4byte 0x0807F524 +_0807F524: @ jump table + .4byte _0807F540 @ case 0 + .4byte _0807F5E4 @ case 1 + .4byte _0807F670 @ case 2 + .4byte _0807F686 @ case 3 + .4byte _0807F69C @ case 4 + .4byte _0807F6C8 @ case 5 + .4byte _0807F6E8 @ case 6 +_0807F540: + movs r0, #0 + movs r1, #0 + bl SetGpuReg + bl ResetSpriteData + bl FreeAllSpritePalettes + movs r0, #0 + bl SetVBlankCallback + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _0807F5D8 + movs r0, #1 + movs r2, #3 + bl InitBgsFromTemplates + ldr r4, _0807F5DC + ldr r1, [r4] + movs r0, #0xda + lsls r0, r0, #1 + adds r1, r1, r0 + movs r0, #1 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, _0807F5E0 + adds r1, r1, r0 + movs r0, #2 + bl SetBgTilemapBuffer + movs r0, #0 + movs r1, #1 + movs r2, #0xd0 + bl LoadUserWindowBorderGfx + movs r0, #0 + movs r1, #0x14 + movs r2, #0xf0 + bl LoadMessageBoxGfx + bl InitBerryBlenderWindows + ldr r1, [r4] + ldrb r0, [r1] + adds r0, #1 + movs r2, #0 + strb r0, [r1] + ldr r3, [r4] + movs r1, #0x8c + lsls r1, r1, #1 + adds r0, r3, r1 + movs r1, #0 + strh r2, [r0] + movs r4, #0x8b + lsls r4, r4, #1 + adds r0, r3, r4 + strh r2, [r0] + movs r0, #0x8d + lsls r0, r0, #1 + adds r4, r3, r0 + movs r0, #0x50 + strh r0, [r4] + movs r4, #0x8e + lsls r4, r4, #1 + adds r0, r3, r4 + strh r2, [r0] + adds r4, #2 + adds r0, r3, r4 + strh r2, [r0] + strb r1, [r3, #1] + bl sub_08082744 + b _0807F71A + .align 2, 0 +_0807F5D8: .4byte 0x0830F864 +_0807F5DC: .4byte 0x02031F44 +_0807F5E0: .4byte 0x000009B4 +_0807F5E4: + bl LoadBerryBlenderGfx + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807F5F0 + b _0807F71A +_0807F5F0: + movs r4, #0 + ldr r5, _0807F654 + ldr r6, _0807F658 +_0807F5F6: + ldrb r1, [r5] + ldrb r2, [r5, #1] + ldr r0, _0807F65C + movs r3, #1 + bl CreateSprite + ldr r1, [r6] + adds r1, #0x50 + adds r1, r1, r4 + strb r0, [r1] + ldr r0, [r6] + adds r0, #0x50 + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0807F660 + adds r0, r0, r1 + adds r1, r4, #0 + adds r1, #8 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl StartSpriteAnim + adds r5, #2 + adds r4, #1 + cmp r4, #3 + ble _0807F5F6 + ldr r0, _0807F664 + ldrb r0, [r0] + cmp r0, #0 + beq _0807F64C + ldr r0, _0807F668 + ldrb r0, [r0] + cmp r0, #0 + beq _0807F64C + bl LoadWirelessStatusIndicatorSpriteGfx + movs r0, #0 + movs r1, #0 + bl CreateWirelessStatusIndicatorSprite +_0807F64C: + ldr r0, _0807F66C + bl SetVBlankCallback + b _0807F6D8 + .align 2, 0 +_0807F654: .4byte 0x0830F8B8 +_0807F658: .4byte 0x02031F44 +_0807F65C: .4byte 0x0830F9C8 +_0807F660: .4byte 0x020205AC +_0807F664: .4byte 0x030031C4 +_0807F668: .4byte 0x0300319C +_0807F66C: .4byte 0x0807F19D +_0807F670: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + bl sub_08082744 + b _0807F6D8 +_0807F686: + bl sub_0807F408 + ldr r0, _0807F698 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0807F71A + b _0807F6D8 + .align 2, 0 +_0807F698: .4byte 0x02037C74 +_0807F69C: + ldr r4, [r6] + ldr r0, _0807F6C0 + adds r4, r4, r0 + ldr r5, _0807F6C4 + bl GetPlayerTextSpeedDelay + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl Blender_PrintText + cmp r0, #0 + beq _0807F71A + ldr r1, [r6] + b _0807F6DC + .align 2, 0 +_0807F6C0: .4byte 0x000011B4 +_0807F6C4: .4byte 0x0830F6AE +_0807F6C8: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade +_0807F6D8: + ldr r0, _0807F6E4 + ldr r1, [r0] +_0807F6DC: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0807F71A + .align 2, 0 +_0807F6E4: .4byte 0x02031F44 +_0807F6E8: + ldr r0, _0807F734 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _0807F71A + bl FreeAllWindowBuffers + movs r0, #2 + bl UnsetBgTilemapBuffer + movs r0, #1 + bl UnsetBgTilemapBuffer + movs r0, #0 + bl SetVBlankCallback + ldr r0, _0807F738 + bl sub_081AA968 + ldr r0, _0807F73C + ldr r0, [r0] + strb r4, [r0] +_0807F71A: + bl AnimateSprites + bl BuildOamBuffer + bl RunTextPrinters + bl UpdatePaletteFade + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0807F734: .4byte 0x02037C74 +_0807F738: .4byte 0x0807F9AD +_0807F73C: .4byte 0x02031F44 + thumb_func_end sub_0807F500 + + thumb_func_start sub_0807F740 +sub_0807F740: @ 0x0807F740 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3a] + ldrh r1, [r4, #0x30] + adds r0, r0, r1 + strh r0, [r4, #0x30] + ldrh r1, [r4, #0x32] + ldrh r2, [r4, #0x36] + subs r1, r1, r2 + ldrh r0, [r4, #0x3c] + adds r1, r1, r0 + strh r1, [r4, #0x32] + ldrh r3, [r4, #0x2e] + adds r0, r0, r3 + strh r0, [r4, #0x2e] + subs r2, #1 + strh r2, [r4, #0x36] + lsls r0, r0, #0x10 + lsls r1, r1, #0x10 + cmp r0, r1 + bge _0807F78E + ldrh r0, [r4, #0x34] + subs r0, #1 + strh r0, [r4, #0x36] + strh r0, [r4, #0x34] + ldrh r0, [r4, #0x38] + adds r0, #1 + strh r0, [r4, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + ble _0807F788 + adds r0, r4, #0 + bl DestroySprite + b _0807F78E +_0807F788: + movs r0, #0x74 + bl PlaySE +_0807F78E: + ldrh r0, [r4, #0x30] + strh r0, [r4, #0x20] + ldrh r0, [r4, #0x32] + strh r0, [r4, #0x22] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0807F740 + + thumb_func_start sub_0807F79C +sub_0807F79C: @ 0x0807F79C + push {r4, r5, r6, lr} + ldr r5, [sp, #0x10] + ldr r6, [sp, #0x14] + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + movs r4, #0 + strh r2, [r0, #0x2e] + strh r1, [r0, #0x30] + strh r2, [r0, #0x32] + strh r3, [r0, #0x34] + movs r1, #0xa + strh r1, [r0, #0x36] + strh r4, [r0, #0x38] + strh r5, [r0, #0x3a] + strh r6, [r0, #0x3c] + ldr r1, _0807F7C4 + str r1, [r0, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0807F7C4: .4byte 0x0807F741 + thumb_func_end sub_0807F79C + + thumb_func_start sub_0807F7C8 +sub_0807F7C8: @ 0x0807F7C8 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #8 + adds r6, r1, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r0, r0, #0x18 + movs r1, #0xf6 + lsls r1, r1, #0x17 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + movs r3, #1 + ands r3, r6 + movs r1, #0 + movs r2, #0x50 + bl LoadSpinningBerryPicGfx + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r0, #4 + mov r8, r2 + add r8, r0 + mov r3, r8 + lsls r3, r3, #2 + mov r8, r3 + ldr r0, _0807F844 + add r8, r0 + ldr r5, _0807F848 + lsls r4, r6, #2 + adds r4, r4, r6 + lsls r4, r4, #1 + adds r0, r4, r5 + movs r6, #0 + ldrsh r1, [r0, r6] + adds r0, r5, #2 + adds r0, r4, r0 + movs r3, #0 + ldrsh r2, [r0, r3] + adds r0, r5, #4 + adds r0, r4, r0 + movs r6, #0 + ldrsh r3, [r0, r6] + adds r0, r5, #6 + adds r0, r4, r0 + movs r6, #0 + ldrsh r0, [r0, r6] + str r0, [sp] + adds r5, #8 + adds r4, r4, r5 + movs r5, #0 + ldrsh r0, [r4, r5] + str r0, [sp, #4] + mov r0, r8 + bl sub_0807F79C + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0807F844: .4byte 0x020205AC +_0807F848: .4byte 0x0830FB68 + thumb_func_end sub_0807F7C8 + + thumb_func_start Blender_CopyBerryData +Blender_CopyBerryData: @ 0x0807F84C + push {r4, r5, r6, lr} + adds r6, r0, #0 + lsls r5, r1, #0x10 + lsrs r5, r5, #0x10 + adds r0, r5, #0 + adds r0, #0x7c + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBerryInfo + adds r4, r0, #0 + strh r5, [r6] + adds r0, r6, #2 + adds r1, r4, #0 + bl StringCopy + ldrb r0, [r4, #0x15] + strb r0, [r6, #9] + ldrb r0, [r4, #0x16] + strb r0, [r6, #0xa] + ldrb r0, [r4, #0x17] + strb r0, [r6, #0xb] + ldrb r0, [r4, #0x18] + strb r0, [r6, #0xc] + ldrb r0, [r4, #0x19] + strb r0, [r6, #0xd] + ldrb r0, [r4, #0x1a] + strb r0, [r6, #0xe] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Blender_CopyBerryData + + thumb_func_start Blender_SetPlayerNamesLocal +Blender_SetPlayerNamesLocal: @ 0x0807F88C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #1 + beq _0807F8B4 + cmp r1, #1 + bgt _0807F8A0 + cmp r1, #0 + beq _0807F8AA + b _0807F992 +_0807F8A0: + cmp r1, #2 + beq _0807F90C + cmp r1, #3 + beq _0807F954 + b _0807F992 +_0807F8AA: + ldr r0, _0807F8B0 + strb r1, [r0] + b _0807F992 + .align 2, 0 +_0807F8B0: .4byte 0x03005AF8 +_0807F8B4: + ldr r0, _0807F8E8 + strb r1, [r0] + ldr r0, _0807F8EC + ldr r0, [r0] + adds r0, #0x7c + movs r1, #2 + strb r1, [r0] + ldr r4, _0807F8F0 + ldr r0, _0807F8F4 + ldr r1, [r0] + adds r0, r4, #0 + bl StringCopy + movs r0, #0xd0 + lsls r0, r0, #2 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807F8FC + adds r0, r4, #0 + adds r0, #0x1c + ldr r1, _0807F8F8 + bl StringCopy + b _0807F992 + .align 2, 0 +_0807F8E8: .4byte 0x03005AF8 +_0807F8EC: .4byte 0x02031F44 +_0807F8F0: .4byte 0x020226A8 +_0807F8F4: .4byte 0x03005AF0 +_0807F8F8: .4byte 0x0830F760 +_0807F8FC: + adds r0, r4, #0 + adds r0, #0x1c + ldr r1, _0807F908 + bl StringCopy + b _0807F992 + .align 2, 0 +_0807F908: .4byte 0x0830F74E +_0807F90C: + ldr r0, _0807F940 + strb r1, [r0] + ldr r0, _0807F944 + ldr r0, [r0] + adds r0, #0x7c + movs r1, #3 + strb r1, [r0] + ldr r5, _0807F948 + ldr r0, _0807F94C + ldr r1, [r0] + adds r0, r5, #0 + bl StringCopy + adds r0, r5, #0 + adds r0, #0x1c + ldr r4, _0807F950 + adds r1, r4, #0 + bl StringCopy + adds r5, #0x38 + subs r4, #0xc + adds r0, r5, #0 + adds r1, r4, #0 + bl StringCopy + b _0807F992 + .align 2, 0 +_0807F940: .4byte 0x03005AF8 +_0807F944: .4byte 0x02031F44 +_0807F948: .4byte 0x020226A8 +_0807F94C: .4byte 0x03005AF0 +_0807F950: .4byte 0x0830F766 +_0807F954: + ldr r0, _0807F998 + strb r1, [r0] + ldr r0, _0807F99C + ldr r0, [r0] + adds r0, #0x7c + movs r1, #4 + strb r1, [r0] + ldr r5, _0807F9A0 + ldr r0, _0807F9A4 + ldr r1, [r0] + adds r0, r5, #0 + bl StringCopy + adds r0, r5, #0 + adds r0, #0x1c + ldr r4, _0807F9A8 + adds r1, r4, #0 + bl StringCopy + adds r0, r5, #0 + adds r0, #0x38 + adds r1, r4, #0 + subs r1, #0x18 + bl StringCopy + adds r5, #0x54 + subs r4, #0x12 + adds r0, r5, #0 + adds r1, r4, #0 + bl StringCopy +_0807F992: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0807F998: .4byte 0x03005AF8 +_0807F99C: .4byte 0x02031F44 +_0807F9A0: .4byte 0x020226A8 +_0807F9A4: .4byte 0x03005AF0 +_0807F9A8: .4byte 0x0830F76C + thumb_func_end Blender_SetPlayerNamesLocal + + thumb_func_start sub_0807F9AC +sub_0807F9AC: @ 0x0807F9AC + push {r4, r5, lr} + movs r0, #0 + movs r1, #0 + bl SetGpuReg + ldr r4, _0807FA00 + ldr r0, [r4] + cmp r0, #0 + bne _0807F9C6 + ldr r0, _0807FA04 + bl AllocZeroed + str r0, [r4] +_0807F9C6: + ldr r0, [r4] + movs r1, #0 + strb r1, [r0] + ldr r0, [r4] + movs r2, #0x86 + lsls r2, r2, #1 + adds r0, r0, r2 + str r1, [r0] + movs r2, #0 + ldr r5, _0807FA08 + movs r3, #0 +_0807F9DC: + ldr r0, [r4] + lsls r1, r2, #1 + adds r0, #0x74 + adds r0, r0, r1 + strh r3, [r0] + adds r2, #1 + cmp r2, #3 + ble _0807F9DC + ldrb r0, [r5] + bl Blender_SetPlayerNamesLocal + ldrh r0, [r5] + cmp r0, #0 + bne _0807FA10 + ldr r0, _0807FA0C + bl SetMainCallback2 + b _0807FA16 + .align 2, 0 +_0807FA00: .4byte 0x02031F44 +_0807FA04: .4byte 0x000011DC +_0807FA08: .4byte 0x02037280 +_0807FA0C: .4byte 0x0807FA21 +_0807FA10: + ldr r0, _0807FA1C + bl SetMainCallback2 +_0807FA16: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0807FA1C: .4byte 0x080802F1 + thumb_func_end sub_0807F9AC + + thumb_func_start sub_0807FA20 +sub_0807FA20: @ 0x0807FA20 + push {r4, r5, r6, r7, lr} + sub sp, #4 + ldr r1, _0807FA3C + ldr r0, [r1] + ldrb r0, [r0] + adds r2, r1, #0 + cmp r0, #0x15 + bls _0807FA32 + b _0807FF4E +_0807FA32: + lsls r0, r0, #2 + ldr r1, _0807FA40 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807FA3C: .4byte 0x02031F44 +_0807FA40: .4byte 0x0807FA44 +_0807FA44: @ jump table + .4byte _0807FA9C @ case 0 + .4byte _0807FB08 @ case 1 + .4byte _0807FB28 @ case 2 + .4byte _0807FBA4 @ case 3 + .4byte _0807FBB6 @ case 4 + .4byte _0807FBD0 @ case 5 + .4byte _0807FF4E @ case 6 + .4byte _0807FF4E @ case 7 + .4byte _0807FC00 @ case 8 + .4byte _0807FC50 @ case 9 + .4byte _0807FC74 @ case 10 + .4byte _0807FD0A @ case 11 + .4byte _0807FD64 @ case 12 + .4byte _0807FDDC @ case 13 + .4byte _0807FE10 @ case 14 + .4byte _0807FEA4 @ case 15 + .4byte _0807FED8 @ case 16 + .4byte _0807FF4E @ case 17 + .4byte _0807FF00 @ case 18 + .4byte _0807FEEC @ case 19 + .4byte _0807FEF2 @ case 20 + .4byte _0807FF10 @ case 21 +_0807FA9C: + bl sub_0807FF90 + ldr r1, _0807FAFC + ldr r2, _0807FB00 + adds r0, r2, #0 + strh r0, [r1] + ldr r2, _0807FB04 + ldr r0, [r2] + adds r0, #0x72 + movs r1, #0 + strb r1, [r0] + movs r5, #0 + movs r6, #0 + movs r7, #0x92 + lsls r7, r7, #1 +_0807FABA: + ldr r0, [r2] + lsls r1, r5, #1 + adds r0, #0x64 + adds r0, r0, r1 + strh r6, [r0] + adds r4, r5, #1 + adds r1, r1, r5 + lsls r1, r1, #1 + movs r3, #2 +_0807FACC: + ldr r0, [r2] + adds r0, r0, r7 + adds r0, r0, r1 + strh r6, [r0] + adds r1, #2 + subs r3, #1 + cmp r3, #0 + bge _0807FACC + adds r5, r4, #0 + cmp r5, #3 + ble _0807FABA + ldr r3, _0807FB04 + ldr r4, [r3] + adds r1, r4, #0 + adds r1, #0x70 + movs r2, #0 + movs r0, #0 + strh r0, [r1] + subs r1, #0x22 + strh r0, [r1] + strb r2, [r4, #1] + ldr r1, [r3] + b _0807FF04 + .align 2, 0 +_0807FAFC: .4byte 0x0202267E +_0807FB00: .4byte 0x00004422 +_0807FB04: .4byte 0x02031F44 +_0807FB08: + bl LoadBerryBlenderGfx + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807FB14 + b _0807FF4E +_0807FB14: + ldr r0, _0807FB24 + ldr r1, [r0] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + bl sub_08082744 + b _0807FF4E + .align 2, 0 +_0807FB24: .4byte 0x02031F44 +_0807FB28: + movs r5, #0 + ldr r4, _0807FB8C + ldr r6, _0807FB90 +_0807FB2E: + ldrb r1, [r4] + ldrb r2, [r4, #1] + ldr r0, _0807FB94 + movs r3, #1 + bl CreateSprite + ldr r1, [r6] + adds r1, #0x54 + adds r1, r1, r5 + strb r0, [r1] + ldr r0, [r6] + adds r0, #0x54 + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0807FB98 + adds r0, r0, r1 + adds r1, r5, #0 + adds r1, #8 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl StartSpriteAnim + adds r4, #2 + adds r5, #1 + cmp r5, #3 + ble _0807FB2E + ldr r0, _0807FB9C + ldrb r0, [r0] + cmp r0, #0 + bne _0807FB72 + b _0807FF00 +_0807FB72: + ldr r0, _0807FBA0 + ldrb r0, [r0] + cmp r0, #0 + bne _0807FB7C + b _0807FF00 +_0807FB7C: + bl LoadWirelessStatusIndicatorSpriteGfx + movs r0, #0 + movs r1, #0 + bl CreateWirelessStatusIndicatorSprite + b _0807FF00 + .align 2, 0 +_0807FB8C: .4byte 0x0830F8B8 +_0807FB90: .4byte 0x02031F44 +_0807FB94: .4byte 0x0830F9C8 +_0807FB98: .4byte 0x020205AC +_0807FB9C: .4byte 0x030031C4 +_0807FBA0: .4byte 0x0300319C +_0807FBA4: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + b _0807FF00 +_0807FBB6: + bl sub_0807F408 + ldr r0, _0807FBCC + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807FBC8 + b _0807FF4E +_0807FBC8: + b _0807FF00 + .align 2, 0 +_0807FBCC: .4byte 0x02037C74 +_0807FBD0: + ldr r4, _0807FBF4 + ldr r0, [r4] + ldr r3, _0807FBF8 + adds r0, r0, r3 + ldr r1, _0807FBFC + movs r2, #0 + bl Blender_PrintText + ldr r1, [r4] + movs r2, #0 + movs r0, #8 + strb r0, [r1] + ldr r0, [r4] + movs r1, #0x84 + lsls r1, r1, #1 + adds r0, r0, r1 + str r2, [r0] + b _0807FF4E + .align 2, 0 +_0807FBF4: .4byte 0x02031F44 +_0807FBF8: .4byte 0x000011B4 +_0807FBFC: .4byte 0x0830F78E +_0807FC00: + ldr r4, _0807FC44 + ldr r1, [r4] + ldrb r0, [r1] + adds r0, #1 + movs r6, #0 + strb r0, [r1] + ldr r0, [r4] + movs r2, #0x8a + lsls r2, r2, #1 + adds r0, r0, r2 + strb r6, [r0] + ldr r0, [r4] + movs r5, #0xac + lsls r5, r5, #1 + adds r0, r0, r5 + ldr r1, _0807FC48 + ldrh r1, [r1] + bl Blender_CopyBerryData + ldr r0, _0807FC4C + ldr r1, [r4] + adds r1, r1, r5 + movs r2, #0x10 + bl memcpy + bl sub_0800A8D4 + ldr r0, [r4] + movs r3, #0x84 + lsls r3, r3, #1 + adds r0, r0, r3 + str r6, [r0] + b _0807FF4E + .align 2, 0 +_0807FC44: .4byte 0x02031F44 +_0807FC48: .4byte 0x0203CB48 +_0807FC4C: .4byte 0x0202257C +_0807FC50: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807FC5C + b _0807FF4E +_0807FC5C: + bl ResetBlockReceivedFlags + bl GetMultiplayerId + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0807FC6C + b _0807FF00 +_0807FC6C: + movs r0, #4 + bl sub_0800A09C + b _0807FF00 +_0807FC74: + ldr r6, _0807FCB0 + ldr r1, [r6] + movs r0, #0x84 + lsls r0, r0, #1 + adds r1, r1, r0 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + cmp r0, #0x14 + bgt _0807FC8A + b _0807FF4E +_0807FC8A: + movs r0, #4 + movs r1, #1 + bl ClearDialogWindowAndFrameToTransparent + bl GetBlockReceivedStatus + adds r4, r0, #0 + bl sub_0800A59C + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + beq _0807FCA6 + b _0807FF4E +_0807FCA6: + movs r5, #0 + adds r7, r6, #0 + movs r6, #0xac + lsls r6, r6, #1 + b _0807FCDC + .align 2, 0 +_0807FCB0: .4byte 0x02031F44 +_0807FCB4: + ldr r0, [r7] + lsls r4, r5, #4 + adds r0, r4, r0 + adds r0, r0, r6 + lsls r1, r5, #8 + ldr r2, _0807FCF0 + adds r1, r1, r2 + movs r2, #0x10 + bl memcpy + ldr r0, [r7] + lsls r2, r5, #1 + adds r1, r0, #0 + adds r1, #0x74 + adds r1, r1, r2 + adds r0, r0, r4 + adds r0, r0, r6 + ldrh r0, [r0] + strh r0, [r1] + adds r5, #1 +_0807FCDC: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r5, r0 + blt _0807FCB4 + bl ResetBlockReceivedFlags + b _0807FF00 + .align 2, 0 +_0807FCF0: .4byte 0x0202207C +_0807FCF4: + ldrb r1, [r4] + lsls r1, r1, #1 + adds r0, r2, #0 + adds r0, #0x74 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + bl sub_0807F7C8 + b _0807FD3E +_0807FD0A: + bl GetLinkPlayerCount + ldr r2, _0807FD5C + ldr r1, [r2] + adds r1, #0x7c + strb r0, [r1] + movs r5, #0 + ldr r2, [r2] + movs r1, #0x8a + lsls r1, r1, #1 + adds r4, r2, r1 + ldr r1, _0807FD60 + adds r0, r2, #0 + adds r0, #0x7c + ldrb r0, [r0] + subs r0, #2 + lsls r0, r0, #2 + ldrb r3, [r4] + adds r0, r0, r1 +_0807FD30: + ldrb r1, [r0] + cmp r3, r1 + beq _0807FCF4 + adds r0, #1 + adds r5, #1 + cmp r5, #3 + ble _0807FD30 +_0807FD3E: + ldr r3, _0807FD5C + ldr r1, [r3] + movs r0, #0x84 + lsls r0, r0, #1 + adds r2, r1, r0 + movs r0, #0 + str r0, [r2] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r1, [r3] + movs r2, #0x8a + lsls r2, r2, #1 + adds r1, r1, r2 + b _0807FF04 + .align 2, 0 +_0807FD5C: .4byte 0x02031F44 +_0807FD60: .4byte 0x0830F8C0 +_0807FD64: + ldr r3, [r2] + movs r0, #0x84 + lsls r0, r0, #1 + adds r1, r3, r0 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + cmp r0, #0x3c + bgt _0807FD78 + b _0807FF4E +_0807FD78: + movs r1, #0x8a + lsls r1, r1, #1 + adds r0, r3, r1 + adds r1, r3, #0 + adds r1, #0x7c + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + blo _0807FDC0 + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + ldr r2, [r2] + ldr r3, _0807FDB4 + ldr r1, _0807FDB8 + adds r0, r2, #0 + adds r0, #0x7c + ldrb r0, [r0] + subs r0, #2 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r3 + ldr r3, _0807FDBC + adds r1, r3, #0 + ldrh r0, [r0] + adds r1, r1, r0 + adds r2, #0x4a + strh r1, [r2] + b _0807FDC6 + .align 2, 0 +_0807FDB4: .4byte 0x0830F8CC +_0807FDB8: .4byte 0x0830F8D4 +_0807FDBC: .4byte 0xFFFFA800 +_0807FDC0: + ldrb r0, [r3] + subs r0, #1 + strb r0, [r3] +_0807FDC6: + ldr r0, _0807FDD8 + ldr r0, [r0] + movs r1, #0x84 + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #0 + str r1, [r0] + b _0807FF4E + .align 2, 0 +_0807FDD8: .4byte 0x02031F44 +_0807FDDC: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807FDE8 + b _0807FF4E +_0807FDE8: + ldr r2, _0807FE0C + ldr r1, [r2] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r0, [r2] + movs r2, #0xa0 + lsls r2, r2, #1 + adds r0, r0, r2 + bl sub_080826D0 + movs r0, #0x2b + bl PlaySE + movs r0, #2 + bl ShowBg + b _0807FF4E + .align 2, 0 +_0807FE0C: .4byte 0x02031F44 +_0807FE10: + movs r1, #0x80 + lsls r1, r1, #3 + movs r0, #0 + bl SetGpuRegBits + ldr r4, _0807FE98 + ldr r2, [r4] + adds r1, r2, #0 + adds r1, #0x4a + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + movs r0, #0x8d + lsls r0, r0, #1 + adds r1, r2, r0 + ldrh r0, [r1] + adds r0, #4 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xff + bls _0807FE94 + movs r0, #0xc + movs r1, #2 + bl SetGpuRegBits + ldr r1, [r4] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r3, [r4] + movs r2, #0x8d + lsls r2, r2, #1 + adds r1, r3, r2 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1] + ldr r2, _0807FE9C + ldr r1, _0807FEA0 + adds r0, r3, #0 + adds r0, #0x7c + ldrb r0, [r0] + subs r0, #2 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + adds r1, r3, #0 + adds r1, #0x4a + strh r0, [r1] + movs r0, #0x84 + lsls r0, r0, #1 + adds r1, r3, r0 + movs r0, #0 + str r0, [r1] + movs r0, #0x34 + bl PlaySE + bl sub_08080154 + bl Blender_PrintPlayerNames +_0807FE94: + ldr r0, [r4] + b _0807FEC6 + .align 2, 0 +_0807FE98: .4byte 0x02031F44 +_0807FE9C: .4byte 0x0830F8CC +_0807FEA0: .4byte 0x0830F8D4 +_0807FEA4: + bl sub_08082D9C + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0807FEC2 + ldr r0, _0807FED4 + ldr r1, [r0] + movs r3, #0x84 + lsls r3, r3, #1 + adds r2, r1, r3 + movs r0, #0 + str r0, [r2] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0807FEC2: + ldr r0, _0807FED4 + ldr r0, [r0] +_0807FEC6: + movs r1, #0xa0 + lsls r1, r1, #1 + adds r0, r0, r1 + bl sub_080826D0 + b _0807FF4E + .align 2, 0 +_0807FED4: .4byte 0x02031F44 +_0807FED8: + ldr r0, _0807FEE8 + movs r2, #0x10 + rsbs r2, r2, #0 + movs r1, #0x78 + movs r3, #3 + bl CreateSprite + b _0807FF00 + .align 2, 0 +_0807FEE8: .4byte 0x0830FB1C +_0807FEEC: + bl sub_0800A8D4 + b _0807FF00 +_0807FEF2: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0807FF4E + bl sub_08009FDC +_0807FF00: + ldr r0, _0807FF0C + ldr r1, [r0] +_0807FF04: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0807FF4E + .align 2, 0 +_0807FF0C: .4byte 0x02031F44 +_0807FF10: + ldr r5, _0807FF84 + ldr r3, [r5] + adds r1, r3, #0 + adds r1, #0x4c + movs r2, #0 + movs r0, #0x80 + strh r0, [r1] + movs r1, #0x82 + lsls r1, r1, #1 + adds r0, r3, r1 + str r2, [r0] + ldr r0, _0807FF88 + bl SetMainCallback2 + bl GetCurrentMapMusic + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _0807FF8C + cmp r0, r4 + beq _0807FF48 + bl GetCurrentMapMusic + ldr r1, [r5] + movs r2, #0xaa + lsls r2, r2, #1 + adds r1, r1, r2 + strh r0, [r1] +_0807FF48: + adds r0, r4, #0 + bl PlayBGM +_0807FF4E: + ldr r0, _0807FF84 + ldr r1, [r0] + movs r3, #0x8e + lsls r3, r3, #1 + adds r0, r1, r3 + movs r2, #0 + ldrsh r0, [r0, r2] + adds r3, #2 + adds r1, r1, r3 + movs r2, #0 + ldrsh r1, [r1, r2] + bl Blender_DummiedOutFunc + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl RunTextPrinters + bl UpdatePaletteFade + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0807FF84: .4byte 0x02031F44 +_0807FF88: .4byte 0x080812B5 +_0807FF8C: .4byte 0x00000193 + thumb_func_end sub_0807FA20 + + thumb_func_start sub_0807FF90 +sub_0807FF90: @ 0x0807FF90 + push {r4, lr} + movs r0, #0 + movs r1, #0 + bl SetGpuReg + bl ResetSpriteData + bl FreeAllSpritePalettes + bl ResetTasks + ldr r0, _0808001C + bl SetVBlankCallback + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _08080020 + movs r0, #1 + movs r2, #3 + bl InitBgsFromTemplates + ldr r4, _08080024 + ldr r1, [r4] + movs r0, #0xda + lsls r0, r0, #1 + adds r1, r1, r0 + movs r0, #1 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r3, _08080028 + adds r1, r1, r3 + movs r0, #2 + bl SetBgTilemapBuffer + movs r0, #0 + movs r1, #1 + movs r2, #0xd0 + bl LoadUserWindowBorderGfx + movs r0, #0 + movs r1, #0x14 + movs r2, #0xf0 + bl LoadMessageBoxGfx + bl InitBerryBlenderWindows + ldr r2, [r4] + adds r0, r2, #0 + adds r0, #0x44 + movs r1, #0 + strh r1, [r0] + adds r0, #8 + strh r1, [r0] + subs r0, #2 + strh r1, [r0] + adds r0, #4 + strh r1, [r0] + movs r3, #0x8e + lsls r3, r3, #1 + adds r0, r2, r3 + strh r1, [r0] + adds r3, #2 + adds r0, r2, r3 + strh r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808001C: .4byte 0x0807F19D +_08080020: .4byte 0x0830F864 +_08080024: .4byte 0x02031F44 +_08080028: .4byte 0x000009B4 + thumb_func_end sub_0807FF90 + + thumb_func_start sub_0808002C +sub_0808002C: @ 0x0808002C + push {lr} + lsls r0, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r0, r0, #0x18 + adds r2, r0, #0 + adds r2, #0x18 + ldr r0, _08080068 + ldr r0, [r0] + lsrs r1, r1, #0x17 + adds r0, #0x96 + adds r0, r0, r1 + ldrb r0, [r0] + ldr r1, _0808006C + adds r0, r0, r1 + ldrb r1, [r0] + cmp r2, r1 + blo _08080074 + adds r0, r1, #0 + adds r0, #0x30 + cmp r2, r0 + bhs _08080074 + subs r0, #0x1c + cmp r2, r0 + blo _08080070 + adds r0, #8 + cmp r2, r0 + bhs _08080070 + movs r0, #2 + b _08080076 + .align 2, 0 +_08080068: .4byte 0x02031F44 +_0808006C: .4byte 0x0830F8D7 +_08080070: + movs r0, #1 + b _08080076 +_08080074: + movs r0, #0 +_08080076: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0808002C + + thumb_func_start Blender_SetOpponentsBerryData +Blender_SetOpponentsBerryData: @ 0x0808007C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r6, #0 + cmp r5, #0xaf + bne _080800B4 + movs r4, #0 + subs r7, r1, #1 + adds r2, #9 +_08080098: + adds r0, r2, r6 + adds r1, r2, r4 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _080800A6 + adds r6, r4, #0 +_080800A6: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #4 + bls _08080098 + adds r0, r6, #5 + b _080800CC +_080800B4: + adds r0, r5, #0 + subs r0, #0x85 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + subs r7, r1, #1 + cmp r6, #4 + bls _080800D0 + adds r0, r6, #0 + movs r1, #5 + bl __umodsi3 + adds r0, #5 +_080800CC: + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 +_080800D0: + movs r4, #0 + cmp r4, r7 + bge _0808013C + ldr r0, _08080148 + mov sb, r0 + adds r0, r5, #0 + subs r0, #0xa3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 +_080800E4: + lsls r0, r6, #1 + adds r0, r0, r6 + adds r0, r4, r0 + add r0, sb + ldrb r5, [r0] + movs r0, #0xd0 + lsls r0, r0, #2 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08080122 + ldr r0, _0808014C + ldrh r0, [r0] + cmp r0, #1 + bne _08080122 + adds r0, r6, #0 + movs r1, #5 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r0, _08080150 + adds r0, r6, r0 + ldrb r5, [r0] + mov r0, r8 + cmp r0, #4 + bhi _08080122 + subs r0, r5, #5 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_08080122: + adds r4, #1 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + adds r1, r5, #0 + adds r1, #0x85 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl Blender_SetParticipantBerryData + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + cmp r4, r7 + blt _080800E4 +_0808013C: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08080148: .4byte 0x0830FB90 +_0808014C: .4byte 0x02037280 +_08080150: .4byte 0x0830FBAE + thumb_func_end Blender_SetOpponentsBerryData + + thumb_func_start sub_08080154 +sub_08080154: @ 0x08080154 + push {r4, r5, r6, r7, lr} + movs r4, #0 + ldr r7, _080801BC + movs r6, #0xff + ldr r5, _080801C0 +_0808015E: + ldr r3, [r7] + lsls r2, r4, #1 + adds r0, r3, #0 + adds r0, #0x96 + adds r0, r0, r2 + strh r6, [r0] + adds r1, r3, #0 + adds r1, #0x8e + adds r1, r1, r2 + adds r0, r3, #0 + adds r0, #0x7c + ldrb r0, [r0] + subs r0, #2 + lsls r0, r0, #2 + adds r0, r4, r0 + adds r0, r0, r5 + ldrb r0, [r0] + strh r0, [r1] + adds r4, #1 + cmp r4, #3 + ble _0808015E + movs r3, #0 + ldr r7, _080801BC +_0808018C: + movs r4, #0 + adds r6, r3, #1 + lsls r5, r3, #1 +_08080192: + ldr r2, [r7] + lsls r0, r4, #1 + adds r1, r2, #0 + adds r1, #0x8e + adds r1, r1, r0 + ldrh r0, [r1] + cmp r0, r3 + bne _080801AA + adds r0, r2, #0 + adds r0, #0x96 + adds r0, r0, r5 + strh r4, [r0] +_080801AA: + adds r4, #1 + cmp r4, #3 + ble _08080192 + adds r3, r6, #0 + cmp r3, #3 + ble _0808018C + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080801BC: .4byte 0x02031F44 +_080801C0: .4byte 0x0830F8C0 + thumb_func_end sub_08080154 + + thumb_func_start Blender_PrintPlayerNames +Blender_PrintPlayerNames: @ 0x080801C4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + movs r0, #0 + str r0, [sp, #0x1c] + ldr r0, _0808029C + ldrb r0, [r0] + cmp r0, #0 + beq _080801E6 + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x1c] +_080801E6: + movs r7, #0 + ldr r6, _080802A0 + ldr r1, _080802A4 + mov sl, r1 + movs r2, #0 + mov r8, r2 +_080801F2: + ldr r2, [r6] + lsls r4, r7, #1 + adds r0, r2, #0 + adds r0, #0x8e + adds r3, r0, r4 + ldrh r0, [r3] + cmp r0, #0xff + beq _080802D2 + adds r1, r2, #0 + adds r1, #0x50 + ldrh r3, [r3] + adds r1, r1, r3 + adds r0, r2, #0 + adds r0, #0x54 + adds r0, r0, r7 + ldrb r0, [r0] + movs r2, #0 + mov sb, r2 + strb r0, [r1] + ldr r0, [r6] + adds r1, r0, #0 + adds r1, #0x8e + adds r1, r1, r4 + adds r0, #0x50 + ldrh r1, [r1] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080802A8 + adds r0, r0, r1 + mov r1, r8 + lsrs r5, r1, #0x18 + adds r1, r5, #0 + bl StartSpriteAnim + add r1, sp, #8 + movs r0, #0xff + strb r0, [r1] + ldr r0, [r6] + adds r0, #0x8e + adds r0, r0, r4 + ldrh r0, [r0] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + add r1, sl + add r0, sp, #8 + bl StringCopy + ldr r0, [r6] + adds r0, #0x8e + adds r0, r0, r4 + ldrh r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + add r0, sl + bl StringLength + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #7 + subs r1, r1, r0 + ldr r0, [r6] + adds r0, #0x8e + adds r0, r0, r4 + mov r4, r8 + ldr r2, [sp, #0x1c] + ldrh r0, [r0] + cmp r2, r0 + bne _080802AC + lsls r2, r1, #0x1a + lsrs r2, r2, #0x18 + mov r0, sb + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + adds r0, r5, #0 + add r1, sp, #8 + movs r3, #1 + bl Blender_AddTextPrinter + b _080802C2 + .align 2, 0 +_0808029C: .4byte 0x030031C4 +_080802A0: .4byte 0x02031F44 +_080802A4: .4byte 0x020226A8 +_080802A8: .4byte 0x020205AC +_080802AC: + lsls r2, r1, #0x1a + lsrs r2, r2, #0x18 + mov r1, sb + str r1, [sp] + movs r0, #1 + str r0, [sp, #4] + adds r0, r5, #0 + add r1, sp, #8 + movs r3, #1 + bl Blender_AddTextPrinter +_080802C2: + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl PutWindowTilemap + adds r0, r4, #0 + movs r1, #3 + bl CopyWindowToVram +_080802D2: + movs r2, #0x80 + lsls r2, r2, #0x11 + add r8, r2 + adds r7, #1 + cmp r7, #3 + ble _080801F2 + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Blender_PrintPlayerNames + + thumb_func_start sub_080802F0 +sub_080802F0: @ 0x080802F0 + push {r4, r5, r6, r7, lr} + sub sp, #4 + ldr r1, _0808030C + ldr r0, [r1] + ldrb r0, [r0] + adds r2, r1, #0 + cmp r0, #0x15 + bls _08080302 + b _080807CA +_08080302: + lsls r0, r0, #2 + ldr r1, _08080310 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808030C: .4byte 0x02031F44 +_08080310: .4byte 0x08080314 +_08080314: @ jump table + .4byte _0808036C @ case 0 + .4byte _08080400 @ case 1 + .4byte _08080420 @ case 2 + .4byte _08080474 @ case 3 + .4byte _080804A0 @ case 4 + .4byte _080807CA @ case 5 + .4byte _080807CA @ case 6 + .4byte _080807CA @ case 7 + .4byte _080804D8 @ case 8 + .4byte _080807CA @ case 9 + .4byte _080807CA @ case 10 + .4byte _08080508 @ case 11 + .4byte _08080558 @ case 12 + .4byte _080805CC @ case 13 + .4byte _080805F8 @ case 14 + .4byte _08080694 @ case 15 + .4byte _080806BC @ case 16 + .4byte _080807CA @ case 17 + .4byte _080806CA @ case 18 + .4byte _080806CA @ case 19 + .4byte _080806CA @ case 20 + .4byte _080806E0 @ case 21 +_0808036C: + bl sub_0800AF94 + bl sub_0807FF90 + ldr r4, _080803F0 + ldrh r1, [r4] + movs r0, #0 + bl Blender_SetParticipantBerryData + ldr r5, _080803F4 + ldr r0, [r5] + movs r6, #0xac + lsls r6, r6, #1 + adds r0, r0, r6 + ldrh r1, [r4] + bl Blender_CopyBerryData + ldrh r0, [r4] + ldr r2, [r5] + adds r1, r2, #0 + adds r1, #0x7c + ldrb r1, [r1] + adds r2, r2, r6 + bl Blender_SetOpponentsBerryData + movs r4, #0 + movs r6, #0 + ldr r0, _080803F8 + mov ip, r0 + movs r7, #0x92 + lsls r7, r7, #1 +_080803AA: + ldr r0, [r5] + lsls r1, r4, #1 + adds r0, #0x64 + adds r0, r0, r1 + strh r6, [r0] + adds r3, r4, #1 + adds r1, r1, r4 + lsls r1, r1, #1 + movs r2, #2 +_080803BC: + ldr r0, [r5] + adds r0, r0, r7 + adds r0, r0, r1 + strh r6, [r0] + adds r1, #2 + subs r2, #1 + cmp r2, #0 + bge _080803BC + adds r4, r3, #0 + cmp r4, #3 + ble _080803AA + ldr r4, _080803F4 + ldr r3, [r4] + adds r1, r3, #0 + adds r1, #0x70 + movs r2, #0 + movs r0, #0 + strh r0, [r1] + strb r2, [r3, #1] + ldr r1, _080803FC + adds r0, r1, #0 + mov r2, ip + strh r0, [r2] + ldr r1, [r4] + b _080806CE + .align 2, 0 +_080803F0: .4byte 0x0203CB48 +_080803F4: .4byte 0x02031F44 +_080803F8: .4byte 0x0202267E +_080803FC: .4byte 0x00004422 +_08080400: + bl LoadBerryBlenderGfx + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808040C + b _080807CA +_0808040C: + ldr r0, _0808041C + ldr r1, [r0] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + bl sub_08082744 + b _080807CA + .align 2, 0 +_0808041C: .4byte 0x02031F44 +_08080420: + movs r4, #0 + ldr r5, _08080464 + ldr r6, _08080468 +_08080426: + ldrb r1, [r5] + ldrb r2, [r5, #1] + ldr r0, _0808046C + movs r3, #1 + bl CreateSprite + ldr r1, [r6] + adds r1, #0x54 + adds r1, r1, r4 + strb r0, [r1] + ldr r0, [r6] + adds r0, #0x54 + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08080470 + adds r0, r0, r1 + adds r1, r4, #0 + adds r1, #8 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl StartSpriteAnim + adds r5, #2 + adds r4, #1 + cmp r4, #3 + ble _08080426 + b _080806CA + .align 2, 0 +_08080464: .4byte 0x0830F8B8 +_08080468: .4byte 0x02031F44 +_0808046C: .4byte 0x0830F9C8 +_08080470: .4byte 0x020205AC +_08080474: + movs r0, #1 + rsbs r0, r0, #0 + movs r4, #0 + str r4, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r2, _0808049C + ldr r1, [r2] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r0, [r2] + movs r3, #0x84 + lsls r3, r3, #1 + adds r0, r0, r3 + str r4, [r0] + b _080807CA + .align 2, 0 +_0808049C: .4byte 0x02031F44 +_080804A0: + ldr r4, _080804D0 + ldr r1, [r4] + movs r5, #0x84 + lsls r5, r5, #1 + adds r1, r1, r5 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + cmp r0, #2 + bne _080804B8 + bl sub_0807F408 +_080804B8: + ldr r0, _080804D4 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080804C6 + b _080807CA +_080804C6: + ldr r1, [r4] + movs r0, #8 + strb r0, [r1] + b _080807CA + .align 2, 0 +_080804D0: .4byte 0x02031F44 +_080804D4: .4byte 0x02037C74 +_080804D8: + ldr r2, _080804F0 + ldr r1, [r2] + movs r3, #0 + movs r0, #0xb + strb r0, [r1] + ldr r0, [r2] + movs r1, #0x8a + lsls r1, r1, #1 + adds r0, r0, r1 + strb r3, [r0] + b _080807CA + .align 2, 0 +_080804F0: .4byte 0x02031F44 +_080804F4: + lsls r1, r1, #1 + adds r0, r3, #0 + adds r0, #0x74 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r1, r4, #0x18 + lsrs r1, r1, #0x18 + bl sub_0807F7C8 + b _08080532 +_08080508: + movs r4, #0 + ldr r2, _08080550 + ldr r0, _08080554 + ldr r3, [r0] + adds r0, r3, #0 + adds r0, #0x7c + ldrb r0, [r0] + subs r0, #2 + lsls r0, r0, #2 + movs r5, #0x8a + lsls r5, r5, #1 + adds r1, r3, r5 + ldrb r1, [r1] + adds r0, r0, r2 +_08080524: + ldrb r2, [r0] + cmp r1, r2 + beq _080804F4 + adds r0, #1 + adds r4, #1 + cmp r4, #3 + ble _08080524 +_08080532: + ldr r3, _08080554 + ldr r1, [r3] + movs r5, #0x84 + lsls r5, r5, #1 + adds r2, r1, r5 + movs r0, #0 + str r0, [r2] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r1, [r3] + movs r0, #0x8a + lsls r0, r0, #1 + adds r1, r1, r0 + b _080806CE + .align 2, 0 +_08080550: .4byte 0x0830F8C0 +_08080554: .4byte 0x02031F44 +_08080558: + ldr r3, [r2] + movs r2, #0x84 + lsls r2, r2, #1 + adds r1, r3, r2 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + cmp r0, #0x3c + bgt _0808056C + b _080807CA +_0808056C: + movs r5, #0x8a + lsls r5, r5, #1 + adds r0, r3, r5 + adds r4, r3, #0 + adds r4, #0x7c + ldrb r0, [r0] + ldrb r1, [r4] + cmp r0, r1 + blo _080805B0 + ldr r2, _080805A4 + ldr r1, _080805A8 + ldrb r0, [r4] + subs r0, #2 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r2 + ldr r2, _080805AC + adds r1, r2, #0 + ldrh r0, [r0] + adds r1, r1, r0 + adds r0, r3, #0 + adds r0, #0x4a + strh r1, [r0] + ldrb r0, [r3] + adds r0, #1 + b _080805B4 + .align 2, 0 +_080805A4: .4byte 0x0830F8CC +_080805A8: .4byte 0x0830F8D4 +_080805AC: .4byte 0xFFFFA800 +_080805B0: + ldrb r0, [r3] + subs r0, #1 +_080805B4: + strb r0, [r3] + ldr r0, _080805C8 + ldr r0, [r0] + movs r3, #0x84 + lsls r3, r3, #1 + adds r0, r0, r3 + movs r1, #0 + str r1, [r0] + b _080807CA + .align 2, 0 +_080805C8: .4byte 0x02031F44 +_080805CC: + ldr r4, _080805F4 + ldr r1, [r4] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + bl sub_08080154 + movs r0, #0x2b + bl PlaySE + ldr r0, [r4] + movs r5, #0xa0 + lsls r5, r5, #1 + adds r0, r0, r5 + bl sub_080826D0 + movs r0, #2 + bl ShowBg + b _080807CA + .align 2, 0 +_080805F4: .4byte 0x02031F44 +_080805F8: + movs r1, #0x80 + lsls r1, r1, #3 + movs r0, #0 + bl SetGpuRegBits + ldr r4, _08080688 + ldr r2, [r4] + adds r1, r2, #0 + adds r1, #0x4a + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r5, [r1] + adds r0, r0, r5 + strh r0, [r1] + movs r0, #0x8d + lsls r0, r0, #1 + adds r1, r2, r0 + ldrh r0, [r1] + adds r0, #4 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xff + bls _08080678 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + ldr r3, [r4] + movs r2, #0x8d + lsls r2, r2, #1 + adds r1, r3, r2 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1] + ldr r2, _0808068C + ldr r1, _08080690 + adds r0, r3, #0 + adds r0, #0x7c + ldrb r0, [r0] + subs r0, #2 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r1, [r0] + adds r0, r3, #0 + adds r0, #0x4a + strh r1, [r0] + movs r0, #0xc + movs r1, #2 + bl SetGpuRegBits + ldr r0, [r4] + movs r3, #0x84 + lsls r3, r3, #1 + adds r0, r0, r3 + movs r1, #0 + str r1, [r0] + movs r0, #0x34 + bl PlaySE + bl Blender_PrintPlayerNames +_08080678: + ldr r0, [r4] + movs r5, #0xa0 + lsls r5, r5, #1 + adds r0, r0, r5 + bl sub_080826D0 + b _080807CA + .align 2, 0 +_08080688: .4byte 0x02031F44 +_0808068C: .4byte 0x0830F8CC +_08080690: .4byte 0x0830F8D4 +_08080694: + bl sub_08082D9C + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080806A8 + ldr r0, _080806B8 + ldr r1, [r0] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_080806A8: + ldr r0, _080806B8 + ldr r0, [r0] + movs r1, #0xa0 + lsls r1, r1, #1 + adds r0, r0, r1 + bl sub_080826D0 + b _080807CA + .align 2, 0 +_080806B8: .4byte 0x02031F44 +_080806BC: + ldr r0, _080806D8 + movs r2, #0x10 + rsbs r2, r2, #0 + movs r1, #0x78 + movs r3, #3 + bl CreateSprite +_080806CA: + ldr r0, _080806DC + ldr r1, [r0] +_080806CE: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080807CA + .align 2, 0 +_080806D8: .4byte 0x0830FB1C +_080806DC: .4byte 0x02031F44 +_080806E0: + bl sub_08080814 + ldr r5, _08080738 + ldr r4, [r5] + adds r1, r4, #0 + adds r1, #0x4c + movs r3, #0 + movs r2, #0 + movs r0, #0x80 + strh r0, [r1] + movs r1, #0x82 + lsls r1, r1, #1 + adds r0, r4, r1 + str r2, [r0] + ldr r2, _0808073C + adds r0, r4, r2 + strb r3, [r0] + ldr r0, [r5] + adds r0, #0x72 + strb r3, [r0] + ldr r0, _08080740 + bl SetMainCallback2 + ldr r0, _08080744 + ldrh r0, [r0] + cmp r0, #1 + bne _08080760 + movs r0, #0xd0 + lsls r0, r0, #2 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808074C + ldr r0, _08080748 + movs r1, #0xa + bl CreateTask + ldr r1, [r5] + movs r3, #0x90 + lsls r3, r3, #1 + adds r1, r1, r3 + b _0808075E + .align 2, 0 +_08080738: .4byte 0x02031F44 +_0808073C: .4byte 0x00000123 +_08080740: .4byte 0x080812B5 +_08080744: .4byte 0x02037280 +_08080748: .4byte 0x08080C41 +_0808074C: + ldr r0, _08080804 + ldr r0, [r0] + movs r1, #0xa + bl CreateTask + ldr r1, [r5] + movs r5, #0x90 + lsls r5, r5, #1 + adds r1, r1, r5 +_0808075E: + strb r0, [r1] +_08080760: + ldr r1, _08080808 + ldrh r0, [r1] + cmp r0, #1 + bls _0808079C + movs r4, #0 + ldrh r1, [r1] + cmp r4, r1 + bge _0808079C + movs r5, #0xa0 + lsls r5, r5, #0x14 + ldr r6, _08080804 +_08080776: + ldm r6!, {r0} + lsrs r1, r5, #0x18 + bl CreateTask + ldr r1, _0808080C + ldr r1, [r1] + movs r2, #0x90 + lsls r2, r2, #1 + adds r1, r1, r2 + adds r1, r1, r4 + strb r0, [r1] + movs r3, #0x80 + lsls r3, r3, #0x11 + adds r5, r5, r3 + adds r4, #1 + ldr r0, _08080808 + ldrh r0, [r0] + cmp r4, r0 + blt _08080776 +_0808079C: + bl GetCurrentMapMusic + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _08080810 + cmp r0, r4 + beq _080807BA + bl GetCurrentMapMusic + ldr r1, _0808080C + ldr r1, [r1] + movs r5, #0xaa + lsls r5, r5, #1 + adds r1, r1, r5 + strh r0, [r1] +_080807BA: + adds r0, r4, #0 + bl PlayBGM + movs r0, #0x35 + bl PlaySE + bl Blender_ControlHitPitch +_080807CA: + ldr r0, _0808080C + ldr r1, [r0] + movs r2, #0x8e + lsls r2, r2, #1 + adds r0, r1, r2 + movs r3, #0 + ldrsh r0, [r0, r3] + movs r5, #0x8f + lsls r5, r5, #1 + adds r1, r1, r5 + movs r2, #0 + ldrsh r1, [r1, r2] + bl Blender_DummiedOutFunc + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl RunTextPrinters + bl UpdatePaletteFade + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08080804: .4byte 0x0830F8DC +_08080808: .4byte 0x02037280 +_0808080C: .4byte 0x02031F44 +_08080810: .4byte 0x00000193 + thumb_func_end sub_080802F0 + + thumb_func_start sub_08080814 +sub_08080814: @ 0x08080814 + push {lr} + ldr r3, _08080834 + movs r0, #0 + ldr r1, _08080838 + movs r2, #3 +_0808081E: + strh r0, [r3] + strh r0, [r3, #4] + strh r0, [r1] + strh r0, [r1, #4] + adds r1, #0x10 + subs r2, #1 + cmp r2, #0 + bge _0808081E + pop {r0} + bx r0 + .align 2, 0 +_08080834: .4byte 0x030031B0 +_08080838: .4byte 0x03003130 + thumb_func_end sub_08080814 + + thumb_func_start sub_0808083C +sub_0808083C: @ 0x0808083C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r1, _0808087C + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #3 + adds r2, r0, r1 + ldrh r0, [r2, #8] + adds r0, #1 + strh r0, [r2, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r4, #0xa + ldrsh r1, [r2, r4] + cmp r0, r1 + ble _08080874 + ldr r0, _08080880 + movs r4, #0xc + ldrsh r1, [r2, r4] + lsls r1, r1, #4 + adds r0, #4 + adds r1, r1, r0 + ldr r0, _08080884 + strh r0, [r1] + adds r0, r3, #0 + bl DestroyTask +_08080874: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808087C: .4byte 0x03005B60 +_08080880: .4byte 0x03003130 +_08080884: .4byte 0x00002345 + thumb_func_end sub_0808083C + + thumb_func_start sub_08080888 +sub_08080888: @ 0x08080888 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _080808B8 + movs r1, #0x50 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080808BC + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #0xa] + strh r5, [r1, #0xc] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080808B8: .4byte 0x0808083D +_080808BC: .4byte 0x03005B60 + thumb_func_end sub_08080888 + + thumb_func_start sub_080808C0 +sub_080808C0: @ 0x080808C0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r4, _0808092C + ldr r0, [r4] + adds r0, #0x4a + ldrh r0, [r0] + movs r1, #1 + bl sub_0808002C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + beq _080808DE + b _080809D4 +_080808DE: + ldr r2, _08080930 + lsls r1, r5, #2 + adds r0, r1, r5 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r2, #8 + ldrsh r0, [r0, r2] + adds r6, r1, #0 + cmp r0, #0 + beq _080808F4 + b _080809E2 +_080808F4: + ldr r0, [r4] + ldr r1, _08080934 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080809B6 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _08080938 + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r3, r1, #0 + ldr r0, [r4] + adds r0, #0x4c + movs r4, #0 + ldrsh r2, [r0, r4] + ldr r0, _0808093C + cmp r2, r0 + bgt _0808095C + cmp r1, #0x4b + bls _08080948 + ldr r1, _08080940 + ldr r0, _08080944 + b _0808094C + .align 2, 0 +_0808092C: .4byte 0x02031F44 +_08080930: .4byte 0x03005B60 +_08080934: .4byte 0x00000123 +_08080938: .4byte 0x0000028F +_0808093C: .4byte 0x000001F3 +_08080940: .4byte 0x03003130 +_08080944: .4byte 0x00004523 +_08080948: + ldr r1, _08080954 + ldr r0, _08080958 +_0808094C: + strh r0, [r1, #0x14] + ldr r0, _08080958 + b _080809BA + .align 2, 0 +_08080954: .4byte 0x03003130 +_08080958: .4byte 0x00005432 +_0808095C: + ldr r0, _08080978 + cmp r2, r0 + bgt _0808098A + cmp r1, #0x50 + bhi _080809B6 + adds r0, r1, #0 + subs r0, #0x15 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3b + bhi _08080984 + ldr r1, _0808097C + ldr r0, _08080980 + b _080809BA + .align 2, 0 +_08080978: .4byte 0x000005DB +_0808097C: .4byte 0x03003130 +_08080980: .4byte 0x00005432 +_08080984: + cmp r1, #9 + bhi _080809BC + b _080809AC +_0808098A: + cmp r1, #0x5a + bhi _080809B6 + adds r0, r1, #0 + subs r0, #0x47 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x13 + bhi _080809A8 + ldr r1, _080809A0 + ldr r0, _080809A4 + b _080809BA + .align 2, 0 +_080809A0: .4byte 0x03003130 +_080809A4: .4byte 0x00005432 +_080809A8: + cmp r3, #0x1d + bhi _080809BC +_080809AC: + movs r0, #1 + movs r1, #5 + bl sub_08080888 + b _080809BC +_080809B6: + ldr r1, _080809C8 + ldr r0, _080809CC +_080809BA: + strh r0, [r1, #0x14] +_080809BC: + ldr r0, _080809D0 + adds r1, r6, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #1 + b _080809E0 + .align 2, 0 +_080809C8: .4byte 0x03003130 +_080809CC: .4byte 0x00004523 +_080809D0: .4byte 0x03005B60 +_080809D4: + ldr r0, _080809E8 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0 +_080809E0: + strh r0, [r1, #8] +_080809E2: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080809E8: .4byte 0x03005B60 + thumb_func_end sub_080808C0 + + thumb_func_start sub_080809EC +sub_080809EC: @ 0x080809EC + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r6, _08080A70 + ldr r3, [r6] + adds r0, r3, #0 + adds r0, #0x4a + ldrh r0, [r0] + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r0, r1 + ldr r1, _08080A74 + ands r0, r1 + adds r1, r3, #0 + adds r1, #0x9a + ldrb r1, [r1] + lsrs r2, r0, #8 + ldr r0, _08080A78 + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r1, #0 + adds r0, #0x14 + cmp r2, r0 + bls _08080AFC + adds r0, #0x14 + cmp r2, r0 + bhs _08080AFC + ldr r2, _08080A7C + lsls r1, r4, #2 + adds r0, r1, r4 + lsls r0, r0, #3 + adds r2, r0, r2 + movs r5, #8 + ldrsh r0, [r2, r5] + adds r5, r1, #0 + cmp r0, #0 + bne _08080B0A + ldr r1, _08080A80 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _08080AE8 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _08080A84 + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r3, r2, #0 + ldr r0, [r6] + adds r0, #0x4c + movs r6, #0 + ldrsh r1, [r0, r6] + ldr r0, _08080A88 + cmp r1, r0 + bgt _08080AA4 + cmp r2, #0x42 + bls _08080A94 + ldr r1, _08080A8C + ldr r0, _08080A90 + strh r0, [r1, #0x24] + b _08080ACC + .align 2, 0 +_08080A70: .4byte 0x02031F44 +_08080A74: .4byte 0x0000FFFF +_08080A78: .4byte 0x0830F8D7 +_08080A7C: .4byte 0x03005B60 +_08080A80: .4byte 0x00000123 +_08080A84: .4byte 0x0000028F +_08080A88: .4byte 0x000001F3 +_08080A8C: .4byte 0x03003130 +_08080A90: .4byte 0x00004523 +_08080A94: + ldr r1, _08080A9C + ldr r0, _08080AA0 + strh r0, [r1, #0x24] + b _08080ACC + .align 2, 0 +_08080A9C: .4byte 0x03003130 +_08080AA0: .4byte 0x00005432 +_08080AA4: + cmp r2, #0x41 + bls _08080AAE + ldr r1, _08080AD8 + ldr r0, _08080ADC + strh r0, [r1, #0x24] +_08080AAE: + adds r0, r2, #0 + subs r0, #0x29 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x18 + bhi _08080AC0 + ldr r1, _08080AD8 + ldr r0, _08080AE0 + strh r0, [r1, #0x24] +_08080AC0: + cmp r3, #9 + bhi _08080ACC + movs r0, #2 + movs r1, #5 + bl sub_08080888 +_08080ACC: + ldr r0, _08080AE4 + adds r1, r5, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #1 + b _08080B08 + .align 2, 0 +_08080AD8: .4byte 0x03003130 +_08080ADC: .4byte 0x00004523 +_08080AE0: .4byte 0x00005432 +_08080AE4: .4byte 0x03005B60 +_08080AE8: + ldr r0, _08080AF4 + ldr r1, _08080AF8 + strh r1, [r0, #0x24] + movs r0, #1 + strh r0, [r2, #8] + b _08080B0A + .align 2, 0 +_08080AF4: .4byte 0x03003130 +_08080AF8: .4byte 0x00004523 +_08080AFC: + ldr r0, _08080B10 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0 +_08080B08: + strh r0, [r1, #8] +_08080B0A: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08080B10: .4byte 0x03005B60 + thumb_func_end sub_080809EC + + thumb_func_start sub_08080B14 +sub_08080B14: @ 0x08080B14 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r5, _08080B94 + ldr r3, [r5] + adds r0, r3, #0 + adds r0, #0x4a + ldrh r0, [r0] + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r0, r1 + ldr r1, _08080B98 + ands r0, r1 + adds r1, r3, #0 + adds r1, #0x9c + ldrb r1, [r1] + lsrs r2, r0, #8 + ldr r0, _08080B9C + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r1, #0 + adds r0, #0x14 + cmp r2, r0 + bls _08080C28 + adds r0, #0x14 + cmp r2, r0 + bhs _08080C28 + ldr r2, _08080BA0 + lsls r1, r4, #2 + adds r0, r1, r4 + lsls r0, r0, #3 + adds r2, r0, r2 + movs r6, #8 + ldrsh r0, [r2, r6] + adds r6, r1, #0 + cmp r0, #0 + bne _08080C36 + ldr r1, _08080BA4 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _08080C14 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _08080BA8 + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, [r5] + adds r0, #0x4c + movs r3, #0 + ldrsh r1, [r0, r3] + ldr r0, _08080BAC + cmp r1, r0 + bgt _08080BC8 + cmp r2, #0x58 + bls _08080BB8 + ldr r1, _08080BB0 + ldr r0, _08080BB4 + strh r0, [r1, #0x34] + b _08080BFA + .align 2, 0 +_08080B94: .4byte 0x02031F44 +_08080B98: .4byte 0x0000FFFF +_08080B9C: .4byte 0x0830F8D7 +_08080BA0: .4byte 0x03005B60 +_08080BA4: .4byte 0x00000123 +_08080BA8: .4byte 0x0000028F +_08080BAC: .4byte 0x000001F3 +_08080BB0: .4byte 0x03003130 +_08080BB4: .4byte 0x00004523 +_08080BB8: + ldr r1, _08080BC0 + ldr r0, _08080BC4 + strh r0, [r1, #0x34] + b _08080BFA + .align 2, 0 +_08080BC0: .4byte 0x03003130 +_08080BC4: .4byte 0x00005432 +_08080BC8: + cmp r2, #0x3c + bls _08080BDC + ldr r1, _08080BD4 + ldr r0, _08080BD8 + b _08080BEC + .align 2, 0 +_08080BD4: .4byte 0x03003130 +_08080BD8: .4byte 0x00004523 +_08080BDC: + adds r0, r2, #0 + subs r0, #0x38 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _08080BEE + ldr r1, _08080C08 + ldr r0, _08080C0C +_08080BEC: + strh r0, [r1, #0x34] +_08080BEE: + cmp r2, #4 + bhi _08080BFA + movs r0, #3 + movs r1, #5 + bl sub_08080888 +_08080BFA: + ldr r0, _08080C10 + adds r1, r6, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #1 + b _08080C34 + .align 2, 0 +_08080C08: .4byte 0x03003130 +_08080C0C: .4byte 0x00005432 +_08080C10: .4byte 0x03005B60 +_08080C14: + ldr r0, _08080C20 + ldr r1, _08080C24 + strh r1, [r0, #0x34] + movs r0, #1 + strh r0, [r2, #8] + b _08080C36 + .align 2, 0 +_08080C20: .4byte 0x03003130 +_08080C24: .4byte 0x00004523 +_08080C28: + ldr r0, _08080C3C + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0 +_08080C34: + strh r0, [r1, #8] +_08080C36: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08080C3C: .4byte 0x03005B60 + thumb_func_end sub_08080B14 + + thumb_func_start sub_08080C40 +sub_08080C40: @ 0x08080C40 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _08080C7C + ldr r0, [r0] + adds r0, #0x4a + ldrh r0, [r0] + movs r1, #1 + bl sub_0808002C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _08080C8C + ldr r0, _08080C80 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r2, r1, r0 + movs r1, #8 + ldrsh r0, [r2, r1] + cmp r0, #0 + bne _08080C9A + ldr r0, _08080C84 + ldr r1, _08080C88 + strh r1, [r0, #0x14] + movs r0, #1 + strh r0, [r2, #8] + b _08080C9A + .align 2, 0 +_08080C7C: .4byte 0x02031F44 +_08080C80: .4byte 0x03005B60 +_08080C84: .4byte 0x03003130 +_08080C88: .4byte 0x00004523 +_08080C8C: + ldr r0, _08080CA0 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0 + strh r0, [r1, #8] +_08080C9A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08080CA0: .4byte 0x03005B60 + thumb_func_end sub_08080C40 + + thumb_func_start sub_08080CA4 +sub_08080CA4: @ 0x08080CA4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + mov r8, r7 + lsls r1, r1, #0x18 + ldr r0, _08080D18 + ldr r4, _08080D1C + lsrs r1, r1, #0x17 + adds r2, r1, r4 + ldrb r6, [r2] + ldr r5, _08080D20 + adds r2, r1, r5 + movs r3, #0 + ldrsb r3, [r2, r3] + lsls r2, r3, #2 + adds r2, r2, r3 + lsls r2, r2, #1 + subs r6, r6, r2 + adds r4, #1 + adds r4, r1, r4 + ldrb r2, [r4] + adds r5, #1 + adds r1, r1, r5 + movs r3, #0 + ldrsb r3, [r1, r3] + lsls r1, r3, #2 + adds r1, r1, r3 + lsls r1, r1, #1 + subs r2, r2, r1 + adds r1, r6, #0 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r2, r1, #0 + ldr r0, _08080D24 + cmp r7, r0 + bne _08080D30 + lsls r4, r1, #4 + adds r4, r4, r1 + lsls r4, r4, #2 + ldr r5, _08080D28 + adds r0, r4, r5 + movs r1, #2 + bl StartSpriteAnim + adds r5, #0x1c + adds r4, r4, r5 + ldr r0, _08080D2C + str r0, [r4] + movs r0, #0x28 + bl PlaySE + b _08080D74 + .align 2, 0 +_08080D18: .4byte 0x0830FA30 +_08080D1C: .4byte 0x0830F8B8 +_08080D20: .4byte 0x0830F8B0 +_08080D24: .4byte 0x00004523 +_08080D28: .4byte 0x020205AC +_08080D2C: .4byte 0x080829B9 +_08080D30: + ldr r0, _08080D50 + cmp r7, r0 + bne _08080D58 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08080D54 + adds r0, r0, r1 + movs r1, #0 + bl StartSpriteAnim + movs r0, #0x1f + bl PlaySE + b _08080D74 + .align 2, 0 +_08080D50: .4byte 0x00005432 +_08080D54: .4byte 0x020205AC +_08080D58: + ldr r0, _08080D84 + cmp r8, r0 + bne _08080D74 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r1, _08080D88 + adds r0, r0, r1 + movs r1, #1 + bl StartSpriteAnim + movs r0, #0x20 + bl PlaySE +_08080D74: + bl sub_080828A0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08080D84: .4byte 0x00002345 +_08080D88: .4byte 0x020205AC + thumb_func_end sub_08080CA4 + + thumb_func_start sub_08080D8C +sub_08080D8C: @ 0x08080D8C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r5, r4, #0 + bl Blender_ControlHitPitch + ldr r0, _08080DAC + cmp r4, r0 + beq _08080DC0 + cmp r4, r0 + bgt _08080DB4 + ldr r0, _08080DB0 + cmp r4, r0 + beq _08080E90 + b _08080EBC + .align 2, 0 +_08080DAC: .4byte 0x00004523 +_08080DB0: .4byte 0x00002345 +_08080DB4: + ldr r0, _08080DBC + cmp r5, r0 + beq _08080E58 + b _08080EBC + .align 2, 0 +_08080DBC: .4byte 0x00005432 +_08080DC0: + ldr r7, _08080DF0 + ldr r4, [r7] + adds r5, r4, #0 + adds r5, #0x4c + ldrh r6, [r5] + movs r0, #0 + ldrsh r1, [r5, r0] + ldr r0, _08080DF4 + cmp r1, r0 + bgt _08080DFC + ldr r1, _08080DF8 + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0xc0 + lsls r0, r0, #1 + bl __divsi3 + adds r0, r6, r0 + strh r0, [r5] + b _08080EBC + .align 2, 0 +_08080DF0: .4byte 0x02031F44 +_08080DF4: .4byte 0x000005DB +_08080DF8: .4byte 0x0830FBB3 +_08080DFC: + ldr r1, _08080E54 + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x80 + bl __divsi3 + adds r0, r6, r0 + strh r0, [r5] + movs r1, #0x8e + lsls r1, r1, #1 + adds r4, r4, r1 + movs r1, #0 + ldrsh r0, [r5, r1] + movs r1, #0x64 + bl __divsi3 + adds r1, r0, #0 + subs r1, #0xa + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl sub_08082CD8 + ldr r0, [r7] + movs r1, #0x8f + lsls r1, r1, #1 + adds r4, r0, r1 + adds r0, #0x4c + movs r1, #0 + ldrsh r0, [r0, r1] + movs r1, #0x64 + bl __divsi3 + adds r1, r0, #0 + subs r1, #0xa + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl sub_08082CD8 + b _08080EBC + .align 2, 0 +_08080E54: .4byte 0x0830FBB3 +_08080E58: + ldr r0, _08080E84 + ldr r2, [r0] + adds r4, r2, #0 + adds r4, #0x4c + ldrh r5, [r4] + movs r0, #0 + ldrsh r1, [r4, r0] + ldr r0, _08080E88 + cmp r1, r0 + bgt _08080EBC + ldr r1, _08080E8C + adds r0, r2, #0 + adds r0, #0x7c + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x80 + lsls r0, r0, #1 + bl __divsi3 + adds r0, r5, r0 + b _08080EBA + .align 2, 0 +_08080E84: .4byte 0x02031F44 +_08080E88: .4byte 0x000005DB +_08080E8C: .4byte 0x0830FBB3 +_08080E90: + ldr r0, _08080EC4 + ldr r0, [r0] + adds r4, r0, #0 + adds r4, #0x4c + ldr r1, _08080EC8 + adds r0, #0x7c + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x80 + lsls r0, r0, #1 + bl __divsi3 + ldrh r1, [r4] + subs r1, r1, r0 + strh r1, [r4] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #0x7f + bgt _08080EBC + movs r0, #0x80 +_08080EBA: + strh r0, [r4] +_08080EBC: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08080EC4: .4byte 0x02031F44 +_08080EC8: .4byte 0x0830FBB3 + thumb_func_end sub_08080D8C + + thumb_func_start sub_08080ECC +sub_08080ECC: @ 0x08080ECC + push {lr} + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldr r0, _08080EF8 + ldrb r0, [r0] + cmp r0, #0 + beq _08080F00 + ldr r0, _08080EFC + ldrb r0, [r0] + cmp r0, #0 + beq _08080F00 + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r3 + cmp r0, r2 + bne _08080F08 + movs r0, #1 + b _08080F0A + .align 2, 0 +_08080EF8: .4byte 0x030031C4 +_08080EFC: .4byte 0x0300319C +_08080F00: + cmp r3, r1 + bne _08080F08 + movs r0, #1 + b _08080F0A +_08080F08: + movs r0, #0 +_08080F0A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08080ECC + + thumb_func_start sub_08080F10 +sub_08080F10: @ 0x08080F10 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r0, _08080FF0 + ldrh r0, [r0] + cmp r0, #0 + beq _08080F58 + ldr r3, _08080FF4 + ldrh r0, [r3, #4] + ldr r2, _08080FF8 + cmp r0, #0 + beq _08080F38 + movs r1, #0 + strh r0, [r2, #4] + ldr r0, _08080FFC + strh r0, [r2] + strh r1, [r3, #4] +_08080F38: + ldr r0, _08080FF8 + ldr r3, _08080FFC + adds r1, r2, #0 + adds r1, #0x10 + adds r2, r0, #0 + adds r2, #0x14 + movs r7, #2 +_08080F46: + ldrh r0, [r2] + cmp r0, #0 + beq _08080F4E + strh r3, [r1] +_08080F4E: + adds r1, #0x10 + adds r2, #0x10 + subs r7, #1 + cmp r7, #0 + bge _08080F46 +_08080F58: + movs r7, #0 + ldr r1, _08081000 + ldr r0, [r1] + adds r0, #0x7c + ldrb r0, [r0] + cmp r7, r0 + blt _08080F68 + b _08081112 +_08080F68: + ldr r0, _08080FF8 + adds r2, r0, #0 + adds r2, #0x20 + str r2, [sp] + movs r1, #0 + mov sb, r1 + movs r2, #0 + str r2, [sp, #4] + mov r8, r0 + ldr r0, _08081004 + mov sl, r0 +_08080F7E: + mov r1, r8 + ldrh r0, [r1] + ldr r1, _08080FFC + movs r2, #0x88 + lsls r2, r2, #7 + bl sub_08080ECC + cmp r0, #0 + bne _08080F92 + b _080810EE +_08080F92: + ldr r6, _08081000 + ldr r0, [r6] + adds r0, #0x96 + ldr r2, [sp, #4] + adds r0, r0, r2 + ldrh r5, [r0] + mov r0, r8 + ldrh r4, [r0, #4] + ldr r1, _08081008 + cmp r4, r1 + bne _08081010 + adds r0, r1, #0 + bl sub_08080D8C + ldr r0, [r6] + movs r2, #0x8b + lsls r2, r2, #1 + adds r4, r0, r2 + adds r0, #0x4c + movs r1, #0 + ldrsh r0, [r0, r1] + movs r1, #0x37 + bl __divsi3 + ldrh r1, [r4] + adds r1, r1, r0 + strh r1, [r4] + lsls r1, r1, #0x10 + ldr r0, _0808100C + cmp r1, r0 + bls _08080FD6 + movs r0, #0xfa + lsls r0, r0, #2 + strh r0, [r4] +_08080FD6: + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + ldr r0, _08081008 + bl sub_08080CA4 + ldr r1, [r6] + movs r2, #0x92 + lsls r2, r2, #1 + adds r1, r1, r2 + add r1, sb + ldrh r0, [r1] + adds r0, #1 + b _0808107A + .align 2, 0 +_08080FF0: .4byte 0x02037280 +_08080FF4: .4byte 0x030031B0 +_08080FF8: .4byte 0x03003130 +_08080FFC: .4byte 0x00004444 +_08081000: .4byte 0x02031F44 +_08081004: .4byte 0x00005432 +_08081008: .4byte 0x00004523 +_0808100C: .4byte 0x03E70000 +_08081010: + cmp r4, sl + bne _0808104E + mov r0, sl + bl sub_08080D8C + ldr r0, [r6] + movs r1, #0x8b + lsls r1, r1, #1 + adds r4, r0, r1 + adds r0, #0x4c + movs r2, #0 + ldrsh r0, [r0, r2] + movs r1, #0x46 + bl __divsi3 + ldrh r1, [r4] + adds r1, r1, r0 + strh r1, [r4] + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + mov r0, sl + bl sub_08080CA4 + ldr r1, [r6] + movs r0, #0x93 + lsls r0, r0, #1 + adds r1, r1, r0 + add r1, sb + ldrh r0, [r1] + adds r0, #1 + b _0808107A +_0808104E: + ldr r0, _080810C8 + cmp r4, r0 + bne _08081086 + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl sub_08080CA4 + adds r0, r4, #0 + bl sub_08080D8C + ldr r0, [r6] + movs r1, #0x94 + lsls r1, r1, #1 + adds r0, r0, r1 + mov r2, sb + adds r1, r0, r2 + ldrh r2, [r1] + ldr r0, _080810CC + cmp r2, r0 + bhi _0808107C + adds r0, r2, #1 +_0808107A: + strh r0, [r1] +_0808107C: + mov r0, r8 + ldrh r1, [r0, #4] + ldr r0, _080810C8 + cmp r1, r0 + beq _08081094 +_08081086: + ldr r1, [sp] + ldrh r0, [r1] + ldr r2, _080810D0 + cmp r0, r2 + beq _08081094 + cmp r0, sl + bne _080810EE +_08081094: + ldr r0, _080810D4 + ldr r0, [r0] + adds r2, r0, #0 + adds r2, #0x4c + movs r0, #0 + ldrsh r1, [r2, r0] + ldr r0, _080810D8 + cmp r1, r0 + ble _080810E4 + adds r0, r1, #0 + ldr r2, _080810DC + adds r0, r0, r2 + movs r1, #0x14 + bl __divsi3 + adds r1, r0, #0 + movs r0, #0x80 + lsls r0, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, _080810E0 + bl m4aMPlayTempoControl + b _080810EE + .align 2, 0 +_080810C8: .4byte 0x00002345 +_080810CC: .4byte 0x000003E6 +_080810D0: .4byte 0x00004523 +_080810D4: .4byte 0x02031F44 +_080810D8: .4byte 0x000005DC +_080810DC: .4byte 0xFFFFFD12 +_080810E0: .4byte 0x030074D0 +_080810E4: + ldr r0, _08081150 + movs r1, #0x80 + lsls r1, r1, #1 + bl m4aMPlayTempoControl +_080810EE: + ldr r1, [sp] + adds r1, #2 + str r1, [sp] + movs r2, #6 + add sb, r2 + ldr r0, [sp, #4] + adds r0, #2 + str r0, [sp, #4] + movs r1, #0x10 + add r8, r1 + adds r7, #1 + ldr r0, _08081154 + ldr r0, [r0] + adds r0, #0x7c + ldrb r0, [r0] + cmp r7, r0 + bge _08081112 + b _08080F7E +_08081112: + ldr r0, _08081158 + ldrh r0, [r0] + cmp r0, #0 + beq _0808113E + movs r7, #0 + ldr r3, _08081154 + ldr r0, [r3] + adds r0, #0x7c + ldrb r0, [r0] + cmp r7, r0 + bge _0808113E + movs r2, #0 + ldr r1, _0808115C +_0808112C: + strh r2, [r1] + strh r2, [r1, #4] + adds r1, #0x10 + adds r7, #1 + ldr r0, [r3] + adds r0, #0x7c + ldrb r0, [r0] + cmp r7, r0 + blt _0808112C +_0808113E: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08081150: .4byte 0x030074D0 +_08081154: .4byte 0x02031F44 +_08081158: .4byte 0x02037280 +_0808115C: .4byte 0x03003130 + thumb_func_end sub_08080F10 + + thumb_func_start sub_08081160 +sub_08081160: @ 0x08081160 + push {r4, r5, r6, lr} + movs r4, #0 + movs r6, #0 + ldr r0, _080811B0 + ldrb r0, [r0] + cmp r0, #0 + beq _08081176 + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_08081176: + ldr r3, _080811B4 + ldr r1, [r3] + lsls r2, r6, #1 + adds r0, r1, #0 + adds r0, #0x96 + adds r0, r0, r2 + ldrb r5, [r0] + adds r1, #0x63 + ldrb r0, [r1] + cmp r0, #0 + bne _08081248 + ldr r0, _080811B8 + ldr r0, [r0] + ldrb r0, [r0, #0x13] + cmp r0, #2 + bne _080811C4 + ldr r2, _080811BC + ldrh r1, [r2, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080811D2 + ldrh r2, [r2, #0x28] + ldr r1, _080811C0 + adds r0, r1, #0 + ands r0, r2 + cmp r0, r1 + beq _080811D2 + b _080811D6 + .align 2, 0 +_080811B0: .4byte 0x030031C4 +_080811B4: .4byte 0x02031F44 +_080811B8: .4byte 0x03005AF0 +_080811BC: .4byte 0x03002360 +_080811C0: .4byte 0x00000201 +_080811C4: + ldr r0, _08081218 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080811D2 + movs r4, #1 +_080811D2: + cmp r4, #0 + beq _08081248 +_080811D6: + ldr r4, _0808121C + ldr r1, [r4] + lsls r2, r5, #1 + adds r0, r1, #0 + adds r0, #0x8e + adds r0, r0, r2 + adds r1, #0x50 + ldrh r0, [r0] + adds r1, r1, r0 + ldrb r1, [r1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08081220 + adds r0, r0, r1 + adds r1, r5, #4 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl StartSpriteAnim + ldr r0, [r4] + adds r0, #0x4a + ldrh r0, [r0] + adds r1, r6, #0 + bl sub_0808002C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _0808122C + ldr r1, _08081224 + ldr r0, _08081228 + b _08081244 + .align 2, 0 +_08081218: .4byte 0x03002360 +_0808121C: .4byte 0x02031F44 +_08081220: .4byte 0x020205AC +_08081224: .4byte 0x030031B0 +_08081228: .4byte 0x00004523 +_0808122C: + cmp r0, #1 + bne _08081240 + ldr r1, _08081238 + ldr r0, _0808123C + b _08081244 + .align 2, 0 +_08081238: .4byte 0x030031B0 +_0808123C: .4byte 0x00005432 +_08081240: + ldr r1, _080812A0 + ldr r0, _080812A4 +_08081244: + strh r0, [r1, #4] + adds r3, r4, #0 +_08081248: + ldr r1, [r3] + adds r1, #0x72 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + bls _08081276 + ldr r0, [r3] + adds r1, r0, #0 + adds r1, #0x4c + ldrh r2, [r1] + movs r4, #0 + ldrsh r0, [r1, r4] + cmp r0, #0x80 + ble _0808126E + subs r0, r2, #1 + strh r0, [r1] +_0808126E: + ldr r0, [r3] + adds r0, #0x72 + movs r1, #0 + strb r1, [r0] +_08081276: + ldr r0, _080812A8 + ldrb r0, [r0] + cmp r0, #0 + beq _0808129A + ldr r0, _080812AC + ldrh r1, [r0, #0x2e] + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0808129A + ldr r0, [r3] + ldr r1, _080812B0 + adds r2, r0, r1 + ldrb r0, [r2] + movs r1, #1 + eors r0, r1 + strb r0, [r2] +_0808129A: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080812A0: .4byte 0x030031B0 +_080812A4: .4byte 0x00002345 +_080812A8: .4byte 0x02031F75 +_080812AC: .4byte 0x03002360 +_080812B0: .4byte 0x00000123 + thumb_func_end sub_08081160 + + thumb_func_start sub_080812B4 +sub_080812B4: @ 0x080812B4 + push {r4, r5, r6, lr} + bl sub_08082744 + ldr r4, _0808136C + ldr r0, [r4] + movs r1, #0x82 + lsls r1, r1, #1 + adds r2, r0, r1 + ldr r1, [r2] + ldr r0, _08081370 + cmp r1, r0 + bhi _080812D0 + adds r0, r1, #1 + str r0, [r2] +_080812D0: + bl sub_08081160 + ldr r1, [r4] + adds r0, r1, #0 + adds r0, #0x4c + ldrh r0, [r0] + movs r5, #0x8b + lsls r5, r5, #1 + adds r1, r1, r5 + ldrh r1, [r1] + bl SetLinkDebugValues + bl sub_08080F10 + ldr r0, [r4] + adds r0, r0, r5 + ldrh r0, [r0] + movs r6, #0xfa + lsls r6, r6, #2 + adds r1, r6, #0 + bl sub_08082B5C + ldr r0, [r4] + adds r0, #0x4c + ldrh r0, [r0] + bl sub_08082C4C + bl sub_08082D28 + bl sub_080824F0 + ldr r2, [r4] + adds r3, r2, #0 + adds r3, #0x63 + ldrb r0, [r3] + cmp r0, #0 + bne _08081336 + movs r1, #0x8c + lsls r1, r1, #1 + adds r0, r2, r1 + ldrh r1, [r0] + ldr r0, _08081374 + cmp r1, r0 + bls _08081336 + adds r0, r2, r5 + strh r6, [r0] + movs r0, #1 + strb r0, [r3] + ldr r0, _08081378 + bl SetMainCallback2 +_08081336: + ldr r0, _0808136C + ldr r1, [r0] + movs r2, #0x8e + lsls r2, r2, #1 + adds r0, r1, r2 + movs r2, #0 + ldrsh r0, [r0, r2] + movs r2, #0x8f + lsls r2, r2, #1 + adds r1, r1, r2 + movs r2, #0 + ldrsh r1, [r1, r2] + bl Blender_DummiedOutFunc + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl RunTextPrinters + bl UpdatePaletteFade + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0808136C: .4byte 0x02031F44 +_08081370: .4byte 0x00057E03 +_08081374: .4byte 0x000003E7 +_08081378: .4byte 0x080819E5 + thumb_func_end sub_080812B4 + + thumb_func_start Blender_DummiedOutFunc +Blender_DummiedOutFunc: @ 0x0808137C + bx lr + .align 2, 0 + thumb_func_end Blender_DummiedOutFunc + + thumb_func_start sub_08081380 +sub_08081380: @ 0x08081380 + push {r4, r5, lr} + lsls r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r1, r1, #0x14 + adds r4, r1, r0 + lsrs r2, r2, #0x14 + adds r5, r2, r0 + ldrh r0, [r4] + ldrh r1, [r5] + cmp r0, r1 + bne _080813BE + adds r0, r4, #2 + adds r1, r5, #2 + bl StringCompare + cmp r0, #0 + bne _080813CC + ldr r0, [r4, #8] + ldr r2, _080813C4 + ands r0, r2 + ldr r1, [r5, #8] + ands r1, r2 + cmp r0, r1 + bne _080813CC + ldr r0, [r4, #0xc] + ldr r2, _080813C8 + ands r0, r2 + ldr r1, [r5, #0xc] + ands r1, r2 + cmp r0, r1 + bne _080813CC +_080813BE: + movs r0, #1 + b _080813CE + .align 2, 0 +_080813C4: .4byte 0xFFFFFF00 +_080813C8: .4byte 0x00FFFFFF +_080813CC: + movs r0, #0 +_080813CE: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_08081380 + + thumb_func_start Blender_GetPokeblockColor +Blender_GetPokeblockColor: @ 0x080813D4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + mov sl, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x10] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r2, sp + movs r4, #5 +_080813F0: + ldrh r0, [r1] + strh r0, [r2] + adds r1, #2 + adds r2, #2 + subs r4, #1 + cmp r4, #0 + bge _080813F0 + movs r6, #0 + mov r1, sp + movs r4, #4 +_08081404: + movs r2, #0 + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _0808140E + adds r6, #1 +_0808140E: + adds r1, #2 + subs r4, #1 + cmp r4, #0 + bge _08081404 + cmp r6, #5 + beq _08081462 + cmp r3, #3 + bhi _08081462 + movs r4, #0 + ldr r3, [sp, #0x10] + cmp r4, r3 + bge _0808147A + mov r3, sl +_08081428: + movs r6, #0 + ldr r7, [sp, #0x10] + cmp r6, r7 + bge _08081470 + mov sb, r3 + mov r5, sl + lsls r0, r4, #0x18 + mov r8, r0 +_08081438: + mov r1, sb + ldrh r0, [r1] + ldrh r2, [r5] + cmp r0, r2 + bne _08081466 + cmp r4, r6 + beq _08081466 + cmp r0, #0xaf + bne _08081462 + lsls r2, r6, #0x18 + lsrs r2, r2, #0x18 + mov r0, sl + mov r7, r8 + lsrs r1, r7, #0x18 + str r3, [sp, #0xc] + bl sub_08081380 + lsls r0, r0, #0x18 + ldr r3, [sp, #0xc] + cmp r0, #0 + beq _08081466 +_08081462: + movs r0, #0xc + b _080815BA +_08081466: + adds r5, #0x10 + adds r6, #1 + ldr r0, [sp, #0x10] + cmp r6, r0 + blt _08081438 +_08081470: + adds r3, #0x10 + adds r4, #1 + ldr r1, [sp, #0x10] + cmp r4, r1 + blt _08081428 +_0808147A: + movs r2, #0 + mov r1, sp + movs r4, #4 +_08081480: + movs r3, #0 + ldrsh r0, [r1, r3] + cmp r0, #0 + ble _0808148E + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 +_0808148E: + adds r1, #2 + subs r4, #1 + cmp r4, #0 + bge _08081480 + cmp r2, #3 + bls _0808149E + movs r0, #0xd + b _080815BA +_0808149E: + cmp r2, #3 + bne _080814A6 + movs r0, #0xb + b _080815BA +_080814A6: + movs r4, #0 + mov r1, sp +_080814AA: + movs r7, #0 + ldrsh r0, [r1, r7] + cmp r0, #0x32 + ble _080814B4 + b _080815B4 +_080814B4: + adds r1, #2 + adds r4, #1 + cmp r4, #4 + ble _080814AA + cmp r2, #1 + bne _08081506 + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + ble _080814CE + movs r0, #1 + b _080815BA +_080814CE: + mov r0, sp + ldrh r0, [r0, #2] + lsls r0, r0, #0x10 + cmp r0, #0 + ble _080814DC + movs r0, #2 + b _080815BA +_080814DC: + mov r0, sp + movs r3, #4 + ldrsh r0, [r0, r3] + cmp r0, #0 + ble _080814EA + movs r0, #3 + b _080815BA +_080814EA: + mov r0, sp + movs r4, #6 + ldrsh r0, [r0, r4] + cmp r0, #0 + ble _080814F8 + movs r0, #4 + b _080815BA +_080814F8: + mov r0, sp + movs r7, #8 + ldrsh r0, [r0, r7] + cmp r0, #0 + ble _08081506 + movs r0, #5 + b _080815BA +_08081506: + cmp r2, #2 + bne _080815B8 + movs r4, #0 + ldr r5, _08081550 + mov r1, sp + adds r2, r5, #0 +_08081512: + movs r3, #0 + ldrsh r0, [r1, r3] + cmp r0, #0 + ble _0808151E + strh r4, [r2] + adds r2, #2 +_0808151E: + adds r1, #2 + adds r4, #1 + cmp r4, #4 + ble _08081512 + movs r4, #0 + ldrsh r3, [r5, r4] + lsls r0, r3, #1 + mov r7, sp + adds r1, r7, r0 + movs r0, #2 + ldrsh r2, [r5, r0] + lsls r0, r2, #1 + add r0, sp + movs r4, #0 + ldrsh r1, [r1, r4] + movs r7, #0 + ldrsh r0, [r0, r7] + cmp r1, r0 + blt _08081574 + adds r0, r3, #0 + cmp r0, #0 + bne _08081554 + lsls r0, r2, #0x10 + b _0808157E + .align 2, 0 +_08081550: .4byte 0x03000DF8 +_08081554: + cmp r0, #1 + bne _0808155C + lsls r0, r2, #0x10 + b _0808158A +_0808155C: + cmp r0, #2 + bne _08081564 + lsls r0, r2, #0x10 + b _08081596 +_08081564: + cmp r0, #3 + bne _0808156C + lsls r0, r2, #0x10 + b _080815A2 +_0808156C: + cmp r0, #4 + bne _080815B8 + lsls r0, r2, #0x10 + b _080815AE +_08081574: + movs r2, #2 + ldrsh r0, [r5, r2] + cmp r0, #0 + bne _08081584 + lsls r0, r3, #0x10 +_0808157E: + movs r1, #6 + orrs r0, r1 + b _080815BA +_08081584: + cmp r0, #1 + bne _08081590 + lsls r0, r3, #0x10 +_0808158A: + movs r1, #7 + orrs r0, r1 + b _080815BA +_08081590: + cmp r0, #2 + bne _0808159C + lsls r0, r3, #0x10 +_08081596: + movs r1, #8 + orrs r0, r1 + b _080815BA +_0808159C: + cmp r0, #3 + bne _080815A8 + lsls r0, r3, #0x10 +_080815A2: + movs r1, #9 + orrs r0, r1 + b _080815BA +_080815A8: + cmp r0, #4 + bne _080815B8 + lsls r0, r3, #0x10 +_080815AE: + movs r1, #0xa + orrs r0, r1 + b _080815BA +_080815B4: + movs r0, #0xe + b _080815BA +_080815B8: + movs r0, #0 +_080815BA: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end Blender_GetPokeblockColor + + thumb_func_start sub_080815CC +sub_080815CC: @ 0x080815CC + ldr r1, _080815D4 + strh r0, [r1] + bx lr + .align 2, 0 +_080815D4: .4byte 0x03000E04 + thumb_func_end sub_080815CC + + thumb_func_start sub_080815D8 +sub_080815D8: @ 0x080815D8 + ldr r0, _080815E0 + movs r1, #0 + ldrsh r0, [r0, r1] + bx lr + .align 2, 0 +_080815E0: .4byte 0x03000E04 + thumb_func_end sub_080815D8 + + thumb_func_start sub_080815E4 +sub_080815E4: @ 0x080815E4 + ldr r1, _080815EC + strh r0, [r1] + bx lr + .align 2, 0 +_080815EC: .4byte 0x03000E06 + thumb_func_end sub_080815E4 + + thumb_func_start sub_080815F0 +sub_080815F0: @ 0x080815F0 + ldr r0, _080815F8 + movs r1, #0 + ldrsh r0, [r0, r1] + bx lr + .align 2, 0 +_080815F8: .4byte 0x03000E06 + thumb_func_end sub_080815F0 + + thumb_func_start Blender_CalculatePokeblock +Blender_CalculatePokeblock: @ 0x080815FC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + str r0, [sp] + mov r8, r1 + str r3, [sp, #4] + ldr r0, [sp, #0x30] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sb, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #8] + ldr r7, _080816B8 + adds r2, r7, #0 + movs r1, #0 + adds r0, r7, #0 + adds r0, #0xa +_08081626: + strh r1, [r0] + subs r0, #2 + cmp r0, r2 + bge _08081626 + movs r6, #0 + cmp r6, sb + bge _0808165C + ldr r0, _080816B8 + mov ip, r0 + ldr r5, [sp] + adds r5, #9 +_0808163C: + movs r3, #0 + adds r4, r5, #0 + mov r2, ip +_08081642: + adds r1, r4, r3 + ldrh r0, [r2] + ldrb r1, [r1] + adds r0, r0, r1 + strh r0, [r2] + adds r2, #2 + adds r3, #1 + cmp r3, #5 + ble _08081642 + adds r5, #0x10 + adds r6, #1 + cmp r6, sb + blt _0808163C +_0808165C: + movs r1, #0 + ldrsh r3, [r7, r1] + ldrh r0, [r7] + ldrh r1, [r7, #2] + subs r0, r0, r1 + strh r0, [r7] + ldrh r0, [r7, #4] + subs r1, r1, r0 + strh r1, [r7, #2] + ldrh r1, [r7, #6] + subs r0, r0, r1 + strh r0, [r7, #4] + ldrh r0, [r7, #8] + subs r1, r1, r0 + strh r1, [r7, #6] + subs r0, r0, r3 + strh r0, [r7, #8] + movs r3, #0 + movs r2, #0 + adds r1, r7, #0 + movs r6, #4 +_08081686: + movs r4, #0 + ldrsh r0, [r1, r4] + cmp r0, #0 + bge _08081692 + strh r2, [r1] + adds r3, #1 +_08081692: + adds r1, #2 + subs r6, #1 + cmp r6, #0 + bge _08081686 + lsls r0, r3, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + movs r4, #0 + ldr r1, _080816B8 + movs r6, #4 +_080816A6: + ldrh r2, [r1] + movs r5, #0 + ldrsh r0, [r1, r5] + cmp r0, #0 + ble _080816C0 + cmp r0, r3 + bge _080816BC + strh r4, [r1] + b _080816C0 + .align 2, 0 +_080816B8: .4byte 0x03000DE8 +_080816BC: + subs r0, r2, r3 + strh r0, [r1] +_080816C0: + adds r1, #2 + subs r6, #1 + cmp r6, #0 + bge _080816A6 + ldr r1, _080817A0 + ldr r2, _080817A4 + movs r6, #4 +_080816CE: + movs r3, #0 + ldrsh r0, [r1, r3] + stm r2!, {r0} + adds r1, #2 + subs r6, #1 + cmp r6, #0 + bge _080816CE + ldr r1, _080817A8 + ldr r0, [sp, #8] + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r3, r0, #0 + adds r3, #0x64 + ldr r4, _080817AC + str r3, [r4] + movs r6, #4 +_080816F2: + movs r0, #0 + ldrsh r5, [r7, r0] + adds r0, r5, #0 + muls r0, r3, r0 + movs r1, #0xa + str r3, [sp, #0xc] + bl __divsi3 + adds r5, r0, #0 + movs r1, #0xa + bl __modsi3 + adds r4, r0, #0 + adds r0, r5, #0 + movs r1, #0xa + bl __divsi3 + adds r5, r0, #0 + ldr r3, [sp, #0xc] + cmp r4, #4 + ble _0808171E + adds r5, #1 +_0808171E: + strh r5, [r7] + adds r7, #2 + subs r6, #1 + cmp r6, #0 + bge _080816F2 + ldr r1, _080817A0 + ldr r2, _080817B0 + movs r6, #4 +_0808172E: + movs r3, #0 + ldrsh r0, [r1, r3] + stm r2!, {r0} + adds r1, #2 + subs r6, #1 + cmp r6, #0 + bge _0808172E + ldr r4, _080817A0 + ldr r0, [sp] + adds r1, r4, #0 + mov r2, sb + mov r3, sl + bl Blender_GetPokeblockColor + mov r5, r8 + strb r0, [r5] + movs r1, #0xa + ldrsh r0, [r4, r1] + mov r1, sb + bl __divsi3 + mov r3, sb + subs r0, r0, r3 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _08081768 + movs r0, #0 + strh r0, [r4, #0xa] +_08081768: + mov r5, r8 + ldrb r0, [r5] + cmp r0, #0xc + bne _080817C2 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + movs r6, #0 + ldr r0, _080817B4 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, #0 + movs r4, #1 + movs r3, #2 +_08081790: + adds r2, r0, #0 + asrs r2, r6 + ands r2, r4 + cmp r2, #0 + beq _080817B8 + strh r3, [r1] + b _080817BA + .align 2, 0 +_080817A0: .4byte 0x03000DE8 +_080817A4: .4byte 0x02031F48 +_080817A8: .4byte 0x0000014D +_080817AC: .4byte 0x02031F70 +_080817B0: .4byte 0x02031F5C +_080817B4: .4byte 0x0830FBB8 +_080817B8: + strh r2, [r1] +_080817BA: + adds r1, #2 + adds r6, #1 + cmp r6, #4 + ble _08081790 +_080817C2: + ldr r7, _0808181C + movs r2, #0xff + adds r1, r7, #0 + movs r6, #5 +_080817CA: + movs r3, #0 + ldrsh r0, [r1, r3] + cmp r0, #0xff + ble _080817D4 + strh r2, [r1] +_080817D4: + adds r1, #2 + subs r6, #1 + cmp r6, #0 + bge _080817CA + ldrh r0, [r7] + mov r4, r8 + strb r0, [r4, #1] + ldrh r0, [r7, #2] + strb r0, [r4, #2] + ldrh r0, [r7, #4] + strb r0, [r4, #3] + ldrh r0, [r7, #6] + strb r0, [r4, #4] + ldrh r0, [r7, #8] + strb r0, [r4, #5] + ldrh r0, [r7, #0xa] + strb r0, [r4, #6] + movs r6, #0 + adds r2, r7, #0 +_080817FA: + ldr r5, [sp, #4] + adds r1, r5, r6 + ldrh r0, [r2] + strb r0, [r1] + adds r2, #2 + adds r6, #1 + cmp r6, #5 + ble _080817FA + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0808181C: .4byte 0x03000DE8 + thumb_func_end Blender_CalculatePokeblock + + thumb_func_start BlenderDebug_CalculatePokeblock +BlenderDebug_CalculatePokeblock: @ 0x08081820 + push {r4, lr} + sub sp, #4 + ldr r4, [sp, #0xc] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + str r4, [sp] + bl Blender_CalculatePokeblock + add sp, #4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end BlenderDebug_CalculatePokeblock + + thumb_func_start sub_0808183C +sub_0808183C: @ 0x0808183C + push {r4, r5, r6, lr} + ldr r0, _0808185C + ldr r0, [r0] + movs r2, #0x82 + lsls r2, r2, #1 + adds r1, r0, r2 + ldrh r1, [r1] + adds r0, #0x4e + ldrh r4, [r0] + movs r2, #0 + ldr r5, _08081860 + cmp r1, r5 + bhi _08081864 + movs r2, #5 + b _080818B6 + .align 2, 0 +_0808185C: .4byte 0x02031F44 +_08081860: .4byte 0x00000383 +_08081864: + ldr r3, _08081878 + adds r0, r1, r3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r3, _0808187C + cmp r0, r3 + bhi _08081880 + movs r2, #4 + b _080818B6 + .align 2, 0 +_08081878: .4byte 0xFFFFFC7C +_0808187C: .4byte 0x00000257 +_08081880: + ldr r6, _08081890 + adds r0, r1, r6 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r3 + bhi _08081894 + movs r2, #3 + b _080818B6 + .align 2, 0 +_08081890: .4byte 0xFFFFFA24 +_08081894: + ldr r3, _080818A4 + adds r0, r1, r3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r5 + bhi _080818A8 + movs r2, #2 + b _080818B6 + .align 2, 0 +_080818A4: .4byte 0xFFFFF7CC +_080818A8: + ldr r6, _080818D4 + adds r0, r1, r6 + lsls r0, r0, #0x10 + ldr r1, _080818D8 + cmp r0, r1 + bhi _080818B6 + movs r2, #1 +_080818B6: + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + bl sub_080815E4 + movs r2, #0 + cmp r4, #0x40 + bhi _08081998 + adds r0, r4, #0 + subs r0, #0x32 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x31 + bhi _080818E0 + ldr r2, _080818DC + b _08081998 + .align 2, 0 +_080818D4: .4byte 0xFFFFF31C +_080818D8: .4byte 0x012B0000 +_080818DC: .4byte 0x0000FFFF +_080818E0: + adds r0, r4, #0 + subs r0, #0x64 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x31 + bhi _080818F4 + ldr r2, _080818F0 + b _08081998 + .align 2, 0 +_080818F0: .4byte 0x0000FFFE +_080818F4: + adds r0, r4, #0 + subs r0, #0x96 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x31 + bhi _08081908 + ldr r2, _08081904 + b _08081998 + .align 2, 0 +_08081904: .4byte 0x0000FFFD +_08081908: + adds r0, r4, #0 + subs r0, #0xc8 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x31 + bhi _0808191C + ldr r2, _08081918 + b _08081998 + .align 2, 0 +_08081918: .4byte 0x0000FFFC +_0808191C: + adds r0, r4, #0 + subs r0, #0xfa + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x31 + bhi _08081930 + ldr r2, _0808192C + b _08081998 + .align 2, 0 +_0808192C: .4byte 0x0000FFFB +_08081930: + ldr r1, _08081940 + adds r0, r4, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x31 + bhi _08081948 + ldr r2, _08081944 + b _08081998 + .align 2, 0 +_08081940: .4byte 0xFFFFFEA2 +_08081944: .4byte 0x0000FFFA +_08081948: + ldr r3, _08081958 + adds r0, r4, r3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x31 + bhi _08081960 + ldr r2, _0808195C + b _08081998 + .align 2, 0 +_08081958: .4byte 0xFFFFFE70 +_0808195C: .4byte 0x0000FFF9 +_08081960: + ldr r6, _08081970 + adds r0, r4, r6 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x31 + bhi _08081978 + ldr r2, _08081974 + b _08081998 + .align 2, 0 +_08081970: .4byte 0xFFFFFE0C +_08081974: .4byte 0x0000FFF8 +_08081978: + ldr r1, _08081988 + adds r0, r4, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x31 + bhi _08081990 + ldr r2, _0808198C + b _08081998 + .align 2, 0 +_08081988: .4byte 0xFFFFFDDA +_0808198C: .4byte 0x0000FFF7 +_08081990: + ldr r0, _080819A8 + cmp r4, r0 + bls _08081998 + ldr r2, _080819AC +_08081998: + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + bl sub_080815CC + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080819A8: .4byte 0x00000257 +_080819AC: .4byte 0x0000FFF6 + thumb_func_end sub_0808183C + + thumb_func_start sub_080819B0 +sub_080819B0: @ 0x080819B0 + push {lr} + adds r1, r0, #0 + ldr r0, _080819CC + ldrb r0, [r0] + cmp r0, #0 + beq _080819D4 + ldr r0, _080819D0 + ldrb r0, [r0] + cmp r0, #0 + beq _080819D4 + movs r2, #0xbc + lsls r2, r2, #6 + b _080819D6 + .align 2, 0 +_080819CC: .4byte 0x030031C4 +_080819D0: .4byte 0x0300319C +_080819D4: + ldr r2, _080819E0 +_080819D6: + adds r0, r2, #0 + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080819E0: .4byte 0x00002FFF + thumb_func_end sub_080819B0 + + thumb_func_start CB2_HandleBlenderEndGame +CB2_HandleBlenderEndGame: @ 0x080819E4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r4, _08081A18 + ldr r0, [r4] + adds r0, #0x63 + ldrb r0, [r0] + cmp r0, #2 + bhi _080819FA + bl sub_08082744 +_080819FA: + bl GetMultiplayerId + ldr r0, [r4] + adds r0, #0x63 + ldrb r0, [r0] + subs r0, #1 + cmp r0, #0xc + bls _08081A0C + b _08081EBA +_08081A0C: + lsls r0, r0, #2 + ldr r1, _08081A1C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08081A18: .4byte 0x02031F44 +_08081A1C: .4byte 0x08081A20 +_08081A20: @ jump table + .4byte _08081A54 @ case 0 + .4byte _08081A94 @ case 1 + .4byte _08081AF0 @ case 2 + .4byte _08081BE4 @ case 3 + .4byte _08081C94 @ case 4 + .4byte _08081CA2 @ case 5 + .4byte _08081CCC @ case 6 + .4byte _08081E74 @ case 7 + .4byte _08081D00 @ case 8 + .4byte _08081D24 @ case 9 + .4byte _08081DCC @ case 10 + .4byte _08081E4C @ case 11 + .4byte _08081E88 @ case 12 +_08081A54: + ldr r0, _08081A64 + movs r1, #0x80 + lsls r1, r1, #1 + bl m4aMPlayTempoControl + movs r4, #0 + b _08081A80 + .align 2, 0 +_08081A64: .4byte 0x030074D0 +_08081A68: + ldr r0, _08081A8C + ldr r0, [r0] + movs r1, #0x90 + lsls r1, r1, #1 + adds r0, r0, r1 + adds r0, r0, r4 + ldrb r0, [r0] + bl DestroyTask + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_08081A80: + ldr r0, _08081A90 + ldrh r0, [r0] + cmp r4, r0 + blo _08081A68 + b _08081E74 + .align 2, 0 +_08081A8C: .4byte 0x02031F44 +_08081A90: .4byte 0x02037280 +_08081A94: + ldr r4, _08081AC4 + ldr r1, [r4] + adds r1, #0x4c + ldrh r0, [r1] + subs r0, #0x20 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _08081AE2 + bl ClearLinkCallback + ldr r2, [r4] + adds r1, r2, #0 + adds r1, #0x4c + movs r0, #0 + strh r0, [r1] + ldr r0, _08081AC8 + ldrb r0, [r0] + cmp r0, #0 + beq _08081ACC + adds r1, #0x17 + ldrb r0, [r1] + adds r0, #1 + b _08081AD2 + .align 2, 0 +_08081AC4: .4byte 0x02031F44 +_08081AC8: .4byte 0x030031C4 +_08081ACC: + adds r1, r2, #0 + adds r1, #0x63 + movs r0, #5 +_08081AD2: + strb r0, [r1] + ldr r0, _08081AE8 + ldr r1, [r0] + movs r0, #0 + strb r0, [r1] + ldr r0, _08081AEC + bl m4aMPlayStop +_08081AE2: + bl Blender_ControlHitPitch + b _08081EBA + .align 2, 0 +_08081AE8: .4byte 0x02031F44 +_08081AEC: .4byte 0x03007550 +_08081AF0: + bl GetMultiplayerId + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08081AFC + b _08081E74 +_08081AFC: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08081B08 + b _08081EBA +_08081B08: + ldr r0, _08081B94 + ldrb r0, [r0] + cmp r0, #0 + beq _08081BA8 + ldr r0, _08081B98 + ldrb r0, [r0] + cmp r0, #0 + beq _08081BA8 + ldr r3, _08081B9C + ldr r1, [r3] + ldr r4, _08081BA0 + adds r2, r1, r4 + movs r5, #0x82 + lsls r5, r5, #1 + adds r0, r1, r5 + ldr r0, [r0] + str r0, [r2] + adds r0, r1, #0 + adds r0, #0x4e + ldrh r0, [r0] + movs r2, #0x8e + lsls r2, r2, #5 + adds r1, r1, r2 + strh r0, [r1] + movs r4, #0 + mov r8, r3 + mov ip, r8 + ldr r7, _08081BA4 + movs r6, #0x92 + lsls r6, r6, #1 +_08081B44: + movs r3, #0 + adds r5, r4, #1 + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r4, r0, #1 +_08081B4E: + mov r1, ip + ldr r0, [r1] + lsls r1, r3, #1 + adds r1, r1, r4 + adds r2, r0, r7 + adds r2, r2, r1 + adds r0, r0, r6 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #2 + bls _08081B4E + lsls r0, r5, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _08081B44 + mov r2, r8 + ldr r1, [r2] + ldr r4, _08081BA0 + adds r1, r1, r4 + movs r0, #0 + movs r2, #0x20 + bl SendBlock + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08081B8C + b _08081EBA +_08081B8C: + mov r5, r8 + ldr r1, [r5] + b _08081E78 + .align 2, 0 +_08081B94: .4byte 0x030031C4 +_08081B98: .4byte 0x0300319C +_08081B9C: .4byte 0x02031F44 +_08081BA0: .4byte 0x000011BC +_08081BA4: .4byte 0x000011C4 +_08081BA8: + ldr r4, _08081BE0 + ldr r3, [r4] + movs r0, #0xcc + lsls r0, r0, #1 + adds r1, r3, r0 + movs r2, #0x82 + lsls r2, r2, #1 + adds r0, r3, r2 + ldr r0, [r0] + str r0, [r1] + adds r0, r3, #0 + adds r0, #0x4e + ldrh r2, [r0] + movs r5, #0xce + lsls r5, r5, #1 + adds r0, r3, r5 + strh r2, [r0] + movs r0, #0 + movs r2, #0x28 + bl SendBlock + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08081BDA + b _08081EBA +_08081BDA: + ldr r1, [r4] + b _08081E78 + .align 2, 0 +_08081BE0: .4byte 0x02031F44 +_08081BE4: + bl GetBlockReceivedStatus + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08081BF0 + b _08081EBA +_08081BF0: + bl ResetBlockReceivedFlags + ldr r5, _08081C60 + ldr r1, [r5] + adds r1, #0x63 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r0, _08081C64 + ldrb r0, [r0] + cmp r0, #0 + beq _08081C70 + ldr r0, _08081C68 + ldrb r0, [r0] + cmp r0, #0 + beq _08081C70 + ldr r2, _08081C6C + ldr r3, [r5] + ldrh r0, [r2, #4] + adds r1, r3, #0 + adds r1, #0x4e + strh r0, [r1] + movs r0, #0x82 + lsls r0, r0, #1 + adds r1, r3, r0 + ldr r0, [r2] + str r0, [r1] + movs r4, #0 + adds r7, r2, #0 + adds r7, #8 + adds r6, r5, #0 + movs r2, #0x92 + lsls r2, r2, #1 +_08081C32: + movs r3, #0 + adds r5, r4, #1 + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r4, r0, #1 +_08081C3C: + ldr r1, [r6] + lsls r0, r3, #1 + adds r0, r0, r4 + adds r1, r1, r2 + adds r1, r1, r0 + adds r0, r7, r0 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #2 + bls _08081C3C + lsls r0, r5, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _08081C32 + b _08081EBA + .align 2, 0 +_08081C60: .4byte 0x02031F44 +_08081C64: .4byte 0x030031C4 +_08081C68: .4byte 0x0300319C +_08081C6C: .4byte 0x0202207C +_08081C70: + ldr r2, _08081C8C + ldr r0, _08081C90 + ldr r3, [r0] + ldrh r0, [r2, #4] + adds r1, r3, #0 + adds r1, #0x4e + strh r0, [r1] + movs r4, #0x82 + lsls r4, r4, #1 + adds r1, r3, r4 + ldr r0, [r2] + str r0, [r1] + b _08081EBA + .align 2, 0 +_08081C8C: .4byte 0x0202207C +_08081C90: .4byte 0x02031F44 +_08081C94: + bl Blender_PrintBlendingRanking + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08081CA0 + b _08081EBA +_08081CA0: + b _08081E74 +_08081CA2: + bl Blender_PrintBlendingResults + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08081CAE + b _08081EBA +_08081CAE: + ldr r0, _08081CC0 + ldrb r0, [r0] + cmp r0, #0 + bne _08081CC4 + movs r0, #0x22 + bl IncrementGameStat + b _08081E74 + .align 2, 0 +_08081CC0: .4byte 0x03005AF8 +_08081CC4: + movs r0, #0x21 + bl IncrementGameStat + b _08081E74 +_08081CCC: + ldr r6, _08081CF4 + ldr r4, [r6] + ldr r5, _08081CF8 + adds r4, r4, r5 + ldr r5, _08081CFC + bl GetPlayerTextSpeedDelay + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl Blender_PrintText + cmp r0, #0 + bne _08081CEE + b _08081EBA +_08081CEE: + ldr r1, [r6] + b _08081E78 + .align 2, 0 +_08081CF4: .4byte 0x02031F44 +_08081CF8: .4byte 0x000011B4 +_08081CFC: .4byte 0x0830F79B +_08081D00: + ldr r4, _08081D1C + ldr r0, [r4] + adds r0, #0x9e + movs r1, #0 + strb r1, [r0] + ldr r0, _08081D20 + movs r1, #1 + movs r2, #1 + movs r3, #0xd + bl sub_08198D44 + ldr r1, [r4] + b _08081E78 + .align 2, 0 +_08081D1C: .4byte 0x02031F44 +_08081D20: .4byte 0x0830F8A8 +_08081D24: + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r2, r0, #0x18 + cmp r2, #0 + beq _08081D88 + cmp r2, #0 + bgt _08081D3E + movs r0, #1 + rsbs r0, r0, #0 + cmp r2, r0 + beq _08081D44 + b _08081EBA +_08081D3E: + cmp r2, #1 + beq _08081D44 + b _08081EBA +_08081D44: + ldr r2, _08081D84 + ldr r0, [r2] + adds r0, #0x9e + movs r1, #1 + strb r1, [r0] + ldr r1, [r2] + adds r1, #0x63 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r4, #0 +_08081D5A: + ldr r0, _08081D84 + ldr r0, [r0] + lsls r1, r4, #1 + adds r0, #0x8e + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0xff + beq _08081D78 + adds r0, r4, #0 + bl PutWindowTilemap + adds r0, r4, #0 + movs r1, #3 + bl CopyWindowToVram +_08081D78: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _08081D5A + b _08081EBA + .align 2, 0 +_08081D84: .4byte 0x02031F44 +_08081D88: + ldr r1, _08081DC8 + ldr r0, [r1] + adds r0, #0x9e + strb r2, [r0] + ldr r1, [r1] + adds r1, #0x63 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r4, #0 +_08081D9C: + ldr r0, _08081DC8 + ldr r0, [r0] + lsls r1, r4, #1 + adds r0, #0x8e + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0xff + beq _08081DBA + adds r0, r4, #0 + bl PutWindowTilemap + adds r0, r4, #0 + movs r1, #3 + bl CopyWindowToVram +_08081DBA: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _08081D9C + b _08081EBA + .align 2, 0 +_08081DC8: .4byte 0x02031F44 +_08081DCC: + ldr r6, _08081DFC + adds r0, r6, #0 + bl sub_080819B0 + ldr r4, _08081E00 + ldr r2, [r4] + adds r0, r2, #0 + adds r0, #0x9e + ldrb r5, [r0] + cmp r5, #0 + bne _08081E38 + movs r0, #4 + bl IsBagPocketNonEmpty + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08081E08 + ldr r0, [r4] + adds r0, #0x70 + movs r1, #2 + strh r1, [r0] + ldr r0, _08081E04 + b _08081E30 + .align 2, 0 +_08081DFC: .4byte 0x030031B0 +_08081E00: .4byte 0x02031F44 +_08081E04: .4byte 0x00009999 +_08081E08: + bl sub_08136F64 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _08081E28 + ldr r0, [r4] + adds r0, #0x70 + movs r1, #3 + strh r1, [r0] + ldr r0, _08081E24 + b _08081E30 + .align 2, 0 +_08081E24: .4byte 0x0000AAAA +_08081E28: + ldr r0, [r4] + adds r0, #0x70 + strh r5, [r0] + ldr r0, _08081E34 +_08081E30: + strh r0, [r6, #2] + b _08081E74 + .align 2, 0 +_08081E34: .4byte 0x00007779 +_08081E38: + adds r1, r2, #0 + adds r1, #0x70 + movs r0, #1 + strh r0, [r1] + ldr r0, _08081E48 + strh r0, [r6, #2] + subs r1, #0xd + b _08081E7A + .align 2, 0 +_08081E48: .4byte 0x00008888 +_08081E4C: + ldr r0, _08081E68 + ldrb r0, [r0] + cmp r0, #0 + beq _08081E74 + ldr r0, _08081E6C + bl SetMainCallback2 + ldr r2, _08081E70 + ldr r0, [r2] + adds r0, #0x63 + movs r1, #0 + strb r1, [r0] + ldr r0, [r2] + b _08081EB8 + .align 2, 0 +_08081E68: .4byte 0x03005AF8 +_08081E6C: .4byte 0x08082341 +_08081E70: .4byte 0x02031F44 +_08081E74: + ldr r0, _08081E84 + ldr r1, [r0] +_08081E78: + adds r1, #0x63 +_08081E7A: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _08081EBA + .align 2, 0 +_08081E84: .4byte 0x02031F44 +_08081E88: + ldr r6, _08081F08 + ldr r4, [r6] + ldr r0, _08081F0C + adds r4, r4, r0 + ldr r5, _08081F10 + bl GetPlayerTextSpeedDelay + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl Blender_PrintText + cmp r0, #0 + beq _08081EBA + ldr r0, _08081F14 + bl SetMainCallback2 + ldr r0, [r6] + adds r0, #0x63 + movs r1, #0 + strb r1, [r0] + ldr r0, [r6] +_08081EB8: + strb r1, [r0] +_08081EBA: + bl sub_08082D28 + ldr r4, _08081F08 + ldr r0, [r4] + adds r0, #0x4c + ldrh r0, [r0] + bl sub_08082C4C + bl sub_080824F0 + ldr r1, [r4] + movs r2, #0x8e + lsls r2, r2, #1 + adds r0, r1, r2 + movs r4, #0 + ldrsh r0, [r0, r4] + movs r5, #0x8f + lsls r5, r5, #1 + adds r1, r1, r5 + movs r2, #0 + ldrsh r1, [r1, r2] + bl Blender_DummiedOutFunc + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl RunTextPrinters + bl UpdatePaletteFade + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08081F08: .4byte 0x02031F44 +_08081F0C: .4byte 0x000011B4 +_08081F10: .4byte 0x0830F78E +_08081F14: .4byte 0x08082061 + thumb_func_end CB2_HandleBlenderEndGame + + thumb_func_start LinkPlayAgainHandleSaving +LinkPlayAgainHandleSaving: @ 0x08081F18 + push {r4, lr} + ldr r1, _08081F38 + ldr r0, [r1] + movs r2, #0xd0 + lsls r2, r2, #1 + adds r0, r0, r2 + ldr r0, [r0] + adds r4, r1, #0 + cmp r0, #6 + bls _08081F2E + b _08082058 +_08081F2E: + lsls r0, r0, #2 + ldr r1, _08081F3C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08081F38: .4byte 0x02031F44 +_08081F3C: .4byte 0x08081F40 +_08081F40: @ jump table + .4byte _08081F5C @ case 0 + .4byte _08081F74 @ case 1 + .4byte _08081FA0 @ case 2 + .4byte _08081FB0 @ case 3 + .4byte _08081FD6 @ case 4 + .4byte _0808201C @ case 5 + .4byte _08082036 @ case 6 +_08081F5C: + bl sub_0800A8D4 + ldr r0, _08081F70 + ldr r2, [r0] + movs r3, #0xd0 + lsls r3, r3, #1 + adds r1, r2, r3 + movs r0, #1 + b _08082028 + .align 2, 0 +_08081F70: .4byte 0x02031F44 +_08081F74: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08082058 + ldr r0, _08081F98 + ldr r1, [r0] + movs r2, #0xd0 + lsls r2, r2, #1 + adds r1, r1, r2 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + ldr r1, _08081F9C + movs r0, #1 + strb r0, [r1] + b _08082058 + .align 2, 0 +_08081F98: .4byte 0x02031F44 +_08081F9C: .4byte 0x030027A0 +_08081FA0: + bl FullSaveGame + ldr r0, _08081FAC + ldr r2, [r0] + b _0808201E + .align 2, 0 +_08081FAC: .4byte 0x02031F44 +_08081FB0: + ldr r1, [r4] + movs r2, #0x84 + lsls r2, r2, #1 + adds r1, r1, r2 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + cmp r0, #0xa + bne _08082058 + bl sub_0800A8D4 + ldr r1, [r4] + movs r3, #0xd0 + lsls r3, r3, #1 + adds r1, r1, r3 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + b _08082058 +_08081FD6: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08082058 + bl CheckSaveFile + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _08082000 + ldr r0, _08081FFC + ldr r0, [r0] + movs r1, #0xd0 + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #5 + str r1, [r0] + b _08082058 + .align 2, 0 +_08081FFC: .4byte 0x02031F44 +_08082000: + ldr r0, _08082018 + ldr r1, [r0] + movs r3, #0x84 + lsls r3, r3, #1 + adds r0, r1, r3 + str r2, [r0] + movs r0, #0xd0 + lsls r0, r0, #1 + adds r1, r1, r0 + movs r0, #3 + str r0, [r1] + b _08082058 + .align 2, 0 +_08082018: .4byte 0x02031F44 +_0808201C: + ldr r2, [r4] +_0808201E: + movs r3, #0xd0 + lsls r3, r3, #1 + adds r1, r2, r3 + ldr r0, [r1] + adds r0, #1 +_08082028: + str r0, [r1] + movs r0, #0x84 + lsls r0, r0, #1 + adds r1, r2, r0 + movs r0, #0 + str r0, [r1] + b _08082058 +_08082036: + ldr r1, [r4] + movs r2, #0x84 + lsls r2, r2, #1 + adds r1, r1, r2 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + cmp r0, #5 + ble _08082058 + ldr r1, _08082054 + movs r0, #0 + strb r0, [r1] + movs r0, #1 + b _0808205A + .align 2, 0 +_08082054: .4byte 0x030027A0 +_08082058: + movs r0, #0 +_0808205A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end LinkPlayAgainHandleSaving + + thumb_func_start CB2_HandlePlayerLinkPlayAgainChoice +CB2_HandlePlayerLinkPlayAgainChoice: @ 0x08082060 + push {r4, r5, r6, lr} + sub sp, #4 + ldr r1, _08082080 + ldr r0, [r1] + adds r0, #0x63 + ldrb r0, [r0] + adds r6, r1, #0 + cmp r0, #0xc + bls _08082074 + b _080822F8 +_08082074: + lsls r0, r0, #2 + ldr r1, _08082084 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08082080: .4byte 0x02031F44 +_08082084: .4byte 0x08082088 +_08082088: @ jump table + .4byte _080820BC @ case 0 + .4byte _08082108 @ case 1 + .4byte _08082138 @ case 2 + .4byte _08082170 @ case 3 + .4byte _080821A8 @ case 4 + .4byte _080821C6 @ case 5 + .4byte _080821E4 @ case 6 + .4byte _08082218 @ case 7 + .4byte _08082234 @ case 8 + .4byte _08082244 @ case 9 + .4byte _08082268 @ case 10 + .4byte _080822C0 @ case 11 + .4byte _080822E2 @ case 12 +_080820BC: + ldr r1, [r6] + adds r0, r1, #0 + adds r0, #0x64 + ldrh r2, [r0] + ldr r0, _080820E8 + cmp r2, r0 + bne _080820CC + b _080821BE +_080820CC: + ldr r0, _080820EC + cmp r2, r0 + beq _080820D4 + b _080822F8 +_080820D4: + adds r0, r1, #0 + adds r0, #0x6c + ldrh r2, [r0] + ldr r0, _080820F0 + cmp r2, r0 + bne _080820F4 + adds r1, #0x63 + movs r0, #2 + strb r0, [r1] + b _080822F8 + .align 2, 0 +_080820E8: .4byte 0x00002222 +_080820EC: .4byte 0x00001111 +_080820F0: .4byte 0x00009999 +_080820F4: + ldr r0, _08082104 + cmp r2, r0 + bne _080821BE + adds r1, #0x63 + movs r0, #1 + strb r0, [r1] + b _080822F8 + .align 2, 0 +_08082104: .4byte 0x0000AAAA +_08082108: + ldr r0, [r6] + adds r0, #0x63 + movs r1, #3 + strb r1, [r0] + ldr r4, _0808212C + ldr r0, [r6] + adds r0, #0x6e + ldrh r0, [r0] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08082130 + adds r1, r1, r0 + adds r0, r4, #0 + bl StringCopy + ldr r1, _08082134 + b _0808215C + .align 2, 0 +_0808212C: .4byte 0x02021C7C +_08082130: .4byte 0x020226A8 +_08082134: .4byte 0x0830F808 +_08082138: + ldr r1, [r6] + adds r1, #0x63 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r4, _08082164 + ldr r0, [r6] + adds r0, #0x6e + ldrh r0, [r0] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08082168 + adds r1, r1, r0 + adds r0, r4, #0 + bl StringCopy + ldr r1, _0808216C +_0808215C: + adds r0, r4, #0 + bl StringAppend + b _080822F8 + .align 2, 0 +_08082164: .4byte 0x02021C7C +_08082168: .4byte 0x020226A8 +_0808216C: .4byte 0x0830F7ED +_08082170: + ldr r4, [r6] + ldr r0, _080821A0 + adds r4, r4, r0 + ldr r5, _080821A4 + bl GetPlayerTextSpeedDelay + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl Blender_PrintText + cmp r0, #0 + bne _08082190 + b _080822F8 +_08082190: + ldr r1, [r6] + movs r0, #0x84 + lsls r0, r0, #1 + adds r2, r1, r0 + movs r0, #0 + str r0, [r2] + b _080822D8 + .align 2, 0 +_080821A0: .4byte 0x000011B4 +_080821A4: .4byte 0x02021C7C +_080821A8: + ldr r4, [r6] + movs r2, #0x84 + lsls r2, r2, #1 + adds r1, r4, r2 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + cmp r0, #0x3c + bgt _080821BC + b _080822F8 +_080821BC: + adds r1, r4, #0 +_080821BE: + adds r1, #0x63 + movs r0, #5 + strb r0, [r1] + b _080822F8 +_080821C6: + ldr r0, [r6] + ldr r1, _080821DC + adds r0, r0, r1 + ldr r1, _080821E0 + movs r2, #0 + bl Blender_PrintText + bl sub_0800A8D4 + b _080822D6 + .align 2, 0 +_080821DC: .4byte 0x000011B4 +_080821E0: .4byte 0x0830FBC8 +_080821E4: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080821F0 + b _080822F8 +_080821F0: + ldr r3, _08082214 + ldr r1, [r3] + movs r2, #0x84 + lsls r2, r2, #1 + adds r0, r1, r2 + movs r2, #0 + str r2, [r0] + adds r1, #0x63 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r0, [r3] + movs r1, #0xd0 + lsls r1, r1, #1 + adds r0, r0, r1 + str r2, [r0] + b _080822F8 + .align 2, 0 +_08082214: .4byte 0x02031F44 +_08082218: + bl LinkPlayAgainHandleSaving + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080822F8 + movs r0, #0x37 + bl PlaySE + ldr r0, _08082230 + ldr r1, [r0] + b _080822D8 + .align 2, 0 +_08082230: .4byte 0x02031F44 +_08082234: + ldr r1, [r6] + adds r1, #0x63 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + bl sub_0800A8D4 + b _080822F8 +_08082244: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080822F8 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _08082264 + ldr r1, [r0] + b _080822D8 + .align 2, 0 +_08082264: .4byte 0x02031F44 +_08082268: + ldr r0, _080822A8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _080822F8 + ldr r2, [r6] + adds r0, r2, #0 + adds r0, #0x64 + ldrh r1, [r0] + ldr r0, _080822AC + cmp r1, r0 + bne _080822B4 + bl FreeAllWindowBuffers + movs r0, #2 + bl UnsetBgTilemapBuffer + movs r0, #1 + bl UnsetBgTilemapBuffer + ldr r0, [r6] + bl Free + str r4, [r6] + ldr r0, _080822B0 + bl SetMainCallback2 + b _080822F8 + .align 2, 0 +_080822A8: .4byte 0x02037C74 +_080822AC: .4byte 0x00002222 +_080822B0: .4byte 0x0807F4B9 +_080822B4: + movs r1, #0x84 + lsls r1, r1, #1 + adds r0, r2, r1 + str r4, [r0] + adds r1, r2, #0 + b _080822D8 +_080822C0: + ldr r1, [r6] + movs r2, #0x84 + lsls r2, r2, #1 + adds r1, r1, r2 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + cmp r0, #0x1e + ble _080822F8 + bl sub_0800A7F8 +_080822D6: + ldr r1, [r6] +_080822D8: + adds r1, #0x63 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080822F8 +_080822E2: + ldr r0, _08082334 + ldrb r4, [r0] + cmp r4, #0 + bne _080822F8 + ldr r0, [r6] + bl Free + str r4, [r6] + ldr r0, _08082338 + bl SetMainCallback2 +_080822F8: + bl sub_080824F0 + ldr r0, _0808233C + ldr r1, [r0] + movs r2, #0x8e + lsls r2, r2, #1 + adds r0, r1, r2 + movs r2, #0 + ldrsh r0, [r0, r2] + movs r2, #0x8f + lsls r2, r2, #1 + adds r1, r1, r2 + movs r2, #0 + ldrsh r1, [r1, r2] + bl Blender_DummiedOutFunc + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl RunTextPrinters + bl UpdatePaletteFade + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08082334: .4byte 0x030031C4 +_08082338: .4byte 0x08085B35 +_0808233C: .4byte 0x02031F44 + thumb_func_end CB2_HandlePlayerLinkPlayAgainChoice + + thumb_func_start CB2_HandlePlayerPlayAgainChoice +CB2_HandlePlayerPlayAgainChoice: @ 0x08082340 + push {r4, r5, r6, lr} + ldr r1, _0808235C + ldr r0, [r1] + adds r0, #0x63 + ldrb r0, [r0] + adds r6, r1, #0 + cmp r0, #0xa + bls _08082352 + b _080824AE +_08082352: + lsls r0, r0, #2 + ldr r1, _08082360 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808235C: .4byte 0x02031F44 +_08082360: .4byte 0x08082364 +_08082364: @ jump table + .4byte _08082390 @ case 0 + .4byte _080823C6 @ case 1 + .4byte _080823F0 @ case 2 + .4byte _0808241C @ case 3 + .4byte _080824AE @ case 4 + .4byte _080824AE @ case 5 + .4byte _080824AE @ case 6 + .4byte _080824AE @ case 7 + .4byte _080824AE @ case 8 + .4byte _0808244C @ case 9 + .4byte _08082464 @ case 10 +_08082390: + ldr r1, [r6] + adds r0, r1, #0 + adds r0, #0x70 + ldrh r0, [r0] + cmp r0, #1 + bhi _080823A2 + adds r1, #0x63 + movs r0, #9 + strb r0, [r1] +_080823A2: + ldr r2, [r6] + adds r0, r2, #0 + adds r0, #0x70 + ldrh r1, [r0] + cmp r1, #2 + bne _080823B2 + subs r0, #0xd + strb r1, [r0] +_080823B2: + ldr r1, [r6] + adds r0, r1, #0 + adds r0, #0x70 + ldrh r0, [r0] + cmp r0, #3 + bne _080824AE + adds r1, #0x63 + movs r0, #1 + strb r0, [r1] + b _080824AE +_080823C6: + ldr r0, [r6] + adds r0, #0x63 + movs r2, #0 + movs r1, #3 + strb r1, [r0] + ldr r0, [r6] + ldr r1, _080823E4 + adds r0, r0, r1 + strh r2, [r0] + ldr r0, _080823E8 + ldr r1, _080823EC + bl StringCopy + b _080824AE + .align 2, 0 +_080823E4: .4byte 0x000011B4 +_080823E8: .4byte 0x02021C7C +_080823EC: .4byte 0x0830F7D8 +_080823F0: + ldr r1, [r6] + adds r1, #0x63 + ldrb r0, [r1] + adds r0, #1 + movs r2, #0 + strb r0, [r1] + ldr r0, [r6] + ldr r1, _08082410 + adds r0, r0, r1 + strh r2, [r0] + ldr r0, _08082414 + ldr r1, _08082418 + bl StringCopy + b _080824AE + .align 2, 0 +_08082410: .4byte 0x000011B4 +_08082414: .4byte 0x02021C7C +_08082418: .4byte 0x0830F7B2 +_0808241C: + ldr r4, [r6] + ldr r2, _08082444 + adds r4, r4, r2 + ldr r5, _08082448 + bl GetPlayerTextSpeedDelay + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl Blender_PrintText + cmp r0, #0 + beq _080824AE + ldr r0, [r6] + adds r0, #0x63 + movs r1, #9 + strb r1, [r0] + b _080824AE + .align 2, 0 +_08082444: .4byte 0x000011B4 +_08082448: .4byte 0x02021C7C +_0808244C: + movs r0, #3 + bl BeginFastPaletteFade + ldr r0, _08082460 + ldr r1, [r0] + adds r1, #0x63 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080824AE + .align 2, 0 +_08082460: .4byte 0x02031F44 +_08082464: + ldr r0, _08082484 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080824AE + ldr r0, [r6] + adds r0, #0x70 + ldrh r0, [r0] + cmp r0, #0 + bne _0808248C + ldr r0, _08082488 + bl SetMainCallback2 + b _08082492 + .align 2, 0 +_08082484: .4byte 0x02037C74 +_08082488: .4byte 0x0807F4B9 +_0808248C: + ldr r0, _080824E8 + bl SetMainCallback2 +_08082492: + bl FreeAllWindowBuffers + movs r0, #2 + bl UnsetBgTilemapBuffer + movs r0, #1 + bl UnsetBgTilemapBuffer + ldr r4, _080824EC + ldr r0, [r4] + bl Free + movs r0, #0 + str r0, [r4] +_080824AE: + bl sub_080824F0 + ldr r0, _080824EC + ldr r1, [r0] + movs r2, #0x8e + lsls r2, r2, #1 + adds r0, r1, r2 + movs r2, #0 + ldrsh r0, [r0, r2] + movs r2, #0x8f + lsls r2, r2, #1 + adds r1, r1, r2 + movs r2, #0 + ldrsh r1, [r1, r2] + bl Blender_DummiedOutFunc + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl RunTextPrinters + bl UpdatePaletteFade + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080824E8: .4byte 0x08085B35 +_080824EC: .4byte 0x02031F44 + thumb_func_end CB2_HandlePlayerPlayAgainChoice + + thumb_func_start sub_080824F0 +sub_080824F0: @ 0x080824F0 + push {r4, r5, r6, r7, lr} + ldr r0, _08082528 + ldrb r0, [r0] + cmp r0, #0 + bne _080824FC + b _080826C0 +_080824FC: + ldr r4, _0808252C + ldrh r0, [r4] + ldr r1, _08082530 + movs r2, #0xbc + lsls r2, r2, #6 + bl sub_08080ECC + cmp r0, #0 + beq _08082582 + ldrh r1, [r4, #2] + ldr r0, _08082534 + cmp r1, r0 + bne _08082574 + ldrh r3, [r4, #4] + ldr r0, _08082538 + cmp r3, r0 + beq _08082554 + cmp r3, r0 + bgt _08082540 + ldr r0, _0808253C + b _08082542 + .align 2, 0 +_08082528: .4byte 0x030031C4 +_0808252C: .4byte 0x03003130 +_08082530: .4byte 0x00002FFF +_08082534: .4byte 0x00001111 +_08082538: .4byte 0x00009999 +_0808253C: .4byte 0x00008888 +_08082540: + ldr r0, _0808254C +_08082542: + cmp r3, r0 + beq _08082554 + ldr r2, _08082550 + b _08082564 + .align 2, 0 +_0808254C: .4byte 0x0000AAAA +_08082550: .4byte 0x02031F44 +_08082554: + ldr r2, _0808256C + ldr r0, [r2] + adds r1, r0, #0 + adds r1, #0x6c + strh r3, [r1] + ldrh r1, [r4, #6] + adds r0, #0x6e + strh r1, [r0] +_08082564: + ldr r0, [r2] + adds r0, #0x64 + ldr r1, _08082570 + b _08082580 + .align 2, 0 +_0808256C: .4byte 0x02031F44 +_08082570: .4byte 0x00001111 +_08082574: + ldr r0, _080825AC + cmp r1, r0 + bne _08082582 + ldr r0, _080825B0 + ldr r0, [r0] + adds r0, #0x64 +_08082580: + strh r1, [r0] +_08082582: + bl GetMultiplayerId + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808258E + b _080826C0 +_0808258E: + ldr r2, _080825B0 + ldr r0, [r2] + adds r0, #0x64 + ldrh r1, [r0] + ldr r0, _080825B4 + cmp r1, r0 + bne _0808259E + b _080826C0 +_0808259E: + ldr r0, _080825AC + cmp r1, r0 + bne _080825A6 + b _080826C0 +_080825A6: + movs r5, #0 + adds r7, r2, #0 + b _08082610 + .align 2, 0 +_080825AC: .4byte 0x00002222 +_080825B0: .4byte 0x02031F44 +_080825B4: .4byte 0x00001111 +_080825B8: + ldr r6, _080825E4 + lsls r4, r5, #4 + adds r0, r4, r6 + ldrh r0, [r0] + ldr r1, _080825E8 + movs r2, #0xbc + lsls r2, r2, #6 + bl sub_08080ECC + cmp r0, #0 + beq _0808260A + adds r0, r6, #2 + adds r0, r4, r0 + ldrh r2, [r0] + ldr r0, _080825EC + cmp r2, r0 + beq _08082600 + cmp r2, r0 + bgt _080825F4 + ldr r0, _080825F0 + b _080825FC + .align 2, 0 +_080825E4: .4byte 0x03003130 +_080825E8: .4byte 0x00002FFF +_080825EC: .4byte 0x00008888 +_080825F0: .4byte 0x00007779 +_080825F4: + ldr r0, _08082620 + cmp r2, r0 + beq _08082600 + ldr r0, _08082624 +_080825FC: + cmp r2, r0 + bne _0808260A +_08082600: + ldr r0, [r7] + lsls r1, r5, #1 + adds r0, #0x64 + adds r0, r0, r1 + strh r2, [r0] +_0808260A: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_08082610: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r5, r0 + blo _080825B8 + movs r5, #0 + b _0808262E + .align 2, 0 +_08082620: .4byte 0x00009999 +_08082624: .4byte 0x0000AAAA +_08082628: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_0808262E: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r5, r0 + bhs _0808264A + ldr r0, _0808265C + ldr r0, [r0] + lsls r1, r5, #1 + adds r0, #0x64 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0 + bne _08082628 +_0808264A: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r5, r0 + bne _080826C0 + movs r5, #0 + ldr r4, _08082660 + b _0808266A + .align 2, 0 +_0808265C: .4byte 0x02031F44 +_08082660: .4byte 0x00007779 +_08082664: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_0808266A: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r5, r0 + bhs _08082686 + ldr r0, _080826A0 + ldr r0, [r0] + lsls r1, r5, #1 + adds r0, #0x64 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, r4 + beq _08082664 +_08082686: + ldr r4, _080826A4 + adds r0, r4, #0 + bl sub_080819B0 + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r5, r0 + bne _080826AC + ldr r0, _080826A8 + strh r0, [r4, #2] + b _080826C0 + .align 2, 0 +_080826A0: .4byte 0x02031F44 +_080826A4: .4byte 0x030031B0 +_080826A8: .4byte 0x00002222 +_080826AC: + ldr r0, _080826C8 + strh r0, [r4, #2] + ldr r0, _080826CC + ldr r0, [r0] + lsls r1, r5, #1 + adds r0, #0x64 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r4, #4] + strh r5, [r4, #6] +_080826C0: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080826C8: .4byte 0x00001111 +_080826CC: .4byte 0x02031F44 + thumb_func_end sub_080824F0 + + thumb_func_start sub_080826D0 +sub_080826D0: @ 0x080826D0 + push {r4, lr} + sub sp, #0x14 + movs r1, #0xf0 + lsls r1, r1, #7 + str r1, [sp] + movs r1, #0xa0 + lsls r1, r1, #7 + str r1, [sp, #4] + mov r3, sp + ldr r1, _08082730 + ldr r1, [r1] + mov ip, r1 + movs r1, #0x8e + lsls r1, r1, #1 + add r1, ip + ldrh r2, [r1] + movs r1, #0x78 + subs r1, r1, r2 + strh r1, [r3, #8] + movs r1, #0x8f + lsls r1, r1, #1 + add r1, ip + ldrh r2, [r1] + movs r1, #0x50 + subs r1, r1, r2 + strh r1, [r3, #0xa] + mov r2, sp + movs r3, #0x8d + lsls r3, r3, #1 + add r3, ip + ldrh r1, [r3] + strh r1, [r2, #0xc] + ldrh r1, [r3] + strh r1, [r2, #0xe] + mov r1, ip + adds r1, #0x4a + ldrh r1, [r1] + strh r1, [r2, #0x10] + mov r1, sp + ldm r1!, {r2, r3, r4} + stm r0!, {r2, r3, r4} + ldm r1!, {r2, r3} + stm r0!, {r2, r3} + add sp, #0x14 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08082730: .4byte 0x02031F44 + thumb_func_end sub_080826D0 + + thumb_func_start GetBlenderArrowPosition +GetBlenderArrowPosition: @ 0x08082734 + ldr r0, _08082740 + ldr r0, [r0] + adds r0, #0x4a + ldrh r0, [r0] + bx lr + .align 2, 0 +_08082740: .4byte 0x02031F44 + thumb_func_end GetBlenderArrowPosition + + thumb_func_start sub_08082744 +sub_08082744: @ 0x08082744 + push {r4, lr} + movs r1, #0 + ldr r4, _0808279C + ldrb r0, [r4] + cmp r0, #0 + beq _08082758 + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 +_08082758: + ldr r0, _080827A0 + ldrb r0, [r0] + cmp r0, #0 + beq _080827E8 + ldrb r0, [r4] + cmp r0, #0 + beq _080827E8 + cmp r1, #0 + bne _080827AC + ldr r0, _080827A4 + ldr r3, [r0] + adds r2, r3, #0 + adds r2, #0x4a + adds r0, r3, #0 + adds r0, #0x4c + ldrh r0, [r0] + ldrh r1, [r2] + adds r0, r0, r1 + strh r0, [r2] + ldr r1, _080827A8 + movs r4, #0x8b + lsls r4, r4, #1 + adds r0, r3, r4 + ldrh r0, [r0] + strh r0, [r1, #0xa] + ldrh r0, [r2] + strh r0, [r1, #0xc] + movs r1, #0xa0 + lsls r1, r1, #1 + adds r0, r3, r1 + bl sub_080826D0 + b _08082806 + .align 2, 0 +_0808279C: .4byte 0x030031C4 +_080827A0: .4byte 0x0300319C +_080827A4: .4byte 0x02031F44 +_080827A8: .4byte 0x030031B0 +_080827AC: + ldr r3, _080827E0 + ldrh r0, [r3] + movs r1, #0xff + lsls r1, r1, #8 + ands r1, r0 + movs r0, #0x88 + lsls r0, r0, #7 + cmp r1, r0 + bne _08082806 + ldr r0, _080827E4 + ldr r2, [r0] + ldrh r0, [r3, #0xa] + movs r4, #0x8b + lsls r4, r4, #1 + adds r1, r2, r4 + strh r0, [r1] + ldrh r0, [r3, #0xc] + adds r1, r2, #0 + adds r1, #0x4a + strh r0, [r1] + movs r1, #0xa0 + lsls r1, r1, #1 + adds r0, r2, r1 + bl sub_080826D0 + b _08082806 + .align 2, 0 +_080827E0: .4byte 0x03003130 +_080827E4: .4byte 0x02031F44 +_080827E8: + ldr r0, _0808280C + ldr r1, [r0] + adds r2, r1, #0 + adds r2, #0x4a + adds r0, r1, #0 + adds r0, #0x4c + ldrh r0, [r0] + ldrh r3, [r2] + adds r0, r0, r3 + strh r0, [r2] + movs r4, #0xa0 + lsls r4, r4, #1 + adds r0, r1, r4 + bl sub_080826D0 +_08082806: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808280C: .4byte 0x02031F44 + thumb_func_end sub_08082744 + + thumb_func_start BerryBlender_SetBackgroundsPos +BerryBlender_SetBackgroundsPos: @ 0x08082810 + push {r4, r5, r6, lr} + ldr r4, _08082854 + ldr r0, [r4] + movs r6, #0x8e + lsls r6, r6, #1 + adds r0, r0, r6 + ldrh r1, [r0] + movs r0, #0x14 + bl SetGpuReg + ldr r0, [r4] + movs r5, #0x8f + lsls r5, r5, #1 + adds r0, r0, r5 + ldrh r1, [r0] + movs r0, #0x16 + bl SetGpuReg + ldr r0, [r4] + adds r0, r0, r6 + ldrh r1, [r0] + movs r0, #0x10 + bl SetGpuReg + ldr r0, [r4] + adds r0, r0, r5 + ldrh r1, [r0] + movs r0, #0x12 + bl SetGpuReg + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08082854: .4byte 0x02031F44 + thumb_func_end BerryBlender_SetBackgroundsPos + + thumb_func_start sub_08082858 +sub_08082858: @ 0x08082858 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x2e] + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] + ldrh r0, [r2, #0x30] + ldrh r1, [r2, #0x34] + adds r0, r0, r1 + strh r0, [r2, #0x34] + movs r1, #0x32 + ldrsh r0, [r2, r1] + cmp r0, #0 + bge _08082876 + adds r0, #7 +_08082876: + asrs r0, r0, #3 + strh r0, [r2, #0x24] + movs r1, #0x34 + ldrsh r0, [r2, r1] + cmp r0, #0 + bge _08082884 + adds r0, #7 +_08082884: + asrs r0, r0, #3 + strh r0, [r2, #0x26] + adds r0, r2, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0808289C + adds r0, r2, #0 + bl DestroySprite +_0808289C: + pop {r0} + bx r0 + thumb_func_end sub_08082858 + + thumb_func_start sub_080828A0 +sub_080828A0: @ 0x080828A0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + bl Random + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + movs r0, #1 + ands r1, r0 + adds r0, r1, #1 + cmp r0, #0 + beq _0808295C + ldr r0, _0808296C + mov sb, r0 + ldr r2, _08082970 + mov sl, r2 + adds r6, r1, #1 + movs r3, #0x1f + mov r8, r3 + movs r7, #0x10 +_080828CC: + bl Random + ldr r1, _08082974 + ldr r4, [r1] + adds r4, #0x4a + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x14 + bl __umodsi3 + ldrh r1, [r4] + adds r1, r1, r0 + lsls r1, r1, #0x10 + movs r0, #0xff + lsls r0, r0, #0x10 + ands r0, r1 + lsrs r2, r0, #0x10 + adds r0, r2, #0 + adds r0, #0x40 + lsls r0, r0, #1 + add r0, sb + movs r3, #0 + ldrsh r1, [r0, r3] + cmp r1, #0 + bge _08082900 + adds r1, #3 +_08082900: + asrs r1, r1, #2 + lsls r0, r2, #1 + add r0, sb + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r0, #0 + bge _08082910 + adds r0, #3 +_08082910: + asrs r2, r0, #2 + adds r1, #0x78 + adds r2, #0x50 + ldr r0, _08082978 + movs r3, #1 + bl CreateSprite + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl Random + lsls r5, r4, #4 + adds r5, r5, r4 + lsls r5, r5, #2 + mov r3, sl + adds r4, r5, r3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r1, r8 + ands r0, r1 + subs r0, r7, r0 + strh r0, [r4, #0x2e] + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r2, r8 + ands r0, r2 + subs r0, r7, r0 + strh r0, [r4, #0x30] + ldr r3, _0808297C + adds r5, r5, r3 + ldr r0, _08082980 + str r0, [r5] + subs r6, #1 + cmp r6, #0 + bne _080828CC +_0808295C: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0808296C: .4byte 0x082FA8CC +_08082970: .4byte 0x020205AC +_08082974: .4byte 0x02031F44 +_08082978: .4byte 0x0830FAD0 +_0808297C: .4byte 0x020205C8 +_08082980: .4byte 0x08082859 + thumb_func_end sub_080828A0 + + thumb_func_start sub_08082984 +sub_08082984: @ 0x08082984 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r1, #3 + bl __divsi3 + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080829B0 + adds r0, r4, #0 + bl DestroySprite +_080829B0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08082984 + + thumb_func_start sub_080829B8 +sub_080829B8: @ 0x080829B8 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x2e] + adds r0, #1 + strh r0, [r2, #0x2e] + movs r1, #0x2e + ldrsh r0, [r2, r1] + lsls r0, r0, #1 + rsbs r0, r0, #0 + strh r0, [r2, #0x26] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0xc + rsbs r1, r1, #0 + cmp r0, r1 + bge _080829DC + ldr r0, _080829F4 + strh r0, [r2, #0x26] +_080829DC: + adds r0, r2, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080829F0 + adds r0, r2, #0 + bl DestroySprite +_080829F0: + pop {r0} + bx r0 + .align 2, 0 +_080829F4: .4byte 0x0000FFF4 + thumb_func_end sub_080829B8 + + thumb_func_start Blender_SetParticipantBerryData +Blender_SetParticipantBerryData: @ 0x080829F8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r2, _08082A28 + ldr r3, [r2] + lsls r4, r0, #1 + adds r2, r3, #0 + adds r2, #0x74 + adds r2, r2, r4 + strh r1, [r2] + lsls r0, r0, #4 + movs r2, #0xac + lsls r2, r2, #1 + adds r0, r0, r2 + adds r3, r3, r0 + adds r0, r3, #0 + bl Blender_CopyBerryData + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08082A28: .4byte 0x02031F44 + thumb_func_end Blender_SetParticipantBerryData + + thumb_func_start sub_08082A2C +sub_08082A2C: @ 0x08082A2C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _08082A68 + cmp r0, #1 + bgt _08082A42 + cmp r0, #0 + beq _08082A48 + b _08082ACE +_08082A42: + cmp r0, #2 + beq _08082A82 + b _08082ACE +_08082A48: + ldrh r0, [r4, #0x30] + adds r0, #8 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x58 + ble _08082ACE + movs r0, #0x58 + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + movs r0, #0x38 + bl PlaySE + b _08082ACE +_08082A68: + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x14 + ble _08082ACE + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + movs r0, #0 + strh r0, [r4, #0x32] + b _08082ACE +_08082A82: + ldrh r0, [r4, #0x30] + adds r0, #4 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xb0 + ble _08082ACE + ldrh r0, [r4, #0x34] + adds r0, #1 + adds r1, r0, #0 + strh r0, [r4, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + bne _08082ABC + adds r0, r4, #0 + bl DestroySprite + ldr r0, _08082AB8 + movs r2, #0x14 + rsbs r2, r2, #0 + movs r1, #0x78 + movs r3, #2 + bl CreateSprite + b _08082ACE + .align 2, 0 +_08082AB8: .4byte 0x0830FB50 +_08082ABC: + movs r0, #0 + strh r0, [r4, #0x2e] + ldr r0, _08082AD8 + strh r0, [r4, #0x30] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim +_08082ACE: + ldrh r0, [r4, #0x30] + strh r0, [r4, #0x26] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08082AD8: .4byte 0x0000FFF0 + thumb_func_end sub_08082A2C + + thumb_func_start sub_08082ADC +sub_08082ADC: @ 0x08082ADC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _08082B18 + cmp r0, #1 + bgt _08082AF2 + cmp r0, #0 + beq _08082AF8 + b _08082B4C +_08082AF2: + cmp r0, #2 + beq _08082B2E + b _08082B4C +_08082AF8: + ldrh r0, [r4, #0x30] + adds r0, #8 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x5c + ble _08082B4C + movs r0, #0x5c + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + movs r0, #0x15 + bl PlaySE + b _08082B4C +_08082B18: + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x14 + ble _08082B4C + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + b _08082B4C +_08082B2E: + ldrh r0, [r4, #0x30] + adds r0, #4 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xb0 + ble _08082B4C + ldr r0, _08082B58 + ldr r1, [r0] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl DestroySprite +_08082B4C: + ldrh r0, [r4, #0x30] + strh r0, [r4, #0x26] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08082B58: .4byte 0x02031F44 + thumb_func_end sub_08082ADC + + thumb_func_start sub_08082B5C +sub_08082B5C: @ 0x08082B5C + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r3, r1, #0x10 + ldr r1, _08082B88 + ldr r1, [r1] + movs r2, #0x8c + lsls r2, r2, #1 + adds r1, r1, r2 + ldrh r2, [r1] + cmp r2, r0 + bhs _08082B82 + adds r0, r2, #2 + strh r0, [r1] + ldrh r0, [r1] + adds r1, r3, #0 + bl sub_08082B8C +_08082B82: + pop {r0} + bx r0 + .align 2, 0 +_08082B88: .4byte 0x02031F44 + thumb_func_end sub_08082B5C + + thumb_func_start sub_08082B8C +sub_08082B8C: @ 0x08082B8C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r7, _08082C1C + lsrs r0, r0, #0xa + bl __divsi3 + adds r1, r0, #0 + cmp r1, #0 + bge _08082BA4 + adds r0, r1, #7 +_08082BA4: + asrs r4, r0, #3 + movs r3, #0 + cmp r3, r4 + bge _08082BCC + ldr r0, _08082C20 + adds r6, r0, #0 + adds r0, #0x10 + adds r5, r0, #0 + adds r2, r7, #0 + adds r2, #0x56 + adds r0, r7, #0 + adds r3, r4, #0 +_08082BBC: + strh r6, [r0, #0x16] + strh r5, [r2] + adds r2, #2 + adds r0, #2 + subs r3, #1 + cmp r3, #0 + bne _08082BBC + adds r3, r4, #0 +_08082BCC: + adds r0, r1, #0 + cmp r1, #0 + bge _08082BD4 + adds r0, r1, #7 +_08082BD4: + asrs r2, r0, #3 + lsls r0, r2, #3 + subs r2, r1, r0 + cmp r2, #0 + beq _08082BF2 + lsls r0, r3, #1 + adds r0, r0, r7 + ldr r4, _08082C24 + adds r1, r2, r4 + strh r1, [r0, #0x16] + adds r0, #0x56 + adds r4, #0x10 + adds r1, r2, r4 + strh r1, [r0] + adds r3, #1 +_08082BF2: + cmp r3, #7 + bgt _08082C16 + ldr r0, _08082C28 + adds r4, r0, #0 + adds r0, #0x10 + adds r2, r0, #0 + lsls r1, r3, #1 + adds r0, r1, #0 + adds r0, #0x56 + adds r0, r0, r7 + adds r1, r1, r7 +_08082C08: + strh r4, [r1, #0x16] + strh r2, [r0] + adds r0, #2 + adds r1, #2 + adds r3, #1 + cmp r3, #7 + ble _08082C08 +_08082C16: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08082C1C: .4byte 0x06006000 +_08082C20: .4byte 0x000080E9 +_08082C24: .4byte 0xFFFF80E1 +_08082C28: .4byte 0x000080E1 + thumb_func_end sub_08082B8C + + thumb_func_start sub_08082C2C +sub_08082C2C: @ 0x08082C2C + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _08082C44 + muls r0, r1, r0 + cmp r0, #0 + bge _08082C3E + ldr r1, _08082C48 + adds r0, r0, r1 +_08082C3E: + asrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 +_08082C44: .4byte 0x00057E40 +_08082C48: .4byte 0x0000FFFF + thumb_func_end sub_08082C2C + + thumb_func_start sub_08082C4C +sub_08082C4C: @ 0x08082C4C + push {r4, r5, r6, lr} + sub sp, #8 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl sub_08082C2C + adds r5, r0, #0 + ldr r0, _08082CCC + ldr r0, [r0] + adds r1, r0, #0 + adds r1, #0x4e + ldrh r0, [r1] + cmp r0, r5 + bhs _08082C6A + strh r5, [r1] +_08082C6A: + movs r6, #0 +_08082C6C: + mov r0, sp + adds r4, r0, r6 + adds r0, r5, #0 + movs r1, #0xa + bl __umodsi3 + strb r0, [r4] + adds r0, r5, #0 + movs r1, #0xa + bl __udivsi3 + adds r5, r0, #0 + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #4 + bls _08082C6C + ldr r2, _08082CD0 + mov r0, sp + ldr r3, _08082CD4 + adds r1, r3, #0 + ldrb r0, [r0, #4] + adds r0, r1, r0 + strh r0, [r2] + adds r2, #2 + mov r0, sp + ldrb r0, [r0, #3] + adds r0, r0, r1 + strh r0, [r2] + adds r2, #2 + mov r0, sp + ldrb r0, [r0, #2] + adds r0, r0, r1 + strh r0, [r2] + adds r2, #4 + mov r0, sp + ldrb r0, [r0, #1] + adds r0, r0, r1 + strh r0, [r2] + adds r2, #2 + mov r0, sp + ldrb r0, [r0] + adds r1, r1, r0 + strh r1, [r2] + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08082CCC: .4byte 0x02031F44 +_08082CD0: .4byte 0x06006458 +_08082CD4: .4byte 0x00008072 + thumb_func_end sub_08082C4C + + thumb_func_start sub_08082CD8 +sub_08082CD8: @ 0x08082CD8 + push {r4, r5, r6, lr} + adds r6, r0, #0 + lsls r4, r1, #0x10 + lsrs r5, r4, #0x10 + movs r1, #0 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _08082CFC + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r5, #0 + bl __umodsi3 + lsrs r1, r4, #0x11 + subs r0, r0, r1 + strh r0, [r6] +_08082CFC: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08082CD8 + + thumb_func_start sub_08082D04 +sub_08082D04: @ 0x08082D04 + push {lr} + adds r1, r0, #0 + ldrh r2, [r1] + movs r3, #0 + ldrsh r0, [r1, r3] + cmp r0, #0 + bge _08082D16 + adds r0, r2, #1 + strh r0, [r1] +_08082D16: + ldrh r2, [r1] + movs r3, #0 + ldrsh r0, [r1, r3] + cmp r0, #0 + ble _08082D24 + subs r0, r2, #1 + strh r0, [r1] +_08082D24: + pop {r0} + bx r0 + thumb_func_end sub_08082D04 + + thumb_func_start sub_08082D28 +sub_08082D28: @ 0x08082D28 + push {r4, lr} + ldr r4, _08082D4C + ldr r0, [r4] + movs r1, #0x8e + lsls r1, r1, #1 + adds r0, r0, r1 + bl sub_08082D04 + ldr r0, [r4] + movs r1, #0x8f + lsls r1, r1, #1 + adds r0, r0, r1 + bl sub_08082D04 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08082D4C: .4byte 0x02031F44 + thumb_func_end sub_08082D28 + + thumb_func_start sub_08082D50 +sub_08082D50: @ 0x08082D50 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r5, #8 + cmp r1, #9 + bhi _08082D60 + movs r5, #0x10 +_08082D60: + ldrh r0, [r4] + movs r2, #0 + ldrsh r1, [r4, r2] + cmp r1, #0 + bne _08082D7E + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r5, #0 + bl __modsi3 + lsrs r1, r5, #1 + subs r0, r0, r1 + b _08082D92 +_08082D7E: + cmp r1, #0 + bge _08082D86 + adds r0, #1 + strh r0, [r4] +_08082D86: + ldrh r1, [r4] + movs r2, #0 + ldrsh r0, [r4, r2] + cmp r0, #0 + ble _08082D94 + subs r0, r1, #1 +_08082D92: + strh r0, [r4] +_08082D94: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08082D50 + + thumb_func_start sub_08082D9C +sub_08082D9C: @ 0x08082D9C + push {r4, r5, lr} + ldr r5, _08082DF4 + ldr r2, [r5] + movs r4, #0x84 + lsls r4, r4, #1 + adds r0, r2, r4 + ldr r1, [r0] + cmp r1, #0 + bne _08082DBC + movs r3, #0x8e + lsls r3, r3, #1 + adds r0, r2, r3 + strh r1, [r0] + adds r3, #2 + adds r0, r2, r3 + strh r1, [r0] +_08082DBC: + ldr r0, [r5] + adds r2, r0, r4 + ldr r1, [r2] + adds r1, #1 + str r1, [r2] + movs r2, #0x8e + lsls r2, r2, #1 + adds r0, r0, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl sub_08082D50 + ldr r1, [r5] + movs r3, #0x8f + lsls r3, r3, #1 + adds r0, r1, r3 + adds r1, r1, r4 + ldrh r1, [r1] + bl sub_08082D50 + ldr r2, [r5] + adds r0, r2, r4 + ldr r0, [r0] + cmp r0, #0x14 + beq _08082DF8 + movs r0, #0 + b _08082E0C + .align 2, 0 +_08082DF4: .4byte 0x02031F44 +_08082DF8: + movs r1, #0x8e + lsls r1, r1, #1 + adds r0, r2, r1 + movs r1, #0 + strh r1, [r0] + movs r3, #0x8f + lsls r3, r3, #1 + adds r0, r2, r3 + strh r1, [r0] + movs r0, #1 +_08082E0C: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08082D9C + + thumb_func_start sub_08082E14 +sub_08082E14: @ 0x08082E14 + ldr r1, _08082E30 + ldr r2, [r1] + movs r3, #0x8e + lsls r3, r3, #1 + adds r1, r2, r3 + ldrh r1, [r1] + rsbs r1, r1, #0 + strh r1, [r0, #0x24] + adds r3, #2 + adds r1, r2, r3 + ldrh r1, [r1] + rsbs r1, r1, #0 + strh r1, [r0, #0x26] + bx lr + .align 2, 0 +_08082E30: .4byte 0x02031F44 + thumb_func_end sub_08082E14 + + thumb_func_start TryUpdateBerryBlenderRecord +TryUpdateBerryBlenderRecord: @ 0x08082E34 + push {lr} + ldr r0, _08082E60 + ldr r2, [r0] + ldr r0, _08082E64 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0x7c + ldrb r0, [r0] + subs r0, #2 + lsls r0, r0, #1 + ldr r3, _08082E68 + adds r2, r2, r3 + adds r2, r2, r0 + adds r1, #0x4e + ldrh r1, [r1] + ldrh r0, [r2] + cmp r0, r1 + bhs _08082E5A + strh r1, [r2] +_08082E5A: + pop {r0} + bx r0 + .align 2, 0 +_08082E60: .4byte 0x03005AEC +_08082E64: .4byte 0x02031F44 +_08082E68: .4byte 0x000009BC + thumb_func_end TryUpdateBerryBlenderRecord + + thumb_func_start Blender_PrintBlendingResults +Blender_PrintBlendingResults: @ 0x08082E6C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x4c + ldr r1, _08082E90 + ldr r0, [r1] + ldrb r0, [r0] + adds r4, r1, #0 + cmp r0, #6 + bls _08082E86 + b _0808328C +_08082E86: + lsls r0, r0, #2 + ldr r1, _08082E94 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08082E90: .4byte 0x02031F44 +_08082E94: .4byte 0x08082E98 +_08082E98: @ jump table + .4byte _08082EB4 @ case 0 + .4byte _08082ECA @ case 1 + .4byte _08082EE4 @ case 2 + .4byte _08082F34 @ case 3 + .4byte _08083184 @ case 4 + .4byte _0808319C @ case 5 + .4byte _08083260 @ case 6 +_08082EB4: + ldr r1, [r4] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r0, [r4] + movs r1, #0x84 + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #0x11 + str r1, [r0] + b _0808328C +_08082ECA: + ldr r1, [r4] + movs r3, #0x84 + lsls r3, r3, #1 + adds r2, r1, r3 + ldr r0, [r2] + subs r0, #0xa + str r0, [r2] + cmp r0, #0 + blt _08082EDE + b _0808328C +_08082EDE: + movs r0, #0 + str r0, [r2] + b _08083248 +_08082EE4: + ldr r1, [r4] + movs r0, #0x84 + lsls r0, r0, #1 + adds r1, r1, r0 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + cmp r0, #0x14 + bgt _08082EF8 + b _0808328C +_08082EF8: + movs r6, #0 +_08082EFA: + ldr r4, _08082F2C + ldr r0, [r4] + adds r0, #0x46 + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08082F30 + adds r0, r0, r1 + bl DestroySprite + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #2 + bls _08082EFA + ldr r1, [r4] + movs r3, #0x84 + lsls r3, r3, #1 + adds r2, r1, r3 + movs r0, #0 + str r0, [r2] + b _08083248 + .align 2, 0 +_08082F2C: .4byte 0x02031F44 +_08082F30: .4byte 0x020205AC +_08082F34: + ldr r1, _08083154 + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + movs r0, #5 + movs r2, #0x38 + movs r3, #1 + bl Blender_AddTextPrinter + movs r6, #0 + ldr r1, _08083158 + ldr r0, [r1] + adds r0, #0x7c + mov r2, sp + adds r2, #0x10 + str r2, [sp, #0x48] + ldrb r0, [r0] + cmp r6, r0 + bhs _0808302A + adds r7, r1, #0 + ldr r3, _0808315C + mov sl, r3 + mov sb, r6 + movs r0, #3 + mov r8, r0 +_08082F66: + ldr r0, [r7] + movs r2, #0x9e + lsls r2, r2, #1 + adds r1, r0, r2 + adds r1, r1, r6 + ldrb r4, [r1] + adds r0, #0x9f + adds r5, r6, #1 + adds r1, r5, #0 + movs r2, #0 + movs r3, #1 + bl ConvertIntToDecimalStringN + ldr r0, [r7] + adds r0, #0x9f + ldr r1, _08083160 + bl StringAppend + ldr r0, [r7] + adds r0, #0x9f + lsls r1, r4, #3 + subs r1, r1, r4 + lsls r1, r1, #2 + ldr r2, _08083164 + adds r1, r1, r2 + bl StringAppend + ldr r0, [r7] + adds r1, r0, #0 + adds r1, #0x9f + adds r0, #0x7c + ldrb r0, [r0] + ldr r3, _08083168 + adds r2, r0, r3 + add r0, sl + ldrb r0, [r0] + adds r3, r6, #0 + muls r3, r0, r3 + ldrb r2, [r2] + adds r3, r3, r2 + subs r3, #3 + lsls r3, r3, #0x1b + lsrs r3, r3, #0x18 + mov r0, sb + str r0, [sp] + mov r2, r8 + str r2, [sp, #4] + movs r0, #5 + movs r2, #0x10 + bl Blender_AddTextPrinter + ldr r1, [r7] + adds r0, r1, #0 + adds r0, #0x9f + lsls r4, r4, #4 + adds r4, r4, r1 + movs r3, #0xad + lsls r3, r3, #1 + adds r4, r4, r3 + adds r1, r4, #0 + bl StringCopy + ldr r0, [r7] + adds r0, #0x9f + ldr r1, _0808316C + bl StringAppend + ldr r0, [r7] + adds r1, r0, #0 + adds r1, #0x9f + adds r0, #0x7c + ldrb r0, [r0] + ldr r3, _08083168 + adds r2, r0, r3 + add r0, sl + ldrb r0, [r0] + adds r3, r6, #0 + muls r3, r0, r3 + ldrb r2, [r2] + adds r3, r3, r2 + subs r3, #3 + lsls r3, r3, #0x1b + lsrs r3, r3, #0x18 + mov r0, sb + str r0, [sp] + mov r2, r8 + str r2, [sp, #4] + movs r0, #5 + movs r2, #0x60 + bl Blender_AddTextPrinter + lsls r5, r5, #0x10 + lsrs r6, r5, #0x10 + ldr r0, [r7] + adds r0, #0x7c + ldrb r0, [r0] + cmp r6, r0 + blo _08082F66 +_0808302A: + ldr r1, _08083170 + movs r3, #0 + mov sb, r3 + str r3, [sp] + movs r0, #3 + mov sl, r0 + str r0, [sp, #4] + movs r0, #5 + movs r2, #8 + movs r3, #0x50 + bl Blender_AddTextPrinter + ldr r6, _08083158 + ldr r0, [r6] + adds r4, r0, #0 + adds r4, #0x9f + adds r0, #0x4e + ldrh r0, [r0] + movs r1, #0x64 + bl __udivsi3 + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r0, [r6] + adds r0, #0x9f + ldr r1, _08083160 + bl StringAppend + ldr r0, [r6] + adds r0, #0x4e + ldrh r0, [r0] + movs r1, #0x64 + bl __umodsi3 + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, [sp, #0x48] + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r0, [r6] + adds r0, #0x9f + ldr r1, [sp, #0x48] + bl StringAppend + ldr r0, [r6] + adds r0, #0x9f + ldr r1, _08083174 + bl StringAppend + ldr r1, [r6] + adds r1, #0x9f + mov r2, sb + str r2, [sp] + mov r3, sl + str r3, [sp, #4] + movs r0, #5 + movs r2, #0x48 + movs r3, #0x50 + bl Blender_AddTextPrinter + ldr r1, _08083178 + mov r0, sb + str r0, [sp] + mov r2, sl + str r2, [sp, #4] + movs r0, #5 + movs r2, #8 + movs r3, #0x60 + bl Blender_AddTextPrinter + ldr r5, [r6] + movs r3, #0x82 + lsls r3, r3, #1 + adds r0, r5, r3 + ldr r0, [r0] + mov r8, r0 + movs r1, #0x3c + bl __udivsi3 + movs r1, #0x3c + bl __umodsi3 + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + movs r1, #0xe1 + lsls r1, r1, #4 + mov r0, r8 + bl __udivsi3 + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r5, #0x9f + adds r0, r5, #0 + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r0, [r6] + adds r0, #0x9f + ldr r1, _0808317C + bl StringAppend + adds r1, r4, #0 + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r0, [r6] + adds r0, #0x9f + ldr r1, _08083180 + bl StringAppend + ldr r1, [r6] + adds r1, #0x9f + mov r0, sb + str r0, [sp] + mov r2, sl + str r2, [sp, #4] + movs r0, #5 + movs r2, #0x48 + movs r3, #0x60 + bl Blender_AddTextPrinter + ldr r1, [r6] + movs r3, #0x84 + lsls r3, r3, #1 + adds r0, r1, r3 + mov r2, sb + str r2, [r0] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #5 + movs r1, #2 + bl CopyWindowToVram + b _0808328C + .align 2, 0 +_08083154: .4byte 0x0830F81F +_08083158: .4byte 0x02031F44 +_0808315C: .4byte 0x0830FC2E +_08083160: .4byte 0x0830F847 +_08083164: .4byte 0x020226A8 +_08083168: .4byte 0x0830FC29 +_0808316C: .4byte 0x0830F82D +_08083170: .4byte 0x0830F83B +_08083174: .4byte 0x0830F843 +_08083178: .4byte 0x0830F830 +_0808317C: .4byte 0x0830F834 +_08083180: .4byte 0x0830F837 +_08083184: + ldr r0, _08083198 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08083192 + b _0808328C +_08083192: + ldr r1, [r4] + b _08083248 + .align 2, 0 +_08083198: .4byte 0x03002360 +_0808319C: + movs r0, #5 + movs r1, #1 + bl ClearStdWindowAndFrameToTransparent + movs r6, #0 + add r7, sp, #0x40 + ldr r5, _08083250 +_080831AA: + ldr r0, [r5] + lsls r2, r6, #1 + adds r0, #0x74 + adds r0, r0, r2 + ldrh r1, [r0] + cmp r1, #0 + beq _080831C0 + add r0, sp, #0x38 + adds r0, r0, r2 + subs r1, #0x85 + strh r1, [r0] +_080831C0: + ldr r0, [r5] + adds r0, #0x8e + adds r0, r0, r2 + ldrh r0, [r0] + cmp r0, #0xff + beq _080831DE + lsls r4, r6, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl PutWindowTilemap + adds r0, r4, #0 + movs r1, #3 + bl CopyWindowToVram +_080831DE: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #3 + bls _080831AA + bl sub_0808183C + ldr r4, _08083250 + ldr r3, [r4] + movs r1, #0xac + lsls r1, r1, #1 + adds r0, r3, r1 + adds r1, r3, #0 + adds r1, #0x7c + ldrb r2, [r1] + subs r1, #0x2e + ldrh r1, [r1] + str r1, [sp] + adds r1, r7, #0 + add r3, sp, #8 + bl Blender_CalculatePokeblock + ldr r1, [r4] + adds r1, #0x9f + adds r0, r7, #0 + bl Blender_PrintMadePokeblockString + ldr r1, [r4] + movs r2, #0xd4 + lsls r2, r2, #1 + adds r1, r1, r2 + adds r0, r7, #0 + bl TryAddContestLinkTvShow + ldr r0, _08083254 + movs r1, #6 + bl CreateTask + bl sub_080EF7F0 + ldr r0, _08083258 + ldrh r0, [r0] + movs r1, #1 + bl RemoveBagItem + adds r0, r7, #0 + bl sub_08136F9C + ldr r1, [r4] + ldr r3, _0808325C + adds r2, r1, r3 + movs r0, #0 + strh r0, [r2] +_08083248: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0808328C + .align 2, 0 +_08083250: .4byte 0x02031F44 +_08083254: .4byte 0x080838C5 +_08083258: .4byte 0x0203CB48 +_0808325C: .4byte 0x000011B4 +_08083260: + ldr r4, [r4] + ldr r0, _08083288 + adds r5, r4, r0 + adds r4, #0x9f + bl GetPlayerTextSpeedDelay + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r5, #0 + adds r1, r4, #0 + bl Blender_PrintText + cmp r0, #0 + beq _0808328C + bl TryUpdateBerryBlenderRecord + movs r0, #1 + b _0808328E + .align 2, 0 +_08083288: .4byte 0x000011B4 +_0808328C: + movs r0, #0 +_0808328E: + add sp, #0x4c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end Blender_PrintBlendingResults + + thumb_func_start Blender_PrintMadePokeblockString +Blender_PrintMadePokeblockString: @ 0x080832A0 + push {r4, r5, r6, lr} + sub sp, #0xc + adds r5, r0, #0 + adds r6, r1, #0 + movs r0, #0xff + strb r0, [r6] + ldr r1, _08083334 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r6, #0 + bl StringCopy + ldr r1, _08083338 + adds r0, r6, #0 + bl StringAppend + ldr r1, _0808333C + adds r0, r6, #0 + bl StringAppend + adds r0, r5, #0 + bl sub_08136F14 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + bl sub_08136F4C + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r1, _08083340 + adds r0, r6, #0 + bl StringAppend + mov r0, sp + adds r1, r4, #0 + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + adds r0, r6, #0 + mov r1, sp + bl StringAppend + ldr r1, _08083344 + adds r0, r6, #0 + bl StringAppend + mov r0, sp + adds r1, r5, #0 + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + adds r0, r6, #0 + mov r1, sp + bl StringAppend + ldr r1, _08083348 + adds r0, r6, #0 + bl StringAppend + ldr r1, _0808334C + adds r0, r6, #0 + bl StringAppend + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08083334: .4byte 0x08592078 +_08083338: .4byte 0x0830F6FD +_0808333C: .4byte 0x0830F849 +_08083340: .4byte 0x0830F853 +_08083344: .4byte 0x0830F857 +_08083348: .4byte 0x0830F860 +_0808334C: .4byte 0x0830F6FB + thumb_func_end Blender_PrintMadePokeblockString + + thumb_func_start Blender_SortBasedOnPoints +Blender_SortBasedOnPoints: @ 0x08083350 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov sb, r0 + mov ip, r2 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + movs r0, #0 + cmp r0, r7 + bge _0808339C +_08083366: + movs r5, #0 + adds r1, r0, #1 + mov r8, r1 + cmp r5, r7 + bge _08083396 + mov r1, sb + adds r6, r1, r0 +_08083374: + ldrb r4, [r6] + lsls r1, r4, #2 + add r1, ip + mov r0, sb + adds r2, r0, r5 + ldrb r3, [r2] + lsls r0, r3, #2 + add r0, ip + ldr r1, [r1] + ldr r0, [r0] + cmp r1, r0 + bls _08083390 + strb r3, [r6] + strb r4, [r2] +_08083390: + adds r5, #1 + cmp r5, r7 + blt _08083374 +_08083396: + mov r0, r8 + cmp r0, r7 + blt _08083366 +_0808339C: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end Blender_SortBasedOnPoints + + thumb_func_start Blender_SortScores +Blender_SortScores: @ 0x080833A8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + movs r5, #0 + ldr r2, _080833C4 + ldr r0, [r2] + adds r0, #0x7c + adds r1, r2, #0 + add r3, sp, #4 + mov sl, r3 + b _080833D8 + .align 2, 0 +_080833C4: .4byte 0x02031F44 +_080833C8: + mov r4, sp + adds r0, r4, r5 + strb r5, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, [r2] + adds r0, #0x7c +_080833D8: + ldrb r0, [r0] + cmp r5, r0 + blo _080833C8 + movs r5, #0 + ldr r0, [r1] + adds r1, r0, #0 + adds r1, #0x7c + ldrb r2, [r1] + cmp r5, r2 + bhs _08083452 + mov sb, sl + movs r3, #0x92 + lsls r3, r3, #1 + adds r3, r3, r0 + mov r8, r3 + mov ip, r1 + movs r4, #0x93 + lsls r4, r4, #1 + adds r7, r0, r4 + movs r1, #0x94 + lsls r1, r1, #1 + adds r6, r0, r1 +_08083404: + lsls r4, r5, #2 + add r4, sb + lsls r3, r5, #1 + adds r3, r3, r5 + lsls r3, r3, #1 + mov r2, r8 + adds r0, r2, r3 + ldrh r2, [r0] + lsls r0, r2, #5 + subs r0, r0, r2 + lsls r1, r0, #6 + subs r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + lsls r1, r1, #6 + str r1, [r4] + adds r0, r7, r3 + ldrh r2, [r0] + lsls r0, r2, #5 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r1, r1, r0 + str r1, [r4] + movs r0, #0xfa + lsls r0, r0, #2 + adds r1, r1, r0 + adds r3, r6, r3 + ldrh r0, [r3] + subs r1, r1, r0 + str r1, [r4] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + mov r1, ip + ldrb r1, [r1] + cmp r5, r1 + blo _08083404 +_08083452: + ldr r4, _080834A0 + ldr r0, [r4] + adds r0, #0x7c + ldrb r1, [r0] + mov r0, sp + mov r2, sl + bl Blender_SortBasedOnPoints + movs r5, #0 + ldr r0, [r4] + adds r0, #0x7c + ldrb r0, [r0] + cmp r5, r0 + bhs _08083492 + adds r2, r4, #0 + movs r3, #0x9e + lsls r3, r3, #1 +_08083474: + ldr r1, [r2] + adds r1, r1, r3 + adds r1, r1, r5 + mov r4, sp + adds r0, r4, r5 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, [r2] + adds r0, #0x7c + ldrb r0, [r0] + cmp r5, r0 + blo _08083474 +_08083492: + ldr r0, _080834A4 + ldrb r0, [r0] + cmp r0, #0 + bne _080834A8 + movs r3, #0 + b _080834B0 + .align 2, 0 +_080834A0: .4byte 0x02031F44 +_080834A4: .4byte 0x030031C4 +_080834A8: + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 +_080834B0: + movs r5, #0 + ldr r1, _080834F8 + ldr r0, [r1] + adds r0, #0x7c + ldrb r0, [r0] + cmp r5, r0 + bhs _080834E6 + movs r6, #0x9e + lsls r6, r6, #1 + movs r4, #0xd2 + lsls r4, r4, #1 +_080834C6: + ldr r2, [r1] + adds r0, r2, r6 + adds r0, r0, r5 + ldrb r0, [r0] + cmp r0, r3 + bne _080834D6 + adds r0, r2, r4 + strb r5, [r0] +_080834D6: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, [r1] + adds r0, #0x7c + ldrb r0, [r0] + cmp r5, r0 + blo _080834C6 +_080834E6: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080834F8: .4byte 0x02031F44 + thumb_func_end Blender_SortScores + + thumb_func_start Blender_PrintBlendingRanking +Blender_PrintBlendingRanking: @ 0x080834FC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #8 + ldr r1, _08083520 + ldr r0, [r1] + ldrb r0, [r0] + adds r2, r1, #0 + cmp r0, #6 + bls _08083514 + b _080837B6 +_08083514: + lsls r0, r0, #2 + ldr r1, _08083524 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08083520: .4byte 0x02031F44 +_08083524: .4byte 0x08083528 +_08083528: @ jump table + .4byte _08083544 @ case 0 + .4byte _0808355A @ case 1 + .4byte _08083574 @ case 2 + .4byte _0808358E @ case 3 + .4byte _0808376C @ case 4 + .4byte _08083786 @ case 5 + .4byte _080837AC @ case 6 +_08083544: + ldr r1, [r2] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r0, [r2] + movs r1, #0x84 + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #0xff + str r1, [r0] + b _080837B6 +_0808355A: + ldr r1, [r2] + movs r3, #0x84 + lsls r3, r3, #1 + adds r2, r1, r3 + ldr r0, [r2] + subs r0, #0xa + str r0, [r2] + cmp r0, #0 + blt _0808356E + b _080837B6 +_0808356E: + movs r0, #0 + str r0, [r2] + b _0808379C +_08083574: + ldr r1, [r2] + movs r0, #0x84 + lsls r0, r0, #1 + adds r2, r1, r0 + ldr r0, [r2] + adds r0, #1 + str r0, [r2] + cmp r0, #0x14 + bgt _08083588 + b _080837B6 +_08083588: + movs r0, #0 + str r0, [r2] + b _0808379C +_0808358E: + movs r0, #5 + movs r1, #0 + movs r2, #1 + movs r3, #0xd + bl DrawStdFrameWithCustomTileAndPalette + ldr r1, _0808374C + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + movs r0, #5 + movs r2, #0x40 + movs r3, #0 + bl Blender_AddTextPrinter + ldr r1, _08083750 + mov r8, r1 + mov r0, r8 + movs r1, #0x80 + movs r2, #0x34 + movs r3, #0 + bl CreateSprite + ldr r7, _08083754 + ldr r1, [r7] + adds r1, #0x46 + strb r0, [r1] + ldr r0, [r7] + adds r0, #0x46 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r6, _08083758 + adds r0, r0, r6 + movs r1, #3 + bl StartSpriteAnim + ldr r0, [r7] + adds r0, #0x46 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r5, r6, #0 + adds r5, #0x1c + adds r0, r0, r5 + ldr r4, _0808375C + str r4, [r0] + mov r0, r8 + movs r1, #0xa0 + movs r2, #0x34 + movs r3, #0 + bl CreateSprite + ldr r1, [r7] + adds r1, #0x47 + strb r0, [r1] + ldr r0, [r7] + adds r0, #0x47 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + str r4, [r0] + mov r0, r8 + movs r1, #0xc0 + movs r2, #0x34 + movs r3, #0 + bl CreateSprite + ldr r1, [r7] + adds r1, #0x48 + strb r0, [r1] + ldr r0, [r7] + adds r0, #0x48 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #1 + bl StartSpriteAnim + ldr r0, [r7] + adds r0, #0x48 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + str r4, [r0] + bl Blender_SortScores + movs r2, #0 + mov r8, r2 + ldr r0, [r7] + adds r0, #0x7c + ldrb r0, [r0] + cmp r8, r0 + bhs _0808372C + ldr r3, _08083760 + mov sb, r3 +_0808365E: + ldr r0, [r7] + movs r2, #0x9e + lsls r2, r2, #1 + adds r1, r0, r2 + add r1, r8 + ldrb r4, [r1] + adds r0, #0x9f + mov r5, r8 + adds r5, #1 + adds r1, r5, #0 + movs r2, #0 + movs r3, #1 + bl ConvertIntToDecimalStringN + ldr r0, [r7] + adds r0, #0x9f + ldr r1, _08083764 + bl StringAppend + ldr r0, [r7] + adds r0, #0x9f + lsls r1, r4, #3 + subs r1, r1, r4 + lsls r1, r1, #2 + ldr r2, _08083768 + adds r1, r1, r2 + bl StringAppend + ldr r0, [r7] + adds r1, r0, #0 + adds r1, #0x9f + adds r0, #0x7c + ldrb r0, [r0] + add r0, sb + ldrb r0, [r0] + mov r3, r8 + muls r3, r0, r3 + adds r3, #5 + lsls r3, r3, #0x1b + lsrs r3, r3, #0x18 + movs r0, #0 + str r0, [sp] + movs r0, #3 + str r0, [sp, #4] + movs r0, #5 + movs r2, #0 + bl Blender_AddTextPrinter + movs r6, #0 + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r4, r0, #1 +_080836C6: + ldr r1, [r7] + adds r0, r1, #0 + adds r0, #0x9f + lsls r2, r6, #1 + adds r2, r2, r4 + movs r3, #0x92 + lsls r3, r3, #1 + adds r1, r1, r3 + adds r1, r1, r2 + ldrh r1, [r1] + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r0, [r7] + adds r1, r0, #0 + adds r1, #0x9f + lsls r2, r6, #0x1d + movs r3, #0x90 + lsls r3, r3, #0x17 + adds r2, r2, r3 + lsrs r2, r2, #0x18 + adds r0, #0x7c + ldrb r0, [r0] + add r0, sb + ldrb r0, [r0] + mov r3, r8 + muls r3, r0, r3 + adds r3, #5 + lsls r3, r3, #0x1b + lsrs r3, r3, #0x18 + movs r0, #0 + str r0, [sp] + movs r0, #3 + str r0, [sp, #4] + movs r0, #5 + bl Blender_AddTextPrinter + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #2 + bls _080836C6 + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + ldr r0, [r7] + adds r0, #0x7c + ldrb r0, [r0] + cmp r8, r0 + blo _0808365E +_0808372C: + movs r0, #5 + bl PutWindowTilemap + movs r0, #5 + movs r1, #3 + bl CopyWindowToVram + ldr r0, _08083754 + ldr r1, [r0] + movs r0, #0x84 + lsls r0, r0, #1 + adds r2, r1, r0 + movs r0, #0 + str r0, [r2] + b _0808379C + .align 2, 0 +_0808374C: .4byte 0x0830F84D +_08083750: .4byte 0x0830FA30 +_08083754: .4byte 0x02031F44 +_08083758: .4byte 0x020205AC +_0808375C: .4byte 0x08007141 +_08083760: .4byte 0x0830FC33 +_08083764: .4byte 0x0830F847 +_08083768: .4byte 0x020226A8 +_0808376C: + ldr r2, [r2] + movs r3, #0x84 + lsls r3, r3, #1 + adds r1, r2, r3 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + cmp r0, #0x14 + ble _080837B6 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + b _080837B6 +_08083786: + ldr r0, _080837A4 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080837B6 + movs r0, #5 + bl PlaySE + ldr r0, _080837A8 + ldr r1, [r0] +_0808379C: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080837B6 + .align 2, 0 +_080837A4: .4byte 0x03002360 +_080837A8: .4byte 0x02031F44 +_080837AC: + ldr r1, [r2] + movs r0, #0 + strb r0, [r1] + movs r0, #1 + b _080837B8 +_080837B6: + movs r0, #0 +_080837B8: + add sp, #8 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end Blender_PrintBlendingRanking + + thumb_func_start ShowBerryBlenderRecordWindow +ShowBerryBlenderRecordWindow: @ 0x080837C8 + push {r4, r5, r6, r7, lr} + sub sp, #0x34 + ldr r0, _080838A4 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [sp, #0x2c] + str r1, [sp, #0x30] + ldr r5, _080838A8 + add r0, sp, #0x2c + bl AddWindow + strb r0, [r5] + ldrb r0, [r5] + movs r1, #0 + bl ClearStdWindowAndFrame + ldrb r0, [r5] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldrb r0, [r5] + ldr r2, _080838AC + movs r1, #2 + str r1, [sp] + movs r4, #0 + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #8 + bl AddTextPrinterParameterized + ldrb r0, [r5] + ldr r2, _080838B0 + movs r1, #0x2a + str r1, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #8 + bl AddTextPrinterParameterized + movs r6, #0 + movs r7, #0xa8 + lsls r7, r7, #0x16 +_08083820: + ldr r0, _080838B4 + ldr r0, [r0] + lsls r1, r6, #1 + ldr r2, _080838B8 + adds r0, r0, r2 + adds r0, r0, r1 + ldrh r4, [r0] + adds r0, r4, #0 + movs r1, #0x64 + bl __udivsi3 + adds r1, r0, #0 + add r0, sp, #0xc + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + adds r5, r0, #0 + ldr r1, _080838BC + bl StringAppend + adds r5, r0, #0 + adds r0, r4, #0 + movs r1, #0x64 + bl __umodsi3 + adds r1, r0, #0 + adds r0, r5, #0 + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + adds r5, r0, #0 + ldr r1, _080838C0 + bl StringAppend + ldr r4, _080838A8 + ldrb r0, [r4] + lsrs r1, r7, #0x18 + str r1, [sp] + movs r1, #0 + str r1, [sp, #4] + str r1, [sp, #8] + movs r1, #1 + add r2, sp, #0xc + movs r3, #0x30 + bl AddTextPrinterParameterized + movs r0, #0x80 + lsls r0, r0, #0x15 + adds r7, r7, r0 + adds r6, #1 + cmp r6, #2 + ble _08083820 + ldrb r0, [r4] + bl PutWindowTilemap + ldrb r0, [r4] + movs r1, #3 + bl CopyWindowToVram + add sp, #0x34 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080838A4: .4byte 0x0830FC60 +_080838A8: .4byte 0x0203A840 +_080838AC: .4byte 0x0830FC38 +_080838B0: .4byte 0x0830FC50 +_080838B4: .4byte 0x03005AEC +_080838B8: .4byte 0x000009BC +_080838BC: .4byte 0x0830F847 +_080838C0: .4byte 0x0830F843 + thumb_func_end ShowBerryBlenderRecordWindow + + thumb_func_start sub_080838C4 +sub_080838C4: @ 0x080838C4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + ldr r1, _08083910 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080838EA + ldr r0, _08083914 + bl PlayFanfare + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080838EA: + bl IsFanfareTaskInactive + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808390A + ldr r0, _08083918 + ldr r0, [r0] + movs r1, #0xaa + lsls r1, r1, #1 + adds r0, r0, r1 + ldrh r0, [r0] + bl PlayBGM + adds r0, r5, #0 + bl DestroyTask +_0808390A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08083910: .4byte 0x03005B60 +_08083914: .4byte 0x0000016F +_08083918: .4byte 0x02031F44 + thumb_func_end sub_080838C4 + + thumb_func_start TryAddContestLinkTvShow +TryAddContestLinkTvShow: @ 0x0808391C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + adds r6, r0, #0 + adds r7, r1, #0 + bl sub_08136F14 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r6, #0 + bl sub_08136F4C + adds r1, r0, #0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #1 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + strb r3, [r7, #0xa] + ldrb r0, [r6] + strb r0, [r7, #9] + movs r0, #0xff + strb r0, [r7] + ldr r0, _080839D4 + ldrb r0, [r0] + cmp r0, #0 + beq _08083A4C + ldr r0, _080839D8 + ldr r2, [r0] + movs r4, #0xd2 + lsls r4, r4, #1 + adds r1, r2, r4 + ldrb r1, [r1] + mov r8, r0 + cmp r1, #0 + bne _080839E0 + cmp r3, #0x14 + bls _080839E0 + adds r0, r2, #0 + adds r0, #0x7c + ldrb r1, [r0] + subs r1, #1 + movs r0, #0x9e + lsls r0, r0, #1 + mov sb, r0 + adds r0, r2, r0 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + ldr r5, _080839DC + adds r1, r1, r5 + adds r0, r7, #0 + bl StringCopy + adds r0, r6, #0 + bl sub_08137124 + strb r0, [r7, #8] + ldrb r1, [r7, #8] + ldrb r2, [r7, #9] + ldrb r3, [r7, #0xa] + mov r6, r8 + ldr r4, [r6] + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + subs r0, #1 + add r4, sb + adds r4, r4, r0 + ldrb r4, [r4] + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + adds r5, r5, r0 + ldrb r0, [r5, #0x12] + str r0, [sp] + adds r0, r7, #0 + bl Put3CheersForPokeblocksOnTheAir + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08083A42 + b _08083A4C + .align 2, 0 +_080839D4: .4byte 0x030031C4 +_080839D8: .4byte 0x02031F44 +_080839DC: .4byte 0x020226A8 +_080839E0: + mov r0, r8 + ldr r2, [r0] + movs r1, #0xd2 + lsls r1, r1, #1 + adds r0, r2, r1 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x7c + ldrb r0, [r0] + subs r0, #1 + cmp r1, r0 + bne _08083A4C + cmp r3, #0x14 + bhi _08083A4C + movs r4, #0x9e + lsls r4, r4, #1 + adds r0, r2, r4 + ldrb r0, [r0] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + ldr r5, _08083A48 + adds r1, r1, r5 + adds r0, r7, #0 + bl StringCopy + adds r0, r6, #0 + bl sub_08137124 + strb r0, [r7, #8] + ldrb r1, [r7, #8] + ldrb r2, [r7, #9] + ldrb r3, [r7, #0xa] + mov r6, r8 + ldr r0, [r6] + adds r0, r0, r4 + ldrb r4, [r0] + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + adds r5, r5, r0 + ldrb r0, [r5, #0x12] + str r0, [sp] + adds r0, r7, #0 + bl Put3CheersForPokeblocksOnTheAir + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08083A4C +_08083A42: + movs r0, #1 + b _08083A4E + .align 2, 0 +_08083A48: .4byte 0x020226A8 +_08083A4C: + movs r0, #0 +_08083A4E: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end TryAddContestLinkTvShow + + thumb_func_start Blender_AddTextPrinter +Blender_AddTextPrinter: @ 0x08083A5C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x18 + mov sb, r1 + ldr r4, [sp, #0x38] + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + lsls r3, r3, #0x18 + lsrs r7, r3, #0x18 + movs r5, #0 + cmp r4, #1 + beq _08083A9E + cmp r4, #1 + bgt _08083A88 + cmp r4, #0 + beq _08083A90 + b _08083ABA +_08083A88: + cmp r4, #2 + beq _08083AAC + cmp r4, #3 + bne _08083ABE +_08083A90: + add r1, sp, #0x14 + movs r0, #1 + strb r0, [r1] + movs r0, #2 + strb r0, [r1, #1] + movs r0, #3 + b _08083AB8 +_08083A9E: + add r0, sp, #0x14 + strb r5, [r0] + adds r1, r0, #0 + movs r0, #2 + strb r0, [r1, #1] + movs r0, #3 + b _08083AB8 +_08083AAC: + add r0, sp, #0x14 + strb r5, [r0] + adds r1, r0, #0 + movs r0, #4 + strb r0, [r1, #1] + movs r0, #5 +_08083AB8: + strb r0, [r1, #2] +_08083ABA: + cmp r4, #3 + beq _08083AD0 +_08083ABE: + add r0, sp, #0x14 + ldrb r0, [r0] + lsls r1, r0, #4 + orrs r1, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r6, #0 + bl FillWindowPixelBuffer +_08083AD0: + movs r0, #0 + str r0, [sp] + movs r0, #1 + str r0, [sp, #4] + add r0, sp, #0x14 + str r0, [sp, #8] + ldr r0, [sp, #0x34] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + str r0, [sp, #0xc] + mov r0, sb + str r0, [sp, #0x10] + adds r0, r6, #0 + movs r1, #1 + mov r2, r8 + adds r3, r7, #0 + bl AddTextPrinterParameterized4 + add sp, #0x18 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Blender_AddTextPrinter + + thumb_func_start Blender_PrintText +Blender_PrintText: @ 0x08083B04 + push {r4, r5, r6, r7, lr} + sub sp, #8 + adds r5, r0, #0 + adds r7, r1, #0 + adds r6, r2, #0 + movs r0, #0 + ldrsh r4, [r5, r0] + cmp r4, #0 + beq _08083B1C + cmp r4, #1 + beq _08083B4E + b _08083B62 +_08083B1C: + movs r0, #4 + movs r1, #0 + movs r2, #0x14 + movs r3, #0xf + bl DrawDialogFrameWithCustomTileAndPalette + str r6, [sp] + str r4, [sp, #4] + movs r0, #4 + adds r1, r7, #0 + movs r2, #1 + movs r3, #1 + bl Blender_AddTextPrinter + movs r0, #4 + bl PutWindowTilemap + movs r0, #4 + movs r1, #3 + bl CopyWindowToVram + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + b _08083B62 +_08083B4E: + movs r0, #4 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + bne _08083B62 + strh r0, [r5] + movs r0, #1 + b _08083B64 +_08083B62: + movs r0, #0 +_08083B64: + add sp, #8 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end Blender_PrintText + diff --git a/asm/berry_crush.s b/asm/berry_crush.s new file mode 100644 index 0000000..c0ccaf4 --- /dev/null +++ b/asm/berry_crush.s @@ -0,0 +1,7556 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_08020918 +sub_08020918: @ 0x08020918 + ldr r0, _08020920 + ldr r0, [r0] + bx lr + .align 2, 0 +_08020920: .4byte 0x02022944 + thumb_func_end sub_08020918 + + thumb_func_start sub_08020924 +sub_08020924: @ 0x08020924 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08020934 + ldr r0, [r5] + cmp r0, #0 + bne _08020938 + movs r0, #2 + b _08020974 + .align 2, 0 +_08020934: .4byte 0x02022944 +_08020938: + cmp r4, #0 + bne _0802093E + ldr r4, [r0] +_0802093E: + ldrb r0, [r0, #0xa] + bl DestroyTask + ldr r0, [r5] + bl Free + movs r0, #0 + str r0, [r5] + adds r0, r4, #0 + bl SetMainCallback2 + ldr r0, _0802097C + cmp r4, r0 + bne _08020972 + ldr r2, _08020980 + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + movs r0, #0xc8 + lsls r0, r0, #1 + bl PlayNewMapMusic + ldr r0, _08020984 + bl SetMainCallback1 +_08020972: + movs r0, #0 +_08020974: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0802097C: .4byte 0x08085A31 +_08020980: .4byte 0x030030B4 +_08020984: .4byte 0x0808576D + thumb_func_end sub_08020924 + + thumb_func_start sub_08020988 +sub_08020988: @ 0x08020988 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + adds r4, r0, #0 + movs r0, #0 + mov r8, r0 + ldr r0, _080209B8 + ldrb r0, [r0] + cmp r0, #0 + beq _080209A6 + ldr r0, _080209BC + ldrb r0, [r0] + cmp r0, #0 + bne _080209C4 +_080209A6: + adds r0, r4, #0 + bl SetMainCallback2 + ldr r0, _080209C0 + mov r1, r8 + strh r1, [r0, #0x10] + strh r1, [r0, #0x12] + b _08020A10 + .align 2, 0 +_080209B8: .4byte 0x030031C4 +_080209BC: .4byte 0x0300319C +_080209C0: .4byte 0x030050A0 +_080209C4: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + mov r0, r8 + cmp r0, #1 + bls _080209E0 + cmp r7, r8 + blo _080209F4 +_080209E0: + adds r0, r4, #0 + bl SetMainCallback2 + ldr r0, _080209F0 + movs r1, #0 + strh r1, [r0, #0x10] + strh r1, [r0, #0x12] + b _08020A10 + .align 2, 0 +_080209F0: .4byte 0x030050A0 +_080209F4: + ldr r6, _08020A1C + ldr r0, _08020A20 + bl AllocZeroed + adds r5, r0, #0 + str r5, [r6] + cmp r5, #0 + bne _08020A28 + adds r0, r4, #0 + bl SetMainCallback2 + ldr r0, _08020A24 + strh r5, [r0, #0x10] + strh r5, [r0, #0x12] +_08020A10: + adds r0, #0xee + ldrb r1, [r0] + movs r1, #1 + strb r1, [r0] + b _08020A8C + .align 2, 0 +_08020A1C: .4byte 0x02022944 +_08020A20: .4byte 0x000041AC +_08020A24: .4byte 0x030050A0 +_08020A28: + str r4, [r5] + movs r4, #0 + strb r7, [r5, #8] + ldr r0, [r6] + mov r1, r8 + strb r1, [r0, #9] + ldr r0, [r6] + bl sub_08020CE0 + ldr r1, [r6] + movs r2, #1 + movs r0, #1 + strh r0, [r1, #0x12] + strb r2, [r1, #0xe] + ldr r1, [r6] + movs r0, #6 + strb r0, [r1, #0xf] + ldr r0, [r6] + adds r0, #0x36 + movs r2, #1 + rsbs r2, r2, #0 + movs r1, #0x10 + str r1, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #0 + bl sub_080243D0 + ldr r2, [r6] + adds r2, #0x36 + movs r0, #4 + movs r1, #1 + bl sub_08022950 + ldr r0, _08020A98 + bl SetMainCallback2 + ldr r0, _08020A9C + movs r1, #8 + bl CreateTask + ldr r1, [r6] + strb r0, [r1, #0xa] + ldr r2, _08020AA0 + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_08020A8C: + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08020A98: .4byte 0x08020CA5 +_08020A9C: .4byte 0x08020CBD +_08020AA0: .4byte 0x030030B4 + thumb_func_end sub_08020988 + + thumb_func_start sub_08020AA4 +sub_08020AA4: @ 0x08020AA4 + push {r4, lr} + sub sp, #0xc + ldr r1, _08020ABC + ldrh r0, [r1] + subs r0, #0x85 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x2b + bls _08020AC0 + movs r0, #0x85 + strh r0, [r1] + b _08020AC8 + .align 2, 0 +_08020ABC: .4byte 0x0203CB48 +_08020AC0: + ldrh r0, [r1] + movs r1, #1 + bl RemoveBagItem +_08020AC8: + ldr r4, _08020B28 + ldr r2, [r4] + ldrb r1, [r2, #8] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r2, r0 + ldr r1, _08020B2C + ldrh r1, [r1] + subs r1, #0x85 + adds r0, #0xa0 + movs r3, #0 + strh r1, [r0] + movs r0, #1 + strb r0, [r2, #0xe] + ldr r1, [r4] + movs r0, #9 + strb r0, [r1, #0xf] + ldr r0, [r4] + adds r0, #0x36 + movs r2, #1 + rsbs r2, r2, #0 + movs r1, #0x10 + str r1, [sp] + str r3, [sp, #4] + str r3, [sp, #8] + movs r1, #0 + bl sub_080243D0 + ldr r2, [r4] + adds r2, #0x36 + movs r0, #4 + movs r1, #1 + bl sub_08022950 + ldr r0, _08020B30 + movs r1, #8 + bl CreateTask + ldr r1, [r4] + strb r0, [r1, #0xa] + ldr r0, _08020B34 + bl SetMainCallback2 + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08020B28: .4byte 0x02022944 +_08020B2C: .4byte 0x0203CB48 +_08020B30: .4byte 0x08020CBD +_08020B34: .4byte 0x08020CA5 + thumb_func_end sub_08020AA4 + + thumb_func_start sub_08020B38 +sub_08020B38: @ 0x08020B38 + push {lr} + ldr r0, _08020B50 + ldr r0, [r0] + ldrb r0, [r0, #0xa] + bl DestroyTask + ldr r0, _08020B54 + bl sub_081AA968 + pop {r0} + bx r0 + .align 2, 0 +_08020B50: .4byte 0x02022944 +_08020B54: .4byte 0x08020AA5 + thumb_func_end sub_08020B38 + + thumb_func_start sub_08020B58 +sub_08020B58: @ 0x08020B58 + push {lr} + ldr r0, _08020B64 + bl SetVBlankCallback + pop {r0} + bx r0 + .align 2, 0 +_08020B64: .4byte 0x08020C91 + thumb_func_end sub_08020B58 + + thumb_func_start sub_08020B68 +sub_08020B68: @ 0x08020B68 + push {lr} + movs r0, #0 + bl SetVBlankCallback + pop {r0} + bx r0 + thumb_func_end sub_08020B68 + + thumb_func_start sub_08020B74 +sub_08020B74: @ 0x08020B74 + push {r4, r5, r6, lr} + ldr r4, _08020BB8 + ldr r0, [r4] + adds r0, #0x6c + ldrh r2, [r0] + lsls r2, r2, #8 + movs r1, #0xf0 + lsls r1, r1, #6 + adds r0, r2, #0 + bl sub_081515D8 + adds r2, r0, #0 + ldr r0, [r4] + adds r0, #0x72 + ldrh r3, [r0] + lsls r3, r3, #8 + adds r0, r3, #0 + adds r1, r2, #0 + bl sub_081515D8 + adds r3, r0, #0 + ldr r0, _08020BBC + ands r3, r0 + ldr r2, [r4] + strh r3, [r2, #0x16] + ldrb r0, [r2, #9] + cmp r0, #3 + beq _08020BF8 + cmp r0, #3 + bgt _08020BC0 + cmp r0, #2 + beq _08020BCA + b _08020C64 + .align 2, 0 +_08020BB8: .4byte 0x02022944 +_08020BBC: .4byte 0x0000FFFF +_08020BC0: + cmp r0, #4 + beq _08020C08 + cmp r0, #5 + beq _08020C3C + b _08020C64 +_08020BCA: + ldr r5, _08020BF4 + ldr r1, [r5] + movs r0, #0xf6 + lsls r0, r0, #1 + adds r1, r1, r0 + lsls r0, r3, #0x10 + lsrs r0, r0, #0x10 + ldrh r1, [r1] + cmp r0, r1 + bls _08020C64 + adds r2, #0x25 + ldrb r0, [r2] + movs r1, #2 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r5] + ldr r1, [r4] + ldrh r1, [r1, #0x16] + movs r2, #0xf6 + lsls r2, r2, #1 + b _08020C30 + .align 2, 0 +_08020BF4: .4byte 0x03005AF0 +_08020BF8: + ldr r5, _08020C04 + ldr r0, [r5] + movs r6, #0xf7 + lsls r6, r6, #1 + b _08020C44 + .align 2, 0 +_08020C04: .4byte 0x03005AF0 +_08020C08: + ldr r5, _08020C38 + ldr r1, [r5] + movs r0, #0xf8 + lsls r0, r0, #1 + adds r1, r1, r0 + lsls r0, r3, #0x10 + lsrs r0, r0, #0x10 + ldrh r1, [r1] + cmp r0, r1 + bls _08020C64 + adds r2, #0x25 + ldrb r0, [r2] + movs r1, #2 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r5] + ldr r1, [r4] + ldrh r1, [r1, #0x16] + movs r2, #0xf8 + lsls r2, r2, #1 +_08020C30: + adds r0, r0, r2 + strh r1, [r0] + b _08020C64 + .align 2, 0 +_08020C38: .4byte 0x03005AF0 +_08020C3C: + ldr r5, _08020C88 + ldr r0, [r5] + movs r6, #0xf9 + lsls r6, r6, #1 +_08020C44: + adds r1, r0, r6 + lsls r0, r3, #0x10 + lsrs r0, r0, #0x10 + ldrh r1, [r1] + cmp r0, r1 + bls _08020C64 + adds r2, #0x25 + ldrb r0, [r2] + movs r1, #2 + orrs r0, r1 + strb r0, [r2] + ldr r1, [r5] + ldr r0, [r4] + ldrh r0, [r0, #0x16] + adds r1, r1, r6 + strh r0, [r1] +_08020C64: + ldr r4, _08020C8C + ldr r1, [r4] + ldr r0, [r1, #0x68] + str r0, [r1, #0x1c] + bl GiveBerryPowder + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08020C82 + ldr r0, [r4] + adds r0, #0x25 + ldrb r1, [r0] + movs r2, #1 + orrs r1, r2 + strb r1, [r0] +_08020C82: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08020C88: .4byte 0x03005AF0 +_08020C8C: .4byte 0x02022944 + thumb_func_end sub_08020B74 + + thumb_func_start sub_08020C90 +sub_08020C90: @ 0x08020C90 + push {lr} + bl TransferPlttBuffer + bl LoadOam + bl ProcessSpriteCopyRequests + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08020C90 + + thumb_func_start sub_08020CA4 +sub_08020CA4: @ 0x08020CA4 + push {lr} + bl RunTasks + bl RunTextPrinters + bl AnimateSprites + bl BuildOamBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08020CA4 + + thumb_func_start sub_08020CBC +sub_08020CBC: @ 0x08020CBC + push {r4, lr} + ldr r4, _08020CDC + ldr r0, [r4] + ldr r2, [r0, #4] + cmp r2, #0 + beq _08020CD0 + adds r1, r0, #0 + adds r1, #0x36 + bl _call_via_r2 +_08020CD0: + ldr r0, [r4] + bl sub_0802117C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08020CDC: .4byte 0x02022944 + thumb_func_end sub_08020CBC + + thumb_func_start sub_08020CE0 +sub_08020CE0: @ 0x08020CE0 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r5, #0 + b _08020D0A +_08020CE8: + lsls r1, r5, #3 + subs r1, r1, r5 + lsls r1, r1, #2 + adds r4, r1, r6 + adds r0, r4, #0 + adds r0, #0x98 + ldr r2, _08020D54 + adds r1, r1, r2 + movs r2, #7 + bl memcpy + adds r4, #0x9f + movs r0, #0xff + strb r0, [r4] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_08020D0A: + ldrb r0, [r6, #9] + cmp r5, r0 + blo _08020CE8 + cmp r5, #4 + bhi _08020D3A +_08020D14: + lsls r4, r5, #3 + subs r4, r4, r5 + lsls r4, r4, #2 + adds r0, r4, #0 + adds r0, #0x98 + adds r0, r6, r0 + movs r1, #1 + movs r2, #7 + bl memset + adds r4, r6, r4 + adds r4, #0x9f + movs r0, #0xff + strb r0, [r4] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #4 + bls _08020D14 +_08020D3A: + ldr r0, _08020D58 + ldr r0, [r0] + ldrb r0, [r0, #0x14] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1d + cmp r0, #1 + beq _08020D66 + cmp r0, #1 + bgt _08020D5C + cmp r0, #0 + beq _08020D62 + b _08020D6E + .align 2, 0 +_08020D54: .4byte 0x020226A8 +_08020D58: .4byte 0x03005AF0 +_08020D5C: + cmp r0, #2 + beq _08020D6A + b _08020D6E +_08020D62: + movs r0, #8 + b _08020D6C +_08020D66: + movs r0, #4 + b _08020D6C +_08020D6A: + movs r0, #1 +_08020D6C: + strb r0, [r6, #0xb] +_08020D6E: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_08020CE0 + + thumb_func_start sub_08020D74 +sub_08020D74: @ 0x08020D74 + push {r4, r5, lr} + sub sp, #0xc + bl sub_08020918 + adds r5, r0, #0 + cmp r5, #0 + bne _08020D88 + movs r0, #1 + rsbs r0, r0, #0 + b _08021030 +_08020D88: + ldrb r0, [r5, #0xc] + cmp r0, #9 + bls _08020D90 + b _08021028 +_08020D90: + lsls r0, r0, #2 + ldr r1, _08020D9C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08020D9C: .4byte 0x08020DA0 +_08020DA0: @ jump table + .4byte _08020DC8 @ case 0 + .4byte _08020DE6 @ case 1 + .4byte _08020E0C @ case 2 + .4byte _08020E1A @ case 3 + .4byte _08020EA4 @ case 4 + .4byte _08020EEA @ case 5 + .4byte _08020F18 @ case 6 + .4byte _08020F48 @ case 7 + .4byte _08020FA4 @ case 8 + .4byte _08020FE0 @ case 9 +_08020DC8: + movs r0, #0 + bl SetVBlankCallback + movs r0, #0 + bl SetHBlankCallback + movs r0, #0 + movs r1, #0 + bl SetGpuReg + bl ScanlineEffect_Stop + bl reset_temp_tile_data_buffers + b _08021028 +_08020DE6: + add r0, sp, #8 + movs r4, #0 + strh r4, [r0] + movs r1, #0xe0 + lsls r1, r1, #0x13 + ldr r2, _08020E04 + bl CpuSet + ldr r0, _08020E08 + strb r4, [r0] + movs r0, #3 + bl sub_08034AAC + b _08021028 + .align 2, 0 +_08020E04: .4byte 0x01000200 +_08020E08: .4byte 0x030030BC +_08020E0C: + bl ResetPaletteFade + bl ResetSpriteData + bl FreeAllSpritePalettes + b _08021028 +_08020E1A: + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _08020E98 + movs r0, #0 + movs r2, #4 + bl InitBgsFromTemplates + movs r0, #0xd6 + lsls r0, r0, #1 + adds r1, r5, r0 + movs r0, #1 + bl SetBgTilemapBuffer + ldr r0, _08020E9C + adds r1, r5, r0 + movs r0, #2 + bl SetBgTilemapBuffer + ldr r0, _08020EA0 + adds r1, r5, r0 + movs r0, #3 + bl SetBgTilemapBuffer + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + b _08021028 + .align 2, 0 +_08020E98: .4byte 0x082C5EE0 +_08020E9C: .4byte 0x000021AC +_08020EA0: .4byte 0x000031AC +_08020EA4: + movs r4, #0x20 + str r4, [sp] + str r4, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + str r4, [sp] + movs r0, #0x40 + str r0, [sp, #4] + movs r0, #1 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + str r4, [sp] + str r4, [sp, #4] + movs r0, #2 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + str r4, [sp] + str r4, [sp, #4] + movs r0, #3 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + b _08021028 +_08020EEA: + movs r0, #0 + bl CopyBgTilemapBufferToVram + movs r0, #1 + bl CopyBgTilemapBufferToVram + movs r0, #2 + bl CopyBgTilemapBufferToVram + movs r0, #3 + bl CopyBgTilemapBufferToVram + ldr r1, _08020F14 + movs r0, #0 + str r0, [sp] + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + b _08021028 + .align 2, 0 +_08020F14: .4byte 0x082C6104 +_08020F18: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08020F24 + b _0802102E +_08020F24: + bl InitStandardTextBoxWindows + bl sub_08196DF4 + adds r0, r5, #0 + bl sub_080222E8 + adds r0, r5, #0 + bl sub_08022360 + ldr r0, _08020F44 + ldrb r1, [r0, #8] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0, #8] + b _08021028 + .align 2, 0 +_08020F44: .4byte 0x02037C74 +_08020F48: + ldr r0, _08020F94 + movs r2, #0xc0 + lsls r2, r2, #1 + movs r1, #0 + bl LoadPalette + ldr r1, _08020F98 + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + ldr r1, _08020F9C + movs r0, #2 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + ldr r1, _08020FA0 + movs r0, #3 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + adds r0, r5, #0 + bl sub_08022434 + movs r0, #1 + bl CopyBgTilemapBufferToVram + movs r0, #2 + bl CopyBgTilemapBufferToVram + movs r0, #3 + bl CopyBgTilemapBufferToVram + b _08021028 + .align 2, 0 +_08020F94: .4byte 0x082C5F84 +_08020F98: .4byte 0x082C74D4 +_08020F9C: .4byte 0x082C7604 +_08020FA0: .4byte 0x082C779C +_08020FA4: + bl LoadWirelessStatusIndicatorSpriteGfx + movs r0, #0 + movs r1, #0 + bl CreateWirelessStatusIndicatorSprite + adds r0, r5, #0 + bl sub_08022494 + ldr r0, _08020FDC + ldrh r1, [r0] + rsbs r1, r1, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x16 + bl SetGpuReg + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + b _08021028 + .align 2, 0 +_08020FDC: .4byte 0x02021B3A +_08020FE0: + ldr r2, _08021024 + ldrb r1, [r2, #8] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #8] + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuRegBits + bl sub_08020B58 + movs r0, #0 + strb r0, [r5, #0xc] + movs r0, #1 + b _08021030 + .align 2, 0 +_08021024: .4byte 0x02037C74 +_08021028: + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] +_0802102E: + movs r0, #0 +_08021030: + add sp, #0xc + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_08020D74 + + thumb_func_start sub_08021038 +sub_08021038: @ 0x08021038 + push {r4, r5, lr} + sub sp, #8 + bl sub_08020918 + adds r5, r0, #0 + cmp r5, #0 + bne _0802104C + movs r0, #1 + rsbs r0, r0, #0 + b _08021172 +_0802104C: + ldrb r0, [r5, #0xc] + cmp r0, #7 + bls _08021054 + b _0802116A +_08021054: + lsls r0, r0, #2 + ldr r1, _08021060 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08021060: .4byte 0x08021064 +_08021064: @ jump table + .4byte _08021084 @ case 0 + .4byte _0802108A @ case 1 + .4byte _08021094 @ case 2 + .4byte _080210AA @ case 3 + .4byte _080210B6 @ case 4 + .4byte _08021112 @ case 5 + .4byte _08021152 @ case 6 + .4byte _08021162 @ case 7 +_08021084: + bl sub_0800FF34 + b _0802116A +_0802108A: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08021170 +_08021094: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + bl UpdatePaletteFade + b _0802116A +_080210AA: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0802116A + b _08021170 +_080210B6: + movs r4, #0x20 + str r4, [sp] + str r4, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + str r4, [sp] + str r4, [sp, #4] + movs r0, #1 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + str r4, [sp] + str r4, [sp, #4] + movs r0, #2 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + str r4, [sp] + str r4, [sp, #4] + movs r0, #3 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, #0 + bl CopyBgTilemapBufferToVram + movs r0, #1 + bl CopyBgTilemapBufferToVram + movs r0, #2 + bl CopyBgTilemapBufferToVram + movs r0, #3 + bl CopyBgTilemapBufferToVram + b _0802116A +_08021112: + bl FreeAllWindowBuffers + movs r0, #0 + bl HideBg + movs r0, #0 + bl UnsetBgTilemapBuffer + movs r0, #1 + bl HideBg + movs r0, #1 + bl UnsetBgTilemapBuffer + movs r0, #2 + bl HideBg + movs r0, #2 + bl UnsetBgTilemapBuffer + movs r0, #3 + bl HideBg + movs r0, #3 + bl UnsetBgTilemapBuffer + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl ClearGpuRegBits + b _0802116A +_08021152: + bl DestroyWirelessStatusIndicatorSprite + adds r0, r5, #0 + bl sub_080226C4 + bl sub_08034B20 + b _0802116A +_08021162: + movs r0, #0 + strb r0, [r5, #0xc] + movs r0, #1 + b _08021172 +_0802116A: + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] +_08021170: + movs r0, #0 +_08021172: + add sp, #8 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08021038 + + thumb_func_start sub_0802117C +sub_0802117C: @ 0x0802117C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080211B0 + ldrh r1, [r4, #0x2c] + ldrh r2, [r4, #0x2a] + adds r1, r1, r2 + strh r1, [r0] + rsbs r1, r1, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x16 + bl SetGpuReg + ldrh r0, [r4, #0x12] + cmp r0, #7 + bne _080211A8 + movs r1, #0x92 + lsls r1, r1, #1 + adds r0, r4, r1 + ldrh r1, [r4, #0x28] + bl sub_08022284 +_080211A8: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080211B0: .4byte 0x02021B3A + thumb_func_end sub_0802117C + + thumb_func_start sub_080211B4 +sub_080211B4: @ 0x080211B4 + movs r1, #0 + ldr r2, _080211C8 + strh r2, [r0, #0x2a] + strh r1, [r0, #0x2c] + ldr r0, _080211CC + strh r1, [r0] + ldr r0, _080211D0 + strh r2, [r0] + bx lr + .align 2, 0 +_080211C8: .4byte 0x0000FF98 +_080211CC: .4byte 0x02021B38 +_080211D0: .4byte 0x02021B3A + thumb_func_end sub_080211B4 + + thumb_func_start sub_080211D4 +sub_080211D4: @ 0x080211D4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + mov sl, r0 + str r1, [sp] + movs r0, #0 + mov sb, r0 + mov r1, sl + ldrb r1, [r1, #9] + cmp sb, r1 + blo _080211F2 + b _08021314 +_080211F2: + ldr r1, _08021324 + mov r2, sb + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r2, [r0] + mov r1, sb + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + add r0, sl + adds r0, #0xa0 + ldrh r3, [r0] + adds r3, #0x85 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + ldr r0, _08021328 + adds r1, r2, #0 + bl AddCustomItemIconSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r2, sb + lsls r3, r2, #2 + ldr r1, [sp] + adds r1, #0x38 + adds r6, r1, r3 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _0802132C + adds r1, r1, r0 + str r1, [r6] + ldrb r0, [r1, #5] + movs r2, #0xc + orrs r0, r2 + strb r0, [r1, #5] + ldr r2, [r6] + adds r2, #0x2c + ldrb r0, [r2] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2] + ldr r1, [r6] + ldr r0, [sp] + adds r0, #0xc + adds r0, r0, r3 + mov r8, r0 + ldr r0, [r0] + ldrh r0, [r0, #8] + adds r0, #0x78 + strh r0, [r1, #0x20] + ldr r1, [r6] + ldr r0, _08021330 + strh r0, [r1, #0x22] + ldr r3, [r6] + adds r5, r3, #0 + adds r5, #0x2e + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r5, #2] + movs r0, #0x20 + strh r0, [r5, #4] + movs r0, #0x70 + strh r0, [r5, #0xe] + mov r2, r8 + ldr r1, [r2] + ldrh r0, [r1, #0xa] + ldrh r1, [r1, #8] + subs r0, r0, r1 + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + adds r0, r1, #0 + cmp r1, #0 + bge _08021288 + adds r0, r1, #3 +_08021288: + asrs r0, r0, #2 + strh r0, [r5, #0xc] + lsls r0, r1, #0x17 + lsrs r7, r0, #0x10 + movs r2, #0x80 + lsls r2, r2, #2 + adds r2, #0x20 + lsrs r2, r2, #1 + movs r0, #7 + movs r1, #0xfe + lsls r1, r1, #6 + str r3, [sp, #4] + bl sub_081515B0 + adds r4, r0, #0 + ldr r0, [r6] + ldrh r0, [r0, #0x20] + lsls r0, r0, #7 + ldr r3, [sp, #4] + strh r0, [r3, #0x2e] + lsls r1, r7, #0x10 + asrs r1, r1, #0x10 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + movs r0, #7 + adds r2, r4, #0 + bl sub_081515B0 + strh r0, [r5, #6] + movs r0, #7 + adds r1, r4, #0 + movs r2, #0x55 + bl sub_0815152C + adds r2, r0, #0 + movs r0, #0 + strh r0, [r5, #8] + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + movs r0, #7 + movs r1, #0xfe + lsls r1, r1, #6 + bl sub_081515B0 + strh r0, [r5, #0xa] + ldrh r0, [r5, #0xe] + ldr r2, _08021334 + adds r1, r2, #0 + orrs r0, r1 + strh r0, [r5, #0xe] + mov r1, r8 + ldr r0, [r1] + movs r2, #8 + ldrsh r0, [r0, r2] + cmp r0, #0 + bge _08021300 + ldr r0, [r6] + movs r1, #1 + bl StartSpriteAffineAnim +_08021300: + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + mov r0, sl + ldrb r0, [r0, #9] + cmp sb, r0 + bhs _08021314 + b _080211F2 +_08021314: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08021324: .4byte 0x082C7A74 +_08021328: .4byte 0x082C7BF8 +_0802132C: .4byte 0x020205AC +_08021330: .4byte 0x0000FFF0 +_08021334: .4byte 0xFFFF8000 + thumb_func_end sub_080211D4 + + thumb_func_start sub_08021338 +sub_08021338: @ 0x08021338 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x2e + ldrh r0, [r4, #4] + ldrh r1, [r4, #2] + adds r0, r0, r1 + strh r0, [r4, #2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + ldrh r2, [r5, #0x26] + adds r0, r0, r2 + strh r0, [r5, #0x26] + movs r1, #0xe + ldrsh r0, [r4, r1] + movs r6, #0x80 + lsls r6, r6, #8 + ands r0, r6 + cmp r0, #0 + beq _0802139E + ldrh r0, [r4, #6] + ldrh r2, [r5, #0x2e] + adds r0, r0, r2 + strh r0, [r5, #0x2e] + ldrh r0, [r4, #0xa] + ldrh r1, [r4, #8] + adds r0, r0, r1 + strh r0, [r4, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x17 + movs r2, #0xc + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r5, #0x24] + movs r1, #0xe + ldrsh r0, [r4, r1] + ands r0, r6 + cmp r0, #0 + beq _0802139E + ldrh r0, [r4, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x17 + cmp r0, #0x7e + ble _0802139E + movs r0, #0 + strh r0, [r5, #0x24] + ldrh r1, [r4, #0xe] + ldr r0, _080213D0 + ands r0, r1 + strh r0, [r4, #0xe] +_0802139E: + ldrh r0, [r4] + lsls r0, r0, #0x10 + asrs r0, r0, #0x17 + strh r0, [r5, #0x20] + movs r2, #0x22 + ldrsh r1, [r5, r2] + movs r2, #0x26 + ldrsh r0, [r5, r2] + adds r1, r1, r0 + ldrh r2, [r4, #0xe] + ldr r0, _080213D0 + ands r0, r2 + cmp r1, r0 + blt _080213CA + ldr r0, _080213D4 + str r0, [r5, #0x1c] + adds r0, r5, #0 + bl FreeSpriteOamMatrix + adds r0, r5, #0 + bl DestroySprite +_080213CA: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080213D0: .4byte 0x00007FFF +_080213D4: .4byte 0x08007141 + thumb_func_end sub_08021338 + + thumb_func_start sub_080213D8 +sub_080213D8: @ 0x080213D8 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + movs r5, #0 + ldrb r0, [r6, #9] + cmp r5, r0 + bhs _08021404 + ldr r7, _0802140C +_080213E6: + lsls r0, r5, #1 + adds r0, r0, r7 + ldrh r4, [r0] + adds r0, r4, #0 + bl FreeSpritePaletteByTag + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldrb r0, [r6, #9] + cmp r5, r0 + blo _080213E6 +_08021404: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0802140C: .4byte 0x082C7A74 + thumb_func_end sub_080213D8 + + thumb_func_start sub_08021410 +sub_08021410: @ 0x08021410 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + adds r6, r0, #0 + str r1, [sp] + movs r0, #0 + str r0, [sp, #4] + movs r1, #0x4e + adds r1, r1, r6 + mov sl, r1 + mov sb, r0 + ldrb r2, [r6, #9] + cmp r0, r2 + bhs _080214DE + ldr r7, _08021474 +_08021434: + mov r3, sl + ldrh r0, [r3, #0xa] + mov r4, sb + lsls r1, r4, #1 + add r1, sb + asrs r0, r1 + lsls r0, r0, #0x10 + movs r1, #0xe0 + lsls r1, r1, #0xb + ands r1, r0 + lsrs r1, r1, #0x10 + mov r8, r1 + cmp r1, #0 + beq _080214CE + ldr r0, [sp, #4] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08021478 + lsls r4, r4, #2 + ldr r5, [sp] + adds r5, #0x24 + adds r0, r5, r4 + ldr r0, [r0] + movs r1, #1 + bl StartSpriteAnim + b _0802148A + .align 2, 0 +_08021474: .4byte 0x082C7A58 +_08021478: + mov r0, sb + lsls r4, r0, #2 + ldr r5, [sp] + adds r5, #0x24 + adds r0, r5, r4 + ldr r0, [r0] + movs r1, #0 + bl StartSpriteAnim +_0802148A: + adds r3, r5, r4 + ldr r2, [r3] + adds r2, #0x3e + ldrb r0, [r2] + movs r4, #5 + rsbs r4, r4, #0 + adds r1, r4, #0 + ands r0, r1 + strb r0, [r2] + ldr r2, [r3] + adds r2, #0x2c + ldrb r0, [r2] + subs r4, #0x3c + adds r1, r4, #0 + ands r0, r1 + strb r0, [r2] + ldr r2, [r3] + movs r0, #3 + mov r1, r8 + ands r1, r0 + mov r8, r1 + subs r1, #1 + lsls r1, r1, #1 + adds r0, r1, r7 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r2, #0x24] + ldr r2, [r3] + ldr r3, _080214EC + adds r1, r1, r3 + movs r0, #0 + ldrsb r0, [r1, r0] + strh r0, [r2, #0x26] +_080214CE: + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldrb r4, [r6, #9] + cmp sb, r4 + blo _08021434 +_080214DE: + ldr r0, [sp, #4] + cmp r0, #0 + bne _080214F0 + adds r2, r6, #0 + adds r2, #0x25 + ldrb r1, [r2] + b _080215CC + .align 2, 0 +_080214EC: .4byte 0x082C7A59 +_080214F0: + ldrh r0, [r6, #0x28] + movs r1, #3 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + mov r1, r8 + str r1, [sp, #8] + movs r2, #0 + mov sb, r2 + mov r3, sl + ldrh r1, [r3, #0xc] + lsls r0, r1, #1 + adds r0, #3 + adds r6, #0x25 + str r6, [sp, #0xc] + adds r3, r1, #0 + cmp sb, r0 + bge _080215C0 +_08021518: + mov r4, sb + lsls r1, r4, #2 + ldr r0, [sp] + adds r0, #0x4c + adds r7, r0, r1 + ldr r2, [r7] + adds r0, r2, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080215AE + ldr r0, _08021584 + str r0, [r2, #0x1c] + lsls r1, r4, #1 + ldr r3, _08021588 + adds r0, r1, r3 + movs r4, #0 + ldrsb r4, [r0, r4] + adds r0, r4, #0 + adds r0, #0x78 + strh r0, [r2, #0x20] + ldr r2, [r7] + ldr r0, _0802158C + adds r1, r1, r0 + movs r6, #0 + ldrsb r6, [r1, r6] + mov r1, r8 + lsls r0, r1, #2 + subs r0, #0x88 + subs r0, r6, r0 + strh r0, [r2, #0x22] + ldr r5, [r7] + ldr r2, [sp, #8] + lsls r1, r2, #2 + adds r0, r4, #0 + bl __divsi3 + adds r4, r4, r0 + strh r4, [r5, #0x24] + ldr r0, [r7] + strh r6, [r0, #0x26] + mov r3, sl + ldrb r1, [r3, #4] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08021590 + ldr r0, [r7] + movs r1, #1 + bl StartSpriteAnim + b _08021598 + .align 2, 0 +_08021584: .4byte 0x0802288D +_08021588: .4byte 0x082C7A5E +_0802158C: .4byte 0x082C7A5F +_08021590: + ldr r0, [r7] + movs r1, #0 + bl StartSpriteAnim +_08021598: + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + mov r4, sl + ldrh r3, [r4, #0xc] + cmp r0, #3 + bls _080215AE + movs r0, #0 + mov r8, r0 +_080215AE: + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + lsls r0, r3, #1 + adds r0, #3 + cmp sb, r0 + blt _08021518 +_080215C0: + ldr r2, [sp, #0xc] + ldrb r1, [r2] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080215D6 +_080215CC: + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + b _080215F4 +_080215D6: + ldr r3, [sp, #4] + cmp r3, #1 + bne _080215E4 + movs r0, #0x4e + bl PlaySE + b _080215EA +_080215E4: + movs r0, #0x4d + bl PlaySE +_080215EA: + ldr r4, [sp, #0xc] + ldrb r0, [r4] + movs r1, #4 + orrs r0, r1 + strb r0, [r4] +_080215F4: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08021410 + + thumb_func_start sub_08021604 +sub_08021604: @ 0x08021604 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + movs r2, #0 + ldrb r0, [r5, #9] + cmp r2, r0 + bhs _08021636 + adds r4, r6, #0 + adds r4, #0x24 + movs r7, #4 + adds r3, r0, #0 +_0802161A: + lsls r0, r2, #2 + adds r0, r4, r0 + ldr r0, [r0] + adds r0, #0x3e + ldrb r1, [r0] + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0 + beq _08021650 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, r3 + blo _0802161A +_08021636: + movs r2, #0 + adds r3, r6, #0 + adds r3, #0x4c + movs r4, #4 +_0802163E: + lsls r0, r2, #2 + adds r0, r3, r0 + ldr r0, [r0] + adds r0, #0x3e + ldrb r1, [r0] + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + bne _08021654 +_08021650: + movs r0, #0 + b _0802166C +_08021654: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xa + bls _0802163E + movs r1, #0x2c + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _0802166A + movs r0, #0 + strh r0, [r5, #0x2c] +_0802166A: + movs r0, #1 +_0802166C: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08021604 + + thumb_func_start sub_08021674 +sub_08021674: @ 0x08021674 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + lsls r4, r1, #0x10 + lsrs r4, r4, #0x10 + movs r7, #0 + movs r5, #0xe1 + lsls r5, r5, #4 + adds r0, r4, #0 + adds r1, r5, #0 + bl __udivsi3 + strh r0, [r6, #4] + adds r0, r4, #0 + adds r1, r5, #0 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x3c + bl __udivsi3 + strh r0, [r6, #6] + adds r0, r4, #0 + movs r1, #0x3c + bl __umodsi3 + lsls r0, r0, #0x18 + asrs r0, r0, #0x10 + movs r1, #4 + bl sub_08151510 + adds r2, r7, #0 + lsls r0, r0, #0x10 + asrs r3, r0, #0x10 + movs r0, #7 + mov ip, r0 + ldr r5, _080216F0 + movs r4, #1 +_080216C0: + mov r0, ip + subs r1, r0, r2 + adds r0, r3, #0 + asrs r0, r1 + ands r0, r4 + cmp r0, #0 + beq _080216D6 + lsls r0, r2, #2 + adds r0, r0, r5 + ldr r0, [r0] + adds r7, r7, r0 +_080216D6: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #7 + bls _080216C0 + ldr r1, _080216F4 + adds r0, r7, #0 + bl __udivsi3 + strh r0, [r6, #8] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080216F0: .4byte 0x082C5F64 +_080216F4: .4byte 0x000F4240 + thumb_func_end sub_08021674 + + thumb_func_start sub_080216F8 +sub_080216F8: @ 0x080216F8 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0xc + adds r6, r0, #0 + adds r4, r1, #0 + adds r5, r2, #0 + mov r8, r3 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r2, #1 + rsbs r2, r2, #0 + movs r0, #1 + mov r1, r8 + bl GetStringWidth + lsls r4, r4, #2 + lsrs r0, r0, #1 + subs r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r5, #1 + adds r0, r0, r5 + ldr r1, _08021754 + adds r0, r0, r1 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + mov r0, r8 + str r0, [sp, #8] + adds r0, r6, #0 + movs r1, #1 + adds r2, r4, #0 + movs r3, #0 + bl AddTextPrinterParameterized3 + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08021754: .4byte 0x082C5EF0 + thumb_func_end sub_080216F8 + + thumb_func_start sub_08021758 +sub_08021758: @ 0x08021758 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x38 + str r0, [sp, #0xc] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp, #0x10] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x14] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r3, [sp, #0x18] + movs r7, #0 + movs r0, #0 + str r0, [sp, #0x1c] + movs r1, #0 + str r1, [sp, #0x20] + ldr r2, [sp, #0xc] + adds r2, #0x68 + str r2, [sp, #0x24] + ldr r4, [sp, #0xc] + ldrb r4, [r4, #9] + cmp r7, r4 + blo _08021792 + b _08021A9A +_08021792: + ldr r0, [sp, #0x10] + lsls r0, r0, #2 + str r0, [sp, #0x28] + movs r2, #0xd3 + lsls r2, r2, #1 + ldr r1, [sp, #0xc] + adds r2, r1, r2 + str r2, [sp, #0x2c] +_080217A2: + bl DynamicPlaceholderTextUtil_Reset + ldr r4, [sp, #0x10] + cmp r4, #1 + beq _0802188C + cmp r4, #1 + bgt _080217B6 + cmp r4, #0 + beq _080217CE + b _080217BE +_080217B6: + ldr r4, [sp, #0x10] + cmp r4, #2 + bne _080217BE + b _08021990 +_080217BE: + ldr r0, [sp, #0x20] + adds r0, #0xa2 + mov r8, r0 + ldr r1, [sp, #0x1c] + lsls r5, r1, #3 + adds r2, r7, #1 + mov sb, r2 + b _08021A0A +_080217CE: + ldr r0, [sp, #0x24] + adds r0, #0x20 + adds r0, r0, r7 + ldrb r0, [r0] + str r0, [sp, #0x1c] + lsls r3, r7, #1 + ldr r2, [sp, #0x24] + adds r2, #0xc + cmp r7, #0 + beq _080217F4 + adds r0, r2, r3 + subs r1, r7, #1 + lsls r1, r1, #1 + adds r1, r2, r1 + ldrh r0, [r0] + ldrh r1, [r1] + cmp r0, r1 + beq _080217F4 + str r7, [sp, #0x20] +_080217F4: + ldr r4, [sp, #0x28] + ldr r1, [sp, #0x10] + adds r0, r4, r1 + lsls r0, r0, #1 + adds r0, r3, r0 + adds r0, r2, r0 + ldrh r1, [r0] + ldr r0, _08021880 + movs r2, #1 + movs r3, #4 + bl ConvertIntToDecimalStringN + ldr r0, _08021884 + adds r0, r4, r0 + ldr r5, [r0] + movs r0, #1 + adds r1, r5, #0 + movs r2, #1 + rsbs r2, r2, #0 + bl GetStringWidth + ldr r2, [sp, #0x14] + subs r0, r2, r0 + subs r0, #4 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r4, [sp, #0x2c] + ldrb r0, [r4] + movs r1, #0xd + adds r4, r7, #0 + muls r4, r1, r4 + ldr r1, [sp, #0x18] + adds r4, r1, r4 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r2, _08021888 + str r2, [sp] + movs r1, #0 + str r1, [sp, #4] + str r5, [sp, #8] + movs r1, #1 + adds r2, r6, #0 + adds r3, r4, #0 + bl AddTextPrinterParameterized3 + ldr r2, [sp, #0x2c] + ldrb r0, [r2] + adds r2, r6, #0 + subs r2, #0x21 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r1, _08021888 + str r1, [sp] + movs r1, #0 + str r1, [sp, #4] + ldr r1, _08021880 + str r1, [sp, #8] + movs r1, #0 + adds r3, r4, #0 + bl AddTextPrinterParameterized3 + ldr r2, [sp, #0x20] + adds r2, #0xa2 + mov r8, r2 + ldr r4, [sp, #0x1c] + lsls r5, r4, #3 + adds r0, r7, #1 + mov sb, r0 + b _08021A0A + .align 2, 0 +_08021880: .4byte 0x02021C40 +_08021884: .4byte 0x082C7C40 +_08021888: .4byte 0x082C5EF0 +_0802188C: + ldr r1, [sp, #0x24] + adds r0, r1, r7 + adds r0, #0x28 + ldrb r0, [r0] + str r0, [sp, #0x1c] + lsls r3, r7, #1 + adds r2, r1, #0 + adds r2, #0xc + cmp r7, #0 + beq _080218B6 + adds r0, r3, #0 + adds r0, #0xa + adds r0, r2, r0 + adds r1, r3, #0 + adds r1, #8 + adds r1, r2, r1 + ldrh r0, [r0] + ldrh r1, [r1] + cmp r0, r1 + beq _080218B6 + str r7, [sp, #0x20] +_080218B6: + ldr r0, [sp, #0x28] + ldr r1, [sp, #0x10] + adds r4, r0, r1 + lsls r4, r4, #1 + adds r4, r3, r4 + adds r4, r2, r4 + ldrh r1, [r4] + lsrs r1, r1, #4 + ldr r0, _08021974 + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + movs r3, #0 + ldrb r0, [r4] + movs r6, #0xf + ands r6, r0 + movs r2, #0 + ldr r4, [sp, #0x10] + lsls r4, r4, #2 + str r4, [sp, #0x34] + ldr r0, [sp, #0x14] + subs r0, #0x34 + str r0, [sp, #0x30] + ldr r1, [sp, #0x20] + adds r1, #0xa2 + mov r8, r1 + ldr r4, [sp, #0x1c] + lsls r5, r4, #3 + adds r0, r7, #1 + mov sb, r0 + movs r1, #3 + mov sl, r1 + movs r4, #1 + mov ip, r4 + ldr r4, _08021978 +_080218FE: + mov r0, sl + subs r1, r0, r2 + adds r0, r6, #0 + asrs r0, r1 + mov r1, ip + ands r0, r1 + cmp r0, #0 + beq _08021916 + lsls r0, r2, #2 + adds r0, r0, r4 + ldr r0, [r0] + adds r3, r3, r0 +_08021916: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #3 + bls _080218FE + adds r0, r3, #0 + ldr r1, _0802197C + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _08021980 + adds r1, r6, #0 + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r0, _08021984 + ldr r2, [sp, #0x34] + adds r0, r2, r0 + ldr r1, [r0] + ldr r0, _08021988 + bl StringExpandPlaceholders + ldr r4, [sp, #0x2c] + ldrb r0, [r4] + ldr r1, [sp, #0x30] + lsls r2, r1, #0x18 + lsrs r2, r2, #0x18 + movs r1, #0xd + adds r3, r7, #0 + muls r3, r1, r3 + ldr r4, [sp, #0x18] + adds r3, r4, r3 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r1, _0802198C + str r1, [sp] + movs r4, #0 + str r4, [sp, #4] + ldr r1, _08021988 + str r1, [sp, #8] + movs r1, #0 + bl AddTextPrinterParameterized3 + b _08021A0A + .align 2, 0 +_08021974: .4byte 0x02021C40 +_08021978: .4byte 0x082C5F64 +_0802197C: .4byte 0x000F4240 +_08021980: .4byte 0x02021C54 +_08021984: .4byte 0x082C7C40 +_08021988: .4byte 0x02021C7C +_0802198C: .4byte 0x082C5EF0 +_08021990: + str r7, [sp, #0x1c] + str r7, [sp, #0x20] + lsls r4, r7, #3 + subs r0, r4, r7 + lsls r0, r0, #2 + ldr r2, [sp, #0xc] + adds r0, r2, r0 + adds r0, #0xa0 + ldrb r2, [r0] + cmp r2, #0x2b + bls _080219A8 + movs r2, #0 +_080219A8: + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + ldr r0, _08021A20 + adds r1, r1, r0 + ldr r0, _08021A24 + bl StringCopy + ldr r0, _08021A28 + ldr r1, [r0, #8] + ldr r0, _08021A2C + bl StringExpandPlaceholders + movs r0, #1 + ldr r1, _08021A2C + movs r2, #1 + rsbs r2, r2, #0 + bl GetStringWidth + adds r2, r0, #0 + ldr r0, [sp, #0x14] + subs r2, r0, r2 + subs r2, #4 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r1, [sp, #0x2c] + ldrb r0, [r1] + movs r1, #0xd + adds r3, r7, #0 + muls r3, r1, r3 + ldr r1, [sp, #0x18] + adds r3, r1, r3 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r1, _08021A30 + str r1, [sp] + movs r1, #0 + str r1, [sp, #4] + ldr r1, _08021A2C + str r1, [sp, #8] + movs r1, #1 + bl AddTextPrinterParameterized3 + movs r2, #0xa2 + adds r2, r2, r7 + mov r8, r2 + adds r5, r4, #0 + adds r4, r7, #1 + mov sb, r4 +_08021A0A: + ldr r1, [sp, #0x1c] + ldr r0, [sp, #0xc] + ldrb r0, [r0, #8] + cmp r1, r0 + bne _08021A3C + ldr r0, _08021A34 + ldr r1, _08021A38 + bl StringCopy + b _08021A44 + .align 2, 0 +_08021A20: .4byte 0x08563150 +_08021A24: .4byte 0x02021C40 +_08021A28: .4byte 0x082C7C40 +_08021A2C: .4byte 0x02021C7C +_08021A30: .4byte 0x082C5EF0 +_08021A34: .4byte 0x02021C68 +_08021A38: .4byte 0x085CC9C8 +_08021A3C: + ldr r0, _08021AAC + ldr r1, _08021AB0 + bl StringCopy +_08021A44: + ldr r4, _08021AAC + mov r1, r8 + strb r1, [r4] + ldr r2, [sp, #0x1c] + subs r1, r5, r2 + lsls r1, r1, #2 + adds r1, #0x98 + ldr r0, [sp, #0xc] + adds r1, r0, r1 + movs r0, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + ldr r0, _08021AB4 + adds r1, r4, #0 + bl DynamicPlaceholderTextUtil_ExpandPlaceholders + ldr r1, [sp, #0x2c] + ldrb r0, [r1] + movs r1, #0xd + adds r3, r7, #0 + muls r3, r1, r3 + ldr r2, [sp, #0x18] + adds r3, r2, r3 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r4, _08021AB8 + str r4, [sp] + movs r1, #0 + str r1, [sp, #4] + ldr r2, _08021AB4 + str r2, [sp, #8] + movs r1, #1 + movs r2, #4 + bl AddTextPrinterParameterized3 + mov r4, sb + lsls r0, r4, #0x18 + lsrs r7, r0, #0x18 + ldr r0, [sp, #0xc] + ldrb r0, [r0, #9] + cmp r7, r0 + bhs _08021A9A + b _080217A2 +_08021A9A: + add sp, #0x38 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08021AAC: .4byte 0x02021C68 +_08021AB0: .4byte 0x085CC9D4 +_08021AB4: .4byte 0x02021C7C +_08021AB8: .4byte 0x082C5EF0 + thumb_func_end sub_08021758 + + thumb_func_start sub_08021ABC +sub_08021ABC: @ 0x08021ABC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + mov r8, r0 + movs r0, #0 + mov sl, r0 + movs r6, #0 + movs r1, #0 + str r1, [sp, #0xc] + mov r2, r8 + adds r2, #0x68 + str r2, [sp, #0x10] + movs r4, #0xd3 + lsls r4, r4, #1 + add r4, r8 + mov sb, r4 + ldrb r0, [r4] + movs r1, #4 + bl GetWindowAttribute + lsls r0, r0, #0x1b + movs r1, #0xda + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r7, r0, #0x18 + movs r0, #0x92 + lsls r0, r0, #1 + add r0, r8 + ldr r2, [sp, #0x10] + ldrh r1, [r2, #4] + bl sub_08021674 + ldrb r0, [r4] + ldr r4, _08021CF4 + str r4, [sp] + str r6, [sp, #4] + ldr r1, _08021CF8 + str r1, [sp, #8] + movs r1, #1 + movs r2, #2 + adds r3, r7, #0 + bl AddTextPrinterParameterized3 + ldr r4, _08021CFC + movs r0, #1 + adds r1, r4, #0 + movs r2, #1 + rsbs r2, r2, #0 + bl GetStringWidth + movs r1, #0xae + subs r0, r1, r0 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + mov r2, sb + ldrb r0, [r2] + ldr r1, _08021CF4 + str r1, [sp] + mov r2, sl + str r2, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + adds r2, r6, #0 + adds r3, r7, #0 + bl AddTextPrinterParameterized3 + adds r0, r6, #0 + subs r0, #0x29 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r0, #0x95 + lsls r0, r0, #1 + add r0, r8 + movs r4, #0 + ldrsh r1, [r0, r4] + ldr r0, _08021D00 + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r0, _08021D04 + movs r1, #0x96 + lsls r1, r1, #1 + add r1, r8 + movs r2, #0 + ldrsh r1, [r1, r2] + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r5, _08021D08 + ldr r1, _08021D0C + adds r0, r5, #0 + bl StringExpandPlaceholders + mov r4, sb + ldrb r0, [r4] + ldr r1, _08021CF4 + str r1, [sp] + mov r2, sl + str r2, [sp, #4] + str r5, [sp, #8] + movs r1, #0 + adds r2, r6, #0 + adds r3, r7, #0 + bl AddTextPrinterParameterized3 + ldr r4, _08021D10 + movs r0, #1 + adds r1, r4, #0 + movs r2, #1 + rsbs r2, r2, #0 + bl GetStringWidth + subs r1, r6, #1 + subs r1, r1, r0 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + mov r1, sb + ldrb r0, [r1] + ldr r2, _08021CF4 + str r2, [sp] + mov r1, sl + str r1, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + adds r2, r6, #0 + adds r3, r7, #0 + bl AddTextPrinterParameterized3 + adds r0, r6, #0 + subs r0, #9 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r0, #0x94 + lsls r0, r0, #1 + add r0, r8 + movs r2, #0 + ldrsh r1, [r0, r2] + ldr r0, _08021D00 + movs r2, #2 + movs r3, #1 + bl ConvertIntToDecimalStringN + ldr r1, _08021D14 + adds r0, r5, #0 + bl StringExpandPlaceholders + mov r4, sb + ldrb r0, [r4] + ldr r1, _08021CF4 + str r1, [sp] + mov r2, sl + str r2, [sp, #4] + str r5, [sp, #8] + movs r1, #0 + adds r2, r6, #0 + adds r3, r7, #0 + bl AddTextPrinterParameterized3 + adds r0, r7, #0 + adds r0, #0xd + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldrb r0, [r4] + ldr r4, _08021CF4 + str r4, [sp] + mov r1, sl + str r1, [sp, #4] + ldr r1, _08021D18 + str r1, [sp, #8] + movs r1, #1 + movs r2, #2 + adds r3, r7, #0 + bl AddTextPrinterParameterized3 + ldr r4, _08021D1C + movs r0, #1 + adds r1, r4, #0 + movs r2, #1 + rsbs r2, r2, #0 + bl GetStringWidth + movs r2, #0xae + subs r0, r2, r0 + lsls r0, r0, #0x18 + str r0, [sp, #0x18] + lsrs r6, r0, #0x18 + mov r1, sb + ldrb r0, [r1] + ldr r2, _08021CF4 + str r2, [sp] + mov r1, sl + str r1, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + adds r2, r6, #0 + adds r3, r7, #0 + bl AddTextPrinterParameterized3 + mov r4, r8 + ldrb r2, [r4, #0x16] + ldrh r0, [r4, #0x16] + mov ip, r0 + movs r1, #7 + mov sb, r1 + movs r5, #1 + ldr r3, _08021D20 +_08021C62: + mov r4, sb + mov r0, sl + subs r1, r4, r0 + adds r0, r2, #0 + asrs r0, r1 + ands r0, r5 + cmp r0, #0 + beq _08021C80 + mov r1, sl + lsls r0, r1, #2 + adds r0, r0, r3 + ldr r0, [r0] + ldr r4, [sp, #0xc] + adds r4, r4, r0 + str r4, [sp, #0xc] +_08021C80: + mov r0, sl + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + cmp r0, #7 + bls _08021C62 + ldr r0, _08021D00 + mov r2, ip + lsrs r1, r2, #8 + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r4, _08021D04 + ldr r1, _08021D24 + ldr r0, [sp, #0xc] + bl __udivsi3 + adds r1, r0, #0 + adds r0, r4, #0 + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r4, _08021D08 + ldr r1, _08021D28 + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r6, #0 + subs r0, #0x31 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + mov r0, r8 + adds r0, #0x25 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _08021D30 + movs r0, #0xd3 + lsls r0, r0, #1 + add r0, r8 + ldrb r0, [r0] + ldr r1, _08021D2C + str r1, [sp] + movs r1, #0 + str r1, [sp, #4] + str r4, [sp, #8] + adds r2, r6, #0 + adds r3, r7, #0 + bl AddTextPrinterParameterized3 + b _08021D4A + .align 2, 0 +_08021CF4: .4byte 0x082C5EF0 +_08021CF8: .4byte 0x085CC9F0 +_08021CFC: .4byte 0x085CCA14 +_08021D00: .4byte 0x02021C40 +_08021D04: .4byte 0x02021C54 +_08021D08: .4byte 0x02021C7C +_08021D0C: .4byte 0x085CCA0C +_08021D10: .4byte 0x085CCA08 +_08021D14: .4byte 0x085CCA04 +_08021D18: .4byte 0x085CC9F4 +_08021D1C: .4byte 0x085CCA20 +_08021D20: .4byte 0x082C5F64 +_08021D24: .4byte 0x000F4240 +_08021D28: .4byte 0x085CCA18 +_08021D2C: .4byte 0x082C5EFF +_08021D30: + movs r0, #0xd3 + lsls r0, r0, #1 + add r0, r8 + ldrb r0, [r0] + ldr r1, _08021DC8 + str r1, [sp] + str r2, [sp, #4] + str r4, [sp, #8] + movs r1, #0 + adds r2, r6, #0 + adds r3, r7, #0 + bl AddTextPrinterParameterized3 +_08021D4A: + adds r0, r7, #0 + adds r0, #0xd + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r4, #0xd3 + lsls r4, r4, #1 + add r8, r4 + mov r1, r8 + ldrb r0, [r1] + ldr r2, _08021DC8 + mov sb, r2 + str r2, [sp] + movs r5, #0 + str r5, [sp, #4] + ldr r1, _08021DCC + str r1, [sp, #8] + movs r1, #1 + movs r2, #2 + adds r3, r7, #0 + bl AddTextPrinterParameterized3 + ldr r0, _08021DD0 + ldr r4, [sp, #0x10] + ldrh r1, [r4, #8] + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r4, _08021DD4 + ldr r1, _08021DD8 + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + bl StringLength + lsls r0, r0, #0x10 + lsrs r0, r0, #0xd + movs r2, #0x52 + rsbs r2, r2, #0 + adds r1, r2, #0 + subs r1, r1, r0 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + mov r1, r8 + ldrb r0, [r1] + mov r2, sb + str r2, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r1, #0 + adds r2, r6, #0 + adds r3, r7, #0 + bl AddTextPrinterParameterized3 + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08021DC8: .4byte 0x082C5EF0 +_08021DCC: .4byte 0x085CC9FC +_08021DD0: .4byte 0x02021C40 +_08021DD4: .4byte 0x02021C7C +_08021DD8: .4byte 0x085CCA28 + thumb_func_end sub_08021ABC + + thumb_func_start sub_08021DDC +sub_08021DDC: @ 0x08021DDC + push {r4, r5, r6, lr} + sub sp, #8 + adds r4, r0, #0 + adds r6, r1, #0 + adds r0, r6, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #5 + bls _08021DF0 + b _08021F88 +_08021DF0: + lsls r0, r0, #2 + ldr r1, _08021DFC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08021DFC: .4byte 0x08021E00 +_08021E00: @ jump table + .4byte _08021E18 @ case 0 + .4byte _08021E64 @ case 1 + .4byte _08021E78 @ case 2 + .4byte _08021E9C @ case 3 + .4byte _08021F68 @ case 4 + .4byte _08021F70 @ case 5 +_08021E18: + ldrb r0, [r4, #9] + subs r0, #2 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r6, #0 + bl sub_080222B4 + ldrh r0, [r4, #0x12] + lsls r0, r0, #3 + ldr r2, _08021E40 + mov r1, sp + adds r0, r0, r2 + ldm r0!, {r2, r3} + stm r1!, {r2, r3} + ldrh r0, [r4, #0x12] + cmp r0, #0xd + bne _08021E48 + ldr r0, _08021E44 + adds r0, #4 + b _08021E4A + .align 2, 0 +_08021E40: .4byte 0x082C5EE4 +_08021E44: .4byte 0x082C5F5C +_08021E48: + ldr r0, _08021E60 +_08021E4A: + adds r0, r5, r0 + ldrb r1, [r0] + mov r0, sp + strb r1, [r0, #4] + mov r0, sp + bl AddWindow + adds r1, r6, #0 + adds r1, #0x82 + strb r0, [r1] + b _08021F88 + .align 2, 0 +_08021E60: .4byte 0x082C5F5C +_08021E64: + adds r4, r6, #0 + adds r4, #0x82 + ldrb r0, [r4] + bl PutWindowTilemap + ldrb r0, [r4] + movs r1, #0 + bl FillWindowPixelBuffer + b _08021F88 +_08021E78: + adds r5, r6, #0 + adds r5, #0x82 + ldrb r0, [r5] + ldr r4, _08021E98 + adds r1, r4, #0 + movs r2, #0xd0 + bl LoadUserWindowBorderGfx_ + ldrb r0, [r5] + movs r1, #0 + adds r2, r4, #0 + movs r3, #0xd + bl DrawStdFrameWithCustomTileAndPalette + b _08021F88 + .align 2, 0 +_08021E98: .4byte 0x0000021D +_08021E9C: + ldrb r0, [r4, #9] + subs r0, #2 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldrh r0, [r4, #0x12] + cmp r0, #0xc + beq _08021EF8 + cmp r0, #0xc + bgt _08021EB4 + cmp r0, #0xb + beq _08021EBA + b _08021F88 +_08021EB4: + cmp r0, #0xd + beq _08021F44 + b _08021F88 +_08021EBA: + adds r0, r6, #0 + adds r0, #0x82 + ldrb r0, [r0] + ldr r3, _08021EF0 + movs r1, #0x14 + movs r2, #3 + bl sub_080216F8 + ldr r0, _08021EF4 + adds r0, r5, r0 + ldrb r3, [r0] + lsls r3, r3, #3 + ldrb r1, [r4, #9] + movs r0, #0xd + muls r0, r1, r0 + subs r3, r3, r0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r4, #0 + movs r1, #0 + movs r2, #0xa0 + bl sub_08021758 + adds r1, r6, #0 + adds r1, #0x80 + movs r0, #5 + b _08021F90 + .align 2, 0 +_08021EF0: .4byte 0x085CCA30 +_08021EF4: .4byte 0x082C5F5C +_08021EF8: + adds r0, r6, #0 + adds r0, #0x82 + ldrb r0, [r0] + ldr r2, _08021F3C + adds r1, r4, #0 + adds r1, #0x8f + ldrb r1, [r1] + adds r1, #3 + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r3, [r1] + movs r1, #0x14 + movs r2, #4 + bl sub_080216F8 + ldr r0, _08021F40 + adds r0, r5, r0 + ldrb r3, [r0] + lsls r3, r3, #3 + ldrb r1, [r4, #9] + movs r0, #0xd + muls r0, r1, r0 + subs r3, r3, r0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0xa0 + bl sub_08021758 + adds r1, r6, #0 + adds r1, #0x80 + movs r0, #5 + b _08021F90 + .align 2, 0 +_08021F3C: .4byte 0x082C7C40 +_08021F40: .4byte 0x082C5F5C +_08021F44: + adds r0, r6, #0 + adds r0, #0x82 + ldrb r0, [r0] + ldr r3, _08021F64 + movs r1, #0x16 + movs r2, #3 + bl sub_080216F8 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0xb0 + movs r3, #0x12 + bl sub_08021758 + b _08021F88 + .align 2, 0 +_08021F64: .4byte 0x085CCA40 +_08021F68: + adds r0, r4, #0 + bl sub_08021ABC + b _08021F88 +_08021F70: + adds r0, r6, #0 + adds r0, #0x82 + ldrb r0, [r0] + movs r1, #3 + bl CopyWindowToVram + adds r1, r6, #0 + adds r1, #0x80 + movs r0, #0 + strb r0, [r1] + movs r0, #1 + b _08021F94 +_08021F88: + adds r1, r6, #0 + adds r1, #0x80 + ldrb r0, [r1] + adds r0, #1 +_08021F90: + strb r0, [r1] + movs r0, #0 +_08021F94: + add sp, #8 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_08021DDC + + thumb_func_start sub_08021F9C +sub_08021F9C: @ 0x08021F9C + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0xd3 + lsls r0, r0, #1 + adds r5, r4, r0 + ldrb r0, [r5] + movs r1, #1 + bl ClearStdWindowAndFrameToTransparent + ldrb r0, [r5] + bl RemoveWindow + adds r0, r4, #0 + bl sub_08022360 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_08021F9C + + thumb_func_start sub_08021FC0 +sub_08021FC0: @ 0x08021FC0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #0 + mov sb, r0 + movs r1, #0 + str r1, [sp, #0xc] + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _08021FF4 + adds r6, r0, r1 + movs r1, #0 + ldrsh r0, [r6, r1] + cmp r0, #1 + beq _08022040 + cmp r0, #1 + bgt _08021FF8 + cmp r0, #0 + beq _08022006 + b _0802221A + .align 2, 0 +_08021FF4: .4byte 0x03005B68 +_08021FF8: + cmp r0, #2 + bne _08021FFE + b _080221E0 +_08021FFE: + cmp r0, #3 + bne _08022004 + b _080221F4 +_08022004: + b _0802221A +_08022006: + ldr r0, _08022038 + bl AddWindow + strh r0, [r6, #2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl PutWindowTilemap + ldrb r0, [r6, #2] + movs r1, #0 + bl FillWindowPixelBuffer + ldrb r0, [r6, #2] + ldr r4, _0802203C + adds r1, r4, #0 + movs r2, #0xd0 + bl LoadUserWindowBorderGfx_ + ldrb r0, [r6, #2] + movs r1, #0 + adds r2, r4, #0 + movs r3, #0xd + bl DrawStdFrameWithCustomTileAndPalette + b _0802221A + .align 2, 0 +_08022038: .4byte 0x082C5F04 +_0802203C: .4byte 0x0000021D +_08022040: + ldr r0, _080221B0 + mov sl, r0 + movs r1, #1 + rsbs r1, r1, #0 + mov r8, r1 + movs r0, #1 + mov r1, sl + mov r2, r8 + bl GetStringWidth + lsrs r0, r0, #1 + movs r4, #0x60 + subs r0, r4, r0 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldrb r0, [r6, #2] + ldr r5, _080221B4 + str r5, [sp] + mov r1, sb + str r1, [sp, #4] + mov r1, sl + str r1, [sp, #8] + movs r1, #1 + adds r2, r7, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 + ldr r0, _080221B8 + mov sl, r0 + movs r0, #1 + mov r1, sl + mov r2, r8 + bl GetStringWidth + lsrs r0, r0, #1 + subs r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r7, r4, #0x18 + ldrb r0, [r6, #2] + str r5, [sp] + mov r1, sb + str r1, [sp, #4] + mov r1, sl + str r1, [sp, #8] + movs r1, #1 + adds r2, r7, #0 + movs r3, #0x12 + bl AddTextPrinterParameterized3 + movs r0, #0x2a + mov sl, r0 +_080220A6: + mov r1, sb + adds r1, #2 + ldr r0, _080221BC + movs r2, #0 + movs r3, #1 + bl ConvertIntToDecimalStringN + ldr r0, _080221C0 + ldr r1, _080221C4 + bl StringExpandPlaceholders + ldrb r0, [r6, #2] + ldr r1, _080221C8 + str r1, [sp] + movs r1, #0 + str r1, [sp, #4] + ldr r1, _080221C0 + str r1, [sp, #8] + movs r1, #1 + movs r2, #4 + mov r3, sl + bl AddTextPrinterParameterized3 + movs r0, #1 + ldr r1, _080221CC + movs r2, #1 + rsbs r2, r2, #0 + bl GetStringWidth + movs r1, #0xbc + subs r1, r1, r0 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + ldrb r0, [r6, #2] + ldr r1, _080221C8 + str r1, [sp] + movs r1, #0 + str r1, [sp, #4] + ldr r1, _080221CC + str r1, [sp, #8] + movs r1, #1 + adds r2, r7, #0 + mov r3, sl + bl AddTextPrinterParameterized3 + movs r2, #0 + mov r0, sb + lsls r4, r0, #1 + mov r1, sl + adds r1, #0xd + str r1, [sp, #0x10] + movs r0, #1 + add sb, r0 + adds r0, r4, r6 + ldrb r3, [r0, #4] + movs r1, #1 + mov r8, r1 + ldr r5, _080221D0 +_0802211A: + movs r0, #7 + subs r1, r0, r2 + adds r0, r3, #0 + asrs r0, r1 + mov r1, r8 + ands r0, r1 + cmp r0, #0 + beq _08022136 + lsls r0, r2, #2 + adds r0, r0, r5 + ldr r0, [r0] + ldr r1, [sp, #0xc] + adds r1, r1, r0 + str r1, [sp, #0xc] +_08022136: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #7 + bls _0802211A + adds r0, r4, r6 + ldrh r1, [r0, #4] + lsrs r1, r1, #8 + ldr r0, _080221BC + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r0, [sp, #0xc] + ldr r1, _080221D4 + bl __udivsi3 + adds r1, r0, #0 + ldr r0, _080221D8 + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r0, _080221C0 + ldr r1, _080221DC + bl StringExpandPlaceholders + adds r0, r7, #0 + subs r0, #0x31 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldrb r0, [r6, #2] + ldr r1, _080221C8 + str r1, [sp] + movs r1, #0 + str r1, [sp, #4] + ldr r1, _080221C0 + str r1, [sp, #8] + movs r1, #0 + adds r2, r7, #0 + mov r3, sl + bl AddTextPrinterParameterized3 + ldr r1, [sp, #0x10] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + movs r0, #0 + str r0, [sp, #0xc] + mov r1, sb + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + cmp r0, #3 + bls _080220A6 + ldrb r0, [r6, #2] + movs r1, #3 + bl CopyWindowToVram + b _0802221A + .align 2, 0 +_080221B0: .4byte 0x085CCA70 +_080221B4: .4byte 0x082C5EF9 +_080221B8: .4byte 0x085CCA7C +_080221BC: .4byte 0x02021C40 +_080221C0: .4byte 0x02021C7C +_080221C4: .4byte 0x085CCA8C +_080221C8: .4byte 0x082C5EF0 +_080221CC: .4byte 0x085CCA20 +_080221D0: .4byte 0x082C5F64 +_080221D4: .4byte 0x000F4240 +_080221D8: .4byte 0x02021C54 +_080221DC: .4byte 0x085CCA18 +_080221E0: + ldr r0, _080221F0 + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _0802221A + b _08022220 + .align 2, 0 +_080221F0: .4byte 0x03002360 +_080221F4: + ldrb r0, [r6, #2] + movs r1, #1 + bl ClearStdWindowAndFrameToTransparent + ldrb r0, [r6, #2] + bl ClearWindowTilemap + ldrb r0, [r6, #2] + bl RemoveWindow + adds r0, r4, #0 + bl DestroyTask + bl EnableBothScriptContexts + bl ScriptContext2_Disable + mov r0, sb + b _0802221E +_0802221A: + ldrh r0, [r6] + adds r0, #1 +_0802221E: + strh r0, [r6] +_08022220: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08021FC0 + + thumb_func_start sub_08022230 +sub_08022230: @ 0x08022230 + push {lr} + bl ScriptContext2_Enable + ldr r0, _08022278 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0802227C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r0, _08022280 + ldr r2, [r0] + movs r3, #0xf6 + lsls r3, r3, #1 + adds r0, r2, r3 + ldrh r0, [r0] + strh r0, [r1, #0xc] + adds r3, #2 + adds r0, r2, r3 + ldrh r0, [r0] + strh r0, [r1, #0xe] + adds r3, #2 + adds r0, r2, r3 + ldrh r0, [r0] + strh r0, [r1, #0x10] + adds r3, #2 + adds r0, r2, r3 + ldrh r0, [r0] + strh r0, [r1, #0x12] + pop {r0} + bx r0 + .align 2, 0 +_08022278: .4byte 0x08021FC1 +_0802227C: .4byte 0x03005B60 +_08022280: .4byte 0x03005AF0 + thumb_func_end sub_08022230 + + thumb_func_start sub_08022284 +sub_08022284: @ 0x08022284 + push {r4, lr} + adds r4, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl sub_08021674 + movs r0, #4 + ldrsh r1, [r4, r0] + movs r0, #0 + bl sub_08034E9C + movs r0, #6 + ldrsh r1, [r4, r0] + movs r0, #1 + bl sub_08034E9C + movs r0, #8 + ldrsh r1, [r4, r0] + movs r0, #2 + bl sub_08034E9C + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08022284 + + thumb_func_start sub_080222B4 +sub_080222B4: @ 0x080222B4 + push {lr} + ldr r2, [r0, #0x78] + adds r2, #0x3e + ldrb r1, [r2] + movs r3, #4 + orrs r1, r3 + strb r1, [r2] + ldr r1, [r0, #0x7c] + adds r1, #0x3e + ldrb r0, [r1] + orrs r0, r3 + strb r0, [r1] + movs r0, #2 + movs r1, #1 + bl sub_080352D4 + movs r0, #1 + movs r1, #1 + bl sub_080352D4 + movs r0, #0 + movs r1, #1 + bl sub_080352D4 + pop {r0} + bx r0 + thumb_func_end sub_080222B4 + + thumb_func_start sub_080222E8 +sub_080222E8: @ 0x080222E8 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r6, #0 + ldrb r0, [r5, #9] + cmp r6, r0 + bhs _08022348 + ldr r7, _08022350 +_080222F6: + lsls r0, r6, #2 + movs r1, #0x98 + lsls r1, r1, #1 + adds r2, r5, r1 + adds r2, r2, r0 + ldrb r1, [r5, #9] + subs r1, #2 + lsls r0, r1, #2 + adds r0, r0, r1 + adds r0, r6, r0 + adds r0, r0, r7 + ldrb r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08022354 + adds r0, r0, r1 + str r0, [r2] + ldrb r0, [r0] + lsls r0, r0, #3 + ldr r1, _08022358 + adds r0, r0, r1 + bl AddWindow + ldr r1, _0802235C + adds r4, r5, r1 + adds r4, r4, r6 + strb r0, [r4] + ldrb r0, [r4] + bl PutWindowTilemap + ldrb r0, [r4] + movs r1, #0 + bl FillWindowPixelBuffer + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldrb r0, [r5, #9] + cmp r6, r0 + blo _080222F6 +_08022348: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08022350: .4byte 0x082C7A08 +_08022354: .4byte 0x082C7A1C +_08022358: .4byte 0x082C5F0C +_0802235C: .4byte 0x000001A7 + thumb_func_end sub_080222E8 + + thumb_func_start sub_08022360 +sub_08022360: @ 0x08022360 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x14 + adds r7, r0, #0 + movs r6, #0 + ldrb r0, [r7, #9] + cmp r6, r0 + bhs _0802241A + mov r8, r6 +_08022374: + ldr r1, _080223C0 + adds r0, r7, r1 + adds r5, r0, r6 + ldrb r0, [r5] + bl PutWindowTilemap + ldrb r0, [r7, #8] + cmp r6, r0 + bne _080223C8 + lsls r4, r6, #3 + subs r4, r4, r6 + lsls r4, r4, #2 + adds r4, #0x98 + adds r4, r7, r4 + movs r0, #1 + adds r1, r4, #0 + movs r2, #0 + bl GetStringWidth + lsrs r0, r0, #1 + movs r2, #0x24 + subs r2, r2, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r0, [r5] + mov r1, r8 + str r1, [sp] + str r1, [sp, #4] + ldr r1, _080223C4 + str r1, [sp, #8] + mov r1, r8 + str r1, [sp, #0xc] + str r4, [sp, #0x10] + movs r1, #1 + movs r3, #1 + bl AddTextPrinterParameterized4 + b _08022400 + .align 2, 0 +_080223C0: .4byte 0x000001A7 +_080223C4: .4byte 0x082C5EF3 +_080223C8: + lsls r4, r6, #3 + subs r4, r4, r6 + lsls r4, r4, #2 + adds r4, #0x98 + adds r4, r7, r4 + movs r0, #1 + adds r1, r4, #0 + movs r2, #0 + bl GetStringWidth + lsrs r0, r0, #1 + movs r2, #0x24 + subs r2, r2, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r0, [r5] + mov r1, r8 + str r1, [sp] + str r1, [sp, #4] + ldr r1, _0802242C + str r1, [sp, #8] + mov r1, r8 + str r1, [sp, #0xc] + str r4, [sp, #0x10] + movs r1, #1 + movs r3, #1 + bl AddTextPrinterParameterized4 +_08022400: + ldr r1, _08022430 + adds r0, r7, r1 + adds r0, r0, r6 + ldrb r0, [r0] + movs r1, #3 + bl CopyWindowToVram + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldrb r0, [r7, #9] + cmp r6, r0 + blo _08022374 +_0802241A: + movs r0, #0 + bl CopyBgTilemapBufferToVram + add sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0802242C: .4byte 0x082C5EF6 +_08022430: .4byte 0x000001A7 + thumb_func_end sub_08022360 + + thumb_func_start sub_08022434 +sub_08022434: @ 0x08022434 + push {r4, r5, r6, lr} + sub sp, #8 + adds r6, r0, #0 + movs r5, #0 + ldr r0, _08022448 + ldr r4, _0802244C + adds r1, r4, #0 + bl LZ77UnCompWram + b _0802247E + .align 2, 0 +_08022448: .4byte 0x082C79C4 +_0802244C: .4byte 0x0201C000 +_08022450: + lsls r1, r5, #2 + movs r2, #0x98 + lsls r2, r2, #1 + adds r0, r6, r2 + adds r0, r0, r1 + ldr r3, [r0] + ldrb r0, [r3] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r4, r1 + ldrb r2, [r3, #1] + ldrb r3, [r3, #2] + movs r0, #0xa + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #3 + bl CopyToBgTilemapBufferRect + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_0802247E: + ldrb r0, [r6, #9] + cmp r5, r0 + blo _08022450 + movs r0, #3 + bl CopyBgTilemapBufferToVram + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08022434 + + thumb_func_start sub_08022494 +sub_08022494: @ 0x08022494 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + movs r5, #0 + ldr r0, _08022694 + strh r0, [r6, #0x2a] + strh r5, [r6, #0x2c] + ldr r1, _08022698 + strh r5, [r1] + ldr r1, _0802269C + strh r0, [r1] + ldr r4, _080226A0 +_080224AA: + lsls r0, r5, #3 + adds r0, r0, r4 + bl LoadCompressedSpriteSheet + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #3 + bls _080224AA + ldr r0, _080226A4 + bl LoadSpritePalettes + ldr r0, _080226A8 + movs r1, #0x78 + movs r2, #0x58 + movs r3, #5 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + movs r0, #0xa2 + lsls r0, r0, #1 + adds r3, r6, r0 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r1, _080226AC + adds r0, r0, r1 + str r0, [r3] + ldrb r1, [r0, #5] + movs r2, #0xc + orrs r1, r2 + strb r1, [r0, #5] + ldr r1, [r3] + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #2 + orrs r0, r2 + strb r0, [r1] + ldr r1, [r3] + adds r1, #0x2c + ldrb r0, [r1] + movs r2, #0x40 + orrs r0, r2 + strb r0, [r1] + movs r5, #0 + ldrb r1, [r6, #9] + cmp r5, r1 + bhs _08022586 + movs r7, #4 +_0802250E: + lsls r4, r5, #2 + movs r3, #0x98 + lsls r3, r3, #1 + adds r0, r6, r3 + adds r0, r0, r4 + ldr r0, [r0] + ldrh r1, [r0, #4] + adds r1, #0x78 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldrh r2, [r0, #6] + adds r2, #0x20 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + ldr r0, _080226B0 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + movs r0, #0xa4 + lsls r0, r0, #1 + adds r3, r6, r0 + adds r3, r3, r4 + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + ldr r0, _080226AC + adds r1, r1, r0 + str r1, [r3] + ldrb r0, [r1, #5] + movs r4, #0xd + rsbs r4, r4, #0 + adds r2, r4, #0 + ands r0, r2 + orrs r0, r7 + strb r0, [r1, #5] + ldr r1, [r3] + adds r1, #0x3e + ldrb r0, [r1] + orrs r0, r7 + strb r0, [r1] + ldr r2, [r3] + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #2 + orrs r0, r1 + strb r0, [r2] + ldr r2, [r3] + adds r2, #0x2c + ldrb r0, [r2] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldrb r0, [r6, #9] + cmp r5, r0 + blo _0802250E +_08022586: + movs r5, #0 + ldr r4, _080226B4 + adds r7, r4, #1 +_0802258C: + lsls r2, r5, #1 + adds r0, r2, r4 + movs r1, #0 + ldrsb r1, [r0, r1] + adds r1, #0x78 + adds r2, r2, r7 + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r2, #0x88 + ldr r0, _080226B8 + movs r3, #6 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r5, #2 + movs r1, #0xb8 + lsls r1, r1, #1 + adds r3, r6, r1 + adds r3, r3, r0 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r1, _080226AC + adds r0, r0, r1 + str r0, [r3] + ldrb r1, [r0, #5] + movs r2, #0xc + orrs r1, r2 + strb r1, [r0, #5] + ldr r2, [r3] + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r2, [r3] + adds r2, #0x2c + ldrb r0, [r2] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r3] + strh r5, [r0, #0x2e] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0xa + bls _0802258C + movs r5, #0 +_080225F2: + lsls r1, r5, #1 + adds r1, r1, r5 + lsls r1, r1, #0x13 + movs r3, #0xb0 + lsls r3, r3, #0x10 + adds r1, r1, r3 + asrs r1, r1, #0x10 + ldr r0, _080226BC + movs r2, #8 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r5, #2 + movs r4, #0xce + lsls r4, r4, #1 + adds r3, r6, r4 + adds r3, r3, r0 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r1, _080226AC + adds r0, r0, r1 + str r0, [r3] + ldrb r1, [r0, #5] + movs r4, #0xd + rsbs r4, r4, #0 + adds r2, r4, #0 + ands r1, r2 + strb r1, [r0, #5] + ldr r2, [r3] + adds r2, #0x3e + ldrb r0, [r2] + adds r4, #8 + adds r1, r4, #0 + ands r0, r1 + strb r0, [r2] + ldr r2, [r3] + adds r2, #0x2c + ldrb r0, [r2] + movs r3, #0x41 + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r0, r1 + strb r0, [r2] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #1 + bls _080225F2 + ldr r4, _080226C0 + movs r0, #0 + movs r1, #0 + adds r2, r4, #0 + bl sub_08034B6C + adds r2, r4, #0 + adds r2, #0x10 + movs r0, #1 + movs r1, #0 + bl sub_08034B6C + adds r4, #0x20 + movs r0, #2 + movs r1, #0 + adds r2, r4, #0 + bl sub_08034B6C + ldrh r0, [r6, #0x12] + cmp r0, #1 + bne _0802268C + movs r4, #0x92 + lsls r4, r4, #1 + adds r0, r6, r4 + bl sub_080222B4 +_0802268C: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08022694: .4byte 0x0000FF98 +_08022698: .4byte 0x02021B38 +_0802269C: .4byte 0x02021B3A +_080226A0: .4byte 0x082C7A80 +_080226A4: .4byte 0x082C7AA8 +_080226A8: .4byte 0x082C7B98 +_080226AC: .4byte 0x020205AC +_080226B0: .4byte 0x082C7BB0 +_080226B4: .4byte 0x082C7A5E +_080226B8: .4byte 0x082C7BC8 +_080226BC: .4byte 0x082C7BE0 +_080226C0: .4byte 0x082C7C10 + thumb_func_end sub_08022494 + + thumb_func_start sub_080226C4 +sub_080226C4: @ 0x080226C4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r4, #0 + movs r0, #4 + bl FreeSpriteTilesByTag + movs r0, #3 + bl FreeSpriteTilesByTag + movs r0, #2 + bl FreeSpriteTilesByTag + movs r0, #1 + bl FreeSpriteTilesByTag + movs r0, #4 + bl FreeSpritePaletteByTag + movs r0, #2 + bl FreeSpritePaletteByTag + movs r0, #1 + bl FreeSpritePaletteByTag + movs r0, #0xce + lsls r0, r0, #1 + adds r6, r5, r0 +_080226FA: + lsls r0, r4, #2 + adds r0, r6, r0 + ldr r0, [r0] + bl DestroySprite + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #1 + bls _080226FA + movs r0, #2 + bl sub_08035234 + movs r0, #1 + bl sub_08035234 + movs r0, #0 + bl sub_08035234 + movs r4, #0 + movs r1, #0xb8 + lsls r1, r1, #1 + adds r6, r5, r1 +_08022728: + lsls r0, r4, #2 + adds r0, r6, r0 + ldr r0, [r0] + bl DestroySprite + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xa + bls _08022728 + movs r4, #0 + ldrb r2, [r5, #9] + cmp r4, r2 + bhs _08022760 +_08022744: + lsls r1, r4, #2 + movs r2, #0xa4 + lsls r2, r2, #1 + adds r0, r5, r2 + adds r0, r0, r1 + ldr r0, [r0] + bl DestroySprite + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldrb r0, [r5, #9] + cmp r4, r0 + blo _08022744 +_08022760: + movs r1, #0xa2 + lsls r1, r1, #1 + adds r0, r5, r1 + ldr r2, [r0] + adds r0, r2, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0802277C + adds r0, r2, #0 + bl DestroySprite +_0802277C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080226C4 + + thumb_func_start sub_08022784 +sub_08022784: @ 0x08022784 + push {lr} + adds r3, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080227AA + adds r2, r3, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + subs r2, #0x12 + ldrb r0, [r2] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2] +_080227AA: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08022784 + + thumb_func_start sub_080227B0 +sub_080227B0: @ 0x080227B0 + push {r4, r5, lr} + adds r3, r0, #0 + movs r1, #0 + ldr r5, _080227F4 + adds r2, r3, #0 + adds r2, #0x2e + movs r4, #0 +_080227BE: + lsls r0, r1, #1 + adds r0, r2, r0 + strh r4, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #7 + bls _080227BE + movs r0, #0 + strh r0, [r3, #0x24] + strh r0, [r3, #0x26] + adds r2, r3, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + subs r2, #0x12 + ldrb r0, [r2] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2] + str r5, [r3, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080227F4: .4byte 0x08007141 + thumb_func_end sub_080227B0 + + thumb_func_start sub_080227F8 +sub_080227F8: @ 0x080227F8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x2e + ldrh r0, [r4, #4] + ldrh r1, [r4, #2] + adds r0, r0, r1 + strh r0, [r4, #2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + ldrh r2, [r5, #0x26] + adds r0, r0, r2 + strh r0, [r5, #0x26] + movs r1, #0xe + ldrsh r0, [r4, r1] + movs r6, #0x80 + lsls r6, r6, #8 + ands r0, r6 + cmp r0, #0 + beq _0802285E + ldrh r0, [r4, #6] + ldrh r2, [r5, #0x2e] + adds r0, r0, r2 + strh r0, [r5, #0x2e] + ldrh r0, [r4, #0xa] + ldrh r1, [r4, #8] + adds r0, r0, r1 + strh r0, [r4, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x17 + movs r2, #0xc + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r5, #0x24] + movs r1, #0xe + ldrsh r0, [r4, r1] + ands r0, r6 + cmp r0, #0 + beq _0802285E + ldrh r0, [r4, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x17 + cmp r0, #0x7e + ble _0802285E + movs r0, #0 + strh r0, [r5, #0x24] + ldrh r1, [r4, #0xe] + ldr r0, _08022884 + ands r0, r1 + strh r0, [r4, #0xe] +_0802285E: + ldrh r0, [r4] + lsls r0, r0, #0x10 + asrs r0, r0, #0x17 + strh r0, [r5, #0x20] + movs r2, #0x22 + ldrsh r1, [r5, r2] + movs r2, #0x26 + ldrsh r0, [r5, r2] + adds r1, r1, r0 + ldrh r2, [r4, #0xe] + ldr r0, _08022884 + ands r0, r2 + cmp r1, r0 + ble _0802287E + ldr r0, _08022888 + str r0, [r5, #0x1c] +_0802287E: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08022884: .4byte 0x00007FFF +_08022888: .4byte 0x080227B1 + thumb_func_end sub_080227F8 + + thumb_func_start sub_0802288C +sub_0802288C: @ 0x0802288C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r7, r6, #0 + adds r7, #0x2e + movs r0, #0 + mov r8, r0 + movs r2, #0xa0 + lsls r2, r2, #2 + strh r2, [r7, #2] + movs r0, #0x20 + strh r0, [r7, #4] + movs r1, #0xa8 + strh r1, [r7, #0xe] + movs r0, #0x24 + ldrsh r4, [r6, r0] + lsls r4, r4, #0x17 + lsrs r4, r4, #0x10 + ldrh r0, [r6, #0x22] + subs r1, r1, r0 + lsls r1, r1, #0x17 + asrs r1, r1, #0x10 + adds r2, #0x20 + asrs r2, r2, #1 + movs r0, #7 + bl sub_081515B0 + adds r5, r0, #0 + ldrh r0, [r6, #0x20] + lsls r0, r0, #7 + strh r0, [r6, #0x2e] + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + movs r0, #7 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_081515B0 + strh r0, [r7, #6] + movs r0, #7 + adds r1, r5, #0 + movs r2, #0x55 + bl sub_0815152C + adds r2, r0, #0 + mov r1, r8 + strh r1, [r7, #8] + movs r1, #0xfe + lsls r1, r1, #6 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + movs r0, #7 + bl sub_081515B0 + strh r0, [r7, #0xa] + movs r2, #0x24 + ldrsh r0, [r6, r2] + cmp r0, #0 + bge _0802290A + adds r0, #3 +_0802290A: + asrs r0, r0, #2 + strh r0, [r7, #0xc] + ldrh r0, [r7, #0xe] + ldr r2, _08022948 + adds r1, r2, #0 + orrs r0, r1 + strh r0, [r7, #0xe] + mov r0, r8 + strh r0, [r6, #0x26] + strh r0, [r6, #0x24] + ldr r0, _0802294C + str r0, [r6, #0x1c] + adds r2, r6, #0 + adds r2, #0x2c + ldrb r1, [r2] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r2, #0x12 + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08022948: .4byte 0xFFFF8000 +_0802294C: .4byte 0x080227F9 + thumb_func_end sub_0802288C + + thumb_func_start sub_08022950 +sub_08022950: @ 0x08022950 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r2, #0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + mov r8, r4 + bl sub_08020918 + adds r6, r0, #0 + cmp r5, #0x19 + bls _0802296E + movs r5, #0 +_0802296E: + cmp r4, #0 + beq _08022978 + cmp r4, #1 + beq _080229A4 + b _080229AE +_08022978: + cmp r5, #0 + beq _0802298C + ldr r0, _080229A0 + lsls r1, r5, #2 + adds r1, r1, r0 + ldr r2, [r1] + adds r0, r6, #0 + adds r1, r7, #0 + bl _call_via_r2 +_0802298C: + ldrb r0, [r6, #0xe] + cmp r0, #0x19 + bls _08022996 + mov r0, r8 + strb r0, [r6, #0xe] +_08022996: + ldr r0, _080229A0 + ldrb r1, [r6, #0xe] + lsls r1, r1, #2 + b _080229A8 + .align 2, 0 +_080229A0: .4byte 0x082C7C58 +_080229A4: + ldr r0, _080229B8 + lsls r1, r5, #2 +_080229A8: + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r6, #4] +_080229AE: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080229B8: .4byte 0x082C7C58 + thumb_func_end sub_08022950 + + thumb_func_start sub_080229BC +sub_080229BC: @ 0x080229BC + push {r4, r5, r6, lr} + sub sp, #4 + adds r6, r0, #0 + ldrb r2, [r1] + ldrb r3, [r1, #1] + lsls r3, r3, #8 + orrs r2, r3 + ldrb r3, [r1, #2] + lsls r3, r3, #0x10 + orrs r2, r3 + ldrb r3, [r1, #3] + lsls r3, r3, #0x18 + adds r0, r2, #0 + orrs r0, r3 + ldrb r2, [r1, #9] + strb r2, [r1] + ldrb r4, [r1, #8] + lsls r4, r4, #8 + ldrb r2, [r1, #7] + orrs r4, r2 + ldr r5, _08022A10 + ldrb r3, [r5, #8] + movs r2, #0x7f + ands r2, r3 + strb r2, [r5, #8] + movs r5, #4 + ldrsb r5, [r1, r5] + ldrb r2, [r1, #5] + ldrb r3, [r1, #6] + str r4, [sp] + adds r1, r5, #0 + bl BeginNormalPaletteFade + bl UpdatePaletteFade + movs r0, #2 + strb r0, [r6, #0xe] + movs r0, #0 + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08022A10: .4byte 0x02037C74 + thumb_func_end sub_080229BC + + thumb_func_start sub_08022A14 +sub_08022A14: @ 0x08022A14 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08022A48 + cmp r0, #1 + bgt _08022A2A + cmp r0, #0 + beq _08022A34 + b _08022A6A +_08022A2A: + cmp r0, #2 + beq _08022A4E + cmp r0, #3 + beq _08022A5A + b _08022A6A +_08022A34: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08022A70 + ldrb r0, [r5] + cmp r0, #0 + bne _08022A6A + movs r0, #3 + b _08022A6E +_08022A48: + bl sub_0800FF34 + b _08022A6A +_08022A4E: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08022A6A + b _08022A70 +_08022A5A: + ldrb r0, [r4, #0xf] + movs r1, #1 + movs r2, #0 + bl sub_08022950 + movs r0, #0 + strb r0, [r4, #0xc] + b _08022A72 +_08022A6A: + ldrb r0, [r4, #0xc] + adds r0, #1 +_08022A6E: + strb r0, [r4, #0xc] +_08022A70: + movs r0, #0 +_08022A72: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_08022A14 + + thumb_func_start sub_08022A78 +sub_08022A78: @ 0x08022A78 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x10 + adds r7, r0, #0 + adds r5, r1, #0 + ldrb r4, [r5, #3] + lsls r4, r4, #8 + ldrb r0, [r5, #2] + orrs r4, r0 + ldrb r6, [r7, #0xc] + cmp r6, #1 + beq _08022B24 + cmp r6, #1 + bgt _08022A9C + cmp r6, #0 + beq _08022AA6 + b _08022B6C +_08022A9C: + cmp r6, #2 + beq _08022B3C + cmp r6, #3 + beq _08022B4C + b _08022B6C +_08022AA6: + movs r0, #0 + movs r1, #0 + bl ClearDialogWindowAndFrame + ldrb r1, [r5, #1] + movs r0, #2 + mov r8, r0 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + beq _08022AF4 + ldr r4, _08022AEC + ldr r1, _08022AF0 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl StringExpandPlaceholders + ldrb r3, [r7, #0xb] + str r6, [sp] + mov r0, r8 + str r0, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + movs r0, #3 + str r0, [sp, #0xc] + movs r0, #0 + movs r1, #1 + adds r2, r4, #0 + bl AddTextPrinterParameterized2 + b _08022B16 + .align 2, 0 +_08022AEC: .4byte 0x02021C7C +_08022AF0: .4byte 0x082C5EBC +_08022AF4: + ldr r1, _08022B20 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r2, [r0] + ldrb r3, [r7, #0xb] + str r4, [sp] + mov r0, r8 + str r0, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + movs r0, #3 + str r0, [sp, #0xc] + movs r0, #0 + movs r1, #1 + bl AddTextPrinterParameterized2 +_08022B16: + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + b _08022B6C + .align 2, 0 +_08022B20: .4byte 0x082C5EBC +_08022B24: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08022B72 + cmp r4, #0 + bne _08022B6C + ldrb r0, [r7, #0xc] + adds r0, #1 + strb r0, [r7, #0xc] + b _08022B6C +_08022B3C: + ldr r0, _08022B48 + ldrh r0, [r0, #0x2e] + ands r4, r0 + cmp r4, #0 + bne _08022B6C + b _08022B72 + .align 2, 0 +_08022B48: .4byte 0x03002360 +_08022B4C: + ldrb r1, [r5, #1] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08022B5E + movs r0, #0 + movs r1, #1 + bl DrawDialogueFrame +_08022B5E: + ldrb r0, [r7, #0xe] + movs r1, #1 + movs r2, #0 + bl sub_08022950 + ldrb r0, [r5, #4] + b _08022B70 +_08022B6C: + ldrb r0, [r7, #0xc] + adds r0, #1 +_08022B70: + strb r0, [r7, #0xc] +_08022B72: + movs r0, #0 + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_08022A78 + + thumb_func_start sub_08022B80 +sub_08022B80: @ 0x08022B80 + push {r4, lr} + adds r4, r0, #0 + bl sub_08020D74 + cmp r0, #0 + beq _08022B98 + ldrb r0, [r4, #0xe] + adds r2, r4, #0 + adds r2, #0x36 + movs r1, #0 + bl sub_08022950 +_08022B98: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_08022B80 + + thumb_func_start sub_08022BA0 +sub_08022BA0: @ 0x08022BA0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08021038 + cmp r0, #0 + beq _08022BB8 + ldrb r0, [r4, #0xe] + adds r2, r4, #0 + adds r2, #0x36 + movs r1, #0 + bl sub_08022950 +_08022BB8: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_08022BA0 + + thumb_func_start sub_08022BC0 +sub_08022BC0: @ 0x08022BC0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _08022BD0 + cmp r0, #1 + beq _08022BD6 + b _08022C00 +_08022BD0: + bl sub_0800FF34 + b _08022C00 +_08022BD6: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08022C06 + ldr r0, _08022BFC + bl PlayNewMapMusic + movs r0, #7 + movs r1, #1 + movs r2, #0 + bl sub_08022950 + movs r1, #0 + movs r0, #3 + strh r0, [r4, #0x12] + strb r1, [r4, #0xc] + b _08022C06 + .align 2, 0 +_08022BFC: .4byte 0x000001E5 +_08022C00: + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_08022C06: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08022BC0 + + thumb_func_start sub_08022C10 +sub_08022C10: @ 0x08022C10 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _08022C26 + cmp r0, #1 + beq _08022C4C + adds r0, #1 + b _08022C5C +_08022C26: + adds r0, r4, #0 + bl sub_08024340 + movs r0, #1 + str r0, [sp] + adds r0, r5, #0 + movs r1, #0 + movs r2, #1 + movs r3, #0 + bl sub_08024410 + movs r0, #7 + strb r0, [r4, #0xe] + movs r0, #3 + movs r1, #1 + movs r2, #0 + bl sub_08022950 + b _08022C5E +_08022C4C: + movs r0, #8 + strb r0, [r4, #0xe] + movs r0, #5 + movs r1, #1 + movs r2, #0 + bl sub_08022950 + movs r0, #2 +_08022C5C: + strb r0, [r4, #0xc] +_08022C5E: + movs r0, #0 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_08022C10 + + thumb_func_start sub_08022C68 +sub_08022C68: @ 0x08022C68 + push {lr} + movs r1, #0 + str r1, [r0, #4] + ldr r0, _08022C7C + bl SetMainCallback2 + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_08022C7C: .4byte 0x08020B39 + thumb_func_end sub_08022C68 + + thumb_func_start sub_08022C80 +sub_08022C80: @ 0x08022C80 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r5, r0, #0 + adds r2, r1, #0 + ldrb r0, [r5, #0xc] + cmp r0, #5 + bls _08022C90 + b _08022DCC +_08022C90: + lsls r0, r0, #2 + ldr r1, _08022C9C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08022C9C: .4byte 0x08022CA0 +_08022CA0: @ jump table + .4byte _08022CB8 @ case 0 + .4byte _08022CD8 @ case 1 + .4byte _08022CDE @ case 2 + .4byte _08022D12 @ case 3 + .4byte _08022D22 @ case 4 + .4byte _08022DB0 @ case 5 +_08022CB8: + movs r0, #1 + str r0, [sp] + adds r0, r2, #0 + movs r1, #1 + movs r2, #0 + movs r3, #0 + bl sub_08024410 + movs r0, #9 + strb r0, [r5, #0xe] + movs r0, #3 + movs r1, #1 + movs r2, #0 + bl sub_08022950 + b _08022DD2 +_08022CD8: + bl sub_0800FF34 + b _08022DCC +_08022CDE: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08022DD2 + adds r4, r5, #0 + adds r4, #0x42 + adds r0, r4, #0 + movs r1, #0 + movs r2, #0xc + bl memset + ldrb r1, [r5, #8] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r5, r0 + adds r0, #0xa0 + ldrh r0, [r0] + strh r0, [r4] + movs r0, #0 + adds r1, r4, #0 + movs r2, #2 + bl SendBlock + b _08022DCC +_08022D12: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08022DD2 + movs r0, #0 + strh r0, [r5, #0x10] + b _08022DCC +_08022D22: + bl GetBlockReceivedStatus + ldr r2, _08022DA4 + ldrb r4, [r5, #9] + subs r1, r4, #2 + adds r1, r1, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + bne _08022DD2 + movs r3, #0 + cmp r3, r4 + bhs _08022D8A + ldr r7, _08022DA8 + movs r6, #0 + ldr r4, _08022DAC +_08022D44: + lsls r0, r3, #3 + subs r0, r0, r3 + lsls r0, r0, #2 + adds r0, r5, r0 + lsls r1, r3, #8 + adds r1, r1, r7 + ldrh r1, [r1] + adds r2, r0, #0 + adds r2, #0xa0 + strh r1, [r2] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + cmp r1, #0xb0 + bls _08022D62 + strh r6, [r2] +_08022D62: + ldrh r1, [r2] + lsls r1, r1, #2 + adds r1, r1, r4 + ldrh r0, [r5, #0x18] + ldrb r1, [r1] + adds r0, r0, r1 + strh r0, [r5, #0x18] + ldrh r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r0, #2] + ldr r0, [r5, #0x1c] + adds r0, r0, r1 + str r0, [r5, #0x1c] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldrb r0, [r5, #9] + cmp r3, r0 + blo _08022D44 +_08022D8A: + movs r0, #0 + strh r0, [r5, #0x10] + bl ResetBlockReceivedFlags + movs r1, #0x18 + ldrsh r0, [r5, r1] + lsls r0, r0, #8 + movs r1, #0x80 + lsls r1, r1, #6 + bl sub_081515D8 + str r0, [r5, #0x20] + b _08022DCC + .align 2, 0 +_08022DA4: .4byte 0x082C7CD4 +_08022DA8: .4byte 0x0202207C +_08022DAC: .4byte 0x08563604 +_08022DB0: + movs r0, #0 + movs r1, #1 + bl DrawDialogueFrame + movs r0, #0xa + movs r1, #1 + movs r2, #0 + bl sub_08022950 + movs r1, #0 + movs r0, #4 + strh r0, [r5, #0x12] + strb r1, [r5, #0xc] + b _08022DD2 +_08022DCC: + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] +_08022DD2: + movs r0, #0 + add sp, #4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_08022C80 + + thumb_func_start sub_08022DDC +sub_08022DDC: @ 0x08022DDC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #6 + bls _08022DE8 + b _08022F14 +_08022DE8: + lsls r0, r0, #2 + ldr r1, _08022DF4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08022DF4: .4byte 0x08022DF8 +_08022DF8: @ jump table + .4byte _08022E14 @ case 0 + .4byte _08022E26 @ case 1 + .4byte _08022E54 @ case 2 + .4byte _08022E8C @ case 3 + .4byte _08022EBC @ case 4 + .4byte _08022EDE @ case 5 + .4byte _08022EF0 @ case 6 +_08022E14: + movs r0, #0x92 + lsls r0, r0, #1 + adds r1, r4, r0 + adds r0, r4, #0 + bl sub_080211D4 + bl sub_0800FF34 + b _08022F14 +_08022E26: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08022F1A + movs r2, #0x92 + lsls r2, r2, #1 + adds r1, r4, r2 + movs r0, #0 + strb r0, [r1] + ldr r3, _08022E50 + adds r1, r4, r3 + strb r0, [r1] + adds r2, #2 + adds r1, r4, r2 + strb r0, [r1] + adds r3, #2 + adds r1, r4, r3 + strb r0, [r1] + b _08022F14 + .align 2, 0 +_08022E50: .4byte 0x00000125 +_08022E54: + movs r0, #0x92 + lsls r0, r0, #1 + adds r3, r4, r0 + ldrb r0, [r3] + lsls r0, r0, #2 + movs r2, #0xae + lsls r2, r2, #1 + adds r1, r4, r2 + adds r0, r1, r0 + ldr r2, [r0] + ldr r0, _08022E88 + str r0, [r2, #0x1c] + ldrb r0, [r3] + lsls r0, r0, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r1, #0x2c + ldrb r2, [r1] + movs r0, #0x7f + ands r0, r2 + strb r0, [r1] + movs r0, #0x3d + bl PlaySE + b _08022F14 + .align 2, 0 +_08022E88: .4byte 0x08021339 +_08022E8C: + movs r3, #0x92 + lsls r3, r3, #1 + adds r2, r4, r3 + ldrb r0, [r2] + lsls r0, r0, #2 + adds r3, #0x38 + adds r1, r4, r3 + adds r3, r1, r0 + ldr r0, [r3] + ldr r1, [r0, #0x1c] + ldr r0, _08022EB8 + cmp r1, r0 + beq _08022F1A + movs r0, #0 + str r0, [r3] + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + bl sub_0800FF34 + b _08022F14 + .align 2, 0 +_08022EB8: .4byte 0x08021339 +_08022EBC: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08022F1A + movs r0, #0x92 + lsls r0, r0, #1 + adds r1, r4, r0 + ldrb r0, [r1] + ldrb r2, [r4, #9] + cmp r0, r2 + bhs _08022ED8 + movs r0, #2 + b _08022F18 +_08022ED8: + movs r0, #0 + strb r0, [r1] + b _08022F14 +_08022EDE: + movs r3, #0x92 + lsls r3, r3, #1 + adds r1, r4, r3 + adds r0, r4, #0 + bl sub_080213D8 + bl sub_0800FF34 + b _08022F14 +_08022EF0: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08022F1A + movs r0, #0x2b + bl PlaySE + movs r0, #0xb + movs r1, #1 + movs r2, #0 + bl sub_08022950 + movs r1, #0 + movs r0, #5 + strh r0, [r4, #0x12] + strb r1, [r4, #0xc] + b _08022F1A +_08022F14: + ldrb r0, [r4, #0xc] + adds r0, #1 +_08022F18: + strb r0, [r4, #0xc] +_08022F1A: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08022DDC + + thumb_func_start sub_08022F24 +sub_08022F24: @ 0x08022F24 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xc] + cmp r1, #1 + beq _08022F88 + cmp r1, #1 + bgt _08022F38 + cmp r1, #0 + beq _08022F42 + b _08023048 +_08022F38: + cmp r1, #2 + beq _08023008 + cmp r1, #3 + beq _0802302A + b _08023048 +_08022F42: + ldrh r0, [r4, #0x2a] + adds r0, #4 + strh r0, [r4, #0x2a] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _08022F50 + b _0802304E +_08022F50: + strh r1, [r4, #0x2a] + ldr r0, _08022F80 + adds r3, r4, r0 + movs r0, #4 + strb r0, [r3] + movs r2, #0x92 + lsls r2, r2, #1 + adds r1, r4, r2 + movs r0, #0 + strb r0, [r1] + ldr r2, _08022F84 + ldrb r1, [r3] + lsls r0, r1, #3 + subs r0, r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + movs r2, #0x93 + lsls r2, r2, #1 + adds r1, r4, r2 + strb r0, [r1] + movs r0, #0xd6 + bl PlaySE + b _08023048 + .align 2, 0 +_08022F80: .4byte 0x00000125 +_08022F84: .4byte 0x082C5E84 +_08022F88: + ldr r7, _08023000 + movs r0, #0x92 + lsls r0, r0, #1 + adds r6, r4, r0 + ldr r1, _08023004 + adds r5, r4, r1 + ldrb r1, [r5] + lsls r0, r1, #3 + subs r0, r0, r1 + ldrb r2, [r6] + adds r0, r0, r2 + adds r0, r0, r7 + movs r1, #0 + ldrsb r1, [r0, r1] + strh r1, [r4, #0x2c] + rsbs r1, r1, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x12 + bl SetGpuReg + ldrh r1, [r4, #0x2c] + rsbs r1, r1, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x1a + bl SetGpuReg + ldrh r1, [r4, #0x2c] + rsbs r1, r1, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x1e + bl SetGpuReg + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] + movs r1, #0x93 + lsls r1, r1, #1 + adds r2, r4, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r2] + cmp r0, r1 + blo _0802304E + ldrb r0, [r5] + cmp r0, #0 + beq _08023048 + subs r0, #1 + strb r0, [r5] + ldrb r1, [r5] + lsls r0, r1, #3 + subs r0, r0, r1 + adds r0, r0, r7 + ldrb r0, [r0] + strb r0, [r2] + movs r0, #0 + strb r0, [r6] + b _0802304E + .align 2, 0 +_08023000: .4byte 0x082C5E84 +_08023004: .4byte 0x00000125 +_08023008: + movs r0, #0 + strh r0, [r4, #0x2c] + movs r0, #0x12 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1a + movs r1, #0 + bl SetGpuReg + movs r0, #0x1e + movs r1, #0 + bl SetGpuReg + bl sub_0800FF34 + b _08023048 +_0802302A: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0802304E + movs r0, #0xc + movs r1, #1 + movs r2, #0 + bl sub_08022950 + movs r1, #0 + movs r0, #6 + strh r0, [r4, #0x12] + strb r1, [r4, #0xc] + b _0802304E +_08023048: + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_0802304E: + movs r0, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08022F24 + + thumb_func_start sub_08023058 +sub_08023058: @ 0x08023058 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08023078 + cmp r0, #1 + bgt _0802306E + cmp r0, #0 + beq _0802309E + b _080230F8 +_0802306E: + cmp r0, #2 + beq _08023096 + cmp r0, #3 + beq _080230A4 + b _080230F8 +_08023078: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080230FE + movs r1, #0x80 + lsls r1, r1, #5 + movs r0, #0 + str r0, [sp] + adds r0, r1, #0 + movs r2, #0x78 + movs r3, #0x50 + bl sub_0802E788 + b _080230F8 +_08023096: + bl sub_0802E7E8 + cmp r0, #0 + bne _080230FE +_0802309E: + bl sub_0800FF34 + b _080230F8 +_080230A4: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080230FE + movs r0, #0x92 + lsls r0, r0, #1 + adds r1, r4, r0 + movs r0, #0 + strb r0, [r1] + ldr r2, _080230E0 + adds r1, r4, r2 + strb r0, [r1] + adds r2, #1 + adds r1, r4, r2 + strb r0, [r1] + adds r2, #1 + adds r1, r4, r2 + strb r0, [r1] + strh r0, [r4, #0x10] + ldrb r0, [r4, #8] + cmp r0, #0 + bne _080230E4 + movs r0, #0xd + movs r1, #1 + movs r2, #0 + bl sub_08022950 + b _080230EE + .align 2, 0 +_080230E0: .4byte 0x00000125 +_080230E4: + movs r0, #0xe + movs r1, #1 + movs r2, #0 + bl sub_08022950 +_080230EE: + movs r1, #0 + movs r0, #7 + strh r0, [r4, #0x12] + strb r1, [r4, #0xc] + b _080230FE +_080230F8: + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_080230FE: + movs r0, #0 + add sp, #4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_08023058 + + thumb_func_start sub_08023108 +sub_08023108: @ 0x08023108 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r5, r0, #0 + movs r0, #0 + mov r8, r0 + movs r2, #0 + adds r6, r2, #0 + ldrb r1, [r5, #9] + cmp r6, r1 + blo _08023124 + b _0802322E +_08023124: + movs r2, #0x5e + adds r2, r2, r5 + mov sb, r2 + ldr r3, _080231D4 + mov sl, r3 +_0802312E: + lsls r0, r6, #4 + ldr r1, _080231D8 + adds r2, r0, r1 + ldrh r1, [r2] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + movs r3, #0xbc + lsls r3, r3, #6 + cmp r0, r3 + bne _08023220 + ldrh r0, [r2, #2] + cmp r0, #2 + bne _08023220 + ldrb r1, [r2, #4] + movs r0, #4 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _08023214 + mov r0, sb + ldrb r2, [r0] + lsrs r1, r2, #3 + mov r3, sl + adds r0, r6, r3 + ldrb r0, [r0] + orrs r1, r0 + lsls r1, r1, #3 + movs r0, #7 + ands r0, r2 + orrs r0, r1 + mov r1, sb + strb r0, [r1] + lsls r2, r6, #3 + subs r0, r2, r6 + lsls r0, r0, #2 + adds r3, r5, r0 + adds r1, r3, #0 + adds r1, #0xb1 + movs r0, #1 + strb r0, [r1] + subs r1, #7 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + subs r1, #8 + ldrh r0, [r5, #0x28] + ldrh r1, [r1] + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r0, #0xa6 + adds r0, r0, r3 + mov ip, r0 + ldrh r1, [r0] + subs r0, r1, #1 + adds r7, r2, #0 + cmp r4, r0 + blt _080231DC + adds r0, r1, #1 + cmp r4, r0 + bgt _080231DC + adds r1, r3, #0 + adds r1, #0xa4 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + mov r2, ip + strh r4, [r2] + adds r0, r3, #0 + adds r0, #0xa8 + ldrh r1, [r1] + ldrh r3, [r0] + cmp r1, r3 + bls _080231EE + strh r1, [r0] + b _080231EE + .align 2, 0 +_080231D4: .4byte 0x082C5E74 +_080231D8: .4byte 0x03003130 +_080231DC: + subs r0, r7, r6 + lsls r0, r0, #2 + adds r0, r5, r0 + adds r2, r0, #0 + adds r2, #0xa4 + movs r1, #0 + strh r1, [r2] + adds r0, #0xa6 + strh r4, [r0] +_080231EE: + subs r0, r7, r6 + lsls r0, r0, #2 + adds r0, r5, r0 + ldrh r1, [r5, #0x28] + adds r3, r0, #0 + adds r3, #0xa2 + movs r4, #0 + strh r1, [r3] + adds r2, r0, #0 + adds r2, #0xb0 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bls _08023220 + strb r4, [r2] + b _08023220 +_08023214: + lsls r0, r6, #3 + subs r0, r0, r6 + lsls r0, r0, #2 + adds r0, r5, r0 + adds r0, #0xb1 + strb r1, [r0] +_08023220: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldrb r0, [r5, #9] + cmp r6, r0 + bhs _0802322E + b _0802312E +_0802322E: + mov r1, r8 + cmp r1, #1 + bls _08023268 + movs r6, #0 + ldrb r2, [r5, #9] + cmp r6, r2 + bhs _08023268 +_0802323C: + lsls r0, r6, #3 + subs r0, r0, r6 + lsls r0, r0, #2 + adds r1, r5, r0 + adds r3, r1, #0 + adds r3, #0xb1 + ldrb r2, [r3] + cmp r2, #0 + beq _0802325C + movs r0, #2 + orrs r0, r2 + strb r0, [r3] + adds r1, #0xac + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_0802325C: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldrb r3, [r5, #9] + cmp r6, r3 + blo _0802323C +_08023268: + mov r0, r8 + cmp r0, #0 + beq _080232D0 + ldrh r0, [r5, #0x2e] + add r0, r8 + strh r0, [r5, #0x2e] + ldr r1, _080232B8 + mov r0, r8 + subs r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + add r0, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldrh r0, [r5, #0x34] + add r0, r8 + strh r0, [r5, #0x34] + ldrh r0, [r5, #0x1a] + add r0, r8 + strh r0, [r5, #0x1a] + movs r1, #0x18 + ldrsh r0, [r5, r1] + movs r3, #0x1a + ldrsh r2, [r5, r3] + subs r0, r0, r2 + cmp r0, #0 + ble _080232BC + lsls r2, r2, #8 + ldr r1, [r5, #0x20] + adds r0, r2, #0 + bl sub_081515D8 + adds r2, r0, #0 + asrs r2, r2, #8 + adds r0, r5, #0 + adds r0, #0x24 + strb r2, [r0] + b _080232D0 + .align 2, 0 +_080232B8: .4byte 0x082C5E7C +_080232BC: + adds r1, r5, #0 + adds r1, #0x24 + movs r0, #0x20 + strb r0, [r1] + adds r2, r5, #0 + adds r2, #0x5e + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] +_080232D0: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08023108 + + thumb_func_start sub_080232E0 +sub_080232E0: @ 0x080232E0 + push {r4, r5, r6, lr} + adds r3, r0, #0 + movs r6, #0 + movs r1, #0 + adds r4, r1, #0 + ldrb r0, [r3, #9] + cmp r4, r0 + bhs _0802333C + adds r5, r3, #0 + adds r5, #0x64 +_080232F4: + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + adds r1, r3, r0 + adds r0, r1, #0 + adds r0, #0xb1 + ldrb r2, [r0] + cmp r2, #0 + beq _08023330 + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r0, r1, #0 + adds r0, #0xb0 + ldrb r0, [r0] + adds r1, r0, #1 + movs r0, #2 + ands r0, r2 + cmp r0, #0 + beq _08023320 + movs r0, #4 + orrs r1, r0 +_08023320: + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r1, r0 + lsls r0, r1, #0x10 + lsrs r1, r0, #0x10 + ldrh r0, [r5] + orrs r1, r0 + strh r1, [r5] +_08023330: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldrb r1, [r3, #9] + cmp r4, r1 + blo _080232F4 +_0802333C: + adds r0, r3, #0 + adds r0, #0x24 + ldrb r1, [r0] + adds r0, #0x3c + strh r1, [r0] + cmp r6, #0 + bne _08023360 + ldr r2, _0802335C + adds r0, r3, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _0802342C + movs r4, #0x92 + lsls r4, r4, #1 + adds r1, r3, r4 + b _0802339E + .align 2, 0 +_0802335C: .4byte 0x00000127 +_08023360: + ldr r5, _0802338C + adds r2, r3, r5 + ldrb r0, [r2] + cmp r0, #0 + beq _080233A6 + ldr r0, _08023390 + adds r1, r3, r0 + ldrb r2, [r1] + cmp r6, r2 + beq _08023398 + subs r0, r6, #1 + strb r0, [r1] + ldr r1, _08023394 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0] + movs r4, #0x93 + lsls r4, r4, #1 + adds r1, r3, r4 + strb r0, [r1] + b _080233CC + .align 2, 0 +_0802338C: .4byte 0x00000127 +_08023390: .4byte 0x00000125 +_08023394: .4byte 0x082C5EA8 +_08023398: + movs r5, #0x92 + lsls r5, r5, #1 + adds r1, r3, r5 +_0802339E: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080233CC +_080233A6: + movs r0, #0x92 + lsls r0, r0, #1 + adds r1, r3, r0 + movs r0, #0 + strb r0, [r1] + subs r0, r6, #1 + ldr r4, _080233FC + adds r1, r3, r4 + strb r0, [r1] + ldr r1, _08023400 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0] + movs r5, #0x93 + lsls r5, r5, #1 + adds r1, r3, r5 + strb r0, [r1] + movs r0, #1 + strb r0, [r2] +_080233CC: + ldr r0, _08023404 + adds r4, r3, r0 + ldrb r0, [r4] + cmp r0, #0 + beq _0802342C + movs r2, #0x92 + lsls r2, r2, #1 + adds r1, r3, r2 + movs r5, #0x93 + lsls r5, r5, #1 + adds r2, r3, r5 + ldrb r0, [r1] + ldrb r5, [r2] + cmp r0, r5 + blo _08023408 + movs r0, #0 + strb r0, [r1] + ldr r5, _080233FC + adds r1, r3, r5 + strb r0, [r1] + strb r0, [r2] + strb r0, [r4] + movs r1, #0 + b _0802341C + .align 2, 0 +_080233FC: .4byte 0x00000125 +_08023400: .4byte 0x082C5EA8 +_08023404: .4byte 0x00000127 +_08023408: + ldr r2, _08023424 + ldrb r1, [r1] + ldr r4, _08023428 + adds r0, r3, r4 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, #1 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r1, [r1] +_0802341C: + adds r0, r3, #0 + adds r0, #0x5f + strb r1, [r0] + b _08023434 + .align 2, 0 +_08023424: .4byte 0x082C5EA8 +_08023428: .4byte 0x00000125 +_0802342C: + adds r1, r3, #0 + adds r1, #0x5f + movs r0, #0 + strb r0, [r1] +_08023434: + ldrh r1, [r3, #0x26] + adds r0, r3, #0 + adds r0, #0x62 + strh r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080232E0 + + thumb_func_start sub_08023444 +sub_08023444: @ 0x08023444 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + ldr r3, _080234DC + ldrh r1, [r3, #0x2e] + movs r4, #1 + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + beq _08023466 + adds r2, r5, #0 + adds r2, #0x5e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] +_08023466: + ldrh r1, [r3, #0x2c] + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + beq _0802348A + ldrb r1, [r5, #8] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r5, r0 + adds r1, r0, #0 + adds r1, #0xae + ldrh r0, [r1] + ldrh r2, [r5, #0x28] + cmp r0, r2 + bhs _0802348A + adds r0, #1 + strh r0, [r1] +_0802348A: + ldrb r0, [r5, #8] + adds r7, r5, #0 + adds r7, #0x5e + cmp r0, #0 + beq _080234A0 + ldrb r1, [r7] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _080234A0 + b _080235DC +_080234A0: + adds r4, r5, #0 + adds r4, #0x5c + movs r0, #2 + strh r0, [r4] + ldrh r0, [r5, #0x28] + movs r1, #0x1e + bl __umodsi3 + lsls r0, r0, #0x10 + mov r8, r4 + adds r6, r5, #0 + adds r6, #0x25 + cmp r0, #0 + bne _080234F8 + movs r0, #0x2e + ldrsh r2, [r5, r0] + ldr r1, _080234E0 + ldrb r0, [r5, #9] + subs r0, #2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r2, r0 + ble _080234E4 + ldrh r0, [r5, #0x30] + adds r0, #1 + strh r0, [r5, #0x30] + ldrb r0, [r6] + movs r1, #0x10 + orrs r0, r1 + b _080234EC + .align 2, 0 +_080234DC: .4byte 0x03002360 +_080234E0: .4byte 0x082C7CD0 +_080234E4: + ldrb r1, [r6] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r1 +_080234EC: + strb r0, [r6] + movs r0, #0 + strh r0, [r5, #0x2e] + ldrh r0, [r5, #0x32] + adds r0, #1 + strh r0, [r5, #0x32] +_080234F8: + ldrh r0, [r5, #0x28] + movs r1, #0xf + bl __umodsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0802356E + movs r0, #0x34 + ldrsh r2, [r5, r0] + ldr r3, _08023524 + ldrb r0, [r5, #9] + subs r0, #2 + lsls r1, r0, #2 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r2, r0 + bge _08023528 + ldrb r1, [r6] + movs r0, #0x1f + ands r0, r1 + strb r0, [r6] + b _08023568 + .align 2, 0 +_08023524: .4byte 0x082C7CC0 +_08023528: + adds r0, r3, #1 + adds r0, r1, r0 + ldrb r0, [r0] + cmp r2, r0 + bge _0802353C + ldrb r0, [r6] + movs r1, #0x1f + ands r1, r0 + movs r0, #0x20 + b _08023564 +_0802353C: + adds r0, r3, #2 + adds r0, r1, r0 + ldrb r0, [r0] + cmp r2, r0 + bge _0802354C + movs r0, #2 + strh r0, [r5, #0x34] + b _08023568 +_0802354C: + adds r0, r3, #3 + adds r0, r1, r0 + ldrb r0, [r0] + cmp r2, r0 + bge _0802355C + movs r0, #3 + strh r0, [r5, #0x34] + b _08023568 +_0802355C: + ldrb r0, [r6] + movs r1, #0x1f + ands r1, r0 + movs r0, #0x80 +_08023564: + orrs r1, r0 + strb r1, [r6] +_08023568: + movs r0, #0 + strh r0, [r5, #0x34] + b _0802359A +_0802356E: + ldrh r0, [r5, #0x10] + adds r0, #1 + strh r0, [r5, #0x10] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x3c + bls _0802359A + cmp r0, #0x46 + bls _0802358A + bl sub_080115B4 + movs r0, #0 + strh r0, [r5, #0x10] + b _0802359A +_0802358A: + ldrb r0, [r7] + movs r4, #0xf8 + ands r4, r0 + cmp r4, #0 + bne _0802359A + bl sub_080115B4 + strh r4, [r5, #0x10] +_0802359A: + ldrh r1, [r5, #0x28] + ldr r0, _080235E8 + cmp r1, r0 + bls _080235AA + ldrb r0, [r7] + movs r1, #1 + orrs r0, r1 + strb r0, [r7] +_080235AA: + ldrb r1, [r6] + lsls r1, r1, #0x1b + lsrs r1, r1, #0x1f + lsls r1, r1, #1 + ldrb r2, [r7] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r7] + ldrb r0, [r6] + lsrs r0, r0, #5 + adds r2, r5, #0 + adds r2, #0x66 + strh r0, [r2] + adds r4, r5, #0 + adds r4, #0x42 + adds r0, r4, #0 + mov r1, r8 + movs r2, #0xc + bl memcpy + adds r0, r4, #0 + bl sub_0800F934 +_080235DC: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080235E8: .4byte 0x00008C9F + thumb_func_end sub_08023444 + + thumb_func_start sub_080235EC +sub_080235EC: @ 0x080235EC + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + ldr r3, _0802363C + ldrb r0, [r5, #9] + cmp r4, r0 + bhs _08023614 + movs r1, #0 +_080235FC: + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + adds r0, r5, r0 + adds r0, #0xb1 + strb r1, [r0] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldrb r0, [r5, #9] + cmp r4, r0 + blo _080235FC +_08023614: + adds r2, r3, #0 + ldrh r0, [r2] + movs r1, #0xff + lsls r1, r1, #8 + ands r1, r0 + movs r0, #0xbc + lsls r0, r0, #6 + cmp r1, r0 + bne _0802362C + ldrh r0, [r2, #2] + cmp r0, #2 + beq _08023640 +_0802362C: + adds r2, r5, #0 + adds r2, #0x25 + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + b _0802367E + .align 2, 0 +_0802363C: .4byte 0x03003130 +_08023640: + adds r4, r5, #0 + adds r4, #0x4e + adds r0, r4, #0 + adds r1, r3, #0 + movs r2, #0xe + bl memcpy + ldrh r0, [r4, #6] + strh r0, [r5, #0x2a] + movs r0, #5 + ldrsb r0, [r4, r0] + strh r0, [r5, #0x2c] + ldrh r0, [r4, #8] + strh r0, [r5, #0x28] + movs r0, #0x92 + lsls r0, r0, #1 + adds r1, r5, r0 + adds r0, r5, #0 + bl sub_08021410 + ldrb r1, [r4, #4] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0802367E + adds r0, r5, #0 + adds r0, #0x25 + ldrb r1, [r0] + movs r2, #8 + orrs r1, r2 + strb r1, [r0] +_0802367E: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_080235EC + + thumb_func_start sub_08023684 +sub_08023684: @ 0x08023684 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5c + movs r1, #0 + movs r2, #0xc + bl memset + adds r0, r4, #0 + adds r0, #0x4e + movs r1, #0 + movs r2, #0xe + bl memset + adds r0, r4, #0 + bl sub_080235EC + ldrh r1, [r4, #0x2c] + rsbs r1, r1, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x12 + bl SetGpuReg + ldrh r1, [r4, #0x2c] + rsbs r1, r1, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x1a + bl SetGpuReg + ldrh r1, [r4, #0x2c] + rsbs r1, r1, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x1e + bl SetGpuReg + adds r0, r4, #0 + adds r0, #0x25 + ldrb r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0802370C + ldrh r1, [r4, #0x28] + ldr r0, _080236F4 + cmp r1, r0 + bls _080236F8 + adds r0, #1 + strh r0, [r4, #0x28] + movs r0, #0x10 + movs r1, #1 + movs r2, #0 + bl sub_08022950 + b _08023702 + .align 2, 0 +_080236F4: .4byte 0x00008C9F +_080236F8: + movs r0, #0xf + movs r1, #1 + movs r2, #0 + bl sub_08022950 +_08023702: + movs r1, #0 + movs r0, #0 + strh r0, [r4, #0x10] + strb r1, [r4, #0xc] + b _08023726 +_0802370C: + ldrh r0, [r4, #0x26] + adds r0, #1 + strh r0, [r4, #0x26] + adds r0, r4, #0 + bl sub_08023108 + adds r0, r4, #0 + bl sub_080232E0 + adds r0, r4, #0 + bl sub_08023444 + movs r0, #0 +_08023726: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_08023684 + + thumb_func_start sub_0802372C +sub_0802372C: @ 0x0802372C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5c + movs r1, #0 + movs r2, #0xc + bl memset + adds r0, r4, #0 + adds r0, #0x4e + movs r1, #0 + movs r2, #0xe + bl memset + adds r0, r4, #0 + bl sub_080235EC + ldrh r1, [r4, #0x2c] + rsbs r1, r1, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x12 + bl SetGpuReg + ldrh r1, [r4, #0x2c] + rsbs r1, r1, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x1a + bl SetGpuReg + ldrh r1, [r4, #0x2c] + rsbs r1, r1, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x1e + bl SetGpuReg + adds r0, r4, #0 + adds r0, #0x25 + ldrb r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080237B4 + ldrh r1, [r4, #0x28] + ldr r0, _0802379C + cmp r1, r0 + bls _080237A0 + adds r0, #1 + strh r0, [r4, #0x28] + movs r0, #0x10 + movs r1, #1 + movs r2, #0 + bl sub_08022950 + b _080237AA + .align 2, 0 +_0802379C: .4byte 0x00008C9F +_080237A0: + movs r0, #0xf + movs r1, #1 + movs r2, #0 + bl sub_08022950 +_080237AA: + movs r1, #0 + movs r0, #0 + strh r0, [r4, #0x10] + strb r1, [r4, #0xc] + b _080237BC +_080237B4: + adds r0, r4, #0 + bl sub_08023444 + movs r0, #0 +_080237BC: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0802372C + + thumb_func_start sub_080237C4 +sub_080237C4: @ 0x080237C4 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #5 + bls _080237D0 + b _08023946 +_080237D0: + lsls r0, r0, #2 + ldr r1, _080237DC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080237DC: .4byte 0x080237E0 +_080237E0: @ jump table + .4byte _080237F8 @ case 0 + .4byte _08023820 @ case 1 + .4byte _08023870 @ case 2 + .4byte _080238F0 @ case 3 + .4byte _0802390E @ case 4 + .4byte _08023928 @ case 5 +_080237F8: + movs r0, #8 + strh r0, [r4, #0x12] + movs r0, #0xd6 + bl PlaySE + movs r0, #1 + rsbs r0, r0, #0 + ldr r2, _0802381C + movs r1, #8 + bl BlendPalettes + movs r0, #0x92 + lsls r0, r0, #1 + adds r1, r4, r0 + movs r0, #2 + strb r0, [r1] + b _08023946 + .align 2, 0 +_0802381C: .4byte 0x000003FF +_08023820: + movs r1, #0x92 + lsls r1, r1, #1 + adds r5, r4, r1 + ldrb r0, [r5] + subs r0, #1 + strb r0, [r5] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _08023836 + b _0802394C +_08023836: + movs r0, #1 + rsbs r0, r0, #0 + ldr r2, _08023864 + movs r1, #0 + bl BlendPalettes + ldr r2, _08023868 + adds r1, r4, r2 + movs r0, #4 + strb r0, [r1] + movs r0, #0 + strb r0, [r5] + ldr r2, _0802386C + ldrb r1, [r1] + lsls r0, r1, #3 + subs r0, r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + movs r2, #0x93 + lsls r2, r2, #1 + adds r1, r4, r2 + strb r0, [r1] + b _08023946 + .align 2, 0 +_08023864: .4byte 0x000003FF +_08023868: .4byte 0x00000125 +_0802386C: .4byte 0x082C5E84 +_08023870: + ldr r7, _080238E8 + movs r0, #0x92 + lsls r0, r0, #1 + adds r6, r4, r0 + ldr r1, _080238EC + adds r5, r4, r1 + ldrb r1, [r5] + lsls r0, r1, #3 + subs r0, r0, r1 + ldrb r2, [r6] + adds r0, r0, r2 + adds r0, r0, r7 + movs r1, #0 + ldrsb r1, [r0, r1] + strh r1, [r4, #0x2c] + rsbs r1, r1, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x12 + bl SetGpuReg + ldrh r1, [r4, #0x2c] + rsbs r1, r1, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x1a + bl SetGpuReg + ldrh r1, [r4, #0x2c] + rsbs r1, r1, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x1e + bl SetGpuReg + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] + movs r1, #0x93 + lsls r1, r1, #1 + adds r2, r4, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r2] + cmp r0, r1 + blo _0802394C + ldrb r0, [r5] + cmp r0, #0 + beq _08023946 + subs r0, #1 + strb r0, [r5] + ldrb r1, [r5] + lsls r0, r1, #3 + subs r0, r0, r1 + adds r0, r0, r7 + ldrb r0, [r0] + strb r0, [r2] + movs r0, #0 + strb r0, [r6] + b _0802394C + .align 2, 0 +_080238E8: .4byte 0x082C5E84 +_080238EC: .4byte 0x00000125 +_080238F0: + movs r0, #0 + strh r0, [r4, #0x2c] + movs r0, #0x12 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1a + movs r1, #0 + bl SetGpuReg + movs r0, #0x1e + movs r1, #0 + bl SetGpuReg + b _08023946 +_0802390E: + movs r2, #0x92 + lsls r2, r2, #1 + adds r1, r4, r2 + adds r0, r4, #0 + bl sub_08021604 + cmp r0, #0 + beq _0802394C + bl sub_0800FF34 + movs r0, #0 + strh r0, [r4, #0x10] + b _08023946 +_08023928: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0802394C + movs r0, #0x11 + movs r1, #1 + movs r2, #0 + bl sub_08022950 + movs r1, #0 + movs r0, #0 + strh r0, [r4, #0x10] + strb r1, [r4, #0xc] + b _0802394E +_08023946: + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_0802394C: + movs r0, #0 +_0802394E: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_080237C4 + + thumb_func_start sub_08023954 +sub_08023954: @ 0x08023954 + push {r4, r5, r6, lr} + sub sp, #4 + adds r5, r0, #0 + adds r6, r1, #0 + ldrb r0, [r5, #0xc] + cmp r0, #1 + beq _08023998 + cmp r0, #1 + bgt _0802396C + cmp r0, #0 + beq _08023976 + b _08023A30 +_0802396C: + cmp r0, #2 + beq _080239BE + cmp r0, #3 + beq _080239F0 + b _08023A30 +_08023976: + movs r0, #9 + strh r0, [r5, #0x12] + movs r0, #0x20 + bl PlaySE + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #8 + movs r2, #0x1f + bl BlendPalettes + movs r0, #0x92 + lsls r0, r0, #1 + adds r1, r5, r0 + movs r0, #4 + strb r0, [r1] + b _08023A30 +_08023998: + movs r0, #0x92 + lsls r0, r0, #1 + adds r4, r5, r0 + ldrb r0, [r4] + subs r0, #1 + strb r0, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08023A36 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + movs r2, #0x1f + bl BlendPalettes + movs r0, #0 + strb r0, [r4] + b _08023A30 +_080239BE: + movs r0, #0x92 + lsls r0, r0, #1 + adds r1, r5, r0 + adds r0, r5, #0 + bl sub_08021604 + cmp r0, #0 + beq _08023A36 + bl sub_0800FF34 + movs r0, #0 + strh r0, [r5, #0x10] + movs r0, #0x12 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1a + movs r1, #0 + bl SetGpuReg + movs r0, #0x1e + movs r1, #0 + bl SetGpuReg + b _08023A30 +_080239F0: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08023A36 + ldr r0, _08023A2C + ldr r1, [r5, #0x1c] + movs r2, #0 + movs r3, #6 + bl ConvertIntToDecimalStringN + movs r4, #0 + str r4, [sp] + adds r0, r6, #0 + movs r1, #7 + movs r2, #1 + movs r3, #0 + bl sub_08024410 + movs r0, #0x13 + strb r0, [r5, #0xe] + movs r0, #3 + movs r1, #1 + movs r2, #0 + bl sub_08022950 + movs r0, #0 + strh r4, [r5, #0x10] + b _08023A34 + .align 2, 0 +_08023A2C: .4byte 0x02021C40 +_08023A30: + ldrb r0, [r5, #0xc] + adds r0, #1 +_08023A34: + strb r0, [r5, #0xc] +_08023A36: + movs r0, #0 + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_08023954 + + thumb_func_start sub_08023A40 +sub_08023A40: @ 0x08023A40 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + mov r8, r0 + ldrb r0, [r0, #0xc] + cmp r0, #7 + bls _08023A56 + b _08023DF4 +_08023A56: + lsls r0, r0, #2 + ldr r1, _08023A60 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08023A60: .4byte 0x08023A64 +_08023A64: @ jump table + .4byte _08023A84 @ case 0 + .4byte _08023ACA @ case 1 + .4byte _08023ADE @ case 2 + .4byte _08023B52 @ case 3 + .4byte _08023CE2 @ case 4 + .4byte _08023D8E @ case 5 + .4byte _08023DA0 @ case 6 + .4byte _08023DD4 @ case 7 +_08023A84: + mov r4, r8 + adds r4, #0x42 + adds r0, r4, #0 + movs r1, #0 + movs r2, #4 + bl memset + mov r1, r8 + ldrb r0, [r1, #8] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + add r1, r8 + adds r1, #0xae + mov r3, r8 + ldrh r2, [r3, #0x28] + ldrh r0, [r1] + cmp r0, r2 + bls _08023AAC + strh r2, [r1] +_08023AAC: + mov r5, r8 + ldrb r0, [r5, #8] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + add r1, r8 + adds r1, #0xae + ldrh r0, [r1] + strh r0, [r4] + movs r0, #0 + adds r1, r4, #0 + movs r2, #2 + bl SendBlock + b _08023DF4 +_08023ACA: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08023AD6 + b _08023DFC +_08023AD6: + movs r0, #0 + mov r6, r8 + strh r0, [r6, #0x10] + b _08023DF4 +_08023ADE: + bl GetBlockReceivedStatus + ldr r2, _08023B44 + mov r1, r8 + ldrb r3, [r1, #9] + subs r1, r3, #2 + adds r1, r1, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + beq _08023AF8 + b _08023DFC +_08023AF8: + movs r2, #0 + mov sb, r2 + mov r4, r8 + adds r4, #0x42 + cmp sb, r3 + bhs _08023B2C + ldr r2, _08023B48 +_08023B06: + mov r3, sb + lsls r1, r3, #3 + subs r1, r1, r3 + lsls r1, r1, #2 + add r1, r8 + lsls r0, r3, #8 + adds r0, r0, r2 + ldrh r0, [r0] + adds r1, #0xae + strh r0, [r1] + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + mov r5, r8 + ldrb r5, [r5, #9] + cmp sb, r5 + blo _08023B06 +_08023B2C: + movs r0, #0 + mov r6, r8 + strh r0, [r6, #0x10] + strh r0, [r4] + bl ResetBlockReceivedFlags + ldrb r0, [r6, #8] + cmp r0, #0 + bne _08023B4C + movs r0, #3 + strb r0, [r6, #0xc] + b _08023DFC + .align 2, 0 +_08023B44: .4byte 0x082C7CD4 +_08023B48: .4byte 0x0202207C +_08023B4C: + movs r0, #6 + mov r1, r8 + b _08023DFA +_08023B52: + mov r0, r8 + adds r0, #0x68 + movs r1, #0 + movs r2, #0x30 + bl memset + mov r2, r8 + ldrh r1, [r2, #0x28] + mov r0, r8 + adds r0, #0x6c + strh r1, [r0] + movs r3, #0x18 + ldrsh r4, [r2, r3] + ldrh r0, [r2, #0x28] + movs r1, #0x3c + bl __udivsi3 + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl __divsi3 + mov r1, r8 + adds r1, #0x6e + strh r0, [r1] + mov r5, r8 + movs r6, #0x30 + ldrsh r0, [r5, r6] + lsls r0, r0, #8 + movs r4, #0xc8 + lsls r4, r4, #6 + adds r1, r4, #0 + bl sub_08151550 + adds r2, r0, #0 + movs r0, #0x32 + ldrsh r1, [r5, r0] + lsls r1, r1, #8 + adds r0, r2, #0 + bl sub_081515D8 + adds r2, r0, r4 + asrs r2, r2, #8 + movs r1, #0x7f + adds r0, r2, #0 + ands r0, r1 + mov r1, r8 + adds r1, #0x70 + strh r0, [r1] + lsls r2, r2, #8 + movs r1, #0xc8 + lsls r1, r1, #7 + adds r0, r2, #0 + bl sub_081515D8 + adds r2, r0, #0 + ldrb r1, [r5, #9] + ldr r0, [r5, #0x1c] + muls r0, r1, r0 + lsls r4, r0, #8 + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_08151550 + adds r4, r0, #0 + asrs r0, r4, #8 + str r0, [r5, #0x68] + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + mov r1, r8 + adds r1, #0x8f + strb r0, [r1] + movs r2, #0 + mov sb, r2 + adds r7, r1, #0 + ldrb r3, [r5, #9] + cmp sb, r3 + blo _08023BFC + b _08023DF4 +_08023BFC: + mov r0, r8 + adds r0, #0x88 + add r0, sb + mov r5, sb + strb r5, [r0] + mov r0, r8 + adds r0, #0x90 + add r0, sb + strb r5, [r0] + mov r6, sb + lsls r2, r6, #1 + mov r1, r8 + adds r1, #0x74 + adds r1, r1, r2 + lsls r0, r6, #3 + subs r0, r0, r6 + lsls r0, r0, #2 + mov r5, r8 + adds r3, r5, r0 + adds r5, r3, #0 + adds r5, #0xaa + ldrh r0, [r5] + strh r0, [r1] + mov r1, r8 + adds r1, #0x72 + ldrh r6, [r1] + adds r0, r0, r6 + strh r0, [r1] + ldrb r0, [r7] + adds r6, r2, #0 + cmp r0, #1 + beq _08023C6A + cmp r0, #1 + bgt _08023C46 + cmp r0, #0 + beq _08023C4C + b _08023CC4 +_08023C46: + cmp r0, #2 + beq _08023C88 + b _08023CC4 +_08023C4C: + ldrh r0, [r5] + cmp r0, #0 + beq _08023C8E + adds r0, r3, #0 + adds r0, #0xa8 + ldrh r2, [r0] + lsls r2, r2, #8 + adds r0, r2, #0 + movs r1, #0xc8 + lsls r1, r1, #7 + bl sub_08151550 + adds r2, r0, #0 + ldrh r4, [r5] + b _08023CBA +_08023C6A: + ldrh r0, [r5] + cmp r0, #0 + beq _08023C8E + adds r0, r3, #0 + adds r0, #0xac + ldrh r2, [r0] + lsls r2, r2, #8 + adds r0, r2, #0 + movs r1, #0xc8 + lsls r1, r1, #7 + bl sub_08151550 + adds r2, r0, #0 + ldrh r4, [r5] + b _08023CBA +_08023C88: + ldrh r0, [r5] + cmp r0, #0 + bne _08023C92 +_08023C8E: + movs r4, #0 + b _08023CC4 +_08023C92: + adds r1, r3, #0 + adds r1, #0xae + ldrh r0, [r1] + mov r2, r8 + ldrh r2, [r2, #0x28] + cmp r0, r2 + blo _08023CA6 + movs r4, #0xc8 + lsls r4, r4, #7 + b _08023CC4 +_08023CA6: + ldrh r2, [r1] + lsls r2, r2, #8 + adds r0, r2, #0 + movs r1, #0xc8 + lsls r1, r1, #7 + bl sub_08151550 + adds r2, r0, #0 + mov r3, r8 + ldrh r4, [r3, #0x28] +_08023CBA: + lsls r4, r4, #8 + adds r1, r4, #0 + bl sub_081515D8 + adds r4, r0, #0 +_08023CC4: + asrs r4, r4, #4 + mov r0, r8 + adds r0, #0x7e + adds r0, r0, r6 + strh r4, [r0] + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + mov r5, r8 + ldrb r5, [r5, #9] + cmp sb, r5 + blo _08023BFC + b _08023DF4 +_08023CE2: + movs r6, #0 + mov sb, r6 + mov r1, r8 + ldrb r0, [r1, #9] + subs r0, #1 + adds r1, #0x68 + str r1, [sp, #0xc] + cmp sb, r0 + bge _08023D82 +_08023CF4: + mov r2, r8 + ldrb r0, [r2, #9] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + mov r3, sb + adds r3, #1 + str r3, [sp, #8] + cmp r4, sb + bls _08023D70 + adds r2, #0x74 + str r2, [sp] + mov r5, r8 + adds r5, #0x88 + str r5, [sp, #4] + movs r6, #0x90 + add r6, r8 + mov sl, r6 + movs r0, #0x7e + add r0, r8 + mov ip, r0 +_08023D1E: + subs r7, r4, #1 + lsls r6, r7, #1 + ldr r1, [sp] + adds r3, r1, r6 + lsls r5, r4, #1 + adds r1, r1, r5 + ldrh r2, [r3] + ldrh r0, [r1] + cmp r2, r0 + bhs _08023D46 + ldrh r0, [r1] + strh r2, [r1] + strh r0, [r3] + ldr r1, [sp, #4] + adds r2, r1, r4 + ldrb r3, [r2] + adds r1, r1, r7 + ldrb r0, [r1] + strb r0, [r2] + strb r3, [r1] +_08023D46: + mov r2, ip + adds r3, r2, r6 + adds r1, r2, r5 + ldrh r2, [r3] + ldrh r5, [r1] + cmp r2, r5 + bhs _08023D68 + ldrh r0, [r1] + strh r2, [r1] + strh r0, [r3] + mov r6, sl + adds r2, r6, r4 + ldrb r3, [r2] + adds r1, r6, r7 + ldrb r0, [r1] + strb r0, [r2] + strb r3, [r1] +_08023D68: + lsls r0, r7, #0x18 + lsrs r4, r0, #0x18 + cmp r4, sb + bhi _08023D1E +_08023D70: + ldr r1, [sp, #8] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + mov r2, r8 + ldrb r0, [r2, #9] + subs r0, #1 + cmp sb, r0 + blt _08023CF4 +_08023D82: + movs r0, #0 + ldr r1, [sp, #0xc] + movs r2, #0x30 + bl SendBlock + b _08023DF4 +_08023D8E: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08023DFC + movs r0, #0 + mov r3, r8 + strh r0, [r3, #0x10] + b _08023DF4 +_08023DA0: + bl GetBlockReceivedStatus + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08023DFC + mov r4, r8 + adds r4, #0x68 + adds r0, r4, #0 + movs r1, #0 + movs r2, #0x30 + bl memset + ldr r1, _08023DD0 + adds r0, r4, #0 + movs r2, #0x30 + bl memcpy + bl ResetBlockReceivedFlags + movs r0, #0 + mov r5, r8 + strh r0, [r5, #0x10] + b _08023DF4 + .align 2, 0 +_08023DD0: .4byte 0x0202207C +_08023DD4: + bl sub_08020B74 + movs r0, #0x12 + movs r1, #1 + movs r2, #0 + bl sub_08022950 + movs r0, #0 + movs r1, #0xb + mov r6, r8 + strh r1, [r6, #0x12] + strb r0, [r6, #0xc] + mov r1, r8 + adds r1, #0x24 + strb r0, [r1] + b _08023DFC +_08023DF4: + mov r1, r8 + ldrb r0, [r1, #0xc] + adds r0, #1 +_08023DFA: + strb r0, [r1, #0xc] +_08023DFC: + movs r0, #0 + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08023A40 + + thumb_func_start sub_08023E10 +sub_08023E10: @ 0x08023E10 + push {r4, r5, r6, lr} + sub sp, #4 + adds r5, r0, #0 + adds r6, r1, #0 + ldrb r0, [r5, #0xc] + cmp r0, #4 + bhi _08023EEC + lsls r0, r0, #2 + ldr r1, _08023E28 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08023E28: .4byte 0x08023E2C +_08023E2C: @ jump table + .4byte _08023E40 @ case 0 + .4byte _08023E52 @ case 1 + .4byte _08023E64 @ case 2 + .4byte _08023E94 @ case 3 + .4byte _08023EA4 @ case 4 +_08023E40: + movs r0, #0x92 + lsls r0, r0, #1 + adds r1, r5, r0 + adds r0, r5, #0 + bl sub_08021DDC + cmp r0, #0 + bne _08023EEC + b _08023EF2 +_08023E52: + movs r0, #0 + bl CopyBgTilemapBufferToVram + movs r0, #0x92 + lsls r0, r0, #1 + adds r1, r5, r0 + movs r0, #0x1e + strb r0, [r1] + b _08023EEC +_08023E64: + movs r0, #0x92 + lsls r0, r0, #1 + adds r1, r5, r0 + ldrb r0, [r1] + cmp r0, #0 + beq _08023E76 + subs r0, #1 + strb r0, [r1] + b _08023EF2 +_08023E76: + ldr r0, _08023E90 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08023EF2 + movs r0, #5 + bl PlaySE + adds r0, r5, #0 + bl sub_08021F9C + b _08023EEC + .align 2, 0 +_08023E90: .4byte 0x03002360 +_08023E94: + ldrh r0, [r5, #0x12] + cmp r0, #0xc + bhi _08023EEC + adds r0, #1 + movs r1, #0 + strh r0, [r5, #0x12] + strb r1, [r5, #0xc] + b _08023EF2 +_08023EA4: + ldr r0, _08023EE4 + ldr r1, [r5, #0x1c] + movs r2, #0 + movs r3, #6 + bl ConvertIntToDecimalStringN + ldr r4, _08023EE8 + bl GetBerryPowder + adds r1, r0, #0 + adds r0, r4, #0 + movs r2, #0 + movs r3, #6 + bl ConvertIntToDecimalStringN + movs r4, #0 + str r4, [sp] + adds r0, r6, #0 + movs r1, #2 + movs r2, #3 + movs r3, #0 + bl sub_08024410 + movs r0, #0x13 + strb r0, [r5, #0xe] + movs r0, #3 + movs r1, #1 + movs r2, #0 + bl sub_08022950 + strb r4, [r5, #0xc] + b _08023EF2 + .align 2, 0 +_08023EE4: .4byte 0x02021C40 +_08023EE8: .4byte 0x02021C54 +_08023EEC: + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] +_08023EF2: + movs r0, #0 + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_08023E10 + + thumb_func_start sub_08023EFC +sub_08023EFC: @ 0x08023EFC + push {r4, r5, lr} + sub sp, #0x10 + adds r5, r0, #0 + adds r4, r1, #0 + ldrb r0, [r5, #0xc] + cmp r0, #4 + bhi _08023FE0 + lsls r0, r0, #2 + ldr r1, _08023F14 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08023F14: .4byte 0x08023F18 +_08023F18: @ jump table + .4byte _08023F2C @ case 0 + .4byte _08023F68 @ case 1 + .4byte _08023F6E @ case 2 + .4byte _08023FB8 @ case 3 + .4byte _08023FCC @ case 4 +_08023F2C: + ldrh r1, [r5, #0x28] + ldr r0, _08023F64 + cmp r1, r0 + bls _08023F3E + movs r1, #0x92 + lsls r1, r1, #1 + adds r0, r5, r1 + bl sub_080222B4 +_08023F3E: + movs r0, #1 + str r0, [sp] + adds r0, r4, #0 + movs r1, #8 + movs r2, #0 + movs r3, #0 + bl sub_08024410 + movs r4, #0 + movs r0, #0x13 + strb r0, [r5, #0xe] + movs r0, #3 + movs r1, #1 + movs r2, #0 + bl sub_08022950 + strb r4, [r5, #0xc] + b _08023FE6 + .align 2, 0 +_08023F64: .4byte 0x00008C9F +_08023F68: + bl sub_0800FF34 + b _08023FE0 +_08023F6E: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08023FE6 + movs r0, #0 + movs r1, #0 + bl ClearDialogWindowAndFrame + ldr r2, _08023FB0 + movs r0, #0 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + movs r0, #3 + str r0, [sp, #0xc] + movs r0, #0 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized2 + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + ldr r0, _08023FB4 + movs r1, #0 + bl CreateTask + b _08023FE0 + .align 2, 0 +_08023FB0: .4byte 0x08277071 +_08023FB4: .4byte 0x081535C5 +_08023FB8: + ldr r0, _08023FC8 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08023FE0 + b _08023FE6 + .align 2, 0 +_08023FC8: .4byte 0x081535C5 +_08023FCC: + movs r0, #0x14 + movs r1, #1 + movs r2, #0 + bl sub_08022950 + movs r1, #0 + movs r0, #0xf + strh r0, [r5, #0x12] + strb r1, [r5, #0xc] + b _08023FE6 +_08023FE0: + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] +_08023FE6: + movs r0, #0 + add sp, #0x10 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_08023EFC + + thumb_func_start sub_08023FF0 +sub_08023FF0: @ 0x08023FF0 + push {r4, r5, r6, lr} + sub sp, #4 + adds r5, r0, #0 + adds r6, r1, #0 + ldrb r0, [r5, #0xc] + cmp r0, #1 + beq _08024032 + cmp r0, #1 + bgt _08024008 + cmp r0, #0 + beq _0802400E + b _08024098 +_08024008: + cmp r0, #2 + beq _08024038 + b _08024098 +_0802400E: + movs r0, #1 + str r0, [sp] + adds r0, r6, #0 + movs r1, #4 + movs r2, #0 + movs r3, #0 + bl sub_08024410 + movs r0, #0x14 + strb r0, [r5, #0xe] + movs r0, #3 + movs r1, #1 + movs r2, #0 + bl sub_08022950 + movs r0, #0 + strb r0, [r5, #0xc] + b _080240A0 +_08024032: + bl DisplayYesNoMenuDefaultYes + b _08024098 +_08024038: + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r4, r0, #0x18 + movs r0, #2 + rsbs r0, r0, #0 + cmp r4, r0 + beq _0802409E + adds r0, r5, #0 + adds r0, #0x42 + movs r1, #0 + movs r2, #0xc + bl memset + cmp r4, #0 + bne _0802406A + bl HasAtLeastOneBerry + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08024066 + strh r4, [r5, #0x14] + b _0802406E +_08024066: + movs r0, #3 + b _0802406C +_0802406A: + movs r0, #1 +_0802406C: + strh r0, [r5, #0x14] +_0802406E: + movs r0, #0 + movs r1, #1 + bl DrawDialogueFrame + movs r4, #0 + str r4, [sp] + adds r0, r6, #0 + movs r1, #8 + movs r2, #0 + movs r3, #0 + bl sub_08024410 + movs r0, #0x15 + strb r0, [r5, #0xe] + movs r0, #3 + movs r1, #1 + movs r2, #0 + bl sub_08022950 + strb r4, [r5, #0xc] + b _0802409E +_08024098: + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] +_0802409E: + movs r0, #0 +_080240A0: + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_08023FF0 + + thumb_func_start sub_080240A8 +sub_080240A8: @ 0x080240A8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + movs r5, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _080240CE + cmp r0, #1 + bgt _080240BE + cmp r0, #0 + beq _080240C8 + b _08024174 +_080240BE: + cmp r0, #2 + beq _080240F0 + cmp r0, #3 + beq _080240FE + b _08024174 +_080240C8: + bl sub_0800FF34 + b _08024174 +_080240CE: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0802417A + ldrh r0, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x42 + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x4e + strh r5, [r0] + movs r0, #0 + movs r2, #2 + bl SendBlock + b _08024174 +_080240F0: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0802417A + strh r5, [r4, #0x10] + b _08024174 +_080240FE: + bl GetBlockReceivedStatus + ldr r2, _08024150 + ldrb r3, [r4, #9] + subs r1, r3, #2 + adds r1, r1, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + bne _0802417A + adds r7, r4, #0 + adds r7, #0x42 + adds r6, r4, #0 + adds r6, #0x4e + cmp r5, r3 + bhs _0802413C + adds r1, r6, #0 + ldr r2, _08024154 +_08024124: + lsls r0, r5, #8 + adds r0, r0, r2 + ldrh r0, [r0] + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldrb r0, [r4, #9] + cmp r5, r0 + blo _08024124 +_0802413C: + ldrh r0, [r6] + cmp r0, #0 + beq _08024158 + movs r0, #0x17 + movs r1, #1 + movs r2, #0 + bl sub_08022950 + b _08024162 + .align 2, 0 +_08024150: .4byte 0x082C7CD4 +_08024154: .4byte 0x0202207C +_08024158: + movs r0, #0x16 + movs r1, #1 + movs r2, #0 + bl sub_08022950 +_08024162: + bl ResetBlockReceivedFlags + movs r1, #0 + movs r0, #0 + strh r0, [r7] + strh r0, [r6] + strh r0, [r4, #0x10] + strb r1, [r4, #0xc] + b _0802417C +_08024174: + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_0802417A: + movs r0, #0 +_0802417C: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080240A8 + + thumb_func_start sub_08024184 +sub_08024184: @ 0x08024184 + push {r4, r5, lr} + sub sp, #4 + adds r5, r0, #0 + ldrb r4, [r5, #0xc] + cmp r4, #1 + beq _080241B2 + cmp r4, #1 + bgt _0802419A + cmp r4, #0 + beq _080241A4 + b _080241FC +_0802419A: + cmp r4, #2 + beq _080241BE + cmp r4, #3 + beq _080241E2 + b _080241FC +_080241A4: + movs r0, #1 + rsbs r0, r0, #0 + str r4, [sp] + movs r1, #1 + movs r2, #0 + movs r3, #0x10 + b _080241D8 +_080241B2: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080241FC + b _08024202 +_080241BE: + movs r0, #0 + movs r1, #1 + bl DrawDialogueFrame + adds r0, r5, #0 + bl sub_080211B4 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 +_080241D8: + bl BeginNormalPaletteFade + bl UpdatePaletteFade + b _080241FC +_080241E2: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08024202 + movs r0, #7 + movs r1, #1 + movs r2, #0 + bl sub_08022950 + movs r0, #0 + strh r4, [r5, #0x12] + b _08024200 +_080241FC: + ldrb r0, [r5, #0xc] + adds r0, #1 +_08024200: + strb r0, [r5, #0xc] +_08024202: + movs r0, #0 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_08024184 + + thumb_func_start sub_0802420C +sub_0802420C: @ 0x0802420C + push {r4, r5, lr} + sub sp, #0x10 + adds r5, r0, #0 + ldrb r4, [r5, #0xc] + cmp r4, #1 + beq _08024284 + cmp r4, #1 + bgt _08024222 + cmp r4, #0 + beq _08024228 + b _080242BE +_08024222: + cmp r4, #2 + beq _0802429C + b _080242BE +_08024228: + movs r0, #0 + movs r1, #0 + bl ClearDialogWindowAndFrame + ldrh r1, [r5, #0x14] + cmp r1, #3 + bne _08024258 + ldr r0, _08024254 + ldr r2, [r0, #0x14] + ldrb r3, [r5, #0xb] + str r4, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + str r1, [sp, #0xc] + movs r0, #0 + movs r1, #1 + bl AddTextPrinterParameterized2 + b _08024274 + .align 2, 0 +_08024254: .4byte 0x082C5EBC +_08024258: + ldr r0, _08024280 + ldr r2, [r0, #0x18] + ldrb r3, [r5, #0xb] + str r4, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + movs r0, #3 + str r0, [sp, #0xc] + movs r0, #0 + movs r1, #1 + bl AddTextPrinterParameterized2 +_08024274: + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + b _080242BE + .align 2, 0 +_08024280: .4byte 0x082C5EBC +_08024284: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080242C4 + movs r0, #0x92 + lsls r0, r0, #1 + adds r1, r5, r0 + movs r0, #0x78 + strb r0, [r1] + b _080242BE +_0802429C: + movs r0, #0x92 + lsls r0, r0, #1 + adds r1, r5, r0 + ldrb r0, [r1] + adds r4, r0, #0 + cmp r4, #0 + beq _080242B0 + subs r0, #1 + strb r0, [r1] + b _080242C4 +_080242B0: + movs r0, #0x18 + movs r1, #1 + movs r2, #0 + bl sub_08022950 + strb r4, [r5, #0xc] + b _080242C4 +_080242BE: + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] +_080242C4: + movs r0, #0 + add sp, #0x10 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0802420C + + thumb_func_start sub_080242D0 +sub_080242D0: @ 0x080242D0 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0xc] + cmp r4, #1 + beq _080242F0 + cmp r4, #1 + bgt _080242E4 + cmp r4, #0 + beq _080242EA + b _08024320 +_080242E4: + cmp r4, #2 + beq _08024300 + b _08024320 +_080242EA: + bl sub_0800FF34 + b _08024320 +_080242F0: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08024326 + bl sub_0800A7F8 + b _08024320 +_08024300: + ldr r0, _0802431C + ldrb r0, [r0] + cmp r0, #0 + bne _08024326 + movs r0, #0x19 + strb r0, [r5, #0xe] + movs r0, #5 + movs r1, #1 + movs r2, #0 + bl sub_08022950 + strb r4, [r5, #0xc] + b _08024326 + .align 2, 0 +_0802431C: .4byte 0x030031C4 +_08024320: + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] +_08024326: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080242D0 + + thumb_func_start sub_08024330 +sub_08024330: @ 0x08024330 + push {lr} + movs r0, #0 + bl sub_08020924 + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08024330 + + thumb_func_start sub_08024340 +sub_08024340: @ 0x08024340 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r5, #0 + movs r0, #0x33 + bl IncrementGameStat + strb r5, [r4, #0xd] + movs r1, #0 + strh r5, [r4, #0x10] + movs r0, #2 + strh r0, [r4, #0x12] + strh r5, [r4, #0x14] + str r5, [r4, #0x1c] + strh r5, [r4, #0x18] + strh r5, [r4, #0x1a] + str r5, [r4, #0x20] + adds r0, r4, #0 + adds r0, #0x24 + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x25 + movs r0, #0 + strb r0, [r1] + strh r5, [r4, #0x26] + strh r5, [r4, #0x28] + strh r5, [r4, #0x2e] + ldr r0, _080243CC + strh r0, [r4, #0x32] + strh r5, [r4, #0x30] + strh r5, [r4, #0x34] + movs r6, #0 + movs r3, #0 +_08024380: + lsls r0, r5, #3 + subs r0, r0, r5 + lsls r0, r0, #2 + adds r2, r4, r0 + adds r1, r2, #0 + adds r1, #0xa0 + ldr r0, _080243CC + strh r0, [r1] + adds r0, r2, #0 + adds r0, #0xa2 + strh r3, [r0] + adds r0, #2 + strh r3, [r0] + adds r1, #6 + movs r0, #1 + strh r0, [r1] + adds r0, r2, #0 + adds r0, #0xa8 + strh r3, [r0] + adds r0, #2 + strh r3, [r0] + adds r0, #2 + strh r3, [r0] + adds r0, #2 + strh r3, [r0] + adds r0, #2 + strb r6, [r0] + adds r0, #1 + strb r6, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #4 + bls _08024380 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080243CC: .4byte 0x0000FFFF + thumb_func_end sub_08024340 + + thumb_func_start sub_080243D0 +sub_080243D0: @ 0x080243D0 + push {r4, r5, r6, lr} + sub sp, #8 + str r2, [sp, #4] + ldr r5, [sp, #0x18] + ldr r6, [sp, #0x1c] + ldr r4, [sp, #0x20] + mov r2, sp + strh r4, [r2] + add r4, sp, #4 + ldrb r2, [r4] + strb r2, [r0] + ldrb r2, [r4, #1] + strb r2, [r0, #1] + ldrb r2, [r4, #2] + strb r2, [r0, #2] + ldrb r2, [r4, #3] + strb r2, [r0, #3] + strb r3, [r0, #4] + strb r5, [r0, #5] + strb r6, [r0, #6] + mov r2, sp + ldrb r2, [r2] + strb r2, [r0, #7] + mov r2, sp + ldrb r2, [r2, #1] + strb r2, [r0, #8] + strb r1, [r0, #9] + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080243D0 + + thumb_func_start sub_08024410 +sub_08024410: @ 0x08024410 + push {r4, r5, lr} + sub sp, #4 + ldr r5, [sp, #0x10] + mov r4, sp + strh r3, [r4] + strb r1, [r0] + strb r2, [r0, #1] + mov r1, sp + ldrb r1, [r1] + strb r1, [r0, #2] + mov r1, sp + ldrb r1, [r1, #1] + strb r1, [r0, #3] + strb r5, [r0, #4] + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_08024410 + diff --git a/asm/berry_fix_program.s b/asm/berry_fix_program.s new file mode 100644 index 0000000..a63a6ee --- /dev/null +++ b/asm/berry_fix_program.s @@ -0,0 +1,450 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start berry_fix_text_update +berry_fix_text_update: @ 0x081BEEE4 + push {r4, r5, lr} + sub sp, #4 + adds r5, r0, #0 + ldr r0, _081BEEFC + ldr r0, [r0] + ldrh r0, [r0, #0x10] + cmp r0, #0xff + bls _081BEF04 + ldr r0, _081BEF00 + str r0, [r5, #0x1c] + b _081BEF4C + .align 2, 0 +_081BEEFC: .4byte 0x0203CBD8 +_081BEF00: .4byte 0x08007141 +_081BEF04: + ldrh r1, [r5, #0x22] + movs r2, #0x22 + ldrsh r0, [r5, r2] + cmp r0, #0x5f + ble _081BEF48 + movs r4, #0 +_081BEF10: + ldr r0, _081BEF44 + ldr r3, [r0] + ldr r0, [r3] + ldrh r1, [r3, #0x10] + adds r2, r1, #1 + strh r2, [r3, #0x10] + lsls r1, r1, #0x10 + ldr r2, [r3, #0xc] + lsrs r1, r1, #0xf + adds r1, r1, r2 + ldrh r1, [r1] + movs r2, #0 + str r2, [sp] + movs r3, #0x10 + bl CB2_InitBerryFixProgram + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #1 + bls _081BEF10 + adds r0, r5, #0 + movs r1, #0 + bl StartSpriteAnim + b _081BEF4C + .align 2, 0 +_081BEF44: .4byte 0x0203CBD8 +_081BEF48: + adds r0, r1, #1 + strh r0, [r5, #0x22] +_081BEF4C: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end berry_fix_text_update + + thumb_func_start CB2_InitBerryFixProgram +CB2_InitBerryFixProgram: @ 0x081BEF54 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + str r0, [sp] + mov sl, r1 + adds r6, r2, #0 + mov r8, r3 + ldr r0, [sp, #0x28] + mov sb, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sl, r1 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov r0, r8 + lsls r0, r0, #0x18 + mov r8, r0 + lsrs r7, r0, #0x18 + mov r1, sb + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sb, r1 + mov r0, sl + adds r1, r7, #0 + bl __divsi3 + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r4, r5, #0x18 + ldr r3, _081BF01C + strh r4, [r3] + mov r0, sl + adds r1, r7, #0 + str r3, [sp, #4] + bl __modsi3 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r3, [sp, #4] + strh r2, [r3, #2] + movs r1, #7 + ands r4, r1 + ands r2, r1 + strh r4, [r3, #4] + strh r2, [r3, #6] + lsrs r0, r0, #0x1b + lsrs r5, r5, #0x1b + strh r0, [r3, #8] + strh r5, [r3, #0xa] + mov r1, r8 + lsrs r1, r1, #0x1b + lsls r1, r1, #6 + mov r8, r1 + mov r1, r8 + muls r1, r5, r1 + lsls r0, r0, #6 + adds r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + strh r1, [r3, #0xc] + lsls r4, r4, #3 + adds r4, r4, r2 + adds r1, r1, r4 + lsls r4, r1, #0x10 + lsrs r4, r4, #0x11 + strh r1, [r3, #0xe] + movs r1, #1 + mov r0, sl + ands r1, r0 + movs r2, #1 + eors r1, r2 + lsls r0, r1, #2 + lsls r6, r0 + eors r1, r2 + lsls r1, r1, #2 + movs r0, #0xf + lsls r0, r1 + orrs r6, r0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov r1, sb + lsls r1, r1, #5 + mov sb, r1 + add sb, r4 + ldr r1, [sp] + add r1, sb + ldrb r0, [r1] + ands r6, r0 + strb r6, [r1] + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081BF01C: .4byte 0x030012A0 + thumb_func_end CB2_InitBerryFixProgram + + thumb_func_start berry_fix_bg_hide +berry_fix_bg_hide: @ 0x081BF020 + push {r4, lr} + sub sp, #4 + ldr r0, _081BF094 + bl DisableInterrupts + movs r0, #1 + bl EnableInterrupts + bl m4aSoundVSyncOff + movs r0, #0 + bl SetVBlankCallback + movs r4, #0 + str r4, [sp] + ldr r0, _081BF098 + mov r1, sp + str r1, [r0] + movs r1, #0xc0 + lsls r1, r1, #0x13 + str r1, [r0, #4] + ldr r1, _081BF09C + str r1, [r0, #8] + ldr r1, [r0, #8] + str r4, [sp] + mov r1, sp + str r1, [r0] + movs r1, #0xa0 + lsls r1, r1, #0x13 + str r1, [r0, #4] + ldr r1, _081BF0A0 + str r1, [r0, #8] + ldr r0, [r0, #8] + bl ResetSpriteData + bl ResetTasks + bl ScanlineEffect_Stop + ldr r0, _081BF0A4 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _081BF0A8 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #8] + ldr r0, _081BF0AC + bl SetMainCallback2 + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081BF094: .4byte 0x0000FFFF +_081BF098: .4byte 0x040000D4 +_081BF09C: .4byte 0x85006000 +_081BF0A0: .4byte 0x85000100 +_081BF0A4: .4byte 0x081BF0BD +_081BF0A8: .4byte 0x03005B60 +_081BF0AC: .4byte 0x081BF0B1 + thumb_func_end berry_fix_bg_hide + + thumb_func_start berry_fix_text_print +berry_fix_text_print: @ 0x081BF0B0 + push {lr} + bl RunTasks + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end berry_fix_text_print + + thumb_func_start berry_fix_main +berry_fix_main: @ 0x081BF0BC + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _081BF0E4 + adds r5, r0, r1 + movs r1, #0 + ldrsh r0, [r5, r1] + cmp r0, #0xa + bls _081BF0D8 + b _081BF272 +_081BF0D8: + lsls r0, r0, #2 + ldr r1, _081BF0E8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081BF0E4: .4byte 0x03005B68 +_081BF0E8: .4byte 0x081BF0EC +_081BF0EC: @ jump table + .4byte _081BF118 @ case 0 + .4byte _081BF122 @ case 1 + .4byte _081BF140 @ case 2 + .4byte _081BF272 @ case 3 + .4byte _081BF15C @ case 4 + .4byte _081BF194 @ case 5 + .4byte _081BF200 @ case 6 + .4byte _081BF236 @ case 7 + .4byte _081BF23A @ case 8 + .4byte _081BF258 @ case 9 + .4byte _081BF262 @ case 10 +_081BF118: + movs r0, #5 + bl sub_081BAA20 + movs r0, #1 + b _081BF270 +_081BF122: + ldr r0, _081BF13C + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _081BF130 + b _081BF272 +_081BF130: + movs r0, #0 + bl sub_081BAA20 + movs r0, #2 + b _081BF270 + .align 2, 0 +_081BF13C: .4byte 0x03002360 +_081BF140: + ldr r0, _081BF158 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _081BF14E + b _081BF272 +_081BF14E: + movs r0, #1 + bl sub_081BAA20 + movs r0, #4 + b _081BF270 + .align 2, 0 +_081BF158: .4byte 0x03002360 +_081BF15C: + ldr r0, _081BF180 + ldr r1, _081BF184 + str r1, [r0] + ldr r2, _081BF188 + ldr r0, _081BF18C + subs r0, r0, r1 + str r0, [r2] + ldr r0, _081BF190 + str r1, [r0, #0x28] + adds r1, r0, #0 + adds r1, #0x4b + movs r4, #0 + strb r4, [r1] + bl GetGlyphWidthFont6 + strh r4, [r5, #2] + movs r0, #5 + b _081BF270 + .align 2, 0 +_081BF180: .4byte 0x03006070 +_081BF184: .4byte 0x08912454 +_081BF188: .4byte 0x03006078 +_081BF18C: .4byte 0x089158E0 +_081BF190: .4byte 0x03006080 +_081BF194: + ldr r0, _081BF1DC + ldrb r6, [r0, #0x18] + adds r4, r0, #0 + cmp r6, #0 + bne _081BF1EC + ldr r0, [r4, #0x1c] + ldr r1, _081BF1E0 + ands r0, r1 + cmp r0, r1 + bne _081BF1EC + ldrh r0, [r5, #2] + adds r0, #1 + strh r0, [r5, #2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xb4 + ble _081BF1F0 + movs r0, #2 + bl sub_081BAA20 + ldr r0, _081BF1E4 + ldr r1, [r0] + adds r1, #0xc0 + ldr r0, _081BF1E8 + ldr r2, [r0] + subs r2, #0xc0 + movs r0, #1 + str r0, [sp] + adds r0, r4, #0 + movs r3, #4 + bl sub_081BA808 + strh r6, [r5, #2] + movs r0, #6 + b _081BF270 + .align 2, 0 +_081BF1DC: .4byte 0x03006080 +_081BF1E0: .4byte 0x00020200 +_081BF1E4: .4byte 0x03006070 +_081BF1E8: .4byte 0x03006078 +_081BF1EC: + movs r0, #0 + strh r0, [r5, #2] +_081BF1F0: + adds r0, r4, #0 + bl sub_081BA3A8 + ldr r1, _081BF1FC + str r0, [r1] + b _081BF272 + .align 2, 0 +_081BF1FC: .4byte 0x03006074 +_081BF200: + ldr r4, _081BF220 + adds r0, r4, #0 + bl sub_081BA3A8 + ldr r1, _081BF224 + str r0, [r1] + adds r0, r4, #0 + bl sub_081BA8CC + cmp r0, #0 + beq _081BF228 + movs r0, #3 + bl sub_081BAA20 + movs r0, #7 + b _081BF270 + .align 2, 0 +_081BF220: .4byte 0x03006080 +_081BF224: .4byte 0x03006074 +_081BF228: + ldrb r1, [r4, #0x1e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _081BF272 + movs r0, #9 + b _081BF270 +_081BF236: + movs r0, #8 + b _081BF270 +_081BF23A: + ldr r0, _081BF254 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081BF272 + adds r0, r2, #0 + bl DestroyTask + bl DoSoftReset + b _081BF272 + .align 2, 0 +_081BF254: .4byte 0x03002360 +_081BF258: + movs r0, #4 + bl sub_081BAA20 + movs r0, #0xa + b _081BF270 +_081BF262: + ldr r0, _081BF27C + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081BF272 + movs r0, #0 +_081BF270: + strh r0, [r5] +_081BF272: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081BF27C: .4byte 0x03002360 + thumb_func_end berry_fix_main + diff --git a/asm/berry_powder.s b/asm/berry_powder.s new file mode 100644 index 0000000..db6bf6d --- /dev/null +++ b/asm/berry_powder.s @@ -0,0 +1,389 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start DecryptBerryPowder +DecryptBerryPowder: @ 0x08024434 + ldr r1, _08024444 + ldr r1, [r1] + adds r1, #0xac + ldr r0, [r0] + ldr r1, [r1] + eors r0, r1 + bx lr + .align 2, 0 +_08024444: .4byte 0x03005AF0 + thumb_func_end DecryptBerryPowder + + thumb_func_start SetBerryPowder +SetBerryPowder: @ 0x08024448 + ldr r2, _08024458 + ldr r2, [r2] + adds r2, #0xac + ldr r2, [r2] + eors r2, r1 + str r2, [r0] + bx lr + .align 2, 0 +_08024458: .4byte 0x03005AF0 + thumb_func_end SetBerryPowder + + thumb_func_start ApplyNewEncryptionKeyToBerryPowder +ApplyNewEncryptionKeyToBerryPowder: @ 0x0802445C + push {lr} + adds r1, r0, #0 + ldr r0, _08024474 + ldr r0, [r0] + movs r2, #0xfa + lsls r2, r2, #1 + adds r0, r0, r2 + bl ApplyNewEncryptionKeyToWord + pop {r0} + bx r0 + .align 2, 0 +_08024474: .4byte 0x03005AF0 + thumb_func_end ApplyNewEncryptionKeyToBerryPowder + + thumb_func_start HasEnoughBerryPowder_ +HasEnoughBerryPowder_: @ 0x08024478 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08024494 + ldr r0, [r0] + movs r1, #0xfa + lsls r1, r1, #1 + adds r0, r0, r1 + bl DecryptBerryPowder + cmp r0, r4 + blo _08024498 + movs r0, #1 + b _0802449A + .align 2, 0 +_08024494: .4byte 0x03005AF0 +_08024498: + movs r0, #0 +_0802449A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end HasEnoughBerryPowder_ + + thumb_func_start HasEnoughBerryPowder +HasEnoughBerryPowder: @ 0x080244A0 + push {lr} + ldr r0, _080244BC + ldr r0, [r0] + movs r1, #0xfa + lsls r1, r1, #1 + adds r0, r0, r1 + bl DecryptBerryPowder + ldr r1, _080244C0 + ldrh r1, [r1] + cmp r0, r1 + blo _080244C4 + movs r0, #1 + b _080244C6 + .align 2, 0 +_080244BC: .4byte 0x03005AF0 +_080244C0: .4byte 0x02037280 +_080244C4: + movs r0, #0 +_080244C6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end HasEnoughBerryPowder + + thumb_func_start GiveBerryPowder +GiveBerryPowder: @ 0x080244CC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _080244F4 + ldr r0, [r0] + movs r1, #0xfa + lsls r1, r1, #1 + adds r5, r0, r1 + adds r0, r5, #0 + bl DecryptBerryPowder + adds r1, r0, r4 + ldr r2, _080244F8 + cmp r1, r2 + bhi _080244FC + adds r0, r5, #0 + bl SetBerryPowder + movs r0, #1 + b _08024506 + .align 2, 0 +_080244F4: .4byte 0x03005AF0 +_080244F8: .4byte 0x0001869F +_080244FC: + adds r0, r5, #0 + adds r1, r2, #0 + bl SetBerryPowder + movs r0, #0 +_08024506: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end GiveBerryPowder + + thumb_func_start TakeBerryPowder_ +TakeBerryPowder_: @ 0x0802450C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0802453C + ldr r0, [r0] + movs r1, #0xfa + lsls r1, r1, #1 + adds r4, r0, r1 + adds r0, r5, #0 + bl HasEnoughBerryPowder_ + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08024540 + adds r0, r4, #0 + bl DecryptBerryPowder + adds r1, r0, #0 + subs r1, r1, r5 + adds r0, r4, #0 + bl SetBerryPowder + movs r0, #1 + b _08024542 + .align 2, 0 +_0802453C: .4byte 0x03005AF0 +_08024540: + movs r0, #0 +_08024542: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end TakeBerryPowder_ + + thumb_func_start TakeBerryPowder +TakeBerryPowder: @ 0x08024548 + push {r4, r5, lr} + ldr r0, _08024578 + ldr r0, [r0] + movs r1, #0xfa + lsls r1, r1, #1 + adds r4, r0, r1 + ldr r5, _0802457C + ldrh r0, [r5] + bl HasEnoughBerryPowder_ + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08024580 + adds r0, r4, #0 + bl DecryptBerryPowder + adds r1, r0, #0 + ldrh r0, [r5] + subs r1, r1, r0 + adds r0, r4, #0 + bl SetBerryPowder + movs r0, #1 + b _08024582 + .align 2, 0 +_08024578: .4byte 0x03005AF0 +_0802457C: .4byte 0x02037280 +_08024580: + movs r0, #0 +_08024582: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end TakeBerryPowder + + thumb_func_start GetBerryPowder +GetBerryPowder: @ 0x08024588 + push {lr} + ldr r0, _0802459C + ldr r0, [r0] + movs r1, #0xfa + lsls r1, r1, #1 + adds r0, r0, r1 + bl DecryptBerryPowder + pop {r1} + bx r1 + .align 2, 0 +_0802459C: .4byte 0x03005AF0 + thumb_func_end GetBerryPowder + + thumb_func_start PrintBerryPowderAmount +PrintBerryPowderAmount: @ 0x080245A0 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #0xc + adds r6, r0, #0 + mov r8, r2 + adds r4, r3, #0 + ldr r5, [sp, #0x24] + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov r0, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _080245F4 + mov sb, r0 + movs r2, #1 + movs r3, #5 + bl ConvertIntToDecimalStringN + str r4, [sp] + str r5, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + adds r0, r6, #0 + movs r1, #0 + mov r2, sb + mov r3, r8 + bl AddTextPrinterParameterized + add sp, #0xc + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080245F4: .4byte 0x02021C40 + thumb_func_end PrintBerryPowderAmount + + thumb_func_start DrawPlayerPowderAmount +DrawPlayerPowderAmount: @ 0x080245F8 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0xc + adds r6, r0, #0 + adds r4, r1, #0 + adds r5, r2, #0 + mov r8, r3 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + adds r0, r6, #0 + movs r1, #0 + adds r2, r4, #0 + adds r3, r5, #0 + bl DrawStdFrameWithCustomTileAndPalette + ldr r2, _08024650 + movs r4, #0 + str r4, [sp] + movs r0, #0xff + str r0, [sp, #4] + str r4, [sp, #8] + adds r0, r6, #0 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + str r4, [sp] + adds r0, r6, #0 + mov r1, r8 + movs r2, #0x10 + movs r3, #0xc + bl PrintBerryPowderAmount + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08024650: .4byte 0x085CCCEE + thumb_func_end DrawPlayerPowderAmount + + thumb_func_start PrintPlayerBerryPowderAmount +PrintPlayerBerryPowderAmount: @ 0x08024654 + push {lr} + sub sp, #4 + bl GetBerryPowder + adds r1, r0, #0 + ldr r0, _08024674 + ldrb r0, [r0] + movs r2, #0 + str r2, [sp] + movs r2, #0x10 + movs r3, #0xc + bl PrintBerryPowderAmount + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_08024674: .4byte 0x02022948 + thumb_func_end PrintPlayerBerryPowderAmount + + thumb_func_start DisplayBerryPowderVendorMenu +DisplayBerryPowderVendorMenu: @ 0x08024678 + push {r4, r5, lr} + sub sp, #0x18 + movs r0, #7 + str r0, [sp] + movs r0, #3 + str r0, [sp, #4] + movs r0, #0xf + str r0, [sp, #8] + movs r0, #0x20 + str r0, [sp, #0xc] + add r0, sp, #0x10 + movs r1, #0 + movs r2, #1 + movs r3, #1 + bl SetWindowTemplateFields + ldr r4, _080246D8 + add r0, sp, #0x10 + bl AddWindow + strb r0, [r4] + ldrb r0, [r4] + movs r1, #0 + bl FillWindowPixelBuffer + ldrb r0, [r4] + bl PutWindowTilemap + ldrb r0, [r4] + ldr r5, _080246DC + adds r1, r5, #0 + movs r2, #0xd0 + bl LoadUserWindowBorderGfx_ + ldrb r4, [r4] + bl GetBerryPowder + adds r3, r0, #0 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0xd + bl DrawPlayerPowderAmount + add sp, #0x18 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080246D8: .4byte 0x02022948 +_080246DC: .4byte 0x0000021D + thumb_func_end DisplayBerryPowderVendorMenu + + thumb_func_start RemoveBerryPowderVendorMenu +RemoveBerryPowderVendorMenu: @ 0x080246E0 + push {r4, lr} + ldr r4, _08024700 + ldrb r0, [r4] + bl ClearWindowTilemap + ldrb r0, [r4] + movs r1, #1 + bl ClearStdWindowAndFrameToTransparent + ldrb r0, [r4] + bl RemoveWindow + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08024700: .4byte 0x02022948 + thumb_func_end RemoveBerryPowderVendorMenu + diff --git a/asm/berry_tag_screen.s b/asm/berry_tag_screen.s new file mode 100644 index 0000000..706263a --- /dev/null +++ b/asm/berry_tag_screen.s @@ -0,0 +1,2333 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start DoBerryTagScreen +DoBerryTagScreen: @ 0x08177AFC + push {r4, lr} + ldr r4, _08177B2C + ldr r0, _08177B30 + bl AllocZeroed + str r0, [r4] + ldr r0, _08177B34 + ldrh r0, [r0] + bl ItemIdToBerryType + ldr r1, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0xc0 + lsls r2, r2, #5 + adds r1, r1, r2 + strh r0, [r1] + ldr r0, _08177B38 + bl SetMainCallback2 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08177B2C: .4byte 0x0203B9C0 +_08177B30: .4byte 0x0000180C +_08177B34: .4byte 0x0203CB48 +_08177B38: .4byte 0x08177B6D + thumb_func_end DoBerryTagScreen + + thumb_func_start CB2_BerryTagScreen +CB2_BerryTagScreen: @ 0x08177B3C + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl do_scheduled_bg_tilemap_copies_to_vram + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CB2_BerryTagScreen + + thumb_func_start VblankCB +VblankCB: @ 0x08177B58 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end VblankCB + + thumb_func_start CB2_InitBerryTagScreen +CB2_InitBerryTagScreen: @ 0x08177B6C + push {lr} +_08177B6E: + bl sub_081221F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08177B92 + bl InitBerryTagScreen + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08177B92 + bl sub_081221B8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08177B6E +_08177B92: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CB2_InitBerryTagScreen + + thumb_func_start InitBerryTagScreen +InitBerryTagScreen: @ 0x08177B98 + push {lr} + sub sp, #4 + ldr r0, _08177BB8 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0xf + bls _08177BAC + b _08177CDC +_08177BAC: + lsls r0, r0, #2 + ldr r1, _08177BBC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08177BB8: .4byte 0x03002360 +_08177BBC: .4byte 0x08177BC0 +_08177BC0: @ jump table + .4byte _08177C00 @ case 0 + .4byte _08177C0E @ case 1 + .4byte _08177C14 @ case 2 + .4byte _08177C28 @ case 3 + .4byte _08177C2E @ case 4 + .4byte _08177C34 @ case 5 + .4byte _08177C44 @ case 6 + .4byte _08177C60 @ case 7 + .4byte _08177C6C @ case 8 + .4byte _08177C72 @ case 9 + .4byte _08177C78 @ case 10 + .4byte _08177C7E @ case 11 + .4byte _08177C84 @ case 12 + .4byte _08177C8E @ case 13 + .4byte _08177C9C @ case 14 + .4byte _08177CAA @ case 15 +_08177C00: + bl SetVBlankHBlankCallbacksToNull + bl ResetVramOamAndBgCntRegs + bl clear_scheduled_bg_copies_to_vram + b _08177CC4 +_08177C0E: + bl ScanlineEffect_Stop + b _08177CC4 +_08177C14: + bl ResetPaletteFade + ldr r2, _08177C24 + ldrb r0, [r2, #8] + movs r1, #0x80 + orrs r0, r1 + b _08177CC2 + .align 2, 0 +_08177C24: .4byte 0x02037C74 +_08177C28: + bl ResetSpriteData + b _08177CC4 +_08177C2E: + bl FreeAllSpritePalettes + b _08177CC4 +_08177C34: + bl sub_081221B8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08177CC4 + bl ResetTasks + b _08177CC4 +_08177C44: + bl AddBerryTagTextToBg0 + ldr r0, _08177C58 + ldr r0, [r0] + ldr r1, _08177C5C + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0] + b _08177CC4 + .align 2, 0 +_08177C58: .4byte 0x0203B9C0 +_08177C5C: .4byte 0x00001808 +_08177C60: + bl LoadBerryTagGfx + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08177CF4 + b _08177CC4 +_08177C6C: + bl PrintMysteryMenuText + b _08177CC4 +_08177C72: + bl PrintBerrySize + b _08177CC4 +_08177C78: + bl PrintAllBerryData + b _08177CC4 +_08177C7E: + bl CreateBerrySprite + b _08177CC4 +_08177C84: + bl CreateFlavorCircleSprites + bl SetFlavorCirclesVisiblity + b _08177CC4 +_08177C8E: + ldr r0, _08177C98 + movs r1, #0 + bl CreateTask + b _08177CC4 + .align 2, 0 +_08177C98: .4byte 0x0817850D +_08177C9C: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + b _08177CC4 +_08177CAA: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r2, _08177CD4 + ldrb r1, [r2, #8] + movs r0, #0x7f + ands r0, r1 +_08177CC2: + strb r0, [r2, #8] +_08177CC4: + ldr r1, _08177CD8 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _08177CF4 + .align 2, 0 +_08177CD4: .4byte 0x02037C74 +_08177CD8: .4byte 0x03002360 +_08177CDC: + ldr r0, _08177CEC + bl SetVBlankCallback + ldr r0, _08177CF0 + bl SetMainCallback2 + movs r0, #1 + b _08177CF6 + .align 2, 0 +_08177CEC: .4byte 0x08177B59 +_08177CF0: .4byte 0x08177B3D +_08177CF4: + movs r0, #0 +_08177CF6: + add sp, #4 + pop {r1} + bx r1 + thumb_func_end InitBerryTagScreen + + thumb_func_start AddBerryTagTextToBg0 +AddBerryTagTextToBg0: @ 0x08177CFC + push {r4, lr} + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _08177D68 + movs r0, #0 + movs r2, #4 + bl InitBgsFromTemplates + ldr r4, _08177D6C + ldr r1, [r4] + movs r0, #2 + bl SetBgTilemapBuffer + ldr r1, [r4] + movs r0, #0x80 + lsls r0, r0, #4 + adds r1, r1, r0 + movs r0, #3 + bl SetBgTilemapBuffer + bl ResetAllBgsCoordinates + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #3 + bl schedule_bg_copy_tilemap_to_vram + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08177D68: .4byte 0x085CD068 +_08177D6C: .4byte 0x0203B9C0 + thumb_func_end AddBerryTagTextToBg0 + + thumb_func_start LoadBerryTagGfx +LoadBerryTagGfx: @ 0x08177D70 + push {r4, r5, r6, r7, lr} + sub sp, #4 + ldr r1, _08177D90 + ldr r0, [r1] + ldr r2, _08177D94 + adds r0, r0, r2 + ldrh r0, [r0] + adds r7, r1, #0 + cmp r0, #5 + bls _08177D86 + b _08177ED4 +_08177D86: + lsls r0, r0, #2 + ldr r1, _08177D98 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08177D90: .4byte 0x0203B9C0 +_08177D94: .4byte 0x00001808 +_08177D98: .4byte 0x08177D9C +_08177D9C: @ jump table + .4byte _08177DB4 @ case 0 + .4byte _08177DE0 @ case 1 + .4byte _08177E04 @ case 2 + .4byte _08177E24 @ case 3 + .4byte _08177E90 @ case 4 + .4byte _08177EB0 @ case 5 +_08177DB4: + bl reset_temp_tile_data_buffers + ldr r1, _08177DD4 + movs r0, #0 + str r0, [sp] + movs r0, #2 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + ldr r0, _08177DD8 + ldr r1, [r0] + ldr r0, _08177DDC + adds r1, r1, r0 + b _08177EBE + .align 2, 0 +_08177DD4: .4byte 0x08D9BD90 +_08177DD8: .4byte 0x0203B9C0 +_08177DDC: .4byte 0x00001808 +_08177DE0: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08177DEE + b _08177EE4 +_08177DEE: + ldr r0, _08177DFC + ldr r4, _08177E00 + ldr r1, [r4] + bl LZDecompressVram + ldr r1, [r4] + b _08177EBA + .align 2, 0 +_08177DFC: .4byte 0x08D9C254 +_08177E00: .4byte 0x0203B9C0 +_08177E04: + ldr r0, _08177E1C + ldr r1, [r7] + movs r2, #0x80 + lsls r2, r2, #5 + adds r1, r1, r2 + bl LZDecompressVram + ldr r1, [r7] + ldr r0, _08177E20 + adds r1, r1, r0 + b _08177EBE + .align 2, 0 +_08177E1C: .4byte 0x08D9C3E4 +_08177E20: .4byte 0x00001808 +_08177E24: + ldr r0, _08177E50 + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #0 + bne _08177E60 + movs r2, #0 + ldr r6, _08177E54 + movs r5, #0x80 + lsls r5, r5, #4 + ldr r4, _08177E58 + ldr r3, _08177E5C +_08177E3A: + ldr r0, [r6] + lsls r1, r2, #1 + adds r0, r0, r5 + adds r0, r0, r1 + strh r4, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, r3 + bls _08177E3A + b _08177E80 + .align 2, 0 +_08177E50: .4byte 0x03005AF0 +_08177E54: .4byte 0x0203B9C0 +_08177E58: .4byte 0x00004042 +_08177E5C: .4byte 0x000003FF +_08177E60: + movs r2, #0 + ldr r6, _08177E84 + movs r5, #0x80 + lsls r5, r5, #4 + ldr r4, _08177E88 + ldr r3, _08177E8C +_08177E6C: + ldr r0, [r6] + lsls r1, r2, #1 + adds r0, r0, r5 + adds r0, r0, r1 + strh r4, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, r3 + bls _08177E6C +_08177E80: + ldr r1, [r7] + b _08177EBA + .align 2, 0 +_08177E84: .4byte 0x0203B9C0 +_08177E88: .4byte 0x00005042 +_08177E8C: .4byte 0x000003FF +_08177E90: + ldr r0, _08177EA4 + movs r1, #0 + movs r2, #0xc0 + bl LoadCompressedPalette + ldr r0, _08177EA8 + ldr r1, [r0] + ldr r0, _08177EAC + adds r1, r1, r0 + b _08177EBE + .align 2, 0 +_08177EA4: .4byte 0x08D9C1AC +_08177EA8: .4byte 0x0203B9C0 +_08177EAC: .4byte 0x00001808 +_08177EB0: + ldr r0, _08177EC8 + bl LoadCompressedSpriteSheet + ldr r0, _08177ECC + ldr r1, [r0] +_08177EBA: + ldr r2, _08177ED0 + adds r1, r1, r2 +_08177EBE: + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _08177EE4 + .align 2, 0 +_08177EC8: .4byte 0x0855A91C +_08177ECC: .4byte 0x0203B9C0 +_08177ED0: .4byte 0x00001808 +_08177ED4: + ldr r0, _08177EE0 + bl LoadCompressedSpritePalette + movs r0, #1 + b _08177EE6 + .align 2, 0 +_08177EE0: .4byte 0x0855A924 +_08177EE4: + movs r0, #0 +_08177EE6: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end LoadBerryTagGfx + + thumb_func_start PrintMysteryMenuText +PrintMysteryMenuText: @ 0x08177EF0 + push {r4, lr} + ldr r0, _08177F2C + bl InitWindows + bl DeactivateAllTextPrinters + ldr r0, _08177F30 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + movs r4, #0 +_08177F08: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl PutWindowTilemap + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #3 + bls _08177F08 + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08177F2C: .4byte 0x085CD0A0 +_08177F30: .4byte 0x085CD078 + thumb_func_end PrintMysteryMenuText + + thumb_func_start PrintTextInBerryTagScreen +PrintTextInBerryTagScreen: @ 0x08177F34 + push {r4, r5, r6, lr} + sub sp, #0x14 + ldr r6, [sp, #0x24] + ldr r5, [sp, #0x28] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r4, #0 + str r4, [sp] + str r4, [sp, #4] + lsls r4, r5, #1 + adds r4, r4, r5 + ldr r5, _08177F74 + adds r4, r4, r5 + str r4, [sp, #8] + lsls r6, r6, #0x18 + asrs r6, r6, #0x18 + str r6, [sp, #0xc] + str r1, [sp, #0x10] + movs r1, #1 + bl AddTextPrinterParameterized4 + add sp, #0x14 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08177F74: .4byte 0x085CD098 + thumb_func_end PrintTextInBerryTagScreen + + thumb_func_start PrintBerrySize +PrintBerrySize: @ 0x08177F78 + push {lr} + sub sp, #8 + movs r0, #0 + bl GetBgTilemapBuffer + ldr r1, _08177FC4 + ldr r1, [r1] + movs r2, #0x80 + lsls r2, r2, #5 + adds r1, r1, r2 + movs r2, #0x80 + lsls r2, r2, #4 + bl memcpy + movs r0, #3 + movs r1, #0xff + bl FillWindowPixelBuffer + ldr r1, _08177FC8 + movs r0, #0 + str r0, [sp] + movs r0, #1 + str r0, [sp, #4] + movs r0, #3 + movs r2, #0 + movs r3, #2 + bl PrintTextInBerryTagScreen + movs r0, #3 + bl PutWindowTilemap + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 +_08177FC4: .4byte 0x0203B9C0 +_08177FC8: .4byte 0x085C97BD + thumb_func_end PrintBerrySize + + thumb_func_start PrintAllBerryData +PrintAllBerryData: @ 0x08177FCC + push {lr} + bl PrintBerryNumberAndName + bl sub_0817804C + bl PrintBerryFirmness + bl PrintBerryDescription1 + bl PrintBerryDescription2 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PrintAllBerryData + + thumb_func_start PrintBerryNumberAndName +PrintBerryNumberAndName: @ 0x08177FE8 + push {r4, r5, r6, lr} + sub sp, #8 + ldr r5, _08178038 + ldr r0, [r5] + movs r4, #0xc0 + lsls r4, r4, #5 + adds r0, r0, r4 + ldrb r0, [r0] + bl GetBerryInfo + adds r6, r0, #0 + ldr r0, _0817803C + ldr r1, [r5] + adds r1, r1, r4 + ldrh r1, [r1] + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r0, _08178040 + adds r1, r6, #0 + bl StringCopy + ldr r4, _08178044 + ldr r1, _08178048 + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + adds r1, r4, #0 + movs r2, #0 + movs r3, #2 + bl PrintTextInBerryTagScreen + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08178038: .4byte 0x0203B9C0 +_0817803C: .4byte 0x02021C40 +_08178040: .4byte 0x02021C54 +_08178044: .4byte 0x02021C7C +_08178048: .4byte 0x085C97B5 + thumb_func_end PrintBerryNumberAndName + + thumb_func_start sub_0817804C +sub_0817804C: @ 0x0817804C + push {r4, r5, r6, r7, lr} + sub sp, #0xc + ldr r0, _081780D0 + ldr r0, [r0] + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r0, r1 + ldrb r0, [r0] + bl GetBerryInfo + adds r5, r0, #0 + ldr r2, _081780D4 + movs r7, #2 + str r7, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r6, #0 + str r6, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + ldrh r0, [r5, #8] + cmp r0, #0 + beq _081780E8 + ldr r4, _081780D8 + movs r1, #0xa + bl __udivsi3 + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + movs r2, #0 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r4, _081780DC + ldrh r0, [r5, #8] + movs r1, #0xa + bl __umodsi3 + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + movs r2, #0 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r4, _081780E0 + ldr r1, _081780E4 + adds r0, r4, #0 + bl StringExpandPlaceholders + str r7, [sp] + str r6, [sp, #4] + str r6, [sp, #8] + movs r0, #1 + movs r1, #1 + adds r2, r4, #0 + movs r3, #0x28 + bl AddTextPrinterParameterized + b _081780FA + .align 2, 0 +_081780D0: .4byte 0x0203B9C0 +_081780D4: .4byte 0x085C977D +_081780D8: .4byte 0x02021C40 +_081780DC: .4byte 0x02021C54 +_081780E0: .4byte 0x02021C7C +_081780E4: .4byte 0x085C9786 +_081780E8: + ldr r2, _08178104 + str r7, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r3, #0x28 + bl AddTextPrinterParameterized +_081780FA: + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08178104: .4byte 0x085C93F5 + thumb_func_end sub_0817804C + + thumb_func_start PrintBerryFirmness +PrintBerryFirmness: @ 0x08178108 + push {r4, r5, r6, lr} + sub sp, #0xc + ldr r0, _0817815C + ldr r0, [r0] + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r0, r1 + ldrb r0, [r0] + bl GetBerryInfo + adds r6, r0, #0 + ldr r2, _08178160 + movs r5, #0x12 + str r5, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r4, #0 + str r4, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + ldrb r0, [r6, #7] + cmp r0, #0 + beq _08178168 + ldr r0, _08178164 + ldrb r1, [r6, #7] + subs r1, #1 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r2, [r1] + str r5, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r3, #0x28 + bl AddTextPrinterParameterized + b _0817817A + .align 2, 0 +_0817815C: .4byte 0x0203B9C0 +_08178160: .4byte 0x085C9782 +_08178164: .4byte 0x085CD0C8 +_08178168: + ldr r2, _08178184 + str r5, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r3, #0x28 + bl AddTextPrinterParameterized +_0817817A: + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08178184: .4byte 0x085C93F5 + thumb_func_end PrintBerryFirmness + + thumb_func_start PrintBerryDescription1 +PrintBerryDescription1: @ 0x08178188 + push {lr} + sub sp, #0xc + ldr r0, _081781B8 + ldr r0, [r0] + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r0, r1 + ldrb r0, [r0] + bl GetBerryInfo + ldr r2, [r0, #0xc] + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + movs r0, #2 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_081781B8: .4byte 0x0203B9C0 + thumb_func_end PrintBerryDescription1 + + thumb_func_start PrintBerryDescription2 +PrintBerryDescription2: @ 0x081781BC + push {lr} + sub sp, #0xc + ldr r0, _081781EC + ldr r0, [r0] + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r0, r1 + ldrb r0, [r0] + bl GetBerryInfo + ldr r2, [r0, #0x10] + movs r0, #0x12 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + movs r0, #2 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_081781EC: .4byte 0x0203B9C0 + thumb_func_end PrintBerryDescription2 + + thumb_func_start CreateBerrySprite +CreateBerrySprite: @ 0x081781F0 + push {r4, lr} + ldr r4, _0817821C + ldr r0, [r4] + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r0, r1 + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x38 + movs r2, #0x40 + bl CreateBerryTagSprite + ldr r1, [r4] + ldr r2, _08178220 + adds r1, r1, r2 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0817821C: .4byte 0x0203B9C0 +_08178220: .4byte 0x00001802 + thumb_func_end CreateBerrySprite + + thumb_func_start DestroyBerrySprite +DestroyBerrySprite: @ 0x08178224 + push {lr} + ldr r0, _08178248 + ldr r0, [r0] + ldr r1, _0817824C + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08178250 + adds r0, r0, r1 + bl DestroySprite + bl FreeBerryTagSpritePalette + pop {r0} + bx r0 + .align 2, 0 +_08178248: .4byte 0x0203B9C0 +_0817824C: .4byte 0x00001802 +_08178250: .4byte 0x020205AC + thumb_func_end DestroyBerrySprite + + thumb_func_start CreateFlavorCircleSprites +CreateFlavorCircleSprites: @ 0x08178254 + push {r4, lr} + movs r0, #0x3c + bl CreateBerryFlavorCircleSprite + ldr r4, _081782A4 + ldr r1, [r4] + ldr r2, _081782A8 + adds r1, r1, r2 + strb r0, [r1] + movs r0, #0x5c + bl CreateBerryFlavorCircleSprite + ldr r1, [r4] + ldr r2, _081782AC + adds r1, r1, r2 + strb r0, [r1] + movs r0, #0x7c + bl CreateBerryFlavorCircleSprite + ldr r1, [r4] + ldr r2, _081782B0 + adds r1, r1, r2 + strb r0, [r1] + movs r0, #0x9c + bl CreateBerryFlavorCircleSprite + ldr r1, [r4] + ldr r2, _081782B4 + adds r1, r1, r2 + strb r0, [r1] + movs r0, #0xbc + bl CreateBerryFlavorCircleSprite + ldr r1, [r4] + ldr r2, _081782B8 + adds r1, r1, r2 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081782A4: .4byte 0x0203B9C0 +_081782A8: .4byte 0x00001803 +_081782AC: .4byte 0x00001804 +_081782B0: .4byte 0x00001805 +_081782B4: .4byte 0x00001806 +_081782B8: .4byte 0x00001807 + thumb_func_end CreateFlavorCircleSprites + + thumb_func_start SetFlavorCirclesVisiblity +SetFlavorCirclesVisiblity: @ 0x081782BC + push {r4, r5, lr} + ldr r4, _081782F4 + ldr r0, [r4] + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r0, r1 + ldrb r0, [r0] + bl GetBerryInfo + adds r5, r0, #0 + ldrb r0, [r5, #0x15] + cmp r0, #0 + beq _08178300 + ldr r3, _081782F8 + ldr r0, [r4] + ldr r1, _081782FC + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + b _0817831A + .align 2, 0 +_081782F4: .4byte 0x0203B9C0 +_081782F8: .4byte 0x020205AC +_081782FC: .4byte 0x00001803 +_08178300: + ldr r3, _08178344 + ldr r0, [r4] + ldr r1, _08178348 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 +_0817831A: + strb r1, [r0] + adds r4, r3, #0 + ldrb r0, [r5, #0x16] + cmp r0, #0 + beq _08178354 + ldr r3, _0817834C + ldr r0, [r3] + ldr r1, _08178350 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + b _0817836E + .align 2, 0 +_08178344: .4byte 0x020205AC +_08178348: .4byte 0x00001803 +_0817834C: .4byte 0x0203B9C0 +_08178350: .4byte 0x00001804 +_08178354: + ldr r3, _08178394 + ldr r0, [r3] + ldr r1, _08178398 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 +_0817836E: + strb r1, [r0] + ldrb r0, [r5, #0x17] + cmp r0, #0 + beq _081783A0 + ldr r0, [r3] + ldr r1, _0817839C + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + b _081783B8 + .align 2, 0 +_08178394: .4byte 0x0203B9C0 +_08178398: .4byte 0x00001804 +_0817839C: .4byte 0x00001805 +_081783A0: + ldr r0, [r3] + ldr r1, _081783DC + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 +_081783B8: + strb r1, [r0] + ldrb r0, [r5, #0x18] + cmp r0, #0 + beq _081783E4 + ldr r0, [r3] + ldr r1, _081783E0 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + b _081783FC + .align 2, 0 +_081783DC: .4byte 0x00001805 +_081783E0: .4byte 0x00001806 +_081783E4: + ldr r0, [r3] + ldr r1, _08178420 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 +_081783FC: + strb r1, [r0] + ldrb r0, [r5, #0x19] + cmp r0, #0 + beq _08178428 + ldr r0, [r3] + ldr r1, _08178424 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + b _08178440 + .align 2, 0 +_08178420: .4byte 0x00001806 +_08178424: .4byte 0x00001807 +_08178428: + ldr r0, [r3] + ldr r1, _08178448 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 +_08178440: + strb r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08178448: .4byte 0x00001807 + thumb_func_end SetFlavorCirclesVisiblity + + thumb_func_start DestroyFlavorCircleSprites +DestroyFlavorCircleSprites: @ 0x0817844C + push {r4, lr} + movs r4, #0 +_08178450: + ldr r0, _0817847C + ldr r0, [r0] + ldr r1, _08178480 + adds r0, r0, r1 + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08178484 + adds r0, r0, r1 + bl DestroySprite + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #4 + bls _08178450 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0817847C: .4byte 0x0203B9C0 +_08178480: .4byte 0x00001803 +_08178484: .4byte 0x020205AC + thumb_func_end DestroyFlavorCircleSprites + + thumb_func_start PrepareToCloseBerryTagScreen +PrepareToCloseBerryTagScreen: @ 0x08178488 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #5 + bl PlaySE + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _081784C0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081784C4 + str r1, [r0] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081784C0: .4byte 0x03005B60 +_081784C4: .4byte 0x081784C9 + thumb_func_end PrepareToCloseBerryTagScreen + + thumb_func_start Task_CloseBerryTagScreen +Task_CloseBerryTagScreen: @ 0x081784C8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _08178500 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081784FA + bl DestroyBerrySprite + bl DestroyFlavorCircleSprites + ldr r0, _08178504 + ldr r0, [r0] + bl Free + bl FreeAllWindowBuffers + ldr r0, _08178508 + bl SetMainCallback2 + adds r0, r4, #0 + bl DestroyTask +_081784FA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08178500: .4byte 0x02037C74 +_08178504: .4byte 0x0203B9C0 +_08178508: .4byte 0x081AD205 + thumb_func_end Task_CloseBerryTagScreen + + thumb_func_start Task_HandleInput +Task_HandleInput: @ 0x0817850C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r4, r2, #0 + ldr r0, _08178538 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0817855E + ldr r3, _0817853C + ldrh r0, [r3, #0x30] + movs r1, #0xf0 + ands r1, r0 + cmp r1, #0x40 + bne _08178540 + movs r1, #1 + rsbs r1, r1, #0 + adds r0, r2, #0 + bl TryChangeDisplayedBerry + b _0817855E + .align 2, 0 +_08178538: .4byte 0x02037C74 +_0817853C: .4byte 0x03002360 +_08178540: + cmp r1, #0x80 + bne _0817854E + adds r0, r2, #0 + movs r1, #1 + bl TryChangeDisplayedBerry + b _0817855E +_0817854E: + ldrh r1, [r3, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _0817855E + adds r0, r4, #0 + bl PrepareToCloseBerryTagScreen +_0817855E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end Task_HandleInput + + thumb_func_start TryChangeDisplayedBerry +TryChangeDisplayedBerry: @ 0x08178564 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r2, _081785A4 + adds r4, r0, r2 + ldr r2, _081785A8 + ldrh r0, [r2, #0xe] + ldrh r2, [r2, #0x18] + adds r0, r0, r2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsrs r7, r1, #0x18 + asrs r6, r1, #0x18 + adds r0, r0, r6 + cmp r0, #0x2d + bhi _081785D0 + lsls r1, r0, #0x10 + lsrs r1, r1, #0x10 + movs r0, #4 + bl BagGetItemIdByPocketPosition + lsls r0, r0, #0x10 + cmp r0, #0 + beq _081785D0 + cmp r6, #0 + bge _081785AC + movs r0, #2 + b _081785AE + .align 2, 0 +_081785A4: .4byte 0x03005B68 +_081785A8: .4byte 0x0203CB24 +_081785AC: + movs r0, #1 +_081785AE: + strh r0, [r4, #2] + movs r0, #0 + strh r0, [r4] + movs r0, #5 + bl PlaySE + lsls r0, r7, #0x18 + asrs r0, r0, #0x18 + bl HandleBagCursorPositionChange + ldr r1, _081785D8 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081785DC + str r1, [r0] +_081785D0: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081785D8: .4byte 0x03005B60 +_081785DC: .4byte 0x08178665 + thumb_func_end TryChangeDisplayedBerry + + thumb_func_start HandleBagCursorPositionChange +HandleBagCursorPositionChange: @ 0x081785E0 + push {r4, r5, r6, lr} + ldr r5, _08178614 + adds r6, r5, #0 + subs r6, #0xa + lsls r0, r0, #0x18 + asrs r4, r0, #0x18 + cmp r4, #0 + ble _0817861C + ldrh r0, [r6] + cmp r0, #3 + bls _0817860A + ldrh r1, [r5] + adds r1, #8 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #4 + bl BagGetItemIdByPocketPosition + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08178618 +_0817860A: + ldrh r0, [r6] + adds r0, r0, r4 + strh r0, [r6] + b _08178632 + .align 2, 0 +_08178614: .4byte 0x0203CB3C +_08178618: + ldrh r0, [r5] + b _0817862E +_0817861C: + ldrh r1, [r6] + cmp r1, #3 + bhi _08178628 + ldrh r0, [r5] + cmp r0, #0 + bne _0817862E +_08178628: + adds r0, r1, r4 + strh r0, [r6] + b _08178632 +_0817862E: + adds r0, r0, r4 + strh r0, [r5] +_08178632: + ldrh r1, [r6] + ldrh r5, [r5] + adds r1, r1, r5 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #4 + bl BagGetItemIdByPocketPosition + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl ItemIdToBerryType + ldr r1, _08178660 + ldr r1, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0xc0 + lsls r2, r2, #5 + adds r1, r1, r2 + strh r0, [r1] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08178660: .4byte 0x0203B9C0 + thumb_func_end HandleBagCursorPositionChange + + thumb_func_start Task_DisplayAnotherBerry +Task_DisplayAnotherBerry: @ 0x08178664 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r0, r0, #2 + add r0, r8 + lsls r0, r0, #3 + ldr r1, _081786A8 + adds r6, r0, r1 + ldrh r0, [r6] + adds r0, #0x10 + movs r1, #0xff + ands r0, r1 + strh r0, [r6] + movs r1, #2 + ldrsh r0, [r6, r1] + cmp r0, #1 + bne _081786E0 + movs r2, #0 + ldrsh r0, [r6, r2] + cmp r0, #0x70 + beq _08178740 + cmp r0, #0x70 + bgt _081786B6 + cmp r0, #0x40 + beq _081786D2 + cmp r0, #0x40 + bgt _081786AC + cmp r0, #0x30 + beq _08178750 + b _0817875E + .align 2, 0 +_081786A8: .4byte 0x03005B68 +_081786AC: + cmp r0, #0x50 + beq _08178746 + cmp r0, #0x60 + beq _081786D8 + b _0817875E +_081786B6: + cmp r0, #0xa0 + beq _081786DC + cmp r0, #0xa0 + bgt _081786C8 + cmp r0, #0x80 + beq _0817873A + cmp r0, #0x90 + beq _08178730 + b _0817875E +_081786C8: + cmp r0, #0xb0 + beq _0817872A + cmp r0, #0xc0 + beq _08178724 + b _0817875E +_081786D2: + bl PrintBerryNumberAndName + b _0817875E +_081786D8: + movs r0, #1 + b _08178752 +_081786DC: + movs r0, #2 + b _08178752 +_081786E0: + movs r1, #0 + ldrsh r0, [r6, r1] + cmp r0, #0x70 + beq _08178736 + cmp r0, #0x70 + bgt _08178704 + cmp r0, #0x40 + beq _08178724 + cmp r0, #0x40 + bgt _081786FA + cmp r0, #0x30 + beq _08178720 + b _0817875E +_081786FA: + cmp r0, #0x50 + beq _0817872A + cmp r0, #0x60 + beq _08178730 + b _0817875E +_08178704: + cmp r0, #0xa0 + beq _08178746 + cmp r0, #0xa0 + bgt _08178716 + cmp r0, #0x80 + beq _0817873A + cmp r0, #0x90 + beq _08178740 + b _0817875E +_08178716: + cmp r0, #0xb0 + beq _08178750 + cmp r0, #0xc0 + beq _0817875A + b _0817875E +_08178720: + movs r0, #2 + b _08178752 +_08178724: + bl PrintBerryDescription2 + b _0817875E +_0817872A: + bl PrintBerryDescription1 + b _0817875E +_08178730: + bl SetFlavorCirclesVisiblity + b _0817875E +_08178736: + movs r0, #1 + b _08178752 +_0817873A: + bl PrintBerryFirmness + b _0817875E +_08178740: + bl sub_0817804C + b _0817875E +_08178746: + bl DestroyBerrySprite + bl CreateBerrySprite + b _0817875E +_08178750: + movs r0, #0 +_08178752: + movs r1, #0 + bl FillWindowPixelBuffer + b _0817875E +_0817875A: + bl PrintBerryNumberAndName +_0817875E: + movs r2, #2 + ldrsh r0, [r6, r2] + cmp r0, #1 + bne _08178770 + ldrh r0, [r6] + rsbs r0, r0, #0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + b _08178772 +_08178770: + ldrh r5, [r6] +_08178772: + ldr r2, _081787E4 + ldr r3, _081787E8 + ldr r0, [r3] + ldr r1, _081787EC + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r5, [r0, #0x26] + movs r4, #0 + adds r7, r2, #0 + ldr r2, _081787F0 +_0817878E: + ldr r0, [r3] + adds r0, r0, r2 + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r5, [r0, #0x26] + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #4 + bls _0817878E + movs r4, #0x80 + lsls r4, r4, #5 + ldrb r2, [r6, #2] + movs r0, #1 + adds r1, r4, #0 + bl ChangeBgY + ldrb r2, [r6, #2] + movs r0, #2 + adds r1, r4, #0 + bl ChangeBgY + movs r2, #0 + ldrsh r0, [r6, r2] + cmp r0, #0 + bne _081787DA + ldr r0, _081787F4 + mov r2, r8 + lsls r1, r2, #2 + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081787F8 + str r0, [r1] +_081787DA: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081787E4: .4byte 0x020205AC +_081787E8: .4byte 0x0203B9C0 +_081787EC: .4byte 0x00001802 +_081787F0: .4byte 0x00001803 +_081787F4: .4byte 0x03005B60 +_081787F8: .4byte 0x0817850D + thumb_func_end Task_DisplayAnotherBerry + + thumb_func_start sub_081787FC +sub_081787FC: @ 0x081787FC + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081787FC + + thumb_func_start CheckLanguageMatch +CheckLanguageMatch: @ 0x08178810 + push {lr} + movs r2, #0 + ldr r1, _08178828 + ldrh r0, [r1, #0x1a] + ldrh r1, [r1, #0x36] + cmp r0, r1 + bne _08178820 + movs r2, #1 +_08178820: + adds r0, r2, #0 + pop {r1} + bx r1 + .align 2, 0 +_08178828: .4byte 0x020226A0 + thumb_func_end CheckLanguageMatch + + thumb_func_start CB2_InitMysteryEventMenu +CB2_InitMysteryEventMenu: @ 0x0817882C + push {r4, lr} + sub sp, #8 + bl ResetSpriteData + bl FreeAllSpritePalettes + bl ResetTasks + ldr r0, _081788E4 + bl SetVBlankCallback + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _081788E8 + movs r0, #0 + movs r2, #1 + bl InitBgsFromTemplates + ldr r0, _081788EC + bl InitWindows + lsls r0, r0, #0x10 + cmp r0, #0 + beq _081788DA + bl DeactivateAllTextPrinters + movs r4, #0 +_08178864: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl FillWindowPixelBuffer + adds r4, #1 + cmp r4, #1 + ble _08178864 + movs r0, #0x1e + str r0, [sp] + movs r0, #0x14 + str r0, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, #0 + movs r1, #1 + movs r2, #0xd0 + bl LoadUserWindowBorderGfx + movs r0, #0xe0 + bl Menu_LoadStdPalAt + movs r1, #0xa0 + lsls r1, r1, #1 + movs r0, #0 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + ldr r0, _081788F0 + movs r1, #0 + bl CreateTask + bl StopMapMusic + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl RunTextPrinters + bl UpdatePaletteFade + movs r0, #0 + movs r1, #0 + movs r2, #2 + bl FillPalette + ldr r0, _081788F4 + bl SetMainCallback2 +_081788DA: + add sp, #8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081788E4: .4byte 0x081787FD +_081788E8: .4byte 0x085CD204 +_081788EC: .4byte 0x085CD208 +_081788F0: .4byte 0x08008FA1 +_081788F4: .4byte 0x08178931 + thumb_func_end CB2_InitMysteryEventMenu + + thumb_func_start GetEventLoadMessage +GetEventLoadMessage: @ 0x081788F8 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r4, r1, #0 + movs r5, #1 + cmp r4, #0 + bne _0817890C + ldr r1, _08178928 + bl StringCopy + movs r5, #0 +_0817890C: + cmp r4, #2 + bne _08178912 + movs r5, #0 +_08178912: + cmp r4, #1 + bne _0817891E + ldr r1, _0817892C + adds r0, r6, #0 + bl StringCopy +_0817891E: + adds r0, r5, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08178928: .4byte 0x085CD159 +_0817892C: .4byte 0x085CD19F + thumb_func_end GetEventLoadMessage + + thumb_func_start CB2_MysteryEventMenu +CB2_MysteryEventMenu: @ 0x08178930 + push {r4, r5, r6, lr} + sub sp, #8 + ldr r1, _08178950 + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r1, r2 + ldrb r0, [r0] + adds r4, r1, #0 + cmp r0, #0x10 + bls _08178946 + b _08178D10 +_08178946: + lsls r0, r0, #2 + ldr r1, _08178954 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08178950: .4byte 0x03002360 +_08178954: .4byte 0x08178958 +_08178958: @ jump table + .4byte _0817899C @ case 0 + .4byte _081789CA @ case 1 + .4byte _08178A00 @ case 2 + .4byte _08178A38 @ case 3 + .4byte _08178A84 @ case 4 + .4byte _08178A94 @ case 5 + .4byte _08178B0C @ case 6 + .4byte _08178BE0 @ case 7 + .4byte _08178BF0 @ case 8 + .4byte _08178C10 @ case 9 + .4byte _08178C18 @ case 10 + .4byte _08178C2C @ case 11 + .4byte _08178C74 @ case 12 + .4byte _08178C98 @ case 13 + .4byte _08178CC4 @ case 14 + .4byte _08178CDC @ case 15 + .4byte _08178D00 @ case 16 +_0817899C: + movs r0, #0 + movs r1, #1 + movs r2, #1 + movs r3, #0xd + bl DrawStdFrameWithCustomTileAndPalette + movs r0, #0 + bl PutWindowTilemap + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + movs r0, #0 + bl ShowBg + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + b _08178CE8 +_081789CA: + ldr r0, _081789F4 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _081789D8 + b _08178D10 +_081789D8: + ldr r1, _081789F8 + movs r0, #1 + str r0, [sp] + movs r0, #0 + movs r2, #1 + movs r3, #2 + bl sub_08178D7C + ldr r1, _081789FC + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _08178CF4 + .align 2, 0 +_081789F4: .4byte 0x02037C74 +_081789F8: .4byte 0x085CD0DC +_081789FC: .4byte 0x03002360 +_08178A00: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08178A0E + b _08178D10 +_08178A0E: + ldr r1, _08178A2C + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r1, _08178A30 + ldr r2, _08178A34 + adds r0, r2, #0 + strh r0, [r1] + bl OpenLink + b _08178D10 + .align 2, 0 +_08178A2C: .4byte 0x03002360 +_08178A30: .4byte 0x0202267E +_08178A34: .4byte 0x00005501 +_08178A38: + ldr r0, _08178A78 + ldr r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _08178A46 + b _08178BB8 +_08178A46: + movs r0, #0x1c + ands r1, r0 + cmp r1, #4 + bhi _08178A50 + b _08178BB8 +_08178A50: + movs r0, #0x15 + bl PlaySE + ldr r1, _08178A7C + movs r0, #1 + str r0, [sp] + movs r0, #0 + movs r2, #1 + movs r3, #2 + bl sub_08178D7C + ldr r1, _08178A80 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _08178BB8 + .align 2, 0 +_08178A78: .4byte 0x03003180 +_08178A7C: .4byte 0x085CD0FE +_08178A80: .4byte 0x03002360 +_08178A84: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08178A92 + b _08178D10 +_08178A92: + b _08178CEC +_08178A94: + bl GetLinkPlayerCount_2 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #2 + bne _08178B88 + ldr r4, _08178AE8 + ldrh r1, [r4, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08178AF0 + movs r0, #5 + bl PlaySE + bl CheckShouldAdvanceLinkState + movs r0, #1 + movs r1, #1 + movs r2, #1 + movs r3, #0xd + bl DrawStdFrameWithCustomTileAndPalette + ldr r1, _08178AEC + movs r0, #0 + str r0, [sp] + movs r0, #1 + movs r2, #1 + movs r3, #2 + bl sub_08178D7C + movs r0, #1 + bl PutWindowTilemap + movs r0, #1 + movs r1, #3 + bl CopyWindowToVram + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r4, r2 + b _08178CF4 + .align 2, 0 +_08178AE8: .4byte 0x03002360 +_08178AEC: .4byte 0x085CD123 +_08178AF0: + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _08178AFA + b _08178D10 +_08178AFA: + movs r0, #5 + bl PlaySE + bl CloseLink + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r4, r0 + b _08178BD6 +_08178B0C: + bl IsLinkConnectionEstablished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08178BB8 + ldr r0, _08178B58 + ldrb r0, [r0] + cmp r0, #0 + bne _08178B20 + b _08178D10 +_08178B20: + movs r0, #2 + movs r1, #2 + bl GetLinkPlayerDataExchangeStatusTimed + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bne _08178B64 + bl sub_0800A7F8 + ldr r4, _08178B5C + adds r0, r4, #0 + movs r1, #1 + bl GetEventLoadMessage + movs r0, #1 + str r0, [sp] + movs r0, #0 + adds r1, r4, #0 + movs r2, #1 + movs r3, #2 + bl sub_08178D7C + ldr r0, _08178B60 + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r0, r2 + b _08178BAA + .align 2, 0 +_08178B58: .4byte 0x030031C4 +_08178B5C: .4byte 0x02021C7C +_08178B60: .4byte 0x03002360 +_08178B64: + bl CheckLanguageMatch + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08178B84 + ldr r1, _08178B80 + movs r0, #1 + str r0, [sp] + movs r0, #0 + movs r2, #1 + movs r3, #2 + bl sub_08178D7C + b _08178CEC + .align 2, 0 +_08178B80: .4byte 0x085CD133 +_08178B84: + bl CloseLink +_08178B88: + ldr r4, _08178BB0 + adds r0, r4, #0 + movs r1, #1 + bl GetEventLoadMessage + movs r0, #1 + str r0, [sp] + movs r0, #0 + adds r1, r4, #0 + movs r2, #1 + movs r3, #2 + bl sub_08178D7C + ldr r0, _08178BB4 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 +_08178BAA: + movs r1, #0xd + strb r1, [r0] + b _08178D10 + .align 2, 0 +_08178BB0: .4byte 0x02021C7C +_08178BB4: .4byte 0x03002360 +_08178BB8: + ldr r4, _08178BDC + ldrh r1, [r4, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08178BC6 + b _08178D10 +_08178BC6: + movs r0, #5 + bl PlaySE + bl CloseLink + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r4, r2 +_08178BD6: + movs r0, #0xf + strb r0, [r1] + b _08178D10 + .align 2, 0 +_08178BDC: .4byte 0x03002360 +_08178BE0: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08178BEE + b _08178D10 +_08178BEE: + b _08178CEC +_08178BF0: + bl GetBlockReceivedStatus + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08178BFC + b _08178D10 +_08178BFC: + bl ResetBlockReceivedFlags + ldr r1, _08178C0C + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _08178CF4 + .align 2, 0 +_08178C0C: .4byte 0x03002360 +_08178C10: + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r4, r0 + b _08178CF4 +_08178C18: + bl sub_0800A7F8 + ldr r1, _08178C28 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _08178CF4 + .align 2, 0 +_08178C28: .4byte 0x03002360 +_08178C2C: + ldr r0, _08178C64 + ldrb r6, [r0] + cmp r6, #0 + bne _08178D10 + ldr r5, _08178C68 + adds r0, r5, #0 + bl RunMysteryEventScript + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + str r6, [sp, #4] + ldr r2, _08178C6C + add r0, sp, #4 + adds r1, r5, #0 + bl CpuSet + ldr r0, _08178C70 + adds r1, r4, #0 + bl GetEventLoadMessage + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08178CEC + movs r0, #0 + bl TrySavingData + b _08178CEC + .align 2, 0 +_08178C64: .4byte 0x030031C4 +_08178C68: .4byte 0x0201C000 +_08178C6C: .4byte 0x050001F5 +_08178C70: .4byte 0x02021C7C +_08178C74: + ldr r1, _08178C90 + movs r0, #1 + str r0, [sp] + movs r0, #0 + movs r2, #1 + movs r3, #2 + bl sub_08178D7C + ldr r1, _08178C94 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _08178CF4 + .align 2, 0 +_08178C90: .4byte 0x02021C7C +_08178C94: .4byte 0x03002360 +_08178C98: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0 + bne _08178D10 + ldr r0, _08178CBC + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + ldr r0, _08178CC0 + strb r2, [r0] + b _08178D10 + .align 2, 0 +_08178CBC: .4byte 0x03002360 +_08178CC0: .4byte 0x0203B9C4 +_08178CC4: + ldrh r1, [r4, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08178D10 + movs r0, #5 + bl PlaySE + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r4, r2 + b _08178CF4 +_08178CDC: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 +_08178CE8: + bl BeginNormalPaletteFade +_08178CEC: + ldr r1, _08178CFC + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 +_08178CF4: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _08178D10 + .align 2, 0 +_08178CFC: .4byte 0x03002360 +_08178D00: + ldr r0, _08178D6C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08178D10 + bl DoSoftReset +_08178D10: + ldr r0, _08178D70 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08178D50 + bl IsLinkMaster + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08178D50 + bl CloseLink + ldr r4, _08178D74 + adds r0, r4, #0 + movs r1, #1 + bl GetEventLoadMessage + movs r0, #1 + str r0, [sp] + movs r0, #0 + adds r1, r4, #0 + movs r2, #1 + movs r3, #2 + bl sub_08178D7C + ldr r0, _08178D78 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + movs r1, #0xd + strb r1, [r0] +_08178D50: + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl RunTextPrinters + bl UpdatePaletteFade + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08178D6C: .4byte 0x02037C74 +_08178D70: .4byte 0x03003180 +_08178D74: .4byte 0x02021C7C +_08178D78: .4byte 0x03002360 + thumb_func_end CB2_MysteryEventMenu + + thumb_func_start sub_08178D7C +sub_08178D7C: @ 0x08178D7C + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + sub sp, #0x1c + adds r5, r0, #0 + mov sl, r1 + adds r6, r2, #0 + ldr r4, [sp, #0x38] + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #0 + mov sb, r0 + movs r1, #1 + mov r8, r1 + add r0, sp, #0x14 + mov r1, r8 + strb r1, [r0] + adds r1, r0, #0 + movs r0, #2 + strb r0, [r1, #1] + movs r0, #3 + strb r0, [r1, #2] + adds r0, r1, #0 + ldrb r0, [r0] + lsls r1, r0, #4 + orrs r1, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + str r3, [sp, #0x18] + bl FillWindowPixelBuffer + mov r0, sb + str r0, [sp] + mov r1, r8 + str r1, [sp, #4] + add r0, sp, #0x14 + str r0, [sp, #8] + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + str r4, [sp, #0xc] + mov r1, sl + str r1, [sp, #0x10] + adds r0, r5, #0 + movs r1, #1 + adds r2, r6, #0 + ldr r3, [sp, #0x18] + bl AddTextPrinterParameterized4 + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08178D7C + diff --git a/asm/bg.s b/asm/bg.s new file mode 100644 index 0000000..e069fc2 --- /dev/null +++ b/asm/bg.s @@ -0,0 +1,3248 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ResetBgs +ResetBgs: @ 0x08001308 + push {lr} + bl ResetBgControlStructs + ldr r1, _0800131C + movs r0, #0 + strh r0, [r1, #0x10] + bl SetTextModeAndHideBgs + pop {r0} + bx r0 + .align 2, 0 +_0800131C: .4byte 0x030008E0 + thumb_func_end ResetBgs + + thumb_func_start SetBgModeInternal +SetBgModeInternal: @ 0x08001320 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _08001334 + ldrh r2, [r3, #0x10] + ldr r1, _08001338 + ands r1, r2 + orrs r1, r0 + strh r1, [r3, #0x10] + bx lr + .align 2, 0 +_08001334: .4byte 0x030008E0 +_08001338: .4byte 0x0000FFF8 + thumb_func_end SetBgModeInternal + + thumb_func_start GetBgMode +GetBgMode: @ 0x0800133C + ldr r0, _08001348 + ldrb r1, [r0, #0x10] + movs r0, #7 + ands r0, r1 + bx lr + .align 2, 0 +_08001348: .4byte 0x030008E0 + thumb_func_end GetBgMode + + thumb_func_start ResetBgControlStructs +ResetBgControlStructs: @ 0x0800134C + push {lr} + ldr r2, _08001364 + ldr r0, _08001368 + ldr r0, [r0] + adds r1, r2, #0 + adds r1, #0xc +_08001358: + str r0, [r1] + subs r1, #4 + cmp r1, r2 + bge _08001358 + pop {r0} + bx r0 + .align 2, 0 +_08001364: .4byte 0x030008E0 +_08001368: .4byte 0x0829BEAC + thumb_func_end ResetBgControlStructs + + thumb_func_start Unused_ResetBgControlStruct +Unused_ResetBgControlStruct: @ 0x0800136C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl IsInvalidBg32 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0800138A + ldr r1, _08001390 + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r1, _08001394 + ldr r1, [r1] + str r1, [r0] +_0800138A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08001390: .4byte 0x030008E0 +_08001394: .4byte 0x0829BEAC + thumb_func_end Unused_ResetBgControlStruct + + thumb_func_start SetBgControlAttributes +SetBgControlAttributes: @ 0x08001398 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + ldr r4, [sp, #0x30] + ldr r5, [sp, #0x34] + ldr r6, [sp, #0x38] + mov ip, r6 + ldr r6, [sp, #0x3c] + mov r8, r6 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + str r7, [sp] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sl, r1 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov sb, r3 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r4, [sp, #4] + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + mov r0, ip + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + mov r1, r8 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp, #0xc] + adds r0, r7, #0 + bl IsInvalidBg32 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov ip, r0 + cmp r0, #0 + bne _080014B0 + ldr r2, _080014C0 + mov r8, r2 + mov r0, sl + cmp r0, #0xff + beq _0800140C + lsls r2, r7, #2 + add r2, r8 + movs r1, #3 + ands r1, r0 + ldrb r3, [r2, #1] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #1] +_0800140C: + cmp r6, #0xff + beq _08001424 + lsls r1, r7, #2 + add r1, r8 + movs r0, #0x1f + ands r6, r0 + lsls r3, r6, #2 + ldrb r2, [r1, #1] + subs r0, #0x9c + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #1] +_08001424: + mov r1, sb + cmp r1, #0xff + beq _08001440 + lsls r1, r7, #2 + add r1, r8 + movs r0, #3 + mov r2, sb + ands r2, r0 + lsls r3, r2, #2 + ldrb r2, [r1] + subs r0, #0x10 + ands r0, r2 + orrs r0, r3 + strb r0, [r1] +_08001440: + ldr r6, [sp, #4] + cmp r6, #0xff + beq _08001456 + lsls r1, r7, #2 + add r1, r8 + lsls r3, r6, #7 + ldrb r2, [r1, #1] + movs r0, #0x7f + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #1] +_08001456: + cmp r5, #0xff + beq _0800146E + lsls r1, r7, #2 + add r1, r8 + movs r0, #3 + ands r5, r0 + lsls r3, r5, #4 + ldrb r2, [r1] + subs r0, #0x34 + ands r0, r2 + orrs r0, r3 + strb r0, [r1] +_0800146E: + cmp r4, #0xff + beq _08001486 + lsls r1, r7, #2 + add r1, r8 + movs r0, #1 + ands r4, r0 + lsls r3, r4, #6 + ldrb r2, [r1] + subs r0, #0x42 + ands r0, r2 + orrs r0, r3 + strb r0, [r1] +_08001486: + ldr r0, [sp, #0xc] + cmp r0, #0xff + beq _0800149C + lsls r1, r7, #2 + add r1, r8 + lsls r3, r0, #7 + ldrb r2, [r1] + movs r0, #0x7f + ands r0, r2 + orrs r0, r3 + strb r0, [r1] +_0800149C: + ldr r1, [sp] + lsls r0, r1, #2 + add r0, r8 + mov r2, ip + strb r2, [r0, #2] + strb r2, [r0, #3] + ldrb r1, [r0] + movs r2, #1 + orrs r1, r2 + strb r1, [r0] +_080014B0: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080014C0: .4byte 0x030008E0 + thumb_func_end SetBgControlAttributes + + thumb_func_start GetBgControlAttribute +GetBgControlAttribute: @ 0x080014C4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + adds r0, r4, #0 + bl IsInvalidBg32 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08001570 + ldr r1, _080014FC + lsls r2, r4, #2 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1f + adds r3, r1, #0 + cmp r0, #0 + beq _08001570 + subs r0, r5, #1 + cmp r0, #7 + bhi _08001570 + lsls r0, r0, #2 + ldr r1, _08001500 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080014FC: .4byte 0x030008E0 +_08001500: .4byte 0x08001504 +_08001504: @ jump table + .4byte _08001524 @ case 0 + .4byte _0800152E @ case 1 + .4byte _08001538 @ case 2 + .4byte _08001542 @ case 3 + .4byte _0800154C @ case 4 + .4byte _08001554 @ case 5 + .4byte _0800155E @ case 6 + .4byte _08001568 @ case 7 +_08001524: + adds r0, r2, r3 + ldrb r0, [r0] + lsls r0, r0, #0x1f + lsrs r0, r0, #0x1f + b _08001572 +_0800152E: + adds r0, r2, r3 + ldrb r0, [r0, #1] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + b _08001572 +_08001538: + adds r0, r2, r3 + ldrb r0, [r0, #1] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1b + b _08001572 +_08001542: + adds r0, r2, r3 + ldrb r0, [r0] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1e + b _08001572 +_0800154C: + adds r0, r2, r3 + ldrb r0, [r0, #1] + lsrs r0, r0, #7 + b _08001572 +_08001554: + adds r0, r2, r3 + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + b _08001572 +_0800155E: + adds r0, r2, r3 + ldrb r0, [r0] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1f + b _08001572 +_08001568: + adds r0, r2, r3 + ldrb r0, [r0] + lsrs r0, r0, #7 + b _08001572 +_08001570: + movs r0, #0xff +_08001572: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end GetBgControlAttribute + + thumb_func_start LoadBgVram +LoadBgVram: @ 0x08001578 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r1 + ldr r1, [sp, #0x18] + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r2, r2, #0x10 + lsrs r7, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r6, r3, #0x10 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + adds r0, r4, #0 + bl IsInvalidBg32 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080015F0 + ldr r1, _080015B8 + lsls r0, r4, #2 + adds r1, r0, r1 + ldrb r0, [r1] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _080015F0 + cmp r5, #1 + beq _080015BC + cmp r5, #2 + beq _080015C4 + movs r2, #0xff + b _080015F4 + .align 2, 0 +_080015B8: .4byte 0x030008E0 +_080015BC: + ldrb r0, [r1, #1] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x10 + b _080015CC +_080015C4: + ldrb r0, [r1, #1] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1b + lsls r0, r0, #0xb +_080015CC: + adds r0, r6, r0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #0x13 + adds r1, r0, r1 + mov r0, r8 + adds r2, r7, #0 + movs r3, #0 + bl RequestDma3Copy + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _080015F4 +_080015F0: + movs r0, #0xff + b _080015F6 +_080015F4: + adds r0, r2, #0 +_080015F6: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end LoadBgVram + + thumb_func_start ShowBgInternal +ShowBgInternal: @ 0x08001600 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl IsInvalidBg32 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0800166E + ldr r5, _08001674 + lsls r0, r4, #2 + adds r2, r0, r5 + ldrb r3, [r2] + lsls r0, r3, #0x1f + cmp r0, #0 + beq _0800166E + lsls r1, r3, #0x1a + lsrs r1, r1, #0x1e + ldrb r2, [r2, #1] + lsls r0, r2, #0x1e + lsrs r0, r0, #0x1c + orrs r1, r0 + movs r0, #0x40 + ands r0, r3 + orrs r1, r0 + lsrs r0, r2, #7 + lsls r0, r0, #7 + orrs r1, r0 + lsls r2, r2, #0x19 + lsrs r2, r2, #0x1b + lsls r2, r2, #8 + orrs r1, r2 + lsrs r0, r3, #7 + lsls r0, r0, #0xd + orrs r1, r0 + lsls r0, r3, #0x1c + lsrs r0, r0, #0x1e + lsls r0, r0, #0xe + orrs r1, r0 + lsls r0, r4, #0x19 + movs r2, #0x80 + lsls r2, r2, #0x14 + adds r0, r0, r2 + lsrs r0, r0, #0x18 + bl SetGpuReg + adds r1, r4, #0 + adds r1, #8 + movs r0, #1 + lsls r0, r1 + ldrh r1, [r5, #0x10] + orrs r0, r1 + ldr r1, _08001678 + ands r0, r1 + strh r0, [r5, #0x10] +_0800166E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08001674: .4byte 0x030008E0 +_08001678: .4byte 0x00000F07 + thumb_func_end ShowBgInternal + + thumb_func_start HideBgInternal +HideBgInternal: @ 0x0800167C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl IsInvalidBg32 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080016A2 + ldr r2, _080016A8 + adds r0, r4, #0 + adds r0, #8 + movs r1, #1 + lsls r1, r0 + ldrh r0, [r2, #0x10] + bics r0, r1 + ldr r1, _080016AC + ands r0, r1 + strh r0, [r2, #0x10] +_080016A2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080016A8: .4byte 0x030008E0 +_080016AC: .4byte 0x00000F07 + thumb_func_end HideBgInternal + + thumb_func_start SyncBgVisibilityAndMode +SyncBgVisibilityAndMode: @ 0x080016B0 + push {lr} + movs r0, #0 + bl GetGpuReg + ldr r1, _080016CC + ands r1, r0 + ldr r0, _080016D0 + ldrh r0, [r0, #0x10] + orrs r1, r0 + movs r0, #0 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 +_080016CC: .4byte 0x0000F0F8 +_080016D0: .4byte 0x030008E0 + thumb_func_end SyncBgVisibilityAndMode + + thumb_func_start SetTextModeAndHideBgs +SetTextModeAndHideBgs: @ 0x080016D4 + push {lr} + movs r0, #0 + bl GetGpuReg + ldr r1, _080016EC + ands r1, r0 + movs r0, #0 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 +_080016EC: .4byte 0x0000F0F8 + thumb_func_end SetTextModeAndHideBgs + + thumb_func_start SetBgAffineInternal +SetBgAffineInternal: @ 0x080016F0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x24 + mov ip, r1 + mov r8, r2 + ldr r1, [sp, #0x3c] + ldr r2, [sp, #0x40] + ldr r4, [sp, #0x44] + ldr r5, [sp, #0x48] + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + ldr r0, _08001734 + ldrh r0, [r0, #0x10] + movs r1, #7 + ands r1, r0 + cmp r1, #1 + beq _08001738 + cmp r1, #1 + ble _080017AE + cmp r1, #2 + beq _0800173E + b _080017AE + .align 2, 0 +_08001734: .4byte 0x030008E0 +_08001738: + cmp r6, #2 + bne _080017AE + b _08001748 +_0800173E: + subs r0, r6, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _080017AE +_08001748: + mov r0, ip + str r0, [sp] + mov r0, r8 + str r0, [sp, #4] + mov r0, sp + strh r3, [r0, #8] + strh r7, [r0, #0xa] + strh r2, [r0, #0xc] + strh r4, [r0, #0xe] + strh r5, [r0, #0x10] + add r4, sp, #0x14 + adds r1, r4, #0 + movs r2, #1 + bl BgAffineSet + ldrh r1, [r4] + movs r0, #0x20 + bl SetGpuReg + ldrh r1, [r4, #2] + movs r0, #0x22 + bl SetGpuReg + ldrh r1, [r4, #4] + movs r0, #0x24 + bl SetGpuReg + ldrh r1, [r4, #6] + movs r0, #0x26 + bl SetGpuReg + ldrh r1, [r4] + movs r0, #0x20 + bl SetGpuReg + ldrh r1, [r4, #8] + movs r0, #0x28 + bl SetGpuReg + ldrh r1, [r4, #0xa] + movs r0, #0x2a + bl SetGpuReg + ldrh r1, [r4, #0xc] + movs r0, #0x2c + bl SetGpuReg + ldrh r1, [r4, #0xe] + movs r0, #0x2e + bl SetGpuReg +_080017AE: + add sp, #0x24 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetBgAffineInternal + + thumb_func_start IsInvalidBg32 +IsInvalidBg32: @ 0x080017BC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bhi _080017CA + movs r0, #0 + b _080017CC +_080017CA: + movs r0, #1 +_080017CC: + pop {r1} + bx r1 + thumb_func_end IsInvalidBg32 + + thumb_func_start DummiedOutFireRedLeafGreenTileAllocFunc +DummiedOutFireRedLeafGreenTileAllocFunc: @ 0x080017D0 + movs r0, #0 + bx lr + thumb_func_end DummiedOutFireRedLeafGreenTileAllocFunc + + thumb_func_start ResetBgsAndClearDma3BusyFlags +ResetBgsAndClearDma3BusyFlags: @ 0x080017D4 + push {r4, lr} + adds r4, r0, #0 + bl ResetBgs + ldr r1, _080017F8 + movs r2, #0 + adds r0, r1, #0 + adds r0, #0xc +_080017E4: + str r2, [r0] + subs r0, #4 + cmp r0, r1 + bge _080017E4 + ldr r0, _080017FC + str r4, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080017F8: .4byte 0x03000938 +_080017FC: .4byte 0x03002FF4 + thumb_func_end ResetBgsAndClearDma3BusyFlags + + thumb_func_start InitBgsFromTemplates +InitBgsFromTemplates: @ 0x08001800 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + adds r5, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r2, #0x18 + lsrs r4, r2, #0x18 + bl SetBgModeInternal + bl ResetBgControlStructs + cmp r4, #0 + beq _080018AC + movs r7, #0 + ldr r0, _080018BC + mov sb, r0 + movs r2, #0xc + add r2, sb + mov sl, r2 + adds r6, r5, #0 + mov r8, r4 +_08001832: + ldr r4, [r6] + lsls r0, r4, #0x1e + lsrs r5, r0, #0x1e + cmp r5, #3 + bhi _0800189E + lsls r1, r4, #0x1c + lsrs r1, r1, #0x1e + lsls r2, r4, #0x17 + lsrs r2, r2, #0x1b + lsls r3, r4, #0x15 + lsrs r3, r3, #0x1e + lsls r0, r4, #0x14 + lsrs r0, r0, #0x1f + str r0, [sp] + lsls r0, r4, #0x12 + lsrs r0, r0, #0x1e + str r0, [sp, #4] + str r7, [sp, #8] + str r7, [sp, #0xc] + adds r0, r5, #0 + bl SetBgControlAttributes + lsls r4, r5, #4 + mov r5, sb + adds r3, r4, r5 + ldr r2, [r6] + lsls r2, r2, #8 + lsrs r2, r2, #0x16 + ldrh r0, [r3] + ldr r5, _080018C0 + adds r1, r5, #0 + ands r0, r1 + orrs r0, r2 + strh r0, [r3] + ldrb r0, [r3, #1] + movs r2, #0x3d + rsbs r2, r2, #0 + adds r1, r2, #0 + ands r0, r1 + strb r0, [r3, #1] + ldr r0, [r3] + ldr r1, _080018C4 + ands r0, r1 + str r0, [r3] + mov r0, sb + adds r0, #4 + adds r0, r4, r0 + str r7, [r0] + mov r0, sb + adds r0, #8 + adds r0, r4, r0 + str r7, [r0] + add r4, sl + str r7, [r4] +_0800189E: + adds r6, #4 + movs r5, #1 + rsbs r5, r5, #0 + add r8, r5 + mov r0, r8 + cmp r0, #0 + bne _08001832 +_080018AC: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080018BC: .4byte 0x030008F8 +_080018C0: .4byte 0xFFFFFC00 +_080018C4: .4byte 0x00003FFF + thumb_func_end InitBgsFromTemplates + + thumb_func_start InitBgFromTemplate +InitBgFromTemplate: @ 0x080018C8 + push {r4, r5, r6, r7, lr} + sub sp, #0x10 + adds r7, r0, #0 + ldr r4, [r7] + lsls r0, r4, #0x1e + lsrs r5, r0, #0x1e + cmp r5, #3 + bhi _08001938 + lsls r1, r4, #0x1c + lsrs r1, r1, #0x1e + lsls r2, r4, #0x17 + lsrs r2, r2, #0x1b + lsls r3, r4, #0x15 + lsrs r3, r3, #0x1e + lsls r0, r4, #0x14 + lsrs r0, r0, #0x1f + str r0, [sp] + lsls r0, r4, #0x12 + lsrs r0, r0, #0x1e + str r0, [sp, #4] + movs r6, #0 + str r6, [sp, #8] + str r6, [sp, #0xc] + adds r0, r5, #0 + bl SetBgControlAttributes + ldr r4, _08001940 + lsls r5, r5, #4 + adds r3, r5, r4 + ldr r1, [r7] + lsls r1, r1, #8 + lsrs r1, r1, #0x16 + ldrh r2, [r3] + ldr r0, _08001944 + ands r0, r2 + orrs r0, r1 + strh r0, [r3] + ldrb r1, [r3, #1] + movs r0, #0x3d + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3, #1] + ldr r0, [r3] + ldr r1, _08001948 + ands r0, r1 + str r0, [r3] + adds r0, r4, #4 + adds r0, r5, r0 + str r6, [r0] + adds r0, r4, #0 + adds r0, #8 + adds r0, r5, r0 + str r6, [r0] + adds r4, #0xc + adds r5, r5, r4 + str r6, [r5] +_08001938: + add sp, #0x10 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08001940: .4byte 0x030008F8 +_08001944: .4byte 0xFFFFFC00 +_08001948: .4byte 0x00003FFF + thumb_func_end InitBgFromTemplate + + thumb_func_start SetBgMode +SetBgMode: @ 0x0800194C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl SetBgModeInternal + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetBgMode + + thumb_func_start LoadBgTiles +LoadBgTiles: @ 0x0800195C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r7, r1, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + mov r8, r2 + lsls r3, r3, #0x10 + lsrs r4, r3, #0x10 + adds r0, r5, #0 + movs r1, #5 + bl GetBgControlAttribute + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08001998 + ldr r1, _08001994 + lsls r0, r5, #4 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + adds r0, r0, r4 + lsls r0, r0, #0x15 + b _080019A8 + .align 2, 0 +_08001994: .4byte 0x030008F8 +_08001998: + ldr r1, _080019C8 + lsls r0, r5, #4 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + adds r0, r0, r4 + lsls r0, r0, #0x16 +_080019A8: + lsrs r4, r0, #0x10 + movs r6, #1 + str r6, [sp] + adds r0, r5, #0 + adds r1, r7, #0 + mov r2, r8 + adds r3, r4, #0 + bl LoadBgVram + lsls r2, r0, #0x18 + lsrs r1, r2, #0x18 + adds r7, r1, #0 + cmp r1, #0xff + bne _080019D0 + ldr r0, _080019CC + b _080019FE + .align 2, 0 +_080019C8: .4byte 0x030008F8 +_080019CC: .4byte 0x0000FFFF +_080019D0: + ldr r0, _08001A0C + lsrs r2, r2, #0x1d + lsls r2, r2, #2 + adds r2, r2, r0 + movs r0, #0x1f + ands r0, r1 + adds r1, r6, #0 + lsls r1, r0 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + ldr r0, _08001A10 + ldr r0, [r0] + cmp r0, #1 + bne _080019FC + lsrs r1, r4, #5 + mov r0, r8 + lsrs r2, r0, #5 + adds r0, r5, #0 + movs r3, #1 + bl DummiedOutFireRedLeafGreenTileAllocFunc +_080019FC: + adds r0, r7, #0 +_080019FE: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08001A0C: .4byte 0x03000938 +_08001A10: .4byte 0x03002FF4 + thumb_func_end LoadBgTiles + + thumb_func_start LoadBgTilemap +LoadBgTilemap: @ 0x08001A14 + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + lsls r3, r3, #0x11 + lsrs r3, r3, #0x10 + movs r4, #2 + str r4, [sp] + bl LoadBgVram + lsls r2, r0, #0x18 + lsrs r3, r2, #0x18 + cmp r3, #0xff + beq _08001A54 + ldr r0, _08001A50 + lsrs r2, r2, #0x1d + lsls r2, r2, #2 + adds r2, r2, r0 + movs r0, #0x1f + ands r0, r3 + movs r1, #1 + lsls r1, r0 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + adds r0, r3, #0 + b _08001A56 + .align 2, 0 +_08001A50: .4byte 0x03000938 +_08001A54: + ldr r0, _08001A60 +_08001A56: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08001A60: .4byte 0x0000FFFF + thumb_func_end LoadBgTilemap + + thumb_func_start Unused_LoadBgPalette +Unused_LoadBgPalette: @ 0x08001A64 + push {r4, r5, r6, r7, lr} + adds r7, r1, #0 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r2, r2, #0x10 + lsrs r6, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r5, r3, #0x10 + adds r0, r4, #0 + bl IsInvalidBg + cmp r0, #0 + bne _08001AB0 + ldr r1, _08001AB4 + lsls r0, r4, #4 + adds r0, r0, r1 + ldrb r1, [r0, #1] + lsls r1, r1, #0x1a + lsrs r1, r1, #0x1c + lsls r1, r1, #5 + lsls r0, r5, #1 + adds r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0xa0 + lsls r0, r0, #0x13 + adds r1, r1, r0 + adds r0, r7, #0 + adds r2, r6, #0 + movs r3, #0 + bl RequestDma3Copy + lsls r3, r0, #0x18 + asrs r1, r3, #0x18 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _08001ABC +_08001AB0: + ldr r0, _08001AB8 + b _08001AE0 + .align 2, 0 +_08001AB4: .4byte 0x030008F8 +_08001AB8: .4byte 0x0000FFFF +_08001ABC: + ldr r4, _08001AE8 + adds r0, r1, #0 + cmp r1, #0 + bge _08001AC6 + adds r0, #0x1f +_08001AC6: + asrs r0, r0, #5 + lsls r2, r0, #2 + adds r2, r2, r4 + lsls r0, r0, #5 + subs r0, r1, r0 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + lsls r1, r0 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + lsrs r0, r3, #0x18 +_08001AE0: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08001AE8: .4byte 0x03000938 + thumb_func_end Unused_LoadBgPalette + + thumb_func_start IsDma3ManagerBusyWithBgCopy +IsDma3ManagerBusyWithBgCopy: @ 0x08001AEC + push {r4, r5, r6, r7, lr} + movs r5, #0 + movs r7, #1 + rsbs r7, r7, #0 +_08001AF4: + adds r0, r5, #0 + cmp r5, #0 + bge _08001AFC + adds r0, #0x1f +_08001AFC: + asrs r0, r0, #5 + lsls r2, r0, #0x18 + lsls r0, r0, #5 + subs r0, r5, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08001B30 + lsrs r2, r2, #0x16 + adds r4, r2, r1 + movs r6, #1 + lsls r6, r0 + ldr r0, [r4] + ands r0, r6 + cmp r0, #0 + beq _08001B3A + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + bl CheckForSpaceForDma3Request + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, r7 + bne _08001B34 + movs r0, #1 + b _08001B42 + .align 2, 0 +_08001B30: .4byte 0x03000938 +_08001B34: + ldr r0, [r4] + bics r0, r6 + str r0, [r4] +_08001B3A: + adds r5, #1 + cmp r5, #0x7f + ble _08001AF4 + movs r0, #0 +_08001B42: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end IsDma3ManagerBusyWithBgCopy + + thumb_func_start ShowBg +ShowBg: @ 0x08001B48 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl ShowBgInternal + bl SyncBgVisibilityAndMode + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ShowBg + + thumb_func_start HideBg +HideBg: @ 0x08001B5C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl HideBgInternal + bl SyncBgVisibilityAndMode + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end HideBg + + thumb_func_start SetBgAttribute +SetBgAttribute: @ 0x08001B70 + push {r4, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r3, r2, #0x18 + subs r0, r1, #1 + cmp r0, #6 + bhi _08001C2A + lsls r0, r0, #2 + ldr r1, _08001B90 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08001B90: .4byte 0x08001B94 +_08001B94: @ jump table + .4byte _08001BB0 @ case 0 + .4byte _08001BC0 @ case 1 + .4byte _08001BD2 @ case 2 + .4byte _08001BE8 @ case 3 + .4byte _08001BFC @ case 4 + .4byte _08001C14 @ case 5 + .4byte _08001BF2 @ case 6 +_08001BB0: + movs r0, #0xff + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + adds r0, r4, #0 + adds r1, r3, #0 + b _08001C0A +_08001BC0: + movs r0, #0xff + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + adds r0, r4, #0 + movs r1, #0xff + adds r2, r3, #0 + b _08001C0C +_08001BD2: + movs r0, #0xff + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + adds r0, r4, #0 + movs r1, #0xff + movs r2, #0xff + bl SetBgControlAttributes + b _08001C2A +_08001BE8: + str r3, [sp] + movs r0, #0xff + str r0, [sp, #4] + str r0, [sp, #8] + b _08001C04 +_08001BF2: + movs r0, #0xff + str r0, [sp] + str r3, [sp, #4] + str r0, [sp, #8] + b _08001C04 +_08001BFC: + movs r0, #0xff + str r0, [sp] + str r0, [sp, #4] + str r3, [sp, #8] +_08001C04: + str r0, [sp, #0xc] + adds r0, r4, #0 + movs r1, #0xff +_08001C0A: + movs r2, #0xff +_08001C0C: + movs r3, #0xff + bl SetBgControlAttributes + b _08001C2A +_08001C14: + movs r0, #0xff + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + str r3, [sp, #0xc] + adds r0, r4, #0 + movs r1, #0xff + movs r2, #0xff + movs r3, #0xff + bl SetBgControlAttributes +_08001C2A: + add sp, #0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetBgAttribute + + thumb_func_start GetBgAttribute +GetBgAttribute: @ 0x08001C34 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + subs r0, r1, #1 + cmp r0, #9 + bhi _08001D10 + lsls r0, r0, #2 + ldr r1, _08001C50 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08001C50: .4byte 0x08001C54 +_08001C54: @ jump table + .4byte _08001C7C @ case 0 + .4byte _08001C86 @ case 1 + .4byte _08001C90 @ case 2 + .4byte _08001C9A @ case 3 + .4byte _08001CAE @ case 4 + .4byte _08001CB8 @ case 5 + .4byte _08001CA4 @ case 6 + .4byte _08001CC2 @ case 7 + .4byte _08001CF0 @ case 8 + .4byte _08001CFC @ case 9 +_08001C7C: + adds r0, r4, #0 + movs r1, #2 + bl GetBgControlAttribute + b _08001CF6 +_08001C86: + adds r0, r4, #0 + movs r1, #3 + bl GetBgControlAttribute + b _08001CF6 +_08001C90: + adds r0, r4, #0 + movs r1, #4 + bl GetBgControlAttribute + b _08001CF6 +_08001C9A: + adds r0, r4, #0 + movs r1, #5 + bl GetBgControlAttribute + b _08001CF6 +_08001CA4: + adds r0, r4, #0 + movs r1, #6 + bl GetBgControlAttribute + b _08001CF6 +_08001CAE: + adds r0, r4, #0 + movs r1, #7 + bl GetBgControlAttribute + b _08001CF6 +_08001CB8: + adds r0, r4, #0 + movs r1, #8 + bl GetBgControlAttribute + b _08001CF6 +_08001CC2: + adds r0, r4, #0 + bl GetBgType + cmp r0, #0 + beq _08001CD4 + cmp r0, #1 + beq _08001CE2 + movs r0, #0 + b _08001D12 +_08001CD4: + adds r0, r4, #0 + movs r1, #0 + bl GetBgMetricTextMode + lsls r0, r0, #0x1b + lsrs r0, r0, #0x10 + b _08001D12 +_08001CE2: + adds r0, r4, #0 + movs r1, #0 + bl GetBgMetricAffineMode + lsls r0, r0, #0x18 + lsrs r0, r0, #0x10 + b _08001D12 +_08001CF0: + adds r0, r4, #0 + bl GetBgType +_08001CF6: + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _08001D12 +_08001CFC: + ldr r0, _08001D0C + lsls r1, r4, #4 + adds r1, r1, r0 + ldrh r0, [r1] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + b _08001D12 + .align 2, 0 +_08001D0C: .4byte 0x030008F8 +_08001D10: + ldr r0, _08001D18 +_08001D12: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08001D18: .4byte 0x0000FFFF + thumb_func_end GetBgAttribute + + thumb_func_start ChangeBgX +ChangeBgX: @ 0x08001D1C + push {r4, r5, r6, lr} + adds r6, r1, #0 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + adds r0, r4, #0 + bl IsInvalidBg + cmp r0, #0 + bne _08001D40 + adds r0, r4, #0 + movs r1, #1 + bl GetBgControlAttribute + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08001D46 +_08001D40: + movs r0, #1 + rsbs r0, r0, #0 + b _08001E4C +_08001D46: + cmp r5, #1 + beq _08001D64 + cmp r5, #1 + ble _08001D52 + cmp r5, #2 + beq _08001D78 +_08001D52: + ldr r0, _08001D60 + lsls r1, r4, #4 + adds r0, #8 + adds r0, r1, r0 + str r6, [r0] + adds r5, r1, #0 + b _08001D88 + .align 2, 0 +_08001D60: .4byte 0x030008F8 +_08001D64: + ldr r0, _08001D74 + lsls r2, r4, #4 + adds r0, #8 + adds r0, r2, r0 + ldr r1, [r0] + adds r1, r1, r6 + b _08001D84 + .align 2, 0 +_08001D74: .4byte 0x030008F8 +_08001D78: + ldr r0, _08001DA0 + lsls r2, r4, #4 + adds r0, #8 + adds r0, r2, r0 + ldr r1, [r0] + subs r1, r1, r6 +_08001D84: + str r1, [r0] + adds r5, r2, #0 +_08001D88: + bl GetBgMode + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, #1 + beq _08001DC4 + cmp r4, #1 + bgt _08001DA4 + cmp r4, #0 + beq _08001DAE + b _08001E44 + .align 2, 0 +_08001DA0: .4byte 0x030008F8 +_08001DA4: + cmp r4, #2 + beq _08001DD8 + cmp r4, #3 + beq _08001E10 + b _08001E44 +_08001DAE: + ldr r0, _08001DC0 + ldr r0, [r0, #8] + lsls r0, r0, #8 + lsrs r1, r0, #0x10 + movs r0, #0x10 + bl SetGpuReg + b _08001E44 + .align 2, 0 +_08001DC0: .4byte 0x030008F8 +_08001DC4: + ldr r0, _08001DD4 + ldr r0, [r0, #0x18] + lsls r0, r0, #8 + lsrs r1, r0, #0x10 + movs r0, #0x14 + bl SetGpuReg + b _08001E44 + .align 2, 0 +_08001DD4: .4byte 0x030008F8 +_08001DD8: + cmp r0, #0 + bne _08001DF0 + ldr r0, _08001DEC + ldr r0, [r0, #0x28] + lsls r0, r0, #8 + lsrs r1, r0, #0x10 + movs r0, #0x18 + bl SetGpuReg + b _08001E44 + .align 2, 0 +_08001DEC: .4byte 0x030008F8 +_08001DF0: + ldr r0, _08001E0C + ldr r0, [r0, #0x28] + lsrs r1, r0, #0x10 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r0, #0x2a + bl SetGpuReg + movs r0, #0x28 + adds r1, r4, #0 + bl SetGpuReg + b _08001E44 + .align 2, 0 +_08001E0C: .4byte 0x030008F8 +_08001E10: + cmp r0, #0 + bne _08001E28 + ldr r0, _08001E24 + ldr r0, [r0, #0x38] + lsls r0, r0, #8 + lsrs r1, r0, #0x10 + movs r0, #0x1c + bl SetGpuReg + b _08001E44 + .align 2, 0 +_08001E24: .4byte 0x030008F8 +_08001E28: + cmp r0, #2 + bne _08001E44 + ldr r0, _08001E54 + ldr r0, [r0, #0x38] + lsrs r1, r0, #0x10 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r0, #0x3a + bl SetGpuReg + movs r0, #0x38 + adds r1, r4, #0 + bl SetGpuReg +_08001E44: + ldr r0, _08001E54 + adds r0, #8 + adds r0, r5, r0 + ldr r0, [r0] +_08001E4C: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08001E54: .4byte 0x030008F8 + thumb_func_end ChangeBgX + + thumb_func_start GetBgX +GetBgX: @ 0x08001E58 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r4, r0, #0 + bl IsInvalidBg + cmp r0, #0 + bne _08001E88 + adds r0, r4, #0 + movs r1, #1 + bl GetBgControlAttribute + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08001E88 + ldr r0, _08001E84 + lsls r1, r4, #4 + adds r0, #8 + adds r1, r1, r0 + ldr r0, [r1] + b _08001E8C + .align 2, 0 +_08001E84: .4byte 0x030008F8 +_08001E88: + movs r0, #1 + rsbs r0, r0, #0 +_08001E8C: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetBgX + + thumb_func_start ChangeBgY +ChangeBgY: @ 0x08001E94 + push {r4, r5, r6, lr} + adds r6, r1, #0 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + adds r0, r4, #0 + bl IsInvalidBg + cmp r0, #0 + bne _08001EB8 + adds r0, r4, #0 + movs r1, #1 + bl GetBgControlAttribute + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08001EBE +_08001EB8: + movs r0, #1 + rsbs r0, r0, #0 + b _08001FC4 +_08001EBE: + cmp r5, #1 + beq _08001EDC + cmp r5, #1 + ble _08001ECA + cmp r5, #2 + beq _08001EF0 +_08001ECA: + ldr r0, _08001ED8 + lsls r1, r4, #4 + adds r0, #0xc + adds r0, r1, r0 + str r6, [r0] + adds r5, r1, #0 + b _08001F00 + .align 2, 0 +_08001ED8: .4byte 0x030008F8 +_08001EDC: + ldr r0, _08001EEC + lsls r2, r4, #4 + adds r0, #0xc + adds r0, r2, r0 + ldr r1, [r0] + adds r1, r1, r6 + b _08001EFC + .align 2, 0 +_08001EEC: .4byte 0x030008F8 +_08001EF0: + ldr r0, _08001F18 + lsls r2, r4, #4 + adds r0, #0xc + adds r0, r2, r0 + ldr r1, [r0] + subs r1, r1, r6 +_08001EFC: + str r1, [r0] + adds r5, r2, #0 +_08001F00: + bl GetBgMode + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, #1 + beq _08001F3C + cmp r4, #1 + bgt _08001F1C + cmp r4, #0 + beq _08001F26 + b _08001FBC + .align 2, 0 +_08001F18: .4byte 0x030008F8 +_08001F1C: + cmp r4, #2 + beq _08001F50 + cmp r4, #3 + beq _08001F88 + b _08001FBC +_08001F26: + ldr r0, _08001F38 + ldr r0, [r0, #0xc] + lsls r0, r0, #8 + lsrs r1, r0, #0x10 + movs r0, #0x12 + bl SetGpuReg + b _08001FBC + .align 2, 0 +_08001F38: .4byte 0x030008F8 +_08001F3C: + ldr r0, _08001F4C + ldr r0, [r0, #0x1c] + lsls r0, r0, #8 + lsrs r1, r0, #0x10 + movs r0, #0x16 + bl SetGpuReg + b _08001FBC + .align 2, 0 +_08001F4C: .4byte 0x030008F8 +_08001F50: + cmp r0, #0 + bne _08001F68 + ldr r0, _08001F64 + ldr r0, [r0, #0x2c] + lsls r0, r0, #8 + lsrs r1, r0, #0x10 + movs r0, #0x1a + bl SetGpuReg + b _08001FBC + .align 2, 0 +_08001F64: .4byte 0x030008F8 +_08001F68: + ldr r0, _08001F84 + ldr r0, [r0, #0x2c] + lsrs r1, r0, #0x10 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r0, #0x2e + bl SetGpuReg + movs r0, #0x2c + adds r1, r4, #0 + bl SetGpuReg + b _08001FBC + .align 2, 0 +_08001F84: .4byte 0x030008F8 +_08001F88: + cmp r0, #0 + bne _08001FA0 + ldr r0, _08001F9C + ldr r0, [r0, #0x3c] + lsls r0, r0, #8 + lsrs r1, r0, #0x10 + movs r0, #0x1e + bl SetGpuReg + b _08001FBC + .align 2, 0 +_08001F9C: .4byte 0x030008F8 +_08001FA0: + cmp r0, #2 + bne _08001FBC + ldr r0, _08001FCC + ldr r0, [r0, #0x3c] + lsrs r1, r0, #0x10 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r0, #0x3e + bl SetGpuReg + movs r0, #0x3c + adds r1, r4, #0 + bl SetGpuReg +_08001FBC: + ldr r0, _08001FCC + adds r0, #0xc + adds r0, r5, r0 + ldr r0, [r0] +_08001FC4: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08001FCC: .4byte 0x030008F8 + thumb_func_end ChangeBgY + + thumb_func_start GetBgY +GetBgY: @ 0x08001FD0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r4, r0, #0 + bl IsInvalidBg + cmp r0, #0 + bne _08002000 + adds r0, r4, #0 + movs r1, #1 + bl GetBgControlAttribute + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08002000 + ldr r0, _08001FFC + lsls r1, r4, #4 + adds r0, #0xc + adds r1, r1, r0 + ldr r0, [r1] + b _08002004 + .align 2, 0 +_08001FFC: .4byte 0x030008F8 +_08002000: + movs r0, #1 + rsbs r0, r0, #0 +_08002004: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetBgY + + thumb_func_start SetBgAffine +SetBgAffine: @ 0x0800200C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x10 + ldr r4, [sp, #0x28] + ldr r5, [sp, #0x2c] + ldr r6, [sp, #0x30] + ldr r7, [sp, #0x34] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r7, r7, #0x10 + lsrs r7, r7, #0x10 + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + str r4, [sp] + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + str r5, [sp, #4] + lsls r6, r6, #0x10 + asrs r6, r6, #0x10 + str r6, [sp, #8] + str r7, [sp, #0xc] + bl SetBgAffineInternal + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end SetBgAffine + + thumb_func_start Unused_AdjustBgMosaic +Unused_AdjustBgMosaic: @ 0x0800204C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + movs r0, #0x4c + bl GetGpuReg + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + movs r1, #0xf + movs r3, #0xf + ands r3, r5 + lsrs r2, r0, #0x14 + ands r2, r1 + movs r0, #0xff + lsls r0, r0, #8 + ands r5, r0 + cmp r6, #6 + bhi _080020A0 + lsls r0, r6, #2 + ldr r1, _08002080 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08002080: .4byte 0x08002084 +_08002084: @ jump table + .4byte _080020A0 @ case 0 + .4byte _080020A8 @ case 1 + .4byte _080020AE @ case 2 + .4byte _080020C0 @ case 3 + .4byte _080020D6 @ case 4 + .4byte _080020DC @ case 5 + .4byte _080020EE @ case 6 +_080020A0: + movs r3, #0xf + ands r3, r4 + lsrs r2, r4, #4 + b _08002102 +_080020A8: + movs r3, #0xf + ands r3, r4 + b _08002102 +_080020AE: + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + adds r0, r0, r4 + cmp r0, #0xf + ble _080020BC + movs r3, #0xf + b _08002102 +_080020BC: + adds r0, r3, r4 + b _080020D0 +_080020C0: + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + subs r0, r0, r4 + cmp r0, #0 + bge _080020CE + movs r3, #0 + b _08002102 +_080020CE: + subs r0, r3, r4 +_080020D0: + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + b _08002102 +_080020D6: + movs r2, #0xf + ands r2, r4 + b _08002102 +_080020DC: + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + adds r0, r0, r4 + cmp r0, #0xf + ble _080020EA + movs r2, #0xf + b _08002102 +_080020EA: + adds r0, r2, r4 + b _080020FE +_080020EE: + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + subs r0, r0, r4 + cmp r0, #0 + bge _080020FC + movs r2, #0 + b _08002102 +_080020FC: + subs r0, r2, r4 +_080020FE: + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 +_08002102: + lsls r0, r2, #0x10 + asrs r0, r0, #0xc + movs r1, #0xf0 + ands r0, r1 + orrs r5, r0 + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + movs r1, #0xf + ands r0, r1 + orrs r5, r0 + lsls r0, r5, #0x10 + lsrs r5, r0, #0x10 + movs r0, #0x4c + adds r1, r5, #0 + bl SetGpuReg + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end Unused_AdjustBgMosaic + + thumb_func_start SetBgTilemapBuffer +SetBgTilemapBuffer: @ 0x0800212C + push {r4, r5, lr} + adds r5, r1, #0 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl IsInvalidBg + cmp r0, #0 + bne _08002156 + adds r0, r4, #0 + movs r1, #1 + bl GetBgControlAttribute + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08002156 + ldr r0, _0800215C + lsls r1, r4, #4 + adds r0, #4 + adds r1, r1, r0 + str r5, [r1] +_08002156: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0800215C: .4byte 0x030008F8 + thumb_func_end SetBgTilemapBuffer + + thumb_func_start UnsetBgTilemapBuffer +UnsetBgTilemapBuffer: @ 0x08002160 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl IsInvalidBg + adds r5, r0, #0 + cmp r5, #0 + bne _0800218A + adds r0, r4, #0 + movs r1, #1 + bl GetBgControlAttribute + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0800218A + ldr r0, _08002190 + lsls r1, r4, #4 + adds r0, #4 + adds r1, r1, r0 + str r5, [r1] +_0800218A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08002190: .4byte 0x030008F8 + thumb_func_end UnsetBgTilemapBuffer + + thumb_func_start GetBgTilemapBuffer +GetBgTilemapBuffer: @ 0x08002194 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r4, r0, #0 + bl IsInvalidBg + cmp r0, #0 + bne _080021C4 + adds r0, r4, #0 + movs r1, #1 + bl GetBgControlAttribute + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080021C4 + ldr r0, _080021C0 + lsls r1, r4, #4 + adds r0, #4 + adds r1, r1, r0 + ldr r0, [r1] + b _080021C6 + .align 2, 0 +_080021C0: .4byte 0x030008F8 +_080021C4: + movs r0, #0 +_080021C6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetBgTilemapBuffer + + thumb_func_start CopyToBgTilemapBuffer +CopyToBgTilemapBuffer: @ 0x080021CC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sl, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + mov sb, r4 + lsls r7, r2, #0x10 + lsrs r6, r7, #0x10 + lsls r3, r3, #0x10 + lsrs r5, r3, #0x10 + mov r8, r5 + adds r0, r4, #0 + bl IsInvalidBg + cmp r0, #0 + bne _08002234 + adds r0, r4, #0 + bl IsTileMapOutsideWram + cmp r0, #0 + bne _08002234 + cmp r6, #0 + beq _0800221C + ldr r0, _08002218 + lsls r1, r4, #4 + adds r0, #4 + adds r1, r1, r0 + lsls r0, r5, #1 + ldr r1, [r1] + adds r1, r1, r0 + lsrs r2, r7, #0x11 + mov r0, sl + bl CpuSet + b _08002234 + .align 2, 0 +_08002218: .4byte 0x030008F8 +_0800221C: + ldr r0, _08002244 + mov r2, sb + lsls r1, r2, #4 + adds r0, #4 + adds r1, r1, r0 + mov r2, r8 + lsls r0, r2, #1 + ldr r1, [r1] + adds r1, r1, r0 + mov r0, sl + bl LZ77UnCompWram +_08002234: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08002244: .4byte 0x030008F8 + thumb_func_end CopyToBgTilemapBuffer + + thumb_func_start CopyBgTilemapBufferToVram +CopyBgTilemapBufferToVram: @ 0x08002248 + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl IsInvalidBg + cmp r0, #0 + bne _080022A4 + adds r0, r4, #0 + bl IsTileMapOutsideWram + cmp r0, #0 + bne _080022A4 + adds r0, r4, #0 + bl GetBgType + cmp r0, #0 + beq _08002276 + cmp r0, #1 + beq _08002282 + movs r2, #0 + b _0800228E +_08002276: + adds r0, r4, #0 + movs r1, #0 + bl GetBgMetricTextMode + lsls r0, r0, #0x1b + b _0800228C +_08002282: + adds r0, r4, #0 + movs r1, #0 + bl GetBgMetricAffineMode + lsls r0, r0, #0x18 +_0800228C: + lsrs r2, r0, #0x10 +_0800228E: + ldr r0, _080022AC + lsls r1, r4, #4 + adds r0, #4 + adds r1, r1, r0 + ldr r1, [r1] + movs r0, #2 + str r0, [sp] + adds r0, r4, #0 + movs r3, #0 + bl LoadBgVram +_080022A4: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080022AC: .4byte 0x030008F8 + thumb_func_end CopyBgTilemapBufferToVram + + thumb_func_start CopyToBgTilemapBufferRect +CopyToBgTilemapBufferRect: @ 0x080022B0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov r8, r1 + ldr r1, [sp, #0x24] + ldr r4, [sp, #0x28] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sl, r2 + lsls r3, r3, #0x18 + lsrs r7, r3, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sb, r1 + lsls r4, r4, #0x18 + lsrs r6, r4, #0x18 + adds r0, r5, #0 + bl IsInvalidBg + cmp r0, #0 + bne _080023A0 + adds r0, r5, #0 + bl IsTileMapOutsideWram + cmp r0, #0 + bne _080023A0 + adds r0, r5, #0 + bl GetBgType + cmp r0, #0 + beq _080022FE + cmp r0, #1 + beq _0800234C + b _080023A0 +_080022FE: + mov r4, r8 + adds r3, r7, #0 + adds r0, r3, r6 + cmp r3, r0 + bge _080023A0 + mov ip, r0 + lsls r1, r5, #4 + ldr r0, _08002348 + adds r1, r1, r0 + mov r8, r1 +_08002312: + mov r2, sl + mov r1, sb + adds r0, r2, r1 + adds r7, r3, #1 + cmp r2, r0 + bge _0800233C + mov r1, r8 + ldr r6, [r1] + lsls r5, r3, #5 + adds r3, r0, #0 +_08002326: + adds r0, r5, r2 + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r1, [r4] + strh r1, [r0] + adds r4, #2 + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, r3 + blt _08002326 +_0800233C: + lsls r0, r7, #0x10 + lsrs r3, r0, #0x10 + cmp r3, ip + blt _08002312 + b _080023A0 + .align 2, 0 +_08002348: .4byte 0x030008FC +_0800234C: + mov r4, r8 + adds r0, r5, #0 + movs r1, #1 + bl GetBgMetricAffineMode + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp] + adds r3, r7, #0 + adds r0, r3, r6 + cmp r3, r0 + bge _080023A0 + mov ip, r0 + lsls r5, r5, #4 + mov r8, r5 +_0800236A: + mov r2, sl + mov r1, sb + adds r0, r2, r1 + adds r7, r3, #1 + cmp r2, r0 + bge _08002398 + ldr r6, _080023B0 + add r6, r8 + ldr r1, [sp] + adds r5, r3, #0 + muls r5, r1, r5 + adds r3, r0, #0 +_08002382: + ldr r1, [r6] + adds r0, r5, r2 + adds r1, r1, r0 + ldrb r0, [r4] + strb r0, [r1] + adds r4, #1 + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, r3 + blt _08002382 +_08002398: + lsls r0, r7, #0x10 + lsrs r3, r0, #0x10 + cmp r3, ip + blt _0800236A +_080023A0: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080023B0: .4byte 0x030008FC + thumb_func_end CopyToBgTilemapBufferRect + + thumb_func_start CopyToBgTilemapBufferRect_ChangePalette +CopyToBgTilemapBufferRect_ChangePalette: @ 0x080023B4 + push {r4, r5, r6, lr} + sub sp, #0x24 + ldr r4, [sp, #0x34] + ldr r5, [sp, #0x38] + ldr r6, [sp, #0x3c] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + str r4, [sp] + str r5, [sp, #4] + str r2, [sp, #8] + str r3, [sp, #0xc] + str r4, [sp, #0x10] + str r5, [sp, #0x14] + str r6, [sp, #0x18] + movs r2, #0 + str r2, [sp, #0x1c] + str r2, [sp, #0x20] + movs r3, #0 + bl CopyRectToBgTilemapBufferRect + add sp, #0x24 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end CopyToBgTilemapBufferRect_ChangePalette + + thumb_func_start CopyRectToBgTilemapBufferRect +CopyRectToBgTilemapBufferRect: @ 0x080023F8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x40 + str r1, [sp, #8] + ldr r1, [sp, #0x60] + ldr r4, [sp, #0x68] + ldr r5, [sp, #0x6c] + ldr r6, [sp, #0x70] + ldr r7, [sp, #0x74] + mov r8, r7 + ldr r7, [sp, #0x78] + mov sb, r7 + ldr r7, [sp, #0x7c] + mov sl, r7 + ldr r7, [sp, #0x80] + mov ip, r7 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0xc] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r3, [sp, #0x10] + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r4, [sp, #0x14] + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + str r6, [sp, #0x18] + mov r0, r8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + mov r1, sb + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp, #0x1c] + mov r2, sl + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + str r2, [sp, #0x20] + mov r0, ip + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x24] + ldr r0, [sp, #4] + bl IsInvalidBg + cmp r0, #0 + beq _0800246E + b _080025CA +_0800246E: + ldr r0, [sp, #4] + bl IsTileMapOutsideWram + cmp r0, #0 + beq _0800247A + b _080025CA +_0800247A: + ldr r0, [sp, #4] + movs r1, #4 + bl GetBgControlAttribute + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x30] + ldr r0, [sp, #4] + movs r1, #1 + bl GetBgMetricTextMode + lsls r0, r0, #0x15 + lsrs r0, r0, #0x10 + str r0, [sp, #0x28] + ldr r0, [sp, #4] + movs r1, #2 + bl GetBgMetricTextMode + lsls r0, r0, #0x15 + lsrs r0, r0, #0x10 + str r0, [sp, #0x2c] + ldr r0, [sp, #4] + bl GetBgType + cmp r0, #0 + beq _080024B4 + cmp r0, #1 + beq _08002550 + b _080025CA +_080024B4: + ldr r1, [sp, #0x10] + adds r0, r1, #0 + muls r0, r7, r0 + ldr r2, [sp, #0xc] + adds r0, r0, r2 + lsls r0, r0, #1 + ldr r1, [sp, #8] + adds r6, r1, r0 + adds r0, r5, r4 + cmp r5, r0 + blt _080024CC + b _080025CA +_080024CC: + ldr r2, [sp, #0x18] + subs r2, r7, r2 + str r2, [sp, #0x34] + str r0, [sp, #0x38] +_080024D4: + ldr r4, [sp, #0x14] + ldr r7, [sp, #0x18] + adds r0, r4, r7 + adds r1, r5, #1 + str r1, [sp, #0x3c] + cmp r4, r0 + bge _08002536 + ldr r2, [sp, #4] + lsls r0, r2, #4 + ldr r1, _0800254C + adds r0, r0, r1 + mov sl, r0 + ldr r7, [sp, #0x20] + lsls r7, r7, #0x10 + mov sb, r7 + ldr r1, [sp, #0x24] + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + mov r8, r0 +_080024FA: + ldr r2, [sp, #0x2c] + str r2, [sp] + adds r0, r4, #0 + adds r1, r5, #0 + ldr r2, [sp, #0x30] + ldr r3, [sp, #0x28] + bl GetTileMapIndexFromCoords + lsls r0, r0, #0x10 + lsrs r0, r0, #0xf + mov r7, sl + ldr r1, [r7] + adds r1, r1, r0 + mov r0, r8 + str r0, [sp] + adds r0, r6, #0 + ldr r2, [sp, #0x1c] + mov r7, sb + asrs r3, r7, #0x10 + bl CopyTileMapEntry + adds r6, #2 + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r1, [sp, #0x14] + ldr r2, [sp, #0x18] + adds r0, r1, r2 + cmp r4, r0 + blt _080024FA +_08002536: + ldr r5, [sp, #0x34] + lsls r0, r5, #1 + adds r6, r6, r0 + ldr r7, [sp, #0x3c] + lsls r0, r7, #0x10 + lsrs r5, r0, #0x10 + ldr r0, [sp, #0x38] + cmp r5, r0 + blt _080024D4 + b _080025CA + .align 2, 0 +_0800254C: .4byte 0x030008FC +_08002550: + ldr r1, [sp, #0x10] + adds r0, r1, #0 + muls r0, r7, r0 + ldr r2, [sp, #0xc] + adds r0, r0, r2 + ldr r1, [sp, #8] + adds r6, r1, r0 + ldr r0, [sp, #4] + movs r1, #1 + bl GetBgMetricAffineMode + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + adds r0, r5, r4 + cmp r5, r0 + bge _080025CA + ldr r2, [sp, #0x18] + subs r2, r7, r2 + str r2, [sp, #0x34] + str r0, [sp, #0x38] + ldr r7, _080025DC + mov sl, r7 + ldr r0, [sp, #4] + lsls r0, r0, #4 + mov r8, r0 +_08002584: + ldr r4, [sp, #0x14] + ldr r1, [sp, #0x18] + adds r0, r4, r1 + adds r2, r5, #1 + str r2, [sp, #0x3c] + cmp r4, r0 + bge _080025BA + mov r3, r8 + add r3, sl + mov r7, sb + muls r7, r5, r7 + mov ip, r7 + adds r2, r0, #0 +_0800259E: + ldr r1, [r3] + mov r5, ip + adds r0, r5, r4 + adds r1, r1, r0 + ldrb r0, [r6] + ldr r7, [sp, #0x20] + adds r0, r0, r7 + strb r0, [r1] + adds r6, #1 + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, r2 + blt _0800259E +_080025BA: + ldr r0, [sp, #0x34] + adds r6, r6, r0 + ldr r1, [sp, #0x3c] + lsls r0, r1, #0x10 + lsrs r5, r0, #0x10 + ldr r2, [sp, #0x38] + cmp r5, r2 + blt _08002584 +_080025CA: + add sp, #0x40 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080025DC: .4byte 0x030008FC + thumb_func_end CopyRectToBgTilemapBufferRect + + thumb_func_start FillBgTilemapBufferRect_Palette0 +FillBgTilemapBufferRect_Palette0: @ 0x080025E0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r4, [sp, #0x24] + ldr r5, [sp, #0x28] + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r8, r1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sl, r2 + lsls r3, r3, #0x18 + lsrs r7, r3, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov sb, r4 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + adds r0, r6, #0 + bl IsInvalidBg + cmp r0, #0 + bne _080026CC + adds r0, r6, #0 + bl IsTileMapOutsideWram + cmp r0, #0 + bne _080026CC + adds r0, r6, #0 + bl GetBgType + cmp r0, #0 + beq _08002632 + cmp r0, #1 + beq _0800267C + b _080026CC +_08002632: + adds r3, r7, #0 + adds r5, r3, r5 + cmp r3, r5 + bge _080026CC + adds r7, r5, #0 + lsls r1, r6, #4 + ldr r0, _08002678 + adds r1, r1, r0 + mov ip, r1 +_08002644: + mov r2, sl + mov r1, sb + adds r0, r2, r1 + adds r6, r3, #1 + cmp r2, r0 + bge _0800266C + mov r5, ip + ldr r4, [r5] + lsls r3, r3, #5 + adds r1, r0, #0 +_08002658: + adds r0, r3, r2 + lsls r0, r0, #1 + adds r0, r0, r4 + mov r5, r8 + strh r5, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, r1 + blt _08002658 +_0800266C: + lsls r0, r6, #0x10 + lsrs r3, r0, #0x10 + cmp r3, r7 + blt _08002644 + b _080026CC + .align 2, 0 +_08002678: .4byte 0x030008FC +_0800267C: + adds r0, r6, #0 + movs r1, #1 + bl GetBgMetricAffineMode + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp] + adds r3, r7, #0 + adds r5, r3, r5 + cmp r3, r5 + bge _080026CC + adds r7, r5, #0 + lsls r6, r6, #4 + mov ip, r6 +_08002698: + mov r2, sl + mov r1, sb + adds r0, r2, r1 + adds r6, r3, #1 + cmp r2, r0 + bge _080026C4 + ldr r5, _080026DC + add r5, ip + ldr r1, [sp] + adds r4, r3, #0 + muls r4, r1, r4 + adds r3, r0, #0 +_080026B0: + ldr r0, [r5] + adds r1, r4, r2 + adds r0, r0, r1 + mov r1, r8 + strb r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, r3 + blt _080026B0 +_080026C4: + lsls r0, r6, #0x10 + lsrs r3, r0, #0x10 + cmp r3, r7 + blt _08002698 +_080026CC: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080026DC: .4byte 0x030008FC + thumb_func_end FillBgTilemapBufferRect_Palette0 + + thumb_func_start FillBgTilemapBufferRect +FillBgTilemapBufferRect: @ 0x080026E0 + push {r4, r5, r6, lr} + sub sp, #0x10 + ldr r4, [sp, #0x20] + ldr r5, [sp, #0x24] + ldr r6, [sp, #0x28] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + str r4, [sp] + str r5, [sp, #4] + str r6, [sp, #8] + movs r4, #0 + str r4, [sp, #0xc] + bl WriteSequenceToBgTilemapBuffer + add sp, #0x10 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end FillBgTilemapBufferRect + + thumb_func_start WriteSequenceToBgTilemapBuffer +WriteSequenceToBgTilemapBuffer: @ 0x0800271C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x2c + ldr r4, [sp, #0x4c] + ldr r5, [sp, #0x50] + ldr r6, [sp, #0x54] + ldr r7, [sp, #0x58] + mov r8, r7 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + add r0, sp, #4 + strh r1, [r0] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #8] + lsls r3, r3, #0x18 + lsrs r7, r3, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov sl, r4 + lsls r5, r5, #0x18 + lsrs r4, r5, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + str r6, [sp, #0xc] + mov r0, r8 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x10] + mov r0, sb + bl IsInvalidBg + cmp r0, #0 + beq _0800276A + b _080028B0 +_0800276A: + mov r0, sb + bl IsTileMapOutsideWram + cmp r0, #0 + beq _08002776 + b _080028B0 +_08002776: + mov r0, sb + movs r1, #4 + bl GetBgControlAttribute + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x1c] + mov r0, sb + movs r1, #1 + bl GetBgMetricTextMode + lsls r0, r0, #0x15 + lsrs r0, r0, #0x10 + str r0, [sp, #0x14] + mov r0, sb + movs r1, #2 + bl GetBgMetricTextMode + lsls r0, r0, #0x15 + lsrs r0, r0, #0x10 + str r0, [sp, #0x18] + mov r0, sb + bl GetBgType + cmp r0, #0 + beq _080027B0 + cmp r0, #1 + beq _08002838 + b _080028B0 +_080027B0: + adds r5, r7, #0 + adds r0, r5, r4 + cmp r5, r0 + bge _080028B0 + str r0, [sp, #0x24] + add r7, sp, #4 +_080027BC: + ldr r4, [sp, #8] + mov r1, sl + adds r0, r4, r1 + adds r2, r5, #1 + mov r8, r2 + cmp r4, r0 + bge _08002820 + mov r3, sb + lsls r1, r3, #4 + ldr r0, _08002830 + adds r6, r1, r0 +_080027D2: + ldr r0, [sp, #0x18] + str r0, [sp] + adds r0, r4, #0 + adds r1, r5, #0 + ldr r2, [sp, #0x1c] + ldr r3, [sp, #0x14] + bl GetTileMapIndexFromCoords + lsls r0, r0, #0x10 + lsrs r0, r0, #0xf + ldr r1, [r6] + adds r1, r1, r0 + movs r0, #0 + str r0, [sp] + add r0, sp, #4 + ldr r2, [sp, #0xc] + movs r3, #0 + bl CopyTileMapEntry + ldrh r0, [r7] + movs r2, #0xfc + lsls r2, r2, #8 + adds r1, r2, #0 + adds r2, r0, #0 + ands r2, r1 + ldr r3, [sp, #0x10] + adds r0, r0, r3 + ldr r3, _08002834 + adds r1, r3, #0 + ands r0, r1 + adds r2, r2, r0 + strh r2, [r7] + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, [sp, #8] + add r0, sl + cmp r4, r0 + blt _080027D2 +_08002820: + mov r1, r8 + lsls r0, r1, #0x10 + lsrs r5, r0, #0x10 + ldr r2, [sp, #0x24] + cmp r5, r2 + blt _080027BC + b _080028B0 + .align 2, 0 +_08002830: .4byte 0x030008FC +_08002834: .4byte 0x000003FF +_08002838: + mov r0, sb + movs r1, #1 + bl GetBgMetricAffineMode + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x20] + adds r5, r7, #0 + adds r0, r5, r4 + cmp r5, r0 + bge _080028B0 + str r0, [sp, #0x24] + mov r3, sb + lsls r3, r3, #4 + mov ip, r3 +_08002856: + ldr r4, [sp, #8] + mov r7, sl + adds r0, r4, r7 + adds r1, r5, #1 + mov r8, r1 + cmp r4, r0 + bge _080028A4 + ldr r2, _080028C0 + add r2, ip + str r2, [sp, #0x28] + ldr r7, [sp, #0x20] + adds r3, r5, #0 + muls r3, r7, r3 + add r2, sp, #4 + movs r1, #0xfc + lsls r1, r1, #8 + mov sb, r1 + ldr r7, _080028C4 + adds r5, r7, #0 + adds r6, r0, #0 +_0800287E: + ldr r0, [sp, #0x28] + ldr r1, [r0] + adds r0, r3, r4 + adds r1, r1, r0 + ldrh r0, [r2] + strb r0, [r1] + ldrh r0, [r2] + mov r1, sb + ands r1, r0 + ldr r7, [sp, #0x10] + adds r0, r0, r7 + ands r0, r5 + adds r1, r1, r0 + strh r1, [r2] + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, r6 + blt _0800287E +_080028A4: + mov r1, r8 + lsls r0, r1, #0x10 + lsrs r5, r0, #0x10 + ldr r2, [sp, #0x24] + cmp r5, r2 + blt _08002856 +_080028B0: + add sp, #0x2c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080028C0: .4byte 0x030008FC +_080028C4: .4byte 0x000003FF + thumb_func_end WriteSequenceToBgTilemapBuffer + + thumb_func_start GetBgMetricTextMode +GetBgMetricTextMode: @ 0x080028C8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + adds r5, r4, #0 + movs r1, #4 + bl GetBgControlAttribute + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, #1 + beq _08002908 + cmp r4, #1 + bgt _080028EC + cmp r4, #0 + beq _080028F2 + b _0800292E +_080028EC: + cmp r5, #2 + beq _0800291A + b _0800292E +_080028F2: + cmp r0, #2 + bgt _08002900 + cmp r0, #1 + bge _0800292A +_080028FA: + cmp r0, #0 + beq _08002922 + b _0800292E +_08002900: + cmp r0, #3 + bne _0800292E + movs r0, #4 + b _08002930 +_08002908: + cmp r0, #1 + beq _0800292A + cmp r0, #1 + ble _080028FA + cmp r0, #2 + beq _08002922 + cmp r0, #3 + bne _0800292E + b _0800292A +_0800291A: + cmp r0, #0 + blt _0800292E + cmp r0, #1 + bgt _08002926 +_08002922: + movs r0, #1 + b _08002930 +_08002926: + cmp r0, #3 + bgt _0800292E +_0800292A: + movs r0, #2 + b _08002930 +_0800292E: + movs r0, #0 +_08002930: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetBgMetricTextMode + + thumb_func_start GetBgMetricAffineMode +GetBgMetricAffineMode: @ 0x08002938 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + movs r1, #4 + bl GetBgControlAttribute + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r0, r1, #0 + cmp r4, #0 + beq _08002960 + cmp r4, #0 + blt _08002988 + cmp r4, #2 + bgt _08002988 + movs r0, #0x10 + lsls r0, r1 + b _0800298A +_08002960: + cmp r1, #1 + beq _0800297C + cmp r1, #1 + bgt _0800296E + cmp r1, #0 + beq _08002978 + b _08002988 +_0800296E: + cmp r0, #2 + beq _08002980 + cmp r0, #3 + beq _08002984 + b _08002988 +_08002978: + movs r0, #1 + b _0800298A +_0800297C: + movs r0, #4 + b _0800298A +_08002980: + movs r0, #0x10 + b _0800298A +_08002984: + movs r0, #0x40 + b _0800298A +_08002988: + movs r0, #0 +_0800298A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetBgMetricAffineMode + + thumb_func_start GetTileMapIndexFromCoords +GetTileMapIndexFromCoords: @ 0x08002990 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [sp, #8] + subs r3, #1 + ands r4, r3 + subs r0, #1 + ands r1, r0 + cmp r2, #1 + beq _080029B4 + cmp r2, #1 + ble _080029BC + cmp r2, #2 + beq _080029BC + cmp r2, #3 + bne _080029BC + cmp r1, #0x1f + ble _080029B4 + adds r1, #0x20 +_080029B4: + cmp r4, #0x1f + ble _080029BC + subs r4, #0x20 + adds r1, #0x20 +_080029BC: + lsls r0, r1, #5 + adds r0, r0, r4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetTileMapIndexFromCoords + + thumb_func_start CopyTileMapEntry +CopyTileMapEntry: @ 0x080029C8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r5, [sp, #0x10] + cmp r2, #0x10 + beq _080029F0 + cmp r2, #0x10 + bgt _08002A10 + cmp r2, #0 + blt _08002A10 + ldrh r0, [r4] + adds r0, r0, r3 + ldr r3, _080029EC + adds r1, r3, #0 + ands r0, r1 + adds r1, r2, r5 + lsls r1, r1, #0xc + b _08002A16 + .align 2, 0 +_080029EC: .4byte 0x00000FFF +_080029F0: + ldrh r1, [r6] + movs r0, #0xfc + lsls r0, r0, #8 + ands r1, r0 + lsls r2, r5, #0xc + adds r2, r1, r2 + ldrh r0, [r4] + adds r0, r0, r3 + ldr r3, _08002A0C + adds r1, r3, #0 + ands r0, r1 + orrs r0, r2 + b _08002A18 + .align 2, 0 +_08002A0C: .4byte 0x000003FF +_08002A10: + ldrh r0, [r4] + adds r0, r0, r3 + lsls r1, r5, #0xc +_08002A16: + adds r0, r0, r1 +_08002A18: + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + strh r1, [r6] + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end CopyTileMapEntry + + thumb_func_start GetBgType +GetBgType: @ 0x08002A24 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r5, r4, #0 + bl GetBgMode + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, #2 + beq _08002A52 + cmp r4, #2 + ble _08002A42 + cmp r4, #3 + beq _08002A62 + b _08002A6A +_08002A42: + cmp r5, #0 + blt _08002A6A + cmp r0, #1 + bgt _08002A6A + cmp r0, #0 + blt _08002A6A +_08002A4E: + movs r0, #0 + b _08002A6C +_08002A52: + cmp r0, #0 + beq _08002A4E + cmp r0, #0 + blt _08002A6A + cmp r0, #2 + bgt _08002A6A +_08002A5E: + movs r0, #1 + b _08002A6C +_08002A62: + cmp r0, #0 + beq _08002A4E + cmp r0, #2 + beq _08002A5E +_08002A6A: + ldr r0, _08002A74 +_08002A6C: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08002A74: .4byte 0x0000FFFF + thumb_func_end GetBgType + + thumb_func_start IsInvalidBg +IsInvalidBg: @ 0x08002A78 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bhi _08002A86 + movs r0, #0 + b _08002A88 +_08002A86: + movs r0, #1 +_08002A88: + pop {r1} + bx r1 + thumb_func_end IsInvalidBg + + thumb_func_start IsTileMapOutsideWram +IsTileMapOutsideWram: @ 0x08002A8C + push {lr} + lsls r0, r0, #0x18 + ldr r1, _08002AA8 + lsrs r0, r0, #0x14 + adds r1, #4 + adds r0, r0, r1 + ldr r1, [r0] + ldr r0, _08002AAC + cmp r1, r0 + bhi _08002AB0 + cmp r1, #0 + beq _08002AB0 + movs r0, #0 + b _08002AB2 + .align 2, 0 +_08002AA8: .4byte 0x030008F8 +_08002AAC: .4byte 0x03008000 +_08002AB0: + movs r0, #1 +_08002AB2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsTileMapOutsideWram + diff --git a/asm/bike.s b/asm/bike.s new file mode 100644 index 0000000..bdb2453 --- /dev/null +++ b/asm/bike.s @@ -0,0 +1,2296 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start MovePlayerOnBike +MovePlayerOnBike: @ 0x081199B4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldr r0, _081199D8 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081199DC + adds r0, r3, #0 + adds r1, r4, #0 + bl MovePlayerOnMachBike + b _081199E4 + .align 2, 0 +_081199D8: .4byte 0x02037230 +_081199DC: + adds r0, r3, #0 + adds r1, r4, #0 + bl MovePlayerOnAcroBike +_081199E4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end MovePlayerOnBike + + thumb_func_start MovePlayerOnMachBike +MovePlayerOnMachBike: @ 0x081199EC + push {r4, lr} + sub sp, #4 + mov r1, sp + strb r0, [r1] + ldr r4, _08119A18 + mov r0, sp + bl GetMachBikeTransition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r0, r0, r4 + mov r1, sp + ldrb r1, [r1] + ldr r2, [r0] + adds r0, r1, #0 + bl _call_via_r2 + add sp, #4 + thumb_func_end MovePlayerOnMachBike + + thumb_func_start AcroBikeTransition_FaceDirection +AcroBikeTransition_FaceDirection: @ 0x08119A10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08119A18: .4byte 0x08573030 + thumb_func_end AcroBikeTransition_FaceDirection + + thumb_func_start GetMachBikeTransition +GetMachBikeTransition: @ 0x08119A1C + push {r4, lr} + adds r4, r0, #0 + bl GetPlayerMovementDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r3, r0, #0 + ldrb r1, [r4] + cmp r1, #0 + bne _08119A44 + strb r0, [r4] + ldr r2, _08119A40 + ldrb r0, [r2, #0xb] + cmp r0, #0 + bne _08119A58 + strb r1, [r2, #2] + movs r0, #0 + b _08119A6C + .align 2, 0 +_08119A40: .4byte 0x02037230 +_08119A44: + ldr r2, _08119A60 + cmp r1, r3 + beq _08119A68 + ldrb r0, [r2, #2] + cmp r0, #2 + beq _08119A68 + ldrb r0, [r2, #0xb] + cmp r0, #0 + beq _08119A64 + strb r3, [r4] +_08119A58: + movs r0, #2 + strb r0, [r2, #2] + movs r0, #3 + b _08119A6C + .align 2, 0 +_08119A60: .4byte 0x02037230 +_08119A64: + movs r0, #1 + b _08119A6A +_08119A68: + movs r0, #2 +_08119A6A: + strb r0, [r2, #2] +_08119A6C: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetMachBikeTransition + + thumb_func_start MachBikeTransition_FaceDirection +MachBikeTransition_FaceDirection: @ 0x08119A74 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl PlayerFaceDirection + bl Bike_SetBikeStill + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end MachBikeTransition_FaceDirection + + thumb_func_start MachBikeTransition_TurnDirection +MachBikeTransition_TurnDirection: @ 0x08119A88 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _08119AB8 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08119ABC + adds r4, r0, r1 + ldrb r1, [r4, #0x1e] + adds r0, r5, #0 + bl CanBikeFaceDirOnMetatile + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08119AC0 + adds r0, r5, #0 + bl PlayerTurnInPlace + bl Bike_SetBikeStill + b _08119ACA + .align 2, 0 +_08119AB8: .4byte 0x02037230 +_08119ABC: .4byte 0x02036FF0 +_08119AC0: + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl MachBikeTransition_FaceDirection +_08119ACA: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end MachBikeTransition_TurnDirection + + thumb_func_start MachBikeTransition_TrySpeedUp +MachBikeTransition_TrySpeedUp: @ 0x08119AD0 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r7, r5, #0 + ldr r6, _08119B04 + ldrb r1, [r6, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08119B08 + adds r4, r0, r1 + ldrb r1, [r4, #0x1e] + adds r0, r5, #0 + bl CanBikeFaceDirOnMetatile + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08119B16 + ldrb r0, [r6, #0xb] + cmp r0, #0 + beq _08119B0C + ldrb r0, [r4, #0x18] + lsrs r0, r0, #4 + bl MachBikeTransition_TrySlowDown + b _08119B8A + .align 2, 0 +_08119B04: .4byte 0x02037230 +_08119B08: .4byte 0x02036FF0 +_08119B0C: + ldrb r0, [r4, #0x18] + lsrs r0, r0, #4 + bl MachBikeTransition_FaceDirection + b _08119B8A +_08119B16: + adds r0, r5, #0 + bl get_some_collision + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r1, #0xff + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + cmp r0, #0xa + bhi _08119B66 + cmp r4, #6 + bne _08119B38 + adds r0, r5, #0 + bl PlayerJumpLedge + b _08119B8A +_08119B38: + bl Bike_SetBikeStill + cmp r4, #4 + bne _08119B54 + adds r0, r5, #0 + bl IsPlayerCollidingWithFarawayIslandMew + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08119B54 + adds r0, r5, #0 + bl PlayerOnBikeCollideWithFarawayIslandMew + b _08119B8A +_08119B54: + subs r0, r4, #5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _08119B8A + adds r0, r7, #0 + bl PlayerOnBikeCollide + b _08119B8A +_08119B66: + ldr r1, _08119B90 + ldrb r0, [r6, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r7, #0 + bl _call_via_r1 + ldrb r2, [r6, #0xa] + lsls r0, r2, #0x18 + lsrs r1, r0, #0x18 + lsrs r0, r0, #0x19 + adds r0, r2, r0 + strb r0, [r6, #0xb] + cmp r1, #1 + bhi _08119B8A + adds r0, r2, #1 + strb r0, [r6, #0xa] +_08119B8A: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08119B90: .4byte 0x08573040 + thumb_func_end MachBikeTransition_TrySpeedUp + + thumb_func_start MachBikeTransition_TrySlowDown +MachBikeTransition_TrySlowDown: @ 0x08119B94 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r7, r5, #0 + ldr r6, _08119BCC + ldrb r0, [r6, #0xb] + cmp r0, #0 + beq _08119BAA + subs r0, #1 + strb r0, [r6, #0xb] + strb r0, [r6, #0xa] +_08119BAA: + adds r0, r5, #0 + bl get_some_collision + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r1, #0xff + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + cmp r0, #0xa + bhi _08119BFE + cmp r4, #6 + bne _08119BD0 + adds r0, r5, #0 + bl PlayerJumpLedge + b _08119C0E + .align 2, 0 +_08119BCC: .4byte 0x02037230 +_08119BD0: + bl Bike_SetBikeStill + cmp r4, #4 + bne _08119BEC + adds r0, r5, #0 + bl IsPlayerCollidingWithFarawayIslandMew + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08119BEC + adds r0, r5, #0 + bl PlayerOnBikeCollideWithFarawayIslandMew + b _08119C0E +_08119BEC: + subs r0, r4, #5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _08119C0E + adds r0, r7, #0 + bl PlayerOnBikeCollide + b _08119C0E +_08119BFE: + ldr r0, _08119C14 + ldrb r1, [r6, #0xa] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r7, #0 + bl _call_via_r1 +_08119C0E: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08119C14: .4byte 0x08573040 + thumb_func_end MachBikeTransition_TrySlowDown + + thumb_func_start MovePlayerOnAcroBike +MovePlayerOnAcroBike: @ 0x08119C18 + push {r4, lr} + sub sp, #4 + mov r3, sp + strb r0, [r3] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldr r4, _08119C4C + mov r0, sp + bl CheckMovementInputAcroBike + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r0, r0, r4 + mov r1, sp + ldrb r1, [r1] + ldr r2, [r0] + adds r0, r1, #0 + bl _call_via_r2 + add sp, #4 + thumb_func_end MovePlayerOnAcroBike + + thumb_func_start sub_08119C44 +sub_08119C44: @ 0x08119C44 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08119C4C: .4byte 0x0857304C + thumb_func_end sub_08119C44 + + thumb_func_start CheckMovementInputAcroBike +CheckMovementInputAcroBike: @ 0x08119C50 + push {r4, lr} + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldr r4, _08119C74 + ldr r3, _08119C78 + ldrb r3, [r3, #8] + lsls r3, r3, #2 + adds r3, r3, r4 + ldr r3, [r3] + bl _call_via_r3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08119C74: .4byte 0x08573080 +_08119C78: .4byte 0x02037230 + thumb_func_end CheckMovementInputAcroBike + + thumb_func_start AcroBikeHandleInputNormal +AcroBikeHandleInputNormal: @ 0x08119C7C + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r5, r2, #0x10 + bl GetPlayerMovementDirection + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r2, _08119CB0 + movs r0, #0 + strb r0, [r2, #0xa] + ldrb r1, [r4] + cmp r1, #0 + bne _08119CBC + movs r0, #2 + ands r0, r6 + cmp r0, #0 + beq _08119CB4 + strb r3, [r4] + strb r1, [r2, #2] + movs r0, #2 + strb r0, [r2, #8] + movs r0, #3 + b _08119D10 + .align 2, 0 +_08119CB0: .4byte 0x02037230 +_08119CB4: + strb r3, [r4] + strb r1, [r2, #2] + movs r0, #0 + b _08119D10 +_08119CBC: + cmp r1, r3 + bne _08119CE2 + movs r0, #2 + ands r0, r5 + cmp r0, #0 + beq _08119CDA + ldrb r0, [r2, #0xb] + cmp r0, #0 + bne _08119CDA + adds r0, #1 + strb r0, [r2, #0xb] + movs r0, #4 + strb r0, [r2, #8] + movs r0, #0xb + b _08119D10 +_08119CDA: + ldrb r0, [r4] + ldr r2, _08119D08 + cmp r0, r3 + beq _08119D0C +_08119CE2: + ldr r0, _08119D08 + ldrb r1, [r0, #2] + adds r2, r0, #0 + cmp r1, #2 + beq _08119D0C + movs r1, #0 + movs r0, #1 + strb r0, [r2, #8] + ldrb r0, [r4] + strb r0, [r2, #9] + strb r1, [r2, #2] + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r5, #0 + bl CheckMovementInputAcroBike + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _08119D10 + .align 2, 0 +_08119D08: .4byte 0x02037230 +_08119D0C: + movs r0, #2 + strb r0, [r2, #2] +_08119D10: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end AcroBikeHandleInputNormal + + thumb_func_start AcroBikeHandleInputTurning +AcroBikeHandleInputTurning: @ 0x08119D18 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r4, _08119D40 + ldrb r0, [r4, #9] + strb r0, [r5] + ldrb r0, [r4, #0xa] + adds r0, #1 + strb r0, [r4, #0xa] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #6 + bls _08119D44 + movs r0, #1 + strb r0, [r4, #2] + movs r0, #0 + strb r0, [r4, #8] + bl Bike_SetBikeStill + movs r0, #1 + b _08119D8A + .align 2, 0 +_08119D40: .4byte 0x02037230 +_08119D44: + bl GetPlayerMovementDirection + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + bl AcroBike_GetJumpDirection + ldrb r1, [r5] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r1, r0 + bne _08119D86 + bl Bike_SetBikeStill + movs r0, #1 + strb r0, [r4, #0xb] + adds r0, r6, #0 + bl GetOppositeDirection + ldrb r1, [r5] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r1, r0 + bne _08119D7A + movs r0, #6 + strb r0, [r4, #8] + movs r0, #9 + b _08119D8A +_08119D7A: + movs r0, #2 + strb r0, [r4, #2] + movs r0, #5 + strb r0, [r4, #8] + movs r0, #8 + b _08119D8A +_08119D86: + strb r6, [r5] + movs r0, #0 +_08119D8A: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end AcroBikeHandleInputTurning + + thumb_func_start AcroBikeHandleInputWheelieStanding +AcroBikeHandleInputWheelieStanding: @ 0x08119D90 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + lsls r4, r2, #0x10 + lsrs r4, r4, #0x10 + bl GetPlayerMovementDirection + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r5, _08119DDC + ldrb r1, [r5, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08119DE0 + adds r1, r0, r1 + movs r0, #0 + strb r0, [r5, #2] + movs r0, #2 + ands r4, r0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + cmp r4, #0 + bne _08119DE4 + strb r4, [r5, #0xa] + ldrb r0, [r1, #0x1e] + bl MetatileBehavior_IsBumpySlope + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _08119DEA + strb r6, [r7] + strb r0, [r5, #8] + bl Bike_SetBikeStill + movs r0, #4 + b _08119E28 + .align 2, 0 +_08119DDC: .4byte 0x02037230 +_08119DE0: .4byte 0x02036FF0 +_08119DE4: + ldrb r0, [r5, #0xa] + adds r0, #1 + strb r0, [r5, #0xa] +_08119DEA: + ldr r1, _08119E00 + ldrb r0, [r1, #0xa] + cmp r0, #0x27 + bls _08119E04 + strb r6, [r7] + movs r0, #3 + strb r0, [r1, #8] + bl Bike_SetBikeStill + movs r0, #6 + b _08119E28 + .align 2, 0 +_08119E00: .4byte 0x02037230 +_08119E04: + ldrb r0, [r7] + cmp r0, r6 + bne _08119E1A + movs r0, #2 + strb r0, [r1, #2] + movs r0, #4 + strb r0, [r1, #8] + bl Bike_SetBikeStill + movs r0, #0xa + b _08119E28 +_08119E1A: + cmp r0, #0 + beq _08119E24 + movs r0, #1 + strb r0, [r1, #2] + b _08119E26 +_08119E24: + strb r6, [r7] +_08119E26: + movs r0, #5 +_08119E28: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end AcroBikeHandleInputWheelieStanding + + thumb_func_start AcroBikeHandleInputBunnyHop +AcroBikeHandleInputBunnyHop: @ 0x08119E30 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sb, r1 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + mov r8, r2 + bl GetPlayerMovementDirection + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r2, r5, #0 + ldr r4, _08119E90 + ldrb r1, [r4, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08119E94 + adds r7, r0, r1 + movs r0, #2 + mov r1, r8 + ands r0, r1 + cmp r0, #0 + bne _08119EA2 + bl Bike_SetBikeStill + ldrb r0, [r7, #0x1e] + bl MetatileBehavior_IsBumpySlope + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _08119E98 + movs r0, #2 + strb r0, [r4, #8] + adds r0, r6, #0 + mov r1, sb + mov r2, r8 + bl CheckMovementInputAcroBike + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _08119EC6 + .align 2, 0 +_08119E90: .4byte 0x02037230 +_08119E94: .4byte 0x02036FF0 +_08119E98: + strb r5, [r6] + strb r0, [r4, #2] + strb r0, [r4, #8] + movs r0, #4 + b _08119EC6 +_08119EA2: + ldrb r0, [r6] + cmp r0, #0 + bne _08119EAC + strb r5, [r6] + b _08119EB8 +_08119EAC: + cmp r0, r2 + beq _08119EBE + ldrb r0, [r4, #2] + cmp r0, #2 + beq _08119EBE + movs r0, #1 +_08119EB8: + strb r0, [r4, #2] + movs r0, #6 + b _08119EC6 +_08119EBE: + ldr r1, _08119ED4 + movs r0, #2 + strb r0, [r1, #2] + movs r0, #7 +_08119EC6: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08119ED4: .4byte 0x02037230 + thumb_func_end AcroBikeHandleInputBunnyHop + + thumb_func_start AcroBikeHandleInputWheelieMoving +AcroBikeHandleInputWheelieMoving: @ 0x08119ED8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r6, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sl, r1 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + mov r8, r2 + bl GetPlayerFacingDirection + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r2, r5, #0 + ldr r4, _08119F34 + ldrb r1, [r4, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08119F38 + adds r7, r0, r1 + movs r0, #2 + mov sb, r0 + movs r0, #2 + mov r1, r8 + ands r0, r1 + cmp r0, #0 + bne _08119F70 + bl Bike_SetBikeStill + ldrb r0, [r7, #0x1e] + bl MetatileBehavior_IsBumpySlope + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _08119F5C + strb r1, [r4, #8] + ldrb r0, [r6] + cmp r0, #0 + bne _08119F3C + strb r5, [r6] + b _08119F46 + .align 2, 0 +_08119F34: .4byte 0x02037230 +_08119F38: .4byte 0x02036FF0 +_08119F3C: + cmp r0, r5 + beq _08119F4C + ldrb r0, [r4, #2] + cmp r0, #2 + beq _08119F4C +_08119F46: + strb r1, [r4, #2] + movs r0, #4 + b _08119FA0 +_08119F4C: + ldr r1, _08119F58 + movs r0, #2 + strb r0, [r1, #2] + movs r0, #0xc + b _08119FA0 + .align 2, 0 +_08119F58: .4byte 0x02037230 +_08119F5C: + mov r0, sb + strb r0, [r4, #8] + adds r0, r6, #0 + mov r1, sl + mov r2, r8 + bl CheckMovementInputAcroBike + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _08119FA0 +_08119F70: + ldrb r0, [r6] + cmp r0, #0 + bne _08119F86 + strb r5, [r6] + mov r1, sb + strb r1, [r4, #8] + strb r0, [r4, #2] + bl Bike_SetBikeStill + movs r0, #5 + b _08119FA0 +_08119F86: + cmp r2, r0 + beq _08119F98 + ldrb r0, [r4, #2] + cmp r0, #2 + beq _08119F98 + movs r0, #0 + strb r0, [r4, #2] + movs r0, #5 + b _08119FA0 +_08119F98: + ldr r1, _08119FB0 + movs r0, #2 + strb r0, [r1, #2] + movs r0, #0xa +_08119FA0: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08119FB0: .4byte 0x02037230 + thumb_func_end AcroBikeHandleInputWheelieMoving + + thumb_func_start AcroBikeHandleInputSidewaysJump +AcroBikeHandleInputSidewaysJump: @ 0x08119FB4 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + mov r8, r0 + adds r4, r1, #0 + adds r5, r2, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + ldr r6, _0811A008 + ldrb r1, [r6, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0811A00C + adds r0, r0, r1 + ldrb r2, [r0, #1] + movs r1, #3 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0, #1] + ldrb r1, [r0, #0x18] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + bl SetEventObjectDirection + movs r0, #0 + strb r0, [r6, #8] + mov r0, r8 + adds r1, r4, #0 + adds r2, r5, #0 + bl CheckMovementInputAcroBike + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0811A008: .4byte 0x02037230 +_0811A00C: .4byte 0x02036FF0 + thumb_func_end AcroBikeHandleInputSidewaysJump + + thumb_func_start AcroBikeHandleInputTurnJump +AcroBikeHandleInputTurnJump: @ 0x0811A010 + push {r4, lr} + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldr r4, _0811A030 + movs r3, #0 + strb r3, [r4, #8] + bl CheckMovementInputAcroBike + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0811A030: .4byte 0x02037230 + thumb_func_end AcroBikeHandleInputTurnJump + + thumb_func_start AcroBikeTransition_TurnJump +AcroBikeTransition_TurnJump: @ 0x0811A034 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl PlayerFaceDirection + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AcroBikeTransition_TurnJump + + thumb_func_start AcroBikeTransition_TurnDirection +AcroBikeTransition_TurnDirection: @ 0x0811A044 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0811A078 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0811A07C + adds r5, r0, r1 + ldrb r1, [r5, #0x1e] + adds r0, r4, #0 + bl CanBikeFaceDirOnMetatile + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811A06A + ldrb r0, [r5, #0x18] + lsrs r4, r0, #4 +_0811A06A: + adds r0, r4, #0 + bl PlayerFaceDirection + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0811A078: .4byte 0x02037230 +_0811A07C: .4byte 0x02036FF0 + thumb_func_end AcroBikeTransition_TurnDirection + + thumb_func_start AcroBikeTransition_Moving +AcroBikeTransition_Moving: @ 0x0811A080 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r6, r5, #0 + ldr r0, _0811A0B0 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0811A0B4 + adds r4, r0, r1 + ldrb r1, [r4, #0x1e] + adds r0, r5, #0 + bl CanBikeFaceDirOnMetatile + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811A0B8 + ldrb r0, [r4, #0x18] + lsrs r0, r0, #4 + bl AcroBikeTransition_TurnJump + b _0811A10A + .align 2, 0 +_0811A0B0: .4byte 0x02037230 +_0811A0B4: .4byte 0x02036FF0 +_0811A0B8: + adds r0, r5, #0 + bl get_some_collision + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r1, #0xff + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + cmp r0, #0xa + bhi _0811A104 + cmp r4, #6 + bne _0811A0DA + adds r0, r5, #0 + bl PlayerJumpLedge + b _0811A10A +_0811A0DA: + cmp r4, #4 + bne _0811A0F2 + adds r0, r5, #0 + bl IsPlayerCollidingWithFarawayIslandMew + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0811A0F2 + adds r0, r5, #0 + bl PlayerOnBikeCollideWithFarawayIslandMew + b _0811A10A +_0811A0F2: + subs r0, r4, #5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _0811A10A + adds r0, r6, #0 + bl PlayerOnBikeCollide + b _0811A10A +_0811A104: + adds r0, r6, #0 + bl PlayerRideWaterCurrent +_0811A10A: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end AcroBikeTransition_Moving + + thumb_func_start AcroBikeTransition_NormalToWheelie +AcroBikeTransition_NormalToWheelie: @ 0x0811A110 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0811A144 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0811A148 + adds r5, r0, r1 + ldrb r1, [r5, #0x1e] + adds r0, r4, #0 + bl CanBikeFaceDirOnMetatile + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811A136 + ldrb r0, [r5, #0x18] + lsrs r4, r0, #4 +_0811A136: + adds r0, r4, #0 + bl PlayerStartWheelie + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0811A144: .4byte 0x02037230 +_0811A148: .4byte 0x02036FF0 + thumb_func_end AcroBikeTransition_NormalToWheelie + + thumb_func_start AcroBikeTransition_WheelieToNormal +AcroBikeTransition_WheelieToNormal: @ 0x0811A14C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0811A180 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0811A184 + adds r5, r0, r1 + ldrb r1, [r5, #0x1e] + adds r0, r4, #0 + bl CanBikeFaceDirOnMetatile + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811A172 + ldrb r0, [r5, #0x18] + lsrs r4, r0, #4 +_0811A172: + adds r0, r4, #0 + bl PlayerEndWheelie + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0811A180: .4byte 0x02037230 +_0811A184: .4byte 0x02036FF0 + thumb_func_end AcroBikeTransition_WheelieToNormal + + thumb_func_start AcroBikeTransition_WheelieIdle +AcroBikeTransition_WheelieIdle: @ 0x0811A188 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0811A1BC + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0811A1C0 + adds r5, r0, r1 + ldrb r1, [r5, #0x1e] + adds r0, r4, #0 + bl CanBikeFaceDirOnMetatile + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811A1AE + ldrb r0, [r5, #0x18] + lsrs r4, r0, #4 +_0811A1AE: + adds r0, r4, #0 + bl PlayerIdleWheelie + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0811A1BC: .4byte 0x02037230 +_0811A1C0: .4byte 0x02036FF0 + thumb_func_end AcroBikeTransition_WheelieIdle + + thumb_func_start AcroBikeTransition_WheelieHoppingStanding +AcroBikeTransition_WheelieHoppingStanding: @ 0x0811A1C4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0811A1F8 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0811A1FC + adds r5, r0, r1 + ldrb r1, [r5, #0x1e] + adds r0, r4, #0 + bl CanBikeFaceDirOnMetatile + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811A1EA + ldrb r0, [r5, #0x18] + lsrs r4, r0, #4 +_0811A1EA: + adds r0, r4, #0 + bl PlayerStandingHoppingWheelie + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0811A1F8: .4byte 0x02037230 +_0811A1FC: .4byte 0x02036FF0 + thumb_func_end AcroBikeTransition_WheelieHoppingStanding + + thumb_func_start AcroBikeTransition_WheelieHoppingMoving +AcroBikeTransition_WheelieHoppingMoving: @ 0x0811A200 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0811A22C + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0811A230 + adds r5, r0, r1 + ldrb r1, [r5, #0x1e] + adds r0, r4, #0 + bl CanBikeFaceDirOnMetatile + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811A234 + ldrb r0, [r5, #0x18] + lsrs r0, r0, #4 + bl AcroBikeTransition_WheelieHoppingStanding + b _0811A26E + .align 2, 0 +_0811A22C: .4byte 0x02037230 +_0811A230: .4byte 0x02036FF0 +_0811A234: + adds r0, r4, #0 + bl get_some_collision + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _0811A268 + cmp r1, #9 + beq _0811A268 + cmp r1, #6 + bne _0811A252 + adds r0, r4, #0 + bl PlayerLedgeHoppingWheelie + b _0811A26E +_0811A252: + subs r0, r1, #5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _0811A26E + cmp r1, #0xb + bhi _0811A268 + adds r0, r4, #0 + bl AcroBikeTransition_WheelieHoppingStanding + b _0811A26E +_0811A268: + adds r0, r4, #0 + bl PlayerMovingHoppingWheelie +_0811A26E: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end AcroBikeTransition_WheelieHoppingMoving + + thumb_func_start AcroBikeTransition_SideJump +AcroBikeTransition_SideJump: @ 0x0811A274 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r5, #0 + bl get_some_collision + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + cmp r0, #0 + beq _0811A2A8 + cmp r0, #7 + beq _0811A2D4 + cmp r0, #9 + bls _0811A2A0 + adds r0, r1, #0 + adds r1, r5, #0 + bl WillPlayerCollideWithCollision + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811A2A8 +_0811A2A0: + adds r0, r5, #0 + bl AcroBikeTransition_TurnDirection + b _0811A2D4 +_0811A2A8: + ldr r0, _0811A2DC + ldrb r0, [r0, #5] + lsls r4, r0, #3 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _0811A2E0 + adds r4, r4, r0 + movs r0, #0x22 + bl PlaySE + ldrb r0, [r4, #1] + movs r1, #2 + orrs r0, r1 + strb r0, [r4, #1] + adds r0, r5, #0 + bl sub_08092E84 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl PlayerSetAnimId +_0811A2D4: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0811A2DC: .4byte 0x02037230 +_0811A2E0: .4byte 0x02036FF0 + thumb_func_end AcroBikeTransition_SideJump + + thumb_func_start sub_0811A2E4 +sub_0811A2E4: @ 0x0811A2E4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl PlayerAcroTurnJump + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0811A2E4 + + thumb_func_start AcroBikeTransition_WheelieMoving +AcroBikeTransition_WheelieMoving: @ 0x0811A2F4 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r6, r4, #0 + ldr r7, _0811A324 + ldrb r1, [r7, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0811A328 + adds r5, r0, r1 + ldrb r1, [r5, #0x1e] + adds r0, r4, #0 + bl CanBikeFaceDirOnMetatile + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811A32C + ldrb r0, [r5, #0x18] + lsrs r0, r0, #4 + bl PlayerIdleWheelie + b _0811A37C + .align 2, 0 +_0811A324: .4byte 0x02037230 +_0811A328: .4byte 0x02036FF0 +_0811A32C: + adds r0, r4, #0 + bl get_some_collision + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r2, #0xff + lsls r2, r2, #0x18 + adds r0, r0, r2 + lsrs r0, r0, #0x18 + cmp r0, #0xa + bhi _0811A372 + cmp r1, #6 + bne _0811A34E + adds r0, r4, #0 + bl PlayerLedgeHoppingWheelie + b _0811A37C +_0811A34E: + cmp r1, #9 + beq _0811A362 + cmp r1, #4 + bhi _0811A37C + ldrb r0, [r5, #0x1e] + bl MetatileBehavior_IsBumpySlope + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0811A36A +_0811A362: + adds r0, r4, #0 + bl PlayerIdleWheelie + b _0811A37C +_0811A36A: + adds r0, r4, #0 + bl sub_0808B2E4 + b _0811A37C +_0811A372: + adds r0, r6, #0 + bl sub_0808B320 + movs r0, #2 + strb r0, [r7, #2] +_0811A37C: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AcroBikeTransition_WheelieMoving + + thumb_func_start AcroBikeTransition_WheelieRisingMoving +AcroBikeTransition_WheelieRisingMoving: @ 0x0811A384 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r6, r4, #0 + ldr r7, _0811A3B4 + ldrb r1, [r7, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0811A3B8 + adds r5, r0, r1 + ldrb r1, [r5, #0x1e] + adds r0, r4, #0 + bl CanBikeFaceDirOnMetatile + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811A3BC + ldrb r0, [r5, #0x18] + lsrs r0, r0, #4 + bl PlayerStartWheelie + b _0811A40C + .align 2, 0 +_0811A3B4: .4byte 0x02037230 +_0811A3B8: .4byte 0x02036FF0 +_0811A3BC: + adds r0, r4, #0 + bl get_some_collision + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r2, #0xff + lsls r2, r2, #0x18 + adds r0, r0, r2 + lsrs r0, r0, #0x18 + cmp r0, #0xa + bhi _0811A402 + cmp r1, #6 + bne _0811A3DE + adds r0, r4, #0 + bl PlayerLedgeHoppingWheelie + b _0811A40C +_0811A3DE: + cmp r1, #9 + beq _0811A3F2 + cmp r1, #4 + bhi _0811A40C + ldrb r0, [r5, #0x1e] + bl MetatileBehavior_IsBumpySlope + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0811A3FA +_0811A3F2: + adds r0, r4, #0 + bl PlayerIdleWheelie + b _0811A40C +_0811A3FA: + adds r0, r4, #0 + bl sub_0808B2E4 + b _0811A40C +_0811A402: + adds r0, r6, #0 + bl sub_0808B308 + movs r0, #2 + strb r0, [r7, #2] +_0811A40C: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AcroBikeTransition_WheelieRisingMoving + + thumb_func_start AcroBikeTransition_WheelieLoweringMoving +AcroBikeTransition_WheelieLoweringMoving: @ 0x0811A414 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r6, r4, #0 + ldr r0, _0811A444 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0811A448 + adds r5, r0, r1 + ldrb r1, [r5, #0x1e] + adds r0, r4, #0 + bl CanBikeFaceDirOnMetatile + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811A44C + ldrb r0, [r5, #0x18] + lsrs r0, r0, #4 + bl PlayerEndWheelie + b _0811A486 + .align 2, 0 +_0811A444: .4byte 0x02037230 +_0811A448: .4byte 0x02036FF0 +_0811A44C: + adds r0, r4, #0 + bl get_some_collision + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r2, #0xff + lsls r2, r2, #0x18 + adds r0, r0, r2 + lsrs r0, r0, #0x18 + cmp r0, #0xa + bhi _0811A480 + cmp r1, #6 + bne _0811A46E + adds r0, r4, #0 + bl PlayerJumpLedge + b _0811A486 +_0811A46E: + subs r0, r1, #5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _0811A486 + adds r0, r4, #0 + bl PlayerEndWheelie + b _0811A486 +_0811A480: + adds r0, r6, #0 + bl sub_0808B338 +_0811A486: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end AcroBikeTransition_WheelieLoweringMoving + + thumb_func_start Bike_TryAcroBikeHistoryUpdate +Bike_TryAcroBikeHistoryUpdate: @ 0x0811A48C + push {lr} + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r2, r1, #0x10 + ldr r0, _0811A4B0 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0811A4AA + adds r0, r3, #0 + adds r1, r2, #0 + bl AcroBike_TryHistoryUpdate +_0811A4AA: + pop {r0} + bx r0 + .align 2, 0 +_0811A4B0: .4byte 0x02037230 + thumb_func_end Bike_TryAcroBikeHistoryUpdate + + thumb_func_start AcroBike_TryHistoryUpdate +AcroBike_TryHistoryUpdate: @ 0x0811A4B4 + push {r4, r5, lr} + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + adds r0, r5, #0 + bl Bike_DPadToDirection + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r4, _0811A4DC + ldr r0, [r4, #0xc] + movs r1, #0xf + ands r0, r1 + cmp r2, r0 + bne _0811A4E0 + ldrb r0, [r4, #0x14] + cmp r0, #0xfe + bhi _0811A4EA + adds r0, #1 + strb r0, [r4, #0x14] + b _0811A4EA + .align 2, 0 +_0811A4DC: .4byte 0x02037230 +_0811A4E0: + adds r0, r2, #0 + bl Bike_UpdateDirTimerHistory + movs r0, #0 + strb r0, [r4, #0xb] +_0811A4EA: + movs r0, #0xf + adds r2, r5, #0 + ands r2, r0 + ldr r4, _0811A508 + ldr r0, [r4, #0x10] + movs r1, #0xf + ands r0, r1 + cmp r2, r0 + bne _0811A50C + ldrb r0, [r4, #0x1c] + cmp r0, #0xfe + bhi _0811A516 + adds r0, #1 + strb r0, [r4, #0x1c] + b _0811A516 + .align 2, 0 +_0811A508: .4byte 0x02037230 +_0811A50C: + adds r0, r2, #0 + bl Bike_UpdateABStartSelectHistory + movs r0, #0 + strb r0, [r4, #0xb] +_0811A516: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end AcroBike_TryHistoryUpdate + + thumb_func_start HasPlayerInputTakenLongerThanList +HasPlayerInputTakenLongerThanList: @ 0x0811A51C + push {r4, r5, lr} + adds r3, r0, #0 + adds r4, r1, #0 + movs r2, #0 + ldrb r0, [r3] + cmp r0, #0 + beq _0811A546 + ldr r5, _0811A560 +_0811A52C: + adds r0, r2, r5 + adds r1, r3, r2 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bhi _0811A55C + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r0, r3, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _0811A52C +_0811A546: + movs r2, #0 + ldrb r0, [r4] + cmp r0, #0 + beq _0811A576 + ldr r3, _0811A564 +_0811A550: + adds r0, r2, r3 + adds r1, r4, r2 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _0811A568 +_0811A55C: + movs r0, #0 + b _0811A578 + .align 2, 0 +_0811A560: .4byte 0x02037244 +_0811A564: .4byte 0x0203724C +_0811A568: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r0, r4, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _0811A550 +_0811A576: + movs r0, #1 +_0811A578: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end HasPlayerInputTakenLongerThanList + + thumb_func_start AcroBike_GetJumpDirection +AcroBike_GetJumpDirection: @ 0x0811A580 + push {r4, r5, r6, lr} + movs r6, #0 + movs r5, #0 +_0811A586: + ldr r0, _0811A5B8 + adds r4, r5, r0 + ldr r0, _0811A5BC + ldr r1, [r0, #0xc] + ldr r2, [r0, #0x10] + ldr r0, [r4, #8] + ands r1, r0 + ldr r0, [r4, #0xc] + ands r2, r0 + ldr r0, [r4] + cmp r1, r0 + bne _0811A5C0 + ldr r0, [r4, #4] + cmp r2, r0 + bne _0811A5C0 + ldr r0, [r4, #0x10] + ldr r1, [r4, #0x14] + bl HasPlayerInputTakenLongerThanList + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0811A5C0 + ldrb r0, [r4, #0x18] + b _0811A5CA + .align 2, 0 +_0811A5B8: .4byte 0x085730A4 +_0811A5BC: .4byte 0x02037230 +_0811A5C0: + adds r5, #0x1c + adds r6, #1 + cmp r6, #3 + bls _0811A586 + movs r0, #0 +_0811A5CA: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end AcroBike_GetJumpDirection + + thumb_func_start Bike_UpdateDirTimerHistory +Bike_UpdateDirTimerHistory: @ 0x0811A5D0 + push {r4, lr} + lsls r0, r0, #0x18 + ldr r3, _0811A608 + ldr r2, [r3, #0xc] + lsls r2, r2, #4 + movs r1, #0xf0 + lsls r1, r1, #0x14 + ands r1, r0 + lsrs r1, r1, #0x18 + orrs r2, r1 + str r2, [r3, #0xc] + movs r1, #7 + adds r4, r3, #0 + adds r3, #0x14 +_0811A5EC: + adds r2, r1, r3 + subs r1, #1 + adds r0, r1, r3 + ldrb r0, [r0] + strb r0, [r2] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0 + bne _0811A5EC + movs r0, #1 + strb r0, [r4, #0x14] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811A608: .4byte 0x02037230 + thumb_func_end Bike_UpdateDirTimerHistory + + thumb_func_start Bike_UpdateABStartSelectHistory +Bike_UpdateABStartSelectHistory: @ 0x0811A60C + push {r4, lr} + lsls r0, r0, #0x18 + ldr r3, _0811A644 + ldr r2, [r3, #0x10] + lsls r2, r2, #4 + movs r1, #0xf0 + lsls r1, r1, #0x14 + ands r1, r0 + lsrs r1, r1, #0x18 + orrs r2, r1 + str r2, [r3, #0x10] + movs r1, #7 + adds r4, r3, #0 + adds r3, #0x1c +_0811A628: + adds r2, r1, r3 + subs r1, #1 + adds r0, r1, r3 + ldrb r0, [r0] + strb r0, [r2] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0 + bne _0811A628 + movs r0, #1 + strb r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811A644: .4byte 0x02037230 + thumb_func_end Bike_UpdateABStartSelectHistory + + thumb_func_start Bike_DPadToDirection +Bike_DPadToDirection: @ 0x0811A648 + push {lr} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + adds r2, r1, #0 + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0811A65C + movs r0, #2 + b _0811A682 +_0811A65C: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0811A668 + movs r0, #1 + b _0811A682 +_0811A668: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0811A674 + movs r0, #3 + b _0811A682 +_0811A674: + movs r0, #0x10 + ands r2, r0 + cmp r2, #0 + bne _0811A680 + movs r0, #0 + b _0811A682 +_0811A680: + movs r0, #4 +_0811A682: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end Bike_DPadToDirection + + thumb_func_start get_some_collision +get_some_collision: @ 0x0811A688 + push {r4, r5, r6, lr} + sub sp, #8 + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + ldr r0, _0811A6EC + ldrb r0, [r0, #5] + lsls r4, r0, #3 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _0811A6F0 + adds r4, r4, r0 + ldrh r1, [r4, #0x10] + add r0, sp, #4 + strh r1, [r0] + ldrh r0, [r4, #0x12] + mov r5, sp + adds r5, #6 + strh r0, [r5] + adds r0, r6, #0 + add r1, sp, #4 + adds r2, r5, #0 + bl MoveCoords + add r0, sp, #4 + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0 + ldrsh r1, [r5, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add r1, sp, #4 + 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 Bike_CheckCollisionTryAdvanceCollisionCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #8 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0811A6EC: .4byte 0x02037230 +_0811A6F0: .4byte 0x02036FF0 + thumb_func_end get_some_collision + + thumb_func_start Bike_CheckCollisionTryAdvanceCollisionCount +Bike_CheckCollisionTryAdvanceCollisionCount: @ 0x0811A6F4 + push {r4, r5, lr} + sub sp, #4 + ldr r4, [sp, #0x10] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r5, r4, #0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + str r5, [sp] + bl CheckForEventObjectCollision + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #4 + bhi _0811A734 + cmp r4, #0 + bne _0811A730 + adds r0, r5, #0 + bl IsRunningDisallowedByMetatile + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0811A72C + movs r4, #2 +_0811A72C: + cmp r4, #0 + beq _0811A734 +_0811A730: + bl Bike_TryAdvanceCyclingRoadCollisions +_0811A734: + adds r0, r4, #0 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end Bike_CheckCollisionTryAdvanceCollisionCount + + thumb_func_start RS_IsRunningDisallowed +RS_IsRunningDisallowed: @ 0x0811A740 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl IsRunningDisallowedByMetatile + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811A758 + ldr r0, _0811A75C + ldrb r0, [r0, #0x17] + cmp r0, #8 + bne _0811A760 +_0811A758: + movs r0, #1 + b _0811A762 + .align 2, 0 +_0811A75C: .4byte 0x02036FB8 +_0811A760: + movs r0, #0 +_0811A762: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end RS_IsRunningDisallowed + + thumb_func_start IsRunningDisallowedByMetatile +IsRunningDisallowedByMetatile: @ 0x0811A768 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl MetatileBehavior_IsRunningDisallowed + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811A792 + adds r0, r4, #0 + bl MetatileBehavior_IsFortreeBridge + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0811A796 + bl PlayerGetZCoord + movs r1, #1 + ands r1, r0 + cmp r1, #0 + bne _0811A796 +_0811A792: + movs r0, #1 + b _0811A798 +_0811A796: + movs r0, #0 +_0811A798: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsRunningDisallowedByMetatile + + thumb_func_start Bike_TryAdvanceCyclingRoadCollisions +Bike_TryAdvanceCyclingRoadCollisions: @ 0x0811A7A0 + push {lr} + ldr r0, _0811A7BC + ldrb r0, [r0] + cmp r0, #0 + beq _0811A7B6 + ldr r1, _0811A7C0 + ldrb r0, [r1] + cmp r0, #0x63 + bhi _0811A7B6 + adds r0, #1 + strb r0, [r1] +_0811A7B6: + pop {r0} + bx r0 + .align 2, 0 +_0811A7BC: .4byte 0x0203A820 +_0811A7C0: .4byte 0x0203A821 + thumb_func_end Bike_TryAdvanceCyclingRoadCollisions + + thumb_func_start CanBikeFaceDirOnMetatile +CanBikeFaceDirOnMetatile: @ 0x0811A7C4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + adds r5, r4, #0 + movs r1, #0xfd + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0811A7EE + adds r0, r4, #0 + bl MetatileBehavior_IsIsolatedVerticalRail + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811A806 + adds r0, r4, #0 + bl MetatileBehavior_IsVerticalRail + b _0811A800 +_0811A7EE: + adds r0, r5, #0 + bl MetatileBehavior_IsIsolatedHorizontalRail + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811A806 + adds r0, r5, #0 + bl MetatileBehavior_IsHorizontalRail +_0811A800: + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0811A80A +_0811A806: + movs r0, #0 + b _0811A80C +_0811A80A: + movs r0, #1 +_0811A80C: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CanBikeFaceDirOnMetatile + + thumb_func_start WillPlayerCollideWithCollision +WillPlayerCollideWithCollision: @ 0x0811A814 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r2, r0, #0 + lsls r1, r1, #0x18 + movs r3, #0xff + lsls r3, r3, #0x18 + adds r1, r1, r3 + lsrs r1, r1, #0x18 + cmp r1, #1 + bhi _0811A834 + cmp r0, #0xa + beq _0811A83C + cmp r0, #0xc + bne _0811A840 + b _0811A83C +_0811A834: + cmp r2, #0xb + beq _0811A83C + cmp r2, #0xd + bne _0811A840 +_0811A83C: + movs r0, #0 + b _0811A842 +_0811A840: + movs r0, #1 +_0811A842: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end WillPlayerCollideWithCollision + + thumb_func_start IsBikingDisallowedByPlayer +IsBikingDisallowedByPlayer: @ 0x0811A848 + push {r4, lr} + sub sp, #4 + ldr r0, _0811A884 + ldrb r1, [r0] + movs r0, #0x18 + ands r0, r1 + cmp r0, #0 + bne _0811A888 + mov r4, sp + adds r4, #2 + 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, r0, #0x18 + lsrs r0, r0, #0x18 + bl IsRunningDisallowedByMetatile + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811A888 + movs r0, #0 + b _0811A88A + .align 2, 0 +_0811A884: .4byte 0x02037230 +_0811A888: + movs r0, #1 +_0811A88A: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsBikingDisallowedByPlayer + + thumb_func_start player_should_look_direction_be_enforced_upon_movement +player_should_look_direction_be_enforced_upon_movement: @ 0x0811A894 + push {lr} + movs r0, #4 + bl TestPlayerAvatarFlags + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0811A8C8 + ldr r2, _0811A8C0 + ldr r0, _0811A8C4 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #0x1e] + bl MetatileBehavior_IsBumpySlope + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0811A8C8 + movs r0, #0 + b _0811A8CA + .align 2, 0 +_0811A8C0: .4byte 0x02036FF0 +_0811A8C4: .4byte 0x02037230 +_0811A8C8: + movs r0, #1 +_0811A8CA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end player_should_look_direction_be_enforced_upon_movement + + thumb_func_start GetOnOffBike +GetOnOffBike: @ 0x0811A8D0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _0811A8F8 + movs r0, #0 + strb r0, [r1] + ldr r0, _0811A8FC + ldrb r1, [r0] + movs r0, #6 + ands r0, r1 + cmp r0, #0 + beq _0811A900 + movs r0, #1 + bl SetPlayerAvatarTransitionFlags + bl Overworld_ClearSavedMusic + bl Overworld_PlaySpecialMapMusic + b _0811A914 + .align 2, 0 +_0811A8F8: .4byte 0x02036FE8 +_0811A8FC: .4byte 0x02037230 +_0811A900: + adds r0, r2, #0 + bl SetPlayerAvatarTransitionFlags + ldr r4, _0811A91C + adds r0, r4, #0 + bl Overworld_SetSavedMusic + adds r0, r4, #0 + bl Overworld_ChangeMusicTo +_0811A914: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811A91C: .4byte 0x00000193 + thumb_func_end GetOnOffBike + + thumb_func_start BikeClearState +BikeClearState: @ 0x0811A920 + push {lr} + ldr r2, _0811A95C + movs r3, #0 + strb r3, [r2, #8] + strb r3, [r2, #9] + strb r3, [r2, #0xa] + strb r3, [r2, #0xb] + str r0, [r2, #0xc] + str r1, [r2, #0x10] + movs r1, #0 + adds r2, #0x14 +_0811A936: + adds r0, r1, r2 + strb r3, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #7 + bls _0811A936 + movs r1, #0 + ldr r3, _0811A960 + movs r2, #0 +_0811A94A: + adds r0, r1, r3 + strb r2, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #7 + bls _0811A94A + pop {r0} + bx r0 + .align 2, 0 +_0811A95C: .4byte 0x02037230 +_0811A960: .4byte 0x0203724C + thumb_func_end BikeClearState + + thumb_func_start Bike_UpdateBikeCounterSpeed +Bike_UpdateBikeCounterSpeed: @ 0x0811A964 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0811A974 + strb r0, [r2, #0xa] + lsrs r1, r0, #1 + adds r0, r0, r1 + strb r0, [r2, #0xb] + bx lr + .align 2, 0 +_0811A974: .4byte 0x02037230 + thumb_func_end Bike_UpdateBikeCounterSpeed + + thumb_func_start Bike_SetBikeStill +Bike_SetBikeStill: @ 0x0811A978 + ldr r1, _0811A984 + movs r0, #0 + strb r0, [r1, #0xa] + strb r0, [r1, #0xb] + bx lr + .align 2, 0 +_0811A984: .4byte 0x02037230 + thumb_func_end Bike_SetBikeStill + + thumb_func_start GetPlayerSpeed +GetPlayerSpeed: @ 0x0811A988 + push {lr} + sub sp, #8 + ldr r1, _0811A9B0 + mov r0, sp + movs r2, #6 + bl memcpy + ldr r2, _0811A9B4 + ldrb r1, [r2] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0811A9B8 + ldrb r0, [r2, #0xa] + lsls r0, r0, #1 + add r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + b _0811A9D2 + .align 2, 0 +_0811A9B0: .4byte 0x0857309C +_0811A9B4: .4byte 0x02037230 +_0811A9B8: + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0811A9C4 + movs r0, #3 + b _0811A9D2 +_0811A9C4: + movs r0, #0x88 + ands r0, r1 + cmp r0, #0 + bne _0811A9D0 + movs r0, #1 + b _0811A9D2 +_0811A9D0: + movs r0, #2 +_0811A9D2: + add sp, #8 + pop {r1} + bx r1 + thumb_func_end GetPlayerSpeed + + thumb_func_start Bike_HandleBumpySlopeJump +Bike_HandleBumpySlopeJump: @ 0x0811A9D8 + push {r4, r5, lr} + sub sp, #4 + ldr r5, _0811AA28 + ldrb r1, [r5] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0811AA20 + mov r4, sp + adds r4, #2 + 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, r0, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsBumpySlope + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0811AA20 + movs r0, #2 + strb r0, [r5, #8] + bl GetPlayerMovementDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_0808BB18 +_0811AA20: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0811AA28: .4byte 0x02037230 + thumb_func_end Bike_HandleBumpySlopeJump + + thumb_func_start IsRunningDisallowed +IsRunningDisallowed: @ 0x0811AA2C + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _0811AA50 + ldrb r1, [r0, #0x1a] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0811AA4C + adds r0, r2, #0 + bl IsRunningDisallowedByMetatile + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0811AA54 +_0811AA4C: + movs r0, #1 + b _0811AA56 + .align 2, 0 +_0811AA50: .4byte 0x02036FB8 +_0811AA54: + movs r0, #0 +_0811AA56: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsRunningDisallowed + diff --git a/asm/birch_pc.s b/asm/birch_pc.s new file mode 100644 index 0000000..3725e47 --- /dev/null +++ b/asm/birch_pc.s @@ -0,0 +1,261 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ScriptGetPokedexInfo +ScriptGetPokedexInfo: @ 0x08137ABC + push {lr} + ldr r0, _08137AD8 + ldrh r0, [r0] + cmp r0, #0 + bne _08137AE0 + movs r0, #0 + bl GetHoennPokedexCount + ldr r1, _08137ADC + strh r0, [r1] + movs r0, #1 + bl GetHoennPokedexCount + b _08137AF0 + .align 2, 0 +_08137AD8: .4byte 0x02037280 +_08137ADC: .4byte 0x02037282 +_08137AE0: + movs r0, #0 + bl GetNationalPokedexCount + ldr r1, _08137B00 + strh r0, [r1] + movs r0, #1 + bl GetNationalPokedexCount +_08137AF0: + ldr r1, _08137B04 + strh r0, [r1] + bl IsNationalPokedexEnabled + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 +_08137B00: .4byte 0x02037282 +_08137B04: .4byte 0x02037284 + thumb_func_end ScriptGetPokedexInfo + + thumb_func_start GetPokedexRatingText +GetPokedexRatingText: @ 0x08137B08 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #9 + bhi _08137B14 + b _08137C6C +_08137B14: + cmp r0, #0x13 + bhi _08137B20 + ldr r0, _08137B1C + b _08137C76 + .align 2, 0 +_08137B1C: .4byte 0x08262E81 +_08137B20: + cmp r0, #0x1d + bhi _08137B2C + ldr r0, _08137B28 + b _08137C76 + .align 2, 0 +_08137B28: .4byte 0x08262EA6 +_08137B2C: + cmp r0, #0x27 + bhi _08137B38 + ldr r0, _08137B34 + b _08137C76 + .align 2, 0 +_08137B34: .4byte 0x08262ECF +_08137B38: + cmp r0, #0x31 + bhi _08137B44 + ldr r0, _08137B40 + b _08137C76 + .align 2, 0 +_08137B40: .4byte 0x08262EF5 +_08137B44: + cmp r0, #0x3b + bhi _08137B50 + ldr r0, _08137B4C + b _08137C76 + .align 2, 0 +_08137B4C: .4byte 0x08262F18 +_08137B50: + cmp r0, #0x45 + bhi _08137B5C + ldr r0, _08137B58 + b _08137C76 + .align 2, 0 +_08137B58: .4byte 0x08262F3F +_08137B5C: + cmp r0, #0x4f + bhi _08137B68 + ldr r0, _08137B64 + b _08137C76 + .align 2, 0 +_08137B64: .4byte 0x08262F61 +_08137B68: + cmp r0, #0x59 + bhi _08137B74 + ldr r0, _08137B70 + b _08137C76 + .align 2, 0 +_08137B70: .4byte 0x08262F8A +_08137B74: + cmp r0, #0x63 + bhi _08137B80 + ldr r0, _08137B7C + b _08137C76 + .align 2, 0 +_08137B7C: .4byte 0x08262FAD +_08137B80: + cmp r0, #0x6d + bhi _08137B8C + ldr r0, _08137B88 + b _08137C76 + .align 2, 0 +_08137B88: .4byte 0x08262FE1 +_08137B8C: + cmp r0, #0x77 + bhi _08137B98 + ldr r0, _08137B94 + b _08137C76 + .align 2, 0 +_08137B94: .4byte 0x0826300C +_08137B98: + cmp r0, #0x81 + bhi _08137BA4 + ldr r0, _08137BA0 + b _08137C76 + .align 2, 0 +_08137BA0: .4byte 0x08263032 +_08137BA4: + cmp r0, #0x8b + bhi _08137BB0 + ldr r0, _08137BAC + b _08137C76 + .align 2, 0 +_08137BAC: .4byte 0x08263050 +_08137BB0: + cmp r0, #0x95 + bhi _08137BBC + ldr r0, _08137BB8 + b _08137C76 + .align 2, 0 +_08137BB8: .4byte 0x08263072 +_08137BBC: + cmp r0, #0x9f + bhi _08137BC8 + ldr r0, _08137BC4 + b _08137C76 + .align 2, 0 +_08137BC4: .4byte 0x08263095 +_08137BC8: + cmp r0, #0xa9 + bhi _08137BD4 + ldr r0, _08137BD0 + b _08137C76 + .align 2, 0 +_08137BD0: .4byte 0x082630C7 +_08137BD4: + cmp r0, #0xb3 + bhi _08137BE0 + ldr r0, _08137BDC + b _08137C76 + .align 2, 0 +_08137BDC: .4byte 0x082630F0 +_08137BE0: + cmp r0, #0xbd + bhi _08137BEC + ldr r0, _08137BE8 + b _08137C76 + .align 2, 0 +_08137BE8: .4byte 0x0826310C +_08137BEC: + cmp r0, #0xc7 + bls _08137C5A + cmp r0, #0xc8 + bne _08137C28 + ldr r0, _08137C24 + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + bl GetSetPokedexFlag + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08137C5A + movs r0, #0xcd + lsls r0, r0, #1 + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + bl GetSetPokedexFlag + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08137C5A + b _08137C74 + .align 2, 0 +_08137C24: .4byte 0x00000199 +_08137C28: + cmp r0, #0xc9 + bne _08137C68 + ldr r0, _08137C60 + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + bl GetSetPokedexFlag + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08137C74 + movs r0, #0xcd + lsls r0, r0, #1 + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + bl GetSetPokedexFlag + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08137C74 +_08137C5A: + ldr r0, _08137C64 + b _08137C76 + .align 2, 0 +_08137C60: .4byte 0x00000199 +_08137C64: .4byte 0x0826312D +_08137C68: + cmp r0, #0xca + beq _08137C74 +_08137C6C: + ldr r0, _08137C70 + b _08137C76 + .align 2, 0 +_08137C70: .4byte 0x08262E5F +_08137C74: + ldr r0, _08137C7C +_08137C76: + pop {r1} + bx r1 + .align 2, 0 +_08137C7C: .4byte 0x0826314F + thumb_func_end GetPokedexRatingText + + thumb_func_start ShowPokedexRatingMessage +ShowPokedexRatingMessage: @ 0x08137C80 + push {lr} + ldr r0, _08137C94 + ldrh r0, [r0] + bl GetPokedexRatingText + bl ShowFieldMessage + pop {r0} + bx r0 + .align 2, 0 +_08137C94: .4byte 0x02037280 + thumb_func_end ShowPokedexRatingMessage + diff --git a/asm/blit.s b/asm/blit.s new file mode 100644 index 0000000..5a97df6 --- /dev/null +++ b/asm/blit.s @@ -0,0 +1,812 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start BlitBitmapRect4BitWithoutColorKey +BlitBitmapRect4BitWithoutColorKey: @ 0x08002AB8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x14 + ldr r4, [sp, #0x2c] + ldr r5, [sp, #0x30] + ldr r6, [sp, #0x34] + ldr r7, [sp, #0x38] + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + lsls r7, r7, #0x10 + lsrs r7, r7, #0x10 + str r4, [sp] + str r5, [sp, #4] + str r6, [sp, #8] + str r7, [sp, #0xc] + movs r4, #0xff + str r4, [sp, #0x10] + bl BlitBitmapRect4Bit + add sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end BlitBitmapRect4BitWithoutColorKey + + thumb_func_start BlitBitmapRect4Bit +BlitBitmapRect4Bit: @ 0x08002AFC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x2c + str r0, [sp] + str r1, [sp, #4] + ldr r0, [sp, #0x4c] + ldr r1, [sp, #0x50] + ldr r4, [sp, #0x54] + ldr r5, [sp, #0x58] + ldr r6, [sp, #0x5c] + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + str r2, [sp, #8] + lsls r3, r3, #0x10 + lsrs r7, r3, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0xc] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sb, r1 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + str r6, [sp, #0x10] + ldr r0, [sp, #4] + ldrh r3, [r0, #4] + ldr r1, [sp, #0xc] + subs r0, r3, r1 + adds r2, r2, r4 + mov r8, r2 + cmp r0, r4 + bge _08002B50 + ldr r2, [sp, #8] + adds r0, r0, r2 + mov r8, r0 +_08002B50: + ldr r4, [sp, #4] + ldrh r0, [r4, #6] + mov r1, sb + subs r0, r0, r1 + adds r2, r5, r7 + str r2, [sp, #0x14] + cmp r0, r5 + bge _08002B64 + adds r0, r0, r7 + str r0, [sp, #0x14] +_08002B64: + ldr r4, [sp] + ldrh r1, [r4, #4] + movs r2, #7 + adds r0, r1, #0 + ands r0, r2 + adds r1, r1, r0 + asrs r1, r1, #3 + str r1, [sp, #0x18] + adds r0, r3, #0 + ands r0, r2 + adds r0, r3, r0 + asrs r0, r0, #3 + str r0, [sp, #0x1c] + ldr r0, [sp, #0x10] + cmp r0, #0xff + bne _08002C22 + adds r3, r7, #0 + mov r1, sb + ldr r2, [sp, #0x14] + cmp r3, r2 + blt _08002B90 + b _08002CCA +_08002B90: + ldr r5, [sp, #8] + ldr r6, [sp, #0xc] + adds r4, r3, #1 + str r4, [sp, #0x24] + adds r0, r1, #1 + str r0, [sp, #0x28] + cmp r5, r8 + bge _08002C16 + movs r7, #3 + asrs r0, r3, #3 + ldr r2, [sp, #0x18] + muls r0, r2, r0 + lsls r0, r0, #5 + mov sl, r0 + lsls r0, r3, #0x1d + lsrs r0, r0, #0x1b + mov sb, r0 + asrs r0, r1, #3 + ldr r4, [sp, #0x1c] + muls r0, r4, r0 + lsls r0, r0, #5 + mov ip, r0 + lsls r0, r1, #0x1d + lsrs r3, r0, #0x1b +_08002BC0: + asrs r0, r5, #1 + ands r0, r7 + ldr r2, [sp] + ldr r1, [r2] + adds r1, r1, r0 + asrs r0, r5, #3 + lsls r0, r0, #5 + adds r1, r1, r0 + add r1, sl + mov r4, sb + adds r2, r1, r4 + asrs r0, r6, #1 + ands r0, r7 + ldr r4, [sp, #4] + ldr r1, [r4] + adds r1, r1, r0 + asrs r0, r6, #3 + lsls r0, r0, #5 + adds r1, r1, r0 + add r1, ip + adds r4, r1, r3 + ldrb r2, [r2] + adds r0, r5, #0 + movs r1, #1 + ands r0, r1 + lsls r0, r0, #2 + asrs r2, r0 + movs r0, #0xf + ands r2, r0 + adds r0, r6, #0 + ands r0, r1 + lsls r1, r0, #2 + lsls r2, r1 + movs r0, #0xf0 + asrs r0, r1 + ldrb r1, [r4] + ands r0, r1 + orrs r2, r0 + strb r2, [r4] + adds r5, #1 + adds r6, #1 + cmp r5, r8 + blt _08002BC0 +_08002C16: + ldr r3, [sp, #0x24] + ldr r1, [sp, #0x28] + ldr r2, [sp, #0x14] + cmp r3, r2 + blt _08002B90 + b _08002CCA +_08002C22: + adds r3, r7, #0 + mov r1, sb + ldr r4, [sp, #0x14] + cmp r3, r4 + bge _08002CCA +_08002C2C: + ldr r5, [sp, #8] + ldr r6, [sp, #0xc] + adds r0, r3, #1 + str r0, [sp, #0x24] + adds r2, r1, #1 + str r2, [sp, #0x28] + cmp r5, r8 + bge _08002CC0 + movs r4, #3 + mov sb, r4 + asrs r0, r3, #3 + ldr r2, [sp, #0x18] + muls r0, r2, r0 + lsls r0, r0, #5 + str r0, [sp, #0x20] + lsls r0, r3, #0x1d + lsrs r0, r0, #0x1b + mov sl, r0 + movs r3, #1 + asrs r0, r1, #3 + ldr r4, [sp, #0x1c] + muls r0, r4, r0 + lsls r0, r0, #5 + mov ip, r0 + lsls r0, r1, #0x1d + lsrs r7, r0, #0x1b +_08002C60: + asrs r0, r5, #1 + mov r1, sb + ands r0, r1 + ldr r2, [sp] + ldr r1, [r2] + adds r1, r1, r0 + asrs r0, r5, #3 + lsls r0, r0, #5 + adds r1, r1, r0 + ldr r4, [sp, #0x20] + adds r1, r1, r4 + mov r0, sl + adds r2, r1, r0 + asrs r0, r6, #1 + mov r1, sb + ands r0, r1 + ldr r4, [sp, #4] + ldr r1, [r4] + adds r1, r1, r0 + asrs r0, r6, #3 + lsls r0, r0, #5 + adds r1, r1, r0 + add r1, ip + adds r4, r1, r7 + ldrb r2, [r2] + adds r0, r5, #0 + ands r0, r3 + lsls r0, r0, #2 + asrs r2, r0 + movs r0, #0xf + ands r2, r0 + ldr r0, [sp, #0x10] + cmp r2, r0 + beq _08002CB8 + adds r0, r6, #0 + ands r0, r3 + lsls r1, r0, #2 + lsls r2, r1 + movs r0, #0xf0 + asrs r0, r1 + ldrb r1, [r4] + ands r0, r1 + orrs r2, r0 + strb r2, [r4] +_08002CB8: + adds r5, #1 + adds r6, #1 + cmp r5, r8 + blt _08002C60 +_08002CC0: + ldr r3, [sp, #0x24] + ldr r1, [sp, #0x28] + ldr r2, [sp, #0x14] + cmp r3, r2 + blt _08002C2C +_08002CCA: + add sp, #0x2c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BlitBitmapRect4Bit + + thumb_func_start FillBitmapRect4Bit +FillBitmapRect4Bit: @ 0x08002CDC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov sb, r0 + ldr r0, [sp, #0x24] + ldr r4, [sp, #0x28] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sl, r1 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + adds r5, r2, #0 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r4, r4, #0x18 + lsrs r7, r4, #0x18 + adds r4, r1, r3 + mov r3, sb + ldrh r1, [r3, #4] + cmp r4, r1 + ble _08002D12 + adds r4, r1, #0 +_08002D12: + adds r2, r2, r0 + mov ip, r2 + mov r2, sb + ldrh r0, [r2, #6] + cmp ip, r0 + ble _08002D20 + mov ip, r0 +_08002D20: + movs r0, #7 + ands r0, r1 + adds r0, r1, r0 + asrs r0, r0, #3 + str r0, [sp] + adds r1, r5, #0 + cmp r1, ip + bge _08002D88 +_08002D30: + mov r3, sl + adds r0, r1, #1 + mov r8, r0 + cmp r3, r4 + bge _08002D82 + asrs r0, r1, #3 + ldr r2, [sp] + muls r0, r2, r0 + lsls r6, r0, #5 + lsls r0, r1, #0x1d + lsrs r5, r0, #0x1b +_08002D46: + asrs r2, r3, #1 + movs r0, #3 + ands r2, r0 + mov r0, sb + ldr r1, [r0] + adds r1, r1, r2 + asrs r0, r3, #3 + lsls r0, r0, #5 + adds r1, r1, r0 + adds r1, r1, r6 + adds r2, r1, r5 + movs r0, #1 + ands r0, r3 + cmp r0, #0 + beq _08002D72 + ldrb r0, [r2] + movs r1, #0xf + ands r1, r0 + lsls r0, r7, #4 + orrs r1, r0 + strb r1, [r2] + b _08002D7C +_08002D72: + ldrb r1, [r2] + movs r0, #0xf0 + ands r0, r1 + orrs r0, r7 + strb r0, [r2] +_08002D7C: + adds r3, #1 + cmp r3, r4 + blt _08002D46 +_08002D82: + mov r1, r8 + cmp r1, ip + blt _08002D30 +_08002D88: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end FillBitmapRect4Bit + + thumb_func_start BlitBitmapRect4BitTo8Bit +BlitBitmapRect4BitTo8Bit: @ 0x08002D98 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x3c + str r0, [sp] + str r1, [sp, #4] + ldr r0, [sp, #0x5c] + ldr r1, [sp, #0x60] + ldr r5, [sp, #0x64] + ldr r4, [sp, #0x68] + ldr r6, [sp, #0x6c] + ldr r7, [sp, #0x70] + mov r8, r7 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + str r2, [sp, #8] + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0xc] + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + str r6, [sp, #0x10] + mov r0, r8 + lsls r0, r0, #0x1c + lsrs r0, r0, #0x18 + str r0, [sp, #0x14] + lsls r0, r6, #0x1c + lsrs r0, r0, #0x18 + str r0, [sp, #0x28] + ldr r1, [sp, #4] + ldrh r0, [r1, #4] + ldr r2, [sp, #0xc] + subs r0, r0, r2 + ldr r1, [sp, #8] + adds r1, r5, r1 + str r1, [sp, #0x18] + cmp r0, r5 + bge _08002DFE + ldr r2, [sp, #8] + adds r0, r0, r2 + str r0, [sp, #0x18] +_08002DFE: + ldr r5, [sp, #4] + ldrh r1, [r5, #6] + subs r0, r1, r7 + cmp r0, r4 + bge _08002E10 + adds r0, r3, r1 + subs r0, r0, r7 + str r0, [sp, #0x1c] + b _08002E14 +_08002E10: + adds r4, r3, r4 + str r4, [sp, #0x1c] +_08002E14: + ldr r0, [sp] + ldrh r1, [r0, #4] + movs r2, #7 + adds r0, r1, #0 + ands r0, r2 + adds r1, r1, r0 + asrs r1, r1, #3 + str r1, [sp, #0x20] + ldr r5, [sp, #4] + ldrh r1, [r5, #4] + adds r0, r1, #0 + ands r0, r2 + adds r1, r1, r0 + asrs r1, r1, #3 + str r1, [sp, #0x24] + ldr r0, [sp, #0x10] + cmp r0, #0xff + bne _08002EF4 + adds r2, r3, #0 + adds r5, r7, #0 + ldr r1, [sp, #0x1c] + cmp r2, r1 + blt _08002E44 + b _08002FD6 +_08002E44: + ldr r3, [sp, #8] + lsrs r3, r3, #1 + str r3, [sp, #0x2c] + movs r0, #3 + ands r3, r0 + str r3, [sp, #0x2c] + ldr r7, [sp, #8] + lsrs r0, r7, #3 + lsls r0, r0, #5 + str r0, [sp, #0x30] +_08002E58: + ldr r0, [sp] + ldr r1, [r0] + ldr r3, [sp, #0x2c] + adds r1, r1, r3 + ldr r7, [sp, #0x30] + adds r1, r1, r7 + asrs r0, r2, #3 + ldr r3, [sp, #0x20] + muls r0, r3, r0 + lsls r0, r0, #5 + mov r8, r0 + add r1, r8 + lsls r0, r2, #0x1d + lsrs r7, r0, #0x1b + adds r6, r1, r7 + ldr r3, [sp, #8] + ldr r4, [sp, #0xc] + adds r2, #1 + mov sl, r2 + adds r0, r5, #1 + str r0, [sp, #0x38] + ldr r1, [sp, #0x18] + cmp r3, r1 + bge _08002EE8 + asrs r0, r5, #3 + ldr r2, [sp, #0x24] + muls r0, r2, r0 + lsls r0, r0, #6 + mov ip, r0 + lsls r0, r5, #0x1d + lsrs r0, r0, #0x1a + mov sb, r0 +_08002E98: + movs r0, #7 + ands r0, r4 + ldr r5, [sp, #4] + ldr r1, [r5] + adds r1, r1, r0 + asrs r0, r4, #3 + lsls r0, r0, #6 + adds r1, r1, r0 + add r1, ip + mov r0, sb + adds r5, r1, r0 + movs r0, #1 + ands r0, r3 + cmp r0, #0 + beq _08002EBC + ldrb r0, [r6] + lsrs r0, r0, #4 + b _08002ED8 +_08002EBC: + asrs r2, r3, #1 + movs r0, #3 + ands r2, r0 + ldr r0, [sp] + ldr r1, [r0] + adds r1, r1, r2 + asrs r0, r3, #3 + lsls r0, r0, #5 + adds r1, r1, r0 + add r1, r8 + adds r6, r1, r7 + ldrb r1, [r6] + movs r0, #0xf + ands r0, r1 +_08002ED8: + ldr r1, [sp, #0x14] + adds r0, r1, r0 + strb r0, [r5] + adds r3, #1 + adds r4, #1 + ldr r2, [sp, #0x18] + cmp r3, r2 + blt _08002E98 +_08002EE8: + mov r2, sl + ldr r5, [sp, #0x38] + ldr r3, [sp, #0x1c] + cmp r2, r3 + blt _08002E58 + b _08002FD6 +_08002EF4: + adds r2, r3, #0 + adds r5, r7, #0 + ldr r7, [sp, #0x1c] + cmp r2, r7 + bge _08002FD6 + ldr r0, [sp, #8] + lsrs r0, r0, #1 + str r0, [sp, #0x34] + movs r0, #3 + ldr r1, [sp, #0x34] + ands r1, r0 + str r1, [sp, #0x34] +_08002F0C: + ldr r3, [sp] + ldr r1, [r3] + ldr r7, [sp, #0x34] + adds r1, r1, r7 + ldr r3, [sp, #8] + lsrs r0, r3, #3 + lsls r0, r0, #5 + adds r1, r1, r0 + asrs r0, r2, #3 + ldr r7, [sp, #0x20] + muls r0, r7, r0 + lsls r0, r0, #5 + mov r8, r0 + add r1, r8 + lsls r0, r2, #0x1d + lsrs r7, r0, #0x1b + adds r6, r1, r7 + ldr r4, [sp, #0xc] + adds r2, #1 + mov sl, r2 + adds r0, r5, #1 + str r0, [sp, #0x38] + ldr r1, [sp, #0x18] + cmp r3, r1 + bge _08002FCC + asrs r0, r5, #3 + ldr r2, [sp, #0x24] + muls r0, r2, r0 + lsls r0, r0, #6 + mov sb, r0 + lsls r0, r5, #0x1d + lsrs r0, r0, #0x1a + mov ip, r0 +_08002F4E: + movs r0, #1 + ands r0, r3 + cmp r0, #0 + beq _08002F82 + ldrb r2, [r6] + movs r0, #0xf0 + ands r0, r2 + ldr r5, [sp, #0x28] + cmp r0, r5 + beq _08002FC2 + adds r0, r4, #0 + movs r1, #7 + ands r0, r1 + ldr r5, [sp, #4] + ldr r1, [r5] + adds r1, r1, r0 + asrs r0, r4, #3 + lsls r0, r0, #6 + adds r1, r1, r0 + add r1, sb + mov r0, ip + adds r5, r1, r0 + lsrs r0, r2, #4 + ldr r1, [sp, #0x14] + adds r0, r1, r0 + b _08002FC0 +_08002F82: + asrs r2, r3, #1 + movs r0, #3 + ands r2, r0 + ldr r5, [sp] + ldr r1, [r5] + adds r1, r1, r2 + asrs r0, r3, #3 + lsls r0, r0, #5 + adds r1, r1, r0 + add r1, r8 + adds r6, r1, r7 + ldrb r0, [r6] + movs r2, #0xf + ands r2, r0 + ldr r0, [sp, #0x10] + cmp r2, r0 + beq _08002FC2 + adds r0, r4, #0 + movs r1, #7 + ands r0, r1 + ldr r5, [sp, #4] + ldr r1, [r5] + adds r1, r1, r0 + asrs r0, r4, #3 + lsls r0, r0, #6 + adds r1, r1, r0 + add r1, sb + mov r0, ip + adds r5, r1, r0 + ldr r1, [sp, #0x14] + adds r0, r1, r2 +_08002FC0: + strb r0, [r5] +_08002FC2: + adds r3, #1 + adds r4, #1 + ldr r2, [sp, #0x18] + cmp r3, r2 + blt _08002F4E +_08002FCC: + mov r2, sl + ldr r5, [sp, #0x38] + ldr r3, [sp, #0x1c] + cmp r2, r3 + blt _08002F0C +_08002FD6: + add sp, #0x3c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BlitBitmapRect4BitTo8Bit + + thumb_func_start FillBitmapRect8Bit +FillBitmapRect8Bit: @ 0x08002FE8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + mov r8, r0 + ldr r0, [sp, #0x28] + ldr r4, [sp, #0x2c] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sl, r1 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + adds r6, r2, #0 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov sb, r4 + adds r5, r1, r3 + mov r3, r8 + ldrh r1, [r3, #4] + cmp r5, r1 + ble _08003020 + adds r5, r1, #0 +_08003020: + adds r7, r2, r0 + mov r2, r8 + ldrh r0, [r2, #6] + cmp r7, r0 + ble _0800302C + adds r7, r0, #0 +_0800302C: + movs r0, #7 + ands r0, r1 + adds r0, r1, r0 + asrs r0, r0, #3 + str r0, [sp] + adds r1, r6, #0 + cmp r1, r7 + bge _0800307C +_0800303C: + mov r3, sl + adds r6, r1, #1 + str r6, [sp, #4] + cmp r3, r5 + bge _08003076 + movs r0, #7 + mov ip, r0 + asrs r0, r1, #3 + ldr r2, [sp] + muls r0, r2, r0 + lsls r4, r0, #6 + lsls r0, r1, #0x1d + lsrs r2, r0, #0x1a +_08003056: + adds r0, r3, #0 + mov r6, ip + ands r0, r6 + mov r6, r8 + ldr r1, [r6] + adds r1, r1, r0 + asrs r0, r3, #3 + lsls r0, r0, #6 + adds r1, r1, r0 + adds r1, r1, r4 + adds r1, r1, r2 + mov r0, sb + strb r0, [r1] + adds r3, #1 + cmp r3, r5 + blt _08003056 +_08003076: + ldr r1, [sp, #4] + cmp r1, r7 + blt _0800303C +_0800307C: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end FillBitmapRect8Bit + diff --git a/asm/braille_puzzles.s b/asm/braille_puzzles.s new file mode 100644 index 0000000..f129278 --- /dev/null +++ b/asm/braille_puzzles.s @@ -0,0 +1,689 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ShouldDoBrailleDigEffect +ShouldDoBrailleDigEffect: @ 0x081794A0 + push {lr} + ldr r0, _081794D4 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081794EC + ldr r0, _081794D8 + ldr r2, [r0] + ldrh r1, [r2, #4] + ldr r0, _081794DC + cmp r1, r0 + bne _081794EC + ldr r1, [r2] + ldr r0, _081794E0 + cmp r1, r0 + beq _081794CE + ldr r0, _081794E4 + cmp r1, r0 + beq _081794CE + ldr r0, _081794E8 + cmp r1, r0 + bne _081794EC +_081794CE: + movs r0, #1 + b _081794EE + .align 2, 0 +_081794D4: .4byte 0x000008AF +_081794D8: .4byte 0x03005AEC +_081794DC: .4byte 0x00004718 +_081794E0: .4byte 0x0003000A +_081794E4: .4byte 0x00030009 +_081794E8: .4byte 0x0003000B +_081794EC: + movs r0, #0 +_081794EE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ShouldDoBrailleDigEffect + + thumb_func_start DoBrailleDigEffect +DoBrailleDigEffect: @ 0x081794F4 + push {lr} + ldr r2, _0817954C + movs r0, #0x10 + movs r1, #8 + bl MapGridSetMetatileIdAt + ldr r2, _08179550 + movs r0, #0x11 + movs r1, #8 + bl MapGridSetMetatileIdAt + movs r2, #0x8b + lsls r2, r2, #2 + movs r0, #0x12 + movs r1, #8 + bl MapGridSetMetatileIdAt + ldr r2, _08179554 + movs r0, #0x10 + movs r1, #9 + bl MapGridSetMetatileIdAt + ldr r2, _08179558 + movs r0, #0x11 + movs r1, #9 + bl MapGridSetMetatileIdAt + ldr r2, _0817955C + movs r0, #0x12 + movs r1, #9 + bl MapGridSetMetatileIdAt + bl DrawWholeMapView + movs r0, #0x14 + bl PlaySE + ldr r0, _08179560 + bl FlagSet + bl ScriptContext2_Disable + pop {r0} + bx r0 + .align 2, 0 +_0817954C: .4byte 0x0000022A +_08179550: .4byte 0x0000022B +_08179554: .4byte 0x00000E32 +_08179558: .4byte 0x00000233 +_0817955C: .4byte 0x00000E34 +_08179560: .4byte 0x000008AF + thumb_func_end DoBrailleDigEffect + + thumb_func_start CheckRelicanthWailord +CheckRelicanthWailord: @ 0x08179564 + push {r4, lr} + ldr r4, _081795A0 + adds r0, r4, #0 + movs r1, #0x41 + movs r2, #0 + bl GetMonData + movs r1, #0x9d + lsls r1, r1, #1 + cmp r0, r1 + bne _081795AC + bl CalculatePlayerPartyCount + ldr r0, _081795A4 + ldrb r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + adds r1, r4, #0 + subs r1, #0x64 + adds r0, r0, r1 + movs r1, #0x41 + movs r2, #0 + bl GetMonData + ldr r1, _081795A8 + cmp r0, r1 + bne _081795AC + movs r0, #1 + b _081795AE + .align 2, 0 +_081795A0: .4byte 0x02024190 +_081795A4: .4byte 0x0202418D +_081795A8: .4byte 0x0000017D +_081795AC: + movs r0, #0 +_081795AE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end CheckRelicanthWailord + + thumb_func_start ShouldDoBrailleRegirockEffectOld +ShouldDoBrailleRegirockEffectOld: @ 0x081795B4 + bx lr + .align 2, 0 + thumb_func_end ShouldDoBrailleRegirockEffectOld + + thumb_func_start DoSealedChamberShakingEffect1 +DoSealedChamberShakingEffect1: @ 0x081795B8 + push {lr} + ldr r0, _081795EC + movs r1, #9 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _081795F0 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r0, #0 + strh r0, [r1, #0xa] + strh r0, [r1, #0xc] + movs r0, #2 + strh r0, [r1, #0x10] + movs r0, #5 + strh r0, [r1, #0x12] + movs r0, #0x32 + strh r0, [r1, #0x14] + movs r0, #0 + bl SetCameraPanningCallback + pop {r0} + bx r0 + .align 2, 0 +_081795EC: .4byte 0x08179631 +_081795F0: .4byte 0x03005B60 + thumb_func_end DoSealedChamberShakingEffect1 + + thumb_func_start DoSealedChamberShakingEffect2 +DoSealedChamberShakingEffect2: @ 0x081795F4 + push {lr} + ldr r0, _08179628 + movs r1, #9 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0817962C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r0, #0 + strh r0, [r1, #0xa] + strh r0, [r1, #0xc] + movs r0, #3 + strh r0, [r1, #0x10] + movs r0, #5 + strh r0, [r1, #0x12] + movs r0, #2 + strh r0, [r1, #0x14] + movs r0, #0 + bl SetCameraPanningCallback + pop {r0} + bx r0 + .align 2, 0 +_08179628: .4byte 0x08179631 +_0817962C: .4byte 0x03005B60 + thumb_func_end DoSealedChamberShakingEffect2 + + thumb_func_start SealedChamberShakingEffect +SealedChamberShakingEffect: @ 0x08179630 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _08179690 + adds r4, r0, r1 + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + movs r1, #0xa + ldrsh r0, [r4, r1] + movs r2, #0x12 + ldrsh r1, [r4, r2] + bl __modsi3 + cmp r0, #0 + bne _08179688 + strh r0, [r4, #0xa] + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + ldrh r0, [r4, #0x10] + rsbs r0, r0, #0 + strh r0, [r4, #0x10] + movs r0, #0x10 + ldrsh r1, [r4, r0] + movs r0, #0 + bl SetCameraPanning + movs r2, #0xc + ldrsh r1, [r4, r2] + movs r2, #0x14 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _08179688 + adds r0, r5, #0 + bl DestroyTask + bl EnableBothScriptContexts + bl InstallCameraPanAheadCallback +_08179688: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08179690: .4byte 0x03005B60 + thumb_func_end SealedChamberShakingEffect + + thumb_func_start ShouldDoBrailleRegirockEffect +ShouldDoBrailleRegirockEffect: @ 0x08179694 + push {lr} + movs r0, #0x8b + lsls r0, r0, #4 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _081796E4 + ldr r0, _081796D0 + ldr r3, [r0] + ldrh r1, [r3, #4] + movs r0, #0xc3 + lsls r0, r0, #3 + cmp r1, r0 + bne _081796E4 + ldr r1, [r3] + ldr r0, _081796D4 + cmp r1, r0 + beq _081796C8 + ldr r0, _081796D8 + cmp r1, r0 + beq _081796C8 + ldr r0, _081796DC + cmp r1, r0 + bne _081796E4 +_081796C8: + ldr r0, _081796E0 + strb r2, [r0] + movs r0, #1 + b _081796E6 + .align 2, 0 +_081796D0: .4byte 0x03005AEC +_081796D4: .4byte 0x00170006 +_081796D8: .4byte 0x00170005 +_081796DC: .4byte 0x00170007 +_081796E0: .4byte 0x0203B9E0 +_081796E4: + movs r0, #0 +_081796E6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ShouldDoBrailleRegirockEffect + + thumb_func_start SetUpPuzzleEffectRegirock +SetUpPuzzleEffectRegirock: @ 0x081796EC + push {lr} + bl GetCursorSelectionMonId + ldr r1, _08179704 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [r1] + movs r0, #0x3c + bl FieldEffectStart + pop {r0} + bx r0 + .align 2, 0 +_08179704: .4byte 0x020388A8 + thumb_func_end SetUpPuzzleEffectRegirock + + thumb_func_start UseRegirockHm_Callback +UseRegirockHm_Callback: @ 0x08179708 + push {lr} + movs r0, #0x3c + bl FieldEffectActiveListRemove + bl DoBrailleRegirockEffect + pop {r0} + bx r0 + thumb_func_end UseRegirockHm_Callback + + thumb_func_start DoBrailleRegirockEffect +DoBrailleRegirockEffect: @ 0x08179718 + push {lr} + ldr r2, _08179774 + movs r0, #0xe + movs r1, #0x1a + bl MapGridSetMetatileIdAt + ldr r2, _08179778 + movs r0, #0xf + movs r1, #0x1a + bl MapGridSetMetatileIdAt + movs r2, #0x8b + lsls r2, r2, #2 + movs r0, #0x10 + movs r1, #0x1a + bl MapGridSetMetatileIdAt + ldr r2, _0817977C + movs r0, #0xe + movs r1, #0x1b + bl MapGridSetMetatileIdAt + ldr r2, _08179780 + movs r0, #0xf + movs r1, #0x1b + bl MapGridSetMetatileIdAt + ldr r2, _08179784 + movs r0, #0x10 + movs r1, #0x1b + bl MapGridSetMetatileIdAt + bl DrawWholeMapView + movs r0, #0x14 + bl PlaySE + movs r0, #0x8b + lsls r0, r0, #4 + bl FlagSet + bl ScriptContext2_Disable + pop {r0} + bx r0 + .align 2, 0 +_08179774: .4byte 0x0000022A +_08179778: .4byte 0x0000022B +_0817977C: .4byte 0x00000E32 +_08179780: .4byte 0x00000233 +_08179784: .4byte 0x00000E34 + thumb_func_end DoBrailleRegirockEffect + + thumb_func_start ShouldDoBrailleRegisteelEffect +ShouldDoBrailleRegisteelEffect: @ 0x08179788 + push {lr} + ldr r0, _081797B4 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081797C8 + ldr r0, _081797B8 + ldr r2, [r0] + ldrh r1, [r2, #4] + ldr r0, _081797BC + cmp r1, r0 + bne _081797C8 + ldr r1, [r2] + ldr r0, _081797C0 + cmp r1, r0 + bne _081797C8 + ldr r1, _081797C4 + movs r0, #1 + strb r0, [r1] + movs r0, #1 + b _081797CA + .align 2, 0 +_081797B4: .4byte 0x000008B2 +_081797B8: .4byte 0x03005AEC +_081797BC: .4byte 0x00004418 +_081797C0: .4byte 0x00190008 +_081797C4: .4byte 0x0203B9E0 +_081797C8: + movs r0, #0 +_081797CA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ShouldDoBrailleRegisteelEffect + + thumb_func_start SetUpPuzzleEffectRegisteel +SetUpPuzzleEffectRegisteel: @ 0x081797D0 + push {lr} + bl GetCursorSelectionMonId + ldr r1, _081797E8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [r1] + movs r0, #0x3c + bl FieldEffectStart + pop {r0} + bx r0 + .align 2, 0 +_081797E8: .4byte 0x020388A8 + thumb_func_end SetUpPuzzleEffectRegisteel + + thumb_func_start UseRegisteelHm_Callback +UseRegisteelHm_Callback: @ 0x081797EC + push {lr} + movs r0, #0x3c + bl FieldEffectActiveListRemove + bl DoBrailleRegisteelEffect + pop {r0} + bx r0 + thumb_func_end UseRegisteelHm_Callback + + thumb_func_start DoBrailleRegisteelEffect +DoBrailleRegisteelEffect: @ 0x081797FC + push {lr} + ldr r2, _08179854 + movs r0, #0xe + movs r1, #0x1a + bl MapGridSetMetatileIdAt + ldr r2, _08179858 + movs r0, #0xf + movs r1, #0x1a + bl MapGridSetMetatileIdAt + movs r2, #0x8b + lsls r2, r2, #2 + movs r0, #0x10 + movs r1, #0x1a + bl MapGridSetMetatileIdAt + ldr r2, _0817985C + movs r0, #0xe + movs r1, #0x1b + bl MapGridSetMetatileIdAt + ldr r2, _08179860 + movs r0, #0xf + movs r1, #0x1b + bl MapGridSetMetatileIdAt + ldr r2, _08179864 + movs r0, #0x10 + movs r1, #0x1b + bl MapGridSetMetatileIdAt + bl DrawWholeMapView + movs r0, #0x14 + bl PlaySE + ldr r0, _08179868 + bl FlagSet + bl ScriptContext2_Disable + pop {r0} + bx r0 + .align 2, 0 +_08179854: .4byte 0x0000022A +_08179858: .4byte 0x0000022B +_0817985C: .4byte 0x00000E32 +_08179860: .4byte 0x00000233 +_08179864: .4byte 0x00000E34 +_08179868: .4byte 0x000008B2 + thumb_func_end DoBrailleRegisteelEffect + + thumb_func_start DoBrailleWait +DoBrailleWait: @ 0x0817986C + bx lr + .align 2, 0 + thumb_func_end DoBrailleWait + + thumb_func_start FldEff_UsePuzzleEffect +FldEff_UsePuzzleEffect: @ 0x08179870 + push {lr} + bl oei_task_add + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _08179890 + ldrb r0, [r0] + cmp r0, #1 + bne _0817989C + ldr r1, _08179894 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r2, _08179898 + b _081798A8 + .align 2, 0 +_08179890: .4byte 0x0203B9E0 +_08179894: .4byte 0x03005B60 +_08179898: .4byte 0x081797ED +_0817989C: + ldr r1, _081798B4 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r2, _081798B8 +_081798A8: + lsrs r1, r2, #0x10 + strh r1, [r0, #0x18] + strh r2, [r0, #0x1a] + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_081798B4: .4byte 0x03005B60 +_081798B8: .4byte 0x08179709 + thumb_func_end FldEff_UsePuzzleEffect + + thumb_func_start ShouldDoBrailleRegicePuzzle +ShouldDoBrailleRegicePuzzle: @ 0x081798BC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r4, _08179900 + ldr r0, [r4] + ldrh r1, [r0, #4] + ldr r0, _08179904 + cmp r1, r0 + beq _081798D2 + b _08179A12 +_081798D2: + ldr r0, _08179908 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081798E0 + b _08179A12 +_081798E0: + movs r0, #2 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081798EE + b _08179A12 +_081798EE: + movs r0, #3 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08179910 + b _08179A12 + .align 2, 0 +_08179900: .4byte 0x03005AEC +_08179904: .4byte 0x00004318 +_08179908: .4byte 0x000008B1 +_0817990C: + movs r0, #1 + b _08179A14 +_08179910: + movs r5, #0 + mov r8, r4 + ldr r4, _0817995C + adds r0, r4, #1 + mov ip, r0 + ldr r6, _08179960 + ldr r1, _08179964 + mov sb, r1 +_08179920: + lsls r0, r5, #1 + adds r1, r0, r4 + add r0, ip + ldrb r3, [r0] + mov r7, r8 + ldr r2, [r7] + movs r7, #0 + ldrsh r0, [r2, r7] + ldrb r1, [r1] + cmp r0, r1 + bne _081799FC + movs r1, #2 + ldrsh r0, [r2, r1] + cmp r0, r3 + bne _081799FC + cmp r5, #0xf + bhi _08179968 + adds r0, r6, #0 + bl VarGet + lsls r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #9 + lsls r1, r5 + orrs r1, r0 + lsrs r1, r1, #0x10 + adds r0, r6, #0 + bl VarSet + b _081799A8 + .align 2, 0 +_0817995C: .4byte 0x085CD314 +_08179960: .4byte 0x0000403B +_08179964: .4byte 0x0000403C +_08179968: + cmp r5, #0x1f + bhi _0817998A + mov r0, sb + bl VarGet + lsls r0, r0, #0x10 + adds r2, r5, #0 + subs r2, #0x10 + movs r1, #0x80 + lsls r1, r1, #9 + lsls r1, r2 + orrs r1, r0 + lsrs r1, r1, #0x10 + mov r0, sb + bl VarSet + b _081799A8 +_0817998A: + ldr r4, _081799E4 + adds r0, r4, #0 + bl VarGet + lsls r0, r0, #0x10 + adds r2, r5, #0 + subs r2, #0x20 + movs r1, #0x80 + lsls r1, r1, #9 + lsls r1, r2 + orrs r1, r0 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl VarSet +_081799A8: + ldr r0, _081799E8 + bl VarGet + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, _081799EC + cmp r4, r0 + bne _08179A12 + ldr r0, _081799F0 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r4 + bne _08179A12 + ldr r0, _081799E4 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xf + bne _08179A12 + ldr r0, _081799F4 + ldr r0, [r0] + ldr r1, [r0] + ldr r0, _081799F8 + cmp r1, r0 + beq _0817990C + b _08179A12 + .align 2, 0 +_081799E4: .4byte 0x0000403D +_081799E8: .4byte 0x0000403B +_081799EC: .4byte 0x0000FFFF +_081799F0: .4byte 0x0000403C +_081799F4: .4byte 0x03005AEC +_081799F8: .4byte 0x00150008 +_081799FC: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x23 + bls _08179920 + movs r0, #3 + bl FlagSet + movs r0, #2 + bl FlagClear +_08179A12: + movs r0, #0 +_08179A14: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end ShouldDoBrailleRegicePuzzle + diff --git a/asm/bug.s b/asm/bug.s new file mode 100644 index 0000000..adc1fdd --- /dev/null +++ b/asm/bug.s @@ -0,0 +1,826 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_08110BB8 +sub_08110BB8: @ 0x08110BB8 + push {r4, r5, r6, lr} + adds r6, r0, #0 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08110BE4 + adds r0, r6, #0 + movs r1, #2 + bl StartSpriteAffineAnim + ldr r0, _08110BE0 + ldrh r1, [r0, #4] + rsbs r1, r1, #0 + strh r1, [r0, #4] + ldrh r1, [r0] + rsbs r1, r1, #0 + strh r1, [r0] + b _08110C14 + .align 2, 0 +_08110BE0: .4byte 0x020380BE +_08110BE4: + ldr r0, _08110C78 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08110C14 + adds r0, r6, #0 + movs r1, #1 + bl StartSpriteAffineAnim + ldr r1, _08110C7C + ldrh r0, [r1, #2] + rsbs r0, r0, #0 + strh r0, [r1, #2] + ldrh r0, [r1, #4] + rsbs r0, r0, #0 + strh r0, [r1, #4] + ldrh r0, [r1, #6] + rsbs r0, r0, #0 + strh r0, [r1, #6] + ldrh r0, [r1] + rsbs r0, r0, #0 + strh r0, [r1] +_08110C14: + ldr r5, _08110C78 + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord2 + lsls r0, r0, #0x18 + ldr r4, _08110C7C + lsrs r0, r0, #0x18 + ldrh r1, [r4] + adds r0, r0, r1 + strh r0, [r6, #0x20] + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #2] + adds r0, r0, r1 + strh r0, [r6, #0x22] + ldrh r0, [r4, #8] + strh r0, [r6, #0x2e] + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #4] + adds r0, r0, r1 + strh r0, [r6, #0x32] + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r4, [r4, #6] + adds r0, r0, r4 + strh r0, [r6, #0x36] + ldr r0, _08110C80 + str r0, [r6, #0x1c] + ldr r1, _08110C84 + adds r0, r6, #0 + bl StoreSpriteCallbackInData6 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08110C78: .4byte 0x020380D7 +_08110C7C: .4byte 0x020380BE +_08110C80: .4byte 0x080A67B5 +_08110C84: .4byte 0x080A34C5 + thumb_func_end sub_08110BB8 + + thumb_func_start sub_08110C88 +sub_08110C88: @ 0x08110C88 + push {r4, r5, r6, lr} + adds r6, r0, #0 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08110CAC + ldr r1, _08110CA8 + ldrh r0, [r1] + rsbs r0, r0, #0 + strh r0, [r1] + adds r0, r6, #0 + movs r1, #2 + bl StartSpriteAffineAnim + b _08110CC8 + .align 2, 0 +_08110CA8: .4byte 0x020380BE +_08110CAC: + ldr r0, _08110D24 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08110CC8 + ldr r0, _08110D28 + ldrh r1, [r0, #2] + rsbs r1, r1, #0 + strh r1, [r0, #2] + ldrh r1, [r0] + rsbs r1, r1, #0 + strh r1, [r0] +_08110CC8: + ldr r5, _08110D24 + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord2 + lsls r0, r0, #0x18 + ldr r4, _08110D28 + lsrs r0, r0, #0x18 + ldrh r1, [r4] + adds r0, r0, r1 + strh r0, [r6, #0x20] + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #2] + adds r0, r0, r1 + strh r0, [r6, #0x22] + ldrh r0, [r4, #4] + strh r0, [r6, #0x2e] + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r6, #0x32] + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r6, #0x36] + ldr r0, _08110D2C + str r0, [r6, #0x1c] + ldr r1, _08110D30 + adds r0, r6, #0 + bl StoreSpriteCallbackInData6 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08110D24: .4byte 0x020380D7 +_08110D28: .4byte 0x020380BE +_08110D2C: .4byte 0x080A67B5 +_08110D30: .4byte 0x080A34C5 + thumb_func_end sub_08110C88 + + thumb_func_start AnimTranslateWebThread +AnimTranslateWebThread: @ 0x08110D34 + push {r4, r5, lr} + adds r5, r0, #0 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08110D50 + ldr r0, _08110D90 + movs r2, #4 + ldrsh r1, [r0, r2] + lsrs r2, r1, #0x1f + adds r1, r1, r2 + asrs r1, r1, #1 + strh r1, [r0, #4] +_08110D50: + adds r0, r5, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldr r1, _08110D90 + ldrh r0, [r1, #4] + strh r0, [r5, #0x2e] + ldrh r0, [r5, #0x20] + strh r0, [r5, #0x30] + ldrh r0, [r5, #0x22] + strh r0, [r5, #0x34] + movs r2, #8 + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _08110D98 + ldr r4, _08110D94 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x32] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x36] + b _08110DAA + .align 2, 0 +_08110D90: .4byte 0x020380BE +_08110D94: .4byte 0x020380D7 +_08110D98: + ldr r0, _08110DC0 + ldrb r0, [r0] + adds r2, r5, #0 + adds r2, #0x32 + adds r3, r5, #0 + adds r3, #0x36 + movs r1, #1 + bl SetAverageBattlerPositions +_08110DAA: + adds r0, r5, #0 + bl sub_080A689C + ldr r0, _08110DC4 + ldrh r0, [r0, #6] + strh r0, [r5, #0x38] + ldr r0, _08110DC8 + str r0, [r5, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08110DC0: .4byte 0x020380D7 +_08110DC4: .4byte 0x020380BE +_08110DC8: .4byte 0x08110DCD + thumb_func_end AnimTranslateWebThread + + thumb_func_start sub_08110DCC +sub_08110DCC: @ 0x08110DCC + push {r4, lr} + adds r4, r0, #0 + bl AnimTranslateLinear + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08110DE2 + adds r0, r4, #0 + bl DestroyAnimSprite + b _08110DFE +_08110DE2: + movs r1, #0x3a + ldrsh r0, [r4, r1] + movs r2, #0x38 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, #0x24] + adds r0, r0, r1 + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x3a] + adds r0, #0xd + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x3a] +_08110DFE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08110DCC + + thumb_func_start sub_08110E04 +sub_08110E04: @ 0x08110E04 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08110E34 + ldrb r0, [r0] + adds r2, r4, #0 + adds r2, #0x20 + adds r3, r4, #0 + adds r3, #0x22 + movs r1, #0 + bl SetAverageBattlerPositions + ldr r0, _08110E38 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08110E40 + ldr r0, _08110E3C + ldrh r1, [r4, #0x20] + ldrh r2, [r0] + subs r1, r1, r2 + strh r1, [r4, #0x20] + b _08110E4C + .align 2, 0 +_08110E34: .4byte 0x020380D7 +_08110E38: .4byte 0x020380D6 +_08110E3C: .4byte 0x020380BE +_08110E40: + ldr r1, _08110E74 + ldrh r0, [r1] + ldrh r2, [r4, #0x20] + adds r0, r0, r2 + strh r0, [r4, #0x20] + adds r0, r1, #0 +_08110E4C: + ldrh r0, [r0, #2] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] + ldr r0, _08110E78 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08110E68 + ldrh r0, [r4, #0x22] + adds r0, #8 + strh r0, [r4, #0x22] +_08110E68: + ldr r0, _08110E7C + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08110E74: .4byte 0x020380BE +_08110E78: .4byte 0x020380D7 +_08110E7C: .4byte 0x08110E81 + thumb_func_end sub_08110E04 + + thumb_func_start sub_08110E80 +sub_08110E80: @ 0x08110E80 + push {lr} + adds r3, r0, #0 + ldrh r0, [r3, #0x2e] + adds r0, #1 + strh r0, [r3, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + bne _08110EB4 + movs r0, #0 + strh r0, [r3, #0x2e] + movs r0, #0x3e + adds r0, r0, r3 + mov ip, r0 + ldrb r2, [r0] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] +_08110EB4: + ldrh r0, [r3, #0x30] + adds r0, #1 + strh r0, [r3, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x33 + bne _08110EC8 + adds r0, r3, #0 + bl DestroyAnimSprite +_08110EC8: + pop {r0} + bx r0 + thumb_func_end sub_08110E80 + + thumb_func_start sub_08110ECC +sub_08110ECC: @ 0x08110ECC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xfd + lsls r1, r1, #6 + movs r0, #0x50 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0x10 + bl SetGpuReg + movs r0, #0x10 + strh r0, [r4, #0x2e] + ldr r0, _08110EF0 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08110EF0: .4byte 0x08110EF5 + thumb_func_end sub_08110ECC + + thumb_func_start sub_08110EF4 +sub_08110EF4: @ 0x08110EF4 + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x32] + movs r2, #0x32 + ldrsh r0, [r4, r2] + cmp r0, #0x13 + bgt _08110F08 + adds r0, r1, #1 + strh r0, [r4, #0x32] + b _08110F46 +_08110F08: + ldrh r1, [r4, #0x30] + adds r0, r1, #1 + strh r0, [r4, #0x30] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08110F46 + ldrh r1, [r4, #0x2e] + subs r1, #1 + strh r1, [r4, #0x2e] + movs r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08110F46 + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08110F4C + str r0, [r4, #0x1c] +_08110F46: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08110F4C: .4byte 0x08110F51 + thumb_func_end sub_08110EF4 + + thumb_func_start sub_08110F50 +sub_08110F50: @ 0x08110F50 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + adds r0, r4, #0 + bl DestroyAnimSprite + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08110F50 + + thumb_func_start AnimTranslateStinger +AnimTranslateStinger: @ 0x08110F70 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r7, r0, #0 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08110F90 + ldr r1, _08110F8C + ldrh r0, [r1, #4] + rsbs r0, r0, #0 + strh r0, [r1, #4] + b _08110FB2 + .align 2, 0 +_08110F8C: .4byte 0x020380BE +_08110F90: + ldr r0, _0811108C + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08110FB2 + ldr r1, _08111090 + ldrh r0, [r1, #4] + rsbs r0, r0, #0 + strh r0, [r1, #4] + ldrh r0, [r1, #2] + rsbs r0, r0, #0 + strh r0, [r1, #2] + ldrh r0, [r1, #6] + rsbs r0, r0, #0 + strh r0, [r1, #6] +_08110FB2: + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08111002 + ldr r0, _0811108C + ldrb r0, [r0] + bl GetBattlerSide + adds r4, r0, #0 + ldr r5, _08111094 + ldrb r0, [r5] + bl GetBattlerSide + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + bne _08111002 + ldrb r0, [r5] + bl GetBattlerPosition + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08110FF0 + ldrb r0, [r5] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08111002 +_08110FF0: + ldr r0, _08111090 + movs r2, #4 + ldrsh r1, [r0, r2] + rsbs r1, r1, #0 + strh r1, [r0, #4] + movs r2, #0 + ldrsh r1, [r0, r2] + rsbs r1, r1, #0 + strh r1, [r0] +_08111002: + adds r0, r7, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldr r5, _08111094 + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + adds r4, r0, #0 + lsls r4, r4, #0x18 + ldr r6, _08111090 + lsrs r4, r4, #0x18 + ldrh r0, [r6, #4] + adds r4, r4, r0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrh r2, [r6, #6] + adds r1, r1, r2 + lsls r1, r1, #0x10 + ldrh r2, [r7, #0x20] + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + subs r0, r0, r2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrh r2, [r7, #0x22] + lsrs r5, r1, #0x10 + asrs r1, r1, #0x10 + subs r1, r1, r2 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl ArcTan2Neg + lsls r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + movs r3, #0x80 + lsls r3, r3, #1 + str r0, [sp] + adds r0, r7, #0 + movs r1, #0 + adds r2, r3, #0 + bl TrySetSpriteRotScale + ldrh r0, [r6, #8] + strh r0, [r7, #0x2e] + strh r4, [r7, #0x32] + strh r5, [r7, #0x36] + ldr r0, _08111098 + str r0, [r7, #0x1c] + ldr r1, _0811109C + adds r0, r7, #0 + bl StoreSpriteCallbackInData6 + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0811108C: .4byte 0x020380D6 +_08111090: .4byte 0x020380BE +_08111094: .4byte 0x020380D7 +_08111098: .4byte 0x080A67B5 +_0811109C: .4byte 0x080A34C5 + thumb_func_end AnimTranslateStinger + + thumb_func_start AnimMissileArc +AnimMissileArc: @ 0x081110A0 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldr r0, _0811110C + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081110C0 + ldr r1, _08111110 + ldrh r0, [r1, #4] + rsbs r0, r0, #0 + strh r0, [r1, #4] +_081110C0: + ldr r4, _08111110 + ldrh r0, [r4, #8] + strh r0, [r6, #0x2e] + ldr r5, _08111114 + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #4] + adds r0, r0, r1 + strh r0, [r6, #0x32] + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #6] + adds r0, r0, r1 + strh r0, [r6, #0x36] + ldrh r0, [r4, #0xa] + strh r0, [r6, #0x38] + adds r0, r6, #0 + bl InitAnimArcTranslation + ldr r0, _08111118 + str r0, [r6, #0x1c] + adds r2, r6, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0811110C: .4byte 0x020380D6 +_08111110: .4byte 0x020380BE +_08111114: .4byte 0x020380D7 +_08111118: .4byte 0x0811111D + thumb_func_end AnimMissileArc + + thumb_func_start AnimMissileArcStep +AnimMissileArcStep: @ 0x0811111C + push {r4, r5, r6, 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, #5 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r2] + adds r0, r4, #0 + bl TranslateAnimHorizontalArc + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08111148 + adds r0, r4, #0 + bl DestroyAnimSprite + b _081111D8 +_08111148: + movs r0, #0x2e + adds r0, r0, r4 + mov r8, r0 + ldrh r7, [r4, #0x20] + ldrh r5, [r4, #0x24] + ldrh r1, [r4, #0x22] + mov ip, r1 + ldrh r6, [r4, #0x26] + mov r2, r8 + add r1, sp, #4 + movs r3, #7 +_0811115E: + ldrh r0, [r2] + strh r0, [r1] + adds r2, #2 + adds r1, #2 + subs r3, #1 + cmp r3, #0 + bge _0811115E + adds r0, r7, r5 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + mov r2, ip + adds r0, r2, r6 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r0, r4, #0 + bl TranslateAnimHorizontalArc + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081111D8 + ldrh r0, [r4, #0x24] + ldrh r1, [r4, #0x20] + adds r0, r0, r1 + lsls r1, r5, #0x10 + asrs r1, r1, #0x10 + subs r0, r0, r1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrh r1, [r4, #0x26] + ldrh r2, [r4, #0x22] + adds r1, r1, r2 + lsls r2, r6, #0x10 + asrs r2, r2, #0x10 + subs r1, r1, r2 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl ArcTan2Neg + lsls r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + movs r3, #0x80 + lsls r3, r3, #1 + str r0, [sp] + adds r0, r4, #0 + movs r1, #0 + adds r2, r3, #0 + bl TrySetSpriteRotScale + add r2, sp, #4 + mov r1, r8 + movs r3, #7 +_081111CA: + ldrh r0, [r2] + strh r0, [r1] + adds r2, #2 + adds r1, #2 + subs r3, #1 + cmp r3, #0 + bge _081111CA +_081111D8: + add sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end AnimMissileArcStep + + thumb_func_start sub_081111E4 +sub_081111E4: @ 0x081111E4 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _081111F8 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08111200 + ldr r4, _081111FC + b _08111202 + .align 2, 0 +_081111F8: .4byte 0x020380BE +_081111FC: .4byte 0x020380D6 +_08111200: + ldr r4, _08111234 +_08111202: + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #0x12 + strh r0, [r5, #0x22] + ldr r1, _08111238 + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _0811123C + str r0, [r5, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08111234: .4byte 0x020380D7 +_08111238: .4byte 0x080A6015 +_0811123C: .4byte 0x080A6085 + thumb_func_end sub_081111E4 + diff --git a/asm/cable_car.s b/asm/cable_car.s new file mode 100644 index 0000000..a967d8f --- /dev/null +++ b/asm/cable_car.s @@ -0,0 +1,2970 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start CableCarTask1 +CableCarTask1: @ 0x0814FC4C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0814FC70 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0814FC6A + ldr r0, _0814FC74 + bl SetMainCallback2 + adds r0, r4, #0 + bl DestroyTask +_0814FC6A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814FC70: .4byte 0x02037C74 +_0814FC74: .4byte 0x0814FCA5 + thumb_func_end CableCarTask1 + + thumb_func_start CableCar +CableCar: @ 0x0814FC78 + push {lr} + sub sp, #4 + bl ScriptContext2_Enable + ldr r0, _0814FCA0 + movs r1, #1 + bl CreateTask + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_0814FCA0: .4byte 0x0814FC4D + thumb_func_end CableCar + + thumb_func_start CableCarMainCallback_Setup +CableCarMainCallback_Setup: @ 0x0814FCA4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x18 + movs r4, #0 + str r4, [sp, #0x14] + ldr r1, _0814FCCC + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r1, r2 + ldrb r0, [r0] + adds r6, r1, #0 + cmp r0, #9 + bhi _0814FCFC + lsls r0, r0, #2 + ldr r1, _0814FCD0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0814FCCC: .4byte 0x03002360 +_0814FCD0: .4byte 0x0814FCD4 +_0814FCD4: @ jump table + .4byte _0814FCFC @ case 0 + .4byte _0814FDB4 @ case 1 + .4byte _0814FE6C @ case 2 + .4byte _0814FF2C @ case 3 + .4byte _0814FF58 @ case 4 + .4byte _0814FF74 @ case 5 + .4byte _0814FFD4 @ case 6 + .4byte _0815006C @ case 7 + .4byte _0815016C @ case 8 + .4byte _081501A4 @ case 9 +_0814FCFC: + movs r0, #0 + bl SetVBlankCallback + movs r0, #0 + bl sub_08150B48 + bl ScanlineEffect_Stop + movs r3, #0xc0 + lsls r3, r3, #0x13 + movs r4, #0xc0 + lsls r4, r4, #9 + add r0, sp, #0x10 + mov sb, r0 + add r2, sp, #0xc + movs r6, #0 + ldr r1, _0814FDA0 + movs r5, #0x80 + lsls r5, r5, #5 + ldr r7, _0814FDA4 + movs r0, #0x81 + lsls r0, r0, #0x18 + mov r8, r0 +_0814FD2A: + strh r6, [r2] + add r0, sp, #0xc + str r0, [r1] + str r3, [r1, #4] + str r7, [r1, #8] + ldr r0, [r1, #8] + adds r3, r3, r5 + subs r4, r4, r5 + cmp r4, r5 + bhi _0814FD2A + strh r6, [r2] + add r2, sp, #0xc + str r2, [r1] + str r3, [r1, #4] + lsrs r0, r4, #1 + mov r3, r8 + orrs r0, r3 + str r0, [r1, #8] + ldr r0, [r1, #8] + movs r0, #0xe0 + lsls r0, r0, #0x13 + movs r3, #0x80 + lsls r3, r3, #3 + movs r4, #0 + str r4, [sp, #0x10] + ldr r2, _0814FDA0 + mov r1, sb + str r1, [r2] + str r0, [r2, #4] + lsrs r0, r3, #2 + movs r1, #0x85 + lsls r1, r1, #0x18 + orrs r0, r1 + str r0, [r2, #8] + ldr r0, [r2, #8] + movs r1, #0xa0 + lsls r1, r1, #0x13 + add r0, sp, #0xc + strh r4, [r0] + str r0, [r2] + str r1, [r2, #4] + lsrs r3, r3, #1 + movs r0, #0x81 + lsls r0, r0, #0x18 + orrs r3, r0 + str r3, [r2, #8] + ldr r0, [r2, #8] + ldr r4, _0814FDA8 + ldr r0, _0814FDAC + bl AllocZeroed + str r0, [r4] + ldr r1, _0814FDB0 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, #1 + b _08150200 + .align 2, 0 +_0814FDA0: .4byte 0x040000D4 +_0814FDA4: .4byte 0x81000800 +_0814FDA8: .4byte 0x0203A878 +_0814FDAC: .4byte 0x00004110 +_0814FDB0: .4byte 0x03002360 +_0814FDB4: + bl ResetSpriteData + bl ResetTasks + bl FreeAllSpritePalettes + bl ResetPaletteFade + bl reset_temp_tile_data_buffers + bl StartWeather + movs r4, #0 + ldr r0, _0814FE48 + ldr r0, [r0] + adds r1, r0, #0 + adds r1, #0xf0 + movs r2, #0 +_0814FDD8: + lsls r0, r4, #2 + adds r0, r1, r0 + str r2, [r0] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x13 + bls _0814FDD8 + bl InitMapMusic + bl ResetMapMusic + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _0814FE4C + movs r0, #0 + movs r2, #4 + bl InitBgsFromTemplates + ldr r4, _0814FE50 + ldr r1, [r4] + adds r1, #0xfc + movs r0, #0 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r3, _0814FE54 + adds r1, r1, r3 + movs r0, #1 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, _0814FE58 + adds r1, r1, r0 + movs r0, #2 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r2, _0814FE5C + adds r1, r1, r2 + movs r0, #3 + bl SetBgTilemapBuffer + ldr r2, _0814FE60 + ldr r1, _0814FE64 + movs r0, #0 + strh r0, [r1] + strh r0, [r2] + ldr r1, _0814FE68 + movs r3, #0x87 + lsls r3, r3, #3 + adds r1, r1, r3 + ldrb r0, [r1] + adds r0, #1 + b _08150200 + .align 2, 0 +_0814FE48: .4byte 0x08526DE8 +_0814FE4C: .4byte 0x085AC474 +_0814FE50: .4byte 0x0203A878 +_0814FE54: .4byte 0x000010FC +_0814FE58: .4byte 0x000020FC +_0814FE5C: .4byte 0x000030FC +_0814FE60: .4byte 0x02021B38 +_0814FE64: .4byte 0x02021B3A +_0814FE68: .4byte 0x03002360 +_0814FE6C: + movs r4, #0 + add r5, sp, #0x14 + ldr r6, _0814FEF4 +_0814FE72: + lsls r0, r4, #3 + adds r0, r0, r6 + bl LoadCompressedSpriteSheet + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #2 + bls _0814FE72 + ldr r0, _0814FEF8 + bl LoadSpritePalettes + ldr r0, _0814FEFC + adds r1, r5, #0 + bl malloc_and_decompress + ldr r4, _0814FF00 + ldr r1, [r4] + ldr r2, _0814FF04 + adds r1, r1, r2 + str r0, [r1] + ldr r0, _0814FF08 + adds r1, r5, #0 + bl malloc_and_decompress + ldr r1, [r4] + movs r3, #0x82 + lsls r3, r3, #7 + adds r1, r1, r3 + str r0, [r1] + ldr r0, _0814FF0C + adds r1, r5, #0 + bl malloc_and_decompress + ldr r1, [r4] + ldr r2, _0814FF10 + adds r1, r1, r2 + str r0, [r1] + ldr r0, _0814FF14 + adds r1, r5, #0 + bl malloc_and_decompress + ldr r1, [r4] + ldr r3, _0814FF18 + adds r2, r1, r3 + str r0, [r2] + ldr r0, _0814FF1C + adds r1, r1, r0 + ldr r0, _0814FF20 + str r0, [r1] + ldr r1, _0814FF24 + movs r0, #0 + str r0, [sp] + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, _0814FF28 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, #1 + b _08150200 + .align 2, 0 +_0814FEF4: .4byte 0x085AC95C +_0814FEF8: .4byte 0x085AC97C +_0814FEFC: .4byte 0x085AC484 +_0814FF00: .4byte 0x0203A878 +_0814FF04: .4byte 0x000040FC +_0814FF08: .4byte 0x085AC5DC +_0814FF0C: .4byte 0x085AC760 +_0814FF10: .4byte 0x00004104 +_0814FF14: .4byte 0x085AC938 +_0814FF18: .4byte 0x0000410C +_0814FF1C: .4byte 0x00004108 +_0814FF20: .4byte 0x085AC924 +_0814FF24: .4byte 0x08DBA860 +_0814FF28: .4byte 0x03002360 +_0814FF2C: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0814FF38 + b _08150202 +_0814FF38: + ldr r0, _0814FF50 + movs r1, #0 + movs r2, #0x80 + bl LoadPalette + ldr r1, _0814FF54 + movs r3, #0x87 + lsls r3, r3, #3 + adds r1, r1, r3 + ldrb r0, [r1] + adds r0, #1 + b _08150200 + .align 2, 0 +_0814FF50: .4byte 0x08DBA7C0 +_0814FF54: .4byte 0x03002360 +_0814FF58: + bl LoadCableCarSprites + bl RunTasks + ldr r1, _0814FF70 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + b _08150200 + .align 2, 0 +_0814FF70: .4byte 0x03002360 +_0814FF74: + ldr r0, _0814FF8C + ldr r0, [r0] + ldrb r0, [r0, #2] + cmp r0, #7 + bne _0814FF90 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r6, r2 + ldrb r0, [r1] + adds r0, #1 + b _08150200 + .align 2, 0 +_0814FF8C: .4byte 0x0203A878 +_0814FF90: + ldr r0, _0814FFD0 + ldr r0, [r0] + adds r1, r0, #0 + adds r1, #0xf0 + ldr r0, [r1] + cmp r0, #0 + bne _0814FFA0 + b _08150202 +_0814FFA0: + movs r4, #0 + adds r3, r1, #0 + movs r5, #0xd + rsbs r5, r5, #0 +_0814FFA8: + lsls r0, r4, #2 + adds r0, r3, r0 + ldr r2, [r0] + cmp r2, #0 + beq _0814FFBA + ldrb r1, [r2, #5] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r2, #5] +_0814FFBA: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x13 + bls _0814FFA8 + movs r3, #0x87 + lsls r3, r3, #3 + adds r1, r6, r3 + ldrb r0, [r1] + adds r0, #1 + b _08150200 + .align 2, 0 +_0814FFD0: .4byte 0x08526DE8 +_0814FFD4: + ldr r6, _08150058 + ldr r0, [r6] + movs r1, #0x82 + lsls r1, r1, #7 + adds r0, r0, r1 + ldr r1, [r0] + movs r0, #0x20 + str r0, [sp] + movs r0, #0xf + str r0, [sp, #4] + movs r5, #0x11 + str r5, [sp, #8] + movs r0, #1 + movs r2, #0 + movs r3, #0x11 + bl CopyToBgTilemapBufferRect_ChangePalette + ldr r0, [r6] + ldr r2, _0815005C + adds r0, r0, r2 + ldr r1, [r0] + movs r0, #0x1e + str r0, [sp] + movs r3, #0x14 + mov r8, r3 + str r3, [sp, #4] + str r5, [sp, #8] + movs r0, #2 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBufferRect_ChangePalette + ldr r0, [r6] + ldr r1, _08150060 + adds r0, r0, r1 + ldr r1, [r0] + movs r0, #5 + str r0, [sp] + movs r4, #2 + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #3 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBufferRect_ChangePalette + ldr r0, [r6] + ldr r2, _08150064 + adds r0, r0, r2 + ldr r1, [r0] + str r4, [sp] + mov r3, r8 + str r3, [sp, #4] + str r5, [sp, #8] + movs r0, #3 + movs r2, #0 + movs r3, #2 + bl CopyToBgTilemapBufferRect_ChangePalette + ldr r1, _08150068 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + b _08150200 + .align 2, 0 +_08150058: .4byte 0x0203A878 +_0815005C: .4byte 0x00004104 +_08150060: .4byte 0x00004108 +_08150064: .4byte 0x0000410C +_08150068: .4byte 0x03002360 +_0815006C: + ldr r0, _0815015C + ldrb r0, [r0] + bl sub_081514A4 + ldr r1, _08150160 + mov sb, r1 + ldr r0, [r1] + ldr r2, _08150164 + mov r8, r2 + add r0, r8 + ldr r1, [r0] + adds r1, #0x90 + movs r6, #0xc + str r6, [sp] + movs r5, #3 + str r5, [sp, #4] + movs r4, #0x11 + str r4, [sp, #8] + movs r0, #0 + movs r2, #0 + movs r3, #0xe + bl CopyToBgTilemapBufferRect_ChangePalette + mov r3, sb + ldr r0, [r3] + add r0, r8 + ldr r1, [r0] + adds r1, #0xd8 + str r6, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #0 + movs r2, #0xc + movs r3, #0x11 + bl CopyToBgTilemapBufferRect_ChangePalette + mov r1, sb + ldr r0, [r1] + add r0, r8 + ldr r1, [r0] + movs r2, #0x90 + lsls r2, r2, #1 + adds r1, r1, r2 + str r6, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #0 + movs r2, #0x18 + movs r3, #0x14 + bl CopyToBgTilemapBufferRect_ChangePalette + mov r3, sb + ldr r0, [r3] + add r0, r8 + ldr r1, [r0] + str r6, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #0 + movs r2, #0 + movs r3, #0x11 + bl CopyToBgTilemapBufferRect_ChangePalette + mov r1, sb + ldr r0, [r1] + add r0, r8 + ldr r1, [r0] + adds r1, #0x48 + str r6, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #0 + movs r2, #0 + movs r3, #0x14 + bl CopyToBgTilemapBufferRect_ChangePalette + mov r2, sb + ldr r0, [r2] + add r0, r8 + ldr r1, [r0] + str r6, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #0 + movs r2, #0xc + movs r3, #0x14 + bl CopyToBgTilemapBufferRect_ChangePalette + mov r3, sb + ldr r0, [r3] + add r0, r8 + ldr r1, [r0] + adds r1, #0x48 + str r6, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #0 + movs r2, #0xc + movs r3, #0x17 + bl CopyToBgTilemapBufferRect_ChangePalette + mov r1, sb + ldr r0, [r1] + add r0, r8 + ldr r1, [r0] + str r6, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #0 + movs r2, #0x18 + movs r3, #0x17 + bl CopyToBgTilemapBufferRect_ChangePalette + ldr r1, _08150168 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, #1 + b _08150200 + .align 2, 0 +_0815015C: .4byte 0x02037280 +_08150160: .4byte 0x0203A878 +_08150164: .4byte 0x000040FC +_08150168: .4byte 0x03002360 +_0815016C: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r1, #3 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r0, _0815019C + movs r1, #1 + bl FadeInNewBGM + movs r0, #1 + bl sub_08150B48 + ldr r1, _081501A0 + movs r3, #0x87 + lsls r3, r3, #3 + adds r1, r1, r3 + ldrb r0, [r1] + adds r0, #1 + b _08150200 + .align 2, 0 +_0815019C: .4byte 0x000001A9 +_081501A0: .4byte 0x03002360 +_081501A4: + ldr r3, _081501D8 + ldrh r2, [r3] + movs r0, #0 + strh r0, [r3] + ldr r4, _081501DC + ldrh r0, [r4] + movs r1, #1 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r0, _081501E0 + bl SetVBlankCallback + ldr r0, _081501E4 + bl SetMainCallback2 + ldr r0, _081501E8 + movs r1, #0 + bl CreateTask + ldr r0, _081501EC + ldrh r0, [r0] + cmp r0, #0 + bne _081501F4 + ldr r0, _081501F0 + b _081501F6 + .align 2, 0 +_081501D8: .4byte 0x04000208 +_081501DC: .4byte 0x04000200 +_081501E0: .4byte 0x081507DD +_081501E4: .4byte 0x08150219 +_081501E8: .4byte 0x081503C1 +_081501EC: .4byte 0x02037280 +_081501F0: .4byte 0x0815052D +_081501F4: + ldr r0, _08150210 +_081501F6: + movs r1, #1 + bl CreateTask + ldr r1, _08150214 + ldr r1, [r1] +_08150200: + strb r0, [r1] +_08150202: + add sp, #0x18 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08150210: .4byte 0x08150641 +_08150214: .4byte 0x0203A878 + thumb_func_end CableCarMainCallback_Setup + + thumb_func_start CableCarMainCallback_Run +CableCarMainCallback_Run: @ 0x08150218 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + bl MapMusicMain + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CableCarMainCallback_Run + + thumb_func_start CleanupCableCar +CleanupCableCar: @ 0x08150234 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + movs r4, #0 + movs r0, #0 + bl HideBg + movs r0, #1 + bl HideBg + movs r0, #2 + bl HideBg + movs r0, #3 + bl HideBg + movs r0, #0 + bl sub_08150B48 + ldr r0, _08150394 + strh r4, [r0] + movs r0, #0 + bl SetCurrentAndNextWeatherNoDelay + add r0, sp, #4 + mov r8, r0 + ldr r0, _08150398 + ldr r0, [r0] + adds r1, r0, #0 + adds r1, #0xf0 + movs r2, #0 +_08150274: + lsls r0, r4, #2 + adds r0, r1, r0 + str r2, [r0] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x13 + bls _08150274 + bl ResetTasks + bl ResetSpriteData + bl ResetPaletteFade + movs r0, #0 + bl UnsetBgTilemapBuffer + movs r0, #1 + bl UnsetBgTilemapBuffer + movs r0, #2 + bl UnsetBgTilemapBuffer + movs r0, #3 + bl UnsetBgTilemapBuffer + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r6, _0815039C + ldr r0, [r6] + ldr r2, _081503A0 + adds r1, r0, r2 + movs r5, #0 + str r5, [r1] + ldr r4, _081503A4 + adds r0, r0, r4 + ldr r0, [r0] + bl Free + ldr r0, [r6] + adds r4, r0, r4 + str r5, [r4] + ldr r4, _081503A8 + adds r0, r0, r4 + ldr r0, [r0] + bl Free + ldr r0, [r6] + adds r4, r0, r4 + str r5, [r4] + movs r4, #0x82 + lsls r4, r4, #7 + adds r0, r0, r4 + ldr r0, [r0] + bl Free + ldr r0, [r6] + adds r4, r0, r4 + str r5, [r4] + ldr r4, _081503AC + adds r0, r0, r4 + ldr r0, [r0] + bl Free + ldr r0, [r6] + adds r4, r0, r4 + str r5, [r4] + bl Free + str r5, [r6] + movs r2, #0xc0 + lsls r2, r2, #0x13 + movs r3, #0xc0 + lsls r3, r3, #9 + mov r4, sp + movs r6, #0 + ldr r1, _081503B0 + movs r5, #0x80 + lsls r5, r5, #5 + ldr r7, _081503B4 + movs r0, #0x81 + lsls r0, r0, #0x18 + mov ip, r0 +_0815031C: + strh r6, [r4] + mov r0, sp + str r0, [r1] + str r2, [r1, #4] + str r7, [r1, #8] + ldr r0, [r1, #8] + adds r2, r2, r5 + subs r3, r3, r5 + cmp r3, r5 + bhi _0815031C + strh r6, [r4] + mov r0, sp + str r0, [r1] + str r2, [r1, #4] + lsrs r0, r3, #1 + mov r2, ip + orrs r0, r2 + str r0, [r1, #8] + ldr r0, [r1, #8] + movs r0, #0xe0 + lsls r0, r0, #0x13 + movs r3, #0x80 + lsls r3, r3, #3 + movs r4, #0 + str r4, [sp, #4] + ldr r2, _081503B0 + mov r1, r8 + str r1, [r2] + str r0, [r2, #4] + lsrs r0, r3, #2 + movs r1, #0x85 + lsls r1, r1, #0x18 + orrs r0, r1 + str r0, [r2, #8] + ldr r0, [r2, #8] + movs r1, #0xa0 + lsls r1, r1, #0x13 + mov r0, sp + strh r4, [r0] + str r0, [r2] + str r1, [r2, #4] + lsrs r3, r3, #1 + movs r0, #0x81 + lsls r0, r0, #0x18 + orrs r3, r0 + str r3, [r2, #8] + ldr r0, [r2, #8] + bl WarpIntoMap + ldr r0, _081503B8 + str r4, [r0] + ldr r0, _081503BC + bl SetMainCallback2 + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08150394: .4byte 0x02021B38 +_08150398: .4byte 0x08526DE8 +_0815039C: .4byte 0x0203A878 +_081503A0: .4byte 0x00004108 +_081503A4: .4byte 0x0000410C +_081503A8: .4byte 0x00004104 +_081503AC: .4byte 0x000040FC +_081503B0: .4byte 0x040000D4 +_081503B4: .4byte 0x81000800 +_081503B8: .4byte 0x03005B0C +_081503BC: .4byte 0x08085935 + thumb_func_end CleanupCableCar + + thumb_func_start sub_081503C0 +sub_081503C0: @ 0x081503C0 + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r4, #0 + ldr r5, _081503EC + ldr r3, [r5] + ldrh r0, [r3, #6] + adds r0, #1 + strh r0, [r3, #6] + ldrb r2, [r3, #1] + adds r7, r5, #0 + cmp r2, #2 + beq _081504C6 + cmp r2, #2 + bgt _081503F0 + cmp r2, #0 + beq _081503FE + cmp r2, #1 + beq _08150418 + b _0815051E + .align 2, 0 +_081503EC: .4byte 0x0203A878 +_081503F0: + cmp r2, #3 + bne _081503F6 + b _081504EC +_081503F6: + cmp r2, #0xff + bne _081503FC + b _08150504 +_081503FC: + b _0815051E +_081503FE: + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrh r1, [r3, #4] + cmp r0, r1 + beq _0815040A + b _0815051E +_0815040A: + ldrb r0, [r3, #2] + bl SetNextWeather + ldr r1, [r5] + movs r0, #1 + strb r0, [r1, #1] + b _0815051E +_08150418: + ldrb r0, [r3, #2] + cmp r0, #2 + beq _0815046C + cmp r0, #7 + beq _08150424 + b _0815051E +_08150424: + ldr r0, _08150468 + ldr r0, [r0] + adds r2, r0, #0 + adds r2, #0xf0 + ldr r0, [r2] + cmp r0, #0 + beq _0815051E + ldrb r1, [r0, #5] + movs r0, #0xc + ands r0, r1 + cmp r0, #0 + beq _0815051E + adds r3, r2, #0 + movs r5, #0xd + rsbs r5, r5, #0 +_08150442: + lsls r0, r4, #2 + adds r0, r3, r0 + ldr r2, [r0] + cmp r2, #0 + beq _08150454 + ldrb r1, [r2, #5] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r2, #5] +_08150454: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x13 + bls _08150442 + ldr r1, [r7] + movs r0, #2 + strb r0, [r1, #1] + b _0815051E + .align 2, 0 +_08150468: .4byte 0x08526DE8 +_0815046C: + ldr r0, _08150480 + ldr r2, [r0] + movs r1, #0xda + lsls r1, r1, #3 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #2 + bne _08150484 + strb r0, [r3, #1] + b _0815051E + .align 2, 0 +_08150480: .4byte 0x08526DE8 +_08150484: + ldrh r1, [r3, #6] + ldrh r0, [r3, #4] + adds r0, #8 + cmp r1, r0 + blt _0815051E + adds r6, r2, #0 + adds r6, #0xf0 + movs r5, #1 + movs r7, #5 + rsbs r7, r7, #0 +_08150498: + lsls r0, r4, #2 + adds r0, r6, r0 + ldr r0, [r0] + cmp r0, #0 + beq _081504BA + adds r3, r0, #0 + adds r3, #0x3e + ldrb r2, [r3] + lsls r1, r2, #0x1d + lsrs r1, r1, #0x1f + eors r1, r5 + ands r1, r5 + lsls r1, r1, #2 + adds r0, r7, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_081504BA: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x13 + bls _08150498 + b _0815051E +_081504C6: + lsls r1, r0, #0x10 + ldr r0, _081504E8 + cmp r1, r0 + bne _0815051E + movs r0, #3 + strb r0, [r3, #1] + subs r0, #4 + str r4, [sp] + movs r1, #3 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + movs r0, #4 + bl FadeOutBGMTemporarily + b _0815051E + .align 2, 0 +_081504E8: .4byte 0x023A0000 +_081504EC: + ldr r0, _08150500 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0815051E + movs r0, #0xff + strb r0, [r3, #1] + b _0815051E + .align 2, 0 +_08150500: .4byte 0x02037C74 +_08150504: + movs r0, #0 + bl SetVBlankCallback + adds r0, r6, #0 + bl DestroyTask + ldr r0, [r5] + ldrb r0, [r0] + bl DestroyTask + ldr r0, _08150528 + bl SetMainCallback2 +_0815051E: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08150528: .4byte 0x08150235 + thumb_func_end sub_081503C0 + + thumb_func_start sub_0815052C +sub_0815052C: @ 0x0815052C + push {r4, r5, r6, lr} + sub sp, #0xc + ldr r6, _08150580 + ldr r1, [r6] + ldrb r0, [r1, #1] + cmp r0, #0xff + beq _0815060C + ldrb r0, [r1, #0x14] + subs r0, #1 + strb r0, [r1, #0x14] + ldr r1, [r6] + ldrh r0, [r1, #6] + movs r3, #1 + ands r0, r3 + cmp r0, #0 + bne _08150552 + ldrb r0, [r1, #0x15] + subs r0, #1 + strb r0, [r1, #0x15] +_08150552: + ldr r2, [r6] + ldrh r0, [r2, #6] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _0815056C + ldrb r0, [r2, #0xc] + subs r0, #1 + strb r0, [r2, #0xc] + ldr r1, [r6] + ldrb r0, [r1, #0xd] + subs r0, #1 + strb r0, [r1, #0xd] +_0815056C: + ldr r0, [r6] + ldrb r1, [r0, #0x14] + cmp r1, #0x20 + beq _081505B8 + cmp r1, #0x20 + bgt _08150584 + cmp r1, #0x10 + beq _081505D0 + b _0815060C + .align 2, 0 +_08150580: .4byte 0x0203A878 +_08150584: + cmp r1, #0x28 + beq _081505A6 + cmp r1, #0xaf + bne _0815060C + movs r0, #2 + str r0, [sp] + movs r0, #0xa + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #3 + movs r1, #0 + movs r2, #0 + movs r3, #0x16 + bl FillBgTilemapBufferRect + b _0815060C +_081505A6: + movs r0, #2 + str r0, [sp] + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #3 + movs r1, #0 + movs r2, #3 + b _081505C8 +_081505B8: + str r3, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #3 + movs r1, #0 + movs r2, #2 +_081505C8: + movs r3, #0 + bl FillBgTilemapBufferRect + b _0815060C +_081505D0: + ldr r1, _08150634 + adds r0, r0, r1 + ldr r1, [r0] + movs r0, #5 + str r0, [sp] + movs r4, #2 + str r4, [sp, #4] + movs r5, #0x11 + str r5, [sp, #8] + movs r0, #3 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBufferRect_ChangePalette + ldr r0, [r6] + ldr r1, _08150638 + adds r0, r0, r1 + ldr r1, [r0] + str r4, [sp] + movs r0, #0x1e + str r0, [sp, #4] + str r5, [sp, #8] + movs r0, #3 + movs r2, #0 + movs r3, #2 + bl CopyToBgTilemapBufferRect_ChangePalette + ldr r1, [r6] + movs r0, #0x40 + strb r0, [r1, #0x15] +_0815060C: + bl sub_08151138 + ldr r3, _0815063C + movs r0, #0 + ldrsh r2, [r3, r0] + adds r1, r2, #1 + adds r0, r1, #0 + cmp r1, #0 + bge _08150622 + adds r0, r2, #0 + adds r0, #0x80 +_08150622: + asrs r0, r0, #7 + lsls r0, r0, #7 + subs r0, r1, r0 + strh r0, [r3] + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08150634: .4byte 0x00004108 +_08150638: .4byte 0x0000410C +_0815063C: .4byte 0x02021B38 + thumb_func_end sub_0815052C + + thumb_func_start sub_08150640 +sub_08150640: @ 0x08150640 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + ldr r7, _08150694 + ldr r1, [r7] + ldrb r0, [r1, #1] + cmp r0, #0xff + bne _08150650 + b _08150792 +_08150650: + ldrb r0, [r1, #0x14] + adds r0, #1 + strb r0, [r1, #0x14] + ldr r1, [r7] + ldrh r0, [r1, #6] + movs r6, #1 + ands r0, r6 + cmp r0, #0 + bne _08150668 + ldrb r0, [r1, #0x15] + adds r0, #1 + strb r0, [r1, #0x15] +_08150668: + ldr r2, [r7] + ldrh r0, [r2, #6] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _08150682 + ldrb r0, [r2, #0xc] + adds r0, #1 + strb r0, [r2, #0xc] + ldr r1, [r7] + ldrb r0, [r1, #0xd] + adds r0, #1 + strb r0, [r1, #0xd] +_08150682: + ldr r0, [r7] + ldrb r1, [r0, #0x14] + cmp r1, #0x20 + beq _081506F6 + cmp r1, #0x20 + bgt _08150698 + cmp r1, #0x10 + beq _081506C4 + b _08150792 + .align 2, 0 +_08150694: .4byte 0x0203A878 +_08150698: + cmp r1, #0x28 + beq _08150760 + cmp r1, #0xb0 + bne _08150792 + ldr r1, _081506C0 + adds r0, r0, r1 + ldr r1, [r0] + movs r0, #2 + str r0, [sp] + movs r0, #0x1e + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #3 + movs r2, #0 + movs r3, #2 + bl CopyToBgTilemapBufferRect_ChangePalette + b _08150792 + .align 2, 0 +_081506C0: .4byte 0x0000410C +_081506C4: + movs r0, #3 + str r0, [sp] + movs r4, #2 + str r4, [sp, #4] + movs r5, #0x11 + str r5, [sp, #8] + movs r1, #0 + movs r2, #2 + movs r3, #0 + bl FillBgTilemapBufferRect + str r4, [sp] + movs r0, #0xa + str r0, [sp, #4] + str r5, [sp, #8] + movs r0, #3 + movs r1, #0 + movs r2, #0 + movs r3, #0x16 + bl FillBgTilemapBufferRect + ldr r1, [r7] + movs r0, #0xc0 + strb r0, [r1, #0x15] + b _08150792 +_081506F6: + ldr r5, _0815075C + adds r0, r0, r5 + ldr r0, [r0] + ldrh r1, [r0, #4] + str r6, [sp] + str r6, [sp, #4] + movs r4, #0x11 + str r4, [sp, #8] + movs r0, #3 + movs r2, #2 + movs r3, #0 + bl FillBgTilemapBufferRect + ldr r0, [r7] + adds r0, r0, r5 + ldr r0, [r0] + ldrh r1, [r0, #6] + str r6, [sp] + str r6, [sp, #4] + str r4, [sp, #8] + movs r0, #3 + movs r2, #3 + movs r3, #0 + bl FillBgTilemapBufferRect + ldr r0, [r7] + adds r0, r0, r5 + ldr r0, [r0] + ldrh r1, [r0, #0xe] + str r6, [sp] + str r6, [sp, #4] + str r4, [sp, #8] + movs r0, #3 + movs r2, #2 + movs r3, #1 + bl FillBgTilemapBufferRect + ldr r0, [r7] + adds r0, r0, r5 + ldr r0, [r0] + ldrh r1, [r0, #0x10] + str r6, [sp] + str r6, [sp, #4] + str r4, [sp, #8] + movs r0, #3 + movs r2, #3 + movs r3, #1 + bl FillBgTilemapBufferRect + b _08150792 + .align 2, 0 +_0815075C: .4byte 0x00004108 +_08150760: + ldr r5, _081507AC + adds r0, r0, r5 + ldr r0, [r0] + ldrh r1, [r0, #8] + str r6, [sp] + str r6, [sp, #4] + movs r4, #0x11 + str r4, [sp, #8] + movs r0, #3 + movs r2, #4 + movs r3, #0 + bl FillBgTilemapBufferRect + ldr r0, [r7] + adds r0, r0, r5 + ldr r0, [r0] + ldrh r1, [r0, #0x12] + str r6, [sp] + str r6, [sp, #4] + str r4, [sp, #8] + movs r0, #3 + movs r2, #4 + movs r3, #1 + bl FillBgTilemapBufferRect +_08150792: + bl sub_08151194 + ldr r0, _081507B0 + ldr r1, [r0] + ldrh r0, [r1, #6] + ldrh r1, [r1, #4] + cmp r0, r1 + bhs _081507B8 + ldr r4, _081507B4 + movs r1, #0 + ldrsh r0, [r4, r1] + b _081507C2 + .align 2, 0 +_081507AC: .4byte 0x00004108 +_081507B0: .4byte 0x0203A878 +_081507B4: .4byte 0x02021B38 +_081507B8: + ldr r0, _081507D4 + ldr r4, [r0] + ldr r0, _081507D8 + adds r4, r4, r0 + ldrh r0, [r4] +_081507C2: + adds r0, #0xf7 + movs r1, #0xf8 + bl __modsi3 + strh r0, [r4] + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081507D4: .4byte 0x08526DE8 +_081507D8: .4byte 0x000006FC + thumb_func_end sub_08150640 + + thumb_func_start CableCarVblankCallback +CableCarVblankCallback: @ 0x081507DC + push {r4, lr} + movs r0, #0 + bl CopyBgTilemapBufferToVram + movs r0, #3 + bl CopyBgTilemapBufferToVram + ldr r4, _0815083C + ldr r0, [r4] + ldrb r1, [r0, #0x14] + movs r0, #0x1c + bl SetGpuReg + ldr r0, [r4] + ldrb r1, [r0, #0x15] + movs r0, #0x1e + bl SetGpuReg + ldr r0, [r4] + ldrb r1, [r0, #0xc] + movs r0, #0x14 + bl SetGpuReg + ldr r0, [r4] + ldrb r1, [r0, #0xd] + movs r0, #0x16 + bl SetGpuReg + ldr r0, [r4] + ldrb r1, [r0, #8] + movs r0, #0x10 + bl SetGpuReg + ldr r0, [r4] + ldrb r1, [r0, #9] + movs r0, #0x12 + bl SetGpuReg + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815083C: .4byte 0x0203A878 + thumb_func_end CableCarVblankCallback + + thumb_func_start nullsub_58 +nullsub_58: @ 0x08150840 + bx lr + .align 2, 0 + thumb_func_end nullsub_58 + + thumb_func_start sub_08150844 +sub_08150844: @ 0x08150844 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r0, _081508AC + ldr r6, [r0] + ldrb r0, [r6, #1] + cmp r0, #0xff + beq _08150910 + ldr r0, _081508B0 + ldrh r0, [r0] + cmp r0, #0 + bne _081508C0 + movs r0, #6 + ldrsh r4, [r6, r0] + adds r0, r4, #0 + bl __floatsisf + cmp r4, #0 + bge _0815086E + ldr r1, _081508B4 + bl __addsf3 +_0815086E: + ldr r1, _081508B8 + bl __mulsf3 + bl __fixunssfsi + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r5, #0x2e] + subs r1, r1, r0 + strh r1, [r5, #0x20] + movs r1, #6 + ldrsh r4, [r6, r1] + adds r0, r4, #0 + bl __floatsisf + cmp r4, #0 + bge _08150896 + ldr r1, _081508B4 + bl __addsf3 +_08150896: + ldr r1, _081508BC + bl __mulsf3 + bl __fixunssfsi + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r5, #0x30] + subs r1, r1, r0 + strh r1, [r5, #0x22] + b _08150910 + .align 2, 0 +_081508AC: .4byte 0x0203A878 +_081508B0: .4byte 0x02037280 +_081508B4: .4byte 0x47800000 +_081508B8: .4byte 0x3E0F5C29 +_081508BC: .4byte 0x3D89374C +_081508C0: + movs r0, #6 + ldrsh r4, [r6, r0] + adds r0, r4, #0 + bl __floatsisf + cmp r4, #0 + bge _081508D4 + ldr r1, _08150918 + bl __addsf3 +_081508D4: + ldr r1, _0815091C + bl __mulsf3 + bl __fixunssfsi + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r5, #0x2e] + adds r0, r0, r1 + strh r0, [r5, #0x20] + movs r0, #6 + ldrsh r4, [r6, r0] + adds r0, r4, #0 + bl __floatsisf + cmp r4, #0 + bge _081508FC + ldr r1, _08150918 + bl __addsf3 +_081508FC: + ldr r1, _08150920 + bl __mulsf3 + bl __fixunssfsi + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r5, #0x30] + adds r0, r0, r1 + strh r0, [r5, #0x22] +_08150910: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08150918: .4byte 0x47800000 +_0815091C: .4byte 0x3E0F5C29 +_08150920: .4byte 0x3D89374C + thumb_func_end sub_08150844 + + thumb_func_start sub_08150924 +sub_08150924: @ 0x08150924 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r0, _08150990 + ldr r6, [r0] + ldrb r0, [r6, #1] + cmp r0, #0xff + bne _08150934 + b _08150A3C +_08150934: + ldr r0, _08150994 + ldrh r0, [r0] + cmp r0, #0 + bne _081509A4 + movs r0, #6 + ldrsh r4, [r6, r0] + adds r0, r4, #0 + bl __floatsisf + cmp r4, #0 + bge _08150950 + ldr r1, _08150998 + bl __addsf3 +_08150950: + ldr r1, _0815099C + bl __mulsf3 + bl __fixunssfsi + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r5, #0x2e] + subs r1, r1, r0 + strh r1, [r5, #0x20] + movs r1, #6 + ldrsh r4, [r6, r1] + adds r0, r4, #0 + bl __floatsisf + cmp r4, #0 + bge _08150978 + ldr r1, _08150998 + bl __addsf3 +_08150978: + ldr r1, _081509A0 + bl __mulsf3 + bl __fixunssfsi + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r5, #0x30] + subs r1, r1, r0 + strh r1, [r5, #0x22] + b _081509F4 + .align 2, 0 +_08150990: .4byte 0x0203A878 +_08150994: .4byte 0x02037280 +_08150998: .4byte 0x47800000 +_0815099C: .4byte 0x3E0F5C29 +_081509A0: .4byte 0x3D89374C +_081509A4: + movs r0, #6 + ldrsh r4, [r6, r0] + adds r0, r4, #0 + bl __floatsisf + cmp r4, #0 + bge _081509B8 + ldr r1, _08150A18 + bl __addsf3 +_081509B8: + ldr r1, _08150A1C + bl __mulsf3 + bl __fixunssfsi + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r5, #0x2e] + adds r0, r0, r1 + strh r0, [r5, #0x20] + movs r0, #6 + ldrsh r4, [r6, r0] + adds r0, r4, #0 + bl __floatsisf + cmp r4, #0 + bge _081509E0 + ldr r1, _08150A18 + bl __addsf3 +_081509E0: + ldr r1, _08150A20 + bl __mulsf3 + bl __fixunssfsi + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r5, #0x30] + adds r0, r0, r1 + strh r0, [r5, #0x22] +_081509F4: + movs r0, #0x32 + ldrsh r2, [r5, r0] + cmp r2, #0 + bne _08150A24 + movs r0, #0x11 + strh r0, [r5, #0x26] + ldrh r0, [r5, #0x34] + adds r1, r0, #1 + strh r1, [r5, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #9 + ble _08150A3C + strh r2, [r5, #0x34] + ldrh r0, [r5, #0x32] + adds r0, #1 + strh r0, [r5, #0x32] + b _08150A3C + .align 2, 0 +_08150A18: .4byte 0x47800000 +_08150A1C: .4byte 0x3E0F5C29 +_08150A20: .4byte 0x3D89374C +_08150A24: + movs r2, #0 + movs r0, #0x10 + strh r0, [r5, #0x26] + ldrh r0, [r5, #0x34] + adds r1, r0, #1 + strh r1, [r5, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #9 + ble _08150A3C + strh r2, [r5, #0x34] + strh r2, [r5, #0x32] +_08150A3C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08150924 + + thumb_func_start sub_08150A44 +sub_08150A44: @ 0x08150A44 + push {lr} + adds r2, r0, #0 + movs r1, #0x2e + ldrsh r0, [r2, r1] + cmp r0, #0 + bne _08150A74 + adds r0, r2, #0 + adds r0, #0x28 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #1 + ldrh r3, [r2, #0x20] + adds r0, r0, r3 + strh r0, [r2, #0x20] + ldrh r1, [r2, #0x22] + adds r1, #0x10 + adds r0, r2, #0 + adds r0, #0x29 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, r0, r1 + strh r0, [r2, #0x22] +_08150A74: + ldrh r0, [r2, #0x2e] + adds r0, #1 + strh r0, [r2, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r3, #0x32 + ldrsh r1, [r2, r3] + cmp r0, r1 + blt _08150ACA + movs r0, #0x30 + ldrsh r1, [r2, r0] + cmp r1, #0 + beq _08150A94 + cmp r1, #1 + beq _08150A9E + b _08150ABC +_08150A94: + ldrh r0, [r2, #0x20] + adds r0, #1 + strh r0, [r2, #0x20] + ldrh r0, [r2, #0x2e] + b _08150AAE +_08150A9E: + ldrh r0, [r2, #0x2e] + ands r0, r1 + cmp r0, #0 + beq _08150ABC + ldrh r0, [r2, #0x20] + adds r0, #1 + strh r0, [r2, #0x20] + ldrh r0, [r2, #0x20] +_08150AAE: + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _08150ABC + ldrh r0, [r2, #0x22] + adds r0, #1 + strh r0, [r2, #0x22] +_08150ABC: + movs r1, #0x22 + ldrsh r0, [r2, r1] + cmp r0, #0xa0 + ble _08150ACA + adds r0, r2, #0 + bl DestroySprite +_08150ACA: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08150A44 + + thumb_func_start sub_08150AD0 +sub_08150AD0: @ 0x08150AD0 + push {lr} + adds r2, r0, #0 + movs r1, #0x2e + ldrsh r0, [r2, r1] + cmp r0, #0 + bne _08150AEE + ldrh r1, [r2, #0x22] + adds r1, #0x10 + adds r0, r2, #0 + adds r0, #0x29 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, r0, r1 + strh r0, [r2, #0x22] +_08150AEE: + ldrh r0, [r2, #0x2e] + adds r0, #1 + strh r0, [r2, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r3, #0x32 + ldrsh r1, [r2, r3] + cmp r0, r1 + blt _08150B44 + movs r0, #0x30 + ldrsh r1, [r2, r0] + cmp r1, #0 + beq _08150B0E + cmp r1, #1 + beq _08150B18 + b _08150B36 +_08150B0E: + ldrh r0, [r2, #0x20] + subs r0, #1 + strh r0, [r2, #0x20] + ldrh r0, [r2, #0x2e] + b _08150B28 +_08150B18: + ldrh r0, [r2, #0x2e] + ands r0, r1 + cmp r0, #0 + beq _08150B36 + ldrh r0, [r2, #0x20] + subs r0, #1 + strh r0, [r2, #0x20] + ldrh r0, [r2, #0x20] +_08150B28: + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _08150B36 + ldrh r0, [r2, #0x22] + subs r0, #1 + strh r0, [r2, #0x22] +_08150B36: + movs r1, #0x22 + ldrsh r0, [r2, r1] + cmp r0, #0x4f + bgt _08150B44 + adds r0, r2, #0 + bl DestroySprite +_08150B44: + pop {r0} + bx r0 + thumb_func_end sub_08150AD0 + + thumb_func_start sub_08150B48 +sub_08150B48: @ 0x08150B48 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _08150B56 + cmp r0, #1 + beq _08150BF8 +_08150B56: + movs r0, #0x48 + movs r1, #0 + bl SetGpuReg + movs r0, #0x4a + movs r1, #0 + bl SetGpuReg + movs r0, #0x40 + movs r1, #0 + bl SetGpuReg + movs r0, #0x42 + movs r1, #0 + bl SetGpuReg + movs r0, #0x44 + movs r1, #0 + bl SetGpuReg + movs r0, #0x46 + movs r1, #0 + bl SetGpuReg + movs r0, #0 + movs r1, #0 + bl SetGpuReg + movs r0, #0xe + movs r1, #0 + bl SetGpuReg + movs r0, #0xc + movs r1, #0 + bl SetGpuReg + movs r0, #0xa + movs r1, #0 + bl SetGpuReg + movs r0, #8 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1c + movs r1, #0 + bl SetGpuReg + movs r0, #0x1e + movs r1, #0 + bl SetGpuReg + movs r0, #0x18 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1a + movs r1, #0 + bl SetGpuReg + movs r0, #0x14 + movs r1, #0 + bl SetGpuReg + movs r0, #0x16 + movs r1, #0 + bl SetGpuReg + movs r0, #0x10 + movs r1, #0 + bl SetGpuReg + movs r0, #0x12 + movs r1, #0 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + b _08150CF8 +_08150BF8: + movs r0, #0x48 + movs r1, #0 + bl SetGpuReg + movs r0, #0x4a + movs r1, #0 + bl SetGpuReg + movs r0, #0x40 + movs r1, #0 + bl SetGpuReg + movs r0, #0x42 + movs r1, #0 + bl SetGpuReg + movs r0, #0x44 + movs r1, #0 + bl SetGpuReg + movs r0, #0x46 + movs r1, #0 + bl SetGpuReg + ldr r0, _08150C48 + ldrh r3, [r0] + cmp r3, #0 + bne _08150C50 + ldr r1, _08150C4C + ldr r2, [r1] + movs r0, #0xb0 + strb r0, [r2, #0x14] + ldr r2, [r1] + movs r0, #0x10 + strb r0, [r2, #0x15] + ldr r0, [r1] + strb r3, [r0, #0xc] + ldr r2, [r1] + movs r0, #0x50 + b _08150C68 + .align 2, 0 +_08150C48: .4byte 0x02037280 +_08150C4C: .4byte 0x0203A878 +_08150C50: + ldr r1, _08150D00 + ldr r2, [r1] + movs r3, #0 + movs r0, #0x60 + strb r0, [r2, #0x14] + ldr r2, [r1] + movs r0, #0xe8 + strb r0, [r2, #0x15] + ldr r0, [r1] + strb r3, [r0, #0xc] + ldr r2, [r1] + movs r0, #4 +_08150C68: + strb r0, [r2, #0xd] + ldr r0, [r1] + strb r3, [r0, #9] + ldr r0, [r1] + strb r3, [r0, #9] + adds r4, r1, #0 + ldr r0, [r4] + ldrb r1, [r0, #0x14] + movs r0, #0x1c + bl SetGpuReg + ldr r0, [r4] + ldrb r1, [r0, #0x15] + movs r0, #0x1e + bl SetGpuReg + movs r0, #0x18 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1a + movs r1, #0 + bl SetGpuReg + ldr r0, [r4] + ldrb r1, [r0, #0xc] + movs r0, #0x14 + bl SetGpuReg + ldr r0, [r4] + ldrb r1, [r0, #0xd] + movs r0, #0x16 + bl SetGpuReg + ldr r0, [r4] + ldrb r1, [r0, #8] + movs r0, #0x10 + bl SetGpuReg + ldr r0, [r4] + ldrb r1, [r0, #9] + movs r0, #0x12 + bl SetGpuReg + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #1 + bl CopyBgTilemapBufferToVram + movs r0, #2 + bl CopyBgTilemapBufferToVram + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg + movs r1, #0xfc + lsls r1, r1, #6 + movs r0, #0x50 + bl SetGpuReg +_08150CF8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08150D00: .4byte 0x0203A878 + thumb_func_end sub_08150B48 + + thumb_func_start LoadCableCarSprites +LoadCableCarSprites: @ 0x08150D04 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x28 + ldr r1, _08150E18 + add r0, sp, #0xc + movs r2, #2 + bl memcpy + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + add r6, sp, #0x10 + ldr r1, _08150E1C + adds r0, r6, #0 + movs r2, #4 + bl memcpy + add r5, sp, #0x14 + ldr r1, _08150E20 + adds r0, r5, #0 + movs r2, #8 + bl memcpy + add r4, sp, #0x1c + ldr r1, _08150E24 + adds r0, r4, #0 + movs r2, #4 + bl memcpy + ldr r0, _08150E28 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [sp, #0x20] + str r1, [sp, #0x24] + ldr r0, _08150E2C + ldrh r0, [r0] + mov r8, r6 + mov sl, r5 + cmp r0, #0 + beq _08150D62 + cmp r0, #1 + beq _08150E44 +_08150D62: + ldr r0, _08150E30 + ldr r0, [r0] + ldrb r0, [r0, #8] + add r0, sp + adds r0, #0xc + ldrb r0, [r0] + ldr r1, _08150E34 + movs r2, #0x66 + str r2, [sp] + movs r2, #0xc8 + movs r3, #0x49 + bl AddPseudoEventObject + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0x40 + beq _08150DAC + ldr r0, _08150E38 + lsls r1, r6, #4 + adds r1, r1, r6 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + movs r2, #8 + orrs r0, r2 + strb r0, [r1, #5] + movs r0, #8 + strh r0, [r1, #0x24] + movs r0, #0x10 + strh r0, [r1, #0x26] + movs r0, #0xc8 + strh r0, [r1, #0x2e] + movs r0, #0x49 + strh r0, [r1, #0x30] +_08150DAC: + ldr r4, _08150E3C + adds r0, r4, #0 + movs r1, #0xb0 + movs r2, #0x2b + movs r3, #0x67 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r5, _08150E38 + lsls r0, r6, #4 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0x20 + strh r1, [r0, #0x26] + strh r1, [r0, #0x24] + movs r1, #0xb0 + strh r1, [r0, #0x2e] + movs r1, #0x2b + strh r1, [r0, #0x30] + adds r4, #0x18 + adds r0, r4, #0 + movs r1, #0xc8 + movs r2, #0x63 + movs r3, #0x65 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #4 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #8 + strh r1, [r0, #0x24] + movs r1, #4 + strh r1, [r0, #0x26] + movs r1, #0xc8 + strh r1, [r0, #0x2e] + movs r1, #0x63 + strh r1, [r0, #0x30] + ldr r2, _08150E40 + ldr r1, [r2] + movs r0, #7 + strb r0, [r1, #2] + ldr r1, [r2] + movs r0, #0xaf + lsls r0, r0, #1 + strh r0, [r1, #4] + movs r0, #2 + bl SetCurrentAndNextWeatherNoDelay + b _08150F16 + .align 2, 0 +_08150E18: .4byte 0x085AC9EC +_08150E1C: .4byte 0x085AC9EE +_08150E20: .4byte 0x085AC9F2 +_08150E24: .4byte 0x085AC9FA +_08150E28: .4byte 0x085ACA00 +_08150E2C: .4byte 0x02037280 +_08150E30: .4byte 0x03005AF0 +_08150E34: .4byte 0x08150925 +_08150E38: .4byte 0x020205AC +_08150E3C: .4byte 0x085AC9A4 +_08150E40: .4byte 0x0203A878 +_08150E44: + ldr r7, _08150FE4 + ldr r0, [r7] + ldr r1, _08150FE8 + adds r0, r0, r1 + ldr r1, [r0] + adds r1, #0x48 + movs r0, #0xc + str r0, [sp] + movs r0, #3 + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #0 + movs r2, #0x18 + movs r3, #0x1a + bl CopyToBgTilemapBufferRect_ChangePalette + ldr r0, _08150FEC + ldr r0, [r0] + ldrb r0, [r0, #8] + add r0, sp + adds r0, #0xc + ldrb r0, [r0] + ldr r1, _08150FF0 + movs r2, #0x66 + str r2, [sp] + movs r2, #0x80 + movs r3, #0x27 + bl AddPseudoEventObject + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0x40 + beq _08150EB0 + ldr r0, _08150FF4 + lsls r1, r6, #4 + adds r1, r1, r6 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + movs r2, #8 + orrs r0, r2 + strb r0, [r1, #5] + movs r0, #8 + strh r0, [r1, #0x24] + movs r0, #0x10 + strh r0, [r1, #0x26] + movs r0, #0x80 + strh r0, [r1, #0x2e] + movs r0, #0x27 + strh r0, [r1, #0x30] +_08150EB0: + ldr r4, _08150FF8 + adds r0, r4, #0 + movs r1, #0x68 + movs r2, #9 + movs r3, #0x67 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r5, _08150FF4 + lsls r0, r6, #4 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0x20 + strh r1, [r0, #0x26] + strh r1, [r0, #0x24] + movs r1, #0x68 + strh r1, [r0, #0x2e] + movs r1, #9 + strh r1, [r0, #0x30] + adds r4, #0x18 + adds r0, r4, #0 + movs r1, #0x80 + movs r2, #0x41 + movs r3, #0x65 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #4 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #8 + strh r1, [r0, #0x24] + movs r1, #4 + strh r1, [r0, #0x26] + movs r1, #0x80 + strh r1, [r0, #0x2e] + movs r1, #0x41 + strh r1, [r0, #0x30] + ldr r1, [r7] + movs r0, #2 + strb r0, [r1, #2] + ldr r1, [r7] + ldr r0, _08150FFC + strh r0, [r1, #4] + movs r0, #7 + bl SetCurrentAndNextWeatherNoDelay +_08150F16: + movs r4, #0 + ldr r5, _08150FF4 +_08150F1A: + lsls r1, r4, #0x14 + movs r2, #0xc0 + lsls r2, r2, #0xf + adds r1, r1, r2 + asrs r1, r1, #0x10 + lsls r2, r4, #0x13 + ldr r3, _08151000 + adds r2, r2, r3 + asrs r2, r2, #0x10 + ldr r0, _08151004 + movs r3, #0x68 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #4 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #8 + strh r1, [r0, #0x24] + strh r1, [r0, #0x26] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #8 + bls _08150F1A + movs r0, #0x3f + mov r4, sb + ands r0, r4 + cmp r0, #0 + bne _08151050 + mov r0, sb + movs r1, #3 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + add r0, r8 + ldrb r0, [r0] + ldr r5, _08151008 + ldrh r4, [r5] + lsls r4, r4, #2 + add r1, sp, #0x20 + adds r1, r4, r1 + ldr r1, [r1] + mov r3, sl + adds r2, r3, r4 + movs r3, #0 + ldrsh r2, [r2, r3] + mov r3, sp + adds r3, #0x16 + adds r3, r3, r4 + movs r4, #0 + ldrsh r3, [r3, r4] + movs r4, #0x6a + str r4, [sp] + bl AddPseudoEventObject + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0x40 + beq _08151050 + ldr r1, _08150FF4 + lsls r2, r6, #4 + adds r0, r2, r6 + lsls r0, r0, #2 + adds r4, r0, r1 + ldrb r1, [r4, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r4, #5] + adds r0, r4, #0 + adds r0, #0x28 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + rsbs r0, r0, #0 + strh r0, [r4, #0x24] + adds r0, r4, #0 + adds r0, #0x29 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + ldrh r0, [r5] + mov r8, r2 + cmp r0, #0 + bne _08151012 + movs r7, #1 + mov r5, sb + ands r5, r7 + cmp r5, #0 + beq _0815100C + adds r0, r4, #0 + movs r1, #6 + b _08151020 + .align 2, 0 +_08150FE4: .4byte 0x0203A878 +_08150FE8: .4byte 0x000040FC +_08150FEC: .4byte 0x03005AF0 +_08150FF0: .4byte 0x08150925 +_08150FF4: .4byte 0x020205AC +_08150FF8: .4byte 0x085AC9A4 +_08150FFC: .4byte 0x00000109 +_08151000: .4byte 0xFFF80000 +_08151004: .4byte 0x085AC9D4 +_08151008: .4byte 0x02037280 +_0815100C: + adds r0, r4, #0 + movs r1, #7 + b _08151032 +_08151012: + movs r7, #1 + mov r5, sb + ands r5, r7 + cmp r5, #0 + beq _0815102E + adds r0, r4, #0 + movs r1, #7 +_08151020: + bl StartSpriteAnim + strh r7, [r4, #0x30] + ldrh r0, [r4, #0x22] + adds r0, #2 + strh r0, [r4, #0x22] + b _08151038 +_0815102E: + adds r0, r4, #0 + movs r1, #6 +_08151032: + bl StartSpriteAnim + strh r5, [r4, #0x30] +_08151038: + ldr r0, _08151060 + mov r2, r8 + adds r1, r2, r6 + lsls r1, r1, #2 + adds r1, r1, r0 + movs r0, #3 + mov r3, sb + ands r0, r3 + add r0, sp + adds r0, #0x1c + ldrb r0, [r0] + strh r0, [r1, #0x32] +_08151050: + add sp, #0x28 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08151060: .4byte 0x020205AC + thumb_func_end LoadCableCarSprites + + thumb_func_start sub_08151064 +sub_08151064: @ 0x08151064 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + movs r3, #0 + mov sb, r3 + ldr r2, _08151130 + ldr r0, [r2] + ldrb r1, [r0, #0x1b] + adds r1, #2 + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #0x1a + lsrs r0, r0, #0x18 + mov ip, r0 +_08151086: + movs r7, #0 + lsls r0, r3, #1 + adds r1, r3, #3 + adds r2, r3, #6 + adds r4, r3, #1 + str r4, [sp, #4] + adds r0, r0, r3 + lsls r0, r0, #3 + str r0, [sp] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + mov sl, r0 + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #3 + mov r8, r0 +_081510A8: + ldr r0, _08151130 + ldr r6, [r0] + lsls r3, r7, #1 + ldr r1, [sp] + adds r2, r3, r1 + adds r4, r6, #0 + adds r4, #0x22 + adds r2, r4, r2 + mov r1, ip + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov ip, r0 + ldr r0, _08151134 + adds r5, r6, r0 + ldr r0, [r5] + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + strh r0, [r2] + mov r1, sl + adds r2, r3, r1 + adds r2, r4, r2 + str r2, [sp, #8] + ldr r0, [r5] + mov r2, sb + lsls r1, r2, #1 + adds r0, r1, r0 + ldrh r0, [r0] + ldr r2, [sp, #8] + strh r0, [r2] + add r3, r8 + adds r4, r4, r3 + ldr r0, [r5] + adds r1, r1, r0 + adds r1, #0x48 + ldrh r0, [r1] + strh r0, [r4] + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #0xb + bls _081510A8 + ldr r4, [sp, #4] + lsls r0, r4, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #2 + bls _08151086 + ldrb r0, [r6, #0x1b] + adds r0, #1 + movs r1, #3 + bl __modsi3 + strb r0, [r6, #0x1b] + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08151130: .4byte 0x0203A878 +_08151134: .4byte 0x000040FC + thumb_func_end sub_08151064 + + thumb_func_start sub_08151138 +sub_08151138: @ 0x08151138 + push {r4, r5, lr} + ldr r5, _08151190 + ldr r4, [r5] + ldrb r0, [r4, #0x1c] + adds r0, #1 + movs r1, #0x60 + bl __modsi3 + strb r0, [r4, #0x1c] + ldr r1, [r5] + ldrb r0, [r1, #0x1f] + ldrb r2, [r1, #0x1d] + subs r0, r0, r2 + strb r0, [r1, #8] + ldr r2, [r5] + adds r0, r2, #0 + adds r0, #0x20 + ldrb r0, [r0] + ldrb r1, [r2, #0x1e] + subs r0, r0, r1 + strb r0, [r2, #9] + ldr r1, [r5] + ldrb r0, [r1, #0x1d] + adds r0, #1 + strb r0, [r1, #0x1d] + ldr r2, [r5] + ldrb r0, [r2, #0x1d] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0815117C + ldrb r0, [r2, #0x1e] + adds r0, #1 + strb r0, [r2, #0x1e] +_0815117C: + ldr r0, [r5] + ldrb r0, [r0, #0x1d] + cmp r0, #0x10 + bls _08151188 + bl sub_081511F0 +_08151188: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08151190: .4byte 0x0203A878 + thumb_func_end sub_08151138 + + thumb_func_start sub_08151194 +sub_08151194: @ 0x08151194 + push {r4, r5, lr} + ldr r5, _081511EC + ldr r4, [r5] + ldrb r0, [r4, #0x1c] + adds r0, #1 + movs r1, #0x60 + bl __modsi3 + strb r0, [r4, #0x1c] + ldr r1, [r5] + ldrb r0, [r1, #0x1d] + ldrb r2, [r1, #0x1f] + adds r0, r0, r2 + strb r0, [r1, #8] + ldr r1, [r5] + adds r2, r1, #0 + adds r2, #0x20 + ldrb r0, [r1, #0x1e] + ldrb r2, [r2] + adds r0, r0, r2 + strb r0, [r1, #9] + ldr r1, [r5] + ldrb r0, [r1, #0x1d] + adds r0, #1 + strb r0, [r1, #0x1d] + ldr r2, [r5] + ldrb r0, [r2, #0x1d] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _081511D8 + ldrb r0, [r2, #0x1e] + adds r0, #1 + strb r0, [r2, #0x1e] +_081511D8: + ldr r0, [r5] + ldrb r0, [r0, #0x1d] + cmp r0, #0x10 + bls _081511E4 + bl sub_08151364 +_081511E4: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081511EC: .4byte 0x0203A878 + thumb_func_end sub_08151194 + + thumb_func_start sub_081511F0 +sub_081511F0: @ 0x081511F0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + movs r7, #0 + ldr r3, _08151354 + ldr r0, [r3] + strb r7, [r0, #0x1e] + strb r7, [r0, #0x1d] + ldr r1, [r3] + ldrb r0, [r1, #8] + strb r0, [r1, #0x1f] + ldr r0, [r3] + ldrb r1, [r0, #9] + adds r0, #0x20 + strb r1, [r0] + ldr r4, [r3] + ldrb r1, [r4, #0x19] + adds r2, r1, #0 + adds r2, #0x1e + adds r0, r2, #0 + asrs r0, r0, #5 + lsls r0, r0, #5 + subs r0, r2, r0 + strb r0, [r4, #0x19] + ldr r1, [r3] + ldrb r0, [r1, #0x18] + subs r0, #2 + strb r0, [r1, #0x18] + ldr r4, _08151358 + ldr r0, [r3] + ldrb r1, [r0, #0x1a] + adds r2, r1, #0 + adds r2, #0x17 + adds r0, r2, #0 + asrs r0, r0, #5 + lsls r0, r0, #5 + subs r0, r2, r0 + strb r0, [r4] + ldr r6, _0815135C + mov sb, r3 + ldr r0, _08151360 + mov r8, r0 +_0815124A: + mov r1, sb + ldr r2, [r1] + ldrb r0, [r2, #0x19] + strb r0, [r6] + ldr r0, _08151358 + ldrb r0, [r0] + adds r1, r0, r7 + adds r0, r1, #0 + asrs r0, r0, #5 + lsls r0, r0, #5 + subs r0, r1, r0 + mov r1, r8 + strb r0, [r1] + ldrb r1, [r2, #0x18] + lsls r1, r1, #1 + lsls r0, r7, #1 + adds r0, r0, r7 + lsls r5, r0, #3 + adds r1, r1, r5 + adds r0, r2, #0 + adds r0, #0x22 + adds r0, r0, r1 + ldrh r1, [r0] + ldrb r2, [r6] + mov r0, r8 + ldrb r3, [r0] + movs r4, #1 + str r4, [sp] + str r4, [sp, #4] + movs r0, #0x11 + mov sl, r0 + str r0, [sp, #8] + movs r0, #0 + bl FillBgTilemapBufferRect + ldrb r1, [r6] + adds r2, r1, #1 + adds r0, r2, #0 + asrs r0, r0, #5 + lsls r0, r0, #5 + subs r0, r2, r0 + strb r0, [r6] + mov r0, sb + ldr r1, [r0] + ldrb r0, [r1, #0x18] + adds r0, #1 + lsls r0, r0, #1 + adds r0, r0, r5 + adds r1, #0x22 + adds r1, r1, r0 + ldrh r1, [r1] + ldrb r2, [r6] + mov r0, r8 + ldrb r3, [r0] + str r4, [sp] + str r4, [sp, #4] + mov r0, sl + str r0, [sp, #8] + movs r0, #0 + bl FillBgTilemapBufferRect + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #8 + bls _0815124A + ldr r5, _0815135C + ldr r4, _08151354 + ldr r0, [r4] + ldrb r1, [r0, #0x19] + adds r2, r1, #0 + adds r2, #0x1e + adds r0, r2, #0 + asrs r0, r0, #5 + lsls r0, r0, #5 + subs r0, r2, r0 + strb r0, [r5] + ldrb r2, [r5] + movs r0, #2 + str r0, [sp] + movs r6, #0x20 + str r6, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r3, #0 + bl FillBgTilemapBufferRect + ldr r1, [r4] + ldrb r0, [r1, #0x18] + cmp r0, #0 + bne _08151344 + ldrb r2, [r1, #0x1a] + adds r3, r2, #0 + adds r3, #0x1d + adds r0, r3, #0 + asrs r0, r0, #5 + lsls r0, r0, #5 + subs r0, r3, r0 + strb r0, [r1, #0x1a] + ldr r1, [r4] + movs r0, #0xc + strb r0, [r1, #0x18] + bl sub_08151064 + ldr r0, [r4] + ldrb r1, [r0, #0x1a] + adds r2, r1, #1 + adds r0, r2, #0 + asrs r0, r0, #5 + lsls r0, r0, #5 + subs r0, r2, r0 + strb r0, [r5] + ldrb r3, [r5] + str r6, [sp] + movs r0, #9 + str r0, [sp, #4] + mov r1, sl + str r1, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl FillBgTilemapBufferRect +_08151344: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08151354: .4byte 0x0203A878 +_08151358: .4byte 0x0203A87E +_0815135C: .4byte 0x0203A87C +_08151360: .4byte 0x0203A87D + thumb_func_end sub_081511F0 + + thumb_func_start sub_08151364 +sub_08151364: @ 0x08151364 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + movs r7, #0 + ldr r2, _08151494 + ldr r0, [r2] + strb r7, [r0, #0x1e] + strb r7, [r0, #0x1d] + ldr r1, [r2] + ldrb r0, [r1, #8] + strb r0, [r1, #0x1f] + ldr r0, [r2] + ldrb r1, [r0, #9] + adds r0, #0x20 + strb r1, [r0] + ldr r4, [r2] + ldrb r1, [r4, #0x19] + adds r3, r1, #2 + adds r0, r3, #0 + asrs r0, r0, #5 + lsls r0, r0, #5 + subs r0, r3, r0 + strb r0, [r4, #0x19] + ldr r1, [r2] + ldrb r0, [r1, #0x18] + adds r0, #2 + strb r0, [r1, #0x18] + ldr r1, _08151498 + ldr r0, [r2] + ldrb r0, [r0, #0x1a] + strb r0, [r1] + ldr r6, _0815149C + mov sl, r2 + ldr r0, _081514A0 + mov sb, r0 +_081513B0: + mov r1, sl + ldr r2, [r1] + ldrb r0, [r2, #0x19] + strb r0, [r6] + ldr r0, _08151498 + ldrb r0, [r0] + adds r1, r0, r7 + adds r0, r1, #0 + asrs r0, r0, #5 + lsls r0, r0, #5 + subs r0, r1, r0 + mov r1, sb + strb r0, [r1] + ldrb r1, [r2, #0x18] + lsls r1, r1, #1 + lsls r0, r7, #1 + adds r0, r0, r7 + lsls r5, r0, #3 + adds r1, r1, r5 + adds r0, r2, #0 + adds r0, #0x22 + adds r0, r0, r1 + ldrh r1, [r0] + ldrb r2, [r6] + mov r0, sb + ldrb r3, [r0] + movs r4, #1 + str r4, [sp] + str r4, [sp, #4] + movs r0, #0x11 + mov r8, r0 + str r0, [sp, #8] + movs r0, #0 + bl FillBgTilemapBufferRect + ldrb r1, [r6] + adds r2, r1, #1 + adds r0, r2, #0 + asrs r0, r0, #5 + lsls r0, r0, #5 + subs r0, r2, r0 + strb r0, [r6] + mov r0, sl + ldr r1, [r0] + ldrb r0, [r1, #0x18] + adds r0, #1 + lsls r0, r0, #1 + adds r0, r0, r5 + adds r1, #0x22 + adds r1, r1, r0 + ldrh r1, [r1] + ldrb r2, [r6] + mov r0, sb + ldrb r3, [r0] + str r4, [sp] + str r4, [sp, #4] + mov r0, r8 + str r0, [sp, #8] + movs r0, #0 + bl FillBgTilemapBufferRect + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #8 + bls _081513B0 + ldr r4, _081514A0 + ldr r5, _08151494 + ldr r3, [r5] + ldrb r1, [r3, #0x1a] + adds r2, r1, #0 + adds r2, #0x17 + adds r0, r2, #0 + asrs r0, r0, #5 + lsls r0, r0, #5 + subs r0, r2, r0 + strb r0, [r4] + ldrb r2, [r3, #0x19] + ldrb r3, [r4] + movs r0, #2 + str r0, [sp] + movs r0, #9 + str r0, [sp, #4] + mov r1, r8 + str r1, [sp, #8] + movs r0, #0 + movs r1, #0 + bl FillBgTilemapBufferRect + ldr r1, [r5] + ldrb r0, [r1, #0x18] + cmp r0, #0xa + bne _08151482 + ldrb r2, [r1, #0x1a] + adds r3, r2, #3 + adds r0, r3, #0 + asrs r0, r0, #5 + lsls r0, r0, #5 + subs r0, r3, r0 + strb r0, [r1, #0x1a] + ldr r1, [r5] + movs r0, #0xfe + strb r0, [r1, #0x18] + bl sub_08151064 +_08151482: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08151494: .4byte 0x0203A878 +_08151498: .4byte 0x0203A881 +_0815149C: .4byte 0x0203A87F +_081514A0: .4byte 0x0203A880 + thumb_func_end sub_08151364 + diff --git a/asm/cable_club.s b/asm/cable_club.s new file mode 100644 index 0000000..8c41dcf --- /dev/null +++ b/asm/cable_club.s @@ -0,0 +1,2890 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_080B1C58 +sub_080B1C58: @ 0x080B1C58 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + ldr r4, _080B1C94 + adds r0, r4, #0 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080B1C8C + adds r0, r4, #0 + movs r1, #0x50 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080B1C98 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r6, [r1, #0xa] + strh r5, [r1, #0xc] +_080B1C8C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080B1C94: .4byte 0x080B1F11 +_080B1C98: .4byte 0x03005B60 + thumb_func_end sub_080B1C58 + + thumb_func_start sub_080B1C9C +sub_080B1C9C: @ 0x080B1C9C + push {r4, r5, lr} + sub sp, #0xc + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r0, _080B1CEC + movs r2, #0 + movs r3, #1 + bl ConvertIntToDecimalStringN + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #0 + bl SetStandardWindowBorderStyle + ldr r5, _080B1CF0 + ldr r1, _080B1CF4 + adds r0, r5, #0 + bl StringExpandPlaceholders + movs r1, #0 + str r1, [sp] + movs r0, #0xff + str r0, [sp, #4] + str r1, [sp, #8] + adds r0, r4, #0 + movs r1, #1 + adds r2, r5, #0 + movs r3, #0 + bl AddTextPrinterParameterized + adds r0, r4, #0 + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B1CEC: .4byte 0x02021C40 +_080B1CF0: .4byte 0x02021C7C +_080B1CF4: .4byte 0x0852B230 + thumb_func_end sub_080B1C9C + + thumb_func_start sub_080B1CF8 +sub_080B1CF8: @ 0x080B1CF8 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #0 + bl DrawStdWindowFrame + adds r0, r4, #0 + movs r1, #3 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080B1CF8 + + thumb_func_start sub_080B1D18 +sub_080B1D18: @ 0x080B1D18 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080B1D40 + adds r4, r1, r0 + movs r1, #6 + ldrsh r0, [r4, r1] + cmp r5, r0 + beq _080B1D4E + cmp r5, #1 + bhi _080B1D44 + ldrh r0, [r4, #0xa] + bl sub_080B1CF8 + b _080B1D4C + .align 2, 0 +_080B1D40: .4byte 0x03005B68 +_080B1D44: + ldrh r0, [r4, #0xa] + adds r1, r5, #0 + bl sub_080B1C9C +_080B1D4C: + strh r5, [r4, #6] +_080B1D4E: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_080B1D18 + + thumb_func_start sub_080B1D54 +sub_080B1D54: @ 0x080B1D54 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl GetLinkPlayerDataExchangeStatusTimed + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, #1 + cmp r0, #6 + bhi _080B1DCC + lsls r0, r0, #2 + ldr r1, _080B1D78 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B1D78: .4byte 0x080B1D7C +_080B1D7C: @ jump table + .4byte _080B1D98 @ case 0 + .4byte _080B1DCC @ case 1 + .4byte _080B1D9C @ case 2 + .4byte _080B1DA0 @ case 3 + .4byte _080B1DA4 @ case 4 + .4byte _080B1DA8 @ case 5 + .4byte _080B1DC8 @ case 6 +_080B1D98: + movs r0, #1 + b _080B1DCE +_080B1D9C: + movs r0, #3 + b _080B1DCE +_080B1DA0: + movs r0, #7 + b _080B1DCE +_080B1DA4: + movs r0, #9 + b _080B1DCE +_080B1DA8: + ldr r4, _080B1DC4 + bl GetLinkPlayerCount_2 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + movs r2, #0 + movs r3, #1 + bl ConvertIntToDecimalStringN + movs r0, #4 + b _080B1DCE + .align 2, 0 +_080B1DC4: .4byte 0x02021C40 +_080B1DC8: + movs r0, #0xa + b _080B1DCE +_080B1DCC: + movs r0, #0 +_080B1DCE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_080B1D54 + + thumb_func_start sub_080B1DD4 +sub_080B1DD4: @ 0x080B1DD4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl HasLinkErrorOccurred + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080B1DEA + movs r0, #0 + b _080B1DFA +_080B1DEA: + ldr r0, _080B1E00 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080B1E04 + str r0, [r1] + movs r0, #1 +_080B1DFA: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080B1E00: .4byte 0x03005B60 +_080B1E04: .4byte 0x080B2609 + thumb_func_end sub_080B1DD4 + + thumb_func_start sub_080B1E08 +sub_080B1E08: @ 0x080B1E08 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080B1E3C + ldrh r1, [r0, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080B1E4C + bl IsLinkConnectionEstablished + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080B1E4C + ldr r0, _080B1E40 + strh r1, [r0] + ldr r1, _080B1E44 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080B1E48 + str r1, [r0] + movs r0, #1 + b _080B1E4E + .align 2, 0 +_080B1E3C: .4byte 0x03002360 +_080B1E40: .4byte 0x0202267E +_080B1E44: .4byte 0x03005B60 +_080B1E48: .4byte 0x080B25C9 +_080B1E4C: + movs r0, #0 +_080B1E4E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_080B1E08 + + thumb_func_start sub_080B1E54 +sub_080B1E54: @ 0x080B1E54 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl IsLinkConnectionEstablished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B1E6A + movs r0, #1 + bl SetSuppressLinkErrorMessage +_080B1E6A: + ldr r0, _080B1E7C + ldrh r1, [r0, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _080B1E80 + movs r0, #0 + b _080B1E96 + .align 2, 0 +_080B1E7C: .4byte 0x03002360 +_080B1E80: + ldr r1, _080B1E9C + movs r0, #0 + strh r0, [r1] + ldr r1, _080B1EA0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080B1EA4 + str r1, [r0] + movs r0, #1 +_080B1E96: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080B1E9C: .4byte 0x0202267E +_080B1EA0: .4byte 0x03005B60 +_080B1EA4: .4byte 0x080B25C9 + thumb_func_end sub_080B1E54 + + thumb_func_start sub_080B1EA8 +sub_080B1EA8: @ 0x080B1EA8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl GetSioMultiSI + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080B1EBE + movs r0, #0 + b _080B1ECE +_080B1EBE: + ldr r0, _080B1ED4 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080B1ED8 + str r0, [r1] + movs r0, #1 +_080B1ECE: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080B1ED4: .4byte 0x03005B60 +_080B1ED8: .4byte 0x080B2609 + thumb_func_end sub_080B1EA8 + + thumb_func_start sub_080B1EDC +sub_080B1EDC: @ 0x080B1EDC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080B1F0C + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xa + bne _080B1F06 + movs r0, #2 + bl sub_0800A09C + adds r0, r4, #0 + bl DestroyTask +_080B1F06: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B1F0C: .4byte 0x03005B60 + thumb_func_end sub_080B1EDC + + thumb_func_start sub_080B1F10 +sub_080B1F10: @ 0x080B1F10 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080B1F40 + adds r4, r1, r0 + movs r3, #0 + ldrsh r2, [r4, r3] + cmp r2, #0 + bne _080B1F48 + bl OpenLinkTimed + bl sub_0800A75C + bl ResetLinkPlayers + ldr r0, _080B1F44 + bl AddWindow + strh r0, [r4, #0xa] + b _080B1F54 + .align 2, 0 +_080B1F40: .4byte 0x03005B68 +_080B1F44: .4byte 0x0852B23C +_080B1F48: + cmp r2, #9 + ble _080B1F54 + subs r0, #8 + adds r0, r1, r0 + ldr r1, _080B1F60 + str r1, [r0] +_080B1F54: + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B1F60: .4byte 0x080B1F65 + thumb_func_end sub_080B1F10 + + thumb_func_start sub_080B1F64 +sub_080B1F64: @ 0x080B1F64 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl GetLinkPlayerCount_2 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r4, #0 + bl sub_080B1E08 + cmp r0, #1 + beq _080B1FD8 + adds r0, r4, #0 + bl sub_080B1E54 + cmp r0, #1 + beq _080B1FD8 + cmp r5, #1 + bls _080B1FD8 + movs r0, #1 + bl SetSuppressLinkErrorMessage + ldr r1, _080B1FBC + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r0, #0 + strh r0, [r4, #0xe] + bl IsLinkMaster + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080B1FC8 + movs r0, #0x15 + bl PlaySE + ldr r0, _080B1FC0 + bl ShowFieldAutoScrollMessage + ldr r0, _080B1FC4 + b _080B1FD6 + .align 2, 0 +_080B1FBC: .4byte 0x03005B60 +_080B1FC0: .4byte 0x08247C97 +_080B1FC4: .4byte 0x080B1FE9 +_080B1FC8: + movs r0, #0x16 + bl PlaySE + ldr r0, _080B1FE0 + bl ShowFieldAutoScrollMessage + ldr r0, _080B1FE4 +_080B1FD6: + str r0, [r4] +_080B1FD8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B1FE0: .4byte 0x08247CDA +_080B1FE4: .4byte 0x080B21F5 + thumb_func_end sub_080B1F64 + + thumb_func_start sub_080B1FE8 +sub_080B1FE8: @ 0x080B1FE8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl sub_080B1E08 + cmp r0, #1 + beq _080B2028 + adds r0, r4, #0 + bl sub_080B1EA8 + cmp r0, #1 + beq _080B2028 + adds r0, r4, #0 + bl sub_080B1DD4 + cmp r0, #1 + beq _080B2028 + bl GetFieldMessageBoxMode + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _080B2028 + ldr r0, _080B2030 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + strh r2, [r1, #0xe] + ldr r0, _080B2034 + str r0, [r1] +_080B2028: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B2030: .4byte 0x03005B60 +_080B2034: .4byte 0x080B2039 + thumb_func_end sub_080B1FE8 + + thumb_func_start sub_080B2038 +sub_080B2038: @ 0x080B2038 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + mov r8, r0 + ldr r0, _080B20CC + mov sb, r0 + mov r7, r8 + add r7, sb + bl GetLinkPlayerCount_2 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r4, #0 + bl sub_080B1E08 + cmp r0, #1 + beq _080B20C0 + adds r0, r4, #0 + bl sub_080B1EA8 + cmp r0, #1 + beq _080B20C0 + adds r0, r4, #0 + bl sub_080B1DD4 + cmp r0, #1 + beq _080B20C0 + adds r6, r5, #0 + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080B1D18 + ldr r0, _080B20D0 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080B20C0 + movs r1, #2 + ldrsh r0, [r7, r1] + cmp r5, r0 + blt _080B20C0 + adds r0, r6, #0 + bl sub_0800A5C8 + ldrh r0, [r7, #0xa] + bl sub_080B1CF8 + ldr r0, _080B20D4 + adds r1, r5, #0 + movs r2, #0 + movs r3, #1 + bl ConvertIntToDecimalStringN + ldr r0, _080B20D8 + bl ShowFieldAutoScrollMessage + mov r0, sb + subs r0, #8 + add r0, r8 + ldr r1, _080B20DC + str r1, [r0] +_080B20C0: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080B20CC: .4byte 0x03005B68 +_080B20D0: .4byte 0x03002360 +_080B20D4: .4byte 0x02021C40 +_080B20D8: .4byte 0x08247CB5 +_080B20DC: .4byte 0x080B20E1 + thumb_func_end sub_080B2038 + + thumb_func_start sub_080B20E0 +sub_080B20E0: @ 0x080B20E0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r6, r5, #0 + adds r0, r5, #0 + bl sub_080B1E08 + cmp r0, #1 + beq _080B2174 + adds r0, r5, #0 + bl sub_080B1EA8 + cmp r0, #1 + beq _080B2174 + adds r0, r5, #0 + bl sub_080B1DD4 + cmp r0, #1 + beq _080B2174 + bl GetFieldMessageBoxMode + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B2174 + bl GetSavedPlayerCount + adds r4, r0, #0 + bl GetLinkPlayerCount_2 + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + bne _080B212E + ldr r0, _080B2144 + ldrh r1, [r0, #0x2c] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080B2154 +_080B212E: + ldr r0, _080B2148 + bl ShowFieldAutoScrollMessage + ldr r1, _080B214C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080B2150 + str r1, [r0] + b _080B2174 + .align 2, 0 +_080B2144: .4byte 0x03002360 +_080B2148: .4byte 0x08247C97 +_080B214C: .4byte 0x03005B60 +_080B2150: .4byte 0x080B1FE9 +_080B2154: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080B2174 + movs r0, #5 + bl PlaySE + bl CheckShouldAdvanceLinkState + ldr r0, _080B217C + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080B2180 + str r0, [r1] +_080B2174: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080B217C: .4byte 0x03005B60 +_080B2180: .4byte 0x080B2185 + thumb_func_end sub_080B20E0 + + thumb_func_start sub_080B2184 +sub_080B2184: @ 0x080B2184 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _080B21C8 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r5, r0, r1 + ldrb r7, [r5, #0xa] + ldrb r6, [r5, #0xc] + adds r0, r4, #0 + bl sub_080B1DD4 + cmp r0, #1 + beq _080B21E6 + adds r0, r4, #0 + bl sub_080B2648 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080B21E6 + bl GetLinkPlayerCount_2 + adds r4, r0, #0 + bl GetSavedPlayerCount + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + beq _080B21D0 + ldr r0, _080B21CC + b _080B21E4 + .align 2, 0 +_080B21C8: .4byte 0x03005B60 +_080B21CC: .4byte 0x080B2609 +_080B21D0: + ldr r4, _080B21EC + adds r0, r7, #0 + adds r1, r6, #0 + bl sub_080B1D54 + strh r0, [r4] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080B21E6 + ldr r0, _080B21F0 +_080B21E4: + str r0, [r5] +_080B21E6: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080B21EC: .4byte 0x02037290 +_080B21F0: .4byte 0x080B22E5 + thumb_func_end sub_080B2184 + + thumb_func_start sub_080B21F4 +sub_080B21F4: @ 0x080B21F4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _080B224C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r7, r0, r1 + ldrb r6, [r7, #0xa] + ldrb r5, [r7, #0xc] + adds r0, r4, #0 + bl sub_080B1E08 + cmp r0, #1 + beq _080B22C2 + adds r0, r4, #0 + bl sub_080B1DD4 + cmp r0, #1 + beq _080B22C2 + ldr r4, _080B2250 + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_080B1D54 + adds r1, r0, #0 + strh r1, [r4] + lsls r0, r1, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0 + beq _080B22C2 + subs r0, r1, #3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bhi _080B2258 + bl sub_0800A7F8 + bl HideFieldMessageBox + ldr r0, _080B2254 + b _080B22C0 + .align 2, 0 +_080B224C: .4byte 0x03005B60 +_080B2250: .4byte 0x02037290 +_080B2254: .4byte 0x080B258D +_080B2258: + cmp r2, #7 + beq _080B2260 + cmp r2, #9 + bne _080B2270 +_080B2260: + bl CloseLink + bl HideFieldMessageBox + ldr r0, _080B226C + b _080B22C0 + .align 2, 0 +_080B226C: .4byte 0x080B258D +_080B2270: + bl GetLinkPlayerCount_2 + ldr r4, _080B22CC + strb r0, [r4] + bl GetMultiplayerId + ldr r1, _080B22D0 + strb r0, [r1] + ldrb r0, [r4] + bl sub_0800A5C8 + ldr r4, _080B22D4 + adds r0, r4, #0 + bl TrainerCard_GenerateCardForPlayer + ldr r0, _080B22D8 + mov r8, r0 + ldrb r0, [r0] + movs r6, #0x64 + muls r0, r6, r0 + ldr r5, _080B22DC + adds r0, r0, r5 + movs r1, #0xb + movs r2, #0 + bl GetMonData + adds r1, r4, #0 + adds r1, #0x54 + strh r0, [r1] + mov r1, r8 + ldrb r0, [r1, #1] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #0xb + movs r2, #0 + bl GetMonData + adds r4, #0x56 + strh r0, [r4] + ldr r0, _080B22E0 +_080B22C0: + str r0, [r7] +_080B22C2: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080B22CC: .4byte 0x03005B18 +_080B22D0: .4byte 0x03005B14 +_080B22D4: .4byte 0x0202257C +_080B22D8: .4byte 0x0203CBC4 +_080B22DC: .4byte 0x0202412C +_080B22E0: .4byte 0x080B250D + thumb_func_end sub_080B21F4 + + thumb_func_start sub_080B22E4 +sub_080B22E4: @ 0x080B22E4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + adds r0, r7, #0 + bl sub_080B1DD4 + cmp r0, #1 + beq _080B23AA + ldr r0, _080B2310 + ldrh r0, [r0] + cmp r0, #4 + bne _080B2314 + bl Link_AnyPartnersPlayingRubyOrSapphire + cmp r0, #0 + bne _080B2326 + bl sub_0800A7F8 + b _080B232A + .align 2, 0 +_080B2310: .4byte 0x02037290 +_080B2314: + cmp r0, #3 + bne _080B231E + bl sub_0800A7F8 + b _080B232A +_080B231E: + cmp r0, #7 + beq _080B2326 + cmp r0, #9 + bne _080B2348 +_080B2326: + bl CloseLink +_080B232A: + bl HideFieldMessageBox + ldr r0, _080B2340 + lsls r1, r7, #2 + adds r1, r1, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080B2344 + str r0, [r1] + b _080B23AA + .align 2, 0 +_080B2340: .4byte 0x03005B60 +_080B2344: .4byte 0x080B258D +_080B2348: + bl GetLinkPlayerCount_2 + ldr r4, _080B23B4 + strb r0, [r4] + bl GetMultiplayerId + ldr r1, _080B23B8 + strb r0, [r1] + ldrb r0, [r4] + bl sub_0800A5C8 + ldr r4, _080B23BC + adds r0, r4, #0 + bl TrainerCard_GenerateCardForPlayer + ldr r0, _080B23C0 + mov r8, r0 + ldrb r0, [r0] + movs r6, #0x64 + muls r0, r6, r0 + ldr r5, _080B23C4 + adds r0, r0, r5 + movs r1, #0xb + movs r2, #0 + bl GetMonData + adds r1, r4, #0 + adds r1, #0x54 + strh r0, [r1] + mov r1, r8 + ldrb r0, [r1, #1] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #0xb + movs r2, #0 + bl GetMonData + adds r4, #0x56 + strh r0, [r4] + ldr r1, _080B23C8 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080B23CC + str r1, [r0] + movs r0, #2 + bl sub_0800A09C +_080B23AA: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080B23B4: .4byte 0x03005B18 +_080B23B8: .4byte 0x03005B14 +_080B23BC: .4byte 0x0202257C +_080B23C0: .4byte 0x0203CBC4 +_080B23C4: .4byte 0x0202412C +_080B23C8: .4byte 0x03005B60 +_080B23CC: .4byte 0x080B250D + thumb_func_end sub_080B22E4 + + thumb_func_start sub_080B23D0 +sub_080B23D0: @ 0x080B23D0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + str r0, [sp] + mov sl, r1 + movs r2, #0 + movs r7, #0 + ldr r1, _080B2460 + movs r0, #0xff + strb r0, [r1] + ldr r1, _080B2464 + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1] + movs r1, #0 + ldr r0, _080B2468 + mov sb, r0 +_080B23F8: + lsls r0, r1, #1 + adds r1, #1 + mov r8, r1 + ldr r1, [sp] + adds r4, r0, r1 + mov r5, sl + movs r6, #1 +_080B2406: + ldrh r0, [r4] + ldrh r1, [r5] + cmp r0, r1 + bne _080B243A + cmp r7, #0 + bne _080B2422 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + add r1, sb + ldr r0, _080B2460 + bl StringCopy + movs r2, #1 +_080B2422: + cmp r7, #1 + bne _080B2438 + ldrh r0, [r4] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + add r1, sb + ldr r0, _080B2464 + bl StringCopy + movs r2, #1 +_080B2438: + adds r7, #1 +_080B243A: + adds r5, #2 + subs r6, #1 + cmp r6, #0 + bge _080B2406 + mov r1, r8 + cmp r1, #1 + ble _080B23F8 + ldr r0, _080B246C + strh r7, [r0] + adds r0, r2, #0 + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080B2460: .4byte 0x02021C40 +_080B2464: .4byte 0x02021C54 +_080B2468: .4byte 0x082EA31C +_080B246C: .4byte 0x02037282 + thumb_func_end sub_080B23D0 + + thumb_func_start task_map_chg_seq_0807EC34 +task_map_chg_seq_0807EC34: @ 0x080B2470 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + ldr r1, _080B24B4 + ldrh r0, [r5] + cmp r0, #1 + bne _080B24EC + ldr r0, _080B24B8 + ldrh r2, [r0] + ldr r0, _080B24BC + cmp r2, r0 + beq _080B248E + adds r0, #0x11 + cmp r2, r0 + bne _080B24C8 +_080B248E: + adds r0, r1, #0 + adds r0, #0x54 + adds r1, #0xb8 + bl sub_080B23D0 + cmp r0, #0 + beq _080B24C8 + movs r0, #0xb + strh r0, [r5] + bl sub_0800A7F8 + ldr r1, _080B24C0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080B24C4 + str r1, [r0] + b _080B24FE + .align 2, 0 +_080B24B4: .4byte 0x020397F8 +_080B24B8: .4byte 0x0202267E +_080B24BC: .4byte 0x00002266 +_080B24C0: .4byte 0x03005B60 +_080B24C4: .4byte 0x080B258D +_080B24C8: + ldr r1, _080B24E8 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r0, [r0, #0x12] + bl sub_080B1CF8 + bl EnableBothScriptContexts + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + b _080B24FE + .align 2, 0 +_080B24E8: .4byte 0x03005B60 +_080B24EC: + bl sub_0800A7F8 + ldr r0, _080B2504 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080B2508 + str r0, [r1] +_080B24FE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B2504: .4byte 0x03005B60 +_080B2508: .4byte 0x080B258D + thumb_func_end task_map_chg_seq_0807EC34 + + thumb_func_start sub_080B250C +sub_080B250C: @ 0x080B250C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r5, #0 + bl sub_080B1DD4 + cmp r0, #1 + beq _080B2578 + bl GetBlockReceivedStatus + adds r4, r0, #0 + bl sub_0800A56C + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + bne _080B2578 + movs r4, #0 + ldr r6, _080B2534 + b _080B255A + .align 2, 0 +_080B2534: .4byte 0x020226A0 +_080B2538: + movs r0, #0x64 + muls r0, r4, r0 + ldr r1, _080B2580 + adds r0, r0, r1 + lsls r1, r4, #8 + ldr r2, _080B2584 + adds r1, r1, r2 + lsls r2, r4, #3 + subs r2, r2, r4 + lsls r2, r2, #2 + adds r2, r2, r6 + ldrb r2, [r2] + bl CopyTrainerCardData + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_080B255A: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + blo _080B2538 + movs r0, #0 + bl SetSuppressLinkErrorMessage + bl ResetBlockReceivedFlags + ldr r0, _080B2588 + adds r1, r5, #0 + bl task_map_chg_seq_0807EC34 +_080B2578: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080B2580: .4byte 0x020397F8 +_080B2584: .4byte 0x0202207C +_080B2588: .4byte 0x02037290 + thumb_func_end sub_080B250C + + thumb_func_start sub_080B258C +sub_080B258C: @ 0x080B258C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _080B25C0 + ldrb r0, [r0] + cmp r0, #0 + bne _080B25BA + ldr r0, _080B25C4 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + adds r4, r4, r0 + ldrh r0, [r4, #0x12] + bl sub_080B1CF8 + bl EnableBothScriptContexts + ldrb r0, [r4, #0x12] + bl RemoveWindow + adds r0, r5, #0 + bl DestroyTask +_080B25BA: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B25C0: .4byte 0x030031C4 +_080B25C4: .4byte 0x03005B60 + thumb_func_end sub_080B258C + + thumb_func_start sub_080B25C8 +sub_080B25C8: @ 0x080B25C8 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r1, _080B2600 + movs r0, #5 + strh r0, [r1] + ldr r0, _080B2604 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + adds r4, r4, r0 + ldrh r0, [r4, #0x12] + bl sub_080B1CF8 + bl sub_08097CFC + ldrb r0, [r4, #0x12] + bl RemoveWindow + bl EnableBothScriptContexts + adds r0, r5, #0 + bl DestroyTask + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B2600: .4byte 0x02037290 +_080B2604: .4byte 0x03005B60 + thumb_func_end sub_080B25C8 + + thumb_func_start sub_080B2608 +sub_080B2608: @ 0x080B2608 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r1, _080B2640 + movs r0, #6 + strh r0, [r1] + ldr r0, _080B2644 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + adds r4, r4, r0 + ldrh r0, [r4, #0x12] + bl sub_080B1CF8 + ldrb r0, [r4, #0x12] + bl RemoveWindow + bl HideFieldMessageBox + bl EnableBothScriptContexts + adds r0, r5, #0 + bl DestroyTask + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B2640: .4byte 0x02037290 +_080B2644: .4byte 0x03005B60 + thumb_func_end sub_080B2608 + + thumb_func_start sub_080B2648 +sub_080B2648: @ 0x080B2648 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080B266C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r2, r1, r2 + ldrh r0, [r2, #0x10] + adds r0, #1 + strh r0, [r2, #0x10] + lsls r0, r0, #0x10 + movs r1, #0x96 + lsls r1, r1, #0x12 + cmp r0, r1 + bgt _080B2670 + movs r0, #0 + b _080B2676 + .align 2, 0 +_080B266C: .4byte 0x03005B60 +_080B2670: + ldr r0, _080B267C + str r0, [r2] + movs r0, #1 +_080B2676: + pop {r1} + bx r1 + .align 2, 0 +_080B267C: .4byte 0x080B2609 + thumb_func_end sub_080B2648 + + thumb_func_start sub_080B2680 +sub_080B2680: @ 0x080B2680 + push {r4, lr} + movs r3, #2 + movs r2, #2 + ldr r0, _080B2698 + ldrh r0, [r0] + cmp r0, #2 + beq _080B26B8 + cmp r0, #2 + bgt _080B269C + cmp r0, #1 + beq _080B26A6 + b _080B2710 + .align 2, 0 +_080B2698: .4byte 0x02037280 +_080B269C: + cmp r0, #5 + beq _080B26C8 + cmp r0, #9 + beq _080B26DC + b _080B2710 +_080B26A6: + movs r3, #2 + ldr r1, _080B26B0 + ldr r4, _080B26B4 + b _080B270C + .align 2, 0 +_080B26B0: .4byte 0x0202267E +_080B26B4: .4byte 0x00002233 +_080B26B8: + movs r3, #2 + ldr r1, _080B26C0 + ldr r4, _080B26C4 + b _080B270C + .align 2, 0 +_080B26C0: .4byte 0x0202267E +_080B26C4: .4byte 0x00002244 +_080B26C8: + movs r3, #4 + movs r2, #4 + ldr r1, _080B26D4 + ldr r4, _080B26D8 + b _080B270C + .align 2, 0 +_080B26D4: .4byte 0x0202267E +_080B26D8: .4byte 0x00002255 +_080B26DC: + movs r3, #2 + ldr r0, _080B26F8 + ldr r0, [r0] + ldr r1, _080B26FC + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _080B2708 + ldr r1, _080B2700 + ldr r4, _080B2704 + b _080B270C + .align 2, 0 +_080B26F8: .4byte 0x03005AF0 +_080B26FC: .4byte 0x00000CA9 +_080B2700: .4byte 0x0202267E +_080B2704: .4byte 0x00002266 +_080B2708: + ldr r1, _080B2720 + ldr r4, _080B2724 +_080B270C: + adds r0, r4, #0 + strh r0, [r1] +_080B2710: + adds r0, r3, #0 + adds r1, r2, #0 + bl sub_080B1C58 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B2720: .4byte 0x0202267E +_080B2724: .4byte 0x00002277 + thumb_func_end sub_080B2680 + + thumb_func_start sub_080B2728 +sub_080B2728: @ 0x080B2728 + push {lr} + ldr r1, _080B2744 + ldr r2, _080B2748 + adds r0, r2, #0 + strh r0, [r1] + ldr r1, _080B274C + movs r0, #0 + str r0, [r1] + movs r0, #2 + movs r1, #2 + bl sub_080B1C58 + pop {r0} + bx r0 + .align 2, 0 +_080B2744: .4byte 0x0202267E +_080B2748: .4byte 0x00001133 +_080B274C: .4byte 0x02022C90 + thumb_func_end sub_080B2728 + + thumb_func_start sub_080B2750 +sub_080B2750: @ 0x080B2750 + push {lr} + ldr r1, _080B2774 + movs r0, #0 + strh r0, [r1] + ldr r1, _080B2778 + ldr r2, _080B277C + adds r0, r2, #0 + strh r0, [r1] + ldr r1, _080B2780 + movs r0, #0 + str r0, [r1] + movs r0, #2 + movs r1, #4 + bl sub_080B1C58 + pop {r0} + bx r0 + .align 2, 0 +_080B2774: .4byte 0x02037290 +_080B2778: .4byte 0x0202267E +_080B277C: .4byte 0x00003311 +_080B2780: .4byte 0x02022C90 + thumb_func_end sub_080B2750 + + thumb_func_start sub_080B2784 +sub_080B2784: @ 0x080B2784 + push {lr} + ldr r1, _080B27A0 + ldr r2, _080B27A4 + adds r0, r2, #0 + strh r0, [r1] + ldr r1, _080B27A8 + movs r0, #0 + str r0, [r1] + movs r0, #2 + movs r1, #4 + bl sub_080B1C58 + pop {r0} + bx r0 + .align 2, 0 +_080B27A0: .4byte 0x0202267E +_080B27A4: .4byte 0x00004411 +_080B27A8: .4byte 0x02022C90 + thumb_func_end sub_080B2784 + + thumb_func_start sub_080B27AC +sub_080B27AC: @ 0x080B27AC + push {lr} + ldr r1, _080B27C8 + ldr r2, _080B27CC + adds r0, r2, #0 + strh r0, [r1] + ldr r1, _080B27D0 + movs r0, #0 + str r0, [r1] + movs r0, #4 + movs r1, #4 + bl sub_080B1C58 + pop {r0} + bx r0 + .align 2, 0 +_080B27C8: .4byte 0x0202267E +_080B27CC: .4byte 0x00006601 +_080B27D0: .4byte 0x02022C90 + thumb_func_end sub_080B27AC + + thumb_func_start sub_080B27D4 +sub_080B27D4: @ 0x080B27D4 + push {lr} + ldr r1, _080B27F0 + ldr r2, _080B27F4 + adds r0, r2, #0 + strh r0, [r1] + ldr r1, _080B27F8 + movs r0, #0 + str r0, [r1] + movs r0, #2 + movs r1, #4 + bl sub_080B1C58 + pop {r0} + bx r0 + .align 2, 0 +_080B27F0: .4byte 0x0202267E +_080B27F4: .4byte 0x00006602 +_080B27F8: .4byte 0x02022C90 + thumb_func_end sub_080B27D4 + + thumb_func_start sub_080B27FC +sub_080B27FC: @ 0x080B27FC + push {lr} + ldr r0, _080B2810 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B2814 + movs r0, #0xff + b _080B28E0 + .align 2, 0 +_080B2810: .4byte 0x080B28F1 +_080B2814: + ldr r0, _080B2828 + ldrh r0, [r0] + subs r0, #1 + cmp r0, #8 + bhi _080B28D4 + lsls r0, r0, #2 + ldr r1, _080B282C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B2828: .4byte 0x02037280 +_080B282C: .4byte 0x080B2830 +_080B2830: @ jump table + .4byte _080B2854 @ case 0 + .4byte _080B2864 @ case 1 + .4byte _080B28BC @ case 2 + .4byte _080B28CC @ case 3 + .4byte _080B2874 @ case 4 + .4byte _080B28D4 @ case 5 + .4byte _080B28D4 @ case 6 + .4byte _080B28D4 @ case 7 + .4byte _080B2884 @ case 8 +_080B2854: + ldr r1, _080B285C + ldr r2, _080B2860 + b _080B28D0 + .align 2, 0 +_080B285C: .4byte 0x0202267E +_080B2860: .4byte 0x00002233 +_080B2864: + ldr r1, _080B286C + ldr r2, _080B2870 + b _080B28D0 + .align 2, 0 +_080B286C: .4byte 0x0202267E +_080B2870: .4byte 0x00002244 +_080B2874: + ldr r1, _080B287C + ldr r2, _080B2880 + b _080B28D0 + .align 2, 0 +_080B287C: .4byte 0x0202267E +_080B2880: .4byte 0x00002255 +_080B2884: + ldr r0, _080B289C + ldr r0, [r0] + ldr r1, _080B28A0 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _080B28AC + ldr r1, _080B28A4 + ldr r2, _080B28A8 + b _080B28D0 + .align 2, 0 +_080B289C: .4byte 0x03005AF0 +_080B28A0: .4byte 0x00000CA9 +_080B28A4: .4byte 0x0202267E +_080B28A8: .4byte 0x00002266 +_080B28AC: + ldr r1, _080B28B4 + ldr r2, _080B28B8 + b _080B28D0 + .align 2, 0 +_080B28B4: .4byte 0x0202267E +_080B28B8: .4byte 0x00002277 +_080B28BC: + ldr r1, _080B28C4 + ldr r2, _080B28C8 + b _080B28D0 + .align 2, 0 +_080B28C4: .4byte 0x0202267E +_080B28C8: .4byte 0x00001111 +_080B28CC: + ldr r1, _080B28E4 + ldr r2, _080B28E8 +_080B28D0: + adds r0, r2, #0 + strh r0, [r1] +_080B28D4: + ldr r0, _080B28EC + movs r1, #0x50 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_080B28E0: + pop {r1} + bx r1 + .align 2, 0 +_080B28E4: .4byte 0x0202267E +_080B28E8: .4byte 0x00003322 +_080B28EC: .4byte 0x080B28F1 + thumb_func_end sub_080B27FC + + thumb_func_start sub_080B28F0 +sub_080B28F0: @ 0x080B28F0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080B291C + adds r4, r1, r0 + movs r3, #0 + ldrsh r2, [r4, r3] + cmp r2, #0 + bne _080B2924 + bl OpenLink + bl ResetLinkPlayers + ldr r0, _080B2920 + movs r1, #0x50 + bl CreateTask + b _080B2930 + .align 2, 0 +_080B291C: .4byte 0x03005B68 +_080B2920: .4byte 0x080B3189 +_080B2924: + cmp r2, #9 + ble _080B2930 + subs r0, #8 + adds r0, r1, r0 + ldr r1, _080B293C + str r1, [r0] +_080B2930: + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B293C: .4byte 0x080B2941 + thumb_func_end sub_080B28F0 + + thumb_func_start sub_080B2940 +sub_080B2940: @ 0x080B2940 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r5, r4, #0 + bl GetLinkPlayerCount_2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _080B2986 + bl IsLinkMaster + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080B2978 + ldr r0, _080B2970 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080B2974 + b _080B2984 + .align 2, 0 +_080B2970: .4byte 0x03005B60 +_080B2974: .4byte 0x080B2995 +_080B2978: + ldr r0, _080B298C + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080B2990 +_080B2984: + str r0, [r1] +_080B2986: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B298C: .4byte 0x03005B60 +_080B2990: .4byte 0x080B29CD + thumb_func_end sub_080B2940 + + thumb_func_start sub_080B2994 +sub_080B2994: @ 0x080B2994 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + bl GetSavedPlayerCount + adds r4, r0, #0 + bl GetLinkPlayerCount_2 + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + bne _080B29BE + bl CheckShouldAdvanceLinkState + ldr r0, _080B29C4 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080B29C8 + str r0, [r1] +_080B29BE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B29C4: .4byte 0x03005B60 +_080B29C8: .4byte 0x080B29CD + thumb_func_end sub_080B2994 + + thumb_func_start sub_080B29CC +sub_080B29CC: @ 0x080B29CC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080B29FC + ldrb r0, [r0] + cmp r0, #1 + bne _080B29F4 + bl IsLinkPlayerDataExchangeComplete + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080B29F4 + bl sub_0800A6DC + bl sub_08009AB0 + adds r0, r4, #0 + bl DestroyTask +_080B29F4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B29FC: .4byte 0x030031C4 + thumb_func_end sub_080B29CC + + thumb_func_start sub_080B2A00 +sub_080B2A00: @ 0x080B2A00 + push {lr} + bl SaveGame + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080B2A00 + + thumb_func_start sub_080B2A0C +sub_080B2A0C: @ 0x080B2A0C + push {lr} + cmp r0, #2 + beq _080B2A30 + cmp r0, #2 + bgt _080B2A1C + cmp r0, #1 + beq _080B2A26 + b _080B2A52 +_080B2A1C: + cmp r0, #5 + beq _080B2A3C + cmp r0, #9 + beq _080B2A4C + b _080B2A52 +_080B2A26: + ldr r1, _080B2A2C + movs r0, #0xa + b _080B2A50 + .align 2, 0 +_080B2A2C: .4byte 0x02022C90 +_080B2A30: + ldr r1, _080B2A38 + movs r0, #0xb + b _080B2A50 + .align 2, 0 +_080B2A38: .4byte 0x02022C90 +_080B2A3C: + bl ReducePlayerPartyToSelectedMons + ldr r1, _080B2A48 + movs r0, #0x4b + b _080B2A50 + .align 2, 0 +_080B2A48: .4byte 0x02022C90 +_080B2A4C: + ldr r1, _080B2A58 + ldr r0, _080B2A5C +_080B2A50: + str r0, [r1] +_080B2A52: + pop {r0} + bx r0 + .align 2, 0 +_080B2A58: .4byte 0x02022C90 +_080B2A5C: .4byte 0x0000014B + thumb_func_end sub_080B2A0C + + thumb_func_start sub_080B2A60 +sub_080B2A60: @ 0x080B2A60 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080B2A84 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #5 + bhi _080B2B4C + lsls r0, r0, #2 + ldr r1, _080B2A88 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B2A84: .4byte 0x03005B60 +_080B2A88: .4byte 0x080B2A8C +_080B2A8C: @ jump table + .4byte _080B2AA4 @ case 0 + .4byte _080B2AC4 @ case 1 + .4byte _080B2AD4 @ case 2 + .4byte _080B2AE4 @ case 3 + .4byte _080B2AEA @ case 4 + .4byte _080B2B00 @ case 5 +_080B2AA4: + movs r0, #1 + movs r1, #0 + bl FadeScreen + ldr r1, _080B2ABC + ldr r2, _080B2AC0 + adds r0, r2, #0 + strh r0, [r1] + bl ClearLinkCallback_2 + b _080B2AF2 + .align 2, 0 +_080B2ABC: .4byte 0x0202267E +_080B2AC0: .4byte 0x00002211 +_080B2AC4: + ldr r0, _080B2AD0 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + b _080B2AEE + .align 2, 0 +_080B2AD0: .4byte 0x02037C74 +_080B2AD4: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x14 + ble _080B2B4C + b _080B2AF2 +_080B2AE4: + bl sub_0800A7F8 + b _080B2AF2 +_080B2AEA: + ldr r0, _080B2AFC + ldrb r0, [r0] +_080B2AEE: + cmp r0, #0 + bne _080B2B4C +_080B2AF2: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _080B2B4C + .align 2, 0 +_080B2AFC: .4byte 0x030031C4 +_080B2B00: + ldr r0, _080B2B14 + ldr r0, [r0, #4] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _080B2B1C + ldr r0, _080B2B18 + bl PlayMapChosenOrBattleBGM + b _080B2B24 + .align 2, 0 +_080B2B14: .4byte 0x020226A0 +_080B2B18: .4byte 0x000001DD +_080B2B1C: + movs r0, #0xee + lsls r0, r0, #1 + bl PlayMapChosenOrBattleBGM +_080B2B24: + ldr r0, _080B2B54 + ldrh r0, [r0] + bl sub_080B2A0C + bl CleanupOverworldWindowsAndTilemaps + ldr r1, _080B2B58 + movs r2, #0x80 + lsls r2, r2, #4 + adds r0, r2, #0 + strh r0, [r1] + ldr r0, _080B2B5C + bl SetMainCallback2 + ldr r1, _080B2B60 + ldr r0, _080B2B64 + str r0, [r1, #8] + adds r0, r5, #0 + bl DestroyTask +_080B2B4C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B2B54: .4byte 0x02037280 +_080B2B58: .4byte 0x0203886A +_080B2B5C: .4byte 0x080365B5 +_080B2B60: .4byte 0x03002360 +_080B2B64: .4byte 0x080B2D69 + thumb_func_end sub_080B2A60 + + thumb_func_start sub_080B2B68 +sub_080B2B68: @ 0x080B2B68 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _080B2B8C + adds r5, r0, r1 + movs r1, #0 + ldrsh r0, [r5, r1] + cmp r0, #7 + bls _080B2B82 + b _080B2CDA +_080B2B82: + lsls r0, r0, #2 + ldr r1, _080B2B90 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B2B8C: .4byte 0x03005B68 +_080B2B90: .4byte 0x080B2B94 +_080B2B94: @ jump table + .4byte _080B2BB4 @ case 0 + .4byte _080B2BD8 @ case 1 + .4byte _080B2BF0 @ case 2 + .4byte _080B2C04 @ case 3 + .4byte _080B2C58 @ case 4 + .4byte _080B2C6C @ case 5 + .4byte _080B2C76 @ case 6 + .4byte _080B2C86 @ case 7 +_080B2BB4: + movs r0, #1 + movs r1, #0 + bl FadeScreen + ldr r0, _080B2BD0 + ldr r2, _080B2BD4 + adds r1, r2, #0 + strh r1, [r0] + bl ClearLinkCallback_2 + movs r0, #1 + strh r0, [r5] + b _080B2CDA + .align 2, 0 +_080B2BD0: .4byte 0x0202267E +_080B2BD4: .4byte 0x00002211 +_080B2BD8: + ldr r0, _080B2BEC + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080B2BE6 + b _080B2CDA +_080B2BE6: + movs r0, #2 + strh r0, [r5] + b _080B2CDA + .align 2, 0 +_080B2BEC: .4byte 0x02037C74 +_080B2BF0: + ldr r1, _080B2C00 + movs r0, #0 + movs r2, #0x1c + bl SendBlock + movs r0, #3 + strh r0, [r5] + b _080B2CDA + .align 2, 0 +_080B2C00: .4byte 0x02022684 +_080B2C04: + bl GetBlockReceivedStatus + adds r4, r0, #0 + bl sub_0800A59C + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + bne _080B2CDA + movs r4, #0 + ldr r6, _080B2C1C + b _080B2C40 + .align 2, 0 +_080B2C1C: .4byte 0x020226A0 +_080B2C20: + lsls r1, r4, #8 + ldr r2, _080B2C54 + adds r0, r6, #0 + adds r1, r1, r2 + ldm r1!, {r2, r3, r7} + stm r0!, {r2, r3, r7} + ldm r1!, {r2, r3, r7} + stm r0!, {r2, r3, r7} + ldr r1, [r1] + str r1, [r0] + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl ResetBlockReceivedFlag + adds r6, #0x1c + adds r4, #1 +_080B2C40: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + blt _080B2C20 + movs r0, #4 + strh r0, [r5] + b _080B2CDA + .align 2, 0 +_080B2C54: .4byte 0x0202207C +_080B2C58: + ldrh r0, [r5, #2] + adds r0, #1 + strh r0, [r5, #2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x14 + ble _080B2CDA + movs r0, #5 + strh r0, [r5] + b _080B2CDA +_080B2C6C: + bl sub_0800A8D4 + movs r0, #6 + strh r0, [r5] + b _080B2CDA +_080B2C76: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B2CDA + movs r0, #7 + strh r0, [r5] + b _080B2CDA +_080B2C86: + ldr r0, _080B2C9C + ldr r0, [r0, #4] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _080B2CA4 + ldr r0, _080B2CA0 + bl PlayMapChosenOrBattleBGM + b _080B2CAC + .align 2, 0 +_080B2C9C: .4byte 0x020226A0 +_080B2CA0: .4byte 0x000001DD +_080B2CA4: + movs r0, #0xee + lsls r0, r0, #1 + bl PlayMapChosenOrBattleBGM +_080B2CAC: + ldr r1, _080B2CE0 + ldr r0, _080B2CE4 + str r0, [r1, #0x14] + ldr r0, _080B2CE8 + ldrh r0, [r0] + bl sub_080B2A0C + bl CleanupOverworldWindowsAndTilemaps + ldr r1, _080B2CEC + movs r3, #0x80 + lsls r3, r3, #4 + adds r0, r3, #0 + strh r0, [r1] + ldr r0, _080B2CF0 + bl SetMainCallback2 + ldr r1, _080B2CF4 + ldr r0, _080B2CF8 + str r0, [r1, #8] + adds r0, r4, #0 + bl DestroyTask +_080B2CDA: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080B2CE0: .4byte 0x020226A0 +_080B2CE4: .4byte 0x00002211 +_080B2CE8: .4byte 0x02037280 +_080B2CEC: .4byte 0x0203886A +_080B2CF0: .4byte 0x080365B5 +_080B2CF4: .4byte 0x03002360 +_080B2CF8: .4byte 0x080B2D69 + thumb_func_end sub_080B2B68 + + thumb_func_start sub_080B2CFC +sub_080B2CFC: @ 0x080B2CFC + push {r4, lr} + ldr r0, _080B2D18 + movs r1, #0x87 + lsls r1, r1, #3 + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, #1 + beq _080B2D3A + cmp r0, #1 + bgt _080B2D1C + cmp r0, #0 + beq _080B2D22 + b _080B2D5A + .align 2, 0 +_080B2D18: .4byte 0x03002360 +_080B2D1C: + cmp r0, #2 + beq _080B2D54 + b _080B2D5A +_080B2D22: + bl sub_0800A7F8 + bl sub_08009C40 + cmp r0, #0 + beq _080B2D34 + movs r0, #2 + strb r0, [r4] + b _080B2D5A +_080B2D34: + movs r0, #1 + strb r0, [r4] + b _080B2D5A +_080B2D3A: + ldr r0, _080B2D4C + ldrb r0, [r0] + cmp r0, #0 + bne _080B2D5A + ldr r0, _080B2D50 + bl SetMainCallback2 + b _080B2D5A + .align 2, 0 +_080B2D4C: .4byte 0x030031C4 +_080B2D50: .4byte 0x08085A31 +_080B2D54: + ldr r0, _080B2D64 + bl SetMainCallback2 +_080B2D5A: + bl RunTasks + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B2D64: .4byte 0x08085A31 + thumb_func_end sub_080B2CFC + + thumb_func_start sub_080B2D68 +sub_080B2D68: @ 0x080B2D68 + push {r4, r5, lr} + ldr r2, _080B2DB8 + ldr r0, [r2] + movs r1, #0x21 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2] + bl Overworld_ResetMapMusic + bl LoadPlayerParty + bl SavePlayerBag + bl sub_0813BF34 + ldr r0, _080B2DBC + ldrh r0, [r0] + subs r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bhi _080B2E0E + ldr r0, _080B2DC0 + ldrb r0, [r0] + movs r5, #1 + eors r0, r5 + bl UpdatePlayerLinkBattleRecords + ldr r0, _080B2DC4 + ldrb r0, [r0] + cmp r0, #0 + beq _080B2E0E + ldr r0, _080B2DC8 + ldrb r0, [r0] + cmp r0, #1 + beq _080B2DCC + cmp r0, #2 + beq _080B2DF0 + b _080B2E0E + .align 2, 0 +_080B2DB8: .4byte 0x02022C90 +_080B2DBC: .4byte 0x02037280 +_080B2DC0: .4byte 0x03005B14 +_080B2DC4: .4byte 0x0300319C +_080B2DC8: .4byte 0x02023FDE +_080B2DCC: + ldr r4, _080B2DEC + bl GetMultiplayerId + eors r0, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r4, #4 + adds r1, r1, r4 + ldr r1, [r1] + movs r0, #0 + bl sub_0801B4A8 + b _080B2E0E + .align 2, 0 +_080B2DEC: .4byte 0x020226A0 +_080B2DF0: + ldr r4, _080B2E1C + bl GetMultiplayerId + eors r0, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r4, #4 + adds r1, r1, r4 + ldr r1, [r1] + movs r0, #1 + bl sub_0801B4A8 +_080B2E0E: + bl InUnionRoom + cmp r0, #1 + bne _080B2E28 + ldr r1, _080B2E20 + ldr r0, _080B2E24 + b _080B2E2C + .align 2, 0 +_080B2E1C: .4byte 0x020226A0 +_080B2E20: .4byte 0x03002360 +_080B2E24: .4byte 0x080B2CFD +_080B2E28: + ldr r1, _080B2E3C + ldr r0, _080B2E40 +_080B2E2C: + str r0, [r1, #8] + ldr r0, _080B2E44 + bl SetMainCallback2 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B2E3C: .4byte 0x03002360 +_080B2E40: .4byte 0x08085AA9 +_080B2E44: .4byte 0x0809FDED + thumb_func_end sub_080B2D68 + + thumb_func_start CleanupLinkRoomState +CleanupLinkRoomState: @ 0x080B2E48 + push {lr} + ldr r0, _080B2E74 + ldrh r1, [r0] + subs r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bls _080B2E62 + adds r0, r1, #0 + cmp r0, #5 + beq _080B2E62 + cmp r0, #9 + bne _080B2E6A +_080B2E62: + bl LoadPlayerParty + bl SavePlayerBag +_080B2E6A: + movs r0, #0x7f + bl SetWarpDestinationToDynamicWarp + pop {r0} + bx r0 + .align 2, 0 +_080B2E74: .4byte 0x02037280 + thumb_func_end CleanupLinkRoomState + + thumb_func_start ExitLinkRoom +ExitLinkRoom: @ 0x080B2E78 + push {lr} + bl QueueExitLinkRoomKey + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ExitLinkRoom + + thumb_func_start sub_080B2E84 +sub_080B2E84: @ 0x080B2E84 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _080B2EA8 + adds r5, r0, r1 + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #1 + beq _080B2EC8 + cmp r0, #1 + bgt _080B2EAC + cmp r0, #0 + beq _080B2EB6 + b _080B2F28 + .align 2, 0 +_080B2EA8: .4byte 0x03005B60 +_080B2EAC: + cmp r0, #2 + beq _080B2EE8 + cmp r0, #3 + beq _080B2F14 + b _080B2F28 +_080B2EB6: + ldr r0, _080B2EC4 + bl ShowFieldMessage + movs r0, #1 + strh r0, [r5, #8] + b _080B2F28 + .align 2, 0 +_080B2EC4: .4byte 0x08247C79 +_080B2EC8: + bl IsFieldMessageBoxHidden + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B2F28 + bl sub_08086BEC + ldr r0, _080B2EE4 + ldrb r0, [r0] + bl SetLocalLinkPlayerId + movs r0, #2 + strh r0, [r5, #8] + b _080B2F28 + .align 2, 0 +_080B2EE4: .4byte 0x02037282 +_080B2EE8: + bl sub_08086B78 + cmp r0, #1 + beq _080B2EFA + cmp r0, #1 + blo _080B2F28 + cmp r0, #2 + beq _080B2F0E + b _080B2F28 +_080B2EFA: + bl HideFieldMessageBox + movs r0, #0 + strh r0, [r5, #8] + bl sub_08086C28 + adds r0, r4, #0 + bl SwitchTaskToFollowupFunc + b _080B2F28 +_080B2F0E: + movs r0, #3 + strh r0, [r5, #8] + b _080B2F28 +_080B2F14: + bl sub_08086C00 + movs r0, #1 + bl sub_081978F0 + adds r0, r4, #0 + bl DestroyTask + bl EnableBothScriptContexts +_080B2F28: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080B2E84 + + thumb_func_start sub_080B2F30 +sub_080B2F30: @ 0x080B2F30 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080B2F54 + adds r0, r4, #0 + movs r1, #0x50 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r4, #0 + adds r2, r5, #0 + bl SetTaskFuncWithFollowupFunc + bl ScriptContext1_Stop + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B2F54: .4byte 0x080B2E85 + thumb_func_end sub_080B2F30 + + thumb_func_start sub_080B2F58 +sub_080B2F58: @ 0x080B2F58 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080B2F7C + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _080B2F9C + cmp r0, #1 + bgt _080B2F80 + cmp r0, #0 + beq _080B2F8A + b _080B2FE0 + .align 2, 0 +_080B2F7C: .4byte 0x03005B60 +_080B2F80: + cmp r0, #2 + beq _080B2FB0 + cmp r0, #3 + beq _080B2FCC + b _080B2FE0 +_080B2F8A: + bl ScriptContext2_Enable + movs r0, #1 + movs r1, #0 + bl FadeScreen + bl ClearLinkCallback_2 + b _080B2FC0 +_080B2F9C: + ldr r0, _080B2FAC + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080B2FE0 + b _080B2FC0 + .align 2, 0 +_080B2FAC: .4byte 0x02037C74 +_080B2FB0: + ldr r1, _080B2FC8 + movs r0, #0 + strb r0, [r1] + strb r0, [r1, #1] + bl m4aMPlayAllStop + bl sub_0800A7F8 +_080B2FC0: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _080B2FE0 + .align 2, 0 +_080B2FC8: .4byte 0x02031F38 +_080B2FCC: + ldr r0, _080B2FE8 + ldrb r0, [r0] + cmp r0, #0 + bne _080B2FE0 + ldr r0, _080B2FEC + bl SetMainCallback2 + adds r0, r5, #0 + bl DestroyTask +_080B2FE0: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B2FE8: .4byte 0x030031C4 +_080B2FEC: .4byte 0x08076DB5 + thumb_func_end sub_080B2F58 + + thumb_func_start sub_080B2FF0 +sub_080B2FF0: @ 0x080B2FF0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080B3014 + adds r4, r0, r1 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _080B3034 + cmp r0, #1 + bgt _080B3018 + cmp r0, #0 + beq _080B3022 + b _080B3078 + .align 2, 0 +_080B3014: .4byte 0x03005B68 +_080B3018: + cmp r0, #2 + beq _080B3048 + cmp r0, #3 + beq _080B3064 + b _080B3078 +_080B3022: + bl ScriptContext2_Enable + movs r0, #1 + movs r1, #0 + bl FadeScreen + bl Rfu_set_zero + b _080B3058 +_080B3034: + ldr r0, _080B3044 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080B3078 + b _080B3058 + .align 2, 0 +_080B3044: .4byte 0x02037C74 +_080B3048: + ldr r1, _080B3060 + movs r0, #0 + strb r0, [r1] + strb r0, [r1, #1] + bl m4aMPlayAllStop + bl sub_0800A8D4 +_080B3058: + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + b _080B3078 + .align 2, 0 +_080B3060: .4byte 0x02031F38 +_080B3064: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B3078 + bl sub_08013A80 + adds r0, r5, #0 + bl DestroyTask +_080B3078: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080B2FF0 + + thumb_func_start PlayerEnteredTradeSeat +PlayerEnteredTradeSeat: @ 0x080B3080 + push {lr} + ldr r0, _080B3094 + ldrb r0, [r0] + cmp r0, #0 + beq _080B309C + ldr r0, _080B3098 + bl sub_080B2F30 + b _080B30A2 + .align 2, 0 +_080B3094: .4byte 0x0300319C +_080B3098: .4byte 0x080B2FF1 +_080B309C: + ldr r0, _080B30A8 + bl sub_080B2F30 +_080B30A2: + pop {r0} + bx r0 + .align 2, 0 +_080B30A8: .4byte 0x080B2F59 + thumb_func_end PlayerEnteredTradeSeat + + thumb_func_start sub_080B30AC +sub_080B30AC: @ 0x080B30AC + push {lr} + ldr r0, _080B30BC + movs r1, #0x50 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080B30BC: .4byte 0x080B2F59 + thumb_func_end sub_080B30AC + + thumb_func_start nullsub_37 +nullsub_37: @ 0x080B30C0 + bx lr + .align 2, 0 + thumb_func_end nullsub_37 + + thumb_func_start ColosseumPlayerSpotTriggered +ColosseumPlayerSpotTriggered: @ 0x080B30C4 + push {lr} + ldr r1, _080B30E0 + ldr r2, _080B30E4 + adds r0, r2, #0 + strh r0, [r1] + ldr r0, _080B30E8 + ldrb r0, [r0] + cmp r0, #0 + beq _080B30F0 + ldr r0, _080B30EC + bl sub_080B2F30 + b _080B30F6 + .align 2, 0 +_080B30E0: .4byte 0x0202267E +_080B30E4: .4byte 0x00002211 +_080B30E8: .4byte 0x0300319C +_080B30EC: .4byte 0x080B2B69 +_080B30F0: + ldr r0, _080B30FC + bl sub_080B2F30 +_080B30F6: + pop {r0} + bx r0 + .align 2, 0 +_080B30FC: .4byte 0x080B2A61 + thumb_func_end ColosseumPlayerSpotTriggered + + thumb_func_start sub_080B3100 +sub_080B3100: @ 0x080B3100 + push {lr} + ldr r0, _080B3114 + movs r1, #0x50 + bl CreateTask + bl ScriptContext1_Stop + pop {r0} + bx r0 + .align 2, 0 +_080B3114: .4byte 0x080B2E85 + thumb_func_end sub_080B3100 + + thumb_func_start sp02A_crash_sound +sp02A_crash_sound: @ 0x080B3118 + push {lr} + ldr r0, _080B3128 + ldrb r0, [r0] + ldr r1, _080B312C + bl ShowTrainerCardInLink + pop {r0} + bx r0 + .align 2, 0 +_080B3128: .4byte 0x02037284 +_080B312C: .4byte 0x08085B35 + thumb_func_end sp02A_crash_sound + + thumb_func_start GetLinkTrainerCardColor +GetLinkTrainerCardColor: @ 0x080B3130 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _080B316C + strh r4, [r0] + ldr r0, _080B3170 + lsls r1, r4, #3 + subs r1, r1, r4 + lsls r1, r1, #2 + ldr r2, _080B3174 + adds r1, r1, r2 + bl StringCopy + adds r0, r4, #0 + bl GetTrainerCardStars + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _080B3180 + ldr r0, _080B3178 + lsls r1, r2, #2 + adds r1, r1, r2 + ldr r2, _080B317C + adds r1, r1, r2 + bl StringCopy + movs r0, #1 + b _080B3182 + .align 2, 0 +_080B316C: .4byte 0x02037284 +_080B3170: .4byte 0x02021C40 +_080B3174: .4byte 0x020226A8 +_080B3178: .4byte 0x02021C54 +_080B317C: .4byte 0x0852B23F +_080B3180: + movs r0, #0 +_080B3182: + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetLinkTrainerCardColor + + thumb_func_start task00_08081A90 +task00_08081A90: @ 0x080B3188 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r5, r4, #0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _080B31E8 + adds r0, r0, r1 + ldrh r1, [r0, #8] + adds r1, #1 + strh r1, [r0, #8] + lsls r1, r1, #0x10 + movs r0, #0x96 + lsls r0, r0, #0x11 + cmp r1, r0 + ble _080B31BA + bl CloseLink + ldr r0, _080B31EC + bl SetMainCallback2 + adds r0, r4, #0 + bl DestroyTask +_080B31BA: + ldr r0, _080B31F0 + ldrb r0, [r0] + cmp r0, #0 + beq _080B31FE + ldr r0, _080B31F4 + ldrb r0, [r0] + cmp r0, #0 + bne _080B31F8 + bl sub_0800A624 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B31DE + bl CloseLink + ldr r0, _080B31EC + bl SetMainCallback2 +_080B31DE: + adds r0, r4, #0 + bl DestroyTask + b _080B31FE + .align 2, 0 +_080B31E8: .4byte 0x03005B60 +_080B31EC: .4byte 0x0800AA0D +_080B31F0: .4byte 0x030031C4 +_080B31F4: .4byte 0x0300319C +_080B31F8: + adds r0, r5, #0 + bl DestroyTask +_080B31FE: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end task00_08081A90 + + thumb_func_start sub_080B3204 +sub_080B3204: @ 0x080B3204 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080B3224 + ldrb r0, [r0] + cmp r0, #0 + bne _080B321C + bl EnableBothScriptContexts + adds r0, r4, #0 + bl DestroyTask +_080B321C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B3224: .4byte 0x030031C4 + thumb_func_end sub_080B3204 + + thumb_func_start sub_080B3228 +sub_080B3228: @ 0x080B3228 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl sub_0800A7F8 + ldr r1, _080B3248 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080B324C + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B3248: .4byte 0x03005B60 +_080B324C: .4byte 0x080B3205 + thumb_func_end sub_080B3228 + + thumb_func_start sub_080B3250 +sub_080B3250: @ 0x080B3250 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _080B3274 + adds r5, r0, r1 + movs r1, #0 + ldrsh r0, [r5, r1] + cmp r0, #1 + beq _080B32AC + cmp r0, #1 + bgt _080B3278 + cmp r0, #0 + beq _080B3282 + b _080B3310 + .align 2, 0 +_080B3274: .4byte 0x03005B68 +_080B3278: + cmp r0, #2 + beq _080B32C0 + cmp r0, #3 + beq _080B32F6 + b _080B3310 +_080B3282: + ldr r0, _080B3294 + ldrb r0, [r0] + cmp r0, #0 + beq _080B3298 + adds r0, r4, #0 + bl DestroyTask + b _080B3310 + .align 2, 0 +_080B3294: .4byte 0x0300319C +_080B3298: + bl OpenLink + ldr r0, _080B32A8 + movs r1, #1 + bl CreateTask + b _080B32EE + .align 2, 0 +_080B32A8: .4byte 0x080B3189 +_080B32AC: + ldrh r0, [r5, #2] + adds r0, #1 + strh r0, [r5, #2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xb + ble _080B3310 + movs r0, #0 + strh r0, [r5, #2] + b _080B32EE +_080B32C0: + bl GetLinkPlayerCount_2 + adds r4, r0, #0 + bl GetSavedPlayerCount + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + blo _080B3310 + bl IsLinkMaster + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B32EE + ldrh r0, [r5, #2] + adds r0, #1 + strh r0, [r5, #2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1e + ble _080B3310 + bl CheckShouldAdvanceLinkState +_080B32EE: + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + b _080B3310 +_080B32F6: + ldr r0, _080B3318 + ldrb r0, [r0] + cmp r0, #1 + bne _080B3310 + bl IsLinkPlayerDataExchangeComplete + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080B3310 + adds r0, r4, #0 + bl DestroyTask +_080B3310: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B3318: .4byte 0x030031C4 + thumb_func_end sub_080B3250 + + thumb_func_start sub_080B331C +sub_080B331C: @ 0x080B331C + push {lr} + ldr r0, _080B3334 + ldrb r0, [r0] + cmp r0, #0 + bne _080B332E + ldr r1, _080B3338 + ldr r2, _080B333C + adds r0, r2, #0 + strh r0, [r1] +_080B332E: + pop {r0} + bx r0 + .align 2, 0 +_080B3334: .4byte 0x0300319C +_080B3338: .4byte 0x0202267E +_080B333C: .4byte 0x00002288 + thumb_func_end sub_080B331C + diff --git a/asm/clear_save_data_screen.s b/asm/clear_save_data_screen.s new file mode 100644 index 0000000..36f8ca6 --- /dev/null +++ b/asm/clear_save_data_screen.s @@ -0,0 +1,161 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start CB2_InitClearSaveDataScreen +CB2_InitClearSaveDataScreen: @ 0x0817AB80 + push {lr} + bl SetupClearSaveDataScreen + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0817AB94 + ldr r0, _0817AB98 + movs r1, #0 + bl CreateTask +_0817AB94: + pop {r0} + bx r0 + .align 2, 0 +_0817AB98: .4byte 0x0817AB9D + thumb_func_end CB2_InitClearSaveDataScreen + + thumb_func_start Task_DoClearSaveDataScreenYesNo +Task_DoClearSaveDataScreenYesNo: @ 0x0817AB9C + push {r4, r5, lr} + sub sp, #0xc + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + movs r1, #0 + movs r2, #2 + movs r3, #0xe + bl DrawStdFrameWithCustomTileAndPalette + ldr r2, _0817ABF0 + movs r5, #2 + str r5, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + ldr r0, _0817ABF4 + str r5, [sp] + movs r1, #0xe + str r1, [sp, #4] + movs r1, #1 + str r1, [sp, #8] + movs r2, #0 + movs r3, #2 + bl sub_08198C08 + ldr r1, _0817ABF8 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0817ABFC + str r1, [r0] + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0817ABF0: .4byte 0x085CDB60 +_0817ABF4: .4byte 0x085CDBA8 +_0817ABF8: .4byte 0x03005B60 +_0817ABFC: .4byte 0x0817AC01 + thumb_func_end Task_DoClearSaveDataScreenYesNo + + thumb_func_start Task_ClearSaveDataScreenYesNoChoice +Task_ClearSaveDataScreenYesNoChoice: @ 0x0817AC00 + push {r4, r5, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r4, r0, #0x18 + cmp r4, #0 + beq _0817AC28 + cmp r4, #0 + bgt _0817AC22 + movs r0, #1 + rsbs r0, r0, #0 + cmp r4, r0 + beq _0817AC60 + b _0817AC72 +_0817AC22: + cmp r4, #1 + beq _0817AC60 + b _0817AC72 +_0817AC28: + movs r0, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r2, _0817AC54 + movs r0, #2 + str r0, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r0, #0 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + ldr r1, _0817AC58 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0817AC5C + str r1, [r0] + b _0817AC72 + .align 2, 0 +_0817AC54: .4byte 0x085CDB7A +_0817AC58: .4byte 0x03005B60 +_0817AC5C: .4byte 0x0817AC81 +_0817AC60: + movs r0, #5 + bl PlaySE + adds r0, r5, #0 + bl DestroyTask + ldr r0, _0817AC7C + bl SetMainCallback2 +_0817AC72: + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0817AC7C: .4byte 0x0817AE95 + thumb_func_end Task_ClearSaveDataScreenYesNoChoice + + thumb_func_start Task_ClearSaveData +Task_ClearSaveData: @ 0x0817AC80 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl ClearSaveData + adds r0, r4, #0 + bl DestroyTask + ldr r0, _0817ACA0 + bl SetMainCallback2 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0817ACA0: .4byte 0x0817AE95 + thumb_func_end Task_ClearSaveData + + thumb_func_start MainCB +MainCB: @ 0x0817ACA4 + push {lr} + bl RunTasks + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end MainCB + diff --git a/asm/clock.s b/asm/clock.s new file mode 100644 index 0000000..8d8d0f1 --- /dev/null +++ b/asm/clock.s @@ -0,0 +1,184 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start InitTimeBasedEvents +InitTimeBasedEvents: @ 0x0809E050 + push {lr} + ldr r0, _0809E078 + bl FlagSet + bl RtcCalcLocalTime + ldr r0, _0809E07C + ldr r2, [r0] + adds r2, #0xa0 + ldr r3, _0809E080 + ldr r0, [r3] + ldr r1, [r3, #4] + str r0, [r2] + str r1, [r2, #4] + ldr r0, _0809E084 + ldrh r1, [r3] + bl VarSet + pop {r0} + bx r0 + .align 2, 0 +_0809E078: .4byte 0x00000895 +_0809E07C: .4byte 0x03005AF0 +_0809E080: .4byte 0x03005A50 +_0809E084: .4byte 0x00004040 + thumb_func_end InitTimeBasedEvents + + thumb_func_start DoTimeBasedEvents +DoTimeBasedEvents: @ 0x0809E088 + push {r4, lr} + ldr r0, _0809E0B8 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809E0B2 + bl sub_0813B9F8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809E0B2 + bl RtcCalcLocalTime + ldr r4, _0809E0BC + adds r0, r4, #0 + bl UpdatePerDay + adds r0, r4, #0 + bl UpdatePerMinute +_0809E0B2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809E0B8: .4byte 0x00000895 +_0809E0BC: .4byte 0x03005A50 + thumb_func_end DoTimeBasedEvents + + thumb_func_start UpdatePerDay +UpdatePerDay: @ 0x0809E0C0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r0, _0809E12C + bl GetVarPointer + adds r6, r0, #0 + ldrh r0, [r6] + movs r2, #0 + ldrsh r1, [r5, r2] + cmp r0, r1 + beq _0809E126 + cmp r0, r1 + bgt _0809E126 + ldrh r4, [r5] + subs r4, r4, r0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + bl ClearDailyFlags + adds r0, r4, #0 + bl UpdateDewfordTrendPerDay + adds r0, r4, #0 + bl UpdateTVShowsPerDay + adds r0, r4, #0 + bl UpdateWeatherPerDay + adds r0, r4, #0 + bl UpdatePartyPokerusTime + adds r0, r4, #0 + bl UpdateMirageRnd + adds r0, r4, #0 + bl UpdateBirchState + adds r0, r4, #0 + bl UpdateFrontierManiac + adds r0, r4, #0 + bl UpdateFrontierGambler + adds r0, r4, #0 + bl SetShoalItemFlag + adds r0, r4, #0 + bl SetRandomLotteryNumber + ldrh r0, [r5] + strh r0, [r6] +_0809E126: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0809E12C: .4byte 0x00004040 + thumb_func_end UpdatePerDay + + thumb_func_start UpdatePerMinute +UpdatePerMinute: @ 0x0809E130 + push {r4, r5, r6, lr} + sub sp, #8 + adds r5, r0, #0 + mov r4, sp + ldr r6, _0809E188 + ldr r1, [r6] + adds r1, #0xa0 + mov r0, sp + adds r2, r5, #0 + bl CalcTimeDifference + mov r0, sp + movs r2, #0 + ldrsh r1, [r0, r2] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r1, r1, #5 + movs r2, #2 + ldrsb r2, [r4, r2] + lsls r0, r2, #4 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r1, r1, r0 + movs r0, #3 + ldrsb r0, [r4, r0] + adds r0, r1, r0 + cmp r0, #0 + beq _0809E180 + cmp r0, #0 + blt _0809E180 + bl BerryTreeTimeUpdate + ldr r2, [r6] + adds r2, #0xa0 + ldr r0, [r5] + ldr r1, [r5, #4] + str r0, [r2] + str r1, [r2, #4] +_0809E180: + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0809E188: .4byte 0x03005AF0 + thumb_func_end UpdatePerMinute + + thumb_func_start ReturnFromStartWallClock +ReturnFromStartWallClock: @ 0x0809E18C + push {lr} + bl InitTimeBasedEvents + ldr r0, _0809E19C + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_0809E19C: .4byte 0x08085B35 + thumb_func_end ReturnFromStartWallClock + + thumb_func_start StartWallClock +StartWallClock: @ 0x0809E1A0 + push {lr} + ldr r0, _0809E1B4 + bl SetMainCallback2 + ldr r1, _0809E1B8 + ldr r0, _0809E1BC + str r0, [r1, #8] + pop {r0} + bx r0 + .align 2, 0 +_0809E1B4: .4byte 0x08134A3D +_0809E1B8: .4byte 0x03002360 +_0809E1BC: .4byte 0x0809E18D + thumb_func_end StartWallClock + diff --git a/asm/coins.s b/asm/coins.s new file mode 100644 index 0000000..602e08e --- /dev/null +++ b/asm/coins.s @@ -0,0 +1,214 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start PrintCoinsString +PrintCoinsString: @ 0x08145C20 + push {r4, lr} + sub sp, #0xc + adds r1, r0, #0 + ldr r0, _08145C5C + movs r2, #1 + movs r3, #4 + bl ConvertIntToDecimalStringN + ldr r4, _08145C60 + ldr r1, _08145C64 + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r0, _08145C68 + ldrb r0, [r0] + movs r1, #2 + str r1, [sp] + movs r1, #0 + str r1, [sp, #4] + str r1, [sp, #8] + movs r1, #1 + adds r2, r4, #0 + movs r3, #8 + bl AddTextPrinterParameterized + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08145C5C: .4byte 0x02021C40 +_08145C60: .4byte 0x02021C7C +_08145C64: .4byte 0x085C9443 +_08145C68: .4byte 0x0203A868 + thumb_func_end PrintCoinsString + + thumb_func_start ShowCoinsWindow +ShowCoinsWindow: @ 0x08145C6C + push {r4, r5, lr} + sub sp, #0x18 + adds r5, r0, #0 + adds r4, r1, #0 + adds r3, r2, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #8 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #0xf + str r0, [sp, #8] + movs r0, #0x9b + lsls r0, r0, #1 + str r0, [sp, #0xc] + add r0, sp, #0x10 + movs r1, #0 + adds r2, r4, #0 + bl SetWindowTemplateFields + ldr r4, _08145CD0 + add r0, sp, #0x10 + bl AddWindow + strb r0, [r4] + ldrb r0, [r4] + movs r1, #0 + bl FillWindowPixelBuffer + ldrb r0, [r4] + bl PutWindowTilemap + ldrb r0, [r4] + movs r2, #0x85 + lsls r2, r2, #2 + movs r1, #0 + movs r3, #0xe + bl DrawStdFrameWithCustomTileAndPalette + adds r0, r5, #0 + bl PrintCoinsString + add sp, #0x18 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08145CD0: .4byte 0x0203A868 + thumb_func_end ShowCoinsWindow + + thumb_func_start HideCoinsWindow +HideCoinsWindow: @ 0x08145CD4 + push {r4, lr} + ldr r4, _08145CEC + ldrb r0, [r4] + movs r1, #1 + bl DrawStdWindowFrame + ldrb r0, [r4] + bl RemoveWindow + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08145CEC: .4byte 0x0203A868 + thumb_func_end HideCoinsWindow + + thumb_func_start GetCoins +GetCoins: @ 0x08145CF0 + ldr r0, _08145D0C + ldr r1, [r0] + ldr r0, _08145D10 + adds r1, r1, r0 + ldr r0, _08145D14 + ldr r0, [r0] + adds r0, #0xac + ldr r0, [r0] + ldrh r1, [r1] + eors r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bx lr + .align 2, 0 +_08145D0C: .4byte 0x03005AEC +_08145D10: .4byte 0x00000494 +_08145D14: .4byte 0x03005AF0 + thumb_func_end GetCoins + + thumb_func_start SetCoins +SetCoins: @ 0x08145D18 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _08145D34 + ldr r2, [r1] + ldr r1, _08145D38 + ldr r1, [r1] + adds r1, #0xac + ldr r1, [r1] + eors r0, r1 + ldr r1, _08145D3C + adds r2, r2, r1 + strh r0, [r2] + bx lr + .align 2, 0 +_08145D34: .4byte 0x03005AEC +_08145D38: .4byte 0x03005AF0 +_08145D3C: .4byte 0x00000494 + thumb_func_end SetCoins + + thumb_func_start GiveCoins +GiveCoins: @ 0x08145D40 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + bl GetCoins + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r0, _08145D58 + cmp r1, r0 + bls _08145D5C + movs r0, #0 + b _08145D80 + .align 2, 0 +_08145D58: .4byte 0x0000270E +_08145D5C: + adds r0, r1, r4 + cmp r1, r0 + ble _08145D6C + ldr r0, _08145D68 + b _08145D7A + .align 2, 0 +_08145D68: .4byte 0x0000270F +_08145D6C: + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r0, _08145D88 + cmp r1, r0 + bls _08145D78 + adds r1, r0, #0 +_08145D78: + adds r0, r1, #0 +_08145D7A: + bl SetCoins + movs r0, #1 +_08145D80: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08145D88: .4byte 0x0000270F + thumb_func_end GiveCoins + + thumb_func_start TakeCoins +TakeCoins: @ 0x08145D8C + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + bl GetCoins + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r4 + bhs _08145DA2 + movs r0, #0 + b _08145DAE +_08145DA2: + subs r0, r0, r4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl SetCoins + movs r0, #1 +_08145DAE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end TakeCoins + diff --git a/asm/contest.s b/asm/contest.s new file mode 100644 index 0000000..c8d6332 --- /dev/null +++ b/asm/contest.s @@ -0,0 +1,16451 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start TaskDummy1 +TaskDummy1: @ 0x080D6E94 + bx lr + .align 2, 0 + thumb_func_end TaskDummy1 + + thumb_func_start ResetLinkContestBoolean +ResetLinkContestBoolean: @ 0x080D6E98 + ldr r1, _080D6EA0 + movs r0, #0 + strb r0, [r1] + bx lr + .align 2, 0 +_080D6EA0: .4byte 0x02039BCA + thumb_func_end ResetLinkContestBoolean + + thumb_func_start SetupContestGpuRegs +SetupContestGpuRegs: @ 0x080D6EA4 + push {r4, lr} + movs r0, #0 + movs r1, #0x40 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + ldr r4, _080D6F1C + movs r0, #0x48 + adds r1, r4, #0 + bl SetGpuReg + movs r0, #0x4a + adds r1, r4, #0 + bl SetGpuReg + movs r1, #0xfe + lsls r1, r1, #7 + movs r0, #0 + bl SetGpuRegBits + ldr r0, _080D6F20 + movs r1, #0 + strh r1, [r0] + ldr r0, _080D6F24 + strh r1, [r0] + ldr r0, _080D6F28 + strh r1, [r0] + ldr r0, _080D6F2C + strh r1, [r0] + ldr r0, _080D6F30 + strh r1, [r0] + ldr r0, _080D6F34 + strh r1, [r0] + ldr r0, _080D6F38 + strh r1, [r0] + ldr r0, _080D6F3C + strh r1, [r0] + ldr r0, _080D6F40 + strh r1, [r0] + ldr r0, _080D6F44 + strh r1, [r0] + ldr r0, _080D6F48 + strh r1, [r0] + ldr r0, _080D6F4C + strh r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D6F1C: .4byte 0x00003F3F +_080D6F20: .4byte 0x02022AC8 +_080D6F24: .4byte 0x02022ACA +_080D6F28: .4byte 0x02022ACC +_080D6F2C: .4byte 0x02022ACE +_080D6F30: .4byte 0x02022AD0 +_080D6F34: .4byte 0x02022AD2 +_080D6F38: .4byte 0x02022AD4 +_080D6F3C: .4byte 0x02022AD6 +_080D6F40: .4byte 0x02022AD8 +_080D6F44: .4byte 0x02022ADA +_080D6F48: .4byte 0x02022ADC +_080D6F4C: .4byte 0x02022ADE + thumb_func_end SetupContestGpuRegs + + thumb_func_start LoadContestBgAfterMoveAnim +LoadContestBgAfterMoveAnim: @ 0x080D6F50 + push {r4, r5, lr} + ldr r0, _080D6FAC + movs r1, #0xc0 + lsls r1, r1, #0x13 + bl LZDecompressWram + ldr r0, _080D6FB0 + ldr r1, _080D6FB4 + bl LZDecompressWram + ldr r1, _080D6FB8 + movs r0, #3 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + movs r0, #3 + bl CopyBgTilemapBufferToVram + ldr r0, _080D6FBC + movs r2, #0x80 + lsls r2, r2, #2 + movs r1, #0 + bl LoadCompressedPalette + bl sub_080D7058 + movs r4, #0 + movs r5, #0xa0 +_080D6F8A: + ldr r0, _080D6FC0 + adds r0, r5, r0 + ldr r1, _080D6FC4 + adds r1, r4, r1 + ldrb r1, [r1] + adds r1, #5 + lsls r1, r1, #4 + movs r2, #0x20 + bl LoadPalette + adds r5, #0x20 + adds r4, #1 + cmp r4, #3 + ble _080D6F8A + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D6FAC: .4byte 0x08C17AB8 +_080D6FB0: .4byte 0x08C18650 +_080D6FB4: .4byte 0x06002000 +_080D6FB8: .4byte 0x08C16FB0 +_080D6FBC: .4byte 0x08C16E98 +_080D6FC0: .4byte 0x0201A004 +_080D6FC4: .4byte 0x02039BC6 + thumb_func_end LoadContestBgAfterMoveAnim + + thumb_func_start InitContestInfoBgs +InitContestInfoBgs: @ 0x080D6FC8 + push {r4, lr} + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _080D7008 + movs r0, #0 + movs r2, #4 + bl InitBgsFromTemplates + movs r0, #3 + movs r1, #6 + movs r2, #1 + bl SetBgAttribute + movs r4, #0 +_080D6FE6: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080D700C + ldr r1, [r1] + lsls r2, r4, #2 + adds r1, #0x24 + adds r1, r1, r2 + ldr r1, [r1] + bl SetBgTilemapBuffer + adds r4, #1 + cmp r4, #3 + ble _080D6FE6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D7008: .4byte 0x08560E98 +_080D700C: .4byte 0x02039BD4 + thumb_func_end InitContestInfoBgs + + thumb_func_start InitContestWindows +InitContestWindows: @ 0x080D7010 + push {lr} + ldr r0, _080D7038 + bl InitWindows + bl DeactivateAllTextPrinters + ldr r0, _080D703C + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080D7044 + ldr r2, _080D7040 + ldrb r1, [r2] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + b _080D704E + .align 2, 0 +_080D7038: .4byte 0x08560EA8 +_080D703C: .4byte 0x02039BCA +_080D7040: .4byte 0x030030B4 +_080D7044: + ldr r0, _080D7054 + ldrb r1, [r0] + movs r2, #1 + orrs r1, r2 + strb r1, [r0] +_080D704E: + pop {r0} + bx r0 + .align 2, 0 +_080D7054: .4byte 0x030030B4 + thumb_func_end InitContestWindows + + thumb_func_start sub_080D7058 +sub_080D7058: @ 0x080D7058 + push {r4, r5, lr} + ldr r0, _080D709C + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + movs r0, #0 + movs r1, #0 + movs r2, #2 + bl FillPalette + movs r5, #0xa + movs r4, #0xfa + lsls r4, r4, #0x10 +_080D7074: + lsrs r1, r4, #0x10 + ldr r0, _080D70A0 + movs r2, #2 + bl LoadPalette + movs r0, #0x80 + lsls r0, r0, #9 + adds r4, r4, r0 + adds r5, #1 + cmp r5, #0xd + ble _080D7074 + ldr r0, _080D70A4 + movs r1, #0xf3 + movs r2, #2 + bl FillPalette + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D709C: .4byte 0x08560B94 +_080D70A0: .4byte 0x02037596 +_080D70A4: .4byte 0x00007E3F + thumb_func_end sub_080D7058 + + thumb_func_start InitContestResources +InitContestResources: @ 0x080D70A8 + push {r4, r5, r6, r7, lr} + ldr r4, _080D71A8 + ldr r0, [r4] + ldr r0, [r0] + movs r1, #0 + movs r2, #0x5c + bl memset + movs r5, #0 + movs r2, #0xff +_080D70BC: + ldr r0, [r4] + ldr r1, [r0] + adds r1, #2 + adds r1, r1, r5 + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] + adds r5, #1 + cmp r5, #3 + ble _080D70BC + movs r4, #0 + ldr r6, _080D71A8 + movs r5, #3 +_080D70D6: + ldr r0, [r6] + ldr r0, [r0, #4] + adds r0, r4, r0 + movs r1, #0 + movs r2, #0x1c + bl memset + adds r4, #0x1c + subs r5, #1 + cmp r5, #0 + bge _080D70D6 + ldr r4, _080D71A8 + movs r7, #4 + rsbs r7, r7, #0 + movs r6, #0xff + movs r3, #0 + movs r5, #3 +_080D70F8: + ldr r0, [r4] + ldr r1, [r0, #4] + adds r1, r3, r1 + ldrb r2, [r1, #0xb] + adds r0, r7, #0 + ands r0, r2 + strb r0, [r1, #0xb] + ldr r0, [r4] + ldr r1, [r0, #4] + adds r1, r3, r1 + ldrb r0, [r1, #0x13] + orrs r0, r6 + strb r0, [r1, #0x13] + ldr r0, [r4] + ldr r1, [r0, #4] + adds r1, r3, r1 + ldrb r0, [r1, #0x14] + orrs r0, r6 + strb r0, [r1, #0x14] + adds r3, #0x1c + subs r5, #1 + cmp r5, #0 + bge _080D70F8 + ldr r4, _080D71A8 + ldr r0, [r4] + ldr r0, [r0, #8] + movs r1, #0 + movs r2, #0x14 + bl memset + ldr r0, [r4] + ldr r0, [r0, #0xc] + movs r1, #0 + movs r2, #0x44 + bl memset + ldr r2, [r4] + ldr r1, [r2, #0x10] + movs r0, #0 + str r0, [r1] + ldr r0, [r2, #0x14] + movs r1, #0 + movs r2, #0x10 + bl memset + ldr r0, _080D71AC + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080D7164 + movs r0, #0 + bl SortContestants +_080D7164: + movs r5, #0 + adds r2, r4, #0 + movs r6, #0xff + movs r3, #0 + ldr r4, _080D71B0 +_080D716E: + ldr r0, [r2] + ldr r1, [r0, #4] + adds r1, r3, r1 + ldrb r0, [r1, #0x19] + orrs r0, r6 + strb r0, [r1, #0x19] + ldr r0, [r2] + ldr r1, [r0] + adds r1, #0x14 + adds r1, r1, r5 + adds r0, r5, r4 + ldrb r0, [r0] + strb r0, [r1] + adds r3, #0x1c + adds r5, #1 + cmp r5, #3 + ble _080D716E + bl ApplyNextTurnOrder + ldr r0, _080D71A8 + ldr r0, [r0] + ldr r0, [r0, #0x1c] + movs r1, #0 + movs r2, #0x40 + bl memset + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D71A8: .4byte 0x02039BD4 +_080D71AC: .4byte 0x02039BCA +_080D71B0: .4byte 0x02039BC6 + thumb_func_end InitContestResources + + thumb_func_start AllocContestResources +AllocContestResources: @ 0x080D71B4 + push {r4, r5, lr} + ldr r4, _080D727C + movs r0, #0x40 + bl AllocZeroed + str r0, [r4] + movs r0, #0x5c + bl AllocZeroed + ldr r1, [r4] + str r0, [r1] + movs r0, #0x70 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1, #4] + movs r0, #0x14 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1, #8] + movs r0, #0x44 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1, #0xc] + movs r0, #0x10 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1, #0x10] + movs r0, #0x10 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1, #0x14] + movs r0, #0x14 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1, #0x18] + movs r0, #0x40 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1, #0x1c] + movs r0, #0xc + bl AllocZeroed + ldr r1, [r4] + str r0, [r1, #0x20] + movs r5, #0x80 + lsls r5, r5, #5 + adds r0, r5, #0 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1, #0x24] + adds r0, r5, #0 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1, #0x28] + adds r0, r5, #0 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1, #0x2c] + adds r0, r5, #0 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1, #0x30] + movs r5, #0x80 + lsls r5, r5, #4 + adds r0, r5, #0 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1, #0x34] + adds r0, r5, #0 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1, #0x38] + movs r0, #0x80 + lsls r0, r0, #6 + bl AllocZeroed + ldr r2, [r4] + str r0, [r2, #0x3c] + ldr r1, _080D7280 + str r0, [r1] + ldr r1, _080D7284 + ldr r0, [r2, #0x28] + str r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D727C: .4byte 0x02039BD4 +_080D7280: .4byte 0x02022D00 +_080D7284: .4byte 0x02022D04 + thumb_func_end AllocContestResources + + thumb_func_start FreeContestResources +FreeContestResources: @ 0x080D7288 + push {r4, r5, lr} + ldr r5, _080D7344 + ldr r0, [r5] + ldr r0, [r0] + bl Free + ldr r0, [r5] + movs r4, #0 + str r4, [r0] + ldr r0, [r0, #4] + bl Free + ldr r0, [r5] + str r4, [r0, #4] + ldr r0, [r0, #8] + bl Free + ldr r0, [r5] + str r4, [r0, #8] + ldr r0, [r0, #0xc] + bl Free + ldr r0, [r5] + str r4, [r0, #0xc] + ldr r0, [r0, #0x10] + bl Free + ldr r0, [r5] + str r4, [r0, #0x10] + ldr r0, [r0, #0x14] + bl Free + ldr r0, [r5] + str r4, [r0, #0x14] + ldr r0, [r0, #0x18] + bl Free + ldr r0, [r5] + str r4, [r0, #0x18] + ldr r0, [r0, #0x1c] + bl Free + ldr r0, [r5] + str r4, [r0, #0x1c] + ldr r0, [r0, #0x20] + bl Free + ldr r0, [r5] + str r4, [r0, #0x20] + ldr r0, [r0, #0x24] + bl Free + ldr r0, [r5] + str r4, [r0, #0x24] + ldr r0, [r0, #0x28] + bl Free + ldr r0, [r5] + str r4, [r0, #0x28] + ldr r0, [r0, #0x2c] + bl Free + ldr r0, [r5] + str r4, [r0, #0x2c] + ldr r0, [r0, #0x30] + bl Free + ldr r0, [r5] + str r4, [r0, #0x30] + ldr r0, [r0, #0x34] + bl Free + ldr r0, [r5] + str r4, [r0, #0x34] + ldr r0, [r0, #0x38] + bl Free + ldr r0, [r5] + str r4, [r0, #0x38] + ldr r0, [r0, #0x3c] + bl Free + ldr r0, [r5] + str r4, [r0, #0x3c] + bl Free + str r4, [r5] + ldr r0, _080D7348 + str r4, [r0] + ldr r0, _080D734C + str r4, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D7344: .4byte 0x02039BD4 +_080D7348: .4byte 0x02022D00 +_080D734C: .4byte 0x02022D04 + thumb_func_end FreeContestResources + + thumb_func_start CB2_StartContest +CB2_StartContest: @ 0x080D7350 + push {r4, r5, r6, lr} + ldr r0, _080D736C + movs r1, #0x87 + lsls r1, r1, #3 + adds r6, r0, r1 + ldrb r5, [r6] + cmp r5, #1 + beq _080D7400 + cmp r5, #1 + bgt _080D7370 + cmp r5, #0 + beq _080D737A + b _080D7482 + .align 2, 0 +_080D736C: .4byte 0x03002360 +_080D7370: + cmp r5, #2 + beq _080D7406 + cmp r5, #3 + beq _080D7430 + b _080D7482 +_080D737A: + ldr r0, _080D73EC + strb r5, [r0] + bl AllocContestResources + bl AllocateMonSpritesGfx + ldr r4, _080D73F0 + ldr r0, [r4] + ldr r0, [r0] + bl Free + ldr r0, [r4] + str r5, [r0] + movs r0, #0x80 + lsls r0, r0, #7 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1] + movs r0, #0 + bl SetVBlankCallback + bl InitContestInfoBgs + bl InitContestWindows + bl SetupContestGpuRegs + bl ScanlineEffect_Clear + bl ResetPaletteFade + ldr r2, _080D73F4 + ldrb r0, [r2, #8] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #8] + bl ResetSpriteData + bl ResetTasks + bl FreeAllSpritePalettes + ldr r1, _080D73F8 + movs r0, #4 + strb r0, [r1] + ldr r0, _080D73FC + movs r1, #0xd0 + lsls r1, r1, #9 + adds r0, r0, r1 + strb r5, [r0] + bl ClearBattleMonForms + bl InitContestResources + b _080D7422 + .align 2, 0 +_080D73EC: .4byte 0x02039BD8 +_080D73F0: .4byte 0x02024178 +_080D73F4: .4byte 0x02037C74 +_080D73F8: .4byte 0x030030BC +_080D73FC: .4byte 0x02000000 +_080D7400: + movs r0, #2 + strb r0, [r6] + b _080D7482 +_080D7406: + ldr r4, _080D742C + ldr r0, [r4] + ldr r0, [r0] + adds r0, #0x59 + bl SetupContestGraphics + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D7482 + ldr r0, [r4] + ldr r0, [r0] + adds r0, #0x59 + movs r1, #0 + strb r1, [r0] +_080D7422: + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] + b _080D7482 + .align 2, 0 +_080D742C: .4byte 0x02039BD4 +_080D7430: + bl sub_080DD988 + ldr r0, _080D7488 + movs r1, #0 + strh r1, [r0] + ldr r0, _080D748C + strh r1, [r0] + movs r0, #2 + bl BeginFastPaletteFade + ldr r2, _080D7490 + ldrb r1, [r2, #8] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #8] + ldr r0, _080D7494 + bl SetVBlankCallback + ldr r0, _080D7498 + movs r1, #0xa + bl CreateTask + ldr r1, _080D749C + ldr r1, [r1] + ldr r1, [r1] + strb r0, [r1, #8] + ldr r0, _080D74A0 + bl SetMainCallback2 + ldr r0, _080D74A4 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080D7482 + bl LoadWirelessStatusIndicatorSpriteGfx + movs r0, #8 + movs r1, #8 + bl CreateWirelessStatusIndicatorSprite +_080D7482: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080D7488: .4byte 0x02022ACC +_080D748C: .4byte 0x02022ACE +_080D7490: .4byte 0x02037C74 +_080D7494: .4byte 0x080D7AA9 +_080D7498: .4byte 0x080D74A9 +_080D749C: .4byte 0x02039BD4 +_080D74A0: .4byte 0x080D7A69 +_080D74A4: .4byte 0x02039BCA + thumb_func_end CB2_StartContest + + thumb_func_start sub_080D74A8 +sub_080D74A8: @ 0x080D74A8 + push {lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r0, _080D74D4 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _080D74CE + ldr r0, _080D74D8 + lsls r1, r3, #2 + adds r1, r1, r3 + lsls r1, r1, #3 + adds r1, r1, r0 + strh r2, [r1, #8] + ldr r0, _080D74DC + str r0, [r1] +_080D74CE: + pop {r0} + bx r0 + .align 2, 0 +_080D74D4: .4byte 0x02037C74 +_080D74D8: .4byte 0x03005B60 +_080D74DC: .4byte 0x080D74E1 + thumb_func_end sub_080D74A8 + + thumb_func_start sub_080D74E0 +sub_080D74E0: @ 0x080D74E0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _080D7518 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080D75BC + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080D7566 + ldr r2, _080D751C + lsls r1, r5, #2 + adds r0, r1, r5 + lsls r0, r0, #3 + adds r4, r0, r2 + movs r2, #8 + ldrsh r0, [r4, r2] + adds r6, r1, #0 + cmp r0, #1 + beq _080D7530 + cmp r0, #1 + bgt _080D7520 + cmp r0, #0 + beq _080D7526 + b _080D7566 + .align 2, 0 +_080D7518: .4byte 0x02039BCA +_080D751C: .4byte 0x03005B60 +_080D7520: + cmp r0, #2 + beq _080D7554 + b _080D7566 +_080D7526: + bl ContestPrintLinkStandby + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080D7530: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D75CA + bl sub_0800A8D4 + ldr r0, _080D7550 + adds r1, r6, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _080D75CA + .align 2, 0 +_080D7550: .4byte 0x03005B60 +_080D7554: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080D75CA + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080D7566: + ldr r2, _080D75A8 + ldrb r1, [r2, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _080D75CA + ldrb r1, [r2, #8] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #8] + ldr r0, _080D75AC + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _080D758E + bl ContestPrintLinkStandby +_080D758E: + ldr r0, _080D75B0 + movs r1, #0 + bl CreateTask + ldr r1, _080D75B4 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r4, [r0, #8] + ldr r1, _080D75B8 + str r1, [r0] + b _080D75CA + .align 2, 0 +_080D75A8: .4byte 0x02037C74 +_080D75AC: .4byte 0x02039BCA +_080D75B0: .4byte 0x080D75D9 +_080D75B4: .4byte 0x03005B60 +_080D75B8: .4byte 0x080D6E95 +_080D75BC: + ldr r0, _080D75D0 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080D75D4 + str r0, [r1] +_080D75CA: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080D75D0: .4byte 0x03005B60 +_080D75D4: .4byte 0x080D78F5 + thumb_func_end sub_080D74E0 + + thumb_func_start sub_080D75D8 +sub_080D75D8: @ 0x080D75D8 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080D75EC + ldr r2, _080D75F0 + bl SetTaskFuncWithFollowupFunc + pop {r0} + bx r0 + .align 2, 0 +_080D75EC: .4byte 0x080FD1ED +_080D75F0: .4byte 0x080D75F5 + thumb_func_end sub_080D75D8 + + thumb_func_start sub_080D75F4 +sub_080D75F4: @ 0x080D75F4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080D760C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r0, #1 + strh r0, [r1, #8] + ldr r0, _080D7610 + str r0, [r1] + bx lr + .align 2, 0 +_080D760C: .4byte 0x03005B60 +_080D7610: .4byte 0x080D7615 + thumb_func_end sub_080D75F4 + + thumb_func_start sub_080D7614 +sub_080D7614: @ 0x080D7614 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r5, _080D765C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r5 + ldrh r1, [r0, #8] + subs r1, #1 + strh r1, [r0, #8] + lsls r1, r1, #0x10 + cmp r1, #0 + bgt _080D7656 + bl GetMultiplayerId + adds r0, r4, #0 + bl DestroyTask + ldr r0, _080D7660 + ldr r0, [r0] + ldr r0, [r0] + ldrb r1, [r0, #8] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + ldr r1, _080D7664 + str r1, [r0] + ldr r1, _080D7668 + ldr r0, _080D766C + ldr r0, [r0] + str r0, [r1] +_080D7656: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D765C: .4byte 0x03005B60 +_080D7660: .4byte 0x02039BD4 +_080D7664: .4byte 0x080D78F5 +_080D7668: .4byte 0x03005AE0 +_080D766C: .4byte 0x03005E18 + thumb_func_end sub_080D7614 + + thumb_func_start SetupContestGraphics +SetupContestGraphics: @ 0x080D7670 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x40 + mov sl, r0 + ldrb r0, [r0] + cmp r0, #6 + bls _080D7686 + b _080D78D0 +_080D7686: + lsls r0, r0, #2 + ldr r1, _080D7690 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080D7690: .4byte 0x080D7694 +_080D7694: @ jump table + .4byte _080D76B0 @ case 0 + .4byte _080D76F4 @ case 1 + .4byte _080D7704 @ case 2 + .4byte _080D7754 @ case 3 + .4byte _080D776C @ case 4 + .4byte _080D77A8 @ case 5 + .4byte _080D7830 @ case 6 +_080D76B0: + ldr r2, _080D76E8 + ldrb r0, [r2, #8] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #8] + movs r1, #0xc0 + lsls r1, r1, #0x13 + movs r4, #0x80 + lsls r4, r4, #8 + movs r0, #0 + adds r2, r4, #0 + movs r3, #1 + bl RequestDma3Fill + ldr r1, _080D76EC + movs r0, #0 + adds r2, r4, #0 + movs r3, #1 + bl RequestDma3Fill + ldr r1, _080D76F0 + movs r0, #0 + adds r2, r4, #0 + movs r3, #1 + bl RequestDma3Fill + b _080D78DA + .align 2, 0 +_080D76E8: .4byte 0x02037C74 +_080D76EC: .4byte 0x06008000 +_080D76F0: .4byte 0x06010000 +_080D76F4: + ldr r0, _080D7700 + movs r1, #0xc0 + lsls r1, r1, #0x13 + bl LZDecompressWram + b _080D78DA + .align 2, 0 +_080D7700: .4byte 0x08C17AB8 +_080D7704: + ldr r0, _080D7740 + ldr r4, _080D7744 + adds r1, r4, #0 + bl LZDecompressWram + ldr r3, _080D7748 + movs r5, #0x80 + lsls r5, r5, #6 + ldr r1, _080D774C + ldr r6, _080D7750 + movs r2, #0x80 + lsls r2, r2, #5 + movs r7, #0x84 + lsls r7, r7, #0x18 +_080D7720: + str r4, [r1] + str r3, [r1, #4] + str r6, [r1, #8] + ldr r0, [r1, #8] + adds r4, r4, r2 + adds r3, r3, r2 + subs r5, r5, r2 + cmp r5, r2 + bhi _080D7720 + str r4, [r1] + str r3, [r1, #4] + lsrs r0, r5, #2 + orrs r0, r7 + str r0, [r1, #8] + ldr r0, [r1, #8] + b _080D78DA + .align 2, 0 +_080D7740: .4byte 0x08C18650 +_080D7744: .4byte 0x06002000 +_080D7748: .4byte 0x02018000 +_080D774C: .4byte 0x040000D4 +_080D7750: .4byte 0x84000400 +_080D7754: + ldr r1, _080D7768 + movs r0, #3 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + movs r0, #3 + bl CopyBgTilemapBufferToVram + b _080D78DA + .align 2, 0 +_080D7768: .4byte 0x08C16FB0 +_080D776C: + ldr r1, _080D7794 + movs r0, #2 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + movs r0, #2 + bl CopyBgTilemapBufferToVram + ldr r0, _080D7798 + ldr r0, [r0] + ldr r1, [r0, #0x2c] + ldr r2, _080D779C + ldr r0, _080D77A0 + str r1, [r0] + str r2, [r0, #4] + ldr r1, _080D77A4 + str r1, [r0, #8] + ldr r0, [r0, #8] + b _080D78DA + .align 2, 0 +_080D7794: .4byte 0x08C17178 +_080D7798: .4byte 0x02039BD4 +_080D779C: .4byte 0x0201AA04 +_080D77A0: .4byte 0x040000D4 +_080D77A4: .4byte 0x84000200 +_080D77A8: + ldr r0, _080D7810 + movs r2, #0x80 + lsls r2, r2, #2 + movs r1, #0 + bl LoadCompressedPalette + ldr r5, _080D7814 + ldr r6, _080D7818 + adds r0, r5, #0 + mov r1, sp + adds r2, r6, #0 + bl CpuSet + ldr r0, _080D781C + mov sb, r0 + ldrb r0, [r0] + adds r0, #5 + lsls r0, r0, #5 + ldr r1, _080D7820 + adds r1, r1, r5 + mov r8, r1 + add r0, r8 + add r4, sp, #0x20 + adds r1, r4, #0 + adds r2, r6, #0 + bl CpuSet + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl CpuSet + mov r2, sb + ldrb r1, [r2] + adds r1, #5 + lsls r1, r1, #5 + add r1, r8 + mov r0, sp + adds r2, r6, #0 + bl CpuSet + ldr r1, _080D7824 + ldr r0, _080D7828 + mov r2, r8 + str r2, [r0] + str r1, [r0, #4] + ldr r1, _080D782C + str r1, [r0, #8] + ldr r0, [r0, #8] + bl sub_080D7058 + b _080D78DA + .align 2, 0 +_080D7810: .4byte 0x08C16E98 +_080D7814: .4byte 0x020374B4 +_080D7818: .4byte 0x04000008 +_080D781C: .4byte 0x02039BC5 +_080D7820: .4byte 0xFFFFFF00 +_080D7824: .4byte 0x0201A004 +_080D7828: .4byte 0x040000D4 +_080D782C: .4byte 0x84000080 +_080D7830: + bl DrawContestantWindows + bl FillContestantWindowBgs + bl SwapMoveDescAndContestTilemaps + bl sub_080DA884 + ldr r1, _080D78B8 + ldr r1, [r1] + ldr r1, [r1] + movs r4, #0 + strb r0, [r1, #0x12] + bl sub_080DBA20 + bl sub_080DBC54 + bl CreateApplauseMeterSprite + bl sub_080DBD4C + bl sub_080DBF50 + ldr r1, _080D78BC + strb r4, [r1] + movs r0, #1 + strb r0, [r1, #1] + movs r3, #3 + strb r3, [r1, #2] + movs r2, #2 + strb r2, [r1, #3] + ldr r0, _080D78C0 + str r4, [r0] + ldr r4, _080D78C4 + strb r2, [r4] + ldr r0, _080D78C8 + strb r3, [r0] + bl sub_080DA828 + ldr r2, _080D78CC + ldrb r1, [r4] + adds r1, r1, r2 + strb r0, [r1] + bl sub_080DE184 + movs r0, #3 + bl CopyBgTilemapBufferToVram + movs r0, #2 + bl CopyBgTilemapBufferToVram + movs r0, #1 + bl CopyBgTilemapBufferToVram + movs r0, #3 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + b _080D78DA + .align 2, 0 +_080D78B8: .4byte 0x02039BD4 +_080D78BC: .4byte 0x02023D1A +_080D78C0: .4byte 0x02022C90 +_080D78C4: .4byte 0x02023EAF +_080D78C8: .4byte 0x02023EB0 +_080D78CC: .4byte 0x02023E88 +_080D78D0: + movs r0, #0 + mov r1, sl + strb r0, [r1] + movs r0, #1 + b _080D78E4 +_080D78DA: + mov r2, sl + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0 +_080D78E4: + add sp, #0x40 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end SetupContestGraphics + + thumb_func_start sub_080D78F4 +sub_080D78F4: @ 0x080D78F4 + push {lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r1, _080D7928 + ldrb r2, [r1, #8] + movs r0, #0x7f + ands r0, r2 + strb r0, [r1, #8] + ldrb r1, [r1, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _080D7924 + ldr r0, _080D792C + lsls r1, r3, #2 + adds r1, r1, r3 + lsls r1, r1, #3 + adds r1, r1, r0 + strh r2, [r1, #8] + strh r2, [r1, #0xa] + ldr r0, _080D7930 + str r0, [r1] +_080D7924: + pop {r0} + bx r0 + .align 2, 0 +_080D7928: .4byte 0x02037C74 +_080D792C: .4byte 0x03005B60 +_080D7930: .4byte 0x080D7935 + thumb_func_end sub_080D78F4 + + thumb_func_start sub_080D7934 +sub_080D7934: @ 0x080D7934 + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _080D795C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #8 + ldrsh r0, [r0, r2] + adds r2, r1, #0 + cmp r0, #4 + bhi _080D7A34 + lsls r0, r0, #2 + ldr r1, _080D7960 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080D795C: .4byte 0x03005B60 +_080D7960: .4byte 0x080D7964 +_080D7964: @ jump table + .4byte _080D7978 @ case 0 + .4byte _080D79A2 @ case 1 + .4byte _080D79C0 @ case 2 + .4byte _080D79DC @ case 3 + .4byte _080D7A34 @ case 4 +_080D7978: + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r2 + ldrh r0, [r4, #0xa] + adds r1, r0, #1 + strh r1, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x3c + ble _080D7A58 + movs r0, #0 + strh r0, [r4, #0xa] + movs r0, #0x61 + movs r1, #0 + bl PlaySE12WithPanning + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _080D7A58 +_080D79A2: + ldr r1, _080D79BC + ldrh r0, [r1] + adds r0, #7 + strh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xa0 + ble _080D7A58 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r2 + b _080D7A26 + .align 2, 0 +_080D79BC: .4byte 0x02022ACE +_080D79C0: + bl sub_080DDAB4 + ldr r0, _080D79D8 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _080D7A58 + .align 2, 0 +_080D79D8: .4byte 0x03005B60 +_080D79DC: + movs r0, #8 + bl GetGpuReg + mov r1, sp + strh r0, [r1] + movs r0, #0xc + bl GetGpuReg + mov r4, sp + adds r4, #2 + strh r0, [r4] + mov r3, sp + ldrb r2, [r3] + movs r1, #4 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3] + ldrb r0, [r4] + ands r1, r0 + strb r1, [r4] + mov r0, sp + ldrh r1, [r0] + movs r0, #8 + bl SetGpuReg + ldrh r1, [r4] + movs r0, #0xc + bl SetGpuReg + bl StartMoveApplauseMeterOnscreen + ldr r1, _080D7A30 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 +_080D7A26: + ldrh r1, [r0, #8] + adds r1, #1 + strh r1, [r0, #8] + b _080D7A58 + .align 2, 0 +_080D7A30: .4byte 0x03005B60 +_080D7A34: + ldr r0, _080D7A60 + ldr r0, [r0] + ldr r0, [r0] + ldrb r1, [r0, #6] + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080D7A58 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r2 + strh r1, [r0, #8] + strh r1, [r0, #0xa] + ldr r1, _080D7A64 + str r1, [r0] +_080D7A58: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D7A60: .4byte 0x02039BD4 +_080D7A64: .4byte 0x080D7B69 + thumb_func_end sub_080D7934 + + thumb_func_start CB2_ContestMain +CB2_ContestMain: @ 0x080D7A68 + push {r4, r5, lr} + bl AnimateSprites + bl RunTasks + bl BuildOamBuffer + bl UpdatePaletteFade + movs r4, #0 +_080D7A7C: + ldr r5, _080D7AA4 + ldrb r0, [r5] + asrs r0, r4 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _080D7A92 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl CopyBgTilemapBufferToVram +_080D7A92: + adds r4, #1 + cmp r4, #3 + ble _080D7A7C + movs r0, #0 + strb r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D7AA4: .4byte 0x02039BD8 + thumb_func_end CB2_ContestMain + + thumb_func_start vblank_cb_battle +vblank_cb_battle: @ 0x080D7AA8 + push {lr} + ldr r0, _080D7B38 + ldrh r1, [r0] + movs r0, #0x10 + bl SetGpuReg + ldr r0, _080D7B3C + ldrh r1, [r0] + movs r0, #0x12 + bl SetGpuReg + ldr r0, _080D7B40 + ldrh r1, [r0] + movs r0, #0x14 + bl SetGpuReg + ldr r0, _080D7B44 + ldrh r1, [r0] + movs r0, #0x16 + bl SetGpuReg + ldr r0, _080D7B48 + ldrh r1, [r0] + movs r0, #0x18 + bl SetGpuReg + ldr r0, _080D7B4C + ldrh r1, [r0] + movs r0, #0x1a + bl SetGpuReg + ldr r0, _080D7B50 + ldrh r1, [r0] + movs r0, #0x1c + bl SetGpuReg + ldr r0, _080D7B54 + ldrh r1, [r0] + movs r0, #0x1e + bl SetGpuReg + ldr r0, _080D7B58 + ldrh r1, [r0] + movs r0, #0x40 + bl SetGpuReg + ldr r0, _080D7B5C + ldrh r1, [r0] + movs r0, #0x44 + bl SetGpuReg + ldr r0, _080D7B60 + ldrh r1, [r0] + movs r0, #0x42 + bl SetGpuReg + ldr r0, _080D7B64 + ldrh r1, [r0] + movs r0, #0x46 + bl SetGpuReg + bl TransferPlttBuffer + bl LoadOam + bl ProcessSpriteCopyRequests + bl ScanlineEffect_InitHBlankDmaTransfer + pop {r0} + bx r0 + .align 2, 0 +_080D7B38: .4byte 0x02022AC8 +_080D7B3C: .4byte 0x02022ACA +_080D7B40: .4byte 0x02022ACC +_080D7B44: .4byte 0x02022ACE +_080D7B48: .4byte 0x02022AD0 +_080D7B4C: .4byte 0x02022AD2 +_080D7B50: .4byte 0x02022AD4 +_080D7B54: .4byte 0x02022AD6 +_080D7B58: .4byte 0x02022AD8 +_080D7B5C: .4byte 0x02022ADA +_080D7B60: .4byte 0x02022ADC +_080D7B64: .4byte 0x02022ADE + thumb_func_end vblank_cb_battle + + thumb_func_start sub_080D7B68 +sub_080D7B68: @ 0x080D7B68 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _080D7BCC + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r0, #8 + ldrsh r1, [r4, r0] + cmp r1, #0 + bne _080D7C38 + ldr r0, _080D7BD0 + strh r1, [r0] + ldr r0, _080D7BD4 + strh r1, [r0] + bl ContestDebugDoPrint + ldr r1, _080D7BD8 + ldr r2, _080D7BDC + ldr r0, _080D7BE0 + str r1, [r0] + str r2, [r0, #4] + ldr r1, _080D7BE4 + str r1, [r0, #8] + ldr r0, [r0, #8] + ldr r0, _080D7BE8 + ldr r1, _080D7BEC + ldr r1, [r1] + ldr r1, [r1] + ldrb r1, [r1, #1] + adds r1, #1 + movs r2, #0 + movs r3, #1 + bl ConvertIntToDecimalStringN + adds r4, r0, #0 + ldr r0, _080D7BF0 + ldrb r0, [r0] + bl Contest_IsMonsTurnDisabled + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080D7BF8 + ldr r1, _080D7BF4 + adds r0, r4, #0 + bl StringCopy + b _080D7C00 + .align 2, 0 +_080D7BCC: .4byte 0x03005B60 +_080D7BD0: .4byte 0x02022ACA +_080D7BD4: .4byte 0x02022AD2 +_080D7BD8: .4byte 0x020373B4 +_080D7BDC: .4byte 0x0201A204 +_080D7BE0: .4byte 0x040000D4 +_080D7BE4: .4byte 0x84000100 +_080D7BE8: .4byte 0x02022AE0 +_080D7BEC: .4byte 0x02039BD4 +_080D7BF0: .4byte 0x02039BC5 +_080D7BF4: .4byte 0x0824B317 +_080D7BF8: + ldr r1, _080D7C28 + adds r0, r4, #0 + bl StringCopy +_080D7C00: + bl sub_080DB000 + ldr r4, _080D7C2C + ldr r1, _080D7C30 + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + movs r1, #1 + bl Contest_StartTextPrinter + ldr r1, _080D7C34 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #8] + adds r1, #1 + strh r1, [r0, #8] + b _080D7C46 + .align 2, 0 +_080D7C28: .4byte 0x0824B32D +_080D7C2C: .4byte 0x02021C7C +_080D7C30: .4byte 0x02022AE0 +_080D7C34: .4byte 0x03005B60 +_080D7C38: + bl Contest_RunTextPrinters + cmp r0, #0 + bne _080D7C46 + strh r0, [r4, #8] + ldr r0, _080D7C4C + str r0, [r4] +_080D7C46: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D7C4C: .4byte 0x080D7C51 + thumb_func_end sub_080D7B68 + + thumb_func_start sub_080D7C50 +sub_080D7C50: @ 0x080D7C50 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r5, r4, #0 + ldr r0, _080D7C90 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080D7C68 + cmp r1, #2 + bne _080D7CAE +_080D7C68: + movs r0, #5 + bl PlaySE + ldr r0, _080D7C94 + ldrb r0, [r0] + bl Contest_IsMonsTurnDisabled + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080D7CA0 + movs r0, #1 + bl sub_080DBBF4 + ldr r0, _080D7C98 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080D7C9C + b _080D7CAC + .align 2, 0 +_080D7C90: .4byte 0x03002360 +_080D7C94: .4byte 0x02039BC5 +_080D7C98: .4byte 0x03005B60 +_080D7C9C: .4byte 0x080D7CBD +_080D7CA0: + ldr r0, _080D7CB4 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080D7CB8 +_080D7CAC: + str r0, [r1] +_080D7CAE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D7CB4: .4byte 0x03005B60 +_080D7CB8: .4byte 0x080D8091 + thumb_func_end sub_080D7C50 + + thumb_func_start sub_080D7CBC +sub_080D7CBC: @ 0x080D7CBC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + ldr r0, _080D7D60 + movs r1, #0xa0 + strh r1, [r0] + ldr r0, _080D7D64 + strh r1, [r0] + movs r7, #0 + ldr r0, _080D7D68 + mov sb, r0 + ldr r1, _080D7D6C + mov r8, r1 +_080D7CE2: + lsls r1, r7, #1 + mov r0, sb + ldrb r2, [r0] + lsls r0, r2, #6 + adds r1, r1, r0 + ldr r0, _080D7D70 + adds r1, r1, r0 + ldrh r5, [r1] + mov r6, sp + mov r1, r8 + ldr r0, [r1] + ldr r1, [r0, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0, #8] + cmp r0, #0 + beq _080D7D78 + adds r0, r2, #0 + bl sub_080DD94C + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D7D78 + mov r2, r8 + ldr r0, [r2] + mov r2, sb + ldrb r1, [r2] + ldr r2, [r0, #4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0, #8] + adds r1, r5, #0 + bl AreMovesContestCombo + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D7D78 + mov r1, r8 + ldr r0, [r1] + mov r2, sb + ldrb r1, [r2] + ldr r2, [r0, #4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080D7D78 + mov r0, sp + ldr r1, _080D7D74 + bl StringCopy + adds r6, r0, #0 + lsls r4, r5, #3 + b _080D7DAA + .align 2, 0 +_080D7D60: .4byte 0x02022ACA +_080D7D64: .4byte 0x02022AD2 +_080D7D68: .4byte 0x02039BC5 +_080D7D6C: .4byte 0x02039BD4 +_080D7D70: .4byte 0x02039ABE +_080D7D74: .4byte 0x085CC48C +_080D7D78: + lsls r4, r5, #3 + cmp r5, #0 + beq _080D7DAA + mov r1, r8 + ldr r0, [r1] + mov r2, sb + ldrb r1, [r2] + ldr r2, [r0, #4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0, #8] + cmp r0, r5 + bne _080D7DAA + ldr r0, _080D7E20 + adds r0, r4, r0 + ldrb r0, [r0] + cmp r0, #3 + beq _080D7DAA + mov r0, sp + ldr r1, _080D7E24 + bl StringCopy + adds r6, r0, #0 +_080D7DAA: + ldr r1, _080D7E28 + adds r1, r4, r1 + adds r0, r6, #0 + bl StringCopy + adds r4, r7, #0 + adds r4, #9 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl FillWindowPixelBuffer + adds r0, r4, #0 + mov r1, sp + bl Contest_PrintTextToBg0WindowStd + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #3 + bls _080D7CE2 + ldr r4, _080D7E2C + ldr r0, [r4] + ldr r0, [r0] + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + bl sub_080D8038 + ldr r2, _080D7E30 + ldr r0, [r4] + ldr r0, [r0] + ldrb r1, [r0] + lsls r1, r1, #1 + ldr r0, _080D7E34 + ldrb r0, [r0] + lsls r0, r0, #6 + adds r1, r1, r0 + adds r2, #0x1e + adds r1, r1, r2 + ldrh r0, [r1] + bl sub_080DAAD4 + ldr r1, _080D7E38 + mov r2, sl + lsls r0, r2, #2 + add r0, sl + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080D7E3C + str r1, [r0] + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D7E20: .4byte 0x08565FCC +_080D7E24: .4byte 0x085CC493 +_080D7E28: .4byte 0x082EACC4 +_080D7E2C: .4byte 0x02039BD4 +_080D7E30: .4byte 0x02039AA0 +_080D7E34: .4byte 0x02039BC5 +_080D7E38: .4byte 0x03005B60 +_080D7E3C: .4byte 0x080D7E41 + thumb_func_end sub_080D7CBC + + thumb_func_start sub_080D7E40 +sub_080D7E40: @ 0x080D7E40 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r6, #0 + ldr r3, _080D7E8C + ldr r1, _080D7E90 + ldr r0, _080D7E94 + ldrb r0, [r0] + lsls r0, r0, #6 + adds r1, #0x1e + adds r1, r0, r1 + movs r2, #3 +_080D7E58: + ldrh r0, [r1] + cmp r0, #0 + beq _080D7E64 + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_080D7E64: + adds r1, #2 + subs r2, #1 + cmp r2, #0 + bge _080D7E58 + ldrh r0, [r3, #0x2e] + movs r5, #1 + ands r5, r0 + cmp r5, #0 + beq _080D7EA0 + movs r0, #5 + bl PlaySE + ldr r0, _080D7E98 + lsls r1, r7, #2 + adds r1, r1, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080D7E9C + str r0, [r1] + b _080D8026 + .align 2, 0 +_080D7E8C: .4byte 0x03002360 +_080D7E90: .4byte 0x02039AA0 +_080D7E94: .4byte 0x02039BC5 +_080D7E98: .4byte 0x03005B60 +_080D7E9C: .4byte 0x080D8091 +_080D7EA0: + ldrh r0, [r3, #0x30] + cmp r0, #0x20 + bne _080D7EA8 + b _080D8026 +_080D7EA8: + cmp r0, #0x20 + bgt _080D7EB2 + cmp r0, #2 + beq _080D7EBE + b _080D8026 +_080D7EB2: + cmp r0, #0x40 + beq _080D7F5C + cmp r0, #0x80 + bne _080D7EBC + b _080D7FC8 +_080D7EBC: + b _080D8026 +_080D7EBE: + movs r0, #5 + bl PlaySE + movs r0, #0 + bl sub_080DBBF4 + ldr r0, _080D7EF8 + ldr r1, _080D7EFC + ldr r1, [r1] + ldr r1, [r1] + ldrb r1, [r1, #1] + adds r1, #1 + movs r2, #0 + movs r3, #1 + bl ConvertIntToDecimalStringN + adds r4, r0, #0 + ldr r0, _080D7F00 + ldrb r0, [r0] + bl Contest_IsMonsTurnDisabled + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080D7F08 + ldr r1, _080D7F04 + adds r0, r4, #0 + bl StringCopy + b _080D7F10 + .align 2, 0 +_080D7EF8: .4byte 0x02022AE0 +_080D7EFC: .4byte 0x02039BD4 +_080D7F00: .4byte 0x02039BC5 +_080D7F04: .4byte 0x0824B317 +_080D7F08: + ldr r1, _080D7F40 + adds r0, r4, #0 + bl StringCopy +_080D7F10: + bl sub_080DB000 + ldr r4, _080D7F44 + ldr r1, _080D7F48 + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + movs r1, #0 + bl Contest_StartTextPrinter + ldr r0, _080D7F4C + movs r1, #0 + strh r1, [r0] + ldr r0, _080D7F50 + strh r1, [r0] + ldr r1, _080D7F54 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080D7F58 + str r1, [r0] + b _080D8026 + .align 2, 0 +_080D7F40: .4byte 0x0824B32D +_080D7F44: .4byte 0x02021C7C +_080D7F48: .4byte 0x02022AE0 +_080D7F4C: .4byte 0x02022ACA +_080D7F50: .4byte 0x02022AD2 +_080D7F54: .4byte 0x03005B60 +_080D7F58: .4byte 0x080D7C51 +_080D7F5C: + ldr r4, _080D7F7C + ldr r0, [r4] + ldr r0, [r0] + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + bl sub_080D8064 + ldr r0, [r4] + ldr r1, [r0] + ldrb r0, [r1] + cmp r0, #0 + bne _080D7F80 + subs r0, r6, #1 + b _080D7F82 + .align 2, 0 +_080D7F7C: .4byte 0x02039BD4 +_080D7F80: + subs r0, #1 +_080D7F82: + strb r0, [r1] + ldr r4, _080D7FBC + ldr r0, [r4] + ldr r0, [r0] + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + bl sub_080D8038 + ldr r2, _080D7FC0 + ldr r0, [r4] + ldr r0, [r0] + ldrb r1, [r0] + lsls r1, r1, #1 + ldr r0, _080D7FC4 + ldrb r0, [r0] + lsls r0, r0, #6 + adds r1, r1, r0 + adds r2, #0x1e + adds r1, r1, r2 + ldrh r0, [r1] + bl sub_080DAAD4 + cmp r6, #1 + bls _080D8026 + movs r0, #5 + bl PlaySE + b _080D8026 + .align 2, 0 +_080D7FBC: .4byte 0x02039BD4 +_080D7FC0: .4byte 0x02039AA0 +_080D7FC4: .4byte 0x02039BC5 +_080D7FC8: + ldr r4, _080D7FE8 + ldr r0, [r4] + ldr r0, [r0] + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + bl sub_080D8064 + ldr r0, [r4] + ldr r1, [r0] + ldrb r2, [r1] + subs r0, r6, #1 + cmp r2, r0 + bne _080D7FEC + strb r5, [r1] + b _080D7FF0 + .align 2, 0 +_080D7FE8: .4byte 0x02039BD4 +_080D7FEC: + adds r0, r2, #1 + strb r0, [r1] +_080D7FF0: + ldr r4, _080D802C + ldr r0, [r4] + ldr r0, [r0] + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + bl sub_080D8038 + ldr r2, _080D8030 + ldr r0, [r4] + ldr r0, [r0] + ldrb r1, [r0] + lsls r1, r1, #1 + ldr r0, _080D8034 + ldrb r0, [r0] + lsls r0, r0, #6 + adds r1, r1, r0 + adds r2, #0x1e + adds r1, r1, r2 + ldrh r0, [r1] + bl sub_080DAAD4 + cmp r6, #1 + bls _080D8026 + movs r0, #5 + bl PlaySE +_080D8026: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D802C: .4byte 0x02039BD4 +_080D8030: .4byte 0x02039AA0 +_080D8034: .4byte 0x02039BC5 + thumb_func_end sub_080D7E40 + + thumb_func_start sub_080D8038 +sub_080D8038: @ 0x080D8038 + push {lr} + sub sp, #0x10 + adds r3, r0, #0 + lsls r3, r3, #0x19 + movs r0, #0xf8 + lsls r0, r0, #0x15 + adds r3, r3, r0 + lsrs r3, r3, #0x18 + movs r1, #1 + str r1, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + str r1, [sp, #0xc] + movs r0, #2 + movs r2, #1 + bl ContestBG_FillBoxWithIncrementingTile + add sp, #0x10 + pop {r0} + bx r0 + thumb_func_end sub_080D8038 + + thumb_func_start sub_080D8064 +sub_080D8064: @ 0x080D8064 + push {lr} + sub sp, #0xc + adds r3, r0, #0 + lsls r3, r3, #0x19 + movs r0, #0xf8 + lsls r0, r0, #0x15 + adds r3, r3, r0 + lsrs r3, r3, #0x18 + movs r0, #1 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #2 + movs r1, #0xc + movs r2, #1 + bl ContestBG_FillBoxWithTile + add sp, #0xc + pop {r0} + bx r0 + thumb_func_end sub_080D8064 + + thumb_func_start sub_080D8090 +sub_080D8090: @ 0x080D8090 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _080D80EC + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080D8108 + ldr r4, _080D80F0 + ldrb r0, [r4] + bl GetChosenMove + ldr r1, _080D80F4 + ldr r1, [r1] + ldrb r2, [r4] + ldr r3, [r1, #4] + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r3 + strh r0, [r1, #6] + ldr r4, _080D80F8 + adds r0, r4, #0 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080D80FC + adds r1, r4, #0 + bl SetTaskFuncWithFollowupFunc + ldr r1, _080D8100 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080D8104 + str r1, [r0] + bl ContestPrintLinkStandby + movs r0, #0 + bl sub_080DBBF4 + b _080D811A + .align 2, 0 +_080D80EC: .4byte 0x02039BCA +_080D80F0: .4byte 0x02039BC5 +_080D80F4: .4byte 0x02039BD4 +_080D80F8: .4byte 0x080FD24D +_080D80FC: .4byte 0x080D8129 +_080D8100: .4byte 0x03005B60 +_080D8104: .4byte 0x080D6E95 +_080D8108: + bl GetAllChosenMoves + ldr r0, _080D8120 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080D8124 + str r0, [r1] +_080D811A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D8120: .4byte 0x03005B60 +_080D8124: .4byte 0x080D8159 + thumb_func_end sub_080D8090 + + thumb_func_start sub_080D8128 +sub_080D8128: @ 0x080D8128 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + ldr r2, _080D814C + ldr r0, _080D8150 + ldr r0, [r0] + ldr r0, [r0] + ldrb r1, [r0, #8] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldr r1, _080D8154 + str r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_080D814C: .4byte 0x03005B60 +_080D8150: .4byte 0x02039BD4 +_080D8154: .4byte 0x080D8159 + thumb_func_end sub_080D8128 + + thumb_func_start sub_080D8158 +sub_080D8158: @ 0x080D8158 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + bl sub_080DB000 + ldr r0, _080D81E0 + movs r1, #0 + strh r1, [r0] + ldr r0, _080D81E4 + strh r1, [r0] + movs r0, #0 + bl sub_080DBBF4 + movs r6, #0 + movs r5, #0x90 + lsls r5, r5, #0x14 +_080D8178: + lsrs r4, r5, #0x18 + adds r0, r4, #0 + movs r1, #0 + bl FillWindowPixelBuffer + adds r0, r4, #0 + bl PutWindowTilemap + adds r0, r4, #0 + movs r1, #2 + bl CopyWindowToVram + movs r0, #0x80 + lsls r0, r0, #0x11 + adds r5, r5, r0 + adds r6, #1 + cmp r6, #3 + ble _080D8178 + movs r0, #0 + bl Contest_SetBgCopyFlags + ldr r1, _080D81E8 + ldr r0, _080D81EC + movs r2, #0x80 + lsls r2, r2, #3 + ldr r4, _080D81F0 + str r1, [r4] + str r0, [r4, #4] + lsrs r1, r2, #2 + movs r3, #0x84 + lsls r3, r3, #0x18 + orrs r1, r3 + str r1, [r4, #8] + ldr r1, [r4, #8] + ldr r1, _080D81F4 + adds r0, r0, r1 + movs r1, #0 + bl LoadPalette + ldr r1, _080D81F8 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #8] + strh r1, [r0, #0xa] + ldr r1, _080D81FC + str r1, [r0] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D81E0: .4byte 0x02022ACA +_080D81E4: .4byte 0x02022AD2 +_080D81E8: .4byte 0x020377B4 +_080D81EC: .4byte 0x0201A604 +_080D81F0: .4byte 0x040000D4 +_080D81F4: .4byte 0xFFFFFC00 +_080D81F8: .4byte 0x03005B60 +_080D81FC: .4byte 0x080D8201 + thumb_func_end sub_080D8158 + + thumb_func_start sub_080D8200 +sub_080D8200: @ 0x080D8200 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080D8244 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + ble _080D823E + movs r0, #0 + strh r0, [r4, #8] + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + bne _080D823E + bl TryMoveApplauseMeterOffscreen + movs r0, #1 + bl sub_080DDE00 + ldr r0, _080D8248 + str r0, [r4] +_080D823E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D8244: .4byte 0x03005B60 +_080D8248: .4byte 0x080D824D + thumb_func_end sub_080D8200 + + thumb_func_start sub_080D824C +sub_080D824C: @ 0x080D824C + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _080D8278 + ldr r0, [r0] + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0x90 + lsls r0, r0, #2 + ands r0, r1 + cmp r0, #0 + bne _080D8272 + ldr r0, _080D827C + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080D8280 + str r0, [r1] +_080D8272: + pop {r0} + bx r0 + .align 2, 0 +_080D8278: .4byte 0x02039BD4 +_080D827C: .4byte 0x03005B60 +_080D8280: .4byte 0x080D8285 + thumb_func_end sub_080D824C + + thumb_func_start sub_080D8284 +sub_080D8284: @ 0x080D8284 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _080D831C + lsls r3, r6, #2 + adds r1, r3, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x13 + ble _080D8314 + ldr r2, _080D8320 + ldr r0, [r2] + ldr r1, [r0] + movs r0, #0 + strb r0, [r1, #0x10] + ldr r0, [r2] + ldr r1, [r0] + ldr r0, _080D8324 + ldr r0, [r0] + str r0, [r1, #0x18] + ldr r0, _080D8328 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + adds r7, r3, #0 + cmp r0, #0 + beq _080D8304 + bl sub_080DA094 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D8304 + movs r4, #0 + ldr r1, _080D832C + ldrb r0, [r1] + cmp r0, #3 + bgt _080D8304 + adds r5, r1, #0 +_080D82DA: + ldrb r0, [r5] + adds r0, r0, r4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetChosenMove + ldr r1, _080D8320 + ldr r1, [r1] + ldrb r2, [r5] + adds r2, r2, r4 + ldr r3, [r1, #4] + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r3 + strh r0, [r1, #6] + adds r4, #1 + ldrb r0, [r5] + adds r0, r4, r0 + cmp r0, #3 + ble _080D82DA +_080D8304: + ldr r1, _080D831C + adds r0, r7, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #8] + ldr r1, _080D8330 + str r1, [r0] +_080D8314: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D831C: .4byte 0x03005B60 +_080D8320: .4byte 0x02039BD4 +_080D8324: .4byte 0x03005AE0 +_080D8328: .4byte 0x02039BCA +_080D832C: .4byte 0x02039BD0 +_080D8330: .4byte 0x080D8335 + thumb_func_end sub_080D8284 + + thumb_func_start sub_080D8334 +sub_080D8334: @ 0x080D8334 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r2, _080D8374 + ldr r0, [r2] + ldr r0, [r0] + ldrb r6, [r0, #0x11] + ldr r1, _080D8378 + mov r3, r8 + lsls r0, r3, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r4, #8 + ldrsh r0, [r0, r4] + mov sb, r2 + adds r4, r1, #0 + cmp r0, #0x3b + bls _080D836A + bl _080D98F0 +_080D836A: + lsls r0, r0, #2 + ldr r1, _080D837C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080D8374: .4byte 0x02039BD4 +_080D8378: .4byte 0x03005B60 +_080D837C: .4byte 0x080D8380 +_080D8380: @ jump table + .4byte _080D8470 @ case 0 + .4byte _080D852C @ case 1 + .4byte _080D8552 @ case 2 + .4byte _080D85C0 @ case 3 + .4byte _080D8678 @ case 4 + .4byte _080D86C4 @ case 5 + .4byte _080D877C @ case 6 + .4byte _080D87B0 @ case 7 + .4byte _080D8808 @ case 8 + .4byte _080D8884 @ case 9 + .4byte _080D97B0 @ case 10 + .4byte _080D97DC @ case 11 + .4byte _080D8A30 @ case 12 + .4byte _080D8A64 @ case 13 + .4byte _080D8F6C @ case 14 + .4byte _080D905C @ case 15 + .4byte _080D90CC @ case 16 + .4byte _080D90FC @ case 17 + .4byte _080D91E4 @ case 18 + .4byte _080D9196 @ case 19 + .4byte _080D9814 @ case 20 + .4byte _080D9890 @ case 21 + .4byte _080D98B2 @ case 22 + .4byte _080D88AC @ case 23 + .4byte _080D8978 @ case 24 + .4byte _080D8B80 @ case 25 + .4byte _080D8B96 @ case 26 + .4byte _080D8C74 @ case 27 + .4byte _080D8C98 @ case 28 + .4byte _080D8D00 @ case 29 + .4byte _080D8DE4 @ case 30 + .4byte _080D9828 @ case 31 + .4byte _080D9870 @ case 32 + .4byte _080D96B0 @ case 33 + .4byte _080D9738 @ case 34 + .4byte _080D8A92 @ case 35 + .4byte _080D8AC8 @ case 36 + .4byte _080D8AEE @ case 37 + .4byte _080D8B2C @ case 38 + .4byte _080D8D54 @ case 39 + .4byte _080D8DBC @ case 40 + .4byte _080D9224 @ case 41 + .4byte _080D98F0 @ case 42 + .4byte _080D95A4 @ case 43 + .4byte _080D98F0 @ case 44 + .4byte _080D9028 @ case 45 + .4byte _080D9174 @ case 46 + .4byte _080D8A12 @ case 47 + .4byte _080D899C @ case 48 + .4byte _080D89EC @ case 49 + .4byte _080D8B54 @ case 50 + .4byte _080D8E88 @ case 51 + .4byte _080D8F14 @ case 52 + .4byte _080D93A2 @ case 53 + .4byte _080D9460 @ case 54 + .4byte _080D9758 @ case 55 + .4byte _080D9774 @ case 56 + .4byte _080D95CC @ case 57 + .4byte _080D9654 @ case 58 + .4byte _080D9694 @ case 59 +_080D8470: + bl ContestDebugDoPrint + movs r7, #0 + ldr r0, _080D84FC + ldr r0, [r0] + ldr r1, [r0] + ldr r0, [r0, #8] + ldrb r1, [r1, #0x10] + mov r5, r8 + lsls r5, r5, #2 + mov sl, r5 + ldrb r2, [r0] + cmp r1, r2 + beq _080D8498 + adds r2, r0, #0 +_080D848E: + adds r7, #1 + adds r0, r2, r7 + ldrb r0, [r0] + cmp r1, r0 + bne _080D848E +_080D8498: + ldr r4, _080D84FC + ldr r0, [r4] + ldr r0, [r0] + strb r7, [r0, #0x11] + ldr r0, [r4] + ldr r2, [r0] + ldrb r6, [r2, #0x11] + ldr r0, _080D8500 + ldrb r1, [r0] + movs r5, #1 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _080D8510 + ldrb r0, [r2, #7] + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #7] + bl sub_080DA094 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D84D0 + ldr r0, [r4] + ldr r0, [r0] + ldrb r0, [r0, #0x11] + bl sub_080DC7E4 +_080D84D0: + ldr r4, _080D8504 + adds r0, r4, #0 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080D8508 + adds r1, r4, #0 + bl SetTaskFuncWithFollowupFunc + bl ContestPrintLinkStandby + ldr r1, _080D850C + mov r0, sl + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r5, [r0, #8] + bl _080D98F0 + .align 2, 0 +_080D84FC: .4byte 0x02039BD4 +_080D8500: .4byte 0x02039BCA +_080D8504: .4byte 0x080FD4DD +_080D8508: .4byte 0x080D9901 +_080D850C: .4byte 0x03005B60 +_080D8510: + adds r0, r6, #0 + bl sub_080DC7E4 + ldr r0, _080D8528 + mov r1, sl + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #2 + strh r0, [r1, #8] + bl _080D98F0 + .align 2, 0 +_080D8528: .4byte 0x03005B60 +_080D852C: + mov r3, sb + ldr r0, [r3] + ldr r0, [r0] + ldrb r1, [r0, #7] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080D8540 + bl _080D98F0 +_080D8540: + mov r5, r8 + lsls r0, r5, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r4 + movs r1, #2 + strh r1, [r0, #8] + bl _080D98F0 +_080D8552: + adds r0, r6, #0 + bl sub_080DE788 + bl ContestDebugPrintBitStrings + ldr r0, _080D8598 + ldr r0, [r0] + ldr r1, [r0, #4] + lsls r0, r6, #3 + subs r0, r0, r6 + lsls r0, r0, #2 + adds r2, r0, r1 + ldrb r1, [r2, #0xc] + movs r0, #6 + ands r0, r1 + cmp r0, #0 + bne _080D8582 + ldrb r1, [r2, #0xb] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + beq _080D85A0 +_080D8582: + ldr r0, _080D859C + mov r2, r8 + lsls r1, r2, #2 + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0x1f + strh r0, [r1, #8] + bl _080D98F0 + .align 2, 0 +_080D8598: .4byte 0x02039BD4 +_080D859C: .4byte 0x03005B60 +_080D85A0: + bl sub_080DB000 + ldr r0, _080D85BC + mov r3, r8 + lsls r1, r3, #2 + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + strh r6, [r1, #0x1c] + movs r0, #3 + strh r0, [r1, #8] + bl _080D98F0 + .align 2, 0 +_080D85BC: .4byte 0x03005B60 +_080D85C0: + mov r4, r8 + lsls r4, r4, #2 + mov sl, r4 + ldr r1, _080D865C + movs r2, #0 + adds r0, r1, #3 +_080D85CC: + strb r2, [r0] + subs r0, #1 + cmp r0, r1 + bge _080D85CC + movs r7, #4 + mov r5, sb + ldr r0, [r5] + ldr r0, [r0, #0x18] + movs r1, #0 + movs r2, #0x14 + bl memset + ldr r0, [r5] + ldr r0, [r0] + ldrb r0, [r0, #0x11] + bl sub_080DE140 + ldr r4, _080D8660 + ldr r0, [r5] + ldr r0, [r0] + ldrb r3, [r0, #0x11] + lsls r2, r3, #6 + adds r0, r2, r4 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x3c + adds r1, r2, r1 + ldr r1, [r1] + adds r4, #0x38 + adds r2, r2, r4 + ldr r2, [r2] + bl sub_080DA8D8 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r2, _080D8664 + lsls r0, r5, #4 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r3, r0, r2 + movs r1, #0x78 + strh r1, [r3, #0x24] + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, _080D8668 + str r1, [r0] + ldr r0, _080D866C + mov r4, sl + add r4, r8 + lsls r4, r4, #3 + adds r4, r4, r0 + strh r5, [r4, #0xc] + ldr r1, _080D8670 + ldr r0, _080D8674 + ldrb r0, [r0] + adds r0, r0, r1 + strb r5, [r0] + mov r1, sb + ldr r0, [r1] + ldr r0, [r0] + ldrb r0, [r0, #0x11] + bl sub_080DC150 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl sub_080DC34C + strh r7, [r4, #8] + bl _080D98F0 + .align 2, 0 +_080D865C: .4byte 0x02024188 +_080D8660: .4byte 0x02039AA0 +_080D8664: .4byte 0x020205AC +_080D8668: .4byte 0x080D9925 +_080D866C: .4byte 0x03005B60 +_080D8670: .4byte 0x02023E88 +_080D8674: .4byte 0x02023EAF +_080D8678: + mov r2, r8 + lsls r0, r2, #2 + add r0, r8 + lsls r0, r0, #3 + adds r2, r0, r4 + ldrb r5, [r2, #0xc] + ldr r1, _080D86BC + lsls r0, r5, #4 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, [r0] + ldr r0, _080D86C0 + cmp r1, r0 + beq _080D869C + bl _080D98F0 +_080D869C: + mov r3, sb + ldr r0, [r3] + ldr r1, [r0, #0x14] + lsls r0, r6, #2 + adds r0, r0, r1 + ldrb r1, [r0, #2] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080D86B4 + bl _080D98F0 +_080D86B4: + movs r0, #5 + strh r0, [r2, #8] + bl _080D98F0 + .align 2, 0 +_080D86BC: .4byte 0x020205AC +_080D86C0: .4byte 0x08007141 +_080D86C4: + mov r5, sb + ldr r0, [r5] + ldr r1, [r0, #4] + lsls r0, r6, #3 + subs r0, r0, r6 + lsls r5, r0, #2 + adds r1, r5, r1 + ldrb r1, [r1, #0xc] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080D86EE + mov r1, r8 + lsls r0, r1, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r4 + movs r1, #0x21 + strh r1, [r0, #8] + bl _080D98F0 +_080D86EE: + bl sub_080DB000 + ldr r0, _080D8720 + lsls r1, r6, #6 + ldr r2, _080D8724 + adds r1, r1, r2 + bl StringCopy + mov r2, sb + ldr r0, [r2] + ldr r0, [r0, #4] + adds r3, r5, r0 + ldrh r1, [r3, #6] + movs r0, #0xb1 + lsls r0, r0, #1 + cmp r1, r0 + bhi _080D8730 + ldr r0, _080D8728 + lsls r1, r1, #3 + ldr r2, _080D872C + adds r1, r1, r2 + bl StringCopy + b _080D8740 + .align 2, 0 +_080D8720: .4byte 0x02021C40 +_080D8724: .4byte 0x02039AA2 +_080D8728: .4byte 0x02021C54 +_080D872C: .4byte 0x082EACC4 +_080D8730: + ldr r0, _080D8768 + ldr r2, _080D876C + ldrb r1, [r3, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl StringCopy +_080D8740: + ldr r4, _080D8770 + ldr r1, _080D8774 + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + movs r1, #1 + bl Contest_StartTextPrinter + ldr r1, _080D8778 + mov r3, r8 + lsls r0, r3, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #6 + strh r1, [r0, #8] + bl _080D98F0 + .align 2, 0 +_080D8768: .4byte 0x02021C54 +_080D876C: .4byte 0x08560E80 +_080D8770: .4byte 0x02021C7C +_080D8774: .4byte 0x0824B346 +_080D8778: .4byte 0x03005B60 +_080D877C: + bl Contest_RunTextPrinters + adds r1, r0, #0 + cmp r1, #0 + beq _080D878A + bl _080D98F0 +_080D878A: + ldr r0, _080D87A8 + ldr r0, [r0] + ldr r0, [r0] + adds r0, #0x5a + strb r1, [r0] + ldr r1, _080D87AC + mov r4, r8 + lsls r0, r4, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #7 + strh r1, [r0, #8] + bl _080D98F0 + .align 2, 0 +_080D87A8: .4byte 0x02039BD4 +_080D87AC: .4byte 0x03005B60 +_080D87B0: + mov r5, sb + ldr r1, [r5] + ldr r0, [r1] + ldrb r2, [r0, #0x11] + ldr r1, [r1, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0, #6] + bl SanitizeMove + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r0, [r5] + ldr r0, [r0] + ldrb r0, [r0, #0x11] + bl sub_080DDFC8 + ldr r0, [r5] + ldr r0, [r0] + ldrb r0, [r0, #0x11] + bl sub_080DE140 + adds r0, r4, #0 + bl SelectContestMoveBankTarget + adds r0, r4, #0 + bl DoMoveAnim + ldr r1, _080D8804 + mov r2, r8 + lsls r0, r2, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #8 + strh r1, [r0, #8] + bl _080D98F0 + .align 2, 0 +_080D8804: .4byte 0x03005B60 +_080D8808: + ldr r0, _080D8848 + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _080D884C + ldrb r4, [r0] + cmp r4, #0 + beq _080D881C + bl _080D98F0 +_080D881C: + adds r0, r6, #0 + bl sub_080DE114 + ldr r0, _080D8850 + ldr r1, [r0] + ldr r0, [r1] + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0 + beq _080D8858 + ldr r0, _080D8854 + mov r3, r8 + lsls r1, r3, #2 + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + strh r4, [r1, #0x1c] + movs r0, #9 + strh r0, [r1, #8] + bl _080D98F0 + .align 2, 0 +_080D8848: .4byte 0x02038098 +_080D884C: .4byte 0x0203809D +_080D8850: .4byte 0x02039BD4 +_080D8854: .4byte 0x03005B60 +_080D8858: + ldr r1, [r1, #4] + lsls r0, r6, #3 + subs r0, r0, r6 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _080D8872 + adds r0, r6, #0 + bl sub_080DBDD8 +_080D8872: + bl sub_080DD890 + ldr r0, _080D8880 + mov r4, r8 + lsls r1, r4, #2 + b _080D898A + .align 2, 0 +_080D8880: .4byte 0x03005B60 +_080D8884: + mov r5, r8 + lsls r0, r5, #2 + add r0, r8 + lsls r0, r0, #3 + adds r2, r0, r4 + ldrh r0, [r2, #0x1c] + adds r1, r0, #1 + strh r1, [r2, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1e + bgt _080D88A0 + bl _080D98F0 +_080D88A0: + movs r0, #0 + strh r0, [r2, #0x1c] + movs r0, #7 + strh r0, [r2, #8] + bl _080D98F0 +_080D88AC: + mov r0, r8 + lsls r2, r0, #2 + adds r0, r2, r0 + lsls r0, r0, #3 + adds r7, r0, r4 + movs r0, #0 + strh r0, [r7, #0xa] + mov r1, sb + ldr r0, [r1] + ldr r0, [r0, #4] + mov ip, r0 + lsls r1, r6, #3 + subs r0, r1, r6 + lsls r5, r0, #2 + mov r0, ip + adds r3, r5, r0 + ldrb r0, [r3, #0x13] + mov sl, r2 + str r1, [sp, #4] + cmp r0, #0xff + beq _080D88F2 + ldrb r1, [r3, #0x13] + adds r0, r6, #0 + bl sub_080DCBC0 + mov r1, sb + ldr r0, [r1] + ldr r0, [r0, #4] + adds r0, r5, r0 + movs r1, #0xff + strb r1, [r0, #0x13] + movs r0, #0x18 + strh r0, [r7, #8] + bl _080D98F0 +_080D88F2: + ldrb r0, [r3, #0x14] + cmp r0, #0xff + beq _080D8970 + movs r7, #0 + cmp r7, r6 + beq _080D8906 + mov r2, ip + ldrb r0, [r2, #0x13] + cmp r0, #0xff + bne _080D8924 +_080D8906: + adds r7, #1 + cmp r7, #3 + bgt _080D8924 + cmp r7, r6 + beq _080D8906 + mov r3, sb + ldr r0, [r3] + ldr r1, [r0, #4] + lsls r0, r7, #3 + subs r0, r0, r7 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #0x13] + cmp r0, #0xff + beq _080D8906 +_080D8924: + cmp r7, #4 + bne _080D8960 + mov r4, sb + ldr r0, [r4] + ldr r0, [r0, #4] + ldr r5, [sp, #4] + subs r4, r5, r6 + lsls r4, r4, #2 + adds r0, r4, r0 + ldrb r1, [r0, #0x14] + adds r0, r6, #0 + bl sub_080DCBC0 + mov r1, sb + ldr r0, [r1] + ldr r0, [r0, #4] + adds r4, r4, r0 + movs r0, #0xff + strb r0, [r4, #0x14] + ldr r1, _080D895C + mov r0, sl + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0x18 + strh r1, [r0, #8] + bl _080D98F0 + .align 2, 0 +_080D895C: .4byte 0x03005B60 +_080D8960: + mov r0, sl + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r4 + movs r1, #0x30 + strh r1, [r0, #8] + bl _080D98F0 +_080D8970: + movs r0, #0x30 + strh r0, [r7, #8] + bl _080D98F0 +_080D8978: + bl Contest_RunTextPrinters + cmp r0, #0 + beq _080D8984 + bl _080D98F0 +_080D8984: + ldr r0, _080D8998 + mov r2, r8 + lsls r1, r2, #2 +_080D898A: + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0x17 + strh r0, [r1, #8] + bl _080D98F0 + .align 2, 0 +_080D8998: .4byte 0x03005B60 +_080D899C: + mov r3, sb + ldr r0, [r3] + ldr r1, [r0, #4] + lsls r0, r6, #3 + subs r0, r0, r6 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #0x11] + movs r3, #3 + ands r3, r0 + cmp r3, #1 + bne _080D89BC + movs r0, #5 + bl sub_080DCE84 + b _080D89D2 +_080D89BC: + cmp r3, #2 + bne _080D89C8 + movs r0, #6 + bl sub_080DCE84 + b _080D89D2 +_080D89C8: + cmp r3, #3 + bne _080D8A00 + movs r0, #7 + bl sub_080DCE84 +_080D89D2: + ldr r0, _080D89E8 + mov r2, r8 + lsls r1, r2, #2 + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0x31 + strh r0, [r1, #8] + bl _080D98F0 + .align 2, 0 +_080D89E8: .4byte 0x03005B60 +_080D89EC: + mov r3, sb + ldr r0, [r3] + ldr r0, [r0] + ldrb r1, [r0, #6] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080D8A00 + bl _080D98F0 +_080D8A00: + mov r5, r8 + lsls r0, r5, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r4 + movs r1, #0x2f + strh r1, [r0, #8] + bl _080D98F0 +_080D8A12: + movs r0, #1 + bl sub_080DD76C + ldr r0, _080D8A2C + mov r2, r8 + lsls r1, r2, #2 + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0xc + strh r0, [r1, #8] + bl _080D98F0 + .align 2, 0 +_080D8A2C: .4byte 0x03005B60 +_080D8A30: + mov r3, sb + ldr r0, [r3] + ldr r1, [r0, #4] + lsls r0, r6, #3 + subs r0, r0, r6 + lsls r0, r0, #2 + adds r0, r0, r1 + movs r4, #2 + ldrsh r1, [r0, r4] + movs r0, #0 + adds r2, r6, #0 + bl sub_080DB78C + ldr r1, _080D8A60 + mov r5, r8 + lsls r0, r5, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0xd + strh r1, [r0, #8] + bl _080D98F0 + .align 2, 0 +_080D8A60: .4byte 0x03005B60 +_080D8A64: + mov r0, sb + ldr r1, [r0] + ldr r0, [r1] + ldrb r0, [r0, #0x11] + ldr r1, [r1, #0x14] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #2] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080D8A80 + bl _080D98F0 +_080D8A80: + mov r1, r8 + lsls r0, r1, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r4 + movs r1, #0x23 + strh r1, [r0, #8] + bl _080D98F0 +_080D8A92: + mov r2, sb + ldr r0, [r2] + ldr r1, [r0, #4] + lsls r0, r6, #3 + subs r0, r0, r6 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #0x10] + movs r0, #0x30 + ands r0, r1 + cmp r0, #0x10 + bne _080D8AB0 + movs r0, #8 + bl sub_080DCE84 +_080D8AB0: + ldr r0, _080D8AC4 + mov r3, r8 + lsls r1, r3, #2 + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0x24 + strh r0, [r1, #8] + bl _080D98F0 + .align 2, 0 +_080D8AC4: .4byte 0x03005B60 +_080D8AC8: + mov r5, sb + ldr r0, [r5] + ldr r0, [r0] + ldrb r1, [r0, #6] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080D8ADC + bl _080D98F0 +_080D8ADC: + mov r1, r8 + lsls r0, r1, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r4 + movs r1, #0x25 + strh r1, [r0, #8] + bl _080D98F0 +_080D8AEE: + adds r0, r6, #0 + movs r1, #1 + bl sub_080DAD1C + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D8B18 + ldr r1, _080D8B14 + mov r2, r8 + lsls r0, r2, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #0x1c] + movs r1, #0x26 + strh r1, [r0, #8] + bl _080D98F0 + .align 2, 0 +_080D8B14: .4byte 0x03005B60 +_080D8B18: + ldr r0, _080D8B28 + mov r3, r8 + lsls r1, r3, #2 + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + b _080D8B4C + .align 2, 0 +_080D8B28: .4byte 0x03005B60 +_080D8B2C: + mov r5, r8 + lsls r0, r5, #2 + add r0, r8 + lsls r0, r0, #3 + adds r1, r0, r4 + ldrh r0, [r1, #0x1c] + adds r0, #1 + strh r0, [r1, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x14 + bgt _080D8B48 + bl _080D98F0 +_080D8B48: + movs r0, #0 + strh r0, [r1, #0x1c] +_080D8B4C: + movs r0, #0x32 + strh r0, [r1, #8] + bl _080D98F0 +_080D8B54: + adds r0, r6, #0 + bl sub_080DAEFC + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D8B66 + movs r0, #0x63 + bl PlaySE +_080D8B66: + ldr r0, _080D8B7C + mov r2, r8 + lsls r1, r2, #2 + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0x19 + strh r0, [r1, #8] + bl _080D98F0 + .align 2, 0 +_080D8B7C: .4byte 0x03005B60 +_080D8B80: + mov r3, r8 + lsls r0, r3, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r4 + movs r1, #0 + strh r1, [r0, #0xa] + movs r1, #0x1a + strh r1, [r0, #8] + bl _080D98F0 +_080D8B96: + movs r3, #0 + movs r5, #0 + str r5, [sp] + mov r0, r8 + lsls r1, r0, #2 + adds r0, r1, r0 + lsls r0, r0, #3 + adds r0, r0, r4 + movs r2, #0xa + ldrsh r7, [r0, r2] + mov sl, r1 + cmp r7, #3 + bgt _080D8C10 + ldr r5, _080D8BD4 + ldr r2, _080D8BD8 +_080D8BB4: + movs r3, #0 + str r3, [sp] + adds r0, r3, #0 + cmp r0, r6 + beq _080D8BDC + ldrb r0, [r5] + cmp r0, r7 + bne _080D8BDC + ldr r0, [r2] + ldr r0, [r0, #4] + ldrb r0, [r0, #0x13] + cmp r0, #0xff + beq _080D8BDC + movs r1, #1 + str r1, [sp] + b _080D8C04 + .align 2, 0 +_080D8BD4: .4byte 0x02039BC6 +_080D8BD8: .4byte 0x02039BD4 +_080D8BDC: + adds r3, #1 + cmp r3, #3 + bgt _080D8C04 + cmp r3, r6 + beq _080D8BDC + adds r0, r3, r5 + ldrb r0, [r0] + cmp r0, r7 + bne _080D8BDC + ldr r0, [r2] + ldr r1, [r0, #4] + lsls r0, r3, #3 + subs r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #0x13] + cmp r0, #0xff + beq _080D8BDC + movs r0, #1 + str r0, [sp] +_080D8C04: + ldr r1, [sp] + cmp r1, #0 + bne _080D8C1A + adds r7, #1 + cmp r7, #3 + ble _080D8BB4 +_080D8C10: + ldr r2, [sp] + lsls r0, r2, #0x18 + asrs r2, r0, #0x18 + cmp r2, #0 + beq _080D8C5C +_080D8C1A: + mov r5, sl + add r5, r8 + lsls r5, r5, #3 + adds r5, r5, r4 + ldr r0, _080D8C58 + adds r0, r3, r0 + ldrb r0, [r0] + strh r0, [r5, #0xa] + lsls r0, r3, #0x18 + lsrs r0, r0, #0x18 + mov r4, sb + ldr r1, [r4] + ldr r1, [r1, #4] + lsls r4, r3, #3 + subs r4, r4, r3 + lsls r4, r4, #2 + adds r1, r4, r1 + ldrb r1, [r1, #0x13] + bl sub_080DCBC0 + mov r1, sb + ldr r0, [r1] + ldr r0, [r0, #4] + adds r4, r4, r0 + movs r0, #0xff + strb r0, [r4, #0x13] + movs r0, #0x1b + strh r0, [r5, #8] + bl _080D98F0 + .align 2, 0 +_080D8C58: .4byte 0x02039BC6 +_080D8C5C: + mov r0, sl + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r4 + strh r2, [r0, #0xa] + strh r2, [r0, #0x1c] + movs r1, #0x33 + strh r1, [r0, #8] + bl sub_080DAFE8 + bl _080D98F0 +_080D8C74: + bl Contest_RunTextPrinters + cmp r0, #0 + beq _080D8C80 + bl _080D98F0 +_080D8C80: + ldr r0, _080D8C94 + mov r2, r8 + lsls r1, r2, #2 + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0x1c + strh r0, [r1, #8] + bl _080D98F0 + .align 2, 0 +_080D8C94: .4byte 0x03005B60 +_080D8C98: + movs r7, #0 + mov r3, r8 + lsls r0, r3, #2 + adds r1, r0, r3 + lsls r1, r1, #3 + adds r1, r1, r4 + movs r4, #0xa + ldrsh r2, [r1, r4] + ldr r1, _080D8CF8 + mov sl, r0 + adds r5, r1, #0 + ldrb r0, [r5] + cmp r2, r0 + beq _080D8CC2 + adds r1, r2, #0 + adds r2, r5, #0 +_080D8CB8: + adds r7, #1 + adds r0, r7, r2 + ldrb r0, [r0] + cmp r1, r0 + bne _080D8CB8 +_080D8CC2: + mov r1, sb + ldr r0, [r1] + ldr r1, [r0, #4] + lsls r0, r7, #3 + subs r0, r0, r7 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #0xe] + ldrh r0, [r0, #2] + adds r0, r0, r1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + rsbs r1, r1, #0 + lsls r2, r7, #0x18 + lsrs r2, r2, #0x18 + bl sub_080DB78C + ldr r1, _080D8CFC + mov r0, sl + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0x1d + strh r1, [r0, #8] + bl _080D98F0 + .align 2, 0 +_080D8CF8: .4byte 0x02039BC6 +_080D8CFC: .4byte 0x03005B60 +_080D8D00: + movs r7, #0 + mov r2, r8 + lsls r0, r2, #2 + adds r1, r0, r2 + lsls r1, r1, #3 + adds r1, r1, r4 + movs r5, #0xa + ldrsh r3, [r1, r5] + ldr r1, _080D8D50 + mov sl, r0 + adds r5, r1, #0 + ldrb r0, [r5] + cmp r3, r0 + beq _080D8D26 +_080D8D1C: + adds r7, #1 + adds r0, r7, r1 + ldrb r0, [r0] + cmp r3, r0 + bne _080D8D1C +_080D8D26: + mov r1, sb + ldr r0, [r1] + ldr r1, [r0, #0x14] + lsls r0, r7, #2 + adds r0, r0, r1 + ldrb r1, [r0, #2] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080D8D3E + bl _080D98F0 +_080D8D3E: + mov r0, sl + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r4 + movs r1, #0x27 + strh r1, [r0, #8] + bl _080D98F0 + .align 2, 0 +_080D8D50: .4byte 0x02039BC6 +_080D8D54: + movs r7, #0 + mov r2, r8 + lsls r0, r2, #2 + adds r1, r0, r2 + lsls r1, r1, #3 + adds r1, r1, r4 + movs r3, #0xa + ldrsh r2, [r1, r3] + ldr r1, _080D8DA4 + mov sl, r0 + adds r5, r1, #0 + ldrb r4, [r5] + cmp r2, r4 + beq _080D8D7E + adds r1, r2, #0 + adds r2, r5, #0 +_080D8D74: + adds r7, #1 + adds r0, r7, r2 + ldrb r0, [r0] + cmp r1, r0 + bne _080D8D74 +_080D8D7E: + lsls r0, r7, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + bl sub_080DAD1C + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D8DAC + ldr r1, _080D8DA8 + mov r0, sl + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #0x1c] + movs r1, #0x28 + strh r1, [r0, #8] + bl _080D98F0 + .align 2, 0 +_080D8DA4: .4byte 0x02039BC6 +_080D8DA8: .4byte 0x03005B60 +_080D8DAC: + ldr r0, _080D8DB8 + mov r1, sl + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + b _080D8DDC + .align 2, 0 +_080D8DB8: .4byte 0x03005B60 +_080D8DBC: + mov r5, r8 + lsls r0, r5, #2 + add r0, r8 + lsls r0, r0, #3 + adds r1, r0, r4 + ldrh r0, [r1, #0x1c] + adds r0, #1 + strh r0, [r1, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x14 + bgt _080D8DD8 + bl _080D98F0 +_080D8DD8: + movs r0, #0 + strh r0, [r1, #0x1c] +_080D8DDC: + movs r0, #0x1e + strh r0, [r1, #8] + bl _080D98F0 +_080D8DE4: + movs r7, #0 + ldr r2, _080D8E30 + ldrb r3, [r2] + mov r0, r8 + lsls r1, r0, #2 + adds r0, r1, r0 + lsls r0, r0, #3 + adds r4, r0, r4 + movs r5, #0xa + ldrsh r0, [r4, r5] + mov sl, r1 + adds r5, r2, #0 + cmp r3, r0 + beq _080D8E16 + adds r3, r5, #0 + adds r2, r4, #0 +_080D8E04: + adds r7, #1 + cmp r7, #3 + bgt _080D8E16 + adds r0, r7, r3 + ldrb r1, [r0] + movs r4, #0xa + ldrsh r0, [r2, r4] + cmp r1, r0 + bne _080D8E04 +_080D8E16: + lsls r4, r7, #0x18 + lsrs r0, r4, #0x18 + bl sub_080DAEFC + lsls r0, r0, #0x18 + adds r6, r4, #0 + cmp r0, #0 + beq _080D8E34 + movs r0, #0x63 + bl PlaySE + b _080D8E3A + .align 2, 0 +_080D8E30: .4byte 0x02039BC6 +_080D8E34: + movs r0, #0x64 + bl PlaySE +_080D8E3A: + ldr r5, _080D8E80 + ldr r0, [r5] + ldr r1, [r0, #4] + lsls r0, r7, #3 + subs r0, r0, r7 + lsls r4, r0, #2 + adds r1, r4, r1 + ldrb r1, [r1, #0x15] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080D8E68 + lsrs r0, r6, #0x18 + bl sub_080DBDD8 + ldr r0, [r5] + ldr r1, [r0, #4] + adds r1, r4, r1 + ldrb r2, [r1, #0x15] + movs r0, #0x21 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #0x15] +_080D8E68: + ldr r0, _080D8E84 + mov r1, sl + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0xa] + adds r0, #1 + strh r0, [r1, #0xa] + movs r0, #0x1a + strh r0, [r1, #8] + bl _080D98F0 + .align 2, 0 +_080D8E80: .4byte 0x02039BD4 +_080D8E84: .4byte 0x03005B60 +_080D8E88: + mov r5, r8 + lsls r2, r5, #2 + adds r0, r2, r5 + lsls r0, r0, #3 + adds r4, r0, r4 + ldrh r0, [r4, #0x1c] + adds r1, r0, #1 + strh r1, [r4, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov sl, r2 + cmp r0, #9 + bgt _080D8EA6 + bl _080D98F0 +_080D8EA6: + movs r0, #0 + strh r0, [r4, #0x1c] + mov r1, sb + ldr r0, [r1] + ldr r1, [r0, #4] + lsls r0, r6, #3 + subs r0, r0, r6 + lsls r0, r0, #2 + adds r2, r0, r1 + ldrb r1, [r2, #0xc] + movs r0, #6 + ands r0, r1 + cmp r0, #0 + bne _080D8ECC + ldrb r1, [r2, #0x11] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080D8EEE +_080D8ECC: + bl sub_080DB000 + ldr r0, _080D8F00 + lsls r1, r6, #6 + ldr r2, _080D8F04 + adds r1, r1, r2 + bl StringCopy + ldr r4, _080D8F08 + ldr r1, _080D8F0C + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + movs r1, #1 + bl Contest_StartTextPrinter +_080D8EEE: + ldr r0, _080D8F10 + mov r1, sl + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0x34 + strh r0, [r1, #8] + bl _080D98F0 + .align 2, 0 +_080D8F00: .4byte 0x02021C40 +_080D8F04: .4byte 0x02039AA2 +_080D8F08: .4byte 0x02021C7C +_080D8F0C: .4byte 0x0824C04A +_080D8F10: .4byte 0x03005B60 +_080D8F14: + bl Contest_RunTextPrinters + cmp r0, #0 + beq _080D8F20 + bl _080D98F0 +_080D8F20: + ldr r0, _080D8F4C + ldr r0, [r0] + ldr r1, [r0, #4] + lsls r0, r6, #3 + subs r0, r0, r6 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #0x15] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _080D8F54 + ldr r0, _080D8F50 + mov r2, r8 + lsls r1, r2, #2 + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0x11 + strh r0, [r1, #8] + bl _080D98F0 + .align 2, 0 +_080D8F4C: .4byte 0x02039BD4 +_080D8F50: .4byte 0x03005B60 +_080D8F54: + ldr r0, _080D8F68 + mov r3, r8 + lsls r1, r3, #2 + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0xe + strh r0, [r1, #8] + bl _080D98F0 + .align 2, 0 +_080D8F68: .4byte 0x03005B60 +_080D8F6C: + mov r4, sb + ldr r0, [r4] + ldr r1, [r0, #4] + lsls r0, r6, #3 + subs r0, r0, r6 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #0x16] + lsls r4, r0, #0x18 + lsrs r5, r4, #0x18 + cmp r5, #0 + beq _080D8FD4 + bl sub_080DB000 + asrs r0, r4, #0x18 + cmp r0, #1 + bne _080D8F98 + ldr r0, _080D8F94 + b _080D8F9E + .align 2, 0 +_080D8F94: .4byte 0x0824BCF2 +_080D8F98: + cmp r0, #2 + bne _080D8FAC + ldr r0, _080D8FA8 +_080D8F9E: + movs r1, #1 + bl Contest_StartTextPrinter + b _080D8FB4 + .align 2, 0 +_080D8FA8: .4byte 0x0824BD18 +_080D8FAC: + ldr r0, _080D8FCC + movs r1, #1 + bl Contest_StartTextPrinter +_080D8FB4: + movs r0, #3 + bl sub_080DCE84 + ldr r1, _080D8FD0 + mov r5, r8 + lsls r0, r5, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #0x1c] + b _080D900A + .align 2, 0 +_080D8FCC: .4byte 0x0824BD3E +_080D8FD0: .4byte 0x03005B60 +_080D8FD4: + bl sub_080DB000 + ldr r0, _080D9014 + lsls r1, r6, #6 + ldr r2, _080D9018 + adds r1, r1, r2 + bl StringCopy + ldr r4, _080D901C + ldr r1, _080D9020 + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + movs r1, #1 + bl Contest_StartTextPrinter + movs r0, #2 + bl sub_080DCE84 + ldr r1, _080D9024 + mov r2, r8 + lsls r0, r2, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r5, [r0, #0x1c] +_080D900A: + movs r1, #0x2d + strh r1, [r0, #8] + bl _080D98F0 + .align 2, 0 +_080D9014: .4byte 0x02021C40 +_080D9018: .4byte 0x02039AA2 +_080D901C: .4byte 0x02021C7C +_080D9020: .4byte 0x0824BCCF +_080D9024: .4byte 0x03005B60 +_080D9028: + mov r3, sb + ldr r0, [r3] + ldr r2, [r0] + ldrb r1, [r2, #6] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080D903C + bl _080D98F0 +_080D903C: + ldrb r0, [r2, #0x11] + bl sub_080DC118 + ldr r1, _080D9058 + mov r4, r8 + lsls r0, r4, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0xf + strh r1, [r0, #8] + bl _080D98F0 + .align 2, 0 +_080D9058: .4byte 0x03005B60 +_080D905C: + bl Contest_RunTextPrinters + cmp r0, #0 + beq _080D9068 + bl _080D98F0 +_080D9068: + ldr r1, _080D90C4 + mov r5, r8 + lsls r0, r5, #2 + add r0, r8 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrh r0, [r4, #0x1c] + adds r0, #1 + strh r0, [r4, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x32 + bgt _080D9086 + bl _080D98F0 +_080D9086: + ldr r7, _080D90C8 + ldr r0, [r7] + ldr r1, [r0, #4] + lsls r0, r6, #3 + subs r0, r0, r6 + lsls r5, r0, #2 + adds r2, r5, r1 + ldrb r1, [r2, #0x15] + movs r0, #0x10 + mov r8, r0 + ands r0, r1 + cmp r0, #0 + bne _080D90BA + movs r1, #2 + ldrsh r0, [r2, r1] + ldrb r1, [r2, #0x17] + adds r2, r6, #0 + bl sub_080DB78C + ldr r0, [r7] + ldr r1, [r0, #4] + adds r1, r5, r1 + ldrh r0, [r1, #2] + ldrb r2, [r1, #0x17] + adds r0, r0, r2 + strh r0, [r1, #2] +_080D90BA: + mov r3, r8 + strh r3, [r4, #8] + bl _080D98F0 + .align 2, 0 +_080D90C4: .4byte 0x03005B60 +_080D90C8: .4byte 0x02039BD4 +_080D90CC: + mov r5, sb + ldr r0, [r5] + ldr r1, [r0, #0x14] + lsls r0, r6, #2 + adds r0, r0, r1 + ldrb r1, [r0, #2] + movs r0, #4 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _080D90E8 + bl _080D98F0 +_080D90E8: + mov r2, r8 + lsls r0, r2, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r4 + strh r1, [r0, #0x1c] + movs r1, #0x11 + strh r1, [r0, #8] + bl _080D98F0 +_080D90FC: + mov r3, sb + ldr r0, [r3] + ldr r1, [r0, #4] + lsls r0, r6, #3 + subs r0, r0, r6 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #0x15] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080D9164 + bl sub_080DB000 + ldr r0, _080D9150 + lsls r1, r6, #6 + ldr r2, _080D9154 + adds r1, r1, r2 + bl StringCopy + ldr r4, _080D9158 + ldr r1, _080D915C + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + movs r1, #1 + bl Contest_StartTextPrinter + ldr r0, _080D9160 + mov r5, r8 + lsls r4, r5, #2 + add r4, r8 + lsls r4, r4, #3 + adds r4, r4, r0 + movs r0, #0 + strh r0, [r4, #0x1c] + bl sub_080DCE84 + movs r0, #0x2e + strh r0, [r4, #8] + b _080D98F0 + .align 2, 0 +_080D9150: .4byte 0x02021C40 +_080D9154: .4byte 0x02039AA2 +_080D9158: .4byte 0x02021C7C +_080D915C: .4byte 0x0824BFBE +_080D9160: .4byte 0x03005B60 +_080D9164: + mov r1, r8 + lsls r0, r1, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r4 + movs r1, #0x29 + strh r1, [r0, #8] + b _080D98F0 +_080D9174: + mov r2, sb + ldr r0, [r2] + ldr r0, [r0] + ldrb r1, [r0, #6] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080D9186 + b _080D98F0 +_080D9186: + mov r3, r8 + lsls r0, r3, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r4 + movs r1, #0x13 + strh r1, [r0, #8] + b _080D98F0 +_080D9196: + bl Contest_RunTextPrinters + cmp r0, #0 + beq _080D91A0 + b _080D98F0 +_080D91A0: + ldr r5, _080D91DC + ldr r0, [r5] + ldr r1, [r0, #4] + lsls r4, r6, #3 + subs r4, r4, r6 + lsls r4, r4, #2 + adds r1, r4, r1 + movs r2, #2 + ldrsh r0, [r1, r2] + ldrb r1, [r1, #0x18] + rsbs r1, r1, #0 + adds r2, r6, #0 + bl sub_080DB78C + ldr r0, [r5] + ldr r0, [r0, #4] + adds r4, r4, r0 + ldrb r1, [r4, #0x18] + ldrh r0, [r4, #2] + subs r0, r0, r1 + strh r0, [r4, #2] + ldr r1, _080D91E0 + mov r3, r8 + lsls r0, r3, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0x12 + strh r1, [r0, #8] + b _080D98F0 + .align 2, 0 +_080D91DC: .4byte 0x02039BD4 +_080D91E0: .4byte 0x03005B60 +_080D91E4: + bl ContestDebugDoPrint + ldr r0, _080D921C + ldr r0, [r0] + ldr r1, [r0, #0x14] + lsls r0, r6, #2 + adds r0, r0, r1 + ldrb r1, [r0, #2] + movs r0, #4 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + beq _080D9202 + b _080D98F0 +_080D9202: + ldr r0, _080D9220 + mov r5, r8 + lsls r4, r5, #2 + add r4, r8 + lsls r4, r4, #3 + adds r4, r4, r0 + strh r3, [r4, #0x1c] + bl sub_080DB000 + movs r0, #0x29 + strh r0, [r4, #8] + b _080D98F0 + .align 2, 0 +_080D921C: .4byte 0x02039BD4 +_080D9220: .4byte 0x03005B60 +_080D9224: + mov r1, sb + ldr r0, [r1] + ldr r2, [r0, #0x10] + ldrb r1, [r2, #1] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080D924E + ldr r0, [r2] + lsls r0, r0, #0x14 + lsrs r0, r0, #0x1d + cmp r6, r0 + beq _080D924E + mov r2, r8 + lsls r0, r2, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r4 + movs r1, #0x39 + strh r1, [r0, #8] + b _080D98F0 +_080D924E: + mov r3, sb + ldr r1, [r3] + ldr r0, [r1, #0x10] + ldrb r0, [r0] + str r0, [sp] + ldr r1, [r1, #4] + lsls r2, r6, #3 + subs r0, r2, r6 + lsls r0, r0, #2 + adds r5, r0, r1 + ldrb r1, [r5, #0x11] + movs r0, #0x10 + ands r0, r1 + str r2, [sp, #4] + cmp r0, #0 + beq _080D928C + movs r4, #1 + str r4, [sp] + ldr r0, _080D9284 + ldrh r1, [r5, #6] + lsls r1, r1, #3 + ldr r2, _080D9288 + adds r1, r1, r2 + bl StringCopy + b _080D92A6 + .align 2, 0 +_080D9284: .4byte 0x02021C68 +_080D9288: .4byte 0x082EACC4 +_080D928C: + ldr r0, _080D930C + ldr r3, _080D9310 + ldr r2, _080D9314 + ldrh r1, [r5, #6] + lsls r1, r1, #3 + adds r1, r1, r2 + ldrb r1, [r1, #1] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1b + adds r1, r1, r3 + ldr r1, [r1] + bl StringCopy +_080D92A6: + ldr r5, [sp] + lsls r0, r5, #0x18 + cmp r0, #0 + ble _080D92CA + ldr r0, _080D9318 + ldr r0, [r0] + ldr r1, [r0, #4] + ldr r2, [sp, #4] + subs r0, r2, r6 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #0x15] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080D92CA + movs r3, #0 + str r3, [sp] +_080D92CA: + bl sub_080DB000 + ldr r0, _080D931C + lsls r1, r6, #6 + ldr r2, _080D9320 + adds r1, r1, r2 + bl StringCopy + ldr r4, _080D9318 + ldr r0, [r4] + ldr r1, [r0] + ldrb r0, [r1, #0x13] + ldr r5, [sp] + lsls r2, r5, #0x18 + asrs r3, r2, #0x18 + adds r0, r3, r0 + strb r0, [r1, #0x13] + ldr r0, [r4] + ldr r1, [r0] + movs r0, #0x13 + ldrsb r0, [r1, r0] + adds r5, r2, #0 + cmp r0, #0 + bge _080D92FE + movs r0, #0 + strb r0, [r1, #0x13] +_080D92FE: + cmp r3, #0 + bne _080D9328 + ldr r0, _080D9324 + mov r2, r8 + lsls r1, r2, #2 + b _080D9748 + .align 2, 0 +_080D930C: .4byte 0x02021C68 +_080D9310: .4byte 0x08560E6C +_080D9314: .4byte 0x08565FCC +_080D9318: .4byte 0x02039BD4 +_080D931C: .4byte 0x02021C40 +_080D9320: .4byte 0x02039AA2 +_080D9324: .4byte 0x03005B60 +_080D9328: + cmp r3, #0 + bge _080D9340 + ldr r0, _080D9338 + ldr r1, _080D933C + bl StringExpandPlaceholders + b _080D936C + .align 2, 0 +_080D9338: .4byte 0x02021C7C +_080D933C: .4byte 0x0824C008 +_080D9340: + cmp r3, #0 + ble _080D9364 + ldr r0, [r4] + ldr r0, [r0] + ldrb r0, [r0, #0x13] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #4 + bgt _080D9364 + ldr r0, _080D935C + ldr r1, _080D9360 + bl StringExpandPlaceholders + b _080D936C + .align 2, 0 +_080D935C: .4byte 0x02021C7C +_080D9360: .4byte 0x0824BFE6 +_080D9364: + ldr r0, _080D9390 + ldr r1, _080D9394 + bl StringExpandPlaceholders +_080D936C: + ldr r0, _080D9390 + movs r1, #1 + bl Contest_StartTextPrinter + ldr r1, _080D9398 + mov r3, r8 + lsls r0, r3, #2 + add r0, r8 + lsls r0, r0, #3 + adds r1, r0, r1 + movs r0, #0 + strh r0, [r1, #0x1c] + strh r0, [r1, #0x1e] + cmp r5, #0 + bge _080D939C + movs r0, #0x35 + strh r0, [r1, #8] + b _080D98F0 + .align 2, 0 +_080D9390: .4byte 0x02021C7C +_080D9394: .4byte 0x0824C029 +_080D9398: .4byte 0x03005B60 +_080D939C: + movs r0, #0x36 + strh r0, [r1, #8] + b _080D98F0 +_080D93A2: + mov r5, r8 + lsls r0, r5, #2 + add r0, r8 + lsls r0, r0, #3 + adds r4, r0, r4 + movs r0, #0x1c + ldrsh r3, [r4, r0] + cmp r3, #1 + beq _080D93E0 + cmp r3, #1 + bgt _080D93BE + cmp r3, #0 + beq _080D93C8 + b _080D98F0 +_080D93BE: + cmp r3, #2 + beq _080D9404 + cmp r3, #3 + beq _080D943E + b _080D98F0 +_080D93C8: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #1 + bl sub_080DD634 + ldr r0, _080D93DC + bl PlayFanfare + b _080D9436 + .align 2, 0 +_080D93DC: .4byte 0x00000187 +_080D93E0: + mov r1, sb + ldr r0, [r1] + ldr r0, [r0] + ldrb r0, [r0, #7] + ands r3, r0 + cmp r3, #0 + beq _080D93F0 + b _080D98F0 +_080D93F0: + bl Contest_RunTextPrinters + cmp r0, #0 + beq _080D93FA + b _080D98F0 +_080D93FA: + movs r0, #1 + rsbs r0, r0, #0 + bl ShowAndUpdateApplauseMeter + b _080D9436 +_080D9404: + mov r2, sb + ldr r0, [r2] + ldr r0, [r0] + ldrb r1, [r0, #6] + movs r0, #0x20 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _080D941A + b _080D98F0 +_080D941A: + ldrh r0, [r4, #0x1e] + adds r1, r0, #1 + strh r1, [r4, #0x1e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1d + bgt _080D942A + b _080D98F0 +_080D942A: + strh r2, [r4, #0x1e] + movs r1, #1 + rsbs r1, r1, #0 + adds r0, r1, #0 + bl sub_080DD634 +_080D9436: + ldrh r0, [r4, #0x1c] + adds r0, #1 + strh r0, [r4, #0x1c] + b _080D98F0 +_080D943E: + ldr r0, _080D945C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _080D9450 + b _080D98F0 +_080D9450: + strh r0, [r4, #0x1c] + strh r0, [r4, #0x1e] + movs r0, #0x2b + strh r0, [r4, #8] + b _080D98F0 + .align 2, 0 +_080D945C: .4byte 0x02037C74 +_080D9460: + mov r3, r8 + lsls r1, r3, #2 + adds r0, r1, r3 + lsls r0, r0, #3 + adds r0, r0, r4 + movs r5, #0x1c + ldrsh r0, [r0, r5] + mov sl, r1 + cmp r0, #4 + bls _080D9476 + b _080D98F0 +_080D9476: + lsls r0, r0, #2 + ldr r1, _080D9480 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080D9480: .4byte 0x080D9484 +_080D9484: @ jump table + .4byte _080D9498 @ case 0 + .4byte _080D94A8 @ case 1 + .4byte _080D94CC @ case 2 + .4byte _080D9536 @ case 3 + .4byte _080D957C @ case 4 +_080D9498: + bl Contest_RunTextPrinters + cmp r0, #0 + beq _080D94A2 + b _080D98F0 +_080D94A2: + movs r0, #1 + movs r1, #1 + b _080D9560 +_080D94A8: + mov r1, sb + ldr r0, [r1] + ldr r0, [r0] + ldrb r1, [r0, #7] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080D94BA + b _080D98F0 +_080D94BA: + bl sub_080DD570 + movs r0, #0xdf + bl PlaySE + movs r0, #1 + bl ShowAndUpdateApplauseMeter + b _080D9564 +_080D94CC: + mov r3, sb + ldr r2, [r3] + ldr r0, [r2] + ldrb r1, [r0, #6] + movs r0, #0x20 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + beq _080D94E2 + b _080D98F0 +_080D94E2: + mov r0, sl + add r0, r8 + lsls r0, r0, #3 + adds r5, r0, r4 + ldrh r0, [r5, #0x1e] + adds r1, r0, #1 + strh r1, [r5, #0x1e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1d + bgt _080D94FA + b _080D98F0 +_080D94FA: + strh r3, [r5, #0x1e] + ldr r0, [r2, #4] + lsls r4, r6, #3 + subs r4, r4, r6 + lsls r4, r4, #2 + adds r0, r4, r0 + movs r1, #2 + ldrsh r0, [r0, r1] + ldr r1, [r2, #0x10] + ldrb r1, [r1, #2] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r2, r6, #0 + bl sub_080DB78C + mov r2, sb + ldr r1, [r2] + ldr r0, [r1, #4] + adds r4, r4, r0 + ldr r0, [r1, #0x10] + ldrb r0, [r0, #2] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r3, [r4, #2] + adds r0, r0, r3 + strh r0, [r4, #2] + ldrh r0, [r5, #0x1c] + adds r0, #1 + strh r0, [r5, #0x1c] + b _080D98F0 +_080D9536: + mov r4, sb + ldr r2, [r4] + ldr r1, [r2, #0x14] + lsls r0, r6, #2 + adds r0, r0, r1 + ldrb r1, [r0, #2] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080D954C + b _080D98F0 +_080D954C: + ldr r0, [r2] + ldrb r1, [r0, #6] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080D955A + b _080D98F0 +_080D955A: + movs r1, #1 + rsbs r1, r1, #0 + movs r0, #1 +_080D9560: + bl sub_080DD634 +_080D9564: + ldr r0, _080D9578 + mov r1, sl + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x1c] + adds r0, #1 + strh r0, [r1, #0x1c] + b _080D98F0 + .align 2, 0 +_080D9578: .4byte 0x03005B60 +_080D957C: + ldr r0, _080D95A0 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + beq _080D958E + b _080D98F0 +_080D958E: + mov r0, sl + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r4 + strh r3, [r0, #0x1c] + strh r3, [r0, #0x1e] + movs r1, #0x2b + strh r1, [r0, #8] + b _080D98F0 + .align 2, 0 +_080D95A0: .4byte 0x02037C74 +_080D95A4: + mov r5, sb + ldr r0, [r5] + ldr r1, [r0, #0x14] + lsls r0, r6, #2 + adds r0, r0, r1 + ldrb r1, [r0, #2] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080D95BA + b _080D98F0 +_080D95BA: + bl sub_080DB000 + ldr r0, _080D95C8 + mov r2, r8 + lsls r1, r2, #2 + b _080D9748 + .align 2, 0 +_080D95C8: .4byte 0x03005B60 +_080D95CC: + bl sub_080DB000 + ldr r0, _080D9630 + ldr r5, _080D9634 + ldr r1, [r5] + ldr r1, [r1, #0x10] + ldr r1, [r1] + lsls r1, r1, #0x14 + lsrs r1, r1, #0x1d + lsls r1, r1, #6 + ldr r4, _080D9638 + adds r1, r1, r4 + bl StringCopy + ldr r0, _080D963C + lsls r1, r6, #6 + adds r1, r1, r4 + bl StringCopy + ldr r0, _080D9640 + ldr r1, [r5] + ldr r2, [r1, #4] + lsls r1, r6, #3 + subs r1, r1, r6 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r1, [r1, #6] + lsls r1, r1, #3 + ldr r2, _080D9644 + adds r1, r1, r2 + bl StringCopy + ldr r4, _080D9648 + ldr r1, _080D964C + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + movs r1, #1 + bl Contest_StartTextPrinter + ldr r1, _080D9650 + mov r3, r8 + lsls r0, r3, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0x3a + strh r1, [r0, #8] + b _080D98F0 + .align 2, 0 +_080D9630: .4byte 0x02021C68 +_080D9634: .4byte 0x02039BD4 +_080D9638: .4byte 0x02039AA2 +_080D963C: .4byte 0x02021C40 +_080D9640: .4byte 0x02021C54 +_080D9644: .4byte 0x082EACC4 +_080D9648: .4byte 0x02021C7C +_080D964C: .4byte 0x0824C091 +_080D9650: .4byte 0x03005B60 +_080D9654: + bl Contest_RunTextPrinters + cmp r0, #0 + beq _080D965E + b _080D98F0 +_080D965E: + bl sub_080DB000 + ldr r4, _080D9688 + ldr r1, _080D968C + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + movs r1, #1 + bl Contest_StartTextPrinter + ldr r1, _080D9690 + mov r4, r8 + lsls r0, r4, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0x3b + strh r1, [r0, #8] + b _080D98F0 + .align 2, 0 +_080D9688: .4byte 0x02021C7C +_080D968C: .4byte 0x0824C0B1 +_080D9690: .4byte 0x03005B60 +_080D9694: + bl Contest_RunTextPrinters + cmp r0, #0 + beq _080D969E + b _080D98F0 +_080D969E: + bl sub_080DB000 + ldr r0, _080D96AC + mov r5, r8 + lsls r1, r5, #2 + b _080D9748 + .align 2, 0 +_080D96AC: .4byte 0x03005B60 +_080D96B0: + mov r1, sb + ldr r0, [r1] + ldr r1, [r0, #4] + lsls r0, r6, #3 + subs r0, r0, r6 + lsls r4, r0, #2 + adds r2, r4, r1 + ldrb r1, [r2, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080D96D0 + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x15] +_080D96D0: + adds r0, r6, #0 + bl sub_080DC118 + ldr r0, _080D971C + lsls r1, r6, #6 + ldr r2, _080D9720 + adds r1, r1, r2 + bl StringCopy + ldr r0, _080D9724 + mov r2, sb + ldr r1, [r2] + ldr r1, [r1, #4] + adds r1, r4, r1 + ldrh r1, [r1, #6] + lsls r1, r1, #3 + ldr r2, _080D9728 + adds r1, r1, r2 + bl StringCopy + ldr r4, _080D972C + ldr r1, _080D9730 + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + movs r1, #1 + bl Contest_StartTextPrinter + ldr r1, _080D9734 + mov r3, r8 + lsls r0, r3, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0x22 + strh r1, [r0, #8] + b _080D98F0 + .align 2, 0 +_080D971C: .4byte 0x02021C40 +_080D9720: .4byte 0x02039AA2 +_080D9724: .4byte 0x02021C54 +_080D9728: .4byte 0x082EACC4 +_080D972C: .4byte 0x02021C7C +_080D9730: .4byte 0x0824BEC1 +_080D9734: .4byte 0x03005B60 +_080D9738: + bl Contest_RunTextPrinters + cmp r0, #0 + beq _080D9742 + b _080D98F0 +_080D9742: + ldr r0, _080D9754 + mov r4, r8 + lsls r1, r4, #2 +_080D9748: + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0x37 + strh r0, [r1, #8] + b _080D98F0 + .align 2, 0 +_080D9754: .4byte 0x03005B60 +_080D9758: + bl TryMoveApplauseMeterOffscreen + ldr r0, _080D9770 + mov r5, r8 + lsls r1, r5, #2 + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0x38 + strh r0, [r1, #8] + b _080D98F0 + .align 2, 0 +_080D9770: .4byte 0x03005B60 +_080D9774: + mov r1, sb + ldr r0, [r1] + ldr r2, [r0] + ldrb r1, [r2, #6] + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _080D978A + b _080D98F0 +_080D978A: + movs r0, #0x13 + ldrsb r0, [r2, r0] + cmp r0, #4 + ble _080D9798 + strb r1, [r2, #0x13] + bl UpdateApplauseMeter +_080D9798: + ldr r0, _080D97AC + mov r2, r8 + lsls r1, r2, #2 + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0xa + strh r0, [r1, #8] + b _080D98F0 + .align 2, 0 +_080D97AC: .4byte 0x03005B60 +_080D97B0: + mov r3, r8 + lsls r2, r3, #2 + add r2, r8 + lsls r2, r2, #3 + adds r2, r2, r4 + ldrb r5, [r2, #0xc] + ldr r1, _080D97D4 + lsls r0, r5, #4 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _080D97D8 + str r1, [r0] + movs r0, #0xb + strh r0, [r2, #8] + b _080D98F0 + .align 2, 0 +_080D97D4: .4byte 0x020205AC +_080D97D8: .4byte 0x080D9955 +_080D97DC: + mov r5, r8 + lsls r0, r5, #2 + add r0, r8 + lsls r0, r0, #3 + adds r4, r0, r4 + ldrb r5, [r4, #0xc] + ldr r1, _080D9810 + lsls r0, r5, #4 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r6, r0, r1 + adds r0, r6, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + bge _080D98F0 + adds r0, r6, #0 + bl FreeSpriteOamMatrix + adds r0, r6, #0 + bl DestroySprite + movs r0, #0x14 + strh r0, [r4, #8] + b _080D98F0 + .align 2, 0 +_080D9810: .4byte 0x020205AC +_080D9814: + mov r1, r8 + lsls r0, r1, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r4 + movs r1, #0 + strh r1, [r0, #0x1c] + movs r1, #0x15 + strh r1, [r0, #8] + b _080D98F0 +_080D9828: + bl sub_080DB000 + ldr r0, _080D985C + lsls r1, r6, #6 + ldr r2, _080D9860 + adds r1, r1, r2 + bl StringCopy + ldr r4, _080D9864 + ldr r1, _080D9868 + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + movs r1, #1 + bl Contest_StartTextPrinter + ldr r1, _080D986C + mov r2, r8 + lsls r0, r2, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0x20 + strh r1, [r0, #8] + b _080D98F0 + .align 2, 0 +_080D985C: .4byte 0x02021C40 +_080D9860: .4byte 0x02039AA2 +_080D9864: .4byte 0x02021C7C +_080D9868: .4byte 0x0824B354 +_080D986C: .4byte 0x03005B60 +_080D9870: + bl Contest_RunTextPrinters + cmp r0, #0 + bne _080D98F0 + ldr r0, _080D988C + mov r3, r8 + lsls r1, r3, #2 + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0x15 + strh r0, [r1, #8] + b _080D98F0 + .align 2, 0 +_080D988C: .4byte 0x03005B60 +_080D9890: + mov r5, r8 + lsls r0, r5, #2 + add r0, r8 + lsls r0, r0, #3 + adds r1, r0, r4 + ldrh r0, [r1, #0x1c] + adds r0, #1 + strh r0, [r1, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1d + ble _080D98F0 + movs r0, #0 + strh r0, [r1, #0x1c] + movs r0, #0x16 + strh r0, [r1, #8] + b _080D98F0 +_080D98B2: + mov r1, sb + ldr r0, [r1] + ldr r1, [r0] + ldrb r0, [r1, #0x10] + adds r0, #1 + movs r2, #0 + strb r0, [r1, #0x10] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bne _080D98E4 + mov r3, r8 + lsls r0, r3, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r4 + strh r2, [r0, #8] + strh r2, [r0, #0xa] + strh r2, [r0, #0xc] + ldr r1, _080D98E0 + str r1, [r0] + b _080D98F0 + .align 2, 0 +_080D98E0: .4byte 0x080D9989 +_080D98E4: + mov r5, r8 + lsls r0, r5, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r4 + strh r2, [r0, #8] +_080D98F0: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_080D8334 + + thumb_func_start sub_080D9900 +sub_080D9900: @ 0x080D9900 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080D9920 + ldr r1, [r1] + ldr r3, [r1] + ldrb r2, [r3, #7] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r3, #7] + bl DestroyTask + pop {r0} + bx r0 + .align 2, 0 +_080D9920: .4byte 0x02039BD4 + thumb_func_end sub_080D9900 + + thumb_func_start sub_080D9924 +sub_080D9924: @ 0x080D9924 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0x24] + movs r3, #0x24 + ldrsh r2, [r1, r3] + cmp r2, #0 + beq _080D9938 + subs r0, #2 + strh r0, [r1, #0x24] + b _080D994C +_080D9938: + ldrh r0, [r1, #0x2e] + adds r0, #1 + strh r0, [r1, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1f + bne _080D994C + strh r2, [r1, #0x2e] + ldr r0, _080D9950 + str r0, [r1, #0x1c] +_080D994C: + pop {r0} + bx r0 + .align 2, 0 +_080D9950: .4byte 0x08007141 + thumb_func_end sub_080D9924 + + thumb_func_start sub_080D9954 +sub_080D9954: @ 0x080D9954 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x24] + subs r0, #6 + strh r0, [r2, #0x24] + movs r1, #0x20 + ldrsh r0, [r2, r1] + movs r3, #0x24 + ldrsh r1, [r2, r3] + adds r0, r0, r1 + movs r1, #0x20 + rsbs r1, r1, #0 + cmp r0, r1 + bge _080D997E + ldr r0, _080D9984 + str r0, [r2, #0x1c] + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] +_080D997E: + pop {r0} + bx r0 + .align 2, 0 +_080D9984: .4byte 0x08007141 + thumb_func_end sub_080D9954 + + thumb_func_start sub_080D9988 +sub_080D9988: @ 0x080D9988 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080D99AC + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r5, r1, r2 + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #1 + beq _080D9A1E + cmp r0, #1 + bgt _080D99B0 + cmp r0, #0 + beq _080D99B6 + b _080D9A40 + .align 2, 0 +_080D99AC: .4byte 0x03005B60 +_080D99B0: + cmp r0, #2 + beq _080D9A38 + b _080D9A40 +_080D99B6: + ldr r0, _080D9A04 + ldrb r1, [r0] + movs r6, #1 + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _080D9A14 + ldr r0, _080D9A08 + ldr r0, [r0] + ldr r2, [r0] + ldrb r0, [r2, #7] + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #7] + bl sub_080DA094 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D99E4 + bl RankContestants + bl sub_080DB17C +_080D99E4: + ldr r4, _080D9A0C + adds r0, r4, #0 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080D9A10 + adds r1, r4, #0 + bl SetTaskFuncWithFollowupFunc + bl ContestPrintLinkStandby + strh r6, [r5, #8] + b _080D9A40 + .align 2, 0 +_080D9A04: .4byte 0x02039BCA +_080D9A08: .4byte 0x02039BD4 +_080D9A0C: .4byte 0x080FD4DD +_080D9A10: .4byte 0x080D9901 +_080D9A14: + bl RankContestants + bl sub_080DB17C + b _080D9A2E +_080D9A1E: + ldr r0, _080D9A34 + ldr r0, [r0] + ldr r0, [r0] + ldrb r1, [r0, #7] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _080D9A40 +_080D9A2E: + movs r0, #2 + strh r0, [r5, #8] + b _080D9A40 + .align 2, 0 +_080D9A34: .4byte 0x02039BD4 +_080D9A38: + movs r0, #0 + strh r0, [r5, #8] + ldr r0, _080D9A48 + str r0, [r5] +_080D9A40: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080D9A48: .4byte 0x080D9A4D + thumb_func_end sub_080D9988 + + thumb_func_start sub_080D9A4C +sub_080D9A4C: @ 0x080D9A4C + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + bl sub_080DD76C + ldr r1, _080D9A74 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #8] + strh r1, [r0, #0xa] + ldr r1, _080D9A78 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D9A74: .4byte 0x03005B60 +_080D9A78: .4byte 0x080D9A7D + thumb_func_end sub_080D9A4C + + thumb_func_start sub_080D9A7C +sub_080D9A7C: @ 0x080D9A7C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080D9AA0 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 + movs r0, #8 + ldrsh r5, [r4, r0] + cmp r5, #1 + beq _080D9AC2 + cmp r5, #1 + bgt _080D9AA4 + cmp r5, #0 + beq _080D9AAA + b _080D9B02 + .align 2, 0 +_080D9AA0: .4byte 0x03005B60 +_080D9AA4: + cmp r5, #2 + beq _080D9AF4 + b _080D9B02 +_080D9AAA: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x14 + ble _080D9B02 + movs r0, #2 + bl sub_080DDE00 + strh r5, [r4, #0xa] + b _080D9AE6 +_080D9AC2: + ldr r0, _080D9AF0 + ldr r0, [r0] + ldr r0, [r0] + ldrb r1, [r0, #7] + movs r0, #2 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080D9B02 + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x14 + ble _080D9B02 + strh r1, [r4, #0xa] +_080D9AE6: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _080D9B02 + .align 2, 0 +_080D9AF0: .4byte 0x02039BD4 +_080D9AF4: + bl sub_080DBB10 + movs r0, #0 + strh r0, [r4, #8] + strh r0, [r4, #0xa] + ldr r0, _080D9B08 + str r0, [r4] +_080D9B02: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D9B08: .4byte 0x080D9B0D + thumb_func_end sub_080D9A7C + + thumb_func_start sub_080D9B0C +sub_080D9B0C: @ 0x080D9B0C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl sub_080DBB28 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D9B2A + ldr r0, _080D9B30 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080D9B34 + str r0, [r1] +_080D9B2A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D9B30: .4byte 0x03005B60 +_080D9B34: .4byte 0x080D9B39 + thumb_func_end sub_080D9B0C + + thumb_func_start sub_080D9B38 +sub_080D9B38: @ 0x080D9B38 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080D9B64 + ldr r3, _080D9B68 + ldr r1, _080D9B6C + str r2, [r1] + str r3, [r1, #4] + ldr r2, _080D9B70 + str r2, [r1, #8] + ldr r1, [r1, #8] + ldr r2, _080D9B74 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r0, #0 + strh r0, [r1, #8] + movs r0, #2 + strh r0, [r1, #0xa] + ldr r0, _080D9B78 + str r0, [r1] + bx lr + .align 2, 0 +_080D9B64: .4byte 0x0201A204 +_080D9B68: .4byte 0x020373B4 +_080D9B6C: .4byte 0x040000D4 +_080D9B70: .4byte 0x84000100 +_080D9B74: .4byte 0x03005B60 +_080D9B78: .4byte 0x080D9B7D + thumb_func_end sub_080D9B38 + + thumb_func_start sub_080D9B7C +sub_080D9B7C: @ 0x080D9B7C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080D9BB4 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + ble _080D9BAE + movs r0, #0 + strh r0, [r1, #8] + ldrh r0, [r1, #0xa] + subs r0, #1 + strh r0, [r1, #0xa] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080D9BAE + ldr r0, _080D9BB8 + str r0, [r1] +_080D9BAE: + pop {r0} + bx r0 + .align 2, 0 +_080D9BB4: .4byte 0x03005B60 +_080D9BB8: .4byte 0x080D9BBD + thumb_func_end sub_080D9B7C + + thumb_func_start sub_080D9BBC +sub_080D9BBC: @ 0x080D9BBC + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080D9C1C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r6, r1, r2 + movs r1, #8 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _080D9C38 + ldr r0, _080D9C20 + ldr r0, [r0] + ldr r5, _080D9C24 + ldrb r1, [r5] + ldr r2, [r0, #4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r4, [r0, #0x1a] + bl sub_080DB000 + ldr r0, _080D9C28 + ldrb r1, [r5] + lsls r1, r1, #6 + ldr r2, _080D9C2C + adds r1, r1, r2 + bl StringCopy + ldr r5, _080D9C30 + ldr r0, _080D9C34 + lsls r4, r4, #2 + adds r4, r4, r0 + ldr r1, [r4] + adds r0, r5, #0 + bl StringExpandPlaceholders + adds r0, r5, #0 + movs r1, #1 + bl Contest_StartTextPrinter + ldrh r0, [r6, #8] + adds r0, #1 + strh r0, [r6, #8] + b _080D9C4A + .align 2, 0 +_080D9C1C: .4byte 0x03005B60 +_080D9C20: .4byte 0x02039BD4 +_080D9C24: .4byte 0x02039BC5 +_080D9C28: .4byte 0x02021C40 +_080D9C2C: .4byte 0x02039AA2 +_080D9C30: .4byte 0x02021C7C +_080D9C34: .4byte 0x08560CF4 +_080D9C38: + bl Contest_RunTextPrinters + cmp r0, #0 + bne _080D9C4A + strh r0, [r6, #8] + ldr r0, _080D9C50 + str r0, [r6] + bl ContestDebugDoPrint +_080D9C4A: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080D9C50: .4byte 0x080D9C55 + thumb_func_end sub_080D9BBC + + thumb_func_start sub_080D9C54 +sub_080D9C54: @ 0x080D9C54 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080D9C84 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 + ldrh r0, [r4, #8] + adds r1, r0, #1 + strh r1, [r4, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1d + ble _080D9C7E + movs r0, #0 + strh r0, [r4, #8] + bl sub_080DBB10 + ldr r0, _080D9C88 + str r0, [r4] +_080D9C7E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D9C84: .4byte 0x03005B60 +_080D9C88: .4byte 0x080D9C8D + thumb_func_end sub_080D9C54 + + thumb_func_start sub_080D9C8C +sub_080D9C8C: @ 0x080D9C8C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl sub_080DBB28 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D9CAE + ldr r1, _080D9CB4 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #8] + ldr r1, _080D9CB8 + str r1, [r0] +_080D9CAE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D9CB4: .4byte 0x03005B60 +_080D9CB8: .4byte 0x080D9CBD + thumb_func_end sub_080D9C8C + + thumb_func_start sub_080D9CBC +sub_080D9CBC: @ 0x080D9CBC + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl sub_080DD988 + ldr r1, _080D9CDC + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080D9CE0 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D9CDC: .4byte 0x03005B60 +_080D9CE0: .4byte 0x080DDB89 + thumb_func_end sub_080D9CBC + + thumb_func_start sub_080D9CE4 +sub_080D9CE4: @ 0x080D9CE4 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl sub_080DDAB4 + ldr r1, _080D9D04 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080D9D08 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D9D04: .4byte 0x03005B60 +_080D9D08: .4byte 0x080D9D0D + thumb_func_end sub_080D9CE4 + + thumb_func_start sub_080D9D0C +sub_080D9D0C: @ 0x080D9D0C + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r0, #8 + bl GetGpuReg + mov r1, sp + strh r0, [r1] + movs r0, #0xc + bl GetGpuReg + mov r4, sp + adds r4, #2 + strh r0, [r4] + mov r3, sp + ldrb r2, [r3] + movs r1, #4 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3] + ldrb r0, [r4] + ands r1, r0 + strb r1, [r4] + mov r0, sp + ldrh r1, [r0] + movs r0, #8 + bl SetGpuReg + ldrh r1, [r4] + movs r0, #0xc + bl SetGpuReg + ldr r2, _080D9D74 + ldr r0, [r2] + ldr r1, [r0] + ldrb r0, [r1, #1] + adds r0, #1 + strb r0, [r1, #1] + ldr r0, [r2] + ldr r0, [r0] + ldrb r0, [r0, #1] + cmp r0, #5 + bne _080D9D80 + ldr r0, _080D9D78 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080D9D7C + b _080D9D90 + .align 2, 0 +_080D9D74: .4byte 0x02039BD4 +_080D9D78: .4byte 0x03005B60 +_080D9D7C: .4byte 0x080D9DD9 +_080D9D80: + bl StartMoveApplauseMeterOnscreen + ldr r0, _080D9D9C + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080D9DA0 +_080D9D90: + str r0, [r1] + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D9D9C: .4byte 0x03005B60 +_080D9DA0: .4byte 0x080D9DA5 + thumb_func_end sub_080D9D0C + + thumb_func_start sub_080D9DA4 +sub_080D9DA4: @ 0x080D9DA4 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _080D9DCC + ldr r0, [r0] + ldr r0, [r0] + ldrb r1, [r0, #6] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _080D9DC8 + ldr r0, _080D9DD0 + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080D9DD4 + str r0, [r1] +_080D9DC8: + pop {r0} + bx r0 + .align 2, 0 +_080D9DCC: .4byte 0x02039BD4 +_080D9DD0: .4byte 0x03005B60 +_080D9DD4: .4byte 0x080D7B69 + thumb_func_end sub_080D9DA4 + + thumb_func_start sub_080D9DD8 +sub_080D9DD8: @ 0x080D9DD8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _080D9E34 + movs r1, #0 + strh r1, [r0] + ldr r0, _080D9E38 + strh r1, [r0] + ldr r4, _080D9E3C + movs r3, #0 + ldr r2, _080D9E40 + movs r1, #3 +_080D9DF0: + ldr r0, [r4] + ldr r0, [r0, #4] + adds r0, r3, r0 + ldrh r0, [r0, #4] + strh r0, [r2] + adds r3, #0x1c + adds r2, #2 + subs r1, #1 + cmp r1, #0 + bge _080D9DF0 + bl sub_080DB47C + bl sub_080DB000 + ldr r0, _080D9E44 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080D9E4C + ldr r0, _080D9E3C + ldr r2, [r0] + ldr r0, _080D9E48 + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0, #8] + bl BravoTrainerPokemonProfile_BeforeInterview1 + b _080D9E58 + .align 2, 0 +_080D9E34: .4byte 0x02022ACA +_080D9E38: .4byte 0x02022AD2 +_080D9E3C: .4byte 0x02039BD4 +_080D9E40: .4byte 0x02039BB0 +_080D9E44: .4byte 0x02039BCA +_080D9E48: .4byte 0x02039BC5 +_080D9E4C: + bl sub_080DE958 + bl sub_080DEC00 + bl ContestDebugPrintBitStrings +_080D9E58: + ldr r1, _080D9E8C + ldr r0, _080D9E90 + ldr r0, [r0] + str r0, [r1] + ldr r4, _080D9E94 + ldr r1, _080D9E98 + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + movs r1, #1 + bl Contest_StartTextPrinter + ldr r1, _080D9E9C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #0xc] + ldr r1, _080D9EA0 + str r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D9E8C: .4byte 0x03005E18 +_080D9E90: .4byte 0x03005AE0 +_080D9E94: .4byte 0x02021C7C +_080D9E98: .4byte 0x0824B36F +_080D9E9C: .4byte 0x03005B60 +_080D9EA0: .4byte 0x080D9EA5 + thumb_func_end sub_080D9DD8 + + thumb_func_start sub_080D9EA4 +sub_080D9EA4: @ 0x080D9EA4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + bl Contest_RunTextPrinters + adds r4, r0, #0 + cmp r4, #0 + bne _080D9EDA + bl sub_080DD988 + ldr r0, _080D9EE0 + strh r4, [r0] + ldr r1, _080D9EE4 + movs r0, #0xa0 + strh r0, [r1] + movs r0, #0x62 + movs r1, #0 + bl PlaySE12WithPanning + ldr r1, _080D9EE8 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r4, [r0, #8] + ldr r1, _080D9EEC + str r1, [r0] +_080D9EDA: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D9EE0: .4byte 0x02022ACC +_080D9EE4: .4byte 0x02022ACE +_080D9EE8: .4byte 0x03005B60 +_080D9EEC: .4byte 0x080D9EF1 + thumb_func_end sub_080D9EA4 + + thumb_func_start sub_080D9EF0 +sub_080D9EF0: @ 0x080D9EF0 + push {lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r1, _080D9F24 + ldrh r0, [r1] + subs r0, #7 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _080D9F08 + movs r0, #0 + strh r0, [r1] +_080D9F08: + ldrh r2, [r1] + cmp r2, #0 + bne _080D9F1E + ldr r0, _080D9F28 + lsls r1, r3, #2 + adds r1, r1, r3 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080D9F2C + str r0, [r1] + strh r2, [r1, #8] +_080D9F1E: + pop {r0} + bx r0 + .align 2, 0 +_080D9F24: .4byte 0x02022ACE +_080D9F28: .4byte 0x03005B60 +_080D9F2C: .4byte 0x080D9F31 + thumb_func_end sub_080D9EF0 + + thumb_func_start sub_080D9F30 +sub_080D9F30: @ 0x080D9F30 + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080D9F64 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 + ldrh r0, [r4, #8] + adds r1, r0, #1 + strh r1, [r4, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x31 + ble _080D9F84 + movs r0, #0 + strh r0, [r4, #8] + ldr r0, _080D9F68 + ldrb r0, [r0] + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _080D9F70 + ldr r0, _080D9F6C + b _080D9F82 + .align 2, 0 +_080D9F64: .4byte 0x03005B60 +_080D9F68: .4byte 0x02039BCA +_080D9F6C: .4byte 0x080D9F91 +_080D9F70: + movs r0, #1 + rsbs r0, r0, #0 + str r1, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _080D9F8C +_080D9F82: + str r0, [r4] +_080D9F84: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D9F8C: .4byte 0x080DA021 + thumb_func_end sub_080D9F30 + + thumb_func_start sub_080D9F90 +sub_080D9F90: @ 0x080D9F90 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r5, _080D9FCC + adds r0, r5, #0 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080D9FD0 + adds r1, r5, #0 + bl SetTaskFuncWithFollowupFunc + ldr r1, _080D9FD4 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080D9FD8 + str r1, [r0] + bl ContestPrintLinkStandby + movs r0, #0 + bl sub_080DBBF4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D9FCC: .4byte 0x080FD321 +_080D9FD0: .4byte 0x080D9FDD +_080D9FD4: .4byte 0x03005B60 +_080D9FD8: .4byte 0x080D6E95 + thumb_func_end sub_080D9F90 + + thumb_func_start sub_080D9FDC +sub_080D9FDC: @ 0x080D9FDC + push {lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r2, _080DA014 + ldr r0, _080DA018 + ldr r0, [r0] + ldr r0, [r0] + ldrb r1, [r0, #8] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldr r1, _080DA01C + str r1, [r0] + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_080DA014: .4byte 0x03005B60 +_080DA018: .4byte 0x02039BD4 +_080DA01C: .4byte 0x080DA021 + thumb_func_end sub_080D9FDC + + thumb_func_start sub_080DA020 +sub_080DA020: @ 0x080DA020 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _080DA054 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080DA050 + adds r0, r2, #0 + bl DestroyTask + ldr r0, _080DA058 + ldr r1, _080DA05C + str r1, [r0] + bl FreeAllWindowBuffers + bl FreeContestResources + bl FreeMonSpritesGfx + ldr r0, _080DA060 + bl SetMainCallback2 +_080DA050: + pop {r0} + bx r0 + .align 2, 0 +_080DA054: .4byte 0x02037C74 +_080DA058: .4byte 0x03005B0C +_080DA05C: .4byte 0x080DA065 +_080DA060: .4byte 0x08085A31 + thumb_func_end sub_080DA020 + + thumb_func_start sub_080DA064 +sub_080DA064: @ 0x080DA064 + push {lr} + bl ScriptContext2_Disable + bl EnableBothScriptContexts + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080DA064 + + thumb_func_start TryPutPlayerLast +TryPutPlayerLast: @ 0x080DA074 + push {lr} + ldr r0, _080DA08C + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080DA088 + ldr r1, _080DA090 + movs r0, #3 + strb r0, [r1] +_080DA088: + pop {r0} + bx r0 + .align 2, 0 +_080DA08C: .4byte 0x02039BCA +_080DA090: .4byte 0x02039BC5 + thumb_func_end TryPutPlayerLast + + thumb_func_start sub_080DA094 +sub_080DA094: @ 0x080DA094 + push {lr} + ldr r0, _080DA0A8 + ldr r1, _080DA0AC + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _080DA0B0 + movs r0, #0 + b _080DA0B2 + .align 2, 0 +_080DA0A8: .4byte 0x02039BC5 +_080DA0AC: .4byte 0x02039BCB +_080DA0B0: + movs r0, #1 +_080DA0B2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080DA094 + + thumb_func_start sub_080DA0B8 +sub_080DA0B8: @ 0x080DA0B8 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r4, _080DA0F0 + ldr r1, [r4] + mov r0, sp + bl StringCopy + mov r1, sp + movs r0, #0xff + strb r0, [r1, #5] + ldr r6, _080DA0F4 + ldrb r0, [r6] + lsls r0, r0, #6 + ldr r5, _080DA0F8 + adds r0, r0, r5 + bl StringCopy + ldr r0, [r4] + ldrb r0, [r0, #8] + cmp r0, #0 + bne _080DA0FC + ldrb r0, [r6] + lsls r0, r0, #6 + adds r0, r5, r0 + movs r1, #0xd8 + b _080DA104 + .align 2, 0 +_080DA0F0: .4byte 0x03005AF0 +_080DA0F4: .4byte 0x02039BC5 +_080DA0F8: .4byte 0x02039AAD +_080DA0FC: + ldrb r0, [r6] + lsls r0, r0, #6 + adds r0, r5, r0 + movs r1, #0xd9 +_080DA104: + strb r1, [r0, #8] + ldr r6, _080DA260 + ldr r5, _080DA264 + ldrb r0, [r5] + lsls r0, r0, #6 + adds r1, r6, #0 + adds r1, #0x18 + adds r0, r0, r1 + movs r1, #0 + str r1, [r0] + ldrb r0, [r5] + lsls r0, r0, #6 + adds r0, r0, r6 + adds r0, #0x2c + strb r1, [r0] + movs r0, #0x64 + adds r4, r7, #0 + muls r4, r0, r4 + ldr r0, _080DA268 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + ldrb r1, [r5] + lsls r1, r1, #6 + adds r1, r1, r6 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #2 + mov r2, sp + bl GetMonData + mov r0, sp + bl StringGetEnd10 + ldrb r0, [r5] + lsls r0, r0, #6 + adds r1, r6, #2 + adds r0, r0, r1 + mov r1, sp + bl StringCopy + adds r0, r4, #0 + movs r1, #0x16 + bl GetMonData + ldrb r1, [r5] + lsls r1, r1, #6 + adds r1, r1, r6 + adds r1, #0x26 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x17 + bl GetMonData + ldrb r1, [r5] + lsls r1, r1, #6 + adds r1, r1, r6 + adds r1, #0x27 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x18 + bl GetMonData + ldrb r1, [r5] + lsls r1, r1, #6 + adds r1, r1, r6 + adds r1, #0x28 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x21 + bl GetMonData + ldrb r1, [r5] + lsls r1, r1, #6 + adds r1, r1, r6 + adds r1, #0x29 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x2f + bl GetMonData + ldrb r1, [r5] + lsls r1, r1, #6 + adds r1, r1, r6 + adds r1, #0x2a + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x30 + bl GetMonData + ldrb r1, [r5] + lsls r1, r1, #6 + adds r1, r1, r6 + adds r1, #0x2b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0xd + bl GetMonData + ldrb r1, [r5] + lsls r1, r1, #6 + adds r1, r1, r6 + strh r0, [r1, #0x1e] + adds r0, r4, #0 + movs r1, #0xe + bl GetMonData + ldrb r1, [r5] + lsls r1, r1, #6 + adds r1, r1, r6 + strh r0, [r1, #0x20] + adds r0, r4, #0 + movs r1, #0xf + bl GetMonData + ldrb r1, [r5] + lsls r1, r1, #6 + adds r1, r1, r6 + strh r0, [r1, #0x22] + adds r0, r4, #0 + movs r1, #0x10 + bl GetMonData + ldrb r1, [r5] + lsls r1, r1, #6 + adds r1, r1, r6 + strh r0, [r1, #0x24] + adds r0, r4, #0 + movs r1, #0 + bl GetMonData + ldrb r1, [r5] + lsls r1, r1, #6 + adds r2, r6, #0 + adds r2, #0x38 + adds r1, r1, r2 + str r0, [r1] + adds r0, r4, #0 + movs r1, #1 + bl GetMonData + ldrb r1, [r5] + lsls r1, r1, #6 + adds r2, r6, #0 + adds r2, #0x3c + adds r1, r1, r2 + str r0, [r1] + adds r0, r4, #0 + movs r1, #0xc + bl GetMonData + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + mov ip, r2 + ldrb r0, [r5] + lsls r0, r0, #6 + adds r1, r0, r6 + adds r0, r1, #0 + adds r0, #0x26 + ldrb r3, [r0] + adds r0, #1 + ldrb r4, [r0] + adds r0, #1 + ldrb r5, [r0] + adds r0, #1 + ldrb r6, [r0] + adds r0, #1 + ldrb r7, [r0] + cmp r2, #0xfe + bne _080DA26C + adds r3, #0x14 + b _080DA2BA + .align 2, 0 +_080DA260: .4byte 0x02039AA0 +_080DA264: .4byte 0x02039BC5 +_080DA268: .4byte 0x02024190 +_080DA26C: + cmp r2, #0xff + bne _080DA27C + lsls r0, r4, #0x10 + movs r1, #0xa0 + lsls r1, r1, #0xd + adds r0, r0, r1 + lsrs r4, r0, #0x10 + b _080DA2BA +_080DA27C: + movs r0, #0x80 + lsls r0, r0, #1 + cmp r2, r0 + bne _080DA290 + lsls r0, r5, #0x10 + movs r1, #0xa0 + lsls r1, r1, #0xd + adds r0, r0, r1 + lsrs r5, r0, #0x10 + b _080DA2BA +_080DA290: + ldr r0, _080DA2A4 + cmp r2, r0 + bne _080DA2A8 + lsls r0, r6, #0x10 + movs r1, #0xa0 + lsls r1, r1, #0xd + adds r0, r0, r1 + lsrs r6, r0, #0x10 + b _080DA2BA + .align 2, 0 +_080DA2A4: .4byte 0x00000101 +_080DA2A8: + movs r0, #0x81 + lsls r0, r0, #1 + cmp ip, r0 + bne _080DA2BA + lsls r0, r7, #0x10 + movs r1, #0xa0 + lsls r1, r1, #0xd + adds r0, r0, r1 + lsrs r7, r0, #0x10 +_080DA2BA: + cmp r3, #0xff + ble _080DA2C0 + movs r3, #0xff +_080DA2C0: + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xff + ble _080DA2CA + movs r4, #0xff +_080DA2CA: + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xff + ble _080DA2D4 + movs r5, #0xff +_080DA2D4: + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xff + ble _080DA2DE + movs r6, #0xff +_080DA2DE: + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xff + ble _080DA2E8 + movs r7, #0xff +_080DA2E8: + ldr r2, _080DA328 + ldr r1, _080DA32C + ldrb r0, [r1] + lsls r0, r0, #6 + adds r0, r0, r2 + adds r0, #0x26 + strb r3, [r0] + ldrb r0, [r1] + lsls r0, r0, #6 + adds r0, r0, r2 + adds r0, #0x27 + strb r4, [r0] + ldrb r0, [r1] + lsls r0, r0, #6 + adds r0, r0, r2 + adds r0, #0x28 + strb r5, [r0] + ldrb r0, [r1] + lsls r0, r0, #6 + adds r0, r0, r2 + adds r0, #0x29 + strb r6, [r0] + ldrb r0, [r1] + lsls r0, r0, #6 + adds r0, r0, r2 + adds r0, #0x2a + strb r7, [r0] + add sp, #0x14 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DA328: .4byte 0x02039AA0 +_080DA32C: .4byte 0x02039BC5 + thumb_func_end sub_080DA0B8 + + thumb_func_start sub_080DA330 +sub_080DA330: @ 0x080DA330 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x64 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + movs r6, #0 + movs r7, #0 + bl TryPutPlayerLast + ldr r0, _080DA380 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080DA364 + ldr r0, _080DA384 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080DA364 + movs r7, #1 +_080DA364: + movs r5, #0 + ldr r2, _080DA388 + ldr r3, _080DA38C +_080DA36A: + ldrb r0, [r2, #0x1c] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r8, r0 + bne _080DA3DE + cmp r7, #1 + bne _080DA390 + ldrb r0, [r3] + cmp r0, #1 + beq _080DA3DE + b _080DA396 + .align 2, 0 +_080DA380: .4byte 0x00000864 +_080DA384: .4byte 0x02039BCA +_080DA388: .4byte 0x08561028 +_080DA38C: .4byte 0x08562828 +_080DA390: + ldrb r0, [r3] + cmp r0, #2 + beq _080DA3DE +_080DA396: + cmp r4, #0 + bne _080DA3A2 + ldrb r0, [r2, #0x1c] + lsls r0, r0, #0x1d + cmp r0, #0 + blt _080DA3D2 +_080DA3A2: + cmp r4, #1 + bne _080DA3AE + ldrb r0, [r2, #0x1c] + lsls r0, r0, #0x1c + cmp r0, #0 + blt _080DA3D2 +_080DA3AE: + cmp r4, #2 + bne _080DA3BA + ldrb r0, [r2, #0x1c] + lsls r0, r0, #0x1b + cmp r0, #0 + blt _080DA3D2 +_080DA3BA: + cmp r4, #3 + bne _080DA3C6 + ldrb r0, [r2, #0x1c] + lsls r0, r0, #0x1a + cmp r0, #0 + blt _080DA3D2 +_080DA3C6: + cmp r4, #4 + bne _080DA3DE + ldrb r0, [r2, #0x1c] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _080DA3DE +_080DA3D2: + adds r0, r6, #0 + adds r1, r0, #1 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + add r0, sp + strb r5, [r0] +_080DA3DE: + adds r2, #0x40 + adds r3, #1 + adds r5, #1 + cmp r5, #0x5f + bls _080DA36A + mov r0, sp + adds r1, r0, r6 + movs r0, #0xff + strb r0, [r1] + movs r5, #0 + ldr r7, _080DA454 +_080DA3F4: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r6, #0 + bl __modsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _080DA458 + lsls r2, r5, #6 + adds r2, r2, r1 + mov r1, sp + adds r4, r1, r0 + ldrb r1, [r4] + lsls r1, r1, #6 + adds r1, r1, r7 + adds r0, r2, #0 + movs r2, #0x40 + bl memcpy + ldrb r0, [r4] + adds r2, r5, #1 + subs r1, r6, #1 + cmp r0, #0xff + beq _080DA436 + adds r3, r4, #0 +_080DA42A: + ldrb r0, [r3, #1] + strb r0, [r3] + adds r3, #1 + ldrb r0, [r3] + cmp r0, #0xff + bne _080DA42A +_080DA436: + lsls r0, r1, #0x18 + lsrs r6, r0, #0x18 + adds r5, r2, #0 + cmp r5, #2 + ble _080DA3F4 + ldr r0, _080DA45C + ldrb r0, [r0] + bl sub_080DA0B8 + add sp, #0x64 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DA454: .4byte 0x08561028 +_080DA458: .4byte 0x02039AA0 +_080DA45C: .4byte 0x02039BC4 + thumb_func_end sub_080DA330 + + thumb_func_start sub_080DA460 +sub_080DA460: @ 0x080DA460 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x64 + mov ip, r2 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + movs r6, #0 + ldr r0, _080DA49C + ldrb r1, [r0] + mov r8, r0 + cmp r1, #4 + beq _080DA572 + movs r5, #0 + ldr r3, _080DA4A0 + ldr r2, _080DA4A4 +_080DA484: + ldrb r0, [r3, #0x1c] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r7, r0 + bne _080DA4F6 + mov r0, ip + cmp r0, #1 + bne _080DA4A8 + ldrb r0, [r2] + cmp r0, #1 + beq _080DA4F6 + b _080DA4AE + .align 2, 0 +_080DA49C: .4byte 0x02039BD0 +_080DA4A0: .4byte 0x08561028 +_080DA4A4: .4byte 0x08562828 +_080DA4A8: + ldrb r0, [r2] + cmp r0, #2 + beq _080DA4F6 +_080DA4AE: + cmp r4, #0 + bne _080DA4BA + ldrb r0, [r3, #0x1c] + lsls r0, r0, #0x1d + cmp r0, #0 + blt _080DA4EA +_080DA4BA: + cmp r4, #1 + bne _080DA4C6 + ldrb r0, [r3, #0x1c] + lsls r0, r0, #0x1c + cmp r0, #0 + blt _080DA4EA +_080DA4C6: + cmp r4, #2 + bne _080DA4D2 + ldrb r0, [r3, #0x1c] + lsls r0, r0, #0x1b + cmp r0, #0 + blt _080DA4EA +_080DA4D2: + cmp r4, #3 + bne _080DA4DE + ldrb r0, [r3, #0x1c] + lsls r0, r0, #0x1a + cmp r0, #0 + blt _080DA4EA +_080DA4DE: + cmp r4, #4 + bne _080DA4F6 + ldrb r0, [r3, #0x1c] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _080DA4F6 +_080DA4EA: + adds r0, r6, #0 + adds r1, r0, #1 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + add r0, sp + strb r5, [r0] +_080DA4F6: + adds r3, #0x40 + adds r2, #1 + adds r5, #1 + cmp r5, #0x5f + bls _080DA484 + mov r3, sp + adds r1, r3, r6 + movs r0, #0xff + strb r0, [r1] + movs r5, #0 + mov r0, r8 + ldrb r1, [r0] + movs r0, #4 + subs r0, r0, r1 + cmp r5, r0 + bge _080DA572 + ldr r7, _080DA580 +_080DA518: + bl sub_080F98CC + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r6, #0 + bl __modsi3 + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, _080DA584 + ldrb r0, [r0] + adds r0, r0, r5 + lsls r0, r0, #6 + adds r0, r0, r7 + ldr r2, _080DA588 + mov r3, sp + adds r4, r3, r1 + ldrb r1, [r4] + lsls r1, r1, #6 + adds r1, r1, r2 + movs r2, #0x40 + bl memcpy + ldrb r0, [r4] + adds r3, r5, #1 + subs r1, r6, #1 + cmp r0, #0xff + beq _080DA560 + adds r2, r4, #0 +_080DA554: + ldrb r0, [r2, #1] + strb r0, [r2] + adds r2, #1 + ldrb r0, [r2] + cmp r0, #0xff + bne _080DA554 +_080DA560: + lsls r0, r1, #0x18 + lsrs r6, r0, #0x18 + adds r5, r3, #0 + ldr r0, _080DA584 + ldrb r1, [r0] + movs r0, #4 + subs r0, r0, r1 + cmp r5, r0 + blt _080DA518 +_080DA572: + add sp, #0x64 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DA580: .4byte 0x02039AA0 +_080DA584: .4byte 0x02039BD0 +_080DA588: .4byte 0x08561028 + thumb_func_end sub_080DA460 + + thumb_func_start sub_080DA58C +sub_080DA58C: @ 0x080DA58C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + beq _080DA59E + movs r0, #3 + b _080DA61A +_080DA59E: + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + bne _080DA5AE + movs r0, #4 + b _080DA61A +_080DA5AE: + ldr r0, _080DA5C0 + ldrh r0, [r0] + cmp r0, #4 + bhi _080DA602 + lsls r0, r0, #2 + ldr r1, _080DA5C4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080DA5C0: .4byte 0x02039BCC +_080DA5C4: .4byte 0x080DA5C8 +_080DA5C8: @ jump table + .4byte _080DA5DC @ case 0 + .4byte _080DA5E2 @ case 1 + .4byte _080DA5E8 @ case 2 + .4byte _080DA5EE @ case 3 + .4byte _080DA5F4 @ case 4 +_080DA5DC: + adds r0, r4, #0 + movs r1, #0x32 + b _080DA5F8 +_080DA5E2: + adds r0, r4, #0 + movs r1, #0x33 + b _080DA5F8 +_080DA5E8: + adds r0, r4, #0 + movs r1, #0x34 + b _080DA5F8 +_080DA5EE: + adds r0, r4, #0 + movs r1, #0x35 + b _080DA5F8 +_080DA5F4: + adds r0, r4, #0 + movs r1, #0x36 +_080DA5F8: + bl GetMonData + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + b _080DA606 +_080DA602: + movs r0, #0 + b _080DA61A +_080DA606: + ldr r0, _080DA620 + adds r2, r1, #0 + ldrh r1, [r0] + movs r0, #2 + cmp r2, r1 + bhi _080DA61A + movs r0, #0 + cmp r2, r1 + blo _080DA61A + movs r0, #1 +_080DA61A: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080DA620: .4byte 0x02039BCE + thumb_func_end sub_080DA58C + + thumb_func_start DrawContestantWindowText +DrawContestantWindowText: @ 0x080DA624 + push {r4, r5, lr} + movs r5, #0 +_080DA628: + ldr r4, _080DA660 + adds r4, r5, r4 + ldrb r0, [r4] + movs r1, #0 + bl FillWindowPixelBuffer + ldrb r0, [r4] + adds r0, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl FillWindowPixelBuffer + lsls r4, r5, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl PrintContestantMonName + adds r0, r4, #0 + bl PrintContestantTrainerName + adds r5, #1 + cmp r5, #3 + ble _080DA628 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080DA660: .4byte 0x02039BC6 + thumb_func_end DrawContestantWindowText + + thumb_func_start Contest_CopyStringWithColor +Contest_CopyStringWithColor: @ 0x080DA664 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r4, r1, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _080DA684 + ldr r1, _080DA688 + bl StringCopy + strb r4, [r0] + adds r0, #1 + adds r1, r5, #0 + bl StringCopy + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080DA684: .4byte 0x02022AE0 +_080DA688: .4byte 0x085CC497 + thumb_func_end Contest_CopyStringWithColor + + thumb_func_start PrintContestantMonName +PrintContestantMonName: @ 0x080DA68C + push {lr} + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r0, r1, #0x18 + movs r2, #0xa0 + lsls r2, r2, #0x14 + adds r1, r1, r2 + lsrs r1, r1, #0x18 + bl PrintContestantMonNameWithColor + pop {r0} + bx r0 + thumb_func_end PrintContestantMonName + + thumb_func_start PrintContestantMonNameWithColor +PrintContestantMonNameWithColor: @ 0x080DA6A4 + push {r4, r5, lr} + sub sp, #0x20 + adds r4, r0, #0 + adds r5, r1, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r1, _080DA6E8 + mov r0, sp + bl StringCopy + lsls r1, r4, #6 + ldr r0, _080DA6EC + adds r1, r1, r0 + mov r0, sp + bl StringAppend + mov r0, sp + adds r1, r5, #0 + bl Contest_CopyStringWithColor + ldr r0, _080DA6F0 + adds r4, r4, r0 + ldrb r0, [r4] + adds r0, #4 + ldr r1, _080DA6F4 + bl Contest_PrintTextToBg0WindowStd + add sp, #0x20 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080DA6E8: .4byte 0x085C93FF +_080DA6EC: .4byte 0x02039AAD +_080DA6F0: .4byte 0x02039BC6 +_080DA6F4: .4byte 0x02022AE0 + thumb_func_end PrintContestantMonNameWithColor + + thumb_func_start PrintContestantTrainerName +PrintContestantTrainerName: @ 0x080DA6F8 + push {lr} + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r0, r1, #0x18 + movs r2, #0xa0 + lsls r2, r2, #0x14 + adds r1, r1, r2 + lsrs r1, r1, #0x18 + bl sub_080DA710 + pop {r0} + bx r0 + thumb_func_end PrintContestantTrainerName + + thumb_func_start sub_080DA710 +sub_080DA710: @ 0x080DA710 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r4, #6 + ldr r2, _080DA738 + adds r0, r0, r2 + bl Contest_CopyStringWithColor + ldr r0, _080DA73C + adds r4, r4, r0 + ldrb r0, [r4] + ldr r1, _080DA740 + bl Contest_PrintTextToBg0WindowStd + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DA738: .4byte 0x02039AA2 +_080DA73C: .4byte 0x02039BC6 +_080DA740: .4byte 0x02022AE0 + thumb_func_end sub_080DA710 + + thumb_func_start sub_080DA744 +sub_080DA744: @ 0x080DA744 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r0, r1, #0x18 + cmp r0, #4 + bhi _080DA7D0 + lsls r0, r0, #2 + ldr r1, _080DA75C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080DA75C: .4byte 0x080DA760 +_080DA760: @ jump table + .4byte _080DA774 @ case 0 + .4byte _080DA78C @ case 1 + .4byte _080DA7A4 @ case 2 + .4byte _080DA7B4 @ case 3 + .4byte _080DA7D0 @ case 4 +_080DA774: + ldr r0, _080DA788 + lsls r2, r2, #6 + adds r1, r2, r0 + adds r3, r1, #0 + adds r3, #0x26 + ldrb r5, [r3] + adds r3, #4 + ldrb r4, [r3] + adds r1, #0x27 + b _080DA7E2 + .align 2, 0 +_080DA788: .4byte 0x02039AA0 +_080DA78C: + ldr r0, _080DA7A0 + lsls r2, r2, #6 + adds r1, r2, r0 + adds r3, r1, #0 + adds r3, #0x27 + ldrb r5, [r3] + subs r3, #1 + ldrb r4, [r3] + adds r1, #0x28 + b _080DA7E2 + .align 2, 0 +_080DA7A0: .4byte 0x02039AA0 +_080DA7A4: + ldr r1, _080DA7B0 + lsls r2, r2, #6 + adds r3, r2, r1 + adds r0, r3, #0 + adds r0, #0x28 + b _080DA7BE + .align 2, 0 +_080DA7B0: .4byte 0x02039AA0 +_080DA7B4: + ldr r1, _080DA7CC + lsls r2, r2, #6 + adds r3, r2, r1 + adds r0, r3, #0 + adds r0, #0x29 +_080DA7BE: + ldrb r5, [r0] + subs r0, #1 + ldrb r4, [r0] + adds r0, #2 + ldrb r3, [r0] + adds r0, r1, #0 + b _080DA7E4 + .align 2, 0 +_080DA7CC: .4byte 0x02039AA0 +_080DA7D0: + ldr r0, _080DA7FC + lsls r2, r2, #6 + adds r1, r2, r0 + adds r3, r1, #0 + adds r3, #0x2a + ldrb r5, [r3] + subs r3, #1 + ldrb r4, [r3] + adds r1, #0x26 +_080DA7E2: + ldrb r3, [r1] +_080DA7E4: + adds r1, r2, r0 + adds r1, #0x2b + adds r0, r4, r3 + ldrb r1, [r1] + adds r0, r0, r1 + asrs r0, r0, #1 + adds r0, r5, r0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080DA7FC: .4byte 0x02039AA0 + thumb_func_end sub_080DA744 + + thumb_func_start sub_080DA800 +sub_080DA800: @ 0x080DA800 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r4, #0 + ldr r5, _080DA824 +_080DA80A: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + adds r1, r6, #0 + bl sub_080DA744 + strh r0, [r5] + adds r5, #2 + adds r4, #1 + cmp r4, #3 + ble _080DA80A + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080DA824: .4byte 0x02039BA0 + thumb_func_end sub_080DA800 + + thumb_func_start sub_080DA828 +sub_080DA828: @ 0x080DA828 + push {r4, r5, lr} + ldr r0, _080DA870 + bl LoadCompressedSpriteSheet + ldr r0, _080DA874 + movs r1, #0x88 + lsls r1, r1, #1 + movs r2, #0x20 + bl LoadCompressedPalette + ldr r0, _080DA878 + movs r1, #0x70 + movs r2, #0x24 + movs r3, #0x1e + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _080DA87C + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r5, r2, r4 + ldrb r3, [r5, #5] + movs r1, #0xf + ands r1, r3 + movs r3, #0x10 + orrs r1, r3 + strb r1, [r5, #5] + adds r4, #0x1c + adds r2, r2, r4 + ldr r1, _080DA880 + str r1, [r2] + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080DA870: .4byte 0x08560B64 +_080DA874: .4byte 0x08C1C700 +_080DA878: .4byte 0x08560B4C +_080DA87C: .4byte 0x020205AC +_080DA880: .4byte 0x08007141 + thumb_func_end sub_080DA828 + + thumb_func_start sub_080DA884 +sub_080DA884: @ 0x080DA884 + push {lr} + ldr r0, _080DA8C8 + bl LoadCompressedSpriteSheet + ldr r0, _080DA8CC + bl LoadCompressedSpritePalette + ldr r0, _080DA8D0 + movs r1, #0x60 + movs r2, #0xa + movs r3, #0x1d + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080DA8D4 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r1 + movs r1, #0x3e + adds r1, r1, r2 + mov ip, r1 + ldrb r1, [r1] + movs r3, #4 + orrs r1, r3 + mov r3, ip + strb r1, [r3] + ldrh r1, [r2, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x16 + strh r1, [r2, #0x2e] + pop {r1} + bx r1 + .align 2, 0 +_080DA8C8: .4byte 0x08560B6C +_080DA8CC: .4byte 0x08560B74 +_080DA8D0: .4byte 0x08560B7C +_080DA8D4: .4byte 0x020205AC + thumb_func_end sub_080DA884 + + thumb_func_start sub_080DA8D8 +sub_080DA8D8: @ 0x080DA8D8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r1, #0 + adds r6, r2, #0 + adds r4, r3, #0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r5, #0 + bl SanitizeSpecies + adds r5, r0, #0 + ldr r0, _080DA910 + ldrb r0, [r0] + cmp r4, r0 + bne _080DA91C + lsls r0, r5, #3 + ldr r1, _080DA914 + adds r0, r0, r1 + ldr r1, _080DA918 + ldr r1, [r1] + ldr r1, [r1, #4] + adds r2, r5, #0 + adds r3, r6, #0 + bl HandleLoadSpecialPokePic_2 + b _080DA930 + .align 2, 0 +_080DA910: .4byte 0x02039BC5 +_080DA914: .4byte 0x082D6148 +_080DA918: .4byte 0x02024178 +_080DA91C: + lsls r0, r5, #3 + ldr r1, _080DA9C4 + adds r0, r0, r1 + ldr r1, _080DA9C8 + ldr r1, [r1] + ldr r1, [r1, #4] + adds r2, r5, #0 + adds r3, r6, #0 + bl HandleLoadSpecialPokePic_DontHandleDeoxys +_080DA930: + adds r0, r5, #0 + adds r1, r7, #0 + adds r2, r6, #0 + bl GetMonSpritePalFromSpeciesAndPersonality + movs r1, #0x90 + lsls r1, r1, #1 + movs r2, #0x20 + bl LoadCompressedPalette + adds r0, r5, #0 + movs r1, #0 + bl SetMultiuseSpriteTemplateToPokemon + ldr r4, _080DA9CC + movs r0, #2 + adds r1, r5, #0 + movs r2, #0 + bl GetBattlerSpriteFinal_Y + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + movs r1, #0x70 + movs r3, #0x1e + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _080DA9D0 + mov r8, r0 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r6, r0, #2 + mov r0, r8 + adds r4, r6, r0 + ldrb r1, [r4, #5] + movs r0, #0xf + ands r0, r1 + movs r1, #0x20 + orrs r0, r1 + movs r1, #0xd + rsbs r1, r1, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r4, #5] + movs r0, #2 + bl GetBattlerSpriteSubpriority + adds r1, r4, #0 + adds r1, #0x43 + strb r0, [r1] + mov r0, r8 + adds r0, #0x1c + adds r0, r6, r0 + ldr r1, _080DA9D4 + str r1, [r0] + ldrb r0, [r4, #5] + lsrs r0, r0, #4 + strh r0, [r4, #0x2e] + strh r5, [r4, #0x32] + adds r0, r5, #0 + bl IsSpeciesNotUnown + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080DA9DC + mov r0, r8 + adds r0, #0x10 + adds r0, r6, r0 + ldr r1, _080DA9D8 + b _080DA9E4 + .align 2, 0 +_080DA9C4: .4byte 0x082D6148 +_080DA9C8: .4byte 0x02024178 +_080DA9CC: .4byte 0x02024640 +_080DA9D0: .4byte 0x020205AC +_080DA9D4: .4byte 0x08007141 +_080DA9D8: .4byte 0x082D2F50 +_080DA9DC: + mov r0, r8 + adds r0, #0x10 + adds r0, r6, r0 + ldr r1, _080DAA04 +_080DA9E4: + str r1, [r0] + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + ldr r1, _080DAA08 + adds r0, r0, r1 + movs r1, #0 + bl StartSpriteAffineAnim + adds r0, r7, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080DAA04: .4byte 0x082D2F24 +_080DAA08: .4byte 0x020205AC + thumb_func_end sub_080DA8D8 + + thumb_func_start IsSpeciesNotUnown +IsSpeciesNotUnown: @ 0x080DAA0C + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xc9 + beq _080DAA1A + movs r0, #1 + b _080DAA1C +_080DAA1A: + movs r0, #0 +_080DAA1C: + pop {r1} + bx r1 + thumb_func_end IsSpeciesNotUnown + + thumb_func_start SwapMoveDescAndContestTilemaps +SwapMoveDescAndContestTilemaps: @ 0x080DAA20 + push {r4, r5, r6, lr} + ldr r5, _080DAA4C + ldr r0, [r5] + ldr r0, [r0, #0x24] + movs r4, #0xa0 + lsls r4, r4, #3 + adds r1, r0, r4 + movs r6, #0xa0 + lsls r6, r6, #1 + adds r2, r6, #0 + bl CpuSet + ldr r0, [r5] + ldr r0, [r0, #0x2c] + adds r4, r0, r4 + adds r1, r4, #0 + adds r2, r6, #0 + bl CpuSet + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080DAA4C: .4byte 0x02039BD4 + thumb_func_end SwapMoveDescAndContestTilemaps + + thumb_func_start sub_080DAA50 +sub_080DAA50: @ 0x080DAA50 + push {lr} + lsls r0, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + ldr r2, _080DAA78 + ldr r1, _080DAA7C + lsrs r0, r0, #0xd + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #8 + bhi _080DAAB8 + lsls r0, r0, #2 + ldr r1, _080DAA80 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080DAA78: .4byte 0x08566AE4 +_080DAA7C: .4byte 0x08565FCC +_080DAA80: .4byte 0x080DAA84 +_080DAA84: @ jump table + .4byte _080DAAA8 @ case 0 + .4byte _080DAAA8 @ case 1 + .4byte _080DAAB0 @ case 2 + .4byte _080DAAB0 @ case 3 + .4byte _080DAAB8 @ case 4 + .4byte _080DAAB8 @ case 5 + .4byte _080DAAB8 @ case 6 + .4byte _080DAAB8 @ case 7 + .4byte _080DAAA8 @ case 8 +_080DAAA8: + ldr r0, _080DAAAC + b _080DAABA + .align 2, 0 +_080DAAAC: .4byte 0x00009082 +_080DAAB0: + ldr r0, _080DAAB4 + b _080DAABA + .align 2, 0 +_080DAAB4: .4byte 0x00009088 +_080DAAB8: + ldr r0, _080DAAD0 +_080DAABA: + lsls r1, r3, #0xc + movs r2, #0x90 + lsls r2, r2, #8 + adds r1, r1, r2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 +_080DAAD0: .4byte 0x00009086 + thumb_func_end sub_080DAA50 + + thumb_func_start sub_080DAAD4 +sub_080DAAD4: @ 0x080DAAD4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + ldr r1, _080DAB54 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r0, [r0, #1] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1d + ldr r7, _080DAB58 + cmp r0, #0 + beq _080DAB08 + adds r7, #5 + cmp r0, #1 + beq _080DAB08 + adds r7, #5 + cmp r0, #2 + beq _080DAB08 + adds r7, #0x40 + cmp r0, #3 + bne _080DAB08 + subs r7, #0x20 +_080DAB08: + movs r6, #5 + str r6, [sp] + movs r4, #1 + str r4, [sp, #4] + movs r5, #0x11 + str r5, [sp, #8] + str r4, [sp, #0xc] + movs r0, #0 + adds r1, r7, #0 + movs r2, #0xb + movs r3, #0x1f + bl ContestBG_FillBoxWithIncrementingTile + adds r1, r7, #0 + adds r1, #0x10 + str r6, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + str r4, [sp, #0xc] + movs r0, #0 + movs r2, #0xb + movs r3, #0x20 + bl ContestBG_FillBoxWithIncrementingTile + ldr r2, _080DAB5C + ldr r0, _080DAB54 + mov r3, r8 + lsls r1, r3, #3 + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r2, r0, r2 + ldrb r0, [r2, #1] + adds r7, r1, #0 + cmp r0, #0xff + bne _080DAB60 + movs r6, #0 + b _080DAB6C + .align 2, 0 +_080DAB54: .4byte 0x08565FCC +_080DAB58: .4byte 0x00004040 +_080DAB5C: .4byte 0x08566AE4 +_080DAB60: + ldrb r0, [r2, #1] + movs r1, #0xa + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_080DAB6C: + cmp r6, #8 + bls _080DAB72 + movs r6, #8 +_080DAB72: + ldr r1, _080DABB4 + movs r0, #8 + str r0, [sp] + movs r5, #1 + str r5, [sp, #4] + movs r4, #0x11 + str r4, [sp, #8] + movs r0, #0 + movs r2, #0x15 + movs r3, #0x1f + bl ContestBG_FillBoxWithTile + ldr r1, _080DABB8 + str r6, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #0 + movs r2, #0x15 + movs r3, #0x1f + bl ContestBG_FillBoxWithTile + ldr r1, _080DABBC + ldr r0, _080DABC0 + adds r0, r7, r0 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r1, r0, r1 + ldrb r0, [r1, #2] + cmp r0, #0xff + bne _080DABC4 + movs r6, #0 + b _080DABD0 + .align 2, 0 +_080DABB4: .4byte 0x00005035 +_080DABB8: .4byte 0x00005012 +_080DABBC: .4byte 0x08566AE4 +_080DABC0: .4byte 0x08565FCC +_080DABC4: + ldrb r0, [r1, #2] + movs r1, #0xa + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_080DABD0: + cmp r6, #8 + bls _080DABD6 + movs r6, #8 +_080DABD6: + ldr r1, _080DAC30 + movs r0, #8 + str r0, [sp] + movs r5, #1 + str r5, [sp, #4] + movs r4, #0x11 + str r4, [sp, #8] + movs r0, #0 + movs r2, #0x15 + movs r3, #0x20 + bl ContestBG_FillBoxWithTile + ldr r1, _080DAC34 + str r6, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #0 + movs r2, #0x15 + movs r3, #0x20 + bl ContestBG_FillBoxWithTile + movs r0, #0xe + movs r1, #0 + bl FillWindowPixelBuffer + ldr r1, _080DAC38 + ldr r0, _080DAC3C + adds r0, r7, r0 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + movs r0, #0xe + bl Contest_PrintTextToBg0WindowStd + ldr r1, _080DAC40 + movs r0, #0xd + bl Contest_PrintTextToBg0WindowStd + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DAC30: .4byte 0x00005036 +_080DAC34: .4byte 0x00005014 +_080DAC38: .4byte 0x08560BB4 +_080DAC3C: .4byte 0x08565FCC +_080DAC40: .4byte 0x085C93FF + thumb_func_end sub_080DAAD4 + + thumb_func_start sub_080DAC44 +sub_080DAC44: @ 0x080DAC44 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x10 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + ldr r0, _080DACC0 + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + adds r0, #2 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + adds r0, r4, #0 + bl Contest_IsMonsTurnDisabled + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080DACC4 + cmp r5, #0 + beq _080DACC4 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080DAA50 + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + movs r0, #2 + mov r8, r0 + str r0, [sp] + movs r5, #1 + str r5, [sp, #4] + movs r6, #0x11 + str r6, [sp, #8] + str r5, [sp, #0xc] + movs r0, #0 + adds r1, r4, #0 + movs r2, #0x14 + adds r3, r7, #0 + bl ContestBG_FillBoxWithIncrementingTile + adds r4, #0x10 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r3, r7, #1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r0, r8 + str r0, [sp] + str r5, [sp, #4] + str r6, [sp, #8] + str r5, [sp, #0xc] + movs r0, #0 + adds r1, r4, #0 + movs r2, #0x14 + bl ContestBG_FillBoxWithIncrementingTile + b _080DACDA + .align 2, 0 +_080DACC0: .4byte 0x02039BC6 +_080DACC4: + movs r0, #2 + str r0, [sp] + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #0x14 + adds r3, r7, #0 + bl ContestBG_FillBoxWithTile +_080DACDA: + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080DAC44 + + thumb_func_start sub_080DACE8 +sub_080DACE8: @ 0x080DACE8 + push {r4, r5, lr} + movs r4, #0 + movs r5, #0 +_080DACEE: + ldr r0, _080DAD10 + ldr r0, [r0] + ldr r0, [r0, #4] + adds r0, r5, r0 + ldrh r0, [r0, #6] + lsls r1, r4, #0x18 + lsrs r1, r1, #0x18 + bl sub_080DAC44 + adds r5, #0x1c + adds r4, #1 + cmp r4, #3 + ble _080DACEE + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080DAD10: .4byte 0x02039BD4 + thumb_func_end sub_080DACE8 + + thumb_func_start sub_080DAD14 +sub_080DAD14: @ 0x080DAD14 + ldr r0, _080DAD18 + bx lr + .align 2, 0 +_080DAD18: .4byte 0x00002034 + thumb_func_end sub_080DAD14 + + thumb_func_start sub_080DAD1C +sub_080DAD1C: @ 0x080DAD1C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + mov sl, r8 + ldr r0, _080DAD54 + mov sb, r0 + ldr r0, [r0] + ldr r1, [r0, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r7, r0, #2 + adds r3, r7, r1 + ldrb r0, [r3, #0x10] + movs r5, #0x30 + ands r5, r0 + cmp r5, #0 + bne _080DAD58 + movs r0, #0 + b _080DADEE + .align 2, 0 +_080DAD54: .4byte 0x02039BD4 +_080DAD58: + ldr r0, _080DADA8 + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + adds r0, #2 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r0, #0xd + ldrsb r0, [r3, r0] + movs r1, #0xa + bl __divsi3 + lsls r0, r0, #0x18 + asrs r4, r0, #0x18 + cmp r5, #0x10 + bne _080DADAC + bl sub_080DAD14 + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #1 + str r0, [sp] + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #0 + movs r2, #0x13 + adds r3, r6, #0 + bl ContestBG_FillBoxWithTile + mov r1, r8 + cmp r1, #0 + beq _080DADEC + movs r0, #0x5b + b _080DADD6 + .align 2, 0 +_080DADA8: .4byte 0x02039BC6 +_080DADAC: + adds r3, r6, r4 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #1 + str r0, [sp] + movs r0, #3 + subs r0, r0, r4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #0x13 + bl ContestBG_FillBoxWithTile + mov r0, sl + cmp r0, #0 + beq _080DADEC + movs r0, #0x26 +_080DADD6: + bl PlaySE + mov r1, sb + ldr r0, [r1] + ldr r1, [r0, #4] + adds r1, r7, r1 + ldrb r2, [r1, #0x10] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #0x10] +_080DADEC: + movs r0, #1 +_080DADEE: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080DAD1C + + thumb_func_start sub_080DAE00 +sub_080DAE00: @ 0x080DAE00 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + movs r7, #0 + movs r0, #1 + mov sl, r0 + movs r1, #0x11 + mov sb, r1 + movs r0, #0 + mov r8, r0 +_080DAE1A: + ldr r0, _080DAEA4 + adds r0, r7, r0 + ldrb r0, [r0] + lsls r4, r0, #2 + adds r4, r4, r0 + adds r4, #2 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl sub_080DAD14 + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + ldr r0, _080DAEA8 + ldr r0, [r0] + ldr r0, [r0, #4] + add r0, r8 + ldrb r0, [r0, #0xd] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #0xa + bl __divsi3 + lsls r0, r0, #0x18 + mov r1, sl + str r1, [sp] + asrs r6, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + mov r0, sb + str r0, [sp, #8] + movs r0, #0 + adds r1, r5, #0 + movs r2, #0x13 + adds r3, r4, #0 + bl ContestBG_FillBoxWithTile + adds r4, r4, r6 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r1, sl + str r1, [sp] + movs r0, #3 + subs r0, r0, r6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + mov r0, sb + str r0, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #0x13 + adds r3, r4, #0 + bl ContestBG_FillBoxWithTile + movs r1, #0x1c + add r8, r1 + adds r7, #1 + cmp r7, #3 + ble _080DAE1A + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DAEA4: .4byte 0x02039BC6 +_080DAEA8: .4byte 0x02039BD4 + thumb_func_end sub_080DAE00 + + thumb_func_start sub_080DAEAC +sub_080DAEAC: @ 0x080DAEAC + push {lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r0, #0 + cmp r1, #4 + bhi _080DAEEE + lsls r0, r1, #2 + ldr r1, _080DAEC4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080DAEC4: .4byte 0x080DAEC8 +_080DAEC8: @ jump table + .4byte _080DAEDC @ case 0 + .4byte _080DAEE0 @ case 1 + .4byte _080DAEE4 @ case 2 + .4byte _080DAEE8 @ case 3 + .4byte _080DAEEC @ case 4 +_080DAEDC: + movs r0, #0x80 + b _080DAEEE +_080DAEE0: + movs r0, #0x84 + b _080DAEEE +_080DAEE4: + movs r0, #0x86 + b _080DAEEE +_080DAEE8: + movs r0, #0x88 + b _080DAEEE +_080DAEEC: + movs r0, #0x82 +_080DAEEE: + movs r1, #0x90 + lsls r1, r1, #8 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + thumb_func_end sub_080DAEAC + + thumb_func_start sub_080DAEFC +sub_080DAEFC: @ 0x080DAEFC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + mov sb, r1 + movs r1, #0 + mov r8, r1 + ldr r1, _080DAF44 + adds r1, r0, r1 + ldrb r2, [r1] + lsls r1, r2, #2 + adds r1, r1, r2 + adds r1, #2 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + ldr r1, _080DAF48 + ldr r1, [r1] + ldr r2, [r1, #4] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r2, r1, r2 + ldr r0, [r2, #0x10] + ldr r1, _080DAF4C + ands r0, r1 + cmp r0, #0 + bne _080DAF40 + ldrb r0, [r2, #0xf] + cmp r0, #0 + beq _080DAF50 +_080DAF40: + movs r0, #0 + b _080DAF72 + .align 2, 0 +_080DAF44: .4byte 0x02039BC6 +_080DAF48: .4byte 0x02039BD4 +_080DAF4C: .4byte 0x00FF0003 +_080DAF50: + ldrb r1, [r2, #0xc] + mov r0, sb + ands r0, r1 + cmp r0, #0 + beq _080DAF5E + movs r0, #1 + b _080DAF72 +_080DAF5E: + movs r0, #6 + ands r0, r1 + cmp r0, #0 + bne _080DAF70 + ldrb r1, [r2, #0xb] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080DAF7E +_080DAF70: + movs r0, #2 +_080DAF72: + bl sub_080DAEAC + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + b _080DAF82 +_080DAF7E: + movs r0, #0 + mov sb, r0 +_080DAF82: + mov r1, sb + cmp r1, #0 + beq _080DAFC2 + movs r6, #2 + str r6, [sp] + movs r4, #1 + str r4, [sp, #4] + movs r5, #0x11 + str r5, [sp, #8] + str r4, [sp, #0xc] + movs r0, #0 + mov r1, r8 + movs r2, #0x14 + adds r3, r7, #0 + bl ContestBG_FillBoxWithIncrementingTile + mov r1, r8 + adds r1, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r3, r7, #1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r6, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + str r4, [sp, #0xc] + movs r0, #0 + movs r2, #0x14 + bl ContestBG_FillBoxWithIncrementingTile + b _080DAFD8 +_080DAFC2: + movs r0, #2 + str r0, [sp] + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #0x14 + adds r3, r7, #0 + bl ContestBG_FillBoxWithTile +_080DAFD8: + mov r0, sb + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_080DAEFC + + thumb_func_start sub_080DAFE8 +sub_080DAFE8: @ 0x080DAFE8 + push {r4, lr} + movs r4, #0 +_080DAFEC: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl sub_080DAEFC + adds r4, #1 + cmp r4, #3 + ble _080DAFEC + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_080DAFE8 + + thumb_func_start sub_080DB000 +sub_080DB000: @ 0x080DB000 + push {lr} + movs r0, #8 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #8 + movs r1, #2 + bl CopyWindowToVram + movs r0, #0 + bl Contest_SetBgCopyFlags + pop {r0} + bx r0 + thumb_func_end sub_080DB000 + + thumb_func_start GetChosenMove +GetChosenMove: @ 0x080DB01C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r5, r4, #0 + adds r0, r4, #0 + bl Contest_IsMonsTurnDisabled + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080DB034 + movs r0, #0 + b _080DB06E +_080DB034: + ldr r0, _080DB050 + ldrb r0, [r0] + cmp r4, r0 + beq _080DB058 + adds r0, r4, #0 + bl ContestAI_ResetAI + bl ContestAI_GetActionToUse + lsls r0, r0, #0x18 + ldr r2, _080DB054 + lsrs r0, r0, #0x17 + lsls r1, r4, #6 + b _080DB066 + .align 2, 0 +_080DB050: .4byte 0x02039BC5 +_080DB054: .4byte 0x02039AA0 +_080DB058: + ldr r2, _080DB074 + ldr r0, _080DB078 + ldr r0, [r0] + ldr r0, [r0] + ldrb r0, [r0] + lsls r0, r0, #1 + lsls r1, r5, #6 +_080DB066: + adds r0, r0, r1 + adds r2, #0x1e + adds r0, r0, r2 + ldrh r0, [r0] +_080DB06E: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080DB074: .4byte 0x02039AA0 +_080DB078: .4byte 0x02039BD4 + thumb_func_end GetChosenMove + + thumb_func_start GetAllChosenMoves +GetAllChosenMoves: @ 0x080DB07C + push {r4, r5, lr} + movs r4, #0 + movs r5, #0 +_080DB082: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl GetChosenMove + ldr r1, _080DB0A4 + ldr r1, [r1] + ldr r1, [r1, #4] + adds r1, r5, r1 + strh r0, [r1, #6] + adds r5, #0x1c + adds r4, #1 + cmp r4, #3 + ble _080DB082 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080DB0A4: .4byte 0x02039BD4 + thumb_func_end GetAllChosenMoves + + thumb_func_start RankContestants +RankContestants: @ 0x080DB0A8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #8 + ldr r5, _080DB150 + mov r4, sp + movs r3, #0 + movs r6, #3 +_080DB0BA: + ldr r2, [r5] + ldr r1, [r2, #4] + adds r1, r3, r1 + ldrh r0, [r1, #2] + ldrh r7, [r1, #4] + adds r0, r0, r7 + strh r0, [r1, #4] + ldr r0, [r2, #4] + adds r0, r3, r0 + ldrh r0, [r0, #4] + strh r0, [r4] + adds r4, #2 + adds r3, #0x1c + subs r6, #1 + cmp r6, #0 + bge _080DB0BA + movs r6, #0 +_080DB0DC: + movs r4, #3 + cmp r4, r6 + ble _080DB108 +_080DB0E2: + subs r5, r4, #1 + lsls r0, r5, #1 + mov r1, sp + adds r3, r1, r0 + lsls r0, r4, #1 + adds r2, r1, r0 + ldrh r4, [r3] + movs r7, #0 + ldrsh r1, [r3, r7] + movs r7, #0 + ldrsh r0, [r2, r7] + cmp r1, r0 + bge _080DB102 + ldrh r0, [r2] + strh r4, [r2] + strh r0, [r3] +_080DB102: + adds r4, r5, #0 + cmp r4, r6 + bgt _080DB0E2 +_080DB108: + adds r6, #1 + cmp r6, #2 + ble _080DB0DC + movs r6, #0 + movs r0, #4 + rsbs r0, r0, #0 + mov sb, r0 + ldr r1, _080DB150 + mov r8, r1 + movs r7, #3 + mov ip, r7 +_080DB11E: + movs r4, #0 + lsls r0, r6, #3 + adds r7, r6, #1 + subs r0, r0, r6 + lsls r5, r0, #2 + mov r3, sp +_080DB12A: + mov r1, r8 + ldr r0, [r1] + ldr r0, [r0, #4] + adds r2, r5, r0 + movs r6, #4 + ldrsh r1, [r2, r6] + movs r6, #0 + ldrsh r0, [r3, r6] + cmp r1, r0 + bne _080DB154 + mov r0, ip + ands r4, r0 + ldrb r1, [r2, #0xb] + mov r0, sb + ands r0, r1 + orrs r0, r4 + strb r0, [r2, #0xb] + b _080DB15C + .align 2, 0 +_080DB150: .4byte 0x02039BD4 +_080DB154: + adds r3, #2 + adds r4, #1 + cmp r4, #3 + ble _080DB12A +_080DB15C: + adds r6, r7, #0 + cmp r6, #3 + ble _080DB11E + movs r0, #1 + bl SortContestants + bl ApplyNextTurnOrder + add sp, #8 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RankContestants + + thumb_func_start sub_080DB17C +sub_080DB17C: @ 0x080DB17C + push {r4, r5, lr} + ldr r4, _080DB194 + movs r2, #0 + movs r3, #3 +_080DB184: + ldr r0, [r4] + ldr r0, [r0, #4] + adds r1, r2, r0 + ldrh r0, [r1, #6] + cmp r0, #0 + bne _080DB198 + movs r1, #5 + b _080DB1B6 + .align 2, 0 +_080DB194: .4byte 0x02039BD4 +_080DB198: + movs r5, #2 + ldrsh r0, [r1, r5] + movs r1, #0 + cmp r0, #0 + ble _080DB1B6 + movs r1, #1 + cmp r0, #0x1d + ble _080DB1B6 + movs r1, #2 + cmp r0, #0x3b + ble _080DB1B6 + movs r1, #4 + cmp r0, #0x4f + bgt _080DB1B6 + movs r1, #3 +_080DB1B6: + ldr r0, [r4] + ldr r0, [r0, #4] + adds r0, r2, r0 + strb r1, [r0, #0x1a] + adds r2, #0x1c + subs r3, #1 + cmp r3, #0 + bge _080DB184 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_080DB17C + + thumb_func_start ContestantCanUseTurn +ContestantCanUseTurn: @ 0x080DB1CC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080DB1F8 + ldr r1, [r1] + ldr r2, [r1, #4] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r2, r1, r2 + ldrb r1, [r2, #0xc] + movs r0, #6 + ands r0, r1 + cmp r0, #0 + bne _080DB1F4 + ldrb r1, [r2, #0xb] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080DB1FC +_080DB1F4: + movs r0, #0 + b _080DB1FE + .align 2, 0 +_080DB1F8: .4byte 0x02039BD4 +_080DB1FC: + movs r0, #1 +_080DB1FE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ContestantCanUseTurn + + thumb_func_start sub_080DB204 +sub_080DB204: @ 0x080DB204 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r5, _080DB408 + movs r0, #0 + mov r8, r0 + movs r1, #7 + rsbs r1, r1, #0 + mov sl, r1 + movs r0, #2 + rsbs r0, r0, #0 + mov sb, r0 + movs r4, #0 + movs r6, #3 +_080DB224: + ldr r1, [r5] + ldr r0, [r1, #4] + adds r0, r4, r0 + movs r2, #0 + strh r2, [r0, #2] + ldr r0, [r1, #4] + adds r0, r4, r0 + strh r2, [r0] + ldr r0, [r1, #4] + adds r0, r4, r0 + mov r1, r8 + strb r1, [r0, #0x12] + ldr r0, [r5] + ldr r0, [r0, #4] + adds r3, r4, r0 + ldrb r2, [r3, #0xc] + movs r0, #6 + ands r0, r2 + cmp r0, #0 + beq _080DB260 + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1e + subs r0, #1 + movs r1, #3 + ands r0, r1 + lsls r0, r0, #1 + mov r1, sl + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0xc] +_080DB260: + ldr r0, [r5] + ldr r0, [r0, #4] + adds r0, r4, r0 + mov r1, r8 + strb r1, [r0, #0xe] + ldr r0, [r5] + ldr r1, [r0, #4] + adds r1, r4, r1 + ldrb r2, [r1, #0x10] + mov r0, sb + ands r0, r2 + strb r0, [r1, #0x10] + ldr r0, [r5] + ldr r0, [r0, #4] + adds r0, r4, r0 + mov r1, r8 + strb r1, [r0, #0xf] + ldr r0, [r5] + ldr r1, [r0, #4] + adds r1, r4, r1 + ldrb r2, [r1, #0x10] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #0x10] + ldr r0, [r5] + ldr r1, [r0, #4] + adds r1, r4, r1 + ldrb r2, [r1, #0x10] + movs r7, #5 + rsbs r7, r7, #0 + adds r0, r7, #0 + ands r0, r2 + strb r0, [r1, #0x10] + ldr r0, [r5] + ldr r1, [r0, #4] + adds r1, r4, r1 + ldrb r2, [r1, #0x10] + movs r0, #9 + rsbs r0, r0, #0 + mov ip, r0 + ands r0, r2 + strb r0, [r1, #0x10] + ldr r0, [r5] + ldr r1, [r0, #4] + adds r1, r4, r1 + ldrb r2, [r1, #0xc] + mov r0, sb + ands r0, r2 + strb r0, [r1, #0xc] + ldr r0, [r5] + ldr r0, [r0, #4] + adds r0, r4, r0 + movs r1, #0xff + strb r1, [r0, #0x13] + ldr r0, [r5] + ldr r0, [r0, #4] + adds r0, r4, r0 + movs r1, #1 + rsbs r1, r1, #0 + strb r1, [r0, #0x14] + ldr r0, [r5] + ldr r1, [r0, #4] + adds r1, r4, r1 + ldrb r2, [r1, #0x10] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #0x10] + ldr r0, [r5] + ldr r2, [r0, #4] + adds r2, r4, r2 + ldrb r3, [r2, #0x15] + lsls r1, r3, #0x1f + lsrs r1, r1, #0x1f + lsls r1, r1, #2 + adds r0, r7, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #0x15] + ldr r0, [r5] + ldr r1, [r0, #4] + adds r1, r4, r1 + ldrb r2, [r1, #0x15] + mov r0, sb + ands r0, r2 + strb r0, [r1, #0x15] + ldr r0, [r5] + ldr r1, [r0, #4] + adds r1, r4, r1 + ldrb r2, [r1, #0x11] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #0x11] + ldr r0, [r5] + ldr r1, [r0, #4] + adds r1, r4, r1 + ldrb r2, [r1, #0x11] + movs r0, #0x21 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #0x11] + ldr r0, [r5] + ldr r0, [r0, #4] + adds r2, r4, r0 + ldrb r1, [r2, #0x11] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080DB358 + ldrb r1, [r2, #0xc] + mov r0, sl + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #0xc] + ldr r0, [r5] + ldr r1, [r0, #4] + adds r1, r4, r1 + ldrb r2, [r1, #0x11] + adds r0, r7, #0 + ands r0, r2 + strb r0, [r1, #0x11] +_080DB358: + ldr r0, [r5] + ldr r0, [r0, #4] + adds r2, r4, r0 + ldrb r1, [r2, #0x11] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080DB37E + ldrb r0, [r2, #0xb] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0xb] + ldr r0, [r5] + ldr r1, [r0, #4] + adds r1, r4, r1 + ldrb r2, [r1, #0x11] + mov r0, ip + ands r0, r2 + strb r0, [r1, #0x11] +_080DB37E: + ldr r0, [r5] + ldr r1, [r0, #4] + adds r1, r4, r1 + ldrb r2, [r1, #0x11] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #0x11] + adds r4, #0x1c + subs r6, #1 + cmp r6, #0 + blt _080DB398 + b _080DB224 +_080DB398: + movs r6, #0 + ldr r5, _080DB408 + movs r7, #0 + movs r4, #0 +_080DB3A0: + ldr r3, [r5] + ldr r0, [r3, #4] + adds r0, r4, r0 + ldrh r1, [r0, #6] + strh r1, [r0, #8] + ldr r2, [r3] + lsls r1, r6, #1 + ldrb r0, [r2, #1] + lsls r0, r0, #3 + adds r1, r1, r0 + adds r2, #0x1c + adds r2, r2, r1 + ldr r0, [r3, #4] + adds r0, r4, r0 + ldrh r0, [r0, #6] + strh r0, [r2] + ldr r0, [r3, #4] + adds r0, r4, r0 + ldrh r0, [r0, #6] + bl Contest_GetMoveExcitement + ldr r1, [r5] + ldr r2, [r1] + ldrb r1, [r2, #1] + lsls r1, r1, #2 + adds r1, r6, r1 + adds r2, #0x44 + adds r2, r2, r1 + strb r0, [r2] + ldr r0, [r5] + ldr r0, [r0, #4] + adds r0, r4, r0 + strh r7, [r0, #6] + adds r4, #0x1c + adds r6, #1 + cmp r6, #3 + ble _080DB3A0 + ldr r0, _080DB408 + ldr r0, [r0] + ldr r2, [r0, #0x10] + ldrb r1, [r2, #1] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #1] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DB408: .4byte 0x02039BD4 + thumb_func_end sub_080DB204 + + thumb_func_start Contest_IsMonsTurnDisabled +Contest_IsMonsTurnDisabled: @ 0x080DB40C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080DB438 + ldr r1, [r1] + ldr r2, [r1, #4] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r2, r1, r2 + ldrb r1, [r2, #0xc] + movs r0, #6 + ands r0, r1 + cmp r0, #0 + bne _080DB434 + ldrb r1, [r2, #0xb] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080DB43C +_080DB434: + movs r0, #1 + b _080DB43E + .align 2, 0 +_080DB438: .4byte 0x02039BD4 +_080DB43C: + movs r0, #0 +_080DB43E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end Contest_IsMonsTurnDisabled + + thumb_func_start sub_080DB444 +sub_080DB444: @ 0x080DB444 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl sub_080DB498 + ldr r1, _080DB470 + lsls r4, r4, #1 + adds r1, r4, r1 + strh r0, [r1] + ldr r2, _080DB474 + adds r2, r4, r2 + ldr r1, _080DB478 + adds r4, r4, r1 + ldrh r4, [r4] + adds r0, r0, r4 + strh r0, [r2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DB470: .4byte 0x02039BB8 +_080DB474: .4byte 0x02039BA8 +_080DB478: .4byte 0x02039BA0 + thumb_func_end sub_080DB444 + + thumb_func_start sub_080DB47C +sub_080DB47C: @ 0x080DB47C + push {r4, lr} + movs r4, #0 +_080DB480: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl sub_080DB444 + adds r4, #1 + cmp r4, #3 + ble _080DB480 + bl DetermineFinalStandings + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_080DB47C + + thumb_func_start sub_080DB498 +sub_080DB498: @ 0x080DB498 + lsls r0, r0, #0x18 + ldr r1, _080DB4AC + lsrs r0, r0, #0x17 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + lsls r0, r0, #0x11 + asrs r0, r0, #0x10 + bx lr + .align 2, 0 +_080DB4AC: .4byte 0x02039BB0 + thumb_func_end sub_080DB498 + + thumb_func_start DetermineFinalStandings +DetermineFinalStandings: @ 0x080DB4B0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x70 + mov r0, sp + movs r1, #0 + movs r2, #8 + bl memset + movs r0, #0 + mov sb, r0 + mov r1, sp + adds r1, #8 + str r1, [sp, #0x64] + mov r3, sp + adds r3, #0xc + str r3, [sp, #0x68] + mov r6, sp + adds r6, #0x14 + str r6, [sp, #0x6c] + mov r4, sp +_080DB4DE: + bl Random + strh r0, [r4] + movs r2, #0 + cmp r2, sb + bge _080DB51C + mov r1, sp + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrh r1, [r1] + cmp r0, r1 + bne _080DB500 + subs r4, #2 + movs r7, #1 + rsbs r7, r7, #0 + add sb, r7 + b _080DB51C +_080DB500: + adds r2, #1 + cmp r2, sb + bge _080DB51C + lsls r0, r2, #1 + mov r3, sp + adds r1, r3, r0 + ldrh r0, [r4] + ldrh r1, [r1] + cmp r0, r1 + bne _080DB500 + subs r4, #2 + movs r6, #1 + rsbs r6, r6, #0 + add sb, r6 +_080DB51C: + adds r4, #2 + movs r7, #1 + add sb, r7 + mov r0, sb + cmp r0, #3 + ble _080DB4DE + movs r1, #0 + mov sb, r1 + mov r4, sp + ldr r6, _080DB62C + ldr r2, [sp, #0x64] + ldr r5, _080DB630 + ldr r3, [sp, #0x68] +_080DB536: + mov r7, sb + lsls r1, r7, #4 + movs r7, #0 + ldrsh r0, [r6, r7] + str r0, [r2] + movs r7, #0 + ldrsh r0, [r5, r7] + str r0, [r3] + ldrh r0, [r4] + str r0, [r2, #8] + ldr r0, [sp, #0x6c] + adds r1, r0, r1 + mov r7, sb + str r7, [r1] + adds r4, #2 + adds r6, #2 + adds r2, #0x10 + adds r5, #2 + adds r3, #0x10 + movs r0, #1 + add sb, r0 + mov r1, sb + cmp r1, #3 + ble _080DB536 + movs r3, #0 + mov sb, r3 +_080DB56A: + movs r4, #3 + cmp r4, sb + ble _080DB5F4 + add r7, sp, #0x48 + ldr r6, [sp, #0x68] + str r6, [sp, #0x58] + ldr r0, [sp, #0x64] + adds r0, #8 + str r0, [sp, #0x5c] + ldr r1, [sp, #0x6c] + str r1, [sp, #0x60] +_080DB580: + subs r3, r4, #1 + mov sl, r3 + mov r0, sl + adds r1, r4, #0 + ldr r2, [sp, #0x64] + bl sub_080DB694 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080DB5EE + mov r6, sl + lsls r2, r6, #4 + ldr r0, [sp, #0x64] + adds r3, r0, r2 + ldr r0, [r3] + str r0, [sp, #0x48] + ldr r1, [sp, #0x58] + adds r6, r1, r2 + ldr r0, [r6] + str r0, [r7, #4] + ldr r0, [sp, #0x5c] + adds r0, r0, r2 + mov r8, r0 + ldr r0, [r0] + str r0, [r7, #8] + ldr r1, [sp, #0x60] + adds r2, r1, r2 + ldr r0, [r2] + str r0, [r7, #0xc] + lsls r1, r4, #4 + ldr r0, [sp, #0x64] + adds r5, r0, r1 + ldr r0, [r5] + str r0, [r3] + ldr r3, [sp, #0x58] + adds r4, r3, r1 + ldr r0, [r4] + str r0, [r6] + ldr r6, [sp, #0x5c] + adds r3, r6, r1 + ldr r0, [r3] + mov r6, r8 + str r0, [r6] + ldr r0, [sp, #0x60] + adds r1, r0, r1 + ldr r0, [r1] + str r0, [r2] + ldr r0, [sp, #0x48] + str r0, [r5] + ldr r0, [r7, #4] + str r0, [r4] + ldr r0, [r7, #8] + str r0, [r3] + ldr r0, [r7, #0xc] + str r0, [r1] +_080DB5EE: + mov r4, sl + cmp r4, sb + bgt _080DB580 +_080DB5F4: + movs r1, #1 + add sb, r1 + mov r3, sb + cmp r3, #2 + ble _080DB56A + movs r6, #0 + mov sb, r6 + ldr r2, _080DB634 + ldr r1, [sp, #0x6c] +_080DB606: + ldr r0, [r1] + adds r0, r0, r2 + mov r7, sb + strb r7, [r0] + adds r1, #0x10 + movs r0, #1 + add sb, r0 + mov r3, sb + cmp r3, #3 + ble _080DB606 + add sp, #0x70 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DB62C: .4byte 0x02039BA8 +_080DB630: .4byte 0x02039BA0 +_080DB634: .4byte 0x02039BC0 + thumb_func_end DetermineFinalStandings + + thumb_func_start SaveLinkContestResults +SaveLinkContestResults: @ 0x080DB638 + push {lr} + ldr r0, _080DB678 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080DB672 + ldr r0, _080DB67C + ldr r2, [r0] + ldr r1, _080DB680 + ldr r0, _080DB684 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #1 + ldr r0, _080DB688 + ldrh r0, [r0] + lsls r0, r0, #3 + adds r1, r1, r0 + ldr r0, _080DB68C + adds r2, r2, r0 + adds r2, r2, r1 + ldrh r0, [r2] + adds r0, #1 + ldr r1, _080DB690 + cmp r0, r1 + ble _080DB670 + adds r0, r1, #0 +_080DB670: + strh r0, [r2] +_080DB672: + pop {r0} + bx r0 + .align 2, 0 +_080DB678: .4byte 0x02039BCA +_080DB67C: .4byte 0x03005AF0 +_080DB680: .4byte 0x02039BC0 +_080DB684: .4byte 0x02039BC5 +_080DB688: .4byte 0x02039BCC +_080DB68C: .4byte 0x00000624 +_080DB690: .4byte 0x0000270F + thumb_func_end SaveLinkContestResults + + thumb_func_start sub_080DB694 +sub_080DB694: @ 0x080DB694 + push {lr} + lsls r0, r0, #4 + adds r0, r0, r2 + lsls r1, r1, #4 + adds r3, r1, r2 + ldr r2, [r0] + ldr r1, [r3] + cmp r2, r1 + blt _080DB6C4 + cmp r2, r1 + bgt _080DB6B6 + ldr r2, [r0, #4] + ldr r1, [r3, #4] + cmp r2, r1 + blt _080DB6C4 + cmp r2, r1 + ble _080DB6BA +_080DB6B6: + movs r2, #0 + b _080DB6C6 +_080DB6BA: + ldr r1, [r0, #8] + ldr r0, [r3, #8] + movs r2, #0 + cmp r1, r0 + bge _080DB6C6 +_080DB6C4: + movs r2, #1 +_080DB6C6: + adds r0, r2, #0 + pop {r1} + bx r1 + thumb_func_end sub_080DB694 + + thumb_func_start ContestPrintLinkStandby +ContestPrintLinkStandby: @ 0x080DB6CC + push {lr} + ldr r0, _080DB6E8 + movs r1, #0 + strh r1, [r0] + ldr r0, _080DB6EC + strh r1, [r0] + bl sub_080DB000 + ldr r0, _080DB6F0 + movs r1, #0 + bl Contest_StartTextPrinter + pop {r0} + bx r0 + .align 2, 0 +_080DB6E8: .4byte 0x02022ACA +_080DB6EC: .4byte 0x02022AD2 +_080DB6F0: .4byte 0x0824C140 + thumb_func_end ContestPrintLinkStandby + + thumb_func_start FillContestantWindowBgs +FillContestantWindowBgs: @ 0x080DB6F4 + push {r4, r5, lr} + sub sp, #0xc + movs r5, #0x80 + lsls r5, r5, #0x12 + movs r4, #3 +_080DB6FE: + lsrs r3, r5, #0x18 + movs r0, #8 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #0x16 + bl ContestBG_FillBoxWithTile + movs r0, #0xa0 + lsls r0, r0, #0x13 + adds r5, r5, r0 + subs r4, #1 + cmp r4, #0 + bge _080DB6FE + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end FillContestantWindowBgs + + thumb_func_start sub_080DB72C +sub_080DB72C: @ 0x080DB72C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080DB750 + cmp r0, #0 + beq _080DB746 + ldr r1, _080DB754 + cmp r0, #1 + beq _080DB746 + ldr r1, _080DB758 + cmp r0, #2 + bne _080DB746 + ldr r1, _080DB75C +_080DB746: + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 +_080DB750: .4byte 0x00005011 +_080DB754: .4byte 0x00006011 +_080DB758: .4byte 0x00008011 +_080DB75C: .4byte 0x00007011 + thumb_func_end sub_080DB72C + + thumb_func_start sub_080DB760 +sub_080DB760: @ 0x080DB760 + push {lr} + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0xa + bl __divsi3 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + asrs r2, r0, #0x18 + cmp r2, #0x10 + ble _080DB77A + movs r1, #0x10 + b _080DB784 +_080DB77A: + movs r0, #0x10 + rsbs r0, r0, #0 + cmp r2, r0 + bge _080DB784 + movs r1, #0xf0 +_080DB784: + lsls r0, r1, #0x18 + asrs r0, r0, #0x18 + pop {r1} + bx r1 + thumb_func_end sub_080DB760 + + thumb_func_start sub_080DB78C +sub_080DB78C: @ 0x080DB78C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + adds r6, r1, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + ldr r0, _080DB820 + ldr r0, [r0] + ldr r0, [r0, #0x14] + lsls r1, r2, #2 + adds r1, r1, r0 + ldrb r0, [r1, #2] + movs r2, #4 + orrs r0, r2 + strb r0, [r1, #2] + ldr r0, _080DB824 + movs r1, #0x14 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + adds r0, r5, #0 + bl sub_080DB760 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r6, r6, #0x10 + asrs r6, r6, #0x10 + adds r5, r5, r6 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + adds r0, r5, #0 + bl sub_080DB760 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + subs r0, r0, r4 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + mov r0, r8 + bl sub_080DB72C + ldr r2, _080DB828 + lsls r3, r7, #2 + adds r0, r3, r7 + lsls r0, r0, #3 + adds r1, r0, r2 + adds r0, r4, #0 + cmp r4, #0 + bge _080DB804 + rsbs r0, r4, #0 +_080DB804: + strh r0, [r1, #8] + lsls r0, r5, #0x18 + asrs r0, r0, #0x18 + strh r0, [r1, #0xa] + cmp r4, #0 + bgt _080DB818 + cmp r4, #0 + bne _080DB82C + cmp r0, #0 + ble _080DB82C +_080DB818: + movs r0, #1 + strh r0, [r1, #0xc] + b _080DB83A + .align 2, 0 +_080DB820: .4byte 0x02039BD4 +_080DB824: .4byte 0x080DB859 +_080DB828: .4byte 0x03005B60 +_080DB82C: + ldr r2, _080DB850 + lsls r3, r7, #2 + adds r0, r3, r7 + lsls r0, r0, #3 + adds r0, r0, r2 + ldr r1, _080DB854 + strh r1, [r0, #0xc] +_080DB83A: + adds r0, r3, r7 + lsls r0, r0, #3 + adds r0, r0, r2 + mov r1, r8 + strh r1, [r0, #0xe] + adds r0, r7, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080DB850: .4byte 0x03005B60 +_080DB854: .4byte 0x0000FFFF + thumb_func_end sub_080DB78C + + thumb_func_start sub_080DB858 +sub_080DB858: @ 0x080DB858 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r1, _080DB8B8 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrb r0, [r4, #0xe] + mov sb, r0 + ldrh r3, [r4, #8] + ldrh r1, [r4, #0xa] + ldrh r0, [r4, #0x1c] + adds r0, #1 + strh r0, [r4, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xe + bgt _080DB88A + b _080DBA0C +_080DB88A: + movs r0, #0 + strh r0, [r4, #0x1c] + ldrh r2, [r4, #0xa] + movs r5, #0xa + ldrsh r0, [r4, r5] + cmp r0, #0 + bne _080DB8C0 + adds r0, r7, #0 + bl DestroyTask + ldr r0, _080DB8BC + ldr r0, [r0] + ldr r0, [r0, #0x14] + mov r2, sb + lsls r1, r2, #2 + adds r1, r1, r0 + ldrb r2, [r1, #2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #2] + b _080DBA0C + .align 2, 0 +_080DB8B8: .4byte 0x03005B60 +_080DB8BC: .4byte 0x02039BD4 +_080DB8C0: + cmp r3, #0 + bne _080DB908 + lsls r0, r1, #0x10 + mov r8, r0 + cmp r0, #0 + bge _080DB8DE + mov r0, sb + bl sub_080DB72C + adds r0, #2 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldrh r0, [r4, #0xa] + adds r0, #1 + b _080DB8EC +_080DB8DE: + mov r0, sb + bl sub_080DB72C + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldrh r0, [r4, #0xa] + subs r0, #1 +_080DB8EC: + strh r0, [r4, #0xa] + ldr r1, _080DB904 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #8] + adds r2, r1, #1 + strh r2, [r0, #8] + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + b _080DB974 + .align 2, 0 +_080DB904: .4byte 0x03005B60 +_080DB908: + movs r3, #0xc + ldrsh r0, [r4, r3] + cmp r0, #0 + bge _080DB942 + lsls r0, r1, #0x10 + mov r8, r0 + cmp r0, #0 + bge _080DB930 + ldrh r0, [r4, #8] + adds r1, r0, #1 + strh r1, [r4, #8] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r2, #1 + strh r0, [r4, #0xa] + mov r0, sb + bl sub_080DB72C + adds r0, #2 + b _080DB970 +_080DB930: + ldrh r0, [r4, #8] + subs r0, #1 + strh r0, [r4, #8] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r6, #0 + subs r0, r2, #1 + strh r0, [r4, #0xa] + b _080DB974 +_080DB942: + lsls r0, r1, #0x10 + mov r8, r0 + cmp r0, #0 + bge _080DB95C + ldrh r0, [r4, #8] + subs r0, #1 + strh r0, [r4, #8] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r6, #0 + adds r0, r2, #1 + strh r0, [r4, #0xa] + b _080DB974 +_080DB95C: + ldrh r0, [r4, #8] + adds r1, r0, #1 + strh r1, [r4, #8] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + subs r0, r2, #1 + strh r0, [r4, #0xa] + mov r0, sb + bl sub_080DB72C +_080DB970: + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 +_080DB974: + str r5, [sp, #0xc] + movs r0, #0 + mov sl, r0 + cmp r5, #7 + bls _080DB98A + movs r2, #1 + mov sl, r2 + adds r0, r5, #0 + subs r0, #8 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_080DB98A: + adds r2, r5, #0 + adds r2, #0x16 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r0, _080DB9DC + add r0, sb + ldrb r0, [r0] + lsls r3, r0, #2 + adds r3, r3, r0 + adds r3, #2 + add r3, sl + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #1 + str r0, [sp] + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #0 + adds r1, r6, #0 + bl ContestBG_FillBoxWithTile + mov r3, r8 + cmp r3, #0 + ble _080DB9E8 + movs r0, #0x60 + bl PlaySE + ldr r4, _080DB9E0 + adds r0, r4, #0 + bl m4aMPlayImmInit + ldr r1, _080DB9E4 + ldr r0, [sp, #0xc] + lsls r2, r0, #0x18 + asrs r2, r2, #0x10 + adds r0, r4, #0 + bl m4aMPlayPitchControl + b _080DB9EE + .align 2, 0 +_080DB9DC: .4byte 0x02039BC6 +_080DB9E0: .4byte 0x03007510 +_080DB9E4: .4byte 0x0000FFFF +_080DB9E8: + movs r0, #0x16 + bl PlaySE +_080DB9EE: + mov r2, sl + cmp r2, #0 + bne _080DBA0C + cmp r5, #0 + bne _080DBA0C + cmp r6, #0 + bne _080DBA0C + ldr r0, _080DBA1C + lsls r1, r7, #2 + adds r1, r1, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0xc] + rsbs r0, r0, #0 + strh r0, [r1, #0xc] +_080DBA0C: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DBA1C: .4byte 0x03005B60 + thumb_func_end sub_080DB858 + + thumb_func_start sub_080DBA20 +sub_080DBA20: @ 0x080DBA20 + push {r4, r5, lr} + ldr r0, _080DBA58 + bl LoadSpriteSheet + movs r4, #0 + ldr r5, _080DBA5C +_080DBA2C: + ldr r0, _080DBA60 + adds r0, r4, r0 + ldrb r0, [r0] + adds r0, r0, r5 + ldrb r2, [r0] + ldr r0, _080DBA64 + movs r1, #0xb4 + movs r3, #1 + bl CreateSprite + ldr r1, _080DBA68 + ldr r1, [r1] + ldr r2, [r1, #0x14] + lsls r1, r4, #2 + adds r1, r1, r2 + strb r0, [r1] + adds r4, #1 + cmp r4, #3 + ble _080DBA2C + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080DBA58: .4byte 0x085609D8 +_080DBA5C: .4byte 0x085609D0 +_080DBA60: .4byte 0x02039BC6 +_080DBA64: .4byte 0x08560A34 +_080DBA68: .4byte 0x02039BD4 + thumb_func_end sub_080DBA20 + + thumb_func_start sub_080DBA6C +sub_080DBA6C: @ 0x080DBA6C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r4, _080DBAB0 + ldr r0, [r4] + ldr r2, [r0, #0x14] + lsls r3, r6, #2 + adds r2, r3, r2 + ldrb r0, [r2, #2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #2] + ldr r1, [r4] + ldr r0, [r1, #0x14] + adds r3, r3, r0 + ldrb r7, [r3] + ldr r1, [r1, #4] + lsls r0, r6, #3 + subs r0, r0, r6 + lsls r0, r0, #2 + adds r0, r0, r1 + movs r1, #4 + ldrsh r0, [r0, r1] + movs r1, #0xa + bl __divsi3 + lsls r0, r0, #0x11 + lsrs r5, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x38 + ble _080DBAB4 + movs r5, #0x38 + b _080DBABA + .align 2, 0 +_080DBAB0: .4byte 0x02039BD4 +_080DBAB4: + cmp r0, #0 + bge _080DBABA + movs r5, #0 +_080DBABA: + ldr r2, _080DBAEC + lsls r3, r7, #4 + adds r0, r3, r7 + lsls r0, r0, #2 + adds r4, r0, r2 + movs r0, #0x3e + adds r0, r0, r4 + mov ip, r0 + ldrb r1, [r0] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + mov r1, ip + strb r0, [r1] + strh r6, [r4, #0x2e] + strh r5, [r4, #0x30] + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + movs r5, #0x24 + ldrsh r1, [r4, r5] + cmp r0, r1 + ble _080DBAF0 + movs r0, #1 + b _080DBAF2 + .align 2, 0 +_080DBAEC: .4byte 0x020205AC +_080DBAF0: + ldr r0, _080DBB08 +_080DBAF2: + strh r0, [r4, #0x32] + adds r0, r3, r7 + lsls r0, r0, #2 + adds r1, r2, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _080DBB0C + str r1, [r0] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DBB08: .4byte 0x0000FFFF +_080DBB0C: .4byte 0x080DBB6D + thumb_func_end sub_080DBA6C + + thumb_func_start sub_080DBB10 +sub_080DBB10: @ 0x080DBB10 + push {r4, lr} + movs r4, #0 +_080DBB14: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl sub_080DBA6C + adds r4, #1 + cmp r4, #3 + ble _080DBB14 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_080DBB10 + + thumb_func_start sub_080DBB28 +sub_080DBB28: @ 0x080DBB28 + push {r4, lr} + movs r2, #0 + ldr r3, _080DBB60 + ldr r0, [r3] + ldr r0, [r0, #0x14] + ldrb r1, [r0, #2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080DBB56 + movs r4, #1 +_080DBB3E: + adds r2, #1 + cmp r2, #3 + bgt _080DBB56 + ldr r0, [r3] + ldr r1, [r0, #0x14] + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r1, [r0, #2] + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + beq _080DBB3E +_080DBB56: + cmp r2, #4 + beq _080DBB64 + movs r0, #0 + b _080DBB66 + .align 2, 0 +_080DBB60: .4byte 0x02039BD4 +_080DBB64: + movs r0, #1 +_080DBB66: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_080DBB28 + + thumb_func_start sub_080DBB6C +sub_080DBB6C: @ 0x080DBB6C + push {r4, lr} + adds r3, r0, #0 + ldrh r2, [r3, #0x24] + movs r0, #0x24 + ldrsh r1, [r3, r0] + movs r4, #0x30 + ldrsh r0, [r3, r4] + cmp r1, r0 + bne _080DBBA4 + ldr r0, _080DBB9C + ldr r0, [r0] + movs r2, #0x2e + ldrsh r1, [r3, r2] + ldr r0, [r0, #0x14] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #2] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #2] + ldr r0, _080DBBA0 + str r0, [r3, #0x1c] + b _080DBBAA + .align 2, 0 +_080DBB9C: .4byte 0x02039BD4 +_080DBBA0: .4byte 0x08007141 +_080DBBA4: + ldrh r0, [r3, #0x32] + adds r0, r2, r0 + strh r0, [r3, #0x24] +_080DBBAA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_080DBB6C + + thumb_func_start sub_080DBBB0 +sub_080DBBB0: @ 0x080DBBB0 + push {r4, r5, r6, lr} + movs r2, #0 + ldr r6, _080DBBE4 + ldr r5, _080DBBE8 + ldr r4, _080DBBEC + ldr r3, _080DBBF0 +_080DBBBC: + ldr r0, [r5] + ldr r1, [r0, #0x14] + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + adds r0, r2, r3 + ldrb r0, [r0] + adds r0, r0, r4 + ldrb r0, [r0] + strh r0, [r1, #0x22] + adds r2, #1 + cmp r2, #3 + ble _080DBBBC + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080DBBE4: .4byte 0x020205AC +_080DBBE8: .4byte 0x02039BD4 +_080DBBEC: .4byte 0x085609D0 +_080DBBF0: .4byte 0x02039BC6 + thumb_func_end sub_080DBBB0 + + thumb_func_start sub_080DBBF4 +sub_080DBBF4: @ 0x080DBBF4 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r3, #0 + ldr r7, _080DBC24 + ldr r5, _080DBC28 + ldr r4, _080DBC2C + movs r2, #0 +_080DBC04: + adds r0, r3, r7 + ldrb r0, [r0] + cmp r0, #1 + bls _080DBC46 + cmp r6, #0 + bne _080DBC30 + ldr r0, [r4] + ldr r0, [r0, #0x14] + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0xb4 + b _080DBC44 + .align 2, 0 +_080DBC24: .4byte 0x02039BC6 +_080DBC28: .4byte 0x020205AC +_080DBC2C: .4byte 0x02039BD4 +_080DBC30: + ldr r0, [r4] + ldr r0, [r0, #0x14] + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0x80 + lsls r1, r1, #1 +_080DBC44: + strh r1, [r0, #0x20] +_080DBC46: + adds r2, #4 + adds r3, #1 + cmp r3, #3 + ble _080DBC04 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_080DBBF4 + + thumb_func_start sub_080DBC54 +sub_080DBC54: @ 0x080DBC54 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _080DBCD8 + bl LoadSpritePalette + movs r5, #0 + ldr r7, _080DBCDC + ldr r0, _080DBCE0 + mov r8, r0 + movs r6, #0 +_080DBC6A: + lsls r0, r5, #3 + ldr r1, _080DBCE4 + adds r0, r0, r1 + bl LoadCompressedSpriteSheet + ldr r0, _080DBCE8 + adds r0, r6, r0 + ldr r2, _080DBCEC + ldr r1, _080DBCF0 + adds r1, r5, r1 + ldrb r1, [r1] + adds r1, r1, r2 + ldrb r2, [r1] + movs r1, #0xcc + movs r3, #0 + bl CreateSprite + ldr r1, [r7] + ldr r1, [r1, #0x14] + lsls r4, r5, #2 + adds r1, r4, r1 + strb r0, [r1, #1] + ldr r0, [r7] + ldr r0, [r0, #0x14] + adds r0, r4, r0 + ldrb r1, [r0, #1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + ldr r1, _080DBCF4 + bl SetSubspriteTables + ldr r0, [r7] + ldr r0, [r0, #0x14] + adds r4, r4, r0 + ldrb r1, [r4, #1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + adds r6, #0x18 + adds r5, #1 + cmp r5, #3 + ble _080DBC6A + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DBCD8: .4byte 0x08560A6C +_080DBCDC: .4byte 0x02039BD4 +_080DBCE0: .4byte 0x020205AC +_080DBCE4: .4byte 0x08560A4C +_080DBCE8: .4byte 0x08560A7C +_080DBCEC: .4byte 0x085609D4 +_080DBCF0: .4byte 0x02039BC6 +_080DBCF4: .4byte 0x08560AE4 + thumb_func_end sub_080DBC54 + + thumb_func_start CreateApplauseMeterSprite +CreateApplauseMeterSprite: @ 0x080DBCF8 + push {lr} + ldr r0, _080DBD38 + bl LoadCompressedSpriteSheet + ldr r0, _080DBD3C + bl LoadSpritePalette + ldr r0, _080DBD40 + movs r1, #0x1e + movs r2, #0x2c + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080DBD44 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + adds r1, #0x3e + ldrb r2, [r1] + movs r3, #4 + orrs r2, r3 + strb r2, [r1] + ldr r1, _080DBD48 + ldr r1, [r1] + ldr r1, [r1] + adds r1, #0x58 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080DBD38: .4byte 0x08560B14 +_080DBD3C: .4byte 0x08560B1C +_080DBD40: .4byte 0x08560B2C +_080DBD44: .4byte 0x020205AC +_080DBD48: .4byte 0x02039BD4 + thumb_func_end CreateApplauseMeterSprite + + thumb_func_start sub_080DBD4C +sub_080DBD4C: @ 0x080DBD4C + push {r4, lr} + ldr r0, _080DBD88 + movs r1, #0x1e + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080DBD8C + ldr r1, [r1] + ldr r1, [r1] + strb r0, [r1, #0xd] + movs r2, #0 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r4, _080DBD90 + movs r3, #0xff +_080DBD6E: + lsls r0, r2, #3 + adds r0, r0, r1 + adds r0, r0, r4 + strh r3, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #3 + bls _080DBD6E + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DBD88: .4byte 0x080DBE8D +_080DBD8C: .4byte 0x02039BD4 +_080DBD90: .4byte 0x03005B68 + thumb_func_end sub_080DBD4C + + thumb_func_start sub_080DBD94 +sub_080DBD94: @ 0x080DBD94 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _080DBDD0 + ldr r1, _080DBDD4 + ldr r5, [r1] + ldr r1, [r5] + ldrb r2, [r1, #0xd] + lsls r1, r2, #2 + adds r1, r1, r2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r3, #8 + adds r1, r1, r3 + movs r4, #0 + strh r4, [r1] + lsls r0, r0, #2 + adds r0, #1 + lsls r0, r0, #1 + ldr r1, [r5] + ldrb r2, [r1, #0xd] + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r0, r0, r1 + adds r0, r0, r3 + strh r4, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080DBDD0: .4byte 0x03005B60 +_080DBDD4: .4byte 0x02039BD4 + thumb_func_end sub_080DBD94 + + thumb_func_start sub_080DBDD8 +sub_080DBDD8: @ 0x080DBDD8 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _080DBE00 + movs r1, #0x1f + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080DBE04 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DBE00: .4byte 0x080DBE09 +_080DBE04: .4byte 0x03005B60 + thumb_func_end sub_080DBDD8 + + thumb_func_start sub_080DBE08 +sub_080DBE08: @ 0x080DBE08 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r0, #0 + ldr r2, _080DBE80 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrb r0, [r0, #8] + adds r5, r0, #0 + ldr r0, _080DBE84 + ldr r4, [r0] + ldr r0, [r4] + ldrb r1, [r0, #0xd] + lsls r0, r1, #2 + adds r0, r0, r1 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r7, r2, #0 + adds r7, #8 + adds r1, r0, r7 + movs r2, #0 + ldrsh r0, [r1, r2] + cmp r0, #0 + beq _080DBE40 + cmp r0, #0xff + bne _080DBE7A +_080DBE40: + movs r3, #0 + movs r0, #0xff + strh r0, [r1] + lsls r1, r5, #2 + adds r1, #1 + lsls r1, r1, #1 + ldr r0, [r4] + ldrb r2, [r0, #0xd] + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r1, r1, r7 + strh r3, [r1] + ldr r0, [r4] + adds r0, #0x14 + adds r0, r0, r5 + ldrb r0, [r0] + adds r0, #5 + lsls r0, r0, #4 + adds r0, #6 + ldr r3, _080DBE88 + movs r1, #2 + movs r2, #0 + bl BlendPalette + adds r0, r6, #0 + bl DestroyTask +_080DBE7A: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DBE80: .4byte 0x03005B60 +_080DBE84: .4byte 0x02039BD4 +_080DBE88: .4byte 0x00004BFF + thumb_func_end sub_080DBE08 + + thumb_func_start sub_080DBE8C +sub_080DBE8C: @ 0x080DBE8C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r6, #0 + lsls r1, r0, #2 + adds r1, r1, r0 + mov sb, r1 + lsls r7, r1, #3 + ldr r0, _080DBEDC + mov r8, r0 + movs r1, #8 + rsbs r1, r1, #0 + add r1, r8 + mov sl, r1 +_080DBEB0: + lsls r0, r6, #0x1a + lsrs r3, r0, #0x18 + lsls r0, r3, #1 + adds r0, r0, r7 + mov r4, r8 + adds r2, r0, r4 + ldrh r4, [r2] + movs r5, #0 + ldrsh r0, [r2, r5] + cmp r0, #0xff + beq _080DBF2E + adds r0, r3, #1 + lsls r1, r0, #1 + adds r1, r1, r7 + add r1, r8 + movs r5, #0 + ldrsh r1, [r1, r5] + adds r5, r0, #0 + cmp r1, #0 + bne _080DBEE0 + adds r0, r4, #1 + b _080DBEE2 + .align 2, 0 +_080DBEDC: .4byte 0x03005B68 +_080DBEE0: + subs r0, r4, #1 +_080DBEE2: + strh r0, [r2] + lsls r1, r3, #1 + mov r0, sb + lsls r2, r0, #3 + adds r0, r1, r2 + mov r3, sl + adds r3, #8 + adds r0, r0, r3 + movs r4, #0 + ldrsh r0, [r0, r4] + adds r4, r1, #0 + cmp r0, #0x10 + beq _080DBF00 + cmp r0, #0 + bne _080DBF0E +_080DBF00: + lsls r0, r5, #1 + adds r0, r0, r2 + adds r0, r0, r3 + ldrh r1, [r0] + movs r2, #1 + eors r1, r2 + strh r1, [r0] +_080DBF0E: + ldr r0, _080DBF48 + ldr r0, [r0] + ldr r0, [r0] + adds r0, #0x14 + adds r0, r0, r6 + ldrb r0, [r0] + adds r0, #5 + lsls r0, r0, #4 + adds r0, #6 + adds r1, r4, r7 + add r1, r8 + ldrb r2, [r1] + movs r1, #2 + ldr r3, _080DBF4C + bl BlendPalette +_080DBF2E: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #3 + bls _080DBEB0 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DBF48: .4byte 0x02039BD4 +_080DBF4C: .4byte 0x00004BFF + thumb_func_end sub_080DBE8C + + thumb_func_start sub_080DBF50 +sub_080DBF50: @ 0x080DBF50 + push {r4, lr} + ldr r0, _080DBF78 + movs r1, #0x1e + bl CreateTask + ldr r1, _080DBF7C + ldr r1, [r1] + ldr r1, [r1] + strb r0, [r1, #0xe] + movs r4, #0 +_080DBF64: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl sub_080DBF80 + adds r4, #1 + cmp r4, #3 + ble _080DBF64 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DBF78: .4byte 0x080DC035 +_080DBF7C: .4byte 0x02039BD4 + thumb_func_end sub_080DBF50 + + thumb_func_start sub_080DBF80 +sub_080DBF80: @ 0x080DBF80 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _080DBFC0 + ldr r1, _080DBFC4 + ldr r4, [r1] + ldr r1, [r4] + ldrb r2, [r1, #0xe] + lsls r1, r2, #2 + adds r1, r1, r2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r3, #8 + adds r1, r1, r3 + movs r5, #0 + movs r2, #0xff + strh r2, [r1] + lsls r0, r0, #2 + adds r0, #1 + lsls r0, r0, #1 + ldr r1, [r4] + ldrb r2, [r1, #0xe] + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r0, r0, r1 + adds r0, r0, r3 + strh r5, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080DBFC0: .4byte 0x03005B60 +_080DBFC4: .4byte 0x02039BD4 + thumb_func_end sub_080DBF80 + + thumb_func_start sub_080DBFC8 +sub_080DBFC8: @ 0x080DBFC8 + push {r4, lr} + movs r4, #0 +_080DBFCC: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl sub_080DBFE0 + adds r4, #1 + cmp r4, #3 + ble _080DBFCC + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_080DBFC8 + + thumb_func_start sub_080DBFE0 +sub_080DBFE0: @ 0x080DBFE0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl sub_080DBF80 + adds r0, r4, #5 + lsls r2, r0, #5 + ldr r3, _080DC024 + adds r6, r2, r3 + ldr r5, _080DC028 + adds r2, r2, r5 + ldr r1, _080DC02C + str r6, [r1] + str r2, [r1, #4] + ldr r2, _080DC030 + str r2, [r1, #8] + ldr r6, [r1, #8] + lsls r0, r0, #4 + adds r4, #0xc + adds r0, r0, r4 + lsls r0, r0, #1 + subs r3, #0x14 + adds r3, r0, r3 + subs r5, #0x14 + adds r0, r0, r5 + str r3, [r1] + str r0, [r1, #4] + str r2, [r1, #8] + ldr r0, [r1, #8] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080DC024: .4byte 0x020373C8 +_080DC028: .4byte 0x020377C8 +_080DC02C: .4byte 0x040000D4 +_080DC030: .4byte 0x80000001 + thumb_func_end sub_080DBFE0 + + thumb_func_start sub_080DC034 +sub_080DC034: @ 0x080DC034 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r7, #0 + lsls r1, r0, #2 + adds r1, r1, r0 + mov sb, r1 + lsls r6, r1, #3 + ldr r0, _080DC09C + mov r8, r0 + ldr r1, _080DC0A0 + mov sl, r1 +_080DC054: + lsls r0, r7, #0x1a + lsrs r3, r0, #0x18 + lsls r0, r3, #1 + adds r0, r0, r6 + mov r4, r8 + adds r2, r0, r4 + movs r5, #0 + ldrsh r0, [r2, r5] + cmp r0, #0xff + beq _080DC0FA + adds r0, r3, #2 + lsls r0, r0, #1 + adds r0, r0, r6 + adds r1, r0, r4 + ldrh r0, [r1] + adds r0, #1 + movs r4, #0 + strh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + ble _080DC0FA + strh r4, [r1] + adds r0, r3, #1 + lsls r1, r0, #1 + adds r1, r1, r6 + add r1, r8 + movs r4, #0 + ldrsh r1, [r1, r4] + adds r4, r0, #0 + cmp r1, #0 + bne _080DC0A4 + ldrh r0, [r2] + adds r0, #1 + b _080DC0A8 + .align 2, 0 +_080DC09C: .4byte 0x03005B68 +_080DC0A0: .4byte 0x00004BFF +_080DC0A4: + ldrh r0, [r2] + subs r0, #1 +_080DC0A8: + strh r0, [r2] + lsls r1, r3, #1 + mov r5, sb + lsls r2, r5, #3 + adds r0, r1, r2 + ldr r3, _080DC114 + adds r3, #8 + adds r0, r0, r3 + movs r5, #0 + ldrsh r0, [r0, r5] + adds r5, r1, #0 + cmp r0, #0x10 + beq _080DC0C6 + cmp r0, #0 + bne _080DC0D4 +_080DC0C6: + lsls r0, r4, #1 + adds r0, r0, r2 + adds r0, r0, r3 + ldrh r1, [r0] + movs r2, #1 + eors r1, r2 + strh r1, [r0] +_080DC0D4: + adds r4, r7, #5 + lsls r4, r4, #4 + adds r0, r4, #0 + adds r0, #0xa + adds r5, r5, r6 + add r5, r8 + ldrb r2, [r5] + movs r1, #1 + mov r3, sl + bl BlendPalette + adds r4, #0xc + adds r4, r4, r7 + ldrb r2, [r5] + adds r0, r4, #0 + movs r1, #1 + mov r3, sl + bl BlendPalette +_080DC0FA: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #3 + bls _080DC054 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DC114: .4byte 0x03005B60 + thumb_func_end sub_080DC034 + + thumb_func_start sub_080DC118 +sub_080DC118: @ 0x080DC118 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _080DC140 + ldr r0, [r0] + ldr r1, [r0, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080DC144 + adds r0, r2, #0 + bl sub_080DBD94 + b _080DC14A + .align 2, 0 +_080DC140: .4byte 0x02039BD4 +_080DC144: + adds r0, r2, #0 + bl sub_080DBDD8 +_080DC14A: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080DC118 + + thumb_func_start sub_080DC150 +sub_080DC150: @ 0x080DC150 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0xc] + ldr r6, _080DC2AC + adds r6, r0, r6 + ldrb r0, [r6] + lsls r5, r0, #2 + adds r5, r5, r0 + lsls r5, r5, #0x1b + movs r0, #0x80 + lsls r0, r0, #0x16 + adds r5, r5, r0 + lsrs r5, r5, #0x18 + ldr r1, [sp, #0xc] + lsls r4, r1, #3 + ldr r0, _080DC2B0 + adds r0, r4, r0 + bl LoadCompressedSpriteSheet + ldr r0, _080DC2B4 + adds r4, r4, r0 + adds r0, r4, #0 + bl LoadSpritePalette + ldr r2, [sp, #0xc] + lsls r4, r2, #1 + adds r4, r4, r2 + lsls r4, r4, #3 + ldr r0, _080DC2B8 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0xb8 + adds r2, r5, #0 + movs r3, #0x1d + bl CreateSprite + mov sb, r0 + mov r3, sb + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov sb, r3 + adds r0, r4, #0 + movs r1, #0xf8 + adds r2, r5, #0 + movs r3, #0x1d + bl CreateSprite + mov r8, r0 + mov r0, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r5, r0, #4 + add r5, r8 + lsls r5, r5, #2 + ldr r1, _080DC2BC + adds r5, r5, r1 + ldrh r2, [r5, #4] + lsls r1, r2, #0x16 + lsrs r1, r1, #0x16 + adds r1, #0x40 + ldr r3, _080DC2C0 + adds r0, r3, #0 + ands r1, r0 + ldr r0, _080DC2C4 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, #4] + movs r4, #0xc0 + lsls r4, r4, #0x13 + ldrb r0, [r6] + lsls r3, r0, #2 + adds r3, r3, r0 + lsls r3, r3, #6 + ldr r0, _080DC2C8 + adds r3, r3, r0 + ldr r7, _080DC2CC + ldr r0, [r7] + ldr r0, [r0, #0x34] + str r0, [sp] + movs r0, #0 + movs r1, #3 + adds r2, r4, #0 + bl CopySpriteTiles + ldrb r0, [r6] + lsls r3, r0, #2 + adds r3, r3, r0 + lsls r3, r3, #6 + ldr r1, _080DC2D0 + adds r3, r3, r1 + ldr r0, [r7] + ldr r0, [r0, #0x38] + str r0, [sp] + movs r0, #0 + movs r1, #3 + adds r2, r4, #0 + bl CopySpriteTiles + movs r4, #0 + str r4, [sp, #4] + ldr r0, [r7] + ldr r1, [r0, #0x34] + movs r6, #0xa0 + lsls r6, r6, #3 + adds r1, r1, r6 + ldr r2, _080DC2D4 + mov sl, r2 + add r0, sp, #4 + bl CpuSet + str r4, [sp, #8] + add r0, sp, #8 + ldr r1, [r7] + ldr r1, [r1, #0x38] + adds r1, r1, r6 + mov r2, sl + bl CpuSet + ldr r0, [r7] + ldr r0, [r0, #0x34] + mov r3, sb + lsls r4, r3, #4 + add r4, sb + lsls r4, r4, #2 + ldr r1, _080DC2BC + adds r4, r4, r1 + ldrh r1, [r4, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x11 + ldr r6, _080DC2D8 + adds r1, r1, r6 + movs r2, #0x80 + lsls r2, r2, #4 + mov sl, r2 + movs r3, #1 + bl RequestDma3Copy + ldr r0, [r7] + ldr r0, [r0, #0x38] + ldrh r1, [r5, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x11 + adds r1, r1, r6 + mov r2, sl + movs r3, #1 + bl RequestDma3Copy + mov r3, r8 + strh r3, [r4, #0x2e] + mov r0, sb + strh r0, [r5, #0x2e] + mov r1, sp + ldrh r1, [r1, #0xc] + strh r1, [r4, #0x30] + mov r2, sp + ldrh r2, [r2, #0xc] + strh r2, [r5, #0x30] + mov r0, sb + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080DC2AC: .4byte 0x02039BC6 +_080DC2B0: .4byte 0x08562888 +_080DC2B4: .4byte 0x085628A8 +_080DC2B8: .4byte 0x08562910 +_080DC2BC: .4byte 0x020205AC +_080DC2C0: .4byte 0x000003FF +_080DC2C4: .4byte 0xFFFFFC00 +_080DC2C8: .4byte 0x0600E026 +_080DC2CC: .4byte 0x02039BD4 +_080DC2D0: .4byte 0x0600E036 +_080DC2D4: .4byte 0x050000C0 +_080DC2D8: .4byte 0x06010000 + thumb_func_end sub_080DC150 + + thumb_func_start sub_080DC2DC +sub_080DC2DC: @ 0x080DC2DC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080DC314 + lsls r5, r0, #4 + adds r5, r5, r0 + lsls r5, r5, #2 + adds r5, r5, r1 + ldrh r0, [r5, #0x2e] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + adds r4, r4, r1 + adds r0, r4, #0 + bl FreeSpriteOamMatrix + adds r0, r4, #0 + bl DestroySprite + adds r0, r5, #0 + bl DestroySpriteAndFreeResources + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080DC314: .4byte 0x020205AC + thumb_func_end sub_080DC2DC + + thumb_func_start sub_080DC318 +sub_080DC318: @ 0x080DC318 + push {lr} + movs r1, #0xfd + lsls r1, r1, #6 + movs r0, #0x50 + bl SetGpuReg + ldr r1, _080DC330 + movs r0, #0x52 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 +_080DC330: .4byte 0x00000907 + thumb_func_end sub_080DC318 + + thumb_func_start sub_080DC334 +sub_080DC334: @ 0x080DC334 + push {lr} + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080DC334 + + thumb_func_start sub_080DC34C +sub_080DC34C: @ 0x080DC34C + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + adds r4, r0, #0 + mov sb, r1 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r0, sb + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + bl sub_080DC318 + ldr r0, _080DC3C4 + ldr r1, [r0] + ldr r2, _080DC3C8 + mov r8, r2 + lsls r6, r4, #4 + adds r6, r6, r4 + lsls r6, r6, #2 + adds r0, r6, r2 + movs r3, #0x30 + ldrsh r2, [r0, r3] + ldr r1, [r1, #0x14] + lsls r2, r2, #2 + adds r2, r2, r1 + ldrb r1, [r2, #2] + movs r3, #2 + orrs r1, r3 + strb r1, [r2, #2] + ldrh r5, [r0, #0x2e] + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r1, #1 + bl StartSpriteAffineAnim + lsls r4, r5, #4 + adds r4, r4, r5 + lsls r4, r4, #2 + mov r1, r8 + adds r0, r4, r1 + movs r1, #1 + bl StartSpriteAffineAnim + movs r2, #0x1c + add r8, r2 + add r6, r8 + ldr r0, _080DC3CC + str r0, [r6] + add r4, r8 + ldr r0, _080DC3D0 + str r0, [r4] + mov r3, sb + cmp r3, #0 + bne _080DC3D4 + movs r0, #0x65 + bl PlaySE + b _080DC3DA + .align 2, 0 +_080DC3C4: .4byte 0x02039BD4 +_080DC3C8: .4byte 0x020205AC +_080DC3CC: .4byte 0x080DC3E9 +_080DC3D0: .4byte 0x08007141 +_080DC3D4: + movs r0, #2 + bl PlaySE +_080DC3DA: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080DC34C + + thumb_func_start sub_080DC3E8 +sub_080DC3E8: @ 0x080DC3E8 + push {lr} + mov ip, r0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080DC430 + mov r0, ip + ldrh r1, [r0, #0x2e] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _080DC434 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r2 + adds r0, r1, #0 + adds r0, #0x3f + ldrb r0, [r0] + lsls r0, r0, #0x1a + cmp r0, #0 + bge _080DC430 + mov r3, ip + adds r3, #0x3e + ldrb r0, [r3] + movs r2, #4 + orrs r0, r2 + strb r0, [r3] + adds r1, #0x3e + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] + ldr r0, _080DC438 + mov r1, ip + str r0, [r1, #0x1c] +_080DC430: + pop {r0} + bx r0 + .align 2, 0 +_080DC434: .4byte 0x020205AC +_080DC438: .4byte 0x080DC43D + thumb_func_end sub_080DC3E8 + + thumb_func_start sub_080DC43C +sub_080DC43C: @ 0x080DC43C + push {lr} + ldr r1, _080DC468 + ldr r1, [r1] + movs r3, #0x30 + ldrsh r2, [r0, r3] + ldr r1, [r1, #0x14] + lsls r2, r2, #2 + adds r2, r2, r1 + ldrb r3, [r2, #2] + movs r1, #3 + rsbs r1, r1, #0 + ands r1, r3 + strb r1, [r2, #2] + ldrh r0, [r0, #0x2e] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_080DC2DC + bl sub_080DC334 + pop {r0} + bx r0 + .align 2, 0 +_080DC468: .4byte 0x02039BD4 + thumb_func_end sub_080DC43C + + thumb_func_start ContestDebugTogglePointTotal +ContestDebugTogglePointTotal: @ 0x080DC46C + push {lr} + ldr r0, _080DC484 + movs r1, #0xd0 + lsls r1, r1, #9 + adds r2, r0, r1 + ldrb r1, [r2] + adds r3, r0, #0 + cmp r1, #1 + bne _080DC488 + movs r0, #0 + b _080DC48A + .align 2, 0 +_080DC484: .4byte 0x02000000 +_080DC488: + movs r0, #1 +_080DC48A: + strb r0, [r2] + movs r1, #0xd0 + lsls r1, r1, #9 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080DC4A2 + bl DrawContestantWindowText + bl SwapMoveDescAndContestTilemaps + b _080DC4A6 +_080DC4A2: + bl ContestDebugDoPrint +_080DC4A6: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ContestDebugTogglePointTotal + + thumb_func_start ContestDebugDoPrint +ContestDebugDoPrint: @ 0x080DC4AC + push {r4, r5, lr} + sub sp, #8 + ldr r0, _080DC4D8 + ldrb r0, [r0] + cmp r0, #0 + beq _080DC5A6 + ldr r0, _080DC4DC + movs r1, #0xd0 + lsls r1, r1, #9 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _080DC5A6 + cmp r0, #0 + blt _080DC4E0 + cmp r0, #3 + bgt _080DC4E0 + cmp r0, #2 + blt _080DC4E0 + bl ContestDebugPrintBitStrings + b _080DC5A6 + .align 2, 0 +_080DC4D8: .4byte 0x02031F75 +_080DC4DC: .4byte 0x02000000 +_080DC4E0: + movs r4, #0 +_080DC4E2: + adds r0, r4, #0 + movs r1, #0 + bl FillWindowPixelBuffer + adds r0, r4, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl FillWindowPixelBuffer + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _080DC4E2 + movs r4, #0 +_080DC502: + ldr r0, _080DC5B0 + ldr r0, [r0] + ldr r1, [r0, #4] + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + mov r2, sp + ldrh r5, [r0, #4] + movs r1, #4 + ldrsh r0, [r0, r1] + cmp r0, #0 + bge _080DC52C + rsbs r0, r0, #0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + mov r0, sp + ldr r1, _080DC5B4 + bl StringCopy + adds r2, r0, #0 +_080DC52C: + lsls r1, r5, #0x10 + asrs r1, r1, #0x10 + adds r0, r2, #0 + movs r2, #0 + movs r3, #4 + bl ConvertIntToDecimalStringN + ldr r0, _080DC5B8 + adds r0, r4, r0 + ldrb r0, [r0] + adds r0, #4 + mov r1, sp + bl Contest_PrintTextToBg0WindowStd + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _080DC502 + movs r4, #0 +_080DC554: + ldr r0, _080DC5B0 + ldr r0, [r0] + ldr r1, [r0, #4] + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + mov r2, sp + ldrh r5, [r0, #2] + movs r1, #2 + ldrsh r0, [r0, r1] + cmp r0, #0 + bge _080DC57E + rsbs r0, r0, #0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + mov r0, sp + ldr r1, _080DC5B4 + bl StringCopy + adds r2, r0, #0 +_080DC57E: + lsls r1, r5, #0x10 + asrs r1, r1, #0x10 + adds r0, r2, #0 + movs r2, #0 + movs r3, #4 + bl ConvertIntToDecimalStringN + ldr r0, _080DC5B8 + adds r0, r4, r0 + ldrb r0, [r0] + mov r1, sp + bl Contest_PrintTextToBg0WindowStd + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _080DC554 + bl SwapMoveDescAndContestTilemaps +_080DC5A6: + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080DC5B0: .4byte 0x02039BD4 +_080DC5B4: .4byte 0x085C9401 +_080DC5B8: .4byte 0x02039BC6 + thumb_func_end ContestDebugDoPrint + + thumb_func_start SortContestants +SortContestants: @ 0x080DC5BC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + add r4, sp, #4 + adds r0, r4, #0 + movs r1, #0 + movs r2, #8 + bl memset + movs r5, #0 + add r4, sp, #4 + adds r6, r4, #0 + movs r7, #0 +_080DC5E2: + bl Random + adds r1, r0, #0 + mov r0, sp + adds r0, r0, r7 + adds r0, #4 + strh r1, [r0] + movs r2, #0 + cmp r2, r5 + bge _080DC61A + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + mov r1, sp + ldrh r1, [r1, #4] + cmp r0, r1 + beq _080DC614 +_080DC602: + adds r2, #1 + cmp r2, r5 + bge _080DC61A + lsls r0, r2, #1 + adds r0, r4, r0 + ldrh r1, [r6] + ldrh r0, [r0] + cmp r1, r0 + bne _080DC602 +_080DC614: + subs r6, #2 + subs r7, #2 + subs r5, #1 +_080DC61A: + adds r6, #2 + adds r7, #2 + adds r5, #1 + cmp r5, #3 + ble _080DC5E2 + mov r2, r8 + cmp r2, #0 + bne _080DC6E4 + movs r5, #0 + ldr r3, _080DC69C + mov r8, r3 +_080DC630: + mov r6, r8 + strb r5, [r6] + movs r4, #0 + cmp r4, r5 + bge _080DC6AC + ldr r7, _080DC6A0 + mov sb, r7 + lsls r0, r5, #1 + adds r1, r0, #0 + add r1, sb + mov ip, r1 + mov r2, sp + adds r2, #4 + str r2, [sp, #0xc] + add r0, sp + adds r0, #4 + str r0, [sp, #0x10] + ldr r3, _080DC69C + adds r6, r3, #0 + mov sl, r6 +_080DC658: + ldrb r0, [r3] + lsls r2, r0, #1 + mov r7, sb + adds r0, r2, r7 + movs r6, #0 + ldrsh r1, [r0, r6] + mov r7, ip + movs r6, #0 + ldrsh r0, [r7, r6] + cmp r1, r0 + blt _080DC680 + cmp r1, r0 + bne _080DC6A4 + ldr r7, [sp, #0xc] + adds r0, r7, r2 + ldrh r0, [r0] + ldr r1, [sp, #0x10] + ldrh r1, [r1] + cmp r0, r1 + bhs _080DC6A4 +_080DC680: + adds r2, r5, #0 + cmp r5, r4 + ble _080DC698 + subs r0, r5, #1 + mov r6, sl + adds r1, r0, r6 +_080DC68C: + ldrb r0, [r1] + strb r0, [r1, #1] + subs r1, #1 + subs r2, #1 + cmp r2, r4 + bgt _080DC68C +_080DC698: + strb r5, [r3] + b _080DC6AC + .align 2, 0 +_080DC69C: .4byte 0x02039BC6 +_080DC6A0: .4byte 0x02039BA0 +_080DC6A4: + adds r3, #1 + adds r4, #1 + cmp r4, r5 + blt _080DC658 +_080DC6AC: + cmp r4, r5 + bne _080DC6B4 + mov r7, r8 + strb r5, [r7] +_080DC6B4: + movs r0, #1 + add r8, r0 + adds r5, #1 + cmp r5, #3 + ble _080DC630 + ldr r4, _080DC6E0 + mov r0, sp + adds r1, r4, #0 + movs r2, #4 + bl memcpy + movs r5, #0 +_080DC6CC: + mov r1, sp + adds r0, r1, r5 + ldrb r0, [r0] + adds r0, r0, r4 + strb r5, [r0] + adds r5, #1 + cmp r5, #3 + ble _080DC6CC + b _080DC798 + .align 2, 0 +_080DC6E0: .4byte 0x02039BC6 +_080DC6E4: + mov r0, sp + movs r1, #0xff + movs r2, #4 + bl memset + movs r5, #0 + ldr r3, _080DC708 + movs r6, #0 +_080DC6F4: + ldr r0, _080DC70C + ldr r0, [r0] + ldr r0, [r0, #4] + adds r0, r6, r0 + ldrb r0, [r0, #0xb] + lsls r0, r0, #0x1e + lsrs r2, r0, #0x1e + mov r7, sp + adds r1, r7, r2 + b _080DC71A + .align 2, 0 +_080DC708: .4byte 0x02039BC6 +_080DC70C: .4byte 0x02039BD4 +_080DC710: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + mov r0, sp + adds r1, r0, r2 +_080DC71A: + ldrb r0, [r1] + cmp r0, #0xff + bne _080DC710 + strb r5, [r1] + strb r2, [r3] + adds r3, #1 + adds r6, #0x1c + adds r5, #1 + cmp r5, #3 + ble _080DC6F4 + movs r5, #0 +_080DC730: + movs r4, #3 + adds r1, r5, #1 + mov sl, r1 + cmp r4, r5 + ble _080DC792 + mov sb, r4 + ldr r2, _080DC7A8 + mov r8, r2 + add r3, sp, #4 + mov ip, r3 +_080DC744: + ldr r6, _080DC7AC + ldr r0, [r6] + ldr r1, [r0, #4] + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + adds r1, r0, #0 + subs r1, #0x1c + ldrb r2, [r1, #0xb] + ldrb r3, [r0, #0xb] + mov r1, sb + ands r1, r2 + mov r0, sb + ands r0, r3 + subs r3, r4, #1 + cmp r1, r0 + bne _080DC78C + mov r0, r8 + adds r7, r3, r0 + adds r2, r4, r0 + ldrb r6, [r7] + ldrb r1, [r2] + cmp r6, r1 + bhs _080DC78C + lsls r0, r3, #1 + add r0, ip + lsls r1, r4, #1 + add r1, ip + ldrh r0, [r0] + ldrh r1, [r1] + cmp r0, r1 + bhs _080DC78C + ldrb r0, [r2] + strb r6, [r2] + strb r0, [r7] +_080DC78C: + adds r4, r3, #0 + cmp r4, r5 + bgt _080DC744 +_080DC792: + mov r5, sl + cmp r5, #2 + ble _080DC730 +_080DC798: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DC7A8: .4byte 0x02039BC6 +_080DC7AC: .4byte 0x02039BD4 + thumb_func_end SortContestants + + thumb_func_start DrawContestantWindows +DrawContestantWindows: @ 0x080DC7B0 + push {r4, r5, lr} + movs r4, #0 + movs r5, #0xa0 +_080DC7B6: + ldr r0, _080DC7DC + adds r0, r5, r0 + ldr r1, _080DC7E0 + adds r1, r4, r1 + ldrb r1, [r1] + adds r1, #5 + lsls r1, r1, #4 + movs r2, #0x20 + bl LoadPalette + adds r5, #0x20 + adds r4, #1 + cmp r4, #3 + ble _080DC7B6 + bl DrawContestantWindowText + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080DC7DC: .4byte 0x0201A004 +_080DC7E0: .4byte 0x02039BC6 + thumb_func_end DrawContestantWindows + + thumb_func_start sub_080DC7E4 +sub_080DC7E4: @ 0x080DC7E4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r4, _080DC86C + ldr r3, [r4] + ldr r1, [r3, #4] + lsls r7, r6, #3 + subs r0, r7, r6 + lsls r5, r0, #2 + adds r1, r5, r1 + movs r2, #0 + strh r2, [r1, #2] + ldr r0, [r3, #4] + adds r0, r5, r0 + strh r2, [r0] + adds r0, r6, #0 + bl ContestantCanUseTurn + lsls r0, r0, #0x18 + mov r8, r4 + cmp r0, #0 + bne _080DC818 + b _080DCB28 +_080DC818: + ldr r0, [r4] + ldr r1, [r0, #4] + adds r1, r5, r1 + ldrh r0, [r1, #6] + ldr r2, _080DC870 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrb r2, [r0] + mov sb, r2 + ldrb r0, [r0, #1] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1d + strb r0, [r1, #0xa] + ldr r0, [r4] + ldr r0, [r0, #4] + adds r2, r5, r0 + ldrh r0, [r2, #6] + ldrh r1, [r2, #8] + cmp r0, r1 + bne _080DC874 + cmp r0, #0 + beq _080DC874 + ldrb r0, [r2, #0x15] + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x15] + ldr r0, [r4] + ldr r2, [r0, #4] + adds r2, r5, r2 + ldrb r3, [r2, #0xb] + lsls r1, r3, #0x19 + lsrs r1, r1, #0x1d + adds r1, #1 + movs r0, #7 + ands r1, r0 + lsls r1, r1, #4 + movs r0, #0x71 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #0xb] + b _080DC890 + .align 2, 0 +_080DC86C: .4byte 0x02039BD4 +_080DC870: .4byte 0x08565FCC +_080DC874: + ldr r4, _080DC944 + ldr r0, [r4] + ldr r0, [r0, #4] + lsls r3, r6, #3 + subs r1, r3, r6 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #0xb] + movs r0, #0x71 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #0xb] + mov r8, r4 + adds r7, r3, #0 +_080DC890: + mov r2, r8 + ldr r4, [r2] + ldr r2, [r4, #4] + subs r0, r7, r6 + lsls r0, r0, #2 + adds r2, r0, r2 + ldr r3, _080DC948 + mov r1, sb + lsls r5, r1, #2 + adds r3, r5, r3 + ldrb r1, [r3, #1] + strh r1, [r2] + ldr r1, [r4, #4] + adds r0, r0, r1 + ldrh r1, [r0] + strh r1, [r0, #2] + ldr r1, [r4, #8] + ldrb r0, [r3, #2] + strh r0, [r1, #4] + ldr r1, [r4, #8] + ldrh r0, [r1, #4] + strh r0, [r1, #6] + ldr r0, [r4, #8] + strb r6, [r0, #0x11] + movs r2, #0 + mov sb, r5 + mov r4, r8 + movs r3, #0 + movs r1, #0 +_080DC8CA: + ldr r0, [r4] + ldr r0, [r0, #4] + adds r0, r1, r0 + strb r3, [r0, #0xe] + ldr r0, [r4] + ldr r0, [r0, #8] + adds r0, #0xd + adds r0, r0, r2 + strb r3, [r0] + adds r1, #0x1c + adds r2, #1 + cmp r2, #3 + ble _080DC8CA + ldr r5, _080DC944 + ldr r0, [r5] + ldr r1, [r0, #4] + subs r0, r7, r6 + lsls r4, r0, #2 + adds r2, r4, r1 + ldrb r1, [r2, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080DC918 + ldrh r0, [r2, #8] + ldrh r1, [r2, #6] + bl AreMovesContestCombo + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080DC918 + ldr r0, [r5] + ldr r1, [r0, #4] + adds r1, r4, r1 + ldrb r2, [r1, #0x15] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #0x15] +_080DC918: + ldr r0, _080DC94C + add r0, sb + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _080DC944 + ldr r0, [r0] + ldr r1, [r0, #4] + subs r0, r7, r6 + lsls r0, r0, #2 + adds r2, r0, r1 + ldrb r1, [r2, #0x10] + movs r0, #0x30 + ands r0, r1 + cmp r0, #0x10 + bne _080DC950 + ldrh r1, [r2, #2] + subs r1, #0xa + movs r0, #0xd + ldrsb r0, [r2, r0] + b _080DC96A + .align 2, 0 +_080DC944: .4byte 0x02039BD4 +_080DC948: .4byte 0x08566AE4 +_080DC94C: .4byte 0x08566BE4 +_080DC950: + ldrb r1, [r2, #0x11] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080DC964 + movs r1, #0xd + ldrsb r1, [r2, r1] + lsls r0, r1, #1 + adds r0, r0, r1 + b _080DC968 +_080DC964: + movs r0, #0xd + ldrsb r0, [r2, r0] +_080DC968: + ldrh r1, [r2, #2] +_080DC96A: + adds r0, r0, r1 + strh r0, [r2, #2] + ldr r5, _080DC9FC + ldr r0, [r5] + ldr r1, [r0, #4] + subs r0, r7, r6 + lsls r4, r0, #2 + adds r1, r4, r1 + movs r0, #0 + strb r0, [r1, #0x16] + ldr r0, [r5] + ldr r1, [r0, #4] + adds r1, r4, r1 + ldrb r2, [r1, #0x15] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #0x15] + adds r0, r6, #0 + bl sub_080DD94C + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080DCA46 + ldr r0, [r5] + ldr r1, [r0, #4] + adds r1, r4, r1 + ldrh r0, [r1, #8] + ldrh r1, [r1, #6] + bl AreMovesContestCombo + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + beq _080DCA00 + ldr r0, [r5] + ldr r0, [r0, #4] + adds r2, r4, r0 + ldrb r1, [r2, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080DCA00 + strb r3, [r2, #0x16] + ldr r0, [r5] + ldr r1, [r0, #4] + adds r1, r4, r1 + ldrb r0, [r1, #0x15] + movs r2, #0x40 + orrs r0, r2 + strb r0, [r1, #0x15] + ldr r0, [r5] + ldr r1, [r0, #4] + adds r1, r4, r1 + ldrb r2, [r1, #0x15] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #0x15] + ldr r0, [r5] + ldr r0, [r0, #4] + adds r0, r4, r0 + movs r1, #0 + ldrsh r2, [r0, r1] + ldrb r1, [r0, #0x16] + muls r1, r2, r1 + strb r1, [r0, #0x17] + ldr r0, [r5] + ldr r1, [r0, #4] + adds r1, r4, r1 + ldrb r0, [r1, #0x15] + movs r2, #8 + b _080DCA2C + .align 2, 0 +_080DC9FC: .4byte 0x02039BD4 +_080DCA00: + ldr r2, _080DCA34 + ldr r5, _080DCA38 + ldr r0, [r5] + ldr r1, [r0, #4] + subs r0, r7, r6 + lsls r4, r0, #2 + adds r3, r4, r1 + ldrh r0, [r3, #6] + lsls r0, r0, #3 + adds r0, r0, r2 + ldrb r0, [r0, #2] + cmp r0, #0 + beq _080DCA3C + ldrb r0, [r3, #0x15] + movs r1, #0x10 + orrs r0, r1 + strb r0, [r3, #0x15] + ldr r0, [r5] + ldr r1, [r0, #4] + adds r1, r4, r1 + ldrb r0, [r1, #0x15] + movs r2, #0x40 +_080DCA2C: + orrs r0, r2 + strb r0, [r1, #0x15] + b _080DCA46 + .align 2, 0 +_080DCA34: .4byte 0x08565FCC +_080DCA38: .4byte 0x02039BD4 +_080DCA3C: + ldrb r1, [r3, #0x15] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3, #0x15] +_080DCA46: + ldr r5, _080DCAE4 + ldr r0, [r5] + ldr r1, [r0, #4] + subs r0, r7, r6 + lsls r4, r0, #2 + adds r2, r4, r1 + ldrb r1, [r2, #0x15] + movs r0, #1 + mov r8, r0 + ands r0, r1 + cmp r0, #0 + beq _080DCA6E + ldrb r0, [r2, #0xb] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1d + adds r0, #1 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #1 + strb r1, [r2, #0x18] +_080DCA6E: + ldr r0, [r5] + ldr r0, [r0, #4] + adds r2, r4, r0 + ldrb r1, [r2, #0xc] + mov r0, r8 + ands r0, r1 + cmp r0, #0 + beq _080DCA98 + ldrb r1, [r2, #0x15] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x15] + ldr r2, [r5] + ldr r0, [r2, #4] + adds r0, r4, r0 + movs r1, #0 + strh r1, [r0, #2] + ldr r0, [r2, #4] + adds r0, r4, r0 + strh r1, [r0] +_080DCA98: + ldr r0, [r5] + ldr r0, [r0, #4] + adds r0, r4, r0 + ldrh r0, [r0, #6] + bl Contest_GetMoveExcitement + ldr r1, [r5] + ldr r1, [r1, #0x10] + strb r0, [r1] + ldr r2, [r5] + ldr r0, [r2, #4] + adds r0, r4, r0 + ldrb r1, [r0, #0x11] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080DCAC0 + ldr r0, [r2, #0x10] + mov r1, r8 + strb r1, [r0] +_080DCAC0: + ldr r1, [r5] + ldr r3, [r1, #0x10] + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #0 + ble _080DCAEC + ldr r0, [r1] + ldrb r0, [r0, #0x13] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #0 + ldrsb r1, [r3, r1] + adds r0, r0, r1 + cmp r0, #4 + ble _080DCAE8 + movs r0, #0x3c + b _080DCAEE + .align 2, 0 +_080DCAE4: .4byte 0x02039BD4 +_080DCAE8: + movs r0, #0xa + b _080DCAEE +_080DCAEC: + movs r0, #0 +_080DCAEE: + strb r0, [r3, #2] + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0 + b _080DCB12 +_080DCB06: + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_080DCB0C: + adds r2, #1 + cmp r2, #3 + bgt _080DCB1A +_080DCB12: + cmp r2, r6 + beq _080DCB0C + cmp r0, #0 + bne _080DCB06 +_080DCB1A: + ldr r0, _080DCB34 + ldr r0, [r0] + ldr r1, [r0, #4] + subs r0, r7, r6 + lsls r0, r0, #2 + adds r0, r0, r1 + strb r2, [r0, #0x1b] +_080DCB28: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DCB34: .4byte 0x02039BD4 + thumb_func_end sub_080DC7E4 + + thumb_func_start SetContestantEffectStringID +SetContestantEffectStringID: @ 0x080DCB38 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080DCB50 + ldr r2, [r2] + ldr r3, [r2, #4] + lsls r2, r0, #3 + subs r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r3 + strb r1, [r2, #0x13] + bx lr + .align 2, 0 +_080DCB50: .4byte 0x02039BD4 + thumb_func_end SetContestantEffectStringID + + thumb_func_start SetContestantEffectStringID2 +SetContestantEffectStringID2: @ 0x080DCB54 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080DCB6C + ldr r2, [r2] + ldr r3, [r2, #4] + lsls r2, r0, #3 + subs r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r3 + strb r1, [r2, #0x14] + bx lr + .align 2, 0 +_080DCB6C: .4byte 0x02039BD4 + thumb_func_end SetContestantEffectStringID2 + + thumb_func_start SetStartledString +SetStartledString: @ 0x080DCB70 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r3, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r2, r1, #0 + cmp r1, #0x3b + bls _080DCB8A + movs r1, #0x35 + bl SetContestantEffectStringID + b _080DCBBA +_080DCB8A: + cmp r1, #0x27 + bls _080DCB96 + movs r1, #0x34 + bl SetContestantEffectStringID + b _080DCBBA +_080DCB96: + cmp r1, #0x1d + bls _080DCBA2 + movs r1, #0x33 + bl SetContestantEffectStringID + b _080DCBBA +_080DCBA2: + cmp r1, #0x13 + bls _080DCBAE + movs r1, #0x32 + bl SetContestantEffectStringID + b _080DCBBA +_080DCBAE: + cmp r2, #9 + bls _080DCBBA + adds r0, r3, #0 + movs r1, #0x31 + bl SetContestantEffectStringID +_080DCBBA: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetStartledString + + thumb_func_start sub_080DCBC0 +sub_080DCBC0: @ 0x080DCBC0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + ldr r0, _080DCC20 + lsls r1, r4, #6 + ldr r2, _080DCC24 + adds r1, r1, r2 + bl StringCopy + ldr r0, _080DCC28 + ldr r5, _080DCC2C + ldr r1, [r5] + ldr r2, [r1, #4] + lsls r1, r4, #3 + subs r1, r1, r4 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r1, [r1, #6] + lsls r1, r1, #3 + ldr r2, _080DCC30 + adds r1, r1, r2 + bl StringCopy + ldr r3, _080DCC34 + ldr r1, [r5] + ldr r0, [r1, #8] + ldrb r2, [r0, #0x11] + ldr r1, [r1, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0, #6] + lsls r0, r0, #3 + adds r0, r0, r3 + ldrb r0, [r0, #1] + lsls r1, r0, #0x1d + cmp r1, #0 + bne _080DCC40 + ldr r0, _080DCC38 + ldr r1, _080DCC3C + bl StringCopy + b _080DCC90 + .align 2, 0 +_080DCC20: .4byte 0x02021C40 +_080DCC24: .4byte 0x02039AA2 +_080DCC28: .4byte 0x02021C54 +_080DCC2C: .4byte 0x02039BD4 +_080DCC30: .4byte 0x082EACC4 +_080DCC34: .4byte 0x08565FCC +_080DCC38: .4byte 0x02021C68 +_080DCC3C: .4byte 0x0824C0D2 +_080DCC40: + lsrs r0, r1, #0x1d + cmp r0, #1 + bne _080DCC58 + ldr r0, _080DCC50 + ldr r1, _080DCC54 + bl StringCopy + b _080DCC90 + .align 2, 0 +_080DCC50: .4byte 0x02021C68 +_080DCC54: .4byte 0x0824C0D7 +_080DCC58: + lsrs r0, r1, #0x1d + cmp r0, #2 + bne _080DCC70 + ldr r0, _080DCC68 + ldr r1, _080DCC6C + bl StringCopy + b _080DCC90 + .align 2, 0 +_080DCC68: .4byte 0x02021C68 +_080DCC6C: .4byte 0x0824C0DC +_080DCC70: + lsrs r0, r1, #0x1d + cmp r0, #3 + bne _080DCC88 + ldr r0, _080DCC80 + ldr r1, _080DCC84 + bl StringCopy + b _080DCC90 + .align 2, 0 +_080DCC80: .4byte 0x02021C68 +_080DCC84: .4byte 0x0824C0E1 +_080DCC88: + ldr r0, _080DCCB4 + ldr r1, _080DCCB8 + bl StringCopy +_080DCC90: + ldr r4, _080DCCBC + ldr r1, _080DCCC0 + lsls r0, r6, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl StringExpandPlaceholders + bl sub_080DB000 + adds r0, r4, #0 + movs r1, #1 + bl Contest_StartTextPrinter + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080DCCB4: .4byte 0x02021C68 +_080DCCB8: .4byte 0x0824C0E6 +_080DCCBC: .4byte 0x02021C7C +_080DCCC0: .4byte 0x08560D74 + thumb_func_end sub_080DCBC0 + + thumb_func_start MakeContestantNervous +MakeContestantNervous: @ 0x080DCCC4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _080DCCF0 + ldr r1, [r4] + ldr r3, [r1, #4] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r3, r1, r3 + ldrb r0, [r3, #0xc] + movs r2, #1 + orrs r0, r2 + strb r0, [r3, #0xc] + ldr r0, [r4] + ldr r0, [r0, #4] + adds r1, r1, r0 + movs r0, #0 + strh r0, [r1, #6] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DCCF0: .4byte 0x02039BD4 + thumb_func_end MakeContestantNervous + + thumb_func_start ApplyNextTurnOrder +ApplyNextTurnOrder: @ 0x080DCCF4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #8 + movs r0, #0 + mov ip, r0 + movs r4, #0 + ldr r1, _080DCD60 + mov sb, r1 + add r2, sp, #4 + mov r6, sb + movs r5, #0 + adds r3, r2, #0 +_080DCD10: + mov r0, sp + adds r1, r0, r4 + adds r0, r4, r6 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, r4 + strb r5, [r0] + adds r4, #1 + cmp r4, #3 + ble _080DCD10 + movs r4, #0 + ldr r7, _080DCD64 + ldr r1, [r7] + mov r8, r1 + adds r5, r2, #0 +_080DCD2E: + movs r2, #0 + mov r0, r8 + ldr r1, [r0, #4] +_080DCD34: + ldrb r0, [r1, #0x19] + cmp r0, r4 + beq _080DCD68 + adds r1, #0x1c + adds r2, #1 + cmp r2, #3 + ble _080DCD34 +_080DCD42: + cmp r2, #4 + bne _080DCDE8 + movs r2, #0 + ldrb r0, [r5] + cmp r0, #0 + bne _080DCD76 + ldr r0, [r7] + ldr r0, [r0, #4] + ldrb r0, [r0, #0x19] + cmp r0, #0xff + bne _080DCD76 + mov ip, r2 + movs r2, #1 + b _080DCD9E + .align 2, 0 +_080DCD60: .4byte 0x02039BC6 +_080DCD64: .4byte 0x02039BD4 +_080DCD68: + mov r1, sp + adds r0, r1, r2 + strb r4, [r0] + adds r1, r5, r2 + movs r0, #1 + strb r0, [r1] + b _080DCD42 +_080DCD76: + adds r2, #1 + cmp r2, #3 + bgt _080DCDDA + adds r0, r5, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _080DCD76 + ldr r0, [r7] + ldr r1, [r0, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #0x19] + cmp r0, #0xff + bne _080DCD76 + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + mov ip, r0 + adds r2, #1 +_080DCD9E: + cmp r2, #3 + bgt _080DCDDA + ldr r6, _080DCE38 + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r3, r0, #2 +_080DCDAA: + adds r0, r5, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _080DCDD2 + ldr r0, [r7] + ldr r0, [r0, #4] + adds r0, r3, r0 + ldrb r0, [r0, #0x19] + cmp r0, #0xff + bne _080DCDD2 + mov r1, ip + adds r0, r1, r6 + adds r1, r2, r6 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _080DCDD2 + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + mov ip, r0 +_080DCDD2: + adds r3, #0x1c + adds r2, #1 + cmp r2, #3 + ble _080DCDAA +_080DCDDA: + mov r0, sp + add r0, ip + strb r4, [r0] + mov r0, ip + adds r1, r5, r0 + movs r0, #1 + strb r0, [r1] +_080DCDE8: + adds r4, #1 + cmp r4, #3 + ble _080DCD2E + movs r4, #0 + ldr r6, _080DCE3C + movs r5, #0 +_080DCDF4: + ldr r0, [r6] + ldr r1, [r0, #8] + adds r1, r1, r4 + mov r0, sp + adds r3, r0, r4 + ldrb r0, [r3] + strb r0, [r1] + ldr r0, [r6] + ldr r0, [r0, #4] + adds r0, r5, r0 + movs r1, #0xff + strb r1, [r0, #0x19] + ldr r0, [r6] + ldr r1, [r0, #4] + adds r1, r5, r1 + ldrb r2, [r1, #0x10] + movs r0, #0x3f + ands r0, r2 + strb r0, [r1, #0x10] + mov r0, sb + adds r1, r4, r0 + ldrb r0, [r3] + strb r0, [r1] + adds r5, #0x1c + adds r4, #1 + cmp r4, #3 + ble _080DCDF4 + add sp, #8 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DCE38: .4byte 0x02039BC6 +_080DCE3C: .4byte 0x02039BD4 + thumb_func_end ApplyNextTurnOrder + + thumb_func_start sub_080DCE40 +sub_080DCE40: @ 0x080DCE40 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x30] + adds r1, r0, #1 + strh r1, [r2, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x54 + ble _080DCE76 + movs r0, #0 + strh r0, [r2, #0x30] + adds r3, r2, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r1, #4 + orrs r0, r1 + strb r0, [r3] + ldr r0, _080DCE7C + str r0, [r2, #0x1c] + ldr r0, _080DCE80 + ldr r0, [r0] + ldr r2, [r0] + ldrb r1, [r2, #6] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #6] +_080DCE76: + pop {r0} + bx r0 + .align 2, 0 +_080DCE7C: .4byte 0x08007141 +_080DCE80: .4byte 0x02039BD4 + thumb_func_end sub_080DCE40 + + thumb_func_start sub_080DCE84 +sub_080DCE84: @ 0x080DCE84 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r0, _080DCEA4 + ldr r0, [r0] + ldr r0, [r0] + ldrb r5, [r0, #0x12] + cmp r1, #8 + bls _080DCE98 + b _080DD038 +_080DCE98: + lsls r0, r1, #2 + ldr r1, _080DCEA8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080DCEA4: .4byte 0x02039BD4 +_080DCEA8: .4byte 0x080DCEAC +_080DCEAC: @ jump table + .4byte _080DCED0 @ case 0 + .4byte _080DCED0 @ case 1 + .4byte _080DCF00 @ case 2 + .4byte _080DCF34 @ case 3 + .4byte _080DCF68 @ case 4 + .4byte _080DCF9C @ case 5 + .4byte _080DCFD0 @ case 6 + .4byte _080DD038 @ case 7 + .4byte _080DD004 @ case 8 +_080DCED0: + ldr r0, _080DCEF4 + lsls r4, r5, #4 + adds r1, r4, r5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r0, [r1, #0x2e] + ldr r2, _080DCEF8 + ands r2, r0 + ldrh r3, [r1, #4] + ldr r0, _080DCEFC + ands r0, r3 + orrs r0, r2 + strh r0, [r1, #4] + movs r0, #0x20 + bl PlaySE + b _080DD05C + .align 2, 0 +_080DCEF4: .4byte 0x020205AC +_080DCEF8: .4byte 0x000003FF +_080DCEFC: .4byte 0xFFFFFC00 +_080DCF00: + ldr r0, _080DCF28 + lsls r4, r5, #4 + adds r1, r4, r5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r2, [r1, #0x2e] + adds r2, #4 + ldr r3, _080DCF2C + adds r0, r3, #0 + ands r2, r0 + ldrh r3, [r1, #4] + ldr r0, _080DCF30 + ands r0, r3 + orrs r0, r2 + strh r0, [r1, #4] + movs r0, #0x1f + bl PlaySE + b _080DD05C + .align 2, 0 +_080DCF28: .4byte 0x020205AC +_080DCF2C: .4byte 0x000003FF +_080DCF30: .4byte 0xFFFFFC00 +_080DCF34: + ldr r0, _080DCF5C + lsls r4, r5, #4 + adds r1, r4, r5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r2, [r1, #0x2e] + adds r2, #8 + ldr r3, _080DCF60 + adds r0, r3, #0 + ands r2, r0 + ldrh r3, [r1, #4] + ldr r0, _080DCF64 + ands r0, r3 + orrs r0, r2 + strh r0, [r1, #4] + movs r0, #0x1f + bl PlaySE + b _080DD05C + .align 2, 0 +_080DCF5C: .4byte 0x020205AC +_080DCF60: .4byte 0x000003FF +_080DCF64: .4byte 0xFFFFFC00 +_080DCF68: + ldr r0, _080DCF90 + lsls r4, r5, #4 + adds r1, r4, r5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r2, [r1, #0x2e] + adds r2, #0xc + ldr r3, _080DCF94 + adds r0, r3, #0 + ands r2, r0 + ldrh r3, [r1, #4] + ldr r0, _080DCF98 + ands r0, r3 + orrs r0, r2 + strh r0, [r1, #4] + movs r0, #0x2d + bl PlaySE + b _080DD05C + .align 2, 0 +_080DCF90: .4byte 0x020205AC +_080DCF94: .4byte 0x000003FF +_080DCF98: .4byte 0xFFFFFC00 +_080DCF9C: + ldr r0, _080DCFC4 + lsls r4, r5, #4 + adds r1, r4, r5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r2, [r1, #0x2e] + adds r2, #0xc + ldr r3, _080DCFC8 + adds r0, r3, #0 + ands r2, r0 + ldrh r3, [r1, #4] + ldr r0, _080DCFCC + ands r0, r3 + orrs r0, r2 + strh r0, [r1, #4] + movs r0, #0x2d + bl PlaySE + b _080DD05C + .align 2, 0 +_080DCFC4: .4byte 0x020205AC +_080DCFC8: .4byte 0x000003FF +_080DCFCC: .4byte 0xFFFFFC00 +_080DCFD0: + ldr r0, _080DCFF8 + lsls r4, r5, #4 + adds r1, r4, r5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r2, [r1, #0x2e] + adds r2, #0x10 + ldr r3, _080DCFFC + adds r0, r3, #0 + ands r2, r0 + ldrh r3, [r1, #4] + ldr r0, _080DD000 + ands r0, r3 + orrs r0, r2 + strh r0, [r1, #4] + movs r0, #0x2d + bl PlaySE + b _080DD05C + .align 2, 0 +_080DCFF8: .4byte 0x020205AC +_080DCFFC: .4byte 0x000003FF +_080DD000: .4byte 0xFFFFFC00 +_080DD004: + ldr r0, _080DD02C + lsls r4, r5, #4 + adds r1, r4, r5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r2, [r1, #0x2e] + adds r2, #0x18 + ldr r3, _080DD030 + adds r0, r3, #0 + ands r2, r0 + ldrh r3, [r1, #4] + ldr r0, _080DD034 + ands r0, r3 + orrs r0, r2 + strh r0, [r1, #4] + movs r0, #0xc3 + bl PlaySE + b _080DD05C + .align 2, 0 +_080DD02C: .4byte 0x020205AC +_080DD030: .4byte 0x000003FF +_080DD034: .4byte 0xFFFFFC00 +_080DD038: + ldr r0, _080DD090 + lsls r4, r5, #4 + adds r1, r4, r5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r2, [r1, #0x2e] + adds r2, #0x14 + ldr r3, _080DD094 + adds r0, r3, #0 + ands r2, r0 + ldrh r3, [r1, #4] + ldr r0, _080DD098 + ands r0, r3 + orrs r0, r2 + strh r0, [r1, #4] + movs r0, #0x2d + bl PlaySE +_080DD05C: + adds r2, r4, #0 + ldr r4, _080DD090 + adds r2, r2, r5 + lsls r2, r2, #2 + adds r1, r2, r4 + movs r0, #0 + strh r0, [r1, #0x30] + adds r1, #0x3e + ldrb r3, [r1] + subs r0, #5 + ands r0, r3 + strb r0, [r1] + adds r4, #0x1c + adds r2, r2, r4 + ldr r0, _080DD09C + str r0, [r2] + ldr r0, _080DD0A0 + ldr r0, [r0] + ldr r2, [r0] + ldrb r0, [r2, #6] + movs r1, #0x10 + orrs r0, r1 + strb r0, [r2, #6] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080DD090: .4byte 0x020205AC +_080DD094: .4byte 0x000003FF +_080DD098: .4byte 0xFFFFFC00 +_080DD09C: .4byte 0x080DCE41 +_080DD0A0: .4byte 0x02039BD4 + thumb_func_end sub_080DCE84 + + thumb_func_start UpdateApplauseMeter +UpdateApplauseMeter: @ 0x080DD0A4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + movs r5, #0 + ldr r6, _080DD140 + ldr r0, _080DD144 + mov sb, r0 + ldr r0, _080DD148 + mov r8, r0 + ldr r7, _080DD14C +_080DD0BA: + ldr r0, [r6] + ldr r1, [r0] + movs r0, #0x13 + ldrsb r0, [r1, r0] + ldr r4, _080DD150 + cmp r5, r0 + bge _080DD0CA + adds r4, #0x40 +_080DD0CA: + adds r0, r1, #0 + adds r0, #0x58 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sb + ldrh r1, [r0, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x16 + adds r0, r5, #0 + adds r0, #0x11 + adds r1, r1, r0 + lsls r1, r1, #5 + add r1, r8 + adds r0, r4, #0 + adds r2, r7, #0 + bl CpuSet + adds r0, r4, #0 + adds r0, #0x20 + ldr r1, [r6] + ldr r1, [r1] + adds r1, #0x58 + ldrb r2, [r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + add r1, sb + ldrh r1, [r1, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x16 + adds r2, r5, #0 + adds r2, #0x19 + adds r1, r1, r2 + lsls r1, r1, #5 + add r1, r8 + adds r2, r7, #0 + bl CpuSet + ldr r0, [r6] + ldr r0, [r0] + ldrb r0, [r0, #0x13] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #4 + ble _080DD12C + bl StartApplauseOverflowAnimation +_080DD12C: + adds r5, #1 + cmp r5, #4 + ble _080DD0BA + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DD140: .4byte 0x02039BD4 +_080DD144: .4byte 0x020205AC +_080DD148: .4byte 0x06010000 +_080DD14C: .4byte 0x04000008 +_080DD150: .4byte 0x08D8EBD8 + thumb_func_end UpdateApplauseMeter + + thumb_func_start Contest_GetMoveExcitement +Contest_GetMoveExcitement: @ 0x080DD154 + lsls r0, r0, #0x10 + ldr r3, _080DD178 + ldr r1, _080DD17C + lsrs r0, r0, #0xd + adds r0, r0, r1 + ldrb r1, [r0, #1] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + ldr r0, _080DD180 + ldrh r2, [r0] + lsls r0, r2, #2 + adds r0, r0, r2 + adds r1, r1, r0 + adds r1, r1, r3 + movs r0, #0 + ldrsb r0, [r1, r0] + bx lr + .align 2, 0 +_080DD178: .4byte 0x08562970 +_080DD17C: .4byte 0x08565FCC +_080DD180: .4byte 0x02039BCC + thumb_func_end Contest_GetMoveExcitement + + thumb_func_start StartApplauseOverflowAnimation +StartApplauseOverflowAnimation: @ 0x080DD184 + push {r4, r5, lr} + ldr r0, _080DD1B8 + movs r1, #0xa + bl CreateTask + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _080DD1BC + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + adds r4, r4, r0 + movs r0, #1 + strh r0, [r4, #0xa] + ldr r0, _080DD1C0 + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0xc] + adds r0, r5, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080DD1B8: .4byte 0x080DD1C5 +_080DD1BC: .4byte 0x03005B60 +_080DD1C0: .4byte 0x0000ABE2 + thumb_func_end StartApplauseOverflowAnimation + + thumb_func_start Task_ApplauseOverflowAnimation +Task_ApplauseOverflowAnimation: @ 0x080DD1C4 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _080DD1F4 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r2, r0, r1 + ldrh r0, [r2, #8] + adds r0, #1 + strh r0, [r2, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + bne _080DD262 + movs r0, #0 + strh r0, [r2, #8] + movs r3, #0xe + ldrsh r0, [r2, r3] + cmp r0, #0 + bne _080DD1F8 + ldrh r0, [r2, #0x10] + adds r0, #1 + b _080DD1FC + .align 2, 0 +_080DD1F4: .4byte 0x03005B60 +_080DD1F8: + ldrh r0, [r2, #0x10] + subs r0, #1 +_080DD1FC: + strh r0, [r2, #0x10] + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #0xc + ldrsh r0, [r4, r1] + lsls r0, r0, #4 + movs r3, #0x84 + lsls r3, r3, #1 + adds r6, r3, #0 + adds r0, r0, r6 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrb r2, [r4, #0x10] + ldr r3, _080DD268 + movs r1, #1 + bl BlendPalette + movs r1, #0x10 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _080DD22E + cmp r0, #0x10 + bne _080DD262 +_080DD22E: + ldrh r0, [r4, #0xe] + movs r1, #1 + eors r0, r1 + strh r0, [r4, #0xe] + ldr r0, _080DD26C + ldr r0, [r0] + ldr r0, [r0] + ldrb r0, [r0, #0x13] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #4 + bgt _080DD262 + movs r3, #0xc + ldrsh r0, [r4, r3] + lsls r0, r0, #4 + adds r0, r0, r6 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + movs r2, #0 + movs r3, #0x1f + bl BlendPalette + adds r0, r5, #0 + bl DestroyTask +_080DD262: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080DD268: .4byte 0x00007FFF +_080DD26C: .4byte 0x02039BD4 + thumb_func_end Task_ApplauseOverflowAnimation + + thumb_func_start StartMoveApplauseMeterOnscreen +StartMoveApplauseMeterOnscreen: @ 0x080DD270 + push {r4, lr} + ldr r0, _080DD2C0 + movs r1, #0xa + bl CreateTask + ldr r3, _080DD2C4 + ldr r4, _080DD2C8 + ldr r2, [r4] + ldr r0, [r2] + adds r0, #0x58 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldr r1, _080DD2CC + strh r1, [r0, #0x24] + ldr r0, [r2] + adds r0, #0x58 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + ldr r0, [r4] + ldr r2, [r0] + ldrb r0, [r2, #6] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2, #6] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DD2C0: .4byte 0x080DD2D1 +_080DD2C4: .4byte 0x020205AC +_080DD2C8: .4byte 0x02039BD4 +_080DD2CC: .4byte 0x0000FFBA + thumb_func_end StartMoveApplauseMeterOnscreen + + thumb_func_start Task_MoveApplauseMeterOnscreen +Task_MoveApplauseMeterOnscreen: @ 0x080DD2D0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r3, r0, #0 + ldr r4, _080DD340 + ldr r0, [r4] + ldr r0, [r0] + adds r0, #0x58 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080DD344 + adds r2, r0, r1 + ldr r0, _080DD348 + lsls r1, r3, #2 + adds r1, r1, r3 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r5, #0xd0 + lsls r5, r5, #3 + adds r0, r5, #0 + ldrh r5, [r1, #0x1c] + adds r0, r0, r5 + strh r0, [r1, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + ldrh r5, [r2, #0x24] + adds r0, r0, r5 + strh r0, [r2, #0x24] + ldrb r0, [r1, #0x1c] + strh r0, [r1, #0x1c] + movs r1, #0x24 + ldrsh r0, [r2, r1] + cmp r0, #0 + ble _080DD31C + movs r0, #0 + strh r0, [r2, #0x24] +_080DD31C: + movs r5, #0x24 + ldrsh r0, [r2, r5] + cmp r0, #0 + bne _080DD338 + ldr r0, [r4] + ldr r2, [r0] + ldrb r1, [r2, #6] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #6] + adds r0, r3, #0 + bl DestroyTask +_080DD338: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080DD340: .4byte 0x02039BD4 +_080DD344: .4byte 0x020205AC +_080DD348: .4byte 0x03005B60 + thumb_func_end Task_MoveApplauseMeterOnscreen + + thumb_func_start TryMoveApplauseMeterOffscreen +TryMoveApplauseMeterOffscreen: @ 0x080DD34C + push {r4, r5, lr} + ldr r5, _080DD378 + ldr r4, _080DD37C + ldr r0, [r4] + ldr r2, [r0] + adds r0, r2, #0 + adds r0, #0x58 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + bge _080DD380 + ldrb r1, [r2, #6] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + b _080DD3A4 + .align 2, 0 +_080DD378: .4byte 0x020205AC +_080DD37C: .4byte 0x02039BD4 +_080DD380: + ldr r0, _080DD3AC + movs r1, #0xa + bl CreateTask + ldr r2, [r4] + ldr r0, [r2] + adds r0, #0x58 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0 + strh r1, [r0, #0x24] + ldr r2, [r2] + ldrb r0, [r2, #6] + movs r1, #0x40 + orrs r0, r1 +_080DD3A4: + strb r0, [r2, #6] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080DD3AC: .4byte 0x080DD3B1 + thumb_func_end TryMoveApplauseMeterOffscreen + + thumb_func_start Task_MoveApplauseMeterOffscreen +Task_MoveApplauseMeterOffscreen: @ 0x080DD3B0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r4, r0, #0 + ldr r5, _080DD430 + ldr r0, [r5] + ldr r0, [r0] + adds r0, #0x58 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080DD434 + adds r3, r0, r1 + ldr r0, _080DD438 + lsls r2, r4, #2 + adds r2, r2, r4 + lsls r2, r2, #3 + adds r2, r2, r0 + movs r1, #0xd0 + lsls r1, r1, #3 + adds r0, r1, #0 + ldrh r1, [r2, #0x1c] + adds r0, r0, r1 + strh r0, [r2, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + ldrh r1, [r3, #0x24] + subs r1, r1, r0 + strh r1, [r3, #0x24] + ldrb r0, [r2, #0x1c] + strh r0, [r2, #0x1c] + movs r2, #0x24 + ldrsh r0, [r3, r2] + movs r1, #0x46 + rsbs r1, r1, #0 + cmp r0, r1 + bge _080DD400 + ldr r0, _080DD43C + strh r0, [r3, #0x24] +_080DD400: + movs r2, #0x24 + ldrsh r0, [r3, r2] + cmp r0, r1 + bne _080DD428 + adds r2, r3, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r5] + ldr r2, [r0] + ldrb r1, [r2, #6] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #6] + adds r0, r4, #0 + bl DestroyTask +_080DD428: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080DD430: .4byte 0x02039BD4 +_080DD434: .4byte 0x020205AC +_080DD438: .4byte 0x03005B60 +_080DD43C: .4byte 0x0000FFBA + thumb_func_end Task_MoveApplauseMeterOffscreen + + thumb_func_start ShowAndUpdateApplauseMeter +ShowAndUpdateApplauseMeter: @ 0x080DD440 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _080DD478 + movs r1, #5 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080DD47C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + strh r4, [r1, #8] + ldr r0, _080DD480 + ldr r0, [r0] + ldr r2, [r0] + ldrb r0, [r2, #6] + movs r1, #0x20 + orrs r0, r1 + strb r0, [r2, #6] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DD478: .4byte 0x080DD485 +_080DD47C: .4byte 0x03005B60 +_080DD480: .4byte 0x02039BD4 + thumb_func_end ShowAndUpdateApplauseMeter + + thumb_func_start Task_ShowAndUpdateApplauseMeter +Task_ShowAndUpdateApplauseMeter: @ 0x080DD484 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _080DD4A8 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #0x1c + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _080DD4B8 + cmp r0, #1 + bgt _080DD4AC + cmp r0, #0 + beq _080DD4B2 + b _080DD500 + .align 2, 0 +_080DD4A8: .4byte 0x03005B60 +_080DD4AC: + cmp r0, #2 + beq _080DD4D4 + b _080DD500 +_080DD4B2: + bl StartMoveApplauseMeterOnscreen + b _080DD4C8 +_080DD4B8: + ldr r0, _080DD4D0 + ldr r0, [r0] + ldr r0, [r0] + ldrb r1, [r0, #6] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _080DD500 +_080DD4C8: + ldrh r0, [r4, #0x1c] + adds r0, #1 + strh r0, [r4, #0x1c] + b _080DD500 + .align 2, 0 +_080DD4D0: .4byte 0x02039BD4 +_080DD4D4: + ldrh r0, [r4, #0x1e] + adds r1, r0, #1 + strh r1, [r4, #0x1e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x14 + ble _080DD500 + movs r0, #0 + strh r0, [r4, #0x1e] + bl UpdateApplauseMeter + ldr r0, _080DD508 + ldr r0, [r0] + ldr r2, [r0] + ldrb r1, [r2, #6] + movs r0, #0x21 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #6] + adds r0, r5, #0 + bl DestroyTask +_080DD500: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080DD508: .4byte 0x02039BD4 + thumb_func_end Task_ShowAndUpdateApplauseMeter + + thumb_func_start HideApplauseMeterNoAnim +HideApplauseMeterNoAnim: @ 0x080DD50C + ldr r3, _080DD540 + ldr r0, _080DD544 + ldr r2, [r0] + ldr r0, [r2] + adds r0, #0x58 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r1, #0 + strh r1, [r0, #0x24] + ldr r0, [r2] + adds r0, #0x58 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 +_080DD540: .4byte 0x020205AC +_080DD544: .4byte 0x02039BD4 + thumb_func_end HideApplauseMeterNoAnim + + thumb_func_start ShowApplauseMeterNoAnim +ShowApplauseMeterNoAnim: @ 0x080DD548 + ldr r2, _080DD568 + ldr r0, _080DD56C + ldr r0, [r0] + ldr r0, [r0] + adds r0, #0x58 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 +_080DD568: .4byte 0x020205AC +_080DD56C: .4byte 0x02039BD4 + thumb_func_end ShowApplauseMeterNoAnim + + thumb_func_start sub_080DD570 +sub_080DD570: @ 0x080DD570 + push {lr} + ldr r0, _080DD58C + movs r1, #0xf + bl CreateTask + ldr r0, _080DD590 + ldr r0, [r0] + ldr r2, [r0] + ldrb r0, [r2, #6] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #6] + pop {r0} + bx r0 + .align 2, 0 +_080DD58C: .4byte 0x080DD595 +_080DD590: .4byte 0x02039BD4 + thumb_func_end sub_080DD570 + + thumb_func_start sub_080DD594 +sub_080DD594: @ 0x080DD594 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _080DD5D0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrh r0, [r4, #0x1c] + adds r1, r0, #1 + strh r1, [r4, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #6 + ble _080DD61E + movs r0, #0 + strh r0, [r4, #0x1c] + movs r1, #0x1e + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080DD5DC + ldr r0, _080DD5D4 + ldr r1, _080DD5D8 + movs r2, #0x80 + lsls r2, r2, #5 + movs r3, #1 + bl RequestDma3Copy + b _080DD5F0 + .align 2, 0 +_080DD5D0: .4byte 0x03005B60 +_080DD5D4: .4byte 0x02019000 +_080DD5D8: .4byte 0x06002000 +_080DD5DC: + ldr r0, _080DD624 + ldr r1, _080DD628 + movs r2, #0x80 + lsls r2, r2, #5 + movs r3, #1 + bl RequestDma3Copy + ldrh r0, [r4, #0x20] + adds r0, #1 + strh r0, [r4, #0x20] +_080DD5F0: + ldr r1, _080DD62C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #0x1e] + movs r2, #1 + eors r1, r2 + strh r1, [r0, #0x1e] + movs r1, #0x20 + ldrsh r0, [r0, r1] + cmp r0, #9 + bne _080DD61E + ldr r0, _080DD630 + ldr r0, [r0] + ldr r2, [r0] + ldrb r1, [r2, #6] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #6] + adds r0, r5, #0 + bl DestroyTask +_080DD61E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080DD624: .4byte 0x02018000 +_080DD628: .4byte 0x06002000 +_080DD62C: .4byte 0x03005B60 +_080DD630: .4byte 0x02039BD4 + thumb_func_end sub_080DD594 + + thumb_func_start sub_080DD634 +sub_080DD634: @ 0x080DD634 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + ldr r0, _080DD674 + movs r1, #0xa + bl CreateTask + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r4, r4, #0x18 + cmp r4, #0 + ble _080DD69C + ldr r7, _080DD678 + lsls r0, r5, #0x18 + adds r4, r0, #0 + cmp r4, #0 + ble _080DD680 + movs r5, #0 + ldr r2, _080DD67C + ldr r0, [r2] + ldr r0, [r0] + movs r1, #0x13 + ldrsb r1, [r0, r1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + b _080DD6B2 + .align 2, 0 +_080DD674: .4byte 0x080DD6E5 +_080DD678: .4byte 0x0000237E +_080DD67C: .4byte 0x02039BD4 +_080DD680: + ldr r2, _080DD698 + ldr r0, [r2] + ldr r0, [r0] + movs r1, #0x13 + ldrsb r1, [r0, r1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r3, #0 + b _080DD6B2 + .align 2, 0 +_080DD698: .4byte 0x02039BD4 +_080DD69C: + movs r7, #0 + lsls r0, r5, #0x18 + adds r4, r0, #0 + cmp r4, #0 + ble _080DD6AC + movs r5, #0 + movs r3, #0xc + b _080DD6B0 +_080DD6AC: + movs r5, #0xc + movs r3, #0 +_080DD6B0: + ldr r2, _080DD6DC +_080DD6B2: + ldr r1, _080DD6E0 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r7, [r0, #8] + strh r5, [r0, #0xa] + asrs r1, r4, #0x18 + strh r1, [r0, #0xc] + strh r3, [r0, #0xe] + ldr r0, [r2] + ldr r2, [r0] + ldrb r1, [r2, #7] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #7] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DD6DC: .4byte 0x02039BD4 +_080DD6E0: .4byte 0x03005B60 + thumb_func_end sub_080DD634 + + thumb_func_start sub_080DD6E4 +sub_080DD6E4: @ 0x080DD6E4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r2, _080DD714 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r3, r0, r2 + ldrh r0, [r3, #0x1c] + adds r1, r0, #1 + strh r1, [r3, #0x1c] + lsls r0, r0, #0x10 + cmp r0, #0 + blt _080DD760 + movs r0, #0 + strh r0, [r3, #0x1c] + movs r1, #0xc + ldrsh r0, [r3, r1] + cmp r0, #0 + ble _080DD718 + ldrh r0, [r3, #0xa] + adds r0, #1 + b _080DD71C + .align 2, 0 +_080DD714: .4byte 0x03005B60 +_080DD718: + ldrh r0, [r3, #0xa] + subs r0, #1 +_080DD71C: + strh r0, [r3, #0xa] + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + adds r4, r4, r2 + ldrb r2, [r4, #0xa] + ldrh r3, [r4, #8] + movs r0, #0x11 + movs r1, #1 + bl BlendPalette + ldrb r2, [r4, #0xa] + ldrh r3, [r4, #8] + movs r0, #0x1a + movs r1, #1 + bl BlendPalette + movs r2, #0xa + ldrsh r1, [r4, r2] + movs r2, #0xe + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080DD760 + adds r0, r5, #0 + bl DestroyTask + ldr r0, _080DD768 + ldr r0, [r0] + ldr r2, [r0] + ldrb r1, [r2, #7] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #7] +_080DD760: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080DD768: .4byte 0x02039BD4 + thumb_func_end sub_080DD6E4 + + thumb_func_start sub_080DD76C +sub_080DD76C: @ 0x080DD76C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + movs r5, #0 + ldr r0, _080DD808 + mov sb, r0 + mov r8, sb + ldr r6, _080DD80C + movs r4, #0 + movs r7, #0 +_080DD78A: + mov r1, r8 + ldr r0, [r1] + ldr r0, [r0, #4] + adds r0, r7, r0 + ldrb r1, [r0, #0x10] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0 + beq _080DD820 + mov r2, sl + cmp r2, #0 + beq _080DD820 + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + bl GetTurnOrderNumberGfx + mov r3, r8 + ldr r1, [r3] + ldr r1, [r1, #0x14] + adds r1, r4, r1 + ldrb r2, [r1, #1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrh r1, [r1, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x11 + ldr r2, _080DD810 + adds r1, r1, r2 + ldr r2, _080DD814 + bl CpuSet + mov r0, r8 + ldr r3, [r0] + ldr r0, [r3, #0x14] + adds r0, r4, r0 + ldrb r0, [r0, #1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldr r2, _080DD818 + ldr r0, _080DD81C + adds r0, r5, r0 + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r0, [r0] + strh r0, [r1, #0x22] + ldr r0, [r3, #0x14] + adds r0, r4, r0 + ldrb r1, [r0, #1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x3e + ldrb r1, [r0] + movs r3, #5 + rsbs r3, r3, #0 + adds r2, r3, #0 + ands r1, r2 + b _080DD83A + .align 2, 0 +_080DD808: .4byte 0x02039BD4 +_080DD80C: .4byte 0x020205AC +_080DD810: .4byte 0x06010040 +_080DD814: .4byte 0x04000008 +_080DD818: .4byte 0x085609D4 +_080DD81C: .4byte 0x02039BC6 +_080DD820: + mov r1, sb + ldr r0, [r1] + ldr r0, [r0, #0x14] + adds r0, r4, r0 + ldrb r1, [r0, #1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 +_080DD83A: + strb r1, [r0] + adds r4, #4 + adds r7, #0x1c + adds r5, #1 + cmp r5, #3 + ble _080DD78A + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_080DD76C + + thumb_func_start GetTurnOrderNumberGfx +GetTurnOrderNumberGfx: @ 0x080DD854 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080DD87C + ldr r1, [r1] + ldr r2, [r1, #4] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r2, r1, r2 + ldrb r1, [r2, #0x10] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0x40 + bne _080DD884 + ldrb r0, [r2, #0x19] + lsls r0, r0, #5 + ldr r1, _080DD880 + adds r0, r0, r1 + b _080DD886 + .align 2, 0 +_080DD87C: .4byte 0x02039BD4 +_080DD880: .4byte 0x08D8E97C +_080DD884: + ldr r0, _080DD88C +_080DD886: + pop {r1} + bx r1 + .align 2, 0 +_080DD88C: .4byte 0x08D8E9FC + thumb_func_end GetTurnOrderNumberGfx + + thumb_func_start sub_080DD890 +sub_080DD890: @ 0x080DD890 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + movs r7, #0 + movs r0, #2 + mov sl, r0 + movs r0, #1 + mov r8, r0 + movs r0, #0x11 + mov sb, r0 +_080DD8AA: + ldr r0, _080DD944 + ldr r0, [r0] + ldr r0, [r0, #8] + adds r0, #0xd + adds r0, r0, r7 + ldrb r0, [r0] + cmp r0, #0 + beq _080DD92E + lsls r0, r7, #0x18 + lsrs r0, r0, #0x18 + bl Contest_IsMonsTurnDisabled + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080DD92E + ldr r0, _080DD948 + adds r0, r7, r0 + ldrb r0, [r0] + lsls r5, r0, #2 + adds r5, r5, r0 + adds r6, r5, #2 + movs r0, #3 + bl sub_080DAEAC + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov r0, sl + str r0, [sp] + mov r0, r8 + str r0, [sp, #4] + mov r0, sb + str r0, [sp, #8] + mov r0, r8 + str r0, [sp, #0xc] + movs r0, #0 + adds r1, r4, #0 + movs r2, #0x14 + adds r3, r6, #0 + bl ContestBG_FillBoxWithIncrementingTile + adds r4, #0x10 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r5, #3 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + mov r0, sl + str r0, [sp] + mov r0, r8 + str r0, [sp, #4] + mov r0, sb + str r0, [sp, #8] + mov r0, r8 + str r0, [sp, #0xc] + movs r0, #0 + adds r1, r4, #0 + movs r2, #0x14 + adds r3, r5, #0 + bl ContestBG_FillBoxWithIncrementingTile + movs r0, #0x63 + bl PlaySE +_080DD92E: + adds r7, #1 + cmp r7, #3 + ble _080DD8AA + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DD944: .4byte 0x02039BD4 +_080DD948: .4byte 0x02039BC6 + thumb_func_end sub_080DD890 + + thumb_func_start sub_080DD94C +sub_080DD94C: @ 0x080DD94C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080DD97C + ldr r1, [r1] + ldr r2, [r1, #4] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r2, r1, r2 + ldrb r1, [r2, #0x15] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _080DD976 + ldrb r1, [r2, #0xc] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _080DD980 +_080DD976: + movs r0, #0 + b _080DD982 + .align 2, 0 +_080DD97C: .4byte 0x02039BD4 +_080DD980: + movs r0, #1 +_080DD982: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080DD94C + + thumb_func_start sub_080DD988 +sub_080DD988: @ 0x080DD988 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + movs r0, #0xa + bl GetGpuReg + mov r1, sp + strh r0, [r1] + mov r2, sp + ldrb r1, [r2] + movs r4, #4 + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r1 + strb r0, [r2] + ldrb r1, [r2, #1] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #1] + ldrb r1, [r2, #1] + movs r0, #0x21 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #1] + ldrb r1, [r2] + movs r0, #0xd + rsbs r0, r0, #0 + mov r8, r0 + ands r0, r1 + strb r0, [r2] + mov r0, sp + ldrh r1, [r0] + movs r0, #0xa + bl SetGpuReg + movs r0, #8 + bl GetGpuReg + mov r6, sp + adds r6, #2 + strh r0, [r6] + movs r0, #0xc + bl GetGpuReg + add r5, sp, #4 + strh r0, [r5] + ldrb r1, [r6] + adds r0, r4, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r6] + ldrb r0, [r5] + ands r4, r0 + orrs r4, r1 + strb r4, [r5] + ldrh r1, [r6] + movs r0, #8 + bl SetGpuReg + ldrh r1, [r5] + movs r0, #0xc + bl SetGpuReg + ldr r1, _080DDA9C + movs r0, #0xf0 + strh r0, [r1] + ldr r4, _080DDAA0 + movs r0, #0xa0 + strh r0, [r4] + movs r0, #0x14 + movs r1, #0xf0 + bl SetGpuReg + ldrh r1, [r4] + movs r0, #0x16 + bl SetGpuReg + movs r0, #0 + str r0, [sp, #8] + add r0, sp, #8 + ldr r4, _080DDAA4 + ldr r1, [r4] + ldr r1, [r1, #0x28] + ldr r2, _080DDAA8 + bl CpuSet + ldr r1, _080DDAAC + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + movs r0, #1 + bl Contest_SetBgCopyFlags + movs r5, #0 + ldr r7, _080DDAB0 + movs r6, #4 +_080DDA54: + ldr r0, [r4] + ldr r0, [r0, #0x14] + lsls r3, r5, #2 + adds r0, r3, r0 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r7 + ldrb r2, [r1, #5] + mov r0, r8 + ands r0, r2 + orrs r0, r6 + strb r0, [r1, #5] + ldr r0, [r4] + ldr r0, [r0, #0x14] + adds r3, r3, r0 + ldrb r0, [r3, #1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r7 + ldrb r2, [r1, #5] + mov r0, r8 + ands r0, r2 + orrs r0, r6 + strb r0, [r1, #5] + adds r5, #1 + cmp r5, #3 + ble _080DDA54 + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DDA9C: .4byte 0x02022ACC +_080DDAA0: .4byte 0x02022ACE +_080DDAA4: .4byte 0x02039BD4 +_080DDAA8: .4byte 0x05000400 +_080DDAAC: .4byte 0x08C17988 +_080DDAB0: .4byte 0x020205AC + thumb_func_end sub_080DD988 + + thumb_func_start sub_080DDAB4 +sub_080DDAB4: @ 0x080DDAB4 + push {r4, r5, r6, r7, lr} + sub sp, #8 + ldr r1, _080DDB70 + movs r2, #0x80 + lsls r2, r2, #6 + movs r0, #0 + movs r3, #1 + bl RequestDma3Fill + movs r5, #0 + str r5, [sp] + ldr r6, _080DDB74 + ldr r0, [r6] + ldr r1, [r0, #0x28] + ldr r2, _080DDB78 + mov r0, sp + bl CpuSet + movs r0, #1 + bl Contest_SetBgCopyFlags + movs r0, #0xa + bl GetGpuReg + add r3, sp, #4 + strh r0, [r3] + ldrb r1, [r3] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r3] + mov r1, sp + adds r1, #5 + ldrb r2, [r1] + movs r0, #0x3f + ands r0, r2 + strb r0, [r1] + ldrb r2, [r1] + movs r0, #0x21 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldrb r1, [r3] + movs r4, #0xd + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r3] + ldrh r1, [r3] + movs r0, #0xa + bl SetGpuReg + ldr r0, _080DDB7C + strh r5, [r0] + ldr r0, _080DDB80 + strh r5, [r0] + ldr r7, _080DDB84 +_080DDB2E: + ldr r0, [r6] + ldr r0, [r0, #0x14] + lsls r3, r5, #2 + adds r0, r3, r0 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r7 + ldrb r2, [r1, #5] + adds r0, r4, #0 + ands r0, r2 + strb r0, [r1, #5] + ldr r0, [r6] + ldr r0, [r0, #0x14] + adds r3, r3, r0 + ldrb r0, [r3, #1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r7 + ldrb r2, [r1, #5] + adds r0, r4, #0 + ands r0, r2 + strb r0, [r1, #5] + adds r5, #1 + cmp r5, #3 + ble _080DDB2E + add sp, #8 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DDB70: .4byte 0x06008000 +_080DDB74: .4byte 0x02039BD4 +_080DDB78: .4byte 0x05000400 +_080DDB7C: .4byte 0x02022ACC +_080DDB80: .4byte 0x02022ACE +_080DDB84: .4byte 0x020205AC + thumb_func_end sub_080DDAB4 + + thumb_func_start sub_080DDB88 +sub_080DDB88: @ 0x080DDB88 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _080DDBB8 + movs r0, #0 + strh r0, [r1] + ldr r1, _080DDBBC + movs r0, #0xa0 + strh r0, [r1] + movs r0, #0x62 + movs r1, #0 + bl PlaySE12WithPanning + ldr r1, _080DDBC0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080DDBC4 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DDBB8: .4byte 0x02022ACC +_080DDBBC: .4byte 0x02022ACE +_080DDBC0: .4byte 0x03005B60 +_080DDBC4: .4byte 0x080DDBC9 + thumb_func_end sub_080DDB88 + + thumb_func_start sub_080DDBC8 +sub_080DDBC8: @ 0x080DDBC8 + push {lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r1, _080DDC00 + ldrh r0, [r1] + subs r0, #7 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _080DDBE0 + movs r0, #0 + strh r0, [r1] +_080DDBE0: + ldrh r2, [r1] + cmp r2, #0 + bne _080DDBFA + ldr r0, _080DDC04 + lsls r1, r3, #2 + adds r1, r1, r3 + lsls r1, r1, #3 + adds r1, r1, r0 + strh r2, [r1, #8] + strh r2, [r1, #0xa] + strh r2, [r1, #0xc] + ldr r0, _080DDC08 + str r0, [r1] +_080DDBFA: + pop {r0} + bx r0 + .align 2, 0 +_080DDC00: .4byte 0x02022ACE +_080DDC04: .4byte 0x03005B60 +_080DDC08: .4byte 0x080DDC0D + thumb_func_end sub_080DDBC8 + + thumb_func_start sub_080DDC0C +sub_080DDC0C: @ 0x080DDC0C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _080DDC30 + lsls r3, r4, #2 + adds r0, r3, r4 + lsls r0, r0, #3 + adds r5, r0, r1 + movs r0, #8 + ldrsh r1, [r5, r0] + cmp r1, #1 + beq _080DDC90 + cmp r1, #1 + bgt _080DDC34 + cmp r1, #0 + beq _080DDC3E + b _080DDD18 + .align 2, 0 +_080DDC30: .4byte 0x03005B60 +_080DDC34: + cmp r1, #2 + beq _080DDCEE + cmp r1, #3 + beq _080DDD08 + b _080DDD18 +_080DDC3E: + movs r2, #0 + adds r6, r3, #0 + ldr r5, _080DDC84 + ldr r3, _080DDC88 +_080DDC46: + ldr r0, [r5] + ldr r1, [r0] + adds r1, #0x14 + adds r1, r1, r2 + adds r0, r2, r3 + ldrb r0, [r0] + strb r0, [r1] + adds r2, #1 + cmp r2, #3 + ble _080DDC46 + bl FillContestantWindowBgs + bl sub_080DBFC8 + bl sub_080DAE00 + bl DrawContestantWindows + movs r0, #1 + bl sub_080DD76C + bl sub_080DBBB0 + ldr r0, _080DDC8C + adds r1, r6, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #1 + strh r0, [r1, #8] + b _080DDD18 + .align 2, 0 +_080DDC84: .4byte 0x02039BD4 +_080DDC88: .4byte 0x02039BC6 +_080DDC8C: .4byte 0x03005B60 +_080DDC90: + ldr r0, _080DDCD8 + ldrb r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _080DDCE8 + ldr r0, _080DDCDC + ldr r0, [r0] + ldr r2, [r0] + ldrb r0, [r2, #7] + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #7] + bl sub_080DA094 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080DDCB6 + bl sub_080DB204 +_080DDCB6: + ldr r4, _080DDCE0 + adds r0, r4, #0 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080DDCE4 + adds r1, r4, #0 + bl SetTaskFuncWithFollowupFunc + bl ContestPrintLinkStandby + movs r0, #2 + strh r0, [r5, #8] + b _080DDD18 + .align 2, 0 +_080DDCD8: .4byte 0x02039BCA +_080DDCDC: .4byte 0x02039BD4 +_080DDCE0: .4byte 0x080FD4DD +_080DDCE4: .4byte 0x080D9901 +_080DDCE8: + bl sub_080DB204 + b _080DDCFE +_080DDCEE: + ldr r0, _080DDD04 + ldr r0, [r0] + ldr r0, [r0] + ldrb r1, [r0, #7] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _080DDD18 +_080DDCFE: + movs r0, #3 + strh r0, [r5, #8] + b _080DDD18 + .align 2, 0 +_080DDD04: .4byte 0x02039BD4 +_080DDD08: + bl sub_080DAFE8 + bl SwapMoveDescAndContestTilemaps + movs r0, #0 + strh r0, [r5, #8] + ldr r0, _080DDD20 + str r0, [r5] +_080DDD18: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080DDD20: .4byte 0x080DDD59 + thumb_func_end sub_080DDC0C + + thumb_func_start sub_080DDD24 +sub_080DDD24: @ 0x080DDD24 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _080DDD4C + ldrh r0, [r1] + adds r0, #7 + strh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xa0 + ble _080DDD48 + ldr r0, _080DDD50 + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080DDD54 + str r0, [r1] +_080DDD48: + pop {r0} + bx r0 + .align 2, 0 +_080DDD4C: .4byte 0x02022ACE +_080DDD50: .4byte 0x03005B60 +_080DDD54: .4byte 0x080D9CE5 + thumb_func_end sub_080DDD24 + + thumb_func_start sub_080DDD58 +sub_080DDD58: @ 0x080DDD58 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080DDD78 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldrh r2, [r1, #0xc] + movs r3, #0xc + ldrsh r0, [r1, r3] + cmp r0, #9 + bgt _080DDD7C + adds r0, r2, #1 + strh r0, [r1, #0xc] + b _080DDDB8 + .align 2, 0 +_080DDD78: .4byte 0x03005B60 +_080DDD7C: + ldrh r3, [r1, #0xa] + movs r4, #0xa + ldrsh r0, [r1, r4] + cmp r0, #0 + bne _080DDD9A + ldrh r2, [r1, #8] + movs r4, #8 + ldrsh r0, [r1, r4] + cmp r0, #0x10 + bne _080DDD96 + adds r0, r3, #1 + strh r0, [r1, #0xa] + b _080DDDB8 +_080DDD96: + adds r0, r2, #1 + b _080DDDB6 +_080DDD9A: + ldrh r0, [r1, #8] + movs r3, #8 + ldrsh r2, [r1, r3] + cmp r2, #0 + bne _080DDDB4 + strh r2, [r1, #0xa] + strh r2, [r1, #0xc] + ldr r0, _080DDDB0 + str r0, [r1] + b _080DDDB8 + .align 2, 0 +_080DDDB0: .4byte 0x080DDDC1 +_080DDDB4: + subs r0, #1 +_080DDDB6: + strh r0, [r1, #8] +_080DDDB8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080DDD58 + + thumb_func_start sub_080DDDC0 +sub_080DDDC0: @ 0x080DDDC0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080DDDE0 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 + ldrh r1, [r4, #0xc] + movs r2, #0xc + ldrsh r0, [r4, r2] + cmp r0, #9 + bgt _080DDDE4 + adds r0, r1, #1 + strh r0, [r4, #0xc] + b _080DDDF4 + .align 2, 0 +_080DDDE0: .4byte 0x03005B60 +_080DDDE4: + movs r0, #0 + strh r0, [r4, #0xc] + movs r0, #0x61 + movs r1, #0 + bl PlaySE12WithPanning + ldr r0, _080DDDFC + str r0, [r4] +_080DDDF4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DDDFC: .4byte 0x080DDD25 + thumb_func_end sub_080DDDC0 + + thumb_func_start sub_080DDE00 +sub_080DDE00: @ 0x080DDE00 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r7, #0 + ldr r6, _080DDEE8 + ldr r5, _080DDEEC +_080DDE12: + bl AllocOamMatrix + ldr r1, [r5] + ldr r1, [r1, #0x14] + lsls r4, r7, #2 + adds r1, r4, r1 + ldrb r1, [r1] + lsls r3, r1, #4 + adds r3, r3, r1 + lsls r3, r3, #2 + adds r3, r3, r6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x1f + ands r0, r1 + lsls r0, r0, #1 + ldrb r1, [r3, #3] + movs r2, #0x3f + rsbs r2, r2, #0 + mov ip, r2 + mov r2, ip + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #3] + ldr r0, [r5] + ldr r0, [r0, #0x14] + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r2, [r0, #1] + movs r3, #4 + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r2, r1 + movs r1, #1 + orrs r2, r1 + strb r2, [r0, #1] + ldr r0, [r5] + ldr r0, [r0, #0x14] + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + mov r1, r8 + bl StartSpriteAffineAnim + mov r0, r8 + cmp r0, #2 + bne _080DDEB0 + ldr r0, [r5] + ldr r0, [r0, #0x14] + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + bl AnimateSprite + ldr r0, [r5] + ldr r0, [r0, #0x14] + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x3e + ldrb r1, [r0] + movs r3, #5 + rsbs r3, r3, #0 + adds r2, r3, #0 + ands r1, r2 + strb r1, [r0] +_080DDEB0: + adds r7, #1 + cmp r7, #3 + ble _080DDE12 + ldr r0, _080DDEF0 + movs r1, #5 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080DDEF4 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + mov r0, r8 + strh r0, [r1, #8] + ldr r0, _080DDEEC + ldr r0, [r0] + ldr r2, [r0] + ldrb r0, [r2, #7] + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #7] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DDEE8: .4byte 0x020205AC +_080DDEEC: .4byte 0x02039BD4 +_080DDEF0: .4byte 0x080DDEF9 +_080DDEF4: .4byte 0x03005B60 + thumb_func_end sub_080DDE00 + + thumb_func_start sub_080DDEF8 +sub_080DDEF8: @ 0x080DDEF8 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r2, _080DDF8C + ldr r3, _080DDF90 + ldr r0, [r3] + ldr r0, [r0, #0x14] + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3f + ldrb r0, [r0] + lsls r0, r0, #0x1a + cmp r0, #0 + bge _080DDF86 + ldr r0, _080DDF94 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrb r0, [r1, #8] + cmp r0, #1 + bne _080DDF50 + movs r4, #0 + adds r5, r2, #0 + movs r2, #4 +_080DDF30: + ldr r0, [r3] + ldr r1, [r0, #0x14] + lsls r0, r4, #2 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + adds r4, #1 + cmp r4, #3 + ble _080DDF30 +_080DDF50: + movs r4, #0 +_080DDF52: + ldr r5, _080DDF90 + ldr r0, [r5] + ldr r1, [r0, #0x14] + lsls r0, r4, #2 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080DDF8C + adds r0, r0, r1 + bl FreeSpriteOamMatrix + adds r4, #1 + cmp r4, #3 + ble _080DDF52 + ldr r0, [r5] + ldr r2, [r0] + ldrb r1, [r2, #7] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #7] + adds r0, r6, #0 + bl DestroyTask +_080DDF86: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080DDF8C: .4byte 0x020205AC +_080DDF90: .4byte 0x02039BD4 +_080DDF94: .4byte 0x03005B60 + thumb_func_end sub_080DDEF8 + + thumb_func_start SanitizeMove +SanitizeMove: @ 0x080DDF98 + push {lr} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + movs r0, #0xb1 + lsls r0, r0, #1 + cmp r1, r0 + bls _080DDFA8 + movs r1, #1 +_080DDFA8: + adds r0, r1, #0 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SanitizeMove + + thumb_func_start SanitizeSpecies +SanitizeSpecies: @ 0x080DDFB0 + push {lr} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r0, _080DDFC4 + cmp r1, r0 + bls _080DDFBE + movs r1, #0 +_080DDFBE: + adds r0, r1, #0 + pop {r1} + bx r1 + .align 2, 0 +_080DDFC4: .4byte 0x0000019B + thumb_func_end SanitizeSpecies + + thumb_func_start sub_080DDFC8 +sub_080DDFC8: @ 0x080DDFC8 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r4, _080DE02C + ldr r0, [r4] + ldr r1, [r0, #4] + lsls r0, r7, #3 + subs r0, r0, r7 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0, #6] + bl SanitizeMove + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r1, _080DE030 + lsls r0, r7, #6 + adds r0, r0, r1 + ldrh r0, [r0] + bl SanitizeSpecies + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r0, [r4] + ldr r0, [r0, #0x18] + movs r1, #0 + movs r2, #0x14 + bl memset + bl ClearBattleAnimationVars + ldr r1, _080DE034 + movs r2, #0 + adds r0, r1, #3 +_080DE00C: + strb r2, [r0] + subs r0, #1 + cmp r0, r1 + bge _080DE00C + cmp r5, #0x90 + beq _080DE084 + cmp r5, #0x90 + bgt _080DE042 + cmp r5, #0x4c + beq _080DE0DC + cmp r5, #0x4c + bgt _080DE038 + cmp r5, #0xd + beq _080DE0DC + b _080DE106 + .align 2, 0 +_080DE02C: .4byte 0x02039BD4 +_080DE030: .4byte 0x02039AA0 +_080DE034: .4byte 0x02024188 +_080DE038: + cmp r5, #0x82 + beq _080DE0DC + cmp r5, #0x8f + beq _080DE0DC + b _080DE106 +_080DE042: + cmp r5, #0xd8 + beq _080DE0C4 + cmp r5, #0xd8 + bgt _080DE050 + cmp r5, #0xae + beq _080DE05E + b _080DE106 +_080DE050: + cmp r5, #0xda + beq _080DE0D0 + movs r0, #0x88 + lsls r0, r0, #1 + cmp r5, r0 + beq _080DE084 + b _080DE106 +_080DE05E: + ldr r0, _080DE07C + lsls r1, r6, #3 + subs r1, r1, r6 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #6] + cmp r0, #7 + beq _080DE074 + ldrb r0, [r1, #7] + cmp r0, #7 + bne _080DE100 +_080DE074: + ldr r1, _080DE080 + movs r0, #0 + b _080DE104 + .align 2, 0 +_080DE07C: .4byte 0x082F0D54 +_080DE080: .4byte 0x020380D2 +_080DE084: + ldr r6, _080DE0BC + ldr r0, [r6] + ldr r1, [r0, #4] + lsls r0, r7, #3 + subs r0, r0, r7 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r4, [r0, #0x1b] + ldr r5, _080DE0C0 + lsls r4, r4, #6 + adds r0, r4, r5 + ldrh r0, [r0] + bl SanitizeSpecies + ldr r2, [r6] + ldr r1, [r2, #0x18] + strh r0, [r1, #2] + ldr r2, [r2, #0x18] + adds r5, #0x38 + adds r4, r4, r5 + ldr r0, [r4] + str r0, [r2, #0x10] + ldrb r0, [r2, #4] + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #4] + b _080DE106 + .align 2, 0 +_080DE0BC: .4byte 0x02039BD4 +_080DE0C0: .4byte 0x02039AA0 +_080DE0C4: + ldr r1, _080DE0CC + movs r0, #0xff + b _080DE104 + .align 2, 0 +_080DE0CC: .4byte 0x020380BA +_080DE0D0: + ldr r1, _080DE0D8 + movs r0, #0 + b _080DE104 + .align 2, 0 +_080DE0D8: .4byte 0x020380BA +_080DE0DC: + ldr r0, _080DE0F8 + ldr r0, [r0] + ldr r0, [r0] + adds r2, r0, #0 + adds r2, #0x5a + ldrb r1, [r2] + cmp r1, #0 + bne _080DE100 + movs r0, #2 + strb r0, [r2] + ldr r0, _080DE0FC + strb r1, [r0] + b _080DE106 + .align 2, 0 +_080DE0F8: .4byte 0x02039BD4 +_080DE0FC: .4byte 0x020380D2 +_080DE100: + ldr r1, _080DE110 + movs r0, #1 +_080DE104: + strb r0, [r1] +_080DE106: + bl sub_080DE1C0 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DE110: .4byte 0x020380D2 + thumb_func_end sub_080DDFC8 + + thumb_func_start sub_080DE114 +sub_080DE114: @ 0x080DE114 + push {r4, lr} + ldr r4, _080DE13C + ldr r0, [r4] + ldr r0, [r0, #0x18] + movs r1, #0 + movs r2, #0x14 + bl memset + ldr r0, [r4] + ldr r0, [r0] + adds r1, r0, #0 + adds r1, #0x5a + ldrb r0, [r1] + cmp r0, #0 + beq _080DE136 + subs r0, #1 + strb r0, [r1] +_080DE136: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DE13C: .4byte 0x02039BD4 + thumb_func_end sub_080DE114 + + thumb_func_start sub_080DE140 +sub_080DE140: @ 0x080DE140 + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r6, _080DE17C + ldr r0, [r6] + ldr r0, [r0, #0x18] + strb r4, [r0, #5] + ldr r5, _080DE180 + lsls r4, r4, #6 + adds r0, r4, r5 + ldrh r0, [r0] + bl SanitizeSpecies + ldr r2, [r6] + ldr r1, [r2, #0x18] + strh r0, [r1] + ldr r1, [r2, #0x18] + adds r0, r5, #0 + adds r0, #0x38 + adds r0, r4, r0 + ldr r0, [r0] + str r0, [r1, #8] + adds r5, #0x3c + adds r4, r4, r5 + ldr r0, [r4] + str r0, [r1, #0xc] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080DE17C: .4byte 0x02039BD4 +_080DE180: .4byte 0x02039AA0 + thumb_func_end sub_080DE140 + + thumb_func_start sub_080DE184 +sub_080DE184: @ 0x080DE184 + push {lr} + ldr r0, _080DE1B0 + bl CreateInvisibleSpriteWithCallback + ldr r1, _080DE1B4 + strb r0, [r1, #3] + ldr r0, _080DE1B8 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080DE1BC + adds r0, r0, r1 + bl InitSpriteAffineAnim + bl sub_080DE1C0 + pop {r0} + bx r0 + .align 2, 0 +_080DE1B0: .4byte 0x08007141 +_080DE1B4: .4byte 0x02023E88 +_080DE1B8: .4byte 0x02023EB0 +_080DE1BC: .4byte 0x020205AC + thumb_func_end sub_080DE184 + + thumb_func_start sub_080DE1C0 +sub_080DE1C0: @ 0x080DE1C0 + push {r4, lr} + ldr r0, _080DE204 + ldrb r0, [r0, #3] + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _080DE208 + adds r4, r4, r0 + movs r0, #0 + strh r0, [r4, #0x24] + strh r0, [r4, #0x26] + movs r0, #3 + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x20] + movs r0, #3 + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x22] + adds r4, #0x3e + ldrb r0, [r4] + movs r1, #4 + orrs r0, r1 + strb r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DE204: .4byte 0x02023E88 +_080DE208: .4byte 0x020205AC + thumb_func_end sub_080DE1C0 + + thumb_func_start SelectContestMoveBankTarget +SelectContestMoveBankTarget: @ 0x080DE20C + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r2, _080DE22C + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r0, [r1, #6] + cmp r0, #0x20 + bhi _080DE2C4 + lsls r0, r0, #2 + ldr r1, _080DE230 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080DE22C: .4byte 0x082ED220 +_080DE230: .4byte 0x080DE234 +_080DE234: @ jump table + .4byte _080DE2C4 @ case 0 + .4byte _080DE2C4 @ case 1 + .4byte _080DE2B8 @ case 2 + .4byte _080DE2C4 @ case 3 + .4byte _080DE2C4 @ case 4 + .4byte _080DE2C4 @ case 5 + .4byte _080DE2C4 @ case 6 + .4byte _080DE2C4 @ case 7 + .4byte _080DE2C4 @ case 8 + .4byte _080DE2C4 @ case 9 + .4byte _080DE2C4 @ case 10 + .4byte _080DE2C4 @ case 11 + .4byte _080DE2C4 @ case 12 + .4byte _080DE2C4 @ case 13 + .4byte _080DE2C4 @ case 14 + .4byte _080DE2C4 @ case 15 + .4byte _080DE2B8 @ case 16 + .4byte _080DE2C4 @ case 17 + .4byte _080DE2C4 @ case 18 + .4byte _080DE2C4 @ case 19 + .4byte _080DE2C4 @ case 20 + .4byte _080DE2C4 @ case 21 + .4byte _080DE2C4 @ case 22 + .4byte _080DE2C4 @ case 23 + .4byte _080DE2C4 @ case 24 + .4byte _080DE2C4 @ case 25 + .4byte _080DE2C4 @ case 26 + .4byte _080DE2C4 @ case 27 + .4byte _080DE2C4 @ case 28 + .4byte _080DE2C4 @ case 29 + .4byte _080DE2C4 @ case 30 + .4byte _080DE2C4 @ case 31 + .4byte _080DE2C4 @ case 32 +_080DE2B8: + ldr r1, _080DE2C0 + movs r0, #2 + b _080DE2C8 + .align 2, 0 +_080DE2C0: .4byte 0x02023EB0 +_080DE2C4: + ldr r1, _080DE2D0 + movs r0, #3 +_080DE2C8: + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080DE2D0: .4byte 0x02023EB0 + thumb_func_end SelectContestMoveBankTarget + + thumb_func_start Contest_PrintTextToBg0WindowStd +Contest_PrintTextToBg0WindowStd: @ 0x080DE2D4 + push {r4, lr} + sub sp, #0x10 + adds r4, r0, #0 + str r1, [sp] + mov r0, sp + movs r2, #0 + strb r4, [r0, #4] + mov r1, sp + movs r0, #1 + strb r0, [r1, #5] + mov r0, sp + strb r2, [r0, #6] + movs r1, #2 + strb r1, [r0, #7] + strb r2, [r0, #8] + strb r1, [r0, #9] + strb r2, [r0, #0xa] + strb r2, [r0, #0xb] + mov r3, sp + ldrb r2, [r3, #0xc] + subs r1, #0x12 + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3, #0xc] + mov r2, sp + movs r0, #0xf0 + strb r0, [r2, #0xc] + ldrb r0, [r2, #0xd] + ands r1, r0 + strb r1, [r2, #0xd] + mov r1, sp + movs r0, #0x80 + strb r0, [r1, #0xd] + mov r0, sp + movs r1, #0 + movs r2, #0 + bl AddTextPrinter + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl PutWindowTilemap + movs r0, #0 + bl Contest_SetBgCopyFlags + add sp, #0x10 + pop {r4} + pop {r0} + bx r0 + thumb_func_end Contest_PrintTextToBg0WindowStd + + thumb_func_start Contest_StartTextPrinter +Contest_StartTextPrinter: @ 0x080DE338 + push {r4, r5, lr} + sub sp, #0x10 + str r0, [sp] + mov r2, sp + movs r3, #0 + movs r0, #8 + strb r0, [r2, #4] + mov r0, sp + movs r5, #1 + strb r5, [r0, #5] + strb r3, [r0, #6] + movs r2, #2 + strb r2, [r0, #7] + strb r3, [r0, #8] + strb r2, [r0, #9] + strb r3, [r0, #0xa] + strb r3, [r0, #0xb] + mov r4, sp + ldrb r3, [r4, #0xc] + subs r2, #0x12 + adds r0, r2, #0 + ands r0, r3 + strb r0, [r4, #0xc] + mov r3, sp + movs r0, #0x10 + strb r0, [r3, #0xc] + ldrb r0, [r3, #0xd] + ands r2, r0 + strb r2, [r3, #0xd] + mov r2, sp + movs r0, #0x80 + strb r0, [r2, #0xd] + cmp r1, #0 + bne _080DE388 + mov r0, sp + movs r1, #0 + movs r2, #0 + bl AddTextPrinter + b _080DE3AC +_080DE388: + ldr r0, _080DE398 + ldrb r1, [r0] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _080DE39C + movs r1, #4 + b _080DE3A4 + .align 2, 0 +_080DE398: .4byte 0x02039BCA +_080DE39C: + bl GetPlayerTextSpeedDelay + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 +_080DE3A4: + mov r0, sp + movs r2, #0 + bl AddTextPrinter +_080DE3AC: + movs r0, #8 + bl PutWindowTilemap + movs r0, #0 + bl Contest_SetBgCopyFlags + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end Contest_StartTextPrinter + + thumb_func_start ContestBG_FillBoxWithIncrementingTile +ContestBG_FillBoxWithIncrementingTile: @ 0x080DE3C0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x10 + mov r8, r0 + ldr r0, [sp, #0x28] + ldr r4, [sp, #0x2c] + ldr r5, [sp, #0x30] + ldr r6, [sp, #0x34] + mov r7, r8 + lsls r7, r7, #0x18 + lsrs r7, r7, #0x18 + mov r8, r7 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + str r0, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + lsls r6, r6, #0x10 + asrs r6, r6, #0x10 + str r6, [sp, #0xc] + mov r0, r8 + bl WriteSequenceToBgTilemapBuffer + mov r0, r8 + bl Contest_SetBgCopyFlags + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ContestBG_FillBoxWithIncrementingTile + + thumb_func_start ContestBG_FillBoxWithTile +ContestBG_FillBoxWithTile: @ 0x080DE418 + push {r4, r5, r6, lr} + sub sp, #0x10 + ldr r4, [sp, #0x20] + ldr r5, [sp, #0x24] + ldr r6, [sp, #0x28] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + str r4, [sp] + str r5, [sp, #4] + str r6, [sp, #8] + movs r4, #0 + str r4, [sp, #0xc] + bl ContestBG_FillBoxWithIncrementingTile + add sp, #0x10 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end ContestBG_FillBoxWithTile + + thumb_func_start Contest_RunTextPrinters +Contest_RunTextPrinters: @ 0x080DE454 + push {lr} + bl RunTextPrinters + movs r0, #8 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + thumb_func_end Contest_RunTextPrinters + + thumb_func_start Contest_SetBgCopyFlags +Contest_SetBgCopyFlags: @ 0x080DE468 + ldr r2, _080DE478 + movs r1, #1 + lsls r1, r0 + ldrb r0, [r2] + orrs r1, r0 + strb r1, [r2] + bx lr + .align 2, 0 +_080DE478: .4byte 0x02039BD8 + thumb_func_end Contest_SetBgCopyFlags + + thumb_func_start ResetContestLinkResults +ResetContestLinkResults: @ 0x080DE47C + push {r4, r5, r6, lr} + movs r0, #0 + ldr r6, _080DE4A8 + ldr r5, _080DE4AC + movs r4, #0 +_080DE486: + adds r3, r0, #1 + lsls r1, r0, #3 + movs r2, #3 +_080DE48C: + ldr r0, [r6] + adds r0, r0, r5 + adds r0, r0, r1 + strh r4, [r0] + adds r1, #2 + subs r2, #1 + cmp r2, #0 + bge _080DE48C + adds r0, r3, #0 + cmp r0, #4 + ble _080DE486 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080DE4A8: .4byte 0x03005AF0 +_080DE4AC: .4byte 0x00000624 + thumb_func_end ResetContestLinkResults + + thumb_func_start sub_080DE4B0 +sub_080DE4B0: @ 0x080DE4B0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r5, #0 + ldr r1, _080DE500 + ldrb r0, [r1] + cmp r0, #0 + beq _080DE4EE +_080DE4E0: + adds r5, #1 + cmp r5, #2 + bgt _080DE4EE + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080DE4E0 +_080DE4EE: + ldr r0, [sp] + cmp r0, #0xff + bne _080DE508 + ldr r0, _080DE504 + ldrb r0, [r0] + cmp r5, r0 + beq _080DE508 + movs r0, #0 + b _080DE698 + .align 2, 0 +_080DE500: .4byte 0x02039BC0 +_080DE504: .4byte 0x02039BC5 +_080DE508: + ldr r0, _080DE51C + ldrh r0, [r0] + cmp r0, #4 + bhi _080DE554 + lsls r0, r0, #2 + ldr r1, _080DE520 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080DE51C: .4byte 0x02039BCC +_080DE520: .4byte 0x080DE524 +_080DE524: @ jump table + .4byte _080DE554 @ case 0 + .4byte _080DE538 @ case 1 + .4byte _080DE53E @ case 2 + .4byte _080DE544 @ case 3 + .4byte _080DE54A @ case 4 +_080DE538: + mov r0, r8 + adds r0, #3 + b _080DE54E +_080DE53E: + mov r0, r8 + adds r0, #6 + b _080DE54E +_080DE544: + mov r0, r8 + adds r0, #9 + b _080DE54E +_080DE54A: + mov r0, r8 + adds r0, #0xc +_080DE54E: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 +_080DE554: + ldr r1, [sp] + cmp r1, #0xfe + bne _080DE55C + b _080DE658 +_080DE55C: + adds r0, r1, #0 + movs r1, #1 + bl sub_080DE6B0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldr r2, _080DE5E0 + mov sl, r2 + ldr r0, [r2] + mov r3, sb + lsls r7, r3, #5 + ldr r6, _080DE5E4 + adds r2, r0, r6 + adds r2, r2, r7 + ldr r4, _080DE5E8 + lsls r5, r5, #6 + adds r1, r4, #0 + adds r1, #0x38 + adds r1, r5, r1 + ldr r1, [r1] + str r1, [r2] + adds r1, r0, r7 + adds r2, r5, r4 + ldrh r2, [r2] + ldr r3, _080DE5EC + adds r1, r1, r3 + strh r2, [r1] + ldr r1, _080DE5F0 + adds r2, r0, r1 + adds r2, r2, r7 + adds r1, r4, #0 + adds r1, #0x3c + adds r1, r5, r1 + ldr r1, [r1] + str r1, [r2] + adds r6, r7, r6 + adds r0, r0, r6 + adds r0, #0xb + adds r1, r4, #2 + adds r1, r5, r1 + bl StringCopy + mov r2, sl + ldr r0, [r2] + adds r0, r0, r6 + adds r0, #0x16 + adds r4, #0xd + adds r5, r5, r4 + adds r1, r5, #0 + bl StringCopy + ldr r0, _080DE5F4 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080DE5FC + mov r3, sl + ldr r0, [r3] + adds r0, r0, r7 + ldr r1, _080DE5F8 + adds r0, r0, r1 + movs r1, #4 + b _080DE60A + .align 2, 0 +_080DE5E0: .4byte 0x03005AEC +_080DE5E4: .4byte 0x00002E90 +_080DE5E8: .4byte 0x02039AA0 +_080DE5EC: .4byte 0x00002E98 +_080DE5F0: .4byte 0x00002E94 +_080DE5F4: .4byte 0x02039BCA +_080DE5F8: .4byte 0x00002EAE +_080DE5FC: + mov r2, sl + ldr r0, [r2] + adds r0, r0, r7 + ldr r1, _080DE628 + ldrh r1, [r1] + ldr r3, _080DE62C + adds r0, r0, r3 +_080DE60A: + strb r1, [r0] + ldr r0, [sp] + cmp r0, #0xff + beq _080DE63C + ldr r0, _080DE630 + ldr r0, [r0] + mov r2, sb + lsls r1, r2, #5 + adds r0, r0, r1 + ldr r1, _080DE634 + ldrh r1, [r1] + ldr r3, _080DE638 + adds r0, r0, r3 + strb r1, [r0] + b _080DE696 + .align 2, 0 +_080DE628: .4byte 0x02039BCE +_080DE62C: .4byte 0x00002EAE +_080DE630: .4byte 0x03005AEC +_080DE634: .4byte 0x02039BCC +_080DE638: .4byte 0x00002E9A +_080DE63C: + ldr r0, _080DE650 + ldr r0, [r0] + mov r2, sb + lsls r1, r2, #5 + adds r0, r0, r1 + ldr r3, _080DE654 + adds r0, r0, r3 + mov r1, r8 + strb r1, [r0] + b _080DE696 + .align 2, 0 +_080DE650: .4byte 0x03005AEC +_080DE654: .4byte 0x00002E9A +_080DE658: + ldr r6, _080DE6A8 + ldr r4, _080DE6AC + lsls r5, r5, #6 + adds r0, r4, #0 + adds r0, #0x38 + adds r0, r5, r0 + ldr r0, [r0] + str r0, [r6] + adds r0, r4, #0 + adds r0, #0x3c + adds r0, r5, r0 + ldr r0, [r0] + str r0, [r6, #4] + adds r0, r5, r4 + ldrh r0, [r0] + strh r0, [r6, #8] + adds r0, r6, #0 + adds r0, #0xb + adds r1, r4, #2 + adds r1, r5, r1 + bl StringCopy + adds r0, r6, #0 + adds r0, #0x16 + adds r4, #0xd + adds r5, r5, r4 + adds r1, r5, #0 + bl StringCopy + mov r2, r8 + strb r2, [r6, #0xa] +_080DE696: + movs r0, #1 +_080DE698: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080DE6A8: .4byte 0x02039BDC +_080DE6AC: .4byte 0x02039AA0 + thumb_func_end sub_080DE4B0 + + thumb_func_start sub_080DE6B0 +sub_080DE6B0: @ 0x080DE6B0 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r0, #3 + bgt _080DE700 + cmp r0, #0 + blt _080DE700 + cmp r1, #0 + beq _080DE6EE + movs r2, #5 + ldr r0, _080DE6F4 + mov ip, r0 + ldr r4, _080DE6F8 + ldr r3, _080DE6FC +_080DE6D0: + mov r1, ip + ldr r0, [r1] + lsls r1, r2, #5 + adds r1, r1, r0 + adds r0, r1, r4 + adds r1, r1, r3 + ldm r1!, {r5, r6, r7} + stm r0!, {r5, r6, r7} + ldm r1!, {r5, r6, r7} + stm r0!, {r5, r6, r7} + ldm r1!, {r5, r6} + stm r0!, {r5, r6} + subs r2, #1 + cmp r2, #0 + bgt _080DE6D0 +_080DE6EE: + movs r0, #0 + b _080DE742 + .align 2, 0 +_080DE6F4: .4byte 0x03005AEC +_080DE6F8: .4byte 0x00002E90 +_080DE6FC: .4byte 0x00002E70 +_080DE700: + ldr r0, _080DE714 + ldrh r0, [r0] + cmp r0, #4 + bhi _080DE740 + lsls r0, r0, #2 + ldr r1, _080DE718 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080DE714: .4byte 0x02039BCC +_080DE718: .4byte 0x080DE71C +_080DE71C: @ jump table + .4byte _080DE730 @ case 0 + .4byte _080DE734 @ case 1 + .4byte _080DE738 @ case 2 + .4byte _080DE73C @ case 3 + .4byte _080DE740 @ case 4 +_080DE730: + movs r0, #8 + b _080DE742 +_080DE734: + movs r0, #9 + b _080DE742 +_080DE738: + movs r0, #0xa + b _080DE742 +_080DE73C: + movs r0, #0xb + b _080DE742 +_080DE740: + movs r0, #0xc +_080DE742: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_080DE6B0 + + thumb_func_start ClearContestWinnerPicsInContestHall +ClearContestWinnerPicsInContestHall: @ 0x080DE748 + push {r4, r5, r6, r7, lr} + movs r2, #0 + ldr r0, _080DE77C + mov ip, r0 + ldr r4, _080DE780 + ldr r3, _080DE784 +_080DE754: + mov r1, ip + ldr r0, [r1] + lsls r1, r2, #5 + adds r0, r0, r1 + adds r0, r0, r4 + adds r1, r3, #0 + ldm r1!, {r5, r6, r7} + stm r0!, {r5, r6, r7} + ldm r1!, {r5, r6, r7} + stm r0!, {r5, r6, r7} + ldm r1!, {r5, r6} + stm r0!, {r5, r6} + adds r3, #0x20 + adds r2, #1 + cmp r2, #7 + ble _080DE754 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DE77C: .4byte 0x03005AEC +_080DE780: .4byte 0x00002E90 +_080DE784: .4byte 0x08560F28 + thumb_func_end ClearContestWinnerPicsInContestHall + + thumb_func_start sub_080DE788 +sub_080DE788: @ 0x080DE788 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r2, _080DE8C0 + ldr r3, [r2] + ldr r5, [r3, #0x10] + ldrb r1, [r5, #1] + movs r7, #1 + adds r0, r7, #0 + ands r0, r1 + adds r6, r2, #0 + cmp r0, #0 + bne _080DE7DA + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #0 + ble _080DE7DA + ldr r1, [r3, #4] + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #0x15] + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0 + bne _080DE7DA + ldr r1, [r3, #0x1c] + lsls r2, r4, #4 + adds r1, r2, r1 + ldrb r3, [r1, #0xc] + movs r0, #1 + orrs r0, r3 + strb r0, [r1, #0xc] + ldr r0, [r6] + ldr r0, [r0, #0x1c] + adds r2, r2, r0 + ldrb r0, [r2, #0xe] + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #0xe] +_080DE7DA: + ldr r3, [r6] + ldr r1, [r3, #4] + lsls r2, r4, #3 + subs r0, r2, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #0xc] + movs r5, #1 + adds r0, r5, #0 + ands r0, r1 + adds r7, r2, #0 + cmp r0, #0 + beq _080DE802 + ldr r0, [r3, #0x1c] + lsls r1, r4, #4 + adds r1, r1, r0 + ldrb r2, [r1, #0xc] + movs r0, #2 + orrs r0, r2 + strb r0, [r1, #0xc] +_080DE802: + ldr r3, [r6] + ldr r2, [r3, #0x10] + ldrb r1, [r2, #1] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + bne _080DE82E + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + beq _080DE82E + movs r0, #2 + ldrsb r0, [r2, r0] + cmp r0, #0x3c + bne _080DE82E + ldr r0, [r3, #0x1c] + lsls r1, r4, #4 + adds r1, r1, r0 + ldrb r2, [r1, #0xc] + movs r0, #4 + orrs r0, r2 + strb r0, [r1, #0xc] +_080DE82E: + ldr r3, [r6] + ldr r1, [r3, #4] + subs r0, r7, r4 + lsls r0, r0, #2 + adds r2, r0, r1 + ldrb r1, [r2, #0x15] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080DE856 + ldrb r0, [r2, #0x16] + cmp r0, #0 + beq _080DE856 + ldr r0, [r3, #0x1c] + lsls r1, r4, #4 + adds r1, r1, r0 + ldrb r2, [r1, #0xc] + movs r0, #8 + orrs r0, r2 + strb r0, [r1, #0xc] +_080DE856: + movs r3, #0 + movs r5, #0 +_080DE85A: + cmp r3, r4 + beq _080DE888 + ldr r1, [r6] + ldr r0, [r1, #4] + adds r0, r5, r0 + ldrb r0, [r0, #0xe] + cmp r0, #0 + beq _080DE888 + ldr r0, [r1, #0x1c] + lsls r2, r4, #4 + adds r2, r2, r0 + ldrb r0, [r2, #0xc] + movs r1, #0x10 + orrs r0, r1 + strb r0, [r2, #0xc] + ldr r0, [r6] + ldr r0, [r0, #0x1c] + lsls r2, r3, #4 + adds r2, r2, r0 + ldrb r0, [r2, #0xc] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2, #0xc] +_080DE888: + adds r5, #0x1c + adds r3, #1 + cmp r3, #3 + ble _080DE85A + ldr r2, [r6] + ldr r1, [r2, #4] + subs r0, r7, r4 + lsls r5, r0, #2 + adds r1, r5, r1 + ldrb r3, [r1, #0xc] + movs r0, #6 + ands r0, r3 + cmp r0, #0 + bne _080DE8AE + ldrb r1, [r1, #0xb] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080DE8C4 +_080DE8AE: + ldr r0, [r2, #0x1c] + lsls r1, r4, #4 + adds r1, r1, r0 + ldrb r2, [r1, #0xc] + movs r0, #0x20 + orrs r0, r2 + strb r0, [r1, #0xc] + b _080DE8FE + .align 2, 0 +_080DE8C0: .4byte 0x02039BD4 +_080DE8C4: + movs r0, #1 + ands r0, r3 + cmp r0, #0 + bne _080DE8FE + ldr r2, [r2, #0x1c] + lsls r3, r4, #4 + adds r2, r3, r2 + ldrb r0, [r2, #0xc] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0xc] + ldr r0, [r6] + ldr r1, [r0, #0x1c] + adds r1, r3, r1 + ldrb r0, [r1, #0xe] + movs r2, #1 + orrs r0, r2 + strb r0, [r1, #0xe] + ldr r1, [r6] + ldr r0, [r1, #0x1c] + adds r3, r3, r0 + ldr r0, [r1] + ldrb r0, [r0, #1] + lsls r0, r0, #1 + adds r3, r3, r0 + ldr r0, [r1, #4] + adds r0, r5, r0 + ldrh r0, [r0, #6] + strh r0, [r3] +_080DE8FE: + ldr r2, [r6] + ldr r1, [r2, #4] + subs r0, r7, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #0x15] + movs r5, #1 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _080DE922 + ldr r0, [r2, #0x1c] + lsls r1, r4, #4 + adds r1, r1, r0 + ldrb r2, [r1, #0xd] + movs r0, #2 + orrs r0, r2 + strb r0, [r1, #0xd] +_080DE922: + ldr r2, [r6] + ldr r0, [r2] + ldrb r0, [r0, #0x13] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #4 + bne _080DE952 + ldr r3, [r2, #0x10] + ldrb r1, [r3, #1] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + bne _080DE952 + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #0 + beq _080DE952 + ldr r0, [r2, #0x1c] + lsls r1, r4, #4 + adds r1, r1, r0 + ldrb r2, [r1, #0xd] + movs r0, #0x20 + orrs r0, r2 + strb r0, [r1, #0xd] +_080DE952: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_080DE788 + + thumb_func_start sub_080DE958 +sub_080DE958: @ 0x080DE958 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x38 + movs r1, #0 + movs r0, #0 + str r0, [sp, #0x20] + movs r4, #0 + ldr r6, _080DE998 + mov r2, sp + adds r2, #0xc + str r2, [sp, #0x28] + mov r3, sp + adds r3, #0x14 + str r3, [sp, #0x2c] + mov r7, sp + adds r7, #2 + str r7, [sp, #0x24] + ldr r5, _080DE99C + movs r2, #0 + movs r3, #0x80 + lsls r3, r3, #0x11 +_080DE988: + adds r0, r4, r5 + ldrb r0, [r0] + cmp r0, #0 + bne _080DE9A0 + lsrs r0, r2, #0x18 + str r0, [sp, #0x20] + b _080DE9A6 + .align 2, 0 +_080DE998: .4byte 0x02039BD4 +_080DE99C: .4byte 0x02039BC0 +_080DE9A0: + cmp r0, #3 + bne _080DE9A6 + lsrs r1, r2, #0x18 +_080DE9A6: + adds r2, r2, r3 + adds r4, #1 + cmp r4, #3 + ble _080DE988 + ldr r0, [r6] + ldr r0, [r0, #0x1c] + lsls r1, r1, #4 + adds r1, r1, r0 + ldrb r2, [r1, #0xd] + movs r0, #1 + orrs r0, r2 + strb r0, [r1, #0xd] + movs r4, #0 + ldr r1, [sp, #0x20] + lsls r1, r1, #4 + str r1, [sp, #0x30] + mov sb, r4 + mov sl, r4 +_080DE9CA: + ldr r2, [sp, #0x20] + cmp r4, r2 + beq _080DE9F6 + ldr r1, _080DEB94 + lsls r0, r2, #1 + adds r0, r0, r1 + movs r3, #0 + ldrsh r2, [r0, r3] + add r1, sl + movs r6, #0 + ldrsh r0, [r1, r6] + subs r2, r2, r0 + cmp r2, #0x32 + bgt _080DE9F6 + ldr r7, _080DEB98 + ldr r0, [r7] + ldr r2, [r0, #0x1c] + add r2, sb + ldrb r0, [r2, #0xd] + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #0xd] +_080DE9F6: + ldr r1, _080DEB98 + ldr r0, [r1] + ldr r0, [r0, #0x1c] + mov r3, sb + adds r2, r3, r0 + ldrb r1, [r2, #0xe] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _080DEA12 + ldrb r0, [r2, #0xd] + movs r1, #8 + orrs r0, r1 + strb r0, [r2, #0xd] +_080DEA12: + movs r5, #0 + ldr r2, _080DEB9C + add r2, sl + movs r6, #0 + ldrsh r1, [r2, r6] + ldr r7, _080DEB9C + movs r3, #0 + ldrsh r0, [r7, r3] + cmp r1, r0 + blt _080DEA3E + adds r3, r2, #0 + adds r2, r7, #0 +_080DEA2A: + adds r2, #2 + adds r5, #1 + cmp r5, #3 + bgt _080DEA3E + movs r6, #0 + ldrsh r1, [r3, r6] + movs r7, #0 + ldrsh r0, [r2, r7] + cmp r1, r0 + bge _080DEA2A +_080DEA3E: + cmp r5, #4 + bne _080DEA5C + ldr r1, _080DEBA0 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _080DEA5C + ldr r2, _080DEB98 + ldr r0, [r2] + ldr r2, [r0, #0x1c] + add r2, sb + ldrb r0, [r2, #0xd] + movs r1, #0x10 + orrs r0, r1 + strb r0, [r2, #0xd] +_080DEA5C: + movs r3, #0 + mov ip, r3 + mov r8, r3 + movs r5, #0 + ldr r0, _080DEB9C + add r0, sl + movs r7, #0 + ldrsh r6, [r0, r7] + str r6, [sp, #0x34] + ldr r2, _080DEB9C + ldr r0, _080DEBA4 + mov r1, sl + adds r6, r1, r0 + adds r3, r0, #0 +_080DEA78: + movs r7, #0 + ldrsh r0, [r2, r7] + ldr r1, [sp, #0x34] + cmp r1, r0 + ble _080DEA86 + movs r7, #1 + mov ip, r7 +_080DEA86: + movs r0, #0 + ldrsh r1, [r6, r0] + movs r7, #0 + ldrsh r0, [r3, r7] + cmp r1, r0 + ble _080DEA96 + movs r0, #1 + mov r8, r0 +_080DEA96: + adds r2, #2 + adds r3, #2 + adds r5, #1 + cmp r5, #3 + ble _080DEA78 + mov r1, ip + cmp r1, #0 + bne _080DEABC + mov r2, r8 + cmp r2, #0 + bne _080DEABC + ldr r3, _080DEB98 + ldr r0, [r3] + ldr r2, [r0, #0x1c] + add r2, sb + ldrb r0, [r2, #0xd] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2, #0xd] +_080DEABC: + ldr r6, _080DEB98 + ldr r0, [r6] + ldr r0, [r0, #0x1c] + mov r7, sb + adds r2, r7, r0 + ldrb r1, [r2, #0xe] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080DEAD8 + ldrb r0, [r2, #0xd] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0xd] +_080DEAD8: + movs r0, #0x10 + add sb, r0 + movs r1, #2 + add sl, r1 + adds r4, #1 + cmp r4, #3 + bgt _080DEAE8 + b _080DE9CA +_080DEAE8: + movs r4, #0 + movs r5, #0 + movs r3, #0 + ldr r2, [sp, #0x28] + mov r1, sp +_080DEAF2: + strh r3, [r1] + adds r0, r2, r4 + strb r5, [r0] + adds r1, #2 + adds r4, #1 + cmp r4, #4 + ble _080DEAF2 + mov r1, sp + ldr r0, _080DEBA8 + strh r0, [r1, #0xa] + movs r0, #0 + ldr r2, [sp, #0x28] + strb r0, [r2, #5] + movs r4, #0 + ldr r0, _080DEB98 + ldr r0, [r0] + mov r8, r0 + ldr r7, [sp, #0x30] +_080DEB16: + mov r3, r8 + ldr r0, [r3, #0x1c] + adds r0, r7, r0 + lsls r1, r4, #1 + adds r0, r0, r1 + ldrh r0, [r0] + adds r4, #1 + mov ip, r4 + cmp r0, #0 + beq _080DEB58 + ldr r0, _080DEB98 + ldr r6, [r0] + ldr r3, [sp, #0x28] + mov r4, sp + movs r5, #4 +_080DEB34: + ldr r0, [r6, #0x1c] + adds r0, r7, r0 + adds r0, r0, r1 + ldrh r0, [r0] + ldrh r2, [r4] + cmp r0, r2 + beq _080DEB48 + cmp r2, #0 + bne _080DEB4E + strh r0, [r4] +_080DEB48: + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] +_080DEB4E: + adds r3, #1 + adds r4, #2 + subs r5, #1 + cmp r5, #0 + bge _080DEB34 +_080DEB58: + mov r4, ip + cmp r4, #4 + ble _080DEB16 + mov r0, sp + ldrh r0, [r0] + ldr r6, [sp, #0x2c] + strh r0, [r6] + ldr r7, [sp, #0x28] + ldrb r3, [r7] + movs r6, #0 + movs r4, #1 + ldr r1, [sp, #0x24] + ldrh r0, [r1] + ldr r1, _080DEBA8 + cmp r0, r1 + beq _080DEBC8 + ldr r5, [sp, #0x2c] + adds r7, r1, #0 + mov r2, sp + adds r2, #2 +_080DEB80: + ldr r0, [sp, #0x28] + adds r1, r0, r4 + ldrb r0, [r1] + cmp r3, r0 + bhs _080DEBAC + ldrh r0, [r2] + strh r0, [r5] + ldrb r3, [r1] + movs r6, #1 + b _080DEBBE + .align 2, 0 +_080DEB94: .4byte 0x02039BA8 +_080DEB98: .4byte 0x02039BD4 +_080DEB9C: .4byte 0x02039BA0 +_080DEBA0: .4byte 0x02039BC0 +_080DEBA4: .4byte 0x02039BB8 +_080DEBA8: .4byte 0x0000FFFF +_080DEBAC: + cmp r3, r0 + bne _080DEBBE + lsls r0, r6, #1 + adds r0, r5, r0 + ldrh r1, [r2] + strh r1, [r0] + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_080DEBBE: + adds r2, #2 + adds r4, #1 + ldrh r0, [r2] + cmp r0, r7 + bne _080DEB80 +_080DEBC8: + bl Random + ldr r1, _080DEBFC + ldr r1, [r1] + ldr r4, [r1, #0x1c] + ldr r1, [sp, #0x30] + adds r4, r1, r4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r6, #0 + bl __modsi3 + lsls r0, r0, #1 + ldr r2, [sp, #0x2c] + adds r0, r2, r0 + ldrh r0, [r0] + strh r0, [r4, #0xa] + add sp, #0x38 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DEBFC: .4byte 0x02039BD4 + thumb_func_end sub_080DE958 + + thumb_func_start sub_080DEC00 +sub_080DEC00: @ 0x080DEC00 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r2, _080DED34 + ldr r0, _080DED38 + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080DEC1C + b _080DEDCC +_080DEC1C: + movs r1, #0 + movs r3, #0 + ldr r0, _080DED3C + mov sb, r0 +_080DEC24: + adds r0, r3, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _080DEC30 + lsls r0, r3, #0x18 + lsrs r1, r0, #0x18 +_080DEC30: + adds r3, #1 + cmp r3, #3 + ble _080DEC24 + movs r2, #0 + mov sl, r2 + movs r4, #0 + str r4, [sp, #4] + movs r3, #0 + lsls r2, r1, #1 + lsls r1, r1, #4 + mov r8, r1 + ldr r1, _080DED40 + adds r0, r2, r1 + movs r7, #0 + ldrsh r6, [r0, r7] + adds r5, r1, #0 + ldr r0, _080DED44 + adds r2, r2, r0 + adds r4, r0, #0 +_080DEC56: + movs r1, #0 + ldrsh r0, [r5, r1] + cmp r6, r0 + bge _080DEC68 + mov r0, sl + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 +_080DEC68: + movs r7, #0 + ldrsh r1, [r2, r7] + movs r7, #0 + ldrsh r0, [r4, r7] + cmp r1, r0 + bge _080DEC7E + ldr r0, [sp, #4] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] +_080DEC7E: + adds r5, #2 + adds r4, #2 + adds r3, #1 + cmp r3, #3 + ble _080DEC56 + mov r1, sb + ldr r0, [r1] + ldr r0, [r0, #0x1c] + add r0, r8 + ldrb r1, [r0, #0xc] + movs r4, #0 + movs r2, #1 + movs r3, #7 +_080DEC98: + adds r0, r1, #0 + ands r0, r2 + cmp r0, #0 + beq _080DECA6 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_080DECA6: + lsrs r1, r1, #1 + subs r3, #1 + cmp r3, #0 + bge _080DEC98 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r4, #0 + bl __modsi3 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _080DED3C + ldr r0, [r0] + ldr r0, [r0, #0x1c] + add r0, r8 + ldrb r1, [r0, #0xc] + movs r4, #0 + movs r2, #0 + movs r3, #0 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080DECE2 + cmp r5, #0 + beq _080DECFC +_080DECDC: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_080DECE2: + lsrs r1, r1, #1 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r3, #1 + cmp r3, #7 + bgt _080DECFC + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080DECE2 + cmp r5, r4 + bne _080DECDC +_080DECFC: + movs r0, #0x80 + lsls r0, r0, #9 + lsls r0, r2 + lsrs r0, r0, #0x10 + mov sb, r0 + mov r1, sp + movs r0, #0 + strb r0, [r1] + ldr r0, _080DED3C + ldr r1, [r0] + ldr r0, [r1, #0x1c] + ldrb r4, [r0, #0xd] + movs r5, #1 + movs r3, #1 + mov r6, sp +_080DED1A: + ldr r0, [r1, #0x1c] + lsls r2, r3, #4 + adds r0, r2, r0 + ldrb r0, [r0, #0xd] + cmp r4, r0 + bhs _080DED48 + strb r3, [r6] + ldr r0, [r1, #0x1c] + adds r0, r2, r0 + ldrb r4, [r0, #0xd] + movs r5, #1 + b _080DED58 + .align 2, 0 +_080DED34: .4byte 0x02039BC0 +_080DED38: .4byte 0x02039BC5 +_080DED3C: .4byte 0x02039BD4 +_080DED40: .4byte 0x02039BA0 +_080DED44: .4byte 0x02039BB8 +_080DED48: + cmp r4, r0 + bne _080DED58 + mov r2, sp + adds r0, r2, r5 + strb r3, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_080DED58: + adds r3, #1 + cmp r3, #3 + ble _080DED1A + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r5, #0 + bl __modsi3 + add r0, sp + ldrb r7, [r0] + movs r2, #0x80 + movs r3, #0 + ldr r5, _080DEDDC + ldr r0, [r5] + ldr r0, [r0, #0x1c] + lsls r1, r7, #4 + adds r0, r1, r0 + ldrb r0, [r0, #0xd] + ands r0, r2 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + mov r0, sb + lsls r6, r0, #0x18 + cmp r4, #0 + bne _080DEDA4 +_080DED8E: + lsrs r2, r2, #1 + adds r3, #1 + cmp r3, #7 + bgt _080DEDA4 + ldr r0, [r5] + ldr r0, [r0, #0x1c] + adds r0, r1, r0 + ldrb r4, [r0, #0xd] + ands r4, r2 + cmp r4, #0 + beq _080DED8E +_080DEDA4: + mov r0, sl + bl ContestLiveUpdates_BeforeInterview_1 + ldr r0, [sp, #4] + bl ContestLiveUpdates_BeforeInterview_2 + lsrs r0, r6, #0x18 + bl ContestLiveUpdates_BeforeInterview_3 + ldr r0, _080DEDDC + ldr r0, [r0] + ldr r0, [r0, #0x1c] + add r0, r8 + ldrh r0, [r0, #0xa] + bl ContestLiveUpdates_BeforeInterview_4 + adds r0, r4, #0 + adds r1, r7, #0 + bl ContestLiveUpdates_BeforeInterview_5 +_080DEDCC: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DEDDC: .4byte 0x02039BD4 + thumb_func_end sub_080DEC00 + + thumb_func_start ContestDebugToggleBitfields +ContestDebugToggleBitfields: @ 0x080DEDE0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r0, _080DEE00 + movs r1, #0xd0 + lsls r1, r1, #9 + adds r2, r0, r1 + ldrb r1, [r2] + adds r4, r0, #0 + cmp r1, #0 + bne _080DEE08 + cmp r3, #0 + bne _080DEE04 + movs r0, #2 + b _080DEE0A + .align 2, 0 +_080DEE00: .4byte 0x02000000 +_080DEE04: + movs r0, #3 + b _080DEE0A +_080DEE08: + movs r0, #0 +_080DEE0A: + strb r0, [r2] + movs r1, #0xd0 + lsls r1, r1, #9 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080DEE22 + bl DrawContestantWindowText + bl SwapMoveDescAndContestTilemaps + b _080DEE26 +_080DEE22: + bl ContestDebugPrintBitStrings +_080DEE26: + pop {r4} + pop {r0} + bx r0 + thumb_func_end ContestDebugToggleBitfields + + thumb_func_start ContestDebugPrintBitStrings +ContestDebugPrintBitStrings: @ 0x080DEE2C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x2c + ldr r0, _080DEF28 + ldrb r0, [r0] + cmp r0, #0 + bne _080DEE42 + b _080DEFD4 +_080DEE42: + ldr r0, _080DEF2C + movs r1, #0xd0 + lsls r1, r1, #9 + adds r0, r0, r1 + ldrb r0, [r0] + subs r0, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _080DEE58 + b _080DEFD4 +_080DEE58: + movs r7, #0 + add r2, sp, #0x14 + mov sl, r2 +_080DEE5E: + adds r0, r7, #0 + movs r1, #0 + bl FillWindowPixelBuffer + adds r0, r7, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl FillWindowPixelBuffer + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #3 + bls _080DEE5E + ldr r0, _080DEF2C + movs r4, #0xd0 + lsls r4, r4, #9 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #2 + bne _080DEF3C + movs r7, #0 + mov sb, sl +_080DEE8E: + mov r0, sp + ldr r1, _080DEF30 + bl StringCopy + adds r6, r0, #0 + ldr r0, _080DEF34 + adds r0, r7, r0 + ldrb r0, [r0] + mov r1, sp + bl Contest_PrintTextToBg0WindowStd + ldr r0, _080DEF38 + ldr r0, [r0] + ldr r1, [r0, #0x1c] + lsls r0, r7, #4 + adds r0, r0, r1 + ldrb r5, [r0, #0xc] + movs r4, #7 + adds r0, r7, #1 + mov r8, r0 +_080DEEB6: + movs r1, #1 + ands r1, r5 + adds r0, r6, #0 + movs r2, #0 + movs r3, #1 + bl ConvertIntToDecimalStringN + adds r6, r0, #0 + lsrs r5, r5, #1 + lsls r0, r4, #0x18 + movs r1, #0xff + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r4, r0, #0x18 + asrs r0, r0, #0x18 + movs r2, #1 + rsbs r2, r2, #0 + cmp r0, r2 + bgt _080DEEB6 + movs r4, #0 + ldr r6, _080DEF34 + mov r3, sl +_080DEEE2: + lsls r0, r4, #0x18 + asrs r0, r0, #0x18 + adds r2, r3, r0 + mov r4, sp + adds r1, r4, r0 + ldrb r1, [r1] + strb r1, [r2] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + asrs r5, r0, #0x18 + cmp r5, #4 + ble _080DEEE2 + mov r0, sb + adds r1, r0, r5 + movs r0, #0xff + strb r0, [r1] + adds r4, r7, r6 + ldrb r0, [r4] + mov r1, sb + bl Contest_PrintTextToBg0WindowStd + ldrb r0, [r4] + adds r0, #4 + mov r2, sp + adds r1, r2, r5 + bl Contest_PrintTextToBg0WindowStd + mov r4, r8 + lsls r0, r4, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #3 + bls _080DEE8E + b _080DEFD0 + .align 2, 0 +_080DEF28: .4byte 0x02031F75 +_080DEF2C: .4byte 0x02000000 +_080DEF30: .4byte 0x085CC49D +_080DEF34: .4byte 0x02039BC6 +_080DEF38: .4byte 0x02039BD4 +_080DEF3C: + movs r7, #0 + mov r0, sp + adds r0, #2 + str r0, [sp, #0x28] + mov sb, sl +_080DEF46: + mov r0, sp + ldr r1, _080DEFE4 + bl StringCopy + ldr r0, _080DEFE8 + ldr r0, [r0] + ldr r1, [r0, #0x1c] + lsls r0, r7, #4 + adds r0, r0, r1 + ldrb r5, [r0, #0xd] + ldr r6, [sp, #0x28] + movs r4, #7 + adds r1, r7, #1 + mov r8, r1 +_080DEF62: + movs r1, #1 + ands r1, r5 + adds r0, r6, #0 + movs r2, #0 + movs r3, #1 + bl ConvertIntToDecimalStringN + adds r6, r0, #0 + lsrs r5, r5, #1 + lsls r0, r4, #0x18 + movs r2, #0xff + lsls r2, r2, #0x18 + adds r0, r0, r2 + lsrs r4, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bgt _080DEF62 + movs r4, #0 + ldr r6, _080DEFEC + mov r3, sl +_080DEF8E: + lsls r0, r4, #0x18 + asrs r0, r0, #0x18 + adds r2, r3, r0 + mov r4, sp + adds r1, r4, r0 + ldrb r1, [r1] + strb r1, [r2] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + asrs r5, r0, #0x18 + cmp r5, #4 + ble _080DEF8E + mov r0, sb + adds r1, r0, r5 + movs r0, #0xff + strb r0, [r1] + adds r4, r7, r6 + ldrb r0, [r4] + mov r1, sb + bl Contest_PrintTextToBg0WindowStd + ldrb r0, [r4] + adds r0, #4 + mov r2, sp + adds r1, r2, r5 + bl Contest_PrintTextToBg0WindowStd + mov r4, r8 + lsls r0, r4, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #3 + bls _080DEF46 +_080DEFD0: + bl SwapMoveDescAndContestTilemaps +_080DEFD4: + add sp, #0x2c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DEFE4: .4byte 0x085CC4A0 +_080DEFE8: .4byte 0x02039BD4 +_080DEFEC: .4byte 0x02039BC6 + thumb_func_end ContestDebugPrintBitStrings + diff --git a/asm/contest_ai.s b/asm/contest_ai.s new file mode 100644 index 0000000..953f0d9 --- /dev/null +++ b/asm/contest_ai.s @@ -0,0 +1,5638 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ContestAI_ResetAI +ContestAI_ResetAI: @ 0x08156200 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r4, _08156258 + ldr r0, [r4] + ldr r0, [r0, #0xc] + movs r1, #0 + movs r2, #0x44 + bl memset + movs r1, #0 + movs r3, #0x64 + adds r2, r4, #0 +_0815621A: + ldr r0, [r4] + ldr r0, [r0, #0xc] + adds r0, #5 + adds r0, r0, r1 + strb r3, [r0] + adds r1, #1 + cmp r1, #3 + ble _0815621A + ldr r0, [r2] + ldr r0, [r0, #0xc] + adds r0, #0x41 + movs r1, #0 + strb r5, [r0] + ldr r0, [r2] + ldr r0, [r0, #0xc] + adds r0, #0x40 + strb r1, [r0] + ldr r0, [r2] + ldr r2, [r0, #0xc] + ldr r1, _0815625C + adds r0, r2, #0 + adds r0, #0x41 + ldrb r0, [r0] + lsls r0, r0, #6 + adds r1, #0x18 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r2, #0x14] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08156258: .4byte 0x02039BD4 +_0815625C: .4byte 0x02039AA0 + thumb_func_end ContestAI_ResetAI + + thumb_func_start ContestAI_GetActionToUse +ContestAI_GetActionToUse: @ 0x08156260 + push {r4, r5, r6, lr} + ldr r1, _081562E8 + ldr r0, [r1] + ldr r0, [r0, #0xc] + ldr r0, [r0, #0x14] + cmp r0, #0 + beq _081562A6 + adds r4, r1, #0 + movs r5, #0 +_08156272: + ldr r0, [r4] + ldr r2, [r0, #0xc] + ldr r0, [r2, #0x14] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08156286 + strb r5, [r2] + bl ContestAI_DoAIProcessing +_08156286: + ldr r0, [r4] + ldr r1, [r0, #0xc] + ldr r0, [r1, #0x14] + lsrs r0, r0, #1 + str r0, [r1, #0x14] + ldrb r0, [r1, #0x10] + adds r0, #1 + strb r0, [r1, #0x10] + ldr r0, [r4] + ldr r0, [r0, #0xc] + strb r5, [r0, #4] + ldr r0, [r4] + ldr r0, [r0, #0xc] + ldr r0, [r0, #0x14] + cmp r0, #0 + bne _08156272 +_081562A6: + movs r6, #3 +_081562A8: + bl Random + adds r5, r0, #0 + ands r5, r6 + ldr r4, _081562E8 + ldr r0, [r4] + ldr r1, [r0, #0xc] + adds r0, r1, #5 + adds r0, r0, r5 + ldrb r3, [r0] + movs r2, #0 + ldrb r1, [r1, #5] + cmp r3, r1 + blo _081562DA + adds r1, r4, #0 +_081562C6: + adds r2, #1 + cmp r2, #3 + bgt _081562DA + ldr r0, [r1] + ldr r0, [r0, #0xc] + adds r0, #5 + adds r0, r0, r2 + ldrb r0, [r0] + cmp r3, r0 + bhs _081562C6 +_081562DA: + cmp r2, #4 + bne _081562A8 + adds r0, r5, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_081562E8: .4byte 0x02039BD4 + thumb_func_end ContestAI_GetActionToUse + + thumb_func_start ContestAI_DoAIProcessing +ContestAI_DoAIProcessing: @ 0x081562EC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r5, _08156344 + ldr r0, [r5] + ldr r0, [r0, #0xc] + ldrb r0, [r0] + adds r4, r5, #0 + cmp r0, #2 + beq _081563DC + adds r7, r5, #0 + ldr r6, _08156348 + ldr r0, _0815634C + mov r8, r0 +_08156308: + ldr r0, [r7] + ldr r2, [r0, #0xc] + ldrb r0, [r2] + cmp r0, #1 + beq _08156362 + cmp r0, #1 + bgt _081563D2 + cmp r0, #0 + bne _081563D2 + ldr r1, _08156350 + ldrb r0, [r2, #0x10] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r6] + ldrb r1, [r2, #4] + lsls r1, r1, #1 + adds r0, r2, #0 + adds r0, #0x41 + ldrb r0, [r0] + lsls r0, r0, #6 + adds r1, r1, r0 + add r1, r8 + ldrh r1, [r1] + adds r0, r1, #0 + cmp r0, #0 + bne _08156354 + strh r0, [r2, #2] + b _08156356 + .align 2, 0 +_08156344: .4byte 0x02039BD4 +_08156348: .4byte 0x0203A804 +_0815634C: .4byte 0x02039ABE +_08156350: .4byte 0x0828C8D8 +_08156354: + strh r1, [r2, #2] +_08156356: + ldr r0, [r4] + ldr r1, [r0, #0xc] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _081563D2 +_08156362: + ldrh r1, [r2, #2] + cmp r1, #0 + beq _08156380 + ldr r1, _0815637C + ldr r0, [r6] + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + b _08156394 + .align 2, 0 +_0815637C: .4byte 0x085ACB08 +_08156380: + adds r0, r2, #5 + ldrb r2, [r2, #4] + adds r0, r0, r2 + strb r1, [r0] + ldr r0, [r7] + ldr r2, [r0, #0xc] + ldrb r1, [r2, #9] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #9] +_08156394: + ldr r2, _081563BC + ldr r0, [r2] + ldr r3, [r0, #0xc] + ldrb r1, [r3, #9] + movs r0, #1 + ands r0, r1 + adds r4, r2, #0 + cmp r0, #0 + beq _081563D2 + ldrb r0, [r3, #4] + adds r0, #1 + movs r2, #0 + strb r0, [r3, #4] + ldr r0, [r4] + ldr r1, [r0, #0xc] + ldrb r0, [r1, #4] + cmp r0, #3 + bhi _081563C0 + strb r2, [r1] + b _081563C6 + .align 2, 0 +_081563BC: .4byte 0x02039BD4 +_081563C0: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_081563C6: + ldr r0, [r4] + ldr r2, [r0, #0xc] + ldrb r1, [r2, #9] + movs r0, #0xfe + ands r0, r1 + strb r0, [r2, #9] +_081563D2: + ldr r0, [r5] + ldr r0, [r0, #0xc] + ldrb r0, [r0] + cmp r0, #2 + bne _08156308 +_081563DC: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ContestAI_DoAIProcessing + + thumb_func_start sub_081563E8 +sub_081563E8: @ 0x081563E8 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + movs r1, #0 + ldr r3, _081563F8 + ldr r0, [r3] + ldr r0, [r0, #8] + b _08156408 + .align 2, 0 +_081563F8: .4byte 0x02039BD4 +_081563FC: + adds r1, #1 + cmp r1, #3 + bgt _0815640E + ldr r0, [r3] + ldr r0, [r0, #8] + adds r0, r0, r1 +_08156408: + ldrb r0, [r0] + cmp r0, r2 + bne _081563FC +_0815640E: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081563E8 + + thumb_func_start ContestAICmd_score +ContestAICmd_score: @ 0x08156418 + push {r4, lr} + ldr r3, _08156444 + ldr r0, [r3] + ldr r0, [r0, #0xc] + adds r1, r0, #5 + ldrb r0, [r0, #4] + adds r1, r1, r0 + ldr r2, _08156448 + ldr r0, [r2] + ldrb r0, [r0, #1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrb r1, [r1] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xff + ble _0815644C + movs r4, #0xff + b _08156452 + .align 2, 0 +_08156444: .4byte 0x02039BD4 +_08156448: .4byte 0x0203A804 +_0815644C: + cmp r0, #0 + bge _08156452 + movs r4, #0 +_08156452: + ldr r0, [r3] + ldr r1, [r0, #0xc] + adds r0, r1, #5 + ldrb r1, [r1, #4] + adds r0, r0, r1 + strb r4, [r0] + ldr r0, [r2] + adds r0, #2 + str r0, [r2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ContestAICmd_score + + thumb_func_start ContestAICmd_get_turn +ContestAICmd_get_turn: @ 0x0815646C + ldr r0, _08156484 + ldr r0, [r0] + ldr r1, [r0, #0xc] + ldr r0, [r0] + ldrb r0, [r0, #1] + strh r0, [r1, #0x18] + ldr r1, _08156488 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + bx lr + .align 2, 0 +_08156484: .4byte 0x02039BD4 +_08156488: .4byte 0x0203A804 + thumb_func_end ContestAICmd_get_turn + + thumb_func_start ContestAICmd_if_turn_less_than +ContestAICmd_if_turn_less_than: @ 0x0815648C + push {lr} + bl ContestAICmd_get_turn + ldr r0, _081564C0 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _081564C4 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + bge _081564C8 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _081564CC + .align 2, 0 +_081564C0: .4byte 0x02039BD4 +_081564C4: .4byte 0x0203A804 +_081564C8: + adds r0, r2, #5 + str r0, [r3] +_081564CC: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_turn_less_than + + thumb_func_start ContestAICmd_if_turn_more_than +ContestAICmd_if_turn_more_than: @ 0x081564D0 + push {lr} + bl ContestAICmd_get_turn + ldr r0, _08156504 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _08156508 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + ble _0815650C + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08156510 + .align 2, 0 +_08156504: .4byte 0x02039BD4 +_08156508: .4byte 0x0203A804 +_0815650C: + adds r0, r2, #5 + str r0, [r3] +_08156510: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_turn_more_than + + thumb_func_start ContestAICmd_if_turn_eq +ContestAICmd_if_turn_eq: @ 0x08156514 + push {lr} + bl ContestAICmd_get_turn + ldr r0, _08156548 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _0815654C + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + bne _08156550 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08156554 + .align 2, 0 +_08156548: .4byte 0x02039BD4 +_0815654C: .4byte 0x0203A804 +_08156550: + adds r0, r2, #5 + str r0, [r3] +_08156554: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_turn_eq + + thumb_func_start ContestAICmd_if_turn_not_eq +ContestAICmd_if_turn_not_eq: @ 0x08156558 + push {lr} + bl ContestAICmd_get_turn + ldr r0, _0815658C + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _08156590 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + beq _08156594 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08156598 + .align 2, 0 +_0815658C: .4byte 0x02039BD4 +_08156590: .4byte 0x0203A804 +_08156594: + adds r0, r2, #5 + str r0, [r3] +_08156598: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_turn_not_eq + + thumb_func_start ContestAICmd_get_excitement +ContestAICmd_get_excitement: @ 0x0815659C + ldr r0, _081565B8 + ldr r0, [r0] + ldr r1, [r0, #0xc] + ldr r0, [r0] + ldrb r0, [r0, #0x13] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r1, #0x18] + ldr r1, _081565BC + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + bx lr + .align 2, 0 +_081565B8: .4byte 0x02039BD4 +_081565BC: .4byte 0x0203A804 + thumb_func_end ContestAICmd_get_excitement + + thumb_func_start ContestAICmd_if_excitement_less_than +ContestAICmd_if_excitement_less_than: @ 0x081565C0 + push {lr} + bl ContestAICmd_get_excitement + ldr r0, _081565F4 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _081565F8 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + bge _081565FC + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08156600 + .align 2, 0 +_081565F4: .4byte 0x02039BD4 +_081565F8: .4byte 0x0203A804 +_081565FC: + adds r0, r2, #5 + str r0, [r3] +_08156600: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_excitement_less_than + + thumb_func_start ContestAICmd_if_excitement_more_than +ContestAICmd_if_excitement_more_than: @ 0x08156604 + push {lr} + bl ContestAICmd_get_excitement + ldr r0, _08156638 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _0815663C + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + ble _08156640 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08156644 + .align 2, 0 +_08156638: .4byte 0x02039BD4 +_0815663C: .4byte 0x0203A804 +_08156640: + adds r0, r2, #5 + str r0, [r3] +_08156644: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_excitement_more_than + + thumb_func_start ContestAICmd_if_excitement_eq +ContestAICmd_if_excitement_eq: @ 0x08156648 + push {lr} + bl ContestAICmd_get_excitement + ldr r0, _0815667C + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _08156680 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + bne _08156684 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08156688 + .align 2, 0 +_0815667C: .4byte 0x02039BD4 +_08156680: .4byte 0x0203A804 +_08156684: + adds r0, r2, #5 + str r0, [r3] +_08156688: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_excitement_eq + + thumb_func_start ContestAICmd_if_excitement_not_eq +ContestAICmd_if_excitement_not_eq: @ 0x0815668C + push {lr} + bl ContestAICmd_get_excitement + ldr r0, _081566C0 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _081566C4 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + beq _081566C8 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _081566CC + .align 2, 0 +_081566C0: .4byte 0x02039BD4 +_081566C4: .4byte 0x0203A804 +_081566C8: + adds r0, r2, #5 + str r0, [r3] +_081566CC: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_excitement_not_eq + + thumb_func_start ContestAICmd_get_user_order +ContestAICmd_get_user_order: @ 0x081566D0 + ldr r0, _081566F0 + ldr r0, [r0] + ldr r2, [r0, #0xc] + ldr r0, [r0, #8] + adds r1, r2, #0 + adds r1, #0x41 + ldrb r1, [r1] + adds r0, r0, r1 + ldrb r0, [r0] + strh r0, [r2, #0x18] + ldr r1, _081566F4 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + bx lr + .align 2, 0 +_081566F0: .4byte 0x02039BD4 +_081566F4: .4byte 0x0203A804 + thumb_func_end ContestAICmd_get_user_order + + thumb_func_start ContestAICmd_if_user_order_less_than +ContestAICmd_if_user_order_less_than: @ 0x081566F8 + push {lr} + bl ContestAICmd_get_user_order + ldr r0, _0815672C + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _08156730 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + bge _08156734 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08156738 + .align 2, 0 +_0815672C: .4byte 0x02039BD4 +_08156730: .4byte 0x0203A804 +_08156734: + adds r0, r2, #5 + str r0, [r3] +_08156738: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_user_order_less_than + + thumb_func_start ContestAICmd_if_user_order_more_than +ContestAICmd_if_user_order_more_than: @ 0x0815673C + push {lr} + bl ContestAICmd_get_user_order + ldr r0, _08156770 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _08156774 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + ble _08156778 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _0815677C + .align 2, 0 +_08156770: .4byte 0x02039BD4 +_08156774: .4byte 0x0203A804 +_08156778: + adds r0, r2, #5 + str r0, [r3] +_0815677C: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_user_order_more_than + + thumb_func_start ContestAICmd_if_user_order_eq +ContestAICmd_if_user_order_eq: @ 0x08156780 + push {lr} + bl ContestAICmd_get_user_order + ldr r0, _081567B4 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _081567B8 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + bne _081567BC + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _081567C0 + .align 2, 0 +_081567B4: .4byte 0x02039BD4 +_081567B8: .4byte 0x0203A804 +_081567BC: + adds r0, r2, #5 + str r0, [r3] +_081567C0: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_user_order_eq + + thumb_func_start ContestAICmd_if_user_order_not_eq +ContestAICmd_if_user_order_not_eq: @ 0x081567C4 + push {lr} + bl ContestAICmd_get_user_order + ldr r0, _081567F8 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _081567FC + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + beq _08156800 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08156804 + .align 2, 0 +_081567F8: .4byte 0x02039BD4 +_081567FC: .4byte 0x0203A804 +_08156800: + adds r0, r2, #5 + str r0, [r3] +_08156804: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_user_order_not_eq + + thumb_func_start ContestAICmd_get_user_condition +ContestAICmd_get_user_condition: @ 0x08156808 + push {r4, lr} + ldr r0, _08156840 + ldr r0, [r0] + ldr r4, [r0, #0xc] + adds r1, r4, #0 + adds r1, #0x41 + ldrb r1, [r1] + ldr r2, [r0, #4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #0xd] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #0xa + bl __divsi3 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r4, #0x18] + ldr r1, _08156844 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08156840: .4byte 0x02039BD4 +_08156844: .4byte 0x0203A804 + thumb_func_end ContestAICmd_get_user_condition + + thumb_func_start ContestAICmd_if_user_condition_less_than +ContestAICmd_if_user_condition_less_than: @ 0x08156848 + push {lr} + bl ContestAICmd_get_user_condition + ldr r0, _0815687C + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _08156880 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + bge _08156884 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08156888 + .align 2, 0 +_0815687C: .4byte 0x02039BD4 +_08156880: .4byte 0x0203A804 +_08156884: + adds r0, r2, #5 + str r0, [r3] +_08156888: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_user_condition_less_than + + thumb_func_start ContestAICmd_if_user_condition_more_than +ContestAICmd_if_user_condition_more_than: @ 0x0815688C + push {lr} + bl ContestAICmd_get_user_condition + ldr r0, _081568C0 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _081568C4 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + ble _081568C8 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _081568CC + .align 2, 0 +_081568C0: .4byte 0x02039BD4 +_081568C4: .4byte 0x0203A804 +_081568C8: + adds r0, r2, #5 + str r0, [r3] +_081568CC: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_user_condition_more_than + + thumb_func_start ContestAICmd_if_user_condition_eq +ContestAICmd_if_user_condition_eq: @ 0x081568D0 + push {lr} + bl ContestAICmd_get_user_condition + ldr r0, _08156904 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _08156908 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + bne _0815690C + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08156910 + .align 2, 0 +_08156904: .4byte 0x02039BD4 +_08156908: .4byte 0x0203A804 +_0815690C: + adds r0, r2, #5 + str r0, [r3] +_08156910: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_user_condition_eq + + thumb_func_start ContestAICmd_if_user_condition_not_eq +ContestAICmd_if_user_condition_not_eq: @ 0x08156914 + push {lr} + bl ContestAICmd_get_user_condition + ldr r0, _08156948 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _0815694C + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + beq _08156950 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08156954 + .align 2, 0 +_08156948: .4byte 0x02039BD4 +_0815694C: .4byte 0x0203A804 +_08156950: + adds r0, r2, #5 + str r0, [r3] +_08156954: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_user_condition_not_eq + + thumb_func_start ContestAICmd_unk_15 +ContestAICmd_unk_15: @ 0x08156958 + ldr r0, _0815697C + ldr r0, [r0] + ldr r3, [r0, #0xc] + adds r1, r3, #0 + adds r1, #0x41 + ldrb r1, [r1] + ldr r2, [r0, #4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0, #4] + strh r0, [r3, #0x18] + ldr r1, _08156980 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + bx lr + .align 2, 0 +_0815697C: .4byte 0x02039BD4 +_08156980: .4byte 0x0203A804 + thumb_func_end ContestAICmd_unk_15 + + thumb_func_start ContestAICmd_unk_1B +ContestAICmd_unk_1B: @ 0x08156984 + push {r4, r5, lr} + bl ContestAICmd_unk_15 + ldr r0, _081569C0 + ldr r0, [r0] + ldr r2, [r0, #0xc] + ldr r4, _081569C4 + ldr r3, [r4] + ldrb r1, [r3] + ldrb r0, [r3, #1] + lsls r0, r0, #8 + orrs r1, r0 + movs r5, #0x18 + ldrsh r0, [r2, r5] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r0, r1 + bge _081569C8 + ldrb r1, [r3, #2] + ldrb r0, [r3, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r3, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r3, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _081569CC + .align 2, 0 +_081569C0: .4byte 0x02039BD4 +_081569C4: .4byte 0x0203A804 +_081569C8: + adds r0, r3, #6 + str r0, [r4] +_081569CC: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ContestAICmd_unk_1B + + thumb_func_start ContestAICmd_unk_17 +ContestAICmd_unk_17: @ 0x081569D4 + push {r4, r5, lr} + bl ContestAICmd_unk_15 + ldr r0, _08156A10 + ldr r0, [r0] + ldr r2, [r0, #0xc] + ldr r4, _08156A14 + ldr r3, [r4] + ldrb r1, [r3] + ldrb r0, [r3, #1] + lsls r0, r0, #8 + orrs r1, r0 + movs r5, #0x18 + ldrsh r0, [r2, r5] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r0, r1 + ble _08156A18 + ldrb r1, [r3, #2] + ldrb r0, [r3, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r3, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r3, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _08156A1C + .align 2, 0 +_08156A10: .4byte 0x02039BD4 +_08156A14: .4byte 0x0203A804 +_08156A18: + adds r0, r3, #6 + str r0, [r4] +_08156A1C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ContestAICmd_unk_17 + + thumb_func_start ContestAICmd_unk_18 +ContestAICmd_unk_18: @ 0x08156A24 + push {r4, r5, lr} + bl ContestAICmd_unk_15 + ldr r0, _08156A60 + ldr r0, [r0] + ldr r2, [r0, #0xc] + ldr r4, _08156A64 + ldr r3, [r4] + ldrb r1, [r3] + ldrb r0, [r3, #1] + lsls r0, r0, #8 + orrs r1, r0 + movs r5, #0x18 + ldrsh r0, [r2, r5] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r0, r1 + bne _08156A68 + ldrb r1, [r3, #2] + ldrb r0, [r3, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r3, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r3, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _08156A6C + .align 2, 0 +_08156A60: .4byte 0x02039BD4 +_08156A64: .4byte 0x0203A804 +_08156A68: + adds r0, r3, #6 + str r0, [r4] +_08156A6C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ContestAICmd_unk_18 + + thumb_func_start ContestAICmd_unk_1E +ContestAICmd_unk_1E: @ 0x08156A74 + push {r4, r5, lr} + bl ContestAICmd_unk_15 + ldr r0, _08156AB0 + ldr r0, [r0] + ldr r2, [r0, #0xc] + ldr r4, _08156AB4 + ldr r3, [r4] + ldrb r1, [r3] + ldrb r0, [r3, #1] + lsls r0, r0, #8 + orrs r1, r0 + movs r5, #0x18 + ldrsh r0, [r2, r5] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r0, r1 + beq _08156AB8 + ldrb r1, [r3, #2] + ldrb r0, [r3, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r3, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r3, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _08156ABC + .align 2, 0 +_08156AB0: .4byte 0x02039BD4 +_08156AB4: .4byte 0x0203A804 +_08156AB8: + adds r0, r3, #6 + str r0, [r4] +_08156ABC: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ContestAICmd_unk_1E + + thumb_func_start ContestAICmd_unk_1A +ContestAICmd_unk_1A: @ 0x08156AC4 + ldr r0, _08156AE4 + ldr r0, [r0] + ldr r2, [r0, #0xc] + ldr r1, _08156AE8 + adds r0, r2, #0 + adds r0, #0x41 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2, #0x18] + ldr r1, _08156AEC + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + bx lr + .align 2, 0 +_08156AE4: .4byte 0x02039BD4 +_08156AE8: .4byte 0x02039BA0 +_08156AEC: .4byte 0x0203A804 + thumb_func_end ContestAICmd_unk_1A + + thumb_func_start ContestAICmd_unk_16 +ContestAICmd_unk_16: @ 0x08156AF0 + push {r4, r5, lr} + bl ContestAICmd_unk_1A + ldr r0, _08156B2C + ldr r0, [r0] + ldr r2, [r0, #0xc] + ldr r4, _08156B30 + ldr r3, [r4] + ldrb r1, [r3] + ldrb r0, [r3, #1] + lsls r0, r0, #8 + orrs r1, r0 + movs r5, #0x18 + ldrsh r0, [r2, r5] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r0, r1 + bge _08156B34 + ldrb r1, [r3, #2] + ldrb r0, [r3, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r3, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r3, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _08156B38 + .align 2, 0 +_08156B2C: .4byte 0x02039BD4 +_08156B30: .4byte 0x0203A804 +_08156B34: + adds r0, r3, #6 + str r0, [r4] +_08156B38: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ContestAICmd_unk_16 + + thumb_func_start ContestAICmd_unk_1C +ContestAICmd_unk_1C: @ 0x08156B40 + push {r4, r5, lr} + bl ContestAICmd_unk_1A + ldr r0, _08156B7C + ldr r0, [r0] + ldr r2, [r0, #0xc] + ldr r4, _08156B80 + ldr r3, [r4] + ldrb r1, [r3] + ldrb r0, [r3, #1] + lsls r0, r0, #8 + orrs r1, r0 + movs r5, #0x18 + ldrsh r0, [r2, r5] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r0, r1 + ble _08156B84 + ldrb r1, [r3, #2] + ldrb r0, [r3, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r3, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r3, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _08156B88 + .align 2, 0 +_08156B7C: .4byte 0x02039BD4 +_08156B80: .4byte 0x0203A804 +_08156B84: + adds r0, r3, #6 + str r0, [r4] +_08156B88: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ContestAICmd_unk_1C + + thumb_func_start ContestAICmd_unk_1D +ContestAICmd_unk_1D: @ 0x08156B90 + push {r4, r5, lr} + bl ContestAICmd_unk_1A + ldr r0, _08156BCC + ldr r0, [r0] + ldr r2, [r0, #0xc] + ldr r4, _08156BD0 + ldr r3, [r4] + ldrb r1, [r3] + ldrb r0, [r3, #1] + lsls r0, r0, #8 + orrs r1, r0 + movs r5, #0x18 + ldrsh r0, [r2, r5] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r0, r1 + bne _08156BD4 + ldrb r1, [r3, #2] + ldrb r0, [r3, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r3, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r3, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _08156BD8 + .align 2, 0 +_08156BCC: .4byte 0x02039BD4 +_08156BD0: .4byte 0x0203A804 +_08156BD4: + adds r0, r3, #6 + str r0, [r4] +_08156BD8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ContestAICmd_unk_1D + + thumb_func_start ContestAICmd_unk_19 +ContestAICmd_unk_19: @ 0x08156BE0 + push {r4, r5, lr} + bl ContestAICmd_unk_1A + ldr r0, _08156C1C + ldr r0, [r0] + ldr r2, [r0, #0xc] + ldr r4, _08156C20 + ldr r3, [r4] + ldrb r1, [r3] + ldrb r0, [r3, #1] + lsls r0, r0, #8 + orrs r1, r0 + movs r5, #0x18 + ldrsh r0, [r2, r5] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r0, r1 + beq _08156C24 + ldrb r1, [r3, #2] + ldrb r0, [r3, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r3, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r3, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _08156C28 + .align 2, 0 +_08156C1C: .4byte 0x02039BD4 +_08156C20: .4byte 0x0203A804 +_08156C24: + adds r0, r3, #6 + str r0, [r4] +_08156C28: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ContestAICmd_unk_19 + + thumb_func_start ContestAICmd_get_contest_type +ContestAICmd_get_contest_type: @ 0x08156C30 + ldr r0, _08156C48 + ldr r0, [r0] + ldr r1, [r0, #0xc] + ldr r0, _08156C4C + ldrh r0, [r0] + strh r0, [r1, #0x18] + ldr r1, _08156C50 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + bx lr + .align 2, 0 +_08156C48: .4byte 0x02039BD4 +_08156C4C: .4byte 0x02039BCC +_08156C50: .4byte 0x0203A804 + thumb_func_end ContestAICmd_get_contest_type + + thumb_func_start ContestAICmd_if_contest_type_eq +ContestAICmd_if_contest_type_eq: @ 0x08156C54 + push {lr} + bl ContestAICmd_get_contest_type + ldr r0, _08156C88 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _08156C8C + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + bne _08156C90 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08156C94 + .align 2, 0 +_08156C88: .4byte 0x02039BD4 +_08156C8C: .4byte 0x0203A804 +_08156C90: + adds r0, r2, #5 + str r0, [r3] +_08156C94: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_contest_type_eq + + thumb_func_start ContestAICmd_if_contest_type_not_eq +ContestAICmd_if_contest_type_not_eq: @ 0x08156C98 + push {lr} + bl ContestAICmd_get_contest_type + ldr r0, _08156CCC + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _08156CD0 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + beq _08156CD4 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08156CD8 + .align 2, 0 +_08156CCC: .4byte 0x02039BD4 +_08156CD0: .4byte 0x0203A804 +_08156CD4: + adds r0, r2, #5 + str r0, [r3] +_08156CD8: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_contest_type_not_eq + + thumb_func_start ContestAICmd_get_move_excitement +ContestAICmd_get_move_excitement: @ 0x08156CDC + push {r4, lr} + ldr r2, _08156D14 + ldr r4, _08156D18 + ldr r0, [r4] + ldr r0, [r0, #0xc] + ldrb r1, [r0, #4] + lsls r1, r1, #1 + adds r0, #0x41 + ldrb r0, [r0] + lsls r0, r0, #6 + adds r1, r1, r0 + adds r2, #0x1e + adds r1, r1, r2 + ldrh r0, [r1] + bl Contest_GetMoveExcitement + ldr r1, [r4] + ldr r1, [r1, #0xc] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r1, #0x18] + ldr r1, _08156D1C + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08156D14: .4byte 0x02039AA0 +_08156D18: .4byte 0x02039BD4 +_08156D1C: .4byte 0x0203A804 + thumb_func_end ContestAICmd_get_move_excitement + + thumb_func_start ContestAICmd_if_move_excitement_less_than +ContestAICmd_if_move_excitement_less_than: @ 0x08156D20 + push {r4, lr} + bl ContestAICmd_get_move_excitement + ldr r0, _08156D54 + ldr r0, [r0] + ldr r0, [r0, #0xc] + ldr r3, _08156D58 + ldr r2, [r3] + movs r4, #0x18 + ldrsh r1, [r0, r4] + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r1, r0 + bge _08156D5C + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08156D60 + .align 2, 0 +_08156D54: .4byte 0x02039BD4 +_08156D58: .4byte 0x0203A804 +_08156D5C: + adds r0, r2, #5 + str r0, [r3] +_08156D60: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ContestAICmd_if_move_excitement_less_than + + thumb_func_start ContestAICmd_if_move_excitement_greater_than +ContestAICmd_if_move_excitement_greater_than: @ 0x08156D68 + push {r4, lr} + bl ContestAICmd_get_move_excitement + ldr r0, _08156D9C + ldr r0, [r0] + ldr r0, [r0, #0xc] + ldr r3, _08156DA0 + ldr r2, [r3] + movs r4, #0x18 + ldrsh r1, [r0, r4] + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r1, r0 + ble _08156DA4 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08156DA8 + .align 2, 0 +_08156D9C: .4byte 0x02039BD4 +_08156DA0: .4byte 0x0203A804 +_08156DA4: + adds r0, r2, #5 + str r0, [r3] +_08156DA8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ContestAICmd_if_move_excitement_greater_than + + thumb_func_start ContestAICmd_if_move_excitement_eq +ContestAICmd_if_move_excitement_eq: @ 0x08156DB0 + push {r4, lr} + bl ContestAICmd_get_move_excitement + ldr r0, _08156DE4 + ldr r0, [r0] + ldr r0, [r0, #0xc] + ldr r3, _08156DE8 + ldr r2, [r3] + movs r4, #0x18 + ldrsh r1, [r0, r4] + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r1, r0 + bne _08156DEC + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08156DF0 + .align 2, 0 +_08156DE4: .4byte 0x02039BD4 +_08156DE8: .4byte 0x0203A804 +_08156DEC: + adds r0, r2, #5 + str r0, [r3] +_08156DF0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ContestAICmd_if_move_excitement_eq + + thumb_func_start ContestAICmd_if_move_excitement_not_eq +ContestAICmd_if_move_excitement_not_eq: @ 0x08156DF8 + push {r4, lr} + bl ContestAICmd_get_move_excitement + ldr r0, _08156E2C + ldr r0, [r0] + ldr r0, [r0, #0xc] + ldr r3, _08156E30 + ldr r2, [r3] + movs r4, #0x18 + ldrsh r1, [r0, r4] + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r1, r0 + beq _08156E34 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08156E38 + .align 2, 0 +_08156E2C: .4byte 0x02039BD4 +_08156E30: .4byte 0x0203A804 +_08156E34: + adds r0, r2, #5 + str r0, [r3] +_08156E38: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ContestAICmd_if_move_excitement_not_eq + + thumb_func_start ContestAICmd_get_move_effect +ContestAICmd_get_move_effect: @ 0x08156E40 + ldr r2, _08156E70 + ldr r0, _08156E74 + ldr r0, [r0] + ldr r3, [r0, #0xc] + ldrb r1, [r3, #4] + lsls r1, r1, #1 + adds r0, r3, #0 + adds r0, #0x41 + ldrb r0, [r0] + lsls r0, r0, #6 + adds r1, r1, r0 + adds r2, #0x1e + adds r1, r1, r2 + ldrh r0, [r1] + ldr r1, _08156E78 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r0, [r0] + strh r0, [r3, #0x18] + ldr r1, _08156E7C + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + bx lr + .align 2, 0 +_08156E70: .4byte 0x02039AA0 +_08156E74: .4byte 0x02039BD4 +_08156E78: .4byte 0x08565FCC +_08156E7C: .4byte 0x0203A804 + thumb_func_end ContestAICmd_get_move_effect + + thumb_func_start ContestAICmd_if_move_effect_eq +ContestAICmd_if_move_effect_eq: @ 0x08156E80 + push {lr} + bl ContestAICmd_get_move_effect + ldr r0, _08156EB4 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _08156EB8 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + bne _08156EBC + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08156EC0 + .align 2, 0 +_08156EB4: .4byte 0x02039BD4 +_08156EB8: .4byte 0x0203A804 +_08156EBC: + adds r0, r2, #5 + str r0, [r3] +_08156EC0: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_move_effect_eq + + thumb_func_start ContestAICmd_if_move_effect_not_eq +ContestAICmd_if_move_effect_not_eq: @ 0x08156EC4 + push {lr} + bl ContestAICmd_get_move_effect + ldr r0, _08156EF8 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _08156EFC + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + beq _08156F00 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08156F04 + .align 2, 0 +_08156EF8: .4byte 0x02039BD4 +_08156EFC: .4byte 0x0203A804 +_08156F00: + adds r0, r2, #5 + str r0, [r3] +_08156F04: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_move_effect_not_eq + + thumb_func_start ContestAICmd_get_move_effect_type +ContestAICmd_get_move_effect_type: @ 0x08156F08 + ldr r2, _08156F40 + ldr r0, _08156F44 + ldr r0, [r0] + ldr r3, [r0, #0xc] + ldrb r1, [r3, #4] + lsls r1, r1, #1 + adds r0, r3, #0 + adds r0, #0x41 + ldrb r0, [r0] + lsls r0, r0, #6 + adds r1, r1, r0 + adds r2, #0x1e + adds r1, r1, r2 + ldrh r0, [r1] + ldr r2, _08156F48 + ldr r1, _08156F4C + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0] + strh r0, [r3, #0x18] + ldr r1, _08156F50 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + bx lr + .align 2, 0 +_08156F40: .4byte 0x02039AA0 +_08156F44: .4byte 0x02039BD4 +_08156F48: .4byte 0x08566AE4 +_08156F4C: .4byte 0x08565FCC +_08156F50: .4byte 0x0203A804 + thumb_func_end ContestAICmd_get_move_effect_type + + thumb_func_start ContestAICmd_if_move_effect_type_eq +ContestAICmd_if_move_effect_type_eq: @ 0x08156F54 + push {lr} + bl ContestAICmd_get_move_effect_type + ldr r0, _08156F88 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _08156F8C + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + bne _08156F90 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08156F94 + .align 2, 0 +_08156F88: .4byte 0x02039BD4 +_08156F8C: .4byte 0x0203A804 +_08156F90: + adds r0, r2, #5 + str r0, [r3] +_08156F94: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_move_effect_type_eq + + thumb_func_start ContestAICmd_if_move_effect_type_not_eq +ContestAICmd_if_move_effect_type_not_eq: @ 0x08156F98 + push {lr} + bl ContestAICmd_get_move_effect_type + ldr r0, _08156FCC + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _08156FD0 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + beq _08156FD4 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08156FD8 + .align 2, 0 +_08156FCC: .4byte 0x02039BD4 +_08156FD0: .4byte 0x0203A804 +_08156FD4: + adds r0, r2, #5 + str r0, [r3] +_08156FD8: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_move_effect_type_not_eq + + thumb_func_start ContestAICmd_check_most_appealing_move +ContestAICmd_check_most_appealing_move: @ 0x08156FDC + push {r4, r5, r6, r7, lr} + ldr r2, _0815703C + ldr r5, _08157040 + ldr r0, [r5] + ldr r1, [r0, #0xc] + ldrb r0, [r1, #4] + lsls r0, r0, #1 + adds r1, #0x41 + ldrb r1, [r1] + lsls r1, r1, #6 + adds r0, r0, r1 + adds r2, #0x1e + adds r0, r0, r2 + ldrh r0, [r0] + ldr r3, _08157044 + ldr r4, _08157048 + lsls r0, r0, #3 + adds r0, r0, r4 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r7, [r0, #1] + movs r6, #0 + ldr r0, _0815704C + mov ip, r0 + adds r1, r1, r2 +_08157010: + ldrh r0, [r1] + cmp r0, #0 + beq _08157026 + lsls r0, r0, #3 + adds r0, r0, r4 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0, #1] + cmp r7, r0 + blo _0815702E +_08157026: + adds r1, #2 + adds r6, #1 + cmp r6, #3 + ble _08157010 +_0815702E: + cmp r6, #4 + bne _08157050 + ldr r0, [r5] + ldr r1, [r0, #0xc] + movs r0, #1 + b _08157056 + .align 2, 0 +_0815703C: .4byte 0x02039AA0 +_08157040: .4byte 0x02039BD4 +_08157044: .4byte 0x08566AE4 +_08157048: .4byte 0x08565FCC +_0815704C: .4byte 0x0203A804 +_08157050: + ldr r0, [r5] + ldr r1, [r0, #0xc] + movs r0, #0 +_08157056: + strh r0, [r1, #0x18] + mov r1, ip + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ContestAICmd_check_most_appealing_move + + thumb_func_start ContestAICmd_if_most_appealing_move +ContestAICmd_if_most_appealing_move: @ 0x08157068 + push {lr} + bl ContestAICmd_check_most_appealing_move + ldr r0, _08157098 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _081570A0 + ldr r3, _0815709C + ldr r2, [r3] + ldrb r1, [r2] + ldrb r0, [r2, #1] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #2] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _081570A8 + .align 2, 0 +_08157098: .4byte 0x02039BD4 +_0815709C: .4byte 0x0203A804 +_081570A0: + ldr r1, _081570AC + ldr r0, [r1] + adds r0, #4 + str r0, [r1] +_081570A8: + pop {r0} + bx r0 + .align 2, 0 +_081570AC: .4byte 0x0203A804 + thumb_func_end ContestAICmd_if_most_appealing_move + + thumb_func_start ContestAICmd_unk_2F +ContestAICmd_unk_2F: @ 0x081570B0 + push {r4, r5, r6, r7, lr} + ldr r2, _08157110 + ldr r5, _08157114 + ldr r0, [r5] + ldr r1, [r0, #0xc] + ldrb r0, [r1, #4] + lsls r0, r0, #1 + adds r1, #0x41 + ldrb r1, [r1] + lsls r1, r1, #6 + adds r0, r0, r1 + adds r2, #0x1e + adds r0, r0, r2 + ldrh r0, [r0] + ldr r3, _08157118 + ldr r4, _0815711C + lsls r0, r0, #3 + adds r0, r0, r4 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r7, [r0, #2] + movs r6, #0 + ldr r0, _08157120 + mov ip, r0 + adds r1, r1, r2 +_081570E4: + ldrh r0, [r1] + cmp r0, #0 + beq _081570FA + lsls r0, r0, #3 + adds r0, r0, r4 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0, #2] + cmp r7, r0 + blo _08157102 +_081570FA: + adds r1, #2 + adds r6, #1 + cmp r6, #3 + ble _081570E4 +_08157102: + cmp r6, #4 + bne _08157124 + ldr r0, [r5] + ldr r1, [r0, #0xc] + movs r0, #1 + b _0815712A + .align 2, 0 +_08157110: .4byte 0x02039AA0 +_08157114: .4byte 0x02039BD4 +_08157118: .4byte 0x08566AE4 +_0815711C: .4byte 0x08565FCC +_08157120: .4byte 0x0203A804 +_08157124: + ldr r0, [r5] + ldr r1, [r0, #0xc] + movs r0, #0 +_0815712A: + strh r0, [r1, #0x18] + mov r1, ip + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ContestAICmd_unk_2F + + thumb_func_start ContestAICmd_unk_30 +ContestAICmd_unk_30: @ 0x0815713C + push {lr} + bl ContestAICmd_unk_2F + ldr r0, _0815716C + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _08157174 + ldr r3, _08157170 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _0815717C + .align 2, 0 +_0815716C: .4byte 0x02039BD4 +_08157170: .4byte 0x0203A804 +_08157174: + ldr r1, _08157180 + ldr r0, [r1] + adds r0, #5 + str r0, [r1] +_0815717C: + pop {r0} + bx r0 + .align 2, 0 +_08157180: .4byte 0x0203A804 + thumb_func_end ContestAICmd_unk_30 + + thumb_func_start ContestAICmd_unk_31 +ContestAICmd_unk_31: @ 0x08157184 + push {r4, lr} + ldr r2, _081571CC + ldr r0, _081571D0 + ldr r0, [r0] + ldr r4, [r0, #0xc] + ldrb r1, [r4, #4] + lsls r1, r1, #1 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + lsls r0, r0, #6 + adds r1, r1, r0 + adds r2, #0x1e + adds r1, r1, r2 + ldrh r0, [r1] + ldr r2, _081571D4 + ldr r1, _081571D8 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #1] + movs r1, #0xa + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x18] + ldr r1, _081571DC + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081571CC: .4byte 0x02039AA0 +_081571D0: .4byte 0x02039BD4 +_081571D4: .4byte 0x08566AE4 +_081571D8: .4byte 0x08565FCC +_081571DC: .4byte 0x0203A804 + thumb_func_end ContestAICmd_unk_31 + + thumb_func_start ContestAICmd_unk_32 +ContestAICmd_unk_32: @ 0x081571E0 + push {lr} + bl ContestAICmd_unk_31 + ldr r0, _08157214 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _08157218 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + bge _0815721C + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08157220 + .align 2, 0 +_08157214: .4byte 0x02039BD4 +_08157218: .4byte 0x0203A804 +_0815721C: + adds r0, r2, #5 + str r0, [r3] +_08157220: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_unk_32 + + thumb_func_start ContestAICmd_if_used_combo_starter_more_than +ContestAICmd_if_used_combo_starter_more_than: @ 0x08157224 + push {lr} + bl ContestAICmd_unk_31 + ldr r0, _08157258 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _0815725C + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + ble _08157260 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08157264 + .align 2, 0 +_08157258: .4byte 0x02039BD4 +_0815725C: .4byte 0x0203A804 +_08157260: + adds r0, r2, #5 + str r0, [r3] +_08157264: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_used_combo_starter_more_than + + thumb_func_start ContestAICmd_if_used_combo_starter_eq +ContestAICmd_if_used_combo_starter_eq: @ 0x08157268 + push {lr} + bl ContestAICmd_unk_31 + ldr r0, _0815729C + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _081572A0 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + bne _081572A4 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _081572A8 + .align 2, 0 +_0815729C: .4byte 0x02039BD4 +_081572A0: .4byte 0x0203A804 +_081572A4: + adds r0, r2, #5 + str r0, [r3] +_081572A8: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_used_combo_starter_eq + + thumb_func_start ContestAICmd_unk_35 +ContestAICmd_unk_35: @ 0x081572AC + push {lr} + bl ContestAICmd_unk_31 + ldr r0, _081572E0 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _081572E4 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + beq _081572E8 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _081572EC + .align 2, 0 +_081572E0: .4byte 0x02039BD4 +_081572E4: .4byte 0x0203A804 +_081572E8: + adds r0, r2, #5 + str r0, [r3] +_081572EC: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_unk_35 + + thumb_func_start ContestAICmd_unk_36 +ContestAICmd_unk_36: @ 0x081572F0 + push {r4, lr} + ldr r2, _08157338 + ldr r0, _0815733C + ldr r0, [r0] + ldr r4, [r0, #0xc] + ldrb r1, [r4, #4] + lsls r1, r1, #1 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + lsls r0, r0, #6 + adds r1, r1, r0 + adds r2, #0x1e + adds r1, r1, r2 + ldrh r0, [r1] + ldr r2, _08157340 + ldr r1, _08157344 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #2] + movs r1, #0xa + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x18] + ldr r1, _08157348 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08157338: .4byte 0x02039AA0 +_0815733C: .4byte 0x02039BD4 +_08157340: .4byte 0x08566AE4 +_08157344: .4byte 0x08565FCC +_08157348: .4byte 0x0203A804 + thumb_func_end ContestAICmd_unk_36 + + thumb_func_start ContestAICmd_unk_37 +ContestAICmd_unk_37: @ 0x0815734C + push {lr} + bl ContestAICmd_unk_36 + ldr r0, _08157380 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _08157384 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + bge _08157388 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _0815738C + .align 2, 0 +_08157380: .4byte 0x02039BD4 +_08157384: .4byte 0x0203A804 +_08157388: + adds r0, r2, #5 + str r0, [r3] +_0815738C: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_unk_37 + + thumb_func_start ContestAICmd_unk_33 +ContestAICmd_unk_33: @ 0x08157390 + push {lr} + bl ContestAICmd_unk_36 + ldr r0, _081573C4 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _081573C8 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + ble _081573CC + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _081573D0 + .align 2, 0 +_081573C4: .4byte 0x02039BD4 +_081573C8: .4byte 0x0203A804 +_081573CC: + adds r0, r2, #5 + str r0, [r3] +_081573D0: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_unk_33 + + thumb_func_start ContestAICmd_unk_34 +ContestAICmd_unk_34: @ 0x081573D4 + push {lr} + bl ContestAICmd_unk_36 + ldr r0, _08157408 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _0815740C + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + bne _08157410 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08157414 + .align 2, 0 +_08157408: .4byte 0x02039BD4 +_0815740C: .4byte 0x0203A804 +_08157410: + adds r0, r2, #5 + str r0, [r3] +_08157414: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_unk_34 + + thumb_func_start ContestAICmd_unk_3A +ContestAICmd_unk_3A: @ 0x08157418 + push {lr} + bl ContestAICmd_unk_36 + ldr r0, _0815744C + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _08157450 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + beq _08157454 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08157458 + .align 2, 0 +_0815744C: .4byte 0x02039BD4 +_08157450: .4byte 0x0203A804 +_08157454: + adds r0, r2, #5 + str r0, [r3] +_08157458: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_unk_3A + + thumb_func_start ContestAICmd_get_move_used_count +ContestAICmd_get_move_used_count: @ 0x0815745C + push {r4, r5, lr} + ldr r3, _0815748C + ldr r5, _08157490 + ldr r4, [r5] + ldr r1, [r4, #0xc] + ldrb r0, [r1, #4] + lsls r0, r0, #1 + adds r1, #0x41 + ldrb r2, [r1] + lsls r1, r2, #6 + adds r0, r0, r1 + adds r3, #0x1e + adds r0, r0, r3 + ldrh r3, [r0] + ldr r1, [r4, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r1, [r0, #8] + cmp r3, r1 + beq _08157494 + movs r1, #0 + b _0815749C + .align 2, 0 +_0815748C: .4byte 0x02039AA0 +_08157490: .4byte 0x02039BD4 +_08157494: + ldrb r0, [r0, #0xb] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1d + adds r1, r0, #1 +_0815749C: + ldr r0, [r5] + ldr r0, [r0, #0xc] + strh r1, [r0, #0x18] + ldr r1, _081574B0 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081574B0: .4byte 0x0203A804 + thumb_func_end ContestAICmd_get_move_used_count + + thumb_func_start ContestAICmd_if_most_used_count_less_than +ContestAICmd_if_most_used_count_less_than: @ 0x081574B4 + push {lr} + bl ContestAICmd_get_move_used_count + ldr r0, _081574E8 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _081574EC + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + bge _081574F0 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _081574F4 + .align 2, 0 +_081574E8: .4byte 0x02039BD4 +_081574EC: .4byte 0x0203A804 +_081574F0: + adds r0, r2, #5 + str r0, [r3] +_081574F4: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_most_used_count_less_than + + thumb_func_start ContestAICmd_if_most_used_count_more_than +ContestAICmd_if_most_used_count_more_than: @ 0x081574F8 + push {lr} + bl ContestAICmd_get_move_used_count + ldr r0, _0815752C + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _08157530 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + ble _08157534 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08157538 + .align 2, 0 +_0815752C: .4byte 0x02039BD4 +_08157530: .4byte 0x0203A804 +_08157534: + adds r0, r2, #5 + str r0, [r3] +_08157538: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_most_used_count_more_than + + thumb_func_start ContestAICmd_if_most_used_count_eq +ContestAICmd_if_most_used_count_eq: @ 0x0815753C + push {lr} + bl ContestAICmd_get_move_used_count + ldr r0, _08157570 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _08157574 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + bne _08157578 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _0815757C + .align 2, 0 +_08157570: .4byte 0x02039BD4 +_08157574: .4byte 0x0203A804 +_08157578: + adds r0, r2, #5 + str r0, [r3] +_0815757C: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_most_used_count_eq + + thumb_func_start ContestAICmd_if_most_used_count_not_eq +ContestAICmd_if_most_used_count_not_eq: @ 0x08157580 + push {lr} + bl ContestAICmd_get_move_used_count + ldr r0, _081575B4 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _081575B8 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + beq _081575BC + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _081575C0 + .align 2, 0 +_081575B4: .4byte 0x02039BD4 +_081575B8: .4byte 0x0203A804 +_081575BC: + adds r0, r2, #5 + str r0, [r3] +_081575C0: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_most_used_count_not_eq + + thumb_func_start ContestAICmd_check_combo_starter +ContestAICmd_check_combo_starter: @ 0x081575C4 + push {r4, r5, r6, lr} + movs r3, #0 + ldr r2, _08157630 + ldr r0, _08157634 + ldr r0, [r0] + ldr r0, [r0, #0xc] + ldrb r1, [r0, #4] + lsls r1, r1, #1 + adds r0, #0x41 + ldrb r0, [r0] + lsls r0, r0, #6 + adds r1, r1, r0 + adds r2, #0x1e + adds r1, r1, r2 + ldrh r5, [r1] + movs r4, #0 + adds r6, r2, #0 +_081575E6: + lsls r1, r4, #1 + ldr r0, _08157634 + ldr r0, [r0] + ldr r0, [r0, #0xc] + adds r0, #0x41 + ldrb r0, [r0] + lsls r0, r0, #6 + adds r1, r1, r0 + adds r1, r1, r6 + ldrh r0, [r1] + cmp r0, #0 + beq _0815760E + adds r1, r0, #0 + adds r0, r5, #0 + bl AreMovesContestCombo + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _08157618 +_0815760E: + adds r4, #1 + cmp r4, #3 + ble _081575E6 + cmp r3, #0 + beq _0815761A +_08157618: + movs r3, #1 +_0815761A: + ldr r0, _08157634 + ldr r0, [r0] + ldr r0, [r0, #0xc] + strh r3, [r0, #0x18] + ldr r1, _08157638 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08157630: .4byte 0x02039AA0 +_08157634: .4byte 0x02039BD4 +_08157638: .4byte 0x0203A804 + thumb_func_end ContestAICmd_check_combo_starter + + thumb_func_start ContestAICmd_if_combo_starter +ContestAICmd_if_combo_starter: @ 0x0815763C + push {lr} + bl ContestAICmd_check_combo_starter + ldr r0, _0815766C + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _08157674 + ldr r3, _08157670 + ldr r2, [r3] + ldrb r1, [r2] + ldrb r0, [r2, #1] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #2] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _0815767C + .align 2, 0 +_0815766C: .4byte 0x02039BD4 +_08157670: .4byte 0x0203A804 +_08157674: + ldr r1, _08157680 + ldr r0, [r1] + adds r0, #4 + str r0, [r1] +_0815767C: + pop {r0} + bx r0 + .align 2, 0 +_08157680: .4byte 0x0203A804 + thumb_func_end ContestAICmd_if_combo_starter + + thumb_func_start ContestAICmd_if_not_combo_starter +ContestAICmd_if_not_combo_starter: @ 0x08157684 + push {lr} + bl ContestAICmd_check_combo_starter + ldr r0, _081576B4 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _081576BC + ldr r3, _081576B8 + ldr r2, [r3] + ldrb r1, [r2] + ldrb r0, [r2, #1] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #2] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _081576C4 + .align 2, 0 +_081576B4: .4byte 0x02039BD4 +_081576B8: .4byte 0x0203A804 +_081576BC: + ldr r1, _081576C8 + ldr r0, [r1] + adds r0, #4 + str r0, [r1] +_081576C4: + pop {r0} + bx r0 + .align 2, 0 +_081576C8: .4byte 0x0203A804 + thumb_func_end ContestAICmd_if_not_combo_starter + + thumb_func_start ContestAICmd_check_combo_finisher +ContestAICmd_check_combo_finisher: @ 0x081576CC + push {r4, r5, r6, lr} + movs r3, #0 + ldr r2, _08157738 + ldr r0, _0815773C + ldr r0, [r0] + ldr r0, [r0, #0xc] + ldrb r1, [r0, #4] + lsls r1, r1, #1 + adds r0, #0x41 + ldrb r0, [r0] + lsls r0, r0, #6 + adds r1, r1, r0 + adds r2, #0x1e + adds r1, r1, r2 + ldrh r5, [r1] + movs r4, #0 + adds r6, r2, #0 +_081576EE: + lsls r1, r4, #1 + ldr r0, _0815773C + ldr r0, [r0] + ldr r0, [r0, #0xc] + adds r0, #0x41 + ldrb r0, [r0] + lsls r0, r0, #6 + adds r1, r1, r0 + adds r1, r1, r6 + ldrh r0, [r1] + cmp r0, #0 + beq _08157714 + adds r1, r5, #0 + bl AreMovesContestCombo + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _0815771E +_08157714: + adds r4, #1 + cmp r4, #3 + ble _081576EE + cmp r3, #0 + beq _08157720 +_0815771E: + movs r3, #1 +_08157720: + ldr r0, _0815773C + ldr r0, [r0] + ldr r0, [r0, #0xc] + strh r3, [r0, #0x18] + ldr r1, _08157740 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08157738: .4byte 0x02039AA0 +_0815773C: .4byte 0x02039BD4 +_08157740: .4byte 0x0203A804 + thumb_func_end ContestAICmd_check_combo_finisher + + thumb_func_start ContestAICmd_if_combo_finisher +ContestAICmd_if_combo_finisher: @ 0x08157744 + push {lr} + bl ContestAICmd_check_combo_finisher + ldr r0, _08157774 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _0815777C + ldr r3, _08157778 + ldr r2, [r3] + ldrb r1, [r2] + ldrb r0, [r2, #1] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #2] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08157784 + .align 2, 0 +_08157774: .4byte 0x02039BD4 +_08157778: .4byte 0x0203A804 +_0815777C: + ldr r1, _08157788 + ldr r0, [r1] + adds r0, #4 + str r0, [r1] +_08157784: + pop {r0} + bx r0 + .align 2, 0 +_08157788: .4byte 0x0203A804 + thumb_func_end ContestAICmd_if_combo_finisher + + thumb_func_start ContestAICmd_if_not_combo_finisher +ContestAICmd_if_not_combo_finisher: @ 0x0815778C + push {lr} + bl ContestAICmd_check_combo_finisher + ldr r0, _081577BC + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _081577C4 + ldr r3, _081577C0 + ldr r2, [r3] + ldrb r1, [r2] + ldrb r0, [r2, #1] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #2] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _081577CC + .align 2, 0 +_081577BC: .4byte 0x02039BD4 +_081577C0: .4byte 0x0203A804 +_081577C4: + ldr r1, _081577D0 + ldr r0, [r1] + adds r0, #4 + str r0, [r1] +_081577CC: + pop {r0} + bx r0 + .align 2, 0 +_081577D0: .4byte 0x0203A804 + thumb_func_end ContestAICmd_if_not_combo_finisher + + thumb_func_start ContestAICmd_check_would_finish_combo +ContestAICmd_check_would_finish_combo: @ 0x081577D4 + push {r4, r5, r6, lr} + movs r5, #0 + ldr r3, _08157828 + ldr r6, _0815782C + ldr r4, [r6] + ldr r1, [r4, #0xc] + ldrb r0, [r1, #4] + lsls r0, r0, #1 + adds r1, #0x41 + ldrb r2, [r1] + lsls r1, r2, #6 + adds r0, r0, r1 + adds r3, #0x1e + adds r0, r0, r3 + ldrh r3, [r0] + ldr r1, [r4, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r1, r0, r1 + ldrh r0, [r1, #8] + cmp r0, #0 + beq _0815780C + adds r1, r3, #0 + bl AreMovesContestCombo + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_0815780C: + cmp r5, #0 + beq _08157812 + movs r5, #1 +_08157812: + ldr r0, [r6] + ldr r0, [r0, #0xc] + strh r5, [r0, #0x18] + ldr r1, _08157830 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08157828: .4byte 0x02039AA0 +_0815782C: .4byte 0x02039BD4 +_08157830: .4byte 0x0203A804 + thumb_func_end ContestAICmd_check_would_finish_combo + + thumb_func_start ContestAICmd_if_would_finish_combo +ContestAICmd_if_would_finish_combo: @ 0x08157834 + push {lr} + bl ContestAICmd_check_would_finish_combo + ldr r0, _08157864 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _0815786C + ldr r3, _08157868 + ldr r2, [r3] + ldrb r1, [r2] + ldrb r0, [r2, #1] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #2] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08157874 + .align 2, 0 +_08157864: .4byte 0x02039BD4 +_08157868: .4byte 0x0203A804 +_0815786C: + ldr r1, _08157878 + ldr r0, [r1] + adds r0, #4 + str r0, [r1] +_08157874: + pop {r0} + bx r0 + .align 2, 0 +_08157878: .4byte 0x0203A804 + thumb_func_end ContestAICmd_if_would_finish_combo + + thumb_func_start ContestAICmd_if_would_not_finish_combo +ContestAICmd_if_would_not_finish_combo: @ 0x0815787C + push {lr} + bl ContestAICmd_check_would_finish_combo + ldr r0, _081578AC + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _081578B4 + ldr r3, _081578B0 + ldr r2, [r3] + ldrb r1, [r2] + ldrb r0, [r2, #1] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #2] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _081578BC + .align 2, 0 +_081578AC: .4byte 0x02039BD4 +_081578B0: .4byte 0x0203A804 +_081578B4: + ldr r1, _081578C0 + ldr r0, [r1] + adds r0, #4 + str r0, [r1] +_081578BC: + pop {r0} + bx r0 + .align 2, 0 +_081578C0: .4byte 0x0203A804 + thumb_func_end ContestAICmd_if_would_not_finish_combo + + thumb_func_start ContestAICmd_get_condition +ContestAICmd_get_condition: @ 0x081578C4 + push {r4, r5, lr} + ldr r4, _08157900 + ldr r0, [r4] + ldrb r0, [r0, #1] + bl sub_081563E8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08157904 + ldr r1, [r1] + ldr r5, [r1, #0xc] + ldr r2, [r1, #4] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #0xd + ldrsb r0, [r1, r0] + movs r1, #0xa + bl __divsi3 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r5, #0x18] + ldr r0, [r4] + adds r0, #2 + str r0, [r4] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08157900: .4byte 0x0203A804 +_08157904: .4byte 0x02039BD4 + thumb_func_end ContestAICmd_get_condition + + thumb_func_start ContestAICmd_if_condition_less_than +ContestAICmd_if_condition_less_than: @ 0x08157908 + push {lr} + bl ContestAICmd_get_condition + ldr r0, _0815793C + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _08157940 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + bge _08157944 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08157948 + .align 2, 0 +_0815793C: .4byte 0x02039BD4 +_08157940: .4byte 0x0203A804 +_08157944: + adds r0, r2, #5 + str r0, [r3] +_08157948: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_condition_less_than + + thumb_func_start ContestAICmd_if_condition_more_than +ContestAICmd_if_condition_more_than: @ 0x0815794C + push {lr} + bl ContestAICmd_get_condition + ldr r0, _08157980 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _08157984 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + ble _08157988 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _0815798C + .align 2, 0 +_08157980: .4byte 0x02039BD4 +_08157984: .4byte 0x0203A804 +_08157988: + adds r0, r2, #5 + str r0, [r3] +_0815798C: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_condition_more_than + + thumb_func_start ContestAICmd_if_condition_eq +ContestAICmd_if_condition_eq: @ 0x08157990 + push {lr} + bl ContestAICmd_get_condition + ldr r0, _081579C4 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _081579C8 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + bne _081579CC + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _081579D0 + .align 2, 0 +_081579C4: .4byte 0x02039BD4 +_081579C8: .4byte 0x0203A804 +_081579CC: + adds r0, r2, #5 + str r0, [r3] +_081579D0: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_condition_eq + + thumb_func_start ContestAICmd_if_condition_not_eq +ContestAICmd_if_condition_not_eq: @ 0x081579D4 + push {lr} + bl ContestAICmd_get_condition + ldr r0, _08157A08 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _08157A0C + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + beq _08157A10 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08157A14 + .align 2, 0 +_08157A08: .4byte 0x02039BD4 +_08157A0C: .4byte 0x0203A804 +_08157A10: + adds r0, r2, #5 + str r0, [r3] +_08157A14: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_condition_not_eq + + thumb_func_start ContestAICmd_get_used_combo_starter +ContestAICmd_get_used_combo_starter: @ 0x08157A18 + push {r4, r5, r6, lr} + movs r6, #0 + ldr r5, _08157A68 + ldr r0, [r5] + ldrb r0, [r0, #1] + bl sub_081563E8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl sub_080DD94C + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08157A54 + ldr r2, _08157A6C + ldr r0, _08157A70 + ldr r0, [r0] + ldr r1, [r0, #4] + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0, #8] + lsls r0, r0, #3 + adds r0, r0, r2 + ldrb r1, [r0, #2] + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r6, r0, #0x1f +_08157A54: + ldr r0, _08157A70 + ldr r0, [r0] + ldr r0, [r0, #0xc] + strh r6, [r0, #0x18] + ldr r0, [r5] + adds r0, #2 + str r0, [r5] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08157A68: .4byte 0x0203A804 +_08157A6C: .4byte 0x08565FCC +_08157A70: .4byte 0x02039BD4 + thumb_func_end ContestAICmd_get_used_combo_starter + + thumb_func_start ContestAICmd_if_used_combo_starter_less_than +ContestAICmd_if_used_combo_starter_less_than: @ 0x08157A74 + push {lr} + bl ContestAICmd_get_used_combo_starter + ldr r0, _08157AA8 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _08157AAC + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + bge _08157AB0 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08157AB4 + .align 2, 0 +_08157AA8: .4byte 0x02039BD4 +_08157AAC: .4byte 0x0203A804 +_08157AB0: + adds r0, r2, #5 + str r0, [r3] +_08157AB4: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_used_combo_starter_less_than + + thumb_func_start ContestAICmd_unk_38 +ContestAICmd_unk_38: @ 0x08157AB8 + push {lr} + bl ContestAICmd_get_used_combo_starter + ldr r0, _08157AEC + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _08157AF0 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + ble _08157AF4 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08157AF8 + .align 2, 0 +_08157AEC: .4byte 0x02039BD4 +_08157AF0: .4byte 0x0203A804 +_08157AF4: + adds r0, r2, #5 + str r0, [r3] +_08157AF8: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_unk_38 + + thumb_func_start ContestAICmd_unk_39 +ContestAICmd_unk_39: @ 0x08157AFC + push {lr} + bl ContestAICmd_get_used_combo_starter + ldr r0, _08157B30 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _08157B34 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + bne _08157B38 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08157B3C + .align 2, 0 +_08157B30: .4byte 0x02039BD4 +_08157B34: .4byte 0x0203A804 +_08157B38: + adds r0, r2, #5 + str r0, [r3] +_08157B3C: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_unk_39 + + thumb_func_start ContestAICmd_if_used_combo_starter_not_eq +ContestAICmd_if_used_combo_starter_not_eq: @ 0x08157B40 + push {lr} + bl ContestAICmd_get_used_combo_starter + ldr r0, _08157B74 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _08157B78 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + beq _08157B7C + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08157B80 + .align 2, 0 +_08157B74: .4byte 0x02039BD4 +_08157B78: .4byte 0x0203A804 +_08157B7C: + adds r0, r2, #5 + str r0, [r3] +_08157B80: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_if_used_combo_starter_not_eq + + thumb_func_start ContestAICmd_check_can_participate +ContestAICmd_check_can_participate: @ 0x08157B84 + push {lr} + ldr r0, _08157BA8 + ldr r0, [r0] + ldrb r0, [r0, #1] + bl sub_081563E8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl Contest_IsMonsTurnDisabled + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08157BB0 + ldr r0, _08157BAC + ldr r0, [r0] + ldr r1, [r0, #0xc] + movs r0, #0 + b _08157BB8 + .align 2, 0 +_08157BA8: .4byte 0x0203A804 +_08157BAC: .4byte 0x02039BD4 +_08157BB0: + ldr r0, _08157BC8 + ldr r0, [r0] + ldr r1, [r0, #0xc] + movs r0, #1 +_08157BB8: + strh r0, [r1, #0x18] + ldr r1, _08157BCC + ldr r0, [r1] + adds r0, #2 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08157BC8: .4byte 0x02039BD4 +_08157BCC: .4byte 0x0203A804 + thumb_func_end ContestAICmd_check_can_participate + + thumb_func_start ContestAICmd_if_can_participate +ContestAICmd_if_can_participate: @ 0x08157BD0 + push {lr} + bl ContestAICmd_check_can_participate + ldr r0, _08157C00 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _08157C08 + ldr r3, _08157C04 + ldr r2, [r3] + ldrb r1, [r2] + ldrb r0, [r2, #1] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #2] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08157C10 + .align 2, 0 +_08157C00: .4byte 0x02039BD4 +_08157C04: .4byte 0x0203A804 +_08157C08: + ldr r1, _08157C14 + ldr r0, [r1] + adds r0, #4 + str r0, [r1] +_08157C10: + pop {r0} + bx r0 + .align 2, 0 +_08157C14: .4byte 0x0203A804 + thumb_func_end ContestAICmd_if_can_participate + + thumb_func_start ContestAICmd_if_cannot_participate +ContestAICmd_if_cannot_participate: @ 0x08157C18 + push {lr} + bl ContestAICmd_check_can_participate + ldr r0, _08157C48 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08157C50 + ldr r3, _08157C4C + ldr r2, [r3] + ldrb r1, [r2] + ldrb r0, [r2, #1] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #2] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08157C58 + .align 2, 0 +_08157C48: .4byte 0x02039BD4 +_08157C4C: .4byte 0x0203A804 +_08157C50: + ldr r1, _08157C5C + ldr r0, [r1] + adds r0, #4 + str r0, [r1] +_08157C58: + pop {r0} + bx r0 + .align 2, 0 +_08157C5C: .4byte 0x0203A804 + thumb_func_end ContestAICmd_if_cannot_participate + + thumb_func_start ContestAICmd_get_val_812A188 +ContestAICmd_get_val_812A188: @ 0x08157C60 + push {r4, lr} + ldr r4, _08157C94 + ldr r0, [r4] + ldrb r0, [r0, #1] + bl sub_081563E8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08157C98 + ldr r1, [r1] + ldr r3, [r1, #0xc] + ldr r2, [r1, #4] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r0, [r1, #0x15] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1f + strh r0, [r3, #0x18] + ldr r0, [r4] + adds r0, #2 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08157C94: .4byte 0x0203A804 +_08157C98: .4byte 0x02039BD4 + thumb_func_end ContestAICmd_get_val_812A188 + + thumb_func_start ContestAICmd_unk_57 +ContestAICmd_unk_57: @ 0x08157C9C + push {lr} + bl ContestAICmd_get_val_812A188 + ldr r0, _08157CCC + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _08157CD4 + ldr r3, _08157CD0 + ldr r2, [r3] + ldrb r1, [r2] + ldrb r0, [r2, #1] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #2] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08157CDC + .align 2, 0 +_08157CCC: .4byte 0x02039BD4 +_08157CD0: .4byte 0x0203A804 +_08157CD4: + ldr r1, _08157CE0 + ldr r0, [r1] + adds r0, #4 + str r0, [r1] +_08157CDC: + pop {r0} + bx r0 + .align 2, 0 +_08157CE0: .4byte 0x0203A804 + thumb_func_end ContestAICmd_unk_57 + + thumb_func_start ContestAICmd_contest_58 +ContestAICmd_contest_58: @ 0x08157CE4 + push {lr} + bl ContestAICmd_get_val_812A188 + ldr r0, _08157D14 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08157D1C + ldr r3, _08157D18 + ldr r2, [r3] + ldrb r1, [r2] + ldrb r0, [r2, #1] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #2] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08157D24 + .align 2, 0 +_08157D14: .4byte 0x02039BD4 +_08157D18: .4byte 0x0203A804 +_08157D1C: + ldr r1, _08157D28 + ldr r0, [r1] + adds r0, #4 + str r0, [r1] +_08157D24: + pop {r0} + bx r0 + .align 2, 0 +_08157D28: .4byte 0x0203A804 + thumb_func_end ContestAICmd_contest_58 + + thumb_func_start ContestAICmd_unk_59 +ContestAICmd_unk_59: @ 0x08157D2C + push {r4, r5, lr} + ldr r4, _08157D70 + ldr r0, [r4] + ldrb r0, [r0, #1] + bl sub_081563E8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08157D74 + ldr r1, [r1] + ldr r5, [r1, #0xc] + ldr r3, [r1, #4] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + adds r0, r5, #0 + adds r0, #0x41 + ldrb r2, [r0] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r1, #4] + ldrh r0, [r0, #4] + subs r1, r1, r0 + strh r1, [r5, #0x18] + ldr r0, [r4] + adds r0, #2 + str r0, [r4] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08157D70: .4byte 0x0203A804 +_08157D74: .4byte 0x02039BD4 + thumb_func_end ContestAICmd_unk_59 + + thumb_func_start ContestAICmd_unk_5A +ContestAICmd_unk_5A: @ 0x08157D78 + push {lr} + bl ContestAICmd_unk_59 + ldr r0, _08157DA8 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + cmp r0, #0 + bge _08157DB0 + ldr r3, _08157DAC + ldr r2, [r3] + ldrb r1, [r2] + ldrb r0, [r2, #1] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #2] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08157DB8 + .align 2, 0 +_08157DA8: .4byte 0x02039BD4 +_08157DAC: .4byte 0x0203A804 +_08157DB0: + ldr r1, _08157DBC + ldr r0, [r1] + adds r0, #4 + str r0, [r1] +_08157DB8: + pop {r0} + bx r0 + .align 2, 0 +_08157DBC: .4byte 0x0203A804 + thumb_func_end ContestAICmd_unk_5A + + thumb_func_start ContestAICmd_unk_5B +ContestAICmd_unk_5B: @ 0x08157DC0 + push {lr} + bl ContestAICmd_unk_59 + ldr r0, _08157DF0 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + cmp r0, #0 + ble _08157DF8 + ldr r3, _08157DF4 + ldr r2, [r3] + ldrb r1, [r2] + ldrb r0, [r2, #1] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #2] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08157E00 + .align 2, 0 +_08157DF0: .4byte 0x02039BD4 +_08157DF4: .4byte 0x0203A804 +_08157DF8: + ldr r1, _08157E04 + ldr r0, [r1] + adds r0, #4 + str r0, [r1] +_08157E00: + pop {r0} + bx r0 + .align 2, 0 +_08157E04: .4byte 0x0203A804 + thumb_func_end ContestAICmd_unk_5B + + thumb_func_start ContestAICmd_unk_5C +ContestAICmd_unk_5C: @ 0x08157E08 + push {lr} + bl ContestAICmd_unk_59 + ldr r0, _08157E38 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08157E40 + ldr r3, _08157E3C + ldr r2, [r3] + ldrb r1, [r2] + ldrb r0, [r2, #1] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #2] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08157E48 + .align 2, 0 +_08157E38: .4byte 0x02039BD4 +_08157E3C: .4byte 0x0203A804 +_08157E40: + ldr r1, _08157E4C + ldr r0, [r1] + adds r0, #4 + str r0, [r1] +_08157E48: + pop {r0} + bx r0 + .align 2, 0 +_08157E4C: .4byte 0x0203A804 + thumb_func_end ContestAICmd_unk_5C + + thumb_func_start ContestAICmd_unk_5D +ContestAICmd_unk_5D: @ 0x08157E50 + push {lr} + bl ContestAICmd_unk_59 + ldr r0, _08157E80 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _08157E88 + ldr r3, _08157E84 + ldr r2, [r3] + ldrb r1, [r2] + ldrb r0, [r2, #1] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #2] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08157E90 + .align 2, 0 +_08157E80: .4byte 0x02039BD4 +_08157E84: .4byte 0x0203A804 +_08157E88: + ldr r1, _08157E94 + ldr r0, [r1] + adds r0, #4 + str r0, [r1] +_08157E90: + pop {r0} + bx r0 + .align 2, 0 +_08157E94: .4byte 0x0203A804 + thumb_func_end ContestAICmd_unk_5D + + thumb_func_start ContestAICmd_unk_5E +ContestAICmd_unk_5E: @ 0x08157E98 + push {r4, lr} + ldr r4, _08157ED0 + ldr r0, [r4] + ldrb r0, [r0, #1] + bl sub_081563E8 + lsls r0, r0, #0x18 + ldr r1, _08157ED4 + ldr r1, [r1] + ldr r3, [r1, #0xc] + ldr r2, _08157ED8 + lsrs r0, r0, #0x17 + adds r0, r0, r2 + adds r1, r3, #0 + adds r1, #0x41 + ldrb r1, [r1] + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r0] + ldrh r1, [r1] + subs r0, r0, r1 + strh r0, [r3, #0x18] + ldr r0, [r4] + adds r0, #2 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08157ED0: .4byte 0x0203A804 +_08157ED4: .4byte 0x02039BD4 +_08157ED8: .4byte 0x02039BA0 + thumb_func_end ContestAICmd_unk_5E + + thumb_func_start ContestAICmd_unk_5F +ContestAICmd_unk_5F: @ 0x08157EDC + push {lr} + bl ContestAICmd_unk_5E + ldr r0, _08157F0C + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + cmp r0, #0 + bge _08157F14 + ldr r3, _08157F10 + ldr r2, [r3] + ldrb r1, [r2] + ldrb r0, [r2, #1] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #2] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08157F1C + .align 2, 0 +_08157F0C: .4byte 0x02039BD4 +_08157F10: .4byte 0x0203A804 +_08157F14: + ldr r1, _08157F20 + ldr r0, [r1] + adds r0, #4 + str r0, [r1] +_08157F1C: + pop {r0} + bx r0 + .align 2, 0 +_08157F20: .4byte 0x0203A804 + thumb_func_end ContestAICmd_unk_5F + + thumb_func_start ContestAICmd_unk_60 +ContestAICmd_unk_60: @ 0x08157F24 + push {lr} + bl ContestAICmd_unk_5E + ldr r0, _08157F54 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + cmp r0, #0 + ble _08157F5C + ldr r3, _08157F58 + ldr r2, [r3] + ldrb r1, [r2] + ldrb r0, [r2, #1] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #2] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08157F64 + .align 2, 0 +_08157F54: .4byte 0x02039BD4 +_08157F58: .4byte 0x0203A804 +_08157F5C: + ldr r1, _08157F68 + ldr r0, [r1] + adds r0, #4 + str r0, [r1] +_08157F64: + pop {r0} + bx r0 + .align 2, 0 +_08157F68: .4byte 0x0203A804 + thumb_func_end ContestAICmd_unk_60 + + thumb_func_start ContestAICmd_unk_61 +ContestAICmd_unk_61: @ 0x08157F6C + push {lr} + bl ContestAICmd_unk_5E + ldr r0, _08157F9C + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08157FA4 + ldr r3, _08157FA0 + ldr r2, [r3] + ldrb r1, [r2] + ldrb r0, [r2, #1] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #2] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08157FAC + .align 2, 0 +_08157F9C: .4byte 0x02039BD4 +_08157FA0: .4byte 0x0203A804 +_08157FA4: + ldr r1, _08157FB0 + ldr r0, [r1] + adds r0, #4 + str r0, [r1] +_08157FAC: + pop {r0} + bx r0 + .align 2, 0 +_08157FB0: .4byte 0x0203A804 + thumb_func_end ContestAICmd_unk_61 + + thumb_func_start ContestAICmd_unk_62 +ContestAICmd_unk_62: @ 0x08157FB4 + push {lr} + bl ContestAICmd_unk_5E + ldr r0, _08157FE4 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _08157FEC + ldr r3, _08157FE8 + ldr r2, [r3] + ldrb r1, [r2] + ldrb r0, [r2, #1] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #2] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08157FF4 + .align 2, 0 +_08157FE4: .4byte 0x02039BD4 +_08157FE8: .4byte 0x0203A804 +_08157FEC: + ldr r1, _08157FF8 + ldr r0, [r1] + adds r0, #4 + str r0, [r1] +_08157FF4: + pop {r0} + bx r0 + .align 2, 0 +_08157FF8: .4byte 0x0203A804 + thumb_func_end ContestAICmd_unk_62 + + thumb_func_start ContestAICmd_unk_63 +ContestAICmd_unk_63: @ 0x08157FFC + push {r4, r5, lr} + ldr r5, _08158038 + ldr r0, [r5] + ldrb r0, [r0, #1] + bl sub_081563E8 + lsls r0, r0, #0x18 + ldr r3, [r5] + ldrb r2, [r3, #2] + ldr r1, _0815803C + ldr r4, [r1] + ldr r1, [r4] + lsrs r0, r0, #0x17 + lsls r2, r2, #3 + adds r0, r0, r2 + adds r1, #0x1c + adds r1, r1, r0 + ldrh r0, [r1] + ldr r2, [r4, #0xc] + ldr r1, _08158040 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r0, [r0] + strh r0, [r2, #0x18] + adds r3, #3 + str r3, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08158038: .4byte 0x0203A804 +_0815803C: .4byte 0x02039BD4 +_08158040: .4byte 0x08565FCC + thumb_func_end ContestAICmd_unk_63 + + thumb_func_start ContestAICmd_unk_64 +ContestAICmd_unk_64: @ 0x08158044 + push {lr} + bl ContestAICmd_unk_63 + ldr r0, _08158078 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _0815807C + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + bge _08158080 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08158084 + .align 2, 0 +_08158078: .4byte 0x02039BD4 +_0815807C: .4byte 0x0203A804 +_08158080: + adds r0, r2, #5 + str r0, [r3] +_08158084: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_unk_64 + + thumb_func_start ContestAICmd_unk_65 +ContestAICmd_unk_65: @ 0x08158088 + push {lr} + bl ContestAICmd_unk_63 + ldr r0, _081580BC + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _081580C0 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + ble _081580C4 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _081580C8 + .align 2, 0 +_081580BC: .4byte 0x02039BD4 +_081580C0: .4byte 0x0203A804 +_081580C4: + adds r0, r2, #5 + str r0, [r3] +_081580C8: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_unk_65 + + thumb_func_start ContestAICmd_unk_66 +ContestAICmd_unk_66: @ 0x081580CC + push {lr} + bl ContestAICmd_unk_63 + ldr r0, _08158100 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _08158104 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + bne _08158108 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _0815810C + .align 2, 0 +_08158100: .4byte 0x02039BD4 +_08158104: .4byte 0x0203A804 +_08158108: + adds r0, r2, #5 + str r0, [r3] +_0815810C: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_unk_66 + + thumb_func_start ContestAICmd_unk_67 +ContestAICmd_unk_67: @ 0x08158110 + push {lr} + bl ContestAICmd_unk_63 + ldr r0, _08158144 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _08158148 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + beq _0815814C + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08158150 + .align 2, 0 +_08158144: .4byte 0x02039BD4 +_08158148: .4byte 0x0203A804 +_0815814C: + adds r0, r2, #5 + str r0, [r3] +_08158150: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_unk_67 + + thumb_func_start ContestAICmd_unk_68 +ContestAICmd_unk_68: @ 0x08158154 + push {r4, r5, lr} + ldr r5, _08158188 + ldr r0, [r5] + ldrb r0, [r0, #1] + bl sub_081563E8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, [r5] + ldrb r2, [r3, #2] + ldr r1, _0815818C + ldr r4, [r1] + ldr r1, [r4] + lsls r2, r2, #2 + adds r0, r0, r2 + adds r1, #0x44 + adds r1, r1, r0 + ldr r2, [r4, #0xc] + movs r0, #0 + ldrsb r0, [r1, r0] + strh r0, [r2, #0x18] + adds r3, #3 + str r3, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08158188: .4byte 0x0203A804 +_0815818C: .4byte 0x02039BD4 + thumb_func_end ContestAICmd_unk_68 + + thumb_func_start ContestAICmd_unk_69 +ContestAICmd_unk_69: @ 0x08158190 + push {lr} + bl ContestAICmd_unk_68 + ldr r0, _081581C4 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _081581C8 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + bge _081581CC + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _081581D0 + .align 2, 0 +_081581C4: .4byte 0x02039BD4 +_081581C8: .4byte 0x0203A804 +_081581CC: + adds r0, r2, #5 + str r0, [r3] +_081581D0: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_unk_69 + + thumb_func_start ContestAICmd_unk_6A +ContestAICmd_unk_6A: @ 0x081581D4 + push {lr} + bl ContestAICmd_unk_68 + ldr r0, _08158208 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _0815820C + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + ble _08158210 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08158214 + .align 2, 0 +_08158208: .4byte 0x02039BD4 +_0815820C: .4byte 0x0203A804 +_08158210: + adds r0, r2, #5 + str r0, [r3] +_08158214: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_unk_6A + + thumb_func_start ContestAICmd_unk_6B +ContestAICmd_unk_6B: @ 0x08158218 + push {lr} + bl ContestAICmd_unk_68 + ldr r0, _0815824C + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _08158250 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + bne _08158254 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08158258 + .align 2, 0 +_0815824C: .4byte 0x02039BD4 +_08158250: .4byte 0x0203A804 +_08158254: + adds r0, r2, #5 + str r0, [r3] +_08158258: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_unk_6B + + thumb_func_start ContestAICmd_unk_6C +ContestAICmd_unk_6C: @ 0x0815825C + push {lr} + bl ContestAICmd_unk_68 + ldr r0, _08158290 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _08158294 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + beq _08158298 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _0815829C + .align 2, 0 +_08158290: .4byte 0x02039BD4 +_08158294: .4byte 0x0203A804 +_08158298: + adds r0, r2, #5 + str r0, [r3] +_0815829C: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_unk_6C + + thumb_func_start ContestAICmd_unk_6D +ContestAICmd_unk_6D: @ 0x081582A0 + push {r4, r5, lr} + ldr r5, _081582E4 + ldr r0, [r5] + ldrb r0, [r0, #1] + bl sub_081563E8 + lsls r0, r0, #0x18 + ldr r3, [r5] + ldrb r2, [r3, #2] + ldr r1, _081582E8 + ldr r4, [r1] + ldr r1, [r4] + lsrs r0, r0, #0x17 + lsls r2, r2, #3 + adds r0, r0, r2 + adds r1, #0x1c + adds r1, r1, r0 + ldrh r0, [r1] + ldr r4, [r4, #0xc] + ldr r2, _081582EC + ldr r1, _081582F0 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0] + strh r0, [r4, #0x18] + adds r3, #3 + str r3, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081582E4: .4byte 0x0203A804 +_081582E8: .4byte 0x02039BD4 +_081582EC: .4byte 0x08566AE4 +_081582F0: .4byte 0x08565FCC + thumb_func_end ContestAICmd_unk_6D + + thumb_func_start ContestAICmd_unk_6E +ContestAICmd_unk_6E: @ 0x081582F4 + push {lr} + bl ContestAICmd_unk_6D + ldr r0, _08158328 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _0815832C + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + bne _08158330 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08158334 + .align 2, 0 +_08158328: .4byte 0x02039BD4 +_0815832C: .4byte 0x0203A804 +_08158330: + adds r0, r2, #5 + str r0, [r3] +_08158334: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_unk_6E + + thumb_func_start ContestAICmd_unk_6F +ContestAICmd_unk_6F: @ 0x08158338 + push {lr} + bl ContestAICmd_unk_6D + ldr r0, _0815836C + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + ldr r3, _08158370 + ldr r2, [r3] + ldrb r1, [r2] + cmp r0, r1 + beq _08158374 + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08158378 + .align 2, 0 +_0815836C: .4byte 0x02039BD4 +_08158370: .4byte 0x0203A804 +_08158374: + adds r0, r2, #5 + str r0, [r3] +_08158378: + pop {r0} + bx r0 + thumb_func_end ContestAICmd_unk_6F + + thumb_func_start ContestAICmd_unk_70 +ContestAICmd_unk_70: @ 0x0815837C + push {r4, lr} + ldr r0, _081583A0 + ldr r0, [r0] + ldr r3, [r0, #0xc] + ldr r4, _081583A4 + ldr r2, [r4] + ldrb r0, [r2, #1] + lsls r0, r0, #1 + adds r1, r3, #0 + adds r1, #0x1a + adds r1, r1, r0 + ldrh r0, [r3, #0x18] + strh r0, [r1] + adds r2, #2 + str r2, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081583A0: .4byte 0x02039BD4 +_081583A4: .4byte 0x0203A804 + thumb_func_end ContestAICmd_unk_70 + + thumb_func_start ContestAICmd_unk_71 +ContestAICmd_unk_71: @ 0x081583A8 + push {r4, lr} + ldr r0, _081583D0 + ldr r0, [r0] + ldr r3, [r0, #0xc] + ldr r4, _081583D4 + ldr r2, [r4] + ldrb r0, [r2, #1] + lsls r0, r0, #1 + adds r3, #0x1a + adds r3, r3, r0 + ldrb r1, [r2, #2] + ldrb r0, [r2, #3] + lsls r0, r0, #8 + orrs r1, r0 + strh r1, [r3] + adds r2, #4 + str r2, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081583D0: .4byte 0x02039BD4 +_081583D4: .4byte 0x0203A804 + thumb_func_end ContestAICmd_unk_71 + + thumb_func_start ContestAICmd_unk_72 +ContestAICmd_unk_72: @ 0x081583D8 + push {r4, lr} + ldr r0, _08158408 + ldr r0, [r0] + ldr r2, [r0, #0xc] + ldr r4, _0815840C + ldr r3, [r4] + ldrb r0, [r3, #1] + lsls r0, r0, #1 + adds r2, #0x1a + adds r2, r2, r0 + movs r1, #2 + ldrsb r1, [r3, r1] + ldrb r0, [r3, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrh r0, [r2] + adds r1, r1, r0 + strh r1, [r2] + adds r3, #4 + str r3, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08158408: .4byte 0x02039BD4 +_0815840C: .4byte 0x0203A804 + thumb_func_end ContestAICmd_unk_72 + + thumb_func_start ContestAICmd_unk_74 +ContestAICmd_unk_74: @ 0x08158410 + push {r4, lr} + ldr r0, _0815843C + ldr r0, [r0] + ldr r2, [r0, #0xc] + ldr r4, _08158440 + ldr r3, [r4] + ldrb r1, [r3, #1] + lsls r1, r1, #1 + adds r2, #0x1a + adds r1, r2, r1 + ldrb r0, [r3, #2] + lsls r0, r0, #1 + adds r2, r2, r0 + ldrh r0, [r2] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + adds r3, #3 + str r3, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815843C: .4byte 0x02039BD4 +_08158440: .4byte 0x0203A804 + thumb_func_end ContestAICmd_unk_74 + + thumb_func_start ContestAICmd_unk_73 +ContestAICmd_unk_73: @ 0x08158444 + push {r4, lr} + ldr r0, _08158470 + ldr r0, [r0] + ldr r2, [r0, #0xc] + ldr r4, _08158474 + ldr r3, [r4] + ldrb r1, [r3, #1] + lsls r1, r1, #1 + adds r2, #0x1a + adds r1, r2, r1 + ldrb r0, [r3, #2] + lsls r0, r0, #1 + adds r2, r2, r0 + ldrh r0, [r2] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + adds r3, #3 + str r3, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08158470: .4byte 0x02039BD4 +_08158474: .4byte 0x0203A804 + thumb_func_end ContestAICmd_unk_73 + + thumb_func_start ContestAICmd_unk_75 +ContestAICmd_unk_75: @ 0x08158478 + push {r4, lr} + ldr r0, _081584B4 + ldr r0, [r0] + ldr r1, [r0, #0xc] + ldr r4, _081584B8 + ldr r3, [r4] + ldrb r0, [r3, #1] + lsls r0, r0, #1 + adds r1, #0x1a + adds r1, r1, r0 + movs r0, #0 + ldrsh r2, [r1, r0] + ldrb r1, [r3, #2] + ldrb r0, [r3, #3] + lsls r0, r0, #8 + orrs r1, r0 + cmp r2, r1 + bge _081584BC + ldrb r1, [r3, #4] + ldrb r0, [r3, #5] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r3, #6] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r3, #7] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _081584C2 + .align 2, 0 +_081584B4: .4byte 0x02039BD4 +_081584B8: .4byte 0x0203A804 +_081584BC: + adds r0, r3, #0 + adds r0, #8 + str r0, [r4] +_081584C2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end ContestAICmd_unk_75 + + thumb_func_start ContestAICmd_unk_76 +ContestAICmd_unk_76: @ 0x081584C8 + push {r4, lr} + ldr r0, _08158504 + ldr r0, [r0] + ldr r1, [r0, #0xc] + ldr r4, _08158508 + ldr r3, [r4] + ldrb r0, [r3, #1] + lsls r0, r0, #1 + adds r1, #0x1a + adds r1, r1, r0 + movs r0, #0 + ldrsh r2, [r1, r0] + ldrb r1, [r3, #2] + ldrb r0, [r3, #3] + lsls r0, r0, #8 + orrs r1, r0 + cmp r2, r1 + ble _0815850C + ldrb r1, [r3, #4] + ldrb r0, [r3, #5] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r3, #6] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r3, #7] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _08158512 + .align 2, 0 +_08158504: .4byte 0x02039BD4 +_08158508: .4byte 0x0203A804 +_0815850C: + adds r0, r3, #0 + adds r0, #8 + str r0, [r4] +_08158512: + pop {r4} + pop {r0} + bx r0 + thumb_func_end ContestAICmd_unk_76 + + thumb_func_start ContestAICmd_unk_77 +ContestAICmd_unk_77: @ 0x08158518 + push {r4, lr} + ldr r0, _08158554 + ldr r0, [r0] + ldr r1, [r0, #0xc] + ldr r4, _08158558 + ldr r3, [r4] + ldrb r0, [r3, #1] + lsls r0, r0, #1 + adds r1, #0x1a + adds r1, r1, r0 + movs r0, #0 + ldrsh r2, [r1, r0] + ldrb r1, [r3, #2] + ldrb r0, [r3, #3] + lsls r0, r0, #8 + orrs r1, r0 + cmp r2, r1 + bne _0815855C + ldrb r1, [r3, #4] + ldrb r0, [r3, #5] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r3, #6] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r3, #7] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _08158562 + .align 2, 0 +_08158554: .4byte 0x02039BD4 +_08158558: .4byte 0x0203A804 +_0815855C: + adds r0, r3, #0 + adds r0, #8 + str r0, [r4] +_08158562: + pop {r4} + pop {r0} + bx r0 + thumb_func_end ContestAICmd_unk_77 + + thumb_func_start ContestAICmd_unk_78 +ContestAICmd_unk_78: @ 0x08158568 + push {r4, lr} + ldr r0, _081585A4 + ldr r0, [r0] + ldr r1, [r0, #0xc] + ldr r4, _081585A8 + ldr r3, [r4] + ldrb r0, [r3, #1] + lsls r0, r0, #1 + adds r1, #0x1a + adds r1, r1, r0 + movs r0, #0 + ldrsh r2, [r1, r0] + ldrb r1, [r3, #2] + ldrb r0, [r3, #3] + lsls r0, r0, #8 + orrs r1, r0 + cmp r2, r1 + beq _081585AC + ldrb r1, [r3, #4] + ldrb r0, [r3, #5] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r3, #6] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r3, #7] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _081585B2 + .align 2, 0 +_081585A4: .4byte 0x02039BD4 +_081585A8: .4byte 0x0203A804 +_081585AC: + adds r0, r3, #0 + adds r0, #8 + str r0, [r4] +_081585B2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end ContestAICmd_unk_78 + + thumb_func_start ContestAICmd_unk_79 +ContestAICmd_unk_79: @ 0x081585B8 + push {r4, r5, lr} + ldr r0, _081585F8 + ldr r0, [r0] + ldr r2, [r0, #0xc] + ldr r4, _081585FC + ldr r3, [r4] + ldrb r1, [r3, #1] + lsls r1, r1, #1 + adds r2, #0x1a + adds r1, r2, r1 + ldrb r0, [r3, #2] + lsls r0, r0, #1 + adds r2, r2, r0 + movs r0, #0 + ldrsh r1, [r1, r0] + movs r5, #0 + ldrsh r0, [r2, r5] + cmp r1, r0 + bge _08158600 + ldrb r1, [r3, #3] + ldrb r0, [r3, #4] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r3, #5] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r3, #6] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _08158604 + .align 2, 0 +_081585F8: .4byte 0x02039BD4 +_081585FC: .4byte 0x0203A804 +_08158600: + adds r0, r3, #7 + str r0, [r4] +_08158604: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ContestAICmd_unk_79 + + thumb_func_start ContestAICmd_unk_7A +ContestAICmd_unk_7A: @ 0x0815860C + push {r4, r5, lr} + ldr r0, _0815864C + ldr r0, [r0] + ldr r2, [r0, #0xc] + ldr r4, _08158650 + ldr r3, [r4] + ldrb r1, [r3, #1] + lsls r1, r1, #1 + adds r2, #0x1a + adds r1, r2, r1 + ldrb r0, [r3, #2] + lsls r0, r0, #1 + adds r2, r2, r0 + movs r0, #0 + ldrsh r1, [r1, r0] + movs r5, #0 + ldrsh r0, [r2, r5] + cmp r1, r0 + ble _08158654 + ldrb r1, [r3, #3] + ldrb r0, [r3, #4] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r3, #5] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r3, #6] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _08158658 + .align 2, 0 +_0815864C: .4byte 0x02039BD4 +_08158650: .4byte 0x0203A804 +_08158654: + adds r0, r3, #7 + str r0, [r4] +_08158658: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ContestAICmd_unk_7A + + thumb_func_start ContestAICmd_unk_7B +ContestAICmd_unk_7B: @ 0x08158660 + push {r4, r5, lr} + ldr r0, _081586A0 + ldr r0, [r0] + ldr r2, [r0, #0xc] + ldr r4, _081586A4 + ldr r3, [r4] + ldrb r1, [r3, #1] + lsls r1, r1, #1 + adds r2, #0x1a + adds r1, r2, r1 + ldrb r0, [r3, #2] + lsls r0, r0, #1 + adds r2, r2, r0 + movs r0, #0 + ldrsh r1, [r1, r0] + movs r5, #0 + ldrsh r0, [r2, r5] + cmp r1, r0 + bne _081586A8 + ldrb r1, [r3, #3] + ldrb r0, [r3, #4] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r3, #5] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r3, #6] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _081586AC + .align 2, 0 +_081586A0: .4byte 0x02039BD4 +_081586A4: .4byte 0x0203A804 +_081586A8: + adds r0, r3, #7 + str r0, [r4] +_081586AC: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ContestAICmd_unk_7B + + thumb_func_start ContestAICmd_unk_7C +ContestAICmd_unk_7C: @ 0x081586B4 + push {r4, r5, lr} + ldr r0, _081586F4 + ldr r0, [r0] + ldr r2, [r0, #0xc] + ldr r4, _081586F8 + ldr r3, [r4] + ldrb r1, [r3, #1] + lsls r1, r1, #1 + adds r2, #0x1a + adds r1, r2, r1 + ldrb r0, [r3, #2] + lsls r0, r0, #1 + adds r2, r2, r0 + movs r0, #0 + ldrsh r1, [r1, r0] + movs r5, #0 + ldrsh r0, [r2, r5] + cmp r1, r0 + beq _081586FC + ldrb r1, [r3, #3] + ldrb r0, [r3, #4] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r3, #5] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r3, #6] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _08158700 + .align 2, 0 +_081586F4: .4byte 0x02039BD4 +_081586F8: .4byte 0x0203A804 +_081586FC: + adds r0, r3, #7 + str r0, [r4] +_08158700: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ContestAICmd_unk_7C + + thumb_func_start ContestAICmd_if_random +ContestAICmd_if_random: @ 0x08158708 + push {r4, r5, lr} + bl Random + movs r2, #0xff + ands r2, r0 + ldr r0, _08158744 + ldr r0, [r0] + ldr r1, [r0, #0xc] + ldr r4, _08158748 + ldr r3, [r4] + ldrb r0, [r3, #1] + lsls r0, r0, #1 + adds r1, #0x1a + adds r1, r1, r0 + movs r5, #0 + ldrsh r0, [r1, r5] + cmp r2, r0 + bge _0815874C + ldrb r1, [r3, #2] + ldrb r0, [r3, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r3, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r3, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _08158750 + .align 2, 0 +_08158744: .4byte 0x02039BD4 +_08158748: .4byte 0x0203A804 +_0815874C: + adds r0, r3, #6 + str r0, [r4] +_08158750: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ContestAICmd_if_random + + thumb_func_start ContestAICmd_unk_7E +ContestAICmd_unk_7E: @ 0x08158758 + push {r4, r5, lr} + bl Random + movs r2, #0xff + ands r2, r0 + ldr r0, _08158794 + ldr r0, [r0] + ldr r1, [r0, #0xc] + ldr r4, _08158798 + ldr r3, [r4] + ldrb r0, [r3, #1] + lsls r0, r0, #1 + adds r1, #0x1a + adds r1, r1, r0 + movs r5, #0 + ldrsh r0, [r1, r5] + cmp r2, r0 + ble _0815879C + ldrb r1, [r3, #2] + ldrb r0, [r3, #3] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r3, #4] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r3, #5] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + b _081587A0 + .align 2, 0 +_08158794: .4byte 0x02039BD4 +_08158798: .4byte 0x0203A804 +_0815879C: + adds r0, r3, #6 + str r0, [r4] +_081587A0: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ContestAICmd_unk_7E + + thumb_func_start ContestAICmd_jump +ContestAICmd_jump: @ 0x081587A8 + ldr r3, _081587C4 + ldr r2, [r3] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + bx lr + .align 2, 0 +_081587C4: .4byte 0x0203A804 + thumb_func_end ContestAICmd_jump + + thumb_func_start ContestAICmd_call +ContestAICmd_call: @ 0x081587C8 + push {r4, lr} + ldr r4, _081587F4 + ldr r0, [r4] + adds r0, #5 + bl AIStackPushVar + ldr r2, [r4] + ldrb r1, [r2, #1] + ldrb r0, [r2, #2] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081587F4: .4byte 0x0203A804 + thumb_func_end ContestAICmd_call + + thumb_func_start ContestAICmd_end +ContestAICmd_end: @ 0x081587F8 + push {lr} + bl AIStackPop + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08158812 + ldr r0, _08158818 + ldr r0, [r0] + ldr r2, [r0, #0xc] + ldrb r1, [r2, #9] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #9] +_08158812: + pop {r0} + bx r0 + .align 2, 0 +_08158818: .4byte 0x02039BD4 + thumb_func_end ContestAICmd_end + + thumb_func_start AIStackPushVar +AIStackPushVar: @ 0x0815881C + push {r4, lr} + ldr r1, _08158840 + ldr r1, [r1] + ldr r3, [r1, #0xc] + adds r4, r3, #0 + adds r4, #0x40 + ldrb r1, [r4] + adds r2, r1, #1 + strb r2, [r4] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x16 + adds r3, #0x20 + adds r3, r3, r1 + str r0, [r3] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08158840: .4byte 0x02039BD4 + thumb_func_end AIStackPushVar + + thumb_func_start AIStackPop +AIStackPop: @ 0x08158844 + push {lr} + ldr r3, _0815885C + ldr r0, [r3] + ldr r0, [r0, #0xc] + adds r1, r0, #0 + adds r1, #0x40 + ldrb r0, [r1] + cmp r0, #0 + bne _08158860 + movs r0, #0 + b _0815887C + .align 2, 0 +_0815885C: .4byte 0x02039BD4 +_08158860: + subs r0, #1 + strb r0, [r1] + ldr r2, _08158880 + ldr r0, [r3] + ldr r1, [r0, #0xc] + adds r0, r1, #0 + adds r0, #0x40 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r1, #0x20 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r2] + movs r0, #1 +_0815887C: + pop {r1} + bx r1 + .align 2, 0 +_08158880: .4byte 0x0203A804 + thumb_func_end AIStackPop + + thumb_func_start ContestAICmd_check_user_has_exciting_move +ContestAICmd_check_user_has_exciting_move: @ 0x08158884 + push {r4, r5, r6, lr} + movs r5, #0 + movs r4, #0 + ldr r6, _081588B4 +_0815888C: + lsls r1, r4, #1 + ldr r0, _081588B8 + ldr r0, [r0] + ldr r0, [r0, #0xc] + adds r0, #0x41 + ldrb r0, [r0] + lsls r0, r0, #6 + adds r1, r1, r0 + adds r1, r1, r6 + ldrh r0, [r1] + cmp r0, #0 + beq _081588BC + bl Contest_GetMoveExcitement + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + bne _081588BC + movs r5, #1 + b _081588C2 + .align 2, 0 +_081588B4: .4byte 0x02039ABE +_081588B8: .4byte 0x02039BD4 +_081588BC: + adds r4, #1 + cmp r4, #3 + ble _0815888C +_081588C2: + ldr r0, _081588D8 + ldr r0, [r0] + ldr r0, [r0, #0xc] + strh r5, [r0, #0x18] + ldr r1, _081588DC + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081588D8: .4byte 0x02039BD4 +_081588DC: .4byte 0x0203A804 + thumb_func_end ContestAICmd_check_user_has_exciting_move + + thumb_func_start ContestAICmd_if_user_has_exciting_move +ContestAICmd_if_user_has_exciting_move: @ 0x081588E0 + push {lr} + bl ContestAICmd_check_user_has_exciting_move + ldr r0, _08158910 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _08158918 + ldr r3, _08158914 + ldr r2, [r3] + ldrb r1, [r2] + ldrb r0, [r2, #1] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #2] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08158920 + .align 2, 0 +_08158910: .4byte 0x02039BD4 +_08158914: .4byte 0x0203A804 +_08158918: + ldr r1, _08158924 + ldr r0, [r1] + adds r0, #4 + str r0, [r1] +_08158920: + pop {r0} + bx r0 + .align 2, 0 +_08158924: .4byte 0x0203A804 + thumb_func_end ContestAICmd_if_user_has_exciting_move + + thumb_func_start ContestAICmd_if_user_doesnt_have_exciting_move +ContestAICmd_if_user_doesnt_have_exciting_move: @ 0x08158928 + push {lr} + bl ContestAICmd_check_user_has_exciting_move + ldr r0, _08158958 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08158960 + ldr r3, _0815895C + ldr r2, [r3] + ldrb r1, [r2] + ldrb r0, [r2, #1] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #2] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08158968 + .align 2, 0 +_08158958: .4byte 0x02039BD4 +_0815895C: .4byte 0x0203A804 +_08158960: + ldr r1, _0815896C + ldr r0, [r1] + adds r0, #4 + str r0, [r1] +_08158968: + pop {r0} + bx r0 + .align 2, 0 +_0815896C: .4byte 0x0203A804 + thumb_func_end ContestAICmd_if_user_doesnt_have_exciting_move + + thumb_func_start ContestAICmd_unk_85 +ContestAICmd_unk_85: @ 0x08158970 + push {r4, r5, r6, lr} + movs r6, #0 + ldr r3, _0815899C + ldr r0, [r3] + ldrb r5, [r0, #1] + ldrb r0, [r0, #2] + lsls r0, r0, #8 + orrs r5, r0 + movs r4, #0 + ldr r0, _081589A0 + mov ip, r0 + ldr r2, _081589A4 + ldr r0, [r2] + ldr r0, [r0, #0xc] + adds r0, #0x41 + ldrb r0, [r0] + lsls r0, r0, #6 + mov r1, ip + adds r1, #0x1e + adds r0, r0, r1 + ldrh r0, [r0] + b _081589C4 + .align 2, 0 +_0815899C: .4byte 0x0203A804 +_081589A0: .4byte 0x02039AA0 +_081589A4: .4byte 0x02039BD4 +_081589A8: + adds r4, #1 + cmp r4, #3 + bgt _081589CA + lsls r1, r4, #1 + ldr r0, [r2] + ldr r0, [r0, #0xc] + adds r0, #0x41 + ldrb r0, [r0] + lsls r0, r0, #6 + adds r1, r1, r0 + mov r0, ip + adds r0, #0x1e + adds r1, r1, r0 + ldrh r0, [r1] +_081589C4: + cmp r0, r5 + bne _081589A8 + movs r6, #1 +_081589CA: + ldr r0, [r2] + ldr r0, [r0, #0xc] + strh r6, [r0, #0x18] + ldr r0, [r3] + adds r0, #3 + str r0, [r3] + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end ContestAICmd_unk_85 + + thumb_func_start ContestAICmd_unk_86 +ContestAICmd_unk_86: @ 0x081589DC + push {lr} + bl ContestAICmd_unk_85 + ldr r0, _08158A0C + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _08158A14 + ldr r3, _08158A10 + ldr r2, [r3] + ldrb r1, [r2] + ldrb r0, [r2, #1] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #2] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08158A1C + .align 2, 0 +_08158A0C: .4byte 0x02039BD4 +_08158A10: .4byte 0x0203A804 +_08158A14: + ldr r1, _08158A20 + ldr r0, [r1] + adds r0, #4 + str r0, [r1] +_08158A1C: + pop {r0} + bx r0 + .align 2, 0 +_08158A20: .4byte 0x0203A804 + thumb_func_end ContestAICmd_unk_86 + + thumb_func_start ContestAICmd_if_effect_in_user_moveset +ContestAICmd_if_effect_in_user_moveset: @ 0x08158A24 + push {lr} + bl ContestAICmd_unk_85 + ldr r0, _08158A54 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x18 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08158A5C + ldr r3, _08158A58 + ldr r2, [r3] + ldrb r1, [r2] + ldrb r0, [r2, #1] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #2] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _08158A64 + .align 2, 0 +_08158A54: .4byte 0x02039BD4 +_08158A58: .4byte 0x0203A804 +_08158A5C: + ldr r1, _08158A68 + ldr r0, [r1] + adds r0, #4 + str r0, [r1] +_08158A64: + pop {r0} + bx r0 + .align 2, 0 +_08158A68: .4byte 0x0203A804 + thumb_func_end ContestAICmd_if_effect_in_user_moveset + diff --git a/asm/contest_effect.s b/asm/contest_effect.s new file mode 100644 index 0000000..ff5912f --- /dev/null +++ b/asm/contest_effect.s @@ -0,0 +1,3258 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start AreMovesContestCombo +AreMovesContestCombo: @ 0x080E4BF0 + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x10 + lsls r1, r1, #0x10 + ldr r2, _080E4C44 + lsrs r0, r0, #0xd + adds r0, r0, r2 + ldrb r4, [r0, #2] + mov r3, sp + lsrs r1, r1, #0xd + adds r1, r1, r2 + ldrb r0, [r1, #3] + strb r0, [r3] + mov r2, sp + ldrb r0, [r1, #4] + strb r0, [r2, #1] + ldrb r0, [r1, #5] + strb r0, [r2, #2] + mov r0, sp + ldrb r1, [r1, #6] + strb r1, [r0, #3] + cmp r4, #0 + beq _080E4C4C + mov r0, sp + ldrb r0, [r0] + cmp r4, r0 + beq _080E4C3A + mov r0, sp + ldrb r0, [r0, #1] + cmp r4, r0 + beq _080E4C3A + mov r0, sp + ldrb r0, [r0, #2] + cmp r4, r0 + beq _080E4C3A + cmp r4, r1 + bne _080E4C4C +_080E4C3A: + ldr r0, _080E4C48 + adds r0, r4, r0 + ldrb r0, [r0] + b _080E4C4E + .align 2, 0 +_080E4C44: .4byte 0x08565FCC +_080E4C48: .4byte 0x08566BA4 +_080E4C4C: + movs r0, #0 +_080E4C4E: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end AreMovesContestCombo + + thumb_func_start ContestEffect_MakeScramblingTurnOrderEasier +ContestEffect_MakeScramblingTurnOrderEasier: @ 0x080E4C58 + bx lr + .align 2, 0 + thumb_func_end ContestEffect_MakeScramblingTurnOrderEasier + + thumb_func_start ContestEffect_UserMoreEasilyStartled +ContestEffect_UserMoreEasilyStartled: @ 0x080E4C5C + push {lr} + ldr r3, _080E4C88 + ldr r1, [r3] + ldr r0, [r1, #8] + ldrb r2, [r0, #0x11] + ldr r1, [r1, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #0x10] + movs r2, #4 + orrs r1, r2 + strb r1, [r0, #0x10] + ldr r0, [r3] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0 + bl SetContestantEffectStringID + pop {r0} + bx r0 + .align 2, 0 +_080E4C88: .4byte 0x02039BD4 + thumb_func_end ContestEffect_UserMoreEasilyStartled + + thumb_func_start ContestEffect_GreatAppealButNoMoreMoves +ContestEffect_GreatAppealButNoMoreMoves: @ 0x080E4C8C + push {lr} + ldr r3, _080E4CB8 + ldr r1, [r3] + ldr r0, [r1, #8] + ldrb r2, [r0, #0x11] + ldr r1, [r1, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #0x11] + movs r2, #8 + orrs r1, r2 + strb r1, [r0, #0x11] + ldr r0, [r3] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #1 + bl SetContestantEffectStringID + pop {r0} + bx r0 + .align 2, 0 +_080E4CB8: .4byte 0x02039BD4 + thumb_func_end ContestEffect_GreatAppealButNoMoreMoves + + thumb_func_start ContestEffect_RepetitionNotBoring +ContestEffect_RepetitionNotBoring: @ 0x080E4CBC + ldr r3, _080E4D0C + ldr r1, [r3] + ldr r0, [r1, #8] + ldrb r2, [r0, #0x11] + ldr r1, [r1, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #0x10] + movs r2, #8 + orrs r1, r2 + strb r1, [r0, #0x10] + ldr r1, [r3] + ldr r0, [r1, #8] + ldrb r0, [r0, #0x11] + ldr r2, [r1, #4] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r2, [r1, #0x15] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #0x15] + ldr r1, [r3] + ldr r0, [r1, #8] + ldrb r0, [r0, #0x11] + ldr r2, [r1, #4] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r2, [r1, #0xb] + movs r0, #0x71 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #0xb] + bx lr + .align 2, 0 +_080E4D0C: .4byte 0x02039BD4 + thumb_func_end ContestEffect_RepetitionNotBoring + + thumb_func_start ContestEffect_AvoidStartleOnce +ContestEffect_AvoidStartleOnce: @ 0x080E4D10 + push {lr} + ldr r3, _080E4D38 + ldr r1, [r3] + ldr r0, [r1, #8] + ldrb r2, [r0, #0x11] + ldr r1, [r1, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + movs r1, #1 + strb r1, [r0, #0x12] + ldr r0, [r3] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #2 + bl SetContestantEffectStringID + pop {r0} + bx r0 + .align 2, 0 +_080E4D38: .4byte 0x02039BD4 + thumb_func_end ContestEffect_AvoidStartleOnce + + thumb_func_start ContestEffect_AvoidStartle +ContestEffect_AvoidStartle: @ 0x080E4D3C + push {lr} + ldr r3, _080E4D68 + ldr r1, [r3] + ldr r0, [r1, #8] + ldrb r2, [r0, #0x11] + ldr r1, [r1, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #0x10] + movs r2, #2 + orrs r1, r2 + strb r1, [r0, #0x10] + ldr r0, [r3] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #3 + bl SetContestantEffectStringID + pop {r0} + bx r0 + .align 2, 0 +_080E4D68: .4byte 0x02039BD4 + thumb_func_end ContestEffect_AvoidStartle + + thumb_func_start ContestEffect_AvoidStartleSlightly +ContestEffect_AvoidStartleSlightly: @ 0x080E4D6C + push {lr} + ldr r3, _080E4D94 + ldr r1, [r3] + ldr r0, [r1, #8] + ldrb r2, [r0, #0x11] + ldr r1, [r1, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + movs r1, #0x14 + strb r1, [r0, #0xf] + ldr r0, [r3] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #4 + bl SetContestantEffectStringID + pop {r0} + bx r0 + .align 2, 0 +_080E4D94: .4byte 0x02039BD4 + thumb_func_end ContestEffect_AvoidStartleSlightly + + thumb_func_start ContestEffect_UserLessEasilyStartled +ContestEffect_UserLessEasilyStartled: @ 0x080E4D98 + push {lr} + ldr r3, _080E4DC4 + ldr r1, [r3] + ldr r0, [r1, #8] + ldrb r2, [r0, #0x11] + ldr r1, [r1, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #0x10] + movs r2, #1 + orrs r1, r2 + strb r1, [r0, #0x10] + ldr r0, [r3] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #5 + bl SetContestantEffectStringID + pop {r0} + bx r0 + .align 2, 0 +_080E4DC4: .4byte 0x02039BD4 + thumb_func_end ContestEffect_UserLessEasilyStartled + + thumb_func_start ContestEffect_StartleFrontMon +ContestEffect_StartleFrontMon: @ 0x080E4DC8 + push {r4, r5, lr} + movs r2, #0 + ldr r5, _080E4E3C + ldr r0, [r5] + ldr r1, [r0, #8] + ldrb r4, [r1, #0x11] + adds r3, r1, r4 + ldrb r0, [r3] + cmp r0, #0 + beq _080E4E16 + subs r0, #1 + ldrb r1, [r1] + cmp r0, r1 + beq _080E4DFE + adds r3, r5, #0 +_080E4DE6: + adds r2, #1 + cmp r2, #3 + bgt _080E4DFE + ldr r0, [r3] + ldr r1, [r0, #8] + adds r0, r1, r4 + ldrb r0, [r0] + subs r0, #1 + adds r1, r1, r2 + ldrb r1, [r1] + cmp r0, r1 + bne _080E4DE6 +_080E4DFE: + ldr r1, _080E4E3C + ldr r0, [r1] + ldr r0, [r0, #8] + strb r2, [r0, #8] + ldr r0, [r1] + ldr r1, [r0, #8] + movs r0, #0xff + strb r0, [r1, #9] + bl WasAtLeastOneOpponentJammed + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 +_080E4E16: + cmp r2, #0 + bne _080E4E28 + ldr r0, _080E4E3C + ldr r0, [r0] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x36 + bl SetContestantEffectStringID2 +_080E4E28: + ldr r0, _080E4E3C + ldr r0, [r0] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x30 + bl SetContestantEffectStringID + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080E4E3C: .4byte 0x02039BD4 + thumb_func_end ContestEffect_StartleFrontMon + + thumb_func_start ContestEffect_StartlePrevMons +ContestEffect_StartlePrevMons: @ 0x080E4E40 + push {r4, r5, r6, lr} + movs r1, #0 + ldr r2, _080E4EB8 + ldr r0, [r2] + ldr r0, [r0, #8] + ldrb r5, [r0, #0x11] + adds r0, r0, r5 + ldrb r0, [r0] + cmp r0, #0 + beq _080E4E90 + movs r3, #0 + movs r4, #0 + adds r6, r2, #0 +_080E4E5A: + ldr r0, [r6] + ldr r2, [r0, #8] + adds r0, r2, r5 + adds r1, r2, r3 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _080E4E74 + adds r0, r2, #0 + adds r0, #8 + adds r0, r0, r4 + strb r3, [r0] + adds r4, #1 +_080E4E74: + adds r3, #1 + cmp r3, #3 + ble _080E4E5A + ldr r0, _080E4EB8 + ldr r0, [r0] + ldr r0, [r0, #8] + adds r0, #8 + adds r0, r0, r4 + movs r1, #0xff + strb r1, [r0] + bl WasAtLeastOneOpponentJammed + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 +_080E4E90: + cmp r1, #0 + bne _080E4EA2 + ldr r0, _080E4EB8 + ldr r0, [r0] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x36 + bl SetContestantEffectStringID2 +_080E4EA2: + ldr r0, _080E4EB8 + ldr r0, [r0] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x30 + bl SetContestantEffectStringID + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080E4EB8: .4byte 0x02039BD4 + thumb_func_end ContestEffect_StartlePrevMons + + thumb_func_start ContestEffect_StartlePrevMon2 +ContestEffect_StartlePrevMon2: @ 0x080E4EBC + push {lr} + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x14 + cmp r0, #1 + bls _080E4EDE + movs r1, #0x3c + cmp r0, #7 + bhi _080E4EDE + movs r1, #0x28 +_080E4EDE: + ldr r0, _080E4EF0 + ldr r0, [r0] + ldr r0, [r0, #8] + strh r1, [r0, #4] + bl ContestEffect_StartleFrontMon + pop {r0} + bx r0 + .align 2, 0 +_080E4EF0: .4byte 0x02039BD4 + thumb_func_end ContestEffect_StartlePrevMon2 + + thumb_func_start ContestEffect_StartlePrevMons2 +ContestEffect_StartlePrevMons2: @ 0x080E4EF4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r7, #0 + ldr r1, _080E4FA4 + ldr r0, [r1] + ldr r0, [r0, #8] + ldrb r5, [r0, #0x11] + adds r0, r0, r5 + ldrb r0, [r0] + mov r8, r1 + cmp r0, #0 + beq _080E4F7A + movs r4, #0 + mov r6, r8 +_080E4F12: + ldr r0, [r6] + ldr r2, [r0, #8] + adds r0, r2, r5 + adds r1, r2, r4 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _080E4F74 + strb r4, [r2, #8] + ldr r0, [r6] + ldr r1, [r0, #8] + movs r0, #0xff + strb r0, [r1, #9] + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + cmp r0, #0 + beq _080E4F5E + movs r1, #0xa + cmp r0, #2 + bls _080E4F5E + movs r1, #0x14 + cmp r0, #4 + bls _080E4F5E + movs r1, #0x1e + cmp r0, #6 + bls _080E4F5E + movs r1, #0x3c + cmp r0, #8 + bhi _080E4F5E + movs r1, #0x28 +_080E4F5E: + ldr r0, [r6] + ldr r0, [r0, #8] + strh r1, [r0, #4] + bl WasAtLeastOneOpponentJammed + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080E4F74 + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 +_080E4F74: + adds r4, #1 + cmp r4, #3 + ble _080E4F12 +_080E4F7A: + mov r1, r8 + ldr r0, [r1] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x30 + bl SetContestantEffectStringID + cmp r7, #0 + bne _080E4F9A + mov r1, r8 + ldr r0, [r1] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x36 + bl SetContestantEffectStringID2 +_080E4F9A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E4FA4: .4byte 0x02039BD4 + thumb_func_end ContestEffect_StartlePrevMons2 + + thumb_func_start ContestEffect_ShiftJudgeAttention +ContestEffect_ShiftJudgeAttention: @ 0x080E4FA8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + movs r0, #0 + mov sb, r0 + ldr r1, _080E5064 + ldr r0, [r1] + ldr r0, [r0, #8] + ldrb r2, [r0, #0x11] + mov r8, r2 + add r0, r8 + ldrb r0, [r0] + mov sl, r1 + cmp r0, #0 + beq _080E5034 + movs r6, #0 + mov r7, sl + movs r5, #0 +_080E4FD0: + ldr r2, [r7] + ldr r0, [r2, #8] + mov r3, r8 + adds r1, r0, r3 + adds r0, r0, r6 + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bls _080E502C + ldr r0, [r2, #4] + adds r0, r5, r0 + ldrb r1, [r0, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080E502C + lsls r0, r6, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl CanUnnerveContestant + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080E502C + ldr r0, [r7] + ldr r2, [r0, #4] + adds r2, r5, r2 + ldrb r0, [r2, #0x15] + movs r3, #0x11 + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r0, r1 + strb r0, [r2, #0x15] + ldr r0, [r7] + ldr r2, [r0, #4] + adds r2, r5, r2 + ldrb r0, [r2, #0x15] + movs r1, #0x20 + orrs r0, r1 + strb r0, [r2, #0x15] + adds r0, r4, #0 + movs r1, #8 + bl SetContestantEffectStringID + movs r0, #1 + mov sb, r0 +_080E502C: + adds r5, #0x1c + adds r6, #1 + cmp r6, #3 + ble _080E4FD0 +_080E5034: + mov r1, sl + ldr r0, [r1] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #7 + bl SetContestantEffectStringID + mov r2, sb + cmp r2, #0 + bne _080E5056 + mov r3, sl + ldr r0, [r3] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x36 + bl SetContestantEffectStringID2 +_080E5056: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E5064: .4byte 0x02039BD4 + thumb_func_end ContestEffect_ShiftJudgeAttention + + thumb_func_start ContestEffect_StartleMonWithJudgesAttention +ContestEffect_StartleMonWithJudgesAttention: @ 0x080E5068 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + movs r0, #0 + mov sb, r0 + ldr r1, _080E50B0 + ldr r0, [r1] + ldr r0, [r0, #8] + ldrb r7, [r0, #0x11] + adds r0, r0, r7 + ldrb r0, [r0] + adds r4, r1, #0 + cmp r0, #0 + beq _080E50E6 + movs r5, #0 + movs r6, #0 + mov r8, r4 +_080E508C: + ldr r3, [r4] + ldr r2, [r3, #8] + adds r0, r2, r7 + adds r1, r2, r5 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _080E50DC + ldr r0, [r3, #4] + adds r0, r6, r0 + ldrb r1, [r0, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080E50B4 + movs r0, #0x32 + b _080E50B6 + .align 2, 0 +_080E50B0: .4byte 0x02039BD4 +_080E50B4: + movs r0, #0xa +_080E50B6: + strh r0, [r2, #4] + mov r1, r8 + ldr r0, [r1] + ldr r0, [r0, #8] + strb r5, [r0, #8] + ldr r0, [r1] + ldr r1, [r0, #8] + movs r0, #0xff + strb r0, [r1, #9] + bl WasAtLeastOneOpponentJammed + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080E50DC + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 +_080E50DC: + adds r6, #0x1c + adds r5, #1 + ldr r4, _080E5110 + cmp r5, #3 + ble _080E508C +_080E50E6: + ldr r0, [r4] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x30 + bl SetContestantEffectStringID + mov r0, sb + cmp r0, #0 + bne _080E5104 + ldr r0, [r4] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x36 + bl SetContestantEffectStringID2 +_080E5104: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E5110: .4byte 0x02039BD4 + thumb_func_end ContestEffect_StartleMonWithJudgesAttention + + thumb_func_start ContestEffect_JamsOthersButMissOneTurn +ContestEffect_JamsOthersButMissOneTurn: @ 0x080E5114 + push {r4, lr} + ldr r4, _080E5148 + ldr r1, [r4] + ldr r0, [r1, #8] + ldrb r2, [r0, #0x11] + ldr r1, [r1, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #0x11] + movs r2, #4 + orrs r1, r2 + strb r1, [r0, #0x11] + bl ContestEffect_StartlePrevMons + ldr r0, [r4] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x30 + bl SetContestantEffectStringID + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E5148: .4byte 0x02039BD4 + thumb_func_end ContestEffect_JamsOthersButMissOneTurn + + thumb_func_start ContestEffect_StartleMonsSameTypeAppeal +ContestEffect_StartleMonsSameTypeAppeal: @ 0x080E514C + push {r4, lr} + ldr r4, _080E5184 + ldr r1, [r4] + ldr r0, [r1, #8] + ldrb r2, [r0, #0x11] + ldr r1, [r1, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0, #6] + ldr r1, _080E5188 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r0, [r0, #1] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1d + bl JamByMoveCategory + ldr r0, [r4] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x30 + bl SetContestantEffectStringID + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E5184: .4byte 0x02039BD4 +_080E5188: .4byte 0x08565FCC + thumb_func_end ContestEffect_StartleMonsSameTypeAppeal + + thumb_func_start ContestEffect_StartleMonsCoolAppeal +ContestEffect_StartleMonsCoolAppeal: @ 0x080E518C + push {lr} + movs r0, #0 + bl JamByMoveCategory + ldr r0, _080E51A8 + ldr r0, [r0] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x30 + bl SetContestantEffectStringID + pop {r0} + bx r0 + .align 2, 0 +_080E51A8: .4byte 0x02039BD4 + thumb_func_end ContestEffect_StartleMonsCoolAppeal + + thumb_func_start ContestEffect_StartleMonsBeautyAppeal +ContestEffect_StartleMonsBeautyAppeal: @ 0x080E51AC + push {lr} + movs r0, #1 + bl JamByMoveCategory + ldr r0, _080E51C8 + ldr r0, [r0] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x30 + bl SetContestantEffectStringID + pop {r0} + bx r0 + .align 2, 0 +_080E51C8: .4byte 0x02039BD4 + thumb_func_end ContestEffect_StartleMonsBeautyAppeal + + thumb_func_start ContestEffect_StartleMonsCuteAppeal +ContestEffect_StartleMonsCuteAppeal: @ 0x080E51CC + push {lr} + movs r0, #2 + bl JamByMoveCategory + ldr r0, _080E51E8 + ldr r0, [r0] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x30 + bl SetContestantEffectStringID + pop {r0} + bx r0 + .align 2, 0 +_080E51E8: .4byte 0x02039BD4 + thumb_func_end ContestEffect_StartleMonsCuteAppeal + + thumb_func_start ContestEffect_StartleMonsSmartAppeal +ContestEffect_StartleMonsSmartAppeal: @ 0x080E51EC + push {lr} + movs r0, #3 + bl JamByMoveCategory + ldr r0, _080E5208 + ldr r0, [r0] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x30 + bl SetContestantEffectStringID + pop {r0} + bx r0 + .align 2, 0 +_080E5208: .4byte 0x02039BD4 + thumb_func_end ContestEffect_StartleMonsSmartAppeal + + thumb_func_start ContestEffect_StartleMonsToughAppeal +ContestEffect_StartleMonsToughAppeal: @ 0x080E520C + push {lr} + movs r0, #4 + bl JamByMoveCategory + ldr r0, _080E5228 + ldr r0, [r0] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x30 + bl SetContestantEffectStringID + pop {r0} + bx r0 + .align 2, 0 +_080E5228: .4byte 0x02039BD4 + thumb_func_end ContestEffect_StartleMonsToughAppeal + + thumb_func_start ContestEffect_MakeFollowingMonNervous +ContestEffect_MakeFollowingMonNervous: @ 0x080E522C + push {r4, r5, r6, lr} + movs r4, #0 + ldr r2, _080E5278 + ldr r0, [r2] + ldr r0, [r0, #8] + ldrb r1, [r0, #0x11] + adds r0, r0, r1 + ldrb r0, [r0] + adds r6, r2, #0 + cmp r0, #3 + beq _080E528C + movs r5, #0 +_080E5244: + ldr r0, _080E5278 + ldr r0, [r0] + ldr r1, [r0, #8] + ldrb r0, [r1, #0x11] + adds r0, r1, r0 + ldrb r0, [r0] + adds r0, #1 + adds r1, r1, r5 + ldrb r1, [r1] + cmp r0, r1 + bne _080E5286 + lsls r0, r5, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl CanUnnerveContestant + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080E527C + adds r0, r4, #0 + bl MakeContestantNervous + adds r0, r4, #0 + movs r1, #0xa + b _080E5280 + .align 2, 0 +_080E5278: .4byte 0x02039BD4 +_080E527C: + adds r0, r4, #0 + movs r1, #0x3c +_080E5280: + bl SetContestantEffectStringID + movs r4, #1 +_080E5286: + adds r5, #1 + cmp r5, #3 + ble _080E5244 +_080E528C: + ldr r0, [r6] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #9 + bl SetContestantEffectStringID + cmp r4, #0 + bne _080E52A8 + ldr r0, [r6] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x36 + bl SetContestantEffectStringID2 +_080E52A8: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ContestEffect_MakeFollowingMonNervous + + thumb_func_start ContestEffect_MakeFollowingMonsNervous +ContestEffect_MakeFollowingMonsNervous: @ 0x080E52B0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + movs r0, #0 + mov sb, r0 + movs r1, #0 + str r1, [sp, #0x18] + mov r0, sp + movs r1, #0xff + movs r2, #5 + bl memset + movs r5, #0 + movs r4, #0 + add r2, sp, #0x10 + mov r8, r2 + add r3, sp, #8 + mov sl, r3 + movs r6, #0 +_080E52DC: + ldr r0, _080E5328 + ldr r2, [r0] + ldr r1, [r2, #8] + ldrb r0, [r1, #0x11] + adds r0, r1, r0 + adds r1, r1, r5 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bhs _080E5314 + ldr r0, [r2, #4] + adds r0, r6, r0 + ldrb r1, [r0, #0xc] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080E5314 + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + bl Contest_IsMonsTurnDisabled + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080E5314 + mov r1, sp + adds r0, r1, r4 + strb r5, [r0] + adds r4, #1 +_080E5314: + adds r6, #0x1c + adds r5, #1 + cmp r5, #3 + ble _080E52DC + cmp r4, #1 + bne _080E532C + movs r0, #0x3c + mov r2, r8 + strh r0, [r2] + b _080E535A + .align 2, 0 +_080E5328: .4byte 0x02039BD4 +_080E532C: + cmp r4, #2 + bne _080E533A + movs r0, #0x1e + mov r3, r8 + strh r0, [r3] + strh r0, [r3, #2] + b _080E535A +_080E533A: + cmp r4, #3 + bne _080E534A + movs r0, #0x14 + mov r6, r8 + strh r0, [r6] + strh r0, [r6, #2] + strh r0, [r6, #4] + b _080E535A +_080E534A: + mov r1, r8 + movs r2, #0 + mov r0, r8 + adds r0, #6 +_080E5352: + strh r2, [r0] + subs r0, #2 + cmp r0, r1 + bge _080E5352 +_080E535A: + movs r5, #0 + ldr r7, _080E53A0 + movs r6, #0 + mov r4, sl +_080E5362: + ldr r0, [r7] + ldr r0, [r0, #4] + adds r0, r6, r0 + ldrb r1, [r0, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080E53AC + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + bl sub_080DD94C + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080E53AC + ldr r0, [r7] + ldr r0, [r0, #4] + adds r0, r6, r0 + ldrh r0, [r0, #8] + lsls r0, r0, #3 + ldr r1, _080E53A4 + adds r0, r0, r1 + ldrb r0, [r0, #2] + ldr r2, _080E53A8 + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + b _080E53AE + .align 2, 0 +_080E53A0: .4byte 0x02039BD4 +_080E53A4: .4byte 0x08565FCC +_080E53A8: .4byte 0x08566BA4 +_080E53AC: + movs r0, #0 +_080E53AE: + strh r0, [r4] + ldr r0, [r7] + ldr r0, [r0, #4] + adds r0, r6, r0 + ldrb r0, [r0, #0xd] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #0xa + bl __divsi3 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #1 + ldrh r0, [r4] + subs r0, r0, r1 + strh r0, [r4] + adds r6, #0x1c + adds r4, #2 + adds r5, #1 + cmp r5, #3 + ble _080E5362 + mov r3, r8 + movs r6, #0 + ldrsh r0, [r3, r6] + cmp r0, #0 + beq _080E547C + movs r5, #0 + mov r0, sp + ldrb r0, [r0] + cmp r0, #0xff + beq _080E547C + mov r4, sp +_080E53F2: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r5, #1 + add r1, r8 + movs r3, #0 + ldrsh r2, [r1, r3] + ldrb r3, [r4] + lsls r1, r3, #1 + add r1, sl + movs r6, #0 + ldrsh r1, [r1, r6] + adds r2, r2, r1 + cmp r0, r2 + bge _080E5442 + adds r0, r3, #0 + bl CanUnnerveContestant + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080E544C + ldrb r0, [r4] + bl MakeContestantNervous + ldrb r0, [r4] + movs r1, #0xa + bl SetContestantEffectStringID + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + b _080E5446 +_080E5442: + movs r0, #1 + str r0, [sp, #0x18] +_080E5446: + ldr r1, [sp, #0x18] + cmp r1, #0 + beq _080E5462 +_080E544C: + movs r2, #0 + str r2, [sp, #0x18] + ldrb r0, [r4] + movs r1, #0x3c + bl SetContestantEffectStringID + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 +_080E5462: + ldr r0, _080E54AC + ldr r0, [r0] + ldr r0, [r0, #8] + adds r0, #0xd + ldrb r3, [r4] + adds r0, r0, r3 + movs r1, #1 + strb r1, [r0] + adds r4, #1 + adds r5, #1 + ldrb r0, [r4] + cmp r0, #0xff + bne _080E53F2 +_080E547C: + ldr r6, _080E54AC + ldr r0, [r6] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0xb + bl SetContestantEffectStringID + mov r0, sb + cmp r0, #0 + bne _080E549C + ldr r0, [r6] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x36 + bl SetContestantEffectStringID2 +_080E549C: + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E54AC: .4byte 0x02039BD4 + thumb_func_end ContestEffect_MakeFollowingMonsNervous + + thumb_func_start ContestEffect_WorsenConditionOfPrevMons +ContestEffect_WorsenConditionOfPrevMons: @ 0x080E54B0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r0, #0 + mov r8, r0 + movs r6, #0 + ldr r7, _080E5554 + movs r5, #0 +_080E54C0: + ldr r2, [r7] + ldr r0, [r2, #8] + ldrb r1, [r0, #0x11] + adds r1, r0, r1 + adds r0, r0, r6 + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bls _080E5522 + ldr r0, [r2, #4] + adds r0, r5, r0 + ldrb r0, [r0, #0xd] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _080E5522 + lsls r0, r6, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl CanUnnerveContestant + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080E5522 + ldr r0, [r7] + ldr r0, [r0, #4] + adds r0, r5, r0 + movs r1, #0 + strb r1, [r0, #0xd] + ldr r0, [r7] + ldr r2, [r0, #4] + adds r2, r5, r2 + ldrb r1, [r2, #0x10] + movs r3, #0x31 + rsbs r3, r3, #0 + adds r0, r3, #0 + ands r1, r0 + movs r0, #0x20 + orrs r1, r0 + strb r1, [r2, #0x10] + adds r0, r4, #0 + movs r1, #0xd + bl SetContestantEffectStringID + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 +_080E5522: + adds r5, #0x1c + adds r6, #1 + cmp r6, #3 + ble _080E54C0 + ldr r4, _080E5554 + ldr r0, [r4] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0xc + bl SetContestantEffectStringID + mov r0, r8 + cmp r0, #0 + bne _080E554A + ldr r0, [r4] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x39 + bl SetContestantEffectStringID2 +_080E554A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E5554: .4byte 0x02039BD4 + thumb_func_end ContestEffect_WorsenConditionOfPrevMons + + thumb_func_start ContestEffect_BadlyStartlesMonsInGoodCondition +ContestEffect_BadlyStartlesMonsInGoodCondition: @ 0x080E5558 + push {r4, r5, r6, r7, lr} + movs r7, #0 + movs r4, #0 + ldr r5, _080E5588 + movs r6, #0 +_080E5562: + ldr r3, [r5] + ldr r2, [r3, #8] + ldrb r0, [r2, #0x11] + adds r0, r2, r0 + adds r1, r2, r4 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _080E55AE + ldr r0, [r3, #4] + adds r0, r6, r0 + ldrb r0, [r0, #0xd] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _080E558C + movs r0, #0x28 + b _080E558E + .align 2, 0 +_080E5588: .4byte 0x02039BD4 +_080E558C: + movs r0, #0xa +_080E558E: + strh r0, [r2, #4] + ldr r0, [r5] + ldr r0, [r0, #8] + strb r4, [r0, #8] + ldr r0, [r5] + ldr r1, [r0, #8] + movs r0, #0xff + strb r0, [r1, #9] + bl WasAtLeastOneOpponentJammed + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080E55AE + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 +_080E55AE: + adds r6, #0x1c + adds r4, #1 + cmp r4, #3 + ble _080E5562 + ldr r4, _080E55DC + ldr r0, [r4] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0xe + bl SetContestantEffectStringID + cmp r7, #0 + bne _080E55D4 + ldr r0, [r4] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x39 + bl SetContestantEffectStringID2 +_080E55D4: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E55DC: .4byte 0x02039BD4 + thumb_func_end ContestEffect_BadlyStartlesMonsInGoodCondition + + thumb_func_start ContestEffect_BetterIfFirst +ContestEffect_BetterIfFirst: @ 0x080E55E0 + push {r4, lr} + ldr r1, _080E5628 + ldr r0, _080E562C + ldr r4, [r0] + ldr r0, [r4, #8] + ldrb r2, [r0, #0x11] + adds r1, r2, r1 + ldrb r0, [r1] + cmp r0, #0 + bne _080E5622 + ldr r0, [r4, #4] + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r0, [r1, #6] + ldr r3, _080E5630 + ldr r2, _080E5634 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0, #1] + lsls r0, r0, #1 + ldrh r2, [r1, #2] + adds r0, r0, r2 + strh r0, [r1, #2] + ldr r0, [r4, #8] + ldrb r0, [r0, #0x11] + movs r1, #0xf + bl SetContestantEffectStringID +_080E5622: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E5628: .4byte 0x02039BC6 +_080E562C: .4byte 0x02039BD4 +_080E5630: .4byte 0x08566AE4 +_080E5634: .4byte 0x08565FCC + thumb_func_end ContestEffect_BetterIfFirst + + thumb_func_start ContestEffect_BetterIfLast +ContestEffect_BetterIfLast: @ 0x080E5638 + push {r4, lr} + ldr r1, _080E5680 + ldr r0, _080E5684 + ldr r4, [r0] + ldr r0, [r4, #8] + ldrb r2, [r0, #0x11] + adds r1, r2, r1 + ldrb r0, [r1] + cmp r0, #3 + bne _080E567A + ldr r0, [r4, #4] + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r0, [r1, #6] + ldr r3, _080E5688 + ldr r2, _080E568C + lsls r0, r0, #3 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0, #1] + lsls r0, r0, #1 + ldrh r2, [r1, #2] + adds r0, r0, r2 + strh r0, [r1, #2] + ldr r0, [r4, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x10 + bl SetContestantEffectStringID +_080E567A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E5680: .4byte 0x02039BC6 +_080E5684: .4byte 0x02039BD4 +_080E5688: .4byte 0x08566AE4 +_080E568C: .4byte 0x08565FCC + thumb_func_end ContestEffect_BetterIfLast + + thumb_func_start ContestEffect_AppealAsGoodAsPrevOnes +ContestEffect_AppealAsGoodAsPrevOnes: @ 0x080E5690 + push {r4, r5, r6, r7, lr} + movs r1, #0 + movs r5, #0 + ldr r0, _080E56E4 + ldr r4, [r0] + ldr r2, [r4, #8] + ldrb r0, [r2, #0x11] + adds r0, r2, r0 + ldrb r6, [r0] + movs r3, #0 +_080E56A4: + adds r0, r2, r1 + ldrb r0, [r0] + cmp r6, r0 + bls _080E56B6 + ldr r0, [r4, #4] + adds r0, r3, r0 + movs r7, #2 + ldrsh r0, [r0, r7] + adds r5, r5, r0 +_080E56B6: + adds r3, #0x1c + adds r1, #1 + cmp r1, #3 + ble _080E56A4 + cmp r5, #0 + bge _080E56C4 + movs r5, #0 +_080E56C4: + ldr r0, _080E56E4 + ldr r3, [r0] + ldr r0, [r3, #8] + ldrb r2, [r0, #0x11] + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080E56D8 + cmp r5, #0 + bne _080E56E8 +_080E56D8: + adds r0, r2, #0 + movs r1, #0x12 + bl SetContestantEffectStringID + b _080E5708 + .align 2, 0 +_080E56E4: .4byte 0x02039BD4 +_080E56E8: + ldr r0, [r3, #4] + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + lsrs r0, r5, #0x1f + adds r0, r5, r0 + asrs r0, r0, #1 + ldrh r2, [r1, #2] + adds r0, r0, r2 + strh r0, [r1, #2] + ldr r0, [r3, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x11 + bl SetContestantEffectStringID +_080E5708: + ldr r4, _080E573C + ldr r1, [r4] + ldr r0, [r1, #8] + ldrb r2, [r0, #0x11] + ldr r1, [r1, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + movs r7, #2 + ldrsh r0, [r0, r7] + bl RoundTowardsZero + ldr r2, [r4] + ldr r1, [r2, #8] + ldrb r3, [r1, #0x11] + ldr r2, [r2, #4] + lsls r1, r3, #3 + subs r1, r1, r3 + lsls r1, r1, #2 + adds r1, r1, r2 + strh r0, [r1, #2] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E573C: .4byte 0x02039BD4 + thumb_func_end ContestEffect_AppealAsGoodAsPrevOnes + + thumb_func_start ContestEffect_AppealAsGoodAsPrevOne +ContestEffect_AppealAsGoodAsPrevOne: @ 0x080E5740 + push {r4, r5, r6, r7, lr} + movs r6, #0 + ldr r0, _080E579C + ldr r4, [r0] + ldr r2, [r4, #8] + ldrb r1, [r2, #0x11] + adds r3, r2, r1 + ldrb r1, [r3] + adds r7, r0, #0 + cmp r1, #0 + beq _080E578E + movs r1, #0 + adds r5, r4, #0 + adds r4, r2, #0 + ldrb r0, [r3] + subs r3, r0, #1 + movs r2, #0 +_080E5762: + adds r0, r4, r1 + ldrb r0, [r0] + cmp r3, r0 + bne _080E5770 + ldr r0, [r5, #4] + adds r0, r2, r0 + ldrh r6, [r0, #2] +_080E5770: + adds r2, #0x1c + adds r1, #1 + cmp r1, #3 + ble _080E5762 + ldr r3, [r7] + ldr r0, [r3, #8] + ldrb r2, [r0, #0x11] + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080E578E + lsls r0, r6, #0x10 + asrs r4, r0, #0x10 + cmp r4, #0 + bgt _080E57A0 +_080E578E: + ldr r0, [r7] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x14 + bl SetContestantEffectStringID + b _080E57BA + .align 2, 0 +_080E579C: .4byte 0x02039BD4 +_080E57A0: + ldr r1, [r3, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r1, [r0, #2] + adds r1, r4, r1 + strh r1, [r0, #2] + ldr r0, [r3, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x13 + bl SetContestantEffectStringID +_080E57BA: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end ContestEffect_AppealAsGoodAsPrevOne + + thumb_func_start ContestEffect_BetterWhenLater +ContestEffect_BetterWhenLater: @ 0x080E57C0 + push {r4, r5, lr} + ldr r1, _080E57E4 + ldr r3, [r1] + ldr r0, [r3, #8] + ldrb r2, [r0, #0x11] + adds r0, r0, r2 + ldrb r4, [r0] + adds r5, r1, #0 + cmp r4, #0 + bne _080E57E8 + ldr r0, [r3, #4] + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + movs r0, #0xa + b _080E57F8 + .align 2, 0 +_080E57E4: .4byte 0x02039BD4 +_080E57E8: + ldr r0, [r3, #4] + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #2 +_080E57F8: + strh r0, [r1, #2] + cmp r4, #0 + bne _080E580C + ldr r0, [r5] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x15 + bl SetContestantEffectStringID + b _080E583C +_080E580C: + cmp r4, #1 + bne _080E581E + ldr r0, [r5] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x16 + bl SetContestantEffectStringID + b _080E583C +_080E581E: + cmp r4, #2 + bne _080E5830 + ldr r0, [r5] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x17 + bl SetContestantEffectStringID + b _080E583C +_080E5830: + ldr r0, [r5] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x18 + bl SetContestantEffectStringID +_080E583C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ContestEffect_BetterWhenLater + + thumb_func_start ContestEffect_QualityDependsOnTiming +ContestEffect_QualityDependsOnTiming: @ 0x080E5844 + push {r4, lr} + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + cmp r0, #2 + bhi _080E5874 + movs r4, #0xa + ldr r0, _080E5870 + ldr r0, [r0] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x1a + bl SetContestantEffectStringID + b _080E58D8 + .align 2, 0 +_080E5870: .4byte 0x02039BD4 +_080E5874: + cmp r0, #5 + bhi _080E5890 + movs r4, #0x14 + ldr r0, _080E588C + ldr r0, [r0] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x1b + bl SetContestantEffectStringID + b _080E58D8 + .align 2, 0 +_080E588C: .4byte 0x02039BD4 +_080E5890: + cmp r0, #7 + bhi _080E58AC + movs r4, #0x28 + ldr r0, _080E58A8 + ldr r0, [r0] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x1c + bl SetContestantEffectStringID + b _080E58D8 + .align 2, 0 +_080E58A8: .4byte 0x02039BD4 +_080E58AC: + cmp r1, #8 + bhi _080E58C8 + movs r4, #0x3c + ldr r0, _080E58C4 + ldr r0, [r0] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x1d + bl SetContestantEffectStringID + b _080E58D8 + .align 2, 0 +_080E58C4: .4byte 0x02039BD4 +_080E58C8: + movs r4, #0x50 + ldr r0, _080E58F4 + ldr r0, [r0] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x1e + bl SetContestantEffectStringID +_080E58D8: + ldr r0, _080E58F4 + ldr r1, [r0] + ldr r0, [r1, #8] + ldrb r2, [r0, #0x11] + ldr r1, [r1, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + strh r4, [r0, #2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E58F4: .4byte 0x02039BD4 + thumb_func_end ContestEffect_QualityDependsOnTiming + + thumb_func_start ContestEffect_BetterIfSameType +ContestEffect_BetterIfSameType: @ 0x080E58F8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r2, _080E597C + ldr r0, [r2] + ldr r3, [r0, #8] + ldrb r0, [r3, #0x11] + adds r0, r3, r0 + movs r1, #0 + ldrsb r1, [r0, r1] + subs r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + mov r8, r2 + cmp r1, #0 + beq _080E59D4 + mov r7, r8 + ldrb r6, [r3] +_080E591C: + movs r2, #0 + lsls r0, r4, #0x18 + asrs r1, r0, #0x18 + adds r5, r0, #0 + cmp r6, r1 + beq _080E5946 + ldr r4, _080E597C +_080E592A: + lsls r0, r2, #0x18 + movs r2, #0x80 + lsls r2, r2, #0x11 + adds r0, r0, r2 + lsrs r2, r0, #0x18 + asrs r3, r0, #0x18 + cmp r3, #3 + bgt _080E5946 + ldr r0, [r4] + ldr r0, [r0, #8] + adds r0, r0, r3 + ldrb r0, [r0] + cmp r0, r1 + bne _080E592A +_080E5946: + ldr r0, [r7] + lsls r3, r2, #0x18 + asrs r1, r3, #0x18 + ldr r2, [r0, #4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r2, r0, r2 + ldrb r1, [r2, #0xb] + movs r0, #0x80 + ands r0, r1 + mov ip, r3 + cmp r0, #0 + bne _080E596C + ldrb r1, [r2, #0xc] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + beq _080E5980 +_080E596C: + movs r1, #0xff + lsls r1, r1, #0x18 + adds r0, r5, r1 + lsrs r4, r0, #0x18 + cmp r0, #0 + blt _080E59D4 + b _080E591C + .align 2, 0 +_080E597C: .4byte 0x02039BD4 +_080E5980: + mov r2, r8 + ldr r6, [r2] + ldr r0, [r6, #8] + ldrb r1, [r0, #0x11] + ldr r4, [r6, #4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r5, r0, r4 + ldrh r0, [r5, #6] + ldr r3, _080E59E0 + lsls r0, r0, #3 + adds r7, r0, r3 + ldrb r2, [r7, #1] + lsls r2, r2, #0x1d + mov r0, ip + asrs r1, r0, #0x18 + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r0, [r0, #6] + lsls r0, r0, #3 + adds r0, r0, r3 + ldrb r0, [r0, #1] + lsls r0, r0, #0x1d + cmp r2, r0 + bne _080E59D4 + ldr r1, _080E59E4 + ldrb r0, [r7] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #1] + lsls r0, r0, #1 + ldrh r1, [r5, #2] + adds r0, r0, r1 + strh r0, [r5, #2] + ldr r0, [r6, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x1f + bl SetContestantEffectStringID +_080E59D4: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E59E0: .4byte 0x08565FCC +_080E59E4: .4byte 0x08566AE4 + thumb_func_end ContestEffect_BetterIfSameType + + thumb_func_start ContestEffect_BetterIfDiffType +ContestEffect_BetterIfDiffType: @ 0x080E59E8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r0, _080E5A74 + ldr r3, [r0] + ldr r1, [r3, #8] + ldrb r2, [r1, #0x11] + adds r1, r1, r2 + ldrb r1, [r1] + mov sb, r0 + cmp r1, #0 + beq _080E5A88 + ldr r1, [r3, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0, #6] + mov r8, r0 + movs r6, #0 + ldr r0, _080E5A78 + mov ip, r0 + movs r7, #0 +_080E5A18: + mov r1, sb + ldr r4, [r1] + ldr r0, [r4, #8] + ldrb r2, [r0, #0x11] + adds r1, r0, r2 + ldrb r1, [r1] + subs r1, #1 + adds r0, r0, r6 + ldrb r0, [r0] + cmp r1, r0 + bne _080E5A80 + mov r1, r8 + lsls r0, r1, #3 + mov r1, ip + adds r5, r0, r1 + ldrb r1, [r5, #1] + lsls r1, r1, #0x1d + ldr r3, [r4, #4] + adds r0, r7, r3 + ldrh r0, [r0, #6] + lsls r0, r0, #3 + add r0, ip + ldrb r0, [r0, #1] + lsls r0, r0, #0x1d + cmp r1, r0 + beq _080E5A80 + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r2, _080E5A7C + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #1] + lsls r0, r0, #1 + ldrh r2, [r1, #2] + adds r0, r0, r2 + strh r0, [r1, #2] + ldr r0, [r4, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x20 + bl SetContestantEffectStringID + b _080E5A88 + .align 2, 0 +_080E5A74: .4byte 0x02039BD4 +_080E5A78: .4byte 0x08565FCC +_080E5A7C: .4byte 0x08566AE4 +_080E5A80: + adds r7, #0x1c + adds r6, #1 + cmp r6, #3 + ble _080E5A18 +_080E5A88: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end ContestEffect_BetterIfDiffType + + thumb_func_start ContestEffect_AffectedByPrevAppeal +ContestEffect_AffectedByPrevAppeal: @ 0x080E5A94 + push {r4, r5, r6, r7, lr} + ldr r0, _080E5AEC + ldr r0, [r0] + ldr r0, [r0, #8] + ldrb r1, [r0, #0x11] + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _080E5B0A + movs r5, #0 + movs r6, #0 +_080E5AAA: + ldr r0, _080E5AEC + ldr r4, [r0] + ldr r1, [r4, #8] + ldrb r2, [r1, #0x11] + adds r0, r1, r2 + ldrb r0, [r0] + subs r0, #1 + adds r1, r1, r5 + ldrb r1, [r1] + cmp r0, r1 + bne _080E5B02 + ldr r1, [r4, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r3, r0, r1 + adds r1, r6, r1 + movs r0, #2 + ldrsh r2, [r3, r0] + movs r7, #2 + ldrsh r0, [r1, r7] + cmp r2, r0 + ble _080E5AF0 + adds r0, r2, #0 + lsls r0, r0, #1 + strh r0, [r3, #2] + ldr r0, [r4, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x21 + bl SetContestantEffectStringID + b _080E5B02 + .align 2, 0 +_080E5AEC: .4byte 0x02039BD4 +_080E5AF0: + cmp r2, r0 + bge _080E5B02 + movs r0, #0 + strh r0, [r3, #2] + ldr r0, [r4, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x22 + bl SetContestantEffectStringID +_080E5B02: + adds r6, #0x1c + adds r5, #1 + cmp r5, #3 + ble _080E5AAA +_080E5B0A: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end ContestEffect_AffectedByPrevAppeal + + thumb_func_start ContestEffect_ImproveConditionPreventNervousness +ContestEffect_ImproveConditionPreventNervousness: @ 0x080E5B10 + push {r4, lr} + ldr r4, _080E5B60 + ldr r1, [r4] + ldr r0, [r1, #8] + ldrb r2, [r0, #0x11] + ldr r1, [r1, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r1, r0, r1 + ldrb r3, [r1, #0xd] + movs r0, #0xd + ldrsb r0, [r1, r0] + cmp r0, #0x1d + bgt _080E5B64 + adds r0, r3, #0 + adds r0, #0xa + strb r0, [r1, #0xd] + ldr r1, [r4] + ldr r0, [r1, #8] + ldrb r2, [r0, #0x11] + ldr r1, [r1, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r2, [r0, #0x10] + movs r1, #0x31 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #0x10 + orrs r1, r2 + strb r1, [r0, #0x10] + ldr r0, [r4] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x23 + bl SetContestantEffectStringID + b _080E5B6C + .align 2, 0 +_080E5B60: .4byte 0x02039BD4 +_080E5B64: + adds r0, r2, #0 + movs r1, #0x3a + bl SetContestantEffectStringID +_080E5B6C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ContestEffect_ImproveConditionPreventNervousness + + thumb_func_start ContestEffect_BetterWithGoodCondition +ContestEffect_BetterWithGoodCondition: @ 0x080E5B74 + push {lr} + ldr r3, _080E5BB4 + ldr r1, [r3] + ldr r0, [r1, #8] + ldrb r2, [r0, #0x11] + ldr r1, [r1, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #0x11] + movs r2, #0x20 + orrs r1, r2 + strb r1, [r0, #0x11] + ldr r1, [r3] + ldr r0, [r1, #8] + ldrb r2, [r0, #0x11] + ldr r1, [r1, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #0xd] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _080E5BB8 + adds r0, r2, #0 + movs r1, #0x24 + bl SetContestantEffectStringID + b _080E5BC0 + .align 2, 0 +_080E5BB4: .4byte 0x02039BD4 +_080E5BB8: + adds r0, r2, #0 + movs r1, #0x3b + bl SetContestantEffectStringID +_080E5BC0: + pop {r0} + bx r0 + thumb_func_end ContestEffect_BetterWithGoodCondition + + thumb_func_start ContestEffect_NextAppealEarlier +ContestEffect_NextAppealEarlier: @ 0x080E5BC4 + push {r4, r5, r6, r7, lr} + sub sp, #4 + ldr r0, _080E5C4C + ldr r2, [r0] + ldr r1, [r2] + ldrb r1, [r1, #1] + mov ip, r0 + cmp r1, #4 + bne _080E5BD8 + b _080E5CF4 +_080E5BD8: + movs r6, #0 + adds r4, r2, #0 +_080E5BDC: + lsls r1, r6, #0x18 + asrs r1, r1, #0x18 + mov r0, sp + adds r3, r0, r1 + ldr r2, [r4, #4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #0x19] + strb r0, [r3] + adds r1, #1 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + asrs r1, r1, #0x18 + cmp r1, #3 + ble _080E5BDC + mov r1, ip + ldr r0, [r1] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + mov r2, sp + adds r1, r2, r0 + movs r0, #0xff + strb r0, [r1] + movs r6, #0 + mov r3, ip + ldr r7, [r3] +_080E5C14: + movs r5, #0 +_080E5C16: + lsls r0, r5, #0x18 + asrs r2, r0, #0x18 + ldr r0, [r7, #8] + ldrb r0, [r0, #0x11] + cmp r2, r0 + beq _080E5C50 + lsls r0, r6, #0x18 + asrs r3, r0, #0x18 + mov r0, sp + adds r4, r0, r2 + ldrb r1, [r4] + cmp r3, r1 + bne _080E5C50 + ldr r0, [r7, #4] + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + lsls r0, r3, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1, #0x19] + cmp r0, r1 + bne _080E5C50 + adds r0, r3, #1 + strb r0, [r4] + b _080E5C60 + .align 2, 0 +_080E5C4C: .4byte 0x02039BD4 +_080E5C50: + lsls r0, r5, #0x18 + movs r2, #0x80 + lsls r2, r2, #0x11 + adds r0, r0, r2 + lsrs r5, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #3 + ble _080E5C16 +_080E5C60: + cmp r5, #4 + beq _080E5C74 + lsls r0, r6, #0x18 + movs r3, #0x80 + lsls r3, r3, #0x11 + adds r0, r0, r3 + lsrs r6, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #3 + ble _080E5C14 +_080E5C74: + mov r4, ip + ldr r1, [r4] + ldr r0, [r1, #8] + ldrb r0, [r0, #0x11] + mov r3, sp + adds r2, r3, r0 + movs r0, #0 + strb r0, [r2] + ldr r0, [r1, #8] + ldrb r2, [r0, #0x11] + ldr r1, [r1, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r2, [r0, #0x10] + movs r1, #0x3f + ands r1, r2 + movs r2, #0x40 + orrs r1, r2 + strb r1, [r0, #0x10] + movs r6, #0 + mov r3, ip +_080E5CA2: + ldr r0, [r3] + lsls r1, r6, #0x18 + asrs r1, r1, #0x18 + ldr r2, [r0, #4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + mov r4, sp + adds r2, r4, r1 + ldrb r2, [r2] + strb r2, [r0, #0x19] + adds r1, #1 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + asrs r1, r1, #0x18 + cmp r1, #3 + ble _080E5CA2 + mov r0, ip + ldr r1, [r0] + ldr r0, [r1, #8] + ldrb r2, [r0, #0x11] + ldr r1, [r1, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r2, [r0, #0x11] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #1 + orrs r1, r2 + strb r1, [r0, #0x11] + mov r1, ip + ldr r0, [r1] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x25 + bl SetContestantEffectStringID +_080E5CF4: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end ContestEffect_NextAppealEarlier + + thumb_func_start ContestEffect_NextAppealLater +ContestEffect_NextAppealLater: @ 0x080E5CFC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + ldr r0, _080E5D8C + ldr r2, [r0] + ldr r1, [r2] + ldrb r1, [r1, #1] + mov ip, r0 + cmp r1, #4 + bne _080E5D14 + b _080E5E34 +_080E5D14: + movs r6, #0 + adds r4, r2, #0 +_080E5D18: + lsls r1, r6, #0x18 + asrs r1, r1, #0x18 + mov r0, sp + adds r3, r0, r1 + ldr r2, [r4, #4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #0x19] + strb r0, [r3] + adds r1, #1 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + asrs r1, r1, #0x18 + cmp r1, #3 + ble _080E5D18 + mov r1, ip + ldr r0, [r1] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + mov r2, sp + adds r1, r2, r0 + movs r0, #0xff + strb r0, [r1] + movs r6, #3 + mov r3, ip + ldr r7, [r3] + movs r4, #1 + rsbs r4, r4, #0 + mov r8, r4 +_080E5D56: + movs r5, #0 +_080E5D58: + lsls r0, r5, #0x18 + asrs r2, r0, #0x18 + ldr r0, [r7, #8] + ldrb r0, [r0, #0x11] + cmp r2, r0 + beq _080E5D90 + lsls r0, r6, #0x18 + asrs r3, r0, #0x18 + mov r0, sp + adds r4, r0, r2 + ldrb r1, [r4] + cmp r3, r1 + bne _080E5D90 + ldr r0, [r7, #4] + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + lsls r0, r3, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1, #0x19] + cmp r0, r1 + bne _080E5D90 + subs r0, r3, #1 + strb r0, [r4] + b _080E5DA0 + .align 2, 0 +_080E5D8C: .4byte 0x02039BD4 +_080E5D90: + lsls r0, r5, #0x18 + movs r2, #0x80 + lsls r2, r2, #0x11 + adds r0, r0, r2 + lsrs r5, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #3 + ble _080E5D58 +_080E5DA0: + cmp r5, #4 + beq _080E5DB4 + lsls r0, r6, #0x18 + movs r3, #0xff + lsls r3, r3, #0x18 + adds r0, r0, r3 + lsrs r6, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, r8 + bgt _080E5D56 +_080E5DB4: + mov r4, ip + ldr r1, [r4] + ldr r0, [r1, #8] + ldrb r0, [r0, #0x11] + mov r3, sp + adds r2, r3, r0 + movs r0, #3 + strb r0, [r2] + ldr r0, [r1, #8] + ldrb r2, [r0, #0x11] + ldr r1, [r1, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r2, [r0, #0x10] + movs r1, #0x3f + ands r1, r2 + movs r2, #0x40 + orrs r1, r2 + strb r1, [r0, #0x10] + movs r6, #0 + mov r3, ip +_080E5DE2: + ldr r0, [r3] + lsls r1, r6, #0x18 + asrs r1, r1, #0x18 + ldr r2, [r0, #4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + mov r4, sp + adds r2, r4, r1 + ldrb r2, [r2] + strb r2, [r0, #0x19] + adds r1, #1 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + asrs r1, r1, #0x18 + cmp r1, #3 + ble _080E5DE2 + mov r0, ip + ldr r1, [r0] + ldr r0, [r1, #8] + ldrb r2, [r0, #0x11] + ldr r1, [r1, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r2, [r0, #0x11] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #2 + orrs r1, r2 + strb r1, [r0, #0x11] + mov r1, ip + ldr r0, [r1] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x26 + bl SetContestantEffectStringID +_080E5E34: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end ContestEffect_NextAppealLater + + thumb_func_start ContestEffect_HighlyAppealing +ContestEffect_HighlyAppealing: @ 0x080E5E40 + bx lr + .align 2, 0 + thumb_func_end ContestEffect_HighlyAppealing + + thumb_func_start ContestEffect_ScrambleNextTurnOrder +ContestEffect_ScrambleNextTurnOrder: @ 0x080E5E44 + push {r4, r5, r6, r7, lr} + sub sp, #8 + ldr r0, _080E5EC0 + ldr r1, [r0] + ldr r0, [r1] + ldrb r0, [r0, #1] + cmp r0, #4 + beq _080E5F48 + movs r6, #0 + add r5, sp, #4 + adds r4, r1, #0 + adds r7, r5, #0 +_080E5E5C: + lsls r1, r6, #0x18 + asrs r1, r1, #0x18 + mov r0, sp + adds r3, r0, r1 + ldr r2, [r4, #4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #0x19] + strb r0, [r3] + adds r0, r7, r1 + strb r6, [r0] + adds r1, #1 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + asrs r1, r1, #0x18 + cmp r1, #3 + ble _080E5E5C + movs r6, #0 + adds r7, r5, #0 +_080E5E86: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r2, r6, #0x18 + asrs r2, r2, #0x18 + movs r1, #4 + subs r1, r1, r2 + bl __modsi3 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r1, #0 +_080E5EA0: + lsls r0, r1, #0x18 + asrs r2, r0, #0x18 + adds r3, r7, r2 + ldrb r1, [r3] + adds r5, r0, #0 + cmp r1, #0xff + beq _080E5ECA + cmp r4, #0 + bne _080E5EC4 + mov r1, sp + adds r0, r1, r2 + strb r6, [r0] + movs r0, #0xff + strb r0, [r3] + b _080E5ED8 + .align 2, 0 +_080E5EC0: .4byte 0x02039BD4 +_080E5EC4: + subs r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_080E5ECA: + movs r1, #0x80 + lsls r1, r1, #0x11 + adds r0, r5, r1 + lsrs r1, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #3 + ble _080E5EA0 +_080E5ED8: + lsls r0, r6, #0x18 + movs r6, #0x80 + lsls r6, r6, #0x11 + adds r0, r0, r6 + lsrs r6, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #3 + ble _080E5E86 + movs r6, #0 + ldr r5, _080E5F50 + adds r4, r5, #0 +_080E5EEE: + ldr r0, [r4] + lsls r3, r6, #0x18 + asrs r3, r3, #0x18 + ldr r1, [r0, #4] + lsls r2, r3, #3 + subs r2, r2, r3 + lsls r2, r2, #2 + adds r1, r2, r1 + mov r6, sp + adds r0, r6, r3 + ldrb r0, [r0] + strb r0, [r1, #0x19] + ldr r0, [r4] + ldr r0, [r0, #4] + adds r2, r2, r0 + ldrb r1, [r2, #0x10] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + adds r3, #1 + lsls r3, r3, #0x18 + lsrs r6, r3, #0x18 + asrs r3, r3, #0x18 + cmp r3, #3 + ble _080E5EEE + ldr r1, [r5] + ldr r0, [r1, #8] + ldrb r2, [r0, #0x11] + ldr r1, [r1, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #0x11] + movs r2, #3 + orrs r1, r2 + strb r1, [r0, #0x11] + ldr r0, [r5] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x27 + bl SetContestantEffectStringID +_080E5F48: + add sp, #8 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E5F50: .4byte 0x02039BD4 + thumb_func_end ContestEffect_ScrambleNextTurnOrder + + thumb_func_start ContestEffect_ExciteAudienceInAnyContest +ContestEffect_ExciteAudienceInAnyContest: @ 0x080E5F54 + push {lr} + ldr r3, _080E5F8C + ldr r0, _080E5F90 + ldr r1, [r0] + ldr r0, [r1, #8] + ldrb r2, [r0, #0x11] + ldr r1, [r1, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r2, r0, r1 + ldrh r0, [r2, #6] + lsls r0, r0, #3 + adds r0, r0, r3 + ldrb r0, [r0, #1] + lsls r0, r0, #0x1d + ldr r1, _080E5F94 + lsrs r0, r0, #0x1d + ldrh r1, [r1] + cmp r0, r1 + beq _080E5F86 + ldrb r0, [r2, #0x11] + movs r1, #0x10 + orrs r0, r1 + strb r0, [r2, #0x11] +_080E5F86: + pop {r0} + bx r0 + .align 2, 0 +_080E5F8C: .4byte 0x08565FCC +_080E5F90: .4byte 0x02039BD4 +_080E5F94: .4byte 0x02039BCC + thumb_func_end ContestEffect_ExciteAudienceInAnyContest + + thumb_func_start ContestEffect_BadlyStartleMonsWithGoodAppeals +ContestEffect_BadlyStartleMonsWithGoodAppeals: @ 0x080E5F98 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r0, #0 + mov r8, r0 + movs r4, #0 + ldr r5, _080E5FE0 + movs r6, #0 +_080E5FA8: + ldr r3, [r5] + ldr r2, [r3, #8] + ldrb r0, [r2, #0x11] + adds r0, r2, r0 + adds r1, r2, r4 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _080E600A + ldr r0, [r3, #4] + adds r1, r6, r0 + movs r7, #2 + ldrsh r0, [r1, r7] + cmp r0, #0 + ble _080E5FE4 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + strh r0, [r2, #4] + ldr r0, [r3, #8] + movs r1, #4 + ldrsh r0, [r0, r1] + bl RoundUp + ldr r1, [r5] + ldr r1, [r1, #8] + strh r0, [r1, #4] + b _080E5FE8 + .align 2, 0 +_080E5FE0: .4byte 0x02039BD4 +_080E5FE4: + movs r0, #0xa + strh r0, [r2, #4] +_080E5FE8: + ldr r0, [r5] + ldr r0, [r0, #8] + strb r4, [r0, #8] + ldr r0, [r5] + ldr r1, [r0, #8] + movs r0, #0xff + strb r0, [r1, #9] + bl WasAtLeastOneOpponentJammed + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080E600A + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 +_080E600A: + adds r6, #0x1c + adds r4, #1 + cmp r4, #3 + ble _080E5FA8 + mov r7, r8 + cmp r7, #0 + bne _080E6026 + ldr r0, _080E6040 + ldr r0, [r0] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x36 + bl SetContestantEffectStringID2 +_080E6026: + ldr r0, _080E6040 + ldr r0, [r0] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x30 + bl SetContestantEffectStringID + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E6040: .4byte 0x02039BD4 + thumb_func_end ContestEffect_BadlyStartleMonsWithGoodAppeals + + thumb_func_start ContestEffect_BetterWhenAudienceExcited +ContestEffect_BetterWhenAudienceExcited: @ 0x080E6044 + push {r4, lr} + ldr r0, _080E6064 + ldr r1, [r0] + ldr r0, [r1] + ldrb r0, [r0, #0x13] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _080E6068 + movs r4, #0xa + ldr r0, [r1, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x1a + bl SetContestantEffectStringID + b _080E60AA + .align 2, 0 +_080E6064: .4byte 0x02039BD4 +_080E6068: + cmp r0, #1 + bne _080E607A + movs r4, #0x14 + ldr r0, [r1, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x1b + bl SetContestantEffectStringID + b _080E60AA +_080E607A: + cmp r0, #2 + bne _080E608C + movs r4, #0x1e + ldr r0, [r1, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x1c + bl SetContestantEffectStringID + b _080E60AA +_080E608C: + cmp r0, #3 + bne _080E609E + movs r4, #0x32 + ldr r0, [r1, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x1d + bl SetContestantEffectStringID + b _080E60AA +_080E609E: + movs r4, #0x3c + ldr r0, [r1, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x1e + bl SetContestantEffectStringID +_080E60AA: + ldr r0, _080E60C4 + ldr r1, [r0] + ldr r0, [r1, #8] + ldrb r2, [r0, #0x11] + ldr r1, [r1, #4] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + strh r4, [r0, #2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E60C4: .4byte 0x02039BD4 + thumb_func_end ContestEffect_BetterWhenAudienceExcited + + thumb_func_start ContestEffect_DontExciteAudience +ContestEffect_DontExciteAudience: @ 0x080E60C8 + push {r4, lr} + ldr r4, _080E610C + ldr r0, [r4] + ldr r2, [r0, #0x10] + ldrb r1, [r2, #1] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080E6106 + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #1] + ldr r0, [r4] + ldr r3, [r0, #0x10] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #7 + ands r1, r0 + lsls r1, r1, #1 + ldrb r2, [r3, #1] + movs r0, #0xf + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #1] + ldr r0, [r4] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x3d + bl SetContestantEffectStringID +_080E6106: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E610C: .4byte 0x02039BD4 + thumb_func_end ContestEffect_DontExciteAudience + + thumb_func_start JamByMoveCategory +JamByMoveCategory: @ 0x080E6110 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r7, #0 + movs r4, #0 + ldr r6, _080E6154 + ldr r0, _080E6158 + mov sb, r0 + movs r5, #0 +_080E612A: + ldr r3, [r6] + ldr r2, [r3, #8] + ldrb r0, [r2, #0x11] + adds r0, r2, r0 + adds r1, r2, r4 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _080E617A + ldr r0, [r3, #4] + adds r0, r5, r0 + ldrh r0, [r0, #6] + lsls r0, r0, #3 + add r0, sb + ldrb r0, [r0, #1] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1d + cmp r8, r0 + bne _080E615C + movs r0, #0x28 + b _080E615E + .align 2, 0 +_080E6154: .4byte 0x02039BD4 +_080E6158: .4byte 0x08565FCC +_080E615C: + movs r0, #0xa +_080E615E: + strh r0, [r2, #4] + ldr r0, [r6] + ldr r0, [r0, #8] + strb r4, [r0, #8] + ldr r0, [r6] + ldr r1, [r0, #8] + movs r0, #0xff + strb r0, [r1, #9] + bl WasAtLeastOneOpponentJammed + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080E617A + adds r7, #1 +_080E617A: + adds r5, #0x1c + adds r4, #1 + cmp r4, #3 + ble _080E612A + cmp r7, #0 + bne _080E6194 + ldr r0, _080E61A0 + ldr r0, [r0] + ldr r0, [r0, #8] + ldrb r0, [r0, #0x11] + movs r1, #0x36 + bl SetContestantEffectStringID2 +_080E6194: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E61A0: .4byte 0x02039BD4 + thumb_func_end JamByMoveCategory + + thumb_func_start CanUnnerveContestant +CanUnnerveContestant: @ 0x080E61A4 + push {lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r2, _080E61D4 + ldr r0, [r2] + ldr r0, [r0, #8] + adds r0, #0xd + adds r0, r0, r3 + movs r1, #1 + strb r1, [r0] + ldr r0, [r2] + ldr r1, [r0, #4] + lsls r0, r3, #3 + subs r0, r0, r3 + lsls r0, r0, #2 + adds r2, r0, r1 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080E61D8 + adds r0, r3, #0 + movs r1, #0x2d + b _080E61FE + .align 2, 0 +_080E61D4: .4byte 0x02039BD4 +_080E61D8: + ldrb r0, [r2, #0x12] + cmp r0, #0 + bne _080E61F6 + ldrb r1, [r2, #0xb] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080E6202 + ldrb r1, [r2, #0xc] + movs r0, #6 + ands r0, r1 + cmp r0, #0 + bne _080E6202 + movs r0, #1 + b _080E6204 +_080E61F6: + subs r0, #1 + strb r0, [r2, #0x12] + adds r0, r3, #0 + movs r1, #0x2c +_080E61FE: + bl SetContestantEffectStringID +_080E6202: + movs r0, #0 +_080E6204: + pop {r1} + bx r1 + thumb_func_end CanUnnerveContestant + + thumb_func_start WasAtLeastOneOpponentJammed +WasAtLeastOneOpponentJammed: @ 0x080E6208 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + mov r0, sp + movs r1, #0 + movs r2, #8 + bl memset + movs r7, #0 + ldr r4, _080E628C + ldr r0, [r4] + ldr r0, [r0, #8] + ldrb r0, [r0, #8] + cmp r0, #0xff + beq _080E62EC + mov r8, r4 +_080E622A: + mov r1, r8 + ldr r0, [r1] + ldr r0, [r0, #8] + adds r0, #8 + adds r0, r0, r7 + ldrb r5, [r0] + adds r6, r5, #0 + adds r0, r5, #0 + bl CanUnnerveContestant + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080E62DA + ldr r2, [r4] + ldr r1, [r2, #8] + ldrh r0, [r1, #4] + strh r0, [r1, #6] + ldr r1, [r2, #4] + lsls r0, r5, #3 + subs r0, r0, r5 + lsls r4, r0, #2 + adds r1, r4, r1 + ldrb r1, [r1, #0x10] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080E626A + ldr r1, [r2, #8] + movs r2, #6 + ldrsh r0, [r1, r2] + lsls r0, r0, #1 + strh r0, [r1, #6] +_080E626A: + mov r0, r8 + ldr r3, [r0] + ldr r0, [r3, #4] + adds r1, r4, r0 + ldrb r0, [r1, #0x10] + movs r4, #1 + ands r4, r0 + cmp r4, #0 + beq _080E6290 + ldr r1, [r3, #8] + movs r0, #0xa + strh r0, [r1, #6] + adds r0, r5, #0 + movs r1, #0x2f + bl SetContestantEffectStringID + b _080E62DA + .align 2, 0 +_080E628C: .4byte 0x02039BD4 +_080E6290: + ldr r2, [r3, #8] + ldrb r1, [r1, #0xf] + ldrh r0, [r2, #6] + subs r0, r0, r1 + strh r0, [r2, #6] + ldr r2, [r3, #8] + ldrh r1, [r2, #6] + movs r3, #6 + ldrsh r0, [r2, r3] + cmp r0, #0 + bgt _080E62B2 + strh r4, [r2, #6] + adds r0, r5, #0 + movs r1, #0x2e + bl SetContestantEffectStringID + b _080E62DA +_080E62B2: + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r6, #0 + bl JamContestant + mov r1, r8 + ldr r0, [r1] + ldr r0, [r0, #8] + ldrb r1, [r0, #6] + adds r0, r6, #0 + bl SetStartledString + lsls r0, r6, #1 + mov r2, sp + adds r1, r2, r0 + mov r3, r8 + ldr r0, [r3] + ldr r0, [r0, #8] + ldrh r0, [r0, #6] + strh r0, [r1] +_080E62DA: + adds r7, #1 + ldr r4, _080E62FC + ldr r0, [r4] + ldr r0, [r0, #8] + adds r0, #8 + adds r0, r0, r7 + ldrb r0, [r0] + cmp r0, #0xff + bne _080E622A +_080E62EC: + movs r7, #0 + mov r1, sp +_080E62F0: + movs r2, #0 + ldrsh r0, [r1, r2] + cmp r0, #0 + beq _080E6300 + movs r0, #1 + b _080E630A + .align 2, 0 +_080E62FC: .4byte 0x02039BD4 +_080E6300: + adds r1, #2 + adds r7, #1 + cmp r7, #3 + ble _080E62F0 + movs r0, #0 +_080E630A: + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end WasAtLeastOneOpponentJammed + + thumb_func_start JamContestant +JamContestant: @ 0x080E6318 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _080E6348 + ldr r4, [r2] + ldr r3, [r4, #4] + lsls r2, r0, #3 + subs r2, r2, r0 + lsls r2, r2, #2 + adds r3, r2, r3 + ldrh r0, [r3, #2] + subs r0, r0, r1 + strh r0, [r3, #2] + ldr r0, [r4, #4] + adds r2, r2, r0 + ldrb r0, [r2, #0xe] + adds r1, r1, r0 + strb r1, [r2, #0xe] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E6348: .4byte 0x02039BD4 + thumb_func_end JamContestant + + thumb_func_start RoundTowardsZero +RoundTowardsZero: @ 0x080E634C + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + asrs r4, r0, #0x10 + adds r0, r4, #0 + cmp r4, #0 + bge _080E635C + rsbs r0, r4, #0 +_080E635C: + movs r1, #0xa + bl __modsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r4, #0 + bge _080E637A + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + cmp r1, #0 + beq _080E6384 + adds r0, r4, #0 + subs r0, #0xa + adds r0, r1, r0 + b _080E6380 +_080E637A: + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + subs r0, r4, r0 +_080E6380: + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_080E6384: + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end RoundTowardsZero + + thumb_func_start RoundUp +RoundUp: @ 0x080E6390 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + asrs r4, r0, #0x10 + adds r0, r4, #0 + cmp r4, #0 + bge _080E63A0 + rsbs r0, r4, #0 +_080E63A0: + movs r1, #0xa + bl __modsi3 + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + cmp r1, #0 + beq _080E63B8 + adds r0, r4, #0 + adds r0, #0xa + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_080E63B8: + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end RoundUp + diff --git a/asm/contest_link_80F57C4.s b/asm/contest_link_80F57C4.s new file mode 100644 index 0000000..dfcb301 --- /dev/null +++ b/asm/contest_link_80F57C4.s @@ -0,0 +1,6122 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_080F5FBC +sub_080F5FBC: @ 0x080F5FBC + push {r4, lr} + movs r0, #0 + movs r1, #0x40 + bl SetGpuReg + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _080F60D0 + movs r0, #0 + movs r2, #4 + bl InitBgsFromTemplates + movs r4, #0 +_080F5FD8: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080F60D4 + ldr r1, [r1] + lsls r2, r4, #2 + adds r1, #0xc + adds r1, r1, r2 + ldr r1, [r1] + bl SetBgTilemapBuffer + adds r4, #1 + cmp r4, #3 + ble _080F5FD8 + ldr r0, _080F60D8 + bl InitWindows + bl DeactivateAllTextPrinters + movs r0, #0x4c + movs r1, #0 + bl SetGpuReg + ldr r1, _080F60DC + movs r0, #0x48 + bl SetGpuReg + ldr r1, _080F60E0 + movs r0, #0x4a + bl SetGpuReg + movs r0, #0x40 + movs r1, #0 + bl SetGpuReg + movs r0, #0x44 + movs r1, #0 + bl SetGpuReg + movs r0, #0x42 + movs r1, #0 + bl SetGpuReg + movs r0, #0x46 + movs r1, #0 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + movs r0, #0x10 + movs r1, #0 + bl SetGpuReg + movs r0, #0x12 + movs r1, #0 + bl SetGpuReg + movs r0, #0x14 + movs r1, #0 + bl SetGpuReg + movs r0, #0x16 + movs r1, #0 + bl SetGpuReg + movs r0, #0x18 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1a + movs r1, #0 + bl SetGpuReg + movs r0, #0x1c + movs r1, #0 + bl SetGpuReg + movs r0, #0x1e + movs r1, #0 + bl SetGpuReg + movs r1, #0xff + lsls r1, r1, #8 + movs r0, #0 + bl SetGpuRegBits + ldr r0, _080F60E4 + movs r1, #0 + strh r1, [r0] + ldr r0, _080F60E8 + strh r1, [r0] + ldr r0, _080F60EC + strh r1, [r0] + ldr r0, _080F60F0 + strh r1, [r0] + ldr r0, _080F60F4 + strh r1, [r0] + ldr r0, _080F60F8 + strh r1, [r0] + ldr r0, _080F60FC + strh r1, [r0] + ldr r0, _080F6100 + strh r1, [r0] + ldr r0, _080F6104 + strh r1, [r0] + ldr r0, _080F6108 + strh r1, [r0] + ldr r0, _080F610C + strh r1, [r0] + ldr r0, _080F6110 + strh r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F60D0: .4byte 0x0856944C +_080F60D4: .4byte 0x02039D00 +_080F60D8: .4byte 0x0856945C +_080F60DC: .4byte 0x00003F3F +_080F60E0: .4byte 0x00003F2E +_080F60E4: .4byte 0x02022AC8 +_080F60E8: .4byte 0x02022ACA +_080F60EC: .4byte 0x02022ACC +_080F60F0: .4byte 0x02022ACE +_080F60F4: .4byte 0x02022AD0 +_080F60F8: .4byte 0x02022AD2 +_080F60FC: .4byte 0x02022AD4 +_080F6100: .4byte 0x02022AD6 +_080F6104: .4byte 0x02022AD8 +_080F6108: .4byte 0x02022ADA +_080F610C: .4byte 0x02022ADC +_080F6110: .4byte 0x02022ADE + thumb_func_end sub_080F5FBC + + thumb_func_start sub_080F6114 +sub_080F6114: @ 0x080F6114 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + ldr r0, _080F61CC + movs r1, #0xc0 + lsls r1, r1, #0x13 + bl LZDecompressWram + ldr r1, _080F61D0 + movs r0, #3 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + ldr r1, _080F61D4 + movs r0, #2 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + ldr r1, _080F61D8 + movs r0, #0 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + bl sub_080F7A3C + ldr r0, _080F61DC + movs r2, #0x80 + lsls r2, r2, #2 + movs r1, #0 + bl LoadCompressedPalette + ldr r0, _080F61E0 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + movs r7, #0 + movs r0, #1 + mov r8, r0 +_080F616E: + lsls r5, r7, #0x18 + lsrs r5, r5, #0x18 + adds r0, r5, #0 + movs r1, #1 + bl sub_080F7BA0 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + movs r1, #1 + bl sub_080F7BF4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #8] + movs r6, #0 + lsls r1, r7, #1 + adds r2, r7, #1 + str r2, [sp, #0xc] + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + mov sl, r4 + adds r1, r1, r7 + adds r0, r1, #6 + lsls r0, r0, #0x18 + mov sb, r0 + adds r1, #5 + lsls r7, r1, #0x18 +_080F61A8: + ldr r1, _080F61E4 + cmp r6, sl + bge _080F61B0 + adds r1, #2 +_080F61B0: + ldr r4, [sp, #8] + lsls r0, r4, #0x18 + asrs r0, r0, #0x18 + adds r2, r0, #0 + cmp r0, #0 + bge _080F61BE + rsbs r2, r0, #0 +_080F61BE: + cmp r6, r2 + bge _080F61EC + ldr r5, _080F61E8 + cmp r0, #0 + bge _080F61EE + adds r5, #2 + b _080F61EE + .align 2, 0 +_080F61CC: .4byte 0x08C196CC +_080F61D0: .4byte 0x08C1A174 +_080F61D4: .4byte 0x08C1A048 +_080F61D8: .4byte 0x08C19F34 +_080F61DC: .4byte 0x08C1A2FC +_080F61E0: .4byte 0x0856915C +_080F61E4: .4byte 0x000060B2 +_080F61E8: .4byte 0x000060A4 +_080F61EC: + ldr r5, _080F6268 +_080F61EE: + adds r4, r6, #0 + adds r4, #0x13 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r0, r8 + str r0, [sp] + str r0, [sp, #4] + movs r0, #1 + adds r2, r4, #0 + lsrs r3, r7, #0x18 + bl FillBgTilemapBufferRect_Palette0 + mov r2, r8 + str r2, [sp] + str r2, [sp, #4] + movs r0, #1 + adds r1, r5, #0 + adds r2, r4, #0 + mov r4, sb + lsrs r3, r4, #0x18 + bl FillBgTilemapBufferRect_Palette0 + adds r6, #1 + cmp r6, #9 + ble _080F61A8 + ldr r7, [sp, #0xc] + cmp r7, #3 + ble _080F616E + movs r0, #0 + bl CopyBgTilemapBufferToVram + movs r0, #1 + bl CopyBgTilemapBufferToVram + movs r0, #2 + bl CopyBgTilemapBufferToVram + movs r0, #3 + bl CopyBgTilemapBufferToVram + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F6268: .4byte 0x000060A2 + thumb_func_end sub_080F6114 + + thumb_func_start sub_080F626C +sub_080F626C: @ 0x080F626C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _080F6288 + ldrb r0, [r0] + cmp r6, r0 + bne _080F6294 + ldr r0, _080F628C + ldr r1, _080F6290 + bl StringCopy + adds r5, r0, #0 + b _080F6296 + .align 2, 0 +_080F6288: .4byte 0x02039BC5 +_080F628C: .4byte 0x02022AE0 +_080F6290: .4byte 0x085CC4E0 +_080F6294: + ldr r5, _080F62E0 +_080F6296: + lsls r4, r6, #6 + ldr r1, _080F62E4 + adds r1, r4, r1 + adds r0, r5, #0 + bl StringCopy + ldr r5, _080F62E0 + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_080F8760 + ldr r0, _080F62E8 + ldrb r0, [r0] + cmp r6, r0 + bne _080F62BE + ldr r1, _080F62EC + adds r0, r5, #0 + bl StringCopy + adds r5, r0, #0 +_080F62BE: + ldr r1, _080F62F0 + adds r0, r5, #0 + bl StringCopy + ldr r1, _080F62F4 + adds r1, r4, r1 + adds r0, r5, #0 + bl StringAppend + adds r0, r6, #4 + ldr r1, _080F62E0 + bl sub_080F8760 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080F62E0: .4byte 0x02022AE0 +_080F62E4: .4byte 0x02039AA2 +_080F62E8: .4byte 0x02039BC5 +_080F62EC: .4byte 0x085CC4E0 +_080F62F0: .4byte 0x085C93FF +_080F62F4: .4byte 0x02039AAD + thumb_func_end sub_080F626C + + thumb_func_start sub_080F62F8 +sub_080F62F8: @ 0x080F62F8 + push {r4, lr} + movs r4, #0 +_080F62FC: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl sub_080F626C + adds r4, #1 + cmp r4, #3 + ble _080F62FC + movs r0, #1 + bl CopyBgTilemapBufferToVram + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080F62F8 + + thumb_func_start sub_080F6318 +sub_080F6318: @ 0x080F6318 + push {r4, r5, r6, lr} + sub sp, #4 + ldr r5, _080F63D8 + ldrb r0, [r5, #8] + movs r6, #0x80 + orrs r0, r6 + strb r0, [r5, #8] + movs r0, #0 + bl SetVBlankCallback + bl sub_080F8684 + bl sub_080F5FBC + bl ScanlineEffect_Clear + bl ResetPaletteFade + bl ResetSpriteData + bl ResetTasks + bl FreeAllSpritePalettes + bl sub_080F6114 + bl sub_080F72C0 + movs r0, #0 + movs r1, #1 + bl LoadAllContestMonIcons + bl sub_080F62F8 + ldr r4, _080F63DC + ldr r0, [r4] + ldr r0, [r0] + movs r1, #0 + movs r2, #0x18 + bl memset + ldr r0, [r4] + ldr r0, [r0, #4] + movs r1, #0 + movs r2, #0x50 + bl memset + bl sub_080F760C + bl sub_080F730C + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldrb r1, [r5, #8] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #8] + ldr r0, _080F63E0 + movs r1, #5 + bl CreateTask + ldr r1, [r4] + ldr r1, [r1] + strb r0, [r1, #2] + ldr r0, _080F63E4 + bl SetMainCallback2 + ldr r1, _080F63E8 + movs r0, #0xf0 + strh r0, [r1] + ldr r1, _080F63EC + ldr r2, _080F63F0 + adds r0, r2, #0 + strh r0, [r1] + ldr r0, _080F63F4 + movs r1, #0x14 + bl CreateTask + bl sub_080F8110 + ldr r0, _080F63F8 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080F63FC + ldrb r0, [r5, #8] + orrs r0, r6 + strb r0, [r5, #8] + b _080F6404 + .align 2, 0 +_080F63D8: .4byte 0x02037C74 +_080F63DC: .4byte 0x02039D00 +_080F63E0: .4byte 0x080F64FD +_080F63E4: .4byte 0x080F6419 +_080F63E8: .4byte 0x02022ADC +_080F63EC: .4byte 0x02022ADE +_080F63F0: .4byte 0x000080A0 +_080F63F4: .4byte 0x080F70D9 +_080F63F8: .4byte 0x02039BCA +_080F63FC: + movs r0, #0xdf + lsls r0, r0, #1 + bl PlayBGM +_080F6404: + ldr r0, _080F6414 + bl SetVBlankCallback + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080F6414: .4byte 0x080F643D + thumb_func_end sub_080F6318 + + thumb_func_start sub_080F6418 +sub_080F6418: @ 0x080F6418 + push {lr} + bl AnimateSprites + bl BuildOamBuffer + bl RunTasks + bl UpdatePaletteFade + movs r0, #1 + bl CopyBgTilemapBufferToVram + movs r0, #2 + bl CopyBgTilemapBufferToVram + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080F6418 + + thumb_func_start sub_080F643C +sub_080F643C: @ 0x080F643C + push {lr} + ldr r0, _080F64CC + ldrh r1, [r0] + movs r0, #0x10 + bl SetGpuReg + ldr r0, _080F64D0 + ldrh r1, [r0] + movs r0, #0x12 + bl SetGpuReg + ldr r0, _080F64D4 + ldrh r1, [r0] + movs r0, #0x14 + bl SetGpuReg + ldr r0, _080F64D8 + ldrh r1, [r0] + movs r0, #0x16 + bl SetGpuReg + ldr r0, _080F64DC + ldrh r1, [r0] + movs r0, #0x18 + bl SetGpuReg + ldr r0, _080F64E0 + ldrh r1, [r0] + movs r0, #0x1a + bl SetGpuReg + ldr r0, _080F64E4 + ldrh r1, [r0] + movs r0, #0x1c + bl SetGpuReg + ldr r0, _080F64E8 + ldrh r1, [r0] + movs r0, #0x1e + bl SetGpuReg + ldr r0, _080F64EC + ldrh r1, [r0] + movs r0, #0x40 + bl SetGpuReg + ldr r0, _080F64F0 + ldrh r1, [r0] + movs r0, #0x44 + bl SetGpuReg + ldr r0, _080F64F4 + ldrh r1, [r0] + movs r0, #0x42 + bl SetGpuReg + ldr r0, _080F64F8 + ldrh r1, [r0] + movs r0, #0x46 + bl SetGpuReg + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + bl ScanlineEffect_InitHBlankDmaTransfer + pop {r0} + bx r0 + .align 2, 0 +_080F64CC: .4byte 0x02022AC8 +_080F64D0: .4byte 0x02022ACA +_080F64D4: .4byte 0x02022ACC +_080F64D8: .4byte 0x02022ACE +_080F64DC: .4byte 0x02022AD0 +_080F64E0: .4byte 0x02022AD2 +_080F64E4: .4byte 0x02022AD4 +_080F64E8: .4byte 0x02022AD6 +_080F64EC: .4byte 0x02022AD8 +_080F64F0: .4byte 0x02022ADA +_080F64F4: .4byte 0x02022ADC +_080F64F8: .4byte 0x02022ADE + thumb_func_end sub_080F643C + + thumb_func_start sub_080F64FC +sub_080F64FC: @ 0x080F64FC + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r3, _080F6530 + ldrb r1, [r3] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080F6510 + b _080F6646 +_080F6510: + ldr r2, _080F6534 + lsls r1, r6, #2 + adds r0, r1, r6 + lsls r0, r0, #3 + adds r4, r0, r2 + movs r2, #8 + ldrsh r0, [r4, r2] + adds r7, r1, #0 + cmp r0, #1 + beq _080F65F8 + cmp r0, #1 + bgt _080F6538 + cmp r0, #0 + beq _080F6542 + b _080F6646 + .align 2, 0 +_080F6530: .4byte 0x02039BCA +_080F6534: .4byte 0x03005B60 +_080F6538: + cmp r0, #2 + beq _080F660C + cmp r0, #3 + beq _080F6622 + b _080F6646 +_080F6542: + bl SaveLinkContestResults + ldr r1, _080F65D4 + ldr r0, _080F65D8 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080F6570 + movs r0, #0x23 + bl IncrementGameStat + ldr r1, _080F65DC + movs r0, #8 + strh r0, [r1] + bl InterviewBefore + ldr r0, _080F65E0 + ldrh r0, [r0] + cmp r0, #1 + beq _080F6570 + bl InterviewAfter +_080F6570: + movs r0, #2 + bl sub_0813BB14 + ldr r0, _080F65E4 + ldrb r0, [r0] + bl sub_080DE4B0 + movs r0, #0xfe + bl sub_080DE4B0 + ldr r1, _080F65E8 + movs r0, #1 + strb r0, [r1] + movs r0, #0xfe + movs r1, #0 + bl sub_080DE6B0 + ldr r1, _080F65EC + strb r0, [r1] + ldr r5, _080F65F0 + adds r0, r5, #0 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + movs r1, #0 + bl VarSet + bl SetContinueGameWarpStatusToDynamicWarp + movs r0, #1 + bl TrySavingData + bl ClearContinueGameWarpStatus + adds r0, r5, #0 + adds r1, r4, #0 + bl VarSet + ldr r0, _080F65F4 + adds r1, r7, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _080F6646 + .align 2, 0 +_080F65D4: .4byte 0x02039BC0 +_080F65D8: .4byte 0x02039BC5 +_080F65DC: .4byte 0x02037282 +_080F65E0: .4byte 0x02037290 +_080F65E4: .4byte 0x02039BCE +_080F65E8: .4byte 0x02039BFC +_080F65EC: .4byte 0x02039BFD +_080F65F0: .4byte 0x00004086 +_080F65F4: .4byte 0x03005B60 +_080F65F8: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + ldrb r1, [r3] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _080F6646 + movs r0, #0x64 + b _080F6644 +_080F660C: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080F66D2 + bl sub_0800A8D4 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _080F66D2 +_080F6622: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080F66D2 + movs r0, #0xdf + lsls r0, r0, #1 + bl PlayBGM + ldr r2, _080F667C + ldrb r1, [r2, #8] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #8] + ldrh r0, [r4, #8] + adds r0, #1 +_080F6644: + strh r0, [r4, #8] +_080F6646: + ldr r0, _080F667C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _080F66D2 + ldr r1, _080F6680 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r4, r0, r1 + strh r2, [r4, #8] + ldr r0, _080F6684 + ldrb r1, [r0] + movs r5, #1 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _080F6690 + ldr r0, _080F6688 + bl sub_080F78E8 + ldr r0, _080F668C + b _080F66D0 + .align 2, 0 +_080F667C: .4byte 0x02037C74 +_080F6680: .4byte 0x03005B60 +_080F6684: .4byte 0x02039BCA +_080F6688: .4byte 0x085CC4D5 +_080F668C: .4byte 0x080F66F1 +_080F6690: + movs r0, #0x24 + bl IncrementGameStat + ldr r1, _080F66D8 + ldr r0, _080F66DC + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080F66AA + movs r0, #0x25 + bl IncrementGameStat +_080F66AA: + ldr r0, _080F66E0 + ldrb r0, [r0] + bl sub_080DE4B0 + movs r0, #0xfe + bl sub_080DE4B0 + ldr r0, _080F66E4 + strb r5, [r0] + movs r0, #0xfe + movs r1, #0 + bl sub_080DE6B0 + ldr r1, _080F66E8 + strb r0, [r1] + movs r0, #2 + bl sub_0813BB14 + ldr r0, _080F66EC +_080F66D0: + str r0, [r4] +_080F66D2: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F66D8: .4byte 0x02039BC0 +_080F66DC: .4byte 0x02039BC5 +_080F66E0: .4byte 0x02039BCE +_080F66E4: .4byte 0x02039BFC +_080F66E8: .4byte 0x02039BFD +_080F66EC: .4byte 0x080F678D + thumb_func_end sub_080F64FC + + thumb_func_start sub_080F66F0 +sub_080F66F0: @ 0x080F66F0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080F671C + ldrb r0, [r0] + cmp r0, #0 + beq _080F6714 + ldr r0, _080F6720 + movs r1, #0 + bl CreateTask + ldr r1, _080F6724 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080F6728 + str r1, [r0] +_080F6714: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F671C: .4byte 0x030031C4 +_080F6720: .4byte 0x080F672D +_080F6724: .4byte 0x03005B60 +_080F6728: .4byte 0x080A8A41 + thumb_func_end sub_080F66F0 + + thumb_func_start sub_080F672C +sub_080F672C: @ 0x080F672C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080F6740 + ldr r2, _080F6744 + bl SetTaskFuncWithFollowupFunc + pop {r0} + bx r0 + .align 2, 0 +_080F6740: .4byte 0x080FD1ED +_080F6744: .4byte 0x080F6749 + thumb_func_end sub_080F672C + + thumb_func_start sub_080F6748 +sub_080F6748: @ 0x080F6748 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080F6778 + adds r0, r4, #0 + bl DestroyTask + ldr r2, _080F6780 + ldr r0, _080F6784 + ldr r0, [r0] + ldr r0, [r0] + ldrb r1, [r0, #2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldr r1, _080F6788 + str r1, [r0] + bl sub_080F79B8 +_080F6778: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F6780: .4byte 0x03005B60 +_080F6784: .4byte 0x02039D00 +_080F6788: .4byte 0x080F678D + thumb_func_end sub_080F6748 + + thumb_func_start sub_080F678C +sub_080F678C: @ 0x080F678C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080F67D4 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r5, r1, r2 + ldrh r1, [r5, #8] + movs r2, #8 + ldrsh r0, [r5, r2] + cmp r0, #0 + bne _080F67E4 + ldr r0, _080F67D8 + movs r1, #0x14 + bl CreateTask + ldr r4, _080F67DC + ldr r0, _080F67E0 + ldr r0, [r0] + ldr r0, [r0] + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080F739C + adds r0, r4, #0 + bl sub_080F76E8 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r3, #0x88 + lsls r3, r3, #3 + movs r1, #0x90 + movs r2, #0x78 + b _080F683E + .align 2, 0 +_080F67D4: .4byte 0x03005B60 +_080F67D8: .4byte 0x080F7115 +_080F67DC: .4byte 0x085CC4A3 +_080F67E0: .4byte 0x02039D00 +_080F67E4: + cmp r0, #1 + bne _080F67FC + ldr r0, _080F67F8 + ldr r0, [r0] + ldr r0, [r0] + ldrb r0, [r0, #4] + cmp r0, #0 + bne _080F6870 + b _080F6810 + .align 2, 0 +_080F67F8: .4byte 0x02039D00 +_080F67FC: + cmp r0, #2 + bne _080F6818 + ldrh r0, [r5, #0xa] + adds r0, #1 + strh r0, [r5, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x15 + bne _080F6870 + movs r0, #0 +_080F6810: + strh r0, [r5, #0xa] + adds r0, r1, #1 + strh r0, [r5, #8] + b _080F6870 +_080F6818: + cmp r0, #3 + bne _080F6858 + ldr r4, _080F684C + ldr r0, _080F6850 + ldr r0, [r0] + ldr r0, [r0] + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080F739C + adds r0, r4, #0 + bl sub_080F76E8 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldr r2, _080F6854 + movs r3, #0x88 + lsls r3, r3, #3 + movs r1, #0x90 +_080F683E: + bl sub_080F7708 + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + b _080F6870 + .align 2, 0 +_080F684C: .4byte 0x085CC4AE +_080F6850: .4byte 0x02039D00 +_080F6854: .4byte 0x0000FFFF +_080F6858: + cmp r0, #4 + bne _080F6870 + ldr r0, _080F6878 + ldr r0, [r0] + ldr r0, [r0] + ldrb r0, [r0, #4] + cmp r0, #2 + bne _080F6870 + movs r0, #0 + strh r0, [r5, #8] + ldr r0, _080F687C + str r0, [r5] +_080F6870: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080F6878: .4byte 0x02039D00 +_080F687C: .4byte 0x080F6881 + thumb_func_end sub_080F678C + + thumb_func_start sub_080F6880 +sub_080F6880: @ 0x080F6880 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080F68A4 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _080F68E8 + cmp r0, #1 + bgt _080F68A8 + cmp r0, #0 + beq _080F68AE + b _080F690E + .align 2, 0 +_080F68A4: .4byte 0x03005B60 +_080F68A8: + cmp r0, #2 + beq _080F68FC + b _080F690E +_080F68AE: + ldr r5, _080F68DC + ldr r0, [r5] + ldr r0, [r0] + ldrb r0, [r0, #0xa] + cmp r0, #0 + bne _080F690E + ldrh r1, [r4, #0xc] + adds r0, r1, #1 + strh r0, [r4, #0xc] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0 + bl sub_080F8310 + ldr r0, [r5] + ldr r0, [r0] + ldrb r0, [r0, #0x14] + cmp r0, #0 + bne _080F68E0 + movs r0, #2 + strh r0, [r4, #8] + b _080F690E + .align 2, 0 +_080F68DC: .4byte 0x02039D00 +_080F68E0: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _080F690E +_080F68E8: + ldr r0, _080F68F8 + ldr r0, [r0] + ldr r0, [r0] + ldrb r0, [r0, #0x14] + cmp r0, #0 + bne _080F690E + strh r0, [r4, #8] + b _080F690E + .align 2, 0 +_080F68F8: .4byte 0x02039D00 +_080F68FC: + movs r0, #0x88 + lsls r0, r0, #3 + bl sub_080F7760 + movs r0, #0 + strh r0, [r4, #8] + strh r0, [r4, #0xc] + ldr r0, _080F6914 + str r0, [r4] +_080F690E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080F6914: .4byte 0x080F6919 + thumb_func_end sub_080F6880 + + thumb_func_start sub_080F6918 +sub_080F6918: @ 0x080F6918 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r4, r2, #0 + ldr r0, _080F696C + ldr r5, [r0] + ldr r0, [r5] + ldrb r3, [r0, #4] + cmp r3, #0 + bne _080F697C + ldr r1, _080F6970 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r1, r0, r1 + ldrh r0, [r1, #0xa] + adds r0, #1 + strh r0, [r1, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x15 + bne _080F698E + strh r3, [r1, #0xa] + ldr r4, _080F6974 + ldr r0, [r5] + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080F739C + adds r0, r4, #0 + bl sub_080F76E8 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldr r2, _080F6978 + movs r3, #0x88 + lsls r3, r3, #3 + movs r1, #0x90 + bl sub_080F7708 + b _080F698E + .align 2, 0 +_080F696C: .4byte 0x02039D00 +_080F6970: .4byte 0x03005B60 +_080F6974: .4byte 0x085CC4BA +_080F6978: .4byte 0x0000FFFF +_080F697C: + cmp r3, #2 + bne _080F698E + ldr r0, _080F6994 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080F6998 + str r0, [r1] +_080F698E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080F6994: .4byte 0x03005B60 +_080F6998: .4byte 0x080F699D + thumb_func_end sub_080F6918 + + thumb_func_start sub_080F699C +sub_080F699C: @ 0x080F699C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080F69C0 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _080F6A04 + cmp r0, #1 + bgt _080F69C4 + cmp r0, #0 + beq _080F69CA + b _080F6A28 + .align 2, 0 +_080F69C0: .4byte 0x03005B60 +_080F69C4: + cmp r0, #2 + beq _080F6A18 + b _080F6A28 +_080F69CA: + ldr r5, _080F69F8 + ldr r0, [r5] + ldr r0, [r0] + ldrb r0, [r0, #0xa] + cmp r0, #0 + bne _080F6A28 + ldrh r1, [r4, #0xc] + adds r0, r1, #1 + strh r0, [r4, #0xc] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #1 + bl sub_080F8310 + ldr r0, [r5] + ldr r0, [r0] + ldrb r0, [r0, #0x14] + cmp r0, #0 + bne _080F69FC + movs r0, #2 + strh r0, [r4, #8] + b _080F6A28 + .align 2, 0 +_080F69F8: .4byte 0x02039D00 +_080F69FC: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _080F6A28 +_080F6A04: + ldr r0, _080F6A14 + ldr r0, [r0] + ldr r0, [r0] + ldrb r0, [r0, #0x14] + cmp r0, #0 + bne _080F6A28 + strh r0, [r4, #8] + b _080F6A28 + .align 2, 0 +_080F6A14: .4byte 0x02039D00 +_080F6A18: + movs r0, #0x88 + lsls r0, r0, #3 + bl sub_080F7760 + movs r0, #0 + strh r0, [r4, #8] + ldr r0, _080F6A30 + str r0, [r4] +_080F6A28: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080F6A30: .4byte 0x080F6A35 + thumb_func_end sub_080F699C + + thumb_func_start sub_080F6A34 +sub_080F6A34: @ 0x080F6A34 + push {r4, r5, r6, r7, lr} + sub sp, #0x64 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _080F6A5C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #8 + ldrsh r0, [r0, r2] + adds r2, r1, #0 + cmp r0, #5 + bls _080F6A52 + b _080F6C1C +_080F6A52: + lsls r0, r0, #2 + ldr r1, _080F6A60 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F6A5C: .4byte 0x03005B60 +_080F6A60: .4byte 0x080F6A64 +_080F6A64: @ jump table + .4byte _080F6A7C @ case 0 + .4byte _080F6AA0 @ case 1 + .4byte _080F6ABE @ case 2 + .4byte _080F6AF8 @ case 3 + .4byte _080F6B60 @ case 4 + .4byte _080F6C0C @ case 5 +_080F6A7C: + ldr r0, _080F6A9C + ldr r0, [r0] + ldr r0, [r0] + ldrb r0, [r0, #4] + cmp r0, #0 + beq _080F6A8A + b _080F6C1C +_080F6A8A: + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrh r1, [r0, #8] + adds r1, #1 + strh r1, [r0, #8] + b _080F6C1C + .align 2, 0 +_080F6A9C: .4byte 0x02039D00 +_080F6AA0: + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r1, r0, r2 + ldrh r0, [r1, #0xa] + adds r0, #1 + strh r0, [r1, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1f + beq _080F6AB8 + b _080F6C1C +_080F6AB8: + movs r0, #0 + strh r0, [r1, #0xa] + b _080F6BE4 +_080F6ABE: + movs r4, #0 + lsls r6, r5, #2 + ldr r7, _080F6AEC +_080F6AC4: + ldr r0, _080F6AF0 + movs r1, #0xa + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r7 + ldr r0, _080F6AF4 + adds r0, r4, r0 + ldrb r0, [r0] + strh r0, [r1, #8] + strh r4, [r1, #0xa] + adds r4, #1 + cmp r4, #3 + ble _080F6AC4 + b _080F6BDC + .align 2, 0 +_080F6AEC: .4byte 0x03005B60 +_080F6AF0: .4byte 0x080F7C6D +_080F6AF4: .4byte 0x02039BC0 +_080F6AF8: + ldr r0, _080F6B54 + ldr r0, [r0] + ldr r0, [r0] + ldrb r0, [r0, #5] + cmp r0, #4 + beq _080F6B06 + b _080F6C1C +_080F6B06: + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r2 + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1f + beq _080F6B1E + b _080F6C1C +_080F6B1E: + movs r0, #0 + strh r0, [r4, #0xa] + ldr r0, _080F6B58 + movs r1, #0xa + bl CreateTask + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r4, #0 + ldr r1, _080F6B5C + ldrb r0, [r1] + cmp r0, #0 + beq _080F6B48 +_080F6B3A: + adds r4, #1 + cmp r4, #3 + bgt _080F6B48 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080F6B3A +_080F6B48: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0xe + bl sub_080F8070 + b _080F6C1C + .align 2, 0 +_080F6B54: .4byte 0x02039D00 +_080F6B58: .4byte 0x080F7D4D +_080F6B5C: .4byte 0x02039BC0 +_080F6B60: + lsls r1, r5, #2 + adds r0, r1, r5 + lsls r0, r0, #3 + adds r2, r0, r2 + ldrh r0, [r2, #0xa] + adds r0, #1 + strh r0, [r2, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r6, r1, #0 + cmp r0, #0x15 + bne _080F6C1C + movs r0, #0 + strh r0, [r2, #0xa] + movs r4, #0 + ldr r1, _080F6BEC + ldrb r0, [r1] + ldr r2, _080F6BF0 + ldr r7, _080F6BF4 + cmp r0, #0 + beq _080F6B98 +_080F6B8A: + adds r4, #1 + cmp r4, #3 + bgt _080F6B98 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080F6B8A +_080F6B98: + lsls r4, r4, #6 + adds r1, r4, r7 + adds r0, r2, #0 + bl StringCopy + ldr r0, _080F6BF8 + adds r1, r7, #0 + subs r1, #0xb + adds r4, r4, r1 + adds r1, r4, #0 + bl StringCopy + ldr r1, _080F6BFC + mov r0, sp + bl StringExpandPlaceholders + ldr r0, _080F6C00 + ldr r0, [r0] + ldr r0, [r0] + ldrb r1, [r0] + mov r0, sp + bl sub_080F739C + mov r0, sp + bl sub_080F76E8 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldr r2, _080F6C04 + movs r3, #0x88 + lsls r3, r3, #3 + movs r1, #0x90 + bl sub_080F7708 +_080F6BDC: + ldr r0, _080F6C08 + adds r1, r6, r5 + lsls r1, r1, #3 + adds r1, r1, r0 +_080F6BE4: + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _080F6C1C + .align 2, 0 +_080F6BEC: .4byte 0x02039BC0 +_080F6BF0: .4byte 0x02021C40 +_080F6BF4: .4byte 0x02039AAD +_080F6BF8: .4byte 0x02021C54 +_080F6BFC: .4byte 0x085CC4C6 +_080F6C00: .4byte 0x02039D00 +_080F6C04: .4byte 0x0000FFFF +_080F6C08: .4byte 0x03005B60 +_080F6C0C: + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r1, #0 + strh r1, [r0, #8] + ldr r1, _080F6C24 + str r1, [r0] +_080F6C1C: + add sp, #0x64 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F6C24: .4byte 0x080F6C29 + thumb_func_end sub_080F6A34 + + thumb_func_start sub_080F6C28 +sub_080F6C28: @ 0x080F6C28 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r1, _080F6C58 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #8 + ldrsh r0, [r0, r2] + adds r4, r1, #0 + cmp r0, #5 + bls _080F6C4C + b _080F6EC0 +_080F6C4C: + lsls r0, r0, #2 + ldr r1, _080F6C5C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F6C58: .4byte 0x03005B60 +_080F6C5C: .4byte 0x080F6C60 +_080F6C60: @ jump table + .4byte _080F6C78 @ case 0 + .4byte _080F6DB0 @ case 1 + .4byte _080F6E00 @ case 2 + .4byte _080F6E14 @ case 3 + .4byte _080F6E5C @ case 4 + .4byte _080F6EA0 @ case 5 +_080F6C78: + ldr r1, _080F6CE4 + movs r0, #0xf0 + strh r0, [r1] + ldr r1, _080F6CE8 + ldr r3, _080F6CEC + adds r0, r3, #0 + strh r0, [r1] + movs r2, #0 + ldr r1, _080F6CF0 + ldrb r0, [r1] + lsls r4, r7, #2 + mov sl, r4 + ldr r3, _080F6CF4 + ldr r4, _080F6CF8 + mov sb, r4 + ldr r4, _080F6CFC + mov ip, r4 + ldr r4, _080F6D00 + mov r8, r4 + cmp r0, #0 + beq _080F6CB0 +_080F6CA2: + adds r2, #1 + cmp r2, #3 + bgt _080F6CB0 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080F6CA2 +_080F6CB0: + lsls r1, r2, #6 + adds r0, r1, r3 + ldrh r6, [r0] + adds r0, r3, #0 + adds r0, #0x38 + adds r0, r1, r0 + ldr r4, [r0] + adds r0, r3, #0 + adds r0, #0x3c + adds r1, r1, r0 + ldr r5, [r1] + mov r0, sb + ldrb r0, [r0] + cmp r2, r0 + bne _080F6D04 + lsls r0, r6, #3 + add r0, ip + mov r2, r8 + ldr r1, [r2] + ldr r1, [r1, #8] + adds r2, r6, #0 + adds r3, r4, #0 + bl HandleLoadSpecialPokePic_2 + b _080F6D16 + .align 2, 0 +_080F6CE4: .4byte 0x02022AD8 +_080F6CE8: .4byte 0x02022ADA +_080F6CEC: .4byte 0x00005050 +_080F6CF0: .4byte 0x02039BC0 +_080F6CF4: .4byte 0x02039AA0 +_080F6CF8: .4byte 0x02039BC5 +_080F6CFC: .4byte 0x082DDA1C +_080F6D00: .4byte 0x02024178 +_080F6D04: + lsls r0, r6, #3 + add r0, ip + mov r3, r8 + ldr r1, [r3] + ldr r1, [r1, #8] + adds r2, r6, #0 + adds r3, r4, #0 + bl HandleLoadSpecialPokePic_DontHandleDeoxys +_080F6D16: + adds r0, r6, #0 + adds r1, r5, #0 + adds r2, r4, #0 + bl GetMonSpritePalStructFromOtIdPersonality + adds r4, r0, #0 + bl LoadCompressedSpritePalette + adds r0, r6, #0 + movs r1, #1 + bl SetMultiuseSpriteTemplateToPokemon + ldr r0, _080F6D90 + ldrh r1, [r4, #4] + strh r1, [r0, #2] + movs r1, #0x88 + lsls r1, r1, #1 + movs r2, #0x50 + movs r3, #0xa + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _080F6D94 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r3, r2, r5 + strh r6, [r3, #0x30] + ldrb r4, [r3, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r4 + strb r1, [r3, #5] + adds r5, #0x1c + adds r2, r2, r5 + ldr r1, _080F6D98 + str r1, [r2] + ldr r1, _080F6D9C + ldr r1, [r1] + ldr r1, [r1] + strb r0, [r1, #8] + ldr r0, _080F6DA0 + bl LoadCompressedSpriteSheet + ldr r0, _080F6DA4 + bl LoadCompressedSpritePalette + ldr r0, _080F6DA8 + movs r1, #0xa + bl CreateTask + ldr r0, _080F6DAC + mov r4, sl + adds r1, r4, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _080F6EC0 + .align 2, 0 +_080F6D90: .4byte 0x02024640 +_080F6D94: .4byte 0x020205AC +_080F6D98: .4byte 0x080F7E39 +_080F6D9C: .4byte 0x02039D00 +_080F6DA0: .4byte 0x08569324 +_080F6DA4: .4byte 0x0856932C +_080F6DA8: .4byte 0x080F7F01 +_080F6DAC: .4byte 0x03005B60 +_080F6DB0: + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r4, r0, r4 + ldrh r0, [r4, #0xe] + adds r0, #1 + strh r0, [r4, #0xe] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + beq _080F6DC8 + b _080F6EC0 +_080F6DC8: + movs r0, #0 + strh r0, [r4, #0xe] + ldrh r0, [r4, #0xc] + adds r0, #2 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x20 + ble _080F6DDE + movs r0, #0x20 + strh r0, [r4, #0xc] +_080F6DDE: + ldrb r2, [r4, #0xc] + ldr r3, _080F6DFC + movs r0, #0x50 + subs r0, r0, r2 + lsls r0, r0, #8 + adds r1, r2, #0 + adds r1, #0x50 + orrs r0, r1 + strh r0, [r3] + cmp r2, #0x20 + bne _080F6EC0 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _080F6EC0 + .align 2, 0 +_080F6DFC: .4byte 0x02022ADA +_080F6E00: + ldr r0, _080F6E10 + ldr r0, [r0] + ldr r0, [r0] + ldrb r0, [r0, #6] + cmp r0, #1 + bne _080F6EC0 + b _080F6E88 + .align 2, 0 +_080F6E10: .4byte 0x02039D00 +_080F6E14: + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r3, r0, r4 + ldrh r0, [r3, #0xa] + adds r0, #1 + strh r0, [r3, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x79 + bne _080F6EC0 + movs r0, #0 + strh r0, [r3, #0xa] + ldr r2, _080F6E50 + ldr r0, _080F6E54 + ldr r0, [r0] + ldr r0, [r0] + ldrb r1, [r0, #8] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, _080F6E58 + str r1, [r0] + ldrh r0, [r3, #8] + adds r0, #1 + strh r0, [r3, #8] + b _080F6EC0 + .align 2, 0 +_080F6E50: .4byte 0x020205AC +_080F6E54: .4byte 0x02039D00 +_080F6E58: .4byte 0x080F7EB1 +_080F6E5C: + ldr r0, _080F6E98 + ldr r0, [r0] + ldr r0, [r0] + ldrb r0, [r0, #6] + cmp r0, #2 + bne _080F6EC0 + ldr r3, _080F6E9C + ldrh r0, [r3] + lsrs r2, r0, #8 + adds r0, r2, #2 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x50 + bls _080F6E7A + movs r2, #0x50 +_080F6E7A: + lsls r1, r2, #8 + movs r0, #0xa0 + subs r0, r0, r2 + orrs r1, r0 + strh r1, [r3] + cmp r2, #0x50 + bne _080F6EC0 +_080F6E88: + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r4 + ldrh r1, [r0, #8] + adds r1, #1 + strh r1, [r0, #8] + b _080F6EC0 + .align 2, 0 +_080F6E98: .4byte 0x02039D00 +_080F6E9C: .4byte 0x02022ADA +_080F6EA0: + ldr r0, _080F6ED0 + ldr r0, [r0] + ldr r2, [r0] + ldrb r0, [r2, #6] + cmp r0, #2 + bne _080F6EC0 + movs r1, #0 + movs r0, #1 + strb r0, [r2, #9] + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r4 + strh r1, [r0, #8] + ldr r1, _080F6ED4 + str r1, [r0] +_080F6EC0: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F6ED0: .4byte 0x02039D00 +_080F6ED4: .4byte 0x080F6ED9 + thumb_func_end sub_080F6C28 + + thumb_func_start sub_080F6ED8 +sub_080F6ED8: @ 0x080F6ED8 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _080F6F2C + ldrh r1, [r0, #0x2e] + movs r2, #1 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _080F6F26 + ldr r0, _080F6F30 + ldrb r1, [r0] + adds r0, r2, #0 + ands r0, r1 + lsls r6, r7, #2 + cmp r0, #0 + bne _080F6F16 + ldr r5, _080F6F34 + movs r4, #3 +_080F6EFE: + ldrh r0, [r5] + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #2 + bl GetSetPokedexFlag + adds r5, #0x40 + subs r4, #1 + cmp r4, #0 + bge _080F6EFE +_080F6F16: + ldr r1, _080F6F38 + adds r0, r6, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #0x1c] + ldr r1, _080F6F3C + str r1, [r0] +_080F6F26: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F6F2C: .4byte 0x03002360 +_080F6F30: .4byte 0x02039BCA +_080F6F34: .4byte 0x02039AA0 +_080F6F38: .4byte 0x03005B60 +_080F6F3C: .4byte 0x080F6F41 + thumb_func_end sub_080F6ED8 + + thumb_func_start sub_080F6F40 +sub_080F6F40: @ 0x080F6F40 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _080F6F74 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080F6F84 + ldr r0, _080F6F78 + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r4, r1, r0 + movs r1, #0x1c + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080F6F92 + ldr r0, _080F6F7C + bl sub_080F78E8 + bl sub_0800A7F8 + ldr r0, _080F6F80 + str r0, [r4] + b _080F6F92 + .align 2, 0 +_080F6F74: .4byte 0x02039BCA +_080F6F78: .4byte 0x03005B60 +_080F6F7C: .4byte 0x085CC4D5 +_080F6F80: .4byte 0x080F6FA1 +_080F6F84: + ldr r0, _080F6F98 + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080F6F9C + str r0, [r1] +_080F6F92: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F6F98: .4byte 0x03005B60 +_080F6F9C: .4byte 0x080F6FE9 + thumb_func_end sub_080F6F40 + + thumb_func_start sub_080F6FA0 +sub_080F6FA0: @ 0x080F6FA0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080F6FD8 + ldrb r0, [r0] + cmp r0, #0 + bne _080F6FD0 + ldr r0, _080F6FDC + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080F6FBE + bl DestroyWirelessStatusIndicatorSprite +_080F6FBE: + bl sub_080F79B8 + ldr r0, _080F6FE0 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080F6FE4 + str r0, [r1] +_080F6FD0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F6FD8: .4byte 0x030031C4 +_080F6FDC: .4byte 0x02039BCA +_080F6FE0: .4byte 0x03005B60 +_080F6FE4: .4byte 0x080F6FE9 + thumb_func_end sub_080F6FA0 + + thumb_func_start sub_080F6FE8 +sub_080F6FE8: @ 0x080F6FE8 + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080F7030 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080F700A + ldr r1, _080F7034 + ldr r0, _080F7038 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + bl BravoTrainerPokemonProfile_BeforeInterview2 +_080F700A: + movs r0, #0 + str r0, [sp] + movs r0, #0xff + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginHardwarePaletteFade + ldr r1, _080F703C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080F7040 + str r1, [r0] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F7030: .4byte 0x02039BCA +_080F7034: .4byte 0x02039BC0 +_080F7038: .4byte 0x02039BC5 +_080F703C: .4byte 0x03005B60 +_080F7040: .4byte 0x080F7045 + thumb_func_end sub_080F6FE8 + + thumb_func_start sub_080F7044 +sub_080F7044: @ 0x080F7044 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r5, r2, #0 + ldr r0, _080F707C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080F70CC + ldr r1, _080F7080 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080F708C + ldr r0, _080F7084 + ldr r0, [r0] + ldr r0, [r0] + ldrb r0, [r0, #3] + bl DestroyTask + ldr r0, _080F7088 + b _080F7092 + .align 2, 0 +_080F707C: .4byte 0x02037C74 +_080F7080: .4byte 0x03005B60 +_080F7084: .4byte 0x02039D00 +_080F7088: .4byte 0x0000FFFF +_080F708C: + cmp r0, #1 + bne _080F70A8 + ldr r0, _080F70A4 +_080F7092: + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + b _080F70CC + .align 2, 0 +_080F70A4: .4byte 0xFFFF0000 +_080F70A8: + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + adds r0, r5, #0 + bl DestroyTask + bl FreeAllWindowBuffers + ldr r0, _080F70D4 + bl SetMainCallback2 + bl sub_080F86F4 +_080F70CC: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080F70D4: .4byte 0x08085B35 + thumb_func_end sub_080F7044 + + thumb_func_start sub_080F70D8 +sub_080F70D8: @ 0x080F70D8 + push {r4, r5, lr} + ldr r2, _080F710C + ldrh r3, [r2] + adds r0, r3, #2 + strh r0, [r2] + ldr r4, _080F7110 + ldrh r5, [r4] + adds r1, r5, #1 + strh r1, [r4] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xff + bls _080F70F8 + adds r0, r3, #0 + subs r0, #0xfd + strh r0, [r2] +_080F70F8: + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xff + bls _080F7106 + adds r0, r5, #0 + subs r0, #0xfe + strh r0, [r4] +_080F7106: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080F710C: .4byte 0x02022AD4 +_080F7110: .4byte 0x02022AD6 + thumb_func_end sub_080F70D8 + + thumb_func_start sub_080F7114 +sub_080F7114: @ 0x080F7114 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _080F7144 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r2, r0, r1 + ldrh r0, [r2, #8] + adds r0, #1 + strh r0, [r2, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + bne _080F7196 + movs r0, #0 + strh r0, [r2, #8] + movs r3, #0xc + ldrsh r0, [r2, r3] + cmp r0, #0 + bne _080F7148 + ldrh r0, [r2, #0xa] + adds r0, #1 + b _080F714C + .align 2, 0 +_080F7144: .4byte 0x03005B60 +_080F7148: + ldrh r0, [r2, #0xa] + subs r0, #1 +_080F714C: + strh r0, [r2, #0xa] + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r1, r0, r1 + movs r2, #0xa + ldrsh r0, [r1, r2] + cmp r0, #0x10 + bne _080F7162 + movs r0, #1 + b _080F7166 +_080F7162: + cmp r0, #0 + bne _080F7168 +_080F7166: + strh r0, [r1, #0xc] +_080F7168: + ldr r0, _080F71B4 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + adds r4, r4, r0 + ldrb r2, [r4, #0xa] + ldr r3, _080F71B8 + movs r0, #0x6b + movs r1, #1 + bl BlendPalette + ldrb r2, [r4, #0xa] + ldr r3, _080F71BC + movs r0, #0x68 + movs r1, #1 + bl BlendPalette + ldrb r2, [r4, #0xa] + ldr r3, _080F71C0 + movs r0, #0x6e + movs r1, #1 + bl BlendPalette +_080F7196: + ldr r1, _080F71B4 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r3, #0xa + ldrsh r4, [r0, r3] + cmp r4, #0 + bne _080F71C8 + ldr r0, _080F71C4 + ldr r0, [r0] + ldr r0, [r0] + strb r4, [r0, #0xa] + b _080F71D2 + .align 2, 0 +_080F71B4: .4byte 0x03005B60 +_080F71B8: .4byte 0x00002EDE +_080F71BC: .4byte 0x00007FFF +_080F71C0: .4byte 0x000077BE +_080F71C4: .4byte 0x02039D00 +_080F71C8: + ldr r0, _080F71D8 + ldr r0, [r0] + ldr r1, [r0] + movs r0, #1 + strb r0, [r1, #0xa] +_080F71D2: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080F71D8: .4byte 0x02039D00 + thumb_func_end sub_080F7114 + + thumb_func_start sub_080F71DC +sub_080F71DC: @ 0x080F71DC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x10 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + mov r8, r4 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r6, r3, #0x18 + ldr r0, _080F725C + movs r2, #0 + ldrb r0, [r0] + cmp r4, r0 + bne _080F7202 + movs r2, #1 +_080F7202: + adds r0, r7, #0 + ldr r1, [sp, #0x28] + bl GetMonIconPtr + adds r3, r0, #0 + lsls r0, r5, #9 + adds r0, #0x80 + adds r3, r3, r0 + cmp r6, #0 + beq _080F7264 + lsls r1, r4, #9 + ldr r0, _080F7260 + adds r1, r1, r0 + movs r2, #0xc0 + lsls r2, r2, #1 + adds r0, r3, #0 + movs r3, #1 + bl RequestDma3Copy + adds r0, r4, #0 + adds r0, #0xa + lsls r0, r0, #0x1c + lsls r1, r4, #0x14 + movs r2, #0x80 + lsls r2, r2, #0x12 + adds r1, r1, r2 + orrs r1, r0 + lsrs r1, r1, #0x10 + lsls r3, r4, #1 + adds r3, r3, r4 + adds r3, #4 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #4 + str r0, [sp] + movs r0, #3 + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #1 + str r0, [sp, #0xc] + movs r2, #3 + bl WriteSequenceToBgTilemapBuffer + b _080F7278 + .align 2, 0 +_080F725C: .4byte 0x02039BC5 +_080F7260: .4byte 0x06004000 +_080F7264: + mov r0, r8 + lsls r1, r0, #9 + ldr r2, _080F7284 + adds r1, r1, r2 + movs r2, #0xc0 + lsls r2, r2, #1 + adds r0, r3, #0 + movs r3, #1 + bl RequestDma3Copy +_080F7278: + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F7284: .4byte 0x06004000 + thumb_func_end sub_080F71DC + + thumb_func_start LoadAllContestMonIcons +LoadAllContestMonIcons: @ 0x080F7288 + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + movs r5, #0 + ldr r4, _080F72BC +_080F7298: + ldrh r0, [r4] + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + ldr r2, [r4, #0x38] + str r2, [sp] + adds r2, r7, #0 + adds r3, r6, #0 + bl sub_080F71DC + adds r4, #0x40 + adds r5, #1 + cmp r5, #3 + ble _080F7298 + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F72BC: .4byte 0x02039AA0 + thumb_func_end LoadAllContestMonIcons + + thumb_func_start sub_080F72C0 +sub_080F72C0: @ 0x080F72C0 + push {r4, r5, r6, lr} + movs r4, #0 + ldr r6, _080F7300 + movs r5, #0xa0 + lsls r5, r5, #0x10 +_080F72CA: + ldr r1, _080F7304 + lsls r0, r4, #6 + adds r0, r0, r1 + ldrh r0, [r0] + movs r1, #0 + bl GetIconSpecies + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r0, r0, r6 + ldrb r0, [r0] + lsls r0, r0, #5 + ldr r1, _080F7308 + adds r0, r0, r1 + lsrs r1, r5, #0x10 + movs r2, #0x20 + bl LoadPalette + movs r0, #0x80 + lsls r0, r0, #0xd + adds r5, r5, r0 + adds r4, #1 + cmp r4, #3 + ble _080F72CA + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080F7300: .4byte 0x08556EE4 +_080F7304: .4byte 0x02039AA0 +_080F7308: .4byte 0x085567A4 + thumb_func_end sub_080F72C0 + + thumb_func_start sub_080F730C +sub_080F730C: @ 0x080F730C + push {r4, lr} + ldr r0, _080F7384 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080F737C + bl LoadWirelessStatusIndicatorSpriteGfx + movs r0, #8 + movs r1, #8 + bl CreateWirelessStatusIndicatorSprite + ldr r4, _080F7388 + ldr r0, _080F738C + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x43 + movs r1, #1 + strb r1, [r0] + ldr r0, _080F7390 + bl LoadSpriteSheet + adds r1, r0, #0 + lsls r1, r1, #0x10 + movs r0, #1 + rsbs r0, r0, #0 + lsrs r1, r1, #0xb + ldr r2, _080F7394 + adds r1, r1, r2 + movs r2, #0x80 + movs r3, #1 + bl RequestDma3Fill + ldr r0, _080F7398 + movs r1, #8 + movs r2, #8 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r2, [r1, #1] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + movs r2, #8 + orrs r0, r2 + strb r0, [r1, #1] +_080F737C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F7384: .4byte 0x02039BCA +_080F7388: .4byte 0x020205AC +_080F738C: .4byte 0x020227C8 +_080F7390: .4byte 0x085694C4 +_080F7394: .4byte 0x06010000 +_080F7398: .4byte 0x085694AC + thumb_func_end sub_080F730C + + thumb_func_start sub_080F739C +sub_080F739C: @ 0x080F739C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + adds r5, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r1, #4 + adds r2, r2, r1 + lsls r2, r2, #2 + ldr r4, _080F74B4 + adds r2, r2, r4 + ldrh r0, [r2, #4] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x11 + ldr r3, _080F74B8 + adds r0, r0, r3 + str r0, [sp] + movs r0, #0x2e + ldrsh r1, [r2, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r0, [r0, #4] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x11 + adds r0, r0, r3 + str r0, [sp, #4] + movs r0, #0x30 + ldrsh r1, [r2, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r0, [r0, #4] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x11 + adds r0, r0, r3 + str r0, [sp, #8] + movs r0, #0x32 + ldrsh r1, [r2, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r0, [r0, #4] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x11 + adds r0, r0, r3 + str r0, [sp, #0xc] + movs r0, #0 + str r0, [sp, #0x10] + add r0, sp, #0x10 + ldr r1, _080F74BC + mov sl, r1 + ldr r1, [r1] + ldr r1, [r1, #0x1c] + ldr r2, _080F74C0 + bl CpuSet + ldr r4, _080F74C4 + ldr r1, _080F74C8 + adds r0, r4, #0 + bl StringCopy + adds r1, r5, #0 + bl StringCopy + mov r2, sl + ldr r0, [r2] + ldr r0, [r0, #8] + movs r1, #1 + adds r2, r4, #0 + bl RenderTextFont9 + adds r0, r5, #0 + bl StringLength + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + mov r1, sl + ldr r0, [r1] + ldr r7, [r0, #0x1c] + ldr r2, _080F74CC + mov r8, r2 + ldr r5, _080F74D0 + mov r0, r8 + adds r1, r7, #0 + adds r2, r5, #0 + bl CpuSet + mov r4, r8 + adds r4, #0x80 + movs r0, #0x80 + lsls r0, r0, #1 + adds r1, r7, r0 + adds r0, r4, #0 + adds r2, r5, #0 + bl CpuSet + movs r2, #0x80 + lsls r2, r2, #2 + adds r1, r7, r2 + adds r0, r4, #0 + adds r2, r5, #0 + bl CpuSet + mov r0, r8 + adds r0, #0x40 + movs r2, #0xc0 + lsls r2, r2, #2 + adds r1, r7, r2 + adds r2, r5, #0 + bl CpuSet + movs r6, #0 + cmp r6, sb + bgt _080F7588 + mov r4, sl + movs r0, #0x92 + lsls r0, r0, #4 + str r0, [sp, #0x14] + movs r1, #0xc4 + lsls r1, r1, #3 + str r1, [sp, #0x18] + movs r2, #0xc8 + lsls r2, r2, #2 + mov sl, r2 + mov r8, r5 +_080F74A6: + cmp r6, #6 + bgt _080F74D4 + ldr r0, [r4] + adds r1, r6, #1 + lsls r1, r1, #5 + ldr r0, [r0, #0x1c] + b _080F74F4 + .align 2, 0 +_080F74B4: .4byte 0x020205AC +_080F74B8: .4byte 0x06010000 +_080F74BC: .4byte 0x02039D00 +_080F74C0: .4byte 0x05000400 +_080F74C4: .4byte 0x02022AE0 +_080F74C8: .4byte 0x085CC4E4 +_080F74CC: .4byte 0x0856917C +_080F74D0: .4byte 0x04000008 +_080F74D4: + cmp r6, #0xe + bgt _080F74E0 + ldr r0, [r4] + ldr r0, [r0, #0x1c] + mov r1, sl + b _080F74F4 +_080F74E0: + cmp r6, #0x16 + bgt _080F74EE + ldr r0, [r4] + ldr r0, [r0, #0x1c] + ldr r2, [sp, #0x18] + adds r7, r0, r2 + b _080F74F6 +_080F74EE: + ldr r0, [r4] + ldr r0, [r0, #0x1c] + ldr r1, [sp, #0x14] +_080F74F4: + adds r7, r0, r1 +_080F74F6: + cmp r6, sb + beq _080F7588 + ldr r0, _080F75F8 + adds r1, r7, #0 + mov r2, r8 + bl CpuSet + movs r2, #0xc0 + lsls r2, r2, #2 + adds r1, r7, r2 + ldr r0, _080F75F8 + adds r0, #0x20 + mov r2, r8 + bl CpuSet + ldr r0, [r4] + lsls r1, r6, #6 + ldr r0, [r0, #8] + adds r3, r0, r1 + movs r0, #0x80 + lsls r0, r0, #1 + adds r5, r7, r0 + movs r1, #0x11 + ldr r2, _080F75FC + adds r0, r7, r2 +_080F7528: + strb r1, [r0] + subs r0, #1 + cmp r0, r5 + bge _080F7528 + movs r0, #0x84 + lsls r0, r0, #1 + adds r5, r7, r0 + movs r2, #0 +_080F7538: + adds r1, r5, r2 + ldrb r0, [r3] + strb r0, [r1] + adds r3, #1 + adds r2, #1 + cmp r2, #0x17 + ble _080F7538 + movs r1, #0x80 + lsls r1, r1, #2 + adds r5, r7, r1 + movs r2, #0 +_080F754E: + adds r1, r5, r2 + ldrb r0, [r3] + strb r0, [r1] + adds r3, #1 + adds r2, #1 + cmp r2, #0x1f + ble _080F754E + movs r2, #0xc0 + lsls r2, r2, #2 + adds r5, r7, r2 + movs r2, #0 +_080F7564: + adds r1, r5, r2 + ldrb r0, [r3] + strb r0, [r1] + adds r3, #1 + adds r2, #1 + cmp r2, #7 + ble _080F7564 + ldr r0, [sp, #0x14] + adds r0, #0x20 + str r0, [sp, #0x14] + ldr r1, [sp, #0x18] + adds r1, #0x20 + str r1, [sp, #0x18] + movs r2, #0x20 + add sl, r2 + adds r6, #1 + cmp r6, sb + ble _080F74A6 +_080F7588: + ldr r4, _080F7600 + ldr r5, _080F7604 + 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, r0, #1 + adds r1, r7, r0 + adds r0, r6, #0 + adds r2, r5, #0 + bl CpuSet + movs r2, #0x80 + lsls r2, r2, #2 + adds r1, r7, r2 + adds r0, r6, #0 + adds r2, r5, #0 + bl CpuSet + adds r4, #0x40 + movs r0, #0xc0 + lsls r0, r0, #2 + adds r1, r7, r0 + adds r0, r4, #0 + adds r2, r5, #0 + bl CpuSet + movs r6, #0 + mov r4, sp +_080F75CA: + ldr r0, _080F7608 + ldr r0, [r0] + lsls r1, r6, #0xa + ldr r0, [r0, #0x1c] + adds r0, r0, r1 + ldm r4!, {r1} + movs r2, #0x80 + lsls r2, r2, #3 + movs r3, #1 + bl RequestDma3Copy + adds r6, #1 + cmp r6, #3 + ble _080F75CA + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F75F8: .4byte 0x0856923C +_080F75FC: .4byte 0x00000107 +_080F7600: .4byte 0x0856919C +_080F7604: .4byte 0x04000008 +_080F7608: .4byte 0x02039D00 + thumb_func_end sub_080F739C + + thumb_func_start sub_080F760C +sub_080F760C: @ 0x080F760C + push {r4, r5, r6, lr} + sub sp, #0x20 + mov r1, sp + ldr r0, _080F76D4 + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + add r5, sp, #0x18 + ldr r6, _080F76D8 + movs r4, #7 +_080F7622: + adds r0, r6, #0 + bl LoadSpriteSheet + adds r6, #8 + subs r4, #1 + cmp r4, #0 + bge _080F7622 + ldr r0, _080F76DC + bl LoadSpritePalette + movs r4, #0 + mov r6, sp +_080F763A: + mov r0, sp + movs r1, #0x88 + lsls r1, r1, #1 + movs r2, #0x90 + movs r3, #0xa + bl CreateSprite + adds r1, r5, r4 + strb r0, [r1] + ldrh r0, [r6] + adds r0, #1 + strh r0, [r6] + adds r4, #1 + cmp r4, #7 + ble _080F763A + ldr r2, _080F76E0 + ldrb r1, [r5] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r5, #1] + movs r3, #0 + strh r1, [r0, #0x2e] + ldrb r1, [r5] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r5, #2] + strh r1, [r0, #0x30] + ldrb r1, [r5] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r5, #3] + strh r1, [r0, #0x32] + ldrb r1, [r5, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r5, #5] + strh r1, [r0, #0x2e] + ldrb r1, [r5, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r5, #6] + strh r1, [r0, #0x30] + ldrb r1, [r5, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r5, #7] + strh r1, [r0, #0x32] + ldr r1, _080F76E4 + ldr r0, [r1] + ldr r2, [r0] + ldrb r0, [r5] + strb r0, [r2] + ldr r0, [r1] + ldr r0, [r0] + strb r3, [r0, #4] + ldr r0, [r1] + ldr r1, [r0] + ldrb r0, [r5, #4] + strb r0, [r1, #1] + bl sub_080F79B8 + add sp, #0x20 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080F76D4: .4byte 0x085692A4 +_080F76D8: .4byte 0x085692BC +_080F76DC: .4byte 0x085692FC +_080F76E0: .4byte 0x020205AC +_080F76E4: .4byte 0x02039D00 + thumb_func_end sub_080F760C + + thumb_func_start sub_080F76E8 +sub_080F76E8: @ 0x080F76E8 + push {lr} + bl StringLength + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x16 + movs r0, #0x78 + subs r0, r0, r1 + lsls r0, r0, #0x10 + ldr r1, _080F7704 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 +_080F7704: .4byte 0xFFF80000 + thumb_func_end sub_080F76E8 + + thumb_func_start sub_080F7708 +sub_080F7708: @ 0x080F7708 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + ldr r4, _080F7754 + ldr r4, [r4] + mov r8, r4 + ldr r4, [r4] + ldrb r5, [r4] + lsls r4, r5, #4 + adds r4, r4, r5 + lsls r4, r4, #2 + ldr r5, _080F7758 + adds r4, r4, r5 + movs r6, #0 + movs r5, #0x88 + lsls r5, r5, #1 + strh r5, [r4, #0x20] + strh r1, [r4, #0x22] + strh r6, [r4, #0x24] + strh r6, [r4, #0x26] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r0, #0x20 + strh r0, [r4, #0x36] + strh r2, [r4, #0x38] + strh r3, [r4, #0x3a] + strh r6, [r4, #0x3c] + ldr r0, _080F775C + str r0, [r4, #0x1c] + mov r0, r8 + ldr r1, [r0] + movs r0, #1 + strb r0, [r1, #4] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080F7754: .4byte 0x02039D00 +_080F7758: .4byte 0x020205AC +_080F775C: .4byte 0x080F77D5 + thumb_func_end sub_080F7708 + + thumb_func_start sub_080F7760 +sub_080F7760: @ 0x080F7760 + push {r4, r5, lr} + ldr r1, _080F77A0 + ldr r4, [r1] + ldr r1, [r4] + ldrb r2, [r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + ldr r2, _080F77A4 + adds r1, r1, r2 + ldrh r2, [r1, #0x24] + ldrh r3, [r1, #0x20] + adds r2, r2, r3 + movs r3, #0 + strh r2, [r1, #0x20] + ldrh r2, [r1, #0x26] + ldrh r5, [r1, #0x22] + adds r2, r2, r5 + strh r2, [r1, #0x22] + strh r3, [r1, #0x26] + strh r3, [r1, #0x24] + strh r0, [r1, #0x3a] + strh r3, [r1, #0x3c] + ldr r0, _080F77A8 + str r0, [r1, #0x1c] + ldr r1, [r4] + movs r0, #3 + strb r0, [r1, #4] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080F77A0: .4byte 0x02039D00 +_080F77A4: .4byte 0x020205AC +_080F77A8: .4byte 0x080F7881 + thumb_func_end sub_080F7760 + + thumb_func_start sub_080F77AC +sub_080F77AC: @ 0x080F77AC + movs r3, #0 + movs r2, #0 + movs r1, #0x88 + lsls r1, r1, #1 + strh r1, [r0, #0x20] + movs r1, #0x90 + strh r1, [r0, #0x22] + strh r2, [r0, #0x26] + strh r2, [r0, #0x24] + ldr r1, _080F77CC + str r1, [r0, #0x1c] + ldr r0, _080F77D0 + ldr r0, [r0] + ldr r0, [r0] + strb r3, [r0, #4] + bx lr + .align 2, 0 +_080F77CC: .4byte 0x08007141 +_080F77D0: .4byte 0x02039D00 + thumb_func_end sub_080F77AC + + thumb_func_start sub_080F77D4 +sub_080F77D4: @ 0x080F77D4 + push {r4, r5, r6, r7, lr} + adds r3, r0, #0 + ldrh r2, [r3, #0x3a] + ldrh r0, [r3, #0x3c] + adds r2, r2, r0 + lsls r1, r2, #0x10 + asrs r1, r1, #0x18 + ldrh r0, [r3, #0x20] + subs r0, r0, r1 + strh r0, [r3, #0x20] + movs r1, #0xff + ands r2, r1 + strh r2, [r3, #0x3c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrh r2, [r3, #0x36] + movs r4, #0x36 + ldrsh r1, [r3, r4] + cmp r0, r1 + bge _080F77FE + strh r2, [r3, #0x20] +_080F77FE: + movs r4, #0 + ldr r6, _080F7840 + movs r5, #0x40 + adds r2, r3, #0 + adds r2, #0x2e +_080F7808: + movs r7, #0 + ldrsh r0, [r2, r7] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrh r0, [r3, #0x24] + ldrh r7, [r3, #0x20] + adds r0, r0, r7 + adds r0, r0, r5 + strh r0, [r1, #0x20] + adds r5, #0x40 + adds r2, #2 + adds r4, #1 + cmp r4, #2 + ble _080F7808 + movs r0, #0x20 + ldrsh r1, [r3, r0] + movs r2, #0x36 + ldrsh r0, [r3, r2] + cmp r1, r0 + bne _080F7838 + ldr r0, _080F7844 + str r0, [r3, #0x1c] +_080F7838: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F7840: .4byte 0x020205AC +_080F7844: .4byte 0x080F7849 + thumb_func_end sub_080F77D4 + + thumb_func_start sub_080F7848 +sub_080F7848: @ 0x080F7848 + push {lr} + adds r2, r0, #0 + ldr r0, _080F7878 + ldr r0, [r0] + ldr r1, [r0] + movs r0, #2 + strb r0, [r1, #4] + ldrh r3, [r2, #0x38] + ldr r1, _080F787C + lsrs r0, r1, #0x10 + cmp r3, r0 + beq _080F7874 + subs r0, r3, #1 + strh r0, [r2, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + asrs r1, r1, #0x10 + cmp r0, r1 + bne _080F7874 + ldrh r0, [r2, #0x3a] + bl sub_080F7760 +_080F7874: + pop {r0} + bx r0 + .align 2, 0 +_080F7878: .4byte 0x02039D00 +_080F787C: .4byte 0xFFFF0000 + thumb_func_end sub_080F7848 + + thumb_func_start sub_080F7880 +sub_080F7880: @ 0x080F7880 + push {r4, r5, r6, r7, lr} + adds r3, r0, #0 + ldrh r2, [r3, #0x3a] + ldrh r0, [r3, #0x3c] + adds r2, r2, r0 + lsls r1, r2, #0x10 + asrs r1, r1, #0x18 + ldrh r0, [r3, #0x20] + subs r0, r0, r1 + strh r0, [r3, #0x20] + movs r0, #0xff + ands r2, r0 + strh r2, [r3, #0x3c] + movs r4, #0 + ldr r6, _080F78E4 + movs r5, #0x40 + adds r2, r3, #0 + adds r2, #0x2e +_080F78A4: + movs r1, #0 + ldrsh r0, [r2, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrh r0, [r3, #0x24] + ldrh r7, [r3, #0x20] + adds r0, r0, r7 + adds r0, r0, r5 + strh r0, [r1, #0x20] + adds r5, #0x40 + adds r2, #2 + adds r4, #1 + cmp r4, #2 + ble _080F78A4 + movs r1, #0x20 + ldrsh r0, [r3, r1] + movs r2, #0x24 + ldrsh r1, [r3, r2] + adds r0, r0, r1 + movs r1, #0xe0 + rsbs r1, r1, #0 + cmp r0, r1 + bge _080F78DC + adds r0, r3, #0 + bl sub_080F77AC +_080F78DC: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F78E4: .4byte 0x020205AC + thumb_func_end sub_080F7880 + + thumb_func_start sub_080F78E8 +sub_080F78E8: @ 0x080F78E8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r5, _080F79A4 + ldr r0, [r5] + ldr r0, [r0] + ldrb r1, [r0, #1] + adds r0, r4, #0 + bl sub_080F739C + adds r0, r4, #0 + bl sub_080F76E8 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, [r5] + ldr r1, [r1] + ldrb r2, [r1, #1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + ldr r3, _080F79A8 + 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, #5 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r1 + strb r0, [r5] + movs r5, #0 + adds r6, r3, #0 + mov ip, r2 + movs r3, #0x40 +_080F7934: + lsls r0, r5, #1 + adds r2, r4, #0 + adds r2, #0x2e + adds r2, r2, r0 + movs r1, #0 + ldrsh r0, [r2, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrh r0, [r4, #0x24] + ldrh r7, [r4, #0x20] + adds r0, r0, r7 + adds r0, r0, r3 + strh r0, [r1, #0x20] + movs r0, #0 + ldrsh r1, [r2, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrh r1, [r4, #0x22] + strh r1, [r0, #0x22] + movs r1, #0 + ldrsh r0, [r2, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + adds r1, #0x3e + ldrb r2, [r1] + mov r0, ip + ands r0, r2 + strb r0, [r1] + adds r3, #0x40 + adds r5, #1 + cmp r5, #2 + ble _080F7934 + ldr r1, _080F79AC + movs r0, #0xf0 + strh r0, [r1] + ldr r2, _080F79B0 + ldrh r1, [r4, #0x22] + adds r0, r1, #0 + subs r0, #0x10 + lsls r0, r0, #8 + adds r1, #0x10 + orrs r0, r1 + strh r0, [r2] + ldr r1, _080F79B4 + movs r0, #0x48 + bl SetGpuReg + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F79A4: .4byte 0x02039D00 +_080F79A8: .4byte 0x020205AC +_080F79AC: .4byte 0x02022AD8 +_080F79B0: .4byte 0x02022ADA +_080F79B4: .4byte 0x00003F3E + thumb_func_end sub_080F78E8 + + thumb_func_start sub_080F79B8 +sub_080F79B8: @ 0x080F79B8 + push {r4, r5, r6, r7, lr} + ldr r0, _080F7A28 + ldr r0, [r0] + ldr r0, [r0] + ldrb r0, [r0, #1] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r3, _080F7A2C + adds r2, r2, r3 + movs r0, #0x3e + adds r0, r0, r2 + mov ip, r0 + ldrb r0, [r0] + movs r1, #4 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldr r7, _080F7A30 + ldr r6, _080F7A34 + adds r5, r3, #0 + movs r4, #4 + adds r2, #0x2e + movs r3, #2 +_080F79E8: + movs r1, #0 + ldrsh r0, [r2, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + adds r1, #0x3e + ldrb r0, [r1] + orrs r0, r4 + strb r0, [r1] + adds r2, #2 + subs r3, #1 + cmp r3, #0 + bge _080F79E8 + movs r0, #0 + strh r0, [r7] + strh r0, [r6] + movs r0, #0x40 + movs r1, #0 + bl SetGpuReg + ldrh r1, [r6] + movs r0, #0x44 + bl SetGpuReg + ldr r1, _080F7A38 + movs r0, #0x48 + bl SetGpuReg + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F7A28: .4byte 0x02039D00 +_080F7A2C: .4byte 0x020205AC +_080F7A30: .4byte 0x02022AD8 +_080F7A34: .4byte 0x02022ADA +_080F7A38: .4byte 0x00003F3F + thumb_func_end sub_080F79B8 + + thumb_func_start sub_080F7A3C +sub_080F7A3C: @ 0x080F7A3C + push {r4, r5, r6, lr} + sub sp, #0xc + movs r5, #0 + movs r4, #1 + ldr r0, _080F7A60 + ldrb r1, [r0] + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + beq _080F7A68 + movs r5, #1 + ldr r1, _080F7A64 + movs r0, #8 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + b _080F7AA6 + .align 2, 0 +_080F7A60: .4byte 0x02039BCA +_080F7A64: .4byte 0x085693B4 +_080F7A68: + ldr r0, _080F7A7C + ldrh r2, [r0] + cmp r2, #0 + bne _080F7A84 + ldr r1, _080F7A80 + movs r0, #8 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + b _080F7AA6 + .align 2, 0 +_080F7A7C: .4byte 0x02039BCE +_080F7A80: .4byte 0x08569334 +_080F7A84: + cmp r2, #1 + bne _080F7A98 + ldr r1, _080F7A94 + movs r0, #8 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + b _080F7AA6 + .align 2, 0 +_080F7A94: .4byte 0x08569354 +_080F7A98: + cmp r2, #2 + bne _080F7AB4 + ldr r1, _080F7AB0 + movs r0, #8 + str r0, [sp] + str r2, [sp, #4] + movs r0, #2 +_080F7AA6: + movs r2, #5 + movs r3, #1 + bl CopyToBgTilemapBufferRect + b _080F7AC6 + .align 2, 0 +_080F7AB0: .4byte 0x08569374 +_080F7AB4: + ldr r1, _080F7ADC + movs r0, #8 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r2, #5 + movs r3, #1 + bl CopyToBgTilemapBufferRect +_080F7AC6: + adds r2, r5, #0 + adds r2, #0xd + movs r5, #0 + ldr r0, _080F7AE0 + ldrh r0, [r0] + cmp r0, #0 + bne _080F7AE8 + movs r6, #0 + ldr r1, _080F7AE4 + b _080F7B26 + .align 2, 0 +_080F7ADC: .4byte 0x08569394 +_080F7AE0: .4byte 0x02039BCC +_080F7AE4: .4byte 0x085693D4 +_080F7AE8: + cmp r0, #1 + bne _080F7AF8 + movs r6, #1 + ldr r1, _080F7AF4 + b _080F7B26 + .align 2, 0 +_080F7AF4: .4byte 0x085693E8 +_080F7AF8: + cmp r0, #2 + bne _080F7B1C + movs r6, #2 + subs r5, #1 + ldr r1, _080F7B18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r4, r4, #0x18 + lsrs r3, r4, #0x18 + movs r0, #5 + str r0, [sp] + str r6, [sp, #4] + movs r0, #2 + bl CopyToBgTilemapBufferRect + b _080F7B58 + .align 2, 0 +_080F7B18: .4byte 0x085693FC +_080F7B1C: + cmp r0, #3 + bne _080F7B40 + movs r6, #3 + subs r5, #1 + ldr r1, _080F7B3C +_080F7B26: + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r4, r4, #0x18 + lsrs r3, r4, #0x18 + movs r0, #5 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + bl CopyToBgTilemapBufferRect + b _080F7B58 + .align 2, 0 +_080F7B3C: .4byte 0x08569410 +_080F7B40: + movs r6, #4 + ldr r1, _080F7B94 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r4, r4, #0x18 + lsrs r3, r4, #0x18 + movs r0, #5 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + bl CopyToBgTilemapBufferRect +_080F7B58: + adds r2, r5, #0 + adds r2, #0x13 + ldr r1, _080F7B98 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsrs r3, r4, #0x18 + movs r0, #5 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + bl CopyToBgTilemapBufferRect + ldr r0, _080F7B9C + ldr r0, [r0] + ldr r1, [r0, #0x14] + movs r0, #0x20 + str r0, [sp] + movs r0, #4 + str r0, [sp, #4] + str r6, [sp, #8] + movs r0, #2 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBufferRect_ChangePalette + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080F7B94: .4byte 0x08569424 +_080F7B98: .4byte 0x08569438 +_080F7B9C: .4byte 0x02039D00 + thumb_func_end sub_080F7A3C + + thumb_func_start sub_080F7BA0 +sub_080F7BA0: @ 0x080F7BA0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + ldr r1, _080F7BEC + lsrs r0, r0, #0x17 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + lsls r4, r0, #0x10 + adds r0, r4, #0 + movs r1, #0x3f + bl __udivsi3 + adds r1, r0, #0 + ldr r0, _080F7BF0 + ands r0, r1 + cmp r0, #0 + beq _080F7BCC + movs r0, #0x80 + lsls r0, r0, #9 + adds r1, r1, r0 +_080F7BCC: + lsrs r1, r1, #0x10 + cmp r1, #0 + bne _080F7BD8 + cmp r4, #0 + beq _080F7BD8 + movs r1, #1 +_080F7BD8: + cmp r5, #0 + beq _080F7BE2 + cmp r1, #0xa + bls _080F7BE2 + movs r1, #0xa +_080F7BE2: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080F7BEC: .4byte 0x02039BA0 +_080F7BF0: .4byte 0x0000FFFF + thumb_func_end sub_080F7BA0 + + thumb_func_start sub_080F7BF4 +sub_080F7BF4: @ 0x080F7BF4 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + ldr r1, _080F7C54 + lsls r0, r5, #1 + adds r0, r0, r1 + movs r2, #0 + ldrsh r0, [r0, r2] + adds r7, r1, #0 + cmp r0, #0 + bge _080F7C10 + rsbs r0, r0, #0 +_080F7C10: + lsls r4, r0, #0x10 + adds r0, r4, #0 + movs r1, #0x50 + bl __udivsi3 + adds r2, r0, #0 + ldr r0, _080F7C58 + ands r0, r2 + cmp r0, #0 + beq _080F7C2A + movs r0, #0x80 + lsls r0, r0, #9 + adds r2, r2, r0 +_080F7C2A: + lsrs r2, r2, #0x10 + cmp r2, #0 + bne _080F7C36 + cmp r4, #0 + beq _080F7C36 + movs r2, #1 +_080F7C36: + cmp r6, #0 + beq _080F7C40 + cmp r2, #0xa + bls _080F7C40 + movs r2, #0xa +_080F7C40: + lsls r0, r5, #1 + adds r0, r0, r7 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bge _080F7C5C + rsbs r0, r2, #0 + lsls r0, r0, #0x18 + b _080F7C5E + .align 2, 0 +_080F7C54: .4byte 0x02039BB8 +_080F7C58: .4byte 0x0000FFFF +_080F7C5C: + lsls r0, r2, #0x18 +_080F7C5E: + lsrs r0, r0, #0x18 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080F7BF4 + + thumb_func_start sub_080F7C6C +sub_080F7C6C: @ 0x080F7C6C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r1, _080F7CA8 + lsls r0, r0, #2 + add r0, r8 + lsls r0, r0, #3 + adds r7, r0, r1 + ldrh r2, [r7, #0x1c] + movs r0, #0x1c + ldrsh r6, [r7, r0] + cmp r6, #0 + bne _080F7CAC + movs r1, #8 + ldrsh r0, [r7, r1] + movs r1, #3 + subs r1, r1, r0 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + strh r0, [r7, #0x1e] + adds r0, r2, #1 + strh r0, [r7, #0x1c] + b _080F7D34 + .align 2, 0 +_080F7CA8: .4byte 0x03005B60 +_080F7CAC: + cmp r6, #1 + bne _080F7D34 + ldrh r0, [r7, #0x1e] + subs r0, #1 + strh r0, [r7, #0x1e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _080F7D34 + movs r2, #8 + ldrsh r4, [r7, r2] + lsls r4, r4, #0x11 + ldr r0, _080F7D44 + adds r4, r4, r0 + lsrs r4, r4, #0x10 + movs r1, #0xa + ldrsh r0, [r7, r1] + lsls r3, r0, #1 + adds r3, r3, r0 + adds r3, #5 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r2, #2 + mov sb, r2 + str r2, [sp] + str r6, [sp, #4] + movs r5, #0x11 + str r5, [sp, #8] + str r6, [sp, #0xc] + movs r0, #2 + adds r1, r4, #0 + movs r2, #1 + bl WriteSequenceToBgTilemapBuffer + adds r4, #0x10 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + movs r1, #0xa + ldrsh r0, [r7, r1] + lsls r3, r0, #1 + adds r3, r3, r0 + adds r3, #6 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r2, sb + str r2, [sp] + str r6, [sp, #4] + str r5, [sp, #8] + str r6, [sp, #0xc] + movs r0, #2 + adds r1, r4, #0 + movs r2, #1 + bl WriteSequenceToBgTilemapBuffer + ldr r0, _080F7D48 + ldr r0, [r0] + ldr r1, [r0] + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] + mov r0, r8 + bl DestroyTask + movs r0, #0x18 + bl PlaySE +_080F7D34: + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F7D44: .4byte 0x50430000 +_080F7D48: .4byte 0x02039D00 + thumb_func_end sub_080F7C6C + + thumb_func_start sub_080F7D4C +sub_080F7D4C: @ 0x080F7D4C + push {r4, r5, r6, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r4, #0 + ldr r1, _080F7DBC + ldrb r0, [r1] + ldr r6, _080F7DC0 + cmp r0, #0 + beq _080F7D6E +_080F7D60: + adds r4, #1 + cmp r4, #3 + bgt _080F7D6E + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080F7D60 +_080F7D6E: + ldr r1, [r6] + lsls r3, r4, #1 + adds r3, r3, r4 + lsls r0, r3, #6 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r0, r2 + ldr r1, [r1, #0x14] + adds r1, r1, r0 + adds r3, #4 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #0x20 + str r0, [sp] + movs r0, #3 + str r0, [sp, #4] + movs r0, #9 + str r0, [sp, #8] + movs r0, #2 + movs r2, #0 + bl CopyToBgTilemapBufferRect_ChangePalette + ldr r1, _080F7DC4 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r4, [r0, #0x1c] + movs r1, #1 + strh r1, [r0, #0x20] + ldr r1, _080F7DC8 + str r1, [r0] + ldr r0, [r6] + ldr r0, [r0] + strb r5, [r0, #3] + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080F7DBC: .4byte 0x02039BC0 +_080F7DC0: .4byte 0x02039D00 +_080F7DC4: .4byte 0x03005B60 +_080F7DC8: .4byte 0x080F7DCD + thumb_func_end sub_080F7D4C + + thumb_func_start sub_080F7DCC +sub_080F7DCC: @ 0x080F7DCC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080F7E18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 + ldrh r0, [r4, #0x1e] + adds r0, #1 + strh r0, [r4, #0x1e] + lsls r0, r0, #0x10 + asrs r5, r0, #0x10 + cmp r5, #1 + bne _080F7E30 + movs r0, #0 + strh r0, [r4, #0x1e] + ldrh r2, [r4, #0x20] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r3, _080F7E1C + movs r0, #0x91 + movs r1, #1 + bl BlendPalette + movs r1, #0x22 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080F7E20 + ldrh r0, [r4, #0x20] + adds r0, #1 + strh r0, [r4, #0x20] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x10 + bne _080F7E30 + strh r5, [r4, #0x22] + b _080F7E30 + .align 2, 0 +_080F7E18: .4byte 0x03005B60 +_080F7E1C: .4byte 0x00006F8D +_080F7E20: + ldrh r0, [r4, #0x20] + subs r0, #1 + strh r0, [r4, #0x20] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bne _080F7E30 + strh r0, [r4, #0x22] +_080F7E30: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080F7DCC + + thumb_func_start sub_080F7E38 +sub_080F7E38: @ 0x080F7E38 + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x2e] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r0, #9 + bgt _080F7E60 + adds r0, r1, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xa + bne _080F7EA0 + ldrh r0, [r4, #0x30] + movs r1, #0 + bl PlayCry1 + movs r0, #0 + strh r0, [r4, #0x30] + b _080F7EA0 +_080F7E60: + movs r0, #0xc0 + lsls r0, r0, #3 + adds r2, r0, #0 + ldrh r1, [r4, #0x30] + adds r2, r2, r1 + lsls r1, r2, #0x10 + asrs r1, r1, #0x18 + ldrh r0, [r4, #0x20] + subs r0, r0, r1 + strh r0, [r4, #0x20] + movs r1, #0xff + ands r2, r1 + strh r2, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x77 + bgt _080F7E86 + movs r0, #0x78 + strh r0, [r4, #0x20] +_080F7E86: + movs r2, #0x20 + ldrsh r0, [r4, r2] + cmp r0, #0x78 + bne _080F7EA0 + ldr r0, _080F7EA8 + str r0, [r4, #0x1c] + movs r0, #0 + strh r0, [r4, #0x30] + ldr r0, _080F7EAC + ldr r0, [r0] + ldr r1, [r0] + movs r0, #1 + strb r0, [r1, #6] +_080F7EA0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F7EA8: .4byte 0x08007141 +_080F7EAC: .4byte 0x02039D00 + thumb_func_end sub_080F7E38 + + thumb_func_start sub_080F7EB0 +sub_080F7EB0: @ 0x080F7EB0 + push {lr} + adds r3, r0, #0 + movs r0, #0xc0 + lsls r0, r0, #3 + adds r2, r0, #0 + ldrh r0, [r3, #0x30] + adds r2, r2, r0 + lsls r1, r2, #0x10 + asrs r1, r1, #0x18 + ldrh r0, [r3, #0x20] + subs r0, r0, r1 + strh r0, [r3, #0x20] + movs r1, #0xff + ands r2, r1 + strh r2, [r3, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x20 + rsbs r1, r1, #0 + cmp r0, r1 + bge _080F7EF4 + ldr r0, _080F7EF8 + str r0, [r3, #0x1c] + adds r2, r3, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080F7EFC + ldr r0, [r0] + ldr r1, [r0] + movs r0, #2 + strb r0, [r1, #6] +_080F7EF4: + pop {r0} + bx r0 + .align 2, 0 +_080F7EF8: .4byte 0x08007141 +_080F7EFC: .4byte 0x02039D00 + thumb_func_end sub_080F7EB0 + + thumb_func_start sub_080F7F00 +sub_080F7F00: @ 0x080F7F00 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r1, _080F7FE0 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r1, r0, r1 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #5 + bne _080F7FC2 + movs r0, #0 + strh r0, [r1, #8] + ldr r0, _080F7FE4 + mov r8, r0 + ldr r0, [r0] + ldr r0, [r0] + ldrb r0, [r0, #7] + cmp r0, #0x27 + bhi _080F7FC2 + ldr r4, _080F7FE8 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xf0 + bl __umodsi3 + adds r1, r0, #0 + subs r1, #0x14 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r0, r4, #0 + movs r2, #0x2c + movs r3, #5 + bl CreateSprite + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl Random + ldr r1, _080F7FEC + lsls r5, r4, #4 + adds r5, r5, r4 + lsls r5, r5, #2 + adds r5, r5, r1 + lsls r0, r0, #0x17 + lsrs r0, r0, #0x17 + strh r0, [r5, #0x2e] + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x18 + bl __umodsi3 + adds r0, #0x10 + strh r0, [r5, #0x30] + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xff + ands r0, r1 + adds r0, #0x30 + strh r0, [r5, #0x32] + bl Random + ldrh r6, [r5, #4] + lsls r4, r6, #0x16 + lsrs r4, r4, #0x16 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x11 + bl __umodsi3 + adds r4, r4, r0 + ldr r1, _080F7FF0 + adds r0, r1, #0 + ands r4, r0 + ldr r0, _080F7FF4 + ands r0, r6 + orrs r0, r4 + strh r0, [r5, #4] + mov r1, r8 + ldr r0, [r1] + ldr r1, [r0] + ldrb r0, [r1, #7] + adds r0, #1 + strb r0, [r1, #7] +_080F7FC2: + ldr r0, _080F7FE4 + ldr r0, [r0] + ldr r0, [r0] + ldrb r0, [r0, #9] + cmp r0, #0 + beq _080F7FD4 + adds r0, r7, #0 + bl DestroyTask +_080F7FD4: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F7FE0: .4byte 0x03005B60 +_080F7FE4: .4byte 0x02039D00 +_080F7FE8: .4byte 0x0856930C +_080F7FEC: .4byte 0x020205AC +_080F7FF0: .4byte 0x000003FF +_080F7FF4: .4byte 0xFFFFFC00 + thumb_func_end sub_080F7F00 + + thumb_func_start sub_080F7FF8 +sub_080F7FF8: @ 0x080F7FF8 + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + ldrh r1, [r4, #0x34] + adds r0, r0, r1 + strh r0, [r4, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + movs r2, #0x30 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, #0x24] + ldrh r1, [r4, #0x32] + ldrh r0, [r4, #0x36] + adds r1, r1, r0 + lsls r0, r1, #0x10 + asrs r0, r0, #0x18 + ldrh r2, [r4, #0x20] + adds r0, r0, r2 + strh r0, [r4, #0x20] + movs r0, #0xff + ands r1, r0 + strh r1, [r4, #0x36] + ldrh r0, [r4, #0x22] + adds r0, #1 + strh r0, [r4, #0x22] + ldr r5, _080F806C + ldr r0, [r5] + ldr r0, [r0] + ldrb r0, [r0, #9] + cmp r0, #0 + beq _080F8046 + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] +_080F8046: + movs r1, #0x20 + ldrsh r0, [r4, r1] + cmp r0, #0xf8 + bgt _080F8056 + movs r2, #0x22 + ldrsh r0, [r4, r2] + cmp r0, #0x74 + ble _080F8066 +_080F8056: + adds r0, r4, #0 + bl DestroySprite + ldr r0, [r5] + ldr r1, [r0] + ldrb r0, [r1, #7] + subs r0, #1 + strb r0, [r1, #7] +_080F8066: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080F806C: .4byte 0x02039D00 + thumb_func_end sub_080F7FF8 + + thumb_func_start sub_080F8070 +sub_080F8070: @ 0x080F8070 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _080F80A8 + movs r1, #8 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080F80AC + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #8] + strh r5, [r1, #0xa] + ldr r0, _080F80B0 + lsls r4, r4, #6 + adds r4, r4, r0 + ldrh r0, [r4] + strh r0, [r1, #0xc] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080F80A8: .4byte 0x080F80B5 +_080F80AC: .4byte 0x03005B60 +_080F80B0: .4byte 0x02039AA0 + thumb_func_end sub_080F8070 + + thumb_func_start sub_080F80B4 +sub_080F80B4: @ 0x080F80B4 + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080F8108 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 + ldrb r5, [r4, #8] + ldrh r0, [r4, #0x1c] + adds r1, r0, #1 + strh r1, [r4, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0xa + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _080F80FE + movs r0, #0 + strh r0, [r4, #0x1c] + ldrh r0, [r4, #0xc] + ldrb r2, [r4, #0x1e] + ldr r1, _080F810C + lsls r3, r5, #6 + adds r1, #0x38 + adds r3, r3, r1 + ldr r1, [r3] + str r1, [sp] + adds r1, r5, #0 + movs r3, #0 + bl sub_080F71DC + ldrh r0, [r4, #0x1e] + movs r1, #1 + eors r0, r1 + strh r0, [r4, #0x1e] +_080F80FE: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080F8108: .4byte 0x03005B60 +_080F810C: .4byte 0x02039AA0 + thumb_func_end sub_080F80B4 + + thumb_func_start sub_080F8110 +sub_080F8110: @ 0x080F8110 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r0, _080F82D4 + ldrh r2, [r0] + adds r4, r0, #0 + adds r3, r4, #2 + movs r0, #2 + mov r8, r0 +_080F8128: + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + movs r5, #0 + ldrsh r1, [r3, r5] + cmp r0, r1 + bge _080F8136 + ldrh r2, [r3] +_080F8136: + adds r3, #2 + movs r0, #1 + rsbs r0, r0, #0 + add r8, r0 + mov r1, r8 + cmp r1, #0 + bge _080F8128 + lsls r0, r2, #0x10 + str r0, [sp] + cmp r0, #0 + bge _080F8174 + ldrh r2, [r4] + adds r3, r4, #2 + movs r4, #2 + mov r8, r4 +_080F8154: + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + movs r5, #0 + ldrsh r1, [r3, r5] + cmp r0, r1 + ble _080F8162 + ldrh r2, [r3] +_080F8162: + adds r3, #2 + movs r0, #1 + rsbs r0, r0, #0 + add r8, r0 + lsls r1, r2, #0x10 + str r1, [sp] + mov r4, r8 + cmp r4, #0 + bge _080F8154 +_080F8174: + movs r5, #0 + mov r8, r5 + mov sl, r5 +_080F817A: + ldr r0, _080F82D8 + mov r1, r8 + lsls r7, r1, #1 + adds r0, r7, r0 + movs r2, #0 + ldrsh r1, [r0, r2] + lsls r0, r1, #5 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + ldr r4, [sp] + asrs r5, r4, #0x10 + adds r1, r5, #0 + cmp r5, #0 + bge _080F819C + rsbs r1, r5, #0 +_080F819C: + bl __divsi3 + adds r4, r0, #0 + movs r1, #0xa + bl __modsi3 + cmp r0, #4 + ble _080F81AE + adds r4, #0xa +_080F81AE: + ldr r0, _080F82DC + mov sb, r0 + ldr r0, [r0] + ldr r0, [r0, #4] + mov r1, sl + adds r6, r1, r0 + adds r0, r4, #0 + movs r1, #0xa + bl __divsi3 + str r0, [r6] + ldr r0, _080F82E0 + adds r7, r7, r0 + movs r2, #0 + ldrsh r1, [r7, r2] + cmp r1, #0 + bge _080F81D2 + rsbs r1, r1, #0 +_080F81D2: + lsls r0, r1, #5 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r1, r5, #0 + cmp r1, #0 + bge _080F81E4 + rsbs r1, r1, #0 +_080F81E4: + bl __divsi3 + adds r4, r0, #0 + movs r1, #0xa + bl __modsi3 + cmp r0, #4 + ble _080F81F6 + adds r4, #0xa +_080F81F6: + adds r0, r4, #0 + movs r1, #0xa + bl __divsi3 + str r0, [r6, #4] + movs r4, #0 + ldrsh r0, [r7, r4] + cmp r0, #0 + bge _080F820C + movs r0, #1 + strb r0, [r6, #0x10] +_080F820C: + mov r5, sb + ldr r0, [r5] + ldr r0, [r0, #4] + mov r1, sl + adds r4, r1, r0 + ldr r1, [r4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + subs r0, r0, r1 + lsls r0, r0, #0xb + movs r1, #0x64 + bl __divsi3 + adds r1, r0, #0 + movs r5, #0xff + ands r0, r5 + cmp r0, #0x7f + bls _080F8238 + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r1, r2 +_080F8238: + lsrs r0, r1, #8 + str r0, [r4, #8] + ldr r1, [r4, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + subs r0, r0, r1 + lsls r0, r0, #0xb + movs r1, #0x64 + bl __divsi3 + adds r1, r0, #0 + ands r0, r5 + cmp r0, #0x7f + bls _080F825C + movs r5, #0x80 + lsls r5, r5, #1 + adds r1, r1, r5 +_080F825C: + lsrs r0, r1, #8 + str r0, [r4, #0xc] + mov r0, r8 + lsls r4, r0, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #1 + bl sub_080F7BA0 + mov r2, sb + ldr r1, [r2] + ldr r1, [r1, #4] + add r1, sl + strb r0, [r1, #0x11] + adds r0, r4, #0 + movs r1, #1 + bl sub_080F7BF4 + mov r4, sb + ldr r1, [r4] + ldr r1, [r1, #4] + add r1, sl + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bge _080F8292 + rsbs r0, r0, #0 +_080F8292: + strb r0, [r1, #0x12] + ldr r0, _080F82E4 + add r0, r8 + ldrb r0, [r0] + cmp r0, #0 + beq _080F82F0 + mov r5, sb + ldr r0, [r5] + ldr r0, [r0, #4] + mov r2, sl + adds r1, r2, r0 + ldr r5, [r1, #8] + ldrh r3, [r1, #8] + ldr r4, [r1, #0xc] + ldrh r2, [r1, #0xc] + ldrb r0, [r1, #0x10] + cmp r0, #0 + beq _080F82BC + lsls r0, r2, #0x10 + rsbs r0, r0, #0 + lsrs r2, r0, #0x10 +_080F82BC: + lsls r0, r3, #0x10 + asrs r3, r0, #0x10 + lsls r0, r2, #0x10 + asrs r2, r0, #0x10 + adds r0, r3, r2 + cmp r0, #0x58 + bne _080F82F0 + cmp r2, #0 + ble _080F82E8 + subs r0, r4, #1 + str r0, [r1, #0xc] + b _080F82F0 + .align 2, 0 +_080F82D4: .4byte 0x02039BA8 +_080F82D8: .4byte 0x02039BA0 +_080F82DC: .4byte 0x02039D00 +_080F82E0: .4byte 0x02039BB8 +_080F82E4: .4byte 0x02039BC0 +_080F82E8: + cmp r3, #0 + ble _080F82F0 + subs r0, r5, #1 + str r0, [r1, #8] +_080F82F0: + movs r4, #0x14 + add sl, r4 + movs r5, #1 + add r8, r5 + mov r0, r8 + cmp r0, #3 + bgt _080F8300 + b _080F817A +_080F8300: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_080F8110 + + thumb_func_start sub_080F8310 +sub_080F8310: @ 0x080F8310 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + movs r1, #0 + str r1, [sp, #8] + movs r3, #0 + str r3, [sp, #0xc] + cmp r0, #0 + bne _080F83EC + mov sb, r3 + ldr r4, _080F83D4 + mov sl, r4 + movs r7, #0xa0 + lsls r7, r7, #0x13 + movs r6, #0 +_080F833C: + mov r1, sl + ldr r0, [r1] + ldr r0, [r0, #4] + adds r0, r6, r0 + ldrb r2, [r0, #0x11] + cmp r8, r2 + bhs _080F83BE + adds r2, #0x13 + mov r3, r8 + subs r2, r2, r3 + subs r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsrs r3, r7, #0x18 + movs r0, #1 + str r0, [sp] + str r0, [sp, #4] + ldr r1, _080F83D8 + bl FillBgTilemapBufferRect_Palette0 + ldr r0, _080F83DC + movs r1, #0xa + bl CreateTask + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + mov r0, sl + ldr r4, [r0] + ldr r1, [r4, #4] + adds r1, r6, r1 + ldr r0, [r1, #8] + lsls r0, r0, #0x10 + ldrb r1, [r1, #0x11] + bl __udivsi3 + mov r1, r8 + adds r1, #1 + adds r3, r0, #0 + muls r3, r1, r3 + ldr r0, _080F83E0 + ands r0, r3 + ldr r1, _080F83E4 + cmp r0, r1 + bls _080F839A + movs r1, #0x80 + lsls r1, r1, #9 + adds r3, r3, r1 +_080F839A: + ldr r1, _080F83E8 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + mov r1, sb + strh r1, [r0, #8] + lsrs r1, r3, #0x10 + strh r1, [r0, #0xa] + ldr r1, [r4] + ldrb r0, [r1, #0x14] + adds r0, #1 + strb r0, [r1, #0x14] + ldr r0, [sp, #8] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #8] +_080F83BE: + movs r3, #0xc0 + lsls r3, r3, #0x12 + adds r7, r7, r3 + adds r6, #0x14 + movs r4, #1 + add sb, r4 + mov r0, sb + cmp r0, #3 + ble _080F833C + b _080F850E + .align 2, 0 +_080F83D4: .4byte 0x02039D00 +_080F83D8: .4byte 0x000060B3 +_080F83DC: .4byte 0x080F8539 +_080F83E0: .4byte 0x0000FFFF +_080F83E4: .4byte 0x00007FFF +_080F83E8: .4byte 0x03005B60 +_080F83EC: + movs r1, #0 + mov sb, r1 + mov sl, r1 + movs r3, #0xc0 + lsls r3, r3, #0x13 + str r3, [sp, #0x10] +_080F83F8: + ldr r4, _080F8494 + ldr r0, [r4] + ldr r0, [r0, #4] + add r0, sl + ldrb r2, [r0, #0x12] + ldrb r0, [r0, #0x10] + ldr r1, _080F8498 + cmp r0, #0 + beq _080F840C + adds r1, #2 +_080F840C: + lsls r0, r2, #0x18 + asrs r0, r0, #0x18 + cmp r8, r0 + bge _080F84F4 + mov r3, r8 + lsls r2, r3, #0x18 + asrs r2, r2, #0x18 + subs r2, #0x13 + subs r2, r0, r2 + subs r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r4, [sp, #0x10] + lsrs r3, r4, #0x18 + movs r7, #1 + str r7, [sp] + str r7, [sp, #4] + movs r0, #1 + bl FillBgTilemapBufferRect_Palette0 + ldr r0, _080F849C + movs r1, #0xa + bl CreateTask + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _080F8494 + ldr r6, [r0] + ldr r1, [r6, #4] + add r1, sl + ldr r0, [r1, #0xc] + lsls r0, r0, #0x10 + ldrb r1, [r1, #0x12] + bl __udivsi3 + mov r1, r8 + adds r1, #1 + adds r3, r0, #0 + muls r3, r1, r3 + ldr r0, _080F84A0 + ands r0, r3 + ldr r1, _080F84A4 + cmp r0, r1 + bls _080F846A + movs r1, #0x80 + lsls r1, r1, #9 + adds r3, r3, r1 +_080F846A: + ldr r1, _080F84A8 + lsls r2, r5, #2 + adds r0, r2, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + mov r0, sb + strh r0, [r4, #8] + ldr r0, [r6, #4] + add r0, sl + ldrb r0, [r0, #0x10] + adds r6, r1, #0 + cmp r0, #0 + beq _080F84AC + strh r7, [r4, #0xc] + ldr r0, [sp, #0xc] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0xc] + b _080F84B6 + .align 2, 0 +_080F8494: .4byte 0x02039D00 +_080F8498: .4byte 0x000060A3 +_080F849C: .4byte 0x080F8539 +_080F84A0: .4byte 0x0000FFFF +_080F84A4: .4byte 0x00007FFF +_080F84A8: .4byte 0x03005B60 +_080F84AC: + ldr r0, [sp, #8] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #8] +_080F84B6: + ldr r1, _080F84D8 + ldr r0, [r1] + ldr r0, [r0, #4] + mov r4, sl + adds r1, r4, r0 + ldrb r0, [r1, #0x10] + ldr r4, _080F84D8 + cmp r0, #0 + beq _080F84DC + adds r0, r2, r5 + lsls r0, r0, #3 + adds r0, r0, r6 + lsrs r2, r3, #0x10 + ldr r1, [r1, #8] + subs r1, r1, r2 + b _080F84E8 + .align 2, 0 +_080F84D8: .4byte 0x02039D00 +_080F84DC: + adds r0, r2, r5 + lsls r0, r0, #3 + adds r0, r0, r6 + lsrs r2, r3, #0x10 + ldr r1, [r1, #8] + adds r1, r1, r2 +_080F84E8: + strh r1, [r0, #0xa] + ldr r0, [r4] + ldr r1, [r0] + ldrb r0, [r1, #0x14] + adds r0, #1 + strb r0, [r1, #0x14] +_080F84F4: + movs r0, #0x14 + add sl, r0 + ldr r1, [sp, #0x10] + movs r3, #0xc0 + lsls r3, r3, #0x12 + adds r1, r1, r3 + str r1, [sp, #0x10] + movs r4, #1 + add sb, r4 + mov r0, sb + cmp r0, #3 + bgt _080F850E + b _080F83F8 +_080F850E: + ldr r1, [sp, #0xc] + cmp r1, #0 + beq _080F851A + movs r0, #0x16 + bl PlaySE +_080F851A: + ldr r3, [sp, #8] + cmp r3, #0 + beq _080F8526 + movs r0, #0x15 + bl PlaySE +_080F8526: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080F8310 + + thumb_func_start sub_080F8538 +sub_080F8538: @ 0x080F8538 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r4, #0 + mov sb, r4 + ldr r1, _080F8580 + lsls r0, r0, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r6, [r0, #8] + ldrh r7, [r0, #0xa] + ldrh r1, [r0, #0xc] + mov ip, r1 + movs r2, #0xc + ldrsh r0, [r0, r2] + cmp r0, #0 + beq _080F8588 + ldr r2, _080F8584 + ldr r0, [r2] + ldr r0, [r0] + lsls r1, r6, #1 + adds r0, #0xc + adds r0, r0, r1 + movs r3, #0 + ldrsh r0, [r0, r3] + adds r5, r1, #0 + cmp r0, #0 + bgt _080F85A0 + b _080F859E + .align 2, 0 +_080F8580: .4byte 0x03005B60 +_080F8584: .4byte 0x02039D00 +_080F8588: + ldr r2, _080F85C8 + ldr r0, [r2] + ldr r0, [r0] + lsls r1, r6, #1 + adds r0, #0xc + adds r0, r0, r1 + movs r3, #0 + ldrsh r0, [r0, r3] + adds r5, r1, #0 + cmp r0, #0x57 + ble _080F85A0 +_080F859E: + movs r4, #1 +_080F85A0: + ldr r0, [r2] + ldr r0, [r0] + adds r0, #0xc + adds r2, r0, r5 + ldrh r3, [r2] + movs r0, #0 + ldrsh r1, [r2, r0] + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + cmp r1, r0 + bne _080F85BA + movs r1, #1 + mov sb, r1 +_080F85BA: + mov r0, sb + cmp r0, #0 + bne _080F85DA + cmp r4, #0 + beq _080F85CC + strh r7, [r2] + b _080F85DA + .align 2, 0 +_080F85C8: .4byte 0x02039D00 +_080F85CC: + mov r1, ip + cmp r1, #0 + beq _080F85D6 + subs r0, r3, #1 + b _080F85D8 +_080F85D6: + adds r0, r3, #1 +_080F85D8: + strh r0, [r2] +_080F85DA: + cmp r4, #0 + bne _080F8654 + mov r2, sb + cmp r2, #0 + bne _080F865A + movs r2, #0 +_080F85E6: + ldr r0, _080F8604 + ldr r0, [r0] + ldr r0, [r0] + adds r0, #0xc + adds r0, r0, r5 + movs r1, #0 + ldrsh r3, [r0, r1] + adds r0, r2, #1 + lsls r1, r0, #3 + adds r4, r0, #0 + cmp r3, r1 + blt _080F8608 + movs r0, #8 + b _080F8624 + .align 2, 0 +_080F8604: .4byte 0x02039D00 +_080F8608: + lsls r0, r2, #3 + cmp r3, r0 + blt _080F8622 + adds r0, r3, #0 + cmp r3, #0 + bge _080F8616 + adds r0, r3, #7 +_080F8616: + asrs r0, r0, #3 + lsls r0, r0, #3 + subs r0, r3, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _080F8624 +_080F8622: + movs r0, #0 +_080F8624: + cmp r0, #3 + bhi _080F8630 + ldr r3, _080F862C + b _080F8632 + .align 2, 0 +_080F862C: .4byte 0x0000504C +_080F8630: + ldr r3, _080F867C +_080F8632: + adds r1, r0, r3 + adds r2, #7 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r3, r5, r6 + adds r3, #6 + lsls r3, r3, #0x18 + movs r0, #1 + str r0, [sp] + str r0, [sp, #4] + movs r0, #2 + lsrs r3, r3, #0x18 + bl FillBgTilemapBufferRect_Palette0 + adds r2, r4, #0 + cmp r2, #0xa + ble _080F85E6 +_080F8654: + mov r0, sb + cmp r0, #0 + beq _080F866C +_080F865A: + ldr r0, _080F8680 + ldr r0, [r0] + ldr r1, [r0] + ldrb r0, [r1, #0x14] + subs r0, #1 + strb r0, [r1, #0x14] + mov r0, r8 + bl DestroyTask +_080F866C: + add sp, #8 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F867C: .4byte 0x00005057 +_080F8680: .4byte 0x02039D00 + thumb_func_end sub_080F8538 + + thumb_func_start sub_080F8684 +sub_080F8684: @ 0x080F8684 + push {r4, r5, lr} + ldr r4, _080F86F0 + movs r0, #0x20 + bl AllocZeroed + str r0, [r4] + movs r0, #0x18 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1] + movs r0, #0x50 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1, #4] + movs r5, #0x80 + lsls r5, r5, #4 + adds r0, r5, #0 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1, #8] + adds r0, r5, #0 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1, #0xc] + adds r0, r5, #0 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1, #0x10] + adds r0, r5, #0 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1, #0x14] + adds r0, r5, #0 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1, #0x18] + movs r0, #0x80 + lsls r0, r0, #5 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1, #0x1c] + bl AllocateMonSpritesGfx + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080F86F0: .4byte 0x02039D00 + thumb_func_end sub_080F8684 + + thumb_func_start sub_080F86F4 +sub_080F86F4: @ 0x080F86F4 + push {r4, r5, lr} + ldr r5, _080F875C + ldr r0, [r5] + ldr r0, [r0] + bl Free + ldr r0, [r5] + movs r4, #0 + str r4, [r0] + ldr r0, [r0, #4] + bl Free + ldr r0, [r5] + str r4, [r0, #4] + ldr r0, [r0, #8] + bl Free + ldr r0, [r5] + str r4, [r0, #8] + ldr r0, [r0, #0xc] + bl Free + ldr r0, [r5] + str r4, [r0, #0xc] + ldr r0, [r0, #0x10] + bl Free + ldr r0, [r5] + str r4, [r0, #0x10] + ldr r0, [r0, #0x14] + bl Free + ldr r0, [r5] + str r4, [r0, #0x14] + ldr r0, [r0, #0x18] + bl Free + ldr r0, [r5] + str r4, [r0, #0x18] + ldr r0, [r0, #0x1c] + bl Free + ldr r0, [r5] + str r4, [r0, #0x1c] + bl Free + str r4, [r5] + bl FreeMonSpritesGfx + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080F875C: .4byte 0x02039D00 + thumb_func_end sub_080F86F4 + + thumb_func_start sub_080F8760 +sub_080F8760: @ 0x080F8760 + push {r4, lr} + sub sp, #0x10 + adds r4, r0, #0 + str r1, [sp] + mov r0, sp + movs r2, #0 + strb r4, [r0, #4] + mov r1, sp + movs r0, #1 + strb r0, [r1, #5] + mov r0, sp + strb r2, [r0, #6] + movs r1, #2 + strb r1, [r0, #7] + strb r2, [r0, #8] + strb r1, [r0, #9] + strb r2, [r0, #0xa] + strb r2, [r0, #0xb] + mov r3, sp + ldrb r2, [r3, #0xc] + subs r1, #0x12 + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3, #0xc] + mov r2, sp + movs r0, #0x10 + strb r0, [r2, #0xc] + ldrb r0, [r2, #0xd] + ands r1, r0 + strb r1, [r2, #0xd] + mov r1, sp + movs r0, #0x80 + strb r0, [r1, #0xd] + mov r0, sp + movs r1, #0 + movs r2, #0 + bl AddTextPrinter + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl PutWindowTilemap + add sp, #0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080F8760 + + thumb_func_start sub_080F87C0 +sub_080F87C0: @ 0x080F87C0 + push {r4, r5, lr} + ldr r0, _080F87F8 + ldrb r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080F87FC + adds r0, r0, r1 + bl sub_080DA58C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + cmp r5, #0 + beq _080F87EE + ldr r4, _080F8800 + ldrb r0, [r4] + ldr r1, _080F8804 + ldrb r1, [r1] + bl sub_080DA330 + ldrb r0, [r4] + bl sub_080DA800 +_080F87EE: + ldr r0, _080F8808 + strh r5, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080F87F8: .4byte 0x02039BC4 +_080F87FC: .4byte 0x02024190 +_080F8800: .4byte 0x02039BCC +_080F8804: .4byte 0x02039BCE +_080F8808: .4byte 0x02037290 + thumb_func_end sub_080F87C0 + + thumb_func_start sub_080F880C +sub_080F880C: @ 0x080F880C + push {r4, lr} + movs r4, #0 + ldr r0, _080F8830 + ldrb r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _080F8834 + adds r2, r1, r0 + ldr r0, _080F8838 + ldrh r0, [r0] + cmp r0, #4 + bhi _080F887E + lsls r0, r0, #2 + ldr r1, _080F883C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F8830: .4byte 0x02039BC4 +_080F8834: .4byte 0x02024190 +_080F8838: .4byte 0x02039BCC +_080F883C: .4byte 0x080F8840 +_080F8840: @ jump table + .4byte _080F8854 @ case 0 + .4byte _080F885A @ case 1 + .4byte _080F8860 @ case 2 + .4byte _080F8866 @ case 3 + .4byte _080F886C @ case 4 +_080F8854: + adds r0, r2, #0 + movs r1, #0x32 + b _080F8870 +_080F885A: + adds r0, r2, #0 + movs r1, #0x33 + b _080F8870 +_080F8860: + adds r0, r2, #0 + movs r1, #0x34 + b _080F8870 +_080F8866: + adds r0, r2, #0 + movs r1, #0x35 + b _080F8870 +_080F886C: + adds r0, r2, #0 + movs r1, #0x36 +_080F8870: + bl GetMonData + ldr r1, _080F8888 + ldrh r1, [r1] + cmp r0, r1 + bls _080F887E + movs r4, #1 +_080F887E: + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F8888: .4byte 0x02039BCE + thumb_func_end sub_080F880C + + thumb_func_start sub_080F888C +sub_080F888C: @ 0x080F888C + push {r4, r5, r6, r7, lr} + sub sp, #4 + ldr r1, _080F88B4 + ldr r0, _080F88B8 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _080F88A0 + b _080F8AE0 +_080F88A0: + ldr r0, _080F88BC + ldrh r0, [r0] + cmp r0, #4 + bls _080F88AA + b _080F8AE0 +_080F88AA: + lsls r0, r0, #2 + ldr r1, _080F88C0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F88B4: .4byte 0x02039BC0 +_080F88B8: .4byte 0x02039BC5 +_080F88BC: .4byte 0x02039BCC +_080F88C0: .4byte 0x080F88C4 +_080F88C4: @ jump table + .4byte _080F88D8 @ case 0 + .4byte _080F8948 @ case 1 + .4byte _080F89B4 @ case 2 + .4byte _080F8A20 @ case 3 + .4byte _080F8A88 @ case 4 +_080F88D8: + ldr r6, _080F893C + ldrb r0, [r6] + movs r5, #0x64 + muls r0, r5, r0 + ldr r4, _080F8940 + adds r0, r0, r4 + movs r1, #0x32 + bl GetMonData + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + mov r0, sp + strb r1, [r0] + ldr r0, _080F8944 + ldrh r0, [r0] + cmp r1, r0 + bls _080F88FC + b _080F8AE0 +_080F88FC: + adds r0, r1, #0 + cmp r0, #3 + bls _080F8904 + b _080F8AE0 +_080F8904: + adds r1, r0, #1 + mov r0, sp + strb r1, [r0] + ldrb r0, [r6] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #0x32 + mov r2, sp + bl SetMonData + ldrb r0, [r6] + muls r0, r5, r0 + adds r0, r0, r4 + bl GetRibbonCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _080F892C + b _080F8AE0 +_080F892C: + ldrb r0, [r6] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #0x32 + bl sub_080EEFFC + b _080F8AE0 + .align 2, 0 +_080F893C: .4byte 0x02039BC4 +_080F8940: .4byte 0x02024190 +_080F8944: .4byte 0x02039BCE +_080F8948: + mov r4, sp + ldr r7, _080F89A8 + ldrb r0, [r7] + movs r6, #0x64 + muls r0, r6, r0 + ldr r5, _080F89AC + adds r0, r0, r5 + movs r1, #0x33 + bl GetMonData + strb r0, [r4] + mov r0, sp + ldrb r2, [r0] + ldr r0, _080F89B0 + ldrh r0, [r0] + cmp r2, r0 + bls _080F896C + b _080F8AE0 +_080F896C: + cmp r2, #3 + bls _080F8972 + b _080F8AE0 +_080F8972: + mov r1, sp + adds r0, r2, #1 + strb r0, [r1] + ldrb r0, [r7] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #0x33 + mov r2, sp + bl SetMonData + ldrb r0, [r7] + muls r0, r6, r0 + adds r0, r0, r5 + bl GetRibbonCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _080F899A + b _080F8AE0 +_080F899A: + ldrb r0, [r7] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #0x33 + bl sub_080EEFFC + b _080F8AE0 + .align 2, 0 +_080F89A8: .4byte 0x02039BC4 +_080F89AC: .4byte 0x02024190 +_080F89B0: .4byte 0x02039BCE +_080F89B4: + mov r4, sp + ldr r7, _080F8A14 + ldrb r0, [r7] + movs r6, #0x64 + muls r0, r6, r0 + ldr r5, _080F8A18 + adds r0, r0, r5 + movs r1, #0x34 + bl GetMonData + strb r0, [r4] + mov r0, sp + ldrb r2, [r0] + ldr r0, _080F8A1C + ldrh r0, [r0] + cmp r2, r0 + bls _080F89D8 + b _080F8AE0 +_080F89D8: + cmp r2, #3 + bls _080F89DE + b _080F8AE0 +_080F89DE: + mov r1, sp + adds r0, r2, #1 + strb r0, [r1] + ldrb r0, [r7] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #0x34 + mov r2, sp + bl SetMonData + ldrb r0, [r7] + muls r0, r6, r0 + adds r0, r0, r5 + bl GetRibbonCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bls _080F8AE0 + ldrb r0, [r7] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #0x34 + bl sub_080EEFFC + b _080F8AE0 + .align 2, 0 +_080F8A14: .4byte 0x02039BC4 +_080F8A18: .4byte 0x02024190 +_080F8A1C: .4byte 0x02039BCE +_080F8A20: + mov r4, sp + ldr r7, _080F8A7C + ldrb r0, [r7] + movs r6, #0x64 + muls r0, r6, r0 + ldr r5, _080F8A80 + adds r0, r0, r5 + movs r1, #0x35 + bl GetMonData + strb r0, [r4] + mov r0, sp + ldrb r2, [r0] + ldr r0, _080F8A84 + ldrh r0, [r0] + cmp r2, r0 + bhi _080F8AE0 + cmp r2, #3 + bhi _080F8AE0 + mov r1, sp + adds r0, r2, #1 + strb r0, [r1] + ldrb r0, [r7] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #0x35 + mov r2, sp + bl SetMonData + ldrb r0, [r7] + muls r0, r6, r0 + adds r0, r0, r5 + bl GetRibbonCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bls _080F8AE0 + ldrb r0, [r7] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #0x35 + bl sub_080EEFFC + b _080F8AE0 + .align 2, 0 +_080F8A7C: .4byte 0x02039BC4 +_080F8A80: .4byte 0x02024190 +_080F8A84: .4byte 0x02039BCE +_080F8A88: + mov r4, sp + ldr r7, _080F8AE8 + ldrb r0, [r7] + movs r6, #0x64 + muls r0, r6, r0 + ldr r5, _080F8AEC + adds r0, r0, r5 + movs r1, #0x36 + bl GetMonData + strb r0, [r4] + mov r0, sp + ldrb r2, [r0] + ldr r0, _080F8AF0 + ldrh r0, [r0] + cmp r2, r0 + bhi _080F8AE0 + cmp r2, #3 + bhi _080F8AE0 + mov r1, sp + adds r0, r2, #1 + strb r0, [r1] + ldrb r0, [r7] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #0x36 + mov r2, sp + bl SetMonData + ldrb r0, [r7] + muls r0, r6, r0 + adds r0, r0, r5 + bl GetRibbonCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bls _080F8AE0 + ldrb r0, [r7] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #0x36 + bl sub_080EEFFC +_080F8AE0: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F8AE8: .4byte 0x02039BC4 +_080F8AEC: .4byte 0x02024190 +_080F8AF0: .4byte 0x02039BCE + thumb_func_end sub_080F888C + + thumb_func_start sub_080F8AF4 +sub_080F8AF4: @ 0x080F8AF4 + push {lr} + ldr r0, _080F8B0C + ldr r1, _080F8B10 + ldrh r1, [r1] + lsls r1, r1, #6 + ldr r2, _080F8B14 + adds r1, r1, r2 + bl StringCopy + pop {r0} + bx r0 + .align 2, 0 +_080F8B0C: .4byte 0x02021C40 +_080F8B10: .4byte 0x02037284 +_080F8B14: .4byte 0x02039AAD + thumb_func_end sub_080F8AF4 + + thumb_func_start sub_080F8B18 +sub_080F8B18: @ 0x080F8B18 + push {lr} + ldr r0, _080F8B30 + ldr r1, _080F8B34 + ldrh r1, [r1] + lsls r1, r1, #6 + ldr r2, _080F8B38 + adds r1, r1, r2 + bl StringCopy + pop {r0} + bx r0 + .align 2, 0 +_080F8B30: .4byte 0x02021C68 +_080F8B34: .4byte 0x02037284 +_080F8B38: .4byte 0x02039AA2 + thumb_func_end sub_080F8B18 + + thumb_func_start sub_080F8B3C +sub_080F8B3C: @ 0x080F8B3C + push {r4, r5, r6, lr} + movs r1, #0 + movs r2, #0 + ldr r5, _080F8B78 + ldr r4, _080F8B7C + ldr r0, _080F8B80 + ldrh r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r4 + movs r6, #0 + ldrsh r3, [r0, r6] +_080F8B52: + lsls r0, r1, #1 + adds r0, r0, r4 + movs r6, #0 + ldrsh r0, [r0, r6] + cmp r3, r0 + bge _080F8B64 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 +_080F8B64: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #3 + bls _080F8B52 + strh r2, [r5] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080F8B78: .4byte 0x02037280 +_080F8B7C: .4byte 0x02039BA0 +_080F8B80: .4byte 0x02037284 + thumb_func_end sub_080F8B3C + + thumb_func_start sub_080F8B84 +sub_080F8B84: @ 0x080F8B84 + ldr r2, _080F8B98 + ldr r1, _080F8B9C + ldr r0, _080F8BA0 + ldrh r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2] + bx lr + .align 2, 0 +_080F8B98: .4byte 0x02037280 +_080F8B9C: .4byte 0x02039BA0 +_080F8BA0: .4byte 0x02037284 + thumb_func_end sub_080F8B84 + + thumb_func_start sub_080F8BA4 +sub_080F8BA4: @ 0x080F8BA4 + push {lr} + movs r1, #0 + ldr r2, _080F8BCC + ldrb r0, [r2] + ldr r3, _080F8BD0 + cmp r0, #0 + beq _080F8BC4 +_080F8BB2: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #3 + bhi _080F8BC4 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _080F8BB2 +_080F8BC4: + strh r1, [r3] + pop {r0} + bx r0 + .align 2, 0 +_080F8BCC: .4byte 0x02039BC0 +_080F8BD0: .4byte 0x02037282 + thumb_func_end sub_080F8BA4 + + thumb_func_start sub_080F8BD4 +sub_080F8BD4: @ 0x080F8BD4 + push {r4, lr} + movs r1, #0 + ldr r2, _080F8C08 + ldrb r0, [r2] + ldr r4, _080F8C0C + ldr r3, _080F8C10 + cmp r0, #0 + beq _080F8BF6 +_080F8BE4: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #3 + bhi _080F8BF6 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _080F8BE4 +_080F8BF6: + lsls r1, r1, #6 + adds r1, r1, r3 + adds r0, r4, #0 + bl StringCopy + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F8C08: .4byte 0x02039BC0 +_080F8C0C: .4byte 0x02021C68 +_080F8C10: .4byte 0x02039AAD + thumb_func_end sub_080F8BD4 + + thumb_func_start sub_080F8C14 +sub_080F8C14: @ 0x080F8C14 + push {r4, lr} + movs r1, #0 + ldr r2, _080F8C48 + ldrb r0, [r2] + ldr r4, _080F8C4C + ldr r3, _080F8C50 + cmp r0, #0 + beq _080F8C36 +_080F8C24: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #3 + bhi _080F8C36 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _080F8C24 +_080F8C36: + lsls r1, r1, #6 + adds r1, r1, r3 + adds r0, r4, #0 + bl StringCopy + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F8C48: .4byte 0x02039BC0 +_080F8C4C: .4byte 0x02021C40 +_080F8C50: .4byte 0x02039AA2 + thumb_func_end sub_080F8C14 + + thumb_func_start sub_080F8C54 +sub_080F8C54: @ 0x080F8C54 + push {lr} + ldr r0, _080F8C60 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080F8C60: .4byte 0x080D7351 + thumb_func_end sub_080F8C54 + + thumb_func_start sub_080F8C64 +sub_080F8C64: @ 0x080F8C64 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _080F8C88 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080F8C82 + adds r0, r2, #0 + bl DestroyTask + ldr r0, _080F8C8C + bl SetMainCallback2 +_080F8C82: + pop {r0} + bx r0 + .align 2, 0 +_080F8C88: .4byte 0x02037C74 +_080F8C8C: .4byte 0x080F8C55 + thumb_func_end sub_080F8C64 + + thumb_func_start sub_080F8C90 +sub_080F8C90: @ 0x080F8C90 + push {lr} + sub sp, #4 + bl ScriptContext2_Enable + ldr r0, _080F8CB8 + movs r1, #0xa + bl CreateTask + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_080F8CB8: .4byte 0x080F8C65 + thumb_func_end sub_080F8C90 + + thumb_func_start sub_080F8CBC +sub_080F8CBC: @ 0x080F8CBC + ldr r2, _080F8CD0 + ldr r1, _080F8CD4 + ldr r0, _080F8CD8 + ldrh r0, [r0] + lsls r0, r0, #6 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2] + bx lr + .align 2, 0 +_080F8CD0: .4byte 0x02037280 +_080F8CD4: .4byte 0x02039AA0 +_080F8CD8: .4byte 0x02037284 + thumb_func_end sub_080F8CBC + + thumb_func_start sub_080F8CDC +sub_080F8CDC: @ 0x080F8CDC + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _080F8D00 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080F8CFA + adds r0, r2, #0 + bl DestroyTask + ldr r0, _080F8D04 + bl SetMainCallback2 +_080F8CFA: + pop {r0} + bx r0 + .align 2, 0 +_080F8D00: .4byte 0x02037C74 +_080F8D04: .4byte 0x080F6319 + thumb_func_end sub_080F8CDC + + thumb_func_start sub_080F8D08 +sub_080F8D08: @ 0x080F8D08 + push {lr} + sub sp, #4 + bl ScriptContext2_Enable + ldr r0, _080F8D30 + movs r1, #0xa + bl CreateTask + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_080F8D30: .4byte 0x080F8CDD + thumb_func_end sub_080F8D08 + + thumb_func_start sub_080F8D34 +sub_080F8D34: @ 0x080F8D34 + ldr r0, _080F8D40 + ldr r1, _080F8D44 + ldrb r1, [r1] + strh r1, [r0] + bx lr + .align 2, 0 +_080F8D40: .4byte 0x02037280 +_080F8D44: .4byte 0x02039BC5 + thumb_func_end sub_080F8D34 + + thumb_func_start sub_080F8D48 +sub_080F8D48: @ 0x080F8D48 + push {r4, r5, r6, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + bl ScriptContext2_Enable + ldr r6, _080F8D80 + adds r0, r6, #0 + movs r1, #0 + bl CreateTask + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r2, _080F8D84 + adds r0, r4, #0 + adds r1, r6, #0 + bl SetTaskFuncWithFollowupFunc + ldr r1, _080F8D88 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r5, [r0, #0x1a] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080F8D80: .4byte 0x080FCDF1 +_080F8D84: .4byte 0x080F8D8D +_080F8D88: .4byte 0x03005B60 + thumb_func_end sub_080F8D48 + + thumb_func_start sub_080F8D8C +sub_080F8D8C: @ 0x080F8D8C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080F8DB4 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080F8DC4 + ldr r0, _080F8DB8 + ldrb r0, [r0] + bl sub_080DA0B8 + ldr r1, _080F8DBC + ldr r2, _080F8DC0 + adds r0, r4, #0 + bl SetTaskFuncWithFollowupFunc + b _080F8DDA + .align 2, 0 +_080F8DB4: .4byte 0x02039BCA +_080F8DB8: .4byte 0x02039BC4 +_080F8DBC: .4byte 0x080FCF2D +_080F8DC0: .4byte 0x080F8DED +_080F8DC4: + ldr r0, _080F8DE0 + ldrb r0, [r0] + bl sub_080DA0B8 + ldr r1, _080F8DE4 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080F8DE8 + str r1, [r0] +_080F8DDA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F8DE0: .4byte 0x02039BC4 +_080F8DE4: .4byte 0x03005B60 +_080F8DE8: .4byte 0x081D9691 + thumb_func_end sub_080F8D8C + + thumb_func_start sub_080F8DEC +sub_080F8DEC: @ 0x080F8DEC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080F8E00 + ldr r2, _080F8E04 + bl SetTaskFuncWithFollowupFunc + pop {r0} + bx r0 + .align 2, 0 +_080F8E00: .4byte 0x080FD059 +_080F8E04: .4byte 0x080F8E09 + thumb_func_end sub_080F8DEC + + thumb_func_start sub_080F8E08 +sub_080F8E08: @ 0x080F8E08 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080F8E1C + ldr r2, _080F8E20 + bl SetTaskFuncWithFollowupFunc + pop {r0} + bx r0 + .align 2, 0 +_080F8E1C: .4byte 0x080FD69D +_080F8E20: .4byte 0x080F8E25 + thumb_func_end sub_080F8E08 + + thumb_func_start sub_080F8E24 +sub_080F8E24: @ 0x080F8E24 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080F8E38 + ldr r2, _080F8E3C + bl SetTaskFuncWithFollowupFunc + pop {r0} + bx r0 + .align 2, 0 +_080F8E38: .4byte 0x080FD0E9 +_080F8E3C: .4byte 0x080F8E41 + thumb_func_end sub_080F8E24 + + thumb_func_start sub_080F8E40 +sub_080F8E40: @ 0x080F8E40 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + movs r3, #0 + ldr r5, _080F8EBC + mov ip, r5 + ldr r0, _080F8EC0 + mov sb, r0 + add r1, sp, #4 + mov r8, r1 + ldrb r0, [r5] + cmp r3, r0 + bhs _080F8E8A + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r4, r0, #3 + ldr r7, _080F8EC4 +_080F8E70: + mov r1, sp + adds r2, r1, r3 + adds r1, r3, #1 + lsls r0, r1, #1 + adds r0, r0, r4 + adds r0, r0, r7 + ldrh r0, [r0] + strb r0, [r2] + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + ldrb r0, [r5] + cmp r3, r0 + blo _080F8E70 +_080F8E8A: + movs r3, #0 + mov r1, ip + ldrb r0, [r1] + cmp r3, r0 + bhs _080F8EAE + adds r4, r0, #0 + mov r2, sp +_080F8E98: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, r4 + bhs _080F8EAE + mov r0, sp + adds r1, r0, r3 + ldrb r0, [r2] + ldrb r1, [r1] + cmp r0, r1 + beq _080F8E98 +_080F8EAE: + mov r1, ip + ldrb r1, [r1] + cmp r3, r1 + bne _080F8EC8 + movs r0, #0 + b _080F8ECA + .align 2, 0 +_080F8EBC: .4byte 0x02039BD0 +_080F8EC0: .4byte 0x02037280 +_080F8EC4: .4byte 0x03005B68 +_080F8EC8: + movs r0, #1 +_080F8ECA: + mov r1, sb + strh r0, [r1] + movs r3, #0 + mov r4, ip + ldrb r0, [r4] + cmp r3, r0 + bhs _080F8EFC + mov r5, r8 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r2, r0, #3 + ldr r7, _080F8F28 +_080F8EE2: + adds r1, r5, r3 + adds r0, r3, #5 + lsls r0, r0, #1 + adds r0, r0, r2 + adds r0, r0, r7 + ldrh r0, [r0] + strb r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldrb r1, [r4] + cmp r3, r1 + blo _080F8EE2 +_080F8EFC: + mov r0, r8 + bl sub_080F8F64 + ldr r1, _080F8F2C + strb r0, [r1] + ldr r0, _080F8F30 + ldrb r0, [r0] + bl sub_080DA800 + ldr r1, _080F8F34 + ldr r2, _080F8F38 + adds r0, r6, #0 + bl SetTaskFuncWithFollowupFunc + add sp, #8 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F8F28: .4byte 0x03005B68 +_080F8F2C: .4byte 0x02039BCB +_080F8F30: .4byte 0x02039BCC +_080F8F34: .4byte 0x080FD795 +_080F8F38: .4byte 0x080F8F3D + thumb_func_end sub_080F8E40 + + thumb_func_start sub_080F8F3C +sub_080F8F3C: @ 0x080F8F3C + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + bl SortContestants + ldr r1, _080F8F5C + ldr r2, _080F8F60 + adds r0, r4, #0 + bl SetTaskFuncWithFollowupFunc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F8F5C: .4byte 0x080FD825 +_080F8F60: .4byte 0x080F8F99 + thumb_func_end sub_080F8F3C + + thumb_func_start sub_080F8F64 +sub_080F8F64: @ 0x080F8F64 + push {r4, r5, lr} + adds r3, r0, #0 + movs r4, #0 + movs r2, #1 + ldr r0, _080F8F94 + ldrb r0, [r0] + cmp r2, r0 + bge _080F8F8C + adds r5, r0, #0 +_080F8F76: + adds r0, r3, r4 + adds r1, r3, r2 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bhs _080F8F86 + lsls r0, r2, #0x18 + lsrs r4, r0, #0x18 +_080F8F86: + adds r2, #1 + cmp r2, r5 + blt _080F8F76 +_080F8F8C: + adds r0, r4, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080F8F94: .4byte 0x02039BD0 + thumb_func_end sub_080F8F64 + + thumb_func_start sub_080F8F98 +sub_080F8F98: @ 0x080F8F98 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _080F8FC0 + ldrh r0, [r0] + cmp r0, #1 + bne _080F8FCC + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080F900C + ldr r0, _080F8FC4 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080F8FC8 + str r0, [r1] + b _080F900C + .align 2, 0 +_080F8FC0: .4byte 0x02037280 +_080F8FC4: .4byte 0x03005B60 +_080F8FC8: .4byte 0x080F901D +_080F8FCC: + ldr r0, _080F9014 + adds r4, r0, #2 + movs r7, #0xff + movs r5, #3 +_080F8FD4: + ldrb r0, [r4, #0x10] + orrs r0, r7 + strb r0, [r4, #0x10] + adds r0, r4, #0 + bl StringGetEnd10 + adds r4, #0x40 + subs r5, #1 + cmp r5, #0 + bge _080F8FD4 + adds r0, r6, #0 + bl DestroyTask + ldr r0, _080F9018 + ldr r0, [r0] + movs r1, #4 + ldrsb r1, [r0, r1] + movs r2, #5 + ldrsb r2, [r0, r2] + movs r3, #1 + rsbs r3, r3, #0 + movs r0, #0 + bl SetDynamicWarp + bl ScriptContext2_Disable + bl EnableBothScriptContexts +_080F900C: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F9014: .4byte 0x02039AA0 +_080F9018: .4byte 0x03005AEC + thumb_func_end sub_080F8F98 + + thumb_func_start sub_080F901C +sub_080F901C: @ 0x080F901C + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl sub_0800A7F8 + ldr r1, _080F903C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080F9040 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F903C: .4byte 0x03005B60 +_080F9040: .4byte 0x080F9045 + thumb_func_end sub_080F901C + + thumb_func_start sub_080F9044 +sub_080F9044: @ 0x080F9044 + push {lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r0, _080F9064 + ldrb r0, [r0] + cmp r0, #0 + bne _080F9060 + adds r0, r1, #0 + bl DestroyTask + bl ScriptContext2_Disable + bl EnableBothScriptContexts +_080F9060: + pop {r0} + bx r0 + .align 2, 0 +_080F9064: .4byte 0x030031C4 + thumb_func_end sub_080F9044 + diff --git a/asm/contest_link_80FC4F4.s b/asm/contest_link_80FC4F4.s new file mode 100644 index 0000000..3b456b0 --- /dev/null +++ b/asm/contest_link_80FC4F4.s @@ -0,0 +1,1443 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_080FCD64 +sub_080FCD64: @ 0x080FCD64 + push {r4, r5, lr} + adds r2, r0, #0 + lsls r4, r1, #0x10 + lsrs r4, r4, #0x10 + ldr r5, _080FCD94 + adds r0, r5, #0 + adds r1, r2, #0 + adds r2, r4, #0 + bl memcpy + bl bitmask_all_link_players_but_self + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r5, #0 + adds r2, r4, #0 + bl SendBlock + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FCD98 + movs r0, #0 + b _080FCD9A + .align 2, 0 +_080FCD94: .4byte 0x0201C000 +_080FCD98: + movs r0, #1 +_080FCD9A: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_080FCD64 + + thumb_func_start sub_080FCDA0 +sub_080FCDA0: @ 0x080FCDA0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r4, #0x80 + lsls r4, r4, #0x11 + lsls r4, r5 + lsrs r4, r4, #0x18 + bl GetBlockReceivedStatus + ands r4, r0 + cmp r4, #0 + beq _080FCDC2 + adds r0, r5, #0 + bl ResetBlockReceivedFlag + movs r0, #1 + b _080FCDC4 +_080FCDC2: + movs r0, #0 +_080FCDC4: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080FCDA0 + + thumb_func_start sub_080FCDCC +sub_080FCDCC: @ 0x080FCDCC + push {r4, lr} + bl GetBlockReceivedStatus + adds r4, r0, #0 + bl sub_0800A59C + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + beq _080FCDE4 + movs r0, #0 + b _080FCDEA +_080FCDE4: + bl ResetBlockReceivedFlags + movs r0, #1 +_080FCDEA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_080FCDCC + + thumb_func_start sub_080FCDF0 +sub_080FCDF0: @ 0x080FCDF0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + movs r1, #0 + ldr r5, _080FCE24 + ldr r6, _080FCE28 + ldr r4, _080FCE2C + movs r3, #0xff +_080FCE00: + lsls r0, r1, #8 + adds r0, r0, r4 + strh r3, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #3 + bls _080FCE00 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r1, #0 + strh r1, [r0, #8] + str r6, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080FCE24: .4byte 0x03005B60 +_080FCE28: .4byte 0x080FCE31 +_080FCE2C: .4byte 0x0202207C + thumb_func_end sub_080FCDF0 + + thumb_func_start sub_080FCE30 +sub_080FCE30: @ 0x080FCE30 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080FCE44 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r0, _080FCE48 + str r0, [r1] + bx lr + .align 2, 0 +_080FCE44: .4byte 0x03005B60 +_080FCE48: .4byte 0x080FCE4D + thumb_func_end sub_080FCE30 + + thumb_func_start sub_080FCE4C +sub_080FCE4C: @ 0x080FCE4C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _080FCEC8 + ldrb r0, [r0] + cmp r0, #0 + beq _080FCEC0 + bl GetMultiplayerId + ldr r1, _080FCECC + strb r0, [r1] + bl GetLinkPlayerCount + ldr r4, _080FCED0 + strb r0, [r4] + ldr r1, _080FCED4 + movs r0, #1 + strb r0, [r1] + ldr r0, _080FCED8 + ldrb r0, [r0] + cmp r0, #1 + bne _080FCE7C + movs r0, #3 + strb r0, [r1] +_080FCE7C: + movs r3, #0 + ldrb r2, [r4] + cmp r3, r2 + bge _080FCEBA + ldr r1, _080FCEDC + ldrb r0, [r1] + subs r0, #1 + adds r6, r4, #0 + cmp r0, #1 + bls _080FCEAA + adds r4, r2, #0 + adds r2, r1, #0 + movs r5, #0xff +_080FCE96: + adds r2, #0x1c + adds r3, #1 + cmp r3, r4 + bge _080FCEBA + ldrh r1, [r2] + adds r0, r5, #0 + ands r0, r1 + subs r0, #1 + cmp r0, #1 + bhi _080FCE96 +_080FCEAA: + ldrb r6, [r6] + cmp r3, r6 + bge _080FCEBA + ldr r0, _080FCED4 + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_080FCEBA: + adds r0, r7, #0 + bl SwitchTaskToFollowupFunc +_080FCEC0: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080FCEC8: .4byte 0x030031C4 +_080FCECC: .4byte 0x02039BC5 +_080FCED0: .4byte 0x02039BD0 +_080FCED4: .4byte 0x02039BCA +_080FCED8: .4byte 0x0300319C +_080FCEDC: .4byte 0x020226A0 + thumb_func_end sub_080FCE4C + + thumb_func_start sub_080FCEE0 +sub_080FCEE0: @ 0x080FCEE0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080FCF0C + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _080FCF08 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _080FCF10 + cmp r0, #1 + beq _080FCF1E + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080FCF24 +_080FCF08: + movs r0, #1 + b _080FCF26 + .align 2, 0 +_080FCF0C: .4byte 0x02039BCA +_080FCF10: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FCF24 + bl sub_0800A8D4 +_080FCF1E: + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] +_080FCF24: + movs r0, #0 +_080FCF26: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_080FCEE0 + + thumb_func_start sub_080FCF2C +sub_080FCF2C: @ 0x080FCF2C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r7, r5, #2 + adds r0, r7, r5 + lsls r4, r0, #3 + ldr r6, _080FCF60 + adds r0, r4, r6 + adds r0, #0x18 + bl sub_080FCEE0 + cmp r0, #0 + bne _080FCF48 + b _080FD04C +_080FCF48: + adds r0, r6, #0 + subs r0, #8 + adds r4, r4, r0 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _080FCFC4 + cmp r0, #1 + bgt _080FCF64 + cmp r0, #0 + beq _080FCF6A + b _080FD034 + .align 2, 0 +_080FCF60: .4byte 0x03005B68 +_080FCF64: + cmp r0, #0xa + beq _080FD018 + b _080FD034 +_080FCF6A: + bl GetMultiplayerId + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FCFA4 + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FD04C + ldr r0, _080FCF98 + ldr r1, _080FCF9C + ldrb r1, [r1] + lsls r1, r1, #6 + ldr r2, _080FCFA0 + adds r1, r1, r2 + movs r2, #0x40 + bl memcpy + movs r0, #0xa + strh r0, [r4, #8] + b _080FD04C + .align 2, 0 +_080FCF98: .4byte 0x0202257C +_080FCF9C: .4byte 0x02039BC5 +_080FCFA0: .4byte 0x02039AA0 +_080FCFA4: + ldr r0, _080FCFB8 + ldr r1, _080FCFBC + ldrb r1, [r1] + lsls r1, r1, #6 + ldr r2, _080FCFC0 + adds r1, r1, r2 + movs r2, #0x40 + bl memcpy + b _080FD02E + .align 2, 0 +_080FCFB8: .4byte 0x0202257C +_080FCFBC: .4byte 0x02039BC5 +_080FCFC0: .4byte 0x02039AA0 +_080FCFC4: + bl sub_080FCDCC + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FD04C + movs r4, #0 + ldr r0, _080FCFD8 + adds r6, r7, #0 + b _080FCFF2 + .align 2, 0 +_080FCFD8: .4byte 0x02039BD0 +_080FCFDC: + lsls r0, r4, #6 + ldr r1, _080FD008 + adds r0, r0, r1 + lsls r1, r4, #8 + ldr r2, _080FD00C + adds r1, r1, r2 + movs r2, #0x40 + bl memcpy + adds r4, #1 + ldr r0, _080FD010 +_080FCFF2: + ldrb r0, [r0] + cmp r4, r0 + blt _080FCFDC + ldr r0, _080FD014 + adds r1, r6, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _080FD04C + .align 2, 0 +_080FD008: .4byte 0x02039AA0 +_080FD00C: .4byte 0x0202207C +_080FD010: .4byte 0x02039BD0 +_080FD014: .4byte 0x03005B60 +_080FD018: + ldrh r0, [r4, #0x1e] + adds r0, #1 + strh r0, [r4, #0x1e] + lsls r0, r0, #0x10 + movs r1, #0x96 + lsls r1, r1, #0x11 + cmp r0, r1 + ble _080FD04C + movs r0, #2 + bl sub_0800A09C +_080FD02E: + movs r0, #1 + strh r0, [r4, #8] + b _080FD04C +_080FD034: + ldr r0, _080FD054 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0 + strh r0, [r1, #8] + strh r0, [r1, #0x1e] + strh r0, [r1, #0x20] + adds r0, r5, #0 + bl SwitchTaskToFollowupFunc +_080FD04C: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080FD054: .4byte 0x03005B60 + thumb_func_end sub_080FCF2C + + thumb_func_start sub_080FD058 +sub_080FD058: @ 0x080FD058 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _080FD080 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r5, r0, r1 + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _080FD084 + cmp r0, #1 + beq _080FD0AC + movs r0, #0 + strh r0, [r5, #8] + adds r0, r2, #0 + bl SwitchTaskToFollowupFunc + b _080FD0D4 + .align 2, 0 +_080FD080: .4byte 0x03005B60 +_080FD084: + bl GetMultiplayerId + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FD0CE + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FD0D4 + ldr r0, _080FD0A8 + movs r1, #4 + bl sub_080FCD64 + cmp r0, #1 + bne _080FD0D4 + b _080FD0CE + .align 2, 0 +_080FD0A8: .4byte 0x03005AE0 +_080FD0AC: + movs r0, #0 + bl sub_080FCDA0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FD0D4 + ldr r0, _080FD0DC + ldr r4, _080FD0E0 + adds r1, r4, #0 + movs r2, #4 + bl memcpy + ldr r0, _080FD0E4 + adds r1, r4, #0 + movs r2, #4 + bl memcpy +_080FD0CE: + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] +_080FD0D4: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FD0DC: .4byte 0x03005AE0 +_080FD0E0: .4byte 0x0202207C +_080FD0E4: .4byte 0x03005E18 + thumb_func_end sub_080FD058 + + thumb_func_start sub_080FD0E8 +sub_080FD0E8: @ 0x080FD0E8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + mov r8, r0 + adds r0, r0, r6 + lsls r5, r0, #3 + ldr r7, _080FD128 + adds r0, r5, r7 + adds r0, #0x18 + bl sub_080FCEE0 + cmp r0, #0 + beq _080FD1DA + movs r1, #8 + rsbs r1, r1, #0 + adds r1, r1, r7 + mov sb, r1 + adds r4, r5, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _080FD160 + cmp r0, #1 + bgt _080FD12C + cmp r0, #0 + beq _080FD132 + b _080FD1C2 + .align 2, 0 +_080FD128: .4byte 0x03005B68 +_080FD12C: + cmp r0, #0xa + beq _080FD1A8 + b _080FD1C2 +_080FD132: + ldr r1, _080FD154 + ldrh r0, [r4, #0x1a] + strb r0, [r1] + bl GetMultiplayerId + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FD158 + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FD1DA + movs r0, #0xa + strh r0, [r4, #8] + b _080FD1DA + .align 2, 0 +_080FD154: .4byte 0x0202257C +_080FD158: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _080FD1DA +_080FD160: + bl sub_080FCDCC + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FD1DA + movs r3, #0 + ldr r1, _080FD1A0 + ldrb r0, [r1] + cmp r3, r0 + bge _080FD18E + ldr r4, _080FD1A4 + adds r0, r7, #2 + adds r2, r5, r0 + movs r5, #0x80 + lsls r5, r5, #1 +_080FD17E: + ldrh r0, [r4] + strh r0, [r2] + adds r4, r4, r5 + adds r2, #2 + adds r3, #1 + ldrb r0, [r1] + cmp r3, r0 + blt _080FD17E +_080FD18E: + mov r0, r8 + adds r1, r0, r6 + lsls r1, r1, #3 + add r1, sb + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _080FD1DA + .align 2, 0 +_080FD1A0: .4byte 0x02039BD0 +_080FD1A4: .4byte 0x0202207C +_080FD1A8: + ldrh r0, [r4, #0x1e] + adds r0, #1 + strh r0, [r4, #0x1e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xa + ble _080FD1DA + movs r0, #2 + bl sub_0800A09C + movs r0, #1 + strh r0, [r4, #8] + b _080FD1DA +_080FD1C2: + ldr r0, _080FD1E8 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0 + strh r0, [r1, #8] + strh r0, [r1, #0x1e] + strh r0, [r1, #0x20] + adds r0, r6, #0 + bl SwitchTaskToFollowupFunc +_080FD1DA: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080FD1E8: .4byte 0x03005B60 + thumb_func_end sub_080FD0E8 + + thumb_func_start sub_080FD1EC +sub_080FD1EC: @ 0x080FD1EC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _080FD214 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _080FD218 + cmp r0, #1 + beq _080FD234 + movs r0, #0 + strh r0, [r4, #8] + adds r0, r2, #0 + bl SwitchTaskToFollowupFunc + b _080FD244 + .align 2, 0 +_080FD214: .4byte 0x03005B60 +_080FD218: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FD244 + ldr r0, _080FD230 + movs r1, #1 + bl sub_080FCD64 + cmp r0, #1 + bne _080FD244 + b _080FD23E + .align 2, 0 +_080FD230: .4byte 0x02039BC5 +_080FD234: + bl sub_080FCDCC + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FD244 +_080FD23E: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080FD244: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080FD1EC + + thumb_func_start sub_080FD24C +sub_080FD24C: @ 0x080FD24C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _080FD280 + mov r8, r0 + lsls r7, r5, #2 + adds r0, r7, r5 + lsls r0, r0, #3 + mov r1, r8 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _080FD284 + cmp r0, #1 + beq _080FD2BC + movs r0, #0 + strh r0, [r4, #8] + adds r0, r5, #0 + bl SwitchTaskToFollowupFunc + b _080FD306 + .align 2, 0 +_080FD280: .4byte 0x03005B60 +_080FD284: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FD306 + ldr r0, _080FD2B4 + ldr r2, [r0] + ldr r0, _080FD2B8 + ldrb r0, [r0] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + ldr r0, [r2, #4] + adds r0, r0, r1 + adds r0, #6 + movs r1, #2 + bl sub_080FCD64 + cmp r0, #1 + bne _080FD306 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _080FD306 + .align 2, 0 +_080FD2B4: .4byte 0x02039BD4 +_080FD2B8: .4byte 0x02039BC5 +_080FD2BC: + bl sub_080FCDCC + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FD306 + movs r2, #0 + ldr r6, _080FD314 + mov sb, r8 + mov ip, r7 + ldrb r0, [r6] + cmp r2, r0 + bge _080FD2F8 + ldr r1, _080FD318 + mov r8, r1 + ldr r4, _080FD31C + movs r3, #0 + movs r7, #0x80 + lsls r7, r7, #1 +_080FD2E0: + mov r1, r8 + ldr r0, [r1] + ldr r0, [r0, #4] + adds r0, r3, r0 + ldrh r1, [r4] + strh r1, [r0, #6] + adds r4, r4, r7 + adds r3, #0x1c + adds r2, #1 + ldrb r0, [r6] + cmp r2, r0 + blt _080FD2E0 +_080FD2F8: + mov r0, ip + adds r1, r0, r5 + lsls r1, r1, #3 + add r1, sb + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] +_080FD306: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080FD314: .4byte 0x02039BD0 +_080FD318: .4byte 0x02039BD4 +_080FD31C: .4byte 0x0202207C + thumb_func_end sub_080FD24C + + thumb_func_start sub_080FD320 +sub_080FD320: @ 0x080FD320 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _080FD348 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r2, r0, r1 + movs r3, #8 + ldrsh r0, [r2, r3] + adds r3, r1, #0 + cmp r0, #0xb + bls _080FD33C + b _080FD4CC +_080FD33C: + lsls r0, r0, #2 + ldr r1, _080FD34C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080FD348: .4byte 0x03005B60 +_080FD34C: .4byte 0x080FD350 +_080FD350: @ jump table + .4byte _080FD380 @ case 0 + .4byte _080FD398 @ case 1 + .4byte _080FD3C0 @ case 2 + .4byte _080FD3E4 @ case 3 + .4byte _080FD3F8 @ case 4 + .4byte _080FD3C0 @ case 5 + .4byte _080FD420 @ case 6 + .4byte _080FD434 @ case 7 + .4byte _080FD3C0 @ case 8 + .4byte _080FD45C @ case 9 + .4byte _080FD48C @ case 10 + .4byte _080FD3C0 @ case 11 +_080FD380: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FD38C + b _080FD4D6 +_080FD38C: + ldr r0, _080FD394 + movs r1, #8 + b _080FD46A + .align 2, 0 +_080FD394: .4byte 0x02039BA8 +_080FD398: + bl sub_080FCDCC + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FD3A4 + b _080FD4D6 +_080FD3A4: + ldr r0, _080FD3B4 + ldr r1, _080FD3B8 + ldrb r1, [r1] + lsls r1, r1, #8 + ldr r2, _080FD3BC + adds r1, r1, r2 + movs r2, #8 + b _080FD4A4 + .align 2, 0 +_080FD3B4: .4byte 0x02039BA8 +_080FD3B8: .4byte 0x02039BCB +_080FD3BC: .4byte 0x0202207C +_080FD3C0: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r2, r0, r3 + ldrh r0, [r2, #0xa] + adds r1, r0, #1 + strh r1, [r2, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xa + bgt _080FD3D8 + b _080FD4D6 +_080FD3D8: + movs r0, #0 + strh r0, [r2, #0xa] + ldrh r0, [r2, #8] + adds r0, #1 + strh r0, [r2, #8] + b _080FD4D6 +_080FD3E4: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FD4D6 + ldr r0, _080FD3F4 + movs r1, #8 + b _080FD46A + .align 2, 0 +_080FD3F4: .4byte 0x02039BB0 +_080FD3F8: + bl sub_080FCDCC + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FD4D6 + ldr r0, _080FD414 + ldr r1, _080FD418 + ldrb r1, [r1] + lsls r1, r1, #8 + ldr r2, _080FD41C + adds r1, r1, r2 + movs r2, #8 + b _080FD4A4 + .align 2, 0 +_080FD414: .4byte 0x02039BB0 +_080FD418: .4byte 0x02039BCB +_080FD41C: .4byte 0x0202207C +_080FD420: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FD4D6 + ldr r0, _080FD430 + movs r1, #8 + b _080FD46A + .align 2, 0 +_080FD430: .4byte 0x02039BB8 +_080FD434: + bl sub_080FCDCC + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FD4D6 + ldr r0, _080FD450 + ldr r1, _080FD454 + ldrb r1, [r1] + lsls r1, r1, #8 + ldr r2, _080FD458 + adds r1, r1, r2 + movs r2, #8 + b _080FD4A4 + .align 2, 0 +_080FD450: .4byte 0x02039BB8 +_080FD454: .4byte 0x02039BCB +_080FD458: .4byte 0x0202207C +_080FD45C: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FD4D6 + ldr r0, _080FD484 + movs r1, #4 +_080FD46A: + bl sub_080FCD64 + cmp r0, #1 + bne _080FD4D6 + ldr r0, _080FD488 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _080FD4D6 + .align 2, 0 +_080FD484: .4byte 0x02039BC0 +_080FD488: .4byte 0x03005B60 +_080FD48C: + bl sub_080FCDCC + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FD4D6 + ldr r0, _080FD4BC + ldr r1, _080FD4C0 + ldrb r1, [r1] + lsls r1, r1, #8 + ldr r2, _080FD4C4 + adds r1, r1, r2 + movs r2, #4 +_080FD4A4: + bl memcpy + ldr r1, _080FD4C8 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #8] + adds r1, #1 + strh r1, [r0, #8] + b _080FD4D6 + .align 2, 0 +_080FD4BC: .4byte 0x02039BC0 +_080FD4C0: .4byte 0x02039BCB +_080FD4C4: .4byte 0x0202207C +_080FD4C8: .4byte 0x03005B60 +_080FD4CC: + movs r0, #0 + strh r0, [r2, #8] + adds r0, r4, #0 + bl SwitchTaskToFollowupFunc +_080FD4D6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_080FD320 + + thumb_func_start sub_080FD4DC +sub_080FD4DC: @ 0x080FD4DC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _080FD504 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r2, r0, r1 + movs r3, #8 + ldrsh r0, [r2, r3] + adds r3, r1, #0 + cmp r0, #0xb + bls _080FD4F8 + b _080FD68C +_080FD4F8: + lsls r0, r0, #2 + ldr r1, _080FD508 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080FD504: .4byte 0x03005B60 +_080FD508: .4byte 0x080FD50C +_080FD50C: @ jump table + .4byte _080FD53C @ case 0 + .4byte _080FD558 @ case 1 + .4byte _080FD584 @ case 2 + .4byte _080FD5A8 @ case 3 + .4byte _080FD5C0 @ case 4 + .4byte _080FD584 @ case 5 + .4byte _080FD5EC @ case 6 + .4byte _080FD604 @ case 7 + .4byte _080FD584 @ case 8 + .4byte _080FD61C @ case 9 + .4byte _080FD64C @ case 10 + .4byte _080FD584 @ case 11 +_080FD53C: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FD548 + b _080FD696 +_080FD548: + ldr r0, _080FD554 + ldr r0, [r0] + ldr r0, [r0, #4] + movs r1, #0x70 + b _080FD62A + .align 2, 0 +_080FD554: .4byte 0x02039BD4 +_080FD558: + bl sub_080FCDCC + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FD564 + b _080FD696 +_080FD564: + ldr r0, _080FD578 + ldr r0, [r0] + ldr r0, [r0, #4] + ldr r1, _080FD57C + ldrb r1, [r1] + lsls r1, r1, #8 + ldr r2, _080FD580 + adds r1, r1, r2 + movs r2, #0x70 + b _080FD664 + .align 2, 0 +_080FD578: .4byte 0x02039BD4 +_080FD57C: .4byte 0x02039BCB +_080FD580: .4byte 0x0202207C +_080FD584: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r2, r0, r3 + ldrh r0, [r2, #0xa] + adds r1, r0, #1 + strh r1, [r2, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xa + bgt _080FD59C + b _080FD696 +_080FD59C: + movs r0, #0 + strh r0, [r2, #0xa] + ldrh r0, [r2, #8] + adds r0, #1 + strh r0, [r2, #8] + b _080FD696 +_080FD5A8: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FD696 + ldr r0, _080FD5BC + ldr r0, [r0] + ldr r0, [r0, #8] + movs r1, #0x14 + b _080FD62A + .align 2, 0 +_080FD5BC: .4byte 0x02039BD4 +_080FD5C0: + bl sub_080FCDCC + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FD696 + ldr r0, _080FD5E0 + ldr r0, [r0] + ldr r0, [r0, #8] + ldr r1, _080FD5E4 + ldrb r1, [r1] + lsls r1, r1, #8 + ldr r2, _080FD5E8 + adds r1, r1, r2 + movs r2, #0x14 + b _080FD664 + .align 2, 0 +_080FD5E0: .4byte 0x02039BD4 +_080FD5E4: .4byte 0x02039BCB +_080FD5E8: .4byte 0x0202207C +_080FD5EC: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FD696 + ldr r0, _080FD600 + ldr r0, [r0] + ldr r0, [r0, #0x10] + b _080FD628 + .align 2, 0 +_080FD600: .4byte 0x02039BD4 +_080FD604: + bl sub_080FCDCC + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FD696 + ldr r0, _080FD618 + ldr r0, [r0] + ldr r0, [r0, #0x10] + b _080FD658 + .align 2, 0 +_080FD618: .4byte 0x02039BD4 +_080FD61C: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FD696 + ldr r0, _080FD644 +_080FD628: + movs r1, #4 +_080FD62A: + bl sub_080FCD64 + cmp r0, #1 + bne _080FD696 + ldr r0, _080FD648 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _080FD696 + .align 2, 0 +_080FD644: .4byte 0x02039BC6 +_080FD648: .4byte 0x03005B60 +_080FD64C: + bl sub_080FCDCC + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FD696 + ldr r0, _080FD67C +_080FD658: + ldr r1, _080FD680 + ldrb r1, [r1] + lsls r1, r1, #8 + ldr r2, _080FD684 + adds r1, r1, r2 + movs r2, #4 +_080FD664: + bl memcpy + ldr r1, _080FD688 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #8] + adds r1, #1 + strh r1, [r0, #8] + b _080FD696 + .align 2, 0 +_080FD67C: .4byte 0x02039BC6 +_080FD680: .4byte 0x02039BCB +_080FD684: .4byte 0x0202207C +_080FD688: .4byte 0x03005B60 +_080FD68C: + movs r0, #0 + strh r0, [r2, #8] + adds r0, r4, #0 + bl SwitchTaskToFollowupFunc +_080FD696: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_080FD4DC + + thumb_func_start sub_080FD69C +sub_080FD69C: @ 0x080FD69C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + mov r8, r0 + adds r0, r0, r6 + lsls r5, r0, #3 + ldr r7, _080FD6DC + adds r0, r5, r7 + adds r0, #0x18 + bl sub_080FCEE0 + cmp r0, #0 + beq _080FD782 + movs r1, #8 + rsbs r1, r1, #0 + adds r1, r1, r7 + mov sb, r1 + adds r4, r5, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _080FD714 + cmp r0, #1 + bgt _080FD6E0 + cmp r0, #0 + beq _080FD6E6 + b _080FD76A + .align 2, 0 +_080FD6DC: .4byte 0x03005B68 +_080FD6E0: + cmp r0, #0xa + beq _080FD750 + b _080FD76A +_080FD6E6: + ldr r1, _080FD708 + movs r0, #0x6e + strb r0, [r1] + bl GetMultiplayerId + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FD70C + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FD782 + movs r0, #0xa + strh r0, [r4, #8] + b _080FD782 + .align 2, 0 +_080FD708: .4byte 0x0202257C +_080FD70C: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _080FD782 +_080FD714: + bl sub_080FCDCC + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FD782 + mov r1, r8 + mov r8, sb + ldr r4, _080FD74C + adds r0, r7, #0 + adds r0, #0xa + adds r2, r5, r0 + movs r5, #0x80 + lsls r5, r5, #1 + movs r3, #3 +_080FD730: + ldrh r0, [r4] + strh r0, [r2] + adds r4, r4, r5 + adds r2, #2 + subs r3, #1 + cmp r3, #0 + bge _080FD730 + adds r1, r1, r6 + lsls r1, r1, #3 + add r1, r8 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _080FD782 + .align 2, 0 +_080FD74C: .4byte 0x0202207C +_080FD750: + ldrh r0, [r4, #0x1e] + adds r0, #1 + strh r0, [r4, #0x1e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xa + ble _080FD782 + movs r0, #2 + bl sub_0800A09C + movs r0, #1 + strh r0, [r4, #8] + b _080FD782 +_080FD76A: + ldr r0, _080FD790 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0 + strh r0, [r1, #8] + strh r0, [r1, #0x1e] + strh r0, [r1, #0x20] + adds r0, r6, #0 + bl SwitchTaskToFollowupFunc +_080FD782: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080FD790: .4byte 0x03005B60 + thumb_func_end sub_080FD69C + + thumb_func_start sub_080FD794 +sub_080FD794: @ 0x080FD794 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r4, r0, #3 + ldr r6, _080FD7D0 + adds r0, r4, r6 + adds r0, #0x18 + bl sub_080FCEE0 + cmp r0, #0 + beq _080FD812 + adds r0, r6, #0 + subs r0, #8 + adds r4, r4, r0 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _080FD7D4 + cmp r0, #1 + beq _080FD7F0 + movs r0, #0 + strh r0, [r4, #8] + strh r0, [r4, #0x20] + adds r0, r5, #0 + bl SwitchTaskToFollowupFunc + b _080FD812 + .align 2, 0 +_080FD7D0: .4byte 0x03005B68 +_080FD7D4: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FD812 + ldr r0, _080FD7EC + movs r1, #8 + bl sub_080FCD64 + cmp r0, #1 + bne _080FD812 + b _080FD80C + .align 2, 0 +_080FD7EC: .4byte 0x02039BA0 +_080FD7F0: + bl sub_080FCDCC + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FD812 + ldr r0, _080FD818 + ldr r1, _080FD81C + ldrb r1, [r1] + lsls r1, r1, #8 + ldr r2, _080FD820 + adds r1, r1, r2 + movs r2, #8 + bl memcpy +_080FD80C: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080FD812: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080FD818: .4byte 0x02039BA0 +_080FD81C: .4byte 0x02039BCB +_080FD820: .4byte 0x0202207C + thumb_func_end sub_080FD794 + + thumb_func_start sub_080FD824 +sub_080FD824: @ 0x080FD824 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r4, r0, #3 + ldr r6, _080FD860 + adds r0, r4, r6 + adds r0, #0x18 + bl sub_080FCEE0 + cmp r0, #0 + beq _080FD8A2 + adds r0, r6, #0 + subs r0, #8 + adds r4, r4, r0 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _080FD864 + cmp r0, #1 + beq _080FD880 + movs r0, #0 + strh r0, [r4, #8] + strh r0, [r4, #0x20] + adds r0, r5, #0 + bl SwitchTaskToFollowupFunc + b _080FD8A2 + .align 2, 0 +_080FD860: .4byte 0x03005B68 +_080FD864: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FD8A2 + ldr r0, _080FD87C + movs r1, #4 + bl sub_080FCD64 + cmp r0, #1 + bne _080FD8A2 + b _080FD89C + .align 2, 0 +_080FD87C: .4byte 0x02039BC6 +_080FD880: + bl sub_080FCDCC + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FD8A2 + ldr r0, _080FD8A8 + ldr r1, _080FD8AC + ldrb r1, [r1] + lsls r1, r1, #8 + ldr r2, _080FD8B0 + adds r1, r1, r2 + movs r2, #4 + bl memcpy +_080FD89C: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080FD8A2: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080FD8A8: .4byte 0x02039BC6 +_080FD8AC: .4byte 0x02039BCB +_080FD8B0: .4byte 0x0202207C + thumb_func_end sub_080FD824 + diff --git a/asm/contest_link_81D9DE4.s b/asm/contest_link_81D9DE4.s new file mode 100644 index 0000000..94f2ac8 --- /dev/null +++ b/asm/contest_link_81D9DE4.s @@ -0,0 +1,766 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_081D97DC +sub_081D97DC: @ 0x081D97DC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081D97F0 + ldr r2, _081D97F4 + bl SetTaskFuncWithFollowupFunc + pop {r0} + bx r0 + .align 2, 0 +_081D97F0: .4byte 0x081D9B79 +_081D97F4: .4byte 0x081D97F9 + thumb_func_end sub_081D97DC + + thumb_func_start sub_081D97F8 +sub_081D97F8: @ 0x081D97F8 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081D980C + ldr r2, _081D9810 + bl SetTaskFuncWithFollowupFunc + pop {r0} + bx r0 + .align 2, 0 +_081D980C: .4byte 0x081D9C49 +_081D9810: .4byte 0x081D9815 + thumb_func_end sub_081D97F8 + + thumb_func_start sub_081D9814 +sub_081D9814: @ 0x081D9814 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + movs r3, #0 + ldr r5, _081D9894 + mov r8, r5 + ldr r0, _081D9898 + mov ip, r0 + add r1, sp, #4 + mov sb, r1 + ldrb r4, [r5] + cmp r3, r4 + bhs _081D985E + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r4, r0, #3 + ldr r7, _081D989C +_081D9844: + mov r0, sp + adds r2, r0, r3 + adds r1, r3, #1 + lsls r0, r1, #1 + adds r0, r0, r4 + adds r0, r0, r7 + ldrh r0, [r0] + strb r0, [r2] + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + ldrb r1, [r5] + cmp r3, r1 + blo _081D9844 +_081D985E: + movs r3, #0 + mov r4, r8 + ldrb r0, [r4] + cmp r3, r0 + bhs _081D9882 + adds r4, r0, #0 + mov r2, sp +_081D986C: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, r4 + bhs _081D9882 + mov r7, sp + adds r1, r7, r3 + ldrb r0, [r2] + ldrb r1, [r1] + cmp r0, r1 + beq _081D986C +_081D9882: + mov r0, r8 + ldrb r0, [r0] + cmp r3, r0 + bne _081D98A0 + movs r0, #0 + mov r1, ip + strh r0, [r1] + b _081D98A6 + .align 2, 0 +_081D9894: .4byte 0x02039BD0 +_081D9898: .4byte 0x02037280 +_081D989C: .4byte 0x03005B68 +_081D98A0: + movs r0, #1 + mov r4, ip + strh r0, [r4] +_081D98A6: + movs r3, #0 + mov r7, r8 + mov r0, r8 + ldrb r0, [r0] + cmp r3, r0 + bhs _081D98D6 + mov r4, sb + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r2, r0, #3 + ldr r5, _081D9934 +_081D98BC: + adds r1, r4, r3 + adds r0, r3, #5 + lsls r0, r0, #1 + adds r0, r0, r2 + adds r0, r0, r5 + ldrh r0, [r0] + strb r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldrb r1, [r7] + cmp r3, r1 + blo _081D98BC +_081D98D6: + mov r4, r8 + ldrb r0, [r4] + cmp r0, #4 + beq _081D9964 + bl GetMultiplayerId + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081D9964 + ldr r0, _081D9938 + adds r1, r0, #0 + adds r1, #0x2c + ldrb r2, [r1] + movs r3, #1 + ldrb r1, [r4] + adds r5, r0, #0 + cmp r3, r1 + bhs _081D9918 + adds r4, r5, #0 + mov r7, r8 + ldrb r1, [r7] +_081D9900: + lsls r0, r3, #6 + adds r0, r0, r4 + adds r0, #0x2c + ldrb r7, [r0] + cmp r2, r7 + bhs _081D990E + ldrb r2, [r0] +_081D990E: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, r1 + blo _081D9900 +_081D9918: + cmp r2, #0 + beq _081D9922 + subs r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 +_081D9922: + movs r4, #1 + movs r3, #0 + mov r0, r8 + ldrb r0, [r0] + cmp r3, r0 + bhs _081D9958 + adds r0, r5, #0 + b _081D994E + .align 2, 0 +_081D9934: .4byte 0x03005B68 +_081D9938: .4byte 0x02039AA0 +_081D993C: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + mov r1, r8 + ldrb r1, [r1] + cmp r3, r1 + bhs _081D9958 + lsls r0, r3, #6 + adds r0, r0, r5 +_081D994E: + adds r0, #0x2d + ldrb r0, [r0] + cmp r0, #0 + bne _081D993C + movs r4, #0 +_081D9958: + mov r0, sp + ldrb r0, [r0] + adds r1, r2, #0 + adds r2, r4, #0 + bl sub_080DA460 +_081D9964: + mov r0, sb + bl sub_080F8F64 + ldr r1, _081D9984 + strb r0, [r1] + ldr r0, _081D9988 + ldrb r0, [r0] + cmp r0, #3 + bhi _081D9994 + ldr r1, _081D998C + ldr r2, _081D9990 + adds r0, r6, #0 + bl SetTaskFuncWithFollowupFunc + b _081D99A2 + .align 2, 0 +_081D9984: .4byte 0x02039BCB +_081D9988: .4byte 0x02039BD0 +_081D998C: .4byte 0x081D9D19 +_081D9990: .4byte 0x081D99B9 +_081D9994: + ldr r0, _081D99B0 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081D99B4 + str r0, [r1] +_081D99A2: + add sp, #8 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D99B0: .4byte 0x03005B60 +_081D99B4: .4byte 0x081D99B9 + thumb_func_end sub_081D9814 + + thumb_func_start sub_081D99B8 +sub_081D99B8: @ 0x081D99B8 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081D99D8 + ldrb r0, [r0] + bl sub_080DA800 + ldr r1, _081D99DC + ldr r2, _081D99E0 + adds r0, r4, #0 + bl SetTaskFuncWithFollowupFunc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D99D8: .4byte 0x02039BCC +_081D99DC: .4byte 0x080FD795 +_081D99E0: .4byte 0x081D99E5 + thumb_func_end sub_081D99B8 + + thumb_func_start sub_081D99E4 +sub_081D99E4: @ 0x081D99E4 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + bl SortContestants + ldr r1, _081D9A04 + ldr r2, _081D9A08 + adds r0, r4, #0 + bl SetTaskFuncWithFollowupFunc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D9A04: .4byte 0x080FD825 +_081D9A08: .4byte 0x080F8F99 + thumb_func_end sub_081D99E4 + + thumb_func_start sub_081D9A0C +sub_081D9A0C: @ 0x081D9A0C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r7, r5, #2 + adds r0, r7, r5 + lsls r4, r0, #3 + ldr r6, _081D9A48 + adds r0, r4, r6 + adds r0, #0x18 + bl sub_080FCEE0 + cmp r0, #0 + beq _081D9ABE + adds r0, r6, #0 + subs r0, #8 + adds r4, r4, r0 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _081D9A4C + cmp r0, #1 + beq _081D9A7C + movs r0, #0 + strh r0, [r4, #8] + strh r0, [r4, #0x20] + adds r0, r5, #0 + bl SwitchTaskToFollowupFunc + b _081D9ABE + .align 2, 0 +_081D9A48: .4byte 0x03005B68 +_081D9A4C: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D9ABE + ldr r0, _081D9A74 + ldrb r0, [r0] + lsls r0, r0, #6 + ldr r1, _081D9A78 + adds r0, r0, r1 + movs r1, #0x40 + bl sub_080FCD64 + cmp r0, #1 + bne _081D9ABE + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _081D9ABE + .align 2, 0 +_081D9A74: .4byte 0x02039BC5 +_081D9A78: .4byte 0x02039AA0 +_081D9A7C: + bl sub_080FCDCC + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D9ABE + movs r4, #0 + ldr r0, _081D9A90 + adds r6, r7, #0 + b _081D9AAA + .align 2, 0 +_081D9A90: .4byte 0x02039BD0 +_081D9A94: + lsls r0, r4, #6 + ldr r1, _081D9AC4 + adds r0, r0, r1 + lsls r1, r4, #8 + ldr r2, _081D9AC8 + adds r1, r1, r2 + movs r2, #0x40 + bl memcpy + adds r4, #1 + ldr r0, _081D9ACC +_081D9AAA: + ldrb r0, [r0] + cmp r4, r0 + blt _081D9A94 + ldr r0, _081D9AD0 + adds r1, r6, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] +_081D9ABE: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D9AC4: .4byte 0x02039AA0 +_081D9AC8: .4byte 0x0202207C +_081D9ACC: .4byte 0x02039BD0 +_081D9AD0: .4byte 0x03005B60 + thumb_func_end sub_081D9A0C + + thumb_func_start sub_081D9AD4 +sub_081D9AD4: @ 0x081D9AD4 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r5, r0, #3 + ldr r6, _081D9B10 + adds r0, r5, r6 + adds r0, #0x18 + bl sub_080FCEE0 + cmp r0, #0 + beq _081D9B64 + adds r0, r6, #0 + subs r0, #8 + adds r5, r5, r0 + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _081D9B14 + cmp r0, #1 + beq _081D9B3C + movs r0, #0 + strh r0, [r5, #8] + strh r0, [r5, #0x20] + adds r0, r4, #0 + bl SwitchTaskToFollowupFunc + b _081D9B64 + .align 2, 0 +_081D9B10: .4byte 0x03005B68 +_081D9B14: + bl GetMultiplayerId + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081D9B5E + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D9B64 + ldr r0, _081D9B38 + movs r1, #4 + bl sub_080FCD64 + cmp r0, #1 + bne _081D9B64 + b _081D9B5E + .align 2, 0 +_081D9B38: .4byte 0x03005AE0 +_081D9B3C: + movs r0, #0 + bl sub_080FCDA0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D9B64 + ldr r0, _081D9B6C + ldr r4, _081D9B70 + adds r1, r4, #0 + movs r2, #4 + bl memcpy + ldr r0, _081D9B74 + adds r1, r4, #0 + movs r2, #4 + bl memcpy +_081D9B5E: + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] +_081D9B64: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081D9B6C: .4byte 0x03005AE0 +_081D9B70: .4byte 0x0202207C +_081D9B74: .4byte 0x03005E18 + thumb_func_end sub_081D9AD4 + + thumb_func_start sub_081D9B78 +sub_081D9B78: @ 0x081D9B78 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + mov sb, r0 + adds r0, r0, r6 + lsls r5, r0, #3 + ldr r1, _081D9BC4 + mov r8, r1 + adds r0, r5, r1 + adds r0, #0x18 + bl sub_080FCEE0 + cmp r0, #0 + beq _081D9C2E + movs r0, #8 + rsbs r0, r0, #0 + add r0, r8 + mov sl, r0 + adds r4, r5, r0 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _081D9BC8 + cmp r0, #1 + beq _081D9BEA + movs r0, #0 + strh r0, [r4, #8] + strh r0, [r4, #0x20] + adds r0, r6, #0 + bl SwitchTaskToFollowupFunc + b _081D9C2E + .align 2, 0 +_081D9BC4: .4byte 0x03005B68 +_081D9BC8: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D9C2E + add r0, sp, #8 + movs r1, #0x6e + strh r1, [r0] + movs r1, #2 + bl sub_080FCD64 + cmp r0, #1 + bne _081D9C2E + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _081D9C2E +_081D9BEA: + bl sub_080FCDCC + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D9C2E + movs r1, #0 + ldr r7, _081D9C40 + ldrb r0, [r7] + cmp r1, r0 + bge _081D9C20 + mov r0, r8 + adds r0, #0xa + adds r3, r5, r0 + ldr r4, _081D9C44 + mov r2, sp + movs r5, #0x80 + lsls r5, r5, #1 +_081D9C0C: + ldrh r0, [r4] + strh r0, [r2] + strh r0, [r3] + adds r3, #2 + adds r4, r4, r5 + adds r2, #2 + adds r1, #1 + ldrb r0, [r7] + cmp r1, r0 + blt _081D9C0C +_081D9C20: + mov r0, sb + adds r1, r0, r6 + lsls r1, r1, #3 + add r1, sl + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] +_081D9C2E: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D9C40: .4byte 0x02039BD0 +_081D9C44: .4byte 0x0202207C + thumb_func_end sub_081D9B78 + + thumb_func_start sub_081D9C48 +sub_081D9C48: @ 0x081D9C48 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + mov sb, r0 + adds r0, r0, r6 + lsls r5, r0, #3 + ldr r1, _081D9C94 + mov r8, r1 + adds r0, r5, r1 + adds r0, #0x18 + bl sub_080FCEE0 + cmp r0, #0 + beq _081D9CFE + movs r0, #8 + rsbs r0, r0, #0 + add r0, r8 + mov sl, r0 + adds r4, r5, r0 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _081D9C98 + cmp r0, #1 + beq _081D9CBA + movs r0, #0 + strh r0, [r4, #8] + strh r0, [r4, #0x20] + adds r0, r6, #0 + bl SwitchTaskToFollowupFunc + b _081D9CFE + .align 2, 0 +_081D9C94: .4byte 0x03005B68 +_081D9C98: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D9CFE + ldrh r1, [r4, #0x1a] + add r0, sp, #8 + strh r1, [r0] + movs r1, #2 + bl sub_080FCD64 + cmp r0, #1 + bne _081D9CFE + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _081D9CFE +_081D9CBA: + bl sub_080FCDCC + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D9CFE + movs r1, #0 + ldr r7, _081D9D10 + ldrb r0, [r7] + cmp r1, r0 + bge _081D9CF0 + mov r0, r8 + adds r0, #2 + adds r3, r5, r0 + ldr r4, _081D9D14 + mov r2, sp + movs r5, #0x80 + lsls r5, r5, #1 +_081D9CDC: + ldrh r0, [r4] + strh r0, [r2] + strh r0, [r3] + adds r3, #2 + adds r4, r4, r5 + adds r2, #2 + adds r1, #1 + ldrb r0, [r7] + cmp r1, r0 + blt _081D9CDC +_081D9CF0: + mov r0, sb + adds r1, r0, r6 + lsls r1, r1, #3 + add r1, sl + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] +_081D9CFE: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D9D10: .4byte 0x02039BD0 +_081D9D14: .4byte 0x0202207C + thumb_func_end sub_081D9C48 + + thumb_func_start sub_081D9D18 +sub_081D9D18: @ 0x081D9D18 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r4, r0, #3 + ldr r6, _081D9D54 + adds r0, r4, r6 + adds r0, #0x18 + bl sub_080FCEE0 + cmp r0, #0 + beq _081D9DB8 + adds r0, r6, #0 + subs r0, #8 + adds r4, r4, r0 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _081D9D58 + cmp r0, #1 + beq _081D9D90 + movs r0, #0 + strh r0, [r4, #8] + strh r0, [r4, #0x20] + adds r0, r5, #0 + bl SwitchTaskToFollowupFunc + b _081D9DB8 + .align 2, 0 +_081D9D54: .4byte 0x03005B68 +_081D9D58: + bl GetMultiplayerId + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081D9DB2 + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D9DB8 + ldr r0, _081D9D88 + ldrb r2, [r0] + lsls r0, r2, #6 + ldr r1, _081D9D8C + adds r0, r0, r1 + movs r1, #4 + subs r1, r1, r2 + lsls r1, r1, #0x16 + lsrs r1, r1, #0x10 + bl sub_080FCD64 + cmp r0, #1 + bne _081D9DB8 + b _081D9DB2 + .align 2, 0 +_081D9D88: .4byte 0x02039BD0 +_081D9D8C: .4byte 0x02039AA0 +_081D9D90: + movs r0, #0 + bl sub_080FCDA0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D9DB8 + ldr r0, _081D9DC0 + ldrb r3, [r0] + lsls r0, r3, #6 + ldr r1, _081D9DC4 + adds r0, r0, r1 + ldr r1, _081D9DC8 + movs r2, #4 + subs r2, r2, r3 + lsls r2, r2, #6 + bl memcpy +_081D9DB2: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_081D9DB8: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081D9DC0: .4byte 0x02039BD0 +_081D9DC4: .4byte 0x02039AA0 +_081D9DC8: .4byte 0x0202207C + thumb_func_end sub_081D9D18 + diff --git a/asm/contest_painting.s b/asm/contest_painting.s new file mode 100644 index 0000000..a8170e6 --- /dev/null +++ b/asm/contest_painting.s @@ -0,0 +1,1331 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_0812FDE0 +sub_0812FDE0: @ 0x0812FDE0 + push {r4, r5, r6, r7, lr} + ldr r3, _0812FE10 + ldr r4, _0812FE14 + ldr r1, _0812FE18 + ldr r2, [r1] + subs r0, #1 + lsls r1, r0, #5 + adds r2, r2, r1 + ldr r1, _0812FE1C + ldr r5, _0812FE20 + adds r2, r2, r5 + ldm r2!, {r5, r6, r7} + stm r1!, {r5, r6, r7} + ldm r2!, {r5, r6, r7} + stm r1!, {r5, r6, r7} + ldm r2!, {r6, r7} + stm r1!, {r6, r7} + strb r0, [r3] + movs r0, #0 + strb r0, [r4] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0812FE10: .4byte 0x02039BFD +_0812FE14: .4byte 0x02039BFC +_0812FE18: .4byte 0x03005AEC +_0812FE1C: .4byte 0x02039BDC +_0812FE20: .4byte 0x00002E90 + thumb_func_end sub_0812FDE0 + + thumb_func_start CB2_ContestPainting +CB2_ContestPainting: @ 0x0812FE24 + push {lr} + bl ShowContestPainting + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CB2_ContestPainting + + thumb_func_start CB2_HoldContestPainting +CB2_HoldContestPainting: @ 0x0812FE30 + push {lr} + bl HoldContestPainting + bl RunTextPrinters + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CB2_HoldContestPainting + + thumb_func_start CB2_QuitContestPainting +CB2_QuitContestPainting: @ 0x0812FE44 + push {r4, r5, lr} + ldr r0, _0812FE80 + ldr r0, [r0, #8] + bl SetMainCallback2 + ldr r4, _0812FE84 + ldr r0, [r4] + bl Free + movs r5, #0 + str r5, [r4] + ldr r4, _0812FE88 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r0, _0812FE8C + ldrb r0, [r0] + bl RemoveWindow + movs r0, #1 + bl GetBgTilemapBuffer + bl Free + bl FreeMonSpritesGfx + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0812FE80: .4byte 0x03002360 +_0812FE84: .4byte 0x03005F04 +_0812FE88: .4byte 0x03005ED0 +_0812FE8C: .4byte 0x030011F7 + thumb_func_end CB2_QuitContestPainting + + thumb_func_start ShowContestPainting +ShowContestPainting: @ 0x0812FE90 + push {r4, r5, r6, r7, lr} + sub sp, #4 + ldr r1, _0812FEB0 + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r1, r2 + ldrb r0, [r0] + adds r4, r1, #0 + cmp r0, #4 + bls _0812FEA6 + b _0812FFD8 +_0812FEA6: + lsls r0, r0, #2 + ldr r1, _0812FEB4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0812FEB0: .4byte 0x03002360 +_0812FEB4: .4byte 0x0812FEB8 +_0812FEB8: @ jump table + .4byte _0812FECC @ case 0 + .4byte _0812FF00 @ case 1 + .4byte _0812FF4C @ case 2 + .4byte _0812FF62 @ case 3 + .4byte _0812FF8C @ case 4 +_0812FECC: + bl ScanlineEffect_Stop + movs r0, #0 + bl SetVBlankCallback + bl AllocateMonSpritesGfx + ldr r1, _0812FEF4 + ldr r0, _0812FEF8 + str r0, [r1] + movs r0, #1 + bl InitContestPaintingVars + bl InitContestPaintingBg + ldr r1, _0812FEFC + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _0812FF76 + .align 2, 0 +_0812FEF4: .4byte 0x03005F00 +_0812FEF8: .4byte 0x02039BDC +_0812FEFC: .4byte 0x03002360 +_0812FF00: + bl ResetPaletteFade + movs r2, #0xc0 + lsls r2, r2, #0x13 + movs r3, #0xc0 + lsls r3, r3, #9 + movs r5, #0 + ldr r1, _0812FF44 + movs r4, #0x80 + lsls r4, r4, #5 + ldr r6, _0812FF48 + movs r7, #0x85 + lsls r7, r7, #0x18 +_0812FF1A: + str r5, [sp] + mov r0, sp + str r0, [r1] + str r2, [r1, #4] + str r6, [r1, #8] + ldr r0, [r1, #8] + adds r2, r2, r4 + subs r3, r3, r4 + cmp r3, r4 + bhi _0812FF1A + str r5, [sp] + mov r0, sp + str r0, [r1] + str r2, [r1, #4] + lsrs r0, r3, #2 + orrs r0, r7 + str r0, [r1, #8] + ldr r0, [r1, #8] + bl ResetSpriteData + b _0812FF6E + .align 2, 0 +_0812FF44: .4byte 0x040000D4 +_0812FF48: .4byte 0x85000400 +_0812FF4C: + ldrh r0, [r4, #0x20] + bl SeedRng + bl InitKeys + bl InitContestPaintingWindow + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r4, r0 + b _0812FF76 +_0812FF62: + ldr r0, _0812FF80 + ldrb r0, [r0] + ldr r1, _0812FF84 + ldrb r1, [r1] + bl sub_081308DC +_0812FF6E: + ldr r1, _0812FF88 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 +_0812FF76: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0812FFD8 + .align 2, 0 +_0812FF80: .4byte 0x02039BFD +_0812FF84: .4byte 0x02039BFC +_0812FF88: .4byte 0x03002360 +_0812FF8C: + ldr r0, _0812FFE0 + ldrb r0, [r0] + ldr r1, _0812FFE4 + ldrb r1, [r1] + bl PrintContestPaintingCaption + ldr r0, _0812FFE8 + movs r1, #0 + movs r2, #2 + bl LoadPalette + movs r1, #0xa0 + lsls r1, r1, #0x13 + movs r4, #0 + str r4, [sp] + ldr r0, _0812FFEC + mov r2, sp + str r2, [r0] + str r1, [r0, #4] + ldr r1, _0812FFF0 + str r1, [r0, #8] + ldr r0, [r0, #8] + movs r0, #2 + bl BeginFastPaletteFade + ldr r0, _0812FFF4 + bl SetVBlankCallback + ldr r0, _0812FFF8 + strb r4, [r0] + movs r1, #0x9a + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + ldr r0, _0812FFFC + bl SetMainCallback2 +_0812FFD8: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0812FFE0: .4byte 0x02039BFD +_0812FFE4: .4byte 0x02039BFC +_0812FFE8: .4byte 0x0858F648 +_0812FFEC: .4byte 0x040000D4 +_0812FFF0: .4byte 0x85000100 +_0812FFF4: .4byte 0x08130329 +_0812FFF8: .4byte 0x030011F0 +_0812FFFC: .4byte 0x0812FE31 + thumb_func_end ShowContestPainting + + thumb_func_start HoldContestPainting +HoldContestPainting: @ 0x08130000 + push {lr} + sub sp, #4 + ldr r3, _08130018 + ldrb r1, [r3] + cmp r1, #1 + beq _08130054 + cmp r1, #1 + bgt _0813001C + cmp r1, #0 + beq _08130022 + b _081300BA + .align 2, 0 +_08130018: .4byte 0x030011F0 +_0813001C: + cmp r1, #2 + beq _08130094 + b _081300BA +_08130022: + ldr r0, _08130048 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08130032 + movs r0, #1 + strb r0, [r3] +_08130032: + ldr r0, _0813004C + ldrb r0, [r0] + cmp r0, #0 + beq _081300BA + ldr r1, _08130050 + ldrh r0, [r1] + cmp r0, #0 + beq _081300BA + subs r0, #1 + b _081300B8 + .align 2, 0 +_08130048: .4byte 0x02037C74 +_0813004C: .4byte 0x030011F6 +_08130050: .4byte 0x030011F4 +_08130054: + ldr r0, _08130088 + ldrh r2, [r0, #0x2e] + ands r1, r2 + cmp r1, #0 + bne _08130066 + movs r0, #2 + ands r0, r2 + cmp r0, #0 + beq _08130078 +_08130066: + movs r0, #2 + strb r0, [r3] + subs r0, #3 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade +_08130078: + ldr r0, _0813008C + ldrb r0, [r0] + cmp r0, #0 + beq _081300BA + ldr r1, _08130090 + movs r0, #0 + b _081300B8 + .align 2, 0 +_08130088: .4byte 0x03002360 +_0813008C: .4byte 0x030011F6 +_08130090: .4byte 0x030011F4 +_08130094: + ldr r0, _081300C0 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081300A6 + ldr r0, _081300C4 + bl SetMainCallback2 +_081300A6: + ldr r0, _081300C8 + ldrb r0, [r0] + cmp r0, #0 + beq _081300BA + ldr r1, _081300CC + ldrh r0, [r1] + cmp r0, #0x1d + bhi _081300BA + adds r0, #1 +_081300B8: + strh r0, [r1] +_081300BA: + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_081300C0: .4byte 0x02037C74 +_081300C4: .4byte 0x0812FE45 +_081300C8: .4byte 0x030011F6 +_081300CC: .4byte 0x030011F4 + thumb_func_end HoldContestPainting + + thumb_func_start InitContestPaintingWindow +InitContestPaintingWindow: @ 0x081300D0 + push {r4, lr} + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _08130138 + movs r0, #0 + movs r2, #1 + bl InitBgsFromTemplates + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #0x80 + lsls r0, r0, #4 + bl AllocZeroed + adds r1, r0, #0 + movs r0, #1 + bl SetBgTilemapBuffer + ldr r4, _0813013C + ldr r0, _08130140 + bl AddWindow + strb r0, [r4] + bl DeactivateAllTextPrinters + ldrb r0, [r4] + movs r1, #0 + bl FillWindowPixelBuffer + ldrb r0, [r4] + bl PutWindowTilemap + ldrb r0, [r4] + movs r1, #3 + bl CopyWindowToVram + movs r0, #1 + bl ShowBg + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08130138: .4byte 0x0858F5F8 +_0813013C: .4byte 0x030011F7 +_08130140: .4byte 0x0858F5FC + thumb_func_end InitContestPaintingWindow + + thumb_func_start PrintContestPaintingCaption +PrintContestPaintingCaption: @ 0x08130144 + push {r4, r5, r6, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #1 + beq _0813022A + ldr r6, _081301C8 + ldr r1, [r6] + ldrb r5, [r1, #0xa] + cmp r0, #7 + bhi _081301F4 + ldr r4, _081301CC + ldr r1, _081301D0 + lsls r0, r5, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl StringCopy + ldr r1, _081301D4 + adds r0, r4, #0 + bl StringAppend + ldr r1, _081301D8 + adds r0, r4, #0 + bl StringAppend + ldr r1, _081301DC + ldr r0, [r6] + ldrb r0, [r0, #0x1e] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl StringAppend + ldr r0, _081301E0 + ldr r1, [r6] + adds r1, #0x16 + bl StringCopy + ldr r0, _081301E4 + ldr r1, [r6] + adds r1, #0xb + bl StringCopy + ldr r4, _081301E8 + ldr r1, _081301EC + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r0, _081301F0 + ldrb r0, [r0] + movs r1, #1 + str r1, [sp] + movs r1, #0 + str r1, [sp, #4] + str r1, [sp, #8] + movs r1, #1 + adds r2, r4, #0 + movs r3, #8 + bl AddTextPrinterParameterized + b _08130224 + .align 2, 0 +_081301C8: .4byte 0x03005F00 +_081301CC: .4byte 0x02021C40 +_081301D0: .4byte 0x0858F5D0 +_081301D4: .4byte 0x0824C200 +_081301D8: .4byte 0x085C941F +_081301DC: .4byte 0x0858F5E4 +_081301E0: .4byte 0x02021C54 +_081301E4: .4byte 0x02021C68 +_081301E8: .4byte 0x02021C7C +_081301EC: .4byte 0x0824C1F5 +_081301F0: .4byte 0x030011F7 +_081301F4: + ldr r0, _08130234 + adds r1, #0xb + bl StringCopy + ldr r4, _08130238 + ldr r1, _0813023C + lsls r0, r5, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r0, _08130240 + ldrb r0, [r0] + movs r1, #1 + str r1, [sp] + movs r1, #0 + str r1, [sp, #4] + str r1, [sp, #8] + movs r1, #1 + adds r2, r4, #0 + movs r3, #0 + bl AddTextPrinterParameterized +_08130224: + movs r0, #1 + bl CopyBgTilemapBufferToVram +_0813022A: + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08130234: .4byte 0x02021C40 +_08130238: .4byte 0x02021C7C +_0813023C: .4byte 0x0858F604 +_08130240: .4byte 0x030011F7 + thumb_func_end PrintContestPaintingCaption + + thumb_func_start InitContestPaintingBg +InitContestPaintingBg: @ 0x08130244 + push {lr} + movs r0, #0 + movs r1, #0 + bl SetGpuReg + ldr r2, _08130284 + ldrh r0, [r2] + movs r1, #1 + orrs r0, r1 + strh r0, [r2] + ldr r1, _08130288 + movs r0, #8 + bl SetGpuReg + ldr r1, _0813028C + movs r0, #0xa + bl SetGpuReg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 +_08130284: .4byte 0x04000200 +_08130288: .4byte 0x00000C42 +_0813028C: .4byte 0x00000A45 + thumb_func_end InitContestPaintingBg + + thumb_func_start InitContestPaintingVars +InitContestPaintingVars: @ 0x08130290 + push {lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _081302B4 + ldr r0, _081302A8 + strb r1, [r0] + ldr r0, _081302AC + strh r1, [r0] + ldr r0, _081302B0 + strh r1, [r0] + b _081302C6 + .align 2, 0 +_081302A8: .4byte 0x030011F6 +_081302AC: .4byte 0x030011F2 +_081302B0: .4byte 0x030011F4 +_081302B4: + ldr r1, _081302CC + movs r0, #1 + strb r0, [r1] + ldr r1, _081302D0 + movs r0, #0xf + strh r0, [r1] + ldr r1, _081302D4 + movs r0, #0x1e + strh r0, [r1] +_081302C6: + pop {r0} + bx r0 + .align 2, 0 +_081302CC: .4byte 0x030011F6 +_081302D0: .4byte 0x030011F2 +_081302D4: .4byte 0x030011F4 + thumb_func_end InitContestPaintingVars + + thumb_func_start UpdateContestPaintingMosaicEffect +UpdateContestPaintingMosaicEffect: @ 0x081302D8 + push {lr} + ldr r0, _081302EC + ldrb r0, [r0] + cmp r0, #0 + bne _081302F0 + movs r0, #0x4c + movs r1, #0 + bl SetGpuReg + b _08130318 + .align 2, 0 +_081302EC: .4byte 0x030011F6 +_081302F0: + ldr r1, _0813031C + movs r0, #0xa + bl SetGpuReg + ldr r1, _08130320 + ldr r0, _08130324 + ldrh r0, [r0] + lsrs r0, r0, #1 + strh r0, [r1] + lsls r1, r0, #0xc + lsls r2, r0, #8 + orrs r1, r2 + lsls r2, r0, #4 + orrs r1, r2 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x4c + bl SetGpuReg +_08130318: + pop {r0} + bx r0 + .align 2, 0 +_0813031C: .4byte 0x00000A45 +_08130320: .4byte 0x030011F2 +_08130324: .4byte 0x030011F4 + thumb_func_end UpdateContestPaintingMosaicEffect + + thumb_func_start VBlankCB_ContestPainting +VBlankCB_ContestPainting: @ 0x08130328 + push {lr} + bl UpdateContestPaintingMosaicEffect + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end VBlankCB_ContestPainting + + thumb_func_start sub_08130340 +sub_08130340: @ 0x08130340 + push {r4, r5, r6, r7, lr} + adds r4, r1, #0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r6, _0813038C + ldr r0, [r6] + ldr r1, [r0, #4] + ldr r2, [r0] + adds r0, r5, #0 + bl GetMonSpritePalFromSpeciesAndPersonality + ldr r7, _08130390 + ldr r1, [r7] + bl LZDecompressWram + cmp r4, #0 + bne _081303A0 + lsls r0, r5, #3 + ldr r1, _08130394 + adds r0, r0, r1 + ldr r4, _08130398 + ldr r1, [r4] + ldr r1, [r1, #8] + ldr r2, [r6] + ldr r3, [r2] + adds r2, r5, #0 + bl HandleLoadSpecialPokePic_DontHandleDeoxys + ldr r0, [r4] + ldr r0, [r0, #8] + ldr r1, [r7] + ldr r2, _0813039C + ldr r2, [r2] + bl sub_081303D8 + b _081303C4 + .align 2, 0 +_0813038C: .4byte 0x03005F00 +_08130390: .4byte 0x03005F04 +_08130394: .4byte 0x082DDA1C +_08130398: .4byte 0x02024178 +_0813039C: .4byte 0x03005ED0 +_081303A0: + lsls r0, r5, #3 + ldr r1, _081303CC + adds r0, r0, r1 + ldr r4, _081303D0 + ldr r1, [r4] + ldr r1, [r1, #4] + ldr r2, [r6] + ldr r3, [r2] + adds r2, r5, #0 + bl HandleLoadSpecialPokePic_DontHandleDeoxys + ldr r0, [r4] + ldr r0, [r0, #4] + ldr r1, [r7] + ldr r2, _081303D4 + ldr r2, [r2] + bl sub_081303D8 +_081303C4: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081303CC: .4byte 0x082D6148 +_081303D0: .4byte 0x02024178 +_081303D4: .4byte 0x03005ED0 + thumb_func_end sub_08130340 + + thumb_func_start sub_081303D8 +sub_081303D8: @ 0x081303D8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + mov sl, r0 + mov sb, r1 + str r2, [sp] + movs r0, #0 +_081303EC: + movs r3, #0 + adds r1, r0, #1 + str r1, [sp, #4] + lsls r0, r0, #3 + str r0, [sp, #8] +_081303F6: + movs r1, #0 + adds r2, r3, #1 + mov r8, r2 + ldr r7, [sp, #8] + adds r0, r7, r3 + lsls r0, r0, #5 + mov ip, r0 + lsls r4, r3, #3 +_08130406: + movs r3, #0 + lsls r0, r1, #2 + adds r6, r1, #1 + mov r2, ip + adds r5, r2, r0 + ldr r7, [sp, #8] + adds r0, r7, r1 + lsls r0, r0, #7 + ldr r1, [sp] + adds r2, r0, r1 +_0813041A: + lsrs r0, r3, #1 + adds r0, r5, r0 + add r0, sl + ldrb r1, [r0] + movs r0, #1 + ands r0, r3 + cmp r0, #0 + beq _0813042E + lsrs r1, r1, #4 + b _08130432 +_0813042E: + movs r0, #0xf + ands r1, r0 +_08130432: + cmp r1, #0 + bne _08130444 + adds r0, r4, r3 + lsls r0, r0, #1 + adds r0, r0, r2 + movs r7, #0x80 + lsls r7, r7, #8 + adds r1, r7, #0 + b _08130450 +_08130444: + adds r0, r4, r3 + lsls r0, r0, #1 + adds r0, r0, r2 + lsls r1, r1, #1 + add r1, sb + ldrh r1, [r1] +_08130450: + strh r1, [r0] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #7 + bls _0813041A + lsls r0, r6, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #7 + bls _08130406 + mov r1, r8 + lsls r0, r1, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #7 + bls _081303F6 + ldr r2, [sp, #4] + lsls r0, r2, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #7 + bls _081303EC + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_081303D8 + + thumb_func_start sub_08130488 +sub_08130488: @ 0x08130488 + push {r4, r5, r6, r7, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081304C4 + movs r2, #0x80 + lsls r2, r2, #1 + movs r1, #0 + bl LoadPalette + cmp r4, #1 + beq _081304A6 + b _081305FC +_081304A6: + ldr r0, _081304C8 + ldr r0, [r0] + ldrb r0, [r0, #0xa] + movs r1, #3 + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _08130564 + lsls r0, r0, #2 + ldr r1, _081304CC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081304C4: .4byte 0x085886AC +_081304C8: .4byte 0x03005F00 +_081304CC: .4byte 0x081304D0 +_081304D0: @ jump table + .4byte _081304E4 @ case 0 + .4byte _081304FC @ case 1 + .4byte _08130514 @ case 2 + .4byte _0813052C @ case 3 + .4byte _08130550 @ case 4 +_081304E4: + ldr r0, _081304F4 + movs r1, #0xc0 + lsls r1, r1, #0x13 + bl RLUnCompVram + ldr r0, _081304F8 + b _08130538 + .align 2, 0 +_081304F4: .4byte 0x085888AC +_081304F8: .4byte 0x0858D784 +_081304FC: + ldr r0, _0813050C + movs r1, #0xc0 + lsls r1, r1, #0x13 + bl RLUnCompVram + ldr r0, _08130510 + b _08130538 + .align 2, 0 +_0813050C: .4byte 0x08589930 +_08130510: .4byte 0x0858DC90 +_08130514: + ldr r0, _08130524 + movs r1, #0xc0 + lsls r1, r1, #0x13 + bl RLUnCompVram + ldr r0, _08130528 + b _08130538 + .align 2, 0 +_08130524: .4byte 0x0858A560 +_08130528: .4byte 0x0858E19C +_0813052C: + ldr r0, _08130544 + movs r1, #0xc0 + lsls r1, r1, #0x13 + bl RLUnCompVram + ldr r0, _08130548 +_08130538: + ldr r1, _0813054C + ldr r1, [r1] + bl RLUnCompWram + b _08130564 + .align 2, 0 +_08130544: .4byte 0x0858B098 +_08130548: .4byte 0x0858E6A8 +_0813054C: .4byte 0x03005ED0 +_08130550: + ldr r0, _081305E0 + movs r1, #0xc0 + lsls r1, r1, #0x13 + bl RLUnCompVram + ldr r0, _081305E4 + ldr r1, _081305E8 + ldr r1, [r1] + bl RLUnCompWram +_08130564: + movs r1, #0 + ldr r5, _081305EC + ldr r0, _081305F0 + adds r4, r0, #0 +_0813056C: + movs r3, #0 + lsls r2, r1, #5 +_08130570: + adds r0, r2, r3 + lsls r0, r0, #1 + adds r0, r0, r5 + strh r4, [r0] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0x1f + bls _08130570 + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x13 + bls _0813056C + movs r1, #0 + ldr r0, _081305F4 + mov ip, r0 + ldr r7, _081305E8 +_08130594: + movs r3, #0 + adds r6, r1, #1 + lsls r5, r1, #5 + lsls r4, r1, #6 +_0813059C: + adds r2, r5, r3 + lsls r2, r2, #1 + add r2, ip + ldr r0, [r7] + adds r0, r4, r0 + lsls r1, r3, #1 + adds r0, r0, r1 + adds r0, #0x8c + ldrh r0, [r0] + strh r0, [r2] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0x11 + bls _0813059C + lsls r0, r6, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #9 + bls _08130594 + movs r3, #0 + ldr r4, _081305F8 + ldr r2, _081305E8 +_081305C8: + lsls r1, r3, #1 + adds r1, r1, r4 + ldr r0, [r2] + adds r0, #0x8e + ldrh r0, [r0] + strh r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0xf + bls _081305C8 + b _081306CE + .align 2, 0 +_081305E0: .4byte 0x0858C050 +_081305E4: .4byte 0x0858EBB4 +_081305E8: .4byte 0x03005ED0 +_081305EC: .4byte 0x06006000 +_081305F0: .4byte 0x00001015 +_081305F4: .4byte 0x0600608C +_081305F8: .4byte 0x0600608E +_081305FC: + cmp r5, #7 + bhi _08130618 + ldr r0, _08130610 + movs r1, #0xc0 + lsls r1, r1, #0x13 + bl RLUnCompVram + ldr r0, _08130614 + b _081306A8 + .align 2, 0 +_08130610: .4byte 0x0858D180 +_08130614: .4byte 0x0858F0C0 +_08130618: + ldr r0, _08130638 + ldr r0, [r0] + ldrb r0, [r0, #0xa] + movs r1, #3 + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _081306CE + lsls r0, r0, #2 + ldr r1, _0813063C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08130638: .4byte 0x03005F00 +_0813063C: .4byte 0x08130640 +_08130640: @ jump table + .4byte _08130654 @ case 0 + .4byte _0813066C @ case 1 + .4byte _08130684 @ case 2 + .4byte _0813069C @ case 3 + .4byte _081306BC @ case 4 +_08130654: + ldr r0, _08130664 + movs r1, #0xc0 + lsls r1, r1, #0x13 + bl RLUnCompVram + ldr r0, _08130668 + b _081306A8 + .align 2, 0 +_08130664: .4byte 0x085888AC +_08130668: .4byte 0x0858D784 +_0813066C: + ldr r0, _0813067C + movs r1, #0xc0 + lsls r1, r1, #0x13 + bl RLUnCompVram + ldr r0, _08130680 + b _081306A8 + .align 2, 0 +_0813067C: .4byte 0x08589930 +_08130680: .4byte 0x0858DC90 +_08130684: + ldr r0, _08130694 + movs r1, #0xc0 + lsls r1, r1, #0x13 + bl RLUnCompVram + ldr r0, _08130698 + b _081306A8 + .align 2, 0 +_08130694: .4byte 0x0858A560 +_08130698: .4byte 0x0858E19C +_0813069C: + ldr r0, _081306B0 + movs r1, #0xc0 + lsls r1, r1, #0x13 + bl RLUnCompVram + ldr r0, _081306B4 +_081306A8: + ldr r1, _081306B8 + bl RLUnCompVram + b _081306CE + .align 2, 0 +_081306B0: .4byte 0x0858B098 +_081306B4: .4byte 0x0858E6A8 +_081306B8: .4byte 0x06006000 +_081306BC: + ldr r0, _081306D4 + movs r1, #0xc0 + lsls r1, r1, #0x13 + bl RLUnCompVram + ldr r0, _081306D8 + ldr r1, _081306DC + bl RLUnCompVram +_081306CE: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081306D4: .4byte 0x0858C050 +_081306D8: .4byte 0x0858EBB4 +_081306DC: .4byte 0x06006000 + thumb_func_end sub_08130488 + + thumb_func_start sub_081306E0 +sub_081306E0: @ 0x081306E0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _08130714 + ldr r1, _08130718 + ldr r2, [r1, #4] + ldr r1, [r1] + str r1, [r3, #0x38] + str r2, [r3, #0x3c] + ldrh r2, [r3, #0x3c] + ldr r1, _0813071C + ands r1, r2 + strh r1, [r3, #0x3c] + ldrh r1, [r3, #0x3a] + ldr r0, _08130720 + ands r0, r1 + movs r1, #0x58 + orrs r0, r1 + strh r0, [r3, #0x3a] + adds r1, r3, #0 + adds r1, #0x38 + movs r0, #0x18 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08130714: .4byte 0x03002360 +_08130718: .4byte 0x0858F640 +_0813071C: .4byte 0xFFFFFC00 +_08130720: .4byte 0xFFFFFE00 + thumb_func_end sub_081306E0 + + thumb_func_start sub_08130724 +sub_08130724: @ 0x08130724 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #7 + bhi _0813073C + ldr r0, _08130738 + ldr r0, [r0] + ldrb r0, [r0, #0xa] + b _0813074C + .align 2, 0 +_08130738: .4byte 0x03005F00 +_0813073C: + ldr r0, _0813075C + ldr r0, [r0] + ldrb r0, [r0, #0xa] + movs r1, #3 + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_0813074C: + cmp r0, #4 + bhi _0813078A + lsls r0, r0, #2 + ldr r1, _08130760 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0813075C: .4byte 0x03005F00 +_08130760: .4byte 0x08130764 +_08130764: @ jump table + .4byte _08130778 @ case 0 + .4byte _0813077C @ case 1 + .4byte _08130780 @ case 2 + .4byte _08130784 @ case 3 + .4byte _08130788 @ case 4 +_08130778: + movs r0, #9 + b _0813078A +_0813077C: + movs r0, #0xd + b _0813078A +_08130780: + movs r0, #2 + b _0813078A +_08130784: + movs r0, #0x24 + b _0813078A +_08130788: + movs r0, #6 +_0813078A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08130724 + + thumb_func_start sub_08130790 +sub_08130790: @ 0x08130790 + push {r4, lr} + ldr r4, _081307B0 + movs r0, #0x80 + lsls r0, r0, #2 + bl AllocZeroed + str r0, [r4] + ldr r4, _081307B4 + movs r0, #0x80 + lsls r0, r0, #6 + bl AllocZeroed + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081307B0: .4byte 0x03005F04 +_081307B4: .4byte 0x03005ED0 + thumb_func_end sub_08130790 + + thumb_func_start sub_081307B8 +sub_081307B8: @ 0x081307B8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r1, _081307F8 + ldr r0, _081307FC + ldr r0, [r0] + str r0, [r1, #4] + ldr r0, _08130800 + ldr r0, [r0] + str r0, [r1, #8] + movs r2, #0 + strb r2, [r1, #0x18] + ldr r0, _08130804 + 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, #2 + adds r4, r1, #0 + cmp r0, #0x22 + bhi _0813089C + lsls r0, r0, #2 + ldr r1, _08130808 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081307F8: .4byte 0x03005EE0 +_081307FC: .4byte 0x03005ED0 +_08130800: .4byte 0x03005F04 +_08130804: .4byte 0x03005F00 +_08130808: .4byte 0x0813080C +_0813080C: @ jump table + .4byte _0813089C @ case 0 + .4byte _0813089C @ case 1 + .4byte _0813089C @ case 2 + .4byte _0813089C @ case 3 + .4byte _08130898 @ case 4 + .4byte _0813089C @ case 5 + .4byte _0813089C @ case 6 + .4byte _0813089C @ case 7 + .4byte _0813089C @ case 8 + .4byte _0813089C @ case 9 + .4byte _0813089C @ case 10 + .4byte _0813089C @ case 11 + .4byte _0813089C @ case 12 + .4byte _0813089C @ case 13 + .4byte _0813089C @ case 14 + .4byte _0813089C @ case 15 + .4byte _0813089C @ case 16 + .4byte _0813089C @ case 17 + .4byte _0813089C @ case 18 + .4byte _0813089C @ case 19 + .4byte _0813089C @ case 20 + .4byte _0813089C @ case 21 + .4byte _0813089C @ case 22 + .4byte _0813089C @ case 23 + .4byte _0813089C @ case 24 + .4byte _0813089C @ case 25 + .4byte _0813089C @ case 26 + .4byte _0813089C @ case 27 + .4byte _0813089C @ case 28 + .4byte _0813089C @ case 29 + .4byte _0813089C @ case 30 + .4byte _0813089C @ case 31 + .4byte _0813089C @ case 32 + .4byte _0813089C @ case 33 + .4byte _08130898 @ case 34 +_08130898: + movs r0, #3 + b _0813089E +_0813089C: + movs r0, #1 +_0813089E: + strh r0, [r4, #0x14] + movs r0, #2 + strh r0, [r4, #0x16] + strb r3, [r4] + ldr r0, _081308D4 + str r0, [r4, #0x10] + adds r0, r4, #0 + bl sub_08124F14 + adds r0, r4, #0 + bl sub_0812618C + adds r0, r4, #0 + bl sub_08126040 + ldr r0, _081308D8 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #1 + movs r2, #0x80 + lsls r2, r2, #2 + bl LoadPalette + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081308D4: .4byte 0x06010000 +_081308D8: .4byte 0x03005F04 + thumb_func_end sub_081307B8 + + thumb_func_start sub_081308DC +sub_081308DC: @ 0x081308DC + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + bl sub_08130790 + ldr r0, _0813091C + ldr r0, [r0] + ldrh r0, [r0, #8] + movs r1, #0 + bl sub_08130340 + adds r0, r4, #0 + bl sub_08130724 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_081307B8 + adds r0, r4, #0 + bl sub_081306E0 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08130488 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0813091C: .4byte 0x03005F00 + thumb_func_end sub_081308DC + diff --git a/asm/contest_painting_effects.s b/asm/contest_painting_effects.s new file mode 100644 index 0000000..d68fbc6 --- /dev/null +++ b/asm/contest_painting_effects.s @@ -0,0 +1,3632 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_08124DF4 +sub_08124DF4: @ 0x08124DF4 + push {r4, lr} + sub sp, #4 + ldr r4, _08124E08 + ldr r0, [r4] + ldrh r1, [r0, #4] + cmp r1, #0 + beq _08124E0C + cmp r1, #1 + beq _08124E26 + b _08124F02 + .align 2, 0 +_08124E08: .4byte 0x02039E14 +_08124E0C: + movs r0, #1 + rsbs r0, r0, #0 + str r1, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, [r4] + ldrh r0, [r1, #4] + adds r0, #1 + strh r0, [r1, #4] + b _08124F02 +_08124E26: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08124F02 + bl FreeRegionMapIconResources + ldr r1, [r4] + ldr r2, _08124E50 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _08124EE8 + ldrh r0, [r1, #8] + cmp r0, #0xf + beq _08124E80 + cmp r0, #0xf + bgt _08124E54 + cmp r0, #0 + beq _08124E6C + b _08124EA4 + .align 2, 0 +_08124E50: .4byte 0x00000A72 +_08124E54: + cmp r0, #0x3a + beq _08124E64 + cmp r0, #0x49 + bne _08124EA4 + movs r0, #0x15 + bl SetWarpDestinationToHealLocation + b _08124EE2 +_08124E64: + movs r0, #0x16 + bl SetWarpDestinationToHealLocation + b _08124EE2 +_08124E6C: + ldr r0, _08124E7C + ldr r0, [r0] + ldrb r0, [r0, #8] + movs r1, #0xd + cmp r0, #0 + bne _08124E98 + movs r1, #0xc + b _08124E98 + .align 2, 0 +_08124E7C: .4byte 0x03005AF0 +_08124E80: + ldr r0, _08124EA0 + bl FlagGet + lsls r0, r0, #0x18 + movs r1, #0xb + cmp r0, #0 + beq _08124E98 + ldr r0, [r4] + ldrb r0, [r0, #0xb] + cmp r0, #0 + bne _08124E98 + movs r1, #0x14 +_08124E98: + adds r0, r1, #0 + bl SetWarpDestinationToHealLocation + b _08124EE2 + .align 2, 0 +_08124EA0: .4byte 0x000008B4 +_08124EA4: + ldr r3, _08124EC0 + ldr r0, _08124EC4 + ldr r0, [r0] + ldrh r1, [r0, #8] + lsls r0, r1, #1 + adds r2, r0, r1 + adds r0, r3, #2 + adds r1, r2, r0 + ldrb r0, [r1] + cmp r0, #0 + beq _08124EC8 + bl SetWarpDestinationToHealLocation + b _08124EE2 + .align 2, 0 +_08124EC0: .4byte 0x0857D72C +_08124EC4: .4byte 0x02039E14 +_08124EC8: + adds r0, r2, r3 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r1, r3, #1 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r2, #1 + rsbs r2, r2, #0 + bl SetWarpDestinationToMapWarp +_08124EE2: + bl sub_080B6134 + b _08124EEE +_08124EE8: + ldr r0, _08124F0C + bl SetMainCallback2 +_08124EEE: + ldr r4, _08124F10 + ldr r0, [r4] + cmp r0, #0 + beq _08124EFE + bl Free + movs r0, #0 + str r0, [r4] +_08124EFE: + bl FreeAllWindowBuffers +_08124F02: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08124F0C: .4byte 0x081B5549 +_08124F10: .4byte 0x02039E14 + thumb_func_end sub_08124DF4 + + thumb_func_start sub_08124F14 +sub_08124F14: @ 0x08124F14 + push {lr} + ldr r2, _08124F5C + ldr r1, [r0, #4] + str r1, [r2] + ldr r2, _08124F60 + ldrb r1, [r0, #0x1f] + strb r1, [r2] + ldr r2, _08124F64 + ldrb r1, [r0, #0x19] + strb r1, [r2] + ldr r2, _08124F68 + ldrb r1, [r0, #0x1a] + strb r1, [r2] + ldr r2, _08124F6C + ldrb r1, [r0, #0x1b] + strb r1, [r2] + ldr r2, _08124F70 + ldrb r1, [r0, #0x1c] + strb r1, [r2] + ldr r2, _08124F74 + ldrb r1, [r0, #0x1d] + strb r1, [r2] + ldr r2, _08124F78 + ldrb r1, [r0, #0x1e] + strb r1, [r2] + ldrb r0, [r0] + subs r0, #2 + cmp r0, #0x22 + bls _08124F50 + b _0812509C +_08124F50: + lsls r0, r0, #2 + ldr r1, _08124F7C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08124F5C: .4byte 0x03005EA4 +_08124F60: .4byte 0x03005EB8 +_08124F64: .4byte 0x03005EA0 +_08124F68: .4byte 0x03005EB4 +_08124F6C: .4byte 0x03005EB0 +_08124F70: .4byte 0x03005EA8 +_08124F74: .4byte 0x03005EBC +_08124F78: .4byte 0x03005EAC +_08124F7C: .4byte 0x08124F80 +_08124F80: @ jump table + .4byte _0812500C @ case 0 + .4byte _0812509C @ case 1 + .4byte _0812509C @ case 2 + .4byte _0812509C @ case 3 + .4byte _0812506C @ case 4 + .4byte _0812509C @ case 5 + .4byte _08125012 @ case 6 + .4byte _08125018 @ case 7 + .4byte _0812502C @ case 8 + .4byte _0812503E @ case 9 + .4byte _0812509C @ case 10 + .4byte _08125054 @ case 11 + .4byte _0812509C @ case 12 + .4byte _0812509C @ case 13 + .4byte _0812509C @ case 14 + .4byte _0812509C @ case 15 + .4byte _0812509C @ case 16 + .4byte _0812509C @ case 17 + .4byte _0812509C @ case 18 + .4byte _0812509C @ case 19 + .4byte _0812509C @ case 20 + .4byte _0812509C @ case 21 + .4byte _0812509C @ case 22 + .4byte _0812509C @ case 23 + .4byte _0812509C @ case 24 + .4byte _0812509C @ case 25 + .4byte _0812509C @ case 26 + .4byte _0812509C @ case 27 + .4byte _0812505A @ case 28 + .4byte _08125038 @ case 29 + .4byte _08125060 @ case 30 + .4byte _08125066 @ case 31 + .4byte _0812509C @ case 32 + .4byte _0812509C @ case 33 + .4byte _08125078 @ case 34 +_0812500C: + bl sub_08125218 + b _0812509C +_08125012: + bl sub_081252D0 + b _0812509C +_08125018: + bl sub_081254C8 + ldr r0, _08125028 + ldrb r0, [r0] + bl sub_0812538C + b _0812509C + .align 2, 0 +_08125028: .4byte 0x03005EB8 +_0812502C: + bl sub_081254C8 + bl sub_08125618 + bl sub_08125430 +_08125038: + bl sub_08125618 + b _0812509C +_0812503E: + bl sub_081254C8 + bl sub_081257E0 + bl sub_081257E0 + bl sub_08125888 + bl sub_08125430 + b _0812509C +_08125054: + bl sub_081256B0 + b _0812509C +_0812505A: + bl sub_081254C8 + b _0812509C +_08125060: + bl sub_081257E0 + b _0812509C +_08125066: + bl sub_08125888 + b _0812509C +_0812506C: + bl sub_08125238 + movs r0, #3 + bl sub_081250A0 + b _0812509C +_08125078: + bl sub_081254C8 + bl sub_081257E0 + bl sub_08125888 + bl sub_08125430 + bl sub_081252D0 + bl sub_081252D0 + movs r0, #2 + bl sub_081250A0 + movs r0, #4 + bl sub_08125158 +_0812509C: + pop {r0} + bx r0 + thumb_func_end sub_08124F14 + + thumb_func_start sub_081250A0 +sub_081250A0: @ 0x081250A0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r2, #0 + ldr r0, _08125140 + mov r8, r0 + ldrb r0, [r0] + cmp r2, r0 + bhs _08125132 + ldr r1, _08125144 + mov ip, r1 + ldr r3, _08125148 + mov sl, r3 + ldr r0, _0812514C + mov sb, r0 +_081250C6: + ldr r1, _08125150 + ldrb r0, [r1] + adds r0, r0, r2 + mov r3, sl + ldrb r1, [r3] + muls r0, r1, r0 + lsls r0, r0, #1 + ldr r3, _08125154 + ldr r1, [r3] + adds r1, r1, r0 + mov r3, sb + ldrb r0, [r3] + lsls r0, r0, #1 + adds r3, r1, r0 + movs r4, #0 + adds r5, r2, #1 + mov r0, ip + ldrb r0, [r0] + cmp r4, r0 + bhs _08125126 + movs r6, #0x80 + lsls r6, r6, #8 +_081250F2: + ldrh r1, [r3] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + bne _08125116 + movs r0, #0x1f + ands r0, r1 + adds r0, r0, r7 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x1f + bls _0812510C + movs r2, #0x1f +_0812510C: + lsls r0, r2, #0xa + lsls r1, r2, #5 + orrs r0, r1 + orrs r0, r2 + strh r0, [r3] +_08125116: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r3, #2 + mov r1, ip + ldrb r1, [r1] + cmp r4, r1 + blo _081250F2 +_08125126: + lsls r0, r5, #0x18 + lsrs r2, r0, #0x18 + mov r3, r8 + ldrb r3, [r3] + cmp r2, r3 + blo _081250C6 +_08125132: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08125140: .4byte 0x03005EA8 +_08125144: .4byte 0x03005EB0 +_08125148: .4byte 0x03005EBC +_0812514C: .4byte 0x03005EA0 +_08125150: .4byte 0x03005EB4 +_08125154: .4byte 0x03005EA4 + thumb_func_end sub_081250A0 + + thumb_func_start sub_08125158 +sub_08125158: @ 0x08125158 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r2, #0 + ldr r0, _08125200 + ldrb r0, [r0] + cmp r2, r0 + bhs _081251F0 + ldr r1, _08125204 + mov sl, r1 +_08125176: + ldr r3, _08125208 + ldrb r0, [r3] + adds r0, r0, r2 + ldr r3, _0812520C + ldrb r1, [r3] + muls r0, r1, r0 + lsls r0, r0, #1 + ldr r3, _08125210 + ldr r1, [r3] + adds r1, r1, r0 + ldr r3, _08125214 + ldrb r0, [r3] + lsls r0, r0, #1 + adds r3, r1, r0 + movs r5, #0 + adds r7, r2, #1 + mov r0, sl + ldrb r0, [r0] + cmp r5, r0 + bhs _081251E4 + movs r1, #0x80 + lsls r1, r1, #8 + mov sb, r1 + movs r0, #0x1f + mov ip, r0 + mov r1, r8 + subs r6, r0, r1 +_081251AC: + ldrh r1, [r3] + mov r0, sb + ands r0, r1 + cmp r0, #0 + bne _081251D4 + movs r4, #0x1f + mov r2, ip + ands r2, r1 + cmp r2, r6 + ble _081251CA + mov r1, r8 + lsrs r0, r1, #1 + subs r0, r4, r0 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 +_081251CA: + lsls r0, r2, #0xa + lsls r1, r2, #5 + orrs r0, r1 + orrs r0, r2 + strh r0, [r3] +_081251D4: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r3, #2 + mov r0, sl + ldrb r0, [r0] + cmp r5, r0 + blo _081251AC +_081251E4: + lsls r0, r7, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _08125200 + ldrb r1, [r1] + cmp r2, r1 + blo _08125176 +_081251F0: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08125200: .4byte 0x03005EA8 +_08125204: .4byte 0x03005EB0 +_08125208: .4byte 0x03005EB4 +_0812520C: .4byte 0x03005EBC +_08125210: .4byte 0x03005EA4 +_08125214: .4byte 0x03005EA0 + thumb_func_end sub_08125158 + + thumb_func_start sub_08125218 +sub_08125218: @ 0x08125218 + push {r4, r5, lr} + movs r4, #0 + ldr r5, _08125234 +_0812521E: + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + bl sub_0812593C + adds r4, #1 + cmp r4, r5 + bls _0812521E + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08125234: .4byte 0x00000C7F + thumb_func_end sub_08125218 + + thumb_func_start sub_08125238 +sub_08125238: @ 0x08125238 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + movs r2, #0 + ldr r0, _081252B8 + ldrb r0, [r0] + cmp r2, r0 + bhs _081252AA + ldr r0, _081252BC + mov r8, r0 + ldr r3, _081252C0 +_08125250: + ldr r0, _081252C4 + ldrb r1, [r0] + adds r1, r1, r2 + ldr r0, _081252C8 + ldrb r0, [r0] + muls r0, r1, r0 + lsls r0, r0, #1 + mov r4, r8 + ldr r1, [r4] + adds r1, r1, r0 + ldr r0, _081252CC + ldrb r0, [r0] + lsls r0, r0, #1 + adds r4, r1, r0 + movs r5, #0 + adds r6, r2, #1 + ldrb r0, [r3] + cmp r5, r0 + bhs _0812529E + movs r0, #0x80 + lsls r0, r0, #8 + adds r7, r0, #0 +_0812527C: + ldrh r0, [r4] + ands r0, r7 + cmp r0, #0 + bne _08125290 + adds r0, r4, #0 + str r3, [sp] + bl ConvertColorToGrayscale + strh r0, [r4] + ldr r3, [sp] +_08125290: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r4, #2 + ldrb r0, [r3] + cmp r5, r0 + blo _0812527C +_0812529E: + lsls r0, r6, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _081252B8 + ldrb r0, [r0] + cmp r2, r0 + blo _08125250 +_081252AA: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081252B8: .4byte 0x03005EA8 +_081252BC: .4byte 0x03005EA4 +_081252C0: .4byte 0x03005EB0 +_081252C4: .4byte 0x03005EB4 +_081252C8: .4byte 0x03005EBC +_081252CC: .4byte 0x03005EA0 + thumb_func_end sub_08125238 + + thumb_func_start sub_081252D0 +sub_081252D0: @ 0x081252D0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + movs r2, #0 + ldr r0, _08125374 + ldrb r0, [r0] + cmp r2, r0 + bhs _08125366 + ldr r0, _08125378 + mov r8, r0 + ldr r3, _0812537C +_081252E8: + ldr r0, _08125380 + ldrb r1, [r0] + ldrb r0, [r3] + muls r0, r1, r0 + lsls r0, r0, #1 + mov r4, r8 + ldr r1, [r4] + adds r1, r1, r0 + ldr r0, _08125384 + ldrb r0, [r0] + adds r0, r0, r2 + lsls r0, r0, #1 + adds r4, r1, r0 + ldrh r1, [r4] + mov r0, sp + strh r1, [r0] + movs r5, #1 + ldrb r0, [r3] + lsls r0, r0, #1 + adds r4, r4, r0 + ldr r0, _08125388 + ldrb r0, [r0] + subs r0, #1 + adds r7, r2, #1 + cmp r5, r0 + bge _0812535A + ldr r6, _0812537C +_0812531E: + ldrh r0, [r4] + movs r2, #0x80 + lsls r2, r2, #8 + adds r1, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _08125344 + ldrb r2, [r6] + lsls r2, r2, #1 + adds r2, r4, r2 + mov r0, sp + adds r1, r4, #0 + str r3, [sp, #4] + bl sub_08125E00 + strh r0, [r4] + mov r1, sp + strh r0, [r1] + ldr r3, [sp, #4] +_08125344: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldrb r0, [r6] + lsls r0, r0, #1 + adds r4, r4, r0 + ldr r0, _08125388 + ldrb r0, [r0] + subs r0, #1 + cmp r5, r0 + blt _0812531E +_0812535A: + lsls r0, r7, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _08125374 + ldrb r0, [r0] + cmp r2, r0 + blo _081252E8 +_08125366: + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08125374: .4byte 0x03005EB0 +_08125378: .4byte 0x03005EA4 +_0812537C: .4byte 0x03005EBC +_08125380: .4byte 0x03005EB4 +_08125384: .4byte 0x03005EA0 +_08125388: .4byte 0x03005EA8 + thumb_func_end sub_081252D0 + + thumb_func_start sub_0812538C +sub_0812538C: @ 0x0812538C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r2, #0 + ldr r0, _08125418 + ldrb r0, [r0] + cmp r2, r0 + bhs _08125408 + ldr r0, _0812541C + mov sb, r0 + ldr r3, _08125420 +_081253AC: + ldr r0, _08125424 + ldrb r1, [r0] + adds r1, r1, r2 + ldr r0, _08125428 + ldrb r0, [r0] + muls r0, r1, r0 + lsls r0, r0, #1 + mov r4, sb + ldr r1, [r4] + adds r1, r1, r0 + ldr r0, _0812542C + ldrb r0, [r0] + lsls r0, r0, #1 + adds r4, r1, r0 + movs r5, #0 + adds r6, r2, #1 + ldrb r0, [r3] + cmp r5, r0 + bhs _081253FC + movs r0, #0x80 + lsls r0, r0, #8 + adds r7, r0, #0 +_081253D8: + ldrh r0, [r4] + ands r0, r7 + cmp r0, #0 + bne _081253EE + adds r0, r4, #0 + mov r1, r8 + str r3, [sp] + bl ConvertCoolColor + strh r0, [r4] + ldr r3, [sp] +_081253EE: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r4, #2 + ldrb r0, [r3] + cmp r5, r0 + blo _081253D8 +_081253FC: + lsls r0, r6, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _08125418 + ldrb r0, [r0] + cmp r2, r0 + blo _081253AC +_08125408: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08125418: .4byte 0x03005EA8 +_0812541C: .4byte 0x03005EA4 +_08125420: .4byte 0x03005EB0 +_08125424: .4byte 0x03005EB4 +_08125428: .4byte 0x03005EBC +_0812542C: .4byte 0x03005EA0 + thumb_func_end sub_0812538C + + thumb_func_start sub_08125430 +sub_08125430: @ 0x08125430 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + movs r2, #0 + ldr r0, _081254B0 + ldrb r0, [r0] + cmp r2, r0 + bhs _081254A2 + ldr r0, _081254B4 + mov r8, r0 + ldr r3, _081254B8 +_08125448: + ldr r0, _081254BC + ldrb r1, [r0] + adds r1, r1, r2 + ldr r0, _081254C0 + ldrb r0, [r0] + muls r0, r1, r0 + lsls r0, r0, #1 + mov r4, r8 + ldr r1, [r4] + adds r1, r1, r0 + ldr r0, _081254C4 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r4, r1, r0 + movs r5, #0 + adds r6, r2, #1 + ldrb r0, [r3] + cmp r5, r0 + bhs _08125496 + movs r0, #0x80 + lsls r0, r0, #8 + adds r7, r0, #0 +_08125474: + ldrh r0, [r4] + ands r0, r7 + cmp r0, #0 + bne _08125488 + adds r0, r4, #0 + str r3, [sp] + bl ConvertToBlackOrWhite + strh r0, [r4] + ldr r3, [sp] +_08125488: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r4, #2 + ldrb r0, [r3] + cmp r5, r0 + blo _08125474 +_08125496: + lsls r0, r6, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _081254B0 + ldrb r0, [r0] + cmp r2, r0 + blo _08125448 +_081254A2: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081254B0: .4byte 0x03005EA8 +_081254B4: .4byte 0x03005EA4 +_081254B8: .4byte 0x03005EB0 +_081254BC: .4byte 0x03005EB4 +_081254C0: .4byte 0x03005EBC +_081254C4: .4byte 0x03005EA0 + thumb_func_end sub_08125430 + + thumb_func_start sub_081254C8 +sub_081254C8: @ 0x081254C8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + movs r7, #0 + ldr r0, _08125600 + ldrb r0, [r0] + cmp r7, r0 + bhs _08125554 + ldr r0, _08125604 + mov r8, r0 +_081254DE: + ldr r0, _08125608 + ldrb r1, [r0] + adds r1, r1, r7 + ldr r0, _0812560C + ldrb r0, [r0] + muls r0, r1, r0 + lsls r0, r0, #1 + mov r2, r8 + ldr r1, [r2] + adds r1, r1, r0 + ldr r0, _08125610 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r5, r1, r0 + adds r4, r5, #2 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08125C80 + strh r0, [r5] + movs r6, #1 + adds r5, r4, #0 + ldr r0, _08125614 + ldrb r0, [r0] + subs r0, #1 + adds r7, #1 + cmp r6, r0 + bge _0812553E +_08125516: + adds r4, r5, #2 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08125C80 + strh r0, [r5] + subs r1, r5, #2 + adds r0, r5, #0 + bl sub_08125C80 + strh r0, [r5] + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r5, r4, #0 + ldr r0, _08125614 + ldrb r0, [r0] + subs r0, #1 + cmp r6, r0 + blt _08125516 +_0812553E: + subs r1, r5, #2 + adds r0, r5, #0 + bl sub_08125C80 + strh r0, [r5] + lsls r0, r7, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _08125600 + ldrb r0, [r0] + cmp r7, r0 + blo _081254DE +_08125554: + movs r6, #0 + ldr r0, _08125614 + ldrb r0, [r0] + cmp r6, r0 + bhs _081255F4 + ldr r3, _08125604 + mov sb, r3 + ldr r0, _0812560C + mov r8, r0 +_08125566: + ldr r0, _08125608 + ldrb r0, [r0] + mov r2, r8 + ldrb r1, [r2] + muls r0, r1, r0 + lsls r0, r0, #1 + mov r3, sb + ldr r2, [r3] + adds r2, r2, r0 + ldr r0, _08125610 + ldrb r0, [r0] + adds r0, r0, r6 + lsls r0, r0, #1 + adds r5, r2, r0 + lsls r1, r1, #1 + adds r1, r5, r1 + adds r0, r5, #0 + bl sub_08125C80 + strh r0, [r5] + movs r7, #1 + mov r1, r8 + ldrb r0, [r1] + lsls r0, r0, #1 + adds r5, r5, r0 + ldr r0, _08125600 + ldrb r0, [r0] + subs r0, #1 + adds r6, #1 + cmp r7, r0 + bge _081255D8 + ldr r4, _0812560C +_081255A6: + ldrb r1, [r4] + lsls r1, r1, #1 + adds r1, r5, r1 + adds r0, r5, #0 + bl sub_08125C80 + strh r0, [r5] + ldrb r1, [r4] + lsls r1, r1, #1 + subs r1, r5, r1 + adds r0, r5, #0 + bl sub_08125C80 + strh r0, [r5] + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r5, r5, r0 + ldr r0, _08125600 + ldrb r0, [r0] + subs r0, #1 + cmp r7, r0 + blt _081255A6 +_081255D8: + mov r2, r8 + ldrb r1, [r2] + lsls r1, r1, #1 + subs r1, r5, r1 + adds r0, r5, #0 + bl sub_08125C80 + strh r0, [r5] + lsls r0, r6, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _08125614 + ldrb r0, [r0] + cmp r6, r0 + blo _08125566 +_081255F4: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08125600: .4byte 0x03005EA8 +_08125604: .4byte 0x03005EA4 +_08125608: .4byte 0x03005EB4 +_0812560C: .4byte 0x03005EBC +_08125610: .4byte 0x03005EA0 +_08125614: .4byte 0x03005EB0 + thumb_func_end sub_081254C8 + + thumb_func_start sub_08125618 +sub_08125618: @ 0x08125618 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + movs r2, #0 + ldr r0, _08125698 + ldrb r0, [r0] + cmp r2, r0 + bhs _0812568A + ldr r0, _0812569C + mov r8, r0 + ldr r3, _081256A0 +_08125630: + ldr r0, _081256A4 + ldrb r1, [r0] + adds r1, r1, r2 + ldr r0, _081256A8 + ldrb r0, [r0] + muls r0, r1, r0 + lsls r0, r0, #1 + mov r4, r8 + ldr r1, [r4] + adds r1, r1, r0 + ldr r0, _081256AC + ldrb r0, [r0] + lsls r0, r0, #1 + adds r4, r1, r0 + movs r5, #0 + adds r6, r2, #1 + ldrb r0, [r3] + cmp r5, r0 + bhs _0812567E + movs r0, #0x80 + lsls r0, r0, #8 + adds r7, r0, #0 +_0812565C: + ldrh r0, [r4] + ands r0, r7 + cmp r0, #0 + bne _08125670 + adds r0, r4, #0 + str r3, [sp] + bl InvertColor + strh r0, [r4] + ldr r3, [sp] +_08125670: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r4, #2 + ldrb r0, [r3] + cmp r5, r0 + blo _0812565C +_0812567E: + lsls r0, r6, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _08125698 + ldrb r0, [r0] + cmp r2, r0 + blo _08125630 +_0812568A: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08125698: .4byte 0x03005EA8 +_0812569C: .4byte 0x03005EA4 +_081256A0: .4byte 0x03005EB0 +_081256A4: .4byte 0x03005EB4 +_081256A8: .4byte 0x03005EBC +_081256AC: .4byte 0x03005EA0 + thumb_func_end sub_08125618 + + thumb_func_start sub_081256B0 +sub_081256B0: @ 0x081256B0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r0, _081257DC + ldr r4, [r0] + movs r6, #0 + movs r0, #0x80 + lsls r0, r0, #8 + adds r5, r0, #0 +_081256C8: + movs r7, #0 +_081256CA: + ldrh r0, [r4] + ands r0, r5 + cmp r0, #0 + bne _081256DA + adds r0, r4, #0 + bl InvertColor + strh r0, [r4] +_081256DA: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + adds r4, #2 + cmp r7, #0x3f + bls _081256CA + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0x3f + bls _081256C8 + movs r7, #0 + ldr r1, _081257DC + mov sl, r1 + mov r3, sp + movs r2, #0x80 + lsls r2, r2, #8 + mov sb, r2 +_081256FE: + lsls r0, r7, #1 + mov r2, sl + ldr r1, [r2] + adds r4, r1, r0 + ldrh r1, [r4] + strh r1, [r3] + mov r1, sb + strh r1, [r4] + movs r6, #1 + adds r4, #0x80 + adds r5, r0, #0 +_08125714: + ldrh r0, [r4] + movs r2, #0x80 + lsls r2, r2, #8 + ands r0, r2 + cmp r0, #0 + bne _08125734 + adds r2, r4, #0 + adds r2, #0x80 + mov r0, sp + adds r1, r4, #0 + str r3, [sp, #4] + bl sub_08125F20 + strh r0, [r4] + ldr r3, [sp, #4] + strh r0, [r3] +_08125734: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r4, #0x80 + cmp r6, #0x3e + bls _08125714 + mov r0, sb + strh r0, [r4] + mov r1, sl + ldr r0, [r1] + adds r4, r0, r5 + ldrh r0, [r4] + strh r0, [r3] + mov r2, sb + strh r2, [r4] + movs r6, #1 + adds r4, #0x80 + movs r0, #0x80 + lsls r0, r0, #8 + mov r8, r0 +_0812575C: + ldrh r0, [r4] + mov r1, r8 + ands r0, r1 + adds r5, r4, #0 + adds r5, #0x80 + cmp r0, #0 + bne _0812577C + mov r0, sp + adds r1, r4, #0 + adds r2, r5, #0 + str r3, [sp, #4] + bl sub_08125F20 + strh r0, [r4] + ldr r3, [sp, #4] + strh r0, [r3] +_0812577C: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r4, r5, #0 + cmp r6, #0x3e + bls _0812575C + mov r2, sb + strh r2, [r4] + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #0x3f + bls _081256FE + ldr r0, _081257DC + ldr r4, [r0] + movs r6, #0 + movs r0, #0x80 + lsls r0, r0, #8 + mov r8, r0 +_081257A2: + movs r7, #0 + adds r5, r6, #1 +_081257A6: + ldrh r0, [r4] + mov r1, r8 + ands r0, r1 + cmp r0, #0 + bne _081257B8 + adds r0, r4, #0 + bl InvertColor + strh r0, [r4] +_081257B8: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + adds r4, #2 + cmp r7, #0x3f + bls _081257A6 + lsls r0, r5, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0x3f + bls _081257A2 + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081257DC: .4byte 0x03005EA4 + thumb_func_end sub_081256B0 + + thumb_func_start sub_081257E0 +sub_081257E0: @ 0x081257E0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + movs r2, #0 + ldr r0, _08125870 + ldrb r0, [r0] + cmp r2, r0 + bhs _08125862 + ldr r0, _08125874 + mov r8, r0 +_081257F6: + ldr r0, _08125878 + ldrb r1, [r0] + adds r1, r1, r2 + ldr r0, _0812587C + ldrb r0, [r0] + muls r0, r1, r0 + lsls r0, r0, #1 + mov r3, r8 + ldr r1, [r3] + adds r1, r1, r0 + ldr r0, _08125880 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r4, r1, r0 + ldrh r1, [r4] + mov r0, sp + strh r1, [r0] + movs r5, #1 + adds r4, #2 + ldr r0, _08125884 + ldrb r0, [r0] + subs r0, #1 + adds r6, r2, #1 + cmp r5, r0 + bge _08125856 + movs r0, #0x80 + lsls r0, r0, #8 + adds r7, r0, #0 +_0812582E: + ldrh r0, [r4] + ands r0, r7 + cmp r0, #0 + bne _08125844 + mov r0, sp + adds r1, r4, #0 + bl sub_08125CDC + strh r0, [r4] + mov r1, sp + strh r0, [r1] +_08125844: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r4, #2 + ldr r0, _08125884 + ldrb r0, [r0] + subs r0, #1 + cmp r5, r0 + blt _0812582E +_08125856: + lsls r0, r6, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _08125870 + ldrb r0, [r0] + cmp r2, r0 + blo _081257F6 +_08125862: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08125870: .4byte 0x03005EA8 +_08125874: .4byte 0x03005EA4 +_08125878: .4byte 0x03005EB4 +_0812587C: .4byte 0x03005EBC +_08125880: .4byte 0x03005EA0 +_08125884: .4byte 0x03005EB0 + thumb_func_end sub_081257E0 + + thumb_func_start sub_08125888 +sub_08125888: @ 0x08125888 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + movs r2, #0 + ldr r0, _08125924 + ldrb r0, [r0] + cmp r2, r0 + bhs _08125916 + ldr r0, _08125928 + mov r8, r0 + ldr r7, _0812592C +_081258A0: + ldr r0, _08125930 + ldrb r1, [r0] + ldrb r0, [r7] + muls r0, r1, r0 + lsls r0, r0, #1 + mov r3, r8 + ldr r1, [r3] + adds r1, r1, r0 + ldr r0, _08125934 + ldrb r0, [r0] + adds r0, r0, r2 + lsls r0, r0, #1 + adds r4, r1, r0 + ldrh r1, [r4] + mov r0, sp + strh r1, [r0] + movs r5, #1 + ldrb r0, [r7] + lsls r0, r0, #1 + adds r4, r4, r0 + ldr r0, _08125938 + ldrb r0, [r0] + subs r0, #1 + adds r6, r2, #1 + cmp r5, r0 + bge _0812590A + movs r0, #0x80 + lsls r0, r0, #8 + adds r2, r0, #0 +_081258DA: + ldrh r0, [r4] + ands r0, r2 + cmp r0, #0 + bne _081258F4 + mov r0, sp + adds r1, r4, #0 + str r2, [sp, #4] + bl sub_08125CDC + strh r0, [r4] + mov r1, sp + strh r0, [r1] + ldr r2, [sp, #4] +_081258F4: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldrb r0, [r7] + lsls r0, r0, #1 + adds r4, r4, r0 + ldr r0, _08125938 + ldrb r0, [r0] + subs r0, #1 + cmp r5, r0 + blt _081258DA +_0812590A: + lsls r0, r6, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _08125924 + ldrb r0, [r0] + cmp r2, r0 + blo _081258A0 +_08125916: + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08125924: .4byte 0x03005EB0 +_08125928: .4byte 0x03005EA4 +_0812592C: .4byte 0x03005EBC +_08125930: .4byte 0x03005EB4 +_08125934: .4byte 0x03005EA0 +_08125938: .4byte 0x03005EA8 + thumb_func_end sub_08125888 + + thumb_func_start sub_0812593C +sub_0812593C: @ 0x0812593C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 + mov r2, sp + ldr r3, _081259A8 + lsls r1, r0, #1 + add r1, sl + adds r0, r1, r3 + ldrb r0, [r0] + strb r0, [r2] + adds r0, r3, #1 + adds r0, r1, r0 + ldrb r0, [r0] + strb r0, [r2, #1] + mov r5, sp + adds r0, r3, #2 + adds r1, r1, r0 + ldrb r4, [r1] + lsls r2, r4, #0x18 + lsrs r1, r2, #0x1b + movs r0, #7 + ands r1, r0 + strh r1, [r5, #2] + lsrs r2, r2, #0x19 + mov sb, r2 + movs r0, #3 + ands r2, r0 + mov sb, r2 + movs r5, #1 + ands r5, r4 + movs r4, #1 + mov r8, r4 + cmp r8, r1 + bhs _081259EE + mov r3, sp +_0812598E: + cmp r5, #0 + bne _081259AC + mov r0, r8 + lsls r2, r0, #2 + mov r4, sp + adds r1, r4, r2 + ldrb r0, [r3] + mov r4, r8 + subs r0, r0, r4 + strb r0, [r1] + ldrb r0, [r3, #1] + add r0, r8 + b _081259BE + .align 2, 0 +_081259A8: .4byte 0x0857D884 +_081259AC: + mov r0, r8 + lsls r2, r0, #2 + mov r4, sp + adds r1, r4, r2 + ldrb r0, [r3] + adds r0, #1 + strb r0, [r1] + ldrb r0, [r3, #1] + subs r0, #1 +_081259BE: + strb r0, [r1, #1] + add r2, sp + ldrb r0, [r2] + cmp r0, #0x3f + bhi _081259CE + ldrb r0, [r2, #1] + cmp r0, #0x3f + bls _081259D6 +_081259CE: + mov r0, r8 + subs r0, #1 + strh r0, [r3, #2] + b _081259EE +_081259D6: + ldrh r0, [r3, #2] + mov r1, r8 + subs r0, r0, r1 + strh r0, [r2, #2] + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldrh r0, [r3, #2] + cmp r8, r0 + blo _0812598E +_081259EE: + movs r2, #0 + mov r8, r2 + mov r0, sp + ldrh r0, [r0, #2] + cmp r8, r0 + blo _081259FC + b _08125AFE +_081259FC: + movs r3, #0x1f +_081259FE: + ldr r1, _08125A5C + mov r4, r8 + lsls r0, r4, #2 + mov r2, sp + adds r6, r2, r0 + ldrb r0, [r6, #1] + lsls r0, r0, #7 + ldr r1, [r1] + adds r1, r1, r0 + ldrb r0, [r6] + lsls r0, r0, #1 + adds r2, r1, r0 + ldrh r1, [r2] + movs r4, #0x80 + lsls r4, r4, #8 + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + bne _08125AEA + movs r7, #0x1f + ands r7, r1 + lsls r0, r1, #0x10 + lsrs r5, r0, #0x15 + ands r5, r3 + lsrs r4, r0, #0x1a + ands r4, r3 + mov r0, sb + cmp r0, #0 + blt _08125AE0 + cmp r0, #1 + ble _08125A60 + cmp r0, #3 + bgt _08125AE0 + ldrh r0, [r6, #2] + adds r1, r7, r0 + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + adds r1, r5, r0 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + adds r0, r4, r0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r7, #0x1f + bls _08125AD4 + movs r7, #0x1f + b _08125AD4 + .align 2, 0 +_08125A5C: .4byte 0x03005EA4 +_08125A60: + mov r1, sl + lsls r0, r1, #1 + add r0, sl + ldr r1, _08125A94 + adds r1, #2 + adds r0, r0, r1 + ldrb r0, [r0] + lsrs r0, r0, #3 + movs r1, #7 + ands r0, r1 + movs r1, #3 + str r2, [sp, #0x18] + str r3, [sp, #0x1c] + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, [sp, #0x18] + ldr r3, [sp, #0x1c] + cmp r0, #1 + beq _08125AB0 + cmp r0, #1 + bgt _08125A98 + cmp r0, #0 + beq _08125A9E + b _08125AE0 + .align 2, 0 +_08125A94: .4byte 0x0857D884 +_08125A98: + cmp r0, #2 + beq _08125AC2 + b _08125AE0 +_08125A9E: + ldrh r0, [r6, #2] + cmp r7, r0 + blo _08125AAC + subs r0, r7, r0 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + b _08125AE0 +_08125AAC: + movs r7, #0 + b _08125AE0 +_08125AB0: + ldrh r0, [r6, #2] + cmp r5, r0 + blo _08125ABE + subs r0, r5, r0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + b _08125AE0 +_08125ABE: + movs r5, #0 + b _08125AE0 +_08125AC2: + ldrh r0, [r6, #2] + cmp r4, r0 + blo _08125AD0 + subs r0, r4, r0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + b _08125AE0 +_08125AD0: + movs r4, #0 + b _08125AE0 +_08125AD4: + cmp r5, #0x1f + bls _08125ADA + movs r5, #0x1f +_08125ADA: + cmp r4, #0x1f + bls _08125AE0 + movs r4, #0x1f +_08125AE0: + lsls r0, r4, #0xa + lsls r1, r5, #5 + orrs r0, r1 + orrs r7, r0 + strh r7, [r2] +_08125AEA: + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + mov r0, sp + ldrh r0, [r0, #2] + cmp r8, r0 + bhs _08125AFE + b _081259FE +_08125AFE: + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0812593C + + thumb_func_start ConvertColorToGrayscale +ConvertColorToGrayscale: @ 0x08125B10 + ldrh r2, [r0] + movs r0, #0x1f + adds r1, r2, #0 + ands r1, r0 + asrs r3, r2, #5 + ands r3, r0 + asrs r2, r2, #0xa + ands r2, r0 + movs r0, #0x4c + muls r1, r0, r1 + movs r0, #0x97 + muls r0, r3, r0 + adds r1, r1, r0 + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r1, r1, r0 + asrs r1, r1, #8 + lsls r0, r1, #0xa + lsls r2, r1, #5 + orrs r0, r2 + orrs r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bx lr + thumb_func_end ConvertColorToGrayscale + + thumb_func_start ConvertCoolColor +ConvertCoolColor: @ 0x08125B44 + push {r4, lr} + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + ldrh r0, [r0] + movs r2, #0x1f + movs r1, #0x1f + ands r1, r0 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x15 + ands r3, r2 + lsrs r0, r0, #0x1a + ands r0, r2 + cmp r1, #0x10 + bhi _08125B74 + cmp r3, #0x10 + bhi _08125B74 + cmp r0, #0x10 + bhi _08125B74 + adds r0, r4, #0 + bl GetCoolColorFromPersonality + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _08125B76 +_08125B74: + ldr r0, _08125B7C +_08125B76: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08125B7C: .4byte 0x00007FFF + thumb_func_end ConvertCoolColor + + thumb_func_start GetCoolColorFromPersonality +GetCoolColorFromPersonality: @ 0x08125B80 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + mov r8, r0 + movs r6, #0 + movs r7, #0 + adds r0, r4, #0 + movs r1, #6 + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #3 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r4, #0 + movs r1, #6 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + bhi _08125C38 + lsls r0, r0, #2 + ldr r1, _08125BC4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08125BC4: .4byte 0x08125BC8 +_08125BC8: @ jump table + .4byte _08125BE0 @ case 0 + .4byte _08125BF0 @ case 1 + .4byte _08125C00 @ case 2 + .4byte _08125C0E @ case 3 + .4byte _08125C1C @ case 4 + .4byte _08125C2A @ case 5 +_08125BE0: + movs r0, #0x15 + subs r0, r0, r5 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r7, r6, #0 + movs r1, #0 + mov r8, r1 + b _08125C38 +_08125BF0: + movs r7, #0 + movs r0, #0x15 + subs r0, r0, r5 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + mov r6, r8 + b _08125C38 +_08125C00: + movs r0, #0x15 + subs r0, r0, r5 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + movs r6, #0 + mov r8, r7 + b _08125C38 +_08125C0E: + movs r7, #0 + movs r6, #0 + movs r0, #0x17 + subs r0, r0, r5 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _08125C36 +_08125C1C: + movs r0, #0x17 + subs r0, r0, r5 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + movs r6, #0 + mov r8, r6 + b _08125C38 +_08125C2A: + movs r7, #0 + movs r0, #0x17 + subs r0, r0, r5 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + movs r0, #0 +_08125C36: + mov r8, r0 +_08125C38: + lsls r0, r7, #0xa + lsls r1, r6, #5 + orrs r0, r1 + mov r1, r8 + orrs r1, r0 + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end GetCoolColorFromPersonality + + thumb_func_start ConvertToBlackOrWhite +ConvertToBlackOrWhite: @ 0x08125C50 + push {lr} + ldrh r0, [r0] + movs r2, #0x1f + movs r1, #0x1f + ands r1, r0 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x15 + ands r3, r2 + lsrs r0, r0, #0x1a + ands r0, r2 + cmp r1, #0x10 + bhi _08125C74 + cmp r3, #0x10 + bhi _08125C74 + cmp r0, #0x10 + bhi _08125C74 + movs r0, #0 + b _08125C76 +_08125C74: + ldr r0, _08125C7C +_08125C76: + pop {r1} + bx r1 + .align 2, 0 +_08125C7C: .4byte 0x00007FFF + thumb_func_end ConvertToBlackOrWhite + + thumb_func_start sub_08125C80 +sub_08125C80: @ 0x08125C80 + push {r4, lr} + adds r4, r0, #0 + ldrh r3, [r4] + cmp r3, #0 + beq _08125CA8 + movs r2, #0x80 + lsls r2, r2, #8 + adds r0, r2, #0 + ands r0, r3 + cmp r0, #0 + beq _08125C9A + adds r0, r2, #0 + b _08125CAA +_08125C9A: + ldrh r1, [r1] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _08125CA8 + ldrh r0, [r4] + b _08125CAA +_08125CA8: + movs r0, #0 +_08125CAA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_08125C80 + + thumb_func_start InvertColor +InvertColor: @ 0x08125CB0 + push {r4, lr} + ldrh r1, [r0] + movs r0, #0x1f + movs r3, #0x1f + ands r3, r1 + lsls r1, r1, #0x10 + lsrs r2, r1, #0x15 + lsrs r1, r1, #0x1a + subs r3, r0, r3 + adds r4, r0, #0 + bics r4, r2 + adds r2, r4, #0 + bics r0, r1 + lsls r0, r0, #0xa + lsls r2, r2, #5 + orrs r0, r2 + orrs r0, r3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r4} + pop {r1} + bx r1 + thumb_func_end InvertColor + + thumb_func_start sub_08125CDC +sub_08125CDC: @ 0x08125CDC + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + adds r7, r1, #0 + ldrh r4, [r0] + ldrh r5, [r7] + lsls r6, r4, #0x10 + lsls r0, r5, #0x10 + mov ip, r0 + cmp r4, r5 + beq _08125D4E + mov r2, sp + movs r3, #0x1f + movs r1, #0x1f + adds r0, r1, #0 + ands r0, r4 + strh r0, [r2] + lsrs r0, r6, #0x15 + ands r0, r3 + strh r0, [r2, #2] + lsrs r0, r6, #0x1a + ands r0, r3 + strh r0, [r2, #4] + mov r0, sp + ands r1, r5 + strh r1, [r0, #6] + mov r1, sp + mov r2, ip + lsrs r0, r2, #0x15 + ands r0, r3 + strh r0, [r1, #8] + lsrs r0, r2, #0x1a + ands r0, r3 + strh r0, [r1, #0xa] + mov r0, sp + ldrh r0, [r0] + cmp r0, #0x19 + bls _08125D36 + mov r0, sp + ldrh r0, [r0, #2] + cmp r0, #0x19 + bls _08125D36 + mov r0, sp + ldrh r0, [r0, #4] + cmp r0, #0x19 + bhi _08125D4E +_08125D36: + mov r0, sp + ldrh r0, [r0, #6] + cmp r0, #0x19 + bls _08125D52 + mov r0, sp + ldrh r0, [r0, #8] + cmp r0, #0x19 + bls _08125D52 + mov r0, sp + ldrh r0, [r0, #0xa] + cmp r0, #0x19 + bls _08125D52 +_08125D4E: + ldrh r0, [r7] + b _08125DF8 +_08125D52: + movs r4, #0 + add r6, sp, #0xc + mov r7, sp + adds r7, #6 + adds r5, r6, #0 +_08125D5C: + 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 _08125D72 + adds r1, r5, r2 + subs r0, r3, r0 + b _08125D76 +_08125D72: + adds r1, r5, r2 + subs r0, r0, r3 +_08125D76: + strh r0, [r1] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #2 + bls _08125D5C + adds r1, r6, #0 + ldrh r0, [r1, #2] + ldrh r3, [r1] + cmp r3, r0 + blo _08125D9C + ldrh r2, [r1, #4] + cmp r3, r2 + blo _08125D96 + adds r2, r3, #0 + b _08125DB0 +_08125D96: + cmp r0, r2 + bhs _08125DA2 + b _08125DAA +_08125D9C: + ldrh r2, [r1, #4] + cmp r0, r2 + blo _08125DA6 +_08125DA2: + ldrh r2, [r1, #2] + b _08125DB0 +_08125DA6: + cmp r2, r3 + blo _08125DAE +_08125DAA: + ldrh r2, [r1, #4] + b _08125DB0 +_08125DAE: + ldrh r2, [r6] +_08125DB0: + mov r0, sp + ldrh r1, [r0, #6] + lsrs r0, r2, #1 + movs r6, #0x1f + subs r6, r6, r0 + adds r0, r1, #0 + muls r0, r6, r0 + movs r1, #0x1f + bl __divsi3 + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + mov r0, sp + ldrh r0, [r0, #8] + muls r0, r6, r0 + movs r1, #0x1f + bl __divsi3 + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + mov r0, sp + ldrh r0, [r0, #0xa] + muls r0, r6, r0 + movs r1, #0x1f + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #6 + lsls r4, r4, #5 + orrs r0, r4 + orrs r5, r0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + adds r0, r5, #0 +_08125DF8: + add sp, #0x14 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_08125CDC + + thumb_func_start sub_08125E00 +sub_08125E00: @ 0x08125E00 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r3, r0, #0 + mov sl, r1 + str r2, [sp] + ldrh r1, [r3] + mov r0, sl + ldrh r0, [r0] + cmp r1, r0 + bne _08125E28 + ldrh r0, [r2] + cmp r0, r1 + bne _08125E28 + mov r1, sl + ldrh r0, [r1] + b _08125F10 +_08125E28: + mov r2, sl + ldrh r0, [r2] + movs r1, #0x1f + mov sb, r1 + movs r4, #0x1f + adds r5, r4, #0 + ands r5, r0 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x15 + mov r1, sb + ands r1, r2 + mov r8, r1 + lsrs r0, r0, #0x1a + mov r2, sb + ands r2, r0 + str r2, [sp, #4] + ldrh r2, [r3] + adds r0, r4, #0 + ands r0, r2 + lsls r2, r2, #0x10 + lsrs r1, r2, #0x15 + mov r3, sb + ands r1, r3 + adds r0, r0, r1 + lsrs r2, r2, #0x1a + ands r2, r3 + adds r0, r0, r2 + movs r1, #3 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + mov r1, r8 + adds r0, r5, r1 + ldr r2, [sp, #4] + adds r0, r0, r2 + movs r1, #3 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r3, [sp] + ldrh r1, [r3] + ands r4, r1 + lsls r1, r1, #0x10 + lsrs r0, r1, #0x15 + mov r2, sb + ands r0, r2 + adds r4, r4, r0 + lsrs r1, r1, #0x1a + ands r1, r2 + adds r4, r4, r1 + adds r0, r4, #0 + movs r1, #3 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r7, r6 + bne _08125EAA + cmp r1, r6 + bne _08125EAA + mov r3, sl + ldrh r0, [r3] + b _08125F10 +_08125EAA: + cmp r7, r6 + bls _08125EB2 + subs r0, r7, r6 + b _08125EB4 +_08125EB2: + subs r0, r6, r7 +_08125EB4: + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r1, r6 + bls _08125EC0 + subs r0, r1, r6 + b _08125EC2 +_08125EC0: + subs r0, r6, r1 +_08125EC2: + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r2, r0 + blo _08125ECC + adds r0, r2, #0 +_08125ECC: + lsrs r0, r0, #1 + movs r4, #0x1f + subs r4, r4, r0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + muls r0, r4, r0 + movs r1, #0x1f + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + mov r0, r8 + muls r0, r4, r0 + movs r1, #0x1f + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + ldr r1, [sp, #4] + adds r0, r1, #0 + muls r0, r4, r0 + movs r1, #0x1f + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #6 + mov r2, r8 + lsls r1, r2, #5 + orrs r0, r1 + orrs r5, r0 + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 +_08125F10: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_08125E00 + + thumb_func_start sub_08125F20 +sub_08125F20: @ 0x08125F20 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r3, r0, #0 + mov sl, r1 + str r2, [sp] + ldrh r1, [r3] + mov r0, sl + ldrh r0, [r0] + cmp r1, r0 + bne _08125F48 + ldrh r0, [r2] + cmp r0, r1 + bne _08125F48 + mov r1, sl + ldrh r0, [r1] + b _0812602E +_08125F48: + mov r2, sl + ldrh r0, [r2] + movs r1, #0x1f + mov sb, r1 + movs r4, #0x1f + adds r5, r4, #0 + ands r5, r0 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x15 + mov r1, sb + ands r1, r2 + mov r8, r1 + lsrs r0, r0, #0x1a + mov r2, sb + ands r2, r0 + str r2, [sp, #4] + ldrh r2, [r3] + adds r0, r4, #0 + ands r0, r2 + lsls r2, r2, #0x10 + lsrs r1, r2, #0x15 + mov r3, sb + ands r1, r3 + adds r0, r0, r1 + lsrs r2, r2, #0x1a + ands r2, r3 + adds r0, r0, r2 + movs r1, #3 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + mov r1, r8 + adds r0, r5, r1 + ldr r2, [sp, #4] + adds r0, r0, r2 + movs r1, #3 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r3, [sp] + ldrh r1, [r3] + ands r4, r1 + lsls r1, r1, #0x10 + lsrs r0, r1, #0x15 + mov r2, sb + ands r0, r2 + adds r4, r4, r0 + lsrs r1, r1, #0x1a + ands r1, r2 + adds r4, r4, r1 + adds r0, r4, #0 + movs r1, #3 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r7, r6 + bne _08125FCA + cmp r1, r6 + bne _08125FCA + mov r3, sl + ldrh r0, [r3] + b _0812602E +_08125FCA: + cmp r7, r6 + bls _08125FD2 + subs r0, r7, r6 + b _08125FD4 +_08125FD2: + subs r0, r6, r7 +_08125FD4: + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r1, r6 + bls _08125FE0 + subs r0, r1, r6 + b _08125FE2 +_08125FE0: + subs r0, r6, r1 +_08125FE2: + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r2, r0 + blo _08125FEC + adds r0, r2, #0 +_08125FEC: + movs r4, #0x1f + subs r4, r4, r0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + muls r0, r4, r0 + movs r1, #0x1f + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + mov r0, r8 + muls r0, r4, r0 + movs r1, #0x1f + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + ldr r1, [sp, #4] + adds r0, r1, #0 + muls r0, r4, r0 + movs r1, #0x1f + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #6 + mov r2, r8 + lsls r1, r2, #5 + orrs r0, r1 + orrs r5, r0 + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 +_0812602E: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08125F20 + + thumb_func_start sub_08126040 +sub_08126040: @ 0x08126040 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + ldrb r1, [r0, #0x1d] + lsrs r5, r1, #3 + ldrb r1, [r0, #0x1e] + lsrs r1, r1, #3 + str r1, [sp, #8] + ldr r1, [r0, #4] + str r1, [sp] + ldr r2, [r0, #0x10] + str r2, [sp, #4] + ldrh r0, [r0, #0x16] + cmp r0, #2 + bne _081260F0 + movs r1, #0 + ldr r0, [sp, #8] + cmp r1, r0 + blo _0812606E + b _0812617C +_0812606E: + movs r0, #0 + adds r2, r1, #1 + mov sl, r2 + cmp r0, r5 + bhs _081260E2 + adds r2, r1, #0 + muls r2, r5, r2 + mov sb, r2 + lsls r1, r1, #3 + mov r8, r1 +_08126082: + movs r4, #0 + lsls r6, r0, #4 + adds r7, r0, #1 + add r0, sb + lsls r0, r0, #6 + ldr r1, [sp, #4] + adds r1, r1, r0 + mov ip, r1 +_08126092: + lsls r0, r4, #3 + mov r2, ip + adds r3, r2, r0 + mov r1, r8 + adds r0, r1, r4 + lsls r0, r0, #3 + muls r0, r5, r0 + lsls r0, r0, #1 + ldr r2, [sp] + adds r0, r2, r0 + adds r2, r0, r6 + ldrh r0, [r2, #2] + lsls r0, r0, #8 + ldrh r1, [r2] + orrs r0, r1 + strh r0, [r3] + ldrh r0, [r2, #6] + lsls r0, r0, #8 + ldrh r1, [r2, #4] + orrs r0, r1 + strh r0, [r3, #2] + ldrh r0, [r2, #0xa] + lsls r0, r0, #8 + ldrh r1, [r2, #8] + orrs r0, r1 + strh r0, [r3, #4] + ldrh r0, [r2, #0xe] + lsls r0, r0, #8 + ldrh r1, [r2, #0xc] + orrs r0, r1 + strh r0, [r3, #6] + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #7 + bls _08126092 + lsls r0, r7, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r5 + blo _08126082 +_081260E2: + mov r1, sl + lsls r0, r1, #0x10 + lsrs r1, r0, #0x10 + ldr r2, [sp, #8] + cmp r1, r2 + blo _0812606E + b _0812617C +_081260F0: + movs r1, #0 + ldr r0, [sp, #8] + cmp r1, r0 + bhs _0812617C +_081260F8: + movs r0, #0 + adds r2, r1, #1 + mov sl, r2 + cmp r0, r5 + bhs _08126170 + adds r2, r1, #0 + muls r2, r5, r2 + mov sb, r2 + lsls r1, r1, #3 + mov r8, r1 +_0812610C: + movs r4, #0 + lsls r6, r0, #4 + adds r7, r0, #1 + add r0, sb + lsls r0, r0, #5 + ldr r1, [sp, #4] + adds r1, r1, r0 + mov ip, r1 +_0812611C: + lsls r0, r4, #2 + mov r2, ip + adds r3, r2, r0 + mov r1, r8 + adds r0, r1, r4 + lsls r0, r0, #3 + muls r0, r5, r0 + lsls r0, r0, #1 + ldr r2, [sp] + adds r0, r2, r0 + adds r2, r0, r6 + ldrh r1, [r2, #2] + lsls r1, r1, #4 + ldrh r0, [r2] + orrs r1, r0 + ldrh r0, [r2, #4] + lsls r0, r0, #8 + orrs r1, r0 + ldrh r0, [r2, #6] + lsls r0, r0, #0xc + orrs r1, r0 + strh r1, [r3] + ldrh r1, [r2, #0xa] + lsls r1, r1, #4 + ldrh r0, [r2, #8] + orrs r1, r0 + ldrh r0, [r2, #0xc] + lsls r0, r0, #8 + orrs r1, r0 + ldrh r0, [r2, #0xe] + lsls r0, r0, #0xc + orrs r1, r0 + strh r1, [r3, #2] + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #7 + bls _0812611C + lsls r0, r7, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r5 + blo _0812610C +_08126170: + mov r1, sl + lsls r0, r1, #0x10 + lsrs r1, r0, #0x10 + ldr r2, [sp, #8] + cmp r1, r2 + blo _081260F8 +_0812617C: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08126040 + + thumb_func_start sub_0812618C +sub_0812618C: @ 0x0812618C + push {lr} + ldr r2, _081261DC + ldrb r1, [r0, #0x18] + lsls r1, r1, #4 + strh r1, [r2] + ldr r3, _081261E0 + ldrh r2, [r2] + lsls r2, r2, #1 + ldr r1, [r0, #8] + adds r1, r1, r2 + str r1, [r3] + ldr r2, _081261E4 + ldr r1, [r0, #4] + str r1, [r2] + ldr r2, _081261E8 + ldrb r1, [r0, #0x19] + strb r1, [r2] + ldr r2, _081261EC + ldrb r1, [r0, #0x1a] + strb r1, [r2] + ldr r2, _081261F0 + ldrb r1, [r0, #0x1b] + strb r1, [r2] + ldr r2, _081261F4 + ldrb r1, [r0, #0x1c] + strb r1, [r2] + ldr r2, _081261F8 + ldrb r1, [r0, #0x1d] + strb r1, [r2] + ldr r2, _081261FC + ldrb r1, [r0, #0x1e] + strb r1, [r2] + ldrh r0, [r0, #0x14] + cmp r0, #5 + bhi _08126252 + lsls r0, r0, #2 + ldr r1, _08126200 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081261DC: .4byte 0x03005EC4 +_081261E0: .4byte 0x03005EC0 +_081261E4: .4byte 0x03005EA4 +_081261E8: .4byte 0x03005EA0 +_081261EC: .4byte 0x03005EB4 +_081261F0: .4byte 0x03005EB0 +_081261F4: .4byte 0x03005EA8 +_081261F8: .4byte 0x03005EBC +_081261FC: .4byte 0x03005EAC +_08126200: .4byte 0x08126204 +_08126204: @ jump table + .4byte _0812621C @ case 0 + .4byte _08126224 @ case 1 + .4byte _0812622C @ case 2 + .4byte _08126236 @ case 3 + .4byte _08126240 @ case 4 + .4byte _0812624A @ case 5 +_0812621C: + movs r0, #0 + bl sub_0812638C + b _08126252 +_08126224: + movs r0, #1 + bl sub_0812638C + b _08126252 +_0812622C: + bl sub_08126258 + bl sub_081266FC + b _08126252 +_08126236: + bl sub_08126358 + bl sub_0812664C + b _08126252 +_08126240: + bl sub_0812631C + bl sub_0812659C + b _08126252 +_0812624A: + bl sub_08126300 + bl sub_081264E4 +_08126252: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0812618C + + thumb_func_start sub_08126258 +sub_08126258: @ 0x08126258 + ldr r2, _081262C0 + ldr r1, [r2] + movs r0, #0 + strh r0, [r1] + ldr r0, [r2] + ldr r2, _081262C4 + adds r1, r2, #0 + strh r1, [r0, #2] + ldr r2, _081262C8 + adds r1, r2, #0 + strh r1, [r0, #4] + ldr r2, _081262CC + adds r1, r2, #0 + strh r1, [r0, #6] + ldr r2, _081262D0 + adds r1, r2, #0 + strh r1, [r0, #8] + ldr r2, _081262D4 + adds r1, r2, #0 + strh r1, [r0, #0xa] + ldr r2, _081262D8 + adds r1, r2, #0 + strh r1, [r0, #0xc] + ldr r2, _081262DC + adds r1, r2, #0 + strh r1, [r0, #0xe] + ldr r2, _081262E0 + adds r1, r2, #0 + strh r1, [r0, #0x10] + ldr r2, _081262E4 + adds r1, r2, #0 + strh r1, [r0, #0x12] + ldr r2, _081262E8 + adds r1, r2, #0 + strh r1, [r0, #0x14] + ldr r2, _081262EC + adds r1, r2, #0 + strh r1, [r0, #0x16] + ldr r2, _081262F0 + adds r1, r2, #0 + strh r1, [r0, #0x18] + ldr r2, _081262F4 + adds r1, r2, #0 + strh r1, [r0, #0x1a] + ldr r2, _081262F8 + adds r1, r2, #0 + strh r1, [r0, #0x1c] + ldr r2, _081262FC + adds r1, r2, #0 + strh r1, [r0, #0x1e] + bx lr + .align 2, 0 +_081262C0: .4byte 0x03005EC0 +_081262C4: .4byte 0x000018C6 +_081262C8: .4byte 0x000077BD +_081262CC: .4byte 0x00002D6B +_081262D0: .4byte 0x000018DD +_081262D4: .4byte 0x00001BA6 +_081262D8: .4byte 0x000074C6 +_081262DC: .4byte 0x00001BBD +_081262E0: .4byte 0x000074DD +_081262E4: .4byte 0x000077A6 +_081262E8: .4byte 0x0000197D +_081262EC: .4byte 0x00001BAB +_081262F0: .4byte 0x00007566 +_081262F4: .4byte 0x00002CDD +_081262F8: .4byte 0x00002FA6 +_081262FC: .4byte 0x000074CB + thumb_func_end sub_08126258 + + thumb_func_start sub_08126300 +sub_08126300: @ 0x08126300 + ldr r2, _08126314 + ldr r0, [r2] + movs r1, #0 + strh r1, [r0] + ldr r2, [r2] + strh r1, [r2, #2] + ldr r1, _08126318 + adds r0, r1, #0 + strh r0, [r2, #4] + bx lr + .align 2, 0 +_08126314: .4byte 0x03005EC0 +_08126318: .4byte 0x00007FFF + thumb_func_end sub_08126300 + + thumb_func_start sub_0812631C +sub_0812631C: @ 0x0812631C + push {r4, r5, lr} + ldr r1, _08126354 + ldr r0, [r1] + movs r2, #0 + strh r2, [r0] + ldr r0, [r1] + strh r2, [r0, #2] + movs r4, #0 + adds r5, r1, #0 +_0812632E: + ldr r0, [r5] + lsls r2, r4, #1 + adds r2, r2, r0 + adds r0, r4, #2 + lsls r3, r0, #1 + lsls r1, r0, #0xb + lsls r0, r0, #6 + orrs r1, r0 + orrs r1, r3 + strh r1, [r2, #4] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xd + bls _0812632E + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08126354: .4byte 0x03005EC0 + thumb_func_end sub_0812631C + + thumb_func_start sub_08126358 +sub_08126358: @ 0x08126358 + push {r4, lr} + ldr r2, _08126388 + ldr r1, [r2] + movs r0, #0 + strh r0, [r1] + movs r3, #0 + adds r4, r2, #0 +_08126366: + ldr r0, [r4] + lsls r2, r3, #1 + adds r2, r2, r0 + lsls r0, r3, #0xa + lsls r1, r3, #5 + orrs r0, r1 + orrs r0, r3 + strh r0, [r2, #2] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0x1f + bls _08126366 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08126388: .4byte 0x03005EC0 + thumb_func_end sub_08126358 + + thumb_func_start sub_0812638C +sub_0812638C: @ 0x0812638C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + movs r1, #0xdf + mov sb, r1 + cmp r0, #0 + bne _081263A4 + movs r2, #0xff + mov sb, r2 +_081263A4: + movs r6, #0 + ldr r3, _08126428 + mov ip, r3 + mov r0, sb + lsls r4, r0, #1 + ldr r5, _0812642C + cmp r6, sb + bhs _081263C8 + movs r2, #0 +_081263B6: + ldr r0, [r3] + lsls r1, r6, #1 + adds r1, r1, r0 + strh r2, [r1] + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, sb + blo _081263B6 +_081263C8: + mov r1, ip + ldr r0, [r1] + adds r0, r4, r0 + ldr r2, _08126430 + adds r1, r2, #0 + strh r1, [r0] + movs r3, #0 + ldrb r5, [r5] + cmp r3, r5 + bhs _081264CC +_081263DC: + ldr r2, _08126434 + ldr r0, _08126438 + ldrb r1, [r0] + adds r1, r1, r3 + ldr r0, _0812643C + ldrb r0, [r0] + muls r0, r1, r0 + lsls r0, r0, #1 + ldr r1, [r2] + adds r1, r1, r0 + ldr r0, _08126440 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r4, r1, r0 + movs r6, #0 + ldr r0, _08126444 + adds r2, r0, #0 + adds r3, #1 + mov sl, r3 + ldrb r3, [r2] + cmp r6, r3 + bhs _081264BE + ldr r0, _08126448 + mov r8, r0 +_0812640C: + ldrh r0, [r4] + movs r3, #0x80 + lsls r3, r3, #8 + adds r1, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _0812644C + mov r1, r8 + ldrh r0, [r1] + strh r0, [r4] + adds r6, #1 + adds r7, r4, #2 + b _081264B2 + .align 2, 0 +_08126428: .4byte 0x03005EC0 +_0812642C: .4byte 0x03005EA8 +_08126430: .4byte 0x00003DEF +_08126434: .4byte 0x03005EA4 +_08126438: .4byte 0x03005EB4 +_0812643C: .4byte 0x03005EBC +_08126440: .4byte 0x03005EA0 +_08126444: .4byte 0x03005EB0 +_08126448: .4byte 0x03005EC4 +_0812644C: + adds r0, r4, #0 + bl sub_081267AC + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + movs r3, #1 + adds r6, #1 + adds r7, r4, #2 + cmp r3, sb + bhs _081264A8 + ldr r0, _08126478 + ldr r2, [r0] + ldrh r1, [r2, #2] + mov ip, r0 + cmp r1, #0 + bne _0812647C + strh r5, [r2, #2] + mov r2, r8 + ldrh r0, [r2] + adds r0, #1 + b _081264A6 + .align 2, 0 +_08126478: .4byte 0x03005EC0 +_0812647C: + mov r2, ip + ldr r1, [r2] + lsls r0, r3, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, r5 + beq _081264A0 + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, sb + bhs _081264A8 + lsls r0, r3, #1 + adds r1, r0, r1 + ldrh r0, [r1] + cmp r0, #0 + bne _0812647C + strh r5, [r1] +_081264A0: + mov r1, r8 + ldrh r0, [r1] + adds r0, r0, r3 +_081264A6: + strh r0, [r4] +_081264A8: + ldr r2, _081264DC + cmp r3, sb + bne _081264B2 + mov r3, sb + strh r3, [r4] +_081264B2: + lsls r0, r6, #0x18 + lsrs r6, r0, #0x18 + adds r4, r7, #0 + ldrb r0, [r2] + cmp r6, r0 + blo _0812640C +_081264BE: + mov r1, sl + lsls r0, r1, #0x18 + lsrs r3, r0, #0x18 + ldr r0, _081264E0 + ldrb r0, [r0] + cmp r3, r0 + blo _081263DC +_081264CC: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081264DC: .4byte 0x03005EB0 +_081264E0: .4byte 0x03005EA8 + thumb_func_end sub_0812638C + + thumb_func_start sub_081264E4 +sub_081264E4: @ 0x081264E4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r2, #0 + ldr r0, _08126538 + ldrb r0, [r0] + cmp r2, r0 + bhs _08126588 + ldr r0, _0812653C + mov r8, r0 +_081264F8: + ldr r0, _08126540 + ldrb r1, [r0] + adds r1, r1, r2 + ldr r0, _08126544 + ldrb r0, [r0] + muls r0, r1, r0 + lsls r0, r0, #1 + mov r3, r8 + ldr r1, [r3] + adds r1, r1, r0 + ldr r0, _08126548 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r4, r1, r0 + movs r6, #0 + ldr r0, _0812654C + adds r3, r0, #0 + adds r7, r2, #1 + ldrb r0, [r3] + cmp r6, r0 + bhs _0812657C + ldr r5, _08126550 +_08126524: + ldrh r0, [r4] + movs r2, #0x80 + lsls r2, r2, #8 + adds r1, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _08126554 + ldrh r0, [r5] + strh r0, [r4] + b _0812656E + .align 2, 0 +_08126538: .4byte 0x03005EA8 +_0812653C: .4byte 0x03005EA4 +_08126540: .4byte 0x03005EB4 +_08126544: .4byte 0x03005EBC +_08126548: .4byte 0x03005EA0 +_0812654C: .4byte 0x03005EB0 +_08126550: .4byte 0x03005EC4 +_08126554: + adds r0, r4, #0 + bl ConvertToBlackOrWhite + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08126566 + ldrh r0, [r5] + adds r0, #1 + b _0812656A +_08126566: + ldrh r0, [r5] + adds r0, #2 +_0812656A: + strh r0, [r4] + ldr r3, _08126594 +_0812656E: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r4, #2 + ldrb r0, [r3] + cmp r6, r0 + blo _08126524 +_0812657C: + lsls r0, r7, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _08126598 + ldrb r0, [r0] + cmp r2, r0 + blo _081264F8 +_08126588: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08126594: .4byte 0x03005EB0 +_08126598: .4byte 0x03005EA8 + thumb_func_end sub_081264E4 + + thumb_func_start sub_0812659C +sub_0812659C: @ 0x0812659C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + movs r2, #0 + ldr r0, _081265F0 + ldrb r0, [r0] + cmp r2, r0 + bhs _08126638 + ldr r0, _081265F4 + mov r8, r0 +_081265B2: + ldr r0, _081265F8 + ldrb r1, [r0] + adds r1, r1, r2 + ldr r0, _081265FC + ldrb r0, [r0] + muls r0, r1, r0 + lsls r0, r0, #1 + mov r3, r8 + ldr r1, [r3] + adds r1, r1, r0 + ldr r0, _08126600 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r4, r1, r0 + movs r5, #0 + ldr r0, _08126604 + adds r7, r2, #1 + ldrb r0, [r0] + cmp r5, r0 + bhs _0812662C + ldr r6, _08126608 + movs r0, #0x80 + lsls r0, r0, #8 + adds r2, r0, #0 +_081265E2: + ldrh r0, [r4] + ands r0, r2 + cmp r0, #0 + beq _0812660C + ldrh r0, [r6] + strh r0, [r4] + b _0812661C + .align 2, 0 +_081265F0: .4byte 0x03005EA8 +_081265F4: .4byte 0x03005EA4 +_081265F8: .4byte 0x03005EB4 +_081265FC: .4byte 0x03005EBC +_08126600: .4byte 0x03005EA0 +_08126604: .4byte 0x03005EB0 +_08126608: .4byte 0x03005EC4 +_0812660C: + adds r0, r4, #0 + str r2, [sp] + bl sub_081268F0 + ldrh r1, [r6] + adds r0, r0, r1 + strh r0, [r4] + ldr r2, [sp] +_0812661C: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r4, #2 + ldr r0, _08126644 + ldrb r0, [r0] + cmp r5, r0 + blo _081265E2 +_0812662C: + lsls r0, r7, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _08126648 + ldrb r0, [r0] + cmp r2, r0 + blo _081265B2 +_08126638: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08126644: .4byte 0x03005EB0 +_08126648: .4byte 0x03005EA8 + thumb_func_end sub_0812659C + + thumb_func_start sub_0812664C +sub_0812664C: @ 0x0812664C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + movs r2, #0 + ldr r0, _081266A0 + ldrb r0, [r0] + cmp r2, r0 + bhs _081266E8 + ldr r0, _081266A4 + mov r8, r0 +_08126662: + ldr r0, _081266A8 + ldrb r1, [r0] + adds r1, r1, r2 + ldr r0, _081266AC + ldrb r0, [r0] + muls r0, r1, r0 + lsls r0, r0, #1 + mov r3, r8 + ldr r1, [r3] + adds r1, r1, r0 + ldr r0, _081266B0 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r4, r1, r0 + movs r5, #0 + ldr r0, _081266B4 + adds r7, r2, #1 + ldrb r0, [r0] + cmp r5, r0 + bhs _081266DC + ldr r6, _081266B8 + movs r0, #0x80 + lsls r0, r0, #8 + adds r2, r0, #0 +_08126692: + ldrh r0, [r4] + ands r0, r2 + cmp r0, #0 + beq _081266BC + ldrh r0, [r6] + strh r0, [r4] + b _081266CC + .align 2, 0 +_081266A0: .4byte 0x03005EA8 +_081266A4: .4byte 0x03005EA4 +_081266A8: .4byte 0x03005EB4 +_081266AC: .4byte 0x03005EBC +_081266B0: .4byte 0x03005EA0 +_081266B4: .4byte 0x03005EB0 +_081266B8: .4byte 0x03005EC4 +_081266BC: + adds r0, r4, #0 + str r2, [sp] + bl sub_08126924 + ldrh r1, [r6] + adds r0, r0, r1 + strh r0, [r4] + ldr r2, [sp] +_081266CC: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r4, #2 + ldr r0, _081266F4 + ldrb r0, [r0] + cmp r5, r0 + blo _08126692 +_081266DC: + lsls r0, r7, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _081266F8 + ldrb r0, [r0] + cmp r2, r0 + blo _08126662 +_081266E8: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081266F4: .4byte 0x03005EB0 +_081266F8: .4byte 0x03005EA8 + thumb_func_end sub_0812664C + + thumb_func_start sub_081266FC +sub_081266FC: @ 0x081266FC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + movs r2, #0 + ldr r0, _08126750 + ldrb r0, [r0] + cmp r2, r0 + bhs _08126798 + ldr r0, _08126754 + mov r8, r0 +_08126712: + ldr r0, _08126758 + ldrb r1, [r0] + adds r1, r1, r2 + ldr r0, _0812675C + ldrb r0, [r0] + muls r0, r1, r0 + lsls r0, r0, #1 + mov r3, r8 + ldr r1, [r3] + adds r1, r1, r0 + ldr r0, _08126760 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r4, r1, r0 + movs r5, #0 + ldr r0, _08126764 + adds r7, r2, #1 + ldrb r0, [r0] + cmp r5, r0 + bhs _0812678C + ldr r6, _08126768 + movs r0, #0x80 + lsls r0, r0, #8 + adds r2, r0, #0 +_08126742: + ldrh r0, [r4] + ands r0, r2 + cmp r0, #0 + beq _0812676C + ldrh r0, [r6] + strh r0, [r4] + b _0812677C + .align 2, 0 +_08126750: .4byte 0x03005EA8 +_08126754: .4byte 0x03005EA4 +_08126758: .4byte 0x03005EB4 +_0812675C: .4byte 0x03005EBC +_08126760: .4byte 0x03005EA0 +_08126764: .4byte 0x03005EB0 +_08126768: .4byte 0x03005EC4 +_0812676C: + adds r0, r4, #0 + str r2, [sp] + bl sub_08126820 + ldrh r1, [r6] + adds r0, r0, r1 + strh r0, [r4] + ldr r2, [sp] +_0812677C: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r4, #2 + ldr r0, _081267A4 + ldrb r0, [r0] + cmp r5, r0 + blo _08126742 +_0812678C: + lsls r0, r7, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _081267A8 + ldrb r0, [r0] + cmp r2, r0 + blo _08126712 +_08126798: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081267A4: .4byte 0x03005EB0 +_081267A8: .4byte 0x03005EA8 + thumb_func_end sub_081266FC + + thumb_func_start sub_081267AC +sub_081267AC: @ 0x081267AC + push {r4, lr} + ldrh r0, [r0] + movs r1, #0x1f + movs r4, #0x1f + ands r4, r0 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x15 + ands r3, r1 + lsrs r2, r0, #0x1a + ands r2, r1 + movs r1, #3 + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + beq _081267D0 + movs r0, #0x1c + ands r0, r4 + adds r4, r0, #4 +_081267D0: + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _081267DE + movs r0, #0x1c + ands r0, r3 + adds r3, r0, #4 +_081267DE: + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _081267EC + movs r0, #0x1c + ands r0, r2 + adds r2, r0, #4 +_081267EC: + cmp r4, #5 + bhi _081267F2 + movs r4, #6 +_081267F2: + cmp r4, #0x1e + bls _081267F8 + movs r4, #0x1e +_081267F8: + cmp r3, #5 + bhi _081267FE + movs r3, #6 +_081267FE: + cmp r3, #0x1e + bls _08126804 + movs r3, #0x1e +_08126804: + cmp r2, #5 + bhi _0812680A + movs r2, #6 +_0812680A: + cmp r2, #0x1e + bls _08126810 + movs r2, #0x1e +_08126810: + lsls r0, r2, #0xa + lsls r1, r3, #5 + orrs r0, r1 + orrs r4, r0 + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081267AC + + thumb_func_start sub_08126820 +sub_08126820: @ 0x08126820 + push {lr} + ldrh r0, [r0] + movs r1, #0x1f + movs r3, #0x1f + ands r3, r0 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x15 + ands r2, r1 + lsrs r0, r0, #0x1a + ands r0, r1 + cmp r3, #0xb + bhi _08126844 + cmp r2, #0xa + bhi _08126844 + cmp r0, #0xa + bhi _08126844 + movs r0, #1 + b _081268EA +_08126844: + cmp r3, #0x13 + bls _08126868 + cmp r2, #0x13 + bls _08126850 + cmp r0, #0x13 + bhi _08126874 +_08126850: + cmp r3, #0x13 + bls _08126868 + cmp r2, #0x13 + bls _0812685E + cmp r0, #0xe + bhi _08126874 + b _081268AC +_0812685E: + cmp r0, #0x13 + bls _08126868 + cmp r2, #0xe + bhi _08126874 + b _08126888 +_08126868: + cmp r2, #0x13 + bls _08126878 + cmp r0, #0x13 + bls _08126878 + cmp r3, #0xe + bls _081268D0 +_08126874: + movs r0, #2 + b _081268EA +_08126878: + cmp r3, #0x13 + bls _0812689C + cmp r2, #0xb + bls _08126890 + cmp r0, #0xb + bls _0812688C + cmp r2, r0 + bhs _081268AC +_08126888: + movs r0, #8 + b _081268EA +_0812688C: + movs r0, #0xa + b _081268EA +_08126890: + cmp r0, #0xb + bls _08126898 + movs r0, #0xd + b _081268EA +_08126898: + movs r0, #4 + b _081268EA +_0812689C: + cmp r2, #0x13 + bls _081268C0 + cmp r3, #0xb + bls _081268B4 + cmp r0, #0xb + bls _081268B0 + cmp r3, r0 + blo _081268D0 +_081268AC: + movs r0, #7 + b _081268EA +_081268B0: + movs r0, #0xb + b _081268EA +_081268B4: + cmp r0, #0xb + bls _081268BC + movs r0, #0xe + b _081268EA +_081268BC: + movs r0, #5 + b _081268EA +_081268C0: + cmp r0, #0x13 + bls _081268E8 + cmp r3, #0xb + bls _081268D4 + cmp r2, #0xb + bls _081268DC + cmp r3, r2 + bhs _08126888 +_081268D0: + movs r0, #9 + b _081268EA +_081268D4: + cmp r2, #0xb + bls _081268DC + movs r0, #0xc + b _081268EA +_081268DC: + cmp r0, #0xb + bls _081268E4 + movs r0, #0xf + b _081268EA +_081268E4: + movs r0, #6 + b _081268EA +_081268E8: + movs r0, #3 +_081268EA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08126820 + + thumb_func_start sub_081268F0 +sub_081268F0: @ 0x081268F0 + push {lr} + ldrh r1, [r0] + movs r3, #0x1f + movs r0, #0x1f + ands r0, r1 + lsls r1, r1, #0x10 + lsrs r2, r1, #0x15 + ands r2, r3 + lsrs r1, r1, #0x1a + ands r1, r3 + adds r0, r0, r2 + adds r0, r0, r1 + movs r1, #3 + bl __divsi3 + movs r1, #0x1e + ands r0, r1 + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0812691C + lsrs r0, r0, #0x11 + b _0812691E +_0812691C: + movs r0, #1 +_0812691E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081268F0 + + thumb_func_start sub_08126924 +sub_08126924: @ 0x08126924 + push {lr} + ldrh r1, [r0] + movs r3, #0x1f + movs r0, #0x1f + ands r0, r1 + lsls r1, r1, #0x10 + lsrs r2, r1, #0x15 + ands r2, r3 + lsrs r1, r1, #0x1a + ands r1, r3 + adds r0, r0, r2 + adds r0, r0, r1 + movs r1, #3 + bl __divsi3 + lsls r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + thumb_func_end sub_08126924 + diff --git a/asm/coord_event_weather.s b/asm/coord_event_weather.s new file mode 100644 index 0000000..6d0dd85 --- /dev/null +++ b/asm/coord_event_weather.s @@ -0,0 +1,154 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start CoordEventWeather_Clouds +CoordEventWeather_Clouds: @ 0x0809D094 + push {lr} + movs r0, #1 + bl SetWeather + pop {r0} + bx r0 + thumb_func_end CoordEventWeather_Clouds + + thumb_func_start CoordEventWeather_Sunny +CoordEventWeather_Sunny: @ 0x0809D0A0 + push {lr} + movs r0, #2 + bl SetWeather + pop {r0} + bx r0 + thumb_func_end CoordEventWeather_Sunny + + thumb_func_start CoordEventWeather_Dark +CoordEventWeather_Dark: @ 0x0809D0AC + push {lr} + movs r0, #3 + bl SetWeather + pop {r0} + bx r0 + thumb_func_end CoordEventWeather_Dark + + thumb_func_start CoordEventWeather_Sandstorm +CoordEventWeather_Sandstorm: @ 0x0809D0B8 + push {lr} + movs r0, #4 + bl SetWeather + pop {r0} + bx r0 + thumb_func_end CoordEventWeather_Sandstorm + + thumb_func_start CoordEventWeather_Thunderstorm +CoordEventWeather_Thunderstorm: @ 0x0809D0C4 + push {lr} + movs r0, #5 + bl SetWeather + pop {r0} + bx r0 + thumb_func_end CoordEventWeather_Thunderstorm + + thumb_func_start CoordEventWeather_LightRain +CoordEventWeather_LightRain: @ 0x0809D0D0 + push {lr} + movs r0, #6 + bl SetWeather + pop {r0} + bx r0 + thumb_func_end CoordEventWeather_LightRain + + thumb_func_start CoordEventWeather_Snow +CoordEventWeather_Snow: @ 0x0809D0DC + push {lr} + movs r0, #9 + bl SetWeather + pop {r0} + bx r0 + thumb_func_end CoordEventWeather_Snow + + thumb_func_start CoordEventWeather_Ash +CoordEventWeather_Ash: @ 0x0809D0E8 + push {lr} + movs r0, #7 + bl SetWeather + pop {r0} + bx r0 + thumb_func_end CoordEventWeather_Ash + + thumb_func_start CoordEventWeather_Fog +CoordEventWeather_Fog: @ 0x0809D0F4 + push {lr} + movs r0, #8 + bl SetWeather + pop {r0} + bx r0 + thumb_func_end CoordEventWeather_Fog + + thumb_func_start CoordEventWeather_DiagonalFog +CoordEventWeather_DiagonalFog: @ 0x0809D100 + push {lr} + movs r0, #0xb + bl SetWeather + pop {r0} + bx r0 + thumb_func_end CoordEventWeather_DiagonalFog + + thumb_func_start CoordEventWeather_Drought +CoordEventWeather_Drought: @ 0x0809D10C + push {lr} + movs r0, #0xc + bl SetWeather + pop {r0} + bx r0 + thumb_func_end CoordEventWeather_Drought + + thumb_func_start CoordEventWeather_Route119Cycle +CoordEventWeather_Route119Cycle: @ 0x0809D118 + push {lr} + movs r0, #0x14 + bl SetWeather + pop {r0} + bx r0 + thumb_func_end CoordEventWeather_Route119Cycle + + thumb_func_start CoordEventWeather_Route123Cycle +CoordEventWeather_Route123Cycle: @ 0x0809D124 + push {lr} + movs r0, #0x15 + bl SetWeather + pop {r0} + bx r0 + thumb_func_end CoordEventWeather_Route123Cycle + + thumb_func_start DoCoordEventWeather +DoCoordEventWeather: @ 0x0809D130 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r2, #0 + ldr r3, _0809D150 +_0809D13A: + lsls r1, r2, #3 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r4 + bne _0809D154 + adds r0, r3, #4 + adds r0, r1, r0 + ldr r0, [r0] + bl _call_via_r0 + b _0809D15E + .align 2, 0 +_0809D150: .4byte 0x084E8924 +_0809D154: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xc + bls _0809D13A +_0809D15E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end DoCoordEventWeather + diff --git a/asm/credits.s b/asm/credits.s new file mode 100644 index 0000000..4a3b6a5 --- /dev/null +++ b/asm/credits.s @@ -0,0 +1,4032 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_081753CC +sub_081753CC: @ 0x081753CC + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081753CC + + thumb_func_start sub_081753E0 +sub_081753E0: @ 0x081753E0 + push {lr} + bl RunTasks + bl AnimateSprites + ldr r0, _08175434 + ldrh r1, [r0, #0x2c] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08175426 + ldr r0, _08175438 + ldrb r0, [r0] + cmp r0, #0 + beq _08175426 + ldr r2, _0817543C + ldr r0, _08175440 + ldrh r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _08175444 + cmp r1, r0 + bne _08175426 + bl sub_081753CC + bl RunTasks + bl AnimateSprites + ldr r1, _08175448 + movs r0, #1 + strb r0, [r1] +_08175426: + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 +_08175434: .4byte 0x03002360 +_08175438: .4byte 0x0203B9B0 +_0817543C: .4byte 0x03005B60 +_08175440: .4byte 0x0203B9AE +_08175444: .4byte 0x0817567D +_08175448: .4byte 0x0203B9B1 + thumb_func_end sub_081753E0 + + thumb_func_start sub_0817544C +sub_0817544C: @ 0x0817544C + push {lr} + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _0817549C + movs r0, #0 + movs r2, #1 + bl InitBgsFromTemplates + movs r0, #0x80 + lsls r0, r0, #4 + bl AllocZeroed + adds r1, r0, #0 + movs r0, #0 + bl SetBgTilemapBuffer + ldr r0, _081754A0 + movs r1, #0x80 + movs r2, #0x40 + bl LoadPalette + ldr r0, _081754A4 + bl InitWindows + bl DeactivateAllTextPrinters + movs r0, #0 + bl PutWindowTilemap + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + movs r0, #0 + bl ShowBg + pop {r0} + bx r0 + .align 2, 0 +_0817549C: .4byte 0x085C7914 +_081754A0: .4byte 0x085C67AC +_081754A4: .4byte 0x085C7918 + thumb_func_end sub_0817544C + + thumb_func_start sub_081754A8 +sub_081754A8: @ 0x081754A8 + push {lr} + bl FreeAllWindowBuffers + movs r0, #0 + bl GetBgTilemapBuffer + cmp r0, #0 + beq _081754BC + bl Free +_081754BC: + pop {r0} + bx r0 + thumb_func_end sub_081754A8 + + thumb_func_start sub_081754C0 +sub_081754C0: @ 0x081754C0 + push {r4, lr} + sub sp, #0x18 + adds r4, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + add r1, sp, #0x14 + movs r0, #0 + strb r0, [r1] + cmp r3, #1 + bne _081754E0 + movs r0, #3 + strb r0, [r1, #1] + movs r0, #4 + b _081754E8 +_081754E0: + add r1, sp, #0x14 + movs r0, #1 + strb r0, [r1, #1] + movs r0, #2 +_081754E8: + strb r0, [r1, #2] + movs r1, #0 + ldrb r0, [r4] + lsls r3, r2, #3 + cmp r0, #0xff + beq _081754FE +_081754F4: + adds r1, #1 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #0xff + bne _081754F4 +_081754FE: + lsls r0, r1, #3 + adds r0, r0, r1 + movs r2, #0xf0 + subs r2, r2, r0 + lsrs r0, r2, #0x1f + adds r2, r2, r0 + asrs r2, r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r3, #2 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #1 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + add r0, sp, #0x14 + str r0, [sp, #8] + movs r0, #1 + rsbs r0, r0, #0 + str r0, [sp, #0xc] + str r4, [sp, #0x10] + movs r0, #0 + movs r1, #1 + bl AddTextPrinterParameterized4 + add sp, #0x18 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081754C0 + + thumb_func_start sub_0817553C +sub_0817553C: @ 0x0817553C + push {r4, r5, r6, r7, lr} + sub sp, #4 + bl sub_08175BF0 + movs r0, #0 + bl SetVBlankCallback + ldr r0, _08175620 + movs r1, #0xe0 + lsls r1, r1, #9 + bl InitHeap + bl ResetPaletteFade + bl ResetTasks + bl sub_0817544C + ldr r0, _08175624 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r1, _08175628 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #0x10] + strh r1, [r0, #0x16] + strh r1, [r0, #0x1e] + movs r1, #1 + strh r1, [r0, #0x22] +_08175582: + movs r0, #0 + adds r1, r7, #0 + bl sub_081768B8 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08175582 + ldr r4, _08175628 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r4 + movs r2, #0xa + ldrsh r1, [r0, r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r4 + movs r6, #0 + movs r5, #0 + movs r1, #0x28 + strh r1, [r0, #8] + ldr r1, _0817562C + movs r0, #0x12 + bl SetGpuReg + ldr r0, _08175630 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r4 + strh r7, [r1, #0xa] + movs r0, #1 + rsbs r0, r0, #0 + str r5, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + movs r0, #1 + bl EnableInterrupts + ldr r0, _08175634 + bl SetVBlankCallback + ldr r0, _08175638 + bl m4aSongNumStart + ldr r0, _0817563C + bl SetMainCallback2 + ldr r0, _08175640 + strb r6, [r0] + ldr r4, _08175644 + movs r0, #0xe5 + lsls r0, r0, #2 + bl AllocZeroed + str r0, [r4] + bl sub_08177214 + ldr r0, [r4] + adds r1, r0, #0 + adds r1, #0x78 + strh r5, [r1] + adds r0, #0x7a + strh r5, [r0] + ldr r0, _08175648 + strh r7, [r0] + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08175620: .4byte 0x02000000 +_08175624: .4byte 0x0817564D +_08175628: .4byte 0x03005B60 +_0817562C: .4byte 0x0000FFFC +_08175630: .4byte 0x08175CAD +_08175634: .4byte 0x081753CD +_08175638: .4byte 0x000001C7 +_0817563C: .4byte 0x081753E1 +_08175640: .4byte 0x0203B9B1 +_08175644: .4byte 0x0203B9B4 +_08175648: .4byte 0x0203B9AE + thumb_func_end sub_0817553C + + thumb_func_start sub_0817564C +sub_0817564C: @ 0x0817564C + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _08175670 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0817566C + ldr r0, _08175674 + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _08175678 + str r0, [r1] +_0817566C: + pop {r0} + bx r0 + .align 2, 0 +_08175670: .4byte 0x02037C74 +_08175674: .4byte 0x03005B60 +_08175678: .4byte 0x0817567D + thumb_func_end sub_0817564C + + thumb_func_start sub_0817567C +sub_0817567C: @ 0x0817567C + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _081756B0 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 + movs r0, #0x10 + ldrsh r1, [r4, r0] + cmp r1, #0 + beq _081756B8 + movs r3, #0xa + ldrsh r1, [r4, r3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r1, #0x1e + strh r1, [r0, #8] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x20] + ldr r0, _081756B4 + b _08175702 + .align 2, 0 +_081756B0: .4byte 0x03005B60 +_081756B4: .4byte 0x081759A5 +_081756B8: + ldr r0, _081756E0 + strh r1, [r0] + ldrh r2, [r4, #0x1e] + movs r3, #0x1e + ldrsh r0, [r4, r3] + cmp r0, #1 + bne _081756E8 + strh r2, [r4, #0x22] + strh r1, [r4, #0x1e] + movs r0, #1 + rsbs r0, r0, #0 + str r1, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _081756E4 + b _08175702 + .align 2, 0 +_081756E0: .4byte 0x0203B9AC +_081756E4: .4byte 0x08175711 +_081756E8: + cmp r0, #2 + bne _08175704 + strh r2, [r4, #0x22] + strh r1, [r4, #0x1e] + movs r0, #1 + rsbs r0, r0, #0 + str r1, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _0817570C +_08175702: + str r0, [r4] +_08175704: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0817570C: .4byte 0x081757AD + thumb_func_end sub_0817567C + + thumb_func_start sub_08175710 +sub_08175710: @ 0x08175710 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _08175744 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0817573E + movs r0, #0 + movs r1, #0 + bl SetGpuReg + adds r0, r4, #0 + bl sub_08176AA8 + ldr r0, _08175748 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _0817574C + str r0, [r1] +_0817573E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08175744: .4byte 0x02037C74 +_08175748: .4byte 0x03005B60 +_0817574C: .4byte 0x08175751 + thumb_func_end sub_08175710 + + thumb_func_start c2_080C9BFC +c2_080C9BFC: @ 0x08175750 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + bl SetVBlankCallback + ldr r1, _081757A0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r5, r0, r1 + ldrb r0, [r5, #0x16] + adds r1, r4, #0 + bl sub_081768B8 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08175798 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + movs r0, #1 + bl EnableInterrupts + ldr r0, _081757A4 + bl SetVBlankCallback + ldr r0, _081757A8 + str r0, [r5] +_08175798: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081757A0: .4byte 0x03005B60 +_081757A4: .4byte 0x081753CD +_081757A8: .4byte 0x0817564D + thumb_func_end c2_080C9BFC + + thumb_func_start sub_081757AC +sub_081757AC: @ 0x081757AC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _081757E0 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081757DA + movs r0, #0 + movs r1, #0 + bl SetGpuReg + adds r0, r4, #0 + bl sub_08176AA8 + ldr r0, _081757E4 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081757E8 + str r0, [r1] +_081757DA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081757E0: .4byte 0x02037C74 +_081757E4: .4byte 0x03005B60 +_081757E8: .4byte 0x081757ED + thumb_func_end sub_081757AC + + thumb_func_start sub_081757EC +sub_081757EC: @ 0x081757EC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _081758B8 + movs r1, #0x87 + lsls r1, r1, #3 + adds r1, r1, r0 + mov r8, r1 + ldrb r7, [r1] + cmp r7, #0 + beq _0817580E + cmp r7, #1 + beq _081758F8 +_0817580E: + bl ResetSpriteData + bl ResetAllPicSprites + bl FreeAllSpritePalettes + ldr r1, _081758BC + movs r0, #8 + strb r0, [r1] + ldr r0, _081758C0 + movs r1, #0xc0 + lsls r1, r1, #0x13 + bl LZ77UnCompVram + ldr r0, _081758C4 + ldr r1, _081758C8 + bl LZ77UnCompVram + ldr r0, _081758CC + movs r1, #1 + movs r2, #0x3e + bl LoadPalette + movs r1, #0 + ldr r4, _081758D0 + movs r3, #0x11 + ldr r2, _081758D4 +_08175844: + adds r0, r1, r4 + strb r3, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, r2 + bls _08175844 + movs r1, #0 + ldr r2, _081758D8 + ldr r6, _081758DC + ldr r0, _081758E0 + adds r5, r2, r0 + movs r4, #0x22 + ldr r3, _081758D4 +_08175860: + adds r0, r1, r5 + strb r4, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, r3 + bls _08175860 + movs r1, #0 + ldr r5, _081758E4 + movs r4, #0x33 + ldr r3, _081758D4 +_08175876: + adds r0, r1, r5 + strb r4, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, r3 + bls _08175876 + movs r0, #0 + strh r0, [r2] + ldr r1, _081758E8 + adds r0, r1, #0 + strh r0, [r2, #2] + ldr r1, _081758EC + adds r0, r1, #0 + strh r0, [r2, #4] + ldr r1, _081758F0 + adds r0, r1, #0 + strh r0, [r2, #6] + adds r0, r6, #0 + bl LoadSpriteSheet + ldr r0, _081758F4 + bl LoadSpritePalette + ldr r1, _081758B8 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _08175982 + .align 2, 0 +_081758B8: .4byte 0x03002360 +_081758BC: .4byte 0x030030BC +_081758C0: .4byte 0x0858FC14 +_081758C4: .4byte 0x0858FA1C +_081758C8: .4byte 0x06003800 +_081758CC: .4byte 0x0858F812 +_081758D0: .4byte 0x0201C000 +_081758D4: .4byte 0x000007FF +_081758D8: .4byte 0x0201D800 +_081758DC: .4byte 0x085C79C8 +_081758E0: .4byte 0xFFFFF000 +_081758E4: .4byte 0x0201D000 +_081758E8: .4byte 0x000053FF +_081758EC: .4byte 0x0000529F +_081758F0: .4byte 0x00007E94 +_081758F4: .4byte 0x085C79D8 +_081758F8: + ldr r0, _08175990 + movs r1, #0 + bl CreateTask + ldr r2, _08175994 + lsls r4, r6, #2 + adds r4, r4, r6 + lsls r4, r4, #3 + adds r4, r4, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + mov sb, r1 + movs r5, #0 + strh r0, [r4, #0xe] + movs r0, #0xe + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + strh r7, [r0, #8] + movs r0, #0xe + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + strh r6, [r0, #0xa] + movs r0, #0xe + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrh r1, [r4, #0x16] + strh r1, [r0, #0xc] + movs r0, #1 + rsbs r0, r0, #0 + str r5, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + movs r0, #0x1c + movs r1, #0 + bl SetGpuReg + movs r0, #0x1e + movs r1, #0x20 + bl SetGpuReg + ldr r1, _08175998 + movs r0, #0xe + bl SetGpuReg + movs r1, #0xca + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + mov r0, sb + mov r1, r8 + strb r0, [r1] + ldr r0, _0817599C + strh r5, [r0] + ldr r0, _081759A0 + str r0, [r4] +_08175982: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08175990: .4byte 0x08176025 +_08175994: .4byte 0x03005B60 +_08175998: .4byte 0x00000703 +_0817599C: .4byte 0x0203B9F4 +_081759A0: .4byte 0x0817564D + thumb_func_end sub_081757EC + + thumb_func_start sub_081759A4 +sub_081759A4: @ 0x081759A4 + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _081759C8 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 + ldrh r0, [r4, #0x20] + movs r2, #0x20 + ldrsh r1, [r4, r2] + cmp r1, #0 + beq _081759CC + subs r0, #1 + strh r0, [r4, #0x20] + b _081759E0 + .align 2, 0 +_081759C8: .4byte 0x03005B60 +_081759CC: + movs r0, #1 + rsbs r0, r0, #0 + str r1, [sp] + movs r1, #0xc + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _081759E8 + str r0, [r4] +_081759E0: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081759E8: .4byte 0x081759ED + thumb_func_end sub_081759A4 + + thumb_func_start sub_081759EC +sub_081759EC: @ 0x081759EC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _08175A18 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08175A12 + adds r0, r4, #0 + bl sub_08176AA8 + ldr r0, _08175A1C + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _08175A20 + str r0, [r1] +_08175A12: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08175A18: .4byte 0x02037C74 +_08175A1C: .4byte 0x03005B60 +_08175A20: .4byte 0x08175A25 + thumb_func_end sub_081759EC + + thumb_func_start sub_08175A24 +sub_08175A24: @ 0x08175A24 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl sub_08175BF0 + bl ResetPaletteFade + movs r1, #0xe0 + lsls r1, r1, #6 + movs r0, #0 + movs r2, #0 + bl sub_08176B24 + bl ResetSpriteData + bl FreeAllSpritePalettes + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r1, #8 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + movs r1, #0xe0 + lsls r1, r1, #3 + movs r0, #8 + bl SetGpuReg + movs r0, #1 + bl EnableInterrupts + movs r1, #0xa0 + lsls r1, r1, #1 + movs r0, #0 + bl SetGpuReg + ldr r1, _08175A94 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0x98 + lsls r1, r1, #1 + strh r1, [r0, #8] + ldr r1, _08175A98 + str r1, [r0] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08175A94: .4byte 0x03005B60 +_08175A98: .4byte 0x08175A9D + thumb_func_end sub_08175A24 + + thumb_func_start sub_08175A9C +sub_08175A9C: @ 0x08175A9C + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08175AC0 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 + ldrh r0, [r4, #8] + movs r2, #8 + ldrsh r1, [r4, r2] + cmp r1, #0 + beq _08175AC4 + subs r0, #1 + strh r0, [r4, #8] + b _08175AD8 + .align 2, 0 +_08175AC0: .4byte 0x03005B60 +_08175AC4: + movs r0, #1 + rsbs r0, r0, #0 + str r1, [sp] + movs r1, #6 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _08175AE0 + str r0, [r4] +_08175AD8: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08175AE0: .4byte 0x08175AE5 + thumb_func_end sub_08175A9C + + thumb_func_start sub_08175AE4 +sub_08175AE4: @ 0x08175AE4 + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _08175B34 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _08175B2A + movs r0, #0xe0 + lsls r0, r0, #6 + movs r1, #0 + bl sub_08176CCC + movs r0, #1 + rsbs r0, r0, #0 + str r4, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r1, _08175B38 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0xe1 + lsls r1, r1, #5 + strh r1, [r0, #8] + ldr r1, _08175B3C + str r1, [r0] +_08175B2A: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08175B34: .4byte 0x02037C74 +_08175B38: .4byte 0x03005B60 +_08175B3C: .4byte 0x08175B41 + thumb_func_end sub_08175AE4 + + thumb_func_start sub_08175B40 +sub_08175B40: @ 0x08175B40 + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _08175B8C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08175BC4 + ldr r1, _08175B90 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r0, #8 + ldrsh r1, [r4, r0] + cmp r1, #0 + beq _08175B6E + ldr r0, _08175B94 + ldrh r0, [r0, #0x2e] + cmp r0, #0 + beq _08175BA0 +_08175B6E: + movs r0, #4 + bl FadeOutBGMTemporarily + movs r0, #1 + rsbs r0, r0, #0 + ldr r1, _08175B98 + str r1, [sp] + movs r1, #8 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _08175B9C + str r0, [r4] + b _08175BC4 + .align 2, 0 +_08175B8C: .4byte 0x02037C74 +_08175B90: .4byte 0x03005B60 +_08175B94: .4byte 0x03002360 +_08175B98: .4byte 0x0000FFFF +_08175B9C: .4byte 0x08175BD5 +_08175BA0: + ldr r0, _08175BCC + cmp r1, r0 + bne _08175BAC + movs r0, #8 + bl FadeOutBGMTemporarily +_08175BAC: + movs r0, #8 + ldrsh r1, [r4, r0] + ldr r0, _08175BD0 + cmp r1, r0 + bne _08175BBE + movs r0, #0xe4 + lsls r0, r0, #1 + bl m4aSongNumStart +_08175BBE: + ldrh r0, [r4, #8] + subs r0, #1 + strh r0, [r4, #8] +_08175BC4: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08175BCC: .4byte 0x00001BE8 +_08175BD0: .4byte 0x00001AB8 + thumb_func_end sub_08175B40 + + thumb_func_start sub_08175BD4 +sub_08175BD4: @ 0x08175BD4 + push {lr} + ldr r0, _08175BEC + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08175BE8 + movs r0, #0xff + bl SoftReset +_08175BE8: + pop {r0} + bx r0 + .align 2, 0 +_08175BEC: .4byte 0x02037C74 + thumb_func_end sub_08175BD4 + + thumb_func_start sub_08175BF0 +sub_08175BF0: @ 0x08175BF0 + push {lr} + sub sp, #8 + movs r0, #0 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1c + movs r1, #0 + bl SetGpuReg + movs r0, #0x1e + movs r1, #0 + bl SetGpuReg + movs r0, #0x18 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1a + movs r1, #0 + bl SetGpuReg + movs r0, #0x14 + movs r1, #0 + bl SetGpuReg + movs r0, #0x16 + movs r1, #0 + bl SetGpuReg + movs r0, #0x10 + movs r1, #0 + bl SetGpuReg + movs r0, #0x12 + movs r1, #0 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + mov r1, sp + movs r0, #0 + strh r0, [r1] + ldr r1, _08175C98 + mov r0, sp + str r0, [r1] + movs r0, #0xc0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _08175C9C + str r0, [r1, #8] + ldr r0, [r1, #8] + movs r2, #0 + str r2, [sp, #4] + add r0, sp, #4 + str r0, [r1] + movs r0, #0xe0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _08175CA0 + str r0, [r1, #8] + ldr r0, [r1, #8] + mov r0, sp + strh r2, [r0] + str r0, [r1] + ldr r0, _08175CA4 + str r0, [r1, #4] + ldr r0, _08175CA8 + str r0, [r1, #8] + ldr r0, [r1, #8] + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 +_08175C98: .4byte 0x040000D4 +_08175C9C: .4byte 0x8100C000 +_08175CA0: .4byte 0x85000100 +_08175CA4: .4byte 0x05000002 +_08175CA8: .4byte 0x810001FF + thumb_func_end sub_08175BF0 + + thumb_func_start sub_08175CAC +sub_08175CAC: @ 0x08175CAC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _08175CD8 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #8 + ldrsh r0, [r0, r2] + adds r5, r1, #0 + cmp r0, #0xa + bhi _08175D0C + lsls r0, r0, #2 + ldr r1, _08175CDC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08175CD8: .4byte 0x03005B60 +_08175CDC: .4byte 0x08175CE0 +_08175CE0: @ jump table + .4byte _08175D0C @ case 0 + .4byte _08175D3C @ case 1 + .4byte _08175D5C @ case 2 + .4byte _08175E16 @ case 3 + .4byte _08175E3C @ case 4 + .4byte _08175EA8 @ case 5 + .4byte _08175D0C @ case 6 + .4byte _08175D0C @ case 7 + .4byte _08175D0C @ case 8 + .4byte _08175D0C @ case 9 + .4byte _08175EDC @ case 10 +_08175D0C: + ldr r0, _08175D34 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _08175D1E + b _08175F0A +_08175D1E: + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r1, #1 + strh r1, [r0, #8] + movs r1, #0x48 + strh r1, [r0, #0xe] + ldr r0, _08175D38 + strh r2, [r0] + b _08175F0A + .align 2, 0 +_08175D34: .4byte 0x02037C74 +_08175D38: .4byte 0x0203B9AC +_08175D3C: + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r1, r0, r5 + ldrh r2, [r1, #0xe] + movs r3, #0xe + ldrsh r0, [r1, r3] + cmp r0, #0 + beq _08175D54 + subs r0, r2, #1 + strh r0, [r1, #0xe] + b _08175F0A +_08175D54: + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _08175F0A +_08175D5C: + lsls r2, r6, #2 + adds r0, r2, r6 + lsls r0, r0, #3 + adds r3, r0, r5 + movs r0, #0xa + ldrsh r1, [r3, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + ldr r1, [r0] + ldr r0, _08175DE8 + mov r8, r2 + cmp r1, r0 + beq _08175D7C + b _08175F0A +_08175D7C: + movs r1, #0xc + ldrsh r0, [r3, r1] + cmp r0, #0x2c + bgt _08175E10 + movs r4, #0 + ldr r7, _08175DEC + adds r5, r3, #0 +_08175D8A: + movs r2, #0xc + ldrsh r1, [r5, r2] + lsls r0, r1, #2 + adds r0, r0, r1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r3, [r0] + ldr r0, [r3, #4] + ldrb r1, [r3] + lsls r2, r4, #0x19 + lsrs r2, r2, #0x18 + ldrb r3, [r3, #1] + bl sub_081754C0 + adds r4, #1 + cmp r4, #4 + ble _08175D8A + movs r0, #0 + movs r1, #2 + bl CopyWindowToVram + ldr r2, _08175DF0 + mov r3, r8 + adds r1, r3, r6 + lsls r1, r1, #3 + adds r1, r1, r2 + ldrh r0, [r1, #0xc] + adds r0, #1 + strh r0, [r1, #0xc] + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + movs r0, #0xa + ldrsh r1, [r1, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r1, #0x22 + ldrsh r0, [r0, r1] + cmp r0, #1 + bne _08175DF8 + movs r0, #0xc0 + lsls r0, r0, #2 + ldr r1, _08175DF4 + b _08175DFE + .align 2, 0 +_08175DE8: .4byte 0x0817567D +_08175DEC: .4byte 0x085C7590 +_08175DF0: .4byte 0x03005B60 +_08175DF4: .4byte 0x0000328D +_08175DF8: + movs r0, #0xc0 + lsls r0, r0, #2 + ldr r1, _08175E0C +_08175DFE: + str r1, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + b _08175F0A + .align 2, 0 +_08175E0C: .4byte 0x00001967 +_08175E10: + movs r0, #0xa + strh r0, [r3, #8] + b _08175F0A +_08175E16: + ldr r0, _08175E38 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08175F0A + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r1, #0x9c + strh r1, [r0, #0xe] + ldrh r1, [r0, #8] + adds r1, #1 + strh r1, [r0, #8] + b _08175F0A + .align 2, 0 +_08175E38: .4byte 0x02037C74 +_08175E3C: + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r4, r0, r5 + ldrh r1, [r4, #0xe] + movs r2, #0xe + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _08175E54 + subs r0, r1, #1 + strh r0, [r4, #0xe] + b _08175F0A +_08175E54: + ldrb r0, [r4, #0xc] + ldrb r1, [r4, #0xa] + bl sub_08175F1C + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08175E6A + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _08175F0A +_08175E6A: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r3, #0xa + ldrsh r1, [r4, r3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r1, #0x22 + ldrsh r0, [r0, r1] + cmp r0, #1 + bne _08175E90 + movs r0, #0xc0 + lsls r0, r0, #2 + ldr r1, _08175E8C + b _08175E96 + .align 2, 0 +_08175E8C: .4byte 0x0000328D +_08175E90: + movs r0, #0xc0 + lsls r0, r0, #2 + ldr r1, _08175EA4 +_08175E96: + str r1, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + b _08175F0A + .align 2, 0 +_08175EA4: .4byte 0x00001967 +_08175EA8: + ldr r0, _08175ED4 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08175F0A + movs r0, #0 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #0 + movs r1, #2 + bl CopyWindowToVram + ldr r0, _08175ED8 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #2 + strh r0, [r1, #8] + b _08175F0A + .align 2, 0 +_08175ED4: .4byte 0x02037C74 +_08175ED8: .4byte 0x03005B60 +_08175EDC: + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r2, #0xa + ldrsh r1, [r0, r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r5, #0 + movs r1, #1 + strh r1, [r0, #0x10] + adds r0, r6, #0 + bl DestroyTask + bl sub_081754A8 + ldr r4, _08175F18 + ldr r0, [r4] + bl Free + str r5, [r4] +_08175F0A: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08175F18: .4byte 0x0203B9B4 + thumb_func_end sub_08175CAC + + thumb_func_start sub_08175F1C +sub_08175F1C: @ 0x08175F1C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r2, r1, #0x18 + ldr r5, _08176018 + cmp r4, #1 + bne _08175F44 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r3, #0xa + ldrsh r1, [r0, r3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r1, #0x14 + strh r1, [r0, #8] +_08175F44: + lsls r3, r2, #2 + cmp r4, #5 + bne _08175F56 + adds r0, r3, r2 + lsls r0, r0, #3 + adds r0, r0, r5 + strh r4, [r0, #0x16] + movs r1, #2 + strh r1, [r0, #0x1e] +_08175F56: + cmp r4, #9 + bne _08175F66 + adds r0, r3, r2 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r1, #1 + strh r1, [r0, #0x16] + strh r1, [r0, #0x1e] +_08175F66: + cmp r4, #0xe + bne _08175F78 + adds r0, r3, r2 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r1, #4 + strh r1, [r0, #0x16] + movs r1, #2 + strh r1, [r0, #0x1e] +_08175F78: + cmp r4, #0x14 + bne _08175F8A + adds r0, r3, r2 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r1, #2 + strh r1, [r0, #0x16] + movs r1, #1 + strh r1, [r0, #0x1e] +_08175F8A: + cmp r4, #0x16 + bne _08175FA4 + adds r0, r3, r2 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r6, #0xa + ldrsh r1, [r0, r6] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r1, #1 + strh r1, [r0, #8] +_08175FA4: + cmp r4, #0x19 + bne _08175FB6 + adds r0, r3, r2 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r1, #5 + strh r1, [r0, #0x16] + movs r1, #2 + strh r1, [r0, #0x1e] +_08175FB6: + cmp r4, #0x1e + bne _08175FC8 + adds r0, r3, r2 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r1, #3 + strh r1, [r0, #0x16] + movs r1, #1 + strh r1, [r0, #0x1e] +_08175FC8: + cmp r4, #0x23 + bne _08175FE2 + adds r0, r3, r2 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r6, #0xa + ldrsh r1, [r0, r6] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r1, #0xa + strh r1, [r0, #8] +_08175FE2: + cmp r4, #0x25 + bne _08175FF4 + adds r0, r3, r2 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r1, #3 + strh r1, [r0, #0x16] + movs r1, #2 + strh r1, [r0, #0x1e] +_08175FF4: + cmp r4, #0x2a + bne _08176006 + adds r0, r3, r2 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r1, #4 + strh r1, [r0, #0x16] + movs r1, #1 + strh r1, [r0, #0x1e] +_08176006: + adds r0, r3, r2 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r1, #0x1e + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _0817601C + movs r0, #0 + b _0817601E + .align 2, 0 +_08176018: .4byte 0x03005B60 +_0817601C: + movs r0, #1 +_0817601E: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_08175F1C + + thumb_func_start sub_08176024 +sub_08176024: @ 0x08176024 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r4, _08176050 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r2, r0, r4 + movs r1, #8 + ldrsh r0, [r2, r1] + cmp r0, #1 + beq _08176054 + cmp r0, #1 + bgt _08176046 + b _08176150 +_08176046: + cmp r0, #2 + beq _0817606C + cmp r0, #3 + beq _0817613C + b _08176150 + .align 2, 0 +_08176050: .4byte 0x03005B60 +_08176054: + ldr r0, _08176068 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08176150 + ldrh r0, [r2, #8] + adds r0, #1 + b _0817614E + .align 2, 0 +_08176068: .4byte 0x02037C74 +_0817606C: + ldr r3, _081760E8 + mov r8, r3 + ldr r3, [r3] + adds r6, r3, #0 + adds r6, #0x78 + ldrh r0, [r6] + cmp r0, #0x38 + beq _08176150 + movs r0, #0xa + ldrsh r1, [r2, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r4 + ldr r1, [r0] + ldr r0, _081760EC + cmp r1, r0 + bne _08176150 + adds r0, r3, #0 + adds r0, #0x7a + ldrh r0, [r0] + lsls r0, r0, #1 + adds r0, r3, r0 + ldrh r5, [r0] + ldr r4, _081760F0 + ldrh r0, [r6] + movs r1, #3 + bl __umodsi3 + adds r3, r0, #0 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r0, r3, #1 + adds r1, r0, r4 + ldrb r1, [r1] + adds r4, #1 + adds r0, r0, r4 + ldrb r2, [r0] + adds r0, r5, #0 + bl sub_081770B0 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + mov r1, r8 + ldr r0, [r1] + adds r1, r0, #0 + adds r1, #0x7a + ldrh r3, [r1] + adds r0, #0x7c + ldrh r0, [r0] + subs r0, #1 + cmp r3, r0 + bge _081760F8 + adds r0, r3, #1 + strh r0, [r1] + ldr r1, _081760F4 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + movs r1, #0x40 + b _0817610A + .align 2, 0 +_081760E8: .4byte 0x0203B9B4 +_081760EC: .4byte 0x0817567D +_081760F0: .4byte 0x085C7928 +_081760F4: .4byte 0x020205AC +_081760F8: + movs r0, #0 + strh r0, [r1] + ldr r1, _08176130 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + movs r1, #0x80 + lsls r1, r1, #1 +_0817610A: + strh r1, [r0, #0x34] + ldr r0, _08176134 + ldr r1, [r0] + adds r1, #0x78 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + ldr r0, _08176138 + lsls r1, r7, #2 + adds r1, r1, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0x40 + strh r0, [r1, #0xe] + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _08176150 + .align 2, 0 +_08176130: .4byte 0x020205AC +_08176134: .4byte 0x0203B9B4 +_08176138: .4byte 0x03005B60 +_0817613C: + ldrh r1, [r2, #0xe] + movs r3, #0xe + ldrsh r0, [r2, r3] + cmp r0, #0 + beq _0817614C + subs r0, r1, #1 + strh r0, [r2, #0xe] + b _08176150 +_0817614C: + movs r0, #1 +_0817614E: + strh r0, [r2, #8] +_08176150: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08176024 + + thumb_func_start sub_0817615C +sub_0817615C: @ 0x0817615C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _08176184 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #8 + ldrsh r0, [r0, r2] + adds r6, r1, #0 + cmp r0, #0x32 + bls _08176178 + b _08176424 +_08176178: + lsls r0, r0, #2 + ldr r1, _08176188 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08176184: .4byte 0x03005B60 +_08176188: .4byte 0x0817618C +_0817618C: @ jump table + .4byte _08176258 @ case 0 + .4byte _0817627C @ case 1 + .4byte _081762D0 @ case 2 + .4byte _081762E8 @ case 3 + .4byte _08176324 @ case 4 + .4byte _08176348 @ case 5 + .4byte _08176394 @ case 6 + .4byte _08176424 @ case 7 + .4byte _08176424 @ case 8 + .4byte _08176424 @ case 9 + .4byte _081763A0 @ case 10 + .4byte _08176424 @ case 11 + .4byte _08176424 @ case 12 + .4byte _08176424 @ case 13 + .4byte _08176424 @ case 14 + .4byte _08176424 @ case 15 + .4byte _08176424 @ case 16 + .4byte _08176424 @ case 17 + .4byte _08176424 @ case 18 + .4byte _08176424 @ case 19 + .4byte _081763C0 @ case 20 + .4byte _08176424 @ case 21 + .4byte _08176424 @ case 22 + .4byte _08176424 @ case 23 + .4byte _08176424 @ case 24 + .4byte _08176424 @ case 25 + .4byte _08176424 @ case 26 + .4byte _08176424 @ case 27 + .4byte _08176424 @ case 28 + .4byte _08176424 @ case 29 + .4byte _081763E4 @ case 30 + .4byte _08176424 @ case 31 + .4byte _08176424 @ case 32 + .4byte _08176424 @ case 33 + .4byte _08176424 @ case 34 + .4byte _08176424 @ case 35 + .4byte _08176424 @ case 36 + .4byte _08176424 @ case 37 + .4byte _08176424 @ case 38 + .4byte _08176424 @ case 39 + .4byte _08176424 @ case 40 + .4byte _08176424 @ case 41 + .4byte _08176424 @ case 42 + .4byte _08176424 @ case 43 + .4byte _08176424 @ case 44 + .4byte _08176424 @ case 45 + .4byte _08176424 @ case 46 + .4byte _08176424 @ case 47 + .4byte _08176424 @ case 48 + .4byte _08176424 @ case 49 + .4byte _08176418 @ case 50 +_08176258: + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + adds r4, r4, r6 + ldrh r0, [r4, #0x12] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + movs r1, #0x7f + ands r0, r1 + movs r1, #0xc + bl Sin + ldr r1, _08176278 + strh r0, [r1] + b _081762A0 + .align 2, 0 +_08176278: .4byte 0x0203B9F2 +_0817627C: + ldr r7, _081762A8 + movs r3, #0 + ldrsh r4, [r7, r3] + cmp r4, #0 + beq _081762AC + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + adds r4, r4, r6 + ldrh r0, [r4, #0x12] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + movs r1, #0x7f + ands r0, r1 + movs r1, #0xc + bl Sin + strh r0, [r7] +_081762A0: + ldrh r0, [r4, #0x12] + adds r0, #1 + strh r0, [r4, #0x12] + b _08176424 + .align 2, 0 +_081762A8: .4byte 0x0203B9F2 +_081762AC: + ldr r3, _081762CC + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r6 + movs r0, #0xc + ldrsh r2, [r1, r0] + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r2, #2 + strh r2, [r0, #0x2e] + strh r4, [r1, #0x12] + b _08176340 + .align 2, 0 +_081762CC: .4byte 0x020205AC +_081762D0: + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r1, r0, r6 + ldrh r2, [r1, #0x12] + movs r3, #0x12 + ldrsh r0, [r1, r3] + cmp r0, #0x3f + bgt _08176340 + adds r0, r2, #1 + strh r0, [r1, #0x12] + b _0817635E +_081762E8: + ldr r3, _08176320 + lsls r2, r5, #2 + adds r2, r2, r5 + lsls r2, r2, #3 + adds r2, r2, r6 + movs r0, #0xc + ldrsh r1, [r2, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r1, #3 + strh r1, [r0, #0x2e] + movs r0, #0xe + ldrsh r1, [r2, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r1, #1 + strh r1, [r0, #0x2e] + movs r0, #0x78 + strh r0, [r2, #0x10] + ldrh r0, [r2, #8] + adds r0, #1 + strh r0, [r2, #8] + b _08176424 + .align 2, 0 +_08176320: .4byte 0x020205AC +_08176324: + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r1, r0, r6 + ldrh r2, [r1, #0x10] + movs r3, #0x10 + ldrsh r0, [r1, r3] + cmp r0, #0 + beq _0817633C + subs r0, r2, #1 + strh r0, [r1, #0x10] + b _08176424 +_0817633C: + movs r0, #0x40 + strh r0, [r1, #0x12] +_08176340: + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _08176424 +_08176348: + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r6 + ldrh r1, [r4, #0x12] + movs r2, #0x12 + ldrsh r0, [r4, r2] + cmp r0, #0 + ble _08176374 + subs r0, r1, #1 + strh r0, [r4, #0x12] +_0817635E: + movs r1, #0x7f + ands r0, r1 + movs r1, #0x14 + bl Sin + ldr r1, _08176370 + strh r0, [r1] + b _08176424 + .align 2, 0 +_08176370: .4byte 0x0203B9F2 +_08176374: + ldr r2, _08176390 + movs r3, #0xc + ldrsh r1, [r4, r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #1 + strh r1, [r0, #0x2e] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _08176424 + .align 2, 0 +_08176390: .4byte 0x020205AC +_08176394: + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r6 + movs r1, #0x32 + b _08176422 +_081763A0: + ldr r3, _081763BC + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r6 + movs r0, #0xe + ldrsh r2, [r1, r0] + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r2, #2 + b _081763D8 + .align 2, 0 +_081763BC: .4byte 0x020205AC +_081763C0: + ldr r3, _081763E0 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r6 + movs r0, #0xc + ldrsh r2, [r1, r0] + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r2, #4 +_081763D8: + strh r2, [r0, #0x2e] + movs r0, #0x32 + strh r0, [r1, #8] + b _08176424 + .align 2, 0 +_081763E0: .4byte 0x020205AC +_081763E4: + ldr r3, _08176414 + lsls r2, r5, #2 + adds r2, r2, r5 + lsls r2, r2, #3 + adds r2, r2, r6 + movs r0, #0xc + ldrsh r1, [r2, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r1, #5 + strh r1, [r0, #0x2e] + movs r0, #0xe + ldrsh r1, [r2, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r1, #3 + strh r1, [r0, #0x2e] + movs r0, #0x32 + strh r0, [r2, #8] + b _08176424 + .align 2, 0 +_08176414: .4byte 0x020205AC +_08176418: + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r6 + movs r1, #0 +_08176422: + strh r1, [r0, #8] +_08176424: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0817615C + + thumb_func_start sub_0817642C +sub_0817642C: @ 0x0817642C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08176450 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r2, #8 + ldrsh r0, [r1, r2] + cmp r0, #4 + bhi _0817646C + lsls r0, r0, #2 + ldr r1, _08176454 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08176450: .4byte 0x03005B60 +_08176454: .4byte 0x08176458 +_08176458: @ jump table + .4byte _0817646C @ case 0 + .4byte _0817646C @ case 1 + .4byte _08176474 @ case 2 + .4byte _08176474 @ case 3 + .4byte _0817647C @ case 4 +_0817646C: + movs r0, #0 + bl sub_0817B400 + b _08176482 +_08176474: + movs r0, #1 + bl sub_0817B400 + b _08176482 +_0817647C: + movs r0, #2 + bl sub_0817B400 +_08176482: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0817642C + + thumb_func_start sub_08176488 +sub_08176488: @ 0x08176488 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + cmp r0, #4 + bls _0817649E + b _0817681C +_0817649E: + lsls r0, r0, #2 + ldr r1, _081764A8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081764A8: .4byte 0x081764AC +_081764AC: @ jump table + .4byte _081764C0 @ case 0 + .4byte _08176568 @ case 1 + .4byte _08176614 @ case 2 + .4byte _081766C0 @ case 3 + .4byte _08176770 @ case 4 +_081764C0: + ldr r5, _08176560 + ldr r0, _08176564 + lsls r4, r7, #2 + adds r4, r4, r7 + lsls r4, r4, #3 + adds r4, r4, r0 + movs r1, #0x12 + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + adds r1, #0x3e + ldrb r3, [r1] + movs r2, #5 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r3 + strb r0, [r1] + movs r0, #0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + movs r0, #0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r3, #0 + movs r2, #0x88 + lsls r2, r2, #1 + strh r2, [r0, #0x20] + movs r0, #0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r2, [r0, #0x20] + movs r0, #0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r2, #0x2e + strh r2, [r0, #0x22] + movs r0, #0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r2, [r0, #0x22] + movs r0, #0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r3, [r0, #0x2e] + movs r0, #0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r3, [r0, #0x2e] + movs r1, #0x80 + lsls r1, r1, #6 + movs r0, #0 + movs r2, #0x20 + b _08176810 + .align 2, 0 +_08176560: .4byte 0x020205AC +_08176564: .4byte 0x03005B60 +_08176568: + ldr r5, _0817660C + ldr r0, _08176610 + lsls r4, r7, #2 + adds r4, r4, r7 + lsls r4, r4, #3 + adds r4, r4, r0 + movs r1, #0x12 + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + adds r1, #0x3e + ldrb r3, [r1] + movs r2, #5 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r3 + strb r0, [r1] + movs r0, #0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + movs r0, #0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r3, #0 + movs r1, #0x78 + strh r1, [r0, #0x20] + movs r0, #0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0x88 + lsls r1, r1, #1 + strh r1, [r0, #0x20] + movs r0, #0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r2, #0x2e + strh r2, [r0, #0x22] + movs r0, #0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r2, [r0, #0x22] + movs r0, #0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r3, [r0, #0x2e] + movs r0, #0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r3, [r0, #0x2e] + movs r1, #0x80 + lsls r1, r1, #6 + movs r0, #0 + movs r2, #0x20 + b _08176810 + .align 2, 0 +_0817660C: .4byte 0x020205AC +_08176610: .4byte 0x03005B60 +_08176614: + ldr r5, _081766B8 + ldr r0, _081766BC + lsls r4, r7, #2 + adds r4, r4, r7 + lsls r4, r4, #3 + adds r4, r4, r0 + movs r1, #0x12 + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + adds r1, #0x3e + ldrb r3, [r1] + movs r2, #5 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r3 + strb r0, [r1] + movs r0, #0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + movs r0, #0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r3, #0 + movs r1, #0x78 + strh r1, [r0, #0x20] + movs r0, #0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0x88 + lsls r1, r1, #1 + strh r1, [r0, #0x20] + movs r0, #0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r2, #0x2e + strh r2, [r0, #0x22] + movs r0, #0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r2, [r0, #0x22] + movs r0, #0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r3, [r0, #0x2e] + movs r0, #0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r3, [r0, #0x2e] + movs r1, #0x80 + lsls r1, r1, #6 + movs r2, #0x80 + lsls r2, r2, #2 + movs r0, #1 + b _08176810 + .align 2, 0 +_081766B8: .4byte 0x020205AC +_081766BC: .4byte 0x03005B60 +_081766C0: + ldr r5, _08176764 + ldr r0, _08176768 + lsls r4, r7, #2 + adds r4, r4, r7 + lsls r4, r4, #3 + adds r4, r4, r0 + movs r1, #0x12 + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + adds r1, #0x3e + ldrb r3, [r1] + movs r2, #5 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r3 + strb r0, [r1] + movs r0, #0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + movs r0, #0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r3, #0 + movs r1, #0x78 + strh r1, [r0, #0x20] + movs r0, #0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _0817676C + strh r1, [r0, #0x20] + movs r0, #0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r2, #0x2e + strh r2, [r0, #0x22] + movs r0, #0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r2, [r0, #0x22] + movs r0, #0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r3, [r0, #0x2e] + movs r0, #0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r3, [r0, #0x2e] + movs r1, #0x80 + lsls r1, r1, #6 + movs r2, #0x80 + lsls r2, r2, #2 + movs r0, #1 + b _08176810 + .align 2, 0 +_08176764: .4byte 0x020205AC +_08176768: .4byte 0x03005B60 +_0817676C: .4byte 0x0000FFE0 +_08176770: + ldr r5, _081768A8 + ldr r0, _081768AC + lsls r4, r7, #2 + adds r4, r4, r7 + lsls r4, r4, #3 + adds r4, r4, r0 + movs r1, #0x12 + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + adds r1, #0x3e + ldrb r3, [r1] + movs r2, #5 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r3 + strb r0, [r1] + movs r0, #0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + movs r0, #0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r3, #0 + movs r1, #0x58 + strh r1, [r0, #0x20] + movs r0, #0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0x98 + strh r1, [r0, #0x20] + movs r0, #0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r2, #0x2e + strh r2, [r0, #0x22] + movs r0, #0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r2, [r0, #0x22] + movs r0, #0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r3, [r0, #0x2e] + movs r0, #0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r3, [r0, #0x2e] + movs r1, #0x80 + lsls r1, r1, #6 + movs r2, #0x80 + lsls r2, r2, #2 + movs r0, #2 +_08176810: + movs r3, #8 + bl CreateBicycleAnimationTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #8] +_0817681C: + ldr r0, _081768B0 + movs r1, #0 + bl CreateTask + ldr r5, _081768AC + lsls r4, r7, #2 + adds r4, r4, r7 + lsls r4, r4, #3 + adds r4, r4, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r6, #0 + strh r0, [r4, #0xc] + movs r0, #0xc + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + mov r1, r8 + strh r1, [r0, #8] + ldr r0, _081768B4 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0xa] + movs r0, #0xa + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + strh r6, [r0, #8] + movs r0, #0xa + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + strh r7, [r0, #0xa] + movs r0, #0xa + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + ldrh r1, [r4, #0x12] + strh r1, [r0, #0xc] + movs r0, #0xa + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + ldrh r1, [r4, #0x14] + strh r1, [r0, #0xe] + movs r0, #0xa + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + strh r6, [r0, #0x10] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081768A8: .4byte 0x020205AC +_081768AC: .4byte 0x03005B60 +_081768B0: .4byte 0x0817642D +_081768B4: .4byte 0x0817615D + thumb_func_end sub_08176488 + + thumb_func_start sub_081768B8 +sub_081768B8: @ 0x081768B8 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + ldr r0, _08176934 + movs r1, #0x87 + lsls r1, r1, #3 + adds r6, r0, r1 + ldrb r0, [r6] + cmp r0, #1 + beq _08176938 + cmp r0, #1 + ble _081768DE + cmp r0, #2 + beq _0817695C + cmp r0, #3 + bne _081768DE + b _08176A88 +_081768DE: + movs r0, #0 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1c + movs r1, #8 + bl SetGpuReg + movs r0, #0x1e + movs r1, #0 + bl SetGpuReg + movs r0, #0x18 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1a + movs r1, #0 + bl SetGpuReg + movs r0, #0x14 + movs r1, #0 + bl SetGpuReg + movs r0, #0x16 + movs r1, #0 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + bl ResetSpriteData + bl FreeAllSpritePalettes + movs r0, #1 + strb r0, [r6] + b _08176A9E + .align 2, 0 +_08176934: .4byte 0x03002360 +_08176938: + ldr r1, _08176954 + movs r0, #0x22 + strh r0, [r1] + ldr r1, _08176958 + movs r0, #0 + strh r0, [r1] + adds r0, r4, #0 + bl sub_0817B088 + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] + b _08176A9E + .align 2, 0 +_08176954: .4byte 0x0203B9F0 +_08176958: .4byte 0x0203B9F2 +_0817695C: + ldr r0, _081769BC + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #0 + bne _081769E0 + ldr r0, _081769C0 + bl LoadCompressedSpriteSheet + ldr r0, _081769C4 + bl LoadCompressedSpriteSheet + ldr r0, _081769C8 + bl LoadCompressedSpriteSheet + ldr r0, _081769CC + bl LoadSpritePalettes + movs r0, #0x78 + movs r1, #0x2e + bl intro_create_brendan_sprite + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _081769D0 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + adds r4, r4, r0 + strh r2, [r4, #0x12] + ldr r6, _081769D4 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r5, r6, #0 + adds r5, #0x1c + adds r2, r0, r5 + ldr r1, _081769D8 + str r1, [r2] + adds r6, #8 + adds r0, r0, r6 + ldr r1, _081769DC + str r1, [r0] + movs r0, #0x88 + lsls r0, r0, #1 + movs r1, #0x2e + bl intro_create_may_sprite + b _08176A34 + .align 2, 0 +_081769BC: .4byte 0x03005AF0 +_081769C0: .4byte 0x085D2804 +_081769C4: .4byte 0x085D288C +_081769C8: .4byte 0x085D2824 +_081769CC: .4byte 0x085D2854 +_081769D0: .4byte 0x03005B60 +_081769D4: .4byte 0x020205AC +_081769D8: .4byte 0x08176D75 +_081769DC: .4byte 0x085C797C +_081769E0: + ldr r0, _08176A5C + bl LoadCompressedSpriteSheet + ldr r0, _08176A60 + bl LoadCompressedSpriteSheet + ldr r0, _08176A64 + bl LoadCompressedSpriteSheet + ldr r0, _08176A68 + bl LoadSpritePalettes + movs r0, #0x78 + movs r1, #0x2e + bl intro_create_may_sprite + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _08176A6C + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + adds r4, r4, r0 + strh r2, [r4, #0x12] + ldr r6, _08176A70 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r5, r6, #0 + adds r5, #0x1c + adds r2, r0, r5 + ldr r1, _08176A74 + str r1, [r2] + adds r6, #8 + adds r0, r0, r6 + ldr r1, _08176A78 + str r1, [r0] + movs r0, #0x88 + lsls r0, r0, #1 + movs r1, #0x2e + bl intro_create_brendan_sprite +_08176A34: + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + strh r2, [r4, #0x14] + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r5, r0, r5 + ldr r1, _08176A7C + str r1, [r5] + adds r0, r0, r6 + ldr r1, _08176A80 + str r1, [r0] + ldr r1, _08176A84 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _08176A9E + .align 2, 0 +_08176A5C: .4byte 0x085D2814 +_08176A60: .4byte 0x085D287C +_08176A64: .4byte 0x085D2824 +_08176A68: .4byte 0x085D2854 +_08176A6C: .4byte 0x03005B60 +_08176A70: .4byte 0x020205AC +_08176A74: .4byte 0x08176D75 +_08176A78: .4byte 0x085C797C +_08176A7C: .4byte 0x08176E1D +_08176A80: .4byte 0x085C79BC +_08176A84: .4byte 0x03002360 +_08176A88: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08176488 + adds r0, r4, #0 + bl sub_0817B268 + movs r0, #0 + strb r0, [r6] + movs r0, #1 + b _08176AA0 +_08176A9E: + movs r0, #0 +_08176AA0: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081768B8 + + thumb_func_start sub_08176AA8 +sub_08176AA8: @ 0x08176AA8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08176B1C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 + ldrh r1, [r4, #8] + movs r2, #8 + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _08176ACE + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + movs r0, #0 + strh r0, [r4, #8] +_08176ACE: + ldrh r1, [r4, #0xa] + movs r2, #0xa + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _08176AE4 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + movs r0, #0 + strh r0, [r4, #0xa] +_08176AE4: + ldrh r1, [r4, #0xc] + movs r2, #0xc + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _08176AFA + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + movs r0, #0 + strh r0, [r4, #0xc] +_08176AFA: + ldrh r1, [r4, #0xe] + movs r2, #0xe + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _08176B10 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + movs r0, #0 + strh r0, [r4, #0xe] +_08176B10: + ldr r1, _08176B20 + movs r0, #1 + strh r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08176B1C: .4byte 0x03005B60 +_08176B20: .4byte 0x0203B9F4 + thumb_func_end sub_08176AA8 + + thumb_func_start sub_08176B24 +sub_08176B24: @ 0x08176B24 + push {r4, r5, r6, r7, lr} + adds r3, r0, #0 + adds r4, r2, #0 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + lsls r4, r4, #0x10 + lsrs r5, r4, #0x10 + ldr r0, _08176BE8 + movs r6, #0xc0 + lsls r6, r6, #0x13 + adds r3, r3, r6 + adds r1, r3, #0 + bl LZ77UnCompVram + ldr r0, _08176BEC + adds r1, r5, #0 + movs r2, #0x20 + bl LoadPalette + lsrs r4, r4, #0x14 + lsls r4, r4, #0x1c + lsrs r4, r4, #0x10 + movs r2, #0 + adds r1, r4, #1 + ldr r3, _08176BF0 +_08176B5A: + lsls r0, r2, #1 + adds r0, r0, r7 + adds r0, r0, r6 + strh r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, r3 + bls _08176B5A + movs r2, #0 + adds r0, r4, #2 + adds r6, r4, #0 + adds r6, #0x17 + movs r1, #0x2b + adds r1, r1, r4 + mov ip, r1 + adds r4, #0x41 + ldr r5, _08176BF4 + adds r3, r0, #0 +_08176B80: + lsls r0, r2, #1 + adds r0, r0, r7 + adds r0, r0, r5 + adds r1, r2, r3 + strh r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0x14 + bls _08176B80 + movs r2, #0 + ldr r5, _08176BF8 + adds r3, r6, #0 +_08176B9A: + lsls r0, r2, #1 + adds r0, r0, r7 + adds r0, r0, r5 + adds r1, r2, r3 + strh r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0x13 + bls _08176B9A + movs r2, #0 + ldr r5, _08176BFC + mov r3, ip +_08176BB4: + lsls r0, r2, #1 + adds r0, r0, r7 + adds r0, r0, r5 + adds r1, r2, r3 + strh r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0x15 + bls _08176BB4 + movs r2, #0 + ldr r3, _08176C00 +_08176BCC: + lsls r0, r2, #1 + adds r0, r0, r7 + adds r0, r0, r3 + adds r1, r2, r4 + strh r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0xb + bls _08176BCC + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08176BE8: .4byte 0x085C682C +_08176BEC: .4byte 0x085C0C74 +_08176BF0: .4byte 0x000003FF +_08176BF4: .4byte 0x060001C8 +_08176BF8: .4byte 0x06000248 +_08176BFC: .4byte 0x060002C8 +_08176C00: .4byte 0x06000348 + thumb_func_end sub_08176B24 + + thumb_func_start sub_08176C04 +sub_08176C04: @ 0x08176C04 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r3, r2, #0 + movs r0, #0x3f + ands r0, r2 + adds r1, r0, #0 + adds r1, #0x50 + cmp r2, #0xff + bne _08176C1C + movs r0, #1 + b _08176C42 +_08176C1C: + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _08176C2C + movs r2, #0x80 + lsls r2, r2, #4 + adds r0, r2, #0 + orrs r1, r0 +_08176C2C: + movs r0, #0x40 + ands r3, r0 + cmp r3, #0 + beq _08176C40 + movs r2, #0x80 + lsls r2, r2, #3 + adds r0, r2, #0 + orrs r1, r0 + lsls r0, r1, #0x10 + lsrs r1, r0, #0x10 +_08176C40: + adds r0, r1, #0 +_08176C42: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08176C04 + + thumb_func_start sub_08176C48 +sub_08176C48: @ 0x08176C48 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + str r0, [sp] + ldr r0, [sp, #0x2c] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sl, r1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #4] + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + str r3, [sp, #8] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x14 + lsls r0, r0, #0x1c + lsrs r0, r0, #0x10 + mov sb, r0 + movs r5, #0 +_08176C76: + movs r4, #0 + lsls r7, r5, #1 + ldr r1, [sp, #4] + adds r0, r1, r5 + adds r2, r5, #1 + mov r8, r2 + lsls r0, r0, #6 + ldr r1, [sp, #8] + adds r6, r0, r1 +_08176C88: + adds r0, r7, r5 + adds r0, r0, r4 + ldr r2, [sp] + adds r0, r2, r0 + ldrb r0, [r0] + bl sub_08176C04 + mov r2, sl + adds r1, r2, r4 + lsls r1, r1, #1 + adds r1, r1, r6 + movs r2, #0xc0 + lsls r2, r2, #0x13 + adds r1, r1, r2 + add r0, sb + strh r0, [r1] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #2 + bls _08176C88 + mov r1, r8 + lsls r0, r1, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #4 + bls _08176C76 + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08176C48 + + thumb_func_start sub_08176CCC +sub_08176CCC: @ 0x08176CCC + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + lsrs r1, r1, #0x14 + lsls r1, r1, #0x1c + lsrs r1, r1, #0x10 + movs r2, #0 + ldr r7, _08176D5C + movs r4, #0xc0 + lsls r4, r4, #0x13 + adds r1, #1 + ldr r3, _08176D60 +_08176CEA: + lsls r0, r2, #1 + adds r0, r0, r5 + adds r0, r0, r4 + strh r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, r3 + bls _08176CEA + str r6, [sp] + adds r0, r7, #0 + movs r1, #3 + movs r2, #7 + adds r3, r5, #0 + bl sub_08176C48 + ldr r0, _08176D64 + str r6, [sp] + movs r1, #7 + movs r2, #7 + adds r3, r5, #0 + bl sub_08176C48 + ldr r4, _08176D68 + str r6, [sp] + adds r0, r4, #0 + movs r1, #0xb + movs r2, #7 + adds r3, r5, #0 + bl sub_08176C48 + str r6, [sp] + adds r0, r4, #0 + movs r1, #0x10 + movs r2, #7 + adds r3, r5, #0 + bl sub_08176C48 + ldr r0, _08176D6C + str r6, [sp] + movs r1, #0x14 + movs r2, #7 + adds r3, r5, #0 + bl sub_08176C48 + ldr r0, _08176D70 + str r6, [sp] + movs r1, #0x18 + movs r2, #7 + adds r3, r5, #0 + bl sub_08176C48 + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08176D5C: .4byte 0x085C6C68 +_08176D60: .4byte 0x000003FF +_08176D64: .4byte 0x085C6C77 +_08176D68: .4byte 0x085C6C86 +_08176D6C: .4byte 0x085C6C95 +_08176D70: .4byte 0x085C6CA4 + thumb_func_end sub_08176CCC + + thumb_func_start sub_08176D74 +sub_08176D74: @ 0x08176D74 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08176D8C + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _08176D90 + adds r0, r4, #0 + bl DestroySprite + b _08176E14 + .align 2, 0 +_08176D8C: .4byte 0x0203B9F4 +_08176D90: + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r0, #5 + bhi _08176E14 + lsls r0, r0, #2 + ldr r1, _08176DA4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08176DA4: .4byte 0x08176DA8 +_08176DA8: @ jump table + .4byte _08176DC0 @ case 0 + .4byte _08176DCA @ case 1 + .4byte _08176DD0 @ case 2 + .4byte _08176DDA @ case 3 + .4byte _08176DE4 @ case 4 + .4byte _08176DFA @ case 5 +_08176DC0: + adds r0, r4, #0 + movs r1, #0 + bl StartSpriteAnimIfDifferent + b _08176E14 +_08176DCA: + adds r0, r4, #0 + movs r1, #1 + b _08176DFE +_08176DD0: + adds r0, r4, #0 + movs r1, #2 + bl StartSpriteAnimIfDifferent + b _08176E14 +_08176DDA: + adds r0, r4, #0 + movs r1, #3 + bl StartSpriteAnimIfDifferent + b _08176E14 +_08176DE4: + adds r0, r4, #0 + movs r1, #0 + bl StartSpriteAnimIfDifferent + ldrh r1, [r4, #0x20] + movs r2, #0x20 + ldrsh r0, [r4, r2] + cmp r0, #0x78 + ble _08176E14 + subs r0, r1, #1 + b _08176E12 +_08176DFA: + adds r0, r4, #0 + movs r1, #0 +_08176DFE: + bl StartSpriteAnimIfDifferent + ldrh r2, [r4, #0x20] + movs r0, #0x20 + ldrsh r1, [r4, r0] + movs r0, #0x20 + rsbs r0, r0, #0 + cmp r1, r0 + ble _08176E14 + subs r0, r2, #1 +_08176E12: + strh r0, [r4, #0x20] +_08176E14: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08176D74 + + thumb_func_start sub_08176E1C +sub_08176E1C: @ 0x08176E1C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08176E34 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _08176E38 + adds r0, r4, #0 + bl DestroySprite + b _08176ED4 + .align 2, 0 +_08176E34: .4byte 0x0203B9F4 +_08176E38: + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _08176E60 + cmp r0, #1 + bgt _08176E4A + cmp r0, #0 + beq _08176E54 + b _08176ED4 +_08176E4A: + cmp r0, #2 + beq _08176E9C + cmp r0, #3 + beq _08176EBA + b _08176ED4 +_08176E54: + strh r0, [r4, #0x26] + adds r0, r4, #0 + movs r1, #0 + bl StartSpriteAnimIfDifferent + b _08176ED4 +_08176E60: + movs r1, #0x20 + ldrsh r0, [r4, r1] + cmp r0, #0xc8 + ble _08176E72 + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAnimIfDifferent + b _08176E7A +_08176E72: + adds r0, r4, #0 + movs r1, #2 + bl StartSpriteAnimIfDifferent +_08176E7A: + ldrh r2, [r4, #0x20] + movs r0, #0x20 + ldrsh r1, [r4, r0] + movs r0, #0x20 + rsbs r0, r0, #0 + cmp r1, r0 + ble _08176E8C + subs r0, r2, #2 + strh r0, [r4, #0x20] +_08176E8C: + ldr r0, _08176E98 + ldrh r0, [r0] + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + b _08176ED4 + .align 2, 0 +_08176E98: .4byte 0x0203B9F2 +_08176E9C: + ldrh r0, [r4, #0x3c] + adds r0, #1 + strh r0, [r4, #0x3c] + adds r0, r4, #0 + movs r1, #0 + bl StartSpriteAnimIfDifferent + ldrh r1, [r4, #0x3c] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _08176ED4 + ldrh r0, [r4, #0x20] + adds r0, #1 + b _08176ED2 +_08176EBA: + adds r0, r4, #0 + movs r1, #0 + bl StartSpriteAnimIfDifferent + ldrh r2, [r4, #0x20] + movs r0, #0x20 + ldrsh r1, [r4, r0] + movs r0, #0x20 + rsbs r0, r0, #0 + cmp r1, r0 + ble _08176ED4 + subs r0, r2, #1 +_08176ED2: + strh r0, [r4, #0x20] +_08176ED4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08176E1C + + thumb_func_start sub_08176EDC +sub_08176EDC: @ 0x08176EDC + push {r4, r5, lr} + sub sp, #4 + adds r5, r0, #0 + ldr r0, _08176EF4 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _08176EF8 + ldrh r0, [r5, #0x3a] + bl FreeAndDestroyMonPicSprite + b _081770A8 + .align 2, 0 +_08176EF4: .4byte 0x0203B9F4 +_08176EF8: + ldrh r0, [r5, #0x3c] + adds r0, #1 + strh r0, [r5, #0x3c] + movs r2, #0x2e + ldrsh r0, [r5, r2] + cmp r0, #0xa + bhi _08176F40 + lsls r0, r0, #2 + ldr r1, _08176F10 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08176F10: .4byte 0x08176F14 +_08176F14: @ jump table + .4byte _08176F40 @ case 0 + .4byte _08176F9A @ case 1 + .4byte _0817701C @ case 2 + .4byte _08177052 @ case 3 + .4byte _08176F40 @ case 4 + .4byte _08176F40 @ case 5 + .4byte _08176F40 @ case 6 + .4byte _08176F40 @ case 7 + .4byte _08176F40 @ case 8 + .4byte _0817708A @ case 9 + .4byte _08177092 @ case 10 +_08176F40: + ldrb r1, [r5, #1] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #1] + movs r0, #0x30 + ldrsh r1, [r5, r0] + movs r0, #0x1f + ands r1, r0 + lsls r1, r1, #1 + ldrb r2, [r5, #3] + movs r0, #0x3f + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #3] + movs r0, #0x10 + strh r0, [r5, #0x32] + ldrh r4, [r5, #0x30] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0x80 + lsls r0, r0, #9 + movs r1, #0x10 + bl __divsi3 + adds r1, r0, #0 + str r1, [sp] + adds r0, r4, #0 + movs r2, #0 + movs r3, #0 + bl SetOamMatrix + adds r2, r5, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + movs r0, #1 + strh r0, [r5, #0x2e] + b _081770A8 +_08176F9A: + ldrh r1, [r5, #0x32] + movs r2, #0x32 + ldrsh r0, [r5, r2] + cmp r0, #0xff + bgt _08176FD0 + adds r0, r1, #0 + adds r0, #8 + strh r0, [r5, #0x32] + ldrh r4, [r5, #0x30] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0x32 + ldrsh r1, [r5, r0] + movs r0, #0x80 + lsls r0, r0, #9 + bl __divsi3 + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp] + adds r0, r4, #0 + movs r2, #0 + movs r3, #0 + bl SetOamMatrix + b _08176FD6 +_08176FD0: + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] +_08176FD6: + movs r2, #0x30 + ldrsh r1, [r5, r2] + cmp r1, #2 + beq _081770A8 + cmp r1, #2 + bgt _08176FE8 + cmp r1, #1 + beq _08176FEE + b _081770A8 +_08176FE8: + cmp r1, #3 + beq _08177006 + b _081770A8 +_08176FEE: + ldrh r1, [r5, #0x3c] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _08176FFE + ldrh r0, [r5, #0x22] + adds r0, #1 + strh r0, [r5, #0x22] +_08176FFE: + ldrh r0, [r5, #0x20] + subs r0, #2 + strh r0, [r5, #0x20] + b _081770A8 +_08177006: + ldrh r0, [r5, #0x3c] + ands r1, r0 + cmp r1, #0 + bne _08177014 + ldrh r0, [r5, #0x22] + adds r0, #1 + strh r0, [r5, #0x22] +_08177014: + ldrh r0, [r5, #0x20] + adds r0, #2 + strh r0, [r5, #0x20] + b _081770A8 +_0817701C: + ldrh r1, [r5, #0x34] + movs r2, #0x34 + ldrsh r0, [r5, r2] + cmp r0, #0 + beq _0817702C + subs r0, r1, #1 + strh r0, [r5, #0x34] + b _081770A8 +_0817702C: + movs r1, #0xf4 + lsls r1, r1, #4 + movs r0, #0x50 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0x10 + bl SetGpuReg + ldrb r1, [r5, #1] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r5, #1] + movs r0, #0x10 + strh r0, [r5, #0x34] + b _0817708A +_08177052: + ldrh r1, [r5, #0x34] + movs r2, #0x34 + ldrsh r0, [r5, r2] + cmp r0, #0 + beq _08177078 + subs r1, #1 + strh r1, [r5, #0x34] + movs r0, #0x34 + ldrsh r2, [r5, r0] + movs r0, #0x10 + subs r0, r0, r2 + lsls r0, r0, #8 + adds r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + b _081770A8 +_08177078: + adds r2, r5, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + movs r0, #9 + strh r0, [r5, #0x2e] + b _081770A8 +_0817708A: + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] + b _081770A8 +_08177092: + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + ldrh r0, [r5, #0x3a] + bl FreeAndDestroyMonPicSprite +_081770A8: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_08176EDC + + thumb_func_start sub_081770B0 +sub_081770B0: @ 0x081770B0 + push {r4, r5, r6, r7, lr} + adds r5, r3, #0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r3, r5, #0 + bl CreateMonSpriteFromNationalDexNumber + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r6, _08177138 + lsls r1, r4, #4 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r2, r1, r6 + ldrb r3, [r2, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r3 + movs r3, #4 + orrs r0, r3 + strb r0, [r2, #5] + adds r0, r5, #1 + strh r0, [r2, #0x30] + movs r0, #0x3e + adds r0, r0, r2 + mov ip, r0 + ldrb r0, [r0] + orrs r0, r3 + mov r3, ip + strb r0, [r3] + adds r0, r6, #0 + adds r0, #0x1c + adds r1, r1, r0 + ldr r0, _0817713C + str r0, [r1] + strh r4, [r2, #0x3a] + ldr r0, _08177140 + movs r7, #0x20 + ldrsh r1, [r2, r7] + movs r3, #0x22 + ldrsh r2, [r2, r3] + movs r3, #1 + bl CreateSprite + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + strh r4, [r0, #0x2e] + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + adds r1, r5, #0 + bl StartSpriteAnimIfDifferent + adds r0, r4, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08177138: .4byte 0x020205AC +_0817713C: .4byte 0x08176EDD +_08177140: .4byte 0x085C7A14 + thumb_func_end sub_081770B0 + + thumb_func_start sub_08177144 +sub_08177144: @ 0x08177144 + push {r4, lr} + adds r3, r0, #0 + ldr r4, _08177170 + movs r1, #0x2e + ldrsh r0, [r3, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + movs r2, #0x2e + ldrsh r0, [r1, r2] + cmp r0, #0xa + beq _08177168 + ldr r0, _08177174 + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r0, #0 + beq _08177178 +_08177168: + adds r0, r3, #0 + bl DestroySprite + b _0817720C + .align 2, 0 +_08177170: .4byte 0x020205AC +_08177174: .4byte 0x0203B9F4 +_08177178: + adds r0, r1, #0 + adds r0, #0x3e + ldrb r0, [r0] + movs r1, #0x3e + adds r1, r1, r3 + mov ip, r1 + movs r1, #4 + ands r1, r0 + mov r0, ip + ldrb r2, [r0] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + movs r2, #0x2e + ldrsh r1, [r3, r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r1, [r0, #1] + movs r0, #0xc + ands r0, r1 + ldrb r2, [r3, #1] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #1] + movs r0, #0x2e + ldrsh r2, [r3, r0] + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r0, [r0, #1] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + movs r2, #4 + rsbs r2, r2, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #1] + movs r2, #0x2e + ldrsh r1, [r3, r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r0, [r0, #3] + movs r1, #0x3e + ands r1, r0 + ldrb r2, [r3, #3] + movs r0, #0x3f + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #3] + movs r0, #0x2e + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r0, [r0, #0x20] + strh r0, [r3, #0x20] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r0, [r0, #0x22] + strh r0, [r3, #0x22] +_0817720C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08177144 + + thumb_func_start sub_08177214 +sub_08177214: @ 0x08177214 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _081772AC + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetStarterPokemon + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 + movs r4, #1 + movs r6, #0 + ldr r5, _081772B0 +_08177240: + adds r0, r4, #0 + movs r1, #1 + bl GetSetPokedexFlag + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08177260 + ldr r0, _081772B4 + ldr r0, [r0] + lsls r1, r6, #1 + adds r0, #0x7e + adds r0, r0, r1 + strh r4, [r0] + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 +_08177260: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, r5 + bls _08177240 + adds r4, r6, #0 + ldr r0, _081772B0 + ldr r1, _081772B4 + mov r8, r1 + lsls r7, r4, #0x10 + cmp r4, r0 + bhi _08177292 + mov r5, r8 + movs r3, #0 + adds r2, r0, #0 +_0817727E: + ldr r0, [r5] + lsls r1, r4, #1 + adds r0, #0x7e + adds r0, r0, r1 + strh r3, [r0] + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, r2 + bls _0817727E +_08177292: + mov r2, r8 + ldr r1, [r2] + ldr r2, _081772B8 + adds r0, r1, r2 + strh r6, [r0] + lsrs r0, r7, #0x10 + cmp r0, #0x37 + bhi _081772BC + adds r0, r1, #0 + adds r0, #0x7c + strh r6, [r0] + b _081772C2 + .align 2, 0 +_081772AC: .4byte 0x00004023 +_081772B0: .4byte 0x00000181 +_081772B4: .4byte 0x0203B9B4 +_081772B8: .4byte 0x00000382 +_081772BC: + adds r1, #0x7c + movs r0, #0x38 + strh r0, [r1] +_081772C2: + movs r6, #0 + ldr r0, _081772D0 + mov sb, r0 + ldr r1, _081772D4 + mov r8, r1 + movs r7, #0 + b _081772DC + .align 2, 0 +_081772D0: .4byte 0x0203B9B4 +_081772D4: .4byte 0x00000382 +_081772D8: + cmp r6, #0x37 + bhi _08177338 +_081772DC: + bl Random + mov r2, sb + ldr r4, [r2] + mov r1, r8 + adds r5, r4, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrh r1, [r5] + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + lsls r1, r6, #1 + adds r1, r4, r1 + lsls r0, r3, #1 + adds r4, #0x7e + adds r2, r4, r0 + ldrh r0, [r2] + strh r0, [r1] + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + strh r7, [r2] + ldrh r0, [r5] + subs r0, #1 + strh r0, [r5] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r3, r0 + beq _0817732C + ldrh r0, [r5] + lsls r0, r0, #1 + adds r0, r4, r0 + ldrh r0, [r0] + strh r0, [r2] + ldrh r0, [r5] + lsls r0, r0, #1 + adds r0, r4, r0 + strh r7, [r0] +_0817732C: + mov r2, sb + ldr r0, [r2] + add r0, r8 + ldrh r0, [r0] + cmp r0, #0 + bne _081772D8 +_08177338: + ldr r1, _08177380 + ldr r2, [r1] + adds r3, r2, #0 + adds r3, #0x7c + ldrh r0, [r3] + mov r8, r1 + cmp r0, #0x37 + bhi _08177384 + adds r6, r0, #0 + movs r3, #0 + cmp r6, #0x37 + bhi _0817737A + mov r4, r8 +_08177352: + ldr r2, [r4] + lsls r1, r6, #1 + adds r1, r2, r1 + lsls r0, r3, #1 + adds r0, r2, r0 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + adds r2, #0x7c + ldrh r2, [r2] + cmp r3, r2 + bne _08177370 + movs r3, #0 +_08177370: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #0x37 + bls _08177352 +_0817737A: + mov r1, r8 + ldr r0, [r1] + b _081773C4 + .align 2, 0 +_08177380: .4byte 0x0203B9B4 +_08177384: + movs r4, #0 + ldrh r0, [r2] + cmp r0, sl + beq _081773A2 + adds r1, r2, #0 +_0817738E: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + lsls r0, r4, #1 + adds r0, r1, r0 + ldrh r0, [r0] + cmp r0, sl + beq _081773A2 + cmp r4, #0x37 + bls _0817738E +_081773A2: + mov r0, r8 + ldr r2, [r0] + adds r0, r2, #0 + adds r0, #0x7c + ldrh r0, [r0] + subs r0, #1 + cmp r4, r0 + bge _081773C2 + lsls r0, r4, #1 + adds r0, r2, r0 + adds r2, #0x6e + ldrh r1, [r2] + strh r1, [r0] + mov r1, sl + strh r1, [r2] + b _081773CA +_081773C2: + adds r0, r2, #0 +_081773C4: + adds r0, #0x6e + mov r2, sl + strh r2, [r0] +_081773CA: + mov r1, r8 + ldr r0, [r1] + adds r0, #0x7c + movs r1, #0x38 + strh r1, [r0] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08177214 + diff --git a/asm/dark.s b/asm/dark.s new file mode 100644 index 0000000..fff13bd --- /dev/null +++ b/asm/dark.s @@ -0,0 +1,2375 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_08113EEC +sub_08113EEC: @ 0x08113EEC + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x30] + ldrh r1, [r4, #0x36] + adds r0, r0, r1 + strh r0, [r4, #0x36] + ldrh r0, [r4, #0x32] + ldrh r2, [r4, #0x38] + adds r0, 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, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x34 + ldrsh r1, [r4, r2] + cmp r0, r1 + ble _08113F30 + adds r0, r4, #0 + bl DestroyAnimSprite +_08113F30: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08113EEC + + thumb_func_start sub_08113F38 +sub_08113F38: @ 0x08113F38 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _08113F74 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08113F78 + ldrh r1, [r1] + strh r1, [r0, #8] + ldr r1, _08113F7C + ldrb r4, [r1] + movs r1, #0x10 + strh r1, [r0, #0xa] + movs r0, #0x52 + bl SetGpuReg + adds r0, r4, #0 + bl GetBattlerSpriteBGPriorityRank + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08113F84 + ldr r1, _08113F80 + movs r0, #0x50 + bl SetGpuReg + b _08113F8C + .align 2, 0 +_08113F74: .4byte 0x03005B60 +_08113F78: .4byte 0x020380BE +_08113F7C: .4byte 0x020380D6 +_08113F80: .4byte 0x00003F42 +_08113F84: + ldr r1, _08113FA0 + movs r0, #0x50 + bl SetGpuReg +_08113F8C: + ldr r0, _08113FA4 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _08113FA8 + str r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08113FA0: .4byte 0x00003F44 +_08113FA4: .4byte 0x03005B60 +_08113FA8: .4byte 0x08113FAD + thumb_func_end sub_08113F38 + + thumb_func_start sub_08113FAC +sub_08113FAC: @ 0x08113FAC + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r1, _08114018 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r6, r0, r1 + ldrh r0, [r6, #0xa] + lsrs r4, r0, #8 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r2, #0xc + ldrsh r0, [r6, r2] + ldrb r2, [r6, #8] + cmp r0, r2 + bne _08114028 + adds r4, #1 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + subs r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r4, #8 + orrs r1, r0 + movs r5, #0 + strh r1, [r6, #0xa] + ldrh r1, [r6, #0xa] + movs r0, #0x52 + bl SetGpuReg + strh r5, [r6, #0xc] + cmp r4, #0x10 + bne _0811402E + ldr r2, _0811401C + ldr r1, _08114020 + ldr r0, _08114024 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + adds r0, r7, #0 + bl DestroyAnimVisualTask + b _0811402E + .align 2, 0 +_08114018: .4byte 0x03005B60 +_0811401C: .4byte 0x020205AC +_08114020: .4byte 0x02023E88 +_08114024: .4byte 0x020380D6 +_08114028: + ldrh r0, [r6, #0xc] + adds r0, #1 + strh r0, [r6, #0xc] +_0811402E: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08113FAC + + thumb_func_start sub_08114034 +sub_08114034: @ 0x08114034 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08114060 + lsls r2, r0, #2 + adds r2, r2, r0 + lsls r2, r2, #3 + adds r2, r2, r1 + ldr r0, _08114064 + ldrh r0, [r0] + strh r0, [r2, #8] + movs r1, #0x80 + lsls r1, r1, #5 + strh r1, [r2, #0xa] + ldr r0, _08114068 + str r0, [r2] + movs r0, #0x52 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 +_08114060: .4byte 0x03005B60 +_08114064: .4byte 0x020380BE +_08114068: .4byte 0x0811406D + thumb_func_end sub_08114034 + + thumb_func_start sub_0811406C +sub_0811406C: @ 0x0811406C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r1, _081140C8 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r6, r0, r1 + ldrh r0, [r6, #0xa] + lsrs r4, r0, #8 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r2, #0xc + ldrsh r0, [r6, r2] + ldrb r2, [r6, #8] + cmp r0, r2 + bne _081140CC + subs r4, #1 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r4, #8 + orrs r1, r0 + movs r5, #0 + strh r1, [r6, #0xa] + ldrh r1, [r6, #0xa] + movs r0, #0x52 + bl SetGpuReg + strh r5, [r6, #0xc] + cmp r4, #0 + bne _081140D2 + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + adds r0, r7, #0 + bl DestroyAnimVisualTask + b _081140D2 + .align 2, 0 +_081140C8: .4byte 0x03005B60 +_081140CC: + ldrh r0, [r6, #0xc] + adds r0, #1 + strh r0, [r6, #0xc] +_081140D2: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_0811406C + + thumb_func_start sub_081140D8 +sub_081140D8: @ 0x081140D8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r1, #0x80 + lsls r1, r1, #5 + movs r0, #0x52 + bl SetGpuReg + ldr r0, _08114104 + ldrb r0, [r0] + bl GetBattlerSpriteBGPriorityRank + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0811410C + ldr r1, _08114108 + movs r0, #0x50 + bl SetGpuReg + b _08114114 + .align 2, 0 +_08114104: .4byte 0x020380D6 +_08114108: .4byte 0x00003F42 +_0811410C: + ldr r1, _08114120 + movs r0, #0x50 + bl SetGpuReg +_08114114: + adds r0, r4, #0 + bl DestroyAnimVisualTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08114120: .4byte 0x00003F44 + thumb_func_end sub_081140D8 + + thumb_func_start sub_08114124 +sub_08114124: @ 0x08114124 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r6, _08114190 + ldrb r0, [r6] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x30] + ldr r5, _08114194 + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x32] + ldrb r0, [r6] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x34] + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x36] + movs r0, #0x7e + strh r0, [r4, #0x2e] + adds r0, r4, #0 + bl InitSpriteDataForLinearTranslation + ldrh r0, [r4, #0x30] + rsbs r0, r0, #0 + strh r0, [r4, #0x34] + ldrh r0, [r4, #0x32] + rsbs r0, r0, #0 + strh r0, [r4, #0x36] + ldr r0, _08114198 + strh r0, [r4, #0x3a] + ldr r1, _0811419C + str r1, [r4, #0x1c] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08114190: .4byte 0x020380D7 +_08114194: .4byte 0x020380D6 +_08114198: .4byte 0x0000FFD8 +_0811419C: .4byte 0x081141A1 + thumb_func_end sub_08114124 + + thumb_func_start sub_081141A0 +sub_081141A0: @ 0x081141A0 + push {r4, r5, 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, #0x10 + asrs r0, r0, #0x18 + strh r0, [r4, #0x24] + lsls r0, r1, #0x10 + asrs r0, r0, #0x18 + strh r0, [r4, #0x26] + movs r6, #0x3c + ldrsh r0, [r4, r6] + cmp r0, #0 + bne _081141E2 + adds r0, r2, r5 + strh r0, [r4, #0x34] + adds r1, r1, r3 + strh r1, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + strh r0, [r4, #0x24] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + strh r1, [r4, #0x26] + ldrh r0, [r4, #0x2e] + subs r0, #1 + strh r0, [r4, #0x2e] +_081141E2: + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r2, #0x3a + ldrsh r1, [r4, r2] + bl Sin + ldrh r6, [r4, #0x26] + adds r0, r0, r6 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x38] + adds r0, #3 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x38] + cmp r0, #0x7f + ble _08114212 + movs r0, #0 + strh r0, [r4, #0x38] + ldrh r0, [r4, #0x3a] + adds r0, #0x14 + strh r0, [r4, #0x3a] + ldrh r0, [r4, #0x3c] + adds r0, #1 + strh r0, [r4, #0x3c] +_08114212: + ldrh r0, [r4, #0x2e] + subs r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08114224 + adds r0, r4, #0 + bl DestroyAnimSprite +_08114224: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081141A0 + + thumb_func_start sub_0811422C +sub_0811422C: @ 0x0811422C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08114260 + ldrh r0, [r5] + ldrh r1, [r4, #0x20] + adds r0, r0, r1 + strh r0, [r4, #0x20] + ldrh r0, [r5, #2] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] + ldrb r1, [r5, #4] + adds r0, r4, #0 + bl StartSpriteAffineAnim + ldrh r0, [r5, #6] + strh r0, [r4, #0x2e] + ldrh r0, [r5, #8] + strh r0, [r4, #0x30] + ldrh r0, [r5, #0xa] + strh r0, [r4, #0x32] + ldr r0, _08114264 + str r0, [r4, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08114260: .4byte 0x020380BE +_08114264: .4byte 0x08114269 + thumb_func_end sub_0811422C + + thumb_func_start sub_08114268 +sub_08114268: @ 0x08114268 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x2e] + ldrh r1, [r2, #0x36] + adds r0, r0, r1 + strh r0, [r2, #0x36] + ldrh r1, [r2, #0x30] + ldrh r3, [r2, #0x38] + adds r1, r1, r3 + strh r1, [r2, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + strh r0, [r2, #0x24] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + strh r1, [r2, #0x26] + ldrh r0, [r2, #0x34] + adds r0, #1 + strh r0, [r2, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r3, #0x32 + ldrsh r1, [r2, r3] + cmp r0, r1 + bne _0811429E + ldr r0, _081142A4 + str r0, [r2, #0x1c] +_0811429E: + pop {r0} + bx r0 + .align 2, 0 +_081142A4: .4byte 0x081142A9 + thumb_func_end sub_08114268 + + thumb_func_start sub_081142A8 +sub_081142A8: @ 0x081142A8 + push {lr} + adds r3, r0, #0 + ldrh r1, [r3, #0x36] + ldrh r0, [r3, #0x2e] + subs r1, r1, r0 + strh r1, [r3, #0x36] + ldrh r0, [r3, #0x38] + ldrh r2, [r3, #0x30] + subs r0, r0, r2 + strh r0, [r3, #0x38] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + strh r1, [r3, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + strh r0, [r3, #0x26] + ldrh r0, [r3, #0x34] + subs r0, #1 + strh r0, [r3, #0x34] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _081142DA + adds r0, r3, #0 + bl DestroySpriteAndMatrix +_081142DA: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081142A8 + + thumb_func_start sub_081142E0 +sub_081142E0: @ 0x081142E0 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r0, _081142F4 + movs r2, #0 + ldrsh r1, [r0, r2] + adds r3, r0, #0 + cmp r1, #0 + bne _081142FC + ldr r0, _081142F8 + b _081142FE + .align 2, 0 +_081142F4: .4byte 0x020380BE +_081142F8: .4byte 0x020380D6 +_081142FC: + ldr r0, _0811432C +_081142FE: + ldrb r5, [r0] + movs r6, #0x14 + ldrh r2, [r4, #4] + lsls r1, r2, #0x16 + lsrs r1, r1, #0x16 + adds r1, #4 + ldr r7, _08114330 + adds r0, r7, #0 + ands r1, r0 + ldr r0, _08114334 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, #4] + movs r1, #2 + ldrsh r0, [r3, r1] + cmp r0, #1 + beq _0811435C + cmp r0, #1 + bgt _08114338 + cmp r0, #0 + beq _08114342 + b _081143B0 + .align 2, 0 +_0811432C: .4byte 0x020380D7 +_08114330: .4byte 0x000003FF +_08114334: .4byte 0xFFFFFC00 +_08114338: + cmp r0, #2 + beq _08114376 + cmp r0, #3 + beq _0811438E + b _081143B0 +_08114342: + adds r0, r5, #0 + movs r1, #5 + bl GetBattlerSpriteCoordAttr + subs r0, #8 + strh r0, [r4, #0x20] + adds r0, r5, #0 + movs r1, #2 + bl GetBattlerSpriteCoordAttr + adds r0, #8 + strh r0, [r4, #0x22] + b _081143B0 +_0811435C: + adds r0, r5, #0 + movs r1, #5 + bl GetBattlerSpriteCoordAttr + subs r0, #0xe + strh r0, [r4, #0x20] + adds r0, r5, #0 + movs r1, #2 + bl GetBattlerSpriteCoordAttr + adds r0, #0x10 + strh r0, [r4, #0x22] + b _081143B0 +_08114376: + adds r0, r5, #0 + movs r1, #4 + bl GetBattlerSpriteCoordAttr + adds r0, #8 + strh r0, [r4, #0x20] + adds r0, r5, #0 + movs r1, #2 + bl GetBattlerSpriteCoordAttr + adds r0, #8 + b _081143A4 +_0811438E: + adds r0, r5, #0 + movs r1, #4 + bl GetBattlerSpriteCoordAttr + adds r0, #0xe + strh r0, [r4, #0x20] + adds r0, r5, #0 + movs r1, #2 + bl GetBattlerSpriteCoordAttr + adds r0, #0x10 +_081143A4: + strh r0, [r4, #0x22] + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAffineAnim + movs r6, #0xec +_081143B0: + movs r0, #0x20 + strh r0, [r4, #0x2e] + lsls r0, r6, #0x18 + asrs r0, r0, #0x18 + ldrh r2, [r4, #0x20] + adds r0, r0, r2 + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x22] + adds r0, #0xc + strh r0, [r4, #0x36] + ldr r0, _081143D8 + strh r0, [r4, #0x38] + adds r0, r4, #0 + bl InitAnimArcTranslation + ldr r0, _081143DC + str r0, [r4, #0x1c] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081143D8: .4byte 0x0000FFF4 +_081143DC: .4byte 0x081143E1 + thumb_func_end sub_081142E0 + + thumb_func_start sub_081143E0 +sub_081143E0: @ 0x081143E0 + push {r4, lr} + adds r4, r0, #0 + bl TranslateAnimHorizontalArc + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081143F4 + adds r0, r4, #0 + bl DestroySpriteAndMatrix +_081143F4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081143E0 + + thumb_func_start sub_081143FC +sub_081143FC: @ 0x081143FC + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _08114460 + adds r5, r1, r0 + ldr r4, _08114464 + ldrb r0, [r4] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #0x1f + movs r6, #0 + strh r0, [r5, #0x16] + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoordAttr + subs r0, #7 + strh r0, [r5, #0x14] + ldrh r1, [r5, #0x16] + strh r1, [r5, #0x12] + strh r0, [r5, #0x10] + subs r1, r1, r0 + lsls r1, r1, #8 + strh r1, [r5, #0x22] + ldrb r0, [r4] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + subs r1, #0x20 + strh r1, [r5, #0x24] + adds r0, #0x20 + strh r0, [r5, #0x26] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811446C + ldr r0, _08114468 + b _0811446E + .align 2, 0 +_08114460: .4byte 0x03005B60 +_08114464: .4byte 0x020380D6 +_08114468: .4byte 0x0000FFF4 +_0811446C: + ldr r0, _081144B8 +_0811446E: + strh r0, [r5, #0x18] + ldr r0, _081144BC + ldrb r0, [r0] + bl GetBattlerSpriteBGPriorityRank + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0xe] + cmp r0, #1 + bne _081144D0 + add r4, sp, #0xc + adds r0, r4, #0 + bl sub_080A63F8 + ldr r0, _081144C0 + ldrh r0, [r0] + strh r0, [r5, #0x1c] + ldr r1, _081144C4 + movs r0, #0x50 + bl SetGpuReg + ldrb r1, [r4, #8] + lsls r1, r1, #4 + movs r0, #0 + movs r2, #0x20 + bl FillPalette + ldr r0, _081144C8 + str r0, [sp] + movs r7, #2 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08114500 + ldr r1, _081144CC + b _081144FA + .align 2, 0 +_081144B8: .4byte 0x0000FFC0 +_081144BC: .4byte 0x020380D6 +_081144C0: .4byte 0x02022ACE +_081144C4: .4byte 0x00003F42 +_081144C8: .4byte 0x04000016 +_081144CC: .4byte 0x02022AD0 +_081144D0: + ldr r0, _08114588 + ldrh r0, [r0] + strh r0, [r5, #0x1c] + ldr r1, _0811458C + movs r0, #0x50 + bl SetGpuReg + movs r0, #0 + movs r1, #0x90 + movs r2, #0x20 + bl FillPalette + ldr r0, _08114590 + str r0, [sp] + movs r7, #4 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08114500 + ldr r1, _08114594 +_081144FA: + ldrh r0, [r1] + adds r0, #0xf0 + strh r0, [r1] +_08114500: + ldr r0, _08114598 + str r0, [sp, #4] + mov r2, sp + movs r1, #0 + movs r0, #1 + strb r0, [r2, #8] + mov r0, sp + strb r1, [r0, #9] + strh r1, [r5, #0x1e] + movs r0, #0x10 + strh r0, [r5, #0x20] + strh r1, [r5, #8] + strh r1, [r5, #0xa] + strh r1, [r5, #0xc] + movs r0, #3 + bl sub_08114BC4 + movs r3, #0 + ldr r4, _0811459C + movs r0, #0xf0 + lsls r0, r0, #3 + adds r6, r4, r0 +_0811452C: + lsls r1, r3, #1 + adds r2, r1, r4 + ldrh r0, [r5, #0x1c] + strh r0, [r2] + adds r1, r1, r6 + ldrh r0, [r5, #0x1c] + strh r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0x6f + bls _0811452C + ldr r0, [sp] + ldr r1, [sp, #4] + ldr r2, [sp, #8] + bl ScanlineEffect_SetParams + movs r0, #0x3f + eors r7, r0 + movs r1, #0xfc + lsls r1, r1, #6 + adds r0, r1, #0 + orrs r7, r0 + movs r0, #0x4a + adds r1, r7, #0 + bl SetGpuReg + ldr r1, _081145A0 + movs r0, #0x48 + bl SetGpuReg + ldr r2, _081145A4 + ldrh r0, [r5, #0x24] + lsls r0, r0, #8 + ldrh r1, [r5, #0x26] + orrs r0, r1 + strh r0, [r2] + ldr r1, _081145A8 + movs r0, #0xa0 + strh r0, [r1] + ldr r0, _081145AC + str r0, [r5] + add sp, #0x1c + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08114588: .4byte 0x02022AD2 +_0811458C: .4byte 0x00003F44 +_08114590: .4byte 0x0400001A +_08114594: .4byte 0x02022ACC +_08114598: .4byte 0xA2600001 +_0811459C: .4byte 0x020388C8 +_081145A0: .4byte 0x00003F3F +_081145A4: .4byte 0x02022AD8 +_081145A8: .4byte 0x02022ADA +_081145AC: .4byte 0x081145B1 + thumb_func_end sub_081143FC + + thumb_func_start sub_081145B0 +sub_081145B0: @ 0x081145B0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _081145D4 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #4 + bls _081145CA + b _081146C2 +_081145CA: + lsls r0, r0, #2 + ldr r1, _081145D8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081145D4: .4byte 0x03005B60 +_081145D8: .4byte 0x081145DC +_081145DC: @ jump table + .4byte _081145F0 @ case 0 + .4byte _08114652 @ case 1 + .4byte _0811466C @ case 2 + .4byte _081146A8 @ case 3 + .4byte _081146BC @ case 4 +_081145F0: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _081146C2 + movs r0, #0 + strh r0, [r4, #0xa] + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08114620 + ldrh r1, [r4, #0x1e] + movs r2, #0x1e + ldrsh r0, [r4, r2] + cmp r0, #0xc + beq _0811462E + adds r0, r1, #1 + strh r0, [r4, #0x1e] + b _0811462E +_08114620: + ldrh r1, [r4, #0x20] + movs r2, #0x20 + ldrsh r0, [r4, r2] + cmp r0, #8 + beq _0811462E + subs r0, r1, #1 + strh r0, [r4, #0x20] +_0811462E: + ldrh r1, [r4, #0x20] + lsls r1, r1, #8 + ldrh r0, [r4, #0x1e] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r1, #0x1e + ldrsh r0, [r4, r1] + cmp r0, #0xc + bne _081146C2 + movs r2, #0x20 + ldrsh r0, [r4, r2] + cmp r0, #8 + bne _081146C2 + b _081146AE +_08114652: + ldrh r0, [r4, #0x10] + subs r0, #8 + strh r0, [r4, #0x10] + adds r0, r4, #0 + bl sub_08114A94 + movs r0, #0x10 + ldrsh r1, [r4, r0] + movs r2, #0x18 + ldrsh r0, [r4, r2] + cmp r1, r0 + bge _081146C2 + b _081146AE +_0811466C: + ldrh r0, [r4, #0x10] + subs r0, #8 + strh r0, [r4, #0x10] + adds r0, r4, #0 + bl sub_08114A94 + ldrh r1, [r4, #0x24] + adds r1, #4 + strh r1, [r4, #0x24] + ldrh r0, [r4, #0x26] + subs r2, r0, #4 + strh r2, [r4, #0x26] + lsls r1, r1, #0x10 + lsls r0, r2, #0x10 + cmp r1, r0 + blt _0811468E + strh r2, [r4, #0x24] +_0811468E: + ldr r3, _081146A4 + ldrh r2, [r4, #0x24] + lsls r0, r2, #8 + ldrh r1, [r4, #0x26] + orrs r0, r1 + strh r0, [r3] + lsls r2, r2, #0x10 + lsls r1, r1, #0x10 + cmp r2, r1 + bne _081146C2 + b _081146AE + .align 2, 0 +_081146A4: .4byte 0x02022AD8 +_081146A8: + ldr r1, _081146B8 + movs r0, #3 + strb r0, [r1, #0x15] +_081146AE: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _081146C2 + .align 2, 0 +_081146B8: .4byte 0x020397C8 +_081146BC: + adds r0, r2, #0 + bl DestroyAnimVisualTask +_081146C2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_081145B0 + + thumb_func_start sub_081146C8 +sub_081146C8: @ 0x081146C8 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _081146F0 + adds r5, r0, r1 + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #4 + bls _081146E4 + b _081148F6 +_081146E4: + lsls r0, r0, #2 + ldr r1, _081146F4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081146F0: .4byte 0x03005B60 +_081146F4: .4byte 0x081146F8 +_081146F8: @ jump table + .4byte _0811470C @ case 0 + .4byte _08114790 @ case 1 + .4byte _081147D4 @ case 2 + .4byte _08114840 @ case 3 + .4byte _081148A8 @ case 4 +_0811470C: + bl IsContest + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08114748 + ldr r0, _0811473C + movs r1, #0 + strh r1, [r0] + ldr r0, _08114740 + strh r1, [r0] + ldr r4, _08114744 + movs r0, #0x48 + adds r1, r4, #0 + bl SetGpuReg + movs r0, #0x4a + adds r1, r4, #0 + bl SetGpuReg + adds r0, r6, #0 + bl DestroyAnimVisualTask + b _081148F6 + .align 2, 0 +_0811473C: .4byte 0x02022AD8 +_08114740: .4byte 0x02022ADA +_08114744: .4byte 0x00003F3F +_08114748: + ldr r0, _08114768 + ldrb r0, [r0] + bl GetBattlerSpriteBGPriorityRank + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0xe] + cmp r0, #1 + bne _08114774 + ldr r1, _0811476C + movs r0, #0x50 + bl SetGpuReg + ldr r1, _08114770 + b _0811477E + .align 2, 0 +_08114768: .4byte 0x020380D7 +_0811476C: .4byte 0x00003F42 +_08114770: .4byte 0x02022AD0 +_08114774: + ldr r1, _08114788 + movs r0, #0x50 + bl SetGpuReg + ldr r1, _0811478C +_0811477E: + ldrh r0, [r1] + adds r0, #0xf0 + strh r0, [r1] + b _08114894 + .align 2, 0 +_08114788: .4byte 0x00003F44 +_0811478C: .4byte 0x02022ACC +_08114790: + movs r1, #0xe + ldrsh r0, [r5, r1] + cmp r0, #1 + bne _081147B8 + mov r0, sp + bl sub_080A63F8 + ldr r0, _081147B4 + ldrh r0, [r0] + strh r0, [r5, #0x1c] + mov r0, sp + ldrb r1, [r0, #8] + lsls r1, r1, #4 + movs r0, #0 + movs r2, #0x20 + bl FillPalette + b _081147C8 + .align 2, 0 +_081147B4: .4byte 0x02022ACE +_081147B8: + ldr r0, _081147D0 + ldrh r0, [r0] + strh r0, [r5, #0x1c] + movs r0, #0 + movs r1, #0x90 + movs r2, #0x20 + bl FillPalette +_081147C8: + movs r0, #3 + bl sub_08114BC4 + b _08114894 + .align 2, 0 +_081147D0: .4byte 0x02022AD2 +_081147D4: + ldr r4, _08114820 + ldrb r0, [r4] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #0x1f + movs r6, #0 + strh r0, [r5, #0x16] + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoordAttr + subs r0, #7 + strh r0, [r5, #0x14] + ldrh r1, [r5, #0x16] + subs r1, r1, r0 + lsls r1, r1, #8 + strh r1, [r5, #0x22] + ldrb r0, [r4] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r1, r0, #4 + strh r1, [r5, #0x24] + adds r0, #4 + strh r0, [r5, #0x26] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08114828 + ldr r0, _08114824 + b _0811482A + .align 2, 0 +_08114820: .4byte 0x020380D7 +_08114824: .4byte 0x0000FFF4 +_08114828: + ldr r0, _0811483C +_0811482A: + 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, #8 + strh r0, [r5, #0x20] + b _08114894 + .align 2, 0 +_0811483C: .4byte 0x0000FFC0 +_08114840: + movs r1, #0xe + ldrsh r0, [r5, r1] + cmp r0, #1 + bne _08114850 + ldr r0, _0811484C + b _08114852 + .align 2, 0 +_0811484C: .4byte 0x04000016 +_08114850: + ldr r0, _0811489C +_08114852: + str r0, [sp, #0x10] + movs r3, #0 + add r4, sp, #0x10 + ldr r6, _081148A0 + movs r0, #0xf0 + lsls r0, r0, #3 + adds r7, r6, r0 +_08114860: + lsls r1, r3, #1 + adds r2, r1, r6 + ldrh r0, [r5, #0x1c] + adds r0, #0x9f + subs r0, r0, r3 + strh r0, [r2] + adds r1, r1, r7 + ldrh r0, [r5, #0x1c] + adds r0, #0x9f + subs r0, r0, r3 + strh r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0x6f + bls _08114860 + ldr r1, _081148A4 + str r1, [r4, #4] + movs r2, #0 + movs r0, #1 + strb r0, [r4, #8] + strb r2, [r4, #9] + ldr r0, [sp, #0x10] + ldr r2, [r4, #8] + bl ScanlineEffect_SetParams +_08114894: + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + b _081148F6 + .align 2, 0 +_0811489C: .4byte 0x0400001A +_081148A0: .4byte 0x020388C8 +_081148A4: .4byte 0xA2600001 +_081148A8: + movs r1, #0xe + ldrsh r0, [r5, r1] + cmp r0, #1 + bne _081148C0 + ldr r1, _081148BC + movs r0, #0x4a + bl SetGpuReg + b _081148C8 + .align 2, 0 +_081148BC: .4byte 0x00003F3D +_081148C0: + ldr r1, _08114900 + movs r0, #0x4a + bl SetGpuReg +_081148C8: + ldr r1, _08114904 + movs r0, #0x48 + bl SetGpuReg + ldr r2, _08114908 + ldrh r0, [r5, #0x24] + lsls r0, r0, #8 + ldrh r1, [r5, #0x26] + orrs r0, r1 + strh r0, [r2] + ldr r1, _0811490C + movs r0, #0xa0 + strh r0, [r1] + movs r0, #0 + strh r0, [r5, #8] + strh r0, [r5, #0xa] + strh r0, [r5, #0xc] + ldr r1, _08114910 + movs r0, #0x52 + bl SetGpuReg + ldr r0, _08114914 + str r0, [r5] +_081148F6: + add sp, #0x1c + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08114900: .4byte 0x00003F3B +_08114904: .4byte 0x00003F3F +_08114908: .4byte 0x02022AD8 +_0811490C: .4byte 0x02022ADA +_08114910: .4byte 0x0000080C +_08114914: .4byte 0x08114919 + thumb_func_end sub_081146C8 + + thumb_func_start sub_08114918 +sub_08114918: @ 0x08114918 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _0811493C + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #4 + bls _08114932 + b _08114A82 +_08114932: + lsls r0, r0, #2 + ldr r1, _08114940 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0811493C: .4byte 0x03005B60 +_08114940: .4byte 0x08114944 +_08114944: @ jump table + .4byte _08114958 @ case 0 + .4byte _08114984 @ case 1 + .4byte _081149EC @ case 2 + .4byte _08114A4E @ case 3 + .4byte _08114A60 @ case 4 +_08114958: + ldrh r0, [r4, #0x12] + adds r0, #8 + strh r0, [r4, #0x12] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrh r2, [r4, #0x16] + movs r3, #0x16 + ldrsh r1, [r4, r3] + cmp r0, r1 + blt _0811496E + strh r2, [r4, #0x12] +_0811496E: + adds r0, r4, #0 + bl sub_08114A94 + movs r0, #0x12 + ldrsh r1, [r4, r0] + movs r2, #0x16 + ldrsh r0, [r4, r2] + cmp r1, r0 + beq _08114982 + b _08114A82 +_08114982: + b _08114A54 +_08114984: + movs r3, #0x26 + ldrsh r0, [r4, r3] + movs r2, #0x24 + ldrsh r1, [r4, r2] + subs r0, r0, r1 + cmp r0, #0x3f + bgt _081149A0 + ldrh r0, [r4, #0x24] + subs r0, #4 + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x26] + adds r0, #4 + strh r0, [r4, #0x26] + b _081149A4 +_081149A0: + movs r0, #1 + strh r0, [r4, #0xa] +_081149A4: + ldr r2, _081149E8 + ldrh r0, [r4, #0x24] + lsls r0, r0, #8 + ldrh r1, [r4, #0x26] + orrs r0, r1 + strh r0, [r2] + ldrh r0, [r4, #0x10] + adds r0, #8 + strh r0, [r4, #0x10] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrh r2, [r4, #0x14] + movs r3, #0x14 + ldrsh r1, [r4, r3] + cmp r0, r1 + blt _081149C6 + strh r2, [r4, #0x10] +_081149C6: + adds r0, r4, #0 + bl sub_08114A94 + movs r0, #0x10 + ldrsh r1, [r4, r0] + movs r2, #0x14 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _08114A82 + movs r3, #0xa + ldrsh r0, [r4, r3] + cmp r0, #0 + beq _08114A82 + movs r0, #0 + strh r0, [r4, #0xa] + b _08114A54 + .align 2, 0 +_081149E8: .4byte 0x02022AD8 +_081149EC: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _08114A82 + movs r0, #0 + strh r0, [r4, #0xa] + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08114A1C + ldrh r1, [r4, #0x1e] + movs r2, #0x1e + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _08114A2A + subs r0, r1, #1 + strh r0, [r4, #0x1e] + b _08114A2A +_08114A1C: + ldrh r1, [r4, #0x20] + movs r3, #0x20 + ldrsh r0, [r4, r3] + cmp r0, #0xf + bgt _08114A2A + adds r0, r1, #1 + strh r0, [r4, #0x20] +_08114A2A: + ldrh r1, [r4, #0x20] + lsls r1, r1, #8 + ldrh r0, [r4, #0x1e] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r1, #0x1e + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08114A82 + movs r2, #0x20 + ldrsh r0, [r4, r2] + cmp r0, #0x10 + bne _08114A82 + b _08114A54 +_08114A4E: + ldr r1, _08114A5C + movs r0, #3 + strb r0, [r1, #0x15] +_08114A54: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _08114A82 + .align 2, 0 +_08114A5C: .4byte 0x020397C8 +_08114A60: + ldr r0, _08114A88 + movs r1, #0 + strh r1, [r0] + ldr r0, _08114A8C + strh r1, [r0] + ldr r4, _08114A90 + movs r0, #0x48 + adds r1, r4, #0 + bl SetGpuReg + movs r0, #0x4a + adds r1, r4, #0 + bl SetGpuReg + adds r0, r5, #0 + bl DestroyAnimVisualTask +_08114A82: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08114A88: .4byte 0x02022AD8 +_08114A8C: .4byte 0x02022ADA +_08114A90: .4byte 0x00003F3F + thumb_func_end sub_08114918 + + thumb_func_start sub_08114A94 +sub_08114A94: @ 0x08114A94 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + ldrh r0, [r6, #0x12] + ldrh r4, [r6, #0x10] + subs r0, r0, r4 + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + cmp r1, #0 + beq _08114B88 + 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, #0x10 + movs r4, #0 + cmp r0, #0 + ble _08114AF4 + ldr r0, _08114B80 + mov ip, r0 + ldr r7, _08114B84 +_08114AC8: + lsls r2, r4, #0x10 + asrs r2, r2, #0x10 + lsls r3, r2, #1 + ldrb r1, [r7, #0x14] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #7 + adds r3, r3, r0 + add r3, ip + adds r1, r2, #0 + subs r1, #0x9f + ldrh r0, [r6, #0x1c] + subs r0, r0, r1 + strh r0, [r3] + adds r2, #1 + lsls r2, r2, #0x10 + lsrs r4, r2, #0x10 + asrs r2, r2, #0x10 + movs r1, #0x10 + ldrsh r0, [r6, r1] + cmp r2, r0 + blt _08114AC8 +_08114AF4: + ldrh r4, [r6, #0x10] + lsls r3, r4, #0x10 + asrs r1, r3, #0x10 + movs r2, #0x12 + ldrsh r0, [r6, r2] + cmp r1, r0 + bgt _08114B3E + ldr r0, _08114B80 + mov ip, r0 + ldr r7, _08114B84 +_08114B08: + asrs r4, r3, #0x10 + cmp r4, #0 + blt _08114B2A + asrs r1, r5, #8 + subs r1, r1, r4 + lsls r3, r4, #1 + ldrb r2, [r7, #0x14] + lsls r0, r2, #4 + subs r0, r0, r2 + lsls r0, r0, #7 + adds r3, r3, r0 + add r3, ip + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldrh r2, [r6, #0x1c] + adds r1, r1, r2 + strh r1, [r3] +_08114B2A: + add r5, r8 + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + lsls r3, r4, #0x10 + asrs r1, r3, #0x10 + movs r2, #0x12 + ldrsh r0, [r6, r2] + cmp r1, r0 + ble _08114B08 +_08114B3E: + movs r3, #0x1c + ldrsh r0, [r6, r3] + adds r0, #0x9f + lsls r2, r4, #0x10 + asrs r1, r2, #0x10 + subs r5, r0, r1 + movs r3, #0x16 + ldrsh r0, [r6, r3] + cmp r1, r0 + bge _08114BB6 + ldr r7, _08114B80 + ldr r4, _08114B84 +_08114B56: + asrs r3, r2, #0x10 + cmp r3, #0 + blt _08114B6E + lsls r2, r3, #1 + ldrb r1, [r4, #0x14] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #7 + adds r2, r2, r0 + adds r2, r2, r7 + strh r5, [r2] + subs r5, #1 +_08114B6E: + adds r0, r3, #1 + lsls r2, r0, #0x10 + asrs r1, r2, #0x10 + movs r3, #0x16 + ldrsh r0, [r6, r3] + cmp r1, r0 + blt _08114B56 + b _08114BB6 + .align 2, 0 +_08114B80: .4byte 0x020388C8 +_08114B84: .4byte 0x020397C8 +_08114B88: + movs r1, #0x1c + ldrsh r0, [r6, r1] + adds r5, r0, #0 + adds r5, #0x9f + movs r4, #0 + ldr r3, _08114BC0 + movs r2, #0xf0 + lsls r2, r2, #3 + adds r6, r3, r2 +_08114B9A: + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + lsls r2, r0, #1 + adds r1, r2, r3 + strh r5, [r1] + adds r2, r2, r6 + strh r5, [r2] + subs r5, #1 + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x6f + ble _08114B9A +_08114BB6: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08114BC0: .4byte 0x020388C8 + thumb_func_end sub_08114A94 + + thumb_func_start sub_08114BC4 +sub_08114BC4: @ 0x08114BC4 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r4, #0 + ldr r7, _08114C0C + movs r1, #3 + ands r0, r1 + lsls r5, r0, #2 + movs r0, #0xd + rsbs r0, r0, #0 + adds r6, r0, #0 +_08114BDA: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _08114BFA + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r7 + ldrb r0, [r1, #5] + ands r0, r6 + orrs r0, r5 + strb r0, [r1, #5] +_08114BFA: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #3 + bls _08114BDA + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08114C0C: .4byte 0x020205AC + thumb_func_end sub_08114BC4 + + thumb_func_start sub_08114C10 +sub_08114C10: @ 0x08114C10 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + ldr r6, _08114CB4 + ldrb r0, [r6] + bl GetBattlerSpriteBGPriorityRank + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + eors r0, r1 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f + ldrb r0, [r6] + adds r1, r4, #0 + movs r2, #1 + bl MoveBattlerSpriteToBG + ldr r0, _08114CB8 + mov sb, r0 + ldr r0, _08114CBC + mov r8, r0 + ldrb r0, [r6] + add r0, r8 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + add r1, sb + adds r1, #0x3e + ldrb r2, [r1] + movs r7, #5 + rsbs r7, r7, #0 + adds r0, r7, #0 + ands r0, r2 + strb r0, [r1] + ldrb r0, [r6] + movs r5, #2 + eors r0, r5 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08114C9E + ldrb r0, [r6] + eors r0, r5 + movs r1, #1 + eors r4, r1 + adds r1, r4, #0 + movs r2, #1 + bl MoveBattlerSpriteToBG + ldrb r0, [r6] + eors r0, r5 + add r0, r8 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sb + adds r0, #0x3e + ldrb r2, [r0] + adds r1, r7, #0 + ands r1, r2 + strb r1, [r0] +_08114C9E: + mov r0, sl + bl DestroyAnimVisualTask + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08114CB4: .4byte 0x020380D6 +_08114CB8: .4byte 0x020205AC +_08114CBC: .4byte 0x02023E88 + thumb_func_end sub_08114C10 + + thumb_func_start sub_08114CC0 +sub_08114CC0: @ 0x08114CC0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r4, _08114D08 + ldrb r0, [r4] + bl GetBattlerSpriteBGPriorityRank + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + eors r0, r1 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r5, r1, #0x1f + adds r0, r5, #0 + bl sub_080A4044 + ldrb r1, [r4] + movs r0, #2 + eors r0, r1 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08114CFC + movs r0, #1 + eors r5, r0 + adds r0, r5, #0 + bl sub_080A4044 +_08114CFC: + adds r0, r6, #0 + bl DestroyAnimVisualTask + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08114D08: .4byte 0x020380D6 + thumb_func_end sub_08114CC0 + + thumb_func_start sub_08114D0C +sub_08114D0C: @ 0x08114D0C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08114D3C + ldrh r0, [r1] + ldrh r2, [r4, #0x20] + adds r0, r0, r2 + strh r0, [r4, #0x20] + ldrh r0, [r1, #2] + ldrh r2, [r4, #0x22] + adds r0, r0, r2 + strh r0, [r4, #0x22] + ldrb r1, [r1, #4] + adds r0, r4, #0 + bl StartSpriteAnim + ldr r0, _08114D40 + str r0, [r4, #0x1c] + ldr r1, _08114D44 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08114D3C: .4byte 0x020380BE +_08114D40: .4byte 0x080A60A1 +_08114D44: .4byte 0x080A34C5 + thumb_func_end sub_08114D0C + + thumb_func_start AnimTask_MetallicShine +AnimTask_MetallicShine: @ 0x08114D48 + push {r4, r5, r6, r7, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r6, #0 + ldr r0, _08114E3C + strh r6, [r0] + ldr r0, _08114E40 + strh r6, [r0] + ldr r1, _08114E44 + movs r0, #0x48 + bl SetGpuReg + ldr r1, _08114E48 + movs r0, #0x4a + bl SetGpuReg + movs r1, #0x80 + lsls r1, r1, #8 + movs r0, #0 + bl SetGpuRegBits + ldr r1, _08114E4C + movs r0, #0x50 + bl SetGpuReg + ldr r1, _08114E50 + movs r0, #0x52 + bl SetGpuReg + movs r0, #1 + movs r1, #4 + movs r2, #0 + bl SetAnimBgAttribute + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl SetAnimBgAttribute + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08114DAC + movs r0, #1 + movs r1, #3 + movs r2, #1 + bl SetAnimBgAttribute +_08114DAC: + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08114E26 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08114E26 + ldr r4, _08114E54 + ldrb r0, [r4] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + beq _08114DDC + ldrb r0, [r4] + bl GetBattlerPosition + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08114E26 +_08114DDC: + ldrb r0, [r4] + movs r5, #2 + eors r0, r5 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08114E26 + ldr r3, _08114E58 + ldr r1, _08114E5C + ldrb r0, [r4] + eors r0, r5 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r3 + ldrb r3, [r2, #5] + lsls r1, r3, #0x1c + lsrs r1, r1, #0x1e + subs r1, #1 + movs r0, #3 + ands r1, r0 + lsls r1, r1, #2 + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #5] + movs r0, #1 + movs r1, #4 + movs r2, #1 + bl SetAnimBgAttribute + movs r6, #1 +_08114E26: + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08114E64 + ldr r0, _08114E60 + ldr r0, [r0] + ldr r0, [r0, #0x18] + ldrh r5, [r0] + b _08114EAC + .align 2, 0 +_08114E3C: .4byte 0x02022AD8 +_08114E40: .4byte 0x02022ADA +_08114E44: .4byte 0x00003F3F +_08114E48: .4byte 0x00003F3D +_08114E4C: .4byte 0x00003F42 +_08114E50: .4byte 0x00000C08 +_08114E54: .4byte 0x020380D6 +_08114E58: .4byte 0x020205AC +_08114E5C: .4byte 0x02023E88 +_08114E60: .4byte 0x02039BD4 +_08114E64: + ldr r4, _08114E84 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08114E90 + ldr r1, _08114E88 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08114E8C + b _08114EA0 + .align 2, 0 +_08114E84: .4byte 0x020380D6 +_08114E88: .4byte 0x02023D12 +_08114E8C: .4byte 0x020243E8 +_08114E90: + ldr r1, _08114F30 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08114F34 +_08114EA0: + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_08114EAC: + movs r0, #0 + bl GetAnimBattlerSpriteId + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _08114F38 + ldrb r0, [r0] + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_080A8290 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + mov r0, sp + bl sub_080A63F8 + mov r0, sp + ldrb r0, [r0, #9] + ldr r1, _08114F3C + bl AnimLoadCompressedBgTilemap + mov r0, sp + ldrb r0, [r0, #9] + ldr r1, _08114F40 + mov r2, sp + ldrh r2, [r2, #0xa] + bl AnimLoadCompressedBgGfx + ldr r0, _08114F44 + mov r1, sp + ldrb r1, [r1, #8] + lsls r1, r1, #4 + movs r2, #0x20 + bl LoadCompressedPalette + ldr r2, _08114F48 + ldr r0, _08114F4C + lsls r1, r4, #4 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r0, [r1, #0x20] + rsbs r0, r0, #0 + adds r0, #0x60 + strh r0, [r2] + ldr r2, _08114F50 + ldrh r0, [r1, #0x22] + rsbs r0, r0, #0 + adds r0, #0x20 + strh r0, [r2] + ldrb r0, [r1, #5] + lsrs r0, r0, #4 + adds r0, #0x10 + adds r1, r0, #0 + ldr r2, _08114F54 + movs r3, #2 + ldrsh r0, [r2, r3] + cmp r0, #0 + bne _08114F58 + adds r0, r1, #0 + movs r1, #0 + bl SetGreyscaleOrOriginalPalette + b _08114F64 + .align 2, 0 +_08114F30: .4byte 0x02023D12 +_08114F34: .4byte 0x02024190 +_08114F38: .4byte 0x020380D6 +_08114F3C: .4byte 0x08C1D258 +_08114F40: .4byte 0x08C1D0F4 +_08114F44: .4byte 0x08C1D230 +_08114F48: .4byte 0x02022ACC +_08114F4C: .4byte 0x020205AC +_08114F50: .4byte 0x02022ACE +_08114F54: .4byte 0x020380BE +_08114F58: + lsls r0, r1, #4 + ldrh r3, [r2, #4] + movs r1, #0x10 + movs r2, #0xb + bl BlendPalette +_08114F64: + ldr r1, _08114F8C + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r5, [r0, #8] + ldr r2, _08114F90 + ldrh r1, [r2] + strh r1, [r0, #0xa] + ldrh r1, [r2, #2] + strh r1, [r0, #0xc] + ldrh r1, [r2, #4] + strh r1, [r0, #0xe] + strh r6, [r0, #0x14] + ldr r1, _08114F94 + str r1, [r0] + add sp, #0x10 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08114F8C: .4byte 0x03005B60 +_08114F90: .4byte 0x020380BE +_08114F94: .4byte 0x08114F99 + thumb_func_end AnimTask_MetallicShine + + thumb_func_start sub_08114F98 +sub_08114F98: @ 0x08114F98 + push {r4, r5, r6, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r0, #0 + ldr r1, _08115060 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrh r0, [r4, #0x1c] + adds r0, #4 + movs r5, #0 + strh r0, [r4, #0x1c] + ldr r2, _08115064 + ldrh r3, [r2] + subs r1, r3, #4 + strh r1, [r2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x80 + beq _08114FC6 + b _081150D6 +_08114FC6: + strh r5, [r4, #0x1c] + adds r0, r3, #0 + adds r0, #0x7c + strh r0, [r2] + ldrh r0, [r4, #0x1e] + adds r0, #1 + strh r0, [r4, #0x1e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + bne _08115074 + movs r0, #0 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _08115068 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrb r0, [r1, #5] + lsrs r0, r0, #4 + adds r0, #0x10 + adds r1, r0, #0 + movs r2, #0xa + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _08115008 + adds r0, r1, #0 + movs r1, #1 + bl SetGreyscaleOrOriginalPalette +_08115008: + movs r0, #8 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + bl DestroySprite + mov r0, sp + bl sub_080A63F8 + mov r0, sp + ldrb r0, [r0, #9] + bl sub_080A6530 + movs r1, #0x14 + ldrsh r0, [r4, r1] + cmp r0, #1 + bne _081150D6 + ldr r2, _0811506C + ldr r0, _08115070 + ldrb r1, [r0] + movs r0, #2 + eors r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r5 + ldrb r3, [r2, #5] + lsls r1, r3, #0x1c + lsrs r1, r1, #0x1e + adds r1, #1 + movs r0, #3 + ands r1, r0 + lsls r1, r1, #2 + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #5] + b _081150D6 + .align 2, 0 +_08115060: .4byte 0x03005B60 +_08115064: .4byte 0x02022ACC +_08115068: .4byte 0x020205AC +_0811506C: .4byte 0x02023E88 +_08115070: .4byte 0x020380D6 +_08115074: + cmp r0, #3 + bne _081150D6 + ldr r0, _081150E0 + strh r5, [r0] + ldr r0, _081150E4 + strh r5, [r0] + ldr r4, _081150E8 + movs r0, #0x48 + adds r1, r4, #0 + bl SetGpuReg + movs r0, #0x4a + adds r1, r4, #0 + bl SetGpuReg + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081150A6 + movs r0, #1 + movs r1, #3 + movs r2, #0 + bl SetAnimBgAttribute +_081150A6: + movs r0, #0 + bl GetGpuReg + adds r1, r0, #0 + movs r2, #0x80 + lsls r2, r2, #8 + adds r0, r2, #0 + eors r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + adds r0, r6, #0 + bl DestroyAnimVisualTask +_081150D6: + add sp, #0x10 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081150E0: .4byte 0x02022AD8 +_081150E4: .4byte 0x02022ADA +_081150E8: .4byte 0x00003F3F + thumb_func_end sub_08114F98 + + thumb_func_start AnimTask_SetGreyscaleOrOriginalPal +AnimTask_SetGreyscaleOrOriginalPal: @ 0x081150EC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r4, #0 + ldr r0, _0811510C + movs r2, #0 + ldrsh r1, [r0, r2] + adds r2, r0, #0 + cmp r1, #7 + bhi _08115150 + lsls r0, r1, #2 + ldr r1, _08115110 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0811510C: .4byte 0x020380BE +_08115110: .4byte 0x08115114 +_08115114: @ jump table + .4byte _08115134 @ case 0 + .4byte _08115134 @ case 1 + .4byte _08115134 @ case 2 + .4byte _08115134 @ case 3 + .4byte _08115140 @ case 4 + .4byte _08115144 @ case 5 + .4byte _08115148 @ case 6 + .4byte _0811514C @ case 7 +_08115134: + ldrb r0, [r2] + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + b _08115152 +_08115140: + movs r4, #0 + b _08115158 +_08115144: + movs r4, #2 + b _08115158 +_08115148: + movs r4, #1 + b _08115158 +_0811514C: + movs r4, #3 + b _08115158 +_08115150: + movs r2, #0xff +_08115152: + movs r0, #0 + cmp r0, #0 + beq _0811517E +_08115158: + adds r0, r4, #0 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0811517C + ldr r0, _08115178 + adds r0, r4, r0 + ldrb r2, [r0] + b _0811517E + .align 2, 0 +_08115178: .4byte 0x02023E88 +_0811517C: + movs r2, #0xff +_0811517E: + cmp r2, #0xff + beq _0811519A + ldr r1, _081151A8 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #5] + lsrs r0, r0, #4 + adds r0, #0x10 + ldr r1, _081151AC + ldrb r1, [r1, #2] + bl SetGreyscaleOrOriginalPalette +_0811519A: + adds r0, r5, #0 + bl DestroyAnimVisualTask + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081151A8: .4byte 0x020205AC +_081151AC: .4byte 0x020380BE + thumb_func_end AnimTask_SetGreyscaleOrOriginalPal + + thumb_func_start sub_081151B0 +sub_081151B0: @ 0x081151B0 + push {lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r2, _081151DC + ldrb r0, [r2] + cmp r0, #1 + bhi _081151C4 + ldr r1, _081151E0 + movs r0, #0 + strh r0, [r1, #0xe] +_081151C4: + ldrb r0, [r2] + cmp r0, #2 + bne _081151D0 + ldr r1, _081151E0 + movs r0, #1 + strh r0, [r1, #0xe] +_081151D0: + adds r0, r3, #0 + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_081151DC: .4byte 0x020380D2 +_081151E0: .4byte 0x020380BE + thumb_func_end sub_081151B0 + diff --git a/asm/daycare.s b/asm/daycare.s new file mode 100644 index 0000000..5158869 --- /dev/null +++ b/asm/daycare.s @@ -0,0 +1,3267 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start GetBoxMonNick +GetBoxMonNick: @ 0x0806F4B0 + push {r4, lr} + sub sp, #0x14 + adds r4, r1, #0 + movs r1, #2 + mov r2, sp + bl GetMonData + adds r0, r4, #0 + mov r1, sp + bl StringCopy10 + add sp, #0x14 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetBoxMonNick + + thumb_func_start GetMonNick +GetMonNick: @ 0x0806F4D0 + push {r4, lr} + sub sp, #0x14 + adds r4, r1, #0 + movs r1, #2 + mov r2, sp + bl GetBoxMonData + adds r0, r4, #0 + mov r1, sp + bl StringCopy10 + add sp, #0x14 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetMonNick + + thumb_func_start CountPokemonInDaycare +CountPokemonInDaycare: @ 0x0806F4F0 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r5, #0 + movs r4, #0 +_0806F4F8: + movs r0, #0x8c + muls r0, r4, r0 + adds r0, r6, r0 + movs r1, #0xb + bl GetBoxMonData + cmp r0, #0 + beq _0806F50E + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_0806F50E: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #1 + bls _0806F4F8 + adds r0, r5, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end CountPokemonInDaycare + + thumb_func_start InitDaycareMailRecordMixing +InitDaycareMailRecordMixing: @ 0x0806F520 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sb, r0 + mov sl, r1 + movs r7, #0 + movs r5, #0 + mov r6, sl + adds r6, #0x74 + movs r0, #1 + mov r8, r0 +_0806F53A: + movs r0, #0x8c + muls r0, r5, r0 + mov r1, sb + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetBoxMonData + cmp r0, #0 + beq _0806F568 + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + adds r0, r4, #0 + movs r1, #0xc + bl GetBoxMonData + adds r1, r0, #0 + cmp r1, #0 + bne _0806F568 + lsls r0, r5, #1 + adds r0, r6, r0 + b _0806F56E +_0806F568: + lsls r0, r5, #1 + adds r0, r6, r0 + mov r1, r8 +_0806F56E: + strh r1, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #1 + bls _0806F53A + mov r0, sl + str r7, [r0, #0x70] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end InitDaycareMailRecordMixing + + thumb_func_start Daycare_FindEmptySpot +Daycare_FindEmptySpot: @ 0x0806F58C + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 +_0806F592: + movs r0, #0x8c + muls r0, r4, r0 + adds r0, r5, r0 + movs r1, #0xb + bl GetBoxMonData + cmp r0, #0 + bne _0806F5A8 + lsls r0, r4, #0x18 + asrs r0, r0, #0x18 + b _0806F5B6 +_0806F5A8: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #1 + bls _0806F592 + movs r0, #1 + rsbs r0, r0, #0 +_0806F5B6: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end Daycare_FindEmptySpot + + thumb_func_start StorePokemonInDaycare +StorePokemonInDaycare: @ 0x0806F5BC + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl MonHasMail + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0806F614 + adds r0, r4, #0 + adds r0, #0x74 + ldr r1, _0806F640 + ldr r1, [r1] + bl StringCopy + adds r1, r4, #0 + adds r1, #0x7c + adds r0, r5, #0 + bl GetBoxMonNick + adds r0, r5, #0 + movs r1, #0x40 + bl GetMonData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0806F644 + ldr r1, [r1] + lsls r2, r0, #3 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r1, r1, r2 + adds r0, r4, #0 + adds r0, #0x50 + ldr r2, _0806F648 + adds r1, r1, r2 + ldm r1!, {r2, r3, r6} + stm r0!, {r2, r3, r6} + ldm r1!, {r2, r3, r6} + stm r0!, {r2, r3, r6} + ldm r1!, {r2, r3, r6} + stm r0!, {r2, r3, r6} + adds r0, r5, #0 + bl TakeMailFromMon +_0806F614: + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0x50 + bl memcpy + adds r0, r4, #0 + bl BoxMonRestorePP + adds r1, r4, #0 + adds r1, #0x88 + movs r0, #0 + str r0, [r1] + adds r0, r5, #0 + bl ZeroMonData + bl CompactPartySlots + bl CalculatePlayerPartyCount + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0806F640: .4byte 0x03005AF0 +_0806F644: .4byte 0x03005AEC +_0806F648: .4byte 0x00002BE0 + thumb_func_end StorePokemonInDaycare + + thumb_func_start StorePokemonInEmptyDaycareSlot +StorePokemonInEmptyDaycareSlot: @ 0x0806F64C + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r0, r4, #0 + bl Daycare_FindEmptySpot + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #0x8c + muls r0, r1, r0 + adds r4, r4, r0 + adds r0, r5, #0 + adds r1, r4, #0 + bl StorePokemonInDaycare + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end StorePokemonInEmptyDaycareSlot + + thumb_func_start StoreSelectedPokemonInDaycare +StoreSelectedPokemonInDaycare: @ 0x0806F670 + push {lr} + bl GetCursorSelectionMonId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x64 + muls r0, r1, r0 + ldr r1, _0806F694 + adds r0, r0, r1 + ldr r1, _0806F698 + ldr r1, [r1] + ldr r2, _0806F69C + adds r1, r1, r2 + bl StorePokemonInEmptyDaycareSlot + pop {r0} + bx r0 + .align 2, 0 +_0806F694: .4byte 0x02024190 +_0806F698: .4byte 0x03005AEC +_0806F69C: .4byte 0x00003030 + thumb_func_end StoreSelectedPokemonInDaycare + + thumb_func_start ShiftDaycareSlots +ShiftDaycareSlots: @ 0x0806F6A0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x8c + adds r0, r4, #0 + movs r1, #0xb + bl GetBoxMonData + cmp r0, #0 + beq _0806F6F6 + adds r0, r5, #0 + movs r1, #0xb + bl GetBoxMonData + adds r6, r0, #0 + cmp r6, #0 + bne _0806F6F6 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x50 + bl memcpy + adds r0, r4, #0 + bl ZeroBoxMonData + adds r4, #0x50 + adds r0, r5, #0 + adds r0, #0x50 + adds r1, r4, #0 + movs r2, #0x38 + bl memcpy + adds r2, r5, #0 + adds r2, #0x88 + movs r0, #0x8a + lsls r0, r0, #1 + adds r1, r5, r0 + ldr r0, [r1] + str r0, [r2] + str r6, [r1] + adds r0, r4, #0 + bl ClearDaycareMonMail +_0806F6F6: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end ShiftDaycareSlots + + thumb_func_start ApplyDaycareExperience +ApplyDaycareExperience: @ 0x0806F6FC + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + movs r5, #0 + ldr r7, _0806F718 +_0806F704: + adds r0, r4, #0 + bl TryIncrementMonLevel + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0806F740 + movs r6, #1 + adds r5, #1 + b _0806F72C + .align 2, 0 +_0806F718: .4byte 0x0000FFFF +_0806F71C: + movs r6, #0 + cmp r0, r7 + bne _0806F72C + ldr r0, _0806F74C + ldrh r1, [r0] + adds r0, r4, #0 + bl DeleteFirstMoveAndGiveMoveToMon +_0806F72C: + adds r0, r4, #0 + adds r1, r6, #0 + bl MonTryLearningNewMove + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + bne _0806F71C + cmp r5, #0x63 + ble _0806F704 +_0806F740: + adds r0, r4, #0 + bl CalculateMonStats + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0806F74C: .4byte 0x02024186 + thumb_func_end ApplyDaycareExperience + + thumb_func_start TakeSelectedPokemonFromDaycare +TakeSelectedPokemonFromDaycare: @ 0x0806F750 + push {r4, r5, r6, r7, lr} + sub sp, #0x68 + adds r5, r0, #0 + ldr r1, _0806F7EC + bl GetMonNick + adds r0, r5, #0 + movs r1, #0xb + bl GetBoxMonData + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + adds r0, r5, #0 + mov r1, sp + bl BoxMonToMon + mov r0, sp + movs r1, #0x38 + bl GetMonData + cmp r0, #0x64 + beq _0806F79E + mov r0, sp + movs r1, #0x19 + bl GetMonData + adds r1, r5, #0 + adds r1, #0x88 + ldr r1, [r1] + adds r0, r0, r1 + str r0, [sp, #0x64] + add r2, sp, #0x64 + mov r0, sp + movs r1, #0x19 + bl SetMonData + mov r0, sp + bl ApplyDaycareExperience +_0806F79E: + ldr r0, _0806F7F0 + movs r1, #0xfa + lsls r1, r1, #1 + adds r6, r0, r1 + adds r0, r6, #0 + mov r1, sp + movs r2, #0x64 + bl memcpy + adds r0, r5, #0 + adds r0, #0x70 + ldrh r0, [r0] + cmp r0, #0 + beq _0806F7CC + adds r4, r5, #0 + adds r4, #0x50 + adds r0, r6, #0 + adds r1, r4, #0 + bl GiveMailToMon2 + adds r0, r4, #0 + bl ClearDaycareMonMail +_0806F7CC: + adds r0, r5, #0 + bl ZeroBoxMonData + adds r1, r5, #0 + adds r1, #0x88 + movs r0, #0 + str r0, [r1] + bl CompactPartySlots + bl CalculatePlayerPartyCount + adds r0, r7, #0 + add sp, #0x68 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0806F7EC: .4byte 0x02021C40 +_0806F7F0: .4byte 0x02024190 + thumb_func_end TakeSelectedPokemonFromDaycare + + thumb_func_start TakeSelectedPokemonMonFromDaycareShiftSlots +TakeSelectedPokemonMonFromDaycareShiftSlots: @ 0x0806F7F4 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0x8c + muls r0, r1, r0 + adds r0, r5, r0 + bl TakeSelectedPokemonFromDaycare + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + bl ShiftDaycareSlots + adds r0, r4, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TakeSelectedPokemonMonFromDaycareShiftSlots + + thumb_func_start TakePokemonFromDaycare +TakePokemonFromDaycare: @ 0x0806F81C + push {lr} + ldr r0, _0806F838 + ldr r0, [r0] + ldr r1, _0806F83C + adds r0, r0, r1 + ldr r1, _0806F840 + ldrb r1, [r1] + bl TakeSelectedPokemonMonFromDaycareShiftSlots + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 +_0806F838: .4byte 0x03005AEC +_0806F83C: .4byte 0x00003030 +_0806F840: .4byte 0x02037280 + thumb_func_end TakePokemonFromDaycare + + thumb_func_start GetLevelAfterDaycareSteps +GetLevelAfterDaycareSteps: @ 0x0806F844 + push {r4, r5, lr} + sub sp, #0x54 + adds r4, r0, #0 + adds r5, r1, #0 + mov r0, sp + adds r1, r4, #0 + movs r2, #0x50 + bl memcpy + adds r0, r4, #0 + movs r1, #0x19 + bl GetBoxMonData + adds r0, r0, r5 + str r0, [sp, #0x50] + add r2, sp, #0x50 + mov r0, sp + movs r1, #0x19 + bl SetBoxMonData + mov r0, sp + bl GetLevelFromBoxMonExp + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #0x54 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetLevelAfterDaycareSteps + + thumb_func_start GetNumLevelsGainedFromSteps +GetNumLevelsGainedFromSteps: @ 0x0806F880 + push {r4, r5, lr} + adds r5, r0, #0 + bl GetLevelFromBoxMonExp + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + adds r0, #0x88 + ldr r1, [r0] + adds r0, r5, #0 + bl GetLevelAfterDaycareSteps + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, r0, r4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetNumLevelsGainedFromSteps + + thumb_func_start GetNumLevelsGainedForDaycareMon +GetNumLevelsGainedForDaycareMon: @ 0x0806F8AC + push {r4, r5, lr} + adds r5, r0, #0 + bl GetNumLevelsGainedFromSteps + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _0806F8D8 + adds r1, r4, #0 + movs r2, #0 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r1, _0806F8DC + adds r0, r5, #0 + bl GetMonNick + adds r0, r4, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0806F8D8: .4byte 0x02021C54 +_0806F8DC: .4byte 0x02021C40 + thumb_func_end GetNumLevelsGainedForDaycareMon + + thumb_func_start GetDaycareCostForSelectedMon +GetDaycareCostForSelectedMon: @ 0x0806F8E0 + push {r4, r5, lr} + adds r5, r0, #0 + bl GetNumLevelsGainedFromSteps + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _0806F910 + adds r0, r5, #0 + bl GetMonNick + movs r0, #0x64 + muls r4, r0, r4 + adds r4, #0x64 + ldr r0, _0806F914 + adds r1, r4, #0 + movs r2, #0 + movs r3, #5 + bl ConvertIntToDecimalStringN + adds r0, r4, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0806F910: .4byte 0x02021C40 +_0806F914: .4byte 0x02021C54 + thumb_func_end GetDaycareCostForSelectedMon + + thumb_func_start GetDaycareCostForMon +GetDaycareCostForMon: @ 0x0806F918 + push {lr} + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r2, #0x8c + muls r1, r2, r1 + adds r0, r0, r1 + bl GetDaycareCostForSelectedMon + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + thumb_func_end GetDaycareCostForMon + + thumb_func_start GetDaycareCost +GetDaycareCost: @ 0x0806F930 + push {lr} + ldr r0, _0806F94C + ldr r0, [r0] + ldr r1, _0806F950 + adds r0, r0, r1 + ldr r1, _0806F954 + ldrb r1, [r1] + bl GetDaycareCostForMon + ldr r1, _0806F958 + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0806F94C: .4byte 0x03005AEC +_0806F950: .4byte 0x00003030 +_0806F954: .4byte 0x02037280 +_0806F958: .4byte 0x02037282 + thumb_func_end GetDaycareCost + + thumb_func_start Debug_AddDaycareSteps +Debug_AddDaycareSteps: @ 0x0806F95C + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _0806F97C + ldr r2, [r1] + ldr r1, _0806F980 + adds r3, r2, r1 + ldr r1, [r3] + adds r1, r1, r0 + str r1, [r3] + ldr r1, _0806F984 + adds r2, r2, r1 + ldr r1, [r2] + adds r1, r1, r0 + str r1, [r2] + bx lr + .align 2, 0 +_0806F97C: .4byte 0x03005AEC +_0806F980: .4byte 0x000030B8 +_0806F984: .4byte 0x00003144 + thumb_func_end Debug_AddDaycareSteps + + thumb_func_start GetNumLevelsGainedFromDaycare +GetNumLevelsGainedFromDaycare: @ 0x0806F988 + push {r4, r5, r6, lr} + ldr r6, _0806F9AC + ldr r5, _0806F9B0 + ldrh r0, [r5] + movs r4, #0x8c + adds r1, r0, #0 + muls r1, r4, r1 + ldr r0, _0806F9B4 + adds r1, r1, r0 + ldr r0, [r6] + adds r0, r0, r1 + movs r1, #0xb + bl GetBoxMonData + cmp r0, #0 + bne _0806F9B8 + movs r0, #0 + b _0806F9CE + .align 2, 0 +_0806F9AC: .4byte 0x03005AEC +_0806F9B0: .4byte 0x02037280 +_0806F9B4: .4byte 0x00003030 +_0806F9B8: + ldrh r0, [r5] + adds r1, r0, #0 + muls r1, r4, r1 + ldr r0, _0806F9D4 + adds r1, r1, r0 + ldr r0, [r6] + adds r0, r0, r1 + bl GetNumLevelsGainedForDaycareMon + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_0806F9CE: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0806F9D4: .4byte 0x00003030 + thumb_func_end GetNumLevelsGainedFromDaycare + + thumb_func_start ClearDaycareMonMail +ClearDaycareMonMail: @ 0x0806F9D8 + push {lr} + movs r3, #0 + movs r2, #7 + adds r1, r0, #0 + adds r1, #0x2b +_0806F9E2: + strb r3, [r1] + subs r1, #1 + subs r2, #1 + cmp r2, #0 + bge _0806F9E2 + adds r2, r0, #0 + adds r2, #0x2c + movs r3, #0 + adds r1, r0, #0 + adds r1, #0x36 +_0806F9F6: + strb r3, [r1] + subs r1, #1 + cmp r1, r2 + bge _0806F9F6 + bl ClearMailStruct + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ClearDaycareMonMail + + thumb_func_start ClearDaycareMon +ClearDaycareMon: @ 0x0806FA08 + push {r4, lr} + adds r4, r0, #0 + bl ZeroBoxMonData + adds r1, r4, #0 + adds r1, #0x88 + movs r0, #0 + str r0, [r1] + adds r4, #0x50 + adds r0, r4, #0 + bl ClearDaycareMonMail + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ClearDaycareMon + + thumb_func_start ClearAllDaycareData +ClearAllDaycareData: @ 0x0806FA28 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r4, #0 + movs r6, #0x8c +_0806FA30: + adds r0, r4, #0 + muls r0, r6, r0 + adds r0, r5, r0 + bl ClearDaycareMon + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #1 + bls _0806FA30 + movs r1, #0x8c + lsls r1, r1, #1 + adds r0, r5, r1 + movs r1, #0 + str r1, [r0] + movs r2, #0x8e + lsls r2, r2, #1 + adds r0, r5, r2 + strb r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end ClearAllDaycareData + + thumb_func_start GetEggSpecies +GetEggSpecies: @ 0x0806FA5C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + movs r0, #0 + mov r8, r0 + ldr r0, _0806FA88 + mov ip, r0 +_0806FA6E: + movs r7, #0 + movs r6, #1 + movs r4, #0x80 + lsls r4, r4, #9 + movs r5, #0x28 + mov r3, ip + adds r3, #0x28 +_0806FA7C: + movs r1, #0 + ldrh r0, [r3, #4] + cmp r0, r2 + bne _0806FA8C + lsrs r2, r4, #0x10 + b _0806FAB8 + .align 2, 0 +_0806FA88: .4byte 0x082F5CA4 +_0806FA8C: + adds r1, #1 + cmp r1, #4 + bgt _0806FAA2 + lsls r0, r1, #3 + adds r0, r0, r5 + add r0, ip + ldrh r0, [r0, #4] + cmp r0, r2 + bne _0806FA8C + lsrs r2, r4, #0x10 + movs r7, #1 +_0806FAA2: + cmp r7, #0 + bne _0806FAB8 + movs r0, #0x80 + lsls r0, r0, #9 + adds r4, r4, r0 + adds r5, #0x28 + adds r3, #0x28 + adds r6, #1 + ldr r0, _0806FAD8 + cmp r6, r0 + ble _0806FA7C +_0806FAB8: + movs r0, #0xce + lsls r0, r0, #1 + cmp r6, r0 + beq _0806FACA + movs r0, #1 + add r8, r0 + mov r0, r8 + cmp r0, #4 + ble _0806FA6E +_0806FACA: + adds r0, r2, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0806FAD8: .4byte 0x0000019B + thumb_func_end GetEggSpecies + + thumb_func_start GetSlotToInheritNature +GetSlotToInheritNature: @ 0x0806FADC + push {r4, r5, r6, r7, lr} + sub sp, #8 + adds r6, r0, #0 + movs r7, #1 + rsbs r7, r7, #0 + movs r4, #0 +_0806FAE8: + movs r0, #0x8c + muls r0, r4, r0 + adds r0, r6, r0 + bl GetBoxMonGender + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xfe + bne _0806FAFC + adds r7, r4, #0 +_0806FAFC: + adds r4, #1 + cmp r4, #1 + ble _0806FAE8 + movs r5, #0 + movs r4, #0 +_0806FB06: + movs r0, #0x8c + muls r0, r4, r0 + adds r0, r6, r0 + movs r1, #0xb + bl GetBoxMonData + lsls r1, r4, #2 + add r1, sp + str r0, [r1] + cmp r0, #0x84 + bne _0806FB20 + adds r5, #1 + adds r7, r4, #0 +_0806FB20: + adds r4, #1 + cmp r4, #1 + ble _0806FB06 + cmp r5, #2 + bne _0806FB3A + bl Random + lsls r0, r0, #0x10 + ldr r1, _0806FB5C + movs r7, #1 + cmp r0, r1 + bls _0806FB3A + movs r7, #0 +_0806FB3A: + movs r0, #0x8c + muls r0, r7, r0 + adds r0, r6, r0 + movs r1, #0xc + bl GetBoxMonData + cmp r0, #0xc3 + bne _0806FB56 + bl Random + lsls r0, r0, #0x10 + ldr r1, _0806FB5C + cmp r0, r1 + bls _0806FB60 +_0806FB56: + movs r0, #1 + rsbs r0, r0, #0 + b _0806FB62 + .align 2, 0 +_0806FB5C: .4byte 0x7FFE0000 +_0806FB60: + adds r0, r7, #0 +_0806FB62: + add sp, #8 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetSlotToInheritNature + + thumb_func_start _TriggerPendingDaycareEgg +_TriggerPendingDaycareEgg: @ 0x0806FB6C + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r6, #0 + ldr r0, _0806FBB0 + ldrh r0, [r0, #0x24] + bl SeedRng2 + adds r0, r5, #0 + bl GetSlotToInheritNature + adds r1, r0, #0 + cmp r1, #0 + bge _0806FBB8 + bl Random2 + adds r4, r0, #0 + bl Random + movs r1, #0x8c + lsls r1, r1, #1 + adds r5, r5, r1 + lsls r4, r4, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _0806FBB4 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r0, #1 + orrs r4, r0 + str r4, [r5] + b _0806FC04 + .align 2, 0 +_0806FBB0: .4byte 0x03002360 +_0806FBB4: .4byte 0x0000FFFE +_0806FBB8: + movs r0, #0x8c + muls r0, r1, r0 + adds r0, r5, r0 + movs r1, #0 + movs r2, #0 + bl GetBoxMonData + bl GetNatureFromPersonality + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 +_0806FBCE: + bl Random2 + adds r4, r0, #0 + bl Random + lsls r4, r4, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + orrs r4, r0 + adds r0, r4, #0 + bl GetNatureFromPersonality + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r7, r0 + bne _0806FBF2 + cmp r4, #0 + bne _0806FBFC +_0806FBF2: + adds r6, #1 + movs r0, #0x96 + lsls r0, r0, #4 + cmp r6, r0 + ble _0806FBCE +_0806FBFC: + movs r1, #0x8c + lsls r1, r1, #1 + adds r0, r5, r1 + str r4, [r0] +_0806FC04: + movs r0, #0x86 + bl FlagSet + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end _TriggerPendingDaycareEgg + + thumb_func_start _TriggerPendingDaycareMaleEgg +_TriggerPendingDaycareMaleEgg: @ 0x0806FC10 + push {r4, lr} + adds r4, r0, #0 + bl Random + movs r1, #0x8c + lsls r1, r1, #1 + adds r4, r4, r1 + movs r2, #0x80 + lsls r2, r2, #8 + adds r1, r2, #0 + orrs r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [r4] + movs r0, #0x86 + bl FlagSet + pop {r4} + pop {r0} + bx r0 + thumb_func_end _TriggerPendingDaycareMaleEgg + + thumb_func_start TriggerPendingDaycareEgg +TriggerPendingDaycareEgg: @ 0x0806FC38 + push {lr} + ldr r0, _0806FC4C + ldr r0, [r0] + ldr r1, _0806FC50 + adds r0, r0, r1 + bl _TriggerPendingDaycareEgg + pop {r0} + bx r0 + .align 2, 0 +_0806FC4C: .4byte 0x03005AEC +_0806FC50: .4byte 0x00003030 + thumb_func_end TriggerPendingDaycareEgg + + thumb_func_start TriggerPendingDaycareMaleEgg +TriggerPendingDaycareMaleEgg: @ 0x0806FC54 + push {lr} + ldr r0, _0806FC68 + ldr r0, [r0] + ldr r1, _0806FC6C + adds r0, r0, r1 + bl _TriggerPendingDaycareMaleEgg + pop {r0} + bx r0 + .align 2, 0 +_0806FC68: .4byte 0x03005AEC +_0806FC6C: .4byte 0x00003030 + thumb_func_end TriggerPendingDaycareMaleEgg + + thumb_func_start RemoveIVIndexFromList +RemoveIVIndexFromList: @ 0x0806FC70 + push {r4, lr} + sub sp, #8 + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r1, r4, r1 + movs r0, #0xff + strb r0, [r1] + movs r2, #0 +_0806FC82: + mov r1, sp + adds r0, r1, r2 + adds r1, r4, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, #5 + ble _0806FC82 + movs r3, #0 + movs r2, #0 +_0806FC96: + mov r1, sp + adds r0, r1, r2 + ldrb r1, [r0] + adds r0, r1, #0 + cmp r0, #0xff + beq _0806FCA8 + adds r0, r4, r3 + strb r1, [r0] + adds r3, #1 +_0806FCA8: + adds r2, #1 + cmp r2, #5 + ble _0806FC96 + add sp, #8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RemoveIVIndexFromList + + thumb_func_start InheritIVs +InheritIVs: @ 0x0806FCB8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x14 + mov sb, r0 + mov r8, r1 + movs r5, #0 + add r1, sp, #4 + add r7, sp, #0xc + adds r2, r1, #0 +_0806FCCE: + adds r0, r2, r5 + strb r5, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #5 + bls _0806FCCE + movs r5, #0 + adds r6, r1, #0 +_0806FCE0: + bl Random + mov r1, sp + adds r4, r1, r5 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #6 + subs r1, r1, r5 + bl __modsi3 + adds r0, r6, r0 + ldrb r0, [r0] + strb r0, [r4] + adds r0, r6, #0 + adds r1, r5, #0 + bl RemoveIVIndexFromList + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #2 + bls _0806FCE0 + movs r5, #0 + movs r4, #1 +_0806FD10: + bl Random + adds r1, r7, r5 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ands r0, r4 + strb r0, [r1] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #2 + bls _0806FD10 + movs r5, #0 +_0806FD2A: + mov r1, sp + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, #5 + bhi _0806FE06 + lsls r0, r0, #2 + ldr r1, _0806FD40 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806FD40: .4byte 0x0806FD44 +_0806FD44: @ jump table + .4byte _0806FD5C @ case 0 + .4byte _0806FD7A @ case 1 + .4byte _0806FD94 @ case 2 + .4byte _0806FDAE @ case 3 + .4byte _0806FDC8 @ case 4 + .4byte _0806FDE8 @ case 5 +_0806FD5C: + adds r0, r7, r5 + ldrb r1, [r0] + movs r0, #0x8c + muls r0, r1, r0 + add r0, r8 + movs r1, #0x27 + bl GetBoxMonData + add r2, sp, #0x10 + strb r0, [r2] + mov r0, sb + movs r1, #0x27 + bl SetMonData + b _0806FE06 +_0806FD7A: + add r4, sp, #0x10 + adds r0, r7, r5 + ldrb r1, [r0] + movs r0, #0x8c + muls r0, r1, r0 + add r0, r8 + movs r1, #0x28 + bl GetBoxMonData + strb r0, [r4] + mov r0, sb + movs r1, #0x28 + b _0806FDE0 +_0806FD94: + add r4, sp, #0x10 + adds r0, r7, r5 + ldrb r1, [r0] + movs r0, #0x8c + muls r0, r1, r0 + add r0, r8 + movs r1, #0x29 + bl GetBoxMonData + strb r0, [r4] + mov r0, sb + movs r1, #0x29 + b _0806FDE0 +_0806FDAE: + add r4, sp, #0x10 + adds r0, r7, r5 + ldrb r1, [r0] + movs r0, #0x8c + muls r0, r1, r0 + add r0, r8 + movs r1, #0x2a + bl GetBoxMonData + strb r0, [r4] + mov r0, sb + movs r1, #0x2a + b _0806FDE0 +_0806FDC8: + add r4, sp, #0x10 + adds r0, r7, r5 + ldrb r1, [r0] + movs r0, #0x8c + muls r0, r1, r0 + add r0, r8 + movs r1, #0x2b + bl GetBoxMonData + strb r0, [r4] + mov r0, sb + movs r1, #0x2b +_0806FDE0: + adds r2, r4, #0 + bl SetMonData + b _0806FE06 +_0806FDE8: + add r4, sp, #0x10 + adds r0, r7, r5 + ldrb r1, [r0] + movs r0, #0x8c + muls r0, r1, r0 + add r0, r8 + movs r1, #0x2c + bl GetBoxMonData + strb r0, [r4] + mov r0, sb + movs r1, #0x2c + adds r2, r4, #0 + bl SetMonData +_0806FE06: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #2 + bls _0806FD2A + add sp, #0x14 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end InheritIVs + + thumb_func_start GetEggMoves +GetEggMoves: @ 0x0806FE20 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r1 + movs r6, #0 + movs r4, #0 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + movs r2, #0 + ldr r5, _0806FE48 + ldrh r1, [r5] + ldr r7, _0806FE4C + adds r0, r3, r7 + cmp r1, r0 + bne _0806FE50 + movs r4, #1 + b _0806FE72 + .align 2, 0 +_0806FE48: .4byte 0x082FB764 +_0806FE4C: .4byte 0x00004E20 +_0806FE50: + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _0806FEBC + ldr r5, _0806FEC0 + cmp r2, r0 + bhi _0806FE72 + lsls r0, r2, #1 + adds r0, r0, r5 + ldrh r1, [r0] + ldr r7, _0806FEC4 + adds r0, r3, r7 + cmp r1, r0 + bne _0806FE50 + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_0806FE72: + movs r2, #0 + lsls r0, r4, #1 + adds r0, r0, r5 + ldrh r0, [r0] + ldr r1, _0806FEC4 + cmp r0, r1 + bhi _0806FEAE + adds r7, r5, #0 + adds r3, r1, #0 +_0806FE84: + lsls r1, r2, #1 + add r1, r8 + adds r0, r4, r2 + lsls r0, r0, #1 + adds r0, r0, r7 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #9 + bhi _0806FEAE + adds r0, r4, r2 + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r0, [r0] + cmp r0, r3 + bls _0806FE84 +_0806FEAE: + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0806FEBC: .4byte 0x00000471 +_0806FEC0: .4byte 0x082FB764 +_0806FEC4: .4byte 0x00004E20 + thumb_func_end GetEggMoves + + thumb_func_start BuildEggMoveset +BuildEggMoveset: @ 0x0806FEC8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + adds r7, r0, #0 + mov sl, r1 + mov sb, r2 + movs r0, #0 + str r0, [sp] + movs r6, #0 + ldr r5, _0806FFCC + movs r2, #0 + ldr r4, _0806FFD0 + ldr r3, _0806FFD4 +_0806FEE8: + lsls r1, r6, #1 + adds r0, r1, r5 + strh r2, [r0] + adds r0, r1, r4 + strh r2, [r0] + adds r1, r1, r3 + strh r2, [r1] + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #3 + bls _0806FEE8 + movs r6, #0 + ldr r2, _0806FFD8 + movs r1, #0 +_0806FF06: + lsls r0, r6, #1 + adds r0, r0, r2 + strh r1, [r0] + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #9 + bls _0806FF06 + movs r6, #0 + ldr r2, _0806FFDC + movs r1, #0 +_0806FF1C: + lsls r0, r6, #1 + adds r0, r0, r2 + strh r1, [r0] + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #0x31 + bls _0806FF1C + adds r0, r7, #0 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _0806FFDC + bl GetLevelUpMovesBySpecies + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + movs r6, #0 + ldr r1, _0806FFD0 + mov r8, r1 +_0806FF4A: + adds r5, r6, #0 + adds r5, #0xd + mov r0, sl + adds r1, r5, #0 + bl GetBoxMonData + lsls r4, r6, #1 + mov r2, r8 + adds r1, r4, r2 + strh r0, [r1] + mov r0, sb + adds r1, r5, #0 + bl GetBoxMonData + ldr r1, _0806FFCC + adds r4, r4, r1 + strh r0, [r4] + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #3 + bls _0806FF4A + ldr r1, _0806FFD8 + adds r0, r7, #0 + bl GetEggMoves + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r6, #0 +_0806FF86: + ldr r0, _0806FFD0 + lsls r1, r6, #1 + adds r2, r1, r0 + ldrh r1, [r2] + mov sb, r0 + cmp r1, #0 + beq _0806FFFC + movs r5, #0 + cmp r5, r8 + bhs _0806FFEE + adds r4, r2, #0 + ldr r2, _0806FFE0 +_0806FF9E: + ldr r0, _0806FFD8 + lsls r1, r5, #1 + adds r1, r1, r0 + ldrh r0, [r4] + ldrh r1, [r1] + cmp r0, r1 + bne _0806FFE4 + adds r1, r0, #0 + adds r0, r7, #0 + str r2, [sp, #8] + bl GiveMoveToMon + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r2, [sp, #8] + cmp r0, r2 + bne _0806FFEE + ldrh r1, [r4] + adds r0, r7, #0 + bl DeleteFirstMoveAndGiveMoveToMon + b _0806FFEE + .align 2, 0 +_0806FFCC: .4byte 0x020246F0 +_0806FFD0: .4byte 0x020246CC +_0806FFD4: .4byte 0x020246D4 +_0806FFD8: .4byte 0x020246DC +_0806FFDC: .4byte 0x02024668 +_0806FFE0: .4byte 0x0000FFFF +_0806FFE4: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, r8 + blo _0806FF9E +_0806FFEE: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r3, _08070118 + mov sb, r3 + cmp r6, #3 + bls _0806FF86 +_0806FFFC: + movs r6, #0 +_0806FFFE: + lsls r0, r6, #1 + mov r2, sb + adds r1, r0, r2 + ldrh r1, [r1] + adds r2, r0, #0 + adds r6, #1 + mov r8, r6 + cmp r1, #0 + beq _08070060 + movs r5, #0 + ldr r0, _08070118 + adds r4, r2, r0 + ldr r6, _0807011C + mov sb, r0 +_0807001A: + ldr r3, _08070120 + adds r0, r5, r3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl ItemIdToBattleMoveId + ldrh r1, [r4] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r1, r0 + bne _08070056 + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + adds r0, r7, #0 + bl CanMonLearnTMHM + cmp r0, #0 + beq _08070056 + ldrh r1, [r4] + adds r0, r7, #0 + bl GiveMoveToMon + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r6 + bne _08070056 + ldrh r1, [r4] + adds r0, r7, #0 + bl DeleteFirstMoveAndGiveMoveToMon +_08070056: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0x39 + bls _0807001A +_08070060: + mov r1, r8 + lsls r0, r1, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #3 + bls _0806FFFE + movs r6, #0 + mov r2, sb + ldrh r0, [r2] + ldr r3, _08070124 + mov sl, r3 + cmp r0, #0 + beq _080700CA + mov r4, sb + ldr r0, _08070128 + mov sb, r0 + mov ip, sl +_08070080: + movs r5, #0 + lsls r2, r6, #1 + adds r6, #1 + mov r8, r6 + adds r3, r2, r4 +_0807008A: + lsls r0, r5, #1 + add r0, sb + ldrh r2, [r3] + adds r1, r2, #0 + ldrh r0, [r0] + cmp r1, r0 + bne _080700AC + cmp r1, #0 + beq _080700AC + ldr r1, [sp] + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp] + lsls r1, r1, #1 + add r1, ip + strh r2, [r1] +_080700AC: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #3 + bls _0807008A + mov r1, r8 + lsls r0, r1, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #3 + bhi _080700CA + lsls r0, r6, #1 + adds r0, r0, r4 + ldrh r0, [r0] + cmp r0, #0 + bne _08070080 +_080700CA: + movs r6, #0 + mov r2, sl + ldrh r0, [r2] + cmp r0, #0 + beq _08070154 +_080700D4: + movs r5, #0 + adds r3, r6, #1 + mov r8, r3 + ldr r0, [sp, #4] + cmp r5, r0 + bhs _0807013C + ldr r2, _0807011C +_080700E2: + ldr r1, _0807012C + lsls r0, r5, #1 + adds r0, r0, r1 + ldrh r1, [r0] + cmp r1, #0 + beq _08070130 + lsls r0, r6, #1 + mov r3, sl + adds r4, r0, r3 + ldrh r0, [r4] + cmp r0, r1 + bne _08070130 + adds r1, r0, #0 + adds r0, r7, #0 + str r2, [sp, #8] + bl GiveMoveToMon + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r2, [sp, #8] + cmp r0, r2 + bne _0807013C + ldrh r1, [r4] + adds r0, r7, #0 + bl DeleteFirstMoveAndGiveMoveToMon + b _0807013C + .align 2, 0 +_08070118: .4byte 0x020246CC +_0807011C: .4byte 0x0000FFFF +_08070120: .4byte 0x00000121 +_08070124: .4byte 0x020246D4 +_08070128: .4byte 0x020246F0 +_0807012C: .4byte 0x02024668 +_08070130: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, [sp, #4] + cmp r5, r0 + blo _080700E2 +_0807013C: + mov r1, r8 + lsls r0, r1, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #3 + bhi _08070154 + ldr r0, _08070164 + lsls r1, r6, #1 + adds r1, r1, r0 + ldrh r1, [r1] + mov sl, r0 + cmp r1, #0 + bne _080700D4 +_08070154: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08070164: .4byte 0x020246D4 + thumb_func_end BuildEggMoveset + + thumb_func_start RemoveEggFromDayCare +RemoveEggFromDayCare: @ 0x08070168 + adds r2, r0, #0 + movs r1, #0x8c + lsls r1, r1, #1 + adds r0, r2, r1 + movs r1, #0 + str r1, [r0] + movs r3, #0x8e + lsls r3, r3, #1 + adds r0, r2, r3 + strb r1, [r0] + bx lr + .align 2, 0 + thumb_func_end RemoveEggFromDayCare + + thumb_func_start RejectEggFromDayCare +RejectEggFromDayCare: @ 0x08070180 + push {lr} + ldr r0, _08070194 + ldr r0, [r0] + ldr r1, _08070198 + adds r0, r0, r1 + bl RemoveEggFromDayCare + pop {r0} + bx r0 + .align 2, 0 +_08070194: .4byte 0x03005AEC +_08070198: .4byte 0x00003030 + thumb_func_end RejectEggFromDayCare + + thumb_func_start AlterEggSpeciesWithIncenseItem +AlterEggSpeciesWithIncenseItem: @ 0x0807019C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrh r1, [r4] + movs r7, #0xb4 + lsls r7, r7, #1 + cmp r1, r7 + beq _080701B4 + movs r0, #0xaf + lsls r0, r0, #1 + cmp r1, r0 + bne _080701F6 +_080701B4: + adds r0, r5, #0 + movs r1, #0xc + bl GetBoxMonData + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r0, r5, #0 + adds r0, #0x8c + movs r1, #0xc + bl GetBoxMonData + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldrh r0, [r4] + cmp r0, r7 + bne _080701E0 + cmp r6, #0xdd + beq _080701E0 + cmp r2, #0xdd + beq _080701E0 + movs r0, #0xca + strh r0, [r4] +_080701E0: + ldrh r1, [r4] + movs r0, #0xaf + lsls r0, r0, #1 + cmp r1, r0 + bne _080701F6 + cmp r6, #0xdc + beq _080701F6 + cmp r2, #0xdc + beq _080701F6 + movs r0, #0xb7 + strh r0, [r4] +_080701F6: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end AlterEggSpeciesWithIncenseItem + + thumb_func_start GiveVoltTackleIfLightBall +GiveVoltTackleIfLightBall: @ 0x080701FC + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r4, r1, #0 + adds r0, r4, #0 + movs r1, #0xc + bl GetBoxMonData + adds r5, r0, #0 + adds r4, #0x8c + adds r0, r4, #0 + movs r1, #0xc + bl GetBoxMonData + cmp r5, #0xca + beq _0807021E + cmp r0, #0xca + bne _0807023A +_0807021E: + movs r4, #0xac + lsls r4, r4, #1 + adds r0, r6, #0 + adds r1, r4, #0 + bl GiveMoveToMon + lsls r0, r0, #0x10 + ldr r1, _08070240 + cmp r0, r1 + bne _0807023A + adds r0, r6, #0 + adds r1, r4, #0 + bl DeleteFirstMoveAndGiveMoveToMon +_0807023A: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08070240: .4byte 0xFFFF0000 + thumb_func_end GiveVoltTackleIfLightBall + + thumb_func_start DetermineEggSpeciesAndParentSlots +DetermineEggSpeciesAndParentSlots: @ 0x08070244 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r7, r0, #0 + adds r6, r1, #0 + movs r4, #0 + movs r0, #1 + mov r8, r0 +_08070256: + movs r0, #0x8c + muls r0, r4, r0 + adds r5, r7, r0 + adds r0, r5, #0 + movs r1, #0xb + bl GetBoxMonData + lsls r1, r4, #1 + add r1, sp + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x84 + bne _0807027E + adds r0, r4, #0 + mov r1, r8 + eors r0, r1 + strb r0, [r6] + strb r4, [r6, #1] + b _08070296 +_0807027E: + adds r0, r5, #0 + bl GetBoxMonGender + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xfe + bne _08070296 + strb r4, [r6] + adds r0, r4, #0 + mov r1, r8 + eors r0, r1 + strb r0, [r6, #1] +_08070296: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #1 + bls _08070256 + ldrb r0, [r6] + lsls r0, r0, #1 + add r0, sp + ldrh r0, [r0] + bl GetEggSpecies + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x1d + bne _080702C8 + movs r1, #0x8c + lsls r1, r1, #1 + adds r0, r7, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + beq _080702C8 + movs r4, #0x20 +_080702C8: + ldr r0, _0807031C + cmp r4, r0 + bne _080702E4 + movs r1, #0x8c + lsls r1, r1, #1 + adds r0, r7, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + beq _080702E4 + movs r4, #0xc1 + lsls r4, r4, #1 +_080702E4: + ldrb r0, [r6, #1] + lsls r0, r0, #1 + add r0, sp + ldrh r0, [r0] + cmp r0, #0x84 + bne _0807030C + ldrb r1, [r6] + movs r0, #0x8c + muls r0, r1, r0 + adds r0, r7, r0 + bl GetBoxMonGender + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xfe + beq _0807030C + ldrb r1, [r6, #1] + ldrb r0, [r6] + strb r0, [r6, #1] + strb r1, [r6] +_0807030C: + adds r0, r4, #0 + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0807031C: .4byte 0x00000183 + thumb_func_end DetermineEggSpeciesAndParentSlots + + thumb_func_start _GiveEggFromDaycare +_GiveEggFromDaycare: @ 0x08070320 + push {r4, r5, r6, lr} + sub sp, #0x6c + adds r6, r0, #0 + add r5, sp, #0x64 + adds r1, r5, #0 + bl DetermineEggSpeciesAndParentSlots + add r4, sp, #0x68 + strh r0, [r4] + adds r0, r4, #0 + adds r1, r6, #0 + bl AlterEggSpeciesWithIncenseItem + ldrh r1, [r4] + mov r0, sp + adds r2, r6, #0 + bl SetInitialEggData + mov r0, sp + adds r1, r6, #0 + bl InheritIVs + ldrb r0, [r5, #1] + movs r2, #0x8c + adds r1, r0, #0 + muls r1, r2, r1 + adds r1, r6, r1 + ldrb r0, [r5] + muls r2, r0, r2 + adds r2, r6, r2 + mov r0, sp + bl BuildEggMoveset + ldrh r0, [r4] + cmp r0, #0xac + bne _08070370 + mov r0, sp + adds r1, r6, #0 + bl GiveVoltTackleIfLightBall +_08070370: + mov r2, sp + adds r2, #0x6a + movs r0, #1 + strb r0, [r2] + mov r0, sp + movs r1, #0x2d + bl SetMonData + ldr r0, _080703A8 + movs r1, #0xfa + lsls r1, r1, #1 + adds r0, r0, r1 + mov r1, sp + movs r2, #0x64 + bl memcpy + bl CompactPartySlots + bl CalculatePlayerPartyCount + adds r0, r6, #0 + bl RemoveEggFromDayCare + add sp, #0x6c + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080703A8: .4byte 0x02024190 + thumb_func_end _GiveEggFromDaycare + + thumb_func_start CreateEgg +CreateEgg: @ 0x080703AC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x18 + adds r7, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + movs r4, #0 + str r4, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + str r4, [sp, #0xc] + adds r1, r5, #0 + movs r2, #5 + movs r3, #0x20 + bl CreateMon + movs r0, #0x12 + add r0, sp + mov r8, r0 + strb r4, [r0] + movs r1, #4 + add r0, sp, #0x10 + strh r1, [r0] + adds r0, r7, #0 + movs r1, #0x26 + add r2, sp, #0x10 + bl SetMonData + ldr r2, _08070444 + adds r0, r7, #0 + movs r1, #2 + bl SetMonData + lsls r2, r5, #3 + subs r2, r2, r5 + lsls r2, r2, #2 + ldr r0, _08070448 + adds r2, r2, r0 + adds r0, r7, #0 + movs r1, #0x20 + bl SetMonData + adds r0, r7, #0 + movs r1, #0x24 + mov r2, r8 + bl SetMonData + cmp r6, #0 + beq _08070428 + mov r2, sp + adds r2, #0x13 + movs r0, #0xfd + strb r0, [r2] + adds r0, r7, #0 + movs r1, #0x23 + bl SetMonData +_08070428: + add r2, sp, #0x14 + movs r0, #1 + strb r0, [r2] + adds r0, r7, #0 + movs r1, #0x2d + bl SetMonData + add sp, #0x18 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08070444: .4byte 0x085C8C62 +_08070448: .4byte 0x082F0D65 + thumb_func_end CreateEgg + + thumb_func_start SetInitialEggData +SetInitialEggData: @ 0x0807044C + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0x14 + adds r6, r0, #0 + adds r5, r1, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + movs r0, #0x8c + lsls r0, r0, #1 + adds r2, r2, r0 + ldr r1, [r2] + movs r0, #1 + str r0, [sp] + str r1, [sp, #4] + movs r4, #0 + str r4, [sp, #8] + str r4, [sp, #0xc] + adds r0, r6, #0 + adds r1, r5, #0 + movs r2, #5 + movs r3, #0x20 + bl CreateMon + movs r0, #0x12 + add r0, sp + mov r8, r0 + strb r4, [r0] + movs r1, #4 + add r0, sp, #0x10 + strh r1, [r0] + adds r0, r6, #0 + movs r1, #0x26 + add r2, sp, #0x10 + bl SetMonData + ldr r2, _080704C8 + adds r0, r6, #0 + movs r1, #2 + bl SetMonData + lsls r2, r5, #3 + subs r2, r2, r5 + lsls r2, r2, #2 + ldr r0, _080704CC + adds r2, r2, r0 + adds r0, r6, #0 + movs r1, #0x20 + bl SetMonData + adds r0, r6, #0 + movs r1, #0x24 + mov r2, r8 + bl SetMonData + add sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080704C8: .4byte 0x085C8C62 +_080704CC: .4byte 0x082F0D65 + thumb_func_end SetInitialEggData + + thumb_func_start GiveEggFromDaycare +GiveEggFromDaycare: @ 0x080704D0 + push {lr} + ldr r0, _080704E4 + ldr r0, [r0] + ldr r1, _080704E8 + adds r0, r0, r1 + bl _GiveEggFromDaycare + pop {r0} + bx r0 + .align 2, 0 +_080704E4: .4byte 0x03005AEC +_080704E8: .4byte 0x00003030 + thumb_func_end GiveEggFromDaycare + + thumb_func_start _DoEggActions_CheckHatch +_DoEggActions_CheckHatch: @ 0x080704EC + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r6, r0, #0 + movs r7, #0 + movs r5, #0 +_080704F6: + movs r0, #0x8c + adds r4, r5, #0 + muls r4, r0, r4 + adds r0, r6, r4 + movs r1, #5 + bl GetBoxMonData + cmp r0, #0 + beq _08070516 + adds r1, r6, #0 + adds r1, #0x88 + adds r1, r1, r4 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + adds r7, #1 +_08070516: + adds r5, #1 + cmp r5, #1 + bls _080704F6 + movs r1, #0x8c + lsls r1, r1, #1 + adds r0, r6, r1 + ldr r0, [r0] + cmp r0, #0 + bne _0807055C + cmp r7, #2 + bne _0807055C + subs r1, #4 + adds r0, r6, r1 + ldrb r0, [r0] + cmp r0, #0xff + bne _0807055C + adds r0, r6, #0 + bl GetDaycareCompatibilityScore + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + muls r0, r1, r0 + ldr r1, _080705B4 + bl __udivsi3 + cmp r4, r0 + bls _0807055C + bl TriggerPendingDaycareEgg +_0807055C: + movs r0, #0x8e + lsls r0, r0, #1 + adds r1, r6, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080705E8 + bl GetEggStepsToSubtract + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r5, #0 + ldr r0, _080705B8 + ldrb r0, [r0] + cmp r5, r0 + bhs _080705E8 + ldr r4, _080705BC +_08070584: + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + beq _080705DC + adds r0, r4, #0 + movs r1, #4 + bl GetMonData + cmp r0, #0 + bne _080705DC + adds r0, r4, #0 + movs r1, #0x20 + bl GetMonData + adds r1, r0, #0 + str r1, [sp] + cmp r0, #0 + beq _080705D0 + cmp r0, r6 + blo _080705C0 + subs r0, r0, r6 + b _080705C2 + .align 2, 0 +_080705B4: .4byte 0x0000FFFF +_080705B8: .4byte 0x0202418D +_080705BC: .4byte 0x02024190 +_080705C0: + subs r0, r1, #1 +_080705C2: + str r0, [sp] + adds r0, r4, #0 + movs r1, #0x20 + mov r2, sp + bl SetMonData + b _080705DC +_080705D0: + ldr r0, _080705D8 + strh r5, [r0] + movs r0, #1 + b _080705EA + .align 2, 0 +_080705D8: .4byte 0x02037280 +_080705DC: + adds r4, #0x64 + adds r5, #1 + ldr r0, _080705F4 + ldrb r0, [r0] + cmp r5, r0 + blo _08070584 +_080705E8: + movs r0, #0 +_080705EA: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080705F4: .4byte 0x0202418D + thumb_func_end _DoEggActions_CheckHatch + + thumb_func_start ShouldEggHatch +ShouldEggHatch: @ 0x080705F8 + push {lr} + ldr r0, _08070610 + ldr r0, [r0] + ldr r1, _08070614 + adds r0, r0, r1 + bl _DoEggActions_CheckHatch + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_08070610: .4byte 0x03005AEC +_08070614: .4byte 0x00003030 + thumb_func_end ShouldEggHatch + + thumb_func_start IsEggPending +IsEggPending: @ 0x08070618 + push {lr} + movs r1, #0x8c + lsls r1, r1, #1 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #0 + beq _08070628 + movs r0, #1 +_08070628: + pop {r1} + bx r1 + thumb_func_end IsEggPending + + thumb_func_start _GetDaycareMonNicknames +_GetDaycareMonNicknames: @ 0x0807062C + push {r4, lr} + sub sp, #0xc + adds r4, r0, #0 + movs r1, #0xb + bl GetBoxMonData + cmp r0, #0 + beq _08070656 + ldr r1, _08070674 + adds r0, r4, #0 + bl GetMonNick + adds r0, r4, #0 + movs r1, #7 + mov r2, sp + bl GetBoxMonData + ldr r0, _08070678 + mov r1, sp + bl StringCopy +_08070656: + adds r4, #0x8c + adds r0, r4, #0 + movs r1, #0xb + bl GetBoxMonData + cmp r0, #0 + beq _0807066C + ldr r1, _0807067C + adds r0, r4, #0 + bl GetMonNick +_0807066C: + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08070674: .4byte 0x02021C40 +_08070678: .4byte 0x02021C68 +_0807067C: .4byte 0x02021C54 + thumb_func_end _GetDaycareMonNicknames + + thumb_func_start GetSelectedMonNickAndSpecies +GetSelectedMonNickAndSpecies: @ 0x08070680 + push {r4, r5, lr} + bl GetCursorSelectionMonId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r5, #0x64 + muls r0, r5, r0 + ldr r4, _080706B4 + adds r0, r0, r4 + ldr r1, _080706B8 + bl GetMonNick + bl GetCursorSelectionMonId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #0xb + bl GetBoxMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080706B4: .4byte 0x02024190 +_080706B8: .4byte 0x02021C40 + thumb_func_end GetSelectedMonNickAndSpecies + + thumb_func_start GetDaycareMonNicknames +GetDaycareMonNicknames: @ 0x080706BC + push {lr} + ldr r0, _080706D0 + ldr r0, [r0] + ldr r1, _080706D4 + adds r0, r0, r1 + bl _GetDaycareMonNicknames + pop {r0} + bx r0 + .align 2, 0 +_080706D0: .4byte 0x03005AEC +_080706D4: .4byte 0x00003030 + thumb_func_end GetDaycareMonNicknames + + thumb_func_start GetDaycareState +GetDaycareState: @ 0x080706D8 + push {r4, lr} + ldr r4, _080706F0 + ldr r0, [r4] + ldr r1, _080706F4 + adds r0, r0, r1 + bl IsEggPending + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080706F8 + movs r0, #1 + b _0807071A + .align 2, 0 +_080706F0: .4byte 0x03005AEC +_080706F4: .4byte 0x00003030 +_080706F8: + ldr r0, [r4] + ldr r1, _08070710 + adds r0, r0, r1 + bl CountPokemonInDaycare + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _08070714 + movs r0, #0 + b _0807071A + .align 2, 0 +_08070710: .4byte 0x00003030 +_08070714: + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_0807071A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetDaycareState + + thumb_func_start GetDaycarePokemonCount +GetDaycarePokemonCount: @ 0x08070720 + push {lr} + ldr r0, _0807073C + ldr r0, [r0] + ldr r1, _08070740 + adds r0, r0, r1 + bl CountPokemonInDaycare + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _08070738 + movs r0, #0 +_08070738: + pop {r1} + bx r1 + .align 2, 0 +_0807073C: .4byte 0x03005AEC +_08070740: .4byte 0x00003030 + thumb_func_end GetDaycarePokemonCount + + thumb_func_start EggGroupsOverlap +EggGroupsOverlap: @ 0x08070744 + push {r4, r5, r6, lr} + adds r5, r1, #0 + movs r4, #0 + adds r1, r0, #0 +_0807074C: + movs r3, #0 + ldrh r0, [r1] + adds r2, r5, #0 +_08070752: + ldrh r6, [r2] + cmp r0, r6 + bne _0807075C + movs r0, #1 + b _0807076E +_0807075C: + adds r2, #2 + adds r3, #1 + cmp r3, #1 + ble _08070752 + adds r1, #2 + adds r4, #1 + cmp r4, #1 + ble _0807074C + movs r0, #0 +_0807076E: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end EggGroupsOverlap + + thumb_func_start GetDaycareCompatibilityScore +GetDaycareCompatibilityScore: @ 0x08070774 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x30 + str r0, [sp, #0x1c] + movs r7, #0 + mov r0, sp + adds r0, #8 + str r0, [sp, #0x20] + add r1, sp, #0xc + mov sb, r1 + mov r2, sp + adds r2, #0x14 + str r2, [sp, #0x24] + subs r0, #6 + ldr r1, _08070828 + mov sl, r1 + ldr r5, [sp, #0x20] + mov r8, r0 + mov r6, sp + str r2, [sp, #0x28] + mov r2, sb + str r2, [sp, #0x2c] +_080707A6: + movs r0, #0x8c + adds r4, r7, #0 + muls r4, r0, r4 + ldr r0, [sp, #0x1c] + adds r4, r0, r4 + adds r0, r4, #0 + movs r1, #0xb + bl GetBoxMonData + strh r0, [r5] + adds r0, r4, #0 + movs r1, #1 + bl GetBoxMonData + ldr r1, [sp, #0x2c] + stm r1!, {r0} + str r1, [sp, #0x2c] + adds r0, r4, #0 + movs r1, #0 + bl GetBoxMonData + adds r1, r0, #0 + ldrh r0, [r5] + bl GetGenderFromSpeciesAndPersonality + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, [sp, #0x28] + stm r2!, {r0} + str r2, [sp, #0x28] + ldrh r1, [r5] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + add r0, sl + ldrb r0, [r0, #0x14] + strh r0, [r6] + ldrh r1, [r5] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + add r0, sl + ldrb r0, [r0, #0x15] + mov r1, r8 + strh r0, [r1] + adds r5, #2 + movs r2, #4 + add r8, r2 + adds r6, #4 + adds r7, #1 + cmp r7, #1 + bls _080707A6 + mov r0, sp + ldrh r1, [r0] + cmp r1, #0xf + beq _08070824 + ldrh r0, [r0, #4] + cmp r0, #0xf + beq _08070824 + cmp r1, #0xd + bne _0807082C + cmp r0, #0xd + bne _08070830 +_08070824: + movs r0, #0 + b _08070884 + .align 2, 0 +_08070828: .4byte 0x082F0D54 +_0807082C: + cmp r0, #0xd + bne _0807083C +_08070830: + ldr r1, [sp, #0xc] + mov r2, sb + ldr r0, [r2, #4] + cmp r1, r0 + beq _0807087E + b _08070882 +_0807083C: + ldr r0, [sp, #0x14] + ldr r2, [sp, #0x24] + ldr r1, [r2, #4] + cmp r0, r1 + beq _08070824 + cmp r0, #0xff + beq _08070824 + cmp r1, #0xff + beq _08070824 + add r1, sp, #4 + mov r0, sp + bl EggGroupsOverlap + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08070824 + ldr r0, [sp, #0x20] + ldrh r1, [r0, #2] + ldrh r0, [r0] + cmp r0, r1 + bne _08070874 + ldr r1, [sp, #0xc] + mov r2, sb + ldr r0, [r2, #4] + cmp r1, r0 + beq _08070882 + movs r0, #0x46 + b _08070884 +_08070874: + ldr r1, [sp, #0xc] + mov r2, sb + ldr r0, [r2, #4] + cmp r1, r0 + bne _08070882 +_0807087E: + movs r0, #0x14 + b _08070884 +_08070882: + movs r0, #0x32 +_08070884: + add sp, #0x30 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end GetDaycareCompatibilityScore + + thumb_func_start GetDaycareCompatibilityScoreFromSave +GetDaycareCompatibilityScoreFromSave: @ 0x08070894 + push {lr} + ldr r0, _080708AC + ldr r0, [r0] + ldr r1, _080708B0 + adds r0, r0, r1 + bl GetDaycareCompatibilityScore + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_080708AC: .4byte 0x03005AEC +_080708B0: .4byte 0x00003030 + thumb_func_end GetDaycareCompatibilityScoreFromSave + + thumb_func_start SetDaycareCompatibilityString +SetDaycareCompatibilityString: @ 0x080708B4 + push {lr} + bl GetDaycareCompatibilityScoreFromSave + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r2, r0, #0 + movs r1, #0 + cmp r0, #0 + bne _080708C8 + movs r1, #3 +_080708C8: + cmp r0, #0x14 + bne _080708CE + movs r1, #2 +_080708CE: + cmp r0, #0x32 + bne _080708D4 + movs r1, #1 +_080708D4: + cmp r2, #0x46 + bne _080708DA + movs r1, #0 +_080708DA: + ldr r0, _080708EC + ldr r2, _080708F0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl StringCopy + pop {r0} + bx r0 + .align 2, 0 +_080708EC: .4byte 0x02021C7C +_080708F0: .4byte 0x082FC0E8 + thumb_func_end SetDaycareCompatibilityString + + thumb_func_start NameHasGenderSymbol +NameHasGenderSymbol: @ 0x080708F4 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + mov r2, sp + mov r1, sp + movs r0, #0 + strb r0, [r1, #1] + strb r0, [r2] + movs r3, #0 + ldrb r0, [r4] + cmp r0, #0xff + beq _08070938 +_08070910: + adds r1, r4, r3 + ldrb r0, [r1] + cmp r0, #0xb5 + bne _0807091E + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] +_0807091E: + ldrb r0, [r1] + cmp r0, #0xb6 + bne _0807092A + ldrb r0, [r2, #1] + adds r0, #1 + strb r0, [r2, #1] +_0807092A: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + adds r0, r4, r3 + ldrb r0, [r0] + cmp r0, #0xff + bne _08070910 +_08070938: + cmp r5, #0 + bne _0807094C + mov r0, sp + ldrb r0, [r0] + cmp r0, #0 + beq _0807094C + mov r0, sp + ldrb r0, [r0, #1] + cmp r0, #0 + beq _08070960 +_0807094C: + cmp r5, #0xfe + bne _08070964 + mov r0, sp + ldrb r0, [r0, #1] + cmp r0, #0 + beq _08070964 + mov r0, sp + ldrb r0, [r0] + cmp r0, #0 + bne _08070964 +_08070960: + movs r0, #1 + b _08070966 +_08070964: + movs r0, #0 +_08070966: + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end NameHasGenderSymbol + + thumb_func_start AppendGenderSymbol +AppendGenderSymbol: @ 0x08070970 + push {r4, lr} + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0 + bne _08070990 + movs r1, #0 + bl NameHasGenderSymbol + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080709AC + ldr r1, _0807098C + b _080709AE + .align 2, 0 +_0807098C: .4byte 0x08300A95 +_08070990: + cmp r1, #0xfe + bne _080709AC + adds r0, r4, #0 + movs r1, #0xfe + bl NameHasGenderSymbol + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080709AC + ldr r1, _080709A8 + b _080709AE + .align 2, 0 +_080709A8: .4byte 0x08300A97 +_080709AC: + ldr r1, _080709BC +_080709AE: + adds r0, r4, #0 + bl StringAppend + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080709BC: .4byte 0x08300A99 + thumb_func_end AppendGenderSymbol + + thumb_func_start AppendMonGenderSymbol +AppendMonGenderSymbol: @ 0x080709C0 + push {r4, lr} + adds r4, r0, #0 + adds r0, r1, #0 + bl GetBoxMonGender + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl AppendGenderSymbol + pop {r4} + pop {r1} + bx r1 + thumb_func_end AppendMonGenderSymbol + + thumb_func_start GetDaycareLevelMenuText +GetDaycareLevelMenuText: @ 0x080709DC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x28 + mov r8, r0 + adds r7, r1, #0 + movs r0, #0xff + strb r0, [r7] + movs r6, #0 + add r0, sp, #0x14 + mov sb, r0 +_080709F4: + movs r0, #0x8c + adds r4, r6, #0 + muls r4, r0, r4 + add r4, r8 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #2 + mov r1, sp + adds r5, r1, r0 + adds r0, r4, #0 + adds r1, r5, #0 + bl GetMonNick + adds r0, r5, #0 + adds r1, r4, #0 + bl AppendMonGenderSymbol + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #1 + bls _080709F4 + adds r0, r7, #0 + mov r1, sp + bl StringCopy + ldr r4, _08070A58 + adds r0, r7, #0 + adds r1, r4, #0 + bl StringAppend + adds r0, r7, #0 + mov r1, sb + bl StringAppend + adds r0, r7, #0 + adds r1, r4, #0 + bl StringAppend + ldr r1, _08070A5C + adds r0, r7, #0 + bl StringAppend + add sp, #0x28 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08070A58: .4byte 0x082FC0F8 +_08070A5C: .4byte 0x082FC0FA + thumb_func_end GetDaycareLevelMenuText + + thumb_func_start GetDaycareLevelMenuLevelText +GetDaycareLevelMenuLevelText: @ 0x08070A60 + push {r4, r5, r6, lr} + sub sp, #0x14 + adds r6, r0, #0 + adds r4, r1, #0 + movs r0, #0xff + strb r0, [r4] + movs r5, #0 +_08070A6E: + adds r0, r4, #0 + ldr r1, _08070ABC + bl StringAppend + movs r0, #0x8c + adds r2, r5, #0 + muls r2, r0, r2 + adds r0, r6, r2 + adds r1, r6, #0 + adds r1, #0x88 + adds r1, r1, r2 + ldr r1, [r1] + bl GetLevelAfterDaycareSteps + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r0, sp + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + adds r0, r4, #0 + mov r1, sp + bl StringAppend + adds r0, r4, #0 + ldr r1, _08070AC0 + bl StringAppend + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #1 + bls _08070A6E + add sp, #0x14 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08070ABC: .4byte 0x082FC0FE +_08070AC0: .4byte 0x082FC0F8 + thumb_func_end GetDaycareLevelMenuLevelText + + thumb_func_start DaycareAddTextPrinter +DaycareAddTextPrinter: @ 0x08070AC4 + push {r4, r5, r6, lr} + sub sp, #0x10 + str r1, [sp] + mov r1, sp + movs r5, #0 + strb r0, [r1, #4] + mov r0, sp + movs r6, #1 + movs r4, #1 + strb r4, [r0, #5] + strb r2, [r0, #6] + strb r3, [r0, #7] + strb r2, [r0, #8] + strb r3, [r0, #9] + mov r3, sp + ldrb r1, [r3, #0xc] + movs r2, #0x10 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r1 + strb r0, [r3, #0xc] + ldr r3, _08070B34 + ldrb r1, [r3] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3] + mov r0, sp + strb r5, [r0, #0xa] + strb r4, [r0, #0xb] + mov r3, sp + ldrb r1, [r3, #0xc] + movs r4, #0xf + adds r0, r4, #0 + ands r0, r1 + movs r1, #0x20 + orrs r0, r1 + strb r0, [r3, #0xc] + mov r1, sp + ldrb r0, [r1, #0xd] + ands r2, r0 + orrs r2, r6 + strb r2, [r1, #0xd] + ands r2, r4 + movs r0, #0x30 + orrs r2, r0 + strb r2, [r1, #0xd] + mov r0, sp + movs r1, #0xff + movs r2, #0 + bl AddTextPrinter + add sp, #0x10 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08070B34: .4byte 0x030030B4 + thumb_func_end DaycareAddTextPrinter + + thumb_func_start DaycarePrintMonNick +DaycarePrintMonNick: @ 0x08070B38 + push {r4, r5, r6, lr} + sub sp, #0x14 + adds r5, r0, #0 + adds r4, r1, #0 + adds r6, r3, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0x8c + muls r0, r2, r0 + adds r5, r5, r0 + adds r0, r5, #0 + mov r1, sp + bl GetMonNick + mov r0, sp + adds r1, r5, #0 + bl AppendMonGenderSymbol + adds r6, #2 + adds r0, r4, #0 + mov r1, sp + movs r2, #0xc + adds r3, r6, #0 + bl DaycareAddTextPrinter + add sp, #0x14 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end DaycarePrintMonNick + + thumb_func_start DaycarePrintMonLvl +DaycarePrintMonLvl: @ 0x08070B74 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0x14 + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + mov r8, r3 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r1, _08070BD4 + mov r0, sp + bl strcpy + movs r0, #0x8c + adds r1, r6, #0 + muls r1, r0, r1 + adds r0, r4, r1 + adds r4, #0x88 + adds r4, r4, r1 + ldr r1, [r4] + bl GetLevelAfterDaycareSteps + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + add r4, sp, #0xc + adds r0, r4, #0 + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + mov r0, sp + adds r1, r4, #0 + bl StringAppend + adds r0, r5, #0 + mov r1, sp + movs r2, #0x59 + mov r3, r8 + bl DaycareAddTextPrinter + add sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08070BD4: .4byte 0x082FC0FE + thumb_func_end DaycarePrintMonLvl + + thumb_func_start DaycarePrintMonInfo +DaycarePrintMonInfo: @ 0x08070BD8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r1, #0 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + cmp r6, #1 + bhi _08070C10 + ldr r0, _08070C1C + mov r8, r0 + ldr r0, [r0] + ldr r4, _08070C20 + adds r0, r0, r4 + adds r1, r7, #0 + adds r2, r6, #0 + adds r3, r5, #0 + bl DaycarePrintMonNick + mov r1, r8 + ldr r0, [r1] + adds r0, r0, r4 + adds r1, r7, #0 + adds r2, r6, #0 + adds r3, r5, #0 + bl DaycarePrintMonLvl +_08070C10: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08070C1C: .4byte 0x03005AEC +_08070C20: .4byte 0x00003030 + thumb_func_end DaycarePrintMonInfo + + thumb_func_start Task_HandleDaycareLevelMenuInput +Task_HandleDaycareLevelMenuInput: @ 0x08070C24 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + ldr r1, _08070C54 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrb r0, [r4, #8] + bl ListMenu_ProcessInput + adds r1, r0, #0 + ldr r0, _08070C58 + ldrh r2, [r0, #0x2e] + movs r0, #1 + ands r0, r2 + cmp r0, #0 + beq _08070CA4 + cmp r1, #1 + bls _08070C5C + cmp r1, #5 + beq _08070C68 + b _08070C6E + .align 2, 0 +_08070C54: .4byte 0x03005B60 +_08070C58: .4byte 0x03002360 +_08070C5C: + ldr r0, _08070C64 + strh r1, [r0] + b _08070C6E + .align 2, 0 +_08070C64: .4byte 0x02037290 +_08070C68: + ldr r1, _08070C9C + movs r0, #2 + strh r0, [r1] +_08070C6E: + ldr r0, _08070CA0 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + adds r4, r4, r0 + ldrb r0, [r4, #8] + movs r1, #0 + movs r2, #0 + bl DestroyListMenuTask + ldrb r0, [r4, #0xa] + movs r1, #1 + bl DrawStdWindowFrame + ldrb r0, [r4, #0xa] + bl RemoveWindow + adds r0, r5, #0 + bl DestroyTask + bl EnableBothScriptContexts + b _08070CD4 + .align 2, 0 +_08070C9C: .4byte 0x02037290 +_08070CA0: .4byte 0x03005B60 +_08070CA4: + movs r1, #2 + adds r0, r1, #0 + ands r0, r2 + cmp r0, #0 + beq _08070CD4 + ldr r0, _08070CDC + strh r1, [r0] + ldrb r0, [r4, #8] + movs r1, #0 + movs r2, #0 + bl DestroyListMenuTask + ldrb r0, [r4, #0xa] + movs r1, #1 + bl DrawStdWindowFrame + ldrb r0, [r4, #0xa] + bl RemoveWindow + adds r0, r5, #0 + bl DestroyTask + bl EnableBothScriptContexts +_08070CD4: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08070CDC: .4byte 0x02037290 + thumb_func_end Task_HandleDaycareLevelMenuInput + + thumb_func_start ShowDaycareLevelMenu +ShowDaycareLevelMenu: @ 0x08070CE0 + push {r4, r5, lr} + sub sp, #0x18 + ldr r0, _08070D40 + bl AddWindow + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #0 + bl ClearStdWindowAndFrame + mov r1, sp + ldr r0, _08070D44 + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} + mov r0, sp + strb r4, [r0, #0x10] + movs r1, #0 + movs r2, #0 + bl ListMenuInit + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + adds r0, r4, #0 + movs r1, #3 + bl CopyWindowToVram + ldr r0, _08070D48 + movs r1, #3 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08070D4C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r5, [r1, #8] + strh r4, [r1, #0xa] + add sp, #0x18 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08070D40: .4byte 0x082FC04C +_08070D44: .4byte 0x082FC06C +_08070D48: .4byte 0x08070C25 +_08070D4C: .4byte 0x03005B60 + thumb_func_end ShowDaycareLevelMenu + + thumb_func_start ChooseSendDaycareMon +ChooseSendDaycareMon: @ 0x08070D50 + push {lr} + bl sub_081B8FC8 + ldr r1, _08070D60 + ldr r0, _08070D64 + str r0, [r1, #8] + pop {r0} + bx r0 + .align 2, 0 +_08070D60: .4byte 0x03002360 +_08070D64: .4byte 0x08085A31 + thumb_func_end ChooseSendDaycareMon + diff --git a/asm/decompress.s b/asm/decompress.s new file mode 100644 index 0000000..f9bb5b5 --- /dev/null +++ b/asm/decompress.s @@ -0,0 +1,1027 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start LZDecompressVram +LZDecompressVram: @ 0x08034370 + push {lr} + bl LZ77UnCompWram + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LZDecompressVram + + thumb_func_start LZDecompressWram +LZDecompressWram: @ 0x0803437C + push {lr} + bl LZ77UnCompVram + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LZDecompressWram + + thumb_func_start LoadCompressedSpriteSheet +LoadCompressedSpriteSheet: @ 0x08034388 + push {r4, r5, lr} + sub sp, #8 + adds r4, r0, #0 + ldr r0, [r4] + ldr r5, _080343B8 + adds r1, r5, #0 + bl LZ77UnCompWram + str r5, [sp] + ldrh r1, [r4, #6] + lsls r1, r1, #0x10 + ldrh r0, [r4, #4] + orrs r0, r1 + str r0, [sp, #4] + mov r0, sp + bl LoadSpriteSheet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + add sp, #8 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080343B8: .4byte 0x0201C000 + thumb_func_end LoadCompressedSpriteSheet + + thumb_func_start LoadCompressedSpriteSheetOverrideBuffer +LoadCompressedSpriteSheetOverrideBuffer: @ 0x080343BC + push {r4, r5, lr} + sub sp, #8 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r0, [r4] + bl LZ77UnCompWram + str r5, [sp] + ldrh r1, [r4, #6] + lsls r1, r1, #0x10 + ldrh r0, [r4, #4] + orrs r0, r1 + str r0, [sp, #4] + mov r0, sp + bl LoadSpriteSheet + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end LoadCompressedSpriteSheetOverrideBuffer + + thumb_func_start LoadCompressedSpritePalette +LoadCompressedSpritePalette: @ 0x080343E4 + push {r4, r5, lr} + sub sp, #8 + adds r5, r0, #0 + ldr r0, [r5] + ldr r4, _08034410 + adds r1, r4, #0 + bl LZ77UnCompWram + str r4, [sp] + ldrh r2, [r5, #4] + ldr r1, _08034414 + ldr r0, [sp, #4] + ands r0, r1 + orrs r0, r2 + str r0, [sp, #4] + mov r0, sp + bl LoadSpritePalette + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08034410: .4byte 0x0201C000 +_08034414: .4byte 0xFFFF0000 + thumb_func_end LoadCompressedSpritePalette + + thumb_func_start LoadCompressedSpritePaletteOverrideBuffer +LoadCompressedSpritePaletteOverrideBuffer: @ 0x08034418 + push {r4, r5, lr} + sub sp, #8 + adds r5, r0, #0 + adds r4, r1, #0 + ldr r0, [r5] + bl LZ77UnCompWram + str r4, [sp] + ldrh r2, [r5, #4] + ldr r1, _08034444 + ldr r0, [sp, #4] + ands r0, r1 + orrs r0, r2 + str r0, [sp, #4] + mov r0, sp + bl LoadSpritePalette + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08034444: .4byte 0xFFFF0000 + thumb_func_end LoadCompressedSpritePaletteOverrideBuffer + + thumb_func_start DecompressPicFromTable +DecompressPicFromTable: @ 0x08034448 + push {r4, r5, lr} + adds r3, r0, #0 + adds r4, r1, #0 + adds r5, r2, #0 + movs r0, #0xce + lsls r0, r0, #1 + cmp r5, r0 + ble _08034468 + ldr r0, _08034464 + ldr r0, [r0] + bl LZ77UnCompWram + b _08034470 + .align 2, 0 +_08034464: .4byte 0x082DDA1C +_08034468: + ldr r0, [r3] + adds r1, r4, #0 + bl LZ77UnCompWram +_08034470: + adds r0, r4, #0 + adds r1, r5, #0 + bl DuplicateDeoxysTiles + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end DecompressPicFromTable + + thumb_func_start HandleLoadSpecialPokePic +HandleLoadSpecialPokePic: @ 0x08034480 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + lsls r0, r2, #3 + ldr r1, _080344A8 + adds r0, r0, r1 + movs r1, #0 + cmp r4, r0 + bne _08034496 + movs r1, #1 +_08034496: + str r1, [sp] + adds r0, r4, #0 + adds r1, r5, #0 + bl LoadSpecialPokePic_2 + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080344A8: .4byte 0x082DDA1C + thumb_func_end HandleLoadSpecialPokePic + + thumb_func_start LoadSpecialPokePic +LoadSpecialPokePic: @ 0x080344AC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r4, r1, #0 + adds r7, r2, #0 + adds r5, r3, #0 + ldr r0, [sp, #0x18] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + cmp r7, #0xc9 + bne _08034528 + movs r0, #0xc0 + lsls r0, r0, #0x12 + ands r0, r5 + lsrs r0, r0, #0x12 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r5 + lsrs r1, r1, #0xc + orrs r0, r1 + movs r1, #0xc0 + lsls r1, r1, #2 + ands r1, r5 + lsrs r1, r1, #6 + orrs r0, r1 + movs r1, #3 + ands r1, r5 + orrs r0, r1 + movs r1, #0x1c + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + bne _080344FA + movs r1, #0xc9 + b _08034504 +_080344FA: + movs r2, #0xce + lsls r2, r2, #1 + adds r0, r1, r2 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 +_08034504: + mov r0, r8 + cmp r0, #0 + bne _08034518 + ldr r0, _08034514 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, [r1] + b _08034534 + .align 2, 0 +_08034514: .4byte 0x082D6148 +_08034518: + ldr r0, _08034524 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, [r1] + b _08034534 + .align 2, 0 +_08034524: .4byte 0x082DDA1C +_08034528: + movs r0, #0xce + lsls r0, r0, #1 + cmp r7, r0 + ble _08034540 + ldr r0, _0803453C + ldr r0, [r0] +_08034534: + adds r1, r4, #0 + bl LZ77UnCompWram + b _08034548 + .align 2, 0 +_0803453C: .4byte 0x082DDA1C +_08034540: + ldr r0, [r6] + adds r1, r4, #0 + bl LZ77UnCompWram +_08034548: + adds r0, r4, #0 + adds r1, r7, #0 + bl DuplicateDeoxysTiles + lsls r0, r7, #0x10 + lsrs r0, r0, #0x10 + adds r1, r5, #0 + adds r2, r4, #0 + mov r3, r8 + bl DrawSpindaSpots + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end LoadSpecialPokePic + + thumb_func_start Unused_LZDecompressWramIndirect +Unused_LZDecompressWramIndirect: @ 0x08034568 + push {lr} + ldr r0, [r0] + bl LZ77UnCompWram + pop {r0} + bx r0 + thumb_func_end Unused_LZDecompressWramIndirect + + thumb_func_start sub_08034574 +sub_08034574: @ 0x08034574 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x24 + mov sb, r0 + str r1, [sp] + str r2, [sp, #4] + adds r5, r3, #0 + movs r0, #1 + mov r1, sb + ands r0, r1 + cmp r0, #0 + bne _08034594 + b _0803472C +_08034594: + asrs r0, r1, #1 + adds r0, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #8] + movs r0, #0 + ldr r2, [sp] + cmp r0, r2 + blt _080345A8 + b _080347BC +_080345A8: + movs r4, #8 + subs r1, r4, r1 + str r1, [sp, #0x10] +_080345AE: + movs r7, #0 + adds r0, #1 + str r0, [sp, #0x14] + ldr r0, [sp, #0x10] + cmp r7, r0 + bge _0803462A + ldr r1, [sp, #8] + lsls r1, r1, #8 + str r1, [sp, #0x18] + movs r2, #0 + mov sl, r2 + mov r0, sb + movs r4, #8 + subs r0, r4, r0 + str r0, [sp, #0xc] +_080345CC: + movs r3, #0 + asrs r0, r7, #1 + adds r1, r7, #0 + movs r2, #1 + ands r1, r2 + str r1, [sp, #0x20] + lsls r0, r0, #8 + mov r8, r0 + mov ip, r5 +_080345DE: + lsls r1, r3, #5 + ldr r4, [sp, #0x18] + adds r0, r5, r4 + adds r0, r0, r1 + mov r1, r8 + adds r2, r0, r1 + mov r1, ip + add r1, r8 + movs r6, #0xf +_080345F0: + ldr r4, [sp, #0x20] + cmp r4, #0 + bne _08034600 + strb r4, [r1] + add r4, sp, #0x20 + ldrb r4, [r4] + strb r4, [r2, #0x10] + b _0803460E +_08034600: + mov r0, sl + strb r0, [r1, #0x10] + movs r4, #0x80 + lsls r4, r4, #1 + adds r4, r2, r4 + str r4, [sp, #0x1c] + strb r0, [r4] +_0803460E: + adds r2, #1 + adds r1, #1 + subs r6, #1 + cmp r6, #0 + bge _080345F0 + movs r0, #0x20 + add ip, r0 + adds r3, #1 + cmp r3, #7 + ble _080345DE + adds r7, #1 + ldr r1, [sp, #0xc] + cmp r7, r1 + blt _080345CC +_0803462A: + movs r7, #0 + movs r2, #0 +_0803462E: + movs r6, #0 + adds r4, r7, #1 + mov r8, r4 + lsls r4, r7, #5 +_08034636: + adds r0, r6, #1 + mov sl, r0 + lsls r1, r6, #8 + adds r0, r1, #0 + adds r0, #0xc0 + adds r0, r5, r0 + adds r0, r0, r4 + adds r1, r5, r1 + adds r1, r1, r4 + movs r3, #0x1f +_0803464A: + strb r2, [r1] + strb r2, [r0] + adds r0, #1 + adds r1, #1 + subs r3, #1 + cmp r3, #0 + bge _0803464A + mov r6, sl + cmp r6, #7 + ble _08034636 + mov r7, r8 + cmp r7, #1 + ble _0803462E + mov r1, sb + cmp r1, #5 + bne _08034670 + movs r2, #0x90 + lsls r2, r2, #1 + adds r5, r5, r2 +_08034670: + movs r7, #0 + cmp r7, sb + bge _08034706 +_08034676: + movs r3, #0 + adds r7, #1 + mov r8, r7 + cmp r3, sb + bge _080346E6 +_08034680: + adds r3, #1 + mov sl, r3 + ldr r4, [sp, #4] + adds r4, #0x20 + adds r7, r5, #0 + adds r7, #0x20 + movs r0, #0x12 + adds r0, r0, r5 + mov ip, r0 + ldr r2, [sp, #4] + adds r3, r5, #0 + movs r6, #3 +_08034698: + ldrb r0, [r2] + mov r1, ip + strb r0, [r1] + ldrb r0, [r2, #1] + strb r0, [r1, #1] + ldrb r0, [r2, #2] + strb r0, [r1, #0x1e] + ldrb r0, [r2, #3] + strb r0, [r1, #0x1f] + movs r0, #0x81 + lsls r0, r0, #1 + adds r1, r3, r0 + ldrb r0, [r2, #0x10] + strb r0, [r1] + ldr r0, _080346F0 + adds r1, r3, r0 + ldrb r0, [r2, #0x11] + strb r0, [r1] + movs r0, #0x90 + lsls r0, r0, #1 + adds r1, r3, r0 + ldrb r0, [r2, #0x12] + strb r0, [r1] + ldr r0, _080346F4 + adds r1, r3, r0 + ldrb r0, [r2, #0x13] + strb r0, [r1] + movs r1, #4 + add ip, r1 + adds r2, #4 + adds r3, #4 + subs r6, #1 + cmp r6, #0 + bge _08034698 + str r4, [sp, #4] + adds r5, r7, #0 + mov r3, sl + cmp r3, sb + blt _08034680 +_080346E6: + mov r2, sb + cmp r2, #7 + bne _080346F8 + adds r5, #0x20 + b _08034700 + .align 2, 0 +_080346F0: .4byte 0x00000103 +_080346F4: .4byte 0x00000121 +_080346F8: + mov r4, sb + cmp r4, #5 + bne _08034700 + adds r5, #0x60 +_08034700: + mov r7, r8 + cmp r7, sb + blt _08034676 +_08034706: + mov r0, sb + cmp r0, #7 + bne _08034714 + movs r1, #0x80 + lsls r1, r1, #1 + adds r5, r5, r1 + b _08034720 +_08034714: + mov r2, sb + cmp r2, #5 + bne _08034720 + movs r4, #0xf0 + lsls r4, r4, #1 + adds r5, r5, r4 +_08034720: + ldr r0, [sp, #0x14] + ldr r1, [sp] + cmp r0, r1 + bge _0803472A + b _080345AE +_0803472A: + b _080347BC +_0803472C: + movs r6, #0 + ldr r2, [sp] + cmp r6, r2 + bge _080347BC +_08034734: + adds r6, #1 + mov sl, r6 + mov r4, sb + cmp r4, #6 + bne _0803474C + movs r0, #0 + movs r3, #0xff +_08034742: + strb r0, [r5] + adds r5, #1 + subs r3, #1 + cmp r3, #0 + bge _08034742 +_0803474C: + movs r7, #0 + cmp r7, sb + bge _080347A0 +_08034752: + adds r7, #1 + mov r8, r7 + mov r1, sb + lsls r0, r1, #5 + cmp r1, #6 + bne _0803476C + movs r1, #0 + movs r3, #0x1f +_08034762: + strb r1, [r5] + adds r5, #1 + subs r3, #1 + cmp r3, #0 + bge _08034762 +_0803476C: + adds r1, r0, #0 + cmp r1, #0 + ble _08034786 + adds r3, r1, #0 +_08034774: + ldr r2, [sp, #4] + ldrb r0, [r2] + strb r0, [r5] + adds r2, #1 + str r2, [sp, #4] + adds r5, #1 + subs r3, #1 + cmp r3, #0 + bne _08034774 +_08034786: + mov r4, sb + cmp r4, #6 + bne _0803479A + movs r0, #0 + movs r3, #0x1f +_08034790: + strb r0, [r5] + adds r5, #1 + subs r3, #1 + cmp r3, #0 + bge _08034790 +_0803479A: + mov r7, r8 + cmp r7, sb + blt _08034752 +_080347A0: + mov r0, sb + cmp r0, #6 + bne _080347B4 + movs r0, #0 + movs r3, #0xff +_080347AA: + strb r0, [r5] + adds r5, #1 + subs r3, #1 + cmp r3, #0 + bge _080347AA +_080347B4: + mov r6, sl + ldr r1, [sp] + cmp r6, r1 + blt _08034734 +_080347BC: + add sp, #0x24 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08034574 + + thumb_func_start GetDecompressedDataSize +GetDecompressedDataSize: @ 0x080347CC + adds r2, r0, #0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x10 + ldrb r1, [r2, #2] + lsls r1, r1, #8 + orrs r0, r1 + ldrb r1, [r2, #1] + orrs r0, r1 + bx lr + .align 2, 0 + thumb_func_end GetDecompressedDataSize + + thumb_func_start LoadCompressedSpriteSheetUsingHeap +LoadCompressedSpriteSheetUsingHeap: @ 0x080347E0 + push {r4, r5, lr} + sub sp, #8 + adds r4, r0, #0 + ldr r0, [r4] + ldr r0, [r0] + lsrs r0, r0, #8 + bl AllocZeroed + adds r5, r0, #0 + ldr r0, [r4] + adds r1, r5, #0 + bl LZ77UnCompWram + str r5, [sp] + ldrh r1, [r4, #6] + lsls r1, r1, #0x10 + ldrh r0, [r4, #4] + orrs r0, r1 + str r0, [sp, #4] + mov r0, sp + bl LoadSpriteSheet + adds r0, r5, #0 + bl Free + movs r0, #0 + add sp, #8 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end LoadCompressedSpriteSheetUsingHeap + + thumb_func_start LoadCompressedSpritePaletteUsingHeap +LoadCompressedSpritePaletteUsingHeap: @ 0x0803481C + push {r4, r5, lr} + sub sp, #8 + adds r4, r0, #0 + ldr r0, [r4] + ldr r0, [r0] + lsrs r0, r0, #8 + bl AllocZeroed + adds r5, r0, #0 + ldr r0, [r4] + adds r1, r5, #0 + bl LZ77UnCompWram + str r5, [sp] + ldrh r2, [r4, #4] + ldr r1, _0803485C + ldr r0, [sp, #4] + ands r0, r1 + orrs r0, r2 + str r0, [sp, #4] + mov r0, sp + bl LoadSpritePalette + adds r0, r5, #0 + bl Free + movs r0, #0 + add sp, #8 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0803485C: .4byte 0xFFFF0000 + thumb_func_end LoadCompressedSpritePaletteUsingHeap + + thumb_func_start DecompressPicFromTable_2 +DecompressPicFromTable_2: @ 0x08034860 + push {r4, r5, lr} + adds r3, r0, #0 + adds r4, r1, #0 + adds r5, r2, #0 + movs r0, #0xce + lsls r0, r0, #1 + cmp r5, r0 + ble _08034880 + ldr r0, _0803487C + ldr r0, [r0] + bl LZ77UnCompWram + b _08034888 + .align 2, 0 +_0803487C: .4byte 0x082DDA1C +_08034880: + ldr r0, [r3] + adds r1, r4, #0 + bl LZ77UnCompWram +_08034888: + adds r0, r4, #0 + adds r1, r5, #0 + bl DuplicateDeoxysTiles + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end DecompressPicFromTable_2 + + thumb_func_start LoadSpecialPokePic_2 +LoadSpecialPokePic_2: @ 0x08034898 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r4, r1, #0 + adds r7, r2, #0 + adds r5, r3, #0 + ldr r0, [sp, #0x18] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + cmp r7, #0xc9 + bne _08034914 + movs r0, #0xc0 + lsls r0, r0, #0x12 + ands r0, r5 + lsrs r0, r0, #0x12 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r5 + lsrs r1, r1, #0xc + orrs r0, r1 + movs r1, #0xc0 + lsls r1, r1, #2 + ands r1, r5 + lsrs r1, r1, #6 + orrs r0, r1 + movs r1, #3 + ands r1, r5 + orrs r0, r1 + movs r1, #0x1c + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + bne _080348E6 + movs r1, #0xc9 + b _080348F0 +_080348E6: + movs r2, #0xce + lsls r2, r2, #1 + adds r0, r1, r2 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 +_080348F0: + mov r0, r8 + cmp r0, #0 + bne _08034904 + ldr r0, _08034900 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, [r1] + b _08034920 + .align 2, 0 +_08034900: .4byte 0x082D6148 +_08034904: + ldr r0, _08034910 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, [r1] + b _08034920 + .align 2, 0 +_08034910: .4byte 0x082DDA1C +_08034914: + movs r0, #0xce + lsls r0, r0, #1 + cmp r7, r0 + ble _0803492C + ldr r0, _08034928 + ldr r0, [r0] +_08034920: + adds r1, r4, #0 + bl LZ77UnCompWram + b _08034934 + .align 2, 0 +_08034928: .4byte 0x082DDA1C +_0803492C: + ldr r0, [r6] + adds r1, r4, #0 + bl LZ77UnCompWram +_08034934: + adds r0, r4, #0 + adds r1, r7, #0 + bl DuplicateDeoxysTiles + lsls r0, r7, #0x10 + lsrs r0, r0, #0x10 + adds r1, r5, #0 + adds r2, r4, #0 + mov r3, r8 + bl DrawSpindaSpots + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end LoadSpecialPokePic_2 + + thumb_func_start HandleLoadSpecialPokePic_2 +HandleLoadSpecialPokePic_2: @ 0x08034954 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + lsls r0, r2, #3 + ldr r1, _0803497C + adds r0, r0, r1 + movs r1, #0 + cmp r4, r0 + bne _0803496A + movs r1, #1 +_0803496A: + str r1, [sp] + adds r0, r4, #0 + adds r1, r5, #0 + bl LoadSpecialPokePic_2 + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0803497C: .4byte 0x082DDA1C + thumb_func_end HandleLoadSpecialPokePic_2 + + thumb_func_start DecompressPicFromTable_DontHandleDeoxys +DecompressPicFromTable_DontHandleDeoxys: @ 0x08034980 + push {lr} + adds r3, r0, #0 + movs r0, #0xce + lsls r0, r0, #1 + cmp r2, r0 + ble _0803499C + ldr r0, _08034998 + ldr r0, [r0] + bl LZ77UnCompWram + b _080349A2 + .align 2, 0 +_08034998: .4byte 0x082DDA1C +_0803499C: + ldr r0, [r3] + bl LZ77UnCompWram +_080349A2: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end DecompressPicFromTable_DontHandleDeoxys + + thumb_func_start HandleLoadSpecialPokePic_DontHandleDeoxys +HandleLoadSpecialPokePic_DontHandleDeoxys: @ 0x080349A8 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + lsls r0, r2, #3 + ldr r1, _080349D0 + adds r0, r0, r1 + movs r1, #0 + cmp r4, r0 + bne _080349BE + movs r1, #1 +_080349BE: + str r1, [sp] + adds r0, r4, #0 + adds r1, r5, #0 + bl LoadSpecialPokePic_DontHandleDeoxys + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080349D0: .4byte 0x082DDA1C + thumb_func_end HandleLoadSpecialPokePic_DontHandleDeoxys + + thumb_func_start LoadSpecialPokePic_DontHandleDeoxys +LoadSpecialPokePic_DontHandleDeoxys: @ 0x080349D4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r5, r1, #0 + adds r7, r2, #0 + adds r4, r3, #0 + ldr r0, [sp, #0x18] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + cmp r7, #0xc9 + bne _08034A50 + movs r0, #0xc0 + lsls r0, r0, #0x12 + ands r0, r4 + lsrs r0, r0, #0x12 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r4 + lsrs r1, r1, #0xc + orrs r0, r1 + movs r1, #0xc0 + lsls r1, r1, #2 + ands r1, r4 + lsrs r1, r1, #6 + orrs r0, r1 + movs r1, #3 + ands r1, r4 + orrs r0, r1 + movs r1, #0x1c + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + bne _08034A22 + movs r1, #0xc9 + b _08034A2C +_08034A22: + movs r2, #0xce + lsls r2, r2, #1 + adds r0, r1, r2 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 +_08034A2C: + mov r0, r8 + cmp r0, #0 + bne _08034A40 + ldr r0, _08034A3C + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, [r1] + b _08034A5C + .align 2, 0 +_08034A3C: .4byte 0x082D6148 +_08034A40: + ldr r0, _08034A4C + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, [r1] + b _08034A5C + .align 2, 0 +_08034A4C: .4byte 0x082DDA1C +_08034A50: + movs r0, #0xce + lsls r0, r0, #1 + cmp r7, r0 + ble _08034A68 + ldr r0, _08034A64 + ldr r0, [r0] +_08034A5C: + adds r1, r5, #0 + bl LZ77UnCompWram + b _08034A70 + .align 2, 0 +_08034A64: .4byte 0x082DDA1C +_08034A68: + ldr r0, [r6] + adds r1, r5, #0 + bl LZ77UnCompWram +_08034A70: + lsls r0, r7, #0x10 + lsrs r0, r0, #0x10 + adds r1, r4, #0 + adds r2, r5, #0 + mov r3, r8 + bl DrawSpindaSpots + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end LoadSpecialPokePic_DontHandleDeoxys + + thumb_func_start DuplicateDeoxysTiles +DuplicateDeoxysTiles: @ 0x08034A88 + push {lr} + adds r3, r0, #0 + movs r0, #0xcd + lsls r0, r0, #1 + cmp r1, r0 + bne _08034AA2 + movs r1, #0x80 + lsls r1, r1, #4 + adds r0, r3, r1 + ldr r2, _08034AA8 + adds r1, r3, #0 + bl CpuSet +_08034AA2: + pop {r0} + bx r0 + .align 2, 0 +_08034AA8: .4byte 0x04000200 + thumb_func_end DuplicateDeoxysTiles + diff --git a/asm/decoration.s b/asm/decoration.s new file mode 100644 index 0000000..6f0a074 --- /dev/null +++ b/asm/decoration.s @@ -0,0 +1,7691 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start InitDecorationContextItems +InitDecorationContextItems: @ 0x08126950 + push {lr} + ldr r3, _08126998 + ldrb r0, [r3] + cmp r0, #7 + bhi _08126966 + ldr r2, _0812699C + ldr r1, _081269A0 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r2] +_08126966: + ldr r2, _081269A4 + ldrb r0, [r2, #9] + cmp r0, #0 + bne _0812697E + ldr r0, _081269A8 + ldr r0, [r0] + ldr r3, _081269AC + adds r1, r0, r3 + str r1, [r2] + ldr r1, _081269B0 + adds r0, r0, r1 + str r0, [r2, #4] +_0812697E: + ldrb r0, [r2, #9] + cmp r0, #1 + bne _08126994 + ldr r0, _081269A8 + ldr r0, [r0] + ldr r3, _081269B4 + adds r1, r0, r3 + str r1, [r2] + ldr r1, _081269B8 + adds r0, r0, r1 + str r0, [r2, #4] +_08126994: + pop {r0} + bx r0 + .align 2, 0 +_08126998: .4byte 0x02039E3F +_0812699C: .4byte 0x02039E18 +_081269A0: .4byte 0x0203B90C +_081269A4: .4byte 0x02039E48 +_081269A8: .4byte 0x03005AEC +_081269AC: .4byte 0x00001AAE +_081269B0: .4byte 0x00001ABE +_081269B4: .4byte 0x0000271C +_081269B8: .4byte 0x00002728 + thumb_func_end InitDecorationContextItems + + thumb_func_start sub_081269BC +sub_081269BC: @ 0x081269BC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _081269F0 + adds r4, r0, r4 + lsls r0, r0, #3 + ldr r1, _081269F4 + adds r0, r0, r1 + bl AddWindow + strb r0, [r4] + ldrb r0, [r4] + movs r2, #0x85 + lsls r2, r2, #2 + movs r1, #0 + movs r3, #0xe + bl DrawStdFrameWithCustomTileAndPalette + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + ldrb r0, [r4] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081269F0: .4byte 0x02039E54 +_081269F4: .4byte 0x08581A74 + thumb_func_end sub_081269BC + + thumb_func_start RemoveDecorationWindow +RemoveDecorationWindow: @ 0x081269F8 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _08126A24 + adds r4, r4, r0 + ldrb r0, [r4] + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + ldrb r0, [r4] + bl ClearWindowTilemap + ldrb r0, [r4] + bl RemoveWindow + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08126A24: .4byte 0x02039E54 + thumb_func_end RemoveDecorationWindow + + thumb_func_start AddDecorationActionsWindow +AddDecorationActionsWindow: @ 0x08126A28 + push {r4, r5, r6, lr} + sub sp, #0xc + movs r0, #0 + bl sub_081269BC + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + movs r1, #0 + bl GetFontAttribute + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r6, #0x10 + str r6, [sp] + movs r5, #4 + str r5, [sp, #4] + ldr r0, _08126A7C + str r0, [sp, #8] + adds r0, r4, #0 + movs r1, #1 + movs r3, #2 + bl PrintTextArray + str r6, [sp] + str r5, [sp, #4] + ldr r0, _08126A80 + ldrb r0, [r0] + str r0, [sp, #8] + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl sub_081984B0 + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08126A7C: .4byte 0x08581A2C +_08126A80: .4byte 0x02039E1C + thumb_func_end AddDecorationActionsWindow + + thumb_func_start InitDecorationActionsWindow +InitDecorationActionsWindow: @ 0x08126A84 + push {lr} + ldr r1, _08126A9C + movs r0, #0 + strb r0, [r1] + bl ScriptContext2_Enable + bl AddDecorationActionsWindow + bl PrintCurMainMenuDescription + pop {r0} + bx r0 + .align 2, 0 +_08126A9C: .4byte 0x02039E1C + thumb_func_end InitDecorationActionsWindow + + thumb_func_start DoSecretBaseDecorationMenu +DoSecretBaseDecorationMenu: @ 0x08126AA0 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl InitDecorationActionsWindow + ldr r2, _08126ADC + ldr r0, _08126AE0 + ldr r0, [r0] + ldr r3, _08126AE4 + adds r1, r0, r3 + str r1, [r2] + ldr r1, _08126AE8 + adds r0, r0, r1 + str r0, [r2, #4] + movs r1, #0 + movs r0, #0x10 + strb r0, [r2, #8] + strb r1, [r2, #9] + ldr r1, _08126AEC + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08126AF0 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08126ADC: .4byte 0x02039E48 +_08126AE0: .4byte 0x03005AEC +_08126AE4: .4byte 0x00001AAE +_08126AE8: .4byte 0x00001ABE +_08126AEC: .4byte 0x03005B60 +_08126AF0: .4byte 0x08126B49 + thumb_func_end DoSecretBaseDecorationMenu + + thumb_func_start DoPlayerRoomDecorationMenu +DoPlayerRoomDecorationMenu: @ 0x08126AF4 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl InitDecorationActionsWindow + ldr r2, _08126B30 + ldr r0, _08126B34 + ldr r0, [r0] + ldr r3, _08126B38 + adds r1, r0, r3 + str r1, [r2] + ldr r1, _08126B3C + adds r0, r0, r1 + str r0, [r2, #4] + movs r0, #0xc + strb r0, [r2, #8] + movs r0, #1 + strb r0, [r2, #9] + ldr r1, _08126B40 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08126B44 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08126B30: .4byte 0x02039E48 +_08126B34: .4byte 0x03005AEC +_08126B38: .4byte 0x0000271C +_08126B3C: .4byte 0x00002728 +_08126B40: .4byte 0x03005B60 +_08126B44: .4byte 0x08126B49 + thumb_func_end DoPlayerRoomDecorationMenu + + thumb_func_start HandleDecorationActionsMenuInput +HandleDecorationActionsMenuInput: @ 0x08126B48 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _08126B94 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08126BC8 + bl Menu_GetCursorPos + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl Menu_ProcessInput + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + movs r0, #2 + rsbs r0, r0, #0 + cmp r1, r0 + beq _08126BA0 + adds r0, #1 + cmp r1, r0 + beq _08126BBC + movs r0, #5 + bl PlaySE + ldr r1, _08126B98 + ldr r0, _08126B9C + ldrb r0, [r0] + lsls r0, r0, #3 + adds r1, #4 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + b _08126BC8 + .align 2, 0 +_08126B94: .4byte 0x02037C74 +_08126B98: .4byte 0x08581A2C +_08126B9C: .4byte 0x02039E1C +_08126BA0: + bl Menu_GetCursorPos + ldr r1, _08126BB8 + strb r0, [r1] + lsls r0, r4, #0x18 + asrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + beq _08126BC8 + bl PrintCurMainMenuDescription + b _08126BC8 + .align 2, 0 +_08126BB8: .4byte 0x02039E1C +_08126BBC: + movs r0, #5 + bl PlaySE + adds r0, r5, #0 + bl DecorationMenuAction_Cancel +_08126BC8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end HandleDecorationActionsMenuInput + + thumb_func_start PrintCurMainMenuDescription +PrintCurMainMenuDescription: @ 0x08126BD0 + push {lr} + sub sp, #0x10 + movs r0, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r1, _08126C08 + ldr r0, _08126C0C + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r2, [r0] + movs r0, #0 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + movs r0, #3 + str r0, [sp, #0xc] + movs r0, #0 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized2 + add sp, #0x10 + pop {r0} + bx r0 + .align 2, 0 +_08126C08: .4byte 0x08581A4C +_08126C0C: .4byte 0x02039E1C + thumb_func_end PrintCurMainMenuDescription + + thumb_func_start DecorationMenuAction_Decorate +DecorationMenuAction_Decorate: @ 0x08126C10 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + bl GetNumOwnedDecorations + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08126C44 + ldr r4, _08126C38 + ldr r1, _08126C3C + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r2, _08126C40 + adds r0, r5, #0 + adds r1, r4, #0 + bl DisplayItemMessageOnField + b _08126C5E + .align 2, 0 +_08126C38: .4byte 0x02021C7C +_08126C3C: .4byte 0x085CA70B +_08126C40: .4byte 0x08126D6D +_08126C44: + ldr r1, _08126C64 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #0 + movs r1, #0 + strh r1, [r0, #0x1e] + ldr r0, _08126C68 + strb r2, [r0] + adds r0, r5, #0 + bl SecretBasePC_PrepMenuForSelectingStoredDecors +_08126C5E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08126C64: .4byte 0x03005B60 +_08126C68: .4byte 0x02039E3F + thumb_func_end DecorationMenuAction_Decorate + + thumb_func_start DecorationMenuAction_PutAway +DecorationMenuAction_PutAway: @ 0x08126C6C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r5, #0 + bl sub_0812999C + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08126CA0 + ldr r4, _08126C94 + ldr r1, _08126C98 + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r2, _08126C9C + adds r0, r5, #0 + adds r1, r4, #0 + bl DisplayItemMessageOnField + b _08126CC8 + .align 2, 0 +_08126C94: .4byte 0x02021C7C +_08126C98: .4byte 0x085CA87A +_08126C9C: .4byte 0x08126D6D +_08126CA0: + movs r0, #0 + bl RemoveDecorationWindow + movs r0, #0 + movs r1, #0 + bl DrawDialogueFrame + movs r0, #1 + movs r1, #0 + bl FadeScreen + ldr r1, _08126CD0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #0xc] + ldr r1, _08126CD4 + str r1, [r0] +_08126CC8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08126CD0: .4byte 0x03005B60 +_08126CD4: .4byte 0x08129AAD + thumb_func_end DecorationMenuAction_PutAway + + thumb_func_start DecorationMenuAction_Toss +DecorationMenuAction_Toss: @ 0x08126CD8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + bl GetNumOwnedDecorations + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08126D0C + ldr r4, _08126D00 + ldr r1, _08126D04 + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r2, _08126D08 + adds r0, r5, #0 + adds r1, r4, #0 + bl DisplayItemMessageOnField + b _08126D26 + .align 2, 0 +_08126D00: .4byte 0x02021C7C +_08126D04: .4byte 0x085CA70B +_08126D08: .4byte 0x08126D6D +_08126D0C: + ldr r1, _08126D2C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #0 + movs r1, #1 + strh r1, [r0, #0x1e] + ldr r0, _08126D30 + strb r2, [r0] + adds r0, r5, #0 + bl SecretBasePC_PrepMenuForSelectingStoredDecors +_08126D26: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08126D2C: .4byte 0x03005B60 +_08126D30: .4byte 0x02039E3F + thumb_func_end DecorationMenuAction_Toss + + thumb_func_start DecorationMenuAction_Cancel +DecorationMenuAction_Cancel: @ 0x08126D34 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #0 + bl RemoveDecorationWindow + ldr r0, _08126D58 + ldrb r0, [r0, #9] + cmp r0, #0 + bne _08126D60 + ldr r0, _08126D5C + bl ScriptContext1_SetupScript + adds r0, r4, #0 + bl DestroyTask + b _08126D66 + .align 2, 0 +_08126D58: .4byte 0x02039E48 +_08126D5C: .4byte 0x0821D3D7 +_08126D60: + adds r0, r4, #0 + bl ReshowPlayerPC +_08126D66: + pop {r4} + pop {r0} + bx r0 + thumb_func_end DecorationMenuAction_Cancel + + thumb_func_start ReturnToDecorationActionsAfterInvalidSelection +ReturnToDecorationActionsAfterInvalidSelection: @ 0x08126D6C + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl PrintCurMainMenuDescription + ldr r1, _08126D8C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08126D90 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08126D8C: .4byte 0x03005B60 +_08126D90: .4byte 0x08126B49 + thumb_func_end ReturnToDecorationActionsAfterInvalidSelection + + thumb_func_start SecretBasePC_PrepMenuForSelectingStoredDecors +SecretBasePC_PrepMenuForSelectingStoredDecors: @ 0x08126D94 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _08126DC0 + movs r1, #0xd0 + movs r2, #0x20 + bl LoadPalette + movs r0, #0 + movs r1, #0 + bl DrawDialogueFrame + movs r0, #0 + bl RemoveDecorationWindow + adds r0, r4, #0 + bl sub_08126DC4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08126DC0: .4byte 0x08581A94 + thumb_func_end SecretBasePC_PrepMenuForSelectingStoredDecors + + thumb_func_start sub_08126DC4 +sub_08126DC4: @ 0x08126DC4 + push {r4, r5, lr} + sub sp, #0xc + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + bl sub_081269BC + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + adds r0, r4, #0 + bl PrintDecorationCategoryMenuItems + movs r0, #0x10 + str r0, [sp] + movs r0, #9 + str r0, [sp, #4] + ldr r0, _08126E10 + ldrb r0, [r0] + str r0, [sp, #8] + adds r0, r5, #0 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl sub_081984B0 + ldr r1, _08126E14 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08126E18 + str r1, [r0] + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08126E10: .4byte 0x02039E3F +_08126E14: .4byte 0x03005B60 +_08126E18: .4byte 0x08127041 + thumb_func_end sub_08126DC4 + + thumb_func_start sub_08126E1C +sub_08126E1C: @ 0x08126E1C + push {r4, r5, lr} + sub sp, #0xc + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r5, _08126E68 + ldrb r0, [r5, #1] + movs r1, #0x11 + bl FillWindowPixelBuffer + adds r0, r4, #0 + bl PrintDecorationCategoryMenuItems + ldrb r0, [r5, #1] + movs r1, #0x10 + str r1, [sp] + movs r1, #9 + str r1, [sp, #4] + ldr r1, _08126E6C + ldrb r1, [r1] + str r1, [sp, #8] + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl sub_081984B0 + ldr r1, _08126E70 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08126E74 + str r1, [r0] + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08126E68: .4byte 0x02039E54 +_08126E6C: .4byte 0x02039E3F +_08126E70: .4byte 0x03005B60 +_08126E74: .4byte 0x08127041 + thumb_func_end sub_08126E1C + + thumb_func_start PrintDecorationCategoryMenuItems +PrintDecorationCategoryMenuItems: @ 0x08126E78 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _08126EC8 + adds r1, r1, r0 + ldr r0, _08126ECC + ldrb r5, [r0, #1] + ldr r0, _08126ED0 + ldrb r0, [r0, #9] + movs r7, #0 + cmp r0, #1 + bne _08126EA2 + movs r2, #0x16 + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _08126EA2 + movs r7, #1 +_08126EA2: + movs r4, #0 + movs r6, #0xff +_08126EA6: + cmp r7, #1 + bne _08126ED4 + cmp r4, #6 + beq _08126ED4 + cmp r4, #7 + beq _08126ED4 + lsls r3, r4, #0x1c + lsrs r3, r3, #0x18 + str r7, [sp] + str r6, [sp, #4] + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #8 + bl PrintDecorationCategoryMenuItem + b _08126EE8 + .align 2, 0 +_08126EC8: .4byte 0x03005B68 +_08126ECC: .4byte 0x02039E54 +_08126ED0: .4byte 0x02039E48 +_08126ED4: + lsls r3, r4, #0x1c + lsrs r3, r3, #0x18 + movs r0, #0 + str r0, [sp] + str r6, [sp, #4] + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #8 + bl PrintDecorationCategoryMenuItem +_08126EE8: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #7 + bls _08126EA6 + ldr r2, _08126F1C + lsls r0, r4, #4 + adds r0, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + adds r0, r5, #0 + movs r1, #1 + movs r3, #8 + bl AddTextPrinterParameterized + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08126F1C: .4byte 0x085C93C4 + thumb_func_end PrintDecorationCategoryMenuItems + + thumb_func_start PrintDecorationCategoryMenuItem +PrintDecorationCategoryMenuItem: @ 0x08126F20 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + adds r4, r1, #0 + adds r6, r2, #0 + adds r5, r3, #0 + ldr r1, [sp, #0x2c] + ldr r2, [sp, #0x30] + mov sl, r2 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r0, sl + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + ldr r2, _08126FF4 + mov r8, r2 + mov r0, r8 + bl ColorMenuItemString + ldr r0, _08126FF8 + mov sb, r0 + mov r1, r8 + bl StringCopy + ldr r1, _08126FFC + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r1, [r0] + mov r0, sb + bl StringAppend + adds r5, #2 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + str r5, [sp] + mov r2, sl + str r2, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + adds r0, r7, #0 + movs r1, #1 + mov r2, sb + adds r3, r6, #0 + bl AddTextPrinterParameterized + ldr r2, _08127000 + mov r8, r2 + adds r0, r4, #0 + bl GetNumOwnedDecorationsInCategory + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r0, r8 + movs r2, #1 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r0, _08127004 + ldr r1, _08127008 + lsls r4, r4, #3 + adds r4, r4, r1 + ldrb r1, [r4, #4] + movs r2, #1 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r1, _0812700C + mov r0, sb + bl StringExpandPlaceholders + adds r6, #0x30 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + str r5, [sp] + mov r0, sl + str r0, [sp, #4] + movs r2, #0 + str r2, [sp, #8] + adds r0, r7, #0 + movs r1, #1 + mov r2, sb + adds r3, r6, #0 + bl AddTextPrinterParameterized + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08126FF4: .4byte 0x02021C68 +_08126FF8: .4byte 0x02021C7C +_08126FFC: .4byte 0x08581A0C +_08127000: .4byte 0x02021C40 +_08127004: .4byte 0x02021C54 +_08127008: .4byte 0x0203B90C +_0812700C: .4byte 0x085CA6A4 + thumb_func_end PrintDecorationCategoryMenuItem + + thumb_func_start ColorMenuItemString +ColorMenuItemString: @ 0x08127010 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r4, r1, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _0812702C + bl StringCopy + cmp r4, #1 + bne _08127030 + movs r0, #4 + strb r0, [r5, #2] + movs r0, #5 + b _08127036 + .align 2, 0 +_0812702C: .4byte 0x085CA6C6 +_08127030: + movs r0, #2 + strb r0, [r5, #2] + movs r0, #3 +_08127036: + strb r0, [r5, #5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ColorMenuItemString + + thumb_func_start HandleDecorationCategoriesMenuInput +HandleDecorationCategoriesMenuInput: @ 0x08127040 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _08127070 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08127096 + bl Menu_ProcessInput + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + asrs r1, r0, #0x18 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _08127078 + cmp r1, r0 + bgt _08127074 + subs r0, #1 + cmp r1, r0 + beq _08127096 + b _08127086 + .align 2, 0 +_08127070: .4byte 0x02037C74 +_08127074: + cmp r1, #8 + bne _08127086 +_08127078: + movs r0, #5 + bl PlaySE + adds r0, r5, #0 + bl ExitDecorationCategoriesMenu + b _08127096 +_08127086: + movs r0, #5 + bl PlaySE + ldr r0, _0812709C + strb r4, [r0] + adds r0, r5, #0 + bl SelectDecorationCategory +_08127096: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0812709C: .4byte 0x02039E3F + thumb_func_end HandleDecorationCategoriesMenuInput + + thumb_func_start SelectDecorationCategory +SelectDecorationCategory: @ 0x081270A0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r4, _081270EC + ldrb r0, [r4] + bl GetNumOwnedDecorationsInCategory + ldr r1, _081270F0 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0812710C + ldrb r0, [r4] + bl CondenseDecorationsInCategory + ldr r2, _081270F4 + ldr r1, _081270F8 + ldrb r0, [r4] + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r2] + adds r0, r5, #0 + bl IdentifyOwnedDecorationsCurrentlyInUse + ldr r0, _081270FC + movs r1, #0 + strh r1, [r0] + ldr r0, _08127100 + strh r1, [r0] + ldr r1, _08127104 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08127108 + str r1, [r0] + b _08127126 + .align 2, 0 +_081270EC: .4byte 0x02039E3F +_081270F0: .4byte 0x02039E1D +_081270F4: .4byte 0x02039E18 +_081270F8: .4byte 0x0203B90C +_081270FC: .4byte 0x02039E3C +_08127100: .4byte 0x02039E3A +_08127104: .4byte 0x03005B60 +_08127108: .4byte 0x081275CD +_0812710C: + movs r0, #1 + bl RemoveDecorationWindow + ldr r4, _0812712C + ldr r1, _08127130 + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r2, _08127134 + adds r0, r5, #0 + adds r1, r4, #0 + bl DisplayItemMessageOnField +_08127126: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0812712C: .4byte 0x02021C7C +_08127130: .4byte 0x085CA70B +_08127134: .4byte 0x08127139 + thumb_func_end SelectDecorationCategory + + thumb_func_start ReturnToDecorationCategoriesAfterInvalidSelection +ReturnToDecorationCategoriesAfterInvalidSelection: @ 0x08127138 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + movs r1, #0 + bl DrawDialogueFrame + adds r0, r4, #0 + bl sub_08126DC4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end ReturnToDecorationCategoriesAfterInvalidSelection + + thumb_func_start ExitDecorationCategoriesMenu +ExitDecorationCategoriesMenu: @ 0x08127154 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _08127174 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0x1e + ldrsh r0, [r0, r1] + cmp r0, #2 + beq _08127178 + adds r0, r2, #0 + bl ReturnToActionsMenuFromCategories + b _0812717E + .align 2, 0 +_08127174: .4byte 0x03005B60 +_08127178: + adds r0, r2, #0 + bl ExitTraderDecorationMenu +_0812717E: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ExitDecorationCategoriesMenu + + thumb_func_start ReturnToActionsMenuFromCategories +ReturnToActionsMenuFromCategories: @ 0x08127184 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + bl RemoveDecorationWindow + bl AddDecorationActionsWindow + movs r0, #0 + movs r1, #0 + bl ClearDialogWindowAndFrame + bl PrintCurMainMenuDescription + ldr r1, _081271B8 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081271BC + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081271B8: .4byte 0x03005B60 +_081271BC: .4byte 0x08126B49 + thumb_func_end ReturnToActionsMenuFromCategories + + thumb_func_start ShowDecorationCategoriesWindow +ShowDecorationCategoriesWindow: @ 0x081271C0 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081271FC + movs r1, #0xd0 + movs r2, #0x20 + bl LoadPalette + movs r0, #0 + movs r1, #0 + bl DrawDialogueFrame + ldr r1, _08127200 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #0 + movs r1, #2 + strh r1, [r0, #0x1e] + ldr r0, _08127204 + strb r2, [r0] + adds r0, r4, #0 + bl sub_08126DC4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081271FC: .4byte 0x08581A94 +_08127200: .4byte 0x03005B60 +_08127204: .4byte 0x02039E3F + thumb_func_end ShowDecorationCategoriesWindow + + thumb_func_start CopyDecorationCategoryName +CopyDecorationCategoryName: @ 0x08127208 + push {lr} + lsls r1, r1, #0x18 + ldr r2, _0812721C + lsrs r1, r1, #0x16 + adds r1, r1, r2 + ldr r1, [r1] + bl StringCopy + pop {r0} + bx r0 + .align 2, 0 +_0812721C: .4byte 0x08581A0C + thumb_func_end CopyDecorationCategoryName + + thumb_func_start ExitTraderDecorationMenu +ExitTraderDecorationMenu: @ 0x08127220 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + bl RemoveDecorationWindow + adds r0, r4, #0 + bl ExitTraderMenu + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ExitTraderDecorationMenu + + thumb_func_start InitDecorationItemsMenuLimits +InitDecorationItemsMenuLimits: @ 0x0812723C + push {lr} + ldr r3, _08127264 + ldr r2, [r3] + ldr r0, _08127268 + ldrb r0, [r0] + adds r0, #1 + movs r1, #0xf6 + lsls r1, r1, #2 + adds r2, r2, r1 + strb r0, [r2] + ldr r0, [r3] + adds r1, r0, r1 + ldrb r1, [r1] + cmp r1, #8 + bls _08127270 + ldr r2, _0812726C + adds r1, r0, r2 + movs r0, #8 + strb r0, [r1] + b _08127276 + .align 2, 0 +_08127264: .4byte 0x02039E58 +_08127268: .4byte 0x02039E1D +_0812726C: .4byte 0x000003D9 +_08127270: + ldr r2, _0812727C + adds r0, r0, r2 + strb r1, [r0] +_08127276: + pop {r0} + bx r0 + .align 2, 0 +_0812727C: .4byte 0x000003D9 + thumb_func_end InitDecorationItemsMenuLimits + + thumb_func_start sub_08127280 +sub_08127280: @ 0x08127280 + push {r4, lr} + ldr r0, _081272A0 + ldr r1, _081272A4 + ldr r2, _081272A8 + ldr r3, [r2] + ldr r4, _081272AC + adds r2, r3, r4 + ldrb r2, [r2] + subs r4, #1 + adds r3, r3, r4 + ldrb r3, [r3] + bl sub_08122268 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081272A0: .4byte 0x02039E3C +_081272A4: .4byte 0x02039E3A +_081272A8: .4byte 0x02039E58 +_081272AC: .4byte 0x000003D9 + thumb_func_end sub_08127280 + + thumb_func_start sub_081272B0 +sub_081272B0: @ 0x081272B0 + push {r4, lr} + sub sp, #4 + ldr r0, _081272D8 + ldr r1, _081272DC + ldr r2, _081272E0 + ldr r3, [r2] + ldr r4, _081272E4 + adds r2, r3, r4 + ldrb r2, [r2] + subs r4, #1 + adds r3, r3, r4 + ldrb r3, [r3] + movs r4, #8 + str r4, [sp] + bl sub_081222A4 + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081272D8: .4byte 0x02039E3C +_081272DC: .4byte 0x02039E3A +_081272E0: .4byte 0x02039E58 +_081272E4: .4byte 0x000003D9 + thumb_func_end sub_081272B0 + + thumb_func_start PrintDecorationItemMenuItems +PrintDecorationItemMenuItems: @ 0x081272E8 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _08127320 + adds r1, r1, r0 + ldr r0, _08127324 + ldrb r0, [r0] + subs r0, #6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _08127330 + ldr r0, _08127328 + ldrb r0, [r0, #9] + cmp r0, #1 + bne _08127330 + movs r2, #0x16 + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _08127330 + ldr r0, _0812732C + movs r1, #1 + bl ColorMenuItemString + b _08127338 + .align 2, 0 +_08127320: .4byte 0x03005B68 +_08127324: .4byte 0x02039E3F +_08127328: .4byte 0x02039E48 +_0812732C: .4byte 0x02021C40 +_08127330: + ldr r0, _081273E4 + movs r1, #0 + bl ColorMenuItemString +_08127338: + movs r6, #0 + ldr r1, _081273E8 + ldr r0, [r1] + movs r3, #0xf6 + lsls r3, r3, #2 + adds r0, r0, r3 + ldrb r0, [r0] + subs r0, #1 + cmp r6, r0 + bge _0812738A + adds r5, r1, #0 +_0812734E: + lsls r4, r6, #4 + movs r0, #0xa4 + lsls r0, r0, #1 + adds r4, r4, r0 + ldr r0, [r5] + adds r0, r0, r4 + ldr r1, _081273EC + ldr r1, [r1] + adds r1, r1, r6 + ldrb r1, [r1] + bl CopyDecorationMenuItemName + ldr r1, [r5] + lsls r2, r6, #3 + adds r0, r1, r2 + adds r4, r1, r4 + str r4, [r0] + adds r0, r1, #4 + adds r0, r0, r2 + str r6, [r0] + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + movs r2, #0xf6 + lsls r2, r2, #2 + adds r1, r1, r2 + ldrb r0, [r1] + subs r0, #1 + cmp r6, r0 + blt _0812734E +_0812738A: + ldr r5, _081273E8 + lsls r4, r6, #4 + movs r3, #0xa4 + lsls r3, r3, #1 + adds r4, r4, r3 + ldr r0, [r5] + adds r0, r0, r4 + ldr r1, _081273F0 + bl StringCopy + ldr r0, [r5] + lsls r2, r6, #3 + adds r1, r0, r2 + adds r4, r0, r4 + str r4, [r1] + adds r0, #4 + adds r0, r0, r2 + movs r1, #2 + rsbs r1, r1, #0 + str r1, [r0] + ldr r2, _081273F4 + adds r1, r2, #0 + ldr r0, _081273F8 + ldm r0!, {r3, r4, r6} + stm r1!, {r3, r4, r6} + ldm r0!, {r3, r4, r6} + stm r1!, {r3, r4, r6} + ldr r0, _081273FC + ldrb r0, [r0, #1] + strb r0, [r2, #0x10] + ldr r0, [r5] + movs r4, #0xf6 + lsls r4, r4, #2 + adds r1, r0, r4 + ldrb r1, [r1] + strh r1, [r2, #0xc] + str r0, [r2] + ldr r6, _08127400 + adds r0, r0, r6 + ldrb r0, [r0] + strh r0, [r2, #0xe] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081273E4: .4byte 0x02021C40 +_081273E8: .4byte 0x02039E58 +_081273EC: .4byte 0x02039E18 +_081273F0: .4byte 0x085C93C4 +_081273F4: .4byte 0x03006050 +_081273F8: .4byte 0x08581AB4 +_081273FC: .4byte 0x02039E54 +_08127400: .4byte 0x000003D9 + thumb_func_end PrintDecorationItemMenuItems + + thumb_func_start CopyDecorationMenuItemName +CopyDecorationMenuItemName: @ 0x08127404 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r4, r1, #0x10 + lsrs r4, r4, #0x10 + ldr r1, _08127428 + bl StringCopy + lsls r1, r4, #3 + subs r1, r1, r4 + lsls r1, r1, #2 + ldr r0, _0812742C + adds r1, r1, r0 + adds r0, r5, #0 + bl StringAppend + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08127428: .4byte 0x02021C40 +_0812742C: .4byte 0x08580CD1 + thumb_func_end CopyDecorationMenuItemName + + thumb_func_start DecorationItemsMenu_OnCursorMove +DecorationItemsMenu_OnCursorMove: @ 0x08127430 + push {r4, lr} + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #1 + beq _08127442 + movs r0, #5 + bl PlaySE +_08127442: + adds r0, r4, #0 + bl PrintDecorationItemDescription + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end DecorationItemsMenu_OnCursorMove + + thumb_func_start sub_08127450 +sub_08127450: @ 0x08127450 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + mov r8, r6 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + adds r7, r5, #0 + movs r0, #2 + rsbs r0, r0, #0 + cmp r1, r0 + beq _081274A6 + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl sub_0812776C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0812748C + adds r3, r5, #2 + adds r0, r6, #0 + movs r1, #0x18 + movs r2, #0x5c + bl blit_move_info_icon + b _081274A6 +_0812748C: + adds r0, r4, #0 + bl sub_08127798 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081274A6 + adds r3, r7, #2 + mov r0, r8 + movs r1, #0x19 + movs r2, #0x5c + bl blit_move_info_icon +_081274A6: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08127450 + + thumb_func_start AddDecorationItemsScrollIndicators +AddDecorationItemsScrollIndicators: @ 0x081274B0 + push {r4, lr} + sub sp, #0x10 + ldr r4, _081274F8 + ldr r1, [r4] + ldr r2, _081274FC + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0xff + bne _081274F0 + subs r2, #2 + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, #1 + adds r1, r1, r2 + ldrb r1, [r1] + subs r0, r0, r1 + str r0, [sp] + movs r0, #0x6e + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, _08127500 + str r0, [sp, #0xc] + movs r0, #2 + movs r1, #0x3c + movs r2, #0xc + movs r3, #0x94 + bl AddScrollIndicatorArrowPairParameterized + ldr r1, [r4] + ldr r2, _081274FC + adds r1, r1, r2 + strb r0, [r1] +_081274F0: + add sp, #0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081274F8: .4byte 0x02039E58 +_081274FC: .4byte 0x000003DA +_08127500: .4byte 0x02039E3C + thumb_func_end AddDecorationItemsScrollIndicators + + thumb_func_start RemoveDecorationItemsScrollIndicators +RemoveDecorationItemsScrollIndicators: @ 0x08127504 + push {r4, lr} + ldr r4, _08127528 + ldr r0, [r4] + ldr r2, _0812752C + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, #0xff + beq _08127522 + bl RemoveScrollIndicatorArrowPair + ldr r0, [r4] + ldr r1, _0812752C + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] +_08127522: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08127528: .4byte 0x02039E58 +_0812752C: .4byte 0x000003DA + thumb_func_end RemoveDecorationItemsScrollIndicators + + thumb_func_start sub_08127530 +sub_08127530: @ 0x08127530 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + bl sub_081269BC + adds r0, r4, #0 + bl InitDecorationItemsWindow + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08127530 + + thumb_func_start InitDecorationItemsWindow +InitDecorationItemsWindow: @ 0x0812754C + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r4, #2 + adds r5, r5, r4 + lsls r5, r5, #3 + ldr r0, _081275B0 + adds r5, r5, r0 + movs r0, #3 + bl sub_081269BC + ldr r0, _081275B4 + ldrb r0, [r0] + bl ShowDecorationCategorySummaryWindow + ldr r6, _081275B8 + movs r0, #0xf7 + lsls r0, r0, #2 + bl AllocZeroed + str r0, [r6] + ldr r1, _081275BC + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] + bl InitDecorationItemsMenuLimits + bl sub_08127280 + bl sub_081272B0 + adds r0, r4, #0 + bl PrintDecorationItemMenuItems + ldr r0, _081275C0 + ldr r1, _081275C4 + ldrh r1, [r1] + ldr r2, _081275C8 + ldrh r2, [r2] + bl ListMenuInit + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x1a] + bl AddDecorationItemsScrollIndicators + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081275B0: .4byte 0x03005B68 +_081275B4: .4byte 0x02039E3F +_081275B8: .4byte 0x02039E58 +_081275BC: .4byte 0x000003DA +_081275C0: .4byte 0x03006050 +_081275C4: .4byte 0x02039E3C +_081275C8: .4byte 0x02039E3A + thumb_func_end InitDecorationItemsWindow + + thumb_func_start ShowDecorationItemsWindow +ShowDecorationItemsWindow: @ 0x081275CC + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl InitDecorationItemsWindow + ldr r1, _081275F0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081275F4 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081275F0: .4byte 0x03005B60 +_081275F4: .4byte 0x081275F9 + thumb_func_end ShowDecorationItemsWindow + + thumb_func_start HandleDecorationItemsMenuInput +HandleDecorationItemsMenuInput: @ 0x081275F8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _08127640 + adds r5, r0, r1 + ldr r0, _08127644 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081276AC + ldrb r0, [r5, #0x1a] + bl ListMenu_ProcessInput + adds r4, r0, #0 + ldrb r0, [r5, #0x1a] + ldr r7, _08127648 + ldr r1, _0812764C + mov r8, r1 + adds r1, r7, #0 + mov r2, r8 + bl ListMenuGetScrollAndRow + movs r0, #2 + rsbs r0, r0, #0 + cmp r4, r0 + beq _08127650 + adds r0, #1 + cmp r4, r0 + bne _08127670 + b _081276AC + .align 2, 0 +_08127640: .4byte 0x03005B68 +_08127644: .4byte 0x02037C74 +_08127648: .4byte 0x02039E3C +_0812764C: .4byte 0x02039E3A +_08127650: + movs r0, #5 + bl PlaySE + ldr r0, _0812766C + movs r2, #0x16 + ldrsh r1, [r5, r2] + lsls r1, r1, #3 + adds r0, #4 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r6, #0 + bl _call_via_r1 + b _081276AC + .align 2, 0 +_0812766C: .4byte 0x08581A5C +_08127670: + movs r0, #5 + bl PlaySE + ldr r0, _081276B8 + strb r4, [r0] + bl RemoveDecorationItemsScrollIndicators + ldrb r0, [r5, #0x1a] + adds r1, r7, #0 + mov r2, r8 + bl DestroyListMenuTask + movs r0, #1 + bl RemoveDecorationWindow + bl RemoveDecorationItemsOtherWindows + ldr r0, _081276BC + ldr r0, [r0] + bl Free + ldr r1, _081276C0 + movs r2, #0x16 + ldrsh r0, [r5, r2] + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r6, #0 + bl _call_via_r1 +_081276AC: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081276B8: .4byte 0x02039E3E +_081276BC: .4byte 0x02039E58 +_081276C0: .4byte 0x08581A5C + thumb_func_end HandleDecorationItemsMenuInput + + thumb_func_start ShowDecorationCategorySummaryWindow +ShowDecorationCategorySummaryWindow: @ 0x081276C4 + push {r4, lr} + sub sp, #8 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #2 + bl sub_081269BC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + str r1, [sp] + str r1, [sp, #4] + adds r1, r4, #0 + movs r2, #0 + movs r3, #0 + bl PrintDecorationCategoryMenuItem + add sp, #8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end ShowDecorationCategorySummaryWindow + + thumb_func_start PrintDecorationItemDescription +PrintDecorationItemDescription: @ 0x081276F0 + push {r4, r5, lr} + sub sp, #0xc + adds r4, r0, #0 + ldr r0, _08127710 + ldrb r5, [r0, #3] + adds r0, r5, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r0, _08127714 + ldrb r0, [r0] + cmp r4, r0 + blo _0812771C + ldr r2, _08127718 + b _08127732 + .align 2, 0 +_08127710: .4byte 0x02039E54 +_08127714: .4byte 0x02039E1D +_08127718: .4byte 0x085C9423 +_0812771C: + ldr r2, _08127750 + ldr r0, _08127754 + ldr r0, [r0] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x14 + adds r0, r0, r2 + ldr r2, [r0] +_08127732: + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + adds r0, r5, #0 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08127750: .4byte 0x08580CD0 +_08127754: .4byte 0x02039E18 + thumb_func_end PrintDecorationItemDescription + + thumb_func_start RemoveDecorationItemsOtherWindows +RemoveDecorationItemsOtherWindows: @ 0x08127758 + push {lr} + movs r0, #3 + bl RemoveDecorationWindow + movs r0, #2 + bl RemoveDecorationWindow + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RemoveDecorationItemsOtherWindows + + thumb_func_start sub_0812776C +sub_0812776C: @ 0x0812776C + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + movs r1, #0 + ldr r3, _08127784 +_08127776: + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _08127788 + movs r0, #1 + b _08127794 + .align 2, 0 +_08127784: .4byte 0x02039E1E +_08127788: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xf + bls _08127776 + movs r0, #0 +_08127794: + pop {r1} + bx r1 + thumb_func_end sub_0812776C + + thumb_func_start sub_08127798 +sub_08127798: @ 0x08127798 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + movs r1, #0 + ldr r3, _081277B0 +_081277A2: + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _081277B4 + movs r0, #1 + b _081277C0 + .align 2, 0 +_081277B0: .4byte 0x02039E2E +_081277B4: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xb + bls _081277A2 + movs r0, #0 +_081277C0: + pop {r1} + bx r1 + thumb_func_end sub_08127798 + + thumb_func_start IdentifyOwnedDecorationsCurrentlyInUseInternal +IdentifyOwnedDecorationsCurrentlyInUseInternal: @ 0x081277C4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + movs r5, #0 + ldr r0, _08127864 + movs r1, #0 + movs r2, #0x10 + bl memset + ldr r0, _08127868 + movs r1, #0 + movs r2, #0xc + bl memset + movs r6, #0 + ldr r0, _0812786C + mov sl, r0 + ldr r1, _08127870 + mov sb, r1 + ldr r3, _08127874 + mov r8, r3 +_081277F2: + mov r1, sl + ldr r0, [r1] + add r0, sb + adds r0, r0, r6 + ldrb r0, [r0] + cmp r0, #0 + beq _08127892 + movs r2, #0 + mov r3, r8 + ldrb r0, [r3] + lsls r0, r0, #3 + ldr r1, _08127878 + adds r0, r0, r1 + ldrb r0, [r0, #4] + cmp r2, r0 + bhs _08127892 + ldr r7, _08127864 + adds r3, r1, #0 + mov ip, r3 +_08127818: + ldr r0, _0812787C + ldr r1, [r0] + adds r1, r1, r2 + mov r3, sl + ldr r0, [r3] + add r0, sb + adds r0, r0, r6 + ldrb r1, [r1] + adds r4, r2, #1 + ldrb r0, [r0] + cmp r1, r0 + bne _08127880 + movs r1, #0 + cmp r1, r5 + bhs _08127852 + ldrb r0, [r7] + cmp r0, r4 + beq _08127852 + ldr r3, _08127864 + adds r2, r4, #0 +_08127840: + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, r5 + bhs _08127852 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _08127840 +_08127852: + cmp r1, r5 + bne _08127880 + adds r0, r5, r7 + strb r4, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + b _08127892 + .align 2, 0 +_08127864: .4byte 0x02039E1E +_08127868: .4byte 0x02039E2E +_0812786C: .4byte 0x03005AEC +_08127870: .4byte 0x00001AAE +_08127874: .4byte 0x02039E3F +_08127878: .4byte 0x0203B90C +_0812787C: .4byte 0x02039E18 +_08127880: + lsls r0, r4, #0x10 + lsrs r2, r0, #0x10 + mov r1, r8 + ldrb r0, [r1] + lsls r0, r0, #3 + add r0, ip + ldrb r0, [r0, #4] + cmp r2, r0 + blo _08127818 +_08127892: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #0xf + bls _081277F2 + movs r5, #0 + movs r6, #0 + ldr r3, _081278BC + mov r8, r3 +_081278A4: + ldr r0, _081278C0 + ldr r0, [r0] + ldr r1, _081278C4 + adds r0, r0, r1 + adds r0, r0, r6 + ldrb r0, [r0] + adds r7, r6, #1 + cmp r0, #0 + beq _0812794A + movs r2, #0 + b _0812793C + .align 2, 0 +_081278BC: .4byte 0x0203B90C +_081278C0: .4byte 0x03005AEC +_081278C4: .4byte 0x0000271C +_081278C8: + ldr r0, _08127928 + ldr r1, [r0] + adds r1, r1, r2 + ldr r0, _0812792C + ldr r0, [r0] + ldr r3, _08127930 + adds r0, r0, r3 + adds r0, r0, r6 + ldrb r1, [r1] + adds r4, r2, #1 + ldrb r0, [r0] + cmp r1, r0 + bne _08127938 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl sub_0812776C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08127938 + movs r1, #0 + cmp r1, r5 + bhs _08127916 + ldr r2, _08127934 + ldrb r0, [r2] + cmp r0, r4 + beq _08127916 + adds r3, r2, #0 + adds r2, r4, #0 +_08127904: + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, r5 + bhs _08127916 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _08127904 +_08127916: + cmp r1, r5 + bne _08127938 + ldr r0, _08127934 + adds r0, r5, r0 + strb r4, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + b _0812794A + .align 2, 0 +_08127928: .4byte 0x02039E18 +_0812792C: .4byte 0x03005AEC +_08127930: .4byte 0x0000271C +_08127934: .4byte 0x02039E2E +_08127938: + lsls r0, r4, #0x10 + lsrs r2, r0, #0x10 +_0812793C: + ldr r0, _08127960 + ldrb r0, [r0] + lsls r0, r0, #3 + add r0, r8 + ldrb r0, [r0, #4] + cmp r2, r0 + blo _081278C8 +_0812794A: + lsls r0, r7, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #0xb + bls _081278A4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08127960: .4byte 0x02039E3F + thumb_func_end IdentifyOwnedDecorationsCurrentlyInUseInternal + + thumb_func_start IdentifyOwnedDecorationsCurrentlyInUse +IdentifyOwnedDecorationsCurrentlyInUse: @ 0x08127964 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl IdentifyOwnedDecorationsCurrentlyInUseInternal + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end IdentifyOwnedDecorationsCurrentlyInUse + + thumb_func_start IsSelectedDecorInThePC +IsSelectedDecorInThePC: @ 0x08127974 + push {r4, lr} + movs r2, #0 + ldr r0, _081279A0 + ldrh r0, [r0] + ldr r1, _081279A4 + ldrh r1, [r1] + adds r0, r0, r1 + adds r1, r0, #1 + ldr r4, _081279A8 + ldr r3, _081279AC +_08127988: + adds r0, r2, r4 + ldrb r0, [r0] + cmp r0, r1 + beq _0812799C + cmp r2, #0xb + bhi _081279B0 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r0, r1 + bne _081279B0 +_0812799C: + movs r0, #0 + b _081279BC + .align 2, 0 +_081279A0: .4byte 0x02039E3C +_081279A4: .4byte 0x02039E3A +_081279A8: .4byte 0x02039E1E +_081279AC: .4byte 0x02039E2E +_081279B0: + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0xf + bls _08127988 + movs r0, #1 +_081279BC: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsSelectedDecorInThePC + + thumb_func_start sub_081279C4 +sub_081279C4: @ 0x081279C4 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + bl sub_081269BC + adds r0, r4, #0 + bl ShowDecorationItemsWindow + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081279C4 + + thumb_func_start sub_081279E0 +sub_081279E0: @ 0x081279E0 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + movs r1, #0 + bl DrawDialogueFrame + ldr r1, _08127A04 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08127A08 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08127A04: .4byte 0x03005B60 +_08127A08: .4byte 0x081279C5 + thumb_func_end sub_081279E0 + + thumb_func_start sub_08127A0C +sub_08127A0C: @ 0x08127A0C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _08127A38 + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _08127A32 + movs r0, #0 + movs r1, #0 + bl DrawDialogueFrame + movs r0, #1 + bl sub_081269BC + adds r0, r4, #0 + bl ShowDecorationItemsWindow +_08127A32: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08127A38: .4byte 0x03002360 + thumb_func_end sub_08127A0C + + thumb_func_start sub_08127A3C +sub_08127A3C: @ 0x08127A3C + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + ldr r0, _08127A74 + adds r4, r4, r0 + bl RemoveDecorationItemsScrollIndicators + bl RemoveDecorationItemsOtherWindows + ldrb r0, [r4, #0x1a] + movs r1, #0 + movs r2, #0 + bl DestroyListMenuTask + ldr r0, _08127A78 + ldr r0, [r0] + bl Free + adds r0, r5, #0 + bl sub_08126E1C + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08127A74: .4byte 0x03005B68 +_08127A78: .4byte 0x02039E58 + thumb_func_end sub_08127A3C + + thumb_func_start sub_08127A7C +sub_08127A7C: @ 0x08127A7C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _08127AAC + lsls r2, r0, #2 + adds r2, r2, r0 + lsls r2, r2, #3 + adds r4, r2, r3 + ldr r0, _08127AB0 + ldr r1, [r0] + ldrh r0, [r1] + strh r0, [r4, #0xe] + ldrh r0, [r1, #2] + strh r0, [r4, #0x10] + adds r3, #8 + adds r2, r2, r3 + adds r1, r2, #2 + adds r0, r2, #0 + bl PlayerGetDestCoords + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08127AAC: .4byte 0x03005B60 +_08127AB0: .4byte 0x03005AEC + thumb_func_end sub_08127A7C + + thumb_func_start sub_08127AB4 +sub_08127AB4: @ 0x08127AB4 + push {r4, r5, lr} + sub sp, #4 + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + bl DrawWholeMapView + ldr r0, _08127AFC + ldr r1, [r0] + movs r0, #4 + ldrsb r0, [r1, r0] + ldrb r1, [r1, #5] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r2, #1 + rsbs r2, r2, #0 + ldr r3, _08127B00 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + adds r4, r4, r3 + movs r3, #0xe + ldrsb r3, [r4, r3] + ldrb r4, [r4, #0x10] + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + str r4, [sp] + bl SetWarpDestination + bl WarpIntoMap + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08127AFC: .4byte 0x03005AEC +_08127B00: .4byte 0x03005B60 + thumb_func_end sub_08127AB4 + + thumb_func_start GetDecorationElevation +GetDecorationElevation: @ 0x08127B04 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, _08127B24 + cmp r2, #0x22 + beq _08127B2C + cmp r2, #0x26 + bne _08127B36 + ldr r0, _08127B28 + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x10 + b _08127B36 + .align 2, 0 +_08127B24: .4byte 0x0000FFFF +_08127B28: .4byte 0x085821C8 +_08127B2C: + ldr r0, _08127B3C + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x10 +_08127B36: + pop {r1} + bx r1 + .align 2, 0 +_08127B3C: .4byte 0x085821D0 + thumb_func_end GetDecorationElevation + + thumb_func_start ShowDecorationOnMap_ +ShowDecorationOnMap_: @ 0x08127B40 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x38 + ldr r4, [sp, #0x58] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp, #4] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #8] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r3, [sp, #0xc] + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + str r4, [sp, #0x10] + movs r2, #0 + lsls r0, r3, #0x10 + cmp r2, r3 + blo _08127B76 + b _08127CF4 +_08127B76: + ldr r1, [sp, #8] + str r1, [sp, #0x2c] + str r0, [sp, #0x34] +_08127B7C: + ldr r3, [sp, #4] + ldr r4, [sp, #0xc] + subs r1, r3, r4 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + adds r0, #1 + adds r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp, #0x18] + movs r0, #0 + str r0, [sp, #0x14] + adds r1, r2, #1 + str r1, [sp, #0x30] + ldr r3, [sp, #0x2c] + cmp r0, r3 + blo _08127BA0 + b _08127CE4 +_08127BA0: + ldr r0, _08127C10 + ldr r4, [sp, #0x10] + lsls r1, r4, #3 + subs r1, r1, r4 + str r1, [sp, #0x1c] + lsls r1, r1, #2 + adds r3, r1, r0 + str r3, [sp, #0x28] + ldr r4, _08127C14 + adds r1, r1, r4 + str r1, [sp, #0x20] + ldr r1, [sp, #8] + adds r0, r2, #0 + muls r0, r1, r0 + str r0, [sp, #0x24] +_08127BBE: + ldr r2, [sp] + ldr r3, [sp, #0x14] + adds r0, r2, r3 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r4, [sp, #0x24] + adds r1, r4, r3 + ldr r2, [sp, #0x20] + ldr r0, [r2] + lsls r1, r1, #1 + adds r1, r1, r0 + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetBehaviorByMetatileId + lsls r4, r0, #0x10 + lsls r0, r4, #8 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsSecretBaseImpassable + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08127C06 + ldr r1, [sp, #0x28] + ldrb r0, [r1, #0xc] + cmp r0, #1 + beq _08127C18 + lsrs r0, r4, #0x1c + cmp r0, #0 + beq _08127C18 +_08127C06: + movs r2, #0xc0 + lsls r2, r2, #4 + mov sl, r2 + b _08127C1C + .align 2, 0 +_08127C10: .4byte 0x08580CD0 +_08127C14: .4byte 0x08580CE8 +_08127C18: + movs r3, #0 + mov sl, r3 +_08127C1C: + ldr r4, [sp, #0x28] + ldrb r0, [r4, #0xc] + lsls r5, r5, #0x10 + mov r8, r5 + ldr r1, [sp, #0x18] + lsls r1, r1, #0x10 + mov sb, r1 + cmp r0, #3 + beq _08127C48 + asrs r0, r5, #0x10 + asrs r1, r1, #0x10 + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsSecretBaseNorthWall + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r7, #1 + cmp r0, #1 + beq _08127C4A +_08127C48: + movs r7, #0 +_08127C4A: + ldr r0, _08127C9C + ldr r2, [sp, #0x1c] + lsls r4, r2, #2 + adds r0, r4, r0 + ldrb r0, [r0] + ldr r3, [sp, #0x24] + ldr r1, [sp, #0x14] + adds r5, r3, r1 + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + bl GetDecorationElevation + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r0, _08127CA0 + cmp r6, r0 + beq _08127CA8 + mov r2, r8 + asrs r0, r2, #0x10 + mov r3, sb + asrs r1, r3, #0x10 + ldr r3, _08127CA4 + adds r2, r4, r3 + ldr r2, [r2] + lsls r3, r5, #1 + adds r3, r3, r2 + movs r4, #0x80 + lsls r4, r4, #2 + adds r2, r4, #0 + orrs r7, r2 + ldrh r3, [r3] + adds r2, r7, r3 + mov r3, sl + orrs r3, r2 + orrs r3, r6 + lsls r2, r3, #0x10 + lsrs r2, r2, #0x10 + bl MapGridSetMetatileEntryAt + b _08127CD2 + .align 2, 0 +_08127C9C: .4byte 0x08580CD0 +_08127CA0: .4byte 0x0000FFFF +_08127CA4: .4byte 0x08580CE8 +_08127CA8: + mov r1, r8 + asrs r0, r1, #0x10 + mov r2, sb + asrs r1, r2, #0x10 + ldr r3, _08127D04 + adds r2, r4, r3 + ldr r2, [r2] + lsls r3, r5, #1 + adds r3, r3, r2 + movs r4, #0x80 + lsls r4, r4, #2 + adds r2, r4, #0 + orrs r7, r2 + ldrh r3, [r3] + adds r2, r7, r3 + mov r3, sl + orrs r3, r2 + lsls r2, r3, #0x10 + lsrs r2, r2, #0x10 + bl MapGridSetMetatileIdAt +_08127CD2: + ldr r0, [sp, #0x14] + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x14] + ldr r4, [sp, #0x2c] + cmp r0, r4 + bhs _08127CE4 + b _08127BBE +_08127CE4: + ldr r1, [sp, #0x30] + lsls r0, r1, #0x10 + lsrs r2, r0, #0x10 + ldr r3, [sp, #0x34] + lsrs r0, r3, #0x10 + cmp r2, r0 + bhs _08127CF4 + b _08127B7C +_08127CF4: + add sp, #0x38 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08127D04: .4byte 0x08580CE8 + thumb_func_end ShowDecorationOnMap_ + + thumb_func_start ShowDecorationOnMap +ShowDecorationOnMap: @ 0x08127D08 + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldr r1, _08127D34 + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #0xd] + cmp r0, #9 + bhi _08127DE4 + lsls r0, r0, #2 + ldr r1, _08127D38 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08127D34: .4byte 0x08580CD0 +_08127D38: .4byte 0x08127D3C +_08127D3C: @ jump table + .4byte _08127D64 @ case 0 + .4byte _08127D6E @ case 1 + .4byte _08127D78 @ case 2 + .4byte _08127D88 @ case 3 + .4byte _08127D92 @ case 4 + .4byte _08127D9C @ case 5 + .4byte _08127DAC @ case 6 + .4byte _08127DB6 @ case 7 + .4byte _08127DC6 @ case 8 + .4byte _08127DD6 @ case 9 +_08127D64: + str r2, [sp] + adds r0, r3, #0 + adds r1, r4, #0 + movs r2, #1 + b _08127D80 +_08127D6E: + str r2, [sp] + adds r0, r3, #0 + adds r1, r4, #0 + movs r2, #2 + b _08127D80 +_08127D78: + str r2, [sp] + adds r0, r3, #0 + adds r1, r4, #0 + movs r2, #3 +_08127D80: + movs r3, #1 + bl ShowDecorationOnMap_ + b _08127DE4 +_08127D88: + str r2, [sp] + adds r0, r3, #0 + adds r1, r4, #0 + movs r2, #4 + b _08127DA4 +_08127D92: + str r2, [sp] + adds r0, r3, #0 + adds r1, r4, #0 + movs r2, #2 + b _08127DA4 +_08127D9C: + str r2, [sp] + adds r0, r3, #0 + adds r1, r4, #0 + movs r2, #1 +_08127DA4: + movs r3, #2 + bl ShowDecorationOnMap_ + b _08127DE4 +_08127DAC: + str r2, [sp] + adds r0, r3, #0 + adds r1, r4, #0 + movs r2, #1 + b _08127DCE +_08127DB6: + str r2, [sp] + adds r0, r3, #0 + adds r1, r4, #0 + movs r2, #2 + movs r3, #4 + bl ShowDecorationOnMap_ + b _08127DE4 +_08127DC6: + str r2, [sp] + adds r0, r3, #0 + adds r1, r4, #0 + movs r2, #3 +_08127DCE: + movs r3, #3 + bl ShowDecorationOnMap_ + b _08127DE4 +_08127DD6: + str r2, [sp] + adds r0, r3, #0 + adds r1, r4, #0 + movs r2, #3 + movs r3, #2 + bl ShowDecorationOnMap_ +_08127DE4: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end ShowDecorationOnMap + + thumb_func_start sub_08127DEC +sub_08127DEC: @ 0x08127DEC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + movs r6, #0 + ldr r7, _08127ECC + ldr r0, _08127ED0 + mov r8, r0 + ldr r1, _08127ED4 + mov sl, r1 + ldr r2, _08127ED8 + mov sb, r2 +_08127E08: + adds r5, r6, #0 + adds r5, #0xae + adds r4, r5, #0 + adds r0, r4, #0 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08127EF0 + adds r0, r4, #0 + bl FlagClear + movs r2, #0 + ldr r0, [r7, #4] + ldrb r4, [r0] + cmp r2, r4 + bhs _08127E56 + ldr r0, [r0, #4] + ldrh r0, [r0, #0x14] + cmp r0, r5 + beq _08127E56 + ldr r0, _08127ECC + ldr r3, [r0, #4] + ldrb r6, [r3] + adds r4, r5, #0 +_08127E3C: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, r6 + bhs _08127E56 + ldr r0, [r3, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x14] + cmp r0, r4 + bne _08127E3C +_08127E56: + ldr r0, [r7, #4] + ldr r1, [r0, #4] + lsls r4, r2, #1 + adds r4, r4, r2 + lsls r4, r4, #3 + adds r1, r4, r1 + ldr r5, _08127EDC + adds r0, r5, #0 + ldrb r1, [r1, #1] + adds r0, r0, r1 + ldr r1, _08127EE0 + ldr r1, [r1] + ldr r1, [r1, #0x18] + ldrh r1, [r1] + bl VarSet + ldr r0, [r7, #4] + ldr r0, [r0, #4] + adds r4, r4, r0 + ldrb r0, [r4] + mov r6, r8 + strh r0, [r6] + ldr r1, _08127EE4 + ldrh r1, [r1] + mov r2, sl + strh r1, [r2] + ldr r1, _08127EE8 + ldrh r1, [r1] + ldr r4, _08127EEC + strh r1, [r4] + mov r5, sb + ldr r2, [r5] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + bl TrySpawnEventObject + ldrb r0, [r6] + ldr r2, [r5] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + mov r6, sl + movs r4, #0 + ldrsh r3, [r6, r4] + ldr r5, _08127EEC + movs r6, #0 + ldrsh r4, [r5, r6] + str r4, [sp] + bl TryMoveEventObjectToMapCoords + mov r1, r8 + ldrb r0, [r1] + mov r4, sb + ldr r2, [r4] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + bl TryOverrideEventObjectTemplateCoords + b _08127EFA + .align 2, 0 +_08127ECC: .4byte 0x02036FB8 +_08127ED0: .4byte 0x02037282 +_08127ED4: .4byte 0x02037284 +_08127ED8: .4byte 0x03005AEC +_08127EDC: .4byte 0x00003F20 +_08127EE0: .4byte 0x02039E5C +_08127EE4: .4byte 0x0203A700 +_08127EE8: .4byte 0x0203A702 +_08127EEC: .4byte 0x02037286 +_08127EF0: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0xd + bls _08127E08 +_08127EFA: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08127DEC + + thumb_func_start sub_08127F0C +sub_08127F0C: @ 0x08127F0C + push {lr} + movs r1, #0 + ldr r0, _08127F28 + ldrb r2, [r0, #8] + cmp r1, r2 + bhs _08127F36 + ldr r3, [r0] +_08127F1A: + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _08127F2C + movs r0, #1 + b _08127F38 + .align 2, 0 +_08127F28: .4byte 0x02039E48 +_08127F2C: + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, r2 + blo _08127F1A +_08127F36: + movs r0, #0 +_08127F38: + pop {r1} + bx r1 + thumb_func_end sub_08127F0C + + thumb_func_start sub_08127F3C +sub_08127F3C: @ 0x08127F3C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _08127F6C + ldrb r0, [r0, #9] + cmp r0, #1 + bne _08127F80 + ldr r0, _08127F70 + ldrb r0, [r0] + cmp r0, #6 + beq _08127F80 + cmp r0, #7 + beq _08127F80 + ldr r4, _08127F74 + ldr r1, _08127F78 + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r2, _08127F7C + adds r0, r5, #0 + adds r1, r4, #0 + bl DisplayItemMessageOnField + b _08128020 + .align 2, 0 +_08127F6C: .4byte 0x02039E48 +_08127F70: .4byte 0x02039E3F +_08127F74: .4byte 0x02021C7C +_08127F78: .4byte 0x085CA7D9 +_08127F7C: .4byte 0x08127A0D +_08127F80: + bl IsSelectedDecorInThePC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0812800C + bl sub_08127F0C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08127FBC + movs r0, #1 + movs r1, #0 + bl FadeScreen + ldr r1, _08127FB4 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #0xc] + ldr r1, _08127FB8 + str r1, [r0] + b _08128020 + .align 2, 0 +_08127FB4: .4byte 0x03005B60 +_08127FB8: .4byte 0x08128035 +_08127FBC: + ldr r0, _08127FDC + ldr r4, _08127FE0 + ldrb r1, [r4, #8] + movs r2, #1 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldrb r0, [r4, #9] + cmp r0, #0 + bne _08127FEC + ldr r0, _08127FE4 + ldr r1, _08127FE8 + bl StringExpandPlaceholders + b _08127FF4 + .align 2, 0 +_08127FDC: .4byte 0x02021C40 +_08127FE0: .4byte 0x02039E48 +_08127FE4: .4byte 0x02021C7C +_08127FE8: .4byte 0x085CA776 +_08127FEC: + ldr r0, _08128000 + ldr r1, _08128004 + bl StringExpandPlaceholders +_08127FF4: + ldr r1, _08128000 + ldr r2, _08128008 + adds r0, r5, #0 + bl DisplayItemMessageOnField + b _08128020 + .align 2, 0 +_08128000: .4byte 0x02021C7C +_08128004: .4byte 0x085CA799 +_08128008: .4byte 0x08127A0D +_0812800C: + ldr r4, _08128028 + ldr r1, _0812802C + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r2, _08128030 + adds r0, r5, #0 + adds r1, r4, #0 + bl DisplayItemMessageOnField +_08128020: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08128028: .4byte 0x02021C7C +_0812802C: .4byte 0x085CA768 +_08128030: .4byte 0x08127A0D + thumb_func_end sub_08127F3C + + thumb_func_start sub_08128034 +sub_08128034: @ 0x08128034 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _08128058 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r7, r0, r1 + movs r1, #0xc + ldrsh r0, [r7, r1] + cmp r0, #1 + beq _08128080 + cmp r0, #1 + bgt _0812805C + cmp r0, #0 + beq _08128062 + b _081280E6 + .align 2, 0 +_08128058: .4byte 0x03005B60 +_0812805C: + cmp r0, #2 + beq _081280D0 + b _081280E6 +_08128062: + ldr r0, _0812807C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081280E6 + adds r0, r6, #0 + bl sub_08127A7C + movs r0, #1 + strh r0, [r7, #0xc] + b _081280E6 + .align 2, 0 +_0812807C: .4byte 0x02037C74 +_08128080: + ldr r4, _081280C0 + ldrb r0, [r4, #8] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #8] + ldr r5, _081280C4 + ldr r0, _081280C8 + ldrb r1, [r0] + ldr r0, _081280CC + ldr r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r5, #0 + bl ConfigureCameraObjectForPlacingDecoration + adds r0, r6, #0 + bl sub_08128240 + adds r0, r6, #0 + adds r1, r5, #0 + bl SetUpPlacingDecorationPlayerAvatar + bl pal_fill_black + ldrb r1, [r4, #8] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #8] + movs r0, #2 + strh r0, [r7, #0xc] + b _081280E6 + .align 2, 0 +_081280C0: .4byte 0x02037C74 +_081280C4: .4byte 0x02039E5C +_081280C8: .4byte 0x02039E3E +_081280CC: .4byte 0x02039E18 +_081280D0: + bl IsWeatherNotFadingIn + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081280E6 + movs r0, #0 + strh r0, [r7, #0x20] + adds r0, r6, #0 + bl sub_08128FB8 +_081280E6: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08128034 + + thumb_func_start ConfigureCameraObjectForPlacingDecoration +ConfigureCameraObjectForPlacingDecoration: @ 0x081280EC + push {r4, r5, r6, lr} + adds r6, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r3, _08128168 + ldr r4, _0812816C + ldr r5, _08128170 + ldr r2, [r5, #4] + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r0, [r0, #0x2e] + strb r0, [r3] + adds r0, r6, #0 + bl gpu_pal_decompress_alloc_tag_and_upload + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [r5, #4] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r2, [r1, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + movs r2, #4 + orrs r0, r2 + strb r0, [r1, #5] + ldr r0, [r5, #4] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r0, r4, #0 + adds r0, #0x1c + adds r0, r2, r0 + ldr r1, _08128174 + str r1, [r0] + adds r2, r2, r4 + ldr r3, _08128178 + ldr r0, [r6] + ldrb r0, [r0, #0xd] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0, #2] + strh r0, [r2, #0x20] + ldr r0, [r5, #4] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldr r0, [r6] + ldrb r0, [r0, #0xd] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0, #3] + strh r0, [r1, #0x22] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08128168: .4byte 0x0203A704 +_0812816C: .4byte 0x020205AC +_08128170: .4byte 0x03005B30 +_08128174: .4byte 0x081292B1 +_08128178: .4byte 0x08582134 + thumb_func_end ConfigureCameraObjectForPlacingDecoration + + thumb_func_start SetUpPlacingDecorationPlayerAvatar +SetUpPlacingDecorationPlayerAvatar: @ 0x0812817C + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _081281D0 + lsls r2, r0, #2 + adds r2, r2, r0 + lsls r2, r2, #3 + adds r2, r2, r3 + ldrb r2, [r2, #0x12] + ldr r3, _081281D4 + ldr r0, [r1] + ldrb r4, [r0, #0xd] + lsls r1, r4, #2 + adds r1, r1, r3 + lsls r0, r2, #4 + ldrb r1, [r1, #2] + adds r0, r0, r1 + subs r2, #1 + lsls r2, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r4, #2 + beq _081281B6 + cmp r4, #8 + beq _081281B6 + cmp r4, #9 + bne _081281BE +_081281B6: + adds r0, r2, #0 + subs r0, #8 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 +_081281BE: + ldr r0, _081281D8 + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #0 + bne _081281E0 + ldr r1, _081281DC + str r0, [sp] + movs r0, #0xc1 + b _081281E8 + .align 2, 0 +_081281D0: .4byte 0x03005B60 +_081281D4: .4byte 0x08582134 +_081281D8: .4byte 0x03005AF0 +_081281DC: .4byte 0x08007141 +_081281E0: + ldr r1, _0812822C + movs r0, #0 + str r0, [sp] + movs r0, #0xc2 +_081281E8: + movs r3, #0x48 + bl AddPseudoEventObject + ldr r1, _08128230 + strb r0, [r1] + ldr r3, _08128234 + ldr r0, _08128230 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r2, [r0, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #4 + orrs r1, r2 + strb r1, [r0, #5] + ldr r4, _08128238 + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + bl DestroySprite + ldr r0, _0812823C + ldr r0, [r0, #4] + strb r0, [r4] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812822C: .4byte 0x08007141 +_08128230: .4byte 0x0203A705 +_08128234: .4byte 0x020205AC +_08128238: .4byte 0x0203A704 +_0812823C: .4byte 0x03005B30 + thumb_func_end SetUpPlacingDecorationPlayerAvatar + + thumb_func_start sub_08128240 +sub_08128240: @ 0x08128240 + push {lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r2, _08128270 + ldr r0, _08128274 + ldrb r1, [r0] + ldr r0, _08128278 + ldr r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #0xd] + cmp r0, #9 + bls _08128264 + b _0812838A +_08128264: + lsls r0, r0, #2 + ldr r1, _0812827C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08128270: .4byte 0x08580CD0 +_08128274: .4byte 0x02039E3E +_08128278: .4byte 0x02039E18 +_0812827C: .4byte 0x08128280 +_08128280: @ jump table + .4byte _081282A8 @ case 0 + .4byte _081282BC @ case 1 + .4byte _081282D4 @ case 2 + .4byte _081282EC @ case 3 + .4byte _08128300 @ case 4 + .4byte _08128314 @ case 5 + .4byte _08128328 @ case 6 + .4byte _08128348 @ case 7 + .4byte _08128360 @ case 8 + .4byte _08128378 @ case 9 +_081282A8: + ldr r0, _081282B8 + lsls r1, r3, #2 + adds r1, r1, r3 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #1 + b _0812836C + .align 2, 0 +_081282B8: .4byte 0x03005B60 +_081282BC: + ldr r1, _081282D0 + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #2 + strh r1, [r0, #0x12] + movs r1, #1 + b _08128388 + .align 2, 0 +_081282D0: .4byte 0x03005B60 +_081282D4: + ldr r1, _081282E8 + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #3 + strh r1, [r0, #0x12] + movs r1, #1 + b _08128388 + .align 2, 0 +_081282E8: .4byte 0x03005B60 +_081282EC: + ldr r1, _081282FC + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #4 + b _08128384 + .align 2, 0 +_081282FC: .4byte 0x03005B60 +_08128300: + ldr r0, _08128310 + lsls r1, r3, #2 + adds r1, r1, r3 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #2 + b _0812836C + .align 2, 0 +_08128310: .4byte 0x03005B60 +_08128314: + ldr r1, _08128324 + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #1 + b _08128384 + .align 2, 0 +_08128324: .4byte 0x03005B60 +_08128328: + ldr r0, _08128344 + lsls r1, r3, #2 + adds r1, r1, r3 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #1 + strh r0, [r1, #0x12] + movs r0, #3 + strh r0, [r1, #0x14] + ldrh r0, [r1, #0xa] + adds r0, #1 + strh r0, [r1, #0xa] + b _0812838A + .align 2, 0 +_08128344: .4byte 0x03005B60 +_08128348: + ldr r1, _0812835C + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #2 + strh r1, [r0, #0x12] + movs r1, #4 + b _08128388 + .align 2, 0 +_0812835C: .4byte 0x03005B60 +_08128360: + ldr r0, _08128374 + lsls r1, r3, #2 + adds r1, r1, r3 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #3 +_0812836C: + strh r0, [r1, #0x12] + strh r0, [r1, #0x14] + b _0812838A + .align 2, 0 +_08128374: .4byte 0x03005B60 +_08128378: + ldr r1, _08128390 + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #3 +_08128384: + strh r1, [r0, #0x12] + movs r1, #2 +_08128388: + strh r1, [r0, #0x14] +_0812838A: + pop {r0} + bx r0 + .align 2, 0 +_08128390: .4byte 0x03005B60 + thumb_func_end sub_08128240 + + thumb_func_start sub_08128394 +sub_08128394: @ 0x08128394 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _081283DC + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #0x1c] + ldr r3, _081283E0 + ldr r0, _081283E4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r2, #1 + strh r2, [r0, #0x3c] + ldr r0, _081283E8 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r2, [r0, #0x3c] + bl sub_08128DC0 + adds r0, r4, #0 + bl sub_08128928 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081283DC: .4byte 0x03005B60 +_081283E0: .4byte 0x020205AC +_081283E4: .4byte 0x0203A704 +_081283E8: .4byte 0x0203A705 + thumb_func_end sub_08128394 + + thumb_func_start sub_081283EC +sub_081283EC: @ 0x081283EC + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _08128440 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #0x1c] + ldr r3, _08128444 + ldr r0, _08128448 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r2, #1 + strh r2, [r0, #0x3c] + ldr r0, _0812844C + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r2, [r0, #0x3c] + bl sub_08128DC0 + ldr r5, _08128450 + ldr r1, _08128454 + adds r0, r5, #0 + bl StringExpandPlaceholders + ldr r2, _08128458 + adds r0, r4, #0 + adds r1, r5, #0 + bl DisplayItemMessageOnField + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08128440: .4byte 0x03005B60 +_08128444: .4byte 0x020205AC +_08128448: .4byte 0x0203A704 +_0812844C: .4byte 0x0203A705 +_08128450: .4byte 0x02021C7C +_08128454: .4byte 0x085CA75C +_08128458: .4byte 0x08128B61 + thumb_func_end sub_081283EC + + thumb_func_start sub_0812845C +sub_0812845C: @ 0x0812845C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + bl MetatileBehavior_IsBlockDecoration + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08128476 + cmp r4, #0 + beq _0812847A +_08128476: + movs r0, #0 + b _0812847C +_0812847A: + movs r0, #1 +_0812847C: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0812845C + + thumb_func_start sub_08128484 +sub_08128484: @ 0x08128484 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r2, #0x10 + lsrs r4, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r5, r3, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldr r3, _081284C0 + lsls r2, r0, #2 + adds r2, r2, r0 + lsls r2, r2, #3 + adds r2, r2, r3 + movs r3, #0xe + ldrsh r0, [r2, r3] + adds r0, #7 + cmp r1, r0 + bne _081284C4 + lsls r1, r4, #0x10 + asrs r1, r1, #0x10 + movs r3, #0x10 + ldrsh r0, [r2, r3] + adds r0, #7 + cmp r1, r0 + bne _081284C4 + cmp r5, #0 + beq _081284C4 + movs r0, #0 + b _081284C6 + .align 2, 0 +_081284C0: .4byte 0x03005B60 +_081284C4: + movs r0, #1 +_081284C6: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_08128484 + + thumb_func_start sub_081284CC +sub_081284CC: @ 0x081284CC + push {r4, r5, r6, lr} + adds r5, r1, #0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + lsls r0, r6, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl MetatileBehavior_IsBlockDecoration + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0812850C + ldrb r0, [r5] + cmp r0, #0x21 + bne _081284FA + adds r0, r4, #0 + bl MetatileBehavior_IsSecretBaseHole + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08128508 +_081284FA: + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsNormal + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0812850C +_08128508: + movs r0, #1 + b _0812850E +_0812850C: + movs r0, #0 +_0812850E: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_081284CC + + thumb_func_start sub_08128514 +sub_08128514: @ 0x08128514 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x24 + str r1, [sp] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + ldr r1, _08128550 + lsls r0, r0, #2 + add r0, sl + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r2, [r0, #0x14] + str r2, [sp, #4] + ldrb r0, [r0, #0x12] + str r0, [sp, #8] + ldr r3, [sp] + ldrb r0, [r3, #0xc] + adds r2, r1, #0 + cmp r0, #4 + bls _08128546 + b _08128914 +_08128546: + lsls r0, r0, #2 + ldr r1, _08128554 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08128550: .4byte 0x03005B60 +_08128554: .4byte 0x08128558 +_08128558: @ jump table + .4byte _0812856C @ case 0 + .4byte _0812856C @ case 1 + .4byte _08128658 @ case 2 + .4byte _0812880C @ case 3 + .4byte _08128890 @ case 4 +_0812856C: + movs r6, #0 + ldr r0, [sp, #4] + cmp r6, r0 + blo _08128576 + b _08128914 +_08128576: + mov r1, sl + lsls r1, r1, #2 + str r1, [sp, #0x1c] +_0812857C: + mov r2, sl + lsls r0, r2, #2 + add r0, sl + lsls r0, r0, #3 + ldr r3, _08128654 + adds r0, r0, r3 + ldrh r0, [r0, #0xa] + subs r0, r0, r6 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + movs r7, #0 + adds r6, #1 + str r6, [sp, #0x14] + ldr r0, [sp, #8] + cmp r7, r0 + bhs _08128646 + mov r1, sb + lsls r1, r1, #0x10 + str r1, [sp, #0xc] + asrs r1, r1, #0x10 + mov sb, r1 +_081285A8: + ldr r0, [sp, #0x1c] + add r0, sl + lsls r0, r0, #3 + ldr r2, _08128654 + adds r0, r0, r2 + ldrh r0, [r0, #8] + adds r0, r0, r7 + lsls r0, r0, #0x10 + mov r8, r0 + asrs r6, r0, #0x10 + adds r0, r6, #0 + mov r1, sb + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r3, [sp, #4] + ldr r1, [sp, #0x14] + subs r0, r3, r1 + ldr r2, [sp, #8] + adds r1, r0, #0 + muls r1, r2, r1 + adds r1, r1, r7 + ldr r3, [sp] + ldr r0, [r3, #0x18] + lsls r1, r1, #1 + adds r1, r1, r0 + movs r2, #0x80 + lsls r2, r2, #2 + adds r0, r2, #0 + ldrh r1, [r1] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetBehaviorByMetatileId + movs r3, #0xf0 + lsls r3, r3, #8 + adds r1, r3, #0 + adds r5, r1, #0 + ands r5, r0 + adds r0, r4, #0 + ldr r1, [sp] + bl sub_081284CC + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0812860A + b _081288E4 +_0812860A: + mov r0, sl + adds r1, r6, #0 + mov r2, sb + adds r3, r5, #0 + bl sub_08128484 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0812861E + b _081288E4 +_0812861E: + mov r1, r8 + lsrs r0, r1, #0x10 + ldr r2, [sp, #0xc] + lsrs r1, r2, #0x10 + movs r2, #0 + bl GetEventObjectIdByXYZ + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + beq _0812863A + cmp r4, #0x10 + beq _0812863A + b _081288E4 +_0812863A: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r3, [sp, #8] + cmp r7, r3 + blo _081285A8 +_08128646: + ldr r1, [sp, #0x14] + lsls r0, r1, #0x18 + lsrs r6, r0, #0x18 + ldr r2, [sp, #4] + cmp r6, r2 + blo _0812857C + b _08128914 + .align 2, 0 +_08128654: .4byte 0x03005B60 +_08128658: + movs r6, #0 + mov r3, sl + lsls r3, r3, #2 + str r3, [sp, #0x1c] + ldr r0, [sp, #4] + subs r0, #1 + str r0, [sp, #0x18] + cmp r6, r0 + bge _08128744 + adds r0, r3, #0 + add r0, sl + lsls r0, r0, #3 + str r0, [sp, #0x10] +_08128672: + ldr r1, [sp, #0x10] + adds r0, r1, r2 + ldrh r0, [r0, #0xa] + subs r0, r0, r6 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + movs r7, #0 + adds r6, #1 + str r6, [sp, #0x14] + ldr r3, [sp, #8] + cmp r7, r3 + bhs _08128738 + lsls r0, r0, #0x10 + str r0, [sp, #0x20] +_08128690: + ldr r1, [sp, #0x10] + adds r0, r1, r2 + ldrh r0, [r0, #8] + adds r0, r0, r7 + lsls r0, r0, #0x10 + mov r8, r0 + asrs r6, r0, #0x10 + mov r2, sb + lsls r1, r2, #0x10 + adds r0, r6, #0 + asrs r1, r1, #0x10 + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r3, [sp, #4] + ldr r1, [sp, #0x14] + subs r0, r3, r1 + ldr r2, [sp, #8] + adds r1, r0, #0 + muls r1, r2, r1 + adds r1, r1, r7 + ldr r3, [sp] + ldr r0, [r3, #0x18] + lsls r1, r1, #1 + adds r1, r1, r0 + movs r2, #0x80 + lsls r2, r2, #2 + adds r0, r2, #0 + ldrh r1, [r1] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetBehaviorByMetatileId + movs r3, #0xf0 + lsls r3, r3, #8 + adds r1, r3, #0 + adds r5, r1, #0 + ands r5, r0 + adds r0, r4, #0 + bl MetatileBehavior_IsNormal + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081286FC + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0812845C + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081286FC + b _081288E4 +_081286FC: + mov r0, sl + adds r1, r6, #0 + ldr r3, [sp, #0x20] + asrs r2, r3, #0x10 + adds r3, r5, #0 + bl sub_08128484 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08128712 + b _081288E4 +_08128712: + mov r1, r8 + lsrs r0, r1, #0x10 + ldr r2, [sp, #0x20] + lsrs r1, r2, #0x10 + movs r2, #0 + bl GetEventObjectIdByXYZ + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + beq _0812872A + b _081288E4 +_0812872A: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r2, _08128808 + ldr r3, [sp, #8] + cmp r7, r3 + blo _08128690 +_08128738: + ldr r1, [sp, #0x14] + lsls r0, r1, #0x18 + lsrs r6, r0, #0x18 + ldr r3, [sp, #0x18] + cmp r6, r3 + blt _08128672 +_08128744: + ldr r0, [sp, #0x1c] + add r0, sl + lsls r0, r0, #3 + adds r0, r0, r2 + ldrh r0, [r0, #0xa] + ldr r1, [sp, #4] + subs r0, r0, r1 + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + movs r7, #0 + ldr r3, [sp, #8] + cmp r7, r3 + blo _08128764 + b _08128914 +_08128764: + lsls r0, r0, #0x10 + str r0, [sp, #0x20] +_08128768: + ldr r0, [sp, #0x1c] + add r0, sl + lsls r0, r0, #3 + ldr r1, _08128808 + adds r0, r0, r1 + ldrh r0, [r0, #8] + adds r0, r0, r7 + lsls r0, r0, #0x10 + mov r8, r0 + asrs r6, r0, #0x10 + mov r2, sb + lsls r1, r2, #0x10 + adds r0, r6, #0 + asrs r1, r1, #0x10 + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r3, [sp] + ldr r0, [r3, #0x18] + lsls r1, r7, #1 + adds r1, r1, r0 + movs r2, #0x80 + lsls r2, r2, #2 + adds r0, r2, #0 + ldrh r1, [r1] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetBehaviorByMetatileId + movs r3, #0xf0 + lsls r3, r3, #8 + adds r1, r3, #0 + adds r5, r1, #0 + ands r5, r0 + adds r0, r4, #0 + bl MetatileBehavior_IsNormal + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081287CA + adds r0, r4, #0 + bl MetatileBehavior_IsSecretBaseNorthWall + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081287CA + b _081288E4 +_081287CA: + mov r0, sl + adds r1, r6, #0 + ldr r3, [sp, #0x20] + asrs r2, r3, #0x10 + adds r3, r5, #0 + bl sub_08128484 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081287E0 + b _081288E4 +_081287E0: + mov r1, r8 + lsrs r0, r1, #0x10 + ldr r2, [sp, #0x20] + lsrs r1, r2, #0x10 + movs r2, #0 + bl GetEventObjectIdByXYZ + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + beq _081287FA + cmp r4, #0x10 + bne _081288E4 +_081287FA: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r3, [sp, #8] + cmp r7, r3 + blo _08128768 + b _08128914 + .align 2, 0 +_08128808: .4byte 0x03005B60 +_0812880C: + movs r6, #0 + ldr r0, [sp, #4] + cmp r6, r0 + blo _08128816 + b _08128914 +_08128816: + mov r1, sl + lsls r0, r1, #2 + add r0, sl + lsls r1, r0, #3 + ldr r2, _0812888C + adds r0, r1, r2 + ldrh r0, [r0, #0xa] + subs r0, r0, r6 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + movs r7, #0 + ldr r3, [sp, #8] + cmp r7, r3 + bhs _0812887C + adds r0, r2, #0 + adds r1, r1, r0 + mov r8, r1 + mov r1, sb + lsls r0, r1, #0x10 + asrs r5, r0, #0x10 +_08128840: + mov r2, r8 + ldrh r0, [r2, #8] + adds r0, r0, r7 + lsls r0, r0, #0x10 + asrs r4, r0, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsSecretBaseNorthWall + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081288E4 + adds r0, r4, #0 + adds r1, r5, #1 + bl MapGridGetMetatileIdAt + movs r1, #0xa3 + lsls r1, r1, #2 + cmp r0, r1 + beq _081288E4 + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r3, [sp, #8] + cmp r7, r3 + blo _08128840 +_0812887C: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, [sp, #4] + cmp r6, r0 + blo _08128816 + b _08128914 + .align 2, 0 +_0812888C: .4byte 0x03005B60 +_08128890: + mov r3, sl + lsls r1, r3, #2 + adds r0, r1, r3 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrh r0, [r0, #0xa] + mov sb, r0 + movs r7, #0 + str r1, [sp, #0x1c] + ldr r0, [sp, #8] + cmp r7, r0 + bhs _08128914 + adds r6, r2, #0 + mov r1, sb + lsls r1, r1, #0x10 + str r1, [sp, #0x20] +_081288B0: + ldr r0, [sp, #0x1c] + add r0, sl + lsls r0, r0, #3 + adds r0, r0, r6 + ldrh r0, [r0, #8] + adds r0, r0, r7 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + asrs r0, r0, #0x10 + mov r2, sb + lsls r1, r2, #0x10 + asrs r1, r1, #0x10 + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r3, [sp] + ldrb r0, [r3, #0xd] + cmp r0, #5 + bne _081288E8 +_081288D8: + adds r0, r4, #0 + bl MetatileBehavior_HoldsLargeDecoration + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081288F4 +_081288E4: + movs r0, #0 + b _08128916 +_081288E8: + adds r0, r4, #0 + bl MetatileBehavior_HoldsSmallDecoration + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081288D8 +_081288F4: + adds r0, r5, #0 + ldr r2, [sp, #0x20] + lsrs r1, r2, #0x10 + movs r2, #0 + bl GetEventObjectIdByXYZ + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + bne _081288E4 + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r3, [sp, #8] + cmp r7, r3 + blo _081288B0 +_08128914: + movs r0, #1 +_08128916: + add sp, #0x24 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08128514 + + thumb_func_start sub_08128928 +sub_08128928: @ 0x08128928 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _08128968 + ldrb r1, [r0] + ldr r0, _0812896C + ldr r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08128970 + adds r1, r1, r0 + adds r0, r5, #0 + bl sub_08128514 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08128980 + ldr r4, _08128974 + ldr r1, _08128978 + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r2, _0812897C + adds r0, r5, #0 + adds r1, r4, #0 + bl DisplayItemMessageOnField + b _0812899A + .align 2, 0 +_08128968: .4byte 0x02039E3E +_0812896C: .4byte 0x02039E18 +_08128970: .4byte 0x08580CD0 +_08128974: .4byte 0x02021C7C +_08128978: .4byte 0x085CA745 +_0812897C: .4byte 0x081289AD +_08128980: + movs r0, #0x20 + bl PlaySE + ldr r4, _081289A0 + ldr r1, _081289A4 + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r2, _081289A8 + adds r0, r5, #0 + adds r1, r4, #0 + bl DisplayItemMessageOnField +_0812899A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081289A0: .4byte 0x02021C7C +_081289A4: .4byte 0x085CA750 +_081289A8: .4byte 0x08129001 + thumb_func_end sub_08128928 + + thumb_func_start sub_081289AC +sub_081289AC: @ 0x081289AC + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl DisplayYesNoMenuDefaultYes + ldr r1, _081289C8 + adds r0, r4, #0 + bl DoYesNoFuncWithChoice + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081289C8: .4byte 0x085821A8 + thumb_func_end sub_081289AC + + thumb_func_start sub_081289CC +sub_081289CC: @ 0x081289CC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #0 + movs r1, #0 + bl DrawDialogueFrame + adds r0, r4, #0 + bl sub_08128A8C + ldr r2, _08128A14 + ldr r0, _08128A18 + ldrb r1, [r0] + ldr r0, _08128A1C + ldr r0, [r0] + adds r0, r0, r1 + ldrb r3, [r0] + lsls r0, r3, #3 + subs r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #0xc] + cmp r0, #4 + beq _08128A24 + ldr r0, _08128A20 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + ldrh r1, [r1, #0xa] + adds r2, r3, #0 + bl ShowDecorationOnMap + b _08128A44 + .align 2, 0 +_08128A14: .4byte 0x08580CD0 +_08128A18: .4byte 0x02039E3E +_08128A1C: .4byte 0x02039E18 +_08128A20: .4byte 0x03005B60 +_08128A24: + ldr r2, _08128A70 + ldr r0, _08128A74 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + subs r0, #7 + strh r0, [r2] + ldr r2, _08128A78 + ldrh r0, [r1, #0xa] + subs r0, #7 + strh r0, [r2] + ldr r0, _08128A7C + bl ScriptContext1_SetupScript +_08128A44: + ldr r2, _08128A80 + ldr r0, _08128A84 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x22] + adds r1, #2 + strh r1, [r0, #0x22] + ldr r0, _08128A88 + ldrb r0, [r0, #0x14] + cmp r0, #0x56 + bne _08128A64 + bl TV_PutSecretBaseVisitOnTheAir +_08128A64: + adds r0, r4, #0 + bl sub_08128B9C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08128A70: .4byte 0x0203A700 +_08128A74: .4byte 0x03005B60 +_08128A78: .4byte 0x0203A702 +_08128A7C: .4byte 0x08245DCE +_08128A80: .4byte 0x020205AC +_08128A84: .4byte 0x0203A704 +_08128A88: .4byte 0x02036FB8 + thumb_func_end sub_081289CC + + thumb_func_start sub_08128A8C +sub_08128A8C: @ 0x08128A8C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r3, #0 + ldr r0, _08128AC8 + ldrb r1, [r0, #8] + adds r5, r0, #0 + cmp r3, r1 + bhs _08128AB2 + ldr r4, [r5] +_08128AA0: + adds r2, r4, r3 + ldrb r0, [r2] + cmp r0, #0 + beq _08128AD0 + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, r1 + blo _08128AA0 +_08128AB2: + ldrb r0, [r5, #9] + cmp r0, #0 + bne _08128B1C + movs r3, #0 + ldr r0, _08128ACC + ldrb r1, [r0] + adds r2, r0, #0 + cmp r1, #0 + bne _08128B08 + b _08128B28 + .align 2, 0 +_08128AC8: .4byte 0x02039E48 +_08128ACC: .4byte 0x02039E1E +_08128AD0: + ldr r0, _08128AFC + ldrb r1, [r0] + ldr r0, _08128B00 + ldr r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r2] + ldr r2, [r5, #4] + adds r2, r2, r3 + ldr r0, _08128B04 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrb r0, [r1, #8] + subs r0, #7 + lsls r0, r0, #4 + ldrb r1, [r1, #0xa] + subs r1, #7 + adds r0, r0, r1 + strb r0, [r2] + b _08128AB2 + .align 2, 0 +_08128AFC: .4byte 0x02039E3E +_08128B00: .4byte 0x02039E18 +_08128B04: .4byte 0x03005B60 +_08128B08: + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0xf + bhi _08128B56 + adds r1, r3, r2 + ldrb r0, [r1] + cmp r0, #0 + bne _08128B08 + b _08128B4E +_08128B1C: + movs r3, #0 + ldr r0, _08128B34 + ldrb r1, [r0] + adds r2, r0, #0 + cmp r1, #0 + bne _08128B3C +_08128B28: + ldr r0, _08128B38 + ldrb r0, [r0] + adds r0, #1 + strb r0, [r2] + b _08128B56 + .align 2, 0 +_08128B34: .4byte 0x02039E2E +_08128B38: .4byte 0x02039E3E +_08128B3C: + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0xb + bhi _08128B56 + adds r1, r3, r2 + ldrb r0, [r1] + cmp r0, #0 + bne _08128B3C +_08128B4E: + ldr r0, _08128B5C + ldrb r0, [r0] + adds r0, #1 + strb r0, [r1] +_08128B56: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08128B5C: .4byte 0x02039E3E + thumb_func_end sub_08128A8C + + thumb_func_start sub_08128B60 +sub_08128B60: @ 0x08128B60 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl DisplayYesNoMenuDefaultYes + ldr r1, _08128B7C + adds r0, r4, #0 + bl DoYesNoFuncWithChoice + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08128B7C: .4byte 0x085821B0 + thumb_func_end sub_08128B60 + + thumb_func_start sub_08128B80 +sub_08128B80: @ 0x08128B80 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + movs r1, #0 + bl DrawDialogueFrame + adds r0, r4, #0 + bl sub_08128B9C + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08128B80 + + thumb_func_start sub_08128B9C +sub_08128B9C: @ 0x08128B9C + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + movs r1, #0 + bl FadeScreen + ldr r1, _08128BC4 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #0xc] + ldr r1, _08128BC8 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08128BC4: .4byte 0x03005B60 +_08128BC8: .4byte 0x08128BCD + thumb_func_end sub_08128B9C + + thumb_func_start c1_overworld_prev_quest +c1_overworld_prev_quest: @ 0x08128BCC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08128BEC + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r5, r0, r1 + movs r1, #0xc + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _08128BF0 + cmp r0, #1 + beq _08128C10 + b _08128C2C + .align 2, 0 +_08128BEC: .4byte 0x03005B60 +_08128BF0: + bl ScriptContext2_Enable + ldr r0, _08128C0C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08128C2C + adds r0, r4, #0 + bl sub_08127AB4 + movs r0, #1 + strh r0, [r5, #0xc] + b _08128C2C + .align 2, 0 +_08128C0C: .4byte 0x02037C74 +_08128C10: + bl sub_0812A3D4 + ldr r0, _08128C34 + bl FreeSpritePaletteByTag + ldr r1, _08128C38 + ldr r0, _08128C3C + str r0, [r1] + ldr r0, _08128C40 + bl SetMainCallback2 + adds r0, r4, #0 + bl DestroyTask +_08128C2C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08128C34: .4byte 0x00000BE5 +_08128C38: .4byte 0x03005B0C +_08128C3C: .4byte 0x08128CB5 +_08128C40: .4byte 0x08085A31 + thumb_func_end c1_overworld_prev_quest + + thumb_func_start sub_08128C44 +sub_08128C44: @ 0x08128C44 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r5, r1, #3 + ldr r6, _08128C68 + adds r4, r5, r6 + movs r1, #4 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _08128C7C + cmp r0, #1 + bgt _08128C6C + cmp r0, #0 + beq _08128C76 + b _08128CAA + .align 2, 0 +_08128C68: .4byte 0x03005B68 +_08128C6C: + cmp r0, #2 + beq _08128C88 + cmp r0, #3 + beq _08128C94 + b _08128CAA +_08128C76: + bl HideSecretBaseDecorationSprites + b _08128C8C +_08128C7C: + ldr r0, _08128C84 + bl ScriptContext1_SetupScript + b _08128C8C + .align 2, 0 +_08128C84: .4byte 0x08245DBB +_08128C88: + bl ScriptContext2_Enable +_08128C8C: + ldrh r0, [r4, #4] + adds r0, #1 + strh r0, [r4, #4] + b _08128CAA +_08128C94: + bl IsWeatherNotFadingIn + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08128CAA + adds r0, r6, #0 + subs r0, #8 + adds r0, r5, r0 + ldr r1, _08128CB0 + str r1, [r0] +_08128CAA: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08128CB0: .4byte 0x081275F9 + thumb_func_end sub_08128C44 + + thumb_func_start sub_08128CB4 +sub_08128CB4: @ 0x08128CB4 + push {r4, lr} + bl ScriptContext2_Enable + bl pal_fill_black + ldr r0, _08128CE8 + movs r1, #8 + bl CreateTask + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl sub_08127530 + ldr r1, _08128CEC + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #0xc] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08128CE8: .4byte 0x08128C45 +_08128CEC: .4byte 0x03005B60 + thumb_func_end sub_08128CB4 + + thumb_func_start sub_08128CF0 +sub_08128CF0: @ 0x08128CF0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _08128D20 + adds r2, r1, r0 + ldr r0, _08128D24 + ldrb r1, [r0] + adds r3, r0, #0 + cmp r1, #1 + bne _08128D28 + movs r1, #2 + ldrsh r0, [r2, r1] + movs r4, #0xc + ldrsh r1, [r2, r4] + subs r0, r0, r1 + subs r0, #6 + cmp r0, #0 + bge _08128D28 + ldrh r0, [r2, #2] + adds r0, #1 + b _08128D42 + .align 2, 0 +_08128D20: .4byte 0x03005B68 +_08128D24: .4byte 0x0203A706 +_08128D28: + ldrb r0, [r3] + cmp r0, #2 + bne _08128D4C + movs r0, #2 + ldrsh r1, [r2, r0] + subs r1, #7 + ldr r0, _08128D48 + ldr r0, [r0] + ldr r0, [r0, #4] + cmp r1, r0 + blt _08128D4C + ldrh r0, [r2, #2] + subs r0, #1 +_08128D42: + strh r0, [r2, #2] + movs r0, #0 + b _08128D8E + .align 2, 0 +_08128D48: .4byte 0x02036FB8 +_08128D4C: + ldrb r0, [r3] + cmp r0, #3 + bne _08128D62 + movs r1, #0 + ldrsh r0, [r2, r1] + subs r0, #7 + cmp r0, #0 + bge _08128D62 + ldrh r0, [r2] + adds r0, #1 + b _08128D82 +_08128D62: + ldrb r0, [r3] + cmp r0, #4 + bne _08128D8C + movs r3, #0 + ldrsh r1, [r2, r3] + movs r4, #0xa + ldrsh r0, [r2, r4] + adds r1, r1, r0 + subs r1, #8 + ldr r0, _08128D88 + ldr r0, [r0] + ldr r0, [r0] + cmp r1, r0 + blt _08128D8C + ldrh r0, [r2] + subs r0, #1 +_08128D82: + strh r0, [r2] + movs r0, #0 + b _08128D8E + .align 2, 0 +_08128D88: .4byte 0x02036FB8 +_08128D8C: + movs r0, #1 +_08128D8E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_08128CF0 + + thumb_func_start sub_08128D94 +sub_08128D94: @ 0x08128D94 + push {lr} + ldr r0, _08128DB4 + ldrh r0, [r0, #0x2c] + movs r1, #0xf0 + ands r1, r0 + cmp r1, #0x40 + beq _08128DB8 + cmp r1, #0x80 + beq _08128DB8 + cmp r1, #0x20 + beq _08128DB8 + cmp r1, #0x10 + beq _08128DB8 + movs r0, #0 + b _08128DBA + .align 2, 0 +_08128DB4: .4byte 0x03002360 +_08128DB8: + movs r0, #1 +_08128DBA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08128D94 + + thumb_func_start sub_08128DC0 +sub_08128DC0: @ 0x08128DC0 + push {r4, lr} + ldr r1, _08128DEC + movs r0, #0 + strb r0, [r1] + ldr r4, _08128DF0 + ldr r3, _08128DF4 + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r2, #0 + strh r2, [r0, #0x32] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + strh r2, [r0, #0x34] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08128DEC: .4byte 0x0203A706 +_08128DF0: .4byte 0x020205AC +_08128DF4: .4byte 0x0203A704 + thumb_func_end sub_08128DC0 + + thumb_func_start sub_08128DF8 +sub_08128DF8: @ 0x08128DF8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + mov r8, r2 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _08128E38 + adds r4, r0, r1 + ldr r5, _08128E3C + ldr r3, _08128E40 + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0x36 + ldrsh r6, [r0, r1] + cmp r6, #0 + beq _08128E26 + b _08128F46 +_08128E26: + movs r1, #0x14 + ldrsh r0, [r4, r1] + cmp r0, #1 + bne _08128E48 + ldr r0, _08128E44 + movs r3, #0x18 + ldrsh r1, [r4, r3] + lsls r1, r1, #3 + b _08128E56 + .align 2, 0 +_08128E38: .4byte 0x03005B68 +_08128E3C: .4byte 0x020205AC +_08128E40: .4byte 0x0203A704 +_08128E44: .4byte 0x085821B8 +_08128E48: + cmp r0, #2 + bne _08128E68 + ldr r0, _08128E64 + movs r3, #0x18 + ldrsh r1, [r4, r3] + lsls r1, r1, #3 + adds r0, #4 +_08128E56: + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _08128F9A + .align 2, 0 +_08128E64: .4byte 0x085821B8 +_08128E68: + ldr r2, _08128FA4 + ldrh r1, [r2, #0x2c] + movs r7, #0xf0 + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0x40 + bne _08128E9C + ldr r1, _08128FA8 + movs r0, #1 + strb r0, [r1] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r6, [r0, #0x32] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _08128FAC + strh r1, [r0, #0x34] + ldrh r0, [r4, #2] + subs r0, #1 + strh r0, [r4, #2] +_08128E9C: + ldrh r1, [r2, #0x2c] + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0x80 + bne _08128ECC + ldr r1, _08128FA8 + movs r0, #2 + strb r0, [r1] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r6, [r0, #0x32] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #2 + strh r1, [r0, #0x34] + ldrh r0, [r4, #2] + adds r0, #1 + strh r0, [r4, #2] +_08128ECC: + ldrh r1, [r2, #0x2c] + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0x20 + bne _08128EFC + ldr r1, _08128FA8 + movs r0, #3 + strb r0, [r1] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _08128FAC + strh r1, [r0, #0x32] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r6, [r0, #0x34] + ldrh r0, [r4] + subs r0, #1 + strh r0, [r4] +_08128EFC: + ldrh r1, [r2, #0x2c] + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0x10 + bne _08128F2C + ldr r1, _08128FA8 + movs r0, #4 + strb r0, [r1] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #2 + strh r1, [r0, #0x32] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r6, [r0, #0x34] + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] +_08128F2C: + bl sub_08128D94 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08128F42 + mov r0, r8 + bl sub_08128CF0 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08128F46 +_08128F42: + bl sub_08128DC0 +_08128F46: + ldr r0, _08128FA8 + ldrb r0, [r0] + cmp r0, #0 + beq _08128F74 + ldr r3, _08128FB0 + ldr r2, _08128FB4 + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r0, #0x36] + adds r1, #1 + strh r1, [r0, #0x36] + ldrb r0, [r2] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrh r2, [r1, #0x36] + movs r0, #7 + ands r0, r2 + strh r0, [r1, #0x36] +_08128F74: + movs r1, #0x14 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08128F9A + ldr r3, _08128FA4 + ldrh r1, [r3, #0x2e] + movs r2, #1 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _08128F8C + strh r2, [r4, #0x14] +_08128F8C: + ldrh r1, [r3, #0x2e] + movs r2, #2 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _08128F9A + strh r2, [r4, #0x14] +_08128F9A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08128FA4: .4byte 0x03002360 +_08128FA8: .4byte 0x0203A706 +_08128FAC: .4byte 0x0000FFFE +_08128FB0: .4byte 0x020205AC +_08128FB4: .4byte 0x0203A704 + thumb_func_end sub_08128DF8 + + thumb_func_start sub_08128FB8 +sub_08128FB8: @ 0x08128FB8 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + movs r1, #1 + bl DrawDialogueFrame + ldr r2, _08128FF0 + ldr r0, _08128FF4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r2, #0 + strh r2, [r0, #0x3c] + ldr r1, _08128FF8 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r2, [r0, #0x1c] + ldr r1, _08128FFC + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08128FF0: .4byte 0x020205AC +_08128FF4: .4byte 0x0203A704 +_08128FF8: .4byte 0x03005B60 +_08128FFC: .4byte 0x08128DF9 + thumb_func_end sub_08128FB8 + + thumb_func_start sub_08129000 +sub_08129000: @ 0x08129000 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _08129024 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0812901A + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08129020 +_0812901A: + adds r0, r2, #0 + bl sub_08128FB8 +_08129020: + pop {r0} + bx r0 + .align 2, 0 +_08129024: .4byte 0x03002360 + thumb_func_end sub_08129000 + + thumb_func_start sub_08129028 +sub_08129028: @ 0x08129028 + push {lr} + sub sp, #4 + adds r1, r0, #0 + mov r2, sp + movs r0, #0 + strh r0, [r2] + ldr r2, _08129044 + mov r0, sp + bl CpuSet + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_08129044: .4byte 0x01000452 + thumb_func_end sub_08129028 + + thumb_func_start sub_08129048 +sub_08129048: @ 0x08129048 + push {lr} + adds r2, r0, #0 + lsls r1, r1, #0x10 + ldr r0, _08129064 + ldr r0, [r0] + lsrs r1, r1, #0xb + ldr r0, [r0, #8] + adds r0, r0, r1 + adds r1, r2, #0 + movs r2, #8 + bl CpuFastSet + pop {r0} + bx r0 + .align 2, 0 +_08129064: .4byte 0x083B8094 + thumb_func_end sub_08129048 + + thumb_func_start sub_08129068 +sub_08129068: @ 0x08129068 + push {r4, r5, r6, r7, lr} + sub sp, #0x20 + adds r7, r0, #0 + lsls r1, r1, #0x10 + lsrs r2, r1, #0x10 + lsrs r4, r1, #0x1a + adds r5, r4, #0 + cmp r2, #0 + beq _0812907E + ldr r0, _081290A0 + ands r2, r0 +_0812907E: + ldr r0, _081290A4 + ldr r0, [r0] + lsls r1, r2, #5 + ldr r0, [r0, #4] + adds r0, r0, r1 + mov r1, sp + movs r2, #8 + bl CpuFastSet + cmp r4, #1 + beq _081290BE + cmp r4, #1 + bgt _081290A8 + cmp r4, #0 + beq _081290B2 + b _0812917A + .align 2, 0 +_081290A0: .4byte 0x000003FF +_081290A4: .4byte 0x083B8094 +_081290A8: + cmp r5, #2 + beq _0812911E + cmp r5, #3 + beq _08129156 + b _0812917A +_081290B2: + mov r0, sp + adds r1, r7, #0 + movs r2, #8 + bl CpuFastSet + b _0812917A +_081290BE: + movs r5, #0 + movs r6, #0xf +_081290C2: + lsls r4, r5, #2 + adds r4, r4, r7 + adds r5, #1 + lsls r3, r5, #2 + subs r0, r3, #1 + add r0, sp + ldrb r2, [r0] + lsrs r1, r2, #4 + adds r0, r6, #0 + ands r0, r2 + lsls r0, r0, #4 + adds r1, r1, r0 + strb r1, [r4] + subs r0, r3, #2 + add r0, sp + ldrb r2, [r0] + lsrs r1, r2, #4 + adds r0, r6, #0 + ands r0, r2 + lsls r0, r0, #4 + adds r1, r1, r0 + strb r1, [r4, #1] + subs r0, r3, #3 + add r0, sp + ldrb r2, [r0] + lsrs r1, r2, #4 + adds r0, r6, #0 + ands r0, r2 + lsls r0, r0, #4 + adds r1, r1, r0 + strb r1, [r4, #2] + subs r3, #4 + mov r1, sp + adds r0, r1, r3 + ldrb r2, [r0] + lsrs r1, r2, #4 + adds r0, r6, #0 + ands r0, r2 + lsls r0, r0, #4 + adds r1, r1, r0 + strb r1, [r4, #3] + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + cmp r5, #7 + bls _081290C2 + b _0812917A +_0812911E: + movs r5, #0 + movs r3, #7 +_08129122: + lsls r2, r5, #2 + adds r2, r2, r7 + subs r1, r3, r5 + lsls r1, r1, #2 + mov r4, sp + adds r0, r4, r1 + ldrb r0, [r0] + strb r0, [r2] + adds r0, r1, #1 + add r0, sp + ldrb r0, [r0] + strb r0, [r2, #1] + adds r0, r1, #2 + add r0, sp + ldrb r0, [r0] + strb r0, [r2, #2] + adds r1, #3 + adds r0, r4, r1 + ldrb r0, [r0] + strb r0, [r2, #3] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #7 + bls _08129122 + b _0812917A +_08129156: + movs r5, #0 + movs r4, #0x1f + movs r6, #0xf +_0812915C: + 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, r0, #4 + adds r1, r1, r0 + strb r1, [r3] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0x1f + bls _0812915C +_0812917A: + add sp, #0x20 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08129068 + + thumb_func_start sub_08129184 +sub_08129184: @ 0x08129184 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 +_0812918A: + lsls r0, r4, #5 + adds r0, #0x84 + adds r0, r5, r0 + lsls r2, r4, #1 + adds r1, r5, #4 + adds r1, r1, r2 + ldrh r1, [r1] + bl sub_08129068 + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x3f + bls _0812918A + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_08129184 + + thumb_func_start sub_081291AC +sub_081291AC: @ 0x081291AC + lsls r0, r0, #0x10 + ldr r1, _081291C0 + ldr r1, [r1] + ldr r1, [r1, #0xc] + lsrs r0, r0, #0xf + adds r0, r0, r1 + ldrh r1, [r0] + ldr r0, _081291C4 + ands r0, r1 + bx lr + .align 2, 0 +_081291C0: .4byte 0x083B8098 +_081291C4: .4byte 0x00000FFF + thumb_func_end sub_081291AC + + thumb_func_start sub_081291C8 +sub_081291C8: @ 0x081291C8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + ldr r0, [r0] + ldrb r0, [r0, #0xd] + movs r6, #0 + ldr r1, _08129238 + lsls r5, r0, #4 + adds r0, r5, r1 + ldrb r0, [r0, #0xc] + cmp r6, r0 + bhs _0812922C + adds r7, r1, #0 +_081291E4: + mov r4, r8 + ldm r4!, {r1} + adds r0, r7, #4 + adds r0, r5, r0 + ldr r0, [r0] + adds r0, r0, r6 + ldrb r0, [r0] + ldr r1, [r1, #0x18] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + adds r1, r7, #0 + adds r1, #8 + adds r1, r5, r1 + ldr r1, [r1] + adds r1, r1, r6 + lsls r0, r0, #3 + ldrb r1, [r1] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl sub_081291AC + adds r2, r5, r7 + ldr r1, [r2] + adds r1, r1, r6 + ldrb r1, [r1] + lsls r1, r1, #1 + adds r4, r4, r1 + strh r0, [r4] + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldrb r2, [r2, #0xc] + cmp r6, r2 + blo _081291E4 +_0812922C: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08129238: .4byte 0x08582094 + thumb_func_end sub_081291C8 + + thumb_func_start SetDecorSelectionBoxOamAttributes +SetDecorSelectionBoxOamAttributes: @ 0x0812923C + push {r4, r5, lr} + lsls r0, r0, #0x18 + ldr r3, _081292A0 + movs r1, #0 + strb r1, [r3] + ldrb r2, [r3, #1] + subs r1, #4 + ands r1, r2 + movs r5, #0xd + rsbs r5, r5, #0 + ands r1, r5 + movs r2, #0x11 + rsbs r2, r2, #0 + ands r1, r2 + subs r2, #0x10 + ands r1, r2 + strb r1, [r3, #1] + ldr r1, _081292A4 + lsrs r0, r0, #0x16 + adds r0, r0, r1 + ldrb r1, [r0] + movs r4, #0x3f + lsls r1, r1, #6 + strb r1, [r3, #1] + ldrh r2, [r3, #2] + ldr r1, _081292A8 + ands r1, r2 + strh r1, [r3, #2] + ldrb r2, [r3, #3] + movs r1, #0x3f + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r3, #3] + ldrb r0, [r0, #1] + lsls r0, r0, #6 + ands r4, r1 + orrs r4, r0 + strb r4, [r3, #3] + ldrh r1, [r3, #4] + ldr r0, _081292AC + ands r0, r1 + strh r0, [r3, #4] + ldrb r0, [r3, #5] + ands r5, r0 + movs r0, #0xf + ands r5, r0 + strb r5, [r3, #5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081292A0: .4byte 0x0203A708 +_081292A4: .4byte 0x08582134 +_081292A8: .4byte 0xFFFFFE00 +_081292AC: .4byte 0xFFFFFC00 + thumb_func_end SetDecorSelectionBoxOamAttributes + + thumb_func_start sub_081292B0 +sub_081292B0: @ 0x081292B0 + 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, _081292C4 + str r1, [r0, #0x1c] + bx lr + .align 2, 0 +_081292C4: .4byte 0x081292C9 + thumb_func_end sub_081292B0 + + thumb_func_start sub_081292C8 +sub_081292C8: @ 0x081292C8 + push {lr} + adds r2, r0, #0 + movs r1, #0x3c + ldrsh r0, [r2, r1] + cmp r0, #0 + bne _08129302 + movs r1, #0x3a + ldrsh r0, [r2, r1] + cmp r0, #0xe + bgt _081292EA + adds r3, r2, #0 + adds r3, #0x3e + ldrb r1, [r3] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + b _081292F4 +_081292EA: + adds r3, r2, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r1, #4 + orrs r0, r1 +_081292F4: + strb r0, [r3] + ldrh r0, [r2, #0x3a] + adds r0, #1 + movs r1, #0x1f + ands r0, r1 + strh r0, [r2, #0x3a] + b _0812930E +_08129302: + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_0812930E: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081292C8 + + thumb_func_start gpu_pal_decompress_alloc_tag_and_upload +gpu_pal_decompress_alloc_tag_and_upload: @ 0x08129314 + push {r4, r5, lr} + sub sp, #4 + adds r5, r0, #0 + lsls r4, r1, #0x18 + lsrs r4, r4, #0x18 + bl sub_08129028 + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + ldr r1, _08129380 + adds r1, r0, r1 + str r1, [r5] + ldrb r0, [r1, #0xc] + cmp r0, #4 + beq _08129398 + ldr r0, _08129384 + bl FreeSpritePaletteByTag + adds r0, r5, #0 + bl sub_081291C8 + ldr r0, [r5] + ldrb r0, [r0, #0xd] + bl SetDecorSelectionBoxOamAttributes + adds r0, r5, #0 + bl sub_08129184 + ldr r1, _08129388 + adds r0, r5, r1 + ldr r1, _0812938C + ldr r2, [r1] + ldr r1, [r5] + ldr r1, [r1, #0x18] + ldrh r1, [r1] + ldr r2, [r2, #0xc] + lsls r1, r1, #4 + adds r1, r1, r2 + ldrh r1, [r1, #0xe] + lsrs r1, r1, #0xc + bl sub_08129048 + ldr r0, _08129390 + bl LoadSpritePalette + ldr r0, _08129394 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl CreateSprite + b _081293AA + .align 2, 0 +_08129380: .4byte 0x08580CD0 +_08129384: .4byte 0x00000BE5 +_08129388: .4byte 0x00000884 +_0812938C: .4byte 0x083B8098 +_08129390: .4byte 0x085821A0 +_08129394: .4byte 0x08582170 +_08129398: + ldr r0, [r1, #0x18] + ldrh r0, [r0] + ldr r1, _081293B8 + movs r2, #1 + str r2, [sp] + movs r2, #0 + movs r3, #0 + bl AddPseudoEventObject +_081293AA: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081293B8: .4byte 0x08007141 + thumb_func_end gpu_pal_decompress_alloc_tag_and_upload + + thumb_func_start AddDecorationIconObjectFromIconTable +AddDecorationIconObjectFromIconTable: @ 0x081293BC + push {r4, r5, r6, r7, lr} + sub sp, #0x10 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + bl AllocItemIconTemporaryBuffers + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08129474 + adds r0, r5, #0 + movs r1, #0 + bl GetDecorationIconPicOrPalette + ldr r4, _08129460 + ldr r1, [r4] + bl LZDecompressVram + ldr r0, [r4] + ldr r4, _08129464 + ldr r1, [r4] + bl CopyItemIconPicTo4x4Buffer + ldr r0, [r4] + str r0, [sp] + ldr r4, _08129468 + ldr r0, [sp, #4] + ands r0, r4 + movs r1, #0x80 + lsls r1, r1, #2 + orrs r0, r1 + lsls r2, r7, #0x10 + ldr r1, _0812946C + ands r0, r1 + orrs r0, r2 + str r0, [sp, #4] + mov r0, sp + bl LoadSpriteSheet + adds r0, r5, #0 + movs r1, #1 + bl GetDecorationIconPicOrPalette + str r0, [sp, #8] + add r0, sp, #8 + ldr r1, [r0, #4] + ands r1, r4 + orrs r1, r6 + str r1, [r0, #4] + bl LoadCompressedSpritePalette + movs r0, #0x18 + bl Alloc + adds r5, r0, #0 + adds r1, r5, #0 + ldr r0, _08129470 + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + strh r7, [r5] + strh r6, [r5, #2] + adds r0, r5, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl CreateSprite + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl FreeItemIconTemporaryBuffers + adds r0, r5, #0 + bl Free + adds r0, r4, #0 + b _08129476 + .align 2, 0 +_08129460: .4byte 0x0203CB88 +_08129464: .4byte 0x0203CB8C +_08129468: .4byte 0xFFFF0000 +_0812946C: .4byte 0x0000FFFF +_08129470: .4byte 0x085E08AC +_08129474: + movs r0, #0x40 +_08129476: + add sp, #0x10 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end AddDecorationIconObjectFromIconTable + + thumb_func_start GetDecorationIconPicOrPalette +GetDecorationIconPicOrPalette: @ 0x08129480 + push {lr} + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r0, r1, #0x18 + cmp r3, #0x78 + bls _08129490 + movs r3, #0 +_08129490: + ldr r2, _081294A0 + lsls r0, r0, #2 + lsls r1, r3, #3 + adds r0, r0, r1 + adds r0, r0, r2 + ldr r0, [r0] + pop {r1} + bx r1 + .align 2, 0 +_081294A0: .4byte 0x08581ACC + thumb_func_end GetDecorationIconPicOrPalette + + thumb_func_start AddDecorationIconObjectFromEventObject +AddDecorationIconObjectFromEventObject: @ 0x081294A4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x14 + adds r4, r2, #0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r6, _08129570 + adds r0, r6, #0 + bl sub_08129028 + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + ldr r1, _08129574 + adds r1, r0, r1 + str r1, [r6] + ldrb r0, [r1, #0xc] + cmp r0, #4 + beq _0812958C + adds r0, r6, #0 + bl sub_081291C8 + ldr r0, [r6] + ldrb r0, [r0, #0xd] + bl SetDecorSelectionBoxOamAttributes + adds r0, r6, #0 + bl sub_08129184 + ldr r0, _08129578 + adds r5, r6, r0 + ldr r0, _0812957C + ldr r1, [r0] + ldr r0, [r6] + ldr r0, [r0, #0x18] + ldrh r0, [r0] + ldr r1, [r1, #0xc] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrh r1, [r0, #0xe] + lsrs r1, r1, #0xc + adds r0, r5, #0 + bl sub_08129048 + adds r0, r6, #0 + adds r0, #0x84 + str r0, [sp, #4] + ldr r1, _08129580 + ldr r0, [r6] + ldrb r0, [r0, #0xd] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #0x15 + ldr r4, _08129584 + mov r2, r8 + lsls r1, r2, #0x10 + lsrs r0, r0, #0x10 + orrs r0, r1 + str r0, [sp, #8] + add r0, sp, #4 + bl LoadSpriteSheet + str r5, [sp, #0xc] + add r0, sp, #0xc + ldr r1, [r0, #4] + ands r1, r4 + orrs r1, r7 + str r1, [r0, #4] + bl LoadSpritePalette + movs r0, #0x18 + bl Alloc + adds r4, r0, #0 + adds r1, r4, #0 + ldr r0, _08129588 + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} + mov r3, r8 + strh r3, [r4] + strh r7, [r4, #2] + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r4, #0 + bl Free + b _081295A2 + .align 2, 0 +_08129570: .4byte 0x02039E5C +_08129574: .4byte 0x08580CD0 +_08129578: .4byte 0x00000884 +_0812957C: .4byte 0x083B8098 +_08129580: .4byte 0x085821D8 +_08129584: .4byte 0xFFFF0000 +_08129588: .4byte 0x08582188 +_0812958C: + ldr r0, [r1, #0x18] + ldrh r0, [r0] + ldr r1, _081295B0 + movs r2, #1 + str r2, [sp] + movs r2, #0 + movs r3, #0 + bl AddPseudoEventObject + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_081295A2: + adds r0, r5, #0 + add sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081295B0: .4byte 0x08007141 + thumb_func_end AddDecorationIconObjectFromEventObject + + thumb_func_start AddDecorationIconObject +AddDecorationIconObject: @ 0x081295B4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r4, [sp, #0x24] + ldr r5, [sp, #0x28] + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + mov ip, r6 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r8, r1 + mov sb, r8 + lsls r2, r2, #0x10 + lsrs r7, r2, #0x10 + mov sl, r7 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r3, [sp] + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r3, r4, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + adds r2, r5, #0 + cmp r6, #0x78 + bls _0812961C + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl AddDecorationIconObjectFromIconTable + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x40 + beq _0812967E + ldr r2, _08129618 + lsls r3, r4, #4 + adds r1, r3, r4 + lsls r1, r1, #2 + adds r1, r1, r2 + mov r5, r8 + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + adds r0, #4 + strh r0, [r1, #0x24] + lsls r0, r7, #0x10 + b _0812969A + .align 2, 0 +_08129618: .4byte 0x020205AC +_0812961C: + ldr r0, _08129660 + lsls r1, r6, #3 + adds r1, r1, r0 + ldr r0, [r1] + cmp r0, #0 + bne _0812966C + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl AddDecorationIconObjectFromEventObject + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x40 + beq _0812967E + ldr r1, _08129664 + lsls r2, r4, #4 + adds r0, r2, r4 + lsls r0, r0, #2 + adds r5, r0, r1 + mov r0, r8 + strh r0, [r5, #0x24] + adds r0, r6, #0 + subs r0, #0x2a + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _08129668 + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + subs r0, #4 + strh r0, [r5, #0x26] + b _081296A4 + .align 2, 0 +_08129660: .4byte 0x08581ACC +_08129664: .4byte 0x020205AC +_08129668: + strh r7, [r5, #0x26] + b _081296A4 +_0812966C: + adds r0, r3, #0 + adds r1, r2, #0 + mov r2, ip + bl AddDecorationIconObjectFromIconTable + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x40 + bne _08129682 +_0812967E: + movs r0, #0x40 + b _081296C0 +_08129682: + ldr r2, _081296D0 + lsls r3, r4, #4 + adds r1, r3, r4 + lsls r1, r1, #2 + adds r1, r1, r2 + mov r5, sb + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + adds r0, #4 + strh r0, [r1, #0x24] + mov r5, sl + lsls r0, r5, #0x10 +_0812969A: + asrs r0, r0, #0x10 + adds r0, #4 + strh r0, [r1, #0x26] + adds r1, r2, #0 + adds r2, r3, #0 +_081296A4: + adds r2, r2, r4 + lsls r2, r2, #2 + adds r2, r2, r1 + movs r0, #3 + ldr r1, [sp] + ands r1, r0 + lsls r1, r1, #2 + ldrb r3, [r2, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #5] + adds r0, r4, #0 +_081296C0: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081296D0: .4byte 0x020205AC + thumb_func_end AddDecorationIconObject + + thumb_func_start sub_081296D4 +sub_081296D4: @ 0x081296D4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _081296EC + ldr r1, [r3] + adds r1, r1, r0 + movs r2, #0 + strb r2, [r1] + ldr r1, [r3, #4] + adds r1, r1, r0 + strb r2, [r1] + bx lr + .align 2, 0 +_081296EC: .4byte 0x02039E48 + thumb_func_end sub_081296D4 + + thumb_func_start sub_081296F0 +sub_081296F0: @ 0x081296F0 + push {r4, r5, r6, lr} + ldr r6, _08129710 + movs r0, #0 + strh r0, [r6] + ldr r2, _08129714 + strh r0, [r2] + ldr r4, _08129718 + ldr r1, _0812971C + ldrh r0, [r4] + ldrb r1, [r1] + cmp r0, r1 + bne _0812972C + movs r0, #1 + strh r0, [r2] + b _08129782 + .align 2, 0 +_08129710: .4byte 0x02037282 +_08129714: .4byte 0x02037290 +_08129718: .4byte 0x02037280 +_0812971C: .4byte 0x0203A790 +_08129720: + ldr r1, _08129728 + ldrb r0, [r2] + strh r0, [r1] + b _08129782 + .align 2, 0 +_08129728: .4byte 0x02037284 +_0812972C: + ldr r3, _08129788 + ldr r2, _0812978C + ldr r1, _08129790 + ldrh r0, [r4] + lsls r0, r0, #3 + adds r4, r0, r1 + ldrb r1, [r4] + ldr r0, [r2] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0, #0xc] + cmp r0, #4 + bne _08129782 + ldrh r0, [r4, #4] + strh r0, [r6] + ldrb r0, [r4] + bl sub_081296D4 + movs r1, #0 + ldr r0, _08129794 + ldr r0, [r0, #4] + ldrb r2, [r0] + cmp r1, r2 + bhs _08129782 + ldr r5, [r0, #4] + ldrh r4, [r6] + adds r3, r2, #0 +_0812976A: + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r2, r0, r5 + ldrh r0, [r2, #0x14] + cmp r0, r4 + beq _08129720 + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, r3 + blo _0812976A +_08129782: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08129788: .4byte 0x08580CD0 +_0812978C: .4byte 0x02039E48 +_08129790: .4byte 0x0203A710 +_08129794: .4byte 0x02036FB8 + thumb_func_end sub_081296F0 + + thumb_func_start sub_08129798 +sub_08129798: @ 0x08129798 + push {r4, r5, r6, lr} + movs r2, #0 + ldr r0, _081297C4 + ldr r0, [r0, #4] + ldrb r1, [r0] + cmp r2, r1 + bhs _081297DC + adds r3, r0, #0 + ldr r5, [r3, #4] + ldr r0, _081297C8 + ldrh r4, [r0] + ldr r6, _081297CC +_081297B0: + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r1, r0, r5 + ldrh r0, [r1, #0x14] + cmp r0, r4 + bne _081297D0 + ldrb r0, [r1] + strh r0, [r6] + b _081297DC + .align 2, 0 +_081297C4: .4byte 0x02036FB8 +_081297C8: .4byte 0x02037280 +_081297CC: .4byte 0x02037282 +_081297D0: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldrb r0, [r3] + cmp r2, r0 + blo _081297B0 +_081297DC: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08129798 + + thumb_func_start sub_081297E4 +sub_081297E4: @ 0x081297E4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + movs r6, #0 + b _081298AE +_081297F4: + ldr r3, _081298C8 + lsls r5, r6, #3 + adds r4, r5, r3 + ldrb r2, [r4] + ldr r1, _081298CC + ldr r0, [r1] + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r7, _081298D0 + adds r0, r0, r7 + ldrb r1, [r0, #0xc] + ldr r7, _081298CC + ldr r0, [r7, #4] + adds r0, r0, r2 + ldrb r0, [r0] + lsrs r2, r0, #4 + mov r8, r2 + movs r7, #0xf + adds r2, r7, #0 + ands r2, r0 + str r2, [sp] + adds r7, r5, #0 + adds r6, #1 + str r6, [sp, #4] + cmp r1, #4 + beq _081298A8 + movs r6, #0 + ldrb r4, [r4, #2] + cmp r6, r4 + bhs _0812989E +_08129836: + movs r4, #0 + adds r0, r5, r3 + adds r3, r6, #1 + mov sl, r3 + ldrb r0, [r0, #1] + cmp r4, r0 + bhs _0812988C + ldr r5, _081298C8 + adds r5, r5, r7 + mov sb, r5 + subs r0, r6, #7 + str r0, [sp, #8] +_0812984E: + adds r0, r4, #7 + add r0, r8 + ldr r1, _081298D4 + ldr r3, [r1] + ldr r1, [sp] + subs r2, r1, r6 + ldr r1, [r3] + muls r2, r1, r2 + mov r5, r8 + adds r1, r5, r4 + adds r1, r1, r2 + ldr r2, [r3, #0xc] + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r1, [r1] + movs r3, #0xc0 + lsls r3, r3, #6 + adds r2, r3, #0 + orrs r2, r1 + ldr r5, [sp] + ldr r3, [sp, #8] + subs r1, r5, r3 + bl MapGridSetMetatileEntryAt + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + mov r5, sb + ldrb r5, [r5, #1] + cmp r4, r5 + blo _0812984E +_0812988C: + mov r1, sl + lsls r0, r1, #0x18 + lsrs r6, r0, #0x18 + ldr r3, _081298C8 + adds r5, r7, #0 + adds r0, r7, r3 + ldrb r0, [r0, #2] + cmp r6, r0 + blo _08129836 +_0812989E: + ldr r2, _081298C8 + adds r0, r7, r2 + ldrb r0, [r0] + bl sub_081296D4 +_081298A8: + ldr r3, [sp, #4] + lsls r0, r3, #0x18 + lsrs r6, r0, #0x18 +_081298AE: + ldr r0, _081298D8 + ldrb r0, [r0] + cmp r6, r0 + blo _081297F4 + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081298C8: .4byte 0x0203A710 +_081298CC: .4byte 0x02039E48 +_081298D0: .4byte 0x08580CD0 +_081298D4: .4byte 0x02036FB8 +_081298D8: .4byte 0x0203A790 + thumb_func_end sub_081297E4 + + thumb_func_start sub_081298DC +sub_081298DC: @ 0x081298DC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _08129900 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #0xc + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _08129918 + cmp r0, #1 + bgt _08129904 + cmp r0, #0 + beq _0812990E + b _08129984 + .align 2, 0 +_08129900: .4byte 0x03005B60 +_08129904: + cmp r0, #2 + beq _08129944 + cmp r0, #3 + beq _08129958 + b _08129984 +_0812990E: + bl sub_081297E4 + movs r0, #1 + strh r0, [r4, #0xc] + b _08129984 +_08129918: + ldr r0, _0812993C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08129984 + bl DrawWholeMapView + ldr r0, _08129940 + bl ScriptContext1_SetupScript + movs r0, #0 + movs r1, #1 + bl DrawDialogueFrame + movs r0, #2 + strh r0, [r4, #0xc] + b _08129984 + .align 2, 0 +_0812993C: .4byte 0x02037C74 +_08129940: .4byte 0x08245DDD +_08129944: + bl ScriptContext2_Enable + adds r0, r5, #0 + bl IdentifyOwnedDecorationsCurrentlyInUseInternal + bl pal_fill_black + movs r0, #3 + strh r0, [r4, #0xc] + b _08129984 +_08129958: + bl IsWeatherNotFadingIn + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08129984 + ldr r4, _0812998C + ldr r1, _08129990 + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r2, _08129994 + adds r0, r5, #0 + adds r1, r4, #0 + bl DisplayItemMessageOnField + ldr r0, _08129998 + ldrb r0, [r0, #0x14] + cmp r0, #0x56 + bne _08129984 + bl TV_PutSecretBaseVisitOnTheAir +_08129984: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0812998C: .4byte 0x02021C7C +_08129990: .4byte 0x085CA867 +_08129994: .4byte 0x08129D55 +_08129998: .4byte 0x02036FB8 + thumb_func_end sub_081298DC + + thumb_func_start sub_0812999C +sub_0812999C: @ 0x0812999C + push {lr} + movs r1, #0 + ldr r0, _081299B8 + ldrb r2, [r0, #8] + cmp r1, r2 + bhs _081299C6 + ldr r3, [r0] +_081299AA: + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _081299BC + movs r0, #1 + b _081299C8 + .align 2, 0 +_081299B8: .4byte 0x02039E48 +_081299BC: + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, r2 + blo _081299AA +_081299C6: + movs r0, #0 +_081299C8: + pop {r1} + bx r1 + thumb_func_end sub_0812999C + + thumb_func_start SetUpPuttingAwayDecorationPlayerAvatar +SetUpPuttingAwayDecorationPlayerAvatar: @ 0x081299CC + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #4 + bl GetPlayerFacingDirection + ldr r3, _08129A14 + ldr r2, _08129A18 + ldr r4, _08129A1C + ldr r1, [r4, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0, #0x2e] + strb r0, [r3] + bl sub_0812A3A8 + ldr r0, _08129A20 + movs r1, #0x78 + movs r2, #0x50 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [r4, #4] + ldr r0, _08129A24 + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #0 + bne _08129A2C + ldr r1, _08129A28 + str r0, [sp] + movs r0, #0xc1 + b _08129A34 + .align 2, 0 +_08129A14: .4byte 0x0203A704 +_08129A18: .4byte 0x020205AC +_08129A1C: .4byte 0x03005B30 +_08129A20: .4byte 0x085822E8 +_08129A24: .4byte 0x03005AF0 +_08129A28: .4byte 0x08007141 +_08129A2C: + ldr r1, _08129A98 + movs r0, #0 + str r0, [sp] + movs r0, #0xc2 +_08129A34: + movs r2, #0x88 + movs r3, #0x48 + bl AddPseudoEventObject + ldr r1, _08129A9C + strb r0, [r1] + ldr r6, _08129AA0 + ldr r0, _08129A9C + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrb r2, [r1, #5] + movs r4, #0xd + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r2 + movs r2, #4 + mov r8, r2 + mov r2, r8 + orrs r0, r2 + strb r0, [r1, #5] + ldr r5, _08129AA4 + ldrb r1, [r5] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + bl DestroySprite + ldr r0, _08129AA8 + ldr r0, [r0, #4] + strb r0, [r5] + ldrb r1, [r5] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r1, [r0, #5] + ands r4, r1 + mov r1, r8 + orrs r4, r1 + strb r4, [r0, #5] + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08129A98: .4byte 0x08007141 +_08129A9C: .4byte 0x0203A705 +_08129AA0: .4byte 0x020205AC +_08129AA4: .4byte 0x0203A704 +_08129AA8: .4byte 0x03005B30 + thumb_func_end SetUpPuttingAwayDecorationPlayerAvatar + + thumb_func_start sub_08129AAC +sub_08129AAC: @ 0x08129AAC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _08129AD0 + adds r4, r0, r1 + movs r1, #4 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _08129AFC + cmp r0, #1 + bgt _08129AD4 + cmp r0, #0 + beq _08129ADA + b _08129B1E + .align 2, 0 +_08129AD0: .4byte 0x03005B68 +_08129AD4: + cmp r0, #2 + beq _08129B0A + b _08129B1E +_08129ADA: + ldr r0, _08129AF8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08129B1E + adds r0, r5, #0 + bl sub_08127A7C + movs r0, #1 + strh r0, [r4, #4] + strh r0, [r4, #0xc] + strh r0, [r4, #0xa] + b _08129B1E + .align 2, 0 +_08129AF8: .4byte 0x02037C74 +_08129AFC: + bl SetUpPuttingAwayDecorationPlayerAvatar + bl pal_fill_black + movs r0, #2 + strh r0, [r4, #4] + b _08129B1E +_08129B0A: + bl IsWeatherNotFadingIn + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08129B1E + strh r0, [r4, #0x18] + adds r0, r5, #0 + bl sub_08129B24 +_08129B1E: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_08129AAC + + thumb_func_start sub_08129B24 +sub_08129B24: @ 0x08129B24 + push {r4, r5, r6, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r0, #0 + movs r1, #1 + bl DrawDialogueFrame + ldr r4, _08129BA4 + ldr r3, _08129BA8 + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r6, #0 + strh r6, [r0, #0x3c] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _08129BAC + str r1, [r0] + ldr r2, _08129BB0 + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0x88 + strh r1, [r0, #0x20] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0x48 + strh r1, [r0, #0x22] + ldr r1, _08129BB4 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r6, [r0, #0x1c] + ldr r1, _08129BB8 + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08129BA4: .4byte 0x020205AC +_08129BA8: .4byte 0x0203A704 +_08129BAC: .4byte 0x0812A379 +_08129BB0: .4byte 0x0203A705 +_08129BB4: .4byte 0x03005B60 +_08129BB8: .4byte 0x08128DF9 + thumb_func_end sub_08129B24 + + thumb_func_start sub_08129BBC +sub_08129BBC: @ 0x08129BBC + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _08129BE4 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #0x1c] + bl sub_08128DC0 + adds r0, r4, #0 + bl sub_08129C64 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08129BE4: .4byte 0x03005B60 + thumb_func_end sub_08129BBC + + thumb_func_start sub_08129BE8 +sub_08129BE8: @ 0x08129BE8 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _08129C48 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #0x1c] + bl sub_08128DC0 + ldr r3, _08129C4C + ldr r5, _08129C50 + ldrb r1, [r5] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + ldrb r1, [r5] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r3, #0x1c + adds r0, r0, r3 + ldr r1, _08129C54 + str r1, [r0] + ldr r5, _08129C58 + ldr r1, _08129C5C + adds r0, r5, #0 + bl StringExpandPlaceholders + ldr r2, _08129C60 + adds r0, r4, #0 + adds r1, r5, #0 + bl DisplayItemMessageOnField + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08129C48: .4byte 0x03005B60 +_08129C4C: .4byte 0x020205AC +_08129C50: .4byte 0x0203A704 +_08129C54: .4byte 0x08007141 +_08129C58: .4byte 0x02021C7C +_08129C5C: .4byte 0x085CA835 +_08129C60: .4byte 0x0812A1FD + thumb_func_end sub_08129BE8 + + thumb_func_start sub_08129C64 +sub_08129C64: @ 0x08129C64 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r5, #0 + bl sub_0812A0F4 + ldr r0, _08129C88 + ldrb r0, [r0] + cmp r0, #0 + beq _08129C98 + ldr r4, _08129C8C + ldr r1, _08129C90 + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r2, _08129C94 + b _08129D04 + .align 2, 0 +_08129C88: .4byte 0x0203A790 +_08129C8C: .4byte 0x02021C7C +_08129C90: .4byte 0x085CA852 +_08129C94: .4byte 0x0812A1AD +_08129C98: + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + ldr r0, _08129D10 + adds r1, r1, r0 + movs r2, #0 + ldrsh r0, [r1, r2] + movs r2, #2 + ldrsh r1, [r1, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl MetatileBehavior_IsSecretBasePC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08129CCE + adds r0, r4, #0 + bl MetatileBehavior_IsPlayerRoomPCOn + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08129D2C +_08129CCE: + ldr r3, _08129D14 + ldr r4, _08129D18 + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r3, #0x1c + adds r0, r0, r3 + ldr r1, _08129D1C + str r1, [r0] + ldr r4, _08129D20 + ldr r1, _08129D24 + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r2, _08129D28 +_08129D04: + adds r0, r5, #0 + adds r1, r4, #0 + bl DisplayItemMessageOnField + b _08129D40 + .align 2, 0 +_08129D10: .4byte 0x03005B68 +_08129D14: .4byte 0x020205AC +_08129D18: .4byte 0x0203A704 +_08129D1C: .4byte 0x08007141 +_08129D20: .4byte 0x02021C7C +_08129D24: .4byte 0x085CA835 +_08129D28: .4byte 0x0812A1FD +_08129D2C: + ldr r4, _08129D48 + ldr r1, _08129D4C + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r2, _08129D50 + adds r0, r5, #0 + adds r1, r4, #0 + bl DisplayItemMessageOnField +_08129D40: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08129D48: .4byte 0x02021C7C +_08129D4C: .4byte 0x085CA842 +_08129D50: .4byte 0x08129D55 + thumb_func_end sub_08129C64 + + thumb_func_start sub_08129D54 +sub_08129D54: @ 0x08129D54 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _08129D78 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08129D6E + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08129D74 +_08129D6E: + adds r0, r2, #0 + bl sub_08129B24 +_08129D74: + pop {r0} + bx r0 + .align 2, 0 +_08129D78: .4byte 0x03002360 + thumb_func_end sub_08129D54 + + thumb_func_start sub_08129D7C +sub_08129D7C: @ 0x08129D7C + push {lr} + adds r3, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08129D9C + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r1, [r1, #0xd] + cmp r1, #0 + bne _08129DA0 + movs r0, #1 + strb r0, [r3, #1] + b _08129DFE + .align 2, 0 +_08129D9C: .4byte 0x08580CD0 +_08129DA0: + cmp r1, #1 + bne _08129DAC + movs r0, #2 + strb r0, [r3, #1] + strb r1, [r3, #2] + b _08129E00 +_08129DAC: + cmp r1, #2 + bne _08129DB8 + movs r0, #3 + strb r0, [r3, #1] + movs r0, #1 + b _08129DFE +_08129DB8: + cmp r1, #3 + bne _08129DC0 + movs r0, #4 + b _08129DFA +_08129DC0: + cmp r1, #4 + bne _08129DCA + movs r0, #2 + strb r0, [r3, #1] + b _08129DFE +_08129DCA: + cmp r1, #5 + bne _08129DD2 + movs r0, #1 + b _08129DFA +_08129DD2: + cmp r1, #6 + bne _08129DDE + movs r0, #1 + strb r0, [r3, #1] + movs r0, #3 + b _08129DFE +_08129DDE: + cmp r1, #7 + bne _08129DEA + movs r0, #2 + strb r0, [r3, #1] + movs r0, #4 + b _08129DFE +_08129DEA: + cmp r1, #8 + bne _08129DF4 + movs r0, #3 + strb r0, [r3, #1] + b _08129DFE +_08129DF4: + cmp r1, #9 + bne _08129E00 + movs r0, #3 +_08129DFA: + strb r0, [r3, #1] + movs r0, #2 +_08129DFE: + strb r0, [r3, #2] +_08129E00: + pop {r0} + bx r0 + thumb_func_end sub_08129D7C + + thumb_func_start sub_08129E04 +sub_08129E04: @ 0x08129E04 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + ldr r5, _08129E5C + ldr r6, _08129E60 + ldrb r3, [r6] + lsls r2, r3, #4 + adds r2, r2, r3 + lsls r2, r2, #2 + adds r2, r2, r5 + adds r2, #0x3e + ldrb r3, [r2] + movs r4, #4 + orrs r3, r4 + strb r3, [r2] + ldrb r3, [r6] + lsls r2, r3, #4 + adds r2, r2, r3 + lsls r2, r2, #2 + adds r3, r5, #0 + adds r3, #0x1c + adds r2, r2, r3 + ldr r3, _08129E64 + str r3, [r2] + ldr r4, _08129E68 + ldrb r3, [r4] + lsls r2, r3, #4 + adds r2, r2, r3 + lsls r2, r2, #2 + adds r2, r2, r5 + lsrs r0, r0, #0x14 + adds r0, #0x88 + strh r0, [r2, #0x20] + ldrb r2, [r4] + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r5 + lsrs r1, r1, #0x14 + adds r1, #0x48 + strh r1, [r0, #0x22] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08129E5C: .4byte 0x020205AC +_08129E60: .4byte 0x0203A704 +_08129E64: .4byte 0x08007141 +_08129E68: .4byte 0x0203A705 + thumb_func_end sub_08129E04 + + thumb_func_start sub_08129E6C +sub_08129E6C: @ 0x08129E6C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov sb, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r3, _08129F00 + lsls r2, r0, #2 + adds r2, r2, r0 + lsls r2, r2, #3 + adds r2, r2, r3 + ldrb r0, [r2, #8] + subs r0, #7 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldrb r0, [r2, #0xa] + subs r0, #7 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r2, _08129F04 + ldr r0, [r2, #4] + adds r0, r0, r1 + ldrb r0, [r0] + lsrs r5, r0, #4 + movs r6, #0xf + ands r6, r0 + mov r0, sb + ldrb r4, [r0, #2] + ldr r0, [r2] + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0x29 + bne _08129ECC + adds r0, r5, #7 + adds r1, r6, #7 + bl MapGridGetMetatileIdAt + movs r1, #0xa3 + lsls r1, r1, #2 + cmp r0, r1 + bne _08129ECC + subs r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_08129ECC: + cmp r7, r5 + blo _08129F08 + mov r0, sb + ldrb r2, [r0, #1] + adds r0, r5, r2 + cmp r7, r0 + bge _08129F08 + subs r0, r6, r4 + cmp r8, r0 + ble _08129F08 + cmp r8, r6 + bhi _08129F08 + subs r0, r7, r5 + adds r0, #1 + subs r0, r2, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r2, r8 + subs r1, r6, r2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl sub_08129E04 + movs r0, #1 + b _08129F0A + .align 2, 0 +_08129F00: .4byte 0x03005B60 +_08129F04: .4byte 0x02039E48 +_08129F08: + movs r0, #0 +_08129F0A: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08129E6C + + thumb_func_start sub_08129F18 +sub_08129F18: @ 0x08129F18 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r2, _08129F8C + ldr r3, _08129F90 + ldr r0, _08129F94 + ldrb r0, [r0] + lsls r0, r0, #3 + adds r0, r0, r3 + ldrb r1, [r0] + ldr r0, [r2, #4] + adds r0, r0, r1 + ldrb r0, [r0] + lsrs r1, r0, #4 + mov r8, r1 + movs r6, #0xf + ands r6, r0 + movs r4, #0 + ldr r7, _08129F98 + mov sb, r3 +_08129F42: + ldr r1, [r7] + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r5, r0, #3 + adds r1, r1, r5 + ldr r2, _08129F9C + adds r0, r1, r2 + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r0, r8 + bne _08129FA8 + ldr r2, _08129FA0 + adds r0, r1, r2 + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r0, r6 + bne _08129FA8 + ldr r2, _08129FA4 + adds r0, r1, r2 + ldrh r0, [r0] + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08129FA8 + ldr r0, _08129F94 + ldrb r1, [r0] + lsls r1, r1, #3 + add r1, sb + ldr r0, [r7] + adds r0, r0, r5 + ldr r2, _08129FA4 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r1, #4] + b _08129FB2 + .align 2, 0 +_08129F8C: .4byte 0x02039E48 +_08129F90: .4byte 0x0203A710 +_08129F94: .4byte 0x0203A790 +_08129F98: .4byte 0x03005AEC +_08129F9C: .4byte 0x00000C74 +_08129FA0: .4byte 0x00000C76 +_08129FA4: .4byte 0x00000C84 +_08129FA8: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x3f + bls _08129F42 +_08129FB2: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08129F18 + + thumb_func_start sub_08129FC0 +sub_08129FC0: @ 0x08129FC0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r6, #0 + ldr r0, _0812A020 + ldrb r1, [r0, #8] + cmp r6, r1 + bhs _0812A03E + ldr r1, _0812A024 + mov r8, r1 +_08129FD8: + ldr r0, [r0] + adds r1, r0, r6 + ldrb r0, [r1] + cmp r0, #0 + beq _0812A030 + adds r1, r0, #0 + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + ldrb r0, [r0, #0xc] + cmp r0, #4 + bne _0812A030 + ldr r5, _0812A028 + adds r0, r1, #0 + adds r1, r5, #0 + bl sub_08129D7C + lsls r1, r6, #0x18 + lsrs r1, r1, #0x18 + adds r0, r7, #0 + adds r2, r5, #0 + bl sub_08129E6C + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #1 + bne _0812A030 + strb r6, [r5] + bl sub_08129F18 + ldr r0, _0812A02C + strb r4, [r0] + movs r0, #1 + b _0812A040 + .align 2, 0 +_0812A020: .4byte 0x02039E48 +_0812A024: .4byte 0x08580CD0 +_0812A028: .4byte 0x0203A710 +_0812A02C: .4byte 0x0203A790 +_0812A030: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r0, _0812A04C + ldrb r1, [r0, #8] + cmp r6, r1 + blo _08129FD8 +_0812A03E: + movs r0, #0 +_0812A040: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0812A04C: .4byte 0x02039E48 + thumb_func_end sub_08129FC0 + + thumb_func_start sub_0812A050 +sub_0812A050: @ 0x0812A050 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sb, r1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + lsls r3, r3, #0x18 + lsrs r7, r3, #0x18 + movs r5, #0 + ldr r1, _0812A0E4 + ldrb r0, [r1, #8] + cmp r5, r0 + bhs _0812A0D4 + ldr r6, _0812A0E8 +_0812A07C: + ldr r0, [r1] + adds r0, r0, r5 + ldrb r2, [r0] + ldr r0, [r1, #4] + adds r0, r0, r5 + ldrb r0, [r0] + lsrs r4, r0, #4 + movs r3, #0xf + ands r3, r0 + cmp r2, #0 + beq _0812A0C6 + ldr r0, _0812A0EC + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #0xc] + cmp r0, #4 + bne _0812A0C6 + cmp sl, r4 + bhi _0812A0C6 + cmp sb, r3 + bhi _0812A0C6 + cmp r8, r4 + blo _0812A0C6 + cmp r7, r3 + blo _0812A0C6 + ldr r0, _0812A0F0 + ldrb r1, [r6] + lsls r1, r1, #3 + adds r1, r1, r0 + strb r5, [r1] + bl sub_08129F18 + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] +_0812A0C6: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _0812A0E4 + ldrb r0, [r1, #8] + cmp r5, r0 + blo _0812A07C +_0812A0D4: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0812A0E4: .4byte 0x02039E48 +_0812A0E8: .4byte 0x0203A790 +_0812A0EC: .4byte 0x08580CD0 +_0812A0F0: .4byte 0x0203A710 + thumb_func_end sub_0812A050 + + thumb_func_start sub_0812A0F4 +sub_0812A0F4: @ 0x0812A0F4 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r4, _0812A14C + movs r0, #0 + strb r0, [r4] + adds r0, r6, #0 + bl sub_08129FC0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0812A198 + movs r5, #0 + ldr r0, _0812A150 + ldrb r1, [r0, #8] + cmp r5, r1 + bhs _0812A166 + adds r7, r4, #0 +_0812A11A: + ldr r0, [r0] + adds r0, r0, r5 + ldrb r1, [r0] + cmp r1, #0 + beq _0812A158 + ldr r4, _0812A154 + adds r0, r1, #0 + adds r1, r4, #0 + bl sub_08129D7C + adds r0, r6, #0 + adds r1, r5, #0 + adds r2, r4, #0 + bl sub_08129E6C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0812A158 + strb r5, [r4] + ldrb r0, [r7] + adds r0, #1 + strb r0, [r7] + b _0812A166 + .align 2, 0 +_0812A14C: .4byte 0x0203A790 +_0812A150: .4byte 0x02039E48 +_0812A154: .4byte 0x0203A710 +_0812A158: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _0812A1A0 + ldrb r1, [r0, #8] + cmp r5, r1 + blo _0812A11A +_0812A166: + ldr r0, _0812A1A4 + ldrb r0, [r0] + cmp r0, #0 + beq _0812A198 + ldr r0, _0812A1A0 + ldr r2, _0812A1A8 + ldrb r1, [r2] + ldr r0, [r0, #4] + adds r0, r0, r1 + ldrb r1, [r0] + lsrs r0, r1, #4 + movs r3, #0xf + ands r3, r1 + ldrb r1, [r2, #2] + subs r1, r3, r1 + adds r1, #1 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrb r2, [r2, #1] + adds r2, r2, r0 + subs r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + bl sub_0812A050 +_0812A198: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0812A1A0: .4byte 0x02039E48 +_0812A1A4: .4byte 0x0203A790 +_0812A1A8: .4byte 0x0203A710 + thumb_func_end sub_0812A0F4 + + thumb_func_start sub_0812A1AC +sub_0812A1AC: @ 0x0812A1AC + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl DisplayYesNoMenuDefaultYes + ldr r1, _0812A1C8 + adds r0, r4, #0 + bl DoYesNoFuncWithChoice + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812A1C8: .4byte 0x0858222C + thumb_func_end sub_0812A1AC + + thumb_func_start sub_0812A1CC +sub_0812A1CC: @ 0x0812A1CC + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + movs r1, #0 + bl FadeScreen + ldr r1, _0812A1F4 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #0xc] + ldr r1, _0812A1F8 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812A1F4: .4byte 0x03005B60 +_0812A1F8: .4byte 0x081298DD + thumb_func_end sub_0812A1CC + + thumb_func_start sub_0812A1FC +sub_0812A1FC: @ 0x0812A1FC + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl DisplayYesNoMenuDefaultYes + ldr r1, _0812A218 + adds r0, r4, #0 + bl DoYesNoFuncWithChoice + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812A218: .4byte 0x08582234 + thumb_func_end sub_0812A1FC + + thumb_func_start sub_0812A21C +sub_0812A21C: @ 0x0812A21C + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + movs r1, #0 + bl DrawDialogueFrame + adds r0, r4, #0 + bl sub_0812A238 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0812A21C + + thumb_func_start sub_0812A238 +sub_0812A238: @ 0x0812A238 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + movs r1, #0 + bl FadeScreen + ldr r1, _0812A260 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #0xc] + ldr r1, _0812A264 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812A260: .4byte 0x03005B60 +_0812A264: .4byte 0x0812A269 + thumb_func_end sub_0812A238 + + thumb_func_start sub_0812A268 +sub_0812A268: @ 0x0812A268 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _0812A288 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r5, r0, r1 + movs r1, #0xc + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _0812A28C + cmp r0, #1 + beq _0812A2A8 + b _0812A2BE + .align 2, 0 +_0812A288: .4byte 0x03005B60 +_0812A28C: + ldr r0, _0812A2A4 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0812A2BE + adds r0, r4, #0 + bl sub_08127AB4 + movs r0, #1 + strh r0, [r5, #0xc] + b _0812A2BE + .align 2, 0 +_0812A2A4: .4byte 0x02037C74 +_0812A2A8: + bl sub_0812A3D4 + ldr r0, _0812A2C4 + ldr r1, _0812A2C8 + str r1, [r0] + ldr r0, _0812A2CC + bl SetMainCallback2 + adds r0, r4, #0 + bl DestroyTask +_0812A2BE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0812A2C4: .4byte 0x03005B0C +_0812A2C8: .4byte 0x0812A341 +_0812A2CC: .4byte 0x08085A31 + thumb_func_end sub_0812A268 + + thumb_func_start sub_0812A2D0 +sub_0812A2D0: @ 0x0812A2D0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r5, r1, #3 + ldr r6, _0812A2F4 + adds r4, r5, r6 + movs r1, #4 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _0812A308 + cmp r0, #1 + bgt _0812A2F8 + cmp r0, #0 + beq _0812A302 + b _0812A336 + .align 2, 0 +_0812A2F4: .4byte 0x03005B68 +_0812A2F8: + cmp r0, #2 + beq _0812A314 + cmp r0, #3 + beq _0812A320 + b _0812A336 +_0812A302: + bl HideSecretBaseDecorationSprites + b _0812A318 +_0812A308: + ldr r0, _0812A310 + bl ScriptContext1_SetupScript + b _0812A318 + .align 2, 0 +_0812A310: .4byte 0x08245DBB +_0812A314: + bl ScriptContext2_Enable +_0812A318: + ldrh r0, [r4, #4] + adds r0, #1 + strh r0, [r4, #4] + b _0812A336 +_0812A320: + bl IsWeatherNotFadingIn + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0812A336 + adds r0, r6, #0 + subs r0, #8 + adds r0, r5, r0 + ldr r1, _0812A33C + str r1, [r0] +_0812A336: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0812A33C: .4byte 0x08126B49 + thumb_func_end sub_0812A2D0 + + thumb_func_start sub_0812A340 +sub_0812A340: @ 0x0812A340 + push {lr} + bl pal_fill_black + movs r0, #0 + movs r1, #1 + bl ClearDialogWindowAndFrame + bl InitDecorationActionsWindow + ldr r0, _0812A370 + movs r1, #8 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0812A374 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r0, #0 + strh r0, [r1, #0xc] + pop {r0} + bx r0 + .align 2, 0 +_0812A370: .4byte 0x0812A2D1 +_0812A374: .4byte 0x03005B60 + thumb_func_end sub_0812A340 + + thumb_func_start sub_0812A378 +sub_0812A378: @ 0x0812A378 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x2e] + adds r0, #1 + movs r1, #0x1f + ands r0, r1 + strh r0, [r2, #0x2e] + cmp r0, #0xf + ble _0812A398 + adds r0, r2, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + b _0812A3A4 +_0812A398: + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_0812A3A4: + pop {r0} + bx r0 + thumb_func_end sub_0812A378 + + thumb_func_start sub_0812A3A8 +sub_0812A3A8: @ 0x0812A3A8 + push {lr} + ldr r0, _0812A3BC + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #0 + bne _0812A3C4 + ldr r0, _0812A3C0 + bl LoadSpritePalette + b _0812A3CA + .align 2, 0 +_0812A3BC: .4byte 0x03005AF0 +_0812A3C0: .4byte 0x085822BC +_0812A3C4: + ldr r0, _0812A3D0 + bl LoadSpritePalette +_0812A3CA: + pop {r0} + bx r0 + .align 2, 0 +_0812A3D0: .4byte 0x085822C4 + thumb_func_end sub_0812A3A8 + + thumb_func_start sub_0812A3D4 +sub_0812A3D4: @ 0x0812A3D4 + push {lr} + movs r0, #8 + bl FreeSpritePaletteByTag + pop {r0} + bx r0 + thumb_func_end sub_0812A3D4 + + thumb_func_start sub_0812A3E0 +sub_0812A3E0: @ 0x0812A3E0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + bl IsSelectedDecorInThePC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0812A440 + ldr r0, _0812A424 + ldr r1, _0812A428 + ldrb r2, [r1] + ldr r1, _0812A42C + ldr r1, [r1] + adds r1, r1, r2 + ldrb r2, [r1] + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + ldr r2, _0812A430 + adds r1, r1, r2 + bl StringCopy + ldr r4, _0812A434 + ldr r1, _0812A438 + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r2, _0812A43C + adds r0, r5, #0 + adds r1, r4, #0 + bl DisplayItemMessageOnField + b _0812A454 + .align 2, 0 +_0812A424: .4byte 0x02021C40 +_0812A428: .4byte 0x02039E3E +_0812A42C: .4byte 0x02039E18 +_0812A430: .4byte 0x08580CD1 +_0812A434: .4byte 0x02021C7C +_0812A438: .4byte 0x085CA812 +_0812A43C: .4byte 0x0812A469 +_0812A440: + ldr r4, _0812A45C + ldr r1, _0812A460 + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r2, _0812A464 + adds r0, r5, #0 + adds r1, r4, #0 + bl DisplayItemMessageOnField +_0812A454: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0812A45C: .4byte 0x02021C7C +_0812A460: .4byte 0x085CA7F2 +_0812A464: .4byte 0x08127A0D + thumb_func_end sub_0812A3E0 + + thumb_func_start sub_0812A468 +sub_0812A468: @ 0x0812A468 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl DisplayYesNoMenuDefaultYes + ldr r1, _0812A484 + adds r0, r4, #0 + bl DoYesNoFuncWithChoice + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812A484: .4byte 0x08582300 + thumb_func_end sub_0812A468 + + thumb_func_start sub_0812A488 +sub_0812A488: @ 0x0812A488 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _0812A4D0 + ldrb r1, [r0] + ldr r0, _0812A4D4 + ldr r0, [r0] + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + ldr r5, _0812A4D8 + ldrb r0, [r5] + bl GetNumOwnedDecorationsInCategory + ldr r1, _0812A4DC + strb r0, [r1] + ldrb r0, [r5] + bl CondenseDecorationsInCategory + adds r0, r4, #0 + bl IdentifyOwnedDecorationsCurrentlyInUseInternal + ldr r5, _0812A4E0 + ldr r1, _0812A4E4 + adds r0, r5, #0 + bl StringExpandPlaceholders + ldr r2, _0812A4E8 + adds r0, r4, #0 + adds r1, r5, #0 + bl DisplayItemMessageOnField + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0812A4D0: .4byte 0x02039E3E +_0812A4D4: .4byte 0x02039E18 +_0812A4D8: .4byte 0x02039E3F +_0812A4DC: .4byte 0x02039E1D +_0812A4E0: .4byte 0x02021C7C +_0812A4E4: .4byte 0x085CA829 +_0812A4E8: .4byte 0x08127A0D + thumb_func_end sub_0812A488 + diff --git a/asm/decoration_inventory.s b/asm/decoration_inventory.s new file mode 100644 index 0000000..267f94f --- /dev/null +++ b/asm/decoration_inventory.s @@ -0,0 +1,483 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start SetDecorationInventoriesPointers +SetDecorationInventoriesPointers: @ 0x081616F8 + push {r4, lr} + ldr r0, _0816176C + mov ip, r0 + ldr r0, _08161770 + ldr r1, [r0] + ldr r2, _08161774 + adds r0, r1, r2 + mov r4, ip + str r0, [r4] + movs r3, #0xa + strb r3, [r4, #4] + adds r2, #0xa + adds r0, r1, r2 + str r0, [r4, #8] + strb r3, [r4, #0xc] + ldr r4, _08161778 + adds r0, r1, r4 + mov r2, ip + str r0, [r2, #0x10] + strb r3, [r2, #0x14] + adds r4, #0xa + adds r0, r1, r4 + str r0, [r2, #0x18] + movs r2, #0x1e + mov r0, ip + strb r2, [r0, #0x1c] + adds r4, #0x1e + adds r0, r1, r4 + mov r4, ip + str r0, [r4, #0x20] + mov r0, ip + adds r0, #0x24 + strb r2, [r0] + ldr r2, _0816177C + adds r0, r1, r2 + str r0, [r4, #0x28] + mov r0, ip + adds r0, #0x2c + strb r3, [r0] + ldr r4, _08161780 + adds r0, r1, r4 + mov r2, ip + str r0, [r2, #0x30] + adds r2, #0x34 + movs r0, #0x28 + strb r0, [r2] + adds r4, #0x28 + adds r1, r1, r4 + mov r0, ip + str r1, [r0, #0x38] + adds r0, #0x3c + strb r3, [r0] + bl InitDecorationContextItems + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816176C: .4byte 0x0203B90C +_08161770: .4byte 0x03005AEC +_08161774: .4byte 0x00002734 +_08161778: .4byte 0x00002748 +_0816177C: .4byte 0x0000278E +_08161780: .4byte 0x00002798 + thumb_func_end SetDecorationInventoriesPointers + + thumb_func_start ClearDecorationInventory +ClearDecorationInventory: @ 0x08161784 + push {r4, r5, lr} + lsls r0, r0, #0x18 + movs r3, #0 + ldr r1, _081617B4 + lsrs r2, r0, #0x15 + adds r0, r2, r1 + ldrb r0, [r0, #4] + cmp r3, r0 + bhs _081617AE + adds r5, r1, #0 + movs r4, #0 +_0816179A: + adds r0, r2, r5 + ldr r1, [r0] + adds r1, r1, r3 + strb r4, [r1] + adds r1, r3, #1 + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + ldrb r0, [r0, #4] + cmp r3, r0 + blo _0816179A +_081617AE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081617B4: .4byte 0x0203B90C + thumb_func_end ClearDecorationInventory + + thumb_func_start ClearDecorationInventories +ClearDecorationInventories: @ 0x081617B8 + push {r4, lr} + movs r4, #0 +_081617BC: + adds r0, r4, #0 + bl ClearDecorationInventory + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #7 + bls _081617BC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ClearDecorationInventories + + thumb_func_start GetFirstEmptyDecorSlot +GetFirstEmptyDecorSlot: @ 0x081617D4 + push {r4, lr} + lsls r0, r0, #0x18 + movs r2, #0 + ldr r1, _08161800 + lsrs r0, r0, #0x15 + adds r0, r0, r1 + movs r1, #4 + ldrsb r1, [r0, r1] + cmp r2, r1 + bge _08161810 + adds r4, r0, #0 + adds r3, r1, #0 +_081617EC: + lsls r0, r2, #0x18 + asrs r1, r0, #0x18 + ldr r0, [r4] + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _08161804 + adds r0, r1, #0 + b _08161814 + .align 2, 0 +_08161800: .4byte 0x0203B90C +_08161804: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, r3 + blt _081617EC +_08161810: + movs r0, #1 + rsbs r0, r0, #0 +_08161814: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetFirstEmptyDecorSlot + + thumb_func_start CheckHasDecoration +CheckHasDecoration: @ 0x0816181C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r1, _0816184C + lsls r0, r3, #3 + subs r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #0xe] + movs r2, #0 + ldr r1, _08161850 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r1, [r0, #4] + cmp r2, r1 + bhs _0816185E + ldr r4, [r0] +_0816183E: + adds r0, r4, r2 + ldrb r0, [r0] + cmp r0, r3 + bne _08161854 + movs r0, #1 + b _08161860 + .align 2, 0 +_0816184C: .4byte 0x08580CD0 +_08161850: .4byte 0x0203B90C +_08161854: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, r1 + blo _0816183E +_0816185E: + movs r0, #0 +_08161860: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CheckHasDecoration + + thumb_func_start DecorationAdd +DecorationAdd: @ 0x08161868 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r4, r0, #0 + cmp r4, #0 + beq _081618AC + ldr r1, _081618A4 + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r5, [r0, #0xe] + adds r0, r5, #0 + bl GetFirstEmptyDecorSlot + lsls r0, r0, #0x18 + asrs r2, r0, #0x18 + movs r0, #1 + rsbs r0, r0, #0 + cmp r2, r0 + beq _081618AC + ldr r0, _081618A8 + lsls r1, r5, #3 + adds r1, r1, r0 + ldr r0, [r1] + adds r0, r0, r2 + strb r4, [r0] + movs r0, #1 + b _081618AE + .align 2, 0 +_081618A4: .4byte 0x08580CD0 +_081618A8: .4byte 0x0203B90C +_081618AC: + movs r0, #0 +_081618AE: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end DecorationAdd + + thumb_func_start DecorationCheckSpace +DecorationCheckSpace: @ 0x081618B4 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _081618E4 + ldr r1, _081618E0 + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #0xe] + bl GetFirstEmptyDecorSlot + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _081618E4 + movs r0, #1 + b _081618E6 + .align 2, 0 +_081618E0: .4byte 0x08580CD0 +_081618E4: + movs r0, #0 +_081618E6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end DecorationCheckSpace + + thumb_func_start DecorationRemove +DecorationRemove: @ 0x081618EC + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r3, #0 + cmp r4, #0 + bne _08161908 + b _0816193A +_081618FA: + movs r0, #0 + strb r0, [r1] + adds r0, r6, #0 + bl CondenseDecorationsInCategory + movs r0, #1 + b _0816193C +_08161908: + ldr r2, _08161944 + ldr r1, _08161948 + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r5, [r0, #0xe] + lsls r0, r5, #3 + adds r0, r0, r2 + ldrb r1, [r0, #4] + cmp r3, r1 + bhs _0816193A + adds r6, r5, #0 + adds r5, r0, #0 + adds r2, r1, #0 +_08161926: + ldr r0, [r5] + adds r1, r0, r3 + ldrb r0, [r1] + cmp r0, r4 + beq _081618FA + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, r2 + blo _08161926 +_0816193A: + movs r0, #0 +_0816193C: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08161944: .4byte 0x0203B90C +_08161948: .4byte 0x08580CD0 + thumb_func_end DecorationRemove + + thumb_func_start CondenseDecorationsInCategory +CondenseDecorationsInCategory: @ 0x0816194C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + movs r6, #0 + ldr r2, _081619E0 + lsrs r0, r0, #0x15 + adds r1, r0, r2 + ldrb r3, [r1, #4] + cmp r6, r3 + bhs _081619D0 + adds r7, r0, #0 + mov sl, r1 + mov r0, sl + str r0, [sp] +_08161970: + adds r1, r6, #1 + lsls r0, r1, #0x18 + lsrs r3, r0, #0x18 + adds r2, r7, #0 + mov ip, r1 + mov r1, sl + ldrb r1, [r1, #4] + cmp r3, r1 + bhs _081619C2 + ldr r0, _081619E0 + mov sb, r0 + adds r1, r0, #0 + mov r8, r1 +_0816198A: + mov r0, sb + adds r5, r2, r0 + ldr r1, [r5] + adds r0, r1, r3 + ldrb r4, [r0] + adds r2, r4, #0 + cmp r2, #0 + beq _081619B0 + adds r0, r1, r6 + ldrb r1, [r0] + cmp r1, #0 + beq _081619A6 + cmp r1, r2 + bls _081619B0 +_081619A6: + ldrb r1, [r0] + strb r4, [r0] + ldr r0, [r5] + adds r0, r0, r3 + strb r1, [r0] +_081619B0: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + adds r2, r7, #0 + mov r1, r8 + adds r0, r2, r1 + ldrb r0, [r0, #4] + cmp r3, r0 + blo _0816198A +_081619C2: + mov r3, ip + lsls r0, r3, #0x18 + lsrs r6, r0, #0x18 + ldr r0, [sp] + ldrb r0, [r0, #4] + cmp r6, r0 + blo _08161970 +_081619D0: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081619E0: .4byte 0x0203B90C + thumb_func_end CondenseDecorationsInCategory + + thumb_func_start GetNumOwnedDecorationsInCategory +GetNumOwnedDecorationsInCategory: @ 0x081619E4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + movs r4, #0 + movs r3, #0 + ldr r2, _08161A20 + lsrs r1, r0, #0x15 + adds r0, r1, r2 + ldrb r0, [r0, #4] + cmp r4, r0 + bhs _08161A18 + adds r5, r2, #0 +_081619FA: + adds r2, r1, r5 + ldr r0, [r2] + adds r0, r0, r3 + ldrb r0, [r0] + cmp r0, #0 + beq _08161A0C + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_08161A0C: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldrb r2, [r2, #4] + cmp r3, r2 + blo _081619FA +_08161A18: + adds r0, r4, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08161A20: .4byte 0x0203B90C + thumb_func_end GetNumOwnedDecorationsInCategory + + thumb_func_start GetNumOwnedDecorations +GetNumOwnedDecorations: @ 0x08161A24 + push {r4, r5, lr} + movs r5, #0 + movs r4, #0 +_08161A2A: + adds r0, r4, #0 + bl GetNumOwnedDecorationsInCategory + adds r0, r5, r0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #7 + bls _08161A2A + adds r0, r5, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end GetNumOwnedDecorations + diff --git a/asm/dewford_trend.s b/asm/dewford_trend.s new file mode 100644 index 0000000..738b820 --- /dev/null +++ b/asm/dewford_trend.s @@ -0,0 +1,1011 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start InitDewfordTrend +InitDewfordTrend: @ 0x081224E0 + push {r4, r5, r6, r7, lr} + movs r6, #0 + ldr r5, _08122514 +_081224E6: + movs r0, #0xa + bl sub_0811F318 + ldr r1, [r5] + lsls r4, r6, #3 + adds r1, r1, r4 + ldr r2, _08122518 + adds r1, r1, r2 + strh r0, [r1] + bl Random + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _08122520 + movs r0, #0xc + bl sub_0811F318 + ldr r1, [r5] + adds r1, r1, r4 + ldr r7, _0812251C + adds r1, r1, r7 + b _0812252E + .align 2, 0 +_08122514: .4byte 0x03005AEC +_08122518: .4byte 0x00002E6C +_0812251C: .4byte 0x00002E6E +_08122520: + movs r0, #0xd + bl sub_0811F318 + ldr r1, [r5] + adds r1, r1, r4 + ldr r2, _0812257C + adds r1, r1, r2 +_0812252E: + strh r0, [r1] + bl Random + ldr r3, [r5] + adds r3, r3, r4 + movs r2, #1 + ands r2, r0 + ldr r7, _08122580 + adds r3, r3, r7 + lsls r2, r2, #6 + ldrb r0, [r3] + movs r7, #0x41 + rsbs r7, r7, #0 + adds r1, r7, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3] + ldr r0, _08122584 + adds r1, r4, r0 + ldr r0, [r5] + adds r0, r0, r1 + bl sub_08122B34 + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #4 + bls _081224E6 + ldr r0, _08122588 + ldr r0, [r0] + ldr r1, _08122584 + adds r0, r0, r1 + movs r1, #5 + movs r2, #0 + bl sub_08122810 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0812257C: .4byte 0x00002E6E +_08122580: .4byte 0x00002E69 +_08122584: .4byte 0x00002E68 +_08122588: .4byte 0x03005AEC + thumb_func_end InitDewfordTrend + + thumb_func_start UpdateDewfordTrendPerDay +UpdateDewfordTrendPerDay: @ 0x0812258C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + bne _081225A2 + b _081226CA +_081225A2: + lsls r0, r1, #2 + adds r0, r0, r1 + str r0, [sp] + movs r0, #0 + mov sl, r0 + movs r1, #0x7f + mov sb, r1 + movs r2, #0x80 + rsbs r2, r2, #0 + mov r8, r2 +_081225B6: + ldr r2, [sp] + mov r3, sl + lsls r0, r3, #3 + ldr r4, _081225FC + adds r0, r0, r4 + ldr r3, _08122600 + ldr r1, [r3] + adds r5, r1, r0 + ldrb r6, [r5, #1] + movs r0, #0x40 + ands r0, r6 + cmp r0, #0 + bne _08122614 + ldrb r4, [r5] + lsls r3, r4, #0x19 + lsrs r1, r3, #0x19 + lsls r0, r2, #0x10 + lsrs r0, r0, #0x10 + cmp r1, r0 + blo _08122604 + adds r0, r1, #0 + subs r0, r0, r2 + mov r1, sb + ands r0, r1 + mov r1, r8 + ands r1, r4 + orrs r1, r0 + strb r1, [r5] + movs r0, #0x7f + ands r1, r0 + cmp r1, #0 + bne _081226AA + movs r0, #0x40 + orrs r0, r6 + b _081226A8 + .align 2, 0 +_081225FC: .4byte 0x00002E68 +_08122600: .4byte 0x03005AEC +_08122604: + lsrs r0, r3, #0x19 + subs r2, r2, r0 + mov r0, r8 + ands r0, r4 + strb r0, [r5] + movs r0, #0x40 + orrs r0, r6 + strb r0, [r5, #1] +_08122614: + ldrb r7, [r5] + lsls r0, r7, #0x19 + lsrs r0, r0, #0x19 + adds r4, r0, r2 + ldrh r0, [r5] + lsls r6, r0, #0x12 + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + lsrs r1, r6, #0x19 + cmp r0, r1 + bls _08122684 + adds r0, r4, #0 + bl __umodsi3 + adds r3, r0, #0 + lsrs r1, r6, #0x19 + adds r0, r4, #0 + str r3, [sp, #4] + bl __udivsi3 + adds r4, r0, #0 + movs r0, #1 + eors r4, r0 + ands r4, r0 + lsls r2, r4, #6 + ldrb r0, [r5, #1] + movs r4, #0x41 + rsbs r4, r4, #0 + adds r1, r4, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #1] + movs r1, #0x40 + ands r0, r1 + ldr r3, [sp, #4] + cmp r0, #0 + beq _0812266E + adds r1, r3, #0 + mov r0, sb + ands r1, r0 + mov r0, r8 + ands r0, r7 + orrs r0, r1 + strb r0, [r5] + b _081226AA +_0812266E: + ldrh r0, [r5] + lsls r0, r0, #0x12 + lsrs r0, r0, #0x19 + subs r0, r0, r3 + mov r1, sb + ands r0, r1 + mov r1, r8 + ands r1, r7 + orrs r1, r0 + strb r1, [r5] + b _081226AA +_08122684: + mov r2, sb + ands r4, r2 + mov r0, r8 + ands r0, r7 + orrs r0, r4 + strb r0, [r5] + lsls r0, r0, #0x19 + ldrh r1, [r5] + lsls r1, r1, #0x12 + lsrs r0, r0, #0x19 + lsrs r1, r1, #0x19 + cmp r0, r1 + bne _081226AA + ldrb r0, [r5, #1] + movs r3, #0x41 + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r0, r1 +_081226A8: + strb r0, [r5, #1] +_081226AA: + mov r0, sl + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 + cmp r0, #4 + bhi _081226BA + b _081225B6 +_081226BA: + ldr r4, _081226DC + ldr r0, [r4] + ldr r1, _081226E0 + adds r0, r0, r1 + movs r1, #5 + movs r2, #0 + bl sub_08122810 +_081226CA: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081226DC: .4byte 0x03005AEC +_081226E0: .4byte 0x00002E68 + thumb_func_end UpdateDewfordTrendPerDay + + thumb_func_start sub_081226E4 +sub_081226E4: @ 0x081226E4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + mov r8, r0 + movs r0, #0 + movs r1, #0 + str r0, [sp] + str r1, [sp, #4] + mov r0, r8 + bl SB1ContainsWords + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08122704 + b _081227FE +_08122704: + ldr r4, _08122740 + adds r0, r4, #0 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08122750 + adds r0, r4, #0 + bl FlagSet + ldr r0, _08122744 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08122750 + ldr r0, _08122748 + ldr r1, [r0] + mov r0, r8 + ldrh r2, [r0] + ldr r3, _0812274C + adds r0, r1, r3 + strh r2, [r0] + mov r2, r8 + ldrh r0, [r2, #2] + adds r3, #2 + adds r1, r1, r3 + strh r0, [r1] + movs r0, #1 + b _08122800 + .align 2, 0 +_08122740: .4byte 0x00000893 +_08122744: .4byte 0x00000894 +_08122748: .4byte 0x03005AEC +_0812274C: .4byte 0x00002E6C +_08122750: + mov r0, r8 + ldrh r1, [r0, #2] + lsls r1, r1, #0x10 + ldrh r0, [r0] + orrs r0, r1 + str r0, [sp, #4] + movs r1, #0x80 + lsls r1, r1, #7 + ldr r0, [sp] + orrs r0, r1 + str r0, [sp] + mov r0, sp + bl sub_08122B34 + movs r5, #0 +_0812276E: + ldr r6, _081227D8 + lsls r4, r5, #3 + ldr r1, _081227DC + adds r0, r4, r1 + ldr r1, [r6] + adds r1, r1, r0 + mov r0, sp + movs r2, #0 + bl sub_08122A64 + lsls r0, r0, #0x18 + adds r7, r4, #0 + cmp r0, #0 + beq _081227E0 + movs r2, #4 + mov ip, r6 + cmp r2, r5 + bls _081227B2 + ldr r4, _081227DC +_08122794: + ldr r0, [r6] + lsls r3, r2, #3 + adds r0, r0, r4 + adds r3, r0, r3 + subs r2, #1 + lsls r1, r2, #3 + adds r0, r0, r1 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [r3] + str r1, [r3, #4] + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + cmp r2, r5 + bhi _08122794 +_081227B2: + mov r3, ip + ldr r2, [r3] + ldr r0, _081227DC + adds r2, r2, r0 + adds r2, r2, r7 + ldr r0, [sp] + ldr r1, [sp, #4] + str r0, [r2] + str r1, [r2, #4] + cmp r5, #4 + bne _081227CE + mov r0, r8 + bl sub_080EE780 +_081227CE: + movs r0, #0 + cmp r5, #0 + bne _08122800 + movs r0, #1 + b _08122800 + .align 2, 0 +_081227D8: .4byte 0x03005AEC +_081227DC: .4byte 0x00002E68 +_081227E0: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #4 + bls _0812276E + ldr r2, [r6] + ldr r1, _0812280C + adds r2, r2, r1 + ldr r0, [sp] + ldr r1, [sp, #4] + str r0, [r2] + str r1, [r2, #4] + mov r0, r8 + bl sub_080EE780 +_081227FE: + movs r0, #0 +_08122800: + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0812280C: .4byte 0x00002E88 + thumb_func_end sub_081226E4 + + thumb_func_start sub_08122810 +sub_08122810: @ 0x08122810 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sb, r0 + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sl, r2 + movs r2, #0 + cmp r2, r7 + bhs _08122878 +_0812282C: + adds r1, r2, #1 + lsls r0, r1, #0x10 + lsrs r5, r0, #0x10 + mov r8, r1 + cmp r5, r7 + bhs _0812286E + lsls r0, r2, #3 + mov r1, sb + adds r6, r1, r0 +_0812283E: + lsls r0, r5, #3 + mov r1, sb + adds r4, r1, r0 + adds r0, r4, #0 + adds r1, r6, #0 + mov r2, sl + bl sub_08122A64 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08122864 + ldr r2, [r4] + ldr r3, [r4, #4] + ldr r0, [r6] + ldr r1, [r6, #4] + str r0, [r4] + str r1, [r4, #4] + str r2, [r6] + str r3, [r6, #4] +_08122864: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, r7 + blo _0812283E +_0812286E: + mov r1, r8 + lsls r0, r1, #0x10 + lsrs r2, r0, #0x10 + cmp r2, r7 + blo _0812282C +_08122878: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08122810 + + thumb_func_start ReceiveEasyChatPairsData +ReceiveEasyChatPairsData: @ 0x08122888 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov r8, r0 + adds r6, r1, #0 + movs r4, #0x80 + lsls r4, r4, #1 + adds r0, r4, #0 + bl Alloc + mov sl, r0 + cmp r0, #0 + beq _0812298C + adds r0, r4, #0 + bl Alloc + adds r7, r0, #0 + cmp r7, #0 + bne _081228BC + mov r0, sl + bl Free + b _0812298C +_081228BC: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + movs r5, #0 + cmp r5, sb + bhs _081228EA +_081228CC: + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + add r0, sl + adds r1, r5, #0 + muls r1, r6, r1 + add r1, r8 + movs r2, #0x28 + bl memcpy + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, sb + blo _081228CC +_081228EA: + mov r4, sl + mov r8, r7 + movs r3, #0 + movs r5, #0 + cmp r5, sb + bhs _08122952 +_081228F6: + movs r6, #0 +_081228F8: + adds r0, r7, #0 + adds r1, r4, #0 + adds r2, r3, #0 + str r3, [sp] + bl GetEqualEasyChatPairIndex + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldr r3, [sp] + cmp r0, #0 + bge _08122924 + ldr r0, [r4] + ldr r1, [r4, #4] + mov r2, r8 + adds r2, #8 + mov r8, r2 + subs r2, #8 + stm r2!, {r0, r1} + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + b _0812293C +_08122924: + lsls r0, r0, #3 + adds r2, r7, r0 + ldrb r1, [r2] + lsls r1, r1, #0x19 + ldrb r0, [r4] + lsls r0, r0, #0x19 + cmp r1, r0 + bhs _0812293C + ldr r0, [r4] + ldr r1, [r4, #4] + str r0, [r2] + str r1, [r2, #4] +_0812293C: + adds r4, #8 + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #4 + bls _081228F8 + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, sb + blo _081228F6 +_08122952: + adds r0, r7, #0 + adds r1, r3, #0 + movs r2, #2 + bl sub_08122810 + adds r4, r7, #0 + ldr r0, _0812299C + ldr r0, [r0] + ldr r1, _081229A0 + adds r1, r1, r0 + mov r8, r1 + movs r5, #0 +_0812296A: + ldm r4!, {r0, r1} + mov r2, r8 + adds r2, #8 + mov r8, r2 + subs r2, #8 + stm r2!, {r0, r1} + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #4 + bls _0812296A + mov r0, sl + bl Free + adds r0, r7, #0 + bl Free +_0812298C: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0812299C: .4byte 0x03005AEC +_081229A0: .4byte 0x00002E68 + thumb_func_end ReceiveEasyChatPairsData + + thumb_func_start BufferTrendyPhraseString +BufferTrendyPhraseString: @ 0x081229A4 + push {lr} + ldr r2, _081229C4 + ldr r0, _081229C8 + ldrh r1, [r0] + lsls r1, r1, #3 + ldr r0, [r2] + adds r1, r1, r0 + ldr r0, _081229CC + ldr r2, _081229D0 + adds r1, r1, r2 + movs r2, #2 + movs r3, #1 + bl ConvertEasyChatWordsToString + pop {r0} + bx r0 + .align 2, 0 +_081229C4: .4byte 0x03005AEC +_081229C8: .4byte 0x02037280 +_081229CC: .4byte 0x02021C40 +_081229D0: .4byte 0x00002E6C + thumb_func_end BufferTrendyPhraseString + + thumb_func_start TrendyPhraseIsOld +TrendyPhraseIsOld: @ 0x081229D4 + push {r4, lr} + movs r4, #0 + ldr r0, _08122A24 + ldr r3, [r0] + ldr r1, _08122A28 + adds r0, r3, r1 + ldrb r1, [r0] + lsls r1, r1, #0x19 + lsrs r1, r1, #0x19 + ldr r2, _08122A2C + adds r0, r3, r2 + ldrb r0, [r0] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x19 + subs r1, r1, r0 + cmp r1, #1 + bgt _08122A18 + ldr r1, _08122A30 + adds r0, r3, r1 + ldrb r1, [r0] + movs r2, #0x40 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _08122A18 + ldr r1, _08122A34 + adds r0, r3, r1 + ldrb r1, [r0] + adds r0, r2, #0 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + rsbs r0, r0, #0 + lsrs r4, r0, #0x1f +_08122A18: + ldr r0, _08122A38 + strh r4, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08122A24: .4byte 0x03005AEC +_08122A28: .4byte 0x00002E68 +_08122A2C: .4byte 0x00002E70 +_08122A30: .4byte 0x00002E69 +_08122A34: .4byte 0x00002E71 +_08122A38: .4byte 0x02037290 + thumb_func_end TrendyPhraseIsOld + + thumb_func_start GetDewfordHallPaintingNameIndex +GetDewfordHallPaintingNameIndex: @ 0x08122A3C + ldr r2, _08122A58 + ldr r0, _08122A5C + ldr r0, [r0] + ldr r3, _08122A60 + adds r1, r0, r3 + adds r3, #2 + adds r0, r0, r3 + ldrh r0, [r0] + ldrh r1, [r1] + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + strh r0, [r2] + bx lr + .align 2, 0 +_08122A58: .4byte 0x02037290 +_08122A5C: .4byte 0x03005AEC +_08122A60: .4byte 0x00002E6C + thumb_func_end GetDewfordHallPaintingNameIndex + + thumb_func_start sub_08122A64 +sub_08122A64: @ 0x08122A64 + push {r4, r5, lr} + adds r3, r0, #0 + adds r5, r1, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r2, #0 + cmp r2, #1 + beq _08122AAA + cmp r2, #1 + bgt _08122A7E + cmp r2, #0 + beq _08122A84 + b _08122B26 +_08122A7E: + cmp r0, #2 + beq _08122AD6 + b _08122B26 +_08122A84: + ldrb r0, [r3] + lsls r1, r0, #0x19 + ldrb r0, [r5] + lsls r0, r0, #0x19 + cmp r1, r0 + bhi _08122B22 + cmp r1, r0 + blo _08122AD2 + ldrh r0, [r3] + lsls r3, r0, #0x12 + ldrh r0, [r5] + lsls r2, r0, #0x12 + lsrs r1, r3, #0x19 + lsrs r0, r2, #0x19 + cmp r1, r0 + bhi _08122B22 + lsrs r1, r3, #0x19 + lsrs r0, r2, #0x19 + b _08122ACE +_08122AAA: + ldrh r0, [r3] + lsls r4, r0, #0x12 + ldrh r0, [r5] + lsls r2, r0, #0x12 + lsrs r1, r4, #0x19 + lsrs r0, r2, #0x19 + cmp r1, r0 + bhi _08122B22 + lsrs r1, r4, #0x19 + lsrs r0, r2, #0x19 + cmp r1, r0 + blo _08122AD2 + ldrb r0, [r3] + lsls r1, r0, #0x19 + ldrb r0, [r5] + lsls r0, r0, #0x19 + cmp r1, r0 + bhi _08122B22 +_08122ACE: + cmp r1, r0 + bhs _08122B26 +_08122AD2: + movs r0, #0 + b _08122B2E +_08122AD6: + ldrb r0, [r3] + lsls r1, r0, #0x19 + ldrb r0, [r5] + lsls r0, r0, #0x19 + cmp r1, r0 + bhi _08122B22 + cmp r1, r0 + blo _08122AD2 + ldrh r0, [r3] + lsls r4, r0, #0x12 + ldrh r0, [r5] + lsls r2, r0, #0x12 + lsrs r1, r4, #0x19 + lsrs r0, r2, #0x19 + cmp r1, r0 + bhi _08122B22 + lsrs r1, r4, #0x19 + lsrs r0, r2, #0x19 + cmp r1, r0 + blo _08122AD2 + ldrh r1, [r3, #2] + ldrh r0, [r5, #2] + cmp r1, r0 + bhi _08122B22 + cmp r1, r0 + blo _08122AD2 + ldrh r1, [r3, #4] + ldrh r0, [r5, #4] + cmp r1, r0 + bhi _08122B22 + cmp r1, r0 + blo _08122AD2 + ldrh r1, [r3, #6] + ldrh r0, [r5, #6] + cmp r1, r0 + bhi _08122B22 + cmp r1, r0 + blo _08122AD2 +_08122B22: + movs r0, #1 + b _08122B2E +_08122B26: + bl Random + movs r1, #1 + ands r0, r1 +_08122B2E: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_08122A64 + + thumb_func_start sub_08122B34 +sub_08122B34: @ 0x08122B34 + push {r4, r5, lr} + adds r5, r0, #0 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x62 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x32 + bls _08122B76 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x62 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x50 + bls _08122B76 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x62 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_08122B76: + adds r1, r4, #0 + adds r1, #0x1e + movs r0, #0x7f + ands r1, r0 + lsls r1, r1, #7 + ldrh r2, [r5] + ldr r0, _08122BB8 + ands r0, r2 + orrs r0, r1 + strh r0, [r5] + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r4, #1 + bl __modsi3 + adds r0, #0x1e + movs r1, #0x7f + ands r0, r1 + ldrb r2, [r5] + movs r1, #0x80 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r5] + bl Random + strh r0, [r5, #2] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08122BB8: .4byte 0xFFFFC07F + thumb_func_end sub_08122B34 + + thumb_func_start SB1ContainsWords +SB1ContainsWords: @ 0x08122BBC + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r4, #0 + ldr r6, _08122BE0 +_08122BC4: + lsls r1, r4, #3 + ldr r0, [r6] + adds r1, r1, r0 + ldr r0, _08122BE4 + adds r1, r1, r0 + adds r0, r5, #0 + bl IsEasyChatPairEqual + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08122BE8 + movs r0, #1 + b _08122BF4 + .align 2, 0 +_08122BE0: .4byte 0x03005AEC +_08122BE4: .4byte 0x00002E6C +_08122BE8: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #4 + bls _08122BC4 + movs r0, #0 +_08122BF4: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SB1ContainsWords + + thumb_func_start IsEasyChatPairEqual +IsEasyChatPairEqual: @ 0x08122BFC + push {r4, lr} + adds r3, r0, #0 + adds r2, r1, #0 + movs r4, #0 +_08122C04: + ldrh r1, [r3] + ldrh r0, [r2] + adds r2, #2 + adds r3, #2 + cmp r1, r0 + beq _08122C14 + movs r0, #0 + b _08122C20 +_08122C14: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #1 + bls _08122C04 + movs r0, #1 +_08122C20: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsEasyChatPairEqual + + thumb_func_start GetEqualEasyChatPairIndex +GetEqualEasyChatPairIndex: @ 0x08122C28 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r7, r1, #0 + lsls r2, r2, #0x10 + lsrs r6, r2, #0x10 + movs r4, #0 + cmp r4, r6 + bge _08122C5E +_08122C38: + adds r1, r5, #4 + adds r0, r7, #4 + bl IsEasyChatPairEqual + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08122C4C + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + b _08122C62 +_08122C4C: + adds r5, #8 + lsls r0, r4, #0x10 + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r0, r1 + lsrs r4, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, r6 + blt _08122C38 +_08122C5E: + movs r0, #1 + rsbs r0, r0, #0 +_08122C62: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end GetEqualEasyChatPairIndex + diff --git a/asm/diploma.s b/asm/diploma.s new file mode 100644 index 0000000..cfc38b0 --- /dev/null +++ b/asm/diploma.s @@ -0,0 +1,281 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start VBlankCB +VBlankCB: @ 0x0817ACB4 + push {lr} + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end VBlankCB + + thumb_func_start SetupClearSaveDataScreen +SetupClearSaveDataScreen: @ 0x0817ACC0 + push {r4, lr} + sub sp, #0xc + ldr r0, _0817AE20 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _0817ACD8 + cmp r0, #1 + bne _0817ACD8 + b _0817AE64 +_0817ACD8: + movs r0, #0 + bl SetVBlankCallback + movs r0, #0 + movs r1, #0 + bl SetGpuReg + movs r0, #0x10 + movs r1, #0 + bl SetGpuReg + movs r0, #0x12 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1c + movs r1, #0 + bl SetGpuReg + movs r0, #0x1e + movs r1, #0 + bl SetGpuReg + movs r0, #0x40 + movs r1, #0 + bl SetGpuReg + movs r0, #0x44 + movs r1, #0 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0 + bl SetGpuReg + movs r0, #0x4a + movs r1, #0 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + add r0, sp, #4 + movs r4, #0 + strh r4, [r0] + ldr r1, _0817AE24 + str r0, [r1] + movs r0, #0xc0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _0817AE28 + str r0, [r1, #8] + ldr r0, [r1, #8] + movs r2, #0 + str r2, [sp, #8] + add r0, sp, #8 + str r0, [r1] + movs r0, #0xe0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _0817AE2C + str r0, [r1, #8] + ldr r0, [r1, #8] + add r0, sp, #4 + strh r2, [r0] + str r0, [r1] + ldr r0, _0817AE30 + str r0, [r1, #4] + ldr r0, _0817AE34 + str r0, [r1, #8] + ldr r0, [r1, #8] + bl ResetPaletteFade + ldr r2, _0817AE38 + ldr r0, _0817AE3C + strh r0, [r2] + ldr r1, _0817AE40 + strh r0, [r1] + ldr r0, _0817AE44 + strh r0, [r2, #2] + strh r0, [r1, #2] + movs r1, #0 + ldr r3, _0817AE48 + ldr r0, _0817AE4C + adds r2, r0, #0 +_0817AD94: + lsls r0, r1, #1 + adds r0, r0, r3 + strh r2, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0xf + bls _0817AD94 + movs r1, #0 + ldr r4, _0817AE50 + movs r3, #1 + ldr r2, _0817AE54 +_0817ADAC: + lsls r0, r1, #1 + adds r0, r0, r4 + strh r3, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, r2 + bls _0817ADAC + bl ResetTasks + bl ResetSpriteData + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _0817AE58 + movs r0, #0 + movs r2, #2 + bl InitBgsFromTemplates + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #3 + bl ShowBg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + bl InitClearSaveDataScreenWindows + ldr r0, _0817AE5C + str r0, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + movs r0, #1 + bl EnableInterrupts + ldr r0, _0817AE60 + bl SetVBlankCallback + ldr r0, _0817AE20 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + movs r1, #1 + strb r1, [r0] + b _0817AE88 + .align 2, 0 +_0817AE20: .4byte 0x03002360 +_0817AE24: .4byte 0x040000D4 +_0817AE28: .4byte 0x8100C000 +_0817AE2C: .4byte 0x85000100 +_0817AE30: .4byte 0x05000002 +_0817AE34: .4byte 0x810001FF +_0817AE38: .4byte 0x020373B4 +_0817AE3C: .4byte 0x00007FFF +_0817AE40: .4byte 0x020377B4 +_0817AE44: .4byte 0x00003945 +_0817AE48: .4byte 0x06000020 +_0817AE4C: .4byte 0x00001111 +_0817AE50: .4byte 0x0600F000 +_0817AE54: .4byte 0x000003FF +_0817AE58: .4byte 0x085CDB90 +_0817AE5C: .4byte 0x0000FFFF +_0817AE60: .4byte 0x0817ACB5 +_0817AE64: + bl UpdatePaletteFade + ldr r0, _0817AE80 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0817AE88 + ldr r0, _0817AE84 + bl SetMainCallback2 + movs r0, #1 + b _0817AE8A + .align 2, 0 +_0817AE80: .4byte 0x02037C74 +_0817AE84: .4byte 0x0817ACA5 +_0817AE88: + movs r0, #0 +_0817AE8A: + add sp, #0xc + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SetupClearSaveDataScreen + + thumb_func_start CB2_FadeAndDoReset +CB2_FadeAndDoReset: @ 0x0817AE94 + push {r4, lr} + sub sp, #4 + ldr r0, _0817AEC0 + movs r1, #0x87 + lsls r1, r1, #3 + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, #0 + beq _0817AEAA + cmp r0, #1 + beq _0817AEC8 +_0817AEAA: + ldr r0, _0817AEC4 + str r0, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + movs r0, #1 + strb r0, [r4] + b _0817AEE0 + .align 2, 0 +_0817AEC0: .4byte 0x03002360 +_0817AEC4: .4byte 0x0000FFFF +_0817AEC8: + bl UpdatePaletteFade + ldr r0, _0817AEE8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0817AEE0 + bl FreeAllWindowBuffers + bl DoSoftReset +_0817AEE0: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0817AEE8: .4byte 0x02037C74 + thumb_func_end CB2_FadeAndDoReset + + thumb_func_start InitClearSaveDataScreenWindows +InitClearSaveDataScreenWindows: @ 0x0817AEEC + push {lr} + ldr r0, _0817AF1C + bl InitWindows + bl DeactivateAllTextPrinters + movs r0, #0 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #0 + movs r1, #0 + movs r2, #2 + movs r3, #0xe0 + bl LoadWindowGfx + ldr r0, _0817AF20 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + pop {r0} + bx r0 + .align 2, 0 +_0817AF1C: .4byte 0x085CDB98 +_0817AF20: .4byte 0x085D7B04 + thumb_func_end InitClearSaveDataScreenWindows + diff --git a/asm/dma3_manager.s b/asm/dma3_manager.s new file mode 100644 index 0000000..37ea346 --- /dev/null +++ b/asm/dma3_manager.s @@ -0,0 +1,576 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ClearDma3Requests +ClearDma3Requests: @ 0x08000C48 + push {lr} + ldr r2, _08000C74 + movs r0, #1 + strb r0, [r2] + ldr r1, _08000C78 + movs r0, #0 + strb r0, [r1] + movs r3, #0 + ldr r0, _08000C7C + movs r1, #0x7f +_08000C5C: + strh r3, [r0, #8] + str r3, [r0] + str r3, [r0, #4] + adds r0, #0x10 + subs r1, #1 + cmp r1, #0 + bge _08000C5C + movs r0, #0 + strb r0, [r2] + pop {r0} + bx r0 + .align 2, 0 +_08000C74: .4byte 0x03000810 +_08000C78: .4byte 0x03000811 +_08000C7C: .4byte 0x03000010 + thumb_func_end ClearDma3Requests + + thumb_func_start ProcessDma3Requests +ProcessDma3Requests: @ 0x08000C80 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + ldr r0, _08000CFC + ldrb r0, [r0] + cmp r0, #0 + beq _08000C96 + b _08000ED6 +_08000C96: + movs r0, #0 + str r0, [sp, #8] + ldr r1, _08000D00 + ldr r2, _08000D04 + ldrb r0, [r2] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrh r0, [r0, #8] + mov ip, r2 + cmp r0, #0 + bne _08000CAE + b _08000ED6 +_08000CAE: + mov r8, r1 + adds r1, #4 + mov sl, r1 + movs r6, #0x80 + lsls r6, r6, #5 + ldr r7, _08000D08 + movs r2, #0 + mov sb, r2 +_08000CBE: + mov r3, ip + ldrb r0, [r3] + lsls r5, r0, #4 + mov r0, r8 + adds r1, r5, r0 + ldrh r0, [r1, #8] + ldr r2, [sp, #8] + adds r0, r2, r0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #8] + movs r0, #0xa0 + lsls r0, r0, #8 + ldr r3, [sp, #8] + cmp r3, r0 + bls _08000CE0 + b _08000ED6 +_08000CE0: + ldr r0, _08000D0C + ldrb r0, [r0] + cmp r0, #0xe0 + bls _08000CEA + b _08000ED6 +_08000CEA: + ldrh r0, [r1, #0xa] + cmp r0, #2 + beq _08000D60 + cmp r0, #2 + bgt _08000D10 + cmp r0, #1 + beq _08000D1C + b _08000E80 + .align 2, 0 +_08000CFC: .4byte 0x03000810 +_08000D00: .4byte 0x03000010 +_08000D04: .4byte 0x03000811 +_08000D08: .4byte 0x040000D4 +_08000D0C: .4byte 0x04000006 +_08000D10: + cmp r0, #3 + beq _08000DCC + cmp r0, #4 + bne _08000D1A + b _08000E18 +_08000D1A: + b _08000E80 +_08000D1C: + ldr r3, [r1] + mov r2, sl + adds r0, r5, r2 + ldr r2, [r0] + ldrh r1, [r1, #8] + cmp r1, r6 + bhi _08000D36 + str r3, [r7] + str r2, [r7, #4] + lsrs r0, r1, #2 + movs r1, #0x84 + lsls r1, r1, #0x18 + b _08000E3A +_08000D36: + ldr r4, _08000D58 + str r3, [r4] + str r2, [r4, #4] + ldr r0, _08000D5C + str r0, [r4, #8] + ldr r0, [r4, #8] + adds r3, r3, r6 + adds r2, r2, r6 + subs r1, r1, r6 + cmp r1, r6 + bhi _08000D36 + str r3, [r4] + str r2, [r4, #4] + lsrs r0, r1, #2 + movs r1, #0x84 + lsls r1, r1, #0x18 + b _08000E06 + .align 2, 0 +_08000D58: .4byte 0x040000D4 +_08000D5C: .4byte 0x84000400 +_08000D60: + mov r3, sl + adds r0, r5, r3 + ldr r4, [r0] + ldrh r1, [r1, #8] + cmp r1, r6 + bhi _08000D84 + mov r0, r8 + adds r0, #0xc + adds r0, r5, r0 + ldr r0, [r0] + str r0, [sp] + mov r5, sp + str r5, [r7] + str r4, [r7, #4] + lsrs r0, r1, #2 + movs r1, #0x85 + lsls r1, r1, #0x18 + b _08000E3A +_08000D84: + mov r2, ip + ldrb r0, [r2] + lsls r0, r0, #4 + mov r5, r8 + adds r5, #0xc + adds r0, r0, r5 + ldr r0, [r0] + str r0, [sp] + ldr r3, _08000DC4 + mov r0, sp + str r0, [r3] + str r4, [r3, #4] + ldr r0, _08000DC8 + str r0, [r3, #8] + ldr r0, [r3, #8] + adds r4, r4, r6 + subs r1, r1, r6 + cmp r1, r6 + bhi _08000D84 + ldrb r0, [r2] + lsls r0, r0, #4 + adds r0, r0, r5 + ldr r0, [r0] + str r0, [sp] + mov r2, sp + str r2, [r3] + str r4, [r3, #4] + lsrs r0, r1, #2 + movs r1, #0x85 + lsls r1, r1, #0x18 + b _08000E7A + .align 2, 0 +_08000DC4: .4byte 0x040000D4 +_08000DC8: .4byte 0x85000400 +_08000DCC: + ldr r3, [r1] + mov r2, sl + adds r0, r5, r2 + ldr r2, [r0] + ldrh r1, [r1, #8] + cmp r1, r6 + bhi _08000DE6 + str r3, [r7] + str r2, [r7, #4] + lsrs r0, r1, #1 + movs r1, #0x80 + lsls r1, r1, #0x18 + b _08000E3A +_08000DE6: + ldr r4, _08000E10 + str r3, [r4] + str r2, [r4, #4] + ldr r0, _08000E14 + str r0, [r4, #8] + ldr r0, [r4, #8] + adds r3, r3, r6 + adds r2, r2, r6 + subs r1, r1, r6 + cmp r1, r6 + bhi _08000DE6 + str r3, [r4] + str r2, [r4, #4] + lsrs r0, r1, #1 + movs r1, #0x80 + lsls r1, r1, #0x18 +_08000E06: + orrs r0, r1 + str r0, [r4, #8] + ldr r0, [r4, #8] + b _08000E80 + .align 2, 0 +_08000E10: .4byte 0x040000D4 +_08000E14: .4byte 0x80000800 +_08000E18: + mov r3, sl + adds r0, r5, r3 + ldr r2, [r0] + ldrh r4, [r1, #8] + add r1, sp, #4 + cmp r4, r6 + bhi _08000E42 + mov r0, r8 + adds r0, #0xc + adds r0, r5, r0 + ldr r0, [r0] + strh r0, [r1] + str r1, [r7] + str r2, [r7, #4] + lsrs r0, r4, #1 + movs r1, #0x81 + lsls r1, r1, #0x18 +_08000E3A: + orrs r0, r1 + str r0, [r7, #8] + ldr r0, [r7, #8] + b _08000E80 +_08000E42: + mov r5, ip + ldrb r0, [r5] + lsls r0, r0, #4 + ldr r3, _08000EE8 + adds r0, r0, r3 + ldr r0, [r0] + strh r0, [r1] + ldr r3, _08000EEC + str r1, [r3] + str r2, [r3, #4] + ldr r0, _08000EF0 + str r0, [r3, #8] + ldr r0, [r3, #8] + adds r2, r2, r6 + subs r4, r4, r6 + cmp r4, r6 + bhi _08000E42 + ldrb r0, [r5] + lsls r0, r0, #4 + ldr r5, _08000EE8 + adds r0, r0, r5 + ldr r0, [r0] + strh r0, [r1] + str r1, [r3] + str r2, [r3, #4] + lsrs r0, r4, #1 + movs r1, #0x81 + lsls r1, r1, #0x18 +_08000E7A: + orrs r0, r1 + str r0, [r3, #8] + ldr r0, [r3, #8] +_08000E80: + ldr r1, _08000EF4 + mov r3, ip + ldrb r0, [r3] + lsls r0, r0, #4 + adds r0, r0, r1 + mov r2, sb + str r2, [r0] + ldrb r0, [r3] + lsls r0, r0, #4 + add r0, sl + str r2, [r0] + ldrb r0, [r3] + lsls r0, r0, #4 + adds r0, r0, r1 + movs r4, #0 + strh r2, [r0, #8] + ldrb r0, [r3] + lsls r0, r0, #4 + adds r0, r0, r1 + mov r5, sb + strh r5, [r0, #0xa] + ldrb r0, [r3] + lsls r0, r0, #4 + adds r1, #0xc + adds r0, r0, r1 + mov r1, sb + str r1, [r0] + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + lsls r0, r0, #0x18 + cmp r0, #0 + bge _08000EC4 + strb r4, [r3] +_08000EC4: + mov r2, ip + ldrb r0, [r2] + lsls r0, r0, #4 + ldr r3, _08000EF4 + adds r0, r0, r3 + ldrh r0, [r0, #8] + cmp r0, #0 + beq _08000ED6 + b _08000CBE +_08000ED6: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08000EE8: .4byte 0x0300001C +_08000EEC: .4byte 0x040000D4 +_08000EF0: .4byte 0x81000800 +_08000EF4: .4byte 0x03000010 + thumb_func_end ProcessDma3Requests + + thumb_func_start RequestDma3Copy +RequestDma3Copy: @ 0x08000EF8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov ip, r0 + mov r8, r1 + lsls r2, r2, #0x10 + lsrs r7, r2, #0x10 + lsls r3, r3, #0x18 + lsrs r4, r3, #0x18 + movs r5, #0 + ldr r1, _08000F44 + movs r0, #1 + strb r0, [r1] + ldr r0, _08000F48 + ldrb r2, [r0] + mov sl, r1 + ldr r6, _08000F4C + mov sb, r6 + lsls r0, r2, #4 + adds r1, r0, r6 +_08000F24: + lsls r3, r2, #4 + ldrh r0, [r1, #8] + cmp r0, #0 + bne _08000F64 + mov r0, ip + str r0, [r1] + mov r0, sb + adds r0, #4 + adds r0, r3, r0 + mov r3, r8 + str r3, [r0] + strh r7, [r1, #8] + cmp r4, #1 + bne _08000F50 + strh r4, [r1, #0xa] + b _08000F54 + .align 2, 0 +_08000F44: .4byte 0x03000810 +_08000F48: .4byte 0x03000811 +_08000F4C: .4byte 0x03000010 +_08000F50: + movs r0, #3 + strh r0, [r1, #0xa] +_08000F54: + movs r0, #0 + ldr r1, _08000F60 + strb r0, [r1] + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + b _08000F80 + .align 2, 0 +_08000F60: .4byte 0x03000810 +_08000F64: + adds r1, #0x10 + adds r2, #1 + cmp r2, #0x7f + ble _08000F70 + adds r1, r6, #0 + movs r2, #0 +_08000F70: + adds r5, #1 + cmp r5, #0x7f + ble _08000F24 + movs r0, #0 + mov r3, sl + strb r0, [r3] + movs r0, #1 + rsbs r0, r0, #0 +_08000F80: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end RequestDma3Copy + + thumb_func_start RequestDma3Fill +RequestDma3Fill: @ 0x08000F90 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sb, r0 + mov r8, r1 + lsls r2, r2, #0x10 + lsrs r7, r2, #0x10 + lsls r3, r3, #0x18 + lsrs r5, r3, #0x18 + movs r6, #0 + ldr r0, _08000FE8 + ldrb r2, [r0] + ldr r1, _08000FEC + movs r0, #1 + strb r0, [r1] + mov sl, r1 + ldr r0, _08000FF0 + mov ip, r0 + mov r4, ip + lsls r0, r2, #4 + adds r0, #8 + adds r1, r0, r4 +_08000FC0: + lsls r3, r2, #4 + ldrh r0, [r1] + cmp r0, #0 + bne _08001008 + adds r0, r4, #4 + adds r0, r3, r0 + mov r6, r8 + str r6, [r0] + strh r7, [r1] + strh r5, [r1, #2] + adds r0, r4, #0 + adds r0, #0xc + adds r0, r3, r0 + mov r3, sb + str r3, [r0] + cmp r5, #1 + bne _08000FF4 + movs r0, #2 + b _08000FF6 + .align 2, 0 +_08000FE8: .4byte 0x03000811 +_08000FEC: .4byte 0x03000810 +_08000FF0: .4byte 0x03000010 +_08000FF4: + movs r0, #4 +_08000FF6: + strh r0, [r1, #2] + movs r0, #0 + ldr r6, _08001004 + strb r0, [r6] + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + b _08001026 + .align 2, 0 +_08001004: .4byte 0x03000810 +_08001008: + adds r1, #0x10 + adds r2, #1 + cmp r2, #0x7f + ble _08001016 + mov r1, ip + adds r1, #8 + movs r2, #0 +_08001016: + adds r6, #1 + cmp r6, #0x7f + ble _08000FC0 + movs r0, #0 + mov r1, sl + strb r0, [r1] + movs r0, #1 + rsbs r0, r0, #0 +_08001026: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end RequestDma3Fill + + thumb_func_start CheckForSpaceForDma3Request +CheckForSpaceForDma3Request: @ 0x08001034 + push {lr} + movs r2, #0 + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + movs r3, #1 + rsbs r3, r3, #0 + cmp r1, r3 + bne _0800105C + ldr r1, _08001058 +_08001046: + ldrh r0, [r1, #8] + cmp r0, #0 + bne _08001068 + adds r1, #0x10 + adds r2, #1 + cmp r2, #0x7f + ble _08001046 +_08001054: + movs r0, #0 + b _0800106C + .align 2, 0 +_08001058: .4byte 0x03000010 +_0800105C: + ldr r0, _08001070 + lsls r1, r1, #4 + adds r1, r1, r0 + ldrh r0, [r1, #8] + cmp r0, #0 + beq _08001054 +_08001068: + movs r0, #1 + rsbs r0, r0, #0 +_0800106C: + pop {r1} + bx r1 + .align 2, 0 +_08001070: .4byte 0x03000010 + thumb_func_end CheckForSpaceForDma3Request + diff --git a/asm/dodrio_berry_picking.s b/asm/dodrio_berry_picking.s new file mode 100644 index 0000000..c33714a --- /dev/null +++ b/asm/dodrio_berry_picking.s @@ -0,0 +1,12350 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_08024704 +sub_08024704: @ 0x08024704 + push {r4, r5, r6, lr} + adds r5, r1, #0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r1, _080247AC + movs r0, #0 + str r0, [r1] + ldr r0, _080247B0 + ldrb r0, [r0] + cmp r0, #0 + beq _080247D8 + ldr r4, _080247B4 + ldr r0, _080247B8 + bl AllocZeroed + str r0, [r4] + cmp r0, #0 + beq _080247D8 + bl sub_080247E4 + ldr r0, [r4] + bl sub_080247F8 + ldr r0, [r4] + str r5, [r0] + bl GetMultiplayerId + ldr r1, [r4] + adds r1, #0x28 + strb r0, [r1] + ldr r1, [r4] + ldr r2, _080247BC + adds r0, r1, r2 + adds r2, r1, #0 + adds r2, #0x28 + ldrb r3, [r2] + lsls r2, r3, #4 + subs r2, r2, r3 + lsls r2, r2, #2 + adds r1, r1, r2 + ldr r2, _080247C0 + adds r1, r1, r2 + movs r2, #0x3c + bl memcpy + ldr r0, [r4] + adds r1, r0, #0 + adds r1, #0x28 + ldrb r1, [r1] + lsls r1, r1, #2 + ldr r2, _080247C4 + adds r1, r1, r2 + adds r0, r0, r1 + movs r1, #0x64 + muls r1, r6, r1 + ldr r2, _080247C8 + adds r1, r1, r2 + bl sub_08025FC0 + ldr r0, _080247CC + movs r1, #1 + bl CreateTask + ldr r0, _080247D0 + bl SetMainCallback2 + bl sub_080271B0 + ldr r2, [r4] + adds r0, r2, #0 + adds r0, #0x24 + ldrb r0, [r0] + adds r1, r2, #0 + adds r1, #0x44 + adds r2, #0x48 + bl sub_0802691C + bl StopMapMusic + ldr r0, _080247D4 + bl PlayNewMapMusic + b _080247DE + .align 2, 0 +_080247AC: .4byte 0x03000DB0 +_080247B0: .4byte 0x030031C4 +_080247B4: .4byte 0x0202294C +_080247B8: .4byte 0x00003330 +_080247BC: .4byte 0x000032CC +_080247C0: .4byte 0x000031A0 +_080247C4: .4byte 0x0000318C +_080247C8: .4byte 0x02024190 +_080247CC: .4byte 0x08024991 +_080247D0: .4byte 0x08025F95 +_080247D4: .4byte 0x0000021E +_080247D8: + adds r0, r5, #0 + bl SetMainCallback2 +_080247DE: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_08024704 + + thumb_func_start sub_080247E4 +sub_080247E4: @ 0x080247E4 + push {lr} + bl ResetTasks + bl ResetSpriteData + bl FreeAllSpritePalettes + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080247E4 + + thumb_func_start sub_080247F8 +sub_080247F8: @ 0x080247F8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x28 + adds r2, r0, #0 + movs r0, #0 + strb r0, [r2, #0xc] + strb r0, [r2, #0x10] + strb r0, [r2, #0x14] + strb r0, [r2, #0x18] + strb r0, [r2, #0x1c] + movs r3, #0x8e + lsls r3, r3, #1 + adds r1, r2, r3 + str r0, [r1] + movs r7, #0x90 + lsls r7, r7, #1 + adds r1, r2, r7 + str r0, [r1] + adds r1, r2, #0 + adds r1, #0x30 + strb r0, [r1] + adds r1, #0x10 + strb r0, [r1] + subs r1, #4 + strb r0, [r1] + adds r3, #0x10 + adds r1, r2, r3 + str r0, [r1] + movs r5, #0 + adds r1, r2, #0 + adds r1, #0x98 + movs r3, #0 +_0802483E: + adds r0, r1, r5 + strb r3, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #3 + bls _0802483E + movs r5, #0 + adds r7, r2, #0 + adds r7, #0xa8 + str r7, [sp] + adds r0, r2, #0 + adds r0, #0xb0 + str r0, [sp, #0xc] + movs r1, #0x4a + adds r1, r1, r2 + mov sl, r1 + movs r3, #0x4c + adds r3, r3, r2 + mov sb, r3 + movs r7, #0x4e + adds r7, r7, r2 + mov ip, r7 + subs r0, #0x60 + str r0, [sp, #0x24] + adds r6, r2, #0 + adds r6, #0x54 + adds r1, r2, #0 + adds r1, #0xd0 + str r1, [sp, #0x1c] + adds r3, r2, #0 + adds r3, #0xdc + str r3, [sp, #0x20] + adds r7, r2, #0 + adds r7, #0xc4 + str r7, [sp, #0x14] + adds r0, #0xa4 + str r0, [sp, #4] + adds r1, #0x25 + str r1, [sp, #8] + subs r3, #0xbc + str r3, [sp, #0x10] + movs r7, #0x24 + adds r7, r7, r2 + mov r8, r7 + subs r0, #0xc0 + str r0, [sp, #0x18] + movs r3, #0 + movs r1, #0x86 + lsls r1, r1, #1 + adds r4, r2, r1 + movs r7, #0x98 + lsls r7, r7, #1 + adds r2, r2, r7 +_080248AA: + ldr r1, [sp] + adds r0, r1, r5 + strb r3, [r0] + ldr r7, [sp, #0xc] + adds r0, r7, r5 + strb r3, [r0] + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #2 + mov r7, sl + adds r1, r7, r0 + strh r3, [r1] + mov r7, sb + adds r1, r7, r0 + strh r3, [r1] + mov r7, ip + adds r1, r7, r0 + strh r3, [r1] + ldr r7, [sp, #0x24] + adds r1, r7, r0 + strh r3, [r1] + adds r0, r6, r0 + strh r3, [r0] + adds r0, r4, r5 + strb r3, [r0] + lsls r0, r5, #2 + adds r0, r2, r0 + str r3, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #4 + bls _080248AA + movs r5, #0 + movs r3, #0 + movs r4, #0xff + ldr r6, [sp, #0x1c] +_080248F4: + adds r0, r6, r5 + strb r3, [r0] + ldr r1, [sp, #0x20] + adds r0, r1, r5 + strb r3, [r0] + ldr r7, [sp, #0x14] + adds r0, r7, r5 + strb r3, [r0] + lsls r1, r5, #1 + ldr r0, [sp, #4] + adds r2, r0, r1 + ldrb r0, [r2] + orrs r0, r4 + strb r0, [r2] + ldr r7, [sp, #8] + adds r1, r7, r1 + ldrb r0, [r1] + orrs r0, r4 + strb r0, [r1] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0xa + bls _080248F4 + bl GetMultiplayerId + movs r1, #0 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08024932 + movs r1, #1 +_08024932: + ldr r0, [sp, #0x10] + strb r1, [r0] + bl GetLinkPlayerCount + mov r1, r8 + strb r0, [r1] + bl GetMultiplayerId + ldr r3, [sp, #0x18] + strb r0, [r3] + movs r5, #1 + mov r7, r8 + ldrb r7, [r7] + cmp r5, r7 + bhs _0802497E + ldr r7, [sp, #0x18] + mov r6, r8 +_08024954: + adds r4, r7, r5 + subs r0, r5, #1 + adds r0, r7, r0 + ldrb r0, [r0] + adds r0, #1 + strb r0, [r4] + ldrb r2, [r4] + ldrb r1, [r6] + subs r0, r1, #1 + cmp r2, r0 + ble _08024972 + adds r0, r2, #0 + bl __umodsi3 + strb r0, [r4] +_08024972: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldrb r0, [r6] + cmp r5, r0 + blo _08024954 +_0802497E: + add sp, #0x28 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080247F8 + + thumb_func_start sub_08024990 +sub_08024990: @ 0x08024990 + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r0, _080249B0 + ldr r0, [r0] + ldrb r0, [r0, #0xc] + cmp r0, #7 + bls _080249A4 + b _08024AFC +_080249A4: + lsls r0, r0, #2 + ldr r1, _080249B4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080249B0: .4byte 0x0202294C +_080249B4: .4byte 0x080249B8 +_080249B8: @ jump table + .4byte _080249D8 @ case 0 + .4byte _080249EC @ case 1 + .4byte _08024A14 @ case 2 + .4byte _08024A22 @ case 3 + .4byte _08024A48 @ case 4 + .4byte _08024A9C @ case 5 + .4byte _08024AAE @ case 6 + .4byte _08024AD8 @ case 7 +_080249D8: + movs r0, #0 + bl SetVBlankCallback + ldr r0, _080249E8 + movs r1, #4 + bl sub_08025FD4 + b _08024AE8 + .align 2, 0 +_080249E8: .4byte 0x080256D9 +_080249EC: + ldr r0, _08024A0C + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080249FA + b _08024B08 +_080249FA: + ldr r4, _08024A10 + ldr r0, [r4] + movs r1, #0xb0 + lsls r1, r1, #1 + adds r0, r0, r1 + bl sub_08028FA0 + ldr r1, [r4] + b _08024AEC + .align 2, 0 +_08024A0C: .4byte 0x080256D9 +_08024A10: .4byte 0x0202294C +_08024A14: + bl sub_0802A464 + cmp r0, #0 + bne _08024B08 + bl sub_0800FF34 + b _08024AE8 +_08024A22: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08024B08 + ldr r0, _08024A44 + ldrb r0, [r0] + cmp r0, #0 + beq _08024AE8 + bl LoadWirelessStatusIndicatorSpriteGfx + movs r0, #0 + movs r1, #0 + bl CreateWirelessStatusIndicatorSprite + b _08024AE8 + .align 2, 0 +_08024A44: .4byte 0x030031C4 +_08024A48: + ldr r0, _08024A94 + ldr r0, [r0] + adds r0, #0x24 + ldrb r5, [r0] + bl sub_080280D4 + movs r4, #0 + cmp r4, r5 + bhs _08024A82 +_08024A5A: + ldr r0, _08024A94 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0x34 + adds r0, r0, r4 + ldrb r2, [r0] + lsls r0, r2, #2 + ldr r3, _08024A98 + adds r0, r0, r3 + adds r0, r1, r0 + adds r1, #0x24 + ldrb r3, [r1] + adds r1, r4, #0 + bl sub_08028134 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r5 + blo _08024A5A +_08024A82: + ldr r4, _08024A94 + ldr r0, [r4] + adds r0, #0x24 + ldrb r1, [r0] + movs r0, #0 + bl sub_080283B8 + ldr r1, [r4] + b _08024AEC + .align 2, 0 +_08024A94: .4byte 0x0202294C +_08024A98: .4byte 0x0000318C +_08024A9C: + bl sub_08028760 + bl sub_080287B4 + bl sub_08028A70 + bl sub_08028460 + b _08024AE8 +_08024AAE: + movs r4, #1 + rsbs r4, r4, #0 + adds r0, r4, #0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + movs r0, #0 + str r0, [sp] + adds r0, r4, #0 + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r0, _08024AD4 + bl SetVBlankCallback + b _08024AE8 + .align 2, 0 +_08024AD4: .4byte 0x08025FAD +_08024AD8: + bl UpdatePaletteFade + ldr r0, _08024AF4 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08024B08 +_08024AE8: + ldr r0, _08024AF8 + ldr r1, [r0] +_08024AEC: + ldrb r0, [r1, #0xc] + adds r0, #1 + strb r0, [r1, #0xc] + b _08024B08 + .align 2, 0 +_08024AF4: .4byte 0x02037C74 +_08024AF8: .4byte 0x0202294C +_08024AFC: + adds r0, r1, #0 + bl DestroyTask + ldr r0, _08024B10 + bl sub_08025FE4 +_08024B08: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08024B10: .4byte 0x08025665 + thumb_func_end sub_08024990 + + thumb_func_start sub_08024B14 +sub_08024B14: @ 0x08024B14 + push {lr} + bl sub_08025ACC + ldr r1, _08024B40 + ldr r0, _08024B44 + ldr r0, [r0] + ldrb r0, [r0, #0x18] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + thumb_func_end sub_08024B14 + + thumb_func_start sub_08024B2C +sub_08024B2C: @ 0x08024B2C + ldr r0, _08024B48 + ldr r0, [r0] + cmp r0, #0 + bne _08024B38 + bl sub_080268B4 +_08024B38: + bl sub_08025B18 + pop {r0} + bx r0 + .align 2, 0 +_08024B40: .4byte 0x082CB350 +_08024B44: .4byte 0x0202294C +_08024B48: .4byte 0x03000DB0 + thumb_func_end sub_08024B2C + + thumb_func_start sub_08024B4C +sub_08024B4C: @ 0x08024B4C + push {lr} + bl sub_08025BD4 + ldr r1, _08024B78 + ldr r0, _08024B7C + ldr r0, [r0] + ldrb r0, [r0, #0x18] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + thumb_func_end sub_08024B4C + + thumb_func_start sub_08024B64 +sub_08024B64: @ 0x08024B64 + ldr r0, _08024B80 + ldr r0, [r0] + cmp r0, #0 + bne _08024B70 + bl sub_080268E8 +_08024B70: + bl sub_08025CA0 + pop {r0} + bx r0 + .align 2, 0 +_08024B78: .4byte 0x082CB380 +_08024B7C: .4byte 0x0202294C +_08024B80: .4byte 0x03000DB0 + thumb_func_end sub_08024B64 + + thumb_func_start sub_08024B84 +sub_08024B84: @ 0x08024B84 + push {r4, lr} + ldr r4, _08024B98 + ldr r0, [r4] + ldrb r0, [r0, #0x10] + cmp r0, #0 + beq _08024B9C + cmp r0, #1 + beq _08024BB2 + b _08024BC0 + .align 2, 0 +_08024B98: .4byte 0x0202294C +_08024B9C: + movs r0, #1 + bl sub_08028230 + movs r0, #1 + bl sub_0802900C + ldr r1, [r4] + ldrb r0, [r1, #0x10] + adds r0, #1 + strb r0, [r1, #0x10] + b _08024BC0 +_08024BB2: + bl sub_0802A464 + cmp r0, #0 + bne _08024BC0 + movs r0, #1 + bl sub_08026008 +_08024BC0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08024B84 + + thumb_func_start sub_08024BC8 +sub_08024BC8: @ 0x08024BC8 + push {r4, lr} + ldr r4, _08024BE4 + ldr r1, [r4] + ldrb r0, [r1, #0x10] + cmp r0, #0 + bne _08024BE8 + bl sub_08026088 + ldr r1, [r4] + ldrb r0, [r1, #0x10] + adds r0, #1 + strb r0, [r1, #0x10] + b _08024BF8 + .align 2, 0 +_08024BE4: .4byte 0x0202294C +_08024BE8: + movs r0, #0x8c + lsls r0, r0, #1 + adds r1, r1, r0 + movs r0, #1 + str r0, [r1] + movs r0, #2 + bl sub_08026008 +_08024BF8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08024BC8 + + thumb_func_start sub_08024C00 +sub_08024C00: @ 0x08024C00 + push {r4, lr} + sub sp, #4 + ldr r1, _08024C1C + ldr r0, [r1] + ldrb r0, [r0, #0x10] + adds r4, r1, #0 + cmp r0, #5 + bhi _08024CD0 + lsls r0, r0, #2 + ldr r1, _08024C20 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08024C1C: .4byte 0x0202294C +_08024C20: .4byte 0x08024C24 +_08024C24: @ jump table + .4byte _08024C3C @ case 0 + .4byte _08024C58 @ case 1 + .4byte _08024C68 @ case 2 + .4byte _08024C8C @ case 3 + .4byte _08024CA0 @ case 4 + .4byte _08024CC0 @ case 5 +_08024C3C: + movs r0, #0 + str r0, [sp] + movs r0, #7 + movs r1, #8 + movs r2, #0x78 + movs r3, #0x50 + bl sub_0802E788 + ldr r0, _08024C54 + ldr r1, [r0] + b _08024CB8 + .align 2, 0 +_08024C54: .4byte 0x0202294C +_08024C58: + bl sub_0800FF34 + ldr r0, _08024C64 + ldr r1, [r0] + b _08024CB8 + .align 2, 0 +_08024C64: .4byte 0x0202294C +_08024C68: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08024CD0 + ldr r2, _08024C88 + ldr r1, [r2] + ldrb r0, [r1, #0x10] + adds r0, #1 + movs r3, #0 + strb r0, [r1, #0x10] + ldr r0, [r2] + adds r0, #0x30 + strb r3, [r0] + b _08024CD0 + .align 2, 0 +_08024C88: .4byte 0x0202294C +_08024C8C: + bl sub_0802E7E8 + cmp r0, #0 + bne _08024CD0 + ldr r0, _08024C9C + ldr r1, [r0] + b _08024CB8 + .align 2, 0 +_08024C9C: .4byte 0x0202294C +_08024CA0: + ldr r1, [r4] + adds r1, #0x30 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + bls _08024CD0 + bl sub_0800FF34 + ldr r1, [r4] +_08024CB8: + ldrb r0, [r1, #0x10] + adds r0, #1 + strb r0, [r1, #0x10] + b _08024CD0 +_08024CC0: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08024CD0 + movs r0, #3 + bl sub_08026008 +_08024CD0: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08024C00 + + thumb_func_start sub_08024CD8 +sub_08024CD8: @ 0x08024CD8 + push {lr} + ldr r0, _08024CFC + ldr r1, [r0] + ldrb r0, [r1, #0x10] + cmp r0, #0 + bne _08024CF6 + movs r2, #0x8e + lsls r2, r2, #1 + adds r0, r1, r2 + ldr r0, [r0] + cmp r0, #0 + beq _08024CF6 + movs r0, #4 + bl sub_08026008 +_08024CF6: + pop {r0} + bx r0 + .align 2, 0 +_08024CFC: .4byte 0x0202294C + thumb_func_end sub_08024CD8 + + thumb_func_start sub_08024D00 +sub_08024D00: @ 0x08024D00 + push {r4, lr} + ldr r4, _08024D40 + ldr r2, [r4] + ldrb r0, [r2, #0x10] + cmp r0, #0 + bne _08024DBE + adds r0, r2, #0 + adds r0, #0x40 + ldrb r0, [r0] + cmp r0, #9 + bhi _08024DB0 + adds r0, r2, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0 + bne _08024DB6 + ldr r0, _08024D44 + ldrh r1, [r0, #0x2e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08024D50 + ldr r1, _08024D48 + adds r0, r2, r1 + ldrb r1, [r0] + cmp r1, #0 + bne _08024DB6 + ldr r3, _08024D4C + adds r0, r2, r3 + strb r1, [r0] + movs r0, #2 + b _08024D8A + .align 2, 0 +_08024D40: .4byte 0x0202294C +_08024D44: .4byte 0x03002360 +_08024D48: .4byte 0x000031CC +_08024D4C: .4byte 0x000031D0 +_08024D50: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08024D70 + ldr r3, _08024D6C + adds r0, r2, r3 + ldrb r1, [r0] + cmp r1, #0 + bne _08024DB6 + adds r3, #4 + adds r0, r2, r3 + strb r1, [r0] + movs r0, #1 + b _08024D8A + .align 2, 0 +_08024D6C: .4byte 0x000031CC +_08024D70: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08024D9C + ldr r3, _08024D98 + adds r0, r2, r3 + ldrb r1, [r0] + cmp r1, #0 + bne _08024DB6 + adds r3, #4 + adds r0, r2, r3 + strb r1, [r0] + movs r0, #3 +_08024D8A: + bl sub_080272D8 + ldr r1, [r4] + ldr r2, _08024D98 + adds r1, r1, r2 + strb r0, [r1] + b _08024DB6 + .align 2, 0 +_08024D98: .4byte 0x000031CC +_08024D9C: + movs r0, #0 + bl sub_080272D8 + ldr r1, [r4] + ldr r3, _08024DAC + adds r1, r1, r3 + strb r0, [r1] + b _08024DB6 + .align 2, 0 +_08024DAC: .4byte 0x000031CC +_08024DB0: + movs r0, #0xb + bl sub_08026008 +_08024DB6: + bl sub_080264E4 + bl sub_08025D10 +_08024DBE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08024D00 + + thumb_func_start sub_08024DC4 +sub_08024DC4: @ 0x08024DC4 + push {lr} + ldr r0, _08024E04 + ldr r2, [r0] + adds r0, r2, #0 + adds r0, #0x40 + ldrb r0, [r0] + cmp r0, #9 + bhi _08024E8C + ldr r0, _08024E08 + ldrh r1, [r0, #0x2e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08024E14 + adds r0, r2, #0 + adds r0, #0x28 + ldrb r1, [r0] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r2, r0 + ldr r1, _08024E0C + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _08024E92 + ldr r3, _08024E10 + adds r1, r2, r3 + movs r0, #2 + strb r0, [r1] + b _08024E92 + .align 2, 0 +_08024E04: .4byte 0x0202294C +_08024E08: .4byte 0x03002360 +_08024E0C: .4byte 0x000031CC +_08024E10: .4byte 0x000032F8 +_08024E14: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08024E48 + adds r0, r2, #0 + adds r0, #0x28 + ldrb r1, [r0] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r2, r0 + ldr r1, _08024E40 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _08024E92 + ldr r3, _08024E44 + adds r1, r2, r3 + movs r0, #1 + strb r0, [r1] + b _08024E92 + .align 2, 0 +_08024E40: .4byte 0x000031CC +_08024E44: .4byte 0x000032F8 +_08024E48: + movs r0, #0x20 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + beq _08024E80 + adds r0, r2, #0 + adds r0, #0x28 + ldrb r1, [r0] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r2, r0 + ldr r1, _08024E78 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _08024E92 + ldr r3, _08024E7C + adds r1, r2, r3 + movs r0, #3 + strb r0, [r1] + b _08024E92 + .align 2, 0 +_08024E78: .4byte 0x000031CC +_08024E7C: .4byte 0x000032F8 +_08024E80: + ldr r3, _08024E88 + adds r0, r2, r3 + strb r1, [r0] + b _08024E92 + .align 2, 0 +_08024E88: .4byte 0x000032F8 +_08024E8C: + movs r0, #0xb + bl sub_08026008 +_08024E92: + bl sub_08025E0C + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08024DC4 + + thumb_func_start sub_08024E9C +sub_08024E9C: @ 0x08024E9C + push {r4, r5, lr} + bl sub_080264E4 + bl sub_08025D10 + bl sub_08026A10 + cmp r0, #1 + bne _08024EBA + bl sub_08027064 + movs r0, #5 + bl sub_08026008 + b _08024F18 +_08024EBA: + ldr r0, _08024EE8 + ldr r2, [r0] + movs r1, #0x96 + lsls r1, r1, #1 + adds r4, r2, r1 + movs r1, #1 + str r1, [r4] + movs r3, #1 + adds r1, r2, #0 + adds r1, #0x24 + adds r5, r0, #0 + ldrb r1, [r1] + cmp r3, r1 + bhs _08024F18 + movs r1, #0x9a + lsls r1, r1, #1 + adds r0, r2, r1 + ldr r0, [r0] + cmp r0, #1 + beq _08024EEC + movs r0, #0 + str r0, [r4] + b _08024F18 + .align 2, 0 +_08024EE8: .4byte 0x0202294C +_08024EEC: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r2, [r5] + adds r0, r2, #0 + adds r0, #0x24 + ldrb r0, [r0] + cmp r3, r0 + bhs _08024F18 + lsls r0, r3, #2 + movs r4, #0x98 + lsls r4, r4, #1 + adds r1, r2, r4 + adds r1, r1, r0 + ldr r0, [r1] + cmp r0, #1 + beq _08024EEC + movs r0, #0x96 + lsls r0, r0, #1 + adds r1, r2, r0 + movs r0, #0 + str r0, [r1] +_08024F18: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08024E9C + + thumb_func_start sub_08024F20 +sub_08024F20: @ 0x08024F20 + push {lr} + bl sub_08025E0C + bl sub_08026A50 + cmp r0, #1 + bne _08024F34 + movs r0, #5 + bl sub_08026008 +_08024F34: + pop {r0} + bx r0 + thumb_func_end sub_08024F20 + + thumb_func_start sub_08024F38 +sub_08024F38: @ 0x08024F38 + push {r4, lr} + bl GetBlockReceivedStatus + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl sub_0800A59C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + beq _08024F54 + movs r0, #0 + b _08024F5A +_08024F54: + bl ResetBlockReceivedFlags + movs r0, #1 +_08024F5A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_08024F38 + + thumb_func_start sub_08024F60 +sub_08024F60: @ 0x08024F60 + push {r4, r5, lr} + ldr r5, _08024F78 + ldr r1, [r5] + ldrb r4, [r1, #0x10] + cmp r4, #1 + beq _08024F98 + cmp r4, #1 + bgt _08024F7C + cmp r4, #0 + beq _08024F82 + b _08024FD4 + .align 2, 0 +_08024F78: .4byte 0x0202294C +_08024F7C: + cmp r4, #2 + beq _08024FA4 + b _08024FD4 +_08024F82: + adds r1, #0x4a + movs r0, #0 + movs r2, #0x3c + bl SendBlock + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08024FEE + ldr r0, [r5] + strb r4, [r0, #8] + b _08024FCA +_08024F98: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08024FEE + b _08024FCA +_08024FA4: + bl sub_08024F38 + cmp r0, #0 + beq _08024FB6 + ldr r0, [r5] + adds r1, r0, #0 + adds r1, #0x24 + ldrb r1, [r1] + strb r1, [r0, #8] +_08024FB6: + ldr r2, [r5] + adds r1, r2, #0 + adds r1, #0x24 + ldrb r0, [r2, #8] + ldrb r1, [r1] + cmp r0, r1 + blo _08024FEE + ldrb r0, [r2, #0x14] + adds r0, #1 + strb r0, [r2, #0x14] +_08024FCA: + ldr r1, [r5] + ldrb r0, [r1, #0x10] + adds r0, #1 + strb r0, [r1, #0x10] + b _08024FEE +_08024FD4: + movs r0, #1 + bl WaitFanfare + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08024FEE + movs r0, #6 + bl sub_08026008 + ldr r0, _08024FF4 + movs r1, #4 + bl FadeOutAndPlayNewMapMusic +_08024FEE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08024FF4: .4byte 0x0000020B + thumb_func_end sub_08024F60 + + thumb_func_start sub_08024FF8 +sub_08024FF8: @ 0x08024FF8 + push {r4, r5, lr} + ldr r5, _08025010 + ldr r2, [r5] + ldrb r4, [r2, #0x10] + cmp r4, #1 + beq _0802503C + cmp r4, #1 + bgt _08025014 + cmp r4, #0 + beq _0802501A + b _080250A4 + .align 2, 0 +_08025010: .4byte 0x0202294C +_08025014: + cmp r4, #2 + beq _0802504A + b _080250A4 +_0802501A: + ldrb r0, [r2, #0x14] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, #0x4a + adds r1, r2, r1 + movs r0, #0 + movs r2, #0x3c + bl SendBlock + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080250DE + ldr r0, [r5] + strb r4, [r0, #8] + ldr r1, [r5] + b _08025094 +_0802503C: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080250DE + ldr r1, [r5] + b _08025094 +_0802504A: + bl sub_08024F38 + cmp r0, #0 + beq _0802507C + movs r4, #0 + b _08025072 +_08025056: + ldr r0, [r5] + adds r0, #0x4a + ldr r1, _0802509C + movs r2, #0x3c + bl memcpy + ldr r1, [r5] + adds r0, r1, #0 + adds r0, #0x24 + ldrb r0, [r0] + strb r0, [r1, #8] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_08025072: + ldr r0, [r5] + adds r0, #0x24 + ldrb r0, [r0] + cmp r4, r0 + blo _08025056 +_0802507C: + ldr r3, _080250A0 + ldr r2, [r3] + adds r1, r2, #0 + adds r1, #0x24 + ldrb r0, [r2, #8] + ldrb r1, [r1] + cmp r0, r1 + blo _080250DE + ldrb r0, [r2, #0x14] + adds r0, #1 + strb r0, [r2, #0x14] + ldr r1, [r3] +_08025094: + ldrb r0, [r1, #0x10] + adds r0, #1 + strb r0, [r1, #0x10] + b _080250DE + .align 2, 0 +_0802509C: .4byte 0x0202207C +_080250A0: .4byte 0x0202294C +_080250A4: + movs r0, #1 + bl WaitFanfare + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080250DE + ldr r0, _080250E4 + ldr r2, [r0] + adds r0, r2, #0 + adds r0, #0x28 + ldrb r0, [r0] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r0, r2, #0 + adds r0, #0x54 + adds r0, r0, r1 + ldrh r1, [r0] + movs r3, #0x8a + lsls r3, r3, #1 + adds r0, r2, r3 + strh r1, [r0] + movs r0, #6 + bl sub_08026008 + ldr r0, _080250E8 + movs r1, #4 + bl FadeOutAndPlayNewMapMusic +_080250DE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080250E4: .4byte 0x0202294C +_080250E8: .4byte 0x0000020B + thumb_func_end sub_08024FF8 + + thumb_func_start sub_080250EC +sub_080250EC: @ 0x080250EC + push {r4, r5, lr} + sub sp, #4 + movs r1, #1 + mov r0, sp + strb r1, [r0] + ldr r0, _0802510C + ldr r0, [r0] + ldrb r0, [r0, #0x10] + cmp r0, #4 + bls _08025102 + b _08025220 +_08025102: + lsls r0, r0, #2 + ldr r1, _08025110 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802510C: .4byte 0x0202294C +_08025110: .4byte 0x08025114 +_08025114: @ jump table + .4byte _08025128 @ case 0 + .4byte _0802514C @ case 1 + .4byte _08025164 @ case 2 + .4byte _08025184 @ case 3 + .4byte _080251A4 @ case 4 +_08025128: + bl sub_0802725C + movs r0, #1 + bl sub_08028714 + bl sub_08028B28 + movs r0, #1 + bl sub_08028BF4 + movs r0, #2 + bl sub_0802900C + ldr r0, _08025148 + ldr r1, [r0] + b _08025210 + .align 2, 0 +_08025148: .4byte 0x0202294C +_0802514C: + bl sub_0802A464 + cmp r0, #0 + bne _0802522E + movs r0, #5 + bl sub_0802900C + ldr r0, _08025160 + ldr r1, [r0] + b _08025210 + .align 2, 0 +_08025160: .4byte 0x0202294C +_08025164: + bl sub_0802A488 + mov r1, sp + strb r0, [r1] + movs r0, #0 + movs r2, #1 + bl SendBlock + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0802522E + ldr r0, _08025180 + ldr r1, [r0] + b _08025210 + .align 2, 0 +_08025180: .4byte 0x0202294C +_08025184: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0802522E + ldr r3, _080251A0 + ldr r1, [r3] + ldrb r0, [r1, #0x10] + adds r0, #1 + movs r2, #0 + strb r0, [r1, #0x10] + ldr r0, [r3] + strb r2, [r0, #8] + b _0802522E + .align 2, 0 +_080251A0: .4byte 0x0202294C +_080251A4: + bl sub_08024F38 + cmp r0, #0 + beq _080251EA + movs r2, #0 + ldr r1, _08025218 + ldr r0, [r1] + adds r0, #0x24 + ldrb r0, [r0] + cmp r2, r0 + bhs _080251EA + adds r3, r1, #0 + movs r5, #0x86 + lsls r5, r5, #1 + ldr r4, _0802521C +_080251C2: + ldr r1, [r3] + adds r1, r2, r1 + adds r1, r1, r5 + lsls r0, r2, #8 + adds r0, r0, r4 + ldrb r0, [r0] + strb r0, [r1] + ldr r1, [r3] + adds r0, r1, #0 + adds r0, #0x24 + ldrb r0, [r0] + strb r0, [r1, #8] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, [r3] + adds r0, #0x24 + ldrb r0, [r0] + cmp r2, r0 + blo _080251C2 +_080251EA: + ldr r4, _08025218 + ldr r2, [r4] + adds r1, r2, #0 + adds r1, #0x24 + ldrb r0, [r2, #8] + ldrb r1, [r1] + cmp r0, r1 + blo _0802522E + ldrb r0, [r2, #0x14] + adds r0, #1 + strb r0, [r2, #0x14] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x77 + bls _0802522E + movs r0, #6 + bl sub_0802900C + ldr r1, [r4] +_08025210: + ldrb r0, [r1, #0x10] + adds r0, #1 + strb r0, [r1, #0x10] + b _0802522E + .align 2, 0 +_08025218: .4byte 0x0202294C +_0802521C: .4byte 0x0202207C +_08025220: + bl sub_0802A464 + cmp r0, #0 + bne _0802522E + movs r0, #7 + bl sub_08026008 +_0802522E: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080250EC + + thumb_func_start sub_08025238 +sub_08025238: @ 0x08025238 + push {r4, r5, lr} + sub sp, #4 + ldr r4, _08025254 + ldr r0, [r4] + ldrb r0, [r0, #0x10] + cmp r0, #7 + bls _08025248 + b _080253CE +_08025248: + lsls r0, r0, #2 + ldr r1, _08025258 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08025254: .4byte 0x0202294C +_08025258: .4byte 0x0802525C +_0802525C: @ jump table + .4byte _0802527C @ case 0 + .4byte _0802529C @ case 1 + .4byte _080252B8 @ case 2 + .4byte _080252CC @ case 3 + .4byte _080252E8 @ case 4 + .4byte _08025304 @ case 5 + .4byte _0802532C @ case 6 + .4byte _08025340 @ case 7 +_0802527C: + bl sub_08027508 + ldr r1, _08025294 + cmp r0, r1 + bls _0802528C + movs r0, #4 + bl sub_0802900C +_0802528C: + ldr r0, _08025298 + ldr r1, [r0] + b _080253B0 + .align 2, 0 +_08025294: .4byte 0x00000BB7 +_08025298: .4byte 0x0202294C +_0802529C: + bl sub_0802A464 + cmp r0, #0 + beq _080252A6 + b _08025404 +_080252A6: + movs r0, #3 + bl sub_0802900C + ldr r0, _080252B4 + ldr r1, [r0] + b _080253B0 + .align 2, 0 +_080252B4: .4byte 0x0202294C +_080252B8: + bl sub_08028CF8 + bl sub_080270A8 + ldr r0, _080252C8 + ldr r1, [r0] + b _080253B0 + .align 2, 0 +_080252C8: .4byte 0x0202294C +_080252CC: + bl sub_0802A488 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, sp + strb r0, [r1] + cmp r0, #0 + bne _080252DE + b _08025404 +_080252DE: + ldr r0, _080252E4 + ldr r1, [r0] + b _080253B0 + .align 2, 0 +_080252E4: .4byte 0x0202294C +_080252E8: + bl sub_0802A464 + cmp r0, #0 + beq _080252F2 + b _08025404 +_080252F2: + movs r0, #5 + bl sub_0802900C + ldr r0, _08025300 + ldr r1, [r0] + b _080253B0 + .align 2, 0 +_08025300: .4byte 0x0202294C +_08025304: + bl sub_0802A488 + mov r1, sp + strb r0, [r1] + movs r0, #0 + movs r2, #1 + bl SendBlock + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08025404 + ldr r2, _08025328 + ldr r1, [r2] + movs r0, #0 + strb r0, [r1, #8] + ldr r1, [r2] + b _080253B0 + .align 2, 0 +_08025328: .4byte 0x0202294C +_0802532C: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08025404 + ldr r0, _0802533C + ldr r1, [r0] + b _080253B0 + .align 2, 0 +_0802533C: .4byte 0x0202294C +_08025340: + bl sub_08024F38 + cmp r0, #0 + beq _08025386 + movs r2, #0 + ldr r1, _080253B8 + ldr r0, [r1] + adds r0, #0x24 + ldrb r0, [r0] + cmp r2, r0 + bhs _08025386 + adds r3, r1, #0 + movs r5, #0x86 + lsls r5, r5, #1 + ldr r4, _080253BC +_0802535E: + ldr r1, [r3] + adds r1, r2, r1 + adds r1, r1, r5 + lsls r0, r2, #8 + adds r0, r0, r4 + ldrb r0, [r0] + strb r0, [r1] + ldr r1, [r3] + adds r0, r1, #0 + adds r0, #0x24 + ldrb r0, [r0] + strb r0, [r1, #8] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, [r3] + adds r0, #0x24 + ldrb r0, [r0] + cmp r2, r0 + blo _0802535E +_08025386: + ldr r4, _080253B8 + ldr r2, [r4] + adds r1, r2, #0 + adds r1, #0x24 + ldrb r0, [r2, #8] + ldrb r1, [r1] + cmp r0, r1 + blo _080253C0 + ldrb r0, [r2, #0x14] + adds r0, #1 + strb r0, [r2, #0x14] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x77 + bls _08025404 + bl sub_080273C8 + movs r0, #6 + bl sub_0802900C + ldr r1, [r4] +_080253B0: + ldrb r0, [r1, #0x10] + adds r0, #1 + strb r0, [r1, #0x10] + b _08025404 + .align 2, 0 +_080253B8: .4byte 0x0202294C +_080253BC: .4byte 0x0202207C +_080253C0: + bl sub_08027314 + b _08025404 +_080253C6: + movs r0, #8 + bl sub_08026008 + b _08025404 +_080253CE: + bl sub_0802A464 + cmp r0, #0 + bne _08025404 + movs r2, #0 + ldr r1, [r4] + adds r0, r1, #0 + adds r0, #0x24 + ldrb r0, [r0] + cmp r2, r0 + bhs _080253FE + movs r4, #0x86 + lsls r4, r4, #1 + adds r3, r1, r4 + adds r1, r0, #0 +_080253EC: + adds r0, r3, r2 + ldrb r0, [r0] + cmp r0, #2 + beq _080253C6 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, r1 + blo _080253EC +_080253FE: + movs r0, #0xa + bl sub_08026008 +_08025404: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_08025238 + + thumb_func_start sub_0802540C +sub_0802540C: @ 0x0802540C + push {r4, lr} + ldr r4, _08025424 + ldr r0, [r4] + ldrb r0, [r0, #0x10] + cmp r0, #1 + beq _0802543A + cmp r0, #1 + bgt _08025428 + cmp r0, #0 + beq _0802542E + b _0802545A + .align 2, 0 +_08025424: .4byte 0x0202294C +_08025428: + cmp r0, #2 + beq _08025444 + b _0802545A +_0802542E: + bl sub_0800A7F8 + movs r0, #7 + bl sub_0802900C + b _08025450 +_0802543A: + bl sub_0802A464 + cmp r0, #0 + bne _08025468 + b _08025450 +_08025444: + bl sub_0802A488 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + bne _08025468 +_08025450: + ldr r1, [r4] + ldrb r0, [r1, #0x10] + adds r0, #1 + strb r0, [r1, #0x10] + b _08025468 +_0802545A: + ldr r0, _08025470 + ldrb r0, [r0] + cmp r0, #0 + bne _08025468 + movs r0, #9 + bl sub_08026008 +_08025468: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08025470: .4byte 0x030031C4 + thumb_func_end sub_0802540C + + thumb_func_start sub_08025474 +sub_08025474: @ 0x08025474 + push {r4, lr} + sub sp, #4 + ldr r4, _0802548C + ldr r0, [r4] + ldrb r1, [r0, #0x10] + cmp r1, #1 + beq _080254A8 + cmp r1, #1 + bgt _08025490 + cmp r1, #0 + beq _08025496 + b _080254F0 + .align 2, 0 +_0802548C: .4byte 0x0202294C +_08025490: + cmp r1, #2 + beq _080254C0 + b _080254F0 +_08025496: + movs r0, #1 + rsbs r0, r0, #0 + str r1, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + b _080254E2 +_080254A8: + bl UpdatePaletteFade + ldr r0, _080254BC + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08025514 + b _080254E2 + .align 2, 0 +_080254BC: .4byte 0x02037C74 +_080254C0: + bl sub_080288AC + bl sub_08028510 + ldr r0, [r4] + adds r0, #0x24 + ldrb r0, [r0] + bl sub_08028340 + bl sub_08028BB0 + ldr r1, _080254EC + movs r0, #1 + str r0, [r1] + movs r0, #8 + bl sub_0802900C +_080254E2: + ldr r1, [r4] + ldrb r0, [r1, #0x10] + adds r0, #1 + strb r0, [r1, #0x10] + b _08025514 + .align 2, 0 +_080254EC: .4byte 0x03000DB0 +_080254F0: + bl sub_0802A464 + cmp r0, #0 + bne _08025514 + ldr r4, _0802551C + ldr r0, [r4] + ldr r0, [r0] + bl SetMainCallback2 + ldr r0, [r4] + ldrb r0, [r0, #4] + bl DestroyTask + ldr r0, [r4] + bl Free + bl FreeAllWindowBuffers +_08025514: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802551C: .4byte 0x0202294C + thumb_func_end sub_08025474 + + thumb_func_start sub_08025520 +sub_08025520: @ 0x08025520 + push {r4, lr} + sub sp, #4 + ldr r4, _0802553C + ldr r1, [r4] + ldrb r0, [r1, #0x10] + cmp r0, #6 + bls _08025530 + b _08025624 +_08025530: + lsls r0, r0, #2 + ldr r1, _08025540 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802553C: .4byte 0x0202294C +_08025540: .4byte 0x08025544 +_08025544: @ jump table + .4byte _08025560 @ case 0 + .4byte _08025600 @ case 1 + .4byte _08025578 @ case 2 + .4byte _080255CA @ case 3 + .4byte _080255D0 @ case 4 + .4byte _080255E0 @ case 5 + .4byte _08025600 @ case 6 +_08025560: + movs r0, #9 + bl sub_0802900C + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + b _08025610 +_08025578: + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + b _08025610 +_080255CA: + bl StopMapMusic + b _08025610 +_080255D0: + ldr r0, _080255DC + bl PlayNewMapMusic + bl sub_08028B78 + b _08025610 + .align 2, 0 +_080255DC: .4byte 0x0000021E +_080255E0: + movs r4, #1 + rsbs r4, r4, #0 + adds r0, r4, #0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + movs r0, #0 + str r0, [sp] + adds r0, r4, #0 + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + b _08025610 +_08025600: + bl UpdatePaletteFade + ldr r0, _0802561C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08025654 +_08025610: + ldr r0, _08025620 + ldr r1, [r0] + ldrb r0, [r1, #0x10] + adds r0, #1 + strb r0, [r1, #0x10] + b _08025654 + .align 2, 0 +_0802561C: .4byte 0x02037C74 +_08025620: .4byte 0x0202294C +_08025624: + ldrb r0, [r1, #4] + bl DestroyTask + ldr r0, _0802565C + bl sub_08025FE4 + bl sub_08028D68 + ldr r0, [r4] + bl sub_080247F8 + ldr r0, _08025660 + ldrb r0, [r0] + cmp r0, #0 + bne _0802564A + ldr r0, [r4] + adds r0, #0x24 + movs r1, #1 + strb r1, [r0] +_0802564A: + bl sub_080271B0 + movs r0, #0 + bl sub_08028BF4 +_08025654: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802565C: .4byte 0x08025665 +_08025660: .4byte 0x030031C4 + thumb_func_end sub_08025520 + + thumb_func_start sub_08025664 +sub_08025664: @ 0x08025664 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _08025680 + ldr r0, [r1] + ldrb r0, [r0, #0x10] + adds r4, r1, #0 + cmp r0, #1 + beq _08025690 + cmp r0, #1 + bgt _08025684 + cmp r0, #0 + beq _0802568A + b _080256A8 + .align 2, 0 +_08025680: .4byte 0x0202294C +_08025684: + cmp r0, #2 + beq _08025696 + b _080256A8 +_0802568A: + bl sub_0802602C + b _0802569A +_08025690: + bl sub_08028410 + b _0802569E +_08025696: + bl sub_08028554 +_0802569A: + cmp r0, #1 + bne _080256CC +_0802569E: + ldr r1, [r4] + ldrb r0, [r1, #0x10] + adds r0, #1 + strb r0, [r1, #0x10] + b _080256CC +_080256A8: + ldr r0, [r4] + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0 + beq _080256C0 + ldr r0, _080256BC + bl sub_08025FE4 + b _080256C6 + .align 2, 0 +_080256BC: .4byte 0x08024B15 +_080256C0: + ldr r0, _080256D4 + bl sub_08025FE4 +_080256C6: + adds r0, r5, #0 + bl DestroyTask +_080256CC: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080256D4: .4byte 0x08024B4D + thumb_func_end sub_08025664 + + thumb_func_start sub_080256D8 +sub_080256D8: @ 0x080256D8 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _080256FC + adds r5, r0, r1 + movs r0, #0 + ldrsh r4, [r5, r0] + cmp r4, #1 + beq _08025734 + cmp r4, #1 + bgt _08025700 + cmp r4, #0 + beq _08025706 + b _080257B0 + .align 2, 0 +_080256FC: .4byte 0x03005B68 +_08025700: + cmp r4, #2 + beq _08025746 + b _080257B0 +_08025706: + ldr r6, _0802572C + ldr r1, [r6] + adds r0, r1, #0 + adds r0, #0x28 + ldrb r0, [r0] + lsls r0, r0, #2 + ldr r2, _08025730 + adds r0, r0, r2 + adds r1, r1, r0 + movs r0, #0 + movs r2, #1 + bl SendBlock + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080257B0 + ldr r0, [r6] + strb r4, [r0, #8] + b _0802573E + .align 2, 0 +_0802572C: .4byte 0x0202294C +_08025730: .4byte 0x0000318C +_08025734: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080257B0 +_0802573E: + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + b _080257B0 +_08025746: + bl sub_08024F38 + cmp r0, #0 + beq _0802578C + movs r2, #0 + ldr r1, _080257B8 + ldr r0, [r1] + adds r0, #0x24 + ldrb r0, [r0] + cmp r2, r0 + bhs _0802578C + adds r3, r1, #0 + ldr r5, _080257BC + ldr r4, _080257C0 +_08025762: + ldr r0, [r3] + lsls r1, r2, #2 + adds r1, r1, r0 + adds r1, r1, r4 + lsls r0, r2, #8 + adds r0, r0, r5 + ldrb r0, [r0] + strb r0, [r1] + ldr r1, [r3] + adds r0, r1, #0 + adds r0, #0x24 + ldrb r0, [r0] + strb r0, [r1, #8] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, [r3] + adds r0, #0x24 + ldrb r0, [r0] + cmp r2, r0 + blo _08025762 +_0802578C: + ldr r4, _080257B8 + ldr r0, [r4] + adds r1, r0, #0 + adds r1, #0x24 + ldrb r0, [r0, #8] + ldrb r1, [r1] + cmp r0, r1 + blo _080257B0 + adds r0, r6, #0 + bl DestroyTask + movs r0, #6 + bl sub_0802900C + ldr r1, [r4] + ldrb r0, [r1, #0x10] + adds r0, #1 + strb r0, [r1, #0x10] +_080257B0: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080257B8: .4byte 0x0202294C +_080257BC: .4byte 0x0202207C +_080257C0: .4byte 0x0000318C + thumb_func_end sub_080256D8 + + thumb_func_start sub_080257C4 +sub_080257C4: @ 0x080257C4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x18 + ldr r6, _080258A0 + ldr r0, [r6] + adds r1, r0, #0 + adds r1, #0x24 + ldrb r7, [r1] + ldr r2, _080258A4 + adds r1, r0, r2 + ldr r3, _080258A8 + adds r2, r0, r3 + ldr r4, _080258AC + adds r3, r0, r4 + ldr r5, _080258B0 + adds r4, r0, r5 + str r4, [sp] + adds r5, #0x3c + adds r4, r0, r5 + str r4, [sp, #4] + adds r5, #0x3c + adds r4, r0, r5 + str r4, [sp, #8] + adds r4, r0, #0 + adds r4, #0x40 + str r4, [sp, #0xc] + movs r5, #0x90 + lsls r5, r5, #1 + adds r4, r0, r5 + str r4, [sp, #0x10] + movs r4, #0x96 + lsls r4, r4, #1 + adds r0, r0, r4 + str r0, [sp, #0x14] + movs r0, #0 + bl sub_08027E90 + ldr r1, [r6] + ldr r5, _080258B4 + adds r2, r1, r5 + str r0, [r2] + movs r0, #0x94 + lsls r0, r0, #1 + adds r1, r1, r0 + movs r0, #1 + strb r0, [r1] + movs r5, #1 + cmp r5, r7 + bhs _0802586C +_08025828: + ldr r1, [r6] + adds r0, r1, #0 + adds r0, #0xa8 + adds r0, r0, r5 + ldrb r0, [r0] + cmp r0, #0 + bne _08025862 + lsls r0, r5, #4 + subs r0, r0, r5 + lsls r4, r0, #2 + adds r1, r4, r1 + ldr r2, _080258A8 + adds r1, r1, r2 + adds r0, r5, #0 + bl sub_08028044 + adds r1, r0, #0 + cmp r1, #0 + bne _08025862 + ldr r0, [r6] + adds r0, r0, r4 + ldr r3, _080258A8 + adds r0, r0, r3 + strb r1, [r0] + ldr r0, [r6] + movs r4, #0x94 + lsls r4, r4, #1 + adds r0, r0, r4 + strb r1, [r0] +_08025862: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, r7 + blo _08025828 +_0802586C: + ldr r5, _080258A0 + ldr r1, [r5] + movs r6, #0x92 + lsls r6, r6, #1 + adds r1, r1, r6 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3b + bls _080258CA + ldr r1, [r5] + movs r2, #0x94 + lsls r2, r2, #1 + adds r0, r1, r2 + ldrb r4, [r0] + cmp r4, #0 + beq _080258B8 + bl sub_080115B4 + ldr r0, [r5] + adds r0, r0, r6 + movs r1, #0 + strb r1, [r0] + b _080258CA + .align 2, 0 +_080258A0: .4byte 0x0202294C +_080258A4: .4byte 0x000031A0 +_080258A8: .4byte 0x000031CC +_080258AC: .4byte 0x00003208 +_080258B0: .4byte 0x00003244 +_080258B4: .4byte 0x000031B0 +_080258B8: + adds r0, r1, r6 + ldrb r0, [r0] + cmp r0, #0x46 + bls _080258CA + bl sub_080115B4 + ldr r0, [r5] + adds r0, r0, r6 + strb r4, [r0] +_080258CA: + movs r5, #0 + cmp r5, r7 + bhs _080259BE + ldr r3, _08025914 + mov ip, r3 + ldr r4, _08025918 + mov r8, r4 +_080258D8: + mov r6, r8 + ldr r2, [r6] + lsls r0, r5, #4 + subs r1, r0, r5 + lsls r1, r1, #2 + adds r1, r2, r1 + add r1, ip + ldrb r1, [r1] + adds r6, r0, #0 + cmp r1, #0 + beq _080258FE + adds r0, r2, #0 + adds r0, #0xa8 + adds r1, r0, r5 + ldrb r0, [r1] + cmp r0, #0 + bne _080258FE + movs r0, #1 + strb r0, [r1] +_080258FE: + adds r3, r4, #0 + ldr r1, [r3] + adds r0, r1, #0 + adds r0, #0xa8 + adds r0, r0, r5 + ldrb r0, [r0] + cmp r0, #3 + bgt _0802591C + cmp r0, #1 + bge _08025922 + b _080259B4 + .align 2, 0 +_08025914: .4byte 0x000031CC +_08025918: .4byte 0x0202294C +_0802591C: + cmp r0, #4 + beq _08025970 + b _080259B4 +_08025922: + adds r1, #0xb0 + adds r1, r1, r5 + ldrb r0, [r1] + adds r0, #1 + movs r2, #0 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + bls _080259B4 + ldr r0, [r3] + adds r0, #0xb0 + adds r0, r0, r5 + strb r2, [r0] + ldr r0, [r3] + adds r0, #0xa8 + adds r0, r0, r5 + strb r2, [r0] + ldr r0, [r3] + subs r1, r6, r5 + lsls r1, r1, #2 + adds r0, r0, r1 + add r0, ip + strb r2, [r0] + ldr r0, [r3] + adds r0, r0, r1 + ldr r6, _08025968 + adds r0, r0, r6 + strb r2, [r0] + ldr r0, [r3] + adds r0, r0, r1 + ldr r1, _0802596C + adds r0, r0, r1 + b _080259B2 + .align 2, 0 +_08025968: .4byte 0x000031D0 +_0802596C: .4byte 0x000031D4 +_08025970: + adds r1, #0xb0 + adds r1, r1, r5 + ldrb r0, [r1] + adds r0, #1 + movs r2, #0 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x27 + bls _080259B4 + ldr r0, [r4] + adds r0, #0xb0 + adds r0, r0, r5 + strb r2, [r0] + ldr r0, [r4] + adds r0, #0xa8 + adds r0, r0, r5 + strb r2, [r0] + ldr r0, [r4] + subs r1, r6, r5 + lsls r1, r1, #2 + adds r0, r0, r1 + add r0, ip + strb r2, [r0] + ldr r0, [r4] + adds r0, r0, r1 + ldr r3, _080259CC + adds r0, r0, r3 + strb r2, [r0] + ldr r0, [r4] + adds r0, r0, r1 + ldr r6, _080259D0 + adds r0, r0, r6 +_080259B2: + strb r2, [r0] +_080259B4: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, r7 + blo _080258D8 +_080259BE: + add sp, #0x18 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080259CC: .4byte 0x000031D0 +_080259D0: .4byte 0x000031D4 + thumb_func_end sub_080257C4 + + thumb_func_start sub_080259D4 +sub_080259D4: @ 0x080259D4 + push {r4, r5, r6, r7, lr} + sub sp, #0x18 + ldr r5, _08025A98 + ldr r0, [r5] + adds r1, r0, #0 + adds r1, #0x24 + ldrb r6, [r1] + ldr r2, _08025A9C + adds r1, r0, r2 + ldr r3, _08025AA0 + adds r2, r0, r3 + ldr r4, _08025AA4 + adds r3, r0, r4 + ldr r7, _08025AA8 + adds r4, r0, r7 + str r4, [sp] + adds r7, #0x3c + adds r4, r0, r7 + str r4, [sp, #4] + adds r7, #0x3c + adds r4, r0, r7 + str r4, [sp, #8] + adds r4, r0, #0 + adds r4, #0x40 + str r4, [sp, #0xc] + movs r7, #0x90 + lsls r7, r7, #1 + adds r4, r0, r7 + str r4, [sp, #0x10] + movs r4, #0x96 + lsls r4, r4, #1 + adds r0, r0, r4 + str r0, [sp, #0x14] + movs r0, #0 + bl sub_08027E90 + ldr r1, [r5] + ldr r7, _08025AAC + adds r2, r1, r7 + str r0, [r2] + movs r0, #0x94 + lsls r0, r0, #1 + adds r1, r1, r0 + movs r0, #1 + strb r0, [r1] + movs r4, #1 + cmp r4, r6 + bhs _08025A64 +_08025A34: + adds r0, r4, #0 + bl sub_080280A0 + cmp r0, #0 + beq _08025A5A + ldr r0, _08025A98 + ldr r2, [r0] + lsls r1, r4, #2 + movs r3, #0x98 + lsls r3, r3, #1 + adds r0, r2, r3 + adds r0, r0, r1 + movs r1, #1 + str r1, [r0] + movs r7, #0x94 + lsls r7, r7, #1 + adds r1, r2, r7 + movs r0, #0 + strb r0, [r1] +_08025A5A: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r6 + blo _08025A34 +_08025A64: + ldr r5, _08025A98 + ldr r1, [r5] + movs r6, #0x92 + lsls r6, r6, #1 + adds r1, r1, r6 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3b + bls _08025AC2 + ldr r1, [r5] + movs r2, #0x94 + lsls r2, r2, #1 + adds r0, r1, r2 + ldrb r4, [r0] + cmp r4, #0 + beq _08025AB0 + bl sub_080115B4 + ldr r0, [r5] + adds r0, r0, r6 + movs r1, #0 + strb r1, [r0] + b _08025AC2 + .align 2, 0 +_08025A98: .4byte 0x0202294C +_08025A9C: .4byte 0x000031A0 +_08025AA0: .4byte 0x000031CC +_08025AA4: .4byte 0x00003208 +_08025AA8: .4byte 0x00003244 +_08025AAC: .4byte 0x000031B0 +_08025AB0: + adds r0, r1, r6 + ldrb r0, [r0] + cmp r0, #0x46 + bls _08025AC2 + bl sub_080115B4 + ldr r0, [r5] + adds r0, r0, r6 + strb r4, [r0] +_08025AC2: + add sp, #0x18 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080259D4 + + thumb_func_start sub_08025ACC +sub_08025ACC: @ 0x08025ACC + push {r4, r5, lr} + ldr r5, _08025AE4 + ldr r0, [r5] + ldrb r0, [r0, #0x18] + cmp r0, #4 + beq _08025B08 + cmp r0, #4 + bgt _08025AE8 + cmp r0, #3 + beq _08025AEE + b _08025B12 + .align 2, 0 +_08025AE4: .4byte 0x0202294C +_08025AE8: + cmp r0, #0xb + beq _08025B0E + b _08025B12 +_08025AEE: + bl sub_08026978 + adds r4, r0, #0 + cmp r4, #1 + bne _08025B12 + bl sub_080269E8 + ldr r0, [r5] + movs r1, #0x8e + lsls r1, r1, #1 + adds r0, r0, r1 + str r4, [r0] + b _08025B12 +_08025B08: + bl sub_080257C4 + b _08025B12 +_08025B0E: + bl sub_080259D4 +_08025B12: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_08025ACC + + thumb_func_start sub_08025B18 +sub_08025B18: @ 0x08025B18 + push {r4, r5, r6, lr} + sub sp, #0x14 + ldr r0, _08025B2C + ldr r5, [r0] + ldrb r0, [r5, #0x18] + cmp r0, #4 + beq _08025B30 + cmp r0, #0xb + beq _08025B80 + b _08025BBC + .align 2, 0 +_08025B2C: .4byte 0x0202294C +_08025B30: + ldr r1, _08025B70 + adds r0, r5, r1 + ldr r2, _08025B74 + adds r1, r5, r2 + ldr r3, _08025B78 + adds r2, r5, r3 + ldr r4, _08025B7C + adds r3, r5, r4 + movs r6, #0xca + lsls r6, r6, #6 + adds r4, r5, r6 + str r4, [sp] + adds r6, #0x3c + adds r4, r5, r6 + str r4, [sp, #4] + adds r4, r5, #0 + adds r4, #0x40 + ldrb r4, [r4] + str r4, [sp, #8] + movs r6, #0x90 + lsls r6, r6, #1 + adds r4, r5, r6 + ldr r4, [r4] + str r4, [sp, #0xc] + adds r6, #0xc + adds r4, r5, r6 + ldr r4, [r4] + str r4, [sp, #0x10] + bl sub_08027B5C + b _08025BBC + .align 2, 0 +_08025B70: .4byte 0x000032CC +_08025B74: .4byte 0x000031CC +_08025B78: .4byte 0x00003208 +_08025B7C: .4byte 0x00003244 +_08025B80: + ldr r1, _08025BC4 + adds r0, r5, r1 + ldr r2, _08025BC8 + adds r1, r5, r2 + ldr r3, _08025BCC + adds r2, r5, r3 + ldr r4, _08025BD0 + adds r3, r5, r4 + movs r6, #0xca + lsls r6, r6, #6 + adds r4, r5, r6 + str r4, [sp] + adds r6, #0x3c + adds r4, r5, r6 + str r4, [sp, #4] + adds r4, r5, #0 + adds r4, #0x40 + ldrb r4, [r4] + str r4, [sp, #8] + movs r6, #0x90 + lsls r6, r6, #1 + adds r4, r5, r6 + ldr r4, [r4] + str r4, [sp, #0xc] + adds r6, #0xc + adds r4, r5, r6 + ldr r4, [r4] + str r4, [sp, #0x10] + bl sub_08027B5C +_08025BBC: + add sp, #0x14 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08025BC4: .4byte 0x000032CC +_08025BC8: .4byte 0x000031CC +_08025BCC: .4byte 0x00003208 +_08025BD0: .4byte 0x00003244 + thumb_func_end sub_08025B18 + + thumb_func_start sub_08025BD4 +sub_08025BD4: @ 0x08025BD4 + push {r4, r5, r6, lr} + sub sp, #0x18 + ldr r0, _08025BE8 + ldr r5, [r0] + ldrb r0, [r5, #0x18] + cmp r0, #4 + beq _08025BEC + cmp r0, #0xb + beq _08025C44 + b _08025C88 + .align 2, 0 +_08025BE8: .4byte 0x0202294C +_08025BEC: + adds r0, r5, #0 + adds r0, #0x28 + ldrb r0, [r0] + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r1, r1, #2 + ldr r2, _08025C34 + adds r1, r1, r2 + adds r1, r5, r1 + ldr r3, _08025C38 + adds r2, r5, r3 + ldr r4, _08025C3C + adds r3, r5, r4 + ldr r6, _08025C40 + adds r4, r5, r6 + str r4, [sp] + adds r6, #0x3c + adds r4, r5, r6 + str r4, [sp, #4] + adds r6, #0x3c + adds r4, r5, r6 + str r4, [sp, #8] + adds r4, r5, #0 + adds r4, #0x40 + str r4, [sp, #0xc] + movs r6, #0x90 + lsls r6, r6, #1 + adds r4, r5, r6 + str r4, [sp, #0x10] + adds r6, #0xc + adds r4, r5, r6 + str r4, [sp, #0x14] + bl sub_08027E90 + b _08025C88 + .align 2, 0 +_08025C34: .4byte 0x000031A0 +_08025C38: .4byte 0x000031CC +_08025C3C: .4byte 0x00003208 +_08025C40: .4byte 0x00003244 +_08025C44: + adds r0, r5, #0 + adds r0, #0x28 + ldrb r0, [r0] + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r1, r1, #2 + ldr r2, _08025C90 + adds r1, r1, r2 + adds r1, r5, r1 + ldr r3, _08025C94 + adds r2, r5, r3 + ldr r4, _08025C98 + adds r3, r5, r4 + ldr r6, _08025C9C + adds r4, r5, r6 + str r4, [sp] + adds r6, #0x3c + adds r4, r5, r6 + str r4, [sp, #4] + adds r6, #0x3c + adds r4, r5, r6 + str r4, [sp, #8] + adds r4, r5, #0 + adds r4, #0x40 + str r4, [sp, #0xc] + movs r6, #0x90 + lsls r6, r6, #1 + adds r4, r5, r6 + str r4, [sp, #0x10] + adds r6, #0xc + adds r4, r5, r6 + str r4, [sp, #0x14] + bl sub_08027E90 +_08025C88: + add sp, #0x18 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08025C90: .4byte 0x000031A0 +_08025C94: .4byte 0x000031CC +_08025C98: .4byte 0x00003208 +_08025C9C: .4byte 0x00003244 + thumb_func_end sub_08025BD4 + + thumb_func_start sub_08025CA0 +sub_08025CA0: @ 0x08025CA0 + push {r4, lr} + ldr r4, _08025CB8 + ldr r1, [r4] + ldrb r0, [r1, #0x18] + cmp r0, #4 + beq _08025CD6 + cmp r0, #4 + bgt _08025CBC + cmp r0, #3 + beq _08025CC2 + b _08025D08 + .align 2, 0 +_08025CB8: .4byte 0x0202294C +_08025CBC: + cmp r0, #0xb + beq _08025CEC + b _08025D08 +_08025CC2: + movs r0, #1 + bl sub_08027AFC + ldr r0, [r4] + movs r1, #0x8e + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #1 + str r1, [r0] + b _08025D08 +_08025CD6: + ldr r2, _08025CE8 + adds r1, r1, r2 + ldrb r0, [r1] + cmp r0, #0 + beq _08025D08 + bl sub_08028018 + b _08025D08 + .align 2, 0 +_08025CE8: .4byte 0x000032F8 +_08025CEC: + movs r2, #0x90 + lsls r2, r2, #1 + adds r0, r1, r2 + ldr r0, [r0] + cmp r0, #0 + bne _08025D08 + adds r2, #0xc + adds r0, r1, r2 + ldr r0, [r0] + cmp r0, #0 + bne _08025D08 + movs r0, #1 + bl sub_0802807C +_08025D08: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08025CA0 + + thumb_func_start sub_08025D10 +sub_08025D10: @ 0x08025D10 + push {r4, r5, r6, lr} + ldr r6, _08025D48 + ldr r2, [r6] + adds r0, r2, #0 + adds r0, #0x28 + ldrb r1, [r0] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r2, r0 + ldr r3, _08025D4C + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, #0 + bne _08025D50 + bl IsSEPlaying + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _08025DB2 + ldr r0, [r6] + movs r2, #0xa2 + lsls r2, r2, #1 + adds r0, r0, r2 + strb r1, [r0] + b _08025DB2 + .align 2, 0 +_08025D48: .4byte 0x0202294C +_08025D4C: .4byte 0x000031CC +_08025D50: + ldr r3, _08025D7C + adds r0, r1, r3 + ldrb r4, [r0] + cmp r4, #1 + bne _08025D80 + movs r1, #0xa2 + lsls r1, r1, #1 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _08025DB2 + movs r0, #0x1f + bl m4aSongNumStop + movs r0, #0x1f + bl PlaySE + ldr r0, [r6] + movs r2, #0xa2 + lsls r2, r2, #1 + adds r0, r0, r2 + b _08025DB0 + .align 2, 0 +_08025D7C: .4byte 0x000031D0 +_08025D80: + ldr r3, _08025DDC + adds r0, r1, r3 + ldrb r4, [r0] + cmp r4, #1 + bne _08025DB2 + movs r5, #0xa2 + lsls r5, r5, #1 + adds r0, r2, r5 + ldrb r0, [r0] + cmp r0, #0 + bne _08025DB2 + bl IsSEPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08025DB2 + movs r0, #0x16 + bl PlaySE + movs r0, #1 + bl sub_080281F8 + ldr r0, [r6] + adds r0, r0, r5 +_08025DB0: + strb r4, [r0] +_08025DB2: + ldr r0, _08025DE0 + ldr r2, [r0] + movs r5, #0xaa + lsls r5, r5, #1 + adds r1, r2, r5 + ldrb r1, [r1] + adds r4, r0, #0 + cmp r1, #0 + bne _08025DE4 + adds r0, r2, #0 + adds r0, #0x40 + ldrb r0, [r0] + cmp r0, #9 + bls _08025DE4 + bl StopMapMusic + ldr r0, [r4] + adds r0, r0, r5 + movs r1, #1 + b _08025E02 + .align 2, 0 +_08025DDC: .4byte 0x000031D4 +_08025DE0: .4byte 0x0202294C +_08025DE4: + ldr r0, [r4] + movs r1, #0xaa + lsls r1, r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + bne _08025E04 + movs r0, #0xb + bl PlayFanfareByFanfareNum + ldr r0, [r4] + movs r2, #0xaa + lsls r2, r2, #1 + adds r0, r0, r2 + movs r1, #2 +_08025E02: + strb r1, [r0] +_08025E04: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08025D10 + + thumb_func_start sub_08025E0C +sub_08025E0C: @ 0x08025E0C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r6, _08025E58 + ldr r2, [r6] + adds r0, r2, #0 + adds r0, #0x44 + ldrb r0, [r0] + mov r8, r0 + adds r0, r2, #0 + adds r0, #0x48 + ldrb r7, [r0] + subs r0, #0x20 + ldrb r1, [r0] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r2, r0 + ldr r3, _08025E5C + adds r0, r1, r3 + ldrb r3, [r0] + cmp r3, #0 + bne _08025E64 + ldr r4, _08025E60 + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, #1 + beq _08025EC6 + adds r4, #4 + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, #1 + beq _08025EC6 + movs r1, #0xa2 + lsls r1, r1, #1 + adds r0, r2, r1 + strb r3, [r0] + b _08025EC6 + .align 2, 0 +_08025E58: .4byte 0x0202294C +_08025E5C: .4byte 0x000031CC +_08025E60: .4byte 0x000031D0 +_08025E64: + ldr r3, _08025E90 + adds r0, r1, r3 + ldrb r4, [r0] + cmp r4, #1 + bne _08025E94 + movs r1, #0xa2 + lsls r1, r1, #1 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _08025EC6 + movs r0, #0x1f + bl m4aSongNumStop + movs r0, #0x1f + bl PlaySE + ldr r0, [r6] + movs r3, #0xa2 + lsls r3, r3, #1 + adds r0, r0, r3 + b _08025EC4 + .align 2, 0 +_08025E90: .4byte 0x000031D0 +_08025E94: + ldr r4, _08025F18 + adds r0, r1, r4 + ldrb r4, [r0] + cmp r4, #1 + bne _08025EC6 + movs r5, #0xa2 + lsls r5, r5, #1 + adds r0, r2, r5 + ldrb r0, [r0] + cmp r0, #0 + bne _08025EC6 + bl IsSEPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08025EC6 + movs r0, #0x16 + bl PlaySE + movs r0, #1 + bl sub_080281F8 + ldr r0, [r6] + adds r0, r0, r5 +_08025EC4: + strb r4, [r0] +_08025EC6: + mov r4, r8 + cmp r4, r7 + bhs _08025F3A + ldr r5, _08025F1C +_08025ECE: + ldr r2, [r5] + adds r0, r2, #0 + adds r0, #0x28 + ldrb r1, [r0] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08025F20 + adds r0, r0, r1 + adds r0, r2, r0 + adds r1, r0, #0 + adds r1, #0x14 + adds r0, #0x1f + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #9 + bls _08025F24 + movs r3, #0xa4 + lsls r3, r3, #1 + adds r0, r2, r3 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0 + bne _08025F30 + adds r0, r1, r4 + ldrb r0, [r0] + adds r0, #0x4a + bl PlaySE + ldr r0, [r5] + movs r1, #0xa4 + lsls r1, r1, #1 + adds r0, r0, r1 + adds r0, r0, r4 + movs r1, #1 + b _08025F2E + .align 2, 0 +_08025F18: .4byte 0x000031D4 +_08025F1C: .4byte 0x0202294C +_08025F20: .4byte 0x000031A0 +_08025F24: + movs r3, #0xa4 + lsls r3, r3, #1 + adds r0, r2, r3 + adds r0, r0, r4 + movs r1, #0 +_08025F2E: + strb r1, [r0] +_08025F30: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r7 + blo _08025ECE +_08025F3A: + ldr r0, _08025F64 + ldr r2, [r0] + movs r5, #0xaa + lsls r5, r5, #1 + adds r1, r2, r5 + ldrb r1, [r1] + adds r4, r0, #0 + cmp r1, #0 + bne _08025F68 + adds r0, r2, #0 + adds r0, #0x40 + ldrb r0, [r0] + cmp r0, #9 + bls _08025F68 + bl StopMapMusic + ldr r0, [r4] + adds r0, r0, r5 + movs r1, #1 + b _08025F86 + .align 2, 0 +_08025F64: .4byte 0x0202294C +_08025F68: + ldr r0, [r4] + movs r1, #0xaa + lsls r1, r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + bne _08025F88 + movs r0, #0xb + bl PlayFanfareByFanfareNum + ldr r0, [r4] + movs r3, #0xaa + lsls r3, r3, #1 + adds r0, r0, r3 + movs r1, #2 +_08025F86: + strb r1, [r0] +_08025F88: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08025E0C + + thumb_func_start sub_08025F94 +sub_08025F94: @ 0x08025F94 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08025F94 + + thumb_func_start sub_08025FAC +sub_08025FAC: @ 0x08025FAC + push {lr} + bl TransferPlttBuffer + bl LoadOam + bl ProcessSpriteCopyRequests + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08025FAC + + thumb_func_start sub_08025FC0 +sub_08025FC0: @ 0x08025FC0 + push {r4, lr} + adds r4, r0, #0 + adds r0, r1, #0 + bl IsMonShiny + strb r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08025FC0 + + thumb_func_start sub_08025FD4 +sub_08025FD4: @ 0x08025FD4 + push {lr} + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08025FD4 + + thumb_func_start sub_08025FE4 +sub_08025FE4: @ 0x08025FE4 + push {lr} + movs r1, #1 + bl CreateTask + ldr r1, _08026004 + ldr r3, [r1] + movs r2, #0 + strb r0, [r3, #4] + ldr r0, [r1] + strb r2, [r0, #0x10] + ldr r0, [r1] + strb r2, [r0, #0xc] + ldr r0, [r1] + strb r2, [r0, #0x14] + pop {r0} + bx r0 + .align 2, 0 +_08026004: .4byte 0x0202294C + thumb_func_end sub_08025FE4 + + thumb_func_start sub_08026008 +sub_08026008: @ 0x08026008 + push {r4, lr} + ldr r2, _08026028 + ldr r1, [r2] + ldrb r3, [r1, #0x18] + movs r4, #0 + strb r3, [r1, #0x1c] + ldr r1, [r2] + strb r0, [r1, #0x18] + ldr r0, [r2] + strb r4, [r0, #0x10] + ldr r0, [r2] + strb r4, [r0, #0x14] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08026028: .4byte 0x0202294C + thumb_func_end sub_08026008 + + thumb_func_start sub_0802602C +sub_0802602C: @ 0x0802602C + push {r4, lr} + ldr r3, _08026060 + ldr r1, [r3] + ldrb r0, [r1, #0x14] + lsrs r2, r0, #2 + adds r0, #1 + strb r0, [r1, #0x14] + cmp r2, #0 + beq _08026080 + ldr r3, [r3] + ldrb r0, [r3, #0x14] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _08026080 + ldr r1, _08026064 + adds r0, r3, #0 + adds r0, #0x24 + ldrb r0, [r0] + subs r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r2, r0 + blo _08026068 + movs r0, #1 + b _08026082 + .align 2, 0 +_08026060: .4byte 0x0202294C +_08026064: .4byte 0x082CB320 +_08026068: + lsls r4, r2, #3 + adds r1, r4, #0 + movs r0, #0x14 + bl SetGpuReg + rsbs r4, r4, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + movs r0, #0x18 + adds r1, r4, #0 + bl SetGpuReg +_08026080: + movs r0, #0 +_08026082: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0802602C + + thumb_func_start sub_08026088 +sub_08026088: @ 0x08026088 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r2, _080260E0 + ldr r0, [r2] + adds r1, r0, #0 + adds r1, #0x44 + adds r0, #0x48 + ldrb r5, [r0] + ldrb r1, [r1] + cmp r1, r5 + bhs _080260D4 + mov r8, r2 + ldr r0, _080260E4 + mov ip, r0 + movs r7, #0 + movs r6, #1 +_080260AA: + mov r2, r8 + ldr r0, [r2] + mov r2, ip + adds r4, r0, r2 + ldr r2, _080260E8 + adds r0, r0, r2 + adds r2, r0, r1 + movs r3, #0 + adds r0, r1, #0 + ands r0, r6 + cmp r0, #0 + bne _080260C4 + movs r3, #1 +_080260C4: + strb r3, [r2] + adds r0, r4, r1 + strb r7, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, r5 + blo _080260AA +_080260D4: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080260E0: .4byte 0x0202294C +_080260E4: .4byte 0x000032E0 +_080260E8: .4byte 0x000032EB + thumb_func_end sub_08026088 + + thumb_func_start sub_080260EC +sub_080260EC: @ 0x080260EC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + ldr r0, _080261C0 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0x44 + ldrb r0, [r0] + str r0, [sp] + adds r0, r1, #0 + adds r0, #0x48 + ldrb r0, [r0] + str r0, [sp, #4] + adds r0, r1, #0 + adds r0, #0x24 + ldrb r0, [r0] + str r0, [sp, #8] + adds r0, r1, #0 + adds r0, #0x40 + ldrb r0, [r0] + cmp r0, #9 + bls _08026120 + b _080263DC +_08026120: + movs r6, #0 + ldr r0, [sp, #8] + cmp r6, r0 + bhs _08026208 +_08026128: + ldr r3, _080261C0 + lsls r0, r6, #4 + subs r1, r0, r6 + lsls r1, r1, #2 + ldr r2, [r3] + adds r1, r1, r2 + ldr r4, _080261C4 + adds r4, r4, r1 + mov r8, r4 + ldrb r1, [r4] + mov sb, r0 + adds r0, r6, #1 + str r0, [sp, #0xc] + cmp r1, #0 + beq _080261FC + adds r0, r2, #0 + adds r0, #0xa8 + adds r0, r0, r6 + ldrb r0, [r0] + cmp r0, #1 + bne _080261FC + ldr r1, [sp] + mov sl, r1 + ldr r2, [sp, #4] + cmp sl, r2 + bhs _080261FC + adds r7, r3, #0 +_0802615E: + ldr r0, _080261C8 + add r0, sl + ldrb r5, [r0] + ldr r1, [r7] + lsls r4, r5, #1 + adds r0, r1, #0 + adds r0, #0xf4 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, r6 + beq _080261FC + adds r0, r1, #0 + adds r0, #0xf5 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, r6 + beq _080261FC + mov r0, r8 + ldrb r1, [r0] + adds r0, r6, #0 + adds r2, r5, #0 + bl sub_080263FC + cmp r0, #1 + bne _080261D8 + movs r2, #0 + ldr r3, _080261C0 + mov r8, r4 +_08026196: + ldr r0, [r3] + mov r4, r8 + adds r1, r2, r4 + adds r0, #0xf4 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, #0xff + bne _080261CC + strb r6, [r1] + ldr r0, [r3] + adds r0, #0xa8 + adds r0, r0, r6 + movs r1, #2 + strb r1, [r0] + ldr r0, [r3] + adds r0, #0xc4 + adds r0, r0, r5 + movs r1, #1 + strb r1, [r0] + b _080261FC + .align 2, 0 +_080261C0: .4byte 0x0202294C +_080261C4: .4byte 0x000031CC +_080261C8: .4byte 0x082C7D28 +_080261CC: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #1 + bls _08026196 + b _080261FC +_080261D8: + ldr r0, [r7] + mov r2, sb + subs r1, r2, r6 + lsls r1, r1, #2 + adds r0, r0, r1 + ldr r4, _080262CC + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #1 + beq _080261FC + mov r0, sl + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + ldr r0, [sp, #4] + cmp sl, r0 + blo _0802615E +_080261FC: + ldr r1, [sp, #0xc] + lsls r0, r1, #0x18 + lsrs r6, r0, #0x18 + ldr r2, [sp, #8] + cmp r6, r2 + blo _08026128 +_08026208: + ldr r4, [sp] + mov sl, r4 + ldr r0, [sp, #4] + cmp sl, r0 + blo _08026214 + b _080263DC +_08026214: + ldr r1, _080262D0 + mov sb, r1 +_08026218: + movs r6, #0xff + ldr r0, _080262D4 + add r0, sl + ldrb r5, [r0] + mov r2, sb + ldr r0, [r2] + adds r0, #0xc4 + adds r0, r0, r5 + ldrb r0, [r0] + cmp r0, #1 + beq _08026230 + b _080263CA +_08026230: + adds r0, r5, #0 + bl sub_08026B4C + mov r1, sb + ldr r4, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r4, #0 + adds r1, #0x90 + adds r1, r1, r0 + ldrb r0, [r1] + movs r1, #7 + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #1 + bls _08026256 + movs r3, #2 +_08026256: + ldr r2, _080262D8 + ldr r0, _080262DC + adds r1, r4, r0 + adds r1, r1, r5 + lsls r0, r3, #1 + adds r0, r0, r3 + ldrb r1, [r1] + adds r0, r0, r1 + adds r0, r0, r2 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0xd0 + adds r0, r0, r5 + ldrb r0, [r0] + subs r2, r1, r0 + cmp r2, #5 + bgt _08026284 + adds r1, r4, #0 + adds r1, #0x9c + adds r1, r1, r5 + ldrb r0, [r1] + adds r0, r0, r2 + strb r0, [r1] +_08026284: + mov r2, sb + ldr r1, [r2] + adds r1, #0x9c + adds r1, r1, r5 + ldrb r0, [r1] + adds r0, #1 + movs r2, #0 + strb r0, [r1] + movs r4, #0xff + ands r0, r4 + cmp r0, #5 + bhi _0802629E + b _080263CA +_0802629E: + mov r1, sb + ldr r0, [r1] + adds r0, #0x9c + adds r0, r0, r5 + strb r2, [r0] + ldr r3, [r1] + lsls r1, r5, #1 + adds r0, r3, #0 + adds r0, #0xf4 + adds r2, r0, r1 + ldrb r0, [r2] + mov r8, r1 + cmp r0, #0xff + bne _080262E0 + adds r0, r3, #0 + adds r0, #0xf5 + add r0, r8 + ldrb r0, [r0] + cmp r0, #0xff + bne _080262C8 + b _080263CA +_080262C8: + b _080262F0 + .align 2, 0 +_080262CC: .4byte 0x000031D4 +_080262D0: .4byte 0x0202294C +_080262D4: .4byte 0x082C7D28 +_080262D8: .4byte 0x082CB314 +_080262DC: .4byte 0x000031B4 +_080262E0: + adds r0, r3, #0 + adds r0, #0xf5 + add r0, r8 + ldrb r0, [r0] + cmp r0, #0xff + bne _080262F0 + ldrb r4, [r2] + b _08026316 +_080262F0: + mov r2, sb + ldr r1, [r2] + adds r0, r1, #0 + adds r0, #0xf4 + add r0, r8 + ldrb r7, [r0] + adds r1, #0xf5 + add r1, r8 + ldrb r6, [r1] + bl Random + movs r1, #1 + ands r1, r0 + cmp r1, #0 + bne _08026312 + adds r4, r7, #0 + b _08026316 +_08026312: + adds r4, r6, #0 + adds r6, r7, #0 +_08026316: + mov r1, sb + ldr r0, [r1] + ldr r2, _080263EC + adds r0, r0, r2 + adds r0, r0, r5 + movs r1, #7 + strb r1, [r0] + mov r1, sb + ldr r0, [r1] + adds r0, #0xc4 + adds r0, r0, r5 + movs r1, #2 + strb r1, [r0] + mov r2, sb + ldr r0, [r2] + adds r0, #0xa8 + adds r0, r0, r4 + movs r1, #3 + strb r1, [r0] + ldr r0, [r2] + adds r0, #0xb8 + adds r0, r0, r5 + strb r4, [r0] + ldr r1, [r2] + lsls r0, r4, #4 + subs r0, r0, r4 + lsls r0, r0, #2 + adds r1, r1, r0 + ldr r2, _080263F0 + adds r1, r1, r2 + movs r0, #1 + strb r0, [r1] + mov r2, sb + ldr r1, [r2] + lsls r0, r6, #4 + subs r0, r0, r6 + lsls r0, r0, #2 + adds r1, r1, r0 + ldr r0, _080263F4 + adds r1, r1, r0 + movs r2, #1 + strb r2, [r1] + mov r0, sb + ldr r1, [r0] + lsls r0, r4, #1 + adds r1, #0x86 + adds r1, r1, r0 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + movs r0, #0 + adds r1, r5, #0 + adds r2, r4, #0 + bl sub_08026CDC + movs r0, #1 + bl sub_08026FF4 + adds r0, r4, #0 + bl sub_08026ADC + mov r1, sb + ldr r0, [r1] + adds r1, r0, #0 + adds r1, #0xe8 + adds r1, r1, r5 + ldr r2, _080263F8 + adds r0, r0, r2 + adds r0, r0, r5 + ldrb r0, [r0] + strb r0, [r1] + mov r4, sb + ldr r0, [r4] + adds r0, r0, r2 + adds r0, r0, r5 + movs r1, #3 + strb r1, [r0] + ldr r1, [r4] + adds r1, #0xf4 + add r1, r8 + ldrb r0, [r1] + movs r2, #0xff + orrs r0, r2 + strb r0, [r1] + ldr r1, [r4] + adds r1, #0xf5 + add r1, r8 + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] +_080263CA: + mov r0, sl + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + ldr r4, [sp, #4] + cmp sl, r4 + bhs _080263DC + b _08026218 +_080263DC: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080263EC: .4byte 0x000032EB +_080263F0: .4byte 0x000031D0 +_080263F4: .4byte 0x000031D4 +_080263F8: .4byte 0x000032E0 + thumb_func_end sub_080260EC + + thumb_func_start sub_080263FC +sub_080263FC: @ 0x080263FC + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + movs r7, #0 + ldr r2, _08026430 + ldr r1, [r2] + adds r0, r1, #0 + adds r0, #0x24 + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _08026434 + adds r1, r1, r0 + mov ip, r2 + cmp r3, #2 + beq _08026438 + cmp r3, #2 + bgt _0802643E + cmp r3, #1 + beq _0802643C + b _0802643E + .align 2, 0 +_08026430: .4byte 0x0202294C +_08026434: .4byte 0x000032E0 +_08026438: + movs r7, #1 + b _0802643E +_0802643C: + movs r7, #2 +_0802643E: + adds r0, r1, #0 + adds r0, #0xb + adds r0, r0, r6 + ldrb r0, [r0] + subs r0, #6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0802649C + ldr r0, _08026490 + lsls r1, r4, #1 + adds r1, r1, r4 + adds r1, r7, r1 + lsls r2, r5, #4 + subs r2, r2, r5 + adds r1, r1, r2 + adds r1, r1, r0 + ldrb r1, [r1] + cmp r6, r1 + bne _080264D2 + mov r0, ip + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0xc4 + adds r0, r0, r6 + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _08026498 + lsls r0, r4, #4 + subs r0, r0, r4 + lsls r0, r0, #2 + adds r0, r1, r0 + ldr r1, _08026494 + adds r0, r0, r1 + movs r1, #1 + strb r1, [r0] + b _080264D2 + .align 2, 0 +_08026490: .4byte 0x082C7E3B +_08026494: .4byte 0x000031D4 +_08026498: + movs r0, #1 + b _080264D4 +_0802649C: + ldr r0, _080264DC + lsls r1, r4, #1 + adds r1, r1, r4 + adds r1, r7, r1 + lsls r2, r5, #4 + subs r2, r2, r5 + adds r1, r1, r2 + adds r1, r1, r0 + ldrb r1, [r1] + cmp r6, r1 + bne _080264D2 + mov r1, ip + ldr r0, [r1] + adds r0, #0xa8 + adds r0, r0, r4 + movs r1, #4 + strb r1, [r0] + mov r0, ip + ldr r1, [r0] + lsls r0, r4, #4 + subs r0, r0, r4 + lsls r0, r0, #2 + adds r1, r1, r0 + ldr r0, _080264E0 + adds r1, r1, r0 + movs r0, #1 + strb r0, [r1] +_080264D2: + movs r0, #0 +_080264D4: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080264DC: .4byte 0x082C7E3B +_080264E0: .4byte 0x000031D4 + thumb_func_end sub_080263FC + + thumb_func_start sub_080264E4 +sub_080264E4: @ 0x080264E4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r2, _080265B8 + ldr r4, [r2] + adds r0, r4, #0 + adds r0, #0x44 + ldrb r1, [r0] + adds r0, #4 + ldrb r0, [r0] + mov sb, r0 + movs r3, #0 + mov sl, r3 + movs r5, #0x90 + lsls r5, r5, #1 + adds r0, r4, r5 + str r3, [r0] + adds r5, r1, #0 + mov r0, sb + subs r0, #1 + cmp r5, r0 + blt _08026516 + b _08026734 +_08026516: + mov r8, r2 +_08026518: + mov r0, r8 + ldr r4, [r0] + adds r0, r4, #0 + adds r0, #0xc4 + adds r0, r0, r5 + ldrb r0, [r0] + cmp r0, #1 + bls _0802652A + b _08026634 +_0802652A: + movs r1, #0x90 + lsls r1, r1, #1 + adds r0, r4, r1 + movs r2, #1 + str r2, [r0] + ldr r1, _080265BC + adds r0, r4, r1 + adds r6, r0, r5 + ldrb r0, [r6] + cmp r0, #9 + bls _080265C4 + movs r7, #0 + movs r0, #0xa + strb r0, [r6] + mov r1, r8 + ldr r0, [r1] + adds r0, #0xc4 + adds r0, r0, r5 + movs r1, #3 + strb r1, [r0] + mov r1, r8 + ldr r0, [r1] + movs r6, #0xa4 + lsls r6, r6, #1 + adds r0, r0, r6 + adds r1, r0, r5 + ldrb r0, [r1] + cmp r0, #0 + bne _08026574 + strb r2, [r1] + ldr r2, _080265C0 + adds r0, r4, r2 + adds r0, r0, r5 + ldrb r0, [r0] + adds r0, #0x4a + bl PlaySE +_08026574: + mov r0, r8 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0x40 + ldrb r0, [r0] + cmp r0, #9 + bls _0802658A + mov r2, sl + cmp r2, #1 + beq _0802658A + b _08026724 +_0802658A: + movs r0, #1 + mov sl, r0 + adds r0, r1, r6 + adds r0, r0, r5 + strb r7, [r0] + mov r1, r8 + ldr r0, [r1] + adds r1, r0, #0 + adds r1, #0x40 + ldrb r0, [r1] + cmp r0, #9 + bhi _080265A6 + adds r0, #1 + strb r0, [r1] +_080265A6: + movs r0, #3 + adds r1, r5, #0 + movs r2, #0 + bl sub_08026CDC + movs r0, #0 + bl sub_08026FF4 + b _08026724 + .align 2, 0 +_080265B8: .4byte 0x0202294C +_080265BC: .4byte 0x000032EB +_080265C0: .4byte 0x000032E0 +_080265C4: + adds r0, r5, #0 + bl sub_08026B4C + mov r2, r8 + ldr r7, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r7, #0 + adds r1, #0x90 + adds r1, r1, r0 + ldrb r0, [r1] + movs r1, #7 + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #1 + bls _080265EA + movs r3, #2 +_080265EA: + ldr r2, _0802662C + ldr r0, _08026630 + adds r1, r4, r0 + adds r1, r1, r5 + lsls r0, r3, #1 + adds r0, r0, r3 + ldrb r1, [r1] + adds r0, r0, r1 + adds r0, r0, r2 + ldrb r2, [r0] + adds r1, r7, #0 + adds r1, #0xd0 + adds r1, r1, r5 + ldrb r0, [r1] + adds r0, #1 + movs r3, #0 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r2 + blo _08026624 + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] + mov r1, r8 + ldr r0, [r1] + adds r0, #0xd0 + adds r0, r0, r5 + strb r3, [r0] +_08026624: + bl sub_080260EC + b _08026724 + .align 2, 0 +_0802662C: .4byte 0x082CB314 +_08026630: .4byte 0x000032E0 +_08026634: + cmp r0, #2 + bne _080266B4 + adds r1, r4, #0 + adds r1, #0xdc + adds r1, r1, r5 + ldrb r0, [r1] + adds r0, #1 + movs r3, #0 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x13 + bls _08026724 + mov r0, r8 + ldr r2, [r0] + adds r0, r2, #0 + adds r0, #0xb8 + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r2, r2, r0 + ldr r1, _080266A8 + adds r2, r2, r1 + strb r3, [r2] + mov r2, r8 + ldr r0, [r2] + adds r0, #0xdc + adds r0, r0, r5 + strb r3, [r0] + ldr r0, [r2] + adds r0, #0xd0 + adds r0, r0, r5 + strb r3, [r0] + ldr r0, [r2] + adds r0, #0xc4 + adds r0, r0, r5 + strb r3, [r0] + ldr r1, _080266AC + adds r0, r4, r1 + adds r0, r0, r5 + movs r1, #1 + strb r1, [r0] + adds r0, r5, #0 + bl sub_08026B4C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r5, #0 + bl sub_08026B70 + ldr r2, _080266B0 + adds r1, r4, r2 + adds r1, r1, r5 + strb r0, [r1] + b _08026724 + .align 2, 0 +_080266A8: .4byte 0x000031D0 +_080266AC: .4byte 0x000032EB +_080266B0: .4byte 0x000032E0 +_080266B4: + cmp r0, #3 + bne _08026724 + adds r1, r4, #0 + adds r1, #0xdc + adds r1, r1, r5 + ldrb r0, [r1] + adds r0, #1 + movs r2, #0 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x13 + bls _08026724 + mov r0, r8 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0x40 + ldrb r0, [r0] + cmp r0, #9 + bhi _08026724 + adds r0, r1, #0 + adds r0, #0xdc + adds r0, r0, r5 + strb r2, [r0] + mov r1, r8 + ldr r0, [r1] + adds r0, #0xd0 + adds r0, r0, r5 + strb r2, [r0] + ldr r0, [r1] + adds r0, #0xc4 + adds r0, r0, r5 + strb r2, [r0] + ldr r2, _08026744 + adds r0, r4, r2 + adds r0, r0, r5 + movs r1, #1 + strb r1, [r0] + mov r0, r8 + ldr r1, [r0] + adds r1, #0xe8 + adds r1, r1, r5 + subs r2, #0xb + adds r4, r4, r2 + adds r4, r4, r5 + ldrb r0, [r4] + strb r0, [r1] + adds r0, r5, #0 + bl sub_08026B4C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r5, #0 + bl sub_08026B70 + strb r0, [r4] +_08026724: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + mov r0, sb + subs r0, #1 + cmp r5, r0 + bge _08026734 + b _08026518 +_08026734: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08026744: .4byte 0x000032EB + thumb_func_end sub_080264E4 + + thumb_func_start sub_08026748 +sub_08026748: @ 0x08026748 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r0, _080267B0 + ldr r0, [r0] + adds r1, r0, #0 + adds r1, #0x44 + adds r0, #0x48 + ldrb r0, [r0] + mov r8, r0 + ldrb r6, [r1] + cmp r6, r8 + bhs _0802683A + ldr r0, _080267B4 + mov sb, r0 +_08026768: + ldr r0, _080267B0 + ldr r3, [r0] + adds r0, r3, #0 + adds r0, #0x28 + ldrb r1, [r0] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r2, _080267B8 + adds r0, r0, r2 + adds r7, r3, r0 + movs r0, #0xb + adds r2, r1, #0 + muls r2, r0, r2 + adds r2, r6, r2 + adds r3, #0x24 + ldrb r1, [r3] + subs r1, #1 + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #3 + subs r0, r0, r1 + adds r2, r2, r0 + add r2, sb + ldrb r4, [r2] + adds r0, r7, #0 + adds r0, #0x1f + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0 + beq _080267BC + adds r0, r6, #0 + movs r1, #0 + bl sub_08028924 + b _080267C4 + .align 2, 0 +_080267B0: .4byte 0x0202294C +_080267B4: .4byte 0x082C7D28 +_080267B8: .4byte 0x000031A0 +_080267BC: + adds r0, r6, #0 + movs r1, #1 + bl sub_08028924 +_080267C4: + adds r0, r7, #0 + adds r0, #0x1f + adds r5, r0, r4 + ldrb r0, [r5] + cmp r0, #9 + bls _080267F0 + adds r0, r7, #0 + adds r0, #0x14 + adds r0, r0, r4 + ldrb r1, [r0] + adds r1, #3 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r6, #0 + bl sub_080289D0 + ldrb r1, [r5] + lsls r1, r1, #0x19 + movs r0, #0xff + lsls r0, r0, #0x18 + adds r1, r1, r0 + b _08026812 +_080267F0: + adds r0, r7, #0 + adds r0, #0x14 + adds r3, r0, r4 + ldrb r0, [r3] + cmp r0, #3 + bne _0802681C + movs r0, #7 + strb r0, [r5] + adds r0, r6, #0 + movs r1, #6 + bl sub_080289D0 + ldrb r1, [r5] + lsls r1, r1, #0x19 + movs r2, #0xff + lsls r2, r2, #0x18 + adds r1, r1, r2 +_08026812: + lsrs r1, r1, #0x18 + adds r0, r6, #0 + bl sub_080289A8 + b _08026830 +_0802681C: + ldrb r1, [r3] + adds r0, r6, #0 + bl sub_080289D0 + ldrb r1, [r5] + lsls r1, r1, #0x19 + lsrs r1, r1, #0x18 + adds r0, r6, #0 + bl sub_080289A8 +_08026830: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, r8 + blo _08026768 +_0802683A: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08026748 + + thumb_func_start sub_08026848 +sub_08026848: @ 0x08026848 + push {r4, r5, r6, lr} + ldr r1, _08026880 + ldr r0, [r1] + adds r0, #0x24 + ldrb r5, [r0] + movs r4, #0 + cmp r4, r5 + bhs _0802687A + adds r6, r1, #0 +_0802685A: + lsls r0, r4, #4 + subs r0, r0, r4 + lsls r0, r0, #2 + ldr r1, [r6] + adds r0, r0, r1 + ldr r1, _08026884 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080283E0 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r5 + blo _0802685A +_0802687A: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08026880: .4byte 0x0202294C +_08026884: .4byte 0x000031CC + thumb_func_end sub_08026848 + + thumb_func_start sub_08026888 +sub_08026888: @ 0x08026888 + push {r4, r5, lr} + ldr r0, _080268B0 + ldr r0, [r0] + adds r0, #0x24 + ldrb r5, [r0] + movs r4, #0 + cmp r4, r5 + bhs _080268AA +_08026898: + adds r0, r4, #0 + movs r1, #4 + bl sub_080283E0 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r5 + blo _08026898 +_080268AA: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080268B0: .4byte 0x0202294C + thumb_func_end sub_08026888 + + thumb_func_start sub_080268B4 +sub_080268B4: @ 0x080268B4 + push {lr} + bl sub_08026748 + ldr r0, _080268CC + ldr r0, [r0] + adds r0, #0x40 + ldrb r0, [r0] + cmp r0, #9 + bls _080268D0 + bl sub_08026888 + b _080268D4 + .align 2, 0 +_080268CC: .4byte 0x0202294C +_080268D0: + bl sub_08026848 +_080268D4: + ldr r0, _080268E4 + ldr r0, [r0] + adds r0, #0x40 + ldrb r0, [r0] + bl sub_08028600 + pop {r0} + bx r0 + .align 2, 0 +_080268E4: .4byte 0x0202294C + thumb_func_end sub_080268B4 + + thumb_func_start sub_080268E8 +sub_080268E8: @ 0x080268E8 + push {lr} + bl sub_08026748 + ldr r0, _08026900 + ldr r0, [r0] + adds r0, #0x40 + ldrb r0, [r0] + cmp r0, #9 + bls _08026904 + bl sub_08026888 + b _08026908 + .align 2, 0 +_08026900: .4byte 0x0202294C +_08026904: + bl sub_08026848 +_08026908: + ldr r0, _08026918 + ldr r0, [r0] + adds r0, #0x40 + ldrb r0, [r0] + bl sub_08028600 + pop {r0} + bx r0 + .align 2, 0 +_08026918: .4byte 0x0202294C + thumb_func_end sub_080268E8 + + thumb_func_start sub_0802691C +sub_0802691C: @ 0x0802691C + push {lr} + adds r3, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, #1 + cmp r0, #4 + bhi _08026974 + lsls r0, r0, #2 + ldr r1, _08026934 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08026934: .4byte 0x08026938 +_08026938: @ jump table + .4byte _0802694C @ case 0 + .4byte _08026954 @ case 1 + .4byte _0802695C @ case 2 + .4byte _08026964 @ case 3 + .4byte _0802696C @ case 4 +_0802694C: + movs r0, #4 + strb r0, [r3] + movs r0, #7 + b _08026972 +_08026954: + movs r0, #3 + strb r0, [r3] + movs r0, #8 + b _08026972 +_0802695C: + movs r0, #2 + strb r0, [r3] + movs r0, #9 + b _08026972 +_08026964: + movs r0, #1 + strb r0, [r3] + movs r0, #0xa + b _08026972 +_0802696C: + movs r0, #0 + strb r0, [r3] + movs r0, #0xb +_08026972: + strb r0, [r2] +_08026974: + pop {r0} + bx r0 + thumb_func_end sub_0802691C + + thumb_func_start sub_08026978 +sub_08026978: @ 0x08026978 + push {r4, r5, r6, lr} + ldr r1, _080269D0 + ldr r0, [r1] + adds r0, #0x24 + ldrb r5, [r0] + movs r4, #1 + cmp r4, r5 + bhs _080269DE + adds r6, r1, #0 +_0802698A: + ldr r0, [r6] + movs r1, #0xac + lsls r1, r1, #1 + adds r0, r0, r1 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0 + bne _080269AC + adds r0, r4, #0 + bl sub_08027B28 + ldr r1, [r6] + movs r2, #0xac + lsls r2, r2, #1 + adds r1, r1, r2 + adds r1, r1, r4 + strb r0, [r1] +_080269AC: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r5 + blo _0802698A + cmp r4, r5 + bhs _080269DE + ldr r0, _080269D0 + ldr r0, [r0] + movs r2, #0xac + lsls r2, r2, #1 + adds r1, r0, r2 +_080269C4: + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, #0 + bne _080269D4 + movs r0, #0 + b _080269E0 + .align 2, 0 +_080269D0: .4byte 0x0202294C +_080269D4: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r5 + blo _080269C4 +_080269DE: + movs r0, #1 +_080269E0: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08026978 + + thumb_func_start sub_080269E8 +sub_080269E8: @ 0x080269E8 + push {r4, lr} + movs r1, #0 + ldr r4, _08026A0C + movs r3, #0xac + lsls r3, r3, #1 + movs r2, #0 +_080269F4: + ldr r0, [r4] + adds r0, r0, r3 + adds r0, r0, r1 + strb r2, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #4 + bls _080269F4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08026A0C: .4byte 0x0202294C + thumb_func_end sub_080269E8 + + thumb_func_start sub_08026A10 +sub_08026A10: @ 0x08026A10 + push {r4, lr} + ldr r3, _08026A44 + ldr r1, [r3] + adds r2, r1, #0 + adds r2, #0x40 + ldrb r0, [r2] + cmp r0, #9 + bls _08026A48 + movs r4, #0x90 + lsls r4, r4, #1 + adds r0, r1, r4 + ldr r0, [r0] + cmp r0, #0 + bne _08026A48 + movs r0, #0xa + strb r0, [r2] + ldr r0, [r3] + movs r1, #0x96 + lsls r1, r1, #1 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #0 + beq _08026A48 + movs r0, #1 + b _08026A4A + .align 2, 0 +_08026A44: .4byte 0x0202294C +_08026A48: + movs r0, #0 +_08026A4A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_08026A10 + + thumb_func_start sub_08026A50 +sub_08026A50: @ 0x08026A50 + push {r4, r5, r6, lr} + ldr r4, _08026AC8 + ldr r1, [r4] + adds r2, r1, #0 + adds r2, #0x40 + ldrb r0, [r2] + cmp r0, #9 + bls _08026AD4 + adds r0, r1, #0 + adds r0, #0x44 + ldrb r3, [r0] + adds r0, #4 + ldrb r5, [r0] + movs r0, #0xa + strb r0, [r2] + ldr r4, [r4] + mov ip, r4 + movs r0, #0x96 + lsls r0, r0, #1 + add r0, ip + ldr r0, [r0] + cmp r0, #0 + beq _08026AD4 + adds r4, r3, #0 + cmp r4, r5 + bhs _08026AC4 + mov r0, ip + adds r0, #0x28 + ldrb r3, [r0] + lsls r1, r3, #4 + subs r1, r1, r3 + lsls r1, r1, #2 + ldr r6, _08026ACC + subs r0, #4 + ldrb r2, [r0] + subs r2, #1 + add r1, ip + movs r0, #0xb + muls r3, r0, r3 + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #3 + subs r2, r0, r2 + ldr r0, _08026AD0 + adds r1, r1, r0 +_08026AAA: + adds r0, r4, r3 + adds r0, r0, r2 + adds r0, r0, r6 + ldrb r0, [r0] + adds r0, r1, r0 + ldrb r0, [r0] + cmp r0, #0xa + bne _08026AD4 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r5 + blo _08026AAA +_08026AC4: + movs r0, #1 + b _08026AD6 + .align 2, 0 +_08026AC8: .4byte 0x0202294C +_08026ACC: .4byte 0x082C7D28 +_08026AD0: .4byte 0x000031BF +_08026AD4: + movs r0, #0 +_08026AD6: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_08026A50 + + thumb_func_start sub_08026ADC +sub_08026ADC: @ 0x08026ADC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _08026B44 + mov r8, r0 + ldr r0, _08026B48 + ldr r6, [r0] + adds r0, r6, #0 + adds r0, #0x90 + adds r0, r0, r5 + mov sb, r0 + ldrb r7, [r0] + adds r0, r7, #0 + movs r1, #7 + bl __umodsi3 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + add r4, r8 + adds r0, r7, #0 + movs r1, #7 + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x64 + muls r0, r1, r0 + ldrb r4, [r4] + adds r0, r0, r4 + lsls r0, r0, #0x18 + lsls r5, r5, #1 + adds r6, #0x86 + adds r6, r6, r5 + ldrh r1, [r6] + lsrs r0, r0, #0x18 + cmp r1, r0 + blo _08026B36 + adds r0, r7, #1 + mov r1, sb + strb r0, [r1] +_08026B36: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08026B44: .4byte 0x082CB328 +_08026B48: .4byte 0x0202294C + thumb_func_end sub_08026ADC + + thumb_func_start sub_08026B4C +sub_08026B4C: @ 0x08026B4C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _08026B68 + ldr r1, _08026B6C + ldr r1, [r1] + adds r1, #0x24 + ldrb r1, [r1] + subs r1, #1 + movs r2, #0xb + muls r1, r2, r1 + adds r0, r0, r1 + adds r0, r0, r3 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08026B68: .4byte 0x082C7ED4 +_08026B6C: .4byte 0x0202294C + thumb_func_end sub_08026B4C + + thumb_func_start sub_08026B70 +sub_08026B70: @ 0x08026B70 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + ldr r4, _08026BF0 + ldr r1, [r4] + adds r1, #0x24 + ldrb r2, [r1] + subs r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r3, _08026BF4 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r0, r2, #4 + subs r0, r0, r2 + adds r1, r1, r0 + adds r0, r1, r3 + ldrb r0, [r0] + mov ip, r0 + adds r0, r3, #1 + adds r0, r1, r0 + ldrb r7, [r0] + adds r3, #2 + adds r1, r1, r3 + ldrb r1, [r1] + mov r8, r1 + movs r3, #0 + ldr r1, _08026BF8 + lsls r0, r2, #2 + adds r2, r0, r2 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _08026BD8 + adds r6, r1, #0 +_08026BBE: + adds r0, r3, r2 + adds r0, r0, r6 + ldrb r0, [r0] + cmp r5, r0 + beq _08026BFC + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + adds r0, r3, r2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _08026BBE +_08026BD8: + ldr r0, [r4] + adds r0, #0x90 + mov r1, ip + adds r2, r0, r1 + adds r1, r0, r7 + ldrb r0, [r2] + ldrb r3, [r1] + cmp r0, r3 + bls _08026C06 + adds r1, r0, #0 + b _08026C08 + .align 2, 0 +_08026BF0: .4byte 0x0202294C +_08026BF4: .4byte 0x082C7E86 +_08026BF8: .4byte 0x082C7F0B +_08026BFC: + ldr r0, [r4] + adds r0, #0x90 + adds r0, r0, r7 + ldrb r0, [r0] + b _08026C1A +_08026C06: + ldrb r1, [r1] +_08026C08: + ldr r0, [r4] + adds r0, #0x90 + mov r2, r8 + adds r4, r0, r2 + ldrb r0, [r4] + cmp r0, r1 + bls _08026C18 + adds r1, r0, #0 +_08026C18: + adds r0, r1, #0 +_08026C1A: + adds r1, r5, #0 + bl sub_08026C30 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08026B70 + + thumb_func_start sub_08026C30 +sub_08026C30: @ 0x08026C30 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _08026C5C + ldr r2, [r2] + adds r2, #0xe8 + adds r2, r2, r1 + ldrb r4, [r2] + movs r1, #7 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #6 + bhi _08026C9E + lsls r0, r0, #2 + ldr r1, _08026C60 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08026C5C: .4byte 0x0202294C +_08026C60: .4byte 0x08026C64 +_08026C64: @ jump table + .4byte _08026C9E @ case 0 + .4byte _08026C96 @ case 1 + .4byte _08026CA2 @ case 2 + .4byte _08026C80 @ case 3 + .4byte _08026C86 @ case 4 + .4byte _08026C8C @ case 5 + .4byte _08026C92 @ case 6 +_08026C80: + cmp r4, #0 + beq _08026C96 + b _08026C9E +_08026C86: + cmp r4, #0 + beq _08026CA2 + b _08026C9E +_08026C8C: + cmp r4, #2 + beq _08026C96 + b _08026CA2 +_08026C92: + cmp r4, #0 + bne _08026C9A +_08026C96: + movs r0, #1 + b _08026CA4 +_08026C9A: + cmp r4, #1 + beq _08026CA2 +_08026C9E: + movs r0, #0 + b _08026CA4 +_08026CA2: + movs r0, #2 +_08026CA4: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08026C30 + + thumb_func_start sub_08026CAC +sub_08026CAC: @ 0x08026CAC + push {r4, r5, r6, lr} + movs r6, #0 + movs r5, #0 + adds r4, r0, #0 + b _08026CBE +_08026CB6: + ldrh r0, [r4, #6] + adds r6, r6, r0 + adds r4, #0xc + adds r5, #1 +_08026CBE: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r5, r0 + blt _08026CB6 + cmp r6, #0xa + bgt _08026CD2 + movs r0, #0 + b _08026CD4 +_08026CD2: + movs r0, #1 +_08026CD4: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08026CAC + + thumb_func_start sub_08026CDC +sub_08026CDC: @ 0x08026CDC + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r6, _08026D04 + ldr r1, [r6] + adds r0, r1, #0 + adds r0, #0x24 + ldrb r5, [r0] + cmp r3, #0 + bge _08026CFA + b _08026FEC +_08026CFA: + cmp r3, #2 + ble _08026D08 + cmp r3, #3 + beq _08026D38 + b _08026FEC + .align 2, 0 +_08026D04: .4byte 0x0202294C +_08026D08: + ldr r3, _08026D30 + adds r0, r1, r3 + adds r0, r0, r4 + ldrb r4, [r0] + lsls r4, r4, #1 + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r4, r4, r0 + adds r0, r1, #0 + adds r0, #0x4a + adds r0, r0, r4 + ldrh r0, [r0] + ldr r1, _08026D34 + bl IncrementWithLimit + ldr r1, [r6] + adds r1, #0x4a + adds r1, r1, r4 + b _08026FEA + .align 2, 0 +_08026D30: .4byte 0x000031B4 +_08026D34: .4byte 0x00004E20 +_08026D38: + adds r0, r1, #0 + adds r0, #0x4a + bl sub_08026CAC + cmp r0, #0 + beq _08026D46 + b _08026FEC +_08026D46: + cmp r5, #3 + bne _08026D4C + b _08026F14 +_08026D4C: + cmp r5, #3 + bgt _08026D58 + cmp r5, #2 + bne _08026D56 + b _08026FA8 +_08026D56: + b _08026FEC +_08026D58: + cmp r5, #4 + bne _08026D5E + b _08026E50 +_08026D5E: + cmp r5, #5 + beq _08026D64 + b _08026FEC +_08026D64: + cmp r4, #9 + bls _08026D6A + b _08026FEC +_08026D6A: + lsls r0, r4, #2 + ldr r1, _08026D74 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08026D74: .4byte 0x08026D78 +_08026D78: @ jump table + .4byte _08026DA0 @ case 0 + .4byte _08026DB8 @ case 1 + .4byte _08026DC4 @ case 2 + .4byte _08026DDC @ case 3 + .4byte _08026DE8 @ case 4 + .4byte _08026E00 @ case 5 + .4byte _08026E0C @ case 6 + .4byte _08026E20 @ case 7 + .4byte _08026E2C @ case 8 + .4byte _08026E44 @ case 9 +_08026DA0: + ldr r0, _08026DB4 + ldr r1, [r0] + adds r2, r1, #0 + adds r2, #0x68 + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + adds r1, #0x74 + b _08026FE6 + .align 2, 0 +_08026DB4: .4byte 0x0202294C +_08026DB8: + ldr r0, _08026DC0 + ldr r1, [r0] + adds r1, #0x74 + b _08026FE6 + .align 2, 0 +_08026DC0: .4byte 0x0202294C +_08026DC4: + ldr r0, _08026DD8 + ldr r1, [r0] + adds r2, r1, #0 + adds r2, #0x74 + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + adds r1, #0x80 + b _08026FE6 + .align 2, 0 +_08026DD8: .4byte 0x0202294C +_08026DDC: + ldr r0, _08026DE4 + ldr r1, [r0] + adds r1, #0x80 + b _08026FE6 + .align 2, 0 +_08026DE4: .4byte 0x0202294C +_08026DE8: + ldr r0, _08026DFC + ldr r1, [r0] + adds r2, r1, #0 + adds r2, #0x80 + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + adds r1, #0x50 + b _08026FE6 + .align 2, 0 +_08026DFC: .4byte 0x0202294C +_08026E00: + ldr r0, _08026E08 + ldr r1, [r0] + adds r1, #0x50 + b _08026FE6 + .align 2, 0 +_08026E08: .4byte 0x0202294C +_08026E0C: + ldr r0, _08026E1C + ldr r1, [r0] + adds r2, r1, #0 + adds r2, #0x50 + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + b _08026FE4 + .align 2, 0 +_08026E1C: .4byte 0x0202294C +_08026E20: + ldr r0, _08026E28 + ldr r1, [r0] + b _08026FE4 + .align 2, 0 +_08026E28: .4byte 0x0202294C +_08026E2C: + ldr r0, _08026E40 + ldr r1, [r0] + adds r2, r1, #0 + adds r2, #0x5c + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + adds r1, #0x68 + b _08026FE6 + .align 2, 0 +_08026E40: .4byte 0x0202294C +_08026E44: + ldr r0, _08026E4C + ldr r1, [r0] + adds r1, #0x68 + b _08026FE6 + .align 2, 0 +_08026E4C: .4byte 0x0202294C +_08026E50: + subs r0, r4, #1 + cmp r0, #7 + bls _08026E58 + b _08026FEC +_08026E58: + lsls r0, r0, #2 + ldr r1, _08026E64 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08026E64: .4byte 0x08026E68 +_08026E68: @ jump table + .4byte _08026E88 @ case 0 + .4byte _08026EA0 @ case 1 + .4byte _08026EAC @ case 2 + .4byte _08026EC4 @ case 3 + .4byte _08026ED0 @ case 4 + .4byte _08026EE4 @ case 5 + .4byte _08026EF0 @ case 6 + .4byte _08026F08 @ case 7 +_08026E88: + ldr r0, _08026E9C + ldr r1, [r0] + adds r2, r1, #0 + adds r2, #0x68 + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + adds r1, #0x74 + b _08026FE6 + .align 2, 0 +_08026E9C: .4byte 0x0202294C +_08026EA0: + ldr r0, _08026EA8 + ldr r1, [r0] + adds r1, #0x74 + b _08026FE6 + .align 2, 0 +_08026EA8: .4byte 0x0202294C +_08026EAC: + ldr r0, _08026EC0 + ldr r1, [r0] + adds r2, r1, #0 + adds r2, #0x74 + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + adds r1, #0x50 + b _08026FE6 + .align 2, 0 +_08026EC0: .4byte 0x0202294C +_08026EC4: + ldr r0, _08026ECC + ldr r1, [r0] + adds r1, #0x50 + b _08026FE6 + .align 2, 0 +_08026ECC: .4byte 0x0202294C +_08026ED0: + ldr r0, _08026EE0 + ldr r1, [r0] + adds r2, r1, #0 + adds r2, #0x50 + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + b _08026FE4 + .align 2, 0 +_08026EE0: .4byte 0x0202294C +_08026EE4: + ldr r0, _08026EEC + ldr r1, [r0] + b _08026FE4 + .align 2, 0 +_08026EEC: .4byte 0x0202294C +_08026EF0: + ldr r0, _08026F04 + ldr r1, [r0] + adds r2, r1, #0 + adds r2, #0x5c + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + adds r1, #0x68 + b _08026FE6 + .align 2, 0 +_08026F04: .4byte 0x0202294C +_08026F08: + ldr r0, _08026F10 + ldr r1, [r0] + adds r1, #0x68 + b _08026FE6 + .align 2, 0 +_08026F10: .4byte 0x0202294C +_08026F14: + subs r0, r4, #2 + cmp r0, #5 + bhi _08026FEC + lsls r0, r0, #2 + ldr r1, _08026F24 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08026F24: .4byte 0x08026F28 +_08026F28: @ jump table + .4byte _08026F40 @ case 0 + .4byte _08026F58 @ case 1 + .4byte _08026F64 @ case 2 + .4byte _08026F7C @ case 3 + .4byte _08026F88 @ case 4 + .4byte _08026F9C @ case 5 +_08026F40: + ldr r0, _08026F54 + ldr r1, [r0] + adds r2, r1, #0 + adds r2, #0x5c + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + adds r1, #0x68 + b _08026FE6 + .align 2, 0 +_08026F54: .4byte 0x0202294C +_08026F58: + ldr r0, _08026F60 + ldr r1, [r0] + adds r1, #0x68 + b _08026FE6 + .align 2, 0 +_08026F60: .4byte 0x0202294C +_08026F64: + ldr r0, _08026F78 + ldr r1, [r0] + adds r2, r1, #0 + adds r2, #0x68 + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + adds r1, #0x50 + b _08026FE6 + .align 2, 0 +_08026F78: .4byte 0x0202294C +_08026F7C: + ldr r0, _08026F84 + ldr r1, [r0] + adds r1, #0x50 + b _08026FE6 + .align 2, 0 +_08026F84: .4byte 0x0202294C +_08026F88: + ldr r0, _08026F98 + ldr r1, [r0] + adds r2, r1, #0 + adds r2, #0x50 + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + b _08026FE4 + .align 2, 0 +_08026F98: .4byte 0x0202294C +_08026F9C: + ldr r0, _08026FA4 + ldr r1, [r0] + b _08026FE4 + .align 2, 0 +_08026FA4: .4byte 0x0202294C +_08026FA8: + cmp r4, #4 + beq _08026FCE + cmp r4, #4 + bgt _08026FB6 + cmp r4, #3 + beq _08026FC0 + b _08026FEC +_08026FB6: + cmp r4, #5 + beq _08026FD4 + cmp r4, #6 + beq _08026FE2 + b _08026FEC +_08026FC0: + ldr r1, [r6] + adds r2, r1, #0 + adds r2, #0x50 + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + b _08026FE4 +_08026FCE: + ldr r1, [r6] + adds r1, #0x50 + b _08026FE6 +_08026FD4: + ldr r1, [r6] + adds r2, r1, #0 + adds r2, #0x50 + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + b _08026FE4 +_08026FE2: + ldr r1, [r6] +_08026FE4: + adds r1, #0x5c +_08026FE6: + ldrh r0, [r1] + adds r0, #1 +_08026FEA: + strh r0, [r1] +_08026FEC: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08026CDC + + thumb_func_start sub_08026FF4 +sub_08026FF4: @ 0x08026FF4 + push {r4, r5, lr} + adds r1, r0, #0 + ldr r4, _08027038 + ldr r3, [r4] + adds r0, r3, #0 + adds r0, #0x24 + ldrb r0, [r0] + cmp r0, #5 + bne _0802705E + cmp r1, #1 + bne _08027040 + movs r5, #0x89 + lsls r5, r5, #1 + adds r1, r3, r5 + ldrh r0, [r1] + adds r2, r0, #1 + strh r2, [r1] + movs r0, #0x8a + lsls r0, r0, #1 + adds r1, r3, r0 + lsls r0, r2, #0x10 + lsrs r0, r0, #0x10 + ldrh r3, [r1] + cmp r0, r3 + bls _08027028 + strh r2, [r1] +_08027028: + ldr r0, [r4] + adds r2, r0, r5 + ldrh r0, [r2] + ldr r1, _0802703C + cmp r0, r1 + bls _0802705E + strh r1, [r2] + b _0802705E + .align 2, 0 +_08027038: .4byte 0x0202294C +_0802703C: .4byte 0x0000270F +_08027040: + movs r2, #0x89 + lsls r2, r2, #1 + adds r0, r3, r2 + movs r5, #0x8a + lsls r5, r5, #1 + adds r1, r3, r5 + ldrh r0, [r0] + ldrh r3, [r1] + cmp r0, r3 + bls _08027056 + strh r0, [r1] +_08027056: + ldr r0, [r4] + adds r0, r0, r2 + movs r1, #0 + strh r1, [r0] +_0802705E: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_08026FF4 + + thumb_func_start sub_08027064 +sub_08027064: @ 0x08027064 + push {r4, r5, lr} + movs r3, #0 + ldr r2, _080270A4 + ldr r0, [r2] + adds r0, #0x24 + ldrb r0, [r0] + cmp r3, r0 + bhs _0802709C + adds r5, r2, #0 + movs r4, #0x8a + lsls r4, r4, #1 +_0802707A: + ldr r2, [r5] + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r1, r2, #0 + adds r1, #0x54 + adds r1, r1, r0 + adds r0, r2, r4 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + adds r2, #0x24 + ldrb r2, [r2] + cmp r3, r2 + blo _0802707A +_0802709C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080270A4: .4byte 0x0202294C + thumb_func_end sub_08027064 + + thumb_func_start sub_080270A8 +sub_080270A8: @ 0x080270A8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + movs r5, #0 + ldr r7, _08027198 + movs r4, #0 + ldr r0, _0802719C + mov sl, r0 +_080270BC: + movs r2, #0 + lsls r6, r5, #4 + lsls r1, r5, #1 + mov r8, r1 + lsls r0, r5, #3 + mov ip, r0 + adds r1, r5, #1 + mov sb, r1 + subs r0, r6, r5 + lsls r3, r0, #2 +_080270D0: + ldr r0, [r7] + adds r1, r2, r3 + add r0, sl + adds r0, r0, r1 + strb r4, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xa + bls _080270D0 + ldr r0, [r7] + subs r1, r6, r5 + lsls r1, r1, #2 + adds r0, r0, r1 + ldr r2, _080271A0 + adds r0, r0, r2 + strb r4, [r0] + ldr r0, [r7] + adds r0, r0, r1 + ldr r1, _080271A4 + adds r0, r0, r1 + strb r4, [r0] + ldr r0, [r7] + adds r0, #0x90 + adds r0, r0, r5 + strb r4, [r0] + ldr r1, [r7] + adds r0, r1, #0 + adds r0, #0x86 + add r0, r8 + strh r4, [r0] + add r1, ip + ldr r2, _080271A8 + adds r1, r1, r2 + strb r4, [r1] + ldr r2, [r7] + ldr r1, _080271AC + adds r0, r2, r1 + add r0, ip + str r4, [r0] + mov r0, r8 + adds r1, r0, r5 + lsls r1, r1, #2 + adds r0, r2, #0 + adds r0, #0x4a + adds r0, r0, r1 + strh r4, [r0] + adds r0, r2, #0 + adds r0, #0x4c + adds r0, r0, r1 + strh r4, [r0] + adds r0, r2, #0 + adds r0, #0x4e + adds r0, r0, r1 + strh r4, [r0] + adds r0, r2, #0 + adds r0, #0x50 + adds r0, r0, r1 + strh r4, [r0] + adds r0, r2, #0 + adds r0, #0x52 + adds r0, r0, r1 + strh r4, [r0] + adds r0, r2, #0 + adds r0, #0x54 + adds r0, r0, r1 + strh r4, [r0] + mov r1, sb + lsls r0, r1, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #4 + bls _080270BC + ldr r2, _08027198 + ldr r0, [r2] + movs r1, #0xaa + lsls r1, r1, #1 + adds r0, r0, r1 + movs r2, #0 + strb r2, [r0] + ldr r1, _08027198 + ldr r0, [r1] + movs r1, #0x89 + lsls r1, r1, #1 + adds r3, r0, r1 + movs r1, #0 + strh r2, [r3] + adds r0, #0x40 + strb r1, [r0] + bl sub_08026848 + bl sub_08026748 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08027198: .4byte 0x0202294C +_0802719C: .4byte 0x000031BF +_080271A0: .4byte 0x000031CC +_080271A4: .4byte 0x000031D0 +_080271A8: .4byte 0x00003308 +_080271AC: .4byte 0x0000330C + thumb_func_end sub_080270A8 + + thumb_func_start sub_080271B0 +sub_080271B0: @ 0x080271B0 + push {r4, r5, lr} + movs r4, #0 + ldr r0, _080271C8 + ldr r0, [r0] + adds r0, #0x24 + ldrb r0, [r0] + cmp r0, #4 + beq _080271CC + cmp r0, #5 + beq _080271D0 + b _080271D2 + .align 2, 0 +_080271C8: .4byte 0x0202294C +_080271CC: + movs r4, #1 + b _080271D2 +_080271D0: + movs r4, #2 +_080271D2: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r3, #0 + lsls r1, r4, #2 + ldr r5, _08027214 + ldr r2, _08027218 + adds r1, r1, r4 + lsls r1, r1, #1 + adds r0, r0, r1 + adds r0, r0, r2 + ldrb r2, [r0] +_080271F6: + ldr r1, [r5] + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r1, #0x52 + adds r1, r1, r0 + strh r2, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #4 + bls _080271F6 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08027214: .4byte 0x0202294C +_08027218: .4byte 0x082CB330 + thumb_func_end sub_080271B0 + + thumb_func_start sub_0802721C +sub_0802721C: @ 0x0802721C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08027254 + ldr r2, [r1] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r0, r2, #0 + adds r0, #0x4a + adds r0, r0, r1 + ldrh r3, [r0] + adds r0, r2, #0 + adds r0, #0x4c + adds r0, r0, r1 + ldrh r0, [r0] + adds r2, #0x4e + adds r2, r2, r1 + adds r3, r3, r0 + ldrh r2, [r2] + adds r0, r3, r2 + ldr r1, _08027258 + cmp r0, r1 + bls _0802724E + adds r0, r1, #0 +_0802724E: + pop {r1} + bx r1 + .align 2, 0 +_08027254: .4byte 0x0202294C +_08027258: .4byte 0x0000270F + thumb_func_end sub_0802721C + + thumb_func_start sub_0802725C +sub_0802725C: @ 0x0802725C + push {r4, r5, r6, lr} + ldr r5, _080272C4 + ldr r0, [r5] + adds r0, #0x28 + ldrb r0, [r0] + bl sub_0802721C + ldr r1, _080272C8 + bl Min + adds r4, r0, #0 + ldr r0, [r5] + adds r0, #0x28 + ldrb r0, [r0] + bl sub_08027480 + ldr r1, _080272CC + bl Min + adds r2, r0, #0 + ldr r3, _080272D0 + ldr r0, [r3] + movs r6, #0x83 + lsls r6, r6, #2 + adds r1, r0, r6 + ldr r0, [r1] + cmp r0, r2 + bhs _08027296 + str r2, [r1] +_08027296: + ldr r0, [r3] + movs r2, #0x84 + lsls r2, r2, #2 + adds r1, r0, r2 + ldrh r0, [r1] + cmp r0, r4 + bhs _080272A6 + strh r4, [r1] +_080272A6: + ldr r0, [r3] + ldr r6, _080272D4 + adds r2, r0, r6 + ldr r0, [r5] + movs r1, #0x8a + lsls r1, r1, #1 + adds r0, r0, r1 + ldrh r1, [r0] + ldrh r0, [r2] + cmp r0, r1 + bhs _080272BE + strh r1, [r2] +_080272BE: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080272C4: .4byte 0x0202294C +_080272C8: .4byte 0x0000270F +_080272CC: .4byte 0x000F4236 +_080272D0: .4byte 0x03005AF0 +_080272D4: .4byte 0x00000212 + thumb_func_end sub_0802725C + + thumb_func_start sub_080272D8 +sub_080272D8: @ 0x080272D8 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r1, _08027310 + ldr r0, [r1] + adds r0, #0x9b + ldrb r6, [r0] + movs r3, #3 + adds r5, r1, #0 + adds r4, r5, #0 +_080272EC: + ldr r0, [r4] + adds r0, #0x98 + adds r2, r0, r3 + subs r1, r3, #1 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r2] + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + cmp r3, #0 + bne _080272EC + ldr r0, [r5] + adds r0, #0x98 + strb r7, [r0] + adds r0, r6, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08027310: .4byte 0x0202294C + thumb_func_end sub_080272D8 + + thumb_func_start sub_08027314 +sub_08027314: @ 0x08027314 + push {r4, lr} + ldr r4, _08027348 + ldr r3, [r4] + adds r0, r3, #0 + adds r0, #0x28 + ldrb r1, [r0] + adds r0, #0x88 + adds r2, r0, r1 + ldrb r0, [r2] + cmp r0, #0 + bne _080273BC + ldr r0, _0802734C + ldrh r2, [r0, #0x2e] + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + beq _08027354 + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r3, r0 + ldr r1, _08027350 + adds r0, r0, r1 + movs r1, #2 + b _0802738A + .align 2, 0 +_08027348: .4byte 0x0202294C +_0802734C: .4byte 0x03002360 +_08027350: .4byte 0x000031CC +_08027354: + movs r0, #0x20 + ands r0, r2 + cmp r0, #0 + beq _08027370 + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r3, r0 + ldr r1, _0802736C + adds r0, r0, r1 + movs r1, #3 + b _0802738A + .align 2, 0 +_0802736C: .4byte 0x000031CC +_08027370: + movs r0, #0x10 + ands r0, r2 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0 + beq _080273A8 + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r3, r0 + ldr r1, _080273A4 + adds r0, r0, r1 + movs r1, #1 +_0802738A: + strb r1, [r0] + ldr r0, [r4] + adds r1, r0, #0 + adds r1, #0x28 + adds r0, #0xb0 + ldrb r1, [r1] + adds r0, r0, r1 + movs r1, #6 + strb r1, [r0] + movs r0, #0xd4 + bl PlaySE + b _080273C0 + .align 2, 0 +_080273A4: .4byte 0x000031CC +_080273A8: + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r3, r0 + ldr r1, _080273B8 + adds r0, r0, r1 + strb r2, [r0] + b _080273C0 + .align 2, 0 +_080273B8: .4byte 0x000031CC +_080273BC: + subs r0, #1 + strb r0, [r2] +_080273C0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08027314 + + thumb_func_start sub_080273C8 +sub_080273C8: @ 0x080273C8 + ldr r0, _080273E4 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0x28 + ldrb r2, [r0] + lsls r0, r2, #4 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r1, r1, r0 + ldr r0, _080273E8 + adds r1, r1, r0 + movs r0, #0 + strb r0, [r1] + bx lr + .align 2, 0 +_080273E4: .4byte 0x0202294C +_080273E8: .4byte 0x000031CC + thumb_func_end sub_080273C8 + + thumb_func_start sub_080273EC +sub_080273EC: @ 0x080273EC + ldr r0, _0802740C + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0x28 + ldrb r2, [r0] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r1, #0x52 + adds r1, r1, r0 + ldrh r0, [r1] + adds r0, #0x85 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bx lr + .align 2, 0 +_0802740C: .4byte 0x0202294C + thumb_func_end sub_080273EC + + thumb_func_start sub_08027410 +sub_08027410: @ 0x08027410 + ldr r0, _0802741C + ldr r0, [r0] + adds r0, #0x24 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0802741C: .4byte 0x0202294C + thumb_func_end sub_08027410 + + thumb_func_start sub_08027420 +sub_08027420: @ 0x08027420 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _08027440 + ldrb r0, [r0] + cmp r0, #0 + bne _0802744C + ldr r0, _08027444 + lsls r1, r2, #4 + subs r1, r1, r2 + lsls r1, r1, #2 + ldr r2, _08027448 + adds r1, r1, r2 + ldr r0, [r0] + b _08027454 + .align 2, 0 +_08027440: .4byte 0x030031C4 +_08027444: .4byte 0x0202294C +_08027448: .4byte 0x000031A0 +_0802744C: + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + ldr r1, _0802745C +_08027454: + adds r0, r0, r1 + pop {r1} + bx r1 + .align 2, 0 +_0802745C: .4byte 0x020226A8 + thumb_func_end sub_08027420 + + thumb_func_start sub_08027460 +sub_08027460: @ 0x08027460 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + ldr r2, _0802747C + ldr r3, [r2] + lsrs r1, r1, #0x17 + lsls r2, r0, #1 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r1, r1, r2 + adds r3, #0x4a + adds r3, r3, r1 + ldrh r0, [r3] + bx lr + .align 2, 0 +_0802747C: .4byte 0x0202294C + thumb_func_end sub_08027460 + + thumb_func_start sub_08027480 +sub_08027480: @ 0x08027480 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r5, #0 + movs r3, #0 + ldr r0, _080274EC + mov sb, r0 + ldr r2, _080274F0 + mov sl, r2 + ldr r2, [r0] + lsls r1, r4, #1 + adds r0, r1, r4 + lsls r0, r0, #2 + str r0, [sp] + adds r6, r2, #0 + adds r6, #0x4a + mov ip, r1 + mov r8, sl +_080274AE: + lsls r1, r3, #1 + ldr r7, [sp] + adds r0, r1, r7 + adds r0, r6, r0 + ldrh r2, [r0] + add r1, r8 + movs r7, #0 + ldrsh r0, [r1, r7] + muls r0, r2, r0 + adds r5, r5, r0 + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #2 + bls _080274AE + mov r0, sb + ldr r1, [r0] + mov r2, ip + adds r0, r2, r4 + lsls r0, r0, #2 + adds r1, #0x50 + adds r1, r1, r0 + ldrh r1, [r1] + mov r3, sl + movs r7, #6 + ldrsh r0, [r3, r7] + muls r0, r1, r0 + cmp r5, r0 + bls _080274F4 + subs r0, r5, r0 + b _080274F6 + .align 2, 0 +_080274EC: .4byte 0x0202294C +_080274F0: .4byte 0x082CB3B0 +_080274F4: + movs r0, #0 +_080274F6: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08027480 + + thumb_func_start sub_08027508 +sub_08027508: @ 0x08027508 + push {r4, r5, r6, lr} + ldr r0, _08027544 + ldr r0, [r0] + adds r0, #0x24 + ldrb r6, [r0] + movs r0, #0 + bl sub_08027480 + adds r5, r0, #0 + movs r4, #1 + cmp r4, r6 + bhs _08027536 +_08027520: + adds r0, r4, #0 + bl sub_08027480 + cmp r0, r5 + bls _0802752C + adds r5, r0, #0 +_0802752C: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r6 + blo _08027520 +_08027536: + ldr r1, _08027548 + adds r0, r5, #0 + bl Min + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08027544: .4byte 0x0202294C +_08027548: .4byte 0x000F4236 + thumb_func_end sub_08027508 + + thumb_func_start sub_0802754C +sub_0802754C: @ 0x0802754C + push {r4, r5, lr} + lsls r0, r0, #0x18 + ldr r1, _0802758C + ldr r2, [r1] + adds r1, r2, #0 + adds r1, #0x24 + ldrb r5, [r1] + lsrs r4, r0, #0x17 + adds r2, #0x4a + adds r0, r2, r4 + ldrh r3, [r0] + movs r1, #0 + cmp r1, r5 + bhs _08027584 +_08027568: + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r4, r0 + adds r0, r2, r0 + ldrh r0, [r0] + cmp r0, r3 + bls _0802757A + adds r3, r0, #0 +_0802757A: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, r5 + blo _08027568 +_08027584: + adds r0, r3, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0802758C: .4byte 0x0202294C + thumb_func_end sub_0802754C + + thumb_func_start sub_08027590 +sub_08027590: @ 0x08027590 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r6, #1 + ldr r0, _08027608 + ldr r0, [r0] + adds r0, #0x24 + ldrb r5, [r0] + movs r4, #0 + cmp r4, r5 + bhs _080275BE +_080275A8: + adds r0, r4, #0 + bl sub_08027480 + lsls r1, r4, #2 + add r1, sp + str r0, [r1] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r5 + blo _080275A8 +_080275BE: + lsls r7, r7, #2 + mov ip, r7 + cmp r6, #0 + beq _080275F8 + subs r7, r5, #1 +_080275C8: + movs r6, #0 + movs r4, #0 + cmp r6, r7 + bge _080275F4 + adds r5, r7, #0 +_080275D2: + lsls r0, r4, #2 + mov r2, sp + adds r1, r2, r0 + adds r4, #1 + lsls r0, r4, #2 + adds r3, r2, r0 + ldr r0, [r1] + ldr r2, [r3] + cmp r0, r2 + bhs _080275EC + str r2, [r1] + str r0, [r3] + movs r6, #1 +_080275EC: + lsls r0, r4, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r5 + blt _080275D2 +_080275F4: + cmp r6, #0 + bne _080275C8 +_080275F8: + mov r0, sp + add r0, ip + ldr r0, [r0] + add sp, #0x14 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08027608: .4byte 0x0202294C + thumb_func_end sub_08027590 + + thumb_func_start sub_0802760C +sub_0802760C: @ 0x0802760C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + movs r0, #0 + mov sl, r0 + mov r8, r0 + mov sb, r0 + ldr r6, _080276EC + ldr r0, [r6] + adds r0, #0x24 + ldrb r5, [r0] + bl sub_08027508 + bl sub_08027508 + cmp r0, #0 + bne _08027660 + movs r4, #0 + cmp sb, r5 + bhs _08027660 + adds r2, r6, #0 + ldr r1, _080276F0 + mov ip, r1 + movs r7, #0 + movs r6, #4 + ldr r3, _080276F4 +_08027644: + ldr r0, [r2] + lsls r1, r4, #3 + adds r0, r0, r1 + add r0, ip + strb r6, [r0] + ldr r0, [r2] + adds r0, r0, r3 + adds r0, r0, r1 + str r7, [r0] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r5 + blo _08027644 +_08027660: + movs r4, #0 + cmp r4, r5 + bhs _0802768A +_08027666: + adds r0, r4, #0 + bl sub_08027480 + ldr r1, _080276F8 + bl Min + ldr r1, _080276EC + ldr r1, [r1] + lsls r2, r4, #3 + ldr r3, _080276F4 + adds r1, r1, r3 + adds r1, r1, r2 + str r0, [r1] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r5 + blo _08027666 +_0802768A: + mov r0, sl + bl sub_08027590 + adds r6, r0, #0 + mov r3, r8 + movs r4, #0 + cmp r4, r5 + bhs _080276D6 + ldr r7, _080276EC + mov sl, r7 +_0802769E: + mov r0, sl + ldr r2, [r0] + lsls r1, r4, #3 + ldr r7, _080276F4 + adds r0, r2, r7 + adds r0, r0, r1 + ldr r0, [r0] + cmp r6, r0 + bne _080276CC + adds r0, r2, r1 + ldr r1, _080276F0 + adds r0, r0, r1 + strb r3, [r0] + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 +_080276CC: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r5 + blo _0802769E +_080276D6: + mov sl, r8 + cmp sb, r5 + blo _0802768A + movs r0, #0 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080276EC: .4byte 0x0202294C +_080276F0: .4byte 0x00003308 +_080276F4: .4byte 0x0000330C +_080276F8: .4byte 0x000F4236 + thumb_func_end sub_0802760C + + thumb_func_start sub_080276FC +sub_080276FC: @ 0x080276FC + lsls r1, r1, #0x18 + ldr r2, _08027714 + ldr r2, [r2] + lsrs r1, r1, #0x15 + ldr r3, _08027718 + adds r2, r2, r3 + adds r2, r2, r1 + ldr r1, [r2] + ldr r2, [r2, #4] + str r1, [r0] + str r2, [r0, #4] + bx lr + .align 2, 0 +_08027714: .4byte 0x0202294C +_08027718: .4byte 0x00003308 + thumb_func_end sub_080276FC + + thumb_func_start sub_0802771C +sub_0802771C: @ 0x0802771C + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r7, #0 + ldr r0, _08027784 + ldr r0, [r0] + adds r0, #0x24 + ldrb r5, [r0] + mov r0, sp + movs r1, #0 + movs r2, #0x14 + bl memset + movs r4, #0 + cmp r7, r5 + bhs _08027754 +_0802773E: + adds r0, r4, #0 + bl sub_08027480 + lsls r1, r4, #2 + add r1, sp + str r0, [r1] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r5 + blo _0802773E +_08027754: + lsls r0, r6, #2 + add r0, sp + ldr r1, [r0] + movs r4, #0 +_0802775C: + cmp r4, r6 + beq _08027770 + lsls r0, r4, #2 + add r0, sp + ldr r0, [r0] + cmp r1, r0 + bhs _08027770 + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 +_08027770: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #4 + bls _0802775C + adds r0, r7, #0 + add sp, #0x14 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08027784: .4byte 0x0202294C + thumb_func_end sub_0802771C + + thumb_func_start sub_08027788 +sub_08027788: @ 0x08027788 + push {r4, r5, r6, lr} + ldr r0, _080277B0 + ldr r0, [r0] + adds r0, #0x28 + ldrb r4, [r0] + bl sub_080273EC + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r6, r5, #0 + adds r0, r4, #0 + bl sub_08027480 + adds r4, r0, #0 + bl sub_08027508 + cmp r4, r0 + beq _080277B4 + movs r0, #3 + b _080277E2 + .align 2, 0 +_080277B0: .4byte 0x0202294C +_080277B4: + adds r0, r5, #0 + movs r1, #1 + bl CheckBagHasSpace + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080277C6 + movs r0, #2 + b _080277E2 +_080277C6: + adds r0, r6, #0 + movs r1, #1 + bl AddBagItem + adds r0, r6, #0 + movs r1, #1 + bl CheckBagHasSpace + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080277E0 + movs r0, #0 + b _080277E2 +_080277E0: + movs r0, #1 +_080277E2: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_08027788 + + thumb_func_start IncrementWithLimit +IncrementWithLimit: @ 0x080277E8 + push {lr} + adds r2, r0, #0 + adds r0, r1, #0 + cmp r2, r0 + bhs _080277F4 + adds r0, r2, #1 +_080277F4: + pop {r1} + bx r1 + thumb_func_end IncrementWithLimit + + thumb_func_start Min +Min: @ 0x080277F8 + push {lr} + adds r2, r0, #0 + adds r0, r1, #0 + cmp r2, r0 + bhs _08027804 + adds r0, r2, #0 +_08027804: + pop {r1} + bx r1 + thumb_func_end Min + + thumb_func_start sub_08027808 +sub_08027808: @ 0x08027808 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08027818 + ldr r1, [r1] + adds r1, #0x34 + adds r1, r1, r0 + ldrb r0, [r1] + bx lr + .align 2, 0 +_08027818: .4byte 0x0202294C + thumb_func_end sub_08027808 + + thumb_func_start sub_0802781C +sub_0802781C: @ 0x0802781C + push {r4, r5, r6, lr} + movs r5, #0 + ldr r6, _0802784C +_08027822: + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _08027850 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #5 + bl GetMonData + cmp r0, #0 + beq _08027854 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + cmp r0, #0x55 + bne _08027854 + movs r0, #1 + strh r0, [r6] + b _08027860 + .align 2, 0 +_0802784C: .4byte 0x02037290 +_08027850: .4byte 0x02024190 +_08027854: + adds r5, #1 + cmp r5, #5 + ble _08027822 + ldr r1, _08027868 + movs r0, #0 + strh r0, [r1] +_08027860: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08027868: .4byte 0x02037290 + thumb_func_end sub_0802781C + + thumb_func_start sub_0802786C +sub_0802786C: @ 0x0802786C + push {r4, lr} + ldr r4, _08027888 + adds r0, r4, #0 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl _call_via_r4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08027888: .4byte 0x0802788D + thumb_func_end sub_0802786C + + thumb_func_start sub_0802788C +sub_0802788C: @ 0x0802788C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080278B0 + adds r4, r0, r1 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _080278D8 + cmp r0, #1 + bgt _080278B4 + cmp r0, #0 + beq _080278BE + b _08027926 + .align 2, 0 +_080278B0: .4byte 0x03005B68 +_080278B4: + cmp r0, #2 + beq _080278E4 + cmp r0, #3 + beq _0802790C + b _08027926 +_080278BE: + ldr r0, _080278D4 + bl AddWindow + strh r0, [r4, #2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_0802792C + ldrb r0, [r4, #2] + movs r1, #3 + b _080278FA + .align 2, 0 +_080278D4: .4byte 0x082CB3B8 +_080278D8: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08027926 + b _080278FE +_080278E4: + ldr r0, _08027908 + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _08027926 + ldrb r0, [r4, #2] + bl rbox_fill_rectangle + ldrb r0, [r4, #2] + movs r1, #1 +_080278FA: + bl CopyWindowToVram +_080278FE: + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + b _08027926 + .align 2, 0 +_08027908: .4byte 0x03002360 +_0802790C: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08027926 + ldrb r0, [r4, #2] + bl RemoveWindow + adds r0, r5, #0 + bl DestroyTask + bl EnableBothScriptContexts +_08027926: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_0802788C + + thumb_func_start sub_0802792C +sub_0802792C: @ 0x0802792C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _08027A28 + ldr r1, [r0] + movs r2, #0x84 + lsls r2, r2, #2 + adds r0, r1, r2 + ldrh r0, [r0] + str r0, [sp, #0xc] + subs r2, #4 + adds r0, r1, r2 + ldr r0, [r0] + str r0, [sp, #0x10] + ldr r0, _08027A2C + adds r1, r1, r0 + ldrh r0, [r1] + str r0, [sp, #0x14] + ldr r4, _08027A30 + adds r0, r7, #0 + adds r1, r4, #0 + movs r2, #0xd0 + bl LoadUserWindowBorderGfx_ + adds r0, r7, #0 + adds r1, r4, #0 + movs r2, #0xd + bl DrawTextBorderOuter + adds r0, r7, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r2, _08027A34 + movs r0, #2 + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + adds r0, r7, #0 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + movs r6, #0 + ldr r2, _08027A38 + mov r8, r2 + movs r0, #0xff + mov sl, r0 + mov sb, r6 + mov r2, sp + adds r2, #0xc + str r2, [sp, #0x18] +_080279A2: + lsls r4, r6, #2 + ldr r0, [sp, #0x18] + ldm r0!, {r1} + str r0, [sp, #0x18] + ldr r0, _08027A3C + adds r0, r6, r0 + ldrb r3, [r0] + mov r0, r8 + movs r2, #0 + bl ConvertIntToDecimalStringN + movs r0, #1 + mov r1, r8 + movs r2, #1 + rsbs r2, r2, #0 + bl GetStringWidth + adds r5, r0, #0 + ldr r0, _08027A40 + adds r4, r4, r0 + ldr r2, [r4] + ldr r0, _08027A44 + lsls r4, r6, #1 + adds r0, r4, r0 + ldrb r0, [r0] + str r0, [sp] + mov r0, sl + str r0, [sp, #4] + mov r0, sb + str r0, [sp, #8] + adds r0, r7, #0 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + movs r3, #0xa0 + subs r3, r3, r5 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r0, _08027A48 + adds r4, r4, r0 + ldrb r0, [r4] + str r0, [sp] + mov r2, sl + str r2, [sp, #4] + mov r0, sb + str r0, [sp, #8] + adds r0, r7, #0 + movs r1, #1 + mov r2, r8 + bl AddTextPrinterParameterized + adds r6, #1 + cmp r6, #2 + ble _080279A2 + adds r0, r7, #0 + bl PutWindowTilemap + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08027A28: .4byte 0x03005AF0 +_08027A2C: .4byte 0x00000212 +_08027A30: .4byte 0x0000021D +_08027A34: .4byte 0x085CCCF5 +_08027A38: .4byte 0x02021C40 +_08027A3C: .4byte 0x082CB3CC +_08027A40: .4byte 0x082CB3C0 +_08027A44: .4byte 0x082CB3D0 +_08027A48: .4byte 0x082CB3D6 + thumb_func_end sub_0802792C + + thumb_func_start sub_08027A4C +sub_08027A4C: @ 0x08027A4C + push {lr} + bl GetLinkPlayerCount + ldr r1, _08027A60 + ldr r1, [r1] + adds r1, #0x24 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08027A60: .4byte 0x0202294C + thumb_func_end sub_08027A4C + + thumb_func_start sub_08027A64 +sub_08027A64: @ 0x08027A64 + push {r4, r5, r6, r7, lr} + ldr r0, _08027AEC + ldr r0, [r0] + adds r0, #0x24 + ldrb r4, [r0] + cmp r4, #4 + bhi _08027A92 + ldr r5, _08027AF0 +_08027A74: + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + ldr r1, _08027AF4 + adds r0, r0, r1 + lsls r1, r4, #2 + adds r1, r1, r5 + ldr r1, [r1] + bl StringCopy + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #4 + bls _08027A74 +_08027A92: + ldr r0, _08027AEC + ldr r1, [r0] + adds r1, #0x24 + movs r2, #5 + strb r2, [r1] + movs r1, #0 + mov ip, r0 +_08027AA0: + movs r4, #0 + mov r2, ip + ldr r0, [r2] + adds r0, #0x24 + adds r5, r1, #1 + ldrb r0, [r0] + cmp r4, r0 + bhs _08027ADE + ldr r7, _08027AEC + lsls r3, r1, #1 + ldr r6, _08027AF8 +_08027AB6: + ldr r2, [r7] + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r3, r0 + adds r1, r2, #0 + adds r1, #0x4a + adds r1, r1, r0 + lsls r0, r4, #3 + adds r0, r3, r0 + adds r0, r0, r6 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r2, #0x24 + ldrb r2, [r2] + cmp r4, r2 + blo _08027AB6 +_08027ADE: + lsls r0, r5, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #3 + bls _08027AA0 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08027AEC: .4byte 0x0202294C +_08027AF0: .4byte 0x082CB41C +_08027AF4: .4byte 0x020226A8 +_08027AF8: .4byte 0x082CB3DC + thumb_func_end sub_08027A64 + + thumb_func_start sub_08027AFC +sub_08027AFC: @ 0x08027AFC + push {lr} + sub sp, #8 + ldr r3, _08027B24 + ldr r1, [sp] + ands r1, r3 + movs r2, #1 + orrs r1, r2 + str r1, [sp] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, [sp, #4] + ands r1, r3 + orrs r1, r0 + str r1, [sp, #4] + mov r0, sp + bl sub_0800F934 + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 +_08027B24: .4byte 0xFFFFFF00 + thumb_func_end sub_08027AFC + + thumb_func_start sub_08027B28 +sub_08027B28: @ 0x08027B28 + push {lr} + adds r2, r0, #0 + ldr r3, _08027B50 + ldrh r0, [r3] + movs r1, #0xff + lsls r1, r1, #8 + ands r1, r0 + movs r0, #0xbc + lsls r0, r0, #6 + cmp r1, r0 + bne _08027B4A + lsls r0, r2, #4 + adds r1, r3, #2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, #1 + beq _08027B54 +_08027B4A: + movs r0, #0 + b _08027B56 + .align 2, 0 +_08027B50: .4byte 0x03003130 +_08027B54: + ldrb r0, [r1, #4] +_08027B56: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08027B28 + + thumb_func_start sub_08027B5C +sub_08027B5C: @ 0x08027B5C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + ldr r4, [sp, #0x48] + lsls r4, r4, #0x18 + str r4, [sp, #0x1c] + movs r4, #0x14 + adds r4, r4, r0 + mov sb, r4 + mov r5, sp + movs r4, #2 + strb r4, [r5] + mov sl, sp + mov r5, sb + ldrb r4, [r5, #0xb] + movs r7, #0xf + adds r5, r7, #0 + ands r5, r4 + mov r6, sl + ldrb r6, [r6, #1] + mov r8, r6 + movs r4, #0x10 + rsbs r4, r4, #0 + mov r6, r8 + ands r4, r6 + orrs r4, r5 + mov r5, sl + strb r4, [r5, #1] + mov r8, sp + mov r6, sb + ldrb r5, [r6, #0xc] + lsls r5, r5, #4 + ands r4, r7 + orrs r4, r5 + mov r5, r8 + strb r4, [r5, #1] + ldrb r5, [r6, #0xd] + movs r6, #0xf + ands r5, r6 + mov r4, sl + ldrb r4, [r4, #2] + mov r8, r4 + movs r4, #0x10 + rsbs r4, r4, #0 + mov r6, r8 + ands r4, r6 + orrs r4, r5 + mov r5, sl + strb r4, [r5, #2] + mov r8, sp + mov r6, sb + ldrb r5, [r6, #0xe] + lsls r5, r5, #4 + ands r4, r7 + orrs r4, r5 + mov r5, r8 + strb r4, [r5, #2] + ldrb r5, [r6, #0xf] + movs r6, #0xf + ands r5, r6 + mov r4, sl + ldrb r4, [r4, #3] + mov r8, r4 + movs r4, #0x10 + rsbs r4, r4, #0 + mov r6, r8 + ands r4, r6 + orrs r4, r5 + mov r5, sl + strb r4, [r5, #3] + mov r8, sp + mov r6, sb + ldrb r5, [r6, #0x10] + lsls r5, r5, #4 + ands r4, r7 + orrs r4, r5 + mov r5, r8 + strb r4, [r5, #3] + ldrb r5, [r6, #0x11] + movs r6, #0xf + ands r5, r6 + mov r4, sl + ldrb r4, [r4, #4] + mov r8, r4 + movs r4, #0x10 + rsbs r4, r4, #0 + mov r6, r8 + ands r4, r6 + orrs r4, r5 + mov r5, sl + strb r4, [r5, #4] + mov r8, sp + mov r6, sb + ldrb r5, [r6, #0x12] + lsls r5, r5, #4 + ands r4, r7 + orrs r4, r5 + mov r5, r8 + strb r4, [r5, #4] + ldrb r4, [r6, #0x13] + movs r6, #0xf + ands r4, r6 + mov r6, r8 + ldrb r5, [r6, #5] + movs r6, #0x10 + rsbs r6, r6, #0 + ands r6, r5 + orrs r6, r4 + str r6, [sp, #0xc] + mov r4, r8 + strb r6, [r4, #5] + mov r5, sp + mov r6, sb + ldrb r4, [r6, #0x14] + lsls r4, r4, #4 + ldr r6, [sp, #0xc] + ands r6, r7 + orrs r6, r4 + strb r6, [r5, #5] + mov r7, sp + movs r4, #3 + mov r8, r4 + ldrb r0, [r0, #0x14] + mov r5, r8 + ands r0, r5 + ldrb r5, [r7, #6] + movs r6, #4 + rsbs r6, r6, #0 + mov sl, r6 + mov r4, sl + ands r4, r5 + orrs r4, r0 + strb r4, [r7, #6] + mov r5, sb + ldrb r0, [r5, #1] + mov r6, r8 + ands r0, r6 + lsls r0, r0, #2 + movs r5, #0xd + rsbs r5, r5, #0 + ands r5, r4 + orrs r5, r0 + strb r5, [r7, #6] + mov r0, sb + ldrb r4, [r0, #2] + ands r4, r6 + lsls r4, r4, #4 + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r5 + orrs r0, r4 + strb r0, [r7, #6] + mov r5, sp + mov r6, sb + ldrb r4, [r6, #3] + lsls r4, r4, #6 + movs r6, #0x3f + ands r0, r6 + orrs r0, r4 + strb r0, [r5, #6] + mov r4, sb + ldrb r0, [r4, #4] + mov r5, r8 + ands r0, r5 + ldrb r5, [r7, #7] + mov r4, sl + ands r4, r5 + orrs r4, r0 + strb r4, [r7, #7] + mov r6, sb + ldrb r0, [r6, #5] + mov r5, r8 + ands r0, r5 + lsls r0, r0, #2 + movs r5, #0xd + rsbs r5, r5, #0 + ands r5, r4 + orrs r5, r0 + strb r5, [r7, #7] + ldrb r4, [r6, #6] + mov r6, r8 + ands r4, r6 + lsls r4, r4, #4 + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r5 + orrs r0, r4 + strb r0, [r7, #7] + mov r5, sp + mov r6, sb + ldrb r4, [r6, #7] + lsls r4, r4, #6 + movs r6, #0x3f + ands r0, r6 + orrs r0, r4 + strb r0, [r5, #7] + mov r8, sp + mov r0, sb + ldrb r4, [r0, #8] + movs r7, #3 + adds r0, r7, #0 + ands r0, r4 + mov r4, r8 + ldrb r5, [r4, #8] + mov r4, sl + ands r4, r5 + orrs r4, r0 + mov r5, r8 + strb r4, [r5, #8] + mov r6, sb + ldrb r5, [r6, #9] + adds r0, r7, #0 + ands r0, r5 + lsls r0, r0, #2 + movs r5, #0xd + rsbs r5, r5, #0 + ands r5, r4 + orrs r5, r0 + mov r0, r8 + strb r5, [r0, #8] + ldrb r0, [r1] + adds r4, r7, #0 + ands r4, r0 + lsls r4, r4, #4 + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r5 + orrs r0, r4 + mov r4, r8 + strb r0, [r4, #8] + mov r5, sp + ldrb r4, [r2] + lsls r4, r4, #6 + movs r6, #0x3f + ands r0, r6 + orrs r0, r4 + strb r0, [r5, #8] + ldrb r4, [r3] + adds r0, r7, #0 + ands r0, r4 + ldrb r4, [r5, #9] + mov r6, sl + ands r6, r4 + orrs r6, r0 + mov sl, r6 + strb r6, [r5, #9] + ldr r0, [sp, #0x40] + ldrb r4, [r0] + adds r0, r7, #0 + ands r0, r4 + lsls r0, r0, #2 + movs r4, #0xd + rsbs r4, r4, #0 + ands r6, r4 + orrs r6, r0 + str r6, [sp, #0x10] + strb r6, [r5, #9] + mov r4, sp + ldr r5, [sp, #0x44] + ldrb r0, [r5] + adds r6, r7, #0 + ands r6, r0 + lsls r0, r6, #4 + subs r7, #0x34 + ldr r5, [sp, #0x10] + ands r7, r5 + orrs r7, r0 + strb r7, [r4, #9] + mov r5, sp + ldrb r0, [r1, #4] + movs r6, #1 + mov ip, r6 + mov r4, ip + ands r4, r0 + lsls r4, r4, #6 + movs r0, #0x41 + rsbs r0, r0, #0 + mov sl, r0 + ands r0, r7 + orrs r0, r4 + strb r0, [r5, #9] + ldrb r4, [r2, #4] + lsls r4, r4, #7 + movs r5, #0x7f + ands r0, r5 + orrs r0, r4 + mov r4, r8 + strb r0, [r4, #9] + ldrb r4, [r3, #4] + mov r0, ip + ands r0, r4 + mov r5, r8 + ldrb r4, [r5, #0xa] + movs r7, #2 + rsbs r7, r7, #0 + adds r5, r7, #0 + ands r5, r4 + orrs r5, r0 + mov r6, r8 + strb r5, [r6, #0xa] + mov sb, sp + ldr r4, [sp, #0x40] + ldrb r0, [r4, #4] + mov r4, ip + ands r4, r0 + lsls r4, r4, #1 + movs r6, #3 + rsbs r6, r6, #0 + mov r8, r6 + mov r0, r8 + ands r0, r5 + orrs r0, r4 + mov r4, sb + strb r0, [r4, #0xa] + ldr r6, [sp, #0x44] + ldrb r5, [r6, #4] + mov r4, ip + ands r4, r5 + lsls r4, r4, #2 + movs r5, #5 + rsbs r5, r5, #0 + ands r0, r5 + orrs r0, r4 + mov r4, sb + strb r0, [r4, #0xa] + mov r4, sp + ldrb r1, [r1, #8] + mov r0, ip + ands r0, r1 + lsls r0, r0, #2 + ldrb r1, [r4, #0xb] + ands r5, r1 + orrs r5, r0 + strb r5, [r4, #0xb] + ldrb r1, [r2, #8] + mov r0, ip + ands r0, r1 + lsls r0, r0, #3 + movs r1, #9 + rsbs r1, r1, #0 + ands r1, r5 + orrs r1, r0 + strb r1, [r4, #0xb] + ldrb r2, [r3, #8] + mov r0, ip + ands r0, r2 + lsls r0, r0, #4 + movs r2, #0x11 + rsbs r2, r2, #0 + ands r2, r1 + orrs r2, r0 + strb r2, [r4, #0xb] + mov r3, sp + ldr r5, [sp, #0x40] + ldrb r0, [r5, #8] + mov r1, ip + ands r1, r0 + lsls r1, r1, #5 + movs r0, #0x21 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0xb] + mov r2, sp + ldrb r1, [r6, #8] + mov r6, ip + ands r6, r1 + lsls r1, r6, #6 + mov r3, sl + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #0xb] + ldr r4, [sp, #0x1c] + lsrs r3, r4, #0x15 + ldrb r1, [r2, #0xa] + movs r0, #7 + ands r0, r1 + orrs r0, r3 + strb r0, [r2, #0xa] + mov r1, sp + ldr r5, [sp, #0x4c] + movs r6, #1 + ands r5, r6 + lsls r2, r5, #1 + ldrb r0, [r1, #0xb] + mov r3, r8 + ands r3, r0 + orrs r3, r2 + mov r8, r3 + strb r3, [r1, #0xb] + mov r0, sp + ldr r4, [sp, #0x50] + ands r4, r6 + mov r5, r8 + ands r5, r7 + orrs r5, r4 + strb r5, [r0, #0xb] + bl sub_0800F934 + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08027B5C + + thumb_func_start sub_08027E90 +sub_08027E90: @ 0x08027E90 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r1, #0 + adds r5, r2, #0 + adds r6, r3, #0 + ldr r0, [sp, #0x1c] + mov ip, r0 + ldr r1, [sp, #0x20] + mov r8, r1 + ldr r0, [sp, #0x24] + mov sb, r0 + adds r2, r7, #0 + adds r2, #0x14 + ldr r4, _08027ECC + ldrh r0, [r4] + movs r1, #0xff + lsls r1, r1, #8 + ands r1, r0 + movs r0, #0xbc + lsls r0, r0, #6 + cmp r1, r0 + bne _08027EC8 + adds r3, r4, #2 + ldrb r0, [r4, #2] + cmp r0, #2 + beq _08027ED0 +_08027EC8: + movs r0, #0 + b _0802800A + .align 2, 0 +_08027ECC: .4byte 0x03003130 +_08027ED0: + ldrb r0, [r3, #1] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + strb r0, [r2, #0xb] + ldrb r0, [r3, #1] + lsrs r0, r0, #4 + strb r0, [r2, #0xc] + ldrb r0, [r3, #2] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + strb r0, [r2, #0xd] + ldrb r0, [r3, #2] + lsrs r0, r0, #4 + strb r0, [r2, #0xe] + ldrb r0, [r3, #3] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + strb r0, [r2, #0xf] + ldrb r0, [r3, #3] + lsrs r0, r0, #4 + strb r0, [r2, #0x10] + ldrb r0, [r3, #4] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + strb r0, [r2, #0x11] + ldrb r0, [r3, #4] + lsrs r0, r0, #4 + strb r0, [r2, #0x12] + ldrb r0, [r3, #5] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + strb r0, [r2, #0x13] + ldrb r0, [r3, #5] + lsrs r0, r0, #4 + strb r0, [r2, #0x14] + ldrb r0, [r3, #1] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + strb r0, [r2, #0x15] + ldrb r0, [r3, #6] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + strb r0, [r7, #0x14] + ldrb r0, [r3, #6] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1e + strb r0, [r2, #1] + ldrb r0, [r3, #6] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + strb r0, [r2, #2] + ldrb r0, [r3, #6] + lsrs r0, r0, #6 + strb r0, [r2, #3] + ldrb r0, [r3, #7] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + strb r0, [r2, #4] + ldrb r0, [r3, #7] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1e + strb r0, [r2, #5] + ldrb r0, [r3, #7] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + strb r0, [r2, #6] + ldrb r0, [r3, #7] + lsrs r0, r0, #6 + strb r0, [r2, #7] + ldrb r0, [r3, #8] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + strb r0, [r2, #8] + ldrb r0, [r3, #8] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1e + strb r0, [r2, #9] + ldrb r0, [r3, #6] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + strb r0, [r2, #0xa] + ldrb r0, [r3, #8] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + strb r0, [r5] + ldrb r0, [r3, #9] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1f + strb r0, [r5, #4] + ldrb r0, [r3, #0xb] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1f + strb r0, [r5, #8] + ldrb r0, [r3, #8] + lsrs r0, r0, #6 + strb r0, [r6] + ldrb r0, [r3, #9] + lsrs r0, r0, #7 + strb r0, [r6, #4] + ldrb r0, [r3, #0xb] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1f + strb r0, [r6, #8] + ldrb r0, [r3, #9] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + mov r1, ip + strb r0, [r1] + ldrb r0, [r3, #0xa] + lsls r0, r0, #0x1f + lsrs r0, r0, #0x1f + strb r0, [r1, #4] + ldrb r0, [r3, #0xb] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1f + strb r0, [r1, #8] + ldrb r0, [r3, #9] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1e + mov r1, r8 + strb r0, [r1] + ldrb r0, [r3, #0xa] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1f + strb r0, [r1, #4] + ldrb r0, [r3, #0xb] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1f + strb r0, [r1, #8] + ldrb r0, [r3, #9] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + mov r1, sb + strb r0, [r1] + ldrb r0, [r3, #0xa] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1f + strb r0, [r1, #4] + ldrb r0, [r3, #0xb] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1f + strb r0, [r1, #8] + ldrb r0, [r3, #0xa] + lsrs r0, r0, #3 + ldr r1, [sp, #0x28] + strb r0, [r1] + ldrb r0, [r3, #0xb] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1f + ldr r1, [sp, #0x2c] + str r0, [r1] + ldrb r0, [r3, #0xb] + lsls r0, r0, #0x1f + lsrs r0, r0, #0x1f + ldr r1, [sp, #0x30] + str r0, [r1] + movs r0, #1 +_0802800A: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08027E90 + + thumb_func_start sub_08028018 +sub_08028018: @ 0x08028018 + push {lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _08028040 + ldr r1, [sp] + ands r1, r3 + movs r2, #3 + orrs r1, r2 + str r1, [sp] + ldr r1, [sp, #4] + ands r1, r3 + orrs r1, r0 + str r1, [sp, #4] + mov r0, sp + bl sub_0800F934 + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 +_08028040: .4byte 0xFFFFFF00 + thumb_func_end sub_08028018 + + thumb_func_start sub_08028044 +sub_08028044: @ 0x08028044 + push {r4, lr} + adds r2, r0, #0 + adds r4, r1, #0 + ldr r3, _0802806C + ldrh r0, [r3] + movs r1, #0xff + lsls r1, r1, #8 + ands r1, r0 + movs r0, #0xbc + lsls r0, r0, #6 + cmp r1, r0 + bne _08028068 + lsls r0, r2, #4 + adds r1, r3, #2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, #3 + beq _08028070 +_08028068: + movs r0, #0 + b _08028076 + .align 2, 0 +_0802806C: .4byte 0x03003130 +_08028070: + ldrb r0, [r1, #4] + strb r0, [r4] + movs r0, #1 +_08028076: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_08028044 + + thumb_func_start sub_0802807C +sub_0802807C: @ 0x0802807C + push {lr} + sub sp, #8 + ldr r2, _0802809C + ldr r1, [sp] + ands r1, r2 + movs r2, #4 + orrs r1, r2 + str r1, [sp] + str r0, [sp, #4] + mov r0, sp + bl sub_0800F934 + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 +_0802809C: .4byte 0xFFFFFF00 + thumb_func_end sub_0802807C + + thumb_func_start sub_080280A0 +sub_080280A0: @ 0x080280A0 + push {lr} + adds r2, r0, #0 + ldr r3, _080280C8 + ldrh r0, [r3] + movs r1, #0xff + lsls r1, r1, #8 + ands r1, r0 + movs r0, #0xbc + lsls r0, r0, #6 + cmp r1, r0 + bne _080280C2 + lsls r0, r2, #4 + adds r1, r3, #2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, #4 + beq _080280CC +_080280C2: + movs r0, #0 + b _080280CE + .align 2, 0 +_080280C8: .4byte 0x03003130 +_080280CC: + ldr r0, [r1, #4] +_080280CE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080280A0 + + thumb_func_start sub_080280D4 +sub_080280D4: @ 0x080280D4 + push {r4, r5, lr} + sub sp, #0x18 + movs r5, #0xc0 + lsls r5, r5, #6 + adds r0, r5, #0 + bl AllocZeroed + adds r4, r0, #0 + ldr r0, _08028128 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, _0802812C + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [sp, #0x10] + str r1, [sp, #0x14] + ldr r0, _08028130 + adds r1, r4, #0 + bl LZ77UnCompWram + cmp r4, #0 + beq _08028114 + str r4, [sp] + str r5, [sp, #4] + mov r0, sp + bl LoadSpriteSheet + adds r0, r4, #0 + bl Free +_08028114: + add r0, sp, #8 + bl LoadSpritePalette + add r0, sp, #0x10 + bl LoadSpritePalette + add sp, #0x18 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08028128: .4byte 0x082CEB64 +_0802812C: .4byte 0x082CEB6C +_08028130: .4byte 0x082CD148 + thumb_func_end sub_080280D4 + + thumb_func_start sub_08028134 +sub_08028134: @ 0x08028134 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0x30 + adds r6, r1, #0 + mov r8, r2 + adds r5, r3, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov r1, r8 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + add r1, sp, #0x18 + movs r3, #0 + strh r3, [r1] + ldrb r2, [r0] + mov r0, sp + adds r0, #0x1a + strh r2, [r0] + ldr r0, _080281C0 + str r0, [sp, #0x1c] + ldr r0, _080281C4 + str r0, [sp, #0x20] + str r3, [sp, #0x24] + ldr r0, _080281C8 + str r0, [sp, #0x28] + ldr r0, _080281CC + str r0, [sp, #0x2c] + mov r0, sp + movs r2, #0x18 + bl memcpy + movs r0, #4 + bl AllocZeroed + ldr r1, _080281D0 + mov r2, r8 + lsls r4, r2, #2 + adds r4, r4, r1 + str r0, [r4] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_08028C40 + adds r1, r0, #0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + mov r0, sp + movs r2, #0x88 + movs r3, #3 + bl CreateSprite + ldr r1, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r1] + movs r0, #1 + mov r1, r8 + bl sub_08028380 + add sp, #0x30 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080281C0: .4byte 0x082CEA6C +_080281C4: .4byte 0x082CEAB4 +_080281C8: .4byte 0x082BF310 +_080281CC: .4byte 0x080281D5 +_080281D0: .4byte 0x02022950 + thumb_func_end sub_08028134 + + thumb_func_start sub_080281D4 +sub_080281D4: @ 0x080281D4 + push {lr} + movs r2, #0x2e + ldrsh r1, [r0, r2] + cmp r1, #1 + beq _080281E8 + cmp r1, #1 + ble _080281F2 + cmp r1, #2 + beq _080281EE + b _080281F2 +_080281E8: + bl sub_08028268 + b _080281F2 +_080281EE: + bl sub_080282D8 +_080281F2: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080281D4 + + thumb_func_start sub_080281F8 +sub_080281F8: @ 0x080281F8 + push {lr} + bl GetMultiplayerId + ldr r1, _08028228 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r0, r0, r1 + ldr r0, [r0] + ldrh r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0802822C + adds r0, r0, r1 + movs r2, #0 + movs r1, #1 + strh r1, [r0, #0x2e] + strh r2, [r0, #0x30] + strh r2, [r0, #0x32] + strh r2, [r0, #0x34] + strh r2, [r0, #0x36] + pop {r0} + bx r0 + .align 2, 0 +_08028228: .4byte 0x02022950 +_0802822C: .4byte 0x020205AC + thumb_func_end sub_080281F8 + + thumb_func_start sub_08028230 +sub_08028230: @ 0x08028230 + push {lr} + bl GetMultiplayerId + ldr r1, _08028260 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r0, r0, r1 + ldr r0, [r0] + ldrh r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08028264 + adds r0, r0, r1 + movs r2, #0 + movs r1, #2 + strh r1, [r0, #0x2e] + strh r2, [r0, #0x30] + strh r2, [r0, #0x32] + strh r2, [r0, #0x34] + strh r2, [r0, #0x36] + pop {r0} + bx r0 + .align 2, 0 +_08028260: .4byte 0x02022950 +_08028264: .4byte 0x020205AC + thumb_func_end sub_08028230 + + thumb_func_start sub_08028268 +sub_08028268: @ 0x08028268 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r2, r0, #0x10 + lsrs r0, r0, #0x1f + adds r0, r2, r0 + asrs r1, r0, #1 + adds r0, r1, #0 + cmp r1, #0 + bge _08028284 + adds r0, r1, #3 +_08028284: + asrs r0, r0, #2 + lsls r0, r0, #2 + subs r0, r1, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r2, #2 + ble _080282CE + cmp r0, #2 + bgt _0802829A + cmp r0, #1 + bge _0802829E +_0802829A: + movs r0, #1 + b _080282A0 +_0802829E: + movs r0, #0xff +_080282A0: + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x20] + adds r0, r0, r1 + strh r0, [r4, #0x20] + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x27 + ble _080282CE + movs r0, #0 + strh r0, [r4, #0x2e] + bl sub_08027410 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0 + bl sub_08028C40 + strh r0, [r4, #0x20] +_080282CE: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08028268 + + thumb_func_start sub_080282D8 +sub_080282D8: @ 0x080282D8 + push {r4, r5, lr} + adds r5, r0, #0 + ldrh r0, [r5, #0x30] + adds r0, #1 + strh r0, [r5, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0xd + bl __divsi3 + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + adds r0, r1, #0 + cmp r1, #0 + bge _080282F8 + adds r0, r1, #3 +_080282F8: + asrs r0, r0, #2 + lsls r0, r0, #2 + subs r0, r1, r0 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r1, #0x30 + ldrsh r0, [r5, r1] + movs r1, #0xd + bl __modsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0802831C + cmp r4, #0 + beq _0802831C + movs r0, #0xd4 + bl PlaySE +_0802831C: + movs r1, #0x30 + ldrsh r0, [r5, r1] + cmp r0, #0x67 + ble _0802832A + movs r0, #0 + strh r0, [r5, #0x2e] + movs r4, #0 +_0802832A: + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r4, #0 + bl sub_080283E0 + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_080282D8 + + thumb_func_start sub_08028340 +sub_08028340: @ 0x08028340 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r4, #0 + cmp r4, r5 + bhs _08028372 + ldr r6, _08028378 +_0802834E: + lsls r0, r4, #2 + adds r0, r0, r6 + ldr r0, [r0] + ldrh r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0802837C + adds r0, r0, r1 + cmp r0, #0 + beq _08028368 + bl DestroySpriteAndFreeResources +_08028368: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r5 + blo _0802834E +_08028372: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08028378: .4byte 0x02022950 +_0802837C: .4byte 0x020205AC + thumb_func_end sub_08028340 + + thumb_func_start sub_08028380 +sub_08028380: @ 0x08028380 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + ldr r3, _080283B0 + ldr r2, _080283B4 + lsrs r1, r1, #0x16 + adds r1, r1, r2 + ldr r1, [r1] + ldrh r1, [r1] + lsls r2, r1, #4 + adds r2, r2, r1 + lsls r2, r2, #2 + adds r2, r2, r3 + adds r2, #0x3e + movs r1, #1 + ands r0, r1 + lsls r0, r0, #2 + ldrb r3, [r2] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r0 + strb r1, [r2] + bx lr + .align 2, 0 +_080283B0: .4byte 0x020205AC +_080283B4: .4byte 0x02022950 + thumb_func_end sub_08028380 + + thumb_func_start sub_080283B8 +sub_080283B8: @ 0x080283B8 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + movs r4, #0 + cmp r4, r5 + bhs _080283DA +_080283C8: + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_08028380 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r5 + blo _080283C8 +_080283DA: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_080283B8 + + thumb_func_start sub_080283E0 +sub_080283E0: @ 0x080283E0 + push {lr} + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _08028404 + lsrs r0, r0, #0x16 + adds r0, r0, r2 + ldr r0, [r0] + ldrh r2, [r0] + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _08028408 + adds r0, r0, r2 + bl StartSpriteAnim + pop {r0} + bx r0 + .align 2, 0 +_08028404: .4byte 0x02022950 +_08028408: .4byte 0x020205AC + thumb_func_end sub_080283E0 + + thumb_func_start nullsub_15 +nullsub_15: @ 0x0802840C + bx lr + .align 2, 0 + thumb_func_end nullsub_15 + + thumb_func_start sub_08028410 +sub_08028410: @ 0x08028410 + push {r4, r5, r6, r7, lr} + movs r4, #0 + ldr r0, _08028458 + mov ip, r0 + movs r6, #0 + ldr r5, _0802845C +_0802841C: + ldr r3, [r5] + lsls r1, r4, #1 + adds r0, r3, #0 + adds r0, #0x2a + adds r0, r0, r1 + ldrh r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + add r1, ip + lsls r0, r4, #4 + adds r0, #0x30 + strh r0, [r1, #0x20] + lsls r2, r4, #3 + movs r7, #8 + rsbs r7, r7, #0 + adds r0, r7, #0 + subs r0, r0, r2 + strh r0, [r1, #0x22] + adds r3, #0xc + adds r3, r3, r4 + strb r6, [r3] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #9 + bls _0802841C + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08028458: .4byte 0x020205AC +_0802845C: .4byte 0x020229A8 + thumb_func_end sub_08028410 + + thumb_func_start sub_08028460 +sub_08028460: @ 0x08028460 + push {r4, r5, r6, lr} + sub sp, #0x28 + movs r4, #0xc0 + lsls r4, r4, #1 + adds r0, r4, #0 + bl AllocZeroed + adds r6, r0, #0 + ldr r0, _08028500 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [sp, #0x20] + str r1, [sp, #0x24] + ldr r0, _08028504 + adds r1, r6, #0 + bl LZ77UnCompWram + cmp r6, #0 + beq _080284F0 + str r6, [sp, #0x18] + add r5, sp, #0x18 + movs r0, #0x80 + lsls r0, r0, #9 + orrs r0, r4 + str r0, [r5, #4] + mov r1, sp + ldr r0, _08028508 + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldr r4, _0802850C + movs r0, #0x40 + bl AllocZeroed + str r0, [r4] + adds r0, r5, #0 + bl LoadSpriteSheet + add r0, sp, #0x20 + bl LoadSpritePalette + movs r4, #0 +_080284B6: + lsls r1, r4, #0x14 + movs r0, #0xc0 + lsls r0, r0, #0xe + adds r1, r1, r0 + asrs r1, r1, #0x10 + lsls r0, r4, #3 + movs r3, #8 + rsbs r3, r3, #0 + adds r2, r3, #0 + subs r2, r2, r0 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + mov r0, sp + movs r3, #0 + bl CreateSprite + ldr r1, _0802850C + ldr r1, [r1] + lsls r2, r4, #1 + adds r1, #0x2a + adds r1, r1, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r1] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #9 + bls _080284B6 +_080284F0: + adds r0, r6, #0 + bl Free + add sp, #0x28 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08028500: .4byte 0x082CEB74 +_08028504: .4byte 0x082CCF6C +_08028508: .4byte 0x082CEB7C +_0802850C: .4byte 0x020229A8 + thumb_func_end sub_08028460 + + thumb_func_start sub_08028510 +sub_08028510: @ 0x08028510 + push {r4, r5, lr} + movs r4, #0 +_08028514: + ldr r5, _0802854C + ldr r0, [r5] + lsls r1, r4, #1 + adds r0, #0x2a + adds r0, r0, r1 + ldrh r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08028550 + adds r0, r0, r1 + cmp r0, #0 + beq _08028532 + bl DestroySpriteAndFreeResources +_08028532: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #9 + bls _08028514 + ldr r0, [r5] + bl Free + movs r0, #0 + str r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0802854C: .4byte 0x020229A8 +_08028550: .4byte 0x020205AC + thumb_func_end sub_08028510 + + thumb_func_start sub_08028554 +sub_08028554: @ 0x08028554 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + movs r3, #0 + movs r6, #0 + ldr r0, _080285E4 + mov sb, r0 +_08028566: + mov r7, sb + ldr r2, [r7] + lsls r5, r6, #1 + adds r0, r2, #0 + adds r0, #0x2a + adds r0, r0, r5 + ldrh r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080285E8 + adds r4, r0, r1 + adds r0, r2, #0 + adds r0, #0x16 + adds r0, r0, r5 + movs r1, #2 + strh r1, [r0] + adds r0, r2, #0 + adds r0, #0xc + adds r2, r0, r6 + ldrb r1, [r2] + cmp r1, #0 + beq _0802859C + movs r7, #0x22 + ldrsh r0, [r4, r7] + cmp r0, #8 + beq _080285D2 +_0802859C: + movs r3, #1 + movs r7, #0x22 + ldrsh r0, [r4, r7] + cmp r0, #8 + bne _080285C2 + cmp r1, #0 + bne _080285D2 + strb r3, [r2] + mov r1, sb + ldr r0, [r1] + adds r0, #0x16 + adds r0, r0, r5 + ldr r1, _080285EC + strh r1, [r0] + movs r0, #0x24 + str r3, [sp] + bl PlaySE + ldr r3, [sp] +_080285C2: + mov r7, sb + ldr r0, [r7] + adds r0, #0x16 + adds r0, r0, r5 + ldrh r0, [r0] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] +_080285D2: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #9 + bls _08028566 + cmp r3, #0 + bne _080285F0 + movs r0, #1 + b _080285F2 + .align 2, 0 +_080285E4: .4byte 0x020229A8 +_080285E8: .4byte 0x020205AC +_080285EC: .4byte 0x0000FFF0 +_080285F0: + movs r0, #0 +_080285F2: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_08028554 + + thumb_func_start sub_08028600 +sub_08028600: @ 0x08028600 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0xa + bls _0802863C + movs r4, #0 +_0802860C: + ldr r0, _08028634 + ldr r0, [r0] + lsls r1, r4, #1 + adds r0, #0x2a + adds r0, r0, r1 + ldrh r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08028638 + adds r0, r0, r1 + movs r1, #1 + bl StartSpriteAnim + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #9 + bls _0802860C + b _08028706 + .align 2, 0 +_08028634: .4byte 0x020229A8 +_08028638: .4byte 0x020205AC +_0802863C: + movs r4, #0 + movs r0, #0xa + subs r0, r0, r5 + cmp r4, r0 + bge _08028702 + ldr r6, _0802866C +_08028648: + cmp r5, #6 + bls _080286B0 + ldr r0, _08028670 + ldr r2, [r0] + ldr r1, _08028674 + adds r0, r1, #0 + ldrh r1, [r2, #0x3e] + adds r0, r0, r1 + adds r0, r0, r5 + movs r1, #0 + strh r0, [r2, #0x3e] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x1e + bls _08028678 + strh r1, [r2, #0x3e] + b _080286CA + .align 2, 0 +_0802866C: .4byte 0x020205AC +_08028670: .4byte 0x020229A8 +_08028674: .4byte 0x0000FFFA +_08028678: + cmp r0, #0xa + bls _08028696 + lsls r1, r4, #1 + adds r0, r2, #0 + adds r0, #0x2a + adds r0, r0, r1 + ldrh r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #2 + bl StartSpriteAnim + b _080286CA +_08028696: + lsls r1, r4, #1 + adds r0, r2, #0 + adds r0, #0x2a + adds r0, r0, r1 + ldrh r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #0 + bl StartSpriteAnim + b _080286CA +_080286B0: + ldr r0, _080286DC + ldr r0, [r0] + lsls r1, r4, #1 + adds r0, #0x2a + adds r0, r0, r1 + ldrh r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #0 + bl StartSpriteAnim +_080286CA: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #0xa + subs r0, r0, r5 + cmp r4, r0 + blt _08028648 + b _08028702 + .align 2, 0 +_080286DC: .4byte 0x020229A8 +_080286E0: + ldr r0, _0802870C + ldr r0, [r0] + lsls r1, r4, #1 + adds r0, #0x2a + adds r0, r0, r1 + ldrh r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08028710 + adds r0, r0, r1 + movs r1, #1 + bl StartSpriteAnim + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_08028702: + cmp r4, #9 + bls _080286E0 +_08028706: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0802870C: .4byte 0x020229A8 +_08028710: .4byte 0x020205AC + thumb_func_end sub_08028600 + + thumb_func_start sub_08028714 +sub_08028714: @ 0x08028714 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r3, #0 + ldr r7, _08028758 + movs r1, #1 + ands r0, r1 + lsls r4, r0, #2 + movs r6, #5 + rsbs r6, r6, #0 + ldr r5, _0802875C +_0802872A: + ldr r0, [r5] + lsls r1, r3, #1 + adds r0, #0x2a + adds r0, r0, r1 + ldrh r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r7 + adds r1, #0x3e + ldrb r2, [r1] + adds r0, r6, #0 + ands r0, r2 + orrs r0, r4 + strb r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #9 + bls _0802872A + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08028758: .4byte 0x020205AC +_0802875C: .4byte 0x020229A8 + thumb_func_end sub_08028714 + + thumb_func_start sub_08028760 +sub_08028760: @ 0x08028760 + push {r4, r5, lr} + sub sp, #0x10 + movs r5, #0x90 + lsls r5, r5, #3 + adds r0, r5, #0 + bl AllocZeroed + adds r4, r0, #0 + ldr r0, _080287AC + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, _080287B0 + adds r1, r4, #0 + bl LZ77UnCompWram + cmp r4, #0 + beq _08028796 + str r4, [sp] + movs r0, #0x80 + lsls r0, r0, #0xa + orrs r0, r5 + str r0, [sp, #4] + mov r0, sp + bl LoadSpriteSheet +_08028796: + add r0, sp, #8 + bl LoadSpritePalette + adds r0, r4, #0 + bl Free + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080287AC: .4byte 0x082CEBA0 +_080287B0: .4byte 0x082CB73C + thumb_func_end sub_08028760 + + thumb_func_start sub_080287B4 +sub_080287B4: @ 0x080287B4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x30 + mov r1, sp + ldr r0, _08028844 + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} + add r2, sp, #0x18 + adds r1, r2, #0 + ldr r0, _08028848 + ldm r0!, {r3, r4, r5} + stm r1!, {r3, r4, r5} + ldm r0!, {r3, r4, r5} + stm r1!, {r3, r4, r5} + movs r5, #0 + mov sb, r2 +_080287DC: + movs r0, #4 + bl AllocZeroed + ldr r1, _0802884C + lsls r4, r5, #2 + adds r4, r4, r1 + str r0, [r4] + lsls r0, r5, #3 + lsls r1, r5, #4 + adds r1, r1, r0 + mov r0, sp + movs r2, #8 + movs r3, #1 + bl CreateSprite + ldr r1, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r1] + adds r0, r5, #0 + movs r1, #1 + bl sub_08028924 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0xa + bls _080287DC + movs r5, #0 + ldr r7, _08028850 + ldr r4, _08028854 + mov r8, r4 +_0802881C: + movs r0, #4 + bl AllocZeroed + lsls r1, r5, #2 + adds r4, r1, r7 + str r0, [r4] + adds r6, r1, #0 + cmp r5, #3 + bne _08028858 + mov r0, r8 + movs r2, #6 + ldrsh r1, [r0, r2] + mov r0, sb + movs r2, #0x39 + movs r3, #0 + bl CreateSprite + ldr r1, [r7, #0xc] + b _0802886C + .align 2, 0 +_08028844: .4byte 0x082CEBB0 +_08028848: .4byte 0x082CEBC8 +_0802884C: .4byte 0x0202296C +_08028850: .4byte 0x02022998 +_08028854: .4byte 0x082CEBA8 +_08028858: + lsls r0, r5, #1 + add r0, r8 + movs r3, #0 + ldrsh r1, [r0, r3] + mov r0, sb + movs r2, #0x3c + movs r3, #0 + bl CreateSprite + ldr r1, [r4] +_0802886C: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r1] + adds r0, r6, r7 + ldr r0, [r0] + ldrh r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080288A8 + adds r0, r0, r1 + adds r1, r5, #0 + bl StartSpriteAnim + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #3 + bls _0802881C + movs r0, #1 + bl sub_0802895C + add sp, #0x30 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080288A8: .4byte 0x020205AC + thumb_func_end sub_080287B4 + + thumb_func_start sub_080288AC +sub_080288AC: @ 0x080288AC + push {r4, r5, r6, lr} + movs r5, #0 + ldr r6, _08028918 +_080288B2: + lsls r0, r5, #2 + adds r4, r0, r6 + ldr r0, [r4] + ldrh r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0802891C + adds r0, r0, r1 + cmp r0, #0 + beq _080288CC + bl DestroySprite +_080288CC: + ldr r0, [r4] + bl Free + movs r0, #0 + str r0, [r4] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0xa + bls _080288B2 + movs r5, #0 + ldr r6, _08028920 +_080288E4: + lsls r0, r5, #2 + adds r4, r0, r6 + ldr r0, [r4] + ldrh r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0802891C + adds r0, r0, r1 + cmp r0, #0 + beq _080288FE + bl DestroySprite +_080288FE: + ldr r0, [r4] + bl Free + movs r0, #0 + str r0, [r4] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #3 + bls _080288E4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08028918: .4byte 0x0202296C +_0802891C: .4byte 0x020205AC +_08028920: .4byte 0x02022998 + thumb_func_end sub_080288AC + + thumb_func_start sub_08028924 +sub_08028924: @ 0x08028924 + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r3, _08028954 + ldr r2, _08028958 + lsrs r0, r0, #0x16 + adds r0, r0, r2 + ldr r0, [r0] + ldrh r0, [r0] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r3 + adds r2, #0x3e + movs r0, #1 + ands r1, r0 + lsls r1, r1, #2 + ldrb r3, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + bx lr + .align 2, 0 +_08028954: .4byte 0x020205AC +_08028958: .4byte 0x0202296C + thumb_func_end sub_08028924 + + thumb_func_start sub_0802895C +sub_0802895C: @ 0x0802895C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r3, #0 + ldr r7, _080289A0 + ldr r6, _080289A4 + movs r1, #1 + ands r0, r1 + lsls r4, r0, #2 + movs r5, #5 + rsbs r5, r5, #0 +_08028972: + lsls r0, r3, #2 + adds r0, r0, r6 + ldr r0, [r0] + ldrh r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r7 + adds r1, #0x3e + ldrb r2, [r1] + adds r0, r5, #0 + ands r0, r2 + orrs r0, r4 + strb r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #3 + bls _08028972 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080289A0: .4byte 0x020205AC +_080289A4: .4byte 0x02022998 + thumb_func_end sub_0802895C + + thumb_func_start sub_080289A8 +sub_080289A8: @ 0x080289A8 + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + ldr r3, _080289C8 + ldr r2, _080289CC + lsrs r0, r0, #0x16 + adds r0, r0, r2 + ldr r0, [r0] + ldrh r2, [r0] + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r3 + lsrs r1, r1, #0x15 + strh r1, [r0, #0x22] + bx lr + .align 2, 0 +_080289C8: .4byte 0x020205AC +_080289CC: .4byte 0x0202296C + thumb_func_end sub_080289A8 + + thumb_func_start sub_080289D0 +sub_080289D0: @ 0x080289D0 + push {lr} + lsls r0, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _080289F4 + lsrs r0, r0, #0xe + adds r0, r0, r2 + ldr r0, [r0] + ldrh r2, [r0] + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _080289F8 + adds r0, r0, r2 + bl StartSpriteAnim + pop {r0} + bx r0 + .align 2, 0 +_080289F4: .4byte 0x0202296C +_080289F8: .4byte 0x020205AC + thumb_func_end sub_080289D0 + + thumb_func_start sub_080289FC +sub_080289FC: @ 0x080289FC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08028A1C + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r1 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, #0x32 + strh r1, [r2, #0x20] + movs r0, #0x32 + strh r0, [r2, #0x22] + bx lr + .align 2, 0 +_08028A1C: .4byte 0x020205AC + thumb_func_end sub_080289FC + + thumb_func_start sub_08028A20 +sub_08028A20: @ 0x08028A20 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r0, #0x42 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #1 + beq _08028A62 + movs r3, #0 + ldr r7, _08028A68 + ldr r6, _08028A6C + movs r5, #0 +_08028A36: + lsls r0, r3, #2 + adds r2, r0, r6 + ldr r1, [r2] + ldrh r0, [r1, #2] + adds r0, #1 + strh r0, [r1, #2] + adds r1, r3, r7 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r1] + cmp r0, r1 + bls _08028A58 + ldrh r0, [r4, #0x20] + subs r0, #1 + strh r0, [r4, #0x20] + ldr r0, [r2] + strh r5, [r0, #2] +_08028A58: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #1 + bls _08028A36 +_08028A62: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08028A68: .4byte 0x082CEBE0 +_08028A6C: .4byte 0x02022964 + thumb_func_end sub_08028A20 + + thumb_func_start sub_08028A70 +sub_08028A70: @ 0x08028A70 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x28 + movs r4, #0x80 + lsls r4, r4, #3 + adds r0, r4, #0 + bl AllocZeroed + adds r6, r0, #0 + ldr r0, _08028B14 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [sp, #0x20] + str r1, [sp, #0x24] + ldr r0, _08028B18 + adds r1, r6, #0 + bl LZ77UnCompWram + cmp r6, #0 + beq _08028AFE + str r6, [sp, #0x18] + add r0, sp, #0x18 + movs r1, #0xa0 + lsls r1, r1, #0xb + orrs r1, r4 + str r1, [r0, #4] + mov r2, sp + ldr r1, _08028B1C + ldm r1!, {r3, r4, r5} + stm r2!, {r3, r4, r5} + ldm r1!, {r3, r4, r5} + stm r2!, {r3, r4, r5} + bl LoadSpriteSheet + add r0, sp, #0x20 + bl LoadSpritePalette + movs r5, #0 + ldr r7, _08028B20 + adds r0, r7, #2 + mov sb, r0 + ldr r1, _08028B24 + mov r8, r1 +_08028ACA: + movs r0, #4 + bl AllocZeroed + lsls r2, r5, #2 + mov r3, r8 + adds r4, r2, r3 + str r0, [r4] + adds r0, r2, r7 + movs r3, #0 + ldrsh r1, [r0, r3] + add r2, sb + movs r0, #0 + ldrsh r2, [r2, r0] + mov r0, sp + movs r3, #4 + bl CreateSprite + ldr r1, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r1] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #1 + bls _08028ACA +_08028AFE: + adds r0, r6, #0 + bl Free + add sp, #0x28 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08028B14: .4byte 0x082CEBEC +_08028B18: .4byte 0x082CD000 +_08028B1C: .4byte 0x082CEBF4 +_08028B20: .4byte 0x082CEBE2 +_08028B24: .4byte 0x02022964 + thumb_func_end sub_08028A70 + + thumb_func_start sub_08028B28 +sub_08028B28: @ 0x08028B28 + push {r4, r5, r6, r7, lr} + movs r3, #0 + ldr r0, _08028B6C + mov ip, r0 + ldr r4, _08028B70 + adds r7, r4, #2 + ldr r6, _08028B74 + movs r5, #1 +_08028B38: + lsls r2, r3, #2 + mov r1, ip + adds r0, r2, r1 + ldr r0, [r0] + ldrh r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + adds r0, r1, #0 + adds r0, #0x42 + strh r5, [r0] + adds r0, r2, r4 + ldrh r0, [r0] + strh r0, [r1, #0x20] + adds r2, r2, r7 + ldrh r0, [r2] + strh r0, [r1, #0x22] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #1 + bls _08028B38 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08028B6C: .4byte 0x02022964 +_08028B70: .4byte 0x082CEBE2 +_08028B74: .4byte 0x020205AC + thumb_func_end sub_08028B28 + + thumb_func_start sub_08028B78 +sub_08028B78: @ 0x08028B78 + push {r4, r5, lr} + movs r2, #0 + ldr r5, _08028BA8 + ldr r4, _08028BAC + movs r3, #0 +_08028B82: + lsls r0, r2, #2 + adds r0, r0, r5 + ldr r0, [r0] + ldrh r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x42 + strh r3, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #1 + bls _08028B82 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08028BA8: .4byte 0x02022964 +_08028BAC: .4byte 0x020205AC + thumb_func_end sub_08028B78 + + thumb_func_start sub_08028BB0 +sub_08028BB0: @ 0x08028BB0 + push {r4, r5, r6, lr} + movs r5, #0 + ldr r6, _08028BEC +_08028BB6: + lsls r0, r5, #2 + adds r4, r0, r6 + ldr r0, [r4] + ldrh r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08028BF0 + adds r0, r0, r1 + cmp r0, #0 + beq _08028BD0 + bl DestroySprite +_08028BD0: + ldr r0, [r4] + bl Free + movs r0, #0 + str r0, [r4] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #1 + bls _08028BB6 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08028BEC: .4byte 0x02022964 +_08028BF0: .4byte 0x020205AC + thumb_func_end sub_08028BB0 + + thumb_func_start sub_08028BF4 +sub_08028BF4: @ 0x08028BF4 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r3, #0 + ldr r7, _08028C38 + ldr r6, _08028C3C + movs r1, #1 + ands r0, r1 + lsls r4, r0, #2 + movs r5, #5 + rsbs r5, r5, #0 +_08028C0A: + lsls r0, r3, #2 + adds r0, r0, r6 + ldr r0, [r0] + ldrh r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r7 + adds r1, #0x3e + ldrb r2, [r1] + adds r0, r5, #0 + ands r0, r2 + orrs r0, r4 + strb r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #1 + bls _08028C0A + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08028C38: .4byte 0x020205AC +_08028C3C: .4byte 0x02022964 + thumb_func_end sub_08028BF4 + + thumb_func_start sub_08028C40 +sub_08028C40: @ 0x08028C40 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r3, #0 + subs r0, r1, #1 + cmp r0, #4 + bhi _08028CF2 + lsls r0, r0, #2 + ldr r1, _08028C5C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08028C5C: .4byte 0x08028C60 +_08028C60: @ jump table + .4byte _08028CE0 @ case 0 + .4byte _08028C74 @ case 1 + .4byte _08028C7E @ case 2 + .4byte _08028C92 @ case 3 + .4byte _08028CBA @ case 4 +_08028C74: + cmp r2, #0 + beq _08028CAA + cmp r2, #1 + bne _08028CF2 + b _08028CAE +_08028C7E: + cmp r2, #1 + beq _08028CE4 + cmp r2, #1 + bgt _08028C8C + cmp r2, #0 + beq _08028CE0 + b _08028CF2 +_08028C8C: + cmp r2, #2 + bne _08028CF2 + b _08028CF0 +_08028C92: + cmp r2, #1 + beq _08028CAE + cmp r2, #1 + bgt _08028CA0 + cmp r2, #0 + beq _08028CAA + b _08028CF2 +_08028CA0: + cmp r2, #2 + beq _08028CB2 + cmp r2, #3 + beq _08028CB6 + b _08028CF2 +_08028CAA: + movs r3, #0xc + b _08028CF2 +_08028CAE: + movs r3, #0x12 + b _08028CF2 +_08028CB2: + movs r3, #0x18 + b _08028CF2 +_08028CB6: + movs r3, #6 + b _08028CF2 +_08028CBA: + cmp r2, #4 + bhi _08028CF2 + lsls r0, r2, #2 + ldr r1, _08028CC8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08028CC8: .4byte 0x08028CCC +_08028CCC: @ jump table + .4byte _08028CE0 @ case 0 + .4byte _08028CE4 @ case 1 + .4byte _08028CE8 @ case 2 + .4byte _08028CEC @ case 3 + .4byte _08028CF0 @ case 4 +_08028CE0: + movs r3, #0xf + b _08028CF2 +_08028CE4: + movs r3, #0x15 + b _08028CF2 +_08028CE8: + movs r3, #0x1b + b _08028CF2 +_08028CEC: + movs r3, #3 + b _08028CF2 +_08028CF0: + movs r3, #9 +_08028CF2: + lsls r0, r3, #3 + pop {r1} + bx r1 + thumb_func_end sub_08028C40 + + thumb_func_start sub_08028CF8 +sub_08028CF8: @ 0x08028CF8 + push {r4, lr} + movs r4, #0 +_08028CFC: + adds r0, r4, #0 + movs r1, #1 + bl sub_08028924 + adds r0, r4, #0 + movs r1, #1 + bl sub_080289A8 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xa + bls _08028CFC + movs r0, #0 + bl sub_08028714 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08028CF8 + + thumb_func_start sub_08028D24 +sub_08028D24: @ 0x08028D24 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl GetWindowFrameTilesPal + ldr r1, [r0] + movs r2, #0x90 + lsls r2, r2, #1 + movs r0, #0 + movs r3, #1 + bl LoadBgTiles + adds r0, r4, #0 + bl GetWindowFrameTilesPal + ldr r0, [r0, #4] + movs r1, #0xa0 + movs r2, #0x20 + bl LoadPalette + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08028D24 + + thumb_func_start nullsub_16 +nullsub_16: @ 0x08028D58 + push {lr} + movs r0, #0 + movs r1, #0xa + movs r2, #0xb0 + bl LoadUserWindowBorderGfx_ + pop {r0} + bx r0 + thumb_func_end nullsub_16 + + thumb_func_start sub_08028D68 +sub_08028D68: @ 0x08028D68 + ldr r3, _08028D98 + ldr r0, [r3] + movs r2, #0xc0 + lsls r2, r2, #6 + adds r1, r0, r2 + movs r2, #0 + str r2, [r1] + ldr r1, _08028D9C + adds r0, r0, r1 + strb r2, [r0] + ldr r0, [r3] + adds r1, #4 + adds r0, r0, r1 + strb r2, [r0] + ldr r0, [r3] + adds r1, #8 + adds r0, r0, r1 + strb r2, [r0] + ldr r0, [r3] + adds r1, #4 + adds r0, r0, r1 + strb r2, [r0] + bx lr + .align 2, 0 +_08028D98: .4byte 0x020229AC +_08028D9C: .4byte 0x00003014 + thumb_func_end sub_08028D68 + + thumb_func_start sub_08028DA0 +sub_08028DA0: @ 0x08028DA0 + push {r4, r5, r6, lr} + sub sp, #0xc + adds r4, r0, #0 + movs r6, #0xa + ldrb r2, [r4, #1] + subs r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r3, [r4, #2] + subs r3, #1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r5, #1 + str r5, [sp] + str r5, [sp, #4] + str r6, [sp, #8] + movs r0, #0 + movs r1, #1 + bl FillBgTilemapBufferRect + ldrb r2, [r4, #1] + ldrb r3, [r4, #2] + subs r3, #1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldrb r0, [r4, #3] + str r0, [sp] + str r5, [sp, #4] + str r6, [sp, #8] + movs r0, #0 + movs r1, #2 + bl FillBgTilemapBufferRect + ldrb r2, [r4, #3] + ldrb r0, [r4, #1] + adds r2, r2, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r3, [r4, #2] + subs r3, #1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r5, [sp] + str r5, [sp, #4] + str r6, [sp, #8] + movs r0, #0 + movs r1, #3 + bl FillBgTilemapBufferRect + ldrb r2, [r4, #1] + subs r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r3, [r4, #2] + str r5, [sp] + ldrb r0, [r4, #4] + str r0, [sp, #4] + str r6, [sp, #8] + movs r0, #0 + movs r1, #4 + bl FillBgTilemapBufferRect + ldrb r2, [r4, #3] + ldrb r0, [r4, #1] + adds r2, r2, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r3, [r4, #2] + str r5, [sp] + ldrb r0, [r4, #4] + str r0, [sp, #4] + str r6, [sp, #8] + movs r0, #0 + movs r1, #6 + bl FillBgTilemapBufferRect + ldrb r2, [r4, #1] + subs r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r3, [r4, #4] + ldrb r0, [r4, #2] + adds r3, r3, r0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r5, [sp] + str r5, [sp, #4] + str r6, [sp, #8] + movs r0, #0 + movs r1, #7 + bl FillBgTilemapBufferRect + ldrb r2, [r4, #1] + ldrb r3, [r4, #4] + ldrb r0, [r4, #2] + adds r3, r3, r0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldrb r0, [r4, #3] + str r0, [sp] + str r5, [sp, #4] + str r6, [sp, #8] + movs r0, #0 + movs r1, #8 + bl FillBgTilemapBufferRect + ldrb r2, [r4, #3] + ldrb r0, [r4, #1] + adds r2, r2, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r3, [r4, #4] + ldrb r4, [r4, #2] + adds r3, r3, r4 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r5, [sp] + str r5, [sp, #4] + str r6, [sp, #8] + movs r0, #0 + movs r1, #9 + bl FillBgTilemapBufferRect + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08028DA0 + + thumb_func_start sub_08028EA0 +sub_08028EA0: @ 0x08028EA0 + push {r4, r5, r6, lr} + sub sp, #0xc + adds r4, r0, #0 + movs r6, #0xb + ldrb r2, [r4, #1] + subs r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r3, [r4, #2] + subs r3, #1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r5, #1 + str r5, [sp] + str r5, [sp, #4] + str r6, [sp, #8] + movs r0, #0 + movs r1, #0xa + bl FillBgTilemapBufferRect + ldrb r2, [r4, #1] + ldrb r3, [r4, #2] + subs r3, #1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldrb r0, [r4, #3] + str r0, [sp] + str r5, [sp, #4] + str r6, [sp, #8] + movs r0, #0 + movs r1, #0xb + bl FillBgTilemapBufferRect + ldrb r2, [r4, #3] + ldrb r0, [r4, #1] + adds r2, r2, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r3, [r4, #2] + subs r3, #1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r5, [sp] + str r5, [sp, #4] + str r6, [sp, #8] + movs r0, #0 + movs r1, #0xc + bl FillBgTilemapBufferRect + ldrb r2, [r4, #1] + subs r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r3, [r4, #2] + str r5, [sp] + ldrb r0, [r4, #4] + str r0, [sp, #4] + str r6, [sp, #8] + movs r0, #0 + movs r1, #0xd + bl FillBgTilemapBufferRect + ldrb r2, [r4, #3] + ldrb r0, [r4, #1] + adds r2, r2, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r3, [r4, #2] + str r5, [sp] + ldrb r0, [r4, #4] + str r0, [sp, #4] + str r6, [sp, #8] + movs r0, #0 + movs r1, #0xf + bl FillBgTilemapBufferRect + ldrb r2, [r4, #1] + subs r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r3, [r4, #4] + ldrb r0, [r4, #2] + adds r3, r3, r0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r5, [sp] + str r5, [sp, #4] + str r6, [sp, #8] + movs r0, #0 + movs r1, #0x10 + bl FillBgTilemapBufferRect + ldrb r2, [r4, #1] + ldrb r3, [r4, #4] + ldrb r0, [r4, #2] + adds r3, r3, r0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldrb r0, [r4, #3] + str r0, [sp] + str r5, [sp, #4] + str r6, [sp, #8] + movs r0, #0 + movs r1, #0x11 + bl FillBgTilemapBufferRect + ldrb r2, [r4, #3] + ldrb r0, [r4, #1] + adds r2, r2, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r3, [r4, #4] + ldrb r4, [r4, #2] + adds r3, r3, r4 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r5, [sp] + str r5, [sp, #4] + str r6, [sp, #8] + movs r0, #0 + movs r1, #0x12 + bl FillBgTilemapBufferRect + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08028EA0 + + thumb_func_start sub_08028FA0 +sub_08028FA0: @ 0x08028FA0 + push {r4, lr} + ldr r4, _08028FE8 + str r0, [r4] + movs r2, #0xc0 + lsls r2, r2, #6 + adds r1, r0, r2 + movs r2, #0 + str r2, [r1] + ldr r3, _08028FEC + adds r1, r0, r3 + strb r2, [r1] + ldr r1, _08028FF0 + adds r0, r0, r1 + strb r2, [r0] + ldr r0, [r4] + adds r3, #0xc + adds r0, r0, r3 + strb r2, [r0] + ldr r0, [r4] + adds r1, #0xc + adds r0, r0, r1 + strb r2, [r0] + ldr r0, _08028FF4 + movs r1, #3 + bl CreateTask + ldr r1, [r4] + ldr r2, _08028FF8 + adds r1, r1, r2 + strb r0, [r1] + ldr r0, _08028FFC + bl sub_0802A420 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08028FE8: .4byte 0x020229AC +_08028FEC: .4byte 0x00003014 +_08028FF0: .4byte 0x00003018 +_08028FF4: .4byte 0x08029041 +_08028FF8: .4byte 0x00003004 +_08028FFC: .4byte 0x08029065 + thumb_func_end sub_08028FA0 + + thumb_func_start sub_08029000 +sub_08029000: @ 0x08029000 + push {lr} + bl FreeAllWindowBuffers + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08029000 + + thumb_func_start sub_0802900C +sub_0802900C: @ 0x0802900C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r4, #0 + ldr r5, _0802903C + adds r7, r5, #4 +_08029018: + lsls r1, r4, #3 + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, r6 + bne _0802902A + adds r0, r1, r7 + ldr r0, [r0] + bl sub_0802A420 +_0802902A: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #9 + bls _08029018 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0802903C: .4byte 0x082CEC98 + thumb_func_end sub_0802900C + + thumb_func_start sub_08029040 +sub_08029040: @ 0x08029040 + push {lr} + ldr r0, _08029060 + ldr r0, [r0] + movs r1, #0xc0 + lsls r1, r1, #6 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #0 + bne _0802905A + bl sub_0802A450 + bl _call_via_r0 +_0802905A: + pop {r0} + bx r0 + .align 2, 0 +_08029060: .4byte 0x020229AC + thumb_func_end sub_08029040 + + thumb_func_start sub_08029064 +sub_08029064: @ 0x08029064 + push {lr} + ldr r0, _08029080 + ldr r1, [r0] + ldr r2, _08029084 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #4 + bhi _0802915C + lsls r0, r0, #2 + ldr r1, _08029088 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08029080: .4byte 0x020229AC +_08029084: .4byte 0x00003014 +_08029088: .4byte 0x0802908C +_0802908C: @ jump table + .4byte _080290A0 @ case 0 + .4byte _080290A6 @ case 1 + .4byte _080290C0 @ case 2 + .4byte _08029104 @ case 3 + .4byte _08029130 @ case 4 +_080290A0: + bl sub_0802A49C + b _08029140 +_080290A6: + bl sub_0802A5DC + cmp r0, #1 + bne _08029166 + ldr r0, _080290B8 + ldr r1, [r0] + ldr r2, _080290BC + adds r1, r1, r2 + b _08029148 + .align 2, 0 +_080290B8: .4byte 0x020229AC +_080290BC: .4byte 0x00003014 +_080290C0: + ldr r1, _080290F8 + movs r0, #3 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + ldr r1, _080290FC + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + ldr r1, _08029100 + movs r0, #2 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + movs r0, #3 + bl CopyBgTilemapBufferToVram + movs r0, #1 + bl CopyBgTilemapBufferToVram + movs r0, #2 + bl CopyBgTilemapBufferToVram + b _08029140 + .align 2, 0 +_080290F8: .4byte 0x082CE364 +_080290FC: .4byte 0x082CE820 +_08029100: .4byte 0x082CE5D0 +_08029104: + movs r0, #0 + bl ShowBg + movs r0, #3 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + ldr r0, _08029128 + ldr r1, [r0] + ldr r2, _0802912C + adds r1, r1, r2 + b _08029148 + .align 2, 0 +_08029128: .4byte 0x020229AC +_0802912C: .4byte 0x00003014 +_08029130: + ldr r0, _08029150 + ldr r0, [r0] + ldrb r0, [r0, #0x14] + lsrs r0, r0, #3 + bl sub_08028D24 + bl nullsub_16 +_08029140: + ldr r0, _08029154 + ldr r1, [r0] + ldr r0, _08029158 + adds r1, r1, r0 +_08029148: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _08029166 + .align 2, 0 +_08029150: .4byte 0x03005AF0 +_08029154: .4byte 0x020229AC +_08029158: .4byte 0x00003014 +_0802915C: + movs r2, #0xc0 + lsls r2, r2, #6 + adds r1, r1, r2 + movs r0, #1 + str r0, [r1] +_08029166: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08029064 + + thumb_func_start sub_0802916C +sub_0802916C: @ 0x0802916C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + ldr r4, _080291AC + ldr r0, [r4] + ldr r2, _080291B0 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, #0 + beq _080291B4 + cmp r0, #1 + bne _0802918C + b _08029318 +_0802918C: + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xb4 + bhi _0802919A + b _080293BA +_0802919A: + bl sub_08027410 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r6, #0 + cmp r6, r7 + blo _080291AA + b _08029392 +_080291AA: + b _0802936C + .align 2, 0 +_080291AC: .4byte 0x020229AC +_080291B0: .4byte 0x00003014 +_080291B4: + bl sub_08027410 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r1, _080292F0 + subs r0, r7, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r5, [r0] + ldr r2, _080292F4 + ldr r0, [sp, #0xc] + ands r0, r2 + ldr r1, _080292F8 + ands r0, r1 + movs r1, #0xe0 + lsls r1, r1, #0x13 + orrs r0, r1 + str r0, [sp, #0xc] + ldr r0, [sp, #0x10] + ands r0, r2 + movs r1, #2 + orrs r0, r1 + ldr r1, _080292FC + ands r0, r1 + movs r1, #0xd0 + lsls r1, r1, #4 + orrs r0, r1 + ldr r1, _08029300 + ands r0, r1 + movs r1, #0x98 + lsls r1, r1, #0xd + orrs r0, r1 + str r0, [sp, #0x10] + movs r6, #0 + cmp r6, r7 + bhs _080292E4 + mov r3, sp + adds r3, #0xc + str r3, [sp, #0x18] + mov sl, r4 + ldr r0, _08029304 + mov sb, r0 +_08029208: + movs r1, #0 + mov r8, r1 + adds r0, r6, #0 + bl sub_08027808 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r4, r0, #0 + bl sub_08027420 + adds r1, r0, #0 + movs r0, #0 + movs r2, #1 + rsbs r2, r2, #0 + bl GetStringWidth + movs r1, #0x38 + subs r1, r1, r0 + lsrs r1, r1, #1 + str r1, [sp, #0x14] + ldrb r0, [r5] + lsls r0, r0, #8 + ldr r2, _080292FC + ldr r1, [sp, #0xc] + ands r1, r2 + orrs r1, r0 + str r1, [sp, #0xc] + ldrb r2, [r5, #1] + lsls r2, r2, #0x10 + ldr r0, _08029308 + ands r0, r1 + orrs r0, r2 + str r0, [sp, #0xc] + add r0, sp, #0xc + bl AddWindow + mov r2, sl + ldr r1, [r2] + add r1, sb + adds r1, r1, r6 + strb r0, [r1] + ldr r0, [r2] + add r0, sb + adds r0, r0, r6 + ldrb r0, [r0] + bl ClearWindowTilemap + mov r3, sl + ldr r0, [r3] + add r0, sb + adds r0, r0, r6 + ldrb r0, [r0] + movs r1, #0x11 + bl FillWindowPixelBuffer + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + bne _08029286 + movs r0, #2 + mov r8, r0 +_08029286: + adds r0, r4, #0 + bl sub_08027420 + adds r4, r0, #0 + mov r1, sl + ldr r0, [r1] + add r0, sb + adds r0, r0, r6 + ldrb r0, [r0] + ldr r3, [sp, #0x14] + lsls r2, r3, #0x18 + lsrs r2, r2, #0x18 + mov r3, r8 + lsls r1, r3, #1 + add r1, r8 + ldr r3, _0802930C + adds r1, r1, r3 + str r1, [sp] + movs r1, #1 + rsbs r1, r1, #0 + str r1, [sp, #4] + str r4, [sp, #8] + movs r1, #0 + movs r3, #1 + bl AddTextPrinterParameterized3 + mov r2, sl + ldr r0, [r2] + add r0, sb + adds r0, r0, r6 + ldrb r0, [r0] + movs r1, #2 + bl CopyWindowToVram + ldr r3, [sp, #0x18] + ldrh r0, [r3, #6] + adds r0, #0xe + strh r0, [r3, #6] + add r0, sp, #0xc + bl sub_08028EA0 + adds r5, #4 + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, r7 + blo _08029208 +_080292E4: + ldr r0, _08029310 + ldr r1, [r0] + ldr r0, _08029314 + adds r1, r1, r0 + b _08029356 + .align 2, 0 +_080292F0: .4byte 0x082CEC54 +_080292F4: .4byte 0xFFFFFF00 +_080292F8: .4byte 0x00FFFFFF +_080292FC: .4byte 0xFFFF00FF +_08029300: .4byte 0x0000FFFF +_08029304: .4byte 0x00003008 +_08029308: .4byte 0xFF00FFFF +_0802930C: .4byte 0x082CEC0C +_08029310: .4byte 0x020229AC +_08029314: .4byte 0x00003014 +_08029318: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080293BA + bl sub_08027410 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r6, #0 + cmp r6, r7 + bhs _08029348 +_08029330: + ldr r0, [r4] + ldr r1, _08029360 + adds r0, r0, r1 + adds r0, r0, r6 + ldrb r0, [r0] + bl PutWindowTilemap + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, r7 + blo _08029330 +_08029348: + movs r0, #0 + bl CopyBgTilemapBufferToVram + ldr r0, _08029364 + ldr r1, [r0] + ldr r2, _08029368 + adds r1, r1, r2 +_08029356: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080293BA + .align 2, 0 +_08029360: .4byte 0x00003008 +_08029364: .4byte 0x020229AC +_08029368: .4byte 0x00003014 +_0802936C: + ldr r5, _080293CC + ldr r0, [r5] + ldr r4, _080293D0 + adds r0, r0, r4 + adds r0, r0, r6 + ldrb r0, [r0] + bl ClearWindowTilemap + ldr r0, [r5] + adds r0, r0, r4 + adds r0, r0, r6 + ldrb r0, [r0] + bl RemoveWindow + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, r7 + blo _0802936C +_08029392: + movs r0, #0x1e + str r0, [sp] + movs r0, #0x14 + str r0, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, #0 + bl CopyBgTilemapBufferToVram + ldr r0, _080293CC + ldr r0, [r0] + movs r3, #0xc0 + lsls r3, r3, #6 + adds r0, r0, r3 + movs r1, #1 + str r1, [r0] +_080293BA: + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080293CC: .4byte 0x020229AC +_080293D0: .4byte 0x00003008 + thumb_func_end sub_0802916C + + thumb_func_start sub_080293D4 +sub_080293D4: @ 0x080293D4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x68 + lsls r0, r0, #0x18 + movs r1, #0 + mov r8, r1 + movs r6, #0 + lsrs r7, r0, #0x18 + add r4, sp, #0x2c + ldr r1, _08029588 + adds r0, r4, #0 + movs r2, #5 + bl memcpy + movs r5, #0 + cmp r5, r7 + bhs _08029424 + add r4, sp, #0x34 +_080293FE: + mov r0, sp + adds r0, r0, r5 + adds r0, #0x2c + strb r5, [r0] + add r0, sp, #0x5c + adds r1, r5, #0 + bl sub_080276FC + lsls r2, r5, #3 + adds r2, r4, r2 + ldr r0, [sp, #0x5c] + ldr r1, [sp, #0x60] + str r0, [r2] + str r1, [r2, #4] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, r7 + blo _080293FE +_08029424: + bl sub_08027508 + cmp r0, #0 + beq _0802945A +_0802942C: + movs r5, #0 + cmp r5, r7 + bhs _08029454 + add r2, sp, #0x34 + add r1, sp, #0x2c +_08029436: + lsls r0, r5, #3 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, r8 + bne _0802944A + adds r0, r1, r6 + strb r5, [r0] + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_0802944A: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, r7 + blo _08029436 +_08029454: + mov r8, r6 + cmp r6, r7 + blo _0802942C +_0802945A: + movs r5, #0 + cmp r5, r7 + bhs _0802947E + add r6, sp, #0x34 + add r3, sp, #0x38 + subs r2, r7, #1 +_08029466: + lsls r1, r5, #3 + adds r0, r3, r1 + ldr r0, [r0] + cmp r0, #0 + bne _08029474 + adds r0, r6, r1 + strb r2, [r0] +_08029474: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, r7 + blo _08029466 +_0802947E: + movs r5, #0 + cmp r5, r7 + bhs _08029576 + mov r2, sp + adds r2, #0x34 + str r2, [sp, #0x64] + ldr r3, _0802958C + mov sl, r3 +_0802948E: + movs r0, #0 + mov r8, r0 + mov r0, sp + adds r0, r0, r5 + adds r0, #0x2c + ldrb r0, [r0] + adds r4, r0, #0 + lsls r1, r4, #3 + add r0, sp, #0x38 + adds r0, r0, r1 + ldr r0, [r0] + mov sb, r0 + ldr r2, _08029590 + ldr r0, [r2] + add r0, sl + ldrb r0, [r0] + ldr r2, _08029594 + ldr r3, [sp, #0x64] + adds r1, r3, r1 + ldrb r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r2, [r1] + ldr r3, _08029598 + lsls r1, r5, #1 + adds r1, r1, r3 + ldrb r6, [r1] + str r6, [sp] + movs r1, #0xff + str r1, [sp, #4] + mov r3, r8 + str r3, [sp, #8] + movs r1, #0 + movs r3, #8 + bl AddTextPrinterParameterized + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + bne _080294E6 + movs r0, #2 + mov r8, r0 +_080294E6: + adds r0, r4, #0 + bl sub_08027420 + adds r3, r0, #0 + ldr r1, _08029590 + ldr r0, [r1] + add r0, sl + ldrb r0, [r0] + mov r2, r8 + lsls r1, r2, #1 + add r1, r8 + ldr r2, _0802959C + adds r1, r1, r2 + str r1, [sp] + movs r1, #1 + rsbs r1, r1, #0 + str r1, [sp, #4] + str r3, [sp, #8] + movs r1, #0 + movs r2, #0x1c + adds r3, r6, #0 + bl AddTextPrinterParameterized3 + add r0, sp, #0xc + mov r1, sb + movs r2, #0 + movs r3, #7 + bl ConvertIntToDecimalStringN + movs r0, #0 + add r1, sp, #0xc + movs r2, #1 + rsbs r2, r2, #0 + bl GetStringWidth + ldr r2, _08029590 + ldr r1, [r2] + add r1, sl + ldrb r1, [r1] + movs r3, #0x91 + subs r3, r3, r0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r6, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r2, #0 + str r2, [sp, #8] + adds r0, r1, #0 + movs r1, #0 + add r2, sp, #0xc + bl AddTextPrinterParameterized + ldr r3, _08029590 + ldr r0, [r3] + add r0, sl + ldrb r0, [r0] + str r6, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r2, #0 + str r2, [sp, #8] + movs r1, #0 + ldr r2, _080295A0 + movs r3, #0x9b + bl AddTextPrinterParameterized + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, r7 + blo _0802948E +_08029576: + add sp, #0x68 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08029588: .4byte 0x082CECE8 +_0802958C: .4byte 0x00003009 +_08029590: .4byte 0x020229AC +_08029594: .4byte 0x082CEC68 +_08029598: .4byte 0x082CEC8E +_0802959C: .4byte 0x082CEC0C +_080295A0: .4byte 0x085CCDE7 + thumb_func_end sub_080293D4 + + thumb_func_start sub_080295A4 +sub_080295A4: @ 0x080295A4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + bl sub_08027410 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0xc] + ldr r6, _080295D4 + ldr r1, [r6] + ldr r2, _080295D8 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0xb + bls _080295CA + b _08029CC0 +_080295CA: + lsls r0, r0, #2 + ldr r1, _080295DC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080295D4: .4byte 0x020229AC +_080295D8: .4byte 0x00003014 +_080295DC: .4byte 0x080295E0 +_080295E0: @ jump table + .4byte _08029610 @ case 0 + .4byte _0802962C @ case 1 + .4byte _08029684 @ case 2 + .4byte _08029888 @ case 3 + .4byte _080298D4 @ case 4 + .4byte _08029918 @ case 5 + .4byte _0802997C @ case 6 + .4byte _080299B8 @ case 7 + .4byte _080299FC @ case 8 + .4byte _08029ABC @ case 9 + .4byte _08029C20 @ case 10 + .4byte _08029C74 @ case 11 +_08029610: + bl sub_0802760C + ldr r0, _08029624 + ldr r1, [r0] + ldr r0, _08029628 + adds r2, r1, r0 + movs r0, #0 + strh r0, [r2] + b _08029CA2 + .align 2, 0 +_08029624: .4byte 0x020229AC +_08029628: .4byte 0x0000301C +_0802962C: + ldr r6, _08029674 + adds r0, r6, #0 + bl AddWindow + ldr r4, _08029678 + ldr r1, [r4] + ldr r2, _0802967C + mov r8, r2 + add r1, r8 + strb r0, [r1] + movs r0, #8 + adds r0, r0, r6 + mov sb, r0 + bl AddWindow + ldr r1, [r4] + ldr r5, _08029680 + adds r1, r1, r5 + strb r0, [r1] + ldr r0, [r4] + add r0, r8 + ldrb r0, [r0] + bl ClearWindowTilemap + ldr r0, [r4] + adds r0, r0, r5 + ldrb r0, [r0] + bl ClearWindowTilemap + adds r0, r6, #0 + bl sub_08028EA0 + mov r0, sb + bl sub_08028EA0 + b _08029CA0 + .align 2, 0 +_08029674: .4byte 0x082CB448 +_08029678: .4byte 0x020229AC +_0802967C: .4byte 0x00003008 +_08029680: .4byte 0x00003009 +_08029684: + ldr r4, _080297D0 + ldr r0, [r4] + ldr r5, _080297D4 + adds r0, r0, r5 + ldrb r0, [r0] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r0, [r4] + ldr r1, _080297D8 + mov sb, r1 + add r0, sb + ldrb r0, [r0] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r2, _080297DC + mov r8, r2 + movs r2, #1 + rsbs r2, r2, #0 + movs r0, #0 + mov r1, r8 + bl GetStringWidth + adds r1, r0, #0 + movs r0, #0xe0 + subs r0, r0, r1 + lsrs r3, r0, #1 + ldr r0, [r4] + adds r0, r0, r5 + ldrb r0, [r0] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r1, #2 + str r1, [sp] + movs r6, #0xff + str r6, [sp, #4] + movs r5, #0 + str r5, [sp, #8] + movs r1, #0 + mov r2, r8 + bl AddTextPrinterParameterized + ldr r0, [r4] + add r0, sb + ldrb r0, [r0] + ldr r2, _080297E0 + movs r1, #0x10 + str r1, [sp] + str r6, [sp, #4] + str r5, [sp, #8] + movs r1, #0 + movs r3, #0x44 + bl AddTextPrinterParameterized + movs r0, #0 + mov sb, r0 + ldr r1, [sp, #0xc] + cmp sb, r1 + blo _080296FE + b _08029844 +_080296FE: + movs r4, #0 + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp sb, r0 + bne _0802970E + movs r4, #2 +_0802970E: + mov r0, sb + bl sub_08027420 + adds r6, r0, #0 + ldr r0, _080297D0 + ldr r0, [r0] + ldr r2, _080297D8 + adds r0, r0, r2 + ldrb r0, [r0] + mov r1, sb + lsls r5, r1, #1 + ldr r2, _080297E4 + adds r1, r5, r2 + ldrb r3, [r1] + lsls r1, r4, #1 + adds r1, r1, r4 + ldr r2, _080297E8 + adds r1, r1, r2 + str r1, [sp] + movs r4, #1 + rsbs r4, r4, #0 + str r4, [sp, #4] + str r6, [sp, #8] + movs r1, #0 + movs r2, #2 + bl AddTextPrinterParameterized3 + movs r7, #0 + mov r8, r5 + mov r0, sb + adds r0, #1 + str r0, [sp, #0x10] + ldr r1, _080297EC + mov sl, r1 +_08029752: + mov r0, sb + adds r1, r7, #0 + bl sub_08027460 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _080297F0 + bl Min + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r7, #0 + bl sub_0802754C + ldr r1, _080297F0 + bl Min + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + mov r0, sl + adds r1, r4, #0 + movs r2, #0 + movs r3, #4 + bl ConvertIntToDecimalStringN + movs r0, #0 + mov r1, sl + movs r2, #1 + rsbs r2, r2, #0 + bl GetStringWidth + adds r5, r0, #0 + cmp r6, r4 + bne _080297FC + cmp r6, #0 + beq _080297FC + ldr r0, _080297D0 + ldr r0, [r0] + ldr r2, _080297D8 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r1, r7, #1 + ldr r2, _080297F4 + adds r1, r1, r2 + ldrb r2, [r1] + subs r2, r2, r5 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r1, _080297E4 + add r1, r8 + ldrb r3, [r1] + ldr r1, _080297F8 + str r1, [sp] + movs r1, #1 + rsbs r1, r1, #0 + str r1, [sp, #4] + mov r1, sl + str r1, [sp, #8] + movs r1, #0 + bl AddTextPrinterParameterized3 + b _0802982A + .align 2, 0 +_080297D0: .4byte 0x020229AC +_080297D4: .4byte 0x00003008 +_080297D8: .4byte 0x00003009 +_080297DC: .4byte 0x085CCD34 +_080297E0: .4byte 0x085CCD45 +_080297E4: .4byte 0x082CEC84 +_080297E8: .4byte 0x082CEC0C +_080297EC: .4byte 0x02021C7C +_080297F0: .4byte 0x0000270F +_080297F4: .4byte 0x082CEC7C +_080297F8: .4byte 0x082CEC0F +_080297FC: + ldr r0, _0802986C + ldr r0, [r0] + ldr r2, _08029870 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r1, r7, #1 + ldr r2, _08029874 + adds r1, r1, r2 + ldrb r3, [r1] + subs r3, r3, r5 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r1, _08029878 + add r1, r8 + ldrb r1, [r1] + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + ldr r2, _0802987C + bl AddTextPrinterParameterized +_0802982A: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #3 + bls _08029752 + ldr r1, [sp, #0x10] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldr r2, [sp, #0xc] + cmp sb, r2 + bhs _08029844 + b _080296FE +_08029844: + ldr r4, _0802986C + ldr r0, [r4] + ldr r1, _08029880 + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #2 + bl CopyWindowToVram + ldr r0, [r4] + ldr r2, _08029870 + adds r0, r0, r2 + ldrb r0, [r0] + movs r1, #2 + bl CopyWindowToVram + ldr r1, [r4] + ldr r0, _08029884 + adds r1, r1, r0 + b _08029CA6 + .align 2, 0 +_0802986C: .4byte 0x020229AC +_08029870: .4byte 0x00003009 +_08029874: .4byte 0x082CEC7C +_08029878: .4byte 0x082CEC84 +_0802987C: .4byte 0x02021C7C +_08029880: .4byte 0x00003008 +_08029884: .4byte 0x00003014 +_08029888: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080298AC + ldr r4, _080298C4 + ldr r0, [r4] + ldr r1, _080298C8 + adds r0, r0, r1 + ldrb r0, [r0] + bl PutWindowTilemap + ldr r0, [r4] + ldr r2, _080298CC + adds r0, r0, r2 + ldrb r0, [r0] + bl PutWindowTilemap +_080298AC: + movs r0, #0 + bl CopyBgTilemapBufferToVram + movs r0, #0 + bl sub_0802895C + ldr r0, _080298C4 + ldr r1, [r0] + ldr r0, _080298D0 + adds r1, r1, r0 + b _08029CA6 + .align 2, 0 +_080298C4: .4byte 0x020229AC +_080298C8: .4byte 0x00003008 +_080298CC: .4byte 0x00003009 +_080298D0: .4byte 0x00003014 +_080298D4: + ldr r4, _0802990C + ldr r0, [r4] + ldr r1, _08029910 + adds r2, r0, r1 + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x1d + bhi _080298EC + b _08029D10 +_080298EC: + ldr r0, _08029914 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080298FA + b _08029D10 +_080298FA: + movs r0, #0 + strh r0, [r2] + movs r0, #5 + bl PlaySE + movs r0, #1 + bl sub_0802895C + b _08029CA0 + .align 2, 0 +_0802990C: .4byte 0x020229AC +_08029910: .4byte 0x0000301C +_08029914: .4byte 0x03002360 +_08029918: + ldr r4, _0802996C + ldr r0, [r4] + ldr r5, _08029970 + adds r0, r0, r5 + ldrb r0, [r0] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r0, [r4] + ldr r1, _08029974 + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r6, _08029978 + movs r2, #1 + rsbs r2, r2, #0 + movs r0, #0 + adds r1, r6, #0 + bl GetStringWidth + adds r1, r0, #0 + movs r0, #0xe0 + subs r0, r0, r1 + lsrs r3, r0, #1 + ldr r0, [r4] + adds r0, r0, r5 + ldrb r0, [r0] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r1, #2 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + adds r2, r6, #0 + bl AddTextPrinterParameterized + b _08029CA0 + .align 2, 0 +_0802996C: .4byte 0x020229AC +_08029970: .4byte 0x00003008 +_08029974: .4byte 0x00003009 +_08029978: .4byte 0x085CCD5A +_0802997C: + ldr r0, [sp, #0xc] + bl sub_080293D4 + ldr r4, _080299A8 + ldr r0, [r4] + ldr r1, _080299AC + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #2 + bl CopyWindowToVram + ldr r0, [r4] + ldr r2, _080299B0 + adds r0, r0, r2 + ldrb r0, [r0] + movs r1, #2 + bl CopyWindowToVram + ldr r1, [r4] + ldr r0, _080299B4 + adds r1, r1, r0 + b _08029CA6 + .align 2, 0 +_080299A8: .4byte 0x020229AC +_080299AC: .4byte 0x00003008 +_080299B0: .4byte 0x00003009 +_080299B4: .4byte 0x00003014 +_080299B8: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080299DC + ldr r4, _080299EC + ldr r0, [r4] + ldr r1, _080299F0 + adds r0, r0, r1 + ldrb r0, [r0] + bl PutWindowTilemap + ldr r0, [r4] + ldr r2, _080299F4 + adds r0, r0, r2 + ldrb r0, [r0] + bl PutWindowTilemap +_080299DC: + movs r0, #0 + bl CopyBgTilemapBufferToVram + ldr r0, _080299EC + ldr r1, [r0] + ldr r0, _080299F8 + adds r1, r1, r0 + b _08029CA6 + .align 2, 0 +_080299EC: .4byte 0x020229AC +_080299F0: .4byte 0x00003008 +_080299F4: .4byte 0x00003009 +_080299F8: .4byte 0x00003014 +_080299FC: + ldr r4, _08029A44 + ldr r0, [r4] + ldr r1, _08029A48 + adds r2, r0, r1 + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x1d + bhi _08029A14 + b _08029D10 +_08029A14: + ldr r0, _08029A4C + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08029A22 + b _08029D10 +_08029A22: + movs r0, #0 + strh r0, [r2] + movs r0, #5 + bl PlaySE + bl sub_08027508 + ldr r1, _08029A50 + cmp r0, r1 + bhi _08029A58 + ldr r0, [r4] + ldr r2, _08029A54 + adds r0, r0, r2 + movs r1, #0x7f + strb r1, [r0] + b _08029A68 + .align 2, 0 +_08029A44: .4byte 0x020229AC +_08029A48: .4byte 0x0000301C +_08029A4C: .4byte 0x03002360 +_08029A50: .4byte 0x00000BB7 +_08029A54: .4byte 0x00003014 +_08029A58: + bl StopMapMusic + ldr r1, [r4] + ldr r0, _08029AAC + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_08029A68: + movs r0, #0x1e + str r0, [sp] + movs r0, #0xf + str r0, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #5 + bl FillBgTilemapBufferRect_Palette0 + ldr r5, _08029AB0 + ldr r0, [r5] + ldr r4, _08029AB4 + adds r0, r0, r4 + ldrb r0, [r0] + bl RemoveWindow + ldr r6, _08029AB8 + adds r0, r6, #0 + bl AddWindow + ldr r1, [r5] + adds r1, r1, r4 + strb r0, [r1] + ldr r0, [r5] + adds r0, r0, r4 + ldrb r0, [r0] + bl ClearWindowTilemap + adds r0, r6, #0 + bl sub_08028EA0 + b _08029D10 + .align 2, 0 +_08029AAC: .4byte 0x00003014 +_08029AB0: .4byte 0x020229AC +_08029AB4: .4byte 0x00003009 +_08029AB8: .4byte 0x082CB458 +_08029ABC: + ldr r0, _08029B94 + bl PlayNewMapMusic + ldr r4, _08029B98 + ldr r0, [r4] + ldr r6, _08029B9C + adds r0, r0, r6 + ldrb r0, [r0] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r0, [r4] + ldr r1, _08029BA0 + mov sl, r1 + add r0, sl + ldrb r0, [r0] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r5, _08029BA4 + movs r2, #1 + rsbs r2, r2, #0 + movs r0, #0 + adds r1, r5, #0 + bl GetStringWidth + adds r1, r0, #0 + movs r0, #0xe0 + subs r0, r0, r1 + lsrs r3, r0, #1 + ldr r0, [r4] + adds r0, r0, r6 + ldrb r0, [r0] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r2, #2 + mov sb, r2 + str r2, [sp] + movs r1, #0xff + mov r8, r1 + str r1, [sp, #4] + movs r6, #0 + str r6, [sp, #8] + movs r1, #0 + adds r2, r5, #0 + bl AddTextPrinterParameterized + bl DynamicPlaceholderTextUtil_Reset + bl sub_080273EC + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r5, _08029BA8 + adds r1, r5, #0 + bl CopyItemName + movs r0, #0 + adds r1, r5, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + ldr r7, _08029BAC + ldr r1, _08029BB0 + adds r0, r7, #0 + bl DynamicPlaceholderTextUtil_ExpandPlaceholders + ldr r0, [r4] + add r0, sl + ldrb r0, [r0] + mov r2, sb + str r2, [sp] + mov r1, r8 + str r1, [sp, #4] + str r6, [sp, #8] + movs r1, #0 + adds r2, r7, #0 + movs r3, #8 + bl AddTextPrinterParameterized + bl sub_08027788 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r6, r4, #0 + cmp r4, #0 + beq _08029BE2 + cmp r4, #3 + beq _08029BE2 + bl DynamicPlaceholderTextUtil_Reset + bl sub_080273EC + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r5, #0 + bl CopyItemName + movs r0, #0 + adds r1, r5, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + cmp r4, #2 + bne _08029BB8 + ldr r1, _08029BB4 + adds r0, r7, #0 + bl DynamicPlaceholderTextUtil_ExpandPlaceholders + b _08029BC4 + .align 2, 0 +_08029B94: .4byte 0x0000016F +_08029B98: .4byte 0x020229AC +_08029B9C: .4byte 0x00003008 +_08029BA0: .4byte 0x00003009 +_08029BA4: .4byte 0x085CCD68 +_08029BA8: .4byte 0x02021C40 +_08029BAC: .4byte 0x02021C7C +_08029BB0: .4byte 0x085CCD86 +_08029BB4: .4byte 0x085CCD9F +_08029BB8: + cmp r6, #1 + bne _08029BC4 + ldr r1, _08029C08 + adds r0, r7, #0 + bl DynamicPlaceholderTextUtil_ExpandPlaceholders +_08029BC4: + ldr r0, _08029C0C + ldr r0, [r0] + ldr r2, _08029C10 + adds r0, r0, r2 + ldrb r0, [r0] + ldr r2, _08029C14 + movs r1, #0x28 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r3, #8 + bl AddTextPrinterParameterized +_08029BE2: + ldr r4, _08029C0C + ldr r0, [r4] + ldr r1, _08029C18 + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #2 + bl CopyWindowToVram + ldr r0, [r4] + ldr r2, _08029C10 + adds r0, r0, r2 + ldrb r0, [r0] + movs r1, #2 + bl CopyWindowToVram + ldr r1, [r4] + ldr r0, _08029C1C + adds r1, r1, r0 + b _08029CA6 + .align 2, 0 +_08029C08: .4byte 0x085CCDAB +_08029C0C: .4byte 0x020229AC +_08029C10: .4byte 0x00003009 +_08029C14: .4byte 0x02021C7C +_08029C18: .4byte 0x00003008 +_08029C1C: .4byte 0x00003014 +_08029C20: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08029C44 + ldr r4, _08029C60 + ldr r0, [r4] + ldr r1, _08029C64 + adds r0, r0, r1 + ldrb r0, [r0] + bl PutWindowTilemap + ldr r0, [r4] + ldr r2, _08029C68 + adds r0, r0, r2 + ldrb r0, [r0] + bl PutWindowTilemap +_08029C44: + movs r0, #0 + bl CopyBgTilemapBufferToVram + ldr r0, _08029C6C + movs r1, #0x14 + movs r2, #0xa + bl FadeOutAndFadeInNewMapMusic + ldr r0, _08029C60 + ldr r1, [r0] + ldr r0, _08029C70 + adds r1, r1, r0 + b _08029CA6 + .align 2, 0 +_08029C60: .4byte 0x020229AC +_08029C64: .4byte 0x00003008 +_08029C68: .4byte 0x00003009 +_08029C6C: .4byte 0x0000020B +_08029C70: .4byte 0x00003014 +_08029C74: + ldr r4, _08029CB0 + ldr r0, [r4] + ldr r1, _08029CB4 + adds r2, r0, r1 + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x1d + bls _08029D10 + ldr r0, _08029CB8 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08029D10 + movs r0, #0 + strh r0, [r2] + movs r0, #5 + bl PlaySE +_08029CA0: + ldr r1, [r4] +_08029CA2: + ldr r2, _08029CBC + adds r1, r1, r2 +_08029CA6: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _08029D10 + .align 2, 0 +_08029CB0: .4byte 0x020229AC +_08029CB4: .4byte 0x0000301C +_08029CB8: .4byte 0x03002360 +_08029CBC: .4byte 0x00003014 +_08029CC0: + ldr r5, _08029D20 + adds r0, r1, r5 + ldrb r0, [r0] + bl ClearWindowTilemap + ldr r0, [r6] + ldr r4, _08029D24 + adds r0, r0, r4 + ldrb r0, [r0] + bl ClearWindowTilemap + ldr r0, [r6] + adds r0, r0, r5 + ldrb r0, [r0] + bl RemoveWindow + ldr r0, [r6] + adds r0, r0, r4 + ldrb r0, [r0] + bl RemoveWindow + movs r0, #0x1e + str r0, [sp] + movs r0, #0x14 + str r0, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, #0 + bl CopyBgTilemapBufferToVram + ldr r0, [r6] + movs r1, #0xc0 + lsls r1, r1, #6 + adds r0, r0, r1 + movs r1, #1 + str r1, [r0] +_08029D10: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08029D20: .4byte 0x00003008 +_08029D24: .4byte 0x00003009 + thumb_func_end sub_080295A4 + + thumb_func_start sub_08029D28 +sub_08029D28: @ 0x08029D28 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + ldr r1, _08029D50 + ldr r2, [r1] + ldr r3, _08029D54 + adds r0, r2, r3 + ldrb r7, [r0] + adds r6, r1, #0 + cmp r7, #1 + beq _08029DDC + cmp r7, #1 + bgt _08029D58 + cmp r7, #0 + beq _08029D66 + b _08029FF4 + .align 2, 0 +_08029D50: .4byte 0x020229AC +_08029D54: .4byte 0x00003014 +_08029D58: + cmp r7, #2 + bne _08029D5E + b _08029EA0 +_08029D5E: + cmp r7, #3 + bne _08029D64 + b _08029ED4 +_08029D64: + b _08029FF4 +_08029D66: + ldr r0, _08029DC4 + bl AddWindow + ldr r1, [r6] + ldr r5, _08029DC8 + adds r1, r1, r5 + strb r0, [r1] + ldr r0, _08029DC4 + adds r0, #8 + mov r8, r0 + bl AddWindow + ldr r1, [r6] + ldr r4, _08029DCC + adds r1, r1, r4 + strb r0, [r1] + ldr r0, [r6] + adds r0, r0, r5 + ldrb r0, [r0] + bl ClearWindowTilemap + ldr r0, [r6] + adds r0, r0, r4 + ldrb r0, [r0] + bl ClearWindowTilemap + ldr r0, _08029DC4 + bl sub_08028EA0 + mov r0, r8 + bl sub_08028DA0 + ldr r1, [r6] + ldr r2, _08029DD0 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r0, [r6] + ldr r3, _08029DD4 + adds r0, r0, r3 + strb r7, [r0] + ldr r0, [r6] + ldr r1, _08029DD8 + adds r0, r0, r1 + strb r7, [r0] + b _0802A054 + .align 2, 0 +_08029DC4: .4byte 0x082CB460 +_08029DC8: .4byte 0x00003008 +_08029DCC: .4byte 0x00003009 +_08029DD0: .4byte 0x00003014 +_08029DD4: .4byte 0x00003020 +_08029DD8: .4byte 0x00003024 +_08029DDC: + ldr r3, _08029E84 + mov r8, r3 + adds r0, r2, r3 + ldrb r0, [r0] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r0, [r6] + ldr r7, _08029E88 + adds r0, r0, r7 + ldrb r0, [r0] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r0, [r6] + add r0, r8 + ldrb r0, [r0] + ldr r2, _08029E8C + movs r1, #6 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r4, #0 + str r4, [sp, #8] + movs r1, #1 + movs r3, #8 + bl AddTextPrinterParameterized + ldr r0, [r6] + adds r0, r0, r7 + ldrb r0, [r0] + ldr r2, _08029E90 + movs r3, #2 + mov sb, r3 + str r3, [sp] + movs r1, #0xff + str r1, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #0xc + bl AddTextPrinterParameterized + ldr r0, [r6] + adds r0, r0, r7 + ldrb r0, [r0] + ldr r2, _08029E94 + movs r1, #0x12 + str r1, [sp] + movs r3, #0xff + str r3, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #0xc + bl AddTextPrinterParameterized + ldr r0, [r6] + adds r0, r0, r7 + ldrb r0, [r0] + ldr r2, _08029E98 + mov r1, sb + str r1, [sp] + movs r3, #0xff + str r3, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #2 + bl AddTextPrinterParameterized + ldr r0, [r6] + add r0, r8 + ldrb r0, [r0] + movs r1, #2 + bl CopyWindowToVram + ldr r0, [r6] + adds r0, r0, r7 + ldrb r0, [r0] + movs r1, #2 + bl CopyWindowToVram + ldr r1, [r6] + ldr r0, _08029E9C + adds r1, r1, r0 + b _08029FE8 + .align 2, 0 +_08029E84: .4byte 0x00003008 +_08029E88: .4byte 0x00003009 +_08029E8C: .4byte 0x085CCDBD +_08029E90: .4byte 0x085CAAD8 +_08029E94: .4byte 0x085CAADB +_08029E98: .4byte 0x085C9421 +_08029E9C: .4byte 0x00003014 +_08029EA0: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08029EC2 + ldr r0, [r6] + ldr r1, _08029ECC + adds r0, r0, r1 + ldrb r0, [r0] + bl PutWindowTilemap + ldr r0, [r6] + ldr r2, _08029ED0 + adds r0, r0, r2 + ldrb r0, [r0] + bl PutWindowTilemap +_08029EC2: + movs r0, #0 + bl CopyBgTilemapBufferToVram + b _08029FE2 + .align 2, 0 +_08029ECC: .4byte 0x00003008 +_08029ED0: .4byte 0x00003009 +_08029ED4: + ldr r0, _08029F7C + mov sl, r0 + adds r0, r2, r0 + ldrb r7, [r0] + cmp r7, #0 + bne _08029EE2 + movs r7, #1 +_08029EE2: + ldr r1, _08029F80 + mov r8, r1 + adds r0, r2, r1 + ldrb r0, [r0] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r0, [r6] + add r0, r8 + ldrb r0, [r0] + ldr r2, _08029F84 + movs r3, #2 + mov sb, r3 + str r3, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r4, #0 + str r4, [sp, #8] + movs r1, #1 + movs r3, #0xc + bl AddTextPrinterParameterized + ldr r0, [r6] + add r0, r8 + ldrb r0, [r0] + ldr r2, _08029F88 + movs r1, #0x12 + str r1, [sp] + movs r3, #0xff + str r3, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #0xc + bl AddTextPrinterParameterized + ldr r0, [r6] + add r0, r8 + ldrb r0, [r0] + ldr r2, _08029F8C + subs r1, r7, #1 + lsls r1, r1, #4 + adds r1, #2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #2 + bl AddTextPrinterParameterized + ldr r0, [r6] + add r0, r8 + ldrb r0, [r0] + movs r1, #3 + bl CopyWindowToVram + ldr r0, _08029F90 + ldrh r1, [r0, #0x2e] + movs r4, #1 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08029F94 + movs r0, #5 + bl PlaySE + ldr r0, [r6] + mov r2, sl + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, #0 + bne _08029FE2 + strb r4, [r1] + b _08029FE2 + .align 2, 0 +_08029F7C: .4byte 0x00003020 +_08029F80: .4byte 0x00003009 +_08029F84: .4byte 0x085CAAD8 +_08029F88: .4byte 0x085CAADB +_08029F8C: .4byte 0x085C9421 +_08029F90: .4byte 0x03002360 +_08029F94: + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0 + beq _08029FCC + movs r0, #5 + bl PlaySE + ldr r0, [r6] + add r0, sl + ldrb r2, [r0] + cmp r2, #1 + beq _08029FC2 + cmp r2, #1 + bgt _08029FB6 + cmp r2, #0 + beq _08029FBC + b _0802A054 +_08029FB6: + cmp r2, #2 + beq _08029FC8 + b _0802A054 +_08029FBC: + mov r1, sb + strb r1, [r0] + b _0802A054 +_08029FC2: + mov r2, sb + strb r2, [r0] + b _0802A054 +_08029FC8: + strb r4, [r0] + b _0802A054 +_08029FCC: + mov r0, sb + ands r0, r1 + cmp r0, #0 + beq _0802A054 + movs r0, #5 + bl PlaySE + ldr r0, [r6] + add r0, sl + movs r1, #2 + strb r1, [r0] +_08029FE2: + ldr r1, [r6] + ldr r3, _08029FF0 + adds r1, r1, r3 +_08029FE8: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0802A054 + .align 2, 0 +_08029FF0: .4byte 0x00003014 +_08029FF4: + ldr r0, [r6] + ldr r2, _0802A064 + adds r1, r0, r2 + ldrb r1, [r1] + ldr r3, _0802A068 + adds r0, r0, r3 + strb r1, [r0] + ldr r0, [r6] + ldr r7, _0802A06C + adds r0, r0, r7 + ldrb r0, [r0] + bl ClearWindowTilemap + ldr r0, [r6] + ldr r4, _0802A070 + adds r0, r0, r4 + ldrb r0, [r0] + bl ClearWindowTilemap + ldr r0, [r6] + adds r0, r0, r7 + ldrb r0, [r0] + bl RemoveWindow + ldr r0, [r6] + adds r0, r0, r4 + ldrb r0, [r0] + bl RemoveWindow + movs r0, #0x1e + str r0, [sp] + movs r0, #0x14 + str r0, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, #0 + bl CopyBgTilemapBufferToVram + ldr r0, [r6] + movs r1, #0xc0 + lsls r1, r1, #6 + adds r0, r0, r1 + movs r1, #1 + str r1, [r0] +_0802A054: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0802A064: .4byte 0x00003020 +_0802A068: .4byte 0x00003024 +_0802A06C: .4byte 0x00003008 +_0802A070: .4byte 0x00003009 + thumb_func_end sub_08029D28 + + thumb_func_start sub_0802A074 +sub_0802A074: @ 0x0802A074 + push {r4, r5, r6, lr} + sub sp, #0x10 + ldr r5, _0802A090 + ldr r0, [r5] + ldr r6, _0802A094 + adds r0, r0, r6 + ldrb r4, [r0] + cmp r4, #1 + beq _0802A0CC + cmp r4, #1 + bgt _0802A098 + cmp r4, #0 + beq _0802A0A2 + b _0802A114 + .align 2, 0 +_0802A090: .4byte 0x020229AC +_0802A094: .4byte 0x00003014 +_0802A098: + cmp r4, #2 + beq _0802A0E0 + cmp r4, #3 + beq _0802A0F8 + b _0802A114 +_0802A0A2: + movs r0, #0 + movs r1, #0 + bl ClearDialogWindowAndFrame + ldr r2, _0802A0C8 + str r4, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + movs r0, #3 + str r0, [sp, #0xc] + movs r0, #0 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized2 + b _0802A104 + .align 2, 0 +_0802A0C8: .4byte 0x08277071 +_0802A0CC: + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + ldr r1, [r5] + ldr r0, _0802A0DC + adds r1, r1, r0 + b _0802A108 + .align 2, 0 +_0802A0DC: .4byte 0x00003014 +_0802A0E0: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802A13C + ldr r0, _0802A0F4 + movs r1, #0 + bl CreateTask + b _0802A104 + .align 2, 0 +_0802A0F4: .4byte 0x081535C5 +_0802A0F8: + ldr r0, _0802A110 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802A13C +_0802A104: + ldr r1, [r5] + adds r1, r1, r6 +_0802A108: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0802A13C + .align 2, 0 +_0802A110: .4byte 0x081535C5 +_0802A114: + movs r0, #0x1e + str r0, [sp] + movs r0, #0x14 + str r0, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, #0 + bl CopyBgTilemapBufferToVram + ldr r0, _0802A144 + ldr r0, [r0] + movs r1, #0xc0 + lsls r1, r1, #6 + adds r0, r0, r1 + movs r1, #1 + str r1, [r0] +_0802A13C: + add sp, #0x10 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0802A144: .4byte 0x020229AC + thumb_func_end sub_0802A074 + + thumb_func_start sub_0802A148 +sub_0802A148: @ 0x0802A148 + push {r4, r5, r6, lr} + sub sp, #0xc + ldr r1, _0802A168 + ldr r2, [r1] + ldr r6, _0802A16C + adds r0, r2, r6 + ldrb r0, [r0] + adds r5, r1, #0 + cmp r0, #1 + beq _0802A1A0 + cmp r0, #1 + bgt _0802A170 + cmp r0, #0 + beq _0802A176 + b _0802A214 + .align 2, 0 +_0802A168: .4byte 0x020229AC +_0802A16C: .4byte 0x00003014 +_0802A170: + cmp r0, #2 + beq _0802A1E8 + b _0802A214 +_0802A176: + ldr r4, _0802A198 + adds r0, r4, #0 + bl AddWindow + ldr r1, [r5] + ldr r2, _0802A19C + adds r1, r1, r2 + strb r0, [r1] + ldr r0, [r5] + adds r0, r0, r2 + ldrb r0, [r0] + bl ClearWindowTilemap + adds r0, r4, #0 + bl sub_08028EA0 + b _0802A204 + .align 2, 0 +_0802A198: .4byte 0x082CB478 +_0802A19C: .4byte 0x00003008 +_0802A1A0: + ldr r4, _0802A1DC + adds r0, r2, r4 + ldrb r0, [r0] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r0, [r5] + adds r0, r0, r4 + ldrb r0, [r0] + ldr r2, _0802A1E0 + movs r1, #6 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + movs r3, #4 + bl AddTextPrinterParameterized + ldr r0, [r5] + adds r0, r0, r4 + ldrb r0, [r0] + movs r1, #2 + bl CopyWindowToVram + ldr r1, [r5] + ldr r0, _0802A1E4 + adds r1, r1, r0 + b _0802A208 + .align 2, 0 +_0802A1DC: .4byte 0x00003008 +_0802A1E0: .4byte 0x085CCDEA +_0802A1E4: .4byte 0x00003014 +_0802A1E8: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802A1FE + ldr r0, [r5] + ldr r1, _0802A210 + adds r0, r0, r1 + ldrb r0, [r0] + bl PutWindowTilemap +_0802A1FE: + movs r0, #0 + bl CopyBgTilemapBufferToVram +_0802A204: + ldr r1, [r5] + adds r1, r1, r6 +_0802A208: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0802A220 + .align 2, 0 +_0802A210: .4byte 0x00003008 +_0802A214: + ldr r0, [r5] + movs r1, #0xc0 + lsls r1, r1, #6 + adds r0, r0, r1 + movs r1, #1 + str r1, [r0] +_0802A220: + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_0802A148 + + thumb_func_start sub_0802A228 +sub_0802A228: @ 0x0802A228 + push {r4, r5, lr} + sub sp, #8 + ldr r5, _0802A274 + ldr r0, [r5] + ldr r4, _0802A278 + adds r0, r0, r4 + ldrb r0, [r0] + bl ClearWindowTilemap + ldr r0, [r5] + adds r0, r0, r4 + ldrb r0, [r0] + bl RemoveWindow + movs r0, #0x1e + str r0, [sp] + movs r0, #0x14 + str r0, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, #0 + bl CopyBgTilemapBufferToVram + ldr r0, [r5] + movs r1, #0xc0 + lsls r1, r1, #6 + adds r0, r0, r1 + movs r1, #1 + str r1, [r0] + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0802A274: .4byte 0x020229AC +_0802A278: .4byte 0x00003008 + thumb_func_end sub_0802A228 + + thumb_func_start sub_0802A27C +sub_0802A27C: @ 0x0802A27C + push {r4, r5, r6, r7, lr} + sub sp, #0xc + ldr r0, _0802A29C + ldr r1, [r0] + ldr r7, _0802A2A0 + adds r2, r1, r7 + ldrb r5, [r2] + adds r6, r0, #0 + cmp r5, #1 + beq _0802A304 + cmp r5, #1 + bgt _0802A2A4 + cmp r5, #0 + beq _0802A2AE + b _0802A398 + .align 2, 0 +_0802A29C: .4byte 0x020229AC +_0802A2A0: .4byte 0x00003014 +_0802A2A4: + cmp r5, #2 + beq _0802A34C + cmp r5, #3 + beq _0802A378 + b _0802A398 +_0802A2AE: + ldr r4, _0802A2F4 + adds r0, r4, #0 + bl AddWindow + ldr r1, [r6] + ldr r2, _0802A2F8 + adds r1, r1, r2 + strb r0, [r1] + ldr r0, [r6] + adds r0, r0, r2 + ldrb r0, [r0] + bl ClearWindowTilemap + adds r0, r4, #0 + bl sub_08028EA0 + ldr r1, [r6] + adds r1, r1, r7 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r0, [r6] + ldr r2, _0802A2FC + adds r1, r0, r2 + movs r2, #0 + strh r5, [r1] + ldr r1, _0802A300 + adds r0, r0, r1 + strb r2, [r0] + ldr r0, [r6] + adds r1, #4 + adds r0, r0, r1 + strb r2, [r0] + b _0802A3DE + .align 2, 0 +_0802A2F4: .4byte 0x082CB470 +_0802A2F8: .4byte 0x00003008 +_0802A2FC: .4byte 0x0000301C +_0802A300: .4byte 0x00003020 +_0802A304: + ldr r4, _0802A340 + adds r0, r1, r4 + ldrb r0, [r0] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r0, [r6] + adds r0, r0, r4 + ldrb r0, [r0] + ldr r2, _0802A344 + movs r1, #6 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + movs r3, #2 + bl AddTextPrinterParameterized + ldr r0, [r6] + adds r0, r0, r4 + ldrb r0, [r0] + movs r1, #2 + bl CopyWindowToVram + ldr r1, [r6] + ldr r2, _0802A348 + adds r1, r1, r2 + b _0802A36C + .align 2, 0 +_0802A340: .4byte 0x00003008 +_0802A344: .4byte 0x085CCDCB +_0802A348: .4byte 0x00003014 +_0802A34C: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802A362 + ldr r0, [r6] + ldr r1, _0802A374 + adds r0, r0, r1 + ldrb r0, [r0] + bl PutWindowTilemap +_0802A362: + movs r0, #0 + bl CopyBgTilemapBufferToVram + ldr r1, [r6] + adds r1, r1, r7 +_0802A36C: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0802A3DE + .align 2, 0 +_0802A374: .4byte 0x00003008 +_0802A378: + ldr r0, _0802A394 + adds r1, r1, r0 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x77 + bls _0802A3DE + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + b _0802A3DE + .align 2, 0 +_0802A394: .4byte 0x0000301C +_0802A398: + ldr r0, [r6] + ldr r1, _0802A3E8 + adds r0, r0, r1 + movs r1, #5 + strb r1, [r0] + ldr r0, [r6] + ldr r4, _0802A3EC + adds r0, r0, r4 + ldrb r0, [r0] + bl ClearWindowTilemap + ldr r0, [r6] + adds r0, r0, r4 + ldrb r0, [r0] + bl RemoveWindow + movs r0, #0x1e + str r0, [sp] + movs r0, #0x14 + str r0, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, #0 + bl CopyBgTilemapBufferToVram + ldr r0, [r6] + movs r2, #0xc0 + lsls r2, r2, #6 + adds r0, r0, r2 + movs r1, #1 + str r1, [r0] +_0802A3DE: + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0802A3E8: .4byte 0x00003024 +_0802A3EC: .4byte 0x00003008 + thumb_func_end sub_0802A27C + + thumb_func_start sub_0802A3F0 +sub_0802A3F0: @ 0x0802A3F0 + push {r4, lr} + ldr r4, _0802A414 + ldr r0, [r4] + ldr r1, _0802A418 + adds r0, r0, r1 + ldrb r0, [r0] + bl DestroyTask + ldr r0, [r4] + movs r1, #0xc0 + lsls r1, r1, #6 + adds r0, r0, r1 + movs r1, #1 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802A414: .4byte 0x020229AC +_0802A418: .4byte 0x00003004 + thumb_func_end sub_0802A3F0 + + thumb_func_start sub_0802A41C +sub_0802A41C: @ 0x0802A41C + bx lr + .align 2, 0 + thumb_func_end sub_0802A41C + + thumb_func_start sub_0802A420 +sub_0802A420: @ 0x0802A420 + push {r4, lr} + ldr r2, _0802A444 + ldr r1, [r2] + ldr r3, _0802A448 + adds r1, r1, r3 + movs r3, #0 + strb r3, [r1] + ldr r1, [r2] + movs r4, #0xc0 + lsls r4, r4, #6 + adds r2, r1, r4 + str r3, [r2] + ldr r2, _0802A44C + adds r1, r1, r2 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802A444: .4byte 0x020229AC +_0802A448: .4byte 0x00003014 +_0802A44C: .4byte 0x00003028 + thumb_func_end sub_0802A420 + + thumb_func_start sub_0802A450 +sub_0802A450: @ 0x0802A450 + ldr r0, _0802A45C + ldr r0, [r0] + ldr r1, _0802A460 + adds r0, r0, r1 + ldr r0, [r0] + bx lr + .align 2, 0 +_0802A45C: .4byte 0x020229AC +_0802A460: .4byte 0x00003028 + thumb_func_end sub_0802A450 + + thumb_func_start sub_0802A464 +sub_0802A464: @ 0x0802A464 + push {lr} + ldr r0, _0802A47C + ldr r0, [r0] + movs r1, #0xc0 + lsls r1, r1, #6 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #1 + beq _0802A480 + movs r0, #1 + b _0802A482 + .align 2, 0 +_0802A47C: .4byte 0x020229AC +_0802A480: + movs r0, #0 +_0802A482: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0802A464 + + thumb_func_start sub_0802A488 +sub_0802A488: @ 0x0802A488 + ldr r0, _0802A494 + ldr r0, [r0] + ldr r1, _0802A498 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0802A494: .4byte 0x020229AC +_0802A498: .4byte 0x00003024 + thumb_func_end sub_0802A488 + + thumb_func_start sub_0802A49C +sub_0802A49C: @ 0x0802A49C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + movs r3, #0xc0 + lsls r3, r3, #0x13 + movs r4, #0xc0 + lsls r4, r4, #9 + add r0, sp, #4 + mov r8, r0 + mov r2, sp + movs r6, #0 + ldr r1, _0802A5CC + movs r5, #0x80 + lsls r5, r5, #5 + ldr r7, _0802A5D0 + movs r0, #0x81 + lsls r0, r0, #0x18 + mov ip, r0 +_0802A4C2: + strh r6, [r2] + mov r0, sp + str r0, [r1] + str r3, [r1, #4] + str r7, [r1, #8] + ldr r0, [r1, #8] + adds r3, r3, r5 + subs r4, r4, r5 + cmp r4, r5 + bhi _0802A4C2 + strh r6, [r2] + mov r2, sp + str r2, [r1] + str r3, [r1, #4] + lsrs r0, r4, #1 + mov r2, ip + orrs r0, r2 + str r0, [r1, #8] + ldr r0, [r1, #8] + movs r0, #0xe0 + lsls r0, r0, #0x13 + movs r3, #0x80 + lsls r3, r3, #3 + movs r4, #0 + str r4, [sp, #4] + ldr r2, _0802A5CC + mov r1, r8 + str r1, [r2] + str r0, [r2, #4] + lsrs r0, r3, #2 + movs r1, #0x85 + lsls r1, r1, #0x18 + orrs r0, r1 + str r0, [r2, #8] + ldr r0, [r2, #8] + movs r1, #0xa0 + lsls r1, r1, #0x13 + mov r0, sp + strh r4, [r0] + str r0, [r2] + str r1, [r2, #4] + lsrs r3, r3, #1 + movs r0, #0x81 + lsls r0, r0, #0x18 + orrs r3, r0 + str r3, [r2, #8] + ldr r0, [r2, #8] + movs r0, #0 + movs r1, #0 + bl SetGpuReg + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _0802A5D4 + movs r0, #0 + movs r2, #4 + bl InitBgsFromTemplates + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + bl InitStandardTextBoxWindows + bl sub_08196DF4 + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + ldr r4, _0802A5D8 + ldr r1, [r4] + movs r0, #3 + bl SetBgTilemapBuffer + ldr r1, [r4] + movs r2, #0x80 + lsls r2, r2, #5 + adds r1, r1, r2 + movs r0, #1 + bl SetBgTilemapBuffer + ldr r1, [r4] + movs r0, #0x80 + lsls r0, r0, #6 + adds r1, r1, r0 + movs r0, #2 + bl SetBgTilemapBuffer + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0802A5CC: .4byte 0x040000D4 +_0802A5D0: .4byte 0x81000800 +_0802A5D4: .4byte 0x082CB430 +_0802A5D8: .4byte 0x020229AC + thumb_func_end sub_0802A49C + + thumb_func_start sub_0802A5DC +sub_0802A5DC: @ 0x0802A5DC + push {lr} + sub sp, #4 + ldr r0, _0802A5F8 + ldr r0, [r0] + ldr r2, _0802A5FC + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, #5 + bhi _0802A676 + lsls r0, r0, #2 + ldr r1, _0802A600 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802A5F8: .4byte 0x020229AC +_0802A5FC: .4byte 0x00003018 +_0802A600: .4byte 0x0802A604 +_0802A604: @ jump table + .4byte _0802A61C @ case 0 + .4byte _0802A62C @ case 1 + .4byte _0802A632 @ case 2 + .4byte _0802A640 @ case 3 + .4byte _0802A658 @ case 4 + .4byte _0802A666 @ case 5 +_0802A61C: + ldr r0, _0802A628 + movs r1, #0 + movs r2, #0x40 + bl LoadPalette + b _0802A67E + .align 2, 0 +_0802A628: .4byte 0x082CB67C +_0802A62C: + bl reset_temp_tile_data_buffers + b _0802A67E +_0802A632: + ldr r1, _0802A63C + movs r0, #0 + str r0, [sp] + movs r0, #3 + b _0802A648 + .align 2, 0 +_0802A63C: .4byte 0x082CB910 +_0802A640: + ldr r1, _0802A654 + movs r0, #0 + str r0, [sp] + movs r0, #1 +_0802A648: + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + b _0802A67E + .align 2, 0 +_0802A654: .4byte 0x082CC1A0 +_0802A658: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0802A67E + b _0802A68C +_0802A666: + movs r0, #3 + bl stdpal_get + movs r1, #0xd0 + movs r2, #0x20 + bl LoadPalette + b _0802A67E +_0802A676: + movs r0, #0 + strb r0, [r1] + movs r0, #1 + b _0802A68E +_0802A67E: + ldr r0, _0802A694 + ldr r1, [r0] + ldr r0, _0802A698 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0802A68C: + movs r0, #0 +_0802A68E: + add sp, #4 + pop {r1} + bx r1 + .align 2, 0 +_0802A694: .4byte 0x020229AC +_0802A698: .4byte 0x00003018 + thumb_func_end sub_0802A5DC + diff --git a/asm/dragon.s b/asm/dragon.s new file mode 100644 index 0000000..035b8a8 --- /dev/null +++ b/asm/dragon.s @@ -0,0 +1,880 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_08113808 +sub_08113808: @ 0x08113808 + push {r4, r5, lr} + adds r5, r0, #0 + ldrh r0, [r5, #0x34] + movs r1, #0x34 + ldrsh r3, [r5, r1] + cmp r3, #0 + beq _08113870 + subs r0, #1 + strh r0, [r5, #0x34] + movs r2, #0x2e + ldrsh r0, [r5, r2] + movs r2, #0x30 + ldrsh r1, [r5, r2] + bl Sin + ldr r4, _08113868 + movs r1, #0x38 + ldrsh r2, [r5, r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, 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, r1, r2 + lsls r1, r1, #2 + adds r1, 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, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xff + ble _081138A4 + ldr r2, _0811386C + adds r0, r1, r2 + strh r0, [r5, #0x2e] + b _081138A4 + .align 2, 0 +_08113868: .4byte 0x020205AC +_0811386C: .4byte 0xFFFFFF00 +_08113870: + ldr r2, _081138AC + movs r0, #0x38 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r3, [r0, #0x24] + movs r0, #0x38 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r3, [r0, #0x26] + movs r0, #0x38 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x22] + subs r1, #8 + strh r1, [r0, #0x22] + ldr r0, _081138B0 + str r0, [r5, #0x1c] +_081138A4: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081138AC: .4byte 0x020205AC +_081138B0: .4byte 0x080A6015 + thumb_func_end sub_08113808 + + thumb_func_start sub_081138B4 +sub_081138B4: @ 0x081138B4 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _081138FC + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08113904 + ldr r2, _08113900 + ldrh r0, [r5, #0x20] + ldrh r1, [r2] + subs r0, r0, r1 + strh r0, [r5, #0x20] + ldrh r0, [r2, #6] + rsbs r0, r0, #0 + strh r0, [r2, #6] + ldrh r0, [r2, #8] + rsbs r0, r0, #0 + strh r0, [r2, #8] + adds r1, r2, #0 + b _0811390E + .align 2, 0 +_081138FC: .4byte 0x020380D6 +_08113900: .4byte 0x020380BE +_08113904: + ldr r1, _08113944 + ldrh r0, [r1] + ldrh r2, [r5, #0x20] + adds r0, r0, r2 + strh r0, [r5, #0x20] +_0811390E: + ldrh r0, [r1, #2] + ldrh r2, [r5, #0x22] + adds r0, r0, r2 + strh r0, [r5, #0x22] + ldrh r0, [r1, #4] + strh r0, [r5, #0x2e] + ldrh r0, [r1, #6] + strh r0, [r5, #0x30] + ldrh r0, [r1, #8] + strh r0, [r5, #0x34] + ldrh r0, [r1, #0xa] + strh r0, [r5, #0x38] + adds r2, r5, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08113948 + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _0811394C + str r0, [r5, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08113944: .4byte 0x020380BE +_08113948: .4byte 0x080A6015 +_0811394C: .4byte 0x080A5FA5 + thumb_func_end sub_081138B4 + + thumb_func_start sub_08113950 +sub_08113950: @ 0x08113950 + push {r4, r5, lr} + adds r5, r0, #0 + bl SetSpriteCoordsToAnimAttackerCoords + ldr r4, _081139A8 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x32] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x36] + ldr r0, _081139AC + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081139B4 + ldr r2, _081139B0 + ldrh r0, [r5, #0x20] + ldrh r1, [r2, #2] + subs r0, r0, r1 + strh r0, [r5, #0x20] + ldrh r0, [r5, #0x22] + adds r1, r1, r0 + strh r1, [r5, #0x22] + ldrh r0, [r5, #0x32] + ldrh r1, [r2, #4] + subs r0, r0, r1 + strh r0, [r5, #0x32] + ldrh r0, [r2, #6] + ldrh r1, [r5, #0x36] + adds r0, r0, r1 + strh r0, [r5, #0x36] + b _081139DE + .align 2, 0 +_081139A8: .4byte 0x020380D7 +_081139AC: .4byte 0x020380D6 +_081139B0: .4byte 0x020380BE +_081139B4: + ldr r1, _081139F8 + ldrh r0, [r1] + ldrh r2, [r5, #0x20] + adds r0, r0, r2 + strh r0, [r5, #0x20] + ldrh r0, [r1, #2] + ldrh r2, [r5, #0x22] + adds r0, r0, r2 + strh r0, [r5, #0x22] + ldrh r0, [r1, #4] + ldrh r2, [r5, #0x32] + adds r0, r0, r2 + strh r0, [r5, #0x32] + ldrh r0, [r1, #6] + ldrh r1, [r5, #0x36] + adds r0, r0, r1 + strh r0, [r5, #0x36] + adds r0, r5, #0 + movs r1, #1 + bl StartSpriteAnim +_081139DE: + ldr r0, _081139F8 + ldrh r0, [r0, #8] + strh r0, [r5, #0x2e] + ldr r0, _081139FC + str r0, [r5, #0x1c] + ldr r1, _08113A00 + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081139F8: .4byte 0x020380BE +_081139FC: .4byte 0x080A67B5 +_08113A00: .4byte 0x080A6015 + thumb_func_end sub_08113950 + + thumb_func_start sub_08113A04 +sub_08113A04: @ 0x08113A04 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _08113A18 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08113A20 + ldr r4, _08113A1C + b _08113A22 + .align 2, 0 +_08113A18: .4byte 0x020380BE +_08113A1C: .4byte 0x020380D6 +_08113A20: + ldr r4, _08113A64 +_08113A22: + ldrb r0, [r4] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + ldr r4, _08113A68 + movs r0, #2 + ldrsh r1, [r4, r0] + adds r0, r5, #0 + bl SetAnimSpriteInitialXOffset + ldrh r0, [r4, #4] + ldrh r1, [r5, #0x22] + adds r0, r0, r1 + strh r0, [r5, #0x22] + ldr r0, _08113A6C + str r0, [r5, #0x1c] + ldr r1, _08113A70 + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08113A64: .4byte 0x020380D7 +_08113A68: .4byte 0x020380BE +_08113A6C: .4byte 0x080A60A1 +_08113A70: .4byte 0x080A6015 + thumb_func_end sub_08113A04 + + thumb_func_start sub_08113A74 +sub_08113A74: @ 0x08113A74 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08113A9C + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08113A8E + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAffineAnim +_08113A8E: + adds r0, r4, #0 + bl sub_08113950 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08113A9C: .4byte 0x020380D6 + thumb_func_end sub_08113A74 + + thumb_func_start sub_08113AA0 +sub_08113AA0: @ 0x08113AA0 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldr r4, _08113AF4 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r5, #0 + strh r0, [r6, #0x20] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r6, #0x22] + strh r5, [r6, #0x36] + movs r0, #1 + strh r0, [r6, #0x38] + ldr r0, _08113AF8 + ldrh r0, [r0] + strh r0, [r6, #0x3a] + ldr r4, _08113AFC + ldrb r0, [r4] + movs r1, #0 + bl GetBattlerSpriteCoordAttr + lsls r7, r0, #0x10 + lsrs r5, r7, #0x10 + ldrb r0, [r4] + movs r1, #1 + bl GetBattlerSpriteCoordAttr + lsls r1, r0, #0x10 + lsrs r0, r1, #0x10 + cmp r5, r0 + bls _08113B00 + lsrs r0, r7, #0x11 + b _08113B02 + .align 2, 0 +_08113AF4: .4byte 0x020380D6 +_08113AF8: .4byte 0x020380BE +_08113AFC: .4byte 0x02023EAF +_08113B00: + lsrs r0, r1, #0x11 +_08113B02: + 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, _08113B2C + str r0, [r6, #0x1c] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08113B2C: .4byte 0x08113B31 + thumb_func_end sub_08113AA0 + + thumb_func_start sub_08113B30 +sub_08113B30: @ 0x08113B30 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r5, [r4, r0] + cmp r5, #0 + beq _08113B42 + cmp r5, #1 + beq _08113BAE + b _08113C32 +_08113B42: + ldrh r0, [r4, #0x3a] + ldrh r1, [r4, #0x38] + subs r0, 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, #1 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #5 + ble _08113B94 + strh r5, [r4, #0x36] + ldrh r1, [r4, #0x38] + movs r2, #0x38 + ldrsh r0, [r4, r2] + cmp r0, #0xf + bgt _08113B94 + adds r0, r1, #1 + strh r0, [r4, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xf + ble _08113B94 + movs r0, #0x10 + strh r0, [r4, #0x38] +_08113B94: + ldrh r0, [r4, #0x34] + adds r0, #1 + strh r0, [r4, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x3c + ble _08113C32 + movs r0, #0 + strh r0, [r4, #0x34] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + b _08113C32 +_08113BAE: + ldrh r0, [r4, #0x3a] + ldrh r1, [r4, #0x38] + subs r0, 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 _08113BD6 + adds r0, r1, #0 + adds r0, #8 + strh r0, [r4, #0x3c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x95 + ble _08113BD6 + movs r0, #0x96 + strh r0, [r4, #0x3c] +_08113BD6: + 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, #1 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #5 + ble _08113C1E + movs r0, #0 + strh r0, [r4, #0x36] + ldrh r1, [r4, #0x38] + movs r2, #0x38 + ldrsh r0, [r4, r2] + cmp r0, #0xf + bgt _08113C1E + adds r0, r1, #1 + strh r0, [r4, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xf + ble _08113C1E + movs r0, #0x10 + strh r0, [r4, #0x38] +_08113C1E: + ldrh r0, [r4, #0x34] + adds r0, #1 + strh r0, [r4, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x14 + ble _08113C32 + adds r0, r4, #0 + bl DestroyAnimSprite +_08113C32: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_08113B30 + + thumb_func_start sub_08113C38 +sub_08113C38: @ 0x08113C38 + push {r4, r5, r6, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _08113C64 + adds r4, r1, r0 + ldr r0, _08113C68 + ldrb r0, [r0] + bl GetBattlerSpriteBGPriorityRank + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08113C74 + ldr r0, _08113C6C + str r0, [sp] + ldr r0, _08113C70 + b _08113C7A + .align 2, 0 +_08113C64: .4byte 0x03005B60 +_08113C68: .4byte 0x020380D6 +_08113C6C: .4byte 0x04000014 +_08113C70: .4byte 0x02022ACC +_08113C74: + ldr r0, _08113CF0 + str r0, [sp] + ldr r0, _08113CF4 +_08113C7A: + ldrh r0, [r0] + strh r0, [r4, #0xc] + ldr r0, _08113CF8 + str r0, [sp, #4] + mov r1, sp + movs r5, #0 + movs r0, #1 + strb r0, [r1, #8] + mov r0, sp + strb r5, [r0, #9] + ldr r0, _08113CFC + ldrb r0, [r0] + bl GetBattlerYCoordWithElevation + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + subs r1, #0x20 + strh r1, [r4, #0xe] + adds r0, #0x20 + strh r0, [r4, #0x10] + cmp r1, #0 + bge _08113CAA + strh r5, [r4, #0xe] +_08113CAA: + ldrh r3, [r4, #0xe] + movs r1, #0x10 + ldrsh r0, [r4, r1] + cmp r3, r0 + bgt _08113CD8 + ldr r5, _08113D00 + movs r0, #0xf0 + lsls r0, r0, #3 + adds r6, r5, r0 +_08113CBC: + lsls r1, r3, #1 + adds r2, r1, r5 + ldrh r0, [r4, #0xc] + strh r0, [r2] + adds r1, r1, r6 + ldrh r0, [r4, #0xc] + strh r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + movs r1, #0x10 + ldrsh r0, [r4, r1] + cmp r3, r0 + ble _08113CBC +_08113CD8: + ldr r0, [sp] + ldr r1, [sp, #4] + ldr r2, [sp, #8] + bl ScanlineEffect_SetParams + ldr r0, _08113D04 + str r0, [r4] + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08113CF0: .4byte 0x04000018 +_08113CF4: .4byte 0x02022AD0 +_08113CF8: .4byte 0xA2600001 +_08113CFC: .4byte 0x020380D6 +_08113D00: .4byte 0x020388C8 +_08113D04: .4byte 0x08113D09 + thumb_func_end sub_08113C38 + + thumb_func_start sub_08113D08 +sub_08113D08: @ 0x08113D08 + push {lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #3 + ldr r1, _08113D2C + adds r2, r0, r1 + movs r1, #8 + ldrsh r0, [r2, r1] + cmp r0, #4 + bhi _08113DBE + lsls r0, r0, #2 + ldr r1, _08113D30 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08113D2C: .4byte 0x03005B60 +_08113D30: .4byte 0x08113D34 +_08113D34: @ jump table + .4byte _08113D48 @ case 0 + .4byte _08113D6A @ case 1 + .4byte _08113D7A @ case 2 + .4byte _08113DA6 @ case 3 + .4byte _08113DB8 @ case 4 +_08113D48: + ldrh r0, [r2, #0x16] + adds r0, #1 + strh r0, [r2, #0x16] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _08113D9E + movs r0, #0 + strh r0, [r2, #0x16] + ldrh r0, [r2, #0x14] + adds r0, #1 + strh r0, [r2, #0x14] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + bne _08113D9E + b _08113D98 +_08113D6A: + ldrh r0, [r2, #0xa] + adds r0, #1 + strh r0, [r2, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x3c + ble _08113D9E + b _08113D98 +_08113D7A: + ldrh r0, [r2, #0x16] + adds r0, #1 + strh r0, [r2, #0x16] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _08113D9E + movs r0, #0 + strh r0, [r2, #0x16] + ldrh r0, [r2, #0x14] + subs r0, #1 + strh r0, [r2, #0x14] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08113D9E +_08113D98: + ldrh r0, [r2, #8] + adds r0, #1 + strh r0, [r2, #8] +_08113D9E: + adds r0, r2, #0 + bl sub_08113DC4 + b _08113DBE +_08113DA6: + ldr r1, _08113DB4 + movs r0, #3 + strb r0, [r1, #0x15] + ldrh r0, [r2, #8] + adds r0, #1 + strh r0, [r2, #8] + b _08113DBE + .align 2, 0 +_08113DB4: .4byte 0x020397C8 +_08113DB8: + adds r0, r3, #0 + bl DestroyAnimVisualTask +_08113DBE: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08113D08 + + thumb_func_start sub_08113DC4 +sub_08113DC4: @ 0x08113DC4 + push {r4, r5, r6, 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 _08113E1A + ldr r7, _08113E30 + mov ip, r7 + ldr r0, _08113E34 + mov r8, r0 + ldr r6, _08113E38 +_08113DE2: + lsls r2, r4, #1 + ldrb r1, [r6, #0x14] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #7 + adds r2, r2, r0 + add r2, ip + lsls r0, r3, #1 + add r0, r8 + movs r7, #0 + ldrsh r1, [r0, r7] + movs r7, #0x14 + ldrsh r0, [r5, r7] + muls r0, r1, r0 + asrs r0, r0, #7 + ldrh r1, [r5, #0xc] + adds r0, r0, r1 + strh r0, [r2] + adds r3, #8 + movs r0, #0xff + ands r3, r0 + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r7, #0x10 + ldrsh r0, [r5, r7] + cmp r4, r0 + ble _08113DE2 +_08113E1A: + ldrh r0, [r5, #0x12] + adds r0, #9 + movs r1, #0xff + ands r0, r1 + strh r0, [r5, #0x12] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08113E30: .4byte 0x020388C8 +_08113E34: .4byte 0x082FA8CC +_08113E38: .4byte 0x020397C8 + thumb_func_end sub_08113DC4 + + thumb_func_start sub_08113E3C +sub_08113E3C: @ 0x08113E3C + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r4, r0, #0 + ldr r5, _08113EDC + movs r0, #4 + ldrsh r1, [r5, r0] + lsls r0, r1, #1 + adds r0, r0, r1 + movs r1, #5 + bl __divsi3 + adds r6, r0, #0 + ldr r1, _08113EE0 + mov r8, r1 + ldrb r0, [r1] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x20] + mov r2, r8 + ldrb r0, [r2] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r3, [r5, #8] + adds r0, r0, r3 + strh r0, [r4, #0x22] + movs r1, #2 + ldrsh r0, [r5, r1] + movs r2, #4 + ldrsh r1, [r5, r2] + bl Cos + strh r0, [r4, #0x30] + movs r3, #2 + ldrsh r0, [r5, r3] + lsls r6, r6, #0x10 + asrs r6, r6, #0x10 + adds r1, r6, #0 + bl Sin + strh r0, [r4, #0x32] + ldrh r1, [r4, #0x30] + ldrh r2, [r5] + adds r3, r2, #0 + muls r3, r1, r3 + adds r1, r3, #0 + ldrh r3, [r4, #0x20] + adds r1, r1, r3 + strh r1, [r4, #0x20] + adds r1, r2, #0 + muls r1, r0, r1 + adds r0, r1, #0 + ldrh r2, [r4, #0x22] + adds r0, r0, r2 + strh r0, [r4, #0x22] + ldrh r0, [r5, #6] + strh r0, [r4, #0x34] + ldr r0, _08113EE4 + str r0, [r4, #0x1c] + adds r4, #0x2e + ldr r2, _08113EE8 + movs r1, #6 +_08113EC4: + ldrh r0, [r4] + strh r0, [r2] + adds r4, #2 + adds r2, #2 + subs r1, #1 + cmp r1, #0 + bge _08113EC4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08113EDC: .4byte 0x020380BE +_08113EE0: .4byte 0x020380D6 +_08113EE4: .4byte 0x08113EED +_08113EE8: .4byte 0x02039DCC + thumb_func_end sub_08113E3C + diff --git a/asm/dynamic_placeholder_text_util.s b/asm/dynamic_placeholder_text_util.s new file mode 100644 index 0000000..693e2dd --- /dev/null +++ b/asm/dynamic_placeholder_text_util.s @@ -0,0 +1,100 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start DynamicPlaceholderTextUtil_Reset +DynamicPlaceholderTextUtil_Reset: @ 0x081AF8C8 + push {lr} + ldr r1, _081AF8E0 + movs r2, #0 + adds r0, r1, #0 + adds r0, #0x1c +_081AF8D2: + str r2, [r0] + subs r0, #4 + cmp r0, r1 + bge _081AF8D2 + pop {r0} + bx r0 + .align 2, 0 +_081AF8E0: .4byte 0x0203CB68 + thumb_func_end DynamicPlaceholderTextUtil_Reset + + thumb_func_start DynamicPlaceholderTextUtil_SetPlaceholderPtr +DynamicPlaceholderTextUtil_SetPlaceholderPtr: @ 0x081AF8E4 + push {lr} + adds r2, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #7 + bhi _081AF8F8 + ldr r1, _081AF8FC + lsls r0, r0, #2 + adds r0, r0, r1 + str r2, [r0] +_081AF8F8: + pop {r0} + bx r0 + .align 2, 0 +_081AF8FC: .4byte 0x0203CB68 + thumb_func_end DynamicPlaceholderTextUtil_SetPlaceholderPtr + + thumb_func_start DynamicPlaceholderTextUtil_ExpandPlaceholders +DynamicPlaceholderTextUtil_ExpandPlaceholders: @ 0x081AF900 + push {r4, r5, lr} + adds r2, r0, #0 + adds r4, r1, #0 + ldrb r1, [r4] + adds r0, r1, #0 + cmp r0, #0xff + beq _081AF940 + ldr r5, _081AF91C +_081AF910: + cmp r1, #0xf7 + beq _081AF920 + strb r1, [r2] + adds r4, #1 + adds r2, #1 + b _081AF938 + .align 2, 0 +_081AF91C: .4byte 0x0203CB68 +_081AF920: + adds r4, #1 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + cmp r1, #0 + beq _081AF936 + adds r0, r2, #0 + bl StringCopy + adds r2, r0, #0 +_081AF936: + adds r4, #1 +_081AF938: + ldrb r1, [r4] + adds r0, r1, #0 + cmp r0, #0xff + bne _081AF910 +_081AF940: + movs r0, #0xff + strb r0, [r2] + adds r0, r2, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end DynamicPlaceholderTextUtil_ExpandPlaceholders + + thumb_func_start DynamicPlaceholderTextUtil_GetPlaceholderPtr +DynamicPlaceholderTextUtil_GetPlaceholderPtr: @ 0x081AF94C + lsls r0, r0, #0x18 + ldr r1, _081AF958 + lsrs r0, r0, #0x16 + adds r0, r0, r1 + ldr r0, [r0] + bx lr + .align 2, 0 +_081AF958: .4byte 0x0203CB68 + thumb_func_end DynamicPlaceholderTextUtil_GetPlaceholderPtr + diff --git a/asm/easy_chat.s b/asm/easy_chat.s new file mode 100644 index 0000000..d2dd1ae --- /dev/null +++ b/asm/easy_chat.s @@ -0,0 +1,11329 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start DoEasyChatScreen +DoEasyChatScreen: @ 0x0811AA5C + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + adds r6, r0, #0 + mov r8, r1 + mov sb, r2 + adds r5, r3, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + bl ResetTasks + ldr r0, _0811AABC + movs r1, #0 + bl CreateTask + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _0811AAC0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r6, [r0, #0xa] + strh r5, [r0, #0x16] + adds r0, r4, #0 + movs r1, #2 + mov r2, r8 + bl SetWordTaskArg + adds r0, r4, #0 + movs r1, #4 + mov r2, sb + bl SetWordTaskArg + ldr r0, _0811AAC4 + bl SetMainCallback2 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0811AABC: .4byte 0x0811AB11 +_0811AAC0: .4byte 0x03005B60 +_0811AAC4: .4byte 0x0811AAC9 + thumb_func_end DoEasyChatScreen + + thumb_func_start MainCallback_EasyChatScreen +MainCallback_EasyChatScreen: @ 0x0811AAC8 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end MainCallback_EasyChatScreen + + thumb_func_start VBlankCallback_EasyChatScreen +VBlankCallback_EasyChatScreen: @ 0x0811AAE0 + push {lr} + bl TransferPlttBuffer + bl LoadOam + bl ProcessSpriteCopyRequests + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end VBlankCallback_EasyChatScreen + + thumb_func_start sub_0811AAF4 +sub_0811AAF4: @ 0x0811AAF4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _0811AB0C + lsls r2, r0, #2 + adds r2, r2, r0 + lsls r2, r2, #3 + adds r2, r2, r3 + str r1, [r2] + movs r0, #0 + strh r0, [r2, #8] + bx lr + .align 2, 0 +_0811AB0C: .4byte 0x03005B60 + thumb_func_end sub_0811AAF4 + + thumb_func_start sub_0811AB10 +sub_0811AB10: @ 0x0811AB10 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl IsUpdateLinkStateCBActive + cmp r0, #0 + bne _0811AB2C +_0811AB1E: + adds r0, r4, #0 + bl sub_0811AC78 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811AB1E + b _0811AB3A +_0811AB2C: + adds r0, r4, #0 + bl sub_0811AC78 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0811AB42 +_0811AB3A: + ldr r1, _0811AB48 + adds r0, r4, #0 + bl sub_0811AAF4 +_0811AB42: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811AB48: .4byte 0x0811AB4D + thumb_func_end sub_0811AB10 + + thumb_func_start sub_0811AB4C +sub_0811AB4C: @ 0x0811AB4C + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _0811AB74 + adds r5, r0, r1 + movs r1, #0 + ldrsh r0, [r5, r1] + cmp r0, #5 + bls _0811AB68 + b _0811AC6C +_0811AB68: + lsls r0, r0, #2 + ldr r1, _0811AB78 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0811AB74: .4byte 0x03005B68 +_0811AB78: .4byte 0x0811AB7C +_0811AB7C: @ jump table + .4byte _0811AB94 @ case 0 + .4byte _0811ABC0 @ case 1 + .4byte _0811AC1C @ case 2 + .4byte _0811AC24 @ case 3 + .4byte _0811AC3C @ case 4 + .4byte _0811AC5C @ case 5 +_0811AB94: + ldr r0, _0811ABBC + bl SetVBlankCallback + movs r4, #1 + rsbs r4, r4, #0 + adds r0, r4, #0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + movs r0, #0 + str r0, [sp] + adds r0, r4, #0 + adds r1, r4, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + movs r0, #5 + b _0811AC6A + .align 2, 0 +_0811ABBC: .4byte 0x0811AAE1 +_0811ABC0: + bl sub_0811B2EC + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r6, r4, #0 + adds r0, r4, #0 + bl sub_0811B0DC + cmp r0, #0 + beq _0811ABEE + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #2 + rsbs r1, r1, #0 + movs r2, #0 + str r2, [sp] + movs r3, #0x10 + bl BeginNormalPaletteFade + movs r0, #3 + strh r0, [r5] + strh r4, [r5, #0xc] + b _0811AC6C +_0811ABEE: + cmp r4, #0x18 + bne _0811AC06 + movs r1, #1 + rsbs r1, r1, #0 + str r0, [sp] + adds r0, r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + movs r0, #4 + b _0811AC6A +_0811AC06: + cmp r6, #0 + beq _0811AC6C + movs r0, #5 + bl PlaySE + adds r0, r6, #0 + bl sub_0811CA18 + ldrh r0, [r5] + adds r0, #1 + b _0811AC6A +_0811AC1C: + bl sub_0811CA30 + lsls r0, r0, #0x18 + b _0811AC64 +_0811AC24: + ldr r0, _0811AC38 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0811AC6C + ldrh r0, [r5, #0xc] + bl sub_0811B0F4 + b _0811AC6C + .align 2, 0 +_0811AC38: .4byte 0x02037C74 +_0811AC3C: + ldr r0, _0811AC58 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0811AC6C + adds r0, r2, #0 + movs r1, #4 + bl GetWordTaskArg + bl sub_0811AD20 + b _0811AC6C + .align 2, 0 +_0811AC58: .4byte 0x02037C74 +_0811AC5C: + ldr r0, _0811AC74 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 +_0811AC64: + cmp r0, #0 + bne _0811AC6C + movs r0, #1 +_0811AC6A: + strh r0, [r5] +_0811AC6C: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0811AC74: .4byte 0x02037C74 + thumb_func_end sub_0811AB4C + + thumb_func_start sub_0811AC78 +sub_0811AC78: @ 0x0811AC78 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _0811AC9C + adds r6, r0, r1 + movs r1, #0 + ldrsh r0, [r6, r1] + cmp r0, #4 + bhi _0811AD0C + lsls r0, r0, #2 + ldr r1, _0811ACA0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0811AC9C: .4byte 0x03005B68 +_0811ACA0: .4byte 0x0811ACA4 +_0811ACA4: @ jump table + .4byte _0811ACB8 @ case 0 + .4byte _0811ACCC @ case 1 + .4byte _0811ACD2 @ case 2 + .4byte _0811ACE8 @ case 3 + .4byte _0811AD00 @ case 4 +_0811ACB8: + movs r0, #0 + bl SetVBlankCallback + bl ResetSpriteData + bl FreeAllSpritePalettes + bl ResetPaletteFade + b _0811AD10 +_0811ACCC: + bl sub_0811F7E8 + b _0811ACEC +_0811ACD2: + ldrb r4, [r6, #2] + adds r0, r5, #0 + movs r1, #2 + bl GetWordTaskArg + adds r1, r0, #0 + ldrb r2, [r6, #0xe] + adds r0, r4, #0 + bl EasyChat_AllocateResources + b _0811ACEC +_0811ACE8: + bl sub_0811C850 +_0811ACEC: + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811AD10 + adds r0, r5, #0 + movs r1, #4 + bl GetWordTaskArg + bl sub_0811AD20 + b _0811AD10 +_0811AD00: + bl sub_0811C868 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0811AD10 + b _0811AD16 +_0811AD0C: + movs r0, #0 + b _0811AD18 +_0811AD10: + ldrh r0, [r6] + adds r0, #1 + strh r0, [r6] +_0811AD16: + movs r0, #1 +_0811AD18: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811AC78 + + thumb_func_start sub_0811AD20 +sub_0811AD20: @ 0x0811AD20 + push {r4, lr} + adds r4, r0, #0 + bl sub_0811C9FC + bl EasyChat_FreeResources + bl sub_0811F814 + bl FreeAllWindowBuffers + adds r0, r4, #0 + bl SetMainCallback2 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0811AD20 + + thumb_func_start ShowEasyChatScreen +ShowEasyChatScreen: @ 0x0811AD40 + push {r4, r5, lr} + movs r5, #3 + ldr r0, _0811AD58 + ldrh r0, [r0] + cmp r0, #0x14 + bls _0811AD4E + b _0811B024 +_0811AD4E: + lsls r0, r0, #2 + ldr r1, _0811AD5C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0811AD58: .4byte 0x02037280 +_0811AD5C: .4byte 0x0811AD60 +_0811AD60: @ jump table + .4byte _0811ADB4 @ case 0 + .4byte _0811ADC8 @ case 1 + .4byte _0811ADDC @ case 2 + .4byte _0811ADF0 @ case 3 + .4byte _0811AE04 @ case 4 + .4byte _0811AE54 @ case 5 + .4byte _0811AE28 @ case 6 + .4byte _0811AE80 @ case 7 + .4byte _0811AEB4 @ case 8 + .4byte _0811AED8 @ case 9 + .4byte _0811AF04 @ case 10 + .4byte _0811AF24 @ case 11 + .4byte _0811AF58 @ case 12 + .4byte _0811AF7C @ case 13 + .4byte _0811AF8C @ case 14 + .4byte _0811AFC0 @ case 15 + .4byte _0811B024 @ case 16 + .4byte _0811AFD4 @ case 17 + .4byte _0811AFE8 @ case 18 + .4byte _0811AFFC @ case 19 + .4byte _0811B00C @ case 20 +_0811ADB4: + ldr r0, _0811ADC0 + ldr r0, [r0] + ldr r1, _0811ADC4 + adds r4, r0, r1 + b _0811B012 + .align 2, 0 +_0811ADC0: .4byte 0x03005AEC +_0811ADC4: .4byte 0x00002BB0 +_0811ADC8: + ldr r0, _0811ADD4 + ldr r0, [r0] + ldr r2, _0811ADD8 + adds r4, r0, r2 + b _0811B012 + .align 2, 0 +_0811ADD4: .4byte 0x03005AEC +_0811ADD8: .4byte 0x00002BBC +_0811ADDC: + ldr r0, _0811ADE8 + ldr r0, [r0] + ldr r3, _0811ADEC + adds r4, r0, r3 + b _0811B012 + .align 2, 0 +_0811ADE8: .4byte 0x03005AEC +_0811ADEC: .4byte 0x00002BC8 +_0811ADF0: + ldr r0, _0811ADFC + ldr r0, [r0] + ldr r1, _0811AE00 + adds r4, r0, r1 + b _0811B012 + .align 2, 0 +_0811ADFC: .4byte 0x03005AEC +_0811AE00: .4byte 0x00002BD4 +_0811AE04: + ldr r2, _0811AE1C + ldr r0, _0811AE20 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r3, _0811AE24 + adds r0, r0, r3 + ldr r1, [r2] + adds r4, r1, r0 + b _0811B012 + .align 2, 0 +_0811AE1C: .4byte 0x03005AEC +_0811AE20: .4byte 0x02037282 +_0811AE24: .4byte 0x00002BE0 +_0811AE28: + ldr r0, _0811AE48 + ldr r0, [r0] + ldr r2, _0811AE4C + adds r1, r0, r2 + ldr r3, _0811AE50 + adds r2, r0, r3 + movs r3, #5 +_0811AE36: + ldrh r0, [r2] + strh r0, [r2, #0xc] + adds r2, #2 + subs r3, #1 + cmp r3, #0 + bge _0811AE36 + adds r4, r1, #0 + b _0811B012 + .align 2, 0 +_0811AE48: .4byte 0x03005AEC +_0811AE4C: .4byte 0x00002E36 +_0811AE50: .4byte 0x00002E2A +_0811AE54: + ldr r2, _0811AE70 + ldr r0, _0811AE74 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, [r2] + adds r0, r0, r1 + ldr r1, _0811AE78 + adds r4, r0, r1 + ldr r0, _0811AE7C + ldrb r5, [r0] + b _0811B012 + .align 2, 0 +_0811AE70: .4byte 0x03005AEC +_0811AE74: .4byte 0x02037282 +_0811AE78: .4byte 0x000027D0 +_0811AE7C: .4byte 0x02037284 +_0811AE80: + ldr r2, _0811AEA4 + ldr r0, _0811AEA8 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r3, _0811AEAC + adds r0, r0, r3 + ldr r1, [r2] + adds r1, r1, r0 + ldr r0, _0811AEB0 + ldrh r0, [r0] + lsls r0, r0, #1 + adds r0, #0x1c + adds r4, r1, r0 + movs r5, #1 + b _0811B012 + .align 2, 0 +_0811AEA4: .4byte 0x03005AEC +_0811AEA8: .4byte 0x02037282 +_0811AEAC: .4byte 0x000027CC +_0811AEB0: .4byte 0x02037284 +_0811AEB4: + ldr r2, _0811AECC + ldr r0, _0811AED0 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, [r2] + adds r0, r0, r1 + ldr r1, _0811AED4 + adds r4, r0, r1 + movs r5, #0 + b _0811B012 + .align 2, 0 +_0811AECC: .4byte 0x03005AEC +_0811AED0: .4byte 0x02037282 +_0811AED4: .4byte 0x000027CE +_0811AED8: + ldr r4, _0811AEF4 + ldr r1, _0811AEF8 + ldr r0, [r1] + ldr r2, _0811AEFC + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r4] + ldr r0, [r1] + ldr r3, _0811AF00 + adds r0, r0, r3 + ldrh r0, [r0] + strh r0, [r4, #2] + b _0811B012 + .align 2, 0 +_0811AEF4: .4byte 0x02021C68 +_0811AEF8: .4byte 0x03005AEC +_0811AEFC: .4byte 0x00002E6C +_0811AF00: .4byte 0x00002E6E +_0811AF04: + ldr r0, _0811AF18 + ldr r0, [r0] + ldr r1, _0811AF1C + adds r4, r0, r1 + ldr r2, _0811AF20 + adds r0, r2, #0 + strh r0, [r4] + movs r5, #1 + b _0811B012 + .align 2, 0 +_0811AF18: .4byte 0x03005AEC +_0811AF1C: .4byte 0x00002BAA +_0811AF20: .4byte 0x0000FFFF +_0811AF24: + ldr r2, _0811AF48 + ldr r0, _0811AF4C + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r3, _0811AF50 + adds r0, r0, r3 + ldr r1, [r2] + adds r1, r1, r0 + ldr r0, _0811AF54 + ldrh r0, [r0] + lsls r0, r0, #1 + adds r0, #4 + adds r4, r1, r0 + movs r5, #0 + b _0811B012 + .align 2, 0 +_0811AF48: .4byte 0x03005AEC +_0811AF4C: .4byte 0x02037282 +_0811AF50: .4byte 0x000027CC +_0811AF54: .4byte 0x02037284 +_0811AF58: + ldr r2, _0811AF70 + ldr r0, _0811AF74 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, [r2] + adds r0, r0, r1 + ldr r1, _0811AF78 + adds r4, r0, r1 + movs r5, #1 + b _0811B012 + .align 2, 0 +_0811AF70: .4byte 0x03005AEC +_0811AF74: .4byte 0x02037282 +_0811AF78: .4byte 0x000027E4 +_0811AF7C: + ldr r4, _0811AF88 + adds r0, r4, #0 + movs r1, #2 + bl InitializeEasyChatWordArray + b _0811B012 + .align 2, 0 +_0811AF88: .4byte 0x02021C68 +_0811AF8C: + ldr r2, _0811AFB0 + ldr r0, _0811AFB4 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r3, _0811AFB8 + adds r0, r0, r3 + ldr r1, [r2] + adds r1, r1, r0 + adds r4, r1, #0 + adds r4, #0x14 + ldr r2, _0811AFBC + adds r0, r2, #0 + strh r0, [r1, #0x14] + movs r5, #2 + b _0811B012 + .align 2, 0 +_0811AFB0: .4byte 0x03005AEC +_0811AFB4: .4byte 0x02037282 +_0811AFB8: .4byte 0x000027CC +_0811AFBC: .4byte 0x0000FFFF +_0811AFC0: + ldr r0, _0811AFCC + ldr r0, [r0] + ldr r3, _0811AFD0 + adds r4, r0, r3 + b _0811B012 + .align 2, 0 +_0811AFCC: .4byte 0x03005AEC +_0811AFD0: .4byte 0x00003B6E +_0811AFD4: + ldr r0, _0811AFE0 + ldr r0, [r0] + ldr r1, _0811AFE4 + adds r4, r0, r1 + b _0811B012 + .align 2, 0 +_0811AFE0: .4byte 0x03005AEC +_0811AFE4: .4byte 0x00003B5A +_0811AFE8: + ldr r0, _0811AFF4 + ldr r0, [r0] + ldr r2, _0811AFF8 + adds r4, r0, r2 + b _0811B012 + .align 2, 0 +_0811AFF4: .4byte 0x03005AEC +_0811AFF8: .4byte 0x00003B6C +_0811AFFC: + ldr r0, _0811B008 + ldr r0, [r0] + movs r3, #0x82 + lsls r3, r3, #1 + adds r4, r0, r3 + b _0811B012 + .align 2, 0 +_0811B008: .4byte 0x03005AF0 +_0811B00C: + bl sub_0801AB30 + adds r4, r0, #0 +_0811B012: + bl CleanupOverworldWindowsAndTilemaps + ldr r0, _0811B02C + ldrb r0, [r0] + ldr r2, _0811B030 + adds r1, r4, #0 + adds r3, r5, #0 + bl DoEasyChatScreen +_0811B024: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0811B02C: .4byte 0x02037280 +_0811B030: .4byte 0x08085B19 + thumb_func_end ShowEasyChatScreen + + thumb_func_start sub_0811B034 +sub_0811B034: @ 0x0811B034 + push {lr} + bl UpdatePaletteFade + ldr r0, _0811B050 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _0811B054 + cmp r0, #1 + beq _0811B05E + b _0811B090 + .align 2, 0 +_0811B050: .4byte 0x03002360 +_0811B054: + movs r0, #1 + movs r1, #0 + bl FadeScreen + b _0811B090 +_0811B05E: + ldr r0, _0811B080 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0811B09E + ldr r0, _0811B084 + ldr r0, [r0] + ldr r1, _0811B088 + adds r0, r0, r1 + ldr r1, _0811B08C + strh r1, [r0, #0x16] + bl CleanupOverworldWindowsAndTilemaps + bl DoQuizQuestionEasyChatScreen + b _0811B09E + .align 2, 0 +_0811B080: .4byte 0x02037C74 +_0811B084: .4byte 0x03005AEC +_0811B088: .4byte 0x00003B58 +_0811B08C: .4byte 0x0000FFFF +_0811B090: + ldr r1, _0811B0A4 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0811B09E: + pop {r0} + bx r0 + .align 2, 0 +_0811B0A4: .4byte 0x03002360 + thumb_func_end sub_0811B034 + + thumb_func_start sub_0811B0A8 +sub_0811B0A8: @ 0x0811B0A8 + push {lr} + ldr r0, _0811B0B4 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_0811B0B4: .4byte 0x0811B035 + thumb_func_end sub_0811B0A8 + + thumb_func_start sub_0811B0B8 +sub_0811B0B8: @ 0x0811B0B8 + push {lr} + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + movs r0, #0 + ldr r1, _0811B0D8 +_0811B0C2: + ldrh r3, [r1] + cmp r2, r3 + beq _0811B0D4 + adds r1, #8 + adds r0, #1 + cmp r0, #3 + bls _0811B0C2 + movs r0, #1 + rsbs r0, r0, #0 +_0811B0D4: + pop {r1} + bx r1 + .align 2, 0 +_0811B0D8: .4byte 0x08573114 + thumb_func_end sub_0811B0B8 + + thumb_func_start sub_0811B0DC +sub_0811B0DC: @ 0x0811B0DC + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl sub_0811B0B8 + adds r1, r0, #0 + mvns r1, r1 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + pop {r1} + bx r1 + thumb_func_end sub_0811B0DC + + thumb_func_start sub_0811B0F4 +sub_0811B0F4: @ 0x0811B0F4 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl sub_0811B0B8 + adds r4, r0, #0 + bl ResetTasks + ldr r0, _0811B118 + lsls r4, r4, #3 + adds r0, #4 + adds r4, r4, r0 + ldr r0, [r4] + bl sub_0811AD20 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811B118: .4byte 0x08573114 + thumb_func_end sub_0811B0F4 + + thumb_func_start DoQuizAnswerEasyChatScreen +DoQuizAnswerEasyChatScreen: @ 0x0811B11C + push {lr} + ldr r0, _0811B134 + ldr r1, [r0] + ldr r0, _0811B138 + adds r1, r1, r0 + ldr r2, _0811B13C + movs r0, #0xf + movs r3, #3 + bl DoEasyChatScreen + pop {r0} + bx r0 + .align 2, 0 +_0811B134: .4byte 0x03005AEC +_0811B138: .4byte 0x00003B6E +_0811B13C: .4byte 0x08085B19 + thumb_func_end DoQuizAnswerEasyChatScreen + + thumb_func_start DoQuizQuestionEasyChatScreen +DoQuizQuestionEasyChatScreen: @ 0x0811B140 + push {lr} + ldr r0, _0811B158 + ldr r1, [r0] + ldr r0, _0811B15C + adds r1, r1, r0 + ldr r2, _0811B160 + movs r0, #0x10 + movs r3, #3 + bl DoEasyChatScreen + pop {r0} + bx r0 + .align 2, 0 +_0811B158: .4byte 0x03005AEC +_0811B15C: .4byte 0x00003B5A +_0811B160: .4byte 0x08085B19 + thumb_func_end DoQuizQuestionEasyChatScreen + + thumb_func_start DoQuizSetAnswerEasyChatScreen +DoQuizSetAnswerEasyChatScreen: @ 0x0811B164 + push {lr} + ldr r0, _0811B17C + ldr r1, [r0] + ldr r0, _0811B180 + adds r1, r1, r0 + ldr r2, _0811B184 + movs r0, #0x12 + movs r3, #3 + bl DoEasyChatScreen + pop {r0} + bx r0 + .align 2, 0 +_0811B17C: .4byte 0x03005AEC +_0811B180: .4byte 0x00003B6C +_0811B184: .4byte 0x08085B19 + thumb_func_end DoQuizSetAnswerEasyChatScreen + + thumb_func_start DoQuizSetQuestionEasyChatScreen +DoQuizSetQuestionEasyChatScreen: @ 0x0811B188 + push {lr} + ldr r0, _0811B1A0 + ldr r1, [r0] + ldr r0, _0811B1A4 + adds r1, r1, r0 + ldr r2, _0811B1A8 + movs r0, #0x11 + movs r3, #3 + bl DoEasyChatScreen + pop {r0} + bx r0 + .align 2, 0 +_0811B1A0: .4byte 0x03005AEC +_0811B1A4: .4byte 0x00003B5A +_0811B1A8: .4byte 0x08085B19 + thumb_func_end DoQuizSetQuestionEasyChatScreen + + thumb_func_start EasyChat_AllocateResources +EasyChat_AllocateResources: @ 0x0811B1AC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + ldr r4, _0811B1D0 + movs r0, #0x50 + bl Alloc + str r0, [r4] + cmp r0, #0 + bne _0811B1D4 + movs r0, #0 + b _0811B2BE + .align 2, 0 +_0811B1D0: .4byte 0x02039DE4 +_0811B1D4: + movs r7, #0 + strb r5, [r0] + ldr r0, [r4] + mov r1, r8 + str r1, [r0, #0x38] + strb r7, [r0, #5] + ldr r0, [r4] + strb r7, [r0, #6] + ldr r0, [r4] + strb r7, [r0, #9] + ldr r0, [r4] + strb r6, [r0, #0x12] + ldr r0, [r4] + strb r7, [r0, #0x13] + adds r0, r5, #0 + bl GetEachChatScreenTemplateId + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r5, #0x10 + bne _0811B216 + ldr r0, [r4] + adds r0, #0x14 + bl sub_0811C5F4 + ldr r0, [r4] + adds r1, r0, #0 + adds r1, #0x14 + str r1, [r0, #0x34] + movs r1, #7 + strb r1, [r0, #4] + lsls r0, r6, #1 + b _0811B22E +_0811B216: + ldr r0, [r4] + strb r7, [r0, #4] + ldr r3, [r4] + ldr r1, _0811B26C + lsls r2, r6, #1 + adds r0, r2, r6 + lsls r0, r0, #3 + adds r1, #4 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r3, #0x34] + adds r0, r2, #0 +_0811B22E: + ldr r3, _0811B270 + ldr r2, [r3] + ldr r1, _0811B26C + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r1, [r0, #1] + strb r1, [r2, #2] + ldr r1, [r3] + ldrb r0, [r0, #2] + strb r0, [r1, #3] + ldr r0, [r3] + ldrb r2, [r0, #2] + ldrb r1, [r0, #3] + adds r4, r2, #0 + muls r4, r1, r4 + adds r1, r4, #0 + strb r1, [r0, #7] + ldr r0, [r3] + strb r6, [r0, #1] + mov r0, r8 + cmp r0, #0 + beq _0811B274 + ldr r0, [r3] + adds r1, r0, #0 + adds r1, #0x3c + ldrb r2, [r0, #7] + mov r0, r8 + bl CpuSet + b _0811B2A4 + .align 2, 0 +_0811B26C: .4byte 0x08573134 +_0811B270: .4byte 0x02039DE4 +_0811B274: + movs r4, #0 + ldr r0, [r3] + ldrb r0, [r0, #7] + cmp r4, r0 + bge _0811B29C + adds r6, r3, #0 + ldr r1, _0811B2C8 + adds r5, r1, #0 +_0811B284: + ldr r2, [r6] + lsls r0, r4, #1 + adds r1, r2, #0 + adds r1, #0x3c + adds r1, r1, r0 + ldrh r0, [r1] + orrs r0, r5 + strh r0, [r1] + adds r4, #1 + ldrb r2, [r2, #7] + cmp r4, r2 + blt _0811B284 +_0811B29C: + ldr r1, [r3] + adds r0, r1, #0 + adds r0, #0x3c + str r0, [r1, #0x38] +_0811B2A4: + bl sub_0811F908 + ldr r1, _0811B2CC + ldr r4, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, #1 + movs r1, #3 + bl __divsi3 + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #1 +_0811B2BE: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0811B2C8: .4byte 0x0000FFFF +_0811B2CC: .4byte 0x02039DE4 + thumb_func_end EasyChat_AllocateResources + + thumb_func_start EasyChat_FreeResources +EasyChat_FreeResources: @ 0x0811B2D0 + push {r4, lr} + ldr r4, _0811B2E8 + ldr r0, [r4] + cmp r0, #0 + beq _0811B2E2 + bl Free + movs r0, #0 + str r0, [r4] +_0811B2E2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811B2E8: .4byte 0x02039DE4 + thumb_func_end EasyChat_FreeResources + + thumb_func_start sub_0811B2EC +sub_0811B2EC: @ 0x0811B2EC + push {lr} + ldr r0, _0811B304 + ldr r0, [r0] + ldrb r0, [r0, #4] + cmp r0, #0xa + bhi _0811B37E + lsls r0, r0, #2 + ldr r1, _0811B308 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0811B304: .4byte 0x02039DE4 +_0811B308: .4byte 0x0811B30C +_0811B30C: @ jump table + .4byte _0811B338 @ case 0 + .4byte _0811B33E @ case 1 + .4byte _0811B344 @ case 2 + .4byte _0811B34A @ case 3 + .4byte _0811B350 @ case 4 + .4byte _0811B356 @ case 5 + .4byte _0811B35C @ case 6 + .4byte _0811B362 @ case 7 + .4byte _0811B368 @ case 8 + .4byte _0811B36E @ case 9 + .4byte _0811B374 @ case 10 +_0811B338: + bl sub_0811B384 + b _0811B378 +_0811B33E: + bl sub_0811B4D4 + b _0811B378 +_0811B344: + bl sub_0811B614 + b _0811B378 +_0811B34A: + bl sub_0811B6D0 + b _0811B378 +_0811B350: + bl sub_0811B75C + b _0811B378 +_0811B356: + bl sub_0811B810 + b _0811B378 +_0811B35C: + bl sub_0811B7BC + b _0811B378 +_0811B362: + bl sub_0811B85C + b _0811B378 +_0811B368: + bl sub_0811B88C + b _0811B378 +_0811B36E: + bl sub_0811B8B8 + b _0811B378 +_0811B374: + bl sub_0811B8C8 +_0811B378: + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _0811B380 +_0811B37E: + movs r0, #0 +_0811B380: + pop {r1} + bx r1 + thumb_func_end sub_0811B2EC + + thumb_func_start sub_0811B384 +sub_0811B384: @ 0x0811B384 + push {r4, r5, r6, r7, lr} + ldr r0, _0811B3B0 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0811B3D4 + bl sub_0811C79C + ldr r1, _0811B3B4 + ldr r3, [r1] + movs r2, #0 + movs r0, #2 + strb r0, [r3, #4] + ldr r0, [r1] + strb r2, [r0, #0xa] + ldr r0, [r1] + strb r2, [r0, #0xb] + ldr r0, [r1] + strb r2, [r0, #0xc] + movs r0, #9 + b _0811B4CE + .align 2, 0 +_0811B3B0: .4byte 0x03002360 +_0811B3B4: .4byte 0x02039DE4 +_0811B3B8: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _0811B484 + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0811B474 + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _0811B464 + movs r0, #0 + b _0811B4CE +_0811B3D4: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0811B494 + movs r0, #8 + ands r0, r1 + cmp r0, #0 + bne _0811B49A + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0811B3B8 + ldr r2, _0811B45C + ldr r1, [r2] + ldrb r0, [r1, #6] + subs r0, #1 +_0811B3F4: + strb r0, [r1, #6] +_0811B3F6: + adds r7, r2, #0 + adds r4, r7, #0 + ldr r2, [r4] + movs r0, #6 + ldrsb r0, [r2, r0] + ldr r6, _0811B460 + cmp r0, #0 + bge _0811B414 + ldrb r0, [r2, #1] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r6 + ldrb r0, [r1, #2] + strb r0, [r2, #6] +_0811B414: + ldr r3, [r4] + movs r2, #6 + ldrsb r2, [r3, r2] + adds r5, r6, #0 + ldrb r1, [r3, #1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + ldrb r0, [r0, #2] + cmp r2, r0 + ble _0811B430 + movs r0, #0 + strb r0, [r3, #6] +_0811B430: + ldr r3, [r4] + movs r2, #6 + ldrsb r2, [r3, r2] + ldrb r1, [r3, #1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r1, r0, r5 + ldrb r0, [r1, #2] + cmp r2, r0 + bne _0811B4A4 + movs r0, #5 + ldrsb r0, [r3, r0] + cmp r0, #2 + ble _0811B452 + movs r0, #2 + strb r0, [r3, #5] +_0811B452: + ldr r1, [r4] + movs r0, #1 + strb r0, [r1, #4] + movs r0, #3 + b _0811B4CE + .align 2, 0 +_0811B45C: .4byte 0x02039DE4 +_0811B460: .4byte 0x08573134 +_0811B464: + ldr r2, _0811B470 + ldr r1, [r2] + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] + b _0811B3F6 + .align 2, 0 +_0811B470: .4byte 0x02039DE4 +_0811B474: + ldr r2, _0811B480 + ldr r1, [r2] + ldrb r0, [r1, #6] + adds r0, #1 + b _0811B3F4 + .align 2, 0 +_0811B480: .4byte 0x02039DE4 +_0811B484: + ldr r2, _0811B490 + ldr r1, [r2] + ldrb r0, [r1, #5] + subs r0, #1 + strb r0, [r1, #5] + b _0811B3F6 + .align 2, 0 +_0811B490: .4byte 0x02039DE4 +_0811B494: + bl sub_0811B920 + b _0811B49E +_0811B49A: + bl sub_0811B984 +_0811B49E: + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _0811B4CE +_0811B4A4: + movs r0, #5 + ldrsb r0, [r3, r0] + cmp r0, #0 + bge _0811B4B2 + ldrb r0, [r1, #1] + subs r0, #1 + strb r0, [r3, #5] +_0811B4B2: + ldr r3, [r7] + movs r2, #5 + ldrsb r2, [r3, r2] + ldrb r1, [r3, #1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r6 + ldrb r0, [r0, #1] + cmp r2, r0 + blt _0811B4CC + movs r0, #0 + strb r0, [r3, #5] +_0811B4CC: + movs r0, #2 +_0811B4CE: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_0811B384 + + thumb_func_start sub_0811B4D4 +sub_0811B4D4: @ 0x0811B4D4 + push {r4, r5, r6, lr} + ldr r2, _0811B4F4 + ldrh r1, [r2, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0811B542 + ldr r0, _0811B4F8 + ldr r0, [r0] + ldrb r0, [r0, #5] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + beq _0811B536 + b _0811B51C + .align 2, 0 +_0811B4F4: .4byte 0x03002360 +_0811B4F8: .4byte 0x02039DE4 +_0811B4FC: + movs r0, #0x20 + ands r0, r2 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0 + bne _0811B5D8 + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + bne _0811B5C8 + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + bne _0811B5B8 + movs r0, #0 + b _0811B60E +_0811B51C: + cmp r0, #1 + bgt _0811B526 + cmp r0, #0 + beq _0811B530 + b _0811B542 +_0811B526: + cmp r0, #2 + beq _0811B5EE + cmp r0, #3 + beq _0811B53C + b _0811B542 +_0811B530: + bl sub_0811B954 + b _0811B5F2 +_0811B536: + bl sub_0811B920 + b _0811B5F2 +_0811B53C: + bl sub_0811BA34 + b _0811B5F2 +_0811B542: + ldrh r2, [r2, #0x2e] + movs r0, #2 + ands r0, r2 + cmp r0, #0 + bne _0811B5E8 + movs r0, #8 + ands r0, r2 + cmp r0, #0 + bne _0811B5EE + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + beq _0811B4FC + ldr r2, _0811B5B0 + ldr r1, [r2] + ldrb r0, [r1, #6] + subs r0, #1 + strb r0, [r1, #6] +_0811B566: + adds r6, r2, #0 +_0811B568: + adds r5, r6, #0 + ldr r4, [r5] + movs r3, #6 + ldrsb r3, [r4, r3] + ldr r2, _0811B5B4 + ldrb r1, [r4, #1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r1, r0, r2 + ldrb r0, [r1, #2] + cmp r3, r0 + bne _0811B5F8 + bl FooterHasFourOptions + movs r2, #3 + cmp r0, #0 + beq _0811B58E + movs r2, #4 +_0811B58E: + ldr r1, [r5] + movs r0, #5 + ldrsb r0, [r1, r0] + cmp r0, #0 + bge _0811B59C + subs r0, r2, #1 + strb r0, [r1, #5] +_0811B59C: + ldr r1, [r5] + movs r0, #5 + ldrsb r0, [r1, r0] + cmp r0, r2 + blt _0811B5AA + movs r0, #0 + strb r0, [r1, #5] +_0811B5AA: + movs r0, #3 + b _0811B60E + .align 2, 0 +_0811B5B0: .4byte 0x02039DE4 +_0811B5B4: .4byte 0x08573134 +_0811B5B8: + ldr r2, _0811B5C4 + ldr r1, [r2] + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] + b _0811B566 + .align 2, 0 +_0811B5C4: .4byte 0x02039DE4 +_0811B5C8: + ldr r1, _0811B5D4 + ldr r0, [r1] + strb r3, [r0, #6] + adds r6, r1, #0 + b _0811B568 + .align 2, 0 +_0811B5D4: .4byte 0x02039DE4 +_0811B5D8: + ldr r2, _0811B5E4 + ldr r1, [r2] + ldrb r0, [r1, #5] + subs r0, #1 + strb r0, [r1, #5] + b _0811B566 + .align 2, 0 +_0811B5E4: .4byte 0x02039DE4 +_0811B5E8: + bl sub_0811B920 + b _0811B5F2 +_0811B5EE: + bl sub_0811B984 +_0811B5F2: + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _0811B60E +_0811B5F8: + movs r0, #5 + ldrsb r0, [r4, r0] + ldrb r1, [r1, #1] + cmp r0, r1 + blt _0811B606 + subs r0, r1, #1 + strb r0, [r4, #5] +_0811B606: + ldr r1, [r6] + movs r0, #0 + strb r0, [r1, #4] + movs r0, #2 +_0811B60E: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_0811B4D4 + + thumb_func_start sub_0811B614 +sub_0811B614: @ 0x0811B614 + push {lr} + ldr r1, _0811B62C + ldrh r2, [r1, #0x2e] + movs r0, #2 + ands r0, r2 + adds r3, r1, #0 + cmp r0, #0 + beq _0811B630 + bl sub_0811BAFC + b _0811B6C6 + .align 2, 0 +_0811B62C: .4byte 0x03002360 +_0811B630: + movs r0, #1 + ands r0, r2 + cmp r0, #0 + beq _0811B67E + ldr r0, _0811B650 + ldr r2, [r0] + movs r1, #0xa + ldrsb r1, [r2, r1] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0811B654 + bl sub_0811BA80 + b _0811B6C6 + .align 2, 0 +_0811B650: .4byte 0x02039DE4 +_0811B654: + movs r0, #0xb + ldrsb r0, [r2, r0] + cmp r0, #1 + beq _0811B672 + cmp r0, #1 + bgt _0811B666 + cmp r0, #0 + beq _0811B66C + b _0811B67E +_0811B666: + cmp r0, #2 + beq _0811B678 + b _0811B67E +_0811B66C: + bl sub_0811BB0C + b _0811B6C6 +_0811B672: + bl sub_0811BB38 + b _0811B6C6 +_0811B678: + bl sub_0811BAFC + b _0811B6C6 +_0811B67E: + ldrh r1, [r3, #0x2e] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0811B68E + bl sub_0811BB0C + b _0811B6C6 +_0811B68E: + ldrh r1, [r3, #0x30] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0811B69C + movs r0, #2 + b _0811B6C2 +_0811B69C: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0811B6A8 + movs r0, #3 + b _0811B6C2 +_0811B6A8: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0811B6B4 + movs r0, #1 + b _0811B6C2 +_0811B6B4: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _0811B6C0 + movs r0, #0 + b _0811B6CA +_0811B6C0: + movs r0, #0 +_0811B6C2: + bl sub_0811BCF8 +_0811B6C6: + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_0811B6CA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811B614 + + thumb_func_start sub_0811B6D0 +sub_0811B6D0: @ 0x0811B6D0 + push {lr} + ldr r2, _0811B6EC + ldrh r1, [r2, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0811B6F4 + ldr r0, _0811B6F0 + ldr r1, [r0] + movs r0, #2 + strb r0, [r1, #4] + movs r0, #0xe + b _0811B756 + .align 2, 0 +_0811B6EC: .4byte 0x03002360 +_0811B6F0: .4byte 0x02039DE4 +_0811B6F4: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0811B702 + bl sub_0811BB64 + b _0811B752 +_0811B702: + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0811B70E + movs r0, #4 + b _0811B74E +_0811B70E: + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0811B71A + movs r0, #5 + b _0811B74E +_0811B71A: + ldrh r1, [r2, #0x30] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0811B728 + movs r0, #2 + b _0811B74E +_0811B728: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0811B734 + movs r0, #3 + b _0811B74E +_0811B734: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0811B740 + movs r0, #1 + b _0811B74E +_0811B740: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _0811B74C + movs r0, #0 + b _0811B756 +_0811B74C: + movs r0, #0 +_0811B74E: + bl sub_0811BF64 +_0811B752: + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_0811B756: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811B6D0 + + thumb_func_start sub_0811B75C +sub_0811B75C: @ 0x0811B75C + push {lr} + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _0811B790 + cmp r1, #0 + bgt _0811B778 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0811B77C + b _0811B7B4 +_0811B778: + cmp r1, #1 + bne _0811B7B4 +_0811B77C: + bl sub_0811BA74 + ldr r1, _0811B78C + ldr r1, [r1] + strb r0, [r1, #4] + movs r0, #7 + b _0811B7B6 + .align 2, 0 +_0811B78C: .4byte 0x02039DE4 +_0811B790: + ldr r0, _0811B7AC + strh r1, [r0] + ldr r0, _0811B7B0 + ldr r0, [r0] + ldrb r0, [r0] + subs r0, #0x11 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0811B7A8 + bl sub_0811BBB4 +_0811B7A8: + movs r0, #0x18 + b _0811B7B6 + .align 2, 0 +_0811B7AC: .4byte 0x02037290 +_0811B7B0: .4byte 0x02039DE4 +_0811B7B4: + movs r0, #0 +_0811B7B6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811B75C + + thumb_func_start sub_0811B7BC +sub_0811B7BC: @ 0x0811B7BC + push {r4, lr} + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _0811B7F0 + cmp r1, #0 + bgt _0811B7D8 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0811B7DC + b _0811B808 +_0811B7D8: + cmp r1, #1 + bne _0811B808 +_0811B7DC: + bl sub_0811BA74 + ldr r1, _0811B7EC + ldr r1, [r1] + strb r0, [r1, #4] + movs r0, #7 + b _0811B80A + .align 2, 0 +_0811B7EC: .4byte 0x02039DE4 +_0811B7F0: + bl sub_0811C68C + ldr r4, _0811B804 + bl sub_0811BCBC + strh r0, [r4] + bl sub_0811BBB4 + movs r0, #0x18 + b _0811B80A + .align 2, 0 +_0811B804: .4byte 0x02037290 +_0811B808: + movs r0, #0 +_0811B80A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0811B7BC + + thumb_func_start sub_0811B810 +sub_0811B810: @ 0x0811B810 + push {lr} + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _0811B840 + cmp r1, #0 + bgt _0811B82C + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0811B830 + b _0811B854 +_0811B82C: + cmp r1, #1 + bne _0811B854 +_0811B830: + ldr r0, _0811B83C + ldr r1, [r0] + movs r0, #1 + strb r0, [r1, #4] + movs r0, #7 + b _0811B856 + .align 2, 0 +_0811B83C: .4byte 0x02039DE4 +_0811B840: + bl sub_0811BBE8 + ldr r0, _0811B850 + ldr r1, [r0] + movs r0, #1 + strb r0, [r1, #4] + movs r0, #8 + b _0811B856 + .align 2, 0 +_0811B850: .4byte 0x02039DE4 +_0811B854: + movs r0, #0 +_0811B856: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811B810 + + thumb_func_start sub_0811B85C +sub_0811B85C: @ 0x0811B85C + push {lr} + ldr r0, _0811B870 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0811B874 + movs r0, #0x1a + b _0811B888 + .align 2, 0 +_0811B870: .4byte 0x03002360 +_0811B874: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0811B880 + movs r0, #0 + b _0811B888 +_0811B880: + bl sub_0811B920 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_0811B888: + pop {r1} + bx r1 + thumb_func_end sub_0811B85C + + thumb_func_start sub_0811B88C +sub_0811B88C: @ 0x0811B88C + push {lr} + ldr r0, _0811B8A0 + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _0811B8A4 + movs r0, #0 + b _0811B8B0 + .align 2, 0 +_0811B8A0: .4byte 0x03002360 +_0811B8A4: + bl sub_0811BA74 + ldr r1, _0811B8B4 + ldr r1, [r1] + strb r0, [r1, #4] + movs r0, #7 +_0811B8B0: + pop {r1} + bx r1 + .align 2, 0 +_0811B8B4: .4byte 0x02039DE4 + thumb_func_end sub_0811B88C + + thumb_func_start sub_0811B8B8 +sub_0811B8B8: @ 0x0811B8B8 + ldr r0, _0811B8C4 + ldr r1, [r0] + movs r0, #0xa + strb r0, [r1, #4] + movs r0, #6 + bx lr + .align 2, 0 +_0811B8C4: .4byte 0x02039DE4 + thumb_func_end sub_0811B8B8 + + thumb_func_start sub_0811B8C8 +sub_0811B8C8: @ 0x0811B8C8 + push {r4, lr} + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _0811B904 + cmp r1, #0 + bgt _0811B8E4 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0811B8E8 + b _0811B918 +_0811B8E4: + cmp r1, #1 + bne _0811B918 +_0811B8E8: + bl sub_0811BC24 + ldr r2, _0811B900 + ldr r1, [r2] + movs r0, #0 + strb r0, [r1, #8] + ldr r1, [r2] + movs r0, #8 + strb r0, [r1, #4] + movs r0, #0x1f + b _0811B91A + .align 2, 0 +_0811B900: .4byte 0x02039DE4 +_0811B904: + ldr r4, _0811B914 + bl sub_0811BCBC + strh r0, [r4] + bl sub_0811BBB4 + movs r0, #0x18 + b _0811B91A + .align 2, 0 +_0811B914: .4byte 0x02037290 +_0811B918: + movs r0, #0 +_0811B91A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0811B8C8 + + thumb_func_start sub_0811B920 +sub_0811B920: @ 0x0811B920 + push {lr} + ldr r1, _0811B940 + ldr r2, [r1] + ldrb r0, [r2] + cmp r0, #0x13 + beq _0811B930 + cmp r0, #0xb + bne _0811B944 +_0811B930: + ldrb r0, [r2, #4] + strb r0, [r2, #8] + ldr r1, [r1] + movs r0, #8 + strb r0, [r1, #4] + movs r0, #0x22 + b _0811B950 + .align 2, 0 +_0811B940: .4byte 0x02039DE4 +_0811B944: + ldrb r0, [r2, #4] + strb r0, [r2, #8] + ldr r1, [r1] + movs r0, #4 + strb r0, [r1, #4] + movs r0, #5 +_0811B950: + pop {r1} + bx r1 + thumb_func_end sub_0811B920 + + thumb_func_start sub_0811B954 +sub_0811B954: @ 0x0811B954 + push {lr} + ldr r2, _0811B974 + ldr r0, [r2] + ldrb r1, [r0, #4] + strb r1, [r0, #8] + ldr r1, [r2] + ldrb r0, [r1] + cmp r0, #6 + bne _0811B978 + ldrb r0, [r1, #4] + strb r0, [r1, #8] + ldr r1, [r2] + movs r0, #8 + strb r0, [r1, #4] + movs r0, #0x20 + b _0811B97E + .align 2, 0 +_0811B974: .4byte 0x02039DE4 +_0811B978: + movs r0, #5 + strb r0, [r1, #4] + movs r0, #4 +_0811B97E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811B954 + + thumb_func_start sub_0811B984 +sub_0811B984: @ 0x0811B984 + push {r4, lr} + ldr r4, _0811B9A8 + ldr r1, [r4] + ldrb r0, [r1, #4] + strb r0, [r1, #8] + ldr r1, [r4] + ldrb r0, [r1] + cmp r0, #0x11 + bne _0811B9AC + bl sub_0811C568 + cmp r0, #0 + bne _0811B9CA + bl sub_0811C5B4 + cmp r0, #0 + bne _0811B9B8 + b _0811BA26 + .align 2, 0 +_0811B9A8: .4byte 0x02039DE4 +_0811B9AC: + cmp r0, #0x12 + bne _0811B9D4 + bl sub_0811C5B4 + cmp r0, #0 + beq _0811B9C2 +_0811B9B8: + ldr r1, [r4] + movs r0, #8 + strb r0, [r1, #4] + movs r0, #0x1e + b _0811BA2C +_0811B9C2: + bl sub_0811C568 + cmp r0, #0 + beq _0811BA26 +_0811B9CA: + ldr r1, [r4] + movs r0, #8 + strb r0, [r1, #4] + movs r0, #0x1d + b _0811BA2C +_0811B9D4: + cmp r0, #9 + beq _0811B9DC + cmp r0, #0xd + bne _0811B9EE +_0811B9DC: + bl sub_0811C530 + cmp r0, #0 + bne _0811BA26 + ldr r1, [r4] + movs r0, #8 + strb r0, [r1, #4] + movs r0, #0x21 + b _0811BA2C +_0811B9EE: + cmp r0, #0x13 + beq _0811B9F6 + cmp r0, #0xb + bne _0811BA08 +_0811B9F6: + bl sub_0811C4F8 + cmp r0, #0 + beq _0811BA26 + ldr r1, [r4] + movs r0, #8 + strb r0, [r1, #4] + movs r0, #0x22 + b _0811BA2C +_0811BA08: + cmp r0, #0x14 + beq _0811BA28 + bl sub_0811C4F8 + cmp r0, #1 + beq _0811BA1C + bl sub_0811BCBC + cmp r0, #0 + bne _0811BA26 +_0811BA1C: + ldr r1, [r4] + movs r0, #4 + strb r0, [r1, #4] + movs r0, #5 + b _0811BA2C +_0811BA26: + ldr r1, [r4] +_0811BA28: + movs r0, #6 + strb r0, [r1, #4] +_0811BA2C: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811B984 + + thumb_func_start sub_0811BA34 +sub_0811BA34: @ 0x0811BA34 + push {lr} + ldr r2, _0811BA50 + ldr r1, [r2] + ldrb r0, [r1, #4] + strb r0, [r1, #8] + ldr r0, [r2] + ldrb r0, [r0] + cmp r0, #0x11 + beq _0811BA5E + cmp r0, #0x11 + bgt _0811BA54 + cmp r0, #0xf + beq _0811BA5A + b _0811BA6E + .align 2, 0 +_0811BA50: .4byte 0x02039DE4 +_0811BA54: + cmp r0, #0x12 + beq _0811BA66 + b _0811BA6E +_0811BA5A: + movs r0, #0x19 + b _0811BA70 +_0811BA5E: + bl sub_0811BBB4 + movs r0, #0x1c + b _0811BA70 +_0811BA66: + bl sub_0811BBB4 + movs r0, #0x1b + b _0811BA70 +_0811BA6E: + movs r0, #0 +_0811BA70: + pop {r1} + bx r1 + thumb_func_end sub_0811BA34 + + thumb_func_start sub_0811BA74 +sub_0811BA74: @ 0x0811BA74 + ldr r0, _0811BA7C + ldr r0, [r0] + ldrb r0, [r0, #8] + bx lr + .align 2, 0 +_0811BA7C: .4byte 0x02039DE4 + thumb_func_end sub_0811BA74 + + thumb_func_start sub_0811BA80 +sub_0811BA80: @ 0x0811BA80 + push {r4, r5, r6, lr} + ldr r0, _0811BAA8 + ldr r0, [r0] + ldrb r0, [r0, #9] + cmp r0, #0 + bne _0811BAAC + bl sub_0811C0B8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_0811F914 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0 + bl sub_0811FAA0 + b _0811BABC + .align 2, 0 +_0811BAA8: .4byte 0x02039DE4 +_0811BAAC: + bl GetFooterIndex + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #1 + bl sub_0811FAA0 +_0811BABC: + bl sub_0811FB08 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + beq _0811BAF4 + ldr r4, _0811BAF0 + ldr r5, [r4] + subs r0, #1 + movs r6, #3 + movs r1, #3 + bl __divsi3 + movs r1, #0 + strb r0, [r5, #0xf] + ldr r0, [r4] + strb r1, [r0, #0xe] + ldr r0, [r4] + strb r1, [r0, #0x10] + ldr r0, [r4] + strb r1, [r0, #0x11] + ldr r0, [r4] + strb r6, [r0, #4] + movs r0, #0xb + b _0811BAF6 + .align 2, 0 +_0811BAF0: .4byte 0x02039DE4 +_0811BAF4: + movs r0, #0 +_0811BAF6: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_0811BA80 + + thumb_func_start sub_0811BAFC +sub_0811BAFC: @ 0x0811BAFC + ldr r0, _0811BB08 + ldr r1, [r0] + movs r0, #0 + strb r0, [r1, #4] + movs r0, #0xa + bx lr + .align 2, 0 +_0811BB08: .4byte 0x02039DE4 + thumb_func_end sub_0811BAFC + + thumb_func_start sub_0811BB0C +sub_0811BB0C: @ 0x0811BB0C + push {lr} + ldr r1, _0811BB2C + ldr r0, [r1] + movs r2, #0 + strb r2, [r0, #0xa] + ldr r0, [r1] + strb r2, [r0, #0xb] + ldr r0, [r1] + strb r2, [r0, #0xc] + ldr r1, [r1] + ldrb r0, [r1, #9] + cmp r0, #0 + bne _0811BB30 + movs r0, #1 + strb r0, [r1, #9] + b _0811BB32 + .align 2, 0 +_0811BB2C: .4byte 0x02039DE4 +_0811BB30: + strb r2, [r1, #9] +_0811BB32: + movs r0, #0x17 + pop {r1} + bx r1 + thumb_func_end sub_0811BB0C + + thumb_func_start sub_0811BB38 +sub_0811BB38: @ 0x0811BB38 + push {lr} + ldr r0, _0811BB50 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #6 + beq _0811BB58 + ldr r0, _0811BB54 + bl sub_0811BC58 + movs r0, #1 + b _0811BB60 + .align 2, 0 +_0811BB50: .4byte 0x02039DE4 +_0811BB54: .4byte 0x0000FFFF +_0811BB58: + movs r0, #0x20 + bl PlaySE + movs r0, #0 +_0811BB60: + pop {r1} + bx r1 + thumb_func_end sub_0811BB38 + + thumb_func_start sub_0811BB64 +sub_0811BB64: @ 0x0811BB64 + push {r4, r5, lr} + bl sub_0811C140 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl sub_0811FAD0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r4, #0 + bl sub_0811C820 + adds r5, r0, #0 + cmp r5, #0 + beq _0811BB8C + movs r0, #0x20 + bl PlaySE + movs r0, #0 + b _0811BBAC +_0811BB8C: + adds r0, r4, #0 + bl sub_0811BC58 + ldr r0, _0811BBA4 + ldr r1, [r0] + ldrb r0, [r1] + cmp r0, #6 + bne _0811BBA8 + movs r0, #9 + strb r0, [r1, #4] + movs r0, #0xd + b _0811BBAC + .align 2, 0 +_0811BBA4: .4byte 0x02039DE4 +_0811BBA8: + strb r5, [r1, #4] + movs r0, #0xc +_0811BBAC: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811BB64 + + thumb_func_start sub_0811BBB4 +sub_0811BBB4: @ 0x0811BBB4 + push {r4, r5, lr} + movs r4, #0 + ldr r3, _0811BBE4 + ldr r0, [r3] + ldrb r0, [r0, #7] + cmp r4, r0 + bge _0811BBDE + adds r5, r3, #0 +_0811BBC4: + ldr r3, [r5] + ldr r1, [r3, #0x38] + lsls r2, r4, #1 + adds r1, r2, r1 + adds r0, r3, #0 + adds r0, #0x3c + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r1] + adds r4, #1 + ldrb r3, [r3, #7] + cmp r4, r3 + blt _0811BBC4 +_0811BBDE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0811BBE4: .4byte 0x02039DE4 + thumb_func_end sub_0811BBB4 + + thumb_func_start sub_0811BBE8 +sub_0811BBE8: @ 0x0811BBE8 + push {r4, r5, lr} + movs r3, #0 + ldr r2, _0811BC1C + ldr r0, [r2] + ldrb r0, [r0, #7] + cmp r3, r0 + bge _0811BC14 + adds r5, r2, #0 + ldr r0, _0811BC20 + adds r4, r0, #0 +_0811BBFC: + ldr r2, [r5] + lsls r0, r3, #1 + adds r1, r2, #0 + adds r1, #0x3c + adds r1, r1, r0 + ldrh r0, [r1] + orrs r0, r4 + strh r0, [r1] + adds r3, #1 + ldrb r2, [r2, #7] + cmp r3, r2 + blt _0811BBFC +_0811BC14: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0811BC1C: .4byte 0x02039DE4 +_0811BC20: .4byte 0x0000FFFF + thumb_func_end sub_0811BBE8 + + thumb_func_start sub_0811BC24 +sub_0811BC24: @ 0x0811BC24 + push {r4, r5, lr} + movs r4, #0 + ldr r3, _0811BC54 + ldr r0, [r3] + ldrb r0, [r0, #7] + cmp r4, r0 + bge _0811BC4E + adds r5, r3, #0 +_0811BC34: + ldr r3, [r5] + lsls r1, r4, #1 + adds r2, r3, #0 + adds r2, #0x3c + adds r2, r2, r1 + ldr r0, [r3, #0x38] + adds r1, r1, r0 + ldrh r0, [r1] + strh r0, [r2] + adds r4, #1 + ldrb r3, [r3, #7] + cmp r4, r3 + blt _0811BC34 +_0811BC4E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0811BC54: .4byte 0x02039DE4 + thumb_func_end sub_0811BC24 + + thumb_func_start sub_0811BC58 +sub_0811BC58: @ 0x0811BC58 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + bl sub_0811C098 + lsls r0, r0, #0x10 + ldr r1, _0811BC78 + ldr r1, [r1] + lsrs r0, r0, #0xf + adds r1, #0x3c + adds r1, r1, r0 + strh r4, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811BC78: .4byte 0x02039DE4 + thumb_func_end sub_0811BC58 + + thumb_func_start sub_0811BC7C +sub_0811BC7C: @ 0x0811BC7C + push {r4, r5, lr} + movs r2, #0 + ldr r0, _0811BCA4 + ldr r0, [r0] + ldrb r1, [r0, #7] + cmp r2, r1 + bhs _0811BCB2 + adds r5, r1, #0 + adds r4, r0, #0 + adds r4, #0x3c + ldr r3, [r0, #0x38] +_0811BC92: + lsls r0, r2, #1 + adds r1, r4, r0 + adds r0, r0, r3 + ldrh r1, [r1] + ldrh r0, [r0] + cmp r1, r0 + beq _0811BCA8 + movs r0, #1 + b _0811BCB4 + .align 2, 0 +_0811BCA4: .4byte 0x02039DE4 +_0811BCA8: + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, r5 + blo _0811BC92 +_0811BCB2: + movs r0, #0 +_0811BCB4: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811BC7C + + thumb_func_start sub_0811BCBC +sub_0811BCBC: @ 0x0811BCBC + push {lr} + ldr r0, _0811BCE4 + ldr r0, [r0] + ldrb r0, [r0] + subs r0, #0x11 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0811BCEC + bl sub_0811C568 + cmp r0, #0 + bne _0811BCDE + bl sub_0811C5B4 + cmp r0, #0 + beq _0811BCE8 +_0811BCDE: + movs r0, #0 + b _0811BCF4 + .align 2, 0 +_0811BCE4: .4byte 0x02039DE4 +_0811BCE8: + movs r0, #1 + b _0811BCF4 +_0811BCEC: + bl sub_0811BC7C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_0811BCF4: + pop {r1} + bx r1 + thumb_func_end sub_0811BCBC + + thumb_func_start sub_0811BCF8 +sub_0811BCF8: @ 0x0811BCF8 + push {lr} + adds r2, r0, #0 + ldr r0, _0811BD1C + ldr r3, [r0] + movs r1, #0xa + ldrsb r1, [r3, r1] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0811BD28 + ldrb r0, [r3, #9] + cmp r0, #0 + bne _0811BD20 + adds r0, r2, #0 + bl sub_0811BD38 + b _0811BD2E + .align 2, 0 +_0811BD1C: .4byte 0x02039DE4 +_0811BD20: + adds r0, r2, #0 + bl sub_0811BE04 + b _0811BD2E +_0811BD28: + adds r0, r2, #0 + bl sub_0811BE94 +_0811BD2E: + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811BCF8 + + thumb_func_start sub_0811BD38 +sub_0811BD38: @ 0x0811BD38 + push {r4, lr} + cmp r0, #1 + beq _0811BDAE + cmp r0, #1 + blo _0811BDCE + cmp r0, #2 + beq _0811BD4C + cmp r0, #3 + beq _0811BD74 + b _0811BDFA +_0811BD4C: + ldr r0, _0811BD68 + ldr r1, [r0] + movs r0, #0xb + ldrsb r0, [r1, r0] + ldrb r3, [r1, #0xc] + cmn r0, r3 + beq _0811BDFA + ldrb r2, [r1, #0xb] + cmp r0, #0 + beq _0811BD6C + subs r0, r2, #1 + strb r0, [r1, #0xb] +_0811BD64: + movs r0, #0xf + b _0811BDFC + .align 2, 0 +_0811BD68: .4byte 0x02039DE4 +_0811BD6C: + subs r0, r3, #1 + strb r0, [r1, #0xc] + movs r0, #0x11 + b _0811BDFC +_0811BD74: + ldr r0, _0811BD9C + ldr r2, [r0] + movs r1, #0xb + ldrsb r1, [r2, r1] + ldrb r3, [r2, #0xc] + adds r1, r1, r3 + ldrb r0, [r2, #0xd] + subs r0, #1 + cmp r1, r0 + bge _0811BDFA + ldrb r1, [r2, #0xb] + movs r0, #0xb + ldrsb r0, [r2, r0] + cmp r0, #2 + bgt _0811BDA0 + adds r0, r1, #1 + strb r0, [r2, #0xb] + movs r4, #0xf + b _0811BDA6 + .align 2, 0 +_0811BD9C: .4byte 0x02039DE4 +_0811BDA0: + adds r0, r3, #1 + strb r0, [r2, #0xc] + movs r4, #0x10 +_0811BDA6: + bl sub_0811C17C + adds r0, r4, #0 + b _0811BDFC +_0811BDAE: + ldr r0, _0811BDC4 + ldr r1, [r0] + ldrb r2, [r1, #0xa] + movs r0, #0xa + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _0811BDC8 + subs r0, r2, #1 + strb r0, [r1, #0xa] + b _0811BD64 + .align 2, 0 +_0811BDC4: .4byte 0x02039DE4 +_0811BDC8: + bl sub_0811BF14 + b _0811BD64 +_0811BDCE: + ldr r0, _0811BDF0 + ldr r1, [r0] + ldrb r2, [r1, #0xa] + movs r0, #0xa + ldrsb r0, [r1, r0] + cmp r0, #1 + bgt _0811BDF4 + adds r0, r2, #1 + strb r0, [r1, #0xa] + bl sub_0811C1CC + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0811BD64 + bl sub_0811BF14 + b _0811BD64 + .align 2, 0 +_0811BDF0: .4byte 0x02039DE4 +_0811BDF4: + bl sub_0811BF14 + b _0811BD64 +_0811BDFA: + movs r0, #0 +_0811BDFC: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811BD38 + + thumb_func_start sub_0811BE04 +sub_0811BE04: @ 0x0811BE04 + push {lr} + cmp r0, #1 + beq _0811BE70 + cmp r0, #1 + blo _0811BE54 + cmp r0, #2 + beq _0811BE1A + cmp r0, #3 + beq _0811BE3A + movs r0, #0 + b _0811BE8C +_0811BE1A: + ldr r0, _0811BE2C + ldr r1, [r0] + ldrb r2, [r1, #0xb] + movs r0, #0xb + ldrsb r0, [r1, r0] + cmp r0, #0 + ble _0811BE30 + subs r0, r2, #1 + b _0811BE32 + .align 2, 0 +_0811BE2C: .4byte 0x02039DE4 +_0811BE30: + movs r0, #3 +_0811BE32: + strb r0, [r1, #0xb] + bl sub_0811C17C + b _0811BE8A +_0811BE3A: + ldr r0, _0811BE4C + ldr r1, [r0] + ldrb r2, [r1, #0xb] + movs r0, #0xb + ldrsb r0, [r1, r0] + cmp r0, #2 + bgt _0811BE50 + adds r0, r2, #1 + b _0811BE32 + .align 2, 0 +_0811BE4C: .4byte 0x02039DE4 +_0811BE50: + movs r0, #0 + b _0811BE32 +_0811BE54: + ldr r0, _0811BE6C + ldr r1, [r0] + ldrb r0, [r1, #0xa] + adds r0, #1 + strb r0, [r1, #0xa] + bl sub_0811C1CC + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0811BE8A + b _0811BE86 + .align 2, 0 +_0811BE6C: .4byte 0x02039DE4 +_0811BE70: + ldr r2, _0811BE90 + ldr r1, [r2] + ldrb r0, [r1, #0xa] + subs r0, #1 + strb r0, [r1, #0xa] + ldr r0, [r2] + ldrb r0, [r0, #0xa] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bge _0811BE8A +_0811BE86: + bl sub_0811BF14 +_0811BE8A: + movs r0, #0xf +_0811BE8C: + pop {r1} + bx r1 + .align 2, 0 +_0811BE90: .4byte 0x02039DE4 + thumb_func_end sub_0811BE04 + + thumb_func_start sub_0811BE94 +sub_0811BE94: @ 0x0811BE94 + push {lr} + adds r2, r0, #0 + cmp r2, #1 + beq _0811BEE4 + cmp r2, #1 + blo _0811BEF8 + cmp r2, #2 + beq _0811BEAC + cmp r2, #3 + beq _0811BEC8 + movs r0, #0 + b _0811BF0A +_0811BEAC: + ldr r0, _0811BEC0 + ldr r1, [r0] + ldrb r3, [r1, #0xb] + movs r0, #0xb + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _0811BEC4 + subs r0, r3, #1 + b _0811BF06 + .align 2, 0 +_0811BEC0: .4byte 0x02039DE4 +_0811BEC4: + strb r2, [r1, #0xb] + b _0811BF08 +_0811BEC8: + ldr r0, _0811BEDC + ldr r1, [r0] + ldrb r2, [r1, #0xb] + movs r0, #0xb + ldrsb r0, [r1, r0] + cmp r0, #1 + bgt _0811BEE0 + adds r0, r2, #1 + b _0811BF06 + .align 2, 0 +_0811BEDC: .4byte 0x02039DE4 +_0811BEE0: + movs r0, #0 + b _0811BF06 +_0811BEE4: + ldr r0, _0811BEF4 + ldr r1, [r0] + ldrb r0, [r1, #0xb] + adds r0, #1 + strb r0, [r1, #0xb] + bl sub_0811BF38 + b _0811BF08 + .align 2, 0 +_0811BEF4: .4byte 0x02039DE4 +_0811BEF8: + ldr r2, _0811BF10 + ldr r1, [r2] + movs r0, #0 + strb r0, [r1, #0xa] + ldr r1, [r2] + ldrb r0, [r1, #0xb] + adds r0, #1 +_0811BF06: + strb r0, [r1, #0xb] +_0811BF08: + movs r0, #0xf +_0811BF0A: + pop {r1} + bx r1 + .align 2, 0 +_0811BF10: .4byte 0x02039DE4 + thumb_func_end sub_0811BE94 + + thumb_func_start sub_0811BF14 +sub_0811BF14: @ 0x0811BF14 + push {lr} + ldr r2, _0811BF34 + ldr r1, [r2] + movs r0, #0xff + strb r0, [r1, #0xa] + ldr r2, [r2] + ldrb r1, [r2, #0xb] + movs r0, #0xb + ldrsb r0, [r2, r0] + cmp r0, #0 + beq _0811BF2E + subs r0, r1, #1 + strb r0, [r2, #0xb] +_0811BF2E: + pop {r0} + bx r0 + .align 2, 0 +_0811BF34: .4byte 0x02039DE4 + thumb_func_end sub_0811BF14 + + thumb_func_start sub_0811BF38 +sub_0811BF38: @ 0x0811BF38 + push {r4, lr} + ldr r4, _0811BF50 + ldr r1, [r4] + ldrb r0, [r1, #9] + cmp r0, #0 + bne _0811BF54 + movs r0, #2 + strb r0, [r1, #0xa] + bl sub_0811C17C + b _0811BF5E + .align 2, 0 +_0811BF50: .4byte 0x02039DE4 +_0811BF54: + ldrb r0, [r1, #0xb] + bl sub_0811C160 + ldr r1, [r4] + strb r0, [r1, #0xa] +_0811BF5E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0811BF38 + + thumb_func_start sub_0811BF64 +sub_0811BF64: @ 0x0811BF64 + push {r4, lr} + cmp r0, #5 + bls _0811BF6C + b _0811C090 +_0811BF6C: + lsls r0, r0, #2 + ldr r1, _0811BF78 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0811BF78: .4byte 0x0811BF7C +_0811BF7C: @ jump table + .4byte _0811C018 @ case 0 + .4byte _0811BFF6 @ case 1 + .4byte _0811BF94 @ case 2 + .4byte _0811BFC0 @ case 3 + .4byte _0811C040 @ case 4 + .4byte _0811C060 @ case 5 +_0811BF94: + ldr r0, _0811BFB4 + ldr r1, [r0] + movs r0, #0x11 + ldrsb r0, [r1, r0] + ldrb r3, [r1, #0xe] + adds r0, r0, r3 + cmp r0, #0 + bgt _0811BFA6 + b _0811C090 +_0811BFA6: + ldrb r2, [r1, #0x11] + movs r0, #0x11 + ldrsb r0, [r1, r0] + cmp r0, #0 + ble _0811BFB8 + subs r0, r2, #1 + b _0811BFDE + .align 2, 0 +_0811BFB4: .4byte 0x02039DE4 +_0811BFB8: + subs r0, r3, #1 + strb r0, [r1, #0xe] + movs r4, #0x13 + b _0811BFEE +_0811BFC0: + ldr r0, _0811BFE4 + ldr r1, [r0] + movs r0, #0x11 + ldrsb r0, [r1, r0] + ldrb r3, [r1, #0xe] + adds r0, r0, r3 + ldrb r2, [r1, #0xf] + cmp r0, r2 + bge _0811C090 + ldrb r2, [r1, #0x11] + movs r0, #0x11 + ldrsb r0, [r1, r0] + cmp r0, #2 + bgt _0811BFE8 + adds r0, r2, #1 +_0811BFDE: + strb r0, [r1, #0x11] + movs r4, #0x12 + b _0811BFEE + .align 2, 0 +_0811BFE4: .4byte 0x02039DE4 +_0811BFE8: + adds r0, r3, #1 + strb r0, [r1, #0xe] + movs r4, #0x14 +_0811BFEE: + bl sub_0811C1A4 + adds r0, r4, #0 + b _0811C092 +_0811BFF6: + ldr r0, _0811C008 + ldr r1, [r0] + ldrb r2, [r1, #0x10] + movs r0, #0x10 + ldrsb r0, [r1, r0] + cmp r0, #0 + ble _0811C00C + subs r0, r2, #1 + b _0811C00E + .align 2, 0 +_0811C008: .4byte 0x02039DE4 +_0811C00C: + movs r0, #2 +_0811C00E: + strb r0, [r1, #0x10] + bl sub_0811C1A4 +_0811C014: + movs r0, #0x12 + b _0811C092 +_0811C018: + ldr r4, _0811C03C + ldr r1, [r4] + ldrb r2, [r1, #0x10] + movs r0, #0x10 + ldrsb r0, [r1, r0] + cmp r0, #1 + bgt _0811C036 + adds r0, r2, #1 + strb r0, [r1, #0x10] + bl sub_0811C220 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0811C014 + ldr r1, [r4] +_0811C036: + movs r0, #0 + strb r0, [r1, #0x10] + b _0811C014 + .align 2, 0 +_0811C03C: .4byte 0x02039DE4 +_0811C040: + ldr r0, _0811C054 + ldr r2, [r0] + ldrb r0, [r2, #0xe] + adds r1, r0, #0 + cmp r1, #0 + beq _0811C090 + cmp r1, #3 + bls _0811C058 + subs r0, #4 + b _0811C05A + .align 2, 0 +_0811C054: .4byte 0x02039DE4 +_0811C058: + movs r0, #0 +_0811C05A: + strb r0, [r2, #0xe] + movs r0, #0x15 + b _0811C092 +_0811C060: + ldr r3, _0811C08C + ldr r1, [r3] + ldrb r2, [r1, #0xe] + ldrb r0, [r1, #0xf] + subs r0, #4 + cmp r2, r0 + bgt _0811C090 + adds r0, r2, #4 + strb r0, [r1, #0xe] + ldr r2, [r3] + ldrb r1, [r2, #0xe] + ldrb r3, [r2, #0xf] + subs r0, r3, #3 + cmp r1, r0 + ble _0811C084 + adds r0, r3, #0 + adds r0, #0xfd + strb r0, [r2, #0xe] +_0811C084: + bl sub_0811C1A4 + movs r0, #0x16 + b _0811C092 + .align 2, 0 +_0811C08C: .4byte 0x02039DE4 +_0811C090: + movs r0, #0 +_0811C092: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0811BF64 + + thumb_func_start sub_0811C098 +sub_0811C098: @ 0x0811C098 + ldr r0, _0811C0B4 + ldr r0, [r0] + movs r2, #6 + ldrsb r2, [r0, r2] + ldrb r1, [r0, #2] + muls r1, r2, r1 + ldrb r0, [r0, #5] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bx lr + .align 2, 0 +_0811C0B4: .4byte 0x02039DE4 + thumb_func_end sub_0811C098 + + thumb_func_start sub_0811C0B8 +sub_0811C0B8: @ 0x0811C0B8 + ldr r0, _0811C0D4 + ldr r2, [r0] + movs r0, #0xb + ldrsb r0, [r2, r0] + ldrb r1, [r2, #0xc] + adds r0, r0, r1 + lsls r1, r0, #1 + adds r1, r1, r0 + movs r0, #0xa + ldrsb r0, [r2, r0] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bx lr + .align 2, 0 +_0811C0D4: .4byte 0x02039DE4 + thumb_func_end sub_0811C0B8 + + thumb_func_start GetFooterIndex +GetFooterIndex: @ 0x0811C0D8 + push {lr} + ldr r0, _0811C0F8 + ldr r2, [r0] + movs r0, #0xa + ldrsb r0, [r2, r0] + cmp r0, #4 + bgt _0811C0FC + movs r0, #0xb + ldrsb r0, [r2, r0] + lsls r1, r0, #2 + adds r1, r1, r0 + adds r1, #1 + movs r0, #0xa + ldrsb r0, [r2, r0] + adds r0, r0, r1 + b _0811C130 + .align 2, 0 +_0811C0F8: .4byte 0x02039DE4 +_0811C0FC: + cmp r0, #9 + bgt _0811C11E + movs r0, #0xb + ldrsb r0, [r2, r0] + cmp r0, #2 + bgt _0811C116 + lsls r1, r0, #2 + adds r1, r1, r0 + movs r0, #0xa + ldrsb r0, [r2, r0] + adds r0, r0, r1 + adds r0, #0x10 + b _0811C130 +_0811C116: + movs r0, #0xa + ldrsb r0, [r2, r0] + adds r0, #0x22 + b _0811C130 +_0811C11E: + cmp r0, #0xc + bgt _0811C13A + movs r0, #0xb + ldrsb r0, [r2, r0] + cmp r0, #0 + bne _0811C136 + movs r0, #0xa + ldrsb r0, [r2, r0] + adds r0, #0x1a +_0811C130: + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _0811C13C +_0811C136: + movs r0, #0 + b _0811C13C +_0811C13A: + movs r0, #0x2c +_0811C13C: + pop {r1} + bx r1 + thumb_func_end GetFooterIndex + + thumb_func_start sub_0811C140 +sub_0811C140: @ 0x0811C140 + ldr r0, _0811C15C + ldr r2, [r0] + movs r0, #0x11 + ldrsb r0, [r2, r0] + ldrb r1, [r2, #0xe] + adds r0, r0, r1 + lsls r1, r0, #1 + adds r1, r1, r0 + movs r0, #0x10 + ldrsb r0, [r2, r0] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bx lr + .align 2, 0 +_0811C15C: .4byte 0x02039DE4 + thumb_func_end sub_0811C140 + + thumb_func_start sub_0811C160 +sub_0811C160: @ 0x0811C160 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _0811C172 + cmp r0, #1 + beq _0811C176 + movs r0, #9 + b _0811C178 +_0811C172: + movs r0, #0xd + b _0811C178 +_0811C176: + movs r0, #0xa +_0811C178: + pop {r1} + bx r1 + thumb_func_end sub_0811C160 + + thumb_func_start sub_0811C17C +sub_0811C17C: @ 0x0811C17C + push {lr} + b _0811C192 +_0811C180: + ldr r0, _0811C1A0 + ldr r1, [r0] + ldrb r2, [r1, #0xa] + movs r0, #0xa + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _0811C19C + subs r0, r2, #1 + strb r0, [r1, #0xa] +_0811C192: + bl sub_0811C1CC + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811C180 +_0811C19C: + pop {r0} + bx r0 + .align 2, 0 +_0811C1A0: .4byte 0x02039DE4 + thumb_func_end sub_0811C17C + + thumb_func_start sub_0811C1A4 +sub_0811C1A4: @ 0x0811C1A4 + push {lr} + b _0811C1BA +_0811C1A8: + ldr r0, _0811C1C8 + ldr r1, [r0] + ldrb r2, [r1, #0x10] + movs r0, #0x10 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _0811C1C4 + subs r0, r2, #1 + strb r0, [r1, #0x10] +_0811C1BA: + bl sub_0811C220 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811C1A8 +_0811C1C4: + pop {r0} + bx r0 + .align 2, 0 +_0811C1C8: .4byte 0x02039DE4 + thumb_func_end sub_0811C1A4 + + thumb_func_start sub_0811C1CC +sub_0811C1CC: @ 0x0811C1CC + push {r4, lr} + ldr r4, _0811C1F8 + ldr r1, [r4] + ldrb r0, [r1, #9] + cmp r0, #0 + bne _0811C1FC + bl sub_0811C0B8 + adds r4, r0, #0 + bl sub_0811F908 + movs r1, #0 + lsls r0, r0, #0x18 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsrs r0, r0, #0x18 + cmp r4, r0 + blo _0811C1F2 + movs r1, #1 +_0811C1F2: + adds r0, r1, #0 + b _0811C218 + .align 2, 0 +_0811C1F8: .4byte 0x02039DE4 +_0811C1FC: + ldrb r0, [r1, #0xb] + bl sub_0811C160 + movs r2, #0 + ldr r1, [r4] + ldrb r1, [r1, #0xa] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r1, r0 + ble _0811C216 + movs r2, #1 +_0811C216: + adds r0, r2, #0 +_0811C218: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811C1CC + + thumb_func_start sub_0811C220 +sub_0811C220: @ 0x0811C220 + push {r4, lr} + bl sub_0811C140 + adds r4, r0, #0 + bl sub_0811FB08 + movs r1, #0 + lsls r4, r4, #0x10 + lsls r0, r0, #0x10 + cmp r4, r0 + blo _0811C238 + movs r1, #1 +_0811C238: + adds r0, r1, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0811C220 + + thumb_func_start FooterHasFourOptions +FooterHasFourOptions: @ 0x0811C240 + ldr r2, _0811C258 + ldr r0, _0811C25C + ldr r0, [r0] + ldrb r1, [r0, #1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrb r0, [r0, #3] + lsrs r0, r0, #7 + bx lr + .align 2, 0 +_0811C258: .4byte 0x08573134 +_0811C25C: .4byte 0x02039DE4 + thumb_func_end FooterHasFourOptions + + thumb_func_start GetEasyChatScreenType +GetEasyChatScreenType: @ 0x0811C260 + ldr r0, _0811C268 + ldr r0, [r0] + ldrb r0, [r0] + bx lr + .align 2, 0 +_0811C268: .4byte 0x02039DE4 + thumb_func_end GetEasyChatScreenType + + thumb_func_start GetEasyChatScreenFrameId +GetEasyChatScreenFrameId: @ 0x0811C26C + ldr r2, _0811C284 + ldr r0, _0811C288 + ldr r0, [r0] + ldrb r1, [r0, #1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrb r0, [r0, #3] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x19 + bx lr + .align 2, 0 +_0811C284: .4byte 0x08573134 +_0811C288: .4byte 0x02039DE4 + thumb_func_end GetEasyChatScreenFrameId + + thumb_func_start GetTitleText +GetTitleText: @ 0x0811C28C + ldr r0, _0811C294 + ldr r0, [r0] + ldr r0, [r0, #0x34] + bx lr + .align 2, 0 +_0811C294: .4byte 0x02039DE4 + thumb_func_end GetTitleText + + thumb_func_start GetEasyChatWordBuffer +GetEasyChatWordBuffer: @ 0x0811C298 + ldr r0, _0811C2A0 + ldr r0, [r0] + adds r0, #0x3c + bx lr + .align 2, 0 +_0811C2A0: .4byte 0x02039DE4 + thumb_func_end GetEasyChatWordBuffer + + thumb_func_start GetNumRows +GetNumRows: @ 0x0811C2A4 + ldr r0, _0811C2AC + ldr r0, [r0] + ldrb r0, [r0, #3] + bx lr + .align 2, 0 +_0811C2AC: .4byte 0x02039DE4 + thumb_func_end GetNumRows + + thumb_func_start GetNumColumns +GetNumColumns: @ 0x0811C2B0 + ldr r0, _0811C2B8 + ldr r0, [r0] + ldrb r0, [r0, #2] + bx lr + .align 2, 0 +_0811C2B8: .4byte 0x02039DE4 + thumb_func_end GetNumColumns + + thumb_func_start GetMainCursorColumn +GetMainCursorColumn: @ 0x0811C2BC + ldr r0, _0811C2C4 + ldr r0, [r0] + ldrb r0, [r0, #5] + bx lr + .align 2, 0 +_0811C2C4: .4byte 0x02039DE4 + thumb_func_end GetMainCursorColumn + + thumb_func_start GetMainCursorRow +GetMainCursorRow: @ 0x0811C2C8 + ldr r0, _0811C2D0 + ldr r0, [r0] + ldrb r0, [r0, #6] + bx lr + .align 2, 0 +_0811C2D0: .4byte 0x02039DE4 + thumb_func_end GetMainCursorRow + + thumb_func_start GetEasyChatInstructionsText +GetEasyChatInstructionsText: @ 0x0811C2D4 + push {r4, r5, lr} + ldr r4, _0811C304 + ldr r2, _0811C308 + ldr r5, [r2] + ldrb r3, [r5, #1] + lsls r2, r3, #1 + adds r2, r2, r3 + lsls r2, r2, #3 + adds r3, r4, #0 + adds r3, #8 + adds r2, r2, r3 + ldr r2, [r2] + str r2, [r0] + ldrb r2, [r5, #1] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r4, #0xc + adds r0, r0, r4 + ldr r0, [r0] + str r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0811C304: .4byte 0x08573134 +_0811C308: .4byte 0x02039DE4 + thumb_func_end GetEasyChatInstructionsText + + thumb_func_start GetEasyChatConfirmText +GetEasyChatConfirmText: @ 0x0811C30C + push {r4, r5, lr} + ldr r4, _0811C33C + ldr r2, _0811C340 + ldr r5, [r2] + ldrb r3, [r5, #1] + lsls r2, r3, #1 + adds r2, r2, r3 + lsls r2, r2, #3 + adds r3, r4, #0 + adds r3, #0x10 + adds r2, r2, r3 + ldr r2, [r2] + str r2, [r0] + ldrb r2, [r5, #1] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r4, #0x14 + adds r0, r0, r4 + ldr r0, [r0] + str r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0811C33C: .4byte 0x08573134 +_0811C340: .4byte 0x02039DE4 + thumb_func_end GetEasyChatConfirmText + + thumb_func_start sub_0811C344 +sub_0811C344: @ 0x0811C344 + push {lr} + adds r2, r0, #0 + ldr r0, _0811C358 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #4 + bne _0811C360 + ldr r0, _0811C35C + b _0811C37E + .align 2, 0 +_0811C358: .4byte 0x02039DE4 +_0811C35C: .4byte 0x085CBA71 +_0811C360: + cmp r0, #4 + blt _0811C37C + cmp r0, #0x10 + bgt _0811C37C + cmp r0, #0xf + blt _0811C37C + ldr r0, _0811C374 + str r0, [r2] + ldr r0, _0811C378 + b _0811C382 + .align 2, 0 +_0811C374: .4byte 0x085CBCAB +_0811C378: .4byte 0x085CBCB7 +_0811C37C: + ldr r0, _0811C388 +_0811C37E: + str r0, [r2] + movs r0, #0 +_0811C382: + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0811C388: .4byte 0x085CBA63 + thumb_func_end sub_0811C344 + + thumb_func_start GetEasyChatConfirmDeletionText +GetEasyChatConfirmDeletionText: @ 0x0811C38C + ldr r2, _0811C398 + str r2, [r0] + ldr r0, _0811C39C + str r0, [r1] + bx lr + .align 2, 0 +_0811C398: .4byte 0x085CBAA7 +_0811C39C: .4byte 0x085CBAB6 + thumb_func_end GetEasyChatConfirmDeletionText + + thumb_func_start sub_0811C3A0 +sub_0811C3A0: @ 0x0811C3A0 + ldr r2, _0811C3B0 + ldr r3, [r2] + ldrb r2, [r3, #0xa] + strb r2, [r0] + ldrb r0, [r3, #0xb] + strb r0, [r1] + bx lr + .align 2, 0 +_0811C3B0: .4byte 0x02039DE4 + thumb_func_end sub_0811C3A0 + + thumb_func_start sub_0811C3B4 +sub_0811C3B4: @ 0x0811C3B4 + ldr r0, _0811C3BC + ldr r0, [r0] + ldrb r0, [r0, #9] + bx lr + .align 2, 0 +_0811C3BC: .4byte 0x02039DE4 + thumb_func_end sub_0811C3B4 + + thumb_func_start sub_0811C3C0 +sub_0811C3C0: @ 0x0811C3C0 + ldr r0, _0811C3C8 + ldr r0, [r0] + ldrb r0, [r0, #0xc] + bx lr + .align 2, 0 +_0811C3C8: .4byte 0x02039DE4 + thumb_func_end sub_0811C3C0 + + thumb_func_start sub_0811C3CC +sub_0811C3CC: @ 0x0811C3CC + ldr r2, _0811C3DC + ldr r3, [r2] + ldrb r2, [r3, #0x10] + strb r2, [r0] + ldrb r0, [r3, #0x11] + strb r0, [r1] + bx lr + .align 2, 0 +_0811C3DC: .4byte 0x02039DE4 + thumb_func_end sub_0811C3CC + + thumb_func_start sub_0811C3E0 +sub_0811C3E0: @ 0x0811C3E0 + ldr r0, _0811C3E8 + ldr r0, [r0] + ldrb r0, [r0, #0xe] + bx lr + .align 2, 0 +_0811C3E8: .4byte 0x02039DE4 + thumb_func_end sub_0811C3E0 + + thumb_func_start sub_0811C3EC +sub_0811C3EC: @ 0x0811C3EC + ldr r0, _0811C3F4 + ldr r0, [r0] + ldrb r0, [r0, #0xf] + bx lr + .align 2, 0 +_0811C3F4: .4byte 0x02039DE4 + thumb_func_end sub_0811C3EC + + thumb_func_start sub_0811C3F8 +sub_0811C3F8: @ 0x0811C3F8 + movs r0, #0 + bx lr + thumb_func_end sub_0811C3F8 + + thumb_func_start sub_0811C3FC +sub_0811C3FC: @ 0x0811C3FC + push {lr} + ldr r0, _0811C410 + ldr r1, [r0] + ldrb r0, [r1, #4] + cmp r0, #2 + beq _0811C414 + cmp r0, #3 + beq _0811C41E + b _0811C428 + .align 2, 0 +_0811C410: .4byte 0x02039DE4 +_0811C414: + ldrb r0, [r1, #9] + cmp r0, #0 + bne _0811C428 + ldrb r0, [r1, #0xc] + b _0811C420 +_0811C41E: + ldrb r0, [r1, #0xe] +_0811C420: + cmp r0, #0 + beq _0811C428 + movs r0, #1 + b _0811C42A +_0811C428: + movs r0, #0 +_0811C42A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811C3FC + + thumb_func_start sub_0811C430 +sub_0811C430: @ 0x0811C430 + push {lr} + ldr r0, _0811C444 + ldr r2, [r0] + ldrb r0, [r2, #4] + cmp r0, #2 + beq _0811C448 + cmp r0, #3 + beq _0811C45E + b _0811C46C + .align 2, 0 +_0811C444: .4byte 0x02039DE4 +_0811C448: + ldrb r0, [r2, #9] + cmp r0, #0 + bne _0811C46C + ldrb r1, [r2, #0xc] + adds r1, #4 + ldrb r0, [r2, #0xd] + subs r0, #1 + cmp r1, r0 + bgt _0811C46C + movs r0, #1 + b _0811C46E +_0811C45E: + ldrb r0, [r2, #0xe] + adds r0, #4 + ldrb r2, [r2, #0xf] + cmp r0, r2 + bgt _0811C46C + movs r0, #1 + b _0811C46E +_0811C46C: + movs r0, #0 +_0811C46E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811C430 + + thumb_func_start FooterHasFourOptions_ +FooterHasFourOptions_: @ 0x0811C474 + push {lr} + bl FooterHasFourOptions + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end FooterHasFourOptions_ + + thumb_func_start sub_0811C480 +sub_0811C480: @ 0x0811C480 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + movs r2, #0 + cmp r2, r3 + bhs _0811C4B6 + ldr r0, _0811C4A8 + ldr r0, [r0] + adds r4, r0, #0 + adds r4, #0x3c +_0811C496: + lsls r0, r2, #1 + adds r1, r0, r5 + adds r0, r4, r0 + ldrh r1, [r1] + ldrh r0, [r0] + cmp r1, r0 + beq _0811C4AC + movs r0, #1 + b _0811C4B8 + .align 2, 0 +_0811C4A8: .4byte 0x02039DE4 +_0811C4AC: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, r3 + blo _0811C496 +_0811C4B6: + movs r0, #0 +_0811C4B8: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811C480 + + thumb_func_start GetDisplayedPersonType +GetDisplayedPersonType: @ 0x0811C4C0 + ldr r0, _0811C4C8 + ldr r0, [r0] + ldrb r0, [r0, #0x12] + bx lr + .align 2, 0 +_0811C4C8: .4byte 0x02039DE4 + thumb_func_end GetDisplayedPersonType + + thumb_func_start GetEachChatScreenTemplateId +GetEachChatScreenTemplateId: @ 0x0811C4CC + push {lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + movs r1, #0 + ldr r2, _0811C4E4 +_0811C4D6: + ldrb r0, [r2] + cmp r0, r3 + bne _0811C4E8 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + b _0811C4F2 + .align 2, 0 +_0811C4E4: .4byte 0x08573134 +_0811C4E8: + adds r2, #0x18 + adds r1, #1 + cmp r1, #0x14 + bls _0811C4D6 + movs r0, #0 +_0811C4F2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetEachChatScreenTemplateId + + thumb_func_start sub_0811C4F8 +sub_0811C4F8: @ 0x0811C4F8 + push {r4, lr} + movs r2, #0 + ldr r0, _0811C518 + ldr r0, [r0] + ldrb r1, [r0, #7] + cmp r2, r1 + bge _0811C528 + ldr r4, _0811C51C + adds r3, r1, #0 + adds r1, r0, #0 + adds r1, #0x3c +_0811C50E: + ldrh r0, [r1] + cmp r0, r4 + beq _0811C520 + movs r0, #0 + b _0811C52A + .align 2, 0 +_0811C518: .4byte 0x02039DE4 +_0811C51C: .4byte 0x0000FFFF +_0811C520: + adds r1, #2 + adds r2, #1 + cmp r2, r3 + blt _0811C50E +_0811C528: + movs r0, #1 +_0811C52A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0811C4F8 + + thumb_func_start sub_0811C530 +sub_0811C530: @ 0x0811C530 + push {r4, lr} + movs r2, #0 + ldr r0, _0811C550 + ldr r0, [r0] + ldrb r1, [r0, #7] + cmp r2, r1 + bge _0811C560 + ldr r4, _0811C554 + adds r3, r1, #0 + adds r1, r0, #0 + adds r1, #0x3c +_0811C546: + ldrh r0, [r1] + cmp r0, r4 + bne _0811C558 + movs r0, #0 + b _0811C562 + .align 2, 0 +_0811C550: .4byte 0x02039DE4 +_0811C554: .4byte 0x0000FFFF +_0811C558: + adds r1, #2 + adds r2, #1 + cmp r2, r3 + blt _0811C546 +_0811C560: + movs r0, #1 +_0811C562: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0811C530 + + thumb_func_start sub_0811C568 +sub_0811C568: @ 0x0811C568 + push {r4, lr} + ldr r0, _0811C57C + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #0x11 + bne _0811C584 + bl sub_0811C4F8 + b _0811C5A0 + .align 2, 0 +_0811C57C: .4byte 0x02039DE4 +_0811C580: + movs r0, #0 + b _0811C5A0 +_0811C584: + ldr r0, _0811C5A8 + ldr r0, [r0] + movs r2, #0 + ldr r3, _0811C5AC + ldr r4, _0811C5B0 + adds r1, r0, r4 +_0811C590: + ldrh r0, [r1] + cmp r0, r3 + bne _0811C580 + adds r1, #2 + adds r2, #1 + cmp r2, #8 + ble _0811C590 + movs r0, #1 +_0811C5A0: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0811C5A8: .4byte 0x03005AEC +_0811C5AC: .4byte 0x0000FFFF +_0811C5B0: .4byte 0x00003B5A + thumb_func_end sub_0811C568 + + thumb_func_start sub_0811C5B4 +sub_0811C5B4: @ 0x0811C5B4 + push {lr} + ldr r0, _0811C5C8 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #0x12 + bne _0811C5CC + bl sub_0811C4F8 + b _0811C5E2 + .align 2, 0 +_0811C5C8: .4byte 0x02039DE4 +_0811C5CC: + ldr r0, _0811C5E8 + ldr r0, [r0] + ldr r1, _0811C5EC + adds r0, r0, r1 + movs r2, #0 + ldrh r1, [r0, #0x14] + ldr r0, _0811C5F0 + cmp r1, r0 + bne _0811C5E0 + movs r2, #1 +_0811C5E0: + adds r0, r2, #0 +_0811C5E2: + pop {r1} + bx r1 + .align 2, 0 +_0811C5E8: .4byte 0x03005AEC +_0811C5EC: .4byte 0x00003B58 +_0811C5F0: .4byte 0x0000FFFF + thumb_func_end sub_0811C5B4 + + thumb_func_start sub_0811C5F4 +sub_0811C5F4: @ 0x0811C5F4 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0811C61C + ldr r4, [r0] + bl DynamicPlaceholderTextUtil_Reset + ldr r0, _0811C620 + adds r4, r4, r0 + adds r0, r4, #0 + bl StringLength + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0811C624 + movs r0, #0 + adds r1, r4, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + b _0811C62C + .align 2, 0 +_0811C61C: .4byte 0x03005AEC +_0811C620: .4byte 0x00003B70 +_0811C624: + ldr r1, _0811C63C + movs r0, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr +_0811C62C: + ldr r1, _0811C640 + adds r0, r5, #0 + bl DynamicPlaceholderTextUtil_ExpandPlaceholders + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0811C63C: .4byte 0x085CBC85 +_0811C640: .4byte 0x085CBC7B + thumb_func_end sub_0811C5F4 + + thumb_func_start sub_0811C644 +sub_0811C644: @ 0x0811C644 + push {r4, r5, lr} + ldr r0, _0811C654 + ldr r0, [r0] + adds r4, r0, #0 + adds r4, #0x3c + ldr r2, _0811C658 + movs r5, #0 + b _0811C676 + .align 2, 0 +_0811C654: .4byte 0x02039DE4 +_0811C658: .4byte 0x02021C54 +_0811C65C: + ldrh r1, [r4] + adds r0, r2, #0 + movs r2, #0 + bl CopyEasyChatWordPadded + adds r2, r0, #0 + movs r0, #0 + strb r0, [r2] + adds r2, #1 + adds r4, #2 + adds r5, #1 + ldr r0, _0811C688 + ldr r0, [r0] +_0811C676: + ldrb r0, [r0, #7] + cmp r5, r0 + blt _0811C65C + subs r2, #1 + movs r0, #0xff + strb r0, [r2] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0811C688: .4byte 0x02039DE4 + thumb_func_end sub_0811C644 + + thumb_func_start sub_0811C68C +sub_0811C68C: @ 0x0811C68C + push {r4, r5, lr} + ldr r5, _0811C6A4 + ldr r0, [r5] + ldrb r0, [r0] + cmp r0, #9 + beq _0811C6F4 + cmp r0, #9 + bgt _0811C6A8 + cmp r0, #0 + beq _0811C6B2 + b _0811C718 + .align 2, 0 +_0811C6A4: .4byte 0x02039DE4 +_0811C6A8: + cmp r0, #0xd + beq _0811C710 + cmp r0, #0x14 + beq _0811C6C0 + b _0811C718 +_0811C6B2: + ldr r0, _0811C6BC + bl FlagSet + b _0811C718 + .align 2, 0 +_0811C6BC: .4byte 0x00000865 +_0811C6C0: + bl sub_0811C724 + cmp r0, #0 + beq _0811C6D4 + ldr r1, _0811C6D0 + movs r0, #1 + b _0811C716 + .align 2, 0 +_0811C6D0: .4byte 0x02037280 +_0811C6D4: + bl sub_0811C744 + adds r1, r0, #0 + cmp r1, #0 + beq _0811C6E8 + ldr r1, _0811C6E4 + movs r0, #2 + b _0811C716 + .align 2, 0 +_0811C6E4: .4byte 0x02037280 +_0811C6E8: + ldr r0, _0811C6F0 + strh r1, [r0] + b _0811C718 + .align 2, 0 +_0811C6F0: .4byte 0x02037280 +_0811C6F4: + bl sub_0811C644 + ldr r4, _0811C70C + ldr r0, [r5] + adds r0, #0x3c + bl sub_081226E4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + b _0811C718 + .align 2, 0 +_0811C70C: .4byte 0x02037280 +_0811C710: + bl sub_0811C764 + ldr r1, _0811C720 +_0811C716: + strh r0, [r1] +_0811C718: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0811C720: .4byte 0x02037280 + thumb_func_end sub_0811C68C + + thumb_func_start sub_0811C724 +sub_0811C724: @ 0x0811C724 + push {lr} + ldr r0, _0811C740 + movs r1, #4 + bl sub_0811C480 + movs r1, #0 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811C738 + movs r1, #1 +_0811C738: + adds r0, r1, #0 + pop {r1} + bx r1 + .align 2, 0 +_0811C740: .4byte 0x0857332C + thumb_func_end sub_0811C724 + + thumb_func_start sub_0811C744 +sub_0811C744: @ 0x0811C744 + push {lr} + ldr r0, _0811C760 + movs r1, #4 + bl sub_0811C480 + movs r1, #0 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811C758 + movs r1, #1 +_0811C758: + adds r0, r1, #0 + pop {r1} + bx r1 + .align 2, 0 +_0811C760: .4byte 0x08573334 + thumb_func_end sub_0811C744 + + thumb_func_start sub_0811C764 +sub_0811C764: @ 0x0811C764 + push {r4, r5, lr} + movs r4, #0 + movs r5, #0x80 + lsls r5, r5, #9 +_0811C76C: + lsls r0, r4, #2 + ldr r1, _0811C784 + adds r0, r0, r1 + movs r1, #2 + bl sub_0811C480 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811C788 + lsrs r0, r5, #0x10 + b _0811C796 + .align 2, 0 +_0811C784: .4byte 0x0857333C +_0811C788: + movs r0, #0x80 + lsls r0, r0, #9 + adds r5, r5, r0 + adds r4, #1 + cmp r4, #4 + ble _0811C76C + movs r0, #0 +_0811C796: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_0811C764 + + thumb_func_start sub_0811C79C +sub_0811C79C: @ 0x0811C79C + push {r4, r5, r6, lr} + ldr r6, _0811C81C + ldr r1, [r6] + ldrb r0, [r1] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bhi _0811C814 + movs r0, #0 + strb r0, [r1, #0x13] + ldr r4, [r6] + bl sub_0811C098 + lsls r0, r0, #0x10 + lsrs r0, r0, #0xf + adds r4, #0x3c + adds r4, r4, r0 + ldrh r0, [r4] + bl GetEasyChatWordStringLength + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #6 + bhi _0811C814 + ldr r0, [r6] + movs r1, #6 + ldrsb r1, [r0, r1] + ldrb r0, [r0, #2] + adds r5, r1, #0 + muls r5, r0, r5 + movs r4, #0 + cmp r4, r0 + bge _0811C80C +_0811C7E0: + ldr r2, [r6] + movs r0, #5 + ldrsb r0, [r2, r0] + cmp r4, r0 + beq _0811C800 + lsls r1, r5, #1 + adds r0, r2, #0 + adds r0, #0x3c + adds r0, r0, r1 + ldrh r0, [r0] + bl GetEasyChatWordStringLength + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #6 + bls _0811C814 +_0811C800: + adds r5, #1 + adds r4, #1 + ldr r0, [r6] + ldrb r0, [r0, #2] + cmp r4, r0 + blt _0811C7E0 +_0811C80C: + ldr r0, _0811C81C + ldr r1, [r0] + movs r0, #1 + strb r0, [r1, #0x13] +_0811C814: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0811C81C: .4byte 0x02039DE4 + thumb_func_end sub_0811C79C + + thumb_func_start sub_0811C820 +sub_0811C820: @ 0x0811C820 + push {lr} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r0, _0811C844 + ldr r0, [r0] + ldrb r0, [r0, #0x13] + cmp r0, #0 + beq _0811C848 + adds r0, r1, #0 + bl GetEasyChatWordStringLength + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #6 + bls _0811C848 + movs r0, #1 + b _0811C84A + .align 2, 0 +_0811C844: .4byte 0x02039DE4 +_0811C848: + movs r0, #0 +_0811C84A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811C820 + + thumb_func_start sub_0811C850 +sub_0811C850: @ 0x0811C850 + push {lr} + bl sub_0811D748 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0811C860 + movs r0, #1 + b _0811C862 +_0811C860: + movs r0, #0 +_0811C862: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811C850 + + thumb_func_start sub_0811C868 +sub_0811C868: @ 0x0811C868 + push {r4, lr} + sub sp, #8 + ldr r0, _0811C884 + ldr r0, [r0] + ldrh r0, [r0] + cmp r0, #5 + bls _0811C878 + b _0811C9E0 +_0811C878: + lsls r0, r0, #2 + ldr r1, _0811C888 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0811C884: .4byte 0x02039DE8 +_0811C888: .4byte 0x0811C88C +_0811C88C: @ jump table + .4byte _0811C8A4 @ case 0 + .4byte _0811C908 @ case 1 + .4byte _0811C950 @ case 2 + .4byte _0811C96C @ case 3 + .4byte _0811C97E @ case 4 + .4byte _0811C994 @ case 5 +_0811C8A4: + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _0811C8F4 + movs r0, #0 + movs r2, #4 + bl InitBgsFromTemplates + ldr r4, _0811C8F8 + ldr r1, [r4] + ldr r0, _0811C8FC + adds r1, r1, r0 + movs r0, #3 + bl SetBgTilemapBuffer + ldr r1, [r4] + movs r0, #0xbf + lsls r0, r0, #2 + adds r1, r1, r0 + movs r0, #1 + bl SetBgTilemapBuffer + ldr r0, _0811C900 + bl InitWindows + bl DeactivateAllTextPrinters + bl sub_0811D814 + bl sub_0811D7B4 + movs r0, #0 + str r0, [sp, #4] + movs r1, #0xe0 + lsls r1, r1, #0x13 + ldr r2, _0811C904 + add r0, sp, #4 + bl CpuFastSet + b _0811C9E4 + .align 2, 0 +_0811C8F4: .4byte 0x0857437C +_0811C8F8: .4byte 0x02039DE8 +_0811C8FC: .4byte 0x00000AFC +_0811C900: .4byte 0x0857438C +_0811C904: .4byte 0x01000100 +_0811C908: + ldr r1, _0811C944 + movs r0, #0 + str r0, [sp] + movs r0, #3 + movs r2, #0 + movs r3, #0 + bl DecompressAndLoadBgGfxUsingHeap + ldr r1, _0811C948 + movs r0, #3 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + bl sub_0811DE14 + ldr r0, _0811C94C + ldr r0, [r0] + movs r1, #0xbf + lsls r1, r1, #2 + adds r0, r0, r1 + bl sub_0811DCAC + bl sub_0811DB10 + movs r0, #3 + bl CopyBgTilemapBufferToVram + b _0811C9E4 + .align 2, 0 +_0811C944: .4byte 0x08573E84 +_0811C948: .4byte 0x085740E4 +_0811C94C: .4byte 0x02039DE8 +_0811C950: + ldr r1, _0811C968 + movs r0, #0 + str r0, [sp] + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl DecompressAndLoadBgGfxUsingHeap + movs r0, #1 + bl CopyBgTilemapBufferToVram + b _0811C9E4 + .align 2, 0 +_0811C968: .4byte 0x0857427C +_0811C96C: + bl sub_0811D87C + bl sub_0811D990 + bl sub_0811DBA8 + bl sub_0811DE8C + b _0811C9E4 +_0811C97E: + bl sub_0811E6A4 + bl GetEasyChatScreenType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + beq _0811C9E4 + bl sub_0811E6D8 + b _0811C9E4 +_0811C994: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811C9EE + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_0811E670 + movs r0, #0x48 + movs r1, #0x3f + bl SetGpuReg + movs r0, #0x4a + movs r1, #0x3b + bl SetGpuReg + movs r0, #3 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #0 + bl ShowBg + bl sub_0811ED20 + bl sub_0811EE6C + bl sub_0811EF74 + b _0811C9E4 +_0811C9E0: + movs r0, #0 + b _0811C9F0 +_0811C9E4: + ldr r0, _0811C9F8 + ldr r1, [r0] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_0811C9EE: + movs r0, #1 +_0811C9F0: + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0811C9F8: .4byte 0x02039DE8 + thumb_func_end sub_0811C868 + + thumb_func_start sub_0811C9FC +sub_0811C9FC: @ 0x0811C9FC + push {r4, lr} + ldr r4, _0811CA14 + ldr r0, [r4] + cmp r0, #0 + beq _0811CA0E + bl Free + movs r0, #0 + str r0, [r4] +_0811CA0E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811CA14: .4byte 0x02039DE8 + thumb_func_end sub_0811C9FC + + thumb_func_start sub_0811CA18 +sub_0811CA18: @ 0x0811CA18 + push {lr} + ldr r1, _0811CA2C + ldr r1, [r1] + movs r2, #0 + strh r0, [r1, #4] + strh r2, [r1] + bl sub_0811CA30 + pop {r0} + bx r0 + .align 2, 0 +_0811CA2C: .4byte 0x02039DE8 + thumb_func_end sub_0811CA18 + + thumb_func_start sub_0811CA30 +sub_0811CA30: @ 0x0811CA30 + push {lr} + ldr r0, _0811CA48 + ldr r0, [r0] + ldrh r0, [r0, #4] + cmp r0, #0x22 + bls _0811CA3E + b _0811CB8E +_0811CA3E: + lsls r0, r0, #2 + ldr r1, _0811CA4C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0811CA48: .4byte 0x02039DE8 +_0811CA4C: .4byte 0x0811CA50 +_0811CA50: @ jump table + .4byte _0811CB8E @ case 0 + .4byte _0811CADC @ case 1 + .4byte _0811CAE2 @ case 2 + .4byte _0811CAE8 @ case 3 + .4byte _0811CAEE @ case 4 + .4byte _0811CAF4 @ case 5 + .4byte _0811CAFA @ case 6 + .4byte _0811CB00 @ case 7 + .4byte _0811CB06 @ case 8 + .4byte _0811CB0C @ case 9 + .4byte _0811CB12 @ case 10 + .4byte _0811CB18 @ case 11 + .4byte _0811CB1E @ case 12 + .4byte _0811CB24 @ case 13 + .4byte _0811CB2A @ case 14 + .4byte _0811CB30 @ case 15 + .4byte _0811CB36 @ case 16 + .4byte _0811CB3C @ case 17 + .4byte _0811CB42 @ case 18 + .4byte _0811CB48 @ case 19 + .4byte _0811CB4E @ case 20 + .4byte _0811CB54 @ case 21 + .4byte _0811CB5A @ case 22 + .4byte _0811CB60 @ case 23 + .4byte _0811CB8E @ case 24 + .4byte _0811CB8E @ case 25 + .4byte _0811CB8E @ case 26 + .4byte _0811CB8E @ case 27 + .4byte _0811CB8E @ case 28 + .4byte _0811CB66 @ case 29 + .4byte _0811CB6C @ case 30 + .4byte _0811CB72 @ case 31 + .4byte _0811CB78 @ case 32 + .4byte _0811CB7E @ case 33 + .4byte _0811CB84 @ case 34 +_0811CADC: + bl sub_0811CB94 + b _0811CB88 +_0811CAE2: + bl sub_0811CBCC + b _0811CB88 +_0811CAE8: + bl sub_0811CC88 + b _0811CB88 +_0811CAEE: + bl sub_0811CD40 + b _0811CB88 +_0811CAF4: + bl sub_0811CCB8 + b _0811CB88 +_0811CAFA: + bl sub_0811CCFC + b _0811CB88 +_0811CB00: + bl sub_0811CD84 + b _0811CB88 +_0811CB06: + bl sub_0811CDCC + b _0811CB88 +_0811CB0C: + bl sub_0811CE08 + b _0811CB88 +_0811CB12: + bl sub_0811CED4 + b _0811CB88 +_0811CB18: + bl sub_0811D0E4 + b _0811CB88 +_0811CB1E: + bl sub_0811D1A4 + b _0811CB88 +_0811CB24: + bl sub_0811D250 + b _0811CB88 +_0811CB2A: + bl sub_0811D310 + b _0811CB88 +_0811CB30: + bl sub_0811D034 + b _0811CB88 +_0811CB36: + bl sub_0811D040 + b _0811CB88 +_0811CB3C: + bl sub_0811D088 + b _0811CB88 +_0811CB42: + bl sub_0811D3CC + b _0811CB88 +_0811CB48: + bl sub_0811D44C + b _0811CB88 +_0811CB4E: + bl sub_0811D3D8 + b _0811CB88 +_0811CB54: + bl sub_0811D544 + b _0811CB88 +_0811CB5A: + bl sub_0811D4BC + b _0811CB88 +_0811CB60: + bl sub_0811CF74 + b _0811CB88 +_0811CB66: + bl sub_0811D5C8 + b _0811CB88 +_0811CB6C: + bl sub_0811D608 + b _0811CB88 +_0811CB72: + bl sub_0811D648 + b _0811CB88 +_0811CB78: + bl sub_0811D688 + b _0811CB88 +_0811CB7E: + bl sub_0811D6C8 + b _0811CB88 +_0811CB84: + bl sub_0811D708 +_0811CB88: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0811CB90 +_0811CB8E: + movs r0, #0 +_0811CB90: + pop {r1} + bx r1 + thumb_func_end sub_0811CA30 + + thumb_func_start sub_0811CB94 +sub_0811CB94: @ 0x0811CB94 + push {r4, lr} + ldr r4, _0811CBA8 + ldr r0, [r4] + ldrh r0, [r0] + cmp r0, #0 + beq _0811CBAC + cmp r0, #1 + beq _0811CBBA + b _0811CBC4 + .align 2, 0 +_0811CBA8: .4byte 0x02039DE8 +_0811CBAC: + bl sub_0811DBA8 + ldr r1, [r4] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _0811CBC4 +_0811CBBA: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0811CBC6 +_0811CBC4: + movs r0, #1 +_0811CBC6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0811CB94 + + thumb_func_start sub_0811CBCC +sub_0811CBCC: @ 0x0811CBCC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + bl GetEasyChatWordBuffer + adds r5, r0, #0 + bl GetEasyChatScreenFrameId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + bl GetMainCursorColumn + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + bl GetMainCursorRow + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + bl GetNumColumns + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, sb + muls r1, r0, r1 + adds r0, r1, #0 + lsls r0, r0, #1 + adds r5, r5, r0 + ldr r1, _0811CC3C + mov r2, sl + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1b + lsrs r0, r0, #0xb + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r0, r1 + lsrs r4, r0, #0x10 + movs r6, #0 + cmp r6, r7 + bhs _0811CC56 + ldr r2, _0811CC40 + mov r8, r2 +_0811CC2A: + ldrh r0, [r5] + cmp r0, r8 + beq _0811CC44 + bl GetEasyChatWordStringLength + adds r1, r4, #2 + adds r0, r0, r1 + b _0811CC46 + .align 2, 0 +_0811CC3C: .4byte 0x08574358 +_0811CC40: .4byte 0x0000FFFF +_0811CC44: + adds r0, r4, #7 +_0811CC46: + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r5, #2 + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, r7 + blo _0811CC2A +_0811CC56: + ldr r1, _0811CC84 + mov r2, sl + lsls r0, r2, #2 + adds r0, r0, r1 + ldrb r1, [r0] + lsrs r1, r1, #5 + mov r2, sb + lsls r0, r2, #1 + adds r1, r1, r0 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl sub_0811E76C + movs r0, #0 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0811CC84: .4byte 0x08574358 + thumb_func_end sub_0811CBCC + + thumb_func_start sub_0811CC88 +sub_0811CC88: @ 0x0811CC88 + push {r4, lr} + ldr r4, _0811CCB0 + bl GetMainCursorColumn + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0811CCB4 + ldr r1, [r1] + ldrb r1, [r1, #0xa] + lsls r1, r1, #2 + adds r0, r0, r1 + adds r0, r0, r4 + ldrb r0, [r0] + movs r1, #0xa + bl sub_0811E76C + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0811CCB0: .4byte 0x085743B4 +_0811CCB4: .4byte 0x02039DE8 + thumb_func_end sub_0811CC88 + + thumb_func_start sub_0811CCB8 +sub_0811CCB8: @ 0x0811CCB8 + push {r4, lr} + ldr r4, _0811CCCC + ldr r0, [r4] + ldrh r0, [r0] + cmp r0, #0 + beq _0811CCD0 + cmp r0, #1 + beq _0811CCEA + b _0811CCF4 + .align 2, 0 +_0811CCCC: .4byte 0x02039DE8 +_0811CCD0: + bl sub_0811E7A0 + movs r0, #2 + bl sub_0811D9D8 + movs r0, #1 + bl sub_0811DAE4 + ldr r1, [r4] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _0811CCF4 +_0811CCEA: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0811CCF6 +_0811CCF4: + movs r0, #1 +_0811CCF6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0811CCB8 + + thumb_func_start sub_0811CCFC +sub_0811CCFC: @ 0x0811CCFC + push {r4, lr} + ldr r4, _0811CD10 + ldr r0, [r4] + ldrh r0, [r0] + cmp r0, #0 + beq _0811CD14 + cmp r0, #1 + beq _0811CD2E + b _0811CD38 + .align 2, 0 +_0811CD10: .4byte 0x02039DE8 +_0811CD14: + bl sub_0811E7A0 + movs r0, #3 + bl sub_0811D9D8 + movs r0, #0 + bl sub_0811DAE4 + ldr r1, [r4] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _0811CD38 +_0811CD2E: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0811CD3A +_0811CD38: + movs r0, #1 +_0811CD3A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0811CCFC + + thumb_func_start sub_0811CD40 +sub_0811CD40: @ 0x0811CD40 + push {r4, lr} + ldr r4, _0811CD54 + ldr r0, [r4] + ldrh r0, [r0] + cmp r0, #0 + beq _0811CD58 + cmp r0, #1 + beq _0811CD72 + b _0811CD7C + .align 2, 0 +_0811CD54: .4byte 0x02039DE8 +_0811CD58: + bl sub_0811E7A0 + movs r0, #1 + bl sub_0811D9D8 + movs r0, #1 + bl sub_0811DAE4 + ldr r1, [r4] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _0811CD7C +_0811CD72: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0811CD7E +_0811CD7C: + movs r0, #1 +_0811CD7E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0811CD40 + + thumb_func_start sub_0811CD84 +sub_0811CD84: @ 0x0811CD84 + push {r4, lr} + ldr r4, _0811CD98 + ldr r0, [r4] + ldrh r0, [r0] + cmp r0, #0 + beq _0811CD9C + cmp r0, #1 + beq _0811CDBA + b _0811CDC4 + .align 2, 0 +_0811CD98: .4byte 0x02039DE8 +_0811CD9C: + bl sub_0811E7C0 + movs r0, #0 + bl sub_0811D9D8 + bl sub_0811DBA8 + movs r0, #0 + bl ShowBg + ldr r1, [r4] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _0811CDC4 +_0811CDBA: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0811CDC6 +_0811CDC4: + movs r0, #1 +_0811CDC6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0811CD84 + + thumb_func_start sub_0811CDCC +sub_0811CDCC: @ 0x0811CDCC + push {r4, lr} + ldr r4, _0811CDE0 + ldr r0, [r4] + ldrh r0, [r0] + cmp r0, #0 + beq _0811CDE4 + cmp r0, #1 + beq _0811CDFA + movs r0, #1 + b _0811CE02 + .align 2, 0 +_0811CDE0: .4byte 0x02039DE8 +_0811CDE4: + bl sub_0811E7C0 + movs r0, #0 + bl sub_0811D9D8 + bl sub_0811DBA8 + ldr r1, [r4] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_0811CDFA: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_0811CE02: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0811CDCC + + thumb_func_start sub_0811CE08 +sub_0811CE08: @ 0x0811CE08 + push {lr} + ldr r0, _0811CE20 + ldr r0, [r0] + ldrh r0, [r0] + cmp r0, #4 + bhi _0811CEC2 + lsls r0, r0, #2 + ldr r1, _0811CE24 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0811CE20: .4byte 0x02039DE8 +_0811CE24: .4byte 0x0811CE28 +_0811CE28: @ jump table + .4byte _0811CE3C @ case 0 + .4byte _0811CE58 @ case 1 + .4byte _0811CE6A @ case 2 + .4byte _0811CE80 @ case 3 + .4byte _0811CEA0 @ case 4 +_0811CE3C: + bl sub_0811E7A0 + movs r0, #0 + bl HideBg + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_0811E670 + bl sub_0811DEDC + b _0811CE8E +_0811CE58: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811CECC + movs r0, #0 + bl sub_0811E1E0 + b _0811CE8E +_0811CE6A: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811CECC + bl sub_0811E2B8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811CECC + b _0811CE8E +_0811CE80: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811CECC + bl sub_0811EAF8 +_0811CE8E: + ldr r0, _0811CE9C + ldr r1, [r0] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _0811CECC + .align 2, 0 +_0811CE9C: .4byte 0x02039DE8 +_0811CEA0: + bl sub_0811EB64 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811CECC + bl sub_0811E7D8 + movs r0, #0 + bl sub_0811EE2C + bl sub_0811ED98 + ldr r0, _0811CEC8 + ldr r1, [r0] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_0811CEC2: + movs r0, #0 + b _0811CECE + .align 2, 0 +_0811CEC8: .4byte 0x02039DE8 +_0811CECC: + movs r0, #1 +_0811CECE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811CE08 + + thumb_func_start sub_0811CED4 +sub_0811CED4: @ 0x0811CED4 + push {lr} + ldr r0, _0811CEEC + ldr r0, [r0] + ldrh r0, [r0] + cmp r0, #4 + bhi _0811CF6C + lsls r0, r0, #2 + ldr r1, _0811CEF0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0811CEEC: .4byte 0x02039DE8 +_0811CEF0: .4byte 0x0811CEF4 +_0811CEF4: @ jump table + .4byte _0811CF08 @ case 0 + .4byte _0811CF16 @ case 1 + .4byte _0811CF32 @ case 2 + .4byte _0811CF44 @ case 3 + .4byte _0811CF68 @ case 4 +_0811CF08: + bl sub_0811E814 + bl sub_0811EBF8 + bl sub_0811EDFC + b _0811CF58 +_0811CF16: + bl sub_0811EC1C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0811CF6C + movs r0, #1 + bl sub_0811E1E0 + ldr r0, _0811CF40 + ldr r1, [r0] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_0811CF32: + bl sub_0811E2B8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811CF6C + b _0811CF58 + .align 2, 0 +_0811CF40: .4byte 0x02039DE8 +_0811CF44: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811CF6C + bl sub_0811E7C0 + movs r0, #0 + bl ShowBg +_0811CF58: + ldr r0, _0811CF64 + ldr r1, [r0] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _0811CF6C + .align 2, 0 +_0811CF64: .4byte 0x02039DE8 +_0811CF68: + movs r0, #0 + b _0811CF6E +_0811CF6C: + movs r0, #1 +_0811CF6E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811CED4 + + thumb_func_start sub_0811CF74 +sub_0811CF74: @ 0x0811CF74 + push {lr} + ldr r0, _0811CF8C + ldr r0, [r0] + ldrh r0, [r0] + cmp r0, #4 + bhi _0811D02C + lsls r0, r0, #2 + ldr r1, _0811CF90 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0811CF8C: .4byte 0x02039DE8 +_0811CF90: .4byte 0x0811CF94 +_0811CF94: @ jump table + .4byte _0811CFA8 @ case 0 + .4byte _0811CFBC @ case 1 + .4byte _0811CFD6 @ case 2 + .4byte _0811CFFC @ case 3 + .4byte _0811D022 @ case 4 +_0811CFA8: + bl sub_0811E814 + bl sub_0811EDFC + bl sub_0811ECA8 + movs r0, #5 + bl sub_0811E1E0 + b _0811CFEA +_0811CFBC: + bl sub_0811E2B8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811D02C + bl sub_0811ED04 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811D02C + bl sub_0811DEDC + b _0811CFEA +_0811CFD6: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811D02C + movs r0, #6 + bl sub_0811E1E0 + bl sub_0811ECC4 +_0811CFEA: + ldr r0, _0811CFF8 + ldr r1, [r0] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _0811D02C + .align 2, 0 +_0811CFF8: .4byte 0x02039DE8 +_0811CFFC: + bl sub_0811E2B8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811D02C + bl sub_0811ED04 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811D02C + bl sub_0811ED98 + bl sub_0811E7D8 + ldr r0, _0811D028 + ldr r1, [r0] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_0811D022: + movs r0, #0 + b _0811D02E + .align 2, 0 +_0811D028: .4byte 0x02039DE8 +_0811D02C: + movs r0, #1 +_0811D02E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811CF74 + + thumb_func_start sub_0811D034 +sub_0811D034: @ 0x0811D034 + push {lr} + bl sub_0811E838 + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end sub_0811D034 + + thumb_func_start sub_0811D040 +sub_0811D040: @ 0x0811D040 + push {r4, lr} + ldr r4, _0811D054 + ldr r0, [r4] + ldrh r0, [r0] + cmp r0, #0 + beq _0811D058 + cmp r0, #1 + beq _0811D068 + b _0811D07E + .align 2, 0 +_0811D054: .4byte 0x02039DE8 +_0811D058: + movs r0, #1 + movs r1, #4 + bl sub_0811E5C0 + ldr r1, [r4] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_0811D068: + bl sub_0811E624 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811D07E + bl sub_0811E838 + bl sub_0811ED98 + movs r0, #0 + b _0811D080 +_0811D07E: + movs r0, #1 +_0811D080: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811D040 + + thumb_func_start sub_0811D088 +sub_0811D088: @ 0x0811D088 + push {r4, lr} + ldr r4, _0811D0A0 + ldr r0, [r4] + ldrh r0, [r0] + cmp r0, #1 + beq _0811D0BC + cmp r0, #1 + bgt _0811D0A4 + cmp r0, #0 + beq _0811D0AA + b _0811D0DC + .align 2, 0 +_0811D0A0: .4byte 0x02039DE8 +_0811D0A4: + cmp r0, #2 + beq _0811D0D4 + b _0811D0DC +_0811D0AA: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #4 + bl sub_0811E5C0 + ldr r1, [r4] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_0811D0BC: + bl sub_0811E624 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811D0DC + bl sub_0811ED98 + ldr r0, _0811D0D8 + ldr r1, [r0] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_0811D0D4: + movs r0, #0 + b _0811D0DE + .align 2, 0 +_0811D0D8: .4byte 0x02039DE8 +_0811D0DC: + movs r0, #1 +_0811D0DE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0811D088 + + thumb_func_start sub_0811D0E4 +sub_0811D0E4: @ 0x0811D0E4 + push {lr} + ldr r0, _0811D0FC + ldr r0, [r0] + ldrh r0, [r0] + cmp r0, #5 + bhi _0811D19C + lsls r0, r0, #2 + ldr r1, _0811D100 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0811D0FC: .4byte 0x02039DE8 +_0811D100: .4byte 0x0811D104 +_0811D104: @ jump table + .4byte _0811D11C @ case 0 + .4byte _0811D12A @ case 1 + .4byte _0811D13A @ case 2 + .4byte _0811D14C @ case 3 + .4byte _0811D16C @ case 4 + .4byte _0811D192 @ case 5 +_0811D11C: + bl sub_0811E814 + bl sub_0811EBF8 + bl sub_0811EDFC + b _0811D15C +_0811D12A: + bl sub_0811EC1C + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811D19C + bl sub_0811E1C8 + b _0811D15C +_0811D13A: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811D19C + movs r0, #2 + bl sub_0811E1E0 + b _0811D15C +_0811D14C: + bl sub_0811E2B8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811D19C + movs r0, #2 + bl sub_0811DEA0 +_0811D15C: + ldr r0, _0811D168 + ldr r1, [r0] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _0811D19C + .align 2, 0 +_0811D168: .4byte 0x02039DE8 +_0811D16C: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811D19C + bl sub_0811E9D0 + movs r0, #1 + bl sub_0811EE2C + bl sub_0811ED98 + bl sub_0811EEE0 + ldr r0, _0811D198 + ldr r1, [r0] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_0811D192: + movs r0, #0 + b _0811D19E + .align 2, 0 +_0811D198: .4byte 0x02039DE8 +_0811D19C: + movs r0, #1 +_0811D19E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811D0E4 + + thumb_func_start sub_0811D1A4 +sub_0811D1A4: @ 0x0811D1A4 + push {lr} + ldr r0, _0811D1BC + ldr r0, [r0] + ldrh r0, [r0] + cmp r0, #5 + bhi _0811D248 + lsls r0, r0, #2 + ldr r1, _0811D1C0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0811D1BC: .4byte 0x02039DE8 +_0811D1C0: .4byte 0x0811D1C4 +_0811D1C4: @ jump table + .4byte _0811D1DC @ case 0 + .4byte _0811D1E2 @ case 1 + .4byte _0811D1F4 @ case 2 + .4byte _0811D206 @ case 3 + .4byte _0811D228 @ case 4 + .4byte _0811D240 @ case 5 +_0811D1DC: + bl sub_0811DBA8 + b _0811D216 +_0811D1E2: + bl sub_0811EACC + bl sub_0811EDFC + bl sub_0811EF44 + bl sub_0811E1C8 + b _0811D216 +_0811D1F4: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811D248 + movs r0, #3 + bl sub_0811E1E0 + b _0811D216 +_0811D206: + bl sub_0811E2B8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811D248 + movs r0, #0 + bl ShowBg +_0811D216: + ldr r0, _0811D224 + ldr r1, [r0] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _0811D248 + .align 2, 0 +_0811D224: .4byte 0x02039DE8 +_0811D228: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811D248 + bl sub_0811E7C0 + ldr r0, _0811D244 + ldr r1, [r0] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_0811D240: + movs r0, #0 + b _0811D24A + .align 2, 0 +_0811D244: .4byte 0x02039DE8 +_0811D248: + movs r0, #1 +_0811D24A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811D1A4 + + thumb_func_start sub_0811D250 +sub_0811D250: @ 0x0811D250 + push {lr} + ldr r0, _0811D268 + ldr r0, [r0] + ldrh r0, [r0] + cmp r0, #6 + bhi _0811D308 + lsls r0, r0, #2 + ldr r1, _0811D26C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0811D268: .4byte 0x02039DE8 +_0811D26C: .4byte 0x0811D270 +_0811D270: @ jump table + .4byte _0811D28C @ case 0 + .4byte _0811D292 @ case 1 + .4byte _0811D2A4 @ case 2 + .4byte _0811D2B6 @ case 3 + .4byte _0811D2C8 @ case 4 + .4byte _0811D2E8 @ case 5 + .4byte _0811D300 @ case 6 +_0811D28C: + bl sub_0811DBA8 + b _0811D2D8 +_0811D292: + bl sub_0811EACC + bl sub_0811EDFC + bl sub_0811EF44 + bl sub_0811E1C8 + b _0811D2D8 +_0811D2A4: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811D308 + movs r0, #3 + bl sub_0811E1E0 + b _0811D2D8 +_0811D2B6: + bl sub_0811E2B8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811D308 + movs r0, #3 + bl sub_0811D9D8 + b _0811D2D8 +_0811D2C8: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811D308 + movs r0, #0 + bl ShowBg +_0811D2D8: + ldr r0, _0811D2E4 + ldr r1, [r0] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _0811D308 + .align 2, 0 +_0811D2E4: .4byte 0x02039DE8 +_0811D2E8: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811D308 + bl sub_0811E7C0 + ldr r0, _0811D304 + ldr r1, [r0] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_0811D300: + movs r0, #0 + b _0811D30A + .align 2, 0 +_0811D304: .4byte 0x02039DE8 +_0811D308: + movs r0, #1 +_0811D30A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811D250 + + thumb_func_start sub_0811D310 +sub_0811D310: @ 0x0811D310 + push {lr} + ldr r0, _0811D328 + ldr r0, [r0] + ldrh r0, [r0] + cmp r0, #4 + bhi _0811D3C4 + lsls r0, r0, #2 + ldr r1, _0811D32C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0811D328: .4byte 0x02039DE8 +_0811D32C: .4byte 0x0811D330 +_0811D330: @ jump table + .4byte _0811D344 @ case 0 + .4byte _0811D356 @ case 1 + .4byte _0811D368 @ case 2 + .4byte _0811D378 @ case 3 + .4byte _0811D398 @ case 4 +_0811D344: + bl sub_0811EACC + bl sub_0811EDFC + bl sub_0811EF44 + bl sub_0811E1C8 + b _0811D386 +_0811D356: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811D3C4 + movs r0, #4 + bl sub_0811E1E0 + b _0811D386 +_0811D368: + bl sub_0811E2B8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811D3C4 + bl sub_0811DEDC + b _0811D386 +_0811D378: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811D3C4 + bl sub_0811EAF8 +_0811D386: + ldr r0, _0811D394 + ldr r1, [r0] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _0811D3C4 + .align 2, 0 +_0811D394: .4byte 0x02039DE8 +_0811D398: + bl sub_0811EB64 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811D3C4 + bl sub_0811E7D8 + movs r0, #0 + bl sub_0811EE2C + bl sub_0811ED98 + ldr r0, _0811D3C0 + ldr r1, [r0] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + movs r0, #0 + b _0811D3C6 + .align 2, 0 +_0811D3C0: .4byte 0x02039DE8 +_0811D3C4: + movs r0, #1 +_0811D3C6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811D310 + + thumb_func_start sub_0811D3CC +sub_0811D3CC: @ 0x0811D3CC + push {lr} + bl sub_0811EA54 + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end sub_0811D3CC + + thumb_func_start sub_0811D3D8 +sub_0811D3D8: @ 0x0811D3D8 + push {r4, lr} + ldr r4, _0811D3F0 + ldr r0, [r4] + ldrh r0, [r0] + cmp r0, #1 + beq _0811D404 + cmp r0, #1 + bgt _0811D3F4 + cmp r0, #0 + beq _0811D3FE + b _0811D442 + .align 2, 0 +_0811D3F0: .4byte 0x02039DE8 +_0811D3F4: + cmp r0, #2 + beq _0811D420 + cmp r0, #3 + beq _0811D43E + b _0811D442 +_0811D3FE: + bl sub_0811DFBC + b _0811D416 +_0811D404: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811D442 + movs r0, #1 + movs r1, #4 + bl sub_0811E5C0 +_0811D416: + ldr r1, [r4] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _0811D442 +_0811D420: + bl sub_0811E624 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811D442 + bl sub_0811EA54 + bl sub_0811ED98 + bl sub_0811EEE0 + ldr r1, [r4] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_0811D43E: + movs r0, #0 + b _0811D444 +_0811D442: + movs r0, #1 +_0811D444: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811D3D8 + + thumb_func_start sub_0811D44C +sub_0811D44C: @ 0x0811D44C + push {r4, lr} + ldr r4, _0811D464 + ldr r0, [r4] + ldrh r0, [r0] + cmp r0, #1 + beq _0811D478 + cmp r0, #1 + bgt _0811D468 + cmp r0, #0 + beq _0811D472 + b _0811D4B4 + .align 2, 0 +_0811D464: .4byte 0x02039DE8 +_0811D468: + cmp r0, #2 + beq _0811D496 + cmp r0, #3 + beq _0811D4B0 + b _0811D4B4 +_0811D472: + bl sub_0811DFE0 + b _0811D48C +_0811D478: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811D4B4 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #4 + bl sub_0811E5C0 +_0811D48C: + ldr r1, [r4] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _0811D4B4 +_0811D496: + bl sub_0811E624 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811D4B4 + bl sub_0811ED98 + bl sub_0811EEE0 + ldr r1, [r4] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_0811D4B0: + movs r0, #0 + b _0811D4B6 +_0811D4B4: + movs r0, #1 +_0811D4B6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0811D44C + + thumb_func_start sub_0811D4BC +sub_0811D4BC: @ 0x0811D4BC + push {r4, r5, lr} + ldr r5, _0811D4D4 + ldr r0, [r5] + ldrh r0, [r0] + cmp r0, #1 + beq _0811D4E8 + cmp r0, #1 + bgt _0811D4D8 + cmp r0, #0 + beq _0811D4E2 + b _0811D53A + .align 2, 0 +_0811D4D4: .4byte 0x02039DE8 +_0811D4D8: + cmp r0, #2 + beq _0811D518 + cmp r0, #3 + beq _0811D536 + b _0811D53A +_0811D4E2: + bl sub_0811E004 + b _0811D50E +_0811D4E8: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811D53A + bl sub_0811C3E0 + adds r4, r0, #0 + bl sub_0811E65C + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + subs r4, r4, r0 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + adds r0, r4, #0 + movs r1, #8 + bl sub_0811E5C0 +_0811D50E: + ldr r1, [r5] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _0811D53A +_0811D518: + bl sub_0811E624 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811D53A + bl sub_0811EA54 + bl sub_0811ED98 + bl sub_0811EEE0 + ldr r1, [r5] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_0811D536: + movs r0, #0 + b _0811D53C +_0811D53A: + movs r0, #1 +_0811D53C: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811D4BC + + thumb_func_start sub_0811D544 +sub_0811D544: @ 0x0811D544 + push {r4, r5, lr} + ldr r5, _0811D55C + ldr r0, [r5] + ldrh r0, [r0] + cmp r0, #1 + beq _0811D570 + cmp r0, #1 + bgt _0811D560 + cmp r0, #0 + beq _0811D56A + b _0811D5BE + .align 2, 0 +_0811D55C: .4byte 0x02039DE8 +_0811D560: + cmp r0, #2 + beq _0811D5A0 + cmp r0, #3 + beq _0811D5BA + b _0811D5BE +_0811D56A: + bl sub_0811E048 + b _0811D596 +_0811D570: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811D5BE + bl sub_0811C3E0 + adds r4, r0, #0 + bl sub_0811E65C + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + subs r4, r4, r0 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + adds r0, r4, #0 + movs r1, #8 + bl sub_0811E5C0 +_0811D596: + ldr r1, [r5] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _0811D5BE +_0811D5A0: + bl sub_0811E624 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811D5BE + bl sub_0811ED98 + bl sub_0811EEE0 + ldr r1, [r5] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_0811D5BA: + movs r0, #0 + b _0811D5C0 +_0811D5BE: + movs r0, #1 +_0811D5C0: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811D544 + + thumb_func_start sub_0811D5C8 +sub_0811D5C8: @ 0x0811D5C8 + push {r4, lr} + ldr r4, _0811D5DC + ldr r0, [r4] + ldrh r0, [r0] + cmp r0, #0 + beq _0811D5E0 + cmp r0, #1 + beq _0811D5F4 + b _0811D5FE + .align 2, 0 +_0811D5DC: .4byte 0x02039DE8 +_0811D5E0: + bl sub_0811E7A0 + movs r0, #4 + bl sub_0811D9D8 + ldr r1, [r4] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _0811D5FE +_0811D5F4: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0811D600 +_0811D5FE: + movs r0, #1 +_0811D600: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811D5C8 + + thumb_func_start sub_0811D608 +sub_0811D608: @ 0x0811D608 + push {r4, lr} + ldr r4, _0811D61C + ldr r0, [r4] + ldrh r0, [r0] + cmp r0, #0 + beq _0811D620 + cmp r0, #1 + beq _0811D634 + b _0811D63E + .align 2, 0 +_0811D61C: .4byte 0x02039DE8 +_0811D620: + bl sub_0811E7A0 + movs r0, #5 + bl sub_0811D9D8 + ldr r1, [r4] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _0811D63E +_0811D634: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0811D640 +_0811D63E: + movs r0, #1 +_0811D640: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811D608 + + thumb_func_start sub_0811D648 +sub_0811D648: @ 0x0811D648 + push {r4, lr} + ldr r4, _0811D65C + ldr r0, [r4] + ldrh r0, [r0] + cmp r0, #0 + beq _0811D660 + cmp r0, #1 + beq _0811D674 + b _0811D67E + .align 2, 0 +_0811D65C: .4byte 0x02039DE8 +_0811D660: + bl sub_0811E7A0 + movs r0, #6 + bl sub_0811D9D8 + ldr r1, [r4] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _0811D67E +_0811D674: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0811D680 +_0811D67E: + movs r0, #1 +_0811D680: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811D648 + + thumb_func_start sub_0811D688 +sub_0811D688: @ 0x0811D688 + push {r4, lr} + ldr r4, _0811D69C + ldr r0, [r4] + ldrh r0, [r0] + cmp r0, #0 + beq _0811D6A0 + cmp r0, #1 + beq _0811D6B4 + b _0811D6BE + .align 2, 0 +_0811D69C: .4byte 0x02039DE8 +_0811D6A0: + bl sub_0811E7A0 + movs r0, #7 + bl sub_0811D9D8 + ldr r1, [r4] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _0811D6BE +_0811D6B4: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0811D6C0 +_0811D6BE: + movs r0, #1 +_0811D6C0: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811D688 + + thumb_func_start sub_0811D6C8 +sub_0811D6C8: @ 0x0811D6C8 + push {r4, lr} + ldr r4, _0811D6DC + ldr r0, [r4] + ldrh r0, [r0] + cmp r0, #0 + beq _0811D6E0 + cmp r0, #1 + beq _0811D6F4 + b _0811D6FE + .align 2, 0 +_0811D6DC: .4byte 0x02039DE8 +_0811D6E0: + bl sub_0811E7A0 + movs r0, #8 + bl sub_0811D9D8 + ldr r1, [r4] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _0811D6FE +_0811D6F4: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0811D700 +_0811D6FE: + movs r0, #1 +_0811D700: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811D6C8 + + thumb_func_start sub_0811D708 +sub_0811D708: @ 0x0811D708 + push {r4, lr} + ldr r4, _0811D71C + ldr r0, [r4] + ldrh r0, [r0] + cmp r0, #0 + beq _0811D720 + cmp r0, #1 + beq _0811D734 + b _0811D73E + .align 2, 0 +_0811D71C: .4byte 0x02039DE8 +_0811D720: + bl sub_0811E7A0 + movs r0, #9 + bl sub_0811D9D8 + ldr r1, [r4] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _0811D73E +_0811D734: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0811D740 +_0811D73E: + movs r0, #1 +_0811D740: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811D708 + + thumb_func_start sub_0811D748 +sub_0811D748: @ 0x0811D748 + push {r4, lr} + ldr r4, _0811D7A4 + ldr r0, _0811D7A8 + bl Alloc + adds r2, r0, #0 + str r2, [r4] + cmp r2, #0 + beq _0811D7AC + movs r1, #0 + strh r1, [r2] + movs r3, #0xb6 + lsls r3, r3, #2 + adds r0, r2, r3 + str r1, [r0] + adds r3, #4 + adds r0, r2, r3 + str r1, [r0] + adds r3, #4 + adds r0, r2, r3 + str r1, [r0] + adds r3, #4 + adds r0, r2, r3 + str r1, [r0] + adds r3, #4 + adds r0, r2, r3 + str r1, [r0] + adds r3, #4 + adds r0, r2, r3 + str r1, [r0] + adds r3, #4 + adds r0, r2, r3 + str r1, [r0] + adds r3, #4 + adds r0, r2, r3 + str r1, [r0] + adds r3, #4 + adds r0, r2, r3 + str r1, [r0] + bl FooterHasFourOptions_ + ldr r1, [r4] + strb r0, [r1, #0xa] + movs r0, #1 + b _0811D7AE + .align 2, 0 +_0811D7A4: .4byte 0x02039DE8 +_0811D7A8: .4byte 0x000012FC +_0811D7AC: + movs r0, #0 +_0811D7AE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0811D748 + + thumb_func_start sub_0811D7B4 +sub_0811D7B4: @ 0x0811D7B4 + push {lr} + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r1, #0xc1 + lsls r1, r1, #6 + movs r0, #0 + bl SetGpuReg + pop {r0} + bx r0 + thumb_func_end sub_0811D7B4 + + thumb_func_start sub_0811D814 +sub_0811D814: @ 0x0811D814 + push {r4, lr} + bl ResetPaletteFade + ldr r0, _0811D868 + movs r1, #0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _0811D86C + movs r1, #0x10 + movs r2, #0x20 + bl LoadPalette + ldr r0, _0811D870 + movs r1, #0x40 + movs r2, #0x20 + bl LoadPalette + ldr r0, _0811D874 + movs r1, #0xa0 + movs r2, #8 + bl LoadPalette + ldr r4, _0811D878 + adds r0, r4, #0 + movs r1, #0xb0 + movs r2, #0xc + bl LoadPalette + adds r0, r4, #0 + movs r1, #0xf0 + movs r2, #0xc + bl LoadPalette + adds r0, r4, #0 + movs r1, #0x30 + movs r2, #0xc + bl LoadPalette + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811D868: .4byte 0x08573E64 +_0811D86C: .4byte 0x0857423C +_0811D870: .4byte 0x0857425C +_0811D874: .4byte 0x08574344 +_0811D878: .4byte 0x0857434C + thumb_func_end sub_0811D814 + + thumb_func_start sub_0811D87C +sub_0811D87C: @ 0x0811D87C + push {r4, r5, lr} + sub sp, #0x14 + bl GetTitleText + adds r5, r0, #0 + cmp r5, #0 + beq _0811D8D8 + bl StringLength + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r4, #0x10 + subs r4, r4, r0 + lsrs r0, r4, #0x1f + adds r4, r4, r0 + asrs r4, r4, #1 + lsls r4, r4, #0x13 + lsrs r4, r4, #0x10 + movs r0, #0 + movs r1, #0 + bl FillWindowPixelBuffer + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r1, #0 + str r1, [sp] + movs r0, #0xff + str r0, [sp, #4] + str r1, [sp, #8] + movs r0, #2 + str r0, [sp, #0xc] + movs r0, #3 + str r0, [sp, #0x10] + movs r0, #0 + movs r1, #1 + adds r2, r5, #0 + adds r3, r4, #0 + bl sub_0811D920 + movs r0, #0 + bl PutWindowTilemap + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram +_0811D8D8: + add sp, #0x14 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_0811D87C + + thumb_func_start sub_0811D8E0 +sub_0811D8E0: @ 0x0811D8E0 + push {r4, r5, r6, lr} + sub sp, #0xc + adds r6, r2, #0 + ldr r2, [sp, #0x1c] + ldr r4, [sp, #0x20] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r2, r2, #0x18 + lsrs r0, r2, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + cmp r1, #1 + bne _0811D908 + adds r0, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_0811D908: + str r0, [sp] + str r4, [sp, #4] + ldr r0, [sp, #0x24] + str r0, [sp, #8] + adds r0, r5, #0 + adds r2, r6, #0 + bl AddTextPrinterParameterized + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_0811D8E0 + + thumb_func_start sub_0811D920 +sub_0811D920: @ 0x0811D920 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x10 + mov sb, r2 + ldr r2, [sp, #0x2c] + ldr r4, [sp, #0x30] + ldr r5, [sp, #0x34] + ldr r6, [sp, #0x38] + ldr r7, [sp, #0x3c] + mov r8, r7 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov ip, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r3, r3, #0x18 + lsrs r7, r3, #0x18 + lsls r2, r2, #0x18 + lsrs r3, r2, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov r0, r8 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r1, #1 + bne _0811D966 + adds r0, r3, #2 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 +_0811D966: + add r0, sp, #0xc + strb r5, [r0] + strb r6, [r0, #1] + strb r2, [r0, #2] + str r0, [sp] + lsls r0, r4, #0x18 + asrs r0, r0, #0x18 + str r0, [sp, #4] + mov r0, sb + str r0, [sp, #8] + mov r0, ip + adds r2, r7, #0 + bl AddTextPrinterParameterized3 + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_0811D920 + + thumb_func_start sub_0811D990 +sub_0811D990: @ 0x0811D990 + push {lr} + sub sp, #0xc + movs r0, #0x20 + str r0, [sp] + movs r0, #0x14 + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect + movs r0, #1 + movs r1, #1 + movs r2, #0xe0 + bl LoadUserWindowBorderGfx + movs r0, #1 + movs r1, #1 + movs r2, #0xe + bl DrawTextBorderOuter + movs r0, #0 + bl sub_0811D9D8 + movs r0, #1 + bl PutWindowTilemap + movs r0, #0 + bl CopyBgTilemapBufferToVram + add sp, #0xc + pop {r0} + bx r0 + thumb_func_end sub_0811D990 + + thumb_func_start sub_0811D9D8 +sub_0811D9D8: @ 0x0811D9D8 + push {lr} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r0, #0 + str r0, [sp, #0x10] + str r0, [sp, #0xc] + cmp r1, #9 + bhi _0811DA90 + lsls r0, r1, #2 + ldr r1, _0811D9F4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0811D9F4: .4byte 0x0811D9F8 +_0811D9F8: @ jump table + .4byte _0811DA20 @ case 0 + .4byte _0811DA3E @ case 1 + .4byte _0811DA2A @ case 2 + .4byte _0811DA34 @ case 3 + .4byte _0811DA48 @ case 4 + .4byte _0811DA54 @ case 5 + .4byte _0811DA60 @ case 6 + .4byte _0811DA70 @ case 7 + .4byte _0811DA7C @ case 8 + .4byte _0811DA88 @ case 9 +_0811DA20: + add r1, sp, #0x10 + add r0, sp, #0xc + bl GetEasyChatInstructionsText + b _0811DA90 +_0811DA2A: + add r1, sp, #0x10 + add r0, sp, #0xc + bl sub_0811C344 + b _0811DA90 +_0811DA34: + add r1, sp, #0x10 + add r0, sp, #0xc + bl GetEasyChatConfirmText + b _0811DA90 +_0811DA3E: + add r1, sp, #0x10 + add r0, sp, #0xc + bl GetEasyChatConfirmDeletionText + b _0811DA90 +_0811DA48: + ldr r0, _0811DA50 + str r0, [sp, #0xc] + b _0811DA90 + .align 2, 0 +_0811DA50: .4byte 0x085CBCD0 +_0811DA54: + ldr r0, _0811DA5C + str r0, [sp, #0xc] + b _0811DA90 + .align 2, 0 +_0811DA5C: .4byte 0x085CBCE0 +_0811DA60: + ldr r0, _0811DA68 + str r0, [sp, #0xc] + ldr r0, _0811DA6C + b _0811DA8E + .align 2, 0 +_0811DA68: .4byte 0x085CBB1B +_0811DA6C: .4byte 0x085CBB2F +_0811DA70: + ldr r0, _0811DA78 + str r0, [sp, #0xc] + b _0811DA90 + .align 2, 0 +_0811DA78: .4byte 0x085CBCEF +_0811DA7C: + ldr r0, _0811DA84 + str r0, [sp, #0xc] + b _0811DA90 + .align 2, 0 +_0811DA84: .4byte 0x085CBB4E +_0811DA88: + ldr r0, _0811DADC + str r0, [sp, #0xc] + ldr r0, _0811DAE0 +_0811DA8E: + str r0, [sp, #0x10] +_0811DA90: + movs r0, #1 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r2, [sp, #0xc] + cmp r2, #0 + beq _0811DAB2 + movs r1, #0 + str r1, [sp] + movs r0, #0xff + str r0, [sp, #4] + str r1, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r3, #0 + bl sub_0811D8E0 +_0811DAB2: + ldr r2, [sp, #0x10] + cmp r2, #0 + beq _0811DACE + movs r0, #0x10 + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r3, #0 + bl sub_0811D8E0 +_0811DACE: + movs r0, #1 + movs r1, #3 + bl CopyWindowToVram + add sp, #0x14 + pop {r0} + bx r0 + .align 2, 0 +_0811DADC: .4byte 0x085CBC62 +_0811DAE0: .4byte 0x085CBC6D + thumb_func_end sub_0811D9D8 + + thumb_func_start sub_0811DAE4 +sub_0811DAE4: @ 0x0811DAE4 + push {lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0811DB0C + movs r1, #1 + str r1, [sp] + movs r1, #0xe + str r1, [sp, #4] + str r0, [sp, #8] + adds r0, r2, #0 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl sub_08198C08 + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_0811DB0C: .4byte 0x085743AC + thumb_func_end sub_0811DAE4 + + thumb_func_start sub_0811DB10 +sub_0811DB10: @ 0x0811DB10 + push {r4, r5, r6, lr} + sub sp, #8 + bl GetEasyChatScreenFrameId + lsls r0, r0, #0x18 + ldr r6, _0811DB8C + ldr r4, [sp] + ands r4, r6 + movs r1, #3 + orrs r4, r1 + str r4, [sp] + ldr r1, _0811DB90 + lsrs r0, r0, #0x16 + adds r0, r0, r1 + ldrb r3, [r0] + lsls r1, r3, #0x1b + lsrs r1, r1, #0x13 + ldr r5, _0811DB94 + adds r2, r5, #0 + ands r2, r4 + orrs r2, r1 + lsrs r3, r3, #5 + lsls r3, r3, #0x10 + ldr r1, _0811DB98 + ands r2, r1 + orrs r2, r3 + str r2, [sp] + ldrb r3, [r0, #1] + lsls r3, r3, #0x18 + ldr r1, _0811DB9C + ands r1, r2 + orrs r1, r3 + str r1, [sp] + ldrb r1, [r0, #2] + ldr r0, [sp, #4] + ands r0, r6 + orrs r0, r1 + ands r0, r5 + movs r1, #0xb0 + lsls r1, r1, #4 + orrs r0, r1 + ldr r1, _0811DBA0 + ands r0, r1 + movs r1, #0xc0 + lsls r1, r1, #0xe + orrs r0, r1 + str r0, [sp, #4] + mov r0, sp + bl AddWindow + ldr r1, _0811DBA4 + ldr r1, [r1] + strh r0, [r1, #2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl PutWindowTilemap + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0811DB8C: .4byte 0xFFFFFF00 +_0811DB90: .4byte 0x08574358 +_0811DB94: .4byte 0xFFFF00FF +_0811DB98: .4byte 0xFF00FFFF +_0811DB9C: .4byte 0x00FFFFFF +_0811DBA0: .4byte 0x0000FFFF +_0811DBA4: .4byte 0x02039DE8 + thumb_func_end sub_0811DB10 + + thumb_func_start sub_0811DBA8 +sub_0811DBA8: @ 0x0811DBA8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + bl GetEasyChatWordBuffer + adds r6, r0, #0 + bl GetNumColumns + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + bl GetNumRows + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0xc] + ldr r4, _0811DBE0 + ldr r0, [r4] + ldrb r0, [r0, #2] + movs r1, #0x11 + bl FillWindowPixelBuffer + movs r5, #0 + b _0811DC86 + .align 2, 0 +_0811DBE0: .4byte 0x02039DE8 +_0811DBE4: + ldr r1, _0811DC20 + ldr r0, [r1] + adds r0, #0xb + movs r1, #0 + movs r2, #0xc0 + bl StringFill + ldr r1, _0811DC20 + ldr r0, [r1] + adds r2, r0, #0 + adds r2, #0xd + movs r4, #0 + lsls r7, r5, #0x1c + adds r5, #1 + mov sb, r5 + cmp r4, r8 + bge _0811DC64 + ldr r0, _0811DC24 + mov sl, r0 +_0811DC0A: + ldrh r0, [r6] + cmp r0, sl + beq _0811DC28 + adds r1, r0, #0 + adds r0, r2, #0 + bl CopyEasyChatWord + adds r2, r0, #0 + adds r5, r6, #2 + adds r4, #1 + b _0811DC58 + .align 2, 0 +_0811DC20: .4byte 0x02039DE8 +_0811DC24: .4byte 0x0000FFFF +_0811DC28: + adds r0, r2, #0 + movs r1, #0 + movs r2, #4 + bl WriteColorChangeControlCode + adds r2, r0, #0 + adds r5, r6, #2 + adds r4, #1 + movs r3, #0xf9 + movs r1, #9 + movs r0, #4 +_0811DC3E: + strb r3, [r2] + adds r2, #1 + strb r1, [r2] + adds r2, #1 + subs r0, #1 + cmp r0, #0 + bge _0811DC3E + adds r0, r2, #0 + movs r1, #0 + movs r2, #2 + bl WriteColorChangeControlCode + adds r2, r0, #0 +_0811DC58: + movs r0, #0 + strb r0, [r2] + adds r2, #2 + adds r6, r5, #0 + cmp r4, r8 + blt _0811DC0A +_0811DC64: + movs r0, #0xff + strb r0, [r2] + ldr r1, _0811DCA8 + ldr r2, [r1] + ldrb r0, [r2, #2] + adds r2, #0xb + lsrs r1, r7, #0x18 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + movs r3, #0 + bl sub_0811D8E0 + mov r5, sb +_0811DC86: + ldr r0, [sp, #0xc] + cmp r5, r0 + blt _0811DBE4 + ldr r0, _0811DCA8 + ldr r0, [r0] + ldrb r0, [r0, #2] + movs r1, #3 + bl CopyWindowToVram + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0811DCA8: .4byte 0x02039DE8 + thumb_func_end sub_0811DBA8 + + thumb_func_start sub_0811DCAC +sub_0811DCAC: @ 0x0811DCAC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov r8, r0 + bl GetEasyChatScreenFrameId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + movs r0, #0 + str r0, [sp] + ldr r2, _0811DDEC + mov r0, sp + mov r1, r8 + bl CpuFastSet + ldr r0, _0811DDF0 + mov r1, sb + lsls r3, r1, #2 + adds r3, r3, r0 + ldrb r0, [r3] + lsls r2, r0, #0x18 + lsrs r1, r2, #0x1d + subs r6, r1, #1 + lsls r0, r0, #0x1b + lsrs r4, r0, #0x1b + subs r5, r4, #1 + adds r0, r4, #0 + ldrb r1, [r3, #1] + adds r7, r0, r1 + lsrs r2, r2, #0x1d + ldrb r3, [r3, #2] + adds r3, r2, r3 + lsls r0, r6, #5 + adds r0, r0, r5 + lsls r0, r0, #1 + add r0, r8 + ldr r2, _0811DDF4 + adds r1, r2, #0 + strh r1, [r0] + adds r5, r4, #0 + cmp r5, r7 + bge _0811DD22 + ldr r4, _0811DDF8 + adds r2, r4, #0 + lsls r1, r5, #1 + lsls r0, r6, #6 + add r0, r8 + adds r1, r1, r0 + subs r5, r7, r5 +_0811DD16: + strh r2, [r1] + adds r1, #2 + subs r5, #1 + cmp r5, #0 + bne _0811DD16 + adds r5, r7, #0 +_0811DD22: + lsls r0, r6, #5 + adds r0, r0, r5 + lsls r0, r0, #1 + add r0, r8 + ldr r2, _0811DDFC + adds r1, r2, #0 + strh r1, [r0] + adds r6, #1 + ldr r4, _0811DDF0 + mov sl, r4 + mov r0, sb + lsls r0, r0, #2 + mov sb, r0 + cmp r6, r3 + bge _0811DD94 + add r0, sl + ldrb r0, [r0] + lsls r0, r0, #0x1b + mov ip, r0 +_0811DD48: + mov r1, ip + lsrs r0, r1, #0x1b + subs r5, r0, #1 + lsls r1, r6, #5 + adds r1, r1, r5 + lsls r1, r1, #1 + add r1, r8 + ldr r4, _0811DE00 + adds r2, r4, #0 + strh r2, [r1] + adds r5, r0, #0 + adds r4, r6, #1 + cmp r5, r7 + bge _0811DD80 + movs r0, #0x80 + lsls r0, r0, #5 + adds r2, r0, #0 + lsls r1, r5, #1 + lsls r0, r6, #6 + add r0, r8 + adds r1, r1, r0 + subs r5, r7, r5 +_0811DD74: + strh r2, [r1] + adds r1, #2 + subs r5, #1 + cmp r5, #0 + bne _0811DD74 + adds r5, r7, #0 +_0811DD80: + lsls r0, r6, #5 + adds r0, r0, r5 + lsls r0, r0, #1 + add r0, r8 + ldr r2, _0811DE04 + adds r1, r2, #0 + strh r1, [r0] + adds r6, r4, #0 + cmp r6, r3 + blt _0811DD48 +_0811DD94: + mov r0, sb + add r0, sl + ldrb r2, [r0] + lsls r2, r2, #0x1b + lsrs r2, r2, #0x1b + subs r5, r2, #1 + lsls r3, r6, #5 + adds r0, r3, r5 + lsls r0, r0, #1 + add r0, r8 + ldr r4, _0811DE08 + adds r1, r4, #0 + strh r1, [r0] + adds r5, r2, #0 + cmp r5, r7 + bge _0811DDCE + ldr r0, _0811DE0C + adds r2, r0, #0 + lsls r1, r5, #1 + lsls r0, r6, #6 + add r0, r8 + adds r0, r1, r0 + subs r5, r7, r5 +_0811DDC2: + strh r2, [r0] + adds r0, #2 + subs r5, #1 + cmp r5, #0 + bne _0811DDC2 + adds r5, r7, #0 +_0811DDCE: + adds r0, r3, r5 + lsls r0, r0, #1 + add r0, r8 + ldr r2, _0811DE10 + adds r1, r2, #0 + strh r1, [r0] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0811DDEC: .4byte 0x01000200 +_0811DDF0: .4byte 0x08574358 +_0811DDF4: .4byte 0x00001001 +_0811DDF8: .4byte 0x00001002 +_0811DDFC: .4byte 0x00001003 +_0811DE00: .4byte 0x00001005 +_0811DE04: .4byte 0x00001007 +_0811DE08: .4byte 0x00001009 +_0811DE0C: .4byte 0x0000100A +_0811DE10: .4byte 0x0000100B + thumb_func_end sub_0811DCAC + + thumb_func_start sub_0811DE14 +sub_0811DE14: @ 0x0811DE14 + push {r4, lr} + sub sp, #8 + movs r0, #3 + bl GetBgTilemapBuffer + adds r4, r0, #0 + bl GetEasyChatScreenFrameId + lsls r0, r0, #0x18 + ldr r1, _0811DE3C + lsrs r0, r0, #0x16 + adds r0, r0, r1 + ldrb r1, [r0, #3] + cmp r1, #2 + beq _0811DE46 + cmp r1, #2 + bgt _0811DE40 + cmp r1, #1 + beq _0811DE54 + b _0811DE84 + .align 2, 0 +_0811DE3C: .4byte 0x08574358 +_0811DE40: + cmp r1, #3 + beq _0811DE70 + b _0811DE84 +_0811DE46: + movs r0, #0xa8 + lsls r0, r0, #3 + adds r4, r4, r0 + movs r0, #0x20 + str r0, [sp] + str r1, [sp, #4] + b _0811DE62 +_0811DE54: + movs r0, #0xc0 + lsls r0, r0, #3 + adds r4, r4, r0 + movs r0, #0x20 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] +_0811DE62: + movs r0, #3 + adds r1, r4, #0 + movs r2, #0 + movs r3, #0xa + bl CopyToBgTilemapBufferRect + b _0811DE84 +_0811DE70: + movs r0, #0x20 + str r0, [sp] + movs r0, #4 + str r0, [sp, #4] + movs r0, #3 + adds r1, r4, #0 + movs r2, #0 + movs r3, #9 + bl CopyToBgTilemapBufferRect +_0811DE84: + add sp, #8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0811DE14 + + thumb_func_start sub_0811DE8C +sub_0811DE8C: @ 0x0811DE8C + push {lr} + movs r0, #2 + bl PutWindowTilemap + movs r0, #2 + bl CopyBgTilemapBufferToVram + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0811DE8C + + thumb_func_start sub_0811DEA0 +sub_0811DEA0: @ 0x0811DEA0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0811E598 + movs r0, #2 + movs r1, #0x11 + bl FillWindowPixelBuffer + cmp r4, #1 + beq _0811DEC4 + cmp r4, #1 + blo _0811DEBE + cmp r4, #2 + beq _0811DECA + b _0811DECE +_0811DEBE: + bl sub_0811DEFC + b _0811DECE +_0811DEC4: + bl sub_0811DF70 + b _0811DECE +_0811DECA: + bl sub_0811DFAC +_0811DECE: + movs r0, #2 + movs r1, #2 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0811DEA0 + + thumb_func_start sub_0811DEDC +sub_0811DEDC: @ 0x0811DEDC + push {lr} + bl sub_0811C3B4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811DEF0 + movs r0, #0 + bl sub_0811DEA0 + b _0811DEF6 +_0811DEF0: + movs r0, #1 + bl sub_0811DEA0 +_0811DEF6: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0811DEDC + + thumb_func_start sub_0811DEFC +sub_0811DEFC: @ 0x0811DEFC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + movs r6, #0 + movs r0, #0x60 + mov r8, r0 +_0811DF0A: + movs r5, #0 + mov r1, r8 + lsls r0, r1, #0x18 + lsrs r7, r0, #0x18 + movs r4, #0x80 + lsls r4, r4, #0x14 +_0811DF16: + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + adds r6, #1 + bl sub_0811F914 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x16 + beq _0811DF54 + bl GetEasyChatWordGroupName + adds r2, r0, #0 + lsrs r3, r4, #0x18 + str r7, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + movs r0, #2 + movs r1, #1 + bl sub_0811D8E0 + movs r0, #0xe0 + lsls r0, r0, #0x16 + adds r4, r4, r0 + adds r5, #1 + cmp r5, #2 + ble _0811DF16 + movs r1, #0x10 + add r8, r1 + b _0811DF0A +_0811DF54: + bl sub_0811C3C0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl sub_0811E5C0 + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0811DEFC + + thumb_func_start sub_0811DF70 +sub_0811DF70: @ 0x0811DF70 + push {r4, r5, r6, lr} + sub sp, #0xc + movs r5, #0 + movs r4, #0xc0 + lsls r4, r4, #0x17 + ldr r6, _0811DFA8 +_0811DF7C: + ldm r6!, {r2} + lsrs r0, r4, #0x18 + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + movs r0, #2 + movs r1, #1 + movs r3, #8 + bl sub_0811D8E0 + movs r0, #0x80 + lsls r0, r0, #0x15 + adds r4, r4, r0 + adds r5, #1 + cmp r5, #3 + bls _0811DF7C + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0811DFA8: .4byte 0x085743BC + thumb_func_end sub_0811DF70 + + thumb_func_start sub_0811DFAC +sub_0811DFAC: @ 0x0811DFAC + push {lr} + movs r0, #0 + movs r1, #4 + bl sub_0811E07C + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0811DFAC + + thumb_func_start sub_0811DFBC +sub_0811DFBC: @ 0x0811DFBC + push {r4, lr} + bl sub_0811C3E0 + adds r4, r0, #0 + adds r4, #3 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #1 + bl sub_0811E164 + adds r0, r4, #0 + movs r1, #1 + bl sub_0811E07C + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0811DFBC + + thumb_func_start sub_0811DFE0 +sub_0811DFE0: @ 0x0811DFE0 + push {r4, lr} + bl sub_0811C3E0 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #1 + bl sub_0811E164 + adds r0, r4, #0 + movs r1, #1 + bl sub_0811E07C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0811DFE0 + + thumb_func_start sub_0811E004 +sub_0811E004: @ 0x0811E004 + push {r4, r5, lr} + bl sub_0811C3E0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + adds r0, r5, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl sub_0811C3EC + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + bls _0811E026 + adds r4, r0, #0 +_0811E026: + cmp r5, r4 + bhs _0811E040 + subs r4, r4, r5 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0811E164 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0811E07C +_0811E040: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0811E004 + + thumb_func_start sub_0811E048 +sub_0811E048: @ 0x0811E048 + push {r4, r5, lr} + bl sub_0811C3E0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + bl sub_0811E65C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r5, r0 + bhs _0811E074 + subs r4, r0, r5 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0811E164 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0811E07C +_0811E074: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0811E048 + + thumb_func_start sub_0811E07C +sub_0811E07C: @ 0x0811E07C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp, #0x14] + lsls r1, r0, #1 + adds r7, r1, r0 + lsls r0, r0, #4 + adds r1, r0, #0 + adds r1, #0x60 + movs r0, #0xff + ands r1, r0 + movs r0, #0 + b _0811E144 +_0811E0A4: + movs r2, #0x10 + adds r2, r2, r1 + mov sl, r2 + adds r0, #1 + str r0, [sp, #0x18] + lsls r0, r1, #0x18 + lsrs r6, r0, #0x18 + movs r0, #0x80 + lsls r0, r0, #0x15 + mov r8, r0 + movs r2, #2 + mov sb, r2 +_0811E0BC: + lsls r0, r7, #0x10 + lsrs r0, r0, #0x10 + adds r7, #1 + bl sub_0811FAD0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, _0811E104 + cmp r4, r0 + beq _0811E12E + ldr r5, _0811E108 + ldr r0, [r5] + adds r0, #0xcc + adds r1, r4, #0 + movs r2, #0 + bl CopyEasyChatWordPadded + adds r0, r4, #0 + bl sub_0811C820 + adds r1, r0, #0 + cmp r1, #0 + bne _0811E10C + ldr r2, [r5] + adds r2, #0xcc + mov r0, r8 + lsrs r3, r0, #0x18 + str r6, [sp] + movs r0, #0xff + str r0, [sp, #4] + str r1, [sp, #8] + movs r0, #2 + movs r1, #1 + bl sub_0811D8E0 + b _0811E12E + .align 2, 0 +_0811E104: .4byte 0x0000FFFF +_0811E108: .4byte 0x02039DE8 +_0811E10C: + ldr r2, [r5] + adds r2, #0xcc + mov r0, r8 + lsrs r3, r0, #0x18 + str r6, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + movs r0, #5 + str r0, [sp, #0xc] + movs r0, #3 + str r0, [sp, #0x10] + movs r0, #2 + movs r1, #1 + bl sub_0811D920 +_0811E12E: + movs r2, #0x90 + lsls r2, r2, #0x17 + add r8, r2 + movs r0, #1 + rsbs r0, r0, #0 + add sb, r0 + mov r2, sb + cmp r2, #0 + bge _0811E0BC + mov r1, sl + ldr r0, [sp, #0x18] +_0811E144: + ldr r2, [sp, #0x14] + cmp r0, r2 + blt _0811E0A4 + movs r0, #2 + movs r1, #2 + bl CopyWindowToVram + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0811E07C + + thumb_func_start sub_0811E164 +sub_0811E164: @ 0x0811E164 + push {r4, r5, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r0, r0, #0x14 + adds r3, r0, #0 + adds r3, #0x60 + movs r0, #0xff + ands r3, r0 + lsrs r0, r1, #0x14 + adds r1, r3, r0 + cmp r1, #0xff + ble _0811E190 + ldr r0, _0811E18C + adds r4, r1, r0 + movs r0, #0x80 + lsls r0, r0, #1 + subs r0, r0, r3 + b _0811E192 + .align 2, 0 +_0811E18C: .4byte 0xFFFFFF00 +_0811E190: + movs r4, #0 +_0811E192: + movs r5, #0xe0 + str r5, [sp] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #4] + movs r0, #2 + movs r1, #0x11 + movs r2, #0 + bl FillWindowPixelRect + cmp r4, #0 + beq _0811E1BE + str r5, [sp] + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #4] + movs r0, #2 + movs r1, #0x11 + movs r2, #0 + movs r3, #0 + bl FillWindowPixelRect +_0811E1BE: + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0811E164 + + thumb_func_start sub_0811E1C8 +sub_0811E1C8: @ 0x0811E1C8 + push {lr} + movs r0, #2 + movs r1, #0x11 + bl FillWindowPixelBuffer + movs r0, #2 + movs r1, #2 + bl CopyWindowToVram + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0811E1C8 + + thumb_func_start sub_0811E1E0 +sub_0811E1E0: @ 0x0811E1E0 + push {lr} + ldr r1, _0811E1F4 + cmp r0, #6 + bhi _0811E29A + lsls r0, r0, #2 + ldr r1, _0811E1F8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0811E1F4: .4byte 0x02039DE8 +_0811E1F8: .4byte 0x0811E1FC +_0811E1FC: @ jump table + .4byte _0811E218 @ case 0 + .4byte _0811E22C @ case 1 + .4byte _0811E23C @ case 2 + .4byte _0811E250 @ case 3 + .4byte _0811E264 @ case 4 + .4byte _0811E278 @ case 5 + .4byte _0811E28C @ case 6 +_0811E218: + ldr r1, _0811E228 + ldr r2, [r1] + movs r0, #0 + strb r0, [r2, #6] + ldr r2, [r1] + movs r0, #0xa + b _0811E298 + .align 2, 0 +_0811E228: .4byte 0x02039DE8 +_0811E22C: + ldr r1, _0811E238 + ldr r2, [r1] + movs r3, #0 + movs r0, #9 + b _0811E258 + .align 2, 0 +_0811E238: .4byte 0x02039DE8 +_0811E23C: + ldr r1, _0811E24C + ldr r2, [r1] + movs r0, #0xb + strb r0, [r2, #6] + ldr r2, [r1] + movs r0, #0x11 + b _0811E298 + .align 2, 0 +_0811E24C: .4byte 0x02039DE8 +_0811E250: + ldr r1, _0811E260 + ldr r2, [r1] + movs r3, #0 + movs r0, #0x11 +_0811E258: + strb r0, [r2, #6] + ldr r0, [r1] + strb r3, [r0, #7] + b _0811E29A + .align 2, 0 +_0811E260: .4byte 0x02039DE8 +_0811E264: + ldr r1, _0811E274 + ldr r2, [r1] + movs r0, #0x11 + strb r0, [r2, #6] + ldr r2, [r1] + movs r0, #0xa + b _0811E298 + .align 2, 0 +_0811E274: .4byte 0x02039DE8 +_0811E278: + ldr r1, _0811E288 + ldr r2, [r1] + movs r0, #0x12 + strb r0, [r2, #6] + ldr r2, [r1] + movs r0, #0x16 + b _0811E298 + .align 2, 0 +_0811E288: .4byte 0x02039DE8 +_0811E28C: + ldr r1, _0811E2B4 + ldr r2, [r1] + movs r0, #0x16 + strb r0, [r2, #6] + ldr r2, [r1] + movs r0, #0x12 +_0811E298: + strb r0, [r2, #7] +_0811E29A: + ldr r1, [r1] + ldrb r0, [r1, #6] + movs r3, #1 + rsbs r3, r3, #0 + adds r2, r3, #0 + ldrb r3, [r1, #7] + cmp r0, r3 + bhs _0811E2AC + movs r2, #1 +_0811E2AC: + strb r2, [r1, #8] + pop {r0} + bx r0 + .align 2, 0 +_0811E2B4: .4byte 0x02039DE8 + thumb_func_end sub_0811E1E0 + + thumb_func_start sub_0811E2B8 +sub_0811E2B8: @ 0x0811E2B8 + push {r4, lr} + ldr r4, _0811E2E4 + ldr r1, [r4] + ldrb r2, [r1, #6] + ldrb r0, [r1, #7] + cmp r2, r0 + beq _0811E2E8 + ldrb r0, [r1, #8] + adds r0, r2, r0 + strb r0, [r1, #6] + ldr r0, [r4] + ldrb r0, [r0, #6] + bl sub_0811E2F0 + ldr r0, [r4] + ldrb r1, [r0, #6] + ldrb r0, [r0, #7] + eors r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + b _0811E2EA + .align 2, 0 +_0811E2E4: .4byte 0x02039DE8 +_0811E2E8: + movs r0, #0 +_0811E2EA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0811E2B8 + + thumb_func_start sub_0811E2F0 +sub_0811E2F0: @ 0x0811E2F0 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #0x1e + str r0, [sp] + movs r0, #0xa + str r0, [sp, #4] + movs r0, #1 + movs r1, #0 + movs r2, #0 + movs r3, #0xa + bl FillBgTilemapBufferRect_Palette0 + cmp r4, #0x16 + bls _0811E312 + b _0811E42E +_0811E312: + lsls r0, r4, #2 + ldr r1, _0811E31C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0811E31C: .4byte 0x0811E320 +_0811E320: @ jump table + .4byte _0811E42E @ case 0 + .4byte _0811E37C @ case 1 + .4byte _0811E384 @ case 2 + .4byte _0811E38C @ case 3 + .4byte _0811E394 @ case 4 + .4byte _0811E39C @ case 5 + .4byte _0811E3A4 @ case 6 + .4byte _0811E414 @ case 7 + .4byte _0811E406 @ case 8 + .4byte _0811E3F8 @ case 9 + .4byte _0811E3EA @ case 10 + .4byte _0811E3B2 @ case 11 + .4byte _0811E3BA @ case 12 + .4byte _0811E3C2 @ case 13 + .4byte _0811E3CA @ case 14 + .4byte _0811E3D2 @ case 15 + .4byte _0811E3DA @ case 16 + .4byte _0811E3E2 @ case 17 + .4byte _0811E3EA @ case 18 + .4byte _0811E3F8 @ case 19 + .4byte _0811E406 @ case 20 + .4byte _0811E414 @ case 21 + .4byte _0811E422 @ case 22 +_0811E37C: + movs r0, #0xb + movs r1, #0xe + movs r2, #3 + b _0811E3AA +_0811E384: + movs r0, #9 + movs r1, #0xe + movs r2, #7 + b _0811E3AA +_0811E38C: + movs r0, #7 + movs r1, #0xe + movs r2, #0xb + b _0811E3AA +_0811E394: + movs r0, #5 + movs r1, #0xe + movs r2, #0xf + b _0811E3AA +_0811E39C: + movs r0, #3 + movs r1, #0xe + movs r2, #0x13 + b _0811E3AA +_0811E3A4: + movs r0, #1 + movs r1, #0xe + movs r2, #0x17 +_0811E3AA: + movs r3, #2 + bl sub_0811E43C + b _0811E42E +_0811E3B2: + movs r0, #1 + movs r1, #0xa + movs r2, #0x18 + b _0811E3F0 +_0811E3BA: + movs r0, #1 + movs r1, #0xa + movs r2, #0x19 + b _0811E3F0 +_0811E3C2: + movs r0, #1 + movs r1, #0xa + movs r2, #0x1a + b _0811E3F0 +_0811E3CA: + movs r0, #1 + movs r1, #0xa + movs r2, #0x1b + b _0811E3F0 +_0811E3D2: + movs r0, #1 + movs r1, #0xa + movs r2, #0x1c + b _0811E3F0 +_0811E3DA: + movs r0, #1 + movs r1, #0xa + movs r2, #0x1d + b _0811E3F0 +_0811E3E2: + movs r0, #0 + movs r1, #0xa + movs r2, #0x1e + b _0811E3F0 +_0811E3EA: + movs r0, #1 + movs r1, #0xa + movs r2, #0x17 +_0811E3F0: + movs r3, #0xa + bl sub_0811E43C + b _0811E42E +_0811E3F8: + movs r0, #1 + movs r1, #0xb + movs r2, #0x17 + movs r3, #8 + bl sub_0811E43C + b _0811E42E +_0811E406: + movs r0, #1 + movs r1, #0xc + movs r2, #0x17 + movs r3, #6 + bl sub_0811E43C + b _0811E42E +_0811E414: + movs r0, #1 + movs r1, #0xd + movs r2, #0x17 + movs r3, #4 + bl sub_0811E43C + b _0811E42E +_0811E422: + movs r0, #1 + movs r1, #0xe + movs r2, #0x17 + movs r3, #2 + bl sub_0811E43C +_0811E42E: + movs r0, #1 + bl CopyBgTilemapBufferToVram + add sp, #8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0811E2F0 + + thumb_func_start sub_0811E43C +sub_0811E43C: @ 0x0811E43C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + mov ip, r0 + adds r7, r1, #0 + mov sb, r2 + mov sl, r3 + ldr r0, _0811E574 + ldr r0, [r0] + movs r1, #0xbf + lsls r1, r1, #2 + adds r6, r0, r1 + mov r0, ip + add r0, sb + subs r5, r0, #1 + adds r0, r7, r3 + subs r0, #1 + mov r8, r0 + mov r2, ip + adds r3, r7, #0 + lsls r0, r3, #5 + adds r0, r0, r2 + lsls r0, r0, #1 + adds r0, r0, r6 + ldr r4, _0811E578 + adds r1, r4, #0 + strh r1, [r0] + adds r2, #1 + cmp r2, r5 + bge _0811E498 + ldr r0, _0811E57C + adds r4, r0, #0 + lsls r1, r2, #1 + lsls r0, r3, #6 + adds r0, r0, r6 + adds r1, r1, r0 + subs r2, r5, r2 +_0811E48C: + strh r4, [r1] + adds r1, #2 + subs r2, #1 + cmp r2, #0 + bne _0811E48C + adds r2, r5, #0 +_0811E498: + lsls r0, r3, #5 + adds r0, r0, r2 + lsls r0, r0, #1 + adds r0, r0, r6 + ldr r2, _0811E580 + adds r1, r2, #0 + strh r1, [r0] + adds r3, #1 + mov r4, ip + adds r4, #1 + adds r0, r7, #1 + str r0, [sp, #4] + mov r1, sb + subs r1, #2 + str r1, [sp] + movs r2, #2 + rsbs r2, r2, #0 + add sl, r2 + cmp r3, r8 + bge _0811E508 + lsls r7, r4, #1 + mov sb, r7 +_0811E4C4: + lsls r0, r3, #5 + add r0, ip + lsls r0, r0, #1 + adds r0, r0, r6 + ldr r2, _0811E584 + adds r1, r2, #0 + strh r1, [r0] + adds r2, r4, #0 + adds r7, r3, #1 + cmp r4, r5 + bge _0811E4F4 + movs r0, #0x80 + lsls r0, r0, #7 + adds r1, r0, #0 + lsls r0, r3, #6 + adds r0, r0, r6 + add r0, sb + subs r2, r5, r4 +_0811E4E8: + strh r1, [r0] + adds r0, #2 + subs r2, #1 + cmp r2, #0 + bne _0811E4E8 + adds r2, r5, #0 +_0811E4F4: + lsls r0, r3, #5 + adds r0, r0, r2 + lsls r0, r0, #1 + adds r0, r0, r6 + ldr r2, _0811E588 + adds r1, r2, #0 + strh r1, [r0] + adds r3, r7, #0 + cmp r3, r8 + blt _0811E4C4 +_0811E508: + lsls r0, r3, #5 + mov r7, ip + adds r1, r0, r7 + lsls r1, r1, #1 + adds r1, r1, r6 + ldr r7, _0811E58C + adds r2, r7, #0 + strh r2, [r1] + adds r2, r4, #0 + mov ip, r0 + cmp r4, r5 + bge _0811E53A + ldr r0, _0811E590 + adds r7, r0, #0 + lsls r1, r4, #1 + lsls r0, r3, #6 + adds r0, r0, r6 + adds r0, r1, r0 + subs r2, r5, r4 +_0811E52E: + strh r7, [r0] + adds r0, #2 + subs r2, #1 + cmp r2, #0 + bne _0811E52E + adds r2, r5, #0 +_0811E53A: + mov r1, ip + adds r0, r1, r2 + lsls r0, r0, #1 + adds r0, r0, r6 + ldr r2, _0811E594 + adds r1, r2, #0 + strh r1, [r0] + lsls r0, r4, #0x1b + lsrs r0, r0, #0x18 + ldr r3, [sp, #4] + lsls r1, r3, #0x1b + lsrs r1, r1, #0x18 + ldr r4, [sp] + lsls r2, r4, #0x1b + lsrs r2, r2, #0x18 + mov r7, sl + lsls r3, r7, #0x1b + lsrs r3, r3, #0x18 + bl sub_0811E670 + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0811E574: .4byte 0x02039DE8 +_0811E578: .4byte 0x00004001 +_0811E57C: .4byte 0x00004002 +_0811E580: .4byte 0x00004003 +_0811E584: .4byte 0x00004005 +_0811E588: .4byte 0x00004007 +_0811E58C: .4byte 0x00004009 +_0811E590: .4byte 0x0000400A +_0811E594: .4byte 0x0000400B + thumb_func_end sub_0811E43C + + thumb_func_start sub_0811E598 +sub_0811E598: @ 0x0811E598 + push {lr} + movs r1, #0x80 + lsls r1, r1, #4 + movs r0, #2 + movs r2, #0 + bl ChangeBgY + ldr r0, _0811E5B8 + ldr r0, [r0] + ldr r1, _0811E5BC + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_0811E5B8: .4byte 0x02039DE8 +_0811E5BC: .4byte 0x000002CE + thumb_func_end sub_0811E598 + + thumb_func_start sub_0811E5C0 +sub_0811E5C0: @ 0x0811E5C0 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + movs r0, #2 + bl GetBgY + adds r2, r0, #0 + ldr r0, _0811E60C + ldr r3, [r0] + ldr r0, _0811E610 + adds r1, r3, r0 + ldrh r0, [r1] + adds r0, r0, r4 + strh r0, [r1] + lsls r4, r4, #0x14 + asrs r4, r4, #0x10 + lsls r0, r4, #8 + adds r2, r2, r0 + cmp r5, #0 + beq _0811E614 + movs r1, #0xb4 + lsls r1, r1, #2 + adds r0, r3, r1 + str r2, [r0] + movs r0, #0xb5 + lsls r0, r0, #2 + adds r1, r3, r0 + lsls r0, r5, #8 + str r0, [r1] + cmp r4, #0 + bge _0811E61E + rsbs r0, r0, #0 + str r0, [r1] + b _0811E61E + .align 2, 0 +_0811E60C: .4byte 0x02039DE8 +_0811E610: .4byte 0x000002CE +_0811E614: + movs r0, #2 + adds r1, r2, #0 + movs r2, #0 + bl ChangeBgY +_0811E61E: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_0811E5C0 + + thumb_func_start sub_0811E624 +sub_0811E624: @ 0x0811E624 + push {lr} + movs r0, #2 + bl GetBgY + ldr r1, _0811E650 + ldr r2, [r1] + movs r3, #0xb4 + lsls r3, r3, #2 + adds r1, r2, r3 + ldr r1, [r1] + cmp r0, r1 + beq _0811E654 + movs r1, #0xb5 + lsls r1, r1, #2 + adds r0, r2, r1 + ldr r1, [r0] + movs r0, #2 + movs r2, #1 + bl ChangeBgY + movs r0, #1 + b _0811E656 + .align 2, 0 +_0811E650: .4byte 0x02039DE8 +_0811E654: + movs r0, #0 +_0811E656: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811E624 + + thumb_func_start sub_0811E65C +sub_0811E65C: @ 0x0811E65C + ldr r0, _0811E668 + ldr r0, [r0] + ldr r1, _0811E66C + adds r0, r0, r1 + ldrh r0, [r0] + bx lr + .align 2, 0 +_0811E668: .4byte 0x02039DE8 +_0811E66C: .4byte 0x000002CE + thumb_func_end sub_0811E65C + + thumb_func_start sub_0811E670 +sub_0811E670: @ 0x0811E670 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r4, r0, #8 + adds r0, r0, r2 + orrs r4, r0 + lsls r5, r1, #8 + adds r1, r1, r3 + orrs r5, r1 + movs r0, #0x40 + adds r1, r4, #0 + bl SetGpuReg + movs r0, #0x44 + adds r1, r5, #0 + bl SetGpuReg + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_0811E670 + + thumb_func_start sub_0811E6A4 +sub_0811E6A4: @ 0x0811E6A4 + push {r4, r5, lr} + ldr r0, _0811E6CC + bl LoadSpriteSheets + ldr r0, _0811E6D0 + bl LoadSpritePalettes + movs r5, #0 + ldr r4, _0811E6D4 +_0811E6B6: + adds r0, r4, #0 + bl LoadCompressedSpriteSheet + adds r4, #8 + adds r5, #1 + cmp r5, #3 + bls _0811E6B6 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0811E6CC: .4byte 0x085743CC +_0811E6D0: .4byte 0x085743EC +_0811E6D4: .4byte 0x08574414 + thumb_func_end sub_0811E6A4 + + thumb_func_start sub_0811E6D8 +sub_0811E6D8: @ 0x0811E6D8 + push {lr} + bl GetEasyChatScreenFrameId + lsls r0, r0, #0x18 + ldr r1, _0811E724 + lsrs r0, r0, #0x16 + adds r0, r0, r1 + ldrb r2, [r0] + lsls r1, r2, #0x1b + lsrs r1, r1, #8 + lsrs r2, r2, #5 + adds r2, #1 + ldr r0, _0811E728 + movs r3, #0xc0 + lsls r3, r3, #0xc + adds r1, r1, r3 + asrs r1, r1, #0x10 + lsls r2, r2, #3 + movs r3, #2 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0811E72C + ldr r2, [r1] + movs r1, #0xb6 + lsls r1, r1, #2 + adds r2, r2, r1 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _0811E730 + adds r1, r1, r0 + str r1, [r2] + movs r0, #1 + strh r0, [r1, #0x30] + pop {r0} + bx r0 + .align 2, 0 +_0811E724: .4byte 0x08574358 +_0811E728: .4byte 0x0857443C +_0811E72C: .4byte 0x02039DE8 +_0811E730: .4byte 0x020205AC + thumb_func_end sub_0811E6D8 + + thumb_func_start sub_0811E734 +sub_0811E734: @ 0x0811E734 + push {lr} + adds r1, r0, #0 + movs r2, #0x30 + ldrsh r0, [r1, r2] + cmp r0, #0 + beq _0811E762 + ldrh r0, [r1, #0x2e] + adds r0, #1 + strh r0, [r1, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + ble _0811E762 + movs r0, #0 + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x24] + adds r0, #1 + strh r0, [r1, #0x24] + lsls r0, r0, #0x10 + cmp r0, #0 + ble _0811E762 + ldr r0, _0811E768 + strh r0, [r1, #0x24] +_0811E762: + pop {r0} + bx r0 + .align 2, 0 +_0811E768: .4byte 0x0000FFFA + thumb_func_end sub_0811E734 + + thumb_func_start sub_0811E76C +sub_0811E76C: @ 0x0811E76C + push {r4, lr} + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + ldr r2, _0811E79C + ldr r2, [r2] + movs r3, #0xb6 + lsls r3, r3, #2 + adds r2, r2, r3 + ldr r3, [r2] + lsrs r0, r0, #0x15 + adds r0, #4 + movs r4, #0 + strh r0, [r3, #0x20] + ldr r0, [r2] + lsrs r1, r1, #0x15 + adds r1, #8 + strh r1, [r0, #0x22] + ldr r0, [r2] + strh r4, [r0, #0x24] + ldr r0, [r2] + strh r4, [r0, #0x2e] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811E79C: .4byte 0x02039DE8 + thumb_func_end sub_0811E76C + + thumb_func_start sub_0811E7A0 +sub_0811E7A0: @ 0x0811E7A0 + ldr r0, _0811E7BC + ldr r1, [r0] + movs r0, #0xb6 + lsls r0, r0, #2 + adds r1, r1, r0 + ldr r0, [r1] + movs r2, #0 + strh r2, [r0, #0x2e] + ldr r0, [r1] + strh r2, [r0, #0x30] + ldr r0, [r1] + strh r2, [r0, #0x24] + bx lr + .align 2, 0 +_0811E7BC: .4byte 0x02039DE8 + thumb_func_end sub_0811E7A0 + + thumb_func_start sub_0811E7C0 +sub_0811E7C0: @ 0x0811E7C0 + ldr r0, _0811E7D4 + ldr r0, [r0] + movs r1, #0xb6 + lsls r1, r1, #2 + adds r0, r0, r1 + ldr r1, [r0] + movs r0, #1 + strh r0, [r1, #0x30] + bx lr + .align 2, 0 +_0811E7D4: .4byte 0x02039DE8 + thumb_func_end sub_0811E7C0 + + thumb_func_start sub_0811E7D8 +sub_0811E7D8: @ 0x0811E7D8 + push {lr} + ldr r0, _0811E808 + movs r1, #0 + movs r2, #0 + movs r3, #3 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0811E80C + ldr r2, [r1] + movs r1, #0xb7 + lsls r1, r1, #2 + adds r2, r2, r1 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _0811E810 + adds r1, r1, r0 + str r1, [r2] + bl sub_0811E838 + pop {r0} + bx r0 + .align 2, 0 +_0811E808: .4byte 0x0857448C +_0811E80C: .4byte 0x02039DE8 +_0811E810: .4byte 0x020205AC + thumb_func_end sub_0811E7D8 + + thumb_func_start sub_0811E814 +sub_0811E814: @ 0x0811E814 + push {r4, r5, lr} + ldr r5, _0811E834 + ldr r0, [r5] + movs r4, #0xb7 + lsls r4, r4, #2 + adds r0, r0, r4 + ldr r0, [r0] + bl DestroySprite + ldr r0, [r5] + adds r0, r0, r4 + movs r1, #0 + str r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0811E834: .4byte 0x02039DE8 + thumb_func_end sub_0811E814 + + thumb_func_start sub_0811E838 +sub_0811E838: @ 0x0811E838 + push {r4, lr} + sub sp, #4 + ldr r0, _0811E874 + ldr r0, [r0] + movs r1, #0xb7 + lsls r1, r1, #2 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #0 + beq _0811E888 + mov r4, sp + adds r4, #1 + mov r0, sp + adds r1, r4, #0 + bl sub_0811C3A0 + bl sub_0811C3B4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811E878 + mov r0, sp + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #0 + ldrsb r1, [r4, r1] + bl sub_0811E890 + b _0811E888 + .align 2, 0 +_0811E874: .4byte 0x02039DE8 +_0811E878: + mov r0, sp + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #0 + ldrsb r1, [r4, r1] + bl sub_0811E904 +_0811E888: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0811E838 + + thumb_func_start sub_0811E890 +sub_0811E890: @ 0x0811E890 + push {r4, r5, r6, r7, lr} + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + lsls r0, r0, #0x18 + asrs r6, r0, #0x18 + movs r0, #1 + rsbs r0, r0, #0 + cmp r6, r0 + beq _0811E8D4 + ldr r5, _0811E8D0 + ldr r0, [r5] + movs r4, #0xb7 + lsls r4, r4, #2 + adds r0, r0, r4 + ldr r0, [r0] + movs r1, #0 + bl StartSpriteAnim + ldr r1, [r5] + adds r1, r1, r4 + ldr r2, [r1] + lsls r0, r6, #3 + subs r0, r0, r6 + lsls r0, r0, #3 + adds r0, #0x28 + strh r0, [r2, #0x20] + ldr r1, [r1] + lsls r0, r7, #0x18 + asrs r0, r0, #0x14 + adds r0, #0x60 + b _0811E8F8 + .align 2, 0 +_0811E8D0: .4byte 0x02039DE8 +_0811E8D4: + ldr r5, _0811E900 + ldr r0, [r5] + movs r4, #0xb7 + lsls r4, r4, #2 + adds r0, r0, r4 + ldr r0, [r0] + movs r1, #1 + bl StartSpriteAnim + ldr r0, [r5] + adds r0, r0, r4 + ldr r2, [r0] + movs r1, #0xd8 + strh r1, [r2, #0x20] + ldr r1, [r0] + lsls r0, r7, #0x18 + asrs r0, r0, #0x14 + adds r0, #0x70 +_0811E8F8: + strh r0, [r1, #0x22] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0811E900: .4byte 0x02039DE8 + thumb_func_end sub_0811E890 + + thumb_func_start sub_0811E904 +sub_0811E904: @ 0x0811E904 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + lsrs r1, r0, #0x18 + mov r8, r1 + asrs r1, r0, #0x18 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0811E99C + lsls r7, r6, #0x18 + cmp r1, #0xa + bne _0811E950 + asrs r0, r7, #0x18 + cmp r0, #1 + bne _0811E950 + ldr r5, _0811E94C + ldr r0, [r5] + movs r4, #0xb7 + lsls r4, r4, #2 + adds r0, r0, r4 + ldr r0, [r0] + movs r1, #2 + bl StartSpriteAnim + ldr r0, [r5] + adds r0, r0, r4 + ldr r2, [r0] + movs r1, #0x7c + strh r1, [r2, #0x20] + ldr r1, [r0] + movs r0, #0x70 + b _0811E9C0 + .align 2, 0 +_0811E94C: .4byte 0x02039DE8 +_0811E950: + ldr r5, _0811E998 + ldr r0, [r5] + movs r4, #0xb7 + lsls r4, r4, #2 + adds r0, r0, r4 + ldr r0, [r0] + movs r1, #3 + bl StartSpriteAnim + ldr r0, [r5] + adds r6, r0, r4 + ldr r5, [r6] + mov r0, r8 + lsls r4, r0, #0x18 + asrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #5 + bl __divsi3 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, r4, r0 + lsls r0, r0, #3 + adds r0, #0x14 + strh r0, [r5, #0x20] + ldr r1, [r6] + asrs r0, r7, #0x14 + adds r0, #0x60 + strh r0, [r1, #0x22] + cmp r4, #0xc + ble _0811E9C2 + ldr r1, [r6] + ldrh r0, [r1, #0x20] + adds r0, #8 + strh r0, [r1, #0x20] + b _0811E9C2 + .align 2, 0 +_0811E998: .4byte 0x02039DE8 +_0811E99C: + ldr r5, _0811E9CC + ldr r0, [r5] + movs r4, #0xb7 + lsls r4, r4, #2 + adds r0, r0, r4 + ldr r0, [r0] + movs r1, #1 + bl StartSpriteAnim + ldr r0, [r5] + adds r0, r0, r4 + ldr r2, [r0] + movs r1, #0xd8 + strh r1, [r2, #0x20] + ldr r1, [r0] + lsls r0, r6, #0x18 + asrs r0, r0, #0x14 + adds r0, #0x70 +_0811E9C0: + strh r0, [r1, #0x22] +_0811E9C2: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0811E9CC: .4byte 0x02039DE8 + thumb_func_end sub_0811E904 + + thumb_func_start sub_0811E9D0 +sub_0811E9D0: @ 0x0811E9D0 + push {lr} + ldr r0, _0811EA14 + movs r1, #0 + movs r2, #0 + movs r3, #4 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0811EA18 + ldr r2, [r1] + movs r1, #0xb8 + lsls r1, r1, #2 + adds r2, r2, r1 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _0811EA1C + adds r1, r1, r0 + str r1, [r2] + ldr r0, _0811EA20 + str r0, [r1, #0x1c] + ldrb r2, [r1, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + movs r2, #8 + orrs r0, r2 + strb r0, [r1, #5] + bl sub_0811EA54 + pop {r0} + bx r0 + .align 2, 0 +_0811EA14: .4byte 0x0857443C +_0811EA18: .4byte 0x02039DE8 +_0811EA1C: .4byte 0x020205AC +_0811EA20: .4byte 0x0811EA25 + thumb_func_end sub_0811E9D0 + + thumb_func_start sub_0811EA24 +sub_0811EA24: @ 0x0811EA24 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0x2e] + adds r0, #1 + strh r0, [r1, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + ble _0811EA4A + movs r0, #0 + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x24] + adds r0, #1 + strh r0, [r1, #0x24] + lsls r0, r0, #0x10 + cmp r0, #0 + ble _0811EA4A + ldr r0, _0811EA50 + strh r0, [r1, #0x24] +_0811EA4A: + pop {r0} + bx r0 + .align 2, 0 +_0811EA50: .4byte 0x0000FFFA + thumb_func_end sub_0811EA24 + + thumb_func_start sub_0811EA54 +sub_0811EA54: @ 0x0811EA54 + push {r4, lr} + sub sp, #4 + mov r4, sp + adds r4, #1 + mov r0, sp + adds r1, r4, #0 + bl sub_0811C3CC + mov r0, sp + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + adds r0, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + ldrsb r1, [r4, r1] + lsls r1, r1, #0x19 + movs r2, #0xb0 + lsls r2, r2, #0x14 + adds r1, r1, r2 + lsrs r1, r1, #0x18 + bl sub_0811EA90 + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0811EA54 + + thumb_func_start sub_0811EA90 +sub_0811EA90: @ 0x0811EA90 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + ldr r0, _0811EAC8 + ldr r0, [r0] + movs r1, #0xb8 + lsls r1, r1, #2 + adds r3, r0, r1 + ldr r1, [r3] + cmp r1, #0 + beq _0811EAC2 + lsls r0, r2, #3 + adds r0, #4 + movs r2, #0 + strh r0, [r1, #0x20] + ldr r1, [r3] + adds r0, r4, #1 + lsls r0, r0, #3 + strh r0, [r1, #0x22] + ldr r0, [r3] + strh r2, [r0, #0x24] + ldr r0, [r3] + strh r2, [r0, #0x2e] +_0811EAC2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811EAC8: .4byte 0x02039DE8 + thumb_func_end sub_0811EA90 + + thumb_func_start sub_0811EACC +sub_0811EACC: @ 0x0811EACC + push {r4, lr} + ldr r4, _0811EAF4 + ldr r0, [r4] + movs r1, #0xb8 + lsls r1, r1, #2 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #0 + beq _0811EAEE + bl DestroySprite + ldr r0, [r4] + movs r1, #0xb8 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r1, #0 + str r1, [r0] +_0811EAEE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811EAF4: .4byte 0x02039DE8 + thumb_func_end sub_0811EACC + + thumb_func_start sub_0811EAF8 +sub_0811EAF8: @ 0x0811EAF8 + push {r4, r5, r6, lr} + ldr r0, _0811EB50 + movs r1, #0xd0 + movs r2, #0x80 + movs r3, #6 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _0811EB54 + ldr r2, [r5] + movs r1, #0xb9 + lsls r1, r1, #2 + adds r2, r2, r1 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r4, _0811EB58 + adds r1, r1, r4 + str r1, [r2] + movs r6, #0 + ldr r0, _0811EB5C + strh r0, [r1, #0x24] + ldr r0, _0811EB60 + movs r1, #0xd0 + movs r2, #0x50 + movs r3, #5 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, [r5] + movs r1, #0xba + lsls r1, r1, #2 + adds r3, r2, r1 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + str r1, [r3] + strb r6, [r2, #9] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0811EB50: .4byte 0x08574514 +_0811EB54: .4byte 0x02039DE8 +_0811EB58: .4byte 0x020205AC +_0811EB5C: .4byte 0x0000FFC0 +_0811EB60: .4byte 0x085744F4 + thumb_func_end sub_0811EAF8 + + thumb_func_start sub_0811EB64 +sub_0811EB64: @ 0x0811EB64 + push {r4, lr} + ldr r4, _0811EB78 + ldr r2, [r4] + ldrb r3, [r2, #9] + cmp r3, #0 + beq _0811EB7C + cmp r3, #1 + beq _0811EBD4 + movs r0, #0 + b _0811EBF2 + .align 2, 0 +_0811EB78: .4byte 0x02039DE8 +_0811EB7C: + movs r0, #0xb9 + lsls r0, r0, #2 + adds r2, r2, r0 + ldr r1, [r2] + ldrh r0, [r1, #0x24] + adds r0, #8 + strh r0, [r1, #0x24] + ldr r2, [r2] + movs r1, #0x24 + ldrsh r0, [r2, r1] + cmp r0, #0 + blt _0811EBF0 + strh r3, [r2, #0x24] + bl sub_0811C3B4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811EBB2 + ldr r0, [r4] + movs r1, #0xba + lsls r1, r1, #2 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #1 + bl StartSpriteAnim + b _0811EBC2 +_0811EBB2: + ldr r0, [r4] + movs r1, #0xba + lsls r1, r1, #2 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #2 + bl StartSpriteAnim +_0811EBC2: + ldr r0, _0811EBD0 + ldr r1, [r0] + ldrb r0, [r1, #9] + adds r0, #1 + strb r0, [r1, #9] + b _0811EBF0 + .align 2, 0 +_0811EBD0: .4byte 0x02039DE8 +_0811EBD4: + movs r1, #0xba + lsls r1, r1, #2 + adds r0, r2, r1 + ldr r0, [r0] + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0811EBF0 + movs r0, #2 + strb r0, [r2, #9] + movs r0, #0 + b _0811EBF2 +_0811EBF0: + movs r0, #1 +_0811EBF2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0811EB64 + + thumb_func_start sub_0811EBF8 +sub_0811EBF8: @ 0x0811EBF8 + push {lr} + ldr r2, _0811EC18 + ldr r1, [r2] + movs r0, #0 + strb r0, [r1, #9] + ldr r0, [r2] + movs r1, #0xba + lsls r1, r1, #2 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #3 + bl StartSpriteAnim + pop {r0} + bx r0 + .align 2, 0 +_0811EC18: .4byte 0x02039DE8 + thumb_func_end sub_0811EBF8 + + thumb_func_start sub_0811EC1C +sub_0811EC1C: @ 0x0811EC1C + push {r4, r5, r6, lr} + ldr r5, _0811EC30 + ldr r3, [r5] + ldrb r0, [r3, #9] + cmp r0, #0 + beq _0811EC34 + cmp r0, #1 + beq _0811EC4E + movs r0, #0 + b _0811ECA0 + .align 2, 0 +_0811EC30: .4byte 0x02039DE8 +_0811EC34: + movs r1, #0xba + lsls r1, r1, #2 + adds r0, r3, r1 + ldr r0, [r0] + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0811EC9E + movs r0, #1 + strb r0, [r3, #9] + b _0811EC9E +_0811EC4E: + movs r0, #0xb9 + lsls r0, r0, #2 + adds r2, r3, r0 + ldr r1, [r2] + ldrh r0, [r1, #0x24] + subs r0, #8 + movs r6, #0 + strh r0, [r1, #0x24] + ldr r0, [r2] + movs r2, #0x24 + ldrsh r1, [r0, r2] + movs r0, #0x40 + rsbs r0, r0, #0 + cmp r1, r0 + bgt _0811EC9E + movs r4, #0xba + lsls r4, r4, #2 + adds r0, r3, r4 + ldr r0, [r0] + bl DestroySprite + ldr r0, [r5] + movs r1, #0xb9 + lsls r1, r1, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl DestroySprite + ldr r1, [r5] + adds r4, r1, r4 + str r6, [r4] + movs r2, #0xb9 + lsls r2, r2, #2 + adds r0, r1, r2 + str r6, [r0] + ldrb r0, [r1, #9] + adds r0, #1 + strb r0, [r1, #9] + movs r0, #0 + b _0811ECA0 +_0811EC9E: + movs r0, #1 +_0811ECA0: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811EC1C + + thumb_func_start sub_0811ECA8 +sub_0811ECA8: @ 0x0811ECA8 + push {lr} + ldr r0, _0811ECC0 + ldr r0, [r0] + movs r1, #0xba + lsls r1, r1, #2 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #4 + bl StartSpriteAnim + pop {r0} + bx r0 + .align 2, 0 +_0811ECC0: .4byte 0x02039DE8 + thumb_func_end sub_0811ECA8 + + thumb_func_start sub_0811ECC4 +sub_0811ECC4: @ 0x0811ECC4 + push {lr} + bl sub_0811C3B4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811ECE8 + ldr r0, _0811ECE4 + ldr r0, [r0] + movs r1, #0xba + lsls r1, r1, #2 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #1 + bl StartSpriteAnim + b _0811ECFA + .align 2, 0 +_0811ECE4: .4byte 0x02039DE8 +_0811ECE8: + ldr r0, _0811ED00 + ldr r0, [r0] + movs r1, #0xba + lsls r1, r1, #2 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #2 + bl StartSpriteAnim +_0811ECFA: + pop {r0} + bx r0 + .align 2, 0 +_0811ED00: .4byte 0x02039DE8 + thumb_func_end sub_0811ECC4 + + thumb_func_start sub_0811ED04 +sub_0811ED04: @ 0x0811ED04 + ldr r0, _0811ED1C + ldr r0, [r0] + movs r1, #0xba + lsls r1, r1, #2 + adds r0, r0, r1 + ldr r0, [r0] + adds r0, #0x3f + ldrb r1, [r0] + lsrs r1, r1, #4 + movs r0, #1 + bics r0, r1 + bx lr + .align 2, 0 +_0811ED1C: .4byte 0x02039DE8 + thumb_func_end sub_0811ED04 + + thumb_func_start sub_0811ED20 +sub_0811ED20: @ 0x0811ED20 + push {r4, lr} + ldr r4, _0811ED8C + adds r0, r4, #0 + movs r1, #0x60 + movs r2, #0x50 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x40 + beq _0811ED4E + ldr r0, _0811ED90 + ldr r2, [r0] + movs r0, #0xbb + lsls r0, r0, #2 + adds r2, r2, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0811ED94 + adds r0, r0, r1 + str r0, [r2] +_0811ED4E: + adds r0, r4, #0 + movs r1, #0x60 + movs r2, #0x9c + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x40 + beq _0811ED82 + ldr r0, _0811ED90 + ldr r2, [r0] + movs r0, #0xbc + lsls r0, r0, #2 + adds r2, r2, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0811ED94 + adds r0, r0, r1 + str r0, [r2] + adds r0, #0x3f + ldrb r1, [r0] + movs r2, #2 + orrs r1, r2 + strb r1, [r0] +_0811ED82: + bl sub_0811EDFC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811ED8C: .4byte 0x0857456C +_0811ED90: .4byte 0x02039DE8 +_0811ED94: .4byte 0x020205AC + thumb_func_end sub_0811ED20 + + thumb_func_start sub_0811ED98 +sub_0811ED98: @ 0x0811ED98 + push {r4, r5, r6, lr} + bl sub_0811C3FC + ldr r6, _0811EDF8 + ldr r1, [r6] + movs r2, #0xbb + lsls r2, r2, #2 + adds r1, r1, r2 + ldr r1, [r1] + movs r2, #0 + cmp r0, #0 + bne _0811EDB2 + movs r2, #1 +_0811EDB2: + adds r3, r1, #0 + adds r3, #0x3e + movs r4, #1 + lsls r2, r2, #2 + ldrb r1, [r3] + movs r5, #5 + rsbs r5, r5, #0 + adds r0, r5, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3] + bl sub_0811C430 + ldr r1, [r6] + movs r2, #0xbc + lsls r2, r2, #2 + adds r1, r1, r2 + ldr r1, [r1] + movs r2, #0 + cmp r0, #0 + bne _0811EDDE + movs r2, #1 +_0811EDDE: + adds r3, r1, #0 + adds r3, #0x3e + adds r1, r4, #0 + ands r1, r2 + lsls r1, r1, #2 + ldrb r2, [r3] + adds r0, r5, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0811EDF8: .4byte 0x02039DE8 + thumb_func_end sub_0811ED98 + + thumb_func_start sub_0811EDFC +sub_0811EDFC: @ 0x0811EDFC + ldr r3, _0811EE28 + ldr r0, [r3] + movs r1, #0xbb + lsls r1, r1, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + ldr r0, [r3] + movs r1, #0xbc + lsls r1, r1, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r1, #0x3e + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] + bx lr + .align 2, 0 +_0811EE28: .4byte 0x02039DE8 + thumb_func_end sub_0811EDFC + + thumb_func_start sub_0811EE2C +sub_0811EE2C: @ 0x0811EE2C + push {lr} + cmp r0, #0 + bne _0811EE48 + ldr r0, _0811EE44 + ldr r2, [r0] + movs r1, #0xbb + lsls r1, r1, #2 + adds r0, r2, r1 + ldr r0, [r0] + movs r1, #0x60 + b _0811EE56 + .align 2, 0 +_0811EE44: .4byte 0x02039DE8 +_0811EE48: + ldr r0, _0811EE68 + ldr r2, [r0] + movs r1, #0xbb + lsls r1, r1, #2 + adds r0, r2, r1 + ldr r0, [r0] + movs r1, #0x78 +_0811EE56: + strh r1, [r0, #0x20] + movs r3, #0xbc + lsls r3, r3, #2 + adds r0, r2, r3 + ldr r0, [r0] + strh r1, [r0, #0x20] + pop {r0} + bx r0 + .align 2, 0 +_0811EE68: .4byte 0x02039DE8 + thumb_func_end sub_0811EE2C + + thumb_func_start sub_0811EE6C +sub_0811EE6C: @ 0x0811EE6C + push {r4, lr} + ldr r4, _0811EED4 + adds r0, r4, #0 + movs r1, #0xdc + movs r2, #0x54 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x40 + beq _0811EE9A + ldr r0, _0811EED8 + ldr r2, [r0] + movs r0, #0xbd + lsls r0, r0, #2 + adds r2, r2, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0811EEDC + adds r0, r0, r1 + str r0, [r2] +_0811EE9A: + adds r0, r4, #0 + movs r1, #0xdc + movs r2, #0x9c + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x40 + beq _0811EECA + ldr r0, _0811EED8 + ldr r2, [r0] + movs r0, #0xbe + lsls r0, r0, #2 + adds r2, r2, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0811EEDC + adds r0, r0, r1 + str r0, [r2] + movs r1, #1 + bl StartSpriteAnim +_0811EECA: + bl sub_0811EF44 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811EED4: .4byte 0x08574554 +_0811EED8: .4byte 0x02039DE8 +_0811EEDC: .4byte 0x020205AC + thumb_func_end sub_0811EE6C + + thumb_func_start sub_0811EEE0 +sub_0811EEE0: @ 0x0811EEE0 + push {r4, r5, r6, lr} + bl sub_0811C3FC + ldr r6, _0811EF40 + ldr r1, [r6] + movs r2, #0xbd + lsls r2, r2, #2 + adds r1, r1, r2 + ldr r1, [r1] + movs r2, #0 + cmp r0, #0 + bne _0811EEFA + movs r2, #1 +_0811EEFA: + adds r3, r1, #0 + adds r3, #0x3e + movs r4, #1 + lsls r2, r2, #2 + ldrb r1, [r3] + movs r5, #5 + rsbs r5, r5, #0 + adds r0, r5, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3] + bl sub_0811C430 + ldr r1, [r6] + movs r2, #0xbe + lsls r2, r2, #2 + adds r1, r1, r2 + ldr r1, [r1] + movs r2, #0 + cmp r0, #0 + bne _0811EF26 + movs r2, #1 +_0811EF26: + adds r3, r1, #0 + adds r3, #0x3e + adds r1, r4, #0 + ands r1, r2 + lsls r1, r1, #2 + ldrb r2, [r3] + adds r0, r5, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0811EF40: .4byte 0x02039DE8 + thumb_func_end sub_0811EEE0 + + thumb_func_start sub_0811EF44 +sub_0811EF44: @ 0x0811EF44 + ldr r3, _0811EF70 + ldr r0, [r3] + movs r1, #0xbd + lsls r1, r1, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + ldr r0, [r3] + movs r1, #0xbe + lsls r1, r1, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r1, #0x3e + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] + bx lr + .align 2, 0 +_0811EF70: .4byte 0x02039DE8 + thumb_func_end sub_0811EF44 + + thumb_func_start sub_0811EF74 +sub_0811EF74: @ 0x0811EF74 + push {r4, r5, r6, r7, lr} + sub sp, #4 + bl GetDisplayedPersonType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0811EF98 + cmp r0, #1 + bgt _0811EF8E + cmp r0, #0 + beq _0811EF94 + b _0811F02E +_0811EF8E: + cmp r0, #2 + beq _0811EF9C + b _0811F02E +_0811EF94: + movs r4, #0x43 + b _0811EF9E +_0811EF98: + movs r4, #0x44 + b _0811EF9E +_0811EF9C: + movs r4, #7 +_0811EF9E: + bl GetEasyChatScreenFrameId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + beq _0811EFB0 + cmp r0, #5 + beq _0811EFB6 + b _0811F02E +_0811EFB0: + movs r5, #0x4c + movs r3, #0x28 + b _0811EFBA +_0811EFB6: + movs r5, #0x30 + movs r3, #0x30 +_0811EFBA: + adds r0, r4, #0 + ldr r7, _0811F038 + adds r2, r5, #0 + adds r4, r3, #0 + movs r6, #0 + str r6, [sp] + adds r1, r7, #0 + bl AddPseudoEventObject + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x40 + beq _0811EFEE + ldr r1, _0811F03C + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r2, [r0, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0, #5] + movs r1, #2 + bl StartSpriteAnim +_0811EFEE: + ldr r0, _0811F040 + ldr r0, [r0] + ldrb r0, [r0, #8] + movs r1, #0x69 + cmp r0, #0 + bne _0811EFFC + movs r1, #0x64 +_0811EFFC: + adds r2, r5, #0 + subs r2, #0x18 + str r6, [sp] + adds r0, r1, #0 + adds r1, r7, #0 + adds r3, r4, #0 + bl AddPseudoEventObject + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x40 + beq _0811F02E + ldr r1, _0811F03C + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r2, [r0, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0, #5] + movs r1, #3 + bl StartSpriteAnim +_0811F02E: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0811F038: .4byte 0x08007141 +_0811F03C: .4byte 0x020205AC +_0811F040: .4byte 0x03005AF0 + thumb_func_end sub_0811EF74 + + thumb_func_start sub_0811F044 +sub_0811F044: @ 0x0811F044 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + cmp r0, #0x14 + beq _0811F06A + cmp r0, #0x14 + bgt _0811F064 + cmp r0, #0x11 + blt _0811F082 + ldr r0, _0811F060 + bl FlagGet + b _0811F07C + .align 2, 0 +_0811F060: .4byte 0x00000864 +_0811F064: + cmp r1, #0x15 + beq _0811F078 + b _0811F082 +_0811F06A: + ldr r0, _0811F074 + bl FlagGet + b _0811F07C + .align 2, 0 +_0811F074: .4byte 0x00000866 +_0811F078: + bl sub_0811F5D8 +_0811F07C: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0811F084 +_0811F082: + movs r0, #1 +_0811F084: + pop {r1} + bx r1 + thumb_func_end sub_0811F044 + + thumb_func_start EasyChat_GetNumWordsInGroup +EasyChat_GetNumWordsInGroup: @ 0x0811F088 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r4, r0, #0 + cmp r0, #0 + bne _0811F0A0 + movs r0, #0 + bl GetNationalPokedexCount + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _0811F0B6 +_0811F0A0: + bl sub_0811F044 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811F0AE + movs r0, #0 + b _0811F0B6 +_0811F0AE: + ldr r0, _0811F0BC + lsls r1, r4, #3 + adds r1, r1, r0 + ldrh r0, [r1, #6] +_0811F0B6: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0811F0BC: .4byte 0x08578D14 + thumb_func_end EasyChat_GetNumWordsInGroup + + thumb_func_start sub_0811F0C0 +sub_0811F0C0: @ 0x0811F0C0 + push {r4, r5, lr} + lsls r2, r0, #0x10 + lsrs r1, r2, #0x10 + ldr r0, _0811F0EC + cmp r1, r0 + beq _0811F120 + lsrs r3, r2, #0x19 + ldr r5, _0811F0F0 + ands r5, r1 + cmp r3, #0x15 + bhi _0811F124 + ldr r0, _0811F0F4 + lsls r2, r3, #3 + adds r1, r2, r0 + ldrh r4, [r1, #4] + cmp r3, #0x13 + bgt _0811F0F8 + cmp r3, #0x12 + bge _0811F0FC + cmp r3, #0 + beq _0811F0FC + b _0811F11C + .align 2, 0 +_0811F0EC: .4byte 0x0000FFFF +_0811F0F0: .4byte 0x000001FF +_0811F0F4: .4byte 0x08578D14 +_0811F0F8: + cmp r3, #0x15 + bne _0811F11C +_0811F0FC: + adds r0, r2, r0 + ldr r2, [r0] + movs r1, #0 + cmp r1, r4 + bhs _0811F124 +_0811F106: + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r5, r0 + beq _0811F120 + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, r4 + blo _0811F106 + b _0811F124 +_0811F11C: + cmp r5, r4 + bhs _0811F124 +_0811F120: + movs r0, #0 + b _0811F126 +_0811F124: + movs r0, #1 +_0811F126: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_0811F0C0 + + thumb_func_start GetEasyChatWord +GetEasyChatWord: @ 0x0811F12C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r2, r1, #0x10 + cmp r0, #0x13 + bgt _0811F144 + cmp r0, #0x12 + bge _0811F158 + cmp r0, #0 + beq _0811F148 + b _0811F164 +_0811F144: + cmp r0, #0x15 + bne _0811F164 +_0811F148: + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #1 + ldr r1, _0811F154 + adds r0, r0, r1 + b _0811F176 + .align 2, 0 +_0811F154: .4byte 0x082EA31C +_0811F158: + lsls r0, r2, #3 + ldr r1, _0811F160 + adds r0, r0, r1 + b _0811F176 + .align 2, 0 +_0811F160: .4byte 0x082EACC4 +_0811F164: + ldr r1, _0811F17C + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, [r0] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] +_0811F176: + pop {r1} + bx r1 + .align 2, 0 +_0811F17C: .4byte 0x08578D14 + thumb_func_end GetEasyChatWord + + thumb_func_start CopyEasyChatWord +CopyEasyChatWord: @ 0x0811F180 + push {r4, r5, r6, lr} + adds r5, r0, #0 + lsls r6, r1, #0x10 + lsrs r0, r6, #0x10 + adds r4, r0, #0 + bl sub_0811F0C0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0811F19C + ldr r1, _0811F198 + b _0811F1AE + .align 2, 0 +_0811F198: .4byte 0x08579F30 +_0811F19C: + ldr r0, _0811F1B8 + cmp r4, r0 + beq _0811F1C0 + ldr r1, _0811F1BC + ands r1, r4 + lsrs r0, r6, #0x19 + bl GetEasyChatWord + adds r1, r0, #0 +_0811F1AE: + adds r0, r5, #0 + bl StringCopy + b _0811F1C6 + .align 2, 0 +_0811F1B8: .4byte 0x0000FFFF +_0811F1BC: .4byte 0x000001FF +_0811F1C0: + movs r0, #0xff + strb r0, [r5] + adds r0, r5, #0 +_0811F1C6: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end CopyEasyChatWord + + thumb_func_start ConvertEasyChatWordsToString +ConvertEasyChatWordsToString: @ 0x0811F1CC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + lsls r2, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + mov sb, r3 + ldr r0, _0811F254 + adds r2, r2, r0 + lsrs r7, r2, #0x10 + movs r0, #0 + cmp r0, sb + bhs _0811F23C +_0811F1EE: + movs r6, #0 + adds r0, #1 + mov r8, r0 + cmp r6, r7 + bhs _0811F220 + ldr r2, _0811F258 +_0811F1FA: + ldrh r1, [r5] + adds r0, r4, #0 + str r2, [sp] + bl CopyEasyChatWord + adds r4, r0, #0 + ldrh r0, [r5] + ldr r2, [sp] + cmp r0, r2 + beq _0811F214 + movs r0, #0 + strb r0, [r4] + adds r4, #1 +_0811F214: + adds r5, #2 + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, r7 + blo _0811F1FA +_0811F220: + ldrh r1, [r5] + adds r5, #2 + adds r0, r4, #0 + bl CopyEasyChatWord + adds r4, r0, #0 + movs r0, #0xfe + strb r0, [r4] + adds r4, #1 + mov r1, r8 + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + cmp r0, sb + blo _0811F1EE +_0811F23C: + subs r4, #1 + movs r0, #0xff + strb r0, [r4] + adds r0, r4, #0 + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0811F254: .4byte 0xFFFF0000 +_0811F258: .4byte 0x0000FFFF + thumb_func_end ConvertEasyChatWordsToString + + thumb_func_start GetEasyChatWordStringLength +GetEasyChatWordStringLength: @ 0x0811F25C + push {r4, r5, lr} + lsls r5, r0, #0x10 + lsrs r0, r5, #0x10 + adds r4, r0, #0 + ldr r0, _0811F270 + cmp r4, r0 + bne _0811F274 + movs r0, #0 + b _0811F29A + .align 2, 0 +_0811F270: .4byte 0x0000FFFF +_0811F274: + adds r0, r4, #0 + bl sub_0811F0C0 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811F290 + ldr r1, _0811F28C + ands r1, r4 + lsrs r0, r5, #0x19 + bl GetEasyChatWord + b _0811F292 + .align 2, 0 +_0811F28C: .4byte 0x000001FF +_0811F290: + ldr r0, _0811F2A0 +_0811F292: + bl StringLength + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_0811F29A: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0811F2A0: .4byte 0x08579F30 + thumb_func_end GetEasyChatWordStringLength + + thumb_func_start sub_0811F2A4 +sub_0811F2A4: @ 0x0811F2A4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r6, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + mov sl, r3 + movs r7, #0 + cmp r7, r8 + bhs _0811F306 + subs r0, r1, #1 + lsls r0, r0, #0x10 + mov sb, r0 +_0811F2CE: + mov r0, sb + lsrs r4, r0, #0x10 + movs r5, #0 + cmp r5, r1 + bhs _0811F2F4 +_0811F2D8: + ldrh r0, [r6] + adds r6, #2 + str r1, [sp] + bl GetEasyChatWordStringLength + adds r0, r4, r0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, [sp] + cmp r5, r1 + blo _0811F2D8 +_0811F2F4: + cmp r4, sl + bls _0811F2FC + movs r0, #1 + b _0811F308 +_0811F2FC: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, r8 + blo _0811F2CE +_0811F306: + movs r0, #0 +_0811F308: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_0811F2A4 + + thumb_func_start sub_0811F318 +sub_0811F318: @ 0x0811F318 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + bl Random + ldr r2, _0811F368 + lsls r1, r4, #3 + adds r1, r1, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrh r1, [r1, #4] + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r4, #0 + beq _0811F346 + cmp r4, #0x15 + beq _0811F346 + cmp r4, #0x12 + beq _0811F346 + cmp r4, #0x13 + bne _0811F354 +_0811F346: + ldr r1, _0811F368 + lsls r0, r4, #3 + adds r0, r0, r1 + ldr r1, [r0] + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r2, [r0] +_0811F354: + movs r0, #0x7f + ands r0, r4 + lsls r0, r0, #9 + ldr r1, _0811F36C + ands r2, r1 + orrs r0, r2 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0811F368: .4byte 0x08578D14 +_0811F36C: .4byte 0x000001FF + thumb_func_end sub_0811F318 + + thumb_func_start sub_0811F370 +sub_0811F370: @ 0x0811F370 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r4, r0, #0 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl sub_0811F044 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811F390 + ldr r0, _0811F38C + b _0811F3A4 + .align 2, 0 +_0811F38C: .4byte 0x0000FFFF +_0811F390: + cmp r4, #0 + beq _0811F39C + adds r0, r4, #0 + bl sub_0811F318 + b _0811F3A0 +_0811F39C: + bl sub_0811F5E8 +_0811F3A0: + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_0811F3A4: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811F370 + + thumb_func_start sub_0811F3AC +sub_0811F3AC: @ 0x0811F3AC + push {r4, r5, lr} + ldr r0, _0811F3C0 + ldrh r0, [r0] + cmp r0, #1 + beq _0811F3E4 + cmp r0, #1 + bgt _0811F3C4 + cmp r0, #0 + beq _0811F3CE + b _0811F438 + .align 2, 0 +_0811F3C0: .4byte 0x02037280 +_0811F3C4: + cmp r0, #2 + beq _0811F40C + cmp r0, #3 + beq _0811F41C + b _0811F438 +_0811F3CE: + ldr r0, _0811F3DC + ldr r0, [r0] + ldr r1, _0811F3E0 + adds r5, r0, r1 + movs r2, #2 + b _0811F426 + .align 2, 0 +_0811F3DC: .4byte 0x03005AEC +_0811F3E0: .4byte 0x00002BB0 +_0811F3E4: + ldr r0, _0811F404 + ldr r0, [r0] + ldr r1, _0811F408 + adds r5, r0, r1 + adds r0, r5, #0 + movs r1, #3 + movs r2, #2 + movs r3, #0x12 + bl sub_0811F2A4 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0811F424 + movs r2, #2 + movs r3, #3 + b _0811F428 + .align 2, 0 +_0811F404: .4byte 0x03005AEC +_0811F408: .4byte 0x00002BBC +_0811F40C: + ldr r0, _0811F414 + ldr r0, [r0] + ldr r1, _0811F418 + b _0811F422 + .align 2, 0 +_0811F414: .4byte 0x03005AEC +_0811F418: .4byte 0x00002BC8 +_0811F41C: + ldr r0, _0811F440 + ldr r0, [r0] + ldr r1, _0811F444 +_0811F422: + adds r5, r0, r1 +_0811F424: + movs r2, #3 +_0811F426: + movs r3, #2 +_0811F428: + ldr r4, _0811F448 + adds r0, r4, #0 + adds r1, r5, #0 + bl ConvertEasyChatWordsToString + adds r0, r4, #0 + bl ShowFieldAutoScrollMessage +_0811F438: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0811F440: .4byte 0x03005AEC +_0811F444: .4byte 0x00002BD4 +_0811F448: .4byte 0x02021C7C + thumb_func_end sub_0811F3AC + + thumb_func_start sub_0811F44C +sub_0811F44C: @ 0x0811F44C + push {lr} + bl Random + movs r1, #1 + ands r1, r0 + movs r0, #0xc + cmp r1, #0 + beq _0811F45E + movs r0, #0xd +_0811F45E: + bl sub_0811F370 + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, _0811F474 + bl CopyEasyChatWord + pop {r0} + bx r0 + .align 2, 0 +_0811F474: .4byte 0x02021C54 + thumb_func_end sub_0811F44C + + thumb_func_start sub_0811F478 +sub_0811F478: @ 0x0811F478 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x1b + movs r1, #0xe0 + lsls r1, r1, #0x13 + ands r1, r0 + lsrs r1, r1, #0x18 + ldr r0, _0811F498 + ldr r0, [r0] + ldr r3, _0811F49C + adds r0, r0, r3 + adds r0, r0, r2 + ldrb r0, [r0] + asrs r0, r1 + movs r1, #1 + ands r0, r1 + bx lr + .align 2, 0 +_0811F498: .4byte 0x03005AEC +_0811F49C: .4byte 0x00002E20 + thumb_func_end sub_0811F478 + + thumb_func_start sub_0811F4A0 +sub_0811F4A0: @ 0x0811F4A0 + push {lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x20 + bhi _0811F4C4 + lsrs r3, r0, #0x1b + movs r2, #7 + ands r2, r1 + ldr r0, _0811F4C8 + ldr r1, [r0] + ldr r0, _0811F4CC + adds r1, r1, r0 + adds r1, r1, r3 + movs r0, #1 + lsls r0, r2 + ldrb r2, [r1] + orrs r0, r2 + strb r0, [r1] +_0811F4C4: + pop {r0} + bx r0 + .align 2, 0 +_0811F4C8: .4byte 0x03005AEC +_0811F4CC: .4byte 0x00002E20 + thumb_func_end sub_0811F4A0 + + thumb_func_start sub_0811F4D0 +sub_0811F4D0: @ 0x0811F4D0 + push {r4, r5, lr} + movs r4, #0 + movs r5, #0 +_0811F4D6: + adds r0, r4, #0 + bl sub_0811F478 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0811F4E8 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_0811F4E8: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x20 + bls _0811F4D6 + adds r0, r5, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811F4D0 + + thumb_func_start sub_0811F4FC +sub_0811F4FC: @ 0x0811F4FC + push {r4, r5, r6, lr} + bl sub_0811F4D0 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x21 + bne _0811F528 + b _0811F562 +_0811F50C: + adds r0, r5, #0 + bl sub_0811F4A0 + ldr r0, _0811F524 + ands r4, r0 + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r1, #0 + orrs r4, r0 + adds r0, r4, #0 + b _0811F564 + .align 2, 0 +_0811F524: .4byte 0x000001FF +_0811F528: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x21 + subs r1, r1, r4 + bl __modsi3 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + movs r4, #0 +_0811F53E: + lsls r0, r4, #0x18 + lsrs r5, r0, #0x18 + adds r0, r5, #0 + bl sub_0811F478 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811F558 + cmp r6, #0 + beq _0811F50C + subs r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 +_0811F558: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x20 + bls _0811F53E +_0811F562: + ldr r0, _0811F56C +_0811F564: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0811F56C: .4byte 0x0000FFFF + thumb_func_end sub_0811F4FC + + thumb_func_start sub_0811F570 +sub_0811F570: @ 0x0811F570 + push {r4, r5, lr} + bl sub_0811F4D0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _0811F594 + b _0811F5CA +_0811F580: + ldr r0, _0811F590 + ands r4, r0 + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r1, #0 + orrs r4, r0 + adds r0, r4, #0 + b _0811F5CC + .align 2, 0 +_0811F590: .4byte 0x000001FF +_0811F594: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r5, #0 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + movs r4, #0 +_0811F5A8: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl sub_0811F478 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0811F5C0 + cmp r5, #0 + beq _0811F580 + subs r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_0811F5C0: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x20 + bls _0811F5A8 +_0811F5CA: + ldr r0, _0811F5D4 +_0811F5CC: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0811F5D4: .4byte 0x0000FFFF + thumb_func_end sub_0811F570 + + thumb_func_start sub_0811F5D8 +sub_0811F5D8: @ 0x0811F5D8 + push {lr} + bl IsNationalPokedexEnabled + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811F5D8 + + thumb_func_start sub_0811F5E8 +sub_0811F5E8: @ 0x0811F5E8 + push {r4, r5, r6, r7, lr} + movs r0, #0 + bl EasyChat_GetNumWordsInGroup + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0 + bne _0811F608 + b _0811F652 +_0811F5FA: + ldrh r1, [r5] + ldr r0, _0811F604 + ands r0, r1 + b _0811F654 + .align 2, 0 +_0811F604: .4byte 0x000001FF +_0811F608: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r4, #0 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, _0811F65C + ldr r5, [r0] + ldrh r7, [r0, #4] + movs r6, #0 + cmp r6, r7 + bhs _0811F652 +_0811F626: + ldrh r0, [r5] + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0 + bl GetSetPokedexFlag + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0811F646 + cmp r4, #0 + beq _0811F5FA + subs r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_0811F646: + adds r5, #2 + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, r7 + blo _0811F626 +_0811F652: + ldr r0, _0811F660 +_0811F654: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0811F65C: .4byte 0x08578D14 +_0811F660: .4byte 0x0000FFFF + thumb_func_end sub_0811F5E8 + + thumb_func_start InitEasyChatPhrases +InitEasyChatPhrases: @ 0x0811F664 + push {r4, r5, r6, r7, lr} + ldr r4, _0811F770 + ldr r1, [r4] + ldr r0, _0811F774 + adds r2, r1, r0 + ldr r0, _0811F778 + strh r0, [r2] + ldr r5, _0811F77C + adds r2, r1, r5 + ldr r0, _0811F780 + strh r0, [r2] + ldr r0, _0811F784 + adds r2, r1, r0 + ldr r0, _0811F788 + strh r0, [r2] + adds r5, #4 + adds r2, r1, r5 + ldr r0, _0811F78C + strh r0, [r2] + ldr r0, _0811F790 + adds r2, r1, r0 + ldr r0, _0811F794 + strh r0, [r2] + adds r5, #8 + adds r2, r1, r5 + ldr r0, _0811F798 + strh r0, [r2] + movs r0, #0xaf + lsls r0, r0, #6 + adds r2, r1, r0 + ldr r0, _0811F79C + strh r0, [r2] + adds r5, #4 + adds r2, r1, r5 + ldr r0, _0811F7A0 + strh r0, [r2] + ldr r0, _0811F7A4 + adds r2, r1, r0 + ldr r0, _0811F7A8 + strh r0, [r2] + ldr r2, _0811F7AC + adds r0, r1, r2 + ldr r3, _0811F7B0 + strh r3, [r0] + adds r5, #6 + adds r2, r1, r5 + ldr r0, _0811F7B4 + strh r0, [r2] + ldr r2, _0811F7B8 + adds r0, r1, r2 + strh r3, [r0] + adds r5, #4 + adds r2, r1, r5 + ldr r0, _0811F7BC + strh r0, [r2] + ldr r2, _0811F7C0 + adds r0, r1, r2 + ldr r2, _0811F7C4 + strh r2, [r0] + adds r5, #4 + adds r0, r1, r5 + strh r2, [r0] + ldr r2, _0811F7C8 + adds r0, r1, r2 + strh r3, [r0] + adds r5, #4 + adds r2, r1, r5 + ldr r0, _0811F7CC + strh r0, [r2] + ldr r2, _0811F7D0 + adds r0, r1, r2 + adds r3, #5 + strh r3, [r0] + adds r5, #4 + adds r2, r1, r5 + movs r0, #1 + rsbs r0, r0, #0 + strh r0, [r2] + ldr r0, _0811F7D4 + adds r2, r1, r0 + movs r0, #0xc6 + lsls r0, r0, #3 + strh r0, [r2] + adds r5, #4 + adds r2, r1, r5 + ldr r0, _0811F7D8 + strh r0, [r2] + ldr r0, _0811F7DC + adds r1, r1, r0 + strh r3, [r1] + movs r3, #0 + adds r7, r4, #0 + ldr r6, _0811F7E0 + movs r2, #1 + rsbs r2, r2, #0 + adds r5, r2, #0 +_0811F724: + movs r2, #0 + lsls r0, r3, #3 + adds r0, r0, r3 + lsls r4, r0, #2 +_0811F72C: + ldr r1, [r7] + lsls r0, r2, #1 + adds r0, r0, r4 + adds r1, r1, r6 + adds r1, r1, r0 + ldrh r0, [r1] + orrs r0, r5 + strh r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #8 + bls _0811F72C + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0xf + bls _0811F724 + movs r3, #0 + ldr r4, _0811F770 + ldr r2, _0811F7E4 + movs r1, #0 +_0811F758: + ldr r0, [r4] + adds r0, r0, r2 + adds r0, r0, r3 + strb r1, [r0] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0x3f + bls _0811F758 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0811F770: .4byte 0x03005AEC +_0811F774: .4byte 0x00002BB0 +_0811F778: .4byte 0x0000020E +_0811F77C: .4byte 0x00002BB2 +_0811F780: .4byte 0x00001228 +_0811F784: .4byte 0x00002BB4 +_0811F788: .4byte 0x0000020B +_0811F78C: .4byte 0x0000101F +_0811F790: .4byte 0x00002BBC +_0811F794: .4byte 0x00000603 +_0811F798: .4byte 0x00001405 +_0811F79C: .4byte 0x00000C02 +_0811F7A0: .4byte 0x00000E0E +_0811F7A4: .4byte 0x00002BC4 +_0811F7A8: .4byte 0x00000803 +_0811F7AC: .4byte 0x00002BC6 +_0811F7B0: .4byte 0x00000C01 +_0811F7B4: .4byte 0x0000123C +_0811F7B8: .4byte 0x00002BCA +_0811F7BC: .4byte 0x0000FFFF +_0811F7C0: .4byte 0x00002BCE +_0811F7C4: .4byte 0x00000607 +_0811F7C8: .4byte 0x00002BD2 +_0811F7CC: .4byte 0x0000121B +_0811F7D0: .4byte 0x00002BD6 +_0811F7D4: .4byte 0x00002BDA +_0811F7D8: .4byte 0x0000121F +_0811F7DC: .4byte 0x00002BDE +_0811F7E0: .4byte 0x00002BE0 +_0811F7E4: .4byte 0x00002E20 + thumb_func_end InitEasyChatPhrases + + thumb_func_start sub_0811F7E8 +sub_0811F7E8: @ 0x0811F7E8 + push {r4, lr} + ldr r4, _0811F804 + ldr r0, _0811F808 + bl Alloc + str r0, [r4] + cmp r0, #0 + beq _0811F80C + bl sub_0811F830 + bl sub_0811F9C8 + movs r0, #1 + b _0811F80E + .align 2, 0 +_0811F804: .4byte 0x02039DEC +_0811F808: .4byte 0x00002CE8 +_0811F80C: + movs r0, #0 +_0811F80E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0811F7E8 + + thumb_func_start sub_0811F814 +sub_0811F814: @ 0x0811F814 + push {r4, lr} + ldr r4, _0811F82C + ldr r0, [r4] + cmp r0, #0 + beq _0811F826 + bl Free + movs r0, #0 + str r0, [r4] +_0811F826: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811F82C: .4byte 0x02039DEC + thumb_func_end sub_0811F814 + + thumb_func_start sub_0811F830 +sub_0811F830: @ 0x0811F830 + push {r4, r5, lr} + ldr r4, _0811F8FC + ldr r0, [r4] + movs r5, #0 + strh r5, [r0] + movs r0, #0 + bl GetNationalPokedexCount + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0811F858 + ldr r0, [r4] + ldrh r1, [r0] + adds r2, r1, #1 + strh r2, [r0] + lsls r1, r1, #0x10 + lsrs r1, r1, #0xf + adds r0, #2 + adds r0, r0, r1 + strh r5, [r0] +_0811F858: + movs r3, #1 +_0811F85A: + ldr r0, [r4] + ldrh r2, [r0] + adds r1, r2, #1 + strh r1, [r0] + lsls r2, r2, #0x10 + lsrs r2, r2, #0xf + adds r0, #2 + adds r0, r0, r2 + strh r3, [r0] + adds r3, #1 + cmp r3, #0x10 + ble _0811F85A + ldr r0, _0811F900 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0811F8B4 + ldr r0, _0811F8FC + ldr r2, [r0] + ldrh r0, [r2] + adds r1, r0, #1 + strh r1, [r2] + lsls r0, r0, #0x10 + lsrs r0, r0, #0xf + adds r3, r2, #2 + adds r0, r3, r0 + movs r1, #0x11 + strh r1, [r0] + ldrh r0, [r2] + adds r1, r0, #1 + strh r1, [r2] + lsls r0, r0, #0x10 + lsrs r0, r0, #0xf + adds r0, r3, r0 + movs r1, #0x12 + strh r1, [r0] + ldrh r0, [r2] + adds r1, r0, #1 + strh r1, [r2] + lsls r0, r0, #0x10 + lsrs r0, r0, #0xf + adds r3, r3, r0 + movs r0, #0x13 + strh r0, [r3] +_0811F8B4: + ldr r0, _0811F904 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0811F8D6 + ldr r0, _0811F8FC + ldr r0, [r0] + ldrh r1, [r0] + adds r2, r1, #1 + strh r2, [r0] + lsls r1, r1, #0x10 + lsrs r1, r1, #0xf + adds r0, #2 + adds r0, r0, r1 + movs r1, #0x14 + strh r1, [r0] +_0811F8D6: + bl IsNationalPokedexEnabled + cmp r0, #0 + beq _0811F8F4 + ldr r0, _0811F8FC + ldr r0, [r0] + ldrh r1, [r0] + adds r2, r1, #1 + strh r2, [r0] + lsls r1, r1, #0x10 + lsrs r1, r1, #0xf + adds r0, #2 + adds r0, r0, r1 + movs r1, #0x15 + strh r1, [r0] +_0811F8F4: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0811F8FC: .4byte 0x02039DEC +_0811F900: .4byte 0x00000864 +_0811F904: .4byte 0x00000866 + thumb_func_end sub_0811F830 + + thumb_func_start sub_0811F908 +sub_0811F908: @ 0x0811F908 + ldr r0, _0811F910 + ldr r0, [r0] + ldrb r0, [r0] + bx lr + .align 2, 0 +_0811F910: .4byte 0x02039DEC + thumb_func_end sub_0811F908 + + thumb_func_start sub_0811F914 +sub_0811F914: @ 0x0811F914 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _0811F930 + ldr r1, [r0] + ldrh r0, [r1] + cmp r2, r0 + bhs _0811F934 + lsls r0, r2, #1 + adds r1, #2 + adds r1, r1, r0 + ldrb r0, [r1] + b _0811F936 + .align 2, 0 +_0811F930: .4byte 0x02039DEC +_0811F934: + movs r0, #0x16 +_0811F936: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0811F914 + + thumb_func_start unref_sub_811F3E0 +unref_sub_811F3E0: @ 0x0811F93C + push {r4, r5, lr} + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsls r2, r2, #0x10 + lsrs r5, r2, #0x10 + ldr r0, _0811F97C + lsrs r1, r1, #0x16 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl StringCopy + adds r1, r0, #0 + subs r4, r1, r4 + lsls r4, r4, #0x10 + lsrs r0, r4, #0x10 + cmp r0, r5 + bhs _0811F970 + movs r2, #0 +_0811F962: + strb r2, [r1] + adds r1, #1 + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r5 + blo _0811F962 +_0811F970: + movs r0, #0xff + strb r0, [r1] + adds r0, r1, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0811F97C: .4byte 0x08579ED8 + thumb_func_end unref_sub_811F3E0 + + thumb_func_start GetEasyChatWordGroupName +GetEasyChatWordGroupName: @ 0x0811F980 + lsls r0, r0, #0x18 + ldr r1, _0811F98C + lsrs r0, r0, #0x16 + adds r0, r0, r1 + ldr r0, [r0] + bx lr + .align 2, 0 +_0811F98C: .4byte 0x08579ED8 + thumb_func_end GetEasyChatWordGroupName + + thumb_func_start CopyEasyChatWordPadded +CopyEasyChatWordPadded: @ 0x0811F990 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r5, r2, #0x10 + bl CopyEasyChatWord + adds r1, r0, #0 + subs r4, r1, r4 + lsls r4, r4, #0x10 + lsrs r0, r4, #0x10 + cmp r0, r5 + bhs _0811F9BC + movs r2, #0 +_0811F9AE: + strb r2, [r1] + adds r1, #1 + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r5 + blo _0811F9AE +_0811F9BC: + movs r0, #0xff + strb r0, [r1] + adds r0, r1, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end CopyEasyChatWordPadded + + thumb_func_start sub_0811F9C8 +sub_0811F9C8: @ 0x0811F9C8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + movs r3, #0 +_0811F9D6: + ldr r2, _0811FA18 + lsls r1, r3, #3 + adds r0, r2, #4 + adds r0, r1, r0 + ldr r0, [r0] + str r0, [sp] + adds r1, r1, r2 + ldr r7, [r1] + ldr r0, _0811FA1C + ldr r1, [r0] + lsls r2, r3, #1 + adds r1, #0x2e + adds r1, r1, r2 + movs r0, #0 + strh r0, [r1] + mov sl, r0 + movs r1, #0 + str r2, [sp, #4] + adds r0, r3, #1 + str r0, [sp, #8] + ldr r2, [sp] + cmp r1, r2 + bge _0811FA88 +_0811FA04: + ldrh r0, [r7] + ldr r2, _0811FA20 + cmp r0, r2 + bne _0811FA54 + adds r7, #2 + ldrh r4, [r7] + adds r7, #2 + adds r0, r1, #1 + adds r1, r0, r4 + b _0811FA56 + .align 2, 0 +_0811FA18: .4byte 0x08579D04 +_0811FA1C: .4byte 0x02039DEC +_0811FA20: .4byte 0x0000FFFF +_0811FA24: + ldr r0, _0811FA50 + ldr r2, [r0] + mov r0, sl + lsls r1, r0, #1 + lsls r0, r3, #4 + subs r0, r0, r3 + lsls r0, r0, #4 + adds r1, r1, r0 + adds r0, r2, #0 + adds r0, #0x88 + adds r0, r0, r1 + ldrh r1, [r5] + strh r1, [r0] + movs r0, #1 + add sl, r0 + adds r2, #0x2e + ldr r0, [sp, #4] + adds r2, r2, r0 + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + b _0811FA7E + .align 2, 0 +_0811FA50: .4byte 0x02039DEC +_0811FA54: + movs r4, #1 +_0811FA56: + movs r6, #0 + adds r1, #1 + mov sb, r1 + lsls r2, r4, #1 + mov r8, r2 + cmp r6, r4 + bge _0811FA7E + adds r5, r7, #0 +_0811FA66: + ldrh r0, [r5] + str r3, [sp, #0xc] + bl sub_0811FDB4 + lsls r0, r0, #0x18 + ldr r3, [sp, #0xc] + cmp r0, #0 + bne _0811FA24 + adds r5, #2 + adds r6, #1 + cmp r6, r4 + blt _0811FA66 +_0811FA7E: + add r7, r8 + mov r1, sb + ldr r0, [sp] + cmp r1, r0 + blt _0811FA04 +_0811FA88: + ldr r3, [sp, #8] + cmp r3, #0x2c + ble _0811F9D6 + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0811F9C8 + + thumb_func_start sub_0811FAA0 +sub_0811FAA0: @ 0x0811FAA0 + push {lr} + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + cmp r0, #0 + bne _0811FAB2 + adds r0, r1, #0 + bl sub_0811FB1C + b _0811FAB8 +_0811FAB2: + adds r0, r1, #0 + bl sub_0811FC10 +_0811FAB8: + ldr r1, _0811FAC8 + ldr r1, [r1] + ldr r2, _0811FACC + adds r1, r1, r2 + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0811FAC8: .4byte 0x02039DEC +_0811FACC: .4byte 0x00002CE4 + thumb_func_end sub_0811FAA0 + + thumb_func_start sub_0811FAD0 +sub_0811FAD0: @ 0x0811FAD0 + push {lr} + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _0811FAF0 + ldr r1, [r0] + ldr r3, _0811FAF4 + adds r0, r1, r3 + ldrh r0, [r0] + cmp r2, r0 + bhs _0811FAFC + lsls r0, r2, #1 + ldr r2, _0811FAF8 + adds r1, r1, r2 + adds r1, r1, r0 + ldrh r0, [r1] + b _0811FAFE + .align 2, 0 +_0811FAF0: .4byte 0x02039DEC +_0811FAF4: .4byte 0x00002CE4 +_0811FAF8: .4byte 0x00002AE4 +_0811FAFC: + ldr r0, _0811FB04 +_0811FAFE: + pop {r1} + bx r1 + .align 2, 0 +_0811FB04: .4byte 0x0000FFFF + thumb_func_end sub_0811FAD0 + + thumb_func_start sub_0811FB08 +sub_0811FB08: @ 0x0811FB08 + ldr r0, _0811FB14 + ldr r0, [r0] + ldr r1, _0811FB18 + adds r0, r0, r1 + ldrh r0, [r0] + bx lr + .align 2, 0 +_0811FB14: .4byte 0x02039DEC +_0811FB18: .4byte 0x00002CE4 + thumb_func_end sub_0811FB08 + + thumb_func_start sub_0811FB1C +sub_0811FB1C: @ 0x0811FB1C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r1, _0811FB94 + lsls r0, r2, #3 + adds r0, r0, r1 + ldrh r3, [r0, #4] + mov r8, r3 + cmp r2, #0 + beq _0811FB44 + cmp r2, #0x15 + beq _0811FB44 + cmp r2, #0x12 + beq _0811FB44 + cmp r2, #0x13 + bne _0811FBA4 +_0811FB44: + lsls r0, r2, #3 + adds r0, r0, r1 + ldr r1, [r0] + movs r7, #0 + movs r5, #0 + cmp r5, r8 + bhs _0811FBF0 + movs r0, #0x7f + ands r0, r2 + lsls r0, r0, #9 + mov sb, r0 + adds r4, r1, #0 + lsls r6, r2, #0x18 +_0811FB5E: + ldrh r0, [r4] + lsrs r1, r6, #0x18 + bl sub_0811FCB8 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0811FB88 + ldr r0, _0811FB98 + ldr r2, [r0] + lsls r0, r5, #1 + ldr r1, _0811FB9C + adds r2, r2, r1 + adds r2, r2, r0 + ldrh r0, [r4] + ldr r3, _0811FBA0 + adds r1, r3, #0 + ands r0, r1 + mov r1, sb + orrs r0, r1 + strh r0, [r2] + adds r5, #1 +_0811FB88: + adds r4, #2 + adds r7, #1 + cmp r7, r8 + blo _0811FB5E + b _0811FBF0 + .align 2, 0 +_0811FB94: .4byte 0x08578D14 +_0811FB98: .4byte 0x02039DEC +_0811FB9C: .4byte 0x00002AE4 +_0811FBA0: .4byte 0x000001FF +_0811FBA4: + ldr r1, [r0] + movs r7, #0 + movs r5, #0 + cmp r5, r8 + bhs _0811FBF0 + movs r0, #0x7f + ands r0, r2 + lsls r0, r0, #9 + mov sl, r0 + adds r6, r1, #0 + lsls r2, r2, #0x18 + mov sb, r2 +_0811FBBC: + ldrh r4, [r6, #4] + adds r0, r4, #0 + mov r2, sb + lsrs r1, r2, #0x18 + bl sub_0811FCB8 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0811FBE8 + ldr r0, _0811FC04 + ldr r1, [r0] + lsls r0, r5, #1 + ldr r3, _0811FC08 + adds r1, r1, r3 + adds r1, r1, r0 + ldr r2, _0811FC0C + adds r0, r2, #0 + ands r4, r0 + mov r3, sl + orrs r4, r3 + strh r4, [r1] + adds r5, #1 +_0811FBE8: + adds r6, #0xc + adds r7, #1 + cmp r7, r8 + blo _0811FBBC +_0811FBF0: + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0811FC04: .4byte 0x02039DEC +_0811FC08: .4byte 0x00002AE4 +_0811FC0C: .4byte 0x000001FF + thumb_func_end sub_0811FB1C + + thumb_func_start sub_0811FC10 +sub_0811FC10: @ 0x0811FC10 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + movs r4, #0 + movs r6, #0 + ldr r3, _0811FC78 + ldr r0, [r3] + lsls r5, r1, #1 + adds r0, #0x2e + adds r0, r0, r5 + ldrh r0, [r0] + cmp r6, r0 + bhs _0811FC6C + mov r8, r3 + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r7, r0, #4 + ldr r0, _0811FC7C + mov ip, r0 +_0811FC3A: + mov r0, r8 + ldr r3, [r0] + adds r1, r6, #0 + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + lsls r1, r1, #1 + mov r0, ip + adds r2, r3, r0 + adds r2, r2, r1 + lsls r1, r4, #1 + adds r1, r1, r7 + adds r0, r3, #0 + adds r0, #0x88 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2] + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r3, #0x2e + adds r3, r3, r5 + ldrh r3, [r3] + cmp r4, r3 + blo _0811FC3A +_0811FC6C: + adds r0, r6, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0811FC78: .4byte 0x02039DEC +_0811FC7C: .4byte 0x00002AE4 + thumb_func_end sub_0811FC10 + + thumb_func_start sub_0811FC80 +sub_0811FC80: @ 0x0811FC80 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + movs r2, #0 + ldr r0, _0811FCA4 + ldr r0, [r0] + ldrh r1, [r0] + cmp r2, r1 + bge _0811FCB0 + adds r4, r3, #0 + adds r3, r1, #0 + adds r1, r0, #2 +_0811FC98: + ldrh r0, [r1] + cmp r0, r4 + bne _0811FCA8 + movs r0, #1 + b _0811FCB2 + .align 2, 0 +_0811FCA4: .4byte 0x02039DEC +_0811FCA8: + adds r1, #2 + adds r2, #1 + cmp r2, r3 + blt _0811FC98 +_0811FCB0: + movs r0, #0 +_0811FCB2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0811FC80 + + thumb_func_start sub_0811FCB8 +sub_0811FCB8: @ 0x0811FCB8 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r2, r1, #0x18 + cmp r2, #0x15 + bhi _0811FD6E + lsls r0, r2, #2 + ldr r1, _0811FCD0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0811FCD0: .4byte 0x0811FCD4 +_0811FCD4: @ jump table + .4byte _0811FD2C @ case 0 + .4byte _0811FD6E @ case 1 + .4byte _0811FD6E @ case 2 + .4byte _0811FD6E @ case 3 + .4byte _0811FD6E @ case 4 + .4byte _0811FD6E @ case 5 + .4byte _0811FD6E @ case 6 + .4byte _0811FD6E @ case 7 + .4byte _0811FD6E @ case 8 + .4byte _0811FD6E @ case 9 + .4byte _0811FD6E @ case 10 + .4byte _0811FD6E @ case 11 + .4byte _0811FD6E @ case 12 + .4byte _0811FD6E @ case 13 + .4byte _0811FD6E @ case 14 + .4byte _0811FD6E @ case 15 + .4byte _0811FD6E @ case 16 + .4byte _0811FD6E @ case 17 + .4byte _0811FD5C @ case 18 + .4byte _0811FD5C @ case 19 + .4byte _0811FD60 @ case 20 + .4byte _0811FD42 @ case 21 +_0811FD2C: + adds r0, r4, #0 + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0 + bl GetSetPokedexFlag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0811FD80 +_0811FD42: + adds r0, r4, #0 + bl GetFooterOptionXOffset + cmp r0, #0 + beq _0811FD5C + adds r0, r4, #0 + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0 + bl GetSetPokedexFlag +_0811FD5C: + movs r0, #1 + b _0811FD80 +_0811FD60: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl sub_0811F478 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0811FD80 +_0811FD6E: + ldr r1, _0811FD88 + lsls r0, r2, #3 + adds r0, r0, r1 + ldr r1, [r0] + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #8] +_0811FD80: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0811FD88: .4byte 0x08578D14 + thumb_func_end sub_0811FCB8 + + thumb_func_start GetFooterOptionXOffset +GetFooterOptionXOffset: @ 0x0811FD8C + push {lr} + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + movs r2, #0 + ldr r1, _0811FDA0 +_0811FD96: + ldrh r0, [r1] + cmp r0, r3 + bne _0811FDA4 + movs r0, #1 + b _0811FDAE + .align 2, 0 +_0811FDA0: .4byte 0x08579F34 +_0811FDA4: + adds r1, #2 + adds r2, #1 + cmp r2, #0 + beq _0811FD96 + movs r0, #0 +_0811FDAE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetFooterOptionXOffset + + thumb_func_start sub_0811FDB4 +sub_0811FDB4: @ 0x0811FDB4 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r5, r0, #0x19 + lsls r0, r0, #7 + lsrs r4, r0, #0x17 + adds r0, r5, #0 + bl sub_0811FC80 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0811FDD8 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0811FCB8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0811FDDA +_0811FDD8: + movs r0, #0 +_0811FDDA: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_0811FDB4 + + thumb_func_start InitializeEasyChatWordArray +InitializeEasyChatWordArray: @ 0x0811FDE0 + push {lr} + adds r2, r0, #0 + lsls r1, r1, #0x10 + ldr r0, _0811FE08 + adds r1, r1, r0 + lsrs r0, r1, #0x10 + ldr r1, _0811FE0C + cmp r0, r1 + beq _0811FE02 + adds r3, r1, #0 +_0811FDF4: + strh r3, [r2] + adds r2, #2 + subs r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r1 + bne _0811FDF4 +_0811FE02: + pop {r0} + bx r0 + .align 2, 0 +_0811FE08: .4byte 0xFFFF0000 +_0811FE0C: .4byte 0x0000FFFF + thumb_func_end InitializeEasyChatWordArray + + thumb_func_start sub_0811FE10 +sub_0811FE10: @ 0x0811FE10 + push {lr} + bl sub_0801AB30 + ldr r1, _0811FE28 + adds r2, r1, #0 + adds r1, r0, #6 +_0811FE1C: + strh r2, [r1] + subs r1, #2 + cmp r1, r0 + bge _0811FE1C + pop {r0} + bx r0 + .align 2, 0 +_0811FE28: .4byte 0x0000FFFF + thumb_func_end sub_0811FE10 + + thumb_func_start unref_sub_811BBF4 +unref_sub_811BBF4: @ 0x0811FE2C + ldr r1, _0811FE34 + str r0, [r1] + bx lr + .align 2, 0 +_0811FE34: .4byte 0x02039DF0 + thumb_func_end unref_sub_811BBF4 + diff --git a/asm/egg_hatch.s b/asm/egg_hatch.s new file mode 100644 index 0000000..bbfa166 --- /dev/null +++ b/asm/egg_hatch.s @@ -0,0 +1,1900 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start CreatedHatchedMon +CreatedHatchedMon: @ 0x08070D68 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x50 + adds r5, r0, #0 + adds r6, r1, #0 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x3c] + movs r4, #0 + add r7, sp, #0x18 + add r0, sp, #0x30 + mov sb, r0 + movs r1, #0x31 + add r1, sp + mov sl, r1 + mov r0, sp + adds r0, #0x32 + str r0, [sp, #0x40] + mov r1, sp + adds r1, #0x34 + str r1, [sp, #0x48] + adds r0, #1 + str r0, [sp, #0x44] + adds r1, #4 + str r1, [sp, #0x4c] +_08070DA6: + adds r1, r4, #0 + adds r1, #0xd + adds r0, r5, #0 + bl GetMonData + lsls r1, r4, #1 + add r1, sp + adds r1, #0x10 + strh r0, [r1] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _08070DA6 + adds r0, r5, #0 + movs r1, #0 + bl GetMonData + mov r8, r0 + movs r4, #0 +_08070DCE: + adds r1, r4, #0 + adds r1, #0x27 + adds r0, r5, #0 + bl GetMonData + lsls r1, r4, #2 + adds r1, r7, r1 + str r0, [r1] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #5 + bls _08070DCE + adds r0, r5, #0 + movs r1, #3 + bl GetMonData + mov r1, sb + strb r0, [r1] + adds r0, r5, #0 + movs r1, #0x25 + bl GetMonData + mov r1, sl + strb r0, [r1] + adds r0, r5, #0 + movs r1, #8 + bl GetMonData + ldr r1, [sp, #0x40] + strb r0, [r1] + adds r0, r5, #0 + movs r1, #0x22 + bl GetMonData + str r0, [sp, #0x38] + adds r0, r5, #0 + movs r1, #0x50 + bl GetMonData + ldr r1, [sp, #0x48] + strb r0, [r1] + movs r0, #1 + str r0, [sp] + mov r0, r8 + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + str r0, [sp, #0xc] + adds r0, r6, #0 + ldr r1, [sp, #0x3c] + movs r2, #5 + movs r3, #0x20 + bl CreateMon + movs r4, #0 +_08070E3E: + adds r1, r4, #0 + adds r1, #0xd + lsls r0, r4, #1 + mov r2, sp + adds r2, r2, r0 + adds r2, #0x10 + adds r0, r6, #0 + bl SetMonData + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _08070E3E + movs r4, #0 +_08070E5C: + adds r1, r4, #0 + adds r1, #0x27 + lsls r2, r4, #2 + adds r2, r7, r2 + adds r0, r6, #0 + bl SetMonData + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #5 + bls _08070E5C + adds r0, r6, #0 + movs r1, #3 + mov r2, sb + bl SetMonData + adds r0, r6, #0 + movs r1, #0x25 + mov r2, sl + bl SetMonData + adds r0, r6, #0 + movs r1, #8 + ldr r2, [sp, #0x40] + bl SetMonData + movs r0, #0x78 + ldr r1, [sp, #0x44] + strb r0, [r1] + adds r0, r6, #0 + movs r1, #0x20 + ldr r2, [sp, #0x44] + bl SetMonData + adds r0, r6, #0 + movs r1, #0x22 + ldr r2, [sp, #0x4c] + bl SetMonData + adds r0, r6, #0 + movs r1, #0x50 + ldr r2, [sp, #0x48] + bl SetMonData + adds r0, r5, #0 + adds r1, r6, #0 + movs r2, #0x64 + bl memcpy + add sp, #0x50 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end CreatedHatchedMon + + thumb_func_start AddHatchedMonToParty +AddHatchedMonToParty: @ 0x08070ED0 + push {r4, r5, lr} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add r4, sp, #0xc + movs r1, #0x46 + strb r1, [r4] + movs r1, #0x64 + adds r5, r0, #0 + muls r5, r1, r5 + ldr r0, _08070F84 + adds r5, r5, r0 + ldr r1, _08070F88 + adds r0, r5, #0 + bl CreatedHatchedMon + adds r0, r5, #0 + movs r1, #0x2d + adds r2, r4, #0 + bl SetMonData + adds r0, r5, #0 + movs r1, #0xb + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + mov r0, sp + adds r1, r4, #0 + bl GetSpeciesName + adds r0, r5, #0 + movs r1, #2 + mov r2, sp + bl SetMonData + adds r0, r4, #0 + bl HoennToNationalOrder + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r4, #0 + movs r1, #2 + bl GetSetPokedexFlag + adds r0, r4, #0 + movs r1, #3 + bl GetSetPokedexFlag + ldr r1, _08070F8C + adds r0, r5, #0 + bl GetBoxMonNick + mov r2, sp + adds r2, #0xe + movs r0, #4 + strh r0, [r2] + adds r0, r5, #0 + movs r1, #0x26 + bl SetMonData + add r2, sp, #0x10 + movs r0, #0 + strh r0, [r2] + adds r0, r5, #0 + movs r1, #0x24 + bl SetMonData + bl GetCurrentRegionMapSectionId + mov r2, sp + adds r2, #0x12 + strb r0, [r2] + adds r0, r5, #0 + movs r1, #0x23 + bl SetMonData + adds r0, r5, #0 + bl GiveMonInitialMoveset + adds r0, r5, #0 + bl CalculateMonStats + add sp, #0x14 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08070F84: .4byte 0x02024190 +_08070F88: .4byte 0x020243E8 +_08070F8C: .4byte 0x02021C40 + thumb_func_end AddHatchedMonToParty + + thumb_func_start ScriptHatchMon +ScriptHatchMon: @ 0x08070F90 + push {lr} + ldr r0, _08070FA0 + ldrb r0, [r0] + bl AddHatchedMonToParty + pop {r0} + bx r0 + .align 2, 0 +_08070FA0: .4byte 0x02037280 + thumb_func_end ScriptHatchMon + + thumb_func_start sub_08070FA4 +sub_08070FA4: @ 0x08070FA4 + push {r4, r5, lr} + sub sp, #0x20 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r2, #0x8c + muls r1, r2, r1 + adds r4, r0, r1 + adds r0, r4, #0 + mov r1, sp + bl GetMonNick + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + cmp r0, #0 + beq _08071010 + adds r5, r4, #0 + adds r5, #0x7c + mov r0, sp + adds r1, r5, #0 + bl StringCompare + adds r4, #0x74 + cmp r0, #0 + bne _08070FE4 + ldr r0, _08071000 + ldr r0, [r0] + adds r1, r4, #0 + bl StringCompare + cmp r0, #0 + beq _08071010 +_08070FE4: + ldr r0, _08071004 + mov r1, sp + bl StringCopy + ldr r0, _08071008 + adds r1, r4, #0 + bl StringCopy + ldr r0, _0807100C + adds r1, r5, #0 + bl StringCopy + movs r0, #1 + b _08071012 + .align 2, 0 +_08071000: .4byte 0x03005AF0 +_08071004: .4byte 0x02021C40 +_08071008: .4byte 0x02021C54 +_0807100C: .4byte 0x02021C68 +_08071010: + movs r0, #0 +_08071012: + add sp, #0x20 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08070FA4 + + thumb_func_start sub_0807101C +sub_0807101C: @ 0x0807101C + push {lr} + ldr r0, _08071038 + ldr r0, [r0] + ldr r1, _0807103C + adds r0, r0, r1 + ldr r1, _08071040 + ldrb r1, [r1] + bl sub_08070FA4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_08071038: .4byte 0x03005AEC +_0807103C: .4byte 0x00003030 +_08071040: .4byte 0x02037280 + thumb_func_end sub_0807101C + + thumb_func_start EggHatchCreateMonSprite +EggHatchCreateMonSprite: @ 0x08071044 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov sb, r3 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + mov r8, r3 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r1, r2, #0x18 + adds r2, r1, #0 + movs r4, #0 + movs r7, #0 + movs r5, #0 + cmp r3, #0 + bne _08071072 + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _0807108C + adds r5, r1, r0 + movs r4, #1 +_08071072: + cmp r3, #1 + bne _08071082 + movs r0, #0x64 + adds r1, r2, #0 + muls r1, r0, r1 + ldr r0, _0807108C + adds r5, r1, r0 + movs r4, #3 +_08071082: + cmp r6, #0 + beq _08071090 + cmp r6, #1 + beq _080710E0 + b _0807111A + .align 2, 0 +_0807108C: .4byte 0x02024190 +_08071090: + adds r0, r5, #0 + movs r1, #0xb + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + movs r1, #0 + bl GetMonData + adds r3, r0, #0 + lsls r0, r4, #3 + ldr r1, _080710D8 + adds r0, r0, r1 + ldr r1, _080710DC + ldr r2, [r1] + mov r6, r8 + lsls r1, r6, #1 + adds r1, #1 + lsls r1, r1, #2 + adds r2, #4 + adds r2, r2, r1 + ldr r1, [r2] + adds r2, r4, #0 + bl HandleLoadSpecialPokePic_DontHandleDeoxys + adds r0, r5, #0 + bl GetMonSpritePalStruct + bl LoadCompressedSpritePalette + mov r0, sb + strh r4, [r0] + b _0807111A + .align 2, 0 +_080710D8: .4byte 0x082DDA1C +_080710DC: .4byte 0x02024178 +_080710E0: + adds r0, r5, #0 + bl GetMonSpritePalStruct + ldrh r0, [r0, #4] + adds r1, r4, #0 + bl SetMultiuseSpriteTemplateToPokemon + ldr r0, _08071128 + movs r1, #0x78 + movs r2, #0x4b + movs r3, #6 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r4, _0807112C + lsls r1, r7, #4 + adds r1, r1, r7 + lsls r1, r1, #2 + adds r2, r1, r4 + adds r2, #0x3e + ldrb r0, [r2] + movs r3, #4 + orrs r0, r3 + strb r0, [r2] + adds r4, #0x1c + adds r1, r1, r4 + ldr r0, _08071130 + str r0, [r1] +_0807111A: + adds r0, r7, #0 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08071128: .4byte 0x02024640 +_0807112C: .4byte 0x020205AC +_08071130: .4byte 0x08007141 + thumb_func_end EggHatchCreateMonSprite + + thumb_func_start VBlankCB_EggHatch +VBlankCB_EggHatch: @ 0x08071134 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end VBlankCB_EggHatch + + thumb_func_start EggHatch +EggHatch: @ 0x08071148 + push {lr} + bl ScriptContext2_Enable + ldr r0, _08071164 + movs r1, #0xa + bl CreateTask + movs r0, #1 + movs r1, #0 + bl FadeScreen + pop {r0} + bx r0 + .align 2, 0 +_08071164: .4byte 0x08071169 + thumb_func_end EggHatch + + thumb_func_start Task_EggHatch +Task_EggHatch: @ 0x08071168 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _08071198 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08071190 + bl CleanupOverworldWindowsAndTilemaps + ldr r0, _0807119C + bl SetMainCallback2 + ldr r1, _080711A0 + ldr r0, _080711A4 + str r0, [r1] + adds r0, r4, #0 + bl DestroyTask +_08071190: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08071198: .4byte 0x02037C74 +_0807119C: .4byte 0x080711A9 +_080711A0: .4byte 0x03005B0C +_080711A4: .4byte 0x080AEA65 + thumb_func_end Task_EggHatch + + thumb_func_start CB2_EggHatch_0 +CB2_EggHatch_0: @ 0x080711A8 + push {r4, lr} + sub sp, #4 + ldr r0, _080711C8 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #8 + bls _080711BC + b _080713DA +_080711BC: + lsls r0, r0, #2 + ldr r1, _080711CC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080711C8: .4byte 0x03002360 +_080711CC: .4byte 0x080711D0 +_080711D0: @ jump table + .4byte _080711F4 @ case 0 + .4byte _080712C0 @ case 1 + .4byte _080712D8 @ case 2 + .4byte _08071308 @ case 3 + .4byte _08071328 @ case 4 + .4byte _08071340 @ case 5 + .4byte _08071358 @ case 6 + .4byte _08071374 @ case 7 + .4byte _080713CC @ case 8 +_080711F4: + movs r0, #0 + movs r1, #0 + bl SetGpuReg + ldr r4, _080712AC + movs r0, #0x14 + bl Alloc + str r0, [r4] + bl AllocateMonSpritesGfx + ldr r2, [r4] + ldr r0, _080712B0 + ldrh r0, [r0] + movs r1, #0 + strb r0, [r2, #4] + ldr r0, [r4] + strb r1, [r0, #7] + ldr r0, _080712B4 + bl SetVBlankCallback + bl GetCurrentMapMusic + ldr r1, _080712B8 + strh r0, [r1] + bl reset_temp_tile_data_buffers + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _080712BC + movs r0, #0 + movs r2, #2 + bl InitBgsFromTemplates + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #1 + movs r1, #7 + movs r2, #2 + bl SetBgAttribute + movs r0, #0x80 + lsls r0, r0, #5 + bl Alloc + adds r1, r0, #0 + movs r0, #1 + bl SetBgTilemapBuffer + movs r0, #0x80 + lsls r0, r0, #6 + bl Alloc + adds r1, r0, #0 + movs r0, #0 + bl SetBgTilemapBuffer + bl DeactivateAllTextPrinters + bl ResetPaletteFade + bl FreeAllSpritePalettes + bl ResetSpriteData + bl ResetTasks + bl ScanlineEffect_Stop + bl m4aSoundVSyncOn + b _080713AA + .align 2, 0 +_080712AC: .4byte 0x03000DE0 +_080712B0: .4byte 0x02037280 +_080712B4: .4byte 0x08071135 +_080712B8: .4byte 0x02037282 +_080712BC: .4byte 0x082FCA5C +_080712C0: + ldr r0, _080712D0 + bl InitWindows + ldr r0, _080712D4 + ldr r1, [r0] + movs r0, #0 + strb r0, [r1, #8] + b _080713AA + .align 2, 0 +_080712D0: .4byte 0x082FCA64 +_080712D4: .4byte 0x03000DE0 +_080712D8: + movs r1, #0x8c + lsls r1, r1, #0x14 + movs r0, #0 + str r0, [sp] + movs r2, #0 + movs r3, #0 + bl DecompressAndLoadBgGfxUsingHeap + ldr r1, _08071300 + movs r0, #0 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + ldr r0, _08071304 + movs r1, #0 + movs r2, #0x20 + bl LoadCompressedPalette + b _080713AA + .align 2, 0 +_08071300: .4byte 0x08C00530 +_08071304: .4byte 0x08C004EC +_08071308: + ldr r0, _0807131C + bl LoadSpriteSheet + ldr r0, _08071320 + bl LoadSpriteSheet + ldr r0, _08071324 + bl LoadSpritePalette + b _080713AA + .align 2, 0 +_0807131C: .4byte 0x082FC9DC +_08071320: .4byte 0x082FC9E4 +_08071324: .4byte 0x082FC9EC +_08071328: + movs r0, #0 + bl CopyBgTilemapBufferToVram + ldr r0, _0807133C + ldr r0, [r0] + ldrb r0, [r0, #4] + bl AddHatchedMonToParty + b _080713AA + .align 2, 0 +_0807133C: .4byte 0x03000DE0 +_08071340: + ldr r0, _08071354 + ldr r3, [r0] + ldrb r2, [r3, #4] + adds r3, #0xc + movs r0, #0 + movs r1, #0 + bl EggHatchCreateMonSprite + b _080713AA + .align 2, 0 +_08071354: .4byte 0x03000DE0 +_08071358: + ldr r4, _08071370 + ldr r3, [r4] + ldrb r2, [r3, #4] + adds r3, #0xc + movs r0, #0 + movs r1, #1 + bl EggHatchCreateMonSprite + ldr r1, [r4] + strb r0, [r1, #1] + b _080713AA + .align 2, 0 +_08071370: .4byte 0x03000DE0 +_08071374: + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + ldr r0, _080713BC + movs r1, #0x10 + movs r2, #0xa0 + bl LoadPalette + ldr r1, _080713C0 + movs r2, #0x98 + lsls r2, r2, #5 + movs r0, #1 + movs r3, #0 + bl LoadBgTiles + ldr r1, _080713C4 + movs r2, #0x80 + lsls r2, r2, #5 + movs r0, #1 + movs r3, #0 + bl CopyToBgTilemapBuffer + movs r0, #1 + bl CopyBgTilemapBufferToVram +_080713AA: + ldr r1, _080713C8 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080713DA + .align 2, 0 +_080713BC: .4byte 0x08305D24 +_080713C0: .4byte 0x08305D84 +_080713C4: .4byte 0x08304D04 +_080713C8: .4byte 0x03002360 +_080713CC: + ldr r0, _080713F8 + bl SetMainCallback2 + ldr r0, _080713FC + ldr r1, [r0] + movs r0, #0 + strb r0, [r1, #2] +_080713DA: + bl RunTasks + bl RunTextPrinters + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080713F8: .4byte 0x08071499 +_080713FC: .4byte 0x03000DE0 + thumb_func_end CB2_EggHatch_0 + + thumb_func_start EggHatchSetMonNickname +EggHatchSetMonNickname: @ 0x08071400 + push {lr} + ldr r0, _0807142C + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08071430 + adds r0, r0, r1 + ldr r2, _08071434 + movs r1, #2 + bl SetMonData + bl FreeMonSpritesGfx + ldr r0, _08071438 + ldr r0, [r0] + bl Free + ldr r0, _0807143C + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_0807142C: .4byte 0x02037280 +_08071430: .4byte 0x02024190 +_08071434: .4byte 0x02021C68 +_08071438: .4byte 0x03000DE0 +_0807143C: .4byte 0x08085A31 + thumb_func_end EggHatchSetMonNickname + + thumb_func_start Task_EggHatchPlayBGM +Task_EggHatchPlayBGM: @ 0x08071440 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _08071490 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08071460 + bl StopMapMusic + bl PlayRainStoppingSoundEffect +_08071460: + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #1 + bne _08071470 + movs r0, #0xbc + lsls r0, r0, #1 + bl PlayBGM +_08071470: + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0x3c + ble _08071484 + ldr r0, _08071494 + bl PlayBGM + adds r0, r5, #0 + bl DestroyTask +_08071484: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08071490: .4byte 0x03005B60 +_08071494: .4byte 0x00000179 + thumb_func_end Task_EggHatchPlayBGM + + thumb_func_start CB2_EggHatch_1 +CB2_EggHatch_1: @ 0x08071498 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0xc + ldr r1, _080714BC + ldr r0, [r1] + ldrb r0, [r0, #2] + adds r5, r1, #0 + cmp r0, #0xc + bls _080714B0 + b _08071816 +_080714B0: + lsls r0, r0, #2 + ldr r1, _080714C0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080714BC: .4byte 0x03000DE0 +_080714C0: .4byte 0x080714C4 +_080714C4: @ jump table + .4byte _080714F8 @ case 0 + .4byte _08071544 @ case 1 + .4byte _0807156C @ case 2 + .4byte _080715A4 @ case 3 + .4byte _080715FC @ case 4 + .4byte _08071628 @ case 5 + .4byte _0807168C @ case 6 + .4byte _0807169A @ case 7 + .4byte _080716A8 @ case 8 + .4byte _080716EC @ case 9 + .4byte _0807172C @ case 10 + .4byte _080717C4 @ case 11 + .4byte _080717E4 @ case 12 +_080714F8: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r0, _08071538 + movs r1, #0x78 + movs r2, #0x4b + movs r3, #5 + bl CreateSprite + ldr r4, _0807153C + ldr r1, [r4] + strb r0, [r1] + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + ldr r1, [r4] + ldrb r0, [r1, #2] + adds r0, #1 + strb r0, [r1, #2] + ldr r0, _08071540 + movs r1, #5 + bl CreateTask + b _08071816 + .align 2, 0 +_08071538: .4byte 0x082FC9F4 +_0807153C: .4byte 0x03000DE0 +_08071540: .4byte 0x08071441 +_08071544: + ldr r0, _08071568 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + beq _08071556 + b _08071816 +_08071556: + ldr r0, [r5] + ldrb r0, [r0, #8] + movs r1, #0 + bl FillWindowPixelBuffer + ldr r0, [r5] + strb r4, [r0, #3] + ldr r1, [r5] + b _080717D8 + .align 2, 0 +_08071568: .4byte 0x02037C74 +_0807156C: + ldr r1, [r5] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1e + bhi _0807157E + b _08071816 +_0807157E: + ldr r1, [r5] + ldrb r0, [r1, #2] + adds r0, #1 + strb r0, [r1, #2] + ldr r2, _0807159C + ldr r0, [r5] + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, _080715A0 + str r1, [r0] + b _08071816 + .align 2, 0 +_0807159C: .4byte 0x020205AC +_080715A0: .4byte 0x08071845 +_080715A4: + ldr r4, _080715F0 + ldr r2, [r5] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, [r0] + ldr r0, _080715F4 + cmp r1, r0 + beq _080715C0 + b _08071816 +_080715C0: + ldrb r1, [r2, #4] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080715F8 + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + ldr r0, [r5] + ldrb r1, [r0, #1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r1, r7, #0 + movs r2, #0 + movs r3, #1 + bl DoMonFrontSpriteAnimation + ldr r1, [r5] + b _080717D8 + .align 2, 0 +_080715F0: .4byte 0x020205AC +_080715F4: .4byte 0x08007141 +_080715F8: .4byte 0x02024190 +_080715FC: + ldr r2, _08071620 + ldr r3, [r5] + ldrb r1, [r3, #1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _08071624 + cmp r1, r0 + beq _08071616 + b _08071816 +_08071616: + ldrb r0, [r3, #2] + adds r0, #1 + strb r0, [r3, #2] + b _08071816 + .align 2, 0 +_08071620: .4byte 0x020205AC +_08071624: .4byte 0x08007141 +_08071628: + ldr r0, [r5] + ldrb r1, [r0, #4] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08071678 + adds r0, r0, r1 + ldr r1, _0807167C + bl GetBoxMonNick + ldr r4, _08071680 + ldr r1, _08071684 + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r0, [r5] + ldrb r0, [r0, #8] + movs r1, #0xff + str r1, [sp] + adds r1, r4, #0 + movs r2, #0 + movs r3, #3 + bl EggHatchPrintMessage + ldr r0, _08071688 + bl PlayFanfare + ldr r1, [r5] + ldrb r0, [r1, #2] + adds r0, #1 + strb r0, [r1, #2] + ldr r0, [r5] + ldrb r0, [r0, #8] + bl PutWindowTilemap + ldr r0, [r5] + ldrb r0, [r0, #8] + movs r1, #3 + bl CopyWindowToVram + b _08071816 + .align 2, 0 +_08071678: .4byte 0x02024190 +_0807167C: .4byte 0x02021C40 +_08071680: .4byte 0x02021C7C +_08071684: .4byte 0x085CC874 +_08071688: .4byte 0x00000173 +_0807168C: + bl IsFanfareTaskInactive + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08071698 + b _08071816 +_08071698: + b _080717D4 +_0807169A: + bl IsFanfareTaskInactive + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080716A6 + b _08071816 +_080716A6: + b _080717D4 +_080716A8: + ldr r0, [r5] + ldrb r1, [r0, #4] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080716DC + adds r0, r0, r1 + ldr r1, _080716E0 + bl GetBoxMonNick + ldr r4, _080716E4 + ldr r1, _080716E8 + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r0, [r5] + ldrb r0, [r0, #8] + movs r1, #1 + str r1, [sp] + adds r1, r4, #0 + movs r2, #0 + movs r3, #2 + bl EggHatchPrintMessage + ldr r1, [r5] + b _080717D8 + .align 2, 0 +_080716DC: .4byte 0x02024190 +_080716E0: .4byte 0x02021C40 +_080716E4: .4byte 0x02021C7C +_080716E8: .4byte 0x085CC888 +_080716EC: + ldr r0, [r5] + ldrb r0, [r0, #8] + bl IsTextPrinterActive + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #0 + beq _080716FE + b _08071816 +_080716FE: + ldr r0, [r5] + ldrb r0, [r0, #8] + movs r4, #0xa0 + lsls r4, r4, #1 + adds r1, r4, #0 + movs r2, #0xe0 + bl LoadUserWindowBorderGfx + ldr r0, _08071728 + str r4, [sp] + movs r1, #0xe + str r1, [sp, #4] + str r6, [sp, #8] + movs r1, #1 + movs r2, #2 + movs r3, #2 + bl sub_08198C08 + ldr r1, [r5] + b _080717D8 + .align 2, 0 +_08071728: .4byte 0x082FCA74 +_0807172C: + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _0807174C + cmp r1, #0 + bgt _08071746 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _080717D4 + b _08071816 +_08071746: + cmp r1, #1 + beq _080717D4 + b _08071816 +_0807174C: + ldr r0, _080717B4 + mov r8, r0 + ldr r0, [r0] + ldrb r0, [r0, #4] + movs r6, #0x64 + muls r0, r6, r0 + ldr r5, _080717B8 + adds r0, r0, r5 + ldr r1, _080717BC + mov sb, r1 + bl GetBoxMonNick + mov r1, r8 + ldr r0, [r1] + ldrb r0, [r0, #4] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + mov r1, r8 + ldr r0, [r1] + ldrb r0, [r0, #4] + muls r0, r6, r0 + adds r0, r0, r5 + bl GetMonGender + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r1, r8 + ldr r0, [r1] + ldrb r0, [r0, #4] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #0 + movs r2, #0 + bl GetMonData + str r0, [sp] + ldr r0, _080717C0 + str r0, [sp, #4] + movs r0, #3 + mov r1, sb + adds r2, r7, #0 + adds r3, r4, #0 + bl DoNamingScreen + b _08071816 + .align 2, 0 +_080717B4: .4byte 0x03000DE0 +_080717B8: .4byte 0x02024190 +_080717BC: .4byte 0x02021C68 +_080717C0: .4byte 0x08071401 +_080717C4: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade +_080717D4: + ldr r0, _080717E0 + ldr r1, [r0] +_080717D8: + ldrb r0, [r1, #2] + adds r0, #1 + strb r0, [r1, #2] + b _08071816 + .align 2, 0 +_080717E0: .4byte 0x03000DE0 +_080717E4: + ldr r0, _08071838 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08071816 + bl FreeMonSpritesGfx + ldr r4, _0807183C + ldr r0, [r4] + ldrb r0, [r0, #8] + bl RemoveWindow + movs r0, #0 + bl UnsetBgTilemapBuffer + movs r0, #1 + bl UnsetBgTilemapBuffer + ldr r0, [r4] + bl Free + ldr r0, _08071840 + bl SetMainCallback2 +_08071816: + bl RunTasks + bl RunTextPrinters + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + add sp, #0xc + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08071838: .4byte 0x02037C74 +_0807183C: .4byte 0x03000DE0 +_08071840: .4byte 0x08085A31 + thumb_func_end CB2_EggHatch_1 + + thumb_func_start SpriteCB_Egg_0 +SpriteCB_Egg_0: @ 0x08071844 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x14 + ble _08071864 + ldr r0, _08071860 + str r0, [r4, #0x1c] + movs r0, #0 + strh r0, [r4, #0x2e] + b _08071894 + .align 2, 0 +_08071860: .4byte 0x0807189D +_08071864: + ldrh r0, [r4, #0x30] + adds r0, #0x14 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x30] + movs r1, #0x30 + ldrsh r0, [r4, r1] + movs r1, #1 + bl Sin + strh r0, [r4, #0x24] + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0xf + bne _08071894 + movs r0, #0x17 + bl PlaySE + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAnim + bl CreateRandomEggShardSprite +_08071894: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SpriteCB_Egg_0 + + thumb_func_start SpriteCB_Egg_1 +SpriteCB_Egg_1: @ 0x0807189C + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x32] + adds r0, #1 + movs r1, #0 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1e + ble _080718F8 + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x14 + ble _080718CC + ldr r0, _080718C8 + str r0, [r4, #0x1c] + strh r1, [r4, #0x2e] + strh r1, [r4, #0x32] + b _080718F8 + .align 2, 0 +_080718C8: .4byte 0x08071901 +_080718CC: + ldrh r0, [r4, #0x30] + adds r0, #0x14 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x30] + movs r1, #0x30 + ldrsh r0, [r4, r1] + movs r1, #2 + bl Sin + strh r0, [r4, #0x24] + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0xf + bne _080718F8 + movs r0, #0x17 + bl PlaySE + adds r0, r4, #0 + movs r1, #2 + bl StartSpriteAnim +_080718F8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SpriteCB_Egg_1 + + thumb_func_start SpriteCB_Egg_2 +SpriteCB_Egg_2: @ 0x08071900 + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x32] + adds r0, #1 + movs r5, #0 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1e + ble _080719AE + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x26 + ble _0807196C + ldr r0, _0807195C + str r0, [r4, #0x1c] + strh r5, [r4, #0x2e] + ldr r4, _08071960 + ldr r0, [r4] + ldrb r1, [r0, #4] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08071964 + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + ldr r3, _08071968 + ldr r2, [r4] + ldrb r1, [r2, #1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r5, [r0, #0x24] + ldrb r1, [r2, #1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r5, [r0, #0x26] + b _080719AE + .align 2, 0 +_0807195C: .4byte 0x080719B5 +_08071960: .4byte 0x03000DE0 +_08071964: .4byte 0x02024190 +_08071968: .4byte 0x020205AC +_0807196C: + ldrh r0, [r4, #0x30] + adds r0, #0x14 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x30] + movs r1, #0x30 + ldrsh r0, [r4, r1] + movs r1, #2 + bl Sin + strh r0, [r4, #0x24] + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0xf + bne _080719A0 + movs r0, #0x17 + bl PlaySE + adds r0, r4, #0 + movs r1, #2 + bl StartSpriteAnim + bl CreateRandomEggShardSprite + bl CreateRandomEggShardSprite +_080719A0: + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0x1e + bne _080719AE + movs r0, #0x17 + bl PlaySE +_080719AE: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end SpriteCB_Egg_2 + + thumb_func_start SpriteCB_Egg_3 +SpriteCB_Egg_3: @ 0x080719B4 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0x2e] + adds r0, #1 + strh r0, [r1, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x32 + ble _080719CE + ldr r0, _080719D4 + str r0, [r1, #0x1c] + movs r0, #0 + strh r0, [r1, #0x2e] +_080719CE: + pop {r0} + bx r0 + .align 2, 0 +_080719D4: .4byte 0x080719D9 + thumb_func_end SpriteCB_Egg_3 + + thumb_func_start SpriteCB_Egg_4 +SpriteCB_Egg_4: @ 0x080719D8 + push {r4, r5, lr} + sub sp, #4 + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _080719F8 + movs r1, #1 + rsbs r1, r1, #0 + ldr r0, _08071A4C + str r0, [sp] + adds r0, r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade +_080719F8: + ldrh r0, [r5, #0x2e] + cmp r0, #3 + bhi _08071A14 + movs r4, #0 +_08071A00: + bl CreateRandomEggShardSprite + lsls r0, r4, #0x10 + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r0, r1 + lsrs r4, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + ble _08071A00 +_08071A14: + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] + ldr r0, _08071A50 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _08071A42 + movs r0, #0x71 + bl PlaySE + adds r2, r5, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08071A54 + str r0, [r5, #0x1c] + strh r4, [r5, #0x2e] +_08071A42: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08071A4C: .4byte 0x0000FFFF +_08071A50: .4byte 0x02037C74 +_08071A54: .4byte 0x08071A59 + thumb_func_end SpriteCB_Egg_4 + + thumb_func_start SpriteCB_Egg_5 +SpriteCB_Egg_5: @ 0x08071A58 + push {r4, r5, lr} + sub sp, #4 + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _08071A94 + ldr r4, _08071AE8 + ldr r3, _08071AEC + ldr r0, [r3] + ldrb r1, [r0, #1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + ldr r0, [r3] + ldrb r1, [r0, #1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #1 + bl StartSpriteAffineAnim +_08071A94: + movs r2, #0x2e + ldrsh r0, [r5, r2] + cmp r0, #8 + bne _08071AAE + movs r1, #1 + rsbs r1, r1, #0 + ldr r0, _08071AF0 + str r0, [sp] + adds r0, r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade +_08071AAE: + movs r1, #0x2e + ldrsh r0, [r5, r1] + cmp r0, #9 + bgt _08071ACC + ldr r2, _08071AE8 + ldr r0, _08071AEC + ldr r0, [r0] + ldrb r1, [r0, #1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x22] + subs r1, #1 + strh r1, [r0, #0x22] +_08071ACC: + ldrh r1, [r5, #0x2e] + movs r2, #0x2e + ldrsh r0, [r5, r2] + cmp r0, #0x28 + ble _08071ADA + ldr r0, _08071AF4 + str r0, [r5, #0x1c] +_08071ADA: + adds r0, r1, #1 + strh r0, [r5, #0x2e] + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08071AE8: .4byte 0x020205AC +_08071AEC: .4byte 0x03000DE0 +_08071AF0: .4byte 0x0000FFFF +_08071AF4: .4byte 0x08007141 + thumb_func_end SpriteCB_Egg_5 + + thumb_func_start SpriteCB_EggShard +SpriteCB_EggShard: @ 0x08071AF8 + push {r4, lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x30] + ldrh r1, [r2, #0x36] + adds r0, r0, r1 + strh r0, [r2, #0x36] + ldrh r1, [r2, #0x32] + ldrh r3, [r2, #0x38] + adds r0, r1, r3 + strh r0, [r2, #0x38] + movs r4, #0x36 + ldrsh r0, [r2, r4] + cmp r0, #0 + bge _08071B16 + adds r0, #0xff +_08071B16: + asrs r0, r0, #8 + strh r0, [r2, #0x24] + movs r3, #0x38 + ldrsh r0, [r2, r3] + cmp r0, #0 + bge _08071B24 + adds r0, #0xff +_08071B24: + asrs r0, r0, #8 + strh r0, [r2, #0x26] + ldrh r0, [r2, #0x34] + adds r3, r1, r0 + strh r3, [r2, #0x32] + movs r4, #0x22 + ldrsh r1, [r2, r4] + movs r4, #0x26 + ldrsh r0, [r2, r4] + adds r0, r1, r0 + adds r1, #0x14 + cmp r0, r1 + ble _08071B4A + lsls r0, r3, #0x10 + cmp r0, #0 + ble _08071B4A + adds r0, r2, #0 + bl DestroySprite +_08071B4A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end SpriteCB_EggShard + + thumb_func_start CreateRandomEggShardSprite +CreateRandomEggShardSprite: @ 0x08071B50 + push {r4, r5, r6, lr} + sub sp, #8 + ldr r2, _08071B9C + ldr r0, _08071BA0 + ldr r6, [r0] + ldrb r3, [r6, #7] + lsls r0, r3, #2 + adds r1, r0, r2 + ldrh r5, [r1] + adds r2, #2 + adds r0, r0, r2 + ldrh r4, [r0] + adds r3, #1 + strb r3, [r6, #7] + bl Random + lsls r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r0 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + movs r0, #0x64 + str r0, [sp] + lsrs r1, r1, #0x10 + str r1, [sp, #4] + movs r0, #0x78 + movs r1, #0x3c + adds r2, r5, #0 + adds r3, r4, #0 + bl CreateEggShardSprite + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08071B9C: .4byte 0x082FCA7C +_08071BA0: .4byte 0x03000DE0 + thumb_func_end CreateRandomEggShardSprite + + thumb_func_start CreateEggShardSprite +CreateEggShardSprite: @ 0x08071BA4 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + mov r8, r3 + ldr r0, [sp, #0x1c] + mov sb, r0 + ldr r1, [sp, #0x20] + mov sl, r1 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + mov r0, r8 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + mov r1, sb + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sb, r1 + mov r0, sl + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + ldr r0, _08071C1C + adds r1, r4, #0 + adds r2, r5, #0 + movs r3, #4 + bl CreateSprite + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _08071C20 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r6, [r0, #0x30] + mov r1, r8 + strh r1, [r0, #0x32] + mov r1, sb + strh r1, [r0, #0x34] + mov r1, sl + bl StartSpriteAnim + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08071C1C: .4byte 0x082FCA44 +_08071C20: .4byte 0x020205AC + thumb_func_end CreateEggShardSprite + + thumb_func_start EggHatchPrintMessage +EggHatchPrintMessage: @ 0x08071C24 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #0x14 + adds r5, r0, #0 + mov sb, r1 + adds r6, r2, #0 + mov r8, r3 + ldr r4, [sp, #0x2c] + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov r0, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + movs r1, #0xff + bl FillWindowPixelBuffer + ldr r3, _08071C98 + ldr r0, [r3] + movs r2, #0 + strb r2, [r0, #0xe] + ldr r1, [r3] + movs r0, #5 + strb r0, [r1, #0xf] + ldr r1, [r3] + movs r0, #6 + strb r0, [r1, #0x10] + str r2, [sp] + str r2, [sp, #4] + ldr r0, [r3] + adds r0, #0xe + str r0, [sp, #8] + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + str r4, [sp, #0xc] + mov r0, sb + str r0, [sp, #0x10] + adds r0, r5, #0 + movs r1, #1 + adds r2, r6, #0 + mov r3, r8 + bl AddTextPrinterParameterized4 + add sp, #0x14 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08071C98: .4byte 0x03000DE0 + thumb_func_end EggHatchPrintMessage + + thumb_func_start GetEggStepsToSubtract +GetEggStepsToSubtract: @ 0x08071C9C + push {r4, r5, r6, lr} + bl CalculatePlayerPartyCount + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r5, #0 + cmp r5, r6 + bhs _08071CE6 +_08071CAC: + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _08071CD8 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #6 + bl GetMonData + cmp r0, #0 + bne _08071CDC + adds r0, r4, #0 + bl GetMonAbility + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x28 + beq _08071CD4 + cmp r0, #0x31 + bne _08071CDC +_08071CD4: + movs r0, #2 + b _08071CE8 + .align 2, 0 +_08071CD8: .4byte 0x02024190 +_08071CDC: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, r6 + blo _08071CAC +_08071CE6: + movs r0, #1 +_08071CE8: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetEggStepsToSubtract + + thumb_func_start sub_08071CF0 +sub_08071CF0: @ 0x08071CF0 + push {r4, lr} + bl CountStorageNonEggMons + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + movs r0, #6 + bl CountPartyAliveNonEggMonsExcept + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r4, r4, r0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_08071CF0 + diff --git a/asm/electric.s b/asm/electric.s new file mode 100644 index 0000000..752f595 --- /dev/null +++ b/asm/electric.s @@ -0,0 +1,2774 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_0810A9F8 +sub_0810A9F8: @ 0x0810A9F8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0810AA18 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810AA20 + ldr r0, _0810AA1C + ldrh r1, [r4, #0x20] + ldrh r2, [r0] + subs r1, r1, r2 + strh r1, [r4, #0x20] + b _0810AA2C + .align 2, 0 +_0810AA18: .4byte 0x020380D6 +_0810AA1C: .4byte 0x020380BE +_0810AA20: + ldr r1, _0810AA40 + ldrh r0, [r1] + ldrh r2, [r4, #0x20] + adds r0, r0, r2 + strh r0, [r4, #0x20] + adds r0, r1, #0 +_0810AA2C: + ldrh r0, [r0, #2] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] + ldr r0, _0810AA44 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810AA40: .4byte 0x020380BE +_0810AA44: .4byte 0x0810AA49 + thumb_func_end sub_0810A9F8 + + thumb_func_start sub_0810AA48 +sub_0810AA48: @ 0x0810AA48 + push {lr} + adds r2, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0810AA5E + adds r0, r2, #0 + bl DestroyAnimSprite +_0810AA5E: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0810AA48 + + thumb_func_start sub_0810AA64 +sub_0810AA64: @ 0x0810AA64 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0810AA84 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810AA8C + ldr r0, _0810AA88 + ldrh r1, [r4, #0x20] + ldrh r0, [r0] + subs r1, r1, r0 + strh r1, [r4, #0x20] + b _0810AA96 + .align 2, 0 +_0810AA84: .4byte 0x020380D6 +_0810AA88: .4byte 0x020380BE +_0810AA8C: + ldr r0, _0810AAA0 + ldrh r0, [r0] + ldrh r1, [r4, #0x20] + adds r0, r0, r1 + strh r0, [r4, #0x20] +_0810AA96: + ldr r0, _0810AAA4 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810AAA0: .4byte 0x020380BE +_0810AAA4: .4byte 0x0810AAA9 + thumb_func_end sub_0810AA64 + + thumb_func_start sub_0810AAA8 +sub_0810AAA8: @ 0x0810AAA8 + push {lr} + adds r2, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0810AABE + adds r0, r2, #0 + bl DestroySpriteAndMatrix +_0810AABE: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0810AAA8 + + thumb_func_start sub_0810AAC4 +sub_0810AAC4: @ 0x0810AAC4 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0810AB08 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + ldr r0, _0810AB0C + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810AB14 + ldr r2, _0810AB10 + ldrh r0, [r5, #0x20] + ldrh r1, [r2] + subs r0, r0, r1 + strh r0, [r5, #0x20] + ldrh r0, [r5, #0x22] + ldrh r1, [r2, #2] + subs r0, r0, r1 + strh r0, [r5, #0x22] + b _0810AB28 + .align 2, 0 +_0810AB08: .4byte 0x020380D7 +_0810AB0C: .4byte 0x020380D6 +_0810AB10: .4byte 0x020380BE +_0810AB14: + ldr r0, _0810AB4C + ldrh r1, [r0] + ldrh r2, [r5, #0x20] + adds r1, r1, r2 + strh r1, [r5, #0x20] + ldrh r1, [r0, #2] + ldrh r2, [r5, #0x22] + adds r1, r1, r2 + strh r1, [r5, #0x22] + adds r2, r0, #0 +_0810AB28: + movs r0, #0 + strh r0, [r5, #0x2e] + ldrh r0, [r2, #4] + strh r0, [r5, #0x30] + ldrh r0, [r2, #6] + strh r0, [r5, #0x32] + ldrh r0, [r2, #8] + strh r0, [r5, #0x34] + ldr r1, _0810AB50 + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _0810AB54 + str r0, [r5, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810AB4C: .4byte 0x020380BE +_0810AB50: .4byte 0x080A6015 +_0810AB54: .4byte 0x080A5BB5 + thumb_func_end sub_0810AAC4 + + thumb_func_start sub_0810AB58 +sub_0810AB58: @ 0x0810AB58 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldr r0, _0810AB70 + movs r1, #8 + ldrsh r0, [r0, r1] + cmp r0, #1 + beq _0810ABD0 + cmp r0, #1 + bgt _0810AB74 + cmp r0, #0 + beq _0810AB7E + b _0810ABD0 + .align 2, 0 +_0810AB70: .4byte 0x020380BE +_0810AB74: + cmp r0, #2 + beq _0810AB88 + cmp r0, #3 + beq _0810ABAC + b _0810ABD0 +_0810AB7E: + ldr r0, _0810AB84 + b _0810ABD2 + .align 2, 0 +_0810AB84: .4byte 0x020380D6 +_0810AB88: + ldr r4, _0810ABA0 + ldrb r0, [r4] + movs r6, #2 + eors r0, r6 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810ABA4 + ldrb r4, [r4] + b _0810ABD4 + .align 2, 0 +_0810ABA0: .4byte 0x020380D6 +_0810ABA4: + ldrb r0, [r4] + adds r4, r6, #0 + eors r4, r0 + b _0810ABD4 +_0810ABAC: + ldr r0, _0810ABC8 + ldrb r0, [r0] + movs r4, #2 + eors r0, r4 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810ABD0 + ldr r0, _0810ABCC + ldrb r0, [r0] + eors r4, r0 + b _0810ABD4 + .align 2, 0 +_0810ABC8: .4byte 0x020380D6 +_0810ABCC: .4byte 0x020380D7 +_0810ABD0: + ldr r0, _0810ABF4 +_0810ABD2: + ldrb r4, [r0] +_0810ABD4: + ldr r0, _0810ABF8 + movs r2, #0xa + ldrsh r0, [r0, r2] + cmp r0, #0 + bne _0810ABFC + adds r0, r4, #0 + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + adds r0, r4, #0 + movs r1, #1 + b _0810AC0E + .align 2, 0 +_0810ABF4: .4byte 0x020380D7 +_0810ABF8: .4byte 0x020380BE +_0810ABFC: + adds r0, r4, #0 + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + adds r0, r4, #0 + movs r1, #3 +_0810AC0E: + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + ldr r7, _0810ACAC + ldr r6, _0810ACB0 + movs r1, #0 + ldrsh r0, [r6, r1] + lsls r0, r0, #1 + adds r0, r0, r7 + movs r2, #0 + ldrsh r1, [r0, r2] + movs r2, #2 + ldrsh r0, [r6, r2] + muls r0, r1, r0 + asrs r0, r0, #8 + strh r0, [r5, #0x24] + movs r1, #0 + ldrsh r0, [r6, r1] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r7 + movs r2, #0 + ldrsh r1, [r0, r2] + movs r2, #2 + ldrsh r0, [r6, r2] + muls r0, r1, r0 + asrs r0, r0, #8 + strh r0, [r5, #0x26] + ldrh r1, [r6, #0xc] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0810AC72 + adds r0, r4, #0 + bl GetBattlerSpriteBGPriority + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #1 + movs r1, #3 + ands r0, r1 + lsls r0, r0, #2 + ldrb r2, [r5, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #5] +_0810AC72: + ldrb r2, [r5, #3] + lsls r2, r2, #0x1a + lsrs r2, r2, #0x1b + movs r0, #4 + ldrsh r1, [r6, r0] + lsls r0, r1, #1 + adds r0, r0, r7 + ldrh r0, [r0] + ldr r3, _0810ACB4 + lsls r2, r2, #3 + adds r2, r2, r3 + adds r1, #0x40 + lsls r1, r1, #1 + adds r1, r1, r7 + ldrh r1, [r1] + strh r1, [r2, #6] + strh r1, [r2] + strh r0, [r2, #2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + rsbs r0, r0, #0 + strh r0, [r2, #4] + ldrh r0, [r6, #6] + strh r0, [r5, #0x2e] + ldr r0, _0810ACB8 + str r0, [r5, #0x1c] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0810ACAC: .4byte 0x082FA8CC +_0810ACB0: .4byte 0x020380BE +_0810ACB4: .4byte 0x02021B3C +_0810ACB8: .4byte 0x0810EB19 + thumb_func_end sub_0810AB58 + + thumb_func_start sub_0810ACBC +sub_0810ACBC: @ 0x0810ACBC + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldr r5, _0810AD30 + ldrh r0, [r5, #6] + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x20] + strh r0, [r4, #0x30] + ldr r6, _0810AD34 + ldrb r0, [r6] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x22] + strh r0, [r4, #0x34] + ldrb r0, [r6] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl InitAnimLinearTranslation + ldrh r0, [r5, #4] + strh r0, [r4, #0x38] + ldrh r0, [r5, #0xa] + strh r0, [r4, #0x3a] + ldrh r0, [r5, #8] + strh r0, [r4, #0x3c] + ldrh r2, [r4, #4] + lsls r1, r2, #0x16 + lsrs r1, r1, #0x16 + movs r3, #0xc + ldrsh r0, [r5, r3] + lsls r0, r0, #2 + adds r1, r1, r0 + ldr r3, _0810AD38 + adds r0, r3, #0 + ands r1, r0 + ldr r0, _0810AD3C + ands r0, r2 + orrs r0, r1 + strh r0, [r4, #4] + ldr r1, _0810AD40 + str r1, [r4, #0x1c] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0810AD30: .4byte 0x020380BE +_0810AD34: .4byte 0x020380D7 +_0810AD38: .4byte 0x000003FF +_0810AD3C: .4byte 0xFFFFFC00 +_0810AD40: .4byte 0x0810AD45 + thumb_func_end sub_0810ACBC + + thumb_func_start sub_0810AD44 +sub_0810AD44: @ 0x0810AD44 + push {r4, lr} + adds r4, r0, #0 + bl AnimTranslateLinear + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810ADAE + movs r1, #0x3c + ldrsh r0, [r4, r1] + movs r2, #0x38 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, #0x24] + adds r0, 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, r0, r1 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x3a] + ldrh r2, [r4, #0x3c] + adds r0, r0, r2 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x3c] + movs r1, #0x3c + ldrsh r0, [r4, r1] + movs r1, #3 + bl __modsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0810ADB4 + adds r3, r4, #0 + adds r3, #0x3e + ldrb r2, [r3] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _0810ADB4 +_0810ADAE: + adds r0, r4, #0 + bl DestroyAnimSprite +_0810ADB4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0810AD44 + + thumb_func_start sub_0810ADBC +sub_0810ADBC: @ 0x0810ADBC + push {lr} + adds r3, r0, #0 + ldrh r0, [r3, #0x38] + subs r0, #1 + strh r0, [r3, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0810ADF4 + movs r0, #0x3e + adds r0, r0, r3 + mov ip, r0 + ldrb r2, [r0] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrh r0, [r3, #0x36] + strh r0, [r3, #0x38] +_0810ADF4: + ldrh r0, [r3, #0x34] + subs r1, r0, #1 + strh r1, [r3, #0x34] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _0810AE06 + adds r0, r3, #0 + bl DestroyAnimSprite +_0810AE06: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0810ADBC + + thumb_func_start sub_0810AE0C +sub_0810AE0C: @ 0x0810AE0C + push {r4, r5, r6, lr} + adds r6, r0, #0 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810AE28 + ldr r0, _0810AE6C + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810AE30 +_0810AE28: + ldr r1, _0810AE70 + ldrh r0, [r1, #2] + rsbs r0, r0, #0 + strh r0, [r1, #2] +_0810AE30: + ldr r5, _0810AE6C + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + ldr r4, _0810AE70 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #2] + adds r0, r0, r1 + strh r0, [r6, #0x20] + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #4] + adds r0, r0, r1 + strh r0, [r6, #0x22] + ldrh r0, [r4] + strh r0, [r6, #0x34] + ldrh r0, [r4, #6] + strh r0, [r6, #0x36] + strh r0, [r6, #0x38] + ldr r0, _0810AE74 + str r0, [r6, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0810AE6C: .4byte 0x020380D7 +_0810AE70: .4byte 0x020380BE +_0810AE74: .4byte 0x0810ADBD + thumb_func_end sub_0810AE0C + + thumb_func_start sub_0810AE78 +sub_0810AE78: @ 0x0810AE78 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r1, _0810AE94 + ldrh r0, [r1, #6] + strh r0, [r5, #0x2e] + movs r2, #0xe + ldrsh r0, [r1, r2] + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + beq _0810AE9C + ldr r0, _0810AE98 + b _0810AE9E + .align 2, 0 +_0810AE94: .4byte 0x020380BE +_0810AE98: .4byte 0x020380D7 +_0810AE9C: + ldr r0, _0810AF24 +_0810AE9E: + ldrb r6, [r0] + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810AEB6 + adds r0, r6, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810AEBE +_0810AEB6: + ldr r1, _0810AF28 + ldrh r0, [r1] + rsbs r0, r0, #0 + strh r0, [r1] +_0810AEBE: + adds r0, r6, #0 + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + ldr r4, _0810AF28 + lsrs r0, r0, #0x18 + ldrh r3, [r4] + adds r0, r0, r3 + strh r0, [r5, #0x20] + adds r0, r6, #0 + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #2] + adds r0, r0, r1 + strh r0, [r5, #0x22] + ldrh r1, [r4, #0xe] + ldr r0, _0810AF2C + ands r0, r1 + strh r0, [r5, #0x36] + ldrh r0, [r4, #4] + strh r0, [r5, #0x38] + ldrh r0, [r4, #0xa] + strh r0, [r5, #0x3a] + ldrh r0, [r4, #8] + strh r0, [r5, #0x3c] + ldrh r2, [r5, #4] + lsls r1, r2, #0x16 + lsrs r1, r1, #0x16 + movs r3, #0xc + ldrsh r0, [r4, r3] + lsls r0, r0, #2 + adds r1, r1, r0 + ldr r3, _0810AF30 + adds r0, r3, #0 + ands r1, r0 + ldr r0, _0810AF34 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, #4] + ldr r1, _0810AF38 + str r1, [r5, #0x1c] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0810AF24: .4byte 0x020380D6 +_0810AF28: .4byte 0x020380BE +_0810AF2C: .4byte 0x00007FFF +_0810AF30: .4byte 0x000003FF +_0810AF34: .4byte 0xFFFFFC00 +_0810AF38: .4byte 0x0810AF3D + thumb_func_end sub_0810AE78 + + thumb_func_start sub_0810AF3C +sub_0810AF3C: @ 0x0810AF3C + 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, 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 _0810AF92 + adds r3, r4, #0 + adds r3, #0x3e + ldrb r2, [r3] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_0810AF92: + ldrh r0, [r4, #0x2e] + subs r1, r0, #1 + strh r1, [r4, #0x2e] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _0810AFA4 + adds r0, r4, #0 + bl DestroyAnimSprite +_0810AFA4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0810AF3C + + thumb_func_start sub_0810AFAC +sub_0810AFAC: @ 0x0810AFAC + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0 + bl InitSpritePosToAnimTarget + ldrh r2, [r4, #4] + lsls r1, r2, #0x16 + lsrs r1, r1, #0x16 + ldr r3, _0810AFE8 + movs r5, #6 + ldrsh r0, [r3, r5] + lsls r0, r0, #2 + adds r1, r1, r0 + ldr r5, _0810AFEC + adds r0, r5, #0 + ands r1, r0 + ldr r0, _0810AFF0 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, #4] + movs r1, #6 + ldrsh r0, [r3, r1] + cmp r0, #1 + bne _0810AFF4 + ldrb r0, [r4, #3] + movs r1, #0x3f + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #0x10 + b _0810B002 + .align 2, 0 +_0810AFE8: .4byte 0x020380BE +_0810AFEC: .4byte 0x000003FF +_0810AFF0: .4byte 0xFFFFFC00 +_0810AFF4: + cmp r0, #2 + bne _0810B006 + ldrb r0, [r4, #3] + movs r1, #0x3f + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #0x20 +_0810B002: + orrs r1, r0 + strb r1, [r4, #3] +_0810B006: + ldr r0, _0810B020 + ldrh r0, [r0, #4] + strh r0, [r4, #0x2e] + ldr r0, _0810B024 + str r0, [r4, #0x1c] + ldr r1, _0810B028 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810B020: .4byte 0x020380BE +_0810B024: .4byte 0x080A5D79 +_0810B028: .4byte 0x080A34C5 + thumb_func_end sub_0810AFAC + + thumb_func_start sub_0810B02C +sub_0810B02C: @ 0x0810B02C + push {r4, r5, r6, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r6, _0810B074 + ldrb r0, [r6] + movs r1, #0 + bl GetBattlerSpriteCoord + ldr r1, _0810B078 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + adds r4, r4, r1 + lsls r0, r0, #0x18 + ldr r5, _0810B07C + lsrs r0, r0, #0x18 + ldrh r1, [r5] + adds r0, r0, r1 + strh r0, [r4, #8] + ldrb r0, [r6] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r5, #2] + adds r0, r0, r1 + strh r0, [r4, #0xa] + ldrh r0, [r5, #4] + strh r0, [r4, #0xc] + ldr r0, _0810B080 + str r0, [r4] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0810B074: .4byte 0x020380D7 +_0810B078: .4byte 0x03005B60 +_0810B07C: .4byte 0x020380BE +_0810B080: .4byte 0x0810B085 + thumb_func_end sub_0810B02C + + thumb_func_start sub_0810B084 +sub_0810B084: @ 0x0810B084 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + movs r5, #0 + movs r7, #0 + ldr r1, _0810B0C4 + lsls r0, r0, #2 + add r0, sb + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r2, [r0, #0xc] + str r2, [sp] + ldrh r4, [r0, #8] + ldrh r6, [r0, #0xa] + movs r3, #0xc + ldrsh r0, [r0, r3] + mov sl, r1 + cmp r0, #0 + bne _0810B0C8 + movs r0, #0 + mov r8, r0 + movs r2, #1 + movs r1, #0x10 + mov ip, r1 + b _0810B0D2 + .align 2, 0 +_0810B0C4: .4byte 0x03005B60 +_0810B0C8: + movs r2, #0x10 + mov ip, r2 + movs r3, #8 + mov r8, r3 + movs r2, #4 +_0810B0D2: + mov r0, sb + lsls r1, r0, #2 + adds r0, r1, r0 + lsls r0, r0, #3 + add r0, sl + movs r3, #0x1c + ldrsh r0, [r0, r3] + mov sl, r1 + cmp r0, #0xa + bhi _0810B1C8 + lsls r0, r0, #2 + ldr r1, _0810B0F0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0810B0F0: .4byte 0x0810B0F4 +_0810B0F4: @ jump table + .4byte _0810B120 @ case 0 + .4byte _0810B1C8 @ case 1 + .4byte _0810B134 @ case 2 + .4byte _0810B1C8 @ case 3 + .4byte _0810B154 @ case 4 + .4byte _0810B1C8 @ case 5 + .4byte _0810B16A @ case 6 + .4byte _0810B1C8 @ case 7 + .4byte _0810B18C @ case 8 + .4byte _0810B1C8 @ case 9 + .4byte _0810B1C0 @ case 10 +_0810B120: + ldr r0, _0810B130 + lsls r1, r4, #0x10 + asrs r1, r1, #0x10 + lsls r2, r6, #0x10 + asrs r2, r2, #0x10 + mov r4, ip + lsls r3, r4, #0x10 + b _0810B1A2 + .align 2, 0 +_0810B130: .4byte 0x0857140C +_0810B134: + mov r0, ip + lsls r3, r0, #0x11 + mov r1, r8 + adds r0, r1, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + ldr r0, _0810B150 + lsls r1, r4, #0x10 + asrs r1, r1, #0x10 + lsls r2, r6, #0x10 + asrs r2, r2, #0x10 + b _0810B1A2 + .align 2, 0 +_0810B150: .4byte 0x0857140C +_0810B154: + mov r3, ip + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + lsls r3, r0, #1 + adds r3, r3, r0 + lsls r0, r2, #1 + add r0, r8 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + b _0810B196 +_0810B16A: + mov r0, ip + lsls r3, r0, #0x12 + lsls r0, r2, #1 + adds r0, r0, r2 + add r0, r8 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + ldr r0, _0810B188 + lsls r1, r4, #0x10 + asrs r1, r1, #0x10 + lsls r2, r6, #0x10 + asrs r2, r2, #0x10 + b _0810B1A2 + .align 2, 0 +_0810B188: .4byte 0x0857140C +_0810B18C: + mov r1, ip + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + lsls r3, r0, #2 + adds r3, r3, r0 +_0810B196: + ldr r0, _0810B1BC + lsls r1, r4, #0x10 + asrs r1, r1, #0x10 + lsls r2, r6, #0x10 + asrs r2, r2, #0x10 + lsls r3, r3, #0x10 +_0810B1A2: + asrs r3, r3, #0x10 + adds r2, r2, r3 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + movs r3, #2 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + b _0810B1C8 + .align 2, 0 +_0810B1BC: .4byte 0x0857140C +_0810B1C0: + mov r0, sb + bl DestroyAnimVisualTask + b _0810B20C +_0810B1C8: + cmp r7, #0 + beq _0810B1FC + ldr r4, _0810B21C + lsls r3, r5, #4 + adds r3, r3, r5 + lsls r3, r3, #2 + adds r0, r3, r4 + ldrh r5, [r0, #4] + lsls r2, r5, #0x16 + lsrs r2, r2, #0x16 + add r2, r8 + ldr r6, _0810B220 + adds r1, r6, #0 + ands r2, r1 + ldr r1, _0810B224 + ands r1, r5 + orrs r1, r2 + strh r1, [r0, #4] + mov r1, sp + ldrh r1, [r1] + strh r1, [r0, #0x2e] + adds r4, #0x1c + adds r3, r3, r4 + ldr r1, [r3] + bl _call_via_r1 +_0810B1FC: + ldr r0, _0810B228 + mov r1, sl + add r1, sb + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x1c] + adds r0, #1 + strh r0, [r1, #0x1c] +_0810B20C: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0810B21C: .4byte 0x020205AC +_0810B220: .4byte 0x000003FF +_0810B224: .4byte 0xFFFFFC00 +_0810B228: .4byte 0x03005B60 + thumb_func_end sub_0810B084 + + thumb_func_start sub_0810B22C +sub_0810B22C: @ 0x0810B22C + push {lr} + adds r3, r0, #0 + movs r1, #0x2e + ldrsh r0, [r3, r1] + cmp r0, #0 + bne _0810B24E + ldrb r1, [r3, #1] + movs r2, #0x3f + adds r0, r2, #0 + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r3, #1] + ldrb r0, [r3, #3] + ands r2, r0 + strb r2, [r3, #3] + b _0810B262 +_0810B24E: + ldrb r2, [r3, #1] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3, #1] + ldrb r0, [r3, #3] + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r3, #3] +_0810B262: + ldrh r0, [r3, #0x30] + adds r0, #1 + strh r0, [r3, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xf + bne _0810B276 + adds r0, r3, #0 + bl DestroySprite +_0810B276: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0810B22C + + thumb_func_start sub_0810B27C +sub_0810B27C: @ 0x0810B27C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r0, _0810B2E4 + ldrh r1, [r0] + ldrh r2, [r4, #0x20] + adds r1, r1, r2 + strh r1, [r4, #0x20] + ldrh r0, [r0, #2] + ldrh r3, [r4, #0x22] + adds r0, r0, r3 + strh r0, [r4, #0x22] + ldr r0, _0810B2E8 + adds r1, #0x20 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r7, #0x22 + ldrsh r2, [r4, r7] + adds r3, r4, #0 + adds r3, #0x43 + ldrb r3, [r3] + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _0810B2EC + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r6, r2, r3 + ldrh r5, [r6, #4] + lsls r1, r5, #0x16 + lsrs r1, r1, #0x16 + adds r1, #8 + ldr r7, _0810B2F0 + adds r0, r7, #0 + ands r1, r0 + ldr r0, _0810B2F4 + ands r0, r5 + orrs r0, r1 + strh r0, [r6, #4] + ldr r1, _0810B2F8 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r3, #0x1c + adds r2, r2, r3 + ldr r0, _0810B2FC + str r0, [r2] + str r0, [r4, #0x1c] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0810B2E4: .4byte 0x020380BE +_0810B2E8: .4byte 0x08571424 +_0810B2EC: .4byte 0x020205AC +_0810B2F0: .4byte 0x000003FF +_0810B2F4: .4byte 0xFFFFFC00 +_0810B2F8: .4byte 0x0203809E +_0810B2FC: .4byte 0x0810B301 + thumb_func_end sub_0810B27C + + thumb_func_start sub_0810B300 +sub_0810B300: @ 0x0810B300 + push {lr} + adds r3, r0, #0 + ldrh r0, [r3, #0x2e] + adds r0, #1 + strh r0, [r3, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + bne _0810B334 + movs r0, #0 + strh r0, [r3, #0x2e] + movs r0, #0x3e + adds r0, r0, r3 + mov ip, r0 + ldrb r2, [r0] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] +_0810B334: + ldrh r0, [r3, #0x30] + adds r0, #1 + strh r0, [r3, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x33 + bne _0810B348 + adds r0, r3, #0 + bl DestroyAnimSprite +_0810B348: + pop {r0} + bx r0 + thumb_func_end sub_0810B300 + + thumb_func_start sub_0810B34C +sub_0810B34C: @ 0x0810B34C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _0810B36C + adds r5, r1, r0 + ldr r0, _0810B370 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _0810B378 + ldr r4, _0810B374 + b _0810B37A + .align 2, 0 +_0810B36C: .4byte 0x03005B60 +_0810B370: .4byte 0x020380BE +_0810B374: .4byte 0x020380D6 +_0810B378: + ldr r4, _0810B3BC +_0810B37A: + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x24] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x26] + ldr r2, _0810B3C0 + ldrh r0, [r2, #2] + 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, #6] + strh r0, [r5, #0x1e] + strh r1, [r5, #0x20] + ldrh r0, [r2, #4] + strh r0, [r5, #0x22] + ldr r0, _0810B3C4 + str r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810B3BC: .4byte 0x020380D7 +_0810B3C0: .4byte 0x020380BE +_0810B3C4: .4byte 0x0810B3C9 + thumb_func_end sub_0810B34C + + thumb_func_start sub_0810B3C8 +sub_0810B3C8: @ 0x0810B3C8 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r2, r6, #0 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _0810B4B0 + adds r5, r0, r1 + movs r1, #0x14 + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _0810B4C8 + ldrh r0, [r5, #0x20] + adds r0, #1 + movs r7, #0 + strh r0, [r5, #0x20] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x22 + ldrsh r1, [r5, r2] + cmp r0, r1 + ble _0810B4D6 + strh r7, [r5, #0x20] + ldr r0, _0810B4B4 + movs r3, #0x24 + ldrsh r1, [r5, r3] + movs r3, #0x26 + ldrsh r2, [r5, r3] + movs r3, #2 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _0810B4D6 + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _0810B4B8 + adds r4, r4, r0 + ldr r1, _0810B4BC + movs r2, #0x1a + ldrsh r0, [r5, r2] + lsls r0, r0, #1 + adds r0, r0, r1 + movs r3, #0 + ldrsb r3, [r0, r3] + ldrh r0, [r4, #0x20] + adds r3, r3, r0 + strh r3, [r4, #0x20] + movs r2, #0x1a + ldrsh r0, [r5, r2] + lsls r0, r0, #1 + adds r1, #1 + adds r0, r0, r1 + movs r2, #0 + ldrsb r2, [r0, r2] + ldrh r0, [r4, #0x22] + adds r2, r2, r0 + strh r2, [r4, #0x22] + movs r1, #0x18 + ldrsh r0, [r5, r1] + lsls r1, r0, #2 + adds r1, r1, r0 + movs r0, #0x28 + subs r0, 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 InitAnimLinearTranslation + ldr r1, _0810B4C0 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _0810B4C4 + str r0, [r4, #0x1c] + ldrh r0, [r5, #0x1a] + adds r0, #1 + strh r0, [r5, #0x1a] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xf + ble _0810B480 + strh r7, [r5, #0x1a] +_0810B480: + ldrh r0, [r5, #0x1c] + adds r0, #1 + strh r0, [r5, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x1e + ldrsh r1, [r5, r2] + cmp r0, r1 + blt _0810B4A2 + strh r7, [r5, #0x1c] + ldrh r1, [r5, #0x18] + movs r3, #0x18 + ldrsh r0, [r5, r3] + cmp r0, #5 + bgt _0810B4A2 + adds r0, r1, #1 + strh r0, [r5, #0x18] +_0810B4A2: + ldrh r0, [r5, #0x16] + adds r0, #1 + strh r0, [r5, #0x16] + ldrh r0, [r5, #0x14] + subs r0, #1 + strh r0, [r5, #0x14] + b _0810B4D6 + .align 2, 0 +_0810B4B0: .4byte 0x03005B60 +_0810B4B4: .4byte 0x0857148C +_0810B4B8: .4byte 0x020205AC +_0810B4BC: .4byte 0x0857143C +_0810B4C0: .4byte 0x0810B511 +_0810B4C4: .4byte 0x080A60A1 +_0810B4C8: + movs r1, #0x16 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _0810B4D6 + adds r0, r2, #0 + bl DestroyAnimVisualTask +_0810B4D6: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_0810B3C8 + + thumb_func_start sub_0810B4DC +sub_0810B4DC: @ 0x0810B4DC + push {r4, lr} + adds r4, r0, #0 + bl AnimTranslateLinear + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810B504 + ldr r2, _0810B50C + movs r0, #0x38 + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrh r1, [r0, #0x16] + subs r1, #1 + strh r1, [r0, #0x16] + adds r0, r4, #0 + bl DestroySprite +_0810B504: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810B50C: .4byte 0x03005B60 + thumb_func_end sub_0810B4DC + + thumb_func_start sub_0810B510 +sub_0810B510: @ 0x0810B510 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl StartSpriteAnim + ldr r0, _0810B524 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810B524: .4byte 0x0810B4DD + thumb_func_end sub_0810B510 + + thumb_func_start sub_0810B528 +sub_0810B528: @ 0x0810B528 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0810B53C + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _0810B544 + ldr r4, _0810B540 + b _0810B546 + .align 2, 0 +_0810B53C: .4byte 0x020380BE +_0810B540: .4byte 0x020380D6 +_0810B544: + ldr r4, _0810B574 +_0810B546: + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + ldr r1, _0810B578 + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _0810B57C + str r0, [r5, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810B574: .4byte 0x020380D7 +_0810B578: .4byte 0x080A6015 +_0810B57C: .4byte 0x080A6085 + thumb_func_end sub_0810B528 + + thumb_func_start sub_0810B580 +sub_0810B580: @ 0x0810B580 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0810B594 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _0810B59C + ldr r4, _0810B598 + b _0810B59E + .align 2, 0 +_0810B594: .4byte 0x020380BE +_0810B598: .4byte 0x020380D6 +_0810B59C: + ldr r4, _0810B5D8 +_0810B59E: + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + ldr r1, _0810B5DC + ldrh r0, [r1, #2] + strh r0, [r5, #0x24] + ldrh r0, [r1, #4] + strh r0, [r5, #0x26] + ldr r1, _0810B5E0 + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _0810B5E4 + str r0, [r5, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810B5D8: .4byte 0x020380D7 +_0810B5DC: .4byte 0x020380BE +_0810B5E0: .4byte 0x080A34C5 +_0810B5E4: .4byte 0x080A60A1 + thumb_func_end sub_0810B580 + + thumb_func_start sub_0810B5E8 +sub_0810B5E8: @ 0x0810B5E8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #1 + bl StartSpriteAffineAnim + ldr r4, _0810B640 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + movs r0, #0 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x3a] + movs r0, #0x10 + strh r0, [r5, #0x3c] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0810B636 + movs r1, #0x3c + ldrsh r0, [r5, r1] + rsbs r0, r0, #0 + strh r0, [r5, #0x3c] +_0810B636: + ldr r0, _0810B644 + str r0, [r5, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810B640: .4byte 0x020380D6 +_0810B644: .4byte 0x0810B649 + thumb_func_end sub_0810B5E8 + + thumb_func_start sub_0810B648 +sub_0810B648: @ 0x0810B648 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0810B65A + cmp r0, #1 + beq _0810B670 + b _0810B6A0 +_0810B65A: + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x28 + ble _0810B6A0 + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + b _0810B6A0 +_0810B670: + ldrh r2, [r4, #0x3c] + ldrh r1, [r4, #0x20] + adds r0, r2, r1 + strh r0, [r4, #0x20] + ldr r3, _0810B6A8 + movs r0, #0x3a + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r0, #0x24] + adds r2, r2, r1 + strh r2, [r0, #0x24] + ldrh r0, [r4, #0x20] + adds r0, #0x50 + lsls r0, r0, #0x10 + movs r1, #0xc8 + lsls r1, r1, #0x11 + cmp r0, r1 + bls _0810B6A0 + adds r0, r4, #0 + bl DestroySpriteAndMatrix +_0810B6A0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810B6A8: .4byte 0x020205AC + thumb_func_end sub_0810B648 + + thumb_func_start sub_0810B6AC +sub_0810B6AC: @ 0x0810B6AC + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #3 + ldr r1, _0810B6D0 + adds r5, r0, r1 + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #1 + beq _0810B740 + cmp r0, #1 + bgt _0810B6D4 + cmp r0, #0 + beq _0810B6E0 + b _0810B810 + .align 2, 0 +_0810B6D0: .4byte 0x03005B60 +_0810B6D4: + cmp r0, #2 + beq _0810B79C + cmp r0, #3 + bne _0810B6DE + b _0810B7F0 +_0810B6DE: + b _0810B810 +_0810B6E0: + movs r0, #0 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r6, #0 + strh r0, [r5, #0x26] + ldr r4, _0810B714 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x24] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810B71C + ldr r0, _0810B718 + strh r0, [r5, #0x24] + movs r0, #2 + b _0810B722 + .align 2, 0 +_0810B714: .4byte 0x020380D6 +_0810B718: .4byte 0x0000FFE0 +_0810B71C: + movs r0, #0x20 + strh r0, [r5, #0x24] + ldr r0, _0810B738 +_0810B722: + strh r0, [r5, #0x22] + ldr r2, _0810B73C + movs r0, #0x26 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r5, #0x24] + strh r1, [r0, #0x24] + b _0810B7E2 + .align 2, 0 +_0810B738: .4byte 0x0000FFFE +_0810B73C: .4byte 0x020205AC +_0810B740: + ldrh r0, [r5, #0xa] + adds r0, #1 + strh r0, [r5, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _0810B810 + movs r0, #0 + strh r0, [r5, #0xa] + ldr r4, _0810B798 + movs r1, #0x26 + ldrsh r0, [r5, r1] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r4 + adds r2, #0x3e + ldrb r3, [r2] + lsls r0, r3, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrh r1, [r5, #0x24] + movs r2, #0x24 + ldrsh r0, [r5, r2] + cmp r0, #0 + beq _0810B7E2 + 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, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + strh r2, [r0, #0x24] + b _0810B810 + .align 2, 0 +_0810B798: .4byte 0x020205AC +_0810B79C: + ldrh r0, [r5, #0xa] + adds r0, #1 + strh r0, [r5, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _0810B810 + movs r0, #0 + strh r0, [r5, #0xa] + ldr r1, _0810B7EC + movs r2, #0x26 + ldrsh r0, [r5, r2] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r1 + adds r2, #0x3e + ldrb r3, [r2] + lsls r0, r3, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r5, #0xc] + adds r0, #1 + strh r0, [r5, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #8 + bne _0810B810 +_0810B7E2: + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + b _0810B810 + .align 2, 0 +_0810B7EC: .4byte 0x020205AC +_0810B7F0: + ldr r2, _0810B818 + movs r0, #0x26 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + adds r0, r3, #0 + bl DestroyAnimVisualTask +_0810B810: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0810B818: .4byte 0x020205AC + thumb_func_end sub_0810B6AC + + thumb_func_start sub_0810B81C +sub_0810B81C: @ 0x0810B81C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _0810B840 + adds r5, r0, r1 + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #1 + bne _0810B836 + b _0810B95C +_0810B836: + cmp r0, #1 + bgt _0810B844 + cmp r0, #0 + beq _0810B84C + b _0810B99E + .align 2, 0 +_0810B840: .4byte 0x03005B60 +_0810B844: + cmp r0, #2 + bne _0810B84A + b _0810B990 +_0810B84A: + b _0810B99E +_0810B84C: + ldr r4, _0810B88C + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + movs r2, #1 + rsbs r2, r2, #0 + adds r1, r2, #0 + cmp r0, #0 + bne _0810B862 + movs r1, #1 +_0810B862: + movs r6, #0 + strh r1, [r5, #0xa] + ldr r0, _0810B890 + movs r1, #0 + ldrsh r2, [r0, r1] + adds r3, r0, #0 + cmp r2, #0 + beq _0810B898 + cmp r2, #4 + beq _0810B8C0 + ldrh r1, [r3] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0810B8F8 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r5, #0xe] + ldr r0, _0810B894 + b _0810B900 + .align 2, 0 +_0810B88C: .4byte 0x020380D6 +_0810B890: .4byte 0x020380BE +_0810B894: .4byte 0x0000FFF0 +_0810B898: + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0xe] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x12] + movs r2, #0xa + ldrsh r0, [r5, r2] + lsls r0, r0, #7 + adds r0, #0x78 + strh r0, [r5, #0x10] + b _0810B936 +_0810B8C0: + movs r0, #0xa + ldrsh r1, [r5, r0] + lsls r1, r1, #7 + movs r0, #0x78 + subs r0, r0, r1 + strh r0, [r5, #0xe] + ldr r4, _0810B8F4 + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x12] + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0xa + ldrsh r1, [r5, r2] + lsls r1, r1, #5 + subs r0, r0, r1 + strh r0, [r5, #0x10] + b _0810B936 + .align 2, 0 +_0810B8F4: .4byte 0x020380D7 +_0810B8F8: + ldr r0, _0810B91C + strh r0, [r5, #0xe] + movs r0, #0x80 + lsls r0, r0, #1 +_0810B900: + strh r0, [r5, #0x10] + movs r1, #0xa + ldrsh r0, [r5, r1] + cmp r0, #1 + bne _0810B920 + movs r2, #0 + ldrsh r0, [r3, r2] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #1 + movs r0, #0x50 + subs r0, r0, r1 + strh r0, [r5, #0x12] + b _0810B936 + .align 2, 0 +_0810B91C: .4byte 0x0000FFF0 +_0810B920: + movs r0, #0 + ldrsh r1, [r3, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, 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] +_0810B936: + movs r2, #0xe + ldrsh r1, [r5, r2] + movs r2, #0x10 + ldrsh r0, [r5, r2] + cmp r1, r0 + bge _0810B94C + movs r1, #0 + movs r0, #1 + strh r0, [r5, #0xa] + strh r1, [r5, #0x14] + b _0810B988 +_0810B94C: + ldr r0, _0810B958 + strh r0, [r5, #0xa] + movs r0, #3 + strh r0, [r5, #0x14] + b _0810B988 + .align 2, 0 +_0810B958: .4byte 0x0000FFFF +_0810B95C: + ldrh r0, [r5, #0xc] + adds r0, #1 + strh r0, [r5, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + ble _0810B99E + movs r0, #0 + strh r0, [r5, #0xc] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0810B9A4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810B988 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0810B9A4 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810B99E +_0810B988: + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + b _0810B99E +_0810B990: + movs r1, #0x16 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _0810B99E + adds r0, r4, #0 + bl DestroyAnimVisualTask +_0810B99E: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_0810B81C + + thumb_func_start sub_0810B9A4 +sub_0810B9A4: @ 0x0810B9A4 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + ldr r0, _0810BA30 + movs r2, #0xe + ldrsh r1, [r4, r2] + movs r3, #0x12 + ldrsh r2, [r4, r3] + movs r3, #0x23 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x40 + beq _0810B9DA + ldr r1, _0810BA34 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + strh r5, [r0, #0x3a] + movs r1, #7 + strh r1, [r0, #0x3c] + ldrh r0, [r4, #0x16] + adds r0, #1 + strh r0, [r4, #0x16] +_0810B9DA: + ldrh r1, [r4, #0xa] + ldrh r5, [r4, #0x14] + adds r0, r1, r5 + strh r0, [r4, #0x14] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _0810B9EC + movs r0, #3 + strh r0, [r4, #0x14] +_0810B9EC: + movs r2, #0x14 + ldrsh r0, [r4, r2] + cmp r0, #3 + ble _0810B9F8 + movs r0, #0 + strh r0, [r4, #0x14] +_0810B9F8: + movs r3, #0xa + ldrsh r0, [r4, r3] + lsls r0, r0, #4 + ldrh r5, [r4, #0xe] + adds r2, r0, r5 + strh r2, [r4, #0xe] + lsls r0, r1, #0x10 + asrs r3, r0, #0x10 + cmp r3, #1 + bne _0810BA18 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + movs r5, #0x10 + ldrsh r1, [r4, r5] + cmp r0, r1 + bge _0810BA2C +_0810BA18: + movs r0, #1 + rsbs r0, r0, #0 + cmp r3, r0 + bne _0810BA38 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x10 + ldrsh r1, [r4, r2] + cmp r0, r1 + bgt _0810BA38 +_0810BA2C: + movs r0, #1 + b _0810BA3A + .align 2, 0 +_0810BA30: .4byte 0x085715E4 +_0810BA34: .4byte 0x020205AC +_0810BA38: + movs r0, #0 +_0810BA3A: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_0810B9A4 + + thumb_func_start sub_0810BA40 +sub_0810BA40: @ 0x0810BA40 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xc + ble _0810BA80 + ldr r3, _0810BA88 + movs r0, #0x3c + ldrsh r1, [r4, r0] + lsls r1, r1, #1 + movs r0, #0x3a + ldrsh r2, [r4, r0] + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r3, #8 + adds r1, r1, r3 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + ldrb r0, [r4, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + adds r0, r4, #0 + bl DestroySprite +_0810BA80: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810BA88: .4byte 0x03005B60 + thumb_func_end sub_0810BA40 + + thumb_func_start sub_0810BA8C +sub_0810BA8C: @ 0x0810BA8C + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _0810BA9E + cmp r0, #1 + beq _0810BAD0 + b _0810BAE4 +_0810BA9E: + ldr r4, _0810BACC + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + adds r0, r5, #0 + movs r1, #2 + bl StartSpriteAffineAnim + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] + b _0810BAE4 + .align 2, 0 +_0810BACC: .4byte 0x020380D6 +_0810BAD0: + adds r0, r5, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0810BAE4 + adds r0, r5, #0 + bl DestroySpriteAndMatrix +_0810BAE4: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0810BA8C + + thumb_func_start sub_0810BAEC +sub_0810BAEC: @ 0x0810BAEC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _0810BB10 + adds r5, r0, r1 + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #4 + bls _0810BB06 + b _0810BC78 +_0810BB06: + lsls r0, r0, #2 + ldr r1, _0810BB14 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0810BB10: .4byte 0x03005B60 +_0810BB14: .4byte 0x0810BB18 +_0810BB18: @ jump table + .4byte _0810BB2C @ case 0 + .4byte _0810BBBC @ case 1 + .4byte _0810BBF8 @ case 2 + .4byte _0810BC54 @ case 3 + .4byte _0810BC64 @ case 4 +_0810BB2C: + ldr r4, _0810BBB0 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x14] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x16] + movs r0, #4 + strh r0, [r5, #0x18] + ldr r0, _0810BBB4 + ldrb r0, [r0] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x1c] + movs r2, #0x1c + ldrsh r0, [r5, r2] + movs r2, #0x14 + ldrsh r1, [r5, r2] + subs r0, r0, r1 + movs r1, #5 + bl __divsi3 + strh r0, [r5, #0x1a] + movs r0, #7 + strh r0, [r5, #0x10] + ldr r0, _0810BBB8 + strh r0, [r5, #0x12] + movs r0, #0xc + strh r0, [r5, #0x1e] + subs r0, #0x4c + bl BattleAnimAdjustPanning + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r5, #0x20] + movs r0, #0x3f + bl BattleAnimAdjustPanning + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + 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, r0, r1 + movs r1, #3 + bl __divsi3 + strh r0, [r5, #0x26] + ldrh r0, [r5, #8] + adds r0, #1 + b _0810BC76 + .align 2, 0 +_0810BBB0: .4byte 0x020380D6 +_0810BBB4: .4byte 0x020380D7 +_0810BBB8: .4byte 0x0000FFFF +_0810BBBC: + ldrh r0, [r5, #0xa] + adds r0, #1 + strh r0, [r5, #0xa] + lsls r0, r0, #0x10 + cmp r0, #0 + ble _0810BBEC + movs r0, #0 + strh r0, [r5, #0xa] + adds r0, r5, #0 + adds r1, r2, #0 + bl sub_0810BC80 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810BBEC + movs r1, #0xc + ldrsh r0, [r5, r1] + cmp r0, #5 + bne _0810BBE6 + movs r0, #3 + b _0810BBEA +_0810BBE6: + ldrh r0, [r5, #8] + adds r0, #1 +_0810BBEA: + strh r0, [r5, #8] +_0810BBEC: + ldrh r1, [r5, #0x1e] + movs r2, #0x1e + ldrsh r0, [r5, r2] + cmp r0, #0 + beq _0810BC78 + b _0810BC6E +_0810BBF8: + ldrh r1, [r5, #0x1e] + movs r2, #0x1e + ldrsh r0, [r5, r2] + cmp r0, #0 + beq _0810BC06 + subs r0, r1, #1 + strh r0, [r5, #0x1e] +_0810BC06: + ldrh r0, [r5, #0xa] + adds r0, #1 + movs r3, #0 + strh r0, [r5, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _0810BC78 + strh r3, [r5, #0xa] + ldrh r1, [r5, #0xc] + movs r2, #1 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0810BC32 + movs r0, #4 + strh r0, [r5, #0x16] + movs r0, #0x44 + strh r0, [r5, #0x18] + strh r3, [r5, #0x10] + strh r2, [r5, #0x12] + b _0810BC42 +_0810BC32: + movs r0, #0x44 + strh r0, [r5, #0x16] + movs r0, #4 + strh r0, [r5, #0x18] + movs r0, #7 + strh r0, [r5, #0x10] + ldr r0, _0810BC50 + strh r0, [r5, #0x12] +_0810BC42: + movs r1, #0x1e + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _0810BC74 + movs r0, #4 + b _0810BC76 + .align 2, 0 +_0810BC50: .4byte 0x0000FFFF +_0810BC54: + movs r1, #0xe + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _0810BC78 + adds r0, r2, #0 + bl DestroyAnimVisualTask + b _0810BC78 +_0810BC64: + ldrh r1, [r5, #0x1e] + movs r2, #0x1e + ldrsh r0, [r5, r2] + cmp r0, #0 + beq _0810BC74 +_0810BC6E: + subs r0, r1, #1 + strh r0, [r5, #0x1e] + b _0810BC78 +_0810BC74: + movs r0, #1 +_0810BC76: + strh r0, [r5, #8] +_0810BC78: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0810BAEC + + thumb_func_start sub_0810BC80 +sub_0810BC80: @ 0x0810BC80 + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + ldr r0, _0810BD48 + movs r2, #0x14 + ldrsh r1, [r4, r2] + movs r3, #0x16 + ldrsh r2, [r4, r3] + movs r3, #0x23 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x40 + beq _0810BCEC + ldr r1, _0810BD4C + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r3, r0, r1 + ldrh r2, [r3, #4] + lsls r1, r2, #0x16 + lsrs r1, r1, #0x16 + ldrh r6, [r4, #0x10] + adds r1, r1, r6 + ldr r6, _0810BD50 + adds r0, r6, #0 + ands r1, r0 + ldr r0, _0810BD54 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #4] + ldrh r0, [r4, #0x12] + ldrh r1, [r4, #0x10] + adds r0, r0, r1 + strh r0, [r4, #0x10] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _0810BCD4 + movs r0, #7 + strh r0, [r4, #0x10] +_0810BCD4: + movs r2, #0x10 + ldrsh r0, [r4, r2] + cmp r0, #7 + ble _0810BCE0 + movs r0, #0 + strh r0, [r4, #0x10] +_0810BCE0: + strh r5, [r3, #0x3a] + movs r0, #3 + strh r0, [r3, #0x3c] + ldrh r0, [r4, #0xe] + adds r0, #1 + strh r0, [r4, #0xe] +_0810BCEC: + movs r3, #0x10 + ldrsh r0, [r4, r3] + cmp r0, #0 + bne _0810BD0E + movs r5, #0x12 + ldrsh r0, [r4, r5] + cmp r0, #0 + ble _0810BD0E + ldrh r1, [r4, #0x26] + ldrh r6, [r4, #0x24] + adds r1, r1, r6 + strh r1, [r4, #0x24] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r0, #0x76 + bl PlaySE12WithPanning +_0810BD0E: + movs r0, #0x12 + ldrsh r3, [r4, r0] + ldrh r2, [r4, #0x16] + cmp r3, #0 + bge _0810BD24 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + movs r5, #0x18 + ldrsh r1, [r4, r5] + cmp r0, r1 + ble _0810BD34 +_0810BD24: + cmp r3, #0 + ble _0810BD58 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + movs r6, #0x18 + ldrsh r1, [r4, r6] + cmp r0, r1 + blt _0810BD58 +_0810BD34: + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + ldrh r0, [r4, #0x1a] + ldrh r1, [r4, #0x14] + adds r0, r0, r1 + strh r0, [r4, #0x14] + movs r0, #1 + b _0810BD64 + .align 2, 0 +_0810BD48: .4byte 0x08571614 +_0810BD4C: .4byte 0x020205AC +_0810BD50: .4byte 0x000003FF +_0810BD54: .4byte 0xFFFFFC00 +_0810BD58: + movs r3, #0x12 + ldrsh r0, [r4, r3] + lsls r0, r0, #3 + adds r0, r2, r0 + strh r0, [r4, #0x16] + movs r0, #0 +_0810BD64: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0810BC80 + + thumb_func_start sub_0810BD6C +sub_0810BD6C: @ 0x0810BD6C + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xc + ble _0810BDA2 + ldr r3, _0810BDA8 + movs r0, #0x3c + ldrsh r1, [r4, r0] + lsls r1, r1, #1 + movs r0, #0x3a + ldrsh r2, [r4, r0] + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r3, #8 + adds r1, r1, r3 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + adds r0, r4, #0 + bl DestroySprite +_0810BDA2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810BDA8: .4byte 0x03005B60 + thumb_func_end sub_0810BD6C + + thumb_func_start sub_0810BDAC +sub_0810BDAC: @ 0x0810BDAC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _0810BDD0 + adds r5, r0, r1 + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #1 + beq _0810BE28 + cmp r0, #1 + bgt _0810BDD4 + cmp r0, #0 + beq _0810BDDA + b _0810BE5E + .align 2, 0 +_0810BDD0: .4byte 0x03005B60 +_0810BDD4: + cmp r0, #2 + beq _0810BE50 + b _0810BE5E +_0810BDDA: + ldr r0, _0810BE24 + ldrb r0, [r0] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #0x20 + strh r0, [r5, #0x26] + strh r0, [r5, #0x24] + cmp r0, #0x10 + ble _0810BE04 + adds r2, r0, #0 +_0810BDF4: + adds r1, r2, #0 + subs r1, #0x20 + adds r2, r1, #0 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x10 + bgt _0810BDF4 + strh r1, [r5, #0x24] +_0810BE04: + ldr r4, _0810BE24 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + ldrb r0, [r4] + bl GetBattlerSpriteSubpriority + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, #2 + strh r0, [r5, #0x20] + b _0810BE48 + .align 2, 0 +_0810BE24: .4byte 0x020380D7 +_0810BE28: + ldrh r0, [r5, #0xa] + adds r0, #1 + strh r0, [r5, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _0810BE5E + movs r0, #0 + strh r0, [r5, #0xa] + adds r0, r5, #0 + adds r1, r2, #0 + bl sub_0810BE64 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810BE5E +_0810BE48: + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + b _0810BE5E +_0810BE50: + movs r1, #0x1c + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _0810BE5E + adds r0, r2, #0 + bl DestroyAnimVisualTask +_0810BE5E: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_0810BDAC + + thumb_func_start sub_0810BE64 +sub_0810BE64: @ 0x0810BE64 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + ldr r0, _0810BEC0 + movs r2, #0x22 + ldrsh r1, [r4, r2] + movs r3, #0x24 + ldrsh r2, [r4, r3] + ldrh r3, [r4, #0x20] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x40 + beq _0810BEA8 + ldr r3, _0810BEC4 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r3, #0 + adds r1, #0x1c + adds r1, r0, r1 + ldr r2, _0810BEC8 + str r2, [r1] + adds r0, r0, r3 + strh r5, [r0, #0x3a] + movs r1, #0xa + strh r1, [r0, #0x3c] + ldrh r0, [r4, #0x1c] + adds r0, #1 + strh r0, [r4, #0x1c] +_0810BEA8: + ldrh r2, [r4, #0x24] + movs r0, #0x24 + ldrsh r1, [r4, r0] + movs r3, #0x26 + ldrsh r0, [r4, r3] + cmp r1, r0 + bge _0810BECC + adds r0, r2, #0 + adds r0, #0x20 + strh r0, [r4, #0x24] + movs r0, #0 + b _0810BECE + .align 2, 0 +_0810BEC0: .4byte 0x085712A4 +_0810BEC4: .4byte 0x020205AC +_0810BEC8: .4byte 0x0810BED5 +_0810BECC: + movs r0, #1 +_0810BECE: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_0810BE64 + + thumb_func_start sub_0810BED4 +sub_0810BED4: @ 0x0810BED4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0810BF08 + ldr r3, _0810BF10 + movs r0, #0x3c + ldrsh r1, [r4, r0] + lsls r1, r1, #1 + movs r0, #0x3a + ldrsh r2, [r4, r0] + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r3, #8 + adds r1, r1, r3 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + adds r0, r4, #0 + bl DestroySprite +_0810BF08: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810BF10: .4byte 0x03005B60 + thumb_func_end sub_0810BED4 + diff --git a/asm/ereader_helpers.s b/asm/ereader_helpers.s new file mode 100644 index 0000000..2267033 --- /dev/null +++ b/asm/ereader_helpers.s @@ -0,0 +1,1304 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_081D2F00 +sub_081D2F00: @ 0x081D2F00 + push {lr} + ldr r0, _081D2F20 + ldr r0, [r0] + ldr r1, _081D2F24 + adds r0, r0, r1 + ldrb r1, [r0] + adds r2, r1, #1 + adds r0, r2, #0 + asrs r0, r0, #8 + lsls r0, r0, #8 + subs r0, r2, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_081D2F20: .4byte 0x03005AEC +_081D2F24: .4byte 0x00003D6D + thumb_func_end sub_081D2F00 + + thumb_func_start Struct_Unk81D38FC_ValidateChecksum +Struct_Unk81D38FC_ValidateChecksum: @ 0x081D2F28 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #0x9b + lsls r5, r5, #2 + adds r1, r5, #0 + bl CalcByteArraySum + adds r4, r4, r5 + ldr r1, [r4] + cmp r0, r1 + bne _081D2F42 + movs r0, #1 + b _081D2F44 +_081D2F42: + movs r0, #0 +_081D2F44: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end Struct_Unk81D38FC_ValidateChecksum + + thumb_func_start EReader_IsReceivedDataValid +EReader_IsReceivedDataValid: @ 0x081D2F4C + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + ldrb r5, [r7] + subs r0, r5, #1 + cmp r0, #7 + bhi _081D2F94 + movs r6, #0 + cmp r6, r5 + bhs _081D2F78 + adds r4, r7, #0 + adds r4, #8 +_081D2F62: + adds r0, r4, #0 + bl Struct_Unk81D38FC_ValidateChecksum + cmp r0, #0 + beq _081D2F94 + movs r0, #0x9c + lsls r0, r0, #2 + adds r4, r4, r0 + adds r6, #1 + cmp r6, r5 + blo _081D2F62 +_081D2F78: + adds r0, r7, #0 + adds r0, #8 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + subs r1, r1, r5 + lsls r1, r1, #4 + bl CalcByteArraySum + ldr r1, [r7, #4] + cmp r0, r1 + bne _081D2F94 + movs r0, #1 + b _081D2F96 +_081D2F94: + movs r0, #0 +_081D2F96: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end EReader_IsReceivedDataValid + + thumb_func_start TrainerHill_VerifyChecksum +TrainerHill_VerifyChecksum: @ 0x081D2F9C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4] + subs r0, #1 + cmp r0, #7 + bhi _081D2FBE + adds r0, r4, #0 + adds r0, #8 + movs r1, #0xec + lsls r1, r1, #4 + bl CalcByteArraySum + ldr r1, [r4, #4] + cmp r0, r1 + bne _081D2FBE + movs r0, #1 + b _081D2FC0 +_081D2FBE: + movs r0, #0 +_081D2FC0: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TrainerHill_VerifyChecksum + + thumb_func_start TryWriteTrainerHill_r +TryWriteTrainerHill_r: @ 0x081D2FC8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov r8, r0 + mov sb, r1 + ldrh r0, [r0, #2] + cmp r0, #0 + beq _081D2FEA + ldr r0, _081D3080 + ldr r2, _081D3084 + movs r1, #0xe1 + movs r3, #1 + bl AGBAssert +_081D2FEA: + mov r1, r8 + ldrb r0, [r1, #1] + cmp r0, #0 + beq _081D2FFE + ldr r0, _081D3080 + ldr r2, _081D3088 + movs r1, #0xe2 + movs r3, #1 + bl AGBAssert +_081D2FFE: + movs r2, #0x80 + lsls r2, r2, #5 + mov r0, sb + movs r1, #0 + bl memset + mov r1, r8 + ldrb r0, [r1] + mov r1, sb + strb r0, [r1] + bl sub_081D2F00 + mov r1, sb + strb r0, [r1, #1] + mov r1, r8 + ldrb r0, [r1] + adds r0, #1 + asrs r0, r0, #1 + mov r1, sb + strb r0, [r1, #2] + movs r5, #0 + adds r1, #8 + str r1, [sp] + mov r0, r8 + ldrb r0, [r0] + cmp r5, r0 + bge _081D30C6 + mov r7, r8 + adds r7, #0xc + mov r6, r8 + movs r1, #0xa8 + lsls r1, r1, #1 + add r1, r8 + mov sl, r1 +_081D3042: + movs r0, #1 + ands r0, r5 + cmp r0, #0 + bne _081D308C + lsrs r0, r5, #0x1f + adds r0, r5, r0 + asrs r0, r0, #1 + lsls r4, r0, #4 + subs r4, r4, r0 + lsls r4, r4, #2 + subs r4, r4, r0 + lsls r4, r4, #4 + add r4, sb + ldrb r0, [r6, #8] + strb r0, [r4, #8] + movs r1, #0xa5 + lsls r1, r1, #2 + adds r0, r4, r1 + mov r1, sl + movs r2, #0x92 + lsls r2, r2, #1 + bl memcpy + adds r4, #0xc + adds r0, r4, #0 + adds r1, r7, #0 + movs r2, #0xa2 + lsls r2, r2, #1 + bl memcpy + b _081D30B2 + .align 2, 0 +_081D3080: .4byte 0x085FAEF4 +_081D3084: .4byte 0x085FAF04 +_081D3088: .4byte 0x085FAF18 +_081D308C: + lsrs r1, r5, #0x1f + adds r1, r5, r1 + asrs r1, r1, #1 + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #2 + subs r0, r0, r1 + lsls r0, r0, #4 + add r0, sb + ldrb r1, [r6, #8] + strb r1, [r0, #9] + movs r1, #0xa8 + lsls r1, r1, #1 + adds r0, r0, r1 + adds r1, r7, #0 + movs r2, #0xa2 + lsls r2, r2, #1 + bl memcpy +_081D30B2: + movs r0, #0x9c + lsls r0, r0, #2 + adds r7, r7, r0 + adds r6, r6, r0 + add sl, r0 + adds r5, #1 + mov r1, r8 + ldrb r1, [r1] + cmp r5, r1 + blt _081D3042 +_081D30C6: + movs r0, #1 + ands r0, r5 + cmp r0, #0 + beq _081D30FC + lsrs r2, r5, #0x1f + adds r2, r5, r2 + asrs r2, r2, #1 + lsls r0, r2, #4 + subs r0, r0, r2 + lsls r0, r0, #2 + subs r0, r0, r2 + lsls r0, r0, #4 + add r0, sb + movs r1, #0xa8 + lsls r1, r1, #1 + adds r0, r0, r1 + ldr r3, _081D3118 + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r3 + movs r2, #0xa2 + lsls r2, r2, #1 + bl memcpy +_081D30FC: + movs r1, #0xec + lsls r1, r1, #4 + ldr r0, [sp] + bl CalcByteArraySum + mov r1, sb + str r0, [r1, #4] + movs r0, #0x1e + bl TryWriteSpecialSaveSection + cmp r0, #1 + bne _081D311C + movs r0, #1 + b _081D311E + .align 2, 0 +_081D3118: .4byte 0x085FA9E4 +_081D311C: + movs r0, #0 +_081D311E: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TryWriteTrainerHill_r + + thumb_func_start TryWriteTrainerHill +TryWriteTrainerHill: @ 0x081D3130 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x80 + lsls r0, r0, #5 + bl AllocZeroed + adds r5, r0, #0 + adds r0, r4, #0 + adds r1, r5, #0 + bl TryWriteTrainerHill_r + adds r4, r0, #0 + adds r0, r5, #0 + bl Free + adds r0, r4, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TryWriteTrainerHill + + thumb_func_start TryReadTrainerHill_r +TryReadTrainerHill_r: @ 0x081D3158 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + movs r0, #0x1e + bl TryReadSpecialSaveSection + cmp r0, #1 + bne _081D3184 + ldr r2, _081D3180 + adds r0, r5, #0 + adds r1, r4, #0 + bl memcpy + adds r0, r5, #0 + bl TrainerHill_VerifyChecksum + cmp r0, #0 + beq _081D3184 + movs r0, #1 + b _081D3186 + .align 2, 0 +_081D3180: .4byte 0x00000EC8 +_081D3184: + movs r0, #0 +_081D3186: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end TryReadTrainerHill_r + + thumb_func_start TryReadTrainerHill +TryReadTrainerHill: @ 0x081D318C + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x80 + lsls r0, r0, #5 + bl AllocZeroed + adds r5, r0, #0 + adds r0, r4, #0 + adds r1, r5, #0 + bl TryReadTrainerHill_r + adds r4, r0, #0 + adds r0, r5, #0 + bl Free + adds r0, r4, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TryReadTrainerHill + + thumb_func_start ReadTrainerHillAndValidate +ReadTrainerHillAndValidate: @ 0x081D31B4 + push {r4, r5, lr} + movs r0, #0x80 + lsls r0, r0, #5 + bl AllocZeroed + adds r4, r0, #0 + bl TryReadTrainerHill + adds r5, r0, #0 + adds r0, r4, #0 + bl Free + adds r0, r5, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end ReadTrainerHillAndValidate + + thumb_func_start unref_sub_81D3B54 +unref_sub_81D3B54: @ 0x081D31D4 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r6, r0, #0 + adds r5, r1, #0 + bl sub_081D3820 + movs r7, #2 + ldr r4, _081D3214 +_081D31E4: + bl sub_081D37F0 + ldr r0, _081D3218 + ldrh r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081D31F6 + strb r7, [r4] +_081D31F6: + movs r0, #1 + adds r1, r6, #0 + adds r2, r5, #0 + movs r3, #0 + bl sub_081D33F0 + adds r1, r0, #0 + ldr r0, _081D321C + strh r1, [r0] + movs r0, #0x13 + ands r0, r1 + cmp r0, #0x10 + bne _081D3220 + movs r4, #0 + b _081D3242 + .align 2, 0 +_081D3214: .4byte 0x030031E4 +_081D3218: .4byte 0x030012DA +_081D321C: .4byte 0x030012DC +_081D3220: + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _081D322C + movs r4, #1 + b _081D3242 +_081D322C: + movs r0, #4 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + bne _081D3240 + strb r0, [r4] + bl VBlankIntrWait + b _081D31E4 +_081D3240: + movs r4, #2 +_081D3242: + movs r0, #0 + str r0, [sp] + ldr r1, _081D3260 + ldr r2, _081D3264 + mov r0, sp + bl CpuSet + bl sub_081D3874 + adds r0, r4, #0 + add sp, #4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081D3260: .4byte 0x030012C0 +_081D3264: .4byte 0x05000006 + thumb_func_end unref_sub_81D3B54 + + thumb_func_start unref_sub_81D3BE8 +unref_sub_81D3BE8: @ 0x081D3268 + push {r4, r5, r6, lr} + sub sp, #4 + adds r5, r0, #0 + bl sub_081D3820 + movs r6, #2 + ldr r4, _081D32A8 +_081D3276: + bl sub_081D37F0 + ldr r0, _081D32AC + ldrh r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081D3288 + strb r6, [r4] +_081D3288: + movs r0, #0 + movs r1, #0 + movs r2, #0 + adds r3, r5, #0 + bl sub_081D33F0 + adds r1, r0, #0 + ldr r0, _081D32B0 + strh r1, [r0] + movs r0, #0x13 + ands r0, r1 + cmp r0, #0x10 + bne _081D32B4 + movs r4, #0 + b _081D32D6 + .align 2, 0 +_081D32A8: .4byte 0x030031E4 +_081D32AC: .4byte 0x030012DA +_081D32B0: .4byte 0x030012DC +_081D32B4: + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _081D32C0 + movs r4, #1 + b _081D32D6 +_081D32C0: + movs r0, #4 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + bne _081D32D4 + strb r0, [r4] + bl VBlankIntrWait + b _081D3276 +_081D32D4: + movs r4, #2 +_081D32D6: + movs r0, #0 + str r0, [sp] + ldr r1, _081D32F4 + ldr r2, _081D32F8 + mov r0, sp + bl CpuSet + bl sub_081D3874 + adds r0, r4, #0 + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_081D32F4: .4byte 0x030012C0 +_081D32F8: .4byte 0x05000006 + thumb_func_end unref_sub_81D3BE8 + + thumb_func_start sub_081D32FC +sub_081D32FC: @ 0x081D32FC + push {r4, lr} + ldr r4, _081D3328 + movs r3, #0 + strh r3, [r4] + ldr r2, _081D332C + ldrh r1, [r2] + ldr r0, _081D3330 + ands r0, r1 + strh r0, [r2] + movs r0, #1 + strh r0, [r4] + ldr r0, _081D3334 + strh r3, [r0] + subs r0, #0x1a + strh r3, [r0] + ldr r1, _081D3338 + movs r0, #0xc0 + strh r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D3328: .4byte 0x04000208 +_081D332C: .4byte 0x04000200 +_081D3330: .4byte 0x0000FF3F +_081D3334: .4byte 0x04000128 +_081D3338: .4byte 0x04000202 + thumb_func_end sub_081D32FC + + thumb_func_start sub_081D333C +sub_081D333C: @ 0x081D333C + push {r4, r5, r6, r7, lr} + sub sp, #4 + ldr r5, _081D3394 + movs r4, #0 + strh r4, [r5] + ldr r3, _081D3398 + ldrh r1, [r3] + ldr r0, _081D339C + ands r0, r1 + strh r0, [r3] + movs r6, #1 + strh r6, [r5] + ldr r0, _081D33A0 + strh r4, [r0] + ldr r2, _081D33A4 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r1, #0 + strh r0, [r2] + ldrh r0, [r2] + ldr r7, _081D33A8 + adds r1, r7, #0 + orrs r0, r1 + strh r0, [r2] + strh r4, [r5] + ldrh r0, [r3] + movs r1, #0x80 + orrs r0, r1 + strh r0, [r3] + strh r6, [r5] + ldr r1, _081D33AC + ldrb r0, [r1, #1] + cmp r0, #0 + bne _081D338A + str r0, [sp] + ldr r2, _081D33B0 + mov r0, sp + bl CpuSet +_081D338A: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D3394: .4byte 0x04000208 +_081D3398: .4byte 0x04000200 +_081D339C: .4byte 0x0000FF3F +_081D33A0: .4byte 0x04000134 +_081D33A4: .4byte 0x04000128 +_081D33A8: .4byte 0x00004003 +_081D33AC: .4byte 0x030012C0 +_081D33B0: .4byte 0x05000006 + thumb_func_end sub_081D333C + + thumb_func_start sub_081D33B4 +sub_081D33B4: @ 0x081D33B4 + ldr r0, _081D33DC + movs r3, #0 + strh r3, [r0] + ldr r2, _081D33E0 + movs r1, #0xa0 + lsls r1, r1, #7 + adds r0, r1, #0 + strh r0, [r2] + ldrh r0, [r2] + movs r1, #8 + orrs r0, r1 + strh r0, [r2] + ldr r0, _081D33E4 + strb r3, [r0] + ldr r0, _081D33E8 + strh r3, [r0] + ldr r1, _081D33EC + movs r0, #0 + str r0, [r1] + bx lr + .align 2, 0 +_081D33DC: .4byte 0x04000134 +_081D33E0: .4byte 0x04000128 +_081D33E4: .4byte 0x030031E4 +_081D33E8: .4byte 0x030012DE +_081D33EC: .4byte 0x030012E0 + thumb_func_end sub_081D33B4 + + thumb_func_start sub_081D33F0 +sub_081D33F0: @ 0x081D33F0 + push {r4, r5, r6, lr} + adds r4, r1, #0 + adds r5, r2, #0 + adds r6, r3, #0 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _081D3410 + ldrb r0, [r0, #1] + cmp r0, #6 + bls _081D3406 + b _081D354C +_081D3406: + lsls r0, r0, #2 + ldr r1, _081D3414 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081D3410: .4byte 0x030012C0 +_081D3414: .4byte 0x081D3418 +_081D3418: @ jump table + .4byte _081D3434 @ case 0 + .4byte _081D3448 @ case 1 + .4byte _081D3468 @ case 2 + .4byte _081D347C @ case 3 + .4byte _081D34F4 @ case 4 + .4byte _081D3504 @ case 5 + .4byte _081D353C @ case 6 +_081D3434: + bl sub_081D333C + ldr r1, _081D3444 + movs r0, #1 + strb r0, [r1, #2] + strb r0, [r1, #1] + b _081D354C + .align 2, 0 +_081D3444: .4byte 0x030012C0 +_081D3448: + adds r0, r2, #0 + bl sub_081D3568 + lsls r0, r0, #0x10 + cmp r0, #0 + beq _081D3458 + bl sub_081D37BC +_081D3458: + ldr r0, _081D3464 + ldrb r0, [r0] + cmp r0, #2 + beq _081D3462 + b _081D354C +_081D3462: + b _081D3484 + .align 2, 0 +_081D3464: .4byte 0x030031E4 +_081D3468: + bl sub_081D33B4 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_081D359C + ldr r1, _081D3490 + movs r0, #3 + strb r0, [r1, #1] +_081D347C: + ldr r0, _081D3494 + ldrb r0, [r0] + cmp r0, #2 + bne _081D3498 +_081D3484: + ldr r1, _081D3490 + strb r0, [r1, #4] + movs r0, #6 + strb r0, [r1, #1] + b _081D354C + .align 2, 0 +_081D3490: .4byte 0x030012C0 +_081D3494: .4byte 0x030031E4 +_081D3498: + ldr r2, _081D34D8 + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + ldr r1, _081D34DC + ldr r0, [r1] + adds r3, r0, #1 + str r3, [r1] + ldr r1, _081D34E0 + ldrb r0, [r1] + cmp r0, #0 + bne _081D34BC + cmp r3, #0x3c + bls _081D34BC + movs r0, #1 + strb r0, [r1, #4] + movs r0, #6 + strb r0, [r1, #1] +_081D34BC: + ldr r4, _081D34E0 + ldrb r0, [r4, #2] + cmp r0, #2 + beq _081D354C + ldrb r0, [r4] + cmp r0, #0 + beq _081D34E4 + ldrh r0, [r2] + cmp r0, #2 + bls _081D34E4 + bl sub_081D37BC + movs r0, #2 + b _081D354A + .align 2, 0 +_081D34D8: .4byte 0x030012DE +_081D34DC: .4byte 0x030012E0 +_081D34E0: .4byte 0x030012C0 +_081D34E4: + bl sub_081D37BC + ldr r1, _081D34F0 + movs r0, #2 + strb r0, [r1, #2] + b _081D354C + .align 2, 0 +_081D34F0: .4byte 0x030012C0 +_081D34F4: + bl sub_081D333C + ldr r1, _081D3500 + movs r0, #5 + strb r0, [r1, #1] + b _081D354C + .align 2, 0 +_081D3500: .4byte 0x030012C0 +_081D3504: + ldr r0, _081D3534 + ldrb r0, [r0] + cmp r0, #1 + bne _081D3518 + ldr r0, _081D3538 + ldrh r0, [r0] + cmp r0, #2 + bls _081D3518 + bl sub_081D37BC +_081D3518: + ldr r1, _081D3538 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x3c + bls _081D354C + ldr r0, _081D3534 + movs r1, #1 + strb r1, [r0, #4] + movs r1, #6 + strb r1, [r0, #1] + b _081D354C + .align 2, 0 +_081D3534: .4byte 0x030012C0 +_081D3538: .4byte 0x030012DE +_081D353C: + ldr r4, _081D3564 + ldrb r0, [r4, #2] + cmp r0, #0 + beq _081D354C + bl sub_081D32FC + movs r0, #0 +_081D354A: + strb r0, [r4, #2] +_081D354C: + ldr r2, _081D3564 + ldrb r0, [r2, #2] + ldrb r1, [r2, #4] + lsls r1, r1, #2 + orrs r0, r1 + ldrb r1, [r2, #3] + lsls r1, r1, #4 + orrs r0, r1 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_081D3564: .4byte 0x030012C0 + thumb_func_end sub_081D33F0 + + thumb_func_start sub_081D3568 +sub_081D3568: @ 0x081D3568 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _081D3584 + ldr r0, [r0] + movs r1, #0xc + ands r0, r1 + cmp r0, #8 + bne _081D358C + cmp r2, #0 + beq _081D358C + ldr r1, _081D3588 + movs r0, #1 + b _081D3590 + .align 2, 0 +_081D3584: .4byte 0x04000128 +_081D3588: .4byte 0x030012C0 +_081D358C: + ldr r1, _081D3598 + movs r0, #0 +_081D3590: + strb r0, [r1] + pop {r1} + bx r1 + .align 2, 0 +_081D3598: .4byte 0x030012C0 + thumb_func_end sub_081D3568 + + thumb_func_start sub_081D359C +sub_081D359C: @ 0x081D359C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r3, _081D35C8 + ldrb r0, [r3] + cmp r0, #0 + beq _081D35D4 + ldr r2, _081D35CC + ldrh r0, [r2] + movs r1, #1 + orrs r0, r1 + strh r0, [r2] + str r5, [r3, #8] + ldr r0, _081D35D0 + str r4, [r0] + lsrs r0, r4, #2 + adds r0, #1 + str r0, [r3, #0x10] + bl sub_081D35E8 + b _081D35DC + .align 2, 0 +_081D35C8: .4byte 0x030012C0 +_081D35CC: .4byte 0x04000128 +_081D35D0: .4byte 0x04000120 +_081D35D4: + ldr r1, _081D35E4 + ldrh r0, [r1] + strh r0, [r1] + str r2, [r3, #8] +_081D35DC: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081D35E4: .4byte 0x04000128 + thumb_func_end sub_081D359C + + thumb_func_start sub_081D35E8 +sub_081D35E8: @ 0x081D35E8 + ldr r1, _081D360C + ldr r2, _081D3610 + adds r0, r2, #0 + strh r0, [r1] + ldr r0, _081D3614 + movs r2, #0x40 + strh r2, [r0] + ldr r3, _081D3618 + movs r0, #0 + strh r0, [r3] + adds r1, #0xf4 + ldrh r0, [r1] + orrs r0, r2 + strh r0, [r1] + movs r0, #1 + strh r0, [r3] + bx lr + .align 2, 0 +_081D360C: .4byte 0x0400010C +_081D3610: .4byte 0x0000FDA7 +_081D3614: .4byte 0x0400010E +_081D3618: .4byte 0x04000208 + thumb_func_end sub_081D35E8 + + thumb_func_start sub_081D361C +sub_081D361C: @ 0x081D361C + push {lr} + bl sub_081D37CC + bl sub_081D37BC + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081D361C + + thumb_func_start sub_081D362C +sub_081D362C: @ 0x081D362C + push {r4, r5, r6, lr} + sub sp, #8 + ldr r2, _081D3644 + ldrb r0, [r2, #1] + adds r3, r2, #0 + cmp r0, #3 + beq _081D36B4 + cmp r0, #3 + bgt _081D3648 + cmp r0, #1 + beq _081D3650 + b _081D37AA + .align 2, 0 +_081D3644: .4byte 0x030012C0 +_081D3648: + cmp r0, #5 + bne _081D364E + b _081D377C +_081D364E: + b _081D37AA +_081D3650: + ldr r1, _081D3680 + ldr r2, _081D3684 + adds r0, r2, #0 + strh r0, [r1] + ldr r0, _081D3688 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [sp] + str r1, [sp, #4] + movs r1, #0 + movs r2, #0 + movs r4, #0 + ldr r6, _081D3684 + ldr r5, _081D368C +_081D366C: + lsls r0, r1, #1 + add r0, sp + ldrh r0, [r0] + cmp r0, r6 + bne _081D3690 + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + b _081D369A + .align 2, 0 +_081D3680: .4byte 0x0400012A +_081D3684: .4byte 0x0000CCD0 +_081D3688: .4byte 0x04000120 +_081D368C: .4byte 0x0000FFFF +_081D3690: + cmp r0, r5 + beq _081D369A + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_081D369A: + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #3 + bls _081D366C + cmp r2, #2 + beq _081D36AA + b _081D37AA +_081D36AA: + cmp r4, #0 + beq _081D36B0 + b _081D37AA +_081D36B0: + strb r2, [r3, #1] + b _081D37AA +_081D36B4: + ldr r0, _081D36F0 + ldr r4, [r0] + ldr r0, [r2, #0xc] + cmp r0, #0 + bne _081D36CA + ldrb r0, [r2] + cmp r0, #0 + bne _081D36CA + lsrs r0, r4, #2 + adds r0, #1 + str r0, [r2, #0x10] +_081D36CA: + ldrb r0, [r3] + cmp r0, #1 + bne _081D3700 + ldr r1, [r3, #0xc] + ldr r0, [r3, #0x10] + cmp r1, r0 + bge _081D36F4 + ldr r2, _081D36F0 + ldr r0, [r3, #8] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r2] + ldr r0, [r3, #0x14] + ldr r1, [r1] + adds r0, r0, r1 + str r0, [r3, #0x14] + b _081D373A + .align 2, 0 +_081D36F0: .4byte 0x04000120 +_081D36F4: + ldr r1, _081D36FC + ldr r0, [r3, #0x14] + b _081D3738 + .align 2, 0 +_081D36FC: .4byte 0x04000120 +_081D3700: + ldr r1, [r3, #0xc] + cmp r1, #0 + ble _081D3720 + ldr r0, [r3, #0x10] + adds r0, #1 + cmp r1, r0 + bge _081D3720 + ldr r0, [r3, #8] + lsls r1, r1, #2 + adds r1, r1, r0 + subs r1, #4 + str r4, [r1] + ldr r0, [r3, #0x14] + adds r0, r0, r4 + str r0, [r3, #0x14] + b _081D3734 +_081D3720: + ldr r0, [r3, #0xc] + cmp r0, #0 + beq _081D3734 + ldr r0, [r3, #0x14] + cmp r0, r4 + bne _081D3730 + movs r0, #1 + b _081D3732 +_081D3730: + movs r0, #2 +_081D3732: + strb r0, [r3, #3] +_081D3734: + ldr r1, _081D375C + movs r0, #0 +_081D3738: + str r0, [r1] +_081D373A: + ldr r1, [r3, #0xc] + adds r1, #1 + str r1, [r3, #0xc] + ldr r0, [r3, #0x10] + adds r0, #2 + cmp r1, r0 + bge _081D376A + ldrb r0, [r3] + cmp r0, #0 + beq _081D3764 + ldr r0, _081D3760 + ldrh r1, [r0] + movs r2, #0x80 + orrs r1, r2 + strh r1, [r0] + b _081D37AA + .align 2, 0 +_081D375C: .4byte 0x030012E0 +_081D3760: .4byte 0x0400010E +_081D3764: + bl sub_081D37BC + b _081D37AA +_081D376A: + movs r0, #0 + movs r1, #4 + strb r1, [r3, #1] + ldr r1, _081D3778 + strh r0, [r1] + b _081D37AA + .align 2, 0 +_081D3778: .4byte 0x030012DE +_081D377C: + ldrb r3, [r2] + cmp r3, #0 + bne _081D3788 + ldr r1, _081D37B4 + ldrb r0, [r2, #3] + strh r0, [r1] +_081D3788: + ldr r0, _081D37B8 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [sp] + str r1, [sp, #4] + mov r0, sp + ldrh r1, [r0, #2] + subs r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bhi _081D37AA + cmp r3, #1 + bne _081D37A6 + strb r1, [r2, #3] +_081D37A6: + movs r0, #6 + strb r0, [r2, #1] +_081D37AA: + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081D37B4: .4byte 0x0400012A +_081D37B8: .4byte 0x04000120 + thumb_func_end sub_081D362C + + thumb_func_start sub_081D37BC +sub_081D37BC: @ 0x081D37BC + ldr r0, _081D37C8 + ldrh r1, [r0] + movs r2, #0x80 + orrs r1, r2 + strh r1, [r0] + bx lr + .align 2, 0 +_081D37C8: .4byte 0x04000128 + thumb_func_end sub_081D37BC + + thumb_func_start sub_081D37CC +sub_081D37CC: @ 0x081D37CC + ldr r2, _081D37E0 + ldrh r1, [r2] + ldr r0, _081D37E4 + ands r0, r1 + strh r0, [r2] + ldr r1, _081D37E8 + ldr r2, _081D37EC + adds r0, r2, #0 + strh r0, [r1] + bx lr + .align 2, 0 +_081D37E0: .4byte 0x0400010E +_081D37E4: .4byte 0x0000FF7F +_081D37E8: .4byte 0x0400010C +_081D37EC: .4byte 0x0000FDA7 + thumb_func_end sub_081D37CC + + thumb_func_start sub_081D37F0 +sub_081D37F0: @ 0x081D37F0 + push {r4, lr} + ldr r0, _081D3810 + ldrh r0, [r0] + ldr r2, _081D3814 + adds r1, r2, #0 + eors r1, r0 + ldr r4, _081D3818 + ldr r3, _081D381C + ldrh r2, [r3] + adds r0, r1, #0 + bics r0, r2 + strh r0, [r4] + strh r1, [r3] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D3810: .4byte 0x04000130 +_081D3814: .4byte 0x000003FF +_081D3818: .4byte 0x030012DA +_081D381C: .4byte 0x030012D8 + thumb_func_end sub_081D37F0 + + thumb_func_start sub_081D3820 +sub_081D3820: @ 0x081D3820 + ldr r1, _081D384C + ldr r0, _081D3850 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _081D3854 + ldr r0, _081D3858 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _081D385C + ldr r0, _081D3860 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _081D3864 + ldr r0, _081D3868 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _081D386C + ldr r0, _081D3870 + ldrh r0, [r0] + strh r0, [r1] + bx lr + .align 2, 0 +_081D384C: .4byte 0x030012E4 +_081D3850: .4byte 0x04000208 +_081D3854: .4byte 0x030012E6 +_081D3858: .4byte 0x04000200 +_081D385C: .4byte 0x030012E8 +_081D3860: .4byte 0x0400010E +_081D3864: .4byte 0x030012EA +_081D3868: .4byte 0x04000128 +_081D386C: .4byte 0x030012EC +_081D3870: .4byte 0x04000134 + thumb_func_end sub_081D3820 + + thumb_func_start sub_081D3874 +sub_081D3874: @ 0x081D3874 + ldr r1, _081D38A0 + ldr r0, _081D38A4 + ldrh r0, [r0] + strh r0, [r1] + subs r1, #8 + ldr r0, _081D38A8 + ldrh r0, [r0] + strh r0, [r1] + subs r1, #0xf2 + ldr r0, _081D38AC + ldrh r0, [r0] + strh r0, [r1] + adds r1, #0x1a + ldr r0, _081D38B0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, #0xc + ldr r0, _081D38B4 + ldrh r0, [r0] + strh r0, [r1] + bx lr + .align 2, 0 +_081D38A0: .4byte 0x04000208 +_081D38A4: .4byte 0x030012E4 +_081D38A8: .4byte 0x030012E6 +_081D38AC: .4byte 0x030012E8 +_081D38B0: .4byte 0x030012EA +_081D38B4: .4byte 0x030012EC + thumb_func_end sub_081D3874 + + thumb_func_start sub_081D38B8 +sub_081D38B8: @ 0x081D38B8 + push {lr} + sub sp, #4 + movs r0, #0 + str r0, [sp] + ldr r1, _081D38D0 + ldr r2, _081D38D4 + mov r0, sp + bl CpuSet + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_081D38D0: .4byte 0x030012C0 +_081D38D4: .4byte 0x05000006 + thumb_func_end sub_081D38B8 + diff --git a/asm/ereader_screen.s b/asm/ereader_screen.s new file mode 100644 index 0000000..0efe8f2 --- /dev/null +++ b/asm/ereader_screen.s @@ -0,0 +1,904 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_081D43D0 +sub_081D43D0: @ 0x081D43D0 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #4 + adds r5, r0, #0 + adds r6, r1, #0 + mov r8, r2 + mov r1, sp + ldr r4, _081D4424 + ldrh r0, [r4] + strh r0, [r1] + movs r0, #0 + strh r0, [r4] + ldr r1, _081D4428 + ldr r0, _081D442C + str r0, [r1, #4] + ldr r0, _081D4430 + str r0, [r1, #8] + bl sub_081D3820 + bl sub_081D38B8 + ldr r2, _081D4434 + ldrh r0, [r2] + movs r1, #4 + orrs r0, r1 + strh r0, [r2] + mov r0, sp + ldrh r0, [r0] + strh r0, [r4] + movs r0, #0 + strh r0, [r5] + str r6, [r5, #4] + mov r0, r8 + str r0, [r5, #8] + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081D4424: .4byte 0x04000208 +_081D4428: .4byte 0x030027B0 +_081D442C: .4byte 0x081D362D +_081D4430: .4byte 0x081D361D +_081D4434: .4byte 0x04000200 + thumb_func_end sub_081D43D0 + + thumb_func_start sub_081D4438 +sub_081D4438: @ 0x081D4438 + push {r4, lr} + sub sp, #4 + mov r1, sp + ldr r4, _081D4464 + ldrh r0, [r4] + strh r0, [r1] + movs r0, #0 + strh r0, [r4] + bl sub_081D38B8 + bl sub_081D3874 + bl RestoreSerialTimer3IntrHandlers + mov r0, sp + ldrh r0, [r0] + strh r0, [r4] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D4464: .4byte 0x04000208 + thumb_func_end sub_081D4438 + + thumb_func_start sub_081D4468 +sub_081D4468: @ 0x081D4468 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #0 + ldr r1, [r4, #4] + ldr r2, [r4, #8] + movs r0, #1 + movs r3, #0 + bl sub_081D33F0 + adds r1, r0, #0 + strh r1, [r4] + movs r0, #0x13 + ands r0, r1 + cmp r0, #0x10 + bne _081D4488 + movs r5, #1 +_081D4488: + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _081D4492 + movs r5, #2 +_081D4492: + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _081D449C + movs r5, #3 +_081D449C: + ldr r1, _081D44AC + movs r0, #0 + strb r0, [r1] + adds r0, r5, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081D44AC: .4byte 0x030031E4 + thumb_func_end sub_081D4468 + + thumb_func_start sub_081D44B0 +sub_081D44B0: @ 0x081D44B0 + push {lr} + ldr r0, _081D44D4 + movs r2, #0x80 + lsls r2, r2, #6 + movs r1, #0 + bl memset + ldr r1, _081D44D8 + ldr r2, _081D44DC + adds r0, r2, #0 + strh r0, [r1] + bl OpenLink + movs r0, #1 + bl SetSuppressLinkErrorMessage + pop {r0} + bx r0 + .align 2, 0 +_081D44D4: .4byte 0x0201C000 +_081D44D8: .4byte 0x0202267E +_081D44DC: .4byte 0x00005503 + thumb_func_end sub_081D44B0 + + thumb_func_start sub_081D44E0 +sub_081D44E0: @ 0x081D44E0 + push {lr} + sub sp, #0xc + mov r1, sp + ldr r2, _081D4524 + ldrh r0, [r2] + strh r0, [r1] + movs r0, #0 + strh r0, [r2] + ldr r0, _081D4528 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [sp, #4] + str r1, [sp, #8] + mov r0, sp + ldrh r0, [r0] + strh r0, [r2] + add r2, sp, #4 + ldrh r1, [r2] + ldr r0, _081D452C + cmp r1, r0 + bne _081D4538 + ldrh r1, [r2, #2] + ldr r0, _081D4530 + cmp r1, r0 + bne _081D4538 + ldrh r1, [r2, #4] + ldr r0, _081D4534 + cmp r1, r0 + bne _081D4538 + ldrh r0, [r2, #6] + cmp r0, r1 + bne _081D4538 + movs r0, #1 + b _081D453A + .align 2, 0 +_081D4524: .4byte 0x04000208 +_081D4528: .4byte 0x03003214 +_081D452C: .4byte 0x0000B9A0 +_081D4530: .4byte 0x0000CCD0 +_081D4534: .4byte 0x0000FFFF +_081D4538: + movs r0, #0 +_081D453A: + add sp, #0xc + pop {r1} + bx r1 + thumb_func_end sub_081D44E0 + + thumb_func_start sub_081D4540 +sub_081D4540: @ 0x081D4540 + push {lr} + bl IsLinkMaster + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D455C + bl GetLinkPlayerCount_2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _081D455C + movs r0, #1 + b _081D455E +_081D455C: + movs r0, #0 +_081D455E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081D4540 + + thumb_func_start sub_081D4564 +sub_081D4564: @ 0x081D4564 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4] + subs r0, #3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bhi _081D4588 + bl HasLinkErrorOccurred + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D4588 + movs r0, #0 + strb r0, [r4] + movs r0, #3 + b _081D468E +_081D4588: + ldrb r0, [r4] + cmp r0, #5 + bls _081D4590 + b _081D468C +_081D4590: + lsls r0, r0, #2 + ldr r1, _081D459C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081D459C: .4byte 0x081D45A0 +_081D45A0: @ jump table + .4byte _081D45B8 @ case 0 + .4byte _081D45D4 @ case 1 + .4byte _081D45EC @ case 2 + .4byte _081D4620 @ case 3 + .4byte _081D466C @ case 4 + .4byte _081D4678 @ case 5 +_081D45B8: + bl IsLinkMaster + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D4608 + bl GetLinkPlayerCount_2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _081D4608 + movs r0, #1 + strb r0, [r4] + b _081D468C +_081D45D4: + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #5 + bls _081D468C + movs r0, #0 + strh r0, [r5] + movs r0, #2 + strb r0, [r4] + b _081D468C +_081D45EC: + bl GetLinkPlayerCount_2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _081D4608 + movs r0, #0x49 + bl PlaySE + bl CheckShouldAdvanceLinkState + movs r0, #0 + strh r0, [r5] + b _081D4666 +_081D4608: + ldr r0, _081D461C + ldrh r1, [r0, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081D468C + movs r0, #0 + strb r0, [r4] + movs r0, #1 + b _081D468E + .align 2, 0 +_081D461C: .4byte 0x03002360 +_081D4620: + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x1e + bls _081D4636 + movs r0, #0 + strb r0, [r4] + movs r0, #5 + b _081D468E +_081D4636: + bl IsLinkConnectionEstablished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D468C + ldr r0, _081D465C + ldrb r0, [r0] + cmp r0, #0 + beq _081D4666 + bl IsLinkPlayerDataExchangeComplete + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D4660 + movs r0, #0 + strb r0, [r4] + movs r0, #2 + b _081D468E + .align 2, 0 +_081D465C: .4byte 0x030031C4 +_081D4660: + movs r0, #4 + strb r0, [r4] + b _081D468C +_081D4666: + movs r0, #3 + strb r0, [r4] + b _081D468C +_081D466C: + movs r0, #0 + bl sub_0800A7B8 + movs r0, #5 + strb r0, [r4] + b _081D468C +_081D4678: + ldr r0, _081D4688 + ldrb r0, [r0] + cmp r0, #0 + bne _081D468C + strb r0, [r4] + movs r0, #4 + b _081D468E + .align 2, 0 +_081D4688: .4byte 0x030031C4 +_081D468C: + movs r0, #0 +_081D468E: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_081D4564 + + thumb_func_start task_add_00_ereader +task_add_00_ereader: @ 0x081D4694 + push {r4, lr} + ldr r0, _081D46D4 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _081D46D8 + adds r4, r4, r0 + movs r0, #0 + strb r0, [r4, #8] + strb r0, [r4, #9] + strb r0, [r4, #0xa] + strb r0, [r4, #0xb] + strb r0, [r4, #0xc] + strb r0, [r4, #0xd] + movs r1, #0 + strh r0, [r4] + strh r0, [r4, #2] + strh r0, [r4, #4] + strh r0, [r4, #6] + strb r1, [r4, #0xe] + movs r0, #0x40 + bl AllocZeroed + str r0, [r4, #0x10] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D46D4: .4byte 0x081D4705 +_081D46D8: .4byte 0x03005B68 + thumb_func_end task_add_00_ereader + + thumb_func_start sub_081D46DC +sub_081D46DC: @ 0x081D46DC + movs r1, #0 + strh r1, [r0] + bx lr + .align 2, 0 + thumb_func_end sub_081D46DC + + thumb_func_start sub_081D46E4 +sub_081D46E4: @ 0x081D46E4 + push {lr} + adds r2, r0, #0 + lsls r1, r1, #0x10 + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + cmp r0, r1 + bhi _081D46FA + movs r0, #0 + b _081D4700 +_081D46FA: + movs r0, #0 + strh r0, [r2] + movs r0, #1 +_081D4700: + pop {r1} + bx r1 + thumb_func_end sub_081D46E4 + + thumb_func_start sub_081D4704 +sub_081D4704: @ 0x081D4704 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _081D4728 + adds r4, r0, r1 + ldrb r0, [r4, #8] + cmp r0, #0x1a + bls _081D471C + b _081D4B0A +_081D471C: + lsls r0, r0, #2 + ldr r1, _081D472C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081D4728: .4byte 0x03005B68 +_081D472C: .4byte 0x081D4730 +_081D4730: @ jump table + .4byte _081D479C @ case 0 + .4byte _081D47B8 @ case 1 + .4byte _081D47C8 @ case 2 + .4byte _081D47DC @ case 3 + .4byte _081D47EC @ case 4 + .4byte _081D4818 @ case 5 + .4byte _081D4850 @ case 6 + .4byte _081D48CC @ case 7 + .4byte _081D48E8 @ case 8 + .4byte _081D4910 @ case 9 + .4byte _081D492C @ case 10 + .4byte _081D495C @ case 11 + .4byte _081D4972 @ case 12 + .4byte _081D4988 @ case 13 + .4byte _081D49EA @ case 14 + .4byte _081D4A10 @ case 15 + .4byte _081D4A28 @ case 16 + .4byte _081D4A46 @ case 17 + .4byte _081D4A72 @ case 18 + .4byte _081D4A98 @ case 19 + .4byte _081D4AC8 @ case 20 + .4byte _081D4AD4 @ case 21 + .4byte _081D4AE0 @ case 22 + .4byte _081D4AB0 @ case 23 + .4byte _081D4B0A @ case 24 + .4byte _081D4B0A @ case 25 + .4byte _081D4AF8 @ case 26 +_081D479C: + adds r0, r4, #0 + adds r0, #9 + ldr r1, _081D47B4 + bl MG_PrintTextOnWindow1AndWaitButton + cmp r0, #0 + bne _081D47AC + b _081D4B0A +_081D47AC: + movs r0, #1 + strb r0, [r4, #8] + b _081D4B0A + .align 2, 0 +_081D47B4: .4byte 0x085CCEEC +_081D47B8: + bl sub_081D44B0 + adds r0, r4, #0 + bl sub_081D46DC + movs r0, #2 + strb r0, [r4, #8] + b _081D4B0A +_081D47C8: + adds r0, r4, #0 + movs r1, #0xa + bl sub_081D46E4 + cmp r0, #0 + bne _081D47D6 + b _081D4B0A +_081D47D6: + movs r0, #3 + strb r0, [r4, #8] + b _081D4B0A +_081D47DC: + bl sub_081D4540 + cmp r0, #0 + beq _081D47E6 + b _081D497C +_081D47E6: + bl CloseLink + b _081D48DC +_081D47EC: + adds r0, r4, #0 + adds r0, #9 + ldr r1, _081D4810 + bl MG_PrintTextOnWindow1AndWaitButton + cmp r0, #0 + bne _081D47FC + b _081D4B0A +_081D47FC: + ldr r0, _081D4814 + bl AddTextPrinterToWindow1 + adds r0, r4, #0 + bl sub_081D46DC + movs r0, #5 + strb r0, [r4, #8] + b _081D4B0A + .align 2, 0 +_081D4810: .4byte 0x085CCF0B +_081D4814: .4byte 0x085CCF2A +_081D4818: + adds r0, r4, #0 + movs r1, #0x5a + bl sub_081D46E4 + cmp r0, #0 + beq _081D482E + bl sub_081D44B0 + movs r0, #6 + strb r0, [r4, #8] + b _081D4B0A +_081D482E: + ldr r0, _081D484C + ldrh r1, [r0, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _081D483C + b _081D4B0A +_081D483C: + adds r0, r4, #0 + bl sub_081D46DC + movs r0, #5 + bl PlaySE + b _081D49DA + .align 2, 0 +_081D484C: .4byte 0x03002360 +_081D4850: + ldr r0, _081D4870 + ldrh r1, [r0, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081D4874 + movs r0, #5 + bl PlaySE + bl CloseLink + adds r0, r4, #0 + bl sub_081D46DC + b _081D49DA + .align 2, 0 +_081D4870: .4byte 0x03002360 +_081D4874: + bl GetLinkPlayerCount_2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _081D4890 + adds r0, r4, #0 + bl sub_081D46DC + bl CloseLink + movs r0, #7 + strb r0, [r4, #8] + b _081D4B0A +_081D4890: + bl sub_081D44E0 + cmp r0, #0 + beq _081D48AE + movs r0, #5 + bl PlaySE + bl CloseLink + adds r0, r4, #0 + bl sub_081D46DC + movs r0, #8 + strb r0, [r4, #8] + b _081D4B0A +_081D48AE: + adds r0, r4, #0 + movs r1, #0xa + bl sub_081D46E4 + cmp r0, #0 + bne _081D48BC + b _081D4B0A +_081D48BC: + bl CloseLink + bl sub_081D44B0 + adds r0, r4, #0 + bl sub_081D46DC + b _081D4B0A +_081D48CC: + adds r0, r4, #0 + adds r0, #9 + ldr r1, _081D48E4 + bl MG_PrintTextOnWindow1AndWaitButton + cmp r0, #0 + bne _081D48DC + b _081D4B0A +_081D48DC: + movs r0, #4 + strb r0, [r4, #8] + b _081D4B0A + .align 2, 0 +_081D48E4: .4byte 0x085CCF72 +_081D48E8: + ldr r0, _081D4900 + bl AddTextPrinterToWindow1 + ldr r0, _081D4904 + ldr r1, _081D4908 + ldr r2, _081D490C + subs r1, r1, r2 + bl sub_081D43D0 + movs r0, #9 + strb r0, [r4, #8] + b _081D4B0A + .align 2, 0 +_081D4900: .4byte 0x085CCFAD +_081D4904: .4byte 0x03006110 +_081D4908: .4byte 0x08912454 +_081D490C: .4byte 0x0890F374 +_081D4910: + ldr r0, _081D4928 + bl sub_081D4468 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081D4920 + b _081D4B0A +_081D4920: + movs r0, #0xa + strb r0, [r4, #8] + b _081D4B0A + .align 2, 0 +_081D4928: .4byte 0x03006110 +_081D492C: + ldr r0, _081D4954 + bl sub_081D4438 + ldrb r0, [r4, #0xe] + cmp r0, #3 + bne _081D493A + b _081D4A40 +_081D493A: + cmp r0, #1 + beq _081D4940 + b _081D4AEE +_081D4940: + adds r0, r4, #0 + bl sub_081D46DC + ldr r0, _081D4958 + bl AddTextPrinterToWindow1 + movs r0, #0xb + strb r0, [r4, #8] + b _081D4B0A + .align 2, 0 +_081D4954: .4byte 0x03006110 +_081D4958: .4byte 0x085CD036 +_081D495C: + movs r1, #0xd2 + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_081D46E4 + cmp r0, #0 + bne _081D496C + b _081D4B0A +_081D496C: + movs r0, #0xc + strb r0, [r4, #8] + b _081D4B0A +_081D4972: + bl sub_081D44B0 + ldr r0, _081D4984 + bl AddTextPrinterToWindow1 +_081D497C: + movs r0, #0xd + strb r0, [r4, #8] + b _081D4B0A + .align 2, 0 +_081D4984: .4byte 0x085CCFF2 +_081D4988: + adds r0, r4, #0 + adds r0, #9 + adds r1, r4, #0 + bl sub_081D4564 + cmp r0, #5 + bls _081D4998 + b _081D4B0A +_081D4998: + lsls r0, r0, #2 + ldr r1, _081D49A4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081D49A4: .4byte 0x081D49A8 +_081D49A8: @ jump table + .4byte _081D4B0A @ case 0 + .4byte _081D49D0 @ case 1 + .4byte _081D49C0 @ case 2 + .4byte _081D49F4 @ case 3 + .4byte _081D49F4 @ case 4 + .4byte _081D49E0 @ case 5 +_081D49C0: + ldr r0, _081D49CC + bl AddTextPrinterToWindow1 + movs r0, #0xe + strb r0, [r4, #8] + b _081D4B0A + .align 2, 0 +_081D49CC: .4byte 0x085CCFAD +_081D49D0: + movs r0, #5 + bl PlaySE + bl CloseLink +_081D49DA: + movs r0, #0x17 + strb r0, [r4, #8] + b _081D4B0A +_081D49E0: + bl CloseLink + movs r0, #0x15 + strb r0, [r4, #8] + b _081D4B0A +_081D49EA: + bl HasLinkErrorOccurred + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D49FA +_081D49F4: + bl CloseLink + b _081D4A40 +_081D49FA: + bl GetBlockReceivedStatus + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081D4A06 + b _081D4B0A +_081D4A06: + bl ResetBlockReceivedFlags + movs r0, #0xf + strb r0, [r4, #8] + b _081D4B0A +_081D4A10: + ldr r0, _081D4A24 + bl EReader_IsReceivedDataValid + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xe] + bl sub_0800A7B8 + movs r0, #0x10 + strb r0, [r4, #8] + b _081D4B0A + .align 2, 0 +_081D4A24: .4byte 0x0201C000 +_081D4A28: + ldr r0, _081D4A3C + ldrb r0, [r0] + cmp r0, #0 + bne _081D4B0A + ldrb r0, [r4, #0xe] + cmp r0, #1 + bne _081D4A40 + movs r0, #0x11 + strb r0, [r4, #8] + b _081D4B0A + .align 2, 0 +_081D4A3C: .4byte 0x030031C4 +_081D4A40: + movs r0, #0x14 + strb r0, [r4, #8] + b _081D4B0A +_081D4A46: + ldr r0, _081D4A64 + bl TryWriteTrainerHill + cmp r0, #0 + beq _081D4A6C + ldr r0, _081D4A68 + bl AddTextPrinterToWindow1 + adds r0, r4, #0 + bl sub_081D46DC + movs r0, #0x12 + strb r0, [r4, #8] + b _081D4B0A + .align 2, 0 +_081D4A64: .4byte 0x0201C000 +_081D4A68: .4byte 0x085CD010 +_081D4A6C: + movs r0, #0x16 + strb r0, [r4, #8] + b _081D4B0A +_081D4A72: + adds r0, r4, #0 + movs r1, #0x78 + bl sub_081D46E4 + cmp r0, #0 + beq _081D4B0A + ldr r0, _081D4A94 + bl AddTextPrinterToWindow1 + movs r0, #0xb9 + lsls r0, r0, #1 + bl PlayFanfare + movs r0, #0x13 + strb r0, [r4, #8] + b _081D4B0A + .align 2, 0 +_081D4A94: .4byte 0x085CD01D +_081D4A98: + bl IsFanfareTaskInactive + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D4B0A + ldr r0, _081D4AAC + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + b _081D4ABA + .align 2, 0 +_081D4AAC: .4byte 0x03002360 +_081D4AB0: + adds r0, r4, #0 + adds r0, #9 + ldr r1, _081D4AC4 + bl MG_PrintTextOnWindow1AndWaitButton +_081D4ABA: + cmp r0, #0 + beq _081D4B0A + movs r0, #0x1a + strb r0, [r4, #8] + b _081D4B0A + .align 2, 0 +_081D4AC4: .4byte 0x085CCF81 +_081D4AC8: + adds r0, r4, #0 + adds r0, #9 + ldr r1, _081D4AD0 + b _081D4AE6 + .align 2, 0 +_081D4AD0: .4byte 0x085CCFB9 +_081D4AD4: + adds r0, r4, #0 + adds r0, #9 + ldr r1, _081D4ADC + b _081D4AE6 + .align 2, 0 +_081D4ADC: .4byte 0x085CCFD5 +_081D4AE0: + adds r0, r4, #0 + adds r0, #9 + ldr r1, _081D4AF4 +_081D4AE6: + bl MG_PrintTextOnWindow1AndWaitButton + cmp r0, #0 + beq _081D4B0A +_081D4AEE: + movs r0, #0 + strb r0, [r4, #8] + b _081D4B0A + .align 2, 0 +_081D4AF4: .4byte 0x085CD043 +_081D4AF8: + ldr r0, [r4, #0x10] + bl Free + adds r0, r5, #0 + bl DestroyTask + ldr r0, _081D4B10 + bl SetMainCallback2 +_081D4B0A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081D4B10: .4byte 0x08018139 + thumb_func_end sub_081D4704 + diff --git a/asm/event_data.s b/asm/event_data.s new file mode 100644 index 0000000..58fbae9 --- /dev/null +++ b/asm/event_data.s @@ -0,0 +1,620 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start InitEventData +InitEventData: @ 0x0809CBD8 + push {r4, lr} + ldr r4, _0809CC0C + ldr r0, [r4] + ldr r1, _0809CC10 + adds r0, r0, r1 + movs r2, #0x96 + lsls r2, r2, #1 + movs r1, #0 + bl memset + ldr r0, [r4] + ldr r1, _0809CC14 + adds r0, r0, r1 + movs r2, #0x80 + lsls r2, r2, #2 + movs r1, #0 + bl memset + ldr r0, _0809CC18 + movs r1, #0 + movs r2, #0x10 + bl memset + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809CC0C: .4byte 0x03005AEC +_0809CC10: .4byte 0x00001270 +_0809CC14: .4byte 0x0000139C +_0809CC18: .4byte 0x0203729C + thumb_func_end InitEventData + + thumb_func_start ClearTempFieldEventData +ClearTempFieldEventData: @ 0x0809CC1C + push {lr} + ldr r0, _0809CC5C + ldr r0, [r0] + ldr r1, _0809CC60 + adds r2, r0, r1 + movs r1, #0 + str r1, [r2] + ldr r1, _0809CC64 + adds r0, r0, r1 + movs r1, #0 + movs r2, #0x20 + bl memset + ldr r0, _0809CC68 + bl FlagClear + ldr r0, _0809CC6C + bl FlagClear + ldr r0, _0809CC70 + bl FlagClear + ldr r0, _0809CC74 + bl FlagClear + movs r0, #0x88 + lsls r0, r0, #4 + bl FlagClear + pop {r0} + bx r0 + .align 2, 0 +_0809CC5C: .4byte 0x03005AEC +_0809CC60: .4byte 0x00001270 +_0809CC64: .4byte 0x0000139C +_0809CC68: .4byte 0x000008AD +_0809CC6C: .4byte 0x000008AE +_0809CC70: .4byte 0x00000889 +_0809CC74: .4byte 0x000008C1 + thumb_func_end ClearTempFieldEventData + + thumb_func_start ClearDailyFlags +ClearDailyFlags: @ 0x0809CC78 + push {lr} + ldr r0, _0809CC90 + ldr r0, [r0] + ldr r1, _0809CC94 + adds r0, r0, r1 + movs r1, #0 + movs r2, #8 + bl memset + pop {r0} + bx r0 + .align 2, 0 +_0809CC90: .4byte 0x03005AEC +_0809CC94: .4byte 0x00001394 + thumb_func_end ClearDailyFlags + + thumb_func_start DisableNationalPokedex +DisableNationalPokedex: @ 0x0809CC98 + push {lr} + ldr r0, _0809CCB4 + bl GetVarPointer + ldr r1, _0809CCB8 + ldr r2, [r1] + movs r1, #0 + strb r1, [r2, #0x1a] + strh r1, [r0] + ldr r0, _0809CCBC + bl FlagClear + pop {r0} + bx r0 + .align 2, 0 +_0809CCB4: .4byte 0x00004046 +_0809CCB8: .4byte 0x03005AF0 +_0809CCBC: .4byte 0x00000896 + thumb_func_end DisableNationalPokedex + + thumb_func_start EnableNationalPokedex +EnableNationalPokedex: @ 0x0809CCC0 + push {r4, r5, lr} + ldr r0, _0809CCF4 + bl GetVarPointer + ldr r4, _0809CCF8 + ldr r2, [r4] + movs r5, #0 + movs r1, #0xda + strb r1, [r2, #0x1a] + ldr r2, _0809CCFC + adds r1, r2, #0 + strh r1, [r0] + ldr r0, _0809CD00 + bl FlagSet + ldr r1, [r4] + movs r0, #1 + strb r0, [r1, #0x19] + ldr r0, [r4] + strb r5, [r0, #0x18] + bl ResetPokedexScrollPositions + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0809CCF4: .4byte 0x00004046 +_0809CCF8: .4byte 0x03005AF0 +_0809CCFC: .4byte 0x00000302 +_0809CD00: .4byte 0x00000896 + thumb_func_end EnableNationalPokedex + + thumb_func_start IsNationalPokedexEnabled +IsNationalPokedexEnabled: @ 0x0809CD04 + push {lr} + ldr r0, _0809CD30 + ldr r0, [r0] + ldrb r0, [r0, #0x1a] + cmp r0, #0xda + bne _0809CD40 + ldr r0, _0809CD34 + bl VarGet + lsls r0, r0, #0x10 + ldr r1, _0809CD38 + cmp r0, r1 + bne _0809CD40 + ldr r0, _0809CD3C + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809CD40 + movs r0, #1 + b _0809CD42 + .align 2, 0 +_0809CD30: .4byte 0x03005AF0 +_0809CD34: .4byte 0x00004046 +_0809CD38: .4byte 0x03020000 +_0809CD3C: .4byte 0x00000896 +_0809CD40: + movs r0, #0 +_0809CD42: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsNationalPokedexEnabled + + thumb_func_start DisableMysteryEvent +DisableMysteryEvent: @ 0x0809CD48 + push {lr} + ldr r0, _0809CD54 + bl FlagClear + pop {r0} + bx r0 + .align 2, 0 +_0809CD54: .4byte 0x000008AC + thumb_func_end DisableMysteryEvent + + thumb_func_start EnableMysteryEvent +EnableMysteryEvent: @ 0x0809CD58 + push {lr} + ldr r0, _0809CD64 + bl FlagSet + pop {r0} + bx r0 + .align 2, 0 +_0809CD64: .4byte 0x000008AC + thumb_func_end EnableMysteryEvent + + thumb_func_start IsMysteryEventEnabled +IsMysteryEventEnabled: @ 0x0809CD68 + push {lr} + ldr r0, _0809CD78 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0809CD78: .4byte 0x000008AC + thumb_func_end IsMysteryEventEnabled + + thumb_func_start DisableMysteryGift +DisableMysteryGift: @ 0x0809CD7C + push {lr} + ldr r0, _0809CD88 + bl FlagClear + pop {r0} + bx r0 + .align 2, 0 +_0809CD88: .4byte 0x000008DB + thumb_func_end DisableMysteryGift + + thumb_func_start EnableMysteryGift +EnableMysteryGift: @ 0x0809CD8C + push {lr} + ldr r0, _0809CD98 + bl FlagSet + pop {r0} + bx r0 + .align 2, 0 +_0809CD98: .4byte 0x000008DB + thumb_func_end EnableMysteryGift + + thumb_func_start IsMysteryGiftEnabled +IsMysteryGiftEnabled: @ 0x0809CD9C + push {lr} + ldr r0, _0809CDAC + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0809CDAC: .4byte 0x000008DB + thumb_func_end IsMysteryGiftEnabled + + thumb_func_start sub_0809CDB0 +sub_0809CDB0: @ 0x0809CDB0 + push {lr} + movs r0, #0xf2 + lsls r0, r0, #1 + bl FlagClear + ldr r0, _0809CE28 + bl FlagClear + movs r0, #0xf3 + lsls r0, r0, #1 + bl FlagClear + ldr r0, _0809CE2C + bl FlagClear + movs r0, #0xf4 + lsls r0, r0, #1 + bl FlagClear + ldr r0, _0809CE30 + bl FlagClear + movs r0, #0xf5 + lsls r0, r0, #1 + bl FlagClear + ldr r0, _0809CE34 + bl FlagClear + movs r0, #0xf6 + lsls r0, r0, #1 + bl FlagClear + ldr r0, _0809CE38 + bl FlagClear + movs r0, #0xf7 + lsls r0, r0, #1 + bl FlagClear + ldr r0, _0809CE3C + bl FlagClear + movs r0, #0xf8 + lsls r0, r0, #1 + bl FlagClear + ldr r0, _0809CE40 + bl FlagClear + movs r0, #0xf9 + lsls r0, r0, #1 + bl FlagClear + ldr r0, _0809CE44 + bl FlagClear + pop {r0} + bx r0 + .align 2, 0 +_0809CE28: .4byte 0x000001E5 +_0809CE2C: .4byte 0x000001E7 +_0809CE30: .4byte 0x000001E9 +_0809CE34: .4byte 0x000001EB +_0809CE38: .4byte 0x000001ED +_0809CE3C: .4byte 0x000001EF +_0809CE40: .4byte 0x000001F1 +_0809CE44: .4byte 0x000001F3 + thumb_func_end sub_0809CDB0 + + thumb_func_start sub_0809CE48 +sub_0809CE48: @ 0x0809CE48 + push {lr} + ldr r0, _0809CE90 + movs r1, #0 + bl VarSet + ldr r0, _0809CE94 + movs r1, #0 + bl VarSet + ldr r0, _0809CE98 + movs r1, #0 + bl VarSet + ldr r0, _0809CE9C + movs r1, #0 + bl VarSet + ldr r0, _0809CEA0 + movs r1, #0 + bl VarSet + ldr r0, _0809CEA4 + movs r1, #0 + bl VarSet + ldr r0, _0809CEA8 + movs r1, #0 + bl VarSet + ldr r0, _0809CEAC + movs r1, #0 + bl VarSet + pop {r0} + bx r0 + .align 2, 0 +_0809CE90: .4byte 0x000040DD +_0809CE94: .4byte 0x000040DE +_0809CE98: .4byte 0x000040DF +_0809CE9C: .4byte 0x000040E0 +_0809CEA0: .4byte 0x000040E1 +_0809CEA4: .4byte 0x000040E2 +_0809CEA8: .4byte 0x000040E3 +_0809CEAC: .4byte 0x000040E4 + thumb_func_end sub_0809CE48 + + thumb_func_start DisableResetRTC +DisableResetRTC: @ 0x0809CEB0 + push {lr} + ldr r0, _0809CEC4 + movs r1, #0 + bl VarSet + ldr r0, _0809CEC8 + bl FlagClear + pop {r0} + bx r0 + .align 2, 0 +_0809CEC4: .4byte 0x0000402C +_0809CEC8: .4byte 0x000008C2 + thumb_func_end DisableResetRTC + + thumb_func_start EnableResetRTC +EnableResetRTC: @ 0x0809CECC + push {lr} + ldr r0, _0809CEE4 + movs r1, #0x92 + lsls r1, r1, #4 + bl VarSet + ldr r0, _0809CEE8 + bl FlagSet + pop {r0} + bx r0 + .align 2, 0 +_0809CEE4: .4byte 0x0000402C +_0809CEE8: .4byte 0x000008C2 + thumb_func_end EnableResetRTC + + thumb_func_start CanResetRTC +CanResetRTC: @ 0x0809CEEC + push {lr} + ldr r0, _0809CF10 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809CF18 + ldr r0, _0809CF14 + bl VarGet + lsls r0, r0, #0x10 + movs r1, #0x92 + lsls r1, r1, #0x14 + cmp r0, r1 + bne _0809CF18 + movs r0, #1 + b _0809CF1A + .align 2, 0 +_0809CF10: .4byte 0x000008C2 +_0809CF14: .4byte 0x0000402C +_0809CF18: + movs r0, #0 +_0809CF1A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CanResetRTC + + thumb_func_start GetVarPointer +GetVarPointer: @ 0x0809CF20 + push {lr} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + adds r2, r1, #0 + ldr r0, _0809CF34 + cmp r1, r0 + bhi _0809CF38 + movs r0, #0 + b _0809CF60 + .align 2, 0 +_0809CF34: .4byte 0x00003FFF +_0809CF38: + lsls r0, r1, #0x10 + cmp r0, #0 + bge _0809CF54 + ldr r0, _0809CF4C + ldr r2, _0809CF50 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + b _0809CF60 + .align 2, 0 +_0809CF4C: .4byte 0x081DAF34 +_0809CF50: .4byte 0xFFFF8000 +_0809CF54: + ldr r0, _0809CF64 + lsls r1, r2, #1 + ldr r2, _0809CF68 + adds r1, r1, r2 + ldr r0, [r0] + adds r0, r0, r1 +_0809CF60: + pop {r1} + bx r1 + .align 2, 0 +_0809CF64: .4byte 0x03005AEC +_0809CF68: .4byte 0xFFFF939C + thumb_func_end GetVarPointer + + thumb_func_start VarGet +VarGet: @ 0x0809CF6C + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r4, #0 + bl GetVarPointer + cmp r0, #0 + beq _0809CF80 + ldrh r0, [r0] + b _0809CF82 +_0809CF80: + adds r0, r4, #0 +_0809CF82: + pop {r4} + pop {r1} + bx r1 + thumb_func_end VarGet + + thumb_func_start VarSet +VarSet: @ 0x0809CF88 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + bl GetVarPointer + cmp r0, #0 + beq _0809CFA0 + strh r4, [r0] + movs r0, #1 + b _0809CFA2 +_0809CFA0: + movs r0, #0 +_0809CFA2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end VarSet + + thumb_func_start VarGetEventObjectGraphicsId +VarGetEventObjectGraphicsId: @ 0x0809CFA8 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #8 + ldr r1, _0809CFC0 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0809CFC0: .4byte 0x40100000 + thumb_func_end VarGetEventObjectGraphicsId + + thumb_func_start GetFlagPointer +GetFlagPointer: @ 0x0809CFC4 + push {lr} + lsls r1, r0, #0x10 + lsrs r2, r1, #0x10 + adds r3, r2, #0 + cmp r2, #0 + bne _0809CFD4 + movs r0, #0 + b _0809D006 +_0809CFD4: + ldr r0, _0809CFE8 + cmp r2, r0 + bhi _0809CFF4 + ldr r0, _0809CFEC + lsrs r1, r1, #0x13 + ldr r2, _0809CFF0 + adds r1, r1, r2 + ldr r0, [r0] + b _0809D004 + .align 2, 0 +_0809CFE8: .4byte 0x00003FFF +_0809CFEC: .4byte 0x03005AEC +_0809CFF0: .4byte 0x00001270 +_0809CFF4: + ldr r1, _0809D00C + adds r0, r3, r1 + cmp r0, #0 + bge _0809D000 + ldr r2, _0809D010 + adds r0, r3, r2 +_0809D000: + asrs r0, r0, #3 + ldr r1, _0809D014 +_0809D004: + adds r0, r0, r1 +_0809D006: + pop {r1} + bx r1 + .align 2, 0 +_0809D00C: .4byte 0xFFFFC000 +_0809D010: .4byte 0xFFFFC007 +_0809D014: .4byte 0x0203729C + thumb_func_end GetFlagPointer + + thumb_func_start FlagSet +FlagSet: @ 0x0809D018 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r4, #0 + bl GetFlagPointer + adds r2, r0, #0 + cmp r2, #0 + beq _0809D038 + movs r0, #7 + ands r0, r4 + movs r1, #1 + lsls r1, r0 + ldrb r0, [r2] + orrs r1, r0 + strb r1, [r2] +_0809D038: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end FlagSet + + thumb_func_start FlagClear +FlagClear: @ 0x0809D040 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r4, #0 + bl GetFlagPointer + adds r2, r0, #0 + cmp r2, #0 + beq _0809D060 + movs r0, #7 + ands r0, r4 + movs r1, #1 + lsls r1, r0 + ldrb r0, [r2] + bics r0, r1 + strb r0, [r2] +_0809D060: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end FlagClear + + thumb_func_start FlagGet +FlagGet: @ 0x0809D068 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r4, #0 + bl GetFlagPointer + cmp r0, #0 + beq _0809D08C + ldrb r0, [r0] + movs r1, #7 + ands r1, r4 + asrs r0, r1 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0809D08C + movs r0, #1 + b _0809D08E +_0809D08C: + movs r0, #0 +_0809D08E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end FlagGet + diff --git a/asm/event_obj_lock.s b/asm/event_obj_lock.s new file mode 100644 index 0000000..5508df5 --- /dev/null +++ b/asm/event_obj_lock.s @@ -0,0 +1,504 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start walkrun_is_standing_still +walkrun_is_standing_still: @ 0x08097D10 + push {lr} + ldr r0, _08097D20 + ldrb r0, [r0, #3] + cmp r0, #1 + beq _08097D24 + movs r0, #1 + b _08097D26 + .align 2, 0 +_08097D20: .4byte 0x02037230 +_08097D24: + movs r0, #0 +_08097D26: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end walkrun_is_standing_still + + thumb_func_start sub_08097D2C +sub_08097D2C: @ 0x08097D2C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl walkrun_is_standing_still + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08097D46 + bl sub_0808B1C8 + adds r0, r4, #0 + bl DestroyTask +_08097D46: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08097D2C + + thumb_func_start sub_08097D4C +sub_08097D4C: @ 0x08097D4C + push {lr} + ldr r0, _08097D64 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08097D68 + bl sub_0808B658 + movs r0, #1 + b _08097D6A + .align 2, 0 +_08097D64: .4byte 0x08097D2D +_08097D68: + movs r0, #0 +_08097D6A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08097D4C + + thumb_func_start ScriptFreezeEventObjects +ScriptFreezeEventObjects: @ 0x08097D70 + push {lr} + bl FreezeEventObjects + ldr r0, _08097D84 + movs r1, #0x50 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_08097D84: .4byte 0x08097D2D + thumb_func_end ScriptFreezeEventObjects + + thumb_func_start sub_08097D88 +sub_08097D88: @ 0x08097D88 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _08097DF8 + adds r5, r0, r1 + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _08097DB2 + bl walkrun_is_standing_still + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #1 + bne _08097DB2 + bl sub_0808B1C8 + strh r4, [r5, #8] +_08097DB2: + movs r1, #0xa + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _08097DDA + ldr r2, _08097DFC + ldr r0, _08097E00 + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r2 + ldrb r0, [r1] + lsls r0, r0, #0x1e + cmp r0, #0 + blt _08097DDA + adds r0, r1, #0 + bl FreezeEventObject + movs r0, #1 + strh r0, [r5, #0xa] +_08097DDA: + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _08097DF0 + movs r1, #0xa + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _08097DF0 + adds r0, r6, #0 + bl DestroyTask +_08097DF0: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08097DF8: .4byte 0x03005B60 +_08097DFC: .4byte 0x02036FF0 +_08097E00: .4byte 0x03005B50 + thumb_func_end sub_08097D88 + + thumb_func_start sub_08097E04 +sub_08097E04: @ 0x08097E04 + push {lr} + ldr r0, _08097E1C + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08097E20 + bl sub_0808B658 + movs r0, #1 + b _08097E22 + .align 2, 0 +_08097E1C: .4byte 0x08097D89 +_08097E20: + movs r0, #0 +_08097E22: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08097E04 + + thumb_func_start LockSelectedEventObject +LockSelectedEventObject: @ 0x08097E28 + push {r4, r5, lr} + ldr r4, _08097E6C + ldrb r0, [r4] + bl FreezeEventObjectsExceptOne + ldr r0, _08097E70 + movs r1, #0x50 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r2, _08097E74 + ldrb r1, [r4] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r2 + ldrb r0, [r1] + lsls r0, r0, #0x1e + cmp r0, #0 + blt _08097E66 + adds r0, r1, #0 + bl FreezeEventObject + ldr r0, _08097E78 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #1 + strh r0, [r1, #0xa] +_08097E66: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08097E6C: .4byte 0x03005B50 +_08097E70: .4byte 0x08097D89 +_08097E74: .4byte 0x02036FF0 +_08097E78: .4byte 0x03005B60 + thumb_func_end LockSelectedEventObject + + thumb_func_start ScriptUnfreezeEventObjects +ScriptUnfreezeEventObjects: @ 0x08097E7C + push {lr} + movs r0, #0xff + movs r1, #0 + movs r2, #0 + bl GetEventObjectIdByLocalIdAndMap + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08097EA8 + adds r0, r0, r1 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + bl sub_080D2C2C + bl UnfreezeEventObjects + pop {r0} + bx r0 + .align 2, 0 +_08097EA8: .4byte 0x02036FF0 + thumb_func_end ScriptUnfreezeEventObjects + + thumb_func_start sub_08097EAC +sub_08097EAC: @ 0x08097EAC + push {r4, lr} + ldr r4, _08097EF4 + ldr r0, _08097EF8 + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r4 + ldrb r0, [r1] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _08097ECA + adds r0, r1, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 +_08097ECA: + movs r0, #0xff + movs r1, #0 + movs r2, #0 + bl GetEventObjectIdByLocalIdAndMap + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + bl sub_080D2C2C + bl UnfreezeEventObjects + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097EF4: .4byte 0x02036FF0 +_08097EF8: .4byte 0x03005B50 + thumb_func_end sub_08097EAC + + thumb_func_start sub_08097EFC +sub_08097EFC: @ 0x08097EFC + push {lr} + ldr r0, _08097F18 + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08097F1C + adds r0, r0, r1 + ldr r1, _08097F20 + ldrb r1, [r1] + bl EventObjectFaceOppositeDirection + pop {r0} + bx r0 + .align 2, 0 +_08097F18: .4byte 0x03005B50 +_08097F1C: .4byte 0x02036FF0 +_08097F20: .4byte 0x02037294 + thumb_func_end sub_08097EFC + + thumb_func_start sub_08097F24 +sub_08097F24: @ 0x08097F24 + push {lr} + ldr r0, _08097F3C + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08097F40 + adds r0, r0, r1 + bl EventObjectClearHeldMovementIfActive + pop {r0} + bx r0 + .align 2, 0 +_08097F3C: .4byte 0x03005B50 +_08097F40: .4byte 0x02036FF0 + thumb_func_end sub_08097F24 + + thumb_func_start sub_08097F44 +sub_08097F44: @ 0x08097F44 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _08097FB0 + adds r5, r0, r1 + ldrb r7, [r5, #0xc] + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _08097F70 + bl walkrun_is_standing_still + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #1 + bne _08097F70 + bl sub_0808B1C8 + strh r4, [r5, #8] +_08097F70: + movs r1, #0xa + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _08097F94 + ldr r0, _08097FB4 + lsls r1, r7, #3 + adds r1, r1, r7 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1] + lsls r0, r0, #0x1e + cmp r0, #0 + blt _08097F94 + adds r0, r1, #0 + bl FreezeEventObject + movs r0, #1 + strh r0, [r5, #0xa] +_08097F94: + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _08097FAA + movs r1, #0xa + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _08097FAA + adds r0, r6, #0 + bl DestroyTask +_08097FAA: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08097FB0: .4byte 0x03005B60 +_08097FB4: .4byte 0x02036FF0 + thumb_func_end sub_08097F44 + + thumb_func_start sub_08097FB8 +sub_08097FB8: @ 0x08097FB8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + movs r0, #0 + bl GetChosenApproachingTrainerEventObjectId + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _08098058 + ldrb r0, [r0] + cmp r0, #2 + bne _08098068 + movs r0, #1 + bl GetChosenApproachingTrainerEventObjectId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080979FC + ldr r7, _0809805C + adds r0, r7, #0 + movs r1, #0x50 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _08098060 + mov sb, r0 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + mov r1, sb + adds r6, r0, r1 + strh r4, [r6, #0xc] + ldr r2, _08098064 + mov r8, r2 + lsls r0, r4, #3 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r1, r0, r2 + ldrb r0, [r1] + lsls r0, r0, #0x1e + cmp r0, #0 + blt _08098022 + adds r0, r1, #0 + bl FreezeEventObject + movs r0, #1 + strh r0, [r6, #0xa] +_08098022: + adds r0, r7, #0 + movs r1, #0x51 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + mov r1, sb + adds r4, r0, r1 + strh r5, [r4, #0xc] + lsls r0, r5, #3 + adds r0, r0, r5 + lsls r0, r0, #2 + mov r2, r8 + adds r1, r0, r2 + ldrb r0, [r1] + lsls r0, r0, #0x1e + cmp r0, #0 + blt _080980A2 + adds r0, r1, #0 + bl FreezeEventObject + movs r0, #1 + strh r0, [r4, #0xa] + b _080980A2 + .align 2, 0 +_08098058: .4byte 0x03005E08 +_0809805C: .4byte 0x08097F45 +_08098060: .4byte 0x03005B60 +_08098064: .4byte 0x02036FF0 +_08098068: + adds r0, r4, #0 + bl FreezeEventObjectsExceptOne + ldr r0, _080980B0 + movs r1, #0x50 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _080980B4 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r5, r0, r1 + strh r4, [r5, #0xc] + ldr r1, _080980B8 + lsls r0, r4, #3 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r1, r0, r1 + ldrb r0, [r1] + lsls r0, r0, #0x1e + cmp r0, #0 + blt _080980A2 + adds r0, r1, #0 + bl FreezeEventObject + movs r0, #1 + strh r0, [r5, #0xa] +_080980A2: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080980B0: .4byte 0x08097F45 +_080980B4: .4byte 0x03005B60 +_080980B8: .4byte 0x02036FF0 + thumb_func_end sub_08097FB8 + + thumb_func_start sub_080980BC +sub_080980BC: @ 0x080980BC + push {lr} + ldr r0, _080980D4 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080980D8 + bl sub_0808B658 + movs r0, #1 + b _080980DA + .align 2, 0 +_080980D4: .4byte 0x08097F45 +_080980D8: + movs r0, #0 +_080980DA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080980BC + diff --git a/asm/event_object_movement.s b/asm/event_object_movement.s new file mode 100644 index 0000000..c51fa4f --- /dev/null +++ b/asm/event_object_movement.s @@ -0,0 +1,24874 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ClearEventObject +ClearEventObject: @ 0x0808CD60 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r2, #0x24 + bl memset + movs r0, #0xff + strb r0, [r4, #8] + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r4, #9] + strb r0, [r4, #0xa] + strb r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + thumb_func_end ClearEventObject + + thumb_func_start ClearAllEventObjects +ClearAllEventObjects: @ 0x0808CD80 + push {r4, r5, lr} + movs r4, #0 + ldr r5, _0808CDA4 +_0808CD86: + lsls r0, r4, #3 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r5 + bl ClearEventObject + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xf + bls _0808CD86 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0808CDA4: .4byte 0x02036FF0 + thumb_func_end ClearAllEventObjects + + thumb_func_start ResetEventObjects +ResetEventObjects: @ 0x0808CDA8 + push {lr} + bl ClearLinkPlayerEventObjects + bl ClearAllEventObjects + bl ClearPlayerAvatarInfo + bl CreateReflectionEffectSprites + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ResetEventObjects + + thumb_func_start CreateReflectionEffectSprites +CreateReflectionEffectSprites: @ 0x0808CDC0 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + ldr r0, _0808CE5C + ldr r0, [r0, #0x54] + mov sb, r0 + movs r1, #0 + movs r2, #0 + movs r3, #0x1f + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0808CE60 + mov sl, r1 + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + add r4, sl + ldrb r1, [r4, #1] + movs r5, #4 + rsbs r5, r5, #0 + adds r0, r5, #0 + ands r0, r1 + movs r1, #1 + mov r8, r1 + mov r1, r8 + orrs r0, r1 + strb r0, [r4, #1] + adds r0, r4, #0 + bl InitSpriteAffineAnim + adds r0, r4, #0 + movs r1, #0 + bl StartSpriteAffineAnim + adds r4, #0x3e + ldrb r0, [r4] + movs r6, #4 + orrs r0, r6 + strb r0, [r4] + mov r0, sb + movs r1, #0 + movs r2, #0 + movs r3, #0x1f + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + add r4, sl + ldrb r0, [r4, #1] + ands r5, r0 + mov r0, r8 + orrs r5, r0 + strb r5, [r4, #1] + adds r0, r4, #0 + bl InitSpriteAffineAnim + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAffineAnim + adds r4, #0x3e + ldrb r0, [r4] + orrs r0, r6 + strb r0, [r4] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0808CE5C: .4byte 0x084DDE4C +_0808CE60: .4byte 0x020205AC + thumb_func_end CreateReflectionEffectSprites + + thumb_func_start GetFirstInactiveEventObjectId +GetFirstInactiveEventObjectId: @ 0x0808CE64 + push {lr} + movs r1, #0 + ldr r2, _0808CE70 + ldrb r0, [r2] + b _0808CE88 + .align 2, 0 +_0808CE70: .4byte 0x02036FF0 +_0808CE74: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xf + bhi _0808CE8E + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0] +_0808CE88: + lsls r0, r0, #0x1f + cmp r0, #0 + bne _0808CE74 +_0808CE8E: + adds r0, r1, #0 + pop {r1} + bx r1 + thumb_func_end GetFirstInactiveEventObjectId + + thumb_func_start GetEventObjectIdByLocalIdAndMap +GetEventObjectIdByLocalIdAndMap: @ 0x0808CE94 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + cmp r0, #0xfe + bls _0808CEAC + bl GetEventObjectIdByLocalId + b _0808CEB0 +_0808CEAC: + bl GetEventObjectIdByLocalIdAndMapInternal +_0808CEB0: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + thumb_func_end GetEventObjectIdByLocalIdAndMap + + thumb_func_start TryGetEventObjectIdByLocalIdAndMap +TryGetEventObjectIdByLocalIdAndMap: @ 0x0808CEB8 + push {r4, lr} + adds r4, r3, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + bl GetEventObjectIdByLocalIdAndMap + strb r0, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + beq _0808CEDA + movs r0, #0 + b _0808CEDC +_0808CEDA: + movs r0, #1 +_0808CEDC: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TryGetEventObjectIdByLocalIdAndMap + + thumb_func_start GetEventObjectIdByXY +GetEventObjectIdByXY: @ 0x0808CEE4 + push {r4, r5, r6, lr} + movs r3, #0 + ldr r5, _0808CF24 + lsls r0, r0, #0x10 + asrs r4, r0, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 +_0808CEF2: + lsls r0, r3, #3 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r2, r0, r5 + ldrb r0, [r2] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _0808CF12 + movs r6, #0x10 + ldrsh r0, [r2, r6] + cmp r0, r4 + bne _0808CF12 + movs r6, #0x12 + ldrsh r0, [r2, r6] + cmp r0, r1 + beq _0808CF1C +_0808CF12: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0xf + bls _0808CEF2 +_0808CF1C: + adds r0, r3, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0808CF24: .4byte 0x02036FF0 + thumb_func_end GetEventObjectIdByXY + + thumb_func_start GetEventObjectIdByLocalIdAndMapInternal +GetEventObjectIdByLocalIdAndMapInternal: @ 0x0808CF28 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r1, #0 + ldr r6, _0808CF60 +_0808CF3A: + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r3, r0, r6 + ldrb r0, [r3] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _0808CF64 + ldrb r0, [r3, #8] + cmp r0, r5 + bne _0808CF64 + ldrb r0, [r3, #9] + cmp r0, r4 + bne _0808CF64 + ldrb r0, [r3, #0xa] + cmp r0, r2 + bne _0808CF64 + adds r0, r1, #0 + b _0808CF70 + .align 2, 0 +_0808CF60: .4byte 0x02036FF0 +_0808CF64: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xf + bls _0808CF3A + movs r0, #0x10 +_0808CF70: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetEventObjectIdByLocalIdAndMapInternal + + thumb_func_start GetEventObjectIdByLocalId +GetEventObjectIdByLocalId: @ 0x0808CF78 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + movs r2, #0 + ldr r4, _0808CF9C +_0808CF82: + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r1, r0, r4 + ldrb r0, [r1] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _0808CFA0 + ldrb r0, [r1, #8] + cmp r0, r3 + bne _0808CFA0 + adds r0, r2, #0 + b _0808CFAC + .align 2, 0 +_0808CF9C: .4byte 0x02036FF0 +_0808CFA0: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xf + bls _0808CF82 + movs r0, #0x10 +_0808CFAC: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetEventObjectIdByLocalId + + thumb_func_start InitEventObjectStateFromTemplate +InitEventObjectStateFromTemplate: @ 0x0808CFB4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + adds r5, r0, #0 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + ldrb r0, [r5] + adds r1, r6, #0 + adds r2, r7, #0 + mov r3, sp + bl GetAvailableEventObjectId + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808CFDE + movs r0, #0x10 + b _0808D0D2 +_0808CFDE: + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808D0E0 + adds r4, r0, r1 + adds r0, r4, #0 + bl ClearEventObject + ldrh r3, [r5, #4] + adds r3, #7 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + ldrh r2, [r5, #6] + adds r2, #7 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldrb r0, [r4] + movs r1, #1 + orrs r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r4] + ldrb r0, [r5, #1] + strb r0, [r4, #5] + ldrb r0, [r5, #9] + strb r0, [r4, #6] + ldrb r0, [r5] + strb r0, [r4, #8] + strb r6, [r4, #9] + strb r7, [r4, #0xa] + strh r3, [r4, #0xc] + strh r2, [r4, #0xe] + strh r3, [r4, #0x10] + strh r2, [r4, #0x12] + strh r3, [r4, #0x14] + strh r2, [r4, #0x16] + ldrb r0, [r5, #8] + movs r7, #0xf + adds r1, r7, #0 + ands r1, r0 + ldrb r2, [r4, #0xb] + movs r0, #0x10 + rsbs r0, r0, #0 + mov r8, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0xb] + ldrb r1, [r5, #8] + lsls r1, r1, #4 + ands r0, r7 + orrs r0, r1 + strb r0, [r4, #0xb] + ldrb r1, [r5, #0xa] + lsls r1, r1, #0x1c + movs r0, #0xf + mov sb, r0 + lsrs r1, r1, #0x1c + ldrb r2, [r4, #0x19] + mov r0, r8 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] + ldrb r1, [r5, #0xa] + lsrs r1, r1, #4 + lsls r1, r1, #4 + ands r0, r7 + orrs r0, r1 + strb r0, [r4, #0x19] + ldrh r0, [r5, #0xc] + strb r0, [r4, #7] + ldrh r0, [r5, #0xe] + strb r0, [r4, #0x1d] + ldr r1, _0808D0E4 + ldrb r0, [r5, #9] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x20 + strb r1, [r0] + ldrb r1, [r0] + adds r0, r4, #0 + bl SetEventObjectDirection + adds r0, r4, #0 + bl SetEventObjectDynamicGraphicsId + ldr r1, _0808D0E8 + ldrb r0, [r4, #6] + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _0808D0CE + ldrb r2, [r4, #0x19] + adds r0, r7, #0 + ands r0, r2 + cmp r0, #0 + bne _0808D0B6 + lsls r0, r2, #0x1c + lsrs r0, r0, #0x1c + adds r0, #1 + mov r1, sb + ands r0, r1 + mov r1, r8 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x19] +_0808D0B6: + ldrb r2, [r4, #0x19] + movs r0, #0xf0 + ands r0, r2 + cmp r0, #0 + bne _0808D0CE + lsrs r1, r2, #4 + adds r1, #1 + lsls r1, r1, #4 + adds r0, r7, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] +_0808D0CE: + mov r0, sp + ldrb r0, [r0] +_0808D0D2: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0808D0E0: .4byte 0x02036FF0 +_0808D0E4: .4byte 0x084DDA21 +_0808D0E8: .4byte 0x084DD9D0 + thumb_func_end InitEventObjectStateFromTemplate + + thumb_func_start Unref_TryInitLocalEventObject +Unref_TryInitLocalEventObject: @ 0x0808D0EC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r4, _0808D114 + ldr r0, [r4, #4] + cmp r0, #0 + beq _0808D16E + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808D118 + bl GetNumBattlePyramidEventObjects + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + b _0808D13A + .align 2, 0 +_0808D114: .4byte 0x02036FB8 +_0808D118: + bl InTrainerHill + cmp r0, #0 + beq _0808D136 + movs r6, #2 + b _0808D13A +_0808D124: + ldr r0, [r7] + ldrb r1, [r0, #5] + ldrb r2, [r0, #4] + adds r0, r4, #0 + bl InitEventObjectStateFromTemplate + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0808D170 +_0808D136: + ldr r0, [r4, #4] + ldrb r6, [r0] +_0808D13A: + movs r5, #0 + cmp r5, r6 + bhs _0808D16E + ldr r7, _0808D17C +_0808D142: + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #3 + movs r1, #0xc7 + lsls r1, r1, #4 + adds r0, r0, r1 + ldr r1, [r7] + adds r4, r1, r0 + ldrb r0, [r4] + cmp r0, r8 + bne _0808D164 + ldrh r0, [r4, #0x14] + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808D124 +_0808D164: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, r6 + blo _0808D142 +_0808D16E: + movs r0, #0x10 +_0808D170: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0808D17C: .4byte 0x03005AEC + thumb_func_end Unref_TryInitLocalEventObject + + thumb_func_start GetAvailableEventObjectId +GetAvailableEventObjectId: @ 0x0808D180 + push {r4, r5, r6, r7, lr} + mov ip, r3 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r4, r2, #0x18 + movs r2, #0 + ldr r1, _0808D1DC + ldrb r0, [r1] + lsls r0, r0, #0x1f + adds r7, r1, #0 + cmp r0, #0 + beq _0808D1D4 + adds r3, r1, #0 +_0808D1A0: + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r1, r0, r3 + ldrb r0, [r1, #8] + cmp r0, r6 + bne _0808D1BA + ldrb r0, [r1, #9] + cmp r0, r5 + bne _0808D1BA + ldrb r0, [r1, #0xa] + cmp r0, r4 + beq _0808D1D8 +_0808D1BA: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xf + bhi _0808D1D8 + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrb r0, [r0] + lsls r0, r0, #0x1f + cmp r0, #0 + bne _0808D1A0 +_0808D1D4: + cmp r2, #0xf + bls _0808D1E0 +_0808D1D8: + movs r0, #1 + b _0808D214 + .align 2, 0 +_0808D1DC: .4byte 0x02036FF0 +_0808D1E0: + mov r0, ip + strb r2, [r0] + ldr r1, _0808D21C +_0808D1E6: + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r3, r0, r1 + ldrb r0, [r3] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _0808D208 + ldrb r0, [r3, #8] + cmp r0, r6 + bne _0808D208 + ldrb r0, [r3, #9] + cmp r0, r5 + bne _0808D208 + ldrb r0, [r3, #0xa] + cmp r0, r4 + beq _0808D1D8 +_0808D208: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xf + bls _0808D1E6 + movs r0, #0 +_0808D214: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0808D21C: .4byte 0x02036FF0 + thumb_func_end GetAvailableEventObjectId + + thumb_func_start RemoveEventObject +RemoveEventObject: @ 0x0808D220 + push {lr} + ldrb r2, [r0] + movs r1, #2 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + bl RemoveEventObjectInternal + pop {r0} + bx r0 + thumb_func_end RemoveEventObject + + thumb_func_start RemoveEventObjectByLocalIdAndMap +RemoveEventObjectByLocalIdAndMap: @ 0x0808D234 + push {lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808D272 + mov r0, sp + ldrb r0, [r0] + bl GetEventObjectFlagIdByEventObjectId + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl FlagSet + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808D278 + adds r0, r0, r1 + bl RemoveEventObject +_0808D272: + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_0808D278: .4byte 0x02036FF0 + thumb_func_end RemoveEventObjectByLocalIdAndMap + + thumb_func_start RemoveEventObjectInternal +RemoveEventObjectInternal: @ 0x0808D27C + push {r4, lr} + sub sp, #8 + adds r4, r0, #0 + ldrb r0, [r4, #5] + bl GetEventObjectGraphicsInfo + ldrh r2, [r0, #6] + ldr r1, _0808D2C0 + ldr r0, [sp, #4] + ands r0, r1 + orrs r0, r2 + str r0, [sp, #4] + ldr r2, _0808D2C4 + ldrb r1, [r4, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r2, #0 + adds r1, #0xc + adds r0, r0, r1 + mov r1, sp + str r1, [r0] + ldrb r1, [r4, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + bl DestroySprite + add sp, #8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808D2C0: .4byte 0xFFFF0000 +_0808D2C4: .4byte 0x020205AC + thumb_func_end RemoveEventObjectInternal + + thumb_func_start RemoveAllEventObjectsExceptPlayer +RemoveAllEventObjectsExceptPlayer: @ 0x0808D2C8 + push {r4, lr} + movs r4, #0 +_0808D2CC: + ldr r0, _0808D2F4 + ldrb r0, [r0, #5] + cmp r4, r0 + beq _0808D2E2 + lsls r0, r4, #3 + adds r0, r0, r4 + lsls r0, r0, #2 + ldr r1, _0808D2F8 + adds r0, r0, r1 + bl RemoveEventObject +_0808D2E2: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xf + bls _0808D2CC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808D2F4: .4byte 0x02037230 +_0808D2F8: .4byte 0x02036FF0 + thumb_func_end RemoveAllEventObjectsExceptPlayer + + thumb_func_start TrySetupEventObjectSprite +TrySetupEventObjectSprite: @ 0x0808D2FC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov r8, r1 + adds r1, r2, #0 + adds r2, r3, #0 + ldr r3, [sp, #0x24] + ldr r4, [sp, #0x28] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + mov sl, r3 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + str r4, [sp] + bl InitEventObjectStateFromTemplate + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + cmp r0, #0x10 + bne _0808D338 + movs r0, #0x10 + b _0808D49C +_0808D338: + mov r0, sb + lsls r4, r0, #3 + adds r0, r4, r0 + lsls r0, r0, #2 + ldr r1, _0808D360 + adds r6, r0, r1 + ldrb r0, [r6, #5] + bl GetEventObjectGraphicsInfo + adds r7, r0, #0 + ldrb r0, [r7, #0xc] + lsls r0, r0, #0x1c + lsrs r5, r0, #0x1c + cmp r5, #0 + bne _0808D364 + ldrh r0, [r7, #2] + movs r1, #0 + bl LoadPlayerObjectReflectionPalette + b _0808D386 + .align 2, 0 +_0808D360: .4byte 0x02036FF0 +_0808D364: + cmp r5, #0xa + bne _0808D372 + ldrh r0, [r7, #2] + movs r1, #0xa + bl LoadSpecialObjectReflectionPalette + b _0808D386 +_0808D372: + cmp r5, #0xf + bls _0808D386 + adds r0, r5, #0 + subs r0, #0x10 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldrh r0, [r7, #2] + adds r1, r5, #0 + bl sub_0808E420 +_0808D386: + ldrb r0, [r6, #6] + cmp r0, #0x4c + bne _0808D394 + ldrb r0, [r6, #1] + movs r1, #0x20 + orrs r0, r1 + strb r0, [r6, #1] +_0808D394: + ldr r1, _0808D3CC + adds r0, r1, #0 + mov r2, r8 + strh r0, [r2, #2] + mov r0, r8 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + cmp r0, #0x40 + bne _0808D3D4 + ldr r0, _0808D3D0 + mov r2, sb + adds r1, r4, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + movs r0, #0x10 + b _0808D49C + .align 2, 0 +_0808D3CC: .4byte 0x0000FFFF +_0808D3D0: .4byte 0x02036FF0 +_0808D3D4: + mov r1, r8 + lsls r0, r1, #4 + add r0, r8 + lsls r0, r0, #2 + ldr r1, _0808D4AC + adds r4, r0, r1 + mov r2, sl + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + ldrh r1, [r6, #0x10] + adds r0, r0, r1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldr r2, [sp] + lsls r1, r2, #0x10 + asrs r1, r1, #0x10 + ldrh r2, [r6, #0x12] + adds r1, r1, r2 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r2, r4, #0 + adds r2, #0x20 + adds r3, r4, #0 + adds r3, #0x22 + bl sub_08092960 + ldrh r0, [r7, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + rsbs r0, r0, #0 + adds r1, r4, #0 + adds r1, #0x28 + strb r0, [r1] + ldrh r0, [r7, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + rsbs r0, r0, #0 + adds r2, r4, #0 + adds r2, #0x29 + strb r0, [r2] + ldrh r0, [r4, #0x20] + adds r0, #8 + strh r0, [r4, #0x20] + ldrh r1, [r4, #0x22] + adds r1, #0x10 + movs r0, #0 + ldrsb r0, [r2, r0] + adds r0, r0, r1 + strh r0, [r4, #0x22] + lsls r2, r5, #4 + ldrb r1, [r4, #5] + movs r0, #0xf + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #5] + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #2 + orrs r0, r1 + strb r0, [r2] + mov r0, sb + strh r0, [r4, #0x2e] + mov r1, r8 + strb r1, [r6, #4] + ldrb r1, [r7, #0xc] + lsls r1, r1, #0x19 + lsrs r1, r1, #0x1f + lsls r1, r1, #4 + ldrb r2, [r6, #1] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r6, #1] + lsls r0, r0, #0x1b + cmp r0, #0 + blt _0808D486 + ldrb r0, [r6, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl GetJumpInPlaceMovementAction + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim +_0808D486: + ldrb r0, [r6, #0xb] + lsrs r0, r0, #4 + adds r1, r4, #0 + movs r2, #1 + bl SetObjectSubpriorityByZCoord + adds r0, r6, #0 + adds r1, r4, #0 + bl UpdateEventObjectVisibility + mov r0, sb +_0808D49C: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0808D4AC: .4byte 0x020205AC + thumb_func_end TrySetupEventObjectSprite + + thumb_func_start TrySpawnEventObjectTemplate +TrySpawnEventObjectTemplate: @ 0x0808D4B0 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x2c + mov sb, r0 + adds r6, r1, #0 + mov r8, r2 + adds r4, r3, #0 + ldr r5, [sp, #0x48] + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov r0, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + movs r0, #0 + str r0, [sp, #0x20] + mov r1, sb + ldrb r0, [r1, #1] + bl GetEventObjectGraphicsInfo + adds r7, r0, #0 + add r2, sp, #0x20 + mov r0, sb + add r1, sp, #8 + bl sub_0808D6C0 + ldrh r3, [r7, #6] + ldr r2, _0808D528 + add r1, sp, #0x24 + ldr r0, [r1, #4] + ands r0, r2 + orrs r0, r3 + str r0, [r1, #4] + str r1, [sp, #0x14] + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + str r4, [sp] + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + str r5, [sp, #4] + mov r0, sb + add r1, sp, #8 + adds r2, r6, #0 + mov r3, r8 + bl TrySetupEventObjectSprite + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r5, r2, #0 + cmp r2, #0x10 + bne _0808D52C + movs r0, #0x10 + b _0808D562 + .align 2, 0 +_0808D528: .4byte 0xFFFF0000 +_0808D52C: + ldr r4, _0808D570 + ldr r1, _0808D574 + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r3, r0, r1 + ldrb r1, [r3, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0xc + adds r0, r0, r1 + ldr r1, [r7, #0x1c] + str r1, [r0] + ldr r2, [sp, #0x20] + cmp r2, #0 + beq _0808D560 + ldrb r1, [r3, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r1, r2, #0 + bl SetSubspriteTables +_0808D560: + adds r0, r5, #0 +_0808D562: + add sp, #0x2c + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0808D570: .4byte 0x020205AC +_0808D574: .4byte 0x02036FF0 + thumb_func_end TrySpawnEventObjectTemplate + + thumb_func_start SpawnSpecialEventObject +SpawnSpecialEventObject: @ 0x0808D578 + push {r4, r5, r6, lr} + sub sp, #8 + adds r5, r0, #0 + mov r4, sp + adds r4, #6 + add r0, sp, #4 + adds r1, r4, #0 + bl GetEventObjectMovingCameraOffset + ldr r0, _0808D5B0 + ldr r0, [r0] + ldrb r1, [r0, #5] + ldrb r2, [r0, #4] + add r0, sp, #4 + movs r6, #0 + ldrsh r3, [r0, r6] + movs r6, #0 + ldrsh r0, [r4, r6] + str r0, [sp] + adds r0, r5, #0 + bl TrySpawnEventObjectTemplate + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #8 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0808D5B0: .4byte 0x03005AEC + thumb_func_end SpawnSpecialEventObject + + thumb_func_start SpawnSpecialEventObjectParameterized +SpawnSpecialEventObjectParameterized: @ 0x0808D5B4 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0x18 + ldr r4, [sp, #0x2c] + ldr r5, [sp, #0x30] + mov r8, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r3, r3, #0x10 + ldr r5, _0808D618 + adds r3, r3, r5 + lsrs r3, r3, #0x10 + lsls r4, r4, #0x10 + adds r4, r4, r5 + lsrs r4, r4, #0x10 + mov r5, sp + movs r6, #0 + strb r2, [r5] + mov r2, sp + strb r0, [r2, #1] + mov r0, sp + strb r6, [r0, #2] + movs r5, #0 + strh r3, [r0, #4] + strh r4, [r0, #6] + mov r2, r8 + strb r2, [r0, #8] + strb r1, [r0, #9] + mov r2, sp + ldrb r1, [r2, #0xa] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0xa] + mov r0, sp + strb r5, [r0, #0xa] + strh r6, [r0, #0xc] + strh r6, [r0, #0xe] + bl SpawnSpecialEventObject + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #0x18 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0808D618: .4byte 0xFFF90000 + thumb_func_end SpawnSpecialEventObjectParameterized + + thumb_func_start TrySpawnEventObject +TrySpawnEventObject: @ 0x0808D61C + push {r4, r5, r6, r7, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + adds r1, r7, #0 + adds r2, r6, #0 + bl GetEventObjectTemplateByLocalIdAndMap + adds r5, r0, #0 + cmp r5, #0 + beq _0808D662 + mov r4, sp + adds r4, #6 + add r0, sp, #4 + adds r1, r4, #0 + bl GetEventObjectMovingCameraOffset + add r0, sp, #4 + movs r1, #0 + ldrsh r3, [r0, r1] + movs r1, #0 + ldrsh r0, [r4, r1] + str r0, [sp] + adds r0, r5, #0 + adds r1, r7, #0 + adds r2, r6, #0 + bl TrySpawnEventObjectTemplate + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0808D664 +_0808D662: + movs r0, #0x10 +_0808D664: + add sp, #8 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end TrySpawnEventObject + + thumb_func_start MakeObjectTemplateFromEventObjectGraphicsInfo +MakeObjectTemplateFromEventObjectGraphicsInfo: @ 0x0808D66C + push {r4, r5, r6, lr} + adds r5, r1, #0 + adds r4, r2, #0 + adds r6, r3, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetEventObjectGraphicsInfo + ldrh r1, [r0] + strh r1, [r4] + ldrh r1, [r0, #2] + strh r1, [r4, #2] + ldr r1, [r0, #0x10] + str r1, [r4, #4] + ldr r1, [r0, #0x18] + str r1, [r4, #8] + ldr r1, [r0, #0x1c] + str r1, [r4, #0xc] + ldr r1, [r0, #0x20] + str r1, [r4, #0x10] + str r5, [r4, #0x14] + ldr r0, [r0, #0x14] + str r0, [r6] + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end MakeObjectTemplateFromEventObjectGraphicsInfo + + thumb_func_start MakeObjectTemplateFromEventObjectGraphicsInfoWithCallbackIndex +MakeObjectTemplateFromEventObjectGraphicsInfoWithCallbackIndex: @ 0x0808D6A0 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r1, #0x10 + ldr r4, _0808D6BC + lsrs r1, r1, #0xe + adds r1, r1, r4 + ldr r1, [r1] + bl MakeObjectTemplateFromEventObjectGraphicsInfo + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808D6BC: .4byte 0x084DD88C + thumb_func_end MakeObjectTemplateFromEventObjectGraphicsInfoWithCallbackIndex + + thumb_func_start sub_0808D6C0 +sub_0808D6C0: @ 0x0808D6C0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r3, r2, #0 + ldrb r0, [r4, #1] + ldrb r1, [r4, #9] + adds r2, r5, #0 + bl MakeObjectTemplateFromEventObjectGraphicsInfoWithCallbackIndex + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_0808D6C0 + + thumb_func_start AddPseudoEventObject +AddPseudoEventObject: @ 0x0808D6D8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r0, [sp, #0x20] + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + mov r8, r2 + lsls r3, r3, #0x10 + lsrs r7, r3, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + movs r0, #0x18 + bl Alloc + adds r6, r0, #0 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + mov r3, sp + bl MakeObjectTemplateFromEventObjectGraphicsInfo + ldrh r1, [r6, #2] + ldr r0, _0808D774 + cmp r1, r0 + beq _0808D71E + adds r0, r1, #0 + bl LoadEventObjectPalette +_0808D71E: + mov r0, r8 + lsls r1, r0, #0x10 + asrs r1, r1, #0x10 + lsls r2, r7, #0x10 + asrs r2, r2, #0x10 + adds r0, r6, #0 + mov r3, sb + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r6, #0 + bl Free + cmp r5, #0x40 + beq _0808D762 + ldr r1, [sp] + cmp r1, #0 + beq _0808D762 + lsls r4, r5, #4 + adds r4, r4, r5 + lsls r4, r4, #2 + ldr r0, _0808D778 + adds r4, r4, r0 + adds r0, r4, #0 + bl SetSubspriteTables + adds r4, #0x42 + ldrb r1, [r4] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4] +_0808D762: + adds r0, r5, #0 + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0808D774: .4byte 0x0000FFFF +_0808D778: .4byte 0x020205AC + thumb_func_end AddPseudoEventObject + + thumb_func_start sprite_new +sprite_new: @ 0x0808D77C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + adds r5, r0, #0 + ldr r0, [sp, #0x40] + ldr r4, [sp, #0x44] + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sb, r1 + add r1, sp, #0x18 + mov r8, r1 + strh r2, [r1] + mov r6, sp + adds r6, #0x1a + strh r3, [r6] + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov sl, r4 + adds r0, r5, #0 + bl GetEventObjectGraphicsInfo + adds r4, r0, #0 + ldr r1, _0808D87C + add r3, sp, #0x1c + adds r0, r5, #0 + mov r2, sp + bl MakeObjectTemplateFromEventObjectGraphicsInfo + mov r1, sp + ldr r2, _0808D880 + adds r0, r2, #0 + strh r0, [r1, #2] + mov r1, r8 + movs r2, #0 + ldrsh r0, [r1, r2] + adds r0, #7 + strh r0, [r1] + movs r1, #0 + ldrsh r0, [r6, r1] + adds r0, #7 + strh r0, [r6] + mov r0, r8 + adds r1, r6, #0 + movs r2, #8 + movs r3, #0x10 + bl sub_08092A50 + mov r2, r8 + movs r0, #0 + ldrsh r1, [r2, r0] + movs r0, #0 + ldrsh r2, [r6, r0] + mov r0, sp + movs r3, #0 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0x40 + beq _0808D8DC + lsls r0, r6, #4 + adds r0, r0, r6 + lsls r0, r0, #2 + ldr r1, _0808D884 + adds r5, r0, r1 + ldrh r0, [r4, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + rsbs r0, r0, #0 + adds r1, r5, #0 + adds r1, #0x28 + strb r0, [r1] + ldrh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + rsbs r0, r0, #0 + adds r1, #1 + strb r0, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r1, [r5, #0x22] + adds r0, r0, r1 + strh r0, [r5, #0x22] + ldrb r0, [r4, #0xc] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x18 + ldrb r1, [r5, #5] + movs r3, #0xf + adds r2, r3, #0 + ands r2, r1 + orrs r2, r0 + strb r2, [r5, #5] + lsls r1, r2, #0x18 + lsrs r0, r1, #0x1c + cmp r0, #0xf + bls _0808D854 + subs r0, #0x10 + lsls r0, r0, #4 + ands r2, r3 + orrs r2, r0 + strb r2, [r5, #5] +_0808D854: + adds r2, r5, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #2 + orrs r0, r1 + strb r0, [r2] + mov r2, sb + strh r2, [r5, #0x2e] + strh r7, [r5, #0x30] + ldrb r1, [r4, #0xc] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0xa + bne _0808D888 + ldrh r0, [r4, #2] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + bl LoadSpecialObjectReflectionPalette + b _0808D89C + .align 2, 0 +_0808D87C: .4byte 0x08097439 +_0808D880: .4byte 0x0000FFFF +_0808D884: .4byte 0x020205AC +_0808D888: + lsls r1, r1, #0x1c + lsrs r0, r1, #0x1c + cmp r0, #0xf + bls _0808D89C + ldrh r0, [r4, #2] + lsrs r2, r1, #0x1c + movs r1, #0xf0 + orrs r1, r2 + bl sub_0808E420 +_0808D89C: + ldr r1, [sp, #0x1c] + cmp r1, #0 + beq _0808D8B8 + adds r0, r5, #0 + bl SetSubspriteTables + adds r2, r5, #0 + adds r2, #0x42 + ldrb r0, [r2] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x80 + orrs r1, r0 + strb r1, [r2] +_0808D8B8: + adds r0, r5, #0 + adds r1, r7, #0 + bl InitObjectPriorityByZCoord + adds r0, r7, #0 + adds r1, r5, #0 + movs r2, #1 + bl SetObjectSubpriorityByZCoord + mov r0, sl + bl GetJumpInPlaceMovementAction + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl StartSpriteAnim +_0808D8DC: + adds r0, r6, #0 + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sprite_new + + thumb_func_start TrySpawnEventObjects +TrySpawnEventObjects: @ 0x0808D8F0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #4] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp, #8] + ldr r5, _0808D948 + ldr r0, [r5, #4] + cmp r0, #0 + beq _0808D9E8 + ldr r0, _0808D94C + ldr r2, [r0] + ldrh r1, [r2] + subs r0, r1, #2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + adds r1, #0x11 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp, #0xc] + ldrh r4, [r2, #2] + adds r0, r4, #0 + adds r0, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808D950 + bl GetNumBattlePyramidEventObjects + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + b _0808D960 + .align 2, 0 +_0808D948: .4byte 0x02036FB8 +_0808D94C: .4byte 0x03005AEC +_0808D950: + bl InTrainerHill + cmp r0, #0 + beq _0808D95C + movs r6, #2 + b _0808D960 +_0808D95C: + ldr r0, [r5, #4] + ldrb r6, [r0] +_0808D960: + movs r5, #0 + cmp r5, r6 + bhs _0808D9E8 + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + mov sb, r0 + mov r1, r8 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + mov r8, r0 +_0808D974: + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #3 + movs r2, #0xc7 + lsls r2, r2, #4 + adds r0, r0, r2 + ldr r3, _0808D9F8 + ldr r1, [r3] + adds r4, r1, r0 + ldrh r0, [r4, #4] + adds r0, #7 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldrh r0, [r4, #6] + adds r0, #7 + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + cmp sb, r1 + bgt _0808D9DE + mov r7, sl + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + cmp r0, r1 + blt _0808D9DE + lsls r0, r2, #0x10 + asrs r1, r0, #0x10 + cmp r8, r1 + bgt _0808D9DE + ldr r2, [sp, #0xc] + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + cmp r0, r1 + blt _0808D9DE + ldrh r0, [r4, #0x14] + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808D9DE + ldr r3, _0808D9F8 + ldr r0, [r3] + ldrb r1, [r0, #5] + ldrb r2, [r0, #4] + ldr r7, [sp, #4] + lsls r3, r7, #0x10 + ldr r7, [sp, #8] + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + str r0, [sp] + adds r0, r4, #0 + asrs r3, r3, #0x10 + bl TrySpawnEventObjectTemplate +_0808D9DE: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, r6 + blo _0808D974 +_0808D9E8: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0808D9F8: .4byte 0x03005AEC + thumb_func_end TrySpawnEventObjects + + thumb_func_start RemoveEventObjectsOutsideView +RemoveEventObjectsOutsideView: @ 0x0808D9FC + push {r4, r5, r6, lr} + movs r3, #0 + ldr r6, _0808DA50 +_0808DA02: + movs r2, #0 + movs r4, #0 + adds r5, r3, #1 +_0808DA08: + lsls r0, r2, #2 + adds r1, r0, r6 + ldrb r0, [r1] + cmp r0, #0 + beq _0808DA1A + ldrb r1, [r1, #2] + cmp r3, r1 + bne _0808DA1A + movs r4, #1 +_0808DA1A: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #3 + bls _0808DA08 + cmp r4, #0 + bne _0808DA42 + lsls r0, r3, #3 + adds r0, r0, r3 + lsls r0, r0, #2 + ldr r1, _0808DA54 + adds r2, r0, r1 + ldr r0, [r2] + ldr r1, _0808DA58 + ands r0, r1 + cmp r0, #1 + bne _0808DA42 + adds r0, r2, #0 + bl RemoveEventObjectIfOutsideView +_0808DA42: + lsls r0, r5, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0xf + bls _0808DA02 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0808DA50: .4byte 0x02031FA8 +_0808DA54: .4byte 0x02036FF0 +_0808DA58: .4byte 0x00010001 + thumb_func_end RemoveEventObjectsOutsideView + + thumb_func_start RemoveEventObjectIfOutsideView +RemoveEventObjectIfOutsideView: @ 0x0808DA5C + push {r4, r5, r6, r7, lr} + adds r3, r0, #0 + ldr r0, _0808DAD8 + ldr r2, [r0] + ldrh r0, [r2] + subs r1, r0, #2 + lsls r1, r1, #0x10 + adds r0, #0x11 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldrh r4, [r2, #2] + adds r0, r4, #0 + adds r0, #0x10 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + movs r0, #0x10 + ldrsh r2, [r3, r0] + lsrs r7, r1, #0x10 + asrs r1, r1, #0x10 + cmp r2, r1 + blt _0808DAA2 + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + cmp r2, r0 + bgt _0808DAA2 + movs r0, #0x12 + ldrsh r1, [r3, r0] + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + cmp r1, r0 + blt _0808DAA2 + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + cmp r1, r0 + ble _0808DAD0 +_0808DAA2: + movs r0, #0xc + ldrsh r1, [r3, r0] + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + cmp r1, r0 + blt _0808DACA + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + cmp r1, r0 + bgt _0808DACA + movs r0, #0xe + ldrsh r1, [r3, r0] + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + cmp r1, r0 + blt _0808DACA + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + cmp r1, r0 + ble _0808DAD0 +_0808DACA: + adds r0, r3, #0 + bl RemoveEventObject +_0808DAD0: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0808DAD8: .4byte 0x03005AEC + thumb_func_end RemoveEventObjectIfOutsideView + + thumb_func_start sub_0808DADC +sub_0808DADC: @ 0x0808DADC + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + bl ClearPlayerAvatarInfo + movs r6, #0 + ldr r7, _0808DB24 + lsls r4, r4, #0x10 + lsls r5, r5, #0x10 +_0808DAF6: + lsls r0, r6, #3 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrb r0, [r0] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _0808DB10 + adds r0, r6, #0 + asrs r1, r4, #0x10 + asrs r2, r5, #0x10 + bl sub_0808DB28 +_0808DB10: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0xf + bls _0808DAF6 + bl CreateReflectionEffectSprites + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0808DB24: .4byte 0x02036FF0 + thumb_func_end sub_0808DADC + + thumb_func_start sub_0808DB28 +sub_0808DB28: @ 0x0808DB28 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x28 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sl, r1 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + str r2, [sp, #0x24] + movs r7, #0 + ldr r2, _0808DBB8 +_0808DB4A: + lsls r0, r7, #2 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, #0 + beq _0808DB5C + ldrb r1, [r1, #2] + cmp sb, r1 + bne _0808DB5C + b _0808DCE4 +_0808DB5C: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #3 + bls _0808DB4A + mov r1, sb + lsls r0, r1, #3 + add r0, sb + lsls r0, r0, #2 + ldr r1, _0808DBBC + adds r6, r0, r1 + movs r0, #0 + str r0, [sp, #0x20] + ldrb r0, [r6, #5] + bl GetEventObjectGraphicsInfo + adds r5, r0, #0 + ldrh r2, [r5, #6] + ldr r1, _0808DBC0 + add r4, sp, #0x18 + ldr r0, [r4, #4] + ands r0, r1 + orrs r0, r2 + str r0, [r4, #4] + ldrb r0, [r6, #5] + ldrb r1, [r6, #6] + add r3, sp, #0x20 + mov r2, sp + bl MakeObjectTemplateFromEventObjectGraphicsInfoWithCallbackIndex + str r4, [sp, #0xc] + mov r1, sp + ldr r2, _0808DBC4 + adds r0, r2, #0 + strh r0, [r1, #2] + ldrb r0, [r5, #0xc] + lsls r1, r0, #0x1c + lsrs r0, r1, #0x1c + mov r8, r0 + cmp r0, #0 + bne _0808DBC8 + ldrh r0, [r5, #2] + lsrs r1, r1, #0x1c + bl LoadPlayerObjectReflectionPalette + b _0808DBEE + .align 2, 0 +_0808DBB8: .4byte 0x02031FA8 +_0808DBBC: .4byte 0x02036FF0 +_0808DBC0: .4byte 0xFFFF0000 +_0808DBC4: .4byte 0x0000FFFF +_0808DBC8: + mov r2, r8 + cmp r2, #0xa + bne _0808DBD8 + ldrh r0, [r5, #2] + lsrs r1, r1, #0x1c + bl LoadSpecialObjectReflectionPalette + b _0808DBEE +_0808DBD8: + mov r0, r8 + cmp r0, #0xf + bls _0808DBEE + subs r0, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldrh r0, [r5, #2] + mov r1, r8 + bl sub_0808E420 +_0808DBEE: + mov r1, sp + ldr r2, _0808DCF4 + adds r0, r2, #0 + strh r0, [r1, #2] + mov r0, sp + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #0x40 + beq _0808DCE4 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + ldr r1, _0808DCF8 + adds r4, r0, r1 + mov r1, sl + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + ldrh r2, [r6, #0x10] + adds r0, r0, r2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldr r2, [sp, #0x24] + lsls r1, r2, #0x10 + asrs r1, r1, #0x10 + ldrh r2, [r6, #0x12] + adds r1, r1, r2 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r2, r4, #0 + adds r2, #0x20 + adds r3, r4, #0 + adds r3, #0x22 + bl sub_08092960 + ldrh r0, [r5, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + rsbs r0, r0, #0 + adds r1, r4, #0 + adds r1, #0x28 + strb r0, [r1] + ldrh r0, [r5, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + rsbs r0, r0, #0 + adds r2, r4, #0 + adds r2, #0x29 + strb r0, [r2] + ldrh r0, [r4, #0x20] + adds r0, #8 + strh r0, [r4, #0x20] + ldrh r1, [r4, #0x22] + adds r1, #0x10 + movs r0, #0 + ldrsb r0, [r2, r0] + adds r0, r0, r1 + strh r0, [r4, #0x22] + ldr r0, [r5, #0x1c] + str r0, [r4, #0xc] + ldrb r0, [r6, #6] + cmp r0, #0xb + bne _0808DC82 + mov r0, sb + adds r1, r7, #0 + bl SetPlayerAvatarEventObjectIdAndObjectId + bl CreateWarpArrowSprite + strb r0, [r6, #0x1b] +_0808DC82: + ldr r1, [sp, #0x20] + cmp r1, #0 + beq _0808DC8E + adds r0, r4, #0 + bl SetSubspriteTables +_0808DC8E: + mov r0, r8 + lsls r2, r0, #4 + ldrb r1, [r4, #5] + movs r0, #0xf + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #5] + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #2 + orrs r0, r1 + strb r0, [r2] + mov r1, sb + strh r1, [r4, #0x2e] + strb r7, [r6, #4] + ldrb r0, [r6, #1] + lsls r0, r0, #0x1b + cmp r0, #0 + blt _0808DCD2 + ldrb r0, [r6, #6] + cmp r0, #0xb + beq _0808DCD2 + ldrb r0, [r6, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl GetJumpInPlaceMovementAction + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim +_0808DCD2: + adds r0, r6, #0 + bl sub_0808DCFC + ldrb r0, [r6, #0xb] + lsrs r0, r0, #4 + adds r1, r4, #0 + movs r2, #1 + bl SetObjectSubpriorityByZCoord +_0808DCE4: + add sp, #0x28 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0808DCF4: .4byte 0x0000FFFF +_0808DCF8: .4byte 0x020205AC + thumb_func_end sub_0808DB28 + + thumb_func_start sub_0808DCFC +sub_0808DCFC: @ 0x0808DCFC + push {lr} + ldrb r2, [r0] + movs r3, #3 + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r1, r2 + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + ldrb r2, [r0, #2] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r2 + ands r1, r3 + movs r2, #5 + rsbs r2, r2, #0 + ands r1, r2 + subs r2, #4 + ands r1, r2 + subs r2, #8 + ands r1, r2 + subs r2, #0x10 + ands r1, r2 + strb r1, [r0, #2] + bl EventObjectClearHeldMovement + pop {r0} + bx r0 + thumb_func_end sub_0808DCFC + + thumb_func_start SetPlayerAvatarEventObjectIdAndObjectId +SetPlayerAvatarEventObjectIdAndObjectId: @ 0x0808DD34 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _0808DD60 + strb r0, [r5, #5] + strb r1, [r5, #4] + ldr r1, _0808DD64 + lsls r4, r0, #3 + adds r4, r4, r0 + lsls r4, r4, #2 + adds r4, r4, r1 + ldrb r0, [r4, #5] + bl GetPlayerAvatarGenderByGraphicsId + strb r0, [r5, #7] + ldrb r0, [r4, #5] + movs r1, #0x20 + bl SetPlayerAvatarExtraStateTransition + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0808DD60: .4byte 0x02037230 +_0808DD64: .4byte 0x02036FF0 + thumb_func_end SetPlayerAvatarEventObjectIdAndObjectId + + thumb_func_start EventObjectSetGraphicsId +EventObjectSetGraphicsId: @ 0x0808DD68 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + mov r0, r8 + bl GetEventObjectGraphicsInfo + adds r6, r0, #0 + ldrb r1, [r7, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808DDA0 + adds r4, r0, r1 + ldrb r0, [r6, #0xc] + lsls r1, r0, #0x1c + lsrs r5, r1, #0x1c + cmp r5, #0 + bne _0808DDA4 + ldrh r0, [r6, #2] + adds r1, r5, #0 + bl PatchObjectPalette + b _0808DDC6 + .align 2, 0 +_0808DDA0: .4byte 0x020205AC +_0808DDA4: + cmp r5, #0xa + bne _0808DDB2 + ldrh r0, [r6, #2] + lsrs r1, r1, #0x1c + bl LoadSpecialObjectReflectionPalette + b _0808DDC6 +_0808DDB2: + cmp r5, #0xf + bls _0808DDC6 + adds r0, r5, #0 + subs r0, #0x10 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldrh r0, [r6, #2] + adds r1, r5, #0 + bl sub_0808E420 +_0808DDC6: + ldr r0, [r6, #0x10] + ldrb r2, [r0, #1] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r4, #1] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #1] + ldr r0, [r6, #0x10] + ldrb r0, [r0, #3] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #3] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #3] + ldr r0, [r6, #0x1c] + str r0, [r4, #0xc] + ldr r0, [r6, #0x18] + str r0, [r4, #8] + ldr r0, [r6, #0x14] + str r0, [r4, #0x18] + lsls r2, r5, #4 + ldrb r1, [r4, #5] + movs r0, #0xf + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #5] + ldrb r1, [r6, #0xc] + lsls r1, r1, #0x19 + lsrs r1, r1, #0x1f + lsls r1, r1, #4 + ldrb r2, [r7, #1] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r7, #1] + mov r0, r8 + strb r0, [r7, #5] + movs r1, #0x10 + ldrsh r0, [r7, r1] + movs r2, #0x12 + ldrsh r1, [r7, r2] + adds r2, r4, #0 + adds r2, #0x20 + adds r3, r4, #0 + adds r3, #0x22 + bl SetSpritePosToMapCoords + ldrh r0, [r6, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + rsbs r0, r0, #0 + adds r1, r4, #0 + adds r1, #0x28 + strb r0, [r1] + ldrh r0, [r6, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + rsbs r0, r0, #0 + adds r2, r4, #0 + adds r2, #0x29 + strb r0, [r2] + ldrh r0, [r4, #0x20] + adds r0, #8 + strh r0, [r4, #0x20] + ldrh r1, [r4, #0x22] + adds r1, #0x10 + movs r0, #0 + ldrsb r0, [r2, r0] + adds r0, r0, r1 + strh r0, [r4, #0x22] + ldrb r0, [r7, #1] + lsrs r0, r0, #7 + cmp r0, #0 + beq _0808DE68 + bl CameraObjectReset1 +_0808DE68: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end EventObjectSetGraphicsId + + thumb_func_start EventObjectSetGraphicsIdByLocalIdAndMap +EventObjectSetGraphicsIdByLocalIdAndMap: @ 0x0808DE74 + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r4, r3, #0x18 + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808DEA8 + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808DEB0 + adds r0, r0, r1 + adds r1, r4, #0 + bl EventObjectSetGraphicsId +_0808DEA8: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808DEB0: .4byte 0x02036FF0 + thumb_func_end EventObjectSetGraphicsIdByLocalIdAndMap + + thumb_func_start EventObjectTurn +EventObjectTurn: @ 0x0808DEB4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl SetEventObjectDirection + ldrb r0, [r6, #1] + lsls r0, r0, #0x1b + cmp r0, #0 + blt _0808DEFA + ldrb r0, [r6, #4] + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r5, _0808DF00 + adds r4, r4, r5 + ldrb r0, [r6, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl GetJumpInPlaceMovementAction + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim + ldrb r1, [r6, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0 + bl SeekSpriteAnim +_0808DEFA: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0808DF00: .4byte 0x020205AC + thumb_func_end EventObjectTurn + + thumb_func_start EventObjectTurnByLocalIdAndMap +EventObjectTurnByLocalIdAndMap: @ 0x0808DF04 + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r4, r3, #0x18 + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808DF38 + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808DF40 + adds r0, r0, r1 + adds r1, r4, #0 + bl EventObjectTurn +_0808DF38: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808DF40: .4byte 0x02036FF0 + thumb_func_end EventObjectTurnByLocalIdAndMap + + thumb_func_start PlayerObjectTurn +PlayerObjectTurn: @ 0x0808DF44 + push {lr} + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrb r2, [r0, #5] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _0808DF60 + adds r0, r0, r2 + bl EventObjectTurn + pop {r0} + bx r0 + .align 2, 0 +_0808DF60: .4byte 0x02036FF0 + thumb_func_end PlayerObjectTurn + + thumb_func_start get_berry_tree_graphics +get_berry_tree_graphics: @ 0x0808DF64 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r7, r1, #0 + ldrb r0, [r5, #1] + movs r1, #0x20 + orrs r0, r1 + strb r0, [r5, #1] + adds r4, r7, #0 + adds r4, #0x3e + ldrb r0, [r4] + movs r1, #4 + orrs r0, r1 + strb r0, [r4] + ldrb r0, [r5, #0x1d] + bl GetStageByBerryTreeId + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + beq _0808DFF0 + ldrb r1, [r5, #1] + movs r0, #0x21 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r5, #1] + ldrb r1, [r4] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4] + ldrb r0, [r5, #0x1d] + bl GetBerryTypeByBerryTreeId + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + subs r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r4, #0x2b + bls _0808DFB8 + movs r4, #0 +_0808DFB8: + ldr r0, _0808DFF8 + lsls r4, r4, #2 + adds r0, r4, r0 + ldr r0, [r0] + adds r0, r0, r6 + ldrb r1, [r0] + adds r0, r5, #0 + bl EventObjectSetGraphicsId + ldr r0, _0808DFFC + adds r0, r4, r0 + ldr r0, [r0] + str r0, [r7, #0xc] + ldr r0, _0808E000 + adds r4, r4, r0 + ldr r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r1, r1, #4 + ldrb r2, [r7, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r1 + strb r0, [r7, #5] + adds r0, r7, #0 + adds r1, r6, #0 + bl StartSpriteAnim +_0808DFF0: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0808DFF8: .4byte 0x084E4D5C +_0808DFFC: .4byte 0x084E4C04 +_0808E000: .4byte 0x084E4CB0 + thumb_func_end get_berry_tree_graphics + + thumb_func_start GetEventObjectGraphicsInfo +GetEventObjectGraphicsInfo: @ 0x0808E004 + push {lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xef + bls _0808E01C + adds r0, r1, #0 + adds r0, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl VarGetEventObjectGraphicsId + adds r1, r0, #0 +_0808E01C: + cmp r1, #0x45 + bne _0808E034 + bl GetCurrentMauvilleOldMan + lsls r0, r0, #0x18 + ldr r1, _0808E030 + lsrs r0, r0, #0x16 + adds r0, r0, r1 + ldr r0, [r0] + b _0808E042 + .align 2, 0 +_0808E030: .4byte 0x084DDE30 +_0808E034: + cmp r1, #0xee + bls _0808E03A + movs r1, #5 +_0808E03A: + ldr r0, _0808E048 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] +_0808E042: + pop {r1} + bx r1 + .align 2, 0 +_0808E048: .4byte 0x084DDA74 + thumb_func_end GetEventObjectGraphicsInfo + + thumb_func_start SetEventObjectDynamicGraphicsId +SetEventObjectDynamicGraphicsId: @ 0x0808E04C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #5] + cmp r0, #0xef + bls _0808E062 + adds r0, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl VarGetEventObjectGraphicsId + strb r0, [r4, #5] +_0808E062: + pop {r4} + pop {r0} + bx r0 + thumb_func_end SetEventObjectDynamicGraphicsId + + thumb_func_start npc_by_local_id_and_map_set_field_1_bit_x20 +npc_by_local_id_and_map_set_field_1_bit_x20: @ 0x0808E068 + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r4, r3, #0x18 + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808E0AA + ldr r2, _0808E0B4 + mov r0, sp + ldrb r0, [r0] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #1 + adds r2, r4, #0 + ands r2, r0 + lsls r2, r2, #5 + ldrb r3, [r1, #1] + movs r0, #0x21 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1, #1] +_0808E0AA: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808E0B4: .4byte 0x02036FF0 + thumb_func_end npc_by_local_id_and_map_set_field_1_bit_x20 + + thumb_func_start EventObjectGetLocalIdAndMap +EventObjectGetLocalIdAndMap: @ 0x0808E0B8 + push {r4, lr} + ldrb r4, [r0, #8] + strb r4, [r1] + ldrb r1, [r0, #9] + strb r1, [r2] + ldrb r0, [r0, #0xa] + strb r0, [r3] + pop {r4} + pop {r0} + bx r0 + thumb_func_end EventObjectGetLocalIdAndMap + + thumb_func_start sub_0808E0CC +sub_0808E0CC: @ 0x0808E0CC + push {lr} + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl GetEventObjectIdByXY + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x10 + beq _0808E0F4 + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808E0F8 + adds r0, r0, r1 + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_0808E0F4: + pop {r0} + bx r0 + .align 2, 0 +_0808E0F8: .4byte 0x02036FF0 + thumb_func_end sub_0808E0CC + + thumb_func_start sub_0808E0FC +sub_0808E0FC: @ 0x0808E0FC + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r4, r3, #0x18 + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808E142 + mov r0, sp + ldrb r0, [r0] + lsls r2, r0, #3 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r0, _0808E14C + adds r2, r2, r0 + ldrb r1, [r2, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808E150 + adds r0, r0, r1 + ldrb r1, [r2, #3] + movs r3, #4 + orrs r1, r3 + strb r1, [r2, #3] + adds r0, #0x43 + strb r4, [r0] +_0808E142: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808E14C: .4byte 0x02036FF0 +_0808E150: .4byte 0x020205AC + thumb_func_end sub_0808E0FC + + thumb_func_start sub_0808E154 +sub_0808E154: @ 0x0808E154 + push {lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808E190 + mov r0, sp + ldrb r0, [r0] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _0808E198 + adds r1, r1, r0 + ldrb r2, [r1, #3] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #3] + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] +_0808E190: + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_0808E198: .4byte 0x02036FF0 + thumb_func_end sub_0808E154 + + thumb_func_start sub_0808E19C +sub_0808E19C: @ 0x0808E19C + push {r4, r5, lr} + sub sp, #4 + ldr r4, [sp, #0x10] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x10 + lsrs r5, r3, #0x10 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808E1E0 + ldr r2, _0808E1E8 + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808E1EC + adds r0, r0, r1 + strh r5, [r0, #0x24] + strh r4, [r0, #0x26] +_0808E1E0: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0808E1E8: .4byte 0x02036FF0 +_0808E1EC: .4byte 0x020205AC + thumb_func_end sub_0808E19C + + thumb_func_start FreeAndReserveObjectSpritePalettes +FreeAndReserveObjectSpritePalettes: @ 0x0808E1F0 + push {lr} + bl FreeAllSpritePalettes + ldr r1, _0808E200 + movs r0, #0xc + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0808E200: .4byte 0x030030BC + thumb_func_end FreeAndReserveObjectSpritePalettes + + thumb_func_start LoadEventObjectPalette +LoadEventObjectPalette: @ 0x0808E204 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl FindEventObjectPaletteIndexByTag + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r0, _0808E228 + cmp r1, r0 + beq _0808E222 + lsls r0, r1, #3 + ldr r1, _0808E22C + adds r0, r0, r1 + bl sub_0808E264 +_0808E222: + pop {r0} + bx r0 + .align 2, 0 +_0808E228: .4byte 0x000011FF +_0808E22C: .4byte 0x084E401C + thumb_func_end LoadEventObjectPalette + + thumb_func_start Unused_LoadEventObjectPaletteSet +Unused_LoadEventObjectPaletteSet: @ 0x0808E230 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r4, #0 + ldrh r0, [r5] + ldr r1, _0808E260 + cmp r0, r1 + beq _0808E25A + adds r6, r1, #0 +_0808E240: + lsls r0, r4, #1 + adds r0, r0, r5 + ldrh r0, [r0] + bl LoadEventObjectPalette + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #1 + adds r0, r0, r5 + ldrh r0, [r0] + cmp r0, r6 + bne _0808E240 +_0808E25A: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0808E260: .4byte 0x000011FF + thumb_func_end Unused_LoadEventObjectPaletteSet + + thumb_func_start sub_0808E264 +sub_0808E264: @ 0x0808E264 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #4] + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _0808E282 + adds r0, r4, #0 + bl LoadSpritePalette + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0808E284 +_0808E282: + movs r0, #0xff +_0808E284: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0808E264 + + thumb_func_start PatchObjectPalette +PatchObjectPalette: @ 0x0808E28C + push {r4, lr} + adds r4, r1, #0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl FindEventObjectPaletteIndexByTag + lsls r0, r0, #0x18 + ldr r1, _0808E2C0 + lsrs r0, r0, #0x15 + adds r0, r0, r1 + ldr r0, [r0] + lsls r4, r4, #0x14 + movs r1, #0x80 + lsls r1, r1, #0x11 + adds r4, r4, r1 + lsrs r4, r4, #0x10 + adds r1, r4, #0 + movs r2, #0x20 + bl LoadPalette + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808E2C0: .4byte 0x084E401C + thumb_func_end PatchObjectPalette + + thumb_func_start PatchObjectPaletteRange +PatchObjectPaletteRange: @ 0x0808E2C4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + cmp r4, r6 + bhs _0808E2E8 +_0808E2D4: + ldrh r0, [r5] + adds r1, r4, #0 + bl PatchObjectPalette + adds r5, #2 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r6 + blo _0808E2D4 +_0808E2E8: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PatchObjectPaletteRange + + thumb_func_start FindEventObjectPaletteIndexByTag +FindEventObjectPaletteIndexByTag: @ 0x0808E2F0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + movs r2, #0 + ldr r0, _0808E318 + ldrh r1, [r0, #4] + ldr r3, _0808E31C + adds r4, r0, #0 + cmp r1, r3 + beq _0808E330 + adds r6, r4, #0 + adds r1, r3, #0 +_0808E308: + lsls r0, r2, #3 + adds r0, r0, r6 + ldrh r0, [r0, #4] + cmp r0, r5 + bne _0808E320 + adds r0, r2, #0 + b _0808E332 + .align 2, 0 +_0808E318: .4byte 0x084E401C +_0808E31C: .4byte 0x000011FF +_0808E320: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #3 + adds r0, r0, r4 + ldrh r0, [r0, #4] + cmp r0, r1 + bne _0808E308 +_0808E330: + movs r0, #0xff +_0808E332: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end FindEventObjectPaletteIndexByTag + + thumb_func_start LoadPlayerObjectReflectionPalette +LoadPlayerObjectReflectionPalette: @ 0x0808E338 + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl PatchObjectPalette + movs r3, #0 + ldr r1, _0808E380 + ldrh r0, [r1] + ldr r2, _0808E384 + cmp r0, r2 + beq _0808E3A0 + ldr r0, _0808E388 + adds r5, r5, r0 + adds r6, r2, #0 +_0808E35C: + lsls r2, r3, #3 + adds r0, r2, r1 + ldrh r0, [r0] + cmp r0, r4 + bne _0808E390 + adds r1, #4 + adds r1, r2, r1 + ldr r0, _0808E38C + ldrb r0, [r0] + ldr r1, [r1] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ldrb r1, [r5] + bl PatchObjectPalette + b _0808E3A0 + .align 2, 0 +_0808E380: .4byte 0x084E4154 +_0808E384: .4byte 0x000011FF +_0808E388: .4byte 0x0846FA18 +_0808E38C: .4byte 0x02037254 +_0808E390: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r0, r3, #3 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, r6 + bne _0808E35C +_0808E3A0: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LoadPlayerObjectReflectionPalette + + thumb_func_start LoadSpecialObjectReflectionPalette +LoadSpecialObjectReflectionPalette: @ 0x0808E3A8 + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + ldr r0, _0808E3F4 + strh r4, [r0] + adds r0, r4, #0 + adds r1, r5, #0 + bl PatchObjectPalette + movs r3, #0 + ldr r1, _0808E3F8 + ldrh r0, [r1] + ldr r2, _0808E3FC + cmp r0, r2 + beq _0808E418 + ldr r0, _0808E400 + adds r5, r5, r0 + adds r6, r2, #0 +_0808E3D0: + lsls r2, r3, #3 + adds r0, r2, r1 + ldrh r0, [r0] + cmp r0, r4 + bne _0808E408 + adds r1, #4 + adds r1, r2, r1 + ldr r0, _0808E404 + ldrb r0, [r0] + ldr r1, [r1] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ldrb r1, [r5] + bl PatchObjectPalette + b _0808E418 + .align 2, 0 +_0808E3F4: .4byte 0x02037256 +_0808E3F8: .4byte 0x084E41CC +_0808E3FC: .4byte 0x000011FF +_0808E400: .4byte 0x0846FA18 +_0808E404: .4byte 0x02037254 +_0808E408: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r0, r3, #3 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, r6 + bne _0808E3D0 +_0808E418: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LoadSpecialObjectReflectionPalette + + thumb_func_start sub_0808E420 +sub_0808E420: @ 0x0808E420 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl PatchObjectPalette + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0808E420 + + thumb_func_start unref_sub_808EAC4 +unref_sub_808EAC4: @ 0x0808E434 + push {r4, lr} + ldrh r3, [r0, #0x10] + strh r3, [r0, #0x14] + ldrh r4, [r0, #0x12] + strh r4, [r0, #0x16] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r1, r1, r3 + strh r1, [r0, #0x10] + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r2, r2, r4 + strh r2, [r0, #0x12] + pop {r4} + pop {r0} + bx r0 + thumb_func_end unref_sub_808EAC4 + + thumb_func_start ShiftEventObjectCoords +ShiftEventObjectCoords: @ 0x0808E454 + ldrh r3, [r0, #0x10] + strh r3, [r0, #0x14] + ldrh r3, [r0, #0x12] + strh r3, [r0, #0x16] + strh r1, [r0, #0x10] + strh r2, [r0, #0x12] + bx lr + .align 2, 0 + thumb_func_end ShiftEventObjectCoords + + thumb_func_start SetEventObjectCoords +SetEventObjectCoords: @ 0x0808E464 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + strh r1, [r0, #0x14] + strh r2, [r0, #0x16] + strh r1, [r0, #0x10] + strh r2, [r0, #0x12] + bx lr + .align 2, 0 + thumb_func_end SetEventObjectCoords + + thumb_func_start MoveEventObjectToMapCoords +MoveEventObjectToMapCoords: @ 0x0808E478 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r4, r1, #0 + adds r5, r2, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + ldrb r1, [r6, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808E514 + adds r7, r0, r1 + ldrb r0, [r6, #5] + bl GetEventObjectGraphicsInfo + mov r8, r0 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl SetEventObjectCoords + movs r1, #0x10 + ldrsh r0, [r6, r1] + movs r2, #0x12 + ldrsh r1, [r6, r2] + adds r2, r7, #0 + adds r2, #0x20 + adds r3, r7, #0 + adds r3, #0x22 + bl SetSpritePosToMapCoords + mov r1, r8 + ldrh r0, [r1, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + rsbs r0, r0, #0 + adds r1, r7, #0 + adds r1, #0x28 + strb r0, [r1] + mov r2, r8 + ldrh r0, [r2, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + rsbs r0, r0, #0 + adds r2, r7, #0 + adds r2, #0x29 + strb r0, [r2] + ldrh r0, [r7, #0x20] + adds r0, #8 + strh r0, [r7, #0x20] + ldrh r1, [r7, #0x22] + adds r1, #0x10 + movs r0, #0 + ldrsb r0, [r2, r0] + adds r0, r0, r1 + strh r0, [r7, #0x22] + adds r0, r6, #0 + bl sub_0808DCFC + ldrb r0, [r6, #1] + lsrs r0, r0, #7 + cmp r0, #0 + beq _0808E50A + bl CameraObjectReset1 +_0808E50A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0808E514: .4byte 0x020205AC + thumb_func_end MoveEventObjectToMapCoords + + thumb_func_start TryMoveEventObjectToMapCoords +TryMoveEventObjectToMapCoords: @ 0x0808E518 + push {r4, r5, lr} + sub sp, #4 + ldr r4, [sp, #0x10] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x10 + lsrs r5, r3, #0x10 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808E560 + lsls r1, r5, #0x10 + lsls r2, r4, #0x10 + mov r0, sp + ldrb r3, [r0] + lsls r0, r3, #3 + adds r0, r0, r3 + lsls r0, r0, #2 + ldr r3, _0808E568 + adds r0, r0, r3 + movs r3, #0xe0 + lsls r3, r3, #0xb + adds r1, r1, r3 + asrs r1, r1, #0x10 + adds r2, r2, r3 + asrs r2, r2, #0x10 + bl MoveEventObjectToMapCoords +_0808E560: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0808E568: .4byte 0x02036FF0 + thumb_func_end TryMoveEventObjectToMapCoords + + thumb_func_start ShiftStillEventObjectCoords +ShiftStillEventObjectCoords: @ 0x0808E56C + push {lr} + movs r2, #0x10 + ldrsh r1, [r0, r2] + movs r3, #0x12 + ldrsh r2, [r0, r3] + bl ShiftEventObjectCoords + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ShiftStillEventObjectCoords + + thumb_func_start UpdateEventObjectCoordsForCameraUpdate +UpdateEventObjectCoordsForCameraUpdate: @ 0x0808E580 + push {r4, r5, lr} + ldr r2, _0808E5E0 + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808E5D8 + movs r3, #0 + ldr r5, _0808E5E4 + movs r0, #4 + ldrsh r4, [r2, r0] + movs r0, #8 + ldrsh r1, [r2, r0] +_0808E59A: + lsls r0, r3, #3 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r2, r0, r5 + ldrb r0, [r2] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _0808E5CE + ldrh r0, [r2, #0xc] + subs r0, r0, r4 + strh r0, [r2, #0xc] + ldrh r0, [r2, #0xe] + subs r0, r0, r1 + strh r0, [r2, #0xe] + ldrh r0, [r2, #0x10] + subs r0, r0, r4 + strh r0, [r2, #0x10] + ldrh r0, [r2, #0x12] + subs r0, r0, r1 + strh r0, [r2, #0x12] + ldrh r0, [r2, #0x14] + subs r0, r0, r4 + strh r0, [r2, #0x14] + ldrh r0, [r2, #0x16] + subs r0, r0, r1 + strh r0, [r2, #0x16] +_0808E5CE: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0xf + bls _0808E59A +_0808E5D8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0808E5E0: .4byte 0x02036FD4 +_0808E5E4: .4byte 0x02036FF0 + thumb_func_end UpdateEventObjectCoordsForCameraUpdate + + thumb_func_start GetEventObjectIdByXYZ +GetEventObjectIdByXYZ: @ 0x0808E5E8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + movs r4, #0 + ldr r0, _0808E634 + mov r8, r0 +_0808E600: + lsls r0, r4, #3 + adds r0, r0, r4 + lsls r0, r0, #2 + mov r2, r8 + adds r1, r0, r2 + ldrb r0, [r1] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _0808E638 + movs r2, #0x10 + ldrsh r0, [r1, r2] + cmp r0, r7 + bne _0808E638 + movs r2, #0x12 + ldrsh r0, [r1, r2] + cmp r0, r6 + bne _0808E638 + adds r0, r1, #0 + adds r1, r5, #0 + bl EventObjectDoesZCoordMatch + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808E638 + adds r0, r4, #0 + b _0808E644 + .align 2, 0 +_0808E634: .4byte 0x02036FF0 +_0808E638: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xf + bls _0808E600 + movs r0, #0x10 +_0808E644: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetEventObjectIdByXYZ + + thumb_func_start EventObjectDoesZCoordMatch +EventObjectDoesZCoordMatch: @ 0x0808E650 + push {lr} + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrb r2, [r0, #0xb] + movs r0, #0xf + ands r0, r2 + cmp r0, #0 + beq _0808E670 + cmp r1, #0 + beq _0808E670 + lsls r0, r2, #0x1c + lsrs r0, r0, #0x1c + cmp r0, r1 + beq _0808E670 + movs r0, #0 + b _0808E672 +_0808E670: + movs r0, #1 +_0808E672: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end EventObjectDoesZCoordMatch + + thumb_func_start UpdateEventObjectsForCameraUpdate +UpdateEventObjectsForCameraUpdate: @ 0x0808E678 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + bl UpdateEventObjectCoordsForCameraUpdate + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl TrySpawnEventObjects + bl RemoveEventObjectsOutsideView + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end UpdateEventObjectsForCameraUpdate + + thumb_func_start AddCameraObject +AddCameraObject: @ 0x0808E6A4 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _0808E6E0 + movs r1, #0 + movs r2, #0 + movs r3, #4 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0808E6E4 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r2, #0x3e + adds r2, r2, r1 + mov ip, r2 + ldrb r2, [r2] + movs r3, #4 + orrs r2, r3 + mov r3, ip + strb r2, [r3] + strh r4, [r1, #0x2e] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0808E6E0: .4byte 0x0846FA28 +_0808E6E4: .4byte 0x020205AC + thumb_func_end AddCameraObject + + thumb_func_start ObjectCB_CameraObject +ObjectCB_CameraObject: @ 0x0808E6E8 + push {r4, r5, lr} + sub sp, #0xc + mov r2, sp + ldr r1, _0808E70C + ldm r1!, {r3, r4, r5} + stm r2!, {r3, r4, r5} + movs r2, #0x30 + ldrsh r1, [r0, r2] + lsls r1, r1, #2 + add r1, sp + ldr r1, [r1] + bl _call_via_r1 + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0808E70C: .4byte 0x0846FA40 + thumb_func_end ObjectCB_CameraObject + + thumb_func_start CameraObject_0 +CameraObject_0: @ 0x0808E710 + push {lr} + ldr r3, _0808E748 + movs r1, #0x2e + ldrsh r2, [r0, r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrh r1, [r1, #0x20] + strh r1, [r0, #0x20] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrh r1, [r1, #0x22] + strh r1, [r0, #0x22] + adds r3, r0, #0 + adds r3, #0x3e + ldrb r1, [r3] + movs r2, #4 + orrs r1, r2 + strb r1, [r3] + movs r1, #1 + strh r1, [r0, #0x30] + bl CameraObject_1 + pop {r0} + bx r0 + .align 2, 0 +_0808E748: .4byte 0x020205AC + thumb_func_end CameraObject_0 + + thumb_func_start CameraObject_1 +CameraObject_1: @ 0x0808E74C + push {r4, r5, lr} + ldr r3, _0808E780 + movs r1, #0x2e + ldrsh r2, [r0, r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrh r3, [r1, #0x22] + ldrh r2, [r0, #0x20] + ldrh r4, [r1, #0x20] + movs r5, #0x20 + ldrsh r1, [r1, r5] + subs r1, r1, r2 + strh r1, [r0, #0x32] + ldrh r2, [r0, #0x22] + lsls r1, r3, #0x10 + asrs r1, r1, #0x10 + subs r1, r1, r2 + strh r1, [r0, #0x34] + strh r4, [r0, #0x20] + strh r3, [r0, #0x22] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0808E780: .4byte 0x020205AC + thumb_func_end CameraObject_1 + + thumb_func_start CameraObject_2 +CameraObject_2: @ 0x0808E784 + push {r4, lr} + ldr r4, _0808E7B0 + movs r1, #0x2e + ldrsh r2, [r0, r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrh r1, [r1, #0x20] + movs r3, #0 + strh r1, [r0, #0x20] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrh r1, [r1, #0x22] + strh r1, [r0, #0x22] + strh r3, [r0, #0x32] + strh r3, [r0, #0x34] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808E7B0: .4byte 0x020205AC + thumb_func_end CameraObject_2 + + thumb_func_start FindCameraObject +FindCameraObject: @ 0x0808E7B4 + push {r4, r5, lr} + movs r3, #0 + ldr r4, _0808E7E0 + adds r5, r4, #0 + adds r5, #0x1c +_0808E7BE: + lsls r0, r3, #4 + adds r0, r0, r3 + lsls r1, r0, #2 + adds r2, r1, r4 + adds r0, r2, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _0808E7E8 + adds r0, r1, r5 + ldr r1, [r0] + ldr r0, _0808E7E4 + cmp r1, r0 + bne _0808E7E8 + adds r0, r2, #0 + b _0808E7F4 + .align 2, 0 +_0808E7E0: .4byte 0x020205AC +_0808E7E4: .4byte 0x0808E6E9 +_0808E7E8: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0x3f + bls _0808E7BE + movs r0, #0 +_0808E7F4: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end FindCameraObject + + thumb_func_start CameraObjectReset1 +CameraObjectReset1: @ 0x0808E7FC + push {lr} + bl FindCameraObject + adds r2, r0, #0 + cmp r2, #0 + beq _0808E814 + movs r0, #0 + strh r0, [r2, #0x30] + ldr r1, [r2, #0x1c] + adds r0, r2, #0 + bl _call_via_r1 +_0808E814: + pop {r0} + bx r0 + thumb_func_end CameraObjectReset1 + + thumb_func_start CameraObjectSetFollowedObjectId +CameraObjectSetFollowedObjectId: @ 0x0808E818 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl FindCameraObject + cmp r0, #0 + beq _0808E82C + strh r4, [r0, #0x2e] + bl CameraObjectReset1 +_0808E82C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CameraObjectSetFollowedObjectId + + thumb_func_start CameraObjectGetFollowedObjectId +CameraObjectGetFollowedObjectId: @ 0x0808E834 + push {lr} + bl FindCameraObject + cmp r0, #0 + beq _0808E846 + ldrh r0, [r0, #0x2e] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0808E848 +_0808E846: + movs r0, #0x40 +_0808E848: + pop {r1} + bx r1 + thumb_func_end CameraObjectGetFollowedObjectId + + thumb_func_start CameraObjectReset2 +CameraObjectReset2: @ 0x0808E84C + push {lr} + bl FindCameraObject + movs r1, #2 + strh r1, [r0, #0x30] + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CameraObjectReset2 + + thumb_func_start CopySprite +CopySprite: @ 0x0808E85C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov ip, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r8, r1 + lsls r2, r2, #0x10 + lsrs r6, r2, #0x10 + lsls r3, r3, #0x18 + lsrs r7, r3, #0x18 + movs r5, #0 + ldr r1, _0808E8A4 +_0808E876: + lsls r0, r5, #4 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r4, r0, r1 + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1f + cmp r0, #0 + bne _0808E8A8 + adds r0, r4, #0 + mov r1, ip + movs r2, #0x44 + bl memcpy + mov r0, r8 + strh r0, [r4, #0x20] + strh r6, [r4, #0x22] + adds r0, r4, #0 + adds r0, #0x43 + strb r7, [r0] + b _0808E8B2 + .align 2, 0 +_0808E8A4: .4byte 0x020205AC +_0808E8A8: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x3f + bls _0808E876 +_0808E8B2: + adds r0, r5, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CopySprite + + thumb_func_start CreateCopySpriteAt +CreateCopySpriteAt: @ 0x0808E8C0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov ip, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r8, r1 + lsls r2, r2, #0x10 + lsrs r6, r2, #0x10 + lsls r3, r3, #0x18 + lsrs r7, r3, #0x18 + movs r5, #0x3f + ldr r3, _0808E914 + movs r2, #1 + rsbs r2, r2, #0 +_0808E8DE: + lsls r0, r5, #0x10 + asrs r1, r0, #0x10 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, r0, r3 + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1f + cmp r0, #0 + bne _0808E918 + adds r0, r4, #0 + mov r1, ip + movs r2, #0x44 + bl memcpy + mov r0, r8 + strh r0, [r4, #0x20] + strh r6, [r4, #0x22] + adds r0, r4, #0 + adds r0, #0x43 + strb r7, [r0] + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + b _0808E926 + .align 2, 0 +_0808E914: .4byte 0x020205AC +_0808E918: + subs r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, r2 + bgt _0808E8DE + movs r0, #0x40 +_0808E926: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end CreateCopySpriteAt + + thumb_func_start SetEventObjectDirection +SetEventObjectDirection: @ 0x0808E930 + push {r4, lr} + adds r3, r0, #0 + lsls r1, r1, #0x18 + lsrs r2, r1, #0x18 + adds r4, r2, #0 + ldrb r0, [r3, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + adds r1, r3, #0 + adds r1, #0x20 + strb r0, [r1] + ldrb r0, [r3, #1] + lsls r0, r0, #0x1e + cmp r0, #0 + blt _0808E960 + movs r0, #0xf + adds r1, r2, #0 + ands r1, r0 + ldrb r2, [r3, #0x18] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x18] +_0808E960: + lsls r2, r4, #4 + ldrb r1, [r3, #0x18] + movs r0, #0xf + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #0x18] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetEventObjectDirection + + thumb_func_start GetEventObjectScriptPointerByLocalIdAndMap +GetEventObjectScriptPointerByLocalIdAndMap: @ 0x0808E974 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + bl GetEventObjectTemplateByLocalIdAndMap + ldr r0, [r0, #0x10] + pop {r1} + bx r1 + thumb_func_end GetEventObjectScriptPointerByLocalIdAndMap + + thumb_func_start GetEventObjectScriptPointerByEventObjectId +GetEventObjectScriptPointerByEventObjectId: @ 0x0808E98C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0808E9AC + lsls r2, r0, #3 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r1 + ldrb r0, [r2, #8] + ldrb r1, [r2, #9] + ldrb r2, [r2, #0xa] + bl GetEventObjectScriptPointerByLocalIdAndMap + pop {r1} + bx r1 + .align 2, 0 +_0808E9AC: .4byte 0x02036FF0 + thumb_func_end GetEventObjectScriptPointerByEventObjectId + + thumb_func_start GetEventObjectFlagIdByLocalIdAndMap +GetEventObjectFlagIdByLocalIdAndMap: @ 0x0808E9B0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + bl GetEventObjectTemplateByLocalIdAndMap + ldrh r0, [r0, #0x14] + pop {r1} + bx r1 + thumb_func_end GetEventObjectFlagIdByLocalIdAndMap + + thumb_func_start GetEventObjectFlagIdByEventObjectId +GetEventObjectFlagIdByEventObjectId: @ 0x0808E9C8 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0808E9EC + lsls r2, r0, #3 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r1 + ldrb r0, [r2, #8] + ldrb r1, [r2, #9] + ldrb r2, [r2, #0xa] + bl GetEventObjectFlagIdByLocalIdAndMap + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 +_0808E9EC: .4byte 0x02036FF0 + thumb_func_end GetEventObjectFlagIdByEventObjectId + + thumb_func_start sub_0808E9F0 +sub_0808E9F0: @ 0x0808E9F0 + push {lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808EA24 + ldr r2, _0808EA20 + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #7] + b _0808EA26 + .align 2, 0 +_0808EA20: .4byte 0x02036FF0 +_0808EA24: + movs r0, #0xff +_0808EA26: + add sp, #4 + pop {r1} + bx r1 + thumb_func_end sub_0808E9F0 + + thumb_func_start sub_0808EA2C +sub_0808EA2C: @ 0x0808EA2C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0808EA40 + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r0, [r1, #7] + bx lr + .align 2, 0 +_0808EA40: .4byte 0x02036FF0 + thumb_func_end sub_0808EA2C + + thumb_func_start sub_0808EA44 +sub_0808EA44: @ 0x0808EA44 + push {lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808EA78 + ldr r2, _0808EA74 + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #0x1d] + b _0808EA7A + .align 2, 0 +_0808EA74: .4byte 0x02036FF0 +_0808EA78: + movs r0, #0xff +_0808EA7A: + add sp, #4 + pop {r1} + bx r1 + thumb_func_end sub_0808EA44 + + thumb_func_start EventObjectGetBerryTreeId +EventObjectGetBerryTreeId: @ 0x0808EA80 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0808EA94 + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r0, [r1, #0x1d] + bx lr + .align 2, 0 +_0808EA94: .4byte 0x02036FF0 + thumb_func_end EventObjectGetBerryTreeId + + thumb_func_start GetEventObjectTemplateByLocalIdAndMap +GetEventObjectTemplateByLocalIdAndMap: @ 0x0808EA98 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r0, _0808EAC8 + ldr r1, [r0] + movs r0, #5 + ldrsb r0, [r1, r0] + cmp r0, r3 + bne _0808EAD0 + movs r0, #4 + ldrsb r0, [r1, r0] + cmp r0, r2 + bne _0808EAD0 + movs r0, #0xc7 + lsls r0, r0, #4 + adds r1, r1, r0 + ldr r0, _0808EACC + ldr r0, [r0, #4] + b _0808EADC + .align 2, 0 +_0808EAC8: .4byte 0x03005AEC +_0808EACC: .4byte 0x02036FB8 +_0808EAD0: + adds r0, r2, #0 + adds r1, r3, #0 + bl Overworld_GetMapHeaderByGroupAndId + ldr r0, [r0, #4] + ldr r1, [r0, #4] +_0808EADC: + ldrb r2, [r0] + adds r0, r4, #0 + bl FindEventObjectTemplateByLocalId + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetEventObjectTemplateByLocalIdAndMap + + thumb_func_start FindEventObjectTemplateByLocalId +FindEventObjectTemplateByLocalId: @ 0x0808EAEC + push {r4, r5, lr} + adds r5, r1, #0 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r1, #0 + cmp r1, r2 + bhs _0808EB1A +_0808EAFE: + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r3, r0, r5 + ldrb r0, [r3] + cmp r0, r4 + bne _0808EB10 + adds r0, r3, #0 + b _0808EB1C +_0808EB10: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, r2 + blo _0808EAFE +_0808EB1A: + movs r0, #0 +_0808EB1C: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end FindEventObjectTemplateByLocalId + + thumb_func_start GetBaseTemplateForEventObject +GetBaseTemplateForEventObject: @ 0x0808EB24 + push {r4, r5, lr} + adds r3, r0, #0 + ldrb r0, [r3, #9] + ldr r1, _0808EB44 + ldr r2, [r1] + movs r1, #5 + ldrsb r1, [r2, r1] + cmp r0, r1 + bne _0808EB70 + ldrb r1, [r3, #0xa] + movs r0, #4 + ldrsb r0, [r2, r0] + cmp r1, r0 + beq _0808EB52 + b _0808EB70 + .align 2, 0 +_0808EB44: .4byte 0x03005AEC +_0808EB48: + movs r1, #0xc7 + lsls r1, r1, #4 + adds r0, r0, r1 + adds r0, r4, r0 + b _0808EB72 +_0808EB52: + movs r1, #0 + adds r4, r2, #0 + ldrb r3, [r3, #8] + movs r5, #0xc7 + lsls r5, r5, #4 + adds r2, r4, r5 + movs r0, #0 +_0808EB60: + ldrb r5, [r2] + cmp r3, r5 + beq _0808EB48 + adds r2, #0x18 + adds r0, #0x18 + adds r1, #1 + cmp r1, #0x3f + ble _0808EB60 +_0808EB70: + movs r0, #0 +_0808EB72: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end GetBaseTemplateForEventObject + + thumb_func_start OverrideTemplateCoordsForEventObject +OverrideTemplateCoordsForEventObject: @ 0x0808EB78 + push {r4, lr} + adds r4, r0, #0 + bl GetBaseTemplateForEventObject + adds r1, r0, #0 + cmp r1, #0 + beq _0808EB92 + ldrh r0, [r4, #0x10] + subs r0, #7 + strh r0, [r1, #4] + ldrh r0, [r4, #0x12] + subs r0, #7 + strh r0, [r1, #6] +_0808EB92: + pop {r4} + pop {r0} + bx r0 + thumb_func_end OverrideTemplateCoordsForEventObject + + thumb_func_start OverrideEventObjectTemplateScript +OverrideEventObjectTemplateScript: @ 0x0808EB98 + push {r4, lr} + adds r4, r1, #0 + bl GetBaseTemplateForEventObject + cmp r0, #0 + beq _0808EBA6 + str r4, [r0, #0x10] +_0808EBA6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end OverrideEventObjectTemplateScript + + thumb_func_start TryOverrideTemplateCoordsForEventObject +TryOverrideTemplateCoordsForEventObject: @ 0x0808EBAC + push {r4, lr} + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + bl GetBaseTemplateForEventObject + cmp r0, #0 + beq _0808EBBC + strb r4, [r0, #9] +_0808EBBC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end TryOverrideTemplateCoordsForEventObject + + thumb_func_start TryOverrideEventObjectTemplateCoords +TryOverrideEventObjectTemplateCoords: @ 0x0808EBC4 + push {lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808EBF2 + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808EBF8 + adds r0, r0, r1 + bl OverrideTemplateCoordsForEventObject +_0808EBF2: + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_0808EBF8: .4byte 0x02036FF0 + thumb_func_end TryOverrideEventObjectTemplateCoords + + thumb_func_start OverrideSecretBaseDecorationSpriteScript +OverrideSecretBaseDecorationSpriteScript: @ 0x0808EBFC + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r4, r3, #0x18 + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808EC58 + cmp r4, #6 + beq _0808EC26 + cmp r4, #7 + beq _0808EC44 + b _0808EC58 +_0808EC26: + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808EC3C + adds r0, r0, r1 + ldr r1, _0808EC40 + bl OverrideEventObjectTemplateScript + b _0808EC58 + .align 2, 0 +_0808EC3C: .4byte 0x02036FF0 +_0808EC40: .4byte 0x082465B5 +_0808EC44: + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808EC60 + adds r0, r0, r1 + ldr r1, _0808EC64 + bl OverrideEventObjectTemplateScript +_0808EC58: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808EC60: .4byte 0x02036FF0 +_0808EC64: .4byte 0x082465B9 + thumb_func_end OverrideSecretBaseDecorationSpriteScript + + thumb_func_start InitEventObjectPalettes +InitEventObjectPalettes: @ 0x0808EC68 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl FreeAndReserveObjectSpritePalettes + ldr r1, _0808ECA0 + ldr r2, _0808ECA4 + adds r0, r2, #0 + strh r0, [r1] + ldr r2, _0808ECA8 + strb r4, [r2] + cmp r4, #1 + bne _0808ECB4 + ldr r1, _0808ECAC + ldrb r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0 + movs r2, #6 + bl PatchObjectPaletteRange + ldr r1, _0808ECB0 + movs r0, #8 + strb r0, [r1] + b _0808ECC6 + .align 2, 0 +_0808ECA0: .4byte 0x02037256 +_0808ECA4: .4byte 0x000011FF +_0808ECA8: .4byte 0x02037254 +_0808ECAC: .4byte 0x084E428C +_0808ECB0: .4byte 0x030030BC +_0808ECB4: + ldr r0, _0808ECCC + ldrb r1, [r2] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + movs r1, #0 + movs r2, #0xa + bl PatchObjectPaletteRange +_0808ECC6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808ECCC: .4byte 0x084E428C + thumb_func_end InitEventObjectPalettes + + thumb_func_start GetObjectPaletteTag +GetObjectPaletteTag: @ 0x0808ECD0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #9 + bhi _0808ED0C + ldr r1, _0808ECEC + ldr r0, _0808ECF0 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + lsls r0, r2, #1 + b _0808ED00 + .align 2, 0 +_0808ECEC: .4byte 0x084E428C +_0808ECF0: .4byte 0x02037254 +_0808ECF4: + adds r1, r4, #4 + adds r1, r2, r1 + ldr r0, _0808ED08 + ldrb r0, [r0] + ldr r1, [r1] + lsls r0, r0, #1 +_0808ED00: + adds r0, r0, r1 + ldrh r0, [r0] + b _0808ED3E + .align 2, 0 +_0808ED08: .4byte 0x02037254 +_0808ED0C: + movs r3, #0 + ldr r0, _0808ED44 + ldrh r1, [r0] + ldr r2, _0808ED48 + adds r4, r0, #0 + cmp r1, r2 + beq _0808ED3C + adds r6, r4, #0 + ldr r0, _0808ED4C + ldrh r1, [r0] + adds r5, r2, #0 +_0808ED22: + lsls r2, r3, #3 + adds r0, r2, r6 + ldrh r0, [r0] + cmp r0, r1 + beq _0808ECF4 + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r0, r3, #3 + adds r0, r0, r4 + ldrh r0, [r0] + cmp r0, r5 + bne _0808ED22 +_0808ED3C: + ldr r0, _0808ED48 +_0808ED3E: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0808ED44: .4byte 0x084E41CC +_0808ED48: .4byte 0x000011FF +_0808ED4C: .4byte 0x02037256 + thumb_func_end GetObjectPaletteTag + + thumb_func_start MovementType_None +MovementType_None: @ 0x0808ED50 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _0808ED6C + adds r0, r0, r2 + ldr r2, _0808ED70 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_0808ED6C: .4byte 0x02036FF0 +_0808ED70: .4byte 0x0808ED75 + thumb_func_end MovementType_None + + thumb_func_start MovementType_None_callback +MovementType_None_callback: @ 0x0808ED74 + movs r0, #0 + bx lr + thumb_func_end MovementType_None_callback + + thumb_func_start MovementType_WanderAround +MovementType_WanderAround: @ 0x0808ED78 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _0808ED94 + adds r0, r0, r2 + ldr r2, _0808ED98 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_0808ED94: .4byte 0x02036FF0 +_0808ED98: .4byte 0x0808ED9D + thumb_func_end MovementType_WanderAround + + thumb_func_start MovementType_CopyPlayerInGrass_callback +MovementType_CopyPlayerInGrass_callback: @ 0x0808ED9C + push {r4, lr} + ldr r3, _0808EDB8 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_CopyPlayerInGrass_callback + + thumb_func_start MovementAction_Fly_Finish +MovementAction_Fly_Finish: @ 0x0808EDB0 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0808EDB8: .4byte 0x084E5B48 + thumb_func_end MovementAction_Fly_Finish + + thumb_func_start MovementType_WanderAround_Step0 +MovementType_WanderAround_Step0: @ 0x0808EDBC + push {r4, lr} + adds r4, r1, #0 + bl ClearEventObjectMovement + movs r0, #1 + strh r0, [r4, #0x30] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_WanderAround_Step0 + + thumb_func_start MovementType_WanderAround_Step1 +MovementType_WanderAround_Step1: @ 0x0808EDD0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_08092CA0 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl EventObjectSetSingleMovement + movs r0, #2 + strh r0, [r5, #0x30] + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_WanderAround_Step1 + + thumb_func_start MovementType_WanderAround_Step2 +MovementType_WanderAround_Step2: @ 0x0808EDFC + push {r4, r5, r6, lr} + adds r6, r1, #0 + bl sub_08093234 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808EE30 + ldr r5, _0808EE2C + bl Random + movs r4, #3 + adds r1, r4, #0 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r5 + movs r0, #0 + ldrsh r1, [r1, r0] + adds r0, r6, #0 + bl SetMovementDelay + strh r4, [r6, #0x30] + movs r0, #1 + b _0808EE32 + .align 2, 0 +_0808EE2C: .4byte 0x084E5B30 +_0808EE30: + movs r0, #0 +_0808EE32: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end MovementType_WanderAround_Step2 + + thumb_func_start MovementType_WanderAround_Step3 +MovementType_WanderAround_Step3: @ 0x0808EE38 + push {r4, lr} + adds r4, r1, #0 + adds r0, r4, #0 + bl WaitForMovementDelay + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808EE4C + movs r0, #0 + b _0808EE52 +_0808EE4C: + movs r0, #4 + strh r0, [r4, #0x30] + movs r0, #1 +_0808EE52: + pop {r4} + pop {r1} + bx r1 + thumb_func_end MovementType_WanderAround_Step3 + + thumb_func_start MovementType_WanderAround_Step4 +MovementType_WanderAround_Step4: @ 0x0808EE58 + push {r4, r5, r6, lr} + sub sp, #4 + adds r5, r0, #0 + adds r6, r1, #0 + ldr r1, _0808EEA0 + mov r0, sp + movs r2, #4 + bl memcpy + bl Random + movs r1, #3 + ands r1, r0 + mov r2, sp + adds r0, r2, r1 + ldrb r4, [r0] + adds r0, r5, #0 + adds r1, r4, #0 + bl SetEventObjectDirection + movs r0, #5 + strh r0, [r6, #0x30] + adds r0, r5, #0 + adds r1, r4, #0 + bl GetCollisionInDirection + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808EE96 + movs r0, #1 + strh r0, [r6, #0x30] +_0808EE96: + movs r0, #1 + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0808EEA0: .4byte 0x084E5B64 + thumb_func_end MovementType_WanderAround_Step4 + + thumb_func_start MovementType_WanderAround_Step5 +MovementType_WanderAround_Step5: @ 0x0808EEA4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #0x18] + lsrs r0, r0, #4 + bl sub_08092CF8 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl EventObjectSetSingleMovement + ldrb r0, [r4] + movs r1, #2 + orrs r0, r1 + strb r0, [r4] + movs r0, #6 + strh r0, [r5, #0x30] + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementType_WanderAround_Step5 + + thumb_func_start MovementType_WanderAround_Step6 +MovementType_WanderAround_Step6: @ 0x0808EED4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093234 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808EEF2 + ldrb r0, [r4] + movs r1, #3 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4] + movs r0, #1 + strh r0, [r5, #0x30] +_0808EEF2: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_WanderAround_Step6 + + thumb_func_start EventObjectIsTrainerAndCloseToPlayer +EventObjectIsTrainerAndCloseToPlayer: @ 0x0808EEFC + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r5, r0, #0 + movs r0, #0x80 + bl TestPlayerAvatarFlags + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808EF68 + ldrb r0, [r5, #7] + cmp r0, #1 + beq _0808EF18 + cmp r0, #3 + bne _0808EF68 +_0808EF18: + mov r7, sp + adds r7, #2 + mov r0, sp + adds r1, r7, #0 + bl PlayerGetDestCoords + ldrh r2, [r5, #0x10] + ldrh r4, [r5, #0x12] + ldrb r1, [r5, #0x1d] + subs r3, r2, r1 + subs r0, r4, r1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r2, r1, r2 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + adds r1, r1, r4 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + mov r0, sp + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + movs r1, #0 + ldrsh r4, [r0, r1] + cmp r3, r4 + bgt _0808EF68 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + cmp r0, r4 + blt _0808EF68 + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + movs r2, #0 + ldrsh r1, [r7, r2] + cmp r0, r1 + bgt _0808EF68 + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + cmp r0, r1 + bge _0808EF6C +_0808EF68: + movs r0, #0 + b _0808EF6E +_0808EF6C: + movs r0, #1 +_0808EF6E: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end EventObjectIsTrainerAndCloseToPlayer + + thumb_func_start GetVectorDirection +GetVectorDirection: @ 0x0808EF78 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r0, r1, #0x10 + lsls r2, r2, #0x10 + lsls r3, r3, #0x10 + cmp r2, r3 + ble _0808EF96 + movs r2, #4 + lsls r0, r4, #0x10 + cmp r0, #0 + bge _0808EFA0 + movs r2, #3 + b _0808EFA0 +_0808EF96: + movs r2, #1 + lsls r0, r0, #0x10 + cmp r0, #0 + bge _0808EFA0 + movs r2, #2 +_0808EFA0: + adds r0, r2, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetVectorDirection + + thumb_func_start GetLimitedVectorDirection_SouthNorth +GetLimitedVectorDirection_SouthNorth: @ 0x0808EFA8 + push {lr} + movs r0, #1 + lsls r1, r1, #0x10 + cmp r1, #0 + bge _0808EFB4 + movs r0, #2 +_0808EFB4: + pop {r1} + bx r1 + thumb_func_end GetLimitedVectorDirection_SouthNorth + + thumb_func_start GetLimitedVectorDirection_WestEast +GetLimitedVectorDirection_WestEast: @ 0x0808EFB8 + push {lr} + movs r1, #4 + lsls r0, r0, #0x10 + cmp r0, #0 + bge _0808EFC4 + movs r1, #3 +_0808EFC4: + adds r0, r1, #0 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetLimitedVectorDirection_WestEast + + thumb_func_start GetLimitedVectorDirection_WestNorth +GetLimitedVectorDirection_WestNorth: @ 0x0808EFCC + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + asrs r4, r0, #0x10 + lsls r1, r1, #0x10 + asrs r5, r1, #0x10 + lsls r2, r2, #0x10 + asrs r6, r2, #0x10 + lsls r3, r3, #0x10 + asrs r7, r3, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + adds r3, r7, #0 + bl GetVectorDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0808F008 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + adds r3, r7, #0 + bl GetLimitedVectorDirection_WestEast + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bne _0808F022 + b _0808F020 +_0808F008: + cmp r0, #4 + bne _0808F022 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + adds r3, r7, #0 + bl GetLimitedVectorDirection_SouthNorth + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0808F022 +_0808F020: + movs r0, #2 +_0808F022: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end GetLimitedVectorDirection_WestNorth + + thumb_func_start GetLimitedVectorDirection_EastNorth +GetLimitedVectorDirection_EastNorth: @ 0x0808F028 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + asrs r4, r0, #0x10 + lsls r1, r1, #0x10 + asrs r5, r1, #0x10 + lsls r2, r2, #0x10 + asrs r6, r2, #0x10 + lsls r3, r3, #0x10 + asrs r7, r3, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + adds r3, r7, #0 + bl GetVectorDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0808F064 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + adds r3, r7, #0 + bl GetLimitedVectorDirection_WestEast + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bne _0808F07E + b _0808F07C +_0808F064: + cmp r0, #3 + bne _0808F07E + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + adds r3, r7, #0 + bl GetLimitedVectorDirection_SouthNorth + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0808F07E +_0808F07C: + movs r0, #2 +_0808F07E: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end GetLimitedVectorDirection_EastNorth + + thumb_func_start GetLimitedVectorDirection_WestSouth +GetLimitedVectorDirection_WestSouth: @ 0x0808F084 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + asrs r4, r0, #0x10 + lsls r1, r1, #0x10 + asrs r5, r1, #0x10 + lsls r2, r2, #0x10 + asrs r6, r2, #0x10 + lsls r3, r3, #0x10 + asrs r7, r3, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + adds r3, r7, #0 + bl GetVectorDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _0808F0C0 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + adds r3, r7, #0 + bl GetLimitedVectorDirection_WestEast + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bne _0808F0DA + b _0808F0D8 +_0808F0C0: + cmp r0, #4 + bne _0808F0DA + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + adds r3, r7, #0 + bl GetLimitedVectorDirection_SouthNorth + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _0808F0DA +_0808F0D8: + movs r0, #1 +_0808F0DA: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end GetLimitedVectorDirection_WestSouth + + thumb_func_start GetLimitedVectorDirection_EastSouth +GetLimitedVectorDirection_EastSouth: @ 0x0808F0E0 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + asrs r4, r0, #0x10 + lsls r1, r1, #0x10 + asrs r5, r1, #0x10 + lsls r2, r2, #0x10 + asrs r6, r2, #0x10 + lsls r3, r3, #0x10 + asrs r7, r3, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + adds r3, r7, #0 + bl GetVectorDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _0808F11C + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + adds r3, r7, #0 + bl GetLimitedVectorDirection_WestEast + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bne _0808F136 + b _0808F134 +_0808F11C: + cmp r0, #3 + bne _0808F136 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + adds r3, r7, #0 + bl GetLimitedVectorDirection_SouthNorth + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _0808F136 +_0808F134: + movs r0, #1 +_0808F136: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end GetLimitedVectorDirection_EastSouth + + thumb_func_start GetLimitedVectorDirection_SouthNorthWest +GetLimitedVectorDirection_SouthNorthWest: @ 0x0808F13C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + asrs r7, r0, #0x10 + lsls r1, r1, #0x10 + asrs r6, r1, #0x10 + lsls r2, r2, #0x10 + asrs r5, r2, #0x10 + lsls r3, r3, #0x10 + asrs r4, r3, #0x10 + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r5, #0 + adds r3, r4, #0 + bl GetVectorDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bne _0808F172 + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r5, #0 + adds r3, r4, #0 + bl GetLimitedVectorDirection_SouthNorth + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_0808F172: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end GetLimitedVectorDirection_SouthNorthWest + + thumb_func_start GetLimitedVectorDirection_SouthNorthEast +GetLimitedVectorDirection_SouthNorthEast: @ 0x0808F178 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + asrs r7, r0, #0x10 + lsls r1, r1, #0x10 + asrs r6, r1, #0x10 + lsls r2, r2, #0x10 + asrs r5, r2, #0x10 + lsls r3, r3, #0x10 + asrs r4, r3, #0x10 + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r5, #0 + adds r3, r4, #0 + bl GetVectorDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bne _0808F1AE + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r5, #0 + adds r3, r4, #0 + bl GetLimitedVectorDirection_SouthNorth + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_0808F1AE: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end GetLimitedVectorDirection_SouthNorthEast + + thumb_func_start GetLimitedVectorDirection_NorthWestEast +GetLimitedVectorDirection_NorthWestEast: @ 0x0808F1B4 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + asrs r7, r0, #0x10 + lsls r1, r1, #0x10 + asrs r6, r1, #0x10 + lsls r2, r2, #0x10 + asrs r5, r2, #0x10 + lsls r3, r3, #0x10 + asrs r4, r3, #0x10 + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r5, #0 + adds r3, r4, #0 + bl GetVectorDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0808F1EA + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r5, #0 + adds r3, r4, #0 + bl GetLimitedVectorDirection_WestEast + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_0808F1EA: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end GetLimitedVectorDirection_NorthWestEast + + thumb_func_start GetLimitedVectorDirection_SouthWestEast +GetLimitedVectorDirection_SouthWestEast: @ 0x0808F1F0 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + asrs r7, r0, #0x10 + lsls r1, r1, #0x10 + asrs r6, r1, #0x10 + lsls r2, r2, #0x10 + asrs r5, r2, #0x10 + lsls r3, r3, #0x10 + asrs r4, r3, #0x10 + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r5, #0 + adds r3, r4, #0 + bl GetVectorDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _0808F226 + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r5, #0 + adds r3, r4, #0 + bl GetLimitedVectorDirection_WestEast + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_0808F226: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end GetLimitedVectorDirection_SouthWestEast + + thumb_func_start TryGetTrainerEncounterDirection +TryGetTrainerEncounterDirection: @ 0x0808F22C + push {r4, r5, r6, lr} + sub sp, #4 + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + bl EventObjectIsTrainerAndCloseToPlayer + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808F244 + movs r0, #0 + b _0808F2A8 +_0808F244: + mov r5, sp + adds r5, #2 + mov r0, sp + adds r1, r5, #0 + bl PlayerGetDestCoords + mov r2, sp + mov r0, sp + ldrh r0, [r0] + ldrh r1, [r4, #0x10] + subs r0, r0, r1 + strh r0, [r2] + ldrh r0, [r5] + ldrh r1, [r4, #0x12] + subs r0, r0, r1 + strh r0, [r5] + mov r0, sp + ldrh r3, [r5] + ldrh r2, [r0] + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bge _0808F278 + rsbs r0, r0, #0 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 +_0808F278: + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _0808F286 + rsbs r0, r0, #0 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 +_0808F286: + ldr r0, _0808F2B0 + lsls r4, r6, #2 + adds r4, r4, r0 + mov r0, sp + movs r6, #0 + ldrsh r0, [r0, r6] + movs r6, #0 + ldrsh r1, [r5, r6] + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + ldr r4, [r4] + bl _call_via_r4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_0808F2A8: + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0808F2B0: .4byte 0x084E5B68 + thumb_func_end TryGetTrainerEncounterDirection + + thumb_func_start MovementType_LookAround +MovementType_LookAround: @ 0x0808F2B4 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _0808F2D0 + adds r0, r0, r2 + ldr r2, _0808F2D4 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_0808F2D0: .4byte 0x02036FF0 +_0808F2D4: .4byte 0x0808F2D9 + thumb_func_end MovementType_LookAround + + thumb_func_start MovementType_CopyPlayer_callback +MovementType_CopyPlayer_callback: @ 0x0808F2D8 + push {r4, lr} + ldr r3, _0808F2F4 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_CopyPlayer_callback + + thumb_func_start sub_0808F2EC +sub_0808F2EC: @ 0x0808F2EC + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0808F2F4: .4byte 0x084E5B94 + thumb_func_end sub_0808F2EC + + thumb_func_start MovementType_LookAround_Step0 +MovementType_LookAround_Step0: @ 0x0808F2F8 + push {r4, lr} + adds r4, r1, #0 + bl ClearEventObjectMovement + movs r0, #1 + strh r0, [r4, #0x30] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_LookAround_Step0 + + thumb_func_start MovementType_LookAround_Step1 +MovementType_LookAround_Step1: @ 0x0808F30C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_08092CA0 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl EventObjectSetSingleMovement + movs r0, #2 + strh r0, [r5, #0x30] + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_LookAround_Step1 + + thumb_func_start MovementType_LookAround_Step2 +MovementType_LookAround_Step2: @ 0x0808F338 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r7, r1, #0 + bl sub_08093234 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808F36E + ldr r4, _0808F378 + bl Random + movs r5, #3 + adds r1, r5, #0 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + movs r0, #0 + ldrsh r1, [r1, r0] + adds r0, r7, #0 + bl SetMovementDelay + ldrb r1, [r6] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r6] + strh r5, [r7, #0x30] +_0808F36E: + movs r0, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0808F378: .4byte 0x084E5B30 + thumb_func_end MovementType_LookAround_Step2 + + thumb_func_start MovementType_LookAround_Step3 +MovementType_LookAround_Step3: @ 0x0808F37C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r0, r5, #0 + bl WaitForMovementDelay + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808F39A + adds r0, r4, #0 + bl EventObjectIsTrainerAndCloseToPlayer + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808F3A2 +_0808F39A: + movs r0, #4 + strh r0, [r5, #0x30] + movs r0, #1 + b _0808F3A4 +_0808F3A2: + movs r0, #0 +_0808F3A4: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_LookAround_Step3 + + thumb_func_start MovementType_LookAround_Step4 +MovementType_LookAround_Step4: @ 0x0808F3AC + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _0808F3F0 + mov r0, sp + movs r2, #4 + bl memcpy + adds r0, r4, #0 + movs r1, #0 + bl TryGetTrainerEncounterDirection + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0808F3DC + bl Random + movs r1, #3 + ands r1, r0 + mov r2, sp + adds r0, r2, r1 + ldrb r1, [r0] +_0808F3DC: + adds r0, r4, #0 + bl SetEventObjectDirection + movs r0, #1 + strh r0, [r5, #0x30] + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0808F3F0: .4byte 0x084E5B64 + thumb_func_end MovementType_LookAround_Step4 + + thumb_func_start MovementType_WanderUpAndDown +MovementType_WanderUpAndDown: @ 0x0808F3F4 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _0808F410 + adds r0, r0, r2 + ldr r2, _0808F414 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_0808F410: .4byte 0x02036FF0 +_0808F414: .4byte 0x0808F419 + thumb_func_end MovementType_WanderUpAndDown + + thumb_func_start MovementType_FaceDirection_callback +MovementType_FaceDirection_callback: @ 0x0808F418 + push {r4, lr} + ldr r3, _0808F434 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_FaceDirection_callback + + thumb_func_start sub_0808F42C +sub_0808F42C: @ 0x0808F42C + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0808F434: .4byte 0x084E5BA8 + thumb_func_end sub_0808F42C + + thumb_func_start MovementType_WanderUpAndDown_Step0 +MovementType_WanderUpAndDown_Step0: @ 0x0808F438 + push {r4, lr} + adds r4, r1, #0 + bl ClearEventObjectMovement + movs r0, #1 + strh r0, [r4, #0x30] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_WanderUpAndDown_Step0 + + thumb_func_start MovementType_WanderUpAndDown_Step1 +MovementType_WanderUpAndDown_Step1: @ 0x0808F44C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_08092CA0 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl EventObjectSetSingleMovement + movs r0, #2 + strh r0, [r5, #0x30] + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_WanderUpAndDown_Step1 + + thumb_func_start MovementType_WanderUpAndDown_Step2 +MovementType_WanderUpAndDown_Step2: @ 0x0808F478 + push {r4, r5, r6, lr} + adds r6, r1, #0 + bl sub_08093234 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808F4AC + ldr r5, _0808F4A8 + bl Random + movs r4, #3 + adds r1, r4, #0 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r5 + movs r0, #0 + ldrsh r1, [r1, r0] + adds r0, r6, #0 + bl SetMovementDelay + strh r4, [r6, #0x30] + movs r0, #1 + b _0808F4AE + .align 2, 0 +_0808F4A8: .4byte 0x084E5B30 +_0808F4AC: + movs r0, #0 +_0808F4AE: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end MovementType_WanderUpAndDown_Step2 + + thumb_func_start MovementType_WanderUpAndDown_Step3 +MovementType_WanderUpAndDown_Step3: @ 0x0808F4B4 + push {r4, lr} + adds r4, r1, #0 + adds r0, r4, #0 + bl WaitForMovementDelay + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808F4C8 + movs r0, #0 + b _0808F4CE +_0808F4C8: + movs r0, #4 + strh r0, [r4, #0x30] + movs r0, #1 +_0808F4CE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end MovementType_WanderUpAndDown_Step3 + + thumb_func_start MovementType_WanderUpAndDown_Step4 +MovementType_WanderUpAndDown_Step4: @ 0x0808F4D4 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r5, r0, #0 + adds r6, r1, #0 + ldr r1, _0808F51C + mov r0, sp + movs r2, #2 + bl memcpy + bl Random + movs r7, #1 + adds r1, r7, #0 + ands r1, r0 + mov r2, sp + adds r0, r2, r1 + ldrb r4, [r0] + adds r0, r5, #0 + adds r1, r4, #0 + bl SetEventObjectDirection + movs r0, #5 + strh r0, [r6, #0x30] + adds r0, r5, #0 + adds r1, r4, #0 + bl GetCollisionInDirection + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808F512 + strh r7, [r6, #0x30] +_0808F512: + movs r0, #1 + add sp, #4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0808F51C: .4byte 0x084E5BC4 + thumb_func_end MovementType_WanderUpAndDown_Step4 + + thumb_func_start MovementType_WanderUpAndDown_Step5 +MovementType_WanderUpAndDown_Step5: @ 0x0808F520 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #0x18] + lsrs r0, r0, #4 + bl sub_08092CF8 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl EventObjectSetSingleMovement + ldrb r0, [r4] + movs r1, #2 + orrs r0, r1 + strb r0, [r4] + movs r0, #6 + strh r0, [r5, #0x30] + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementType_WanderUpAndDown_Step5 + + thumb_func_start MovementType_WanderUpAndDown_Step6 +MovementType_WanderUpAndDown_Step6: @ 0x0808F550 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093234 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808F56E + ldrb r0, [r4] + movs r1, #3 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4] + movs r0, #1 + strh r0, [r5, #0x30] +_0808F56E: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_WanderUpAndDown_Step6 + + thumb_func_start MovementType_WanderLeftAndRight +MovementType_WanderLeftAndRight: @ 0x0808F578 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _0808F594 + adds r0, r0, r2 + ldr r2, _0808F598 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_0808F594: .4byte 0x02036FF0 +_0808F598: .4byte 0x0808F59D + thumb_func_end MovementType_WanderLeftAndRight + + thumb_func_start MovementType_FaceDownAndLeft_callback +MovementType_FaceDownAndLeft_callback: @ 0x0808F59C + push {r4, lr} + ldr r3, _0808F5B8 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_FaceDownAndLeft_callback + + thumb_func_start GetAcroUnusedActionDirectionAnimNum +GetAcroUnusedActionDirectionAnimNum: @ 0x0808F5B0 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0808F5B8: .4byte 0x084E5BC8 + thumb_func_end GetAcroUnusedActionDirectionAnimNum + + thumb_func_start MovementType_WanderLeftAndRight_Step0 +MovementType_WanderLeftAndRight_Step0: @ 0x0808F5BC + push {r4, lr} + adds r4, r1, #0 + bl ClearEventObjectMovement + movs r0, #1 + strh r0, [r4, #0x30] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_WanderLeftAndRight_Step0 + + thumb_func_start MovementType_WanderLeftAndRight_Step1 +MovementType_WanderLeftAndRight_Step1: @ 0x0808F5D0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_08092CA0 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl EventObjectSetSingleMovement + movs r0, #2 + strh r0, [r5, #0x30] + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_WanderLeftAndRight_Step1 + + thumb_func_start MovementType_WanderLeftAndRight_Step2 +MovementType_WanderLeftAndRight_Step2: @ 0x0808F5FC + push {r4, r5, r6, lr} + adds r6, r1, #0 + bl sub_08093234 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808F630 + ldr r5, _0808F62C + bl Random + movs r4, #3 + adds r1, r4, #0 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r5 + movs r0, #0 + ldrsh r1, [r1, r0] + adds r0, r6, #0 + bl SetMovementDelay + strh r4, [r6, #0x30] + movs r0, #1 + b _0808F632 + .align 2, 0 +_0808F62C: .4byte 0x084E5B30 +_0808F630: + movs r0, #0 +_0808F632: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end MovementType_WanderLeftAndRight_Step2 + + thumb_func_start MovementType_WanderLeftAndRight_Step3 +MovementType_WanderLeftAndRight_Step3: @ 0x0808F638 + push {r4, lr} + adds r4, r1, #0 + adds r0, r4, #0 + bl WaitForMovementDelay + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808F64C + movs r0, #0 + b _0808F652 +_0808F64C: + movs r0, #4 + strh r0, [r4, #0x30] + movs r0, #1 +_0808F652: + pop {r4} + pop {r1} + bx r1 + thumb_func_end MovementType_WanderLeftAndRight_Step3 + + thumb_func_start MovementType_WanderLeftAndRight_Step4 +MovementType_WanderLeftAndRight_Step4: @ 0x0808F658 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r5, r0, #0 + adds r6, r1, #0 + ldr r1, _0808F6A0 + mov r0, sp + movs r2, #2 + bl memcpy + bl Random + movs r7, #1 + adds r1, r7, #0 + ands r1, r0 + mov r2, sp + adds r0, r2, r1 + ldrb r4, [r0] + adds r0, r5, #0 + adds r1, r4, #0 + bl SetEventObjectDirection + movs r0, #5 + strh r0, [r6, #0x30] + adds r0, r5, #0 + adds r1, r4, #0 + bl GetCollisionInDirection + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808F696 + strh r7, [r6, #0x30] +_0808F696: + movs r0, #1 + add sp, #4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0808F6A0: .4byte 0x084E5BE4 + thumb_func_end MovementType_WanderLeftAndRight_Step4 + + thumb_func_start MovementType_WanderLeftAndRight_Step5 +MovementType_WanderLeftAndRight_Step5: @ 0x0808F6A4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #0x18] + lsrs r0, r0, #4 + bl sub_08092CF8 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl EventObjectSetSingleMovement + ldrb r0, [r4] + movs r1, #2 + orrs r0, r1 + strb r0, [r4] + movs r0, #6 + strh r0, [r5, #0x30] + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementType_WanderLeftAndRight_Step5 + + thumb_func_start MovementType_WanderLeftAndRight_Step6 +MovementType_WanderLeftAndRight_Step6: @ 0x0808F6D4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093234 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808F6F2 + ldrb r0, [r4] + movs r1, #3 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4] + movs r0, #1 + strh r0, [r5, #0x30] +_0808F6F2: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_WanderLeftAndRight_Step6 + + thumb_func_start MovementType_FaceDirection +MovementType_FaceDirection: @ 0x0808F6FC + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _0808F718 + adds r0, r0, r2 + ldr r2, _0808F71C + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_0808F718: .4byte 0x02036FF0 +_0808F71C: .4byte 0x0808F721 + thumb_func_end MovementType_FaceDirection + + thumb_func_start MovementType_FaceDownAndRight_callback +MovementType_FaceDownAndRight_callback: @ 0x0808F720 + push {r4, lr} + ldr r3, _0808F73C + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_FaceDownAndRight_callback + + thumb_func_start GetAcroWheelieDirectionAnimNum +GetAcroWheelieDirectionAnimNum: @ 0x0808F734 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0808F73C: .4byte 0x084E5BE8 + thumb_func_end GetAcroWheelieDirectionAnimNum + + thumb_func_start MovementType_FaceDirection_Step0 +MovementType_FaceDirection_Step0: @ 0x0808F740 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl ClearEventObjectMovement + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_08092CA0 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl EventObjectSetSingleMovement + movs r0, #1 + strh r0, [r5, #0x30] + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementType_FaceDirection_Step0 + + thumb_func_start MovementType_FaceDirection_Step1 +MovementType_FaceDirection_Step1: @ 0x0808F76C + push {r4, lr} + adds r4, r1, #0 + bl sub_08093234 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808F77E + movs r0, #0 + b _0808F784 +_0808F77E: + movs r0, #2 + strh r0, [r4, #0x30] + movs r0, #1 +_0808F784: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_FaceDirection_Step1 + + thumb_func_start MovementType_Invisible_Step2 +MovementType_Invisible_Step2: @ 0x0808F78C + ldrb r2, [r0] + movs r1, #3 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + movs r0, #0 + bx lr + .align 2, 0 + thumb_func_end MovementType_Invisible_Step2 + + thumb_func_start MovementType_BerryTreeGrowth +MovementType_BerryTreeGrowth: @ 0x0808F79C + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808F7D8 + adds r5, r0, r1 + ldrh r1, [r4, #0x3c] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0808F7C8 + adds r0, r5, #0 + adds r1, r4, #0 + bl get_berry_tree_graphics + ldrh r1, [r4, #0x3c] + movs r0, #1 + orrs r0, r1 + strh r0, [r4, #0x3c] +_0808F7C8: + ldr r2, _0808F7DC + adds r0, r5, #0 + adds r1, r4, #0 + bl UpdateEventObjectCurrentMovement + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0808F7D8: .4byte 0x02036FF0 +_0808F7DC: .4byte 0x0808F7E1 + thumb_func_end MovementType_BerryTreeGrowth + + thumb_func_start MovementType_FaceDownAndUp_callback +MovementType_FaceDownAndUp_callback: @ 0x0808F7E0 + push {r4, lr} + ldr r3, _0808F7FC + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_FaceDownAndUp_callback + + thumb_func_start GetAcroWheeliePedalDirectionAnimNum +GetAcroWheeliePedalDirectionAnimNum: @ 0x0808F7F4 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0808F7FC: .4byte 0x084E5BF4 + thumb_func_end GetAcroWheeliePedalDirectionAnimNum + + thumb_func_start MovementType_BerryTreeGrowth_Step0 +MovementType_BerryTreeGrowth_Step0: @ 0x0808F800 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl ClearEventObjectMovement + ldrb r0, [r4, #1] + movs r1, #0x20 + orrs r0, r1 + strb r0, [r4, #1] + adds r6, r5, #0 + adds r6, #0x3e + ldrb r0, [r6] + movs r1, #4 + orrs r0, r1 + strb r0, [r6] + ldrb r0, [r4, #0x1d] + bl GetStageByBerryTreeId + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #0 + bne _0808F870 + ldrh r1, [r5, #0x3c] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _0808F866 + subs r6, #0x14 + ldrb r0, [r6] + cmp r0, #4 + bne _0808F866 + ldr r1, _0808F86C + movs r2, #0x10 + ldrsh r0, [r4, r2] + str r0, [r1] + movs r2, #0x12 + ldrsh r0, [r4, r2] + str r0, [r1, #4] + adds r0, r5, #0 + adds r0, #0x43 + ldrb r0, [r0] + subs r0, #1 + str r0, [r1, #8] + ldrb r0, [r5, #5] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1e + str r0, [r1, #0xc] + movs r0, #0x17 + bl FieldEffectStart + strb r7, [r6] +_0808F866: + movs r0, #0 + b _0808F8B2 + .align 2, 0 +_0808F86C: .4byte 0x020388A8 +_0808F870: + ldrb r1, [r4, #1] + movs r0, #0x21 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #1] + ldrb r1, [r6] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r6] + subs r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + adds r0, r5, #0 + adds r0, #0x2a + ldrb r0, [r0] + cmp r0, r7 + bne _0808F8AC + adds r0, r4, #0 + adds r1, r5, #0 + bl get_berry_tree_graphics + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0x39 + bl EventObjectSetSingleMovement + movs r0, #1 + strh r0, [r5, #0x30] + b _0808F8B2 +_0808F8AC: + movs r0, #2 + strh r0, [r5, #0x30] + movs r0, #1 +_0808F8B2: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end MovementType_BerryTreeGrowth_Step0 + + thumb_func_start MovementType_BerryTreeGrowth_Step1 +MovementType_BerryTreeGrowth_Step1: @ 0x0808F8B8 + push {r4, lr} + adds r4, r1, #0 + bl sub_08093234 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808F8CA + movs r0, #0 + b _0808F8D0 +_0808F8CA: + movs r0, #0 + strh r0, [r4, #0x30] + movs r0, #1 +_0808F8D0: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_BerryTreeGrowth_Step1 + + thumb_func_start MovementType_BerryTreeGrowth_Step2 +MovementType_BerryTreeGrowth_Step2: @ 0x0808F8D8 + push {r4, lr} + ldrb r2, [r0] + movs r3, #2 + orrs r2, r3 + strb r2, [r0] + movs r3, #0 + movs r2, #3 + strh r2, [r1, #0x30] + strh r3, [r1, #0x32] + ldrh r3, [r1, #0x3c] + movs r2, #2 + orrs r2, r3 + strh r2, [r1, #0x3c] + ldr r3, _0808F920 + movs r4, #0x10 + ldrsh r2, [r0, r4] + str r2, [r3] + movs r2, #0x12 + ldrsh r0, [r0, r2] + str r0, [r3, #4] + adds r0, r1, #0 + adds r0, #0x43 + ldrb r0, [r0] + subs r0, #1 + str r0, [r3, #8] + ldrb r0, [r1, #5] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1e + str r0, [r3, #0xc] + movs r0, #0x17 + bl FieldEffectStart + movs r0, #1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0808F920: .4byte 0x020388A8 + thumb_func_end MovementType_BerryTreeGrowth_Step2 + + thumb_func_start MovementType_BerryTreeGrowth_Step3 +MovementType_BerryTreeGrowth_Step3: @ 0x0808F924 + push {r4, lr} + adds r3, r0, #0 + adds r4, r1, #0 + ldrh r1, [r4, #0x32] + adds r1, #1 + strh r1, [r4, #0x32] + movs r0, #2 + ands r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x11 + lsls r1, r1, #5 + ldrb r2, [r3, #1] + subs r0, #0x23 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #1] + adds r2, r4, #0 + adds r2, #0x2c + ldrb r0, [r2] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2] + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0x40 + bgt _0808F95C + movs r0, #0 + b _0808F96E +_0808F95C: + adds r0, r3, #0 + adds r1, r4, #0 + bl get_berry_tree_graphics + movs r0, #4 + strh r0, [r4, #0x30] + movs r0, #0 + strh r0, [r4, #0x32] + movs r0, #1 +_0808F96E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end MovementType_BerryTreeGrowth_Step3 + + thumb_func_start MovementType_BerryTreeGrowth_Step4 +MovementType_BerryTreeGrowth_Step4: @ 0x0808F974 + push {r4, lr} + adds r4, r1, #0 + ldrh r2, [r4, #0x32] + adds r2, #1 + strh r2, [r4, #0x32] + movs r1, #2 + ands r2, r1 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x11 + lsls r2, r2, #5 + ldrb r3, [r0, #1] + subs r1, #0x23 + ands r1, r3 + orrs r1, r2 + strb r1, [r0, #1] + adds r2, r4, #0 + adds r2, #0x2c + ldrb r0, [r2] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2] + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0x40 + bgt _0808F9AA + movs r0, #0 + b _0808F9B8 +_0808F9AA: + movs r0, #0 + strh r0, [r4, #0x30] + ldrh r1, [r4, #0x3c] + subs r0, #3 + ands r0, r1 + strh r0, [r4, #0x3c] + movs r0, #1 +_0808F9B8: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_BerryTreeGrowth_Step4 + + thumb_func_start MovementType_FaceDownAndUp +MovementType_FaceDownAndUp: @ 0x0808F9C0 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _0808F9DC + adds r0, r0, r2 + ldr r2, _0808F9E0 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_0808F9DC: .4byte 0x02036FF0 +_0808F9E0: .4byte 0x0808F9E5 + thumb_func_end MovementType_FaceDownAndUp + + thumb_func_start MovementType_FaceDownRightAndLeft_callback +MovementType_FaceDownRightAndLeft_callback: @ 0x0808F9E4 + push {r4, lr} + ldr r3, _0808FA00 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_FaceDownRightAndLeft_callback + + thumb_func_start GetFaceDirectionAnimNum +GetFaceDirectionAnimNum: @ 0x0808F9F8 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0808FA00: .4byte 0x084E5C08 + thumb_func_end GetFaceDirectionAnimNum + + thumb_func_start MovementType_FaceDownAndUp_Step0 +MovementType_FaceDownAndUp_Step0: @ 0x0808FA04 + push {r4, lr} + adds r4, r1, #0 + bl ClearEventObjectMovement + movs r0, #1 + strh r0, [r4, #0x30] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_FaceDownAndUp_Step0 + + thumb_func_start MovementType_FaceDownAndUp_Step1 +MovementType_FaceDownAndUp_Step1: @ 0x0808FA18 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_08092CA0 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl EventObjectSetSingleMovement + movs r0, #2 + strh r0, [r5, #0x30] + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_FaceDownAndUp_Step1 + + thumb_func_start MovementType_FaceDownAndUp_Step2 +MovementType_FaceDownAndUp_Step2: @ 0x0808FA44 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r7, r1, #0 + bl sub_08093234 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808FA7A + ldr r4, _0808FA84 + bl Random + movs r5, #3 + adds r1, r5, #0 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + movs r0, #0 + ldrsh r1, [r1, r0] + adds r0, r7, #0 + bl SetMovementDelay + ldrb r1, [r6] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r6] + strh r5, [r7, #0x30] +_0808FA7A: + movs r0, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0808FA84: .4byte 0x084E5B30 + thumb_func_end MovementType_FaceDownAndUp_Step2 + + thumb_func_start MovementType_FaceDownAndUp_Step3 +MovementType_FaceDownAndUp_Step3: @ 0x0808FA88 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r0, r5, #0 + bl WaitForMovementDelay + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808FAA6 + adds r0, r4, #0 + bl EventObjectIsTrainerAndCloseToPlayer + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808FAAE +_0808FAA6: + movs r0, #4 + strh r0, [r5, #0x30] + movs r0, #1 + b _0808FAB0 +_0808FAAE: + movs r0, #0 +_0808FAB0: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_FaceDownAndUp_Step3 + + thumb_func_start MovementType_FaceDownAndUp_Step4 +MovementType_FaceDownAndUp_Step4: @ 0x0808FAB8 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _0808FAFC + mov r0, sp + movs r2, #2 + bl memcpy + adds r0, r4, #0 + movs r1, #1 + bl TryGetTrainerEncounterDirection + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0808FAE8 + bl Random + movs r1, #1 + ands r1, r0 + mov r2, sp + adds r0, r2, r1 + ldrb r1, [r0] +_0808FAE8: + adds r0, r4, #0 + bl SetEventObjectDirection + movs r0, #1 + strh r0, [r5, #0x30] + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0808FAFC: .4byte 0x084E5BC4 + thumb_func_end MovementType_FaceDownAndUp_Step4 + + thumb_func_start MovementType_FaceLeftAndRight +MovementType_FaceLeftAndRight: @ 0x0808FB00 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _0808FB1C + adds r0, r0, r2 + ldr r2, _0808FB20 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_0808FB1C: .4byte 0x02036FF0 +_0808FB20: .4byte 0x0808FB25 + thumb_func_end MovementType_FaceLeftAndRight + + thumb_func_start MovementType_FaceDownUpAndLeft_callback +MovementType_FaceDownUpAndLeft_callback: @ 0x0808FB24 + push {r4, lr} + ldr r3, _0808FB40 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_FaceDownUpAndLeft_callback + + thumb_func_start GetFishingBiteDirectionAnimNum +GetFishingBiteDirectionAnimNum: @ 0x0808FB38 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0808FB40: .4byte 0x084E5C1C + thumb_func_end GetFishingBiteDirectionAnimNum + + thumb_func_start MovementType_FaceLeftAndRight_Step0 +MovementType_FaceLeftAndRight_Step0: @ 0x0808FB44 + push {r4, lr} + adds r4, r1, #0 + bl ClearEventObjectMovement + movs r0, #1 + strh r0, [r4, #0x30] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_FaceLeftAndRight_Step0 + + thumb_func_start MovementType_FaceLeftAndRight_Step1 +MovementType_FaceLeftAndRight_Step1: @ 0x0808FB58 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_08092CA0 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl EventObjectSetSingleMovement + movs r0, #2 + strh r0, [r5, #0x30] + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_FaceLeftAndRight_Step1 + + thumb_func_start MovementType_FaceLeftAndRight_Step2 +MovementType_FaceLeftAndRight_Step2: @ 0x0808FB84 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r7, r1, #0 + bl sub_08093234 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808FBBA + ldr r4, _0808FBC4 + bl Random + movs r5, #3 + adds r1, r5, #0 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + movs r0, #0 + ldrsh r1, [r1, r0] + adds r0, r7, #0 + bl SetMovementDelay + ldrb r1, [r6] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r6] + strh r5, [r7, #0x30] +_0808FBBA: + movs r0, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0808FBC4: .4byte 0x084E5B30 + thumb_func_end MovementType_FaceLeftAndRight_Step2 + + thumb_func_start MovementType_FaceLeftAndRight_Step3 +MovementType_FaceLeftAndRight_Step3: @ 0x0808FBC8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r0, r5, #0 + bl WaitForMovementDelay + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808FBE6 + adds r0, r4, #0 + bl EventObjectIsTrainerAndCloseToPlayer + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808FBEE +_0808FBE6: + movs r0, #4 + strh r0, [r5, #0x30] + movs r0, #1 + b _0808FBF0 +_0808FBEE: + movs r0, #0 +_0808FBF0: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_FaceLeftAndRight_Step3 + + thumb_func_start MovementType_FaceLeftAndRight_Step4 +MovementType_FaceLeftAndRight_Step4: @ 0x0808FBF8 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _0808FC3C + mov r0, sp + movs r2, #2 + bl memcpy + adds r0, r4, #0 + movs r1, #2 + bl TryGetTrainerEncounterDirection + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0808FC28 + bl Random + movs r1, #1 + ands r1, r0 + mov r2, sp + adds r0, r2, r1 + ldrb r1, [r0] +_0808FC28: + adds r0, r4, #0 + bl SetEventObjectDirection + movs r0, #1 + strh r0, [r5, #0x30] + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0808FC3C: .4byte 0x084E5BE4 + thumb_func_end MovementType_FaceLeftAndRight_Step4 + + thumb_func_start MovementType_FaceUpAndLeft +MovementType_FaceUpAndLeft: @ 0x0808FC40 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _0808FC5C + adds r0, r0, r2 + ldr r2, _0808FC60 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_0808FC5C: .4byte 0x02036FF0 +_0808FC60: .4byte 0x0808FC65 + thumb_func_end MovementType_FaceUpAndLeft + + thumb_func_start MovementType_FaceDownUpAndRight_callback +MovementType_FaceDownUpAndRight_callback: @ 0x0808FC64 + push {r4, lr} + ldr r3, _0808FC80 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_FaceDownUpAndRight_callback + + thumb_func_start GetFishingDirectionAnimNum +GetFishingDirectionAnimNum: @ 0x0808FC78 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0808FC80: .4byte 0x084E5C30 + thumb_func_end GetFishingDirectionAnimNum + + thumb_func_start MovementType_FaceUpAndLeft_Step0 +MovementType_FaceUpAndLeft_Step0: @ 0x0808FC84 + push {r4, lr} + adds r4, r1, #0 + bl ClearEventObjectMovement + movs r0, #1 + strh r0, [r4, #0x30] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_FaceUpAndLeft_Step0 + + thumb_func_start MovementType_FaceUpAndLeft_Step1 +MovementType_FaceUpAndLeft_Step1: @ 0x0808FC98 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_08092CA0 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl EventObjectSetSingleMovement + movs r0, #2 + strh r0, [r5, #0x30] + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_FaceUpAndLeft_Step1 + + thumb_func_start MovementType_FaceUpAndLeft_Step2 +MovementType_FaceUpAndLeft_Step2: @ 0x0808FCC4 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r7, r1, #0 + bl sub_08093234 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808FCFA + ldr r4, _0808FD04 + bl Random + movs r5, #3 + adds r1, r5, #0 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + movs r0, #0 + ldrsh r1, [r1, r0] + adds r0, r7, #0 + bl SetMovementDelay + ldrb r1, [r6] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r6] + strh r5, [r7, #0x30] +_0808FCFA: + movs r0, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0808FD04: .4byte 0x084E5B40 + thumb_func_end MovementType_FaceUpAndLeft_Step2 + + thumb_func_start MovementType_FaceUpAndLeft_Step3 +MovementType_FaceUpAndLeft_Step3: @ 0x0808FD08 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r0, r5, #0 + bl WaitForMovementDelay + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808FD26 + adds r0, r4, #0 + bl EventObjectIsTrainerAndCloseToPlayer + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808FD2E +_0808FD26: + movs r0, #4 + strh r0, [r5, #0x30] + movs r0, #1 + b _0808FD30 +_0808FD2E: + movs r0, #0 +_0808FD30: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_FaceUpAndLeft_Step3 + + thumb_func_start MovementType_FaceUpAndLeft_Step4 +MovementType_FaceUpAndLeft_Step4: @ 0x0808FD38 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _0808FD7C + mov r0, sp + movs r2, #2 + bl memcpy + adds r0, r4, #0 + movs r1, #3 + bl TryGetTrainerEncounterDirection + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0808FD68 + bl Random + movs r1, #1 + ands r1, r0 + mov r2, sp + adds r0, r2, r1 + ldrb r1, [r0] +_0808FD68: + adds r0, r4, #0 + bl SetEventObjectDirection + movs r0, #1 + strh r0, [r5, #0x30] + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0808FD7C: .4byte 0x084E5C44 + thumb_func_end MovementType_FaceUpAndLeft_Step4 + + thumb_func_start MovementType_FaceUpAndRight +MovementType_FaceUpAndRight: @ 0x0808FD80 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _0808FD9C + adds r0, r0, r2 + ldr r2, _0808FDA0 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_0808FD9C: .4byte 0x02036FF0 +_0808FDA0: .4byte 0x0808FDA5 + thumb_func_end MovementType_FaceUpAndRight + + thumb_func_start MovementType_FaceLeftAndRight_callback +MovementType_FaceLeftAndRight_callback: @ 0x0808FDA4 + push {r4, lr} + ldr r3, _0808FDC0 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_FaceLeftAndRight_callback + + thumb_func_start GetFishingNoCatchDirectionAnimNum +GetFishingNoCatchDirectionAnimNum: @ 0x0808FDB8 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0808FDC0: .4byte 0x084E5C48 + thumb_func_end GetFishingNoCatchDirectionAnimNum + + thumb_func_start MovementType_FaceUpAndRight_Step0 +MovementType_FaceUpAndRight_Step0: @ 0x0808FDC4 + push {r4, lr} + adds r4, r1, #0 + bl ClearEventObjectMovement + movs r0, #1 + strh r0, [r4, #0x30] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_FaceUpAndRight_Step0 + + thumb_func_start MovementType_FaceUpAndRight_Step1 +MovementType_FaceUpAndRight_Step1: @ 0x0808FDD8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_08092CA0 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl EventObjectSetSingleMovement + movs r0, #2 + strh r0, [r5, #0x30] + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_FaceUpAndRight_Step1 + + thumb_func_start MovementType_FaceUpAndRight_Step2 +MovementType_FaceUpAndRight_Step2: @ 0x0808FE04 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r7, r1, #0 + bl sub_08093234 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808FE3A + ldr r4, _0808FE44 + bl Random + movs r5, #3 + adds r1, r5, #0 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + movs r0, #0 + ldrsh r1, [r1, r0] + adds r0, r7, #0 + bl SetMovementDelay + ldrb r1, [r6] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r6] + strh r5, [r7, #0x30] +_0808FE3A: + movs r0, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0808FE44: .4byte 0x084E5B40 + thumb_func_end MovementType_FaceUpAndRight_Step2 + + thumb_func_start MovementType_FaceUpAndRight_Step3 +MovementType_FaceUpAndRight_Step3: @ 0x0808FE48 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r0, r5, #0 + bl WaitForMovementDelay + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808FE66 + adds r0, r4, #0 + bl EventObjectIsTrainerAndCloseToPlayer + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808FE6E +_0808FE66: + movs r0, #4 + strh r0, [r5, #0x30] + movs r0, #1 + b _0808FE70 +_0808FE6E: + movs r0, #0 +_0808FE70: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_FaceUpAndRight_Step3 + + thumb_func_start MovementType_FaceUpAndRight_Step4 +MovementType_FaceUpAndRight_Step4: @ 0x0808FE78 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _0808FEBC + mov r0, sp + movs r2, #2 + bl memcpy + adds r0, r4, #0 + movs r1, #4 + bl TryGetTrainerEncounterDirection + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0808FEA8 + bl Random + movs r1, #1 + ands r1, r0 + mov r2, sp + adds r0, r2, r1 + ldrb r1, [r0] +_0808FEA8: + adds r0, r4, #0 + bl SetEventObjectDirection + movs r0, #1 + strh r0, [r5, #0x30] + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0808FEBC: .4byte 0x084E5C5C + thumb_func_end MovementType_FaceUpAndRight_Step4 + + thumb_func_start MovementType_FaceDownAndLeft +MovementType_FaceDownAndLeft: @ 0x0808FEC0 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _0808FEDC + adds r0, r0, r2 + ldr r2, _0808FEE0 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_0808FEDC: .4byte 0x02036FF0 +_0808FEE0: .4byte 0x0808FEE5 + thumb_func_end MovementType_FaceDownAndLeft + + thumb_func_start MovementType_FaceUpAndLeft_callback +MovementType_FaceUpAndLeft_callback: @ 0x0808FEE4 + push {r4, lr} + ldr r3, _0808FF00 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_FaceUpAndLeft_callback + + thumb_func_start GetJumpSpecialDirectionAnimNum +GetJumpSpecialDirectionAnimNum: @ 0x0808FEF8 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0808FF00: .4byte 0x084E5C60 + thumb_func_end GetJumpSpecialDirectionAnimNum + + thumb_func_start MovementType_FaceDownAndLeft_Step0 +MovementType_FaceDownAndLeft_Step0: @ 0x0808FF04 + push {r4, lr} + adds r4, r1, #0 + bl ClearEventObjectMovement + movs r0, #1 + strh r0, [r4, #0x30] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_FaceDownAndLeft_Step0 + + thumb_func_start MovementType_FaceDownAndLeft_Step1 +MovementType_FaceDownAndLeft_Step1: @ 0x0808FF18 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_08092CA0 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl EventObjectSetSingleMovement + movs r0, #2 + strh r0, [r5, #0x30] + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_FaceDownAndLeft_Step1 + + thumb_func_start MovementType_FaceDownAndLeft_Step2 +MovementType_FaceDownAndLeft_Step2: @ 0x0808FF44 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r7, r1, #0 + bl sub_08093234 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808FF7A + ldr r4, _0808FF84 + bl Random + movs r5, #3 + adds r1, r5, #0 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + movs r0, #0 + ldrsh r1, [r1, r0] + adds r0, r7, #0 + bl SetMovementDelay + ldrb r1, [r6] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r6] + strh r5, [r7, #0x30] +_0808FF7A: + movs r0, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0808FF84: .4byte 0x084E5B40 + thumb_func_end MovementType_FaceDownAndLeft_Step2 + + thumb_func_start MovementType_FaceDownAndLeft_Step3 +MovementType_FaceDownAndLeft_Step3: @ 0x0808FF88 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r0, r5, #0 + bl WaitForMovementDelay + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808FFA6 + adds r0, r4, #0 + bl EventObjectIsTrainerAndCloseToPlayer + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808FFAE +_0808FFA6: + movs r0, #4 + strh r0, [r5, #0x30] + movs r0, #1 + b _0808FFB0 +_0808FFAE: + movs r0, #0 +_0808FFB0: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_FaceDownAndLeft_Step3 + + thumb_func_start MovementType_FaceDownAndLeft_Step4 +MovementType_FaceDownAndLeft_Step4: @ 0x0808FFB8 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _0808FFFC + mov r0, sp + movs r2, #2 + bl memcpy + adds r0, r4, #0 + movs r1, #5 + bl TryGetTrainerEncounterDirection + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0808FFE8 + bl Random + movs r1, #1 + ands r1, r0 + mov r2, sp + adds r0, r2, r1 + ldrb r1, [r0] +_0808FFE8: + adds r0, r4, #0 + bl SetEventObjectDirection + movs r0, #1 + strh r0, [r5, #0x30] + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0808FFFC: .4byte 0x084E5C74 + thumb_func_end MovementType_FaceDownAndLeft_Step4 + + thumb_func_start MovementType_FaceDownAndRight +MovementType_FaceDownAndRight: @ 0x08090000 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _0809001C + adds r0, r0, r2 + ldr r2, _08090020 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_0809001C: .4byte 0x02036FF0 +_08090020: .4byte 0x08090025 + thumb_func_end MovementType_FaceDownAndRight + + thumb_func_start MovementType_FaceUpAndRight_callback +MovementType_FaceUpAndRight_callback: @ 0x08090024 + push {r4, lr} + ldr r3, _08090040 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_FaceUpAndRight_callback + + thumb_func_start GetMoveDirectionAnimNum +GetMoveDirectionAnimNum: @ 0x08090038 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08090040: .4byte 0x084E5C78 + thumb_func_end GetMoveDirectionAnimNum + + thumb_func_start MovementType_FaceDownAndRight_Step0 +MovementType_FaceDownAndRight_Step0: @ 0x08090044 + push {r4, lr} + adds r4, r1, #0 + bl ClearEventObjectMovement + movs r0, #1 + strh r0, [r4, #0x30] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_FaceDownAndRight_Step0 + + thumb_func_start MovementType_FaceDownAndRight_Step1 +MovementType_FaceDownAndRight_Step1: @ 0x08090058 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_08092CA0 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl EventObjectSetSingleMovement + movs r0, #2 + strh r0, [r5, #0x30] + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_FaceDownAndRight_Step1 + + thumb_func_start MovementType_FaceDownAndRight_Step2 +MovementType_FaceDownAndRight_Step2: @ 0x08090084 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r7, r1, #0 + bl sub_08093234 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080900BA + ldr r4, _080900C4 + bl Random + movs r5, #3 + adds r1, r5, #0 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + movs r0, #0 + ldrsh r1, [r1, r0] + adds r0, r7, #0 + bl SetMovementDelay + ldrb r1, [r6] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r6] + strh r5, [r7, #0x30] +_080900BA: + movs r0, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080900C4: .4byte 0x084E5B40 + thumb_func_end MovementType_FaceDownAndRight_Step2 + + thumb_func_start MovementType_FaceDownAndRight_Step3 +MovementType_FaceDownAndRight_Step3: @ 0x080900C8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r0, r5, #0 + bl WaitForMovementDelay + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080900E6 + adds r0, r4, #0 + bl EventObjectIsTrainerAndCloseToPlayer + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080900EE +_080900E6: + movs r0, #4 + strh r0, [r5, #0x30] + movs r0, #1 + b _080900F0 +_080900EE: + movs r0, #0 +_080900F0: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_FaceDownAndRight_Step3 + + thumb_func_start MovementType_FaceDownAndRight_Step4 +MovementType_FaceDownAndRight_Step4: @ 0x080900F8 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _0809013C + mov r0, sp + movs r2, #2 + bl memcpy + adds r0, r4, #0 + movs r1, #6 + bl TryGetTrainerEncounterDirection + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _08090128 + bl Random + movs r1, #1 + ands r1, r0 + mov r2, sp + adds r0, r2, r1 + ldrb r1, [r0] +_08090128: + adds r0, r4, #0 + bl SetEventObjectDirection + movs r0, #1 + strh r0, [r5, #0x30] + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0809013C: .4byte 0x084E5C8C + thumb_func_end MovementType_FaceDownAndRight_Step4 + + thumb_func_start MovementType_FaceDownUpAndLeft +MovementType_FaceDownUpAndLeft: @ 0x08090140 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _0809015C + adds r0, r0, r2 + ldr r2, _08090160 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_0809015C: .4byte 0x02036FF0 +_08090160: .4byte 0x08090165 + thumb_func_end MovementType_FaceDownUpAndLeft + + thumb_func_start MovementType_FaceUpRightAndLeft_callback +MovementType_FaceUpRightAndLeft_callback: @ 0x08090164 + push {r4, lr} + ldr r3, _08090180 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_FaceUpRightAndLeft_callback + + thumb_func_start GetMoveDirectionFastAnimNum +GetMoveDirectionFastAnimNum: @ 0x08090178 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08090180: .4byte 0x084E5C90 + thumb_func_end GetMoveDirectionFastAnimNum + + thumb_func_start MovementType_FaceDownUpAndLeft_Step0 +MovementType_FaceDownUpAndLeft_Step0: @ 0x08090184 + push {r4, lr} + adds r4, r1, #0 + bl ClearEventObjectMovement + movs r0, #1 + strh r0, [r4, #0x30] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_FaceDownUpAndLeft_Step0 + + thumb_func_start MovementType_FaceDownUpAndLeft_Step1 +MovementType_FaceDownUpAndLeft_Step1: @ 0x08090198 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_08092CA0 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl EventObjectSetSingleMovement + movs r0, #2 + strh r0, [r5, #0x30] + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_FaceDownUpAndLeft_Step1 + + thumb_func_start MovementType_FaceDownUpAndLeft_Step2 +MovementType_FaceDownUpAndLeft_Step2: @ 0x080901C4 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r7, r1, #0 + bl sub_08093234 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080901FA + ldr r4, _08090204 + bl Random + movs r5, #3 + adds r1, r5, #0 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + movs r0, #0 + ldrsh r1, [r1, r0] + adds r0, r7, #0 + bl SetMovementDelay + ldrb r1, [r6] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r6] + strh r5, [r7, #0x30] +_080901FA: + movs r0, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08090204: .4byte 0x084E5B40 + thumb_func_end MovementType_FaceDownUpAndLeft_Step2 + + thumb_func_start MovementType_FaceDownUpAndLeft_Step3 +MovementType_FaceDownUpAndLeft_Step3: @ 0x08090208 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r0, r5, #0 + bl WaitForMovementDelay + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08090226 + adds r0, r4, #0 + bl EventObjectIsTrainerAndCloseToPlayer + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809022E +_08090226: + movs r0, #4 + strh r0, [r5, #0x30] + movs r0, #1 + b _08090230 +_0809022E: + movs r0, #0 +_08090230: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_FaceDownUpAndLeft_Step3 + + thumb_func_start MovementType_FaceDownUpAndLeft_Step4 +MovementType_FaceDownUpAndLeft_Step4: @ 0x08090238 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _0809027C + mov r0, sp + movs r2, #4 + bl memcpy + adds r0, r4, #0 + movs r1, #7 + bl TryGetTrainerEncounterDirection + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _08090268 + bl Random + movs r1, #3 + ands r1, r0 + mov r2, sp + adds r0, r2, r1 + ldrb r1, [r0] +_08090268: + adds r0, r4, #0 + bl SetEventObjectDirection + movs r0, #1 + strh r0, [r5, #0x30] + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0809027C: .4byte 0x084E5CA4 + thumb_func_end MovementType_FaceDownUpAndLeft_Step4 + + thumb_func_start MovementType_FaceDownUpAndRight +MovementType_FaceDownUpAndRight: @ 0x08090280 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _0809029C + adds r0, r0, r2 + ldr r2, _080902A0 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_0809029C: .4byte 0x02036FF0 +_080902A0: .4byte 0x080902A5 + thumb_func_end MovementType_FaceDownUpAndRight + + thumb_func_start MovementType_Hidden_Callback +MovementType_Hidden_Callback: @ 0x080902A4 + push {r4, lr} + ldr r3, _080902C0 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_Hidden_Callback + + thumb_func_start GetMoveDirectionFasterAnimNum +GetMoveDirectionFasterAnimNum: @ 0x080902B8 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080902C0: .4byte 0x084E5CA8 + thumb_func_end GetMoveDirectionFasterAnimNum + + thumb_func_start MovementType_FaceDownUpAndRight_Step0 +MovementType_FaceDownUpAndRight_Step0: @ 0x080902C4 + push {r4, lr} + adds r4, r1, #0 + bl ClearEventObjectMovement + movs r0, #1 + strh r0, [r4, #0x30] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_FaceDownUpAndRight_Step0 + + thumb_func_start MovementType_FaceDownUpAndRight_Step1 +MovementType_FaceDownUpAndRight_Step1: @ 0x080902D8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_08092CA0 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl EventObjectSetSingleMovement + movs r0, #2 + strh r0, [r5, #0x30] + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_FaceDownUpAndRight_Step1 + + thumb_func_start MovementType_FaceDownUpAndRight_Step2 +MovementType_FaceDownUpAndRight_Step2: @ 0x08090304 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r7, r1, #0 + bl sub_08093234 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809033A + ldr r4, _08090344 + bl Random + movs r5, #3 + adds r1, r5, #0 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + movs r0, #0 + ldrsh r1, [r1, r0] + adds r0, r7, #0 + bl SetMovementDelay + ldrb r1, [r6] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r6] + strh r5, [r7, #0x30] +_0809033A: + movs r0, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08090344: .4byte 0x084E5B40 + thumb_func_end MovementType_FaceDownUpAndRight_Step2 + + thumb_func_start MovementType_FaceDownUpAndRight_Step3 +MovementType_FaceDownUpAndRight_Step3: @ 0x08090348 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r0, r5, #0 + bl WaitForMovementDelay + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08090366 + adds r0, r4, #0 + bl EventObjectIsTrainerAndCloseToPlayer + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809036E +_08090366: + movs r0, #4 + strh r0, [r5, #0x30] + movs r0, #1 + b _08090370 +_0809036E: + movs r0, #0 +_08090370: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_FaceDownUpAndRight_Step3 + + thumb_func_start MovementType_FaceDownUpAndRight_Step4 +MovementType_FaceDownUpAndRight_Step4: @ 0x08090378 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _080903BC + mov r0, sp + movs r2, #4 + bl memcpy + adds r0, r4, #0 + movs r1, #8 + bl TryGetTrainerEncounterDirection + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080903A8 + bl Random + movs r1, #3 + ands r1, r0 + mov r2, sp + adds r0, r2, r1 + ldrb r1, [r0] +_080903A8: + adds r0, r4, #0 + bl SetEventObjectDirection + movs r0, #1 + strh r0, [r5, #0x30] + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080903BC: .4byte 0x084E5CBC + thumb_func_end MovementType_FaceDownUpAndRight_Step4 + + thumb_func_start MovementType_FaceUpRightAndLeft +MovementType_FaceUpRightAndLeft: @ 0x080903C0 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _080903DC + adds r0, r0, r2 + ldr r2, _080903E0 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_080903DC: .4byte 0x02036FF0 +_080903E0: .4byte 0x080903E5 + thumb_func_end MovementType_FaceUpRightAndLeft + + thumb_func_start MovementType_Invisible_callback +MovementType_Invisible_callback: @ 0x080903E4 + push {r4, lr} + ldr r3, _08090400 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_Invisible_callback + + thumb_func_start GetMoveDirectionFastestAnimNum +GetMoveDirectionFastestAnimNum: @ 0x080903F8 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08090400: .4byte 0x084E5CC0 + thumb_func_end GetMoveDirectionFastestAnimNum + + thumb_func_start MovementType_FaceUpLeftAndRight_Step0 +MovementType_FaceUpLeftAndRight_Step0: @ 0x08090404 + push {r4, lr} + adds r4, r1, #0 + bl ClearEventObjectMovement + movs r0, #1 + strh r0, [r4, #0x30] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_FaceUpLeftAndRight_Step0 + + thumb_func_start MovementType_FaceUpLeftAndRight_Step1 +MovementType_FaceUpLeftAndRight_Step1: @ 0x08090418 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_08092CA0 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl EventObjectSetSingleMovement + movs r0, #2 + strh r0, [r5, #0x30] + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_FaceUpLeftAndRight_Step1 + + thumb_func_start MovementType_FaceUpLeftAndRight_Step2 +MovementType_FaceUpLeftAndRight_Step2: @ 0x08090444 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r7, r1, #0 + bl sub_08093234 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809047A + ldr r4, _08090484 + bl Random + movs r5, #3 + adds r1, r5, #0 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + movs r0, #0 + ldrsh r1, [r1, r0] + adds r0, r7, #0 + bl SetMovementDelay + ldrb r1, [r6] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r6] + strh r5, [r7, #0x30] +_0809047A: + movs r0, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08090484: .4byte 0x084E5B40 + thumb_func_end MovementType_FaceUpLeftAndRight_Step2 + + thumb_func_start MovementType_FaceUpLeftAndRight_Step3 +MovementType_FaceUpLeftAndRight_Step3: @ 0x08090488 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r0, r5, #0 + bl WaitForMovementDelay + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080904A6 + adds r0, r4, #0 + bl EventObjectIsTrainerAndCloseToPlayer + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080904AE +_080904A6: + movs r0, #4 + strh r0, [r5, #0x30] + movs r0, #1 + b _080904B0 +_080904AE: + movs r0, #0 +_080904B0: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_FaceUpLeftAndRight_Step3 + + thumb_func_start MovementType_FaceUpLeftAndRight_Step4 +MovementType_FaceUpLeftAndRight_Step4: @ 0x080904B8 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _080904FC + mov r0, sp + movs r2, #4 + bl memcpy + adds r0, r4, #0 + movs r1, #9 + bl TryGetTrainerEncounterDirection + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080904E8 + bl Random + movs r1, #3 + ands r1, r0 + mov r2, sp + adds r0, r2, r1 + ldrb r1, [r0] +_080904E8: + adds r0, r4, #0 + bl SetEventObjectDirection + movs r0, #1 + strh r0, [r5, #0x30] + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080904FC: .4byte 0x084E5CD4 + thumb_func_end MovementType_FaceUpLeftAndRight_Step4 + + thumb_func_start MovementType_FaceDownRightAndLeft +MovementType_FaceDownRightAndLeft: @ 0x08090500 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _0809051C + adds r0, r0, r2 + ldr r2, _08090520 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_0809051C: .4byte 0x02036FF0 +_08090520: .4byte 0x08090525 + thumb_func_end MovementType_FaceDownRightAndLeft + + thumb_func_start MovementType_JogInPlace_callback +MovementType_JogInPlace_callback: @ 0x08090524 + push {r4, lr} + ldr r3, _08090540 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_JogInPlace_callback + + thumb_func_start GetRunningDirectionAnimNum +GetRunningDirectionAnimNum: @ 0x08090538 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08090540: .4byte 0x084E5CD8 + thumb_func_end GetRunningDirectionAnimNum + + thumb_func_start MovementType_FaceDownLeftAndRight_Step0 +MovementType_FaceDownLeftAndRight_Step0: @ 0x08090544 + push {r4, lr} + adds r4, r1, #0 + bl ClearEventObjectMovement + movs r0, #1 + strh r0, [r4, #0x30] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_FaceDownLeftAndRight_Step0 + + thumb_func_start MovementType_FaceDownLeftAndRight_Step1 +MovementType_FaceDownLeftAndRight_Step1: @ 0x08090558 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_08092CA0 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl EventObjectSetSingleMovement + movs r0, #2 + strh r0, [r5, #0x30] + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_FaceDownLeftAndRight_Step1 + + thumb_func_start MovementType_FaceDownLeftAndRight_Step2 +MovementType_FaceDownLeftAndRight_Step2: @ 0x08090584 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r7, r1, #0 + bl sub_08093234 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080905BA + ldr r4, _080905C4 + bl Random + movs r5, #3 + adds r1, r5, #0 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + movs r0, #0 + ldrsh r1, [r1, r0] + adds r0, r7, #0 + bl SetMovementDelay + ldrb r1, [r6] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r6] + strh r5, [r7, #0x30] +_080905BA: + movs r0, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080905C4: .4byte 0x084E5B40 + thumb_func_end MovementType_FaceDownLeftAndRight_Step2 + + thumb_func_start MovementType_FaceDownLeftAndRight_Step3 +MovementType_FaceDownLeftAndRight_Step3: @ 0x080905C8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r0, r5, #0 + bl WaitForMovementDelay + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080905E6 + adds r0, r4, #0 + bl EventObjectIsTrainerAndCloseToPlayer + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080905EE +_080905E6: + movs r0, #4 + strh r0, [r5, #0x30] + movs r0, #1 + b _080905F0 +_080905EE: + movs r0, #0 +_080905F0: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_FaceDownLeftAndRight_Step3 + + thumb_func_start MovementType_FaceDownLeftAndRight_Step4 +MovementType_FaceDownLeftAndRight_Step4: @ 0x080905F8 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _0809063C + mov r0, sp + movs r2, #4 + bl memcpy + adds r0, r4, #0 + movs r1, #0xa + bl TryGetTrainerEncounterDirection + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _08090628 + bl Random + movs r1, #3 + ands r1, r0 + mov r2, sp + adds r0, r2, r1 + ldrb r1, [r0] +_08090628: + adds r0, r4, #0 + bl SetEventObjectDirection + movs r0, #1 + strh r0, [r5, #0x30] + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0809063C: .4byte 0x084E5CEC + thumb_func_end MovementType_FaceDownLeftAndRight_Step4 + + thumb_func_start MovementType_RotateCounterclockwise +MovementType_RotateCounterclockwise: @ 0x08090640 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _0809065C + adds r0, r0, r2 + ldr r2, _08090660 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_0809065C: .4byte 0x02036FF0 +_08090660: .4byte 0x08090665 + thumb_func_end MovementType_RotateCounterclockwise + + thumb_func_start MovementType_LookAround_callback +MovementType_LookAround_callback: @ 0x08090664 + push {r4, lr} + ldr r3, _08090680 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_LookAround_callback + + thumb_func_start GetTrainerFacingDirectionMovementType +GetTrainerFacingDirectionMovementType: @ 0x08090678 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08090680: .4byte 0x084E5CF0 + thumb_func_end GetTrainerFacingDirectionMovementType + + thumb_func_start MovementType_RotateCounterclockwise_Step0 +MovementType_RotateCounterclockwise_Step0: @ 0x08090684 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl ClearEventObjectMovement + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_08092CA0 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl EventObjectSetSingleMovement + movs r0, #1 + strh r0, [r5, #0x30] + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementType_RotateCounterclockwise_Step0 + + thumb_func_start MovementType_RotateCounterclockwise_Step1 +MovementType_RotateCounterclockwise_Step1: @ 0x080906B0 + push {r4, lr} + adds r4, r1, #0 + bl sub_08093234 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080906CA + adds r0, r4, #0 + movs r1, #0x30 + bl SetMovementDelay + movs r0, #2 + strh r0, [r4, #0x30] +_080906CA: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_RotateCounterclockwise_Step1 + + thumb_func_start MovementType_RotateCounterclockwise_Step2 +MovementType_RotateCounterclockwise_Step2: @ 0x080906D4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r0, r5, #0 + bl WaitForMovementDelay + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080906F2 + adds r0, r4, #0 + bl EventObjectIsTrainerAndCloseToPlayer + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080906F6 +_080906F2: + movs r0, #3 + strh r0, [r5, #0x30] +_080906F6: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_RotateCounterclockwise_Step2 + + thumb_func_start MovementType_RotateCounterclockwise_Step3 +MovementType_RotateCounterclockwise_Step3: @ 0x08090700 + push {r4, r5, lr} + sub sp, #8 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _08090740 + mov r0, sp + movs r2, #5 + bl memcpy + adds r0, r4, #0 + movs r1, #0 + bl TryGetTrainerEncounterDirection + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0809072C + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + add r0, sp + ldrb r1, [r0] +_0809072C: + adds r0, r4, #0 + bl SetEventObjectDirection + movs r0, #0 + strh r0, [r5, #0x30] + movs r0, #1 + add sp, #8 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08090740: .4byte 0x084E5D00 + thumb_func_end MovementType_RotateCounterclockwise_Step3 + + thumb_func_start MovementType_RotateClockwise +MovementType_RotateClockwise: @ 0x08090744 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _08090760 + adds r0, r0, r2 + ldr r2, _08090764 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_08090760: .4byte 0x02036FF0 +_08090764: .4byte 0x08090769 + thumb_func_end MovementType_RotateClockwise + + thumb_func_start MovementType_RotateClockwise_callback +MovementType_RotateClockwise_callback: @ 0x08090768 + push {r4, lr} + ldr r3, _08090784 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_RotateClockwise_callback + + thumb_func_start GroundEffect_Ripple +GroundEffect_Ripple: @ 0x0809077C + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08090784: .4byte 0x084E5D08 + thumb_func_end GroundEffect_Ripple + + thumb_func_start MovementType_RotateClockwise_Step0 +MovementType_RotateClockwise_Step0: @ 0x08090788 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl ClearEventObjectMovement + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_08092CA0 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl EventObjectSetSingleMovement + movs r0, #1 + strh r0, [r5, #0x30] + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementType_RotateClockwise_Step0 + + thumb_func_start MovementType_RotateClockwise_Step1 +MovementType_RotateClockwise_Step1: @ 0x080907B4 + push {r4, lr} + adds r4, r1, #0 + bl sub_08093234 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080907CE + adds r0, r4, #0 + movs r1, #0x30 + bl SetMovementDelay + movs r0, #2 + strh r0, [r4, #0x30] +_080907CE: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_RotateClockwise_Step1 + + thumb_func_start MovementType_RotateClockwise_Step2 +MovementType_RotateClockwise_Step2: @ 0x080907D8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r0, r5, #0 + bl WaitForMovementDelay + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080907F6 + adds r0, r4, #0 + bl EventObjectIsTrainerAndCloseToPlayer + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080907FA +_080907F6: + movs r0, #3 + strh r0, [r5, #0x30] +_080907FA: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_RotateClockwise_Step2 + + thumb_func_start MovementType_RotateClockwise_Step3 +MovementType_RotateClockwise_Step3: @ 0x08090804 + push {r4, r5, lr} + sub sp, #8 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _08090844 + mov r0, sp + movs r2, #5 + bl memcpy + adds r0, r4, #0 + movs r1, #0 + bl TryGetTrainerEncounterDirection + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _08090830 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + add r0, sp + ldrb r1, [r0] +_08090830: + adds r0, r4, #0 + bl SetEventObjectDirection + movs r0, #0 + strh r0, [r5, #0x30] + movs r0, #1 + add sp, #8 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08090844: .4byte 0x084E5D18 + thumb_func_end MovementType_RotateClockwise_Step3 + + thumb_func_start MovementType_WalkBackAndForth +MovementType_WalkBackAndForth: @ 0x08090848 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _08090864 + adds r0, r0, r2 + ldr r2, _08090868 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_08090864: .4byte 0x02036FF0 +_08090868: .4byte 0x0809086D + thumb_func_end MovementType_WalkBackAndForth + + thumb_func_start MovementType_RotateCounterclockwise_callback +MovementType_RotateCounterclockwise_callback: @ 0x0809086C + push {r4, lr} + ldr r3, _08090888 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_RotateCounterclockwise_callback + + thumb_func_start Unref_GetAnimNums_08375633 +Unref_GetAnimNums_08375633: @ 0x08090880 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08090888: .4byte 0x084E5D20 + thumb_func_end Unref_GetAnimNums_08375633 + + thumb_func_start MovementType_WalkBackAndForth_Step0 +MovementType_WalkBackAndForth_Step0: @ 0x0809088C + push {r4, lr} + adds r4, r1, #0 + bl ClearEventObjectMovement + movs r0, #1 + strh r0, [r4, #0x30] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_WalkBackAndForth_Step0 + + thumb_func_start MovementType_WalkBackAndForth_Step1 +MovementType_WalkBackAndForth_Step1: @ 0x080908A0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r0, _080908D4 + ldrb r1, [r4, #6] + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r4, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + beq _080908C2 + adds r0, r1, #0 + bl GetOppositeDirection + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 +_080908C2: + adds r0, r4, #0 + bl SetEventObjectDirection + movs r0, #2 + strh r0, [r5, #0x30] + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080908D4: .4byte 0x084DDA21 + thumb_func_end MovementType_WalkBackAndForth_Step1 + + thumb_func_start MovementType_WalkBackAndForth_Step2 +MovementType_WalkBackAndForth_Step2: @ 0x080908D8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r7, r1, #0 + adds r2, r4, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #0 + beq _08090908 + ldr r1, [r4, #0xc] + ldr r0, [r4, #0x10] + cmp r1, r0 + bne _08090908 + movs r0, #0 + strb r0, [r2] + ldrb r0, [r4, #0x18] + lsrs r0, r0, #4 + bl GetOppositeDirection + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl SetEventObjectDirection +_08090908: + ldrb r1, [r4, #0x18] + lsrs r1, r1, #4 + adds r0, r4, #0 + bl GetCollisionInDirection + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldrb r0, [r4, #0x18] + lsrs r0, r0, #4 + bl sub_08092CF8 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r5, #1 + bne _0809095E + adds r1, r4, #0 + adds r1, #0x21 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldrb r0, [r4, #0x18] + lsrs r0, r0, #4 + bl GetOppositeDirection + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl SetEventObjectDirection + ldrb r0, [r4, #0x18] + lsrs r0, r0, #4 + bl sub_08092CF8 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldrb r1, [r4, #0x18] + lsrs r1, r1, #4 + adds r0, r4, #0 + bl GetCollisionInDirection + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_0809095E: + cmp r5, #0 + beq _08090970 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_08092F08 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_08090970: + adds r0, r4, #0 + adds r1, r7, #0 + adds r2, r6, #0 + bl EventObjectSetSingleMovement + ldrb r0, [r4] + movs r1, #2 + orrs r0, r1 + strb r0, [r4] + movs r0, #3 + strh r0, [r7, #0x30] + movs r0, #1 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_WalkBackAndForth_Step2 + + thumb_func_start MovementType_WalkBackAndForth_Step3 +MovementType_WalkBackAndForth_Step3: @ 0x08090990 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093234 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080909AE + ldrb r0, [r4] + movs r1, #3 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4] + movs r0, #1 + strh r0, [r5, #0x30] +_080909AE: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_WalkBackAndForth_Step3 + + thumb_func_start MovementType_WalkSequence_Step0 +MovementType_WalkSequence_Step0: @ 0x080909B8 + push {r4, lr} + adds r4, r1, #0 + bl ClearEventObjectMovement + movs r0, #1 + strh r0, [r4, #0x30] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_WalkSequence_Step0 + + thumb_func_start MoveNextDirectionInSequence +MoveNextDirectionInSequence: @ 0x080909CC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + mov r8, r1 + adds r7, r2, #0 + adds r2, r4, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #3 + bne _080909EE + ldr r1, [r4, #0xc] + ldr r0, [r4, #0x10] + cmp r1, r0 + bne _080909EE + movs r0, #0 + strb r0, [r2] +_080909EE: + adds r5, r4, #0 + adds r5, #0x21 + ldrb r0, [r5] + adds r0, r7, r0 + ldrb r1, [r0] + adds r0, r4, #0 + bl SetEventObjectDirection + ldrb r0, [r4, #0x18] + lsrs r0, r0, #4 + bl sub_08092CF8 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldrb r1, [r4, #0x18] + lsrs r1, r1, #4 + adds r0, r4, #0 + bl GetCollisionInDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08090A48 + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + ldrb r0, [r5] + adds r0, r7, r0 + ldrb r1, [r0] + adds r0, r4, #0 + bl SetEventObjectDirection + ldrb r0, [r4, #0x18] + lsrs r0, r0, #4 + bl sub_08092CF8 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldrb r1, [r4, #0x18] + lsrs r1, r1, #4 + adds r0, r4, #0 + bl GetCollisionInDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_08090A48: + cmp r0, #0 + beq _08090A5A + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_08092F08 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_08090A5A: + adds r0, r4, #0 + mov r1, r8 + adds r2, r6, #0 + bl EventObjectSetSingleMovement + ldrb r0, [r4] + movs r1, #2 + orrs r0, r1 + strb r0, [r4] + movs r0, #2 + mov r1, r8 + strh r0, [r1, #0x30] + movs r0, #1 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MoveNextDirectionInSequence + + thumb_func_start MovementType_WalkSequence_Step2 +MovementType_WalkSequence_Step2: @ 0x08090A80 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093234 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08090A9E + ldrb r0, [r4] + movs r1, #3 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4] + movs r0, #1 + strh r0, [r5, #0x30] +_08090A9E: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_WalkSequence_Step2 + + thumb_func_start MovementType_WalkSequenceUpRightLeftDown +MovementType_WalkSequenceUpRightLeftDown: @ 0x08090AA8 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _08090AC4 + adds r0, r0, r2 + ldr r2, _08090AC8 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_08090AC4: .4byte 0x02036FF0 +_08090AC8: .4byte 0x08090ACD + thumb_func_end MovementType_WalkSequenceUpRightLeftDown + + thumb_func_start EventObjectCB2_BerryTree +EventObjectCB2_BerryTree: @ 0x08090ACC + push {r4, lr} + ldr r3, _08090AE8 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end EventObjectCB2_BerryTree + + thumb_func_start ZCoordToPriority +ZCoordToPriority: @ 0x08090AE0 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08090AE8: .4byte 0x084E5D30 + thumb_func_end ZCoordToPriority + + thumb_func_start MovementType_WalkSequenceUpRightLeftDown_Step1 +MovementType_WalkSequenceUpRightLeftDown_Step1: @ 0x08090AEC + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _08090B30 + mov r0, sp + movs r2, #4 + bl memcpy + adds r2, r4, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #2 + bne _08090B18 + movs r0, #0xc + ldrsh r1, [r4, r0] + movs r3, #0x10 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _08090B18 + movs r0, #3 + strb r0, [r2] +_08090B18: + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sp + bl MoveNextDirectionInSequence + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08090B30: .4byte 0x084E5D3C + thumb_func_end MovementType_WalkSequenceUpRightLeftDown_Step1 + + thumb_func_start MovementType_WalkSequenceRightLeftDownUp +MovementType_WalkSequenceRightLeftDownUp: @ 0x08090B34 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _08090B50 + adds r0, r0, r2 + ldr r2, _08090B54 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_08090B50: .4byte 0x02036FF0 +_08090B54: .4byte 0x08090B59 + thumb_func_end MovementType_WalkSequenceRightLeftDownUp + + thumb_func_start MovementType_RunInPlace_callback +MovementType_RunInPlace_callback: @ 0x08090B58 + push {r4, lr} + ldr r3, _08090B74 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_RunInPlace_callback + + thumb_func_start sub_08090B6C +sub_08090B6C: @ 0x08090B6C + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08090B74: .4byte 0x084E5D40 + thumb_func_end sub_08090B6C + + thumb_func_start MovementType_WalkSequenceRightLeftDownUp_Step1 +MovementType_WalkSequenceRightLeftDownUp_Step1: @ 0x08090B78 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _08090BBC + mov r0, sp + movs r2, #4 + bl memcpy + adds r2, r4, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #1 + bne _08090BA4 + movs r0, #0xc + ldrsh r1, [r4, r0] + movs r3, #0x10 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _08090BA4 + movs r0, #2 + strb r0, [r2] +_08090BA4: + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sp + bl MoveNextDirectionInSequence + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08090BBC: .4byte 0x084E5D4C + thumb_func_end MovementType_WalkSequenceRightLeftDownUp_Step1 + + thumb_func_start MovementType_WalkSequenceDownUpRightLeft +MovementType_WalkSequenceDownUpRightLeft: @ 0x08090BC0 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _08090BDC + adds r0, r0, r2 + ldr r2, _08090BE0 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_08090BDC: .4byte 0x02036FF0 +_08090BE0: .4byte 0x08090BE5 + thumb_func_end MovementType_WalkSequenceDownUpRightLeft + + thumb_func_start MovementType_WalkBackAndForth_callback +MovementType_WalkBackAndForth_callback: @ 0x08090BE4 + push {r4, lr} + ldr r3, _08090C00 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_WalkBackAndForth_callback + + thumb_func_start sub_08090BF8 +sub_08090BF8: @ 0x08090BF8 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08090C00: .4byte 0x084E5D50 + thumb_func_end sub_08090BF8 + + thumb_func_start MovementType_WalkSequenceDownUpRightLeft_Step1 +MovementType_WalkSequenceDownUpRightLeft_Step1: @ 0x08090C04 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _08090C48 + mov r0, sp + movs r2, #4 + bl memcpy + adds r2, r4, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #1 + bne _08090C30 + movs r0, #0xe + ldrsh r1, [r4, r0] + movs r3, #0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _08090C30 + movs r0, #2 + strb r0, [r2] +_08090C30: + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sp + bl MoveNextDirectionInSequence + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08090C48: .4byte 0x084E5D5C + thumb_func_end MovementType_WalkSequenceDownUpRightLeft_Step1 + + thumb_func_start MovementType_WalkSequenceLeftDownUpRight +MovementType_WalkSequenceLeftDownUpRight: @ 0x08090C4C + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _08090C68 + adds r0, r0, r2 + ldr r2, _08090C6C + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_08090C68: .4byte 0x02036FF0 +_08090C6C: .4byte 0x08090C71 + thumb_func_end MovementType_WalkSequenceLeftDownUpRight + + thumb_func_start MovementType_WalkInPlace_callback +MovementType_WalkInPlace_callback: @ 0x08090C70 + push {r4, lr} + ldr r3, _08090C8C + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_WalkInPlace_callback + + thumb_func_start sub_08090C84 +sub_08090C84: @ 0x08090C84 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08090C8C: .4byte 0x084E5D60 + thumb_func_end sub_08090C84 + + thumb_func_start MovementType_WalkSequenceLeftDownUpRight_Step1 +MovementType_WalkSequenceLeftDownUpRight_Step1: @ 0x08090C90 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _08090CD4 + mov r0, sp + movs r2, #4 + bl memcpy + adds r2, r4, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #2 + bne _08090CBC + movs r0, #0xe + ldrsh r1, [r4, r0] + movs r3, #0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _08090CBC + movs r0, #3 + strb r0, [r2] +_08090CBC: + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sp + bl MoveNextDirectionInSequence + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08090CD4: .4byte 0x084E5D6C + thumb_func_end MovementType_WalkSequenceLeftDownUpRight_Step1 + + thumb_func_start MovementType_WalkSequenceUpLeftRightDown +MovementType_WalkSequenceUpLeftRightDown: @ 0x08090CD8 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _08090CF4 + adds r0, r0, r2 + ldr r2, _08090CF8 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_08090CF4: .4byte 0x02036FF0 +_08090CF8: .4byte 0x08090CFD + thumb_func_end MovementType_WalkSequenceUpLeftRightDown + + thumb_func_start MovementType_WalkSequenceDownLeftRightUp_callback +MovementType_WalkSequenceDownLeftRightUp_callback: @ 0x08090CFC + push {r4, lr} + ldr r3, _08090D18 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_WalkSequenceDownLeftRightUp_callback + + thumb_func_start sub_08090D10 +sub_08090D10: @ 0x08090D10 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08090D18: .4byte 0x084E5D70 + thumb_func_end sub_08090D10 + + thumb_func_start MovementType_WalkSequenceUpLeftRightDown_Step1 +MovementType_WalkSequenceUpLeftRightDown_Step1: @ 0x08090D1C + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _08090D60 + mov r0, sp + movs r2, #4 + bl memcpy + adds r2, r4, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #2 + bne _08090D48 + movs r0, #0xc + ldrsh r1, [r4, r0] + movs r3, #0x10 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _08090D48 + movs r0, #3 + strb r0, [r2] +_08090D48: + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sp + bl MoveNextDirectionInSequence + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08090D60: .4byte 0x084E5D7C + thumb_func_end MovementType_WalkSequenceUpLeftRightDown_Step1 + + thumb_func_start MovementType_WalkSequenceLeftRightDownUp +MovementType_WalkSequenceLeftRightDownUp: @ 0x08090D64 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _08090D80 + adds r0, r0, r2 + ldr r2, _08090D84 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_08090D80: .4byte 0x02036FF0 +_08090D84: .4byte 0x08090D89 + thumb_func_end MovementType_WalkSequenceLeftRightDownUp + + thumb_func_start MovementType_WalkSequenceDownLeftUpRight_callback +MovementType_WalkSequenceDownLeftUpRight_callback: @ 0x08090D88 + push {r4, lr} + ldr r3, _08090DA4 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_WalkSequenceDownLeftUpRight_callback + + thumb_func_start sub_08090D9C +sub_08090D9C: @ 0x08090D9C + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08090DA4: .4byte 0x084E5D80 + thumb_func_end sub_08090D9C + + thumb_func_start MovementType_WalkSequenceLeftRightDownUp_Step1 +MovementType_WalkSequenceLeftRightDownUp_Step1: @ 0x08090DA8 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _08090DEC + mov r0, sp + movs r2, #4 + bl memcpy + adds r2, r4, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #1 + bne _08090DD4 + movs r0, #0xc + ldrsh r1, [r4, r0] + movs r3, #0x10 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _08090DD4 + movs r0, #2 + strb r0, [r2] +_08090DD4: + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sp + bl MoveNextDirectionInSequence + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08090DEC: .4byte 0x084E5D8C + thumb_func_end MovementType_WalkSequenceLeftRightDownUp_Step1 + + thumb_func_start MovementType_WalkSequenceDownUpLeftRight +MovementType_WalkSequenceDownUpLeftRight: @ 0x08090DF0 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _08090E0C + adds r0, r0, r2 + ldr r2, _08090E10 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_08090E0C: .4byte 0x02036FF0 +_08090E10: .4byte 0x08090E15 + thumb_func_end MovementType_WalkSequenceDownUpLeftRight + + thumb_func_start MovementType_WalkSequenceDownRightLeftUp_callback +MovementType_WalkSequenceDownRightLeftUp_callback: @ 0x08090E14 + push {r4, lr} + ldr r3, _08090E30 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_WalkSequenceDownRightLeftUp_callback + + thumb_func_start sub_08090E28 +sub_08090E28: @ 0x08090E28 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08090E30: .4byte 0x084E5D90 + thumb_func_end sub_08090E28 + + thumb_func_start MovementType_WalkSequenceDownUpLeftRight_Step1 +MovementType_WalkSequenceDownUpLeftRight_Step1: @ 0x08090E34 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _08090E78 + mov r0, sp + movs r2, #4 + bl memcpy + adds r2, r4, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #1 + bne _08090E60 + movs r0, #0xe + ldrsh r1, [r4, r0] + movs r3, #0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _08090E60 + movs r0, #2 + strb r0, [r2] +_08090E60: + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sp + bl MoveNextDirectionInSequence + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08090E78: .4byte 0x084E5B64 + thumb_func_end MovementType_WalkSequenceDownUpLeftRight_Step1 + + thumb_func_start MovementType_WalkSequenceRightDownUpLeft +MovementType_WalkSequenceRightDownUpLeft: @ 0x08090E7C + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _08090E98 + adds r0, r0, r2 + ldr r2, _08090E9C + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_08090E98: .4byte 0x02036FF0 +_08090E9C: .4byte 0x08090EA1 + thumb_func_end MovementType_WalkSequenceRightDownUpLeft + + thumb_func_start MovementType_WalkSequenceDownRightUpLeft_callback +MovementType_WalkSequenceDownRightUpLeft_callback: @ 0x08090EA0 + push {r4, lr} + ldr r3, _08090EBC + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_WalkSequenceDownRightUpLeft_callback + + thumb_func_start sub_08090EB4 +sub_08090EB4: @ 0x08090EB4 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08090EBC: .4byte 0x084E5D9C + thumb_func_end sub_08090EB4 + + thumb_func_start MovementType_WalkSequenceRightDownUpLeft_Step1 +MovementType_WalkSequenceRightDownUpLeft_Step1: @ 0x08090EC0 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _08090F04 + mov r0, sp + movs r2, #4 + bl memcpy + adds r2, r4, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #2 + bne _08090EEC + movs r0, #0xe + ldrsh r1, [r4, r0] + movs r3, #0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _08090EEC + movs r0, #3 + strb r0, [r2] +_08090EEC: + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sp + bl MoveNextDirectionInSequence + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08090F04: .4byte 0x084E5DA8 + thumb_func_end MovementType_WalkSequenceRightDownUpLeft_Step1 + + thumb_func_start MovementType_WalkSequenceLeftUpDownRight +MovementType_WalkSequenceLeftUpDownRight: @ 0x08090F08 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _08090F24 + adds r0, r0, r2 + ldr r2, _08090F28 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_08090F24: .4byte 0x02036FF0 +_08090F28: .4byte 0x08090F2D + thumb_func_end MovementType_WalkSequenceLeftUpDownRight + + thumb_func_start MovementType_WalkSequenceDownUpLeftRight_callback +MovementType_WalkSequenceDownUpLeftRight_callback: @ 0x08090F2C + push {r4, lr} + ldr r3, _08090F48 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_WalkSequenceDownUpLeftRight_callback + + thumb_func_start MovementType_WalkSequenceDownUpRightLeft_callback +MovementType_WalkSequenceDownUpRightLeft_callback: @ 0x08090F40 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08090F48: .4byte 0x084E5DAC + thumb_func_end MovementType_WalkSequenceDownUpRightLeft_callback + + thumb_func_start MovementType_WalkSequenceLeftUpDownRight_Step1 +MovementType_WalkSequenceLeftUpDownRight_Step1: @ 0x08090F4C + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _08090F90 + mov r0, sp + movs r2, #4 + bl memcpy + adds r2, r4, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #2 + bne _08090F78 + movs r0, #0xe + ldrsh r1, [r4, r0] + movs r3, #0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _08090F78 + movs r0, #3 + strb r0, [r2] +_08090F78: + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sp + bl MoveNextDirectionInSequence + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08090F90: .4byte 0x084E5DB8 + thumb_func_end MovementType_WalkSequenceLeftUpDownRight_Step1 + + thumb_func_start MovementType_WalkSequenceUpDownRightLeft +MovementType_WalkSequenceUpDownRightLeft: @ 0x08090F94 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _08090FB0 + adds r0, r0, r2 + ldr r2, _08090FB4 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_08090FB0: .4byte 0x02036FF0 +_08090FB4: .4byte 0x08090FB9 + thumb_func_end MovementType_WalkSequenceUpDownRightLeft + + thumb_func_start MovementType_WalkSequenceLeftDownRightUp_callback +MovementType_WalkSequenceLeftDownRightUp_callback: @ 0x08090FB8 + push {r4, lr} + ldr r3, _08090FD4 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_WalkSequenceLeftDownRightUp_callback + + thumb_func_start MovementType_WalkSequenceLeftDownUpRight_callback +MovementType_WalkSequenceLeftDownUpRight_callback: @ 0x08090FCC + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08090FD4: .4byte 0x084E5DBC + thumb_func_end MovementType_WalkSequenceLeftDownUpRight_callback + + thumb_func_start MovementType_WalkSequenceUpDownRightLeft_Step1 +MovementType_WalkSequenceUpDownRightLeft_Step1: @ 0x08090FD8 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _0809101C + mov r0, sp + movs r2, #4 + bl memcpy + adds r2, r4, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #1 + bne _08091004 + movs r0, #0xe + ldrsh r1, [r4, r0] + movs r3, #0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _08091004 + movs r0, #2 + strb r0, [r2] +_08091004: + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sp + bl MoveNextDirectionInSequence + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0809101C: .4byte 0x084E5DC8 + thumb_func_end MovementType_WalkSequenceUpDownRightLeft_Step1 + + thumb_func_start MovementType_WalkSequenceRightLeftUpDown +MovementType_WalkSequenceRightLeftUpDown: @ 0x08091020 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _0809103C + adds r0, r0, r2 + ldr r2, _08091040 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_0809103C: .4byte 0x02036FF0 +_08091040: .4byte 0x08091045 + thumb_func_end MovementType_WalkSequenceRightLeftUpDown + + thumb_func_start MovementType_WalkSequenceLeftRightDownUp_callback +MovementType_WalkSequenceLeftRightDownUp_callback: @ 0x08091044 + push {r4, lr} + ldr r3, _08091060 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_WalkSequenceLeftRightDownUp_callback + + thumb_func_start MovementType_WalkSequenceLeftRightUpDown_callback +MovementType_WalkSequenceLeftRightUpDown_callback: @ 0x08091058 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08091060: .4byte 0x084E5DCC + thumb_func_end MovementType_WalkSequenceLeftRightUpDown_callback + + thumb_func_start MovementType_WalkSequenceRightLeftUpDown_Step1 +MovementType_WalkSequenceRightLeftUpDown_Step1: @ 0x08091064 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _080910A8 + mov r0, sp + movs r2, #4 + bl memcpy + adds r2, r4, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #1 + bne _08091090 + movs r0, #0xc + ldrsh r1, [r4, r0] + movs r3, #0x10 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _08091090 + movs r0, #2 + strb r0, [r2] +_08091090: + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sp + bl MoveNextDirectionInSequence + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080910A8: .4byte 0x084E5DD8 + thumb_func_end MovementType_WalkSequenceRightLeftUpDown_Step1 + + thumb_func_start MovementType_WalkSequenceDownRightLeftUp +MovementType_WalkSequenceDownRightLeftUp: @ 0x080910AC + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _080910C8 + adds r0, r0, r2 + ldr r2, _080910CC + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_080910C8: .4byte 0x02036FF0 +_080910CC: .4byte 0x080910D1 + thumb_func_end MovementType_WalkSequenceDownRightLeftUp + + thumb_func_start MovementType_WalkSequenceLeftUpDownRight_callback +MovementType_WalkSequenceLeftUpDownRight_callback: @ 0x080910D0 + push {r4, lr} + ldr r3, _080910EC + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_WalkSequenceLeftUpDownRight_callback + + thumb_func_start MovementType_WalkSequenceLeftUpRightDown_callback +MovementType_WalkSequenceLeftUpRightDown_callback: @ 0x080910E4 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080910EC: .4byte 0x084E5DDC + thumb_func_end MovementType_WalkSequenceLeftUpRightDown_callback + + thumb_func_start MovementType_WalkSequenceDownRightLeftUp_Step1 +MovementType_WalkSequenceDownRightLeftUp_Step1: @ 0x080910F0 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _08091134 + mov r0, sp + movs r2, #4 + bl memcpy + adds r2, r4, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #2 + bne _0809111C + movs r0, #0xc + ldrsh r1, [r4, r0] + movs r3, #0x10 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _0809111C + movs r0, #3 + strb r0, [r2] +_0809111C: + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sp + bl MoveNextDirectionInSequence + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08091134: .4byte 0x084E5DE8 + thumb_func_end MovementType_WalkSequenceDownRightLeftUp_Step1 + + thumb_func_start MovementType_WalkSequenceRightUpDownLeft +MovementType_WalkSequenceRightUpDownLeft: @ 0x08091138 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _08091154 + adds r0, r0, r2 + ldr r2, _08091158 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_08091154: .4byte 0x02036FF0 +_08091158: .4byte 0x0809115D + thumb_func_end MovementType_WalkSequenceRightUpDownLeft + + thumb_func_start MovementType_WalkSequenceRightDownLeftUp_callback +MovementType_WalkSequenceRightDownLeftUp_callback: @ 0x0809115C + push {r4, lr} + ldr r3, _08091178 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_WalkSequenceRightDownLeftUp_callback + + thumb_func_start MovementType_WalkSequenceRightDownUpLeft_callback +MovementType_WalkSequenceRightDownUpLeft_callback: @ 0x08091170 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08091178: .4byte 0x084E5DEC + thumb_func_end MovementType_WalkSequenceRightDownUpLeft_callback + + thumb_func_start MovementType_WalkSequenceRightUpDownLeft_Step1 +MovementType_WalkSequenceRightUpDownLeft_Step1: @ 0x0809117C + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _080911C0 + mov r0, sp + movs r2, #4 + bl memcpy + adds r2, r4, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #2 + bne _080911A8 + movs r0, #0xe + ldrsh r1, [r4, r0] + movs r3, #0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _080911A8 + movs r0, #3 + strb r0, [r2] +_080911A8: + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sp + bl MoveNextDirectionInSequence + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080911C0: .4byte 0x084E5DF8 + thumb_func_end MovementType_WalkSequenceRightUpDownLeft_Step1 + + thumb_func_start MovementType_WalkSequenceUpDownLeftRight +MovementType_WalkSequenceUpDownLeftRight: @ 0x080911C4 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _080911E0 + adds r0, r0, r2 + ldr r2, _080911E4 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_080911E0: .4byte 0x02036FF0 +_080911E4: .4byte 0x080911E9 + thumb_func_end MovementType_WalkSequenceUpDownLeftRight + + thumb_func_start MovementType_WalkSequenceRightLeftDownUp_callback +MovementType_WalkSequenceRightLeftDownUp_callback: @ 0x080911E8 + push {r4, lr} + ldr r3, _08091204 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_WalkSequenceRightLeftDownUp_callback + + thumb_func_start MovementType_WalkSequenceRightLeftUpDown_callback +MovementType_WalkSequenceRightLeftUpDown_callback: @ 0x080911FC + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08091204: .4byte 0x084E5DFC + thumb_func_end MovementType_WalkSequenceRightLeftUpDown_callback + + thumb_func_start MovementType_WalkSequenceUpDownLeftRight_Step1 +MovementType_WalkSequenceUpDownLeftRight_Step1: @ 0x08091208 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _0809124C + mov r0, sp + movs r2, #4 + bl memcpy + adds r2, r4, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #1 + bne _08091234 + movs r0, #0xe + ldrsh r1, [r4, r0] + movs r3, #0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _08091234 + movs r0, #2 + strb r0, [r2] +_08091234: + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sp + bl MoveNextDirectionInSequence + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0809124C: .4byte 0x084E5E08 + thumb_func_end MovementType_WalkSequenceUpDownLeftRight_Step1 + + thumb_func_start MovementType_WalkSequenceLeftRightUpDown +MovementType_WalkSequenceLeftRightUpDown: @ 0x08091250 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _0809126C + adds r0, r0, r2 + ldr r2, _08091270 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_0809126C: .4byte 0x02036FF0 +_08091270: .4byte 0x08091275 + thumb_func_end MovementType_WalkSequenceLeftRightUpDown + + thumb_func_start MovementType_WalkSequenceRightUpDownLeft_callback +MovementType_WalkSequenceRightUpDownLeft_callback: @ 0x08091274 + push {r4, lr} + ldr r3, _08091290 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_WalkSequenceRightUpDownLeft_callback + + thumb_func_start MovementType_WalkSequenceRightUpLeftDown_callback +MovementType_WalkSequenceRightUpLeftDown_callback: @ 0x08091288 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08091290: .4byte 0x084E5E0C + thumb_func_end MovementType_WalkSequenceRightUpLeftDown_callback + + thumb_func_start MovementType_WalkSequenceLeftRightUpDown_Step1 +MovementType_WalkSequenceLeftRightUpDown_Step1: @ 0x08091294 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _080912D8 + mov r0, sp + movs r2, #4 + bl memcpy + adds r2, r4, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #1 + bne _080912C0 + movs r0, #0xc + ldrsh r1, [r4, r0] + movs r3, #0x10 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _080912C0 + movs r0, #2 + strb r0, [r2] +_080912C0: + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sp + bl MoveNextDirectionInSequence + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080912D8: .4byte 0x084E5E18 + thumb_func_end MovementType_WalkSequenceLeftRightUpDown_Step1 + + thumb_func_start MovementType_WalkSequenceDownLeftRightUp +MovementType_WalkSequenceDownLeftRightUp: @ 0x080912DC + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _080912F8 + adds r0, r0, r2 + ldr r2, _080912FC + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_080912F8: .4byte 0x02036FF0 +_080912FC: .4byte 0x08091301 + thumb_func_end MovementType_WalkSequenceDownLeftRightUp + + thumb_func_start MovementType_WalkSequenceUpDownLeftRight_callback +MovementType_WalkSequenceUpDownLeftRight_callback: @ 0x08091300 + push {r4, lr} + ldr r3, _0809131C + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_WalkSequenceUpDownLeftRight_callback + + thumb_func_start MovementType_WalkSequenceUpDownRightLeft_callback +MovementType_WalkSequenceUpDownRightLeft_callback: @ 0x08091314 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809131C: .4byte 0x084E5E1C + thumb_func_end MovementType_WalkSequenceUpDownRightLeft_callback + + thumb_func_start MovementType_WalkSequenceDownLeftRightUp_Step1 +MovementType_WalkSequenceDownLeftRightUp_Step1: @ 0x08091320 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _08091364 + mov r0, sp + movs r2, #4 + bl memcpy + adds r2, r4, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #2 + bne _0809134C + movs r0, #0xc + ldrsh r1, [r4, r0] + movs r3, #0x10 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _0809134C + movs r0, #3 + strb r0, [r2] +_0809134C: + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sp + bl MoveNextDirectionInSequence + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08091364: .4byte 0x084E5E28 + thumb_func_end MovementType_WalkSequenceDownLeftRightUp_Step1 + + thumb_func_start MovementType_WalkSequenceUpLeftDownRight +MovementType_WalkSequenceUpLeftDownRight: @ 0x08091368 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _08091384 + adds r0, r0, r2 + ldr r2, _08091388 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_08091384: .4byte 0x02036FF0 +_08091388: .4byte 0x0809138D + thumb_func_end MovementType_WalkSequenceUpLeftDownRight + + thumb_func_start MovementType_WalkSequenceUpLeftDownRight_callback +MovementType_WalkSequenceUpLeftDownRight_callback: @ 0x0809138C + push {r4, lr} + ldr r3, _080913A8 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_WalkSequenceUpLeftDownRight_callback + + thumb_func_start MovementType_WalkSequenceUpLeftRightDown_callback +MovementType_WalkSequenceUpLeftRightDown_callback: @ 0x080913A0 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080913A8: .4byte 0x084E5E2C + thumb_func_end MovementType_WalkSequenceUpLeftRightDown_callback + + thumb_func_start MovementType_WalkSequenceUpLeftDownRight_Step1 +MovementType_WalkSequenceUpLeftDownRight_Step1: @ 0x080913AC + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _080913F0 + mov r0, sp + movs r2, #4 + bl memcpy + adds r2, r4, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #2 + bne _080913D8 + movs r0, #0xe + ldrsh r1, [r4, r0] + movs r3, #0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _080913D8 + movs r0, #3 + strb r0, [r2] +_080913D8: + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sp + bl MoveNextDirectionInSequence + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080913F0: .4byte 0x084E5E38 + thumb_func_end MovementType_WalkSequenceUpLeftDownRight_Step1 + + thumb_func_start MovementType_WalkSequenceDownRightUpLeft +MovementType_WalkSequenceDownRightUpLeft: @ 0x080913F4 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _08091410 + adds r0, r0, r2 + ldr r2, _08091414 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_08091410: .4byte 0x02036FF0 +_08091414: .4byte 0x08091419 + thumb_func_end MovementType_WalkSequenceDownRightUpLeft + + thumb_func_start MovementType_WalkSequenceUpRightDownLeft_callback +MovementType_WalkSequenceUpRightDownLeft_callback: @ 0x08091418 + push {r4, lr} + ldr r3, _08091434 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_WalkSequenceUpRightDownLeft_callback + + thumb_func_start MovementType_WalkSequenceUpRightLeftDown_callback +MovementType_WalkSequenceUpRightLeftDown_callback: @ 0x0809142C + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08091434: .4byte 0x084E5E3C + thumb_func_end MovementType_WalkSequenceUpRightLeftDown_callback + + thumb_func_start MovementType_WalkSequenceDownRightUpLeft_Step1 +MovementType_WalkSequenceDownRightUpLeft_Step1: @ 0x08091438 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _0809147C + mov r0, sp + movs r2, #4 + bl memcpy + adds r2, r4, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #2 + bne _08091464 + movs r0, #0xe + ldrsh r1, [r4, r0] + movs r3, #0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _08091464 + movs r0, #3 + strb r0, [r2] +_08091464: + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sp + bl MoveNextDirectionInSequence + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0809147C: .4byte 0x084E5E48 + thumb_func_end MovementType_WalkSequenceDownRightUpLeft_Step1 + + thumb_func_start MovementType_WalkSequenceLeftDownRightUp +MovementType_WalkSequenceLeftDownRightUp: @ 0x08091480 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _0809149C + adds r0, r0, r2 + ldr r2, _080914A0 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_0809149C: .4byte 0x02036FF0 +_080914A0: .4byte 0x080914A5 + thumb_func_end MovementType_WalkSequenceLeftDownRightUp + + thumb_func_start MovementType_WalkSlowlyInPlace_callback +MovementType_WalkSlowlyInPlace_callback: @ 0x080914A4 + push {r4, lr} + ldr r3, _080914C0 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_WalkSlowlyInPlace_callback + + thumb_func_start MovementType_WanderAround_callback +MovementType_WanderAround_callback: @ 0x080914B8 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080914C0: .4byte 0x084E5E4C + thumb_func_end MovementType_WanderAround_callback + + thumb_func_start MovementType_WalkSequenceLeftDownRightUp_Step1 +MovementType_WalkSequenceLeftDownRightUp_Step1: @ 0x080914C4 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _08091508 + mov r0, sp + movs r2, #4 + bl memcpy + adds r2, r4, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #2 + bne _080914F0 + movs r0, #0xc + ldrsh r1, [r4, r0] + movs r3, #0x10 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _080914F0 + movs r0, #3 + strb r0, [r2] +_080914F0: + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sp + bl MoveNextDirectionInSequence + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08091508: .4byte 0x084E5E58 + thumb_func_end MovementType_WalkSequenceLeftDownRightUp_Step1 + + thumb_func_start MovementType_WalkSequenceRightUpLeftDown +MovementType_WalkSequenceRightUpLeftDown: @ 0x0809150C + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _08091528 + adds r0, r0, r2 + ldr r2, _0809152C + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_08091528: .4byte 0x02036FF0 +_0809152C: .4byte 0x08091531 + thumb_func_end MovementType_WalkSequenceRightUpLeftDown + + thumb_func_start MovementType_WanderLeftAndRight_callback +MovementType_WanderLeftAndRight_callback: @ 0x08091530 + push {r4, lr} + ldr r3, _0809154C + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementType_WanderLeftAndRight_callback + + thumb_func_start MovementType_WanderUpAndDown_callback +MovementType_WanderUpAndDown_callback: @ 0x08091544 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809154C: .4byte 0x084E5E5C + thumb_func_end MovementType_WanderUpAndDown_callback + + thumb_func_start MovementType_WalkSequenceRightUpLeftDown_Step1 +MovementType_WalkSequenceRightUpLeftDown_Step1: @ 0x08091550 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _08091594 + mov r0, sp + movs r2, #4 + bl memcpy + adds r2, r4, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #2 + bne _0809157C + movs r0, #0xc + ldrsh r1, [r4, r0] + movs r3, #0x10 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _0809157C + movs r0, #3 + strb r0, [r2] +_0809157C: + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sp + bl MoveNextDirectionInSequence + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08091594: .4byte 0x084E5E68 + thumb_func_end MovementType_WalkSequenceRightUpLeftDown_Step1 + + thumb_func_start MovementType_WalkSequenceUpRightDownLeft +MovementType_WalkSequenceUpRightDownLeft: @ 0x08091598 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _080915B4 + adds r0, r0, r2 + ldr r2, _080915B8 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_080915B4: .4byte 0x02036FF0 +_080915B8: .4byte 0x080915BD + thumb_func_end MovementType_WalkSequenceUpRightDownLeft + + thumb_func_start sub_080915BC +sub_080915BC: @ 0x080915BC + push {r4, lr} + ldr r3, _080915D8 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end sub_080915BC + + thumb_func_start MovementAction_Figure8_Step1 +MovementAction_Figure8_Step1: @ 0x080915D0 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080915D8: .4byte 0x084E5E6C + thumb_func_end MovementAction_Figure8_Step1 + + thumb_func_start MovementType_WalkSequenceUpRightDownLeft_Step1 +MovementType_WalkSequenceUpRightDownLeft_Step1: @ 0x080915DC + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _08091620 + mov r0, sp + movs r2, #4 + bl memcpy + adds r2, r4, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #2 + bne _08091608 + movs r0, #0xe + ldrsh r1, [r4, r0] + movs r3, #0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _08091608 + movs r0, #3 + strb r0, [r2] +_08091608: + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sp + bl MoveNextDirectionInSequence + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08091620: .4byte 0x084E5E78 + thumb_func_end MovementType_WalkSequenceUpRightDownLeft_Step1 + + thumb_func_start MovementType_WalkSequenceDownLeftUpRight +MovementType_WalkSequenceDownLeftUpRight: @ 0x08091624 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _08091640 + adds r0, r0, r2 + ldr r2, _08091644 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_08091640: .4byte 0x02036FF0 +_08091644: .4byte 0x08091649 + thumb_func_end MovementType_WalkSequenceDownLeftUpRight + + thumb_func_start sub_08091648 +sub_08091648: @ 0x08091648 + push {r4, lr} + ldr r3, _08091664 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end sub_08091648 + + thumb_func_start MovementAction_WalkSlowDiagonalUpLeft_Step1 +MovementAction_WalkSlowDiagonalUpLeft_Step1: @ 0x0809165C + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08091664: .4byte 0x084E5E7C + thumb_func_end MovementAction_WalkSlowDiagonalUpLeft_Step1 + + thumb_func_start MovementType_WalkSequenceDownLeftUpRight_Step1 +MovementType_WalkSequenceDownLeftUpRight_Step1: @ 0x08091668 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _080916AC + mov r0, sp + movs r2, #4 + bl memcpy + adds r2, r4, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #2 + bne _08091694 + movs r0, #0xe + ldrsh r1, [r4, r0] + movs r3, #0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _08091694 + movs r0, #3 + strb r0, [r2] +_08091694: + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sp + bl MoveNextDirectionInSequence + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080916AC: .4byte 0x084E5E88 + thumb_func_end MovementType_WalkSequenceDownLeftUpRight_Step1 + + thumb_func_start MovementType_WalkSequenceLeftUpRightDown +MovementType_WalkSequenceLeftUpRightDown: @ 0x080916B0 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _080916CC + adds r0, r0, r2 + ldr r2, _080916D0 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_080916CC: .4byte 0x02036FF0 +_080916D0: .4byte 0x080916D5 + thumb_func_end MovementType_WalkSequenceLeftUpRightDown + + thumb_func_start GetGroundEffectFlags_TallGrassOnBeginStep +GetGroundEffectFlags_TallGrassOnBeginStep: @ 0x080916D4 + push {r4, lr} + ldr r3, _080916F0 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end GetGroundEffectFlags_TallGrassOnBeginStep + + thumb_func_start MovementAction_AcroPopWheelieMoveDown_Step0 +MovementAction_AcroPopWheelieMoveDown_Step0: @ 0x080916E8 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080916F0: .4byte 0x084E5E8C + thumb_func_end MovementAction_AcroPopWheelieMoveDown_Step0 + + thumb_func_start MovementType_WalkSequenceLeftUpRightDown_Step1 +MovementType_WalkSequenceLeftUpRightDown_Step1: @ 0x080916F4 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _08091738 + mov r0, sp + movs r2, #4 + bl memcpy + adds r2, r4, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #2 + bne _08091720 + movs r0, #0xc + ldrsh r1, [r4, r0] + movs r3, #0x10 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _08091720 + movs r0, #3 + strb r0, [r2] +_08091720: + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sp + bl MoveNextDirectionInSequence + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08091738: .4byte 0x084E5E98 + thumb_func_end MovementType_WalkSequenceLeftUpRightDown_Step1 + + thumb_func_start MovementType_WalkSequenceRightDownLeftUp +MovementType_WalkSequenceRightDownLeftUp: @ 0x0809173C + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _08091758 + adds r0, r0, r2 + ldr r2, _0809175C + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_08091758: .4byte 0x02036FF0 +_0809175C: .4byte 0x08091761 + thumb_func_end MovementType_WalkSequenceRightDownLeftUp + + thumb_func_start sub_08091760 +sub_08091760: @ 0x08091760 + push {r4, lr} + ldr r3, _0809177C + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end sub_08091760 + + thumb_func_start MovementAction_AcroPopWheelieMoveLeft_Step0 +MovementAction_AcroPopWheelieMoveLeft_Step0: @ 0x08091774 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809177C: .4byte 0x084E5E9C + thumb_func_end MovementAction_AcroPopWheelieMoveLeft_Step0 + + thumb_func_start MovementType_WalkSequenceRightDownLeftUp_Step1 +MovementType_WalkSequenceRightDownLeftUp_Step1: @ 0x08091780 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _080917C4 + mov r0, sp + movs r2, #4 + bl memcpy + adds r2, r4, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #2 + bne _080917AC + movs r0, #0xc + ldrsh r1, [r4, r0] + movs r3, #0x10 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _080917AC + movs r0, #3 + strb r0, [r2] +_080917AC: + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sp + bl MoveNextDirectionInSequence + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080917C4: .4byte 0x084E5EA8 + thumb_func_end MovementType_WalkSequenceRightDownLeftUp_Step1 + + thumb_func_start MovementType_CopyPlayer +MovementType_CopyPlayer: @ 0x080917C8 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _080917E4 + adds r0, r0, r2 + ldr r2, _080917E8 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_080917E4: .4byte 0x02036FF0 +_080917E8: .4byte 0x080917ED + thumb_func_end MovementType_CopyPlayer + + thumb_func_start MovementAction_AcroPopWheelieMoveRight_Step0 +MovementAction_AcroPopWheelieMoveRight_Step0: @ 0x080917EC + push {r4, lr} + ldr r3, _08091808 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end MovementAction_AcroPopWheelieMoveRight_Step0 + + thumb_func_start MovementAction_AcroPopWheelieMoveUp_Step0 +MovementAction_AcroPopWheelieMoveUp_Step0: @ 0x08091800 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08091808: .4byte 0x084E5EAC + thumb_func_end MovementAction_AcroPopWheelieMoveUp_Step0 + + thumb_func_start MovementType_CopyPlayer_Step0 +MovementType_CopyPlayer_Step0: @ 0x0809180C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl ClearEventObjectMovement + adds r4, #0x21 + ldrb r0, [r4] + cmp r0, #0 + bne _08091824 + bl GetPlayerFacingDirection + strb r0, [r4] +_08091824: + movs r0, #1 + strh r0, [r5, #0x30] + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_CopyPlayer_Step0 + + thumb_func_start MovementType_CopyPlayer_Step1 +MovementType_CopyPlayer_Step1: @ 0x08091830 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r7, r1, #0 + ldr r2, _08091854 + ldr r3, _08091858 + ldrb r1, [r3, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #0x1c] + cmp r0, #0xff + beq _08091850 + ldrb r0, [r3, #3] + cmp r0, #2 + bne _0809185C +_08091850: + movs r0, #0 + b _08091884 + .align 2, 0 +_08091854: .4byte 0x02036FF0 +_08091858: .4byte 0x02037230 +_0809185C: + ldr r5, _0809188C + bl PlayerGetCopyableMovement + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x16 + adds r4, r4, r5 + bl GetPlayerMovementDirection + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r4, [r4] + adds r0, r6, #0 + adds r1, r7, #0 + movs r3, #0 + bl _call_via_r4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_08091884: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0809188C: .4byte 0x084E5EB8 + thumb_func_end MovementType_CopyPlayer_Step1 + + thumb_func_start MovementType_CopyPlayer_Step2 +MovementType_CopyPlayer_Step2: @ 0x08091890 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093234 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080918AE + ldrb r0, [r4] + movs r1, #3 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4] + movs r0, #1 + strh r0, [r5, #0x30] +_080918AE: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_CopyPlayer_Step2 + + thumb_func_start CopyablePlayerMovement_None +CopyablePlayerMovement_None: @ 0x080918B8 + movs r0, #0 + bx lr + thumb_func_end CopyablePlayerMovement_None + + thumb_func_start CopyablePlayerMovement_FaceDirection +CopyablePlayerMovement_FaceDirection: @ 0x080918BC + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r1, _08091900 + ldrb r0, [r4, #6] + adds r0, r0, r1 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x21 + ldrb r1, [r1] + bl state_to_direction + bl sub_08092CA0 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl EventObjectSetSingleMovement + ldrb r0, [r4] + movs r1, #2 + orrs r0, r1 + strb r0, [r4] + movs r0, #2 + strh r0, [r5, #0x30] + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08091900: .4byte 0x084DDA21 + thumb_func_end CopyablePlayerMovement_FaceDirection + + thumb_func_start CopyablePlayerMovement_GoSpeed0 +CopyablePlayerMovement_GoSpeed0: @ 0x08091904 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r4, r0, #0 + adds r7, r1, #0 + mov r8, r3 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + adds r6, r5, #0 + bl EventObjectIsFarawayIslandMew + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809196C + bl GetMewMoveDirection + adds r5, r0, #0 + cmp r5, #0 + bne _08091982 + adds r5, r6, #0 + ldr r1, _08091968 + ldrb r0, [r4, #6] + adds r0, r0, r1 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x21 + ldrb r1, [r1] + adds r2, r5, #0 + bl state_to_direction + adds r5, r0, #0 + mov r3, sp + adds r3, #2 + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sp + bl EventObjectMoveDestCoords + adds r0, r5, #0 + bl sub_08092CA0 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r7, #0 + bl EventObjectSetSingleMovement + b _080919F4 + .align 2, 0 +_08091968: .4byte 0x084DDA21 +_0809196C: + ldr r1, _08091A10 + ldrb r0, [r4, #6] + adds r0, r0, r1 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x21 + ldrb r1, [r1] + adds r2, r5, #0 + bl state_to_direction + adds r5, r0, #0 +_08091982: + mov r6, sp + adds r6, #2 + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sp + adds r3, r6, #0 + bl EventObjectMoveDestCoords + adds r0, r5, #0 + bl sub_08092CF8 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r7, #0 + bl EventObjectSetSingleMovement + mov r0, sp + movs r2, #0 + ldrsh r1, [r0, r2] + movs r0, #0 + ldrsh r2, [r6, r0] + adds r0, r4, #0 + adds r3, r5, #0 + bl GetCollisionAtCoords + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080919E0 + mov r1, r8 + cmp r1, #0 + beq _080919F4 + mov r0, sp + movs r2, #0 + ldrsh r0, [r0, r2] + movs r2, #0 + ldrsh r1, [r6, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl _call_via_r8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080919F4 +_080919E0: + adds r0, r5, #0 + bl sub_08092CA0 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r7, #0 + bl EventObjectSetSingleMovement +_080919F4: + ldrb r0, [r4] + movs r1, #2 + orrs r0, r1 + strb r0, [r4] + movs r0, #2 + strh r0, [r7, #0x30] + movs r0, #1 + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08091A10: .4byte 0x084DDA21 + thumb_func_end CopyablePlayerMovement_GoSpeed0 + + thumb_func_start CopyablePlayerMovement_GoSpeed1 +CopyablePlayerMovement_GoSpeed1: @ 0x08091A14 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r4, r0, #0 + adds r7, r1, #0 + mov r8, r3 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + ldr r1, _08091AC8 + ldrb r0, [r4, #6] + adds r0, r0, r1 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x21 + ldrb r1, [r1] + adds r2, r6, #0 + bl state_to_direction + adds r6, r0, #0 + mov r5, sp + adds r5, #2 + adds r0, r4, #0 + adds r1, r6, #0 + mov r2, sp + adds r3, r5, #0 + bl EventObjectMoveDestCoords + adds r0, r6, #0 + bl sub_08092D24 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r7, #0 + bl EventObjectSetSingleMovement + mov r0, sp + movs r2, #0 + ldrsh r1, [r0, r2] + movs r0, #0 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + adds r3, r6, #0 + bl GetCollisionAtCoords + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08091A9A + mov r1, r8 + cmp r1, #0 + beq _08091AAE + mov r0, sp + movs r2, #0 + ldrsh r0, [r0, r2] + movs r2, #0 + ldrsh r1, [r5, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl _call_via_r8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08091AAE +_08091A9A: + adds r0, r6, #0 + bl sub_08092CA0 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r7, #0 + bl EventObjectSetSingleMovement +_08091AAE: + ldrb r0, [r4] + movs r1, #2 + orrs r0, r1 + strb r0, [r4] + movs r0, #2 + strh r0, [r7, #0x30] + movs r0, #1 + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08091AC8: .4byte 0x084DDA21 + thumb_func_end CopyablePlayerMovement_GoSpeed1 + + thumb_func_start CopyablePlayerMovement_GoSpeed2 +CopyablePlayerMovement_GoSpeed2: @ 0x08091ACC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r4, r0, #0 + adds r7, r1, #0 + mov r8, r3 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + ldr r1, _08091B80 + ldrb r0, [r4, #6] + adds r0, r0, r1 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x21 + ldrb r1, [r1] + adds r2, r6, #0 + bl state_to_direction + adds r6, r0, #0 + mov r5, sp + adds r5, #2 + adds r0, r4, #0 + adds r1, r6, #0 + mov r2, sp + adds r3, r5, #0 + bl EventObjectMoveDestCoords + adds r0, r6, #0 + bl sub_08092D7C + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r7, #0 + bl EventObjectSetSingleMovement + mov r0, sp + movs r2, #0 + ldrsh r1, [r0, r2] + movs r0, #0 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + adds r3, r6, #0 + bl GetCollisionAtCoords + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08091B52 + mov r1, r8 + cmp r1, #0 + beq _08091B66 + mov r0, sp + movs r2, #0 + ldrsh r0, [r0, r2] + movs r2, #0 + ldrsh r1, [r5, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl _call_via_r8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08091B66 +_08091B52: + adds r0, r6, #0 + bl sub_08092CA0 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r7, #0 + bl EventObjectSetSingleMovement +_08091B66: + ldrb r0, [r4] + movs r1, #2 + orrs r0, r1 + strb r0, [r4] + movs r0, #2 + strh r0, [r7, #0x30] + movs r0, #1 + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08091B80: .4byte 0x084DDA21 + thumb_func_end CopyablePlayerMovement_GoSpeed2 + + thumb_func_start CopyablePlayerMovement_Slide +CopyablePlayerMovement_Slide: @ 0x08091B84 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r4, r0, #0 + adds r7, r1, #0 + mov r8, r3 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + ldr r1, _08091C38 + ldrb r0, [r4, #6] + adds r0, r0, r1 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x21 + ldrb r1, [r1] + adds r2, r6, #0 + bl state_to_direction + adds r6, r0, #0 + mov r5, sp + adds r5, #2 + adds r0, r4, #0 + adds r1, r6, #0 + mov r2, sp + adds r3, r5, #0 + bl EventObjectMoveDestCoords + adds r0, r6, #0 + bl sub_08092DA8 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r7, #0 + bl EventObjectSetSingleMovement + mov r0, sp + movs r2, #0 + ldrsh r1, [r0, r2] + movs r0, #0 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + adds r3, r6, #0 + bl GetCollisionAtCoords + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08091C0A + mov r1, r8 + cmp r1, #0 + beq _08091C1E + mov r0, sp + movs r2, #0 + ldrsh r0, [r0, r2] + movs r2, #0 + ldrsh r1, [r5, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl _call_via_r8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08091C1E +_08091C0A: + adds r0, r6, #0 + bl sub_08092CA0 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r7, #0 + bl EventObjectSetSingleMovement +_08091C1E: + ldrb r0, [r4] + movs r1, #2 + orrs r0, r1 + strb r0, [r4] + movs r0, #2 + strh r0, [r7, #0x30] + movs r0, #1 + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08091C38: .4byte 0x084DDA21 + thumb_func_end CopyablePlayerMovement_Slide + + thumb_func_start cph_IM_DIFFERENT +cph_IM_DIFFERENT: @ 0x08091C3C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r1, _08091C80 + ldrb r0, [r4, #6] + adds r0, r0, r1 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x21 + ldrb r1, [r1] + bl state_to_direction + bl sub_08092E2C + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl EventObjectSetSingleMovement + ldrb r0, [r4] + movs r1, #2 + orrs r0, r1 + strb r0, [r4] + movs r0, #2 + strh r0, [r5, #0x30] + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08091C80: .4byte 0x084DDA21 + thumb_func_end cph_IM_DIFFERENT + + thumb_func_start CopyablePlayerMovement_GoSpeed4 +CopyablePlayerMovement_GoSpeed4: @ 0x08091C84 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r4, r0, #0 + adds r7, r1, #0 + mov r8, r3 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + ldr r1, _08091D38 + ldrb r0, [r4, #6] + adds r0, r0, r1 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x21 + ldrb r1, [r1] + adds r2, r6, #0 + bl state_to_direction + adds r6, r0, #0 + mov r5, sp + adds r5, #2 + adds r0, r4, #0 + adds r1, r6, #0 + mov r2, sp + adds r3, r5, #0 + bl EventObjectMoveDestCoords + adds r0, r6, #0 + bl sub_08092E84 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r7, #0 + bl EventObjectSetSingleMovement + mov r0, sp + movs r2, #0 + ldrsh r1, [r0, r2] + movs r0, #0 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + adds r3, r6, #0 + bl GetCollisionAtCoords + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08091D0A + mov r1, r8 + cmp r1, #0 + beq _08091D1E + mov r0, sp + movs r2, #0 + ldrsh r0, [r0, r2] + movs r2, #0 + ldrsh r1, [r5, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl _call_via_r8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08091D1E +_08091D0A: + adds r0, r6, #0 + bl sub_08092CA0 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r7, #0 + bl EventObjectSetSingleMovement +_08091D1E: + ldrb r0, [r4] + movs r1, #2 + orrs r0, r1 + strb r0, [r4] + movs r0, #2 + strh r0, [r7, #0x30] + movs r0, #1 + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08091D38: .4byte 0x084DDA21 + thumb_func_end CopyablePlayerMovement_GoSpeed4 + + thumb_func_start CopyablePlayerMovement_Jump +CopyablePlayerMovement_Jump: @ 0x08091D3C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + adds r4, r0, #0 + adds r7, r1, #0 + mov r8, r3 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + ldr r1, _08091E00 + ldrb r0, [r4, #6] + adds r0, r0, r1 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x21 + ldrb r1, [r1] + adds r2, r6, #0 + bl state_to_direction + adds r6, r0, #0 + ldrh r1, [r4, #0x10] + add r0, sp, #4 + strh r1, [r0] + ldrh r0, [r4, #0x12] + mov r5, sp + adds r5, #6 + strh r0, [r5] + movs r0, #2 + str r0, [sp] + adds r0, r6, #0 + add r1, sp, #4 + adds r2, r5, #0 + movs r3, #2 + bl MoveCoordsInDirection + adds r0, r6, #0 + bl sub_08092E00 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r7, #0 + bl EventObjectSetSingleMovement + add r0, sp, #4 + movs r2, #0 + ldrsh r1, [r0, r2] + movs r0, #0 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + adds r3, r6, #0 + bl GetCollisionAtCoords + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08091DD0 + mov r1, r8 + cmp r1, #0 + beq _08091DE4 + add r0, sp, #4 + movs r2, #0 + ldrsh r0, [r0, r2] + movs r2, #0 + ldrsh r1, [r5, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl _call_via_r8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08091DE4 +_08091DD0: + adds r0, r6, #0 + bl sub_08092CA0 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r7, #0 + bl EventObjectSetSingleMovement +_08091DE4: + ldrb r0, [r4] + movs r1, #2 + orrs r0, r1 + strb r0, [r4] + movs r0, #2 + strh r0, [r7, #0x30] + movs r0, #1 + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08091E00: .4byte 0x084DDA21 + thumb_func_end CopyablePlayerMovement_Jump + + thumb_func_start MovementType_CopyPlayerInGrass +MovementType_CopyPlayerInGrass: @ 0x08091E04 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _08091E20 + adds r0, r0, r2 + ldr r2, _08091E24 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_08091E20: .4byte 0x02036FF0 +_08091E24: .4byte 0x08091E29 + thumb_func_end MovementType_CopyPlayerInGrass + + thumb_func_start StartFieldEffectForEventObject +StartFieldEffectForEventObject: @ 0x08091E28 + push {r4, lr} + ldr r3, _08091E44 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end StartFieldEffectForEventObject + + thumb_func_start EventObjectClearHeldMovementIfFinished +EventObjectClearHeldMovementIfFinished: @ 0x08091E3C + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08091E44: .4byte 0x084E5EE4 + thumb_func_end EventObjectClearHeldMovementIfFinished + + thumb_func_start MovementType_CopyPlayerInGrass_Step1 +MovementType_CopyPlayerInGrass_Step1: @ 0x08091E48 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r7, r1, #0 + ldr r2, _08091E6C + ldr r3, _08091E70 + ldrb r1, [r3, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #0x1c] + cmp r0, #0xff + beq _08091E68 + ldrb r0, [r3, #3] + cmp r0, #2 + bne _08091E74 +_08091E68: + movs r0, #0 + b _08091E9C + .align 2, 0 +_08091E6C: .4byte 0x02036FF0 +_08091E70: .4byte 0x02037230 +_08091E74: + ldr r5, _08091EA4 + bl PlayerGetCopyableMovement + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x16 + adds r4, r4, r5 + bl GetPlayerMovementDirection + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r3, _08091EA8 + ldr r4, [r4] + adds r0, r6, #0 + adds r1, r7, #0 + bl _call_via_r4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_08091E9C: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08091EA4: .4byte 0x084E5EB8 +_08091EA8: .4byte 0x080887C9 + thumb_func_end MovementType_CopyPlayerInGrass_Step1 + + thumb_func_start MovementType_TreeDisguise +MovementType_TreeDisguise: @ 0x08091EAC + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08091F10 + adds r4, r1, r0 + adds r6, r4, #0 + adds r6, #0x21 + ldrb r0, [r6] + cmp r0, #0 + beq _08091ED4 + cmp r0, #1 + bne _08091EF4 + movs r1, #0x3c + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _08091EF4 +_08091ED4: + ldr r1, _08091F14 + adds r2, r1, #4 + adds r3, r1, #0 + adds r3, #8 + adds r0, r4, #0 + bl EventObjectGetLocalIdAndMap + movs r0, #0x1c + bl FieldEffectStart + strb r0, [r4, #0x1a] + movs r0, #1 + strb r0, [r6] + ldrh r0, [r5, #0x3c] + adds r0, #1 + strh r0, [r5, #0x3c] +_08091EF4: + movs r0, #0x2e + ldrsh r1, [r5, r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08091F10 + adds r0, r0, r1 + ldr r2, _08091F18 + adds r1, r5, #0 + bl UpdateEventObjectCurrentMovement + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08091F10: .4byte 0x02036FF0 +_08091F14: .4byte 0x020388A8 +_08091F18: .4byte 0x08091F1D + thumb_func_end MovementType_TreeDisguise + + thumb_func_start MovementType_Disguise_Callback +MovementType_Disguise_Callback: @ 0x08091F1C + push {lr} + bl ClearEventObjectMovement + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end MovementType_Disguise_Callback + + thumb_func_start MovementType_MountainDisguise +MovementType_MountainDisguise: @ 0x08091F28 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08091F8C + adds r4, r1, r0 + adds r6, r4, #0 + adds r6, #0x21 + ldrb r0, [r6] + cmp r0, #0 + beq _08091F50 + cmp r0, #1 + bne _08091F70 + movs r1, #0x3c + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _08091F70 +_08091F50: + ldr r1, _08091F90 + adds r2, r1, #4 + adds r3, r1, #0 + adds r3, #8 + adds r0, r4, #0 + bl EventObjectGetLocalIdAndMap + movs r0, #0x1d + bl FieldEffectStart + strb r0, [r4, #0x1a] + movs r0, #1 + strb r0, [r6] + ldrh r0, [r5, #0x3c] + adds r0, #1 + strh r0, [r5, #0x3c] +_08091F70: + movs r0, #0x2e + ldrsh r1, [r5, r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08091F8C + adds r0, r0, r1 + ldr r2, _08091F94 + adds r1, r5, #0 + bl UpdateEventObjectCurrentMovement + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08091F8C: .4byte 0x02036FF0 +_08091F90: .4byte 0x020388A8 +_08091F94: .4byte 0x08091F1D + thumb_func_end MovementType_MountainDisguise + + thumb_func_start MovementType_Hidden +MovementType_Hidden: @ 0x08091F98 + push {r4, lr} + adds r3, r0, #0 + movs r1, #0x3c + ldrsh r0, [r3, r1] + ldr r4, _08091FF4 + cmp r0, #0 + bne _08091FD8 + movs r0, #0x2e + ldrsh r1, [r3, r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r1, [r0, #3] + movs r2, #4 + orrs r1, r2 + strb r1, [r0, #3] + adds r2, r3, #0 + adds r2, #0x42 + ldrb r1, [r2] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r3, #5] + movs r1, #0xc + orrs r0, r1 + strb r0, [r3, #5] + ldrh r0, [r3, #0x3c] + adds r0, #1 + strh r0, [r3, #0x3c] +_08091FD8: + movs r0, #0x2e + ldrsh r1, [r3, r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r2, _08091FF8 + adds r1, r3, #0 + bl UpdateEventObjectCurrentMovement + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08091FF4: .4byte 0x02036FF0 +_08091FF8: .4byte 0x08091FFD + thumb_func_end MovementType_Hidden + + thumb_func_start sub_08091FFC +sub_08091FFC: @ 0x08091FFC + push {r4, lr} + ldr r3, _08092018 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end sub_08091FFC + + thumb_func_start GetAcroEndWheelieMoveDirectionMovementAction +GetAcroEndWheelieMoveDirectionMovementAction: @ 0x08092010 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08092018: .4byte 0x084E5EF0 + thumb_func_end GetAcroEndWheelieMoveDirectionMovementAction + + thumb_func_start MovementType_Hidden_Step0 +MovementType_Hidden_Step0: @ 0x0809201C + push {lr} + bl ClearEventObjectMovement + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end MovementType_Hidden_Step0 + + thumb_func_start MovementType_MoveInPlace_Step1 +MovementType_MoveInPlace_Step1: @ 0x08092028 + push {r4, lr} + adds r4, r1, #0 + bl sub_08093234 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809203A + movs r0, #0 + strh r0, [r4, #0x30] +_0809203A: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_MoveInPlace_Step1 + + thumb_func_start MovementType_WalkInPlace +MovementType_WalkInPlace: @ 0x08092044 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _08092060 + adds r0, r0, r2 + ldr r2, _08092064 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_08092060: .4byte 0x02036FF0 +_08092064: .4byte 0x08092069 + thumb_func_end MovementType_WalkInPlace + + thumb_func_start GetAcroPopWheelieFaceDirectionMovementAction +GetAcroPopWheelieFaceDirectionMovementAction: @ 0x08092068 + push {r4, lr} + ldr r3, _08092084 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end GetAcroPopWheelieFaceDirectionMovementAction + + thumb_func_start GetAcroPopWheelieMoveDirectionMovementAction +GetAcroPopWheelieMoveDirectionMovementAction: @ 0x0809207C + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08092084: .4byte 0x084E5EF4 + thumb_func_end GetAcroPopWheelieMoveDirectionMovementAction + + thumb_func_start MovementType_WalkInPlace_Step0 +MovementType_WalkInPlace_Step0: @ 0x08092088 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl ClearEventObjectMovement + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_08092F08 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl EventObjectSetSingleMovement + movs r0, #1 + strh r0, [r5, #0x30] + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementType_WalkInPlace_Step0 + + thumb_func_start MovementType_WalkSlowlyInPlace +MovementType_WalkSlowlyInPlace: @ 0x080920B4 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _080920D0 + adds r0, r0, r2 + ldr r2, _080920D4 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_080920D0: .4byte 0x02036FF0 +_080920D4: .4byte 0x080920D9 + thumb_func_end MovementType_WalkSlowlyInPlace + + thumb_func_start GetAcroWheelieFaceDirectionMovementAction +GetAcroWheelieFaceDirectionMovementAction: @ 0x080920D8 + push {r4, lr} + ldr r3, _080920F4 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end GetAcroWheelieFaceDirectionMovementAction + + thumb_func_start GetAcroWheelieHopDirectionMovementAction +GetAcroWheelieHopDirectionMovementAction: @ 0x080920EC + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080920F4: .4byte 0x084E5EFC + thumb_func_end GetAcroWheelieHopDirectionMovementAction + + thumb_func_start MovementType_WalkSlowlyInPlace_Step0 +MovementType_WalkSlowlyInPlace_Step0: @ 0x080920F8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl ClearEventObjectMovement + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_08092EDC + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl EventObjectSetSingleMovement + movs r0, #1 + strh r0, [r5, #0x30] + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementType_WalkSlowlyInPlace_Step0 + + thumb_func_start MovementType_JogInPlace +MovementType_JogInPlace: @ 0x08092124 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _08092140 + adds r0, r0, r2 + ldr r2, _08092144 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_08092140: .4byte 0x02036FF0 +_08092144: .4byte 0x08092149 + thumb_func_end MovementType_JogInPlace + + thumb_func_start GetAcroWheelieHopFaceDirectionMovementAction +GetAcroWheelieHopFaceDirectionMovementAction: @ 0x08092148 + push {r4, lr} + ldr r3, _08092164 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end GetAcroWheelieHopFaceDirectionMovementAction + + thumb_func_start GetAcroWheelieInPlaceDirectionMovementAction +GetAcroWheelieInPlaceDirectionMovementAction: @ 0x0809215C + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08092164: .4byte 0x084E5F04 + thumb_func_end GetAcroWheelieInPlaceDirectionMovementAction + + thumb_func_start MovementType_JogInPlace_Step0 +MovementType_JogInPlace_Step0: @ 0x08092168 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl ClearEventObjectMovement + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_08092F34 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl EventObjectSetSingleMovement + movs r0, #1 + strh r0, [r5, #0x30] + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementType_JogInPlace_Step0 + + thumb_func_start MovementType_RunInPlace +MovementType_RunInPlace: @ 0x08092194 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _080921B0 + adds r0, r0, r2 + ldr r2, _080921B4 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_080921B0: .4byte 0x02036FF0 +_080921B4: .4byte 0x080921B9 + thumb_func_end MovementType_RunInPlace + + thumb_func_start GetAcroWheelieJumpDirectionMovementAction +GetAcroWheelieJumpDirectionMovementAction: @ 0x080921B8 + push {r4, lr} + ldr r3, _080921D4 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end GetAcroWheelieJumpDirectionMovementAction + + thumb_func_start GetAcroWheelieMoveDirectionMovementAction +GetAcroWheelieMoveDirectionMovementAction: @ 0x080921CC + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080921D4: .4byte 0x084E5F0C + thumb_func_end GetAcroWheelieMoveDirectionMovementAction + + thumb_func_start MovementType_RunInPlace_Step0 +MovementType_RunInPlace_Step0: @ 0x080921D8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl ClearEventObjectMovement + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_08092F60 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl EventObjectSetSingleMovement + movs r0, #1 + strh r0, [r5, #0x30] + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementType_RunInPlace_Step0 + + thumb_func_start MovementType_Invisible +MovementType_Invisible: @ 0x08092204 + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _08092220 + adds r0, r0, r2 + ldr r2, _08092224 + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_08092220: .4byte 0x02036FF0 +_08092224: .4byte 0x08092229 + thumb_func_end MovementType_Invisible + + thumb_func_start GetFaceDirectionMovementAction +GetFaceDirectionMovementAction: @ 0x08092228 + push {r4, lr} + ldr r3, _08092244 + movs r4, #0x30 + ldrsh r2, [r1, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end GetFaceDirectionMovementAction + + thumb_func_start GetJump2MovementAction +GetJump2MovementAction: @ 0x0809223C + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08092244: .4byte 0x084E5F14 + thumb_func_end GetJump2MovementAction + + thumb_func_start MovementType_Invisible_Step0 +MovementType_Invisible_Step0: @ 0x08092248 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl ClearEventObjectMovement + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_08092CA0 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl EventObjectSetSingleMovement + ldrb r0, [r4, #1] + movs r1, #0x20 + orrs r0, r1 + strb r0, [r4, #1] + movs r0, #1 + strh r0, [r5, #0x30] + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementType_Invisible_Step0 + + thumb_func_start MovementType_Invisible_Step1 +MovementType_Invisible_Step1: @ 0x0809227C + push {r4, lr} + adds r4, r1, #0 + bl sub_08093234 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809228E + movs r0, #0 + b _08092294 +_0809228E: + movs r0, #2 + strh r0, [r4, #0x30] + movs r0, #1 +_08092294: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementType_Invisible_Step1 + + thumb_func_start MovementType_FaceDirection_Step2 +MovementType_FaceDirection_Step2: @ 0x0809229C + ldrb r2, [r0] + movs r1, #3 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + movs r0, #0 + bx lr + .align 2, 0 + thumb_func_end MovementType_FaceDirection_Step2 + + thumb_func_start ClearEventObjectMovement +ClearEventObjectMovement: @ 0x080922AC + ldrb r3, [r0] + movs r2, #3 + rsbs r2, r2, #0 + ands r2, r3 + movs r3, #0x41 + rsbs r3, r3, #0 + ands r2, r3 + movs r3, #0x7f + ands r2, r3 + strb r2, [r0] + movs r2, #0xff + strb r2, [r0, #0x1c] + movs r0, #0 + strh r0, [r1, #0x30] + bx lr + .align 2, 0 + thumb_func_end ClearEventObjectMovement + + thumb_func_start GetJumpInPlaceMovementAction +GetJumpInPlaceMovementAction: @ 0x080922CC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080922D8 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_080922D8: .4byte 0x084E5F20 + thumb_func_end GetJumpInPlaceMovementAction + + thumb_func_start GetJumpInPlaceTurnAroundMovementAction +GetJumpInPlaceTurnAroundMovementAction: @ 0x080922DC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080922E8 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_080922E8: .4byte 0x084E5F29 + thumb_func_end GetJumpInPlaceTurnAroundMovementAction + + thumb_func_start GetJumpMovementAction +GetJumpMovementAction: @ 0x080922EC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080922F8 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_080922F8: .4byte 0x084E5F32 + thumb_func_end GetJumpMovementAction + + thumb_func_start GetJumpSpecialMovementAction +GetJumpSpecialMovementAction: @ 0x080922FC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08092308 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08092308: .4byte 0x084E5F3B + thumb_func_end GetJumpSpecialMovementAction + + thumb_func_start GetPlayerRunMovementAction +GetPlayerRunMovementAction: @ 0x0809230C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08092318 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08092318: .4byte 0x084E5F44 + thumb_func_end GetPlayerRunMovementAction + + thumb_func_start GetRideWaterCurrentMovementAction +GetRideWaterCurrentMovementAction: @ 0x0809231C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08092328 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08092328: .4byte 0x084E5F4D + thumb_func_end GetRideWaterCurrentMovementAction + + thumb_func_start GetSlideMovementAction +GetSlideMovementAction: @ 0x0809232C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08092338 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08092338: .4byte 0x084E5F56 + thumb_func_end GetSlideMovementAction + + thumb_func_start GetWalkFastMovementAction +GetWalkFastMovementAction: @ 0x0809233C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08092348 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08092348: .4byte 0x084E5F5F + thumb_func_end GetWalkFastMovementAction + + thumb_func_start GetWalkFastestMovementAction +GetWalkFastestMovementAction: @ 0x0809234C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08092358 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08092358: .4byte 0x084E5F68 + thumb_func_end GetWalkFastestMovementAction + + thumb_func_start GetWalkInPlaceFastMovementAction +GetWalkInPlaceFastMovementAction: @ 0x0809235C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08092368 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08092368: .4byte 0x084E5F71 + thumb_func_end GetWalkInPlaceFastMovementAction + + thumb_func_start GetWalkInPlaceFastestMovementAction +GetWalkInPlaceFastestMovementAction: @ 0x0809236C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08092378 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08092378: .4byte 0x084E5F7A + thumb_func_end GetWalkInPlaceFastestMovementAction + + thumb_func_start GetWalkInPlaceNormalMovementAction +GetWalkInPlaceNormalMovementAction: @ 0x0809237C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08092388 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08092388: .4byte 0x084E5F83 + thumb_func_end GetWalkInPlaceNormalMovementAction + + thumb_func_start GetWalkInPlaceSlowMovementAction +GetWalkInPlaceSlowMovementAction: @ 0x0809238C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08092398 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08092398: .4byte 0x084E5F8C + thumb_func_end GetWalkInPlaceSlowMovementAction + + thumb_func_start GetWalkNormalMovementAction +GetWalkNormalMovementAction: @ 0x0809239C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080923A8 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_080923A8: .4byte 0x084E5F95 + thumb_func_end GetWalkNormalMovementAction + + thumb_func_start GetWalkSlowMovementAction +GetWalkSlowMovementAction: @ 0x080923AC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080923B8 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_080923B8: .4byte 0x084E5F9E + thumb_func_end GetWalkSlowMovementAction + + thumb_func_start sub_080923BC +sub_080923BC: @ 0x080923BC + push {lr} + adds r2, r0, #0 + ldr r1, _080923C4 + b _080923D4 + .align 2, 0 +_080923C4: .4byte 0x084E1900 +_080923C8: + ldr r0, [r1] + cmp r0, r2 + bne _080923D2 + adds r0, r1, #0 + b _080923DC +_080923D2: + adds r1, #8 +_080923D4: + ldr r0, [r1] + cmp r0, #0 + bne _080923C8 + movs r0, #0 +_080923DC: + pop {r1} + bx r1 + thumb_func_end sub_080923BC + + thumb_func_start npc_apply_anim_looping +npc_apply_anim_looping: @ 0x080923E0 + push {r4, lr} + adds r4, r1, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r0, [r0, #1] + lsls r0, r0, #0x1b + cmp r0, #0 + blt _08092422 + adds r0, r4, #0 + adds r0, #0x2a + strb r2, [r0] + ldr r0, [r4, #8] + bl sub_080923BC + adds r1, r4, #0 + adds r1, #0x2b + cmp r0, #0 + beq _0809241A + ldrb r2, [r1] + ldrb r3, [r0, #4] + cmp r2, r3 + bne _08092410 + ldrb r0, [r0, #7] + b _08092418 +_08092410: + ldrb r3, [r0, #5] + cmp r2, r3 + bne _0809241A + ldrb r0, [r0, #6] +_08092418: + strb r0, [r1] +_0809241A: + ldrb r1, [r1] + adds r0, r4, #0 + bl SeekSpriteAnim +_08092422: + pop {r4} + pop {r0} + bx r0 + thumb_func_end npc_apply_anim_looping + + thumb_func_start obj_npc_animation_step +obj_npc_animation_step: @ 0x08092428 + push {r4, lr} + adds r4, r1, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r0, [r0, #1] + lsls r0, r0, #0x1b + cmp r0, #0 + blt _08092460 + adds r0, r4, #0 + adds r0, #0x2a + strb r2, [r0] + ldr r0, [r4, #8] + bl sub_080923BC + adds r2, r0, #0 + cmp r2, #0 + beq _08092460 + ldrb r1, [r2, #5] + adds r0, r4, #0 + adds r0, #0x2b + ldrb r0, [r0] + ldrb r3, [r2, #4] + cmp r0, r3 + bhi _0809245A + ldrb r1, [r2, #4] +_0809245A: + adds r0, r4, #0 + bl SeekSpriteAnim +_08092460: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end obj_npc_animation_step + + thumb_func_start GetDirectionToFace +GetDirectionToFace: @ 0x08092468 + push {lr} + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + cmp r0, r2 + ble _08092482 + movs r0, #3 + b _08092498 +_08092482: + cmp r0, r2 + bge _0809248A + movs r0, #4 + b _08092498 +_0809248A: + lsls r1, r1, #0x10 + lsls r0, r3, #0x10 + cmp r1, r0 + bgt _08092496 + movs r0, #1 + b _08092498 +_08092496: + movs r0, #2 +_08092498: + pop {r1} + bx r1 + thumb_func_end GetDirectionToFace + + thumb_func_start SetTrainerMovementType +SetTrainerMovementType: @ 0x0809249C + push {r4, lr} + mov ip, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r3, #0 + strb r1, [r0, #6] + adds r0, #0x21 + strb r3, [r0] + adds r0, #1 + strb r3, [r0] + ldr r4, _080924E0 + mov r0, ip + ldrb r2, [r0, #4] + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r2, r4, #0 + adds r2, #0x1c + adds r0, r0, r2 + ldr r2, _080924E4 + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + str r1, [r0] + mov r0, ip + ldrb r1, [r0, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + strh r3, [r0, #0x30] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080924E0: .4byte 0x020205AC +_080924E4: .4byte 0x084DD88C + thumb_func_end SetTrainerMovementType + + thumb_func_start GroundEffect_DeepSandTracks +GroundEffect_DeepSandTracks: @ 0x080924E8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080924F4 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_080924F4: .4byte 0x084E5FA7 + thumb_func_end GroundEffect_DeepSandTracks + + thumb_func_start GetCollisionInDirection +GetCollisionInDirection: @ 0x080924F8 + push {r4, r5, r6, lr} + sub sp, #4 + adds r6, r0, #0 + lsls r5, r1, #0x18 + lsrs r5, r5, #0x18 + ldrh r1, [r6, #0x10] + mov r0, sp + strh r1, [r0] + ldrh r0, [r6, #0x12] + mov r4, sp + adds r4, #2 + strh r0, [r4] + adds r0, r5, #0 + mov r1, sp + adds r2, r4, #0 + bl MoveCoords + mov r0, sp + movs r2, #0 + ldrsh r1, [r0, r2] + movs r0, #0 + ldrsh r2, [r4, r0] + adds r0, r6, #0 + adds r3, r5, #0 + bl GetCollisionAtCoords + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end GetCollisionInDirection + + thumb_func_start GetCollisionAtCoords +GetCollisionAtCoords: @ 0x08092538 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r6, r0, #0 + lsls r1, r1, #0x10 + lsls r2, r2, #0x10 + lsls r3, r3, #0x18 + lsrs r7, r3, #0x18 + mov r8, r7 + lsrs r0, r1, #0x10 + mov sb, r0 + asrs r5, r1, #0x10 + lsrs r0, r2, #0x10 + mov sl, r0 + asrs r4, r2, #0x10 + adds r0, r6, #0 + adds r1, r5, #0 + adds r2, r4, #0 + bl IsCoordOutsideEventObjectMovementRange + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809256E + movs r0, #1 + b _080925EE +_0809256E: + adds r0, r5, #0 + adds r1, r4, #0 + bl MapGridIsImpassableAt + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080925B0 + adds r0, r5, #0 + adds r1, r4, #0 + bl GetMapBorderIdAt + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080925B0 + adds r0, r6, #0 + adds r1, r5, #0 + adds r2, r4, #0 + adds r3, r7, #0 + bl IsMetatileDirectionallyImpassable + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080925B0 + ldrb r0, [r6, #1] + lsrs r0, r0, #7 + cmp r0, #0 + beq _080925B4 + mov r0, r8 + bl CanCameraMoveInDirection + cmp r0, #0 + bne _080925B4 +_080925B0: + movs r0, #2 + b _080925EE +_080925B4: + ldrb r0, [r6, #0xb] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + mov r2, sb + lsls r1, r2, #0x10 + asrs r5, r1, #0x10 + mov r2, sl + lsls r1, r2, #0x10 + asrs r4, r1, #0x10 + adds r1, r5, #0 + adds r2, r4, #0 + bl IsZCoordMismatchAt + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080925D8 + movs r0, #3 + b _080925EE +_080925D8: + adds r0, r6, #0 + adds r1, r5, #0 + adds r2, r4, #0 + bl DoesObjectCollideWithObjectAt + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080925EC + movs r0, #0 + b _080925EE +_080925EC: + movs r0, #4 +_080925EE: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end GetCollisionAtCoords + + thumb_func_start GetCollisionFlagsAtCoords +GetCollisionFlagsAtCoords: @ 0x080925FC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r7, r0, #0 + lsls r1, r1, #0x10 + lsls r2, r2, #0x10 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r8, r3 + lsrs r0, r1, #0x10 + mov sb, r0 + asrs r6, r1, #0x10 + lsrs r0, r2, #0x10 + mov sl, r0 + asrs r5, r2, #0x10 + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r5, #0 + bl IsCoordOutsideEventObjectMovementRange + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f + adds r0, r6, #0 + adds r1, r5, #0 + bl MapGridIsImpassableAt + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08092674 + adds r0, r6, #0 + adds r1, r5, #0 + bl GetMapBorderIdAt + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _08092674 + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r5, #0 + mov r3, r8 + bl IsMetatileDirectionallyImpassable + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08092674 + ldrb r0, [r7, #1] + lsrs r0, r0, #7 + cmp r0, #0 + beq _08092678 + mov r0, r8 + bl CanCameraMoveInDirection + cmp r0, #0 + bne _08092678 +_08092674: + movs r0, #2 + orrs r4, r0 +_08092678: + ldrb r0, [r7, #0xb] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + mov r2, sb + lsls r1, r2, #0x10 + asrs r6, r1, #0x10 + mov r2, sl + lsls r1, r2, #0x10 + asrs r5, r1, #0x10 + adds r1, r6, #0 + adds r2, r5, #0 + bl IsZCoordMismatchAt + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080926A0 + movs r0, #4 + orrs r4, r0 + lsls r0, r4, #0x18 + lsrs r4, r0, #0x18 +_080926A0: + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r5, #0 + bl DoesObjectCollideWithObjectAt + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080926B8 + movs r0, #8 + orrs r4, r0 + lsls r0, r4, #0x18 + lsrs r4, r0, #0x18 +_080926B8: + adds r0, r4, #0 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end GetCollisionFlagsAtCoords + + thumb_func_start IsCoordOutsideEventObjectMovementRange +IsCoordOutsideEventObjectMovementRange: @ 0x080926C8 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r1, r1, #0x10 + lsrs r3, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r5, r2, #0x10 + ldrb r1, [r4, #0x19] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _08092700 + lsls r1, r1, #0x1c + lsrs r2, r1, #0x1c + ldrh r0, [r4, #0xc] + subs r2, r0, r2 + lsrs r1, r1, #0x1c + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + lsls r2, r2, #0x10 + lsls r0, r3, #0x10 + asrs r3, r0, #0x10 + cmp r2, r0 + bgt _0809272C + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, r3 + blt _0809272C +_08092700: + ldrb r1, [r4, #0x19] + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0 + beq _08092730 + lsls r1, r1, #0x18 + lsrs r2, r1, #0x1c + ldrh r0, [r4, #0xe] + subs r2, r0, r2 + lsrs r1, r1, #0x1c + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + lsls r2, r2, #0x10 + lsls r0, r5, #0x10 + asrs r3, r0, #0x10 + cmp r2, r0 + bgt _0809272C + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, r3 + bge _08092730 +_0809272C: + movs r0, #1 + b _08092732 +_08092730: + movs r0, #0 +_08092732: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end IsCoordOutsideEventObjectMovementRange + + thumb_func_start IsMetatileDirectionallyImpassable +IsMetatileDirectionallyImpassable: @ 0x08092738 + push {r4, r5, r6, r7, lr} + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r7, r2, #0x10 + lsls r3, r3, #0x18 + ldr r1, _08092780 + lsrs r3, r3, #0x16 + subs r5, r3, #4 + adds r1, r5, r1 + ldrb r0, [r0, #0x1e] + ldr r1, [r1] + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809277A + ldr r4, _08092784 + adds r4, r5, r4 + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + lsls r1, r7, #0x10 + asrs r1, r1, #0x10 + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, [r4] + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08092788 +_0809277A: + movs r0, #1 + b _0809278A + .align 2, 0 +_08092780: .4byte 0x084E5FB0 +_08092784: .4byte 0x084E5FC0 +_08092788: + movs r0, #0 +_0809278A: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end IsMetatileDirectionallyImpassable + + thumb_func_start DoesObjectCollideWithObjectAt +DoesObjectCollideWithObjectAt: @ 0x08092790 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + movs r4, #0 + lsls r2, r2, #0x10 + asrs r5, r2, #0x10 +_0809279E: + lsls r0, r4, #3 + adds r0, r0, r4 + lsls r0, r0, #2 + ldr r1, _080927F4 + adds r2, r0, r1 + ldrb r0, [r2] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _080927F8 + cmp r2, r6 + beq _080927F8 + movs r0, #0x10 + ldrsh r1, [r2, r0] + lsls r0, r7, #0x10 + asrs r3, r0, #0x10 + cmp r1, r3 + bne _080927C8 + movs r1, #0x12 + ldrsh r0, [r2, r1] + cmp r0, r5 + beq _080927D8 +_080927C8: + movs r1, #0x14 + ldrsh r0, [r2, r1] + cmp r0, r3 + bne _080927F8 + movs r1, #0x16 + ldrsh r0, [r2, r1] + cmp r0, r5 + bne _080927F8 +_080927D8: + ldrb r0, [r6, #0xb] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + ldrb r1, [r2, #0xb] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + bl AreZCoordsCompatible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080927F8 + movs r0, #1 + b _08092804 + .align 2, 0 +_080927F4: .4byte 0x02036FF0 +_080927F8: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xf + bls _0809279E + movs r0, #0 +_08092804: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end DoesObjectCollideWithObjectAt + + thumb_func_start IsBerryTreeSparkling +IsBerryTreeSparkling: @ 0x0809280C + push {lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08092858 + ldr r3, _08092850 + ldr r2, _08092854 + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r0, #0x3c] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08092858 + movs r0, #1 + b _0809285A + .align 2, 0 +_08092850: .4byte 0x020205AC +_08092854: .4byte 0x02036FF0 +_08092858: + movs r0, #0 +_0809285A: + add sp, #4 + pop {r1} + bx r1 + thumb_func_end IsBerryTreeSparkling + + thumb_func_start sub_08092860 +sub_08092860: @ 0x08092860 + push {lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809289E + ldr r3, _080928A4 + ldr r2, _080928A8 + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #4] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrh r2, [r1, #0x3c] + movs r0, #4 + orrs r0, r2 + strh r0, [r1, #0x3c] +_0809289E: + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_080928A4: .4byte 0x020205AC +_080928A8: .4byte 0x02036FF0 + thumb_func_end sub_08092860 + + thumb_func_start MoveCoords +MoveCoords: @ 0x080928AC + push {r4, lr} + lsls r0, r0, #0x18 + ldr r3, _080928CC + lsrs r0, r0, #0x16 + adds r0, r0, r3 + ldrh r3, [r0] + ldrh r4, [r1] + adds r3, r3, r4 + strh r3, [r1] + ldrh r0, [r0, #2] + ldrh r1, [r2] + adds r0, r0, r1 + strh r0, [r2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080928CC: .4byte 0x084E5FD0 + thumb_func_end MoveCoords + + thumb_func_start sub_080928D0 +sub_080928D0: @ 0x080928D0 + push {r4, lr} + lsls r0, r0, #0x18 + ldr r3, _080928F4 + lsrs r0, r0, #0x16 + adds r0, r0, r3 + ldrh r3, [r0] + lsls r3, r3, #4 + ldrh r4, [r1] + adds r3, r3, r4 + strh r3, [r1] + ldrh r0, [r0, #2] + lsls r0, r0, #4 + ldrh r1, [r2] + adds r0, r0, r1 + strh r0, [r2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080928F4: .4byte 0x084E5FD0 + thumb_func_end sub_080928D0 + + thumb_func_start MoveCoordsInDirection +MoveCoordsInDirection: @ 0x080928F8 + push {r4, r5, r6, r7, lr} + adds r4, r1, #0 + ldr r1, [sp, #0x14] + lsls r0, r0, #0x18 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + adds r7, r3, #0 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + mov ip, r6 + ldr r1, _0809295C + lsrs r0, r0, #0x16 + adds r5, r0, r1 + movs r0, #0 + ldrsh r1, [r5, r0] + cmp r1, #0 + ble _08092924 + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + ldrh r3, [r4] + adds r0, r0, r3 + strh r0, [r4] +_08092924: + cmp r1, #0 + bge _08092932 + ldrh r1, [r4] + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + subs r1, r1, r0 + strh r1, [r4] +_08092932: + movs r0, #2 + ldrsh r1, [r5, r0] + cmp r1, #0 + ble _08092944 + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + ldrh r3, [r2] + adds r0, r0, r3 + strh r0, [r2] +_08092944: + cmp r1, #0 + bge _08092954 + ldrh r1, [r2] + mov r3, ip + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + subs r1, r1, r0 + strh r1, [r2] +_08092954: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0809295C: .4byte 0x084E5FD0 + thumb_func_end MoveCoordsInDirection + + thumb_func_start sub_08092960 +sub_08092960: @ 0x08092960 + push {r4, r5, lr} + ldr r5, _0809299C + ldr r4, [r5] + ldrh r4, [r4] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + subs r0, r0, r4 + lsls r0, r0, #4 + strh r0, [r2] + ldr r0, [r5] + ldrh r0, [r0, #2] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + subs r1, r1, r0 + lsls r1, r1, #4 + strh r1, [r3] + ldr r1, _080929A0 + ldrh r0, [r2] + ldrh r1, [r1] + subs r0, r0, r1 + strh r0, [r2] + ldr r1, _080929A4 + ldrh r0, [r3] + ldrh r1, [r1] + subs r0, r0, r1 + strh r0, [r3] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0809299C: .4byte 0x03005AEC +_080929A0: .4byte 0x03005B4C +_080929A4: .4byte 0x03005B48 + thumb_func_end sub_08092960 + + thumb_func_start SetSpritePosToMapCoords +SetSpritePosToMapCoords: @ 0x080929A8 + push {r4, r5, r6, r7, lr} + adds r7, r2, #0 + mov ip, r3 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + ldr r0, _08092A3C + ldrh r0, [r0] + rsbs r0, r0, #0 + ldr r1, _08092A40 + ldr r2, [r1, #0x10] + subs r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldr r0, _08092A44 + ldrh r0, [r0] + rsbs r0, r0, #0 + ldr r1, [r1, #0x14] + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r2, #0 + ble _080929E2 + lsls r0, r3, #0x10 + movs r3, #0x80 + lsls r3, r3, #0xd + adds r0, r0, r3 + lsrs r3, r0, #0x10 +_080929E2: + cmp r2, #0 + bge _080929EE + lsls r0, r3, #0x10 + ldr r2, _08092A48 + adds r0, r0, r2 + lsrs r3, r0, #0x10 +_080929EE: + cmp r1, #0 + ble _080929FC + lsls r0, r4, #0x10 + movs r2, #0x80 + lsls r2, r2, #0xd + adds r0, r0, r2 + lsrs r4, r0, #0x10 +_080929FC: + cmp r1, #0 + bge _08092A08 + lsls r0, r4, #0x10 + ldr r1, _08092A48 + adds r0, r0, r1 + lsrs r4, r0, #0x10 +_08092A08: + ldr r2, _08092A4C + ldr r0, [r2] + ldrh r1, [r0] + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #4 + lsls r1, r3, #0x10 + asrs r1, r1, #0x10 + adds r1, r1, r0 + strh r1, [r7] + ldr r0, [r2] + ldrh r1, [r0, #2] + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #4 + lsls r1, r4, #0x10 + asrs r1, r1, #0x10 + adds r1, r1, r0 + mov r2, ip + strh r1, [r2] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08092A3C: .4byte 0x03005B4C +_08092A40: .4byte 0x03005B30 +_08092A44: .4byte 0x03005B48 +_08092A48: .4byte 0xFFF00000 +_08092A4C: .4byte 0x03005AEC + thumb_func_end SetSpritePosToMapCoords + + thumb_func_start sub_08092A50 +sub_08092A50: @ 0x08092A50 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r6, r0, #0 + mov r8, r1 + adds r4, r2, #0 + adds r5, r3, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + movs r1, #0 + ldrsh r0, [r6, r1] + mov r2, r8 + movs r3, #0 + ldrsh r1, [r2, r3] + adds r2, r6, #0 + mov r3, r8 + bl SetSpritePosToMapCoords + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + ldrh r0, [r6] + adds r4, r4, r0 + strh r4, [r6] + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + mov r1, r8 + ldrh r1, [r1] + adds r5, r5, r1 + mov r2, r8 + strh r5, [r2] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08092A50 + + thumb_func_start GetEventObjectMovingCameraOffset +GetEventObjectMovingCameraOffset: @ 0x08092A9C + push {lr} + adds r2, r0, #0 + movs r0, #0 + strh r0, [r2] + strh r0, [r1] + ldr r3, _08092AD8 + ldr r0, [r3, #0x10] + cmp r0, #0 + ble _08092AB2 + movs r0, #1 + strh r0, [r2] +_08092AB2: + ldr r0, [r3, #0x10] + cmp r0, #0 + bge _08092ABE + ldrh r0, [r2] + subs r0, #1 + strh r0, [r2] +_08092ABE: + ldr r2, [r3, #0x14] + cmp r2, #0 + ble _08092ACA + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_08092ACA: + cmp r2, #0 + bge _08092AD4 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] +_08092AD4: + pop {r0} + bx r0 + .align 2, 0 +_08092AD8: .4byte 0x03005B30 + thumb_func_end GetEventObjectMovingCameraOffset + + thumb_func_start EventObjectMoveDestCoords +EventObjectMoveDestCoords: @ 0x08092ADC + push {r4, lr} + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrh r4, [r0, #0x10] + strh r4, [r2] + ldrh r0, [r0, #0x12] + strh r0, [r3] + adds r0, r1, #0 + adds r1, r2, #0 + adds r2, r3, #0 + bl MoveCoords + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end EventObjectMoveDestCoords + + thumb_func_start EventObjectIsMovementOverridden +EventObjectIsMovementOverridden: @ 0x08092AFC + push {lr} + ldrb r1, [r0] + movs r0, #0x42 + ands r0, r1 + cmp r0, #0 + bne _08092B0C + movs r0, #0 + b _08092B0E +_08092B0C: + movs r0, #1 +_08092B0E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end EventObjectIsMovementOverridden + + thumb_func_start EventObjectIsHeldMovementActive +EventObjectIsHeldMovementActive: @ 0x08092B14 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _08092B2A + ldrb r0, [r1, #0x1c] + cmp r0, #0xff + beq _08092B2A + movs r0, #1 + b _08092B2C +_08092B2A: + movs r0, #0 +_08092B2C: + pop {r1} + bx r1 + thumb_func_end EventObjectIsHeldMovementActive + + thumb_func_start EventObjectSetHeldMovement +EventObjectSetHeldMovement: @ 0x08092B30 + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + bl EventObjectIsMovementOverridden + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + bne _08092B70 + adds r0, r4, #0 + bl UnfreezeEventObject + strb r5, [r4, #0x1c] + ldrb r0, [r4] + movs r1, #0x40 + orrs r0, r1 + movs r1, #0x7f + ands r0, r1 + strb r0, [r4] + ldr r2, _08092B6C + ldrb r1, [r4, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r6, [r0, #0x32] + movs r0, #0 + b _08092B72 + .align 2, 0 +_08092B6C: .4byte 0x020205AC +_08092B70: + movs r0, #1 +_08092B72: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end EventObjectSetHeldMovement + + thumb_func_start EventObjectForceSetHeldMovement +EventObjectForceSetHeldMovement: @ 0x08092B78 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r4, r1, #0x18 + lsrs r4, r4, #0x18 + bl EventObjectClearHeldMovementIfActive + adds r0, r5, #0 + adds r1, r4, #0 + bl EventObjectSetHeldMovement + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end EventObjectForceSetHeldMovement + + thumb_func_start EventObjectClearHeldMovementIfActive +EventObjectClearHeldMovementIfActive: @ 0x08092B94 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _08092BA6 + adds r0, r1, #0 + bl EventObjectClearHeldMovement +_08092BA6: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end EventObjectClearHeldMovementIfActive + + thumb_func_start EventObjectClearHeldMovement +EventObjectClearHeldMovement: @ 0x08092BAC + movs r1, #0xff + strb r1, [r0, #0x1c] + ldrb r2, [r0] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #0x7f + ands r1, r2 + strb r1, [r0] + ldr r3, _08092BDC + ldrb r2, [r0, #4] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r3 + movs r2, #0 + strh r2, [r1, #0x30] + ldrb r1, [r0, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r2, [r0, #0x32] + bx lr + .align 2, 0 +_08092BDC: .4byte 0x020205AC + thumb_func_end EventObjectClearHeldMovement + + thumb_func_start EventObjectCheckHeldMovementStatus +EventObjectCheckHeldMovementStatus: @ 0x08092BE0 + push {lr} + ldrb r1, [r0] + lsls r0, r1, #0x19 + cmp r0, #0 + blt _08092BEE + movs r0, #0x10 + b _08092BF0 +_08092BEE: + lsrs r0, r1, #7 +_08092BF0: + pop {r1} + bx r1 + thumb_func_end EventObjectCheckHeldMovementStatus + + thumb_func_start MovementAction_AcroEndWheelieFaceLeft_Step0 +MovementAction_AcroEndWheelieFaceLeft_Step0: @ 0x08092BF4 + push {r4, r5, lr} + adds r5, r0, #0 + bl EventObjectCheckHeldMovementStatus + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + beq _08092C0E + cmp r4, #0x10 + beq _08092C0E + adds r0, r5, #0 + bl EventObjectClearHeldMovementIfActive +_08092C0E: + adds r0, r4, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroEndWheelieFaceLeft_Step0 + + thumb_func_start EventObjectGetHeldMovementActionId +EventObjectGetHeldMovementActionId: @ 0x08092C18 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1] + lsls r0, r0, #0x19 + cmp r0, #0 + blt _08092C28 + movs r0, #0xff + b _08092C2A +_08092C28: + ldrb r0, [r1, #0x1c] +_08092C2A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end EventObjectGetHeldMovementActionId + + thumb_func_start UpdateEventObjectCurrentMovement +UpdateEventObjectCurrentMovement: @ 0x08092C30 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + bl DoGroundEffects_OnSpawn + adds r0, r4, #0 + adds r1, r5, #0 + bl TryEnableEventObjectAnim + adds r0, r4, #0 + bl EventObjectIsHeldMovementActive + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08092C5A + adds r0, r4, #0 + adds r1, r5, #0 + bl EventObjectExecHeldMovementAction + b _08092C70 +_08092C5A: + ldrb r0, [r4, #1] + lsls r0, r0, #0x1f + cmp r0, #0 + bne _08092C70 +_08092C62: + adds r0, r4, #0 + adds r1, r5, #0 + bl _call_via_r6 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08092C62 +_08092C70: + adds r0, r4, #0 + adds r1, r5, #0 + bl DoGroundEffects_OnBeginStep + adds r0, r4, #0 + adds r1, r5, #0 + bl DoGroundEffects_OnFinishStep + adds r0, r4, #0 + adds r1, r5, #0 + bl UpdateEventObjectSpriteAnimPause + adds r0, r4, #0 + adds r1, r5, #0 + bl UpdateEventObjectVisibility + adds r0, r4, #0 + adds r1, r5, #0 + bl EventObjectUpdateSubpriority + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end UpdateEventObjectCurrentMovement + + thumb_func_start sub_08092CA0 +sub_08092CA0: @ 0x08092CA0 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08092CC8 + mov r0, sp + movs r2, #5 + bl memcpy + cmp r4, #4 + bls _08092CB8 + movs r4, #0 +_08092CB8: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08092CC8: .4byte 0x084E5FF4 + thumb_func_end sub_08092CA0 + + thumb_func_start sub_08092CCC +sub_08092CCC: @ 0x08092CCC + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08092CF4 + mov r0, sp + movs r2, #5 + bl memcpy + cmp r4, #4 + bls _08092CE4 + movs r4, #0 +_08092CE4: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08092CF4: .4byte 0x084E5FF9 + thumb_func_end sub_08092CCC + + thumb_func_start sub_08092CF8 +sub_08092CF8: @ 0x08092CF8 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08092D20 + mov r0, sp + movs r2, #5 + bl memcpy + cmp r4, #4 + bls _08092D10 + movs r4, #0 +_08092D10: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08092D20: .4byte 0x084E5FFE + thumb_func_end sub_08092CF8 + + thumb_func_start sub_08092D24 +sub_08092D24: @ 0x08092D24 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08092D4C + mov r0, sp + movs r2, #5 + bl memcpy + cmp r4, #4 + bls _08092D3C + movs r4, #0 +_08092D3C: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08092D4C: .4byte 0x084E6003 + thumb_func_end sub_08092D24 + + thumb_func_start sub_08092D50 +sub_08092D50: @ 0x08092D50 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08092D78 + mov r0, sp + movs r2, #5 + bl memcpy + cmp r4, #4 + bls _08092D68 + movs r4, #0 +_08092D68: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08092D78: .4byte 0x084E6008 + thumb_func_end sub_08092D50 + + thumb_func_start sub_08092D7C +sub_08092D7C: @ 0x08092D7C + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08092DA4 + mov r0, sp + movs r2, #5 + bl memcpy + cmp r4, #4 + bls _08092D94 + movs r4, #0 +_08092D94: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08092DA4: .4byte 0x084E600D + thumb_func_end sub_08092D7C + + thumb_func_start sub_08092DA8 +sub_08092DA8: @ 0x08092DA8 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08092DD0 + mov r0, sp + movs r2, #5 + bl memcpy + cmp r4, #4 + bls _08092DC0 + movs r4, #0 +_08092DC0: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08092DD0: .4byte 0x084E6012 + thumb_func_end sub_08092DA8 + + thumb_func_start sub_08092DD4 +sub_08092DD4: @ 0x08092DD4 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08092DFC + mov r0, sp + movs r2, #5 + bl memcpy + cmp r4, #4 + bls _08092DEC + movs r4, #0 +_08092DEC: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08092DFC: .4byte 0x084E6017 + thumb_func_end sub_08092DD4 + + thumb_func_start sub_08092E00 +sub_08092E00: @ 0x08092E00 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08092E28 + mov r0, sp + movs r2, #5 + bl memcpy + cmp r4, #4 + bls _08092E18 + movs r4, #0 +_08092E18: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08092E28: .4byte 0x084E601C + thumb_func_end sub_08092E00 + + thumb_func_start sub_08092E2C +sub_08092E2C: @ 0x08092E2C + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08092E54 + mov r0, sp + movs r2, #5 + bl memcpy + cmp r4, #4 + bls _08092E44 + movs r4, #0 +_08092E44: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08092E54: .4byte 0x084E6021 + thumb_func_end sub_08092E2C + + thumb_func_start sub_08092E58 +sub_08092E58: @ 0x08092E58 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08092E80 + mov r0, sp + movs r2, #5 + bl memcpy + cmp r4, #4 + bls _08092E70 + movs r4, #0 +_08092E70: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08092E80: .4byte 0x084E6026 + thumb_func_end sub_08092E58 + + thumb_func_start sub_08092E84 +sub_08092E84: @ 0x08092E84 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08092EAC + mov r0, sp + movs r2, #5 + bl memcpy + cmp r4, #4 + bls _08092E9C + movs r4, #0 +_08092E9C: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08092EAC: .4byte 0x084E602B + thumb_func_end sub_08092E84 + + thumb_func_start sub_08092EB0 +sub_08092EB0: @ 0x08092EB0 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08092ED8 + mov r0, sp + movs r2, #5 + bl memcpy + cmp r4, #4 + bls _08092EC8 + movs r4, #0 +_08092EC8: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08092ED8: .4byte 0x084E6030 + thumb_func_end sub_08092EB0 + + thumb_func_start sub_08092EDC +sub_08092EDC: @ 0x08092EDC + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08092F04 + mov r0, sp + movs r2, #5 + bl memcpy + cmp r4, #4 + bls _08092EF4 + movs r4, #0 +_08092EF4: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08092F04: .4byte 0x084E6035 + thumb_func_end sub_08092EDC + + thumb_func_start sub_08092F08 +sub_08092F08: @ 0x08092F08 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08092F30 + mov r0, sp + movs r2, #5 + bl memcpy + cmp r4, #4 + bls _08092F20 + movs r4, #0 +_08092F20: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08092F30: .4byte 0x084E603A + thumb_func_end sub_08092F08 + + thumb_func_start sub_08092F34 +sub_08092F34: @ 0x08092F34 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08092F5C + mov r0, sp + movs r2, #5 + bl memcpy + cmp r4, #4 + bls _08092F4C + movs r4, #0 +_08092F4C: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08092F5C: .4byte 0x084E603F + thumb_func_end sub_08092F34 + + thumb_func_start sub_08092F60 +sub_08092F60: @ 0x08092F60 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08092F88 + mov r0, sp + movs r2, #5 + bl memcpy + cmp r4, #4 + bls _08092F78 + movs r4, #0 +_08092F78: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08092F88: .4byte 0x084E6044 + thumb_func_end sub_08092F60 + + thumb_func_start EventObjectFaceOppositeDirection +EventObjectFaceOppositeDirection: @ 0x08092F8C + push {r4, lr} + adds r4, r0, #0 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + bl GetOppositeDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_08092CA0 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetHeldMovement + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end EventObjectFaceOppositeDirection + + thumb_func_start sub_08092FB8 +sub_08092FB8: @ 0x08092FB8 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08092FE0 + mov r0, sp + movs r2, #5 + bl memcpy + cmp r4, #4 + bls _08092FD0 + movs r4, #0 +_08092FD0: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08092FE0: .4byte 0x084E6049 + thumb_func_end sub_08092FB8 + + thumb_func_start sub_08092FE4 +sub_08092FE4: @ 0x08092FE4 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _0809300C + mov r0, sp + movs r2, #5 + bl memcpy + cmp r4, #4 + bls _08092FFC + movs r4, #0 +_08092FFC: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809300C: .4byte 0x084E604E + thumb_func_end sub_08092FE4 + + thumb_func_start EventObjectExecSingleMovementAction +EventObjectExecSingleMovementAction: @ 0x08093010 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08093038 + mov r0, sp + movs r2, #5 + bl memcpy + cmp r4, #4 + bls _08093028 + movs r4, #0 +_08093028: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08093038: .4byte 0x084E6053 + thumb_func_end EventObjectExecSingleMovementAction + + thumb_func_start sub_0809303C +sub_0809303C: @ 0x0809303C + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08093064 + mov r0, sp + movs r2, #5 + bl memcpy + cmp r4, #4 + bls _08093054 + movs r4, #0 +_08093054: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08093064: .4byte 0x084E6058 + thumb_func_end sub_0809303C + + thumb_func_start GetAcroEndWheelieFaceDirectionMovementAction +GetAcroEndWheelieFaceDirectionMovementAction: @ 0x08093068 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08093090 + mov r0, sp + movs r2, #5 + bl memcpy + cmp r4, #4 + bls _08093080 + movs r4, #0 +_08093080: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08093090: .4byte 0x084E605D + thumb_func_end GetAcroEndWheelieFaceDirectionMovementAction + + thumb_func_start sub_08093094 +sub_08093094: @ 0x08093094 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _080930BC + mov r0, sp + movs r2, #5 + bl memcpy + cmp r4, #4 + bls _080930AC + movs r4, #0 +_080930AC: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080930BC: .4byte 0x084E6062 + thumb_func_end sub_08093094 + + thumb_func_start sub_080930C0 +sub_080930C0: @ 0x080930C0 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _080930E8 + mov r0, sp + movs r2, #5 + bl memcpy + cmp r4, #4 + bls _080930D8 + movs r4, #0 +_080930D8: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080930E8: .4byte 0x084E6067 + thumb_func_end sub_080930C0 + + thumb_func_start sub_080930EC +sub_080930EC: @ 0x080930EC + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08093114 + mov r0, sp + movs r2, #5 + bl memcpy + cmp r4, #4 + bls _08093104 + movs r4, #0 +_08093104: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08093114: .4byte 0x084E606C + thumb_func_end sub_080930EC + + thumb_func_start sub_08093118 +sub_08093118: @ 0x08093118 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08093140 + mov r0, sp + movs r2, #5 + bl memcpy + cmp r4, #4 + bls _08093130 + movs r4, #0 +_08093130: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08093140: .4byte 0x084E6071 + thumb_func_end sub_08093118 + + thumb_func_start sub_08093144 +sub_08093144: @ 0x08093144 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _0809316C + mov r0, sp + movs r2, #5 + bl memcpy + cmp r4, #4 + bls _0809315C + movs r4, #0 +_0809315C: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809316C: .4byte 0x084E6076 + thumb_func_end sub_08093144 + + thumb_func_start GetOppositeDirection +GetOppositeDirection: @ 0x08093170 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08093194 + mov r0, sp + movs r2, #8 + bl memcpy + subs r1, r4, #1 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #7 + bhi _08093198 + mov r2, sp + adds r0, r2, r1 + ldrb r0, [r0] + b _0809319A + .align 2, 0 +_08093194: .4byte 0x084E607B +_08093198: + adds r0, r4, #0 +_0809319A: + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetOppositeDirection + + thumb_func_start zffu_offset_calc +zffu_offset_calc: @ 0x080931A4 + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _080931B8 + lsrs r0, r0, #0x16 + subs r0, #5 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + bx lr + .align 2, 0 +_080931B8: .4byte 0x084E6083 + thumb_func_end zffu_offset_calc + + thumb_func_start state_to_direction +state_to_direction: @ 0x080931BC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r1, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + cmp r1, #0 + beq _080931DC + cmp r2, #0 + beq _080931DC + cmp r1, #4 + bhi _080931DC + cmp r2, #4 + bls _080931E0 +_080931DC: + movs r0, #0 + b _080931F2 +_080931E0: + adds r1, r2, #0 + bl zffu_offset_calc + ldr r2, _080931F8 + lsls r1, r4, #2 + subs r1, #5 + adds r0, r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] +_080931F2: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080931F8: .4byte 0x084E6093 + thumb_func_end state_to_direction + + thumb_func_start EventObjectExecHeldMovementAction +EventObjectExecHeldMovementAction: @ 0x080931FC + push {r4, lr} + adds r4, r0, #0 + ldr r2, _08093230 + ldrb r0, [r4, #0x1c] + lsls r0, r0, #2 + adds r0, r0, r2 + movs r3, #0x32 + ldrsh r2, [r1, r3] + ldr r0, [r0] + lsls r2, r2, #2 + adds r2, r2, r0 + ldr r2, [r2] + adds r0, r4, #0 + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end EventObjectExecHeldMovementAction + + thumb_func_start sub_0809321C +sub_0809321C: @ 0x0809321C + cmp r0, #0 + beq _08093228 + ldrb r0, [r4] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4] +_08093228: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08093230: .4byte 0x084E60A4 + thumb_func_end sub_0809321C + + thumb_func_start sub_08093234 +sub_08093234: @ 0x08093234 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _08093260 + ldrb r0, [r4, #0x1c] + lsls r0, r0, #2 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r5, r2] + ldr r0, [r0] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r2, [r1] + adds r0, r4, #0 + adds r1, r5, #0 + bl _call_via_r2 + lsls r0, r0, #0x18 + thumb_func_end sub_08093234 + + thumb_func_start sub_08093258 +sub_08093258: @ 0x08093258 + cmp r0, #0 + bne _08093264 + movs r0, #0 + b _0809326E + .align 2, 0 +_08093260: .4byte 0x084E60A4 +_08093264: + movs r0, #0xff + strb r0, [r4, #0x1c] + movs r0, #0 + strh r0, [r5, #0x32] + movs r0, #1 +_0809326E: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_08093258 + + thumb_func_start EventObjectSetSingleMovement +EventObjectSetSingleMovement: @ 0x08093274 + movs r3, #0 + strb r2, [r0, #0x1c] + strh r3, [r1, #0x32] + bx lr + thumb_func_end EventObjectSetSingleMovement + + thumb_func_start FaceDirection +FaceDirection: @ 0x0809327C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r1, r2, #0x18 + lsrs r1, r1, #0x18 + bl SetEventObjectDirection + adds r0, r4, #0 + bl ShiftStillEventObjectCoords + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl GetJumpInPlaceTurnAroundMovementAction + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl obj_npc_animation_step + adds r2, r5, #0 + adds r2, #0x2c + ldrb r0, [r2] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2] + movs r0, #1 + strh r0, [r5, #0x32] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end FaceDirection + + thumb_func_start MovementAction_FaceDown_Step0 +MovementAction_FaceDown_Step0: @ 0x080932C0 + push {lr} + movs r2, #1 + bl FaceDirection + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_FaceDown_Step0 + + thumb_func_start MovementAction_FaceUp_Step0 +MovementAction_FaceUp_Step0: @ 0x080932D0 + push {lr} + movs r2, #2 + bl FaceDirection + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_FaceUp_Step0 + + thumb_func_start MovementAction_FaceLeft_Step0 +MovementAction_FaceLeft_Step0: @ 0x080932E0 + push {lr} + movs r2, #3 + bl FaceDirection + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_FaceLeft_Step0 + + thumb_func_start MovementAction_FaceRight_Step0 +MovementAction_FaceRight_Step0: @ 0x080932F0 + push {lr} + movs r2, #4 + bl FaceDirection + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_FaceRight_Step0 + + thumb_func_start npc_apply_direction +npc_apply_direction: @ 0x08093300 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r7, r0, #0 + mov r8, r1 + adds r4, r2, #0 + adds r6, r3, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + ldrh r1, [r7, #0x10] + mov r0, sp + strh r1, [r0] + ldrh r0, [r7, #0x12] + mov r5, sp + adds r5, #2 + strh r0, [r5] + adds r0, r7, #0 + adds r1, r4, #0 + bl SetEventObjectDirection + adds r0, r4, #0 + mov r1, sp + adds r2, r5, #0 + bl MoveCoords + mov r0, sp + movs r2, #0 + ldrsh r1, [r0, r2] + movs r0, #0 + ldrsh r2, [r5, r0] + adds r0, r7, #0 + bl ShiftEventObjectCoords + mov r0, r8 + adds r1, r4, #0 + adds r2, r6, #0 + bl oamt_npc_ministep_reset + mov r4, r8 + adds r4, #0x2c + ldrb r1, [r4] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4] + ldr r0, _08093398 + ldr r0, [r0] + cmp r0, #0 + beq _0809337E + adds r0, r7, #0 + bl FindLockedEventObjectIndex + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + beq _0809337E + ldrb r0, [r4] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4] +_0809337E: + ldrb r0, [r7] + movs r1, #4 + orrs r0, r1 + strb r0, [r7] + movs r0, #1 + mov r1, r8 + strh r0, [r1, #0x32] + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08093398: .4byte 0x02037258 + thumb_func_end npc_apply_direction + + thumb_func_start do_go_anim +do_go_anim: @ 0x0809339C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x14 + adds r5, r0, #0 + mov r8, r1 + adds r4, r3, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r1, sp + ldr r0, _080933F4 + ldm r0!, {r3, r6, r7} + stm r1!, {r3, r6, r7} + ldm r0!, {r3, r6} + stm r1!, {r3, r6} + adds r0, r5, #0 + mov r1, r8 + adds r3, r4, #0 + bl npc_apply_direction + lsls r4, r4, #2 + mov r7, sp + adds r1, r7, r4 + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + ldr r1, [r1] + bl _call_via_r1 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r5, #0 + mov r1, r8 + bl npc_apply_anim_looping + add sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080933F4: .4byte 0x084E633C + thumb_func_end do_go_anim + + thumb_func_start StartRunningAnim +StartRunningAnim: @ 0x080933F8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r3, #1 + bl npc_apply_direction + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl GetWalkSlowMovementAction + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl npc_apply_anim_looping + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end StartRunningAnim + + thumb_func_start npc_obj_ministep_stop_on_arrival +npc_obj_ministep_stop_on_arrival: @ 0x08093428 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r0, r5, #0 + bl obj_npc_ministep + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809343E + movs r0, #0 + b _0809345A +_0809343E: + adds r0, r4, #0 + bl ShiftStillEventObjectCoords + ldrb r0, [r4] + movs r1, #8 + orrs r0, r1 + strb r0, [r4] + adds r2, r5, #0 + adds r2, #0x2c + ldrb r0, [r2] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2] + movs r0, #1 +_0809345A: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end npc_obj_ministep_stop_on_arrival + + thumb_func_start sub_08093460 +sub_08093460: @ 0x08093460 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #4 + adds r6, r0, #0 + mov r8, r1 + lsls r5, r2, #0x18 + lsrs r5, r5, #0x18 + ldrh r1, [r6, #0x10] + mov r0, sp + strh r1, [r0] + ldrh r0, [r6, #0x12] + mov r4, sp + adds r4, #2 + strh r0, [r4] + adds r0, r6, #0 + adds r1, r5, #0 + bl SetEventObjectDirection + adds r0, r5, #0 + mov r1, sp + adds r2, r4, #0 + bl MoveCoords + mov r0, sp + movs r2, #0 + ldrsh r1, [r0, r2] + movs r0, #0 + ldrsh r2, [r4, r0] + adds r0, r6, #0 + bl ShiftEventObjectCoords + mov r0, r8 + adds r1, r5, #0 + bl sub_0809704C + mov r2, r8 + adds r2, #0x2c + ldrb r1, [r2] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldrb r0, [r6] + movs r1, #4 + orrs r0, r1 + strb r0, [r6] + movs r0, #1 + mov r1, r8 + strh r0, [r1, #0x32] + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_08093460 + + thumb_func_start sub_080934D0 +sub_080934D0: @ 0x080934D0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + bl sub_08093460 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl GetJumpInPlaceTurnAroundMovementAction + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl npc_apply_anim_looping + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_080934D0 + + thumb_func_start an_walk_any_2 +an_walk_any_2: @ 0x080934FC + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r0, r5, #0 + bl sub_0809705C + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08093512 + movs r0, #0 + b _0809352E +_08093512: + adds r0, r4, #0 + bl ShiftStillEventObjectCoords + ldrb r0, [r4] + movs r1, #8 + orrs r0, r1 + strb r0, [r4] + adds r2, r5, #0 + adds r2, #0x2c + ldrb r0, [r2] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2] + movs r0, #1 +_0809352E: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end an_walk_any_2 + + thumb_func_start MovementAction_WalkSlowDiagonalUpLeft_Step0 +MovementAction_WalkSlowDiagonalUpLeft_Step0: @ 0x08093534 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #7 + bl sub_080934D0 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08093554 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkSlowDiagonalUpLeft_Step0 + + thumb_func_start sub_08093554 +sub_08093554: @ 0x08093554 + push {r4, lr} + adds r4, r1, #0 + bl an_walk_any_2 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08093566 + movs r0, #0 + b _0809356C +_08093566: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_0809356C: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08093554 + + thumb_func_start MovementAction_WalkSlowDiagonalUpRight_Step0 +MovementAction_WalkSlowDiagonalUpRight_Step0: @ 0x08093574 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #8 + bl sub_080934D0 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkSlowDiagonalUpRight_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkSlowDiagonalUpRight_Step0 + + thumb_func_start MovementAction_WalkSlowDiagonalUpRight_Step1 +MovementAction_WalkSlowDiagonalUpRight_Step1: @ 0x08093594 + push {r4, lr} + adds r4, r1, #0 + bl an_walk_any_2 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080935A6 + movs r0, #0 + b _080935AC +_080935A6: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_080935AC: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkSlowDiagonalUpRight_Step1 + + thumb_func_start MovementAction_WalkSlowDiagonalDownLeft_Step0 +MovementAction_WalkSlowDiagonalDownLeft_Step0: @ 0x080935B4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #5 + bl sub_080934D0 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkSlowDiagonalDownLeft_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkSlowDiagonalDownLeft_Step0 + + thumb_func_start MovementAction_WalkSlowDiagonalDownLeft_Step1 +MovementAction_WalkSlowDiagonalDownLeft_Step1: @ 0x080935D4 + push {r4, lr} + adds r4, r1, #0 + bl an_walk_any_2 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080935E6 + movs r0, #0 + b _080935EC +_080935E6: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_080935EC: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkSlowDiagonalDownLeft_Step1 + + thumb_func_start MovementAction_WalkSlowDiagonalDownRight_Step0 +MovementAction_WalkSlowDiagonalDownRight_Step0: @ 0x080935F4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #6 + bl sub_080934D0 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkSlowDiagonalDownRight_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkSlowDiagonalDownRight_Step0 + + thumb_func_start MovementAction_WalkSlowDiagonalDownRight_Step1 +MovementAction_WalkSlowDiagonalDownRight_Step1: @ 0x08093614 + push {r4, lr} + adds r4, r1, #0 + bl an_walk_any_2 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08093626 + movs r0, #0 + b _0809362C +_08093626: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_0809362C: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkSlowDiagonalDownRight_Step1 + + thumb_func_start MovementAction_WalkSlowDown_Step0 +MovementAction_WalkSlowDown_Step0: @ 0x08093634 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #1 + bl sub_080934D0 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkSlowDown_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkSlowDown_Step0 + + thumb_func_start MovementAction_WalkSlowDown_Step1 +MovementAction_WalkSlowDown_Step1: @ 0x08093654 + push {r4, lr} + adds r4, r1, #0 + bl an_walk_any_2 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08093666 + movs r0, #0 + b _0809366C +_08093666: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_0809366C: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkSlowDown_Step1 + + thumb_func_start MovementAction_WalkSlowUp_Step0 +MovementAction_WalkSlowUp_Step0: @ 0x08093674 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #2 + bl sub_080934D0 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkSlowUp_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkSlowUp_Step0 + + thumb_func_start MovementAction_WalkSlowUp_Step1 +MovementAction_WalkSlowUp_Step1: @ 0x08093694 + push {r4, lr} + adds r4, r1, #0 + bl an_walk_any_2 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080936A6 + movs r0, #0 + b _080936AC +_080936A6: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_080936AC: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkSlowUp_Step1 + + thumb_func_start MovementAction_WalkSlowLeft_Step0 +MovementAction_WalkSlowLeft_Step0: @ 0x080936B4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #3 + bl sub_080934D0 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkSlowLeft_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkSlowLeft_Step0 + + thumb_func_start MovementAction_WalkSlowLeft_Step1 +MovementAction_WalkSlowLeft_Step1: @ 0x080936D4 + push {r4, lr} + adds r4, r1, #0 + bl an_walk_any_2 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080936E6 + movs r0, #0 + b _080936EC +_080936E6: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_080936EC: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkSlowLeft_Step1 + + thumb_func_start MovementAction_WalkSlowRight_Step0 +MovementAction_WalkSlowRight_Step0: @ 0x080936F4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #4 + bl sub_080934D0 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkSlowRight_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkSlowRight_Step0 + + thumb_func_start MovementAction_WalkSlowRight_Step1 +MovementAction_WalkSlowRight_Step1: @ 0x08093714 + push {r4, lr} + adds r4, r1, #0 + bl an_walk_any_2 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08093726 + movs r0, #0 + b _0809372C +_08093726: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_0809372C: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkSlowRight_Step1 + + thumb_func_start MovementAction_WalkNormalDiagonalUpLeft_Step0 +MovementAction_WalkNormalDiagonalUpLeft_Step0: @ 0x08093734 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #7 + movs r3, #0 + bl do_go_anim + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkNormalDiagonalUpLeft_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_WalkNormalDiagonalUpLeft_Step0 + + thumb_func_start MovementAction_WalkNormalDiagonalUpLeft_Step1 +MovementAction_WalkNormalDiagonalUpLeft_Step1: @ 0x08093754 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08093766 + movs r0, #0 + b _0809376C +_08093766: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_0809376C: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkNormalDiagonalUpLeft_Step1 + + thumb_func_start MovementAction_WalkNormalDiagonalUpRight_Step0 +MovementAction_WalkNormalDiagonalUpRight_Step0: @ 0x08093774 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #8 + movs r3, #0 + bl do_go_anim + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkNormalDiagonalUpRight_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_WalkNormalDiagonalUpRight_Step0 + + thumb_func_start MovementAction_WalkNormalDiagonalUpRight_Step1 +MovementAction_WalkNormalDiagonalUpRight_Step1: @ 0x08093794 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080937A6 + movs r0, #0 + b _080937AC +_080937A6: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_080937AC: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkNormalDiagonalUpRight_Step1 + + thumb_func_start MovementAction_WalkNormalDiagonalDownLeft_Step0 +MovementAction_WalkNormalDiagonalDownLeft_Step0: @ 0x080937B4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #5 + movs r3, #0 + bl do_go_anim + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkNormalDiagonalDownLeft_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_WalkNormalDiagonalDownLeft_Step0 + + thumb_func_start MovementAction_WalkNormalDiagonalDownLeft_Step1 +MovementAction_WalkNormalDiagonalDownLeft_Step1: @ 0x080937D4 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080937E6 + movs r0, #0 + b _080937EC +_080937E6: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_080937EC: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkNormalDiagonalDownLeft_Step1 + + thumb_func_start MovementAction_WalkNormalDiagonalDownRight_Step0 +MovementAction_WalkNormalDiagonalDownRight_Step0: @ 0x080937F4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #6 + movs r3, #0 + bl do_go_anim + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkNormalDiagonalDownRight_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_WalkNormalDiagonalDownRight_Step0 + + thumb_func_start MovementAction_WalkNormalDiagonalDownRight_Step1 +MovementAction_WalkNormalDiagonalDownRight_Step1: @ 0x08093814 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08093826 + movs r0, #0 + b _0809382C +_08093826: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_0809382C: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkNormalDiagonalDownRight_Step1 + + thumb_func_start MovementAction_WalkNormalDown_Step0 +MovementAction_WalkNormalDown_Step0: @ 0x08093834 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #1 + movs r3, #0 + bl do_go_anim + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkNormalDown_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_WalkNormalDown_Step0 + + thumb_func_start MovementAction_WalkNormalDown_Step1 +MovementAction_WalkNormalDown_Step1: @ 0x08093854 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08093866 + movs r0, #0 + b _0809386C +_08093866: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_0809386C: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkNormalDown_Step1 + + thumb_func_start MovementAction_WalkNormalUp_Step0 +MovementAction_WalkNormalUp_Step0: @ 0x08093874 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #2 + movs r3, #0 + bl do_go_anim + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkNormalUp_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_WalkNormalUp_Step0 + + thumb_func_start MovementAction_WalkNormalUp_Step1 +MovementAction_WalkNormalUp_Step1: @ 0x08093894 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080938A6 + movs r0, #0 + b _080938AC +_080938A6: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_080938AC: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkNormalUp_Step1 + + thumb_func_start MovementAction_WalkNormalLeft_Step0 +MovementAction_WalkNormalLeft_Step0: @ 0x080938B4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #3 + movs r3, #0 + bl do_go_anim + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkNormalLeft_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_WalkNormalLeft_Step0 + + thumb_func_start MovementAction_WalkNormalLeft_Step1 +MovementAction_WalkNormalLeft_Step1: @ 0x080938D4 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080938E6 + movs r0, #0 + b _080938EC +_080938E6: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_080938EC: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkNormalLeft_Step1 + + thumb_func_start MovementAction_WalkNormalRight_Step0 +MovementAction_WalkNormalRight_Step0: @ 0x080938F4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #4 + movs r3, #0 + bl do_go_anim + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkNormalRight_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_WalkNormalRight_Step0 + + thumb_func_start MovementAction_WalkNormalRight_Step1 +MovementAction_WalkNormalRight_Step1: @ 0x08093914 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08093926 + movs r0, #0 + b _0809392C +_08093926: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_0809392C: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkNormalRight_Step1 + + thumb_func_start sub_08093934 +sub_08093934: @ 0x08093934 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + adds r7, r0, #0 + mov sl, r1 + adds r4, r2, #0 + mov r8, r3 + ldr r0, [sp, #0x30] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r1, r8 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldr r1, _080939EC + add r0, sp, #4 + movs r2, #6 + bl memcpy + add r5, sp, #0xc + movs r0, #0 + strh r0, [r5] + mov r6, sp + adds r6, #0xe + strh r0, [r6] + adds r0, r7, #0 + adds r1, r4, #0 + bl SetEventObjectDirection + mov r1, r8 + lsls r0, r1, #1 + add r0, sp + adds r0, #4 + movs r1, #0 + ldrsh r3, [r0, r1] + str r3, [sp] + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl MoveCoordsInDirection + ldrh r1, [r5] + ldrh r0, [r7, #0x10] + adds r1, r1, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldrh r2, [r6] + ldrh r0, [r7, #0x12] + adds r2, r2, r0 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r0, r7, #0 + bl ShiftEventObjectCoords + mov r0, sl + adds r1, r4, #0 + mov r2, r8 + mov r3, sb + bl sub_080971AC + movs r0, #1 + mov r1, sl + strh r0, [r1, #0x32] + movs r0, #0x2c + add sl, r0 + mov r0, sl + ldrb r1, [r0] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + mov r1, sl + strb r0, [r1] + ldrb r0, [r7] + movs r1, #4 + orrs r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r7] + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080939EC: .4byte 0x084E6410 + thumb_func_end sub_08093934 + + thumb_func_start maybe_shadow_1 +maybe_shadow_1: @ 0x080939F0 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r0, [sp, #0x10] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + adds r0, r4, #0 + bl sub_08093934 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl GetJumpInPlaceTurnAroundMovementAction + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl npc_apply_anim_looping + adds r0, r4, #0 + bl DoShadowFieldEffect + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end maybe_shadow_1 + + thumb_func_start sub_08093A34 +sub_08093A34: @ 0x08093A34 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x10 + adds r6, r0, #0 + adds r7, r1, #0 + adds r4, r2, #0 + ldr r1, _08093AC0 + add r0, sp, #4 + movs r2, #6 + bl memcpy + adds r0, r7, #0 + bl _call_via_r4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + cmp r0, #1 + bne _08093AC4 + movs r1, #0x36 + ldrsh r0, [r7, r1] + lsls r0, r0, #1 + add r0, sp + adds r0, #4 + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r0, #0 + beq _08093AC4 + add r4, sp, #0xc + movs r0, #0 + strh r0, [r4] + mov r5, sp + adds r5, #0xe + strh r0, [r5] + ldrb r0, [r6, #0x18] + lsrs r0, r0, #4 + movs r2, #0x36 + ldrsh r1, [r7, r2] + lsls r1, r1, #1 + add r1, sp + adds r1, #4 + movs r2, #0 + ldrsh r3, [r1, r2] + str r3, [sp] + adds r1, r4, #0 + adds r2, r5, #0 + bl MoveCoordsInDirection + ldrh r1, [r4] + ldrh r0, [r6, #0x10] + adds r1, r1, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldrh r2, [r5] + ldrh r0, [r6, #0x12] + adds r2, r2, r0 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r0, r6, #0 + bl ShiftEventObjectCoords + ldrb r0, [r6] + movs r1, #4 + orrs r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r6] + b _08093AE8 + .align 2, 0 +_08093AC0: .4byte 0x084E6416 +_08093AC4: + mov r1, r8 + cmp r1, #0xff + bne _08093AE8 + adds r0, r6, #0 + bl ShiftStillEventObjectCoords + ldrb r0, [r6] + movs r1, #8 + orrs r0, r1 + movs r1, #0x20 + orrs r0, r1 + strb r0, [r6] + adds r2, r7, #0 + adds r2, #0x2c + ldrb r0, [r2] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2] +_08093AE8: + mov r0, r8 + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08093A34 + + thumb_func_start sub_08093AF8 +sub_08093AF8: @ 0x08093AF8 + push {lr} + ldr r2, _08093B08 + bl sub_08093A34 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_08093B08: .4byte 0x080971CD + thumb_func_end sub_08093AF8 + + thumb_func_start sub_08093B0C +sub_08093B0C: @ 0x08093B0C + push {lr} + ldr r2, _08093B1C + bl sub_08093A34 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_08093B1C: .4byte 0x08097255 + thumb_func_end sub_08093B0C + + thumb_func_start sub_08093B20 +sub_08093B20: @ 0x08093B20 + push {lr} + bl sub_08093AF8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _08093B32 + movs r0, #0 + b _08093B34 +_08093B32: + movs r0, #1 +_08093B34: + pop {r1} + bx r1 + thumb_func_end sub_08093B20 + + thumb_func_start sub_08093B38 +sub_08093B38: @ 0x08093B38 + push {lr} + bl sub_08093B0C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _08093B4A + movs r0, #0 + b _08093B4C +_08093B4A: + movs r0, #1 +_08093B4C: + pop {r1} + bx r1 + thumb_func_end sub_08093B38 + + thumb_func_start sub_08093B50 +sub_08093B50: @ 0x08093B50 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093AF8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08093B6A + cmp r0, #0xff + bne _08093B96 + movs r0, #1 + b _08093B98 +_08093B6A: + ldrb r0, [r4, #0x18] + lsrs r0, r0, #4 + bl GetOppositeDirection + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl SetEventObjectDirection + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl GetJumpInPlaceTurnAroundMovementAction + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl obj_npc_animation_step +_08093B96: + movs r0, #0 +_08093B98: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08093B50 + + thumb_func_start MovementAction_Jump2Down_Step0 +MovementAction_Jump2Down_Step0: @ 0x08093BA0 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #0 + str r0, [sp] + adds r0, r4, #0 + movs r2, #1 + movs r3, #2 + bl maybe_shadow_1 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_Jump2Down_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_Jump2Down_Step0 + + thumb_func_start MovementAction_Jump2Down_Step1 +MovementAction_Jump2Down_Step1: @ 0x08093BCC + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093B20 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08093BE0 + movs r0, #0 + b _08093BF0 +_08093BE0: + ldrb r0, [r4, #2] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #2] + movs r0, #2 + strh r0, [r5, #0x32] + movs r0, #1 +_08093BF0: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_Jump2Down_Step1 + + thumb_func_start MovementAction_Jump2Up_Step0 +MovementAction_Jump2Up_Step0: @ 0x08093BF8 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #0 + str r0, [sp] + adds r0, r4, #0 + movs r2, #2 + movs r3, #2 + bl maybe_shadow_1 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_Jump2Up_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_Jump2Up_Step0 + + thumb_func_start MovementAction_Jump2Up_Step1 +MovementAction_Jump2Up_Step1: @ 0x08093C24 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093B20 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08093C38 + movs r0, #0 + b _08093C48 +_08093C38: + ldrb r0, [r4, #2] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #2] + movs r0, #2 + strh r0, [r5, #0x32] + movs r0, #1 +_08093C48: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_Jump2Up_Step1 + + thumb_func_start MovementAction_Jump2Left_Step0 +MovementAction_Jump2Left_Step0: @ 0x08093C50 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #0 + str r0, [sp] + adds r0, r4, #0 + movs r2, #3 + movs r3, #2 + bl maybe_shadow_1 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_Jump2Left_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_Jump2Left_Step0 + + thumb_func_start MovementAction_Jump2Left_Step1 +MovementAction_Jump2Left_Step1: @ 0x08093C7C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093B20 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08093C90 + movs r0, #0 + b _08093CA0 +_08093C90: + ldrb r0, [r4, #2] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #2] + movs r0, #2 + strh r0, [r5, #0x32] + movs r0, #1 +_08093CA0: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_Jump2Left_Step1 + + thumb_func_start MovementAction_Jump2Right_Step0 +MovementAction_Jump2Right_Step0: @ 0x08093CA8 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #0 + str r0, [sp] + adds r0, r4, #0 + movs r2, #4 + movs r3, #2 + bl maybe_shadow_1 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_Jump2Right_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_Jump2Right_Step0 + + thumb_func_start MovementAction_Jump2Right_Step1 +MovementAction_Jump2Right_Step1: @ 0x08093CD4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093B20 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08093CE8 + movs r0, #0 + b _08093CF8 +_08093CE8: + ldrb r0, [r4, #2] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #2] + movs r0, #2 + strh r0, [r5, #0x32] + movs r0, #1 +_08093CF8: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_Jump2Right_Step1 + + thumb_func_start sub_08093D00 +sub_08093D00: @ 0x08093D00 + movs r2, #1 + strh r2, [r0, #0x32] + strh r1, [r0, #0x34] + bx lr + thumb_func_end sub_08093D00 + + thumb_func_start MovementAction_Delay_Step1 +MovementAction_Delay_Step1: @ 0x08093D08 + push {lr} + ldrh r0, [r1, #0x34] + subs r0, #1 + strh r0, [r1, #0x34] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08093D1A + movs r0, #0 + b _08093D20 +_08093D1A: + movs r0, #2 + strh r0, [r1, #0x32] + movs r0, #1 +_08093D20: + pop {r1} + bx r1 + thumb_func_end MovementAction_Delay_Step1 + + thumb_func_start MovementAction_Delay1_Step0 +MovementAction_Delay1_Step0: @ 0x08093D24 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r0, r4, #0 + movs r1, #1 + bl sub_08093D00 + adds r0, r5, #0 + adds r1, r4, #0 + bl MovementAction_Delay_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_Delay1_Step0 + + thumb_func_start MovementAction_Delay2_Step0 +MovementAction_Delay2_Step0: @ 0x08093D44 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r0, r4, #0 + movs r1, #2 + bl sub_08093D00 + adds r0, r5, #0 + adds r1, r4, #0 + bl MovementAction_Delay_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_Delay2_Step0 + + thumb_func_start MovementAction_Delay4_Step0 +MovementAction_Delay4_Step0: @ 0x08093D64 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r0, r4, #0 + movs r1, #4 + bl sub_08093D00 + adds r0, r5, #0 + adds r1, r4, #0 + bl MovementAction_Delay_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_Delay4_Step0 + + thumb_func_start MovementAction_Delay8_Step0 +MovementAction_Delay8_Step0: @ 0x08093D84 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r0, r4, #0 + movs r1, #8 + bl sub_08093D00 + adds r0, r5, #0 + adds r1, r4, #0 + bl MovementAction_Delay_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_Delay8_Step0 + + thumb_func_start MovementAction_Delay16_Step0 +MovementAction_Delay16_Step0: @ 0x08093DA4 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r0, r4, #0 + movs r1, #0x10 + bl sub_08093D00 + adds r0, r5, #0 + adds r1, r4, #0 + bl MovementAction_Delay_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_Delay16_Step0 + + thumb_func_start MovementAction_WalkFastDown_Step0 +MovementAction_WalkFastDown_Step0: @ 0x08093DC4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #1 + movs r3, #1 + bl do_go_anim + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkFastDown_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_WalkFastDown_Step0 + + thumb_func_start MovementAction_WalkFastDown_Step1 +MovementAction_WalkFastDown_Step1: @ 0x08093DE4 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08093DF6 + movs r0, #0 + b _08093DFC +_08093DF6: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_08093DFC: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkFastDown_Step1 + + thumb_func_start MovementAction_WalkFastUp_Step0 +MovementAction_WalkFastUp_Step0: @ 0x08093E04 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #2 + movs r3, #1 + bl do_go_anim + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkFastUp_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_WalkFastUp_Step0 + + thumb_func_start MovementAction_WalkFastUp_Step1 +MovementAction_WalkFastUp_Step1: @ 0x08093E24 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08093E36 + movs r0, #0 + b _08093E3C +_08093E36: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_08093E3C: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkFastUp_Step1 + + thumb_func_start MovementAction_WalkFastLeft_Step0 +MovementAction_WalkFastLeft_Step0: @ 0x08093E44 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #3 + movs r3, #1 + bl do_go_anim + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkFastLeft_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_WalkFastLeft_Step0 + + thumb_func_start MovementAction_WalkFastLeft_Step1 +MovementAction_WalkFastLeft_Step1: @ 0x08093E64 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08093E76 + movs r0, #0 + b _08093E7C +_08093E76: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_08093E7C: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkFastLeft_Step1 + + thumb_func_start MovementAction_WalkFastRight_Step0 +MovementAction_WalkFastRight_Step0: @ 0x08093E84 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #4 + movs r3, #1 + bl do_go_anim + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkFastRight_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_WalkFastRight_Step0 + + thumb_func_start MovementAction_WalkFastRight_Step1 +MovementAction_WalkFastRight_Step1: @ 0x08093EA4 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08093EB6 + movs r0, #0 + b _08093EBC +_08093EB6: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_08093EBC: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkFastRight_Step1 + + thumb_func_start sub_08093EC4 +sub_08093EC4: @ 0x08093EC4 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + mov r8, r0 + adds r6, r1, #0 + adds r1, r2, #0 + adds r4, r3, #0 + ldr r5, [sp, #0x14] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + bl SetEventObjectDirection + mov r0, r8 + adds r1, r6, #0 + adds r2, r4, #0 + bl npc_apply_anim_looping + adds r2, r6, #0 + adds r2, #0x2c + ldrb r1, [r2] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + movs r0, #1 + strh r0, [r6, #0x32] + strh r5, [r6, #0x34] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_08093EC4 + + thumb_func_start MovementAction_WalkInPlace_Step1 +MovementAction_WalkInPlace_Step1: @ 0x08093F0C + push {lr} + ldrh r0, [r1, #0x34] + subs r0, #1 + strh r0, [r1, #0x34] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08093F1E + movs r0, #0 + b _08093F30 +_08093F1E: + movs r0, #2 + strh r0, [r1, #0x32] + adds r2, r1, #0 + adds r2, #0x2c + ldrb r0, [r2] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2] + movs r0, #1 +_08093F30: + pop {r1} + bx r1 + thumb_func_end MovementAction_WalkInPlace_Step1 + + thumb_func_start MovementAction_WalkInPlaceSlow_Step1 +MovementAction_WalkInPlaceSlow_Step1: @ 0x08093F34 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + ldrh r1, [r4, #0x34] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08093F5E + adds r3, r4, #0 + adds r3, #0x2c + ldrb r2, [r3] + lsls r1, r2, #0x1a + lsrs r1, r1, #0x1a + adds r1, #1 + movs r0, #0x3f + ands r1, r0 + movs r0, #0x40 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_08093F5E: + adds r0, r5, #0 + adds r1, r4, #0 + bl MovementAction_WalkInPlace_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_WalkInPlaceSlow_Step1 + + thumb_func_start MovementAction_WalkInPlaceSlowDown_Step0 +MovementAction_WalkInPlaceSlowDown_Step0: @ 0x08093F70 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #1 + bl GetJumpInPlaceTurnAroundMovementAction + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #0x20 + str r0, [sp] + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #1 + bl sub_08093EC4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkInPlaceSlow_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkInPlaceSlowDown_Step0 + + thumb_func_start MovementAction_WalkInPlaceSlowUp_Step0 +MovementAction_WalkInPlaceSlowUp_Step0: @ 0x08093FA8 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #2 + bl GetJumpInPlaceTurnAroundMovementAction + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #0x20 + str r0, [sp] + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #2 + bl sub_08093EC4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkInPlaceSlow_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkInPlaceSlowUp_Step0 + + thumb_func_start MovementAction_WalkInPlaceSlowLeft_Step0 +MovementAction_WalkInPlaceSlowLeft_Step0: @ 0x08093FE0 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #3 + bl GetJumpInPlaceTurnAroundMovementAction + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #0x20 + str r0, [sp] + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #3 + bl sub_08093EC4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkInPlaceSlow_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkInPlaceSlowLeft_Step0 + + thumb_func_start MovementAction_WalkInPlaceSlowRight_Step0 +MovementAction_WalkInPlaceSlowRight_Step0: @ 0x08094018 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #4 + bl GetJumpInPlaceTurnAroundMovementAction + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #0x20 + str r0, [sp] + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #4 + bl sub_08093EC4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkInPlaceSlow_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkInPlaceSlowRight_Step0 + + thumb_func_start MovementAction_WalkInPlaceNormalDown_Step0 +MovementAction_WalkInPlaceNormalDown_Step0: @ 0x08094050 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #1 + bl GetJumpInPlaceTurnAroundMovementAction + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #0x10 + str r0, [sp] + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #1 + bl sub_08093EC4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkInPlace_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkInPlaceNormalDown_Step0 + + thumb_func_start MovementAction_WalkInPlaceNormalUp_Step0 +MovementAction_WalkInPlaceNormalUp_Step0: @ 0x08094088 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #2 + bl GetJumpInPlaceTurnAroundMovementAction + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #0x10 + str r0, [sp] + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #2 + bl sub_08093EC4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkInPlace_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkInPlaceNormalUp_Step0 + + thumb_func_start MovementAction_WalkInPlaceNormalLeft_Step0 +MovementAction_WalkInPlaceNormalLeft_Step0: @ 0x080940C0 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #3 + bl GetJumpInPlaceTurnAroundMovementAction + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #0x10 + str r0, [sp] + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #3 + bl sub_08093EC4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkInPlace_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkInPlaceNormalLeft_Step0 + + thumb_func_start MovementAction_WalkInPlaceNormalRight_Step0 +MovementAction_WalkInPlaceNormalRight_Step0: @ 0x080940F8 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #4 + bl GetJumpInPlaceTurnAroundMovementAction + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #0x10 + str r0, [sp] + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #4 + bl sub_08093EC4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkInPlace_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkInPlaceNormalRight_Step0 + + thumb_func_start MovementAction_WalkInPlaceFastDown_Step0 +MovementAction_WalkInPlaceFastDown_Step0: @ 0x08094130 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #1 + bl GetJumpMovementAction + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #8 + str r0, [sp] + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #1 + bl sub_08093EC4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkInPlace_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkInPlaceFastDown_Step0 + + thumb_func_start MovementAction_WalkInPlaceFastUp_Step0 +MovementAction_WalkInPlaceFastUp_Step0: @ 0x08094168 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #2 + bl GetJumpMovementAction + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #8 + str r0, [sp] + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #2 + bl sub_08093EC4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkInPlace_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkInPlaceFastUp_Step0 + + thumb_func_start MovementAction_WalkInPlaceFastLeft_Step0 +MovementAction_WalkInPlaceFastLeft_Step0: @ 0x080941A0 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #3 + bl GetJumpMovementAction + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #8 + str r0, [sp] + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #3 + bl sub_08093EC4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkInPlace_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkInPlaceFastLeft_Step0 + + thumb_func_start MovementAction_WalkInPlaceFastRight_Step0 +MovementAction_WalkInPlaceFastRight_Step0: @ 0x080941D8 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #4 + bl GetJumpMovementAction + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #8 + str r0, [sp] + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #4 + bl sub_08093EC4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkInPlace_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkInPlaceFastRight_Step0 + + thumb_func_start MovementAction_WalkInPlaceFastestDown_Step0 +MovementAction_WalkInPlaceFastestDown_Step0: @ 0x08094210 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #1 + bl GetJumpSpecialMovementAction + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #4 + str r0, [sp] + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #1 + bl sub_08093EC4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkInPlace_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkInPlaceFastestDown_Step0 + + thumb_func_start MovementAction_WalkInPlaceFastestUp_Step0 +MovementAction_WalkInPlaceFastestUp_Step0: @ 0x08094248 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #2 + bl GetJumpSpecialMovementAction + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #4 + str r0, [sp] + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #2 + bl sub_08093EC4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkInPlace_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkInPlaceFastestUp_Step0 + + thumb_func_start MovementAction_WalkInPlaceFastestLeft_Step0 +MovementAction_WalkInPlaceFastestLeft_Step0: @ 0x08094280 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #3 + bl GetJumpSpecialMovementAction + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #4 + str r0, [sp] + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #3 + bl sub_08093EC4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkInPlace_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkInPlaceFastestLeft_Step0 + + thumb_func_start MovementAction_WalkInPlaceFastestRight_Step0 +MovementAction_WalkInPlaceFastestRight_Step0: @ 0x080942B8 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #4 + bl GetJumpSpecialMovementAction + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #4 + str r0, [sp] + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #4 + bl sub_08093EC4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkInPlace_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkInPlaceFastestRight_Step0 + + thumb_func_start MovementAction_RideWaterCurrentDown_Step0 +MovementAction_RideWaterCurrentDown_Step0: @ 0x080942F0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #1 + movs r3, #2 + bl do_go_anim + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_RideWaterCurrentDown_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_RideWaterCurrentDown_Step0 + + thumb_func_start MovementAction_RideWaterCurrentDown_Step1 +MovementAction_RideWaterCurrentDown_Step1: @ 0x08094310 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08094322 + movs r0, #0 + b _08094328 +_08094322: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_08094328: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_RideWaterCurrentDown_Step1 + + thumb_func_start MovementAction_RideWaterCurrentUp_Step0 +MovementAction_RideWaterCurrentUp_Step0: @ 0x08094330 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #2 + movs r3, #2 + bl do_go_anim + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_RideWaterCurrentUp_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_RideWaterCurrentUp_Step0 + + thumb_func_start MovementAction_RideWaterCurrentUp_Step1 +MovementAction_RideWaterCurrentUp_Step1: @ 0x08094350 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08094362 + movs r0, #0 + b _08094368 +_08094362: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_08094368: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_RideWaterCurrentUp_Step1 + + thumb_func_start MovementAction_RideWaterCurrentLeft_Step0 +MovementAction_RideWaterCurrentLeft_Step0: @ 0x08094370 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #3 + movs r3, #2 + bl do_go_anim + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_RideWaterCurrentLeft_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_RideWaterCurrentLeft_Step0 + + thumb_func_start MovementAction_RideWaterCurrentLeft_Step1 +MovementAction_RideWaterCurrentLeft_Step1: @ 0x08094390 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080943A2 + movs r0, #0 + b _080943A8 +_080943A2: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_080943A8: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_RideWaterCurrentLeft_Step1 + + thumb_func_start MovementAction_RideWaterCurrentRight_Step0 +MovementAction_RideWaterCurrentRight_Step0: @ 0x080943B0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #4 + movs r3, #2 + bl do_go_anim + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_RideWaterCurrentRight_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_RideWaterCurrentRight_Step0 + + thumb_func_start MovementAction_RideWaterCurrentRight_Step1 +MovementAction_RideWaterCurrentRight_Step1: @ 0x080943D0 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080943E2 + movs r0, #0 + b _080943E8 +_080943E2: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_080943E8: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_RideWaterCurrentRight_Step1 + + thumb_func_start MovementAction_WalkFastestDown_Step0 +MovementAction_WalkFastestDown_Step0: @ 0x080943F0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #1 + movs r3, #3 + bl do_go_anim + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkFastestDown_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_WalkFastestDown_Step0 + + thumb_func_start MovementAction_WalkFastestDown_Step1 +MovementAction_WalkFastestDown_Step1: @ 0x08094410 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08094422 + movs r0, #0 + b _08094428 +_08094422: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_08094428: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkFastestDown_Step1 + + thumb_func_start MovementAction_WalkFastestUp_Step0 +MovementAction_WalkFastestUp_Step0: @ 0x08094430 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #2 + movs r3, #3 + bl do_go_anim + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkFastestUp_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_WalkFastestUp_Step0 + + thumb_func_start MovementAction_WalkFastestUp_Step1 +MovementAction_WalkFastestUp_Step1: @ 0x08094450 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08094462 + movs r0, #0 + b _08094468 +_08094462: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_08094468: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkFastestUp_Step1 + + thumb_func_start MovementAction_WalkFastestLeft_Step0 +MovementAction_WalkFastestLeft_Step0: @ 0x08094470 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #3 + movs r3, #3 + bl do_go_anim + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkFastestLeft_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_WalkFastestLeft_Step0 + + thumb_func_start MovementAction_WalkFastestLeft_Step1 +MovementAction_WalkFastestLeft_Step1: @ 0x08094490 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080944A2 + movs r0, #0 + b _080944A8 +_080944A2: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_080944A8: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkFastestLeft_Step1 + + thumb_func_start MovementAction_WalkFastestRight_Step0 +MovementAction_WalkFastestRight_Step0: @ 0x080944B0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #4 + movs r3, #3 + bl do_go_anim + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkFastestRight_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_WalkFastestRight_Step0 + + thumb_func_start MovementAction_WalkFastestRight_Step1 +MovementAction_WalkFastestRight_Step1: @ 0x080944D0 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080944E2 + movs r0, #0 + b _080944E8 +_080944E2: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_080944E8: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkFastestRight_Step1 + + thumb_func_start MovementAction_SlideDown_Step0 +MovementAction_SlideDown_Step0: @ 0x080944F0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #1 + movs r3, #4 + bl do_go_anim + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_SlideDown_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_SlideDown_Step0 + + thumb_func_start MovementAction_SlideDown_Step1 +MovementAction_SlideDown_Step1: @ 0x08094510 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08094522 + movs r0, #0 + b _08094528 +_08094522: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_08094528: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_SlideDown_Step1 + + thumb_func_start MovementAction_SlideUp_Step0 +MovementAction_SlideUp_Step0: @ 0x08094530 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #2 + movs r3, #4 + bl do_go_anim + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_SlideUp_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_SlideUp_Step0 + + thumb_func_start MovementAction_SlideUp_Step1 +MovementAction_SlideUp_Step1: @ 0x08094550 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08094562 + movs r0, #0 + b _08094568 +_08094562: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_08094568: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_SlideUp_Step1 + + thumb_func_start MovementAction_SlideLeft_Step0 +MovementAction_SlideLeft_Step0: @ 0x08094570 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #3 + movs r3, #4 + bl do_go_anim + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_SlideLeft_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_SlideLeft_Step0 + + thumb_func_start MovementAction_SlideLeft_Step1 +MovementAction_SlideLeft_Step1: @ 0x08094590 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080945A2 + movs r0, #0 + b _080945A8 +_080945A2: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_080945A8: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_SlideLeft_Step1 + + thumb_func_start MovementAction_SlideRight_Step0 +MovementAction_SlideRight_Step0: @ 0x080945B0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #4 + movs r3, #4 + bl do_go_anim + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_SlideRight_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_SlideRight_Step0 + + thumb_func_start MovementAction_SlideRight_Step1 +MovementAction_SlideRight_Step1: @ 0x080945D0 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080945E2 + movs r0, #0 + b _080945E8 +_080945E2: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_080945E8: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_SlideRight_Step1 + + thumb_func_start MovementAction_PlayerRunDown_Step0 +MovementAction_PlayerRunDown_Step0: @ 0x080945F0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #1 + bl StartRunningAnim + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_PlayerRunDown_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_PlayerRunDown_Step0 + + thumb_func_start MovementAction_PlayerRunDown_Step1 +MovementAction_PlayerRunDown_Step1: @ 0x08094610 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08094622 + movs r0, #0 + b _08094628 +_08094622: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_08094628: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_PlayerRunDown_Step1 + + thumb_func_start MovementAction_PlayerRunUp_Step0 +MovementAction_PlayerRunUp_Step0: @ 0x08094630 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #2 + bl StartRunningAnim + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_PlayerRunUp_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_PlayerRunUp_Step0 + + thumb_func_start MovementAction_PlayerRunUp_Step1 +MovementAction_PlayerRunUp_Step1: @ 0x08094650 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08094662 + movs r0, #0 + b _08094668 +_08094662: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_08094668: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_PlayerRunUp_Step1 + + thumb_func_start MovementAction_PlayerRunLeft_Step0 +MovementAction_PlayerRunLeft_Step0: @ 0x08094670 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #3 + bl StartRunningAnim + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_PlayerRunLeft_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_PlayerRunLeft_Step0 + + thumb_func_start MovementAction_PlayerRunLeft_Step1 +MovementAction_PlayerRunLeft_Step1: @ 0x08094690 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080946A2 + movs r0, #0 + b _080946A8 +_080946A2: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_080946A8: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_PlayerRunLeft_Step1 + + thumb_func_start MovementAction_PlayerRunRight_Step0 +MovementAction_PlayerRunRight_Step0: @ 0x080946B0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #4 + bl StartRunningAnim + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_PlayerRunRight_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_PlayerRunRight_Step0 + + thumb_func_start MovementAction_PlayerRunRight_Step1 +MovementAction_PlayerRunRight_Step1: @ 0x080946D0 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080946E2 + movs r0, #0 + b _080946E8 +_080946E2: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_080946E8: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_PlayerRunRight_Step1 + + thumb_func_start StartSpriteAnimInDirection +StartSpriteAnimInDirection: @ 0x080946F0 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + adds r4, r2, #0 + adds r1, r3, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + movs r2, #0 + bl SetAndStartSpriteAnim + adds r0, r6, #0 + adds r1, r4, #0 + bl SetEventObjectDirection + movs r0, #1 + strh r0, [r5, #0x32] + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end StartSpriteAnimInDirection + + thumb_func_start MovementAction_StartAnimInDirection_Step0 +MovementAction_StartAnimInDirection_Step0: @ 0x0809471C + push {lr} + ldrb r2, [r0, #0x18] + lsrs r2, r2, #4 + adds r3, r1, #0 + adds r3, #0x2a + ldrb r3, [r3] + bl StartSpriteAnimInDirection + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_StartAnimInDirection_Step0 + + thumb_func_start MovementAction_WaitSpriteAnim +MovementAction_WaitSpriteAnim: @ 0x08094734 + push {r4, lr} + adds r4, r1, #0 + adds r0, r4, #0 + bl SpriteAnimEnded + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08094748 + movs r0, #0 + b _0809474E +_08094748: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_0809474E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end MovementAction_WaitSpriteAnim + + thumb_func_start sub_08094754 +sub_08094754: @ 0x08094754 + push {r4, r5, lr} + sub sp, #4 + adds r5, r1, #0 + lsls r4, r2, #0x18 + lsrs r4, r4, #0x18 + movs r1, #0 + str r1, [sp] + adds r1, r5, #0 + adds r2, r4, #0 + movs r3, #1 + bl sub_08093934 + adds r0, r4, #0 + bl GetRideWaterCurrentMovementAction + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl StartSpriteAnim + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08094754 + + thumb_func_start MovementAction_JumpSpecialDown_Step0 +MovementAction_JumpSpecialDown_Step0: @ 0x08094788 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #1 + bl sub_08094754 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_JumpSpecialDown_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_JumpSpecialDown_Step0 + + thumb_func_start MovementAction_JumpSpecialDown_Step1 +MovementAction_JumpSpecialDown_Step1: @ 0x080947A8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093B38 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080947BC + movs r0, #0 + b _080947CA +_080947BC: + movs r0, #2 + strh r0, [r5, #0x32] + ldrb r1, [r4] + subs r0, #0x23 + ands r0, r1 + strb r0, [r4] + movs r0, #1 +_080947CA: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_JumpSpecialDown_Step1 + + thumb_func_start MovementAction_JumpSpecialUp_Step0 +MovementAction_JumpSpecialUp_Step0: @ 0x080947D0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #2 + bl sub_08094754 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_JumpSpecialUp_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_JumpSpecialUp_Step0 + + thumb_func_start MovementAction_JumpSpecialUp_Step1 +MovementAction_JumpSpecialUp_Step1: @ 0x080947F0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093B38 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08094804 + movs r0, #0 + b _08094812 +_08094804: + movs r0, #2 + strh r0, [r5, #0x32] + ldrb r1, [r4] + subs r0, #0x23 + ands r0, r1 + strb r0, [r4] + movs r0, #1 +_08094812: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_JumpSpecialUp_Step1 + + thumb_func_start MovementAction_JumpSpecialLeft_Step0 +MovementAction_JumpSpecialLeft_Step0: @ 0x08094818 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #3 + bl sub_08094754 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_JumpSpecialLeft_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_JumpSpecialLeft_Step0 + + thumb_func_start MovementAction_JumpSpecialLeft_Step1 +MovementAction_JumpSpecialLeft_Step1: @ 0x08094838 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093B38 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809484C + movs r0, #0 + b _0809485A +_0809484C: + movs r0, #2 + strh r0, [r5, #0x32] + ldrb r1, [r4] + subs r0, #0x23 + ands r0, r1 + strb r0, [r4] + movs r0, #1 +_0809485A: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_JumpSpecialLeft_Step1 + + thumb_func_start MovementAction_JumpSpecialRight_Step0 +MovementAction_JumpSpecialRight_Step0: @ 0x08094860 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #4 + bl sub_08094754 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_JumpSpecialRight_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_JumpSpecialRight_Step0 + + thumb_func_start MovementAction_JumpSpecialRight_Step1 +MovementAction_JumpSpecialRight_Step1: @ 0x08094880 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093B38 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08094894 + movs r0, #0 + b _080948A2 +_08094894: + movs r0, #2 + strh r0, [r5, #0x32] + ldrb r1, [r4] + subs r0, #0x23 + ands r0, r1 + strb r0, [r4] + movs r0, #1 +_080948A2: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_JumpSpecialRight_Step1 + + thumb_func_start MovementAction_FacePlayer_Step0 +MovementAction_FacePlayer_Step0: @ 0x080948A8 + push {r4, r5, r6, lr} + sub sp, #4 + adds r5, r0, #0 + adds r6, r1, #0 + movs r0, #0xff + movs r1, #0 + movs r2, #0 + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080948F2 + movs r1, #0x10 + ldrsh r0, [r5, r1] + movs r2, #0x12 + ldrsh r1, [r5, r2] + ldr r4, _08094900 + mov r2, sp + ldrb r2, [r2] + lsls r3, r2, #3 + adds r3, r3, r2 + lsls r3, r3, #2 + adds r3, r3, r4 + movs r4, #0x10 + ldrsh r2, [r3, r4] + movs r4, #0x12 + ldrsh r3, [r3, r4] + bl GetDirectionToFace + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r5, #0 + adds r1, r6, #0 + bl FaceDirection +_080948F2: + movs r0, #1 + strh r0, [r6, #0x32] + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08094900: .4byte 0x02036FF0 + thumb_func_end MovementAction_FacePlayer_Step0 + + thumb_func_start MovementAction_FaceAwayPlayer_Step0 +MovementAction_FaceAwayPlayer_Step0: @ 0x08094904 + push {r4, r5, r6, lr} + sub sp, #4 + adds r5, r0, #0 + adds r6, r1, #0 + movs r0, #0xff + movs r1, #0 + movs r2, #0 + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08094956 + movs r1, #0x10 + ldrsh r0, [r5, r1] + movs r2, #0x12 + ldrsh r1, [r5, r2] + ldr r4, _08094964 + mov r2, sp + ldrb r2, [r2] + lsls r3, r2, #3 + adds r3, r3, r2 + lsls r3, r3, #2 + adds r3, r3, r4 + movs r4, #0x10 + ldrsh r2, [r3, r4] + movs r4, #0x12 + ldrsh r3, [r3, r4] + bl GetDirectionToFace + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetOppositeDirection + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r5, #0 + adds r1, r6, #0 + bl FaceDirection +_08094956: + movs r0, #1 + strh r0, [r6, #0x32] + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08094964: .4byte 0x02036FF0 + thumb_func_end MovementAction_FaceAwayPlayer_Step0 + + thumb_func_start MovementAction_LockFacingDirection_Step0 +MovementAction_LockFacingDirection_Step0: @ 0x08094968 + ldrb r2, [r0, #1] + movs r3, #2 + orrs r2, r3 + strb r2, [r0, #1] + movs r0, #1 + strh r0, [r1, #0x32] + bx lr + .align 2, 0 + thumb_func_end MovementAction_LockFacingDirection_Step0 + + thumb_func_start MovementAction_UnlockFacingDirection_Step0 +MovementAction_UnlockFacingDirection_Step0: @ 0x08094978 + ldrb r3, [r0, #1] + movs r2, #3 + rsbs r2, r2, #0 + ands r2, r3 + strb r2, [r0, #1] + movs r0, #1 + strh r0, [r1, #0x32] + bx lr + thumb_func_end MovementAction_UnlockFacingDirection_Step0 + + thumb_func_start MovementAction_JumpDown_Step0 +MovementAction_JumpDown_Step0: @ 0x08094988 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #2 + str r0, [sp] + adds r0, r4, #0 + movs r2, #1 + movs r3, #1 + bl maybe_shadow_1 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_JumpDown_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_JumpDown_Step0 + + thumb_func_start MovementAction_JumpDown_Step1 +MovementAction_JumpDown_Step1: @ 0x080949B4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093B20 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080949C8 + movs r0, #0 + b _080949D8 +_080949C8: + ldrb r0, [r4, #2] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #2] + movs r0, #2 + strh r0, [r5, #0x32] + movs r0, #1 +_080949D8: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_JumpDown_Step1 + + thumb_func_start MovementAction_JumpUp_Step0 +MovementAction_JumpUp_Step0: @ 0x080949E0 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #2 + str r0, [sp] + adds r0, r4, #0 + movs r2, #2 + movs r3, #1 + bl maybe_shadow_1 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_JumpUp_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_JumpUp_Step0 + + thumb_func_start MovementAction_JumpUp_Step1 +MovementAction_JumpUp_Step1: @ 0x08094A0C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093B20 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08094A20 + movs r0, #0 + b _08094A30 +_08094A20: + ldrb r0, [r4, #2] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #2] + movs r0, #2 + strh r0, [r5, #0x32] + movs r0, #1 +_08094A30: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_JumpUp_Step1 + + thumb_func_start MovementAction_JumpLeft_Step0 +MovementAction_JumpLeft_Step0: @ 0x08094A38 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #2 + str r0, [sp] + adds r0, r4, #0 + movs r2, #3 + movs r3, #1 + bl maybe_shadow_1 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_JumpLeft_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_JumpLeft_Step0 + + thumb_func_start MovementAction_JumpLeft_Step1 +MovementAction_JumpLeft_Step1: @ 0x08094A64 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093B20 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08094A78 + movs r0, #0 + b _08094A88 +_08094A78: + ldrb r0, [r4, #2] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #2] + movs r0, #2 + strh r0, [r5, #0x32] + movs r0, #1 +_08094A88: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_JumpLeft_Step1 + + thumb_func_start MovementAction_JumpRight_Step0 +MovementAction_JumpRight_Step0: @ 0x08094A90 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #2 + str r0, [sp] + adds r0, r4, #0 + movs r2, #4 + movs r3, #1 + bl maybe_shadow_1 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_JumpRight_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_JumpRight_Step0 + + thumb_func_start MovementAction_JumpRight_Step1 +MovementAction_JumpRight_Step1: @ 0x08094ABC + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093B20 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08094AD0 + movs r0, #0 + b _08094AE0 +_08094AD0: + ldrb r0, [r4, #2] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #2] + movs r0, #2 + strh r0, [r5, #0x32] + movs r0, #1 +_08094AE0: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_JumpRight_Step1 + + thumb_func_start MovementAction_JumpInPlaceDown_Step0 +MovementAction_JumpInPlaceDown_Step0: @ 0x08094AE8 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #0 + str r0, [sp] + adds r0, r4, #0 + movs r2, #1 + movs r3, #0 + bl maybe_shadow_1 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_JumpInPlaceDown_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_JumpInPlaceDown_Step0 + + thumb_func_start MovementAction_JumpInPlaceDown_Step1 +MovementAction_JumpInPlaceDown_Step1: @ 0x08094B14 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093B20 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08094B28 + movs r0, #0 + b _08094B38 +_08094B28: + ldrb r0, [r4, #2] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #2] + movs r0, #2 + strh r0, [r5, #0x32] + movs r0, #1 +_08094B38: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_JumpInPlaceDown_Step1 + + thumb_func_start MovementAction_JumpInPlaceUp_Step0 +MovementAction_JumpInPlaceUp_Step0: @ 0x08094B40 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #0 + str r0, [sp] + adds r0, r4, #0 + movs r2, #2 + movs r3, #0 + bl maybe_shadow_1 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_JumpInPlaceUp_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_JumpInPlaceUp_Step0 + + thumb_func_start MovementAction_JumpInPlaceUp_Step1 +MovementAction_JumpInPlaceUp_Step1: @ 0x08094B6C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093B20 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08094B80 + movs r0, #0 + b _08094B90 +_08094B80: + ldrb r0, [r4, #2] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #2] + movs r0, #2 + strh r0, [r5, #0x32] + movs r0, #1 +_08094B90: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_JumpInPlaceUp_Step1 + + thumb_func_start MovementAction_JumpInPlaceLeft_Step0 +MovementAction_JumpInPlaceLeft_Step0: @ 0x08094B98 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #0 + str r0, [sp] + adds r0, r4, #0 + movs r2, #3 + movs r3, #0 + bl maybe_shadow_1 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_JumpInPlaceLeft_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_JumpInPlaceLeft_Step0 + + thumb_func_start MovementAction_JumpInPlaceLeft_Step1 +MovementAction_JumpInPlaceLeft_Step1: @ 0x08094BC4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093B20 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08094BD8 + movs r0, #0 + b _08094BE8 +_08094BD8: + ldrb r0, [r4, #2] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #2] + movs r0, #2 + strh r0, [r5, #0x32] + movs r0, #1 +_08094BE8: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_JumpInPlaceLeft_Step1 + + thumb_func_start MovementAction_JumpInPlaceRight_Step0 +MovementAction_JumpInPlaceRight_Step0: @ 0x08094BF0 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #0 + str r0, [sp] + adds r0, r4, #0 + movs r2, #4 + movs r3, #0 + bl maybe_shadow_1 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_JumpInPlaceRight_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_JumpInPlaceRight_Step0 + + thumb_func_start MovementAction_JumpInPlaceRight_Step1 +MovementAction_JumpInPlaceRight_Step1: @ 0x08094C1C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093B20 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08094C30 + movs r0, #0 + b _08094C40 +_08094C30: + ldrb r0, [r4, #2] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #2] + movs r0, #2 + strh r0, [r5, #0x32] + movs r0, #1 +_08094C40: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_JumpInPlaceRight_Step1 + + thumb_func_start MovementAction_JumpInPlaceDownUp_Step0 +MovementAction_JumpInPlaceDownUp_Step0: @ 0x08094C48 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #2 + str r0, [sp] + adds r0, r4, #0 + movs r2, #1 + movs r3, #0 + bl maybe_shadow_1 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_JumpInPlaceDownUp_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_JumpInPlaceDownUp_Step0 + + thumb_func_start MovementAction_JumpInPlaceDownUp_Step1 +MovementAction_JumpInPlaceDownUp_Step1: @ 0x08094C74 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093B50 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08094C88 + movs r0, #0 + b _08094C98 +_08094C88: + ldrb r0, [r4, #2] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #2] + movs r0, #2 + strh r0, [r5, #0x32] + movs r0, #1 +_08094C98: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_JumpInPlaceDownUp_Step1 + + thumb_func_start MovementAction_JumpInPlaceUpDown_Step0 +MovementAction_JumpInPlaceUpDown_Step0: @ 0x08094CA0 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #2 + str r0, [sp] + adds r0, r4, #0 + movs r2, #2 + movs r3, #0 + bl maybe_shadow_1 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_JumpInPlaceUpDown_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_JumpInPlaceUpDown_Step0 + + thumb_func_start MovementAction_JumpInPlaceUpDown_Step1 +MovementAction_JumpInPlaceUpDown_Step1: @ 0x08094CCC + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093B50 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08094CE0 + movs r0, #0 + b _08094CF0 +_08094CE0: + ldrb r0, [r4, #2] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #2] + movs r0, #2 + strh r0, [r5, #0x32] + movs r0, #1 +_08094CF0: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_JumpInPlaceUpDown_Step1 + + thumb_func_start MovementAction_JumpInPlaceLeftRight_Step0 +MovementAction_JumpInPlaceLeftRight_Step0: @ 0x08094CF8 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #2 + str r0, [sp] + adds r0, r4, #0 + movs r2, #3 + movs r3, #0 + bl maybe_shadow_1 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_JumpInPlaceLeftRight_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_JumpInPlaceLeftRight_Step0 + + thumb_func_start MovementAction_JumpInPlaceLeftRight_Step1 +MovementAction_JumpInPlaceLeftRight_Step1: @ 0x08094D24 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093B50 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08094D38 + movs r0, #0 + b _08094D48 +_08094D38: + ldrb r0, [r4, #2] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #2] + movs r0, #2 + strh r0, [r5, #0x32] + movs r0, #1 +_08094D48: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_JumpInPlaceLeftRight_Step1 + + thumb_func_start MovementAction_JumpInPlaceRightLeft_Step0 +MovementAction_JumpInPlaceRightLeft_Step0: @ 0x08094D50 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #2 + str r0, [sp] + adds r0, r4, #0 + movs r2, #4 + movs r3, #0 + bl maybe_shadow_1 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_JumpInPlaceRightLeft_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_JumpInPlaceRightLeft_Step0 + + thumb_func_start MovementAction_JumpInPlaceRightLeft_Step1 +MovementAction_JumpInPlaceRightLeft_Step1: @ 0x08094D7C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093B50 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08094D90 + movs r0, #0 + b _08094DA0 +_08094D90: + ldrb r0, [r4, #2] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #2] + movs r0, #2 + strh r0, [r5, #0x32] + movs r0, #1 +_08094DA0: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_JumpInPlaceRightLeft_Step1 + + thumb_func_start MovementAction_FaceOriginalDirection_Step0 +MovementAction_FaceOriginalDirection_Step0: @ 0x08094DA8 + push {lr} + ldr r3, _08094DBC + ldrb r2, [r0, #6] + adds r2, r2, r3 + ldrb r2, [r2] + bl FaceDirection + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 +_08094DBC: .4byte 0x084DDA21 + thumb_func_end MovementAction_FaceOriginalDirection_Step0 + + thumb_func_start MovementAction_NurseJoyBowDown_Step0 +MovementAction_NurseJoyBowDown_Step0: @ 0x08094DC0 + push {lr} + movs r2, #1 + movs r3, #0x14 + bl StartSpriteAnimInDirection + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end MovementAction_NurseJoyBowDown_Step0 + + thumb_func_start MovementAction_EnableJumpLandingGroundEffect_Step0 +MovementAction_EnableJumpLandingGroundEffect_Step0: @ 0x08094DD0 + ldrb r3, [r0, #3] + movs r2, #3 + rsbs r2, r2, #0 + ands r2, r3 + strb r2, [r0, #3] + movs r0, #1 + strh r0, [r1, #0x32] + bx lr + thumb_func_end MovementAction_EnableJumpLandingGroundEffect_Step0 + + thumb_func_start MovementAction_DisableJumpLandingGroundEffect_Step0 +MovementAction_DisableJumpLandingGroundEffect_Step0: @ 0x08094DE0 + ldrb r2, [r0, #3] + movs r3, #2 + orrs r2, r3 + strb r2, [r0, #3] + movs r0, #1 + strh r0, [r1, #0x32] + bx lr + .align 2, 0 + thumb_func_end MovementAction_DisableJumpLandingGroundEffect_Step0 + + thumb_func_start MovementAction_DisableAnimation_Step0 +MovementAction_DisableAnimation_Step0: @ 0x08094DF0 + ldrb r2, [r0, #1] + movs r3, #0x10 + orrs r2, r3 + strb r2, [r0, #1] + movs r0, #1 + strh r0, [r1, #0x32] + bx lr + .align 2, 0 + thumb_func_end MovementAction_DisableAnimation_Step0 + + thumb_func_start MovementAction_RestoreAnimation_Step0 +MovementAction_RestoreAnimation_Step0: @ 0x08094E00 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #5] + bl GetEventObjectGraphicsInfo + ldrb r1, [r0, #0xc] + lsls r1, r1, #0x19 + lsrs r1, r1, #0x1f + lsls r1, r1, #4 + ldrb r2, [r4, #1] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #1] + movs r0, #1 + strh r0, [r5, #0x32] + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_RestoreAnimation_Step0 + + thumb_func_start MovementAction_SetInvisible_Step0 +MovementAction_SetInvisible_Step0: @ 0x08094E2C + ldrb r2, [r0, #1] + movs r3, #0x20 + orrs r2, r3 + strb r2, [r0, #1] + movs r0, #1 + strh r0, [r1, #0x32] + bx lr + .align 2, 0 + thumb_func_end MovementAction_SetInvisible_Step0 + + thumb_func_start MovementAction_SetVisible_Step0 +MovementAction_SetVisible_Step0: @ 0x08094E3C + ldrb r3, [r0, #1] + movs r2, #0x21 + rsbs r2, r2, #0 + ands r2, r3 + strb r2, [r0, #1] + movs r0, #1 + strh r0, [r1, #0x32] + bx lr + thumb_func_end MovementAction_SetVisible_Step0 + + thumb_func_start MovementAction_EmoteExclamationMark_Step0 +MovementAction_EmoteExclamationMark_Step0: @ 0x08094E4C + push {r4, lr} + adds r4, r1, #0 + ldr r1, _08094E6C + adds r2, r1, #4 + adds r3, r1, #0 + adds r3, #8 + bl EventObjectGetLocalIdAndMap + movs r0, #0 + bl FieldEffectStart + movs r0, #1 + strh r0, [r4, #0x32] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08094E6C: .4byte 0x020388A8 + thumb_func_end MovementAction_EmoteExclamationMark_Step0 + + thumb_func_start MovementAction_EmoteQuestionMark_Step0 +MovementAction_EmoteQuestionMark_Step0: @ 0x08094E70 + push {r4, lr} + adds r4, r1, #0 + ldr r1, _08094E90 + adds r2, r1, #4 + adds r3, r1, #0 + adds r3, #8 + bl EventObjectGetLocalIdAndMap + movs r0, #0x21 + bl FieldEffectStart + movs r0, #1 + strh r0, [r4, #0x32] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08094E90: .4byte 0x020388A8 + thumb_func_end MovementAction_EmoteQuestionMark_Step0 + + thumb_func_start MovementAction_EmoteHeart_Step0 +MovementAction_EmoteHeart_Step0: @ 0x08094E94 + push {r4, lr} + adds r4, r1, #0 + ldr r1, _08094EB4 + adds r2, r1, #4 + adds r3, r1, #0 + adds r3, #8 + bl EventObjectGetLocalIdAndMap + movs r0, #0x2e + bl FieldEffectStart + movs r0, #1 + strh r0, [r4, #0x32] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08094EB4: .4byte 0x020388A8 + thumb_func_end MovementAction_EmoteHeart_Step0 + + thumb_func_start MovementAction_RevealTrainer_Step0 +MovementAction_RevealTrainer_Step0: @ 0x08094EB8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #6] + cmp r0, #0x3f + bne _08094ECE + adds r0, r4, #0 + bl sub_080B3CD0 + movs r0, #0 + b _08094EF6 +_08094ECE: + subs r0, #0x39 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _08094EF0 + adds r0, r4, #0 + bl sub_08155CB4 + movs r0, #1 + strh r0, [r5, #0x32] + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_RevealTrainer_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _08094EF6 +_08094EF0: + movs r0, #2 + strh r0, [r5, #0x32] + movs r0, #1 +_08094EF6: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_RevealTrainer_Step0 + + thumb_func_start MovementAction_RevealTrainer_Step1 +MovementAction_RevealTrainer_Step1: @ 0x08094EFC + push {r4, lr} + adds r4, r1, #0 + bl sub_08155CDC + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08094F0E + movs r0, #0 + b _08094F14 +_08094F0E: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_08094F14: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_RevealTrainer_Step1 + + thumb_func_start MovementAction_RockSmashBreak_Step0 +MovementAction_RockSmashBreak_Step0: @ 0x08094F1C + push {r4, lr} + adds r4, r1, #0 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl SetAndStartSpriteAnim + movs r0, #1 + strh r0, [r4, #0x32] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_RockSmashBreak_Step0 + + thumb_func_start MovementAction_RockSmashBreak_Step1 +MovementAction_RockSmashBreak_Step1: @ 0x08094F38 + push {r4, lr} + adds r4, r1, #0 + adds r0, r4, #0 + bl SpriteAnimEnded + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08094F54 + adds r0, r4, #0 + movs r1, #0x20 + bl SetMovementDelay + movs r0, #2 + strh r0, [r4, #0x32] +_08094F54: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end MovementAction_RockSmashBreak_Step1 + + thumb_func_start MovementAction_RockSmashBreak_Step2 +MovementAction_RockSmashBreak_Step2: @ 0x08094F5C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r2, [r4, #1] + lsls r1, r2, #0x1a + lsrs r1, r1, #0x1f + movs r0, #1 + eors r1, r0 + lsls r1, r1, #5 + subs r0, #0x22 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #1] + adds r0, r5, #0 + bl WaitForMovementDelay + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08094F8E + ldrb r0, [r4, #1] + movs r1, #0x20 + orrs r0, r1 + strb r0, [r4, #1] + movs r0, #3 + strh r0, [r5, #0x32] +_08094F8E: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_RockSmashBreak_Step2 + + thumb_func_start MovementAction_CutTree_Step0 +MovementAction_CutTree_Step0: @ 0x08094F98 + push {r4, lr} + adds r4, r1, #0 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl SetAndStartSpriteAnim + movs r0, #1 + strh r0, [r4, #0x32] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_CutTree_Step0 + + thumb_func_start MovementAction_CutTree_Step1 +MovementAction_CutTree_Step1: @ 0x08094FB4 + push {r4, lr} + adds r4, r1, #0 + adds r0, r4, #0 + bl SpriteAnimEnded + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08094FD0 + adds r0, r4, #0 + movs r1, #0x20 + bl SetMovementDelay + movs r0, #2 + strh r0, [r4, #0x32] +_08094FD0: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end MovementAction_CutTree_Step1 + + thumb_func_start MovementAction_CutTree_Step2 +MovementAction_CutTree_Step2: @ 0x08094FD8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r2, [r4, #1] + lsls r1, r2, #0x1a + lsrs r1, r1, #0x1f + movs r0, #1 + eors r1, r0 + lsls r1, r1, #5 + subs r0, #0x22 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #1] + adds r0, r5, #0 + bl WaitForMovementDelay + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809500A + ldrb r0, [r4, #1] + movs r1, #0x20 + orrs r0, r1 + strb r0, [r4, #1] + movs r0, #3 + strh r0, [r5, #0x32] +_0809500A: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_CutTree_Step2 + + thumb_func_start MovementAction_SetFixedPriority_Step0 +MovementAction_SetFixedPriority_Step0: @ 0x08095014 + ldrb r2, [r0, #3] + movs r3, #4 + orrs r2, r3 + strb r2, [r0, #3] + movs r0, #1 + strh r0, [r1, #0x32] + bx lr + .align 2, 0 + thumb_func_end MovementAction_SetFixedPriority_Step0 + + thumb_func_start MovementAction_ClearFixedPriority_Step0 +MovementAction_ClearFixedPriority_Step0: @ 0x08095024 + ldrb r3, [r0, #3] + movs r2, #5 + rsbs r2, r2, #0 + ands r2, r3 + strb r2, [r0, #3] + movs r0, #1 + strh r0, [r1, #0x32] + bx lr + thumb_func_end MovementAction_ClearFixedPriority_Step0 + + thumb_func_start MovementAction_InitAffineAnim_Step0 +MovementAction_InitAffineAnim_Step0: @ 0x08095034 + push {r4, lr} + adds r4, r1, #0 + ldrb r0, [r4, #1] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #1] + adds r0, r4, #0 + bl InitSpriteAffineAnim + adds r2, r4, #0 + adds r2, #0x2c + ldrb r0, [r2] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2] + adds r4, #0x42 + ldrb r1, [r4] + movs r0, #0x3f + ands r0, r1 + strb r0, [r4] + movs r0, #1 + pop {r4} + pop {r1} + bx r1 + thumb_func_end MovementAction_InitAffineAnim_Step0 + + thumb_func_start MovementAction_ClearAffineAnim_Step0 +MovementAction_ClearAffineAnim_Step0: @ 0x08095064 + push {r4, lr} + adds r4, r1, #0 + ldrb r0, [r4, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + ldrb r0, [r4, #1] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #1] + lsrs r1, r1, #6 + ldrb r2, [r4, #3] + lsrs r2, r2, #6 + movs r3, #0 + adds r0, r4, #0 + bl CalcCenterToCornerVec + movs r0, #1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_ClearAffineAnim_Step0 + + thumb_func_start MovementAction_Unknown1_Step0 +MovementAction_Unknown1_Step0: @ 0x08095094 + ldrb r1, [r0, #3] + movs r2, #8 + orrs r1, r2 + strb r1, [r0, #3] + movs r0, #1 + bx lr + thumb_func_end MovementAction_Unknown1_Step0 + + thumb_func_start MovementAction_Unknown2_Step0 +MovementAction_Unknown2_Step0: @ 0x080950A0 + ldrb r2, [r0, #3] + movs r1, #9 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0, #3] + movs r0, #1 + bx lr + .align 2, 0 + thumb_func_end MovementAction_Unknown2_Step0 + + thumb_func_start MovementAction_WalkDownStartAffine_Step0 +MovementAction_WalkDownStartAffine_Step0: @ 0x080950B0 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + movs r2, #1 + bl sub_080934D0 + adds r2, r4, #0 + adds r2, #0x2c + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0 + bl StartSpriteAffineAnimIfDifferent + adds r0, r5, #0 + adds r1, r4, #0 + bl MovementAction_WalkDownStartAffine_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkDownStartAffine_Step0 + + thumb_func_start MovementAction_WalkDownStartAffine_Step1 +MovementAction_WalkDownStartAffine_Step1: @ 0x080950E4 + push {r4, lr} + adds r4, r1, #0 + bl an_walk_any_2 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080950F6 + movs r0, #0 + b _08095108 +_080950F6: + adds r2, r4, #0 + adds r2, #0x2c + ldrb r0, [r2] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2] + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_08095108: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkDownStartAffine_Step1 + + thumb_func_start MovementAction_WalkDownAffine_Step0 +MovementAction_WalkDownAffine_Step0: @ 0x08095110 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + movs r2, #1 + bl sub_080934D0 + adds r2, r4, #0 + adds r2, #0x2c + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #1 + bl ChangeSpriteAffineAnimIfDifferent + adds r0, r5, #0 + adds r1, r4, #0 + bl MovementAction_WalkDownAffine_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkDownAffine_Step0 + + thumb_func_start MovementAction_WalkDownAffine_Step1 +MovementAction_WalkDownAffine_Step1: @ 0x08095144 + push {r4, lr} + adds r4, r1, #0 + bl an_walk_any_2 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08095156 + movs r0, #0 + b _08095168 +_08095156: + adds r2, r4, #0 + adds r2, #0x2c + ldrb r0, [r2] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2] + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_08095168: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkDownAffine_Step1 + + thumb_func_start MovementAction_WalkLeftAffine_Step0 +MovementAction_WalkLeftAffine_Step0: @ 0x08095170 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + movs r2, #3 + movs r3, #1 + bl do_go_anim + adds r2, r4, #0 + adds r2, #0x2c + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #2 + bl ChangeSpriteAffineAnimIfDifferent + adds r0, r5, #0 + adds r1, r4, #0 + bl MovementAction_WalkLeftAffine_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_WalkLeftAffine_Step0 + + thumb_func_start MovementAction_WalkLeftAffine_Step1 +MovementAction_WalkLeftAffine_Step1: @ 0x080951A4 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080951B6 + movs r0, #0 + b _080951C8 +_080951B6: + adds r2, r4, #0 + adds r2, #0x2c + ldrb r0, [r2] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2] + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_080951C8: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkLeftAffine_Step1 + + thumb_func_start MovementAction_WalkRightAffine_Step0 +MovementAction_WalkRightAffine_Step0: @ 0x080951D0 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + movs r2, #4 + movs r3, #1 + bl do_go_anim + adds r2, r4, #0 + adds r2, #0x2c + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #3 + bl ChangeSpriteAffineAnimIfDifferent + adds r0, r5, #0 + adds r1, r4, #0 + bl MovementAction_WalkRightAffine_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_WalkRightAffine_Step0 + + thumb_func_start MovementAction_WalkRightAffine_Step1 +MovementAction_WalkRightAffine_Step1: @ 0x08095204 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08095216 + movs r0, #0 + b _08095228 +_08095216: + adds r2, r4, #0 + adds r2, #0x2c + ldrb r0, [r2] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2] + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_08095228: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_WalkRightAffine_Step1 + + thumb_func_start sub_08095230 +sub_08095230: @ 0x08095230 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + lsls r4, r2, #0x18 + lsrs r4, r4, #0x18 + adds r1, r4, #0 + bl SetEventObjectDirection + adds r0, r5, #0 + bl ShiftStillEventObjectCoords + adds r0, r4, #0 + bl GetWalkInPlaceFastestMovementAction + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r5, #0 + adds r1, r6, #0 + bl obj_npc_animation_step + adds r2, r6, #0 + adds r2, #0x2c + ldrb r0, [r2] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2] + movs r0, #1 + strh r0, [r6, #0x32] + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_08095230 + + thumb_func_start MovementAction_AcroWheelieFaceDown_Step0 +MovementAction_AcroWheelieFaceDown_Step0: @ 0x08095270 + push {lr} + movs r2, #1 + bl sub_08095230 + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieFaceDown_Step0 + + thumb_func_start MovementAction_AcroWheelieFaceUp_Step0 +MovementAction_AcroWheelieFaceUp_Step0: @ 0x08095280 + push {lr} + movs r2, #2 + bl sub_08095230 + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieFaceUp_Step0 + + thumb_func_start MovementAction_AcroWheelieFaceLeft_Step0 +MovementAction_AcroWheelieFaceLeft_Step0: @ 0x08095290 + push {lr} + movs r2, #3 + bl sub_08095230 + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieFaceLeft_Step0 + + thumb_func_start MovementAction_AcroWheelieFaceRight_Step0 +MovementAction_AcroWheelieFaceRight_Step0: @ 0x080952A0 + push {lr} + movs r2, #4 + bl sub_08095230 + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieFaceRight_Step0 + + thumb_func_start MovementAction_AcroPopWheelieDown_Step0 +MovementAction_AcroPopWheelieDown_Step0: @ 0x080952B0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #1 + bl GetSlideMovementAction + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #1 + bl StartSpriteAnimInDirection + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_AcroPopWheelieDown_Step0 + + thumb_func_start MovementAction_AcroPopWheelieUp_Step0 +MovementAction_AcroPopWheelieUp_Step0: @ 0x080952D4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #2 + bl GetSlideMovementAction + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #2 + bl StartSpriteAnimInDirection + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_AcroPopWheelieUp_Step0 + + thumb_func_start MovementAction_AcroPopWheelieLeft_Step0 +MovementAction_AcroPopWheelieLeft_Step0: @ 0x080952F8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #3 + bl GetSlideMovementAction + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #3 + bl StartSpriteAnimInDirection + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_AcroPopWheelieLeft_Step0 + + thumb_func_start MovementAction_AcroPopWheelieRight_Step0 +MovementAction_AcroPopWheelieRight_Step0: @ 0x0809531C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #4 + bl GetSlideMovementAction + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #4 + bl StartSpriteAnimInDirection + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_AcroPopWheelieRight_Step0 + + thumb_func_start MovementAction_AcroEndWheelieFaceDown_Step0 +MovementAction_AcroEndWheelieFaceDown_Step0: @ 0x08095340 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #1 + bl GetWalkFastestMovementAction + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #1 + bl StartSpriteAnimInDirection + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_AcroEndWheelieFaceDown_Step0 + + thumb_func_start MovementAction_AcroEndWheelieFaceUp_Step0 +MovementAction_AcroEndWheelieFaceUp_Step0: @ 0x08095364 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #2 + bl GetWalkFastestMovementAction + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #2 + bl StartSpriteAnimInDirection + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_AcroEndWheelieFaceUp_Step0 + + thumb_func_start sub_08095388 +sub_08095388: @ 0x08095388 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #3 + bl GetWalkFastestMovementAction + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #3 + bl StartSpriteAnimInDirection + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_08095388 + + thumb_func_start MovementAction_AcroEndWheelieFaceRight_Step0 +MovementAction_AcroEndWheelieFaceRight_Step0: @ 0x080953AC + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #4 + bl GetWalkFastestMovementAction + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #4 + bl StartSpriteAnimInDirection + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_AcroEndWheelieFaceRight_Step0 + + thumb_func_start MovementAction_UnusedAcroActionDown_Step0 +MovementAction_UnusedAcroActionDown_Step0: @ 0x080953D0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #1 + bl GetWalkInPlaceFastMovementAction + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #1 + bl StartSpriteAnimInDirection + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_UnusedAcroActionDown_Step0 + + thumb_func_start MovementAction_UnusedAcroActionUp_Step0 +MovementAction_UnusedAcroActionUp_Step0: @ 0x080953F4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #2 + bl GetWalkInPlaceFastMovementAction + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #2 + bl StartSpriteAnimInDirection + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_UnusedAcroActionUp_Step0 + + thumb_func_start MovementAction_UnusedAcroActionLeft_Step0 +MovementAction_UnusedAcroActionLeft_Step0: @ 0x08095418 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #3 + bl GetWalkInPlaceFastMovementAction + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #3 + bl StartSpriteAnimInDirection + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_UnusedAcroActionLeft_Step0 + + thumb_func_start MovementAction_UnusedAcroActionRight_Step0 +MovementAction_UnusedAcroActionRight_Step0: @ 0x0809543C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #4 + bl GetWalkInPlaceFastMovementAction + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #4 + bl StartSpriteAnimInDirection + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_UnusedAcroActionRight_Step0 + + thumb_func_start sub_08095460 +sub_08095460: @ 0x08095460 + push {r4, lr} + adds r4, r1, #0 + adds r0, r4, #0 + bl sub_080970C0 + adds r4, #0x2c + ldrb r1, [r4] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08095460 + + thumb_func_start sub_0809547C +sub_0809547C: @ 0x0809547C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r0, r5, #0 + bl sub_080970C8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08095492 + movs r0, #0 + b _080954AE +_08095492: + adds r0, r4, #0 + bl ShiftStillEventObjectCoords + ldrb r0, [r4] + movs r1, #8 + orrs r0, r1 + strb r0, [r4] + adds r2, r5, #0 + adds r2, #0x2c + ldrb r0, [r2] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2] + movs r0, #1 +_080954AE: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_0809547C + + thumb_func_start MovementAction_Figure8_Step0 +MovementAction_Figure8_Step0: @ 0x080954B4 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl sub_08095460 + movs r0, #1 + strh r0, [r4, #0x32] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080954D4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_Figure8_Step0 + + thumb_func_start sub_080954D4 +sub_080954D4: @ 0x080954D4 + push {r4, lr} + adds r4, r1, #0 + bl sub_0809547C + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080954E6 + movs r0, #0 + b _080954EC +_080954E6: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_080954EC: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080954D4 + + thumb_func_start sub_080954F4 +sub_080954F4: @ 0x080954F4 + push {r4, r5, r6, lr} + sub sp, #4 + adds r6, r0, #0 + adds r5, r1, #0 + adds r4, r2, #0 + ldr r0, [sp, #0x14] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + adds r0, r6, #0 + adds r2, r4, #0 + bl sub_08093934 + adds r0, r4, #0 + bl GetSlideMovementAction + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl StartSpriteAnimIfDifferent + adds r0, r6, #0 + bl DoShadowFieldEffect + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080954F4 + + thumb_func_start MovementAction_AcroWheelieHopFaceDown_Step0 +MovementAction_AcroWheelieHopFaceDown_Step0: @ 0x08095538 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #1 + str r0, [sp] + adds r0, r4, #0 + movs r2, #1 + movs r3, #0 + bl sub_080954F4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_AcroWheelieHopFaceDown_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieHopFaceDown_Step0 + + thumb_func_start MovementAction_AcroWheelieHopFaceDown_Step1 +MovementAction_AcroWheelieHopFaceDown_Step1: @ 0x08095564 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093B20 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08095578 + movs r0, #0 + b _08095588 +_08095578: + ldrb r0, [r4, #2] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #2] + movs r0, #2 + strh r0, [r5, #0x32] + movs r0, #1 +_08095588: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieHopFaceDown_Step1 + + thumb_func_start MovementAction_AcroWheelieHopFaceUp_Step0 +MovementAction_AcroWheelieHopFaceUp_Step0: @ 0x08095590 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #1 + str r0, [sp] + adds r0, r4, #0 + movs r2, #2 + movs r3, #0 + bl sub_080954F4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_AcroWheelieHopFaceUp_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieHopFaceUp_Step0 + + thumb_func_start MovementAction_AcroWheelieHopFaceUp_Step1 +MovementAction_AcroWheelieHopFaceUp_Step1: @ 0x080955BC + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093B20 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080955D0 + movs r0, #0 + b _080955E0 +_080955D0: + ldrb r0, [r4, #2] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #2] + movs r0, #2 + strh r0, [r5, #0x32] + movs r0, #1 +_080955E0: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieHopFaceUp_Step1 + + thumb_func_start MovementAction_AcroWheelieHopFaceLeft_Step0 +MovementAction_AcroWheelieHopFaceLeft_Step0: @ 0x080955E8 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #1 + str r0, [sp] + adds r0, r4, #0 + movs r2, #3 + movs r3, #0 + bl sub_080954F4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_AcroWheelieHopFaceLeft_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieHopFaceLeft_Step0 + + thumb_func_start MovementAction_AcroWheelieHopFaceLeft_Step1 +MovementAction_AcroWheelieHopFaceLeft_Step1: @ 0x08095614 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093B20 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08095628 + movs r0, #0 + b _08095638 +_08095628: + ldrb r0, [r4, #2] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #2] + movs r0, #2 + strh r0, [r5, #0x32] + movs r0, #1 +_08095638: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieHopFaceLeft_Step1 + + thumb_func_start MovementAction_AcroWheelieHopFaceRight_Step0 +MovementAction_AcroWheelieHopFaceRight_Step0: @ 0x08095640 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #1 + str r0, [sp] + adds r0, r4, #0 + movs r2, #4 + movs r3, #0 + bl sub_080954F4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_AcroWheelieHopFaceRight_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieHopFaceRight_Step0 + + thumb_func_start MovementAction_AcroWheelieHopFaceRight_Step1 +MovementAction_AcroWheelieHopFaceRight_Step1: @ 0x0809566C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093B20 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08095680 + movs r0, #0 + b _08095690 +_08095680: + ldrb r0, [r4, #2] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #2] + movs r0, #2 + strh r0, [r5, #0x32] + movs r0, #1 +_08095690: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieHopFaceRight_Step1 + + thumb_func_start MovementAction_AcroWheelieHopDown_Step0 +MovementAction_AcroWheelieHopDown_Step0: @ 0x08095698 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #1 + str r0, [sp] + adds r0, r4, #0 + movs r2, #1 + movs r3, #1 + bl sub_080954F4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_AcroWheelieHopDown_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieHopDown_Step0 + + thumb_func_start MovementAction_AcroWheelieHopDown_Step1 +MovementAction_AcroWheelieHopDown_Step1: @ 0x080956C4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093B20 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080956D8 + movs r0, #0 + b _080956E8 +_080956D8: + ldrb r0, [r4, #2] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #2] + movs r0, #2 + strh r0, [r5, #0x32] + movs r0, #1 +_080956E8: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieHopDown_Step1 + + thumb_func_start MovementAction_AcroWheelieHopUp_Step0 +MovementAction_AcroWheelieHopUp_Step0: @ 0x080956F0 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #1 + str r0, [sp] + adds r0, r4, #0 + movs r2, #2 + movs r3, #1 + bl sub_080954F4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_AcroWheelieHopUp_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieHopUp_Step0 + + thumb_func_start MovementAction_AcroWheelieHopUp_Step1 +MovementAction_AcroWheelieHopUp_Step1: @ 0x0809571C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093B20 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08095730 + movs r0, #0 + b _08095740 +_08095730: + ldrb r0, [r4, #2] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #2] + movs r0, #2 + strh r0, [r5, #0x32] + movs r0, #1 +_08095740: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieHopUp_Step1 + + thumb_func_start MovementAction_AcroWheelieHopLeft_Step0 +MovementAction_AcroWheelieHopLeft_Step0: @ 0x08095748 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #1 + str r0, [sp] + adds r0, r4, #0 + movs r2, #3 + movs r3, #1 + bl sub_080954F4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_AcroWheelieHopLeft_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieHopLeft_Step0 + + thumb_func_start MovementAction_AcroWheelieHopLeft_Step1 +MovementAction_AcroWheelieHopLeft_Step1: @ 0x08095774 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093B20 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08095788 + movs r0, #0 + b _08095798 +_08095788: + ldrb r0, [r4, #2] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #2] + movs r0, #2 + strh r0, [r5, #0x32] + movs r0, #1 +_08095798: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieHopLeft_Step1 + + thumb_func_start MovementAction_AcroWheelieHopRight_Step0 +MovementAction_AcroWheelieHopRight_Step0: @ 0x080957A0 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #1 + str r0, [sp] + adds r0, r4, #0 + movs r2, #4 + movs r3, #1 + bl sub_080954F4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_AcroWheelieHopRight_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieHopRight_Step0 + + thumb_func_start MovementAction_AcroWheelieHopRight_Step1 +MovementAction_AcroWheelieHopRight_Step1: @ 0x080957CC + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093B20 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080957E0 + movs r0, #0 + b _080957F0 +_080957E0: + ldrb r0, [r4, #2] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #2] + movs r0, #2 + strh r0, [r5, #0x32] + movs r0, #1 +_080957F0: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieHopRight_Step1 + + thumb_func_start MovementAction_AcroWheelieJumpDown_Step0 +MovementAction_AcroWheelieJumpDown_Step0: @ 0x080957F8 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #0 + str r0, [sp] + adds r0, r4, #0 + movs r2, #1 + movs r3, #2 + bl sub_080954F4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_AcroWheelieJumpDown_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieJumpDown_Step0 + + thumb_func_start MovementAction_AcroWheelieJumpDown_Step1 +MovementAction_AcroWheelieJumpDown_Step1: @ 0x08095824 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093B20 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08095838 + movs r0, #0 + b _08095848 +_08095838: + ldrb r0, [r4, #2] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #2] + movs r0, #2 + strh r0, [r5, #0x32] + movs r0, #1 +_08095848: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieJumpDown_Step1 + + thumb_func_start MovementAction_AcroWheelieJumpUp_Step0 +MovementAction_AcroWheelieJumpUp_Step0: @ 0x08095850 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #0 + str r0, [sp] + adds r0, r4, #0 + movs r2, #2 + movs r3, #2 + bl sub_080954F4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_AcroWheelieJumpUp_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieJumpUp_Step0 + + thumb_func_start MovementAction_AcroWheelieJumpUp_Step1 +MovementAction_AcroWheelieJumpUp_Step1: @ 0x0809587C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093B20 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08095890 + movs r0, #0 + b _080958A0 +_08095890: + ldrb r0, [r4, #2] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #2] + movs r0, #2 + strh r0, [r5, #0x32] + movs r0, #1 +_080958A0: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieJumpUp_Step1 + + thumb_func_start MovementAction_AcroWheelieJumpLeft_Step0 +MovementAction_AcroWheelieJumpLeft_Step0: @ 0x080958A8 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #0 + str r0, [sp] + adds r0, r4, #0 + movs r2, #3 + movs r3, #2 + bl sub_080954F4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_AcroWheelieJumpLeft_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieJumpLeft_Step0 + + thumb_func_start MovementAction_AcroWheelieJumpLeft_Step1 +MovementAction_AcroWheelieJumpLeft_Step1: @ 0x080958D4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093B20 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080958E8 + movs r0, #0 + b _080958F8 +_080958E8: + ldrb r0, [r4, #2] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #2] + movs r0, #2 + strh r0, [r5, #0x32] + movs r0, #1 +_080958F8: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieJumpLeft_Step1 + + thumb_func_start MovementAction_AcroWheelieJumpRight_Step0 +MovementAction_AcroWheelieJumpRight_Step0: @ 0x08095900 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #0 + str r0, [sp] + adds r0, r4, #0 + movs r2, #4 + movs r3, #2 + bl sub_080954F4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_AcroWheelieJumpRight_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieJumpRight_Step0 + + thumb_func_start MovementAction_AcroWheelieJumpRight_Step1 +MovementAction_AcroWheelieJumpRight_Step1: @ 0x0809592C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08093B20 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08095940 + movs r0, #0 + b _08095950 +_08095940: + ldrb r0, [r4, #2] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #2] + movs r0, #2 + strh r0, [r5, #0x32] + movs r0, #1 +_08095950: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieJumpRight_Step1 + + thumb_func_start MovementAction_AcroWheelieInPlaceDown_Step0 +MovementAction_AcroWheelieInPlaceDown_Step0: @ 0x08095958 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #1 + bl GetWalkInPlaceFastestMovementAction + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #8 + str r0, [sp] + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #1 + bl sub_08093EC4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkInPlace_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieInPlaceDown_Step0 + + thumb_func_start MovementAction_AcroWheelieInPlaceUp_Step0 +MovementAction_AcroWheelieInPlaceUp_Step0: @ 0x08095990 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #2 + bl GetWalkInPlaceFastestMovementAction + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #8 + str r0, [sp] + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #2 + bl sub_08093EC4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkInPlace_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieInPlaceUp_Step0 + + thumb_func_start MovementAction_AcroWheelieInPlaceLeft_Step0 +MovementAction_AcroWheelieInPlaceLeft_Step0: @ 0x080959C8 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #3 + bl GetWalkInPlaceFastestMovementAction + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #8 + str r0, [sp] + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #3 + bl sub_08093EC4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkInPlace_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieInPlaceLeft_Step0 + + thumb_func_start MovementAction_AcroWheelieInPlaceRight_Step0 +MovementAction_AcroWheelieInPlaceRight_Step0: @ 0x08095A00 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #4 + bl GetWalkInPlaceFastestMovementAction + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #8 + str r0, [sp] + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #4 + bl sub_08093EC4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_WalkInPlace_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieInPlaceRight_Step0 + + thumb_func_start sub_08095A38 +sub_08095A38: @ 0x08095A38 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + bl npc_apply_direction + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl GetSlideMovementAction + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim + adds r0, r4, #0 + movs r1, #0 + bl SeekSpriteAnim + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08095A38 + + thumb_func_start sub_08095A70 +sub_08095A70: @ 0x08095A70 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #1 + movs r3, #1 + bl sub_08095A38 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_AcroPopWheelieMoveDown_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_08095A70 + + thumb_func_start MovementAction_AcroPopWheelieMoveDown_Step1 +MovementAction_AcroPopWheelieMoveDown_Step1: @ 0x08095A90 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08095AA2 + movs r0, #0 + b _08095AA8 +_08095AA2: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_08095AA8: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroPopWheelieMoveDown_Step1 + + thumb_func_start sub_08095AB0 +sub_08095AB0: @ 0x08095AB0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #2 + movs r3, #1 + bl sub_08095A38 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_AcroPopWheelieMoveUp_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_08095AB0 + + thumb_func_start MovementAction_AcroPopWheelieMoveUp_Step1 +MovementAction_AcroPopWheelieMoveUp_Step1: @ 0x08095AD0 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08095AE2 + movs r0, #0 + b _08095AE8 +_08095AE2: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_08095AE8: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroPopWheelieMoveUp_Step1 + + thumb_func_start sub_08095AF0 +sub_08095AF0: @ 0x08095AF0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #3 + movs r3, #1 + bl sub_08095A38 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_AcroPopWheelieMoveLeft_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_08095AF0 + + thumb_func_start MovementAction_AcroPopWheelieMoveLeft_Step1 +MovementAction_AcroPopWheelieMoveLeft_Step1: @ 0x08095B10 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08095B22 + movs r0, #0 + b _08095B28 +_08095B22: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_08095B28: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroPopWheelieMoveLeft_Step1 + + thumb_func_start sub_08095B30 +sub_08095B30: @ 0x08095B30 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #4 + movs r3, #1 + bl sub_08095A38 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_AcroPopWheelieMoveRight_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_08095B30 + + thumb_func_start MovementAction_AcroPopWheelieMoveRight_Step1 +MovementAction_AcroPopWheelieMoveRight_Step1: @ 0x08095B50 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08095B62 + movs r0, #0 + b _08095B68 +_08095B62: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_08095B68: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroPopWheelieMoveRight_Step1 + + thumb_func_start sub_08095B70 +sub_08095B70: @ 0x08095B70 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + bl npc_apply_direction + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl GetWalkInPlaceFastestMovementAction + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl npc_apply_anim_looping + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_08095B70 + + thumb_func_start MovementAction_AcroWheelieMoveDown_Step0 +MovementAction_AcroWheelieMoveDown_Step0: @ 0x08095BA0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #1 + movs r3, #1 + bl sub_08095B70 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_AcroWheelieMoveDown_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_AcroWheelieMoveDown_Step0 + + thumb_func_start MovementAction_AcroWheelieMoveDown_Step1 +MovementAction_AcroWheelieMoveDown_Step1: @ 0x08095BC0 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08095BD2 + movs r0, #0 + b _08095BD8 +_08095BD2: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_08095BD8: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieMoveDown_Step1 + + thumb_func_start MovementAction_AcroWheelieMoveUp_Step0 +MovementAction_AcroWheelieMoveUp_Step0: @ 0x08095BE0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #2 + movs r3, #1 + bl sub_08095B70 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_AcroWheelieMoveUp_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_AcroWheelieMoveUp_Step0 + + thumb_func_start MovementAction_AcroWheelieMoveUp_Step1 +MovementAction_AcroWheelieMoveUp_Step1: @ 0x08095C00 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08095C12 + movs r0, #0 + b _08095C18 +_08095C12: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_08095C18: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieMoveUp_Step1 + + thumb_func_start MovementAction_AcroWheelieMoveLeft_Step0 +MovementAction_AcroWheelieMoveLeft_Step0: @ 0x08095C20 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #3 + movs r3, #1 + bl sub_08095B70 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_AcroWheelieMoveLeft_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_AcroWheelieMoveLeft_Step0 + + thumb_func_start MovementAction_AcroWheelieMoveLeft_Step1 +MovementAction_AcroWheelieMoveLeft_Step1: @ 0x08095C40 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08095C52 + movs r0, #0 + b _08095C58 +_08095C52: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_08095C58: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieMoveLeft_Step1 + + thumb_func_start MovementAction_AcroWheelieMoveRight_Step0 +MovementAction_AcroWheelieMoveRight_Step0: @ 0x08095C60 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #4 + movs r3, #1 + bl sub_08095B70 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_AcroWheelieMoveRight_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_AcroWheelieMoveRight_Step0 + + thumb_func_start MovementAction_AcroWheelieMoveRight_Step1 +MovementAction_AcroWheelieMoveRight_Step1: @ 0x08095C80 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08095C92 + movs r0, #0 + b _08095C98 +_08095C92: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_08095C98: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroWheelieMoveRight_Step1 + + thumb_func_start sub_08095CA0 +sub_08095CA0: @ 0x08095CA0 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + bl npc_apply_direction + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl GetWalkFastestMovementAction + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim + adds r0, r4, #0 + movs r1, #0 + bl SeekSpriteAnim + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08095CA0 + + thumb_func_start MovementAction_AcroEndWheelieMoveDown_Step0 +MovementAction_AcroEndWheelieMoveDown_Step0: @ 0x08095CD8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #1 + movs r3, #1 + bl sub_08095CA0 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_AcroEndWheelieMoveDown_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_AcroEndWheelieMoveDown_Step0 + + thumb_func_start MovementAction_AcroEndWheelieMoveDown_Step1 +MovementAction_AcroEndWheelieMoveDown_Step1: @ 0x08095CF8 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08095D0A + movs r0, #0 + b _08095D10 +_08095D0A: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_08095D10: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroEndWheelieMoveDown_Step1 + + thumb_func_start MovementAction_AcroEndWheelieMoveUp_Step0 +MovementAction_AcroEndWheelieMoveUp_Step0: @ 0x08095D18 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #2 + movs r3, #1 + bl sub_08095CA0 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_AcroEndWheelieMoveUp_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_AcroEndWheelieMoveUp_Step0 + + thumb_func_start MovementAction_AcroEndWheelieMoveUp_Step1 +MovementAction_AcroEndWheelieMoveUp_Step1: @ 0x08095D38 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08095D4A + movs r0, #0 + b _08095D50 +_08095D4A: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_08095D50: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroEndWheelieMoveUp_Step1 + + thumb_func_start MovementAction_AcroEndWheelieMoveLeft_Step0 +MovementAction_AcroEndWheelieMoveLeft_Step0: @ 0x08095D58 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #3 + movs r3, #1 + bl sub_08095CA0 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_AcroEndWheelieMoveLeft_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_AcroEndWheelieMoveLeft_Step0 + + thumb_func_start MovementAction_AcroEndWheelieMoveLeft_Step1 +MovementAction_AcroEndWheelieMoveLeft_Step1: @ 0x08095D78 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08095D8A + movs r0, #0 + b _08095D90 +_08095D8A: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_08095D90: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroEndWheelieMoveLeft_Step1 + + thumb_func_start MovementAction_AcroEndWheelieMoveRight_Step0 +MovementAction_AcroEndWheelieMoveRight_Step0: @ 0x08095D98 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #4 + movs r3, #1 + bl sub_08095CA0 + adds r0, r4, #0 + adds r1, r5, #0 + bl MovementAction_AcroEndWheelieMoveRight_Step1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MovementAction_AcroEndWheelieMoveRight_Step0 + + thumb_func_start MovementAction_AcroEndWheelieMoveRight_Step1 +MovementAction_AcroEndWheelieMoveRight_Step1: @ 0x08095DB8 + push {r4, lr} + adds r4, r1, #0 + bl npc_obj_ministep_stop_on_arrival + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08095DCA + movs r0, #0 + b _08095DD0 +_08095DCA: + movs r0, #2 + strh r0, [r4, #0x32] + movs r0, #1 +_08095DD0: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_AcroEndWheelieMoveRight_Step1 + + thumb_func_start MovementAction_Levitate_Step0 +MovementAction_Levitate_Step0: @ 0x08095DD8 + push {r4, lr} + adds r4, r1, #0 + bl CreateLevitateMovementTask + movs r0, #1 + strh r0, [r4, #0x32] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_Levitate_Step0 + + thumb_func_start MovementAction_StopLevitate_Step0 +MovementAction_StopLevitate_Step0: @ 0x08095DEC + push {r4, lr} + adds r4, r1, #0 + ldrb r0, [r0, #0x1b] + bl DestroyExtraMovementTask + movs r0, #0 + strh r0, [r4, #0x26] + movs r0, #1 + strh r0, [r4, #0x32] + pop {r4} + pop {r1} + bx r1 + thumb_func_end MovementAction_StopLevitate_Step0 + + thumb_func_start MovementAction_DestroyExtraTaskIfAtTop_Step0 +MovementAction_DestroyExtraTaskIfAtTop_Step0: @ 0x08095E04 + push {r4, lr} + adds r2, r0, #0 + adds r4, r1, #0 + movs r1, #0x26 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _08095E16 + movs r0, #0 + b _08095E20 +_08095E16: + ldrb r0, [r2, #0x1b] + bl DestroyExtraMovementTask + movs r0, #1 + strh r0, [r4, #0x32] +_08095E20: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_DestroyExtraTaskIfAtTop_Step0 + + thumb_func_start sub_08095E28 +sub_08095E28: @ 0x08095E28 + movs r0, #1 + bx lr + thumb_func_end sub_08095E28 + + thumb_func_start MovementAction_PauseSpriteAnim +MovementAction_PauseSpriteAnim: @ 0x08095E2C + adds r1, #0x2c + ldrb r0, [r1] + movs r2, #0x40 + orrs r0, r2 + strb r0, [r1] + movs r0, #1 + bx lr + .align 2, 0 + thumb_func_end MovementAction_PauseSpriteAnim + + thumb_func_start UpdateEventObjectSpriteAnimPause +UpdateEventObjectSpriteAnimPause: @ 0x08095E3C + push {lr} + ldrb r0, [r0, #1] + lsls r0, r0, #0x1d + cmp r0, #0 + bge _08095E52 + adds r0, r1, #0 + adds r0, #0x2c + ldrb r1, [r0] + movs r2, #0x40 + orrs r1, r2 + strb r1, [r0] +_08095E52: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end UpdateEventObjectSpriteAnimPause + + thumb_func_start TryEnableEventObjectAnim +TryEnableEventObjectAnim: @ 0x08095E58 + push {r4, lr} + adds r4, r0, #0 + ldrb r3, [r4, #1] + lsls r0, r3, #0x1c + cmp r0, #0 + bge _08095E80 + adds r2, r1, #0 + adds r2, #0x2c + ldrb r1, [r2] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r3 + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r4, #1] +_08095E80: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end TryEnableEventObjectAnim + + thumb_func_start UpdateEventObjectVisibility +UpdateEventObjectVisibility: @ 0x08095E88 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08095EA0 + adds r0, r4, #0 + adds r1, r5, #0 + bl UpdateEventObjSpriteVisibility + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end UpdateEventObjectVisibility + + thumb_func_start sub_08095EA0 +sub_08095EA0: @ 0x08095EA0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + ldrb r1, [r5, #1] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r5, #1] + ldrb r0, [r5, #5] + bl GetEventObjectGraphicsInfo + adds r6, r0, #0 + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08095F04 + ldrh r1, [r4, #0x24] + ldrh r0, [r4, #0x20] + adds r1, r1, r0 + adds r0, r4, #0 + adds r0, #0x28 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldr r2, _08095EFC + adds r0, r0, r1 + ldrh r2, [r2] + adds r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldrh r1, [r4, #0x26] + ldrh r0, [r4, #0x22] + adds r1, r1, r0 + adds r0, r4, #0 + adds r0, #0x29 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldr r2, _08095F00 + adds r0, r0, r1 + ldrh r2, [r2] + adds r0, r0, r2 + b _08095F2C + .align 2, 0 +_08095EFC: .4byte 0x02021B38 +_08095F00: .4byte 0x02021B3A +_08095F04: + ldrh r1, [r4, #0x24] + ldrh r0, [r4, #0x20] + adds r1, r1, r0 + adds r0, r4, #0 + adds r0, #0x28 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldrh r1, [r4, #0x26] + ldrh r0, [r4, #0x22] + adds r1, r1, r0 + adds r0, r4, #0 + adds r0, #0x29 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, r0, r1 +_08095F2C: + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldrh r0, [r6, #8] + adds r0, r0, r3 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldrh r0, [r6, #0xa] + adds r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xff + bgt _08095F54 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x10 + rsbs r1, r1, #0 + cmp r0, r1 + bge _08095F5C +_08095F54: + ldrb r0, [r5, #1] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r5, #1] +_08095F5C: + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xaf + bgt _08095F70 + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x10 + rsbs r1, r1, #0 + cmp r0, r1 + bge _08095F78 +_08095F70: + ldrb r0, [r5, #1] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r5, #1] +_08095F78: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08095EA0 + + thumb_func_start UpdateEventObjSpriteVisibility +UpdateEventObjSpriteVisibility: @ 0x08095F80 + push {lr} + adds r2, r1, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r3, #5 + rsbs r3, r3, #0 + ands r3, r1 + strb r3, [r2] + ldrb r1, [r0, #1] + movs r0, #0x60 + ands r0, r1 + cmp r0, #0 + beq _08095FA2 + movs r1, #4 + adds r0, r3, #0 + orrs r0, r1 + strb r0, [r2] +_08095FA2: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end UpdateEventObjSpriteVisibility + + thumb_func_start GetAllGroundEffectFlags_OnSpawn +GetAllGroundEffectFlags_OnSpawn: @ 0x08095FA8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl EventObjectUpdateMetatileBehaviors + adds r0, r4, #0 + adds r1, r5, #0 + bl GetGroundEffectFlags_Reflection + adds r0, r4, #0 + adds r1, r5, #0 + bl GetGroundEffectFlags_TallGrassOnSpawn + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0809615C + adds r0, r4, #0 + adds r1, r5, #0 + bl GetGroundEffectFlags_SandHeap + adds r0, r4, #0 + adds r1, r5, #0 + bl GetGroundEffectFlags_ShallowFlowingWater + adds r0, r4, #0 + adds r1, r5, #0 + bl GetGroundEffectFlags_ShortGrass + adds r0, r4, #0 + adds r1, r5, #0 + bl GetGroundEffectFlags_HotSprings + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end GetAllGroundEffectFlags_OnSpawn + + thumb_func_start GetAllGroundEffectFlags_OnBeginStep +GetAllGroundEffectFlags_OnBeginStep: @ 0x08095FF0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl EventObjectUpdateMetatileBehaviors + adds r0, r4, #0 + adds r1, r5, #0 + bl GetGroundEffectFlags_Reflection + adds r0, r4, #0 + adds r1, r5, #0 + bl GetGroundEffectFlags_LongGrassOnSpawn + adds r0, r4, #0 + adds r1, r5, #0 + bl GetGroundEffectFlags_LongGrassOnBeginStep + adds r0, r4, #0 + adds r1, r5, #0 + bl GetGroundEffectFlags_Tracks + adds r0, r4, #0 + adds r1, r5, #0 + bl GetGroundEffectFlags_SandHeap + adds r0, r4, #0 + adds r1, r5, #0 + bl GetGroundEffectFlags_ShallowFlowingWater + adds r0, r4, #0 + adds r1, r5, #0 + bl GetGroundEffectFlags_Puddle + adds r0, r4, #0 + adds r1, r5, #0 + bl GetGroundEffectFlags_ShortGrass + adds r0, r4, #0 + adds r1, r5, #0 + bl GetGroundEffectFlags_HotSprings + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end GetAllGroundEffectFlags_OnBeginStep + + thumb_func_start GetAllGroundEffectFlags_OnFinishStep +GetAllGroundEffectFlags_OnFinishStep: @ 0x08096048 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl EventObjectUpdateMetatileBehaviors + adds r0, r4, #0 + adds r1, r5, #0 + bl GetGroundEffectFlags_ShallowFlowingWater + adds r0, r4, #0 + adds r1, r5, #0 + bl GetGroundEffectFlags_SandHeap + adds r0, r4, #0 + adds r1, r5, #0 + bl GetGroundEffectFlags_Puddle + adds r0, r4, #0 + adds r1, r5, #0 + bl GetGroundEffectFlags_Ripple + adds r0, r4, #0 + adds r1, r5, #0 + bl GetGroundEffectFlags_ShortGrass + adds r0, r4, #0 + adds r1, r5, #0 + bl GetGroundEffectFlags_HotSprings + adds r0, r4, #0 + adds r1, r5, #0 + bl GetGroundEffectFlags_Seaweed + adds r0, r4, #0 + adds r1, r5, #0 + bl GetGroundEffectFlags_JumpLanding + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end GetAllGroundEffectFlags_OnFinishStep + + thumb_func_start EventObjectUpdateMetatileBehaviors +EventObjectUpdateMetatileBehaviors: @ 0x08096098 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x14 + ldrsh r0, [r4, r1] + movs r2, #0x16 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileBehaviorAt + strb r0, [r4, #0x1f] + movs r1, #0x10 + ldrsh r0, [r4, r1] + movs r2, #0x12 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileBehaviorAt + strb r0, [r4, #0x1e] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end EventObjectUpdateMetatileBehaviors + + thumb_func_start GetGroundEffectFlags_Reflection +GetGroundEffectFlags_Reflection: @ 0x080960C0 + push {r4, r5, lr} + sub sp, #8 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r0, _08096104 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [sp] + str r1, [sp, #4] + adds r0, r4, #0 + bl EventObjectCheckForReflectiveSurface + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _08096108 + ldrb r1, [r4, #2] + lsls r0, r1, #0x1e + cmp r0, #0 + blt _08096112 + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r4, #2] + subs r0, r2, #1 + lsls r0, r0, #2 + add r0, sp + ldr r1, [r5] + ldr r0, [r0] + orrs r1, r0 + str r1, [r5] + b _08096112 + .align 2, 0 +_08096104: .4byte 0x084E6A30 +_08096108: + ldrb r1, [r4, #2] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #2] +_08096112: + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end GetGroundEffectFlags_Reflection + + thumb_func_start GetGroundEffectFlags_TallGrassOnSpawn +GetGroundEffectFlags_TallGrassOnSpawn: @ 0x0809611C + push {r4, lr} + adds r4, r1, #0 + ldrb r0, [r0, #0x1e] + bl MetatileBehavior_IsTallGrass + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08096134 + ldr r0, [r4] + movs r1, #1 + orrs r0, r1 + str r0, [r4] +_08096134: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end GetGroundEffectFlags_TallGrassOnSpawn + + thumb_func_start GetGroundEffectFlags_LongGrassOnSpawn +GetGroundEffectFlags_LongGrassOnSpawn: @ 0x0809613C + push {r4, lr} + adds r4, r1, #0 + ldrb r0, [r0, #0x1e] + bl MetatileBehavior_IsTallGrass + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08096154 + ldr r0, [r4] + movs r1, #2 + orrs r0, r1 + str r0, [r4] +_08096154: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end GetGroundEffectFlags_LongGrassOnSpawn + + thumb_func_start sub_0809615C +sub_0809615C: @ 0x0809615C + push {r4, lr} + adds r4, r1, #0 + ldrb r0, [r0, #0x1e] + bl MetatileBehavior_IsLongGrass_Duplicate + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08096174 + ldr r0, [r4] + movs r1, #4 + orrs r0, r1 + str r0, [r4] +_08096174: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0809615C + + thumb_func_start GetGroundEffectFlags_LongGrassOnBeginStep +GetGroundEffectFlags_LongGrassOnBeginStep: @ 0x0809617C + push {r4, lr} + adds r4, r1, #0 + ldrb r0, [r0, #0x1e] + bl MetatileBehavior_IsLongGrass_Duplicate + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08096194 + ldr r0, [r4] + movs r1, #8 + orrs r0, r1 + str r0, [r4] +_08096194: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end GetGroundEffectFlags_LongGrassOnBeginStep + + thumb_func_start GetGroundEffectFlags_Tracks +GetGroundEffectFlags_Tracks: @ 0x0809619C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #0x1f] + bl MetatileBehavior_IsDeepSand + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080961B6 + ldr r0, [r5] + movs r1, #0x80 + lsls r1, r1, #1 + b _080961D2 +_080961B6: + ldrb r0, [r4, #0x1f] + bl MetatileBehavior_IsSandOrDeepSand + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080961CE + ldrb r0, [r4, #0x1f] + bl MetatileBehavior_IsFootprints + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080961D6 +_080961CE: + ldr r0, [r5] + movs r1, #0x80 +_080961D2: + orrs r0, r1 + str r0, [r5] +_080961D6: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end GetGroundEffectFlags_Tracks + + thumb_func_start GetGroundEffectFlags_SandHeap +GetGroundEffectFlags_SandHeap: @ 0x080961DC + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #0x1e] + bl MetatileBehavior_IsDeepSand + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809621A + ldrb r0, [r4, #0x1f] + bl MetatileBehavior_IsDeepSand + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809621A + ldrb r1, [r4, #2] + lsls r0, r1, #0x1b + cmp r0, #0 + blt _08096224 + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r4, #2] + ldr r0, [r5] + movs r1, #0x80 + lsls r1, r1, #4 + orrs r0, r1 + str r0, [r5] + b _08096224 +_0809621A: + ldrb r1, [r4, #2] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #2] +_08096224: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end GetGroundEffectFlags_SandHeap + + thumb_func_start GetGroundEffectFlags_ShallowFlowingWater +GetGroundEffectFlags_ShallowFlowingWater: @ 0x0809622C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #0x1e] + bl MetatileBehavior_IsShallowFlowingWater + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809624A + ldrb r0, [r4, #0x1f] + bl MetatileBehavior_IsShallowFlowingWater + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08096262 +_0809624A: + ldrb r0, [r4, #0x1e] + bl MetatileBehavior_IsPacifidlogLog + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08096280 + ldrb r0, [r4, #0x1f] + bl MetatileBehavior_IsPacifidlogLog + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08096280 +_08096262: + ldrb r1, [r4, #2] + lsls r0, r1, #0x1c + cmp r0, #0 + blt _0809628A + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r4, #2] + ldr r0, [r5] + movs r1, #0x40 + orrs r0, r1 + str r0, [r5] + b _0809628A +_08096280: + ldrb r1, [r4, #2] + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #2] +_0809628A: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end GetGroundEffectFlags_ShallowFlowingWater + + thumb_func_start GetGroundEffectFlags_Puddle +GetGroundEffectFlags_Puddle: @ 0x08096290 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #0x1e] + bl MetatileBehavior_IsPuddle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080962B8 + ldrb r0, [r4, #0x1f] + bl MetatileBehavior_IsPuddle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080962B8 + ldr r0, [r5] + movs r1, #0x80 + lsls r1, r1, #3 + orrs r0, r1 + str r0, [r5] +_080962B8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end GetGroundEffectFlags_Puddle + + thumb_func_start GetGroundEffectFlags_Ripple +GetGroundEffectFlags_Ripple: @ 0x080962C0 + push {r4, lr} + adds r4, r1, #0 + ldrb r0, [r0, #0x1e] + bl MetatileBehavior_HasRipples + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080962DA + ldr r0, [r4] + movs r1, #0x80 + lsls r1, r1, #2 + orrs r0, r1 + str r0, [r4] +_080962DA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end GetGroundEffectFlags_Ripple + + thumb_func_start GetGroundEffectFlags_ShortGrass +GetGroundEffectFlags_ShortGrass: @ 0x080962E0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #0x1e] + bl MetatileBehavior_IsShortGrass + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809631E + ldrb r0, [r4, #0x1f] + bl MetatileBehavior_IsShortGrass + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809631E + ldrb r1, [r4, #2] + lsls r0, r1, #0x1d + cmp r0, #0 + blt _08096328 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r4, #2] + ldr r0, [r5] + movs r1, #0x80 + lsls r1, r1, #0xa + orrs r0, r1 + str r0, [r5] + b _08096328 +_0809631E: + ldrb r1, [r4, #2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #2] +_08096328: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end GetGroundEffectFlags_ShortGrass + + thumb_func_start GetGroundEffectFlags_HotSprings +GetGroundEffectFlags_HotSprings: @ 0x08096330 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #0x1e] + bl MetatileBehavior_IsHotSprings + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809636E + ldrb r0, [r4, #0x1f] + bl MetatileBehavior_IsHotSprings + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809636E + ldrb r1, [r4, #2] + lsls r0, r1, #0x1a + cmp r0, #0 + blt _08096378 + movs r0, #0x21 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x20 + orrs r0, r1 + strb r0, [r4, #2] + ldr r0, [r5] + movs r1, #0x80 + lsls r1, r1, #0xb + orrs r0, r1 + str r0, [r5] + b _08096378 +_0809636E: + ldrb r1, [r4, #2] + movs r0, #0x21 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #2] +_08096378: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end GetGroundEffectFlags_HotSprings + + thumb_func_start GetGroundEffectFlags_Seaweed +GetGroundEffectFlags_Seaweed: @ 0x08096380 + push {r4, lr} + adds r4, r1, #0 + ldrb r0, [r0, #0x1e] + bl MetatileBehavior_IsSeaweed + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809639A + ldr r0, [r4] + movs r1, #0x80 + lsls r1, r1, #0xc + orrs r0, r1 + str r0, [r4] +_0809639A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end GetGroundEffectFlags_Seaweed + + thumb_func_start GetGroundEffectFlags_JumpLanding +GetGroundEffectFlags_JumpLanding: @ 0x080963A0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + adds r6, r1, #0 + ldr r0, [r7] + ldr r1, _080963DC + ands r0, r1 + cmp r0, #0x20 + bne _080963F2 + movs r5, #0 + ldr r0, _080963E0 + mov r8, r0 +_080963BA: + lsls r4, r5, #2 + mov r0, r8 + adds r1, r4, r0 + ldrb r0, [r7, #0x1e] + ldr r1, [r1] + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080963E8 + ldr r0, _080963E4 + adds r0, r4, r0 + ldr r1, [r6] + ldr r0, [r0] + orrs r1, r0 + str r1, [r6] + b _080963F2 + .align 2, 0 +_080963DC: .4byte 0x02000020 +_080963E0: .4byte 0x084E6A38 +_080963E4: .4byte 0x084E6A50 +_080963E8: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #5 + bls _080963BA +_080963F2: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end GetGroundEffectFlags_JumpLanding + + thumb_func_start EventObjectCheckForReflectiveSurface +EventObjectCheckForReflectiveSurface: @ 0x080963FC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r5, r0, #0 + ldrb r0, [r5, #5] + bl GetEventObjectGraphicsInfo + movs r2, #8 + ldrsh r1, [r0, r2] + adds r1, #8 + lsls r1, r1, #0xc + lsrs r1, r1, #0x10 + str r1, [sp] + movs r1, #0xa + ldrsh r0, [r0, r1] + adds r0, #8 + lsls r0, r0, #0xc + movs r4, #0 + lsrs r2, r0, #0x10 + str r2, [sp, #4] + asrs r0, r0, #0x10 + cmp r4, r0 + blt _08096432 + b _08096538 +_08096432: + movs r0, #1 + mov sl, r0 +_08096436: + movs r1, #0x10 + ldrsh r0, [r5, r1] + movs r2, #0x12 + ldrsh r1, [r5, r2] + add r1, sl + lsls r4, r4, #0x10 + asrs r6, r4, #0x10 + adds r1, r1, r6 + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetReflectionTypeByMetatileBehavior + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r4 + cmp r0, #0 + bne _0809653A + movs r1, #0x14 + ldrsh r0, [r5, r1] + movs r2, #0x16 + ldrsh r1, [r5, r2] + add r1, sl + adds r1, r1, r6 + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetReflectionTypeByMetatileBehavior + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0809653A + movs r2, #1 + ldr r1, [sp] + lsls r0, r1, #0x10 + asrs r1, r0, #0x10 + mov r8, r0 + cmp r2, r1 + bge _08096526 + movs r0, #0x80 + lsls r0, r0, #9 + asrs r7, r0, #0x10 +_08096490: + movs r1, #0x10 + ldrsh r0, [r5, r1] + lsls r1, r2, #0x10 + asrs r4, r1, #0x10 + adds r0, r0, r4 + movs r2, #0x12 + ldrsh r1, [r5, r2] + adds r1, r1, r7 + adds r1, r1, r6 + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetReflectionTypeByMetatileBehavior + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0809653A + movs r1, #0x10 + ldrsh r0, [r5, r1] + subs r0, r0, r4 + movs r2, #0x12 + ldrsh r1, [r5, r2] + adds r1, r1, r7 + adds r1, r1, r6 + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetReflectionTypeByMetatileBehavior + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0809653A + movs r1, #0x14 + ldrsh r0, [r5, r1] + adds r0, r0, r4 + movs r2, #0x16 + ldrsh r1, [r5, r2] + adds r1, r1, r7 + adds r1, r1, r6 + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetReflectionTypeByMetatileBehavior + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0809653A + movs r1, #0x14 + ldrsh r0, [r5, r1] + subs r0, r0, r4 + movs r2, #0x16 + ldrsh r1, [r5, r2] + adds r1, r1, r7 + adds r1, r1, r6 + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetReflectionTypeByMetatileBehavior + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0809653A + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r0, r8 + blt _08096490 +_08096526: + movs r1, #0x80 + lsls r1, r1, #9 + add r1, sb + lsrs r4, r1, #0x10 + ldr r2, [sp, #4] + lsls r0, r2, #0x10 + cmp r1, r0 + bge _08096538 + b _08096436 +_08096538: + movs r0, #0 +_0809653A: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end EventObjectCheckForReflectiveSurface + + thumb_func_start GetReflectionTypeByMetatileBehavior +GetReflectionTypeByMetatileBehavior: @ 0x0809654C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl MetatileBehavior_IsIce_2 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08096562 + movs r0, #1 + b _08096574 +_08096562: + adds r0, r4, #0 + bl MetatileBehavior_IsReflective + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08096572 + movs r0, #0 + b _08096574 +_08096572: + movs r0, #2 +_08096574: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetReflectionTypeByMetatileBehavior + + thumb_func_start GetLedgeJumpDirection +GetLedgeJumpDirection: @ 0x0809657C + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r4, r2, #0x18 + cmp r4, #0 + beq _080965C2 + cmp r4, #4 + bls _08096598 + subs r0, r4, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_08096598: + subs r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080965C8 + lsls r1, r4, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080965CC +_080965C2: + movs r0, #0 + b _080965D2 + .align 2, 0 +_080965C8: .4byte 0x084E6A68 +_080965CC: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_080965D2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetLedgeJumpDirection + + thumb_func_start SetEventObjectSpriteOamTableForLongGrass +SetEventObjectSpriteOamTableForLongGrass: @ 0x080965D8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + ldrb r0, [r5] + lsls r0, r0, #0x1b + cmp r0, #0 + blt _0809662C + ldrb r0, [r5, #0x1e] + bl MetatileBehavior_IsLongGrass_Duplicate + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809662C + ldrb r0, [r5, #0x1f] + bl MetatileBehavior_IsLongGrass_Duplicate + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809662C + adds r4, #0x42 + ldrb r1, [r4] + movs r6, #0x40 + rsbs r6, r6, #0 + adds r0, r6, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r4] + ldrb r0, [r5, #0xb] + lsrs r0, r0, #4 + bl sub_08096718 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809662C + ldrb r0, [r4] + adds r1, r6, #0 + ands r1, r0 + movs r0, #5 + orrs r1, r0 + strb r1, [r4] +_0809662C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetEventObjectSpriteOamTableForLongGrass + + thumb_func_start IsZCoordMismatchAt +IsZCoordMismatchAt: @ 0x08096634 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r0, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r1, r2, #0x10 + cmp r4, #0 + beq _08096662 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl MapGridGetZCoordAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _08096662 + cmp r0, #0xf + beq _08096662 + cmp r0, r4 + bne _08096666 +_08096662: + movs r0, #0 + b _08096668 +_08096666: + movs r0, #1 +_08096668: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsZCoordMismatchAt + + thumb_func_start UpdateEventObjectZCoordAndPriority +UpdateEventObjectZCoordAndPriority: @ 0x08096670 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #3] + lsls r0, r0, #0x1d + cmp r0, #0 + blt _080966BE + adds r0, r4, #0 + bl EventObjectUpdateZCoord + ldr r1, _080966C4 + ldrb r2, [r4, #0xb] + lsls r2, r2, #0x18 + lsrs r0, r2, #0x1c + adds r0, r0, r1 + ldrb r0, [r0] + adds r4, r5, #0 + adds r4, #0x42 + movs r1, #0x3f + ands r1, r0 + ldrb r3, [r4] + movs r0, #0x40 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4] + ldr r0, _080966C8 + lsrs r2, r2, #0x1c + adds r2, r2, r0 + movs r0, #3 + ldrb r1, [r2] + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r5, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #5] +_080966BE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080966C4: .4byte 0x084E6A98 +_080966C8: .4byte 0x084E6A88 + thumb_func_end UpdateEventObjectZCoordAndPriority + + thumb_func_start InitObjectPriorityByZCoord +InitObjectPriorityByZCoord: @ 0x080966CC + push {r4, lr} + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _08096710 + adds r2, r1, r2 + ldrb r2, [r2] + movs r3, #0x42 + adds r3, r3, r0 + mov ip, r3 + movs r3, #0x3f + ands r3, r2 + mov r2, ip + ldrb r4, [r2] + movs r2, #0x40 + rsbs r2, r2, #0 + ands r2, r4 + orrs r2, r3 + mov r3, ip + strb r2, [r3] + ldr r2, _08096714 + adds r1, r1, r2 + movs r3, #3 + ldrb r2, [r1] + ands r2, r3 + lsls r2, r2, #2 + ldrb r3, [r0, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r2 + strb r1, [r0, #5] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08096710: .4byte 0x084E6A98 +_08096714: .4byte 0x084E6A88 + thumb_func_end InitObjectPriorityByZCoord + + thumb_func_start sub_08096718 +sub_08096718: @ 0x08096718 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08096724 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08096724: .4byte 0x084E6A88 + thumb_func_end sub_08096718 + + thumb_func_start EventObjectUpdateZCoord +EventObjectUpdateZCoord: @ 0x08096728 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x10 + ldrsh r0, [r4, r1] + movs r2, #0x12 + ldrsh r1, [r4, r2] + bl MapGridGetZCoordAt + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r1, #0x14 + ldrsh r0, [r4, r1] + movs r2, #0x16 + ldrsh r1, [r4, r2] + bl MapGridGetZCoordAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r5, #0xf + beq _08096776 + cmp r0, #0xf + beq _08096776 + movs r3, #0xf + adds r0, r5, #0 + ands r0, r3 + ldrb r1, [r4, #0xb] + movs r2, #0x10 + rsbs r2, r2, #0 + ands r2, r1 + orrs r2, r0 + strb r2, [r4, #0xb] + cmp r5, #0 + beq _08096776 + cmp r5, #0xf + beq _08096776 + lsls r0, r5, #4 + ands r2, r3 + orrs r2, r0 + strb r2, [r4, #0xb] +_08096776: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end EventObjectUpdateZCoord + + thumb_func_start SetObjectSubpriorityByZCoord +SetObjectSubpriorityByZCoord: @ 0x0809677C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r3, r1, #0 + adds r3, #0x29 + movs r5, #0 + ldrsb r5, [r3, r5] + ldrh r4, [r1, #0x22] + ldr r3, _080967BC + subs r4, r4, r5 + ldrh r3, [r3] + adds r4, r4, r3 + adds r4, #8 + movs r3, #0xff + ands r4, r3 + lsrs r4, r4, #4 + movs r3, #0x10 + subs r3, r3, r4 + lsls r3, r3, #0x11 + ldr r4, _080967C0 + adds r0, r0, r4 + lsrs r3, r3, #0x10 + ldrb r0, [r0] + adds r3, r3, r0 + adds r2, r2, r3 + adds r1, #0x43 + strb r2, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080967BC: .4byte 0x02021B3A +_080967C0: .4byte 0x084E6A78 + thumb_func_end SetObjectSubpriorityByZCoord + + thumb_func_start EventObjectUpdateSubpriority +EventObjectUpdateSubpriority: @ 0x080967C4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x1d + cmp r0, #0 + blt _080967DA + ldrb r0, [r2, #0xb] + lsrs r0, r0, #4 + movs r2, #1 + bl SetObjectSubpriorityByZCoord +_080967DA: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end EventObjectUpdateSubpriority + + thumb_func_start AreZCoordsCompatible +AreZCoordsCompatible: @ 0x080967E0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r0, #0 + beq _080967F6 + cmp r1, #0 + beq _080967F6 + cmp r0, r1 + bne _080967FA +_080967F6: + movs r0, #1 + b _080967FC +_080967FA: + movs r0, #0 +_080967FC: + pop {r1} + bx r1 + thumb_func_end AreZCoordsCompatible + + thumb_func_start GroundEffect_SpawnOnTallGrass +GroundEffect_SpawnOnTallGrass: @ 0x08096800 + push {lr} + ldr r3, _08096844 + movs r2, #0x10 + ldrsh r1, [r0, r2] + str r1, [r3] + movs r2, #0x12 + ldrsh r1, [r0, r2] + str r1, [r3, #4] + ldrb r1, [r0, #0xb] + lsrs r1, r1, #4 + str r1, [r3, #8] + movs r1, #2 + str r1, [r3, #0xc] + ldrb r1, [r0, #8] + lsls r1, r1, #8 + ldrb r2, [r0, #9] + orrs r1, r2 + str r1, [r3, #0x10] + ldrb r0, [r0, #0xa] + str r0, [r3, #0x14] + ldr r0, _08096848 + ldr r1, [r0] + ldrb r0, [r1, #5] + lsls r0, r0, #8 + ldrb r1, [r1, #4] + orrs r0, r1 + str r0, [r3, #0x18] + movs r0, #1 + str r0, [r3, #0x1c] + movs r0, #4 + bl FieldEffectStart + pop {r0} + bx r0 + .align 2, 0 +_08096844: .4byte 0x020388A8 +_08096848: .4byte 0x03005AEC + thumb_func_end GroundEffect_SpawnOnTallGrass + + thumb_func_start GroundEffect_StepOnTallGrass +GroundEffect_StepOnTallGrass: @ 0x0809684C + push {lr} + ldr r3, _08096890 + movs r2, #0x10 + ldrsh r1, [r0, r2] + str r1, [r3] + movs r2, #0x12 + ldrsh r1, [r0, r2] + str r1, [r3, #4] + ldrb r1, [r0, #0xb] + lsrs r1, r1, #4 + str r1, [r3, #8] + movs r1, #2 + str r1, [r3, #0xc] + ldrb r1, [r0, #8] + lsls r1, r1, #8 + ldrb r2, [r0, #9] + orrs r1, r2 + str r1, [r3, #0x10] + ldrb r0, [r0, #0xa] + str r0, [r3, #0x14] + ldr r0, _08096894 + ldr r1, [r0] + ldrb r0, [r1, #5] + lsls r0, r0, #8 + ldrb r1, [r1, #4] + orrs r0, r1 + str r0, [r3, #0x18] + movs r0, #0 + str r0, [r3, #0x1c] + movs r0, #4 + bl FieldEffectStart + pop {r0} + bx r0 + .align 2, 0 +_08096890: .4byte 0x020388A8 +_08096894: .4byte 0x03005AEC + thumb_func_end GroundEffect_StepOnTallGrass + + thumb_func_start GroundEffect_SpawnOnLongGrass +GroundEffect_SpawnOnLongGrass: @ 0x08096898 + push {lr} + ldr r3, _080968DC + movs r2, #0x10 + ldrsh r1, [r0, r2] + str r1, [r3] + movs r2, #0x12 + ldrsh r1, [r0, r2] + str r1, [r3, #4] + ldrb r1, [r0, #0xb] + lsrs r1, r1, #4 + str r1, [r3, #8] + movs r1, #2 + str r1, [r3, #0xc] + ldrb r1, [r0, #8] + lsls r1, r1, #8 + ldrb r2, [r0, #9] + orrs r1, r2 + str r1, [r3, #0x10] + ldrb r0, [r0, #0xa] + str r0, [r3, #0x14] + ldr r0, _080968E0 + ldr r1, [r0] + ldrb r0, [r1, #5] + lsls r0, r0, #8 + ldrb r1, [r1, #4] + orrs r0, r1 + str r0, [r3, #0x18] + movs r0, #1 + str r0, [r3, #0x1c] + movs r0, #0x11 + bl FieldEffectStart + pop {r0} + bx r0 + .align 2, 0 +_080968DC: .4byte 0x020388A8 +_080968E0: .4byte 0x03005AEC + thumb_func_end GroundEffect_SpawnOnLongGrass + + thumb_func_start GroundEffect_StepOnLongGrass +GroundEffect_StepOnLongGrass: @ 0x080968E4 + push {lr} + ldr r3, _08096928 + movs r2, #0x10 + ldrsh r1, [r0, r2] + str r1, [r3] + movs r2, #0x12 + ldrsh r1, [r0, r2] + str r1, [r3, #4] + ldrb r1, [r0, #0xb] + lsrs r1, r1, #4 + str r1, [r3, #8] + movs r1, #2 + str r1, [r3, #0xc] + ldrb r1, [r0, #8] + lsls r1, r1, #8 + ldrb r2, [r0, #9] + orrs r1, r2 + str r1, [r3, #0x10] + ldrb r0, [r0, #0xa] + str r0, [r3, #0x14] + ldr r0, _0809692C + ldr r1, [r0] + ldrb r0, [r1, #5] + lsls r0, r0, #8 + ldrb r1, [r1, #4] + orrs r0, r1 + str r0, [r3, #0x18] + movs r0, #0 + str r0, [r3, #0x1c] + movs r0, #0x11 + bl FieldEffectStart + pop {r0} + bx r0 + .align 2, 0 +_08096928: .4byte 0x020388A8 +_0809692C: .4byte 0x03005AEC + thumb_func_end GroundEffect_StepOnLongGrass + + thumb_func_start GroundEffect_WaterReflection +GroundEffect_WaterReflection: @ 0x08096930 + push {lr} + movs r2, #0 + bl SetUpReflection + pop {r0} + bx r0 + thumb_func_end GroundEffect_WaterReflection + + thumb_func_start GroundEffect_IceReflection +GroundEffect_IceReflection: @ 0x0809693C + push {lr} + movs r2, #1 + bl SetUpReflection + pop {r0} + bx r0 + thumb_func_end GroundEffect_IceReflection + + thumb_func_start GroundEffect_FlowingWater +GroundEffect_FlowingWater: @ 0x08096948 + push {lr} + adds r1, r0, #0 + movs r0, #0x22 + bl sub_08097758 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end GroundEffect_FlowingWater + + thumb_func_start GroundEffect_SandTracks +GroundEffect_SandTracks: @ 0x08096958 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #5] + bl GetEventObjectGraphicsInfo + ldr r1, _08096980 + ldrb r0, [r0, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r3, [r0] + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl _call_via_r3 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08096980: .4byte 0x084E6AA8 + thumb_func_end GroundEffect_SandTracks + + thumb_func_start sub_08096984 +sub_08096984: @ 0x08096984 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #5] + bl GetEventObjectGraphicsInfo + ldr r1, _080969AC + ldrb r0, [r0, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r3, [r0] + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #1 + bl _call_via_r3 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080969AC: .4byte 0x084E6AA8 + thumb_func_end sub_08096984 + + thumb_func_start DoTracksGroundEffect_None +DoTracksGroundEffect_None: @ 0x080969B0 + bx lr + .align 2, 0 + thumb_func_end DoTracksGroundEffect_None + + thumb_func_start DoTracksGroundEffect_Footprints +DoTracksGroundEffect_Footprints: @ 0x080969B4 + push {r4, r5, lr} + sub sp, #4 + adds r5, r0, #0 + lsls r4, r2, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _080969FC + mov r0, sp + movs r2, #4 + bl memcpy + ldr r1, _08096A00 + movs r2, #0x14 + ldrsh r0, [r5, r2] + str r0, [r1] + movs r2, #0x16 + ldrsh r0, [r5, r2] + str r0, [r1, #4] + movs r0, #0x95 + str r0, [r1, #8] + movs r0, #2 + str r0, [r1, #0xc] + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + str r0, [r1, #0x10] + lsls r4, r4, #1 + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + bl FieldEffectStart + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080969FC: .4byte 0x084E6AB4 +_08096A00: .4byte 0x020388A8 + thumb_func_end DoTracksGroundEffect_Footprints + + thumb_func_start DoTracksGroundEffect_BikeTireTracks +DoTracksGroundEffect_BikeTireTracks: @ 0x08096A04 + push {r4, lr} + adds r4, r0, #0 + ldr r1, [r4, #0x10] + ldr r0, [r4, #0x14] + cmp r1, r0 + beq _08096A46 + ldr r2, _08096A4C + movs r1, #0x14 + ldrsh r0, [r4, r1] + str r0, [r2] + movs r1, #0x16 + ldrsh r0, [r4, r1] + str r0, [r2, #4] + movs r0, #0x95 + str r0, [r2, #8] + movs r0, #2 + str r0, [r2, #0xc] + ldr r3, _08096A50 + ldrb r1, [r4, #0x18] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + adds r0, r4, #0 + adds r0, #0x20 + ldrb r0, [r0] + lsls r0, r0, #2 + subs r0, #5 + adds r1, r1, r0 + adds r1, r1, r3 + ldrb r0, [r1] + str r0, [r2, #0x10] + movs r0, #0x23 + bl FieldEffectStart +_08096A46: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08096A4C: .4byte 0x020388A8 +_08096A50: .4byte 0x084E6AB8 + thumb_func_end DoTracksGroundEffect_BikeTireTracks + + thumb_func_start sub_08096A54 +sub_08096A54: @ 0x08096A54 + push {lr} + bl DoRippleFieldEffect + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08096A54 + + thumb_func_start GroundEffect_StepOnPuddle +GroundEffect_StepOnPuddle: @ 0x08096A60 + push {lr} + adds r1, r0, #0 + movs r0, #0xf + bl sub_08097758 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end GroundEffect_StepOnPuddle + + thumb_func_start GroundEffect_SandHeap +GroundEffect_SandHeap: @ 0x08096A70 + push {lr} + adds r1, r0, #0 + movs r0, #0x27 + bl sub_08097758 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end GroundEffect_SandHeap + + thumb_func_start GroundEffect_JumpOnTallGrass +GroundEffect_JumpOnTallGrass: @ 0x08096A80 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r5, r0, #0 + adds r6, r1, #0 + ldr r1, _08096AD4 + movs r2, #0x10 + ldrsh r0, [r5, r2] + str r0, [r1] + movs r4, #0x12 + ldrsh r0, [r5, r4] + str r0, [r1, #4] + ldrb r0, [r5, #0xb] + lsrs r0, r0, #4 + str r0, [r1, #8] + movs r0, #2 + str r0, [r1, #0xc] + movs r0, #0xc + bl FieldEffectStart + ldrb r0, [r5, #8] + ldrb r1, [r5, #9] + ldrb r2, [r5, #0xa] + movs r7, #0x10 + ldrsh r3, [r5, r7] + movs r7, #0x12 + ldrsh r4, [r5, r7] + str r4, [sp] + bl FindTallGrassFieldEffectSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + bne _08096ACA + adds r0, r5, #0 + adds r1, r6, #0 + bl GroundEffect_SpawnOnTallGrass +_08096ACA: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08096AD4: .4byte 0x020388A8 + thumb_func_end GroundEffect_JumpOnTallGrass + + thumb_func_start GroundEffect_JumpOnLongGrass +GroundEffect_JumpOnLongGrass: @ 0x08096AD8 + push {lr} + ldr r2, _08096AFC + movs r3, #0x10 + ldrsh r1, [r0, r3] + str r1, [r2] + movs r3, #0x12 + ldrsh r1, [r0, r3] + str r1, [r2, #4] + ldrb r0, [r0, #0xb] + lsrs r0, r0, #4 + str r0, [r2, #8] + movs r0, #2 + str r0, [r2, #0xc] + movs r0, #0x12 + bl FieldEffectStart + pop {r0} + bx r0 + .align 2, 0 +_08096AFC: .4byte 0x020388A8 + thumb_func_end GroundEffect_JumpOnLongGrass + + thumb_func_start GroundEffect_JumpOnShallowWater +GroundEffect_JumpOnShallowWater: @ 0x08096B00 + push {r4, lr} + ldr r3, _08096B2C + movs r4, #0x10 + ldrsh r2, [r0, r4] + str r2, [r3] + movs r4, #0x12 + ldrsh r2, [r0, r4] + str r2, [r3, #4] + ldrb r0, [r0, #0xb] + lsrs r0, r0, #4 + str r0, [r3, #8] + ldrb r0, [r1, #5] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1e + str r0, [r3, #0xc] + movs r0, #0x10 + bl FieldEffectStart + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08096B2C: .4byte 0x020388A8 + thumb_func_end GroundEffect_JumpOnShallowWater + + thumb_func_start GroundEffect_JumpOnWater +GroundEffect_JumpOnWater: @ 0x08096B30 + push {r4, lr} + ldr r3, _08096B5C + movs r4, #0x10 + ldrsh r2, [r0, r4] + str r2, [r3] + movs r4, #0x12 + ldrsh r2, [r0, r4] + str r2, [r3, #4] + ldrb r0, [r0, #0xb] + lsrs r0, r0, #4 + str r0, [r3, #8] + ldrb r0, [r1, #5] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1e + str r0, [r3, #0xc] + movs r0, #0xe + bl FieldEffectStart + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08096B5C: .4byte 0x020388A8 + thumb_func_end GroundEffect_JumpOnWater + + thumb_func_start GroundEffect_JumpLandingDust +GroundEffect_JumpLandingDust: @ 0x08096B60 + push {r4, lr} + ldr r3, _08096B8C + movs r4, #0x10 + ldrsh r2, [r0, r4] + str r2, [r3] + movs r4, #0x12 + ldrsh r2, [r0, r4] + str r2, [r3, #4] + ldrb r0, [r0, #0xb] + lsrs r0, r0, #4 + str r0, [r3, #8] + ldrb r0, [r1, #5] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1e + str r0, [r3, #0xc] + movs r0, #0xa + bl FieldEffectStart + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08096B8C: .4byte 0x020388A8 + thumb_func_end GroundEffect_JumpLandingDust + + thumb_func_start GroundEffect_ShortGrass +GroundEffect_ShortGrass: @ 0x08096B90 + push {lr} + adds r1, r0, #0 + movs r0, #0x29 + bl sub_08097758 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end GroundEffect_ShortGrass + + thumb_func_start GroundEffect_HotSprings +GroundEffect_HotSprings: @ 0x08096BA0 + push {lr} + adds r1, r0, #0 + movs r0, #0x2a + bl sub_08097758 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end GroundEffect_HotSprings + + thumb_func_start GroundEffect_Seaweed +GroundEffect_Seaweed: @ 0x08096BB0 + push {lr} + ldr r2, _08096BCC + movs r3, #0x10 + ldrsh r1, [r0, r3] + str r1, [r2] + movs r1, #0x12 + ldrsh r0, [r0, r1] + str r0, [r2, #4] + movs r0, #0x35 + bl FieldEffectStart + pop {r0} + bx r0 + .align 2, 0 +_08096BCC: .4byte 0x020388A8 + thumb_func_end GroundEffect_Seaweed + + thumb_func_start DoFlaggedGroundEffects +DoFlaggedGroundEffects: @ 0x08096BD0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r7, r1, #0 + adds r5, r2, #0 + bl EventObjectIsFarawayIslandMew + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08096BF4 + adds r0, r6, #0 + bl sub_081D40D8 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08096C1C +_08096BF4: + movs r4, #0 + ldr r0, _08096C28 + mov r8, r0 +_08096BFA: + movs r0, #1 + ands r0, r5 + cmp r0, #0 + beq _08096C10 + lsls r0, r4, #2 + add r0, r8 + ldr r2, [r0] + adds r0, r6, #0 + adds r1, r7, #0 + bl _call_via_r2 +_08096C10: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsrs r5, r5, #1 + cmp r4, #0x13 + bls _08096BFA +_08096C1C: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08096C28: .4byte 0x084E6AC8 + thumb_func_end DoFlaggedGroundEffects + + thumb_func_start filters_out_some_ground_effects +filters_out_some_ground_effects: @ 0x08096C2C + push {lr} + adds r2, r0, #0 + adds r3, r1, #0 + ldrb r0, [r2] + lsls r0, r0, #0x1b + cmp r0, #0 + bge _08096C5A + ldrb r1, [r2, #2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + adds r1, #8 + ands r0, r1 + subs r1, #0x18 + ands r0, r1 + strb r0, [r2, #2] + ldr r0, [r3] + ldr r1, _08096C60 + ands r0, r1 + str r0, [r3] +_08096C5A: + pop {r0} + bx r0 + .align 2, 0 +_08096C60: .4byte 0xFFF9F7BD + thumb_func_end filters_out_some_ground_effects + + thumb_func_start FilterOutStepOnPuddleGroundEffectIfJumping +FilterOutStepOnPuddleGroundEffectIfJumping: @ 0x08096C64 + push {lr} + adds r2, r1, #0 + ldrb r0, [r0] + lsls r0, r0, #0x1a + cmp r0, #0 + bge _08096C78 + ldr r0, [r2] + ldr r1, _08096C7C + ands r0, r1 + str r0, [r2] +_08096C78: + pop {r0} + bx r0 + .align 2, 0 +_08096C7C: .4byte 0xFFFFFBFF + thumb_func_end FilterOutStepOnPuddleGroundEffectIfJumping + + thumb_func_start DoGroundEffects_OnSpawn +DoGroundEffects_OnSpawn: @ 0x08096C80 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4] + lsls r0, r0, #0x1d + cmp r0, #0 + bge _08096CC4 + movs r0, #0 + str r0, [sp] + adds r0, r4, #0 + bl UpdateEventObjectZCoordAndPriority + adds r0, r4, #0 + mov r1, sp + bl GetAllGroundEffectFlags_OnSpawn + adds r0, r4, #0 + adds r1, r5, #0 + bl SetEventObjectSpriteOamTableForLongGrass + ldr r2, [sp] + adds r0, r4, #0 + adds r1, r5, #0 + bl DoFlaggedGroundEffects + ldrb r1, [r4] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r4] +_08096CC4: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end DoGroundEffects_OnSpawn + + thumb_func_start DoGroundEffects_OnBeginStep +DoGroundEffects_OnBeginStep: @ 0x08096CCC + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4] + lsls r0, r0, #0x1d + cmp r0, #0 + bge _08096D18 + movs r0, #0 + str r0, [sp] + adds r0, r4, #0 + bl UpdateEventObjectZCoordAndPriority + adds r0, r4, #0 + mov r1, sp + bl GetAllGroundEffectFlags_OnBeginStep + adds r0, r4, #0 + adds r1, r5, #0 + bl SetEventObjectSpriteOamTableForLongGrass + adds r0, r4, #0 + mov r1, sp + bl filters_out_some_ground_effects + ldr r2, [sp] + adds r0, r4, #0 + adds r1, r5, #0 + bl DoFlaggedGroundEffects + ldrb r1, [r4] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r4] +_08096D18: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end DoGroundEffects_OnBeginStep + + thumb_func_start DoGroundEffects_OnFinishStep +DoGroundEffects_OnFinishStep: @ 0x08096D20 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4] + lsls r0, r0, #0x1c + cmp r0, #0 + bge _08096D6C + movs r0, #0 + str r0, [sp] + adds r0, r4, #0 + bl UpdateEventObjectZCoordAndPriority + adds r0, r4, #0 + mov r1, sp + bl GetAllGroundEffectFlags_OnFinishStep + adds r0, r4, #0 + adds r1, r5, #0 + bl SetEventObjectSpriteOamTableForLongGrass + adds r0, r4, #0 + mov r1, sp + bl FilterOutStepOnPuddleGroundEffectIfJumping + ldr r2, [sp] + adds r0, r4, #0 + adds r1, r5, #0 + bl DoFlaggedGroundEffects + ldrb r1, [r4] + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x21 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r4] +_08096D6C: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end DoGroundEffects_OnFinishStep + + thumb_func_start FreezeEventObject +FreezeEventObject: @ 0x08096D74 + push {r4, r5, lr} + adds r5, r0, #0 + ldrh r1, [r5] + movs r0, #0xa0 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08096DFC + ldrb r0, [r5, #1] + movs r4, #1 + orrs r0, r4 + strb r0, [r5, #1] + ldr r3, _08096DF8 + ldrb r1, [r5, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x2c + ldrb r1, [r0] + lsls r1, r1, #0x19 + lsrs r1, r1, #0x1f + lsls r1, r1, #7 + ldrb r2, [r5, #2] + movs r0, #0x7f + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #2] + ldrb r1, [r5, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x2c + ldrb r1, [r0] + lsrs r1, r1, #7 + ands r1, r4 + ldrb r2, [r5, #3] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #3] + ldrb r1, [r5, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x2c + ldrb r1, [r0] + movs r2, #0x40 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r5, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x2c + ldrb r1, [r0] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0] + movs r0, #0 + b _08096DFE + .align 2, 0 +_08096DF8: .4byte 0x020205AC +_08096DFC: + movs r0, #1 +_08096DFE: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end FreezeEventObject + + thumb_func_start FreezeEventObjects +FreezeEventObjects: @ 0x08096E04 + push {r4, r5, lr} + movs r4, #0 + ldr r5, _08096E38 +_08096E0A: + lsls r0, r4, #3 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r1, r0, r5 + ldrb r0, [r1] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _08096E28 + ldr r0, _08096E3C + ldrb r0, [r0, #5] + cmp r4, r0 + beq _08096E28 + adds r0, r1, #0 + bl FreezeEventObject +_08096E28: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xf + bls _08096E0A + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08096E38: .4byte 0x02036FF0 +_08096E3C: .4byte 0x02037230 + thumb_func_end FreezeEventObjects + + thumb_func_start FreezeEventObjectsExceptOne +FreezeEventObjectsExceptOne: @ 0x08096E40 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r4, #0 + ldr r6, _08096E7C +_08096E4A: + cmp r4, r5 + beq _08096E6C + lsls r0, r4, #3 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r1, r0, r6 + ldrb r0, [r1] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _08096E6C + ldr r0, _08096E80 + ldrb r0, [r0, #5] + cmp r4, r0 + beq _08096E6C + adds r0, r1, #0 + bl FreezeEventObject +_08096E6C: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xf + bls _08096E4A + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08096E7C: .4byte 0x02036FF0 +_08096E80: .4byte 0x02037230 + thumb_func_end FreezeEventObjectsExceptOne + + thumb_func_start UnfreezeEventObject +UnfreezeEventObject: @ 0x08096E84 + push {r4, r5, lr} + adds r5, r0, #0 + ldrh r2, [r5] + ldr r1, _08096EE4 + adds r0, r1, #0 + ands r0, r2 + cmp r0, r1 + bne _08096EDC + ldrb r1, [r5, #1] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r5, #1] + ldr r4, _08096EE8 + ldrb r0, [r5, #4] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r2, [r5, #2] + adds r1, #0x2c + lsrs r2, r2, #7 + lsls r2, r2, #6 + ldrb r3, [r1] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1] + ldrb r0, [r5, #4] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r4 + ldrb r1, [r5, #3] + lsls r1, r1, #0x1f + lsrs r1, r1, #0x1f + adds r2, #0x2c + lsls r1, r1, #7 + ldrb r3, [r2] + movs r0, #0x7f + ands r0, r3 + orrs r0, r1 + strb r0, [r2] +_08096EDC: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08096EE4: .4byte 0x00000101 +_08096EE8: .4byte 0x020205AC + thumb_func_end UnfreezeEventObject + + thumb_func_start UnfreezeEventObjects +UnfreezeEventObjects: @ 0x08096EEC + push {r4, r5, lr} + movs r4, #0 + ldr r5, _08096F18 +_08096EF2: + lsls r0, r4, #3 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r1, r0, r5 + ldrb r0, [r1] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _08096F08 + adds r0, r1, #0 + bl UnfreezeEventObject +_08096F08: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xf + bls _08096EF2 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08096F18: .4byte 0x02036FF0 + thumb_func_end UnfreezeEventObjects + + thumb_func_start Step1 +Step1: @ 0x08096F1C + lsls r1, r1, #0x18 + ldr r2, _08096F38 + lsrs r1, r1, #0x16 + adds r1, r1, r2 + ldrh r2, [r1] + ldrh r3, [r0, #0x20] + adds r2, r2, r3 + strh r2, [r0, #0x20] + ldrh r1, [r1, #2] + ldrh r2, [r0, #0x22] + adds r1, r1, r2 + strh r1, [r0, #0x22] + bx lr + .align 2, 0 +_08096F38: .4byte 0x084E5FD0 + thumb_func_end Step1 + + thumb_func_start Step2 +Step2: @ 0x08096F3C + lsls r1, r1, #0x18 + ldr r2, _08096F5C + lsrs r1, r1, #0x16 + adds r1, r1, r2 + ldrh r2, [r1] + lsls r2, r2, #1 + ldrh r3, [r0, #0x20] + adds r2, r2, r3 + strh r2, [r0, #0x20] + ldrh r1, [r1, #2] + lsls r1, r1, #1 + ldrh r2, [r0, #0x22] + adds r1, r1, r2 + strh r1, [r0, #0x22] + bx lr + .align 2, 0 +_08096F5C: .4byte 0x084E5FD0 + thumb_func_end Step2 + + thumb_func_start Step3 +Step3: @ 0x08096F60 + lsls r1, r1, #0x18 + ldr r2, _08096F84 + lsrs r1, r1, #0x16 + adds r1, r1, r2 + ldrh r2, [r1] + lsls r3, r2, #1 + adds r2, r2, r3 + ldrh r3, [r0, #0x20] + adds r2, r2, r3 + strh r2, [r0, #0x20] + ldrh r1, [r1, #2] + lsls r2, r1, #1 + adds r1, r1, r2 + ldrh r2, [r0, #0x22] + adds r1, r1, r2 + strh r1, [r0, #0x22] + bx lr + .align 2, 0 +_08096F84: .4byte 0x084E5FD0 + thumb_func_end Step3 + + thumb_func_start Step4 +Step4: @ 0x08096F88 + lsls r1, r1, #0x18 + ldr r2, _08096FA8 + lsrs r1, r1, #0x16 + adds r1, r1, r2 + ldrh r2, [r1] + lsls r2, r2, #2 + ldrh r3, [r0, #0x20] + adds r2, r2, r3 + strh r2, [r0, #0x20] + ldrh r1, [r1, #2] + lsls r1, r1, #2 + ldrh r2, [r0, #0x22] + adds r1, r1, r2 + strh r1, [r0, #0x22] + bx lr + .align 2, 0 +_08096FA8: .4byte 0x084E5FD0 + thumb_func_end Step4 + + thumb_func_start Step8 +Step8: @ 0x08096FAC + lsls r1, r1, #0x18 + ldr r2, _08096FCC + lsrs r1, r1, #0x16 + adds r1, r1, r2 + ldrh r2, [r1] + lsls r2, r2, #3 + ldrh r3, [r0, #0x20] + adds r2, r2, r3 + strh r2, [r0, #0x20] + ldrh r1, [r1, #2] + lsls r1, r1, #3 + ldrh r2, [r0, #0x22] + adds r1, r1, r2 + strh r1, [r0, #0x22] + bx lr + .align 2, 0 +_08096FCC: .4byte 0x084E5FD0 + thumb_func_end Step8 + + thumb_func_start oamt_npc_ministep_reset +oamt_npc_ministep_reset: @ 0x08096FD0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r3, #0 + strh r1, [r0, #0x34] + strh r2, [r0, #0x36] + strh r3, [r0, #0x38] + bx lr + .align 2, 0 + thumb_func_end oamt_npc_ministep_reset + + thumb_func_start obj_npc_ministep +obj_npc_ministep: @ 0x08096FE4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0809703C + movs r0, #0x36 + ldrsh r2, [r4, r0] + lsls r0, r2, #1 + adds r0, r0, r5 + movs r3, #0x38 + ldrsh r1, [r4, r3] + movs r3, #0 + ldrsh r0, [r0, r3] + cmp r1, r0 + bge _08097044 + ldr r1, _08097040 + lsls r0, r2, #2 + adds r0, r0, r1 + movs r1, #0x38 + ldrsh r2, [r4, r1] + ldr r0, [r0] + lsls r2, r2, #2 + adds r2, r2, r0 + ldrh r1, [r4, #0x34] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, [r2] + adds r0, r4, #0 + bl _call_via_r2 + ldrh r0, [r4, #0x38] + adds r0, #1 + strh r0, [r4, #0x38] + movs r2, #0x36 + ldrsh r1, [r4, r2] + lsls r1, r1, #1 + adds r1, r1, r5 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r3, #0 + ldrsh r1, [r1, r3] + cmp r0, r1 + blt _08097044 + movs r0, #1 + b _08097046 + .align 2, 0 +_0809703C: .4byte 0x084E6BBC +_08097040: .4byte 0x084E6BA8 +_08097044: + movs r0, #0 +_08097046: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end obj_npc_ministep + + thumb_func_start sub_0809704C +sub_0809704C: @ 0x0809704C + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r2, #0 + strh r1, [r0, #0x34] + strh r2, [r0, #0x36] + strh r2, [r0, #0x38] + bx lr + .align 2, 0 + thumb_func_end sub_0809704C + + thumb_func_start sub_0809705C +sub_0809705C: @ 0x0809705C + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x36] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0809707C + ldrh r1, [r4, #0x34] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl Step1 + ldrh r0, [r4, #0x38] + adds r0, #1 + strh r0, [r4, #0x38] +_0809707C: + ldrh r0, [r4, #0x36] + adds r0, #1 + strh r0, [r4, #0x36] + movs r1, #0x38 + ldrsh r0, [r4, r1] + cmp r0, #0xf + bgt _0809708E + movs r0, #0 + b _08097090 +_0809708E: + movs r0, #1 +_08097090: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0809705C + + thumb_func_start sub_08097098 +sub_08097098: @ 0x08097098 + ldr r1, _080970A8 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + bx lr + .align 2, 0 +_080970A8: .4byte 0x084E6C0E + thumb_func_end sub_08097098 + + thumb_func_start sub_080970AC +sub_080970AC: @ 0x080970AC + ldr r1, _080970BC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + bx lr + .align 2, 0 +_080970BC: .4byte 0x084E6BC6 + thumb_func_end sub_080970AC + + thumb_func_start sub_080970C0 +sub_080970C0: @ 0x080970C0 + movs r1, #0 + strh r1, [r0, #0x3a] + strh r1, [r0, #0x3c] + bx lr + thumb_func_end sub_080970C0 + + thumb_func_start sub_080970C8 +sub_080970C8: @ 0x080970C8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r6, #0 + movs r1, #0x3c + ldrsh r0, [r5, r1] + cmp r0, #1 + beq _080970FE + cmp r0, #1 + bgt _080970E0 + cmp r0, #0 + beq _080970EA + b _08097162 +_080970E0: + cmp r0, #2 + beq _08097126 + cmp r0, #3 + beq _0809713A + b _08097162 +_080970EA: + movs r2, #0x3a + ldrsh r0, [r5, r2] + bl sub_080970AC + ldrh r1, [r5, #0x24] + adds r0, r0, r1 + strh r0, [r5, #0x24] + movs r2, #0x3a + ldrsh r0, [r5, r2] + b _08097158 +_080970FE: + ldrh r0, [r5, #0x3a] + movs r4, #0x47 + subs r0, r4, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + bl sub_080970AC + ldrh r1, [r5, #0x24] + subs r1, r1, r0 + strh r1, [r5, #0x24] + ldrh r0, [r5, #0x3a] + subs r4, r4, r0 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + adds r0, r4, #0 + bl sub_08097098 + ldrh r2, [r5, #0x26] + adds r0, r0, r2 + b _08097160 +_08097126: + movs r1, #0x3a + ldrsh r0, [r5, r1] + bl sub_080970AC + ldrh r1, [r5, #0x24] + subs r1, r1, r0 + strh r1, [r5, #0x24] + movs r2, #0x3a + ldrsh r0, [r5, r2] + b _08097158 +_0809713A: + ldrh r0, [r5, #0x3a] + movs r4, #0x47 + subs r0, r4, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + bl sub_080970AC + ldrh r2, [r5, #0x24] + adds r0, r0, r2 + strh r0, [r5, #0x24] + ldrh r0, [r5, #0x3a] + subs r4, r4, r0 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + adds r0, r4, #0 +_08097158: + bl sub_08097098 + ldrh r1, [r5, #0x26] + adds r0, r0, r1 +_08097160: + strh r0, [r5, #0x26] +_08097162: + ldrh r0, [r5, #0x3a] + adds r0, #1 + movs r1, #0 + strh r0, [r5, #0x3a] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x48 + bne _0809717A + strh r1, [r5, #0x3a] + ldrh r0, [r5, #0x3c] + adds r0, #1 + strh r0, [r5, #0x3c] +_0809717A: + movs r2, #0x3c + ldrsh r0, [r5, r2] + cmp r0, #4 + bne _08097188 + strh r1, [r5, #0x26] + strh r1, [r5, #0x24] + movs r6, #1 +_08097188: + adds r0, r6, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_080970C8 + + thumb_func_start sub_08097190 +sub_08097190: @ 0x08097190 + lsls r1, r1, #0x18 + ldr r2, _080971A8 + lsrs r1, r1, #0x16 + adds r1, r1, r2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldr r1, [r1] + adds r1, r1, r0 + movs r0, #0 + ldrsb r0, [r1, r0] + bx lr + .align 2, 0 +_080971A8: .4byte 0x084E6C88 + thumb_func_end sub_08097190 + + thumb_func_start sub_080971AC +sub_080971AC: @ 0x080971AC + push {r4, lr} + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r4, #0 + strh r1, [r0, #0x34] + strh r2, [r0, #0x36] + strh r3, [r0, #0x38] + strh r4, [r0, #0x3a] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080971AC + + thumb_func_start sub_080971CC +sub_080971CC: @ 0x080971CC + push {r4, r5, r6, lr} + sub sp, #0xc + adds r4, r0, #0 + ldr r1, _0809724C + mov r0, sp + movs r2, #6 + bl memcpy + add r5, sp, #8 + ldr r1, _08097250 + adds r0, r5, #0 + movs r2, #3 + bl memcpy + movs r6, #0 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _080971FE + ldrh r1, [r4, #0x34] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl Step1 +_080971FE: + movs r2, #0x3a + ldrsh r0, [r4, r2] + movs r2, #0x36 + ldrsh r1, [r4, r2] + adds r1, r5, r1 + ldrb r1, [r1] + asrs r0, r1 + ldrh r1, [r4, #0x38] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl sub_08097190 + strh r0, [r4, #0x26] + ldrh r1, [r4, #0x3a] + adds r1, #1 + strh r1, [r4, #0x3a] + movs r2, #0x36 + ldrsh r0, [r4, r2] + lsls r0, r0, #1 + add r0, sp + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r2, r0, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + asrs r0, r0, #0x11 + cmp r1, r0 + bne _08097238 + movs r6, #1 +_08097238: + cmp r1, r2 + blt _08097242 + movs r0, #0 + strh r0, [r4, #0x26] + movs r6, #0xff +_08097242: + adds r0, r6, #0 + add sp, #0xc + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0809724C: .4byte 0x084E6C94 +_08097250: .4byte 0x084E6C9A + thumb_func_end sub_080971CC + + thumb_func_start sub_08097254 +sub_08097254: @ 0x08097254 + push {r4, r5, r6, lr} + sub sp, #0xc + adds r5, r0, #0 + ldr r1, _080972E0 + mov r0, sp + movs r2, #6 + bl memcpy + add r4, sp, #8 + ldr r1, _080972E4 + adds r0, r4, #0 + movs r2, #3 + bl memcpy + movs r6, #0 + movs r1, #0x36 + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _08097290 + ldrh r1, [r5, #0x3a] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08097290 + ldrh r1, [r5, #0x34] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl Step1 +_08097290: + movs r2, #0x3a + ldrsh r0, [r5, r2] + movs r2, #0x36 + ldrsh r1, [r5, r2] + adds r1, r4, r1 + ldrb r1, [r1] + asrs r0, r1 + ldrh r1, [r5, #0x38] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl sub_08097190 + strh r0, [r5, #0x26] + ldrh r1, [r5, #0x3a] + adds r1, #1 + strh r1, [r5, #0x3a] + movs r2, #0x36 + ldrsh r0, [r5, r2] + lsls r0, r0, #1 + add r0, sp + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r2, r0, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + asrs r0, r0, #0x11 + cmp r1, r0 + bne _080972CA + movs r6, #1 +_080972CA: + cmp r1, r2 + blt _080972D4 + movs r0, #0 + strh r0, [r5, #0x26] + movs r6, #0xff +_080972D4: + adds r0, r6, #0 + add sp, #0xc + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080972E0: .4byte 0x084E6C9E +_080972E4: .4byte 0x084E6CA4 + thumb_func_end sub_08097254 + + thumb_func_start SetMovementDelay +SetMovementDelay: @ 0x080972E8 + strh r1, [r0, #0x34] + bx lr + thumb_func_end SetMovementDelay + + thumb_func_start WaitForMovementDelay +WaitForMovementDelay: @ 0x080972EC + push {lr} + ldrh r1, [r0, #0x34] + subs r1, #1 + strh r1, [r0, #0x34] + lsls r1, r1, #0x10 + cmp r1, #0 + beq _080972FE + movs r0, #0 + b _08097300 +_080972FE: + movs r0, #1 +_08097300: + pop {r1} + bx r1 + thumb_func_end WaitForMovementDelay + + thumb_func_start SetAndStartSpriteAnim +SetAndStartSpriteAnim: @ 0x08097304 + push {r4, lr} + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r3, r0, #0 + adds r3, #0x2a + strb r1, [r3] + adds r4, r0, #0 + adds r4, #0x2c + ldrb r3, [r4] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r3 + strb r1, [r4] + adds r1, r2, #0 + bl SeekSpriteAnim + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetAndStartSpriteAnim + + thumb_func_start SpriteAnimEnded +SpriteAnimEnded: @ 0x0809732C + push {lr} + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _0809733E + movs r0, #0 + b _08097340 +_0809733E: + movs r0, #1 +_08097340: + pop {r1} + bx r1 + thumb_func_end SpriteAnimEnded + + thumb_func_start UpdateEventObjectSpriteVisibility +UpdateEventObjectSpriteVisibility: @ 0x08097344 + push {r4, r5, r6, lr} + mov ip, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r3, ip + adds r3, #0x3e + movs r0, #1 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r3] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _080973AC + mov r0, ip + ldrh r1, [r0, #0x24] + ldrh r2, [r0, #0x20] + adds r1, r1, r2 + mov r4, ip + adds r4, #0x28 + movs r0, #0 + ldrsb r0, [r4, r0] + ldr r2, _080973A4 + adds r0, r0, r1 + ldrh r2, [r2] + adds r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + mov r0, ip + ldrh r1, [r0, #0x26] + ldrh r2, [r0, #0x22] + adds r1, r1, r2 + subs r3, #0x15 + movs r0, #0 + ldrsb r0, [r3, r0] + ldr r2, _080973A8 + adds r0, r0, r1 + ldrh r2, [r2] + adds r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r2, r3, #0 + b _080973DA + .align 2, 0 +_080973A4: .4byte 0x02021B38 +_080973A8: .4byte 0x02021B3A +_080973AC: + mov r0, ip + ldrh r1, [r0, #0x24] + ldrh r2, [r0, #0x20] + adds r1, r1, r2 + mov r3, ip + adds r3, #0x28 + movs r0, #0 + ldrsb r0, [r3, r0] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + mov r0, ip + ldrh r1, [r0, #0x26] + ldrh r2, [r0, #0x22] + adds r1, r1, r2 + mov r2, ip + adds r2, #0x29 + movs r0, #0 + ldrsb r0, [r2, r0] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r4, r3, #0 +_080973DA: + ldrb r0, [r4] + lsls r0, r0, #0x18 + asrs r0, r0, #0x19 + subs r0, r6, r0 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldrb r0, [r2] + lsls r0, r0, #0x18 + asrs r0, r0, #0x19 + subs r0, r5, r0 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xff + bgt _08097406 + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x10 + rsbs r1, r1, #0 + cmp r0, r1 + bge _08097412 +_08097406: + mov r4, ip + adds r4, #0x3e + ldrb r0, [r4] + movs r1, #4 + orrs r0, r1 + strb r0, [r4] +_08097412: + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xaf + bgt _08097426 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x10 + rsbs r1, r1, #0 + cmp r0, r1 + bge _08097432 +_08097426: + mov r0, ip + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_08097432: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end UpdateEventObjectSpriteVisibility + + thumb_func_start UpdateEventObjectSpriteSubpriorityAndVisibility +UpdateEventObjectSpriteSubpriorityAndVisibility: @ 0x08097438 + push {r4, lr} + adds r4, r0, #0 + bl sub_080976D8 + ldrh r0, [r4, #0x30] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r4, #0 + movs r2, #1 + bl SetObjectSubpriorityByZCoord + ldrh r1, [r4, #0x32] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl UpdateEventObjectSpriteVisibility + pop {r4} + pop {r0} + bx r0 + thumb_func_end UpdateEventObjectSpriteSubpriorityAndVisibility + + thumb_func_start sub_08097460 +sub_08097460: @ 0x08097460 + push {r4, r5, lr} + movs r5, #0 + movs r4, #0x3f +_08097466: + ldr r0, _08097494 + adds r2, r5, r0 + adds r0, r2, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08097486 + ldr r1, [r2, #0x1c] + ldr r0, _08097498 + cmp r1, r0 + bne _08097486 + adds r0, r2, #0 + bl DestroySprite +_08097486: + adds r5, #0x44 + subs r4, #1 + cmp r4, #0 + bge _08097466 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08097494: .4byte 0x020205AC +_08097498: .4byte 0x08097439 + thumb_func_end sub_08097460 + + thumb_func_start sub_0809749C +sub_0809749C: @ 0x0809749C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r3, #0 + ldr r6, _080974D0 + movs r4, #0 +_080974A8: + adds r2, r4, r6 + adds r0, r2, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080974D8 + ldr r1, [r2, #0x1c] + ldr r0, _080974D4 + cmp r1, r0 + bne _080974D8 + ldrh r0, [r2, #0x2e] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r5 + bne _080974D8 + adds r0, r3, #0 + b _080974E2 + .align 2, 0 +_080974D0: .4byte 0x020205AC +_080974D4: .4byte 0x08097439 +_080974D8: + adds r4, #0x44 + adds r3, #1 + cmp r3, #0x3f + ble _080974A8 + movs r0, #0x40 +_080974E2: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_0809749C + + thumb_func_start sub_080974E8 +sub_080974E8: @ 0x080974E8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + bl sub_0809749C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _0809751A + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _08097520 + adds r4, r4, r0 + adds r0, r5, #0 + bl GetJumpInPlaceMovementAction + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim +_0809751A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08097520: .4byte 0x020205AC + thumb_func_end sub_080974E8 + + thumb_func_start sub_08097524 +sub_08097524: @ 0x08097524 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + bl sub_0809749C + adds r1, r0, #0 + cmp r1, #0x40 + beq _080975AE + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08097588 + adds r4, r0, r1 + adds r0, r5, #0 + bl GetEventObjectGraphicsInfo + ldrh r3, [r4, #4] + lsls r3, r3, #0x16 + ldr r1, [r0, #0x10] + ldr r2, [r1, #4] + ldr r1, [r1] + str r1, [r4] + str r2, [r4, #4] + lsrs r3, r3, #0x16 + ldrh r2, [r4, #4] + ldr r1, _0809758C + ands r1, r2 + orrs r1, r3 + strh r1, [r4, #4] + ldrb r2, [r0, #0xc] + lsls r2, r2, #0x1c + lsrs r2, r2, #0x18 + ldrb r3, [r4, #5] + movs r1, #0xf + ands r1, r3 + orrs r1, r2 + strb r1, [r4, #5] + ldr r1, [r0, #0x1c] + str r1, [r4, #0xc] + ldr r1, [r0, #0x14] + cmp r1, #0 + bne _08097590 + str r1, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x42 + strb r1, [r0] + b _080975A6 + .align 2, 0 +_08097588: .4byte 0x020205AC +_0809758C: .4byte 0xFFFFFC00 +_08097590: + adds r0, r4, #0 + bl SetSubspriteTables + adds r2, r4, #0 + adds r2, #0x42 + ldrb r0, [r2] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x80 + orrs r1, r0 + strb r1, [r2] +_080975A6: + adds r0, r4, #0 + movs r1, #0 + bl StartSpriteAnim +_080975AE: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_08097524 + + thumb_func_start sub_080975B4 +sub_080975B4: @ 0x080975B4 + push {r4, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_0809749C + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r3, r2, #0 + cmp r2, #0x40 + beq _080975F0 + cmp r4, #0 + beq _080975E4 + ldr r0, _080975E0 + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + movs r0, #1 + strh r0, [r1, #0x32] + b _080975F0 + .align 2, 0 +_080975E0: .4byte 0x020205AC +_080975E4: + ldr r1, _080975F8 + lsls r0, r3, #4 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + strh r4, [r0, #0x32] +_080975F0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080975F8: .4byte 0x020205AC + thumb_func_end sub_080975B4 + + thumb_func_start sub_080975FC +sub_080975FC: @ 0x080975FC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_0809749C + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x40 + bne _08097612 + movs r0, #0 + b _0809762A +_08097612: + movs r3, #0 + ldr r0, _08097630 + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + movs r2, #0x32 + ldrsh r0, [r1, r2] + cmp r0, #1 + bne _08097628 + movs r3, #1 +_08097628: + adds r0, r3, #0 +_0809762A: + pop {r1} + bx r1 + .align 2, 0 +_08097630: .4byte 0x020205AC + thumb_func_end sub_080975FC + + thumb_func_start sub_08097634 +sub_08097634: @ 0x08097634 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + bl sub_0809749C + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x40 + beq _0809765A + ldr r0, _08097660 + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + movs r0, #0 + strh r4, [r1, #0x34] + strh r0, [r1, #0x36] +_0809765A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097660: .4byte 0x020205AC + thumb_func_end sub_08097634 + + thumb_func_start sub_08097664 +sub_08097664: @ 0x08097664 + push {lr} + adds r2, r0, #0 + movs r1, #0x36 + ldrsh r0, [r2, r1] + cmp r0, #0 + beq _08097676 + cmp r0, #1 + beq _0809767E + b _0809769C +_08097676: + strh r0, [r2, #0x26] + ldrh r0, [r2, #0x36] + adds r0, #1 + strh r0, [r2, #0x36] +_0809767E: + ldrh r0, [r2, #0x26] + subs r0, #8 + movs r3, #0 + strh r0, [r2, #0x26] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0xa0 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0809769C + strh r3, [r2, #0x26] + movs r0, #1 + strh r0, [r2, #0x32] + strh r3, [r2, #0x34] + strh r3, [r2, #0x36] +_0809769C: + pop {r0} + bx r0 + thumb_func_end sub_08097664 + + thumb_func_start sub_080976A0 +sub_080976A0: @ 0x080976A0 + push {lr} + adds r1, r0, #0 + movs r2, #0x36 + ldrsh r0, [r1, r2] + cmp r0, #0 + beq _080976B2 + cmp r0, #1 + beq _080976BC + b _080976CE +_080976B2: + ldr r0, _080976D4 + strh r0, [r1, #0x26] + ldrh r0, [r1, #0x36] + adds r0, #1 + strh r0, [r1, #0x36] +_080976BC: + ldrh r0, [r1, #0x26] + adds r0, #8 + strh r0, [r1, #0x26] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bne _080976CE + strh r0, [r1, #0x34] + strh r0, [r1, #0x36] +_080976CE: + pop {r0} + bx r0 + .align 2, 0 +_080976D4: .4byte 0x0000FF60 + thumb_func_end sub_080976A0 + + thumb_func_start sub_080976D8 +sub_080976D8: @ 0x080976D8 + push {lr} + adds r1, r0, #0 + movs r2, #0x34 + ldrsh r0, [r1, r2] + cmp r0, #1 + beq _080976F4 + cmp r0, #1 + bgt _080976EE + cmp r0, #0 + beq _08097714 + b _08097704 +_080976EE: + cmp r0, #2 + beq _080976FC + b _08097704 +_080976F4: + adds r0, r1, #0 + bl sub_080976A0 + b _08097714 +_080976FC: + adds r0, r1, #0 + bl sub_08097664 + b _08097714 +_08097704: + movs r0, #0 + strh r0, [r1, #0x34] + ldr r0, _08097718 + ldr r1, _0809771C + ldr r2, _08097720 + movs r3, #1 + bl AGBAssert +_08097714: + pop {r0} + bx r0 + .align 2, 0 +_08097718: .4byte 0x084E6CA8 +_0809771C: .4byte 0x00003106 +_08097720: .4byte 0x084E6CB4 + thumb_func_end sub_080976D8 + + thumb_func_start sub_08097724 +sub_08097724: @ 0x08097724 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_0809749C + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x40 + beq _08097748 + ldr r0, _0809774C + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + movs r2, #0x34 + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _08097750 +_08097748: + movs r0, #0 + b _08097752 + .align 2, 0 +_0809774C: .4byte 0x020205AC +_08097750: + movs r0, #1 +_08097752: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08097724 + + thumb_func_start sub_08097758 +sub_08097758: @ 0x08097758 + push {r4, lr} + adds r4, r0, #0 + adds r0, r1, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _0809777C + adds r2, r1, #4 + adds r3, r1, #0 + adds r3, #8 + bl EventObjectGetLocalIdAndMap + adds r0, r4, #0 + bl FieldEffectStart + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809777C: .4byte 0x020388A8 + thumb_func_end sub_08097758 + + thumb_func_start DoShadowFieldEffect +DoShadowFieldEffect: @ 0x08097780 + push {lr} + adds r1, r0, #0 + ldrb r2, [r1, #2] + lsls r0, r2, #0x19 + cmp r0, #0 + blt _08097798 + movs r0, #0x40 + orrs r0, r2 + strb r0, [r1, #2] + movs r0, #3 + bl sub_08097758 +_08097798: + pop {r0} + bx r0 + thumb_func_end DoShadowFieldEffect + + thumb_func_start DoRippleFieldEffect +DoRippleFieldEffect: @ 0x0809779C + push {r4, lr} + adds r4, r1, #0 + ldrb r0, [r0, #5] + bl GetEventObjectGraphicsInfo + ldr r2, _080977D4 + movs r3, #0x20 + ldrsh r1, [r4, r3] + str r1, [r2] + movs r3, #0x22 + ldrsh r1, [r4, r3] + ldrh r0, [r0, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + adds r1, r1, r0 + subs r1, #2 + str r1, [r2, #4] + movs r0, #0x97 + str r0, [r2, #8] + movs r0, #3 + str r0, [r2, #0xc] + movs r0, #5 + bl FieldEffectStart + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080977D4: .4byte 0x020388A8 + thumb_func_end DoRippleFieldEffect + + thumb_func_start MovementAction_StoreAndLockAnim_Step0 +MovementAction_StoreAndLockAnim_Step0: @ 0x080977D8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + mov r8, r1 + movs r0, #0 + mov ip, r0 + ldr r0, _08097804 + ldr r1, [r0] + adds r6, r0, #0 + cmp r1, #0 + bne _08097808 + movs r0, #0x14 + bl AllocZeroed + str r0, [r6] + ldrb r1, [r4, #8] + strb r1, [r0] + ldr r1, [r6] + movs r0, #1 + strb r0, [r1, #0x10] + b _08097854 + .align 2, 0 +_08097804: .4byte 0x02037258 +_08097808: + movs r2, #0x10 + movs r5, #0 + movs r1, #0 + adds r3, r6, #0 + b _08097818 +_08097812: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 +_08097818: + cmp r1, #0xf + bhi _0809783A + cmp r2, #0x10 + bne _0809782C + ldr r0, [r3] + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _0809782C + adds r2, r1, #0 +_0809782C: + ldr r0, [r3] + adds r0, r0, r1 + ldrb r0, [r0] + ldrb r7, [r4, #8] + cmp r0, r7 + bne _08097812 + movs r5, #1 +_0809783A: + cmp r5, #0 + bne _08097856 + cmp r2, #0x10 + beq _08097856 + ldr r0, [r6] + adds r0, r0, r2 + ldrb r1, [r4, #8] + strb r1, [r0] + ldr r1, [r6] + ldrb r0, [r1, #0x10] + adds r0, #1 + strb r0, [r1, #0x10] + movs r0, #1 +_08097854: + mov ip, r0 +_08097856: + mov r1, ip + cmp r1, #1 + bne _08097868 + ldrb r0, [r4, #1] + movs r1, #0x10 + orrs r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r4, #1] +_08097868: + movs r0, #1 + mov r7, r8 + strh r0, [r7, #0x32] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end MovementAction_StoreAndLockAnim_Step0 + + thumb_func_start MovementAction_FreeAndUnlockAnim_Step0 +MovementAction_FreeAndUnlockAnim_Step0: @ 0x08097878 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + mov r8, r1 + movs r0, #1 + strh r0, [r1, #0x32] + ldr r5, _080978FC + ldr r0, [r5] + cmp r0, #0 + beq _080978F0 + movs r7, #0 + adds r0, r6, #0 + bl FindLockedEventObjectIndex + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x10 + beq _080978B0 + ldr r0, [r5] + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + ldr r1, [r5] + ldrb r0, [r1, #0x10] + subs r0, #1 + strb r0, [r1, #0x10] + movs r7, #1 +_080978B0: + ldr r0, [r5] + ldrb r4, [r0, #0x10] + cmp r4, #0 + bne _080978BE + bl Free + str r4, [r5] +_080978BE: + cmp r7, #1 + bne _080978F0 + ldrb r0, [r6, #5] + bl GetEventObjectGraphicsInfo + ldrb r1, [r0, #0xc] + lsls r1, r1, #0x19 + lsrs r1, r1, #0x1f + lsls r1, r1, #4 + ldrb r2, [r6, #1] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + movs r1, #3 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r6, #1] + mov r2, r8 + adds r2, #0x2c + ldrb r1, [r2] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_080978F0: + movs r0, #1 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080978FC: .4byte 0x02037258 + thumb_func_end MovementAction_FreeAndUnlockAnim_Step0 + + thumb_func_start FindLockedEventObjectIndex +FindLockedEventObjectIndex: @ 0x08097900 + push {lr} + movs r2, #0 + ldr r1, _08097918 + ldr r1, [r1] + ldrb r3, [r0, #8] +_0809790A: + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, r3 + bne _0809791C + adds r0, r2, #0 + b _08097928 + .align 2, 0 +_08097918: .4byte 0x02037258 +_0809791C: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xf + bls _0809790A + movs r0, #0x10 +_08097928: + pop {r1} + bx r1 + thumb_func_end FindLockedEventObjectIndex + + thumb_func_start CreateLevitateMovementTask +CreateLevitateMovementTask: @ 0x0809792C + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r0, _08097960 + movs r1, #0xff + bl CreateTask + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + ldr r0, _08097964 + adds r4, r4, r0 + adds r0, r4, #0 + adds r0, #8 + adds r1, r6, #0 + bl StoreWordInTwoHalfwords + strb r5, [r6, #0x1b] + ldr r0, _08097968 + strh r0, [r4, #0xe] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08097960: .4byte 0x0809796D +_08097964: .4byte 0x03005B60 +_08097968: .4byte 0x0000FFFF + thumb_func_end CreateLevitateMovementTask + + thumb_func_start ApplyLevitateMovement +ApplyLevitateMovement: @ 0x0809796C + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080979C4 + adds r4, r1, r0 + adds r0, r4, #0 + adds r0, #8 + mov r1, sp + bl LoadWordFromTwoHalfwords + ldr r0, [sp] + ldrb r1, [r0, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080979C8 + adds r2, r0, r1 + ldrh r1, [r4, #0xc] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _080979A8 + ldrh r0, [r4, #0xe] + ldrh r1, [r2, #0x26] + adds r0, r0, r1 + strh r0, [r2, #0x26] +_080979A8: + ldrh r1, [r4, #0xc] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _080979B8 + ldrh r0, [r4, #0xe] + rsbs r0, r0, #0 + strh r0, [r4, #0xe] +_080979B8: + adds r0, r1, #1 + strh r0, [r4, #0xc] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080979C4: .4byte 0x03005B60 +_080979C8: .4byte 0x020205AC + thumb_func_end ApplyLevitateMovement + + thumb_func_start DestroyExtraMovementTask +DestroyExtraMovementTask: @ 0x080979CC + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _080979F8 + adds r0, r0, r1 + adds r0, #8 + mov r1, sp + bl LoadWordFromTwoHalfwords + adds r0, r4, #0 + bl DestroyTask + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080979F8: .4byte 0x03005B60 + thumb_func_end DestroyExtraMovementTask + + thumb_func_start sub_080979FC +sub_080979FC: @ 0x080979FC + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + movs r4, #0 + ldr r7, _08097A40 +_08097A0A: + cmp r4, r6 + beq _08097A30 + cmp r4, r5 + beq _08097A30 + lsls r0, r4, #3 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r1, r0, r7 + ldrb r0, [r1] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _08097A30 + ldr r0, _08097A44 + ldrb r0, [r0, #5] + cmp r4, r0 + beq _08097A30 + adds r0, r1, #0 + bl FreezeEventObject +_08097A30: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xf + bls _08097A0A + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08097A40: .4byte 0x02036FF0 +_08097A44: .4byte 0x02037230 + thumb_func_end sub_080979FC + + thumb_func_start MovementAction_FlyUp_Step0 +MovementAction_FlyUp_Step0: @ 0x08097A48 + movs r0, #0 + strh r0, [r1, #0x26] + ldrh r0, [r1, #0x32] + adds r0, #1 + strh r0, [r1, #0x32] + movs r0, #0 + bx lr + .align 2, 0 + thumb_func_end MovementAction_FlyUp_Step0 + + thumb_func_start MovementAction_FlyUp_Step1 +MovementAction_FlyUp_Step1: @ 0x08097A58 + push {lr} + adds r2, r1, #0 + ldrh r0, [r2, #0x26] + subs r0, #8 + strh r0, [r2, #0x26] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0xa0 + rsbs r1, r1, #0 + cmp r0, r1 + bne _08097A74 + ldrh r0, [r2, #0x32] + adds r0, #1 + strh r0, [r2, #0x32] +_08097A74: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_FlyUp_Step1 + + thumb_func_start MovementAction_FlyDown_Step0 +MovementAction_FlyDown_Step0: @ 0x08097A7C + ldr r0, _08097A8C + strh r0, [r1, #0x26] + ldrh r0, [r1, #0x32] + adds r0, #1 + strh r0, [r1, #0x32] + movs r0, #0 + bx lr + .align 2, 0 +_08097A8C: .4byte 0x0000FF60 + thumb_func_end MovementAction_FlyDown_Step0 + + thumb_func_start MovementAction_FlyDown_Step1 +MovementAction_FlyDown_Step1: @ 0x08097A90 + push {lr} + ldrh r0, [r1, #0x26] + adds r0, #8 + strh r0, [r1, #0x26] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08097AA4 + ldrh r0, [r1, #0x32] + adds r0, #1 + strh r0, [r1, #0x32] +_08097AA4: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MovementAction_FlyDown_Step1 + + thumb_func_start MovementAction_Finish +MovementAction_Finish: @ 0x08097AAC + movs r0, #1 + bx lr + thumb_func_end MovementAction_Finish + diff --git a/asm/evolution_graphics.s b/asm/evolution_graphics.s new file mode 100644 index 0000000..ecde889 --- /dev/null +++ b/asm/evolution_graphics.s @@ -0,0 +1,1831 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start PokeEvoSprite_DummySpriteCB +PokeEvoSprite_DummySpriteCB: @ 0x0817B900 + bx lr + .align 2, 0 + thumb_func_end PokeEvoSprite_DummySpriteCB + + thumb_func_start SetEvoSparklesMatrices +SetEvoSparklesMatrices: @ 0x0817B904 + push {r4, r5, lr} + sub sp, #4 + movs r4, #0 + ldr r5, _0817B938 +_0817B90C: + adds r0, r4, #0 + adds r0, #0x14 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r4, #1 + adds r1, r1, r5 + ldrh r1, [r1] + str r1, [sp] + movs r2, #0 + movs r3, #0 + bl SetOamMatrix + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0xb + bls _0817B90C + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0817B938: .4byte 0x085D2928 + thumb_func_end SetEvoSparklesMatrices + + thumb_func_start SpriteCB_PreEvoSparkleSet1 +SpriteCB_PreEvoSparkleSet1: @ 0x0817B93C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x22 + ldrsh r0, [r4, r1] + cmp r0, #8 + ble _0817B9EA + movs r2, #0x3c + ldrsh r0, [r4, r2] + adds r1, r0, #0 + muls r1, r0, r1 + adds r0, r1, #0 + movs r1, #0x50 + bl __divsi3 + movs r1, #0x58 + subs r1, r1, r0 + strh r1, [r4, #0x22] + ldrh r0, [r4, #0x3a] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0x38 + ldrsh r1, [r4, r2] + bl Sin + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _0817B976 + adds r0, #3 +_0817B976: + asrs r0, r0, #2 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x3a] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0x38 + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x3a] + adds r0, #4 + strh r0, [r4, #0x3a] + ldrh r1, [r4, #0x3c] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0817B9A0 + ldrh r0, [r4, #0x38] + subs r0, #1 + strh r0, [r4, #0x38] +_0817B9A0: + ldrh r0, [r4, #0x3c] + adds r0, #1 + strh r0, [r4, #0x3c] + movs r1, #0x26 + ldrsh r0, [r4, r1] + cmp r0, #0 + ble _0817B9B6 + adds r1, r4, #0 + adds r1, #0x43 + movs r0, #1 + b _0817B9BC +_0817B9B6: + adds r1, r4, #0 + adds r1, #0x43 + movs r0, #0x14 +_0817B9BC: + strb r0, [r1] + movs r2, #0x38 + ldrsh r0, [r4, r2] + cmp r0, #0 + bge _0817B9C8 + adds r0, #3 +_0817B9C8: + asrs r0, r0, #2 + adds r0, #0x14 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x1f + bls _0817B9D6 + movs r2, #0x1f +_0817B9D6: + movs r0, #0x1f + ands r2, r0 + lsls r2, r2, #1 + ldrb r1, [r4, #3] + movs r0, #0x3f + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #3] + b _0817B9F0 +_0817B9EA: + adds r0, r4, #0 + bl DestroySprite +_0817B9F0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SpriteCB_PreEvoSparkleSet1 + + thumb_func_start CreatePreEvoSparkleSet1 +CreatePreEvoSparkleSet1: @ 0x0817B9F8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _0817BA48 + movs r1, #0x78 + movs r2, #0x58 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _0817BA42 + ldr r4, _0817BA4C + lsls r3, r0, #4 + adds r3, r3, r0 + lsls r3, r3, #2 + adds r2, r3, r4 + movs r1, #0 + movs r0, #0x30 + strh r0, [r2, #0x38] + strh r5, [r2, #0x3a] + strh r1, [r2, #0x3c] + ldrb r1, [r2, #1] + subs r0, #0x34 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #1] + ldrb r0, [r2, #3] + movs r1, #0x3e + orrs r0, r1 + strb r0, [r2, #3] + adds r4, #0x1c + adds r3, r3, r4 + ldr r0, _0817BA50 + str r0, [r3] +_0817BA42: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0817BA48: .4byte 0x085D2910 +_0817BA4C: .4byte 0x020205AC +_0817BA50: .4byte 0x0817B93D + thumb_func_end CreatePreEvoSparkleSet1 + + thumb_func_start SpriteCB_PreEvoSparkleSet2 +SpriteCB_PreEvoSparkleSet2: @ 0x0817BA54 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x22 + ldrsh r0, [r4, r1] + cmp r0, #0x57 + bgt _0817BABA + movs r2, #0x3c + ldrsh r0, [r4, r2] + adds r1, r0, #0 + muls r1, r0, r1 + adds r0, r1, #0 + movs r1, #5 + bl __divsi3 + adds r0, #8 + strh r0, [r4, #0x22] + ldrh r0, [r4, #0x3a] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0x38 + ldrsh r1, [r4, r2] + bl Sin + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _0817BA8C + adds r0, #3 +_0817BA8C: + asrs r0, r0, #2 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x3a] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0x38 + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, #0x24] + movs r1, #0x3c + ldrsh r0, [r4, r1] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x18 + movs r1, #0x28 + bl Sin + adds r0, #8 + strh r0, [r4, #0x38] + ldrh r0, [r4, #0x3c] + adds r0, #1 + strh r0, [r4, #0x3c] + b _0817BAC0 +_0817BABA: + adds r0, r4, #0 + bl DestroySprite +_0817BAC0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SpriteCB_PreEvoSparkleSet2 + + thumb_func_start CreatePreEvoSparkleSet2 +CreatePreEvoSparkleSet2: @ 0x0817BAC8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _0817BB24 + movs r1, #0x78 + movs r2, #8 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _0817BB1E + ldr r4, _0817BB28 + lsls r3, r0, #4 + adds r3, r3, r0 + lsls r3, r3, #2 + adds r2, r3, r4 + movs r1, #0 + movs r0, #8 + strh r0, [r2, #0x38] + strh r5, [r2, #0x3a] + strh r1, [r2, #0x3c] + ldrb r1, [r2, #1] + subs r0, #0xc + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #1] + ldrb r1, [r2, #3] + movs r0, #0x3f + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x32 + orrs r0, r1 + strb r0, [r2, #3] + adds r2, #0x43 + movs r0, #1 + strb r0, [r2] + adds r4, #0x1c + adds r3, r3, r4 + ldr r0, _0817BB2C + str r0, [r3] +_0817BB1E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0817BB24: .4byte 0x085D2910 +_0817BB28: .4byte 0x020205AC +_0817BB2C: .4byte 0x0817BA55 + thumb_func_end CreatePreEvoSparkleSet2 + + thumb_func_start SpriteCB_PostEvoSparkleSet1 +SpriteCB_PostEvoSparkleSet1: @ 0x0817BB30 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x38 + ldrsh r0, [r4, r1] + cmp r0, #8 + ble _0817BB6C + ldrh r0, [r4, #0x3a] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0x38 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x3a] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0x38 + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x38] + ldrh r1, [r4, #0x34] + subs r0, r0, r1 + strh r0, [r4, #0x38] + ldrh r0, [r4, #0x3a] + adds r0, #4 + strh r0, [r4, #0x3a] + b _0817BB72 +_0817BB6C: + adds r0, r4, #0 + bl DestroySprite +_0817BB72: + pop {r4} + pop {r0} + bx r0 + thumb_func_end SpriteCB_PostEvoSparkleSet1 + + thumb_func_start CreatePostEvoSparkleSet1 +CreatePostEvoSparkleSet1: @ 0x0817BB78 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + ldr r0, _0817BBD4 + movs r1, #0x78 + movs r2, #0x38 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _0817BBCE + ldr r4, _0817BBD8 + lsls r3, r0, #4 + adds r3, r3, r0 + lsls r3, r3, #2 + adds r2, r3, r4 + movs r1, #0 + strh r5, [r2, #0x34] + movs r0, #0x78 + strh r0, [r2, #0x38] + strh r6, [r2, #0x3a] + strh r1, [r2, #0x3c] + ldrb r1, [r2, #1] + subs r0, #0x7c + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #1] + ldrb r0, [r2, #3] + movs r1, #0x3e + orrs r0, r1 + strb r0, [r2, #3] + adds r2, #0x43 + movs r0, #1 + strb r0, [r2] + adds r4, #0x1c + adds r3, r3, r4 + ldr r0, _0817BBDC + str r0, [r3] +_0817BBCE: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0817BBD4: .4byte 0x085D2910 +_0817BBD8: .4byte 0x020205AC +_0817BBDC: .4byte 0x0817BB31 + thumb_func_end CreatePostEvoSparkleSet1 + + thumb_func_start SpriteCB_PostEvoSparkleSet2 +SpriteCB_PostEvoSparkleSet2: @ 0x0817BBE0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x3c] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _0817BBF4 + ldrh r0, [r4, #0x22] + adds r0, #1 + strh r0, [r4, #0x22] +_0817BBF4: + ldrh r1, [r4, #0x3a] + movs r2, #0x3a + ldrsh r0, [r4, r2] + cmp r0, #0x7f + bgt _0817BCA4 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + movs r5, #0x38 + ldrsh r1, [r4, r5] + bl Sin + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + movs r0, #0x34 + ldrsh r1, [r4, r0] + movs r2, #0x3c + ldrsh r0, [r4, r2] + muls r0, r1, r0 + movs r1, #3 + bl __divsi3 + adds r0, #0x78 + strh r0, [r4, #0x20] + ldrh r0, [r4, #0x3a] + adds r3, r0, #1 + strh r3, [r4, #0x3a] + movs r5, #0x3a + ldrsh r1, [r4, r5] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + cmp r0, #0 + bge _0817BC38 + adds r0, #0x7f +_0817BC38: + asrs r0, r0, #7 + movs r1, #0x1f + subs r1, r1, r0 + lsls r1, r1, #0x18 + lsrs r2, r1, #0x18 + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x40 + ble _0817BC54 + adds r1, r4, #0 + adds r1, #0x43 + movs r0, #1 + strb r0, [r1] + b _0817BC84 +_0817BC54: + adds r3, r4, #0 + adds r3, #0x3e + ldrb r1, [r3] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3] + adds r1, r4, #0 + adds r1, #0x43 + movs r0, #0x14 + strb r0, [r1] + ldrh r1, [r4, #0x3a] + movs r5, #0x3a + ldrsh r0, [r4, r5] + cmp r0, #0x70 + ble _0817BC84 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0817BC84 + ldrb r0, [r3] + movs r1, #4 + orrs r0, r1 + strb r0, [r3] +_0817BC84: + cmp r2, #0x13 + bhi _0817BC8A + movs r2, #0x14 +_0817BC8A: + movs r0, #0x1f + ands r2, r0 + lsls r2, r2, #1 + ldrb r1, [r4, #3] + movs r0, #0x3f + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #3] + ldrh r0, [r4, #0x3c] + adds r0, #1 + strh r0, [r4, #0x3c] + b _0817BCAA +_0817BCA4: + adds r0, r4, #0 + bl DestroySprite +_0817BCAA: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end SpriteCB_PostEvoSparkleSet2 + + thumb_func_start CreatePostEvoSparkleSet2 +CreatePostEvoSparkleSet2: @ 0x0817BCB0 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + ldr r0, _0817BD2C + movs r1, #0x78 + movs r2, #0x38 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x40 + beq _0817BD20 + bl Random + ldr r6, _0817BD30 + lsls r5, r4, #4 + adds r5, r5, r4 + lsls r5, r5, #2 + adds r4, r5, r6 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #7 + bl __umodsi3 + movs r1, #3 + subs r1, r1, r0 + movs r0, #0 + mov r8, r0 + strh r1, [r4, #0x34] + bl Random + movs r1, #0x3f + ands r1, r0 + adds r1, #0x30 + strh r1, [r4, #0x38] + mov r0, r8 + strh r0, [r4, #0x3c] + ldrb r1, [r4, #1] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #1] + ldrb r0, [r4, #3] + movs r1, #0x3e + orrs r0, r1 + strb r0, [r4, #3] + adds r4, #0x43 + movs r0, #0x14 + strb r0, [r4] + adds r6, #0x1c + adds r5, r5, r6 + ldr r0, _0817BD34 + str r0, [r5] +_0817BD20: + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0817BD2C: .4byte 0x085D2910 +_0817BD30: .4byte 0x020205AC +_0817BD34: .4byte 0x0817BBE1 + thumb_func_end CreatePostEvoSparkleSet2 + + thumb_func_start LoadEvoSparkleSpriteAndPal +LoadEvoSparkleSpriteAndPal: @ 0x0817BD38 + push {lr} + ldr r0, _0817BD4C + bl LoadCompressedSpriteSheetUsingHeap + ldr r0, _0817BD50 + bl LoadSpritePalettes + pop {r0} + bx r0 + .align 2, 0 +_0817BD4C: .4byte 0x085D28DC +_0817BD50: .4byte 0x085D28EC + thumb_func_end LoadEvoSparkleSpriteAndPal + + thumb_func_start LaunchTask_PreEvoSparklesSet1 +LaunchTask_PreEvoSparklesSet1: @ 0x0817BD54 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r0, _0817BD7C + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0817BD80 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #0xa] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0817BD7C: .4byte 0x0817BD85 +_0817BD80: .4byte 0x03005B60 + thumb_func_end LaunchTask_PreEvoSparklesSet1 + + thumb_func_start EvoTask_BeginPreSet1_FadeAndPlaySE +EvoTask_BeginPreSet1_FadeAndPlaySE: @ 0x0817BD84 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl SetEvoSparklesMatrices + ldr r0, _0817BDC8 + lsls r5, r4, #2 + adds r5, r5, r4 + lsls r5, r5, #3 + adds r5, r5, r0 + movs r0, #0 + strh r0, [r5, #0x26] + movs r0, #0xa + ldrsh r1, [r5, r0] + movs r0, #3 + lsls r0, r1 + ldr r1, _0817BDCC + str r1, [sp] + movs r1, #0xa + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _0817BDD0 + str r0, [r5] + movs r0, #0x8c + bl PlaySE + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0817BDC8: .4byte 0x03005B60 +_0817BDCC: .4byte 0x00007FFF +_0817BDD0: .4byte 0x0817BDD5 + thumb_func_end EvoTask_BeginPreSet1_FadeAndPlaySE + + thumb_func_start EvoTask_CreatePreEvoSparkleSet1 +EvoTask_CreatePreEvoSparkleSet1: @ 0x0817BDD4 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _0817BE2C + lsls r3, r5, #2 + adds r0, r3, r5 + lsls r0, r0, #3 + adds r1, r0, r1 + ldrh r2, [r1, #0x26] + movs r4, #0x26 + ldrsh r0, [r1, r4] + cmp r0, #0x3f + bgt _0817BE30 + movs r0, #7 + ands r0, r2 + adds r7, r3, #0 + cmp r0, #0 + bne _0817BE1A + movs r4, #0 + adds r6, r1, #0 +_0817BDFC: + ldrh r1, [r6, #0x26] + movs r0, #0x78 + ands r0, r1 + lsls r0, r0, #1 + lsls r1, r4, #6 + adds r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl CreatePreEvoSparkleSet1 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _0817BDFC +_0817BE1A: + ldr r0, _0817BE2C + adds r1, r7, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x26] + adds r0, #1 + strh r0, [r1, #0x26] + b _0817BE38 + .align 2, 0 +_0817BE2C: .4byte 0x03005B60 +_0817BE30: + movs r0, #0x60 + strh r0, [r1, #0x26] + ldr r0, _0817BE40 + str r0, [r1] +_0817BE38: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0817BE40: .4byte 0x0817BE45 + thumb_func_end EvoTask_CreatePreEvoSparkleSet1 + + thumb_func_start EvoTask_WaitForPre1SparklesToGoUp +EvoTask_WaitForPre1SparklesToGoUp: @ 0x0817BE44 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _0817BE64 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r1, r0, r1 + ldrh r3, [r1, #0x26] + movs r4, #0x26 + ldrsh r0, [r1, r4] + cmp r0, #0 + beq _0817BE68 + subs r0, r3, #1 + strh r0, [r1, #0x26] + b _0817BE6E + .align 2, 0 +_0817BE64: .4byte 0x03005B60 +_0817BE68: + adds r0, r2, #0 + bl DestroyTask +_0817BE6E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end EvoTask_WaitForPre1SparklesToGoUp + + thumb_func_start LaunchTask_PostEvoSparklesSet1 +LaunchTask_PostEvoSparklesSet1: @ 0x0817BE74 + push {lr} + ldr r0, _0817BE88 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0817BE88: .4byte 0x0817BE8D + thumb_func_end LaunchTask_PostEvoSparklesSet1 + + thumb_func_start EvoTask_BeginPreSparklesSet2 +EvoTask_BeginPreSparklesSet2: @ 0x0817BE8C + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl SetEvoSparklesMatrices + ldr r1, _0817BEB8 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #0x26] + ldr r1, _0817BEBC + str r1, [r0] + movs r0, #0xb7 + bl PlaySE + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0817BEB8: .4byte 0x03005B60 +_0817BEBC: .4byte 0x0817BEC1 + thumb_func_end EvoTask_BeginPreSparklesSet2 + + thumb_func_start EvoTask_CreatePreEvoSparklesSet2 +EvoTask_CreatePreEvoSparklesSet2: @ 0x0817BEC0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _0817BF04 + lsls r2, r5, #2 + adds r0, r2, r5 + lsls r0, r0, #3 + adds r1, r0, r1 + movs r3, #0x26 + ldrsh r0, [r1, r3] + cmp r0, #0x5f + bgt _0817BF08 + adds r6, r2, #0 + cmp r0, #5 + bgt _0817BEF2 + movs r4, #0 +_0817BEE0: + lsls r0, r4, #0x1c + lsrs r0, r0, #0x18 + bl CreatePreEvoSparkleSet2 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #8 + bls _0817BEE0 +_0817BEF2: + ldr r0, _0817BF04 + adds r1, r6, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x26] + adds r0, #1 + strh r0, [r1, #0x26] + b _0817BF0C + .align 2, 0 +_0817BF04: .4byte 0x03005B60 +_0817BF08: + ldr r0, _0817BF14 + str r0, [r1] +_0817BF0C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0817BF14: .4byte 0x0817BF19 + thumb_func_end EvoTask_CreatePreEvoSparklesSet2 + + thumb_func_start EvoTask_DestroyPreSet2Task +EvoTask_DestroyPreSet2Task: @ 0x0817BF18 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end EvoTask_DestroyPreSet2Task + + thumb_func_start LaunchTask_PreEvoSparklesSet2 +LaunchTask_PreEvoSparklesSet2: @ 0x0817BF28 + push {lr} + ldr r0, _0817BF3C + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0817BF3C: .4byte 0x0817BF41 + thumb_func_end LaunchTask_PreEvoSparklesSet2 + + thumb_func_start EvoTask_BeginPostSparklesSet1 +EvoTask_BeginPostSparklesSet1: @ 0x0817BF40 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl SetEvoSparklesMatrices + ldr r1, _0817BF6C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #0x26] + ldr r1, _0817BF70 + str r1, [r0] + movs r0, #0x66 + bl PlaySE + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0817BF6C: .4byte 0x03005B60 +_0817BF70: .4byte 0x0817BF75 + thumb_func_end EvoTask_BeginPostSparklesSet1 + + thumb_func_start EvoTask_CreatePostEvoSparklesSet1 +EvoTask_CreatePostEvoSparklesSet1: @ 0x0817BF74 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _0817BFE0 + lsls r2, r5, #2 + adds r0, r2, r5 + lsls r0, r0, #3 + adds r1, r0, r1 + movs r3, #0x26 + ldrsh r0, [r1, r3] + cmp r0, #0x2f + bgt _0817BFE4 + adds r6, r2, #0 + cmp r0, #0 + bne _0817BFA8 + movs r4, #0 +_0817BF94: + lsls r0, r4, #0x1c + lsrs r0, r0, #0x18 + movs r1, #4 + bl CreatePostEvoSparkleSet1 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xf + bls _0817BF94 +_0817BFA8: + ldr r0, _0817BFE0 + adds r1, r6, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r2, #0x26 + ldrsh r0, [r1, r2] + cmp r0, #0x20 + bne _0817BFCE + movs r4, #0 +_0817BFBA: + lsls r0, r4, #0x1c + lsrs r0, r0, #0x18 + movs r1, #8 + bl CreatePostEvoSparkleSet1 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xf + bls _0817BFBA +_0817BFCE: + ldr r0, _0817BFE0 + adds r1, r6, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x26] + adds r0, #1 + strh r0, [r1, #0x26] + b _0817BFE8 + .align 2, 0 +_0817BFE0: .4byte 0x03005B60 +_0817BFE4: + ldr r0, _0817BFF0 + str r0, [r1] +_0817BFE8: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0817BFF0: .4byte 0x0817BFF5 + thumb_func_end EvoTask_CreatePostEvoSparklesSet1 + + thumb_func_start EvoTask_DestroyPostSet1Task +EvoTask_DestroyPostSet1Task: @ 0x0817BFF4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end EvoTask_DestroyPostSet1Task + + thumb_func_start LaunchTask_PostEvoSparklesSet2AndFlash +LaunchTask_PostEvoSparklesSet2AndFlash: @ 0x0817C004 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r0, _0817C02C + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0817C030 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #0xc] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0817C02C: .4byte 0x0817C035 +_0817C030: .4byte 0x03005B60 + thumb_func_end LaunchTask_PostEvoSparklesSet2AndFlash + + thumb_func_start EvoTask_BeginPostSparklesSet2_AndFlash +EvoTask_BeginPostSparklesSet2_AndFlash: @ 0x0817C034 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl SetEvoSparklesMatrices + ldr r0, _0817C07C + lsls r5, r4, #2 + adds r5, r5, r4 + lsls r5, r5, #3 + adds r5, r5, r0 + movs r0, #0 + strh r0, [r5, #0x26] + ldr r0, _0817C080 + ldr r1, _0817C084 + movs r2, #0x30 + bl CpuSet + ldr r0, _0817C088 + ldr r1, _0817C08C + str r1, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _0817C090 + str r0, [r5] + movs r0, #0xca + bl PlaySE + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0817C07C: .4byte 0x03005B60 +_0817C080: .4byte 0x020377F4 +_0817C084: .4byte 0x020373F4 +_0817C088: .4byte 0xFFF9041C +_0817C08C: .4byte 0x00007FFF +_0817C090: .4byte 0x0817C095 + thumb_func_end EvoTask_BeginPostSparklesSet2_AndFlash + + thumb_func_start EvoTask_CreatePostEvoSparklesSet2_AndFlash +EvoTask_CreatePostEvoSparklesSet2_AndFlash: @ 0x0817C094 + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _0817C0CC + lsls r5, r6, #2 + adds r0, r5, r6 + lsls r0, r0, #3 + adds r1, r0, r1 + movs r0, #0x26 + ldrsh r2, [r1, r0] + cmp r2, #0x7f + bgt _0817C110 + adds r0, r2, #0 + cmp r0, #0 + beq _0817C0D0 + cmp r0, #0x20 + beq _0817C0E4 + cmp r2, #0x31 + bgt _0817C0F4 + bl Random + movs r1, #7 + ands r0, r1 + bl CreatePostEvoSparkleSet2 + b _0817C0F4 + .align 2, 0 +_0817C0CC: .4byte 0x03005B60 +_0817C0D0: + movs r4, #0 +_0817C0D2: + adds r0, r4, #0 + bl CreatePostEvoSparkleSet2 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #7 + bls _0817C0D2 + b _0817C0F4 +_0817C0E4: + ldr r0, _0817C104 + ldr r1, _0817C108 + str r1, [sp] + movs r1, #0x10 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade +_0817C0F4: + ldr r0, _0817C10C + adds r1, r5, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x26] + adds r0, #1 + strh r0, [r1, #0x26] + b _0817C114 + .align 2, 0 +_0817C104: .4byte 0xFFFF041C +_0817C108: .4byte 0x00007FFF +_0817C10C: .4byte 0x03005B60 +_0817C110: + ldr r0, _0817C11C + str r0, [r1] +_0817C114: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0817C11C: .4byte 0x0817C121 + thumb_func_end EvoTask_CreatePostEvoSparklesSet2_AndFlash + + thumb_func_start EvoTask_DestroyPostSet2AndFlashTask +EvoTask_DestroyPostSet2AndFlashTask: @ 0x0817C120 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _0817C13C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0817C138 + adds r0, r2, #0 + bl DestroyTask +_0817C138: + pop {r0} + bx r0 + .align 2, 0 +_0817C13C: .4byte 0x02037C74 + thumb_func_end EvoTask_DestroyPostSet2AndFlashTask + + thumb_func_start LaunchTask_PostEvoSparklesSet2AndFlash_Trade +LaunchTask_PostEvoSparklesSet2AndFlash_Trade: @ 0x0817C140 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r0, _0817C168 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0817C16C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #0xc] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0817C168: .4byte 0x0817C171 +_0817C16C: .4byte 0x03005B60 + thumb_func_end LaunchTask_PostEvoSparklesSet2AndFlash_Trade + + thumb_func_start EvoTask_BeginPostSparklesSet2_AndFlash_Trade +EvoTask_BeginPostSparklesSet2_AndFlash_Trade: @ 0x0817C170 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl SetEvoSparklesMatrices + ldr r0, _0817C1B8 + lsls r5, r4, #2 + adds r5, r5, r4 + lsls r5, r5, #3 + adds r5, r5, r0 + movs r0, #0 + strh r0, [r5, #0x26] + ldr r0, _0817C1BC + ldr r1, _0817C1C0 + movs r2, #0x30 + bl CpuSet + ldr r0, _0817C1C4 + ldr r1, _0817C1C8 + str r1, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _0817C1CC + str r0, [r5] + movs r0, #0xca + bl PlaySE + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0817C1B8: .4byte 0x03005B60 +_0817C1BC: .4byte 0x020377F4 +_0817C1C0: .4byte 0x020373F4 +_0817C1C4: .4byte 0xFFF90400 +_0817C1C8: .4byte 0x00007FFF +_0817C1CC: .4byte 0x0817C1D1 + thumb_func_end EvoTask_BeginPostSparklesSet2_AndFlash_Trade + + thumb_func_start EvoTask_CreatePostEvoSparklesSet2_AndFlash_Trade +EvoTask_CreatePostEvoSparklesSet2_AndFlash_Trade: @ 0x0817C1D0 + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _0817C208 + lsls r5, r6, #2 + adds r0, r5, r6 + lsls r0, r0, #3 + adds r1, r0, r1 + movs r0, #0x26 + ldrsh r2, [r1, r0] + cmp r2, #0x7f + bgt _0817C24C + adds r0, r2, #0 + cmp r0, #0 + beq _0817C20C + cmp r0, #0x20 + beq _0817C220 + cmp r2, #0x31 + bgt _0817C230 + bl Random + movs r1, #7 + ands r0, r1 + bl CreatePostEvoSparkleSet2 + b _0817C230 + .align 2, 0 +_0817C208: .4byte 0x03005B60 +_0817C20C: + movs r4, #0 +_0817C20E: + adds r0, r4, #0 + bl CreatePostEvoSparkleSet2 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #7 + bls _0817C20E + b _0817C230 +_0817C220: + ldr r0, _0817C240 + ldr r1, _0817C244 + str r1, [sp] + movs r1, #0x10 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade +_0817C230: + ldr r0, _0817C248 + adds r1, r5, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x26] + adds r0, #1 + strh r0, [r1, #0x26] + b _0817C250 + .align 2, 0 +_0817C240: .4byte 0xFFFF0400 +_0817C244: .4byte 0x00007FFF +_0817C248: .4byte 0x03005B60 +_0817C24C: + ldr r0, _0817C258 + str r0, [r1] +_0817C250: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0817C258: .4byte 0x0817C121 + thumb_func_end EvoTask_CreatePostEvoSparklesSet2_AndFlash_Trade + + thumb_func_start EvoSparkle_DummySpriteCb +EvoSparkle_DummySpriteCb: @ 0x0817C25C + bx lr + .align 2, 0 + thumb_func_end EvoSparkle_DummySpriteCb + + thumb_func_start sub_0817C260 +sub_0817C260: @ 0x0817C260 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x28 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + movs r1, #0 + ldr r3, _0817C394 + ldr r2, _0817C398 +_0817C27A: + lsls r0, r1, #1 + add r0, sp + adds r0, #4 + strh r2, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0xf + bls _0817C27A + adds r0, r3, #0 + movs r1, #0 + bl CreateTask + mov r8, r0 + mov r0, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r0, _0817C39C + mov r1, r8 + lsls r6, r1, #2 + add r6, r8 + lsls r6, r6, #3 + adds r6, r6, r0 + strh r5, [r6, #0xa] + strh r7, [r6, #0xc] + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r6, #0xe] + movs r0, #0x10 + strh r0, [r6, #0x10] + movs r4, #0x80 + lsls r4, r4, #9 + str r1, [sp] + movs r0, #0x1e + movs r2, #0 + movs r3, #0 + bl SetOamMatrix + movs r0, #0x10 + ldrsh r1, [r6, r0] + adds r0, r4, #0 + bl __divsi3 + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp] + movs r0, #0x1f + movs r2, #0 + movs r3, #0 + bl SetOamMatrix + ldr r1, _0817C3A0 + mov sb, r1 + lsls r2, r5, #4 + adds r2, r2, r5 + lsls r2, r2, #2 + mov r3, sb + adds r3, #0x1c + adds r0, r2, r3 + ldr r1, _0817C3A4 + str r1, [r0] + add r2, sb + ldrb r1, [r2, #1] + movs r4, #4 + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #1] + ldrb r1, [r2, #3] + movs r0, #0x3f + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x3c + orrs r0, r1 + strb r0, [r2, #3] + movs r0, #0x3e + adds r0, r0, r2 + mov sl, r0 + ldrb r1, [r0] + movs r5, #5 + rsbs r5, r5, #0 + adds r0, r5, #0 + ands r0, r1 + mov r1, sl + strb r0, [r1] + ldrb r1, [r2, #5] + lsrs r1, r1, #4 + lsls r1, r1, #5 + ldr r0, _0817C3A8 + mov sl, r0 + add r1, sl + add r0, sp, #4 + movs r2, #0x10 + str r3, [sp, #0x24] + bl CpuSet + lsls r1, r7, #4 + adds r1, r1, r7 + lsls r1, r1, #2 + ldr r3, [sp, #0x24] + adds r3, r1, r3 + ldr r0, _0817C3A4 + str r0, [r3] + add r1, sb + ldrb r0, [r1, #1] + ands r4, r0 + movs r0, #1 + orrs r4, r0 + strb r4, [r1, #1] + ldrb r0, [r1, #3] + movs r2, #0x3e + orrs r0, r2 + strb r0, [r1, #3] + adds r2, r1, #0 + adds r2, #0x3e + ldrb r0, [r2] + ands r5, r0 + strb r5, [r2] + ldrb r1, [r1, #5] + lsrs r1, r1, #4 + lsls r1, r1, #5 + add r1, sl + add r0, sp, #4 + movs r2, #0x10 + bl CpuSet + movs r1, #0 + strh r1, [r6, #0x18] + mov r0, r8 + add sp, #0x28 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0817C394: .4byte 0x0817C3AD +_0817C398: .4byte 0x00007FFF +_0817C39C: .4byte 0x03005B60 +_0817C3A0: .4byte 0x020205AC +_0817C3A4: .4byte 0x0817C25D +_0817C3A8: .4byte 0x020379B4 + thumb_func_end sub_0817C260 + + thumb_func_start sub_0817C3AC +sub_0817C3AC: @ 0x0817C3AC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0817C3C8 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r0, #0 + strh r0, [r1, #0x12] + movs r0, #8 + strh r0, [r1, #0x14] + ldr r0, _0817C3CC + str r0, [r1] + bx lr + .align 2, 0 +_0817C3C8: .4byte 0x03005B60 +_0817C3CC: .4byte 0x0817C3D1 + thumb_func_end sub_0817C3AC + + thumb_func_start sub_0817C3D0 +sub_0817C3D0: @ 0x0817C3D0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r1, _0817C3F0 + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #3 + adds r2, r0, r1 + movs r1, #0x18 + ldrsh r0, [r2, r1] + cmp r0, #0 + beq _0817C3F4 + adds r0, r3, #0 + bl PreEvoVisible_PostEvoInvisible_KillTask + b _0817C416 + .align 2, 0 +_0817C3F0: .4byte 0x03005B60 +_0817C3F4: + ldrh r1, [r2, #0x14] + movs r4, #0x14 + ldrsh r0, [r2, r4] + cmp r0, #0x80 + bne _0817C406 + adds r0, r3, #0 + bl PreEvoInvisible_PostEvoVisible_KillTask + b _0817C416 +_0817C406: + adds r0, r1, #2 + strh r0, [r2, #0x14] + ldrh r0, [r2, #0x12] + movs r1, #1 + eors r0, r1 + strh r0, [r2, #0x12] + ldr r0, _0817C41C + str r0, [r2] +_0817C416: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0817C41C: .4byte 0x0817C421 + thumb_func_end sub_0817C3D0 + + thumb_func_start sub_0817C420 +sub_0817C420: @ 0x0817C420 + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _0817C444 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r2, r0, r1 + movs r3, #0x18 + ldrsh r0, [r2, r3] + adds r5, r1, #0 + cmp r0, #0 + beq _0817C44C + ldr r0, _0817C448 + str r0, [r2] + b _0817C530 + .align 2, 0 +_0817C444: .4byte 0x03005B60 +_0817C448: .4byte 0x0817C5ED +_0817C44C: + movs r6, #0 + movs r7, #0x12 + ldrsh r0, [r2, r7] + cmp r0, #0 + bne _0817C49C + movs r0, #0xe + ldrsh r1, [r2, r0] + movs r3, #0x14 + ldrsh r0, [r2, r3] + movs r3, #0x80 + lsls r3, r3, #1 + subs r0, r3, r0 + cmp r1, r0 + bge _0817C472 + ldrh r0, [r2, #0x14] + ldrh r7, [r2, #0xe] + adds r0, r0, r7 + strh r0, [r2, #0xe] + b _0817C476 +_0817C472: + strh r3, [r2, #0xe] + movs r6, #1 +_0817C476: + lsls r2, r4, #2 + adds r0, r2, r4 + lsls r0, r0, #3 + adds r3, r0, r5 + movs r0, #0x10 + ldrsh r1, [r3, r0] + movs r7, #0x14 + ldrsh r0, [r3, r7] + adds r0, #0x10 + cmp r1, r0 + ble _0817C496 + ldrh r0, [r3, #0x10] + ldrh r1, [r3, #0x14] + subs r0, r0, r1 + strh r0, [r3, #0x10] + b _0817C4E6 +_0817C496: + movs r0, #0x10 + strh r0, [r3, #0x10] + b _0817C4E0 +_0817C49C: + movs r0, #0x10 + ldrsh r1, [r2, r0] + movs r3, #0x14 + ldrsh r0, [r2, r3] + movs r3, #0x80 + lsls r3, r3, #1 + subs r0, r3, r0 + cmp r1, r0 + bge _0817C4B8 + ldrh r0, [r2, #0x14] + ldrh r7, [r2, #0x10] + adds r0, r0, r7 + strh r0, [r2, #0x10] + b _0817C4BC +_0817C4B8: + strh r3, [r2, #0x10] + movs r6, #1 +_0817C4BC: + lsls r2, r4, #2 + adds r0, r2, r4 + lsls r0, r0, #3 + adds r3, r0, r5 + movs r0, #0xe + ldrsh r1, [r3, r0] + movs r7, #0x14 + ldrsh r0, [r3, r7] + adds r0, #0x10 + cmp r1, r0 + ble _0817C4DC + ldrh r0, [r3, #0xe] + ldrh r1, [r3, #0x14] + subs r0, r0, r1 + strh r0, [r3, #0xe] + b _0817C4E6 +_0817C4DC: + movs r0, #0x10 + strh r0, [r3, #0xe] +_0817C4E0: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_0817C4E6: + adds r0, r2, r4 + lsls r0, r0, #3 + adds r5, r0, r5 + movs r0, #0xe + ldrsh r1, [r5, r0] + movs r4, #0x80 + lsls r4, r4, #9 + adds r0, r4, #0 + bl __divsi3 + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp] + movs r0, #0x1e + movs r2, #0 + movs r3, #0 + bl SetOamMatrix + movs r3, #0x10 + ldrsh r1, [r5, r3] + adds r0, r4, #0 + bl __divsi3 + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp] + movs r0, #0x1f + movs r2, #0 + movs r3, #0 + bl SetOamMatrix + cmp r6, #2 + bne _0817C530 + ldr r0, _0817C538 + str r0, [r5] +_0817C530: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0817C538: .4byte 0x0817C3D1 + thumb_func_end sub_0817C420 + + thumb_func_start PreEvoInvisible_PostEvoVisible_KillTask +PreEvoInvisible_PostEvoVisible_KillTask: @ 0x0817C53C + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0817C5E4 + mov r8, r1 + ldr r1, _0817C5E8 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + adds r4, r4, r1 + movs r2, #0xa + ldrsh r1, [r4, r2] + lsls r2, r1, #4 + adds r2, r2, r1 + lsls r2, r2, #2 + add r2, r8 + ldrb r3, [r2, #1] + movs r6, #4 + rsbs r6, r6, #0 + adds r1, r6, #0 + ands r1, r3 + strb r1, [r2, #1] + movs r2, #0xa + ldrsh r1, [r4, r2] + lsls r2, r1, #4 + adds r2, r2, r1 + lsls r2, r2, #2 + add r2, r8 + ldrb r3, [r2, #3] + movs r5, #0x3f + rsbs r5, r5, #0 + adds r1, r5, #0 + ands r1, r3 + strb r1, [r2, #3] + movs r1, #0xa + ldrsh r2, [r4, r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + add r1, r8 + adds r1, #0x3e + ldrb r2, [r1] + movs r3, #4 + orrs r2, r3 + strb r2, [r1] + movs r1, #0xc + ldrsh r2, [r4, r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + add r1, r8 + ldrb r2, [r1, #1] + ands r6, r2 + strb r6, [r1, #1] + movs r1, #0xc + ldrsh r2, [r4, r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + add r1, r8 + ldrb r2, [r1, #3] + ands r5, r2 + strb r5, [r1, #3] + movs r1, #0xc + ldrsh r2, [r4, r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + add r1, r8 + adds r1, #0x3e + ldrb r3, [r1] + movs r2, #5 + rsbs r2, r2, #0 + ands r2, r3 + strb r2, [r1] + bl DestroyTask + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0817C5E4: .4byte 0x020205AC +_0817C5E8: .4byte 0x03005B60 + thumb_func_end PreEvoInvisible_PostEvoVisible_KillTask + + thumb_func_start PreEvoVisible_PostEvoInvisible_KillTask +PreEvoVisible_PostEvoInvisible_KillTask: @ 0x0817C5EC + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0817C694 + mov r8, r1 + ldr r1, _0817C698 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + adds r4, r4, r1 + movs r2, #0xa + ldrsh r1, [r4, r2] + lsls r2, r1, #4 + adds r2, r2, r1 + lsls r2, r2, #2 + add r2, r8 + ldrb r3, [r2, #1] + movs r6, #4 + rsbs r6, r6, #0 + adds r1, r6, #0 + ands r1, r3 + strb r1, [r2, #1] + movs r2, #0xa + ldrsh r1, [r4, r2] + lsls r2, r1, #4 + adds r2, r2, r1 + lsls r2, r2, #2 + add r2, r8 + ldrb r3, [r2, #3] + movs r5, #0x3f + rsbs r5, r5, #0 + adds r1, r5, #0 + ands r1, r3 + strb r1, [r2, #3] + movs r1, #0xa + ldrsh r2, [r4, r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + add r1, r8 + adds r1, #0x3e + ldrb r3, [r1] + movs r2, #5 + rsbs r2, r2, #0 + ands r2, r3 + strb r2, [r1] + movs r1, #0xc + ldrsh r2, [r4, r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + add r1, r8 + ldrb r2, [r1, #1] + ands r6, r2 + strb r6, [r1, #1] + movs r1, #0xc + ldrsh r2, [r4, r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + add r1, r8 + ldrb r2, [r1, #3] + ands r5, r2 + strb r5, [r1, #3] + movs r1, #0xc + ldrsh r2, [r4, r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + add r1, r8 + adds r1, #0x3e + ldrb r2, [r1] + movs r3, #4 + orrs r2, r3 + strb r2, [r1] + bl DestroyTask + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0817C694: .4byte 0x020205AC +_0817C698: .4byte 0x03005B60 + thumb_func_end PreEvoVisible_PostEvoInvisible_KillTask + diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s new file mode 100644 index 0000000..390ecc9 --- /dev/null +++ b/asm/evolution_scene.s @@ -0,0 +1,4510 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start BeginEvolutionScene +BeginEvolutionScene: @ 0x0813DB44 + push {r4, r5, r6, lr} + adds r4, r1, #0 + adds r5, r2, #0 + adds r6, r3, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + ldr r0, _0813DB84 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0813DB88 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r0, #0 + strh r0, [r1, #8] + strh r4, [r1, #0xc] + strh r5, [r1, #0xe] + strh r6, [r1, #0x1c] + ldr r0, _0813DB8C + bl SetMainCallback2 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0813DB84: .4byte 0x0813DAC5 +_0813DB88: .4byte 0x03005B60 +_0813DB8C: .4byte 0x0813DAB5 + thumb_func_end BeginEvolutionScene + + thumb_func_start EvolutionScene +EvolutionScene: @ 0x0813DB90 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x24 + adds r4, r0, #0 + mov sb, r1 + mov r0, sb + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x18] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r3, [sp, #0x1c] + movs r0, #0 + bl SetHBlankCallback + movs r0, #0 + bl SetVBlankCallback + movs r1, #0 + str r1, [sp, #0x14] + add r0, sp, #0x14 + movs r1, #0xc0 + lsls r1, r1, #0x13 + ldr r2, _0813DE14 + bl CpuSet + movs r0, #0x4c + movs r1, #0 + bl SetGpuReg + movs r0, #0x40 + movs r1, #0 + bl SetGpuReg + movs r0, #0x44 + movs r1, #0 + bl SetGpuReg + movs r0, #0x42 + movs r1, #0 + bl SetGpuReg + movs r0, #0x46 + movs r1, #0 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0 + bl SetGpuReg + movs r0, #0x4a + movs r1, #0 + bl SetGpuReg + bl ResetPaletteFade + ldr r0, _0813DE18 + movs r2, #0 + strh r2, [r0] + ldr r0, _0813DE1C + strh r2, [r0] + ldr r0, _0813DE20 + strh r2, [r0] + ldr r0, _0813DE24 + strh r2, [r0] + ldr r0, _0813DE28 + strh r2, [r0] + ldr r0, _0813DE2C + strh r2, [r0] + ldr r1, _0813DE30 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r2, #0 + strh r0, [r1] + ldr r0, _0813DE34 + movs r1, #0 + strh r1, [r0] + ldr r1, _0813DE38 + movs r0, #9 + strb r0, [r1] + bl sub_08035528 + bl LoadBattleTextboxAndBackground + bl ResetSpriteData + bl ScanlineEffect_Stop + bl ResetTasks + bl FreeAllSpritePalettes + ldr r0, _0813DE3C + movs r2, #4 + strb r2, [r0] + movs r0, #0x64 + bl AllocZeroed + ldr r1, _0813DE40 + str r0, [r1] + bl AllocateMonSpritesGfx + adds r0, r4, #0 + movs r1, #2 + mov r2, sp + bl GetMonData + ldr r0, _0813DE44 + mov r1, sp + bl StringCopy10 + ldr r0, _0813DE48 + mov r2, sb + lsls r1, r2, #1 + add r1, sb + lsls r1, r1, #1 + ldr r2, _0813DE4C + adds r1, r1, r2 + bl StringCopy + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + adds r0, r4, #0 + movs r1, #1 + bl GetMonData + str r0, [sp, #0x20] + adds r0, r4, #0 + movs r1, #0 + bl GetMonData + mov sl, r0 + lsls r0, r5, #3 + ldr r1, _0813DE50 + adds r0, r0, r1 + ldr r2, _0813DE54 + ldr r1, [r2] + ldr r1, [r1, #8] + adds r2, r5, #0 + bl DecompressPicFromTable_2 + adds r0, r5, #0 + ldr r1, [sp, #0x20] + mov r2, sl + bl GetMonSpritePalStructFromOtIdPersonality + ldr r0, [r0] + movs r1, #0x88 + lsls r1, r1, #1 + movs r2, #0x20 + bl LoadCompressedPalette + adds r0, r5, #0 + movs r1, #1 + bl SetMultiuseSpriteTemplateToPokemon + ldr r0, _0813DE58 + mov r8, r0 + ldr r1, _0813DE5C + str r1, [r0, #0x10] + movs r1, #0x78 + movs r2, #0x40 + movs r3, #0x1e + bl CreateSprite + ldr r1, _0813DE40 + ldr r2, [r1] + lsls r1, r0, #0x18 + lsrs r3, r1, #0x18 + strb r0, [r2] + ldr r7, _0813DE60 + lsls r1, r3, #4 + adds r1, r1, r3 + lsls r1, r1, #2 + adds r6, r7, #0 + adds r6, #0x1c + adds r0, r1, r6 + ldr r2, _0813DE64 + str r2, [r0] + adds r1, r1, r7 + ldrb r2, [r1, #5] + movs r4, #0xf + adds r0, r4, #0 + ands r0, r2 + movs r2, #0x10 + orrs r0, r2 + strb r0, [r1, #5] + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + mov r1, sb + lsls r0, r1, #3 + ldr r2, _0813DE50 + adds r0, r0, r2 + ldr r2, _0813DE54 + ldr r1, [r2] + ldr r1, [r1, #0x10] + mov r2, sb + bl DecompressPicFromTable_2 + mov r0, sb + ldr r1, [sp, #0x20] + mov r2, sl + bl GetMonSpritePalStructFromOtIdPersonality + ldr r0, [r0] + movs r1, #0x90 + lsls r1, r1, #1 + movs r2, #0x20 + bl LoadCompressedPalette + mov r0, sb + movs r1, #3 + bl SetMultiuseSpriteTemplateToPokemon + ldr r0, _0813DE5C + mov r1, r8 + str r0, [r1, #0x10] + mov r0, r8 + movs r1, #0x78 + movs r2, #0x40 + movs r3, #0x1e + bl CreateSprite + ldr r1, _0813DE40 + ldr r2, [r1] + lsls r1, r0, #0x18 + lsrs r3, r1, #0x18 + strb r0, [r2, #1] + lsls r1, r3, #4 + adds r1, r1, r3 + lsls r1, r1, #2 + adds r6, r1, r6 + ldr r2, _0813DE64 + str r2, [r6] + adds r1, r1, r7 + ldrb r0, [r1, #5] + ands r4, r0 + movs r0, #0x20 + orrs r4, r0 + strb r4, [r1, #5] + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + bl LoadEvoSparkleSpriteAndPal + ldr r0, _0813DE68 + movs r1, #0 + bl CreateTask + ldr r1, _0813DE40 + ldr r2, [r1] + lsls r1, r0, #0x18 + lsrs r3, r1, #0x18 + strb r0, [r2, #2] + ldr r1, _0813DE6C + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #0 + strh r2, [r0, #8] + strh r5, [r0, #0xa] + mov r1, sb + strh r1, [r0, #0xc] + mov r2, sp + ldrh r2, [r2, #0x18] + strh r2, [r0, #0xe] + movs r1, #1 + strh r1, [r0, #0x10] + movs r1, #0 + strh r1, [r0, #0x1a] + mov r2, sp + ldrh r2, [r2, #0x1c] + strh r2, [r0, #0x1c] + ldr r1, _0813DE40 + ldr r0, [r1] + ldr r1, _0813DE70 + adds r0, #4 + movs r2, #0x60 + bl memcpy + movs r1, #0xfa + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + ldr r0, _0813DE74 + bl SetHBlankCallback + ldr r0, _0813DE78 + bl SetVBlankCallback + bl m4aMPlayAllStop + ldr r0, _0813DE7C + bl SetMainCallback2 + add sp, #0x24 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0813DE14: .4byte 0x05006000 +_0813DE18: .4byte 0x02022AC8 +_0813DE1C: .4byte 0x02022ACA +_0813DE20: .4byte 0x02022ACC +_0813DE24: .4byte 0x02022ACE +_0813DE28: .4byte 0x02022AD0 +_0813DE2C: .4byte 0x02022AD2 +_0813DE30: .4byte 0x02022AD4 +_0813DE34: .4byte 0x02022AD6 +_0813DE38: .4byte 0x02022C94 +_0813DE3C: .4byte 0x030030BC +_0813DE40: .4byte 0x0203A84C +_0813DE44: .4byte 0x02021C40 +_0813DE48: .4byte 0x02021C54 +_0813DE4C: .4byte 0x082EA31C +_0813DE50: .4byte 0x082DDA1C +_0813DE54: .4byte 0x02024178 +_0813DE58: .4byte 0x02024640 +_0813DE5C: .4byte 0x082BF310 +_0813DE60: .4byte 0x020205AC +_0813DE64: .4byte 0x080394FD +_0813DE68: .4byte 0x0813E639 +_0813DE6C: .4byte 0x03005B60 +_0813DE70: .4byte 0x020373F4 +_0813DE74: .4byte 0x0813FDA1 +_0813DE78: .4byte 0x0813FDA5 +_0813DE7C: .4byte 0x0813E4A9 + thumb_func_end EvolutionScene + + thumb_func_start CB2_EvolutionSceneLoadGraphics +CB2_EvolutionSceneLoadGraphics: @ 0x0813DE80 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #8 + ldr r2, _0813E018 + ldr r0, _0813E01C + mov r8, r0 + ldr r0, [r0] + ldrb r1, [r0, #2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r1, #0x1c + ldrsh r2, [r0, r1] + movs r1, #0x64 + adds r4, r2, #0 + muls r4, r1, r4 + ldr r1, _0813E020 + adds r4, r4, r1 + ldrh r5, [r0, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl GetMonData + mov sb, r0 + adds r0, r4, #0 + movs r1, #0 + bl GetMonData + adds r6, r0, #0 + movs r0, #0 + bl SetHBlankCallback + movs r0, #0 + bl SetVBlankCallback + movs r4, #0 + str r4, [sp, #4] + movs r1, #0xc0 + lsls r1, r1, #0x13 + ldr r2, _0813E024 + add r0, sp, #4 + bl CpuSet + movs r0, #0x4c + movs r1, #0 + bl SetGpuReg + movs r0, #0x40 + movs r1, #0 + bl SetGpuReg + movs r0, #0x44 + movs r1, #0 + bl SetGpuReg + movs r0, #0x42 + movs r1, #0 + bl SetGpuReg + movs r0, #0x46 + movs r1, #0 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0 + bl SetGpuReg + movs r0, #0x4a + movs r1, #0 + bl SetGpuReg + bl ResetPaletteFade + ldr r0, _0813E028 + strh r4, [r0] + ldr r0, _0813E02C + strh r4, [r0] + ldr r0, _0813E030 + strh r4, [r0] + ldr r0, _0813E034 + strh r4, [r0] + ldr r0, _0813E038 + strh r4, [r0] + ldr r0, _0813E03C + strh r4, [r0] + ldr r1, _0813E040 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r2, #0 + strh r0, [r1] + ldr r0, _0813E044 + strh r4, [r0] + ldr r1, _0813E048 + movs r0, #9 + strb r0, [r1] + bl sub_08035528 + bl LoadBattleTextboxAndBackground + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r1, _0813E04C + movs r0, #4 + strb r0, [r1] + lsls r0, r5, #3 + ldr r1, _0813E050 + adds r0, r0, r1 + ldr r1, _0813E054 + ldr r1, [r1] + ldr r1, [r1, #0x10] + adds r2, r5, #0 + bl DecompressPicFromTable_2 + adds r0, r5, #0 + mov r1, sb + adds r2, r6, #0 + bl GetMonSpritePalStructFromOtIdPersonality + ldr r0, [r0] + movs r1, #0x90 + lsls r1, r1, #1 + movs r2, #0x20 + bl LoadCompressedPalette + adds r0, r5, #0 + movs r1, #3 + bl SetMultiuseSpriteTemplateToPokemon + ldr r0, _0813E058 + ldr r1, _0813E05C + str r1, [r0, #0x10] + movs r1, #0x78 + movs r2, #0x40 + movs r3, #0x1e + bl CreateSprite + mov r2, r8 + ldr r1, [r2] + lsls r2, r0, #0x18 + lsrs r2, r2, #0x18 + strb r0, [r1, #1] + ldr r3, _0813E060 + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r0, r3, #0 + adds r0, #0x1c + adds r0, r1, r0 + ldr r2, _0813E064 + str r2, [r0] + adds r1, r1, r3 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + movs r2, #0x20 + orrs r0, r2 + strb r0, [r1, #5] + movs r1, #0xfa + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + ldr r0, _0813E068 + bl SetHBlankCallback + ldr r0, _0813E06C + bl SetVBlankCallback + ldr r0, _0813E070 + bl SetMainCallback2 + movs r0, #1 + rsbs r0, r0, #0 + str r4, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg + add sp, #8 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0813E018: .4byte 0x03005B60 +_0813E01C: .4byte 0x0203A84C +_0813E020: .4byte 0x02024190 +_0813E024: .4byte 0x05006000 +_0813E028: .4byte 0x02022AC8 +_0813E02C: .4byte 0x02022ACA +_0813E030: .4byte 0x02022ACC +_0813E034: .4byte 0x02022ACE +_0813E038: .4byte 0x02022AD0 +_0813E03C: .4byte 0x02022AD2 +_0813E040: .4byte 0x02022AD4 +_0813E044: .4byte 0x02022AD6 +_0813E048: .4byte 0x02022C94 +_0813E04C: .4byte 0x030030BC +_0813E050: .4byte 0x082DDA1C +_0813E054: .4byte 0x02024178 +_0813E058: .4byte 0x02024640 +_0813E05C: .4byte 0x082BF310 +_0813E060: .4byte 0x020205AC +_0813E064: .4byte 0x080394FD +_0813E068: .4byte 0x0813FDA1 +_0813E06C: .4byte 0x0813FDA5 +_0813E070: .4byte 0x0813E4A9 + thumb_func_end CB2_EvolutionSceneLoadGraphics + + thumb_func_start CB2_TradeEvolutionSceneLoadGraphics +CB2_TradeEvolutionSceneLoadGraphics: @ 0x0813E074 + push {r4, r5, r6, lr} + sub sp, #0xc + ldr r2, _0813E0B0 + ldr r0, _0813E0B4 + ldr r0, [r0] + ldrb r1, [r0, #2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r1, #0x1c + ldrsh r2, [r0, r1] + movs r1, #0x64 + muls r2, r1, r2 + ldr r1, _0813E0B8 + adds r4, r2, r1 + ldrh r6, [r0, #0xc] + ldr r0, _0813E0BC + movs r3, #0x87 + lsls r3, r3, #3 + adds r0, r0, r3 + ldrb r0, [r0] + cmp r0, #7 + bls _0813E0A6 + b _0813E2CC +_0813E0A6: + lsls r0, r0, #2 + ldr r1, _0813E0C0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0813E0B0: .4byte 0x03005B60 +_0813E0B4: .4byte 0x0203A84C +_0813E0B8: .4byte 0x02024190 +_0813E0BC: .4byte 0x03002360 +_0813E0C0: .4byte 0x0813E0C4 +_0813E0C4: @ jump table + .4byte _0813E0E4 @ case 0 + .4byte _0813E154 @ case 1 + .4byte _0813E17C @ case 2 + .4byte _0813E182 @ case 3 + .4byte _0813E1AC @ case 4 + .4byte _0813E1F4 @ case 5 + .4byte _0813E264 @ case 6 + .4byte _0813E29C @ case 7 +_0813E0E4: + movs r0, #0 + movs r1, #0 + bl SetGpuReg + movs r0, #0 + bl SetHBlankCallback + movs r0, #0 + bl SetVBlankCallback + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r1, _0813E130 + movs r0, #4 + strb r0, [r1] + ldr r0, _0813E134 + movs r1, #0 + strh r1, [r0] + ldr r0, _0813E138 + strh r1, [r0] + ldr r0, _0813E13C + strh r1, [r0] + ldr r0, _0813E140 + strh r1, [r0] + ldr r0, _0813E144 + strh r1, [r0] + ldr r0, _0813E148 + strh r1, [r0] + ldr r2, _0813E14C + movs r3, #0x80 + lsls r3, r3, #1 + adds r0, r3, #0 + strh r0, [r2] + ldr r0, _0813E150 + strh r1, [r0] + b _0813E284 + .align 2, 0 +_0813E130: .4byte 0x030030BC +_0813E134: .4byte 0x02022AC8 +_0813E138: .4byte 0x02022ACA +_0813E13C: .4byte 0x02022ACC +_0813E140: .4byte 0x02022ACE +_0813E144: .4byte 0x02022AD0 +_0813E148: .4byte 0x02022AD2 +_0813E14C: .4byte 0x02022AD4 +_0813E150: .4byte 0x02022AD6 +_0813E154: + bl ResetPaletteFade + ldr r0, _0813E170 + bl SetHBlankCallback + ldr r0, _0813E174 + bl SetVBlankCallback + ldr r1, _0813E178 + movs r3, #0x87 + lsls r3, r3, #3 + adds r1, r1, r3 + b _0813E28C + .align 2, 0 +_0813E170: .4byte 0x0813FDA1 +_0813E174: .4byte 0x0813FE2D +_0813E178: .4byte 0x03002360 +_0813E17C: + bl sub_0807EBD4 + b _0813E284 +_0813E182: + movs r0, #0x20 + str r0, [sp] + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #1 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect + movs r0, #1 + bl CopyBgTilemapBufferToVram + ldr r1, _0813E1A8 + movs r3, #0x87 + lsls r3, r3, #3 + adds r1, r1, r3 + b _0813E28C + .align 2, 0 +_0813E1A8: .4byte 0x03002360 +_0813E1AC: + adds r0, r4, #0 + movs r1, #1 + bl GetMonData + adds r5, r0, #0 + adds r0, r4, #0 + movs r1, #0 + bl GetMonData + adds r4, r0, #0 + lsls r0, r6, #3 + ldr r1, _0813E1EC + adds r0, r0, r1 + ldr r1, _0813E1F0 + ldr r1, [r1] + ldr r1, [r1, #0x10] + adds r2, r6, #0 + bl DecompressPicFromTable_2 + adds r0, r6, #0 + adds r1, r5, #0 + adds r2, r4, #0 + bl GetMonSpritePalStructFromOtIdPersonality + ldr r0, [r0] + movs r1, #0x90 + lsls r1, r1, #1 + movs r2, #0x20 + bl LoadCompressedPalette + b _0813E284 + .align 2, 0 +_0813E1EC: .4byte 0x082DDA1C +_0813E1F0: .4byte 0x02024178 +_0813E1F4: + adds r0, r6, #0 + movs r1, #1 + bl SetMultiuseSpriteTemplateToPokemon + ldr r0, _0813E24C + ldr r1, _0813E250 + str r1, [r0, #0x10] + movs r1, #0x78 + movs r2, #0x40 + movs r3, #0x1e + bl CreateSprite + ldr r1, _0813E254 + ldr r1, [r1] + lsls r2, r0, #0x18 + lsrs r2, r2, #0x18 + strb r0, [r1, #1] + ldr r3, _0813E258 + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r0, r3, #0 + adds r0, #0x1c + adds r0, r1, r0 + ldr r2, _0813E25C + str r2, [r0] + adds r1, r1, r3 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + movs r2, #0x20 + orrs r0, r2 + strb r0, [r1, #5] + ldr r1, _0813E260 + movs r3, #0x87 + lsls r3, r3, #3 + adds r1, r1, r3 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + bl sub_0807ABB0 + b _0813E2CC + .align 2, 0 +_0813E24C: .4byte 0x02024640 +_0813E250: .4byte 0x082BF310 +_0813E254: .4byte 0x0203A84C +_0813E258: .4byte 0x020205AC +_0813E25C: .4byte 0x080394FD +_0813E260: .4byte 0x03002360 +_0813E264: + ldr r0, _0813E294 + ldrb r0, [r0] + cmp r0, #0 + beq _0813E278 + bl LoadWirelessStatusIndicatorSpriteGfx + movs r0, #0 + movs r1, #0 + bl CreateWirelessStatusIndicatorSprite +_0813E278: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes +_0813E284: + ldr r1, _0813E298 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 +_0813E28C: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0813E2CC + .align 2, 0 +_0813E294: .4byte 0x0300319C +_0813E298: .4byte 0x03002360 +_0813E29C: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + bl sub_0807AB9C + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + ldr r0, _0813E2D4 + bl SetMainCallback2 + movs r1, #0x9a + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg +_0813E2CC: + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0813E2D4: .4byte 0x0813E4C5 + thumb_func_end CB2_TradeEvolutionSceneLoadGraphics + + thumb_func_start TradeEvolutionScene +TradeEvolutionScene: @ 0x0813E2D8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r3, [sp, #0x14] + movs r1, #2 + mov r2, sp + bl GetMonData + ldr r0, _0813E448 + mov r1, sp + bl StringCopy10 + ldr r0, _0813E44C + lsls r1, r5, #1 + adds r1, r1, r5 + lsls r1, r1, #1 + ldr r2, _0813E450 + adds r1, r1, r2 + bl StringCopy + ldr r1, _0813E454 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + mov r8, r0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + adds r0, r4, #0 + movs r1, #0 + bl GetMonData + adds r7, r0, #0 + adds r0, r4, #0 + movs r1, #1 + bl GetMonData + mov sl, r0 + ldr r1, _0813E458 + mov sb, r1 + movs r0, #0x64 + bl AllocZeroed + mov r2, sb + str r0, [r2] + movs r4, #0 + strb r6, [r0] + lsls r0, r5, #3 + ldr r1, _0813E45C + adds r0, r0, r1 + ldr r1, _0813E460 + ldr r1, [r1] + ldr r1, [r1, #8] + adds r2, r5, #0 + bl DecompressPicFromTable_2 + adds r0, r5, #0 + mov r1, sl + adds r2, r7, #0 + bl GetMonSpritePalStructFromOtIdPersonality + ldr r0, [r0] + movs r1, #0x90 + lsls r1, r1, #1 + movs r2, #0x20 + bl LoadCompressedPalette + adds r0, r5, #0 + movs r1, #1 + bl SetMultiuseSpriteTemplateToPokemon + ldr r0, _0813E464 + ldr r1, _0813E468 + str r1, [r0, #0x10] + movs r1, #0x78 + movs r2, #0x40 + movs r3, #0x1e + bl CreateSprite + mov r1, sb + ldr r2, [r1] + lsls r1, r0, #0x18 + lsrs r6, r1, #0x18 + strb r0, [r2, #1] + ldr r3, _0813E46C + lsls r1, r6, #4 + adds r1, r1, r6 + lsls r1, r1, #2 + adds r0, r3, #0 + adds r0, #0x1c + adds r0, r1, r0 + ldr r2, _0813E470 + str r2, [r0] + adds r1, r1, r3 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + movs r2, #0x20 + orrs r0, r2 + strb r0, [r1, #5] + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + bl LoadEvoSparkleSpriteAndPal + ldr r0, _0813E474 + movs r1, #0 + bl CreateTask + mov r1, sb + ldr r2, [r1] + lsls r1, r0, #0x18 + lsrs r6, r1, #0x18 + strb r0, [r2, #2] + ldr r1, _0813E478 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r4, [r0, #8] + mov r2, r8 + strh r2, [r0, #0xa] + strh r5, [r0, #0xc] + movs r1, #1 + strh r1, [r0, #0x10] + strh r4, [r0, #0x1a] + mov r1, sp + ldrh r1, [r1, #0x14] + strh r1, [r0, #0x1c] + ldr r0, _0813E47C + strh r4, [r0] + ldr r0, _0813E480 + strh r4, [r0] + ldr r0, _0813E484 + strh r4, [r0] + ldr r0, _0813E488 + strh r4, [r0] + ldr r0, _0813E48C + strh r4, [r0] + ldr r0, _0813E490 + strh r4, [r0] + ldr r1, _0813E494 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r2, #0 + strh r0, [r1] + ldr r0, _0813E498 + strh r4, [r0] + ldr r2, _0813E49C + ldrb r0, [r2] + movs r1, #2 + orrs r0, r1 + strb r0, [r2] + ldr r0, _0813E4A0 + bl SetVBlankCallback + ldr r0, _0813E4A4 + bl SetMainCallback2 + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0813E448: .4byte 0x02021C40 +_0813E44C: .4byte 0x02021C54 +_0813E450: .4byte 0x082EA31C +_0813E454: .4byte 0x02021C3C +_0813E458: .4byte 0x0203A84C +_0813E45C: .4byte 0x082DDA1C +_0813E460: .4byte 0x02024178 +_0813E464: .4byte 0x02024640 +_0813E468: .4byte 0x082BF310 +_0813E46C: .4byte 0x020205AC +_0813E470: .4byte 0x080394FD +_0813E474: .4byte 0x0813F281 +_0813E478: .4byte 0x03005B60 +_0813E47C: .4byte 0x02022AC8 +_0813E480: .4byte 0x02022ACA +_0813E484: .4byte 0x02022ACC +_0813E488: .4byte 0x02022ACE +_0813E48C: .4byte 0x02022AD0 +_0813E490: .4byte 0x02022AD2 +_0813E494: .4byte 0x02022AD4 +_0813E498: .4byte 0x02022AD6 +_0813E49C: .4byte 0x030030B4 +_0813E4A0: .4byte 0x0813FE2D +_0813E4A4: .4byte 0x0813E4C5 + thumb_func_end TradeEvolutionScene + + thumb_func_start CB2_EvolutionSceneUpdate +CB2_EvolutionSceneUpdate: @ 0x0813E4A8 + push {lr} + bl AnimateSprites + bl BuildOamBuffer + bl RunTextPrinters + bl UpdatePaletteFade + bl RunTasks + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CB2_EvolutionSceneUpdate + + thumb_func_start CB2_TradeEvolutionSceneUpdate +CB2_TradeEvolutionSceneUpdate: @ 0x0813E4C4 + push {lr} + bl AnimateSprites + bl BuildOamBuffer + bl RunTextPrinters + bl UpdatePaletteFade + bl RunTasks + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CB2_TradeEvolutionSceneUpdate + + thumb_func_start CreateShedinja +CreateShedinja: @ 0x0813E4E0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + movs r0, #0 + str r0, [sp] + ldr r0, _0813E628 + mov sl, r0 + mov r2, sb + lsls r2, r2, #2 + str r2, [sp, #4] + adds r0, r2, #0 + add r0, sb + lsls r7, r0, #3 + adds r0, r7, #0 + add r0, sl + mov r8, r0 + ldrh r0, [r0] + cmp r0, #0xd + beq _0813E514 + b _0813E616 +_0813E514: + ldr r6, _0813E62C + ldrb r0, [r6] + cmp r0, #5 + bhi _0813E616 + movs r5, #0x64 + muls r0, r5, r0 + ldr r4, _0813E630 + adds r0, r0, r4 + movs r2, #0x64 + bl CopyMon + ldrb r0, [r6] + muls r0, r5, r0 + adds r0, r0, r4 + mov r1, sl + adds r2, r1, r7 + adds r2, #0xc + movs r1, #0xb + bl SetMonData + ldrb r0, [r6] + muls r0, r5, r0 + adds r0, r0, r4 + mov r2, r8 + ldrh r1, [r2, #0xc] + lsls r2, r1, #1 + adds r2, r2, r1 + lsls r2, r2, #1 + ldr r1, _0813E634 + adds r2, r2, r1 + movs r1, #2 + bl SetMonData + ldrb r0, [r6] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #0xc + mov r2, sp + bl SetMonData + ldrb r0, [r6] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #8 + mov r2, sp + bl SetMonData + ldrb r0, [r6] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #0xa + mov r2, sp + bl SetMonData + movs r4, #0x32 + ldr r0, [sp, #4] + mov r8, r0 + adds r5, r6, #0 +_0813E588: + ldrb r1, [r5] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0813E630 + adds r0, r0, r1 + adds r1, r4, #0 + mov r2, sp + bl SetMonData + adds r4, #1 + cmp r4, #0x36 + ble _0813E588 + movs r4, #0x43 + ldr r7, _0813E62C +_0813E5A4: + ldrb r0, [r7] + movs r6, #0x64 + muls r0, r6, r0 + ldr r5, _0813E630 + adds r0, r0, r5 + adds r1, r4, #0 + mov r2, sp + bl SetMonData + adds r4, #1 + cmp r4, #0x4f + ble _0813E5A4 + ldr r4, _0813E62C + ldrb r0, [r4] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #0x37 + mov r2, sp + bl SetMonData + movs r0, #0xff + str r0, [sp] + ldrb r0, [r4] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #0x40 + mov r2, sp + bl SetMonData + ldrb r0, [r4] + muls r0, r6, r0 + adds r0, r0, r5 + bl CalculateMonStats + bl CalculatePlayerPartyCount + ldr r0, _0813E628 + mov r4, r8 + add r4, sb + lsls r4, r4, #3 + adds r4, r4, r0 + ldrh r0, [r4, #0xc] + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #2 + bl GetSetPokedexFlag + ldrh r0, [r4, #0xc] + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl GetSetPokedexFlag +_0813E616: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0813E628: .4byte 0x082F5CA4 +_0813E62C: .4byte 0x0202418D +_0813E630: .4byte 0x02024190 +_0813E634: .4byte 0x082EA31C + thumb_func_end CreateShedinja + + thumb_func_start Task_EvolutionScene +Task_EvolutionScene: @ 0x0813E638 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x18 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r2, _0813E6A8 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r3, r0, r2 + movs r0, #0x1c + ldrsh r1, [r3, r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _0813E6AC + adds r1, r1, r0 + mov sb, r1 + ldr r0, _0813E6B0 + ldrh r1, [r0, #0x2c] + adds r5, r2, #0 + adds r6, r0, #0 + cmp r1, #2 + bne _0813E6B8 + movs r1, #8 + ldrsh r0, [r3, r1] + cmp r0, #8 + bne _0813E6B8 + ldr r4, _0813E6B4 + ldrb r0, [r4, #2] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r5 + ldrb r0, [r1, #4] + cmp r0, #0 + beq _0813E6B8 + ldrh r1, [r3, #0xe] + movs r2, #1 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0813E6B8 + movs r0, #0x11 + strh r0, [r3, #8] + ldrb r1, [r4, #2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + strh r2, [r0, #0x18] + bl sub_081401FC + bl _0813F26C + .align 2, 0 +_0813E6A8: .4byte 0x03005B60 +_0813E6AC: .4byte 0x02024190 +_0813E6B0: .4byte 0x03002360 +_0813E6B4: .4byte 0x02023FD6 +_0813E6B8: + lsls r1, r7, #2 + adds r0, r1, r7 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r2, #8 + ldrsh r0, [r0, r2] + mov r8, r1 + cmp r0, #0x16 + bls _0813E6CE + bl _0813F26C +_0813E6CE: + lsls r0, r0, #2 + ldr r1, _0813E6D8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0813E6D8: .4byte 0x0813E6DC +_0813E6DC: @ jump table + .4byte _0813E738 @ case 0 + .4byte _0813E79C @ case 1 + .4byte _0813E7DC @ case 2 + .4byte _0813E808 @ case 3 + .4byte _0813E838 @ case 4 + .4byte _0813E878 @ case 5 + .4byte _0813E8B0 @ case 6 + .4byte _0813E8F0 @ case 7 + .4byte _0813E928 @ case 8 + .4byte _0813E96C @ case 9 + .4byte _0813E988 @ case 10 + .4byte _0813E9B4 @ case 11 + .4byte _0813E9E0 @ case 12 + .4byte _0813EA2C @ case 13 + .4byte _0813EA58 @ case 14 + .4byte _0813EAE4 @ case 15 + .4byte _0813EB90 @ case 16 + .4byte _0813EBFC @ case 17 + .4byte _0813EC3C @ case 18 + .4byte _0813EC70 @ case 19 + .4byte _0813ECD8 @ case 20 + .4byte _0813ED34 @ case 21 + .4byte _0813ED70 @ case 22 +_0813E738: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r2, _0813E790 + ldr r0, _0813E794 + ldr r0, [r0] + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + ldr r0, _0813E798 + mov r3, r8 + adds r1, r3, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg + bl _0813F26C + .align 2, 0 +_0813E790: .4byte 0x020205AC +_0813E794: .4byte 0x0203A84C +_0813E798: .4byte 0x03005B60 +_0813E79C: + ldr r0, _0813E7CC + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0813E7AC + bl _0813F26C +_0813E7AC: + ldr r4, _0813E7D0 + ldr r1, _0813E7D4 + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + movs r1, #0 + bl sub_0814FA04 + ldr r0, _0813E7D8 + mov r2, r8 + adds r1, r2, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + b _0813ED1A + .align 2, 0 +_0813E7CC: .4byte 0x02037C74 +_0813E7D0: .4byte 0x02021C7C +_0813E7D4: .4byte 0x085ABAFC +_0813E7D8: .4byte 0x03005B60 +_0813E7DC: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0813E7EC + bl _0813F26C +_0813E7EC: + ldr r0, _0813E800 + ldr r0, [r0] + ldrb r0, [r0] + ldr r1, _0813E804 + mov r3, r8 + adds r4, r3, r7 + lsls r4, r4, #3 + adds r4, r4, r1 + b _0813EC58 + .align 2, 0 +_0813E800: .4byte 0x0203A84C +_0813E804: .4byte 0x03005B60 +_0813E808: + ldr r0, _0813E830 + ldr r0, [r0] + ldrb r0, [r0] + bl EvoScene_IsMonAnimFinished + cmp r0, #0 + bne _0813E81A + bl _0813F26C +_0813E81A: + movs r0, #0xbc + lsls r0, r0, #1 + bl PlaySE + ldr r0, _0813E834 + mov r2, r8 + adds r1, r2, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + b _0813ED1A + .align 2, 0 +_0813E830: .4byte 0x0203A84C +_0813E834: .4byte 0x03005B60 +_0813E838: + bl IsSEPlaying + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + beq _0813E848 + bl _0813F26C +_0813E848: + ldr r0, _0813E870 + bl PlayNewMapMusic + ldr r0, _0813E874 + mov r3, r8 + adds r1, r3, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + str r4, [sp] + movs r0, #0x1c + movs r1, #4 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + bl _0813F26C + .align 2, 0 +_0813E870: .4byte 0x00000179 +_0813E874: .4byte 0x03005B60 +_0813E878: + ldr r0, _0813E8A4 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0813E888 + bl _0813F26C +_0813E888: + movs r0, #0 + bl InitMovingBackgroundTask + movs r0, #0x11 + bl LaunchTask_PreEvoSparklesSet1 + ldr r1, _0813E8A8 + strb r0, [r1, #2] + ldr r0, _0813E8AC + mov r2, r8 + adds r1, r2, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + b _0813ED1A + .align 2, 0 +_0813E8A4: .4byte 0x02037C74 +_0813E8A8: .4byte 0x02023FD6 +_0813E8AC: .4byte 0x03005B60 +_0813E8B0: + ldr r4, _0813E8E8 + ldrb r0, [r4, #2] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r5 + ldrb r0, [r1, #4] + cmp r0, #0 + beq _0813E8C6 + bl _0813F26C +_0813E8C6: + mov r3, r8 + adds r1, r3, r7 + lsls r1, r1, #3 + adds r1, r1, r5 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + ldr r0, _0813E8EC + ldr r1, [r0] + movs r0, #1 + strb r0, [r1, #3] + bl LaunchTask_PostEvoSparklesSet1 + strb r0, [r4, #2] + bl _0813F26C + .align 2, 0 +_0813E8E8: .4byte 0x02023FD6 +_0813E8EC: .4byte 0x0203A84C +_0813E8F0: + ldr r4, _0813E920 + ldrb r0, [r4, #2] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r5 + ldrb r0, [r1, #4] + cmp r0, #0 + beq _0813E906 + bl _0813F26C +_0813E906: + ldr r0, _0813E924 + ldr r1, [r0] + ldrb r0, [r1] + ldrb r1, [r1, #1] + bl sub_0817C260 + strb r0, [r4, #2] + mov r0, r8 + adds r1, r0, r7 + lsls r1, r1, #3 + adds r1, r1, r5 + b _0813ED1A + .align 2, 0 +_0813E920: .4byte 0x02023FD6 +_0813E924: .4byte 0x0203A84C +_0813E928: + ldr r2, _0813E964 + ldr r1, [r2] + ldrb r0, [r1, #3] + subs r0, #1 + strb r0, [r1, #3] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0813E93C + bl _0813F26C +_0813E93C: + ldr r1, [r2] + movs r0, #3 + strb r0, [r1, #3] + ldr r0, _0813E968 + ldrb r1, [r0, #2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + ldrb r0, [r0, #4] + cmp r0, #0 + beq _0813E958 + bl _0813F26C +_0813E958: + mov r2, r8 + adds r1, r2, r7 + lsls r1, r1, #3 + adds r1, r1, r5 + b _0813ED1A + .align 2, 0 +_0813E964: .4byte 0x0203A84C +_0813E968: .4byte 0x02023FD6 +_0813E96C: + bl LaunchTask_PreEvoSparklesSet2 + ldr r1, _0813E980 + strb r0, [r1, #2] + ldr r0, _0813E984 + mov r3, r8 + adds r1, r3, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + b _0813ED1A + .align 2, 0 +_0813E980: .4byte 0x02023FD6 +_0813E984: .4byte 0x03005B60 +_0813E988: + ldr r6, _0813E9B0 + ldrb r0, [r6, #2] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r5 + ldrb r0, [r1, #4] + cmp r0, #0 + beq _0813E99E + bl _0813F26C +_0813E99E: + mov r0, r8 + adds r4, r0, r7 + lsls r4, r4, #3 + adds r4, r4, r5 + ldrh r0, [r4, #0xc] + bl LaunchTask_PostEvoSparklesSet2AndFlash + strb r0, [r6, #2] + b _0813EC5E + .align 2, 0 +_0813E9B0: .4byte 0x02023FD6 +_0813E9B4: + ldr r0, _0813E9DC + ldrb r1, [r0, #2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + ldrb r0, [r0, #4] + cmp r0, #0 + beq _0813E9CA + bl _0813F26C +_0813E9CA: + movs r0, #0x21 + bl PlaySE + mov r2, r8 + adds r1, r2, r7 + lsls r1, r1, #3 + adds r1, r1, r5 + b _0813ED1A + .align 2, 0 +_0813E9DC: .4byte 0x02023FD6 +_0813E9E0: + bl IsSEPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0813E9EE + bl _0813F26C +_0813E9EE: + bl m4aMPlayAllStop + ldr r0, _0813EA20 + ldr r1, _0813EA24 + ldr r1, [r1] + adds r1, #4 + movs r2, #0x60 + bl memcpy + bl sub_0814023C + movs r0, #0 + str r0, [sp] + movs r0, #0x1c + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r0, _0813EA28 + mov r3, r8 + adds r1, r3, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + b _0813ED1A + .align 2, 0 +_0813EA20: .4byte 0x020373F4 +_0813EA24: .4byte 0x0203A84C +_0813EA28: .4byte 0x03005B60 +_0813EA2C: + ldr r0, _0813EA50 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0813EA3C + bl _0813F26C +_0813EA3C: + ldr r0, _0813EA54 + ldr r0, [r0] + ldrb r0, [r0, #1] + mov r1, r8 + adds r4, r1, r7 + lsls r4, r4, #3 + adds r4, r4, r5 + ldrh r1, [r4, #0xc] + b _0813EC5A + .align 2, 0 +_0813EA50: .4byte 0x02037C74 +_0813EA54: .4byte 0x0203A84C +_0813EA58: + bl IsCryFinished + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0813EA66 + bl _0813F26C +_0813EA66: + ldr r4, _0813EAD4 + ldr r1, _0813EAD8 + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + movs r1, #0 + bl sub_0814FA04 + ldr r0, _0813EADC + bl PlayBGM + ldr r2, _0813EAE0 + mov r3, r8 + adds r1, r3, r7 + lsls r1, r1, #3 + adds r4, r1, r2 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + adds r2, r2, r1 + adds r2, #0xc + mov r0, sb + movs r1, #0xb + bl SetMonData + mov r0, sb + bl CalculateMonStats + ldrh r1, [r4, #0xa] + ldrh r2, [r4, #0xc] + mov r0, sb + bl sub_0806D23C + ldrh r0, [r4, #0xc] + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #2 + bl GetSetPokedexFlag + ldrh r0, [r4, #0xc] + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl GetSetPokedexFlag + movs r0, #0xe + bl IncrementGameStat + b _0813F26C + .align 2, 0 +_0813EAD4: .4byte 0x02021C7C +_0813EAD8: .4byte 0x085ABB0F +_0813EADC: .4byte 0x00000173 +_0813EAE0: .4byte 0x03005B60 +_0813EAE4: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0813EAF2 + b _0813F26C +_0813EAF2: + ldr r1, _0813EB50 + mov r2, r8 + adds r0, r2, r7 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrb r1, [r4, #0x10] + mov r0, sb + bl MonTryLearningNewMove + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #0 + beq _0813EB70 + movs r3, #0x1a + ldrsh r5, [r4, r3] + cmp r5, #0 + bne _0813EB70 + ldrh r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0813EB26 + bl StopMapMusic + bl Overworld_PlaySpecialMapMusic +_0813EB26: + ldrh r0, [r4, #0xe] + movs r1, #0x80 + orrs r0, r1 + strh r0, [r4, #0xe] + strh r5, [r4, #0x10] + strh r5, [r4, #0x14] + mov r0, sb + movs r1, #2 + add r2, sp, #4 + bl GetMonData + ldr r0, _0813EB54 + add r1, sp, #4 + bl StringCopy10 + ldr r0, _0813EB58 + cmp r6, r0 + bne _0813EB5C + movs r0, #0x16 + strh r0, [r4, #8] + b _0813F26C + .align 2, 0 +_0813EB50: .4byte 0x03005B60 +_0813EB54: .4byte 0x02022C0C +_0813EB58: .4byte 0x0000FFFF +_0813EB5C: + ldr r0, _0813EB6C + cmp r6, r0 + bne _0813EB64 + b _0813F26C +_0813EB64: + movs r0, #0x14 + strh r0, [r4, #8] + b _0813F26C + .align 2, 0 +_0813EB6C: .4byte 0x0000FFFE +_0813EB70: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _0813EB8C + mov r2, r8 + adds r1, r2, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + b _0813ED1A + .align 2, 0 +_0813EB8C: .4byte 0x03005B60 +_0813EB90: + ldr r0, _0813EBF0 + ldrb r1, [r0, #7] + movs r2, #0x80 + adds r0, r2, #0 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + beq _0813EBA4 + b _0813F26C +_0813EBA4: + mov r3, r8 + adds r0, r3, r7 + lsls r0, r0, #3 + adds r4, r0, r5 + ldrh r1, [r4, #0xe] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _0813EBBE + bl StopMapMusic + bl Overworld_PlaySpecialMapMusic +_0813EBBE: + movs r1, #0x1a + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0813EBCE + ldrh r0, [r4, #0xa] + mov r1, sb + bl CreateShedinja +_0813EBCE: + adds r0, r7, #0 + bl DestroyTask + bl FreeMonSpritesGfx + ldr r4, _0813EBF4 + ldr r0, [r4] + bl Free + str r6, [r4] + bl FreeAllWindowBuffers + ldr r0, _0813EBF8 + ldr r0, [r0] + bl SetMainCallback2 + b _0813F26C + .align 2, 0 +_0813EBF0: .4byte 0x02037C74 +_0813EBF4: .4byte 0x0203A84C +_0813EBF8: .4byte 0x03005F28 +_0813EBFC: + ldr r0, _0813EC30 + ldrb r1, [r0, #2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + ldrb r0, [r0, #4] + cmp r0, #0 + beq _0813EC10 + b _0813F26C +_0813EC10: + bl m4aMPlayAllStop + ldr r0, _0813EC34 + ldr r1, _0813EC38 + str r1, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + mov r2, r8 + adds r1, r2, r7 + lsls r1, r1, #3 + adds r1, r1, r5 + b _0813ED1A + .align 2, 0 +_0813EC30: .4byte 0x02023FD6 +_0813EC34: .4byte 0x0006001C +_0813EC38: .4byte 0x00007FFF +_0813EC3C: + ldr r0, _0813EC68 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0813EC4A + b _0813F26C +_0813EC4A: + ldr r0, _0813EC6C + ldr r0, [r0] + ldrb r0, [r0] + mov r3, r8 + adds r4, r3, r7 + lsls r4, r4, #3 + adds r4, r4, r5 +_0813EC58: + ldrh r1, [r4, #0xa] +_0813EC5A: + bl EvoScene_DoMonAnimation +_0813EC5E: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _0813F26C + .align 2, 0 +_0813EC68: .4byte 0x02037C74 +_0813EC6C: .4byte 0x0203A84C +_0813EC70: + ldr r0, _0813EC9C + ldr r0, [r0] + ldrb r0, [r0] + bl EvoScene_IsMonAnimFinished + cmp r0, #0 + bne _0813EC80 + b _0813F26C +_0813EC80: + ldr r0, _0813ECA0 + mov r2, r8 + adds r1, r2, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r3, #0x1a + ldrsh r0, [r1, r3] + cmp r0, #0 + beq _0813ECAC + ldr r0, _0813ECA4 + ldr r1, _0813ECA8 + bl StringExpandPlaceholders + b _0813ECB4 + .align 2, 0 +_0813EC9C: .4byte 0x0203A84C +_0813ECA0: .4byte 0x03005B60 +_0813ECA4: .4byte 0x02021C7C +_0813ECA8: .4byte 0x085ABB3E +_0813ECAC: + ldr r0, _0813ECCC + ldr r1, _0813ECD0 + bl StringExpandPlaceholders +_0813ECB4: + ldr r0, _0813ECCC + movs r1, #0 + bl sub_0814FA04 + ldr r1, _0813ECD4 + mov r2, r8 + adds r0, r2, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #1 + strh r1, [r0, #0x1a] + b _0813F236 + .align 2, 0 +_0813ECCC: .4byte 0x02021C7C +_0813ECD0: .4byte 0x085ABB28 +_0813ECD4: .4byte 0x03005B60 +_0813ECD8: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0813ECE6 + b _0813F26C +_0813ECE6: + bl IsSEPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0813ECF2 + b _0813F26C +_0813ECF2: + bl BufferMoveToLearnIntoBattleTextBuff2 + ldr r0, _0813ED24 + bl PlayFanfare + ldr r0, _0813ED28 + ldr r0, [r0, #0xc] + bl TryGetStatusString + ldr r0, _0813ED2C + movs r1, #0 + bl sub_0814FA04 + ldr r0, _0813ED30 + mov r3, r8 + adds r1, r3, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0x40 + strh r0, [r1, #0x10] +_0813ED1A: + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _0813F26C + .align 2, 0 +_0813ED24: .4byte 0x0000016F +_0813ED28: .4byte 0x085AB3DC +_0813ED2C: .4byte 0x02022AE0 +_0813ED30: .4byte 0x03005B60 +_0813ED34: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0813ED42 + b _0813F26C +_0813ED42: + bl IsSEPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0813ED4E + b _0813F26C +_0813ED4E: + ldr r0, _0813ED6C + mov r2, r8 + adds r1, r2, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x10] + subs r0, #1 + strh r0, [r1, #0x10] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0813ED66 + b _0813F26C +_0813ED66: + movs r0, #0xf + strh r0, [r1, #8] + b _0813F26C + .align 2, 0 +_0813ED6C: .4byte 0x03005B60 +_0813ED70: + mov r3, r8 + adds r0, r3, r7 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r1, #0x14 + ldrsh r0, [r0, r1] + cmp r0, #0xc + bls _0813ED82 + b _0813F26C +_0813ED82: + lsls r0, r0, #2 + ldr r1, _0813ED8C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0813ED8C: .4byte 0x0813ED90 +_0813ED90: @ jump table + .4byte _0813EDC4 @ case 0 + .4byte _0813EE10 @ case 1 + .4byte _0813EE58 @ case 2 + .4byte _0813EE96 @ case 3 + .4byte _0813EEFC @ case 4 + .4byte _0813EFF8 @ case 5 + .4byte _0813F050 @ case 6 + .4byte _0813F124 @ case 7 + .4byte _0813F158 @ case 8 + .4byte _0813F1A0 @ case 9 + .4byte _0813F1E8 @ case 10 + .4byte _0813F21C @ case 11 + .4byte _0813F248 @ case 12 +_0813EDC4: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0813EDD2 + b _0813F26C +_0813EDD2: + bl IsSEPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0813EDDE + b _0813F26C +_0813EDDE: + bl BufferMoveToLearnIntoBattleTextBuff2 + ldr r0, _0813EE04 + ldr r0, [r0, #0x10] + bl TryGetStatusString + ldr r0, _0813EE08 + movs r1, #0 + bl sub_0814FA04 + ldr r0, _0813EE0C + mov r2, r8 + adds r1, r2, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x14] + adds r0, #1 + b _0813F26A + .align 2, 0 +_0813EE04: .4byte 0x085AB3DC +_0813EE08: .4byte 0x02022AE0 +_0813EE0C: .4byte 0x03005B60 +_0813EE10: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0813EE1E + b _0813F26C +_0813EE1E: + bl IsSEPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0813EE2A + b _0813F26C +_0813EE2A: + ldr r0, _0813EE4C + ldr r0, [r0, #0x14] + bl TryGetStatusString + ldr r0, _0813EE50 + movs r1, #0 + bl sub_0814FA04 + ldr r0, _0813EE54 + mov r3, r8 + adds r1, r3, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x14] + adds r0, #1 + b _0813F26A + .align 2, 0 +_0813EE4C: .4byte 0x085AB3DC +_0813EE50: .4byte 0x02022AE0 +_0813EE54: .4byte 0x03005B60 +_0813EE58: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0813EE96 + bl IsSEPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0813EE96 + ldr r0, _0813EEE8 + ldr r0, [r0, #0x18] + bl TryGetStatusString + ldr r0, _0813EEEC + movs r1, #0 + bl sub_0814FA04 + ldr r0, _0813EEF0 + mov r2, r8 + adds r1, r2, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #5 + strh r0, [r1, #0x16] + movs r0, #0xa + strh r0, [r1, #0x18] + ldrh r0, [r1, #0x14] + adds r0, #1 + strh r0, [r1, #0x14] +_0813EE96: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0813EEA4 + b _0813F26C +_0813EEA4: + bl IsSEPlaying + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _0813EEB2 + b _0813F26C +_0813EEB2: + str r0, [sp] + movs r0, #0x18 + movs r1, #8 + movs r2, #0x1d + movs r3, #0xd + bl HandleBattleWindow + ldr r0, _0813EEF4 + movs r1, #0xc + bl sub_0814FA04 + ldr r0, _0813EEF0 + mov r3, r8 + adds r1, r3, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x14] + adds r0, #1 + movs r2, #0 + strh r0, [r1, #0x14] + ldr r0, _0813EEF8 + strb r2, [r0, #1] + movs r0, #0 + bl BattleCreateYesNoCursorAt + b _0813F26C + .align 2, 0 +_0813EEE8: .4byte 0x085AB3DC +_0813EEEC: .4byte 0x02022AE0 +_0813EEF0: .4byte 0x03005B60 +_0813EEF4: .4byte 0x085ABBC9 +_0813EEF8: .4byte 0x02023FD6 +_0813EEFC: + ldr r0, _0813EF88 + ldrh r1, [r0, #0x2e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0813EF24 + ldr r4, _0813EF8C + ldrb r0, [r4, #1] + cmp r0, #0 + beq _0813EF24 + movs r0, #5 + bl PlaySE + ldrb r0, [r4, #1] + bl BattleDestroyYesNoCursorAt + movs r0, #0 + strb r0, [r4, #1] + bl BattleCreateYesNoCursorAt +_0813EF24: + ldr r0, _0813EF88 + ldrh r1, [r0, #0x2e] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0813EF4C + ldr r4, _0813EF8C + ldrb r0, [r4, #1] + cmp r0, #0 + bne _0813EF4C + movs r0, #5 + bl PlaySE + ldrb r0, [r4, #1] + bl BattleDestroyYesNoCursorAt + movs r0, #1 + strb r0, [r4, #1] + bl BattleCreateYesNoCursorAt +_0813EF4C: + ldr r0, _0813EF88 + ldrh r1, [r0, #0x2e] + movs r2, #1 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0813EFBA + str r2, [sp] + movs r0, #0x18 + movs r1, #8 + movs r2, #0x1d + movs r3, #0xd + bl HandleBattleWindow + movs r0, #5 + bl PlaySE + ldr r0, _0813EF8C + ldrb r2, [r0, #1] + cmp r2, #0 + beq _0813EF94 + ldr r0, _0813EF90 + mov r2, r8 + adds r1, r2, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x18] + strh r0, [r1, #0x14] + b _0813EFBA + .align 2, 0 +_0813EF88: .4byte 0x03002360 +_0813EF8C: .4byte 0x02023FD6 +_0813EF90: .4byte 0x03005B60 +_0813EF94: + ldr r0, _0813EFF0 + mov r3, r8 + adds r1, r3, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x16] + strh r0, [r1, #0x14] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #5 + bne _0813EFBA + movs r0, #1 + rsbs r0, r0, #0 + str r2, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade +_0813EFBA: + ldr r0, _0813EFF4 + ldrh r1, [r0, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0813EFC8 + b _0813F26C +_0813EFC8: + movs r0, #1 + str r0, [sp] + movs r0, #0x18 + movs r1, #8 + movs r2, #0x1d + movs r3, #0xd + bl HandleBattleWindow + movs r0, #5 + bl PlaySE + ldr r1, _0813EFF0 + mov r2, r8 + adds r0, r2, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #0x18] + strh r1, [r0, #0x14] + b _0813F26C + .align 2, 0 +_0813EFF0: .4byte 0x03005B60 +_0813EFF4: .4byte 0x03002360 +_0813EFF8: + ldr r0, _0813F038 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0813F006 + b _0813F26C +_0813F006: + bl FreeAllWindowBuffers + ldr r0, _0813F03C + ldr r1, _0813F040 + mov r3, r8 + adds r5, r3, r7 + lsls r5, r5, #3 + adds r5, r5, r1 + ldrb r1, [r5, #0x1c] + ldr r2, _0813F044 + ldrb r2, [r2] + subs r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r3, _0813F048 + ldr r4, _0813F04C + ldrh r4, [r4] + str r4, [sp] + bl ShowSelectMovePokemonSummaryScreen + ldrh r0, [r5, #0x14] + adds r0, #1 + strh r0, [r5, #0x14] + b _0813F26C + .align 2, 0 +_0813F038: .4byte 0x02037C74 +_0813F03C: .4byte 0x02024190 +_0813F040: .4byte 0x03005B60 +_0813F044: .4byte 0x0202418D +_0813F048: .4byte 0x0813DE81 +_0813F04C: .4byte 0x02024186 +_0813F050: + ldr r0, _0813F084 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0813F05E + b _0813F26C +_0813F05E: + ldr r1, [r6, #4] + ldr r0, _0813F088 + cmp r1, r0 + beq _0813F068 + b _0813F26C +_0813F068: + bl sub_081C14C8 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #4 + bne _0813F090 + ldr r0, _0813F08C + mov r2, r8 + adds r1, r2, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0xa + b _0813F26A + .align 2, 0 +_0813F084: .4byte 0x02037C74 +_0813F088: .4byte 0x0813E4A9 +_0813F08C: .4byte 0x03005B60 +_0813F090: + adds r1, r6, #0 + adds r1, #0xd + mov r0, sb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r4, #0 + bl IsHMMove2 + cmp r0, #0 + beq _0813F0DC + ldr r0, _0813F0CC + ldr r3, _0813F0D0 + adds r0, r0, r3 + ldr r0, [r0] + bl TryGetStatusString + ldr r0, _0813F0D4 + movs r1, #0 + bl sub_0814FA04 + ldr r1, _0813F0D8 + mov r2, r8 + adds r0, r2, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0xc + strh r1, [r0, #0x14] + b _0813F26C + .align 2, 0 +_0813F0CC: .4byte 0x085AB3DC +_0813F0D0: .4byte 0x000004CC +_0813F0D4: .4byte 0x02022AE0 +_0813F0D8: .4byte 0x03005B60 +_0813F0DC: + ldr r1, _0813F118 + movs r0, #0xfd + strb r0, [r1] + movs r0, #2 + strb r0, [r1, #1] + strb r4, [r1, #2] + lsrs r0, r4, #8 + strb r0, [r1, #3] + movs r0, #0xff + strb r0, [r1, #4] + lsls r4, r6, #0x18 + lsrs r4, r4, #0x18 + mov r0, sb + adds r1, r4, #0 + bl RemoveMonPPBonus + ldr r0, _0813F11C + ldrh r1, [r0] + mov r0, sb + adds r2, r4, #0 + bl SetMonMoveSlot + ldr r0, _0813F120 + mov r3, r8 + adds r1, r3, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x14] + adds r0, #1 + b _0813F26A + .align 2, 0 +_0813F118: .4byte 0x02022C1C +_0813F11C: .4byte 0x02024186 +_0813F120: .4byte 0x03005B60 +_0813F124: + ldr r0, _0813F14C + movs r1, #0xcf + lsls r1, r1, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl TryGetStatusString + ldr r0, _0813F150 + movs r1, #0 + bl sub_0814FA04 + ldr r0, _0813F154 + mov r2, r8 + adds r1, r2, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x14] + adds r0, #1 + b _0813F26A + .align 2, 0 +_0813F14C: .4byte 0x085AB3DC +_0813F150: .4byte 0x02022AE0 +_0813F154: .4byte 0x03005B60 +_0813F158: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0813F166 + b _0813F26C +_0813F166: + bl IsSEPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0813F172 + b _0813F26C +_0813F172: + ldr r0, _0813F194 + ldr r0, [r0, #0x1c] + bl TryGetStatusString + ldr r0, _0813F198 + movs r1, #0 + bl sub_0814FA04 + ldr r0, _0813F19C + mov r3, r8 + adds r1, r3, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x14] + adds r0, #1 + b _0813F26A + .align 2, 0 +_0813F194: .4byte 0x085AB3DC +_0813F198: .4byte 0x02022AE0 +_0813F19C: .4byte 0x03005B60 +_0813F1A0: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0813F26C + bl IsSEPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0813F26C + ldr r0, _0813F1DC + movs r1, #0xd0 + lsls r1, r1, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl TryGetStatusString + ldr r0, _0813F1E0 + movs r1, #0 + bl sub_0814FA04 + ldr r1, _0813F1E4 + mov r2, r8 + adds r0, r2, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0x14 + strh r1, [r0, #8] + b _0813F26C + .align 2, 0 +_0813F1DC: .4byte 0x085AB3DC +_0813F1E0: .4byte 0x02022AE0 +_0813F1E4: .4byte 0x03005B60 +_0813F1E8: + ldr r0, _0813F210 + ldr r0, [r0, #0x20] + bl TryGetStatusString + ldr r0, _0813F214 + movs r1, #0 + bl sub_0814FA04 + ldr r1, _0813F218 + mov r3, r8 + adds r0, r3, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #0 + movs r1, #0xb + strh r1, [r0, #0x16] + strh r2, [r0, #0x18] + movs r1, #3 + strh r1, [r0, #0x14] + b _0813F26C + .align 2, 0 +_0813F210: .4byte 0x085AB3DC +_0813F214: .4byte 0x02022AE0 +_0813F218: .4byte 0x03005B60 +_0813F21C: + ldr r0, _0813F23C + ldr r0, [r0, #0x24] + bl TryGetStatusString + ldr r0, _0813F240 + movs r1, #0 + bl sub_0814FA04 + ldr r1, _0813F244 + mov r2, r8 + adds r0, r2, r7 + lsls r0, r0, #3 + adds r0, r0, r1 +_0813F236: + movs r1, #0xf + strh r1, [r0, #8] + b _0813F26C + .align 2, 0 +_0813F23C: .4byte 0x085AB3DC +_0813F240: .4byte 0x02022AE0 +_0813F244: .4byte 0x03005B60 +_0813F248: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0813F26C + bl IsSEPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0813F26C + ldr r0, _0813F27C + mov r3, r8 + adds r1, r3, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #5 +_0813F26A: + strh r0, [r1, #0x14] +_0813F26C: + add sp, #0x18 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0813F27C: .4byte 0x03005B60 + thumb_func_end Task_EvolutionScene + + thumb_func_start Task_TradeEvolutionScene +Task_TradeEvolutionScene: @ 0x0813F280 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x20 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r3, _0813F2C0 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r3 + movs r1, #0x1c + ldrsh r2, [r0, r1] + movs r1, #0x64 + muls r2, r1, r2 + ldr r1, _0813F2C4 + adds r2, r2, r1 + mov sb, r2 + movs r2, #8 + ldrsh r0, [r0, r2] + adds r5, r3, #0 + cmp r0, #0x14 + bls _0813F2B4 + bl _0813FD8C +_0813F2B4: + lsls r0, r0, #2 + ldr r1, _0813F2C8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0813F2C0: .4byte 0x03005B60 +_0813F2C4: .4byte 0x02024190 +_0813F2C8: .4byte 0x0813F2CC +_0813F2CC: @ jump table + .4byte _0813F320 @ case 0 + .4byte _0813F34C @ case 1 + .4byte _0813F374 @ case 2 + .4byte _0813F3A4 @ case 3 + .4byte _0813F3DC @ case 4 + .4byte _0813F448 @ case 5 + .4byte _0813F488 @ case 6 + .4byte _0813F4B8 @ case 7 + .4byte _0813F4F4 @ case 8 + .4byte _0813F510 @ case 9 + .4byte _0813F53C @ case 10 + .4byte _0813F560 @ case 11 + .4byte _0813F5A0 @ case 12 + .4byte _0813F62C @ case 13 + .4byte _0813F6E0 @ case 14 + .4byte _0813F724 @ case 15 + .4byte _0813F78C @ case 16 + .4byte _0813F7C0 @ case 17 + .4byte _0813F804 @ case 18 + .4byte _0813F860 @ case 19 + .4byte _0813F8A0 @ case 20 +_0813F320: + ldr r4, _0813F340 + ldr r1, _0813F344 + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #0 + adds r1, r4, #0 + movs r2, #1 + bl sub_0807EBE0 + ldr r1, _0813F348 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + b _0813F770 + .align 2, 0 +_0813F340: .4byte 0x02021C7C +_0813F344: .4byte 0x085ABAFC +_0813F348: .4byte 0x03005B60 +_0813F34C: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0813F35C + bl _0813FD8C +_0813F35C: + ldr r0, _0813F370 + lsls r4, r7, #2 + adds r4, r4, r7 + lsls r4, r4, #3 + adds r4, r4, r0 + ldrh r0, [r4, #0xa] + movs r1, #0 + bl PlayCry1 + b _0813F7AE + .align 2, 0 +_0813F370: .4byte 0x03005B60 +_0813F374: + bl IsCryFinished + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0813F382 + bl _0813FD8C +_0813F382: + ldr r0, _0813F39C + bl m4aSongNumStop + movs r0, #0xbc + lsls r0, r0, #1 + bl PlaySE + ldr r1, _0813F3A0 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + b _0813F770 + .align 2, 0 +_0813F39C: .4byte 0x00000179 +_0813F3A0: .4byte 0x03005B60 +_0813F3A4: + bl IsSEPlaying + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + beq _0813F3B4 + bl _0813FD8C +_0813F3B4: + ldr r0, _0813F3D4 + bl PlayBGM + ldr r1, _0813F3D8 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #8] + adds r1, #1 + strh r1, [r0, #8] + str r5, [sp] + movs r0, #0x1c + movs r1, #4 + b _0813FA90 + .align 2, 0 +_0813F3D4: .4byte 0x00000179 +_0813F3D8: .4byte 0x03005B60 +_0813F3DC: + ldr r0, _0813F430 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0813F3EC + bl _0813FD8C +_0813F3EC: + movs r0, #1 + bl InitMovingBackgroundTask + ldr r2, _0813F434 + ldr r0, _0813F438 + ldr r0, [r0] + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #5] + lsrs r0, r0, #4 + adds r6, r0, #0 + adds r6, #0x10 + adds r0, r6, #0 + bl LaunchTask_PreEvoSparklesSet1 + ldr r1, _0813F43C + strb r0, [r1, #2] + ldr r1, _0813F440 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #8] + adds r1, #1 + strh r1, [r0, #8] + ldr r1, _0813F444 + movs r0, #0xe + bl SetGpuReg + bl _0813FD8C + .align 2, 0 +_0813F430: .4byte 0x02037C74 +_0813F434: .4byte 0x020205AC +_0813F438: .4byte 0x0203A84C +_0813F43C: .4byte 0x02023FD6 +_0813F440: .4byte 0x03005B60 +_0813F444: .4byte 0x00000603 +_0813F448: + ldr r4, _0813F480 + ldrb r0, [r4, #2] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r5 + ldrb r0, [r1, #4] + cmp r0, #0 + beq _0813F45E + bl _0813FD8C +_0813F45E: + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r5 + ldrh r1, [r0, #8] + adds r1, #1 + strh r1, [r0, #8] + ldr r0, _0813F484 + ldr r1, [r0] + movs r0, #1 + strb r0, [r1, #3] + bl LaunchTask_PostEvoSparklesSet1 + strb r0, [r4, #2] + bl _0813FD8C + .align 2, 0 +_0813F480: .4byte 0x02023FD6 +_0813F484: .4byte 0x0203A84C +_0813F488: + ldr r4, _0813F4B0 + ldrb r0, [r4, #2] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r5 + ldrb r0, [r1, #4] + cmp r0, #0 + beq _0813F49E + bl _0813FD8C +_0813F49E: + ldr r0, _0813F4B4 + ldr r1, [r0] + ldrb r0, [r1] + ldrb r1, [r1, #1] + bl sub_0817C260 + strb r0, [r4, #2] + b _0813F768 + .align 2, 0 +_0813F4B0: .4byte 0x02023FD6 +_0813F4B4: .4byte 0x0203A84C +_0813F4B8: + ldr r2, _0813F4EC + ldr r1, [r2] + ldrb r0, [r1, #3] + subs r0, #1 + strb r0, [r1, #3] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0813F4CC + bl _0813FD8C +_0813F4CC: + ldr r1, [r2] + movs r0, #3 + strb r0, [r1, #3] + ldr r0, _0813F4F0 + ldrb r1, [r0, #2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + ldrb r0, [r0, #4] + cmp r0, #0 + beq _0813F4E8 + bl _0813FD8C +_0813F4E8: + b _0813F768 + .align 2, 0 +_0813F4EC: .4byte 0x0203A84C +_0813F4F0: .4byte 0x02023FD6 +_0813F4F4: + bl LaunchTask_PreEvoSparklesSet2 + ldr r1, _0813F508 + strb r0, [r1, #2] + ldr r1, _0813F50C + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + b _0813F770 + .align 2, 0 +_0813F508: .4byte 0x02023FD6 +_0813F50C: .4byte 0x03005B60 +_0813F510: + ldr r6, _0813F538 + ldrb r0, [r6, #2] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r5 + ldrb r0, [r1, #4] + cmp r0, #0 + beq _0813F526 + bl _0813FD8C +_0813F526: + lsls r4, r7, #2 + adds r4, r4, r7 + lsls r4, r4, #3 + adds r4, r4, r5 + ldrh r0, [r4, #0xc] + bl LaunchTask_PostEvoSparklesSet2AndFlash_Trade + strb r0, [r6, #2] + b _0813F7AE + .align 2, 0 +_0813F538: .4byte 0x02023FD6 +_0813F53C: + ldr r0, _0813F55C + ldrb r1, [r0, #2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + ldrb r0, [r0, #4] + cmp r0, #0 + beq _0813F552 + bl _0813FD8C +_0813F552: + movs r0, #0x21 + bl PlaySE + b _0813F768 + .align 2, 0 +_0813F55C: .4byte 0x02023FD6 +_0813F560: + bl IsSEPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0813F56E + bl _0813FD8C +_0813F56E: + ldr r5, _0813F594 + ldr r0, [r5] + ldrb r0, [r0, #1] + ldr r1, _0813F598 + lsls r4, r7, #2 + adds r4, r4, r7 + lsls r4, r4, #3 + adds r4, r4, r1 + ldrh r1, [r4, #0xc] + bl EvoScene_DoMonAnimation + ldr r0, _0813F59C + ldr r1, [r5] + adds r1, #4 + movs r2, #0x60 + bl memcpy + b _0813F7AE + .align 2, 0 +_0813F594: .4byte 0x0203A84C +_0813F598: .4byte 0x03005B60 +_0813F59C: .4byte 0x020373F4 +_0813F5A0: + bl IsCryFinished + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0813F5AE + bl _0813FD8C +_0813F5AE: + ldr r4, _0813F61C + ldr r1, _0813F620 + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #0 + adds r1, r4, #0 + movs r2, #1 + bl sub_0807EBE0 + ldr r0, _0813F624 + bl PlayFanfare + ldr r2, _0813F628 + lsls r1, r7, #2 + adds r1, r1, r7 + lsls r1, r1, #3 + adds r4, r1, r2 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + adds r2, r2, r1 + adds r2, #0xc + mov r0, sb + movs r1, #0xb + bl SetMonData + mov r0, sb + bl CalculateMonStats + ldrh r1, [r4, #0xa] + ldrh r2, [r4, #0xc] + mov r0, sb + bl sub_0806D23C + ldrh r0, [r4, #0xc] + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #2 + bl GetSetPokedexFlag + ldrh r0, [r4, #0xc] + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl GetSetPokedexFlag + movs r0, #0xe + bl IncrementGameStat + b _0813FD8C + .align 2, 0 +_0813F61C: .4byte 0x02021C7C +_0813F620: .4byte 0x085ABB0F +_0813F624: .4byte 0x00000173 +_0813F628: .4byte 0x03005B60 +_0813F62C: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0813F63A + b _0813FD8C +_0813F63A: + bl IsFanfareTaskInactive + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0813F648 + b _0813FD8C +_0813F648: + ldr r1, _0813F698 + lsls r4, r7, #2 + adds r0, r4, r7 + lsls r0, r0, #3 + adds r5, r0, r1 + ldrb r1, [r5, #0x10] + mov r0, sb + bl MonTryLearningNewMove + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + mov r8, r4 + cmp r6, #0 + beq _0813F6B8 + movs r0, #0x1a + ldrsh r2, [r5, r0] + cmp r2, #0 + bne _0813F6B8 + ldrh r1, [r5, #0xe] + movs r0, #0x80 + orrs r0, r1 + strh r0, [r5, #0xe] + strh r2, [r5, #0x10] + strh r2, [r5, #0x14] + mov r0, sb + movs r1, #2 + add r2, sp, #0xc + bl GetMonData + ldr r0, _0813F69C + add r1, sp, #0xc + bl StringCopy10 + ldr r0, _0813F6A0 + cmp r6, r0 + bne _0813F6A4 + movs r0, #0x14 + strh r0, [r5, #8] + b _0813FD8C + .align 2, 0 +_0813F698: .4byte 0x03005B60 +_0813F69C: .4byte 0x02022C0C +_0813F6A0: .4byte 0x0000FFFF +_0813F6A4: + ldr r0, _0813F6B4 + cmp r6, r0 + bne _0813F6AC + b _0813FD8C +_0813F6AC: + movs r0, #0x12 + strh r0, [r5, #8] + b _0813FD8C + .align 2, 0 +_0813F6B4: .4byte 0x0000FFFE +_0813F6B8: + ldr r0, _0813F6D4 + bl PlayBGM + ldr r1, _0813F6D8 + movs r0, #0 + movs r2, #1 + bl sub_0807EBE0 + ldr r0, _0813F6DC + mov r2, r8 + adds r1, r2, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + b _0813F848 + .align 2, 0 +_0813F6D4: .4byte 0x00000179 +_0813F6D8: .4byte 0x08595430 +_0813F6DC: .4byte 0x03005B60 +_0813F6E0: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0 + beq _0813F6F0 + b _0813FD8C +_0813F6F0: + adds r0, r7, #0 + bl DestroyTask + ldr r4, _0813F718 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r2, _0813F71C + ldrb r1, [r2] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldr r0, _0813F720 + ldr r0, [r0] + bl SetMainCallback2 + b _0813FD8C + .align 2, 0 +_0813F718: .4byte 0x0203A84C +_0813F71C: .4byte 0x030030B4 +_0813F720: .4byte 0x03005F28 +_0813F724: + ldr r0, _0813F778 + ldrb r1, [r0, #2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + ldrb r0, [r0, #4] + cmp r0, #0 + beq _0813F738 + b _0813FD8C +_0813F738: + bl m4aMPlayAllStop + ldr r2, _0813F77C + ldr r0, _0813F780 + ldr r0, [r0] + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #5] + lsrs r1, r1, #4 + adds r1, #0x10 + movs r0, #1 + lsls r0, r1 + ldr r1, _0813F784 + orrs r0, r1 + ldr r1, _0813F788 + str r1, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade +_0813F768: + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r5 +_0813F770: + ldrh r1, [r0, #8] + adds r1, #1 + strh r1, [r0, #8] + b _0813FD8C + .align 2, 0 +_0813F778: .4byte 0x02023FD6 +_0813F77C: .4byte 0x020205AC +_0813F780: .4byte 0x0203A84C +_0813F784: .4byte 0x0004001C +_0813F788: .4byte 0x00007FFF +_0813F78C: + ldr r0, _0813F7B8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0813F79A + b _0813FD8C +_0813F79A: + ldr r0, _0813F7BC + ldr r0, [r0] + ldrb r0, [r0] + lsls r4, r7, #2 + adds r4, r4, r7 + lsls r4, r4, #3 + adds r4, r4, r5 + ldrh r1, [r4, #0xa] + bl EvoScene_DoMonAnimation +_0813F7AE: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _0813FD8C + .align 2, 0 +_0813F7B8: .4byte 0x02037C74 +_0813F7BC: .4byte 0x0203A84C +_0813F7C0: + ldr r0, _0813F7F4 + ldr r0, [r0] + ldrb r0, [r0] + bl EvoScene_IsMonAnimFinished + cmp r0, #0 + bne _0813F7D0 + b _0813FD8C +_0813F7D0: + ldr r4, _0813F7F8 + ldr r1, _0813F7FC + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #0 + adds r1, r4, #0 + movs r2, #1 + bl sub_0807EBE0 + ldr r1, _0813F800 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #1 + strh r1, [r0, #0x1a] + b _0813FD54 + .align 2, 0 +_0813F7F4: .4byte 0x0203A84C +_0813F7F8: .4byte 0x02021C7C +_0813F7FC: .4byte 0x085ABB3E +_0813F800: .4byte 0x03005B60 +_0813F804: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0813F812 + b _0813FD8C +_0813F812: + bl IsSEPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0813F81E + b _0813FD8C +_0813F81E: + bl BufferMoveToLearnIntoBattleTextBuff2 + ldr r0, _0813F850 + bl PlayFanfare + ldr r0, _0813F854 + ldr r0, [r0, #0xc] + bl TryGetStatusString + ldr r1, _0813F858 + movs r0, #0 + movs r2, #1 + bl sub_0807EBE0 + ldr r0, _0813F85C + lsls r1, r7, #2 + adds r1, r1, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0x40 + strh r0, [r1, #0x10] +_0813F848: + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _0813FD8C + .align 2, 0 +_0813F850: .4byte 0x0000016F +_0813F854: .4byte 0x085AB3DC +_0813F858: .4byte 0x02022AE0 +_0813F85C: .4byte 0x03005B60 +_0813F860: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0813F86E + b _0813FD8C +_0813F86E: + bl IsFanfareTaskInactive + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0813F87C + b _0813FD8C +_0813F87C: + ldr r0, _0813F89C + lsls r1, r7, #2 + adds r1, r1, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x10] + subs r0, #1 + strh r0, [r1, #0x10] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0813F894 + b _0813FD8C +_0813F894: + movs r0, #0xd + strh r0, [r1, #8] + b _0813FD8C + .align 2, 0 +_0813F89C: .4byte 0x03005B60 +_0813F8A0: + lsls r1, r7, #2 + adds r0, r1, r7 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r2, #0x14 + ldrsh r0, [r0, r2] + mov r8, r1 + cmp r0, #0xb + bls _0813F8B4 + b _0813FD8C +_0813F8B4: + lsls r0, r0, #2 + ldr r1, _0813F8C0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0813F8C0: .4byte 0x0813F8C4 +_0813F8C4: @ jump table + .4byte _0813F8F4 @ case 0 + .4byte _0813F940 @ case 1 + .4byte _0813F988 @ case 2 + .4byte _0813F9C8 @ case 3 + .4byte _0813FA34 @ case 4 + .4byte _0813FAEC @ case 5 + .4byte _0813FB70 @ case 6 + .4byte _0813FC6C @ case 7 + .4byte _0813FCB4 @ case 8 + .4byte _0813FD00 @ case 9 + .4byte _0813FD38 @ case 10 + .4byte _0813FD68 @ case 11 +_0813F8F4: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0813F902 + b _0813FD8C +_0813F902: + bl IsSEPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0813F90E + b _0813FD8C +_0813F90E: + bl BufferMoveToLearnIntoBattleTextBuff2 + ldr r0, _0813F934 + ldr r0, [r0, #0x10] + bl TryGetStatusString + ldr r1, _0813F938 + movs r0, #0 + movs r2, #1 + bl sub_0807EBE0 + ldr r0, _0813F93C + mov r2, r8 + adds r1, r2, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x14] + adds r0, #1 + b _0813FD8A + .align 2, 0 +_0813F934: .4byte 0x085AB3DC +_0813F938: .4byte 0x02022AE0 +_0813F93C: .4byte 0x03005B60 +_0813F940: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0813F94E + b _0813FD8C +_0813F94E: + bl IsSEPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0813F95A + b _0813FD8C +_0813F95A: + ldr r0, _0813F97C + ldr r0, [r0, #0x14] + bl TryGetStatusString + ldr r1, _0813F980 + movs r0, #0 + movs r2, #1 + bl sub_0807EBE0 + ldr r0, _0813F984 + mov r2, r8 + adds r1, r2, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x14] + adds r0, #1 + b _0813FD8A + .align 2, 0 +_0813F97C: .4byte 0x085AB3DC +_0813F980: .4byte 0x02022AE0 +_0813F984: .4byte 0x03005B60 +_0813F988: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0813F9C8 + bl IsSEPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0813F9C8 + ldr r0, _0813FA20 + ldr r0, [r0, #0x18] + bl TryGetStatusString + ldr r1, _0813FA24 + movs r0, #0 + movs r2, #1 + bl sub_0807EBE0 + ldr r0, _0813FA28 + mov r2, r8 + adds r1, r2, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #5 + strh r0, [r1, #0x16] + movs r0, #9 + strh r0, [r1, #0x18] + ldrh r0, [r1, #0x14] + adds r0, #1 + strh r0, [r1, #0x14] +_0813F9C8: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0813F9D6 + b _0813FD8C +_0813F9D6: + bl IsSEPlaying + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + beq _0813F9E4 + b _0813FD8C +_0813F9E4: + movs r0, #0 + movs r1, #0xa8 + movs r2, #0xe0 + bl LoadUserWindowBorderGfx + ldr r0, _0813FA2C + movs r1, #0xa8 + str r1, [sp] + movs r1, #0xe + str r1, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r2, #2 + movs r3, #2 + bl sub_08198C08 + ldr r3, _0813FA30 + strb r4, [r3, #1] + ldr r0, _0813FA28 + mov r2, r8 + adds r1, r2, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x14] + adds r0, #1 + movs r2, #0 + strh r0, [r1, #0x14] + strb r2, [r3, #1] + b _0813FD8C + .align 2, 0 +_0813FA20: .4byte 0x085AB3DC +_0813FA24: .4byte 0x02022AE0 +_0813FA28: .4byte 0x03005B60 +_0813FA2C: .4byte 0x0830D28C +_0813FA30: .4byte 0x02023FD6 +_0813FA34: + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r6, r0, #0x18 + cmp r6, #0 + beq _0813FA54 + cmp r6, #0 + bgt _0813FA4E + movs r0, #1 + rsbs r0, r0, #0 + cmp r6, r0 + beq _0813FAAC + b _0813FD8C +_0813FA4E: + cmp r6, #1 + beq _0813FAAC + b _0813FD8C +_0813FA54: + ldr r0, _0813FA9C + strb r6, [r0, #1] + ldr r0, _0813FAA0 + movs r1, #0x92 + lsls r1, r1, #3 + adds r0, r0, r1 + ldr r0, [r0] + bl TryGetStatusString + ldr r1, _0813FAA4 + movs r0, #0 + movs r2, #1 + bl sub_0807EBE0 + ldr r1, _0813FAA8 + mov r2, r8 + adds r0, r2, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #0x16] + strh r1, [r0, #0x14] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #5 + beq _0813FA88 + b _0813FD8C +_0813FA88: + movs r0, #1 + rsbs r0, r0, #0 + str r6, [sp] + movs r1, #0 +_0813FA90: + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + b _0813FD8C + .align 2, 0 +_0813FA9C: .4byte 0x02023FD6 +_0813FAA0: .4byte 0x085AB3DC +_0813FAA4: .4byte 0x02022AE0 +_0813FAA8: .4byte 0x03005B60 +_0813FAAC: + ldr r1, _0813FADC + movs r0, #1 + strb r0, [r1, #1] + ldr r0, _0813FAE0 + movs r1, #0x92 + lsls r1, r1, #3 + adds r0, r0, r1 + ldr r0, [r0] + bl TryGetStatusString + ldr r1, _0813FAE4 + movs r0, #0 + movs r2, #1 + bl sub_0807EBE0 + ldr r1, _0813FAE8 + mov r2, r8 + adds r0, r2, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #0x18] + strh r1, [r0, #0x14] + b _0813FD8C + .align 2, 0 +_0813FADC: .4byte 0x02023FD6 +_0813FAE0: .4byte 0x085AB3DC +_0813FAE4: .4byte 0x02022AE0 +_0813FAE8: .4byte 0x03005B60 +_0813FAEC: + ldr r0, _0813FB54 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0813FAFA + b _0813FD8C +_0813FAFA: + ldr r0, _0813FB58 + ldrb r0, [r0] + cmp r0, #0 + beq _0813FB06 + bl DestroyWirelessStatusIndicatorSprite +_0813FB06: + movs r0, #3 + bl GetBgTilemapBuffer + bl Free + movs r0, #1 + bl GetBgTilemapBuffer + bl Free + movs r0, #0 + bl GetBgTilemapBuffer + bl Free + bl FreeAllWindowBuffers + ldr r0, _0813FB5C + ldr r1, _0813FB60 + mov r2, r8 + adds r5, r2, r7 + lsls r5, r5, #3 + adds r5, r5, r1 + ldrb r1, [r5, #0x1c] + ldr r2, _0813FB64 + ldrb r2, [r2] + subs r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r3, _0813FB68 + ldr r4, _0813FB6C + ldrh r4, [r4] + str r4, [sp] + bl ShowSelectMovePokemonSummaryScreen + ldrh r0, [r5, #0x14] + adds r0, #1 + strh r0, [r5, #0x14] + b _0813FD8C + .align 2, 0 +_0813FB54: .4byte 0x02037C74 +_0813FB58: .4byte 0x0300319C +_0813FB5C: .4byte 0x02024190 +_0813FB60: .4byte 0x03005B60 +_0813FB64: .4byte 0x0202418D +_0813FB68: .4byte 0x0813E075 +_0813FB6C: .4byte 0x02024186 +_0813FB70: + ldr r0, _0813FBA4 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0813FB7E + b _0813FD8C +_0813FB7E: + ldr r0, _0813FBA8 + ldr r1, [r0, #4] + ldr r0, _0813FBAC + cmp r1, r0 + beq _0813FB8A + b _0813FD8C +_0813FB8A: + bl sub_081C14C8 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #4 + bne _0813FBB4 + ldr r0, _0813FBB0 + mov r2, r8 + adds r1, r2, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #9 + b _0813FD8A + .align 2, 0 +_0813FBA4: .4byte 0x02037C74 +_0813FBA8: .4byte 0x03002360 +_0813FBAC: .4byte 0x0813E4C5 +_0813FBB0: .4byte 0x03005B60 +_0813FBB4: + adds r1, r6, #0 + adds r1, #0xd + mov r0, sb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r4, #0 + bl IsHMMove2 + cmp r0, #0 + beq _0813FC04 + ldr r0, _0813FBF4 + ldr r1, _0813FBF8 + adds r0, r0, r1 + ldr r0, [r0] + bl TryGetStatusString + ldr r1, _0813FBFC + movs r0, #0 + movs r2, #1 + bl sub_0807EBE0 + ldr r1, _0813FC00 + mov r2, r8 + adds r0, r2, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0xb + strh r1, [r0, #0x14] + b _0813FD8C + .align 2, 0 +_0813FBF4: .4byte 0x085AB3DC +_0813FBF8: .4byte 0x000004CC +_0813FBFC: .4byte 0x02022AE0 +_0813FC00: .4byte 0x03005B60 +_0813FC04: + ldr r1, _0813FC58 + movs r0, #0xfd + strb r0, [r1] + movs r0, #2 + strb r0, [r1, #1] + strb r4, [r1, #2] + lsrs r0, r4, #8 + strb r0, [r1, #3] + movs r0, #0xff + strb r0, [r1, #4] + lsls r4, r6, #0x18 + lsrs r4, r4, #0x18 + mov r0, sb + adds r1, r4, #0 + bl RemoveMonPPBonus + ldr r0, _0813FC5C + ldrh r1, [r0] + mov r0, sb + adds r2, r4, #0 + bl SetMonMoveSlot + ldr r0, _0813FC60 + movs r1, #0xcf + lsls r1, r1, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl TryGetStatusString + ldr r1, _0813FC64 + movs r0, #0 + movs r2, #1 + bl sub_0807EBE0 + ldr r0, _0813FC68 + mov r2, r8 + adds r1, r2, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x14] + adds r0, #1 + b _0813FD8A + .align 2, 0 +_0813FC58: .4byte 0x02022C1C +_0813FC5C: .4byte 0x02024186 +_0813FC60: .4byte 0x085AB3DC +_0813FC64: .4byte 0x02022AE0 +_0813FC68: .4byte 0x03005B60 +_0813FC6C: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0813FC7A + b _0813FD8C +_0813FC7A: + bl IsSEPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0813FC86 + b _0813FD8C +_0813FC86: + ldr r0, _0813FCA8 + ldr r0, [r0, #0x1c] + bl TryGetStatusString + ldr r1, _0813FCAC + movs r0, #0 + movs r2, #1 + bl sub_0807EBE0 + ldr r0, _0813FCB0 + mov r2, r8 + adds r1, r2, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x14] + adds r0, #1 + b _0813FD8A + .align 2, 0 +_0813FCA8: .4byte 0x085AB3DC +_0813FCAC: .4byte 0x02022AE0 +_0813FCB0: .4byte 0x03005B60 +_0813FCB4: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0813FD8C + bl IsSEPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0813FD8C + ldr r0, _0813FCF4 + movs r1, #0xd0 + lsls r1, r1, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl TryGetStatusString + ldr r1, _0813FCF8 + movs r0, #0 + movs r2, #1 + bl sub_0807EBE0 + ldr r1, _0813FCFC + mov r2, r8 + adds r0, r2, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0x12 + strh r1, [r0, #8] + b _0813FD8C + .align 2, 0 +_0813FCF4: .4byte 0x085AB3DC +_0813FCF8: .4byte 0x02022AE0 +_0813FCFC: .4byte 0x03005B60 +_0813FD00: + ldr r0, _0813FD2C + ldr r0, [r0, #0x20] + bl TryGetStatusString + ldr r1, _0813FD30 + movs r0, #0 + movs r2, #1 + bl sub_0807EBE0 + ldr r1, _0813FD34 + mov r2, r8 + adds r0, r2, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #0 + movs r1, #0xa + strh r1, [r0, #0x16] + strh r2, [r0, #0x18] + movs r1, #3 + strh r1, [r0, #0x14] + b _0813FD8C + .align 2, 0 +_0813FD2C: .4byte 0x085AB3DC +_0813FD30: .4byte 0x02022AE0 +_0813FD34: .4byte 0x03005B60 +_0813FD38: + ldr r0, _0813FD5C + ldr r0, [r0, #0x24] + bl TryGetStatusString + ldr r1, _0813FD60 + movs r0, #0 + movs r2, #1 + bl sub_0807EBE0 + ldr r1, _0813FD64 + mov r2, r8 + adds r0, r2, r7 + lsls r0, r0, #3 + adds r0, r0, r1 +_0813FD54: + movs r1, #0xd + strh r1, [r0, #8] + b _0813FD8C + .align 2, 0 +_0813FD5C: .4byte 0x085AB3DC +_0813FD60: .4byte 0x02022AE0 +_0813FD64: .4byte 0x03005B60 +_0813FD68: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0813FD8C + bl IsSEPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0813FD8C + ldr r0, _0813FD9C + mov r2, r8 + adds r1, r2, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #5 +_0813FD8A: + strh r0, [r1, #0x14] +_0813FD8C: + add sp, #0x20 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0813FD9C: .4byte 0x03005B60 + thumb_func_end Task_TradeEvolutionScene + + thumb_func_start EvoDummyFunc +EvoDummyFunc: @ 0x0813FDA0 + bx lr + .align 2, 0 + thumb_func_end EvoDummyFunc + + thumb_func_start VBlankCB_EvolutionScene +VBlankCB_EvolutionScene: @ 0x0813FDA4 + push {lr} + ldr r0, _0813FE0C + ldrh r1, [r0] + movs r0, #0x10 + bl SetGpuReg + ldr r0, _0813FE10 + ldrh r1, [r0] + movs r0, #0x12 + bl SetGpuReg + ldr r0, _0813FE14 + ldrh r1, [r0] + movs r0, #0x14 + bl SetGpuReg + ldr r0, _0813FE18 + ldrh r1, [r0] + movs r0, #0x16 + bl SetGpuReg + ldr r0, _0813FE1C + ldrh r1, [r0] + movs r0, #0x18 + bl SetGpuReg + ldr r0, _0813FE20 + ldrh r1, [r0] + movs r0, #0x1a + bl SetGpuReg + ldr r0, _0813FE24 + ldrh r1, [r0] + movs r0, #0x1c + bl SetGpuReg + ldr r0, _0813FE28 + ldrh r1, [r0] + movs r0, #0x1e + bl SetGpuReg + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + bl ScanlineEffect_InitHBlankDmaTransfer + pop {r0} + bx r0 + .align 2, 0 +_0813FE0C: .4byte 0x02022AC8 +_0813FE10: .4byte 0x02022ACA +_0813FE14: .4byte 0x02022ACC +_0813FE18: .4byte 0x02022ACE +_0813FE1C: .4byte 0x02022AD0 +_0813FE20: .4byte 0x02022AD2 +_0813FE24: .4byte 0x02022AD4 +_0813FE28: .4byte 0x02022AD6 + thumb_func_end VBlankCB_EvolutionScene + + thumb_func_start VBlankCB_TradeEvolutionScene +VBlankCB_TradeEvolutionScene: @ 0x0813FE2C + push {lr} + ldr r0, _0813FE94 + ldrh r1, [r0] + movs r0, #0x10 + bl SetGpuReg + ldr r0, _0813FE98 + ldrh r1, [r0] + movs r0, #0x12 + bl SetGpuReg + ldr r0, _0813FE9C + ldrh r1, [r0] + movs r0, #0x14 + bl SetGpuReg + ldr r0, _0813FEA0 + ldrh r1, [r0] + movs r0, #0x16 + bl SetGpuReg + ldr r0, _0813FEA4 + ldrh r1, [r0] + movs r0, #0x18 + bl SetGpuReg + ldr r0, _0813FEA8 + ldrh r1, [r0] + movs r0, #0x1a + bl SetGpuReg + ldr r0, _0813FEAC + ldrh r1, [r0] + movs r0, #0x1c + bl SetGpuReg + ldr r0, _0813FEB0 + ldrh r1, [r0] + movs r0, #0x1e + bl SetGpuReg + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + bl ScanlineEffect_InitHBlankDmaTransfer + pop {r0} + bx r0 + .align 2, 0 +_0813FE94: .4byte 0x02022AC8 +_0813FE98: .4byte 0x02022ACA +_0813FE9C: .4byte 0x02022ACC +_0813FEA0: .4byte 0x02022ACE +_0813FEA4: .4byte 0x02022AD0 +_0813FEA8: .4byte 0x02022AD2 +_0813FEAC: .4byte 0x02022AD4 +_0813FEB0: .4byte 0x02022AD6 + thumb_func_end VBlankCB_TradeEvolutionScene + + thumb_func_start sub_0813FEB4 +sub_0813FEB4: @ 0x0813FEB4 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _0813FF34 + adds r4, r0, r1 + movs r0, #0xc + ldrsh r5, [r4, r0] + cmp r5, #0 + bne _0813FF62 + ldrh r0, [r4, #0xa] + adds r1, r0, #1 + strh r1, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x13 + ble _0813FF62 + ldrh r1, [r4] + adds r0, r1, #1 + strh r0, [r4] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldr r3, _0813FF38 + movs r2, #4 + ldrsh r0, [r4, r2] + lsls r2, r0, #2 + adds r0, r3, #3 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r1, r0 + ble _0813FF54 + adds r0, r3, #1 + adds r0, r2, r0 + ldrb r0, [r0] + movs r2, #2 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _0813FF3C + ldrh r0, [r4, #6] + adds r0, #1 + strh r0, [r4, #6] + movs r0, #6 + ldrsh r2, [r4, r0] + movs r1, #4 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r1, r3, #2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r2, r0 + bne _0813FF26 + strh r5, [r4, #6] + ldrh r0, [r4, #4] + adds r0, #1 + strh r0, [r4, #4] +_0813FF26: + movs r2, #4 + ldrsh r0, [r4, r2] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0] + b _0813FF52 + .align 2, 0 +_0813FF34: .4byte 0x03005B68 +_0813FF38: .4byte 0x08595475 +_0813FF3C: + ldr r0, _0813FF68 + lsls r1, r1, #5 + ldr r0, [r0] + adds r0, r0, r1 + movs r1, #0xa0 + movs r2, #0x20 + bl LoadPalette + strh r5, [r4] + ldrh r0, [r4, #2] + adds r0, #1 +_0813FF52: + strh r0, [r4, #2] +_0813FF54: + movs r1, #4 + ldrsh r0, [r4, r1] + cmp r0, #4 + bne _0813FF62 + adds r0, r6, #0 + bl DestroyTask +_0813FF62: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0813FF68: .4byte 0x0203A850 + thumb_func_end sub_0813FEB4 + + thumb_func_start sub_0813FF6C +sub_0813FF6C: @ 0x0813FF6C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0813FF90 + movs r1, #7 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r4, #0 + bne _0813FF98 + ldr r1, _0813FF94 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r4, [r0, #0xc] + b _0813FFA6 + .align 2, 0 +_0813FF90: .4byte 0x0813FFB1 +_0813FF94: .4byte 0x03005B60 +_0813FF98: + ldr r0, _0813FFAC + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #1 + strh r0, [r1, #0xc] +_0813FFA6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813FFAC: .4byte 0x03005B60 + thumb_func_end sub_0813FF6C + + thumb_func_start sub_0813FFB0 +sub_0813FFB0: @ 0x0813FFB0 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _0813FFDC + mov r8, r0 + ldr r1, _0813FFE0 + mov sb, r1 + ldr r1, _0813FFE4 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #0xc + ldrsh r0, [r0, r2] + cmp r0, #0 + bne _0813FFF0 + ldr r7, _0813FFE8 + ldr r6, _0813FFEC + b _0813FFF4 + .align 2, 0 +_0813FFDC: .4byte 0x02022ACC +_0813FFE0: .4byte 0x02022ACE +_0813FFE4: .4byte 0x03005B60 +_0813FFE8: .4byte 0x02022AD0 +_0813FFEC: .4byte 0x02022AD2 +_0813FFF0: + ldr r7, _0814007C + ldr r6, _08140080 +_0813FFF4: + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + adds r4, r4, r1 + ldrh r0, [r4, #8] + adds r0, #5 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #8] + adds r0, #0x80 + ands r0, r1 + strh r0, [r4, #0xa] + movs r1, #8 + ldrsh r0, [r4, r1] + movs r1, #4 + bl Cos + adds r0, #8 + mov r2, r8 + strh r0, [r2] + movs r1, #8 + ldrsh r0, [r4, r1] + movs r1, #4 + bl Sin + adds r0, #0x10 + mov r2, sb + strh r0, [r2] + movs r1, #0xa + ldrsh r0, [r4, r1] + movs r1, #4 + bl Cos + adds r0, #8 + strh r0, [r7] + movs r2, #0xa + ldrsh r0, [r4, r2] + movs r1, #4 + bl Sin + adds r0, #0x10 + strh r0, [r6] + ldr r0, _08140084 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _0814006E + adds r0, r5, #0 + bl DestroyTask + mov r0, r8 + strh r4, [r0] + mov r1, sb + strh r4, [r1] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r2, #0 + strh r0, [r7] + strh r4, [r6] +_0814006E: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0814007C: .4byte 0x02022AD4 +_08140080: .4byte 0x02022AD6 +_08140084: .4byte 0x0813FEB5 + thumb_func_end sub_0813FFB0 + + thumb_func_start InitMovingBgValues +InitMovingBgValues: @ 0x08140088 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + movs r1, #0 + ldr r5, _081400C0 + ldr r7, _081400C4 +_08140092: + lsls r0, r1, #4 + adds r4, r1, #1 + adds r2, r0, r7 + lsls r0, r1, #5 + adds r1, r0, r6 + movs r3, #0xf +_0814009E: + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r0, [r0] + strh r0, [r1] + adds r2, #1 + adds r1, #2 + subs r3, #1 + cmp r3, #0 + bge _0814009E + adds r1, r4, #0 + cmp r1, #0x31 + ble _08140092 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081400C0: .4byte 0x085953F0 +_081400C4: .4byte 0x08595485 + thumb_func_end InitMovingBgValues + + thumb_func_start InitMovingBackgroundTask +InitMovingBackgroundTask: @ 0x081400C8 + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r4, _081400EC + movs r0, #0xc8 + lsls r0, r0, #3 + bl AllocZeroed + str r0, [r4] + bl InitMovingBgValues + cmp r5, #0 + bne _081400F0 + movs r6, #1 + movs r4, #2 + b _081400F4 + .align 2, 0 +_081400EC: .4byte 0x0203A850 +_081400F0: + movs r6, #1 + movs r4, #3 +_081400F4: + ldr r0, _08140174 + movs r1, #0xa0 + movs r2, #0x20 + bl LoadPalette + ldr r1, _08140178 + movs r0, #0 + str r0, [sp] + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl DecompressAndLoadBgGfxUsingHeap + ldr r1, _0814017C + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + ldr r1, _08140180 + adds r0, r4, #0 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + movs r0, #1 + bl CopyBgTilemapBufferToVram + adds r0, r4, #0 + bl CopyBgTilemapBufferToVram + cmp r5, #0 + bne _0814018C + ldr r1, _08140184 + movs r0, #0x50 + bl SetGpuReg + ldr r1, _08140188 + movs r0, #0x52 + bl SetGpuReg + movs r1, #0xba + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + adds r0, r6, #0 + movs r1, #7 + movs r2, #2 + bl SetBgAttribute + adds r0, r4, #0 + movs r1, #7 + movs r2, #2 + bl SetBgAttribute + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + b _081401A6 + .align 2, 0 +_08140174: .4byte 0x08594D50 +_08140178: .4byte 0x08593CA0 +_0814017C: .4byte 0x08594398 +_08140180: .4byte 0x0859487C +_08140184: .4byte 0x00000442 +_08140188: .4byte 0x00000808 +_0814018C: + ldr r1, _081401BC + movs r0, #0x50 + bl SetGpuReg + ldr r1, _081401C0 + movs r0, #0x52 + bl SetGpuReg + movs r1, #0xda + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg +_081401A6: + ldr r0, _081401C4 + movs r1, #5 + bl CreateTask + adds r0, r5, #0 + bl sub_0813FF6C + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081401BC: .4byte 0x00000842 +_081401C0: .4byte 0x00000808 +_081401C4: .4byte 0x0813FEB5 + thumb_func_end InitMovingBackgroundTask + + thumb_func_start sub_081401C8 +sub_081401C8: @ 0x081401C8 + push {lr} + ldr r0, _081401F4 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xff + beq _081401E6 + ldr r0, _081401F8 + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #1 + strh r0, [r1, #0x14] +_081401E6: + movs r0, #0 + movs r1, #0xa0 + movs r2, #0x20 + bl FillPalette + pop {r0} + bx r0 + .align 2, 0 +_081401F4: .4byte 0x0813FEB5 +_081401F8: .4byte 0x03005B60 + thumb_func_end sub_081401C8 + + thumb_func_start sub_081401FC +sub_081401FC: @ 0x081401FC + push {lr} + ldr r0, _08140234 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _08140210 + bl DestroyTask +_08140210: + ldr r0, _08140238 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _08140222 + bl DestroyTask +_08140222: + movs r0, #0 + movs r1, #0xa0 + movs r2, #0x20 + bl FillPalette + bl sub_0814023C + pop {r0} + bx r0 + .align 2, 0 +_08140234: .4byte 0x0813FEB5 +_08140238: .4byte 0x0813FFB1 + thumb_func_end sub_081401FC + + thumb_func_start sub_0814023C +sub_0814023C: @ 0x0814023C + push {lr} + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + ldr r0, _08140298 + movs r1, #0 + strh r1, [r0] + ldr r0, _0814029C + strh r1, [r0] + ldr r0, _081402A0 + strh r1, [r0] + movs r0, #1 + movs r1, #5 + bl sub_08038E94 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r0, #1 + movs r1, #7 + bl SetBgAttribute + movs r0, #2 + movs r1, #5 + bl sub_08038E94 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r0, #2 + movs r1, #7 + bl SetBgAttribute + movs r1, #0xca + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + ldr r0, _081402A4 + ldr r0, [r0] + bl Free + pop {r0} + bx r0 + .align 2, 0 +_08140298: .4byte 0x02022ACC +_0814029C: .4byte 0x02022ACE +_081402A0: .4byte 0x02022AD0 +_081402A4: .4byte 0x0203A850 + thumb_func_end sub_0814023C + + thumb_func_start EvoScene_DoMonAnimation +EvoScene_DoMonAnimation: @ 0x081402A8 + push {lr} + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _081402CC + adds r0, r0, r2 + movs r2, #0 + movs r3, #0 + bl DoMonFrontSpriteAnimation + pop {r0} + bx r0 + .align 2, 0 +_081402CC: .4byte 0x020205AC + thumb_func_end EvoScene_DoMonAnimation + + thumb_func_start EvoScene_IsMonAnimFinished +EvoScene_IsMonAnimFinished: @ 0x081402D0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _081402F0 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r2, #0x1c + adds r1, r1, r2 + ldr r1, [r1] + ldr r0, _081402F4 + cmp r1, r0 + beq _081402F8 + movs r0, #0 + b _081402FA + .align 2, 0 +_081402F0: .4byte 0x020205AC +_081402F4: .4byte 0x08007141 +_081402F8: + movs r0, #1 +_081402FA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end EvoScene_IsMonAnimFinished + diff --git a/asm/faraway_island.s b/asm/faraway_island.s new file mode 100644 index 0000000..7e4fa86 --- /dev/null +++ b/asm/faraway_island.s @@ -0,0 +1,1426 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start GetMewEventObjectId +GetMewEventObjectId: @ 0x081D38D8 + push {lr} + sub sp, #4 + ldr r0, _081D38F8 + ldr r0, [r0] + ldrb r1, [r0, #5] + ldrb r2, [r0, #4] + movs r0, #1 + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + mov r0, sp + ldrb r0, [r0] + add sp, #4 + pop {r1} + bx r1 + .align 2, 0 +_081D38F8: .4byte 0x03005AEC + thumb_func_end GetMewEventObjectId + + thumb_func_start GetMewMoveDirection +GetMewMoveDirection: @ 0x081D38FC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + bl GetMewEventObjectId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r2, _081D39A0 + adds r5, r1, r2 + ldr r4, _081D39A4 + ldr r3, _081D39A8 + ldrb r1, [r3, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0, #0x14] + ldrh r1, [r5, #0x10] + subs r0, r0, r1 + strh r0, [r4] + ldr r4, _081D39AC + ldrb r1, [r3, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0, #0x16] + ldrh r1, [r5, #0x12] + subs r0, r0, r1 + strh r0, [r4] + movs r0, #0 + mov r8, r0 + ldr r2, _081D39B0 + movs r1, #0 +_081D394A: + mov r3, r8 + adds r0, r3, r2 + strb r1, [r0] + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + cmp r0, #3 + bls _081D394A + ldr r2, _081D39A0 + ldr r0, _081D39A8 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, r0, r2 + movs r4, #0x14 + ldrsh r1, [r2, r4] + movs r6, #0x10 + ldrsh r0, [r2, r6] + cmp r1, r0 + bne _081D3984 + movs r0, #0x16 + ldrsh r1, [r2, r0] + movs r3, #0x12 + ldrsh r0, [r2, r3] + cmp r1, r0 + beq _081D39D6 +_081D3984: + ldr r0, _081D39B4 + bl VarGet + lsls r0, r0, #0x10 + movs r1, #0xe0 + lsls r1, r1, #0xb + ands r1, r0 + cmp r1, #0 + bne _081D39B8 + ldrb r1, [r5, #1] + movs r0, #0x21 + rsbs r0, r0, #0 + ands r0, r1 + b _081D39BE + .align 2, 0 +_081D39A0: .4byte 0x02036FF0 +_081D39A4: .4byte 0x030012F0 +_081D39A8: .4byte 0x02037230 +_081D39AC: .4byte 0x030012F2 +_081D39B0: .4byte 0x030012F4 +_081D39B4: .4byte 0x0000403A +_081D39B8: + ldrb r0, [r5, #1] + movs r1, #0x20 + orrs r0, r1 +_081D39BE: + strb r0, [r5, #1] + ldr r0, _081D39DC + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #9 + bl __umodsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _081D39E0 +_081D39D6: + movs r0, #0 + b _081D3E96 + .align 2, 0 +_081D39DC: .4byte 0x0000403A +_081D39E0: + movs r4, #0 + mov r8, r4 + ldr r6, _081D3A30 + mov sl, r6 +_081D39E8: + ldr r3, _081D3A34 + ldrb r1, [r3, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + mov r1, sl + adds r4, r0, r1 + mov r2, r8 + lsls r1, r2, #2 + ldr r6, _081D3A38 + adds r0, r1, r6 + movs r6, #0x14 + ldrsh r2, [r4, r6] + movs r6, #0 + ldrsh r0, [r0, r6] + ldr r6, _081D3A30 + mov sb, r6 + mov ip, r3 + adds r7, r1, #0 + cmp r2, r0 + beq _081D3A14 + b _081D3B1E +_081D3A14: + movs r3, #0 + ldr r1, _081D3A3C + adds r0, r7, r1 + movs r2, #0x16 + ldrsh r1, [r4, r2] + movs r4, #0 + ldrsh r2, [r0, r4] + cmp r1, r2 + bge _081D3A40 + movs r6, #0x12 + ldrsh r0, [r5, r6] + cmp r0, r2 + bgt _081D3A4A + b _081D3B1E + .align 2, 0 +_081D3A30: .4byte 0x02036FF0 +_081D3A34: .4byte 0x02037230 +_081D3A38: .4byte 0x085FAF28 +_081D3A3C: .4byte 0x085FAF2A +_081D3A40: + movs r1, #0x12 + ldrsh r0, [r5, r1] + cmp r0, r2 + blt _081D3A4A + movs r3, #1 +_081D3A4A: + cmp r3, #0 + bne _081D3B1E + ldr r0, _081D3A8C + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r0, #0 + ble _081D3A90 + movs r3, #0x10 + ldrsh r2, [r5, r3] + adds r2, #1 + mov r4, ip + ldrb r1, [r4, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sb + movs r6, #0x14 + ldrsh r0, [r0, r6] + cmp r2, r0 + bne _081D3AC6 + ldrh r0, [r5, #0x10] + adds r0, #1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x12 + ldrsh r1, [r5, r2] + bl CanMewWalkToCoords + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D3AC6 +_081D3A88: + movs r0, #4 + b _081D3E96 + .align 2, 0 +_081D3A8C: .4byte 0x030012F0 +_081D3A90: + cmp r0, #0 + bge _081D3AC6 + movs r3, #0x10 + ldrsh r2, [r5, r3] + subs r2, #1 + mov r4, ip + ldrb r1, [r4, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sb + movs r6, #0x14 + ldrsh r0, [r0, r6] + cmp r2, r0 + bne _081D3AC6 + ldrh r0, [r5, #0x10] + subs r0, #1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x12 + ldrsh r1, [r5, r2] + bl CanMewWalkToCoords + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D3AC6 + b _081D3C2A +_081D3AC6: + ldr r0, _081D3B00 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sl + movs r3, #0x10 + ldrsh r1, [r5, r3] + movs r4, #0x14 + ldrsh r0, [r0, r4] + cmp r1, r0 + bne _081D3B1E + ldr r0, _081D3B04 + movs r6, #0 + ldrsh r0, [r0, r6] + cmp r0, #0 + ble _081D3B08 + adds r0, r1, #0 + ldrh r1, [r5, #0x12] + subs r1, #1 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl CanMewWalkToCoords + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D3B1E +_081D3AFC: + movs r0, #2 + b _081D3E96 + .align 2, 0 +_081D3B00: .4byte 0x02037230 +_081D3B04: .4byte 0x030012F2 +_081D3B08: + movs r2, #0x10 + ldrsh r0, [r5, r2] + ldrh r1, [r5, #0x12] + adds r1, #1 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl CanMewWalkToCoords + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081D3BB8 +_081D3B1E: + ldr r2, _081D3B60 + ldrb r1, [r2, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + mov r3, sl + adds r4, r0, r3 + ldr r6, _081D3B64 + ldr r1, _081D3B68 + adds r0, r7, r1 + movs r3, #0x16 + ldrsh r1, [r4, r3] + movs r3, #0 + ldrsh r0, [r0, r3] + ldr r3, _081D3B6C + mov sb, r3 + mov ip, r2 + cmp r1, r0 + beq _081D3B46 + b _081D3C50 +_081D3B46: + movs r3, #0 + adds r0, r7, r6 + movs r6, #0x14 + ldrsh r1, [r4, r6] + movs r4, #0 + ldrsh r2, [r0, r4] + cmp r1, r2 + bge _081D3B70 + movs r6, #0x10 + ldrsh r0, [r5, r6] + cmp r0, r2 + bgt _081D3B7A + b _081D3C50 + .align 2, 0 +_081D3B60: .4byte 0x02037230 +_081D3B64: .4byte 0x085FAF28 +_081D3B68: .4byte 0x085FAF2A +_081D3B6C: .4byte 0x02036FF0 +_081D3B70: + movs r1, #0x10 + ldrsh r0, [r5, r1] + cmp r0, r2 + blt _081D3B7A + movs r3, #1 +_081D3B7A: + cmp r3, #0 + bne _081D3C50 + ldr r0, _081D3BBC + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r0, #0 + ble _081D3BC0 + movs r3, #0x12 + ldrsh r2, [r5, r3] + adds r2, #1 + mov r4, ip + ldrb r1, [r4, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sb + movs r6, #0x16 + ldrsh r0, [r0, r6] + cmp r2, r0 + bne _081D3BF6 + movs r1, #0x10 + ldrsh r0, [r5, r1] + ldrh r1, [r5, #0x12] + adds r1, #1 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl CanMewWalkToCoords + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D3BF6 +_081D3BB8: + movs r0, #1 + b _081D3E96 + .align 2, 0 +_081D3BBC: .4byte 0x030012F2 +_081D3BC0: + cmp r0, #0 + bge _081D3BF6 + movs r3, #0x12 + ldrsh r2, [r5, r3] + subs r2, #1 + mov r4, ip + ldrb r1, [r4, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sb + movs r6, #0x16 + ldrsh r0, [r0, r6] + cmp r2, r0 + bne _081D3BF6 + movs r1, #0x10 + ldrsh r0, [r5, r1] + ldrh r1, [r5, #0x12] + subs r1, #1 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl CanMewWalkToCoords + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D3BF6 + b _081D3AFC +_081D3BF6: + ldr r0, _081D3C30 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sl + movs r2, #0x12 + ldrsh r1, [r5, r2] + movs r3, #0x16 + ldrsh r0, [r0, r3] + cmp r1, r0 + bne _081D3C50 + ldr r0, _081D3C34 + movs r4, #0 + ldrsh r0, [r0, r4] + cmp r0, #0 + ble _081D3C38 + ldrh r0, [r5, #0x10] + subs r0, #1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + bl CanMewWalkToCoords + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D3C50 +_081D3C2A: + movs r0, #3 + b _081D3E96 + .align 2, 0 +_081D3C30: .4byte 0x02037230 +_081D3C34: .4byte 0x030012F0 +_081D3C38: + ldrh r0, [r5, #0x10] + adds r0, #1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x12 + ldrsh r1, [r5, r2] + bl CanMewWalkToCoords + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D3C50 + b _081D3A88 +_081D3C50: + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + cmp r0, #3 + bhi _081D3C60 + b _081D39E8 +_081D3C60: + adds r0, r5, #0 + movs r1, #0 + bl sub_081D4294 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D3C9C + adds r0, r5, #0 + movs r1, #1 + bl sub_081D42D8 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D3C84 + movs r0, #2 + bl sub_081D43A4 + b _081D3E92 +_081D3C84: + adds r0, r5, #0 + movs r1, #1 + bl sub_081D4360 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081D3C94 + b _081D3AFC +_081D3C94: + movs r0, #2 + bl sub_081D43A4 + b _081D3E92 +_081D3C9C: + adds r0, r5, #0 + movs r1, #0 + bl sub_081D431C + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D3CD8 + adds r0, r5, #0 + movs r1, #1 + bl sub_081D42D8 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D3CC0 + movs r0, #2 + bl sub_081D43A4 + b _081D3E92 +_081D3CC0: + adds r0, r5, #0 + movs r1, #1 + bl sub_081D4360 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081D3CD0 + b _081D3BB8 +_081D3CD0: + movs r0, #2 + bl sub_081D43A4 + b _081D3E92 +_081D3CD8: + adds r0, r5, #0 + movs r1, #0 + bl sub_081D42D8 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D3D14 + adds r0, r5, #0 + movs r1, #1 + bl sub_081D4294 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D3CFC + movs r0, #2 + bl sub_081D43A4 + b _081D3E92 +_081D3CFC: + adds r0, r5, #0 + movs r1, #1 + bl sub_081D431C + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081D3D0C + b _081D3A88 +_081D3D0C: + movs r0, #2 + bl sub_081D43A4 + b _081D3E92 +_081D3D14: + adds r0, r5, #0 + movs r1, #0 + bl sub_081D4360 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D3D50 + adds r0, r5, #0 + movs r1, #1 + bl sub_081D4294 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D3D38 + movs r0, #2 + bl sub_081D43A4 + b _081D3E92 +_081D3D38: + adds r0, r5, #0 + movs r1, #1 + bl sub_081D431C + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081D3D48 + b _081D3C2A +_081D3D48: + movs r0, #2 + bl sub_081D43A4 + b _081D3E92 +_081D3D50: + ldr r0, _081D3EA4 + movs r3, #0 + ldrsh r0, [r0, r3] + cmp r0, #0 + bne _081D3DEE + ldr r2, _081D3EA8 + ldr r0, _081D3EAC + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r4, #0x12 + ldrsh r1, [r0, r4] + ldrh r2, [r5, #0x12] + movs r6, #0x12 + ldrsh r0, [r5, r6] + cmp r1, r0 + ble _081D3D8C + movs r1, #0x10 + ldrsh r0, [r5, r1] + subs r1, r2, #1 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl CanMewWalkToCoords + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D3D8C + b _081D3AFC +_081D3D8C: + ldr r2, _081D3EA8 + ldr r0, _081D3EAC + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r2, #0x12 + ldrsh r1, [r0, r2] + ldrh r2, [r5, #0x12] + movs r3, #0x12 + ldrsh r0, [r5, r3] + cmp r1, r0 + bge _081D3DBE + movs r4, #0x10 + ldrsh r0, [r5, r4] + adds r1, r2, #1 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl CanMewWalkToCoords + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D3DBE + b _081D3BB8 +_081D3DBE: + movs r6, #0x10 + ldrsh r0, [r5, r6] + ldrh r1, [r5, #0x12] + subs r1, #1 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl CanMewWalkToCoords + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D3DD6 + b _081D3AFC +_081D3DD6: + movs r1, #0x10 + ldrsh r0, [r5, r1] + ldrh r1, [r5, #0x12] + adds r1, #1 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl CanMewWalkToCoords + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D3DEE + b _081D3BB8 +_081D3DEE: + ldr r0, _081D3EB0 + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r0, #0 + bne _081D3E8C + ldr r2, _081D3EA8 + ldr r0, _081D3EAC + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r3, #0x10 + ldrsh r1, [r0, r3] + ldrh r2, [r5, #0x10] + movs r4, #0x10 + ldrsh r0, [r5, r4] + cmp r1, r0 + ble _081D3E2A + subs r0, r2, #1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r6, #0x12 + ldrsh r1, [r5, r6] + bl CanMewWalkToCoords + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D3E2A + b _081D3C2A +_081D3E2A: + ldr r2, _081D3EA8 + ldr r0, _081D3EAC + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r2, #0x10 + ldrsh r1, [r0, r2] + ldrh r2, [r5, #0x10] + movs r3, #0x10 + ldrsh r0, [r5, r3] + cmp r1, r0 + bge _081D3E5C + adds r0, r2, #1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r4, #0x12 + ldrsh r1, [r5, r4] + bl CanMewWalkToCoords + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D3E5C + b _081D3A88 +_081D3E5C: + ldrh r0, [r5, #0x10] + adds r0, #1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r6, #0x12 + ldrsh r1, [r5, r6] + bl CanMewWalkToCoords + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D3E74 + b _081D3A88 +_081D3E74: + ldrh r0, [r5, #0x10] + subs r0, #1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x12 + ldrsh r1, [r5, r2] + bl CanMewWalkToCoords + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D3E8C + b _081D3C2A +_081D3E8C: + movs r0, #0 + bl sub_081D3F10 +_081D3E92: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_081D3E96: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081D3EA4: .4byte 0x030012F2 +_081D3EA8: .4byte 0x02036FF0 +_081D3EAC: .4byte 0x02037230 +_081D3EB0: .4byte 0x030012F0 + thumb_func_end GetMewMoveDirection + + thumb_func_start CanMewWalkToCoords +CanMewWalkToCoords: @ 0x081D3EB4 + push {r4, lr} + lsls r0, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + ldr r3, _081D3EE8 + ldr r1, _081D3EEC + ldrb r2, [r1, #5] + lsls r1, r2, #3 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r2, r1, r3 + movs r3, #0x10 + ldrsh r1, [r2, r3] + lsrs r3, r0, #0x10 + asrs r0, r0, #0x10 + cmp r1, r0 + bne _081D3EF0 + movs r0, #0x12 + ldrsh r1, [r2, r0] + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + cmp r1, r0 + bne _081D3EF0 + movs r0, #0 + b _081D3F08 + .align 2, 0 +_081D3EE8: .4byte 0x02036FF0 +_081D3EEC: .4byte 0x02037230 +_081D3EF0: + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + lsls r1, r4, #0x10 + asrs r1, r1, #0x10 + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsPokeGrass + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_081D3F08: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CanMewWalkToCoords + + thumb_func_start sub_081D3F10 +sub_081D3F10: @ 0x081D3F10 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r5, #0 + bl GetMewEventObjectId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _081D3FEC + adds r4, r1, r0 + movs r1, #0 + ldr r3, _081D3FF0 + movs r2, #0 +_081D3F30: + adds r0, r1, r3 + strb r2, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #3 + bls _081D3F30 + movs r1, #0x10 + ldrsh r0, [r4, r1] + ldrh r1, [r4, #0x12] + subs r1, #1 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl CanMewWalkToCoords + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081D3F68 + cmp r6, #2 + beq _081D3F68 + ldr r0, _081D3FF0 + adds r0, r5, r0 + movs r1, #2 + strb r1, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_081D3F68: + ldrh r0, [r4, #0x10] + adds r0, #1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x12 + ldrsh r1, [r4, r2] + bl CanMewWalkToCoords + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081D3F92 + cmp r6, #4 + beq _081D3F92 + ldr r0, _081D3FF0 + adds r0, r5, r0 + movs r1, #4 + strb r1, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_081D3F92: + movs r1, #0x10 + ldrsh r0, [r4, r1] + ldrh r1, [r4, #0x12] + adds r1, #1 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl CanMewWalkToCoords + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #1 + bne _081D3FBA + cmp r6, #1 + beq _081D3FBA + ldr r0, _081D3FF0 + adds r0, r5, r0 + strb r1, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_081D3FBA: + ldrh r0, [r4, #0x10] + subs r0, #1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x12 + ldrsh r1, [r4, r2] + bl CanMewWalkToCoords + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081D3FE4 + cmp r6, #3 + beq _081D3FE4 + ldr r0, _081D3FF0 + adds r0, r5, r0 + movs r1, #3 + strb r1, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_081D3FE4: + cmp r5, #1 + bhi _081D3FF4 + ldr r0, _081D3FF0 + b _081D4008 + .align 2, 0 +_081D3FEC: .4byte 0x02036FF0 +_081D3FF0: .4byte 0x030012F4 +_081D3FF4: + ldr r4, _081D4010 + ldr r0, _081D4014 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r5, #0 + bl __modsi3 + adds r0, r0, r4 +_081D4008: + ldrb r0, [r0] + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_081D4010: .4byte 0x030012F4 +_081D4014: .4byte 0x0000403A + thumb_func_end sub_081D3F10 + + thumb_func_start UpdateFarawayIslandStepCounter +UpdateFarawayIslandStepCounter: @ 0x081D4018 + push {r4, lr} + ldr r4, _081D4048 + adds r0, r4, #0 + bl VarGet + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _081D404C + ldr r0, [r0] + ldrh r1, [r0, #4] + ldr r0, _081D4050 + cmp r1, r0 + bne _081D4060 + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _081D4054 + cmp r2, r0 + bls _081D4058 + adds r0, r4, #0 + movs r1, #0 + bl VarSet + b _081D4060 + .align 2, 0 +_081D4048: .4byte 0x0000403A +_081D404C: .4byte 0x03005AEC +_081D4050: .4byte 0x0000391A +_081D4054: .4byte 0x0000270E +_081D4058: + adds r0, r4, #0 + adds r1, r2, #0 + bl VarSet +_081D4060: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end UpdateFarawayIslandStepCounter + + thumb_func_start EventObjectIsFarawayIslandMew +EventObjectIsFarawayIslandMew: @ 0x081D4068 + push {lr} + adds r2, r0, #0 + ldr r0, _081D4084 + ldr r0, [r0] + ldrh r1, [r0, #4] + ldr r0, _081D4088 + cmp r1, r0 + bne _081D408C + ldrb r0, [r2, #5] + cmp r0, #0xe5 + bne _081D408C + movs r0, #1 + b _081D408E + .align 2, 0 +_081D4084: .4byte 0x03005AEC +_081D4088: .4byte 0x0000391A +_081D408C: + movs r0, #0 +_081D408E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end EventObjectIsFarawayIslandMew + + thumb_func_start IsMewPlayingHideAndSeek +IsMewPlayingHideAndSeek: @ 0x081D4094 + push {lr} + ldr r0, _081D40C4 + ldr r0, [r0] + ldrh r1, [r0, #4] + ldr r0, _081D40C8 + cmp r1, r0 + bne _081D40D0 + movs r0, #0xe5 + lsls r0, r0, #1 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081D40D0 + ldr r0, _081D40CC + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081D40D0 + movs r0, #1 + b _081D40D2 + .align 2, 0 +_081D40C4: .4byte 0x03005AEC +_081D40C8: .4byte 0x0000391A +_081D40CC: .4byte 0x000002CE +_081D40D0: + movs r0, #0 +_081D40D2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsMewPlayingHideAndSeek + + thumb_func_start sub_081D40D8 +sub_081D40D8: @ 0x081D40D8 + push {r4, lr} + ldr r4, _081D4100 + adds r0, r4, #0 + bl VarGet + lsls r0, r0, #0x10 + ldr r1, _081D4104 + cmp r0, r1 + beq _081D4108 + adds r0, r4, #0 + bl VarGet + lsls r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r0 + cmp r1, #0 + bne _081D4108 + movs r0, #1 + b _081D410A + .align 2, 0 +_081D4100: .4byte 0x0000403A +_081D4104: .4byte 0xFFFF0000 +_081D4108: + movs r0, #0 +_081D410A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081D40D8 + + thumb_func_start sub_081D4110 +sub_081D4110: @ 0x081D4110 + push {r4, r5, r6, lr} + sub sp, #4 + bl GetMewEventObjectId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _081D416C + adds r5, r1, r0 + ldrb r1, [r5, #1] + movs r0, #0x21 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r5, #1] + ldr r0, _081D4170 + ldrh r4, [r0] + cmp r4, #1 + bne _081D4178 + ldrb r0, [r5, #3] + movs r1, #4 + orrs r0, r1 + strb r0, [r5, #3] + ldr r3, _081D4174 + ldrb r1, [r5, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x42 + ldrb r2, [r0] + movs r1, #0x3f + ands r1, r2 + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r5, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x43 + strb r4, [r0] + b _081D4244 + .align 2, 0 +_081D416C: .4byte 0x02036FF0 +_081D4170: .4byte 0x02037280 +_081D4174: .4byte 0x020205AC +_081D4178: + ldr r0, _081D424C + ldr r1, _081D4250 + bl VarSet + ldrb r0, [r5, #3] + movs r1, #4 + orrs r0, r1 + strb r0, [r5, #3] + ldr r6, _081D4254 + ldrb r1, [r5, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x42 + ldrb r2, [r0] + movs r1, #0x3f + ands r1, r2 + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0] + ldr r0, _081D4258 + ldrh r0, [r0] + cmp r0, #2 + beq _081D41BA + ldrb r0, [r5, #4] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + adds r1, #0x43 + movs r0, #1 + strb r0, [r1] +_081D41BA: + ldr r4, _081D425C + adds r0, r4, #0 + bl LoadSpritePalette + ldrh r0, [r4, #4] + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl UpdateSpritePaletteWithWeather + ldrh r1, [r5, #0x10] + mov r0, sp + strh r1, [r0] + ldrh r0, [r5, #0x12] + mov r4, sp + adds r4, #2 + strh r0, [r4] + mov r0, sp + adds r1, r4, #0 + movs r2, #8 + movs r3, #8 + bl sub_08092A50 + ldr r0, _081D4260 + ldr r0, [r0, #0x3c] + mov r1, sp + movs r2, #0 + ldrsh r1, [r1, r2] + movs r3, #0 + ldrsh r2, [r4, r3] + ldrb r4, [r5, #4] + lsls r3, r4, #4 + adds r3, r3, r4 + lsls r3, r3, #2 + adds r3, r3, r6 + adds r3, #0x43 + ldrb r3, [r3] + subs r3, #1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + bl CreateSpriteAtEnd + ldr r1, _081D4264 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _081D4244 + ldrb r0, [r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + adds r3, r1, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r2, #2 + orrs r0, r2 + strb r0, [r3] + ldrb r2, [r1, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + movs r2, #8 + orrs r0, r2 + strb r0, [r1, #5] + ldr r0, _081D4268 + str r0, [r1, #0x1c] +_081D4244: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081D424C: .4byte 0x0000403A +_081D4250: .4byte 0x0000FFFF +_081D4254: .4byte 0x020205AC +_081D4258: .4byte 0x02037294 +_081D425C: .4byte 0x084E4E1C +_081D4260: .4byte 0x084DDE4C +_081D4264: .4byte 0x0203CC1C +_081D4268: .4byte 0x08007141 + thumb_func_end sub_081D4110 + + thumb_func_start sub_081D426C +sub_081D426C: @ 0x081D426C + push {lr} + ldr r1, _081D428C + ldrb r0, [r1] + cmp r0, #0x40 + beq _081D4286 + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _081D4290 + adds r0, r0, r1 + bl DestroySprite +_081D4286: + pop {r0} + bx r0 + .align 2, 0 +_081D428C: .4byte 0x0203CC1C +_081D4290: .4byte 0x020205AC + thumb_func_end sub_081D426C + + thumb_func_start sub_081D4294 +sub_081D4294: @ 0x081D4294 + push {r4, lr} + adds r2, r0, #0 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + ldr r0, _081D42C8 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + ble _081D42D0 + movs r1, #0x10 + ldrsh r0, [r2, r1] + ldrh r1, [r2, #0x12] + subs r1, #1 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl CanMewWalkToCoords + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D42D0 + ldr r0, _081D42CC + adds r0, r4, r0 + movs r1, #2 + strb r1, [r0] + movs r0, #1 + b _081D42D2 + .align 2, 0 +_081D42C8: .4byte 0x030012F2 +_081D42CC: .4byte 0x030012F4 +_081D42D0: + movs r0, #0 +_081D42D2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081D4294 + + thumb_func_start sub_081D42D8 +sub_081D42D8: @ 0x081D42D8 + push {r4, lr} + adds r2, r0, #0 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + ldr r0, _081D430C + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bge _081D4314 + ldrh r0, [r2, #0x10] + adds r0, #1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r3, #0x12 + ldrsh r1, [r2, r3] + bl CanMewWalkToCoords + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D4314 + ldr r0, _081D4310 + adds r0, r4, r0 + movs r1, #4 + strb r1, [r0] + movs r0, #1 + b _081D4316 + .align 2, 0 +_081D430C: .4byte 0x030012F0 +_081D4310: .4byte 0x030012F4 +_081D4314: + movs r0, #0 +_081D4316: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081D42D8 + + thumb_func_start sub_081D431C +sub_081D431C: @ 0x081D431C + push {r4, lr} + adds r2, r0, #0 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + ldr r0, _081D4350 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bge _081D4358 + movs r1, #0x10 + ldrsh r0, [r2, r1] + ldrh r1, [r2, #0x12] + adds r1, #1 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl CanMewWalkToCoords + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D4358 + ldr r0, _081D4354 + adds r0, r4, r0 + movs r1, #1 + strb r1, [r0] + movs r0, #1 + b _081D435A + .align 2, 0 +_081D4350: .4byte 0x030012F2 +_081D4354: .4byte 0x030012F4 +_081D4358: + movs r0, #0 +_081D435A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081D431C + + thumb_func_start sub_081D4360 +sub_081D4360: @ 0x081D4360 + push {r4, lr} + adds r2, r0, #0 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + ldr r0, _081D4394 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + ble _081D439C + ldrh r0, [r2, #0x10] + subs r0, #1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r3, #0x12 + ldrsh r1, [r2, r3] + bl CanMewWalkToCoords + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D439C + ldr r0, _081D4398 + adds r0, r4, r0 + movs r1, #3 + strb r1, [r0] + movs r0, #1 + b _081D439E + .align 2, 0 +_081D4394: .4byte 0x030012F0 +_081D4398: .4byte 0x030012F4 +_081D439C: + movs r0, #0 +_081D439E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081D4360 + + thumb_func_start sub_081D43A4 +sub_081D43A4: @ 0x081D43A4 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r5, _081D43C8 + ldr r0, _081D43CC + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r4, #0 + bl __modsi3 + adds r0, r0, r5 + ldrb r0, [r0] + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081D43C8: .4byte 0x030012F4 +_081D43CC: .4byte 0x0000403A + thumb_func_end sub_081D43A4 + diff --git a/asm/field_camera.s b/asm/field_camera.s new file mode 100644 index 0000000..76818cc --- /dev/null +++ b/asm/field_camera.s @@ -0,0 +1,1189 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start move_tilemap_camera_to_upper_left_corner_ +move_tilemap_camera_to_upper_left_corner_: @ 0x080894BC + movs r1, #0 + strb r1, [r0, #2] + strb r1, [r0, #3] + strb r1, [r0] + strb r1, [r0, #1] + movs r1, #1 + strb r1, [r0, #4] + bx lr + thumb_func_end move_tilemap_camera_to_upper_left_corner_ + + thumb_func_start tilemap_move_something +tilemap_move_something: @ 0x080894CC + ldrb r3, [r0, #2] + adds r3, r3, r1 + strb r3, [r0, #2] + ldrb r1, [r0, #2] + movs r3, #0x1f + ands r1, r3 + strb r1, [r0, #2] + ldrb r1, [r0, #3] + adds r1, r1, r2 + strb r1, [r0, #3] + ldrb r1, [r0, #3] + ands r1, r3 + strb r1, [r0, #3] + bx lr + thumb_func_end tilemap_move_something + + thumb_func_start coords8_add +coords8_add: @ 0x080894E8 + ldrb r3, [r0] + adds r3, r3, r1 + strb r3, [r0] + ldrb r1, [r0, #1] + adds r1, r1, r2 + strb r1, [r0, #1] + bx lr + .align 2, 0 + thumb_func_end coords8_add + + thumb_func_start move_tilemap_camera_to_upper_left_corner +move_tilemap_camera_to_upper_left_corner: @ 0x080894F8 + push {lr} + ldr r0, _08089504 + bl move_tilemap_camera_to_upper_left_corner_ + pop {r0} + bx r0 + .align 2, 0 +_08089504: .4byte 0x03000E20 + thumb_func_end move_tilemap_camera_to_upper_left_corner + + thumb_func_start FieldUpdateBgTilemapScroll +FieldUpdateBgTilemapScroll: @ 0x08089508 + push {r4, r5, lr} + ldr r1, _08089560 + ldr r0, _08089564 + movs r2, #0 + ldrsh r5, [r0, r2] + ldrb r0, [r1] + adds r5, r5, r0 + ldr r0, _08089568 + movs r2, #0 + ldrsh r4, [r0, r2] + ldrb r1, [r1, #1] + adds r4, r4, r1 + adds r4, #8 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + movs r0, #0x14 + adds r1, r5, #0 + bl SetGpuReg + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + movs r0, #0x16 + adds r1, r4, #0 + bl SetGpuReg + movs r0, #0x18 + adds r1, r5, #0 + bl SetGpuReg + movs r0, #0x1a + adds r1, r4, #0 + bl SetGpuReg + movs r0, #0x1c + adds r1, r5, #0 + bl SetGpuReg + movs r0, #0x1e + adds r1, r4, #0 + bl SetGpuReg + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08089560: .4byte 0x03000E20 +_08089564: .4byte 0x03000E28 +_08089568: .4byte 0x03000E2A + thumb_func_end FieldUpdateBgTilemapScroll + + thumb_func_start sub_0808956C +sub_0808956C: @ 0x0808956C + push {r4, lr} + ldr r3, _0808958C + ldr r2, _08089590 + ldrh r2, [r2] + ldrb r4, [r3] + adds r2, r2, r4 + strh r2, [r0] + ldr r0, _08089594 + ldrh r0, [r0] + ldrb r3, [r3, #1] + adds r0, r0, r3 + adds r0, #8 + strh r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808958C: .4byte 0x03000E20 +_08089590: .4byte 0x03000E28 +_08089594: .4byte 0x03000E2A + thumb_func_end sub_0808956C + + thumb_func_start DrawWholeMapView +DrawWholeMapView: @ 0x08089598 + push {lr} + ldr r0, _080895B8 + ldr r1, [r0] + movs r2, #0 + ldrsh r0, [r1, r2] + movs r2, #2 + ldrsh r1, [r1, r2] + ldr r2, _080895BC + ldr r2, [r2] + bl DrawWholeMapViewInternal + ldr r1, _080895C0 + movs r0, #1 + strb r0, [r1, #4] + pop {r0} + bx r0 + .align 2, 0 +_080895B8: .4byte 0x03005AEC +_080895BC: .4byte 0x02036FB8 +_080895C0: .4byte 0x03000E20 + thumb_func_end DrawWholeMapView + + thumb_func_start DrawWholeMapViewInternal +DrawWholeMapViewInternal: @ 0x080895C4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov sl, r0 + mov sb, r1 + mov r8, r2 + movs r1, #0 +_080895D8: + ldr r2, _08089644 + ldrb r0, [r2, #3] + adds r0, r1, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1f + bls _080895EC + subs r0, #0x20 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_080895EC: + lsls r6, r0, #5 + movs r4, #0 + adds r7, r1, #2 + str r7, [sp] + lsrs r5, r1, #1 +_080895F6: + ldr r1, _08089644 + ldrb r0, [r1, #2] + adds r0, r4, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1f + bls _0808960A + subs r0, #0x20 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_0808960A: + adds r1, r6, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsrs r2, r4, #1 + add r2, sl + mov r0, r8 + mov r7, sb + adds r3, r7, r5 + bl DrawMetatileAt + adds r0, r4, #2 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x1f + bls _080895F6 + ldr r1, [sp] + lsls r0, r1, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x1f + bls _080895D8 + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08089644: .4byte 0x03000E20 + thumb_func_end DrawWholeMapViewInternal + + thumb_func_start RedrawMapSlicesForCameraUpdate +RedrawMapSlicesForCameraUpdate: @ 0x08089648 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + adds r7, r2, #0 + ldr r0, _08089690 + ldr r4, [r0] + cmp r6, #0 + ble _08089660 + adds r0, r5, #0 + adds r1, r4, #0 + bl RedrawMapSliceWest +_08089660: + cmp r6, #0 + bge _0808966C + adds r0, r5, #0 + adds r1, r4, #0 + bl RedrawMapSliceEast +_0808966C: + cmp r7, #0 + ble _08089678 + adds r0, r5, #0 + adds r1, r4, #0 + bl RedrawMapSliceNorth +_08089678: + cmp r7, #0 + bge _08089684 + adds r0, r5, #0 + adds r1, r4, #0 + bl RedrawMapSliceSouth +_08089684: + movs r0, #1 + strb r0, [r5, #4] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08089690: .4byte 0x02036FB8 + thumb_func_end RedrawMapSlicesForCameraUpdate + + thumb_func_start RedrawMapSliceNorth +RedrawMapSliceNorth: @ 0x08089694 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r7, r1, #0 + ldrb r0, [r5, #3] + adds r0, #0x1c + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1f + bls _080896AC + subs r0, #0x20 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_080896AC: + lsls r6, r0, #5 + movs r4, #0 +_080896B0: + ldrb r0, [r5, #2] + adds r0, r4, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1f + bls _080896C2 + subs r0, #0x20 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_080896C2: + adds r1, r6, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, _080896F0 + ldr r3, [r0] + movs r0, #0 + ldrsh r2, [r3, r0] + lsrs r0, r4, #1 + adds r2, r2, r0 + movs r0, #2 + ldrsh r3, [r3, r0] + adds r3, #0xe + adds r0, r7, #0 + bl DrawMetatileAt + adds r0, r4, #2 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x1f + bls _080896B0 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080896F0: .4byte 0x03005AEC + thumb_func_end RedrawMapSliceNorth + + thumb_func_start RedrawMapSliceSouth +RedrawMapSliceSouth: @ 0x080896F4 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r7, r1, #0 + ldrb r0, [r5, #3] + lsls r6, r0, #5 + movs r4, #0 +_08089700: + ldrb r0, [r5, #2] + adds r0, r4, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1f + bls _08089712 + subs r0, #0x20 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_08089712: + adds r1, r6, r0 + ldr r0, _0808973C + ldr r3, [r0] + movs r0, #0 + ldrsh r2, [r3, r0] + lsrs r0, r4, #1 + adds r2, r2, r0 + movs r0, #2 + ldrsh r3, [r3, r0] + adds r0, r7, #0 + bl DrawMetatileAt + adds r0, r4, #2 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x1f + bls _08089700 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0808973C: .4byte 0x03005AEC + thumb_func_end RedrawMapSliceSouth + + thumb_func_start RedrawMapSliceEast +RedrawMapSliceEast: @ 0x08089740 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + mov r8, r1 + ldrb r6, [r5, #2] + movs r4, #0 +_0808974E: + ldrb r0, [r5, #3] + adds r0, r4, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1f + bls _08089760 + subs r0, #0x20 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_08089760: + lsls r1, r0, #5 + adds r1, r1, r6 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, _08089794 + ldr r0, [r0] + movs r3, #0 + ldrsh r2, [r0, r3] + movs r7, #2 + ldrsh r3, [r0, r7] + lsrs r0, r4, #1 + adds r3, r3, r0 + mov r0, r8 + bl DrawMetatileAt + adds r0, r4, #2 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x1f + bls _0808974E + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08089794: .4byte 0x03005AEC + thumb_func_end RedrawMapSliceEast + + thumb_func_start RedrawMapSliceWest +RedrawMapSliceWest: @ 0x08089798 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + mov r8, r1 + ldrb r0, [r6, #2] + adds r0, #0x1c + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x1f + bls _080897B6 + adds r0, r5, #0 + subs r0, #0x20 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_080897B6: + movs r4, #0 +_080897B8: + ldrb r0, [r6, #3] + adds r0, r4, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1f + bls _080897CA + subs r0, #0x20 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_080897CA: + lsls r1, r0, #5 + adds r1, r1, r5 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, _08089800 + ldr r0, [r0] + movs r3, #0 + ldrsh r2, [r0, r3] + adds r2, #0xe + movs r7, #2 + ldrsh r3, [r0, r7] + lsrs r0, r4, #1 + adds r3, r3, r0 + mov r0, r8 + bl DrawMetatileAt + adds r0, r4, #2 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x1f + bls _080897B8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08089800: .4byte 0x03005AEC + thumb_func_end RedrawMapSliceWest + + thumb_func_start CurrentMapDrawMetatileAt +CurrentMapDrawMetatileAt: @ 0x08089804 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r6, _08089838 + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl MapPosToBgTilemapOffset + adds r1, r0, #0 + cmp r1, #0 + blt _08089830 + ldr r0, _0808983C + ldr r0, [r0] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r2, r4, #0 + adds r3, r5, #0 + bl DrawMetatileAt + movs r0, #1 + strb r0, [r6, #4] +_08089830: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08089838: .4byte 0x03000E20 +_0808983C: .4byte 0x02036FB8 + thumb_func_end CurrentMapDrawMetatileAt + + thumb_func_start DrawDoorMetatileAt +DrawDoorMetatileAt: @ 0x08089840 + push {r4, r5, r6, lr} + adds r3, r0, #0 + adds r4, r1, #0 + adds r5, r2, #0 + ldr r6, _08089870 + adds r0, r6, #0 + adds r1, r3, #0 + adds r2, r4, #0 + bl MapPosToBgTilemapOffset + cmp r0, #0 + blt _08089868 + lsls r2, r0, #0x10 + lsrs r2, r2, #0x10 + movs r0, #1 + adds r1, r5, #0 + bl DrawMetatile + movs r0, #1 + strb r0, [r6, #4] +_08089868: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08089870: .4byte 0x03000E20 + thumb_func_end DrawDoorMetatileAt + + thumb_func_start DrawMetatileAt +DrawMetatileAt: @ 0x08089874 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + adds r6, r2, #0 + adds r7, r3, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r8, r1 + adds r0, r6, #0 + adds r1, r7, #0 + bl MapGridGetMetatileIdAt + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r0, #0x80 + lsls r0, r0, #3 + cmp r4, r0 + bls _0808989C + movs r4, #0 +_0808989C: + ldr r0, _080898A8 + cmp r4, r0 + bhi _080898AC + ldr r0, [r5, #0x10] + ldr r5, [r0, #0xc] + b _080898B8 + .align 2, 0 +_080898A8: .4byte 0x000001FF +_080898AC: + ldr r0, [r5, #0x14] + ldr r5, [r0, #0xc] + ldr r1, _080898D8 + adds r0, r4, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_080898B8: + adds r0, r6, #0 + adds r1, r7, #0 + bl MapGridGetMetatileLayerTypeAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r4, #4 + adds r1, r5, r1 + mov r2, r8 + bl DrawMetatile + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080898D8: .4byte 0xFFFFFE00 + thumb_func_end DrawMetatileAt + + thumb_func_start DrawMetatile +DrawMetatile: @ 0x080898DC + push {r4, lr} + adds r4, r1, #0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + cmp r0, #1 + beq _08089934 + cmp r0, #1 + bgt _080898F2 + cmp r0, #0 + beq _08089994 + b _080899E6 +_080898F2: + cmp r0, #2 + bne _080899E6 + ldr r0, _0808992C + ldr r0, [r0] + lsls r3, r2, #1 + adds r0, r3, r0 + ldrh r1, [r4] + strh r1, [r0] + ldrh r1, [r4, #2] + strh r1, [r0, #2] + adds r2, r0, #0 + adds r2, #0x40 + ldrh r1, [r4, #4] + strh r1, [r2] + adds r0, #0x42 + ldrh r1, [r4, #6] + strh r1, [r0] + ldr r0, _08089930 + ldr r0, [r0] + adds r0, r3, r0 + movs r2, #0 + strh r2, [r0] + strh r2, [r0, #2] + adds r1, r0, #0 + adds r1, #0x40 + strh r2, [r1] + adds r0, #0x42 + strh r2, [r0] + b _080899CA + .align 2, 0 +_0808992C: .4byte 0x03005B04 +_08089930: .4byte 0x03005AFC +_08089934: + ldr r0, _08089988 + ldr r0, [r0] + lsls r3, r2, #1 + adds r0, r3, r0 + ldrh r1, [r4] + strh r1, [r0] + ldrh r1, [r4, #2] + strh r1, [r0, #2] + adds r2, r0, #0 + adds r2, #0x40 + ldrh r1, [r4, #4] + strh r1, [r2] + adds r0, #0x42 + ldrh r1, [r4, #6] + strh r1, [r0] + ldr r0, _0808998C + ldr r0, [r0] + adds r0, r3, r0 + ldrh r1, [r4, #8] + strh r1, [r0] + ldrh r1, [r4, #0xa] + strh r1, [r0, #2] + adds r2, r0, #0 + adds r2, #0x40 + ldrh r1, [r4, #0xc] + strh r1, [r2] + adds r0, #0x42 + ldrh r1, [r4, #0xe] + strh r1, [r0] + ldr r0, _08089990 + ldr r0, [r0] + adds r3, r3, r0 + movs r1, #0 + strh r1, [r3] + strh r1, [r3, #2] + adds r0, r3, #0 + adds r0, #0x40 + strh r1, [r0] + adds r3, #0x42 + strh r1, [r3] + b _080899E6 + .align 2, 0 +_08089988: .4byte 0x03005B04 +_0808998C: .4byte 0x03005AFC +_08089990: .4byte 0x03005B00 +_08089994: + ldr r0, _08089A00 + ldr r0, [r0] + lsls r3, r2, #1 + adds r0, r3, r0 + ldr r1, _08089A04 + adds r2, r1, #0 + strh r2, [r0] + strh r2, [r0, #2] + adds r1, r0, #0 + adds r1, #0x40 + strh r2, [r1] + adds r0, #0x42 + strh r2, [r0] + ldr r0, _08089A08 + ldr r0, [r0] + adds r0, r3, r0 + ldrh r1, [r4] + strh r1, [r0] + ldrh r1, [r4, #2] + strh r1, [r0, #2] + adds r2, r0, #0 + adds r2, #0x40 + ldrh r1, [r4, #4] + strh r1, [r2] + adds r0, #0x42 + ldrh r1, [r4, #6] + strh r1, [r0] +_080899CA: + ldr r0, _08089A0C + ldr r0, [r0] + adds r3, r3, r0 + ldrh r0, [r4, #8] + strh r0, [r3] + ldrh r0, [r4, #0xa] + strh r0, [r3, #2] + adds r1, r3, #0 + adds r1, #0x40 + ldrh r0, [r4, #0xc] + strh r0, [r1] + adds r3, #0x42 + ldrh r0, [r4, #0xe] + strh r0, [r3] +_080899E6: + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #3 + bl schedule_bg_copy_tilemap_to_vram + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08089A00: .4byte 0x03005B04 +_08089A04: .4byte 0x00003014 +_08089A08: .4byte 0x03005AFC +_08089A0C: .4byte 0x03005B00 + thumb_func_end DrawMetatile + + thumb_func_start MapPosToBgTilemapOffset +MapPosToBgTilemapOffset: @ 0x08089A10 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08089A40 + ldr r3, [r0] + movs r5, #0 + ldrsh r0, [r3, r5] + subs r1, r1, r0 + lsls r1, r1, #1 + cmp r1, #0x1f + bhi _08089A3A + ldrb r0, [r4, #2] + adds r1, r1, r0 + cmp r1, #0x1f + ble _08089A2E + subs r1, #0x20 +_08089A2E: + movs r5, #2 + ldrsh r0, [r3, r5] + subs r0, r2, r0 + lsls r2, r0, #1 + cmp r2, #0x1f + bls _08089A44 +_08089A3A: + movs r0, #1 + rsbs r0, r0, #0 + b _08089A52 + .align 2, 0 +_08089A40: .4byte 0x03005AEC +_08089A44: + ldrb r0, [r4, #3] + adds r2, r2, r0 + cmp r2, #0x1f + ble _08089A4E + subs r2, #0x20 +_08089A4E: + lsls r0, r2, #5 + adds r0, r0, r1 +_08089A52: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MapPosToBgTilemapOffset + + thumb_func_start CameraUpdateCallback +CameraUpdateCallback: @ 0x08089A58 + push {lr} + adds r3, r0, #0 + ldr r2, [r3, #4] + cmp r2, #0 + beq _08089A78 + ldr r1, _08089A7C + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r0, r2] + str r1, [r3, #8] + movs r1, #0x34 + ldrsh r0, [r0, r1] + str r0, [r3, #0xc] +_08089A78: + pop {r0} + bx r0 + .align 2, 0 +_08089A7C: .4byte 0x020205AC + thumb_func_end CameraUpdateCallback + + thumb_func_start ResetCameraUpdateInfo +ResetCameraUpdateInfo: @ 0x08089A80 + ldr r1, _08089A94 + movs r0, #0 + str r0, [r1, #8] + str r0, [r1, #0xc] + str r0, [r1, #0x10] + str r0, [r1, #0x14] + str r0, [r1, #4] + str r0, [r1] + bx lr + .align 2, 0 +_08089A94: .4byte 0x03005B30 + thumb_func_end ResetCameraUpdateInfo + + thumb_func_start InitCameraUpdateCallback +InitCameraUpdateCallback: @ 0x08089A98 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r4, _08089ACC + ldr r1, [r4, #4] + cmp r1, #0 + beq _08089AB4 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08089AD0 + adds r0, r0, r1 + bl DestroySprite +_08089AB4: + adds r0, r5, #0 + bl AddCameraObject + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [r4, #4] + ldr r0, _08089AD4 + str r0, [r4] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08089ACC: .4byte 0x03005B30 +_08089AD0: .4byte 0x020205AC +_08089AD4: .4byte 0x08089A59 + thumb_func_end InitCameraUpdateCallback + + thumb_func_start CameraUpdate +CameraUpdate: @ 0x08089AD8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r6, _08089BD8 + ldr r1, [r6] + cmp r1, #0 + beq _08089AEC + adds r0, r6, #0 + bl _call_via_r1 +_08089AEC: + ldr r7, [r6, #8] + ldr r0, [r6, #0xc] + mov r8, r0 + movs r4, #0 + movs r5, #0 + ldr r1, [r6, #0x10] + ldr r0, [r6, #0x14] + cmp r1, #0 + bne _08089B0A + cmp r7, #0 + beq _08089B0A + subs r4, #1 + cmp r7, #0 + ble _08089B0A + movs r4, #1 +_08089B0A: + cmp r0, #0 + bne _08089B1E + mov r2, r8 + cmp r2, #0 + beq _08089B1E + movs r5, #1 + rsbs r5, r5, #0 + cmp r2, #0 + ble _08089B1E + movs r5, #1 +_08089B1E: + cmp r1, #0 + beq _08089B30 + cmn r1, r7 + bne _08089B30 + movs r4, #1 + rsbs r4, r4, #0 + cmp r7, #0 + ble _08089B30 + movs r4, #1 +_08089B30: + cmp r0, #0 + beq _08089B44 + mov r3, r8 + cmn r0, r3 + bne _08089B44 + movs r4, #1 + rsbs r4, r4, #0 + cmp r3, #0 + ble _08089B44 + movs r4, #1 +_08089B44: + ldr r2, _08089BD8 + ldr r0, [r2, #0x10] + adds r1, r0, r7 + str r1, [r2, #0x10] + adds r0, r1, #0 + cmp r1, #0 + bge _08089B54 + adds r0, #0xf +_08089B54: + asrs r0, r0, #4 + lsls r0, r0, #4 + subs r0, r1, r0 + str r0, [r2, #0x10] + ldr r0, [r2, #0x14] + mov r3, r8 + adds r1, r0, r3 + str r1, [r2, #0x14] + adds r0, r1, #0 + cmp r1, #0 + bge _08089B6C + adds r0, #0xf +_08089B6C: + asrs r0, r0, #4 + lsls r0, r0, #4 + subs r0, r1, r0 + str r0, [r2, #0x14] + cmp r4, #0 + bne _08089B7C + cmp r5, #0 + beq _08089BB2 +_08089B7C: + adds r0, r4, #0 + adds r1, r5, #0 + bl CameraMove + adds r0, r4, #0 + adds r1, r5, #0 + bl UpdateEventObjectsForCameraUpdate + adds r0, r4, #0 + adds r1, r5, #0 + bl RotatingGatePuzzleCameraUpdate + bl ResetBerryTreeSparkleFlags + ldr r6, _08089BDC + lsls r4, r4, #1 + lsls r5, r5, #1 + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl tilemap_move_something + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl RedrawMapSlicesForCameraUpdate +_08089BB2: + ldr r0, _08089BDC + adds r1, r7, #0 + mov r2, r8 + bl coords8_add + ldr r1, _08089BE0 + ldrh r0, [r1] + subs r0, r0, r7 + strh r0, [r1] + ldr r1, _08089BE4 + ldrh r0, [r1] + mov r2, r8 + subs r0, r0, r2 + strh r0, [r1] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08089BD8: .4byte 0x03005B30 +_08089BDC: .4byte 0x03000E20 +_08089BE0: .4byte 0x03005B4C +_08089BE4: .4byte 0x03005B48 + thumb_func_end CameraUpdate + + thumb_func_start MoveCameraAndRedrawMap +MoveCameraAndRedrawMap: @ 0x08089BE8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl CameraMove + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + lsls r1, r5, #0x10 + asrs r1, r1, #0x10 + bl UpdateEventObjectsForCameraUpdate + bl DrawWholeMapView + ldr r1, _08089C1C + lsls r4, r4, #4 + ldrh r0, [r1] + subs r0, r0, r4 + strh r0, [r1] + ldr r1, _08089C20 + lsls r5, r5, #4 + ldrh r0, [r1] + subs r0, r0, r5 + strh r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08089C1C: .4byte 0x03005B4C +_08089C20: .4byte 0x03005B48 + thumb_func_end MoveCameraAndRedrawMap + + thumb_func_start SetCameraPanningCallback +SetCameraPanningCallback: @ 0x08089C24 + ldr r1, _08089C2C + str r0, [r1] + bx lr + .align 2, 0 +_08089C2C: .4byte 0x03000E30 + thumb_func_end SetCameraPanningCallback + + thumb_func_start SetCameraPanning +SetCameraPanning: @ 0x08089C30 + ldr r2, _08089C40 + strh r0, [r2] + ldr r0, _08089C44 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r1, #0x20 + strh r1, [r0] + bx lr + .align 2, 0 +_08089C40: .4byte 0x03000E28 +_08089C44: .4byte 0x03000E2A + thumb_func_end SetCameraPanning + + thumb_func_start InstallCameraPanAheadCallback +InstallCameraPanAheadCallback: @ 0x08089C48 + ldr r1, _08089C64 + ldr r0, _08089C68 + str r0, [r1] + ldr r1, _08089C6C + movs r0, #0 + strb r0, [r1] + ldr r1, _08089C70 + movs r0, #0 + strh r0, [r1] + ldr r1, _08089C74 + movs r0, #0x20 + strh r0, [r1] + bx lr + .align 2, 0 +_08089C64: .4byte 0x03000E30 +_08089C68: .4byte 0x08089CC5 +_08089C6C: .4byte 0x03000E2C +_08089C70: .4byte 0x03000E28 +_08089C74: .4byte 0x03000E2A + thumb_func_end InstallCameraPanAheadCallback + + thumb_func_start UpdateCameraPanning +UpdateCameraPanning: @ 0x08089C78 + push {lr} + ldr r0, _08089CA8 + ldr r0, [r0] + cmp r0, #0 + beq _08089C86 + bl _call_via_r0 +_08089C86: + ldr r2, _08089CAC + ldr r0, _08089CB0 + ldr r1, _08089CB4 + ldrh r0, [r0] + ldrh r1, [r1] + subs r0, r0, r1 + strh r0, [r2] + ldr r2, _08089CB8 + ldr r0, _08089CBC + ldr r1, _08089CC0 + ldrh r0, [r0] + ldrh r1, [r1] + subs r0, r0, r1 + subs r0, #8 + strh r0, [r2] + pop {r0} + bx r0 + .align 2, 0 +_08089CA8: .4byte 0x03000E30 +_08089CAC: .4byte 0x02021B38 +_08089CB0: .4byte 0x03005B4C +_08089CB4: .4byte 0x03000E28 +_08089CB8: .4byte 0x02021B3A +_08089CBC: .4byte 0x03005B48 +_08089CC0: .4byte 0x03000E2A + thumb_func_end UpdateCameraPanning + + thumb_func_start CameraPanningCB_PanAhead +CameraPanningCB_PanAhead: @ 0x08089CC4 + push {lr} + ldr r0, _08089CD4 + ldrb r0, [r0] + cmp r0, #0 + bne _08089CD8 + bl InstallCameraPanAheadCallback + b _08089D60 + .align 2, 0 +_08089CD4: .4byte 0x02036FE8 +_08089CD8: + ldr r0, _08089CF0 + ldrb r0, [r0, #3] + cmp r0, #1 + bne _08089CF8 + ldr r0, _08089CF4 + ldrb r1, [r0] + movs r2, #1 + eors r1, r2 + strb r1, [r0] + cmp r1, #0 + beq _08089D60 + b _08089CFE + .align 2, 0 +_08089CF0: .4byte 0x02037230 +_08089CF4: .4byte 0x03000E2C +_08089CF8: + ldr r1, _08089D20 + movs r0, #0 + strb r0, [r1] +_08089CFE: + bl GetPlayerMovementDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _08089D28 + ldr r2, _08089D24 + ldrh r3, [r2] + movs r0, #0 + ldrsh r1, [r2, r0] + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + ble _08089D60 + subs r0, r3, #2 + b _08089D5E + .align 2, 0 +_08089D20: .4byte 0x03000E2C +_08089D24: .4byte 0x03000E2A +_08089D28: + cmp r0, #1 + bne _08089D44 + ldr r1, _08089D40 + ldrh r2, [r1] + movs r3, #0 + ldrsh r0, [r1, r3] + cmp r0, #0x47 + bgt _08089D60 + adds r0, r2, #2 + strh r0, [r1] + b _08089D60 + .align 2, 0 +_08089D40: .4byte 0x03000E2A +_08089D44: + ldr r2, _08089D54 + ldrh r0, [r2] + movs r3, #0 + ldrsh r1, [r2, r3] + cmp r1, #0x1f + bgt _08089D58 + adds r0, #2 + b _08089D5E + .align 2, 0 +_08089D54: .4byte 0x03000E2A +_08089D58: + cmp r1, #0x20 + ble _08089D60 + subs r0, #2 +_08089D5E: + strh r0, [r2] +_08089D60: + pop {r0} + bx r0 + thumb_func_end CameraPanningCB_PanAhead + diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s new file mode 100644 index 0000000..a609711 --- /dev/null +++ b/asm/field_control_avatar.s @@ -0,0 +1,2623 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start FieldClearPlayerInput +FieldClearPlayerInput: @ 0x0809B7B4 + push {r4, r5, lr} + movs r1, #2 + rsbs r1, r1, #0 + movs r3, #3 + rsbs r3, r3, #0 + movs r4, #5 + rsbs r4, r4, #0 + movs r5, #9 + rsbs r5, r5, #0 + movs r2, #0 + strb r2, [r0] + ldrb r2, [r0, #1] + ands r1, r2 + ands r1, r3 + ands r1, r4 + ands r1, r5 + strb r1, [r0, #1] + movs r1, #0 + strb r1, [r0, #2] + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end FieldClearPlayerInput + + thumb_func_start FieldGetPlayerInput +FieldGetPlayerInput: @ 0x0809B7E0 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + mov r8, r2 + ldr r0, _0809B8B0 + ldrb r6, [r0, #3] + ldrb r0, [r0, #2] + mov sb, r0 + bl GetPlayerCurMetatileBehavior + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsForcedMovementTile + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r6, #2 + bne _0809B814 + cmp r7, #0 + beq _0809B818 +_0809B814: + cmp r6, #0 + bne _0809B87A +_0809B818: + bl GetPlayerSpeed + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + beq _0809B864 + movs r0, #8 + ands r0, r5 + cmp r0, #0 + beq _0809B834 + ldrb r0, [r4] + movs r1, #4 + orrs r0, r1 + strb r0, [r4] +_0809B834: + movs r0, #4 + ands r0, r5 + cmp r0, #0 + beq _0809B844 + ldrb r0, [r4] + movs r1, #8 + orrs r0, r1 + strb r0, [r4] +_0809B844: + movs r0, #1 + ands r0, r5 + cmp r0, #0 + beq _0809B854 + ldrb r0, [r4] + movs r1, #1 + orrs r0, r1 + strb r0, [r4] +_0809B854: + movs r0, #2 + ands r0, r5 + cmp r0, #0 + beq _0809B864 + ldrb r0, [r4] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4] +_0809B864: + movs r0, #0xf0 + mov r1, r8 + ands r0, r1 + cmp r0, #0 + beq _0809B87A + ldrb r0, [r4] + movs r1, #0x10 + orrs r0, r1 + movs r1, #0x20 + orrs r0, r1 + strb r0, [r4] +_0809B87A: + cmp r7, #0 + bne _0809B8A0 + cmp r6, #2 + bne _0809B890 + mov r0, sb + cmp r0, #2 + bne _0809B890 + ldrb r0, [r4] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4] +_0809B890: + cmp r7, #0 + bne _0809B8A0 + cmp r6, #2 + bne _0809B8A0 + ldrb r0, [r4] + movs r1, #2 + orrs r0, r1 + strb r0, [r4] +_0809B8A0: + movs r0, #0x40 + mov r1, r8 + ands r0, r1 + cmp r0, #0 + beq _0809B8B4 + movs r0, #2 + b _0809B8DC + .align 2, 0 +_0809B8B0: .4byte 0x02037230 +_0809B8B4: + movs r0, #0x80 + mov r1, r8 + ands r0, r1 + cmp r0, #0 + beq _0809B8C2 + movs r0, #1 + b _0809B8DC +_0809B8C2: + movs r0, #0x20 + mov r1, r8 + ands r0, r1 + cmp r0, #0 + beq _0809B8D0 + movs r0, #3 + b _0809B8DC +_0809B8D0: + movs r0, #0x10 + mov r1, r8 + ands r0, r1 + cmp r0, #0 + beq _0809B8DE + movs r0, #4 +_0809B8DC: + strb r0, [r4, #2] +_0809B8DE: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end FieldGetPlayerInput + + thumb_func_start ProcessPlayerFieldInput +ProcessPlayerFieldInput: @ 0x0809B8EC + push {r4, r5, r6, lr} + sub sp, #8 + adds r5, r0, #0 + ldr r0, _0809BA2C + movs r1, #0 + strh r1, [r0] + ldr r0, _0809BA30 + strb r1, [r0] + bl GetPlayerFacingDirection + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + mov r4, sp + mov r0, sp + bl GetPlayerPosition + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #2 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + bl CheckForTrainersWantingBattle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0809BA26 + bl TryRunOnFrameMapScript + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0809BA26 + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809B948 + bl TrySetupDiveEmergeScript + cmp r0, #1 + beq _0809BA26 +_0809B948: + ldrb r1, [r5] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0809B96E + movs r0, #5 + bl IncrementGameStat + bl IncrementBirthIslandRockStepCount + mov r0, sp + adds r1, r4, #0 + adds r2, r6, #0 + bl TryStartStepBasedScript + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0809BA26 +_0809B96E: + ldrb r1, [r5] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0809B986 + adds r0, r4, #0 + bl CheckStandardWildEncounter + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0809BA26 +_0809B986: + ldrb r1, [r5] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0809B9A8 + ldrb r0, [r5, #2] + cmp r0, r6 + bne _0809B9A8 + mov r0, sp + adds r1, r4, #0 + adds r2, r6, #0 + bl TryArrowWarp + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0809BA26 +_0809B9A8: + mov r4, sp + mov r0, sp + bl GetInFrontOfPlayerPosition + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #2 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldrb r1, [r5] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0809B9DE + mov r0, sp + adds r1, r4, #0 + adds r2, r6, #0 + bl TryStartInteractionScript + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0809BA26 +_0809B9DE: + ldrb r1, [r5] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0809BA00 + ldrb r0, [r5, #2] + cmp r0, r6 + bne _0809BA00 + mov r0, sp + adds r1, r4, #0 + adds r2, r6, #0 + bl TryDoorWarp + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0809BA26 +_0809BA00: + ldrb r1, [r5] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0809BA12 + bl TrySetupDiveDownScript + cmp r0, #1 + beq _0809BA26 +_0809BA12: + ldrb r1, [r5] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0809BA34 + movs r0, #6 + bl PlaySE + bl ShowStartMenu +_0809BA26: + movs r0, #1 + b _0809BA4A + .align 2, 0 +_0809BA2C: .4byte 0x02037292 +_0809BA30: .4byte 0x03005B50 +_0809BA34: + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0809BA48 + bl UseRegisteredKeyItemOnField + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0809BA26 +_0809BA48: + movs r0, #0 +_0809BA4A: + add sp, #8 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ProcessPlayerFieldInput + + thumb_func_start GetPlayerPosition +GetPlayerPosition: @ 0x0809BA54 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #2 + bl PlayerGetDestCoords + bl PlayerGetZCoord + strb r0, [r4, #4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end GetPlayerPosition + + thumb_func_start GetInFrontOfPlayerPosition +GetInFrontOfPlayerPosition: @ 0x0809BA6C + push {r4, r5, lr} + sub sp, #4 + adds r5, r0, #0 + adds r1, r5, #2 + bl GetXYCoordsOneStepInFrontOfPlayer + mov r4, sp + adds r4, #2 + 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 MapGridGetZCoordAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _0809BA9E + bl PlayerGetZCoord +_0809BA9E: + strb r0, [r5, #4] + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end GetInFrontOfPlayerPosition + + thumb_func_start GetPlayerCurMetatileBehavior +GetPlayerCurMetatileBehavior: @ 0x0809BAA8 + push {r4, lr} + sub sp, #4 + mov r4, sp + adds r4, #2 + 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, r0, #0x10 + lsrs r0, r0, #0x10 + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetPlayerCurMetatileBehavior + + thumb_func_start TryStartInteractionScript +TryStartInteractionScript: @ 0x0809BAD4 + push {r4, lr} + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl GetInteractionScript + adds r4, r0, #0 + cmp r4, #0 + bne _0809BAEC + movs r0, #0 + b _0809BB24 +_0809BAEC: + ldr r0, _0809BB2C + cmp r4, r0 + beq _0809BB1C + ldr r0, _0809BB30 + cmp r4, r0 + beq _0809BB1C + ldr r0, _0809BB34 + cmp r4, r0 + beq _0809BB1C + ldr r0, _0809BB38 + cmp r4, r0 + beq _0809BB1C + ldr r0, _0809BB3C + cmp r4, r0 + beq _0809BB1C + ldr r0, _0809BB40 + cmp r4, r0 + beq _0809BB1C + ldr r0, _0809BB44 + cmp r4, r0 + beq _0809BB1C + movs r0, #5 + bl PlaySE +_0809BB1C: + adds r0, r4, #0 + bl ScriptContext1_SetupScript + movs r0, #1 +_0809BB24: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809BB2C: .4byte 0x081F01BC +_0809BB30: .4byte 0x081F0D9F +_0809BB34: .4byte 0x0821D3AA +_0809BB38: .4byte 0x0821D478 +_0809BB3C: .4byte 0x082465B5 +_0809BB40: .4byte 0x082465B9 +_0809BB44: .4byte 0x08242E1E + thumb_func_end TryStartInteractionScript + + thumb_func_start GetInteractionScript +GetInteractionScript: @ 0x0809BB48 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + mov r8, r5 + lsls r2, r2, #0x18 + lsrs r4, r2, #0x18 + adds r7, r4, #0 + adds r1, r5, #0 + adds r2, r4, #0 + bl GetInteractedEventObjectScript + cmp r0, #0 + bne _0809BB94 + adds r0, r6, #0 + adds r1, r5, #0 + adds r2, r4, #0 + bl GetInteractedBackgroundEventScript + cmp r0, #0 + bne _0809BB94 + adds r0, r6, #0 + adds r1, r5, #0 + adds r2, r4, #0 + bl GetInteractedMetatileScript + cmp r0, #0 + bne _0809BB94 + adds r0, r6, #0 + mov r1, r8 + adds r2, r7, #0 + bl GetInteractedWaterScript + cmp r0, #0 + bne _0809BB94 + movs r0, #0 +_0809BB94: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetInteractionScript + + thumb_func_start GetInteractedLinkPlayerScript +GetInteractedLinkPlayerScript: @ 0x0809BBA0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + movs r1, #0 + ldrsh r0, [r4, r1] + movs r2, #2 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsCounter + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809BBC8 + ldrh r0, [r4] + ldrh r1, [r4, #2] + b _0809BBE6 +_0809BBC8: + ldr r1, _0809BC0C + lsls r2, r6, #3 + adds r0, r2, r1 + ldr r3, [r0] + ldrh r0, [r4] + adds r0, r0, r3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, #4 + adds r2, r2, r1 + ldr r2, [r2] + ldrh r1, [r4, #2] + adds r1, r1, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 +_0809BBE6: + ldrb r2, [r4, #4] + bl GetEventObjectIdByXYZ + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0x10 + beq _0809BC06 + ldr r1, _0809BC10 + lsls r2, r3, #3 + adds r0, r2, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #8] + adds r5, r1, #0 + cmp r0, #0xff + bne _0809BC14 +_0809BC06: + movs r0, #0 + b _0809BC46 + .align 2, 0 +_0809BC0C: .4byte 0x0830FCB0 +_0809BC10: .4byte 0x02036FF0 +_0809BC14: + movs r4, #0 + ldr r1, _0809BC4C +_0809BC18: + ldrb r0, [r1] + cmp r0, #1 + bne _0809BC24 + ldrb r0, [r1, #2] + cmp r0, r3 + beq _0809BC06 +_0809BC24: + adds r1, #4 + adds r4, #1 + cmp r4, #3 + ble _0809BC18 + ldr r0, _0809BC50 + strb r3, [r0] + ldr r1, _0809BC54 + adds r0, r2, r3 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r0, [r0, #8] + strh r0, [r1] + ldr r0, _0809BC58 + strh r6, [r0] + adds r0, r3, #0 + bl GetEventObjectScriptPointerByEventObjectId +_0809BC46: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0809BC4C: .4byte 0x02031FA8 +_0809BC50: .4byte 0x03005B50 +_0809BC54: .4byte 0x02037292 +_0809BC58: .4byte 0x02037294 + thumb_func_end GetInteractedLinkPlayerScript + + thumb_func_start GetInteractedEventObjectScript +GetInteractedEventObjectScript: @ 0x0809BC5C + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + ldrh r0, [r5] + ldrh r1, [r5, #2] + ldrb r2, [r5, #4] + bl GetEventObjectIdByXYZ + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x10 + beq _0809BC8C + ldr r1, _0809BCDC + lsls r2, r4, #3 + adds r0, r2, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #8] + adds r3, r1, #0 + cmp r0, #0xff + bne _0809BCE4 +_0809BC8C: + adds r0, r6, #0 + bl MetatileBehavior_IsCounter + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809BCD8 + ldr r1, _0809BCE0 + lsls r2, r7, #3 + adds r0, r2, r1 + ldr r3, [r0] + ldrh r0, [r5] + adds r0, r0, r3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, #4 + adds r2, r2, r1 + ldr r2, [r2] + ldrh r1, [r5, #2] + adds r1, r1, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldrb r2, [r5, #4] + bl GetEventObjectIdByXYZ + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x10 + beq _0809BCD8 + ldr r1, _0809BCDC + lsls r2, r4, #3 + adds r0, r2, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #8] + adds r3, r1, #0 + cmp r0, #0xff + bne _0809BCE4 +_0809BCD8: + movs r0, #0 + b _0809BD26 + .align 2, 0 +_0809BCDC: .4byte 0x02036FF0 +_0809BCE0: .4byte 0x0830FCB0 +_0809BCE4: + ldr r0, _0809BD08 + strb r4, [r0] + ldr r1, _0809BD0C + adds r0, r2, r4 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0, #8] + strh r0, [r1] + ldr r0, _0809BD10 + strh r7, [r0] + bl InTrainerHill + cmp r0, #1 + bne _0809BD14 + bl GetTrainerHillTrainerScript + b _0809BD1A + .align 2, 0 +_0809BD08: .4byte 0x03005B50 +_0809BD0C: .4byte 0x02037292 +_0809BD10: .4byte 0x02037294 +_0809BD14: + adds r0, r4, #0 + bl GetEventObjectScriptPointerByEventObjectId +_0809BD1A: + adds r1, r0, #0 + ldr r0, _0809BD2C + ldrb r0, [r0] + bl GetRamScript + adds r1, r0, #0 +_0809BD26: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0809BD2C: .4byte 0x02037292 + thumb_func_end GetInteractedEventObjectScript + + thumb_func_start GetInteractedBackgroundEventScript +GetInteractedBackgroundEventScript: @ 0x0809BD30 + push {r4, r5, lr} + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + ldr r4, _0809BD60 + ldrh r1, [r0] + subs r1, #7 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldrh r2, [r0, #2] + subs r2, #7 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldrb r3, [r0, #4] + adds r0, r4, #0 + bl GetBackgroundEventAtPosition + cmp r0, #0 + beq _0809BDA4 + ldr r2, [r0, #8] + cmp r2, #0 + bne _0809BD68 + ldr r0, _0809BD64 + b _0809BE0A + .align 2, 0 +_0809BD60: .4byte 0x02036FB8 +_0809BD64: .4byte 0x08276D3D +_0809BD68: + ldrb r0, [r0, #5] + cmp r0, #8 + bhi _0809BE08 + lsls r0, r0, #2 + ldr r1, _0809BD78 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809BD78: .4byte 0x0809BD7C +_0809BD7C: @ jump table + .4byte _0809BE08 @ case 0 + .4byte _0809BDA0 @ case 1 + .4byte _0809BDA8 @ case 2 + .4byte _0809BDAE @ case 3 + .4byte _0809BDB4 @ case 4 + .4byte _0809BDBA @ case 5 + .4byte _0809BDBA @ case 6 + .4byte _0809BDBA @ case 7 + .4byte _0809BDE8 @ case 8 +_0809BDA0: + cmp r5, #2 + beq _0809BE08 +_0809BDA4: + movs r0, #0 + b _0809BE0A +_0809BDA8: + cmp r5, #1 + beq _0809BE08 + b _0809BDA4 +_0809BDAE: + cmp r5, #4 + beq _0809BE08 + b _0809BDA4 +_0809BDB4: + cmp r5, #3 + beq _0809BE08 + b _0809BDA4 +_0809BDBA: + ldr r1, _0809BDDC + lsrs r0, r2, #0x10 + movs r3, #0xfa + lsls r3, r3, #1 + adds r0, r0, r3 + strh r0, [r1] + ldr r0, _0809BDE0 + strh r2, [r0] + ldrh r0, [r1] + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0809BDA4 + ldr r0, _0809BDE4 + b _0809BE0A + .align 2, 0 +_0809BDDC: .4byte 0x02037280 +_0809BDE0: .4byte 0x02037282 +_0809BDE4: .4byte 0x08242D49 +_0809BDE8: + cmp r5, #2 + bne _0809BDA4 + ldr r0, _0809BE00 + strh r2, [r0] + bl TrySetCurSecretBase + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809BDA4 + ldr r0, _0809BE04 + b _0809BE0A + .align 2, 0 +_0809BE00: .4byte 0x02037280 +_0809BE04: .4byte 0x08245AA0 +_0809BE08: + adds r0, r2, #0 +_0809BE0A: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end GetInteractedBackgroundEventScript + + thumb_func_start GetInteractedMetatileScript +GetInteractedMetatileScript: @ 0x0809BE10 + push {r4, r5, r6, lr} + adds r6, r0, #0 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r4, r2, #0x18 + adds r0, r5, #0 + adds r1, r4, #0 + bl MetatileBehavior_IsPlayerFacingTVScreen + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809BE34 + ldr r0, _0809BE30 + b _0809C0BC + .align 2, 0 +_0809BE30: .4byte 0x0824C47B +_0809BE34: + adds r0, r5, #0 + bl MetatileBehavior_IsPC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809BE4C + ldr r0, _0809BE48 + b _0809C0BC + .align 2, 0 +_0809BE48: .4byte 0x08242E1E +_0809BE4C: + adds r0, r5, #0 + bl MetatileBehavior_IsClosedSootopolisDoor + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809BE64 + ldr r0, _0809BE60 + b _0809C0BC + .align 2, 0 +_0809BE60: .4byte 0x081E27F7 +_0809BE64: + adds r0, r5, #0 + bl MetatileBehavior_IsUnknownClosedDoor + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809BE7C + ldr r0, _0809BE78 + b _0809C0BC + .align 2, 0 +_0809BE78: .4byte 0x0821BD3E +_0809BE7C: + adds r0, r5, #0 + bl MetatileBehavior_IsCableBoxResults1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809BE8C + b _0809BFBC +_0809BE8C: + adds r0, r5, #0 + bl MetatileBehavior_IsPokeblockFeeder + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809BEA4 + ldr r0, _0809BEA0 + b _0809C0BC + .align 2, 0 +_0809BEA0: .4byte 0x0826240A +_0809BEA4: + adds r0, r5, #0 + bl MetatileBehavior_IsTrickHousePuzzleDoor + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809BEBC + ldr r0, _0809BEB8 + b _0809C0BC + .align 2, 0 +_0809BEB8: .4byte 0x0823CFFB +_0809BEBC: + adds r0, r5, #0 + bl MetatileBehavior_IsRegionMap + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809BED4 + ldr r0, _0809BED0 + b _0809C0BC + .align 2, 0 +_0809BED0: .4byte 0x0824311B +_0809BED4: + adds r0, r5, #0 + bl MetatileBehavior_IsRunningShoesManual + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809BEEC + ldr r0, _0809BEE8 + b _0809C0BC + .align 2, 0 +_0809BEE8: .4byte 0x082585CF +_0809BEEC: + adds r0, r5, #0 + bl MetatileBehavior_IsPictureBookShelf + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809BF04 + ldr r0, _0809BF00 + b _0809C0BC + .align 2, 0 +_0809BF00: .4byte 0x08243651 +_0809BF04: + adds r0, r5, #0 + bl MetatileBehavior_IsBookShelf + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809BF1C + ldr r0, _0809BF18 + b _0809C0BC + .align 2, 0 +_0809BF18: .4byte 0x0824365A +_0809BF1C: + adds r0, r5, #0 + bl MetatileBehavior_IsPokeCenterBookShelf + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809BF34 + ldr r0, _0809BF30 + b _0809C0BC + .align 2, 0 +_0809BF30: .4byte 0x08243663 +_0809BF34: + adds r0, r5, #0 + bl MetatileBehavior_IsVase + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809BF4C + ldr r0, _0809BF48 + b _0809C0BC + .align 2, 0 +_0809BF48: .4byte 0x0824366C +_0809BF4C: + adds r0, r5, #0 + bl MetatileBehavior_IsTrashCan + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809BF64 + ldr r0, _0809BF60 + b _0809C0BC + .align 2, 0 +_0809BF60: .4byte 0x08243675 +_0809BF64: + adds r0, r5, #0 + bl MetatileBehavior_IsShopShelf + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809BF7C + ldr r0, _0809BF78 + b _0809C0BC + .align 2, 0 +_0809BF78: .4byte 0x0824367E +_0809BF7C: + adds r0, r5, #0 + bl MetatileBehavior_IsBlueprint + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809BF94 + ldr r0, _0809BF90 + b _0809C0BC + .align 2, 0 +_0809BF90: .4byte 0x08243687 +_0809BF94: + adds r0, r5, #0 + adds r1, r4, #0 + bl MetatileBehavior_IsPlayerFacingWirelessBoxResults + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809BFAC + ldr r0, _0809BFA8 + b _0809C0BC + .align 2, 0 +_0809BFA8: .4byte 0x08247869 +_0809BFAC: + adds r0, r5, #0 + adds r1, r4, #0 + bl MetatileBehavior_IsCableBoxResults2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809BFC4 +_0809BFBC: + ldr r0, _0809BFC0 + b _0809C0BC + .align 2, 0 +_0809BFC0: .4byte 0x08247044 +_0809BFC4: + adds r0, r5, #0 + bl MetatileBehavior_IsQuestionnaire + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809BFDC + ldr r0, _0809BFD8 + b _0809C0BC + .align 2, 0 +_0809BFD8: .4byte 0x08244245 +_0809BFDC: + adds r0, r5, #0 + bl MetatileBehavior_IsTrainerHillTimer + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809BFF4 + ldr r0, _0809BFF0 + b _0809C0BC + .align 2, 0 +_0809BFF0: .4byte 0x08276CAF +_0809BFF4: + movs r4, #4 + ldrsb r4, [r6, r4] + movs r1, #0 + ldrsh r0, [r6, r1] + movs r2, #2 + ldrsh r1, [r6, r2] + bl MapGridGetZCoordAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + bne _0809C0A8 + adds r0, r5, #0 + bl MetatileBehavior_IsSecretBasePC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809C024 + ldr r0, _0809C020 + b _0809C0BC + .align 2, 0 +_0809C020: .4byte 0x0821D3AA +_0809C024: + adds r0, r5, #0 + bl MetatileBehavior_IsRecordMixingSecretBasePC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809C03C + ldr r0, _0809C038 + b _0809C0BC + .align 2, 0 +_0809C038: .4byte 0x0821D478 +_0809C03C: + adds r0, r5, #0 + bl MetatileBehavior_IsSecretBaseSandOrnament + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809C054 + ldr r0, _0809C050 + b _0809C0BC + .align 2, 0 +_0809C050: .4byte 0x0821D573 +_0809C054: + adds r0, r5, #0 + bl MetatileBehavior_IsSecretBaseShieldOrToyTV + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809C06C + ldr r0, _0809C068 + b _0809C0BC + .align 2, 0 +_0809C068: .4byte 0x0821D57B +_0809C06C: + adds r0, r5, #0 + bl MetatileBehavior_IsMB_C6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809C080 + bl SetSecretBaseSecretsTvFlags_MiscFurnature + b _0809C0BA +_0809C080: + adds r0, r5, #0 + bl MetatileBehavior_HoldsLargeDecoration + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809C094 + bl SetSecretBaseSecretsTvFlags_LargeDecorationSpot + b _0809C0BA +_0809C094: + adds r0, r5, #0 + bl MetatileBehavior_HoldsSmallDecoration + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809C0BA + bl SetSecretBaseSecretsTvFlags_SmallDecorationSpot + b _0809C0BA +_0809C0A8: + adds r0, r5, #0 + bl MetatileBehavior_IsSecretBasePoster + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809C0BA + bl SetSecretBaseSecretsTvFlags_Poster +_0809C0BA: + movs r0, #0 +_0809C0BC: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetInteractedMetatileScript + + thumb_func_start GetInteractedWaterScript +GetInteractedWaterScript: @ 0x0809C0C4 + push {r4, lr} + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + ldr r0, _0809C0F4 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809C0FC + bl PartyHasMonWithSurf + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809C0FC + bl IsPlayerFacingSurfableFishableWater + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809C0FC + ldr r0, _0809C0F8 + b _0809C13A + .align 2, 0 +_0809C0F4: .4byte 0x0000086B +_0809C0F8: .4byte 0x08242F2C +_0809C0FC: + adds r0, r4, #0 + bl MetatileBehavior_IsWaterfall + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809C138 + ldr r0, _0809C128 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809C130 + bl IsPlayerSurfingNorth + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809C130 + ldr r0, _0809C12C + b _0809C13A + .align 2, 0 +_0809C128: .4byte 0x0000086E +_0809C12C: .4byte 0x0825685D +_0809C130: + ldr r0, _0809C134 + b _0809C13A + .align 2, 0 +_0809C134: .4byte 0x08256897 +_0809C138: + movs r0, #0 +_0809C13A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetInteractedWaterScript + + thumb_func_start TrySetupDiveDownScript +TrySetupDiveDownScript: @ 0x0809C140 + push {lr} + ldr r0, _0809C164 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809C16C + bl TrySetDiveWarp + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _0809C16C + ldr r0, _0809C168 + bl ScriptContext1_SetupScript + movs r0, #1 + b _0809C16E + .align 2, 0 +_0809C164: .4byte 0x0000086D +_0809C168: .4byte 0x082568EA +_0809C16C: + movs r0, #0 +_0809C16E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TrySetupDiveDownScript + + thumb_func_start TrySetupDiveEmergeScript +TrySetupDiveEmergeScript: @ 0x0809C174 + push {lr} + ldr r0, _0809C1A0 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809C1AC + ldr r0, _0809C1A4 + ldrb r0, [r0, #0x17] + cmp r0, #5 + bne _0809C1AC + bl TrySetDiveWarp + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809C1AC + ldr r0, _0809C1A8 + bl ScriptContext1_SetupScript + movs r0, #1 + b _0809C1AE + .align 2, 0 +_0809C1A0: .4byte 0x0000086D +_0809C1A4: .4byte 0x02036FB8 +_0809C1A8: .4byte 0x08256935 +_0809C1AC: + movs r0, #0 +_0809C1AE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TrySetupDiveEmergeScript + + thumb_func_start TryStartStepBasedScript +TryStartStepBasedScript: @ 0x0809C1B4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + adds r6, r4, #0 + bl TryStartCoordEventScript + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0809C206 + adds r0, r5, #0 + adds r1, r4, #0 + bl TryStartWarpEventScript + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0809C206 + adds r0, r4, #0 + bl TryStartMiscWalkingScripts + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0809C206 + adds r0, r6, #0 + bl TryStartStepCountScript + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0809C206 + bl UpdateRepelCounter + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0809C206 + movs r0, #0 + b _0809C208 +_0809C206: + movs r0, #1 +_0809C208: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TryStartStepBasedScript + + thumb_func_start TryStartCoordEventScript +TryStartCoordEventScript: @ 0x0809C210 + push {r4, lr} + ldr r4, _0809C238 + ldrh r1, [r0] + subs r1, #7 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldrh r2, [r0, #2] + subs r2, #7 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldrb r3, [r0, #4] + adds r0, r4, #0 + bl GetCoordEventScriptAtPosition + cmp r0, #0 + beq _0809C23C + bl ScriptContext1_SetupScript + movs r0, #1 + b _0809C23E + .align 2, 0 +_0809C238: .4byte 0x02036FB8 +_0809C23C: + movs r0, #0 +_0809C23E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end TryStartCoordEventScript + + thumb_func_start TryStartMiscWalkingScripts +TryStartMiscWalkingScripts: @ 0x0809C244 + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl MetatileBehavior_IsCrackedFloorHole + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809C260 + ldr r0, _0809C25C + b _0809C26E + .align 2, 0 +_0809C25C: .4byte 0x0826433F +_0809C260: + adds r0, r4, #0 + bl MetatileBehavior_IsBattlePyramidWarp + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809C27C + ldr r0, _0809C278 +_0809C26E: + bl ScriptContext1_SetupScript + movs r0, #1 + b _0809C2C2 + .align 2, 0 +_0809C278: .4byte 0x0822D6B1 +_0809C27C: + adds r0, r4, #0 + bl MetatileBehavior_IsSecretBaseGlitterMat + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809C290 + bl DoSecretBaseGlitterMatSparkle + b _0809C2C0 +_0809C290: + adds r0, r4, #0 + bl MetatileBehavior_IsSecretBaseSoundMat + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809C2C0 + mov r4, sp + adds r4, #2 + 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 MapGridGetMetatileIdAt + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + bl PlaySecretBaseMusicNoteMatSound +_0809C2C0: + movs r0, #0 +_0809C2C2: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TryStartMiscWalkingScripts + + thumb_func_start TryStartStepCountScript +TryStartStepCountScript: @ 0x0809C2CC + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + bl InUnionRoom + cmp r0, #1 + bne _0809C2DC + b _0809C3FC +_0809C2DC: + bl IncrementRematchStepCounter + bl UpdateHappinessStepCounter + bl UpdateFarawayIslandStepCounter + ldr r0, _0809C318 + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _0809C3D0 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsForcedMovementTile + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809C3D0 + bl UpdatePoisonStepCounter + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809C320 + ldr r0, _0809C31C + bl ScriptContext1_SetupScript + b _0809C400 + .align 2, 0 +_0809C318: .4byte 0x02037230 +_0809C31C: .4byte 0x082440E6 +_0809C320: + bl ShouldEggHatch + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809C33C + movs r0, #0xd + bl IncrementGameStat + ldr r0, _0809C338 + bl ScriptContext1_SetupScript + b _0809C400 + .align 2, 0 +_0809C338: .4byte 0x08257A89 +_0809C33C: + bl UnusualWeatherHasExpired + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809C354 + ldr r0, _0809C350 + bl ScriptContext1_SetupScript + b _0809C400 + .align 2, 0 +_0809C350: .4byte 0x08244749 +_0809C354: + bl ShouldDoBrailleRegicePuzzle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809C36C + ldr r0, _0809C368 + bl ScriptContext1_SetupScript + b _0809C400 + .align 2, 0 +_0809C368: .4byte 0x0821B7F4 +_0809C36C: + bl ShouldDoWallyCall + cmp r0, #1 + bne _0809C380 + ldr r0, _0809C37C + bl ScriptContext1_SetupScript + b _0809C400 + .align 2, 0 +_0809C37C: .4byte 0x081DDDF3 +_0809C380: + bl ShouldDoWinonaCall + cmp r0, #1 + bne _0809C394 + ldr r0, _0809C390 + bl ScriptContext1_SetupScript + b _0809C400 + .align 2, 0 +_0809C390: .4byte 0x081ED2AD +_0809C394: + bl ShouldDoScottCall + cmp r0, #1 + bne _0809C3A8 + ldr r0, _0809C3A4 + bl ScriptContext1_SetupScript + b _0809C400 + .align 2, 0 +_0809C3A4: .4byte 0x081F1A71 +_0809C3A8: + bl ShouldDoRoxanneCall + cmp r0, #1 + bne _0809C3BC + ldr r0, _0809C3B8 + bl ScriptContext1_SetupScript + b _0809C400 + .align 2, 0 +_0809C3B8: .4byte 0x08202410 +_0809C3BC: + bl ShouldDoRivalRayquazaCall + cmp r0, #1 + bne _0809C3D0 + ldr r0, _0809C3CC + bl ScriptContext1_SetupScript + b _0809C400 + .align 2, 0 +_0809C3CC: .4byte 0x0820DA9F +_0809C3D0: + bl SafariZoneTakeStep + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0809C400 + movs r0, #1 + bl CountSSTidalStep + cmp r0, #1 + bne _0809C3F4 + ldr r0, _0809C3F0 + bl ScriptContext1_SetupScript + b _0809C400 + .align 2, 0 +_0809C3F0: .4byte 0x0821DEC7 +_0809C3F4: + bl TryStartMatchCall + cmp r0, #0 + bne _0809C400 +_0809C3FC: + movs r0, #0 + b _0809C402 +_0809C400: + movs r0, #1 +_0809C402: + pop {r4} + pop {r1} + bx r1 + thumb_func_end TryStartStepCountScript + + thumb_func_start Unref_ClearHappinessStepCounter +Unref_ClearHappinessStepCounter: @ 0x0809C408 + push {lr} + ldr r0, _0809C418 + movs r1, #0 + bl VarSet + pop {r0} + bx r0 + .align 2, 0 +_0809C418: .4byte 0x0000402A + thumb_func_end Unref_ClearHappinessStepCounter + + thumb_func_start UpdateHappinessStepCounter +UpdateHappinessStepCounter: @ 0x0809C41C + push {r4, r5, lr} + ldr r0, _0809C450 + bl GetVarPointer + ldrh r1, [r0] + adds r1, #1 + strh r1, [r0] + ldrh r1, [r0] + movs r2, #0x7f + ands r1, r2 + strh r1, [r0] + cmp r1, #0 + bne _0809C44A + ldr r5, _0809C454 + movs r4, #5 +_0809C43A: + adds r0, r5, #0 + movs r1, #5 + bl AdjustFriendship + adds r5, #0x64 + subs r4, #1 + cmp r4, #0 + bge _0809C43A +_0809C44A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0809C450: .4byte 0x0000402A +_0809C454: .4byte 0x02024190 + thumb_func_end UpdateHappinessStepCounter + + thumb_func_start ClearPoisonStepCounter +ClearPoisonStepCounter: @ 0x0809C458 + push {lr} + ldr r0, _0809C468 + movs r1, #0 + bl VarSet + pop {r0} + bx r0 + .align 2, 0 +_0809C468: .4byte 0x0000402B + thumb_func_end ClearPoisonStepCounter + + thumb_func_start UpdatePoisonStepCounter +UpdatePoisonStepCounter: @ 0x0809C46C + push {lr} + ldr r0, _0809C4A4 + ldrb r0, [r0, #0x17] + cmp r0, #9 + beq _0809C4AC + ldr r0, _0809C4A8 + bl GetVarPointer + ldrh r1, [r0] + adds r1, #1 + strh r1, [r0] + ldrh r1, [r0] + movs r2, #3 + ands r1, r2 + strh r1, [r0] + cmp r1, #0 + bne _0809C4AC + bl DoPoisonFieldEffect + cmp r0, #1 + beq _0809C4AC + cmp r0, #1 + ble _0809C4AC + cmp r0, #2 + bne _0809C4AC + movs r0, #1 + b _0809C4AE + .align 2, 0 +_0809C4A4: .4byte 0x02036FB8 +_0809C4A8: .4byte 0x0000402B +_0809C4AC: + movs r0, #0 +_0809C4AE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end UpdatePoisonStepCounter + + thumb_func_start RestartWildEncounterImmunitySteps +RestartWildEncounterImmunitySteps: @ 0x0809C4B4 + ldr r1, _0809C4BC + movs r0, #0 + strb r0, [r1] + bx lr + .align 2, 0 +_0809C4BC: .4byte 0x02037274 + thumb_func_end RestartWildEncounterImmunitySteps + + thumb_func_start CheckStandardWildEncounter +CheckStandardWildEncounter: @ 0x0809C4C0 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r7, r4, #0 + ldr r6, _0809C4DC + ldrb r0, [r6] + cmp r0, #3 + bhi _0809C4E4 + adds r0, #1 + strb r0, [r6] + ldr r0, _0809C4E0 + strh r4, [r0] + movs r0, #0 + b _0809C508 + .align 2, 0 +_0809C4DC: .4byte 0x02037274 +_0809C4E0: .4byte 0x02037276 +_0809C4E4: + ldr r5, _0809C4FC + ldrh r1, [r5] + adds r0, r4, #0 + bl StandardWildEncounter + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0809C500 + strh r4, [r5] + movs r0, #0 + b _0809C508 + .align 2, 0 +_0809C4FC: .4byte 0x02037276 +_0809C500: + movs r0, #0 + strb r0, [r6] + strh r7, [r5] + movs r0, #1 +_0809C508: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CheckStandardWildEncounter + + thumb_func_start TryArrowWarp +TryArrowWarp: @ 0x0809C510 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + adds r4, r1, #0 + adds r5, r2, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _0809C564 + mov r8, r0 + adds r1, r7, #0 + bl GetWarpEventAtMapPosition + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl IsArrowWarpMetatileBehavior + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809C568 + lsls r0, r6, #0x18 + asrs r4, r0, #0x18 + movs r0, #1 + rsbs r0, r0, #0 + cmp r4, r0 + beq _0809C568 + bl StoreInitialPlayerAvatarState + mov r0, r8 + adds r1, r4, #0 + adds r2, r7, #0 + bl SetupWarp + bl DoWarp + movs r0, #1 + b _0809C56A + .align 2, 0 +_0809C564: .4byte 0x02036FB8 +_0809C568: + movs r0, #0 +_0809C56A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end TryArrowWarp + + thumb_func_start TryStartWarpEventScript +TryStartWarpEventScript: @ 0x0809C574 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + ldr r7, _0809C5CC + adds r0, r7, #0 + adds r1, r6, #0 + bl GetWarpEventAtMapPosition + lsls r0, r0, #0x18 + asrs r4, r0, #0x18 + movs r0, #1 + rsbs r0, r0, #0 + cmp r4, r0 + beq _0809C662 + adds r0, r5, #0 + bl IsWarpMetatileBehavior + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809C662 + bl StoreInitialPlayerAvatarState + adds r0, r7, #0 + adds r1, r4, #0 + adds r2, r6, #0 + bl SetupWarp + lsls r0, r5, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl MetatileBehavior_IsEscalator + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809C5D0 + adds r0, r4, #0 + bl sub_080AF108 + movs r0, #1 + b _0809C664 + .align 2, 0 +_0809C5CC: .4byte 0x02036FB8 +_0809C5D0: + adds r0, r4, #0 + bl MetatileBehavior_IsLavaridgeB1FWarp + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809C5E6 + bl sub_080AF124 + movs r0, #1 + b _0809C664 +_0809C5E6: + adds r0, r4, #0 + bl MetatileBehavior_IsLavaridge1FWarp + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809C5FC + bl sub_080AF134 + movs r0, #1 + b _0809C664 +_0809C5FC: + adds r0, r4, #0 + bl MetatileBehavior_IsAquaHideoutWarp + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809C612 + bl sub_080AF144 + movs r0, #1 + b _0809C664 +_0809C612: + adds r0, r4, #0 + bl MetatileBehavior_IsWarpOrBridge + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809C628 + bl sub_080AFB64 + movs r0, #1 + b _0809C664 +_0809C628: + adds r0, r4, #0 + bl MetatileBehavior_IsMtPyreHole + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809C644 + ldr r0, _0809C640 + bl ScriptContext1_SetupScript + movs r0, #1 + b _0809C664 + .align 2, 0 +_0809C640: .4byte 0x08264358 +_0809C644: + adds r0, r4, #0 + bl MetatileBehavior_IsMossdeepGymWarp + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809C65A + bl sub_080AF178 + movs r0, #1 + b _0809C664 +_0809C65A: + bl DoWarp + movs r0, #1 + b _0809C664 +_0809C662: + movs r0, #0 +_0809C664: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TryStartWarpEventScript + + thumb_func_start IsWarpMetatileBehavior +IsWarpMetatileBehavior: @ 0x0809C66C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl MetatileBehavior_IsWarpDoor + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0809C702 + adds r0, r4, #0 + bl MetatileBehavior_IsLadder + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0809C702 + adds r0, r4, #0 + bl MetatileBehavior_IsEscalator + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0809C702 + adds r0, r4, #0 + bl MetatileBehavior_IsNonAnimDoor + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0809C702 + adds r0, r4, #0 + bl MetatileBehavior_IsLavaridgeB1FWarp + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0809C702 + adds r0, r4, #0 + bl MetatileBehavior_IsLavaridge1FWarp + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0809C702 + adds r0, r4, #0 + bl MetatileBehavior_IsAquaHideoutWarp + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0809C702 + adds r0, r4, #0 + bl MetatileBehavior_IsMtPyreHole + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0809C702 + adds r0, r4, #0 + bl MetatileBehavior_IsMossdeepGymWarp + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0809C702 + adds r0, r4, #0 + bl MetatileBehavior_IsWarpOrBridge + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0809C702 + movs r0, #0 + b _0809C704 +_0809C702: + movs r0, #1 +_0809C704: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsWarpMetatileBehavior + + thumb_func_start IsArrowWarpMetatileBehavior +IsArrowWarpMetatileBehavior: @ 0x0809C70C + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r2, r1, #0 + cmp r1, #2 + beq _0809C730 + cmp r1, #2 + bgt _0809C726 + cmp r1, #1 + beq _0809C73A + b _0809C75C +_0809C726: + cmp r2, #3 + beq _0809C744 + cmp r2, #4 + beq _0809C74E + b _0809C75C +_0809C730: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsNorthArrowWarp + b _0809C756 +_0809C73A: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsSouthArrowWarp + b _0809C756 +_0809C744: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsWestArrowWarp + b _0809C756 +_0809C74E: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsEastArrowWarp +_0809C756: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0809C75E +_0809C75C: + movs r0, #0 +_0809C75E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsArrowWarpMetatileBehavior + + thumb_func_start GetWarpEventAtMapPosition +GetWarpEventAtMapPosition: @ 0x0809C764 + push {lr} + adds r3, r1, #0 + ldrh r1, [r3] + subs r1, #7 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldrh r2, [r3, #2] + subs r2, #7 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldrb r3, [r3, #4] + bl GetWarpEventAtPosition + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetWarpEventAtMapPosition + + thumb_func_start SetupWarp +SetupWarp: @ 0x0809C788 + push {r4, r5, r6, r7, lr} + adds r7, r2, #0 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + bl GetCurrentTrainerHillMapId + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r6, r5, #0 + cmp r5, #0 + beq _0809C7D8 + bl sub_081D5E30 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r5, r0 + bne _0809C7C8 + lsls r0, r4, #0x18 + adds r4, r0, #0 + cmp r4, #0 + bne _0809C7C0 + ldr r0, _0809C7BC + ldr r0, [r0, #4] + ldr r5, [r0, #8] + b _0809C7E6 + .align 2, 0 +_0809C7BC: .4byte 0x02036FB8 +_0809C7C0: + bl sub_081D5ABC + adds r5, r0, #0 + b _0809C7E6 +_0809C7C8: + cmp r6, #5 + bne _0809C7D8 + lsls r4, r4, #0x18 + lsrs r0, r4, #0x18 + bl sub_081D5AD0 + adds r5, r0, #0 + b _0809C7E6 +_0809C7D8: + ldr r0, _0809C7F4 + ldr r0, [r0, #4] + lsls r2, r4, #0x18 + asrs r1, r2, #0x15 + ldr r0, [r0, #8] + adds r5, r0, r1 + adds r4, r2, #0 +_0809C7E6: + ldrb r0, [r5, #6] + cmp r0, #0x7f + bne _0809C7F8 + ldrb r0, [r5, #5] + bl SetWarpDestinationToDynamicWarp + b _0809C846 + .align 2, 0 +_0809C7F4: .4byte 0x02036FB8 +_0809C7F8: + movs r0, #7 + ldrsb r0, [r5, r0] + movs r1, #6 + ldrsb r1, [r5, r1] + movs r2, #5 + ldrsb r2, [r5, r2] + bl SetWarpDestinationToMapWarp + movs r1, #0 + ldrsh r0, [r7, r1] + movs r2, #2 + ldrsh r1, [r7, r2] + bl UpdateEscapeWarp + ldrb r0, [r5, #7] + ldrb r1, [r5, #6] + bl Overworld_GetMapHeaderByGroupAndId + ldr r1, [r0, #4] + ldrb r0, [r5, #5] + ldr r1, [r1, #8] + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r0, [r0, #6] + cmp r0, #0x7f + bne _0809C846 + asrs r3, r4, #0x18 + lsls r0, r3, #3 + adds r0, r0, r1 + ldrb r0, [r0, #5] + ldr r1, _0809C84C + ldr r2, [r1] + movs r1, #4 + ldrsb r1, [r2, r1] + ldrb r2, [r2, #5] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + bl SetDynamicWarp +_0809C846: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0809C84C: .4byte 0x03005AEC + thumb_func_end SetupWarp + + thumb_func_start TryDoorWarp +TryDoorWarp: @ 0x0809C850 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + lsls r1, r1, #0x10 + lsrs r0, r1, #0x10 + adds r7, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + cmp r2, #2 + bne _0809C8D4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl MetatileBehavior_IsOpenSecretBaseDoor + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809C888 + ldr r0, _0809C884 + ldr r1, [r0, #4] + adds r0, r5, #0 + bl WarpIntoSecretBase + movs r0, #1 + b _0809C8D6 + .align 2, 0 +_0809C884: .4byte 0x02036FB8 +_0809C888: + adds r0, r4, #0 + bl MetatileBehavior_IsWarpDoor + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809C8D4 + ldr r6, _0809C8D0 + adds r0, r6, #0 + adds r1, r5, #0 + bl GetWarpEventAtMapPosition + lsls r0, r0, #0x18 + asrs r4, r0, #0x18 + movs r0, #1 + rsbs r0, r0, #0 + cmp r4, r0 + beq _0809C8D4 + adds r0, r7, #0 + bl IsWarpMetatileBehavior + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809C8D4 + bl StoreInitialPlayerAvatarState + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl SetupWarp + bl DoDoorWarp + movs r0, #1 + b _0809C8D6 + .align 2, 0 +_0809C8D0: .4byte 0x02036FB8 +_0809C8D4: + movs r0, #0 +_0809C8D6: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end TryDoorWarp + + thumb_func_start GetWarpEventAtPosition +GetWarpEventAtPosition: @ 0x0809C8DC + push {r4, r5, r6, lr} + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r5, r2, #0x10 + lsls r3, r3, #0x18 + lsrs r4, r3, #0x18 + ldr r0, [r0, #4] + ldr r1, [r0, #8] + ldrb r3, [r0, #1] + movs r2, #0 + cmp r2, r3 + bge _0809C91A +_0809C8F6: + ldrh r0, [r1] + cmp r0, r6 + bne _0809C912 + ldrh r0, [r1, #2] + cmp r0, r5 + bne _0809C912 + ldrb r0, [r1, #4] + cmp r0, r4 + beq _0809C90C + cmp r0, #0 + bne _0809C912 +_0809C90C: + lsls r0, r2, #0x18 + asrs r0, r0, #0x18 + b _0809C91E +_0809C912: + adds r2, #1 + adds r1, #8 + cmp r2, r3 + blt _0809C8F6 +_0809C91A: + movs r0, #1 + rsbs r0, r0, #0 +_0809C91E: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end GetWarpEventAtPosition + + thumb_func_start TryRunCoordEventScript +TryRunCoordEventScript: @ 0x0809C924 + push {r4, lr} + adds r4, r0, #0 + cmp r4, #0 + beq _0809C95A + ldr r1, [r4, #0xc] + cmp r1, #0 + bne _0809C93A + ldrb r0, [r4, #6] + bl DoCoordEventWeather + b _0809C95A +_0809C93A: + ldrh r0, [r4, #6] + cmp r0, #0 + beq _0809C954 + ldrh r0, [r4, #6] + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r4, #8] + cmp r0, r1 + bne _0809C95A + ldr r0, [r4, #0xc] + b _0809C95C +_0809C954: + adds r0, r1, #0 + bl ScriptContext2_RunNewScript +_0809C95A: + movs r0, #0 +_0809C95C: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TryRunCoordEventScript + + thumb_func_start GetCoordEventScriptAtPosition +GetCoordEventScriptAtPosition: @ 0x0809C964 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sl, r1 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + mov sb, r2 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r8, r3 + ldr r0, [r0, #4] + ldr r1, [r0, #0xc] + ldrb r7, [r0, #2] + movs r6, #0 + cmp r6, r7 + bge _0809C9BA + adds r5, r1, #0 + adds r4, r5, #0 +_0809C990: + ldrh r0, [r4] + cmp r0, sl + bne _0809C9B0 + ldrh r0, [r4, #2] + cmp r0, sb + bne _0809C9B0 + ldrb r0, [r4, #4] + cmp r0, r8 + beq _0809C9A6 + cmp r0, #0 + bne _0809C9B0 +_0809C9A6: + adds r0, r5, #0 + bl TryRunCoordEventScript + cmp r0, #0 + bne _0809C9BC +_0809C9B0: + adds r4, #0x10 + adds r5, #0x10 + adds r6, #1 + cmp r6, r7 + blt _0809C990 +_0809C9BA: + movs r0, #0 +_0809C9BC: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetCoordEventScriptAtPosition + + thumb_func_start GetCoordEventScriptAtMapPosition +GetCoordEventScriptAtMapPosition: @ 0x0809C9CC + push {r4, lr} + ldr r4, _0809C9F0 + ldrh r1, [r0] + subs r1, #7 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldrh r2, [r0, #2] + subs r2, #7 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldrb r3, [r0, #4] + adds r0, r4, #0 + bl GetCoordEventScriptAtPosition + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809C9F0: .4byte 0x02036FB8 + thumb_func_end GetCoordEventScriptAtMapPosition + + thumb_func_start GetBackgroundEventAtPosition +GetBackgroundEventAtPosition: @ 0x0809C9F4 + push {r4, r5, r6, r7, lr} + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r6, r2, #0x10 + lsls r3, r3, #0x18 + lsrs r5, r3, #0x18 + ldr r0, [r0, #4] + ldr r4, [r0, #0x10] + ldrb r3, [r0, #3] + movs r2, #0 + cmp r2, r3 + bhs _0809CA3A +_0809CA0E: + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r1, r0, r4 + ldrh r0, [r1] + cmp r0, r7 + bne _0809CA30 + ldrh r0, [r1, #2] + cmp r0, r6 + bne _0809CA30 + ldrb r0, [r1, #4] + cmp r0, r5 + beq _0809CA2C + cmp r0, #0 + bne _0809CA30 +_0809CA2C: + adds r0, r1, #0 + b _0809CA3C +_0809CA30: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, r3 + blo _0809CA0E +_0809CA3A: + movs r0, #0 +_0809CA3C: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetBackgroundEventAtPosition + + thumb_func_start dive_warp +dive_warp: @ 0x0809CA44 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + ldr r0, _0809CA78 + ldrb r0, [r0, #0x17] + cmp r0, #5 + bne _0809CA7C + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsUnableToEmerge + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809CA7C + ldrh r0, [r4] + subs r0, #7 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrh r1, [r4, #2] + subs r1, #7 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl SetDiveWarpEmerge + b _0809CAA0 + .align 2, 0 +_0809CA78: .4byte 0x02036FB8 +_0809CA7C: + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsDiveable + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809CAB8 + ldrh r0, [r4] + subs r0, #7 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrh r1, [r4, #2] + subs r1, #7 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl SetDiveWarpDive +_0809CAA0: + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809CAB8 + bl StoreInitialPlayerAvatarState + bl DoDiveWarp + movs r0, #0xe9 + bl PlaySE + movs r0, #1 + b _0809CABA +_0809CAB8: + movs r0, #0 +_0809CABA: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end dive_warp + + thumb_func_start TrySetDiveWarp +TrySetDiveWarp: @ 0x0809CAC0 + push {r4, r5, lr} + sub sp, #4 + mov r4, sp + adds r4, #2 + 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, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _0809CB18 + ldrb r0, [r0, #0x17] + cmp r0, #5 + bne _0809CB1C + adds r0, r5, #0 + bl MetatileBehavior_IsUnableToEmerge + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809CB1C + mov r0, sp + ldrh r0, [r0] + subs r0, #7 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrh r1, [r4] + subs r1, #7 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl SetDiveWarpEmerge + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809CB4C + movs r0, #1 + b _0809CB4E + .align 2, 0 +_0809CB18: .4byte 0x02036FB8 +_0809CB1C: + adds r0, r5, #0 + bl MetatileBehavior_IsDiveable + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809CB4C + mov r0, sp + ldrh r0, [r0] + subs r0, #7 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrh r1, [r4] + subs r1, #7 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl SetDiveWarpDive + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809CB4C + movs r0, #2 + b _0809CB4E +_0809CB4C: + movs r0, #0 +_0809CB4E: + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TrySetDiveWarp + + thumb_func_start GetEventObjectScriptPointerPlayerFacing +GetEventObjectScriptPointerPlayerFacing: @ 0x0809CB58 + push {r4, r5, lr} + sub sp, #8 + bl GetPlayerMovementDirection + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r5, sp + mov r0, sp + bl GetInFrontOfPlayerPosition + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #2 + ldrsh r1, [r5, r2] + bl MapGridGetMetatileBehaviorAt + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r0, sp + adds r2, r4, #0 + bl GetInteractedEventObjectScript + add sp, #8 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetEventObjectScriptPointerPlayerFacing + + thumb_func_start SetCableClubWarp +SetCableClubWarp: @ 0x0809CB94 + push {r4, lr} + sub sp, #8 + bl GetPlayerMovementDirection + mov r4, sp + mov r0, sp + bl GetPlayerPosition + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #2 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileBehaviorAt + ldr r4, _0809CBD4 + adds r0, r4, #0 + mov r1, sp + bl GetWarpEventAtMapPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r4, #0 + mov r2, sp + bl SetupWarp + movs r0, #0 + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809CBD4: .4byte 0x02036FB8 + thumb_func_end SetCableClubWarp + diff --git a/asm/field_door.s b/asm/field_door.s new file mode 100644 index 0000000..44adc88 --- /dev/null +++ b/asm/field_door.s @@ -0,0 +1,784 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start CopyDoorTilesToVram +CopyDoorTilesToVram: @ 0x08089D64 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #3] + cmp r0, #2 + bne _08089D84 + ldrh r1, [r1, #2] + ldr r0, [r2, #4] + adds r0, r0, r1 + ldr r1, _08089D80 + movs r2, #0x80 + bl CpuFastSet + b _08089D92 + .align 2, 0 +_08089D80: .4byte 0x06007E00 +_08089D84: + ldrh r1, [r1, #2] + ldr r0, [r2, #4] + adds r0, r0, r1 + ldr r1, _08089D98 + movs r2, #0x40 + bl CpuFastSet +_08089D92: + pop {r0} + bx r0 + .align 2, 0 +_08089D98: .4byte 0x06007F00 + thumb_func_end CopyDoorTilesToVram + + thumb_func_start door_build_blockdef +door_build_blockdef: @ 0x08089D9C + push {r4, r5, r6, lr} + adds r6, r0, #0 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + movs r4, #0 + adds r1, r6, #0 +_08089DA8: + ldrb r0, [r2] + lsls r0, r0, #0x1c + lsrs r3, r0, #0x10 + adds r2, #1 + adds r0, r5, r4 + orrs r3, r0 + strh r3, [r1] + adds r1, #2 + adds r4, #1 + cmp r4, #3 + ble _08089DA8 + cmp r4, #7 + bgt _08089DD6 + lsls r0, r4, #1 + adds r1, r0, r6 +_08089DC6: + ldrb r0, [r2] + lsls r3, r0, #0xc + adds r2, #1 + strh r3, [r1] + adds r1, #2 + adds r4, #1 + cmp r4, #7 + ble _08089DC6 +_08089DD6: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end door_build_blockdef + + thumb_func_start DrawCurrentDoorAnimFrame +DrawCurrentDoorAnimFrame: @ 0x08089DDC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x30 + adds r7, r1, #0 + mov sb, r2 + adds r5, r3, #0 + ldrb r0, [r0, #3] + cmp r0, #2 + bne _08089E58 + add r4, sp, #0x10 + movs r1, #0xfc + lsls r1, r1, #2 + adds r0, r4, #0 + adds r2, r5, #0 + bl door_build_blockdef + mov r6, sb + subs r6, #1 + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + bl DrawDoorMetatileAt + movs r1, #0xfd + lsls r1, r1, #2 + adds r0, r5, #4 + mov r8, r0 + adds r0, r4, #0 + mov r2, r8 + bl door_build_blockdef + adds r0, r7, #0 + mov r1, sb + adds r2, r4, #0 + bl DrawDoorMetatileAt + movs r1, #0xfe + lsls r1, r1, #2 + adds r0, r4, #0 + adds r2, r5, #0 + bl door_build_blockdef + adds r5, r7, #1 + adds r0, r5, #0 + adds r1, r6, #0 + adds r2, r4, #0 + bl DrawDoorMetatileAt + movs r1, #0xff + lsls r1, r1, #2 + adds r0, r4, #0 + mov r2, r8 + bl door_build_blockdef + adds r0, r5, #0 + mov r1, sb + adds r2, r4, #0 + bl DrawDoorMetatileAt + b _08089E86 +_08089E58: + movs r1, #0xfe + lsls r1, r1, #2 + mov r0, sp + adds r2, r5, #0 + bl door_build_blockdef + mov r1, sb + subs r1, #1 + adds r0, r7, #0 + mov r2, sp + bl DrawDoorMetatileAt + movs r1, #0xff + lsls r1, r1, #2 + adds r2, r5, #4 + mov r0, sp + bl door_build_blockdef + adds r0, r7, #0 + mov r1, sb + mov r2, sp + bl DrawDoorMetatileAt +_08089E86: + add sp, #0x30 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end DrawCurrentDoorAnimFrame + + thumb_func_start DrawClosedDoorTiles +DrawClosedDoorTiles: @ 0x08089E94 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + subs r7, r6, #1 + adds r0, r5, #0 + adds r1, r7, #0 + bl CurrentMapDrawMetatileAt + adds r0, r5, #0 + adds r1, r6, #0 + bl CurrentMapDrawMetatileAt + ldrb r0, [r4, #3] + cmp r0, #2 + bne _08089EC6 + adds r4, r5, #1 + adds r0, r4, #0 + adds r1, r7, #0 + bl CurrentMapDrawMetatileAt + adds r0, r4, #0 + adds r1, r6, #0 + bl CurrentMapDrawMetatileAt +_08089EC6: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end DrawClosedDoorTiles + + thumb_func_start DrawDoor +DrawDoor: @ 0x08089ECC + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + adds r7, r3, #0 + ldrh r1, [r5, #2] + ldr r0, _08089F08 + cmp r1, r0 + bne _08089F14 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r7, #0 + bl DrawClosedDoorTiles + bl sub_0808A2C8 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08089F46 + ldr r0, _08089F0C + ldrh r1, [r0] + adds r1, #7 + ldr r0, _08089F10 + ldrh r2, [r0] + adds r2, #7 + adds r0, r4, #0 + bl DrawClosedDoorTiles + b _08089F46 + .align 2, 0 +_08089F08: .4byte 0x0000FFFF +_08089F0C: .4byte 0x02037280 +_08089F10: .4byte 0x02037282 +_08089F14: + adds r0, r4, #0 + adds r1, r5, #0 + bl CopyDoorTilesToVram + ldr r3, [r4, #8] + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r7, #0 + bl DrawCurrentDoorAnimFrame + bl sub_0808A2C8 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08089F46 + ldr r0, _08089F4C + ldrh r1, [r0] + adds r1, #7 + ldr r0, _08089F50 + ldrh r2, [r0] + adds r2, #7 + ldr r3, [r4, #8] + adds r0, r4, #0 + bl DrawCurrentDoorAnimFrame +_08089F46: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08089F4C: .4byte 0x02037280 +_08089F50: .4byte 0x02037282 + thumb_func_end DrawDoor + + thumb_func_start sub_08089F54 +sub_08089F54: @ 0x08089F54 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + adds r4, r2, #0 + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08089F7A + movs r2, #8 + ldrsh r1, [r4, r2] + lsls r1, r1, #2 + adds r1, r5, r1 + movs r0, #0xc + ldrsh r2, [r4, r0] + movs r0, #0xe + ldrsh r3, [r4, r0] + adds r0, r6, #0 + bl DrawDoor +_08089F7A: + movs r2, #0xa + ldrsh r1, [r4, r2] + movs r2, #8 + ldrsh r0, [r4, r2] + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r0, [r0] + cmp r1, r0 + bne _08089FA8 + movs r0, #0 + strh r0, [r4, #0xa] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r0, [r0] + cmp r0, #0 + bne _08089FAE + movs r0, #0 + b _08089FB0 +_08089FA8: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] +_08089FAE: + movs r0, #1 +_08089FB0: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08089F54 + + thumb_func_start Task_AnimateDoor +Task_AnimateDoor: @ 0x08089FB8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r2, r4, #2 + adds r2, r2, r4 + lsls r2, r2, #3 + ldr r0, _08089FEC + adds r2, r2, r0 + ldrh r1, [r2] + lsls r1, r1, #0x10 + ldrh r0, [r2, #2] + orrs r1, r0 + ldrh r0, [r2, #4] + lsls r0, r0, #0x10 + ldrh r3, [r2, #6] + orrs r0, r3 + bl sub_08089F54 + cmp r0, #0 + bne _08089FE6 + adds r0, r4, #0 + bl DestroyTask +_08089FE6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08089FEC: .4byte 0x03005B68 + thumb_func_end Task_AnimateDoor + + thumb_func_start GetLastDoorFrame +GetLastDoorFrame: @ 0x08089FF0 + push {lr} + adds r1, r0, #0 + b _08089FF8 +_08089FF6: + adds r1, #4 +_08089FF8: + ldrb r0, [r1] + cmp r0, #0 + bne _08089FF6 + subs r0, r1, #4 + pop {r1} + bx r1 + thumb_func_end GetLastDoorFrame + + thumb_func_start GetDoorGraphics +GetDoorGraphics: @ 0x0808A004 + push {lr} + adds r2, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + b _0808A01A +_0808A00E: + ldrh r0, [r2] + cmp r0, r1 + bne _0808A018 + adds r0, r2, #0 + b _0808A022 +_0808A018: + adds r2, #0xc +_0808A01A: + ldr r0, [r2, #4] + cmp r0, #0 + bne _0808A00E + movs r0, #0 +_0808A022: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetDoorGraphics + + thumb_func_start StartDoorAnimationTask +StartDoorAnimationTask: @ 0x0808A028 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r5, r1, #0 + adds r7, r2, #0 + mov r8, r3 + ldr r4, _0808A074 + adds r0, r4, #0 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0808A07C + adds r0, r4, #0 + movs r1, #0x50 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r2, _0808A078 + adds r1, r1, r2 + strh r7, [r1, #0xc] + mov r2, r8 + strh r2, [r1, #0xe] + strh r5, [r1, #2] + lsrs r2, r5, #0x10 + strh r2, [r1] + strh r6, [r1, #6] + lsrs r2, r6, #0x10 + strh r2, [r1, #4] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + b _0808A080 + .align 2, 0 +_0808A074: .4byte 0x08089FB9 +_0808A078: .4byte 0x03005B68 +_0808A07C: + movs r0, #1 + rsbs r0, r0, #0 +_0808A080: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end StartDoorAnimationTask + + thumb_func_start DrawClosedDoor +DrawClosedDoor: @ 0x0808A08C + push {lr} + bl DrawClosedDoorTiles + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end DrawClosedDoor + + thumb_func_start DrawOpenedDoor +DrawOpenedDoor: @ 0x0808A098 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + adds r0, r5, #0 + adds r1, r6, #0 + bl MapGridGetMetatileIdAt + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl GetDoorGraphics + adds r4, r0, #0 + cmp r4, #0 + beq _0808A0CE + ldr r1, _0808A0D4 + adds r0, r1, #0 + bl GetLastDoorFrame + adds r1, r0, #0 + adds r0, r4, #0 + adds r2, r5, #0 + adds r3, r6, #0 + bl DrawDoor +_0808A0CE: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0808A0D4: .4byte 0x0846F3AC + thumb_func_end DrawOpenedDoor + + thumb_func_start StartDoorOpenAnimation +StartDoorOpenAnimation: @ 0x0808A0D8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + adds r0, r5, #0 + adds r1, r6, #0 + bl MapGridGetMetatileIdAt + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl GetDoorGraphics + adds r2, r0, #0 + adds r4, r2, #0 + cmp r2, #0 + bne _0808A102 + movs r0, #1 + rsbs r0, r0, #0 + b _0808A124 +_0808A102: + ldrb r0, [r2, #3] + cmp r0, #2 + beq _0808A114 + ldr r1, _0808A110 + adds r0, r2, #0 + b _0808A118 + .align 2, 0 +_0808A110: .4byte 0x0846F3AC +_0808A114: + ldr r1, _0808A12C + adds r0, r4, #0 +_0808A118: + adds r2, r5, #0 + adds r3, r6, #0 + bl StartDoorAnimationTask + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 +_0808A124: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0808A12C: .4byte 0x0846F3D4 + thumb_func_end StartDoorOpenAnimation + + thumb_func_start StartDoorCloseAnimation +StartDoorCloseAnimation: @ 0x0808A130 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + adds r0, r5, #0 + adds r1, r6, #0 + bl MapGridGetMetatileIdAt + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl GetDoorGraphics + cmp r0, #0 + beq _0808A164 + ldr r1, _0808A160 + adds r2, r5, #0 + adds r3, r6, #0 + bl StartDoorAnimationTask + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + b _0808A168 + .align 2, 0 +_0808A160: .4byte 0x0846F3C0 +_0808A164: + movs r0, #1 + rsbs r0, r0, #0 +_0808A168: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end StartDoorCloseAnimation + + thumb_func_start cur_mapdata_get_door_x2_at +cur_mapdata_get_door_x2_at: @ 0x0808A170 + push {r4, lr} + adds r4, r0, #0 + adds r0, r1, #0 + adds r1, r2, #0 + bl MapGridGetMetatileIdAt + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl GetDoorGraphics + cmp r0, #0 + beq _0808A194 + ldrb r0, [r0, #2] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + b _0808A198 +_0808A194: + movs r0, #1 + rsbs r0, r0, #0 +_0808A198: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end cur_mapdata_get_door_x2_at + + thumb_func_start unref_sub_808A83C +unref_sub_808A83C: @ 0x0808A1A0 + push {lr} + adds r3, r0, #0 + adds r2, r1, #0 + ldr r0, _0808A1B4 + adds r1, r3, #0 + bl StartDoorOpenAnimation + pop {r0} + bx r0 + .align 2, 0 +_0808A1B4: .4byte 0x0846F594 + thumb_func_end unref_sub_808A83C + + thumb_func_start FieldSetDoorOpened +FieldSetDoorOpened: @ 0x0808A1B8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsDoor + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808A1DA + ldr r0, _0808A1E0 + adds r1, r4, #0 + adds r2, r5, #0 + bl DrawOpenedDoor +_0808A1DA: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0808A1E0: .4byte 0x0846F594 + thumb_func_end FieldSetDoorOpened + + thumb_func_start FieldSetDoorClosed +FieldSetDoorClosed: @ 0x0808A1E4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsDoor + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808A206 + ldr r0, _0808A20C + adds r1, r4, #0 + adds r2, r5, #0 + bl DrawClosedDoor +_0808A206: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0808A20C: .4byte 0x0846F594 + thumb_func_end FieldSetDoorClosed + + thumb_func_start FieldAnimateDoorClose +FieldAnimateDoorClose: @ 0x0808A210 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsDoor + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808A23C + ldr r0, _0808A238 + adds r1, r4, #0 + adds r2, r5, #0 + bl StartDoorCloseAnimation + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + b _0808A240 + .align 2, 0 +_0808A238: .4byte 0x0846F594 +_0808A23C: + movs r0, #1 + rsbs r0, r0, #0 +_0808A240: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end FieldAnimateDoorClose + + thumb_func_start FieldAnimateDoorOpen +FieldAnimateDoorOpen: @ 0x0808A248 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsDoor + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808A274 + ldr r0, _0808A270 + adds r1, r4, #0 + adds r2, r5, #0 + bl StartDoorOpenAnimation + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + b _0808A278 + .align 2, 0 +_0808A270: .4byte 0x0846F594 +_0808A274: + movs r0, #1 + rsbs r0, r0, #0 +_0808A278: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end FieldAnimateDoorOpen + + thumb_func_start FieldIsDoorAnimationRunning +FieldIsDoorAnimationRunning: @ 0x0808A280 + push {lr} + ldr r0, _0808A290 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0808A290: .4byte 0x08089FB9 + thumb_func_end FieldIsDoorAnimationRunning + + thumb_func_start GetDoorSoundEffect +GetDoorSoundEffect: @ 0x0808A294 + push {lr} + adds r3, r0, #0 + adds r2, r1, #0 + ldr r0, _0808A2B4 + adds r1, r3, #0 + bl cur_mapdata_get_door_x2_at + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0808A2BC + cmp r0, #1 + bne _0808A2B8 + movs r0, #0x12 + b _0808A2C2 + .align 2, 0 +_0808A2B4: .4byte 0x0846F594 +_0808A2B8: + cmp r0, #2 + beq _0808A2C0 +_0808A2BC: + movs r0, #8 + b _0808A2C2 +_0808A2C0: + movs r0, #0x2f +_0808A2C2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetDoorSoundEffect + + thumb_func_start sub_0808A2C8 +sub_0808A2C8: @ 0x0808A2C8 + push {lr} + ldr r0, _0808A2E8 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808A2F4 + ldr r0, _0808A2EC + ldr r0, [r0] + ldrh r1, [r0, #4] + ldr r0, _0808A2F0 + cmp r1, r0 + bne _0808A2F4 + movs r0, #1 + b _0808A2F6 + .align 2, 0 +_0808A2E8: .4byte 0x00004002 +_0808A2EC: .4byte 0x03005AEC +_0808A2F0: .4byte 0x0000101A +_0808A2F4: + movs r0, #0 +_0808A2F6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0808A2C8 + diff --git a/asm/field_effect.s b/asm/field_effect.s new file mode 100644 index 0000000..d145d21 --- /dev/null +++ b/asm/field_effect.s @@ -0,0 +1,9007 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start FieldEffectStart +FieldEffectStart: @ 0x080B5270 + push {r4, r5, lr} + sub sp, #8 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl FieldEffectActiveListAdd + ldr r0, _080B52B0 + lsls r4, r4, #2 + adds r4, r4, r0 + ldr r0, [r4] + str r0, [sp] + add r4, sp, #4 + ldr r5, _080B52B4 +_080B528E: + ldr r0, [sp] + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r2, [r0] + mov r0, sp + adds r1, r4, #0 + bl _call_via_r2 + thumb_func_end FieldEffectStart + + thumb_func_start sub_080B52A0 +sub_080B52A0: @ 0x080B52A0 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B528E + ldr r0, [sp, #4] + add sp, #8 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080B52B0: .4byte 0x08289F5C +_080B52B4: .4byte 0x08536E9C + thumb_func_end sub_080B52A0 + + thumb_func_start FieldEffectCmd_loadtiles +FieldEffectCmd_loadtiles: @ 0x080B52B8 + push {lr} + ldr r1, [r0] + adds r1, #1 + str r1, [r0] + bl FieldEffectScript_LoadTiles + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end FieldEffectCmd_loadtiles + + thumb_func_start FieldEffectCmd_loadfadedpal +FieldEffectCmd_loadfadedpal: @ 0x080B52CC + push {lr} + ldr r1, [r0] + adds r1, #1 + str r1, [r0] + bl FieldEffectScript_LoadFadedPalette + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end FieldEffectCmd_loadfadedpal + + thumb_func_start FieldEffectCmd_loadpal +FieldEffectCmd_loadpal: @ 0x080B52E0 + push {lr} + ldr r1, [r0] + adds r1, #1 + str r1, [r0] + bl FieldEffectScript_LoadPalette + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end FieldEffectCmd_loadpal + + thumb_func_start FieldEffectCmd_callnative +FieldEffectCmd_callnative: @ 0x080B52F4 + push {lr} + ldr r2, [r0] + adds r2, #1 + str r2, [r0] + bl FieldEffectScript_CallNative + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end FieldEffectCmd_callnative + + thumb_func_start FieldEffectCmd_end +FieldEffectCmd_end: @ 0x080B5308 + movs r0, #0 + bx lr + thumb_func_end FieldEffectCmd_end + + thumb_func_start FieldEffectCmd_loadgfx_callnative +FieldEffectCmd_loadgfx_callnative: @ 0x080B530C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r0, [r4] + adds r0, #1 + str r0, [r4] + adds r0, r4, #0 + bl FieldEffectScript_LoadTiles + adds r0, r4, #0 + bl FieldEffectScript_LoadFadedPalette + adds r0, r4, #0 + adds r1, r5, #0 + bl FieldEffectScript_CallNative + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end FieldEffectCmd_loadgfx_callnative + + thumb_func_start FieldEffectCmd_loadtiles_callnative +FieldEffectCmd_loadtiles_callnative: @ 0x080B5334 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r0, [r4] + adds r0, #1 + str r0, [r4] + adds r0, r4, #0 + bl FieldEffectScript_LoadTiles + adds r0, r4, #0 + adds r1, r5, #0 + bl FieldEffectScript_CallNative + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end FieldEffectCmd_loadtiles_callnative + + thumb_func_start FieldEffectCmd_loadfadedpal_callnative +FieldEffectCmd_loadfadedpal_callnative: @ 0x080B5358 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r0, [r4] + adds r0, #1 + str r0, [r4] + adds r0, r4, #0 + bl FieldEffectScript_LoadFadedPalette + adds r0, r4, #0 + adds r1, r5, #0 + bl FieldEffectScript_CallNative + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end FieldEffectCmd_loadfadedpal_callnative + + thumb_func_start FieldEffectScript_ReadWord +FieldEffectScript_ReadWord: @ 0x080B537C + ldr r2, [r0] + ldrb r0, [r2] + ldrb r1, [r2, #1] + lsls r1, r1, #8 + adds r0, r0, r1 + ldrb r1, [r2, #2] + lsls r1, r1, #0x10 + adds r0, r0, r1 + ldrb r1, [r2, #3] + lsls r1, r1, #0x18 + adds r0, r0, r1 + bx lr + thumb_func_end FieldEffectScript_ReadWord + + thumb_func_start FieldEffectScript_LoadTiles +FieldEffectScript_LoadTiles: @ 0x080B5394 + push {r4, r5, lr} + adds r4, r0, #0 + bl FieldEffectScript_ReadWord + adds r5, r0, #0 + ldrh r0, [r5, #6] + bl GetSpriteTileStartByTag + lsls r0, r0, #0x10 + ldr r1, _080B53C0 + cmp r0, r1 + bne _080B53B2 + adds r0, r5, #0 + bl LoadSpriteSheet +_080B53B2: + ldr r0, [r4] + adds r0, #4 + str r0, [r4] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B53C0: .4byte 0xFFFF0000 + thumb_func_end FieldEffectScript_LoadTiles + + thumb_func_start FieldEffectScript_LoadFadedPalette +FieldEffectScript_LoadFadedPalette: @ 0x080B53C4 + push {r4, r5, lr} + adds r5, r0, #0 + bl FieldEffectScript_ReadWord + adds r4, r0, #0 + bl LoadSpritePalette + ldrh r0, [r4, #4] + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl UpdateSpritePaletteWithWeather + ldr r0, [r5] + adds r0, #4 + str r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end FieldEffectScript_LoadFadedPalette + + thumb_func_start FieldEffectScript_LoadPalette +FieldEffectScript_LoadPalette: @ 0x080B53EC + push {r4, lr} + adds r4, r0, #0 + bl FieldEffectScript_ReadWord + bl LoadSpritePalette + ldr r0, [r4] + adds r0, #4 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + thumb_func_end FieldEffectScript_LoadPalette + + thumb_func_start FieldEffectScript_CallNative +FieldEffectScript_CallNative: @ 0x080B5404 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl FieldEffectScript_ReadWord + bl _call_via_r0 + str r0, [r5] + thumb_func_end FieldEffectScript_CallNative + + thumb_func_start CreateTeleportFieldEffectTask +CreateTeleportFieldEffectTask: @ 0x080B5414 + ldr r0, [r4] + adds r0, #4 + str r0, [r4] + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end CreateTeleportFieldEffectTask + + thumb_func_start FieldEffectFreeGraphicsResources +FieldEffectFreeGraphicsResources: @ 0x080B5420 + push {r4, r5, lr} + adds r1, r0, #0 + adds r1, #0x40 + ldrh r5, [r1] + ldrb r4, [r0, #5] + lsrs r4, r4, #4 + bl DestroySprite + adds r0, r5, #0 + bl FieldEffectFreeTilesIfUnused + adds r0, r4, #0 + bl FieldEffectFreePaletteIfUnused + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end FieldEffectFreeGraphicsResources + + thumb_func_start FieldEffectStop +FieldEffectStop: @ 0x080B5444 + push {r4, lr} + lsls r4, r1, #0x18 + lsrs r4, r4, #0x18 + bl FieldEffectFreeGraphicsResources + adds r0, r4, #0 + bl FieldEffectActiveListRemove + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end FieldEffectStop + + thumb_func_start FieldEffectFreeTilesIfUnused +FieldEffectFreeTilesIfUnused: @ 0x080B545C + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r4, #0 + bl GetSpriteTileTagByTileStart + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldr r0, _080B54B8 + cmp r3, r0 + beq _080B54B0 + movs r2, #0 + ldr r5, _080B54BC +_080B5476: + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r1, r0, r5 + adds r0, r1, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _080B54A0 + adds r0, r1, #0 + adds r0, #0x3f + ldrb r0, [r0] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _080B54A0 + adds r0, r1, #0 + adds r0, #0x40 + ldrh r0, [r0] + cmp r4, r0 + beq _080B54B0 +_080B54A0: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x3f + bls _080B5476 + adds r0, r3, #0 + bl FreeSpriteTilesByTag +_080B54B0: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B54B8: .4byte 0x0000FFFF +_080B54BC: .4byte 0x020205AC + thumb_func_end FieldEffectFreeTilesIfUnused + + thumb_func_start FieldEffectFreePaletteIfUnused +FieldEffectFreePaletteIfUnused: @ 0x080B54C0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl GetSpritePaletteTagByPaletteNum + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, _080B5510 + cmp r5, r0 + beq _080B5508 + movs r2, #0 + ldr r6, _080B5514 + adds r3, r4, #0 +_080B54DC: + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r1, r0, r6 + adds r0, r1, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _080B54F8 + ldrb r0, [r1, #5] + lsrs r0, r0, #4 + cmp r0, r3 + beq _080B5508 +_080B54F8: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x3f + bls _080B54DC + adds r0, r5, #0 + bl FreeSpritePaletteByTag +_080B5508: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080B5510: .4byte 0x0000FFFF +_080B5514: .4byte 0x020205AC + thumb_func_end FieldEffectFreePaletteIfUnused + + thumb_func_start FieldEffectActiveListClear +FieldEffectActiveListClear: @ 0x080B5518 + push {r4, lr} + movs r2, #0 + ldr r4, _080B5538 + movs r3, #0xff +_080B5520: + adds r0, r2, r4 + ldrb r1, [r0] + orrs r1, r3 + strb r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x1f + bls _080B5520 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B5538: .4byte 0x03000F58 + thumb_func_end FieldEffectActiveListClear + + thumb_func_start FieldEffectActiveListAdd +FieldEffectActiveListAdd: @ 0x080B553C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + movs r2, #0 + ldr r4, _080B5554 +_080B5546: + adds r1, r2, r4 + ldrb r0, [r1] + cmp r0, #0xff + bne _080B5558 + strb r3, [r1] + b _080B5562 + .align 2, 0 +_080B5554: .4byte 0x03000F58 +_080B5558: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x1f + bls _080B5546 +_080B5562: + pop {r4} + pop {r0} + bx r0 + thumb_func_end FieldEffectActiveListAdd + + thumb_func_start FieldEffectActiveListRemove +FieldEffectActiveListRemove: @ 0x080B5568 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + movs r2, #0 + ldr r4, _080B5584 + movs r5, #0xff +_080B5574: + adds r1, r2, r4 + ldrb r0, [r1] + cmp r0, r3 + bne _080B5588 + orrs r0, r5 + strb r0, [r1] + b _080B5592 + .align 2, 0 +_080B5584: .4byte 0x03000F58 +_080B5588: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x1f + bls _080B5574 +_080B5592: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end FieldEffectActiveListRemove + + thumb_func_start FieldEffectActiveListContains +FieldEffectActiveListContains: @ 0x080B5598 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + movs r1, #0 + ldr r3, _080B55B0 +_080B55A2: + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _080B55B4 + movs r0, #1 + b _080B55C0 + .align 2, 0 +_080B55B0: .4byte 0x03000F58 +_080B55B4: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x1f + bls _080B55A2 + movs r0, #0 +_080B55C0: + pop {r1} + bx r1 + thumb_func_end FieldEffectActiveListContains + + thumb_func_start CreateTrainerSprite +CreateTrainerSprite: @ 0x080B55C4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x18 + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + mov sb, r3 + ldr r7, [sp, #0x34] + lsls r4, r4, #0x18 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + mov r0, sb + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + lsrs r4, r4, #0x15 + ldr r3, _080B564C + mov r8, r3 + add r8, r4 + mov r0, r8 + adds r1, r7, #0 + bl LoadCompressedSpritePaletteOverrideBuffer + ldr r0, _080B5650 + adds r4, r4, r0 + adds r0, r4, #0 + adds r1, r7, #0 + bl LoadCompressedSpriteSheetOverrideBuffer + mov r1, sp + ldrh r0, [r4, #6] + movs r2, #0 + strh r0, [r1] + mov r3, r8 + ldrh r0, [r3, #4] + strh r0, [r1, #2] + ldr r0, _080B5654 + str r0, [sp, #4] + ldr r0, _080B5658 + str r0, [sp, #8] + str r2, [sp, #0xc] + ldr r0, _080B565C + str r0, [sp, #0x10] + ldr r0, _080B5660 + str r0, [sp, #0x14] + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + lsls r6, r6, #0x10 + asrs r6, r6, #0x10 + mov r0, sp + adds r1, r5, #0 + adds r2, r6, #0 + mov r3, sb + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #0x18 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080B564C: .4byte 0x082D91CC +_080B5650: .4byte 0x082D8EE4 +_080B5654: .4byte 0x08536EBC +_080B5658: .4byte 0x082BF304 +_080B565C: .4byte 0x082BF310 +_080B5660: .4byte 0x08007141 + thumb_func_end CreateTrainerSprite + + thumb_func_start LoadTrainerGfx_TrainerCard +LoadTrainerGfx_TrainerCard: @ 0x080B5664 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r1, r2, #0 + lsls r4, r4, #0x18 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + ldr r0, _080B5694 + lsrs r4, r4, #0x15 + adds r0, r4, r0 + ldr r0, [r0] + bl LZDecompressWram + ldr r0, _080B5698 + adds r4, r4, r0 + ldr r0, [r4] + adds r1, r5, #0 + movs r2, #0x20 + bl LoadCompressedPalette + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B5694: .4byte 0x082D8EE4 +_080B5698: .4byte 0x082D91CC + thumb_func_end LoadTrainerGfx_TrainerCard + + thumb_func_start AddNewGameBirchObject +AddNewGameBirchObject: @ 0x080B569C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + ldr r0, _080B56D4 + bl LoadSpritePalette + ldr r0, _080B56D8 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + adds r1, r4, #0 + adds r2, r5, #0 + adds r3, r6, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080B56D4: .4byte 0x08536EDC +_080B56D8: .4byte 0x08536EF0 + thumb_func_end AddNewGameBirchObject + + thumb_func_start CreateMonSprite_PicBox +CreateMonSprite_PicBox: @ 0x080B56DC + push {r4, r5, lr} + sub sp, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r3, #0x80 + lsls r3, r3, #8 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + str r1, [sp] + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + str r2, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + ldr r1, _080B572C + lsls r4, r0, #3 + adds r4, r4, r1 + ldrh r1, [r4, #4] + str r1, [sp, #0xc] + movs r1, #0 + adds r2, r3, #0 + movs r3, #1 + bl CreateMonPicSprite_HandleDeoxys + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldrh r0, [r4, #4] + bl IndexOfSpritePaletteTag + adds r0, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl PreservePaletteInWeather + ldr r0, _080B5730 + cmp r5, r0 + beq _080B5734 + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + b _080B5736 + .align 2, 0 +_080B572C: .4byte 0x082D6F08 +_080B5730: .4byte 0x0000FFFF +_080B5734: + movs r0, #0x40 +_080B5736: + add sp, #0x10 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CreateMonSprite_PicBox + + thumb_func_start CreateMonSprite_FieldMove +CreateMonSprite_FieldMove: @ 0x080B5740 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + sub sp, #0x10 + adds r6, r0, #0 + mov sb, r1 + mov sl, r2 + adds r4, r3, #0 + ldr r5, [sp, #0x2c] + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + adds r0, r6, #0 + bl GetMonSpritePalStructFromOtIdPersonality + mov r8, r0 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + str r4, [sp] + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + str r5, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + mov r1, r8 + ldrh r0, [r1, #4] + str r0, [sp, #0xc] + adds r0, r6, #0 + mov r1, sb + mov r2, sl + movs r3, #1 + bl CreateMonPicSprite_HandleDeoxys + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + mov r1, r8 + ldrh r0, [r1, #4] + bl IndexOfSpritePaletteTag + adds r0, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl PreservePaletteInWeather + ldr r0, _080B57B0 + cmp r4, r0 + beq _080B57B4 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + b _080B57B6 + .align 2, 0 +_080B57B0: .4byte 0x0000FFFF +_080B57B4: + movs r0, #0x40 +_080B57B6: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CreateMonSprite_FieldMove + + thumb_func_start FreeResourcesAndDestroySprite +FreeResourcesAndDestroySprite: @ 0x080B57C8 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + bl ResetPreservedPalettesInWeather + ldrb r0, [r4, #1] + lsls r0, r0, #0x1e + cmp r0, #0 + beq _080B57E6 + ldrb r0, [r4, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix +_080B57E6: + adds r0, r5, #0 + bl FreeAndDestroyMonPicSprite + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end FreeResourcesAndDestroySprite + + thumb_func_start MultiplyInvertedPaletteRGBComponents +MultiplyInvertedPaletteRGBComponents: @ 0x080B57F4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r4, _080B5878 + lsrs r0, r0, #0xf + adds r4, r0, r4 + ldrh r4, [r4] + movs r5, #0x1f + mov sb, r5 + mov r8, r4 + mov r6, r8 + ands r6, r5 + mov r8, r6 + movs r6, #0xf8 + lsls r6, r6, #2 + ands r6, r4 + lsrs r6, r6, #5 + movs r5, #0xf8 + lsls r5, r5, #7 + ands r4, r5 + lsrs r4, r4, #0xa + mov r7, sb + mov r5, r8 + subs r7, r7, r5 + mov ip, r7 + mov r7, ip + muls r7, r1, r7 + adds r1, r7, #0 + asrs r1, r1, #4 + add r8, r1 + mov r5, sb + subs r1, r5, r6 + muls r1, r2, r1 + asrs r1, r1, #4 + adds r6, r6, r1 + subs r5, r5, r4 + mov sb, r5 + mov r1, sb + muls r1, r3, r1 + asrs r1, r1, #4 + adds r4, r4, r1 + mov r7, r8 + lsls r7, r7, #0x10 + lsls r6, r6, #0x15 + orrs r6, r7 + lsls r4, r4, #0x1a + orrs r4, r6 + lsrs r4, r4, #0x10 + ldr r1, _080B587C + adds r0, r0, r1 + strh r4, [r0] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080B5878: .4byte 0x020373B4 +_080B587C: .4byte 0x020377B4 + thumb_func_end MultiplyInvertedPaletteRGBComponents + + thumb_func_start MultiplyPaletteRGBComponents +MultiplyPaletteRGBComponents: @ 0x080B5880 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + lsls r0, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r4, _080B58F0 + lsrs r0, r0, #0xf + adds r4, r0, r4 + ldrh r4, [r4] + movs r5, #0x1f + mov r8, r5 + mov r6, r8 + ands r6, r4 + mov r8, r6 + movs r5, #0xf8 + lsls r5, r5, #2 + ands r5, r4 + lsrs r5, r5, #5 + movs r6, #0xf8 + lsls r6, r6, #7 + ands r4, r6 + lsrs r4, r4, #0xa + mov r6, r8 + muls r6, r1, r6 + adds r1, r6, #0 + asrs r1, r1, #4 + mov r6, r8 + subs r6, r6, r1 + adds r1, r5, #0 + muls r1, r2, r1 + asrs r1, r1, #4 + subs r5, r5, r1 + adds r1, r4, #0 + muls r1, r3, r1 + asrs r1, r1, #4 + subs r4, r4, r1 + lsls r6, r6, #0x10 + lsls r5, r5, #0x15 + orrs r5, r6 + lsls r4, r4, #0x1a + orrs r4, r5 + lsrs r4, r4, #0x10 + ldr r1, _080B58F4 + adds r0, r0, r1 + strh r4, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080B58F0: .4byte 0x020373B4 +_080B58F4: .4byte 0x020377B4 + thumb_func_end MultiplyPaletteRGBComponents + + thumb_func_start FldEff_PokecenterHeal +FldEff_PokecenterHeal: @ 0x080B58F8 + push {r4, lr} + bl CalculatePlayerPartyCount + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _080B5934 + movs r1, #0xff + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080B5938 + adds r1, r1, r0 + strh r4, [r1, #0xa] + movs r0, #0x5d + strh r0, [r1, #0xc] + movs r0, #0x24 + strh r0, [r1, #0xe] + movs r0, #0x7c + strh r0, [r1, #0x10] + movs r0, #0x18 + strh r0, [r1, #0x12] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080B5934: .4byte 0x080B593D +_080B5938: .4byte 0x03005B60 + thumb_func_end FldEff_PokecenterHeal + + thumb_func_start Task_HallOfFameRecord +Task_HallOfFameRecord: @ 0x080B593C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080B5964 + adds r1, r1, r0 + ldr r2, _080B5968 + movs r3, #8 + ldrsh r0, [r1, r3] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r2, [r0] + adds r0, r1, #0 + bl _call_via_r2 + pop {r0} + thumb_func_end Task_HallOfFameRecord + + thumb_func_start sub_080B5960 +sub_080B5960: @ 0x080B5960 + bx r0 + .align 2, 0 +_080B5964: .4byte 0x03005B60 +_080B5968: .4byte 0x08537010 + thumb_func_end sub_080B5960 + + thumb_func_start PokecenterHealEffect_0 +PokecenterHealEffect_0: @ 0x080B596C + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r1, #0xa + ldrsh r0, [r4, r1] + movs r2, #0xc + ldrsh r1, [r4, r2] + movs r3, #0xe + ldrsh r2, [r4, r3] + movs r3, #1 + bl CreatePokeballGlowSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x14] + movs r1, #0x10 + ldrsh r0, [r4, r1] + movs r2, #0x12 + ldrsh r1, [r4, r2] + bl PokecenterHealEffectHelper + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x16] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PokecenterHealEffect_0 + + thumb_func_start PokecenterHealEffect_1 +PokecenterHealEffect_1: @ 0x080B59A8 + push {r4, lr} + adds r2, r0, #0 + ldr r3, _080B59E0 + movs r1, #0x14 + ldrsh r0, [r2, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + movs r4, #0x2e + ldrsh r0, [r1, r4] + cmp r0, #1 + ble _080B59DA + movs r0, #0x16 + ldrsh r1, [r2, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r0, #0x2e] + adds r1, #1 + strh r1, [r0, #0x2e] + ldrh r0, [r2, #8] + adds r0, #1 + strh r0, [r2, #8] +_080B59DA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B59E0: .4byte 0x020205AC + thumb_func_end PokecenterHealEffect_1 + + thumb_func_start PokecenterHealEffect_2 +PokecenterHealEffect_2: @ 0x080B59E4 + push {lr} + adds r3, r0, #0 + ldr r2, _080B5A08 + movs r0, #0x14 + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0x2e + ldrsh r0, [r0, r1] + cmp r0, #4 + ble _080B5A04 + ldrh r0, [r3, #8] + adds r0, #1 + strh r0, [r3, #8] +_080B5A04: + pop {r0} + bx r0 + .align 2, 0 +_080B5A08: .4byte 0x020205AC + thumb_func_end PokecenterHealEffect_2 + + thumb_func_start PokecenterHealEffect_3 +PokecenterHealEffect_3: @ 0x080B5A0C + push {lr} + ldr r2, _080B5A44 + movs r3, #0x14 + ldrsh r1, [r0, r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r2 + movs r2, #0x2e + ldrsh r0, [r1, r2] + cmp r0, #6 + ble _080B5A3E + adds r0, r1, #0 + bl DestroySprite + movs r0, #0x19 + bl FieldEffectActiveListRemove + ldr r0, _080B5A48 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_080B5A3E: + pop {r0} + bx r0 + .align 2, 0 +_080B5A44: .4byte 0x020205AC +_080B5A48: .4byte 0x080B593D + thumb_func_end PokecenterHealEffect_3 + + thumb_func_start FldEff_HallOfFameRecord +FldEff_HallOfFameRecord: @ 0x080B5A4C + push {r4, lr} + bl CalculatePlayerPartyCount + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _080B5A80 + movs r1, #0xff + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080B5A84 + adds r1, r1, r0 + strh r4, [r1, #0xa] + movs r0, #0x75 + strh r0, [r1, #0xc] + movs r0, #0x34 + strh r0, [r1, #0xe] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080B5A80: .4byte 0x080B5A89 +_080B5A84: .4byte 0x03005B60 + thumb_func_end FldEff_HallOfFameRecord + + thumb_func_start Task_PokecenterHeal +Task_PokecenterHeal: @ 0x080B5A88 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080B5AB0 + adds r1, r1, r0 + ldr r2, _080B5AB4 + movs r3, #8 + ldrsh r0, [r1, r3] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r2, [r0] + adds r0, r1, #0 + bl _call_via_r2 + pop {r0} + thumb_func_end Task_PokecenterHeal + + thumb_func_start sub_080B5AAC +sub_080B5AAC: @ 0x080B5AAC + bx r0 + .align 2, 0 +_080B5AB0: .4byte 0x03005B60 +_080B5AB4: .4byte 0x08537020 + thumb_func_end sub_080B5AAC + + thumb_func_start HallOfFameRecordEffect_0 +HallOfFameRecordEffect_0: @ 0x080B5AB8 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r1, #0xa + ldrsh r0, [r4, r1] + movs r2, #0xc + ldrsh r1, [r4, r2] + movs r3, #0xe + ldrsh r2, [r4, r3] + movs r3, #0 + bl CreatePokeballGlowSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x14] + ldr r0, _080B5B28 + bl FindTaskIdByFunc + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #0x78 + movs r2, #0x18 + movs r3, #0 + bl HallOfFameRecordEffectHelper + adds r0, r4, #0 + movs r1, #0x28 + movs r2, #8 + movs r3, #1 + bl HallOfFameRecordEffectHelper + adds r0, r4, #0 + movs r1, #0x48 + movs r2, #8 + movs r3, #1 + bl HallOfFameRecordEffectHelper + adds r0, r4, #0 + movs r1, #0xa8 + movs r2, #8 + movs r3, #1 + bl HallOfFameRecordEffectHelper + adds r0, r4, #0 + movs r1, #0xc8 + movs r2, #8 + movs r3, #1 + bl HallOfFameRecordEffectHelper + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B5B28: .4byte 0x080B5A89 + thumb_func_end HallOfFameRecordEffect_0 + + thumb_func_start HallOfFameRecordEffect_1 +HallOfFameRecordEffect_1: @ 0x080B5B2C + push {lr} + adds r3, r0, #0 + ldr r2, _080B5B58 + movs r0, #0x14 + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0x2e + ldrsh r0, [r0, r1] + cmp r0, #1 + ble _080B5B52 + ldrh r0, [r3, #0x26] + adds r0, #1 + strh r0, [r3, #0x26] + ldrh r0, [r3, #8] + adds r0, #1 + strh r0, [r3, #8] +_080B5B52: + pop {r0} + bx r0 + .align 2, 0 +_080B5B58: .4byte 0x020205AC + thumb_func_end HallOfFameRecordEffect_1 + + thumb_func_start HallOfFameRecordEffect_2 +HallOfFameRecordEffect_2: @ 0x080B5B5C + push {lr} + adds r3, r0, #0 + ldr r2, _080B5B80 + movs r0, #0x14 + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0x2e + ldrsh r0, [r0, r1] + cmp r0, #4 + ble _080B5B7C + ldrh r0, [r3, #8] + adds r0, #1 + strh r0, [r3, #8] +_080B5B7C: + pop {r0} + bx r0 + .align 2, 0 +_080B5B80: .4byte 0x020205AC + thumb_func_end HallOfFameRecordEffect_2 + + thumb_func_start HallOfFameRecordEffect_3 +HallOfFameRecordEffect_3: @ 0x080B5B84 + push {lr} + ldr r2, _080B5BBC + movs r3, #0x14 + ldrsh r1, [r0, r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r2 + movs r2, #0x2e + ldrsh r0, [r1, r2] + cmp r0, #6 + ble _080B5BB6 + adds r0, r1, #0 + bl DestroySprite + movs r0, #0x3e + bl FieldEffectActiveListRemove + ldr r0, _080B5BC0 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_080B5BB6: + pop {r0} + bx r0 + .align 2, 0 +_080B5BBC: .4byte 0x020205AC +_080B5BC0: .4byte 0x080B5A89 + thumb_func_end HallOfFameRecordEffect_3 + + thumb_func_start CreatePokeballGlowSprite +CreatePokeballGlowSprite: @ 0x080B5BC4 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + mov r8, r0 + adds r4, r1, #0 + adds r5, r2, #0 + adds r6, r3, #0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + ldr r0, _080B5C10 + bl CreateInvisibleSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r2, _080B5C14 + adds r1, r1, r2 + strh r4, [r1, #0x24] + strh r5, [r1, #0x26] + strh r6, [r1, #0x38] + mov r2, r8 + strh r2, [r1, #0x3a] + strh r0, [r1, #0x3c] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080B5C10: .4byte 0x080B5C19 +_080B5C14: .4byte 0x020205AC + thumb_func_end CreatePokeballGlowSprite + + thumb_func_start SpriteCB_PokeballGlowEffect +SpriteCB_PokeballGlowEffect: @ 0x080B5C18 + push {lr} + ldr r2, _080B5C30 + movs r3, #0x2e + ldrsh r1, [r0, r3] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080B5C30: .4byte 0x08537030 + thumb_func_end SpriteCB_PokeballGlowEffect + + thumb_func_start PokeballGlowEffect_0 +PokeballGlowEffect_0: @ 0x080B5C34 + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x30] + movs r2, #0x30 + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _080B5C4C + subs r0, r1, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080B5CA8 +_080B5C4C: + movs r0, #0x19 + strh r0, [r4, #0x30] + ldr r0, _080B5CC0 + ldr r1, _080B5CC4 + movs r2, #0x32 + ldrsh r3, [r4, r2] + lsls r3, r3, #2 + adds r3, r3, r1 + ldrh r1, [r4, #0x24] + ldrh r2, [r3] + adds r1, r1, r2 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldrh r2, [r4, #0x26] + ldrh r3, [r3, #2] + adds r2, r2, r3 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + movs r3, #0 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080B5CC8 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r2, [r1, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + movs r2, #8 + orrs r0, r2 + strb r0, [r1, #5] + ldrh r0, [r4, #0x3c] + strh r0, [r1, #0x2e] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x3a] + subs r0, #1 + strh r0, [r4, #0x3a] + movs r0, #0x17 + bl PlaySE +_080B5CA8: + movs r1, #0x3a + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080B5CBA + movs r0, #0x20 + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] +_080B5CBA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B5CC0: .4byte 0x08536FB0 +_080B5CC4: .4byte 0x08537050 +_080B5CC8: .4byte 0x020205AC + thumb_func_end PokeballGlowEffect_0 + + thumb_func_start PokeballGlowEffect_1 +PokeballGlowEffect_1: @ 0x080B5CCC + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0x30] + subs r0, #1 + strh r0, [r1, #0x30] + lsls r0, r0, #0x10 + asrs r2, r0, #0x10 + cmp r2, #0 + bne _080B5CFC + ldrh r0, [r1, #0x2e] + adds r0, #1 + strh r0, [r1, #0x2e] + movs r0, #8 + strh r0, [r1, #0x30] + strh r2, [r1, #0x32] + strh r2, [r1, #0x34] + movs r2, #0x38 + ldrsh r0, [r1, r2] + cmp r0, #0 + beq _080B5CFC + movs r0, #0xb8 + lsls r0, r0, #1 + bl PlayFanfare +_080B5CFC: + pop {r0} + bx r0 + thumb_func_end PokeballGlowEffect_1 + + thumb_func_start PokeballGlowEffect_2 +PokeballGlowEffect_2: @ 0x080B5D00 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r7, r0, #0 + ldrh r0, [r7, #0x30] + subs r0, #1 + strh r0, [r7, #0x30] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080B5D30 + movs r0, #8 + strh r0, [r7, #0x30] + ldrh r0, [r7, #0x32] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strh r0, [r7, #0x32] + cmp r0, #0 + bne _080B5D30 + ldrh r0, [r7, #0x34] + adds r0, #1 + strh r0, [r7, #0x34] +_080B5D30: + ldrh r4, [r7, #0x32] + adds r4, #3 + movs r0, #3 + mov r8, r0 + mov r1, r8 + ands r4, r1 + ldr r3, _080B5E28 + mov sl, r3 + mov r0, sl + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #4 + movs r1, #0x84 + lsls r1, r1, #0x11 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + ldr r6, _080B5E2C + adds r1, r4, r6 + ldrb r1, [r1] + ldr r5, _080B5E30 + adds r2, r4, r5 + ldrb r2, [r2] + ldr r3, _080B5E34 + mov sb, r3 + add r4, sb + ldrb r3, [r4] + bl MultiplyInvertedPaletteRGBComponents + ldrh r4, [r7, #0x32] + adds r4, #2 + mov r0, r8 + ands r4, r0 + mov r0, sl + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #4 + movs r1, #0x83 + lsls r1, r1, #0x11 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + adds r1, r4, r6 + ldrb r1, [r1] + adds r2, r4, r5 + ldrb r2, [r2] + add r4, sb + ldrb r3, [r4] + bl MultiplyInvertedPaletteRGBComponents + ldrh r4, [r7, #0x32] + adds r4, #1 + mov r3, r8 + ands r4, r3 + mov r0, sl + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #4 + movs r1, #0x81 + lsls r1, r1, #0x11 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + adds r1, r4, r6 + ldrb r1, [r1] + adds r2, r4, r5 + ldrb r2, [r2] + add r4, sb + ldrb r3, [r4] + bl MultiplyInvertedPaletteRGBComponents + ldrh r4, [r7, #0x32] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r0, sl + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #4 + ldr r3, _080B5E38 + adds r0, r0, r3 + lsrs r0, r0, #0x10 + adds r6, r4, r6 + ldrb r6, [r6] + adds r5, r4, r5 + ldrb r5, [r5] + add r4, sb + ldrb r4, [r4] + adds r1, r6, #0 + adds r2, r5, #0 + adds r3, r4, #0 + bl MultiplyInvertedPaletteRGBComponents + mov r0, sl + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #4 + ldr r1, _080B5E3C + adds r0, r0, r1 + lsrs r0, r0, #0x10 + adds r1, r6, #0 + adds r2, r5, #0 + adds r3, r4, #0 + bl MultiplyInvertedPaletteRGBComponents + movs r3, #0x34 + ldrsh r0, [r7, r3] + cmp r0, #2 + ble _080B5E1A + ldrh r0, [r7, #0x2e] + adds r0, #1 + movs r1, #0 + strh r0, [r7, #0x2e] + movs r0, #8 + strh r0, [r7, #0x30] + strh r1, [r7, #0x32] +_080B5E1A: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080B5E28: .4byte 0x00001007 +_080B5E2C: .4byte 0x08537068 +_080B5E30: .4byte 0x0853706C +_080B5E34: .4byte 0x08537070 +_080B5E38: .4byte 0x01050000 +_080B5E3C: .4byte 0x01030000 + thumb_func_end PokeballGlowEffect_2 + + thumb_func_start PokeballGlowEffect_3 +PokeballGlowEffect_3: @ 0x080B5E40 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r2, r0, #0 + ldrh r0, [r2, #0x30] + subs r0, #1 + strh r0, [r2, #0x30] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080B5E70 + movs r0, #8 + strh r0, [r2, #0x30] + ldrh r0, [r2, #0x32] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strh r0, [r2, #0x32] + cmp r0, #3 + bne _080B5E70 + ldrh r0, [r2, #0x2e] + adds r0, #1 + strh r0, [r2, #0x2e] + movs r0, #0x1e + strh r0, [r2, #0x30] +_080B5E70: + ldrh r4, [r2, #0x32] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _080B5F1C + mov r8, r0 + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #4 + movs r1, #0x84 + lsls r1, r1, #0x11 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + ldr r1, _080B5F20 + adds r1, r4, r1 + ldrb r6, [r1] + ldr r1, _080B5F24 + adds r1, r4, r1 + ldrb r5, [r1] + ldr r1, _080B5F28 + adds r4, r4, r1 + ldrb r4, [r4] + adds r1, r6, #0 + adds r2, r5, #0 + adds r3, r4, #0 + bl MultiplyInvertedPaletteRGBComponents + mov r0, r8 + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #4 + movs r1, #0x83 + lsls r1, r1, #0x11 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + adds r1, r6, #0 + adds r2, r5, #0 + adds r3, r4, #0 + bl MultiplyInvertedPaletteRGBComponents + mov r0, r8 + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #4 + movs r1, #0x81 + lsls r1, r1, #0x11 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + adds r1, r6, #0 + adds r2, r5, #0 + adds r3, r4, #0 + bl MultiplyInvertedPaletteRGBComponents + mov r0, r8 + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #4 + ldr r1, _080B5F2C + adds r0, r0, r1 + lsrs r0, r0, #0x10 + adds r1, r6, #0 + adds r2, r5, #0 + adds r3, r4, #0 + bl MultiplyInvertedPaletteRGBComponents + mov r0, r8 + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #4 + ldr r1, _080B5F30 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + adds r1, r6, #0 + adds r2, r5, #0 + adds r3, r4, #0 + bl MultiplyInvertedPaletteRGBComponents + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080B5F1C: .4byte 0x00001007 +_080B5F20: .4byte 0x08537068 +_080B5F24: .4byte 0x0853706C +_080B5F28: .4byte 0x08537070 +_080B5F2C: .4byte 0x01050000 +_080B5F30: .4byte 0x01030000 + thumb_func_end PokeballGlowEffect_3 + + thumb_func_start PokeballGlowEffect_4 +PokeballGlowEffect_4: @ 0x080B5F34 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0x30] + subs r0, #1 + strh r0, [r1, #0x30] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080B5F4A + ldrh r0, [r1, #0x2e] + adds r0, #1 + strh r0, [r1, #0x2e] +_080B5F4A: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PokeballGlowEffect_4 + + thumb_func_start PokeballGlowEffect_5 +PokeballGlowEffect_5: @ 0x080B5F50 + ldrh r1, [r0, #0x2e] + adds r1, #1 + strh r1, [r0, #0x2e] + bx lr + thumb_func_end PokeballGlowEffect_5 + + thumb_func_start PokeballGlowEffect_6 +PokeballGlowEffect_6: @ 0x080B5F58 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x38 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _080B5F6E + bl IsFanfareTaskInactive + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B5F74 +_080B5F6E: + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] +_080B5F74: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PokeballGlowEffect_6 + + thumb_func_start PokeballGlowEffect_7 +PokeballGlowEffect_7: @ 0x080B5F7C + bx lr + .align 2, 0 + thumb_func_end PokeballGlowEffect_7 + + thumb_func_start SpriteCB_PokeballGlow +SpriteCB_PokeballGlow: @ 0x080B5F80 + push {lr} + adds r3, r0, #0 + ldr r2, _080B5FA4 + movs r0, #0x2e + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0x2e + ldrsh r0, [r0, r1] + cmp r0, #4 + ble _080B5FA0 + adds r0, r3, #0 + bl FieldEffectFreeGraphicsResources +_080B5FA0: + pop {r0} + bx r0 + .align 2, 0 +_080B5FA4: .4byte 0x020205AC + thumb_func_end SpriteCB_PokeballGlow + + thumb_func_start PokecenterHealEffectHelper +PokecenterHealEffectHelper: @ 0x080B5FA8 + push {r4, lr} + adds r3, r0, #0 + adds r2, r1, #0 + ldr r0, _080B5FF8 + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r1, r3, #0 + movs r3, #0 + bl CreateSpriteAtEnd + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + ldr r1, _080B5FFC + adds r0, r0, r1 + ldrb r2, [r0, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #8 + orrs r1, r2 + strb r1, [r0, #5] + adds r3, r0, #0 + adds r3, #0x3e + ldrb r1, [r3] + movs r2, #4 + orrs r1, r2 + strb r1, [r3] + ldr r1, _080B6000 + bl SetSubspriteTables + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080B5FF8: .4byte 0x08536FC8 +_080B5FFC: .4byte 0x020205AC +_080B6000: .4byte 0x08536F58 + thumb_func_end PokecenterHealEffectHelper + + thumb_func_start SpriteCB_PokecenterMonitor +SpriteCB_PokecenterMonitor: @ 0x080B6004 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _080B6028 + movs r0, #0 + strh r0, [r4, #0x2e] + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + subs r0, #5 + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAnim +_080B6028: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080B603C + adds r0, r4, #0 + bl FieldEffectFreeGraphicsResources +_080B603C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SpriteCB_PokecenterMonitor + + thumb_func_start HallOfFameRecordEffectHelper +HallOfFameRecordEffectHelper: @ 0x080B6044 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + lsls r3, r3, #0x18 + cmp r3, #0 + bne _080B608C + ldr r0, _080B6080 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + movs r3, #0 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + ldr r1, _080B6084 + adds r0, r0, r1 + ldr r1, _080B6088 + bl SetSubspriteTables + b _080B60A0 + .align 2, 0 +_080B6080: .4byte 0x08536FE0 +_080B6084: .4byte 0x020205AC +_080B6088: .4byte 0x08536F70 +_080B608C: + ldr r0, _080B60C0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + movs r3, #0 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_080B60A0: + ldr r1, _080B60C4 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + adds r3, r0, #0 + adds r3, #0x3e + ldrb r1, [r3] + movs r2, #4 + orrs r1, r2 + strb r1, [r3] + strh r5, [r0, #0x2e] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B60C0: .4byte 0x08536FF8 +_080B60C4: .4byte 0x020205AC + thumb_func_end HallOfFameRecordEffectHelper + + thumb_func_start SpriteCB_HallOfFameMonitor +SpriteCB_HallOfFameMonitor: @ 0x080B60C8 + push {lr} + adds r3, r0, #0 + ldr r2, _080B6130 + movs r0, #0x2e + ldrsh r1, [r3, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r1, #0x26 + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _080B611E + ldrh r1, [r3, #0x30] + movs r2, #0x30 + ldrsh r0, [r3, r2] + cmp r0, #0 + beq _080B60F6 + subs r0, r1, #1 + strh r0, [r3, #0x30] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080B6118 +_080B60F6: + movs r0, #0x10 + strh r0, [r3, #0x30] + movs r0, #0x3e + adds r0, r0, r3 + mov ip, r0 + ldrb r2, [r0] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] +_080B6118: + ldrh r0, [r3, #0x32] + adds r0, #1 + strh r0, [r3, #0x32] +_080B611E: + movs r2, #0x32 + ldrsh r0, [r3, r2] + cmp r0, #0x7f + ble _080B612C + adds r0, r3, #0 + bl FieldEffectFreeGraphicsResources +_080B612C: + pop {r0} + bx r0 + .align 2, 0 +_080B6130: .4byte 0x03005B60 + thumb_func_end SpriteCB_HallOfFameMonitor + + thumb_func_start sub_080B6134 +sub_080B6134: @ 0x080B6134 + push {lr} + ldr r0, _080B6148 + bl SetMainCallback2 + ldr r1, _080B614C + ldr r0, _080B6150 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080B6148: .4byte 0x08085A31 +_080B614C: .4byte 0x03005B0C +_080B6150: .4byte 0x080B6155 + thumb_func_end sub_080B6134 + + thumb_func_start mapldr_080842E8 +mapldr_080842E8: @ 0x080B6154 + push {lr} + bl pal_fill_black + ldr r0, _080B6174 + movs r1, #0 + bl CreateTask + bl ScriptContext2_Enable + bl FreezeEventObjects + ldr r1, _080B6178 + movs r0, #0 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080B6174: .4byte 0x080B617D +_080B6178: .4byte 0x03005B0C + thumb_func_end mapldr_080842E8 + + thumb_func_start task00_8084310 +task00_8084310: @ 0x080B617C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080B61E8 + adds r4, r0, r1 + movs r0, #8 + ldrsh r6, [r4, r0] + cmp r6, #0 + bne _080B61BC + bl IsWeatherNotFadingIn + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B61E2 + bl GetCursorSelectionMonId + ldr r1, _080B61EC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [r1] + cmp r0, #5 + ble _080B61B0 + str r6, [r1] +_080B61B0: + movs r0, #0x1f + bl FieldEffectStart + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080B61BC: + movs r0, #0x1f + bl FieldEffectActiveListContains + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B61E2 + bl Overworld_ResetStateAfterDigEscRope + bl WarpIntoMap + ldr r0, _080B61F0 + bl SetMainCallback2 + ldr r1, _080B61F4 + ldr r0, _080B61F8 + str r0, [r1] + adds r0, r5, #0 + bl DestroyTask +_080B61E2: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080B61E8: .4byte 0x03005B60 +_080B61EC: .4byte 0x020388A8 +_080B61F0: .4byte 0x08085935 +_080B61F4: .4byte 0x03005B0C +_080B61F8: .4byte 0x080B61FD + thumb_func_end task00_8084310 + + thumb_func_start mapldr_08084390 +mapldr_08084390: @ 0x080B61FC + push {r4, lr} + bl Overworld_PlaySpecialMapMusic + bl pal_fill_black + ldr r0, _080B6254 + movs r1, #0 + bl CreateTask + ldr r4, _080B6258 + ldr r3, _080B625C + ldrb r1, [r3, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r1, [r0, #1] + movs r2, #0x20 + orrs r1, r2 + strb r1, [r0, #1] + ldrb r1, [r3] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080B623E + ldrb r1, [r3, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #3 + bl EventObjectTurn +_080B623E: + bl ScriptContext2_Enable + bl FreezeEventObjects + ldr r1, _080B6260 + movs r0, #0 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B6254: .4byte 0x080B6265 +_080B6258: .4byte 0x02036FF0 +_080B625C: .4byte 0x02037230 +_080B6260: .4byte 0x03005B0C + thumb_func_end mapldr_08084390 + + thumb_func_start c3_080843F8 +c3_080843F8: @ 0x080B6264 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080B62B8 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080B6296 + ldr r0, _080B62BC + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080B62B0 + movs r0, #0x20 + bl FieldEffectStart + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080B6296: + movs r0, #0x20 + bl FieldEffectActiveListContains + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B62B0 + bl ScriptContext2_Disable + bl UnfreezeEventObjects + adds r0, r5, #0 + bl DestroyTask +_080B62B0: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B62B8: .4byte 0x03005B60 +_080B62BC: .4byte 0x02037C74 + thumb_func_end c3_080843F8 + + thumb_func_start sub_080B62C0 +sub_080B62C0: @ 0x080B62C0 + push {lr} + bl Overworld_PlaySpecialMapMusic + bl pal_fill_for_maplights + bl ScriptContext2_Enable + bl FreezeEventObjects + ldr r0, _080B62E4 + movs r1, #0 + bl CreateTask + ldr r1, _080B62E8 + movs r0, #0 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080B62E4: .4byte 0x080B62ED +_080B62E8: .4byte 0x03005B0C + thumb_func_end sub_080B62C0 + + thumb_func_start sub_080B62EC +sub_080B62EC: @ 0x080B62EC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080B631C + adds r4, r1, r0 + ldr r5, _080B6320 +_080B62FE: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B62FE + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B631C: .4byte 0x03005B60 +_080B6320: .4byte 0x08537074 + thumb_func_end sub_080B62EC + + thumb_func_start sub_080B6324 +sub_080B6324: @ 0x080B6324 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + mov sb, r0 + ldr r6, _080B63C0 + ldrb r0, [r6, #5] + lsls r5, r0, #3 + adds r5, r5, r0 + lsls r5, r5, #2 + ldr r0, _080B63C4 + mov r8, r0 + add r5, r8 + ldrb r0, [r6, #4] + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _080B63C8 + adds r4, r4, r0 + bl CameraObjectReset2 + ldrb r1, [r6, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + ldrb r1, [r0, #1] + movs r2, #0x20 + orrs r1, r2 + strb r1, [r0, #1] + movs r0, #1 + strb r0, [r6, #6] + bl GetPlayerFacingDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_08092CA0 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl EventObjectSetHeldMovement + adds r3, r4, #0 + adds r3, #0x42 + ldrb r0, [r3] + lsrs r0, r0, #6 + mov r1, sb + strh r0, [r1, #0x10] + ldrb r0, [r5, #3] + movs r2, #4 + orrs r0, r2 + strb r0, [r5, #3] + ldrb r1, [r4, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #5] + ldrb r1, [r3] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r3] + mov r1, sb + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + movs r0, #1 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080B63C0: .4byte 0x02037230 +_080B63C4: .4byte 0x02036FF0 +_080B63C8: .4byte 0x020205AC + thumb_func_end sub_080B6324 + + thumb_func_start sub_080B63CC +sub_080B63CC: @ 0x080B63CC + push {r4, lr} + adds r4, r0, #0 + bl IsWeatherNotFadingIn + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B63E0 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080B63E0: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_080B63CC + + thumb_func_start sub_080B63E8 +sub_080B63E8: @ 0x080B63E8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, _080B644C + ldrb r0, [r6, #4] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r0, _080B6450 + adds r2, r2, r0 + adds r0, r2, #0 + adds r0, #0x29 + movs r4, #0 + ldrsb r4, [r0, r4] + lsls r0, r4, #0x11 + rsbs r0, r0, #0 + ldrh r1, [r2, #0x22] + ldr r3, _080B6454 + adds r1, r1, r4 + ldrh r3, [r3] + adds r1, r1, r3 + asrs r0, r0, #0x10 + adds r0, r0, r1 + rsbs r0, r0, #0 + movs r1, #0 + strh r0, [r2, #0x26] + movs r0, #1 + strh r0, [r5, #0xa] + strh r1, [r5, #0xc] + ldr r2, _080B6458 + ldrb r0, [r6, #5] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r2, [r1, #1] + movs r0, #0x21 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #1] + movs r0, #0x2b + bl PlaySE + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + movs r0, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080B644C: .4byte 0x02037230 +_080B6450: .4byte 0x020205AC +_080B6454: .4byte 0x02021B3A +_080B6458: .4byte 0x02036FF0 + thumb_func_end sub_080B63E8 + + thumb_func_start sub_080B645C +sub_080B645C: @ 0x080B645C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r2, _080B6508 + ldrb r1, [r2, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B650C + adds r6, r0, r1 + ldrb r1, [r2, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B6510 + adds r5, r0, r1 + ldrh r0, [r4, #0xa] + ldrh r1, [r5, #0x26] + adds r0, r0, r1 + strh r0, [r5, #0x26] + ldrh r2, [r4, #0xa] + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #7 + bgt _080B649E + ldrh r1, [r4, #0xc] + adds r0, r2, r1 + strh r0, [r4, #0xc] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + beq _080B649E + lsls r0, r2, #1 + strh r0, [r4, #0xa] +_080B649E: + ldrh r2, [r4, #0xe] + movs r1, #0xe + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080B64DC + movs r0, #0x26 + ldrsh r1, [r5, r0] + movs r0, #0x10 + rsbs r0, r0, #0 + cmp r1, r0 + blt _080B64DC + adds r0, r2, #1 + strh r0, [r4, #0xe] + ldrb r1, [r6, #3] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r6, #3] + ldrb r1, [r4, #0x10] + adds r3, r5, #0 + adds r3, #0x42 + lsls r1, r1, #6 + ldrb r2, [r3] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrb r0, [r6] + movs r1, #4 + orrs r0, r1 + strb r0, [r6] +_080B64DC: + movs r1, #0x26 + ldrsh r0, [r5, r1] + cmp r0, #0 + blt _080B6500 + movs r0, #0xd6 + bl PlaySE + ldrb r0, [r6] + movs r1, #8 + orrs r0, r1 + movs r1, #0x20 + orrs r0, r1 + strb r0, [r6] + movs r0, #0 + strh r0, [r5, #0x26] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080B6500: + movs r0, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080B6508: .4byte 0x02037230 +_080B650C: .4byte 0x02036FF0 +_080B6510: .4byte 0x020205AC + thumb_func_end sub_080B645C + + thumb_func_start sub_080B6514 +sub_080B6514: @ 0x080B6514 + push {lr} + ldrh r1, [r0, #8] + adds r1, #1 + movs r2, #0 + strh r1, [r0, #8] + movs r1, #4 + strh r1, [r0, #0xa] + strh r2, [r0, #0xc] + movs r0, #0 + bl SetCameraPanningCallback + movs r0, #1 + pop {r1} + bx r1 + thumb_func_end sub_080B6514 + + thumb_func_start sub_080B6530 +sub_080B6530: @ 0x080B6530 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0xa + ldrsh r1, [r4, r0] + movs r0, #0 + bl SetCameraPanning + ldrh r0, [r4, #0xa] + rsbs r2, r0, #0 + strh r2, [r4, #0xa] + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _080B6558 + lsls r0, r2, #0x10 + asrs r0, r0, #0x11 + strh r0, [r4, #0xa] +_080B6558: + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080B6566 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080B6566: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080B6530 + + thumb_func_start sub_080B6570 +sub_080B6570: @ 0x080B6570 + push {lr} + ldr r1, _080B659C + movs r0, #0 + strb r0, [r1, #6] + bl ScriptContext2_Disable + bl CameraObjectReset1 + bl UnfreezeEventObjects + bl InstallCameraPanAheadCallback + ldr r0, _080B65A0 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_080B659C: .4byte 0x02037230 +_080B65A0: .4byte 0x080B62ED + thumb_func_end sub_080B6570 + + thumb_func_start sub_080B65A4 +sub_080B65A4: @ 0x080B65A4 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, _080B65D8 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080B65DC + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r0, #0 + strh r0, [r1, #0xa] + cmp r4, #0x6a + bne _080B65D0 + movs r0, #1 + strh r0, [r1, #0xa] +_080B65D0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B65D8: .4byte 0x080B65E1 +_080B65DC: .4byte 0x03005B60 + thumb_func_end sub_080B65A4 + + thumb_func_start sub_080B65E0 +sub_080B65E0: @ 0x080B65E0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080B6610 + adds r4, r1, r0 + ldr r5, _080B6614 +_080B65F2: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B65F2 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B6610: .4byte 0x03005B60 +_080B6614: .4byte 0x08537090 + thumb_func_end sub_080B65E0 + + thumb_func_start sub_080B6618 +sub_080B6618: @ 0x080B6618 + push {r4, lr} + adds r4, r0, #0 + bl FreezeEventObjects + bl CameraObjectReset2 + ldrb r0, [r4, #0xa] + bl sub_080E0AA4 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_080B6618 + + thumb_func_start sub_080B6638 +sub_080B6638: @ 0x080B6638 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _080B66A0 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B66A4 + adds r4, r0, r1 + adds r0, r4, #0 + bl EventObjectIsMovementOverridden + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B6662 + adds r0, r4, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B6696 +_080B6662: + bl GetPlayerFacingDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_08092CA0 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetHeldMovement + ldrh r0, [r5, #8] + adds r0, #1 + movs r1, #0 + strh r0, [r5, #8] + strh r1, [r5, #0xc] + strh r1, [r5, #0xe] + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _080B6690 + movs r0, #4 + strh r0, [r5, #8] +_080B6690: + movs r0, #0x50 + bl PlaySE +_080B6696: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080B66A0: .4byte 0x02037230 +_080B66A4: .4byte 0x02036FF0 + thumb_func_end sub_080B6638 + + thumb_func_start sub_080B66A8 +sub_080B66A8: @ 0x080B66A8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080B6710 + movs r1, #0xc + ldrsh r0, [r4, r1] + cmp r0, #3 + ble _080B66C2 + bl sub_080B67A8 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080B66C2: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080B66A8 + + thumb_func_start sub_080B66CC +sub_080B66CC: @ 0x080B66CC + push {lr} + bl sub_080B6710 + bl sub_080B67B8 + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end sub_080B66CC + + thumb_func_start sub_080B66DC +sub_080B66DC: @ 0x080B66DC + push {r4, lr} + adds r4, r0, #0 + bl sub_080B675C + movs r1, #0xc + ldrsh r0, [r4, r1] + cmp r0, #3 + ble _080B66F6 + bl sub_080B67A8 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080B66F6: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080B66DC + + thumb_func_start sub_080B6700 +sub_080B6700: @ 0x080B6700 + push {lr} + bl sub_080B675C + bl sub_080B67B8 + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end sub_080B6700 + + thumb_func_start sub_080B6710 +sub_080B6710: @ 0x080B6710 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _080B6754 + ldrb r0, [r0, #4] + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _080B6758 + adds r4, r4, r0 + movs r0, #0xc + ldrsh r1, [r5, r0] + movs r0, #0x84 + bl Cos + strh r0, [r4, #0x24] + movs r0, #0xc + ldrsh r1, [r5, r0] + movs r0, #0x94 + bl Sin + strh r0, [r4, #0x26] + ldrh r0, [r5, #0xe] + adds r0, #1 + strh r0, [r5, #0xe] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _080B674E + ldrh r0, [r5, #0xc] + adds r0, #1 + strh r0, [r5, #0xc] +_080B674E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B6754: .4byte 0x02037230 +_080B6758: .4byte 0x020205AC + thumb_func_end sub_080B6710 + + thumb_func_start sub_080B675C +sub_080B675C: @ 0x080B675C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _080B67A0 + ldrb r0, [r0, #4] + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _080B67A4 + adds r4, r4, r0 + movs r0, #0xc + ldrsh r1, [r5, r0] + movs r0, #0x7c + bl Cos + strh r0, [r4, #0x24] + movs r0, #0xc + ldrsh r1, [r5, r0] + movs r0, #0x76 + bl Sin + strh r0, [r4, #0x26] + ldrh r0, [r5, #0xe] + adds r0, #1 + strh r0, [r5, #0xe] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _080B679A + ldrh r0, [r5, #0xc] + adds r0, #1 + strh r0, [r5, #0xc] +_080B679A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B67A0: .4byte 0x02037230 +_080B67A4: .4byte 0x020205AC + thumb_func_end sub_080B675C + + thumb_func_start sub_080B67A8 +sub_080B67A8: @ 0x080B67A8 + push {lr} + bl TryFadeOutOldMapMusic + bl WarpFadeScreen + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080B67A8 + + thumb_func_start sub_080B67B8 +sub_080B67B8: @ 0x080B67B8 + push {lr} + ldr r0, _080B67F8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080B67F4 + bl BGMusicStopped + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080B67F4 + bl sub_080E0ABC + bl WarpIntoMap + ldr r1, _080B67FC + ldr r0, _080B6800 + str r0, [r1] + ldr r0, _080B6804 + bl SetMainCallback2 + ldr r0, _080B6808 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_080B67F4: + pop {r0} + bx r0 + .align 2, 0 +_080B67F8: .4byte 0x02037C74 +_080B67FC: .4byte 0x03005B0C +_080B6800: .4byte 0x080B680D +_080B6804: .4byte 0x08085935 +_080B6808: .4byte 0x080B65E1 + thumb_func_end sub_080B67B8 + + thumb_func_start sub_080B680C +sub_080B680C: @ 0x080B680C + push {lr} + bl Overworld_PlaySpecialMapMusic + bl pal_fill_for_maplights + bl ScriptContext2_Enable + ldr r0, _080B682C + movs r1, #0 + bl CreateTask + ldr r1, _080B6830 + movs r0, #0 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080B682C: .4byte 0x080B6835 +_080B6830: .4byte 0x03005B0C + thumb_func_end sub_080B680C + + thumb_func_start sub_080B6834 +sub_080B6834: @ 0x080B6834 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080B6864 + adds r4, r1, r0 + ldr r5, _080B6868 +_080B6846: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B6846 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B6864: .4byte 0x03005B60 +_080B6868: .4byte 0x085370A8 + thumb_func_end sub_080B6834 + + thumb_func_start sub_080B686C +sub_080B686C: @ 0x080B686C + push {r4, r5, lr} + sub sp, #4 + adds r5, r0, #0 + bl CameraObjectReset2 + ldr r0, _080B68CC + ldrb r0, [r0, #5] + lsls r4, r0, #3 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _080B68D0 + adds r4, r4, r0 + movs r0, #4 + bl sub_08092CA0 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetHeldMovement + mov r4, sp + adds r4, #2 + 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, r0, #0x18 + lsrs r1, r0, #0x18 + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + movs r0, #0x10 + strh r0, [r5, #0xa] + cmp r1, #0x6b + bne _080B68D4 + movs r1, #1 + movs r0, #3 + strh r0, [r5, #8] + b _080B68D6 + .align 2, 0 +_080B68CC: .4byte 0x02037230 +_080B68D0: .4byte 0x02036FF0 +_080B68D4: + movs r1, #0 +_080B68D6: + adds r0, r1, #0 + bl sub_080E0AA4 + movs r0, #1 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080B686C + + thumb_func_start sub_080B68E8 +sub_080B68E8: @ 0x080B68E8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _080B6920 + ldrb r0, [r0, #4] + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _080B6924 + adds r4, r4, r0 + movs r0, #0xa + ldrsh r1, [r5, r0] + movs r0, #0x84 + bl Cos + strh r0, [r4, #0x24] + movs r0, #0xa + ldrsh r1, [r5, r0] + movs r0, #0x94 + bl Sin + strh r0, [r4, #0x26] + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080B6920: .4byte 0x02037230 +_080B6924: .4byte 0x020205AC + thumb_func_end sub_080B68E8 + + thumb_func_start sub_080B6928 +sub_080B6928: @ 0x080B6928 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _080B6980 + ldrb r1, [r0, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B6984 + adds r5, r0, r1 + movs r0, #0xa + ldrsh r1, [r4, r0] + movs r0, #0x84 + bl Cos + strh r0, [r5, #0x24] + movs r0, #0xa + ldrsh r1, [r4, r0] + movs r0, #0x94 + bl Sin + strh r0, [r5, #0x26] + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _080B6966 + ldrh r0, [r4, #0xa] + subs r0, #1 + strh r0, [r4, #0xa] +_080B6966: + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080B6976 + strh r0, [r5, #0x24] + strh r0, [r5, #0x26] + movs r0, #5 + strh r0, [r4, #8] +_080B6976: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080B6980: .4byte 0x02037230 +_080B6984: .4byte 0x020205AC + thumb_func_end sub_080B6928 + + thumb_func_start sub_080B6988 +sub_080B6988: @ 0x080B6988 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _080B69C0 + ldrb r0, [r0, #4] + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _080B69C4 + adds r4, r4, r0 + movs r0, #0xa + ldrsh r1, [r5, r0] + movs r0, #0x7c + bl Cos + strh r0, [r4, #0x24] + movs r0, #0xa + ldrsh r1, [r5, r0] + movs r0, #0x76 + bl Sin + strh r0, [r4, #0x26] + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080B69C0: .4byte 0x02037230 +_080B69C4: .4byte 0x020205AC + thumb_func_end sub_080B6988 + + thumb_func_start sub_080B69C8 +sub_080B69C8: @ 0x080B69C8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _080B6A20 + ldrb r1, [r0, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B6A24 + adds r5, r0, r1 + movs r0, #0xa + ldrsh r1, [r4, r0] + movs r0, #0x7c + bl Cos + strh r0, [r5, #0x24] + movs r0, #0xa + ldrsh r1, [r4, r0] + movs r0, #0x76 + bl Sin + strh r0, [r5, #0x26] + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _080B6A06 + ldrh r0, [r4, #0xa] + subs r0, #1 + strh r0, [r4, #0xa] +_080B6A06: + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080B6A18 + strh r0, [r5, #0x24] + strh r0, [r5, #0x26] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080B6A18: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080B6A20: .4byte 0x02037230 +_080B6A24: .4byte 0x020205AC + thumb_func_end sub_080B69C8 + + thumb_func_start sub_080B6A28 +sub_080B6A28: @ 0x080B6A28 + push {r4, lr} + adds r4, r0, #0 + bl sub_080E0AD0 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B6A44 + bl sub_080E0ABC + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #1 + b _080B6A46 +_080B6A44: + movs r0, #0 +_080B6A46: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_080B6A28 + + thumb_func_start sub_080B6A4C +sub_080B6A4C: @ 0x080B6A4C + push {r4, lr} + ldr r0, _080B6A98 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B6A9C + adds r4, r0, r1 + adds r0, r4, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B6A90 + bl CameraObjectReset1 + bl ScriptContext2_Disable + movs r0, #4 + bl sub_08092CF8 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetHeldMovement + ldr r0, _080B6AA0 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_080B6A90: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080B6A98: .4byte 0x02037230 +_080B6A9C: .4byte 0x02036FF0 +_080B6AA0: .4byte 0x080B6835 + thumb_func_end sub_080B6A4C + + thumb_func_start FldEff_UseWaterfall +FldEff_UseWaterfall: @ 0x080B6AA4 + push {r4, lr} + ldr r4, _080B6AD0 + adds r0, r4, #0 + movs r1, #0xff + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080B6AD4 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r2, _080B6AD8 + ldr r2, [r2] + strh r2, [r1, #0xa] + bl _call_via_r4 + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080B6AD0: .4byte 0x080B6ADD +_080B6AD4: .4byte 0x03005B60 +_080B6AD8: .4byte 0x020388A8 + thumb_func_end FldEff_UseWaterfall + + thumb_func_start sub_080B6ADC +sub_080B6ADC: @ 0x080B6ADC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _080B6B18 + ldr r2, _080B6B1C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_080B6AEE: + movs r0, #8 + ldrsh r2, [r4, r0] + lsls r2, r2, #2 + adds r2, r2, r5 + ldr r0, _080B6B20 + ldrb r0, [r0, #5] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080B6B24 + adds r1, r1, r0 + ldr r2, [r2] + adds r0, r4, #0 + bl _call_via_r2 + thumb_func_end sub_080B6ADC + + thumb_func_start sub_080B6B0C +sub_080B6B0C: @ 0x080B6B0C + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B6AEE + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B6B18: .4byte 0x085370C4 +_080B6B1C: .4byte 0x03005B60 +_080B6B20: .4byte 0x02037230 +_080B6B24: .4byte 0x02036FF0 + thumb_func_end sub_080B6B0C + + thumb_func_start sub_080B6B28 +sub_080B6B28: @ 0x080B6B28 + push {r4, lr} + adds r4, r0, #0 + bl ScriptContext2_Enable + ldr r1, _080B6B44 + movs r0, #1 + strb r0, [r1, #6] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080B6B44: .4byte 0x02037230 + thumb_func_end sub_080B6B28 + + thumb_func_start waterfall_1_do_anim_probably +waterfall_1_do_anim_probably: @ 0x080B6B48 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl ScriptContext2_Enable + adds r0, r5, #0 + bl EventObjectIsMovementOverridden + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B6B78 + adds r0, r5, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + ldr r1, _080B6B80 + movs r2, #0xa + ldrsh r0, [r4, r2] + str r0, [r1] + movs r0, #0x3b + bl FieldEffectStart + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080B6B78: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080B6B80: .4byte 0x020388A8 + thumb_func_end waterfall_1_do_anim_probably + + thumb_func_start waterfall_2_wait_anim_finish_probably +waterfall_2_wait_anim_finish_probably: @ 0x080B6B84 + push {r4, lr} + adds r4, r0, #0 + movs r0, #6 + bl FieldEffectActiveListContains + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B6B9E + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #1 + b _080B6BA0 +_080B6B9E: + movs r0, #0 +_080B6BA0: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end waterfall_2_wait_anim_finish_probably + + thumb_func_start sub_080B6BA8 +sub_080B6BA8: @ 0x080B6BA8 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + movs r0, #2 + bl sub_08092CCC + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetHeldMovement + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080B6BA8 + + thumb_func_start sub_080B6BD0 +sub_080B6BD0: @ 0x080B6BD0 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r0, r4, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B6BE6 + movs r0, #0 + b _080B6C22 +_080B6BE6: + ldrb r0, [r4, #0x1e] + bl MetatileBehavior_IsWaterfall + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _080B6C1C + bl ScriptContext2_Disable + ldr r0, _080B6C14 + strb r4, [r0, #6] + ldr r0, _080B6C18 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + movs r0, #0x2b + bl FieldEffectActiveListRemove + movs r0, #0 + b _080B6C22 + .align 2, 0 +_080B6C14: .4byte 0x02037230 +_080B6C18: .4byte 0x080B6ADD +_080B6C1C: + movs r0, #3 + strh r0, [r5, #8] + movs r0, #1 +_080B6C22: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_080B6BD0 + + thumb_func_start FldEff_UseDive +FldEff_UseDive: @ 0x080B6C28 + push {r4, lr} + ldr r4, _080B6C58 + adds r0, r4, #0 + movs r1, #0xff + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080B6C5C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r3, _080B6C60 + ldr r2, [r3] + strh r2, [r1, #0x26] + ldr r2, [r3, #4] + strh r2, [r1, #0x24] + bl _call_via_r4 + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080B6C58: .4byte 0x080B6C65 +_080B6C5C: .4byte 0x03005B60 +_080B6C60: .4byte 0x020388A8 + thumb_func_end FldEff_UseDive + + thumb_func_start Task_Dive +Task_Dive: @ 0x080B6C64 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _080B6C94 + ldr r2, _080B6C98 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_080B6C76: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B6C76 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B6C94: .4byte 0x085370D8 +_080B6C98: .4byte 0x03005B60 + thumb_func_end Task_Dive + + thumb_func_start dive_1_lock +dive_1_lock: @ 0x080B6C9C + ldr r2, _080B6CAC + movs r1, #1 + strb r1, [r2, #6] + ldrh r1, [r0, #8] + adds r1, #1 + strh r1, [r0, #8] + movs r0, #0 + bx lr + .align 2, 0 +_080B6CAC: .4byte 0x02037230 + thumb_func_end dive_1_lock + + thumb_func_start dive_2_unknown +dive_2_unknown: @ 0x080B6CB0 + push {r4, lr} + adds r4, r0, #0 + bl ScriptContext2_Enable + ldr r1, _080B6CD4 + movs r2, #0x26 + ldrsh r0, [r4, r2] + str r0, [r1] + movs r0, #0x3b + bl FieldEffectStart + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080B6CD4: .4byte 0x020388A8 + thumb_func_end dive_2_unknown + + thumb_func_start dive_3_unknown +dive_3_unknown: @ 0x080B6CD8 + push {lr} + sub sp, #8 + mov r1, sp + adds r1, #2 + mov r0, sp + bl PlayerGetDestCoords + movs r0, #6 + bl FieldEffectActiveListContains + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B6D1C + ldr r2, _080B6D24 + ldr r0, _080B6D28 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #0x1e] + mov r0, sp + bl dive_warp + ldr r0, _080B6D2C + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + movs r0, #0x2c + bl FieldEffectActiveListRemove +_080B6D1C: + movs r0, #0 + add sp, #8 + pop {r1} + bx r1 + .align 2, 0 +_080B6D24: .4byte 0x02036FF0 +_080B6D28: .4byte 0x02037230 +_080B6D2C: .4byte 0x080B6C65 + thumb_func_end dive_3_unknown + + thumb_func_start sub_080B6D30 +sub_080B6D30: @ 0x080B6D30 + push {lr} + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, _080B6D44 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080B6D44: .4byte 0x080B6D49 + thumb_func_end sub_080B6D30 + + thumb_func_start sub_080B6D48 +sub_080B6D48: @ 0x080B6D48 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r6, _080B6D90 + ldr r2, _080B6D94 + ldr r5, _080B6D98 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_080B6D5C: + movs r0, #8 + ldrsh r3, [r4, r0] + lsls r3, r3, #2 + adds r3, r3, r6 + ldrb r0, [r5, #5] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080B6D9C + adds r1, r1, r0 + ldrb r0, [r5, #4] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r0, _080B6DA0 + adds r2, r2, r0 + ldr r3, [r3] + adds r0, r4, #0 + bl _call_via_r3 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B6D5C + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080B6D90: .4byte 0x085370E4 +_080B6D94: .4byte 0x03005B60 +_080B6D98: .4byte 0x02037230 +_080B6D9C: .4byte 0x02036FF0 +_080B6DA0: .4byte 0x020205AC + thumb_func_end sub_080B6D48 + + thumb_func_start sub_080B6DA4 +sub_080B6DA4: @ 0x080B6DA4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl FreezeEventObjects + bl CameraObjectReset2 + movs r0, #0 + bl SetCameraPanningCallback + ldr r0, _080B6DD8 + movs r2, #1 + strb r2, [r0, #6] + ldrb r0, [r5, #3] + movs r1, #4 + orrs r0, r1 + strb r0, [r5, #3] + strh r2, [r4, #0xa] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080B6DD8: .4byte 0x02037230 + thumb_func_end sub_080B6DA4 + + thumb_func_start sub_080B6DDC +sub_080B6DDC: @ 0x080B6DDC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0xa + ldrsh r1, [r4, r0] + movs r0, #0 + bl SetCameraPanning + ldrh r0, [r4, #0xa] + rsbs r0, r0, #0 + strh r0, [r4, #0xa] + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + ble _080B6E08 + movs r0, #0 + strh r0, [r4, #0xc] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080B6E08: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_080B6DDC + + thumb_func_start sub_080B6E10 +sub_080B6E10: @ 0x080B6E10 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0 + strh r0, [r2, #0x26] + movs r0, #1 + strh r0, [r4, #0xe] + ldr r3, _080B6E58 + movs r5, #0x10 + ldrsh r0, [r1, r5] + str r0, [r3] + movs r5, #0x12 + ldrsh r0, [r1, r5] + str r0, [r3, #4] + adds r0, r2, #0 + adds r0, #0x43 + ldrb r0, [r0] + subs r0, #1 + str r0, [r3, #8] + ldrb r0, [r2, #5] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1e + str r0, [r3, #0xc] + movs r0, #0x32 + bl FieldEffectStart + movs r0, #0xb2 + bl PlaySE + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080B6E58: .4byte 0x020388A8 + thumb_func_end sub_080B6E10 + + thumb_func_start sub_080B6E5C +sub_080B6E5C: @ 0x080B6E5C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r6, r1, #0 + adds r5, r2, #0 + movs r0, #0xa + ldrsh r1, [r4, r0] + movs r0, #0 + bl SetCameraPanning + ldrh r0, [r4, #0xa] + rsbs r2, r0, #0 + strh r2, [r4, #0xa] + ldrh r0, [r4, #0xc] + adds r1, r0, #1 + strh r1, [r4, #0xc] + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x11 + bgt _080B6E96 + movs r0, #1 + ands r1, r0 + cmp r1, #0 + bne _080B6EA8 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + bgt _080B6EA8 + lsls r0, r2, #1 + b _080B6EA6 +_080B6E96: + movs r0, #4 + ands r1, r0 + cmp r1, #0 + bne _080B6EA8 + lsls r0, r2, #0x10 + cmp r0, #0 + ble _080B6EA8 + asrs r0, r0, #0x11 +_080B6EA6: + strh r0, [r4, #0xa] +_080B6EA8: + movs r1, #0xc + ldrsh r0, [r4, r1] + cmp r0, #6 + ble _080B6EF4 + adds r0, r5, #0 + adds r0, #0x29 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r2, r1, #0x11 + rsbs r2, r2, #0 + movs r7, #0x26 + ldrsh r3, [r5, r7] + movs r7, #0x22 + ldrsh r0, [r5, r7] + adds r0, r0, r1 + ldr r1, _080B6EEC + movs r7, #0 + ldrsh r1, [r1, r7] + adds r0, r0, r1 + asrs r2, r2, #0x10 + adds r0, r0, r2 + cmn r3, r0 + ble _080B6EF0 + ldrh r0, [r5, #0x26] + ldrh r1, [r4, #0xe] + subs r0, r0, r1 + strh r0, [r5, #0x26] + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + bgt _080B6EF4 + adds r0, r1, #1 + strh r0, [r4, #0xe] + b _080B6EF4 + .align 2, 0 +_080B6EEC: .4byte 0x02021B3A +_080B6EF0: + movs r0, #1 + strh r0, [r4, #0x10] +_080B6EF4: + ldrh r2, [r4, #0x12] + movs r1, #0x12 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080B6F32 + movs r7, #0x26 + ldrsh r1, [r5, r7] + movs r0, #0x10 + rsbs r0, r0, #0 + cmp r1, r0 + bge _080B6F32 + adds r0, r2, #1 + strh r0, [r4, #0x12] + ldrb r0, [r6, #3] + movs r2, #4 + orrs r0, r2 + strb r0, [r6, #3] + ldrb r1, [r5, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #5] + adds r2, r5, #0 + adds r2, #0x42 + ldrb r1, [r2] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2] +_080B6F32: + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080B6F48 + movs r7, #0x10 + ldrsh r0, [r4, r7] + cmp r0, #0 + beq _080B6F48 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080B6F48: + movs r0, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_080B6E5C + + thumb_func_start sub_080B6F50 +sub_080B6F50: @ 0x080B6F50 + push {r4, lr} + adds r4, r0, #0 + bl TryFadeOutOldMapMusic + bl WarpFadeScreen + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080B6F50 + + thumb_func_start sub_080B6F6C +sub_080B6F6C: @ 0x080B6F6C + push {lr} + ldr r0, _080B6FAC + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080B6FA4 + bl BGMusicStopped + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080B6FA4 + bl WarpIntoMap + ldr r1, _080B6FB0 + ldr r0, _080B6FB4 + str r0, [r1] + ldr r0, _080B6FB8 + bl SetMainCallback2 + ldr r0, _080B6FBC + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_080B6FA4: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_080B6FAC: .4byte 0x02037C74 +_080B6FB0: .4byte 0x03005B0C +_080B6FB4: .4byte 0x080B6FC1 +_080B6FB8: .4byte 0x08085935 +_080B6FBC: .4byte 0x080B6D49 + thumb_func_end sub_080B6F6C + + thumb_func_start mapldr_080851BC +mapldr_080851BC: @ 0x080B6FC0 + push {lr} + bl Overworld_PlaySpecialMapMusic + bl pal_fill_for_maplights + bl ScriptContext2_Enable + ldr r0, _080B6FE0 + movs r1, #0 + str r1, [r0] + ldr r0, _080B6FE4 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080B6FE0: .4byte 0x03005B0C +_080B6FE4: .4byte 0x080B6FE9 + thumb_func_end mapldr_080851BC + + thumb_func_start sub_080B6FE8 +sub_080B6FE8: @ 0x080B6FE8 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r6, _080B7030 + ldr r2, _080B7034 + ldr r5, _080B7038 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_080B6FFC: + movs r0, #8 + ldrsh r3, [r4, r0] + lsls r3, r3, #2 + adds r3, r3, r6 + ldrb r0, [r5, #5] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080B703C + adds r1, r1, r0 + ldrb r0, [r5, #4] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r0, _080B7040 + adds r2, r2, r0 + ldr r3, [r3] + adds r0, r4, #0 + bl _call_via_r3 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B6FFC + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080B7030: .4byte 0x085370FC +_080B7034: .4byte 0x03005B60 +_080B7038: .4byte 0x02037230 +_080B703C: .4byte 0x02036FF0 +_080B7040: .4byte 0x020205AC + thumb_func_end sub_080B6FE8 + + thumb_func_start sub_080B7044 +sub_080B7044: @ 0x080B7044 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl CameraObjectReset2 + bl FreezeEventObjects + ldr r1, _080B7070 + movs r0, #1 + strb r0, [r1, #6] + ldrb r0, [r4, #1] + movs r1, #0x20 + orrs r0, r1 + strb r0, [r4, #1] + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080B7070: .4byte 0x02037230 + thumb_func_end sub_080B7044 + + thumb_func_start sub_080B7074 +sub_080B7074: @ 0x080B7074 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + bl IsWeatherNotFadingIn + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B70B4 + ldr r1, _080B70BC + movs r2, #0x10 + ldrsh r0, [r5, r2] + str r0, [r1] + movs r2, #0x12 + ldrsh r0, [r5, r2] + str r0, [r1, #4] + adds r0, r6, #0 + adds r0, #0x43 + ldrb r0, [r0] + subs r0, #1 + str r0, [r1, #8] + ldrb r0, [r6, #5] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1e + str r0, [r1, #0xc] + movs r0, #0x31 + bl FieldEffectStart + strh r0, [r4, #0xa] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080B70B4: + movs r0, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080B70BC: .4byte 0x020388A8 + thumb_func_end sub_080B7074 + + thumb_func_start sub_080B70C0 +sub_080B70C0: @ 0x080B70C0 + push {r4, lr} + adds r2, r0, #0 + adds r4, r1, #0 + movs r0, #0xa + ldrsh r1, [r2, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B7110 + adds r0, r0, r1 + adds r0, #0x2b + ldrb r0, [r0] + cmp r0, #1 + bls _080B7108 + ldrh r0, [r2, #8] + adds r0, #1 + strh r0, [r2, #8] + ldrb r1, [r4, #1] + movs r0, #0x21 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #1] + bl CameraObjectReset1 + movs r0, #0xaf + bl PlaySE + movs r0, #4 + bl sub_08092E84 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetHeldMovement +_080B7108: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080B7110: .4byte 0x020205AC + thumb_func_end sub_080B70C0 + + thumb_func_start sub_080B7114 +sub_080B7114: @ 0x080B7114 + push {lr} + adds r0, r1, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B713E + ldr r1, _080B7144 + movs r0, #0 + strb r0, [r1, #6] + bl ScriptContext2_Disable + bl UnfreezeEventObjects + ldr r0, _080B7148 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_080B713E: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_080B7144: .4byte 0x02037230 +_080B7148: .4byte 0x080B6FE9 + thumb_func_end sub_080B7114 + + thumb_func_start FldEff_LavaridgeGymWarp +FldEff_LavaridgeGymWarp: @ 0x080B714C + push {r4, lr} + ldr r4, _080B71A4 + adds r1, r4, #4 + adds r0, r4, #0 + movs r2, #8 + movs r3, #8 + bl sub_08092A50 + ldr r0, _080B71A8 + adds r0, #0x84 + ldr r0, [r0] + movs r2, #0 + ldrsh r1, [r4, r2] + movs r3, #4 + ldrsh r2, [r4, r3] + ldrb r3, [r4, #8] + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080B71AC + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r1 + movs r1, #3 + ldrb r3, [r4, #0xc] + ands r3, r1 + lsls r3, r3, #2 + ldrb r4, [r2, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r4 + orrs r1, r3 + strb r1, [r2, #5] + adds r2, #0x3e + ldrb r1, [r2] + movs r3, #2 + orrs r1, r3 + strb r1, [r2] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080B71A4: .4byte 0x020388A8 +_080B71A8: .4byte 0x084DDE4C +_080B71AC: .4byte 0x020205AC + thumb_func_end FldEff_LavaridgeGymWarp + + thumb_func_start sub_080B71B0 +sub_080B71B0: @ 0x080B71B0 + push {lr} + adds r2, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080B71C8 + adds r0, r2, #0 + movs r1, #0x32 + bl FieldEffectStop +_080B71C8: + pop {r0} + bx r0 + thumb_func_end sub_080B71B0 + + thumb_func_start sub_080B71CC +sub_080B71CC: @ 0x080B71CC + push {lr} + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, _080B71E0 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080B71E0: .4byte 0x080B71E5 + thumb_func_end sub_080B71CC + + thumb_func_start sub_080B71E4 +sub_080B71E4: @ 0x080B71E4 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r6, _080B722C + ldr r2, _080B7230 + ldr r5, _080B7234 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_080B71F8: + movs r0, #8 + ldrsh r3, [r4, r0] + lsls r3, r3, #2 + adds r3, r3, r6 + ldrb r0, [r5, #5] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080B7238 + adds r1, r1, r0 + ldrb r0, [r5, #4] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r0, _080B723C + adds r2, r2, r0 + ldr r3, [r3] + adds r0, r4, #0 + bl _call_via_r3 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B71F8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080B722C: .4byte 0x0853710C +_080B7230: .4byte 0x03005B60 +_080B7234: .4byte 0x02037230 +_080B7238: .4byte 0x02036FF0 +_080B723C: .4byte 0x020205AC + thumb_func_end sub_080B71E4 + + thumb_func_start sub_080B7240 +sub_080B7240: @ 0x080B7240 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl FreezeEventObjects + bl CameraObjectReset2 + ldr r1, _080B726C + movs r0, #1 + strb r0, [r1, #6] + ldrb r0, [r4, #3] + movs r1, #4 + orrs r0, r1 + strb r0, [r4, #3] + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080B726C: .4byte 0x02037230 + thumb_func_end sub_080B7240 + + thumb_func_start sub_080B7270 +sub_080B7270: @ 0x080B7270 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + adds r0, r4, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B72E4 + ldrh r1, [r5, #0xa] + movs r2, #0xa + ldrsh r0, [r5, r2] + cmp r0, #3 + ble _080B72C4 + ldr r1, _080B72C0 + movs r2, #0x10 + ldrsh r0, [r4, r2] + str r0, [r1] + movs r2, #0x12 + ldrsh r0, [r4, r2] + str r0, [r1, #4] + adds r0, r6, #0 + adds r0, #0x43 + ldrb r0, [r0] + subs r0, #1 + str r0, [r1, #8] + ldrb r0, [r6, #5] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1e + str r0, [r1, #0xc] + movs r0, #0x31 + bl FieldEffectStart + strh r0, [r5, #0xa] + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + b _080B72E4 + .align 2, 0 +_080B72C0: .4byte 0x020388A8 +_080B72C4: + adds r0, r1, #1 + strh r0, [r5, #0xa] + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_08092F60 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetHeldMovement + movs r0, #0x27 + bl PlaySE +_080B72E4: + movs r0, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_080B7270 + + thumb_func_start sub_080B72EC +sub_080B72EC: @ 0x080B72EC + push {r4, lr} + adds r3, r0, #0 + adds r4, r1, #0 + ldr r2, _080B7320 + movs r0, #0xa + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x2b + ldrb r0, [r0] + cmp r0, #2 + bne _080B7316 + ldrb r0, [r4, #1] + movs r1, #0x20 + orrs r0, r1 + strb r0, [r4, #1] + ldrh r0, [r3, #8] + adds r0, #1 + strh r0, [r3, #8] +_080B7316: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080B7320: .4byte 0x020205AC + thumb_func_end sub_080B72EC + + thumb_func_start sub_080B7324 +sub_080B7324: @ 0x080B7324 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x31 + bl FieldEffectActiveListContains + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B7342 + bl TryFadeOutOldMapMusic + bl WarpFadeScreen + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080B7342: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080B7324 + + thumb_func_start sub_080B734C +sub_080B734C: @ 0x080B734C + push {lr} + ldr r0, _080B738C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080B7384 + bl BGMusicStopped + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080B7384 + bl WarpIntoMap + ldr r1, _080B7390 + ldr r0, _080B7394 + str r0, [r1] + ldr r0, _080B7398 + bl SetMainCallback2 + ldr r0, _080B739C + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_080B7384: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_080B738C: .4byte 0x02037C74 +_080B7390: .4byte 0x03005B0C +_080B7394: .4byte 0x080B62C1 +_080B7398: .4byte 0x08085935 +_080B739C: .4byte 0x080B71E5 + thumb_func_end sub_080B734C + + thumb_func_start FldEff_PopOutOfAsh +FldEff_PopOutOfAsh: @ 0x080B73A0 + push {r4, lr} + ldr r4, _080B73F8 + adds r1, r4, #4 + adds r0, r4, #0 + movs r2, #8 + movs r3, #8 + bl sub_08092A50 + ldr r0, _080B73FC + adds r0, #0x80 + ldr r0, [r0] + movs r2, #0 + ldrsh r1, [r4, r2] + movs r3, #4 + ldrsh r2, [r4, r3] + ldrb r3, [r4, #8] + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080B7400 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r1 + movs r1, #3 + ldrb r3, [r4, #0xc] + ands r3, r1 + lsls r3, r3, #2 + ldrb r4, [r2, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r4 + orrs r1, r3 + strb r1, [r2, #5] + adds r2, #0x3e + ldrb r1, [r2] + movs r3, #2 + orrs r1, r3 + strb r1, [r2] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080B73F8: .4byte 0x020388A8 +_080B73FC: .4byte 0x084DDE4C +_080B7400: .4byte 0x020205AC + thumb_func_end FldEff_PopOutOfAsh + + thumb_func_start sub_080B7404 +sub_080B7404: @ 0x080B7404 + push {lr} + adds r2, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080B741C + adds r0, r2, #0 + movs r1, #0x31 + bl FieldEffectStop +_080B741C: + pop {r0} + bx r0 + thumb_func_end sub_080B7404 + + thumb_func_start StartEscapeRopeFieldEffect +StartEscapeRopeFieldEffect: @ 0x080B7420 + push {lr} + bl ScriptContext2_Enable + bl FreezeEventObjects + ldr r0, _080B7438 + movs r1, #0x50 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080B7438: .4byte 0x080B743D + thumb_func_end StartEscapeRopeFieldEffect + + thumb_func_start DoEscapeRopeFieldEffect +DoEscapeRopeFieldEffect: @ 0x080B743C + push {lr} + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r3, _080B7464 + ldr r2, _080B7468 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r2, #8 + ldrsh r1, [r0, r2] + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080B7464: .4byte 0x08537120 +_080B7468: .4byte 0x03005B60 + thumb_func_end DoEscapeRopeFieldEffect + + thumb_func_start EscapeRopeFieldEffect_Step0 +EscapeRopeFieldEffect_Step0: @ 0x080B746C + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0x40 + strh r0, [r4, #0x24] + bl GetPlayerFacingDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x26] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end EscapeRopeFieldEffect_Step0 + + thumb_func_start EscapeRopeFieldEffect_Step1 +EscapeRopeFieldEffect_Step1: @ 0x080B748C + push {r4, r5, lr} + sub sp, #8 + adds r4, r0, #0 + ldr r1, _080B7530 + mov r0, sp + movs r2, #5 + bl memcpy + ldrh r1, [r4, #0x24] + movs r2, #0x24 + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _080B74B8 + subs r0, r1, #1 + strh r0, [r4, #0x24] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080B74B8 + bl TryFadeOutOldMapMusic + bl WarpFadeScreen +_080B74B8: + ldr r0, _080B7534 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B7538 + adds r5, r0, r1 + adds r0, r5, #0 + bl EventObjectIsMovementOverridden + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B74DE + adds r0, r5, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B7598 +_080B74DE: + movs r1, #0x24 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080B7550 + ldr r0, _080B753C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080B7550 + bl BGMusicStopped + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080B7550 + ldrh r1, [r4, #0x26] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl SetEventObjectDirection + bl SetWarpDestinationToEscapeWarp + bl WarpIntoMap + ldr r1, _080B7540 + ldr r0, _080B7544 + str r0, [r1] + ldr r0, _080B7548 + bl SetMainCallback2 + ldr r0, _080B754C + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + b _080B7598 + .align 2, 0 +_080B7530: .4byte 0x08537128 +_080B7534: .4byte 0x02037230 +_080B7538: .4byte 0x02036FF0 +_080B753C: .4byte 0x02037C74 +_080B7540: .4byte 0x03005B0C +_080B7544: .4byte 0x080B75A1 +_080B7548: .4byte 0x08085935 +_080B754C: .4byte 0x080B743D +_080B7550: + ldrh r1, [r4, #0xa] + movs r2, #0xa + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _080B7564 + subs r0, r1, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080B7598 +_080B7564: + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + add r0, sp + ldrb r0, [r0] + bl sub_08092CA0 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl EventObjectSetHeldMovement + ldrh r1, [r4, #0xc] + movs r2, #0xc + ldrsh r0, [r4, r2] + cmp r0, #0xb + bgt _080B758C + adds r0, r1, #1 + strh r0, [r4, #0xc] +_080B758C: + ldrh r1, [r4, #0xc] + lsls r1, r1, #0x10 + asrs r1, r1, #0x12 + movs r0, #8 + asrs r0, r1 + strh r0, [r4, #0xa] +_080B7598: + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end EscapeRopeFieldEffect_Step1 + + thumb_func_start mapldr_080859D4 +mapldr_080859D4: @ 0x080B75A0 + push {lr} + bl Overworld_PlaySpecialMapMusic + bl pal_fill_for_maplights + bl ScriptContext2_Enable + bl FreezeEventObjects + ldr r1, _080B75DC + movs r0, #0 + str r0, [r1] + ldr r2, _080B75E0 + ldr r0, _080B75E4 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #1] + movs r2, #0x20 + orrs r1, r2 + strb r1, [r0, #1] + ldr r0, _080B75E8 + movs r1, #0 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080B75DC: .4byte 0x03005B0C +_080B75E0: .4byte 0x02036FF0 +_080B75E4: .4byte 0x02037230 +_080B75E8: .4byte 0x080B75ED + thumb_func_end mapldr_080859D4 + + thumb_func_start ExecuteTeleportFieldEffectTask +ExecuteTeleportFieldEffectTask: @ 0x080B75EC + push {lr} + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r3, _080B7614 + ldr r2, _080B7618 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r2, #8 + ldrsh r1, [r0, r2] + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080B7614: .4byte 0x08537130 +_080B7618: .4byte 0x03005B60 + thumb_func_end ExecuteTeleportFieldEffectTask + + thumb_func_start sub_080B761C +sub_080B761C: @ 0x080B761C + push {r4, lr} + adds r4, r0, #0 + bl IsWeatherNotFadingIn + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B763A + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + bl GetPlayerFacingDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x26] +_080B763A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_080B761C + + thumb_func_start sub_080B7640 +sub_080B7640: @ 0x080B7640 + push {r4, r5, r6, lr} + sub sp, #8 + adds r5, r0, #0 + ldr r1, _080B76C4 + mov r0, sp + movs r2, #5 + bl memcpy + ldr r0, _080B76C8 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B76CC + adds r6, r0, r1 + ldrh r1, [r5, #0xa] + movs r2, #0xa + ldrsh r0, [r5, r2] + cmp r0, #0 + beq _080B7672 + subs r0, r1, #1 + strh r0, [r5, #0xa] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080B7704 +_080B7672: + adds r0, r6, #0 + bl EventObjectIsMovementOverridden + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B768A + adds r0, r6, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B7718 +_080B768A: + movs r1, #0xc + ldrsh r0, [r5, r1] + cmp r0, #0x1f + ble _080B76D4 + movs r2, #0x26 + ldrsh r4, [r5, r2] + bl GetPlayerFacingDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + bne _080B76D4 + ldrb r1, [r6, #1] + movs r0, #0x21 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r6, #1] + bl ScriptContext2_Disable + bl UnfreezeEventObjects + ldr r0, _080B76D0 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + b _080B7718 + .align 2, 0 +_080B76C4: .4byte 0x08537128 +_080B76C8: .4byte 0x02037230 +_080B76CC: .4byte 0x02036FF0 +_080B76D0: .4byte 0x080B75ED +_080B76D4: + ldrb r0, [r6, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + add r0, sp + ldrb r0, [r0] + bl sub_08092CA0 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r6, #0 + bl EventObjectSetHeldMovement + ldrh r1, [r5, #0xc] + movs r2, #0xc + ldrsh r0, [r5, r2] + cmp r0, #0x1f + bgt _080B76FC + adds r0, r1, #1 + strh r0, [r5, #0xc] +_080B76FC: + ldrh r0, [r5, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x12 + strh r0, [r5, #0xa] +_080B7704: + ldrb r2, [r6, #1] + lsls r1, r2, #0x1a + lsrs r1, r1, #0x1f + movs r0, #1 + eors r1, r0 + lsls r1, r1, #5 + subs r0, #0x22 + ands r0, r2 + orrs r0, r1 + strb r0, [r6, #1] +_080B7718: + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_080B7640 + + thumb_func_start sub_080B7720 +sub_080B7720: @ 0x080B7720 + push {lr} + ldr r0, _080B7730 + movs r1, #0 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080B7730: .4byte 0x080B7735 + thumb_func_end sub_080B7720 + + thumb_func_start sub_080B7734 +sub_080B7734: @ 0x080B7734 + push {lr} + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r3, _080B775C + ldr r2, _080B7760 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r2, #8 + ldrsh r1, [r0, r2] + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080B775C: .4byte 0x08537138 +_080B7760: .4byte 0x03005B60 + thumb_func_end sub_080B7734 + + thumb_func_start TeleportFieldEffectTask1 +TeleportFieldEffectTask1: @ 0x080B7764 + push {r4, lr} + adds r4, r0, #0 + bl ScriptContext2_Enable + bl FreezeEventObjects + bl CameraObjectReset2 + bl GetPlayerFacingDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x26] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end TeleportFieldEffectTask1 + + thumb_func_start TeleportFieldEffectTask2 +TeleportFieldEffectTask2: @ 0x080B778C + push {r4, r5, lr} + sub sp, #8 + adds r4, r0, #0 + ldr r1, _080B7810 + mov r0, sp + movs r2, #5 + bl memcpy + ldr r0, _080B7814 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B7818 + adds r5, r0, r1 + ldrh r1, [r4, #0xa] + movs r2, #0xa + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _080B77BE + subs r0, r1, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080B77D8 +_080B77BE: + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + add r0, sp + ldrb r1, [r0] + adds r0, r5, #0 + bl EventObjectTurn + movs r0, #8 + strh r0, [r4, #0xa] + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] +_080B77D8: + movs r1, #0xc + ldrsh r0, [r4, r1] + cmp r0, #7 + ble _080B7806 + movs r2, #0x26 + ldrsh r1, [r4, r2] + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r1, r0 + bne _080B7806 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #4 + strh r0, [r4, #0xa] + movs r0, #8 + strh r0, [r4, #0xc] + movs r0, #1 + strh r0, [r4, #0xe] + movs r0, #0x2d + bl PlaySE +_080B7806: + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B7810: .4byte 0x08537128 +_080B7814: .4byte 0x02037230 +_080B7818: .4byte 0x02036FF0 + thumb_func_end TeleportFieldEffectTask2 + + thumb_func_start TeleportFieldEffectTask3 +TeleportFieldEffectTask3: @ 0x080B781C + push {r4, r5, lr} + sub sp, #8 + adds r4, r0, #0 + ldr r1, _080B78E0 + mov r0, sp + movs r2, #5 + bl memcpy + ldr r2, _080B78E4 + ldrb r1, [r2, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B78E8 + adds r3, r0, r1 + ldrb r1, [r2, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B78EC + adds r5, r0, r1 + ldrh r0, [r4, #0xa] + subs r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _080B7866 + movs r0, #4 + strh r0, [r4, #0xa] + ldrb r0, [r3, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + add r0, sp + ldrb r1, [r0] + adds r0, r3, #0 + bl EventObjectTurn +_080B7866: + ldrh r0, [r5, #0x22] + ldrh r1, [r4, #0xe] + subs r0, r0, r1 + strh r0, [r5, #0x22] + ldrh r1, [r4, #0xe] + ldrh r2, [r4, #0x10] + adds r0, r1, r2 + strh r0, [r4, #0x10] + ldrh r0, [r4, #0xc] + subs r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _080B7892 + movs r0, #4 + strh r0, [r4, #0xc] + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + bgt _080B7892 + lsls r0, r1, #1 + strh r0, [r4, #0xe] +_080B7892: + movs r1, #0x10 + ldrsh r0, [r4, r1] + cmp r0, #8 + ble _080B78C0 + ldrb r1, [r5, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r5, #5] + adds r2, r5, #0 + adds r2, #0x42 + ldrb r1, [r2] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0 + beq _080B78C0 + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2] +_080B78C0: + movs r2, #0x10 + ldrsh r0, [r4, r2] + cmp r0, #0xa7 + ble _080B78D6 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + bl TryFadeOutOldMapMusic + bl WarpFadeScreen +_080B78D6: + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B78E0: .4byte 0x08537128 +_080B78E4: .4byte 0x02037230 +_080B78E8: .4byte 0x02036FF0 +_080B78EC: .4byte 0x020205AC + thumb_func_end TeleportFieldEffectTask3 + + thumb_func_start TeleportFieldEffectTask4 +TeleportFieldEffectTask4: @ 0x080B78F0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080B7944 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080B793E + movs r1, #0x12 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080B7910 + bl ClearMirageTowerPulseBlendEffect + movs r0, #1 + strh r0, [r4, #0x12] +_080B7910: + bl BGMusicStopped + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080B793E + bl SetWarpDestinationToLastHealLocation + bl WarpIntoMap + ldr r0, _080B7948 + bl SetMainCallback2 + ldr r1, _080B794C + ldr r0, _080B7950 + str r0, [r1] + ldr r0, _080B7954 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_080B793E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B7944: .4byte 0x02037C74 +_080B7948: .4byte 0x08085935 +_080B794C: .4byte 0x03005B0C +_080B7950: .4byte 0x080B7959 +_080B7954: .4byte 0x080B7735 + thumb_func_end TeleportFieldEffectTask4 + + thumb_func_start mapldr_08085D88 +mapldr_08085D88: @ 0x080B7958 + push {lr} + bl Overworld_PlaySpecialMapMusic + bl pal_fill_for_maplights + bl ScriptContext2_Enable + bl FreezeEventObjects + ldr r1, _080B7998 + movs r0, #0 + str r0, [r1] + ldr r2, _080B799C + ldr r0, _080B79A0 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #1] + movs r2, #0x20 + orrs r1, r2 + strb r1, [r0, #1] + bl CameraObjectReset2 + ldr r0, _080B79A4 + movs r1, #0 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080B7998: .4byte 0x03005B0C +_080B799C: .4byte 0x02036FF0 +_080B79A0: .4byte 0x02037230 +_080B79A4: .4byte 0x080B79A9 + thumb_func_end mapldr_08085D88 + + thumb_func_start sub_080B79A8 +sub_080B79A8: @ 0x080B79A8 + push {lr} + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r3, _080B79D0 + ldr r2, _080B79D4 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r2, #8 + ldrsh r1, [r0, r2] + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080B79D0: .4byte 0x08537148 +_080B79D4: .4byte 0x03005B60 + thumb_func_end sub_080B79A8 + + thumb_func_start sub_080B79D8 +sub_080B79D8: @ 0x080B79D8 + push {r4, r5, r6, lr} + adds r6, r0, #0 + bl IsWeatherNotFadingIn + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B7A4E + ldr r5, _080B7A54 + ldrb r0, [r5, #4] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r0, _080B7A58 + adds r2, r2, r0 + adds r0, r2, #0 + adds r0, #0x29 + movs r4, #0 + ldrsb r4, [r0, r4] + lsls r0, r4, #0x11 + rsbs r0, r0, #0 + ldrh r1, [r2, #0x22] + ldr r3, _080B7A5C + adds r1, r1, r4 + ldrh r3, [r3] + adds r1, r1, r3 + asrs r0, r0, #0x10 + adds r0, r0, r1 + rsbs r0, r0, #0 + strh r0, [r2, #0x26] + ldr r3, _080B7A60 + ldrb r0, [r5, #5] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrb r3, [r1, #1] + movs r0, #0x21 + rsbs r0, r0, #0 + ands r0, r3 + strb r0, [r1, #1] + ldrh r0, [r6, #8] + adds r0, #1 + strh r0, [r6, #8] + movs r0, #8 + strh r0, [r6, #0xa] + movs r0, #1 + strh r0, [r6, #0xc] + adds r2, #0x42 + ldrb r0, [r2] + lsrs r0, r0, #6 + strh r0, [r6, #0x24] + bl GetPlayerFacingDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r6, #0x26] + movs r0, #0x2d + bl PlaySE +_080B7A4E: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080B7A54: .4byte 0x02037230 +_080B7A58: .4byte 0x020205AC +_080B7A5C: .4byte 0x02021B3A +_080B7A60: .4byte 0x02036FF0 + thumb_func_end sub_080B79D8 + + thumb_func_start sub_080B7A64 +sub_080B7A64: @ 0x080B7A64 + push {r4, r5, r6, r7, lr} + sub sp, #8 + adds r4, r0, #0 + ldr r1, _080B7ACC + mov r0, sp + movs r2, #5 + bl memcpy + ldr r2, _080B7AD0 + ldrb r1, [r2, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B7AD4 + adds r6, r0, r1 + ldrb r1, [r2, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B7AD8 + adds r5, r0, r1 + ldrh r0, [r4, #0xa] + ldrh r1, [r5, #0x26] + adds r0, r0, r1 + strh r0, [r5, #0x26] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #8 + rsbs r1, r1, #0 + cmp r0, r1 + blt _080B7ADC + ldrh r1, [r4, #0x22] + movs r2, #0x22 + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _080B7B02 + adds r0, r1, #1 + strh r0, [r4, #0x22] + ldrb r0, [r6] + movs r1, #4 + orrs r0, r1 + strb r0, [r6] + ldrh r1, [r4, #0x24] + adds r3, r5, #0 + adds r3, #0x42 + lsls r1, r1, #6 + ldrb r2, [r3] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _080B7B02 + .align 2, 0 +_080B7ACC: .4byte 0x08537128 +_080B7AD0: .4byte 0x02037230 +_080B7AD4: .4byte 0x02036FF0 +_080B7AD8: .4byte 0x020205AC +_080B7ADC: + ldrb r1, [r5, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r5, #5] + adds r2, r5, #0 + adds r2, #0x42 + ldrb r1, [r2] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0 + beq _080B7B02 + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2] +_080B7B02: + ldrh r2, [r5, #0x26] + movs r3, #0x26 + ldrsh r1, [r5, r3] + movs r0, #0x30 + rsbs r0, r0, #0 + cmp r1, r0 + blt _080B7B26 + ldrh r1, [r4, #0xa] + movs r3, #0xa + ldrsh r0, [r4, r3] + cmp r0, #1 + ble _080B7B26 + movs r0, #1 + ands r0, r2 + cmp r0, #0 + bne _080B7B26 + subs r0, r1, #1 + strh r0, [r4, #0xa] +_080B7B26: + ldrh r0, [r4, #0xc] + subs r0, #1 + movs r7, #0 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080B7B48 + movs r0, #4 + strh r0, [r4, #0xc] + ldrb r0, [r6, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + add r0, sp + ldrb r1, [r0] + adds r0, r6, #0 + bl EventObjectTurn +_080B7B48: + movs r1, #0x26 + ldrsh r0, [r5, r1] + cmp r0, #0 + blt _080B7B5E + strh r7, [r5, #0x26] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #1 + strh r0, [r4, #0xa] + strh r7, [r4, #0xc] +_080B7B5E: + add sp, #8 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080B7A64 + + thumb_func_start sub_080B7B68 +sub_080B7B68: @ 0x080B7B68 + push {r4, r5, lr} + sub sp, #8 + adds r4, r0, #0 + ldr r1, _080B7BE4 + mov r0, sp + movs r2, #5 + bl memcpy + ldr r0, _080B7BE8 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B7BEC + adds r5, r0, r1 + ldrh r0, [r4, #0xa] + subs r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080B7BDC + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + add r0, sp + ldrb r1, [r0] + adds r0, r5, #0 + bl EventObjectTurn + movs r0, #8 + strh r0, [r4, #0xa] + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _080B7BDC + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r1, r0 + bne _080B7BDC + bl ScriptContext2_Disable + bl CameraObjectReset1 + bl UnfreezeEventObjects + ldr r0, _080B7BF0 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_080B7BDC: + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B7BE4: .4byte 0x08537128 +_080B7BE8: .4byte 0x02037230 +_080B7BEC: .4byte 0x02036FF0 +_080B7BF0: .4byte 0x080B79A9 + thumb_func_end sub_080B7B68 + + thumb_func_start FldEff_FieldMoveShowMon +FldEff_FieldMoveShowMon: @ 0x080B7BF4 + push {r4, lr} + bl GetCurrentMapType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl IsMapTypeOutdoors + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080B7C14 + ldr r0, _080B7C10 + b _080B7C16 + .align 2, 0 +_080B7C10: .4byte 0x080B7CAD +_080B7C14: + ldr r0, _080B7C44 +_080B7C16: + movs r1, #0xff + bl CreateTask + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r2, _080B7C48 + ldr r0, [r2] + ldr r1, [r2, #4] + ldr r2, [r2, #8] + bl sub_080B83B8 + ldr r2, _080B7C4C + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r1, #0x26] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080B7C44: .4byte 0x080B800D +_080B7C48: .4byte 0x020388A8 +_080B7C4C: .4byte 0x03005B60 + thumb_func_end FldEff_FieldMoveShowMon + + thumb_func_start FldEff_FieldMoveShowMonInit +FldEff_FieldMoveShowMonInit: @ 0x080B7C50 + push {r4, r5, r6, lr} + ldr r5, _080B7CA4 + ldr r0, [r5] + movs r6, #0x80 + lsls r6, r6, #0x18 + ands r6, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x64 + adds r4, r0, #0 + muls r4, r1, r4 + ldr r0, _080B7CA8 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + str r0, [r5] + adds r0, r4, #0 + movs r1, #1 + bl GetMonData + str r0, [r5, #4] + adds r0, r4, #0 + movs r1, #0 + bl GetMonData + str r0, [r5, #8] + ldr r0, [r5] + orrs r0, r6 + str r0, [r5] + movs r0, #6 + bl FieldEffectStart + movs r0, #0x3b + bl FieldEffectActiveListRemove + movs r0, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080B7CA4: .4byte 0x020388A8 +_080B7CA8: .4byte 0x02024190 + thumb_func_end FldEff_FieldMoveShowMonInit + + thumb_func_start sub_080B7CAC +sub_080B7CAC: @ 0x080B7CAC + push {lr} + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r3, _080B7CD4 + ldr r2, _080B7CD8 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r2, #8 + ldrsh r1, [r0, r2] + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080B7CD4: .4byte 0x08537154 +_080B7CD8: .4byte 0x03005B60 + thumb_func_end sub_080B7CAC + + thumb_func_start sub_080B7CDC +sub_080B7CDC: @ 0x080B7CDC + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080B7D38 + ldrh r0, [r0] + strh r0, [r4, #0x1e] + ldr r0, _080B7D3C + ldrh r0, [r0] + strh r0, [r4, #0x20] + adds r0, r4, #0 + adds r0, #0x22 + ldr r1, _080B7D40 + ldr r1, [r1, #0xc] + bl StoreWordInTwoHalfwords + ldr r1, _080B7D44 + strh r1, [r4, #0xa] + ldr r0, _080B7D48 + strh r0, [r4, #0xc] + movs r0, #0x3f + strh r0, [r4, #0xe] + movs r0, #0x3e + strh r0, [r4, #0x10] + movs r0, #0x40 + bl SetGpuReg + ldrh r1, [r4, #0xc] + movs r0, #0x44 + bl SetGpuReg + ldrh r1, [r4, #0xe] + movs r0, #0x48 + bl SetGpuReg + ldrh r1, [r4, #0x10] + movs r0, #0x4a + bl SetGpuReg + ldr r0, _080B7D4C + bl SetVBlankCallback + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B7D38: .4byte 0x04000048 +_080B7D3C: .4byte 0x0400004A +_080B7D40: .4byte 0x03002360 +_080B7D44: .4byte 0x0000F0F1 +_080B7D48: .4byte 0x00005051 +_080B7D4C: .4byte 0x080B7F65 + thumb_func_end sub_080B7CDC + + thumb_func_start sub_080B7D50 +sub_080B7D50: @ 0x080B7D50 + push {r4, r5, r6, lr} + sub sp, #4 + adds r6, r0, #0 + ldr r0, _080B7DA8 + ldrh r1, [r0] + lsrs r1, r1, #2 + lsls r1, r1, #0x1e + lsrs r1, r1, #0x10 + ldrh r4, [r0] + lsrs r4, r4, #8 + lsls r4, r4, #0x1b + lsrs r4, r4, #0x10 + ldr r0, _080B7DAC + movs r5, #0xc0 + lsls r5, r5, #0x13 + adds r1, r1, r5 + movs r2, #0x80 + lsls r2, r2, #1 + bl CpuSet + movs r0, #0 + str r0, [sp] + adds r5, r4, r5 + ldr r2, _080B7DB0 + mov r0, sp + adds r1, r5, #0 + bl CpuSet + ldr r0, _080B7DB4 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + adds r0, r4, #0 + bl sub_080B7FCC + ldrh r0, [r6, #8] + adds r0, #1 + strh r0, [r6, #8] + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080B7DA8: .4byte 0x04000008 +_080B7DAC: .4byte 0x08535AFC +_080B7DB0: .4byte 0x05000200 +_080B7DB4: .4byte 0x08535CFC + thumb_func_end sub_080B7D50 + + thumb_func_start sub_080B7DB8 +sub_080B7DB8: @ 0x080B7DB8 + push {r4, r5, r6, r7, lr} + adds r3, r0, #0 + ldrh r0, [r3, #0x12] + subs r0, #0x10 + strh r0, [r3, #0x12] + ldrh r6, [r3, #0xa] + ldrh r2, [r3, #0xc] + movs r7, #0xff + lsrs r1, r6, #8 + subs r1, #0x10 + lsls r1, r1, #0x10 + lsrs r0, r2, #8 + subs r0, #2 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r7, #0 + ands r0, r2 + adds r5, r0, #2 + lsrs r2, r1, #0x10 + cmp r1, #0 + bge _080B7DE4 + movs r2, #0 +_080B7DE4: + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x27 + bgt _080B7DEE + movs r4, #0x28 +_080B7DEE: + cmp r5, #0x78 + ble _080B7DF4 + movs r5, #0x78 +_080B7DF4: + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + lsls r1, r2, #8 + adds r0, r7, #0 + ands r0, r6 + orrs r1, r0 + strh r1, [r3, #0xa] + lsls r0, r4, #0x10 + asrs r4, r0, #0x10 + lsls r0, r4, #8 + adds r1, r5, #0 + orrs r0, r1 + strh r0, [r3, #0xc] + cmp r2, #0 + bne _080B7E34 + cmp r4, #0x28 + bne _080B7E34 + cmp r1, #0x78 + bne _080B7E34 + ldr r2, _080B7E3C + movs r0, #0x26 + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, _080B7E40 + str r1, [r0] + ldrh r0, [r3, #8] + adds r0, #1 + strh r0, [r3, #8] +_080B7E34: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080B7E3C: .4byte 0x020205AC +_080B7E40: .4byte 0x080B8419 + thumb_func_end sub_080B7DB8 + + thumb_func_start sub_080B7E44 +sub_080B7E44: @ 0x080B7E44 + push {lr} + adds r3, r0, #0 + ldrh r0, [r3, #0x12] + subs r0, #0x10 + strh r0, [r3, #0x12] + ldr r2, _080B7E70 + movs r0, #0x26 + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0x3c + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _080B7E6A + ldrh r0, [r3, #8] + adds r0, #1 + strh r0, [r3, #8] +_080B7E6A: + pop {r0} + bx r0 + .align 2, 0 +_080B7E70: .4byte 0x020205AC + thumb_func_end sub_080B7E44 + + thumb_func_start sub_080B7E74 +sub_080B7E74: @ 0x080B7E74 + push {r4, lr} + adds r3, r0, #0 + ldrh r0, [r3, #0x12] + subs r0, #0x10 + strh r0, [r3, #0x12] + ldrh r2, [r3, #0xc] + lsls r1, r2, #0x10 + movs r0, #0xff + asrs r1, r1, #0x18 + adds r1, #6 + lsls r1, r1, #0x10 + ands r0, r2 + subs r0, #6 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + lsrs r4, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #0x50 + ble _080B7E9C + movs r4, #0x50 +_080B7E9C: + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x50 + bgt _080B7EA6 + movs r2, #0x51 +_080B7EA6: + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + lsls r1, r0, #8 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + orrs r1, r2 + strh r1, [r3, #0xc] + cmp r0, #0x50 + bne _080B7EC2 + cmp r2, #0x51 + bne _080B7EC2 + ldrh r0, [r3, #8] + adds r0, #1 + strh r0, [r3, #8] +_080B7EC2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_080B7E74 + + thumb_func_start sub_080B7EC8 +sub_080B7EC8: @ 0x080B7EC8 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + ldr r0, _080B7F08 + ldrh r1, [r0] + lsrs r1, r1, #8 + lsls r1, r1, #0x1b + lsrs r1, r1, #0x10 + movs r0, #0 + str r0, [sp] + movs r0, #0xc0 + lsls r0, r0, #0x13 + adds r1, r1, r0 + ldr r2, _080B7F0C + mov r0, sp + bl CpuSet + movs r0, #0xf1 + strh r0, [r4, #0xa] + movs r0, #0xa1 + strh r0, [r4, #0xc] + ldrh r0, [r4, #0x1e] + strh r0, [r4, #0xe] + ldrh r0, [r4, #0x20] + strh r0, [r4, #0x10] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B7F08: .4byte 0x04000008 +_080B7F0C: .4byte 0x05000200 + thumb_func_end sub_080B7EC8 + + thumb_func_start overworld_bg_setup_2 +overworld_bg_setup_2: @ 0x080B7F10 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + adds r0, #0x22 + mov r1, sp + bl LoadWordFromTwoHalfwords + ldr r0, [sp] + bl SetVBlankCallback + bl sub_08196DF4 + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B7F5C + adds r0, r0, r1 + ldrh r1, [r4, #0x26] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl FreeResourcesAndDestroySprite + movs r0, #6 + bl FieldEffectActiveListRemove + ldr r0, _080B7F60 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B7F5C: .4byte 0x020205AC +_080B7F60: .4byte 0x080B7CAD + thumb_func_end overworld_bg_setup_2 + + thumb_func_start sub_080B7F64 +sub_080B7F64: @ 0x080B7F64 + push {r4, lr} + sub sp, #4 + ldr r0, _080B7FC4 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _080B7FC8 + adds r4, r4, r0 + adds r0, r4, #0 + adds r0, #0x22 + mov r1, sp + bl LoadWordFromTwoHalfwords + ldr r0, [sp] + bl _call_via_r0 + thumb_func_end sub_080B7F64 + + thumb_func_start sub_080B7F8C +sub_080B7F8C: @ 0x080B7F8C + ldrh r1, [r4, #0xa] + movs r0, #0x40 + bl SetGpuReg + ldrh r1, [r4, #0xc] + movs r0, #0x44 + bl SetGpuReg + ldrh r1, [r4, #0xe] + movs r0, #0x48 + bl SetGpuReg + ldrh r1, [r4, #0x10] + movs r0, #0x4a + bl SetGpuReg + ldrh r1, [r4, #0x12] + movs r0, #0x10 + bl SetGpuReg + ldrh r1, [r4, #0x14] + movs r0, #0x12 + bl SetGpuReg + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B7FC4: .4byte 0x080B7CAD +_080B7FC8: .4byte 0x03005B60 + thumb_func_end sub_080B7F8C + + thumb_func_start sub_080B7FCC +sub_080B7FCC: @ 0x080B7FCC + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _080B8000 + adds r2, r0, r1 + movs r1, #0 + ldr r5, _080B8004 + movs r0, #0xf0 + lsls r0, r0, #8 + adds r4, r0, #0 + ldr r3, _080B8008 +_080B7FE2: + lsls r0, r1, #1 + adds r0, r0, r5 + ldrh r0, [r0] + orrs r0, r4 + strh r0, [r2] + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + adds r2, #2 + cmp r1, r3 + bls _080B7FE2 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B8000: .4byte 0x06000140 +_080B8004: .4byte 0x08535D1C +_080B8008: .4byte 0x0000013F + thumb_func_end sub_080B7FCC + + thumb_func_start sub_080B800C +sub_080B800C: @ 0x080B800C + push {lr} + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r3, _080B8034 + ldr r2, _080B8038 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r2, #8 + ldrsh r1, [r0, r2] + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080B8034: .4byte 0x08537170 +_080B8038: .4byte 0x03005B60 + thumb_func_end sub_080B800C + + thumb_func_start sub_080B803C +sub_080B803C: @ 0x080B803C + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0xa] + movs r0, #0x10 + bl SetGpuReg + ldrh r1, [r4, #0xc] + movs r0, #0x12 + bl SetGpuReg + adds r0, r4, #0 + adds r0, #0x22 + ldr r1, _080B8070 + ldr r1, [r1, #0xc] + bl StoreWordInTwoHalfwords + ldr r0, _080B8074 + bl SetVBlankCallback + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B8070: .4byte 0x03002360 +_080B8074: .4byte 0x080B8239 + thumb_func_end sub_080B803C + + thumb_func_start sub_080B8078 +sub_080B8078: @ 0x080B8078 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #4 + adds r6, r0, #0 + ldr r0, _080B80D4 + ldrh r1, [r0] + lsrs r1, r1, #2 + lsls r1, r1, #0x1e + lsrs r1, r1, #0x10 + ldrh r4, [r0] + lsrs r4, r4, #8 + lsls r4, r4, #0x1b + lsrs r4, r4, #0x10 + movs r0, #0 + mov r8, r0 + strh r4, [r6, #0x20] + ldr r0, _080B80D8 + movs r5, #0xc0 + lsls r5, r5, #0x13 + adds r1, r1, r5 + movs r2, #0x40 + bl CpuSet + mov r0, r8 + str r0, [sp] + adds r4, r4, r5 + ldr r2, _080B80DC + mov r0, sp + adds r1, r4, #0 + bl CpuSet + ldr r0, _080B80E0 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + ldrh r0, [r6, #8] + adds r0, #1 + strh r0, [r6, #8] + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080B80D4: .4byte 0x04000008 +_080B80D8: .4byte 0x08535F9C +_080B80DC: .4byte 0x05000200 +_080B80E0: .4byte 0x0853601C + thumb_func_end sub_080B8078 + + thumb_func_start sub_080B80E4 +sub_080B80E4: @ 0x080B80E4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080B8290 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B811C + movs r0, #0x42 + movs r1, #0xf0 + bl SetGpuReg + ldr r1, _080B8128 + movs r0, #0x46 + bl SetGpuReg + ldr r2, _080B812C + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, _080B8130 + str r1, [r0] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080B811C: + adds r0, r4, #0 + bl sub_080B8280 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B8128: .4byte 0x00002878 +_080B812C: .4byte 0x020205AC +_080B8130: .4byte 0x080B8419 + thumb_func_end sub_080B80E4 + + thumb_func_start sub_080B8134 +sub_080B8134: @ 0x080B8134 + push {r4, lr} + adds r4, r0, #0 + bl sub_080B8280 + ldr r2, _080B8160 + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0x3c + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _080B8158 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080B8158: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B8160: .4byte 0x020205AC + thumb_func_end sub_080B8134 + + thumb_func_start sub_080B8164 +sub_080B8164: @ 0x080B8164 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080B8280 + ldrh r1, [r4, #0xa] + movs r0, #7 + ands r0, r1 + movs r1, #0 + strh r0, [r4, #0xe] + strh r1, [r4, #0x10] + ldr r5, _080B8198 + movs r0, #0x42 + adds r1, r5, #0 + bl SetGpuReg + movs r0, #0x46 + adds r1, r5, #0 + bl SetGpuReg + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B8198: .4byte 0x0000FFFF + thumb_func_end sub_080B8164 + + thumb_func_start sub_080B819C +sub_080B819C: @ 0x080B819C + push {r4, lr} + adds r4, r0, #0 + bl sub_080B8280 + adds r0, r4, #0 + bl sub_080B8348 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B81B6 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080B81B6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_080B819C + + thumb_func_start sub_080B81BC +sub_080B81BC: @ 0x080B81BC + push {r4, lr} + sub sp, #8 + adds r4, r0, #0 + ldr r0, _080B8228 + ldrh r1, [r0] + lsrs r1, r1, #8 + lsls r1, r1, #0x1b + lsrs r1, r1, #0x10 + movs r0, #0 + str r0, [sp] + movs r0, #0xc0 + lsls r0, r0, #0x13 + adds r1, r1, r0 + ldr r2, _080B822C + mov r0, sp + bl CpuSet + adds r0, r4, #0 + adds r0, #0x22 + add r1, sp, #4 + bl LoadWordFromTwoHalfwords + ldr r0, [sp, #4] + bl SetVBlankCallback + bl sub_08196DF4 + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B8230 + adds r0, r0, r1 + ldrh r1, [r4, #0x26] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl FreeResourcesAndDestroySprite + movs r0, #6 + bl FieldEffectActiveListRemove + ldr r0, _080B8234 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + add sp, #8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B8228: .4byte 0x04000008 +_080B822C: .4byte 0x05000200 +_080B8230: .4byte 0x020205AC +_080B8234: .4byte 0x080B800D + thumb_func_end sub_080B81BC + + thumb_func_start sub_080B8238 +sub_080B8238: @ 0x080B8238 + push {r4, lr} + sub sp, #4 + ldr r0, _080B8278 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _080B827C + adds r4, r4, r0 + adds r0, r4, #0 + adds r0, #0x22 + mov r1, sp + bl LoadWordFromTwoHalfwords + ldr r0, [sp] + bl _call_via_r0 + thumb_func_end sub_080B8238 + + thumb_func_start sub_080B8260 +sub_080B8260: @ 0x080B8260 + ldrh r1, [r4, #0xa] + movs r0, #0x10 + bl SetGpuReg + ldrh r1, [r4, #0xc] + movs r0, #0x12 + bl SetGpuReg + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B8278: .4byte 0x080B800D +_080B827C: .4byte 0x03005B60 + thumb_func_end sub_080B8260 + + thumb_func_start sub_080B8280 +sub_080B8280: @ 0x080B8280 + ldrh r1, [r0, #0xa] + subs r1, #0x10 + strh r1, [r0, #0xa] + ldrh r1, [r0, #0xe] + adds r1, #0x10 + strh r1, [r0, #0xe] + bx lr + .align 2, 0 + thumb_func_end sub_080B8280 + + thumb_func_start sub_080B8290 +sub_080B8290: @ 0x080B8290 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r5, r0, #0 + ldrh r2, [r5, #0x10] + movs r1, #0x10 + ldrsh r0, [r5, r1] + cmp r0, #0x1f + ble _080B82AC + movs r0, #1 + b _080B8330 +_080B82AC: + ldrh r0, [r5, #0xe] + lsls r0, r0, #0x10 + asrs r3, r0, #0x13 + movs r1, #0x1f + ands r3, r1 + movs r4, #0x10 + ldrsh r0, [r5, r4] + cmp r3, r0 + blt _080B832E + movs r0, #0x20 + subs r3, r0, r3 + ands r3, r1 + subs r0, r0, r2 + mov ip, r0 + mov r7, ip + ands r7, r1 + mov ip, r7 + ldrh r0, [r5, #0x20] + ldr r1, _080B8340 + adds r1, r1, r0 + mov r8, r1 + movs r4, #0 + ldr r7, _080B8344 + mov sl, r7 + movs r0, #0xf0 + lsls r0, r0, #8 + mov sb, r0 + adds r1, r3, #1 + movs r0, #0x1f + ands r1, r0 + str r1, [sp] + mov r6, ip + adds r6, #1 + ands r6, r0 +_080B82F0: + lsls r1, r4, #5 + adds r2, r1, r3 + lsls r2, r2, #1 + add r2, r8 + mov r7, ip + adds r0, r7, r1 + lsls r0, r0, #1 + add r0, sl + ldrh r0, [r0] + mov r7, sb + orrs r0, r7 + strh r0, [r2] + ldr r0, [sp] + adds r2, r1, r0 + lsls r2, r2, #1 + add r2, r8 + adds r1, r6, r1 + lsls r1, r1, #1 + add r1, sl + ldrh r0, [r1] + mov r1, sb + orrs r0, r1 + strh r0, [r2] + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #9 + bls _080B82F0 + ldrh r0, [r5, #0x10] + adds r0, #2 + strh r0, [r5, #0x10] +_080B832E: + movs r0, #0 +_080B8330: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080B8340: .4byte 0x06000140 +_080B8344: .4byte 0x0853603C + thumb_func_end sub_080B8290 + + thumb_func_start sub_080B8348 +sub_080B8348: @ 0x080B8348 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r1, #0x10 + ldrsh r0, [r5, r1] + cmp r0, #0x1f + ble _080B8358 + movs r0, #1 + b _080B83AC +_080B8358: + ldrh r0, [r5, #0xe] + lsls r0, r0, #0x10 + asrs r0, r0, #0x13 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + movs r1, #0x10 + ldrsh r0, [r5, r1] + cmp r2, r0 + blt _080B83AA + ldrh r0, [r5, #0xa] + lsls r0, r0, #0x10 + asrs r2, r0, #0x13 + movs r0, #0x1f + ands r2, r0 + ldrh r0, [r5, #0x20] + ldr r1, _080B83B4 + adds r6, r0, r1 + movs r3, #0 + movs r0, #0xf0 + lsls r0, r0, #8 + adds r7, r0, #0 + adds r4, r2, #1 + movs r0, #0x1f + ands r4, r0 +_080B8388: + lsls r0, r3, #5 + adds r1, r0, r2 + lsls r1, r1, #1 + adds r1, r1, r6 + strh r7, [r1] + adds r0, r0, r4 + lsls r0, r0, #1 + adds r0, r0, r6 + strh r7, [r0] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #9 + bls _080B8388 + ldrh r0, [r5, #0x10] + adds r0, #2 + strh r0, [r5, #0x10] +_080B83AA: + movs r0, #0 +_080B83AC: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080B83B4: .4byte 0x06000140 + thumb_func_end sub_080B8348 + + thumb_func_start sub_080B83B8 +sub_080B83B8: @ 0x080B83B8 + push {r4, r5, r6, lr} + sub sp, #8 + adds r6, r0, #0 + movs r5, #0x80 + lsls r5, r5, #0x18 + ands r5, r6 + lsrs r5, r5, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + ldr r0, _080B840C + ands r6, r0 + lsls r0, r6, #0x10 + lsrs r0, r0, #0x10 + movs r3, #0xa0 + lsls r3, r3, #1 + movs r4, #0x50 + str r4, [sp] + movs r4, #0 + str r4, [sp, #4] + bl CreateMonSprite_FieldMove + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r1, _080B8410 + adds r2, r2, r1 + ldr r1, _080B8414 + str r1, [r2, #0x1c] + ldrb r3, [r2, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r3 + strb r1, [r2, #5] + strh r6, [r2, #0x2e] + strh r5, [r2, #0x3a] + add sp, #8 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080B840C: .4byte 0x7FFFFFFF +_080B8410: .4byte 0x020205AC +_080B8414: .4byte 0x08007141 + thumb_func_end sub_080B83B8 + + thumb_func_start sub_080B8418 +sub_080B8418: @ 0x080B8418 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0x20] + subs r0, #0x14 + strh r0, [r1, #0x20] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x78 + bgt _080B8458 + movs r0, #0x78 + strh r0, [r1, #0x20] + movs r0, #0x1e + strh r0, [r1, #0x30] + ldr r0, _080B844C + str r0, [r1, #0x1c] + movs r2, #0x3a + ldrsh r0, [r1, r2] + cmp r0, #0 + beq _080B8450 + ldrh r0, [r1, #0x2e] + movs r1, #0 + movs r2, #0x7d + movs r3, #0xa + bl PlayCry2 + b _080B8458 + .align 2, 0 +_080B844C: .4byte 0x080B845D +_080B8450: + ldrh r0, [r1, #0x2e] + movs r1, #0 + bl PlayCry1 +_080B8458: + pop {r0} + bx r0 + thumb_func_end sub_080B8418 + + thumb_func_start sub_080B845C +sub_080B845C: @ 0x080B845C + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0x30] + subs r0, #1 + strh r0, [r1, #0x30] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080B8470 + ldr r0, _080B8474 + str r0, [r1, #0x1c] +_080B8470: + pop {r0} + bx r0 + .align 2, 0 +_080B8474: .4byte 0x080B8479 + thumb_func_end sub_080B845C + + thumb_func_start sub_080B8478 +sub_080B8478: @ 0x080B8478 + push {lr} + adds r2, r0, #0 + ldrh r3, [r2, #0x20] + movs r0, #0x20 + ldrsh r1, [r2, r0] + movs r0, #0x40 + rsbs r0, r0, #0 + cmp r1, r0 + bge _080B8490 + movs r0, #1 + strh r0, [r2, #0x3c] + b _080B8496 +_080B8490: + adds r0, r3, #0 + subs r0, #0x14 + strh r0, [r2, #0x20] +_080B8496: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080B8478 + + thumb_func_start FldEff_UseSurf +FldEff_UseSurf: @ 0x080B849C + push {lr} + ldr r0, _080B84CC + movs r1, #0xff + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080B84D0 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r0, _080B84D4 + ldr r0, [r0] + strh r0, [r1, #0x26] + bl Overworld_ClearSavedMusic + ldr r0, _080B84D8 + bl Overworld_ChangeMusicTo + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_080B84CC: .4byte 0x080B84DD +_080B84D0: .4byte 0x03005B60 +_080B84D4: .4byte 0x020388A8 +_080B84D8: .4byte 0x0000016D + thumb_func_end FldEff_UseSurf + + thumb_func_start sub_080B84DC +sub_080B84DC: @ 0x080B84DC + push {lr} + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r3, _080B8504 + ldr r2, _080B8508 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r2, #8 + ldrsh r1, [r0, r2] + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080B8504: .4byte 0x0853718C +_080B8508: .4byte 0x03005B60 + thumb_func_end sub_080B84DC + + thumb_func_start sub_080B850C +sub_080B850C: @ 0x080B850C + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r4, r0, #0 + bl ScriptContext2_Enable + bl FreezeEventObjects + ldr r5, _080B8564 + movs r0, #1 + strb r0, [r5, #6] + movs r0, #8 + bl SetPlayerAvatarStateMask + adds r6, r4, #0 + adds r6, #0xa + movs r0, #0xc + adds r0, r0, r4 + mov r8, r0 + adds r0, r6, #0 + mov r1, r8 + bl PlayerGetDestCoords + ldr r2, _080B8568 + ldrb r1, [r5, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #0x18] + lsrs r0, r0, #4 + adds r1, r6, #0 + mov r2, r8 + bl MoveCoords + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080B8564: .4byte 0x02037230 +_080B8568: .4byte 0x02036FF0 + thumb_func_end sub_080B850C + + thumb_func_start sub_080B856C +sub_080B856C: @ 0x080B856C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _080B85B0 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B85B4 + adds r4, r0, r1 + adds r0, r4, #0 + bl EventObjectIsMovementOverridden + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B8596 + adds r0, r4, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B85A8 +_080B8596: + bl sub_0808BA78 + adds r0, r4, #0 + movs r1, #0x39 + bl EventObjectSetHeldMovement + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] +_080B85A8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B85B0: .4byte 0x02037230 +_080B85B4: .4byte 0x02036FF0 + thumb_func_end sub_080B856C + + thumb_func_start sub_080B85B8 +sub_080B85B8: @ 0x080B85B8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080B85F4 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B85F8 + adds r0, r0, r1 + bl EventObjectCheckHeldMovementStatus + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B85EE + ldr r2, _080B85FC + movs r1, #0x26 + ldrsh r0, [r4, r1] + movs r1, #0x80 + lsls r1, r1, #0x18 + orrs r0, r1 + str r0, [r2] + movs r0, #0x3b + bl FieldEffectStart + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080B85EE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B85F4: .4byte 0x02037230 +_080B85F8: .4byte 0x02036FF0 +_080B85FC: .4byte 0x020388A8 + thumb_func_end sub_080B85B8 + + thumb_func_start sub_080B8600 +sub_080B8600: @ 0x080B8600 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r0, #6 + bl FieldEffectActiveListContains + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B866A + ldr r5, _080B8670 + ldrb r0, [r5, #5] + lsls r4, r0, #3 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _080B8674 + adds r4, r4, r0 + movs r0, #3 + bl GetPlayerAvatarGraphicsIdByStateId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetGraphicsId + adds r0, r4, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + ldrb r0, [r4, #0x18] + lsrs r0, r0, #4 + bl sub_08092EB0 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetHeldMovement + ldr r1, _080B8678 + movs r2, #0xa + ldrsh r0, [r6, r2] + str r0, [r1] + movs r2, #0xc + ldrsh r0, [r6, r2] + str r0, [r1, #4] + ldrb r0, [r5, #5] + str r0, [r1, #8] + movs r0, #8 + bl FieldEffectStart + strb r0, [r4, #0x1a] + ldrh r0, [r6, #8] + adds r0, #1 + strh r0, [r6, #8] +_080B866A: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080B8670: .4byte 0x02037230 +_080B8674: .4byte 0x02036FF0 +_080B8678: .4byte 0x020388A8 + thumb_func_end sub_080B8600 + + thumb_func_start sub_080B867C +sub_080B867C: @ 0x080B867C + push {r4, r5, lr} + ldr r5, _080B86E4 + ldrb r1, [r5, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B86E8 + adds r4, r0, r1 + adds r0, r4, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B86DC + movs r0, #0 + strb r0, [r5, #6] + ldrb r1, [r5] + movs r0, #0xdf + ands r0, r1 + strb r0, [r5] + ldrb r0, [r4, #0x18] + lsrs r0, r0, #4 + bl sub_08092CA0 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetHeldMovement + ldrb r0, [r4, #0x1a] + movs r1, #1 + bl sub_081554E8 + bl UnfreezeEventObjects + bl ScriptContext2_Disable + movs r0, #9 + bl FieldEffectActiveListRemove + ldr r0, _080B86EC + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_080B86DC: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B86E4: .4byte 0x02037230 +_080B86E8: .4byte 0x02036FF0 +_080B86EC: .4byte 0x080B84DD + thumb_func_end sub_080B867C + + thumb_func_start sub_080B86F0 +sub_080B86F0: @ 0x080B86F0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _080B87F4 + adds r0, #0x90 + ldr r0, [r0] + movs r2, #0x18 + rsbs r2, r2, #0 + movs r1, #0x78 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r1, r0, #4 + add r1, r8 + lsls r1, r1, #2 + ldr r0, _080B87F8 + adds r1, r1, r0 + ldrb r2, [r1, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + movs r2, #4 + orrs r0, r2 + movs r2, #0xf + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r1, #5] + movs r2, #0 + strh r2, [r1, #0x2e] + strh r2, [r1, #0x30] + strh r2, [r1, #0x32] + ldr r0, _080B87FC + strh r0, [r1, #0x34] + ldrh r0, [r1, #0x22] + strh r0, [r1, #0x36] + strh r2, [r1, #0x38] + ldr r1, _080B8800 + movs r0, #0x50 + bl SetGpuReg + ldr r1, _080B8804 + movs r0, #0x52 + bl SetGpuReg + ldr r1, _080B8808 + movs r0, #0x48 + bl SetGpuReg + ldr r0, _080B880C + movs r1, #0xc0 + movs r2, #0x20 + bl LoadPalette + movs r0, #0x12 + movs r1, #0x78 + bl SetGpuReg + movs r4, #3 + ldr r7, _080B8810 + ldr r0, _080B8814 + adds r6, r0, #0 +_080B8772: + movs r2, #0xc + lsls r0, r4, #1 + lsls r5, r4, #5 + adds r0, r0, r4 + lsls r3, r0, #1 +_080B877C: + adds r0, r5, r2 + lsls r0, r0, #1 + adds r0, r0, r7 + adds r1, r2, r6 + adds r1, r3, r1 + adds r1, #1 + strh r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x11 + bls _080B877C + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xe + bls _080B8772 + movs r0, #0 + ldr r5, _080B8818 +_080B87A2: + movs r4, #0 + adds r7, r0, #1 + lsls r6, r0, #5 +_080B87A8: + lsls r1, r4, #2 + adds r1, r6, r1 + ldr r0, _080B881C + adds r3, r1, r0 + adds r0, r1, #1 + adds r0, r0, r5 + ldrb r2, [r0] + lsls r2, r2, #8 + adds r0, r1, r5 + ldrb r0, [r0] + adds r0, r0, r2 + strh r0, [r3] + ldr r0, _080B8820 + adds r3, r1, r0 + adds r0, r1, #3 + adds r0, r0, r5 + ldrb r2, [r0] + lsls r2, r2, #8 + adds r1, #2 + adds r1, r1, r5 + ldrb r0, [r1] + adds r0, r0, r2 + strh r0, [r3] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #7 + bls _080B87A8 + lsls r0, r7, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x59 + bls _080B87A2 + mov r0, r8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080B87F4: .4byte 0x084DDE4C +_080B87F8: .4byte 0x020205AC +_080B87FC: .4byte 0x0000FFFF +_080B8800: .4byte 0x00003E41 +_080B8804: .4byte 0x00000E0E +_080B8808: .4byte 0x00003F3F +_080B880C: .4byte 0x085362BC +_080B8810: .4byte 0x0600F800 +_080B8814: .4byte 0x0000BFF4 +_080B8818: .4byte 0x085362DC +_080B881C: .4byte 0x06008020 +_080B8820: .4byte 0x06008022 + thumb_func_end sub_080B86F0 + + thumb_func_start FldEff_NPCFlyOut +FldEff_NPCFlyOut: @ 0x080B8824 + push {r4, lr} + ldr r0, _080B8870 + ldr r0, [r0, #0x68] + movs r1, #0x78 + movs r2, #0 + movs r3, #1 + bl CreateSprite + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r2, r4, #4 + adds r2, r2, r4 + lsls r2, r2, #2 + ldr r0, _080B8874 + adds r2, r2, r0 + ldrb r1, [r2, #5] + movs r0, #0xf + ands r0, r1 + movs r1, #0xd + rsbs r1, r1, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #5] + ldr r0, _080B8878 + str r0, [r2, #0x1c] + ldr r0, _080B887C + ldr r0, [r0] + strh r0, [r2, #0x30] + movs r0, #0x9e + bl PlaySE + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080B8870: .4byte 0x084DDE4C +_080B8874: .4byte 0x020205AC +_080B8878: .4byte 0x080B8881 +_080B887C: .4byte 0x020388A8 + thumb_func_end FldEff_NPCFlyOut + + thumb_func_start sub_080B8880 +sub_080B8880: @ 0x080B8880 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + movs r1, #0x8c + bl Cos + movs r5, #0 + strh r0, [r4, #0x24] + movs r2, #0x32 + ldrsh r0, [r4, r2] + movs r1, #0x48 + bl Sin + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x32] + adds r0, #4 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x32] + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _080B88E2 + movs r2, #0x30 + ldrsh r0, [r4, r2] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080B88F8 + adds r1, r1, r0 + adds r3, r1, #0 + adds r3, #0x3e + ldrb r2, [r3] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r3] + ldrh r0, [r4, #0x24] + ldrh r2, [r4, #0x20] + adds r0, r0, r2 + strh r0, [r1, #0x20] + ldrh r0, [r4, #0x26] + ldrh r2, [r4, #0x22] + adds r0, r0, r2 + subs r0, #8 + strh r0, [r1, #0x22] + strh r5, [r1, #0x24] + strh r5, [r1, #0x26] +_080B88E2: + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0x7f + ble _080B88F2 + adds r0, r4, #0 + movs r1, #0x1e + bl FieldEffectStop +_080B88F2: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B88F8: .4byte 0x020205AC + thumb_func_end sub_080B8880 + + thumb_func_start FldEff_UseFly +FldEff_UseFly: @ 0x080B88FC + push {lr} + ldr r0, _080B8920 + movs r1, #0xfe + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080B8924 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r0, _080B8928 + ldr r0, [r0] + strh r0, [r1, #0xa] + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_080B8920: .4byte 0x080B892D +_080B8924: .4byte 0x03005B60 +_080B8928: .4byte 0x020388A8 + thumb_func_end FldEff_UseFly + + thumb_func_start sub_080B892C +sub_080B892C: @ 0x080B892C + push {lr} + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r3, _080B8954 + ldr r2, _080B8958 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r2, #8 + ldrsh r1, [r0, r2] + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080B8954: .4byte 0x085371A0 +_080B8958: .4byte 0x03005B60 + thumb_func_end sub_080B892C + + thumb_func_start sub_080B895C +sub_080B895C: @ 0x080B895C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, _080B89AC + ldrb r1, [r6, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B89B0 + adds r4, r0, r1 + adds r0, r4, #0 + bl EventObjectIsMovementOverridden + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B8986 + adds r0, r4, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B89A4 +_080B8986: + ldrb r0, [r6] + strh r0, [r5, #0x26] + movs r0, #1 + strb r0, [r6, #6] + bl SetPlayerAvatarStateMask + bl sub_0808BA78 + adds r0, r4, #0 + movs r1, #0x39 + bl EventObjectSetHeldMovement + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] +_080B89A4: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080B89AC: .4byte 0x02037230 +_080B89B0: .4byte 0x02036FF0 + thumb_func_end sub_080B895C + + thumb_func_start sub_080B89B4 +sub_080B89B4: @ 0x080B89B4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080B89EC + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B89F0 + adds r0, r0, r1 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B89E4 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + ldr r1, _080B89F4 + movs r2, #0xa + ldrsh r0, [r4, r2] + str r0, [r1] + movs r0, #0x3b + bl FieldEffectStart +_080B89E4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B89EC: .4byte 0x02037230 +_080B89F0: .4byte 0x02036FF0 +_080B89F4: .4byte 0x020388A8 + thumb_func_end sub_080B89B4 + + thumb_func_start sub_080B89F8 +sub_080B89F8: @ 0x080B89F8 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #6 + bl FieldEffectActiveListContains + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B8A40 + ldr r0, _080B8A48 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B8A4C + adds r5, r0, r1 + ldrh r1, [r4, #0x26] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080B8A30 + ldrb r0, [r5, #0x1a] + movs r1, #2 + bl sub_081554E8 + ldrb r0, [r5, #0x1a] + movs r1, #0 + bl sub_08155514 +_080B8A30: + bl sub_080B8C1C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0xa] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080B8A40: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B8A48: .4byte 0x02037230 +_080B8A4C: .4byte 0x02036FF0 + thumb_func_end sub_080B89F8 + + thumb_func_start sub_080B8A50 +sub_080B8A50: @ 0x080B8A50 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + bl sub_080B8C60 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B8A84 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0x10 + strh r0, [r4, #0xc] + movs r0, #1 + bl SetPlayerAvatarTransitionFlags + ldr r0, _080B8A8C + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B8A90 + adds r0, r0, r1 + movs r1, #2 + bl EventObjectSetHeldMovement +_080B8A84: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B8A8C: .4byte 0x02037230 +_080B8A90: .4byte 0x02036FF0 + thumb_func_end sub_080B8A50 + + thumb_func_start sub_080B8A94 +sub_080B8A94: @ 0x080B8A94 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080B8AE0 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B8AE4 + adds r2, r0, r1 + ldrh r1, [r4, #0xc] + movs r3, #0xc + ldrsh r0, [r4, r3] + cmp r0, #0 + beq _080B8ABA + subs r0, r1, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080B8AD8 +_080B8ABA: + adds r0, r2, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B8AD8 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0x9e + bl PlaySE + ldrb r0, [r4, #0xa] + bl sub_080B8C7C +_080B8AD8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B8AE0: .4byte 0x02037230 +_080B8AE4: .4byte 0x02036FF0 + thumb_func_end sub_080B8A94 + + thumb_func_start sub_080B8AE8 +sub_080B8AE8: @ 0x080B8AE8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrh r0, [r5, #0xc] + adds r0, #1 + strh r0, [r5, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + ble _080B8B5E + ldr r0, _080B8B64 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B8B68 + adds r4, r0, r1 + movs r0, #3 + bl GetPlayerAvatarGraphicsIdByStateId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetGraphicsId + ldrb r1, [r4, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r6, _080B8B6C + adds r0, r0, r6 + movs r1, #0x16 + bl StartSpriteAnim + ldrb r0, [r4, #1] + movs r1, #0x10 + orrs r0, r1 + strb r0, [r4, #1] + adds r0, r4, #0 + movs r1, #0x48 + bl EventObjectSetHeldMovement + ldrh r1, [r5, #0x26] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080B8B54 + ldrb r1, [r4, #0x1a] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + bl DestroySprite +_080B8B54: + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + movs r0, #0 + strh r0, [r5, #0xc] +_080B8B5E: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080B8B64: .4byte 0x02037230 +_080B8B68: .4byte 0x02036FF0 +_080B8B6C: .4byte 0x020205AC + thumb_func_end sub_080B8AE8 + + thumb_func_start sub_080B8B70 +sub_080B8B70: @ 0x080B8B70 + push {r4, r5, lr} + adds r5, r0, #0 + ldrh r0, [r5, #0xc] + adds r0, #1 + strh r0, [r5, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #9 + ble _080B8BBC + ldr r0, _080B8BC4 + ldrb r0, [r0, #5] + lsls r4, r0, #3 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _080B8BC8 + adds r4, r4, r0 + adds r0, r4, #0 + bl EventObjectClearHeldMovementIfActive + ldrb r1, [r4, #1] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #1] + ldrb r1, [r4, #2] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #2] + ldrb r0, [r5, #0xa] + ldrb r1, [r4, #4] + bl sub_080B8CB8 + bl CameraObjectReset2 + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] +_080B8BBC: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B8BC4: .4byte 0x02037230 +_080B8BC8: .4byte 0x02036FF0 + thumb_func_end sub_080B8B70 + + thumb_func_start sub_080B8BCC +sub_080B8BCC: @ 0x080B8BCC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + bl sub_080B8C60 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B8BE6 + bl WarpFadeScreen + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080B8BE6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_080B8BCC + + thumb_func_start sub_080B8BEC +sub_080B8BEC: @ 0x080B8BEC + push {lr} + ldr r0, _080B8C14 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080B8C0E + movs r0, #0x1f + bl FieldEffectActiveListRemove + ldr r0, _080B8C18 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_080B8C0E: + pop {r0} + bx r0 + .align 2, 0 +_080B8C14: .4byte 0x02037C74 +_080B8C18: .4byte 0x080B892D + thumb_func_end sub_080B8BEC + + thumb_func_start sub_080B8C1C +sub_080B8C1C: @ 0x080B8C1C + push {lr} + ldr r0, _080B8C54 + ldr r0, [r0, #0x68] + movs r1, #0xff + movs r2, #0xb4 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r1, _080B8C58 + adds r2, r2, r1 + ldrb r3, [r2, #5] + movs r1, #0xf + ands r1, r3 + movs r3, #0xd + rsbs r3, r3, #0 + ands r1, r3 + movs r3, #4 + orrs r1, r3 + strb r1, [r2, #5] + ldr r1, _080B8C5C + str r1, [r2, #0x1c] + pop {r1} + bx r1 + .align 2, 0 +_080B8C54: .4byte 0x084DDE4C +_080B8C58: .4byte 0x020205AC +_080B8C5C: .4byte 0x080B8CD5 + thumb_func_end sub_080B8C1C + + thumb_func_start sub_080B8C60 +sub_080B8C60: @ 0x080B8C60 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080B8C78 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r0, [r1, #0x3c] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bx lr + .align 2, 0 +_080B8C78: .4byte 0x020205AC + thumb_func_end sub_080B8C60 + + thumb_func_start sub_080B8C7C +sub_080B8C7C: @ 0x080B8C7C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _080B8CB0 + adds r4, r4, r0 + ldr r0, _080B8CB4 + str r0, [r4, #0x1c] + movs r1, #0 + movs r0, #0x78 + strh r0, [r4, #0x20] + strh r1, [r4, #0x22] + strh r1, [r4, #0x24] + strh r1, [r4, #0x26] + adds r0, r4, #0 + adds r0, #0x2e + movs r2, #0x10 + bl memset + movs r0, #0x40 + strh r0, [r4, #0x3a] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B8CB0: .4byte 0x020205AC +_080B8CB4: .4byte 0x080B8D95 + thumb_func_end sub_080B8C7C + + thumb_func_start sub_080B8CB8 +sub_080B8CB8: @ 0x080B8CB8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r3, _080B8CD0 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r3 + strh r1, [r2, #0x3a] + bx lr + .align 2, 0 +_080B8CD0: .4byte 0x020205AC + thumb_func_end sub_080B8CB8 + + thumb_func_start sub_080B8CD4 +sub_080B8CD4: @ 0x080B8CD4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x3c + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080B8D80 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080B8D18 + ldrb r0, [r4, #1] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #1] + ldr r0, _080B8D88 + str r0, [r4, #0x10] + adds r0, r4, #0 + bl InitSpriteAffineAnim + adds r0, r4, #0 + movs r1, #0 + bl StartSpriteAffineAnim + movs r0, #0x76 + strh r0, [r4, #0x20] + ldr r0, _080B8D8C + strh r0, [r4, #0x22] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + movs r0, #0x40 + strh r0, [r4, #0x30] + adds r0, #0xc0 + strh r0, [r4, #0x32] +_080B8D18: + ldrh r0, [r4, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x30] + adds r0, r0, r1 + strh r0, [r4, #0x30] + movs r1, #0x30 + ldrsh r0, [r4, r1] + movs r1, #0x78 + bl Cos + strh r0, [r4, #0x24] + movs r1, #0x30 + ldrsh r0, [r4, r1] + movs r1, #0x78 + bl Sin + strh r0, [r4, #0x26] + ldrh r2, [r4, #0x32] + movs r0, #0x32 + ldrsh r1, [r4, r0] + ldr r0, _080B8D90 + cmp r1, r0 + bgt _080B8D4E + adds r0, r2, #0 + adds r0, #0x60 + strh r0, [r4, #0x32] +_080B8D4E: + movs r1, #0x30 + ldrsh r0, [r4, r1] + cmp r0, #0x81 + ble _080B8D80 + ldrh r0, [r4, #0x3c] + adds r0, #1 + strh r0, [r4, #0x3c] + ldrb r1, [r4, #1] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #1] + ldrb r0, [r4, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + ldrb r1, [r4, #1] + lsrs r1, r1, #6 + ldrb r2, [r4, #3] + lsrs r2, r2, #6 + adds r0, r4, #0 + movs r3, #0 + bl CalcCenterToCornerVec +_080B8D80: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B8D88: .4byte 0x085371F4 +_080B8D8C: .4byte 0x0000FFD0 +_080B8D90: .4byte 0x000007FF + thumb_func_end sub_080B8CD4 + + thumb_func_start sub_080B8D94 +sub_080B8D94: @ 0x080B8D94 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + movs r1, #0x8c + bl Cos + movs r5, #0 + strh r0, [r4, #0x24] + movs r2, #0x32 + ldrsh r0, [r4, r2] + movs r1, #0x48 + bl Sin + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x32] + adds r0, #4 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x32] + movs r1, #0x3a + ldrsh r0, [r4, r1] + cmp r0, #0x40 + beq _080B8DF2 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080B8E04 + adds r1, r1, r0 + adds r3, r1, #0 + adds r3, #0x3e + ldrb r2, [r3] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r3] + ldrh r0, [r4, #0x24] + ldrh r2, [r4, #0x20] + adds r0, r0, r2 + strh r0, [r1, #0x20] + ldrh r0, [r4, #0x26] + ldrh r2, [r4, #0x22] + adds r0, r0, r2 + subs r0, #8 + strh r0, [r1, #0x22] + strh r5, [r1, #0x24] + strh r5, [r1, #0x26] +_080B8DF2: + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0x7f + ble _080B8DFE + movs r0, #1 + strh r0, [r4, #0x3c] +_080B8DFE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B8E04: .4byte 0x020205AC + thumb_func_end sub_080B8D94 + + thumb_func_start sub_080B8E08 +sub_080B8E08: @ 0x080B8E08 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x3c + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080B8EDC + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _080B8E52 + ldrb r0, [r4, #1] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #1] + ldr r0, _080B8EE4 + str r0, [r4, #0x10] + adds r0, r4, #0 + bl InitSpriteAffineAnim + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAffineAnim + movs r0, #0x5e + strh r0, [r4, #0x20] + ldr r0, _080B8EE8 + strh r0, [r4, #0x22] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + movs r0, #0xf0 + strh r0, [r4, #0x30] + movs r0, #0x80 + lsls r0, r0, #4 + strh r0, [r4, #0x32] + movs r0, #0x80 + strh r0, [r4, #0x36] +_080B8E52: + ldrh r1, [r4, #0x32] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + ldrh r2, [r4, #0x30] + adds r2, r2, r1 + ldrh r0, [r4, #0x34] + adds r0, r0, r1 + strh r0, [r4, #0x34] + movs r0, #0xff + ands r2, r0 + strh r2, [r4, #0x30] + movs r3, #0x30 + ldrsh r0, [r4, r3] + movs r1, #0x20 + bl Cos + strh r0, [r4, #0x24] + movs r1, #0x30 + ldrsh r0, [r4, r1] + movs r1, #0x78 + bl Sin + strh r0, [r4, #0x26] + ldrh r1, [r4, #0x32] + movs r2, #0x32 + ldrsh r0, [r4, r2] + movs r2, #0x80 + lsls r2, r2, #1 + cmp r0, r2 + ble _080B8E94 + ldrh r0, [r4, #0x36] + subs r0, r1, r0 + strh r0, [r4, #0x32] +_080B8E94: + ldrh r1, [r4, #0x36] + movs r3, #0x36 + ldrsh r0, [r4, r3] + cmp r0, #0xff + bgt _080B8EA4 + adds r0, r1, #0 + adds r0, #0x18 + strh r0, [r4, #0x36] +_080B8EA4: + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0xff + bgt _080B8EAE + strh r2, [r4, #0x32] +_080B8EAE: + movs r2, #0x34 + ldrsh r0, [r4, r2] + cmp r0, #0x3b + ble _080B8EDC + ldrh r0, [r4, #0x3c] + adds r0, #1 + strh r0, [r4, #0x3c] + ldrb r1, [r4, #1] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #1] + ldrb r0, [r4, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] +_080B8EDC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B8EE4: .4byte 0x085371F4 +_080B8EE8: .4byte 0x0000FFE0 + thumb_func_end sub_080B8E08 + + thumb_func_start sub_080B8EEC +sub_080B8EEC: @ 0x080B8EEC + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl sub_080B8C7C + ldr r1, _080B8F10 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _080B8F14 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B8F10: .4byte 0x020205AC +_080B8F14: .4byte 0x080B8E09 + thumb_func_end sub_080B8EEC + + thumb_func_start sub_080B8F18 +sub_080B8F18: @ 0x080B8F18 + push {lr} + ldr r0, _080B8F28 + movs r1, #0xfe + bl CreateTask + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_080B8F28: .4byte 0x080B8F2D + thumb_func_end sub_080B8F18 + + thumb_func_start sub_080B8F2C +sub_080B8F2C: @ 0x080B8F2C + push {lr} + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r3, _080B8F54 + ldr r2, _080B8F58 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r2, #8 + ldrsh r1, [r0, r2] + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080B8F54: .4byte 0x085371FC +_080B8F58: .4byte 0x03005B60 + thumb_func_end sub_080B8F2C + + thumb_func_start sub_080B8F5C +sub_080B8F5C: @ 0x080B8F5C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, _080B9004 + ldrb r1, [r6, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B9008 + adds r4, r0, r1 + adds r0, r4, #0 + bl EventObjectIsMovementOverridden + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B8F86 + adds r0, r4, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B8FFE +_080B8F86: + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + movs r0, #0x11 + strh r0, [r5, #0xc] + ldrb r0, [r6] + strh r0, [r5, #0x26] + movs r0, #1 + strb r0, [r6, #6] + bl SetPlayerAvatarStateMask + ldrh r1, [r5, #0x26] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080B8FAE + ldrb r0, [r4, #0x1a] + movs r1, #0 + bl sub_081554E8 +_080B8FAE: + movs r0, #3 + bl GetPlayerAvatarGraphicsIdByStateId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetGraphicsId + bl CameraObjectReset2 + adds r0, r4, #0 + movs r1, #3 + bl EventObjectTurn + ldrb r1, [r4, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B900C + adds r0, r0, r1 + movs r1, #0x16 + bl StartSpriteAnim + ldrb r1, [r4, #1] + movs r0, #0x21 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #1] + bl sub_080B8C1C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0xa] + bl sub_080B8C7C + ldrb r0, [r5, #0xa] + ldrb r1, [r4, #4] + bl sub_080B8CB8 +_080B8FFE: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080B9004: .4byte 0x02037230 +_080B9008: .4byte 0x02036FF0 +_080B900C: .4byte 0x020205AC + thumb_func_end sub_080B8F5C + + thumb_func_start sub_080B9010 +sub_080B9010: @ 0x080B9010 + push {r4, r5, lr} + adds r5, r0, #0 + ldrh r1, [r5, #0xc] + movs r2, #0xc + ldrsh r0, [r5, r2] + cmp r0, #0 + beq _080B9028 + subs r0, r1, #1 + strh r0, [r5, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080B9068 +_080B9028: + ldr r0, _080B9070 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B9074 + adds r0, r0, r1 + ldrb r0, [r0, #4] + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _080B9078 + adds r4, r4, r0 + ldrb r0, [r5, #0xa] + movs r1, #0x40 + bl sub_080B8CB8 + ldrh r0, [r4, #0x24] + ldrh r1, [r4, #0x20] + adds r0, r0, r1 + movs r1, #0 + strh r0, [r4, #0x20] + ldrh r0, [r4, #0x26] + ldrh r2, [r4, #0x22] + adds r0, r0, r2 + strh r0, [r4, #0x22] + strh r1, [r4, #0x24] + strh r1, [r4, #0x26] + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + strh r1, [r5, #0xc] +_080B9068: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B9070: .4byte 0x02037230 +_080B9074: .4byte 0x02036FF0 +_080B9078: .4byte 0x020205AC + thumb_func_end sub_080B9010 + + thumb_func_start sub_080B907C +sub_080B907C: @ 0x080B907C + push {r4, lr} + sub sp, #0x24 + adds r4, r0, #0 + ldr r1, _080B90C4 + mov r0, sp + movs r2, #0x24 + bl memcpy + ldr r0, _080B90C8 + ldrb r0, [r0, #4] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080B90CC + adds r1, r1, r0 + movs r2, #0xc + ldrsh r0, [r4, r2] + lsls r0, r0, #1 + add r0, sp + ldrh r0, [r0] + strh r0, [r1, #0x26] + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x11 + ble _080B90BA + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080B90BA: + add sp, #0x24 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B90C4: .4byte 0x08537218 +_080B90C8: .4byte 0x02037230 +_080B90CC: .4byte 0x020205AC + thumb_func_end sub_080B907C + + thumb_func_start sub_080B90D0 +sub_080B90D0: @ 0x080B90D0 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r0, [r6, #0xa] + bl sub_080B8C60 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B9134 + ldr r0, _080B913C + ldrb r0, [r0, #5] + lsls r5, r0, #3 + adds r5, r5, r0 + lsls r5, r5, #2 + ldr r0, _080B9140 + adds r5, r5, r0 + ldrb r0, [r5, #4] + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _080B9144 + adds r4, r4, r0 + ldrb r1, [r5, #1] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r5, #1] + movs r0, #0x10 + ldrsh r1, [r5, r0] + movs r0, #0x12 + ldrsh r2, [r5, r0] + adds r0, r5, #0 + bl MoveEventObjectToMapCoords + movs r0, #0 + strh r0, [r4, #0x24] + strh r0, [r4, #0x26] + adds r4, #0x3e + ldrb r0, [r4] + movs r1, #2 + orrs r0, r1 + strb r0, [r4] + bl sub_0808BA78 + adds r0, r5, #0 + movs r1, #0x39 + bl EventObjectSetHeldMovement + ldrh r0, [r6, #8] + adds r0, #1 + strh r0, [r6, #8] +_080B9134: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080B913C: .4byte 0x02037230 +_080B9140: .4byte 0x02036FF0 +_080B9144: .4byte 0x020205AC + thumb_func_end sub_080B90D0 + + thumb_func_start sub_080B9148 +sub_080B9148: @ 0x080B9148 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080B9178 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B917C + adds r0, r0, r1 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B9170 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + ldrb r0, [r4, #0xa] + bl sub_080B8EEC +_080B9170: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B9178: .4byte 0x02037230 +_080B917C: .4byte 0x02036FF0 + thumb_func_end sub_080B9148 + + thumb_func_start sub_080B9180 +sub_080B9180: @ 0x080B9180 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + bl sub_080B8C60 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B91AC + movs r0, #0xa + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B91B4 + adds r0, r0, r1 + bl DestroySprite + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0x10 + strh r0, [r4, #0xa] +_080B91AC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B91B4: .4byte 0x020205AC + thumb_func_end sub_080B9180 + + thumb_func_start sub_080B91B8 +sub_080B91B8: @ 0x080B91B8 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldrh r0, [r5, #0xa] + subs r0, #1 + strh r0, [r5, #0xa] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080B9222 + ldr r6, _080B9228 + ldrb r1, [r6, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B922C + adds r4, r0, r1 + movs r7, #0 + ldrh r1, [r5, #0x26] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080B91EC + movs r7, #3 + ldrb r0, [r4, #0x1a] + movs r1, #1 + bl sub_081554E8 +_080B91EC: + adds r0, r7, #0 + bl GetPlayerAvatarGraphicsIdByStateId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetGraphicsId + adds r0, r4, #0 + movs r1, #1 + bl EventObjectTurn + ldrh r0, [r5, #0x26] + strb r0, [r6] + movs r0, #0 + strb r0, [r6, #6] + movs r0, #0x20 + bl FieldEffectActiveListRemove + ldr r0, _080B9230 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_080B9222: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080B9228: .4byte 0x02037230 +_080B922C: .4byte 0x02036FF0 +_080B9230: .4byte 0x080B8F2D + thumb_func_end sub_080B91B8 + + thumb_func_start sub_080B9234 +sub_080B9234: @ 0x080B9234 + push {r4, lr} + sub sp, #4 + ldr r4, _080B9278 + ldrb r0, [r4] + ldrb r1, [r4, #4] + ldrb r2, [r4, #8] + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B9284 + ldr r0, _080B927C + movs r1, #0x50 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080B9280 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + mov r0, sp + ldrb r0, [r0] + strh r0, [r1, #0xc] + ldr r0, [r4] + strh r0, [r1, #0x14] + ldr r0, [r4, #4] + strh r0, [r1, #0x16] + ldr r0, [r4, #8] + strh r0, [r1, #0x18] + b _080B928A + .align 2, 0 +_080B9278: .4byte 0x020388A8 +_080B927C: .4byte 0x080B9341 +_080B9280: .4byte 0x03005B60 +_080B9284: + movs r0, #0x41 + bl FieldEffectActiveListRemove +_080B928A: + movs r0, #0 + add sp, #4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_080B9234 + + thumb_func_start sub_080B9294 +sub_080B9294: @ 0x080B9294 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080B92CC + adds r4, r0, r1 + movs r1, #0xe + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _080B92D0 + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x14 + ble _080B92D4 + movs r0, #0 + strh r0, [r4, #0xc] + ldrh r1, [r4, #0xa] + movs r2, #0xa + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _080B92D4 + subs r0, r1, #1 + b _080B92D2 + .align 2, 0 +_080B92CC: .4byte 0x03005B68 +_080B92D0: + movs r0, #4 +_080B92D2: + strh r0, [r4, #0xa] +_080B92D4: + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _080B930E + movs r0, #0 + strh r0, [r4] + ldrh r0, [r4, #2] + adds r0, #1 + strh r0, [r4, #2] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _080B9304 + ldrh r1, [r4, #0xa] + rsbs r1, r1, #0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #0 + bl SetCameraPanning + b _080B930E +_080B9304: + movs r0, #0xa + ldrsh r1, [r4, r0] + movs r0, #0 + bl SetCameraPanning +_080B930E: + bl UpdateCameraPanning + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080B9320 + adds r0, r5, #0 + bl DestroyTask +_080B9320: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080B9294 + + thumb_func_start sub_080B9328 +sub_080B9328: @ 0x080B9328 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080B933C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r0, #1 + strh r0, [r1, #0x16] + bx lr + .align 2, 0 +_080B933C: .4byte 0x03005B60 + thumb_func_end sub_080B9328 + + thumb_func_start sub_080B9340 +sub_080B9340: @ 0x080B9340 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + ldr r0, _080B9378 + adds r4, r4, r0 + bl InstallCameraPanAheadCallback + movs r0, #0 + bl SetCameraPanningCallback + ldr r1, _080B937C + movs r2, #2 + ldrsh r0, [r4, r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r2, [r0] + adds r0, r4, #0 + adds r1, r5, #0 + bl _call_via_r2 + thumb_func_end sub_080B9340 + + thumb_func_start sub_080B9370 +sub_080B9370: @ 0x080B9370 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B9378: .4byte 0x03005B68 +_080B937C: .4byte 0x0853723C + thumb_func_end sub_080B9370 + + thumb_func_start sub_080B9380 +sub_080B9380: @ 0x080B9380 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _080B93A8 + movs r1, #0x5a + bl CreateTask + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0x58 + bl PlaySE + strh r4, [r5, #0xa] + ldrh r0, [r5, #2] + adds r0, #1 + strh r0, [r5, #2] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B93A8: .4byte 0x080B9295 + thumb_func_end sub_080B9380 + + thumb_func_start sub_080B93AC +sub_080B93AC: @ 0x080B93AC + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r7, r0, #0 + ldrh r0, [r7, #6] + adds r0, #1 + strh r0, [r7, #6] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x78 + ble _080B941A + ldr r2, _080B9424 + movs r1, #4 + ldrsh r0, [r7, r1] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r0, [r1, #4] + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _080B9428 + adds r4, r4, r0 + ldrb r0, [r1, #1] + movs r2, #0x20 + orrs r0, r2 + strb r0, [r1, #1] + ldr r6, _080B942C + ldr r5, _080B9430 + adds r0, r6, #0 + movs r1, #0x10 + adds r2, r5, #0 + bl BlendPalettes + str r5, [sp] + adds r0, r6, #0 + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + adds r0, r4, #0 + bl sub_080B947C + movs r0, #0x57 + bl PlaySE + ldrb r0, [r7, #0xa] + bl sub_080B9328 + movs r0, #0 + strh r0, [r7, #6] + ldrh r0, [r7, #2] + adds r0, #1 + strh r0, [r7, #2] +_080B941A: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080B9424: .4byte 0x02036FF0 +_080B9428: .4byte 0x020205AC +_080B942C: .4byte 0x0000FFFF +_080B9430: .4byte 0x00007FFF + thumb_func_end sub_080B93AC + + thumb_func_start sub_080B9434 +sub_080B9434: @ 0x080B9434 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + ldr r0, _080B9474 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080B946E + ldr r0, _080B9478 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B946E + bl InstallCameraPanAheadCallback + ldrb r0, [r4, #0xc] + ldrb r1, [r4, #0xe] + ldrb r2, [r4, #0x10] + bl RemoveEventObjectByLocalIdAndMap + movs r0, #0x41 + bl FieldEffectActiveListRemove + adds r0, r5, #0 + bl DestroyTask +_080B946E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B9474: .4byte 0x02037C74 +_080B9478: .4byte 0x080B9295 + thumb_func_end sub_080B9434 + + thumb_func_start sub_080B947C +sub_080B947C: @ 0x080B947C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + ldr r0, _080B9500 + movs r1, #0 + ldrsh r2, [r0, r1] + movs r3, #0x20 + ldrsh r0, [r6, r3] + adds r2, r2, r0 + movs r1, #0x24 + ldrsh r0, [r6, r1] + adds r2, r2, r0 + ldr r0, _080B9504 + movs r3, #0 + ldrsh r0, [r0, r3] + movs r3, #0x22 + ldrsh r1, [r6, r3] + adds r0, r0, r1 + movs r3, #0x26 + ldrsh r1, [r6, r3] + adds r0, r0, r1 + subs r0, #4 + movs r5, #0 + lsls r2, r2, #0x10 + mov r8, r2 + lsls r7, r0, #0x10 +_080B94B2: + ldr r0, _080B9508 + mov r2, r8 + asrs r1, r2, #0x10 + asrs r2, r7, #0x10 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _080B94EE + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _080B950C + adds r4, r4, r0 + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim + strh r5, [r4, #0x2e] + ldrb r1, [r6, #5] + lsrs r1, r1, #4 + lsls r1, r1, #4 + ldrb r2, [r4, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #5] +_080B94EE: + adds r5, #1 + cmp r5, #3 + ble _080B94B2 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080B9500: .4byte 0x03005B4C +_080B9504: .4byte 0x03005B48 +_080B9508: .4byte 0x08537298 +_080B950C: .4byte 0x020205AC + thumb_func_end sub_080B947C + + thumb_func_start Fldeff_MoveDeoxysRock +Fldeff_MoveDeoxysRock: @ 0x080B9510 + push {lr} + adds r1, r0, #0 + movs r2, #0x2e + ldrsh r0, [r1, r2] + cmp r0, #1 + beq _080B953C + cmp r0, #1 + bgt _080B9526 + cmp r0, #0 + beq _080B9530 + b _080B955A +_080B9526: + cmp r0, #2 + beq _080B9548 + cmp r0, #3 + beq _080B954E + b _080B955A +_080B9530: + ldrh r0, [r1, #0x20] + subs r0, #0x10 + strh r0, [r1, #0x20] + ldrh r0, [r1, #0x22] + subs r0, #0xc + b _080B9558 +_080B953C: + ldrh r0, [r1, #0x20] + adds r0, #0x10 + strh r0, [r1, #0x20] + ldrh r0, [r1, #0x22] + subs r0, #0xc + b _080B9558 +_080B9548: + ldrh r0, [r1, #0x20] + subs r0, #0x10 + b _080B9552 +_080B954E: + ldrh r0, [r1, #0x20] + adds r0, #0x10 +_080B9552: + strh r0, [r1, #0x20] + ldrh r0, [r1, #0x22] + adds r0, #0xc +_080B9558: + strh r0, [r1, #0x22] +_080B955A: + ldrh r0, [r1, #0x20] + adds r0, #4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xf8 + bhi _080B9576 + movs r0, #0x22 + ldrsh r2, [r1, r0] + movs r0, #4 + rsbs r0, r0, #0 + cmp r2, r0 + blt _080B9576 + cmp r2, #0xa4 + ble _080B957C +_080B9576: + adds r0, r1, #0 + bl DestroySprite +_080B957C: + pop {r0} + bx r0 + thumb_func_end Fldeff_MoveDeoxysRock + + thumb_func_start Fldeff_MoveDeoxysRock_Step +Fldeff_MoveDeoxysRock_Step: @ 0x080B9580 + push {r4, r5, r6, r7, lr} + sub sp, #4 + ldr r7, _080B9620 + ldrb r0, [r7] + ldrb r1, [r7, #4] + ldrb r2, [r7, #8] + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B9616 + mov r0, sp + ldrb r0, [r0] + lsls r4, r0, #3 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _080B9624 + adds r4, r4, r0 + movs r0, #0x10 + ldrsh r5, [r4, r0] + subs r5, #7 + movs r0, #0x12 + ldrsh r6, [r4, r0] + subs r6, #7 + ldr r1, [r7, #0xc] + subs r5, r1, r5 + lsls r5, r5, #4 + ldr r2, [r7, #0x10] + subs r6, r2, r6 + lsls r6, r6, #4 + adds r1, #7 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r2, #7 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r0, r4, #0 + bl ShiftEventObjectCoords + ldr r0, _080B9628 + movs r1, #0x50 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080B962C + lsls r2, r0, #2 + adds r2, r2, r0 + lsls r2, r2, #3 + adds r2, r2, r1 + ldrb r0, [r4, #4] + strh r0, [r2, #0xa] + ldr r3, _080B9630 + ldrb r1, [r4, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r0, [r0, #0x20] + adds r0, r0, r5 + strh r0, [r2, #0xc] + ldrb r1, [r4, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r0, [r0, #0x22] + adds r0, r0, r6 + strh r0, [r2, #0xe] + ldr r0, [r7, #0x14] + strh r0, [r2, #0x18] + mov r0, sp + ldrb r0, [r0] + strh r0, [r2, #0x1a] +_080B9616: + movs r0, #0 + add sp, #4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080B9620: .4byte 0x020388A8 +_080B9624: .4byte 0x02036FF0 +_080B9628: .4byte 0x080B9635 +_080B962C: .4byte 0x03005B60 +_080B9630: .4byte 0x020205AC + thumb_func_end Fldeff_MoveDeoxysRock_Step + + thumb_func_start sub_080B9634 +sub_080B9634: @ 0x080B9634 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + ldr r1, _080B9660 + adds r5, r0, r1 + movs r0, #2 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B9664 + adds r6, r0, r1 + movs r1, #0 + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _080B9668 + cmp r0, #1 + beq _080B96A6 + b _080B9704 + .align 2, 0 +_080B9660: .4byte 0x03005B68 +_080B9664: .4byte 0x020205AC +_080B9668: + ldrh r0, [r6, #0x20] + lsls r0, r0, #4 + strh r0, [r5, #8] + ldrh r0, [r6, #0x22] + lsls r0, r0, #4 + strh r0, [r5, #0xa] + movs r2, #4 + ldrsh r0, [r5, r2] + lsls r0, r0, #4 + movs r2, #8 + ldrsh r1, [r5, r2] + subs r0, r0, r1 + movs r2, #0x10 + ldrsh r1, [r5, r2] + bl __divsi3 + strh r0, [r5, #0xc] + movs r1, #6 + ldrsh r0, [r5, r1] + lsls r0, r0, #4 + movs r2, #0xa + ldrsh r1, [r5, r2] + subs r0, r0, r1 + movs r2, #0x10 + ldrsh r1, [r5, r2] + bl __divsi3 + strh r0, [r5, #0xe] + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] +_080B96A6: + ldrh r1, [r5, #0x10] + movs r2, #0x10 + ldrsh r0, [r5, r2] + cmp r0, #0 + beq _080B96D4 + subs r0, r1, #1 + strh r0, [r5, #0x10] + ldrh r1, [r5, #0xc] + ldrh r0, [r5, #8] + adds r1, r1, r0 + strh r1, [r5, #8] + ldrh r0, [r5, #0xe] + ldrh r2, [r5, #0xa] + adds r0, r0, r2 + strh r0, [r5, #0xa] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + strh r1, [r6, #0x20] + ldrh r0, [r5, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + strh r0, [r6, #0x22] + b _080B9704 +_080B96D4: + movs r1, #0x12 + ldrsh r0, [r5, r1] + lsls r4, r0, #3 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _080B970C + adds r4, r4, r0 + ldrh r0, [r5, #4] + strh r0, [r6, #0x20] + ldrh r0, [r5, #6] + strh r0, [r6, #0x22] + adds r0, r4, #0 + bl ShiftStillEventObjectCoords + ldrb r0, [r4] + movs r1, #8 + orrs r0, r1 + strb r0, [r4] + movs r0, #0x42 + bl FieldEffectActiveListRemove + adds r0, r7, #0 + bl DestroyTask +_080B9704: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080B970C: .4byte 0x02036FF0 + thumb_func_end sub_080B9634 + diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s new file mode 100644 index 0000000..429b309 --- /dev/null +++ b/asm/field_effect_helpers.s @@ -0,0 +1,4766 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start SetUpReflection +SetUpReflection: @ 0x08153E10 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r4, r1, #0 + lsls r5, r2, #0x18 + lsrs r5, r5, #0x18 + movs r0, #0x20 + ldrsh r1, [r4, r0] + movs r0, #0x22 + ldrsh r2, [r4, r0] + adds r0, r4, #0 + movs r3, #0x98 + bl CreateCopySpriteAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08153EC0 + adds r7, r1, r0 + ldr r0, _08153EC4 + str r0, [r7, #0x1c] + ldrb r1, [r7, #5] + movs r0, #0xc + orrs r1, r0 + strb r1, [r7, #5] + ldr r2, _08153EC8 + lsrs r0, r1, #4 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #4 + movs r2, #0xf + ands r1, r2 + orrs r1, r0 + strb r1, [r7, #5] + movs r1, #0x3f + adds r1, r1, r7 + mov r8, r1 + ldrb r0, [r1] + movs r1, #0x40 + orrs r0, r1 + mov r1, r8 + strb r0, [r1] + ldr r0, _08153ECC + str r0, [r7, #8] + adds r0, r7, #0 + movs r1, #0 + bl StartSpriteAnim + ldr r0, _08153ED0 + str r0, [r7, #0x10] + mov r1, r8 + ldrb r0, [r1] + movs r1, #8 + orrs r0, r1 + mov r1, r8 + strb r0, [r1] + adds r2, r7, #0 + adds r2, #0x42 + ldrb r1, [r2] + movs r0, #0x3f + ands r0, r1 + strb r0, [r2] + ldrh r0, [r4, #0x2e] + strh r0, [r7, #0x2e] + ldrb r0, [r6, #8] + strh r0, [r7, #0x30] + strh r5, [r7, #0x3c] + adds r0, r6, #0 + adds r1, r7, #0 + bl LoadObjectReflectionPalette + cmp r5, #0 + bne _08153EB6 + ldrb r0, [r7, #1] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r7, #1] +_08153EB6: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08153EC0: .4byte 0x020205AC +_08153EC4: .4byte 0x08153FE5 +_08153EC8: .4byte 0x0846FA18 +_08153ECC: .4byte 0x082BF304 +_08153ED0: .4byte 0x082BF310 + thumb_func_end SetUpReflection + + thumb_func_start GetReflectionVerticalOffset +GetReflectionVerticalOffset: @ 0x08153ED4 + push {lr} + ldrb r0, [r0, #5] + bl GetEventObjectGraphicsInfo + ldrh r0, [r0, #0xa] + subs r0, #2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + pop {r1} + bx r1 + thumb_func_end GetReflectionVerticalOffset + + thumb_func_start LoadObjectReflectionPalette +LoadObjectReflectionPalette: @ 0x08153EE8 + push {r4, r5, lr} + sub sp, #8 + adds r5, r0, #0 + adds r4, r1, #0 + ldr r1, _08153F40 + mov r0, sp + movs r2, #6 + bl memcpy + movs r0, #0 + strh r0, [r4, #0x32] + ldrb r0, [r5, #5] + bl GetEventObjectGraphicsInfo + ldrb r1, [r0, #0xc] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08153F44 + ldrb r0, [r5, #0x1f] + bl MetatileBehavior_GetBridgeType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _08153F2A + ldrb r0, [r5, #0x1e] + bl MetatileBehavior_GetBridgeType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _08153F44 +_08153F2A: + subs r0, #1 + lsls r0, r0, #1 + add r0, sp + ldrh r0, [r0] + strh r0, [r4, #0x32] + ldrb r1, [r4, #5] + lsrs r1, r1, #4 + adds r0, r5, #0 + bl LoadObjectHighBridgeReflectionPalette + b _08153F4E + .align 2, 0 +_08153F40: .4byte 0x085ACA40 +_08153F44: + ldrb r1, [r4, #5] + lsrs r1, r1, #4 + adds r0, r5, #0 + bl LoadObjectRegularReflectionPalette +_08153F4E: + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LoadObjectReflectionPalette + + thumb_func_start LoadObjectRegularReflectionPalette +LoadObjectRegularReflectionPalette: @ 0x08153F58 + push {r4, lr} + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + ldrb r0, [r0, #5] + bl GetEventObjectGraphicsInfo + adds r2, r0, #0 + ldrh r1, [r2, #4] + ldr r0, _08153F84 + cmp r1, r0 + beq _08153FAC + ldrb r0, [r2, #0xc] + movs r1, #0xf + ands r1, r0 + cmp r1, #0 + bne _08153F88 + ldrh r0, [r2, #2] + adds r1, r4, #0 + bl LoadPlayerObjectReflectionPalette + b _08153FA6 + .align 2, 0 +_08153F84: .4byte 0x000011FF +_08153F88: + cmp r1, #0xa + bne _08153F96 + ldrh r0, [r2, #2] + adds r1, r4, #0 + bl LoadSpecialObjectReflectionPalette + b _08153FA6 +_08153F96: + adds r0, r4, #0 + bl GetObjectPaletteTag + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r4, #0 + bl PatchObjectPalette +_08153FA6: + adds r0, r4, #0 + bl UpdateSpritePaletteWithWeather +_08153FAC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LoadObjectRegularReflectionPalette + + thumb_func_start LoadObjectHighBridgeReflectionPalette +LoadObjectHighBridgeReflectionPalette: @ 0x08153FB4 + push {r4, lr} + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + ldrb r0, [r0, #5] + bl GetEventObjectGraphicsInfo + adds r2, r0, #0 + ldrh r1, [r2, #4] + ldr r0, _08153FE0 + cmp r1, r0 + beq _08153FD8 + adds r0, r1, #0 + adds r1, r4, #0 + bl PatchObjectPalette + adds r0, r4, #0 + bl UpdateSpritePaletteWithWeather +_08153FD8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08153FE0: .4byte 0x000011FF + thumb_func_end LoadObjectHighBridgeReflectionPalette + + thumb_func_start UpdateObjectReflectionSprite +UpdateObjectReflectionSprite: @ 0x08153FE4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0815402C + adds r7, r0, r1 + ldrb r1, [r7, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08154030 + adds r5, r0, r1 + ldr r0, [r7] + ldr r1, _08154034 + ands r0, r1 + cmp r0, r1 + bne _0815401C + ldrb r1, [r7, #8] + movs r2, #0x30 + ldrsh r0, [r4, r2] + cmp r1, r0 + beq _08154038 +_0815401C: + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + b _08154150 + .align 2, 0 +_0815402C: .4byte 0x02036FF0 +_08154030: .4byte 0x020205AC +_08154034: .4byte 0x00020001 +_08154038: + ldr r1, _0815415C + ldrb r0, [r5, #5] + lsrs r0, r0, #4 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #4 + ldrb r2, [r4, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #5] + ldrb r1, [r5, #1] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r4, #1] + movs r3, #0x3f + adds r0, r3, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #1] + ldrb r0, [r5, #3] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #3] + adds r1, r3, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #3] + ldrb r0, [r5, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + movs r2, #0x10 + orrs r0, r2 + lsls r0, r0, #1 + subs r2, #0x4f + mov sb, r2 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #3] + ldrh r1, [r5, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x16 + ldrh r2, [r4, #4] + ldr r0, _08154160 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, #4] + ldr r0, [r5, #0x18] + str r0, [r4, #0x18] + adds r0, r5, #0 + adds r0, #0x42 + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1a + adds r2, r4, #0 + adds r2, #0x42 + ands r3, r0 + ldrb r1, [r2] + movs r0, #0x40 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2] + movs r0, #0x3e + adds r0, r0, r5 + mov r8, r0 + ldrb r0, [r0] + adds r6, r4, #0 + adds r6, #0x3e + movs r1, #4 + ands r1, r0 + ldrb r2, [r6] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r6] + ldrh r0, [r5, #0x20] + strh r0, [r4, #0x20] + adds r0, r7, #0 + bl GetReflectionVerticalOffset + ldrh r1, [r5, #0x22] + adds r0, r0, r1 + ldrh r1, [r4, #0x32] + adds r1, r1, r0 + strh r1, [r4, #0x22] + adds r0, r5, #0 + adds r0, #0x28 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x28 + strb r1, [r0] + adds r0, r5, #0 + adds r0, #0x29 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x29 + strb r0, [r1] + ldrh r0, [r5, #0x24] + strh r0, [r4, #0x24] + ldrh r0, [r5, #0x26] + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + mov r2, r8 + ldrb r1, [r2] + movs r0, #2 + ands r0, r1 + ldrb r1, [r6] + movs r2, #3 + rsbs r2, r2, #0 + ands r2, r1 + orrs r2, r0 + strb r2, [r6] + ldrb r0, [r7, #3] + lsls r0, r0, #0x1c + cmp r0, #0 + bge _0815412A + movs r0, #4 + orrs r2, r0 + strb r2, [r6] +_0815412A: + movs r1, #0x3c + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08154150 + ldrb r0, [r4, #3] + mov r2, sb + ands r2, r0 + strb r2, [r4, #3] + ldrb r0, [r5, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08154150 + movs r1, #2 + adds r0, r2, #0 + orrs r0, r1 + strb r0, [r4, #3] +_08154150: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0815415C: .4byte 0x0846FA18 +_08154160: .4byte 0xFFFFFC00 + thumb_func_end UpdateObjectReflectionSprite + + thumb_func_start CreateWarpArrowSprite +CreateWarpArrowSprite: @ 0x08154164 + push {r4, lr} + ldr r0, _081541AC + ldr r0, [r0, #0x20] + movs r1, #0 + movs r2, #0 + movs r3, #0x52 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r4, r0, #0 + cmp r0, #0x40 + beq _081541A2 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _081541B0 + adds r1, r1, r0 + ldrb r2, [r1, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + movs r3, #4 + orrs r0, r3 + strb r0, [r1, #5] + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #2 + orrs r0, r2 + orrs r0, r3 + strb r0, [r1] +_081541A2: + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081541AC: .4byte 0x084DDE4C +_081541B0: .4byte 0x020205AC + thumb_func_end CreateWarpArrowSprite + + thumb_func_start SetSpriteInvisible +SetSpriteInvisible: @ 0x081541B4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _081541D0 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + bx lr + .align 2, 0 +_081541D0: .4byte 0x020205AC + thumb_func_end SetSpriteInvisible + + thumb_func_start ShowWarpArrowSprite +ShowWarpArrowSprite: @ 0x081541D4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + lsls r2, r2, #0x10 + lsrs r7, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r6, r3, #0x10 + lsls r0, r5, #4 + adds r0, r0, r5 + lsls r0, r0, #2 + ldr r1, _08154278 + adds r2, r0, r1 + adds r0, r2, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _0815421E + movs r0, #0x2e + ldrsh r1, [r2, r0] + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + cmp r1, r0 + bne _0815421E + movs r0, #0x30 + ldrsh r1, [r2, r0] + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + cmp r1, r0 + beq _0815426A +_0815421E: + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + lsls r1, r6, #0x10 + asrs r1, r1, #0x10 + mov r4, sp + adds r4, #2 + mov r2, sp + adds r3, r4, #0 + bl SetSpritePosToMapCoords + lsls r0, r5, #4 + adds r0, r0, r5 + lsls r0, r0, #2 + ldr r1, _08154278 + adds r2, r0, r1 + mov r0, sp + ldrh r0, [r0] + adds r0, #8 + strh r0, [r2, #0x20] + ldrh r0, [r4] + adds r0, #8 + strh r0, [r2, #0x22] + adds r3, r2, #0 + adds r3, #0x3e + ldrb r1, [r3] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3] + strh r7, [r2, #0x2e] + strh r6, [r2, #0x30] + mov r1, r8 + subs r1, #1 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r2, #0 + bl StartSpriteAnim +_0815426A: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08154278: .4byte 0x020205AC + thumb_func_end ShowWarpArrowSprite + + thumb_func_start FldEff_Shadow +FldEff_Shadow: @ 0x0815427C + push {r4, r5, lr} + ldr r5, _08154308 + ldrb r0, [r5] + ldrb r1, [r5, #4] + ldrb r2, [r5, #8] + bl GetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0815430C + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r0, [r1, #5] + bl GetEventObjectGraphicsInfo + adds r4, r0, #0 + ldr r2, _08154310 + ldr r1, _08154314 + ldrb r0, [r4, #0xc] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + movs r1, #0 + movs r2, #0 + movs r3, #0x94 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x40 + beq _08154300 + ldr r0, _08154318 + lsls r2, r1, #4 + adds r2, r2, r1 + lsls r2, r2, #2 + adds r2, r2, r0 + adds r3, r2, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r1, #2 + orrs r0, r1 + strb r0, [r3] + ldr r0, [r5] + strh r0, [r2, #0x2e] + ldr r0, [r5, #4] + strh r0, [r2, #0x30] + ldr r0, [r5, #8] + strh r0, [r2, #0x32] + ldrh r1, [r4, #0xa] + lsls r1, r1, #0x10 + asrs r1, r1, #0x11 + ldr r3, _0815431C + ldrb r0, [r4, #0xc] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + subs r1, r1, r0 + strh r1, [r2, #0x34] +_08154300: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08154308: .4byte 0x020388A8 +_0815430C: .4byte 0x02036FF0 +_08154310: .4byte 0x084DDE4C +_08154314: .4byte 0x085ACA46 +_08154318: .4byte 0x020205AC +_0815431C: .4byte 0x085ACA4A + thumb_func_end FldEff_Shadow + + thumb_func_start UpdateShadowFieldEffect +UpdateShadowFieldEffect: @ 0x08154320 + push {r4, r5, lr} + sub sp, #4 + adds r5, r0, #0 + ldrh r0, [r5, #0x2e] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r5, #0x30] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrh r2, [r5, #0x32] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0815434E + adds r0, r5, #0 + movs r1, #3 + bl FieldEffectStop + b _081543D4 +_0815434E: + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _081543DC + adds r4, r0, r1 + ldrb r0, [r4, #4] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _081543E0 + adds r1, r1, r0 + ldrb r0, [r1, #5] + movs r2, #0xc + ands r2, r0 + ldrb r3, [r5, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r5, #5] + ldrh r0, [r1, #0x20] + strh r0, [r5, #0x20] + ldrh r0, [r5, #0x34] + ldrh r1, [r1, #0x22] + adds r0, r0, r1 + strh r0, [r5, #0x22] + ldr r0, [r4] + ldr r1, _081543E4 + ands r0, r1 + cmp r0, r1 + bne _081543CC + ldrb r0, [r4, #0x1e] + bl MetatileBehavior_IsPokeGrass + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081543CC + ldrb r0, [r4, #0x1e] + bl MetatileBehavior_IsSurfableWaterOrUnderwater + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081543CC + ldrb r0, [r4, #0x1f] + bl MetatileBehavior_IsSurfableWaterOrUnderwater + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081543CC + ldrb r0, [r4, #0x1e] + bl MetatileBehavior_IsReflective + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081543CC + ldrb r0, [r4, #0x1f] + bl MetatileBehavior_IsReflective + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081543D4 +_081543CC: + adds r0, r5, #0 + movs r1, #3 + bl FieldEffectStop +_081543D4: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081543DC: .4byte 0x02036FF0 +_081543E0: .4byte 0x020205AC +_081543E4: .4byte 0x00400001 + thumb_func_end UpdateShadowFieldEffect + + thumb_func_start FldEff_TallGrass +FldEff_TallGrass: @ 0x081543E8 + push {r4, r5, lr} + sub sp, #4 + ldr r5, _08154480 + ldrh r1, [r5] + mov r0, sp + strh r1, [r0] + ldrh r0, [r5, #4] + mov r4, sp + adds r4, #2 + strh r0, [r4] + mov r0, sp + adds r1, r4, #0 + movs r2, #8 + movs r3, #8 + bl sub_08092A50 + ldr r0, _08154484 + ldr r0, [r0, #0x10] + mov r1, sp + movs r2, #0 + ldrsh r1, [r1, r2] + movs r3, #0 + ldrsh r2, [r4, r3] + movs r3, #0 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x40 + beq _08154474 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08154488 + adds r3, r0, r1 + adds r2, r3, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #2 + orrs r0, r1 + strb r0, [r2] + movs r0, #3 + ldrb r1, [r5, #0xc] + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r3, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #5] + ldr r0, [r5, #8] + strh r0, [r3, #0x2e] + ldr r0, [r5] + strh r0, [r3, #0x30] + ldr r0, [r5, #4] + strh r0, [r3, #0x32] + ldr r0, [r5, #0x10] + strh r0, [r3, #0x34] + ldr r0, [r5, #0x14] + strh r0, [r3, #0x36] + ldr r0, [r5, #0x18] + strh r0, [r3, #0x38] + ldr r0, [r5, #0x1c] + cmp r0, #0 + beq _08154474 + adds r0, r3, #0 + movs r1, #4 + bl SeekSpriteAnim +_08154474: + movs r0, #0 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08154480: .4byte 0x020388A8 +_08154484: .4byte 0x084DDE4C +_08154488: .4byte 0x020205AC + thumb_func_end FldEff_TallGrass + + thumb_func_start UpdateTallGrassFieldEffect +UpdateTallGrassFieldEffect: @ 0x0815448C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r5, r0, #0 + ldrh r0, [r5, #0x38] + lsrs r4, r0, #8 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r3, _08154538 + ldrb r1, [r3] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081544D8 + ldr r0, _0815453C + ldr r2, [r0] + movs r0, #5 + ldrsb r0, [r2, r0] + cmp r0, r4 + bne _081544BE + movs r0, #4 + ldrsb r0, [r2, r0] + cmp r0, r7 + beq _081544D8 +_081544BE: + ldr r1, [r3, #4] + ldrh r0, [r5, #0x30] + subs r0, r0, r1 + strh r0, [r5, #0x30] + ldr r1, [r3, #8] + ldrh r0, [r5, #0x32] + subs r0, r0, r1 + strh r0, [r5, #0x32] + ldrb r1, [r2, #5] + lsls r1, r1, #8 + ldrb r0, [r2, #4] + orrs r0, r1 + strh r0, [r5, #0x38] +_081544D8: + ldrh r0, [r5, #0x34] + lsrs r1, r0, #8 + mov r8, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldrh r0, [r5, #0x36] + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r2, #0x30 + ldrsh r0, [r5, r2] + movs r2, #0x32 + ldrsh r1, [r5, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + mov r0, r8 + adds r1, r4, #0 + adds r2, r7, #0 + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0815452C + adds r0, r6, #0 + bl MetatileBehavior_IsTallGrass + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0815452C + movs r1, #0x3c + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _08154540 + adds r0, r5, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08154540 +_0815452C: + adds r0, r5, #0 + movs r1, #4 + bl FieldEffectStop + b _08154584 + .align 2, 0 +_08154538: .4byte 0x02036FD4 +_0815453C: .4byte 0x03005AEC +_08154540: + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08154590 + adds r2, r0, r1 + ldr r0, [r2, #0x10] + ldr r1, [r5, #0x30] + cmp r0, r1 + beq _08154560 + ldr r0, [r2, #0x14] + cmp r0, r1 + beq _08154560 + movs r0, #1 + strh r0, [r5, #0x3c] +_08154560: + movs r6, #0 + adds r0, r5, #0 + adds r0, #0x2b + ldrb r0, [r0] + cmp r0, #0 + bne _0815456E + movs r6, #4 +_0815456E: + adds r0, r5, #0 + movs r1, #0 + bl UpdateEventObjectSpriteVisibility + ldrh r1, [r5, #0x2e] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + adds r2, r6, #0 + bl sub_08156138 +_08154584: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08154590: .4byte 0x02036FF0 + thumb_func_end UpdateTallGrassFieldEffect + + thumb_func_start FldEff_JumpTallGrass +FldEff_JumpTallGrass: @ 0x08154594 + push {r4, lr} + ldr r4, _081545F8 + adds r1, r4, #4 + adds r0, r4, #0 + movs r2, #8 + movs r3, #0xc + bl sub_08092A50 + ldr r0, _081545FC + ldr r0, [r0, #0x28] + movs r2, #0 + ldrsh r1, [r4, r2] + movs r3, #4 + ldrsh r2, [r4, r3] + movs r3, #0 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _081545F0 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r0, _08154600 + adds r2, r2, r0 + adds r3, r2, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r1, #2 + orrs r0, r1 + strb r0, [r3] + movs r0, #3 + ldrb r1, [r4, #0xc] + ands r1, r0 + lsls r1, r1, #2 + ldrb r3, [r2, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #5] + ldr r0, [r4, #8] + strh r0, [r2, #0x2e] + movs r0, #0xc + strh r0, [r2, #0x30] +_081545F0: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081545F8: .4byte 0x020388A8 +_081545FC: .4byte 0x084DDE4C +_08154600: .4byte 0x020205AC + thumb_func_end FldEff_JumpTallGrass + + thumb_func_start FindTallGrassFieldEffectSpriteId +FindTallGrassFieldEffectSpriteId: @ 0x08154604 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r4, [sp, #0x18] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov ip, r0 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + movs r5, #0 + ldr r0, _08154674 + mov r8, r0 + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 +_08154628: + lsls r0, r5, #4 + adds r0, r0, r5 + lsls r0, r0, #2 + mov r1, r8 + adds r2, r0, r1 + adds r0, r2, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _0815467C + ldr r1, [r2, #0x1c] + ldr r0, _08154678 + cmp r1, r0 + bne _0815467C + movs r1, #0x30 + ldrsh r0, [r2, r1] + cmp r3, r0 + bne _0815467C + movs r1, #0x32 + ldrsh r0, [r2, r1] + cmp r4, r0 + bne _0815467C + ldrh r1, [r2, #0x34] + lsrs r0, r1, #8 + cmp ip, r0 + bne _0815467C + movs r0, #0xff + ands r0, r1 + cmp r7, r0 + bne _0815467C + movs r1, #0x36 + ldrsh r0, [r2, r1] + cmp r6, r0 + bne _0815467C + adds r0, r5, #0 + b _08154688 + .align 2, 0 +_08154674: .4byte 0x020205AC +_08154678: .4byte 0x0815448D +_0815467C: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x3f + bls _08154628 + movs r0, #0x40 +_08154688: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end FindTallGrassFieldEffectSpriteId + + thumb_func_start FldEff_LongGrass +FldEff_LongGrass: @ 0x08154694 + push {r4, r5, lr} + sub sp, #4 + ldr r5, _08154730 + ldrh r1, [r5] + mov r0, sp + strh r1, [r0] + ldrh r0, [r5, #4] + mov r4, sp + adds r4, #2 + strh r0, [r4] + mov r0, sp + adds r1, r4, #0 + movs r2, #8 + movs r3, #8 + bl sub_08092A50 + ldr r0, _08154734 + ldr r0, [r0, #0x3c] + mov r1, sp + movs r2, #0 + ldrsh r1, [r1, r2] + movs r3, #0 + ldrsh r2, [r4, r3] + movs r3, #0 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x40 + beq _08154724 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08154738 + adds r4, r0, r1 + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #2 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r5, #8] + bl sub_08096718 + movs r1, #3 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r4, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #5] + ldr r0, [r5, #8] + strh r0, [r4, #0x2e] + ldr r0, [r5] + strh r0, [r4, #0x30] + ldr r0, [r5, #4] + strh r0, [r4, #0x32] + ldr r0, [r5, #0x10] + strh r0, [r4, #0x34] + ldr r0, [r5, #0x14] + strh r0, [r4, #0x36] + ldr r0, [r5, #0x18] + strh r0, [r4, #0x38] + ldr r0, [r5, #0x1c] + cmp r0, #0 + beq _08154724 + adds r0, r4, #0 + movs r1, #6 + bl SeekSpriteAnim +_08154724: + movs r0, #0 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08154730: .4byte 0x020388A8 +_08154734: .4byte 0x084DDE4C +_08154738: .4byte 0x020205AC + thumb_func_end FldEff_LongGrass + + thumb_func_start UpdateLongGrassFieldEffect +UpdateLongGrassFieldEffect: @ 0x0815473C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r5, r0, #0 + ldrh r0, [r5, #0x38] + lsrs r7, r0, #8 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r3, _081547E8 + ldrb r1, [r3] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08154788 + ldr r0, _081547EC + ldr r2, [r0] + movs r0, #5 + ldrsb r0, [r2, r0] + cmp r0, r7 + bne _0815476E + movs r0, #4 + ldrsb r0, [r2, r0] + cmp r0, r6 + beq _08154788 +_0815476E: + ldr r1, [r3, #4] + ldrh r0, [r5, #0x30] + subs r0, r0, r1 + strh r0, [r5, #0x30] + ldr r1, [r3, #8] + ldrh r0, [r5, #0x32] + subs r0, r0, r1 + strh r0, [r5, #0x32] + ldrb r1, [r2, #5] + lsls r1, r1, #8 + ldrb r0, [r2, #4] + orrs r0, r1 + strh r0, [r5, #0x38] +_08154788: + ldrh r0, [r5, #0x34] + lsrs r1, r0, #8 + mov r8, r1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldrh r0, [r5, #0x36] + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r2, #0x30 + ldrsh r0, [r5, r2] + movs r2, #0x32 + ldrsh r1, [r5, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + mov r0, r8 + adds r1, r7, #0 + adds r2, r6, #0 + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081547DC + adds r0, r4, #0 + bl MetatileBehavior_IsLongGrass_Duplicate + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081547DC + movs r1, #0x3c + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _081547F0 + adds r0, r5, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _081547F0 +_081547DC: + adds r0, r5, #0 + movs r1, #0x11 + bl FieldEffectStop + b _08154826 + .align 2, 0 +_081547E8: .4byte 0x02036FD4 +_081547EC: .4byte 0x03005AEC +_081547F0: + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08154834 + adds r2, r0, r1 + ldr r0, [r2, #0x10] + ldr r1, [r5, #0x30] + cmp r0, r1 + beq _08154810 + ldr r0, [r2, #0x14] + cmp r0, r1 + beq _08154810 + movs r0, #1 + strh r0, [r5, #0x3c] +_08154810: + adds r0, r5, #0 + movs r1, #0 + bl UpdateEventObjectSpriteVisibility + ldrh r1, [r5, #0x2e] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + movs r2, #0 + bl sub_08156138 +_08154826: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08154834: .4byte 0x02036FF0 + thumb_func_end UpdateLongGrassFieldEffect + + thumb_func_start FldEff_JumpLongGrass +FldEff_JumpLongGrass: @ 0x08154838 + push {r4, lr} + ldr r4, _0815489C + adds r1, r4, #4 + adds r0, r4, #0 + movs r2, #8 + movs r3, #8 + bl sub_08092A50 + ldr r0, _081548A0 + ldr r0, [r0, #0x40] + movs r2, #0 + ldrsh r1, [r4, r2] + movs r3, #4 + ldrsh r2, [r4, r3] + movs r3, #0 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _08154894 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r0, _081548A4 + adds r2, r2, r0 + adds r3, r2, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r1, #2 + orrs r0, r1 + strb r0, [r3] + movs r0, #3 + ldrb r1, [r4, #0xc] + ands r1, r0 + lsls r1, r1, #2 + ldrb r3, [r2, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #5] + ldr r0, [r4, #8] + strh r0, [r2, #0x2e] + movs r0, #0x12 + strh r0, [r2, #0x30] +_08154894: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0815489C: .4byte 0x020388A8 +_081548A0: .4byte 0x084DDE4C +_081548A4: .4byte 0x020205AC + thumb_func_end FldEff_JumpLongGrass + + thumb_func_start FldEff_ShortGrass +FldEff_ShortGrass: @ 0x081548A8 + push {r4, r5, r6, lr} + ldr r6, _0815493C + ldrb r0, [r6] + ldrb r1, [r6, #4] + ldrb r2, [r6, #8] + bl GetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08154940 + adds r5, r1, r0 + ldr r0, _08154944 + ldr r0, [r0, #0x78] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _08154934 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r4, _08154948 + adds r2, r2, r4 + adds r3, r2, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r1, #2 + orrs r0, r1 + strb r0, [r3] + ldrb r1, [r5, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r0, [r0, #5] + movs r1, #0xc + ands r1, r0 + ldrb r3, [r2, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #5] + ldr r0, [r6] + strh r0, [r2, #0x2e] + ldr r0, [r6, #4] + strh r0, [r2, #0x30] + ldr r0, [r6, #8] + strh r0, [r2, #0x32] + ldrb r1, [r5, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r0, [r0, #0x20] + strh r0, [r2, #0x34] + ldrb r1, [r5, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r0, [r0, #0x22] + strh r0, [r2, #0x36] +_08154934: + movs r0, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0815493C: .4byte 0x020388A8 +_08154940: .4byte 0x02036FF0 +_08154944: .4byte 0x084DDE4C +_08154948: .4byte 0x020205AC + thumb_func_end FldEff_ShortGrass + + thumb_func_start UpdateShortGrassFieldEffect +UpdateShortGrassFieldEffect: @ 0x0815494C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #0x30] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrh r2, [r4, #0x32] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0815498A + ldr r5, _08154994 + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r5 + ldrb r0, [r1, #2] + lsls r0, r0, #0x1d + cmp r0, #0 + blt _08154998 +_0815498A: + adds r0, r4, #0 + movs r1, #0x29 + bl FieldEffectStop + b _08154A2E + .align 2, 0 +_08154994: .4byte 0x02036FF0 +_08154998: + ldrb r0, [r1, #5] + bl GetEventObjectGraphicsInfo + mov r8, r0 + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r1, [r0, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08154A3C + adds r6, r0, r1 + ldrh r5, [r6, #0x22] + ldrh r7, [r6, #0x20] + movs r0, #0x20 + ldrsh r1, [r6, r0] + movs r2, #0x34 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _081549D4 + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x36 + ldrsh r1, [r4, r2] + cmp r0, r1 + beq _081549EE +_081549D4: + strh r7, [r4, #0x34] + strh r5, [r4, #0x36] + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _081549EE + adds r0, r4, #0 + movs r1, #0 + bl StartSpriteAnim +_081549EE: + strh r7, [r4, #0x20] + strh r5, [r4, #0x22] + mov r1, r8 + ldrh r0, [r1, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + subs r0, #8 + strh r0, [r4, #0x26] + adds r0, r6, #0 + adds r0, #0x43 + ldrb r0, [r0] + subs r0, #1 + adds r1, r4, #0 + adds r1, #0x43 + strb r0, [r1] + ldrb r0, [r6, #5] + movs r1, #0xc + ands r1, r0 + ldrb r2, [r4, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #5] + adds r0, r6, #0 + adds r0, #0x3e + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1f + adds r0, r4, #0 + bl UpdateEventObjectSpriteVisibility +_08154A2E: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08154A3C: .4byte 0x020205AC + thumb_func_end UpdateShortGrassFieldEffect + + thumb_func_start FldEff_SandFootprints +FldEff_SandFootprints: @ 0x08154A40 + push {r4, lr} + ldr r4, _08154AA8 + adds r1, r4, #4 + adds r0, r4, #0 + movs r2, #8 + movs r3, #8 + bl sub_08092A50 + ldr r0, _08154AAC + ldr r0, [r0, #0x2c] + movs r2, #0 + ldrsh r1, [r4, r2] + movs r3, #4 + ldrsh r2, [r4, r3] + ldrb r3, [r4, #8] + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x40 + beq _08154A9E + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08154AB0 + adds r0, r0, r1 + adds r3, r0, #0 + adds r3, #0x3e + ldrb r1, [r3] + movs r2, #2 + orrs r1, r2 + strb r1, [r3] + movs r1, #3 + ldrb r2, [r4, #0xc] + ands r2, r1 + lsls r2, r2, #2 + ldrb r3, [r0, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r2 + strb r1, [r0, #5] + movs r1, #0xd + strh r1, [r0, #0x3c] + ldrb r1, [r4, #0x10] + bl StartSpriteAnim +_08154A9E: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08154AA8: .4byte 0x020388A8 +_08154AAC: .4byte 0x084DDE4C +_08154AB0: .4byte 0x020205AC + thumb_func_end FldEff_SandFootprints + + thumb_func_start FldEff_DeepSandFootprints +FldEff_DeepSandFootprints: @ 0x08154AB4 + push {r4, r5, lr} + ldr r4, _08154B1C + adds r1, r4, #4 + adds r0, r4, #0 + movs r2, #8 + movs r3, #8 + bl sub_08092A50 + ldr r0, _08154B20 + ldr r0, [r0, #0x5c] + movs r2, #0 + ldrsh r1, [r4, r2] + movs r3, #4 + ldrsh r2, [r4, r3] + ldrb r3, [r4, #8] + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r5, r1, #0 + cmp r1, #0x40 + beq _08154B14 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08154B24 + adds r0, r0, r1 + adds r3, r0, #0 + adds r3, #0x3e + ldrb r1, [r3] + movs r2, #2 + orrs r1, r2 + strb r1, [r3] + movs r1, #3 + ldrb r2, [r4, #0xc] + ands r2, r1 + lsls r2, r2, #2 + ldrb r3, [r0, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r2 + strb r1, [r0, #5] + movs r1, #0x18 + strh r1, [r0, #0x3c] + ldrb r1, [r4, #0x10] + bl StartSpriteAnim +_08154B14: + adds r0, r5, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08154B1C: .4byte 0x020388A8 +_08154B20: .4byte 0x084DDE4C +_08154B24: .4byte 0x020205AC + thumb_func_end FldEff_DeepSandFootprints + + thumb_func_start FldEff_BikeTireTracks +FldEff_BikeTireTracks: @ 0x08154B28 + push {r4, r5, lr} + ldr r4, _08154B90 + adds r1, r4, #4 + adds r0, r4, #0 + movs r2, #8 + movs r3, #8 + bl sub_08092A50 + ldr r0, _08154B94 + ldr r0, [r0, #0x6c] + movs r2, #0 + ldrsh r1, [r4, r2] + movs r3, #4 + ldrsh r2, [r4, r3] + ldrb r3, [r4, #8] + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r5, r1, #0 + cmp r1, #0x40 + beq _08154B88 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08154B98 + adds r0, r0, r1 + adds r3, r0, #0 + adds r3, #0x3e + ldrb r1, [r3] + movs r2, #2 + orrs r1, r2 + strb r1, [r3] + movs r1, #3 + ldrb r2, [r4, #0xc] + ands r2, r1 + lsls r2, r2, #2 + ldrb r3, [r0, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r2 + strb r1, [r0, #5] + movs r1, #0x23 + strh r1, [r0, #0x3c] + ldrb r1, [r4, #0x10] + bl StartSpriteAnim +_08154B88: + adds r0, r5, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08154B90: .4byte 0x020388A8 +_08154B94: .4byte 0x084DDE4C +_08154B98: .4byte 0x020205AC + thumb_func_end FldEff_BikeTireTracks + + thumb_func_start UpdateFootprintsTireTracksFieldEffect +UpdateFootprintsTireTracksFieldEffect: @ 0x08154B9C + push {lr} + ldr r2, _08154BB4 + movs r3, #0x2e + ldrsh r1, [r0, r3] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_08154BB4: .4byte 0x085ACA54 + thumb_func_end UpdateFootprintsTireTracksFieldEffect + + thumb_func_start FadeFootprintsTireTracks_Step0 +FadeFootprintsTireTracks_Step0: @ 0x08154BB8 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0x30] + adds r0, #1 + strh r0, [r1, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x28 + ble _08154BCE + movs r0, #1 + strh r0, [r1, #0x2e] +_08154BCE: + adds r0, r1, #0 + movs r1, #0 + bl UpdateEventObjectSpriteVisibility + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end FadeFootprintsTireTracks_Step0 + + thumb_func_start FadeFootprintsTireTracks_Step1 +FadeFootprintsTireTracks_Step1: @ 0x08154BDC + push {r4, lr} + adds r4, r0, #0 + adds r3, r4, #0 + adds r3, #0x3e + ldrb r2, [r3] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + ldrb r1, [r3] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1f + adds r0, r4, #0 + bl UpdateEventObjectSpriteVisibility + movs r1, #0x30 + ldrsh r0, [r4, r1] + cmp r0, #0x38 + ble _08154C20 + ldrh r1, [r4, #0x3c] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl FieldEffectStop +_08154C20: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end FadeFootprintsTireTracks_Step1 + + thumb_func_start FldEff_Splash +FldEff_Splash: @ 0x08154C28 + push {r4, r5, r6, lr} + ldr r6, _08154CBC + ldrb r0, [r6] + ldrb r1, [r6, #4] + ldrb r2, [r6, #8] + bl GetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08154CC0 + adds r5, r1, r0 + ldr r0, _08154CC4 + ldr r0, [r0, #0x34] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x40 + beq _08154CB2 + ldrb r0, [r5, #5] + bl GetEventObjectGraphicsInfo + lsls r3, r4, #4 + adds r3, r3, r4 + lsls r3, r3, #2 + ldr r4, _08154CC8 + adds r3, r3, r4 + movs r1, #0x3e + adds r1, r1, r3 + mov ip, r1 + ldrb r1, [r1] + movs r2, #2 + orrs r1, r2 + mov r2, ip + strb r1, [r2] + ldrb r2, [r5, #4] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r1, [r1, #5] + movs r2, #0xc + ands r2, r1 + ldrb r4, [r3, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r4 + orrs r1, r2 + strb r1, [r3, #5] + ldr r1, [r6] + strh r1, [r3, #0x2e] + ldr r1, [r6, #4] + strh r1, [r3, #0x30] + ldr r1, [r6, #8] + strh r1, [r3, #0x32] + ldrh r0, [r0, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + subs r0, #4 + strh r0, [r3, #0x26] + movs r0, #0x46 + bl PlaySE +_08154CB2: + movs r0, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08154CBC: .4byte 0x020388A8 +_08154CC0: .4byte 0x02036FF0 +_08154CC4: .4byte 0x084DDE4C +_08154CC8: .4byte 0x020205AC + thumb_func_end FldEff_Splash + + thumb_func_start UpdateSplashFieldEffect +UpdateSplashFieldEffect: @ 0x08154CCC + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _08154CFC + ldrh r0, [r4, #0x2e] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #0x30] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrh r2, [r4, #0x32] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08154D06 +_08154CFC: + adds r0, r4, #0 + movs r1, #0xf + bl FieldEffectStop + b _08154D46 +_08154D06: + ldr r3, _08154D50 + ldr r2, _08154D54 + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r0, [r0, #0x20] + strh r0, [r4, #0x20] + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r0, [r0, #0x22] + strh r0, [r4, #0x22] + adds r0, r4, #0 + movs r1, #0 + bl UpdateEventObjectSpriteVisibility +_08154D46: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08154D50: .4byte 0x020205AC +_08154D54: .4byte 0x02036FF0 + thumb_func_end UpdateSplashFieldEffect + + thumb_func_start FldEff_JumpSmallSplash +FldEff_JumpSmallSplash: @ 0x08154D58 + push {r4, lr} + ldr r4, _08154DBC + adds r1, r4, #4 + adds r0, r4, #0 + movs r2, #8 + movs r3, #0xc + bl sub_08092A50 + ldr r0, _08154DC0 + ldr r0, [r0, #0x38] + movs r2, #0 + ldrsh r1, [r4, r2] + movs r3, #4 + ldrsh r2, [r4, r3] + movs r3, #0 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _08154DB4 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r0, _08154DC4 + adds r2, r2, r0 + adds r3, r2, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r1, #2 + orrs r0, r1 + strb r0, [r3] + movs r0, #3 + ldrb r1, [r4, #0xc] + ands r1, r0 + lsls r1, r1, #2 + ldrb r3, [r2, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #5] + ldr r0, [r4, #8] + strh r0, [r2, #0x2e] + movs r0, #0x10 + strh r0, [r2, #0x30] +_08154DB4: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08154DBC: .4byte 0x020388A8 +_08154DC0: .4byte 0x084DDE4C +_08154DC4: .4byte 0x020205AC + thumb_func_end FldEff_JumpSmallSplash + + thumb_func_start FldEff_JumpBigSplash +FldEff_JumpBigSplash: @ 0x08154DC8 + push {r4, lr} + ldr r4, _08154E2C + adds r1, r4, #4 + adds r0, r4, #0 + movs r2, #8 + movs r3, #8 + bl sub_08092A50 + ldr r0, _08154E30 + ldr r0, [r0, #0x30] + movs r2, #0 + ldrsh r1, [r4, r2] + movs r3, #4 + ldrsh r2, [r4, r3] + movs r3, #0 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _08154E24 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r0, _08154E34 + adds r2, r2, r0 + adds r3, r2, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r1, #2 + orrs r0, r1 + strb r0, [r3] + movs r0, #3 + ldrb r1, [r4, #0xc] + ands r1, r0 + lsls r1, r1, #2 + ldrb r3, [r2, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #5] + ldr r0, [r4, #8] + strh r0, [r2, #0x2e] + movs r0, #0xe + strh r0, [r2, #0x30] +_08154E24: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08154E2C: .4byte 0x020388A8 +_08154E30: .4byte 0x084DDE4C +_08154E34: .4byte 0x020205AC + thumb_func_end FldEff_JumpBigSplash + + thumb_func_start FldEff_FeetInFlowingWater +FldEff_FeetInFlowingWater: @ 0x08154E38 + push {r4, r5, r6, r7, lr} + ldr r7, _08154ED8 + ldrb r0, [r7] + ldrb r1, [r7, #4] + ldrb r2, [r7, #8] + bl GetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08154EDC + adds r6, r1, r0 + ldr r0, _08154EE0 + ldr r0, [r0, #0x34] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x40 + beq _08154ECE + ldrb r0, [r6, #5] + bl GetEventObjectGraphicsInfo + adds r4, r0, #0 + lsls r0, r5, #4 + adds r0, r0, r5 + lsls r0, r0, #2 + ldr r3, _08154EE4 + adds r0, r0, r3 + ldr r1, _08154EE8 + str r1, [r0, #0x1c] + adds r5, r0, #0 + adds r5, #0x3e + ldrb r1, [r5] + movs r2, #2 + orrs r1, r2 + strb r1, [r5] + ldrb r2, [r6, #4] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrb r1, [r1, #5] + movs r2, #0xc + ands r2, r1 + ldrb r3, [r0, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r2 + strb r1, [r0, #5] + ldr r1, [r7] + strh r1, [r0, #0x2e] + ldr r1, [r7, #4] + strh r1, [r0, #0x30] + ldr r1, [r7, #8] + strh r1, [r0, #0x32] + ldr r1, _08154EEC + strh r1, [r0, #0x34] + movs r1, #1 + rsbs r1, r1, #0 + strh r1, [r0, #0x36] + ldrh r1, [r4, #0xa] + lsls r1, r1, #0x10 + asrs r1, r1, #0x11 + subs r1, #4 + strh r1, [r0, #0x26] + movs r1, #1 + bl StartSpriteAnim +_08154ECE: + movs r0, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08154ED8: .4byte 0x020388A8 +_08154EDC: .4byte 0x02036FF0 +_08154EE0: .4byte 0x084DDE4C +_08154EE4: .4byte 0x020205AC +_08154EE8: .4byte 0x08154EF1 +_08154EEC: .4byte 0x0000FFFF + thumb_func_end FldEff_FeetInFlowingWater + + thumb_func_start UpdateFeetInFlowingWaterFieldEffect +UpdateFeetInFlowingWaterFieldEffect: @ 0x08154EF0 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #0x30] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrh r2, [r4, #0x32] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08154F2A + ldr r2, _08154F34 + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r5, r0, r2 + ldrb r0, [r5, #2] + lsls r0, r0, #0x1c + cmp r0, #0 + blt _08154F38 +_08154F2A: + adds r0, r4, #0 + movs r1, #0x22 + bl FieldEffectStop + b _08154F82 + .align 2, 0 +_08154F34: .4byte 0x02036FF0 +_08154F38: + ldrb r1, [r5, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08154F8C + adds r0, r0, r1 + ldrh r1, [r0, #0x20] + strh r1, [r4, #0x20] + ldrh r1, [r0, #0x22] + strh r1, [r4, #0x22] + adds r0, #0x43 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x43 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl UpdateEventObjectSpriteVisibility + ldr r1, [r5, #0x10] + ldr r0, [r4, #0x34] + cmp r1, r0 + beq _08154F82 + ldrh r0, [r5, #0x10] + strh r0, [r4, #0x34] + ldrh r0, [r5, #0x12] + strh r0, [r4, #0x36] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _08154F82 + movs r0, #0x46 + bl PlaySE +_08154F82: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08154F8C: .4byte 0x020205AC + thumb_func_end UpdateFeetInFlowingWaterFieldEffect + + thumb_func_start FldEff_Ripple +FldEff_Ripple: @ 0x08154F90 + push {r4, lr} + ldr r0, _08154FE4 + ldr r0, [r0, #0x14] + ldr r4, _08154FE8 + movs r2, #0 + ldrsh r1, [r4, r2] + movs r3, #4 + ldrsh r2, [r4, r3] + ldrb r3, [r4, #8] + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _08154FDC + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r0, _08154FEC + adds r2, r2, r0 + adds r3, r2, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r1, #2 + orrs r0, r1 + strb r0, [r3] + movs r0, #3 + ldrb r1, [r4, #0xc] + ands r1, r0 + lsls r1, r1, #2 + ldrb r3, [r2, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #5] + movs r0, #5 + strh r0, [r2, #0x2e] +_08154FDC: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08154FE4: .4byte 0x084DDE4C +_08154FE8: .4byte 0x020388A8 +_08154FEC: .4byte 0x020205AC + thumb_func_end FldEff_Ripple + + thumb_func_start FldEff_HotSpringsWater +FldEff_HotSpringsWater: @ 0x08154FF0 + push {r4, r5, r6, lr} + ldr r6, _08155084 + ldrb r0, [r6] + ldrb r1, [r6, #4] + ldrb r2, [r6, #8] + bl GetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08155088 + adds r5, r1, r0 + ldr r0, _0815508C + ldr r0, [r0, #0x7c] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _0815507C + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r4, _08155090 + adds r2, r2, r4 + adds r3, r2, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r1, #2 + orrs r0, r1 + strb r0, [r3] + ldrb r1, [r5, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r0, [r0, #5] + movs r1, #0xc + ands r1, r0 + ldrb r3, [r2, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #5] + ldr r0, [r6] + strh r0, [r2, #0x2e] + ldr r0, [r6, #4] + strh r0, [r2, #0x30] + ldr r0, [r6, #8] + strh r0, [r2, #0x32] + ldrb r1, [r5, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r0, [r0, #0x20] + strh r0, [r2, #0x34] + ldrb r1, [r5, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r0, [r0, #0x22] + strh r0, [r2, #0x36] +_0815507C: + movs r0, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08155084: .4byte 0x020388A8 +_08155088: .4byte 0x02036FF0 +_0815508C: .4byte 0x084DDE4C +_08155090: .4byte 0x020205AC + thumb_func_end FldEff_HotSpringsWater + + thumb_func_start UpdateHotSpringsWaterFieldEffect +UpdateHotSpringsWaterFieldEffect: @ 0x08155094 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #0x30] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrh r2, [r4, #0x32] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081550CE + ldr r5, _081550D8 + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r5 + ldrb r0, [r1, #2] + lsls r0, r0, #0x1a + cmp r0, #0 + blt _081550DC +_081550CE: + adds r0, r4, #0 + movs r1, #0x2a + bl FieldEffectStop + b _08155120 + .align 2, 0 +_081550D8: .4byte 0x02036FF0 +_081550DC: + ldrb r0, [r1, #5] + bl GetEventObjectGraphicsInfo + mov r1, sp + ldrb r2, [r1] + lsls r1, r2, #3 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrb r2, [r1, #4] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + ldr r2, _08155128 + adds r1, r1, r2 + ldrh r2, [r1, #0x20] + strh r2, [r4, #0x20] + ldrh r0, [r0, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + ldrh r2, [r1, #0x22] + adds r0, r0, r2 + subs r0, #8 + strh r0, [r4, #0x22] + adds r1, #0x43 + ldrb r0, [r1] + subs r0, #1 + adds r1, r4, #0 + adds r1, #0x43 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl UpdateEventObjectSpriteVisibility +_08155120: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08155128: .4byte 0x020205AC + thumb_func_end UpdateHotSpringsWaterFieldEffect + + thumb_func_start FldEff_Unknown19 +FldEff_Unknown19: @ 0x0815512C + push {r4, lr} + ldr r4, _0815518C + adds r1, r4, #4 + adds r0, r4, #0 + movs r2, #8 + movs r3, #8 + bl sub_08092A50 + ldr r0, _08155190 + ldr r0, [r0, #0x44] + movs r2, #0 + ldrsh r1, [r4, r2] + movs r3, #4 + ldrsh r2, [r4, r3] + ldrb r3, [r4, #8] + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _08155184 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r0, _08155194 + adds r2, r2, r0 + adds r3, r2, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r1, #2 + orrs r0, r1 + strb r0, [r3] + movs r0, #3 + ldrb r1, [r4, #0xc] + ands r1, r0 + lsls r1, r1, #2 + ldrb r3, [r2, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #5] + movs r0, #0x13 + strh r0, [r2, #0x2e] +_08155184: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0815518C: .4byte 0x020388A8 +_08155190: .4byte 0x084DDE4C +_08155194: .4byte 0x020205AC + thumb_func_end FldEff_Unknown19 + + thumb_func_start FldEff_Unknown20 +FldEff_Unknown20: @ 0x08155198 + push {r4, lr} + ldr r4, _081551F8 + adds r1, r4, #4 + adds r0, r4, #0 + movs r2, #8 + movs r3, #8 + bl sub_08092A50 + ldr r0, _081551FC + ldr r0, [r0, #0x48] + movs r2, #0 + ldrsh r1, [r4, r2] + movs r3, #4 + ldrsh r2, [r4, r3] + ldrb r3, [r4, #8] + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _081551F0 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r0, _08155200 + adds r2, r2, r0 + adds r3, r2, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r1, #2 + orrs r0, r1 + strb r0, [r3] + movs r0, #3 + ldrb r1, [r4, #0xc] + ands r1, r0 + lsls r1, r1, #2 + ldrb r3, [r2, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #5] + movs r0, #0x14 + strh r0, [r2, #0x2e] +_081551F0: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081551F8: .4byte 0x020388A8 +_081551FC: .4byte 0x084DDE4C +_08155200: .4byte 0x020205AC + thumb_func_end FldEff_Unknown20 + + thumb_func_start FldEff_Unknown21 +FldEff_Unknown21: @ 0x08155204 + push {r4, lr} + ldr r4, _08155264 + adds r1, r4, #4 + adds r0, r4, #0 + movs r2, #8 + movs r3, #8 + bl sub_08092A50 + ldr r0, _08155268 + ldr r0, [r0, #0x4c] + movs r2, #0 + ldrsh r1, [r4, r2] + movs r3, #4 + ldrsh r2, [r4, r3] + ldrb r3, [r4, #8] + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _0815525C + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r0, _0815526C + adds r2, r2, r0 + adds r3, r2, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r1, #2 + orrs r0, r1 + strb r0, [r3] + movs r0, #3 + ldrb r1, [r4, #0xc] + ands r1, r0 + lsls r1, r1, #2 + ldrb r3, [r2, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #5] + movs r0, #0x15 + strh r0, [r2, #0x2e] +_0815525C: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08155264: .4byte 0x020388A8 +_08155268: .4byte 0x084DDE4C +_0815526C: .4byte 0x020205AC + thumb_func_end FldEff_Unknown21 + + thumb_func_start FldEff_Unknown22 +FldEff_Unknown22: @ 0x08155270 + push {r4, lr} + ldr r4, _081552D0 + adds r1, r4, #4 + adds r0, r4, #0 + movs r2, #8 + movs r3, #8 + bl sub_08092A50 + ldr r0, _081552D4 + ldr r0, [r0, #0x50] + movs r2, #0 + ldrsh r1, [r4, r2] + movs r3, #4 + ldrsh r2, [r4, r3] + ldrb r3, [r4, #8] + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _081552C8 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r0, _081552D8 + adds r2, r2, r0 + adds r3, r2, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r1, #2 + orrs r0, r1 + strb r0, [r3] + movs r0, #3 + ldrb r1, [r4, #0xc] + ands r1, r0 + lsls r1, r1, #2 + ldrb r3, [r2, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #5] + movs r0, #0x16 + strh r0, [r2, #0x2e] +_081552C8: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081552D0: .4byte 0x020388A8 +_081552D4: .4byte 0x084DDE4C +_081552D8: .4byte 0x020205AC + thumb_func_end FldEff_Unknown22 + + thumb_func_start StartAshFieldEffect +StartAshFieldEffect: @ 0x081552DC + push {r4, lr} + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldr r4, _0815530C + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + str r0, [r4] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + str r1, [r4, #4] + movs r0, #0x52 + str r0, [r4, #8] + movs r0, #1 + str r0, [r4, #0xc] + str r2, [r4, #0x10] + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + str r3, [r4, #0x14] + movs r0, #7 + bl FieldEffectStart + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815530C: .4byte 0x020388A8 + thumb_func_end StartAshFieldEffect + + thumb_func_start FldEff_Ash +FldEff_Ash: @ 0x08155310 + push {r4, r5, lr} + sub sp, #4 + ldr r5, _08155390 + ldrh r1, [r5] + mov r0, sp + strh r1, [r0] + ldrh r0, [r5, #4] + mov r4, sp + adds r4, #2 + strh r0, [r4] + mov r0, sp + adds r1, r4, #0 + movs r2, #8 + movs r3, #8 + bl sub_08092A50 + ldr r0, _08155394 + ldr r0, [r0, #0x18] + mov r1, sp + movs r2, #0 + ldrsh r1, [r1, r2] + movs r3, #0 + ldrsh r2, [r4, r3] + ldrb r3, [r5, #8] + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _08155386 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r0, _08155398 + adds r2, r2, r0 + adds r3, r2, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r1, #2 + orrs r0, r1 + strb r0, [r3] + movs r0, #3 + ldrb r1, [r5, #0xc] + ands r1, r0 + lsls r1, r1, #2 + ldrb r3, [r2, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #5] + ldr r0, [r5] + strh r0, [r2, #0x30] + ldr r0, [r5, #4] + strh r0, [r2, #0x32] + ldr r0, [r5, #0x10] + strh r0, [r2, #0x34] + ldr r0, [r5, #0x14] + strh r0, [r2, #0x36] +_08155386: + movs r0, #0 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08155390: .4byte 0x020388A8 +_08155394: .4byte 0x084DDE4C +_08155398: .4byte 0x020205AC + thumb_func_end FldEff_Ash + + thumb_func_start UpdateAshFieldEffect +UpdateAshFieldEffect: @ 0x0815539C + push {lr} + ldr r2, _081553B4 + movs r3, #0x2e + ldrsh r1, [r0, r3] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_081553B4: .4byte 0x085ACA5C + thumb_func_end UpdateAshFieldEffect + + thumb_func_start UpdateAshFieldEffect_Step0 +UpdateAshFieldEffect_Step0: @ 0x081553B8 + push {lr} + adds r3, r0, #0 + adds r2, r3, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + subs r2, #0x12 + ldrb r0, [r2] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r3, #0x36] + subs r0, #1 + strh r0, [r3, #0x36] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _081553E2 + movs r0, #1 + strh r0, [r3, #0x2e] +_081553E2: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end UpdateAshFieldEffect_Step0 + + thumb_func_start UpdateAshFieldEffect_Step1 +UpdateAshFieldEffect_Step1: @ 0x081553E8 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + subs r2, #0x12 + ldrb r1, [r2] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + movs r1, #0x30 + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldrh r2, [r4, #0x34] + bl MapGridSetMetatileIdAt + movs r1, #0x30 + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + bl CurrentMapDrawMetatileAt + ldr r2, _08155440 + ldr r0, _08155444 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + movs r0, #2 + strh r0, [r4, #0x2e] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08155440: .4byte 0x02036FF0 +_08155444: .4byte 0x02037230 + thumb_func_end UpdateAshFieldEffect_Step1 + + thumb_func_start UpdateAshFieldEffect_Step2 +UpdateAshFieldEffect_Step2: @ 0x08155448 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl UpdateEventObjectSpriteVisibility + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08155468 + adds r0, r4, #0 + movs r1, #7 + bl FieldEffectStop +_08155468: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end UpdateAshFieldEffect_Step2 + + thumb_func_start FldEff_SurfBlob +FldEff_SurfBlob: @ 0x08155470 + push {r4, r5, lr} + ldr r4, _081554D8 + adds r1, r4, #4 + adds r0, r4, #0 + movs r2, #8 + movs r3, #8 + bl sub_08092A50 + ldr r0, _081554DC + ldr r0, [r0, #0x1c] + movs r2, #0 + ldrsh r1, [r4, r2] + movs r3, #4 + ldrsh r2, [r4, r3] + movs r3, #0x96 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + cmp r0, #0x40 + beq _081554CA + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _081554E0 + adds r1, r1, r0 + adds r3, r1, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r2, #2 + orrs r0, r2 + strb r0, [r3] + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + strb r0, [r1, #5] + ldr r0, [r4, #8] + strh r0, [r1, #0x32] + ldr r0, _081554E4 + strh r0, [r1, #0x34] + movs r0, #1 + rsbs r0, r0, #0 + strh r0, [r1, #0x3a] + strh r0, [r1, #0x3c] +_081554CA: + movs r0, #8 + bl FieldEffectActiveListRemove + adds r0, r5, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081554D8: .4byte 0x020388A8 +_081554DC: .4byte 0x084DDE4C +_081554E0: .4byte 0x020205AC +_081554E4: .4byte 0x0000FFFF + thumb_func_end FldEff_SurfBlob + + thumb_func_start sub_081554E8 +sub_081554E8: @ 0x081554E8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + ldr r3, _08155510 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r3 + ldrh r0, [r2, #0x2e] + movs r3, #0x10 + rsbs r3, r3, #0 + ands r3, r0 + movs r0, #0xf0 + lsls r0, r0, #0x14 + ands r0, r1 + lsrs r0, r0, #0x18 + orrs r0, r3 + strh r0, [r2, #0x2e] + bx lr + .align 2, 0 +_08155510: .4byte 0x020205AC + thumb_func_end sub_081554E8 + + thumb_func_start sub_08155514 +sub_08155514: @ 0x08155514 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + ldr r3, _0815553C + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r3 + ldrh r0, [r2, #0x2e] + movs r3, #0xf1 + rsbs r3, r3, #0 + ands r3, r0 + movs r0, #0xf0 + lsls r0, r0, #0x14 + ands r0, r1 + lsrs r0, r0, #0x14 + orrs r3, r0 + strh r3, [r2, #0x2e] + bx lr + .align 2, 0 +_0815553C: .4byte 0x020205AC + thumb_func_end sub_08155514 + + thumb_func_start sub_08155540 +sub_08155540: @ 0x08155540 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + ldr r4, _0815556C + lsls r3, r0, #4 + adds r3, r3, r0 + lsls r3, r3, #2 + adds r3, r3, r4 + ldrh r0, [r3, #0x2e] + ldr r4, _08155570 + ands r4, r0 + movs r0, #0xf0 + lsls r0, r0, #0x14 + ands r0, r1 + lsrs r0, r0, #0x10 + orrs r4, r0 + strh r4, [r3, #0x2e] + strh r2, [r3, #0x30] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815556C: .4byte 0x020205AC +_08155570: .4byte 0xFFFFF0FF + thumb_func_end sub_08155540 + + thumb_func_start sub_08155574 +sub_08155574: @ 0x08155574 + ldrh r1, [r0, #0x2e] + movs r0, #0xf + ands r0, r1 + bx lr + thumb_func_end sub_08155574 + + thumb_func_start sub_0815557C +sub_0815557C: @ 0x0815557C + ldrh r1, [r0, #0x2e] + movs r0, #0xf0 + ands r0, r1 + lsrs r0, r0, #4 + bx lr + .align 2, 0 + thumb_func_end sub_0815557C + + thumb_func_start sub_08155588 +sub_08155588: @ 0x08155588 + ldrh r1, [r0, #0x2e] + movs r0, #0xf0 + lsls r0, r0, #4 + ands r0, r1 + lsrs r0, r0, #8 + bx lr + thumb_func_end sub_08155588 + + thumb_func_start UpdateSurfBlobFieldEffect +UpdateSurfBlobFieldEffect: @ 0x08155594 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r1, #0x32 + ldrsh r0, [r6, r1] + lsls r4, r0, #3 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _081555E4 + adds r4, r4, r0 + ldrb r0, [r4, #4] + lsls r5, r0, #4 + adds r5, r5, r0 + lsls r5, r5, #2 + ldr r0, _081555E8 + adds r5, r5, r0 + adds r0, r4, #0 + adds r1, r6, #0 + bl SynchroniseSurfAnim + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08155624 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl CreateBobbingEffect + ldrb r0, [r5, #5] + movs r1, #0xc + ands r1, r0 + ldrb r2, [r6, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r6, #5] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081555E4: .4byte 0x02036FF0 +_081555E8: .4byte 0x020205AC + thumb_func_end UpdateSurfBlobFieldEffect + + thumb_func_start SynchroniseSurfAnim +SynchroniseSurfAnim: @ 0x081555EC + push {r4, r5, lr} + sub sp, #0xc + adds r5, r0, #0 + adds r4, r1, #0 + ldr r1, _08155620 + mov r0, sp + movs r2, #9 + bl memcpy + adds r0, r4, #0 + bl sub_0815557C + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08155618 + ldrb r0, [r5, #0x18] + lsrs r0, r0, #4 + add r0, sp + ldrb r1, [r0] + adds r0, r4, #0 + bl StartSpriteAnimIfDifferent +_08155618: + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08155620: .4byte 0x085ACA68 + thumb_func_end SynchroniseSurfAnim + + thumb_func_start sub_08155624 +sub_08155624: @ 0x08155624 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r4, r1, #0 + ldrh r2, [r0, #0x10] + mov r1, sp + strh r2, [r1] + ldrh r1, [r0, #0x12] + mov r0, sp + adds r0, #2 + strh r1, [r0] + movs r2, #0x26 + ldrsh r3, [r4, r2] + mov r8, r0 + cmp r3, #0 + bne _081556AC + mov r0, sp + movs r5, #0 + ldrsh r2, [r0, r5] + movs r5, #0x3a + ldrsh r0, [r4, r5] + cmp r2, r0 + bne _08155660 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + movs r5, #0x3c + ldrsh r1, [r4, r5] + cmp r0, r1 + beq _081556AC +_08155660: + strh r3, [r4, #0x38] + strh r2, [r4, #0x3a] + mov r1, r8 + movs r2, #0 + ldrsh r0, [r1, r2] + strh r0, [r4, #0x3c] + movs r5, #1 + mov r7, r8 + mov r6, sp +_08155672: + adds r0, r5, #0 + mov r1, sp + adds r2, r7, #0 + bl MoveCoords + movs r1, #0 + ldrsh r0, [r6, r1] + movs r2, #0 + ldrsh r1, [r7, r2] + bl MapGridGetZCoordAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bne _08155698 + ldrh r0, [r4, #0x38] + adds r0, #1 + strh r0, [r4, #0x38] + b _081556AC +_08155698: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldrh r0, [r4, #0x3a] + strh r0, [r6] + ldrh r0, [r4, #0x3c] + mov r1, r8 + strh r0, [r1] + cmp r5, #4 + bls _08155672 +_081556AC: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08155624 + + thumb_func_start CreateBobbingEffect +CreateBobbingEffect: @ 0x081556B8 + push {r4, r5, lr} + sub sp, #4 + adds r5, r1, #0 + adds r4, r2, #0 + ldr r1, _0815571C + mov r0, sp + movs r2, #4 + bl memcpy + adds r0, r4, #0 + bl sub_08155574 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r2, r0, #0 + cmp r2, #0 + beq _08155732 + ldrh r1, [r4, #0x36] + adds r1, #1 + strh r1, [r4, #0x36] + movs r3, #0x38 + ldrsh r0, [r4, r3] + lsls r0, r0, #1 + add r0, sp + ldrh r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _081556F8 + ldrh r0, [r4, #0x34] + ldrh r1, [r4, #0x26] + adds r0, r0, r1 + strh r0, [r4, #0x26] +_081556F8: + ldrh r1, [r4, #0x36] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _08155708 + ldrh r0, [r4, #0x34] + rsbs r0, r0, #0 + strh r0, [r4, #0x34] +_08155708: + cmp r2, #2 + beq _08155732 + adds r0, r4, #0 + bl sub_08155588 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08155720 + ldrh r0, [r4, #0x26] + b _08155726 + .align 2, 0 +_0815571C: .4byte 0x085ACA72 +_08155720: + ldrh r0, [r4, #0x26] + ldrh r3, [r4, #0x30] + adds r0, r0, r3 +_08155726: + strh r0, [r5, #0x26] + ldrh r0, [r5, #0x20] + strh r0, [r4, #0x20] + ldrh r0, [r5, #0x22] + adds r0, #8 + strh r0, [r4, #0x22] +_08155732: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CreateBobbingEffect + + thumb_func_start sub_0815573C +sub_0815573C: @ 0x0815573C + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _08155780 + movs r1, #0 + movs r2, #0 + movs r3, #0xff + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r1, _08155784 + adds r2, r2, r1 + ldr r1, _08155788 + str r1, [r2, #0x1c] + movs r1, #0x3e + adds r1, r1, r2 + mov ip, r1 + ldrb r1, [r1] + movs r3, #4 + orrs r1, r3 + mov r3, ip + strb r1, [r3] + strh r4, [r2, #0x2e] + movs r1, #1 + strh r1, [r2, #0x30] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08155780: .4byte 0x082BF314 +_08155784: .4byte 0x020205AC +_08155788: .4byte 0x0815578D + thumb_func_end sub_0815573C + + thumb_func_start sub_0815578C +sub_0815578C: @ 0x0815578C + push {lr} + adds r2, r0, #0 + movs r0, #0x2e + ldrsh r1, [r2, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _081557C8 + adds r3, r0, r1 + ldrh r1, [r2, #0x32] + adds r0, r1, #1 + strh r0, [r2, #0x32] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _081557B4 + ldrh r0, [r2, #0x30] + ldrh r1, [r3, #0x26] + adds r0, r0, r1 + strh r0, [r3, #0x26] +_081557B4: + ldrh r1, [r2, #0x32] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _081557C4 + ldrh r0, [r2, #0x30] + rsbs r0, r0, #0 + strh r0, [r2, #0x30] +_081557C4: + pop {r0} + bx r0 + .align 2, 0 +_081557C8: .4byte 0x020205AC + thumb_func_end sub_0815578C + + thumb_func_start FldEff_Dust +FldEff_Dust: @ 0x081557CC + push {r4, lr} + ldr r4, _08155830 + adds r1, r4, #4 + adds r0, r4, #0 + movs r2, #8 + movs r3, #0xc + bl sub_08092A50 + ldr r0, _08155834 + ldr r0, [r0, #0x24] + movs r2, #0 + ldrsh r1, [r4, r2] + movs r3, #4 + ldrsh r2, [r4, r3] + movs r3, #0 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _08155828 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r0, _08155838 + adds r2, r2, r0 + adds r3, r2, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r1, #2 + orrs r0, r1 + strb r0, [r3] + movs r0, #3 + ldrb r1, [r4, #0xc] + ands r1, r0 + lsls r1, r1, #2 + ldrb r3, [r2, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #5] + ldr r0, [r4, #8] + strh r0, [r2, #0x2e] + movs r0, #0xa + strh r0, [r2, #0x30] +_08155828: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08155830: .4byte 0x020388A8 +_08155834: .4byte 0x084DDE4C +_08155838: .4byte 0x020205AC + thumb_func_end FldEff_Dust + + thumb_func_start FldEff_SandPile +FldEff_SandPile: @ 0x0815583C + push {r4, r5, r6, r7, lr} + ldr r7, _081558E8 + ldrb r0, [r7] + ldrb r1, [r7, #4] + ldrb r2, [r7, #8] + bl GetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _081558EC + adds r6, r1, r0 + ldr r0, _081558F0 + ldr r0, [r0, #0x74] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x40 + beq _081558E0 + ldrb r0, [r6, #5] + bl GetEventObjectGraphicsInfo + adds r5, r0, #0 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + ldr r4, _081558F4 + adds r0, r0, r4 + adds r3, r0, #0 + adds r3, #0x3e + ldrb r1, [r3] + movs r2, #2 + orrs r1, r2 + strb r1, [r3] + ldrb r2, [r6, #4] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r1, [r1, #5] + movs r2, #0xc + ands r2, r1 + ldrb r3, [r0, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r2 + strb r1, [r0, #5] + ldr r1, [r7] + strh r1, [r0, #0x2e] + ldr r1, [r7, #4] + strh r1, [r0, #0x30] + ldr r1, [r7, #8] + strh r1, [r0, #0x32] + ldrb r2, [r6, #4] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrh r1, [r1, #0x20] + strh r1, [r0, #0x34] + ldrb r2, [r6, #4] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrh r1, [r1, #0x22] + strh r1, [r0, #0x36] + ldrh r1, [r5, #0xa] + lsls r1, r1, #0x10 + asrs r1, r1, #0x11 + subs r1, #2 + strh r1, [r0, #0x26] + movs r1, #2 + bl SeekSpriteAnim +_081558E0: + movs r0, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081558E8: .4byte 0x020388A8 +_081558EC: .4byte 0x02036FF0 +_081558F0: .4byte 0x084DDE4C +_081558F4: .4byte 0x020205AC + thumb_func_end FldEff_SandPile + + thumb_func_start UpdateSandPileFieldEffect +UpdateSandPileFieldEffect: @ 0x081558F8 + push {r4, r5, r6, lr} + sub sp, #4 + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #0x30] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrh r2, [r4, #0x32] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08155932 + ldr r2, _0815593C + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r2 + ldrb r0, [r1, #2] + lsls r0, r0, #0x1b + cmp r0, #0 + blt _08155940 +_08155932: + adds r0, r4, #0 + movs r1, #0x27 + bl FieldEffectStop + b _081559B2 + .align 2, 0 +_0815593C: .4byte 0x02036FF0 +_08155940: + ldr r2, _081559BC + ldrb r1, [r1, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r5, [r0, #0x22] + ldrh r6, [r0, #0x20] + movs r2, #0x20 + ldrsh r1, [r0, r2] + movs r2, #0x34 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _08155968 + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x36 + ldrsh r1, [r4, r2] + cmp r0, r1 + beq _08155982 +_08155968: + strh r6, [r4, #0x34] + strh r5, [r4, #0x36] + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08155982 + adds r0, r4, #0 + movs r1, #0 + bl StartSpriteAnim +_08155982: + strh r6, [r4, #0x20] + strh r5, [r4, #0x22] + ldr r3, _081559BC + ldr r2, _081559C0 + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x43 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x43 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl UpdateEventObjectSpriteVisibility +_081559B2: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081559BC: .4byte 0x020205AC +_081559C0: .4byte 0x02036FF0 + thumb_func_end UpdateSandPileFieldEffect + + thumb_func_start FldEff_Bubbles +FldEff_Bubbles: @ 0x081559C4 + push {r4, lr} + ldr r4, _08155A1C + adds r1, r4, #4 + adds r0, r4, #0 + movs r2, #8 + movs r3, #0 + bl sub_08092A50 + ldr r0, _08155A20 + adds r0, #0x88 + ldr r0, [r0] + movs r2, #0 + ldrsh r1, [r4, r2] + movs r3, #4 + ldrsh r2, [r4, r3] + movs r3, #0x52 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _08155A14 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08155A24 + adds r1, r1, r0 + adds r3, r1, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r2, #2 + orrs r0, r2 + strb r0, [r3] + ldrb r2, [r1, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + movs r2, #4 + orrs r0, r2 + strb r0, [r1, #5] +_08155A14: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08155A1C: .4byte 0x020388A8 +_08155A20: .4byte 0x084DDE4C +_08155A24: .4byte 0x020205AC + thumb_func_end FldEff_Bubbles + + thumb_func_start UpdateBubblesFieldEffect +UpdateBubblesFieldEffect: @ 0x08155A28 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + adds r0, #0x80 + movs r1, #0x80 + lsls r1, r1, #1 + ands r0, r1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x22] + subs r1, r1, r0 + strh r1, [r4, #0x22] + adds r0, r4, #0 + movs r1, #0 + bl UpdateEventObjectSpriteVisibility + ldrh r1, [r4, #0x3e] + ldr r0, _08155A64 + ands r0, r1 + cmp r0, #0 + beq _08155A5C + adds r0, r4, #0 + movs r1, #0x35 + bl FieldEffectStop +_08155A5C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08155A64: .4byte 0x00001004 + thumb_func_end UpdateBubblesFieldEffect + + thumb_func_start FldEff_BerryTreeGrowthSparkle +FldEff_BerryTreeGrowthSparkle: @ 0x08155A68 + push {r4, lr} + ldr r4, _08155AD0 + adds r1, r4, #4 + adds r0, r4, #0 + movs r2, #8 + movs r3, #4 + bl sub_08092A50 + ldr r0, _08155AD4 + ldr r0, [r0, #0x58] + movs r2, #0 + ldrsh r1, [r4, r2] + movs r3, #4 + ldrsh r2, [r4, r3] + ldrb r3, [r4, #8] + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _08155AC8 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r0, _08155AD8 + adds r2, r2, r0 + adds r3, r2, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r1, #2 + orrs r0, r1 + strb r0, [r3] + movs r0, #3 + ldrb r1, [r4, #0xc] + ands r1, r0 + lsls r1, r1, #2 + ldrb r3, [r2, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + movs r1, #0xf + ands r0, r1 + movs r1, #0x50 + orrs r0, r1 + strb r0, [r2, #5] + movs r0, #0x17 + strh r0, [r2, #0x2e] +_08155AC8: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08155AD0: .4byte 0x020388A8 +_08155AD4: .4byte 0x084DDE4C +_08155AD8: .4byte 0x020205AC + thumb_func_end FldEff_BerryTreeGrowthSparkle + + thumb_func_start ShowTreeDisguiseFieldEffect +ShowTreeDisguiseFieldEffect: @ 0x08155ADC + push {lr} + movs r0, #0x1c + movs r1, #0x18 + movs r2, #4 + bl ShowDisguiseFieldEffect + pop {r1} + bx r1 + thumb_func_end ShowTreeDisguiseFieldEffect + + thumb_func_start ShowMountainDisguiseFieldEffect +ShowMountainDisguiseFieldEffect: @ 0x08155AEC + push {lr} + movs r0, #0x1d + movs r1, #0x19 + movs r2, #3 + bl ShowDisguiseFieldEffect + pop {r1} + bx r1 + thumb_func_end ShowMountainDisguiseFieldEffect + + thumb_func_start ShowSandDisguiseFieldEffect +ShowSandDisguiseFieldEffect: @ 0x08155AFC + push {lr} + movs r0, #0x24 + movs r1, #0x1c + movs r2, #2 + bl ShowDisguiseFieldEffect + pop {r1} + bx r1 + thumb_func_end ShowSandDisguiseFieldEffect + + thumb_func_start ShowDisguiseFieldEffect +ShowDisguiseFieldEffect: @ 0x08155B0C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + mov r8, r4 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + ldr r5, _08155B40 + ldrb r0, [r5] + ldrb r1, [r5, #4] + ldrb r2, [r5, #8] + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08155B44 + adds r0, r4, #0 + bl FieldEffectActiveListRemove + movs r0, #0x40 + b _08155BB0 + .align 2, 0 +_08155B40: .4byte 0x020388A8 +_08155B44: + ldr r1, _08155BBC + lsls r0, r6, #2 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl CreateSpriteAtEnd + mov r1, sp + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _08155BAC + mov r0, sp + ldrb r0, [r0] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r0, _08155BC0 + adds r2, r2, r0 + movs r0, #0x3e + adds r0, r0, r2 + mov ip, r0 + ldrb r3, [r0] + lsls r1, r3, #0x1e + lsrs r1, r1, #0x1f + adds r1, #1 + movs r0, #1 + ands r1, r0 + lsls r1, r1, #1 + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + lsls r3, r7, #4 + ldrb r1, [r2, #5] + movs r0, #0xf + ands r0, r1 + orrs r0, r3 + strb r0, [r2, #5] + mov r0, r8 + strh r0, [r2, #0x30] + ldr r0, [r5] + strh r0, [r2, #0x32] + ldr r0, [r5, #4] + strh r0, [r2, #0x34] + ldr r0, [r5, #8] + strh r0, [r2, #0x36] +_08155BAC: + mov r0, sp + ldrb r0, [r0] +_08155BB0: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08155BBC: .4byte 0x084DDE4C +_08155BC0: .4byte 0x020205AC + thumb_func_end ShowDisguiseFieldEffect + + thumb_func_start UpdateDisguiseFieldEffect +UpdateDisguiseFieldEffect: @ 0x08155BC4 + push {r4, r5, lr} + sub sp, #4 + adds r5, r0, #0 + ldrh r0, [r5, #0x32] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r5, #0x34] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrh r2, [r5, #0x36] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08155BF4 + ldrh r1, [r5, #0x30] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl FieldEffectStop +_08155BF4: + ldr r4, _08155CAC + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r0, [r0, #5] + bl GetEventObjectGraphicsInfo + mov r1, sp + ldrb r2, [r1] + lsls r1, r2, #3 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r1, [r1, #4] + lsls r2, r1, #4 + adds r2, r2, r1 + lsls r2, r2, #2 + ldr r1, _08155CB0 + adds r2, r2, r1 + adds r1, r2, #0 + adds r1, #0x3e + ldrb r1, [r1] + movs r3, #0x3e + adds r3, r3, r5 + mov ip, r3 + movs r3, #4 + ands r3, r1 + mov r1, ip + ldrb r4, [r1] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r4 + orrs r1, r3 + mov r3, ip + strb r1, [r3] + ldrh r1, [r2, #0x20] + strh r1, [r5, #0x20] + ldrh r0, [r0, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + ldrh r1, [r2, #0x22] + adds r0, r0, r1 + subs r0, #0x10 + strh r0, [r5, #0x22] + adds r2, #0x43 + ldrb r0, [r2] + subs r0, #1 + adds r1, r5, #0 + adds r1, #0x43 + strb r0, [r1] + ldrh r1, [r5, #0x2e] + movs r2, #0x2e + ldrsh r0, [r5, r2] + cmp r0, #1 + bne _08155C74 + adds r0, r1, #1 + strh r0, [r5, #0x2e] + adds r0, r5, #0 + movs r1, #1 + bl StartSpriteAnim +_08155C74: + movs r3, #0x2e + ldrsh r0, [r5, r3] + ldrh r2, [r5, #0x2e] + cmp r0, #2 + bne _08155C90 + adds r0, r5, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08155C90 + movs r0, #1 + strh r0, [r5, #0x3c] +_08155C90: + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + bne _08155CA4 + ldrh r1, [r5, #0x30] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl FieldEffectStop +_08155CA4: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08155CAC: .4byte 0x02036FF0 +_08155CB0: .4byte 0x020205AC + thumb_func_end UpdateDisguiseFieldEffect + + thumb_func_start sub_08155CB4 +sub_08155CB4: @ 0x08155CB4 + push {lr} + adds r1, r0, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #1 + bne _08155CD2 + ldr r2, _08155CD8 + ldrb r1, [r1, #0x1a] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x2e] + adds r1, #1 + strh r1, [r0, #0x2e] +_08155CD2: + pop {r0} + bx r0 + .align 2, 0 +_08155CD8: .4byte 0x020205AC + thumb_func_end sub_08155CB4 + + thumb_func_start sub_08155CDC +sub_08155CDC: @ 0x08155CDC + push {lr} + adds r2, r0, #0 + adds r2, #0x21 + ldrb r1, [r2] + cmp r1, #2 + beq _08155D12 + cmp r1, #0 + beq _08155D12 + ldrb r1, [r0, #0x1a] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08155D04 + adds r1, r0, r1 + movs r3, #0x3c + ldrsh r0, [r1, r3] + cmp r0, #0 + bne _08155D08 + movs r0, #0 + b _08155D14 + .align 2, 0 +_08155D04: .4byte 0x020205AC +_08155D08: + movs r0, #2 + strb r0, [r2] + ldrh r0, [r1, #0x2e] + adds r0, #1 + strh r0, [r1, #0x2e] +_08155D12: + movs r0, #1 +_08155D14: + pop {r1} + bx r1 + thumb_func_end sub_08155CDC + + thumb_func_start FldEff_Sparkle +FldEff_Sparkle: @ 0x08155D18 + push {r4, lr} + ldr r4, _08155D80 + ldr r0, [r4] + adds r0, #7 + str r0, [r4] + ldr r0, [r4, #4] + adds r0, #7 + str r0, [r4, #4] + adds r1, r4, #4 + adds r0, r4, #0 + movs r2, #8 + movs r3, #8 + bl sub_08092A50 + ldr r0, _08155D84 + adds r0, #0x8c + ldr r0, [r0] + movs r2, #0 + ldrsh r1, [r4, r2] + movs r3, #4 + ldrsh r2, [r4, r3] + movs r3, #0x52 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x40 + beq _08155D78 + ldr r0, _08155D88 + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + movs r0, #3 + ldrb r2, [r4, #8] + ands r2, r0 + lsls r2, r2, #2 + ldrb r3, [r1, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1, #5] + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #2 + orrs r0, r2 + strb r0, [r1] +_08155D78: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08155D80: .4byte 0x020388A8 +_08155D84: .4byte 0x084DDE4C +_08155D88: .4byte 0x020205AC + thumb_func_end FldEff_Sparkle + + thumb_func_start UpdateSparkleFieldEffect +UpdateSparkleFieldEffect: @ 0x08155D8C + push {lr} + adds r2, r0, #0 + movs r1, #0x2e + ldrsh r0, [r2, r1] + cmp r0, #0 + bne _08155DC0 + adds r0, r2, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08155DB8 + adds r3, r2, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r1, #4 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r2, #0x2e] + adds r0, #1 + strh r0, [r2, #0x2e] +_08155DB8: + movs r1, #0x2e + ldrsh r0, [r2, r1] + cmp r0, #0 + beq _08155DD6 +_08155DC0: + ldrh r0, [r2, #0x30] + adds r0, #1 + strh r0, [r2, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x22 + ble _08155DD6 + adds r0, r2, #0 + movs r1, #0x36 + bl FieldEffectStop +_08155DD6: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end UpdateSparkleFieldEffect + + thumb_func_start sub_08155DDC +sub_08155DDC: @ 0x08155DDC + movs r1, #0 + strh r1, [r0, #0x3a] + strh r1, [r0, #0x3c] + bx lr + thumb_func_end sub_08155DDC + + thumb_func_start sub_08155DE4 +sub_08155DE4: @ 0x08155DE4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r6, #0 + movs r1, #0x3c + ldrsh r0, [r5, r1] + cmp r0, #1 + beq _08155E1A + cmp r0, #1 + bgt _08155DFC + cmp r0, #0 + beq _08155E06 + b _08155E7E +_08155DFC: + cmp r0, #2 + beq _08155E42 + cmp r0, #3 + beq _08155E56 + b _08155E7E +_08155E06: + movs r2, #0x3a + ldrsh r0, [r5, r2] + bl sub_080970AC + ldrh r1, [r5, #0x24] + adds r0, r0, r1 + strh r0, [r5, #0x24] + movs r2, #0x3a + ldrsh r0, [r5, r2] + b _08155E74 +_08155E1A: + ldrh r0, [r5, #0x3a] + movs r4, #0x47 + subs r0, r4, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + bl sub_080970AC + ldrh r1, [r5, #0x24] + subs r1, r1, r0 + strh r1, [r5, #0x24] + ldrh r0, [r5, #0x3a] + subs r4, r4, r0 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + adds r0, r4, #0 + bl sub_08097098 + ldrh r2, [r5, #0x26] + adds r0, r0, r2 + b _08155E7C +_08155E42: + movs r1, #0x3a + ldrsh r0, [r5, r1] + bl sub_080970AC + ldrh r1, [r5, #0x24] + subs r1, r1, r0 + strh r1, [r5, #0x24] + movs r2, #0x3a + ldrsh r0, [r5, r2] + b _08155E74 +_08155E56: + ldrh r0, [r5, #0x3a] + movs r4, #0x47 + subs r0, r4, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + bl sub_080970AC + ldrh r2, [r5, #0x24] + adds r0, r0, r2 + strh r0, [r5, #0x24] + ldrh r0, [r5, #0x3a] + subs r4, r4, r0 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + adds r0, r4, #0 +_08155E74: + bl sub_08097098 + ldrh r1, [r5, #0x26] + adds r0, r0, r1 +_08155E7C: + strh r0, [r5, #0x26] +_08155E7E: + ldrh r1, [r5, #0x24] + rsbs r1, r1, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x10 + bl SetGpuReg + ldrh r0, [r5, #0x3a] + adds r0, #1 + movs r1, #0 + strh r0, [r5, #0x3a] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x48 + bne _08155EA4 + strh r1, [r5, #0x3a] + ldrh r0, [r5, #0x3c] + adds r0, #1 + strh r0, [r5, #0x3c] +_08155EA4: + movs r2, #0x3c + ldrsh r0, [r5, r2] + cmp r0, #4 + bne _08155EB2 + strh r1, [r5, #0x26] + strh r1, [r5, #0x24] + movs r6, #1 +_08155EB2: + adds r0, r6, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08155DE4 + + thumb_func_start sub_08155EBC +sub_08155EBC: @ 0x08155EBC + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r1, #0x32 + ldrsh r0, [r5, r1] + cmp r0, #8 + bls _08155ECA + b _08156092 +_08155ECA: + lsls r0, r0, #2 + ldr r1, _08155ED4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08155ED4: .4byte 0x08155ED8 +_08155ED8: @ jump table + .4byte _08155EFC @ case 0 + .4byte _08155F70 @ case 1 + .4byte _08155FA8 @ case 2 + .4byte _08155FCC @ case 3 + .4byte _08155FFC @ case 4 + .4byte _08156010 @ case 5 + .4byte _0815601C @ case 6 + .4byte _0815604A @ case 7 + .4byte _0815605C @ case 8 +_08155EFC: + movs r2, #0x2e + ldrsh r0, [r5, r2] + movs r1, #3 + bl __divsi3 + movs r1, #0x78 + subs r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x12 + bl SetGpuReg + movs r3, #0x2e + ldrsh r0, [r5, r3] + cmp r0, #0x60 + bne _08155F52 + movs r1, #0 + ldr r4, _08155F64 + mov ip, r4 + ldr r0, _08155F68 + adds r7, r0, #0 +_08155F26: + movs r2, #0xc + lsls r0, r1, #1 + adds r3, r1, #1 + lsls r6, r1, #5 + adds r0, r0, r1 + lsls r4, r0, #1 +_08155F32: + adds r0, r6, r2 + lsls r0, r0, #1 + add r0, ip + adds r1, r2, r7 + adds r1, r4, r1 + adds r1, #1 + strh r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x11 + bls _08155F32 + lsls r0, r3, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #2 + bls _08155F26 +_08155F52: + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r0, _08155F6C + cmp r1, r0 + bgt _08155F5E + b _08156092 +_08155F5E: + movs r1, #0 + movs r0, #1 + b _08156056 + .align 2, 0 +_08155F64: .4byte 0x0600F800 +_08155F68: .4byte 0x0000BFF4 +_08155F6C: .4byte 0x00000137 +_08155F70: + ldr r4, _08155FA4 + movs r3, #0x2e + ldrsh r0, [r5, r3] + movs r1, #3 + bl __divsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0xf + adds r0, r0, r4 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x12 + ldrh r4, [r5, #0x36] + adds r0, r0, r4 + movs r1, #0 + strh r0, [r5, #0x22] + movs r2, #0x2e + ldrsh r0, [r5, r2] + cmp r0, #0xbd + bne _08156092 + movs r0, #2 + strh r0, [r5, #0x32] + strh r1, [r5, #0x38] + strh r1, [r5, #0x2e] + b _08156092 + .align 2, 0 +_08155FA4: .4byte 0x082FA8CC +_08155FA8: + movs r3, #0x2e + ldrsh r0, [r5, r3] + cmp r0, #0x3c + bne _08155FBA + ldrh r0, [r5, #0x38] + adds r0, #1 + movs r1, #0 + strh r0, [r5, #0x38] + strh r1, [r5, #0x2e] +_08155FBA: + movs r4, #0x38 + ldrsh r0, [r5, r4] + cmp r0, #7 + bne _08156092 + movs r0, #0 + strh r0, [r5, #0x38] + movs r0, #3 + strh r0, [r5, #0x32] + b _08156092 +_08155FCC: + ldrh r2, [r5, #0x26] + movs r0, #0x26 + ldrsh r1, [r5, r0] + adds r3, r2, #0 + cmp r1, #0 + bne _08155FE0 + strh r1, [r5, #0x2e] + ldrh r0, [r5, #0x32] + adds r0, #1 + strh r0, [r5, #0x32] +_08155FE0: + movs r4, #0x2e + ldrsh r0, [r5, r4] + cmp r0, #5 + bne _08156092 + movs r0, #0 + strh r0, [r5, #0x2e] + cmp r1, #0 + ble _08155FF6 + subs r0, r3, #1 + strh r0, [r5, #0x26] + b _08156092 +_08155FF6: + adds r0, r2, #1 + strh r0, [r5, #0x26] + b _08156092 +_08155FFC: + movs r1, #0x2e + ldrsh r0, [r5, r1] + cmp r0, #0x3c + bne _08156092 + movs r1, #0 + movs r0, #5 + strh r0, [r5, #0x32] + strh r1, [r5, #0x2e] + strh r1, [r5, #0x38] + b _08156092 +_08156010: + adds r0, r5, #0 + bl sub_08155DDC + movs r1, #0 + movs r0, #6 + b _08156056 +_0815601C: + adds r0, r5, #0 + bl sub_08155DE4 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08156092 + movs r1, #0 + strh r1, [r5, #0x2e] + ldrh r0, [r5, #0x38] + adds r0, #1 + strh r0, [r5, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + bgt _08156042 + adds r0, r5, #0 + bl sub_08155DDC + b _08156092 +_08156042: + strh r1, [r5, #0x38] + movs r0, #7 + strh r0, [r5, #0x32] + b _08156092 +_0815604A: + movs r2, #0x2e + ldrsh r0, [r5, r2] + cmp r0, #0x1e + bne _08156092 + movs r1, #0 + movs r0, #8 +_08156056: + strh r0, [r5, #0x32] + strh r1, [r5, #0x2e] + b _08156092 +_0815605C: + movs r1, #0 + ldr r6, _081560CC + movs r4, #0 +_08156062: + movs r2, #0xc + adds r3, r1, #1 + lsls r1, r1, #5 +_08156068: + adds r0, r1, r2 + lsls r0, r0, #1 + adds r0, r0, r6 + strh r4, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x11 + bls _08156068 + lsls r0, r3, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xe + bls _08156062 + movs r0, #0x12 + movs r1, #0 + bl SetGpuReg + adds r0, r5, #0 + movs r1, #0x40 + bl FieldEffectStop +_08156092: + movs r3, #0x32 + ldrsh r0, [r5, r3] + cmp r0, #1 + bne _081560C0 + ldrh r1, [r5, #0x30] + movs r0, #7 + ands r0, r1 + adds r2, r1, #0 + cmp r0, #0 + bne _081560AE + ldrh r0, [r5, #0x34] + ldrh r4, [r5, #0x26] + adds r0, r0, r4 + strh r0, [r5, #0x26] +_081560AE: + movs r0, #0xf + ands r0, r2 + cmp r0, #0 + bne _081560BC + ldrh r0, [r5, #0x34] + rsbs r0, r0, #0 + strh r0, [r5, #0x34] +_081560BC: + adds r0, r1, #1 + strh r0, [r5, #0x30] +_081560C0: + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081560CC: .4byte 0x0600F800 + thumb_func_end sub_08155EBC + + thumb_func_start sub_081560D0 +sub_081560D0: @ 0x081560D0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _081560EE + ldrh r1, [r4, #0x30] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl FieldEffectStop + b _08156104 +_081560EE: + adds r0, r4, #0 + movs r1, #0 + bl UpdateEventObjectSpriteVisibility + ldrh r0, [r4, #0x2e] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r4, #0 + movs r2, #0 + bl SetObjectSubpriorityByZCoord +_08156104: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081560D0 + + thumb_func_start WaitFieldEffectSpriteAnim +WaitFieldEffectSpriteAnim: @ 0x0815610C + push {lr} + adds r2, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0815612A + ldrh r1, [r2, #0x2e] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r2, #0 + bl FieldEffectStop + b _08156132 +_0815612A: + adds r0, r2, #0 + movs r1, #0 + bl UpdateEventObjectSpriteVisibility +_08156132: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WaitFieldEffectSpriteAnim + + thumb_func_start sub_08156138 +sub_08156138: @ 0x08156138 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r0, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r1, r6, #0 + bl SetObjectSubpriorityByZCoord + movs r7, #0 +_0815614E: + lsls r0, r7, #3 + adds r0, r0, r7 + lsls r0, r0, #2 + ldr r1, _081561E8 + adds r4, r0, r1 + ldrb r0, [r4] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _081561F0 + ldrb r0, [r4, #5] + bl GetEventObjectGraphicsInfo + ldrb r1, [r4, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _081561EC + adds r5, r0, r1 + adds r0, r6, #0 + adds r0, #0x28 + movs r2, #0 + ldrsb r2, [r0, r2] + ldrh r0, [r6, #0x20] + adds r1, r0, r2 + subs r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #0x20 + ldrsh r2, [r5, r0] + cmp r1, r2 + bge _081561F0 + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + cmp r0, r2 + ble _081561F0 + adds r0, r5, #0 + adds r0, #0x29 + movs r3, #0 + ldrsb r3, [r0, r3] + ldrh r2, [r5, #0x22] + adds r2, r2, r3 + ldrh r4, [r5, #0x22] + adds r0, r6, #0 + adds r0, #0x29 + movs r1, #0 + ldrsb r1, [r0, r1] + ldrh r0, [r6, #0x22] + subs r0, r0, r1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r3, r0, r3 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + cmp r2, r3 + blt _081561C8 + cmp r2, r0 + bge _081561F0 +_081561C8: + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + cmp r0, r3 + ble _081561F0 + adds r2, r6, #0 + adds r2, #0x43 + adds r0, r5, #0 + adds r0, #0x43 + ldrb r1, [r0] + ldrb r0, [r2] + cmp r0, r1 + bhi _081561F0 + adds r0, r1, #2 + strb r0, [r2] + b _081561FA + .align 2, 0 +_081561E8: .4byte 0x02036FF0 +_081561EC: .4byte 0x020205AC +_081561F0: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #0xf + bls _0815614E +_081561FA: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08156138 + diff --git a/asm/field_message_box.s b/asm/field_message_box.s new file mode 100644 index 0000000..e8a7205 --- /dev/null +++ b/asm/field_message_box.s @@ -0,0 +1,357 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start InitFieldMessageBox +InitFieldMessageBox: @ 0x08097AB0 + ldr r1, _08097AD4 + movs r0, #0 + strb r0, [r1] + ldr r2, _08097AD8 + ldrb r1, [r2] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + rsbs r1, r1, #0 + ands r0, r1 + subs r1, #2 + ands r0, r1 + subs r1, #4 + ands r0, r1 + strb r0, [r2] + bx lr + .align 2, 0 +_08097AD4: .4byte 0x0203725C +_08097AD8: .4byte 0x030030B4 + thumb_func_end InitFieldMessageBox + + thumb_func_start sub_08097ADC +sub_08097ADC: @ 0x08097ADC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _08097B00 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _08097B10 + cmp r0, #1 + bgt _08097B04 + cmp r0, #0 + beq _08097B0A + b _08097B38 + .align 2, 0 +_08097B00: .4byte 0x03005B60 +_08097B04: + cmp r0, #2 + beq _08097B20 + b _08097B38 +_08097B0A: + bl sub_08196F98 + b _08097B18 +_08097B10: + movs r0, #0 + movs r1, #1 + bl ClearDialogWindowAndFrame +_08097B18: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _08097B38 +_08097B20: + bl RunTextPrintersAndIsPrinter0Active + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + beq _08097B38 + ldr r1, _08097B40 + movs r0, #0 + strb r0, [r1] + adds r0, r5, #0 + bl DestroyTask +_08097B38: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08097B40: .4byte 0x0203725C + thumb_func_end sub_08097ADC + + thumb_func_start task_add_textbox +task_add_textbox: @ 0x08097B44 + push {lr} + ldr r0, _08097B54 + movs r1, #0x50 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_08097B54: .4byte 0x08097ADD + thumb_func_end task_add_textbox + + thumb_func_start task_del_textbox +task_del_textbox: @ 0x08097B58 + push {lr} + ldr r0, _08097B70 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _08097B6C + bl DestroyTask +_08097B6C: + pop {r0} + bx r0 + .align 2, 0 +_08097B70: .4byte 0x08097ADD + thumb_func_end task_del_textbox + + thumb_func_start ShowFieldMessage +ShowFieldMessage: @ 0x08097B74 + push {r4, lr} + adds r1, r0, #0 + ldr r4, _08097B90 + ldrb r0, [r4] + cmp r0, #0 + bne _08097B94 + adds r0, r1, #0 + movs r1, #1 + bl textbox_fdecode_auto_and_task_add + movs r0, #2 + strb r0, [r4] + movs r0, #1 + b _08097B96 + .align 2, 0 +_08097B90: .4byte 0x0203725C +_08097B94: + movs r0, #0 +_08097B96: + pop {r4} + pop {r1} + bx r1 + thumb_func_end ShowFieldMessage + + thumb_func_start sub_08097B9C +sub_08097B9C: @ 0x08097B9C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl IsMatchCallTaskActive + adds r1, r0, #0 + cmp r1, #0 + bne _08097BB6 + ldr r0, _08097BBC + strb r1, [r0] + adds r0, r4, #0 + bl DestroyTask +_08097BB6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097BBC: .4byte 0x0203725C + thumb_func_end sub_08097B9C + + thumb_func_start sub_08097BC0 +sub_08097BC0: @ 0x08097BC0 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08097BEC + ldrb r0, [r5] + cmp r0, #0 + bne _08097BF8 + ldr r0, _08097BF0 + adds r1, r4, #0 + bl StringExpandPlaceholders + ldr r0, _08097BF4 + movs r1, #0 + bl CreateTask + adds r0, r4, #0 + bl StartMatchCallFromScript + movs r0, #2 + strb r0, [r5] + movs r0, #1 + b _08097BFA + .align 2, 0 +_08097BEC: .4byte 0x0203725C +_08097BF0: .4byte 0x02021C7C +_08097BF4: .4byte 0x08097B9D +_08097BF8: + movs r0, #0 +_08097BFA: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_08097BC0 + + thumb_func_start ShowFieldAutoScrollMessage +ShowFieldAutoScrollMessage: @ 0x08097C00 + push {lr} + adds r1, r0, #0 + ldr r2, _08097C1C + ldrb r0, [r2] + cmp r0, #0 + bne _08097C20 + movs r0, #3 + strb r0, [r2] + adds r0, r1, #0 + movs r1, #0 + bl textbox_fdecode_auto_and_task_add + movs r0, #1 + b _08097C22 + .align 2, 0 +_08097C1C: .4byte 0x0203725C +_08097C20: + movs r0, #0 +_08097C22: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ShowFieldAutoScrollMessage + + thumb_func_start sub_08097C28 +sub_08097C28: @ 0x08097C28 + push {lr} + ldr r2, _08097C3C + movs r1, #3 + strb r1, [r2] + movs r1, #1 + bl textbox_fdecode_auto_and_task_add + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 +_08097C3C: .4byte 0x0203725C + thumb_func_end sub_08097C28 + + thumb_func_start sub_08097C40 +sub_08097C40: @ 0x08097C40 + push {lr} + ldr r1, _08097C58 + ldrb r0, [r1] + cmp r0, #0 + bne _08097C5C + movs r0, #2 + strb r0, [r1] + bl textbox_auto_and_task_add + movs r0, #1 + b _08097C5E + .align 2, 0 +_08097C58: .4byte 0x0203725C +_08097C5C: + movs r0, #0 +_08097C5E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08097C40 + + thumb_func_start textbox_fdecode_auto_and_task_add +textbox_fdecode_auto_and_task_add: @ 0x08097C64 + push {r4, lr} + adds r2, r0, #0 + adds r4, r1, #0 + ldr r0, _08097C88 + adds r1, r2, #0 + bl StringExpandPlaceholders + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl AddTextPrinterForMessage + bl task_add_textbox + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097C88: .4byte 0x02021C7C + thumb_func_end textbox_fdecode_auto_and_task_add + + thumb_func_start textbox_auto_and_task_add +textbox_auto_and_task_add: @ 0x08097C8C + push {lr} + movs r0, #1 + bl AddTextPrinterForMessage + bl task_add_textbox + pop {r0} + bx r0 + thumb_func_end textbox_auto_and_task_add + + thumb_func_start HideFieldMessageBox +HideFieldMessageBox: @ 0x08097C9C + push {lr} + bl task_del_textbox + movs r0, #0 + movs r1, #1 + bl DrawDialogueFrame + ldr r1, _08097CB4 + movs r0, #0 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08097CB4: .4byte 0x0203725C + thumb_func_end HideFieldMessageBox + + thumb_func_start GetFieldMessageBoxMode +GetFieldMessageBoxMode: @ 0x08097CB8 + ldr r0, _08097CC0 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08097CC0: .4byte 0x0203725C + thumb_func_end GetFieldMessageBoxMode + + thumb_func_start IsFieldMessageBoxHidden +IsFieldMessageBoxHidden: @ 0x08097CC4 + push {lr} + ldr r0, _08097CD4 + ldrb r0, [r0] + cmp r0, #0 + beq _08097CD8 + movs r0, #0 + b _08097CDA + .align 2, 0 +_08097CD4: .4byte 0x0203725C +_08097CD8: + movs r0, #1 +_08097CDA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsFieldMessageBoxHidden + + thumb_func_start sub_08097CE0 +sub_08097CE0: @ 0x08097CE0 + push {lr} + bl task_del_textbox + movs r0, #0 + movs r1, #1 + bl ClearStdWindowAndFrame + ldr r1, _08097CF8 + movs r0, #0 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08097CF8: .4byte 0x0203725C + thumb_func_end sub_08097CE0 + + thumb_func_start sub_08097CFC +sub_08097CFC: @ 0x08097CFC + push {lr} + bl task_del_textbox + ldr r1, _08097D0C + movs r0, #0 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08097D0C: .4byte 0x0203725C + thumb_func_end sub_08097CFC + diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s new file mode 100644 index 0000000..55e7165 --- /dev/null +++ b/asm/field_player_avatar.s @@ -0,0 +1,5654 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start MovementType_Player +MovementType_Player: @ 0x0808A2FC + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _0808A318 + adds r0, r0, r2 + ldr r2, _0808A31C + bl UpdateEventObjectCurrentMovement + pop {r0} + bx r0 + .align 2, 0 +_0808A318: .4byte 0x02036FF0 +_0808A31C: .4byte 0x0808A321 + thumb_func_end MovementType_Player + + thumb_func_start EventObjectCB2_NoMovement2 +EventObjectCB2_NoMovement2: @ 0x0808A320 + movs r0, #0 + bx lr + thumb_func_end EventObjectCB2_NoMovement2 + + thumb_func_start player_step +player_step: @ 0x0808A324 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r6, r2, #0x10 + ldr r4, _0808A394 + ldrb r1, [r4, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808A398 + adds r5, r0, r1 + adds r0, r5, #0 + bl sub_0808BBE4 + ldrb r0, [r4, #6] + cmp r0, #0 + bne _0808A38A + adds r0, r7, #0 + adds r1, r6, #0 + bl Bike_TryAcroBikeHistoryUpdate + adds r0, r5, #0 + mov r1, r8 + bl TryInterruptEventObjectSpecialAnim + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808A38A + adds r0, r5, #0 + bl npc_clear_strange_bits + bl DoPlayerAvatarTransition + bl TryDoMetatileBehaviorForcedMovement + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808A38A + mov r0, r8 + adds r1, r7, #0 + adds r2, r6, #0 + bl MovePlayerAvatarUsingKeypadInput + bl PlayerAllowForcedMovementIfMovingSameDirection +_0808A38A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0808A394: .4byte 0x02037230 +_0808A398: .4byte 0x02036FF0 + thumb_func_end player_step + + thumb_func_start TryInterruptEventObjectSpecialAnim +TryInterruptEventObjectSpecialAnim: @ 0x0808A39C + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + adds r6, r5, #0 + bl EventObjectIsMovementOverridden + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808A3F6 + adds r0, r4, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808A3F6 + adds r0, r4, #0 + bl EventObjectGetHeldMovementActionId + lsls r0, r0, #0x18 + movs r1, #0xe7 + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + cmp r0, #3 + bhi _0808A3D4 + cmp r5, #0 + bne _0808A3D8 +_0808A3D4: + movs r0, #1 + b _0808A3F8 +_0808A3D8: + ldrb r0, [r4, #0x18] + lsrs r0, r0, #4 + cmp r0, r5 + beq _0808A3E8 +_0808A3E0: + adds r0, r4, #0 + bl EventObjectClearHeldMovement + b _0808A3F6 +_0808A3E8: + adds r0, r6, #0 + bl sub_0808A98C + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808A3E0 + b _0808A3D4 +_0808A3F6: + movs r0, #0 +_0808A3F8: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TryInterruptEventObjectSpecialAnim + + thumb_func_start npc_clear_strange_bits +npc_clear_strange_bits: @ 0x0808A400 + ldrb r2, [r0, #1] + movs r1, #0x11 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #5 + rsbs r2, r2, #0 + ands r1, r2 + adds r2, #2 + ands r1, r2 + strb r1, [r0, #1] + ldr r2, _0808A420 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + bx lr + .align 2, 0 +_0808A420: .4byte 0x02037230 + thumb_func_end npc_clear_strange_bits + + thumb_func_start MovePlayerAvatarUsingKeypadInput +MovePlayerAvatarUsingKeypadInput: @ 0x0808A424 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldr r0, _0808A448 + ldrb r1, [r0] + movs r0, #6 + ands r0, r1 + cmp r0, #0 + beq _0808A44C + adds r0, r3, #0 + adds r1, r4, #0 + bl MovePlayerOnBike + b _0808A454 + .align 2, 0 +_0808A448: .4byte 0x02037230 +_0808A44C: + adds r0, r3, #0 + adds r1, r2, #0 + bl MovePlayerNotOnBike +_0808A454: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end MovePlayerAvatarUsingKeypadInput + + thumb_func_start PlayerAllowForcedMovementIfMovingSameDirection +PlayerAllowForcedMovementIfMovingSameDirection: @ 0x0808A45C + push {lr} + ldr r2, _0808A474 + ldrb r0, [r2, #2] + cmp r0, #2 + bne _0808A46E + ldrb r1, [r2] + movs r0, #0xdf + ands r0, r1 + strb r0, [r2] +_0808A46E: + pop {r0} + bx r0 + .align 2, 0 +_0808A474: .4byte 0x02037230 + thumb_func_end PlayerAllowForcedMovementIfMovingSameDirection + + thumb_func_start TryDoMetatileBehaviorForcedMovement +TryDoMetatileBehaviorForcedMovement: @ 0x0808A478 + push {r4, lr} + ldr r4, _0808A498 + bl GetForcedMovementByMetatileBehavior + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r0, r0, r4 + ldr r0, [r0] + bl _call_via_r0 + thumb_func_end TryDoMetatileBehaviorForcedMovement + + thumb_func_start sub_0808A48C +sub_0808A48C: @ 0x0808A48C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0808A498: .4byte 0x0846F864 + thumb_func_end sub_0808A48C + + thumb_func_start GetForcedMovementByMetatileBehavior +GetForcedMovementByMetatileBehavior: @ 0x0808A49C + push {r4, r5, r6, lr} + ldr r3, _0808A4D8 + ldrb r1, [r3] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _0808A4EE + ldr r2, _0808A4DC + ldrb r1, [r3, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r5, [r0, #0x1e] + movs r4, #0 + ldr r6, _0808A4E0 +_0808A4BC: + lsls r0, r4, #2 + adds r0, r0, r6 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808A4E4 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0808A4F0 + .align 2, 0 +_0808A4D8: .4byte 0x02037230 +_0808A4DC: .4byte 0x02036FF0 +_0808A4E0: .4byte 0x0846F81C +_0808A4E4: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x11 + bls _0808A4BC +_0808A4EE: + movs r0, #0 +_0808A4F0: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetForcedMovementByMetatileBehavior + + thumb_func_start ForcedMovement_None +ForcedMovement_None: @ 0x0808A4F8 + push {r4, lr} + ldr r4, _0808A53C + ldrb r1, [r4] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0808A532 + ldrb r1, [r4, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808A540 + adds r0, r0, r1 + ldrb r2, [r0, #1] + movs r1, #3 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #8 + orrs r1, r2 + strb r1, [r0, #1] + ldrb r1, [r0, #0x18] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + bl SetEventObjectDirection + ldrb r1, [r4] + movs r0, #0xbf + ands r0, r1 + strb r0, [r4] +_0808A532: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0808A53C: .4byte 0x02037230 +_0808A540: .4byte 0x02036FF0 + thumb_func_end ForcedMovement_None + + thumb_func_start DoForcedMovement +DoForcedMovement: @ 0x0808A544 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sb, r1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r6, _0808A584 + adds r0, r5, #0 + bl CheckForPlayerAvatarCollision + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r7, r4, #0 + ldrb r0, [r6] + movs r1, #0x40 + mov sl, r1 + movs r1, #0 + mov r8, r1 + mov r1, sl + orrs r0, r1 + strb r0, [r6] + cmp r4, #0 + beq _0808A5A0 + bl ForcedMovement_None + cmp r4, #4 + bhi _0808A588 + movs r0, #0 + b _0808A5AC + .align 2, 0 +_0808A584: .4byte 0x02037230 +_0808A588: + cmp r7, #6 + bne _0808A592 + adds r0, r5, #0 + bl PlayerJumpLedge +_0808A592: + ldrb r0, [r6] + mov r1, sl + orrs r0, r1 + strb r0, [r6] + movs r0, #2 + strb r0, [r6, #2] + b _0808A5AA +_0808A5A0: + movs r0, #2 + strb r0, [r6, #2] + adds r0, r5, #0 + bl _call_via_r9 +_0808A5AA: + movs r0, #1 +_0808A5AC: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end DoForcedMovement + + thumb_func_start DoForcedMovementInCurrentDirection +DoForcedMovementInCurrentDirection: @ 0x0808A5BC + push {lr} + adds r1, r0, #0 + ldr r0, _0808A5E8 + ldrb r2, [r0, #5] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _0808A5EC + adds r0, r0, r2 + ldrb r2, [r0, #1] + movs r3, #4 + orrs r2, r3 + strb r2, [r0, #1] + ldrb r0, [r0, #0x18] + lsrs r0, r0, #4 + bl DoForcedMovement + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0808A5E8: .4byte 0x02037230 +_0808A5EC: .4byte 0x02036FF0 + thumb_func_end DoForcedMovementInCurrentDirection + + thumb_func_start ForcedMovement_Slip +ForcedMovement_Slip: @ 0x0808A5F0 + push {lr} + ldr r0, _0808A600 + bl DoForcedMovementInCurrentDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0808A600: .4byte 0x0808B09D + thumb_func_end ForcedMovement_Slip + + thumb_func_start ForcedMovement_WalkSouth +ForcedMovement_WalkSouth: @ 0x0808A604 + push {lr} + ldr r1, _0808A618 + movs r0, #1 + bl DoForcedMovement + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0808A618: .4byte 0x0808B085 + thumb_func_end ForcedMovement_WalkSouth + + thumb_func_start ForcedMovement_WalkNorth +ForcedMovement_WalkNorth: @ 0x0808A61C + push {lr} + ldr r1, _0808A630 + movs r0, #2 + bl DoForcedMovement + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0808A630: .4byte 0x0808B085 + thumb_func_end ForcedMovement_WalkNorth + + thumb_func_start ForcedMovement_WalkWest +ForcedMovement_WalkWest: @ 0x0808A634 + push {lr} + ldr r1, _0808A648 + movs r0, #3 + bl DoForcedMovement + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0808A648: .4byte 0x0808B085 + thumb_func_end ForcedMovement_WalkWest + + thumb_func_start ForcedMovement_WalkEast +ForcedMovement_WalkEast: @ 0x0808A64C + push {lr} + ldr r1, _0808A660 + movs r0, #4 + bl DoForcedMovement + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0808A660: .4byte 0x0808B085 + thumb_func_end ForcedMovement_WalkEast + + thumb_func_start ForcedMovement_PushedSouthByCurrent +ForcedMovement_PushedSouthByCurrent: @ 0x0808A664 + push {lr} + ldr r1, _0808A678 + movs r0, #1 + bl DoForcedMovement + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0808A678: .4byte 0x0808B0B5 + thumb_func_end ForcedMovement_PushedSouthByCurrent + + thumb_func_start ForcedMovement_PushedNorthByCurrent +ForcedMovement_PushedNorthByCurrent: @ 0x0808A67C + push {lr} + ldr r1, _0808A690 + movs r0, #2 + bl DoForcedMovement + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0808A690: .4byte 0x0808B0B5 + thumb_func_end ForcedMovement_PushedNorthByCurrent + + thumb_func_start ForcedMovement_PushedWestByCurrent +ForcedMovement_PushedWestByCurrent: @ 0x0808A694 + push {lr} + ldr r1, _0808A6A8 + movs r0, #3 + bl DoForcedMovement + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0808A6A8: .4byte 0x0808B0B5 + thumb_func_end ForcedMovement_PushedWestByCurrent + + thumb_func_start ForcedMovement_PushedEastByCurrent +ForcedMovement_PushedEastByCurrent: @ 0x0808A6AC + push {lr} + ldr r1, _0808A6C0 + movs r0, #4 + bl DoForcedMovement + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0808A6C0: .4byte 0x0808B0B5 + thumb_func_end ForcedMovement_PushedEastByCurrent + + thumb_func_start ForcedMovement_Slide +ForcedMovement_Slide: @ 0x0808A6C4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0808A6F4 + ldrb r3, [r2, #5] + lsls r2, r3, #3 + adds r2, r2, r3 + lsls r2, r2, #2 + ldr r3, _0808A6F8 + adds r2, r2, r3 + ldrb r3, [r2, #1] + movs r4, #4 + orrs r3, r4 + movs r4, #2 + orrs r3, r4 + strb r3, [r2, #1] + bl DoForcedMovement + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0808A6F4: .4byte 0x02037230 +_0808A6F8: .4byte 0x02036FF0 + thumb_func_end ForcedMovement_Slide + + thumb_func_start ForcedMovement_SlideSouth +ForcedMovement_SlideSouth: @ 0x0808A6FC + push {lr} + ldr r1, _0808A710 + movs r0, #1 + bl ForcedMovement_Slide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0808A710: .4byte 0x0808B09D + thumb_func_end ForcedMovement_SlideSouth + + thumb_func_start ForcedMovement_SlideNorth +ForcedMovement_SlideNorth: @ 0x0808A714 + push {lr} + ldr r1, _0808A728 + movs r0, #2 + bl ForcedMovement_Slide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0808A728: .4byte 0x0808B09D + thumb_func_end ForcedMovement_SlideNorth + + thumb_func_start ForcedMovement_SlideWest +ForcedMovement_SlideWest: @ 0x0808A72C + push {lr} + ldr r1, _0808A740 + movs r0, #3 + bl ForcedMovement_Slide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0808A740: .4byte 0x0808B09D + thumb_func_end ForcedMovement_SlideWest + + thumb_func_start ForcedMovement_SlideEast +ForcedMovement_SlideEast: @ 0x0808A744 + push {lr} + ldr r1, _0808A758 + movs r0, #4 + bl ForcedMovement_Slide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0808A758: .4byte 0x0808B09D + thumb_func_end ForcedMovement_SlideEast + + thumb_func_start ForcedMovement_0xBB +ForcedMovement_0xBB: @ 0x0808A75C + push {lr} + bl DoPlayerMatJump + movs r0, #1 + pop {r1} + bx r1 + thumb_func_end ForcedMovement_0xBB + + thumb_func_start ForcedMovement_0xBC +ForcedMovement_0xBC: @ 0x0808A768 + push {lr} + bl DoPlayerMatSpin + movs r0, #1 + pop {r1} + bx r1 + thumb_func_end ForcedMovement_0xBC + + thumb_func_start ForcedMovement_MuddySlope +ForcedMovement_MuddySlope: @ 0x0808A774 + push {r4, lr} + ldr r0, _0808A7B8 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808A7BC + adds r4, r0, r1 + ldrb r1, [r4, #0x18] + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0x20 + bne _0808A79A + bl GetPlayerSpeed + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + bgt _0808A7C4 +_0808A79A: + movs r0, #0 + bl Bike_UpdateBikeCounterSpeed + ldrb r0, [r4, #1] + movs r1, #2 + orrs r0, r1 + strb r0, [r4, #1] + ldr r1, _0808A7C0 + movs r0, #1 + bl DoForcedMovement + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0808A7C6 + .align 2, 0 +_0808A7B8: .4byte 0x02037230 +_0808A7BC: .4byte 0x02036FF0 +_0808A7C0: .4byte 0x0808B09D +_0808A7C4: + movs r0, #0 +_0808A7C6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end ForcedMovement_MuddySlope + + thumb_func_start MovePlayerNotOnBike +MovePlayerNotOnBike: @ 0x0808A7CC + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + ldr r6, _0808A7F8 + adds r0, r4, #0 + bl CheckMovementInputNotOnBike + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r0, r0, r6 + ldr r2, [r0] + adds r0, r4, #0 + adds r1, r5, #0 + bl _call_via_r2 + pop {r4, r5, r6} + thumb_func_end MovePlayerNotOnBike + + thumb_func_start sub_0808A7F4 +sub_0808A7F4: @ 0x0808A7F4 + pop {r0} + bx r0 + .align 2, 0 +_0808A7F8: .4byte 0x0846F8B0 + thumb_func_end sub_0808A7F4 + + thumb_func_start CheckMovementInputNotOnBike +CheckMovementInputNotOnBike: @ 0x0808A7FC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _0808A814 + ldr r0, _0808A810 + strb r4, [r0, #2] + movs r0, #0 + b _0808A836 + .align 2, 0 +_0808A810: .4byte 0x02037230 +_0808A814: + bl GetPlayerMovementDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + beq _0808A830 + ldr r1, _0808A82C + ldrb r0, [r1, #2] + cmp r0, #2 + beq _0808A830 + movs r0, #1 + b _0808A834 + .align 2, 0 +_0808A82C: .4byte 0x02037230 +_0808A830: + ldr r1, _0808A83C + movs r0, #2 +_0808A834: + strb r0, [r1, #2] +_0808A836: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0808A83C: .4byte 0x02037230 + thumb_func_end CheckMovementInputNotOnBike + + thumb_func_start PlayerNotOnBikeNotMoving +PlayerNotOnBikeNotMoving: @ 0x0808A840 + push {lr} + bl GetPlayerFacingDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl PlayerFaceDirection + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerNotOnBikeNotMoving + + thumb_func_start PlayerNotOnBikeTurningInPlace +PlayerNotOnBikeTurningInPlace: @ 0x0808A854 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl PlayerTurnInPlace + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerNotOnBikeTurningInPlace + + thumb_func_start PlayerNotOnBikeMoving +PlayerNotOnBikeMoving: @ 0x0808A864 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + adds r0, r5, #0 + bl CheckForPlayerAvatarCollision + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + beq _0808A8B2 + cmp r4, #6 + bne _0808A888 + adds r0, r5, #0 + bl PlayerJumpLedge + b _0808A91A +_0808A888: + cmp r4, #4 + bne _0808A8A0 + adds r0, r5, #0 + bl IsPlayerCollidingWithFarawayIslandMew + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808A8A0 + adds r0, r5, #0 + bl PlayerNotOnBikeCollideWithFarawayIslandMew + b _0808A91A +_0808A8A0: + subs r0, r4, #5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _0808A91A + adds r0, r5, #0 + bl PlayerNotOnBikeCollide + b _0808A91A +_0808A8B2: + ldr r4, _0808A8C8 + ldrb r1, [r4] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0808A8CC + adds r0, r5, #0 + bl PlayerGoSpeed2 + b _0808A91A + .align 2, 0 +_0808A8C8: .4byte 0x02037230 +_0808A8CC: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _0808A914 + movs r0, #2 + ands r6, r0 + cmp r6, #0 + beq _0808A914 + movs r0, #0x8c + lsls r0, r0, #4 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808A914 + ldr r2, _0808A910 + ldrb r1, [r4, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #0x1e] + bl IsRunningDisallowed + cmp r0, #0 + bne _0808A914 + adds r0, r5, #0 + bl PlayerRun + ldrb r1, [r4] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4] + b _0808A91A + .align 2, 0 +_0808A910: .4byte 0x02036FF0 +_0808A914: + adds r0, r5, #0 + bl PlayerGoSpeed1 +_0808A91A: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end PlayerNotOnBikeMoving + + thumb_func_start CheckForPlayerAvatarCollision +CheckForPlayerAvatarCollision: @ 0x0808A920 + push {r4, r5, r6, lr} + sub sp, #8 + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + ldr r0, _0808A984 + ldrb r0, [r0, #5] + lsls r4, r0, #3 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _0808A988 + adds r4, r4, r0 + ldrh r1, [r4, #0x10] + add r0, sp, #4 + strh r1, [r0] + ldrh r0, [r4, #0x12] + mov r5, sp + adds r5, #6 + strh r0, [r5] + adds r0, r6, #0 + add r1, sp, #4 + adds r2, r5, #0 + bl MoveCoords + add r0, sp, #4 + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0 + ldrsh r1, [r5, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add r1, sp, #4 + 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 CheckForEventObjectCollision + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #8 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0808A984: .4byte 0x02037230 +_0808A988: .4byte 0x02036FF0 + thumb_func_end CheckForPlayerAvatarCollision + + thumb_func_start sub_0808A98C +sub_0808A98C: @ 0x0808A98C + push {r4, r5, r6, lr} + sub sp, #8 + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + ldr r0, _0808A9F0 + ldrb r0, [r0, #5] + lsls r4, r0, #3 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _0808A9F4 + adds r4, r4, r0 + ldrh r1, [r4, #0x10] + add r0, sp, #4 + strh r1, [r0] + ldrh r0, [r4, #0x12] + mov r5, sp + adds r5, #6 + strh r0, [r5] + adds r0, r6, #0 + add r1, sp, #4 + adds r2, r5, #0 + bl MoveCoords + add r0, sp, #4 + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0 + ldrsh r1, [r5, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add r1, sp, #4 + 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_0808AAC8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #8 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0808A9F0: .4byte 0x02037230 +_0808A9F4: .4byte 0x02036FF0 + thumb_func_end sub_0808A98C + + thumb_func_start CheckForEventObjectCollision +CheckForEventObjectCollision: @ 0x0808A9F8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r4, [sp, #0x24] + lsls r1, r1, #0x10 + lsls r2, r2, #0x10 + lsls r3, r3, #0x18 + lsrs r6, r3, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov sl, r4 + lsrs r7, r1, #0x10 + asrs r5, r1, #0x10 + lsrs r1, r2, #0x10 + mov sb, r1 + asrs r4, r2, #0x10 + adds r1, r5, #0 + adds r2, r4, #0 + adds r3, r6, #0 + bl GetCollisionAtCoords + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, sp + strb r0, [r1] + cmp r0, #3 + bne _0808AA48 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r6, #0 + bl sub_0808AB20 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808AA48 + movs r0, #5 + b _0808AAB6 +_0808AA48: + lsls r5, r7, #0x10 + asrs r0, r5, #0x10 + mov r8, r0 + mov r1, sb + lsls r4, r1, #0x10 + asrs r7, r4, #0x10 + adds r1, r7, #0 + adds r2, r6, #0 + bl ShouldJumpLedge + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808AA6C + movs r0, #0x2b + bl IncrementGameStat + movs r0, #6 + b _0808AAB6 +_0808AA6C: + mov r0, sp + ldrb r0, [r0] + cmp r0, #4 + bne _0808AA88 + mov r0, r8 + adds r1, r7, #0 + adds r2, r6, #0 + bl sub_0808AB9C + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808AA88 + movs r0, #7 + b _0808AAB6 +_0808AA88: + mov r0, sp + ldrb r0, [r0] + cmp r0, #0 + bne _0808AAB2 + asrs r5, r5, #0x10 + asrs r4, r4, #0x10 + adds r0, r6, #0 + adds r1, r5, #0 + adds r2, r4, #0 + bl CheckForRotatingGatePuzzleCollision + cmp r0, #0 + beq _0808AAA6 + movs r0, #8 + b _0808AAB6 +_0808AAA6: + adds r0, r5, #0 + adds r1, r4, #0 + mov r2, sl + mov r3, sp + bl check_acro_bike_metatile +_0808AAB2: + mov r0, sp + ldrb r0, [r0] +_0808AAB6: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CheckForEventObjectCollision + + thumb_func_start sub_0808AAC8 +sub_0808AAC8: @ 0x0808AAC8 + push {r4, r5, r6, r7, lr} + sub sp, #4 + ldr r4, [sp, #0x18] + lsls r3, r3, #0x18 + lsrs r6, r3, #0x18 + lsls r4, r4, #0x18 + lsrs r7, r4, #0x18 + lsls r1, r1, #0x10 + asrs r5, r1, #0x10 + lsls r2, r2, #0x10 + asrs r4, r2, #0x10 + adds r1, r5, #0 + adds r2, r4, #0 + adds r3, r6, #0 + bl GetCollisionAtCoords + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, sp + strb r0, [r1] + cmp r0, #0 + bne _0808AB12 + adds r0, r6, #0 + adds r1, r5, #0 + adds r2, r4, #0 + bl CheckForRotatingGatePuzzleCollisionWithoutAnimation + cmp r0, #0 + beq _0808AB06 + movs r0, #8 + b _0808AB16 +_0808AB06: + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + mov r3, sp + bl check_acro_bike_metatile +_0808AB12: + mov r0, sp + ldrb r0, [r0] +_0808AB16: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0808AAC8 + + thumb_func_start sub_0808AB20 +sub_0808AB20: @ 0x0808AB20 + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + ldr r0, _0808AB6C + ldrb r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0808AB70 + lsls r5, r3, #0x10 + asrs r0, r5, #0x10 + lsls r4, r4, #0x10 + asrs r1, r4, #0x10 + bl MapGridGetZCoordAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bne _0808AB70 + lsrs r0, r5, #0x10 + lsrs r1, r4, #0x10 + movs r2, #3 + bl GetEventObjectIdByXYZ + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + bne _0808AB70 + adds r0, r6, #0 + bl sub_0808C0B4 + movs r0, #1 + b _0808AB72 + .align 2, 0 +_0808AB6C: .4byte 0x02037230 +_0808AB70: + movs r0, #0 +_0808AB72: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_0808AB20 + + thumb_func_start ShouldJumpLedge +ShouldJumpLedge: @ 0x0808AB78 + push {lr} + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl GetLedgeJumpDirection + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808AB94 + movs r0, #0 + b _0808AB96 +_0808AB94: + movs r0, #1 +_0808AB96: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ShouldJumpLedge + + thumb_func_start sub_0808AB9C +sub_0808AB9C: @ 0x0808AB9C + push {r4, r5, r6, r7, lr} + sub sp, #4 + mov r3, sp + strh r0, [r3] + mov r5, sp + adds r5, #2 + strh r1, [r5] + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + ldr r0, _0808AC34 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808AC3C + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0 + ldrsh r1, [r5, r2] + bl GetEventObjectIdByXY + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0x10 + beq _0808AC3C + ldr r0, _0808AC38 + lsls r1, r6, #3 + adds r1, r1, r6 + lsls r1, r1, #2 + adds r4, r1, r0 + ldrb r0, [r4, #5] + cmp r0, #0x57 + bne _0808AC3C + ldrh r1, [r4, #0x10] + mov r0, sp + strh r1, [r0] + ldrh r0, [r4, #0x12] + strh r0, [r5] + adds r0, r7, #0 + mov r1, sp + adds r2, r5, #0 + bl MoveCoords + mov r0, sp + movs r2, #0 + ldrsh r1, [r0, r2] + movs r0, #0 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + adds r3, r7, #0 + bl GetCollisionAtCoords + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808AC3C + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0 + ldrsh r1, [r5, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsNonAnimDoor + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808AC3C + adds r0, r6, #0 + adds r1, r7, #0 + bl StartStrengthAnim + movs r0, #1 + b _0808AC3E + .align 2, 0 +_0808AC34: .4byte 0x00000889 +_0808AC38: .4byte 0x02036FF0 +_0808AC3C: + movs r0, #0 +_0808AC3E: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0808AB9C + + thumb_func_start check_acro_bike_metatile +check_acro_bike_metatile: @ 0x0808AC48 + push {r4, r5, r6, r7, lr} + adds r6, r3, #0 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + movs r4, #0 + ldr r7, _0808AC70 +_0808AC54: + lsls r0, r4, #2 + adds r0, r0, r7 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808AC78 + ldr r0, _0808AC74 + adds r0, r4, r0 + ldrb r0, [r0] + strb r0, [r6] + b _0808AC82 + .align 2, 0 +_0808AC70: .4byte 0x0846F8BC +_0808AC74: .4byte 0x0846F8D0 +_0808AC78: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #4 + bls _0808AC54 +_0808AC82: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end check_acro_bike_metatile + + thumb_func_start IsPlayerCollidingWithFarawayIslandMew +IsPlayerCollidingWithFarawayIslandMew: @ 0x0808AC88 + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0808AD1C + ldrb r2, [r1, #5] + lsls r1, r2, #3 + adds r1, r1, r2 + lsls r1, r1, #2 + ldr r5, _0808AD20 + adds r3, r1, r5 + ldrh r2, [r3, #0x10] + mov r1, sp + strh r2, [r1] + ldrh r1, [r3, #0x12] + mov r4, sp + adds r4, #2 + strh r1, [r4] + mov r1, sp + adds r2, r4, #0 + bl MoveCoords + movs r0, #1 + movs r1, #0x39 + movs r2, #0x1a + bl GetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r6, r4, #0 + cmp r1, #0x10 + beq _0808AD24 + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r3, r0, r5 + mov r0, sp + movs r1, #0x14 + ldrsh r2, [r3, r1] + movs r4, #0 + ldrsh r0, [r0, r4] + cmp r2, r0 + bne _0808AD24 + movs r5, #0x16 + ldrsh r1, [r3, r5] + movs r4, #0 + ldrsh r0, [r6, r4] + ldrh r4, [r3, #0x16] + cmp r1, r0 + bne _0808ACFC + movs r5, #0x10 + ldrsh r0, [r3, r5] + cmp r0, r2 + bne _0808ACFC + movs r2, #0x12 + ldrsh r0, [r3, r2] + cmp r0, r1 + beq _0808AD24 +_0808ACFC: + mov r0, sp + movs r5, #0x14 + ldrsh r1, [r3, r5] + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r1, r0 + bne _0808AD24 + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + movs r4, #0 + ldrsh r1, [r6, r4] + cmp r0, r1 + bne _0808AD24 + movs r0, #1 + b _0808AD26 + .align 2, 0 +_0808AD1C: .4byte 0x02037230 +_0808AD20: .4byte 0x02036FF0 +_0808AD24: + movs r0, #0 +_0808AD26: + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsPlayerCollidingWithFarawayIslandMew + + thumb_func_start SetPlayerAvatarTransitionFlags +SetPlayerAvatarTransitionFlags: @ 0x0808AD30 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r2, _0808AD48 + ldrb r1, [r2, #1] + orrs r0, r1 + strb r0, [r2, #1] + bl DoPlayerAvatarTransition + pop {r0} + bx r0 + .align 2, 0 +_0808AD48: .4byte 0x02037230 + thumb_func_end SetPlayerAvatarTransitionFlags + + thumb_func_start DoPlayerAvatarTransition +DoPlayerAvatarTransition: @ 0x0808AD4C + push {r4, r5, lr} + ldr r0, _0808AD94 + ldrb r4, [r0, #1] + cmp r4, #0 + beq _0808AD8C + movs r5, #0 +_0808AD58: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _0808AD7A + ldr r0, _0808AD98 + lsls r2, r5, #2 + adds r2, r2, r0 + ldr r0, _0808AD94 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808AD9C + adds r0, r0, r1 + ldr r1, [r2] + bl _call_via_r1 +_0808AD7A: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsrs r4, r4, #1 + cmp r5, #7 + bls _0808AD58 + ldr r1, _0808AD94 + movs r0, #0 + strb r0, [r1, #1] +_0808AD8C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0808AD94: .4byte 0x02037230 +_0808AD98: .4byte 0x0846F8D8 +_0808AD9C: .4byte 0x02036FF0 + thumb_func_end DoPlayerAvatarTransition + + thumb_func_start PlayerAvatarTransition_Dummy +PlayerAvatarTransition_Dummy: @ 0x0808ADA0 + bx lr + .align 2, 0 + thumb_func_end PlayerAvatarTransition_Dummy + + thumb_func_start PlayerAvatarTransition_Normal +PlayerAvatarTransition_Normal: @ 0x0808ADA4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + bl GetPlayerAvatarGraphicsIdByStateId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetGraphicsId + ldrb r1, [r4, #0x18] + lsrs r1, r1, #4 + adds r0, r4, #0 + bl EventObjectTurn + movs r0, #1 + bl SetPlayerAvatarStateMask + pop {r4} + pop {r0} + bx r0 + thumb_func_end PlayerAvatarTransition_Normal + + thumb_func_start PlayerAvatarTransition_MachBike +PlayerAvatarTransition_MachBike: @ 0x0808ADD0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + bl GetPlayerAvatarGraphicsIdByStateId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetGraphicsId + ldrb r1, [r4, #0x18] + lsrs r1, r1, #4 + adds r0, r4, #0 + bl EventObjectTurn + movs r0, #2 + bl SetPlayerAvatarStateMask + movs r0, #0 + movs r1, #0 + bl BikeClearState + pop {r4} + pop {r0} + bx r0 + thumb_func_end PlayerAvatarTransition_MachBike + + thumb_func_start PlayerAvatarTransition_AcroBike +PlayerAvatarTransition_AcroBike: @ 0x0808AE04 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + bl GetPlayerAvatarGraphicsIdByStateId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetGraphicsId + ldrb r1, [r4, #0x18] + lsrs r1, r1, #4 + adds r0, r4, #0 + bl EventObjectTurn + movs r0, #4 + bl SetPlayerAvatarStateMask + movs r0, #0 + movs r1, #0 + bl BikeClearState + bl Bike_HandleBumpySlopeJump + pop {r4} + pop {r0} + bx r0 + thumb_func_end PlayerAvatarTransition_AcroBike + + thumb_func_start PlayerAvatarTransition_Surfing +PlayerAvatarTransition_Surfing: @ 0x0808AE3C + push {r4, lr} + adds r4, r0, #0 + movs r0, #3 + bl GetPlayerAvatarGraphicsIdByStateId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetGraphicsId + ldrb r1, [r4, #0x18] + lsrs r1, r1, #4 + adds r0, r4, #0 + bl EventObjectTurn + movs r0, #8 + bl SetPlayerAvatarStateMask + ldr r1, _0808AE90 + movs r2, #0x10 + ldrsh r0, [r4, r2] + str r0, [r1] + movs r2, #0x12 + ldrsh r0, [r4, r2] + str r0, [r1, #4] + ldr r0, _0808AE94 + ldrb r0, [r0, #5] + str r0, [r1, #8] + movs r0, #8 + bl FieldEffectStart + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strb r0, [r4, #0x1a] + movs r1, #1 + bl sub_081554E8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808AE90: .4byte 0x020388A8 +_0808AE94: .4byte 0x02037230 + thumb_func_end PlayerAvatarTransition_Surfing + + thumb_func_start PlayerAvatarTransition_Underwater +PlayerAvatarTransition_Underwater: @ 0x0808AE98 + push {r4, lr} + adds r4, r0, #0 + movs r0, #4 + bl GetPlayerAvatarGraphicsIdByStateId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetGraphicsId + ldrb r1, [r4, #0x18] + lsrs r1, r1, #4 + adds r0, r4, #0 + bl EventObjectTurn + movs r0, #0x10 + bl SetPlayerAvatarStateMask + ldrb r0, [r4, #4] + bl sub_0815573C + strb r0, [r4, #0x1a] + pop {r4} + pop {r0} + bx r0 + thumb_func_end PlayerAvatarTransition_Underwater + + thumb_func_start PlayerAvatarTransition_ReturnToField +PlayerAvatarTransition_ReturnToField: @ 0x0808AECC + ldr r2, _0808AED8 + ldrb r1, [r2] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r2] + bx lr + .align 2, 0 +_0808AED8: .4byte 0x02037230 + thumb_func_end PlayerAvatarTransition_ReturnToField + + thumb_func_start sub_0808AEDC +sub_0808AEDC: @ 0x0808AEDC + push {r4, lr} + ldr r4, _0808AF08 + movs r0, #0 + strb r0, [r4, #3] + bl PlayerCheckIfAnimFinishedOrInactive + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808AF1A + bl PlayerIsAnimActive + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808AF0C + bl player_is_anim_in_certain_ranges + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808AF1A + movs r0, #1 + b _0808AF18 + .align 2, 0 +_0808AF08: .4byte 0x02037230 +_0808AF0C: + bl sub_0808AF7C + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808AF1A + movs r0, #2 +_0808AF18: + strb r0, [r4, #3] +_0808AF1A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0808AEDC + + thumb_func_start player_is_anim_in_certain_ranges +player_is_anim_in_certain_ranges: @ 0x0808AF20 + push {lr} + ldr r2, _0808AF6C + ldr r0, _0808AF70 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #0x1c] + cmp r1, #3 + bls _0808AF66 + adds r0, r1, #0 + subs r0, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bls _0808AF66 + adds r0, r1, #0 + subs r0, #0x19 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xf + bls _0808AF66 + adds r0, r1, #0 + subs r0, #0x64 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xb + bls _0808AF66 + adds r0, r1, #0 + subs r0, #0x7c + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bhi _0808AF74 +_0808AF66: + movs r0, #1 + b _0808AF76 + .align 2, 0 +_0808AF6C: .4byte 0x02036FF0 +_0808AF70: .4byte 0x02037230 +_0808AF74: + movs r0, #0 +_0808AF76: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end player_is_anim_in_certain_ranges + + thumb_func_start sub_0808AF7C +sub_0808AF7C: @ 0x0808AF7C + push {lr} + bl player_is_anim_in_certain_ranges + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808AF98 + ldr r0, _0808AF94 + ldrb r0, [r0, #2] + cmp r0, #1 + beq _0808AF98 + movs r0, #1 + b _0808AF9A + .align 2, 0 +_0808AF94: .4byte 0x02037230 +_0808AF98: + movs r0, #0 +_0808AF9A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0808AF7C + + thumb_func_start PlayerCheckIfAnimFinishedOrInactive +PlayerCheckIfAnimFinishedOrInactive: @ 0x0808AFA0 + push {lr} + ldr r0, _0808AFBC + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808AFC0 + adds r0, r0, r1 + bl EventObjectIsMovementOverridden + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0808AFBC: .4byte 0x02037230 +_0808AFC0: .4byte 0x02036FF0 + thumb_func_end PlayerCheckIfAnimFinishedOrInactive + + thumb_func_start PlayerIsAnimActive +PlayerIsAnimActive: @ 0x0808AFC4 + push {lr} + ldr r0, _0808AFE0 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808AFE4 + adds r0, r0, r1 + bl EventObjectCheckHeldMovementStatus + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0808AFE0: .4byte 0x02037230 +_0808AFE4: .4byte 0x02036FF0 + thumb_func_end PlayerIsAnimActive + + thumb_func_start PlayerSetCopyableMovement +PlayerSetCopyableMovement: @ 0x0808AFE8 + ldr r3, _0808AFFC + ldr r1, _0808B000 + ldrb r2, [r1, #5] + lsls r1, r2, #3 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r3 + adds r1, #0x22 + strb r0, [r1] + bx lr + .align 2, 0 +_0808AFFC: .4byte 0x02036FF0 +_0808B000: .4byte 0x02037230 + thumb_func_end PlayerSetCopyableMovement + + thumb_func_start PlayerGetCopyableMovement +PlayerGetCopyableMovement: @ 0x0808B004 + ldr r2, _0808B018 + ldr r0, _0808B01C + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x22 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0808B018: .4byte 0x02036FF0 +_0808B01C: .4byte 0x02037230 + thumb_func_end PlayerGetCopyableMovement + + thumb_func_start sub_0808B020 +sub_0808B020: @ 0x0808B020 + push {lr} + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, _0808B040 + ldrb r2, [r0, #5] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _0808B044 + adds r0, r0, r2 + bl EventObjectForceSetHeldMovement + pop {r0} + bx r0 + .align 2, 0 +_0808B040: .4byte 0x02037230 +_0808B044: .4byte 0x02036FF0 + thumb_func_end sub_0808B020 + + thumb_func_start PlayerSetAnimId +PlayerSetAnimId: @ 0x0808B048 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + bl PlayerCheckIfAnimFinishedOrInactive + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808B076 + adds r0, r4, #0 + bl PlayerSetCopyableMovement + ldr r0, _0808B07C + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808B080 + adds r0, r0, r1 + adds r1, r5, #0 + bl EventObjectSetHeldMovement +_0808B076: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0808B07C: .4byte 0x02037230 +_0808B080: .4byte 0x02036FF0 + thumb_func_end PlayerSetAnimId + + thumb_func_start PlayerGoSpeed1 +PlayerGoSpeed1: @ 0x0808B084 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_08092CF8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl PlayerSetAnimId + pop {r0} + bx r0 + thumb_func_end PlayerGoSpeed1 + + thumb_func_start PlayerGoSpeed2 +PlayerGoSpeed2: @ 0x0808B09C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_08092D24 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl PlayerSetAnimId + pop {r0} + bx r0 + thumb_func_end PlayerGoSpeed2 + + thumb_func_start PlayerRideWaterCurrent +PlayerRideWaterCurrent: @ 0x0808B0B4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_08092D50 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl PlayerSetAnimId + pop {r0} + bx r0 + thumb_func_end PlayerRideWaterCurrent + + thumb_func_start PlayerGoSpeed4 +PlayerGoSpeed4: @ 0x0808B0CC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_08092D7C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl PlayerSetAnimId + pop {r0} + bx r0 + thumb_func_end PlayerGoSpeed4 + + thumb_func_start PlayerRun +PlayerRun: @ 0x0808B0E4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_08092DD4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl PlayerSetAnimId + pop {r0} + bx r0 + thumb_func_end PlayerRun + + thumb_func_start PlayerOnBikeCollide +PlayerOnBikeCollide: @ 0x0808B0FC + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl PlayCollisionSoundIfNotFacingWarp + adds r0, r4, #0 + bl sub_08092F08 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl PlayerSetAnimId + pop {r4} + pop {r0} + bx r0 + thumb_func_end PlayerOnBikeCollide + + thumb_func_start PlayerOnBikeCollideWithFarawayIslandMew +PlayerOnBikeCollideWithFarawayIslandMew: @ 0x0808B120 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_08092F08 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl PlayerSetAnimId + pop {r0} + bx r0 + thumb_func_end PlayerOnBikeCollideWithFarawayIslandMew + + thumb_func_start PlayerNotOnBikeCollide +PlayerNotOnBikeCollide: @ 0x0808B138 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl PlayCollisionSoundIfNotFacingWarp + adds r0, r4, #0 + bl sub_08092EDC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl PlayerSetAnimId + pop {r4} + pop {r0} + bx r0 + thumb_func_end PlayerNotOnBikeCollide + + thumb_func_start PlayerNotOnBikeCollideWithFarawayIslandMew +PlayerNotOnBikeCollideWithFarawayIslandMew: @ 0x0808B15C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_08092EDC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl PlayerSetAnimId + pop {r0} + bx r0 + thumb_func_end PlayerNotOnBikeCollideWithFarawayIslandMew + + thumb_func_start PlayerFaceDirection +PlayerFaceDirection: @ 0x0808B174 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_08092CA0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + bl PlayerSetAnimId + pop {r0} + bx r0 + thumb_func_end PlayerFaceDirection + + thumb_func_start PlayerTurnInPlace +PlayerTurnInPlace: @ 0x0808B18C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_08092F34 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + bl PlayerSetAnimId + pop {r0} + bx r0 + thumb_func_end PlayerTurnInPlace + + thumb_func_start PlayerJumpLedge +PlayerJumpLedge: @ 0x0808B1A4 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0xa + bl PlaySE + adds r0, r4, #0 + bl sub_08092E00 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #8 + bl PlayerSetAnimId + pop {r4} + pop {r0} + bx r0 + thumb_func_end PlayerJumpLedge + + thumb_func_start sub_0808B1C8 +sub_0808B1C8: @ 0x0808B1C8 + push {r4, lr} + ldr r4, _0808B204 + ldrb r0, [r4, #3] + cmp r0, #2 + beq _0808B1D6 + cmp r0, #0 + bne _0808B1FE +_0808B1D6: + bl player_should_look_direction_be_enforced_upon_movement + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808B1FE + ldr r2, _0808B208 + ldrb r1, [r4, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_08092CA0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_0808B020 +_0808B1FE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808B204: .4byte 0x02037230 +_0808B208: .4byte 0x02036FF0 + thumb_func_end sub_0808B1C8 + + thumb_func_start PlayerIdleWheelie +PlayerIdleWheelie: @ 0x0808B20C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_08092FB8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + bl PlayerSetAnimId + pop {r0} + bx r0 + thumb_func_end PlayerIdleWheelie + + thumb_func_start PlayerStartWheelie +PlayerStartWheelie: @ 0x0808B224 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_08092FE4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + bl PlayerSetAnimId + pop {r0} + bx r0 + thumb_func_end PlayerStartWheelie + + thumb_func_start PlayerEndWheelie +PlayerEndWheelie: @ 0x0808B23C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl EventObjectExecSingleMovementAction + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + bl PlayerSetAnimId + pop {r0} + bx r0 + thumb_func_end PlayerEndWheelie + + thumb_func_start PlayerStandingHoppingWheelie +PlayerStandingHoppingWheelie: @ 0x0808B254 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0x22 + bl PlaySE + adds r0, r4, #0 + bl sub_0809303C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + bl PlayerSetAnimId + pop {r4} + pop {r0} + bx r0 + thumb_func_end PlayerStandingHoppingWheelie + + thumb_func_start PlayerMovingHoppingWheelie +PlayerMovingHoppingWheelie: @ 0x0808B278 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0x22 + bl PlaySE + adds r0, r4, #0 + bl GetAcroEndWheelieFaceDirectionMovementAction + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl PlayerSetAnimId + pop {r4} + pop {r0} + bx r0 + thumb_func_end PlayerMovingHoppingWheelie + + thumb_func_start PlayerLedgeHoppingWheelie +PlayerLedgeHoppingWheelie: @ 0x0808B29C + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0x22 + bl PlaySE + adds r0, r4, #0 + bl sub_08093094 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #8 + bl PlayerSetAnimId + pop {r4} + pop {r0} + bx r0 + thumb_func_end PlayerLedgeHoppingWheelie + + thumb_func_start PlayerAcroTurnJump +PlayerAcroTurnJump: @ 0x0808B2C0 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0x22 + bl PlaySE + adds r0, r4, #0 + bl sub_08092E58 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + bl PlayerSetAnimId + pop {r4} + pop {r0} + bx r0 + thumb_func_end PlayerAcroTurnJump + + thumb_func_start sub_0808B2E4 +sub_0808B2E4: @ 0x0808B2E4 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #7 + bl PlaySE + adds r0, r4, #0 + bl sub_080930C0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl PlayerSetAnimId + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0808B2E4 + + thumb_func_start sub_0808B308 +sub_0808B308: @ 0x0808B308 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_080930EC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl PlayerSetAnimId + pop {r0} + bx r0 + thumb_func_end sub_0808B308 + + thumb_func_start sub_0808B320 +sub_0808B320: @ 0x0808B320 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_08093118 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl PlayerSetAnimId + pop {r0} + bx r0 + thumb_func_end sub_0808B320 + + thumb_func_start sub_0808B338 +sub_0808B338: @ 0x0808B338 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_08093144 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl PlayerSetAnimId + pop {r0} + bx r0 + thumb_func_end sub_0808B338 + + thumb_func_start PlayCollisionSoundIfNotFacingWarp +PlayCollisionSoundIfNotFacingWarp: @ 0x0808B350 + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r2, _0808B3C0 + ldr r0, _0808B3C4 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #0x1e] + ldr r2, _0808B3C8 + subs r1, r4, #1 + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808B3B8 + cmp r4, #2 + bne _0808B3B2 + mov r4, sp + adds r4, #2 + mov r0, sp + adds r1, r4, #0 + bl PlayerGetDestCoords + movs r0, #2 + mov r1, sp + adds r2, r4, #0 + bl MoveCoords + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsWarpDoor + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808B3B8 +_0808B3B2: + movs r0, #7 + bl PlaySE +_0808B3B8: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808B3C0: .4byte 0x02036FF0 +_0808B3C4: .4byte 0x02037230 +_0808B3C8: .4byte 0x0846F8F8 + thumb_func_end PlayCollisionSoundIfNotFacingWarp + + thumb_func_start GetXYCoordsOneStepInFrontOfPlayer +GetXYCoordsOneStepInFrontOfPlayer: @ 0x0808B3CC + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r3, _0808B408 + ldr r2, _0808B40C + ldrb r1, [r2, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r0, [r0, #0x10] + strh r0, [r4] + ldrb r1, [r2, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r0, [r0, #0x12] + strh r0, [r5] + bl GetPlayerFacingDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r4, #0 + adds r2, r5, #0 + bl MoveCoords + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0808B408: .4byte 0x02036FF0 +_0808B40C: .4byte 0x02037230 + thumb_func_end GetXYCoordsOneStepInFrontOfPlayer + + thumb_func_start PlayerGetDestCoords +PlayerGetDestCoords: @ 0x0808B410 + push {r4, r5, lr} + ldr r5, _0808B438 + ldr r4, _0808B43C + ldrb r3, [r4, #5] + lsls r2, r3, #3 + adds r2, r2, r3 + lsls r2, r2, #2 + adds r2, r2, r5 + ldrh r2, [r2, #0x10] + strh r2, [r0] + ldrb r2, [r4, #5] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrh r0, [r0, #0x12] + strh r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0808B438: .4byte 0x02036FF0 +_0808B43C: .4byte 0x02037230 + thumb_func_end PlayerGetDestCoords + + thumb_func_start player_get_pos_including_state_based_drift +player_get_pos_including_state_based_drift: @ 0x0808B440 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r0, _0808B494 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808B498 + adds r3, r0, r1 + ldrb r1, [r3] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0x40 + beq _0808B460 + b _0808B588 +_0808B460: + ldr r2, _0808B49C + ldrb r1, [r3, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0x32 + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _0808B476 + b _0808B588 +_0808B476: + ldrh r0, [r3, #0x10] + strh r0, [r4] + ldrh r0, [r3, #0x12] + strh r0, [r5] + ldrb r0, [r3, #0x1c] + subs r0, #8 + cmp r0, #0x30 + bls _0808B488 + b _0808B588 +_0808B488: + lsls r0, r0, #2 + ldr r1, _0808B4A0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808B494: .4byte 0x02037230 +_0808B498: .4byte 0x02036FF0 +_0808B49C: .4byte 0x020205AC +_0808B4A0: .4byte 0x0808B4A4 +_0808B4A4: @ jump table + .4byte _0808B568 @ case 0 + .4byte _0808B56E @ case 1 + .4byte _0808B578 @ case 2 + .4byte _0808B57E @ case 3 + .4byte _0808B588 @ case 4 + .4byte _0808B588 @ case 5 + .4byte _0808B588 @ case 6 + .4byte _0808B588 @ case 7 + .4byte _0808B588 @ case 8 + .4byte _0808B588 @ case 9 + .4byte _0808B588 @ case 10 + .4byte _0808B588 @ case 11 + .4byte _0808B588 @ case 12 + .4byte _0808B588 @ case 13 + .4byte _0808B588 @ case 14 + .4byte _0808B588 @ case 15 + .4byte _0808B588 @ case 16 + .4byte _0808B588 @ case 17 + .4byte _0808B588 @ case 18 + .4byte _0808B588 @ case 19 + .4byte _0808B588 @ case 20 + .4byte _0808B588 @ case 21 + .4byte _0808B588 @ case 22 + .4byte _0808B588 @ case 23 + .4byte _0808B588 @ case 24 + .4byte _0808B588 @ case 25 + .4byte _0808B588 @ case 26 + .4byte _0808B588 @ case 27 + .4byte _0808B588 @ case 28 + .4byte _0808B588 @ case 29 + .4byte _0808B588 @ case 30 + .4byte _0808B588 @ case 31 + .4byte _0808B588 @ case 32 + .4byte _0808B588 @ case 33 + .4byte _0808B588 @ case 34 + .4byte _0808B588 @ case 35 + .4byte _0808B588 @ case 36 + .4byte _0808B588 @ case 37 + .4byte _0808B588 @ case 38 + .4byte _0808B588 @ case 39 + .4byte _0808B588 @ case 40 + .4byte _0808B588 @ case 41 + .4byte _0808B588 @ case 42 + .4byte _0808B588 @ case 43 + .4byte _0808B588 @ case 44 + .4byte _0808B568 @ case 45 + .4byte _0808B56E @ case 46 + .4byte _0808B578 @ case 47 + .4byte _0808B57E @ case 48 +_0808B568: + ldrh r0, [r5] + adds r0, #1 + b _0808B572 +_0808B56E: + ldrh r0, [r5] + subs r0, #1 +_0808B572: + strh r0, [r5] + movs r0, #1 + b _0808B594 +_0808B578: + ldrh r0, [r4] + subs r0, #1 + b _0808B582 +_0808B57E: + ldrh r0, [r4] + adds r0, #1 +_0808B582: + strh r0, [r4] + movs r0, #1 + b _0808B594 +_0808B588: + movs r1, #1 + rsbs r1, r1, #0 + adds r0, r1, #0 + strh r0, [r4] + strh r0, [r5] + movs r0, #0 +_0808B594: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end player_get_pos_including_state_based_drift + + thumb_func_start GetPlayerFacingDirection +GetPlayerFacingDirection: @ 0x0808B59C + ldr r2, _0808B5B4 + ldr r0, _0808B5B8 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bx lr + .align 2, 0 +_0808B5B4: .4byte 0x02036FF0 +_0808B5B8: .4byte 0x02037230 + thumb_func_end GetPlayerFacingDirection + + thumb_func_start GetPlayerMovementDirection +GetPlayerMovementDirection: @ 0x0808B5BC + ldr r2, _0808B5D0 + ldr r0, _0808B5D4 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #0x18] + lsrs r0, r0, #4 + bx lr + .align 2, 0 +_0808B5D0: .4byte 0x02036FF0 +_0808B5D4: .4byte 0x02037230 + thumb_func_end GetPlayerMovementDirection + + thumb_func_start PlayerGetZCoord +PlayerGetZCoord: @ 0x0808B5D8 + ldr r2, _0808B5EC + ldr r0, _0808B5F0 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #0xb] + lsrs r0, r0, #4 + bx lr + .align 2, 0 +_0808B5EC: .4byte 0x02036FF0 +_0808B5F0: .4byte 0x02037230 + thumb_func_end PlayerGetZCoord + + thumb_func_start sub_0808B5F4 +sub_0808B5F4: @ 0x0808B5F4 + push {lr} + adds r3, r0, #0 + adds r2, r1, #0 + ldr r0, _0808B61C + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808B620 + adds r0, r0, r1 + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r1, r3, #0 + bl MoveEventObjectToMapCoords + pop {r0} + bx r0 + .align 2, 0 +_0808B61C: .4byte 0x02037230 +_0808B620: .4byte 0x02036FF0 + thumb_func_end sub_0808B5F4 + + thumb_func_start TestPlayerAvatarFlags +TestPlayerAvatarFlags: @ 0x0808B624 + ldr r1, _0808B630 + ldrb r1, [r1] + ands r1, r0 + adds r0, r1, #0 + bx lr + .align 2, 0 +_0808B630: .4byte 0x02037230 + thumb_func_end TestPlayerAvatarFlags + + thumb_func_start sub_0808B634 +sub_0808B634: @ 0x0808B634 + ldr r0, _0808B63C + ldrb r0, [r0] + bx lr + .align 2, 0 +_0808B63C: .4byte 0x02037230 + thumb_func_end sub_0808B634 + + thumb_func_start GetPlayerAvatarObjectId +GetPlayerAvatarObjectId: @ 0x0808B640 + ldr r0, _0808B648 + ldrb r0, [r0, #4] + bx lr + .align 2, 0 +_0808B648: .4byte 0x02037230 + thumb_func_end GetPlayerAvatarObjectId + + thumb_func_start sub_0808B64C +sub_0808B64C: @ 0x0808B64C + push {lr} + bl ForcedMovement_None + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0808B64C + + thumb_func_start sub_0808B658 +sub_0808B658: @ 0x0808B658 + push {r4, lr} + ldr r0, _0808B698 + ldrb r0, [r0, #5] + lsls r4, r0, #3 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _0808B69C + adds r4, r4, r0 + adds r0, r4, #0 + bl npc_clear_strange_bits + ldrb r1, [r4, #0x18] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + adds r0, r4, #0 + bl SetEventObjectDirection + movs r0, #6 + bl TestPlayerAvatarFlags + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808B690 + bl Bike_HandleBumpySlopeJump + movs r0, #0 + bl Bike_UpdateBikeCounterSpeed +_0808B690: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808B698: .4byte 0x02037230 +_0808B69C: .4byte 0x02036FF0 + thumb_func_end sub_0808B658 + + thumb_func_start GetPlayerAvatarGraphicsIdByStateIdAndGender +GetPlayerAvatarGraphicsIdByStateIdAndGender: @ 0x0808B6A0 + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _0808B6B4 + lsrs r0, r0, #0x17 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + bx lr + .align 2, 0 +_0808B6B4: .4byte 0x0846F908 + thumb_func_end GetPlayerAvatarGraphicsIdByStateIdAndGender + + thumb_func_start sub_0808B6B8 +sub_0808B6B8: @ 0x0808B6B8 + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _0808B6CC + lsrs r0, r0, #0x17 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + bx lr + .align 2, 0 +_0808B6CC: .4byte 0x0846F918 + thumb_func_end sub_0808B6B8 + + thumb_func_start sub_0808B6D0 +sub_0808B6D0: @ 0x0808B6D0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0808B6DC + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0808B6DC: .4byte 0x0846F928 + thumb_func_end sub_0808B6D0 + + thumb_func_start GetFRLGAvatarGraphicsIdByGender +GetFRLGAvatarGraphicsIdByGender: @ 0x0808B6E0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0808B6EC + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0808B6EC: .4byte 0x0846F92A + thumb_func_end GetFRLGAvatarGraphicsIdByGender + + thumb_func_start GetPlayerAvatarGraphicsIdByStateId +GetPlayerAvatarGraphicsIdByStateId: @ 0x0808B6F0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0808B708 + ldrb r1, [r1, #7] + bl sub_0808B6B8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0808B708: .4byte 0x02037230 + thumb_func_end GetPlayerAvatarGraphicsIdByStateId + + thumb_func_start unref_GetRivalAvatarGenderByGraphicsId +unref_GetRivalAvatarGenderByGraphicsId: @ 0x0808B70C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + cmp r0, #0x70 + beq _0808B72E + cmp r0, #0x70 + bgt _0808B726 + cmp r0, #0x6d + bgt _0808B732 + cmp r0, #0x69 + blt _0808B732 + b _0808B72E +_0808B726: + cmp r1, #0x8a + beq _0808B72E + cmp r1, #0xc0 + bne _0808B732 +_0808B72E: + movs r0, #1 + b _0808B734 +_0808B732: + movs r0, #0 +_0808B734: + pop {r1} + bx r1 + thumb_func_end unref_GetRivalAvatarGenderByGraphicsId + + thumb_func_start GetPlayerAvatarGenderByGraphicsId +GetPlayerAvatarGenderByGraphicsId: @ 0x0808B738 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + cmp r0, #0x70 + beq _0808B75A + cmp r0, #0x70 + bgt _0808B752 + cmp r0, #0x5d + bgt _0808B75E + cmp r0, #0x59 + blt _0808B75E + b _0808B75A +_0808B752: + cmp r1, #0x8a + beq _0808B75A + cmp r1, #0xc0 + bne _0808B75E +_0808B75A: + movs r0, #1 + b _0808B760 +_0808B75E: + movs r0, #0 +_0808B760: + pop {r1} + bx r1 + thumb_func_end GetPlayerAvatarGenderByGraphicsId + + thumb_func_start PartyHasMonWithSurf +PartyHasMonWithSurf: @ 0x0808B764 + push {r4, r5, lr} + movs r0, #8 + bl TestPlayerAvatarFlags + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808B7A8 + movs r5, #0 + b _0808B78E +_0808B776: + adds r0, r4, #0 + movs r1, #0x39 + bl MonKnowsMove + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808B788 + movs r0, #1 + b _0808B7AA +_0808B788: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_0808B78E: + cmp r5, #5 + bhi _0808B7A8 + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _0808B7B0 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + bne _0808B776 +_0808B7A8: + movs r0, #0 +_0808B7AA: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0808B7B0: .4byte 0x02024190 + thumb_func_end PartyHasMonWithSurf + + thumb_func_start IsPlayerSurfingNorth +IsPlayerSurfingNorth: @ 0x0808B7B4 + push {lr} + bl GetPlayerMovementDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _0808B7D2 + movs r0, #8 + bl TestPlayerAvatarFlags + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808B7D2 + movs r0, #1 + b _0808B7D4 +_0808B7D2: + movs r0, #0 +_0808B7D4: + pop {r1} + bx r1 + thumb_func_end IsPlayerSurfingNorth + + thumb_func_start IsPlayerFacingSurfableFishableWater +IsPlayerFacingSurfableFishableWater: @ 0x0808B7D8 + push {r4, r5, lr} + sub sp, #4 + ldr r0, _0808B850 + ldrb r0, [r0, #5] + lsls r4, r0, #3 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _0808B854 + adds r4, r4, r0 + ldrh r1, [r4, #0x10] + mov r0, sp + strh r1, [r0] + ldrh r0, [r4, #0x12] + mov r5, sp + adds r5, #2 + strh r0, [r5] + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + mov r1, sp + adds r2, r5, #0 + bl MoveCoords + mov r0, sp + movs r2, #0 + ldrsh r1, [r0, r2] + movs r0, #0 + ldrsh r2, [r5, r0] + ldrb r3, [r4, #0x18] + lsls r3, r3, #0x1c + lsrs r3, r3, #0x1c + adds r0, r4, #0 + bl GetCollisionAtCoords + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bne _0808B858 + bl PlayerGetZCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bne _0808B858 + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0 + ldrsh r1, [r5, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsSurfableFishableWater + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808B858 + movs r0, #1 + b _0808B85A + .align 2, 0 +_0808B850: .4byte 0x02037230 +_0808B854: .4byte 0x02036FF0 +_0808B858: + movs r0, #0 +_0808B85A: + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsPlayerFacingSurfableFishableWater + + thumb_func_start ClearPlayerAvatarInfo +ClearPlayerAvatarInfo: @ 0x0808B864 + push {lr} + ldr r0, _0808B874 + movs r1, #0 + movs r2, #0x24 + bl memset + pop {r0} + bx r0 + .align 2, 0 +_0808B874: .4byte 0x02037230 + thumb_func_end ClearPlayerAvatarInfo + + thumb_func_start SetPlayerAvatarStateMask +SetPlayerAvatarStateMask: @ 0x0808B878 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _0808B88C + ldrb r2, [r3] + movs r1, #0xe0 + ands r1, r2 + orrs r0, r1 + strb r0, [r3] + bx lr + .align 2, 0 +_0808B88C: .4byte 0x02037230 + thumb_func_end SetPlayerAvatarStateMask + + thumb_func_start GetPlayerAvatarStateTransitionByGraphicsId +GetPlayerAvatarStateTransitionByGraphicsId: @ 0x0808B890 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r2, #0 + ldr r3, _0808B8B8 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r4, r0, #1 + adds r6, r3, #1 +_0808B8A6: + lsls r0, r2, #1 + adds r1, r0, r4 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r5 + bne _0808B8BC + adds r0, r1, r6 + ldrb r0, [r0] + b _0808B8C8 + .align 2, 0 +_0808B8B8: .4byte 0x0846F92C +_0808B8BC: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #4 + bls _0808B8A6 + movs r0, #1 +_0808B8C8: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetPlayerAvatarStateTransitionByGraphicsId + + thumb_func_start GetPlayerAvatarGraphicsIdByCurrentState +GetPlayerAvatarGraphicsIdByCurrentState: @ 0x0808B8D0 + push {r4, r5, r6, lr} + ldr r0, _0808B8F8 + ldrb r5, [r0] + movs r2, #0 + ldr r3, _0808B8FC + ldrb r1, [r0, #7] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r4, r0, #1 + adds r6, r3, #1 +_0808B8E4: + lsls r0, r2, #1 + adds r1, r0, r4 + adds r0, r1, r6 + ldrb r0, [r0] + ands r0, r5 + cmp r0, #0 + beq _0808B900 + adds r0, r1, r3 + ldrb r0, [r0] + b _0808B90C + .align 2, 0 +_0808B8F8: .4byte 0x02037230 +_0808B8FC: .4byte 0x0846F92C +_0808B900: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #4 + bls _0808B8E4 + movs r0, #0 +_0808B90C: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetPlayerAvatarGraphicsIdByCurrentState + + thumb_func_start SetPlayerAvatarExtraStateTransition +SetPlayerAvatarExtraStateTransition: @ 0x0808B914 + push {r4, r5, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r5, _0808B940 + ldrb r1, [r5, #7] + bl GetPlayerAvatarStateTransitionByGraphicsId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + orrs r0, r4 + ldrb r1, [r5, #1] + orrs r0, r1 + strb r0, [r5, #1] + bl DoPlayerAvatarTransition + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0808B940: .4byte 0x02037230 + thumb_func_end SetPlayerAvatarExtraStateTransition + + thumb_func_start InitPlayerAvatar +InitPlayerAvatar: @ 0x0808B944 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #0x18 + adds r4, r0, #0 + adds r5, r1, #0 + mov sb, r2 + mov r8, r3 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + mov r0, sb + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + mov r1, r8 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + mov r1, sp + movs r0, #0xff + strb r0, [r1] + movs r0, #0 + mov r1, r8 + bl sub_0808B6B8 + mov r1, sp + movs r3, #0 + strb r0, [r1, #1] + mov r0, sp + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + subs r4, #7 + movs r6, #0 + strh r4, [r0, #4] + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + subs r5, #7 + strh r5, [r0, #6] + strb r6, [r0, #8] + movs r0, #0xb + strb r0, [r1, #9] + mov r2, sp + ldrb r1, [r2, #0xa] + subs r0, #0x1b + ands r0, r1 + strb r0, [r2, #0xa] + mov r0, sp + strb r6, [r0, #0xa] + strh r3, [r0, #0xc] + strh r3, [r0, #0xe] + str r3, [sp, #0x10] + strh r3, [r0, #0x14] + bl SpawnSpecialEventObject + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r5, #3 + adds r4, r4, r5 + lsls r4, r4, #2 + ldr r0, _0808BA04 + adds r4, r4, r0 + ldrb r0, [r4, #2] + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #2] + bl CreateWarpArrowSprite + strb r0, [r4, #0x1b] + adds r0, r4, #0 + mov r1, sb + bl EventObjectTurn + bl ClearPlayerAvatarInfo + ldr r0, _0808BA08 + strb r6, [r0, #2] + strb r6, [r0, #3] + strb r5, [r0, #5] + ldrb r1, [r4, #4] + strb r1, [r0, #4] + mov r1, r8 + strb r1, [r0, #7] + movs r0, #0x21 + bl SetPlayerAvatarStateMask + add sp, #0x18 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0808BA04: .4byte 0x02036FF0 +_0808BA08: .4byte 0x02037230 + thumb_func_end InitPlayerAvatar + + thumb_func_start sub_0808BA0C +sub_0808BA0C: @ 0x0808BA0C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r6, _0808BA6C + ldr r5, _0808BA70 + ldrb r0, [r5, #5] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + movs r0, #1 + ands r4, r0 + lsls r3, r4, #5 + ldrb r2, [r1, #1] + movs r0, #0x21 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #1] + movs r0, #8 + bl TestPlayerAvatarFlags + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808BA64 + ldr r2, _0808BA74 + ldrb r1, [r5, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r0, [r0, #0x1a] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + adds r1, #0x3e + lsls r3, r4, #2 + ldrb r2, [r1] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r3 + strb r0, [r1] +_0808BA64: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0808BA6C: .4byte 0x02036FF0 +_0808BA70: .4byte 0x02037230 +_0808BA74: .4byte 0x020205AC + thumb_func_end sub_0808BA0C + + thumb_func_start sub_0808BA78 +sub_0808BA78: @ 0x0808BA78 + push {r4, r5, lr} + ldr r5, _0808BAB4 + ldrb r0, [r5, #5] + lsls r4, r0, #3 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _0808BAB8 + adds r4, r4, r0 + movs r0, #5 + bl GetPlayerAvatarGraphicsIdByStateId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetGraphicsId + ldrb r1, [r5, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808BABC + adds r0, r0, r1 + movs r1, #0 + bl StartSpriteAnim + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0808BAB4: .4byte 0x02037230 +_0808BAB8: .4byte 0x02036FF0 +_0808BABC: .4byte 0x020205AC + thumb_func_end sub_0808BA78 + + thumb_func_start sub_0808BAC0 +sub_0808BAC0: @ 0x0808BAC0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r6, _0808BB0C + ldrb r0, [r6, #5] + lsls r4, r0, #3 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _0808BB10 + adds r4, r4, r0 + movs r0, #6 + bl GetPlayerAvatarGraphicsIdByStateId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetGraphicsId + ldrb r0, [r6, #4] + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _0808BB14 + adds r4, r4, r0 + adds r0, r5, #0 + bl GetWalkInPlaceNormalMovementAction + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0808BB0C: .4byte 0x02037230 +_0808BB10: .4byte 0x02036FF0 +_0808BB14: .4byte 0x020205AC + thumb_func_end sub_0808BAC0 + + thumb_func_start sub_0808BB18 +sub_0808BB18: @ 0x0808BB18 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r6, _0808BB80 + ldrb r0, [r6, #5] + lsls r4, r0, #3 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _0808BB84 + adds r4, r4, r0 + movs r0, #2 + bl GetPlayerAvatarGraphicsIdByStateId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetGraphicsId + ldrb r0, [r6, #4] + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _0808BB88 + mov r8, r0 + add r4, r8 + adds r0, r5, #0 + bl GetSlideMovementAction + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim + ldrb r1, [r6, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + movs r1, #1 + bl SeekSpriteAnim + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0808BB80: .4byte 0x02037230 +_0808BB84: .4byte 0x02036FF0 +_0808BB88: .4byte 0x020205AC + thumb_func_end sub_0808BB18 + + thumb_func_start sub_0808BB8C +sub_0808BB8C: @ 0x0808BB8C + push {r4, r5, r6, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r6, _0808BBD8 + ldrb r0, [r6, #5] + lsls r4, r0, #3 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _0808BBDC + adds r4, r4, r0 + movs r0, #7 + bl GetPlayerAvatarGraphicsIdByStateId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetGraphicsId + ldrb r0, [r6, #4] + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _0808BBE0 + adds r4, r4, r0 + adds r0, r5, #0 + bl GetJumpInPlaceMovementAction + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0808BBD8: .4byte 0x02037230 +_0808BBDC: .4byte 0x02036FF0 +_0808BBE0: .4byte 0x020205AC + thumb_func_end sub_0808BB8C + + thumb_func_start sub_0808BBE4 +sub_0808BBE4: @ 0x0808BBE4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + adds r5, r0, #0 + ldrb r0, [r5, #0x1e] + mov r8, r0 + movs r1, #0 + mov r0, sp + strh r1, [r0] + movs r6, #1 + ldr r1, _0808BC48 + mov sb, r1 + mov r4, sp + mov r7, sp + adds r7, #2 +_0808BC06: + movs r1, #0 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + add r0, sb + ldr r1, [r0] + mov r0, r8 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808BC4C + ldrb r0, [r5, #0x18] + lsrs r0, r0, #4 + cmp r6, r0 + bne _0808BC4C + ldrh r0, [r5, #0x10] + strh r0, [r4] + ldrh r0, [r5, #0x12] + strh r0, [r7] + adds r0, r6, #0 + mov r1, sp + adds r2, r7, #0 + bl MoveCoords + ldrb r0, [r5, #0x1b] + movs r1, #0 + ldrsh r2, [r4, r1] + movs r1, #0 + ldrsh r3, [r7, r1] + adds r1, r6, #0 + bl ShowWarpArrowSprite + b _0808BC66 + .align 2, 0 +_0808BC48: .4byte 0x0846F940 +_0808BC4C: + ldrh r1, [r4] + adds r1, #1 + strh r1, [r4] + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #3 + ble _0808BC06 + ldrb r0, [r5, #0x1b] + bl SetSpriteInvisible +_0808BC66: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_0808BBE4 + + thumb_func_start StartStrengthAnim +StartStrengthAnim: @ 0x0808BC74 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r6, _0808BCA8 + adds r0, r6, #0 + movs r1, #0xff + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0808BCAC + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #0xa] + strh r5, [r1, #0xc] + bl _call_via_r6 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0808BCA8: .4byte 0x0808BCB1 +_0808BCAC: .4byte 0x03005B60 + thumb_func_end StartStrengthAnim + + thumb_func_start Task_BumpBoulder +Task_BumpBoulder: @ 0x0808BCB0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r6, _0808BCF8 + ldr r2, _0808BCFC + ldr r5, _0808BD00 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_0808BCC4: + movs r0, #8 + ldrsh r3, [r4, r0] + lsls r3, r3, #2 + adds r3, r3, r6 + ldr r0, _0808BD04 + ldrb r0, [r0, #5] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + movs r2, #0xa + ldrsh r0, [r4, r2] + lsls r2, r0, #3 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r5 + ldr r3, [r3] + adds r0, r4, #0 + bl _call_via_r3 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808BCC4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0808BCF8: .4byte 0x0846F950 +_0808BCFC: .4byte 0x03005B60 +_0808BD00: .4byte 0x02036FF0 +_0808BD04: .4byte 0x02037230 + thumb_func_end Task_BumpBoulder + + thumb_func_start sub_0808BD08 +sub_0808BD08: @ 0x0808BD08 + push {r4, lr} + adds r4, r0, #0 + bl ScriptContext2_Enable + ldr r1, _0808BD24 + movs r0, #1 + strb r0, [r1, #6] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0808BD24: .4byte 0x02037230 + thumb_func_end sub_0808BD08 + + thumb_func_start do_boulder_dust +do_boulder_dust: @ 0x0808BD28 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + adds r4, r2, #0 + adds r0, r5, #0 + bl EventObjectIsHeldMovementActive + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808BD42 + adds r0, r5, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 +_0808BD42: + adds r0, r4, #0 + bl EventObjectIsHeldMovementActive + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808BD54 + adds r0, r4, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 +_0808BD54: + adds r0, r5, #0 + bl EventObjectIsMovementOverridden + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808BDD6 + adds r0, r4, #0 + bl EventObjectIsMovementOverridden + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808BDD6 + adds r0, r5, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + adds r0, r4, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + ldrb r0, [r6, #0xc] + bl sub_08092F08 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl EventObjectSetHeldMovement + ldrb r0, [r6, #0xc] + bl sub_08092CCC + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetHeldMovement + ldr r2, _0808BDE0 + movs r1, #0x10 + ldrsh r0, [r4, r1] + str r0, [r2] + movs r1, #0x12 + ldrsh r0, [r4, r1] + str r0, [r2, #4] + ldrb r0, [r4, #0xb] + lsrs r0, r0, #4 + str r0, [r2, #8] + ldr r3, _0808BDE4 + ldrb r1, [r4, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0, #5] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1e + str r0, [r2, #0xc] + movs r0, #0xa + bl FieldEffectStart + movs r0, #0xd6 + bl PlaySE + ldrh r0, [r6, #8] + adds r0, #1 + strh r0, [r6, #8] +_0808BDD6: + movs r0, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0808BDE0: .4byte 0x020388A8 +_0808BDE4: .4byte 0x020205AC + thumb_func_end do_boulder_dust + + thumb_func_start sub_0808BDE8 +sub_0808BDE8: @ 0x0808BDE8 + push {r4, r5, lr} + adds r4, r1, #0 + adds r5, r2, #0 + adds r0, r4, #0 + bl EventObjectCheckHeldMovementStatus + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808BE2A + adds r0, r5, #0 + bl EventObjectCheckHeldMovementStatus + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808BE2A + adds r0, r4, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + adds r0, r5, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + ldr r1, _0808BE34 + movs r0, #0 + strb r0, [r1, #6] + bl ScriptContext2_Disable + ldr r0, _0808BE38 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_0808BE2A: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0808BE34: .4byte 0x02037230 +_0808BE38: .4byte 0x0808BCB1 + thumb_func_end sub_0808BDE8 + + thumb_func_start DoPlayerMatJump +DoPlayerMatJump: @ 0x0808BE3C + push {r4, lr} + ldr r4, _0808BE58 + adds r0, r4, #0 + movs r1, #0xff + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl _call_via_r4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808BE58: .4byte 0x0808BE5D + thumb_func_end DoPlayerMatJump + + thumb_func_start DoPlayerAvatarSecretBaseMatJump +DoPlayerAvatarSecretBaseMatJump: @ 0x0808BE5C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _0808BE98 + ldr r2, _0808BE9C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_0808BE6E: + movs r0, #8 + ldrsh r2, [r4, r0] + lsls r2, r2, #2 + adds r2, r2, r5 + ldr r0, _0808BEA0 + ldrb r0, [r0, #5] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _0808BEA4 + adds r1, r1, r0 + ldr r2, [r2] + adds r0, r4, #0 + bl _call_via_r2 + thumb_func_end DoPlayerAvatarSecretBaseMatJump + + thumb_func_start sub_0808BE8C +sub_0808BE8C: @ 0x0808BE8C + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808BE6E + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0808BE98: .4byte 0x0846F95C +_0808BE9C: .4byte 0x03005B60 +_0808BEA0: .4byte 0x02037230 +_0808BEA4: .4byte 0x02036FF0 + thumb_func_end sub_0808BE8C + + thumb_func_start PlayerAvatar_DoSecretBaseMatJump +PlayerAvatar_DoSecretBaseMatJump: @ 0x0808BEA8 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r4, r1, #0 + ldr r5, _0808BF0C + movs r0, #1 + strb r0, [r5, #6] + adds r0, r4, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808BF04 + movs r0, #0xa + bl PlaySE + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_08092E2C + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetHeldMovement + ldrh r0, [r6, #0xa] + adds r0, #1 + strh r0, [r6, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _0808BF04 + movs r0, #0 + strb r0, [r5, #6] + ldrb r0, [r5, #1] + movs r1, #0x20 + orrs r0, r1 + strb r0, [r5, #1] + ldr r0, _0808BF10 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_0808BF04: + movs r0, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0808BF0C: .4byte 0x02037230 +_0808BF10: .4byte 0x0808BE5D + thumb_func_end PlayerAvatar_DoSecretBaseMatJump + + thumb_func_start DoPlayerMatSpin +DoPlayerMatSpin: @ 0x0808BF14 + push {r4, lr} + ldr r4, _0808BF30 + adds r0, r4, #0 + movs r1, #0xff + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl _call_via_r4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808BF30: .4byte 0x0808BF35 + thumb_func_end DoPlayerMatSpin + + thumb_func_start PlayerAvatar_DoSecretBaseMatSpin +PlayerAvatar_DoSecretBaseMatSpin: @ 0x0808BF34 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _0808BF70 + ldr r2, _0808BF74 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_0808BF46: + movs r0, #8 + ldrsh r2, [r4, r0] + lsls r2, r2, #2 + adds r2, r2, r5 + ldr r0, _0808BF78 + ldrb r0, [r0, #5] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _0808BF7C + adds r1, r1, r0 + ldr r2, [r2] + adds r0, r4, #0 + bl _call_via_r2 + thumb_func_end PlayerAvatar_DoSecretBaseMatSpin + + thumb_func_start sub_0808BF64 +sub_0808BF64: @ 0x0808BF64 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808BF46 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0808BF70: .4byte 0x0846F960 +_0808BF74: .4byte 0x03005B60 +_0808BF78: .4byte 0x02037230 +_0808BF7C: .4byte 0x02036FF0 + thumb_func_end sub_0808BF64 + + thumb_func_start PlayerAvatar_SecretBaseMatSpinStep0 +PlayerAvatar_SecretBaseMatSpinStep0: @ 0x0808BF80 + push {lr} + ldrh r2, [r0, #8] + adds r2, #1 + strh r2, [r0, #8] + ldrb r1, [r1, #0x18] + lsrs r1, r1, #4 + strh r1, [r0, #0xa] + ldr r1, _0808BFA4 + movs r0, #1 + strb r0, [r1, #6] + bl ScriptContext2_Enable + movs r0, #0x2d + bl PlaySE + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 +_0808BFA4: .4byte 0x02037230 + thumb_func_end PlayerAvatar_SecretBaseMatSpinStep0 + + thumb_func_start PlayerAvatar_SecretBaseMatSpinStep1 +PlayerAvatar_SecretBaseMatSpinStep1: @ 0x0808BFA8 + push {r4, r5, r6, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _0808C01C + mov r0, sp + movs r2, #4 + bl memcpy + adds r0, r5, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808C010 + ldrb r0, [r5, #0x18] + lsrs r0, r0, #4 + subs r0, #1 + add r0, sp + ldrb r6, [r0] + adds r0, r6, #0 + bl sub_08092CA0 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl EventObjectSetHeldMovement + ldrb r0, [r4, #0xa] + cmp r6, r0 + bne _0808BFEE + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] +_0808BFEE: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r1, #0xc + ldrsh r0, [r4, r1] + cmp r0, #3 + ble _0808C010 + ldrb r0, [r4, #0xa] + bl GetOppositeDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r6, r0 + bne _0808C010 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_0808C010: + movs r0, #0 + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0808C01C: .4byte 0x0846F970 + thumb_func_end PlayerAvatar_SecretBaseMatSpinStep1 + + thumb_func_start PlayerAvatar_SecretBaseMatSpinStep2 +PlayerAvatar_SecretBaseMatSpinStep2: @ 0x0808C020 + push {r4, r5, lr} + sub sp, #8 + adds r5, r0, #0 + adds r4, r1, #0 + ldr r1, _0808C05C + mov r0, sp + movs r2, #5 + bl memcpy + adds r0, r4, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808C050 + movs r1, #0xc + ldrsh r0, [r5, r1] + add r0, sp + ldrb r1, [r0] + adds r0, r4, #0 + bl EventObjectSetHeldMovement + movs r0, #1 + strh r0, [r5, #8] +_0808C050: + movs r0, #0 + add sp, #8 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0808C05C: .4byte 0x0846F974 + thumb_func_end PlayerAvatar_SecretBaseMatSpinStep2 + + thumb_func_start PlayerAvatar_SecretBaseMatSpinStep3 +PlayerAvatar_SecretBaseMatSpinStep3: @ 0x0808C060 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r0, r5, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808C0A4 + ldrb r0, [r4, #0xa] + bl GetOppositeDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_08092CCC + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl EventObjectSetHeldMovement + bl ScriptContext2_Disable + ldr r1, _0808C0AC + movs r0, #0 + strb r0, [r1, #6] + ldr r0, _0808C0B0 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_0808C0A4: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0808C0AC: .4byte 0x02037230 +_0808C0B0: .4byte 0x0808BF35 + thumb_func_end PlayerAvatar_SecretBaseMatSpinStep3 + + thumb_func_start sub_0808C0B4 +sub_0808C0B4: @ 0x0808C0B4 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl ScriptContext2_Enable + bl Overworld_ClearSavedMusic + bl Overworld_ChangeMusicToDefault + ldr r2, _0808C100 + ldrb r1, [r2] + movs r0, #0xf7 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + movs r0, #1 + strb r0, [r2, #6] + ldr r5, _0808C104 + adds r0, r5, #0 + movs r1, #0xff + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0808C108 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #8] + bl _call_via_r5 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0808C100: .4byte 0x02037230 +_0808C104: .4byte 0x0808C10D +_0808C108: .4byte 0x03005B60 + thumb_func_end sub_0808C0B4 + + thumb_func_start taskFF_0805D1D4 +taskFF_0805D1D4: @ 0x0808C10C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _0808C168 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808C16C + adds r5, r0, r1 + adds r0, r5, #0 + bl EventObjectIsMovementOverridden + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808C138 + adds r0, r5, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808C160 +_0808C138: + ldrb r0, [r5, #0x1a] + movs r1, #2 + bl sub_081554E8 + ldr r0, _0808C170 + lsls r4, r6, #2 + adds r4, r4, r6 + lsls r4, r4, #3 + adds r4, r4, r0 + ldrb r0, [r4, #8] + bl sub_08092EB0 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl EventObjectSetHeldMovement + ldr r0, _0808C174 + str r0, [r4] +_0808C160: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0808C168: .4byte 0x02037230 +_0808C16C: .4byte 0x02036FF0 +_0808C170: .4byte 0x03005B60 +_0808C174: .4byte 0x0808C179 + thumb_func_end taskFF_0805D1D4 + + thumb_func_start sub_0808C178 +sub_0808C178: @ 0x0808C178 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r6, _0808C1E4 + ldrb r1, [r6, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808C1E8 + adds r4, r0, r1 + adds r0, r4, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808C1DE + movs r0, #0 + bl GetPlayerAvatarGraphicsIdByStateId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetGraphicsId + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_08092CA0 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetHeldMovement + movs r0, #0 + strb r0, [r6, #6] + bl ScriptContext2_Disable + ldrb r1, [r4, #0x1a] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808C1EC + adds r0, r0, r1 + bl DestroySprite + adds r0, r5, #0 + bl DestroyTask +_0808C1DE: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0808C1E4: .4byte 0x02037230 +_0808C1E8: .4byte 0x02036FF0 +_0808C1EC: .4byte 0x020205AC + thumb_func_end sub_0808C178 + + thumb_func_start StartFishing +StartFishing: @ 0x0808C1F0 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r5, _0808C21C + adds r0, r5, #0 + movs r1, #0xff + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0808C220 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #0x26] + bl _call_via_r5 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0808C21C: .4byte 0x0808C225 +_0808C220: .4byte 0x03005B60 + thumb_func_end StartFishing + + thumb_func_start Task_Fishing +Task_Fishing: @ 0x0808C224 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _0808C254 + ldr r2, _0808C258 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_0808C236: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808C236 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0808C254: .4byte 0x0846F97C +_0808C258: .4byte 0x03005B60 + thumb_func_end Task_Fishing + + thumb_func_start Fishing1 +Fishing1: @ 0x0808C25C + push {r4, lr} + adds r4, r0, #0 + bl ScriptContext2_Enable + ldr r1, _0808C278 + movs r0, #1 + strb r0, [r1, #6] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0808C278: .4byte 0x02037230 + thumb_func_end Fishing1 + + thumb_func_start Fishing2 +Fishing2: @ 0x0808C27C + push {r4, r5, r6, lr} + sub sp, #0x10 + adds r5, r0, #0 + ldr r1, _0808C304 + mov r0, sp + movs r2, #6 + bl memcpy + add r4, sp, #8 + ldr r1, _0808C308 + adds r0, r4, #0 + movs r2, #6 + bl memcpy + movs r0, #0 + strh r0, [r5, #0x20] + bl Random + movs r2, #0x26 + ldrsh r1, [r5, r2] + lsls r1, r1, #1 + mov r2, sp + adds r6, r2, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r4, r4, r1 + movs r2, #0 + ldrsh r1, [r4, r2] + bl __modsi3 + ldrh r1, [r6] + adds r1, r1, r0 + strh r1, [r5, #0x22] + ldr r3, _0808C30C + ldr r2, _0808C310 + ldrb r1, [r2, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0, #5] + strh r0, [r5, #0x24] + ldrb r0, [r2, #5] + lsls r4, r0, #3 + adds r4, r4, r0 + lsls r4, r4, #2 + adds r4, r4, r3 + adds r0, r4, #0 + bl EventObjectClearHeldMovementIfActive + ldrb r0, [r4, #1] + movs r1, #8 + orrs r0, r1 + strb r0, [r4, #1] + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_0808BAC0 + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + movs r0, #0 + add sp, #0x10 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0808C304: .4byte 0x0846F9BC +_0808C308: .4byte 0x0846F9C2 +_0808C30C: .4byte 0x02036FF0 +_0808C310: .4byte 0x02037230 + thumb_func_end Fishing2 + + thumb_func_start Fishing3 +Fishing3: @ 0x0808C314 + push {r4, lr} + adds r4, r0, #0 + bl AlignFishingAnimationFrames + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x3b + ble _0808C330 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_0808C330: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end Fishing3 + + thumb_func_start Fishing4 +Fishing4: @ 0x0808C338 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + movs r1, #1 + bl sub_08197650 + ldrh r0, [r4, #8] + adds r0, #1 + movs r1, #0 + strh r0, [r4, #8] + strh r1, [r4, #0xa] + strh r1, [r4, #0xc] + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __umodsi3 + adds r1, r0, #0 + adds r0, r1, #1 + strh r0, [r4, #0xe] + movs r2, #0x20 + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _0808C370 + adds r0, r1, #4 + strh r0, [r4, #0xe] +_0808C370: + movs r1, #0xe + ldrsh r0, [r4, r1] + cmp r0, #9 + ble _0808C37C + movs r0, #0xa + strh r0, [r4, #0xe] +_0808C37C: + movs r0, #1 + pop {r4} + pop {r1} + bx r1 + thumb_func_end Fishing4 + + thumb_func_start Fishing5 +Fishing5: @ 0x0808C384 + push {r4, lr} + sub sp, #0x10 + adds r4, r0, #0 + ldr r1, _0808C3C0 + add r0, sp, #0xc + movs r2, #2 + bl memcpy + bl AlignFishingAnimationFrames + ldrh r0, [r4, #0xa] + adds r1, r0, #1 + strh r1, [r4, #0xa] + ldr r0, _0808C3C4 + ldrh r0, [r0, #0x2e] + movs r2, #1 + ands r2, r0 + cmp r2, #0 + beq _0808C3C8 + movs r0, #0xb + strh r0, [r4, #8] + movs r1, #0x20 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0808C3BA + movs r0, #0xc + strh r0, [r4, #8] +_0808C3BA: + movs r0, #1 + b _0808C41A + .align 2, 0 +_0808C3C0: .4byte 0x0846F9C8 +_0808C3C4: .4byte 0x03002360 +_0808C3C8: + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x13 + ble _0808C418 + strh r2, [r4, #0xa] + movs r3, #0xc + ldrsh r1, [r4, r3] + movs r3, #0xe + ldrsh r0, [r4, r3] + cmp r1, r0 + blt _0808C3F8 + ldrh r0, [r4, #8] + adds r1, r0, #1 + strh r1, [r4, #8] + ldrh r2, [r4, #0x20] + movs r3, #0x20 + ldrsh r0, [r4, r3] + cmp r0, #0 + beq _0808C3F2 + adds r0, r1, #1 + strh r0, [r4, #8] +_0808C3F2: + adds r0, r2, #1 + strh r0, [r4, #0x20] + b _0808C418 +_0808C3F8: + movs r0, #0xc + ldrsh r3, [r4, r0] + lsls r3, r3, #0x1b + lsrs r3, r3, #0x18 + movs r0, #2 + str r0, [sp] + str r2, [sp, #4] + str r2, [sp, #8] + movs r0, #0 + movs r1, #1 + add r2, sp, #0xc + bl AddTextPrinterParameterized + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] +_0808C418: + movs r0, #0 +_0808C41A: + add sp, #0x10 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end Fishing5 + + thumb_func_start Fishing6 +Fishing6: @ 0x0808C424 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl AlignFishingAnimationFrames + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + movs r6, #0 + bl DoesCurrentMapHaveFishingMons + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808C444 + movs r0, #0xb + strh r0, [r5, #8] + b _0808C4C4 +_0808C444: + ldr r4, _0808C494 + adds r0, r4, #0 + movs r1, #6 + bl GetMonData + cmp r0, #0 + bne _0808C47C + adds r0, r4, #0 + bl GetMonAbility + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x15 + beq _0808C464 + cmp r0, #0x3c + bne _0808C47C +_0808C464: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xe + bls _0808C47C + movs r6, #1 +_0808C47C: + cmp r6, #0 + bne _0808C49A + bl Random + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0808C498 + movs r0, #0xb + strh r0, [r5, #8] + b _0808C49A + .align 2, 0 +_0808C494: .4byte 0x02024190 +_0808C498: + movs r6, #1 +_0808C49A: + cmp r6, #1 + bne _0808C4C4 + ldr r0, _0808C4CC + ldrb r0, [r0, #4] + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _0808C4D0 + adds r4, r4, r0 + bl GetPlayerFacingDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetWalkNormalMovementAction + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim +_0808C4C4: + movs r0, #1 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0808C4CC: .4byte 0x02037230 +_0808C4D0: .4byte 0x020205AC + thumb_func_end Fishing6 + + thumb_func_start Fishing7 +Fishing7: @ 0x0808C4D4 + push {r4, r5, lr} + sub sp, #0x18 + adds r5, r0, #0 + ldr r1, _0808C510 + add r0, sp, #0xc + movs r2, #0xc + bl memcpy + bl AlignFishingAnimationFrames + movs r0, #0x12 + str r0, [sp] + movs r4, #0 + str r4, [sp, #4] + str r4, [sp, #8] + movs r0, #0 + movs r1, #1 + add r2, sp, #0xc + movs r3, #0 + bl AddTextPrinterParameterized + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + strh r4, [r5, #0xa] + movs r0, #0 + add sp, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0808C510: .4byte 0x0846F9CA + thumb_func_end Fishing7 + + thumb_func_start Fishing8 +Fishing8: @ 0x0808C514 + push {r4, lr} + sub sp, #8 + adds r4, r0, #0 + ldr r1, _0808C548 + mov r0, sp + movs r2, #6 + bl memcpy + bl AlignFishingAnimationFrames + ldrh r1, [r4, #0xa] + adds r1, #1 + strh r1, [r4, #0xa] + movs r2, #0x26 + ldrsh r0, [r4, r2] + lsls r0, r0, #1 + add r0, sp + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r1, r0 + blt _0808C54C + movs r0, #0xc + b _0808C55C + .align 2, 0 +_0808C548: .4byte 0x0846F9D6 +_0808C54C: + ldr r0, _0808C568 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808C55E + ldrh r0, [r4, #8] + adds r0, #1 +_0808C55C: + strh r0, [r4, #8] +_0808C55E: + movs r0, #0 + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0808C568: .4byte 0x03002360 + thumb_func_end Fishing8 + + thumb_func_start Fishing9 +Fishing9: @ 0x0808C56C + push {r4, lr} + sub sp, #0xc + adds r4, r0, #0 + ldr r1, _0808C5D0 + mov r0, sp + movs r2, #0xc + bl memcpy + bl AlignFishingAnimationFrames + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0x20 + ldrsh r1, [r4, r0] + movs r2, #0x22 + ldrsh r0, [r4, r2] + cmp r1, r0 + blt _0808C5C2 + cmp r1, #1 + bgt _0808C5C6 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + movs r3, #0x20 + ldrsh r2, [r4, r3] + lsls r2, r2, #1 + movs r3, #0x26 + ldrsh r1, [r4, r3] + lsls r1, r1, #2 + adds r2, r2, r1 + mov r3, sp + adds r1, r3, r2 + movs r2, #0 + ldrsh r1, [r1, r2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r1, r0 + ble _0808C5C6 +_0808C5C2: + movs r0, #3 + strh r0, [r4, #8] +_0808C5C6: + movs r0, #0 + add sp, #0xc + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0808C5D0: .4byte 0x0846F9DC + thumb_func_end Fishing9 + + thumb_func_start Fishing10 +Fishing10: @ 0x0808C5D4 + push {r4, r5, lr} + sub sp, #0x10 + adds r4, r0, #0 + bl AlignFishingAnimationFrames + movs r0, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r2, _0808C614 + movs r5, #0 + str r5, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + movs r0, #3 + str r0, [sp, #0xc] + movs r0, #0 + movs r1, #1 + movs r3, #1 + bl AddTextPrinterParameterized2 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + strh r5, [r4, #0xa] + movs r0, #0 + add sp, #0x10 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0808C614: .4byte 0x0846F9E8 + thumb_func_end Fishing10 + + thumb_func_start Fishing11 +Fishing11: @ 0x0808C618 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + movs r1, #0xa + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _0808C62C + bl AlignFishingAnimationFrames +_0808C62C: + bl RunTextPrinters + movs r1, #0xa + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _0808C6C8 + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #0 + bne _0808C6C0 + ldr r7, _0808C6B4 + ldrb r0, [r7, #5] + lsls r4, r0, #3 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _0808C6B8 + mov r8, r0 + add r4, r8 + ldrh r1, [r5, #0x24] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetGraphicsId + ldrb r1, [r4, #0x18] + lsrs r1, r1, #4 + adds r0, r4, #0 + bl EventObjectTurn + ldrb r1, [r7] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0808C68A + ldrb r0, [r7, #5] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + add r1, r8 + ldrb r0, [r1, #0x1a] + movs r1, #0 + movs r2, #0 + bl sub_08155540 +_0808C68A: + ldr r2, _0808C6BC + ldrb r1, [r7, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r6, [r0, #0x24] + ldrb r1, [r7, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r6, [r0, #0x26] + movs r0, #0 + movs r1, #1 + bl DrawDialogueFrame + ldrh r0, [r5, #0xa] + adds r0, #1 + strh r0, [r5, #0xa] + b _0808C6F0 + .align 2, 0 +_0808C6B4: .4byte 0x02037230 +_0808C6B8: .4byte 0x02036FF0 +_0808C6BC: .4byte 0x020205AC +_0808C6C0: + movs r1, #0xa + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _0808C6F0 +_0808C6C8: + ldr r1, _0808C6FC + movs r0, #0 + strb r0, [r1, #6] + bl ScriptContext2_Disable + ldrh r0, [r5, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl FishingWildEncounter + movs r0, #1 + bl sub_080EE470 + ldr r0, _0808C700 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_0808C6F0: + movs r0, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0808C6FC: .4byte 0x02037230 +_0808C700: .4byte 0x0808C225 + thumb_func_end Fishing11 + + thumb_func_start Fishing12 +Fishing12: @ 0x0808C704 + push {r4, r5, lr} + sub sp, #0x10 + adds r5, r0, #0 + bl AlignFishingAnimationFrames + ldr r0, _0808C768 + ldrb r0, [r0, #4] + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _0808C76C + adds r4, r4, r0 + bl GetPlayerFacingDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetWalkInPlaceSlowMovementAction + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim + movs r0, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r2, _0808C770 + movs r0, #0 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + movs r0, #3 + str r0, [sp, #0xc] + movs r0, #0 + movs r1, #1 + movs r3, #1 + bl AddTextPrinterParameterized2 + movs r0, #0xd + strh r0, [r5, #8] + movs r0, #1 + add sp, #0x10 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0808C768: .4byte 0x02037230 +_0808C76C: .4byte 0x020205AC +_0808C770: .4byte 0x0846F9F7 + thumb_func_end Fishing12 + + thumb_func_start Fishing13 +Fishing13: @ 0x0808C774 + push {r4, r5, lr} + sub sp, #0x10 + adds r5, r0, #0 + bl AlignFishingAnimationFrames + ldr r0, _0808C7D8 + ldrb r0, [r0, #4] + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _0808C7DC + adds r4, r4, r0 + bl GetPlayerFacingDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetWalkInPlaceSlowMovementAction + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim + movs r0, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r2, _0808C7E0 + movs r0, #0 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + movs r0, #3 + str r0, [sp, #0xc] + movs r0, #0 + movs r1, #1 + movs r3, #1 + bl AddTextPrinterParameterized2 + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + movs r0, #1 + add sp, #0x10 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0808C7D8: .4byte 0x02037230 +_0808C7DC: .4byte 0x020205AC +_0808C7E0: .4byte 0x0846FA03 + thumb_func_end Fishing13 + + thumb_func_start Fishing14 +Fishing14: @ 0x0808C7E4 + push {r4, lr} + adds r4, r0, #0 + bl AlignFishingAnimationFrames + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end Fishing14 + + thumb_func_start Fishing15 +Fishing15: @ 0x0808C7FC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + bl AlignFishingAnimationFrames + ldr r7, _0808C890 + ldr r5, _0808C894 + ldrb r0, [r5, #4] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r7 + adds r1, #0x3f + ldrb r0, [r1] + lsls r0, r0, #0x1b + cmp r0, #0 + bge _0808C882 + ldrb r0, [r5, #5] + lsls r4, r0, #3 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _0808C898 + mov r8, r0 + add r4, r8 + ldrh r1, [r6, #0x24] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetGraphicsId + ldrb r1, [r4, #0x18] + lsrs r1, r1, #4 + adds r0, r4, #0 + bl EventObjectTurn + ldrb r1, [r5] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0808C862 + ldrb r0, [r5, #5] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + add r1, r8 + ldrb r0, [r1, #0x1a] + movs r1, #0 + movs r2, #0 + bl sub_08155540 +_0808C862: + ldrb r1, [r5, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + movs r2, #0 + strh r2, [r0, #0x24] + ldrb r1, [r5, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r2, [r0, #0x26] + ldrh r0, [r6, #8] + adds r0, #1 + strh r0, [r6, #8] +_0808C882: + movs r0, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0808C890: .4byte 0x020205AC +_0808C894: .4byte 0x02037230 +_0808C898: .4byte 0x02036FF0 + thumb_func_end Fishing15 + + thumb_func_start Fishing16 +Fishing16: @ 0x0808C89C + push {lr} + bl RunTextPrinters + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + bne _0808C8D8 + ldr r0, _0808C8E0 + strb r1, [r0, #6] + bl ScriptContext2_Disable + bl UnfreezeEventObjects + movs r0, #0 + movs r1, #1 + bl DrawDialogueFrame + movs r0, #0 + bl sub_080EE470 + ldr r0, _0808C8E4 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_0808C8D8: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0808C8E0: .4byte 0x02037230 +_0808C8E4: .4byte 0x0808C225 + thumb_func_end Fishing16 + + thumb_func_start AlignFishingAnimationFrames +AlignFishingAnimationFrames: @ 0x0808C8E8 + push {r4, r5, r6, r7, lr} + ldr r0, _0808C9D4 + ldrb r1, [r0, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808C9D8 + adds r4, r0, r1 + adds r0, r4, #0 + bl AnimateSprite + movs r0, #0 + strh r0, [r4, #0x24] + strh r0, [r4, #0x26] + adds r0, r4, #0 + adds r0, #0x2b + ldrb r5, [r0] + movs r0, #0x2a + adds r0, r0, r4 + mov ip, r0 + ldrb r0, [r0] + ldr r1, [r4, #8] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + lsls r6, r5, #2 + adds r0, r6, r0 + movs r1, #0 + ldrsh r0, [r0, r1] + movs r7, #1 + rsbs r7, r7, #0 + cmp r0, r7 + beq _0808C95A + adds r3, r4, #0 + adds r3, #0x2c + ldrb r2, [r3] + lsls r1, r2, #0x1a + lsrs r1, r1, #0x1a + adds r1, #1 + movs r0, #0x3f + ands r1, r0 + movs r0, #0x40 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + mov r1, ip + ldrb r0, [r1] + ldr r1, [r4, #8] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + adds r0, r6, r0 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, r7 + bne _0808C960 +_0808C95A: + subs r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_0808C960: + adds r0, r4, #0 + adds r0, #0x2a + ldrb r0, [r0] + ldr r1, [r4, #8] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + lsls r0, r5, #2 + adds r0, r0, r1 + ldrb r5, [r0] + subs r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bhi _0808C992 + movs r0, #8 + strh r0, [r4, #0x24] + bl GetPlayerFacingDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bne _0808C992 + ldr r0, _0808C9DC + strh r0, [r4, #0x24] +_0808C992: + cmp r5, #5 + bne _0808C99A + ldr r0, _0808C9DC + strh r0, [r4, #0x26] +_0808C99A: + adds r0, r5, #0 + subs r0, #0xa + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0808C9AA + movs r0, #8 + strh r0, [r4, #0x26] +_0808C9AA: + ldr r3, _0808C9D4 + ldrb r1, [r3] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0808C9CE + ldr r2, _0808C9E0 + ldrb r1, [r3, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #0x1a] + movs r1, #0x26 + ldrsh r2, [r4, r1] + movs r1, #1 + bl sub_08155540 +_0808C9CE: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0808C9D4: .4byte 0x02037230 +_0808C9D8: .4byte 0x020205AC +_0808C9DC: .4byte 0x0000FFF8 +_0808C9E0: .4byte 0x02036FF0 + thumb_func_end AlignFishingAnimationFrames + + thumb_func_start sub_0808C9E4 +sub_0808C9E4: @ 0x0808C9E4 + ldr r1, _0808C9EC + strb r0, [r1] + bx lr + .align 2, 0 +_0808C9EC: .4byte 0x02036FEC + thumb_func_end sub_0808C9E4 + + thumb_func_start sub_0808C9F0 +sub_0808C9F0: @ 0x0808C9F0 + push {lr} + ldr r1, _0808CA00 + ldrb r0, [r1] + cmp r0, #0 + bne _0808C9FC + movs r0, #1 +_0808C9FC: + pop {r1} + bx r1 + .align 2, 0 +_0808CA00: .4byte 0x02036FEC + thumb_func_end sub_0808C9F0 + + thumb_func_start sub_0808CA04 +sub_0808CA04: @ 0x0808CA04 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r2, r0, #0 + ldr r0, _0808CA48 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808CA4C + adds r4, r0, r1 + ldrb r1, [r4, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808CA50 + adds r7, r0, r1 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _0808CA54 + adds r5, r0, r1 + movs r0, #0 + ldrsh r6, [r5, r0] + cmp r6, #1 + beq _0808CABA + cmp r6, #1 + bgt _0808CA58 + cmp r6, #0 + beq _0808CA5E + b _0808CAFA + .align 2, 0 +_0808CA48: .4byte 0x02037230 +_0808CA4C: .4byte 0x02036FF0 +_0808CA50: .4byte 0x020205AC +_0808CA54: .4byte 0x03005B68 +_0808CA58: + cmp r6, #2 + beq _0808CAF4 + b _0808CAFA +_0808CA5E: + adds r0, r4, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808CAFA + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_0808C9E4 + movs r1, #0 + mov r8, r1 + strh r6, [r5, #2] + movs r0, #1 + strh r0, [r5, #4] + ldrh r0, [r7, #0x26] + ldrh r2, [r7, #0x22] + adds r0, r0, r2 + lsls r0, r0, #4 + strh r0, [r5, #6] + strh r6, [r7, #0x26] + bl CameraObjectReset2 + ldrb r0, [r4, #3] + movs r1, #4 + orrs r0, r1 + strb r0, [r4, #3] + ldrb r1, [r7, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r7, #5] + adds r0, r7, #0 + adds r0, #0x43 + mov r1, r8 + strb r1, [r0] + adds r2, r7, #0 + adds r2, #0x42 + ldrb r1, [r2] + movs r0, #0x3f + ands r0, r1 + strb r0, [r2] + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] +_0808CABA: + adds r1, r5, #2 + adds r0, r4, #0 + bl sub_0808CCFC + ldrh r0, [r5, #6] + ldrh r1, [r5, #4] + subs r0, r0, r1 + strh r0, [r5, #6] + adds r1, #3 + strh r1, [r5, #4] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + strh r0, [r7, #0x22] + movs r2, #0x22 + ldrsh r1, [r7, r2] + ldr r0, _0808CAF0 + movs r2, #0 + ldrsh r0, [r0, r2] + adds r1, r1, r0 + movs r0, #0x20 + rsbs r0, r0, #0 + cmp r1, r0 + bge _0808CAFA + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + b _0808CAFA + .align 2, 0 +_0808CAF0: .4byte 0x03005B48 +_0808CAF4: + adds r0, r2, #0 + bl DestroyTask +_0808CAFA: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_0808CA04 + + thumb_func_start sub_0808CB04 +sub_0808CB04: @ 0x0808CB04 + push {r4, lr} + ldr r4, _0808CB20 + adds r0, r4, #0 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl _call_via_r4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808CB20: .4byte 0x0808CB6D + thumb_func_end sub_0808CB04 + + thumb_func_start sub_0808CB24 +sub_0808CB24: @ 0x0808CB24 + push {lr} + ldr r0, _0808CB34 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0808CB34: .4byte 0x0808CB6D + thumb_func_end sub_0808CB24 + + thumb_func_start sub_0808CB38 +sub_0808CB38: @ 0x0808CB38 + push {r4, lr} + ldr r4, _0808CB54 + adds r0, r4, #0 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl _call_via_r4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808CB54: .4byte 0x0808CA05 + thumb_func_end sub_0808CB38 + + thumb_func_start sub_0808CB58 +sub_0808CB58: @ 0x0808CB58 + push {lr} + ldr r0, _0808CB68 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0808CB68: .4byte 0x0808CA05 + thumb_func_end sub_0808CB58 + + thumb_func_start sub_0808CB6C +sub_0808CB6C: @ 0x0808CB6C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r0, _0808CBB4 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808CBB8 + adds r4, r0, r1 + ldrb r1, [r4, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808CBBC + adds r7, r0, r1 + mov r1, r8 + lsls r0, r1, #2 + add r0, r8 + lsls r0, r0, #3 + ldr r1, _0808CBC0 + adds r5, r0, r1 + movs r2, #0 + ldrsh r6, [r5, r2] + cmp r6, #1 + beq _0808CC4E + cmp r6, #1 + bgt _0808CBC4 + cmp r6, #0 + beq _0808CBCE + b _0808CCEE + .align 2, 0 +_0808CBB4: .4byte 0x02037230 +_0808CBB8: .4byte 0x02036FF0 +_0808CBBC: .4byte 0x020205AC +_0808CBC0: .4byte 0x03005B68 +_0808CBC4: + cmp r6, #2 + beq _0808CC8C + cmp r6, #3 + beq _0808CCAA + b _0808CCEE +_0808CBCE: + bl sub_0808C9F0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0xa] + ldr r1, _0808CC88 + movs r3, #0xa + ldrsh r0, [r5, r3] + adds r0, r0, r1 + ldrb r0, [r0] + bl sub_08092CA0 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectForceSetHeldMovement + movs r0, #0 + mov sb, r0 + strh r6, [r5, #2] + movs r0, #0x74 + strh r0, [r5, #4] + ldrh r0, [r7, #0x22] + strh r0, [r5, #8] + ldrb r0, [r7, #5] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1e + strh r0, [r5, #0xc] + movs r1, #0x43 + adds r1, r1, r7 + mov r8, r1 + ldrb r0, [r1] + strh r0, [r5, #0xe] + ldrh r0, [r7, #0x26] + adds r0, #0x20 + rsbs r0, r0, #0 + lsls r0, r0, #4 + strh r0, [r5, #6] + strh r6, [r7, #0x26] + bl CameraObjectReset2 + ldrb r0, [r4, #3] + movs r2, #4 + orrs r0, r2 + strb r0, [r4, #3] + ldrb r1, [r7, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r7, #5] + mov r3, sb + mov r2, r8 + strb r3, [r2] + adds r2, r7, #0 + adds r2, #0x42 + ldrb r1, [r2] + movs r0, #0x3f + ands r0, r1 + strb r0, [r2] + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] +_0808CC4E: + adds r1, r5, #2 + adds r0, r4, #0 + bl sub_0808CCFC + ldrh r0, [r5, #4] + ldrh r2, [r5, #6] + adds r1, r0, r2 + strh r1, [r5, #6] + subs r0, #3 + strh r0, [r5, #4] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + bgt _0808CC6E + movs r0, #4 + strh r0, [r5, #4] +_0808CC6E: + ldrh r0, [r5, #6] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + strh r0, [r7, #0x22] + ldrh r2, [r5, #8] + movs r3, #8 + ldrsh r1, [r5, r3] + cmp r0, r1 + blt _0808CCEE + strh r2, [r7, #0x22] + movs r0, #0 + strh r0, [r5, #0x10] + b _0808CCA2 + .align 2, 0 +_0808CC88: .4byte 0x0846FA13 +_0808CC8C: + adds r1, r5, #2 + adds r0, r4, #0 + bl sub_0808CCFC + ldrh r0, [r5, #0x10] + adds r0, #1 + strh r0, [r5, #0x10] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #8 + ble _0808CCEE +_0808CCA2: + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + b _0808CCEE +_0808CCAA: + movs r0, #0xa + ldrsh r6, [r5, r0] + adds r1, r5, #2 + adds r0, r4, #0 + bl sub_0808CCFC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r6, r0 + bne _0808CCEE + ldrb r1, [r4, #3] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #3] + movs r0, #3 + ldrb r1, [r5, #0xc] + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r7, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r7, #5] + ldrh r1, [r5, #0xe] + adds r0, r7, #0 + adds r0, #0x43 + strb r1, [r0] + bl CameraObjectReset1 + mov r0, r8 + bl DestroyTask +_0808CCEE: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0808CB6C + + thumb_func_start sub_0808CCFC +sub_0808CCFC: @ 0x0808CCFC + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + ldrh r1, [r6] + movs r2, #0 + ldrsh r0, [r6, r2] + cmp r0, #7 + bgt _0808CD18 + adds r0, r1, #1 + strh r0, [r6] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + ble _0808CD54 +_0808CD18: + adds r0, r5, #0 + bl EventObjectCheckHeldMovementStatus + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808CD54 + ldr r4, _0808CD50 + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + adds r0, r0, r4 + ldrb r0, [r0] + bl sub_08092CA0 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl EventObjectForceSetHeldMovement + movs r0, #0 + strh r0, [r6] + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + adds r0, r0, r4 + ldrb r0, [r0] + b _0808CD5A + .align 2, 0 +_0808CD50: .4byte 0x0846FA13 +_0808CD54: + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c +_0808CD5A: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_0808CCFC + diff --git a/asm/field_poison.s b/asm/field_poison.s new file mode 100644 index 0000000..89cf8e1 --- /dev/null +++ b/asm/field_poison.s @@ -0,0 +1,830 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start IsMonValidSpecies +IsMonValidSpecies: @ 0x080F9DF8 + push {lr} + movs r1, #0x41 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + beq _080F9E10 + movs r0, #0xce + lsls r0, r0, #1 + cmp r1, r0 + bne _080F9E14 +_080F9E10: + movs r0, #0 + b _080F9E16 +_080F9E14: + movs r0, #1 +_080F9E16: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsMonValidSpecies + + thumb_func_start AllMonsFainted +AllMonsFainted: @ 0x080F9E1C + push {r4, r5, lr} + ldr r4, _080F9E3C + movs r5, #0 +_080F9E22: + adds r0, r4, #0 + bl IsMonValidSpecies + cmp r0, #0 + beq _080F9E40 + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _080F9E40 + movs r0, #0 + b _080F9E4A + .align 2, 0 +_080F9E3C: .4byte 0x02024190 +_080F9E40: + adds r5, #1 + adds r4, #0x64 + cmp r5, #5 + ble _080F9E22 + movs r0, #1 +_080F9E4A: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end AllMonsFainted + + thumb_func_start FaintFromFieldPoison +FaintFromFieldPoison: @ 0x080F9E50 + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x64 + adds r4, r0, #0 + muls r4, r1, r4 + ldr r0, _080F9E94 + adds r4, r4, r0 + movs r0, #0 + str r0, [sp] + adds r0, r4, #0 + movs r1, #7 + bl AdjustFriendship + adds r0, r4, #0 + movs r1, #0x37 + mov r2, sp + bl SetMonData + ldr r5, _080F9E98 + adds r0, r4, #0 + movs r1, #2 + adds r2, r5, #0 + bl GetMonData + adds r0, r5, #0 + bl StringGetEnd10 + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080F9E94: .4byte 0x02024190 +_080F9E98: .4byte 0x02021C40 + thumb_func_end FaintFromFieldPoison + + thumb_func_start MonFaintedFromPoison +MonFaintedFromPoison: @ 0x080F9E9C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x64 + muls r1, r0, r1 + ldr r0, _080F9ED8 + adds r4, r1, r0 + adds r0, r4, #0 + bl IsMonValidSpecies + cmp r0, #0 + beq _080F9EDC + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + bne _080F9EDC + adds r0, r4, #0 + movs r1, #0x37 + bl GetMonData + bl pokemon_ailments_get_primary + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080F9EDC + movs r0, #1 + b _080F9EDE + .align 2, 0 +_080F9ED8: .4byte 0x02024190 +_080F9EDC: + movs r0, #0 +_080F9EDE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end MonFaintedFromPoison + + thumb_func_start Task_WhiteOut +Task_WhiteOut: @ 0x080F9EE4 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _080F9F08 + adds r4, r0, r1 + movs r0, #0 + ldrsh r5, [r4, r0] + cmp r5, #1 + beq _080F9F3E + cmp r5, #1 + bgt _080F9F0C + cmp r5, #0 + beq _080F9F12 + b _080F9FB2 + .align 2, 0 +_080F9F08: .4byte 0x03005B68 +_080F9F0C: + cmp r5, #2 + beq _080F9F50 + b _080F9FB2 +_080F9F12: + ldrh r1, [r4, #2] + movs r2, #2 + ldrsh r0, [r4, r2] + cmp r0, #5 + bgt _080F9F38 +_080F9F1C: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + bl MonFaintedFromPoison + cmp r0, #0 + bne _080F9F8C + ldrh r0, [r4, #2] + adds r0, #1 + strh r0, [r4, #2] + adds r1, r0, #0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #5 + ble _080F9F1C +_080F9F38: + movs r0, #2 + strh r0, [r4] + b _080F9FB2 +_080F9F3E: + bl IsFieldMessageBoxHidden + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080F9FB2 + ldrh r0, [r4] + subs r0, #1 + strh r0, [r4] + b _080F9FB2 +_080F9F50: + bl AllMonsFainted + adds r1, r0, #0 + cmp r1, #0 + beq _080F9FA4 + bl InBattlePyramid + adds r4, r0, #0 + bl InBattlePike + orrs r4, r0 + lsls r4, r4, #0x18 + cmp r4, #0 + bne _080F9F76 + bl sub_081D52F0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080F9F80 +_080F9F76: + ldr r0, _080F9F7C + strh r5, [r0] + b _080F9FA8 + .align 2, 0 +_080F9F7C: .4byte 0x02037290 +_080F9F80: + ldr r1, _080F9F88 + movs r0, #1 + strh r0, [r1] + b _080F9FA8 + .align 2, 0 +_080F9F88: .4byte 0x02037290 +_080F9F8C: + ldrb r0, [r4, #2] + bl FaintFromFieldPoison + ldr r0, _080F9FA0 + bl ShowFieldMessage + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + b _080F9FB2 + .align 2, 0 +_080F9FA0: .4byte 0x085CC30F +_080F9FA4: + ldr r0, _080F9FB8 + strh r1, [r0] +_080F9FA8: + bl EnableBothScriptContexts + adds r0, r6, #0 + bl DestroyTask +_080F9FB2: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080F9FB8: .4byte 0x02037290 + thumb_func_end Task_WhiteOut + + thumb_func_start ExecuteWhiteOut +ExecuteWhiteOut: @ 0x080F9FBC + push {lr} + ldr r0, _080F9FD0 + movs r1, #0x50 + bl CreateTask + bl ScriptContext1_Stop + pop {r0} + bx r0 + .align 2, 0 +_080F9FD0: .4byte 0x080F9EE5 + thumb_func_end ExecuteWhiteOut + + thumb_func_start DoPoisonFieldEffect +DoPoisonFieldEffect: @ 0x080F9FD4 + push {r4, r5, r6, r7, lr} + sub sp, #4 + ldr r4, _080FA040 + movs r7, #0 + movs r6, #0 + movs r5, #5 +_080F9FE0: + adds r0, r4, #0 + movs r1, #5 + bl GetMonData + cmp r0, #0 + beq _080FA024 + adds r0, r4, #0 + movs r1, #0x37 + bl GetMonData + bl pokemon_ailments_get_primary + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080FA024 + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + str r0, [sp] + cmp r0, #0 + beq _080FA016 + subs r0, #1 + str r0, [sp] + cmp r0, #0 + bne _080FA018 +_080FA016: + adds r6, #1 +_080FA018: + adds r0, r4, #0 + movs r1, #0x39 + mov r2, sp + bl SetMonData + adds r7, #1 +_080FA024: + adds r4, #0x64 + subs r5, #1 + cmp r5, #0 + bge _080F9FE0 + cmp r6, #0 + bne _080FA034 + cmp r7, #0 + beq _080FA038 +_080FA034: + bl FldEffPoison_Start +_080FA038: + cmp r6, #0 + beq _080FA044 + movs r0, #2 + b _080FA04E + .align 2, 0 +_080FA040: .4byte 0x02024190 +_080FA044: + cmp r7, #0 + bne _080FA04C + movs r0, #0 + b _080FA04E +_080FA04C: + movs r0, #1 +_080FA04E: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end DoPoisonFieldEffect + + thumb_func_start sub_080FA058 +sub_080FA058: @ 0x080FA058 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r5, r0, #0 + movs r1, #0 + bl GetMonData + lsls r0, r0, #0x10 + str r0, [sp, #4] + lsrs r0, r0, #0x10 + 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 sb, r0 + mov r3, sb + ands r3, r6 + mov sb, r3 + adds r0, r5, #0 + movs r1, #0x2a + bl GetMonData + mov sl, r0 + ands r0, r6 + mov sl, 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, sb + eors r1, r3 + mov r8, r1 + mov r0, r8 + muls r0, r7, r0 + movs r1, #0xff + ldr r3, [sp] + ands r3, r1 + eors r0, r3 + eors r4, r2 + mov r1, sl + muls r1, r4, r1 + ldr r3, [sp, #4] + lsrs r2, r3, #0x18 + eors r1, r2 + lsls r0, r0, #8 + adds r0, r0, r1 + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_080FA058 + + thumb_func_start sub_080FA0FC +sub_080FA0FC: @ 0x080FA0FC + push {lr} + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + movs r1, #1 + ldr r3, _080FA118 +_080FA106: + lsls r0, r1, #3 + adds r0, r0, r3 + ldrh r0, [r0, #4] + cmp r2, r0 + bhs _080FA11C + subs r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _080FA128 + .align 2, 0 +_080FA118: .4byte 0x085694D0 +_080FA11C: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xe + bls _080FA106 + adds r0, r1, #0 +_080FA128: + pop {r1} + bx r1 + thumb_func_end sub_080FA0FC + + thumb_func_start sub_080FA12C +sub_080FA12C: @ 0x080FA12C + push {r4, r5, r6, r7, lr} + sub sp, #8 + adds r6, r1, #0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0 + bl GetPokedexHeightWeight + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + adds r0, r6, #0 + bl sub_080FA0FC + lsls r0, r0, #0x18 + ldr r1, _080FA19C + lsrs r0, r0, #0x15 + adds r0, r0, r1 + ldrh r1, [r0] + str r1, [sp] + movs r2, #0 + str r2, [sp, #4] + ldrb r2, [r0, #2] + movs r3, #0 + ldrh r4, [r0, #4] + movs r5, #0 + adds r0, r6, #0 + movs r1, #0 + subs r0, r0, r4 + sbcs r1, r5 + bl __udivdi3 + ldr r2, [sp] + ldr r3, [sp, #4] + adds r2, r2, r0 + adcs r3, r1 + str r2, [sp] + str r3, [sp, #4] + adds r0, r7, #0 + movs r1, #0 + bl __muldi3 + movs r2, #0xa + movs r3, #0 + bl __udivdi3 + add sp, #8 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080FA19C: .4byte 0x085694D0 + thumb_func_end sub_080FA12C + + thumb_func_start sub_080FA1A0 +sub_080FA1A0: @ 0x080FA1A0 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _080FA1EC + mov r0, sp + movs r2, #2 + bl memcpy + adds r0, r5, #0 + movs r1, #0xa + bl __udivsi3 + adds r1, r0, #0 + adds r0, r4, #0 + movs r2, #0 + movs r3, #8 + bl ConvertIntToDecimalStringN + mov r1, sp + bl StringAppend + adds r4, r0, #0 + adds r0, r5, #0 + movs r1, #0xa + bl __umodsi3 + adds r1, r0, #0 + adds r0, r4, #0 + movs r2, #0 + movs r3, #1 + bl ConvertIntToDecimalStringN + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FA1EC: .4byte 0x08569550 + thumb_func_end sub_080FA1A0 + + thumb_func_start sub_080FA1F0 +sub_080FA1F0: @ 0x080FA1F0 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r7, r1, #0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r1, _080FA208 + ldrh r0, [r1] + cmp r0, #0xff + bne _080FA20C + movs r0, #0 + b _080FA276 + .align 2, 0 +_080FA208: .4byte 0x02037290 +_080FA20C: + ldrh r1, [r1] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _080FA234 + adds r5, r1, r0 + adds r0, r5, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #1 + beq _080FA22E + adds r0, r5, #0 + movs r1, #0xb + bl GetMonData + cmp r0, r6 + beq _080FA238 +_080FA22E: + movs r0, #1 + b _080FA276 + .align 2, 0 +_080FA234: .4byte 0x02024190 +_080FA238: + mov r4, sp + adds r0, r5, #0 + bl sub_080FA058 + strh r0, [r4] + mov r0, sp + ldrh r1, [r0] + adds r0, r6, #0 + bl sub_080FA12C + adds r5, r0, #0 + ldrh r1, [r7] + adds r0, r6, #0 + bl sub_080FA12C + adds r4, r0, #0 + ldr r0, _080FA270 + adds r1, r5, #0 + bl sub_080FA1A0 + cmp r5, r4 + bls _080FA274 + mov r0, sp + ldrh r0, [r0] + strh r0, [r7] + movs r0, #3 + b _080FA276 + .align 2, 0 +_080FA270: .4byte 0x02021C54 +_080FA274: + movs r0, #2 +_080FA276: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080FA1F0 + + thumb_func_start sub_080FA280 +sub_080FA280: @ 0x080FA280 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldrh r1, [r5] + adds r0, r4, #0 + bl sub_080FA12C + adds r1, r0, #0 + ldr r0, _080FA2C0 + bl sub_080FA1A0 + ldr r0, _080FA2C4 + lsls r1, r4, #1 + adds r1, r1, r4 + lsls r1, r1, #1 + ldr r2, _080FA2C8 + adds r1, r1, r2 + bl StringCopy + ldrh r1, [r5] + movs r0, #0x80 + lsls r0, r0, #8 + cmp r1, r0 + bne _080FA2D4 + ldr r0, _080FA2CC + ldr r1, _080FA2D0 + bl StringCopy + b _080FA2DE + .align 2, 0 +_080FA2C0: .4byte 0x02021C68 +_080FA2C4: .4byte 0x02021C40 +_080FA2C8: .4byte 0x082EA31C +_080FA2CC: .4byte 0x02021C54 +_080FA2D0: .4byte 0x085CC31B +_080FA2D4: + ldr r0, _080FA2E4 + ldr r1, _080FA2E8 + ldr r1, [r1] + bl StringCopy +_080FA2DE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FA2E4: .4byte 0x02021C54 +_080FA2E8: .4byte 0x03005AF0 + thumb_func_end sub_080FA280 + + thumb_func_start sub_080FA2EC +sub_080FA2EC: @ 0x080FA2EC + push {lr} + ldr r0, _080FA2FC + movs r1, #0x80 + lsls r1, r1, #8 + bl VarSet + pop {r0} + bx r0 + .align 2, 0 +_080FA2FC: .4byte 0x00004047 + thumb_func_end sub_080FA2EC + + thumb_func_start sub_080FA300 +sub_080FA300: @ 0x080FA300 + push {lr} + ldr r0, _080FA318 + bl GetVarPointer + adds r1, r0, #0 + movs r0, #0x95 + lsls r0, r0, #1 + bl sub_080FA280 + pop {r0} + bx r0 + .align 2, 0 +_080FA318: .4byte 0x00004047 + thumb_func_end sub_080FA300 + + thumb_func_start sub_080FA31C +sub_080FA31C: @ 0x080FA31C + push {r4, lr} + ldr r0, _080FA33C + bl GetVarPointer + adds r1, r0, #0 + ldr r4, _080FA340 + movs r0, #0x95 + lsls r0, r0, #1 + bl sub_080FA1F0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FA33C: .4byte 0x00004047 +_080FA340: .4byte 0x02037290 + thumb_func_end sub_080FA31C + + thumb_func_start sub_080FA344 +sub_080FA344: @ 0x080FA344 + push {lr} + ldr r0, _080FA354 + movs r1, #0x80 + lsls r1, r1, #8 + bl VarSet + pop {r0} + bx r0 + .align 2, 0 +_080FA354: .4byte 0x0000404F + thumb_func_end sub_080FA344 + + thumb_func_start sub_080FA358 +sub_080FA358: @ 0x080FA358 + push {lr} + ldr r0, _080FA36C + bl GetVarPointer + adds r1, r0, #0 + ldr r0, _080FA370 + bl sub_080FA280 + pop {r0} + bx r0 + .align 2, 0 +_080FA36C: .4byte 0x0000404F +_080FA370: .4byte 0x00000127 + thumb_func_end sub_080FA358 + + thumb_func_start sub_080FA374 +sub_080FA374: @ 0x080FA374 + push {r4, lr} + ldr r0, _080FA394 + bl GetVarPointer + adds r1, r0, #0 + ldr r4, _080FA398 + ldr r0, _080FA39C + bl sub_080FA1F0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FA394: .4byte 0x0000404F +_080FA398: .4byte 0x02037290 +_080FA39C: .4byte 0x00000127 + thumb_func_end sub_080FA374 + + thumb_func_start sub_080FA3A0 +sub_080FA3A0: @ 0x080FA3A0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + movs r7, #0 + add r4, sp, #8 + movs r0, #1 + strb r0, [r4] + ldr r1, _080FA428 + mov r0, sp + movs r2, #7 + bl memcpy + mov r8, r4 + cmp r6, #0xa + bhi _080FA41C + cmp r5, #0x40 + bhi _080FA41C + ldr r0, _080FA42C + ldr r0, [r0] + ldr r1, _080FA430 + adds r0, r0, r1 + adds r0, r0, r6 + strb r5, [r0] + movs r5, #0 +_080FA3DA: + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _080FA434 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _080FA40C + adds r0, r4, #0 + movs r1, #6 + bl GetMonData + cmp r0, #0 + bne _080FA40C + mov r1, sp + adds r0, r1, r6 + ldrb r1, [r0] + adds r0, r4, #0 + mov r2, r8 + bl SetMonData + movs r7, #1 +_080FA40C: + adds r5, #1 + cmp r5, #5 + ble _080FA3DA + cmp r7, #0 + beq _080FA41C + ldr r0, _080FA438 + bl FlagSet +_080FA41C: + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080FA428: .4byte 0x08569552 +_080FA42C: .4byte 0x03005AEC +_080FA430: .4byte 0x000031A8 +_080FA434: .4byte 0x02024190 +_080FA438: .4byte 0x0000089B + thumb_func_end sub_080FA3A0 + diff --git a/asm/field_region_map.s b/asm/field_region_map.s new file mode 100644 index 0000000..8417944 --- /dev/null +++ b/asm/field_region_map.s @@ -0,0 +1,335 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start FieldInitRegionMap +FieldInitRegionMap: @ 0x0816FF84 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0 + bl SetVBlankCallback + ldr r4, _0816FFB0 + movs r0, #0x89 + lsls r0, r0, #4 + bl Alloc + str r0, [r4] + ldr r1, _0816FFB4 + adds r2, r0, r1 + movs r1, #0 + strh r1, [r2] + str r5, [r0] + ldr r0, _0816FFB8 + bl SetMainCallback2 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0816FFB0: .4byte 0x0203B99C +_0816FFB4: .4byte 0x0000088C +_0816FFB8: .4byte 0x0816FFBD + thumb_func_end FieldInitRegionMap + + thumb_func_start MCB2_InitRegionMapRegisters +MCB2_InitRegionMapRegisters: @ 0x0816FFBC + push {lr} + movs r0, #0 + movs r1, #0 + bl SetGpuReg + movs r0, #0x10 + movs r1, #0 + bl SetGpuReg + movs r0, #0x12 + movs r1, #0 + bl SetGpuReg + movs r0, #0x14 + movs r1, #0 + bl SetGpuReg + movs r0, #0x16 + movs r1, #0 + bl SetGpuReg + movs r0, #0x18 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1a + movs r1, #0 + bl SetGpuReg + movs r0, #0x1c + movs r1, #0 + bl SetGpuReg + movs r0, #0x1e + movs r1, #0 + bl SetGpuReg + bl ResetSpriteData + bl FreeAllSpritePalettes + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _08170048 + movs r0, #1 + movs r2, #2 + bl InitBgsFromTemplates + ldr r0, _0817004C + bl InitWindows + bl DeactivateAllTextPrinters + movs r0, #0 + movs r1, #0x23 + movs r2, #0xd0 + bl LoadUserWindowBorderGfx + bl clear_scheduled_bg_copies_to_vram + ldr r0, _08170050 + bl SetMainCallback2 + ldr r0, _08170054 + bl SetVBlankCallback + pop {r0} + bx r0 + .align 2, 0 +_08170048: .4byte 0x085C6124 +_0817004C: .4byte 0x085C612C +_08170050: .4byte 0x0817006D +_08170054: .4byte 0x08170059 + thumb_func_end MCB2_InitRegionMapRegisters + + thumb_func_start VBCB_FieldUpdateRegionMap +VBCB_FieldUpdateRegionMap: @ 0x08170058 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end VBCB_FieldUpdateRegionMap + + thumb_func_start MCB2_FieldUpdateRegionMap +MCB2_FieldUpdateRegionMap: @ 0x0817006C + push {lr} + bl FieldUpdateRegionMap + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + bl do_scheduled_bg_tilemap_copies_to_vram + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end MCB2_FieldUpdateRegionMap + + thumb_func_start FieldUpdateRegionMap +FieldUpdateRegionMap: @ 0x08170088 + push {r4, r5, lr} + sub sp, #0xc + ldr r1, _081700A8 + ldr r0, [r1] + ldr r2, _081700AC + adds r0, r0, r2 + ldrh r0, [r0] + adds r4, r1, #0 + cmp r0, #6 + bls _0817009E + b _08170202 +_0817009E: + lsls r0, r0, #2 + ldr r1, _081700B0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081700A8: .4byte 0x0203B99C +_081700AC: .4byte 0x0000088C +_081700B0: .4byte 0x081700B4 +_081700B4: @ jump table + .4byte _081700D0 @ case 0 + .4byte _081700F8 @ case 1 + .4byte _08170144 @ case 2 + .4byte _0817016C @ case 3 + .4byte _08170180 @ case 4 + .4byte _081701AC @ case 5 + .4byte _081701D4 @ case 6 +_081700D0: + ldr r0, [r4] + adds r0, #8 + movs r1, #0 + bl InitRegionMap + movs r0, #0 + movs r1, #0 + bl CreateRegionMapPlayerIcon + movs r0, #1 + movs r1, #1 + bl CreateRegionMapCursor + ldr r1, [r4] + ldr r0, _081700F4 + adds r1, r1, r0 + b _081701C4 + .align 2, 0 +_081700F4: .4byte 0x0000088C +_081700F8: + movs r0, #1 + movs r1, #0 + movs r2, #0x23 + movs r3, #0xd + bl DrawStdFrameWithCustomTileAndPalette + ldr r2, _08170140 + movs r0, #2 + str r0, [sp] + movs r4, #0 + str r4, [sp, #4] + str r4, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #0 + movs r1, #0 + movs r2, #0x23 + movs r3, #0xd + bl DrawStdFrameWithCustomTileAndPalette + bl PrintRegionMapSecName + movs r0, #1 + rsbs r0, r0, #0 + str r4, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + b _081701B8 + .align 2, 0 +_08170140: .4byte 0x085C611C +_08170144: + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuRegBits + movs r0, #0 + bl ShowBg + movs r0, #2 + bl ShowBg + ldr r0, _08170164 + ldr r1, [r0] + ldr r0, _08170168 + adds r1, r1, r0 + b _081701C4 + .align 2, 0 +_08170164: .4byte 0x0203B99C +_08170168: .4byte 0x0000088C +_0817016C: + ldr r0, _0817017C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08170202 + ldr r1, [r4] + b _081701C0 + .align 2, 0 +_0817017C: .4byte 0x02037C74 +_08170180: + bl sub_081230B8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bne _08170192 + bl PrintRegionMapSecName + b _08170202 +_08170192: + cmp r0, #3 + blt _08170202 + cmp r0, #5 + bgt _08170202 + ldr r0, _081701A4 + ldr r1, [r0] + ldr r0, _081701A8 + adds r1, r1, r0 + b _081701C4 + .align 2, 0 +_081701A4: .4byte 0x0203B99C +_081701A8: .4byte 0x0000088C +_081701AC: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 +_081701B8: + bl BeginNormalPaletteFade + ldr r0, _081701CC + ldr r1, [r0] +_081701C0: + ldr r2, _081701D0 + adds r1, r1, r2 +_081701C4: + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _08170202 + .align 2, 0 +_081701CC: .4byte 0x0203B99C +_081701D0: .4byte 0x0000088C +_081701D4: + ldr r0, _0817020C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _08170202 + bl FreeRegionMapIconResources + ldr r4, _08170210 + ldr r0, [r4] + ldr r0, [r0] + bl SetMainCallback2 + ldr r0, [r4] + cmp r0, #0 + beq _081701FE + bl Free + str r5, [r4] +_081701FE: + bl FreeAllWindowBuffers +_08170202: + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0817020C: .4byte 0x02037C74 +_08170210: .4byte 0x0203B99C + thumb_func_end FieldUpdateRegionMap + + thumb_func_start PrintRegionMapSecName +PrintRegionMapSecName: @ 0x08170214 + push {lr} + sub sp, #0xc + ldr r0, _08170240 + ldr r2, [r0] + ldrb r0, [r2, #0xa] + cmp r0, #0 + beq _08170244 + adds r2, #0xc + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + b _08170254 + .align 2, 0 +_08170240: .4byte 0x0203B99C +_08170244: + movs r0, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram +_08170254: + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PrintRegionMapSecName + diff --git a/asm/field_screen_effect.s b/asm/field_screen_effect.s new file mode 100644 index 0000000..4001e8d --- /dev/null +++ b/asm/field_screen_effect.s @@ -0,0 +1,2830 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start palette_bg_faded_fill_white +palette_bg_faded_fill_white: @ 0x080AE8F8 + push {lr} + sub sp, #4 + ldr r0, _080AE910 + str r0, [sp] + ldr r1, _080AE914 + ldr r2, _080AE918 + mov r0, sp + bl CpuFastSet + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_080AE910: .4byte 0x7FFF7FFF +_080AE914: .4byte 0x020377B4 +_080AE918: .4byte 0x01000100 + thumb_func_end palette_bg_faded_fill_white + + thumb_func_start palette_bg_faded_fill_black +palette_bg_faded_fill_black: @ 0x080AE91C + push {lr} + sub sp, #4 + movs r0, #0 + str r0, [sp] + ldr r1, _080AE934 + ldr r2, _080AE938 + mov r0, sp + bl CpuFastSet + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_080AE934: .4byte 0x020377B4 +_080AE938: .4byte 0x01000100 + thumb_func_end palette_bg_faded_fill_black + + thumb_func_start pal_fill_for_maplights +pal_fill_for_maplights: @ 0x080AE93C + push {r4, lr} + bl GetLastUsedWarpMapType + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl GetCurrentMapType + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl GetMapPairFadeFromType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _080AE966 + cmp r0, #1 + beq _080AE974 + b _080AE980 +_080AE966: + bl palette_bg_faded_fill_black + movs r0, #0 + movs r1, #0 + bl FadeScreen + b _080AE980 +_080AE974: + bl palette_bg_faded_fill_white + movs r0, #2 + movs r1, #0 + bl FadeScreen +_080AE980: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pal_fill_for_maplights + + thumb_func_start sub_080AE988 +sub_080AE988: @ 0x080AE988 + push {lr} + bl palette_bg_faded_fill_white + movs r0, #2 + movs r1, #8 + bl FadeScreen + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080AE988 + + thumb_func_start pal_fill_black +pal_fill_black: @ 0x080AE99C + push {lr} + bl palette_bg_faded_fill_black + movs r0, #0 + movs r1, #0 + bl FadeScreen + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pal_fill_black + + thumb_func_start WarpFadeScreen +WarpFadeScreen: @ 0x080AE9B0 + push {r4, lr} + bl GetCurrentMapType + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl GetDestinationWarpMapHeader + ldrb r1, [r0, #0x17] + adds r0, r4, #0 + bl GetMapPairFadeToType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _080AE9D6 + cmp r0, #1 + beq _080AE9E0 + b _080AE9E8 +_080AE9D6: + movs r0, #1 + movs r1, #0 + bl FadeScreen + b _080AE9E8 +_080AE9E0: + movs r0, #3 + movs r1, #0 + bl FadeScreen +_080AE9E8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WarpFadeScreen + + thumb_func_start sub_080AE9F0 +sub_080AE9F0: @ 0x080AE9F0 + push {lr} + lsls r0, r0, #0x18 + movs r1, #0 + cmp r0, #0 + bne _080AE9FC + movs r1, #1 +_080AE9FC: + adds r0, r1, #0 + bl sub_0808BA0C + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080AE9F0 + + thumb_func_start task0A_nop_for_a_while +task0A_nop_for_a_while: @ 0x080AEA08 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl WaitForWeatherFadeIn + cmp r0, #1 + bne _080AEA1C + adds r0, r4, #0 + bl DestroyTask +_080AEA1C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end task0A_nop_for_a_while + + thumb_func_start sub_080AEA24 +sub_080AEA24: @ 0x080AEA24 + push {lr} + bl ScriptContext2_Enable + bl Overworld_PlaySpecialMapMusic + bl pal_fill_black + ldr r0, _080AEA40 + movs r1, #0xa + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080AEA40: .4byte 0x080AEA09 + thumb_func_end sub_080AEA24 + + thumb_func_start task0A_asap_script_env_2_enable_and_set_ctx_running +task0A_asap_script_env_2_enable_and_set_ctx_running: @ 0x080AEA44 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl WaitForWeatherFadeIn + cmp r0, #1 + bne _080AEA5C + adds r0, r4, #0 + bl DestroyTask + bl EnableBothScriptContexts +_080AEA5C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end task0A_asap_script_env_2_enable_and_set_ctx_running + + thumb_func_start FieldCallback_ReturnToEventScript2 +FieldCallback_ReturnToEventScript2: @ 0x080AEA64 + push {lr} + bl ScriptContext2_Enable + bl Overworld_PlaySpecialMapMusic + bl pal_fill_black + ldr r0, _080AEA80 + movs r1, #0xa + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080AEA80: .4byte 0x080AEA45 + thumb_func_end FieldCallback_ReturnToEventScript2 + + thumb_func_start sub_080AEA84 +sub_080AEA84: @ 0x080AEA84 + push {lr} + bl ScriptContext2_Enable + bl pal_fill_black + ldr r0, _080AEA9C + movs r1, #0xa + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080AEA9C: .4byte 0x080AEA45 + thumb_func_end sub_080AEA84 + + thumb_func_start task_mpl_807DD60 +task_mpl_807DD60: @ 0x080AEAA0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r2, _080AEAC4 + adds r4, r0, r2 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _080AEADA + cmp r0, #1 + bgt _080AEAC8 + cmp r0, #0 + beq _080AEACE + b _080AEB0A + .align 2, 0 +_080AEAC4: .4byte 0x03005B60 +_080AEAC8: + cmp r0, #2 + beq _080AEAF8 + b _080AEB0A +_080AEACE: + bl sub_080B27FC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0xa] + b _080AEAF0 +_080AEADA: + movs r1, #0xa + ldrsh r0, [r4, r1] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldrb r0, [r1, #4] + cmp r0, #1 + beq _080AEB0A + bl pal_fill_for_maplights +_080AEAF0: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _080AEB0A +_080AEAF8: + bl WaitForWeatherFadeIn + cmp r0, #1 + bne _080AEB0A + bl ScriptContext2_Disable + adds r0, r5, #0 + bl DestroyTask +_080AEB0A: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end task_mpl_807DD60 + + thumb_func_start sub_080AEB10 +sub_080AEB10: @ 0x080AEB10 + push {lr} + bl ScriptContext2_Enable + bl Overworld_PlaySpecialMapMusic + bl palette_bg_faded_fill_black + ldr r0, _080AEB2C + movs r1, #0xa + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080AEB2C: .4byte 0x080AEAA1 + thumb_func_end sub_080AEB10 + + thumb_func_start sub_080AEB30 +sub_080AEB30: @ 0x080AEB30 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080AEB54 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _080AEB64 + cmp r0, #1 + bgt _080AEB58 + cmp r0, #0 + beq _080AEB5E + b _080AEBAA + .align 2, 0 +_080AEB54: .4byte 0x03005B60 +_080AEB58: + cmp r0, #2 + beq _080AEB94 + b _080AEBAA +_080AEB5E: + bl sub_0800A8D4 + b _080AEB8C +_080AEB64: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AEB88 + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + movs r1, #0xe1 + lsls r1, r1, #0x13 + cmp r0, r1 + ble _080AEBAA + movs r0, #0xc0 + lsls r0, r0, #7 + bl sub_08010C60 + b _080AEBAA +_080AEB88: + bl pal_fill_for_maplights +_080AEB8C: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _080AEBAA +_080AEB94: + bl WaitForWeatherFadeIn + cmp r0, #1 + bne _080AEBAA + bl sub_08009AB0 + bl ScriptContext2_Disable + adds r0, r5, #0 + bl DestroyTask +_080AEBAA: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_080AEB30 + + thumb_func_start sub_080AEBB0 +sub_080AEBB0: @ 0x080AEBB0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080AEBD4 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _080AEBE4 + cmp r0, #1 + bgt _080AEBD8 + cmp r0, #0 + beq _080AEBDE + b _080AEC08 + .align 2, 0 +_080AEBD4: .4byte 0x03005B60 +_080AEBD8: + cmp r0, #2 + beq _080AEBF6 + b _080AEC08 +_080AEBDE: + bl sub_0800A8D4 + b _080AEBEE +_080AEBE4: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080AEC08 +_080AEBEE: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _080AEC08 +_080AEBF6: + bl sub_08009AB0 + bl ResetAllMultiplayerState + bl ScriptContext2_Disable + adds r0, r5, #0 + bl DestroyTask +_080AEC08: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080AEBB0 + + thumb_func_start sub_080AEC10 +sub_080AEC10: @ 0x080AEC10 + push {lr} + bl ScriptContext2_Enable + bl Overworld_PlaySpecialMapMusic + bl palette_bg_faded_fill_black + ldr r0, _080AEC2C + movs r1, #0xa + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080AEC2C: .4byte 0x080AEB31 + thumb_func_end sub_080AEC10 + + thumb_func_start sub_080AEC30 +sub_080AEC30: @ 0x080AEC30 + push {r4, lr} + sub sp, #4 + mov r4, sp + adds r4, #2 + 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, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl MetatileBehavior_IsDoor + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080AEC68 + ldr r1, _080AEC64 + b _080AEC7A + .align 2, 0 +_080AEC64: .4byte 0x080AED35 +_080AEC68: + adds r0, r4, #0 + bl MetatileBehavior_IsNonAnimDoor + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080AEC8C + cmp r0, #1 + bne _080AEC7A + ldr r1, _080AEC90 +_080AEC7A: + adds r0, r1, #0 + movs r1, #0xa + bl CreateTask + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AEC8C: .4byte 0x080AEF0D +_080AEC90: .4byte 0x080AEE4D + thumb_func_end sub_080AEC30 + + thumb_func_start mapldr_default +mapldr_default: @ 0x080AEC94 + push {lr} + bl Overworld_PlaySpecialMapMusic + bl pal_fill_for_maplights + bl sub_080AEC30 + bl ScriptContext2_Enable + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end mapldr_default + + thumb_func_start sub_080AECAC +sub_080AECAC: @ 0x080AECAC + push {lr} + bl Overworld_PlaySpecialMapMusic + bl sub_080AE988 + bl sub_080AEC30 + bl ScriptContext2_Enable + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080AECAC + + thumb_func_start sub_080AECC4 +sub_080AECC4: @ 0x080AECC4 + push {lr} + bl sub_081D5ED4 + cmp r0, #0 + bne _080AECD2 + bl Overworld_PlaySpecialMapMusic +_080AECD2: + bl pal_fill_black + bl sub_080AEC30 + bl ScriptContext2_Enable + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080AECC4 + + thumb_func_start sub_080AECE4 +sub_080AECE4: @ 0x080AECE4 + push {lr} + bl Overworld_PlaySpecialMapMusic + bl pal_fill_for_maplights + movs r0, #0x2e + bl PlaySE + ldr r0, _080AED04 + movs r1, #0xa + bl CreateTask + bl ScriptContext2_Enable + pop {r0} + bx r0 + .align 2, 0 +_080AED04: .4byte 0x080AFA5D + thumb_func_end sub_080AECE4 + + thumb_func_start sub_080AED08 +sub_080AED08: @ 0x080AED08 + push {lr} + bl Overworld_PlaySpecialMapMusic + bl pal_fill_for_maplights + movs r0, #0x2e + bl PlaySE + ldr r0, _080AED30 + movs r1, #0xa + bl CreateTask + bl ScriptContext2_Enable + movs r0, #0xe + bl sub_08084EA8 + pop {r0} + bx r0 + .align 2, 0 +_080AED30: .4byte 0x080AEF0D + thumb_func_end sub_080AED08 + + thumb_func_start sub_080AED34 +sub_080AED34: @ 0x080AED34 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _080AED60 + adds r5, r0, r1 + adds r6, r5, #0 + adds r6, #0xc + adds r7, r5, #0 + adds r7, #0xe + movs r2, #8 + ldrsh r0, [r5, r2] + adds r2, r1, #0 + cmp r0, #4 + bhi _080AEE46 + lsls r0, r0, #2 + ldr r1, _080AED64 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AED60: .4byte 0x03005B60 +_080AED64: .4byte 0x080AED68 +_080AED68: @ jump table + .4byte _080AED7C @ case 0 + .4byte _080AEDA0 @ case 1 + .4byte _080AEDD8 @ case 2 + .4byte _080AEE1C @ case 3 + .4byte _080AEE3C @ case 4 +_080AED7C: + movs r0, #0 + bl sub_080AE9F0 + bl FreezeEventObjects + adds r0, r6, #0 + adds r1, r7, #0 + bl PlayerGetDestCoords + movs r1, #0 + ldrsh r0, [r6, r1] + movs r2, #0 + ldrsh r1, [r7, r2] + bl FieldSetDoorOpened + movs r0, #1 + strh r0, [r5, #8] + b _080AEE46 +_080AEDA0: + bl WaitForWeatherFadeIn + cmp r0, #0 + beq _080AEE46 + movs r0, #1 + bl sub_080AE9F0 + movs r0, #0xff + movs r1, #0 + movs r2, #0 + bl GetEventObjectIdByLocalIdAndMap + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080AEDD4 + adds r0, r0, r1 + movs r1, #8 + bl EventObjectSetHeldMovement + movs r0, #2 + strh r0, [r5, #8] + b _080AEE46 + .align 2, 0 +_080AEDD4: .4byte 0x02036FF0 +_080AEDD8: + bl walkrun_is_standing_still + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080AEE46 + movs r1, #0 + ldrsh r0, [r6, r1] + movs r2, #0 + ldrsh r1, [r7, r2] + bl FieldAnimateDoorClose + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r5, #0xa] + movs r0, #0xff + movs r1, #0 + movs r2, #0 + bl GetEventObjectIdByLocalIdAndMap + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080AEE18 + adds r0, r0, r1 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + movs r0, #3 + strh r0, [r5, #8] + b _080AEE46 + .align 2, 0 +_080AEE18: .4byte 0x02036FF0 +_080AEE1C: + movs r1, #0xa + ldrsh r0, [r5, r1] + cmp r0, #0 + blt _080AEE32 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldrb r0, [r1, #4] + cmp r0, #1 + beq _080AEE46 +_080AEE32: + bl UnfreezeEventObjects + movs r0, #4 + strh r0, [r5, #8] + b _080AEE46 +_080AEE3C: + bl ScriptContext2_Disable + adds r0, r4, #0 + bl DestroyTask +_080AEE46: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_080AED34 + + thumb_func_start task_map_chg_seq_0807E20C +task_map_chg_seq_0807E20C: @ 0x080AEE4C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _080AEE78 + adds r5, r0, r1 + adds r6, r5, #0 + adds r6, #0xc + adds r7, r5, #0 + adds r7, #0xe + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #1 + beq _080AEE9E + cmp r0, #1 + bgt _080AEE7C + cmp r0, #0 + beq _080AEE86 + b _080AEF06 + .align 2, 0 +_080AEE78: .4byte 0x03005B60 +_080AEE7C: + cmp r0, #2 + beq _080AEEE8 + cmp r0, #3 + beq _080AEEFC + b _080AEF06 +_080AEE86: + movs r0, #0 + bl sub_080AE9F0 + bl FreezeEventObjects + adds r0, r6, #0 + adds r1, r7, #0 + bl PlayerGetDestCoords + movs r0, #1 + strh r0, [r5, #8] + b _080AEF06 +_080AEE9E: + bl WaitForWeatherFadeIn + cmp r0, #0 + beq _080AEF06 + movs r0, #1 + bl sub_080AE9F0 + movs r0, #0xff + movs r1, #0 + movs r2, #0 + bl GetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #3 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _080AEEE4 + adds r4, r4, r0 + bl GetPlayerFacingDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_08092CF8 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetHeldMovement + movs r0, #2 + strh r0, [r5, #8] + b _080AEF06 + .align 2, 0 +_080AEEE4: .4byte 0x02036FF0 +_080AEEE8: + bl walkrun_is_standing_still + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080AEF06 + bl UnfreezeEventObjects + movs r0, #3 + strh r0, [r5, #8] + b _080AEF06 +_080AEEFC: + bl ScriptContext2_Disable + adds r0, r4, #0 + bl DestroyTask +_080AEF06: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end task_map_chg_seq_0807E20C + + thumb_func_start task_map_chg_seq_0807E2CC +task_map_chg_seq_0807E2CC: @ 0x080AEF0C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _080AEF2C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _080AEF30 + cmp r0, #1 + beq _080AEF40 + b _080AEF56 + .align 2, 0 +_080AEF2C: .4byte 0x03005B60 +_080AEF30: + bl FreezeEventObjects + bl ScriptContext2_Enable + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _080AEF56 +_080AEF40: + bl WaitForWeatherFadeIn + cmp r0, #0 + beq _080AEF56 + bl UnfreezeEventObjects + bl ScriptContext2_Disable + adds r0, r5, #0 + bl DestroyTask +_080AEF56: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end task_map_chg_seq_0807E2CC + + thumb_func_start sub_080AEF5C +sub_080AEF5C: @ 0x080AEF5C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl WaitForWeatherFadeIn + cmp r0, #1 + bne _080AEF78 + adds r0, r4, #0 + bl DestroyTask + ldr r0, _080AEF80 + movs r1, #0x50 + bl CreateTask +_080AEF78: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AEF80: .4byte 0x0809F30D + thumb_func_end sub_080AEF5C + + thumb_func_start sub_080AEF84 +sub_080AEF84: @ 0x080AEF84 + push {lr} + bl pal_fill_black + ldr r0, _080AEF9C + movs r1, #0x50 + bl CreateTask + bl ScriptContext2_Enable + pop {r0} + bx r0 + .align 2, 0 +_080AEF9C: .4byte 0x080AEF5D + thumb_func_end sub_080AEF84 + + thumb_func_start sub_080AEFA0 +sub_080AEFA0: @ 0x080AEFA0 + push {lr} + bl sub_0809F2F0 + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end sub_080AEFA0 + + thumb_func_start task_mpl_807E3C8 +task_mpl_807E3C8: @ 0x080AEFAC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl WaitForWeatherFadeIn + cmp r0, #1 + bne _080AEFC8 + bl ScriptContext2_Disable + adds r0, r4, #0 + bl DestroyTask + bl ScriptUnfreezeEventObjects +_080AEFC8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end task_mpl_807E3C8 + + thumb_func_start sub_080AEFD0 +sub_080AEFD0: @ 0x080AEFD0 + push {lr} + bl ScriptContext2_Enable + bl pal_fill_black + ldr r0, _080AEFE8 + movs r1, #0xa + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080AEFE8: .4byte 0x080AEFAD + thumb_func_end sub_080AEFD0 + + thumb_func_start sub_080AEFEC +sub_080AEFEC: @ 0x080AEFEC + push {lr} + bl ScriptContext2_Enable + bl Overworld_PlaySpecialMapMusic + bl pal_fill_black + ldr r0, _080AF008 + movs r1, #0xa + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080AF008: .4byte 0x080AEFAD + thumb_func_end sub_080AEFEC + + thumb_func_start PaletteFadeActive +PaletteFadeActive: @ 0x080AF00C + ldr r0, _080AF014 + ldrb r0, [r0, #7] + lsrs r0, r0, #7 + bx lr + .align 2, 0 +_080AF014: .4byte 0x02037C74 + thumb_func_end PaletteFadeActive + + thumb_func_start WaitForWeatherFadeIn +WaitForWeatherFadeIn: @ 0x080AF018 + push {lr} + bl IsWeatherNotFadingIn + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080AF02A + movs r0, #0 + b _080AF02C +_080AF02A: + movs r0, #1 +_080AF02C: + pop {r1} + bx r1 + thumb_func_end WaitForWeatherFadeIn + + thumb_func_start DoWarp +DoWarp: @ 0x080AF030 + push {lr} + bl ScriptContext2_Enable + bl TryFadeOutOldMapMusic + bl WarpFadeScreen + bl PlayRainStoppingSoundEffect + movs r0, #9 + bl PlaySE + ldr r0, _080AF05C + ldr r1, _080AF060 + str r1, [r0] + ldr r0, _080AF064 + movs r1, #0xa + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080AF05C: .4byte 0x03005B0C +_080AF060: .4byte 0x080AEC95 +_080AF064: .4byte 0x080AF309 + thumb_func_end DoWarp + + thumb_func_start DoDiveWarp +DoDiveWarp: @ 0x080AF068 + push {lr} + bl ScriptContext2_Enable + bl TryFadeOutOldMapMusic + bl WarpFadeScreen + bl PlayRainStoppingSoundEffect + ldr r0, _080AF08C + ldr r1, _080AF090 + str r1, [r0] + ldr r0, _080AF094 + movs r1, #0xa + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080AF08C: .4byte 0x03005B0C +_080AF090: .4byte 0x080AEC95 +_080AF094: .4byte 0x080AF309 + thumb_func_end DoDiveWarp + + thumb_func_start sub_080AF098 +sub_080AF098: @ 0x080AF098 + push {lr} + bl ScriptContext2_Enable + bl TryFadeOutOldMapMusic + movs r0, #3 + movs r1, #8 + bl FadeScreen + bl PlayRainStoppingSoundEffect + ldr r0, _080AF0C0 + ldr r1, _080AF0C4 + str r1, [r0] + ldr r0, _080AF0C8 + movs r1, #0xa + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080AF0C0: .4byte 0x03005B0C +_080AF0C4: .4byte 0x080AECAD +_080AF0C8: .4byte 0x080AF309 + thumb_func_end sub_080AF098 + + thumb_func_start DoDoorWarp +DoDoorWarp: @ 0x080AF0CC + push {lr} + bl ScriptContext2_Enable + ldr r0, _080AF0E4 + ldr r1, _080AF0E8 + str r1, [r0] + ldr r0, _080AF0EC + movs r1, #0xa + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080AF0E4: .4byte 0x03005B0C +_080AF0E8: .4byte 0x080AEC95 +_080AF0EC: .4byte 0x080AF385 + thumb_func_end DoDoorWarp + + thumb_func_start DoFallWarp +DoFallWarp: @ 0x080AF0F0 + push {lr} + bl DoDiveWarp + ldr r1, _080AF100 + ldr r0, _080AF104 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080AF100: .4byte 0x03005B0C +_080AF104: .4byte 0x080B62C1 + thumb_func_end DoFallWarp + + thumb_func_start sub_080AF108 +sub_080AF108: @ 0x080AF108 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl ScriptContext2_Enable + adds r0, r4, #0 + movs r1, #0xa + bl sub_080B65A4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080AF108 + + thumb_func_start sub_080AF124 +sub_080AF124: @ 0x080AF124 + push {lr} + bl ScriptContext2_Enable + movs r0, #0xa + bl sub_080B6D30 + pop {r0} + bx r0 + thumb_func_end sub_080AF124 + + thumb_func_start sub_080AF134 +sub_080AF134: @ 0x080AF134 + push {lr} + bl ScriptContext2_Enable + movs r0, #0xa + bl sub_080B71CC + pop {r0} + bx r0 + thumb_func_end sub_080AF134 + + thumb_func_start sub_080AF144 +sub_080AF144: @ 0x080AF144 + push {lr} + bl ScriptContext2_Enable + bl TryFadeOutOldMapMusic + bl WarpFadeScreen + movs r0, #0x2d + bl PlaySE + ldr r0, _080AF16C + movs r1, #0xa + bl CreateTask + ldr r1, _080AF170 + ldr r0, _080AF174 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080AF16C: .4byte 0x080AF309 +_080AF170: .4byte 0x03005B0C +_080AF174: .4byte 0x080AECE5 + thumb_func_end sub_080AF144 + + thumb_func_start sub_080AF178 +sub_080AF178: @ 0x080AF178 + push {lr} + movs r0, #1 + bl sub_08084EA8 + bl ScriptContext2_Enable + bl SaveEventObjects + bl TryFadeOutOldMapMusic + bl WarpFadeScreen + movs r0, #0x2d + bl PlaySE + ldr r0, _080AF1A8 + movs r1, #0xa + bl CreateTask + ldr r1, _080AF1AC + ldr r0, _080AF1B0 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080AF1A8: .4byte 0x080AF309 +_080AF1AC: .4byte 0x03005B0C +_080AF1B0: .4byte 0x080AED09 + thumb_func_end sub_080AF178 + + thumb_func_start sub_080AF1B4 +sub_080AF1B4: @ 0x080AF1B4 + push {lr} + bl ScriptContext2_Enable + bl WarpFadeScreen + ldr r0, _080AF1D0 + movs r1, #0xa + bl CreateTask + ldr r1, _080AF1D4 + ldr r0, _080AF1D8 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080AF1D0: .4byte 0x080AF309 +_080AF1D4: .4byte 0x03005B0C +_080AF1D8: .4byte 0x080FBFD9 + thumb_func_end sub_080AF1B4 + + thumb_func_start sub_080AF1DC +sub_080AF1DC: @ 0x080AF1DC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080AF200 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _080AF210 + cmp r0, #1 + bgt _080AF204 + cmp r0, #0 + beq _080AF20A + b _080AF23A + .align 2, 0 +_080AF200: .4byte 0x03005B60 +_080AF204: + cmp r0, #2 + beq _080AF22A + b _080AF23A +_080AF20A: + bl ScriptContext2_Enable + b _080AF222 +_080AF210: + bl PaletteFadeActive + cmp r0, #0 + bne _080AF23A + bl BGMusicStopped + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080AF23A +_080AF222: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _080AF23A +_080AF22A: + bl WarpIntoMap + ldr r0, _080AF240 + bl SetMainCallback2 + adds r0, r5, #0 + bl DestroyTask +_080AF23A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080AF240: .4byte 0x080859DD + thumb_func_end sub_080AF1DC + + thumb_func_start sub_080AF244 +sub_080AF244: @ 0x080AF244 + push {lr} + bl ScriptContext2_Enable + bl TryFadeOutOldMapMusic + bl WarpFadeScreen + movs r0, #9 + bl PlaySE + ldr r0, _080AF264 + movs r1, #0xa + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080AF264: .4byte 0x080AF1DD + thumb_func_end sub_080AF244 + + thumb_func_start Task_ReturnToWorldFromLinkRoom +Task_ReturnToWorldFromLinkRoom: @ 0x080AF268 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080AF28C + adds r4, r0, r1 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _080AF2AE + cmp r0, #1 + bgt _080AF290 + cmp r0, #0 + beq _080AF296 + b _080AF2E4 + .align 2, 0 +_080AF28C: .4byte 0x03005B68 +_080AF290: + cmp r0, #2 + beq _080AF2CC + b _080AF2E4 +_080AF296: + bl ClearLinkCallback_2 + movs r0, #1 + movs r1, #0 + bl FadeScreen + bl TryFadeOutOldMapMusic + movs r0, #9 + bl PlaySE + b _080AF2C4 +_080AF2AE: + bl PaletteFadeActive + cmp r0, #0 + bne _080AF2E4 + bl BGMusicStopped + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080AF2E4 + bl sub_0800A7F8 +_080AF2C4: + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + b _080AF2E4 +_080AF2CC: + ldr r0, _080AF2EC + ldrb r0, [r0] + cmp r0, #0 + bne _080AF2E4 + bl WarpIntoMap + ldr r0, _080AF2F0 + bl SetMainCallback2 + adds r0, r5, #0 + bl DestroyTask +_080AF2E4: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080AF2EC: .4byte 0x030031C4 +_080AF2F0: .4byte 0x08085935 + thumb_func_end Task_ReturnToWorldFromLinkRoom + + thumb_func_start sub_080AF2F4 +sub_080AF2F4: @ 0x080AF2F4 + push {lr} + ldr r0, _080AF304 + movs r1, #0xa + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080AF304: .4byte 0x080AF269 + thumb_func_end sub_080AF2F4 + + thumb_func_start sub_080AF308 +sub_080AF308: @ 0x080AF308 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _080AF32C + adds r4, r0, r1 + movs r0, #8 + ldrsh r5, [r4, r0] + cmp r5, #1 + beq _080AF340 + cmp r5, #1 + bgt _080AF330 + cmp r5, #0 + beq _080AF336 + b _080AF378 + .align 2, 0 +_080AF32C: .4byte 0x03005B60 +_080AF330: + cmp r5, #2 + beq _080AF368 + b _080AF378 +_080AF336: + bl FreezeEventObjects + bl ScriptContext2_Enable + b _080AF360 +_080AF340: + bl PaletteFadeActive + cmp r0, #0 + bne _080AF378 + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080AF356 + bl ClearMirageTowerPulseBlendEffect + strh r5, [r4, #0xa] +_080AF356: + bl BGMusicStopped + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080AF378 +_080AF360: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _080AF378 +_080AF368: + bl WarpIntoMap + ldr r0, _080AF380 + bl SetMainCallback2 + adds r0, r6, #0 + bl DestroyTask +_080AF378: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080AF380: .4byte 0x08085935 + thumb_func_end sub_080AF308 + + thumb_func_start sub_080AF384 +sub_080AF384: @ 0x080AF384 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080AF3B4 + adds r5, r1, r0 + adds r4, r5, #0 + adds r4, #0xc + adds r6, r5, #0 + adds r6, #0xe + movs r2, #8 + ldrsh r1, [r5, r2] + adds r2, r0, #0 + cmp r1, #4 + bls _080AF3A8 + b _080AF4E4 +_080AF3A8: + lsls r0, r1, #2 + ldr r1, _080AF3B8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AF3B4: .4byte 0x03005B60 +_080AF3B8: .4byte 0x080AF3BC +_080AF3BC: @ jump table + .4byte _080AF3D0 @ case 0 + .4byte _080AF40C @ case 1 + .4byte _080AF468 @ case 2 + .4byte _080AF4B4 @ case 3 + .4byte _080AF4D0 @ case 4 +_080AF3D0: + bl FreezeEventObjects + adds r0, r4, #0 + adds r1, r6, #0 + bl PlayerGetDestCoords + movs r1, #0 + ldrsh r0, [r4, r1] + movs r2, #0 + ldrsh r1, [r6, r2] + subs r1, #1 + bl GetDoorSoundEffect + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl PlaySE + movs r1, #0 + ldrsh r0, [r4, r1] + movs r2, #0 + ldrsh r1, [r6, r2] + subs r1, #1 + bl FieldAnimateDoorOpen + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r5, #0xa] + movs r0, #1 + strh r0, [r5, #8] + b _080AF4E4 +_080AF40C: + movs r1, #0xa + ldrsh r0, [r5, r1] + cmp r0, #0 + blt _080AF422 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldrb r0, [r1, #4] + cmp r0, #1 + beq _080AF4E4 +_080AF422: + movs r0, #0xff + movs r1, #0 + movs r2, #0 + bl GetEventObjectIdByLocalIdAndMap + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _080AF464 + adds r0, r0, r4 + bl EventObjectClearHeldMovementIfActive + movs r0, #0xff + movs r1, #0 + movs r2, #0 + bl GetEventObjectIdByLocalIdAndMap + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #9 + bl EventObjectSetHeldMovement + movs r0, #2 + strh r0, [r5, #8] + b _080AF4E4 + .align 2, 0 +_080AF464: .4byte 0x02036FF0 +_080AF468: + bl walkrun_is_standing_still + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080AF4E4 + movs r2, #0 + ldrsh r0, [r4, r2] + movs r2, #0 + ldrsh r1, [r6, r2] + subs r1, #1 + bl FieldAnimateDoorClose + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r5, #0xa] + movs r0, #0xff + movs r1, #0 + movs r2, #0 + bl GetEventObjectIdByLocalIdAndMap + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080AF4B0 + adds r0, r0, r1 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + movs r0, #0 + bl sub_080AE9F0 + movs r0, #3 + strh r0, [r5, #8] + b _080AF4E4 + .align 2, 0 +_080AF4B0: .4byte 0x02036FF0 +_080AF4B4: + movs r1, #0xa + ldrsh r0, [r5, r1] + cmp r0, #0 + blt _080AF4CA + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldrb r0, [r1, #4] + cmp r0, #1 + beq _080AF4E4 +_080AF4CA: + movs r0, #4 + strh r0, [r5, #8] + b _080AF4E4 +_080AF4D0: + bl TryFadeOutOldMapMusic + bl WarpFadeScreen + bl PlayRainStoppingSoundEffect + movs r0, #0 + strh r0, [r5, #8] + ldr r0, _080AF4EC + str r0, [r5] +_080AF4E4: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080AF4EC: .4byte 0x080AF309 + thumb_func_end sub_080AF384 + + thumb_func_start task0A_fade_n_map_maybe +task0A_fade_n_map_maybe: @ 0x080AF4F0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080AF514 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _080AF528 + cmp r0, #1 + bgt _080AF518 + cmp r0, #0 + beq _080AF51E + b _080AF552 + .align 2, 0 +_080AF514: .4byte 0x03005B60 +_080AF518: + cmp r0, #2 + beq _080AF542 + b _080AF552 +_080AF51E: + bl FreezeEventObjects + bl ScriptContext2_Enable + b _080AF53A +_080AF528: + bl PaletteFadeActive + cmp r0, #0 + bne _080AF552 + bl BGMusicStopped + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080AF552 +_080AF53A: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _080AF552 +_080AF542: + bl WarpIntoMap + ldr r0, _080AF558 + bl SetMainCallback2 + adds r0, r5, #0 + bl DestroyTask +_080AF552: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080AF558: .4byte 0x0808598D + thumb_func_end task0A_fade_n_map_maybe + + thumb_func_start sub_080AF55C +sub_080AF55C: @ 0x080AF55C + push {lr} + bl ScriptContext2_Enable + bl TryFadeOutOldMapMusic + bl WarpFadeScreen + bl PlayRainStoppingSoundEffect + movs r0, #9 + bl PlaySE + ldr r0, _080AF588 + ldr r1, _080AF58C + str r1, [r0] + ldr r0, _080AF590 + movs r1, #0xa + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080AF588: .4byte 0x03005B0C +_080AF58C: .4byte 0x080AECC5 +_080AF590: .4byte 0x080AF4F1 + thumb_func_end sub_080AF55C + + thumb_func_start SetFlashScanlineEffectWindowBoundary +SetFlashScanlineEffectWindowBoundary: @ 0x080AF594 + push {lr} + cmp r1, #0xa0 + bhi _080AF5BC + cmp r2, #0 + bge _080AF5A0 + movs r2, #0 +_080AF5A0: + cmp r2, #0xff + ble _080AF5A6 + movs r2, #0xff +_080AF5A6: + cmp r3, #0 + bge _080AF5AC + movs r3, #0 +_080AF5AC: + cmp r3, #0xff + ble _080AF5B2 + movs r3, #0xff +_080AF5B2: + lsls r1, r1, #1 + adds r1, r1, r0 + lsls r0, r2, #8 + orrs r0, r3 + strh r0, [r1] +_080AF5BC: + pop {r0} + bx r0 + thumb_func_end SetFlashScanlineEffectWindowBoundary + + thumb_func_start SetFlashScanlineEffectWindowBoundaries +SetFlashScanlineEffectWindowBoundaries: @ 0x080AF5C0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + str r0, [sp] + mov sl, r1 + mov sb, r2 + adds r6, r3, #0 + mov r8, r6 + movs r7, #0 + cmp r6, #0 + blt _080AF63C +_080AF5DC: + mov r0, sb + subs r1, r0, r7 + mov r0, sl + subs r4, r0, r6 + adds r5, r0, r6 + ldr r0, [sp] + adds r2, r4, #0 + adds r3, r5, #0 + bl SetFlashScanlineEffectWindowBoundary + mov r0, sb + adds r1, r0, r7 + ldr r0, [sp] + adds r2, r4, #0 + adds r3, r5, #0 + bl SetFlashScanlineEffectWindowBoundary + mov r0, sb + subs r1, r0, r6 + mov r0, sl + subs r4, r0, r7 + adds r5, r0, r7 + ldr r0, [sp] + adds r2, r4, #0 + adds r3, r5, #0 + bl SetFlashScanlineEffectWindowBoundary + mov r0, sb + adds r1, r0, r6 + ldr r0, [sp] + adds r2, r4, #0 + adds r3, r5, #0 + bl SetFlashScanlineEffectWindowBoundary + mov r1, r8 + adds r1, #1 + lsls r0, r7, #1 + subs r1, r1, r0 + mov r8, r1 + adds r7, #1 + cmp r1, #0 + bge _080AF638 + subs r1, r6, #1 + lsls r0, r1, #1 + add r8, r0 + adds r6, r1, #0 +_080AF638: + cmp r6, r7 + bge _080AF5DC +_080AF63C: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end SetFlashScanlineEffectWindowBoundaries + + thumb_func_start SetFlash2ScanlineEffectWindowBoundary +SetFlash2ScanlineEffectWindowBoundary: @ 0x080AF64C + push {lr} + cmp r1, #0xa0 + bhi _080AF674 + cmp r2, #0 + bge _080AF658 + movs r2, #0 +_080AF658: + cmp r2, #0xf0 + ble _080AF65E + movs r2, #0xf0 +_080AF65E: + cmp r3, #0 + bge _080AF664 + movs r3, #0 +_080AF664: + cmp r3, #0xf0 + ble _080AF66A + movs r3, #0xf0 +_080AF66A: + lsls r1, r1, #1 + adds r1, r1, r0 + lsls r0, r2, #8 + orrs r0, r3 + strh r0, [r1] +_080AF674: + pop {r0} + bx r0 + thumb_func_end SetFlash2ScanlineEffectWindowBoundary + + thumb_func_start SetFlash2ScanlineEffectWindowBoundaries +SetFlash2ScanlineEffectWindowBoundaries: @ 0x080AF678 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + str r0, [sp] + mov sl, r1 + mov sb, r2 + adds r6, r3, #0 + mov r8, r6 + movs r7, #0 + cmp r6, #0 + blt _080AF6F4 +_080AF694: + mov r0, sb + subs r1, r0, r7 + mov r0, sl + subs r4, r0, r6 + adds r5, r0, r6 + ldr r0, [sp] + adds r2, r4, #0 + adds r3, r5, #0 + bl SetFlash2ScanlineEffectWindowBoundary + mov r0, sb + adds r1, r0, r7 + ldr r0, [sp] + adds r2, r4, #0 + adds r3, r5, #0 + bl SetFlash2ScanlineEffectWindowBoundary + mov r0, sb + subs r1, r0, r6 + mov r0, sl + subs r4, r0, r7 + adds r5, r0, r7 + ldr r0, [sp] + adds r2, r4, #0 + adds r3, r5, #0 + bl SetFlash2ScanlineEffectWindowBoundary + mov r0, sb + adds r1, r0, r6 + ldr r0, [sp] + adds r2, r4, #0 + adds r3, r5, #0 + bl SetFlash2ScanlineEffectWindowBoundary + mov r1, r8 + adds r1, #1 + lsls r0, r7, #1 + subs r1, r1, r0 + mov r8, r1 + adds r7, #1 + cmp r1, #0 + bge _080AF6F0 + subs r1, r6, #1 + lsls r0, r1, #1 + add r8, r0 + adds r6, r1, #0 +_080AF6F0: + cmp r6, r7 + bge _080AF694 +_080AF6F4: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end SetFlash2ScanlineEffectWindowBoundaries + + thumb_func_start UpdateFlashLevelEffect +UpdateFlashLevelEffect: @ 0x080AF704 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080AF728 + adds r4, r0, r1 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _080AF760 + cmp r0, #1 + bgt _080AF72C + cmp r0, #0 + beq _080AF732 + b _080AF7C2 + .align 2, 0 +_080AF728: .4byte 0x03005B68 +_080AF72C: + cmp r0, #2 + beq _080AF7B8 + b _080AF7C2 +_080AF732: + ldr r0, _080AF758 + ldrb r1, [r0, #0x14] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #7 + ldr r1, _080AF75C + adds r0, r0, r1 + movs r2, #2 + ldrsh r1, [r4, r2] + movs r3, #4 + ldrsh r2, [r4, r3] + movs r5, #6 + ldrsh r3, [r4, r5] + bl SetFlashScanlineEffectWindowBoundaries + movs r0, #1 + strh r0, [r4] + b _080AF7C2 + .align 2, 0 +_080AF758: .4byte 0x020397C8 +_080AF75C: .4byte 0x020388C8 +_080AF760: + ldr r0, _080AF7A8 + ldrb r1, [r0, #0x14] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #7 + ldr r1, _080AF7AC + adds r0, r0, r1 + movs r6, #2 + ldrsh r1, [r4, r6] + movs r3, #4 + ldrsh r2, [r4, r3] + movs r6, #6 + ldrsh r3, [r4, r6] + bl SetFlashScanlineEffectWindowBoundaries + movs r0, #0 + strh r0, [r4] + ldrh r0, [r4, #0xa] + ldrh r1, [r4, #6] + adds r0, r0, r1 + strh r0, [r4, #6] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #8 + ldrsh r1, [r4, r2] + cmp r0, r1 + ble _080AF7C2 + movs r3, #0xc + ldrsh r0, [r4, r3] + cmp r0, #1 + bne _080AF7B0 + bl ScanlineEffect_Stop + movs r0, #2 + strh r0, [r4] + b _080AF7C2 + .align 2, 0 +_080AF7A8: .4byte 0x020397C8 +_080AF7AC: .4byte 0x020388C8 +_080AF7B0: + adds r0, r5, #0 + bl DestroyTask + b _080AF7C2 +_080AF7B8: + bl ScanlineEffect_Clear + adds r0, r5, #0 + bl DestroyTask +_080AF7C2: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end UpdateFlashLevelEffect + + thumb_func_start UpdateFlash2LevelEffect +UpdateFlash2LevelEffect: @ 0x080AF7C8 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080AF7EC + adds r4, r0, r1 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _080AF824 + cmp r0, #1 + bgt _080AF7F0 + cmp r0, #0 + beq _080AF7F6 + b _080AF886 + .align 2, 0 +_080AF7EC: .4byte 0x03005B68 +_080AF7F0: + cmp r0, #2 + beq _080AF87C + b _080AF886 +_080AF7F6: + ldr r0, _080AF81C + ldrb r1, [r0, #0x14] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #7 + ldr r1, _080AF820 + adds r0, r0, r1 + movs r2, #2 + ldrsh r1, [r4, r2] + movs r3, #4 + ldrsh r2, [r4, r3] + movs r5, #6 + ldrsh r3, [r4, r5] + bl SetFlash2ScanlineEffectWindowBoundaries + movs r0, #1 + strh r0, [r4] + b _080AF886 + .align 2, 0 +_080AF81C: .4byte 0x020397C8 +_080AF820: .4byte 0x020388C8 +_080AF824: + ldr r0, _080AF86C + ldrb r1, [r0, #0x14] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #7 + ldr r1, _080AF870 + adds r0, r0, r1 + movs r6, #2 + ldrsh r1, [r4, r6] + movs r3, #4 + ldrsh r2, [r4, r3] + movs r6, #6 + ldrsh r3, [r4, r6] + bl SetFlash2ScanlineEffectWindowBoundaries + movs r0, #0 + strh r0, [r4] + ldrh r0, [r4, #0xa] + ldrh r1, [r4, #6] + adds r0, r0, r1 + strh r0, [r4, #6] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #8 + ldrsh r1, [r4, r2] + cmp r0, r1 + ble _080AF886 + movs r3, #0xc + ldrsh r0, [r4, r3] + cmp r0, #1 + bne _080AF874 + bl ScanlineEffect_Stop + movs r0, #2 + strh r0, [r4] + b _080AF886 + .align 2, 0 +_080AF86C: .4byte 0x020397C8 +_080AF870: .4byte 0x020388C8 +_080AF874: + adds r0, r5, #0 + bl DestroyTask + b _080AF886 +_080AF87C: + bl ScanlineEffect_Clear + adds r0, r5, #0 + bl DestroyTask +_080AF886: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end UpdateFlash2LevelEffect + + thumb_func_start sub_080AF88C +sub_080AF88C: @ 0x080AF88C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080AF8B0 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AF8A8 + bl EnableBothScriptContexts + adds r0, r4, #0 + bl DestroyTask +_080AF8A8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AF8B0: .4byte 0x080AF705 + thumb_func_end sub_080AF88C + + thumb_func_start sub_080AF8B4 +sub_080AF8B4: @ 0x080AF8B4 + push {r4, lr} + ldr r4, _080AF8D4 + adds r0, r4, #0 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AF8CC + adds r0, r4, #0 + movs r1, #0x50 + bl CreateTask +_080AF8CC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AF8D4: .4byte 0x080AF88D + thumb_func_end sub_080AF8B4 + + thumb_func_start sub_080AF8D8 +sub_080AF8D8: @ 0x080AF8D8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov r8, r0 + mov sb, r1 + adds r5, r2, #0 + adds r4, r3, #0 + ldr r6, [sp, #0x1c] + ldr r0, [sp, #0x20] + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _080AF91C + movs r1, #0x50 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _080AF920 + adds r1, r0, r1 + strh r5, [r1, #6] + strh r4, [r1, #8] + mov r0, r8 + strh r0, [r1, #2] + mov r0, sb + strh r0, [r1, #4] + strh r6, [r1, #0xc] + cmp r5, r4 + bge _080AF924 + strh r7, [r1, #0xa] + b _080AF928 + .align 2, 0 +_080AF91C: .4byte 0x080AF705 +_080AF920: .4byte 0x03005B68 +_080AF924: + rsbs r0, r7, #0 + strh r0, [r1, #0xa] +_080AF928: + adds r0, r2, #0 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080AF8D8 + + thumb_func_start sub_080AF938 +sub_080AF938: @ 0x080AF938 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov r8, r0 + mov sb, r1 + adds r5, r2, #0 + adds r4, r3, #0 + ldr r6, [sp, #0x1c] + ldr r0, [sp, #0x20] + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _080AF97C + movs r1, #0x50 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _080AF980 + adds r1, r0, r1 + strh r5, [r1, #6] + strh r4, [r1, #8] + mov r0, r8 + strh r0, [r1, #2] + mov r0, sb + strh r0, [r1, #4] + strh r6, [r1, #0xc] + cmp r5, r4 + bge _080AF984 + strh r7, [r1, #0xa] + b _080AF988 + .align 2, 0 +_080AF97C: .4byte 0x080AF7C9 +_080AF980: .4byte 0x03005B68 +_080AF984: + rsbs r0, r7, #0 + strh r0, [r1, #0xa] +_080AF988: + adds r0, r2, #0 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080AF938 + + thumb_func_start sub_080AF998 +sub_080AF998: @ 0x080AF998 + push {r4, r5, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r4, r0, #0 + bl Overworld_GetFlashLevel + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r5, #0 + cmp r4, #0 + bne _080AF9B2 + movs r5, #1 +_080AF9B2: + ldr r1, _080AF9E0 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r2, [r0] + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r3, [r0] + str r5, [sp] + movs r0, #1 + str r0, [sp, #4] + movs r0, #0x78 + movs r1, #0x50 + bl sub_080AF8D8 + bl sub_080AF8B4 + bl ScriptContext2_Enable + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080AF9E0: .4byte 0x0852AB00 + thumb_func_end sub_080AF998 + + thumb_func_start WriteFlashScanlineEffectBuffer +WriteFlashScanlineEffectBuffer: @ 0x080AF9E4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _080AFA12 + ldr r4, _080AFA18 + ldr r1, _080AFA1C + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r3, [r0] + adds r0, r4, #0 + movs r1, #0x78 + movs r2, #0x50 + bl SetFlashScanlineEffectWindowBoundaries + movs r0, #0xf0 + lsls r0, r0, #3 + adds r1, r4, r0 + movs r2, #0xf0 + lsls r2, r2, #1 + adds r0, r4, #0 + bl CpuFastSet +_080AFA12: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AFA18: .4byte 0x020388C8 +_080AFA1C: .4byte 0x0852AB00 + thumb_func_end WriteFlashScanlineEffectBuffer + + thumb_func_start WriteBattlePyramidViewScanlineEffectBuffer +WriteBattlePyramidViewScanlineEffectBuffer: @ 0x080AFA20 + push {r4, lr} + ldr r4, _080AFA50 + ldr r0, _080AFA54 + ldr r0, [r0] + ldr r1, _080AFA58 + adds r0, r0, r1 + ldrb r3, [r0] + adds r0, r4, #0 + movs r1, #0x78 + movs r2, #0x50 + bl SetFlashScanlineEffectWindowBoundaries + movs r0, #0xf0 + lsls r0, r0, #3 + adds r1, r4, r0 + movs r2, #0xf0 + lsls r2, r2, #1 + adds r0, r4, #0 + bl CpuFastSet + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AFA50: .4byte 0x020388C8 +_080AFA54: .4byte 0x03005AF0 +_080AFA58: .4byte 0x00000E68 + thumb_func_end WriteBattlePyramidViewScanlineEffectBuffer + + thumb_func_start task0A_mpl_807E31C +task0A_mpl_807E31C: @ 0x080AFA5C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _080AFA7C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _080AFA80 + cmp r0, #1 + beq _080AFA94 + b _080AFAB2 + .align 2, 0 +_080AFA7C: .4byte 0x03005B60 +_080AFA80: + bl FreezeEventObjects + bl ScriptContext2_Enable + bl sub_0808CB04 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _080AFAB2 +_080AFA94: + bl WaitForWeatherFadeIn + cmp r0, #0 + beq _080AFAB2 + bl sub_0808CB24 + cmp r0, #1 + beq _080AFAB2 + bl UnfreezeEventObjects + bl ScriptContext2_Disable + adds r0, r5, #0 + bl DestroyTask +_080AFAB2: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end task0A_mpl_807E31C + + thumb_func_start sub_080AFAB8 +sub_080AFAB8: @ 0x080AFAB8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080AFADC + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _080AFAFE + cmp r0, #1 + bgt _080AFAE0 + cmp r0, #0 + beq _080AFAEA + b _080AFB36 + .align 2, 0 +_080AFADC: .4byte 0x03005B60 +_080AFAE0: + cmp r0, #2 + beq _080AFB0C + cmp r0, #3 + beq _080AFB26 + b _080AFB36 +_080AFAEA: + bl FreezeEventObjects + bl ScriptContext2_Enable + movs r0, #0x2d + bl PlaySE + bl sub_0808CB38 + b _080AFB1E +_080AFAFE: + bl sub_0808CB58 + cmp r0, #0 + bne _080AFB36 + bl WarpFadeScreen + b _080AFB1E +_080AFB0C: + bl PaletteFadeActive + cmp r0, #0 + bne _080AFB36 + bl BGMusicStopped + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080AFB36 +_080AFB1E: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _080AFB36 +_080AFB26: + bl WarpIntoMap + ldr r0, _080AFB3C + bl SetMainCallback2 + adds r0, r5, #0 + bl DestroyTask +_080AFB36: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080AFB3C: .4byte 0x08085935 + thumb_func_end sub_080AFAB8 + + thumb_func_start sub_080AFB40 +sub_080AFB40: @ 0x080AFB40 + push {lr} + bl ScriptContext2_Enable + ldr r0, _080AFB58 + movs r1, #0xa + bl CreateTask + ldr r1, _080AFB5C + ldr r0, _080AFB60 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080AFB58: .4byte 0x080AF309 +_080AFB5C: .4byte 0x03005B0C +_080AFB60: .4byte 0x080AECE5 + thumb_func_end sub_080AFB40 + + thumb_func_start sub_080AFB64 +sub_080AFB64: @ 0x080AFB64 + push {lr} + bl ScriptContext2_Enable + ldr r0, _080AFB7C + ldr r1, _080AFB80 + str r1, [r0] + ldr r0, _080AFB84 + movs r1, #0xa + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080AFB7C: .4byte 0x03005B0C +_080AFB80: .4byte 0x080AEC95 +_080AFB84: .4byte 0x080AFAB9 + thumb_func_end sub_080AFB64 + + thumb_func_start sub_080AFB88 +sub_080AFB88: @ 0x080AFB88 + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AFB96 + movs r1, #0x1f + b _080AFB9C +_080AFB96: + movs r0, #0xf8 + lsls r0, r0, #7 + adds r1, r0, #0 +_080AFB9C: + mov r0, sp + strh r1, [r0] + movs r5, #0 + movs r4, #0xf0 + lsls r4, r4, #0x10 +_080AFBA6: + lsrs r1, r4, #0x10 + mov r0, sp + movs r2, #2 + bl LoadPalette + movs r0, #0x80 + lsls r0, r0, #9 + adds r4, r4, r0 + adds r5, #1 + cmp r5, #0xf + ble _080AFBA6 + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_080AFB88 + + thumb_func_start sub_080AFBC4 +sub_080AFBC4: @ 0x080AFBC4 + push {r4, r5, lr} + lsls r0, r0, #0x10 + ldr r2, _080AFBE4 + ldrh r1, [r2] + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + ldrh r1, [r2] + lsrs r4, r1, #8 + cmp r0, #0 + beq _080AFBE8 + cmp r5, #0 + beq _080AFBF2 + subs r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + b _080AFBF2 + .align 2, 0 +_080AFBE4: .4byte 0x04000052 +_080AFBE8: + cmp r4, #0xf + bhi _080AFBF2 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_080AFBF2: + lsls r1, r4, #8 + orrs r1, r5 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + cmp r5, #0 + bne _080AFC0C + cmp r4, #0x10 + bne _080AFC0C + movs r0, #1 + b _080AFC0E +_080AFC0C: + movs r0, #0 +_080AFC0E: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_080AFBC4 + + thumb_func_start sub_080AFC14 +sub_080AFC14: @ 0x080AFC14 + push {r4, r5, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _080AFC3C + adds r5, r0, r1 + movs r1, #0 + ldrsh r0, [r5, r1] + cmp r0, #7 + bls _080AFC30 + b _080AFE28 +_080AFC30: + lsls r0, r0, #2 + ldr r1, _080AFC40 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AFC3C: .4byte 0x03005B68 +_080AFC40: .4byte 0x080AFC44 +_080AFC44: @ jump table + .4byte _080AFC64 @ case 0 + .4byte _080AFD20 @ case 1 + .4byte _080AFD4C @ case 2 + .4byte _080AFD68 @ case 3 + .4byte _080AFD7E @ case 4 + .4byte _080AFDEE @ case 5 + .4byte _080AFDA8 @ case 6 + .4byte _080AFDB6 @ case 7 +_080AFC64: + movs r0, #0x80 + lsls r0, r0, #0x13 + ldrh r0, [r0] + strh r0, [r5, #0xc] + ldr r0, _080AFD00 + ldrh r0, [r0] + strh r0, [r5, #0xe] + ldr r0, _080AFD04 + ldrh r0, [r0] + strh r0, [r5, #0x10] + ldr r0, _080AFD08 + ldrh r0, [r0] + strh r0, [r5, #0x12] + ldr r0, _080AFD0C + ldrh r0, [r0] + strh r0, [r5, #0x14] + movs r1, #0x80 + lsls r1, r1, #7 + movs r0, #0 + bl ClearGpuRegBits + ldr r0, _080AFD10 + ldrh r1, [r0] + movs r0, #0x50 + bl SetGpuRegBits + ldr r1, _080AFD14 + movs r0, #0x52 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0x3f + bl SetGpuReg + movs r0, #0x4a + movs r1, #0x1e + bl SetGpuReg + movs r0, #0x14 + str r0, [sp] + movs r0, #0xf + str r0, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0x1e + bl sub_081998C8 + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + ldr r4, _080AFD18 + movs r2, #4 + ldrsh r1, [r5, r2] + movs r0, #6 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + movs r3, #1 + bl SetFlash2ScanlineEffectWindowBoundaries + movs r2, #0xf0 + lsls r2, r2, #3 + adds r1, r4, r2 + movs r2, #0xf0 + lsls r2, r2, #1 + adds r0, r4, #0 + bl CpuFastSet + ldr r2, _080AFD1C + ldr r0, [r2] + ldr r1, [r2, #4] + ldr r2, [r2, #8] + bl ScanlineEffect_SetParams + movs r0, #1 + strh r0, [r5] + b _080AFE28 + .align 2, 0 +_080AFD00: .4byte 0x04000050 +_080AFD04: .4byte 0x04000052 +_080AFD08: .4byte 0x04000048 +_080AFD0C: .4byte 0x0400004A +_080AFD10: .4byte 0x082BF434 +_080AFD14: .4byte 0x0000070C +_080AFD18: .4byte 0x020388C8 +_080AFD1C: .4byte 0x0852AB18 +_080AFD20: + movs r0, #0 + movs r1, #0x11 + movs r2, #0 + movs r3, #1 + bl sub_08199A88 + ldrb r0, [r5, #2] + bl sub_080AFB88 + movs r1, #4 + ldrsh r0, [r5, r1] + movs r2, #6 + ldrsh r1, [r5, r2] + movs r2, #1 + str r2, [sp] + movs r4, #2 + str r4, [sp, #4] + movs r3, #0xa0 + bl sub_080AF938 + strh r4, [r5] + b _080AFE28 +_080AFD4C: + ldr r0, _080AFD64 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AFE28 + bl EnableBothScriptContexts + movs r0, #3 + strh r0, [r5] + b _080AFE28 + .align 2, 0 +_080AFD64: .4byte 0x080AF7C9 +_080AFD68: + bl InstallCameraPanAheadCallback + movs r0, #0 + bl SetCameraPanningCallback + movs r0, #0 + strh r0, [r5, #0xa] + movs r0, #4 + strh r0, [r5, #8] + strh r0, [r5] + b _080AFE28 +_080AFD7E: + ldrh r0, [r5, #8] + subs r0, #1 + strh r0, [r5, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080AFE28 + movs r0, #4 + strh r0, [r5, #8] + ldrh r0, [r5, #0xa] + movs r1, #1 + eors r0, r1 + strh r0, [r5, #0xa] + movs r1, #4 + rsbs r1, r1, #0 + cmp r0, #0 + beq _080AFDA0 + movs r1, #4 +_080AFDA0: + movs r0, #0 + bl SetCameraPanning + b _080AFE28 +_080AFDA8: + bl InstallCameraPanAheadCallback + movs r0, #8 + strh r0, [r5, #8] + movs r0, #7 + strh r0, [r5] + b _080AFE28 +_080AFDB6: + ldrh r0, [r5, #8] + subs r0, #1 + strh r0, [r5, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080AFE28 + movs r0, #8 + strh r0, [r5, #8] + ldrh r0, [r5, #0xa] + movs r1, #1 + eors r0, r1 + strh r0, [r5, #0xa] + ldrh r0, [r5, #0xa] + bl sub_080AFBC4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080AFE28 + movs r0, #5 + strh r0, [r5] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #1 + bl sub_08199A88 + b _080AFE28 +_080AFDEE: + movs r0, #0x40 + movs r1, #0xff + bl SetGpuReg + ldrh r1, [r5, #0xc] + movs r0, #0 + bl SetGpuReg + ldrh r1, [r5, #0xe] + movs r0, #0x50 + bl SetGpuReg + ldrh r1, [r5, #0x10] + movs r0, #0x52 + bl SetGpuReg + ldrh r1, [r5, #0x12] + movs r0, #0x48 + bl SetGpuReg + ldrh r1, [r5, #0x14] + movs r0, #0x4a + bl SetGpuReg + bl EnableBothScriptContexts + adds r0, r4, #0 + bl DestroyTask +_080AFE28: + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_080AFC14 + + thumb_func_start sub_080AFE30 +sub_080AFE30: @ 0x080AFE30 + push {lr} + ldr r0, _080AFE58 + movs r1, #0x50 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080AFE5C + adds r1, r1, r0 + ldr r0, _080AFE60 + ldrh r0, [r0] + cmp r0, #0 + bne _080AFE64 + strh r0, [r1, #2] + movs r0, #0x68 + b _080AFE7C + .align 2, 0 +_080AFE58: .4byte 0x080AFC15 +_080AFE5C: .4byte 0x03005B68 +_080AFE60: .4byte 0x02037290 +_080AFE64: + cmp r0, #1 + bne _080AFE6E + strh r0, [r1, #2] + movs r0, #0x88 + b _080AFE7C +_080AFE6E: + cmp r0, #2 + bne _080AFE76 + movs r0, #0 + b _080AFE78 +_080AFE76: + movs r0, #1 +_080AFE78: + strh r0, [r1, #2] + movs r0, #0x78 +_080AFE7C: + strh r0, [r1, #4] + movs r0, #0x50 + strh r0, [r1, #6] + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080AFE30 + + thumb_func_start sub_080AFE88 +sub_080AFE88: @ 0x080AFE88 + push {lr} + ldr r0, _080AFEA8 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080AFEAC + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r0, #6 + strh r0, [r1, #8] + pop {r0} + bx r0 + .align 2, 0 +_080AFEA8: .4byte 0x080AFC15 +_080AFEAC: .4byte 0x03005B60 + thumb_func_end sub_080AFE88 + + thumb_func_start sub_080AFEB0 +sub_080AFEB0: @ 0x080AFEB0 + push {lr} + bl Overworld_FadeOutMapMusic + ldr r0, _080AFEC4 + movs r1, #0x50 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080AFEC4: .4byte 0x080AFEC9 + thumb_func_end sub_080AFEB0 + + thumb_func_start task50_0807F0C8 +task50_0807F0C8: @ 0x080AFEC8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl BGMusicStopped + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080AFEE4 + adds r0, r4, #0 + bl DestroyTask + bl EnableBothScriptContexts +_080AFEE4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end task50_0807F0C8 + diff --git a/asm/field_special_scene.s b/asm/field_special_scene.s new file mode 100644 index 0000000..9ea052f --- /dev/null +++ b/asm/field_special_scene.s @@ -0,0 +1,905 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start GetTruckCameraBobbingY +GetTruckCameraBobbingY: @ 0x080FB920 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x78 + bl __modsi3 + cmp r0, #0 + bne _080FB934 + movs r0, #1 + rsbs r0, r0, #0 + b _080FB946 +_080FB934: + adds r0, r4, #0 + movs r1, #0xa + bl __modsi3 + cmp r0, #4 + ble _080FB944 + movs r0, #0 + b _080FB946 +_080FB944: + movs r0, #1 +_080FB946: + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetTruckCameraBobbingY + + thumb_func_start GetTruckBoxMovement +GetTruckBoxMovement: @ 0x080FB94C + push {lr} + adds r0, #0x78 + movs r1, #0xb4 + bl __modsi3 + cmp r0, #0 + beq _080FB95E + movs r0, #0 + b _080FB962 +_080FB95E: + movs r0, #1 + rsbs r0, r0, #0 +_080FB962: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetTruckBoxMovement + + thumb_func_start Task_Truck1 +Task_Truck1: @ 0x080FB968 + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080FBA0C + adds r5, r1, r0 + movs r1, #0 + ldrsh r0, [r5, r1] + adds r0, #0x1e + bl GetTruckBoxMovement + ldr r4, _080FBA10 + ldr r2, [r4] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + lsls r0, r0, #0x12 + movs r3, #0xc0 + lsls r3, r3, #0xa + orrs r0, r3 + asrs r0, r0, #0x10 + str r0, [sp] + movs r0, #1 + movs r3, #3 + bl sub_0808E19C + movs r3, #0 + ldrsh r0, [r5, r3] + bl GetTruckBoxMovement + ldr r2, [r4] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + lsls r0, r0, #0x11 + ldr r3, _080FBA14 + adds r0, r0, r3 + asrs r0, r0, #0x10 + str r0, [sp] + movs r0, #2 + movs r3, #0 + bl sub_0808E19C + movs r1, #0 + ldrsh r0, [r5, r1] + bl GetTruckBoxMovement + ldr r2, [r4] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + movs r4, #0 + movs r3, #3 + rsbs r3, r3, #0 + lsls r0, r0, #0x12 + asrs r0, r0, #0x10 + str r0, [sp] + movs r0, #3 + bl sub_0808E19C + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + lsls r0, r0, #0x10 + ldr r1, _080FBA18 + cmp r0, r1 + bne _080FB9F0 + strh r4, [r5] +_080FB9F0: + movs r3, #0 + ldrsh r0, [r5, r3] + bl GetTruckCameraBobbingY + adds r1, r0, #0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #0 + bl SetCameraPanning + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FBA0C: .4byte 0x03005B68 +_080FBA10: .4byte 0x03005AEC +_080FBA14: .4byte 0xFFFD0000 +_080FBA18: .4byte 0x75300000 + thumb_func_end Task_Truck1 + + thumb_func_start Task_Truck2 +Task_Truck2: @ 0x080FBA1C + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r3, r0, #3 + ldr r4, _080FBA5C + adds r7, r3, r4 + ldrh r1, [r7] + adds r1, #1 + strh r1, [r7] + ldrh r0, [r7, #4] + adds r0, #1 + strh r0, [r7, #4] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #5 + ble _080FBA4C + movs r0, #0 + strh r0, [r7] + ldrh r0, [r7, #2] + adds r0, #1 + strh r0, [r7, #2] +_080FBA4C: + ldrh r0, [r7, #2] + cmp r0, #0x13 + bne _080FBA60 + adds r0, r2, #0 + bl DestroyTask + b _080FBB18 + .align 2, 0 +_080FBA5C: .4byte 0x03005B68 +_080FBA60: + ldr r2, _080FBB20 + movs r1, #2 + ldrsh r0, [r7, r1] + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #2 + bne _080FBA7C + adds r0, r4, #0 + subs r0, #8 + adds r0, r3, r0 + ldr r1, _080FBB24 + str r1, [r0] +_080FBA7C: + movs r4, #2 + ldrsh r0, [r7, r4] + adds r0, r0, r2 + movs r5, #0 + ldrsb r5, [r0, r5] + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + movs r1, #4 + ldrsh r0, [r7, r1] + bl GetTruckCameraBobbingY + adds r1, r0, #0 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r0, r5, #0 + bl SetCameraPanning + movs r4, #4 + ldrsh r0, [r7, r4] + adds r0, #0x1e + bl GetTruckBoxMovement + ldr r6, _080FBB28 + ldr r2, [r6] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + movs r3, #3 + subs r3, r3, r5 + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + lsls r0, r0, #0x12 + movs r4, #0xc0 + lsls r4, r4, #0xa + orrs r0, r4 + asrs r0, r0, #0x10 + str r0, [sp] + movs r0, #1 + bl sub_0808E19C + movs r1, #4 + ldrsh r0, [r7, r1] + bl GetTruckBoxMovement + ldr r2, [r6] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + rsbs r3, r5, #0 + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + lsls r0, r0, #0x11 + ldr r4, _080FBB2C + adds r0, r0, r4 + asrs r0, r0, #0x10 + str r0, [sp] + movs r0, #2 + bl sub_0808E19C + movs r1, #4 + ldrsh r0, [r7, r1] + bl GetTruckBoxMovement + ldr r2, [r6] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + movs r4, #3 + rsbs r4, r4, #0 + adds r3, r4, #0 + subs r3, r3, r5 + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + lsls r0, r0, #0x12 + asrs r0, r0, #0x10 + str r0, [sp] + movs r0, #3 + bl sub_0808E19C +_080FBB18: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080FBB20: .4byte 0x0856A47C +_080FBB24: .4byte 0x080FBB31 +_080FBB28: .4byte 0x03005AEC +_080FBB2C: .4byte 0xFFFD0000 + thumb_func_end Task_Truck2 + + thumb_func_start Task_Truck3 +Task_Truck3: @ 0x080FBB30 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r3, r0, #0 + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #3 + ldr r1, _080FBB70 + adds r2, r0, r1 + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #5 + ble _080FBB60 + movs r0, #0 + strh r0, [r2] + ldrh r0, [r2, #2] + adds r0, #1 + strh r0, [r2, #2] +_080FBB60: + ldrh r0, [r2, #2] + cmp r0, #0x13 + bne _080FBB74 + adds r0, r3, #0 + bl DestroyTask + b _080FBBC8 + .align 2, 0 +_080FBB70: .4byte 0x03005B68 +_080FBB74: + ldr r1, _080FBBD4 + movs r3, #2 + ldrsh r0, [r2, r3] + adds r0, r0, r1 + movs r1, #0 + mov r8, r1 + movs r6, #0 + ldrsb r6, [r0, r6] + adds r0, r6, #0 + bl SetCameraPanning + ldr r5, _080FBBD8 + ldr r0, [r5] + ldrb r1, [r0, #5] + ldrb r2, [r0, #4] + movs r3, #3 + subs r3, r3, r6 + movs r0, #3 + str r0, [sp] + movs r0, #1 + bl sub_0808E19C + ldr r0, [r5] + ldrb r1, [r0, #5] + ldrb r2, [r0, #4] + rsbs r3, r6, #0 + mov r4, r8 + subs r4, #3 + str r4, [sp] + movs r0, #2 + bl sub_0808E19C + ldr r0, [r5] + ldrb r1, [r0, #5] + ldrb r2, [r0, #4] + subs r4, r4, r6 + mov r3, r8 + str r3, [sp] + movs r0, #3 + adds r3, r4, #0 + bl sub_0808E19C +_080FBBC8: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080FBBD4: .4byte 0x0856A47C +_080FBBD8: .4byte 0x03005AEC + thumb_func_end Task_Truck3 + + thumb_func_start Task_HandleTruckSequence +Task_HandleTruckSequence: @ 0x080FBBDC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080FBC00 + adds r4, r0, r1 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #5 + bls _080FBBF6 + b _080FBD48 +_080FBBF6: + lsls r0, r0, #2 + ldr r1, _080FBC04 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080FBC00: .4byte 0x03005B68 +_080FBC04: .4byte 0x080FBC08 +_080FBC08: @ jump table + .4byte _080FBC20 @ case 0 + .4byte _080FBC58 @ case 1 + .4byte _080FBC74 @ case 2 + .4byte _080FBCC0 @ case 3 + .4byte _080FBCE4 @ case 4 + .4byte _080FBD02 @ case 5 +_080FBC20: + ldrh r0, [r4, #2] + adds r0, #1 + strh r0, [r4, #2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x5a + beq _080FBC30 + b _080FBD48 +_080FBC30: + movs r0, #0 + bl SetCameraPanningCallback + movs r0, #0 + strh r0, [r4, #2] + ldr r0, _080FBC54 + movs r1, #0xa + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #4] + movs r0, #1 + strh r0, [r4] + movs r0, #0x31 + bl PlaySE + b _080FBD48 + .align 2, 0 +_080FBC54: .4byte 0x080FB969 +_080FBC58: + ldrh r0, [r4, #2] + adds r0, #1 + strh r0, [r4, #2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x96 + bne _080FBD48 + bl pal_fill_black + movs r0, #0 + strh r0, [r4, #2] + movs r0, #2 + strh r0, [r4] + b _080FBD48 +_080FBC74: + ldrh r0, [r4, #2] + adds r3, r0, #1 + strh r3, [r4, #2] + ldr r0, _080FBCB8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _080FBD48 + lsls r1, r3, #0x10 + movs r0, #0x96 + lsls r0, r0, #0x11 + cmp r1, r0 + ble _080FBD48 + strh r2, [r4, #2] + ldrb r0, [r4, #4] + bl DestroyTask + ldr r0, _080FBCBC + movs r1, #0xa + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #6] + movs r0, #3 + strh r0, [r4] + movs r0, #0x32 + bl PlaySE + b _080FBD48 + .align 2, 0 +_080FBCB8: .4byte 0x02037C74 +_080FBCBC: .4byte 0x080FBA1D +_080FBCC0: + ldr r2, _080FBCE0 + movs r0, #6 + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrb r5, [r0, #4] + cmp r5, #0 + bne _080FBD48 + bl InstallCameraPanAheadCallback + strh r5, [r4, #2] + movs r0, #4 + strh r0, [r4] + b _080FBD48 + .align 2, 0 +_080FBCE0: .4byte 0x03005B60 +_080FBCE4: + ldrh r0, [r4, #2] + adds r0, #1 + strh r0, [r4, #2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x5a + bne _080FBD48 + movs r0, #0x33 + bl PlaySE + movs r0, #0 + strh r0, [r4, #2] + movs r0, #5 + strh r0, [r4] + b _080FBD48 +_080FBD02: + ldrh r0, [r4, #2] + adds r0, #1 + strh r0, [r4, #2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x78 + bne _080FBD48 + movs r2, #0x82 + lsls r2, r2, #2 + movs r0, #0xb + movs r1, #8 + bl MapGridSetMetatileIdAt + movs r2, #0x84 + lsls r2, r2, #2 + movs r0, #0xb + movs r1, #9 + bl MapGridSetMetatileIdAt + movs r2, #0x86 + lsls r2, 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 +_080FBD48: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Task_HandleTruckSequence + + thumb_func_start ExecuteTruckSequence +ExecuteTruckSequence: @ 0x080FBD50 + push {lr} + sub sp, #4 + ldr r2, _080FBD98 + movs r0, #0xb + movs r1, #8 + bl MapGridSetMetatileIdAt + ldr r2, _080FBD9C + movs r0, #0xb + movs r1, #9 + bl MapGridSetMetatileIdAt + ldr r2, _080FBDA0 + movs r0, #0xb + movs r1, #0xa + bl MapGridSetMetatileIdAt + bl DrawWholeMapView + bl ScriptContext2_Enable + movs r0, #0 + str r0, [sp] + ldr r1, _080FBDA4 + ldr r2, _080FBDA8 + mov r0, sp + bl CpuFastSet + ldr r0, _080FBDAC + movs r1, #0xa + bl CreateTask + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_080FBD98: .4byte 0x0000020D +_080FBD9C: .4byte 0x00000215 +_080FBDA0: .4byte 0x0000021D +_080FBDA4: .4byte 0x020377B4 +_080FBDA8: .4byte 0x01000100 +_080FBDAC: .4byte 0x080FBBDD + thumb_func_end ExecuteTruckSequence + + thumb_func_start EndTruckSequence +EndTruckSequence: @ 0x080FBDB0 + push {r4, r5, r6, lr} + sub sp, #4 + ldr r0, _080FBE04 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + bne _080FBDFA + ldr r4, _080FBE08 + ldr r0, [r4] + ldrb r1, [r0, #5] + ldrb r2, [r0, #4] + movs r0, #3 + str r0, [sp] + movs r0, #1 + movs r3, #3 + bl sub_0808E19C + ldr r0, [r4] + ldrb r1, [r0, #5] + ldrb r2, [r0, #4] + movs r5, #3 + rsbs r5, r5, #0 + str r5, [sp] + movs r0, #2 + movs r3, #0 + bl sub_0808E19C + ldr r0, [r4] + ldrb r1, [r0, #5] + ldrb r2, [r0, #4] + str r6, [sp] + movs r0, #3 + adds r3, r5, #0 + bl sub_0808E19C +_080FBDFA: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080FBE04: .4byte 0x080FBBDD +_080FBE08: .4byte 0x03005AEC + thumb_func_end EndTruckSequence + + thumb_func_start sub_080FBE0C +sub_080FBE0C: @ 0x080FBE0C + push {r4, r5, r6, lr} + sub sp, #0xc + mov r4, sp + adds r4, #5 + mov r5, sp + adds r5, #6 + add r6, sp, #8 + add r0, sp, #4 + adds r1, r4, #0 + adds r2, r5, #0 + adds r3, r6, #0 + bl GetSSTidalLocation + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FBE4E + add r0, sp, #4 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #0 + ldrsb r1, [r4, r1] + movs r2, #1 + rsbs r2, r2, #0 + movs r3, #0 + ldrsb r3, [r5, r3] + movs r4, #0 + ldrsb r4, [r6, r4] + str r4, [sp] + bl SetWarpDestination + movs r0, #1 + b _080FBE50 +_080FBE4E: + movs r0, #0 +_080FBE50: + add sp, #0xc + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_080FBE0C + + thumb_func_start Task_HandlePorthole +Task_HandlePorthole: @ 0x080FBE58 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080FBE88 + adds r4, r0, r1 + ldr r0, _080FBE8C + bl GetVarPointer + adds r7, r0, #0 + ldr r0, _080FBE90 + ldr r3, [r0] + adds r6, r3, #4 + movs r0, #0 + ldrsh r2, [r4, r0] + cmp r2, #1 + beq _080FBEB8 + cmp r2, #1 + bgt _080FBE94 + cmp r2, #0 + beq _080FBE9E + b _080FBF52 + .align 2, 0 +_080FBE88: .4byte 0x03005B68 +_080FBE8C: .4byte 0x000040B4 +_080FBE90: .4byte 0x03005AEC +_080FBE94: + cmp r2, #2 + beq _080FBEFA + cmp r2, #3 + beq _080FBF34 + b _080FBF52 +_080FBE9E: + ldr r0, _080FBEB4 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080FBF52 + strh r2, [r4, #2] + movs r0, #2 + strh r0, [r4] + b _080FBF52 + .align 2, 0 +_080FBEB4: .4byte 0x02037C74 +_080FBEB8: + ldr r0, _080FBEEC + ldrh r1, [r0, #0x2e] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _080FBEC6 + strh r2, [r4, #2] +_080FBEC6: + ldrb r1, [r6, #1] + ldrb r2, [r3, #4] + movs r0, #0xff + bl ScriptMovement_IsObjectMovementFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FBF52 + movs r0, #1 + bl CountSSTidalStep + cmp r0, #1 + bne _080FBEF6 + ldrh r0, [r7] + cmp r0, #2 + bne _080FBEF0 + movs r0, #9 + b _080FBEF2 + .align 2, 0 +_080FBEEC: .4byte 0x03002360 +_080FBEF0: + movs r0, #0xa +_080FBEF2: + strh r0, [r7] + b _080FBF02 +_080FBEF6: + movs r0, #2 + strh r0, [r4] +_080FBEFA: + movs r1, #2 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _080FBF08 +_080FBF02: + movs r0, #3 + strh r0, [r4] + b _080FBF52 +_080FBF08: + ldrh r0, [r7] + cmp r0, #2 + bne _080FBF1C + ldrb r1, [r6, #1] + ldrb r2, [r6] + ldr r3, _080FBF18 + b _080FBF22 + .align 2, 0 +_080FBF18: .4byte 0x0856A48F +_080FBF1C: + ldrb r1, [r6, #1] + ldrb r2, [r6] + ldr r3, _080FBF30 +_080FBF22: + movs r0, #0xff + bl ScriptMovement_StartObjectMovementScript + movs r0, #1 + strh r0, [r4] + b _080FBF52 + .align 2, 0 +_080FBF30: .4byte 0x0856A491 +_080FBF34: + ldr r0, _080FBF58 + bl FlagClear + movs r0, #0x80 + lsls r0, r0, #7 + bl FlagClear + movs r0, #0 + bl SetWarpDestinationToDynamicWarp + bl DoDiveWarp + adds r0, r5, #0 + bl DestroyTask +_080FBF52: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080FBF58: .4byte 0x00004001 + thumb_func_end Task_HandlePorthole + + thumb_func_start sub_080FBF5C +sub_080FBF5C: @ 0x080FBF5C + push {r4, lr} + sub sp, #4 + ldr r1, _080FBFB0 + movs r0, #0 + str r0, [sp] + movs r0, #0x8c + movs r2, #0x70 + movs r3, #0x50 + bl AddPseudoEventObject + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080FBFB4 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r4, r1, r2 + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldr r0, _080FBFB8 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #2 + bne _080FBFBC + movs r0, #4 + bl GetJumpInPlaceMovementAction + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim + b _080FBFCE + .align 2, 0 +_080FBFB0: .4byte 0x08007141 +_080FBFB4: .4byte 0x020205AC +_080FBFB8: .4byte 0x000040B4 +_080FBFBC: + movs r0, #3 + bl GetJumpInPlaceMovementAction + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim +_080FBFCE: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080FBF5C + + thumb_func_start sub_080FBFD8 +sub_080FBFD8: @ 0x080FBFD8 + push {lr} + bl sub_080FBF5C + ldr r2, _080FC008 + ldr r0, _080FC00C + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #1] + movs r2, #0x20 + orrs r1, r2 + strb r1, [r0, #1] + bl pal_fill_black + ldr r0, _080FC010 + movs r1, #0x50 + bl CreateTask + bl ScriptContext2_Enable + pop {r0} + bx r0 + .align 2, 0 +_080FC008: .4byte 0x02036FF0 +_080FC00C: .4byte 0x02037230 +_080FC010: .4byte 0x080FBE59 + thumb_func_end sub_080FBFD8 + + thumb_func_start sub_080FC014 +sub_080FC014: @ 0x080FC014 + push {lr} + ldr r0, _080FC04C + bl FlagSet + ldr r0, _080FC050 + bl FlagSet + movs r0, #0x80 + lsls r0, r0, #7 + bl FlagSet + ldr r0, _080FC054 + ldr r0, [r0] + movs r1, #4 + ldrsb r1, [r0, r1] + movs r2, #5 + ldrsb r2, [r0, r2] + movs r3, #1 + rsbs r3, r3, #0 + movs r0, #0 + bl SetDynamicWarp + bl sub_080FBE0C + bl sub_080AF1B4 + pop {r0} + bx r0 + .align 2, 0 +_080FC04C: .4byte 0x0000088D +_080FC050: .4byte 0x00004001 +_080FC054: .4byte 0x03005AEC + thumb_func_end sub_080FC014 + diff --git a/asm/field_specials.s b/asm/field_specials.s new file mode 100644 index 0000000..420686a --- /dev/null +++ b/asm/field_specials.s @@ -0,0 +1,8665 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start Special_ShowDiploma +Special_ShowDiploma: @ 0x08137D24 + push {lr} + ldr r0, _08137D34 + bl SetMainCallback2 + bl ScriptContext2_Enable + pop {r0} + bx r0 + .align 2, 0 +_08137D34: .4byte 0x08177715 + thumb_func_end Special_ShowDiploma + + thumb_func_start Special_ViewWallClock +Special_ViewWallClock: @ 0x08137D38 + push {lr} + ldr r0, _08137D50 + ldr r1, _08137D54 + str r1, [r0, #8] + ldr r0, _08137D58 + bl SetMainCallback2 + bl ScriptContext2_Enable + pop {r0} + bx r0 + .align 2, 0 +_08137D50: .4byte 0x03002360 +_08137D54: .4byte 0x08085A31 +_08137D58: .4byte 0x08134B8D + thumb_func_end Special_ViewWallClock + + thumb_func_start ResetCyclingRoadChallengeData +ResetCyclingRoadChallengeData: @ 0x08137D5C + ldr r0, _08137D70 + movs r1, #0 + strb r1, [r0] + ldr r0, _08137D74 + strb r1, [r0] + ldr r1, _08137D78 + movs r0, #0 + str r0, [r1] + bx lr + .align 2, 0 +_08137D70: .4byte 0x0203A820 +_08137D74: .4byte 0x0203A821 +_08137D78: .4byte 0x0203A824 + thumb_func_end ResetCyclingRoadChallengeData + + thumb_func_start Special_BeginCyclingRoadChallenge +Special_BeginCyclingRoadChallenge: @ 0x08137D7C + ldr r1, _08137D94 + movs r0, #1 + strb r0, [r1] + ldr r1, _08137D98 + movs r0, #0 + strb r0, [r1] + ldr r1, _08137D9C + ldr r0, _08137DA0 + ldr r0, [r0, #0x20] + str r0, [r1] + bx lr + .align 2, 0 +_08137D94: .4byte 0x0203A820 +_08137D98: .4byte 0x0203A821 +_08137D9C: .4byte 0x0203A824 +_08137DA0: .4byte 0x03002360 + thumb_func_end Special_BeginCyclingRoadChallenge + + thumb_func_start GetPlayerAvatarBike +GetPlayerAvatarBike: @ 0x08137DA4 + push {lr} + movs r0, #4 + bl TestPlayerAvatarFlags + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08137DB6 + movs r0, #1 + b _08137DC8 +_08137DB6: + movs r0, #2 + bl TestPlayerAvatarFlags + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08137DC6 + movs r0, #0 + b _08137DC8 +_08137DC6: + movs r0, #2 +_08137DC8: + pop {r1} + bx r1 + thumb_func_end GetPlayerAvatarBike + + thumb_func_start DetermineCyclingRoadResults +DetermineCyclingRoadResults: @ 0x08137DCC + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + cmp r6, #0x63 + bhi _08137DF8 + ldr r4, _08137DF0 + adds r0, r4, #0 + adds r1, r6, #0 + movs r2, #0 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r1, _08137DF4 + adds r0, r4, #0 + bl StringAppend + b _08137E00 + .align 2, 0 +_08137DF0: .4byte 0x02021C40 +_08137DF4: .4byte 0x085CB025 +_08137DF8: + ldr r0, _08137E4C + ldr r1, _08137E50 + bl StringCopy +_08137E00: + ldr r0, _08137E54 + cmp r7, r0 + bhi _08137E60 + ldr r4, _08137E58 + adds r0, r7, #0 + movs r1, #0x3c + bl __udivsi3 + adds r1, r0, #0 + adds r0, r4, #0 + movs r2, #1 + movs r3, #2 + bl ConvertIntToDecimalStringN + movs r0, #0xb8 + strb r0, [r4, #2] + adds r5, r4, #3 + adds r0, r7, #0 + movs r1, #0x3c + bl __umodsi3 + movs r1, #0x64 + muls r0, r1, r0 + movs r1, #0x3c + bl __udivsi3 + adds r1, r0, #0 + adds r0, r5, #0 + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r1, _08137E5C + adds r0, r4, #0 + bl StringAppend + b _08137E68 + .align 2, 0 +_08137E4C: .4byte 0x02021C40 +_08137E50: .4byte 0x085CB00E +_08137E54: .4byte 0x00000E0F +_08137E58: .4byte 0x02021C54 +_08137E5C: .4byte 0x085CB021 +_08137E60: + ldr r0, _08137E74 + ldr r1, _08137E78 + bl StringCopy +_08137E68: + movs r4, #0 + cmp r6, #0 + bne _08137E7C + movs r4, #5 + b _08137E9A + .align 2, 0 +_08137E74: .4byte 0x02021C54 +_08137E78: .4byte 0x085CB018 +_08137E7C: + cmp r6, #3 + bhi _08137E84 + movs r4, #4 + b _08137E9A +_08137E84: + cmp r6, #9 + bhi _08137E8C + movs r4, #3 + b _08137E9A +_08137E8C: + cmp r6, #0x13 + bhi _08137E94 + movs r4, #2 + b _08137E9A +_08137E94: + cmp r6, #0x63 + bhi _08137E9A + movs r4, #1 +_08137E9A: + adds r0, r7, #0 + movs r1, #0x3c + bl __udivsi3 + cmp r0, #0xa + bhi _08137EAA + adds r0, r4, #5 + b _08137EC8 +_08137EAA: + cmp r0, #0xf + bhi _08137EB2 + adds r0, r4, #4 + b _08137EC8 +_08137EB2: + cmp r0, #0x14 + bhi _08137EBA + adds r0, r4, #3 + b _08137EC8 +_08137EBA: + cmp r0, #0x28 + bhi _08137EC2 + adds r0, r4, #2 + b _08137EC8 +_08137EC2: + cmp r0, #0x3b + bhi _08137ECC + adds r0, r4, #1 +_08137EC8: + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_08137ECC: + ldr r0, _08137ED8 + strh r4, [r0] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08137ED8: .4byte 0x02037290 + thumb_func_end DetermineCyclingRoadResults + + thumb_func_start FinishCyclingRoadChallenge +FinishCyclingRoadChallenge: @ 0x08137EDC + push {r4, r5, lr} + ldr r0, _08137F00 + ldr r1, _08137F04 + ldr r4, [r0, #0x20] + ldr r0, [r1] + subs r4, r4, r0 + ldr r5, _08137F08 + ldrb r1, [r5] + adds r0, r4, #0 + bl DetermineCyclingRoadResults + ldrb r1, [r5] + adds r0, r4, #0 + bl RecordCyclingRoadResults + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08137F00: .4byte 0x03002360 +_08137F04: .4byte 0x0203A824 +_08137F08: .4byte 0x0203A821 + thumb_func_end FinishCyclingRoadChallenge + + thumb_func_start RecordCyclingRoadResults +RecordCyclingRoadResults: @ 0x08137F0C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + ldr r6, _08137F60 + adds r0, r6, #0 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r7, _08137F64 + adds r0, r7, #0 + bl VarGet + lsls r0, r0, #0x10 + adds r4, r4, r0 + cmp r4, r5 + bhi _08137F3C + cmp r4, #0 + bne _08137F56 +_08137F3C: + lsls r1, r5, #0x10 + lsrs r1, r1, #0x10 + adds r0, r6, #0 + bl VarSet + lsrs r1, r5, #0x10 + adds r0, r7, #0 + bl VarSet + ldr r0, _08137F68 + mov r1, r8 + bl VarSet +_08137F56: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08137F60: .4byte 0x00004028 +_08137F64: .4byte 0x00004029 +_08137F68: .4byte 0x00004027 + thumb_func_end RecordCyclingRoadResults + + thumb_func_start GetRecordedCyclingRoadResults +GetRecordedCyclingRoadResults: @ 0x08137F6C + push {r4, lr} + ldr r0, _08137FA0 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r0, _08137FA4 + bl VarGet + lsls r0, r0, #0x10 + adds r4, r4, r0 + cmp r4, #0 + beq _08137FAC + ldr r0, _08137FA8 + bl VarGet + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl DetermineCyclingRoadResults + movs r0, #1 + b _08137FAE + .align 2, 0 +_08137FA0: .4byte 0x00004028 +_08137FA4: .4byte 0x00004029 +_08137FA8: .4byte 0x00004027 +_08137FAC: + movs r0, #0 +_08137FAE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetRecordedCyclingRoadResults + + thumb_func_start UpdateCyclingRoadState +UpdateCyclingRoadState: @ 0x08137FB4 + push {r4, lr} + ldr r0, _08137FF4 + ldrh r1, [r0] + ldr r0, _08137FF8 + cmp r1, r0 + beq _08137FEC + ldr r4, _08137FFC + adds r0, r4, #0 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #2 + beq _08137FDE + adds r0, r4, #0 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #3 + bne _08137FEC +_08137FDE: + adds r0, r4, #0 + movs r1, #0 + bl VarSet + movs r0, #0 + bl Overworld_SetSavedMusic +_08137FEC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08137FF4: .4byte 0x02031F7C +_08137FF8: .4byte 0x00000C1D +_08137FFC: .4byte 0x000040A9 + thumb_func_end UpdateCyclingRoadState + + thumb_func_start SetSSTidalFlag +SetSSTidalFlag: @ 0x08138000 + push {lr} + ldr r0, _08138018 + bl FlagSet + ldr r0, _0813801C + bl GetVarPointer + movs r1, #0 + strh r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_08138018: .4byte 0x0000088D +_0813801C: .4byte 0x0000404A + thumb_func_end SetSSTidalFlag + + thumb_func_start ResetSSTidalFlag +ResetSSTidalFlag: @ 0x08138020 + push {lr} + ldr r0, _0813802C + bl FlagClear + pop {r0} + bx r0 + .align 2, 0 +_0813802C: .4byte 0x0000088D + thumb_func_end ResetSSTidalFlag + + thumb_func_start CountSSTidalStep +CountSSTidalStep: @ 0x08138030 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, _0813805C + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08138056 + ldr r0, _08138060 + bl GetVarPointer + ldrh r1, [r0] + adds r1, r4, r1 + strh r1, [r0] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + cmp r1, #0xcc + bhi _08138064 +_08138056: + movs r0, #0 + b _08138066 + .align 2, 0 +_0813805C: .4byte 0x0000088D +_08138060: .4byte 0x0000404A +_08138064: + movs r0, #1 +_08138066: + pop {r4} + pop {r1} + bx r1 + thumb_func_end CountSSTidalStep + + thumb_func_start GetSSTidalLocation +GetSSTidalLocation: @ 0x0813806C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + adds r5, r1, #0 + adds r6, r2, #0 + adds r7, r3, #0 + ldr r0, _0813809C + bl GetVarPointer + adds r4, r0, #0 + ldr r0, _081380A0 + bl GetVarPointer + ldrh r0, [r0] + subs r0, #1 + cmp r0, #9 + bhi _08138132 + lsls r0, r0, #2 + ldr r1, _081380A4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0813809C: .4byte 0x0000404A +_081380A0: .4byte 0x000040B4 +_081380A4: .4byte 0x081380A8 +_081380A8: @ jump table + .4byte _081380D0 @ case 0 + .4byte _081380E0 @ case 1 + .4byte _081380D4 @ case 2 + .4byte _081380D8 @ case 3 + .4byte _081380D8 @ case 4 + .4byte _081380DC @ case 5 + .4byte _08138108 @ case 6 + .4byte _081380D0 @ case 7 + .4byte _081380D4 @ case 8 + .4byte _081380DC @ case 9 +_081380D0: + movs r0, #1 + b _0813813E +_081380D4: + movs r0, #4 + b _0813813E +_081380D8: + movs r0, #2 + b _0813813E +_081380DC: + movs r0, #3 + b _0813813E +_081380E0: + ldrh r0, [r4] + cmp r0, #0x3b + bhi _081380F0 + movs r0, #0x31 + strb r0, [r5] + ldrh r0, [r4] + adds r0, #0x13 + b _08138130 +_081380F0: + cmp r0, #0x8b + bhi _081380FE + movs r0, #0x30 + strb r0, [r5] + ldrh r0, [r4] + subs r0, #0x3c + b _08138130 +_081380FE: + movs r0, #0x2f + strb r0, [r5] + ldrh r0, [r4] + subs r0, #0x8c + b _08138130 +_08138108: + ldrh r0, [r4] + cmp r0, #0x41 + bhi _08138118 + movs r0, #0x2f + strb r0, [r5] + ldrh r1, [r4] + movs r0, #0x41 + b _0813812E +_08138118: + cmp r0, #0x91 + bhi _08138126 + movs r0, #0x30 + strb r0, [r5] + ldrh r1, [r4] + movs r0, #0x91 + b _0813812E +_08138126: + movs r0, #0x31 + strb r0, [r5] + ldrh r1, [r4] + movs r0, #0xe0 +_0813812E: + subs r0, r0, r1 +_08138130: + strh r0, [r6] +_08138132: + movs r0, #0 + mov r1, r8 + strb r0, [r1] + movs r0, #0x14 + strh r0, [r7] + movs r0, #0 +_0813813E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end GetSSTidalLocation + + thumb_func_start ShouldDoWallyCall +ShouldDoWallyCall: @ 0x08138148 + push {lr} + movs r0, #0x88 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0813817A + ldr r0, _08138180 + ldrb r0, [r0, #0x17] + cmp r0, #1 + blt _0813817A + cmp r0, #3 + ble _08138166 + cmp r0, #6 + bne _0813817A +_08138166: + ldr r0, _08138184 + bl GetVarPointer + ldrh r1, [r0] + adds r1, #1 + strh r1, [r0] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + cmp r1, #0xf9 + bhi _08138188 +_0813817A: + movs r0, #0 + b _0813818A + .align 2, 0 +_08138180: .4byte 0x02036FB8 +_08138184: .4byte 0x000040F2 +_08138188: + movs r0, #1 +_0813818A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ShouldDoWallyCall + + thumb_func_start ShouldDoWinonaCall +ShouldDoWinonaCall: @ 0x08138190 + push {lr} + movs r0, #0x8a + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081381C2 + ldr r0, _081381C8 + ldrb r0, [r0, #0x17] + cmp r0, #1 + blt _081381C2 + cmp r0, #3 + ble _081381AE + cmp r0, #6 + bne _081381C2 +_081381AE: + ldr r0, _081381CC + bl GetVarPointer + ldrh r1, [r0] + adds r1, #1 + strh r1, [r0] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + cmp r1, #9 + bhi _081381D0 +_081381C2: + movs r0, #0 + b _081381D2 + .align 2, 0 +_081381C8: .4byte 0x02036FB8 +_081381CC: .4byte 0x000040F3 +_081381D0: + movs r0, #1 +_081381D2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ShouldDoWinonaCall + + thumb_func_start ShouldDoScottCall +ShouldDoScottCall: @ 0x081381D8 + push {lr} + movs r0, #0x72 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0813820A + ldr r0, _08138210 + ldrb r0, [r0, #0x17] + cmp r0, #1 + blt _0813820A + cmp r0, #3 + ble _081381F6 + cmp r0, #6 + bne _0813820A +_081381F6: + ldr r0, _08138214 + bl GetVarPointer + ldrh r1, [r0] + adds r1, #1 + strh r1, [r0] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + cmp r1, #9 + bhi _08138218 +_0813820A: + movs r0, #0 + b _0813821A + .align 2, 0 +_08138210: .4byte 0x02036FB8 +_08138214: .4byte 0x000040F5 +_08138218: + movs r0, #1 +_0813821A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ShouldDoScottCall + + thumb_func_start ShouldDoRoxanneCall +ShouldDoRoxanneCall: @ 0x08138220 + push {lr} + movs r0, #0x80 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08138252 + ldr r0, _08138258 + ldrb r0, [r0, #0x17] + cmp r0, #1 + blt _08138252 + cmp r0, #3 + ble _0813823E + cmp r0, #6 + bne _08138252 +_0813823E: + ldr r0, _0813825C + bl GetVarPointer + ldrh r1, [r0] + adds r1, #1 + strh r1, [r0] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + cmp r1, #0xf9 + bhi _08138260 +_08138252: + movs r0, #0 + b _08138262 + .align 2, 0 +_08138258: .4byte 0x02036FB8 +_0813825C: .4byte 0x000040F4 +_08138260: + movs r0, #1 +_08138262: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ShouldDoRoxanneCall + + thumb_func_start ShouldDoRivalRayquazaCall +ShouldDoRivalRayquazaCall: @ 0x08138268 + push {lr} + movs r0, #0x75 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0813829A + ldr r0, _081382A0 + ldrb r0, [r0, #0x17] + cmp r0, #1 + blt _0813829A + cmp r0, #3 + ble _08138286 + cmp r0, #6 + bne _0813829A +_08138286: + ldr r0, _081382A4 + bl GetVarPointer + ldrh r1, [r0] + adds r1, #1 + strh r1, [r0] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + cmp r1, #0xf9 + bhi _081382A8 +_0813829A: + movs r0, #0 + b _081382AA + .align 2, 0 +_081382A0: .4byte 0x02036FB8 +_081382A4: .4byte 0x000040F6 +_081382A8: + movs r0, #1 +_081382AA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ShouldDoRivalRayquazaCall + + thumb_func_start GetLinkPartnerNames +GetLinkPartnerNames: @ 0x081382B0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r6, #0 + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r4, #0 + cmp r4, r5 + bhs _081382FA + ldr r0, _08138308 + mov r8, r0 +_081382D2: + cmp r7, r4 + beq _081382F0 + lsls r0, r6, #2 + add r0, r8 + ldr r0, [r0] + lsls r1, r4, #3 + subs r1, r1, r4 + lsls r1, r1, #2 + ldr r2, _0813830C + adds r1, r1, r2 + bl StringCopy + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_081382F0: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r5 + blo _081382D2 +_081382FA: + adds r0, r5, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08138308: .4byte 0x08568BF0 +_0813830C: .4byte 0x020226A8 + thumb_func_end GetLinkPartnerNames + + thumb_func_start SpawnLinkPartnerEventObject +SpawnLinkPartnerEventObject: @ 0x08138310 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + movs r7, #0 + movs r0, #0 + mov sb, r0 + mov r8, r0 + ldr r1, _0813835C + add r0, sp, #8 + movs r2, #4 + bl memcpy + add r4, sp, #0xc + ldr r1, _08138360 + adds r0, r4, #0 + movs r2, #8 + bl memcpy + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + bl GetPlayerFacingDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + cmp r0, #2 + beq _08138380 + cmp r0, #2 + bgt _08138364 + cmp r0, #1 + beq _081383AC + b _081383C0 + .align 2, 0 +_0813835C: .4byte 0x085925A8 +_08138360: .4byte 0x085925AC +_08138364: + cmp r1, #3 + beq _0813836E + cmp r1, #4 + beq _08138394 + b _081383C0 +_0813836E: + movs r7, #2 + ldr r0, _0813837C + ldr r1, [r0] + ldrh r0, [r1] + subs r0, #1 + b _0813839C + .align 2, 0 +_0813837C: .4byte 0x03005AEC +_08138380: + movs r7, #1 + ldr r0, _08138390 + ldr r0, [r0] + ldrh r1, [r0] + mov sb, r1 + ldrh r0, [r0, #2] + subs r0, #1 + b _081383BA + .align 2, 0 +_08138390: .4byte 0x03005AEC +_08138394: + ldr r0, _081383A8 + ldr r1, [r0] + ldrh r0, [r1] + adds r0, #1 +_0813839C: + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + ldrh r1, [r1, #2] + mov r8, r1 + b _081383C0 + .align 2, 0 +_081383A8: .4byte 0x03005AEC +_081383AC: + movs r7, #3 + ldr r0, _081383C4 + ldr r0, [r0] + ldrh r3, [r0] + mov sb, r3 + ldrh r0, [r0, #2] + adds r0, #1 +_081383BA: + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 +_081383C0: + movs r6, #0 + b _08138480 + .align 2, 0 +_081383C4: .4byte 0x03005AEC +_081383C8: + cmp sl, r6 + beq _0813847A + ldr r0, _081383E8 + lsls r2, r6, #3 + subs r1, r2, r6 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r3, [r1] + adds r4, r0, #0 + cmp r3, #1 + blt _081383FC + cmp r3, #2 + ble _081383EC + cmp r3, #3 + beq _081383F8 + b _081383FC + .align 2, 0 +_081383E8: .4byte 0x020226A0 +_081383EC: + ldrb r0, [r1, #0x13] + movs r5, #0xec + cmp r0, #0 + bne _0813840C + movs r5, #0xeb + b _0813840C +_081383F8: + ldrb r0, [r1, #0x13] + b _08138404 +_081383FC: + subs r0, r2, r6 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r0, [r0, #0x13] +_08138404: + movs r5, #0x69 + cmp r0, #0 + bne _0813840C + movs r5, #0x64 +_0813840C: + mov r0, sp + adds r0, r0, r7 + adds r0, #8 + ldrb r1, [r0] + movs r4, #0xf0 + subs r4, r4, r6 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r2, r7, #1 + mov r0, sp + adds r0, r0, r2 + adds r0, #0xc + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + mov r3, sb + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + mov ip, r3 + add r0, ip + adds r3, r0, #7 + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + mov ip, r3 + mov r0, sp + adds r0, #0xd + adds r0, r0, r2 + movs r2, #0 + ldrsb r2, [r0, r2] + mov r3, r8 + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + adds r0, r0, r2 + adds r0, #7 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + adds r0, r5, #0 + adds r2, r4, #0 + mov r3, ip + bl SpawnSpecialEventObjectParameterized + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r6, #0 + bl LoadLinkPartnerEventObjectSpritePalette + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #4 + bne _0813847A + movs r7, #0 +_0813847A: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_08138480: + ldr r0, _08138498 + ldrh r0, [r0] + cmp r6, r0 + blo _081383C8 + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08138498: .4byte 0x02037280 + thumb_func_end SpawnLinkPartnerEventObject + + thumb_func_start LoadLinkPartnerEventObjectSpritePalette +LoadLinkPartnerEventObjectSpritePalette: @ 0x0813849C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + lsls r2, r2, #0x18 + movs r1, #0xc0 + lsls r1, r1, #0x13 + adds r2, r2, r1 + lsrs r5, r2, #0x18 + lsrs r4, r0, #0x18 + movs r2, #0xa8 + lsls r2, r2, #0x15 + adds r0, r0, r2 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _081384C4 + cmp r4, #0x64 + beq _081384C4 + cmp r4, #0x69 + bne _08138556 +_081384C4: + ldr r0, _0813850C + ldr r0, [r0] + ldrb r1, [r0, #5] + ldrb r2, [r0, #4] + adds r0, r3, #0 + bl GetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x10 + beq _08138556 + ldr r1, _08138510 + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #4] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08138514 + adds r1, r1, r0 + lsls r3, r5, #4 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #5] + cmp r4, #0x69 + beq _08138548 + cmp r4, #0x69 + bgt _08138518 + cmp r4, #0x64 + beq _08138534 + b _08138556 + .align 2, 0 +_0813850C: .4byte 0x03005AEC +_08138510: .4byte 0x02036FF0 +_08138514: .4byte 0x020205AC +_08138518: + cmp r4, #0xeb + beq _08138522 + cmp r4, #0xec + beq _0813852C + b _08138556 +_08138522: + ldr r0, _08138528 + b _08138536 + .align 2, 0 +_08138528: .4byte 0x08471E6C +_0813852C: + ldr r0, _08138530 + b _08138536 + .align 2, 0 +_08138530: .4byte 0x0847D90C +_08138534: + ldr r0, _08138544 +_08138536: + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r3, r2 + movs r2, #0x20 + bl LoadPalette + b _08138556 + .align 2, 0 +_08138544: .4byte 0x08470C4C +_08138548: + ldr r0, _0813855C + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r3, r2 + movs r2, #0x20 + bl LoadPalette +_08138556: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0813855C: .4byte 0x0847C6CC + thumb_func_end LoadLinkPartnerEventObjectSpritePalette + + thumb_func_start MauvilleGymSpecial1 +MauvilleGymSpecial1: @ 0x08138560 + push {r4, r5, lr} + movs r4, #0 + ldr r5, _08138580 +_08138566: + ldr r0, _08138584 + ldrh r0, [r0] + cmp r4, r0 + bne _0813858C + lsls r1, r4, #2 + adds r1, r1, r5 + ldrb r0, [r1] + ldrb r1, [r1, #1] + ldr r2, _08138588 + bl MapGridSetMetatileIdAt + b _0813859A + .align 2, 0 +_08138580: .4byte 0x085925B4 +_08138584: .4byte 0x02037280 +_08138588: .4byte 0x00000206 +_0813858C: + lsls r1, r4, #2 + adds r1, r1, r5 + ldrb r0, [r1] + ldrb r1, [r1, #1] + ldr r2, _081385AC + bl MapGridSetMetatileIdAt +_0813859A: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _08138566 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081385AC: .4byte 0x00000205 + thumb_func_end MauvilleGymSpecial1 + + thumb_func_start MauvilleGymSpecial2 +MauvilleGymSpecial2: @ 0x081385B0 + push {r4, r5, r6, lr} + movs r5, #0xc +_081385B4: + movs r4, #7 + adds r6, r5, #1 +_081385B8: + adds r0, r4, #0 + adds r1, r5, #0 + bl MapGridGetMetatileIdAt + ldr r1, _081385D4 + adds r0, r0, r1 + cmp r0, #0x37 + bls _081385CA + b _081387A4 +_081385CA: + lsls r0, r0, #2 + ldr r1, _081385D8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081385D4: .4byte 0xFFFFFDE6 +_081385D8: .4byte 0x081385DC +_081385DC: @ jump table + .4byte _08138762 @ case 0 + .4byte _081387A4 @ case 1 + .4byte _081387A4 @ case 2 + .4byte _081387A4 @ case 3 + .4byte _081387A4 @ case 4 + .4byte _081387A4 @ case 5 + .4byte _081386BC @ case 6 + .4byte _081386C2 @ case 7 + .4byte _081386FC @ case 8 + .4byte _08138704 @ case 9 + .4byte _081387A4 @ case 10 + .4byte _081387A4 @ case 11 + .4byte _081387A4 @ case 12 + .4byte _081387A4 @ case 13 + .4byte _081386CC @ case 14 + .4byte _081386D2 @ case 15 + .4byte _0813870C @ case 16 + .4byte _08138714 @ case 17 + .4byte _081387A4 @ case 18 + .4byte _081387A4 @ case 19 + .4byte _081387A4 @ case 20 + .4byte _081387A4 @ case 21 + .4byte _081386DC @ case 22 + .4byte _081386E2 @ case 23 + .4byte _0813871C @ case 24 + .4byte _08138724 @ case 25 + .4byte _081387A4 @ case 26 + .4byte _081387A4 @ case 27 + .4byte _081387A4 @ case 28 + .4byte _081387A4 @ case 29 + .4byte _081386EC @ case 30 + .4byte _081386F4 @ case 31 + .4byte _0813872C @ case 32 + .4byte _08138734 @ case 33 + .4byte _081387A4 @ case 34 + .4byte _081387A4 @ case 35 + .4byte _081387A4 @ case 36 + .4byte _081387A4 @ case 37 + .4byte _0813873C @ case 38 + .4byte _0813874C @ case 39 + .4byte _0813875C @ case 40 + .4byte _08138784 @ case 41 + .4byte _081387A4 @ case 42 + .4byte _081387A4 @ case 43 + .4byte _081387A4 @ case 44 + .4byte _081387A4 @ case 45 + .4byte _08138744 @ case 46 + .4byte _08138754 @ case 47 + .4byte _081387A4 @ case 48 + .4byte _081387A4 @ case 49 + .4byte _081387A4 @ case 50 + .4byte _081387A4 @ case 51 + .4byte _081387A4 @ case 52 + .4byte _081387A4 @ case 53 + .4byte _0813879A @ case 54 + .4byte _0813878C @ case 55 +_081386BC: + movs r2, #0x8c + lsls r2, r2, #2 + b _08138790 +_081386C2: + ldr r2, _081386C8 + b _08138790 + .align 2, 0 +_081386C8: .4byte 0x00000231 +_081386CC: + movs r2, #0x8e + lsls r2, r2, #2 + b _08138790 +_081386D2: + ldr r2, _081386D8 + b _08138790 + .align 2, 0 +_081386D8: .4byte 0x00000239 +_081386DC: + movs r2, #0x88 + lsls r2, r2, #2 + b _08138790 +_081386E2: + ldr r2, _081386E8 + b _08138790 + .align 2, 0 +_081386E8: .4byte 0x00000221 +_081386EC: + ldr r2, _081386F0 + b _08138790 + .align 2, 0 +_081386F0: .4byte 0x00000E28 +_081386F4: + ldr r2, _081386F8 + b _08138790 + .align 2, 0 +_081386F8: .4byte 0x00000E29 +_081386FC: + ldr r2, _08138700 + b _08138790 + .align 2, 0 +_08138700: .4byte 0x00000232 +_08138704: + ldr r2, _08138708 + b _08138790 + .align 2, 0 +_08138708: .4byte 0x00000233 +_0813870C: + ldr r2, _08138710 + b _08138790 + .align 2, 0 +_08138710: .4byte 0x0000023A +_08138714: + ldr r2, _08138718 + b _08138790 + .align 2, 0 +_08138718: .4byte 0x0000023B +_0813871C: + ldr r2, _08138720 + b _08138790 + .align 2, 0 +_08138720: .4byte 0x00000222 +_08138724: + ldr r2, _08138728 + b _08138790 + .align 2, 0 +_08138728: .4byte 0x00000223 +_0813872C: + ldr r2, _08138730 + b _08138790 + .align 2, 0 +_08138730: .4byte 0x00000E2A +_08138734: + ldr r2, _08138738 + b _08138790 + .align 2, 0 +_08138738: .4byte 0x00000E2B +_0813873C: + ldr r2, _08138740 + b _08138790 + .align 2, 0 +_08138740: .4byte 0x00000E42 +_08138744: + ldr r2, _08138748 + b _08138790 + .align 2, 0 +_08138748: .4byte 0x0000021A +_0813874C: + ldr r2, _08138750 + b _08138790 + .align 2, 0 +_08138750: .4byte 0x00000E43 +_08138754: + ldr r2, _08138758 + b _08138790 + .align 2, 0 +_08138758: .4byte 0x0000021A +_0813875C: + movs r2, #0xe4 + lsls r2, r2, #4 + b _08138790 +_08138762: + subs r1, r5, #1 + adds r0, r4, #0 + bl MapGridGetMetatileIdAt + movs r1, #0x90 + lsls r1, r1, #2 + cmp r0, r1 + bne _0813877C + ldr r2, _08138778 + b _08138790 + .align 2, 0 +_08138778: .4byte 0x00000E48 +_0813877C: + ldr r2, _08138780 + b _08138790 + .align 2, 0 +_08138780: .4byte 0x00000E49 +_08138784: + ldr r2, _08138788 + b _08138790 + .align 2, 0 +_08138788: .4byte 0x00000E41 +_0813878C: + movs r2, #0xe5 + lsls r2, r2, #4 +_08138790: + adds r0, r4, #0 + adds r1, r5, #0 + bl MapGridSetMetatileIdAt + b _081387A4 +_0813879A: + ldr r2, _081387BC + adds r0, r4, #0 + adds r1, r5, #0 + bl MapGridSetMetatileIdAt +_081387A4: + adds r4, #1 + cmp r4, #0xf + bgt _081387AC + b _081385B8 +_081387AC: + adds r5, r6, #0 + cmp r5, #0x17 + bgt _081387B4 + b _081385B4 +_081387B4: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081387BC: .4byte 0x00000251 + thumb_func_end MauvilleGymSpecial2 + + thumb_func_start MauvilleGymSpecial3 +MauvilleGymSpecial3: @ 0x081387C0 + push {r4, r5, r6, lr} + ldr r4, _081387FC + movs r5, #3 +_081387C6: + ldrb r0, [r4] + ldrb r1, [r4, #1] + ldr r2, _08138800 + bl MapGridSetMetatileIdAt + adds r4, #4 + subs r5, #1 + cmp r5, #0 + bge _081387C6 + movs r5, #0xc +_081387DA: + movs r4, #7 + adds r6, r5, #1 +_081387DE: + adds r0, r4, #0 + adds r1, r5, #0 + bl MapGridGetMetatileIdAt + ldr r1, _08138804 + adds r0, r0, r1 + cmp r0, #0x30 + bls _081387F0 + b _0813893A +_081387F0: + lsls r0, r0, #2 + ldr r1, _08138808 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081387FC: .4byte 0x085925B4 +_08138800: .4byte 0x00000206 +_08138804: .4byte 0xFFFFFDE0 +_08138808: .4byte 0x0813880C +_0813880C: @ jump table + .4byte _081388D0 @ case 0 + .4byte _081388D6 @ case 1 + .4byte _081388F0 @ case 2 + .4byte _081388F8 @ case 3 + .4byte _0813893A @ case 4 + .4byte _0813893A @ case 5 + .4byte _0813893A @ case 6 + .4byte _0813893A @ case 7 + .4byte _081388E0 @ case 8 + .4byte _081388E6 @ case 9 + .4byte _08138900 @ case 10 + .4byte _08138908 @ case 11 + .4byte _0813893A @ case 12 + .4byte _0813893A @ case 13 + .4byte _0813893A @ case 14 + .4byte _0813893A @ case 15 + .4byte _0813893A @ case 16 + .4byte _0813893A @ case 17 + .4byte _0813893A @ case 18 + .4byte _0813893A @ case 19 + .4byte _0813893A @ case 20 + .4byte _0813893A @ case 21 + .4byte _0813893A @ case 22 + .4byte _0813893A @ case 23 + .4byte _0813893A @ case 24 + .4byte _0813893A @ case 25 + .4byte _0813893A @ case 26 + .4byte _0813893A @ case 27 + .4byte _0813893A @ case 28 + .4byte _0813893A @ case 29 + .4byte _0813893A @ case 30 + .4byte _0813893A @ case 31 + .4byte _08138910 @ case 32 + .4byte _08138918 @ case 33 + .4byte _0813893A @ case 34 + .4byte _0813893A @ case 35 + .4byte _0813893A @ case 36 + .4byte _0813893A @ case 37 + .4byte _0813893A @ case 38 + .4byte _0813893A @ case 39 + .4byte _08138920 @ case 40 + .4byte _08138920 @ case 41 + .4byte _0813893A @ case 42 + .4byte _0813893A @ case 43 + .4byte _0813893A @ case 44 + .4byte _0813893A @ case 45 + .4byte _0813893A @ case 46 + .4byte _0813893A @ case 47 + .4byte _08138930 @ case 48 +_081388D0: + movs r2, #0x8c + lsls r2, r2, #2 + b _08138922 +_081388D6: + ldr r2, _081388DC + b _08138922 + .align 2, 0 +_081388DC: .4byte 0x00000231 +_081388E0: + movs r2, #0x8e + lsls r2, r2, #2 + b _08138922 +_081388E6: + ldr r2, _081388EC + b _08138922 + .align 2, 0 +_081388EC: .4byte 0x00000239 +_081388F0: + ldr r2, _081388F4 + b _08138922 + .align 2, 0 +_081388F4: .4byte 0x00000232 +_081388F8: + ldr r2, _081388FC + b _08138922 + .align 2, 0 +_081388FC: .4byte 0x00000233 +_08138900: + ldr r2, _08138904 + b _08138922 + .align 2, 0 +_08138904: .4byte 0x0000023A +_08138908: + ldr r2, _0813890C + b _08138922 + .align 2, 0 +_0813890C: .4byte 0x0000023B +_08138910: + ldr r2, _08138914 + b _08138922 + .align 2, 0 +_08138914: .4byte 0x00000E42 +_08138918: + ldr r2, _0813891C + b _08138922 + .align 2, 0 +_0813891C: .4byte 0x00000E43 +_08138920: + ldr r2, _0813892C +_08138922: + adds r0, r4, #0 + adds r1, r5, #0 + bl MapGridSetMetatileIdAt + b _0813893A + .align 2, 0 +_0813892C: .4byte 0x0000021A +_08138930: + ldr r2, _08138950 + adds r0, r4, #0 + adds r1, r5, #0 + bl MapGridSetMetatileIdAt +_0813893A: + adds r4, #1 + cmp r4, #0xf + bgt _08138942 + b _081387DE +_08138942: + adds r5, r6, #0 + cmp r5, #0x17 + bgt _0813894A + b _081387DA +_0813894A: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08138950: .4byte 0x00000251 + thumb_func_end MauvilleGymSpecial3 + + thumb_func_start PetalburgGymSpecial1 +PetalburgGymSpecial1: @ 0x08138954 + push {lr} + ldr r0, _08138974 + movs r1, #0 + strb r1, [r0] + ldr r0, _08138978 + strb r1, [r0] + movs r0, #0x2c + bl PlaySE + ldr r0, _0813897C + movs r1, #8 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_08138974: .4byte 0x0203A828 +_08138978: .4byte 0x0203A829 +_0813897C: .4byte 0x08138981 + thumb_func_end PetalburgGymSpecial1 + + thumb_func_start Task_PetalburgGym +Task_PetalburgGym: @ 0x08138980 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _081389C8 + ldr r5, _081389CC + ldrb r1, [r5] + adds r0, r1, r0 + ldr r4, _081389D0 + ldrb r2, [r4] + ldrb r0, [r0] + cmp r0, r2 + bne _081389DC + ldr r0, _081389D4 + ldrb r0, [r0] + ldr r2, _081389D8 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r1, [r1] + bl PetalburgGymFunc + movs r0, #0 + strb r0, [r4] + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + bne _081389E0 + adds r0, r6, #0 + bl DestroyTask + bl EnableBothScriptContexts + b _081389E0 + .align 2, 0 +_081389C8: .4byte 0x085925C4 +_081389CC: .4byte 0x0203A829 +_081389D0: .4byte 0x0203A828 +_081389D4: .4byte 0x02037280 +_081389D8: .4byte 0x085925CA +_081389DC: + adds r0, r2, #1 + strb r0, [r4] +_081389E0: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Task_PetalburgGym + + thumb_func_start PetalburgGymFunc +PetalburgGymFunc: @ 0x081389E8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r2, r1, #0x10 + movs r7, #0 + subs r0, #1 + cmp r0, #7 + bhi _08138AB0 + lsls r0, r0, #2 + ldr r1, _08138A0C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08138A0C: .4byte 0x08138A10 +_08138A10: @ jump table + .4byte _08138A30 @ case 0 + .4byte _08138A42 @ case 1 + .4byte _08138A54 @ case 2 + .4byte _08138A66 @ case 3 + .4byte _08138A74 @ case 4 + .4byte _08138A8A @ case 5 + .4byte _08138A96 @ case 6 + .4byte _08138AA4 @ case 7 +_08138A30: + movs r7, #2 + mov r1, sp + movs r0, #1 + strh r0, [r1] + movs r0, #7 + strh r0, [r1, #2] + add r1, sp, #8 + movs r0, #0x68 + b _08138A84 +_08138A42: + movs r7, #2 + mov r1, sp + movs r0, #1 + strh r0, [r1] + movs r0, #7 + strh r0, [r1, #2] + add r1, sp, #8 + movs r0, #0x4e + b _08138A84 +_08138A54: + movs r7, #2 + mov r1, sp + movs r0, #1 + strh r0, [r1] + movs r0, #7 + strh r0, [r1, #2] + add r1, sp, #8 + movs r0, #0x5b + b _08138A84 +_08138A66: + movs r7, #1 + mov r1, sp + movs r0, #7 + strh r0, [r1] + add r1, sp, #8 + movs r0, #0x27 + b _08138AAE +_08138A74: + movs r7, #2 + mov r1, sp + movs r0, #1 + strh r0, [r1] + movs r0, #7 + strh r0, [r1, #2] + add r1, sp, #8 + movs r0, #0x34 +_08138A84: + strh r0, [r1] + strh r0, [r1, #2] + b _08138AB0 +_08138A8A: + movs r7, #1 + mov r0, sp + strh r7, [r0] + add r1, sp, #8 + movs r0, #0x41 + b _08138AAE +_08138A96: + movs r7, #1 + mov r1, sp + movs r0, #7 + strh r0, [r1] + add r1, sp, #8 + movs r0, #0xd + b _08138AAE +_08138AA4: + movs r7, #1 + mov r0, sp + strh r7, [r0] + add r1, sp, #8 + movs r0, #0x1a +_08138AAE: + strh r0, [r1] +_08138AB0: + movs r6, #0 + cmp r6, r7 + bhs _08138B02 + movs r1, #0xc0 + lsls r1, r1, #4 + adds r0, r1, #0 + adds r1, r2, #0 + orrs r1, r0 + lsls r1, r1, #0x10 + mov sb, r1 + adds r1, r2, #0 + adds r1, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + mov r8, r1 +_08138ACE: + lsls r1, r6, #1 + mov r3, sp + adds r5, r3, r1 + ldrh r0, [r5] + adds r0, #7 + add r4, sp, #8 + adds r4, r4, r1 + ldrh r1, [r4] + adds r1, #7 + mov r3, sb + lsrs r2, r3, #0x10 + bl MapGridSetMetatileIdAt + ldrh r0, [r5] + adds r0, #7 + ldrh r1, [r4] + adds r1, #8 + mov r3, r8 + lsrs r2, r3, #0x10 + bl MapGridSetMetatileIdAt + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, r7 + blo _08138ACE +_08138B02: + bl DrawWholeMapView + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end PetalburgGymFunc + + thumb_func_start PetalburgGymSpecial2 +PetalburgGymSpecial2: @ 0x08138B14 + push {lr} + ldr r0, _08138B28 + ldrb r0, [r0] + ldr r1, _08138B2C + ldrh r1, [r1, #8] + bl PetalburgGymFunc + pop {r0} + bx r0 + .align 2, 0 +_08138B28: .4byte 0x02037280 +_08138B2C: .4byte 0x085925CA + thumb_func_end PetalburgGymSpecial2 + + thumb_func_start ShowFieldMessageStringVar4 +ShowFieldMessageStringVar4: @ 0x08138B30 + push {lr} + ldr r0, _08138B3C + bl ShowFieldMessage + pop {r0} + bx r0 + .align 2, 0 +_08138B3C: .4byte 0x02021C7C + thumb_func_end ShowFieldMessageStringVar4 + + thumb_func_start StorePlayerCoordsInVars +StorePlayerCoordsInVars: @ 0x08138B40 + ldr r1, _08138B54 + ldr r0, _08138B58 + ldr r2, [r0] + ldrh r0, [r2] + strh r0, [r1] + ldr r1, _08138B5C + ldrh r0, [r2, #2] + strh r0, [r1] + bx lr + .align 2, 0 +_08138B54: .4byte 0x02037280 +_08138B58: .4byte 0x03005AEC +_08138B5C: .4byte 0x02037282 + thumb_func_end StorePlayerCoordsInVars + + thumb_func_start GetPlayerTrainerIdOnesDigit +GetPlayerTrainerIdOnesDigit: @ 0x08138B60 + push {lr} + ldr r0, _08138B7C + ldr r0, [r0] + ldrb r1, [r0, #0xb] + lsls r1, r1, #8 + ldrb r0, [r0, #0xa] + orrs r0, r1 + movs r1, #0xa + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_08138B7C: .4byte 0x03005AF0 + thumb_func_end GetPlayerTrainerIdOnesDigit + + thumb_func_start GetPlayerBigGuyGirlString +GetPlayerBigGuyGirlString: @ 0x08138B80 + push {lr} + ldr r0, _08138B98 + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #0 + bne _08138BA4 + ldr r0, _08138B9C + ldr r1, _08138BA0 + bl StringCopy + b _08138BAC + .align 2, 0 +_08138B98: .4byte 0x03005AF0 +_08138B9C: .4byte 0x02021C40 +_08138BA0: .4byte 0x085CB02A +_08138BA4: + ldr r0, _08138BB0 + ldr r1, _08138BB4 + bl StringCopy +_08138BAC: + pop {r0} + bx r0 + .align 2, 0 +_08138BB0: .4byte 0x02021C40 +_08138BB4: .4byte 0x085CB031 + thumb_func_end GetPlayerBigGuyGirlString + + thumb_func_start GetRivalSonDaughterString +GetRivalSonDaughterString: @ 0x08138BB8 + push {lr} + ldr r0, _08138BD0 + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #0 + bne _08138BDC + ldr r0, _08138BD4 + ldr r1, _08138BD8 + bl StringCopy + b _08138BE4 + .align 2, 0 +_08138BD0: .4byte 0x03005AF0 +_08138BD4: .4byte 0x02021C40 +_08138BD8: .4byte 0x085CB03C +_08138BDC: + ldr r0, _08138BE8 + ldr r1, _08138BEC + bl StringCopy +_08138BE4: + pop {r0} + bx r0 + .align 2, 0 +_08138BE8: .4byte 0x02021C40 +_08138BEC: .4byte 0x085CB038 + thumb_func_end GetRivalSonDaughterString + + thumb_func_start GetBattleOutcome +GetBattleOutcome: @ 0x08138BF0 + ldr r0, _08138BF8 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08138BF8: .4byte 0x02023FDE + thumb_func_end GetBattleOutcome + + thumb_func_start CableCarWarp +CableCarWarp: @ 0x08138BFC + push {lr} + sub sp, #4 + ldr r0, _08138C1C + ldrh r0, [r0] + cmp r0, #0 + beq _08138C20 + movs r2, #1 + rsbs r2, r2, #0 + movs r0, #4 + str r0, [sp] + movs r0, #0x13 + movs r1, #0 + movs r3, #6 + bl SetWarpDestination + b _08138C32 + .align 2, 0 +_08138C1C: .4byte 0x02037280 +_08138C20: + movs r2, #1 + rsbs r2, r2, #0 + movs r0, #4 + str r0, [sp] + movs r0, #0x13 + movs r1, #1 + movs r3, #6 + bl SetWarpDestination +_08138C32: + add sp, #4 + pop {r0} + bx r0 + thumb_func_end CableCarWarp + + thumb_func_start SetFlagInVar +SetFlagInVar: @ 0x08138C38 + push {lr} + ldr r0, _08138C48 + ldrh r0, [r0] + bl FlagSet + pop {r0} + bx r0 + .align 2, 0 +_08138C48: .4byte 0x02037280 + thumb_func_end SetFlagInVar + + thumb_func_start GetWeekCount +GetWeekCount: @ 0x08138C4C + push {lr} + ldr r0, _08138C6C + movs r1, #0 + ldrsh r0, [r0, r1] + movs r1, #7 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _08138C70 + cmp r0, r1 + bls _08138C66 + adds r0, r1, #0 +_08138C66: + pop {r1} + bx r1 + .align 2, 0 +_08138C6C: .4byte 0x03005A50 +_08138C70: .4byte 0x0000270F + thumb_func_end GetWeekCount + + thumb_func_start GetLeadMonFriendshipScore +GetLeadMonFriendshipScore: @ 0x08138C74 + push {r4, lr} + bl GetLeadMonIndex + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x64 + muls r1, r0, r1 + ldr r0, _08138C98 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0x20 + bl GetMonData + cmp r0, #0xff + bne _08138C9C + movs r0, #6 + b _08138CEE + .align 2, 0 +_08138C98: .4byte 0x02024190 +_08138C9C: + adds r0, r4, #0 + movs r1, #0x20 + bl GetMonData + cmp r0, #0xc7 + bls _08138CAC + movs r0, #5 + b _08138CEE +_08138CAC: + adds r0, r4, #0 + movs r1, #0x20 + bl GetMonData + cmp r0, #0x95 + bls _08138CBC + movs r0, #4 + b _08138CEE +_08138CBC: + adds r0, r4, #0 + movs r1, #0x20 + bl GetMonData + cmp r0, #0x63 + bls _08138CCC + movs r0, #3 + b _08138CEE +_08138CCC: + adds r0, r4, #0 + movs r1, #0x20 + bl GetMonData + cmp r0, #0x31 + bls _08138CDC + movs r0, #2 + b _08138CEE +_08138CDC: + adds r0, r4, #0 + movs r1, #0x20 + bl GetMonData + cmp r0, #0 + bne _08138CEC + movs r0, #0 + b _08138CEE +_08138CEC: + movs r0, #1 +_08138CEE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetLeadMonFriendshipScore + + thumb_func_start CB2_FieldShowRegionMap +CB2_FieldShowRegionMap: @ 0x08138CF4 + push {lr} + ldr r0, _08138D00 + bl FieldInitRegionMap + pop {r0} + bx r0 + .align 2, 0 +_08138D00: .4byte 0x08085B35 + thumb_func_end CB2_FieldShowRegionMap + + thumb_func_start FieldShowRegionMap +FieldShowRegionMap: @ 0x08138D04 + push {lr} + ldr r0, _08138D10 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_08138D10: .4byte 0x08138CF5 + thumb_func_end FieldShowRegionMap + + thumb_func_start DoLotteryCornerComputerEffect +DoLotteryCornerComputerEffect: @ 0x08138D14 + push {r4, lr} + ldr r4, _08138D50 + adds r0, r4, #0 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08138D48 + adds r0, r4, #0 + movs r1, #8 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08138D54 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r2, #0 + strh r2, [r1, #8] + strh r0, [r1, #0xa] + strh r2, [r1, #0xc] + strh r2, [r1, #0xe] + strh r2, [r1, #0x10] +_08138D48: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08138D50: .4byte 0x08138D59 +_08138D54: .4byte 0x03005B60 + thumb_func_end DoLotteryCornerComputerEffect + + thumb_func_start Task_PCTurnOnEffect +Task_PCTurnOnEffect: @ 0x08138D58 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _08138D7C + adds r1, r1, r0 + movs r2, #8 + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _08138D76 + adds r0, r1, #0 + bl PCTurnOnEffect_0 +_08138D76: + pop {r0} + bx r0 + .align 2, 0 +_08138D7C: .4byte 0x03005B60 + thumb_func_end Task_PCTurnOnEffect + + thumb_func_start PCTurnOnEffect_0 +PCTurnOnEffect_0: @ 0x08138D80 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r6, #0 + movs r5, #0 + movs r1, #0xe + ldrsh r0, [r4, r1] + cmp r0, #6 + bne _08138DEC + strh r5, [r4, #0xe] + bl GetPlayerFacingDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + cmp r0, #3 + beq _08138DB4 + cmp r0, #3 + bgt _08138DAA + cmp r0, #2 + beq _08138DB0 + b _08138DBC +_08138DAA: + cmp r1, #4 + beq _08138DB8 + b _08138DBC +_08138DB0: + movs r6, #0 + b _08138DBA +_08138DB4: + movs r6, #0xff + b _08138DBA +_08138DB8: + movs r6, #1 +_08138DBA: + movs r5, #0xff +_08138DBC: + movs r1, #0x10 + ldrsh r0, [r4, r1] + lsls r1, r6, #0x18 + asrs r1, r1, #0x18 + lsls r2, r5, #0x18 + asrs r2, r2, #0x18 + bl PCTurnOnEffect_1 + bl DrawWholeMapView + ldrh r0, [r4, #0x10] + movs r1, #1 + eors r0, r1 + strh r0, [r4, #0x10] + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #5 + bne _08138DEC + ldrb r0, [r4, #0xa] + bl DestroyTask +_08138DEC: + ldrh r0, [r4, #0xe] + adds r0, #1 + strh r0, [r4, #0xe] + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end PCTurnOnEffect_0 + + thumb_func_start PCTurnOnEffect_1 +PCTurnOnEffect_1: @ 0x08138DF8 + push {r4, r5, lr} + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r4, r2, #0x18 + movs r3, #0 + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08138E34 + ldr r0, _08138E18 + ldrh r0, [r0] + cmp r0, #0 + bne _08138E1C + movs r3, #4 + b _08138E56 + .align 2, 0 +_08138E18: .4byte 0x02037280 +_08138E1C: + cmp r0, #1 + bne _08138E28 + ldr r3, _08138E24 + b _08138E56 + .align 2, 0 +_08138E24: .4byte 0x0000025A +_08138E28: + cmp r0, #2 + bne _08138E56 + ldr r3, _08138E30 + b _08138E56 + .align 2, 0 +_08138E30: .4byte 0x00000259 +_08138E34: + ldr r0, _08138E40 + ldrh r0, [r0] + cmp r0, #0 + bne _08138E44 + movs r3, #5 + b _08138E56 + .align 2, 0 +_08138E40: .4byte 0x02037280 +_08138E44: + cmp r0, #1 + bne _08138E50 + ldr r3, _08138E4C + b _08138E56 + .align 2, 0 +_08138E4C: .4byte 0x0000027F +_08138E50: + cmp r0, #2 + bne _08138E56 + ldr r3, _08138E88 +_08138E56: + ldr r0, _08138E8C + ldr r2, [r0] + movs r5, #0 + ldrsh r0, [r2, r5] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + adds r0, #7 + movs r5, #2 + ldrsh r1, [r2, r5] + lsls r2, r4, #0x18 + asrs r2, r2, #0x18 + adds r1, r1, r2 + adds r1, #7 + movs r4, #0xc0 + lsls r4, r4, #4 + adds r2, r4, #0 + orrs r3, r2 + adds r2, r3, #0 + bl MapGridSetMetatileIdAt + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08138E88: .4byte 0x0000027E +_08138E8C: .4byte 0x03005AEC + thumb_func_end PCTurnOnEffect_1 + + thumb_func_start DoPCTurnOffEffect +DoPCTurnOffEffect: @ 0x08138E90 + push {lr} + bl PCTurnOffEffect + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end DoPCTurnOffEffect + + thumb_func_start PCTurnOffEffect +PCTurnOffEffect: @ 0x08138E9C + push {r4, r5, r6, lr} + movs r6, #0 + movs r5, #0 + movs r4, #0 + bl GetPlayerFacingDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + cmp r0, #3 + beq _08138EC6 + cmp r0, #3 + bgt _08138EBC + cmp r0, #2 + beq _08138EC2 + b _08138ECE +_08138EBC: + cmp r1, #4 + beq _08138ECA + b _08138ECE +_08138EC2: + movs r6, #0 + b _08138ECC +_08138EC6: + movs r6, #0xff + b _08138ECC +_08138ECA: + movs r6, #1 +_08138ECC: + movs r5, #0xff +_08138ECE: + ldr r0, _08138EDC + ldrh r0, [r0] + cmp r0, #0 + bne _08138EE0 + movs r4, #4 + b _08138EF2 + .align 2, 0 +_08138EDC: .4byte 0x02037280 +_08138EE0: + cmp r0, #1 + bne _08138EEC + ldr r4, _08138EE8 + b _08138EF2 + .align 2, 0 +_08138EE8: .4byte 0x0000025A +_08138EEC: + cmp r0, #2 + bne _08138EF2 + ldr r4, _08138F28 +_08138EF2: + ldr r0, _08138F2C + ldr r2, [r0] + movs r1, #0 + ldrsh r0, [r2, r1] + lsls r1, r6, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + adds r0, #7 + movs r3, #2 + ldrsh r1, [r2, r3] + lsls r2, r5, #0x18 + asrs r2, r2, #0x18 + adds r1, r1, r2 + adds r1, #7 + movs r3, #0xc0 + lsls r3, r3, #4 + adds r2, r3, #0 + orrs r4, r2 + adds r2, r4, #0 + bl MapGridSetMetatileIdAt + bl DrawWholeMapView + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08138F28: .4byte 0x00000259 +_08138F2C: .4byte 0x03005AEC + thumb_func_end PCTurnOffEffect + + thumb_func_start DoPCTurnOnEffect +DoPCTurnOnEffect: @ 0x08138F30 + push {r4, lr} + ldr r4, _08138F6C + adds r0, r4, #0 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08138F64 + adds r0, r4, #0 + movs r1, #8 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08138F70 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r2, #0 + strh r2, [r1, #8] + strh r0, [r1, #0xa] + strh r2, [r1, #0xc] + strh r2, [r1, #0xe] + strh r2, [r1, #0x10] +_08138F64: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08138F6C: .4byte 0x08138F75 +_08138F70: .4byte 0x03005B60 + thumb_func_end DoPCTurnOnEffect + + thumb_func_start Task_LotteryCornerComputerEffect +Task_LotteryCornerComputerEffect: @ 0x08138F74 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _08138F98 + adds r1, r1, r0 + movs r2, #8 + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _08138F92 + adds r0, r1, #0 + bl LotteryCornerComputerEffect +_08138F92: + pop {r0} + bx r0 + .align 2, 0 +_08138F98: .4byte 0x03005B60 + thumb_func_end Task_LotteryCornerComputerEffect + + thumb_func_start LotteryCornerComputerEffect +LotteryCornerComputerEffect: @ 0x08138F9C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xe + ldrsh r0, [r4, r1] + cmp r0, #6 + bne _0813900A + movs r0, #0 + strh r0, [r4, #0xe] + movs r1, #0x10 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _08138FD4 + ldr r2, _08138FCC + movs r0, #0x12 + movs r1, #8 + bl MapGridSetMetatileIdAt + ldr r2, _08138FD0 + movs r0, #0x12 + movs r1, #9 + bl MapGridSetMetatileIdAt + b _08138FEA + .align 2, 0 +_08138FCC: .4byte 0x00000E9D +_08138FD0: .4byte 0x00000EA5 +_08138FD4: + ldr r2, _08139018 + movs r0, #0x12 + movs r1, #8 + bl MapGridSetMetatileIdAt + movs r2, #0xe6 + lsls r2, r2, #4 + movs r0, #0x12 + movs r1, #9 + bl MapGridSetMetatileIdAt +_08138FEA: + bl DrawWholeMapView + ldrh r0, [r4, #0x10] + movs r1, #1 + eors r0, r1 + strh r0, [r4, #0x10] + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #5 + bne _0813900A + ldrb r0, [r4, #0xa] + bl DestroyTask +_0813900A: + ldrh r0, [r4, #0xe] + adds r0, #1 + strh r0, [r4, #0xe] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08139018: .4byte 0x00000E58 + thumb_func_end LotteryCornerComputerEffect + + thumb_func_start EndLotteryCornerComputerEffect +EndLotteryCornerComputerEffect: @ 0x0813901C + push {lr} + ldr r2, _0813903C + movs r0, #0x12 + movs r1, #8 + bl MapGridSetMetatileIdAt + ldr r2, _08139040 + movs r0, #0x12 + movs r1, #9 + bl MapGridSetMetatileIdAt + bl DrawWholeMapView + pop {r0} + bx r0 + .align 2, 0 +_0813903C: .4byte 0x00000E9D +_08139040: .4byte 0x00000EA5 + thumb_func_end EndLotteryCornerComputerEffect + + thumb_func_start ResetTrickHouseEndRoomFlag +ResetTrickHouseEndRoomFlag: @ 0x08139044 + push {lr} + ldr r1, _08139054 + ldr r0, _08139058 + strh r0, [r1] + bl FlagSet + pop {r0} + bx r0 + .align 2, 0 +_08139054: .4byte 0x02037280 +_08139058: .4byte 0x000001F5 + thumb_func_end ResetTrickHouseEndRoomFlag + + thumb_func_start SetTrickHouseEndRoomFlag +SetTrickHouseEndRoomFlag: @ 0x0813905C + push {lr} + ldr r1, _0813906C + ldr r0, _08139070 + strh r0, [r1] + bl FlagClear + pop {r0} + bx r0 + .align 2, 0 +_0813906C: .4byte 0x02037280 +_08139070: .4byte 0x000001F5 + thumb_func_end SetTrickHouseEndRoomFlag + + thumb_func_start CheckLeadMonCool +CheckLeadMonCool: @ 0x08139074 + push {lr} + bl GetLeadMonIndex + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x64 + muls r0, r1, r0 + ldr r1, _08139094 + adds r0, r0, r1 + movs r1, #0x16 + bl GetMonData + cmp r0, #0xc7 + bls _08139098 + movs r0, #1 + b _0813909A + .align 2, 0 +_08139094: .4byte 0x02024190 +_08139098: + movs r0, #0 +_0813909A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CheckLeadMonCool + + thumb_func_start CheckLeadMonBeauty +CheckLeadMonBeauty: @ 0x081390A0 + push {lr} + bl GetLeadMonIndex + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x64 + muls r0, r1, r0 + ldr r1, _081390C0 + adds r0, r0, r1 + movs r1, #0x17 + bl GetMonData + cmp r0, #0xc7 + bls _081390C4 + movs r0, #1 + b _081390C6 + .align 2, 0 +_081390C0: .4byte 0x02024190 +_081390C4: + movs r0, #0 +_081390C6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CheckLeadMonBeauty + + thumb_func_start CheckLeadMonCute +CheckLeadMonCute: @ 0x081390CC + push {lr} + bl GetLeadMonIndex + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x64 + muls r0, r1, r0 + ldr r1, _081390EC + adds r0, r0, r1 + movs r1, #0x18 + bl GetMonData + cmp r0, #0xc7 + bls _081390F0 + movs r0, #1 + b _081390F2 + .align 2, 0 +_081390EC: .4byte 0x02024190 +_081390F0: + movs r0, #0 +_081390F2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CheckLeadMonCute + + thumb_func_start CheckLeadMonSmart +CheckLeadMonSmart: @ 0x081390F8 + push {lr} + bl GetLeadMonIndex + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x64 + muls r0, r1, r0 + ldr r1, _08139118 + adds r0, r0, r1 + movs r1, #0x21 + bl GetMonData + cmp r0, #0xc7 + bls _0813911C + movs r0, #1 + b _0813911E + .align 2, 0 +_08139118: .4byte 0x02024190 +_0813911C: + movs r0, #0 +_0813911E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CheckLeadMonSmart + + thumb_func_start CheckLeadMonTough +CheckLeadMonTough: @ 0x08139124 + push {lr} + bl GetLeadMonIndex + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x64 + muls r0, r1, r0 + ldr r1, _08139144 + adds r0, r0, r1 + movs r1, #0x2f + bl GetMonData + cmp r0, #0xc7 + bls _08139148 + movs r0, #1 + b _0813914A + .align 2, 0 +_08139144: .4byte 0x02024190 +_08139148: + movs r0, #0 +_0813914A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CheckLeadMonTough + + thumb_func_start IsGrassTypeInParty +IsGrassTypeInParty: @ 0x08139150 + push {r4, r5, r6, lr} + movs r5, #0 + ldr r6, _081391A0 +_08139156: + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _081391A4 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #5 + bl GetMonData + cmp r0, #0 + beq _081391AC + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + bne _081391AC + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrb r0, [r1, #6] + cmp r0, #0xc + beq _08139198 + ldrb r0, [r1, #7] + cmp r0, #0xc + bne _081391AC +_08139198: + ldr r1, _081391A8 + movs r0, #1 + b _081391BA + .align 2, 0 +_081391A0: .4byte 0x082F0D54 +_081391A4: .4byte 0x02024190 +_081391A8: .4byte 0x02037290 +_081391AC: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #5 + bls _08139156 + ldr r1, _081391C4 + movs r0, #0 +_081391BA: + strh r0, [r1] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081391C4: .4byte 0x02037290 + thumb_func_end IsGrassTypeInParty + + thumb_func_start SpawnCameraObject +SpawnCameraObject: @ 0x081391C8 + push {lr} + sub sp, #8 + ldr r0, _08139214 + ldr r0, [r0] + ldrh r3, [r0] + adds r3, #7 + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + ldrh r0, [r0, #2] + adds r0, #7 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + str r0, [sp] + movs r0, #3 + str r0, [sp, #4] + movs r0, #7 + movs r1, #8 + movs r2, #0x7f + bl SpawnSpecialEventObjectParameterized + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08139218 + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r0, [r1, #1] + movs r2, #0x20 + orrs r0, r2 + strb r0, [r1, #1] + ldrb r0, [r1, #4] + bl CameraObjectSetFollowedObjectId + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 +_08139214: .4byte 0x03005AEC +_08139218: .4byte 0x02036FF0 + thumb_func_end SpawnCameraObject + + thumb_func_start RemoveCameraObject +RemoveCameraObject: @ 0x0813921C + push {lr} + bl GetPlayerAvatarObjectId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl CameraObjectSetFollowedObjectId + ldr r0, _0813923C + ldr r0, [r0] + ldrb r1, [r0, #5] + ldrb r2, [r0, #4] + movs r0, #0x7f + bl RemoveEventObjectByLocalIdAndMap + pop {r0} + bx r0 + .align 2, 0 +_0813923C: .4byte 0x03005AEC + thumb_func_end RemoveCameraObject + + thumb_func_start GetPokeblockNameByMonNature +GetPokeblockNameByMonNature: @ 0x08139240 + push {lr} + bl GetLeadMonIndex + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x64 + muls r0, r1, r0 + ldr r1, _08139268 + adds r0, r0, r1 + bl GetNature + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0813926C + bl sub_081370D8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_08139268: .4byte 0x02024190 +_0813926C: .4byte 0x02021C40 + thumb_func_end GetPokeblockNameByMonNature + + thumb_func_start GetSecretBaseNearbyMapName +GetSecretBaseNearbyMapName: @ 0x08139270 + push {r4, lr} + ldr r4, _08139290 + ldr r0, _08139294 + bl VarGet + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + movs r2, #0 + bl GetMapName + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08139290: .4byte 0x02021C40 +_08139294: .4byte 0x00004026 + thumb_func_end GetSecretBaseNearbyMapName + + thumb_func_start GetBestBattleTowerStreak +GetBestBattleTowerStreak: @ 0x08139298 + push {lr} + movs r0, #0x20 + bl GetGameStat + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + thumb_func_end GetBestBattleTowerStreak + + thumb_func_start BufferEReaderTrainerName +BufferEReaderTrainerName: @ 0x081392A8 + push {lr} + ldr r0, _081392B4 + bl GetEreaderTrainerName + pop {r0} + bx r0 + .align 2, 0 +_081392B4: .4byte 0x02021C40 + thumb_func_end BufferEReaderTrainerName + + thumb_func_start GetSlotMachineId +GetSlotMachineId: @ 0x081392B8 + push {r4, r5, lr} + ldr r0, _081392EC + ldr r2, [r0] + ldr r1, _081392F0 + adds r0, r2, r1 + ldrb r1, [r0] + lsls r1, r1, #0x19 + ldr r0, _081392F4 + adds r2, r2, r0 + lsrs r1, r1, #0x19 + ldrh r2, [r2] + adds r1, r1, r2 + ldr r2, _081392F8 + ldr r0, _081392FC + ldrh r0, [r0] + adds r0, r0, r2 + ldrb r0, [r0] + adds r5, r1, r0 + movs r0, #2 + bl GetPriceReduction + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08139304 + ldr r4, _08139300 + b _08139306 + .align 2, 0 +_081392EC: .4byte 0x03005AEC +_081392F0: .4byte 0x00002E68 +_081392F4: .4byte 0x00002E6A +_081392F8: .4byte 0x085925D4 +_081392FC: .4byte 0x02037280 +_08139300: .4byte 0x085925E0 +_08139304: + ldr r4, _08139318 +_08139306: + adds r0, r5, #0 + movs r1, #0xc + bl __umodsi3 + adds r0, r0, r4 + ldrb r0, [r0] + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08139318: .4byte 0x085925EC + thumb_func_end GetSlotMachineId + + thumb_func_start FoundAbandonedShipRoom1Key +FoundAbandonedShipRoom1Key: @ 0x0813931C + push {lr} + ldr r1, _08139334 + ldr r0, _08139338 + strh r0, [r1] + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0813933C + movs r0, #1 + b _0813933E + .align 2, 0 +_08139334: .4byte 0x02037280 +_08139338: .4byte 0x00000213 +_0813933C: + movs r0, #0 +_0813933E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end FoundAbandonedShipRoom1Key + + thumb_func_start FoundAbandonedShipRoom2Key +FoundAbandonedShipRoom2Key: @ 0x08139344 + push {lr} + ldr r1, _0813935C + movs r0, #0x85 + lsls r0, r0, #2 + strh r0, [r1] + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08139360 + movs r0, #1 + b _08139362 + .align 2, 0 +_0813935C: .4byte 0x02037280 +_08139360: + movs r0, #0 +_08139362: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end FoundAbandonedShipRoom2Key + + thumb_func_start FoundAbandonedShipRoom4Key +FoundAbandonedShipRoom4Key: @ 0x08139368 + push {lr} + ldr r1, _08139380 + ldr r0, _08139384 + strh r0, [r1] + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08139388 + movs r0, #1 + b _0813938A + .align 2, 0 +_08139380: .4byte 0x02037280 +_08139384: .4byte 0x00000215 +_08139388: + movs r0, #0 +_0813938A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end FoundAbandonedShipRoom4Key + + thumb_func_start FoundAbandonedShipRoom6Key +FoundAbandonedShipRoom6Key: @ 0x08139390 + push {lr} + ldr r1, _081393A8 + ldr r0, _081393AC + strh r0, [r1] + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081393B0 + movs r0, #1 + b _081393B2 + .align 2, 0 +_081393A8: .4byte 0x02037280 +_081393AC: .4byte 0x00000216 +_081393B0: + movs r0, #0 +_081393B2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end FoundAbandonedShipRoom6Key + + thumb_func_start LeadMonHasEffortRibbon +LeadMonHasEffortRibbon: @ 0x081393B8 + push {lr} + bl GetLeadMonIndex + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x64 + muls r0, r1, r0 + ldr r1, _081393DC + adds r0, r0, r1 + movs r1, #0x47 + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_081393DC: .4byte 0x02024190 + thumb_func_end LeadMonHasEffortRibbon + + thumb_func_start GiveLeadMonEffortRibbon +GiveLeadMonEffortRibbon: @ 0x081393E0 + push {r4, lr} + sub sp, #4 + movs r0, #0x2a + bl IncrementGameStat + ldr r0, _08139430 + bl FlagSet + movs r1, #1 + mov r0, sp + strb r1, [r0] + bl GetLeadMonIndex + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x64 + muls r1, r0, r1 + ldr r0, _08139434 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0x47 + mov r2, sp + bl SetMonData + adds r0, r4, #0 + bl GetRibbonCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bls _08139426 + adds r0, r4, #0 + movs r1, #0x47 + bl sub_080EEFFC +_08139426: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08139430: .4byte 0x0000089B +_08139434: .4byte 0x02024190 + thumb_func_end GiveLeadMonEffortRibbon + + thumb_func_start Special_AreLeadMonEVsMaxedOut +Special_AreLeadMonEVsMaxedOut: @ 0x08139438 + push {lr} + bl GetLeadMonIndex + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x64 + muls r0, r1, r0 + ldr r1, _0813945C + adds r0, r0, r1 + bl GetMonEVCount + lsls r0, r0, #0x10 + ldr r1, _08139460 + cmp r0, r1 + bhi _08139464 + movs r0, #0 + b _08139466 + .align 2, 0 +_0813945C: .4byte 0x02024190 +_08139460: .4byte 0x01FD0000 +_08139464: + movs r0, #1 +_08139466: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end Special_AreLeadMonEVsMaxedOut + + thumb_func_start TryUpdateRusturfTunnelState +TryUpdateRusturfTunnelState: @ 0x0813946C + push {lr} + movs r0, #0xc7 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081394C4 + ldr r0, _0813949C + ldr r0, [r0] + ldrh r1, [r0, #4] + movs r0, #0x83 + lsls r0, r0, #3 + cmp r1, r0 + bne _081394C4 + subs r0, #0x75 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081394A4 + ldr r0, _081394A0 + movs r1, #4 + b _081394B6 + .align 2, 0 +_0813949C: .4byte 0x03005AEC +_081394A0: .4byte 0x0000409A +_081394A4: + movs r0, #0xe9 + lsls r0, r0, #2 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081394C4 + ldr r0, _081394C0 + movs r1, #5 +_081394B6: + bl VarSet + movs r0, #1 + b _081394C6 + .align 2, 0 +_081394C0: .4byte 0x0000409A +_081394C4: + movs r0, #0 +_081394C6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TryUpdateRusturfTunnelState + + thumb_func_start SetShoalItemFlag +SetShoalItemFlag: @ 0x081394CC + push {lr} + ldr r0, _081394D8 + bl FlagSet + pop {r0} + bx r0 + .align 2, 0 +_081394D8: .4byte 0x000008BF + thumb_func_end SetShoalItemFlag + + thumb_func_start PutZigzagoonInPlayerParty +PutZigzagoonInPlayerParty: @ 0x081394DC + push {r4, r5, lr} + sub sp, #0x14 + ldr r5, _08139544 + movs r1, #0x90 + lsls r1, r1, #1 + movs r4, #0 + str r4, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + str r4, [sp, #0xc] + adds r0, r5, #0 + movs r2, #7 + movs r3, #0x20 + bl CreateMon + movs r1, #1 + add r0, sp, #0x10 + strh r1, [r0] + adds r0, r5, #0 + movs r1, #0x2e + add r2, sp, #0x10 + bl SetMonData + add r1, sp, #0x10 + movs r0, #0x21 + strh r0, [r1] + adds r0, r5, #0 + movs r1, #0xd + add r2, sp, #0x10 + bl SetMonData + add r0, sp, #0x10 + strh r4, [r0] + adds r0, r5, #0 + movs r1, #0xe + add r2, sp, #0x10 + bl SetMonData + adds r0, r5, #0 + movs r1, #0xf + add r2, sp, #0x10 + bl SetMonData + adds r0, r5, #0 + movs r1, #0x10 + add r2, sp, #0x10 + bl SetMonData + add sp, #0x14 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08139544: .4byte 0x02024190 + thumb_func_end PutZigzagoonInPlayerParty + + thumb_func_start IsStarterInParty +IsStarterInParty: @ 0x08139548 + push {r4, r5, r6, lr} + ldr r0, _08139584 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetStarterPokemon + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + bl CalculatePlayerPartyCount + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r4, #0 + cmp r4, r5 + bhs _08139596 +_0813956A: + movs r0, #0x64 + muls r0, r4, r0 + ldr r1, _08139588 + adds r0, r0, r1 + movs r1, #0x41 + movs r2, #0 + bl GetMonData + cmp r0, r6 + bne _0813958C + movs r0, #1 + b _08139598 + .align 2, 0 +_08139584: .4byte 0x00004023 +_08139588: .4byte 0x02024190 +_0813958C: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r5 + blo _0813956A +_08139596: + movs r0, #0 +_08139598: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsStarterInParty + + thumb_func_start ScriptCheckFreePokemonStorageSpace +ScriptCheckFreePokemonStorageSpace: @ 0x081395A0 + push {lr} + bl CheckFreePokemonStorageSpace + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScriptCheckFreePokemonStorageSpace + + thumb_func_start IsPokerusInParty +IsPokerusInParty: @ 0x081395B0 + push {lr} + ldr r0, _081395C4 + movs r1, #0x3f + bl CheckPartyPokerus + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081395C8 + movs r0, #1 + b _081395CA + .align 2, 0 +_081395C4: .4byte 0x02024190 +_081395C8: + movs r0, #0 +_081395CA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsPokerusInParty + + thumb_func_start sub_081395D0 +sub_081395D0: @ 0x081395D0 + push {lr} + ldr r0, _08139614 + movs r1, #9 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08139618 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r0, _0813961C + ldrh r0, [r0] + movs r2, #0 + strh r0, [r1, #8] + strh r2, [r1, #0xa] + ldr r0, _08139620 + ldrh r0, [r0] + strh r0, [r1, #0xc] + ldr r0, _08139624 + ldrh r0, [r0] + strh r0, [r1, #0xe] + ldr r0, _08139628 + ldrh r0, [r0] + strh r0, [r1, #0x10] + movs r0, #0 + bl SetCameraPanningCallback + movs r0, #0xd6 + bl PlaySE + pop {r0} + bx r0 + .align 2, 0 +_08139614: .4byte 0x0813962D +_08139618: .4byte 0x03005B60 +_0813961C: .4byte 0x02037282 +_08139620: .4byte 0x02037284 +_08139624: .4byte 0x02037286 +_08139628: .4byte 0x02037280 + thumb_func_end sub_081395D0 + + thumb_func_start sub_0813962C +sub_0813962C: @ 0x0813962C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _0813968C + adds r4, r0, r1 + ldrh r0, [r4, #2] + adds r0, #1 + strh r0, [r4, #2] + movs r1, #2 + ldrsh r0, [r4, r1] + movs r2, #6 + ldrsh r1, [r4, r2] + bl __modsi3 + cmp r0, #0 + bne _08139684 + strh r0, [r4, #2] + ldrh r0, [r4, #4] + subs r0, #1 + strh r0, [r4, #4] + ldrh r0, [r4] + rsbs r0, r0, #0 + strh r0, [r4] + ldrh r0, [r4, #8] + rsbs r0, r0, #0 + strh r0, [r4, #8] + movs r1, #0 + ldrsh r0, [r4, r1] + movs r2, #8 + ldrsh r1, [r4, r2] + bl SetCameraPanning + movs r1, #4 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08139684 + adds r0, r5, #0 + bl sub_08139690 + bl InstallCameraPanAheadCallback +_08139684: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0813968C: .4byte 0x03005B68 + thumb_func_end sub_0813962C + + thumb_func_start sub_08139690 +sub_08139690: @ 0x08139690 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + bl EnableBothScriptContexts + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08139690 + + thumb_func_start FoundBlackGlasses +FoundBlackGlasses: @ 0x081396A4 + push {lr} + movs r0, #0x95 + lsls r0, r0, #2 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end FoundBlackGlasses + + thumb_func_start SetRoute119Weather +SetRoute119Weather: @ 0x081396B8 + push {lr} + bl GetLastUsedWarpMapType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl IsMapTypeOutdoors + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081396D4 + movs r0, #0x14 + bl SetSav1Weather +_081396D4: + pop {r0} + bx r0 + thumb_func_end SetRoute119Weather + + thumb_func_start SetRoute123Weather +SetRoute123Weather: @ 0x081396D8 + push {lr} + bl GetLastUsedWarpMapType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl IsMapTypeOutdoors + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081396F4 + movs r0, #0x15 + bl SetSav1Weather +_081396F4: + pop {r0} + bx r0 + thumb_func_end SetRoute123Weather + + thumb_func_start GetLeadMonIndex +GetLeadMonIndex: @ 0x081396F8 + push {r4, r5, r6, lr} + bl CalculatePlayerPartyCount + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r5, #0 + cmp r5, r6 + bhs _08139746 +_08139708: + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _08139738 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0x41 + movs r2, #0 + bl GetMonData + movs r1, #0xce + lsls r1, r1, #1 + cmp r0, r1 + beq _0813973C + adds r0, r4, #0 + movs r1, #0x41 + movs r2, #0 + bl GetMonData + cmp r0, #0 + beq _0813973C + adds r0, r5, #0 + b _08139748 + .align 2, 0 +_08139738: .4byte 0x02024190 +_0813973C: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, r6 + blo _08139708 +_08139746: + movs r0, #0 +_08139748: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetLeadMonIndex + + thumb_func_start ScriptGetPartyMonSpecies +ScriptGetPartyMonSpecies: @ 0x08139750 + push {lr} + ldr r0, _08139770 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08139774 + adds r0, r0, r1 + movs r1, #0x41 + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 +_08139770: .4byte 0x02037280 +_08139774: .4byte 0x02024190 + thumb_func_end ScriptGetPartyMonSpecies + + thumb_func_start nullsub_54 +nullsub_54: @ 0x08139778 + bx lr + .align 2, 0 + thumb_func_end nullsub_54 + + thumb_func_start GetDaysUntilPacifidlogTMAvailable +GetDaysUntilPacifidlogTMAvailable: @ 0x0813977C + push {r4, lr} + ldr r0, _0813979C + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r3, r0, #0 + ldr r2, _081397A0 + movs r1, #0 + ldrsh r0, [r2, r1] + subs r0, r0, r3 + cmp r0, #6 + ble _081397A4 + movs r0, #0 + b _081397BC + .align 2, 0 +_0813979C: .4byte 0x000040C2 +_081397A0: .4byte 0x03005A50 +_081397A4: + ldrh r1, [r2] + movs r4, #0 + ldrsh r0, [r2, r4] + cmp r0, #0 + blt _081397BA + subs r1, r1, r3 + movs r0, #7 + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _081397BC +_081397BA: + movs r0, #8 +_081397BC: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetDaysUntilPacifidlogTMAvailable + + thumb_func_start SetPacifidlogTMReceivedDay +SetPacifidlogTMReceivedDay: @ 0x081397C4 + push {r4, lr} + ldr r0, _081397D8 + ldr r4, _081397DC + ldrh r1, [r4] + bl VarSet + ldrh r0, [r4] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081397D8: .4byte 0x000040C2 +_081397DC: .4byte 0x03005A50 + thumb_func_end SetPacifidlogTMReceivedDay + + thumb_func_start MonOTNameMatchesPlayer +MonOTNameMatchesPlayer: @ 0x081397E0 + push {r4, lr} + ldr r0, _0813980C + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08139810 + adds r0, r0, r1 + ldr r4, _08139814 + movs r1, #7 + adds r2, r4, #0 + bl GetMonData + ldr r0, _08139818 + ldr r0, [r0] + adds r1, r4, #0 + bl StringCompare + cmp r0, #0 + beq _0813981C + movs r0, #1 + b _0813981E + .align 2, 0 +_0813980C: .4byte 0x02037280 +_08139810: .4byte 0x02024190 +_08139814: .4byte 0x02021C40 +_08139818: .4byte 0x03005AF0 +_0813981C: + movs r0, #0 +_0813981E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end MonOTNameMatchesPlayer + + thumb_func_start BufferLottoTicketNumber +BufferLottoTicketNumber: @ 0x08139824 + push {r4, r5, lr} + ldr r2, _08139838 + ldrh r1, [r2] + ldr r0, _0813983C + cmp r1, r0 + bls _08139840 + movs r0, #0 + bl TV_PrintIntToStringVar + b _081398C2 + .align 2, 0 +_08139838: .4byte 0x02037290 +_0813983C: .4byte 0x0000270F +_08139840: + ldr r0, _08139850 + cmp r1, r0 + bls _08139858 + ldr r4, _08139854 + movs r0, #0xa1 + strb r0, [r4] + adds r4, #1 + b _0813987C + .align 2, 0 +_08139850: .4byte 0x000003E7 +_08139854: .4byte 0x02021C40 +_08139858: + cmp r1, #0x63 + bls _0813986C + ldr r4, _08139868 + movs r0, #0xa1 + strb r0, [r4] + strb r0, [r4, #1] + adds r4, #2 + b _0813987C + .align 2, 0 +_08139868: .4byte 0x02021C40 +_0813986C: + cmp r1, #9 + bls _0813989C + ldr r4, _08139898 + movs r0, #0xa1 + strb r0, [r4] + strb r0, [r4, #1] + strb r0, [r4, #2] + adds r4, #3 +_0813987C: + ldrh r5, [r2] + adds r0, r5, #0 + bl CountDigits + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl ConvertIntToDecimalStringN + b _081398C2 + .align 2, 0 +_08139898: .4byte 0x02021C40 +_0813989C: + ldr r4, _081398C8 + movs r0, #0xa1 + strb r0, [r4] + strb r0, [r4, #1] + strb r0, [r4, #2] + strb r0, [r4, #3] + adds r4, #4 + ldrh r5, [r2] + adds r0, r5, #0 + bl CountDigits + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl ConvertIntToDecimalStringN +_081398C2: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081398C8: .4byte 0x02021C40 + thumb_func_end BufferLottoTicketNumber + + thumb_func_start sub_081398CC +sub_081398CC: @ 0x081398CC + push {lr} + ldr r0, _081398E0 + ldrh r0, [r0] + cmp r0, #4 + bhi _08139918 + lsls r0, r0, #2 + ldr r1, _081398E4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081398E0: .4byte 0x02037290 +_081398E4: .4byte 0x081398E8 +_081398E8: @ jump table + .4byte _081398FC @ case 0 + .4byte _08139900 @ case 1 + .4byte _08139904 @ case 2 + .4byte _08139908 @ case 3 + .4byte _0813990C @ case 4 +_081398FC: + movs r0, #3 + b _0813990E +_08139900: + movs r0, #4 + b _0813990E +_08139904: + movs r0, #0 + b _0813990E +_08139908: + movs r0, #1 + b _0813990E +_0813990C: + movs r0, #2 +_0813990E: + bl mevent_081445C0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _08139926 +_08139918: + ldr r0, _0813992C + ldr r1, _08139930 + ldr r2, _08139934 + movs r3, #1 + bl AGBAssert + movs r0, #0 +_08139926: + pop {r1} + bx r1 + .align 2, 0 +_0813992C: .4byte 0x085925F8 +_08139930: .4byte 0x00000B14 +_08139934: .4byte 0x08592604 + thumb_func_end sub_081398CC + + thumb_func_start sub_08139938 +sub_08139938: @ 0x08139938 + push {r4, lr} + ldr r1, _08139950 + ldr r2, _08139954 + adds r0, r2, #0 + ldrh r2, [r1] + adds r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x39 + bls _08139958 + movs r0, #0 + b _08139972 + .align 2, 0 +_08139950: .4byte 0x02037280 +_08139954: .4byte 0xFFFFFEDF +_08139958: + ldr r4, _08139978 + ldrh r0, [r1] + bl ItemIdToBattleMoveId + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0xd + ldr r0, _0813997C + adds r1, r1, r0 + adds r0, r4, #0 + bl StringCopy + movs r0, #1 +_08139972: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08139978: .4byte 0x02021C54 +_0813997C: .4byte 0x082EACC4 + thumb_func_end sub_08139938 + + thumb_func_start sub_08139980 +sub_08139980: @ 0x08139980 + push {r4, r5, lr} + bl CalculatePlayerPartyCount + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r4, #0 + cmp r4, r5 + bhs _081399B6 +_08139990: + movs r0, #0x64 + muls r0, r4, r0 + ldr r1, _081399A8 + adds r0, r0, r1 + movs r1, #4 + bl GetMonData + cmp r0, #1 + bne _081399AC + movs r0, #1 + b _081399B8 + .align 2, 0 +_081399A8: .4byte 0x02024190 +_081399AC: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r5 + blo _08139990 +_081399B6: + movs r0, #0 +_081399B8: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08139980 + + thumb_func_start InMultiBattleRoom +InMultiBattleRoom: @ 0x081399C0 + push {lr} + ldr r0, _081399E0 + ldr r0, [r0] + ldrh r1, [r0, #4] + ldr r0, _081399E4 + cmp r1, r0 + bne _081399EC + ldr r0, _081399E8 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #2 + bne _081399EC + movs r0, #1 + b _081399EE + .align 2, 0 +_081399E0: .4byte 0x03005AEC +_081399E4: .4byte 0x00000F1A +_081399E8: .4byte 0x000040CE +_081399EC: + movs r0, #0 +_081399EE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end InMultiBattleRoom + + thumb_func_start sub_081399F4 +sub_081399F4: @ 0x081399F4 + push {lr} + movs r0, #0 + bl SetCameraPanningCallback + movs r0, #8 + movs r1, #0 + bl SetCameraPanning + pop {r0} + bx r0 + thumb_func_end sub_081399F4 + + thumb_func_start SetDepartmentStoreFloorVar +SetDepartmentStoreFloorVar: @ 0x08139A08 + push {lr} + ldr r0, _08139A24 + ldr r0, [r0] + ldrb r0, [r0, #0x15] + subs r0, #0x10 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #5 + bhi _08139A58 + lsls r0, r0, #2 + ldr r1, _08139A28 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08139A24: .4byte 0x03005AEC +_08139A28: .4byte 0x08139A2C +_08139A2C: @ jump table + .4byte _08139A58 @ case 0 + .4byte _08139A44 @ case 1 + .4byte _08139A48 @ case 2 + .4byte _08139A4C @ case 3 + .4byte _08139A50 @ case 4 + .4byte _08139A54 @ case 5 +_08139A44: + movs r1, #5 + b _08139A5A +_08139A48: + movs r1, #6 + b _08139A5A +_08139A4C: + movs r1, #7 + b _08139A5A +_08139A50: + movs r1, #8 + b _08139A5A +_08139A54: + movs r1, #0xf + b _08139A5A +_08139A58: + movs r1, #4 +_08139A5A: + ldr r0, _08139A64 + bl VarSet + pop {r0} + bx r0 + .align 2, 0 +_08139A64: .4byte 0x00004043 + thumb_func_end SetDepartmentStoreFloorVar + + thumb_func_start sub_08139A68 +sub_08139A68: @ 0x08139A68 + push {r4, lr} + ldr r2, _08139A98 + movs r0, #0 + strh r0, [r2] + ldr r1, _08139A9C + strh r0, [r1] + ldr r0, _08139AA0 + ldr r3, [r0] + movs r0, #0x14 + ldrsb r0, [r3, r0] + adds r4, r1, #0 + cmp r0, #0xd + bne _08139AE2 + ldrb r0, [r3, #0x15] + subs r0, #0x10 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #4 + bhi _08139AE2 + lsls r0, r0, #2 + ldr r1, _08139AA4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08139A98: .4byte 0x0203A82C +_08139A9C: .4byte 0x0203A82E +_08139AA0: .4byte 0x03005AEC +_08139AA4: .4byte 0x08139AA8 +_08139AA8: @ jump table + .4byte _08139ADA @ case 0 + .4byte _08139AD2 @ case 1 + .4byte _08139ACA @ case 2 + .4byte _08139AC2 @ case 3 + .4byte _08139ABC @ case 4 +_08139ABC: + movs r0, #0 + strh r0, [r2] + b _08139AE0 +_08139AC2: + movs r0, #0 + strh r0, [r2] + movs r0, #1 + b _08139AE0 +_08139ACA: + movs r0, #0 + strh r0, [r2] + movs r0, #2 + b _08139AE0 +_08139AD2: + movs r0, #0 + strh r0, [r2] + movs r0, #3 + b _08139AE0 +_08139ADA: + movs r0, #0 + strh r0, [r2] + movs r0, #4 +_08139AE0: + strh r0, [r4] +_08139AE2: + ldrh r0, [r4] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08139A68 + + thumb_func_start ShakeScreenInElevator +ShakeScreenInElevator: @ 0x08139AEC + push {r4, r5, r6, lr} + ldr r0, _08139B24 + movs r1, #9 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _08139B28 + adds r4, r1, r0 + movs r3, #0 + strh r3, [r4, #2] + strh r3, [r4, #4] + movs r6, #1 + strh r6, [r4, #8] + ldr r0, _08139B2C + ldr r1, _08139B30 + ldrh r2, [r0] + ldrh r0, [r1] + cmp r2, r0 + bls _08139B34 + subs r0, r2, r0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + strh r6, [r4, #0xc] + b _08139B3C + .align 2, 0 +_08139B24: .4byte 0x08139B69 +_08139B28: .4byte 0x03005B68 +_08139B2C: .4byte 0x02037282 +_08139B30: .4byte 0x02037284 +_08139B34: + subs r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + strh r3, [r4, #0xc] +_08139B3C: + cmp r5, #8 + bls _08139B42 + movs r5, #8 +_08139B42: + ldr r0, _08139B64 + adds r0, r5, r0 + ldrb r0, [r0] + strh r0, [r4, #0xa] + movs r0, #0 + bl SetCameraPanningCallback + ldrb r1, [r4, #0xc] + adds r0, r5, #0 + bl sub_08139C68 + movs r0, #0x59 + bl PlaySE + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08139B64: .4byte 0x08592674 + thumb_func_end ShakeScreenInElevator + + thumb_func_start sub_08139B68 +sub_08139B68: @ 0x08139B68 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _08139BD0 + adds r4, r0, r1 + ldrh r0, [r4, #2] + adds r0, #1 + strh r0, [r4, #2] + movs r1, #2 + ldrsh r0, [r4, r1] + movs r1, #3 + bl __modsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bne _08139BC8 + strh r0, [r4, #2] + ldrh r0, [r4, #4] + adds r0, #1 + strh r0, [r4, #4] + ldrh r0, [r4, #8] + rsbs r0, r0, #0 + strh r0, [r4, #8] + movs r2, #8 + ldrsh r1, [r4, r2] + movs r0, #0 + bl SetCameraPanning + movs r0, #4 + ldrsh r1, [r4, r0] + movs r2, #0xa + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _08139BC8 + movs r0, #0x49 + bl PlaySE + adds r0, r5, #0 + bl DestroyTask + bl EnableBothScriptContexts + bl InstallCameraPanAheadCallback +_08139BC8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08139BD0: .4byte 0x03005B68 + thumb_func_end sub_08139B68 + + thumb_func_start sub_08139BD4 +sub_08139BD4: @ 0x08139BD4 + push {r4, r5, r6, lr} + sub sp, #0xc + ldr r4, _08139C38 + ldr r0, _08139C3C + bl AddWindow + strb r0, [r4] + ldrb r0, [r4] + movs r1, #0 + bl SetStandardWindowBorderStyle + ldrb r0, [r4] + ldr r2, _08139C40 + movs r1, #2 + str r1, [sp] + movs r6, #0xff + str r6, [sp, #4] + movs r5, #0 + str r5, [sp, #8] + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + ldrb r0, [r4] + ldr r2, _08139C44 + ldr r1, _08139C48 + ldrh r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r2, [r1] + movs r1, #0x10 + str r1, [sp] + str r6, [sp, #4] + str r5, [sp, #8] + movs r1, #1 + movs r3, #0x13 + bl AddTextPrinterParameterized + ldrb r0, [r4] + bl PutWindowTilemap + ldrb r0, [r4] + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08139C38: .4byte 0x0203A82A +_08139C3C: .4byte 0x08592608 +_08139C40: .4byte 0x085CB0BF +_08139C44: .4byte 0x08592610 +_08139C48: .4byte 0x02037282 + thumb_func_end sub_08139BD4 + + thumb_func_start sub_08139C4C +sub_08139C4C: @ 0x08139C4C + push {r4, lr} + ldr r4, _08139C64 + ldrb r0, [r4] + movs r1, #1 + bl ClearStdWindowAndFrameToTransparent + ldrb r0, [r4] + bl RemoveWindow + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08139C64: .4byte 0x0203A82A + thumb_func_end sub_08139C4C + + thumb_func_start sub_08139C68 +sub_08139C68: @ 0x08139C68 + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + ldr r4, _08139CB0 + adds r0, r4, #0 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08139CA8 + adds r0, r4, #0 + movs r1, #8 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08139CB4 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r0, #0 + strh r0, [r1, #8] + strh r0, [r1, #0xa] + strh r5, [r1, #0xc] + ldr r0, _08139CB8 + adds r0, r6, r0 + ldrb r0, [r0] + strh r0, [r1, #0xe] +_08139CA8: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08139CB0: .4byte 0x08139CBD +_08139CB4: .4byte 0x03005B60 +_08139CB8: .4byte 0x0859267D + thumb_func_end sub_08139C68 + + thumb_func_start MoveElevatorWindowLights +MoveElevatorWindowLights: @ 0x08139CBC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + lsls r0, r0, #2 + ldr r1, [sp] + adds r0, r0, r1 + lsls r0, r0, #3 + ldr r1, _08139D44 + adds r6, r0, r1 + movs r2, #2 + ldrsh r0, [r6, r2] + cmp r0, #6 + bne _08139DB8 + ldrh r0, [r6] + adds r0, #1 + strh r0, [r6] + movs r1, #4 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _08139D4C + movs r1, #0 + ldr r2, _08139D48 + mov sl, r2 +_08139CF6: + movs r5, #0 + adds r7, r1, #7 + lsls r0, r1, #1 + adds r2, r1, #1 + mov r8, r2 + adds r0, r0, r1 + lsls r0, r0, #1 + mov sb, r0 +_08139D06: + adds r4, r5, #0 + adds r4, #8 + movs r1, #0 + ldrsh r0, [r6, r1] + movs r1, #3 + bl __modsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0xf + add r0, sb + add r0, sl + ldrh r0, [r0] + movs r1, #0xc0 + lsls r1, r1, #4 + adds r2, r1, #0 + orrs r2, r0 + adds r0, r4, #0 + adds r1, r7, #0 + bl MapGridSetMetatileIdAt + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #2 + bls _08139D06 + mov r2, r8 + lsls r0, r2, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #2 + bls _08139CF6 + b _08139D9E + .align 2, 0 +_08139D44: .4byte 0x03005B68 +_08139D48: .4byte 0x08592650 +_08139D4C: + movs r1, #0 + ldr r0, _08139DD0 + mov sl, r0 +_08139D52: + movs r5, #0 + adds r7, r1, #7 + lsls r0, r1, #1 + adds r2, r1, #1 + mov r8, r2 + adds r0, r0, r1 + lsls r0, r0, #1 + mov sb, r0 +_08139D62: + adds r4, r5, #0 + adds r4, #8 + movs r1, #0 + ldrsh r0, [r6, r1] + movs r1, #3 + bl __modsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0xf + add r0, sb + add r0, sl + ldrh r0, [r0] + movs r1, #0xc0 + lsls r1, r1, #4 + adds r2, r1, #0 + orrs r2, r0 + adds r0, r4, #0 + adds r1, r7, #0 + bl MapGridSetMetatileIdAt + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #2 + bls _08139D62 + mov r2, r8 + lsls r0, r2, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #2 + bls _08139D52 +_08139D9E: + bl DrawWholeMapView + movs r0, #0 + strh r0, [r6, #2] + movs r0, #0 + ldrsh r1, [r6, r0] + movs r2, #6 + ldrsh r0, [r6, r2] + cmp r1, r0 + bne _08139DB8 + ldr r0, [sp] + bl DestroyTask +_08139DB8: + ldrh r0, [r6, #2] + adds r0, #1 + strh r0, [r6, #2] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08139DD0: .4byte 0x08592662 + thumb_func_end MoveElevatorWindowLights + + thumb_func_start sub_08139DD4 +sub_08139DD4: @ 0x08139DD4 + push {r4, r5, r6, r7, lr} + sub sp, #0x18 + ldr r6, _08139E7C + ldrh r0, [r6] + movs r5, #0x64 + muls r0, r5, r0 + ldr r4, _08139E80 + adds r0, r0, r4 + movs r1, #0x27 + bl GetMonData + str r0, [sp] + ldrh r0, [r6] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #0x28 + bl GetMonData + str r0, [sp, #4] + ldrh r0, [r6] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #0x29 + bl GetMonData + str r0, [sp, #8] + ldrh r0, [r6] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #0x2a + bl GetMonData + str r0, [sp, #0xc] + ldrh r0, [r6] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #0x2b + bl GetMonData + str r0, [sp, #0x10] + ldrh r0, [r6] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #0x2c + bl GetMonData + str r0, [sp, #0x14] + ldr r1, _08139E84 + movs r0, #0 + strh r0, [r1] + movs r4, #0 + adds r2, r1, #0 +_08139E3C: + lsls r0, r4, #2 + add r0, sp + ldr r1, [r0] + ldrh r0, [r2] + adds r0, r0, r1 + strh r0, [r2] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #5 + bls _08139E3C + ldr r2, _08139E88 + movs r0, #0 + strh r0, [r2] + ldr r1, _08139E8C + ldr r0, [sp] + strh r0, [r1] + movs r4, #1 + adds r6, r2, #0 + adds r7, r1, #0 +_08139E64: + ldrh r0, [r6] + lsls r0, r0, #2 + mov r2, sp + adds r1, r2, r0 + lsls r0, r4, #2 + adds r5, r2, r0 + ldr r1, [r1] + ldr r0, [r5] + cmp r1, r0 + bhs _08139E90 + strh r4, [r6] + b _08139EA8 + .align 2, 0 +_08139E7C: .4byte 0x02037280 +_08139E80: .4byte 0x02024190 +_08139E84: .4byte 0x02037282 +_08139E88: .4byte 0x02037284 +_08139E8C: .4byte 0x02037286 +_08139E90: + cmp r1, r0 + bne _08139EAA + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08139EAA + strh r4, [r6] + ldr r0, [r5] +_08139EA8: + strh r0, [r7] +_08139EAA: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #5 + bls _08139E64 + add sp, #0x18 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08139DD4 + + thumb_func_start warp0_in_pokecenter +warp0_in_pokecenter: @ 0x08139EBC + push {r4, lr} + ldr r0, _08139EEC + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r1, r1, #8 + ldrb r0, [r0, #1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldr r2, _08139EF0 + ldrh r0, [r2] + ldr r1, _08139EF4 + cmp r0, r1 + beq _08139F02 + adds r4, r1, #0 + adds r1, r2, #0 +_08139EE0: + ldrh r0, [r2] + cmp r0, r3 + bne _08139EF8 + movs r0, #1 + b _08139F04 + .align 2, 0 +_08139EEC: .4byte 0x02031F7C +_08139EF0: .4byte 0x08592686 +_08139EF4: .4byte 0x0000FFFF +_08139EF8: + adds r1, #2 + adds r2, #2 + ldrh r0, [r1] + cmp r0, r4 + bne _08139EE0 +_08139F02: + movs r0, #0 +_08139F04: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end warp0_in_pokecenter + + thumb_func_start sub_08139F0C +sub_08139F0C: @ 0x08139F0C + push {lr} + ldr r0, _08139F20 + ldr r0, [r0] + ldrh r1, [r0, #4] + ldr r0, _08139F24 + cmp r1, r0 + beq _08139F28 + movs r0, #1 + b _08139F2A + .align 2, 0 +_08139F20: .4byte 0x03005AEC +_08139F24: .4byte 0x00003C1A +_08139F28: + movs r0, #0 +_08139F2A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08139F0C + + thumb_func_start UpdateFrontierManiac +UpdateFrontierManiac: @ 0x08139F30 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r0, _08139F58 + bl GetVarPointer + adds r5, r0, #0 + ldrh r0, [r5] + adds r4, r4, r0 + strh r4, [r5] + ldrh r0, [r5] + movs r1, #0xa + bl __umodsi3 + strh r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08139F58: .4byte 0x0000402F + thumb_func_end UpdateFrontierManiac + + thumb_func_start sub_08139F5C +sub_08139F5C: @ 0x08139F5C + push {r4, r5, r6, r7, lr} + movs r4, #0 + ldr r0, _08139F7C + bl VarGet + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #9 + bls _08139F70 + b _0813A076 +_08139F70: + lsls r0, r6, #2 + ldr r1, _08139F80 + adds r1, r0, r1 + ldr r1, [r1] + adds r2, r0, #0 + mov pc, r1 + .align 2, 0 +_08139F7C: .4byte 0x0000402F +_08139F80: .4byte 0x08139F84 +_08139F84: @ jump table + .4byte _08139FAC @ case 0 + .4byte _08139FAC @ case 1 + .4byte _08139FAC @ case 2 + .4byte _08139FAC @ case 3 + .4byte _08139FD0 @ case 4 + .4byte _08139FF0 @ case 5 + .4byte _0813A008 @ case 6 + .4byte _0813A020 @ case 7 + .4byte _0813A038 @ case 8 + .4byte _0813A050 @ case 9 +_08139FAC: + ldr r0, _08139FC8 + ldr r0, [r0] + movs r3, #0xce + lsls r3, r3, #4 + adds r1, r0, r3 + adds r3, r1, r2 + ldr r1, _08139FCC + adds r0, r0, r1 + adds r1, r0, r2 + ldrh r0, [r3] + ldrh r2, [r1] + cmp r0, r2 + bhs _0813A064 + b _0813A074 + .align 2, 0 +_08139FC8: .4byte 0x03005AF0 +_08139FCC: .4byte 0x00000CE2 +_08139FD0: + ldr r0, _08139FE8 + ldr r0, [r0] + ldr r3, _08139FEC + adds r2, r0, r3 + adds r3, #2 +_08139FDA: + adds r1, r0, r3 + ldrh r0, [r2] + ldrh r3, [r1] + cmp r0, r3 + bhs _0813A064 + b _0813A074 + .align 2, 0 +_08139FE8: .4byte 0x03005AF0 +_08139FEC: .4byte 0x00000D0C +_08139FF0: + ldr r0, _08139FFC + ldr r0, [r0] + ldr r1, _0813A000 + adds r2, r0, r1 + ldr r3, _0813A004 + b _08139FDA + .align 2, 0 +_08139FFC: .4byte 0x03005AF0 +_0813A000: .4byte 0x00000DE2 +_0813A004: .4byte 0x00000DE4 +_0813A008: + ldr r0, _0813A014 + ldr r0, [r0] + ldr r1, _0813A018 + adds r2, r0, r1 + ldr r3, _0813A01C + b _08139FDA + .align 2, 0 +_0813A014: .4byte 0x03005AF0 +_0813A018: .4byte 0x00000DC8 +_0813A01C: .4byte 0x00000DCA +_0813A020: + ldr r0, _0813A02C + ldr r0, [r0] + ldr r1, _0813A030 + adds r2, r0, r1 + ldr r3, _0813A034 + b _08139FDA + .align 2, 0 +_0813A02C: .4byte 0x03005AF0 +_0813A030: .4byte 0x00000DDA +_0813A034: .4byte 0x00000DDC +_0813A038: + ldr r0, _0813A044 + ldr r0, [r0] + ldr r1, _0813A048 + adds r2, r0, r1 + ldr r3, _0813A04C + b _08139FDA + .align 2, 0 +_0813A044: .4byte 0x03005AF0 +_0813A048: .4byte 0x00000E04 +_0813A04C: .4byte 0x00000E06 +_0813A050: + ldr r0, _0813A068 + ldr r0, [r0] + ldr r1, _0813A06C + adds r2, r0, r1 + ldr r3, _0813A070 + adds r1, r0, r3 + ldrh r0, [r2] + ldrh r3, [r1] + cmp r0, r3 + blo _0813A074 +_0813A064: + adds r4, r0, #0 + b _0813A076 + .align 2, 0 +_0813A068: .4byte 0x03005AF0 +_0813A06C: .4byte 0x00000E1A +_0813A070: .4byte 0x00000E1C +_0813A074: + ldrh r4, [r1] +_0813A076: + movs r2, #0 + ldr r5, _0813A0B4 + lsls r0, r6, #1 + adds r1, r0, r5 + ldrb r1, [r1] + adds r3, r0, #0 + ldr r7, _0813A0B8 + cmp r1, r4 + bhs _0813A09E + adds r1, r3, #0 +_0813A08A: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #1 + bhi _0813A09E + adds r0, r2, r1 + adds r0, r0, r5 + ldrb r0, [r0] + cmp r0, r4 + blo _0813A08A +_0813A09E: + adds r0, r3, r6 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r0, [r0] + bl ShowFieldMessage + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0813A0B4: .4byte 0x08592724 +_0813A0B8: .4byte 0x085926AC + thumb_func_end sub_08139F5C + + thumb_func_start sub_0813A0BC +sub_0813A0BC: @ 0x0813A0BC + push {r4, r5, r6, r7, lr} + ldr r0, _0813A0F8 + bl VarGet + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, _0813A0FC + ldr r0, [r0] + ldr r1, _0813A100 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r4, r0, #0x1e + cmp r5, #2 + bne _0813A114 + movs r0, #0xa9 + lsls r0, r0, #1 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0813A114 + ldr r1, _0813A104 + movs r0, #5 + strh r0, [r1] + ldr r1, _0813A108 + movs r0, #4 + strh r0, [r1] + b _0813A14C + .align 2, 0 +_0813A0F8: .4byte 0x000040CE +_0813A0FC: .4byte 0x03005AF0 +_0813A100: .4byte 0x00000CA9 +_0813A104: .4byte 0x02037282 +_0813A108: .4byte 0x02037284 +_0813A10C: + movs r0, #4 + strh r0, [r6] + adds r0, r3, #5 + b _0813A14A +_0813A114: + movs r3, #0 + ldr r6, _0813A154 + ldr r7, _0813A158 + lsls r1, r4, #1 + lsls r2, r5, #2 + ldr r4, _0813A15C + ldr r0, _0813A160 + ldr r0, [r0] + adds r1, r1, r2 + movs r2, #0xce + lsls r2, r2, #4 + adds r0, r0, r2 + adds r0, r0, r1 + ldrh r1, [r0] +_0813A130: + lsls r0, r3, #1 + adds r0, r0, r4 + ldrh r0, [r0] + cmp r0, r1 + bhi _0813A10C + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #8 + bls _0813A130 + movs r0, #4 + strh r0, [r6] + movs r0, #0xc +_0813A14A: + strh r0, [r7] +_0813A14C: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0813A154: .4byte 0x02037282 +_0813A158: .4byte 0x02037284 +_0813A15C: .4byte 0x08592738 +_0813A160: .4byte 0x03005AF0 + thumb_func_end sub_0813A0BC + + thumb_func_start sub_0813A164 +sub_0813A164: @ 0x0813A164 + push {r4, lr} + ldr r0, _0813A194 + movs r1, #8 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _0813A198 + adds r3, r0, r1 + ldr r1, _0813A19C + ldrh r0, [r1] + strh r0, [r3, #0x1e] + ldrh r0, [r1] + cmp r0, #0xc + bls _0813A18A + b _0813A302 +_0813A18A: + lsls r0, r0, #2 + ldr r1, _0813A1A0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0813A194: .4byte 0x0813A319 +_0813A198: .4byte 0x03005B60 +_0813A19C: .4byte 0x02037280 +_0813A1A0: .4byte 0x0813A1A4 +_0813A1A4: @ jump table + .4byte _0813A1D8 @ case 0 + .4byte _0813A1E6 @ case 1 + .4byte _0813A1FE @ case 2 + .4byte _0813A212 @ case 3 + .4byte _0813A22C @ case 4 + .4byte _0813A244 @ case 5 + .4byte _0813A25E @ case 6 + .4byte _0813A278 @ case 7 + .4byte _0813A296 @ case 8 + .4byte _0813A2B0 @ case 9 + .4byte _0813A2B0 @ case 10 + .4byte _0813A2CA @ case 11 + .4byte _0813A2E4 @ case 12 +_0813A1D8: + movs r1, #0 + movs r0, #1 + strh r0, [r3, #8] + strh r0, [r3, #0xa] + strh r0, [r3, #0xc] + strh r0, [r3, #0xe] + b _0813A2F8 +_0813A1E6: + movs r1, #0 + movs r0, #5 + strh r0, [r3, #8] + movs r0, #8 + strh r0, [r3, #0xa] + movs r0, #1 + strh r0, [r3, #0xc] + strh r0, [r3, #0xe] + movs r0, #9 + strh r0, [r3, #0x10] + movs r0, #0xa + b _0813A2FA +_0813A1FE: + movs r2, #0 + movs r0, #6 + strh r0, [r3, #8] + movs r1, #0xc + strh r1, [r3, #0xa] + movs r0, #1 + strh r0, [r3, #0xc] + strh r0, [r3, #0xe] + movs r0, #7 + b _0813A28C +_0813A212: + movs r1, #0 + movs r0, #6 + strh r0, [r3, #8] + movs r0, #0xb + strh r0, [r3, #0xa] + movs r0, #0xe + strh r0, [r3, #0xc] + movs r0, #1 + strh r0, [r3, #0xe] + movs r0, #0xf + strh r0, [r3, #0x10] + movs r0, #0xc + b _0813A2FA +_0813A22C: + movs r1, #0 + movs r0, #6 + strh r0, [r3, #8] + strh r0, [r3, #0xa] + movs r0, #0xe + strh r0, [r3, #0xc] + movs r0, #1 + strh r0, [r3, #0xe] + movs r0, #0xf + strh r0, [r3, #0x10] + movs r0, #0xc + b _0813A2FA +_0813A244: + movs r1, #0 + movs r0, #6 + strh r0, [r3, #8] + movs r0, #7 + strh r0, [r3, #0xa] + movs r0, #0xe + strh r0, [r3, #0xc] + movs r0, #1 + strh r0, [r3, #0xe] + movs r0, #0xf + strh r0, [r3, #0x10] + movs r0, #0xc + b _0813A2FA +_0813A25E: + movs r1, #0 + movs r0, #6 + strh r0, [r3, #8] + movs r0, #0xa + strh r0, [r3, #0xa] + movs r0, #0xe + strh r0, [r3, #0xc] + movs r0, #1 + strh r0, [r3, #0xe] + movs r0, #0xf + strh r0, [r3, #0x10] + movs r0, #0xc + b _0813A2FA +_0813A278: + movs r2, #0 + movs r0, #6 + strh r0, [r3, #8] + movs r1, #0xc + strh r1, [r3, #0xa] + movs r0, #0xf + strh r0, [r3, #0xc] + movs r0, #1 + strh r0, [r3, #0xe] + movs r0, #0xe +_0813A28C: + strh r0, [r3, #0x10] + strh r1, [r3, #0x12] + strh r2, [r3, #0x14] + strh r4, [r3, #0x26] + b _0813A30E +_0813A296: + movs r1, #0 + movs r0, #6 + strh r0, [r3, #8] + movs r0, #0xa + strh r0, [r3, #0xa] + movs r0, #0x11 + strh r0, [r3, #0xc] + movs r0, #1 + strh r0, [r3, #0xe] + movs r0, #0xb + strh r0, [r3, #0x10] + movs r0, #0xc + b _0813A2FA +_0813A2B0: + movs r1, #0 + movs r0, #6 + strh r0, [r3, #8] + movs r0, #0xb + strh r0, [r3, #0xa] + movs r0, #0xf + strh r0, [r3, #0xc] + movs r0, #1 + strh r0, [r3, #0xe] + movs r0, #0xe + strh r0, [r3, #0x10] + movs r0, #0xc + b _0813A2FA +_0813A2CA: + movs r1, #0 + movs r0, #6 + strh r0, [r3, #8] + movs r0, #7 + strh r0, [r3, #0xa] + movs r0, #0x13 + strh r0, [r3, #0xc] + movs r0, #1 + strh r0, [r3, #0xe] + movs r0, #0xa + strh r0, [r3, #0x10] + movs r0, #0xc + b _0813A2FA +_0813A2E4: + movs r1, #0 + movs r0, #6 + strh r0, [r3, #8] + movs r0, #7 + strh r0, [r3, #0xa] + movs r0, #0x11 + strh r0, [r3, #0xc] + movs r0, #1 + strh r0, [r3, #0xe] + movs r0, #0xc +_0813A2F8: + strh r0, [r3, #0x10] +_0813A2FA: + strh r0, [r3, #0x12] + strh r1, [r3, #0x14] + strh r4, [r3, #0x26] + b _0813A30E +_0813A302: + ldr r1, _0813A314 + movs r0, #0x7f + strh r0, [r1] + adds r0, r4, #0 + bl DestroyTask +_0813A30E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813A314: .4byte 0x02037290 + thumb_func_end sub_0813A164 + + thumb_func_start sub_0813A318 +sub_0813A318: @ 0x0813A318 + push {r4, r5, r6, r7, lr} + sub sp, #0x20 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + ldr r1, _0813A410 + adds r5, r0, r1 + bl ScriptContext2_Enable + ldr r1, _0813A414 + movs r0, #0 + strh r0, [r1] + ldr r1, _0813A418 + movs r0, #0x40 + strb r0, [r1] + ldrh r0, [r5, #0x1e] + movs r1, #0 + bl sub_0813AAAC + ldrb r0, [r5, #0x1e] + movs r1, #0 + bl sub_0813AD2C + ldrb r2, [r5, #0xc] + ldrb r3, [r5, #0xe] + ldrb r0, [r5, #0x10] + str r0, [sp] + ldrb r0, [r5, #0x12] + str r0, [sp, #4] + movs r0, #0xf + str r0, [sp, #8] + movs r0, #0x5c + str r0, [sp, #0xc] + add r0, sp, #0x10 + movs r1, #0 + bl CreateWindowTemplate + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + str r0, [sp, #0x18] + str r1, [sp, #0x1c] + add r0, sp, #0x18 + bl AddWindow + movs r4, #0 + strh r0, [r5, #0x22] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl SetStandardWindowBorderStyle + ldr r6, _0813A41C + movs r1, #0xa + ldrsh r0, [r5, r1] + lsls r0, r0, #3 + bl AllocZeroed + str r0, [r6] + ldr r0, _0813A420 + strh r4, [r0] + bl sub_0813A434 + movs r3, #0 + movs r1, #0xa + ldrsh r0, [r5, r1] + cmp r3, r0 + bge _0813A3CE + mov ip, r6 + ldr r6, _0813A424 + ldr r4, _0813A428 +_0813A3A8: + mov r1, ip + ldr r0, [r1] + lsls r2, r3, #3 + adds r2, r2, r0 + lsls r1, r3, #2 + ldrh r0, [r4] + lsls r0, r0, #6 + adds r1, r1, r0 + adds r1, r1, r6 + ldr r0, [r1] + str r0, [r2] + str r3, [r2, #4] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + movs r1, #0xa + ldrsh r0, [r5, r1] + cmp r3, r0 + blt _0813A3A8 +_0813A3CE: + ldr r4, _0813A42C + ldrh r0, [r5, #0xa] + strh r0, [r4, #0xc] + ldrh r0, [r5, #8] + strh r0, [r4, #0xe] + ldrh r0, [r5, #0x22] + strb r0, [r4, #0x10] + adds r0, r7, #0 + bl sub_0813A69C + ldrh r1, [r5, #0x16] + ldrh r2, [r5, #0x18] + adds r0, r4, #0 + bl ListMenuInit + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x24] + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, _0813A410 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0813A430 + str r1, [r0] + add sp, #0x20 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0813A410: .4byte 0x03005B60 +_0813A414: .4byte 0x0203A834 +_0813A418: .4byte 0x0203A838 +_0813A41C: .4byte 0x0203A830 +_0813A420: .4byte 0x0203A836 +_0813A424: .4byte 0x0859274C +_0813A428: .4byte 0x02037280 +_0813A42C: .4byte 0x03005F10 +_0813A430: .4byte 0x0813A4F5 + thumb_func_end sub_0813A318 + + thumb_func_start sub_0813A434 +sub_0813A434: @ 0x0813A434 + ldr r1, _0813A468 + ldr r0, _0813A46C + ldr r0, [r0] + str r0, [r1] + ldr r0, _0813A470 + str r0, [r1, #4] + movs r0, #0 + str r0, [r1, #8] + movs r2, #0 + movs r0, #1 + strh r0, [r1, #0xc] + strh r0, [r1, #0xe] + strb r2, [r1, #0x10] + strb r2, [r1, #0x11] + movs r0, #8 + strb r0, [r1, #0x12] + strb r2, [r1, #0x13] + movs r0, #0x20 + strb r0, [r1, #0x14] + movs r0, #0x31 + strb r0, [r1, #0x15] + movs r0, #0 + strb r0, [r1, #0x16] + movs r0, #1 + strb r0, [r1, #0x17] + bx lr + .align 2, 0 +_0813A468: .4byte 0x03005F10 +_0813A46C: .4byte 0x0203A830 +_0813A470: .4byte 0x0813A475 + thumb_func_end sub_0813A434 + + thumb_func_start sub_0813A474 +sub_0813A474: @ 0x0813A474 + push {r4, r5, lr} + sub sp, #4 + movs r0, #5 + bl PlaySE + ldr r0, _0813A4E4 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _0813A4DC + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _0813A4E8 + adds r4, r4, r0 + ldrh r0, [r4, #0x24] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, sp + movs r2, #0 + bl ListMenuGetScrollAndRow + ldr r1, _0813A4EC + mov r0, sp + ldrh r0, [r0] + strh r0, [r1] + ldrh r0, [r4, #0x24] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, sp + bl ListMenuGetCurrentItemArrayId + ldrh r0, [r4, #0x1e] + ldr r5, _0813A4F0 + ldrh r1, [r5] + bl sub_0813AC90 + ldrh r0, [r4, #0x1e] + mov r1, sp + ldrh r1, [r1] + bl sub_0813AAAC + ldrb r0, [r4, #0x1e] + mov r1, sp + ldrh r1, [r1] + bl sub_0813AD6C + mov r0, sp + ldrh r0, [r0] + strh r0, [r5] +_0813A4DC: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0813A4E4: .4byte 0x0813A4F5 +_0813A4E8: .4byte 0x03005B60 +_0813A4EC: .4byte 0x0203A834 +_0813A4F0: .4byte 0x0203A836 + thumb_func_end sub_0813A474 + + thumb_func_start sub_0813A4F4 +sub_0813A4F4: @ 0x0813A4F4 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _0813A520 + adds r6, r0, r1 + ldrh r0, [r6, #0x24] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl ListMenu_ProcessInput + adds r4, r0, #0 + movs r0, #2 + rsbs r0, r0, #0 + cmp r4, r0 + beq _0813A524 + adds r0, #1 + cmp r4, r0 + bne _0813A538 + b _0813A56E + .align 2, 0 +_0813A520: .4byte 0x03005B60 +_0813A524: + ldr r1, _0813A534 + movs r0, #0x7f + strh r0, [r1] + movs r0, #5 + bl PlaySE + b _0813A554 + .align 2, 0 +_0813A534: .4byte 0x02037290 +_0813A538: + ldr r0, _0813A55C + strh r4, [r0] + movs r0, #5 + bl PlaySE + movs r1, #0x14 + ldrsh r0, [r6, r1] + cmp r0, #0 + beq _0813A554 + movs r1, #0xa + ldrsh r0, [r6, r1] + subs r0, #1 + cmp r4, r0 + bne _0813A560 +_0813A554: + adds r0, r5, #0 + bl sub_0813A578 + b _0813A56E + .align 2, 0 +_0813A55C: .4byte 0x02037290 +_0813A560: + adds r0, r5, #0 + bl sub_0813A740 + ldr r0, _0813A574 + str r0, [r6] + bl EnableBothScriptContexts +_0813A56E: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0813A574: .4byte 0x0813A609 + thumb_func_end sub_0813A4F4 + + thumb_func_start sub_0813A578 +sub_0813A578: @ 0x0813A578 + push {r4, r5, lr} + sub sp, #4 + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + ldr r0, _0813A600 + adds r4, r4, r0 + ldrh r0, [r4, #0x24] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, sp + bl ListMenuGetCurrentItemArrayId + ldrh r0, [r4, #0x1e] + mov r1, sp + ldrh r1, [r1] + bl sub_0813AC90 + adds r0, r5, #0 + bl sub_0813A740 + ldrh r0, [r4, #0x24] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + movs r2, #0 + bl DestroyListMenuTask + ldr r0, _0813A604 + ldr r0, [r0] + bl Free + ldrh r0, [r4, #0x22] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + bl ClearStdWindowAndFrameToTransparent + ldrh r0, [r4, #0x22] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl FillWindowPixelBuffer + ldrh r0, [r4, #0x22] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl CopyWindowToVram + ldrh r0, [r4, #0x22] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl RemoveWindow + adds r0, r5, #0 + bl DestroyTask + bl EnableBothScriptContexts + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0813A600: .4byte 0x03005B60 +_0813A604: .4byte 0x0203A830 + thumb_func_end sub_0813A578 + + thumb_func_start sub_0813A608 +sub_0813A608: @ 0x0813A608 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0813A630 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r2, #0x14 + ldrsh r0, [r1, r2] + cmp r0, #1 + beq _0813A62C + cmp r0, #2 + bne _0813A62C + movs r0, #1 + strh r0, [r1, #0x14] + ldr r0, _0813A634 + str r0, [r1] +_0813A62C: + pop {r0} + bx r0 + .align 2, 0 +_0813A630: .4byte 0x03005B60 +_0813A634: .4byte 0x0813A66D + thumb_func_end sub_0813A608 + + thumb_func_start sub_0813A638 +sub_0813A638: @ 0x0813A638 + push {lr} + ldr r0, _0813A650 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xff + bne _0813A654 + bl EnableBothScriptContexts + b _0813A664 + .align 2, 0 +_0813A650: .4byte 0x0813A609 +_0813A654: + ldr r0, _0813A668 + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x14] + adds r0, #1 + strh r0, [r1, #0x14] +_0813A664: + pop {r0} + bx r0 + .align 2, 0 +_0813A668: .4byte 0x03005B60 + thumb_func_end sub_0813A638 + + thumb_func_start sub_0813A66C +sub_0813A66C: @ 0x0813A66C + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl ScriptContext2_Enable + adds r0, r4, #0 + bl sub_0813A69C + ldr r1, _0813A694 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0813A698 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813A694: .4byte 0x03005B60 +_0813A698: .4byte 0x0813A4F5 + thumb_func_end sub_0813A66C + + thumb_func_start sub_0813A69C +sub_0813A69C: @ 0x0813A69C + push {r4, r5, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _0813A734 + adds r4, r1, r0 + mov r1, sp + ldr r0, _0813A738 + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} + ldr r0, [r0] + str r0, [r1] + movs r0, #8 + ldrsh r1, [r4, r0] + movs r2, #0xa + ldrsh r0, [r4, r2] + cmp r1, r0 + beq _0813A72C + mov r2, sp + movs r3, #0x10 + ldrsh r1, [r4, r3] + lsrs r0, r1, #0x1f + adds r1, r1, r0 + asrs r1, r1, #1 + lsls r1, r1, #3 + adds r1, #0xc + movs r5, #0xc + ldrsh r0, [r4, r5] + subs r0, #1 + lsls r0, r0, #3 + adds r1, r1, r0 + movs r3, #0 + strb r1, [r2, #1] + mov r1, sp + movs r0, #8 + strb r0, [r1, #2] + movs r0, #0x10 + ldrsh r1, [r4, r0] + lsrs r0, r1, #0x1f + adds r1, r1, r0 + asrs r1, r1, #1 + lsls r1, r1, #3 + adds r1, #0xc + movs r5, #0xc + ldrsh r0, [r4, r5] + subs r0, #1 + lsls r0, r0, #3 + adds r1, r1, r0 + strb r1, [r2, #4] + mov r1, sp + movs r2, #0x12 + ldrsh r0, [r4, r2] + lsls r0, r0, #3 + adds r0, #0xa + strb r0, [r1, #5] + mov r0, sp + strh r3, [r0, #6] + mov r2, sp + ldrh r0, [r4, #0xa] + ldrh r1, [r4, #8] + subs r0, r0, r1 + strh r0, [r2, #8] + ldr r1, _0813A73C + mov r0, sp + bl AddScrollIndicatorArrowPair + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x20] +_0813A72C: + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0813A734: .4byte 0x03005B60 +_0813A738: .4byte 0x08592A8C +_0813A73C: .4byte 0x0203A834 + thumb_func_end sub_0813A69C + + thumb_func_start sub_0813A740 +sub_0813A740: @ 0x0813A740 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _0813A76C + adds r2, r1, r0 + movs r0, #8 + ldrsh r1, [r2, r0] + movs r3, #0xa + ldrsh r0, [r2, r3] + cmp r1, r0 + beq _0813A766 + ldrh r0, [r2, #0x20] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl RemoveScrollIndicatorArrowPair +_0813A766: + pop {r0} + bx r0 + .align 2, 0 +_0813A76C: .4byte 0x03005B60 + thumb_func_end sub_0813A740 + + thumb_func_start nullsub_55 +nullsub_55: @ 0x0813A770 + bx lr + .align 2, 0 + thumb_func_end nullsub_55 + + thumb_func_start sub_0813A774 +sub_0813A774: @ 0x0813A774 + push {r4, r5, r6, lr} + movs r4, #0 + ldr r6, _0813A79C + ldr r0, _0813A7A0 + adds r5, r0, #0 +_0813A77E: + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r0, [r0, #0x13] + cmp r0, #0 + bne _0813A7A4 + subs r0, r5, r4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0 + bl VarSet + b _0813A7B0 + .align 2, 0 +_0813A79C: .4byte 0x020226A0 +_0813A7A0: .4byte 0x0000401F +_0813A7A4: + subs r0, r5, r4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x69 + bl VarSet +_0813A7B0: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #1 + bls _0813A77E + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_0813A774 + + thumb_func_start sub_0813A7C0 +sub_0813A7C0: @ 0x0813A7C0 + push {lr} + ldr r1, _0813A7F0 + ldrh r0, [r1] + cmp r0, #5 + bls _0813A7CE + movs r0, #0 + strh r0, [r1] +_0813A7CE: + ldrh r1, [r1] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0813A7F4 + adds r0, r0, r1 + bl GetNature + lsls r0, r0, #0x18 + ldr r1, _0813A7F8 + lsrs r0, r0, #0x16 + adds r0, r0, r1 + ldr r0, [r0] + bl ShowFieldMessage + pop {r0} + bx r0 + .align 2, 0 +_0813A7F0: .4byte 0x02037280 +_0813A7F4: .4byte 0x02024190 +_0813A7F8: .4byte 0x08592A9C + thumb_func_end sub_0813A7C0 + + thumb_func_start UpdateFrontierGambler +UpdateFrontierGambler: @ 0x0813A7FC + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r0, _0813A824 + bl GetVarPointer + adds r5, r0, #0 + ldrh r0, [r5] + adds r4, r4, r0 + strh r4, [r5] + ldrh r0, [r5] + movs r1, #0xc + bl __umodsi3 + strh r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0813A824: .4byte 0x00004030 + thumb_func_end UpdateFrontierGambler + + thumb_func_start sub_0813A828 +sub_0813A828: @ 0x0813A828 + push {r4, lr} + ldr r0, _0813A850 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r1, _0813A854 + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl ShowFieldMessage + ldr r0, _0813A858 + adds r1, r4, #0 + bl VarSet + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813A850: .4byte 0x00004030 +_0813A854: .4byte 0x08592B00 +_0813A858: .4byte 0x00004031 + thumb_func_end sub_0813A828 + + thumb_func_start sub_0813A85C +sub_0813A85C: @ 0x0813A85C + push {r4, lr} + ldr r4, _0813A878 + ldr r0, _0813A87C + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0xe + adds r0, r0, r4 + ldr r0, [r0] + bl ShowFieldMessage + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813A878: .4byte 0x08592B30 +_0813A87C: .4byte 0x00004031 + thumb_func_end sub_0813A85C + + thumb_func_start sub_0813A880 +sub_0813A880: @ 0x0813A880 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r0, _0813A8DC + bl VarGet + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + ldr r0, _0813A8E0 + bl VarGet + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r0, _0813A8E4 + bl VarGet + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r4, _0813A8E8 + adds r0, r4, #0 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bne _0813A8F8 + ldr r1, _0813A8EC + lsls r0, r6, #1 + adds r0, r0, r1 + ldrh r1, [r0] + lsls r0, r5, #8 + adds r0, r0, r7 + cmp r1, r0 + bne _0813A8F8 + mov r0, r8 + cmp r0, #0 + beq _0813A8F0 + adds r0, r4, #0 + movs r1, #2 + bl VarSet + b _0813A8F8 + .align 2, 0 +_0813A8DC: .4byte 0x000040CE +_0813A8E0: .4byte 0x00004031 +_0813A8E4: .4byte 0x000040CF +_0813A8E8: .4byte 0x00004033 +_0813A8EC: .4byte 0x08592B60 +_0813A8F0: + adds r0, r4, #0 + movs r1, #3 + bl VarSet +_0813A8F8: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0813A880 + + thumb_func_start sub_0813A904 +sub_0813A904: @ 0x0813A904 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0xc + ldr r5, _0813A974 + ldr r0, _0813A978 + bl AddWindow + strb r0, [r5] + ldrb r0, [r5] + movs r1, #0 + bl SetStandardWindowBorderStyle + ldrb r0, [r5] + ldr r2, _0813A97C + movs r4, #0 + str r4, [sp] + movs r1, #0xff + mov r8, r1 + str r1, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #0x38 + bl AddTextPrinterParameterized + ldr r6, _0813A980 + ldr r0, _0813A984 + ldr r0, [r0] + ldr r1, _0813A988 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r6, #0 + movs r2, #2 + movs r3, #4 + bl ConvertIntToDecimalStringN + ldrb r0, [r5] + str r4, [sp] + mov r1, r8 + str r1, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + adds r2, r6, #0 + movs r3, #0x18 + bl AddTextPrinterParameterized + ldrb r0, [r5] + movs r1, #2 + bl CopyWindowToVram + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0813A974: .4byte 0x0203A839 +_0813A978: .4byte 0x08592B78 +_0813A97C: .4byte 0x085CB0C8 +_0813A980: .4byte 0x02021C40 +_0813A984: .4byte 0x03005AF0 +_0813A988: .4byte 0x00000EB8 + thumb_func_end sub_0813A904 + + thumb_func_start sub_0813A98C +sub_0813A98C: @ 0x0813A98C + push {r4, lr} + sub sp, #0xc + ldr r4, _0813A9C4 + ldr r0, _0813A9C8 + ldr r0, [r0] + ldr r1, _0813A9CC + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r4, #0 + movs r2, #2 + movs r3, #4 + bl ConvertIntToDecimalStringN + ldr r0, _0813A9D0 + ldrb r0, [r0] + movs r1, #0 + str r1, [sp] + str r1, [sp, #4] + str r1, [sp, #8] + movs r1, #1 + adds r2, r4, #0 + movs r3, #0x18 + bl AddTextPrinterParameterized + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813A9C4: .4byte 0x02021C40 +_0813A9C8: .4byte 0x03005AF0 +_0813A9CC: .4byte 0x00000EB8 +_0813A9D0: .4byte 0x0203A839 + thumb_func_end sub_0813A98C + + thumb_func_start sub_0813A9D4 +sub_0813A9D4: @ 0x0813A9D4 + push {r4, lr} + ldr r4, _0813A9EC + ldrb r0, [r4] + movs r1, #1 + bl ClearStdWindowAndFrameToTransparent + ldrb r0, [r4] + bl RemoveWindow + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813A9EC: .4byte 0x0203A839 + thumb_func_end sub_0813A9D4 + + thumb_func_start sub_0813A9F0 +sub_0813A9F0: @ 0x0813A9F0 + push {lr} + ldr r0, _0813AA08 + ldr r0, [r0] + ldr r2, _0813AA0C + adds r1, r0, r2 + ldr r0, _0813AA10 + ldrh r2, [r1] + ldrh r0, [r0] + cmp r2, r0 + bhs _0813AA14 + movs r0, #0 + b _0813AA16 + .align 2, 0 +_0813AA08: .4byte 0x03005AF0 +_0813AA0C: .4byte 0x00000EB8 +_0813AA10: .4byte 0x02037280 +_0813AA14: + subs r0, r2, r0 +_0813AA16: + strh r0, [r1] + pop {r0} + bx r0 + thumb_func_end sub_0813A9F0 + + thumb_func_start sub_0813AA1C +sub_0813AA1C: @ 0x0813AA1C + push {lr} + ldr r0, _0813AA38 + ldr r0, [r0] + ldr r1, _0813AA3C + adds r2, r0, r1 + ldrh r1, [r2] + ldr r0, _0813AA40 + ldrh r0, [r0] + adds r1, r1, r0 + ldr r0, _0813AA44 + cmp r1, r0 + ble _0813AA48 + strh r0, [r2] + b _0813AA4A + .align 2, 0 +_0813AA38: .4byte 0x03005AF0 +_0813AA3C: .4byte 0x00000EB8 +_0813AA40: .4byte 0x02037280 +_0813AA44: .4byte 0x0000270F +_0813AA48: + strh r1, [r2] +_0813AA4A: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0813AA1C + + thumb_func_start sub_0813AA50 +sub_0813AA50: @ 0x0813AA50 + ldr r0, _0813AA5C + ldr r0, [r0] + ldr r1, _0813AA60 + adds r0, r0, r1 + ldrh r0, [r0] + bx lr + .align 2, 0 +_0813AA5C: .4byte 0x03005AF0 +_0813AA60: .4byte 0x00000EB8 + thumb_func_end sub_0813AA50 + + thumb_func_start sub_0813AA64 +sub_0813AA64: @ 0x0813AA64 + push {r4, lr} + ldr r4, _0813AA88 + ldr r0, _0813AA8C + bl AddWindow + strb r0, [r4] + ldrb r0, [r4] + movs r1, #0 + bl SetStandardWindowBorderStyle + ldrb r0, [r4] + movs r1, #2 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813AA88: .4byte 0x0203A83A +_0813AA8C: .4byte 0x08592B80 + thumb_func_end sub_0813AA64 + + thumb_func_start sub_0813AA90 +sub_0813AA90: @ 0x0813AA90 + push {r4, lr} + ldr r4, _0813AAA8 + ldrb r0, [r4] + movs r1, #1 + bl ClearStdWindowAndFrameToTransparent + ldrb r0, [r4] + bl RemoveWindow + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813AAA8: .4byte 0x0203A83A + thumb_func_end sub_0813AA90 + + thumb_func_start sub_0813AAAC +sub_0813AAAC: @ 0x0813AAAC + push {r4, r5, lr} + sub sp, #0x10 + lsls r0, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + lsrs r4, r0, #0x10 + ldr r1, _0813AAE8 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + cmp r0, #3 + bls _0813AAC4 + b _0813AC0E +_0813AAC4: + movs r0, #0xb0 + str r0, [sp] + movs r0, #0x20 + str r0, [sp, #4] + movs r0, #0 + movs r1, #0x11 + movs r2, #0 + movs r3, #0 + bl FillWindowPixelRect + cmp r4, #4 + beq _0813AB34 + cmp r4, #4 + bgt _0813AAEC + cmp r4, #3 + beq _0813AAF6 + b _0813AC0E + .align 2, 0 +_0813AAE8: .4byte 0xFFFD0000 +_0813AAEC: + cmp r4, #5 + beq _0813ABA8 + cmp r4, #6 + beq _0813ABE0 + b _0813AC0E +_0813AAF6: + ldr r1, _0813AB28 + lsls r0, r5, #2 + adds r0, r0, r1 + ldr r2, [r0] + movs r0, #0 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + str r4, [sp, #0xc] + movs r0, #0 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized2 + ldr r1, _0813AB2C + lsls r0, r5, #1 + adds r1, r0, r1 + ldrh r5, [r1] + ldr r0, _0813AB30 + cmp r5, r0 + beq _0813AB64 + b _0813AB78 + .align 2, 0 +_0813AB28: .4byte 0x08592BCC +_0813AB2C: .4byte 0x08592B88 +_0813AB30: .4byte 0x0000FFFF +_0813AB34: + ldr r1, _0813AB6C + lsls r0, r5, #2 + adds r0, r0, r1 + ldr r2, [r0] + movs r0, #0 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + movs r0, #3 + str r0, [sp, #0xc] + movs r0, #0 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized2 + ldr r1, _0813AB70 + lsls r0, r5, #1 + adds r1, r0, r1 + ldrh r5, [r1] + ldr r0, _0813AB74 + cmp r5, r0 + bne _0813AB78 +_0813AB64: + ldrh r0, [r1] + bl sub_0813AC20 + b _0813AC0E + .align 2, 0 +_0813AB6C: .4byte 0x08592BF8 +_0813AB70: .4byte 0x08592B9E +_0813AB74: .4byte 0x0000FFFF +_0813AB78: + ldr r4, _0813ABA0 + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl FreeSpritePaletteByTag + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + str r4, [sp] + str r4, [sp, #4] + movs r1, #0x21 + movs r2, #0x58 + movs r3, #0 + bl AddDecorationIconObject + ldr r1, _0813ABA4 + strb r0, [r1] + b _0813AC0E + .align 2, 0 +_0813ABA0: .4byte 0x0000157C +_0813ABA4: .4byte 0x0203A838 +_0813ABA8: + ldr r1, _0813ABD8 + lsls r0, r5, #2 + adds r0, r0, r1 + ldr r2, [r0] + movs r0, #0 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + movs r0, #3 + str r0, [sp, #0xc] + movs r0, #0 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized2 + ldr r1, _0813ABDC + lsls r0, r5, #1 + adds r0, r0, r1 + ldrh r0, [r0] + bl sub_0813AC20 + b _0813AC0E + .align 2, 0 +_0813ABD8: .4byte 0x08592C10 +_0813ABDC: .4byte 0x08592BAA +_0813ABE0: + ldr r1, _0813AC18 + lsls r0, r5, #2 + adds r0, r0, r1 + ldr r2, [r0] + movs r0, #0 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + movs r0, #3 + str r0, [sp, #0xc] + movs r0, #0 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized2 + ldr r1, _0813AC1C + lsls r0, r5, #1 + adds r0, r0, r1 + ldrh r0, [r0] + bl sub_0813AC20 +_0813AC0E: + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0813AC18: .4byte 0x08592C2C +_0813AC1C: .4byte 0x08592BB8 + thumb_func_end sub_0813AAAC + + thumb_func_start sub_0813AC20 +sub_0813AC20: @ 0x0813AC20 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + ldr r4, _0813AC84 + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl FreeSpritePaletteByTag + adds r0, r4, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl AddItemIconSprite + ldr r4, _0813AC88 + strb r0, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _0813AC7E + ldr r3, _0813AC8C + ldrb r0, [r4] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrb r2, [r1, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #5] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r1, #0x24 + strh r1, [r0, #0x20] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r1, #0x5c + strh r1, [r0, #0x22] +_0813AC7E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0813AC84: .4byte 0x0000157C +_0813AC88: .4byte 0x0203A838 +_0813AC8C: .4byte 0x020205AC + thumb_func_end sub_0813AC20 + + thumb_func_start sub_0813AC90 +sub_0813AC90: @ 0x0813AC90 + push {lr} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r2, _0813ACC0 + ldrb r0, [r2] + cmp r0, #0x40 + beq _0813ACBC + cmp r1, #6 + bgt _0813ACB6 + cmp r1, #3 + blt _0813ACB6 + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0813ACC4 + adds r0, r0, r1 + bl DestroySpriteAndFreeResources +_0813ACB6: + ldr r1, _0813ACC0 + movs r0, #0x40 + strb r0, [r1] +_0813ACBC: + pop {r0} + bx r0 + .align 2, 0 +_0813ACC0: .4byte 0x0203A838 +_0813ACC4: .4byte 0x020205AC + thumb_func_end sub_0813AC90 + + thumb_func_start sub_0813ACC8 +sub_0813ACC8: @ 0x0813ACC8 + push {lr} + ldr r0, _0813ACEC + ldrh r0, [r0] + cmp r0, #0 + beq _0813AD00 + ldr r0, _0813ACF0 + ldr r2, _0813ACF4 + ldr r1, _0813ACF8 + ldrh r1, [r1] + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r1, [r1] + lsls r1, r1, #3 + ldr r2, _0813ACFC + adds r1, r1, r2 + bl StringCopy + b _0813AD18 + .align 2, 0 +_0813ACEC: .4byte 0x02037282 +_0813ACF0: .4byte 0x02021C40 +_0813ACF4: .4byte 0x08592C68 +_0813ACF8: .4byte 0x02037280 +_0813ACFC: .4byte 0x082EACC4 +_0813AD00: + ldr r0, _0813AD1C + ldr r2, _0813AD20 + ldr r1, _0813AD24 + ldrh r1, [r1] + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r1, [r1] + lsls r1, r1, #3 + ldr r2, _0813AD28 + adds r1, r1, r2 + bl StringCopy +_0813AD18: + pop {r0} + bx r0 + .align 2, 0 +_0813AD1C: .4byte 0x02021C40 +_0813AD20: .4byte 0x08592C54 +_0813AD24: .4byte 0x02037280 +_0813AD28: .4byte 0x082EACC4 + thumb_func_end sub_0813ACC8 + + thumb_func_start sub_0813AD2C +sub_0813AD2C: @ 0x0813AD2C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + lsrs r6, r0, #0x18 + movs r1, #0xf7 + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0813AD5C + ldr r4, _0813AD64 + ldr r0, _0813AD68 + bl AddWindow + strb r0, [r4] + ldrb r0, [r4] + movs r1, #0 + bl SetStandardWindowBorderStyle + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0813AD6C +_0813AD5C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0813AD64: .4byte 0x0203A82A +_0813AD68: .4byte 0x08592C7C + thumb_func_end sub_0813AD2C + + thumb_func_start sub_0813AD6C +sub_0813AD6C: @ 0x0813AD6C + push {r4, r5, r6, r7, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + adds r7, r5, #0 + lsrs r6, r0, #0x18 + movs r1, #0xf7 + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0813ADE4 + ldr r4, _0813ADC0 + ldrb r0, [r4] + movs r1, #0x50 + str r1, [sp] + movs r1, #0x30 + str r1, [sp, #4] + movs r1, #0x11 + movs r2, #0 + movs r3, #0 + bl FillWindowPixelRect + cmp r6, #0xa + bne _0813ADC8 + ldrb r0, [r4] + ldr r2, _0813ADC4 + lsls r1, r5, #2 + adds r1, r1, r2 + ldr r2, [r1] + movs r1, #2 + str r1, [sp] + movs r1, #0 + str r1, [sp, #4] + str r1, [sp, #8] + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + b _0813ADE4 + .align 2, 0 +_0813ADC0: .4byte 0x0203A82A +_0813ADC4: .4byte 0x08592CB0 +_0813ADC8: + ldrb r0, [r4] + ldr r2, _0813ADEC + lsls r1, r7, #2 + adds r1, r1, r2 + ldr r2, [r1] + movs r1, #2 + str r1, [sp] + movs r1, #0 + str r1, [sp, #4] + str r1, [sp, #8] + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized +_0813ADE4: + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0813ADEC: .4byte 0x08592C84 + thumb_func_end sub_0813AD6C + + thumb_func_start sub_0813ADF0 +sub_0813ADF0: @ 0x0813ADF0 + push {r4, lr} + ldr r4, _0813AE08 + ldrb r0, [r4] + movs r1, #1 + bl ClearStdWindowAndFrameToTransparent + ldrb r0, [r4] + bl RemoveWindow + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813AE08: .4byte 0x0203A82A + thumb_func_end sub_0813ADF0 + + thumb_func_start sub_0813AE0C +sub_0813AE0C: @ 0x0813AE0C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x18 + ldr r0, _0813AED8 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xff + beq _0813AEC8 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + ldr r1, _0813AEDC + adds r6, r0, r1 + ldrh r0, [r6, #0x24] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r4, sp + adds r4, #0x16 + add r1, sp, #0x14 + adds r2, r4, #0 + bl ListMenuGetScrollAndRow + ldrh r0, [r6, #0x22] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl SetStandardWindowBorderStyle + movs r5, #0 + mov sb, r4 + ldr r0, _0813AEE0 + mov r8, r0 + movs r4, #0 +_0813AE56: + ldrh r0, [r6, #0x22] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add r1, sp, #0x14 + ldrh r2, [r1] + adds r2, r2, r5 + lsls r2, r2, #2 + ldr r1, _0813AEE4 + ldrh r1, [r1] + lsls r1, r1, #6 + adds r2, r2, r1 + add r2, r8 + ldr r2, [r2] + lsls r1, r5, #0x1c + lsrs r1, r1, #0x18 + str r1, [sp] + movs r7, #0xff + str r7, [sp, #4] + str r4, [sp, #8] + str r4, [sp, #0xc] + str r4, [sp, #0x10] + movs r1, #1 + movs r3, #0xa + bl AddTextPrinterParameterized5 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #5 + bls _0813AE56 + ldrh r0, [r6, #0x22] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0813AEE8 + mov r3, sb + ldrh r1, [r3] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x18 + str r1, [sp] + str r7, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + ldrh r0, [r6, #0x22] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl PutWindowTilemap + ldrh r0, [r6, #0x22] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #3 + bl CopyWindowToVram +_0813AEC8: + add sp, #0x18 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0813AED8: .4byte 0x0813A609 +_0813AEDC: .4byte 0x03005B60 +_0813AEE0: .4byte 0x0859274C +_0813AEE4: .4byte 0x02037280 +_0813AEE8: .4byte 0x085C9299 + thumb_func_end sub_0813AE0C + + thumb_func_start sub_0813AEEC +sub_0813AEEC: @ 0x0813AEEC + push {r4, lr} + movs r1, #0 + ldr r0, _0813AF30 + strh r1, [r0] + ldr r0, _0813AF34 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r0, _0813AF38 + bl VarGet + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r4, #0 + beq _0813AF50 + movs r2, #0 + lsls r1, r1, #1 + ldr r3, _0813AF3C + ldr r0, _0813AF40 + adds r0, r1, r0 + ldrh r1, [r0] +_0813AF1A: + lsls r0, r2, #1 + adds r0, r0, r3 + ldrh r0, [r0] + cmp r0, r1 + beq _0813AF44 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x1d + bls _0813AF1A + b _0813AF70 + .align 2, 0 +_0813AF30: .4byte 0x02037282 +_0813AF34: .4byte 0x0000400E +_0813AF38: .4byte 0x0000400D +_0813AF3C: .4byte 0x085E08C4 +_0813AF40: .4byte 0x08592C68 +_0813AF44: + ldr r0, _0813AF4C + strh r2, [r0] + b _0813AF70 + .align 2, 0 +_0813AF4C: .4byte 0x02037282 +_0813AF50: + movs r2, #0 + lsls r1, r1, #1 + ldr r3, _0813AF78 + ldr r0, _0813AF7C + adds r0, r1, r0 + ldrh r1, [r0] +_0813AF5C: + lsls r0, r2, #1 + adds r0, r0, r3 + ldrh r0, [r0] + cmp r0, r1 + beq _0813AF44 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x1d + bls _0813AF5C +_0813AF70: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813AF78: .4byte 0x085E08C4 +_0813AF7C: .4byte 0x08592C54 + thumb_func_end sub_0813AEEC + + thumb_func_start sub_0813AF80 +sub_0813AF80: @ 0x0813AF80 + push {r4, r5, lr} + ldr r0, _0813AFF4 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0xff + beq _0813AFEE + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + ldr r0, _0813AFF8 + adds r4, r4, r0 + ldrh r0, [r4, #0x24] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + movs r2, #0 + bl DestroyListMenuTask + ldr r0, _0813AFFC + ldr r0, [r0] + bl Free + ldrh r0, [r4, #0x22] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + bl ClearStdWindowAndFrameToTransparent + ldrh r0, [r4, #0x22] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl FillWindowPixelBuffer + ldrh r0, [r4, #0x22] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl ClearWindowTilemap + ldrh r0, [r4, #0x22] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl CopyWindowToVram + ldrh r0, [r4, #0x22] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl RemoveWindow + adds r0, r5, #0 + bl DestroyTask +_0813AFEE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0813AFF4: .4byte 0x0813A609 +_0813AFF8: .4byte 0x03005B60 +_0813AFFC: .4byte 0x0203A830 + thumb_func_end sub_0813AF80 + + thumb_func_start DoDeoxysRockInteraction +DoDeoxysRockInteraction: @ 0x0813B000 + push {lr} + ldr r0, _0813B010 + movs r1, #8 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_0813B010: .4byte 0x0813B015 + thumb_func_end DoDeoxysRockInteraction + + thumb_func_start Task_DeoxysRockInteraction +Task_DeoxysRockInteraction: @ 0x0813B014 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _0813B034 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0813B03C + ldr r1, _0813B038 + movs r0, #3 + b _0813B0A2 + .align 2, 0 +_0813B034: .4byte 0x000008D4 +_0813B038: .4byte 0x02037290 +_0813B03C: + ldr r0, _0813B084 + mov r8, r0 + bl VarGet + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r4, _0813B088 + adds r0, r4, #0 + bl VarGet + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r0, r4, #0 + movs r1, #0 + bl VarSet + cmp r5, #0 + beq _0813B094 + ldr r0, _0813B08C + subs r1, r5, #1 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, r6 + bhs _0813B094 + movs r0, #0 + bl ChangeDeoxysRockLevel + mov r0, r8 + movs r1, #0 + bl VarSet + ldr r1, _0813B090 + movs r0, #0 + strh r0, [r1] + b _0813B0A8 + .align 2, 0 +_0813B084: .4byte 0x00004035 +_0813B088: .4byte 0x00004034 +_0813B08C: .4byte 0x08592E52 +_0813B090: .4byte 0x02037290 +_0813B094: + cmp r5, #0xa + bne _0813B0B8 + ldr r0, _0813B0B0 + bl FlagSet + ldr r1, _0813B0B4 + movs r0, #2 +_0813B0A2: + strh r0, [r1] + bl EnableBothScriptContexts +_0813B0A8: + adds r0, r7, #0 + bl DestroyTask + b _0813B0DA + .align 2, 0 +_0813B0B0: .4byte 0x000008D4 +_0813B0B4: .4byte 0x02037290 +_0813B0B8: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + bl ChangeDeoxysRockLevel + ldr r0, _0813B0E4 + adds r1, r5, #0 + bl VarSet + ldr r1, _0813B0E8 + movs r0, #1 + strh r0, [r1] + adds r0, r7, #0 + bl DestroyTask +_0813B0DA: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0813B0E4: .4byte 0x00004035 +_0813B0E8: .4byte 0x02037290 + thumb_func_end Task_DeoxysRockInteraction + + thumb_func_start ChangeDeoxysRockLevel +ChangeDeoxysRockLevel: @ 0x0813B0EC + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #5 + ldr r1, _0813B120 + adds r0, r0, r1 + movs r1, #0xd0 + lsls r1, r1, #1 + movs r2, #8 + bl LoadPalette + ldr r0, _0813B124 + ldr r0, [r0] + ldrb r1, [r0, #5] + ldrb r2, [r0, #4] + movs r0, #1 + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + cmp r4, #0 + bne _0813B128 + movs r0, #0xc4 + bl PlaySE + b _0813B130 + .align 2, 0 +_0813B120: .4byte 0x08592CDC +_0813B124: .4byte 0x03005AEC +_0813B128: + movs r0, #0x82 + lsls r0, r0, #1 + bl PlaySE +_0813B130: + ldr r0, _0813B164 + movs r1, #8 + bl CreateTask + ldr r3, _0813B168 + movs r0, #1 + str r0, [r3] + movs r0, #0x3a + str r0, [r3, #4] + movs r0, #0x1a + str r0, [r3, #8] + ldr r0, _0813B16C + lsls r2, r4, #1 + adds r1, r2, r0 + ldrb r1, [r1] + str r1, [r3, #0xc] + adds r0, #1 + adds r0, r2, r0 + ldrb r0, [r0] + str r0, [r3, #0x10] + adds r5, r2, #0 + cmp r4, #0 + bne _0813B170 + movs r0, #0x3c + b _0813B172 + .align 2, 0 +_0813B164: .4byte 0x0813B199 +_0813B168: .4byte 0x020388A8 +_0813B16C: .4byte 0x08592E3C +_0813B170: + movs r0, #5 +_0813B172: + str r0, [r3, #0x14] + movs r0, #0x42 + bl FieldEffectStart + ldr r0, _0813B194 + adds r1, r5, r0 + ldrb r1, [r1] + adds r0, #1 + adds r0, r5, r0 + ldrb r2, [r0] + movs r0, #1 + bl Overworld_SetEventObjTemplateCoords + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0813B194: .4byte 0x08592E3C + thumb_func_end ChangeDeoxysRockLevel + + thumb_func_start WaitForDeoxysRockMovement +WaitForDeoxysRockMovement: @ 0x0813B198 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #0x42 + bl FieldEffectActiveListContains + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0813B1B4 + bl EnableBothScriptContexts + adds r0, r4, #0 + bl DestroyTask +_0813B1B4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WaitForDeoxysRockMovement + + thumb_func_start IncrementBirthIslandRockStepCount +IncrementBirthIslandRockStepCount: @ 0x0813B1BC + push {r4, lr} + ldr r4, _0813B1EC + adds r0, r4, #0 + bl VarGet + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _0813B1F0 + ldr r0, [r0] + ldrh r1, [r0, #4] + ldr r0, _0813B1F4 + cmp r1, r0 + bne _0813B200 + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0x63 + bls _0813B1F8 + adds r0, r4, #0 + movs r1, #0 + bl VarSet + b _0813B200 + .align 2, 0 +_0813B1EC: .4byte 0x00004034 +_0813B1F0: .4byte 0x03005AEC +_0813B1F4: .4byte 0x00003A1A +_0813B1F8: + adds r0, r4, #0 + adds r1, r2, #0 + bl VarSet +_0813B200: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end IncrementBirthIslandRockStepCount + + thumb_func_start sub_0813B208 +sub_0813B208: @ 0x0813B208 + push {lr} + ldr r0, _0813B234 + bl VarGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x13 + ldr r1, _0813B238 + adds r0, r0, r1 + movs r1, #0xd0 + lsls r1, r1, #1 + movs r2, #8 + bl LoadPalette + movs r0, #0x80 + lsls r0, r0, #0x13 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + pop {r0} + bx r0 + .align 2, 0 +_0813B234: .4byte 0x00004035 +_0813B238: .4byte 0x08592CDC + thumb_func_end sub_0813B208 + + thumb_func_start set_unknown_box_id +set_unknown_box_id: @ 0x0813B23C + ldr r1, _0813B244 + strb r0, [r1] + bx lr + .align 2, 0 +_0813B244: .4byte 0x0203A83B + thumb_func_end set_unknown_box_id + + thumb_func_start get_unknown_box_id +get_unknown_box_id: @ 0x0813B248 + ldr r0, _0813B250 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0813B250: .4byte 0x0203A83B + thumb_func_end get_unknown_box_id + + thumb_func_start sub_0813B254 +sub_0813B254: @ 0x0813B254 + push {r4, r5, lr} + ldr r5, _0813B288 + adds r0, r5, #0 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0813B290 + bl StorageGetCurrentBox + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _0813B28C + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r4, r0 + beq _0813B290 + adds r0, r5, #0 + bl FlagSet + movs r0, #1 + b _0813B292 + .align 2, 0 +_0813B288: .4byte 0x000008D7 +_0813B28C: .4byte 0x00004036 +_0813B290: + movs r0, #0 +_0813B292: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_0813B254 + + thumb_func_start sub_0813B298 +sub_0813B298: @ 0x0813B298 + push {r4, r5, r6, r7, lr} + ldr r0, _0813B2F0 + bl VarGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl set_unknown_box_id + bl StorageGetCurrentBox + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_0813B2B0: + movs r5, #0 + lsls r6, r4, #0x18 + lsls r7, r4, #0x10 +_0813B2B6: + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + lsrs r0, r6, #0x18 + bl GetBoxedMonPtr + movs r1, #0xb + movs r2, #0 + bl GetBoxMonData + cmp r0, #0 + bne _0813B2F8 + bl get_unknown_box_id + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r4 + beq _0813B2DE + ldr r0, _0813B2F4 + bl FlagClear +_0813B2DE: + ldr r0, _0813B2F0 + lsrs r1, r7, #0x10 + bl VarSet + bl sub_0813B254 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0813B314 + .align 2, 0 +_0813B2F0: .4byte 0x00004036 +_0813B2F4: .4byte 0x000008D7 +_0813B2F8: + adds r5, #1 + cmp r5, #0x1d + ble _0813B2B6 + adds r4, #1 + cmp r4, #0xe + bne _0813B306 + movs r4, #0 +_0813B306: + bl StorageGetCurrentBox + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + bne _0813B2B0 + movs r0, #0 +_0813B314: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0813B298 + + thumb_func_start CreateUnusualWeatherEvent +CreateUnusualWeatherEvent: @ 0x0813B31C + push {r4, lr} + bl Random + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, _0813B35C + movs r1, #0 + bl VarSet + movs r0, #0xdf + lsls r0, r0, #1 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0813B378 + ldr r0, _0813B360 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0813B368 + ldr r0, _0813B364 + movs r1, #7 + ands r4, r1 + adds r1, r4, #0 + adds r1, #9 + bl VarSet + b _0813B3A2 + .align 2, 0 +_0813B35C: .4byte 0x00004038 +_0813B360: .4byte 0x000001BF +_0813B364: .4byte 0x00004037 +_0813B368: + movs r0, #1 + ands r4, r0 + cmp r4, #0 + bne _0813B38C + bl Random + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_0813B378: + ldr r0, _0813B388 + movs r1, #7 + ands r4, r1 + adds r1, r4, #1 + bl VarSet + b _0813B3A2 + .align 2, 0 +_0813B388: .4byte 0x00004037 +_0813B38C: + bl Random + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, _0813B3A8 + movs r1, #7 + ands r4, r1 + adds r1, r4, #0 + adds r1, #9 + bl VarSet +_0813B3A2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813B3A8: .4byte 0x00004037 + thumb_func_end CreateUnusualWeatherEvent + + thumb_func_start GetUnusualWeatherMapNameAndType +GetUnusualWeatherMapNameAndType: @ 0x0813B3AC + push {r4, lr} + ldr r0, _0813B3D4 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r0, _0813B3D8 + ldr r2, _0813B3DC + subs r1, r4, #1 + adds r1, r1, r2 + ldrb r1, [r1] + movs r2, #0 + bl GetMapName + cmp r4, #8 + bls _0813B3E0 + movs r0, #1 + b _0813B3E2 + .align 2, 0 +_0813B3D4: .4byte 0x00004037 +_0813B3D8: .4byte 0x02021C40 +_0813B3DC: .4byte 0x08592E5C +_0813B3E0: + movs r0, #0 +_0813B3E2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetUnusualWeatherMapNameAndType + + thumb_func_start UnusualWeatherHasExpired +UnusualWeatherHasExpired: @ 0x0813B3E8 + push {r4, r5, r6, lr} + ldr r5, _0813B438 + adds r0, r5, #0 + bl VarGet + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, _0813B43C + bl VarGet + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #0 + beq _0813B4B4 + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, _0813B440 + cmp r4, r0 + bls _0813B4AC + adds r0, r5, #0 + movs r1, #0 + bl VarSet + ldr r0, _0813B444 + ldr r1, [r0] + movs r0, #4 + ldrsb r0, [r1, r0] + cmp r0, #0x18 + bne _0813B44C + movs r0, #5 + ldrsb r0, [r1, r0] + cmp r0, #0x69 + bgt _0813B44C + cmp r0, #0x65 + blt _0813B44C + ldr r0, _0813B448 + movs r1, #1 + b _0813B4B0 + .align 2, 0 +_0813B438: .4byte 0x00004038 +_0813B43C: .4byte 0x00004037 +_0813B440: .4byte 0x000003E7 +_0813B444: .4byte 0x03005AEC +_0813B448: .4byte 0x00004039 +_0813B44C: + ldr r0, _0813B474 + ldr r2, [r0] + movs r1, #4 + ldrsb r1, [r2, r1] + adds r3, r0, #0 + cmp r1, #0 + bne _0813B47C + movs r0, #5 + ldrsb r0, [r2, r0] + cmp r0, #0x34 + beq _0813B46E + cmp r0, #0x34 + blt _0813B47C + cmp r0, #0x38 + bgt _0813B47C + cmp r0, #0x36 + blt _0813B47C +_0813B46E: + ldr r0, _0813B478 + movs r1, #1 + b _0813B4B0 + .align 2, 0 +_0813B474: .4byte 0x03005AEC +_0813B478: .4byte 0x00004039 +_0813B47C: + ldr r3, [r3] + movs r2, #5 + ldrsb r2, [r3, r2] + ldr r1, _0813B49C + subs r0, r6, #1 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r2, r0 + bne _0813B4A0 + movs r0, #4 + ldrsb r0, [r3, r0] + cmp r0, #0 + bne _0813B4A0 + movs r0, #1 + b _0813B4B6 + .align 2, 0 +_0813B49C: .4byte 0x08592E6C +_0813B4A0: + ldr r0, _0813B4A8 + movs r1, #0 + b _0813B4B0 + .align 2, 0 +_0813B4A8: .4byte 0x00004037 +_0813B4AC: + adds r0, r5, #0 + adds r1, r4, #0 +_0813B4B0: + bl VarSet +_0813B4B4: + movs r0, #0 +_0813B4B6: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end UnusualWeatherHasExpired + + thumb_func_start Unused_SetWeatherSunny +Unused_SetWeatherSunny: @ 0x0813B4BC + push {lr} + movs r0, #2 + bl SetCurrentAndNextWeather + pop {r0} + bx r0 + thumb_func_end Unused_SetWeatherSunny + + thumb_func_start sub_0813B4C8 +sub_0813B4C8: @ 0x0813B4C8 + push {r4, r5, r6, r7, lr} + movs r3, #0 + ldr r0, _0813B4FC + ldr r4, [r0] + movs r6, #4 + ldrsb r6, [r4, r6] + ldr r5, _0813B500 + adds r0, r5, #2 + mov ip, r0 + adds r7, r5, #1 +_0813B4DC: + lsls r0, r3, #1 + adds r2, r0, r3 + adds r0, r2, r5 + ldrb r0, [r0] + cmp r6, r0 + bne _0813B504 + movs r1, #5 + ldrsb r1, [r4, r1] + adds r0, r2, r7 + ldrb r0, [r0] + cmp r1, r0 + bne _0813B504 + mov r1, ip + adds r0, r2, r1 + ldrb r0, [r0] + b _0813B510 + .align 2, 0 +_0813B4FC: .4byte 0x03005AEC +_0813B500: .4byte 0x08592E7C +_0813B504: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0xb + bls _0813B4DC + movs r0, #1 +_0813B510: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0813B4C8 + + thumb_func_start sub_0813B518 +sub_0813B518: @ 0x0813B518 + push {lr} + ldr r0, _0813B540 + ldrh r0, [r0] + bl GetRematchIdxByTrainerIdx + cmp r0, #0 + blt _0813B544 + movs r1, #0xae + lsls r1, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0813B544 + movs r0, #1 + b _0813B546 + .align 2, 0 +_0813B540: .4byte 0x02037280 +_0813B544: + movs r0, #0 +_0813B546: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0813B518 + + thumb_func_start sub_0813B54C +sub_0813B54C: @ 0x0813B54C + push {lr} + ldr r0, _0813B560 + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0813B564 + movs r0, #1 + b _0813B566 + .align 2, 0 +_0813B560: .4byte 0x0000403F +_0813B564: + movs r0, #0 +_0813B566: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0813B54C + + thumb_func_start sub_0813B56C +sub_0813B56C: @ 0x0813B56C + push {lr} + ldr r2, _0813B590 + ldr r1, _0813B594 + ldr r0, [r1] + str r0, [r2] + movs r0, #0 + str r0, [r1] + ldr r0, _0813B598 + ldrb r0, [r0] + cmp r0, #0 + bne _0813B58A + ldr r0, _0813B59C + movs r1, #5 + bl CreateTask +_0813B58A: + pop {r0} + bx r0 + .align 2, 0 +_0813B590: .4byte 0x0203A83C +_0813B594: .4byte 0x02022C90 +_0813B598: .4byte 0x030031C4 +_0813B59C: .4byte 0x080B3251 + thumb_func_end sub_0813B56C + + thumb_func_start sub_0813B5A0 +sub_0813B5A0: @ 0x0813B5A0 + push {lr} + ldr r0, _0813B5B0 + movs r1, #5 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_0813B5B0: .4byte 0x0813B5B5 + thumb_func_end sub_0813B5A0 + + thumb_func_start sub_0813B5B4 +sub_0813B5B4: @ 0x0813B5B4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _0813B5D8 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #8 + ldrsh r0, [r0, r1] + cmp r0, #9 + bls _0813B5CE + b _0813B7FE +_0813B5CE: + lsls r0, r0, #2 + ldr r1, _0813B5DC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0813B5D8: .4byte 0x03005B60 +_0813B5DC: .4byte 0x0813B5E0 +_0813B5E0: @ jump table + .4byte _0813B608 @ case 0 + .4byte _0813B61C @ case 1 + .4byte _0813B64C @ case 2 + .4byte _0813B6EC @ case 3 + .4byte _0813B71C @ case 4 + .4byte _0813B760 @ case 5 + .4byte _0813B79C @ case 6 + .4byte _0813B7AA @ case 7 + .4byte _0813B7BC @ case 8 + .4byte _0813B7E0 @ case 9 +_0813B608: + ldr r0, _0813B618 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0813B616 + b _0813B7FE +_0813B616: + b _0813B7C8 + .align 2, 0 +_0813B618: .4byte 0x080B3251 +_0813B61C: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0813B62A + b _0813B7FE +_0813B62A: + bl GetMultiplayerId + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0813B636 + b _0813B7C8 +_0813B636: + bl bitmask_all_link_players_but_self + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0813B648 + movs r2, #2 + bl SendBlock + b _0813B740 + .align 2, 0 +_0813B648: .4byte 0x02037280 +_0813B64C: + bl GetBlockReceivedStatus + movs r1, #2 + ands r1, r0 + cmp r1, #0 + bne _0813B65A + b _0813B7FE +_0813B65A: + bl GetMultiplayerId + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0813B666 + b _0813B7C8 +_0813B666: + ldr r5, _0813B690 + ldr r0, _0813B694 + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r5] + movs r0, #1 + bl ResetBlockReceivedFlag + ldr r0, _0813B698 + ldrh r0, [r0] + cmp r0, #1 + bne _0813B6A0 + ldrh r1, [r5] + cmp r1, #1 + bne _0813B6A0 + ldr r0, _0813B69C + strh r1, [r0] + b _0813B7C8 + .align 2, 0 +_0813B690: .4byte 0x02037282 +_0813B694: .4byte 0x0202207C +_0813B698: .4byte 0x02037280 +_0813B69C: .4byte 0x02037290 +_0813B6A0: + ldr r0, _0813B6B8 + ldrh r1, [r0] + adds r2, r0, #0 + cmp r1, #0 + bne _0813B6C4 + ldr r0, _0813B6BC + ldrh r0, [r0] + cmp r0, #1 + bne _0813B6C4 + ldr r1, _0813B6C0 + movs r0, #2 + b _0813B6E4 + .align 2, 0 +_0813B6B8: .4byte 0x02037280 +_0813B6BC: .4byte 0x02037282 +_0813B6C0: .4byte 0x02037290 +_0813B6C4: + ldrh r0, [r2] + cmp r0, #1 + bne _0813B6E0 + ldr r0, _0813B6D8 + ldrh r0, [r0] + cmp r0, #0 + bne _0813B6E0 + ldr r1, _0813B6DC + movs r0, #3 + b _0813B6E4 + .align 2, 0 +_0813B6D8: .4byte 0x02037282 +_0813B6DC: .4byte 0x02037290 +_0813B6E0: + ldr r1, _0813B6E8 + movs r0, #0 +_0813B6E4: + strh r0, [r1] + b _0813B7C8 + .align 2, 0 +_0813B6E8: .4byte 0x02037290 +_0813B6EC: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0813B6FA + b _0813B7FE +_0813B6FA: + bl GetMultiplayerId + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0813B7C8 + bl bitmask_all_link_players_but_self + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0813B718 + movs r2, #2 + bl SendBlock + b _0813B740 + .align 2, 0 +_0813B718: .4byte 0x02037290 +_0813B71C: + bl GetBlockReceivedStatus + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0813B7FE + bl GetMultiplayerId + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0813B7C8 + ldr r1, _0813B754 + ldr r0, _0813B758 + ldrh r0, [r0] + strh r0, [r1] + movs r0, #0 + bl ResetBlockReceivedFlag +_0813B740: + ldr r1, _0813B75C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #8] + adds r1, #1 + strh r1, [r0, #8] + b _0813B7FE + .align 2, 0 +_0813B754: .4byte 0x02037290 +_0813B758: .4byte 0x0202207C +_0813B75C: .4byte 0x03005B60 +_0813B760: + bl GetMultiplayerId + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0813B784 + ldr r0, _0813B77C + ldrh r0, [r0] + cmp r0, #2 + bne _0813B7C8 + ldr r0, _0813B780 + bl ShowFieldAutoScrollMessage + b _0813B7C8 + .align 2, 0 +_0813B77C: .4byte 0x02037290 +_0813B780: .4byte 0x08226D61 +_0813B784: + ldr r0, _0813B794 + ldrh r0, [r0] + cmp r0, #3 + bne _0813B7C8 + ldr r0, _0813B798 + bl ShowFieldAutoScrollMessage + b _0813B7C8 + .align 2, 0 +_0813B794: .4byte 0x02037290 +_0813B798: .4byte 0x08226D61 +_0813B79C: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0813B7FE + b _0813B7C8 +_0813B7AA: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0813B7FE + bl sub_0800A8D4 + b _0813B7C8 +_0813B7BC: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0813B7FE +_0813B7C8: + ldr r0, _0813B7DC + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _0813B7FE + .align 2, 0 +_0813B7DC: .4byte 0x03005B60 +_0813B7E0: + ldr r0, _0813B804 + ldrb r0, [r0] + cmp r0, #0 + bne _0813B7EC + bl sub_0800A7F8 +_0813B7EC: + ldr r0, _0813B808 + ldr r1, _0813B80C + ldr r1, [r1] + str r1, [r0] + bl EnableBothScriptContexts + adds r0, r4, #0 + bl DestroyTask +_0813B7FE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0813B804: .4byte 0x0300319C +_0813B808: .4byte 0x02022C90 +_0813B80C: .4byte 0x0203A83C + thumb_func_end sub_0813B5B4 + + thumb_func_start sub_0813B810 +sub_0813B810: @ 0x0813B810 + push {lr} + ldr r0, _0813B828 + ldrh r0, [r0] + cmp r0, #0 + bne _0813B830 + ldr r2, _0813B82C + movs r0, #0 + movs r1, #1 + bl DoRayquazaScene + b _0813B83A + .align 2, 0 +_0813B828: .4byte 0x02037280 +_0813B82C: .4byte 0x08085B35 +_0813B830: + ldr r2, _0813B840 + movs r0, #1 + movs r1, #0 + bl DoRayquazaScene +_0813B83A: + pop {r0} + bx r0 + .align 2, 0 +_0813B840: .4byte 0x08085B35 + thumb_func_end sub_0813B810 + + thumb_func_start sub_0813B844 +sub_0813B844: @ 0x0813B844 + push {lr} + ldr r0, _0813B858 + movs r1, #8 + bl CreateTask + movs r0, #0x9d + bl PlaySE + pop {r0} + bx r0 + .align 2, 0 +_0813B858: .4byte 0x0813B85D + thumb_func_end sub_0813B844 + + thumb_func_start sub_0813B85C +sub_0813B85C: @ 0x0813B85C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _0813B8AC + adds r4, r0, r1 + ldrh r0, [r4, #2] + adds r0, #1 + strh r0, [r4, #2] + movs r0, #2 + ldrsh r1, [r4, r0] + ldr r0, _0813B8B0 + ldrh r0, [r0] + cmp r1, r0 + bne _0813B890 + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + movs r0, #0 + strh r0, [r4, #2] + movs r0, #0x9d + bl PlaySE +_0813B890: + movs r0, #0 + ldrsh r1, [r4, r0] + ldr r0, _0813B8B4 + ldrh r0, [r0] + subs r0, #1 + cmp r1, r0 + bne _0813B8A4 + adds r0, r5, #0 + bl DestroyTask +_0813B8A4: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0813B8AC: .4byte 0x03005B68 +_0813B8B0: .4byte 0x02037282 +_0813B8B4: .4byte 0x02037280 + thumb_func_end sub_0813B85C + + thumb_func_start sub_0813B8B8 +sub_0813B8B8: @ 0x0813B8B8 + push {lr} + ldr r0, _0813B8E0 + movs r1, #8 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0813B8E4 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r2, #0 + movs r0, #4 + strh r0, [r1, #8] + strh r0, [r1, #0xa] + strh r0, [r1, #0xc] + strh r2, [r1, #0xe] + pop {r0} + bx r0 + .align 2, 0 +_0813B8E0: .4byte 0x0813B8E9 +_0813B8E4: .4byte 0x03005B60 + thumb_func_end sub_0813B8B8 + + thumb_func_start sub_0813B8E8 +sub_0813B8E8: @ 0x0813B8E8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + lsls r0, r0, #2 + add r0, sb + lsls r0, r0, #3 + ldr r1, _0813B994 + adds r5, r0, r1 + movs r0, #6 + ldrsh r1, [r5, r0] + lsls r1, r1, #1 + adds r1, r1, r5 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + movs r1, #6 + ldrsh r0, [r5, r1] + lsls r0, r0, #1 + adds r0, r0, r5 + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r0, #0 + bne _0813B986 + movs r6, #0 +_0813B922: + movs r4, #0 + lsls r3, r6, #3 + mov sl, r3 + adds r7, r6, #1 + mov r8, r7 +_0813B92C: + ldr r0, _0813B998 + ldr r1, [r0] + movs r2, #0 + ldrsh r0, [r1, r2] + adds r0, r0, r4 + adds r0, #6 + movs r3, #2 + ldrsh r1, [r1, r3] + adds r1, r1, r6 + adds r1, #4 + ldr r7, _0813B99C + adds r2, r4, r7 + add r2, sl + movs r7, #6 + ldrsh r3, [r5, r7] + lsls r3, r3, #5 + adds r2, r2, r3 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + bl MapGridSetMetatileIdAt + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #2 + bls _0813B92C + mov r1, r8 + lsls r0, r1, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #3 + bls _0813B922 + bl DrawWholeMapView + ldrh r0, [r5, #6] + adds r0, #1 + strh r0, [r5, #6] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + bne _0813B986 + mov r0, sb + bl DestroyTask + bl EnableBothScriptContexts +_0813B986: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0813B994: .4byte 0x03005B68 +_0813B998: .4byte 0x03005AEC +_0813B99C: .4byte 0x00000201 + thumb_func_end sub_0813B8E8 + + thumb_func_start sub_0813B9A0 +sub_0813B9A0: @ 0x0813B9A0 + push {r4, r5, lr} + ldr r5, _0813B9D0 + ldr r0, _0813B9D4 + ldrh r0, [r0] + movs r1, #7 + bl __udivsi3 + strh r0, [r5] + ldrh r4, [r5] + adds r0, r4, #0 + movs r1, #0x14 + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + subs r4, r4, r1 + strh r4, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0813B9D0: .4byte 0x02037290 +_0813B9D4: .4byte 0x02037280 + thumb_func_end sub_0813B9A0 + + thumb_func_start sub_0813B9D8 +sub_0813B9D8: @ 0x0813B9D8 + push {lr} + ldr r0, _0813B9F4 + ldr r0, [r0] + ldrh r1, [r0, #0x1c] + movs r0, #0xb0 + lsls r0, r0, #4 + cmp r1, r0 + bne _0813B9EE + movs r0, #3 + bl SetLastHealLocationWarp +_0813B9EE: + pop {r0} + bx r0 + .align 2, 0 +_0813B9F4: .4byte 0x03005AEC + thumb_func_end sub_0813B9D8 + + thumb_func_start sub_0813B9F8 +sub_0813B9F8: @ 0x0813B9F8 + push {r4, lr} + ldr r0, _0813BA28 + ldr r0, [r0] + movs r1, #4 + ldrsb r1, [r0, r1] + lsls r1, r1, #8 + ldrb r0, [r0, #5] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldr r2, _0813BA2C + ldrh r0, [r2] + ldr r1, _0813BA30 + cmp r0, r1 + beq _0813BA3E + adds r4, r1, #0 + adds r1, r2, #0 +_0813BA1E: + ldrh r0, [r2] + cmp r0, r3 + bne _0813BA34 + movs r0, #1 + b _0813BA40 + .align 2, 0 +_0813BA28: .4byte 0x03005AEC +_0813BA2C: .4byte 0x08592EA0 +_0813BA30: .4byte 0x0000FFFF +_0813BA34: + adds r1, #2 + adds r2, #2 + ldrh r0, [r1] + cmp r0, r4 + bne _0813BA1E +_0813BA3E: + movs r0, #0 +_0813BA40: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0813B9F8 + + thumb_func_start ResetFanClub +ResetFanClub: @ 0x0813BA48 + ldr r0, _0813BA60 + ldr r0, [r0] + ldr r2, _0813BA64 + adds r1, r0, r2 + movs r2, #0 + strh r2, [r1] + movs r1, #0xa1 + lsls r1, r1, #5 + adds r0, r0, r1 + strh r2, [r0] + bx lr + .align 2, 0 +_0813BA60: .4byte 0x03005AEC +_0813BA64: .4byte 0x0000141E + thumb_func_end ResetFanClub + + thumb_func_start sub_0813BA68 +sub_0813BA68: @ 0x0813BA68 + push {lr} + bl sub_0813BF68 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0813BA8A + bl UpdateMovedLilycoveFanClubMembers + ldr r0, _0813BA90 + ldr r1, [r0] + ldr r0, _0813BA94 + ldr r0, [r0] + ldrh r0, [r0, #0xe] + movs r2, #0xa1 + lsls r2, r2, #5 + adds r1, r1, r2 + strh r0, [r1] +_0813BA8A: + pop {r0} + bx r0 + .align 2, 0 +_0813BA90: .4byte 0x03005AEC +_0813BA94: .4byte 0x03005AF0 + thumb_func_end sub_0813BA68 + + thumb_func_start sub_0813BA98 +sub_0813BA98: @ 0x0813BA98 + push {r4, lr} + ldr r4, _0813BAF4 + ldr r0, [r4] + ldr r1, _0813BAF8 + adds r0, r0, r1 + ldrh r0, [r0] + lsrs r0, r0, #7 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0813BAEE + bl sub_0813BF84 + bl sub_0813BDBC + ldr r1, [r4] + ldr r0, _0813BAFC + ldr r0, [r0] + ldrh r0, [r0, #0xe] + movs r2, #0xa1 + lsls r2, r2, #5 + adds r1, r1, r2 + strh r0, [r1] + ldr r0, _0813BB00 + bl FlagClear + ldr r0, _0813BB04 + bl FlagClear + ldr r0, _0813BB08 + bl FlagClear + movs r0, #0xc6 + lsls r0, r0, #2 + bl FlagClear + ldr r0, _0813BB0C + bl FlagClear + ldr r0, _0813BB10 + movs r1, #1 + bl VarSet +_0813BAEE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813BAF4: .4byte 0x03005AEC +_0813BAF8: .4byte 0x0000141E +_0813BAFC: .4byte 0x03005AF0 +_0813BB00: .4byte 0x00000315 +_0813BB04: .4byte 0x00000316 +_0813BB08: .4byte 0x00000317 +_0813BB0C: .4byte 0x000002DA +_0813BB10: .4byte 0x00004095 + thumb_func_end sub_0813BA98 + + thumb_func_start sub_0813BB14 +sub_0813BB14: @ 0x0813BB14 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _0813BB60 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #2 + bne _0813BB90 + ldr r4, _0813BB64 + ldr r0, [r4] + ldr r5, _0813BB68 + adds r3, r0, r5 + ldrh r2, [r3] + movs r1, #0x7f + ands r1, r2 + ldr r0, _0813BB6C + adds r0, r6, r0 + ldrb r0, [r0] + adds r1, r1, r0 + cmp r1, #0x13 + ble _0813BB8C + bl GetNumMovedLilycoveFanClubMembers + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #2 + bhi _0813BB74 + bl sub_0813BBAC + ldr r0, [r4] + adds r0, r0, r5 + ldrh r2, [r0] + ldr r1, _0813BB70 + ands r1, r2 + strh r1, [r0] + b _0813BB90 + .align 2, 0 +_0813BB60: .4byte 0x00004095 +_0813BB64: .4byte 0x03005AEC +_0813BB68: .4byte 0x0000141E +_0813BB6C: .4byte 0x08592ECC +_0813BB70: .4byte 0x0000FF80 +_0813BB74: + ldr r2, [r4] + adds r2, r2, r5 + ldrh r1, [r2] + ldr r0, _0813BB88 + ands r0, r1 + movs r1, #0x14 + orrs r0, r1 + strh r0, [r2] + b _0813BB90 + .align 2, 0 +_0813BB88: .4byte 0x0000FF80 +_0813BB8C: + adds r0, r2, r0 + strh r0, [r3] +_0813BB90: + ldr r0, _0813BBA4 + ldr r0, [r0] + ldr r1, _0813BBA8 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0813BBA4: .4byte 0x03005AEC +_0813BBA8: .4byte 0x0000141E + thumb_func_end sub_0813BB14 + + thumb_func_start sub_0813BBAC +sub_0813BBAC: @ 0x0813BBAC + push {r4, r5, r6, r7, lr} + sub sp, #8 + movs r3, #0 + movs r5, #0 + ldr r7, _0813BBF4 + ldr r2, _0813BBF8 + movs r6, #1 +_0813BBBA: + ldr r0, [r7] + adds r0, r0, r2 + ldrh r1, [r0] + ldr r0, _0813BBFC + adds r0, r5, r0 + ldrb r4, [r0] + asrs r1, r4 + ands r1, r6 + cmp r1, #0 + bne _0813BC00 + adds r3, r5, #0 + str r2, [sp] + str r3, [sp, #4] + bl Random + adds r1, r6, #0 + ands r1, r0 + ldr r2, [sp] + ldr r3, [sp, #4] + cmp r1, #0 + beq _0813BC00 + ldr r0, [r7] + adds r0, r0, r2 + adds r1, r6, #0 + lsls r1, r4 + ldrh r2, [r0] + orrs r1, r2 + strh r1, [r0] + b _0813BC22 + .align 2, 0 +_0813BBF4: .4byte 0x03005AEC +_0813BBF8: .4byte 0x0000141E +_0813BBFC: .4byte 0x08592ED0 +_0813BC00: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #7 + bls _0813BBBA + ldr r0, _0813BC2C + ldr r2, [r0] + ldr r0, _0813BC30 + adds r2, r2, r0 + ldr r1, _0813BC34 + adds r1, r3, r1 + movs r0, #1 + ldrb r1, [r1] + lsls r0, r1 + ldrh r1, [r2] + orrs r0, r1 + strh r0, [r2] +_0813BC22: + adds r0, r3, #0 + add sp, #8 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0813BC2C: .4byte 0x03005AEC +_0813BC30: .4byte 0x0000141E +_0813BC34: .4byte 0x08592ED0 + thumb_func_end sub_0813BBAC + + thumb_func_start sub_0813BC38 +sub_0813BC38: @ 0x0813BC38 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + movs r0, #0 + mov sl, r0 + bl GetNumMovedLilycoveFanClubMembers + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bne _0813BC66 + movs r0, #0 + b _0813BCC6 +_0813BC56: + mov r1, r8 + ldr r0, [r1] + add r0, sb + lsls r4, r6 + ldrh r1, [r0] + eors r4, r1 + strh r4, [r0] + b _0813BCC4 +_0813BC66: + movs r5, #0 + ldr r2, _0813BCD4 + mov r8, r2 + ldr r0, _0813BCD8 + mov sb, r0 + movs r4, #1 +_0813BC72: + mov r1, r8 + ldr r0, [r1] + add r0, sb + ldrh r1, [r0] + ldr r7, _0813BCDC + adds r0, r5, r7 + ldrb r6, [r0] + asrs r1, r6 + ands r1, r4 + cmp r1, #0 + beq _0813BC96 + mov sl, r5 + bl Random + adds r1, r4, #0 + ands r1, r0 + cmp r1, #0 + bne _0813BC56 +_0813BC96: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #7 + bls _0813BC72 + ldr r0, _0813BCD4 + ldr r0, [r0] + ldr r2, _0813BCD8 + adds r4, r0, r2 + ldrh r1, [r4] + mov r2, sl + adds r0, r2, r7 + ldrb r2, [r0] + adds r0, r1, #0 + asrs r0, r2 + movs r3, #1 + ands r0, r3 + cmp r0, #0 + beq _0813BCC4 + adds r0, r3, #0 + lsls r0, r2 + eors r1, r0 + strh r1, [r4] +_0813BCC4: + mov r0, sl +_0813BCC6: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0813BCD4: .4byte 0x03005AEC +_0813BCD8: .4byte 0x0000141E +_0813BCDC: .4byte 0x08592ED8 + thumb_func_end sub_0813BC38 + + thumb_func_start GetNumMovedLilycoveFanClubMembers +GetNumMovedLilycoveFanClubMembers: @ 0x0813BCE0 + push {r4, r5, lr} + movs r3, #0 + movs r2, #0 + ldr r0, _0813BD18 + ldr r0, [r0] + ldr r1, _0813BD1C + adds r0, r0, r1 + ldrh r4, [r0] + movs r5, #1 +_0813BCF2: + adds r1, r2, #0 + adds r1, #8 + adds r0, r4, #0 + asrs r0, r1 + ands r0, r5 + cmp r0, #0 + beq _0813BD06 + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 +_0813BD06: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #7 + bls _0813BCF2 + adds r0, r3, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0813BD18: .4byte 0x03005AEC +_0813BD1C: .4byte 0x0000141E + thumb_func_end GetNumMovedLilycoveFanClubMembers + + thumb_func_start UpdateMovedLilycoveFanClubMembers +UpdateMovedLilycoveFanClubMembers: @ 0x0813BD20 + push {r4, r5, r6, lr} + movs r5, #0 + ldr r2, _0813BD34 + ldr r0, [r2] + ldrh r1, [r0, #0xe] + ldr r0, _0813BD38 + cmp r1, r0 + bhi _0813BD90 + adds r6, r2, #0 + b _0813BD6A + .align 2, 0 +_0813BD34: .4byte 0x03005AF0 +_0813BD38: .4byte 0x000003E6 +_0813BD3C: + ldr r0, [r6] + ldrh r1, [r0, #0xe] + ldr r4, _0813BD88 + ldr r0, [r4] + movs r2, #0xa1 + lsls r2, r2, #5 + adds r0, r0, r2 + ldrh r0, [r0] + subs r1, r1, r0 + cmp r1, #0xb + ble _0813BD90 + bl sub_0813BC38 + ldr r0, [r4] + movs r1, #0xa1 + lsls r1, r1, #5 + adds r0, r0, r1 + ldrh r1, [r0] + adds r1, #0xc + strh r1, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_0813BD6A: + bl GetNumMovedLilycoveFanClubMembers + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #4 + bhi _0813BD8C + ldr r0, _0813BD88 + ldr r1, [r0] + ldr r0, [r6] + ldrh r0, [r0, #0xe] + movs r2, #0xa1 + lsls r2, r2, #5 + adds r1, r1, r2 + strh r0, [r1] + b _0813BD90 + .align 2, 0 +_0813BD88: .4byte 0x03005AEC +_0813BD8C: + cmp r5, #8 + bne _0813BD3C +_0813BD90: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end UpdateMovedLilycoveFanClubMembers + + thumb_func_start ShouldMoveLilycoveFanClubMember +ShouldMoveLilycoveFanClubMember: @ 0x0813BD98 + ldr r0, _0813BDB0 + ldr r0, [r0] + ldr r1, _0813BDB4 + adds r0, r0, r1 + ldrh r0, [r0] + ldr r1, _0813BDB8 + ldrh r1, [r1] + asrs r0, r1 + movs r1, #1 + ands r0, r1 + bx lr + .align 2, 0 +_0813BDB0: .4byte 0x03005AEC +_0813BDB4: .4byte 0x0000141E +_0813BDB8: .4byte 0x02037280 + thumb_func_end ShouldMoveLilycoveFanClubMember + + thumb_func_start sub_0813BDBC +sub_0813BDBC: @ 0x0813BDBC + ldr r0, _0813BDE4 + ldr r2, [r0] + ldr r0, _0813BDE8 + adds r2, r2, r0 + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #6 + adds r0, r3, #0 + orrs r0, r1 + movs r3, #0x80 + lsls r3, r3, #1 + adds r1, r3, #0 + orrs r0, r1 + movs r3, #0x80 + lsls r3, r3, #3 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + bx lr + .align 2, 0 +_0813BDE4: .4byte 0x03005AEC +_0813BDE8: .4byte 0x0000141E + thumb_func_end sub_0813BDBC + + thumb_func_start BufferStreakTrainerText +BufferStreakTrainerText: @ 0x0813BDEC + push {lr} + movs r3, #0 + movs r2, #0 + ldr r0, _0813BE08 + ldrh r0, [r0] + subs r0, #8 + cmp r0, #7 + bhi _0813BE4C + lsls r0, r0, #2 + ldr r1, _0813BE0C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0813BE08: .4byte 0x02037280 +_0813BE0C: .4byte 0x0813BE10 +_0813BE10: @ jump table + .4byte _0813BE4C @ case 0 + .4byte _0813BE4C @ case 1 + .4byte _0813BE30 @ case 2 + .4byte _0813BE36 @ case 3 + .4byte _0813BE3C @ case 4 + .4byte _0813BE42 @ case 5 + .4byte _0813BE48 @ case 6 + .4byte _0813BE4C @ case 7 +_0813BE30: + movs r3, #0 + movs r2, #3 + b _0813BE4C +_0813BE36: + movs r3, #0 + movs r2, #1 + b _0813BE4C +_0813BE3C: + movs r3, #1 + movs r2, #0 + b _0813BE4C +_0813BE42: + movs r3, #0 + movs r2, #4 + b _0813BE4C +_0813BE48: + movs r3, #1 + movs r2, #5 +_0813BE4C: + ldr r0, _0813BE60 + ldr r0, [r0] + ldr r1, _0813BE64 + adds r0, r0, r1 + adds r1, r3, #0 + bl sub_0813BE68 + pop {r0} + bx r0 + .align 2, 0 +_0813BE60: .4byte 0x03005AEC +_0813BE64: .4byte 0x00003150 + thumb_func_end BufferStreakTrainerText + + thumb_func_start sub_0813BE68 +sub_0813BE68: @ 0x0813BE68 + push {r4, lr} + lsls r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsrs r1, r1, #0x14 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, #0xff + bne _0813BF1C + cmp r2, #5 + bhi _0813BF08 + lsls r0, r2, #2 + ldr r1, _0813BE88 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0813BE88: .4byte 0x0813BE8C +_0813BE8C: @ jump table + .4byte _0813BF08 @ case 0 + .4byte _0813BEA4 @ case 1 + .4byte _0813BEB8 @ case 2 + .4byte _0813BECC @ case 3 + .4byte _0813BEE0 @ case 4 + .4byte _0813BEF4 @ case 5 +_0813BEA4: + ldr r0, _0813BEB0 + ldr r1, _0813BEB4 + bl StringCopy + b _0813BF2A + .align 2, 0 +_0813BEB0: .4byte 0x02021C40 +_0813BEB4: .4byte 0x085CA9E8 +_0813BEB8: + ldr r0, _0813BEC4 + ldr r1, _0813BEC8 + bl StringCopy + b _0813BF2A + .align 2, 0 +_0813BEC4: .4byte 0x02021C40 +_0813BEC8: .4byte 0x085CA9EC +_0813BECC: + ldr r0, _0813BED8 + ldr r1, _0813BEDC + bl StringCopy + b _0813BF2A + .align 2, 0 +_0813BED8: .4byte 0x02021C40 +_0813BEDC: .4byte 0x085CA9F0 +_0813BEE0: + ldr r0, _0813BEEC + ldr r1, _0813BEF0 + bl StringCopy + b _0813BF2A + .align 2, 0 +_0813BEEC: .4byte 0x02021C40 +_0813BEF0: .4byte 0x085CA9F3 +_0813BEF4: + ldr r0, _0813BF00 + ldr r1, _0813BF04 + bl StringCopy + b _0813BF2A + .align 2, 0 +_0813BF00: .4byte 0x02021C40 +_0813BF04: .4byte 0x085CA9F7 +_0813BF08: + ldr r0, _0813BF14 + ldr r1, _0813BF18 + bl StringCopy + b _0813BF2A + .align 2, 0 +_0813BF14: .4byte 0x02021C40 +_0813BF18: .4byte 0x085CA9E4 +_0813BF1C: + ldr r4, _0813BF30 + adds r0, r4, #0 + movs r2, #7 + bl StringCopyN + movs r0, #0xff + strb r0, [r4, #7] +_0813BF2A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813BF30: .4byte 0x02021C40 + thumb_func_end sub_0813BE68 + + thumb_func_start sub_0813BF34 +sub_0813BF34: @ 0x0813BF34 + push {lr} + ldr r0, _0813BF58 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #2 + bne _0813BF64 + bl sub_0813BA68 + ldr r0, _0813BF5C + ldrb r0, [r0] + cmp r0, #1 + bne _0813BF60 + bl sub_0813BBAC + b _0813BF64 + .align 2, 0 +_0813BF58: .4byte 0x00004095 +_0813BF5C: .4byte 0x02023FDE +_0813BF60: + bl sub_0813BC38 +_0813BF64: + pop {r0} + bx r0 + thumb_func_end sub_0813BF34 + + thumb_func_start sub_0813BF68 +sub_0813BF68: @ 0x0813BF68 + ldr r0, _0813BF7C + ldr r0, [r0] + ldr r1, _0813BF80 + adds r0, r0, r1 + ldrh r0, [r0] + lsrs r0, r0, #7 + movs r1, #1 + ands r0, r1 + bx lr + .align 2, 0 +_0813BF7C: .4byte 0x03005AEC +_0813BF80: .4byte 0x0000141E + thumb_func_end sub_0813BF68 + + thumb_func_start sub_0813BF84 +sub_0813BF84: @ 0x0813BF84 + ldr r0, _0813BF98 + ldr r1, [r0] + ldr r0, _0813BF9C + adds r1, r1, r0 + ldrh r2, [r1] + movs r0, #0x80 + orrs r0, r2 + strh r0, [r1] + bx lr + .align 2, 0 +_0813BF98: .4byte 0x03005AEC +_0813BF9C: .4byte 0x0000141E + thumb_func_end sub_0813BF84 + + thumb_func_start sub_0813BFA0 +sub_0813BFA0: @ 0x0813BFA0 + push {lr} + ldr r0, _0813BFB4 + ldrb r0, [r0] + bl sub_0813BB14 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0813BFB4: .4byte 0x02037280 + thumb_func_end sub_0813BFA0 + diff --git a/asm/field_tasks.s b/asm/field_tasks.s new file mode 100644 index 0000000..c0179fd --- /dev/null +++ b/asm/field_tasks.s @@ -0,0 +1,1976 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start Task_RunPerStepCallback +Task_RunPerStepCallback: @ 0x0809D164 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0809D188 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r2, #8 + ldrsh r1, [r1, r2] + ldr r2, _0809D18C + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_0809D188: .4byte 0x03005B60 +_0809D18C: .4byte 0x084E898C + thumb_func_end Task_RunPerStepCallback + + thumb_func_start RunTimeBasedEvents +RunTimeBasedEvents: @ 0x0809D190 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0809D1A2 + cmp r0, #1 + beq _0809D1C0 + b _0809D1D4 +_0809D1A2: + ldr r0, _0809D1BC + ldr r0, [r0, #0x20] + movs r1, #0x80 + lsls r1, r1, #5 + ands r0, r1 + cmp r0, #0 + beq _0809D1D4 + bl DoTimeBasedEvents + ldrh r0, [r4] + adds r0, #1 + b _0809D1D2 + .align 2, 0 +_0809D1BC: .4byte 0x03002360 +_0809D1C0: + ldr r0, _0809D1DC + ldr r0, [r0, #0x20] + movs r1, #0x80 + lsls r1, r1, #5 + ands r0, r1 + cmp r0, #0 + bne _0809D1D4 + ldrh r0, [r4] + subs r0, #1 +_0809D1D2: + strh r0, [r4] +_0809D1D4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809D1DC: .4byte 0x03002360 + thumb_func_end RunTimeBasedEvents + + thumb_func_start Task_RunTimeBasedEvents +Task_RunTimeBasedEvents: @ 0x0809D1E0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _0809D210 + adds r4, r1, r0 + bl ScriptContext2_IsEnabled + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809D208 + adds r0, r4, #0 + bl RunTimeBasedEvents + adds r0, r4, #2 + adds r1, r4, #4 + bl UpdateAmbientCry +_0809D208: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809D210: .4byte 0x03005B68 + thumb_func_end Task_RunTimeBasedEvents + + thumb_func_start SetUpFieldTasks +SetUpFieldTasks: @ 0x0809D214 + push {r4, r5, lr} + ldr r5, _0809D270 + adds r0, r5, #0 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _0809D23E + adds r0, r5, #0 + movs r1, #0x50 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0809D274 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #8] +_0809D23E: + ldr r4, _0809D278 + adds r0, r4, #0 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809D254 + adds r0, r4, #0 + movs r1, #0x50 + bl CreateTask +_0809D254: + ldr r4, _0809D27C + adds r0, r4, #0 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809D26A + adds r0, r4, #0 + movs r1, #0x50 + bl CreateTask +_0809D26A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0809D270: .4byte 0x0809D165 +_0809D274: .4byte 0x03005B60 +_0809D278: .4byte 0x0809DF11 +_0809D27C: .4byte 0x0809D1E1 + thumb_func_end SetUpFieldTasks + + thumb_func_start ActivatePerStepCallback +ActivatePerStepCallback: @ 0x0809D280 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0809D2B8 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xff + beq _0809D2C2 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + ldr r1, _0809D2BC + adds r1, r0, r1 + movs r2, #0 + adds r0, r1, #0 + adds r0, #0x1e +_0809D2A4: + strh r2, [r0] + subs r0, #2 + cmp r0, r1 + bge _0809D2A4 + cmp r4, #7 + bls _0809D2C0 + movs r0, #0 + strh r0, [r1] + b _0809D2C2 + .align 2, 0 +_0809D2B8: .4byte 0x0809D165 +_0809D2BC: .4byte 0x03005B68 +_0809D2C0: + strh r4, [r1] +_0809D2C2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end ActivatePerStepCallback + + thumb_func_start ResetFieldTasksArgs +ResetFieldTasksArgs: @ 0x0809D2C8 + push {lr} + ldr r0, _0809D2F8 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r0, _0809D2FC + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xff + beq _0809D2F2 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + ldr r1, _0809D300 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #2] + strh r1, [r0, #4] +_0809D2F2: + pop {r0} + bx r0 + .align 2, 0 +_0809D2F8: .4byte 0x0809D165 +_0809D2FC: .4byte 0x0809D1E1 +_0809D300: .4byte 0x03005B68 + thumb_func_end ResetFieldTasksArgs + + thumb_func_start DummyPerStepCallback +DummyPerStepCallback: @ 0x0809D304 + bx lr + .align 2, 0 + thumb_func_end DummyPerStepCallback + + thumb_func_start GetPacifidlogBridgeMetatileOffsets +GetPacifidlogBridgeMetatileOffsets: @ 0x0809D308 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + adds r0, r4, #0 + bl MetatileBehavior_IsPacifilogVerticalLog1 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809D320 + adds r0, r5, #0 + b _0809D358 +_0809D320: + adds r0, r4, #0 + bl MetatileBehavior_IsPacifilogVerticalLog2 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809D332 + adds r0, r5, #0 + adds r0, #8 + b _0809D358 +_0809D332: + adds r0, r4, #0 + bl MetatileBehavior_IsPacifilogHorizontalLog1 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809D344 + adds r0, r5, #0 + adds r0, #0x10 + b _0809D358 +_0809D344: + adds r0, r4, #0 + bl MetatileBehavior_IsPacifilogHorizontalLog2 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809D354 + movs r0, #0 + b _0809D358 +_0809D354: + adds r0, r5, #0 + adds r0, #0x18 +_0809D358: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetPacifidlogBridgeMetatileOffsets + + thumb_func_start SetPacifidlogBridgeMetatiles +SetPacifidlogBridgeMetatiles: @ 0x0809D360 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + mov r8, r3 + lsls r1, r1, #0x10 + asrs r6, r1, #0x10 + lsls r2, r2, #0x10 + asrs r7, r2, #0x10 + adds r0, r6, #0 + adds r1, r7, #0 + bl MapGridGetMetatileBehaviorAt + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r5, #0 + bl GetPacifidlogBridgeMetatileOffsets + adds r4, r0, #0 + adds r5, r4, #0 + cmp r4, #0 + beq _0809D3DE + movs r0, #0 + ldrsb r0, [r4, r0] + adds r0, r6, r0 + movs r1, #1 + ldrsb r1, [r4, r1] + adds r1, r7, r1 + ldrh r2, [r4, #2] + bl MapGridSetMetatileIdAt + mov r0, r8 + cmp r0, #0 + beq _0809D3B6 + movs r0, #0 + ldrsb r0, [r4, r0] + adds r0, r6, r0 + movs r1, #1 + ldrsb r1, [r4, r1] + adds r1, r7, r1 + bl CurrentMapDrawMetatileAt +_0809D3B6: + movs r0, #4 + ldrsb r0, [r5, r0] + adds r0, r6, r0 + movs r1, #5 + ldrsb r1, [r5, r1] + adds r1, r7, r1 + ldrh r2, [r5, #6] + bl MapGridSetMetatileIdAt + mov r0, r8 + cmp r0, #0 + beq _0809D3DE + movs r0, #4 + ldrsb r0, [r5, r0] + adds r0, r6, r0 + movs r1, #5 + ldrsb r1, [r5, r1] + adds r1, r7, r1 + bl CurrentMapDrawMetatileAt +_0809D3DE: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end SetPacifidlogBridgeMetatiles + + thumb_func_start UpdateHalfSubmergedBridgeMetatiles +UpdateHalfSubmergedBridgeMetatiles: @ 0x0809D3E8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r3, r2, #0 + ldr r0, _0809D408 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + adds r1, r4, #0 + adds r2, r5, #0 + bl SetPacifidlogBridgeMetatiles + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0809D408: .4byte 0x084E89AC + thumb_func_end UpdateHalfSubmergedBridgeMetatiles + + thumb_func_start UpdateFullySubmergedBridgeMetatiles +UpdateFullySubmergedBridgeMetatiles: @ 0x0809D40C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r3, r2, #0 + ldr r0, _0809D42C + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + adds r1, r4, #0 + adds r2, r5, #0 + bl SetPacifidlogBridgeMetatiles + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0809D42C: .4byte 0x084E89CC + thumb_func_end UpdateFullySubmergedBridgeMetatiles + + thumb_func_start UpdateFloatingBridgeMetatiles +UpdateFloatingBridgeMetatiles: @ 0x0809D430 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r3, r2, #0 + ldr r0, _0809D450 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + adds r1, r4, #0 + adds r2, r5, #0 + bl SetPacifidlogBridgeMetatiles + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0809D450: .4byte 0x084E89EC + thumb_func_end UpdateFloatingBridgeMetatiles + + thumb_func_start StandingOnNewPacifidlogBridge +StandingOnNewPacifidlogBridge: @ 0x0809D454 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + mov sl, r8 + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + mov sb, r7 + lsls r2, r2, #0x10 + asrs r6, r2, #0x10 + lsls r3, r3, #0x10 + asrs r5, r3, #0x10 + adds r0, r6, #0 + adds r1, r5, #0 + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl MetatileBehavior_IsPacifilogVerticalLog1 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809D498 + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + cmp r0, r5 + ble _0809D4DE +_0809D494: + movs r0, #0 + b _0809D4E0 +_0809D498: + adds r0, r4, #0 + bl MetatileBehavior_IsPacifilogVerticalLog2 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809D4B0 + mov r1, sb + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, r5 + bge _0809D4DE + b _0809D494 +_0809D4B0: + adds r0, r4, #0 + bl MetatileBehavior_IsPacifilogHorizontalLog1 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809D4C8 + mov r1, r8 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, r6 + ble _0809D4DE + b _0809D494 +_0809D4C8: + adds r0, r4, #0 + bl MetatileBehavior_IsPacifilogHorizontalLog2 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809D4DE + mov r1, sl + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, r6 + blt _0809D494 +_0809D4DE: + movs r0, #1 +_0809D4E0: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end StandingOnNewPacifidlogBridge + + thumb_func_start StandingOnSamePacifidlogBridge +StandingOnSamePacifidlogBridge: @ 0x0809D4F0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + mov r8, r2 + mov sl, r8 + lsls r3, r3, #0x10 + lsrs r7, r3, #0x10 + mov sb, r7 + lsls r0, r0, #0x10 + asrs r6, r0, #0x10 + lsls r1, r1, #0x10 + asrs r5, r1, #0x10 + adds r0, r6, #0 + adds r1, r5, #0 + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl MetatileBehavior_IsPacifilogVerticalLog1 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809D534 + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + cmp r5, r0 + bge _0809D57A +_0809D530: + movs r0, #0 + b _0809D57C +_0809D534: + adds r0, r4, #0 + bl MetatileBehavior_IsPacifilogVerticalLog2 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809D54C + mov r1, sb + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r5, r0 + ble _0809D57A + b _0809D530 +_0809D54C: + adds r0, r4, #0 + bl MetatileBehavior_IsPacifilogHorizontalLog1 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809D564 + mov r1, r8 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r6, r0 + bge _0809D57A + b _0809D530 +_0809D564: + adds r0, r4, #0 + bl MetatileBehavior_IsPacifilogHorizontalLog2 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809D57A + mov r1, sl + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r6, r0 + bgt _0809D530 +_0809D57A: + movs r0, #1 +_0809D57C: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end StandingOnSamePacifidlogBridge + + thumb_func_start PacifidlogBridgePerStepCallback +PacifidlogBridgePerStepCallback: @ 0x0809D58C + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _0809D5C0 + adds r4, r1, r0 + mov r5, sp + adds r5, #2 + mov r0, sp + adds r1, r5, #0 + bl PlayerGetDestCoords + movs r1, #2 + ldrsh r0, [r4, r1] + adds r6, r5, #0 + cmp r0, #1 + beq _0809D5E6 + cmp r0, #1 + bgt _0809D5C4 + cmp r0, #0 + beq _0809D5CA + b _0809D6F6 + .align 2, 0 +_0809D5C0: .4byte 0x03005B68 +_0809D5C4: + cmp r0, #2 + beq _0809D6B4 + b _0809D6F6 +_0809D5CA: + mov r0, sp + ldrh r0, [r0] + strh r0, [r4, #4] + ldrh r0, [r5] + strh r0, [r4, #6] + mov r0, sp + movs r2, #0 + ldrsh r0, [r0, r2] + movs r3, #0 + ldrsh r1, [r5, r3] + movs r2, #1 + bl UpdateFullySubmergedBridgeMetatiles + b _0809D6F2 +_0809D5E6: + mov r0, sp + movs r7, #0 + ldrsh r1, [r0, r7] + movs r2, #4 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _0809D600 + movs r3, #0 + ldrsh r1, [r5, r3] + movs r7, #6 + ldrsh r0, [r4, r7] + cmp r1, r0 + beq _0809D6F6 +_0809D600: + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0 + ldrsh r1, [r5, r2] + movs r3, #4 + ldrsh r2, [r4, r3] + movs r5, #6 + ldrsh r3, [r4, r5] + bl StandingOnNewPacifidlogBridge + cmp r0, #0 + beq _0809D648 + movs r7, #4 + ldrsh r0, [r4, r7] + movs r2, #6 + ldrsh r1, [r4, r2] + movs r2, #1 + bl UpdateHalfSubmergedBridgeMetatiles + movs r3, #4 + ldrsh r0, [r4, r3] + movs r5, #6 + ldrsh r1, [r4, r5] + movs r2, #0 + bl UpdateFloatingBridgeMetatiles + ldrh r0, [r4, #4] + strh r0, [r4, #8] + ldrh r0, [r4, #6] + strh r0, [r4, #0xa] + movs r0, #2 + strh r0, [r4, #2] + movs r0, #8 + strh r0, [r4, #0xc] + b _0809D652 +_0809D648: + movs r7, #1 + rsbs r7, r7, #0 + adds r0, r7, #0 + strh r0, [r4, #8] + strh r0, [r4, #0xa] +_0809D652: + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + adds r5, r6, #0 + movs r2, #0 + ldrsh r1, [r5, r2] + movs r3, #4 + ldrsh r2, [r4, r3] + movs r7, #6 + ldrsh r3, [r4, r7] + bl StandingOnSamePacifidlogBridge + cmp r0, #0 + beq _0809D686 + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0 + ldrsh r1, [r5, r2] + movs r2, #1 + bl UpdateHalfSubmergedBridgeMetatiles + movs r0, #2 + strh r0, [r4, #2] + movs r0, #8 + strh r0, [r4, #0xc] +_0809D686: + mov r0, sp + ldrh r0, [r0] + strh r0, [r4, #4] + ldrh r0, [r6] + strh r0, [r4, #6] + mov r0, sp + movs r3, #0 + ldrsh r0, [r0, r3] + movs r5, #0 + ldrsh r1, [r6, r5] + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsPacifidlogLog + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809D6F6 + movs r0, #0x46 + bl PlaySE + b _0809D6F6 +_0809D6B4: + ldrh r0, [r4, #0xc] + subs r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0809D6F6 + mov r0, sp + movs r7, #0 + ldrsh r0, [r0, r7] + movs r2, #0 + ldrsh r1, [r5, r2] + movs r2, #1 + bl UpdateFullySubmergedBridgeMetatiles + movs r3, #8 + ldrsh r0, [r4, r3] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _0809D6F2 + movs r5, #0xa + ldrsh r0, [r4, r5] + cmp r0, r1 + beq _0809D6F2 + movs r7, #8 + ldrsh r0, [r4, r7] + movs r2, #0xa + ldrsh r1, [r4, r2] + movs r2, #1 + bl UpdateFloatingBridgeMetatiles +_0809D6F2: + movs r0, #1 + strh r0, [r4, #2] +_0809D6F6: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PacifidlogBridgePerStepCallback + + thumb_func_start SetLoweredForetreeBridgeMetatile +SetLoweredForetreeBridgeMetatile: @ 0x0809D700 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + bl PlayerGetZCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0809D75A + lsls r0, r4, #0x10 + asrs r4, r0, #0x10 + lsls r0, r5, #0x10 + asrs r5, r0, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl MapGridGetMetatileIdAt + adds r1, r0, #0 + ldr r0, _0809D73C + cmp r1, r0 + beq _0809D740 + adds r0, #8 + cmp r1, r0 + beq _0809D750 + b _0809D75A + .align 2, 0 +_0809D73C: .4byte 0x0000024E +_0809D740: + ldr r2, _0809D74C + adds r0, r4, #0 + adds r1, r5, #0 + bl MapGridSetMetatileIdAt + b _0809D75A + .align 2, 0 +_0809D74C: .4byte 0x0000024F +_0809D750: + ldr r2, _0809D760 + adds r0, r4, #0 + adds r1, r5, #0 + bl MapGridSetMetatileIdAt +_0809D75A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0809D760: .4byte 0x00000257 + thumb_func_end SetLoweredForetreeBridgeMetatile + + thumb_func_start SetNormalFortreeBridgeMetatile +SetNormalFortreeBridgeMetatile: @ 0x0809D764 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + bl PlayerGetZCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0809D7BE + lsls r0, r4, #0x10 + asrs r4, r0, #0x10 + lsls r0, r5, #0x10 + asrs r5, r0, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl MapGridGetMetatileIdAt + adds r1, r0, #0 + ldr r0, _0809D7A0 + cmp r1, r0 + beq _0809D7A4 + adds r0, #8 + cmp r1, r0 + beq _0809D7B4 + b _0809D7BE + .align 2, 0 +_0809D7A0: .4byte 0x0000024F +_0809D7A4: + ldr r2, _0809D7B0 + adds r0, r4, #0 + adds r1, r5, #0 + bl MapGridSetMetatileIdAt + b _0809D7BE + .align 2, 0 +_0809D7B0: .4byte 0x0000024E +_0809D7B4: + ldr r2, _0809D7C4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MapGridSetMetatileIdAt +_0809D7BE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0809D7C4: .4byte 0x00000256 + thumb_func_end SetNormalFortreeBridgeMetatile + + thumb_func_start FortreeBridgePerStepCallback +FortreeBridgePerStepCallback: @ 0x0809D7C8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _0809D804 + adds r6, r1, r0 + mov r4, sp + adds r4, #2 + mov r0, sp + adds r1, r4, #0 + bl PlayerGetDestCoords + movs r0, #2 + ldrsh r5, [r6, r0] + mov sb, r4 + cmp r5, #1 + beq _0809D85C + cmp r5, #1 + bgt _0809D808 + cmp r5, #0 + beq _0809D810 + b _0809D9CE + .align 2, 0 +_0809D804: .4byte 0x03005B68 +_0809D808: + cmp r5, #2 + bne _0809D80E + b _0809D93C +_0809D80E: + b _0809D9CE +_0809D810: + mov r0, sp + ldrh r0, [r0] + strh r0, [r6, #4] + mov r1, sb + ldrh r0, [r1] + strh r0, [r6, #6] + mov r0, sp + movs r2, #0 + ldrsh r0, [r0, r2] + movs r3, #0 + ldrsh r1, [r1, r3] + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsFortreeBridge + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809D83A + b _0809D9CA +_0809D83A: + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + mov r2, sb + movs r3, #0 + ldrsh r1, [r2, r3] + bl SetLoweredForetreeBridgeMetatile + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + mov r2, sb + movs r3, #0 + ldrsh r1, [r2, r3] + bl CurrentMapDrawMetatileAt + b _0809D9CA +_0809D85C: + ldrh r0, [r6, #6] + mov r8, r0 + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + ldrh r2, [r6, #4] + mov sl, r2 + movs r3, #4 + ldrsh r7, [r6, r3] + cmp r0, r7 + bne _0809D884 + mov r0, sb + movs r2, #0 + ldrsh r1, [r0, r2] + mov r3, r8 + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + cmp r1, r0 + bne _0809D884 + b _0809D9CE +_0809D884: + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + mov r2, sb + movs r3, #0 + ldrsh r1, [r2, r3] + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsFortreeBridge + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + mov r0, r8 + lsls r4, r0, #0x10 + asrs r1, r4, #0x10 + adds r0, r7, #0 + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsFortreeBridge + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + bl PlayerGetZCoord + movs r1, #0 + ands r5, r0 + lsls r0, r5, #0x18 + adds r5, r4, #0 + cmp r0, #0 + bne _0809D8CC + movs r1, #1 +_0809D8CC: + cmp r1, #0 + beq _0809D8E0 + ldr r1, [sp, #4] + cmp r1, #1 + beq _0809D8DA + cmp r7, #1 + bne _0809D8E0 +_0809D8DA: + movs r0, #0x47 + bl PlaySE +_0809D8E0: + cmp r7, #0 + beq _0809D91C + mov r2, sl + lsls r4, r2, #0x10 + asrs r4, r4, #0x10 + asrs r5, r5, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl SetNormalFortreeBridgeMetatile + adds r0, r4, #0 + adds r1, r5, #0 + bl CurrentMapDrawMetatileAt + mov r0, sp + movs r3, #0 + ldrsh r0, [r0, r3] + mov r2, sb + movs r3, #0 + ldrsh r1, [r2, r3] + bl SetLoweredForetreeBridgeMetatile + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + mov r2, sb + movs r3, #0 + ldrsh r1, [r2, r3] + bl CurrentMapDrawMetatileAt +_0809D91C: + mov r0, sl + strh r0, [r6, #8] + mov r1, r8 + strh r1, [r6, #0xa] + mov r0, sp + ldrh r0, [r0] + strh r0, [r6, #4] + mov r2, sb + ldrh r0, [r2] + strh r0, [r6, #6] + cmp r7, #0 + beq _0809D9CE + movs r0, #0x10 + strh r0, [r6, #0xc] + movs r0, #2 + strh r0, [r6, #2] +_0809D93C: + ldrh r0, [r6, #0xc] + subs r0, #1 + strh r0, [r6, #0xc] + ldrh r3, [r6, #8] + mov sl, r3 + ldrh r0, [r6, #0xa] + mov r8, r0 + movs r1, #0xc + ldrsh r0, [r6, r1] + movs r1, #7 + bl __modsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + bhi _0809D9C2 + lsls r0, r0, #2 + ldr r1, _0809D968 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809D968: .4byte 0x0809D96C +_0809D96C: @ jump table + .4byte _0809D98C @ case 0 + .4byte _0809D9C2 @ case 1 + .4byte _0809D9C2 @ case 2 + .4byte _0809D9C2 @ case 3 + .4byte _0809D99E @ case 4 + .4byte _0809D9C2 @ case 5 + .4byte _0809D9C2 @ case 6 + .4byte _0809D9C2 @ case 7 +_0809D98C: + mov r2, sl + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + mov r3, r8 + lsls r1, r3, #0x10 + asrs r1, r1, #0x10 + bl CurrentMapDrawMetatileAt + b _0809D9C2 +_0809D99E: + mov r0, sl + lsls r5, r0, #0x10 + asrs r5, r5, #0x10 + mov r1, r8 + lsls r4, r1, #0x10 + asrs r4, r4, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl SetLoweredForetreeBridgeMetatile + adds r0, r5, #0 + adds r1, r4, #0 + bl CurrentMapDrawMetatileAt + adds r0, r5, #0 + adds r1, r4, #0 + bl SetNormalFortreeBridgeMetatile +_0809D9C2: + movs r2, #0xc + ldrsh r0, [r6, r2] + cmp r0, #0 + bne _0809D9CE +_0809D9CA: + movs r0, #1 + strh r0, [r6, #2] +_0809D9CE: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end FortreeBridgePerStepCallback + + thumb_func_start CoordInIcePuzzleRegion +CoordInIcePuzzleRegion: @ 0x0809D9E0 + push {lr} + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r0, r0, #0x10 + ldr r2, _0809DA10 + adds r0, r0, r2 + lsrs r0, r0, #0x10 + cmp r0, #0xa + bhi _0809DA1C + lsls r0, r1, #0x10 + asrs r1, r0, #0x10 + ldr r2, _0809DA14 + adds r0, r0, r2 + lsrs r0, r0, #0x10 + cmp r0, #0xd + bhi _0809DA1C + ldr r0, _0809DA18 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + cmp r0, #0 + beq _0809DA1C + movs r0, #1 + b _0809DA1E + .align 2, 0 +_0809DA10: .4byte 0xFFFD0000 +_0809DA14: .4byte 0xFFFA0000 +_0809DA18: .4byte 0x084E8A0C +_0809DA1C: + movs r0, #0 +_0809DA1E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CoordInIcePuzzleRegion + + thumb_func_start MarkIcePuzzleCoordVisited +MarkIcePuzzleCoordVisited: @ 0x0809DA24 + push {r4, r5, lr} + lsls r0, r0, #0x10 + asrs r5, r0, #0x10 + lsls r1, r1, #0x10 + asrs r4, r1, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl CoordInIcePuzzleRegion + cmp r0, #0 + beq _0809DA52 + ldr r1, _0809DA58 + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r0, [r0] + bl GetVarPointer + subs r2, r5, #3 + movs r1, #1 + lsls r1, r2 + ldrh r2, [r0] + orrs r1, r2 + strh r1, [r0] +_0809DA52: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0809DA58: .4byte 0x084E8A0C + thumb_func_end MarkIcePuzzleCoordVisited + + thumb_func_start IsIcePuzzleCoordVisited +IsIcePuzzleCoordVisited: @ 0x0809DA5C + push {r4, r5, lr} + lsls r0, r0, #0x10 + asrs r5, r0, #0x10 + lsls r1, r1, #0x10 + asrs r4, r1, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl CoordInIcePuzzleRegion + cmp r0, #0 + beq _0809DA8E + ldr r1, _0809DA94 + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r0, [r0] + bl VarGet + lsls r0, r0, #0x10 + subs r2, r5, #3 + movs r1, #0x80 + lsls r1, r1, #9 + lsls r1, r2 + ands r1, r0 + cmp r1, #0 + bne _0809DA98 +_0809DA8E: + movs r0, #0 + b _0809DA9A + .align 2, 0 +_0809DA94: .4byte 0x084E8A0C +_0809DA98: + movs r0, #1 +_0809DA9A: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end IsIcePuzzleCoordVisited + + thumb_func_start SetSootopolisGymCrackedIceMetatiles +SetSootopolisGymCrackedIceMetatiles: @ 0x0809DAA0 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r0, _0809DAF4 + ldr r0, [r0] + ldr r1, [r0] + mov sb, r1 + ldr r7, [r0, #4] + movs r5, #0 + cmp r5, sb + bge _0809DAE8 +_0809DAB8: + movs r4, #0 + adds r0, r5, #1 + mov r8, r0 + cmp r4, r7 + bge _0809DAE2 + lsls r6, r5, #0x10 +_0809DAC4: + lsls r1, r4, #0x10 + asrs r1, r1, #0x10 + asrs r0, r6, #0x10 + bl IsIcePuzzleCoordVisited + cmp r0, #1 + bne _0809DADC + adds r1, r4, #7 + adds r0, r5, #7 + ldr r2, _0809DAF8 + bl MapGridSetMetatileIdAt +_0809DADC: + adds r4, #1 + cmp r4, r7 + blt _0809DAC4 +_0809DAE2: + mov r5, r8 + cmp r5, sb + blt _0809DAB8 +_0809DAE8: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0809DAF4: .4byte 0x02036FB8 +_0809DAF8: .4byte 0x0000020E + thumb_func_end SetSootopolisGymCrackedIceMetatiles + + thumb_func_start SootopolisGymIcePerStepCallback +SootopolisGymIcePerStepCallback: @ 0x0809DAFC + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _0809DB20 + adds r5, r1, r0 + movs r1, #2 + ldrsh r0, [r5, r1] + cmp r0, #1 + beq _0809DB48 + cmp r0, #1 + bgt _0809DB24 + cmp r0, #0 + beq _0809DB30 + b _0809DC7E + .align 2, 0 +_0809DB20: .4byte 0x03005B68 +_0809DB24: + cmp r0, #2 + beq _0809DBDE + cmp r0, #3 + bne _0809DB2E + b _0809DC38 +_0809DB2E: + b _0809DC7E +_0809DB30: + mov r4, sp + adds r4, #2 + mov r0, sp + adds r1, r4, #0 + bl PlayerGetDestCoords + mov r0, sp + ldrh r0, [r0] + strh r0, [r5, #4] + ldrh r0, [r4] + strh r0, [r5, #6] + b _0809DC7A +_0809DB48: + mov r7, sp + adds r7, #2 + mov r0, sp + adds r1, r7, #0 + bl PlayerGetDestCoords + mov r0, sp + ldrh r2, [r0] + movs r3, #0 + ldrsh r1, [r0, r3] + movs r3, #4 + ldrsh r0, [r5, r3] + cmp r1, r0 + bne _0809DB72 + movs r0, #0 + ldrsh r1, [r7, r0] + movs r3, #6 + ldrsh r0, [r5, r3] + cmp r1, r0 + bne _0809DB72 + b _0809DC7E +_0809DB72: + strh r2, [r5, #4] + ldrh r0, [r7] + strh r0, [r5, #6] + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0 + ldrsh r1, [r7, r2] + bl MapGridGetMetatileBehaviorAt + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r0, _0809DBB4 + bl GetVarPointer + adds r6, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl MetatileBehavior_IsThinIce + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809DBB8 + ldrh r0, [r6] + adds r0, #1 + strh r0, [r6] + movs r0, #4 + strh r0, [r5, #0xc] + movs r0, #2 + b _0809DBD0 + .align 2, 0 +_0809DBB4: .4byte 0x00004022 +_0809DBB8: + adds r0, r4, #0 + bl MetatileBehavior_IsCrackedIce + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809DC7E + movs r0, #0 + strh r0, [r6] + movs r0, #4 + strh r0, [r5, #0xc] + movs r0, #3 +_0809DBD0: + strh r0, [r5, #2] + mov r0, sp + ldrh r0, [r0] + strh r0, [r5, #8] + ldrh r0, [r7] + strh r0, [r5, #0xa] + b _0809DC7E +_0809DBDE: + ldrh r1, [r5, #0xc] + movs r3, #0xc + ldrsh r0, [r5, r3] + cmp r0, #0 + bne _0809DC42 + mov r1, sp + ldrh r0, [r5, #8] + strh r0, [r1] + mov r4, sp + adds r4, #2 + ldrh r0, [r5, #0xa] + strh r0, [r4] + movs r0, #0x2a + bl PlaySE + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0 + ldrsh r1, [r4, r2] + ldr r2, _0809DC34 + bl MapGridSetMetatileIdAt + mov r0, sp + movs r3, #0 + ldrsh r0, [r0, r3] + movs r2, #0 + ldrsh r1, [r4, r2] + bl CurrentMapDrawMetatileAt + mov r0, sp + ldrh r0, [r0] + subs r0, #7 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrh r1, [r4] + subs r1, #7 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl MarkIcePuzzleCoordVisited + b _0809DC7A + .align 2, 0 +_0809DC34: .4byte 0x0000020E +_0809DC38: + ldrh r1, [r5, #0xc] + movs r3, #0xc + ldrsh r0, [r5, r3] + cmp r0, #0 + beq _0809DC48 +_0809DC42: + subs r0, r1, #1 + strh r0, [r5, #0xc] + b _0809DC7E +_0809DC48: + mov r1, sp + ldrh r0, [r5, #8] + strh r0, [r1] + mov r4, sp + adds r4, #2 + ldrh r0, [r5, #0xa] + strh r0, [r4] + movs r0, #0x29 + bl PlaySE + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0 + ldrsh r1, [r4, r2] + ldr r2, _0809DC88 + bl MapGridSetMetatileIdAt + mov r0, sp + movs r3, #0 + ldrsh r0, [r0, r3] + movs r2, #0 + ldrsh r1, [r4, r2] + bl CurrentMapDrawMetatileAt +_0809DC7A: + movs r0, #1 + strh r0, [r5, #2] +_0809DC7E: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0809DC88: .4byte 0x00000206 + thumb_func_end SootopolisGymIcePerStepCallback + + thumb_func_start AshGrassPerStepCallback +AshGrassPerStepCallback: @ 0x0809DC8C + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _0809DD10 + adds r5, r1, r0 + mov r4, sp + adds r4, #2 + mov r0, sp + adds r1, r4, #0 + bl PlayerGetDestCoords + mov r0, sp + ldrh r2, [r0] + movs r3, #0 + ldrsh r1, [r0, r3] + movs r3, #2 + ldrsh r0, [r5, r3] + cmp r1, r0 + bne _0809DCC6 + movs r0, #0 + ldrsh r1, [r4, r0] + movs r3, #4 + ldrsh r0, [r5, r3] + cmp r1, r0 + beq _0809DD52 +_0809DCC6: + strh r2, [r5, #2] + ldrh r0, [r4] + strh r0, [r5, #4] + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsAshGrass + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809DD52 + mov r0, sp + movs r3, #0 + ldrsh r0, [r0, r3] + movs r2, #0 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileIdAt + ldr r1, _0809DD14 + cmp r0, r1 + bne _0809DD1C + mov r0, sp + movs r3, #0 + ldrsh r0, [r0, r3] + movs r2, #0 + ldrsh r1, [r4, r2] + ldr r2, _0809DD18 + movs r3, #4 + bl StartAshFieldEffect + b _0809DD2E + .align 2, 0 +_0809DD10: .4byte 0x03005B68 +_0809DD14: .4byte 0x0000020A +_0809DD18: .4byte 0x00000212 +_0809DD1C: + mov r0, sp + movs r3, #0 + ldrsh r0, [r0, r3] + movs r2, #0 + ldrsh r1, [r4, r2] + ldr r2, _0809DD5C + movs r3, #4 + bl StartAshFieldEffect +_0809DD2E: + movs r0, #0x87 + lsls r0, r0, #1 + movs r1, #1 + bl CheckBagHasItem + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809DD52 + ldr r0, _0809DD60 + bl GetVarPointer + adds r2, r0, #0 + ldrh r1, [r2] + ldr r0, _0809DD64 + cmp r1, r0 + bhi _0809DD52 + adds r0, r1, #1 + strh r0, [r2] +_0809DD52: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0809DD5C: .4byte 0x00000206 +_0809DD60: .4byte 0x00004048 +_0809DD64: .4byte 0x0000270E + thumb_func_end AshGrassPerStepCallback + + thumb_func_start SetCrackedFloorHoleMetatile +SetCrackedFloorHoleMetatile: @ 0x0809DD68 + push {r4, r5, lr} + lsls r0, r0, #0x10 + asrs r5, r0, #0x10 + lsls r1, r1, #0x10 + asrs r4, r1, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl MapGridGetMetatileIdAt + ldr r1, _0809DD9C + ldr r2, _0809DDA0 + cmp r0, r1 + bne _0809DD84 + subs r2, #0x31 +_0809DD84: + adds r0, r5, #0 + adds r1, r4, #0 + bl MapGridSetMetatileIdAt + adds r0, r5, #0 + adds r1, r4, #0 + bl CurrentMapDrawMetatileAt + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0809DD9C: .4byte 0x0000022F +_0809DDA0: .4byte 0x00000237 + thumb_func_end SetCrackedFloorHoleMetatile + + thumb_func_start CrackedFloorPerStepCallback +CrackedFloorPerStepCallback: @ 0x0809DDA4 + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _0809DE8C + adds r5, r1, r0 + mov r4, sp + adds r4, #2 + 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, r0, #0x10 + lsrs r6, r0, #0x10 + ldrh r1, [r5, #8] + movs r3, #8 + ldrsh r0, [r5, r3] + adds r7, r4, #0 + cmp r0, #0 + beq _0809DDF6 + subs r0, r1, #1 + strh r0, [r5, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0809DDF6 + movs r1, #0xa + ldrsh r0, [r5, r1] + movs r2, #0xc + ldrsh r1, [r5, r2] + bl SetCrackedFloorHoleMetatile +_0809DDF6: + ldrh r1, [r5, #0xe] + movs r3, #0xe + ldrsh r0, [r5, r3] + cmp r0, #0 + beq _0809DE16 + subs r0, r1, #1 + strh r0, [r5, #0xe] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0809DE16 + movs r1, #0x10 + ldrsh r0, [r5, r1] + movs r2, #0x12 + ldrsh r1, [r5, r2] + bl SetCrackedFloorHoleMetatile +_0809DE16: + lsls r0, r6, #0x18 + lsrs r6, r0, #0x18 + adds r0, r6, #0 + bl MetatileBehavior_IsCrackedFloorHole + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809DE2E + ldr r0, _0809DE90 + movs r1, #0 + bl VarSet +_0809DE2E: + mov r0, sp + ldrh r2, [r0] + movs r3, #0 + ldrsh r1, [r0, r3] + movs r3, #4 + ldrsh r0, [r5, r3] + cmp r1, r0 + bne _0809DE4A + movs r0, #0 + ldrsh r1, [r7, r0] + movs r3, #6 + ldrsh r0, [r5, r3] + cmp r1, r0 + beq _0809DEAA +_0809DE4A: + strh r2, [r5, #4] + adds r4, r7, #0 + ldrh r0, [r4] + strh r0, [r5, #6] + adds r0, r6, #0 + bl MetatileBehavior_IsCrackedFloor + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809DEAA + bl GetPlayerSpeed + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + beq _0809DE72 + ldr r0, _0809DE90 + movs r1, #0 + bl VarSet +_0809DE72: + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _0809DE94 + movs r0, #3 + strh r0, [r5, #8] + mov r0, sp + ldrh r0, [r0] + strh r0, [r5, #0xa] + ldrh r0, [r4] + strh r0, [r5, #0xc] + b _0809DEAA + .align 2, 0 +_0809DE8C: .4byte 0x03005B68 +_0809DE90: .4byte 0x00004022 +_0809DE94: + movs r2, #0xe + ldrsh r0, [r5, r2] + cmp r0, #0 + bne _0809DEAA + movs r0, #3 + strh r0, [r5, #0xe] + mov r0, sp + ldrh r0, [r0] + strh r0, [r5, #0x10] + ldrh r0, [r7] + strh r0, [r5, #0x12] +_0809DEAA: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CrackedFloorPerStepCallback + + thumb_func_start SetMuddySlopeMetatile +SetMuddySlopeMetatile: @ 0x0809DEB4 + push {r4, r5, lr} + adds r3, r0, #0 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r4, r2, #0x10 + ldrh r0, [r3] + subs r0, #1 + strh r0, [r3] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0809DED0 + movs r2, #0xe8 + b _0809DEE4 +_0809DED0: + ldr r1, _0809DF0C + movs r2, #0 + ldrsh r0, [r3, r2] + cmp r0, #0 + bge _0809DEDC + adds r0, #7 +_0809DEDC: + asrs r0, r0, #3 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r2, [r0] +_0809DEE4: + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl MapGridSetMetatileIdAt + adds r0, r5, #0 + adds r1, r4, #0 + bl CurrentMapDrawMetatileAt + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0xe8 + bl MapGridSetMetatileIdAt + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0809DF0C: .4byte 0x084E8A40 + thumb_func_end SetMuddySlopeMetatile + + thumb_func_start Task_MuddySlope +Task_MuddySlope: @ 0x0809DF10 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _0809DF58 + adds r4, r1, r0 + mov r5, sp + adds r5, #2 + mov r0, sp + adds r1, r5, #0 + bl PlayerGetDestCoords + ldr r0, _0809DF5C + ldr r0, [r0] + movs r1, #4 + ldrsb r1, [r0, r1] + lsls r1, r1, #8 + ldrb r0, [r0, #5] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + orrs r0, r1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + movs r0, #2 + ldrsh r1, [r4, r0] + mov r8, r5 + cmp r1, #0 + beq _0809DF60 + cmp r1, #1 + beq _0809DF8C + b _0809DFE0 + .align 2, 0 +_0809DF58: .4byte 0x03005B68 +_0809DF5C: .4byte 0x03005AEC +_0809DF60: + strh r7, [r4] + mov r0, sp + ldrh r0, [r0] + strh r0, [r4, #4] + ldrh r0, [r5] + strh r0, [r4, #6] + movs r0, #1 + strh r0, [r4, #2] + strh r1, [r4, #8] + strh r1, [r4, #0xe] + strh r1, [r4, #0x14] + strh r1, [r4, #0x1a] + b _0809DFE0 +_0809DF7A: + movs r0, #0x20 + strh r0, [r1] + mov r0, sp + ldrh r0, [r0] + strh r0, [r1, #2] + mov r2, r8 + ldrh r0, [r2] + strh r0, [r1, #4] + b _0809DFE0 +_0809DF8C: + mov r0, sp + movs r3, #4 + ldrsh r1, [r4, r3] + ldrh r2, [r0] + movs r3, #0 + ldrsh r0, [r0, r3] + cmp r1, r0 + bne _0809DFA8 + movs r0, #6 + ldrsh r1, [r4, r0] + movs r3, #0 + ldrsh r0, [r5, r3] + cmp r1, r0 + beq _0809DFE0 +_0809DFA8: + strh r2, [r4, #4] + ldrh r0, [r5] + strh r0, [r4, #6] + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0 + ldrsh r1, [r5, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsMuddySlope + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809DFE0 + movs r6, #4 + adds r1, r4, #0 + adds r1, #8 +_0809DFD0: + movs r3, #0 + ldrsh r0, [r1, r3] + cmp r0, #0 + beq _0809DF7A + adds r1, #6 + adds r6, #3 + cmp r6, #0xd + ble _0809DFD0 +_0809DFE0: + ldr r2, _0809DFFC + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0809E000 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r7, r0 + beq _0809E000 + strh r7, [r4] + ldrh r0, [r2, #4] + ldrh r1, [r2, #8] + b _0809E004 + .align 2, 0 +_0809DFFC: .4byte 0x02036FD4 +_0809E000: + movs r0, #0 + movs r1, #0 +_0809E004: + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov r8, r0 + lsls r0, r1, #0x10 + asrs r7, r0, #0x10 + adds r5, r4, #0 + adds r5, #8 + adds r4, r5, #0 + movs r6, #9 +_0809E016: + movs r2, #0 + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _0809E03A + ldrh r0, [r4, #2] + mov r3, r8 + subs r0, r0, r3 + strh r0, [r4, #2] + ldrh r0, [r4, #4] + subs r0, r0, r7 + strh r0, [r4, #4] + movs r0, #2 + ldrsh r1, [r4, r0] + movs r3, #4 + ldrsh r2, [r4, r3] + adds r0, r5, #0 + bl SetMuddySlopeMetatile +_0809E03A: + adds r4, #6 + adds r5, #6 + subs r6, #3 + cmp r6, #0 + bge _0809E016 + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end Task_MuddySlope + diff --git a/asm/field_weather.s b/asm/field_weather.s new file mode 100644 index 0000000..813e0d4 --- /dev/null +++ b/asm/field_weather.s @@ -0,0 +1,2730 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start StartWeather +StartWeather: @ 0x080AA8A0 + push {r4, r5, r6, lr} + ldr r0, _080AA964 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + bne _080AA95C + movs r0, #0x90 + lsls r0, r0, #5 + bl AllocSpritePalette + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _080AA968 + lsls r1, r5, #5 + ldr r2, _080AA96C + adds r1, r1, r2 + ldr r2, _080AA970 + bl CpuSet + bl BuildGammaShiftTables + ldr r4, _080AA974 + ldr r1, _080AA978 + adds r0, r4, r1 + strb r5, [r0] + ldr r0, _080AA97C + bl AllocSpritePalette + ldr r2, _080AA980 + adds r1, r4, r2 + strb r0, [r1] + ldr r1, _080AA984 + adds r0, r4, r1 + strb r6, [r0] + adds r2, #4 + adds r0, r4, r2 + strb r6, [r0] + adds r1, #4 + adds r0, r4, r1 + strb r6, [r0] + adds r2, #0xc + adds r0, r4, r2 + strb r6, [r0] + adds r1, #0x22 + adds r0, r4, r1 + strb r6, [r0] + adds r2, #0x17 + adds r0, r4, r2 + strb r6, [r0] + adds r1, #0x24 + adds r0, r4, r1 + strb r6, [r0] + adds r2, #0x1b + adds r0, r4, r2 + strb r6, [r0] + subs r1, #0xd + adds r0, r4, r1 + strb r6, [r0] + adds r2, #0x18 + adds r0, r4, r2 + strb r6, [r0] + subs r1, #0x1d + adds r0, r4, r1 + strb r6, [r0] + movs r0, #0x10 + movs r1, #0 + bl Weather_SetBlendCoeffs + movs r2, #0xda + lsls r2, r2, #3 + adds r0, r4, r2 + strb r6, [r0] + ldr r0, _080AA988 + adds r1, r4, r0 + movs r0, #3 + strb r0, [r1] + movs r1, #0xd9 + lsls r1, r1, #3 + adds r0, r4, r1 + strb r6, [r0] + adds r2, #3 + adds r1, r4, r2 + movs r0, #1 + strb r0, [r1] + ldr r0, _080AA98C + movs r1, #0x50 + bl CreateTask + ldr r1, _080AA990 + adds r4, r4, r1 + strb r0, [r4] +_080AA95C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080AA964: .4byte 0x080AAAAD +_080AA968: .4byte 0x08526F0C +_080AA96C: .4byte 0x020375B4 +_080AA970: .4byte 0x04000008 +_080AA974: .4byte 0x020380F4 +_080AA978: .4byte 0x000006D5 +_080AA97C: .4byte 0x00001201 +_080AA980: .4byte 0x000006D4 +_080AA984: .4byte 0x000006DA +_080AA988: .4byte 0x000006C6 +_080AA98C: .4byte 0x080AAA5D +_080AA990: .4byte 0x000006C9 + thumb_func_end StartWeather + + thumb_func_start SetNextWeather +SetNextWeather: @ 0x080AA994 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + beq _080AA9AA + cmp r4, #5 + beq _080AA9AA + cmp r4, #0xd + beq _080AA9AA + bl PlayRainStoppingSoundEffect +_080AA9AA: + ldr r1, _080AA9EC + ldr r2, _080AA9F0 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, r4 + beq _080AA9CE + movs r3, #0xda + lsls r3, r3, #3 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r4 + bne _080AA9CE + ldr r0, _080AA9F4 + lsls r1, r4, #4 + adds r1, r1, r0 + ldr r0, [r1] + bl _call_via_r0 +_080AA9CE: + ldr r1, _080AA9EC + ldr r2, _080AA9F8 + adds r0, r1, r2 + movs r2, #0 + strb r2, [r0] + ldr r3, _080AA9F0 + adds r0, r1, r3 + strb r4, [r0] + ldr r0, _080AA9FC + adds r1, r1, r0 + strh r2, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AA9EC: .4byte 0x020380F4 +_080AA9F0: .4byte 0x000006D1 +_080AA9F4: .4byte 0x08526DEC +_080AA9F8: .4byte 0x000006D3 +_080AA9FC: .4byte 0x000006CE + thumb_func_end SetNextWeather + + thumb_func_start SetCurrentAndNextWeather +SetCurrentAndNextWeather: @ 0x080AAA00 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl PlayRainStoppingSoundEffect + ldr r0, _080AAA24 + movs r2, #0xda + lsls r2, r2, #3 + adds r1, r0, r2 + strb r4, [r1] + ldr r1, _080AAA28 + adds r0, r0, r1 + strb r4, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AAA24: .4byte 0x020380F4 +_080AAA28: .4byte 0x000006D1 + thumb_func_end SetCurrentAndNextWeather + + thumb_func_start SetCurrentAndNextWeatherNoDelay +SetCurrentAndNextWeatherNoDelay: @ 0x080AAA2C + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl PlayRainStoppingSoundEffect + ldr r1, _080AAA58 + movs r2, #0xda + lsls r2, r2, #3 + adds r0, r1, r2 + strb r4, [r0] + adds r2, #1 + adds r0, r1, r2 + strb r4, [r0] + movs r0, #0xd9 + lsls r0, r0, #3 + adds r1, r1, r0 + movs r0, #1 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AAA58: .4byte 0x020380F4 + thumb_func_end SetCurrentAndNextWeatherNoDelay + + thumb_func_start Task_WeatherInit +Task_WeatherInit: @ 0x080AAA5C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r2, _080AAA9C + movs r1, #0xd9 + lsls r1, r1, #3 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _080AAA94 + ldr r1, _080AAAA0 + movs r3, #0xda + lsls r3, r3, #3 + adds r0, r2, r3 + ldrb r0, [r0] + lsls r0, r0, #4 + adds r1, #8 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + ldr r1, _080AAAA4 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080AAAA8 + str r1, [r0] +_080AAA94: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AAA9C: .4byte 0x020380F4 +_080AAAA0: .4byte 0x08526DEC +_080AAAA4: .4byte 0x03005B60 +_080AAAA8: .4byte 0x080AAAAD + thumb_func_end Task_WeatherInit + + thumb_func_start Task_WeatherMain +Task_WeatherMain: @ 0x080AAAAC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r5, _080AAB14 + movs r0, #0xda + lsls r0, r0, #3 + adds r6, r5, r0 + ldr r1, _080AAB18 + adds r7, r5, r1 + ldrb r0, [r6] + ldrb r2, [r7] + cmp r0, r2 + beq _080AAB28 + ldr r0, _080AAB1C + mov sb, r0 + ldrb r0, [r6] + lsls r0, r0, #4 + mov r1, sb + adds r1, #0xc + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _080AAB38 + ldr r1, _080AAB20 + adds r1, r1, r5 + mov r8, r1 + ldrb r0, [r1] + cmp r0, #2 + beq _080AAB38 + ldrb r0, [r7] + lsls r0, r0, #4 + add r0, sb + ldr r0, [r0] + bl _call_via_r0 + ldr r2, _080AAB24 + adds r0, r5, r2 + strb r4, [r0] + mov r0, r8 + strb r4, [r0] + ldrb r0, [r7] + strb r0, [r6] + adds r2, #0x10 + adds r1, r5, r2 + movs r0, #1 + strb r0, [r1] + b _080AAB38 + .align 2, 0 +_080AAB14: .4byte 0x020380F4 +_080AAB18: .4byte 0x000006D1 +_080AAB1C: .4byte 0x08526DEC +_080AAB20: .4byte 0x000006C6 +_080AAB24: .4byte 0x000006C3 +_080AAB28: + ldr r0, _080AAB58 + ldrb r1, [r6] + lsls r1, r1, #4 + adds r0, #4 + adds r1, r1, r0 + ldr r0, [r1] + bl _call_via_r0 +_080AAB38: + ldr r1, _080AAB5C + ldr r0, _080AAB60 + ldr r2, _080AAB64 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + thumb_func_end Task_WeatherMain + + thumb_func_start None_Main +None_Main: @ 0x080AAB4C + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080AAB58: .4byte 0x08526DEC +_080AAB5C: .4byte 0x08526EDC +_080AAB60: .4byte 0x020380F4 +_080AAB64: .4byte 0x000006C6 + thumb_func_end None_Main + + thumb_func_start None_Init +None_Init: @ 0x080AAB68 + ldr r0, _080AAB7C + ldr r2, _080AAB80 + adds r1, r0, r2 + movs r2, #0 + strb r2, [r1] + ldr r1, _080AAB84 + adds r0, r0, r1 + strb r2, [r0] + bx lr + .align 2, 0 +_080AAB7C: .4byte 0x020380F4 +_080AAB80: .4byte 0x000006C1 +_080AAB84: .4byte 0x000006C2 + thumb_func_end None_Init + + thumb_func_start SetWeatherScreenFadeOut +SetWeatherScreenFadeOut: @ 0x080AAB88 + bx lr + .align 2, 0 + thumb_func_end SetWeatherScreenFadeOut + + thumb_func_start None_Finish +None_Finish: @ 0x080AAB8C + movs r0, #0 + bx lr + thumb_func_end None_Finish + + thumb_func_start BuildGammaShiftTables +BuildGammaShiftTables: @ 0x080AAB90 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r1, _080AABD0 + ldr r0, _080AABD4 + str r0, [r1] + movs r0, #0 + mov ip, r0 + ldr r1, _080AABD8 + mov sl, r1 +_080AABA8: + mov r7, sl + mov r0, ip + cmp r0, #0 + bne _080AABB4 + ldr r1, _080AABDC + adds r7, r7, r1 +_080AABB4: + movs r5, #0 + movs r0, #1 + add r0, ip + mov sb, r0 +_080AABBC: + lsls r1, r5, #8 + lsls r0, r5, #0x18 + lsrs r2, r0, #0x10 + mov r0, ip + cmp r0, #0 + bne _080AABE0 + adds r0, r1, #0 + lsls r0, r0, #0xc + lsrs r4, r0, #0x10 + b _080AABE2 + .align 2, 0 +_080AABD0: .4byte 0x03000F50 +_080AABD4: .4byte 0x08526EEC +_080AABD8: .4byte 0x02038554 +_080AABDC: .4byte 0xFFFFFDA0 +_080AABE0: + movs r4, #0 +_080AABE2: + movs r3, #0 + adds r1, r5, #1 + mov r8, r1 +_080AABE8: + subs r1, r2, r4 + lsls r1, r1, #0x10 + lsrs r2, r1, #0x10 + lsls r0, r3, #5 + adds r0, r0, r7 + adds r0, r0, r5 + lsrs r1, r1, #0x18 + strb r1, [r0] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #2 + bls _080AABE8 + adds r6, r2, #0 + movs r0, #0xf8 + lsls r0, r0, #5 + subs r0, r0, r2 + cmp r0, #0 + bge _080AAC10 + adds r0, #0xf +_080AAC10: + lsls r0, r0, #0xc + lsrs r4, r0, #0x10 + cmp r5, #0xb + bhi _080AAC5A + cmp r3, #0x12 + bhi _080AAC80 +_080AAC1C: + adds r0, r2, r4 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + subs r0, r2, r6 + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + cmp r1, #0 + ble _080AAC38 + lsrs r0, r0, #0x1f + adds r0, r1, r0 + asrs r0, r0, #1 + subs r0, r2, r0 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 +_080AAC38: + lsls r0, r3, #5 + adds r0, r0, r7 + adds r1, r0, r5 + lsrs r0, r2, #8 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1f + bls _080AAC4E + movs r0, #0x1f + strb r0, [r1] +_080AAC4E: + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0x12 + bls _080AAC1C + b _080AAC80 +_080AAC5A: + cmp r3, #0x12 + bhi _080AAC80 + movs r6, #0x1f +_080AAC60: + adds r1, r2, r4 + lsls r1, r1, #0x10 + lsrs r2, r1, #0x10 + lsls r0, r3, #5 + adds r0, r0, r7 + adds r0, r0, r5 + lsrs r1, r1, #0x18 + strb r1, [r0] + cmp r1, #0x1f + bls _080AAC76 + strb r6, [r0] +_080AAC76: + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0x12 + bls _080AAC60 +_080AAC80: + mov r1, r8 + lsls r0, r1, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0x1f + bls _080AABBC + mov r1, sb + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + mov ip, r0 + cmp r0, #1 + bls _080AABA8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end BuildGammaShiftTables + + thumb_func_start UpdateWeatherGammaShift +UpdateWeatherGammaShift: @ 0x080AACA4 + push {r4, r5, r6, r7, lr} + ldr r0, _080AACD4 + ldr r1, _080AACD8 + adds r2, r0, r1 + ldrb r1, [r2] + adds r3, r0, #0 + cmp r1, #2 + beq _080AAD28 + movs r7, #0xd8 + lsls r7, r7, #3 + adds r4, r3, r7 + ldr r1, _080AACDC + adds r0, r3, r1 + ldrb r7, [r4] + mov ip, r7 + movs r6, #0 + ldrsb r6, [r4, r6] + movs r5, #0 + ldrsb r5, [r0, r5] + cmp r6, r5 + bne _080AACE0 + movs r0, #3 + strb r0, [r2] + b _080AAD28 + .align 2, 0 +_080AACD4: .4byte 0x020380F4 +_080AACD8: .4byte 0x000006C6 +_080AACDC: .4byte 0x000006C1 +_080AACE0: + ldr r0, _080AAD08 + adds r2, r3, r0 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + ldr r7, _080AAD0C + adds r1, r3, r7 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + blo _080AAD28 + movs r0, #0 + strb r0, [r2] + mov r0, ip + cmp r6, r5 + bge _080AAD10 + adds r0, #1 + b _080AAD14 + .align 2, 0 +_080AAD08: .4byte 0x000006C3 +_080AAD0C: .4byte 0x000006C2 +_080AAD10: + mov r0, ip + subs r0, #1 +_080AAD14: + strb r0, [r4] + movs r1, #0xd8 + lsls r1, r1, #3 + adds r0, r3, r1 + movs r2, #0 + ldrsb r2, [r0, r2] + movs r0, #0 + movs r1, #0x20 + bl ApplyGammaShift +_080AAD28: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end UpdateWeatherGammaShift + + thumb_func_start FadeInScreenWithWeather +FadeInScreenWithWeather: @ 0x080AAD30 + push {lr} + ldr r2, _080AAD68 + ldr r0, _080AAD6C + adds r1, r2, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _080AAD4E + ldr r3, _080AAD70 + adds r1, r2, r3 + movs r0, #0 + strb r0, [r1] +_080AAD4E: + movs r1, #0xda + lsls r1, r1, #3 + adds r0, r2, r1 + ldrb r0, [r0] + subs r0, #3 + cmp r0, #0xa + bhi _080AAE18 + lsls r0, r0, #2 + ldr r1, _080AAD74 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AAD68: .4byte 0x020380F4 +_080AAD6C: .4byte 0x000006CB +_080AAD70: .4byte 0x000006CA +_080AAD74: .4byte 0x080AAD78 +_080AAD78: @ jump table + .4byte _080AADA4 @ case 0 + .4byte _080AADA4 @ case 1 + .4byte _080AADA4 @ case 2 + .4byte _080AADF0 @ case 3 + .4byte _080AAE18 @ case 4 + .4byte _080AAE18 @ case 5 + .4byte _080AAE18 @ case 6 + .4byte _080AAE18 @ case 7 + .4byte _080AADA4 @ case 8 + .4byte _080AADCC @ case 9 + .4byte _080AADA4 @ case 10 +_080AADA4: + bl FadeInScreen_RainShowShade + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AAE38 + ldr r0, _080AADC4 + movs r2, #0xd8 + lsls r2, r2, #3 + adds r1, r0, r2 + movs r2, #3 + strb r2, [r1] + ldr r3, _080AADC8 + adds r0, r0, r3 + strb r2, [r0] + b _080AAE38 + .align 2, 0 +_080AADC4: .4byte 0x020380F4 +_080AADC8: .4byte 0x000006C6 +_080AADCC: + bl FadeInScreen_Drought + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AAE38 + ldr r1, _080AADE8 + movs r0, #0xd8 + lsls r0, r0, #3 + adds r2, r1, r0 + movs r0, #0xfa + strb r0, [r2] + ldr r2, _080AADEC + adds r1, r1, r2 + b _080AAE34 + .align 2, 0 +_080AADE8: .4byte 0x020380F4 +_080AADEC: .4byte 0x000006C6 +_080AADF0: + bl FadeInScreen_Fog1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _080AAE38 + ldr r0, _080AAE10 + movs r3, #0xd8 + lsls r3, r3, #3 + adds r1, r0, r3 + strb r2, [r1] + ldr r1, _080AAE14 + adds r0, r0, r1 + movs r1, #3 + strb r1, [r0] + b _080AAE38 + .align 2, 0 +_080AAE10: .4byte 0x020380F4 +_080AAE14: .4byte 0x000006C6 +_080AAE18: + ldr r0, _080AAE3C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080AAE38 + ldr r3, _080AAE40 + adds r0, r2, r3 + ldrb r1, [r0] + subs r3, #1 + adds r0, r2, r3 + strb r1, [r0] + ldr r0, _080AAE44 + adds r1, r2, r0 +_080AAE34: + movs r0, #3 + strb r0, [r1] +_080AAE38: + pop {r0} + bx r0 + .align 2, 0 +_080AAE3C: .4byte 0x02037C74 +_080AAE40: .4byte 0x000006C1 +_080AAE44: .4byte 0x000006C6 + thumb_func_end FadeInScreenWithWeather + + thumb_func_start FadeInScreen_RainShowShade +FadeInScreen_RainShowShade: @ 0x080AAE48 + push {r4, lr} + sub sp, #4 + ldr r2, _080AAE84 + ldr r0, _080AAE88 + adds r4, r2, r0 + ldrb r0, [r4] + cmp r0, #0x10 + beq _080AAE9E + adds r1, r0, #1 + strb r1, [r4] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xf + bhi _080AAE90 + movs r3, #0x10 + subs r3, r3, r1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r1, _080AAE8C + adds r0, r2, r1 + ldrh r0, [r0] + str r0, [sp] + movs r0, #0 + movs r1, #0x20 + movs r2, #3 + bl ApplyGammaShiftWithBlend + movs r0, #1 + b _080AAEA0 + .align 2, 0 +_080AAE84: .4byte 0x020380F4 +_080AAE88: .4byte 0x000006C7 +_080AAE8C: .4byte 0x000006C4 +_080AAE90: + movs r0, #0 + movs r1, #0x20 + movs r2, #3 + bl ApplyGammaShift + movs r0, #0x10 + strb r0, [r4] +_080AAE9E: + movs r0, #0 +_080AAEA0: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end FadeInScreen_RainShowShade + + thumb_func_start FadeInScreen_Drought +FadeInScreen_Drought: @ 0x080AAEA8 + push {r4, lr} + ldr r2, _080AAEDC + ldr r0, _080AAEE0 + adds r4, r2, r0 + ldrb r0, [r4] + cmp r0, #0x10 + beq _080AAEF8 + adds r3, r0, #1 + strb r3, [r4] + lsls r0, r3, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xf + bhi _080AAEE8 + movs r0, #6 + rsbs r0, r0, #0 + movs r1, #0x10 + subs r1, r1, r3 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r3, _080AAEE4 + adds r2, r2, r3 + ldrh r2, [r2] + bl ApplyDroughtGammaShiftWithBlend + movs r0, #1 + b _080AAEFA + .align 2, 0 +_080AAEDC: .4byte 0x020380F4 +_080AAEE0: .4byte 0x000006C7 +_080AAEE4: .4byte 0x000006C4 +_080AAEE8: + movs r2, #6 + rsbs r2, r2, #0 + movs r0, #0 + movs r1, #0x20 + bl ApplyGammaShift + movs r0, #0x10 + strb r0, [r4] +_080AAEF8: + movs r0, #0 +_080AAEFA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end FadeInScreen_Drought + + thumb_func_start FadeInScreen_Fog1 +FadeInScreen_Fog1: @ 0x080AAF00 + push {lr} + ldr r2, _080AAF28 + ldr r1, _080AAF2C + adds r0, r2, r1 + ldrb r1, [r0] + cmp r1, #0x10 + beq _080AAF34 + adds r1, #1 + strb r1, [r0] + movs r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _080AAF30 + adds r1, r2, r3 + ldrh r1, [r1] + bl ApplyFogBlend + movs r0, #1 + b _080AAF36 + .align 2, 0 +_080AAF28: .4byte 0x020380F4 +_080AAF2C: .4byte 0x000006C7 +_080AAF30: .4byte 0x000006C4 +_080AAF34: + movs r0, #0 +_080AAF36: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end FadeInScreen_Fog1 + + thumb_func_start DoNothing +DoNothing: @ 0x080AAF3C + bx lr + .align 2, 0 + thumb_func_end DoNothing + + thumb_func_start ApplyGammaShift +ApplyGammaShift: @ 0x080AAF40 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + adds r4, r3, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sb, r1 + lsls r2, r2, #0x18 + asrs r0, r2, #0x18 + cmp r0, #0 + ble _080AB050 + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + lsls r6, r3, #4 + adds r0, r1, r3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + cmp r4, sb + blo _080AAF78 + b _080AB12A +_080AAF78: + ldr r1, [sp] + lsls r0, r1, #0x18 + asrs r0, r0, #0x13 + str r0, [sp, #4] +_080AAF80: + ldr r0, _080AAFB0 + ldr r0, [r0] + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0 + bne _080AAFBC + lsls r1, r6, #1 + ldr r0, _080AAFB4 + adds r0, r1, r0 + ldr r2, _080AAFB8 + adds r1, r1, r2 + movs r2, #8 + bl CpuFastSet + adds r0, r6, #0 + adds r0, #0x10 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + mov r2, sb + lsls r2, r2, #0x10 + mov r8, r2 + adds r4, #1 + mov ip, r4 + b _080AB03A + .align 2, 0 +_080AAFB0: .4byte 0x03000F50 +_080AAFB4: .4byte 0x020373B4 +_080AAFB8: .4byte 0x020377B4 +_080AAFBC: + cmp r0, #2 + beq _080AAFD0 + adds r1, r4, #0 + subs r1, #0x10 + ldr r2, _080AAFD4 + ldr r3, _080AAFD8 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r1, r0 + bne _080AAFE0 +_080AAFD0: + ldr r0, _080AAFDC + b _080AAFE6 + .align 2, 0 +_080AAFD4: .4byte 0x020380F4 +_080AAFD8: .4byte 0x000006D5 +_080AAFDC: .4byte 0x02038554 +_080AAFE0: + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r2, r3 +_080AAFE6: + ldr r1, [sp, #4] + adds r5, r1, r0 + movs r7, #0 + mov r2, sb + lsls r2, r2, #0x10 + mov r8, r2 + adds r4, #1 + mov ip, r4 + ldr r3, _080AB048 + mov sl, r3 +_080AAFFA: + adds r2, r6, #0 + lsls r0, r2, #1 + ldr r1, _080AB04C + adds r0, r0, r1 + ldr r1, [r0] + lsls r0, r1, #0x1b + lsrs r0, r0, #0x1b + adds r0, r5, r0 + ldrb r4, [r0] + lsls r0, r1, #0x16 + lsrs r0, r0, #0x1b + adds r0, r5, r0 + ldrb r3, [r0] + lsls r1, r1, #0x11 + lsrs r1, r1, #0x1b + adds r1, r5, r1 + ldrb r1, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + lsls r2, r2, #1 + add r2, sl + lsls r1, r1, #0xa + lsls r3, r3, #5 + orrs r1, r3 + orrs r1, r4 + strh r1, [r2] + adds r0, r7, #1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + cmp r7, #0xf + bls _080AAFFA +_080AB03A: + mov r2, ip + lsls r0, r2, #0x10 + lsrs r4, r0, #0x10 + cmp r0, r8 + blo _080AAF80 + b _080AB12A + .align 2, 0 +_080AB048: .4byte 0x020377B4 +_080AB04C: .4byte 0x020373B4 +_080AB050: + cmp r0, #0 + bge _080AB118 + mvns r0, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + lsls r6, r3, #4 + adds r0, r1, r3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + adds r4, r3, #0 + cmp r4, sb + bhs _080AB12A +_080AB06C: + ldr r0, _080AB09C + ldr r0, [r0] + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0 + bne _080AB0A8 + lsls r1, r6, #1 + ldr r0, _080AB0A0 + adds r0, r1, r0 + ldr r2, _080AB0A4 + adds r1, r1, r2 + movs r2, #8 + bl CpuFastSet + adds r0, r6, #0 + adds r0, #0x10 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + mov r3, sb + lsls r3, r3, #0x10 + mov r8, r3 + adds r4, #1 + mov ip, r4 + b _080AB100 + .align 2, 0 +_080AB09C: .4byte 0x03000F50 +_080AB0A0: .4byte 0x020373B4 +_080AB0A4: .4byte 0x020377B4 +_080AB0A8: + movs r7, #0 + mov r0, sb + lsls r0, r0, #0x10 + mov r8, r0 + adds r4, #1 + mov ip, r4 + ldr r1, _080AB10C + mov sl, r1 + ldr r2, [sp] + lsls r0, r2, #0x18 + asrs r5, r0, #0xb +_080AB0BE: + lsls r0, r6, #1 + ldr r3, _080AB110 + adds r4, r0, r3 + ldr r1, _080AB114 + adds r0, r0, r1 + ldrh r3, [r0] + lsls r3, r3, #0x10 + lsrs r0, r3, #0x11 + movs r1, #0xf + ands r0, r1 + lsrs r1, r3, #0x12 + movs r2, #0xf0 + ands r1, r2 + orrs r0, r1 + lsrs r3, r3, #0x13 + movs r2, #0xf0 + lsls r2, r2, #4 + adds r1, r2, #0 + ands r3, r1 + orrs r0, r3 + lsls r0, r0, #1 + adds r0, r0, r5 + add r0, sl + ldrh r0, [r0] + strh r0, [r4] + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r0, r7, #1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + cmp r7, #0xf + bls _080AB0BE +_080AB100: + mov r3, ip + lsls r0, r3, #0x10 + lsrs r4, r0, #0x10 + cmp r0, r8 + blo _080AB06C + b _080AB12A + .align 2, 0 +_080AB10C: .4byte 0x0851ADE8 +_080AB110: .4byte 0x020377B4 +_080AB114: .4byte 0x020373B4 +_080AB118: + lsls r1, r4, #5 + ldr r0, _080AB13C + adds r0, r1, r0 + ldr r2, _080AB140 + adds r1, r1, r2 + mov r3, sb + lsls r2, r3, #3 + bl CpuFastSet +_080AB12A: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080AB13C: .4byte 0x020373B4 +_080AB140: .4byte 0x020377B4 + thumb_func_end ApplyGammaShift + + thumb_func_start ApplyGammaShiftWithBlend +ApplyGammaShiftWithBlend: @ 0x080AB144 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + ldr r4, [sp, #0x34] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sl, r1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r8, r3 + mov r1, sp + strh r4, [r1] + ldr r1, [sp] + lsls r3, r1, #0x1b + lsrs r3, r3, #0x1b + str r3, [sp, #4] + lsls r3, r1, #0x16 + lsrs r3, r3, #0x1b + str r3, [sp, #8] + lsls r1, r1, #0x11 + lsrs r1, r1, #0x1b + str r1, [sp, #0xc] + lsls r6, r0, #4 + mov r3, sl + adds r1, r3, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sl, r1 + lsls r2, r2, #0x18 + movs r1, #0xff + lsls r1, r1, #0x18 + adds r2, r2, r1 + lsrs r2, r2, #0x18 + adds r4, r0, #0 + cmp r4, sl + bhs _080AB270 + lsls r0, r2, #0x18 + asrs r0, r0, #0x13 + str r0, [sp, #0x10] +_080AB19C: + ldr r0, _080AB1CC + ldr r0, [r0] + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0 + bne _080AB1D0 + mov r0, sp + ldrh r3, [r0] + adds r0, r6, #0 + movs r1, #0x10 + mov r2, r8 + bl BlendPalette + adds r0, r6, #0 + adds r0, #0x10 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + mov r3, sl + lsls r3, r3, #0x10 + mov sb, r3 + adds r4, #1 + mov ip, r4 + b _080AB266 + .align 2, 0 +_080AB1CC: .4byte 0x03000F50 +_080AB1D0: + cmp r0, #1 + bne _080AB1E0 + ldr r0, _080AB1DC + ldr r1, [sp, #0x10] + adds r5, r1, r0 + b _080AB1E6 + .align 2, 0 +_080AB1DC: .4byte 0x020382F4 +_080AB1E0: + ldr r0, _080AB280 + ldr r3, [sp, #0x10] + adds r5, r3, r0 +_080AB1E6: + movs r7, #0 + mov r0, sl + lsls r0, r0, #0x10 + mov sb, r0 + adds r4, #1 + mov ip, r4 +_080AB1F2: + adds r4, r6, #0 + lsls r0, r4, #1 + ldr r1, _080AB284 + adds r0, r0, r1 + ldr r1, [r0] + lsls r0, r1, #0x1b + lsrs r0, r0, #0x1b + adds r0, r5, r0 + ldrb r3, [r0] + lsls r0, r1, #0x16 + lsrs r0, r0, #0x1b + adds r0, r5, r0 + ldrb r2, [r0] + lsls r1, r1, #0x11 + lsrs r1, r1, #0x1b + adds r1, r5, r1 + ldrb r1, [r1] + ldr r6, [sp, #4] + subs r0, r6, r3 + mov r6, r8 + muls r6, r0, r6 + adds r0, r6, #0 + asrs r0, r0, #4 + adds r3, r3, r0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r6, [sp, #8] + subs r0, r6, r2 + mov r6, r8 + muls r6, r0, r6 + adds r0, r6, #0 + asrs r0, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #0x18 + ldr r6, [sp, #0xc] + subs r0, r6, r1 + mov r6, r8 + muls r6, r0, r6 + adds r0, r6, #0 + asrs r0, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #0x18 + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + lsls r4, r4, #1 + ldr r0, _080AB288 + adds r4, r4, r0 + lsrs r1, r1, #0xe + lsrs r2, r2, #0x13 + orrs r1, r2 + orrs r1, r3 + strh r1, [r4] + adds r0, r7, #1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + cmp r7, #0xf + bls _080AB1F2 +_080AB266: + mov r1, ip + lsls r0, r1, #0x10 + lsrs r4, r0, #0x10 + cmp r0, sb + blo _080AB19C +_080AB270: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080AB280: .4byte 0x02038554 +_080AB284: .4byte 0x020373B4 +_080AB288: .4byte 0x020377B4 + thumb_func_end ApplyGammaShiftWithBlend + + thumb_func_start ApplyDroughtGammaShiftWithBlend +ApplyDroughtGammaShiftWithBlend: @ 0x080AB28C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + mov r1, sp + strh r2, [r1] + lsls r0, r0, #0x18 + movs r1, #0xff + lsls r1, r1, #0x18 + eors r0, r1 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + ldr r0, [sp] + lsls r1, r0, #0x1b + lsrs r1, r1, #0x1b + str r1, [sp, #8] + lsls r1, r0, #0x16 + lsrs r1, r1, #0x1b + str r1, [sp, #0xc] + lsls r0, r0, #0x11 + lsrs r0, r0, #0x1b + mov sl, r0 + movs r5, #0 + movs r4, #0 +_080AB2C4: + ldr r0, _080AB2EC + ldr r0, [r0] + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0 + bne _080AB2F0 + mov r0, sp + ldrh r3, [r0] + adds r0, r5, #0 + movs r1, #0x10 + adds r2, r6, #0 + bl BlendPalette + adds r0, r5, #0 + adds r0, #0x10 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r4, #1 + mov r8, r4 + b _080AB386 + .align 2, 0 +_080AB2EC: .4byte 0x03000F50 +_080AB2F0: + movs r0, #0 + mov ip, r0 + ldr r1, [sp, #4] + lsls r0, r1, #0x18 + adds r4, #1 + mov r8, r4 + movs r7, #0x1e + asrs r0, r0, #0xb + mov sb, r0 +_080AB302: + adds r4, r5, #0 + lsls r0, r4, #1 + ldr r5, _080AB3A0 + adds r0, r0, r5 + ldr r0, [r0] + lsls r2, r0, #0x1b + lsrs r2, r2, #0x1b + lsls r1, r0, #0x16 + lsrs r1, r1, #0x1b + lsls r0, r0, #0x11 + lsrs r0, r0, #0x1b + ands r0, r7 + lsls r0, r0, #7 + ands r1, r7 + lsls r1, r1, #3 + orrs r0, r1 + ands r2, r7 + lsls r0, r0, #1 + orrs r0, r2 + add r0, sb + ldr r1, _080AB3A4 + adds r0, r0, r1 + ldr r1, [r0] + lsls r3, r1, #0x1b + lsrs r3, r3, #0x1b + lsls r2, r1, #0x16 + lsrs r2, r2, #0x1b + lsls r1, r1, #0x11 + lsrs r1, r1, #0x1b + ldr r5, [sp, #8] + subs r0, r5, r3 + muls r0, r6, r0 + asrs r0, r0, #4 + adds r3, r3, r0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r5, [sp, #0xc] + subs r0, r5, r2 + muls r0, r6, r0 + asrs r0, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #0x18 + mov r5, sl + subs r0, r5, r1 + muls r0, r6, r0 + asrs r0, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #0x18 + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r4, r4, #1 + ldr r0, _080AB3A8 + adds r4, r4, r0 + lsrs r1, r1, #0xe + lsrs r2, r2, #0x13 + orrs r1, r2 + orrs r1, r3 + strh r1, [r4] + mov r0, ip + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov ip, r0 + cmp r0, #0xf + bls _080AB302 +_080AB386: + mov r1, r8 + lsls r0, r1, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x1f + bls _080AB2C4 + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080AB3A0: .4byte 0x020373B4 +_080AB3A4: .4byte 0x0851ADE8 +_080AB3A8: .4byte 0x020377B4 + thumb_func_end ApplyDroughtGammaShiftWithBlend + + thumb_func_start ApplyFogBlend +ApplyFogBlend: @ 0x080AB3AC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + adds r3, r1, #0 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + mov r0, sp + strh r3, [r0] + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #0 + adds r2, r7, #0 + bl BlendPalette + ldr r0, [sp] + lsls r1, r0, #0x1b + lsrs r1, r1, #0x1b + str r1, [sp, #4] + lsls r1, r0, #0x16 + lsrs r1, r1, #0x1b + str r1, [sp, #8] + lsls r0, r0, #0x11 + lsrs r0, r0, #0x1b + mov sl, r0 + movs r4, #0x10 +_080AB3E8: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl LightenSpritePaletteInFog + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080AB498 + adds r0, r4, #1 + lsls r1, r0, #0x14 + lsrs r1, r1, #0x10 + mov ip, r1 + lsls r1, r4, #0x14 + lsrs r6, r1, #0x10 + mov sb, r0 + cmp r6, ip + bhs _080AB4AC + movs r0, #0x1c + mov r8, r0 +_080AB40C: + lsls r5, r6, #1 + ldr r0, _080AB490 + adds r0, r5, r0 + ldr r2, [r0] + lsls r4, r2, #0x1b + lsrs r4, r4, #0x1b + lsls r3, r2, #0x16 + lsrs r3, r3, #0x1b + lsls r2, r2, #0x11 + lsrs r2, r2, #0x1b + mov r0, r8 + subs r1, r0, r4 + lsls r0, r1, #1 + adds r0, r0, r1 + asrs r0, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r1, #0x1f + subs r1, r1, r3 + lsls r0, r1, #1 + adds r0, r0, r1 + asrs r0, r0, #2 + adds r3, r3, r0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r0, r8 + subs r1, r0, r2 + lsls r0, r1, #1 + adds r0, r0, r1 + asrs r0, r0, #2 + adds r2, r2, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r1, [sp, #4] + subs r0, r1, r4 + muls r0, r7, r0 + asrs r0, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, [sp, #8] + subs r0, r1, r3 + muls r0, r7, r0 + asrs r0, r0, #4 + adds r3, r3, r0 + lsls r3, r3, #0x18 + mov r1, sl + subs r0, r1, r2 + muls r0, r7, r0 + asrs r0, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #0x18 + ldr r0, _080AB494 + adds r5, r5, r0 + lsrs r2, r2, #0xe + lsrs r3, r3, #0x13 + orrs r2, r3 + orrs r2, r4 + strh r2, [r5] + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, ip + blo _080AB40C + b _080AB4AC + .align 2, 0 +_080AB490: .4byte 0x020373B4 +_080AB494: .4byte 0x020377B4 +_080AB498: + lsls r0, r4, #0x14 + lsrs r0, r0, #0x10 + mov r1, sp + ldrh r3, [r1] + movs r1, #0x10 + adds r2, r7, #0 + bl BlendPalette + adds r4, #1 + mov sb, r4 +_080AB4AC: + mov r1, sb + lsls r0, r1, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x1f + bls _080AB3E8 + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ApplyFogBlend + + thumb_func_start MarkFogSpritePalToLighten +MarkFogSpritePalToLighten: @ 0x080AB4C8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r3, _080AB4F0 + ldr r0, _080AB4F4 + adds r1, r3, r0 + ldrb r0, [r1] + cmp r0, #5 + bhi _080AB4EA + ldr r4, _080AB4F8 + adds r0, r3, r4 + ldrb r3, [r1] + adds r0, r0, r3 + strb r2, [r0] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_080AB4EA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AB4F0: .4byte 0x020380F4 +_080AB4F4: .4byte 0x000006FA +_080AB4F8: .4byte 0x000006F4 + thumb_func_end MarkFogSpritePalToLighten + + thumb_func_start LightenSpritePaletteInFog +LightenSpritePaletteInFog: @ 0x080AB4FC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + movs r1, #0 + ldr r2, _080AB524 + ldr r4, _080AB528 + adds r0, r2, r4 + ldrb r0, [r0] + cmp r1, r0 + bhs _080AB53A + ldr r5, _080AB52C + adds r4, r2, r5 + adds r2, r0, #0 +_080AB516: + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, r3 + bne _080AB530 + movs r0, #1 + b _080AB53C + .align 2, 0 +_080AB524: .4byte 0x020380F4 +_080AB528: .4byte 0x000006FA +_080AB52C: .4byte 0x000006F4 +_080AB530: + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, r2 + blo _080AB516 +_080AB53A: + movs r0, #0 +_080AB53C: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end LightenSpritePaletteInFog + + thumb_func_start sub_080AB544 +sub_080AB544: @ 0x080AB544 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r5, _080AB570 + ldr r1, _080AB574 + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, #3 + bne _080AB56A + lsls r2, r4, #0x18 + asrs r2, r2, #0x18 + movs r0, #0 + movs r1, #0x20 + bl ApplyGammaShift + movs r1, #0xd8 + lsls r1, r1, #3 + adds r0, r5, r1 + strb r4, [r0] +_080AB56A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080AB570: .4byte 0x020380F4 +_080AB574: .4byte 0x000006C6 + thumb_func_end sub_080AB544 + + thumb_func_start sub_080AB578 +sub_080AB578: @ 0x080AB578 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + ldr r3, _080AB5C0 + ldr r0, _080AB5C4 + adds r2, r3, r0 + ldrb r0, [r2] + cmp r0, #3 + bne _080AB5B8 + movs r1, #0 + strb r1, [r2] + movs r2, #0xd8 + lsls r2, r2, #3 + adds r0, r3, r2 + strb r4, [r0] + adds r2, #1 + adds r0, r3, r2 + strb r5, [r0] + adds r2, #2 + adds r0, r3, r2 + strb r1, [r0] + ldr r1, _080AB5C8 + adds r0, r3, r1 + strb r6, [r0] + lsls r0, r4, #0x18 + asrs r0, r0, #0x18 + bl sub_080AB544 +_080AB5B8: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080AB5C0: .4byte 0x020380F4 +_080AB5C4: .4byte 0x000006C6 +_080AB5C8: .4byte 0x000006C2 + thumb_func_end sub_080AB578 + + thumb_func_start FadeScreen +FadeScreen: @ 0x080AB5CC + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r2, r0, #0 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + cmp r0, #1 + beq _080AB604 + cmp r0, #1 + bgt _080AB5E8 + cmp r0, #0 + beq _080AB5F2 + b _080AB6E0 +_080AB5E8: + cmp r2, #2 + beq _080AB5F8 + cmp r2, #3 + beq _080AB608 + b _080AB6E0 +_080AB5F2: + movs r4, #0 + movs r1, #0 + b _080AB60C +_080AB5F8: + ldr r4, _080AB600 + movs r1, #0 + b _080AB60C + .align 2, 0 +_080AB600: .4byte 0x0000FFFF +_080AB604: + movs r4, #0 + b _080AB60A +_080AB608: + ldr r4, _080AB62C +_080AB60A: + movs r1, #1 +_080AB60C: + ldr r0, _080AB630 + movs r2, #0xda + lsls r2, r2, #3 + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #3 + blt _080AB634 + cmp r0, #6 + ble _080AB626 + cmp r0, #0xd + bgt _080AB634 + cmp r0, #0xb + blt _080AB634 +_080AB626: + movs r2, #1 + b _080AB636 + .align 2, 0 +_080AB62C: .4byte 0x0000FFFF +_080AB630: .4byte 0x020380F4 +_080AB634: + movs r2, #0 +_080AB636: + cmp r1, #0 + beq _080AB678 + cmp r2, #0 + beq _080AB64A + ldr r0, _080AB668 + ldr r1, _080AB66C + movs r2, #0x80 + lsls r2, r2, #1 + bl CpuFastSet +_080AB64A: + movs r0, #1 + rsbs r0, r0, #0 + lsls r1, r5, #0x18 + asrs r1, r1, #0x18 + str r4, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _080AB670 + ldr r3, _080AB674 + adds r0, r0, r3 + movs r1, #2 + strb r1, [r0] + b _080AB6E0 + .align 2, 0 +_080AB668: .4byte 0x020377B4 +_080AB66C: .4byte 0x020373B4 +_080AB670: .4byte 0x020380F4 +_080AB674: .4byte 0x000006C6 +_080AB678: + ldr r1, _080AB690 + ldr r3, _080AB694 + adds r0, r1, r3 + strh r4, [r0] + cmp r2, #0 + beq _080AB69C + ldr r0, _080AB698 + adds r1, r1, r0 + movs r0, #0 + strb r0, [r1] + b _080AB6AE + .align 2, 0 +_080AB690: .4byte 0x020380F4 +_080AB694: .4byte 0x000006C4 +_080AB698: .4byte 0x000006C7 +_080AB69C: + movs r0, #1 + rsbs r0, r0, #0 + lsls r1, r5, #0x18 + asrs r1, r1, #0x18 + str r4, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade +_080AB6AE: + ldr r4, _080AB6E8 + ldr r1, _080AB6EC + adds r0, r4, r1 + movs r1, #0 + movs r5, #1 + strb r5, [r0] + ldr r2, _080AB6F0 + adds r0, r4, r2 + strb r5, [r0] + ldr r3, _080AB6F4 + adds r0, r4, r3 + strb r1, [r0] + movs r1, #0xe6 + lsls r1, r1, #3 + adds r0, r4, r1 + ldrb r0, [r0] + adds r2, #0x68 + adds r1, r4, r2 + ldrb r1, [r1] + bl Weather_SetBlendCoeffs + movs r3, #0xd9 + lsls r3, r3, #3 + adds r4, r4, r3 + strb r5, [r4] +_080AB6E0: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080AB6E8: .4byte 0x020380F4 +_080AB6EC: .4byte 0x000006C6 +_080AB6F0: .4byte 0x000006CA +_080AB6F4: .4byte 0x000006CB + thumb_func_end FadeScreen + + thumb_func_start IsWeatherNotFadingIn +IsWeatherNotFadingIn: @ 0x080AB6F8 + ldr r0, _080AB70C + ldr r1, _080AB710 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + eors r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + bx lr + .align 2, 0 +_080AB70C: .4byte 0x020380F4 +_080AB710: .4byte 0x000006C6 + thumb_func_end IsWeatherNotFadingIn + + thumb_func_start UpdateSpritePaletteWithWeather +UpdateSpritePaletteWithWeather: @ 0x080AB714 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #8 + movs r1, #0x80 + lsls r1, r1, #0xd + adds r0, r0, r1 + lsrs r4, r0, #0x10 + ldr r5, _080AB754 + ldr r2, _080AB758 + adds r0, r5, r2 + ldrb r0, [r0] + adds r1, r5, #0 + cmp r0, #1 + beq _080AB75C + cmp r0, #2 + beq _080AB7A8 + adds r2, #0xa + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #6 + beq _080AB7E0 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + subs r2, #0x10 + adds r1, r1, r2 + movs r2, #0 + ldrsb r2, [r1, r2] + movs r1, #1 + bl ApplyGammaShift + b _080AB7F0 + .align 2, 0 +_080AB754: .4byte 0x020380F4 +_080AB758: .4byte 0x000006C6 +_080AB75C: + ldr r2, _080AB79C + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080AB7F0 + adds r2, #6 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #6 + bne _080AB778 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl MarkFogSpritePalToLighten +_080AB778: + lsls r0, r4, #0x14 + lsrs r4, r0, #0x10 + movs r2, #0 + ldr r6, _080AB7A0 + ldr r0, _080AB7A4 + adds r3, r5, r0 +_080AB784: + adds r0, r4, r2 + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r1, [r3] + strh r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0xf + bls _080AB784 + b _080AB7F0 + .align 2, 0 +_080AB79C: .4byte 0x000006CA +_080AB7A0: .4byte 0x020377B4 +_080AB7A4: .4byte 0x000006C4 +_080AB7A8: + lsls r0, r4, #0x14 + lsrs r4, r0, #0x10 + lsls r1, r4, #1 + ldr r0, _080AB7D4 + adds r0, r1, r0 + ldr r2, _080AB7D8 + adds r1, r1, r2 + movs r2, #8 + bl CpuFastSet + ldr r0, _080AB7DC + ldrh r2, [r0, #4] + lsls r2, r2, #0x15 + lsrs r2, r2, #0x1b + ldrh r3, [r0, #6] + lsls r3, r3, #0x11 + lsrs r3, r3, #0x11 + adds r0, r4, #0 + movs r1, #0x10 + bl BlendPalette + b _080AB7F0 + .align 2, 0 +_080AB7D4: .4byte 0x020377B4 +_080AB7D8: .4byte 0x020373B4 +_080AB7DC: .4byte 0x02037C74 +_080AB7E0: + lsls r0, r4, #0x14 + lsrs r4, r0, #0x10 + ldr r3, _080AB7F8 + adds r0, r4, #0 + movs r1, #0x10 + movs r2, #0xc + bl BlendPalette +_080AB7F0: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080AB7F8: .4byte 0x000073FC + thumb_func_end UpdateSpritePaletteWithWeather + + thumb_func_start ApplyWeatherGammaShiftToPal +ApplyWeatherGammaShiftToPal: @ 0x080AB7FC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080AB818 + movs r2, #0xd8 + lsls r2, r2, #3 + adds r1, r1, r2 + movs r2, #0 + ldrsb r2, [r1, r2] + movs r1, #1 + bl ApplyGammaShift + pop {r0} + bx r0 + .align 2, 0 +_080AB818: .4byte 0x020380F4 + thumb_func_end ApplyWeatherGammaShiftToPal + + thumb_func_start sub_080AB81C +sub_080AB81C: @ 0x080AB81C + push {lr} + ldr r1, _080AB830 + ldr r2, _080AB834 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #1 + beq _080AB838 + movs r0, #0 + b _080AB83E + .align 2, 0 +_080AB830: .4byte 0x020380F4 +_080AB834: .4byte 0x000006C6 +_080AB838: + ldr r2, _080AB844 + adds r0, r1, r2 + ldrb r0, [r0] +_080AB83E: + pop {r1} + bx r1 + .align 2, 0 +_080AB844: .4byte 0x000006CA + thumb_func_end sub_080AB81C + + thumb_func_start LoadCustomWeatherSpritePalette +LoadCustomWeatherSpritePalette: @ 0x080AB848 + push {r4, lr} + ldr r4, _080AB870 + ldr r1, _080AB874 + adds r4, r4, r1 + ldrb r1, [r4] + lsls r1, r1, #0x14 + movs r2, #0x80 + lsls r2, r2, #0x11 + adds r1, r1, r2 + lsrs r1, r1, #0x10 + movs r2, #0x20 + bl LoadPalette + ldrb r0, [r4] + bl UpdateSpritePaletteWithWeather + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AB870: .4byte 0x020380F4 +_080AB874: .4byte 0x000006D4 + thumb_func_end LoadCustomWeatherSpritePalette + + thumb_func_start LoadDroughtWeatherPalette +LoadDroughtWeatherPalette: @ 0x080AB878 + movs r2, #0x20 + strb r2, [r0] + strb r2, [r1] + bx lr + thumb_func_end LoadDroughtWeatherPalette + + thumb_func_start ResetDroughtWeatherPaletteLoading +ResetDroughtWeatherPaletteLoading: @ 0x080AB880 + ldr r0, _080AB894 + ldr r2, _080AB898 + adds r1, r0, r2 + movs r2, #1 + strb r2, [r1] + ldr r1, _080AB89C + adds r0, r0, r1 + strb r2, [r0] + bx lr + .align 2, 0 +_080AB894: .4byte 0x020380F4 +_080AB898: .4byte 0x0000074D +_080AB89C: .4byte 0x0000074E + thumb_func_end ResetDroughtWeatherPaletteLoading + + thumb_func_start LoadDroughtWeatherPalettes +LoadDroughtWeatherPalettes: @ 0x080AB8A0 + push {r4, lr} + ldr r1, _080AB8C8 + ldr r0, _080AB8CC + adds r4, r1, r0 + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0x1f + bgt _080AB8D4 + ldr r0, _080AB8D0 + adds r1, r1, r0 + adds r0, r4, #0 + bl LoadDroughtWeatherPalette + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0x1f + bgt _080AB8D4 + movs r0, #1 + b _080AB8D6 + .align 2, 0 +_080AB8C8: .4byte 0x020380F4 +_080AB8CC: .4byte 0x0000074D +_080AB8D0: .4byte 0x0000074E +_080AB8D4: + movs r0, #0 +_080AB8D6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end LoadDroughtWeatherPalettes + + thumb_func_start sub_080AB8DC +sub_080AB8DC: @ 0x080AB8DC + push {lr} + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + mvns r0, r0 + bl sub_080AB544 + pop {r0} + bx r0 + thumb_func_end sub_080AB8DC + + thumb_func_start sub_080AB8EC +sub_080AB8EC: @ 0x080AB8EC + ldr r1, _080AB90C + ldr r2, _080AB910 + adds r0, r1, r2 + movs r2, #0 + strh r2, [r0] + movs r3, #0xe8 + lsls r3, r3, #3 + adds r0, r1, r3 + strh r2, [r0] + adds r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldr r0, _080AB914 + adds r1, r1, r0 + strh r2, [r1] + bx lr + .align 2, 0 +_080AB90C: .4byte 0x020380F4 +_080AB910: .4byte 0x0000073C +_080AB914: .4byte 0x0000073E + thumb_func_end sub_080AB8EC + + thumb_func_start sub_080AB918 +sub_080AB918: @ 0x080AB918 + push {r4, r5, r6, r7, lr} + ldr r5, _080AB934 + ldr r0, _080AB938 + adds r7, r5, r0 + movs r2, #0 + ldrsh r1, [r7, r2] + cmp r1, #1 + beq _080AB98C + cmp r1, #1 + bgt _080AB93C + cmp r1, #0 + beq _080AB942 + b _080ABA14 + .align 2, 0 +_080AB934: .4byte 0x020380F4 +_080AB938: .4byte 0x00000742 +_080AB93C: + cmp r1, #2 + beq _080AB9E0 + b _080ABA14 +_080AB942: + movs r3, #0xe8 + lsls r3, r3, #3 + adds r6, r5, r3 + ldrh r0, [r6] + adds r0, #1 + strh r0, [r6] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #5 + ble _080ABA14 + strh r1, [r6] + ldr r0, _080AB984 + adds r4, r5, r0 + ldrh r0, [r4] + adds r1, r0, #1 + strh r1, [r4] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + bl sub_080AB8DC + ldrh r1, [r4] + movs r2, #0 + ldrsh r0, [r4, r2] + cmp r0, #5 + ble _080ABA14 + ldr r3, _080AB988 + adds r0, r5, r3 + strh r1, [r0] + movs r0, #1 + strh r0, [r7] + movs r0, #0x3c + strh r0, [r6] + b _080ABA14 + .align 2, 0 +_080AB984: .4byte 0x0000073C +_080AB988: .4byte 0x0000073E +_080AB98C: + movs r0, #0xe8 + lsls r0, r0, #3 + adds r2, r5, r0 + ldrh r0, [r2] + adds r0, #3 + movs r1, #0x7f + ands r0, r1 + strh r0, [r2] + ldr r1, _080AB9D4 + movs r3, #0 + ldrsh r0, [r2, r3] + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + subs r0, #1 + asrs r0, r0, #6 + adds r0, #2 + ldr r2, _080AB9D8 + adds r6, r5, r2 + adds r2, r0, #0 + strh r0, [r6] + ldr r3, _080AB9DC + adds r4, r5, r3 + movs r3, #0 + ldrsh r1, [r4, r3] + cmp r0, r1 + beq _080AB9CC + lsls r0, r2, #0x18 + asrs r0, r0, #0x18 + bl sub_080AB8DC +_080AB9CC: + ldrh r0, [r6] + strh r0, [r4] + b _080ABA14 + .align 2, 0 +_080AB9D4: .4byte 0x082FA8CC +_080AB9D8: .4byte 0x0000073C +_080AB9DC: .4byte 0x0000073E +_080AB9E0: + movs r0, #0xe8 + lsls r0, r0, #3 + adds r1, r5, r0 + ldrh r0, [r1] + adds r0, #1 + movs r6, #0 + strh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #5 + ble _080ABA14 + strh r6, [r1] + ldr r1, _080ABA1C + adds r4, r5, r1 + ldrh r0, [r4] + subs r0, #1 + strh r0, [r4] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + bl sub_080AB8DC + movs r2, #0 + ldrsh r0, [r4, r2] + cmp r0, #3 + bne _080ABA14 + strh r6, [r7] +_080ABA14: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080ABA1C: .4byte 0x0000073C + thumb_func_end sub_080AB918 + + thumb_func_start Weather_SetBlendCoeffs +Weather_SetBlendCoeffs: @ 0x080ABA20 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r3, _080ABA58 + movs r4, #0xe6 + lsls r4, r4, #3 + adds r2, r3, r4 + strh r0, [r2] + adds r4, #2 + adds r2, r3, r4 + strh r1, [r2] + adds r4, #2 + adds r2, r3, r4 + strh r0, [r2] + ldr r2, _080ABA5C + adds r3, r3, r2 + strh r1, [r3] + lsls r1, r1, #8 + orrs r1, r0 + movs r0, #0x52 + bl SetGpuReg + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ABA58: .4byte 0x020380F4 +_080ABA5C: .4byte 0x00000736 + thumb_func_end Weather_SetBlendCoeffs + + thumb_func_start Weather_SetTargetBlendCoeffs +Weather_SetTargetBlendCoeffs: @ 0x080ABA60 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r3, _080ABA94 + ldr r5, _080ABA98 + adds r4, r3, r5 + movs r5, #0 + strh r0, [r4] + ldr r4, _080ABA9C + adds r0, r3, r4 + strh r1, [r0] + ldr r1, _080ABAA0 + adds r0, r3, r1 + strb r2, [r0] + adds r4, #3 + adds r0, r3, r4 + strb r5, [r0] + movs r0, #0xe7 + lsls r0, r0, #3 + adds r3, r3, r0 + strb r5, [r3] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080ABA94: .4byte 0x020380F4 +_080ABA98: .4byte 0x00000734 +_080ABA9C: .4byte 0x00000736 +_080ABAA0: .4byte 0x0000073A + thumb_func_end Weather_SetTargetBlendCoeffs + + thumb_func_start Weather_UpdateBlend +Weather_UpdateBlend: @ 0x080ABAA4 + push {r4, r5, r6, lr} + ldr r0, _080ABAFC + movs r1, #0xe6 + lsls r1, r1, #3 + adds r3, r0, r1 + ldr r2, [r3] + ldr r6, _080ABB00 + adds r4, r0, r6 + ldr r1, [r4] + adds r5, r0, #0 + cmp r2, r1 + beq _080ABB68 + ldr r0, _080ABB04 + adds r2, r5, r0 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + ldr r6, _080ABB08 + adds r1, r5, r6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + bls _080ABB34 + movs r0, #0 + strb r0, [r2] + movs r0, #0xe7 + lsls r0, r0, #3 + adds r1, r5, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _080ABB0C + ldrh r1, [r3] + adds r2, r1, #0 + ldrh r0, [r4] + cmp r2, r0 + bhs _080ABB2C + adds r0, r1, #1 + b _080ABB32 + .align 2, 0 +_080ABAFC: .4byte 0x020380F4 +_080ABB00: .4byte 0x00000734 +_080ABB04: .4byte 0x00000739 +_080ABB08: .4byte 0x0000073A +_080ABB0C: + ldr r1, _080ABB24 + adds r3, r5, r1 + ldr r2, _080ABB28 + adds r0, r5, r2 + ldrh r1, [r3] + adds r2, r1, #0 + ldrh r0, [r0] + cmp r2, r0 + bhs _080ABB2C + adds r0, r1, #1 + b _080ABB32 + .align 2, 0 +_080ABB24: .4byte 0x00000732 +_080ABB28: .4byte 0x00000736 +_080ABB2C: + cmp r2, r0 + bls _080ABB34 + subs r0, r1, #1 +_080ABB32: + strh r0, [r3] +_080ABB34: + ldr r6, _080ABB60 + adds r0, r5, r6 + ldrh r1, [r0] + lsls r1, r1, #8 + movs r0, #0xe6 + lsls r0, r0, #3 + adds r4, r5, r0 + ldrh r0, [r4] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + ldr r1, [r4] + ldr r2, _080ABB64 + adds r0, r5, r2 + ldr r0, [r0] + cmp r1, r0 + beq _080ABB68 + movs r0, #0 + b _080ABB6A + .align 2, 0 +_080ABB60: .4byte 0x00000732 +_080ABB64: .4byte 0x00000734 +_080ABB68: + movs r0, #1 +_080ABB6A: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end Weather_UpdateBlend + + thumb_func_start sub_080ABB70 +sub_080ABB70: @ 0x080ABB70 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, #1 + cmp r0, #9 + bhi _080ABC02 + lsls r0, r0, #2 + ldr r1, _080ABB88 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ABB88: .4byte 0x080ABB8C +_080ABB8C: @ jump table + .4byte _080ABBB4 @ case 0 + .4byte _080ABBBC @ case 1 + .4byte _080ABBC4 @ case 2 + .4byte _080ABBCC @ case 3 + .4byte _080ABBD4 @ case 4 + .4byte _080ABBDC @ case 5 + .4byte _080ABBE4 @ case 6 + .4byte _080ABBEC @ case 7 + .4byte _080ABBF4 @ case 8 + .4byte _080ABBFC @ case 9 +_080ABBB4: + movs r0, #1 + bl SetWeather + b _080ABC02 +_080ABBBC: + movs r0, #2 + bl SetWeather + b _080ABC02 +_080ABBC4: + movs r0, #3 + bl SetWeather + b _080ABC02 +_080ABBCC: + movs r0, #4 + bl SetWeather + b _080ABC02 +_080ABBD4: + movs r0, #5 + bl SetWeather + b _080ABC02 +_080ABBDC: + movs r0, #6 + bl SetWeather + b _080ABC02 +_080ABBE4: + movs r0, #9 + bl SetWeather + b _080ABC02 +_080ABBEC: + movs r0, #7 + bl SetWeather + b _080ABC02 +_080ABBF4: + movs r0, #8 + bl SetWeather + b _080ABC02 +_080ABBFC: + movs r0, #0xb + bl SetWeather +_080ABC02: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080ABB70 + + thumb_func_start GetCurrentWeather +GetCurrentWeather: @ 0x080ABC08 + ldr r0, _080ABC14 + movs r1, #0xda + lsls r1, r1, #3 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_080ABC14: .4byte 0x020380F4 + thumb_func_end GetCurrentWeather + + thumb_func_start SetRainStrengthFromSoundEffect +SetRainStrengthFromSoundEffect: @ 0x080ABC18 + push {lr} + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r1, _080ABC38 + ldr r3, _080ABC3C + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, #2 + beq _080ABC6A + cmp r2, #0x53 + beq _080ABC50 + cmp r2, #0x53 + bgt _080ABC40 + cmp r2, #0x51 + beq _080ABC5C + b _080ABC6A + .align 2, 0 +_080ABC38: .4byte 0x020380F4 +_080ABC3C: .4byte 0x000006C6 +_080ABC40: + cmp r2, #0x55 + bne _080ABC6A + ldr r0, _080ABC4C + adds r1, r1, r0 + movs r0, #0 + b _080ABC62 + .align 2, 0 +_080ABC4C: .4byte 0x000006DD +_080ABC50: + ldr r3, _080ABC58 + adds r1, r1, r3 + movs r0, #1 + b _080ABC62 + .align 2, 0 +_080ABC58: .4byte 0x000006DD +_080ABC5C: + ldr r0, _080ABC70 + adds r1, r1, r0 + movs r0, #2 +_080ABC62: + strb r0, [r1] + adds r0, r2, #0 + bl PlaySE +_080ABC6A: + pop {r0} + bx r0 + .align 2, 0 +_080ABC70: .4byte 0x000006DD + thumb_func_end SetRainStrengthFromSoundEffect + + thumb_func_start PlayRainStoppingSoundEffect +PlayRainStoppingSoundEffect: @ 0x080ABC74 + push {lr} + bl IsSpecialSEPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080ABCB2 + ldr r0, _080ABC9C + ldr r1, _080ABCA0 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + beq _080ABCA4 + cmp r0, #1 + bgt _080ABCAC + cmp r0, #0 + bne _080ABCAC + movs r0, #0x56 + bl PlaySE + b _080ABCB2 + .align 2, 0 +_080ABC9C: .4byte 0x020380F4 +_080ABCA0: .4byte 0x000006DD +_080ABCA4: + movs r0, #0x54 + bl PlaySE + b _080ABCB2 +_080ABCAC: + movs r0, #0x52 + bl PlaySE +_080ABCB2: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayRainStoppingSoundEffect + + thumb_func_start IsWeatherChangeComplete +IsWeatherChangeComplete: @ 0x080ABCB8 + ldr r0, _080ABCC4 + ldr r1, _080ABCC8 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_080ABCC4: .4byte 0x020380F4 +_080ABCC8: .4byte 0x000006D3 + thumb_func_end IsWeatherChangeComplete + + thumb_func_start sub_080ABCCC +sub_080ABCCC: @ 0x080ABCCC + ldr r0, _080ABCD8 + ldr r1, _080ABCDC + adds r0, r0, r1 + movs r1, #2 + strb r1, [r0] + bx lr + .align 2, 0 +_080ABCD8: .4byte 0x020380F4 +_080ABCDC: .4byte 0x000006C6 + thumb_func_end sub_080ABCCC + + thumb_func_start sub_080ABCE0 +sub_080ABCE0: @ 0x080ABCE0 + ldr r0, _080ABCEC + ldr r1, _080ABCF0 + adds r0, r0, r1 + movs r1, #3 + strb r1, [r0] + bx lr + .align 2, 0 +_080ABCEC: .4byte 0x020380F4 +_080ABCF0: .4byte 0x000006C6 + thumb_func_end sub_080ABCE0 + + thumb_func_start PreservePaletteInWeather +PreservePaletteInWeather: @ 0x080ABCF4 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _080ABD18 + ldr r5, _080ABD1C + adds r1, r5, #0 + movs r2, #0x10 + bl CpuSet + adds r4, r4, r5 + movs r0, #0 + strb r0, [r4] + ldr r0, _080ABD20 + str r5, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080ABD18: .4byte 0x08526EEC +_080ABD1C: .4byte 0x02038844 +_080ABD20: .4byte 0x03000F50 + thumb_func_end PreservePaletteInWeather + + thumb_func_start ResetPreservedPalettesInWeather +ResetPreservedPalettesInWeather: @ 0x080ABD24 + ldr r1, _080ABD2C + ldr r0, _080ABD30 + str r0, [r1] + bx lr + .align 2, 0 +_080ABD2C: .4byte 0x03000F50 +_080ABD30: .4byte 0x08526EEC + thumb_func_end ResetPreservedPalettesInWeather + diff --git a/asm/field_weather_effect.s b/asm/field_weather_effect.s new file mode 100644 index 0000000..bbd26e5 --- /dev/null +++ b/asm/field_weather_effect.s @@ -0,0 +1,5724 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start Clouds_InitVars +Clouds_InitVars: @ 0x080ABD34 + push {lr} + ldr r0, _080ABD6C + ldr r0, [r0] + ldr r2, _080ABD70 + adds r1, r0, r2 + movs r2, #0 + strb r2, [r1] + ldr r1, _080ABD74 + adds r3, r0, r1 + movs r1, #0x14 + strb r1, [r3] + ldr r3, _080ABD78 + adds r1, r0, r3 + strb r2, [r1] + subs r3, #6 + adds r1, r0, r3 + strh r2, [r1] + ldr r1, _080ABD7C + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080ABD68 + movs r0, #0 + movs r1, #0x10 + bl Weather_SetBlendCoeffs +_080ABD68: + pop {r0} + bx r0 + .align 2, 0 +_080ABD6C: .4byte 0x08526DE8 +_080ABD70: .4byte 0x000006C1 +_080ABD74: .4byte 0x000006C2 +_080ABD78: .4byte 0x000006D2 +_080ABD7C: .4byte 0x000006DE + thumb_func_end Clouds_InitVars + + thumb_func_start Clouds_InitAll +Clouds_InitAll: @ 0x080ABD80 + push {r4, lr} + bl Clouds_InitVars + ldr r0, _080ABDA8 + ldr r1, [r0] + ldr r2, _080ABDAC + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _080ABDA0 + adds r4, r1, r2 +_080ABD96: + bl Clouds_Main + ldrb r0, [r4] + cmp r0, #0 + beq _080ABD96 +_080ABDA0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ABDA8: .4byte 0x08526DE8 +_080ABDAC: .4byte 0x000006D2 + thumb_func_end Clouds_InitAll + + thumb_func_start Clouds_Main +Clouds_Main: @ 0x080ABDB0 + push {r4, r5, lr} + ldr r0, _080ABDCC + ldr r5, [r0] + ldr r0, _080ABDD0 + adds r4, r5, r0 + ldrh r0, [r4] + cmp r0, #1 + beq _080ABDE0 + cmp r0, #1 + bgt _080ABDD4 + cmp r0, #0 + beq _080ABDDA + b _080ABE04 + .align 2, 0 +_080ABDCC: .4byte 0x08526DE8 +_080ABDD0: .4byte 0x000006CC +_080ABDD4: + cmp r0, #2 + beq _080ABDEC + b _080ABE04 +_080ABDDA: + bl CreateCloudSprites + b _080ABDFE +_080ABDE0: + movs r0, #0xc + movs r1, #8 + movs r2, #1 + bl Weather_SetTargetBlendCoeffs + b _080ABDFE +_080ABDEC: + bl Weather_UpdateBlend + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080ABE04 + ldr r0, _080ABE0C + adds r1, r5, r0 + movs r0, #1 + strb r0, [r1] +_080ABDFE: + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] +_080ABE04: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080ABE0C: .4byte 0x000006D2 + thumb_func_end Clouds_Main + + thumb_func_start Clouds_Finish +Clouds_Finish: @ 0x080ABE10 + push {r4, lr} + ldr r0, _080ABE28 + ldr r0, [r0] + ldr r1, _080ABE2C + adds r4, r0, r1 + ldrh r0, [r4] + cmp r0, #0 + beq _080ABE30 + cmp r0, #1 + beq _080ABE3C + movs r0, #0 + b _080ABE52 + .align 2, 0 +_080ABE28: .4byte 0x08526DE8 +_080ABE2C: .4byte 0x000006CE +_080ABE30: + movs r0, #0 + movs r1, #0x10 + movs r2, #1 + bl Weather_SetTargetBlendCoeffs + b _080ABE4A +_080ABE3C: + bl Weather_UpdateBlend + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080ABE50 + bl DestroyCloudSprites +_080ABE4A: + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] +_080ABE50: + movs r0, #1 +_080ABE52: + pop {r4} + pop {r1} + bx r1 + thumb_func_end Clouds_Finish + + thumb_func_start Sunny_InitVars +Sunny_InitVars: @ 0x080ABE58 + ldr r0, _080ABE70 + ldr r1, [r0] + ldr r0, _080ABE74 + adds r2, r1, r0 + movs r0, #0 + strb r0, [r2] + ldr r0, _080ABE78 + adds r1, r1, r0 + movs r0, #0x14 + strb r0, [r1] + bx lr + .align 2, 0 +_080ABE70: .4byte 0x08526DE8 +_080ABE74: .4byte 0x000006C1 +_080ABE78: .4byte 0x000006C2 + thumb_func_end Sunny_InitVars + + thumb_func_start Sunny_InitAll +Sunny_InitAll: @ 0x080ABE7C + push {lr} + bl Sunny_InitVars + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Sunny_InitAll + + thumb_func_start Sunny_Main +Sunny_Main: @ 0x080ABE88 + bx lr + .align 2, 0 + thumb_func_end Sunny_Main + + thumb_func_start Shade_Finish +Shade_Finish: @ 0x080ABE8C + movs r0, #0 + bx lr + thumb_func_end Shade_Finish + + thumb_func_start CreateCloudSprites +CreateCloudSprites: @ 0x080ABE90 + push {r4, r5, lr} + ldr r0, _080ABF08 + ldr r0, [r0] + ldr r1, _080ABF0C + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + beq _080ABF4C + ldr r0, _080ABF10 + bl LoadSpriteSheet + ldr r0, _080ABF14 + bl LoadCustomWeatherSpritePalette + movs r5, #0 +_080ABEAE: + ldr r0, _080ABF18 + movs r1, #0 + movs r2, #0 + movs r3, #0xff + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0x40 + beq _080ABF24 + ldr r0, _080ABF08 + ldr r1, [r0] + lsls r2, r5, #2 + movs r0, #0xfa + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r2 + lsls r4, r3, #4 + adds r4, r4, r3 + lsls r4, r4, #2 + ldr r0, _080ABF1C + adds r4, r4, r0 + str r4, [r1] + ldr r0, _080ABF20 + adds r2, r2, r0 + ldrh r0, [r2] + adds r0, #7 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrh r1, [r2, #2] + adds r1, #7 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r2, r4, #0 + adds r2, #0x20 + adds r3, r4, #0 + adds r3, #0x22 + bl SetSpritePosToMapCoords + adds r4, #0x3e + ldrb r0, [r4] + movs r1, #2 + orrs r0, r1 + strb r0, [r4] + b _080ABF36 + .align 2, 0 +_080ABF08: .4byte 0x08526DE8 +_080ABF0C: .4byte 0x000006DE +_080ABF10: .4byte 0x0852A7F8 +_080ABF14: .4byte 0x08526F2C +_080ABF18: .4byte 0x0852A814 +_080ABF1C: .4byte 0x020205AC +_080ABF20: .4byte 0x0852A7EC +_080ABF24: + ldr r0, _080ABF54 + ldr r1, [r0] + lsls r0, r5, #2 + movs r2, #0xfa + lsls r2, r2, #1 + adds r1, r1, r2 + adds r1, r1, r0 + movs r0, #0 + str r0, [r1] +_080ABF36: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #2 + bls _080ABEAE + ldr r0, _080ABF54 + ldr r0, [r0] + ldr r1, _080ABF58 + adds r0, r0, r1 + movs r1, #1 + strb r1, [r0] +_080ABF4C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080ABF54: .4byte 0x08526DE8 +_080ABF58: .4byte 0x000006DE + thumb_func_end CreateCloudSprites + + thumb_func_start DestroyCloudSprites +DestroyCloudSprites: @ 0x080ABF5C + push {r4, r5, lr} + ldr r0, _080ABFA8 + ldr r1, [r0] + ldr r2, _080ABFAC + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080ABFA0 + movs r4, #0 + movs r0, #0xfa + lsls r0, r0, #1 + adds r5, r1, r0 +_080ABF74: + lsls r0, r4, #2 + adds r0, r5, r0 + ldr r0, [r0] + cmp r0, #0 + beq _080ABF82 + bl DestroySprite +_080ABF82: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #2 + bls _080ABF74 + movs r0, #0x90 + lsls r0, r0, #5 + bl FreeSpriteTilesByTag + ldr r0, _080ABFA8 + ldr r0, [r0] + ldr r1, _080ABFAC + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] +_080ABFA0: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080ABFA8: .4byte 0x08526DE8 +_080ABFAC: .4byte 0x000006DE + thumb_func_end DestroyCloudSprites + + thumb_func_start UpdateCloudSprite +UpdateCloudSprite: @ 0x080ABFB0 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x2e] + adds r0, #1 + movs r1, #1 + ands r0, r1 + strh r0, [r2, #0x2e] + cmp r0, #0 + beq _080ABFC8 + ldrh r0, [r2, #0x20] + subs r0, #1 + strh r0, [r2, #0x20] +_080ABFC8: + pop {r0} + bx r0 + thumb_func_end UpdateCloudSprite + + thumb_func_start Drought_InitVars +Drought_InitVars: @ 0x080ABFCC + ldr r0, _080ABFF0 + ldr r1, [r0] + ldr r0, _080ABFF4 + adds r3, r1, r0 + movs r2, #0 + movs r0, #0 + strh r0, [r3] + ldr r3, _080ABFF8 + adds r0, r1, r3 + strb r2, [r0] + subs r3, #0x11 + adds r0, r1, r3 + strb r2, [r0] + ldr r0, _080ABFFC + adds r1, r1, r0 + strb r2, [r1] + bx lr + .align 2, 0 +_080ABFF0: .4byte 0x08526DE8 +_080ABFF4: .4byte 0x000006CC +_080ABFF8: .4byte 0x000006D2 +_080ABFFC: .4byte 0x000006C2 + thumb_func_end Drought_InitVars + + thumb_func_start Drought_InitAll +Drought_InitAll: @ 0x080AC000 + push {r4, lr} + bl Drought_InitVars + ldr r0, _080AC028 + ldr r1, [r0] + ldr r2, _080AC02C + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _080AC020 + adds r4, r1, r2 +_080AC016: + bl Drought_Main + ldrb r0, [r4] + cmp r0, #0 + beq _080AC016 +_080AC020: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AC028: .4byte 0x08526DE8 +_080AC02C: .4byte 0x000006D2 + thumb_func_end Drought_InitAll + + thumb_func_start Drought_Main +Drought_Main: @ 0x080AC030 + push {lr} + ldr r1, _080AC04C + ldr r0, [r1] + ldr r2, _080AC050 + adds r0, r0, r2 + ldrh r0, [r0] + adds r2, r1, #0 + cmp r0, #4 + bhi _080AC10C + lsls r0, r0, #2 + ldr r1, _080AC054 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AC04C: .4byte 0x08526DE8 +_080AC050: .4byte 0x000006CC +_080AC054: .4byte 0x080AC058 +_080AC058: @ jump table + .4byte _080AC06C @ case 0 + .4byte _080AC088 @ case 1 + .4byte _080AC0A0 @ case 2 + .4byte _080AC0BC @ case 3 + .4byte _080AC0D4 @ case 4 +_080AC06C: + ldr r1, [r2] + ldr r2, _080AC080 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080AC110 + ldr r0, _080AC084 + adds r1, r1, r0 + b _080AC0F4 + .align 2, 0 +_080AC080: .4byte 0x000006C6 +_080AC084: .4byte 0x000006CC +_080AC088: + bl ResetDroughtWeatherPaletteLoading + ldr r0, _080AC098 + ldr r1, [r0] + ldr r2, _080AC09C + adds r1, r1, r2 + b _080AC0F4 + .align 2, 0 +_080AC098: .4byte 0x08526DE8 +_080AC09C: .4byte 0x000006CC +_080AC0A0: + bl LoadDroughtWeatherPalettes + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AC110 + ldr r0, _080AC0B4 + ldr r1, [r0] + ldr r0, _080AC0B8 + adds r1, r1, r0 + b _080AC0F4 + .align 2, 0 +_080AC0B4: .4byte 0x08526DE8 +_080AC0B8: .4byte 0x000006CC +_080AC0BC: + bl sub_080AB8EC + ldr r0, _080AC0CC + ldr r1, [r0] + ldr r2, _080AC0D0 + adds r1, r1, r2 + b _080AC0F4 + .align 2, 0 +_080AC0CC: .4byte 0x08526DE8 +_080AC0D0: .4byte 0x000006CC +_080AC0D4: + bl sub_080AB918 + ldr r0, _080AC0FC + ldr r2, [r0] + ldr r1, _080AC100 + adds r0, r2, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #6 + bne _080AC110 + ldr r0, _080AC104 + adds r1, r2, r0 + movs r0, #1 + strb r0, [r1] + ldr r0, _080AC108 + adds r1, r2, r0 +_080AC0F4: + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _080AC110 + .align 2, 0 +_080AC0FC: .4byte 0x08526DE8 +_080AC100: .4byte 0x0000073C +_080AC104: .4byte 0x000006D2 +_080AC108: .4byte 0x000006CC +_080AC10C: + bl sub_080AB918 +_080AC110: + pop {r0} + bx r0 + thumb_func_end Drought_Main + + thumb_func_start Sunny_Finish +Sunny_Finish: @ 0x080AC114 + movs r0, #0 + bx lr + thumb_func_end Sunny_Finish + + thumb_func_start StartDroughtWeatherBlend +StartDroughtWeatherBlend: @ 0x080AC118 + push {lr} + ldr r0, _080AC128 + movs r1, #0x50 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080AC128: .4byte 0x080AC12D + thumb_func_end StartDroughtWeatherBlend + + thumb_func_start UpdateDroughtBlend +UpdateDroughtBlend: @ 0x080AC12C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080AC150 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #4 + bhi _080AC21E + lsls r0, r0, #2 + ldr r1, _080AC154 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AC150: .4byte 0x03005B60 +_080AC154: .4byte 0x080AC158 +_080AC158: @ jump table + .4byte _080AC16C @ case 0 + .4byte _080AC196 @ case 1 + .4byte _080AC1C4 @ case 2 + .4byte _080AC1F4 @ case 3 + .4byte _080AC214 @ case 4 +_080AC16C: + movs r0, #0 + strh r0, [r4, #0xa] + strh r0, [r4, #0xc] + ldr r0, _080AC1BC + ldrh r0, [r0] + strh r0, [r4, #0xe] + ldr r1, _080AC1C0 + movs r0, #0x48 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0x9e + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080AC196: + ldrh r0, [r4, #0xa] + adds r0, #3 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x10 + ble _080AC1A8 + movs r0, #0x10 + strh r0, [r4, #0xa] +_080AC1A8: + ldrh r1, [r4, #0xa] + movs r0, #0x54 + bl SetGpuReg + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0xf + ble _080AC21E + b _080AC20C + .align 2, 0 +_080AC1BC: .4byte 0x04000048 +_080AC1C0: .4byte 0x00003F3F +_080AC1C4: + ldrh r0, [r4, #0xc] + adds r0, #1 + movs r1, #0 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #9 + ble _080AC21E + strh r1, [r4, #0xc] + ldrh r0, [r4, #0xa] + subs r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _080AC1EA + strh r1, [r4, #0xa] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080AC1EA: + ldrh r1, [r4, #0xa] + movs r0, #0x54 + bl SetGpuReg + b _080AC21E +_080AC1F4: + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + ldrh r1, [r4, #0xe] + movs r0, #0x48 + bl SetGpuReg +_080AC20C: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _080AC21E +_080AC214: + bl EnableBothScriptContexts + adds r0, r5, #0 + bl DestroyTask +_080AC21E: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end UpdateDroughtBlend + + thumb_func_start LightRain_InitVars +LightRain_InitVars: @ 0x080AC224 + push {r4, lr} + ldr r0, _080AC274 + ldr r1, [r0] + ldr r2, _080AC278 + adds r0, r1, r2 + movs r3, #0 + movs r2, #0 + strh r2, [r0] + ldr r4, _080AC27C + adds r0, r1, r4 + strb r3, [r0] + adds r4, #4 + adds r0, r1, r4 + strh r2, [r0] + ldr r0, _080AC280 + adds r2, r1, r0 + movs r0, #8 + strb r0, [r2] + ldr r2, _080AC284 + adds r0, r1, r2 + strb r3, [r0] + adds r4, #3 + adds r2, r1, r4 + movs r0, #0xa + strb r0, [r2] + ldr r0, _080AC288 + adds r2, r1, r0 + movs r0, #3 + strb r0, [r2] + ldr r2, _080AC28C + adds r1, r1, r2 + movs r0, #0x14 + strb r0, [r1] + movs r0, #0x55 + bl SetRainStrengthFromSoundEffect + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AC274: .4byte 0x08526DE8 +_080AC278: .4byte 0x000006CC +_080AC27C: .4byte 0x000006D2 +_080AC280: .4byte 0x000006DB +_080AC284: .4byte 0x000006DC +_080AC288: .4byte 0x000006C1 +_080AC28C: .4byte 0x000006C2 + thumb_func_end LightRain_InitVars + + thumb_func_start LightRain_InitAll +LightRain_InitAll: @ 0x080AC290 + push {r4, lr} + bl LightRain_InitVars + ldr r0, _080AC2B8 + ldr r1, [r0] + ldr r2, _080AC2BC + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _080AC2B0 + adds r4, r1, r2 +_080AC2A6: + bl LightRain_Main + ldrb r0, [r4] + cmp r0, #0 + beq _080AC2A6 +_080AC2B0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AC2B8: .4byte 0x08526DE8 +_080AC2BC: .4byte 0x000006D2 + thumb_func_end LightRain_InitAll + + thumb_func_start LightRain_Main +LightRain_Main: @ 0x080AC2C0 + push {r4, r5, lr} + ldr r0, _080AC2DC + ldr r5, [r0] + ldr r0, _080AC2E0 + adds r4, r5, r0 + ldrh r0, [r4] + cmp r0, #1 + beq _080AC2F0 + cmp r0, #1 + bgt _080AC2E4 + cmp r0, #0 + beq _080AC2EA + b _080AC314 + .align 2, 0 +_080AC2DC: .4byte 0x08526DE8 +_080AC2E0: .4byte 0x000006CC +_080AC2E4: + cmp r0, #2 + beq _080AC2FC + b _080AC314 +_080AC2EA: + bl LoadRainSpriteSheet + b _080AC30E +_080AC2F0: + bl CreateRainSprite + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AC314 + b _080AC30E +_080AC2FC: + bl UpdateVisibleRainSprites + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AC314 + ldr r0, _080AC31C + adds r1, r5, r0 + movs r0, #1 + strb r0, [r1] +_080AC30E: + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] +_080AC314: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080AC31C: .4byte 0x000006D2 + thumb_func_end LightRain_Main + + thumb_func_start LightRain_Finish +LightRain_Finish: @ 0x080AC320 + push {r4, r5, lr} + ldr r0, _080AC33C + ldr r2, [r0] + ldr r1, _080AC340 + adds r3, r2, r1 + ldrh r1, [r3] + adds r4, r0, #0 + cmp r1, #0 + beq _080AC344 + cmp r1, #1 + beq _080AC378 + movs r0, #0 + b _080AC3A6 + .align 2, 0 +_080AC33C: .4byte 0x08526DE8 +_080AC340: .4byte 0x000006CE +_080AC344: + ldr r5, _080AC364 + adds r0, r2, r5 + ldrb r0, [r0] + cmp r0, #3 + beq _080AC356 + cmp r0, #5 + beq _080AC356 + cmp r0, #0xd + bne _080AC36C +_080AC356: + ldr r0, [r4] + ldr r1, _080AC368 + adds r0, r0, r1 + movs r1, #0xff + strh r1, [r0] + movs r0, #0 + b _080AC3A6 + .align 2, 0 +_080AC364: .4byte 0x000006D1 +_080AC368: .4byte 0x000006CE +_080AC36C: + ldr r4, _080AC398 + adds r0, r2, r4 + strb r1, [r0] + ldrh r0, [r3] + adds r0, #1 + strh r0, [r3] +_080AC378: + bl UpdateVisibleRainSprites + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AC3A4 + bl DestroyRainSprites + ldr r0, _080AC39C + ldr r1, [r0] + ldr r5, _080AC3A0 + adds r1, r1, r5 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + movs r0, #0 + b _080AC3A6 + .align 2, 0 +_080AC398: .4byte 0x000006D9 +_080AC39C: .4byte 0x08526DE8 +_080AC3A0: .4byte 0x000006CE +_080AC3A4: + movs r0, #1 +_080AC3A6: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end LightRain_Finish + + thumb_func_start StartRainSpriteFall +StartRainSpriteFall: @ 0x080AC3AC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + movs r1, #0x30 + ldrsh r0, [r7, r1] + cmp r0, #0 + bne _080AC3C0 + ldr r0, _080AC464 + strh r0, [r7, #0x30] +_080AC3C0: + movs r2, #0x30 + ldrsh r1, [r7, r2] + ldr r0, _080AC468 + muls r0, r1, r0 + ldr r3, _080AC46C + adds r0, r0, r3 + lsls r0, r0, #1 + lsrs r0, r0, #0x11 + movs r1, #0x96 + lsls r1, r1, #2 + bl __umodsi3 + movs r1, #0 + mov r8, r1 + strh r0, [r7, #0x30] + ldr r1, _080AC470 + ldr r0, _080AC474 + ldr r5, [r0] + ldr r2, _080AC478 + adds r5, r5, r2 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r6, [r0] + movs r3, #0x30 + ldrsh r0, [r7, r3] + movs r1, #0x1e + bl __modsi3 + adds r4, r0, #0 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + lsls r0, r4, #3 + strh r0, [r7, #0x32] + movs r1, #0x30 + ldrsh r0, [r7, r1] + movs r1, #0x1e + bl __divsi3 + lsls r0, r0, #0x10 + lsls r4, r4, #7 + strh r4, [r7, #0x32] + asrs r0, r0, #9 + strh r0, [r7, #0x34] + ldr r2, _080AC47C + ldrb r1, [r5] + lsls r1, r1, #2 + adds r1, r1, r2 + movs r3, #0 + ldrsh r1, [r1, r3] + muls r1, r6, r1 + subs r4, r4, r1 + strh r4, [r7, #0x32] + ldrb r1, [r5] + lsls r1, r1, #2 + adds r2, #2 + adds r1, r1, r2 + movs r2, #0 + ldrsh r1, [r1, r2] + muls r1, r6, r1 + subs r0, r0, r1 + strh r0, [r7, #0x34] + adds r0, r7, #0 + movs r1, #0 + bl StartSpriteAnim + mov r3, r8 + strh r3, [r7, #0x36] + adds r2, r7, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + strh r6, [r7, #0x2e] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080AC464: .4byte 0x00000169 +_080AC468: .4byte 0x41C64E6D +_080AC46C: .4byte 0x00003039 +_080AC470: .4byte 0x0852A8E8 +_080AC474: .4byte 0x08526DE8 +_080AC478: .4byte 0x000006DC +_080AC47C: .4byte 0x0852A8E0 + thumb_func_end StartRainSpriteFall + + thumb_func_start UpdateRainSprite +UpdateRainSprite: @ 0x080AC480 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0x36 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _080AC55C + ldr r3, _080AC4F4 + ldr r4, _080AC4F8 + ldr r2, [r4] + ldr r0, _080AC4FC + adds r2, r2, r0 + ldrb r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r0] + ldrh r0, [r5, #0x32] + adds r1, r1, r0 + strh r1, [r5, #0x32] + ldrb r0, [r2] + lsls r0, r0, #2 + adds r3, #2 + adds r0, r0, r3 + ldrh r0, [r0] + ldrh r2, [r5, #0x34] + adds r0, r0, r2 + strh r0, [r5, #0x34] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + strh r1, [r5, #0x20] + lsls r0, r0, #0x10 + asrs r2, r0, #0x14 + strh r2, [r5, #0x22] + movs r3, #0x38 + ldrsh r0, [r5, r3] + adds r3, r4, #0 + cmp r0, #0 + beq _080AC500 + adds r0, r1, #0 + adds r0, #8 + lsls r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _080AC500 + adds r1, r2, #0 + movs r0, #0x10 + rsbs r0, r0, #0 + cmp r1, r0 + blt _080AC500 + cmp r1, #0xb0 + bgt _080AC500 + adds r0, r5, #0 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + b _080AC50A + .align 2, 0 +_080AC4F4: .4byte 0x0852A8E0 +_080AC4F8: .4byte 0x08526DE8 +_080AC4FC: .4byte 0x000006DC +_080AC500: + adds r0, r5, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 +_080AC50A: + strb r1, [r0] + adds r4, r0, #0 + ldrh r0, [r5, #0x2e] + subs r0, #1 + strh r0, [r5, #0x2e] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080AC57C + ldr r0, [r3] + ldr r1, _080AC550 + adds r0, r0, r1 + ldrb r1, [r0] + adds r1, #1 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl StartSpriteAnim + movs r0, #1 + strh r0, [r5, #0x36] + ldr r1, _080AC554 + ldrh r0, [r5, #0x20] + ldrh r1, [r1] + subs r0, r0, r1 + strh r0, [r5, #0x20] + ldr r1, _080AC558 + ldrh r0, [r5, #0x22] + ldrh r1, [r1] + subs r0, r0, r1 + strh r0, [r5, #0x22] + ldrb r0, [r4] + movs r1, #2 + orrs r0, r1 + strb r0, [r4] + b _080AC57C + .align 2, 0 +_080AC550: .4byte 0x000006DC +_080AC554: .4byte 0x02021B38 +_080AC558: .4byte 0x02021B3A +_080AC55C: + adds r0, r5, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080AC57C + adds r2, r5, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + bl StartRainSpriteFall +_080AC57C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end UpdateRainSprite + + thumb_func_start WaitRainSprite +WaitRainSprite: @ 0x080AC584 + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x2e] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _080AC5A4 + adds r0, r4, #0 + bl StartRainSpriteFall + ldr r0, _080AC5A0 + str r0, [r4, #0x1c] + b _080AC5A8 + .align 2, 0 +_080AC5A0: .4byte 0x080AC481 +_080AC5A4: + subs r0, r1, #1 + strh r0, [r4, #0x2e] +_080AC5A8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WaitRainSprite + + thumb_func_start InitRainSpriteMovement +InitRainSpriteMovement: @ 0x080AC5B0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + lsls r5, r1, #0x10 + lsrs r5, r5, #0x10 + ldr r2, _080AC634 + ldr r0, _080AC638 + ldr r0, [r0] + ldr r1, _080AC63C + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r1, r0, r2 + ldrh r1, [r1] + mov r8, r1 + adds r2, #2 + adds r0, r0, r2 + ldrh r4, [r0] + add r4, r8 + adds r0, r5, #0 + adds r1, r4, #0 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl __modsi3 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + subs r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r0, _080AC640 + cmp r6, r0 + beq _080AC60E + adds r5, r0, #0 +_080AC5FE: + adds r0, r7, #0 + bl StartRainSpriteFall + subs r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, r5 + bne _080AC5FE +_080AC60E: + cmp r4, r8 + bhs _080AC644 + subs r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, _080AC640 + cmp r4, r0 + beq _080AC630 + adds r5, r0, #0 +_080AC620: + adds r0, r7, #0 + bl UpdateRainSprite + subs r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, r5 + bne _080AC620 +_080AC630: + movs r0, #0 + b _080AC658 + .align 2, 0 +_080AC634: .4byte 0x0852A8E8 +_080AC638: .4byte 0x08526DE8 +_080AC63C: .4byte 0x000006DC +_080AC640: .4byte 0x0000FFFF +_080AC644: + mov r1, r8 + subs r0, r4, r1 + strh r0, [r7, #0x2e] + adds r2, r7, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + movs r0, #1 +_080AC658: + strh r0, [r7, #0x3a] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end InitRainSpriteMovement + + thumb_func_start LoadRainSpriteSheet +LoadRainSpriteSheet: @ 0x080AC664 + push {lr} + ldr r0, _080AC670 + bl LoadSpriteSheet + pop {r0} + bx r0 + .align 2, 0 +_080AC670: .4byte 0x0852A8F0 + thumb_func_end LoadRainSpriteSheet + + thumb_func_start CreateRainSprite +CreateRainSprite: @ 0x080AC674 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _080AC720 + ldr r4, [r0] + ldr r0, _080AC724 + adds r2, r4, r0 + ldrb r0, [r2] + cmp r0, #0x18 + bne _080AC68E + b _080AC794 +_080AC68E: + ldrb r7, [r2] + ldr r0, _080AC728 + ldr r2, _080AC72C + lsls r6, r7, #2 + adds r2, r6, r2 + movs r3, #0 + ldrsh r1, [r2, r3] + movs r3, #2 + ldrsh r2, [r2, r3] + movs r3, #0x4e + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x40 + beq _080AC73C + ldr r3, _080AC730 + lsls r4, r5, #4 + adds r1, r4, r5 + lsls r1, r1, #2 + adds r1, r1, r3 + movs r0, #0 + strh r0, [r1, #0x38] + lsls r2, r7, #3 + adds r0, r2, r7 + lsls r0, r0, #4 + adds r0, r0, r7 + strh r0, [r1, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldr r1, _080AC734 + mov sl, r6 + mov sb, r3 + mov ip, r4 + mov r8, r2 + cmp r0, r1 + ble _080AC6F2 + adds r2, r1, #0 +_080AC6DA: + adds r0, r4, r5 + lsls r0, r0, #2 + ldr r6, _080AC730 + adds r0, r0, r6 + ldr r3, _080AC738 + ldrh r6, [r0, #0x30] + adds r1, r3, r6 + strh r1, [r0, #0x30] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, r2 + bgt _080AC6DA +_080AC6F2: + mov r0, ip + adds r4, r0, r5 + lsls r4, r4, #2 + add r4, sb + adds r0, r4, #0 + bl StartRainSpriteFall + mov r3, r8 + adds r1, r3, r7 + adds r0, r4, #0 + bl InitRainSpriteMovement + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080AC720 + ldr r0, [r0] + add r0, sl + str r4, [r0] + b _080AC742 + .align 2, 0 +_080AC720: .4byte 0x08526DE8 +_080AC724: .4byte 0x000006DA +_080AC728: .4byte 0x0852A8C8 +_080AC72C: .4byte 0x0852A82C +_080AC730: .4byte 0x020205AC +_080AC734: .4byte 0x00000257 +_080AC738: .4byte 0xFFFFFDA8 +_080AC73C: + adds r1, r4, r6 + movs r0, #0 + str r0, [r1] +_080AC742: + ldr r0, _080AC778 + ldr r2, [r0] + ldr r6, _080AC77C + adds r1, r2, r6 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x18 + bne _080AC798 + movs r3, #0 + adds r1, r2, #0 + ldr r5, _080AC780 + ldr r4, _080AC784 +_080AC760: + lsls r0, r3, #2 + adds r0, r1, r0 + ldr r2, [r0] + cmp r2, #0 + beq _080AC78A + movs r6, #0x3a + ldrsh r0, [r2, r6] + cmp r0, #0 + bne _080AC788 + str r5, [r2, #0x1c] + b _080AC78A + .align 2, 0 +_080AC778: .4byte 0x08526DE8 +_080AC77C: .4byte 0x000006DA +_080AC780: .4byte 0x080AC481 +_080AC784: .4byte 0x080AC585 +_080AC788: + str r4, [r2, #0x1c] +_080AC78A: + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0x17 + bls _080AC760 +_080AC794: + movs r0, #0 + b _080AC79A +_080AC798: + movs r0, #1 +_080AC79A: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end CreateRainSprite + + thumb_func_start UpdateVisibleRainSprites +UpdateVisibleRainSprites: @ 0x080AC7A8 + push {r4, r5, r6, r7, lr} + ldr r0, _080AC7C4 + ldr r3, [r0] + movs r0, #0xdb + lsls r0, r0, #3 + adds r4, r3, r0 + ldr r1, _080AC7C8 + adds r5, r3, r1 + ldrb r0, [r4] + ldrb r7, [r5] + cmp r0, r7 + bne _080AC7CC + movs r0, #0 + b _080AC82E + .align 2, 0 +_080AC7C4: .4byte 0x08526DE8 +_080AC7C8: .4byte 0x000006D9 +_080AC7CC: + ldr r0, _080AC804 + adds r2, r3, r0 + ldrh r0, [r2] + adds r0, #1 + movs r6, #0 + strh r0, [r2] + ldr r7, _080AC808 + adds r1, r3, r7 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r1] + cmp r0, r1 + bls _080AC82C + strh r6, [r2] + ldrb r0, [r4] + adds r1, r0, #0 + ldrb r5, [r5] + cmp r1, r5 + bhs _080AC80C + adds r0, #1 + strb r0, [r4] + lsls r0, r1, #2 + adds r0, r3, r0 + ldr r1, [r0] + movs r0, #1 + strh r0, [r1, #0x38] + b _080AC82C + .align 2, 0 +_080AC804: .4byte 0x000006D6 +_080AC808: .4byte 0x000006DB +_080AC80C: + subs r0, #1 + strb r0, [r4] + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r3, r0 + ldr r0, [r0] + strh r6, [r0, #0x38] + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r3, r0 + ldr r1, [r0] + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] +_080AC82C: + movs r0, #1 +_080AC82E: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end UpdateVisibleRainSprites + + thumb_func_start DestroyRainSprites +DestroyRainSprites: @ 0x080AC834 + push {r4, r5, r6, r7, lr} + movs r4, #0 + ldr r0, _080AC87C + ldr r2, [r0] + ldr r3, _080AC880 + adds r1, r2, r3 + adds r7, r0, #0 + ldrb r1, [r1] + cmp r4, r1 + bhs _080AC866 + adds r5, r2, #0 + adds r6, r5, r3 +_080AC84C: + lsls r0, r4, #2 + adds r0, r5, r0 + ldr r0, [r0] + cmp r0, #0 + beq _080AC85A + bl DestroySprite +_080AC85A: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldrb r0, [r6] + cmp r4, r0 + blo _080AC84C +_080AC866: + ldr r0, [r7] + ldr r1, _080AC880 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + ldr r0, _080AC884 + bl FreeSpriteTilesByTag + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080AC87C: .4byte 0x08526DE8 +_080AC880: .4byte 0x000006DA +_080AC884: .4byte 0x00001206 + thumb_func_end DestroyRainSprites + + thumb_func_start Snow_InitVars +Snow_InitVars: @ 0x080AC888 + push {r4, lr} + ldr r0, _080AC8C4 + ldr r1, [r0] + ldr r2, _080AC8C8 + adds r0, r1, r2 + movs r2, #0 + movs r3, #0 + strh r3, [r0] + ldr r4, _080AC8CC + adds r0, r1, r4 + strb r2, [r0] + ldr r0, _080AC8D0 + adds r2, r1, r0 + movs r0, #3 + strb r0, [r2] + subs r4, #0x10 + adds r2, r1, r4 + movs r0, #0x14 + strb r0, [r2] + ldr r0, _080AC8D4 + adds r2, r1, r0 + movs r0, #0x10 + strb r0, [r2] + movs r2, #0xdc + lsls r2, r2, #3 + adds r1, r1, r2 + strh r3, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AC8C4: .4byte 0x08526DE8 +_080AC8C8: .4byte 0x000006CC +_080AC8CC: .4byte 0x000006D2 +_080AC8D0: .4byte 0x000006C1 +_080AC8D4: .4byte 0x000006E5 + thumb_func_end Snow_InitVars + + thumb_func_start Snow_InitAll +Snow_InitAll: @ 0x080AC8D8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + bl Snow_InitVars + ldr r2, _080AC938 + ldr r1, [r2] + ldr r3, _080AC93C + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, #0 + bne _080AC92E + mov r8, r2 + adds r7, r1, r3 +_080AC8F4: + bl Snow_Main + movs r4, #0 + mov r1, r8 + ldr r0, [r1] + ldr r3, _080AC940 + adds r0, r0, r3 + ldrb r0, [r0] + cmp r4, r0 + bhs _080AC928 + ldr r0, _080AC938 + ldr r5, [r0] + adds r6, r5, r3 +_080AC90E: + lsls r1, r4, #2 + adds r0, r5, #0 + adds r0, #0x60 + adds r0, r0, r1 + ldr r0, [r0] + bl UpdateSnowflakeSprite + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldrb r0, [r6] + cmp r4, r0 + blo _080AC90E +_080AC928: + ldrb r0, [r7] + cmp r0, #0 + beq _080AC8F4 +_080AC92E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080AC938: .4byte 0x08526DE8 +_080AC93C: .4byte 0x000006D2 +_080AC940: .4byte 0x000006E4 + thumb_func_end Snow_InitAll + + thumb_func_start Snow_Main +Snow_Main: @ 0x080AC944 + push {r4, r5, lr} + ldr r0, _080AC974 + ldr r5, [r0] + ldr r0, _080AC978 + adds r4, r5, r0 + ldrh r0, [r4] + cmp r0, #0 + bne _080AC96C + bl UpdateVisibleSnowflakeSprites + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AC96C + ldr r0, _080AC97C + adds r1, r5, r0 + movs r0, #1 + strb r0, [r1] + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] +_080AC96C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080AC974: .4byte 0x08526DE8 +_080AC978: .4byte 0x000006CC +_080AC97C: .4byte 0x000006D2 + thumb_func_end Snow_Main + + thumb_func_start Snow_Finish +Snow_Finish: @ 0x080AC980 + push {r4, lr} + ldr r0, _080AC998 + ldr r2, [r0] + ldr r0, _080AC99C + adds r3, r2, r0 + ldrh r1, [r3] + cmp r1, #0 + beq _080AC9A0 + cmp r1, #1 + beq _080AC9B2 + movs r0, #0 + b _080AC9DE + .align 2, 0 +_080AC998: .4byte 0x08526DE8 +_080AC99C: .4byte 0x000006CE +_080AC9A0: + ldr r4, _080AC9D0 + adds r0, r2, r4 + strb r1, [r0] + subs r4, #5 + adds r0, r2, r4 + strh r1, [r0] + ldrh r0, [r3] + adds r0, #1 + strh r0, [r3] +_080AC9B2: + bl UpdateVisibleSnowflakeSprites + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AC9DC + ldr r0, _080AC9D4 + ldr r1, [r0] + ldr r0, _080AC9D8 + adds r1, r1, r0 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + movs r0, #0 + b _080AC9DE + .align 2, 0 +_080AC9D0: .4byte 0x000006E5 +_080AC9D4: .4byte 0x08526DE8 +_080AC9D8: .4byte 0x000006CE +_080AC9DC: + movs r0, #1 +_080AC9DE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end Snow_Finish + + thumb_func_start UpdateVisibleSnowflakeSprites +UpdateVisibleSnowflakeSprites: @ 0x080AC9E4 + push {r4, lr} + ldr r0, _080ACA00 + ldr r1, [r0] + ldr r0, _080ACA04 + adds r3, r1, r0 + ldr r4, _080ACA08 + adds r2, r1, r4 + ldrb r0, [r3] + ldrb r4, [r2] + cmp r0, r4 + bne _080ACA0C + movs r0, #0 + b _080ACA4E + .align 2, 0 +_080ACA00: .4byte 0x08526DE8 +_080ACA04: .4byte 0x000006E4 +_080ACA08: .4byte 0x000006E5 +_080ACA0C: + movs r0, #0xdc + lsls r0, r0, #3 + adds r1, r1, r0 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x24 + bls _080ACA36 + movs r0, #0 + strh r0, [r1] + ldrb r0, [r3] + ldrb r2, [r2] + cmp r0, r2 + bhs _080ACA32 + bl CreateSnowflakeSprite + b _080ACA36 +_080ACA32: + bl DestroySnowflakeSprite +_080ACA36: + ldr r0, _080ACA54 + ldr r0, [r0] + ldr r2, _080ACA58 + adds r1, r0, r2 + ldr r4, _080ACA5C + adds r0, r0, r4 + ldrb r1, [r1] + ldrb r0, [r0] + eors r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f +_080ACA4E: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080ACA54: .4byte 0x08526DE8 +_080ACA58: .4byte 0x000006E4 +_080ACA5C: .4byte 0x000006E5 + thumb_func_end UpdateVisibleSnowflakeSprites + + thumb_func_start CreateSnowflakeSprite +CreateSnowflakeSprite: @ 0x080ACA60 + push {r4, r5, r6, lr} + ldr r0, _080ACAB4 + movs r1, #0 + movs r2, #0 + movs r3, #0x4e + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x40 + beq _080ACAC4 + ldr r0, _080ACAB8 + lsls r4, r1, #4 + adds r4, r4, r1 + lsls r4, r4, #2 + adds r4, r4, r0 + ldr r0, _080ACABC + ldr r5, [r0] + ldr r0, _080ACAC0 + adds r6, r5, r0 + ldrb r0, [r6] + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl InitSnowflakeSpriteMovement + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #2 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r6] + adds r1, r0, #1 + strb r1, [r6] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r5, #0x60 + adds r5, r5, r0 + str r4, [r5] + movs r0, #1 + b _080ACAC6 + .align 2, 0 +_080ACAB4: .4byte 0x0852A928 +_080ACAB8: .4byte 0x020205AC +_080ACABC: .4byte 0x08526DE8 +_080ACAC0: .4byte 0x000006E4 +_080ACAC4: + movs r0, #0 +_080ACAC6: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end CreateSnowflakeSprite + + thumb_func_start DestroySnowflakeSprite +DestroySnowflakeSprite: @ 0x080ACACC + push {lr} + ldr r0, _080ACAE0 + ldr r1, [r0] + ldr r0, _080ACAE4 + adds r2, r1, r0 + ldrb r0, [r2] + cmp r0, #0 + bne _080ACAE8 + movs r0, #0 + b _080ACAFC + .align 2, 0 +_080ACAE0: .4byte 0x08526DE8 +_080ACAE4: .4byte 0x000006E4 +_080ACAE8: + subs r0, #1 + strb r0, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r1, #0x60 + adds r1, r1, r0 + ldr r0, [r1] + bl DestroySprite + movs r0, #1 +_080ACAFC: + pop {r1} + bx r1 + thumb_func_end DestroySnowflakeSprite + + thumb_func_start InitSnowflakeSpriteMovement +InitSnowflakeSpriteMovement: @ 0x080ACB00 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + bl Random + movs r1, #0x36 + ldrsh r2, [r5, r1] + lsls r1, r2, #2 + adds r1, r1, r2 + movs r2, #7 + ands r1, r2 + lsls r4, r1, #4 + subs r4, r4, r1 + lsls r4, r4, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x1e + bl __umodsi3 + adds r4, r4, r0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r1, _080ACBA4 + adds r0, r5, #0 + adds r0, #0x29 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r1] + adds r0, r0, r1 + movs r2, #3 + rsbs r2, r2, #0 + adds r1, r2, #0 + subs r1, r1, r0 + movs r7, #0 + strh r1, [r5, #0x22] + ldr r1, _080ACBA8 + adds r0, r5, #0 + adds r0, #0x28 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r1] + adds r0, r0, r1 + subs r4, r4, r0 + strh r4, [r5, #0x20] + movs r1, #0x22 + ldrsh r0, [r5, r1] + lsls r0, r0, #7 + strh r0, [r5, #0x2e] + strh r7, [r5, #0x24] + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r6, r0, #0 + movs r4, #3 + ands r4, r6 + lsls r0, r4, #2 + adds r0, r0, r4 + adds r0, #0x40 + strh r0, [r5, #0x30] + strh r0, [r5, #0x3c] + movs r1, #1 + bics r1, r6 + adds r0, r5, #0 + bl StartSpriteAnim + strh r7, [r5, #0x34] + movs r0, #1 + cmp r4, #0 + bne _080ACB90 + movs r0, #2 +_080ACB90: + strh r0, [r5, #0x32] + movs r0, #0x1f + ands r0, r6 + adds r0, #0xd2 + strh r0, [r5, #0x3a] + strh r7, [r5, #0x38] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080ACBA4: .4byte 0x02021B3A +_080ACBA8: .4byte 0x02021B38 + thumb_func_end InitSnowflakeSpriteMovement + + thumb_func_start WaitSnowflakeSprite +WaitSnowflakeSprite: @ 0x080ACBAC + push {r4, lr} + adds r3, r0, #0 + ldr r0, _080ACBF8 + ldr r0, [r0] + ldr r1, _080ACBFC + adds r4, r0, r1 + ldrh r0, [r4] + cmp r0, #0x12 + bls _080ACBF2 + adds r2, r3, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldr r0, _080ACC00 + str r0, [r3, #0x1c] + ldr r1, _080ACC04 + adds r0, r3, #0 + adds r0, #0x29 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r1] + adds r0, r0, r1 + movs r1, #0xfa + subs r1, r1, r0 + movs r2, #0 + strh r1, [r3, #0x22] + movs r1, #0x22 + ldrsh r0, [r3, r1] + lsls r0, r0, #7 + strh r0, [r3, #0x2e] + strh r2, [r4] +_080ACBF2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ACBF8: .4byte 0x08526DE8 +_080ACBFC: .4byte 0x000006E2 +_080ACC00: .4byte 0x080ACC09 +_080ACC04: .4byte 0x02021B3A + thumb_func_end WaitSnowflakeSprite + + thumb_func_start UpdateSnowflakeSprite +UpdateSnowflakeSprite: @ 0x080ACC08 + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x30] + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x17 + strh r0, [r4, #0x22] + ldrh r0, [r4, #0x32] + ldrh r2, [r4, #0x34] + adds r0, r0, r2 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x34] + ldr r1, _080ACC80 + movs r3, #0x34 + ldrsh r0, [r4, r3] + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bge _080ACC3A + adds r0, #0x3f +_080ACC3A: + asrs r0, r0, #6 + strh r0, [r4, #0x24] + adds r0, r4, #0 + adds r0, #0x28 + movs r5, #0 + ldrsb r5, [r0, r5] + ldrh r0, [r4, #0x20] + adds r0, r0, r5 + ldr r1, _080ACC84 + ldrh r1, [r1] + adds r3, r1, r0 + ldr r2, _080ACC88 + adds r0, r2, #0 + ands r3, r0 + adds r2, r3, #0 + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r2 + cmp r0, #0 + beq _080ACC6C + ldr r3, _080ACC8C + adds r0, r3, #0 + orrs r2, r0 + lsls r0, r2, #0x10 + lsrs r3, r0, #0x10 +_080ACC6C: + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + movs r2, #3 + rsbs r2, r2, #0 + cmp r0, r2 + bge _080ACC90 + adds r1, r1, r5 + movs r0, #0xf2 + subs r0, r0, r1 + b _080ACC98 + .align 2, 0 +_080ACC80: .4byte 0x082FA8CC +_080ACC84: .4byte 0x02021B38 +_080ACC88: .4byte 0x000001FF +_080ACC8C: .4byte 0xFFFFFF00 +_080ACC90: + cmp r0, #0xf2 + ble _080ACC9A + adds r0, r1, r5 + subs r0, r2, r0 +_080ACC98: + strh r0, [r4, #0x20] +_080ACC9A: + adds r0, r4, #0 + adds r0, #0x29 + movs r3, #0 + ldrsb r3, [r0, r3] + ldrh r0, [r4, #0x22] + adds r0, r0, r3 + ldr r1, _080ACCD8 + ldrh r1, [r1] + adds r2, r1, r0 + movs r0, #0xff + ands r2, r0 + adds r0, r2, #0 + subs r0, #0xa4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #6 + bhi _080ACCDC + adds r1, r1, r3 + movs r0, #0xfa + subs r0, r0, r1 + movs r1, #0 + strh r0, [r4, #0x22] + movs r2, #0x22 + ldrsh r0, [r4, r2] + lsls r0, r0, #7 + strh r0, [r4, #0x2e] + strh r1, [r4, #0x38] + movs r0, #0xdc + strh r0, [r4, #0x3a] + b _080ACD08 + .align 2, 0 +_080ACCD8: .4byte 0x02021B3A +_080ACCDC: + adds r0, r2, #0 + subs r0, #0xf3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #6 + bhi _080ACD08 + movs r1, #0 + movs r0, #0xa3 + strh r0, [r4, #0x22] + lsls r0, r0, #7 + strh r0, [r4, #0x2e] + strh r1, [r4, #0x38] + movs r0, #0xdc + strh r0, [r4, #0x3a] + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080ACD3C + str r0, [r4, #0x1c] +_080ACD08: + ldrh r0, [r4, #0x38] + adds r0, #1 + strh r0, [r4, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r3, #0x3a + ldrsh r1, [r4, r3] + cmp r0, r1 + bne _080ACD34 + adds r0, r4, #0 + bl InitSnowflakeSpriteMovement + movs r0, #0xfa + strh r0, [r4, #0x22] + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080ACD3C + str r0, [r4, #0x1c] +_080ACD34: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080ACD3C: .4byte 0x080ACBAD + thumb_func_end UpdateSnowflakeSprite + + thumb_func_start MedRain_InitVars +MedRain_InitVars: @ 0x080ACD40 + push {r4, r5, lr} + ldr r0, _080ACD98 + ldr r1, [r0] + ldr r2, _080ACD9C + adds r0, r1, r2 + movs r3, #0 + movs r2, #0 + strh r2, [r0] + ldr r5, _080ACDA0 + adds r4, r1, r5 + strb r3, [r4] + adds r5, #4 + adds r0, r1, r5 + strh r2, [r0] + ldr r0, _080ACDA4 + adds r2, r1, r0 + movs r0, #4 + strb r0, [r2] + ldr r2, _080ACDA8 + adds r0, r1, r2 + strb r3, [r0] + adds r5, #3 + adds r2, r1, r5 + movs r0, #0x10 + strb r0, [r2] + ldr r0, _080ACDAC + adds r2, r1, r0 + movs r0, #3 + strb r0, [r2] + subs r5, #0x17 + adds r2, r1, r5 + movs r0, #0x14 + strb r0, [r2] + strb r3, [r4] + ldr r0, _080ACDB0 + adds r1, r1, r0 + strb r3, [r1] + movs r0, #0x51 + bl SetRainStrengthFromSoundEffect + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080ACD98: .4byte 0x08526DE8 +_080ACD9C: .4byte 0x000006CC +_080ACDA0: .4byte 0x000006D2 +_080ACDA4: .4byte 0x000006DB +_080ACDA8: .4byte 0x000006DC +_080ACDAC: .4byte 0x000006C1 +_080ACDB0: .4byte 0x000006ED + thumb_func_end MedRain_InitVars + + thumb_func_start MedRain_InitAll +MedRain_InitAll: @ 0x080ACDB4 + push {r4, lr} + bl MedRain_InitVars + ldr r0, _080ACDDC + ldr r1, [r0] + ldr r2, _080ACDE0 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _080ACDD4 + adds r4, r1, r2 +_080ACDCA: + bl Rain_Main + ldrb r0, [r4] + cmp r0, #0 + beq _080ACDCA +_080ACDD4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ACDDC: .4byte 0x08526DE8 +_080ACDE0: .4byte 0x000006D2 + thumb_func_end MedRain_InitAll + + thumb_func_start HeavyRain_InitVars +HeavyRain_InitVars: @ 0x080ACDE4 + push {r4, r5, lr} + ldr r0, _080ACE38 + ldr r1, [r0] + ldr r2, _080ACE3C + adds r0, r1, r2 + movs r4, #0 + movs r2, #0 + strh r2, [r0] + ldr r5, _080ACE40 + adds r3, r1, r5 + strb r4, [r3] + adds r5, #4 + adds r0, r1, r5 + strh r2, [r0] + ldr r0, _080ACE44 + adds r2, r1, r0 + movs r0, #4 + strb r0, [r2] + adds r5, #6 + adds r2, r1, r5 + movs r0, #1 + strb r0, [r2] + ldr r0, _080ACE48 + adds r2, r1, r0 + movs r0, #0x18 + strb r0, [r2] + subs r5, #0x1b + adds r2, r1, r5 + movs r0, #3 + strb r0, [r2] + ldr r0, _080ACE4C + adds r1, r1, r0 + movs r0, #0x14 + strb r0, [r1] + strb r4, [r3] + movs r0, #0x53 + bl SetRainStrengthFromSoundEffect + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080ACE38: .4byte 0x08526DE8 +_080ACE3C: .4byte 0x000006CC +_080ACE40: .4byte 0x000006D2 +_080ACE44: .4byte 0x000006DB +_080ACE48: .4byte 0x000006D9 +_080ACE4C: .4byte 0x000006C2 + thumb_func_end HeavyRain_InitVars + + thumb_func_start HeavyRain_InitAll +HeavyRain_InitAll: @ 0x080ACE50 + push {r4, lr} + bl HeavyRain_InitVars + ldr r0, _080ACE78 + ldr r1, [r0] + ldr r2, _080ACE7C + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _080ACE70 + adds r4, r1, r2 +_080ACE66: + bl Rain_Main + ldrb r0, [r4] + cmp r0, #0 + beq _080ACE66 +_080ACE70: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ACE78: .4byte 0x08526DE8 +_080ACE7C: .4byte 0x000006D2 + thumb_func_end HeavyRain_InitAll + + thumb_func_start Rain_Main +Rain_Main: @ 0x080ACE80 + push {r4, r5, lr} + bl UpdateThunderSound + ldr r0, _080ACEA0 + ldr r0, [r0] + ldr r1, _080ACEA4 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0xe + bls _080ACE96 + b _080AD1F6 +_080ACE96: + lsls r0, r0, #2 + ldr r1, _080ACEA8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ACEA0: .4byte 0x08526DE8 +_080ACEA4: .4byte 0x000006CC +_080ACEA8: .4byte 0x080ACEAC +_080ACEAC: @ jump table + .4byte _080ACEE8 @ case 0 + .4byte _080ACF04 @ case 1 + .4byte _080ACF28 @ case 2 + .4byte _080ACF58 @ case 3 + .4byte _080ACF7C @ case 4 + .4byte _080ACFAC @ case 5 + .4byte _080ACFDC @ case 6 + .4byte _080AD008 @ case 7 + .4byte _080AD026 @ case 8 + .4byte _080AD084 @ case 9 + .4byte _080AD108 @ case 10 + .4byte _080AD130 @ case 11 + .4byte _080AD160 @ case 12 + .4byte _080AD1A4 @ case 13 + .4byte _080AD1D8 @ case 14 +_080ACEE8: + bl LoadRainSpriteSheet + ldr r0, _080ACEFC + ldr r1, [r0] + ldr r2, _080ACF00 + adds r1, r1, r2 + ldrh r0, [r1] + adds r0, #1 + b _080AD1F4 + .align 2, 0 +_080ACEFC: .4byte 0x08526DE8 +_080ACF00: .4byte 0x000006CC +_080ACF04: + bl CreateRainSprite + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080ACF10 + b _080AD1F6 +_080ACF10: + ldr r0, _080ACF20 + ldr r1, [r0] + ldr r3, _080ACF24 + adds r1, r1, r3 + ldrh r0, [r1] + adds r0, #1 + b _080AD1F4 + .align 2, 0 +_080ACF20: .4byte 0x08526DE8 +_080ACF24: .4byte 0x000006CC +_080ACF28: + bl UpdateVisibleRainSprites + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080ACF34 + b _080AD1F6 +_080ACF34: + ldr r0, _080ACF4C + ldr r1, [r0] + ldr r0, _080ACF50 + adds r2, r1, r0 + movs r0, #1 + strb r0, [r2] + ldr r2, _080ACF54 + adds r1, r1, r2 + ldrh r0, [r1] + adds r0, #1 + b _080AD1F4 + .align 2, 0 +_080ACF4C: .4byte 0x08526DE8 +_080ACF50: .4byte 0x000006D2 +_080ACF54: .4byte 0x000006CC +_080ACF58: + ldr r0, _080ACF70 + ldr r1, [r0] + ldr r3, _080ACF74 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, #0 + bne _080ACF68 + b _080AD1F6 +_080ACF68: + ldr r0, _080ACF78 + adds r1, r1, r0 + movs r0, #6 + b _080AD1F4 + .align 2, 0 +_080ACF70: .4byte 0x08526DE8 +_080ACF74: .4byte 0x000006C6 +_080ACF78: .4byte 0x000006CC +_080ACF7C: + ldr r0, _080ACFCC + ldr r4, [r0] + ldr r2, _080ACFD0 + adds r1, r4, r2 + movs r0, #1 + strb r0, [r1] + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r5, #0xb4 + lsls r5, r5, #1 + adds r1, r5, #0 + bl __umodsi3 + adds r0, r0, r5 + ldr r3, _080ACFD4 + adds r1, r4, r3 + strh r0, [r1] + ldr r0, _080ACFD8 + adds r4, r4, r0 + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] +_080ACFAC: + ldr r0, _080ACFCC + ldr r2, [r0] + ldr r3, _080ACFD4 + adds r1, r2, r3 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080ACFC2 + b _080AD1F6 +_080ACFC2: + ldr r0, _080ACFD8 + adds r1, r2, r0 + ldrh r0, [r1] + adds r0, #1 + b _080AD1F4 + .align 2, 0 +_080ACFCC: .4byte 0x08526DE8 +_080ACFD0: .4byte 0x000006EA +_080ACFD4: .4byte 0x000006E6 +_080ACFD8: .4byte 0x000006CC +_080ACFDC: + ldr r0, _080ACFFC + ldr r4, [r0] + ldr r1, _080AD000 + adds r0, r4, r1 + movs r5, #1 + strb r5, [r0] + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ands r0, r5 + ldr r2, _080AD004 + adds r1, r4, r2 + strb r0, [r1] + b _080AD064 + .align 2, 0 +_080ACFFC: .4byte 0x08526DE8 +_080AD000: .4byte 0x000006EA +_080AD004: .4byte 0x000006EB +_080AD008: + bl Random + ldr r1, _080AD070 + ldr r2, [r1] + movs r1, #1 + ands r1, r0 + adds r1, #1 + ldr r3, _080AD074 + adds r0, r2, r3 + strb r1, [r0] + ldr r0, _080AD078 + adds r2, r2, r0 + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] +_080AD026: + movs r0, #0x13 + bl sub_080AB544 + ldr r0, _080AD070 + ldr r1, [r0] + ldr r2, _080AD07C + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _080AD04A + ldr r3, _080AD074 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, #1 + bne _080AD04A + movs r0, #0x14 + bl SetThunderCounter +_080AD04A: + bl Random + ldr r1, _080AD070 + ldr r4, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + adds r0, #6 + ldr r2, _080AD080 + adds r1, r4, r2 + strh r0, [r1] +_080AD064: + ldr r3, _080AD078 + adds r4, r4, r3 + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + b _080AD1F6 + .align 2, 0 +_080AD070: .4byte 0x08526DE8 +_080AD074: .4byte 0x000006EC +_080AD078: .4byte 0x000006CC +_080AD07C: .4byte 0x000006EB +_080AD080: .4byte 0x000006E6 +_080AD084: + ldr r0, _080AD0D0 + ldr r4, [r0] + ldr r0, _080AD0D4 + adds r5, r4, r0 + ldrh r0, [r5] + subs r0, #1 + strh r0, [r5] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080AD09A + b _080AD1F6 +_080AD09A: + movs r0, #3 + bl sub_080AB544 + ldr r2, _080AD0D8 + adds r1, r4, r2 + movs r0, #1 + strb r0, [r1] + ldr r3, _080AD0DC + adds r1, r4, r3 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080AD0E4 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xf + ands r0, r1 + adds r0, #0x3c + strh r0, [r5] + ldr r0, _080AD0E0 + adds r1, r4, r0 + movs r0, #0xa + b _080AD1F4 + .align 2, 0 +_080AD0D0: .4byte 0x08526DE8 +_080AD0D4: .4byte 0x000006E6 +_080AD0D8: .4byte 0x000006EA +_080AD0DC: .4byte 0x000006EC +_080AD0E0: .4byte 0x000006CC +_080AD0E4: + ldr r1, _080AD0F4 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080AD0FC + ldr r2, _080AD0F8 + adds r1, r4, r2 + b _080AD1F2 + .align 2, 0 +_080AD0F4: .4byte 0x000006EB +_080AD0F8: .4byte 0x000006CC +_080AD0FC: + ldr r3, _080AD104 + adds r1, r4, r3 + movs r0, #0xb + b _080AD1F4 + .align 2, 0 +_080AD104: .4byte 0x000006CC +_080AD108: + ldr r0, _080AD124 + ldr r2, [r0] + ldr r0, _080AD128 + adds r1, r2, r0 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080AD1F6 + ldr r3, _080AD12C + adds r1, r2, r3 + movs r0, #8 + b _080AD1F4 + .align 2, 0 +_080AD124: .4byte 0x08526DE8 +_080AD128: .4byte 0x000006E6 +_080AD12C: .4byte 0x000006CC +_080AD130: + bl Random + ldr r1, _080AD154 + ldr r2, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xf + ands r0, r1 + adds r0, #0x3c + ldr r3, _080AD158 + adds r1, r2, r3 + strh r0, [r1] + ldr r0, _080AD15C + adds r2, r2, r0 + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + b _080AD1F6 + .align 2, 0 +_080AD154: .4byte 0x08526DE8 +_080AD158: .4byte 0x000006E6 +_080AD15C: .4byte 0x000006CC +_080AD160: + ldr r0, _080AD198 + ldr r5, [r0] + ldr r1, _080AD19C + adds r4, r5, r1 + ldrh r0, [r4] + subs r0, #1 + strh r0, [r4] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080AD1F6 + movs r0, #0x64 + bl SetThunderCounter + movs r0, #0x13 + bl sub_080AB544 + bl Random + movs r1, #0xf + ands r1, r0 + adds r1, #0x1e + strh r1, [r4] + ldr r2, _080AD1A0 + adds r1, r5, r2 + ldrh r0, [r1] + adds r0, #1 + b _080AD1F4 + .align 2, 0 +_080AD198: .4byte 0x08526DE8 +_080AD19C: .4byte 0x000006E6 +_080AD1A0: .4byte 0x000006CC +_080AD1A4: + ldr r0, _080AD1CC + ldr r4, [r0] + ldr r3, _080AD1D0 + adds r1, r4, r3 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080AD1F6 + movs r0, #0x13 + movs r1, #3 + movs r2, #5 + bl sub_080AB578 + ldr r0, _080AD1D4 + adds r1, r4, r0 + ldrh r0, [r1] + adds r0, #1 + b _080AD1F4 + .align 2, 0 +_080AD1CC: .4byte 0x08526DE8 +_080AD1D0: .4byte 0x000006E6 +_080AD1D4: .4byte 0x000006CC +_080AD1D8: + ldr r0, _080AD1FC + ldr r2, [r0] + ldr r1, _080AD200 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #3 + bne _080AD1F6 + ldr r3, _080AD204 + adds r1, r2, r3 + movs r0, #1 + strb r0, [r1] + ldr r0, _080AD208 + adds r1, r2, r0 +_080AD1F2: + movs r0, #4 +_080AD1F4: + strh r0, [r1] +_080AD1F6: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080AD1FC: .4byte 0x08526DE8 +_080AD200: .4byte 0x000006C6 +_080AD204: .4byte 0x000006EA +_080AD208: .4byte 0x000006CC + thumb_func_end Rain_Main + + thumb_func_start Rain_Finish +Rain_Finish: @ 0x080AD20C + push {r4, r5, r6, lr} + ldr r0, _080AD228 + ldr r6, [r0] + ldr r0, _080AD22C + adds r5, r6, r0 + ldrh r1, [r5] + cmp r1, #1 + beq _080AD242 + cmp r1, #1 + bgt _080AD230 + cmp r1, #0 + beq _080AD236 + b _080AD2A8 + .align 2, 0 +_080AD228: .4byte 0x08526DE8 +_080AD22C: .4byte 0x000006CE +_080AD230: + cmp r1, #2 + beq _080AD28C + b _080AD2A8 +_080AD236: + ldr r2, _080AD27C + adds r0, r6, r2 + strb r1, [r0] + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] +_080AD242: + bl Rain_Main + ldr r0, _080AD280 + ldr r2, [r0] + ldr r1, _080AD27C + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _080AD2B0 + subs r1, #0x19 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #3 + beq _080AD2A8 + cmp r0, #5 + beq _080AD2A8 + cmp r0, #0xd + beq _080AD2A8 + ldr r0, _080AD284 + adds r1, r2, r0 + movs r0, #0 + strb r0, [r1] + ldr r0, _080AD288 + adds r1, r2, r0 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _080AD2B0 + .align 2, 0 +_080AD27C: .4byte 0x000006EA +_080AD280: .4byte 0x08526DE8 +_080AD284: .4byte 0x000006D9 +_080AD288: .4byte 0x000006CE +_080AD28C: + bl UpdateVisibleRainSprites + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _080AD2B0 + bl DestroyRainSprites + ldr r1, _080AD2AC + adds r0, r6, r1 + strb r4, [r0] + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] +_080AD2A8: + movs r0, #0 + b _080AD2B2 + .align 2, 0 +_080AD2AC: .4byte 0x000006ED +_080AD2B0: + movs r0, #1 +_080AD2B2: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end Rain_Finish + + thumb_func_start SetThunderCounter +SetThunderCounter: @ 0x080AD2B8 + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r0, _080AD2EC + ldr r4, [r0] + ldr r0, _080AD2F0 + adds r5, r4, r0 + ldrb r0, [r5] + cmp r0, #0 + bne _080AD2E6 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r6, #0 + bl __umodsi3 + movs r2, #0xdd + lsls r2, r2, #3 + adds r1, r4, r2 + strh r0, [r1] + movs r0, #1 + strb r0, [r5] +_080AD2E6: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080AD2EC: .4byte 0x08526DE8 +_080AD2F0: .4byte 0x000006ED + thumb_func_end SetThunderCounter + + thumb_func_start UpdateThunderSound +UpdateThunderSound: @ 0x080AD2F4 + push {r4, lr} + ldr r0, _080AD32C + ldr r1, [r0] + ldr r2, _080AD330 + adds r0, r1, r2 + ldrb r4, [r0] + cmp r4, #1 + bne _080AD354 + movs r0, #0xdd + lsls r0, r0, #3 + adds r1, r1, r0 + ldrh r0, [r1] + cmp r0, #0 + bne _080AD350 + bl IsSEPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AD354 + bl Random + ands r4, r0 + cmp r4, #0 + beq _080AD334 + movs r0, #0x57 + bl PlaySE + b _080AD33A + .align 2, 0 +_080AD32C: .4byte 0x08526DE8 +_080AD330: .4byte 0x000006ED +_080AD334: + movs r0, #0x58 + bl PlaySE +_080AD33A: + ldr r0, _080AD348 + ldr r0, [r0] + ldr r1, _080AD34C + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + b _080AD354 + .align 2, 0 +_080AD348: .4byte 0x08526DE8 +_080AD34C: .4byte 0x000006ED +_080AD350: + subs r0, #1 + strh r0, [r1] +_080AD354: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end UpdateThunderSound + + thumb_func_start Fog1_InitVars +Fog1_InitVars: @ 0x080AD35C + push {lr} + ldr r0, _080AD3A8 + ldr r3, [r0] + ldr r0, _080AD3AC + adds r1, r3, r0 + movs r2, #0 + movs r0, #0 + strh r0, [r1] + ldr r1, _080AD3B0 + adds r0, r3, r1 + strb r2, [r0] + subs r1, #0x11 + adds r0, r3, r1 + strb r2, [r0] + ldr r2, _080AD3B4 + adds r1, r3, r2 + movs r0, #0x14 + strb r0, [r1] + ldr r1, _080AD3B8 + adds r0, r3, r1 + ldrb r1, [r0] + cmp r1, #0 + bne _080AD3A4 + adds r2, #0x2e + adds r0, r3, r2 + strh r1, [r0] + adds r2, #2 + adds r0, r3, r2 + strh r1, [r0] + subs r2, #4 + adds r0, r3, r2 + strh r1, [r0] + movs r0, #0 + movs r1, #0x10 + bl Weather_SetBlendCoeffs +_080AD3A4: + pop {r0} + bx r0 + .align 2, 0 +_080AD3A8: .4byte 0x08526DE8 +_080AD3AC: .4byte 0x000006CC +_080AD3B0: .4byte 0x000006D2 +_080AD3B4: .4byte 0x000006C2 +_080AD3B8: .4byte 0x000006FB + thumb_func_end Fog1_InitVars + + thumb_func_start Fog1_InitAll +Fog1_InitAll: @ 0x080AD3BC + push {r4, lr} + bl Fog1_InitVars + ldr r0, _080AD3E4 + ldr r1, [r0] + ldr r2, _080AD3E8 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _080AD3DC + adds r4, r1, r2 +_080AD3D2: + bl Fog1_Main + ldrb r0, [r4] + cmp r0, #0 + beq _080AD3D2 +_080AD3DC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AD3E4: .4byte 0x08526DE8 +_080AD3E8: .4byte 0x000006D2 + thumb_func_end Fog1_InitAll + + thumb_func_start Fog1_Main +Fog1_Main: @ 0x080AD3EC + push {r4, r5, r6, lr} + ldr r0, _080AD438 + ldr r6, [r0] + ldr r0, _080AD43C + ldr r1, _080AD440 + adds r2, r6, r1 + ldrh r0, [r0] + ldrh r1, [r2] + subs r0, r0, r1 + movs r1, #0xff + ands r0, r1 + ldr r3, _080AD444 + adds r1, r6, r3 + strh r0, [r1] + movs r0, #0xde + lsls r0, r0, #3 + adds r1, r6, r0 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #3 + bls _080AD426 + movs r0, #0 + strh r0, [r1] + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] +_080AD426: + ldr r1, _080AD448 + adds r5, r6, r1 + ldrh r4, [r5] + cmp r4, #0 + beq _080AD44C + cmp r4, #1 + beq _080AD48C + b _080AD4A2 + .align 2, 0 +_080AD438: .4byte 0x08526DE8 +_080AD43C: .4byte 0x02021B38 +_080AD440: .4byte 0x000006F2 +_080AD444: .4byte 0x000006EE +_080AD448: .4byte 0x000006CC +_080AD44C: + bl CreateFog1Sprites + movs r3, #0xda + lsls r3, r3, #3 + adds r0, r6, r3 + ldrb r0, [r0] + cmp r0, #6 + bne _080AD468 + movs r0, #0xc + movs r1, #8 + movs r2, #3 + bl Weather_SetTargetBlendCoeffs + b _080AD472 +_080AD468: + movs r0, #4 + movs r1, #0x10 + movs r2, #0 + bl Weather_SetTargetBlendCoeffs +_080AD472: + ldr r0, _080AD484 + ldr r1, [r0] + ldr r0, _080AD488 + adds r1, r1, r0 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _080AD4A2 + .align 2, 0 +_080AD484: .4byte 0x08526DE8 +_080AD488: .4byte 0x000006CC +_080AD48C: + bl Weather_UpdateBlend + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080AD4A2 + ldr r1, _080AD4A8 + adds r0, r6, r1 + strb r4, [r0] + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] +_080AD4A2: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080AD4A8: .4byte 0x000006D2 + thumb_func_end Fog1_Main + + thumb_func_start Fog1_Finish +Fog1_Finish: @ 0x080AD4AC + push {r4, lr} + ldr r0, _080AD4FC + ldr r2, [r0] + ldr r0, _080AD500 + ldr r1, _080AD504 + adds r3, r2, r1 + ldrh r0, [r0] + ldrh r1, [r3] + subs r0, r0, r1 + movs r1, #0xff + ands r0, r1 + ldr r4, _080AD508 + adds r1, r2, r4 + strh r0, [r1] + movs r0, #0xde + lsls r0, r0, #3 + adds r1, r2, r0 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #3 + bls _080AD4E6 + movs r0, #0 + strh r0, [r1] + ldrh r0, [r3] + adds r0, #1 + strh r0, [r3] +_080AD4E6: + ldr r1, _080AD50C + adds r4, r2, r1 + ldrh r0, [r4] + cmp r0, #1 + beq _080AD522 + cmp r0, #1 + bgt _080AD510 + cmp r0, #0 + beq _080AD516 + b _080AD53A + .align 2, 0 +_080AD4FC: .4byte 0x08526DE8 +_080AD500: .4byte 0x02021B38 +_080AD504: .4byte 0x000006F2 +_080AD508: .4byte 0x000006EE +_080AD50C: .4byte 0x000006CE +_080AD510: + cmp r0, #2 + beq _080AD52E + b _080AD53A +_080AD516: + movs r0, #0 + movs r1, #0x10 + movs r2, #3 + bl Weather_SetTargetBlendCoeffs + b _080AD532 +_080AD522: + bl Weather_UpdateBlend + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080AD53E + b _080AD532 +_080AD52E: + bl DestroyFog1Sprites +_080AD532: + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + b _080AD53E +_080AD53A: + movs r0, #0 + b _080AD540 +_080AD53E: + movs r0, #1 +_080AD540: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end Fog1_Finish + + thumb_func_start Fog1SpriteCallback +Fog1SpriteCallback: @ 0x080AD548 + push {r4, lr} + adds r3, r0, #0 + ldr r0, _080AD594 + ldrb r0, [r0] + strh r0, [r3, #0x26] + ldr r0, _080AD598 + ldr r0, [r0] + ldr r1, _080AD59C + adds r2, r0, r1 + ldrh r1, [r2] + adds r1, #0x20 + movs r4, #0x2e + ldrsh r0, [r3, r4] + lsls r0, r0, #6 + adds r1, r1, r0 + strh r1, [r3, #0x20] + lsls r1, r1, #0x10 + ldr r0, _080AD5A0 + cmp r1, r0 + ble _080AD58C + movs r0, #0xf0 + lsls r0, r0, #1 + adds r1, r0, #0 + ldrh r2, [r2] + adds r1, r1, r2 + movs r4, #0x2e + ldrsh r2, [r3, r4] + movs r0, #4 + subs r0, r0, r2 + lsls r0, r0, #6 + subs r1, r1, r0 + ldr r0, _080AD5A4 + ands r1, r0 + strh r1, [r3, #0x20] +_080AD58C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AD594: .4byte 0x02021B3A +_080AD598: .4byte 0x08526DE8 +_080AD59C: .4byte 0x000006EE +_080AD5A0: .4byte 0x010F0000 +_080AD5A4: .4byte 0x000001FF + thumb_func_end Fog1SpriteCallback + + thumb_func_start CreateFog1Sprites +CreateFog1Sprites: @ 0x080AD5A8 + push {r4, r5, lr} + sub sp, #8 + ldr r0, _080AD61C + ldr r0, [r0] + ldr r1, _080AD620 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080AD652 + ldr r0, _080AD624 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [sp] + str r1, [sp, #4] + mov r0, sp + bl LoadSpriteSheet + movs r5, #0 +_080AD5CC: + ldr r0, _080AD628 + movs r1, #0 + movs r2, #0 + movs r3, #0xff + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _080AD630 + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _080AD62C + adds r4, r4, r0 + adds r0, r5, #0 + movs r1, #5 + bl __umodsi3 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + lsrs r0, r0, #0xa + adds r0, #0x20 + strh r0, [r4, #0x20] + adds r0, r5, #0 + movs r1, #5 + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0xa + adds r0, #0x20 + strh r0, [r4, #0x22] + ldr r2, _080AD61C + ldr r0, [r2] + lsls r1, r5, #2 + adds r0, #0xa0 + adds r0, r0, r1 + str r4, [r0] + b _080AD63E + .align 2, 0 +_080AD61C: .4byte 0x08526DE8 +_080AD620: .4byte 0x000006FB +_080AD624: .4byte 0x0852A9CC +_080AD628: .4byte 0x0852A9B4 +_080AD62C: .4byte 0x020205AC +_080AD630: + ldr r2, _080AD65C + ldr r1, [r2] + lsls r0, r5, #2 + adds r1, #0xa0 + adds r1, r1, r0 + movs r0, #0 + str r0, [r1] +_080AD63E: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0x13 + bls _080AD5CC + ldr r0, [r2] + ldr r1, _080AD660 + adds r0, r0, r1 + movs r1, #1 + strb r1, [r0] +_080AD652: + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080AD65C: .4byte 0x08526DE8 +_080AD660: .4byte 0x000006FB + thumb_func_end CreateFog1Sprites + + thumb_func_start DestroyFog1Sprites +DestroyFog1Sprites: @ 0x080AD664 + push {r4, r5, lr} + ldr r0, _080AD6AC + ldr r1, [r0] + ldr r2, _080AD6B0 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080AD6A4 + movs r4, #0 + adds r5, r1, #0 + adds r5, #0xa0 +_080AD67A: + lsls r0, r4, #2 + adds r0, r5, r0 + ldr r0, [r0] + cmp r0, #0 + beq _080AD688 + bl DestroySprite +_080AD688: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x13 + bls _080AD67A + ldr r0, _080AD6B4 + bl FreeSpriteTilesByTag + ldr r0, _080AD6AC + ldr r0, [r0] + ldr r1, _080AD6B0 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] +_080AD6A4: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080AD6AC: .4byte 0x08526DE8 +_080AD6B0: .4byte 0x000006FB +_080AD6B4: .4byte 0x00001201 + thumb_func_end DestroyFog1Sprites + + thumb_func_start Ash_InitVars +Ash_InitVars: @ 0x080AD6B8 + push {lr} + ldr r0, _080AD704 + ldr r1, [r0] + ldr r0, _080AD708 + adds r2, r1, r0 + movs r3, #0 + movs r0, #0 + strh r0, [r2] + ldr r2, _080AD70C + adds r0, r1, r2 + strb r3, [r0] + subs r2, #0x11 + adds r0, r1, r2 + strb r3, [r0] + ldr r3, _080AD710 + adds r0, r1, r3 + movs r2, #0x14 + strb r2, [r0] + adds r3, #0x3c + adds r0, r1, r3 + strh r2, [r0] + movs r0, #0xe0 + lsls r0, r0, #3 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0 + bne _080AD700 + movs r0, #0 + movs r1, #0x10 + bl Weather_SetBlendCoeffs + movs r1, #0xfd + lsls r1, r1, #6 + movs r0, #0x52 + bl SetGpuReg +_080AD700: + pop {r0} + bx r0 + .align 2, 0 +_080AD704: .4byte 0x08526DE8 +_080AD708: .4byte 0x000006CC +_080AD70C: .4byte 0x000006D2 +_080AD710: .4byte 0x000006C2 + thumb_func_end Ash_InitVars + + thumb_func_start Ash_InitAll +Ash_InitAll: @ 0x080AD714 + push {r4, lr} + bl Ash_InitVars + ldr r0, _080AD73C + ldr r1, [r0] + ldr r2, _080AD740 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _080AD734 + adds r4, r1, r2 +_080AD72A: + bl Ash_Main + ldrb r0, [r4] + cmp r0, #0 + beq _080AD72A +_080AD734: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AD73C: .4byte 0x08526DE8 +_080AD740: .4byte 0x000006D2 + thumb_func_end Ash_InitAll + + thumb_func_start Ash_Main +Ash_Main: @ 0x080AD744 + push {r4, r5, lr} + ldr r2, _080AD788 + ldr r1, [r2] + ldr r0, _080AD78C + ldrh r0, [r0] + ldr r3, _080AD790 + ands r3, r0 + ldr r0, _080AD794 + adds r1, r1, r0 + strh r3, [r1] + cmp r3, #0xef + bls _080AD770 + adds r4, r1, #0 + adds r1, r3, #0 +_080AD760: + adds r3, r1, #0 + subs r3, #0xf0 + adds r1, r3, #0 + lsls r0, r3, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xef + bhi _080AD760 + strh r3, [r4] +_080AD770: + ldr r5, [r2] + ldr r1, _080AD798 + adds r4, r5, r1 + ldrh r0, [r4] + cmp r0, #1 + beq _080AD7A8 + cmp r0, #1 + bgt _080AD79C + cmp r0, #0 + beq _080AD7A2 + b _080AD7E4 + .align 2, 0 +_080AD788: .4byte 0x08526DE8 +_080AD78C: .4byte 0x02021B38 +_080AD790: .4byte 0x000001FF +_080AD794: .4byte 0x000006FC +_080AD798: .4byte 0x000006CC +_080AD79C: + cmp r0, #2 + beq _080AD7C4 + b _080AD7E4 +_080AD7A2: + bl LoadAshSpriteSheet + b _080AD7D6 +_080AD7A8: + movs r1, #0xe0 + lsls r1, r1, #3 + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080AD7B8 + bl CreateAshSprites +_080AD7B8: + movs r0, #0x10 + movs r1, #0 + movs r2, #1 + bl Weather_SetTargetBlendCoeffs + b _080AD7D6 +_080AD7C4: + bl Weather_UpdateBlend + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080AD7E8 + ldr r0, _080AD7E0 + adds r1, r5, r0 + movs r0, #1 + strb r0, [r1] +_080AD7D6: + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + b _080AD7E8 + .align 2, 0 +_080AD7E0: .4byte 0x000006D2 +_080AD7E4: + bl Weather_UpdateBlend +_080AD7E8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Ash_Main + + thumb_func_start Ash_Finish +Ash_Finish: @ 0x080AD7F0 + push {r4, lr} + ldr r0, _080AD80C + ldr r0, [r0] + ldr r1, _080AD810 + adds r4, r0, r1 + ldrh r0, [r4] + cmp r0, #1 + beq _080AD826 + cmp r0, #1 + bgt _080AD814 + cmp r0, #0 + beq _080AD81A + b _080AD84A + .align 2, 0 +_080AD80C: .4byte 0x08526DE8 +_080AD810: .4byte 0x000006CE +_080AD814: + cmp r0, #2 + beq _080AD83C + b _080AD84A +_080AD81A: + movs r0, #0 + movs r1, #0x10 + movs r2, #1 + bl Weather_SetTargetBlendCoeffs + b _080AD834 +_080AD826: + bl Weather_UpdateBlend + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080AD84E + bl DestroyAshSprites +_080AD834: + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + b _080AD84E +_080AD83C: + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] +_080AD84A: + movs r0, #0 + b _080AD850 +_080AD84E: + movs r0, #1 +_080AD850: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end Ash_Finish + + thumb_func_start LoadAshSpriteSheet +LoadAshSpriteSheet: @ 0x080AD858 + push {lr} + ldr r0, _080AD864 + bl LoadSpriteSheet + pop {r0} + bx r0 + .align 2, 0 +_080AD864: .4byte 0x0852A9D4 + thumb_func_end LoadAshSpriteSheet + + thumb_func_start CreateAshSprites +CreateAshSprites: @ 0x080AD868 + push {r4, r5, lr} + ldr r0, _080AD8D4 + ldr r0, [r0] + movs r1, #0xe0 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080AD904 + movs r5, #0 +_080AD87C: + ldr r0, _080AD8D8 + movs r1, #0 + movs r2, #0 + movs r3, #0x4e + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _080AD8E0 + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _080AD8DC + adds r4, r4, r0 + movs r0, #0 + strh r0, [r4, #0x30] + adds r0, r5, #0 + movs r1, #5 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x32] + adds r0, r5, #0 + movs r1, #5 + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x34] + movs r1, #0x34 + ldrsh r0, [r4, r1] + lsls r0, r0, #6 + adds r0, #0x20 + strh r0, [r4, #0x2e] + ldr r2, _080AD8D4 + ldr r0, [r2] + lsls r1, r5, #2 + adds r0, #0xf0 + adds r0, r0, r1 + str r4, [r0] + b _080AD8EE + .align 2, 0 +_080AD8D4: .4byte 0x08526DE8 +_080AD8D8: .4byte 0x0852A9F4 +_080AD8DC: .4byte 0x020205AC +_080AD8E0: + ldr r2, _080AD90C + ldr r1, [r2] + lsls r0, r5, #2 + adds r1, #0xf0 + adds r1, r1, r0 + movs r0, #0 + str r0, [r1] +_080AD8EE: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x13 + bls _080AD87C + ldr r0, [r2] + movs r1, #0xe0 + lsls r1, r1, #3 + adds r0, r0, r1 + movs r1, #1 + strb r1, [r0] +_080AD904: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080AD90C: .4byte 0x08526DE8 + thumb_func_end CreateAshSprites + + thumb_func_start DestroyAshSprites +DestroyAshSprites: @ 0x080AD910 + push {r4, r5, lr} + ldr r0, _080AD95C + ldr r1, [r0] + movs r2, #0xe0 + lsls r2, r2, #3 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080AD954 + movs r4, #0 + adds r5, r1, #0 + adds r5, #0xf0 +_080AD928: + lsls r0, r4, #2 + adds r0, r5, r0 + ldr r0, [r0] + cmp r0, #0 + beq _080AD936 + bl DestroySprite +_080AD936: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x13 + bls _080AD928 + ldr r0, _080AD960 + bl FreeSpriteTilesByTag + ldr r0, _080AD95C + ldr r0, [r0] + movs r1, #0xe0 + lsls r1, r1, #3 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] +_080AD954: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080AD95C: .4byte 0x08526DE8 +_080AD960: .4byte 0x00001202 + thumb_func_end DestroyAshSprites + + thumb_func_start UpdateAshSprite +UpdateAshSprite: @ 0x080AD964 + push {r4, lr} + adds r3, r0, #0 + ldrh r0, [r3, #0x30] + adds r0, #1 + strh r0, [r3, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #5 + ble _080AD980 + movs r0, #0 + strh r0, [r3, #0x30] + ldrh r0, [r3, #0x2e] + adds r0, #1 + strh r0, [r3, #0x2e] +_080AD980: + ldr r1, _080AD9CC + ldrh r0, [r3, #0x2e] + ldrh r1, [r1] + adds r0, r0, r1 + strh r0, [r3, #0x22] + ldr r0, _080AD9D0 + ldr r0, [r0] + ldr r1, _080AD9D4 + adds r2, r0, r1 + ldrh r1, [r2] + adds r1, #0x20 + movs r4, #0x32 + ldrsh r0, [r3, r4] + lsls r0, r0, #6 + adds r1, r1, r0 + strh r1, [r3, #0x20] + lsls r1, r1, #0x10 + ldr r0, _080AD9D8 + cmp r1, r0 + ble _080AD9C4 + movs r0, #0xf0 + lsls r0, r0, #1 + adds r1, r0, #0 + ldrh r2, [r2] + adds r1, r1, r2 + movs r4, #0x32 + ldrsh r2, [r3, r4] + movs r0, #4 + subs r0, r0, r2 + lsls r0, r0, #6 + subs r1, r1, r0 + ldr r0, _080AD9DC + ands r1, r0 + strh r1, [r3, #0x20] +_080AD9C4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AD9CC: .4byte 0x02021B3A +_080AD9D0: .4byte 0x08526DE8 +_080AD9D4: .4byte 0x000006FC +_080AD9D8: .4byte 0x010F0000 +_080AD9DC: .4byte 0x000001FF + thumb_func_end UpdateAshSprite + + thumb_func_start Fog2_InitVars +Fog2_InitVars: @ 0x080AD9E0 + push {r4, lr} + ldr r0, _080ADA50 + ldr r3, [r0] + ldr r1, _080ADA54 + adds r0, r3, r1 + movs r1, #0 + movs r2, #0 + strh r2, [r0] + ldr r4, _080ADA58 + adds r0, r3, r4 + strb r1, [r0] + subs r4, #0x11 + adds r0, r3, r4 + strb r1, [r0] + ldr r0, _080ADA5C + adds r1, r3, r0 + movs r0, #0x14 + strb r0, [r1] + movs r1, #0xde + lsls r1, r1, #3 + adds r0, r3, r1 + strh r2, [r0] + adds r4, #0x31 + adds r1, r3, r4 + movs r0, #1 + strh r0, [r1] + ldr r1, _080ADA60 + adds r0, r3, r1 + ldrb r2, [r0] + cmp r2, #0 + bne _080ADA4A + adds r4, #0x2a + adds r0, r3, r4 + strh r2, [r0] + subs r1, #6 + adds r0, r3, r1 + strh r2, [r0] + adds r4, #4 + adds r0, r3, r4 + strh r2, [r0] + adds r1, #4 + adds r0, r3, r1 + strh r2, [r0] + subs r4, #8 + adds r0, r3, r4 + strh r2, [r0] + subs r1, #8 + adds r0, r3, r1 + strh r2, [r0] + movs r0, #0 + movs r1, #0x10 + bl Weather_SetBlendCoeffs +_080ADA4A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADA50: .4byte 0x08526DE8 +_080ADA54: .4byte 0x000006CC +_080ADA58: .4byte 0x000006D2 +_080ADA5C: .4byte 0x000006C2 +_080ADA60: .4byte 0x00000724 + thumb_func_end Fog2_InitVars + + thumb_func_start Fog2_InitAll +Fog2_InitAll: @ 0x080ADA64 + push {r4, lr} + bl Fog2_InitVars + ldr r0, _080ADA8C + ldr r1, [r0] + ldr r2, _080ADA90 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _080ADA84 + adds r4, r1, r2 +_080ADA7A: + bl Fog2_Main + ldrb r0, [r4] + cmp r0, #0 + beq _080ADA7A +_080ADA84: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADA8C: .4byte 0x08526DE8 +_080ADA90: .4byte 0x000006D2 + thumb_func_end Fog2_InitAll + + thumb_func_start Fog2_Main +Fog2_Main: @ 0x080ADA94 + push {r4, r5, lr} + bl UpdateFog2Movement + ldr r0, _080ADAB4 + ldr r5, [r0] + ldr r0, _080ADAB8 + adds r4, r5, r0 + ldrh r0, [r4] + cmp r0, #1 + beq _080ADAC8 + cmp r0, #1 + bgt _080ADABC + cmp r0, #0 + beq _080ADAC2 + b _080ADAEC + .align 2, 0 +_080ADAB4: .4byte 0x08526DE8 +_080ADAB8: .4byte 0x000006CC +_080ADABC: + cmp r0, #2 + beq _080ADAD4 + b _080ADAEC +_080ADAC2: + bl CreateFog2Sprites + b _080ADAE6 +_080ADAC8: + movs r0, #0xc + movs r1, #8 + movs r2, #8 + bl Weather_SetTargetBlendCoeffs + b _080ADAE6 +_080ADAD4: + bl Weather_UpdateBlend + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080ADAEC + ldr r0, _080ADAF4 + adds r1, r5, r0 + movs r0, #1 + strb r0, [r1] +_080ADAE6: + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] +_080ADAEC: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080ADAF4: .4byte 0x000006D2 + thumb_func_end Fog2_Main + + thumb_func_start Fog2_Finish +Fog2_Finish: @ 0x080ADAF8 + push {r4, lr} + bl UpdateFog2Movement + ldr r0, _080ADB18 + ldr r0, [r0] + ldr r1, _080ADB1C + adds r4, r0, r1 + ldrh r0, [r4] + cmp r0, #1 + beq _080ADB32 + cmp r0, #1 + bgt _080ADB20 + cmp r0, #0 + beq _080ADB26 + b _080ADB4A + .align 2, 0 +_080ADB18: .4byte 0x08526DE8 +_080ADB1C: .4byte 0x000006CE +_080ADB20: + cmp r0, #2 + beq _080ADB3E + b _080ADB4A +_080ADB26: + movs r0, #0 + movs r1, #0x10 + movs r2, #1 + bl Weather_SetTargetBlendCoeffs + b _080ADB42 +_080ADB32: + bl Weather_UpdateBlend + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080ADB4E + b _080ADB42 +_080ADB3E: + bl DestroyFog2Sprites +_080ADB42: + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + b _080ADB4E +_080ADB4A: + movs r0, #0 + b _080ADB50 +_080ADB4E: + movs r0, #1 +_080ADB50: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end Fog2_Finish + + thumb_func_start UpdateFog2Movement +UpdateFog2Movement: @ 0x080ADB58 + push {r4, r5, lr} + ldr r0, _080ADBD0 + ldr r3, [r0] + ldr r0, _080ADBD4 + adds r2, r3, r0 + ldrh r0, [r2] + adds r0, #1 + movs r5, #0 + strh r0, [r2] + ldr r1, _080ADBD8 + adds r4, r1, #0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #2 + bls _080ADB84 + movs r0, #0xe4 + lsls r0, r0, #3 + adds r1, r3, r0 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + strh r5, [r2] +_080ADB84: + ldr r1, _080ADBDC + adds r2, r3, r1 + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + ands r0, r4 + cmp r0, #4 + bls _080ADBA0 + ldr r0, _080ADBE0 + adds r1, r3, r0 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + strh r5, [r2] +_080ADBA0: + ldr r0, _080ADBE4 + movs r2, #0xe4 + lsls r2, r2, #3 + adds r1, r3, r2 + ldrh r0, [r0] + ldrh r1, [r1] + subs r0, r0, r1 + movs r1, #0xff + ands r0, r1 + subs r2, #8 + adds r1, r3, r2 + strh r0, [r1] + ldr r1, _080ADBE8 + adds r2, #0xa + adds r0, r3, r2 + ldrh r0, [r0] + ldrh r1, [r1] + adds r0, r0, r1 + subs r2, #8 + adds r1, r3, r2 + strh r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080ADBD0: .4byte 0x08526DE8 +_080ADBD4: .4byte 0x0000071C +_080ADBD8: .4byte 0x0000FFFF +_080ADBDC: .4byte 0x0000071E +_080ADBE0: .4byte 0x00000722 +_080ADBE4: .4byte 0x02021B38 +_080ADBE8: .4byte 0x02021B3A + thumb_func_end UpdateFog2Movement + + thumb_func_start CreateFog2Sprites +CreateFog2Sprites: @ 0x080ADBEC + push {r4, r5, r6, lr} + sub sp, #8 + ldr r0, _080ADC58 + ldr r0, [r0] + ldr r1, _080ADC5C + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080ADC92 + ldr r0, _080ADC60 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [sp] + str r1, [sp, #4] + mov r0, sp + bl LoadSpriteSheet + movs r6, #0 +_080ADC10: + adds r0, r6, #0 + movs r1, #5 + bl __udivsi3 + adds r5, r0, #0 + lsls r2, r5, #0x16 + asrs r2, r2, #0x10 + ldr r0, _080ADC64 + movs r1, #0 + movs r3, #0xff + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _080ADC6C + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _080ADC68 + adds r4, r4, r0 + adds r0, r6, #0 + movs r1, #5 + bl __umodsi3 + strh r0, [r4, #0x2e] + strh r5, [r4, #0x30] + ldr r2, _080ADC58 + ldr r0, [r2] + lsls r1, r6, #2 + movs r3, #0xa0 + lsls r3, r3, #1 + adds r0, r0, r3 + adds r0, r0, r1 + str r4, [r0] + b _080ADC7E + .align 2, 0 +_080ADC58: .4byte 0x08526DE8 +_080ADC5C: .4byte 0x00000724 +_080ADC60: .4byte 0x0852AA0C +_080ADC64: .4byte 0x0852AA28 +_080ADC68: .4byte 0x020205AC +_080ADC6C: + ldr r2, _080ADC9C + ldr r1, [r2] + lsls r0, r6, #2 + movs r3, #0xa0 + lsls r3, r3, #1 + adds r1, r1, r3 + adds r1, r1, r0 + movs r0, #0 + str r0, [r1] +_080ADC7E: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #0x13 + bls _080ADC10 + ldr r0, [r2] + ldr r1, _080ADCA0 + adds r0, r0, r1 + movs r1, #1 + strb r1, [r0] +_080ADC92: + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080ADC9C: .4byte 0x08526DE8 +_080ADCA0: .4byte 0x00000724 + thumb_func_end CreateFog2Sprites + + thumb_func_start DestroyFog2Sprites +DestroyFog2Sprites: @ 0x080ADCA4 + push {r4, r5, lr} + ldr r0, _080ADCEC + ldr r1, [r0] + ldr r2, _080ADCF0 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080ADCE6 + movs r4, #0 + movs r0, #0xa0 + lsls r0, r0, #1 + adds r5, r1, r0 +_080ADCBC: + lsls r0, r4, #2 + adds r0, r5, r0 + ldr r0, [r0] + cmp r0, #0 + beq _080ADCCA + bl DestroySprite +_080ADCCA: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x13 + bls _080ADCBC + ldr r0, _080ADCF4 + bl FreeSpriteTilesByTag + ldr r0, _080ADCEC + ldr r0, [r0] + ldr r1, _080ADCF0 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] +_080ADCE6: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080ADCEC: .4byte 0x08526DE8 +_080ADCF0: .4byte 0x00000724 +_080ADCF4: .4byte 0x00001203 + thumb_func_end DestroyFog2Sprites + + thumb_func_start UpdateFog2Sprite +UpdateFog2Sprite: @ 0x080ADCF8 + push {r4, lr} + adds r3, r0, #0 + ldr r0, _080ADD48 + ldr r1, [r0] + ldr r2, _080ADD4C + adds r0, r1, r2 + ldrh r0, [r0] + strh r0, [r3, #0x26] + movs r4, #0xe3 + lsls r4, r4, #3 + adds r2, r1, r4 + ldrh r1, [r2] + adds r1, #0x20 + movs r4, #0x2e + ldrsh r0, [r3, r4] + lsls r0, r0, #6 + adds r1, r1, r0 + strh r1, [r3, #0x20] + lsls r1, r1, #0x10 + ldr r0, _080ADD50 + cmp r1, r0 + ble _080ADD40 + movs r0, #0xf0 + lsls r0, r0, #1 + adds r1, r0, #0 + ldrh r2, [r2] + adds r1, r1, r2 + movs r4, #0x2e + ldrsh r2, [r3, r4] + movs r0, #4 + subs r0, r0, r2 + lsls r0, r0, #6 + subs r1, r1, r0 + ldr r0, _080ADD54 + ands r1, r0 + strh r1, [r3, #0x20] +_080ADD40: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADD48: .4byte 0x08526DE8 +_080ADD4C: .4byte 0x0000071A +_080ADD50: .4byte 0x010F0000 +_080ADD54: .4byte 0x000001FF + thumb_func_end UpdateFog2Sprite + + thumb_func_start Sandstorm_InitVars +Sandstorm_InitVars: @ 0x080ADD58 + push {r4, lr} + ldr r0, _080ADDBC + ldr r3, [r0] + ldr r0, _080ADDC0 + adds r1, r3, r0 + movs r2, #0 + movs r0, #0 + strh r0, [r1] + ldr r1, _080ADDC4 + adds r0, r3, r1 + strb r2, [r0] + ldr r4, _080ADDC8 + adds r0, r3, r4 + strb r2, [r0] + ldr r0, _080ADDCC + adds r1, r3, r0 + movs r0, #0x14 + strb r0, [r1] + ldr r1, _080ADDD0 + adds r0, r3, r1 + ldrb r2, [r0] + cmp r2, #0 + bne _080ADDB4 + adds r4, #0x43 + adds r1, r3, r4 + adds r4, #4 + adds r0, r3, r4 + str r2, [r0] + str r2, [r1] + ldr r0, _080ADDD4 + adds r1, r3, r0 + movs r0, #8 + strh r0, [r1] + adds r4, #0xc + adds r0, r3, r4 + strh r2, [r0] + ldrh r2, [r1] + cmp r2, #0x5f + bls _080ADDAC + movs r0, #0x80 + subs r0, r0, r2 + strh r0, [r1] +_080ADDAC: + movs r0, #0 + movs r1, #0x10 + bl Weather_SetBlendCoeffs +_080ADDB4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADDBC: .4byte 0x08526DE8 +_080ADDC0: .4byte 0x000006CC +_080ADDC4: .4byte 0x000006D2 +_080ADDC8: .4byte 0x000006C1 +_080ADDCC: .4byte 0x000006C2 +_080ADDD0: .4byte 0x00000716 +_080ADDD4: .4byte 0x00000712 + thumb_func_end Sandstorm_InitVars + + thumb_func_start Sandstorm_InitAll +Sandstorm_InitAll: @ 0x080ADDD8 + push {r4, lr} + bl Sandstorm_InitVars + ldr r0, _080ADE00 + ldr r1, [r0] + ldr r2, _080ADE04 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _080ADDF8 + adds r4, r1, r2 +_080ADDEE: + bl Sandstorm_Main + ldrb r0, [r4] + cmp r0, #0 + beq _080ADDEE +_080ADDF8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADE00: .4byte 0x08526DE8 +_080ADE04: .4byte 0x000006D2 + thumb_func_end Sandstorm_InitAll + + thumb_func_start Sandstorm_Main +Sandstorm_Main: @ 0x080ADE08 + push {r4, r5, lr} + bl UpdateSandstormMovement + bl UpdateSandstormWaveIndex + ldr r0, _080ADE38 + ldr r5, [r0] + ldr r0, _080ADE3C + adds r1, r5, r0 + ldrh r0, [r1] + cmp r0, #0x5f + bls _080ADE24 + movs r0, #0x20 + strh r0, [r1] +_080ADE24: + ldr r0, _080ADE40 + adds r4, r5, r0 + ldrh r0, [r4] + cmp r0, #1 + beq _080ADE54 + cmp r0, #1 + bgt _080ADE44 + cmp r0, #0 + beq _080ADE4A + b _080ADE78 + .align 2, 0 +_080ADE38: .4byte 0x08526DE8 +_080ADE3C: .4byte 0x00000712 +_080ADE40: .4byte 0x000006CC +_080ADE44: + cmp r0, #2 + beq _080ADE60 + b _080ADE78 +_080ADE4A: + bl CreateSandstormSprites + bl CreateSwirlSandstormSprites + b _080ADE72 +_080ADE54: + movs r0, #0x10 + movs r1, #0 + movs r2, #0 + bl Weather_SetTargetBlendCoeffs + b _080ADE72 +_080ADE60: + bl Weather_UpdateBlend + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080ADE78 + ldr r0, _080ADE80 + adds r1, r5, r0 + movs r0, #1 + strb r0, [r1] +_080ADE72: + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] +_080ADE78: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080ADE80: .4byte 0x000006D2 + thumb_func_end Sandstorm_Main + + thumb_func_start Sandstorm_Finish +Sandstorm_Finish: @ 0x080ADE84 + push {r4, lr} + bl UpdateSandstormMovement + bl UpdateSandstormWaveIndex + ldr r0, _080ADEA8 + ldr r0, [r0] + ldr r1, _080ADEAC + adds r4, r0, r1 + ldrh r0, [r4] + cmp r0, #1 + beq _080ADEC2 + cmp r0, #1 + bgt _080ADEB0 + cmp r0, #0 + beq _080ADEB6 + b _080ADEDA + .align 2, 0 +_080ADEA8: .4byte 0x08526DE8 +_080ADEAC: .4byte 0x000006CE +_080ADEB0: + cmp r0, #2 + beq _080ADECE + b _080ADEDA +_080ADEB6: + movs r0, #0 + movs r1, #0x10 + movs r2, #0 + bl Weather_SetTargetBlendCoeffs + b _080ADED2 +_080ADEC2: + bl Weather_UpdateBlend + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080ADEDE + b _080ADED2 +_080ADECE: + bl DestroySandstormSprites +_080ADED2: + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + b _080ADEDE +_080ADEDA: + movs r0, #0 + b _080ADEE0 +_080ADEDE: + movs r0, #1 +_080ADEE0: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end Sandstorm_Finish + + thumb_func_start UpdateSandstormWaveIndex +UpdateSandstormWaveIndex: @ 0x080ADEE8 + push {lr} + ldr r0, _080ADF14 + ldr r2, [r0] + ldr r0, _080ADF18 + adds r3, r2, r0 + ldrh r0, [r3] + adds r1, r0, #1 + strh r1, [r3] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #4 + bls _080ADF0E + ldr r1, _080ADF1C + adds r0, r2, r1 + ldrh r1, [r0] + adds r1, #1 + movs r2, #0 + strh r1, [r0] + strh r2, [r3] +_080ADF0E: + pop {r0} + bx r0 + .align 2, 0 +_080ADF14: .4byte 0x08526DE8 +_080ADF18: .4byte 0x00000714 +_080ADF1C: .4byte 0x00000712 + thumb_func_end UpdateSandstormWaveIndex + + thumb_func_start UpdateSandstormMovement +UpdateSandstormMovement: @ 0x080ADF20 + push {r4, r5, r6, lr} + ldr r0, _080ADF84 + ldr r2, [r0] + ldr r0, _080ADF88 + adds r4, r2, r0 + ldr r6, _080ADF8C + ldr r1, _080ADF90 + adds r5, r2, r1 + ldrh r0, [r5] + lsls r0, r0, #1 + adds r0, r0, r6 + movs r3, #0 + ldrsh r1, [r0, r3] + lsls r1, r1, #2 + ldr r0, [r4] + subs r0, r0, r1 + str r0, [r4] + movs r0, #0xe1 + lsls r0, r0, #3 + adds r3, r2, r0 + ldrh r0, [r5] + lsls r0, r0, #1 + adds r0, r0, r6 + movs r5, #0 + ldrsh r1, [r0, r5] + ldr r0, [r3] + subs r0, r0, r1 + str r0, [r3] + ldr r1, _080ADF94 + ldr r0, [r4] + lsrs r0, r0, #8 + ldrh r1, [r1] + adds r0, r0, r1 + movs r1, #0xff + ands r0, r1 + ldr r4, _080ADF98 + adds r1, r2, r4 + strh r0, [r1] + ldr r1, _080ADF9C + ldr r0, [r3] + lsrs r0, r0, #8 + ldrh r1, [r1] + adds r0, r0, r1 + movs r5, #0xe2 + lsls r5, r5, #3 + adds r2, r2, r5 + strh r0, [r2] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080ADF84: .4byte 0x08526DE8 +_080ADF88: .4byte 0x00000704 +_080ADF8C: .4byte 0x082FA8CC +_080ADF90: .4byte 0x00000712 +_080ADF94: .4byte 0x02021B38 +_080ADF98: .4byte 0x0000070E +_080ADF9C: .4byte 0x02021B3A + thumb_func_end UpdateSandstormMovement + + thumb_func_start DestroySandstormSprites +DestroySandstormSprites: @ 0x080ADFA0 + push {r4, r5, lr} + ldr r0, _080AE024 + ldr r1, [r0] + ldr r2, _080AE028 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080ADFE2 + movs r4, #0 + movs r0, #0xc8 + lsls r0, r0, #1 + adds r5, r1, r0 +_080ADFB8: + lsls r0, r4, #2 + adds r0, r5, r0 + ldr r0, [r0] + cmp r0, #0 + beq _080ADFC6 + bl DestroySprite +_080ADFC6: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x13 + bls _080ADFB8 + ldr r0, _080AE024 + ldr r0, [r0] + ldr r1, _080AE028 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + ldr r0, _080AE02C + bl FreeSpriteTilesByTag +_080ADFE2: + ldr r0, _080AE024 + ldr r1, [r0] + ldr r2, _080AE030 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080AE01C + movs r4, #0 + movs r0, #0xf0 + lsls r0, r0, #1 + adds r5, r1, r0 +_080ADFF8: + lsls r0, r4, #2 + adds r0, r5, r0 + ldr r0, [r0] + cmp r0, #0 + beq _080AE006 + bl DestroySprite +_080AE006: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #4 + bls _080ADFF8 + ldr r0, _080AE024 + ldr r0, [r0] + ldr r1, _080AE030 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] +_080AE01C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080AE024: .4byte 0x08526DE8 +_080AE028: .4byte 0x00000716 +_080AE02C: .4byte 0x00001204 +_080AE030: .4byte 0x00000717 + thumb_func_end DestroySandstormSprites + + thumb_func_start CreateSandstormSprites +CreateSandstormSprites: @ 0x080AE034 + push {r4, r5, r6, r7, lr} + sub sp, #4 + ldr r0, _080AE0A4 + ldr r0, [r0] + ldr r1, _080AE0A8 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080AE0E2 + ldr r0, _080AE0AC + bl LoadSpriteSheet + ldr r0, _080AE0B0 + bl LoadCustomWeatherSpritePalette + movs r7, #0 +_080AE054: + adds r0, r7, #0 + movs r1, #5 + bl __udivsi3 + adds r6, r0, #0 + lsls r2, r6, #0x16 + asrs r2, r2, #0x10 + ldr r0, _080AE0B4 + movs r1, #0 + movs r3, #1 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x40 + beq _080AE0BC + ldr r2, _080AE0A4 + ldr r5, [r2] + lsls r0, r7, #2 + movs r3, #0xc8 + lsls r3, r3, #1 + adds r5, r5, r3 + adds r5, r5, r0 + lsls r4, r1, #4 + adds r4, r4, r1 + lsls r4, r4, #2 + ldr r0, _080AE0B8 + adds r4, r4, r0 + str r4, [r5] + adds r0, r7, #0 + movs r1, #5 + str r2, [sp] + bl __umodsi3 + strh r0, [r4, #0x2e] + ldr r0, [r5] + strh r6, [r0, #0x30] + ldr r2, [sp] + b _080AE0CE + .align 2, 0 +_080AE0A4: .4byte 0x08526DE8 +_080AE0A8: .4byte 0x00000716 +_080AE0AC: .4byte 0x0852AA78 +_080AE0B0: .4byte 0x08526F4C +_080AE0B4: .4byte 0x0852AA60 +_080AE0B8: .4byte 0x020205AC +_080AE0BC: + ldr r2, _080AE0EC + ldr r1, [r2] + lsls r0, r7, #2 + movs r3, #0xc8 + lsls r3, r3, #1 + adds r1, r1, r3 + adds r1, r1, r0 + movs r0, #0 + str r0, [r1] +_080AE0CE: + adds r0, r7, #1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + cmp r7, #0x13 + bls _080AE054 + ldr r0, [r2] + ldr r1, _080AE0F0 + adds r0, r0, r1 + movs r1, #1 + strb r1, [r0] +_080AE0E2: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080AE0EC: .4byte 0x08526DE8 +_080AE0F0: .4byte 0x00000716 + thumb_func_end CreateSandstormSprites + + thumb_func_start CreateSwirlSandstormSprites +CreateSwirlSandstormSprites: @ 0x080AE0F4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r4, _080AE19C + ldr r0, [r4] + ldr r1, _080AE1A0 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080AE1E0 + movs r7, #0 + mov sb, r4 + movs r2, #0 + mov sl, r2 +_080AE114: + lsls r0, r7, #1 + mov r8, r0 + adds r6, r0, r7 + lsls r5, r6, #4 + adds r1, r5, #0 + adds r1, #0x18 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldr r0, _080AE1A4 + movs r2, #0xd0 + movs r3, #1 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x40 + beq _080AE1B8 + mov r2, sb + ldr r4, [r2] + lsls r0, r7, #2 + movs r2, #0xf0 + lsls r2, r2, #1 + adds r4, r4, r2 + adds r4, r4, r0 + lsls r2, r1, #4 + adds r2, r2, r1 + lsls r2, r2, #2 + ldr r0, _080AE1A8 + adds r2, r2, r0 + str r2, [r4] + ldrb r1, [r2, #3] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #3] + ldr r1, [r4] + adds r0, r6, r5 + strh r0, [r1, #0x30] + ldr r1, [r4] + movs r0, #8 + strh r0, [r1, #0x2e] + ldr r0, [r4] + mov r1, sl + strh r1, [r0, #0x32] + ldr r1, [r4] + ldr r0, _080AE1AC + strh r0, [r1, #0x36] + ldr r1, [r4] + ldr r0, _080AE1B0 + add r0, r8 + ldrh r0, [r0] + strh r0, [r1, #0x34] + ldr r0, [r4] + movs r1, #1 + bl StartSpriteAnim + ldr r0, [r4] + movs r1, #0 + movs r2, #2 + movs r3, #0 + bl CalcCenterToCornerVec + ldr r1, [r4] + ldr r0, _080AE1B4 + str r0, [r1, #0x1c] + b _080AE1CA + .align 2, 0 +_080AE19C: .4byte 0x08526DE8 +_080AE1A0: .4byte 0x00000717 +_080AE1A4: .4byte 0x0852AA60 +_080AE1A8: .4byte 0x020205AC +_080AE1AC: .4byte 0x00006730 +_080AE1B0: .4byte 0x0852AA80 +_080AE1B4: .4byte 0x080AE255 +_080AE1B8: + mov r2, sb + ldr r0, [r2] + lsls r1, r7, #2 + movs r2, #0xf0 + lsls r2, r2, #1 + adds r0, r0, r2 + adds r0, r0, r1 + mov r1, sl + str r1, [r0] +_080AE1CA: + mov r2, sb + ldr r0, [r2] + ldr r1, _080AE1F0 + adds r0, r0, r1 + movs r1, #1 + strb r1, [r0] + adds r0, r7, #1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + cmp r7, #4 + bls _080AE114 +_080AE1E0: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080AE1F0: .4byte 0x00000717 + thumb_func_end CreateSwirlSandstormSprites + + thumb_func_start UpdateSandstormSprite +UpdateSandstormSprite: @ 0x080AE1F4 + push {r4, lr} + adds r3, r0, #0 + ldr r0, _080AE244 + ldr r1, [r0] + movs r2, #0xe2 + lsls r2, r2, #3 + adds r0, r1, r2 + ldrh r0, [r0] + strh r0, [r3, #0x26] + ldr r4, _080AE248 + adds r2, r1, r4 + ldrh r1, [r2] + adds r1, #0x20 + movs r4, #0x2e + ldrsh r0, [r3, r4] + lsls r0, r0, #6 + adds r1, r1, r0 + strh r1, [r3, #0x20] + lsls r1, r1, #0x10 + ldr r0, _080AE24C + cmp r1, r0 + ble _080AE23C + movs r0, #0xf0 + lsls r0, r0, #1 + adds r1, r0, #0 + ldrh r2, [r2] + adds r1, r1, r2 + movs r4, #0x2e + ldrsh r2, [r3, r4] + movs r0, #4 + subs r0, r0, r2 + lsls r0, r0, #6 + subs r1, r1, r0 + ldr r0, _080AE250 + ands r1, r0 + strh r1, [r3, #0x20] +_080AE23C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AE244: .4byte 0x08526DE8 +_080AE248: .4byte 0x0000070E +_080AE24C: .4byte 0x010F0000 +_080AE250: .4byte 0x000001FF + thumb_func_end UpdateSandstormSprite + + thumb_func_start WaitSandSwirlSpriteEntrance +WaitSandSwirlSpriteEntrance: @ 0x080AE254 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x34] + subs r0, #1 + strh r0, [r2, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _080AE26E + ldr r0, _080AE274 + str r0, [r2, #0x1c] +_080AE26E: + pop {r0} + bx r0 + .align 2, 0 +_080AE274: .4byte 0x080AE279 + thumb_func_end WaitSandSwirlSpriteEntrance + + thumb_func_start UpdateSandstormSwirlSprite +UpdateSandstormSwirlSprite: @ 0x080AE278 + push {r4, r5, lr} + adds r5, r0, #0 + ldrh r0, [r5, #0x22] + subs r0, #1 + strh r0, [r5, #0x22] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x30 + rsbs r1, r1, #0 + cmp r0, r1 + bge _080AE296 + movs r0, #0xd0 + strh r0, [r5, #0x22] + movs r0, #4 + strh r0, [r5, #0x2e] +_080AE296: + movs r0, #0x2e + ldrsh r4, [r5, r0] + ldr r3, _080AE2E8 + movs r2, #0x30 + ldrsh r1, [r5, r2] + lsls r0, r1, #1 + adds r0, r0, r3 + movs r2, #0 + ldrsh r0, [r0, r2] + adds r2, r4, #0 + muls r2, r0, r2 + adds r1, #0x40 + lsls r1, r1, #1 + adds r1, r1, r3 + movs r3, #0 + ldrsh r0, [r1, r3] + muls r0, r4, r0 + lsrs r2, r2, #8 + strh r2, [r5, #0x24] + lsrs r0, r0, #8 + strh r0, [r5, #0x26] + ldrh r0, [r5, #0x30] + adds r0, #0xa + movs r1, #0xff + ands r0, r1 + strh r0, [r5, #0x30] + ldrh r0, [r5, #0x32] + adds r0, #1 + strh r0, [r5, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #8 + ble _080AE2E2 + movs r0, #0 + strh r0, [r5, #0x32] + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] +_080AE2E2: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080AE2E8: .4byte 0x082FA8CC + thumb_func_end UpdateSandstormSwirlSprite + + thumb_func_start Shade_InitVars +Shade_InitVars: @ 0x080AE2EC + ldr r0, _080AE30C + ldr r1, [r0] + ldr r0, _080AE310 + adds r2, r1, r0 + movs r0, #0 + strh r0, [r2] + ldr r0, _080AE314 + adds r2, r1, r0 + movs r0, #3 + strb r0, [r2] + ldr r0, _080AE318 + adds r1, r1, r0 + movs r0, #0x14 + strb r0, [r1] + bx lr + .align 2, 0 +_080AE30C: .4byte 0x08526DE8 +_080AE310: .4byte 0x000006CC +_080AE314: .4byte 0x000006C1 +_080AE318: .4byte 0x000006C2 + thumb_func_end Shade_InitVars + + thumb_func_start Shade_InitAll +Shade_InitAll: @ 0x080AE31C + push {lr} + bl Shade_InitVars + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Shade_InitAll + + thumb_func_start Shade_Main +Shade_Main: @ 0x080AE328 + bx lr + .align 2, 0 + thumb_func_end Shade_Main + + thumb_func_start Drought_Finish +Drought_Finish: @ 0x080AE32C + movs r0, #0 + bx lr + thumb_func_end Drought_Finish + + thumb_func_start Bubbles_InitVars +Bubbles_InitVars: @ 0x080AE330 + push {r4, r5, lr} + bl Fog1_InitVars + ldr r0, _080AE370 + ldr r4, [r0] + ldr r1, _080AE374 + adds r0, r4, r1 + ldrb r5, [r0] + cmp r5, #0 + bne _080AE368 + ldr r0, _080AE378 + bl LoadSpriteSheet + movs r2, #0xe5 + lsls r2, r2, #3 + adds r0, r4, r2 + strh r5, [r0] + ldr r0, _080AE37C + ldrb r1, [r0] + subs r2, #2 + adds r0, r4, r2 + strh r1, [r0] + ldr r1, _080AE380 + adds r0, r4, r1 + strh r5, [r0] + adds r2, #6 + adds r0, r4, r2 + strh r5, [r0] +_080AE368: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080AE370: .4byte 0x08526DE8 +_080AE374: .4byte 0x0000072E +_080AE378: .4byte 0x0852AA94 +_080AE37C: .4byte 0x0852AA8C +_080AE380: .4byte 0x0000072A + thumb_func_end Bubbles_InitVars + + thumb_func_start Bubbles_InitAll +Bubbles_InitAll: @ 0x080AE384 + push {r4, lr} + bl Bubbles_InitVars + ldr r0, _080AE3AC + ldr r1, [r0] + ldr r2, _080AE3B0 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _080AE3A4 + adds r4, r1, r2 +_080AE39A: + bl Bubbles_Main + ldrb r0, [r4] + cmp r0, #0 + beq _080AE39A +_080AE3A4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AE3AC: .4byte 0x08526DE8 +_080AE3B0: .4byte 0x000006D2 + thumb_func_end Bubbles_InitAll + + thumb_func_start Bubbles_Main +Bubbles_Main: @ 0x080AE3B4 + push {r4, r5, r6, r7, lr} + bl Fog1_Main + ldr r0, _080AE414 + ldr r5, [r0] + ldr r0, _080AE418 + adds r4, r5, r0 + ldrh r0, [r4] + adds r0, #1 + movs r6, #0 + strh r0, [r4] + ldr r1, _080AE41C + adds r7, r1, #0 + ldr r2, _080AE420 + movs r1, #0xe5 + lsls r1, r1, #3 + adds r3, r5, r1 + ldrh r1, [r3] + adds r1, r1, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r1] + cmp r0, r1 + bls _080AE40C + strh r6, [r4] + ldrh r0, [r3] + adds r0, #1 + strh r0, [r3] + ands r0, r7 + cmp r0, #7 + bls _080AE3F4 + strh r6, [r3] +_080AE3F4: + ldr r0, _080AE424 + adds r4, r5, r0 + ldrh r0, [r4] + bl CreateBubbleSprite + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + ands r0, r7 + cmp r0, #0xc + bls _080AE40C + strh r6, [r4] +_080AE40C: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080AE414: .4byte 0x08526DE8 +_080AE418: .4byte 0x00000726 +_080AE41C: .4byte 0x0000FFFF +_080AE420: .4byte 0x0852AA8C +_080AE424: .4byte 0x0000072A + thumb_func_end Bubbles_Main + + thumb_func_start Bubbles_Finish +Bubbles_Finish: @ 0x080AE428 + push {lr} + bl Fog1_Finish + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080AE438 + movs r0, #1 + b _080AE43E +_080AE438: + bl DestroyBubbleSprites + movs r0, #0 +_080AE43E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end Bubbles_Finish + + thumb_func_start CreateBubbleSprite +CreateBubbleSprite: @ 0x080AE444 + push {r4, lr} + lsls r0, r0, #0x10 + ldr r1, _080AE4B4 + lsrs r0, r0, #0xe + adds r3, r0, r1 + adds r1, #2 + adds r0, r0, r1 + ldr r1, _080AE4B8 + ldrh r2, [r0] + ldrh r0, [r1] + subs r2, r2, r0 + ldr r0, _080AE4BC + movs r4, #0 + ldrsh r1, [r3, r4] + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + movs r3, #0 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x40 + beq _080AE4AC + ldr r0, _080AE4C0 + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + movs r2, #4 + orrs r0, r2 + strb r0, [r1, #5] + adds r3, r1, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r2, #2 + orrs r0, r2 + strb r0, [r3] + movs r0, #0 + strh r0, [r1, #0x2e] + strh r0, [r1, #0x30] + strh r0, [r1, #0x32] + ldr r0, _080AE4C4 + ldr r1, [r0] + ldr r0, _080AE4C8 + adds r1, r1, r0 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_080AE4AC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AE4B4: .4byte 0x0852AA9C +_080AE4B8: .4byte 0x02021B3A +_080AE4BC: .4byte 0x0852AAE0 +_080AE4C0: .4byte 0x020205AC +_080AE4C4: .4byte 0x08526DE8 +_080AE4C8: .4byte 0x0000072C + thumb_func_end CreateBubbleSprite + + thumb_func_start DestroyBubbleSprites +DestroyBubbleSprites: @ 0x080AE4CC + push {r4, r5, lr} + ldr r0, _080AE51C + ldr r0, [r0] + ldr r1, _080AE520 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0 + beq _080AE516 + movs r4, #0 + ldr r5, _080AE524 +_080AE4E0: + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r2, r0, #2 + adds r0, r5, #0 + adds r0, #0x14 + adds r0, r2, r0 + ldr r1, [r0] + ldr r0, _080AE528 + cmp r1, r0 + bne _080AE4FA + adds r0, r2, r5 + bl DestroySprite +_080AE4FA: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x3f + bls _080AE4E0 + ldr r0, _080AE52C + bl FreeSpriteTilesByTag + ldr r0, _080AE51C + ldr r0, [r0] + ldr r1, _080AE520 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0] +_080AE516: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080AE51C: .4byte 0x08526DE8 +_080AE520: .4byte 0x0000072C +_080AE524: .4byte 0x020205AC +_080AE528: .4byte 0x0852AAE0 +_080AE52C: .4byte 0x00001205 + thumb_func_end DestroyBubbleSprites + + thumb_func_start UpdateBubbleSprite +UpdateBubbleSprite: @ 0x080AE530 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0x2e] + movs r2, #0 + adds r0, #2 + strh r0, [r1, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #8 + ble _080AE570 + strh r2, [r1, #0x2e] + movs r3, #0x30 + ldrsh r0, [r1, r3] + cmp r0, #0 + bne _080AE562 + ldrh r0, [r1, #0x24] + adds r0, #1 + strh r0, [r1, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _080AE570 + movs r0, #1 + strh r0, [r1, #0x30] + b _080AE570 +_080AE562: + ldrh r0, [r1, #0x24] + subs r0, #1 + strh r0, [r1, #0x24] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _080AE570 + strh r2, [r1, #0x30] +_080AE570: + ldrh r0, [r1, #0x22] + subs r0, #3 + strh r0, [r1, #0x22] + ldrh r0, [r1, #0x32] + adds r0, #1 + strh r0, [r1, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x77 + ble _080AE58A + adds r0, r1, #0 + bl DestroySprite +_080AE58A: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end UpdateBubbleSprite + + thumb_func_start UnusedSetCurrentAlternatingWeather +UnusedSetCurrentAlternatingWeather: @ 0x080AE590 + ldr r2, _080AE59C + strb r0, [r2] + ldr r0, _080AE5A0 + strh r1, [r0] + bx lr + .align 2, 0 +_080AE59C: .4byte 0x02038864 +_080AE5A0: .4byte 0x02038866 + thumb_func_end UnusedSetCurrentAlternatingWeather + + thumb_func_start Task_DoAlternatingWeather +Task_DoAlternatingWeather: @ 0x080AE5A4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080AE5C4 + adds r4, r1, r0 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _080AE5C8 + cmp r0, #1 + beq _080AE5F4 + b _080AE618 + .align 2, 0 +_080AE5C4: .4byte 0x03005B68 +_080AE5C8: + ldrh r0, [r4, #0x1e] + subs r1, r0, #1 + strh r1, [r4, #0x1e] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _080AE618 + ldrb r0, [r4, #2] + bl SetNextWeather + ldr r1, _080AE5F0 + ldrh r0, [r4, #2] + strb r0, [r1] + movs r1, #0x96 + lsls r1, r1, #2 + adds r0, r1, #0 + strh r0, [r4, #0x1e] + ldrh r0, [r4] + adds r0, #1 + b _080AE616 + .align 2, 0 +_080AE5F0: .4byte 0x02038864 +_080AE5F4: + ldrh r0, [r4, #0x1e] + subs r1, r0, #1 + strh r1, [r4, #0x1e] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _080AE618 + ldrb r0, [r4, #4] + bl SetNextWeather + ldr r1, _080AE620 + ldrh r0, [r4, #4] + strb r0, [r1] + movs r1, #0x96 + lsls r1, r1, #2 + adds r0, r1, #0 + strh r0, [r4, #0x1e] + movs r0, #0 +_080AE616: + strh r0, [r4] +_080AE618: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AE620: .4byte 0x02038864 + thumb_func_end Task_DoAlternatingWeather + + thumb_func_start CreateAlternatingWeatherTask +CreateAlternatingWeatherTask: @ 0x080AE624 + push {lr} + ldr r0, _080AE650 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080AE654 + adds r1, r1, r0 + movs r2, #0x96 + lsls r2, r2, #2 + adds r0, r2, #0 + strh r0, [r1, #0x1e] + ldr r3, _080AE658 + ldrb r2, [r3] + cmp r2, #0xd + bne _080AE65C + movs r0, #0xc + b _080AE662 + .align 2, 0 +_080AE650: .4byte 0x080AE5A5 +_080AE654: .4byte 0x03005B68 +_080AE658: .4byte 0x02038864 +_080AE65C: + cmp r2, #0xc + bne _080AE668 + movs r0, #0xd +_080AE662: + strh r0, [r1, #2] + strh r2, [r1, #4] + b _080AE674 +_080AE668: + movs r0, #0xd + strb r0, [r3] + movs r0, #0xc + strh r0, [r1, #2] + movs r0, #0xd + strh r0, [r1, #4] +_080AE674: + pop {r0} + bx r0 + thumb_func_end CreateAlternatingWeatherTask + + thumb_func_start SetSav1Weather +SetSav1Weather: @ 0x080AE678 + push {r4, r5, lr} + ldr r4, _080AE6A4 + ldr r1, [r4] + adds r1, #0x2e + ldrb r5, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl TranslateWeatherNum + ldr r1, [r4] + adds r1, #0x2e + strb r0, [r1] + ldr r0, [r4] + adds r0, #0x2e + ldrb r0, [r0] + adds r1, r5, #0 + bl UpdateRainCounter + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080AE6A4: .4byte 0x03005AEC + thumb_func_end SetSav1Weather + + thumb_func_start GetSav1Weather +GetSav1Weather: @ 0x080AE6A8 + ldr r0, _080AE6B4 + ldr r0, [r0] + adds r0, #0x2e + ldrb r0, [r0] + bx lr + .align 2, 0 +_080AE6B4: .4byte 0x03005AEC + thumb_func_end GetSav1Weather + + thumb_func_start SetSav1WeatherFromCurrMapHeader +SetSav1WeatherFromCurrMapHeader: @ 0x080AE6B8 + push {r4, r5, lr} + ldr r4, _080AE6E4 + ldr r0, [r4] + adds r0, #0x2e + ldrb r5, [r0] + ldr r0, _080AE6E8 + ldrb r0, [r0, #0x16] + bl TranslateWeatherNum + ldr r1, [r4] + adds r1, #0x2e + strb r0, [r1] + ldr r0, [r4] + adds r0, #0x2e + ldrb r0, [r0] + adds r1, r5, #0 + bl UpdateRainCounter + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080AE6E4: .4byte 0x03005AEC +_080AE6E8: .4byte 0x02036FB8 + thumb_func_end SetSav1WeatherFromCurrMapHeader + + thumb_func_start SetWeather +SetWeather: @ 0x080AE6EC + push {lr} + bl SetSav1Weather + bl GetSav1Weather + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl SetNextWeather + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetWeather + + thumb_func_start SetWeather_Unused +SetWeather_Unused: @ 0x080AE704 + push {lr} + bl SetSav1Weather + bl GetSav1Weather + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl SetCurrentAndNextWeather + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetWeather_Unused + + thumb_func_start DoCurrentWeather +DoCurrentWeather: @ 0x080AE71C + push {r4, r5, lr} + bl GetSav1Weather + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xf + bne _080AE748 + ldr r0, _080AE740 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AE73A + bl CreateAlternatingWeatherTask +_080AE73A: + ldr r0, _080AE744 + ldrb r4, [r0] + b _080AE76A + .align 2, 0 +_080AE740: .4byte 0x080AE5A5 +_080AE744: .4byte 0x02038864 +_080AE748: + ldr r5, _080AE778 + adds r0, r5, #0 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080AE764 + adds r0, r5, #0 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_080AE764: + ldr r1, _080AE77C + movs r0, #0xd + strb r0, [r1] +_080AE76A: + adds r0, r4, #0 + bl SetNextWeather + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080AE778: .4byte 0x080AE5A5 +_080AE77C: .4byte 0x02038864 + thumb_func_end DoCurrentWeather + + thumb_func_start ResumePausedWeather +ResumePausedWeather: @ 0x080AE780 + push {r4, r5, lr} + bl GetSav1Weather + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xf + bne _080AE7AC + ldr r0, _080AE7A4 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AE79E + bl CreateAlternatingWeatherTask +_080AE79E: + ldr r0, _080AE7A8 + ldrb r4, [r0] + b _080AE7CE + .align 2, 0 +_080AE7A4: .4byte 0x080AE5A5 +_080AE7A8: .4byte 0x02038864 +_080AE7AC: + ldr r5, _080AE7DC + adds r0, r5, #0 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080AE7C8 + adds r0, r5, #0 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_080AE7C8: + ldr r1, _080AE7E0 + movs r0, #0xd + strb r0, [r1] +_080AE7CE: + adds r0, r4, #0 + bl SetCurrentAndNextWeather + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080AE7DC: .4byte 0x080AE5A5 +_080AE7E0: .4byte 0x02038864 + thumb_func_end ResumePausedWeather + + thumb_func_start TranslateWeatherNum +TranslateWeatherNum: @ 0x080AE7E4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x15 + bhi _080AE8B0 + lsls r0, r0, #2 + ldr r1, _080AE7F8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AE7F8: .4byte 0x080AE7FC +_080AE7FC: @ jump table + .4byte _080AE8B0 @ case 0 + .4byte _080AE854 @ case 1 + .4byte _080AE858 @ case 2 + .4byte _080AE85C @ case 3 + .4byte _080AE860 @ case 4 + .4byte _080AE864 @ case 5 + .4byte _080AE868 @ case 6 + .4byte _080AE86C @ case 7 + .4byte _080AE870 @ case 8 + .4byte _080AE874 @ case 9 + .4byte _080AE878 @ case 10 + .4byte _080AE87C @ case 11 + .4byte _080AE880 @ case 12 + .4byte _080AE884 @ case 13 + .4byte _080AE888 @ case 14 + .4byte _080AE88C @ case 15 + .4byte _080AE8B0 @ case 16 + .4byte _080AE8B0 @ case 17 + .4byte _080AE8B0 @ case 18 + .4byte _080AE8B0 @ case 19 + .4byte _080AE890 @ case 20 + .4byte _080AE898 @ case 21 +_080AE854: + movs r0, #1 + b _080AE8B2 +_080AE858: + movs r0, #2 + b _080AE8B2 +_080AE85C: + movs r0, #3 + b _080AE8B2 +_080AE860: + movs r0, #4 + b _080AE8B2 +_080AE864: + movs r0, #5 + b _080AE8B2 +_080AE868: + movs r0, #6 + b _080AE8B2 +_080AE86C: + movs r0, #7 + b _080AE8B2 +_080AE870: + movs r0, #8 + b _080AE8B2 +_080AE874: + movs r0, #9 + b _080AE8B2 +_080AE878: + movs r0, #0xa + b _080AE8B2 +_080AE87C: + movs r0, #0xb + b _080AE8B2 +_080AE880: + movs r0, #0xc + b _080AE8B2 +_080AE884: + movs r0, #0xd + b _080AE8B2 +_080AE888: + movs r0, #0xe + b _080AE8B2 +_080AE88C: + movs r0, #0xf + b _080AE8B2 +_080AE890: + ldr r1, _080AE894 + b _080AE89A + .align 2, 0 +_080AE894: .4byte 0x0852AAF8 +_080AE898: + ldr r1, _080AE8A8 +_080AE89A: + ldr r0, _080AE8AC + ldr r0, [r0] + adds r0, #0x2f + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + b _080AE8B2 + .align 2, 0 +_080AE8A8: .4byte 0x0852AAFC +_080AE8AC: .4byte 0x03005AEC +_080AE8B0: + movs r0, #0 +_080AE8B2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TranslateWeatherNum + + thumb_func_start UpdateWeatherPerDay +UpdateWeatherPerDay: @ 0x080AE8B8 + lsls r0, r0, #0x10 + ldr r1, _080AE8D4 + ldr r2, [r1] + adds r2, #0x2f + lsrs r0, r0, #0x10 + ldrb r1, [r2] + adds r0, r0, r1 + lsls r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r0 + lsrs r1, r1, #0x10 + strb r1, [r2] + bx lr + .align 2, 0 +_080AE8D4: .4byte 0x03005AEC + thumb_func_end UpdateWeatherPerDay + + thumb_func_start UpdateRainCounter +UpdateRainCounter: @ 0x080AE8D8 + push {lr} + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r2, r0, #0x18 + cmp r0, r1 + beq _080AE8F2 + cmp r2, #3 + beq _080AE8EC + cmp r2, #5 + bne _080AE8F2 +_080AE8EC: + movs r0, #0x28 + bl IncrementGameStat +_080AE8F2: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end UpdateRainCounter + diff --git a/asm/fieldmap.s b/asm/fieldmap.s new file mode 100644 index 0000000..4908946 --- /dev/null +++ b/asm/fieldmap.s @@ -0,0 +1,2356 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start mapconnection_get_mapheader +mapconnection_get_mapheader: @ 0x080876A8 + push {lr} + ldrb r2, [r0, #8] + ldrb r1, [r0, #9] + adds r0, r2, #0 + bl Overworld_GetMapHeaderByGroupAndId + pop {r1} + bx r1 + thumb_func_end mapconnection_get_mapheader + + thumb_func_start InitMap +InitMap: @ 0x080876B8 + push {r4, lr} + ldr r4, _080876D4 + adds r0, r4, #0 + bl InitMapLayoutData + ldr r0, [r4, #4] + bl SetOccupiedSecretBaseEntranceMetatiles + bl RunOnLoadMapScript + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080876D4: .4byte 0x02036FB8 + thumb_func_end InitMap + + thumb_func_start InitMapFromSavedGame +InitMapFromSavedGame: @ 0x080876D8 + push {r4, lr} + ldr r4, _08087708 + adds r0, r4, #0 + bl InitMapLayoutData + movs r0, #0 + bl InitSecretBaseAppearance + ldr r0, [r4, #4] + bl SetOccupiedSecretBaseEntranceMetatiles + bl LoadSavedMapView + bl RunOnLoadMapScript + ldr r1, _0808770C + ldr r0, [r1] + ldr r1, [r1, #4] + bl UpdateTVScreensOnMap + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08087708: .4byte 0x02036FB8 +_0808770C: .4byte 0x03005B20 + thumb_func_end InitMapFromSavedGame + + thumb_func_start InitBattlePyramidMap +InitBattlePyramidMap: @ 0x08087710 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _0808773C + str r0, [sp] + ldr r5, _08087740 + ldr r2, _08087744 + mov r0, sp + adds r1, r5, #0 + bl CpuFastSet + adds r0, r5, #0 + adds r1, r4, #0 + bl GenerateBattlePyramidFloorLayout + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0808773C: .4byte 0x03FF03FF +_08087740: .4byte 0x02031FB8 +_08087744: .4byte 0x01001400 + thumb_func_end InitBattlePyramidMap + + thumb_func_start InitTrainerHillMap +InitTrainerHillMap: @ 0x08087748 + push {r4, lr} + sub sp, #4 + ldr r0, _0808776C + str r0, [sp] + ldr r4, _08087770 + ldr r2, _08087774 + mov r0, sp + adds r1, r4, #0 + bl CpuFastSet + adds r0, r4, #0 + bl sub_081D590C + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808776C: .4byte 0x03FF03FF +_08087770: .4byte 0x02031FB8 +_08087774: .4byte 0x01001400 + thumb_func_end InitTrainerHillMap + + thumb_func_start InitMapLayoutData +InitMapLayoutData: @ 0x08087778 + push {r4, r5, r6, lr} + sub sp, #4 + adds r6, r0, #0 + ldr r5, [r6] + ldr r0, _080877C4 + str r0, [sp] + ldr r4, _080877C8 + ldr r2, _080877CC + mov r0, sp + adds r1, r4, #0 + bl CpuFastSet + ldr r2, _080877D0 + str r4, [r2, #8] + ldr r1, [r5] + adds r1, #0xf + str r1, [r2] + ldr r0, [r5, #4] + adds r0, #0xe + str r0, [r2, #4] + muls r1, r0, r1 + movs r0, #0xa0 + lsls r0, r0, #6 + cmp r1, r0 + bgt _080877BA + ldr r0, [r5, #0xc] + ldrh r1, [r5] + ldrh r2, [r5, #4] + bl InitBackupMapLayoutData + adds r0, r6, #0 + bl InitBackupMapLayoutConnections +_080877BA: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080877C4: .4byte 0x03FF03FF +_080877C8: .4byte 0x02031FB8 +_080877CC: .4byte 0x01001400 +_080877D0: .4byte 0x03005B20 + thumb_func_end InitMapLayoutData + + thumb_func_start InitBackupMapLayoutData +InitBackupMapLayoutData: @ 0x080877D4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r8, r1 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldr r0, _08087828 + ldr r4, [r0, #8] + ldr r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #1 + adds r0, #0xe + adds r4, r4, r0 + cmp r2, #0 + beq _0808781C + mov r0, r8 + lsls r6, r0, #1 + adds r5, r2, #0 + movs r0, #0x1e + adds r0, r0, r6 + mov sb, r0 +_08087808: + adds r0, r7, #0 + adds r1, r4, #0 + mov r2, r8 + bl CpuSet + add r4, sb + adds r7, r7, r6 + subs r5, #1 + cmp r5, #0 + bne _08087808 +_0808781C: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08087828: .4byte 0x03005B20 + thumb_func_end InitBackupMapLayoutData + + thumb_func_start InitBackupMapLayoutConnections +InitBackupMapLayoutConnections: @ 0x0808782C + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldr r0, [r6, #0xc] + cmp r0, #0 + beq _080878B0 + ldr r1, [r0] + ldr r5, [r0, #4] + ldr r2, _08087864 + ldr r0, _08087868 + ldr r0, [r0] + str r0, [r2] + cmp r1, #0 + ble _080878B0 + adds r4, r2, #0 + adds r7, r1, #0 +_0808784A: + adds r0, r5, #0 + bl mapconnection_get_mapheader + adds r1, r0, #0 + ldr r2, [r5, #4] + ldrb r0, [r5] + cmp r0, #2 + beq _08087882 + cmp r0, #2 + bgt _0808786C + cmp r0, #1 + beq _08087876 + b _080878A8 + .align 2, 0 +_08087864: .4byte 0x02036FE0 +_08087868: .4byte 0x0845F318 +_0808786C: + cmp r0, #3 + beq _0808788E + cmp r0, #4 + beq _0808789A + b _080878A8 +_08087876: + adds r0, r6, #0 + bl FillSouthConnection + ldrb r0, [r4] + movs r1, #1 + b _080878A4 +_08087882: + adds r0, r6, #0 + bl FillNorthConnection + ldrb r0, [r4] + movs r1, #2 + b _080878A4 +_0808788E: + adds r0, r6, #0 + bl FillWestConnection + ldrb r0, [r4] + movs r1, #4 + b _080878A4 +_0808789A: + adds r0, r6, #0 + bl FillEastConnection + ldrb r0, [r4] + movs r1, #8 +_080878A4: + orrs r0, r1 + strb r0, [r4] +_080878A8: + subs r7, #1 + adds r5, #0xc + cmp r7, #0 + bne _0808784A +_080878B0: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end InitBackupMapLayoutConnections + + thumb_func_start sub_080878B8 +sub_080878B8: @ 0x080878B8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r5, [sp, #0x18] + ldr r4, [r2] + ldr r7, [r4] + adds r2, r7, #0 + muls r2, r5, r2 + adds r2, r2, r3 + lsls r2, r2, #1 + ldr r3, [r4, #0xc] + adds r6, r3, r2 + ldr r3, _08087914 + ldr r2, [r3] + muls r1, r2, r1 + adds r1, r1, r0 + lsls r1, r1, #1 + ldr r0, [r3, #8] + adds r5, r0, r1 + ldr r0, [sp, #0x20] + cmp r0, #0 + ble _0808790A + adds r4, r0, #0 + ldr r3, _08087918 + mov r8, r3 +_080878EA: + adds r0, r6, #0 + adds r1, r5, #0 + ldr r2, [sp, #0x1c] + mov r3, r8 + ands r2, r3 + bl CpuSet + ldr r0, _08087914 + ldr r0, [r0] + lsls r0, r0, #1 + adds r5, r5, r0 + lsls r0, r7, #1 + adds r6, r6, r0 + subs r4, #1 + cmp r4, #0 + bne _080878EA +_0808790A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08087914: .4byte 0x03005B20 +_08087918: .4byte 0x001FFFFF + thumb_func_end sub_080878B8 + + thumb_func_start FillSouthConnection +FillSouthConnection: @ 0x0808791C + push {r4, r5, r6, r7, lr} + sub sp, #0xc + adds r3, r0, #0 + adds r5, r1, #0 + cmp r5, #0 + beq _08087976 + ldr r0, [r5] + ldr r4, [r0] + adds r2, #7 + ldr r0, [r3] + ldr r0, [r0, #4] + adds r7, r0, #7 + cmp r2, #0 + bge _08087950 + rsbs r6, r2, #0 + adds r2, r2, r4 + ldr r0, _0808794C + ldr r3, [r0] + cmp r2, r3 + bge _08087946 + adds r3, r2, #0 +_08087946: + movs r2, #0 + b _08087960 + .align 2, 0 +_0808794C: .4byte 0x03005B20 +_08087950: + movs r6, #0 + adds r0, r2, r4 + ldr r1, _08087980 + ldr r1, [r1] + subs r3, r1, r2 + cmp r0, r1 + bge _08087960 + adds r3, r4, #0 +_08087960: + movs r0, #0 + str r0, [sp] + str r3, [sp, #4] + movs r0, #7 + str r0, [sp, #8] + adds r0, r2, #0 + adds r1, r7, #0 + adds r2, r5, #0 + adds r3, r6, #0 + bl sub_080878B8 +_08087976: + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08087980: .4byte 0x03005B20 + thumb_func_end FillSouthConnection + + thumb_func_start FillNorthConnection +FillNorthConnection: @ 0x08087984 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + adds r5, r1, #0 + cmp r5, #0 + beq _080879D8 + ldr r0, [r5] + ldr r4, [r0] + ldr r0, [r0, #4] + adds r2, #7 + subs r7, r0, #7 + cmp r2, #0 + bge _080879B4 + rsbs r6, r2, #0 + adds r2, r2, r4 + ldr r0, _080879B0 + ldr r3, [r0] + cmp r2, r3 + bge _080879AA + adds r3, r2, #0 +_080879AA: + movs r2, #0 + b _080879C4 + .align 2, 0 +_080879B0: .4byte 0x03005B20 +_080879B4: + movs r6, #0 + adds r0, r2, r4 + ldr r1, _080879E0 + ldr r1, [r1] + subs r3, r1, r2 + cmp r0, r1 + bge _080879C4 + adds r3, r4, #0 +_080879C4: + str r7, [sp] + str r3, [sp, #4] + movs r0, #7 + str r0, [sp, #8] + adds r0, r2, #0 + movs r1, #0 + adds r2, r5, #0 + adds r3, r6, #0 + bl sub_080878B8 +_080879D8: + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080879E0: .4byte 0x03005B20 + thumb_func_end FillNorthConnection + + thumb_func_start FillWestConnection +FillWestConnection: @ 0x080879E4 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + adds r5, r1, #0 + cmp r5, #0 + beq _08087A38 + ldr r0, [r5] + ldr r1, [r0] + ldr r4, [r0, #4] + adds r2, #7 + subs r7, r1, #7 + cmp r2, #0 + bge _08087A14 + rsbs r6, r2, #0 + adds r1, r2, r4 + ldr r0, _08087A10 + ldr r3, [r0, #4] + cmp r1, r3 + bge _08087A0A + adds r3, r1, #0 +_08087A0A: + movs r2, #0 + b _08087A24 + .align 2, 0 +_08087A10: .4byte 0x03005B20 +_08087A14: + movs r6, #0 + adds r0, r2, r4 + ldr r1, _08087A40 + ldr r1, [r1, #4] + subs r3, r1, r2 + cmp r0, r1 + bge _08087A24 + adds r3, r4, #0 +_08087A24: + str r6, [sp] + movs r0, #7 + str r0, [sp, #4] + str r3, [sp, #8] + movs r0, #0 + adds r1, r2, #0 + adds r2, r5, #0 + adds r3, r7, #0 + bl sub_080878B8 +_08087A38: + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08087A40: .4byte 0x03005B20 + thumb_func_end FillWestConnection + + thumb_func_start FillEastConnection +FillEastConnection: @ 0x08087A44 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + adds r3, r0, #0 + adds r5, r1, #0 + cmp r5, #0 + beq _08087A9C + ldr r0, [r5] + ldr r4, [r0, #4] + ldr r0, [r3] + ldr r0, [r0] + adds r7, r0, #7 + adds r2, #7 + cmp r2, #0 + bge _08087A78 + rsbs r6, r2, #0 + adds r1, r2, r4 + ldr r0, _08087A74 + ldr r3, [r0, #4] + cmp r1, r3 + bge _08087A6E + adds r3, r1, #0 +_08087A6E: + movs r2, #0 + b _08087A88 + .align 2, 0 +_08087A74: .4byte 0x03005B20 +_08087A78: + movs r6, #0 + adds r0, r2, r4 + ldr r1, _08087AA4 + ldr r1, [r1, #4] + subs r3, r1, r2 + cmp r0, r1 + bge _08087A88 + adds r3, r4, #0 +_08087A88: + str r6, [sp] + movs r0, #8 + str r0, [sp, #4] + str r3, [sp, #8] + adds r0, r7, #0 + adds r1, r2, #0 + adds r2, r5, #0 + movs r3, #0 + bl sub_080878B8 +_08087A9C: + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08087AA4: .4byte 0x03005B20 + thumb_func_end FillEastConnection + + thumb_func_start MapGridGetZCoordAt +MapGridGetZCoordAt: @ 0x08087AA8 + push {r4, lr} + adds r2, r0, #0 + adds r4, r1, #0 + cmp r2, #0 + blt _08087AD8 + ldr r1, _08087AD4 + ldr r3, [r1] + cmp r2, r3 + bge _08087AD8 + cmp r4, #0 + blt _08087AD8 + ldr r0, [r1, #4] + cmp r4, r0 + bge _08087AD8 + adds r0, r3, #0 + muls r0, r4, r0 + adds r0, r2, r0 + ldr r1, [r1, #8] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + b _08087AFA + .align 2, 0 +_08087AD4: .4byte 0x03005B20 +_08087AD8: + ldr r0, _08087B04 + ldr r3, [r0] + adds r1, r2, #1 + movs r2, #1 + ands r1, r2 + adds r0, r4, #1 + ands r0, r2 + lsls r0, r0, #1 + adds r1, r1, r0 + ldr r0, [r3, #8] + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r1, [r1] + movs r2, #0xc0 + lsls r2, r2, #4 + adds r0, r2, #0 + orrs r1, r0 +_08087AFA: + ldr r0, _08087B08 + cmp r1, r0 + beq _08087B0C + lsrs r0, r1, #0xc + b _08087B0E + .align 2, 0 +_08087B04: .4byte 0x02036FB8 +_08087B08: .4byte 0x000003FF +_08087B0C: + movs r0, #0 +_08087B0E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end MapGridGetZCoordAt + + thumb_func_start MapGridIsImpassableAt +MapGridIsImpassableAt: @ 0x08087B14 + push {r4, lr} + adds r2, r0, #0 + adds r4, r1, #0 + cmp r2, #0 + blt _08087B44 + ldr r1, _08087B40 + ldr r3, [r1] + cmp r2, r3 + bge _08087B44 + cmp r4, #0 + blt _08087B44 + ldr r0, [r1, #4] + cmp r4, r0 + bge _08087B44 + adds r0, r3, #0 + muls r0, r4, r0 + adds r0, r2, r0 + ldr r1, [r1, #8] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + b _08087B66 + .align 2, 0 +_08087B40: .4byte 0x03005B20 +_08087B44: + ldr r0, _08087B78 + ldr r3, [r0] + adds r1, r2, #1 + movs r2, #1 + ands r1, r2 + adds r0, r4, #1 + ands r0, r2 + lsls r0, r0, #1 + adds r1, r1, r0 + ldr r0, [r3, #8] + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r1, [r1] + movs r2, #0xc0 + lsls r2, r2, #4 + adds r0, r2, #0 + orrs r1, r0 +_08087B66: + ldr r0, _08087B7C + cmp r1, r0 + beq _08087B80 + movs r0, #0xc0 + lsls r0, r0, #4 + ands r1, r0 + lsrs r0, r1, #0xa + b _08087B82 + .align 2, 0 +_08087B78: .4byte 0x02036FB8 +_08087B7C: .4byte 0x000003FF +_08087B80: + movs r0, #1 +_08087B82: + pop {r4} + pop {r1} + bx r1 + thumb_func_end MapGridIsImpassableAt + + thumb_func_start MapGridGetMetatileIdAt +MapGridGetMetatileIdAt: @ 0x08087B88 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + cmp r5, #0 + blt _08087BB8 + ldr r1, _08087BB4 + ldr r2, [r1] + cmp r5, r2 + bge _08087BB8 + cmp r6, #0 + blt _08087BB8 + ldr r0, [r1, #4] + cmp r6, r0 + bge _08087BB8 + adds r0, r2, #0 + muls r0, r6, r0 + adds r0, r5, r0 + ldr r1, [r1, #8] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r4, [r0] + b _08087BDC + .align 2, 0 +_08087BB4: .4byte 0x03005B20 +_08087BB8: + ldr r0, _08087BE8 + ldr r3, [r0] + adds r1, r5, #1 + movs r2, #1 + ands r1, r2 + adds r0, r6, #1 + ands r0, r2 + lsls r0, r0, #1 + adds r1, r1, r0 + ldr r0, [r3, #8] + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r1, [r1] + movs r2, #0xc0 + lsls r2, r2, #4 + adds r0, r2, #0 + adds r4, r0, #0 + orrs r4, r1 +_08087BDC: + ldr r0, _08087BEC + cmp r4, r0 + beq _08087BF0 + ands r4, r0 + adds r0, r4, #0 + b _08087C14 + .align 2, 0 +_08087BE8: .4byte 0x02036FB8 +_08087BEC: .4byte 0x000003FF +_08087BF0: + ldr r0, _08087C1C + ldr r3, [r0] + adds r1, r5, #1 + movs r2, #1 + ands r1, r2 + adds r0, r6, #1 + ands r0, r2 + lsls r0, r0, #1 + adds r1, r1, r0 + ldr r0, [r3, #8] + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + movs r2, #0xc0 + lsls r2, r2, #4 + adds r1, r2, #0 + orrs r0, r1 + ands r0, r4 +_08087C14: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08087C1C: .4byte 0x02036FB8 + thumb_func_end MapGridGetMetatileIdAt + + thumb_func_start MapGridGetMetatileBehaviorAt +MapGridGetMetatileBehaviorAt: @ 0x08087C20 + push {lr} + bl MapGridGetMetatileIdAt + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetBehaviorByMetatileId + adds r1, r0, #0 + movs r0, #0xff + ands r0, r1 + pop {r1} + bx r1 + thumb_func_end MapGridGetMetatileBehaviorAt + + thumb_func_start MapGridGetMetatileLayerTypeAt +MapGridGetMetatileLayerTypeAt: @ 0x08087C38 + push {lr} + bl MapGridGetMetatileIdAt + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetBehaviorByMetatileId + adds r1, r0, #0 + movs r0, #0xf0 + lsls r0, r0, #8 + ands r0, r1 + lsrs r0, r0, #0xc + pop {r1} + bx r1 + thumb_func_end MapGridGetMetatileLayerTypeAt + + thumb_func_start MapGridSetMetatileIdAt +MapGridSetMetatileIdAt: @ 0x08087C54 + push {r4, r5, lr} + adds r3, r0, #0 + lsls r2, r2, #0x10 + lsrs r5, r2, #0x10 + cmp r3, #0 + blt _08087C8C + ldr r2, _08087C94 + ldr r4, [r2] + cmp r3, r4 + bge _08087C8C + cmp r1, #0 + blt _08087C8C + ldr r0, [r2, #4] + cmp r1, r0 + bge _08087C8C + muls r1, r4, r1 + adds r1, r3, r1 + ldr r0, [r2, #8] + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + movs r2, #0xf0 + lsls r2, r2, #8 + ands r2, r0 + ldr r0, _08087C98 + ands r0, r5 + orrs r2, r0 + strh r2, [r1] +_08087C8C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08087C94: .4byte 0x03005B20 +_08087C98: .4byte 0x00000FFF + thumb_func_end MapGridSetMetatileIdAt + + thumb_func_start MapGridSetMetatileEntryAt +MapGridSetMetatileEntryAt: @ 0x08087C9C + push {r4, r5, lr} + adds r3, r0, #0 + lsls r2, r2, #0x10 + lsrs r5, r2, #0x10 + cmp r3, #0 + blt _08087CC8 + ldr r2, _08087CD0 + ldr r4, [r2] + cmp r3, r4 + bge _08087CC8 + cmp r1, #0 + blt _08087CC8 + ldr r0, [r2, #4] + cmp r1, r0 + bge _08087CC8 + adds r0, r4, #0 + muls r0, r1, r0 + adds r0, r3, r0 + ldr r1, [r2, #8] + lsls r0, r0, #1 + adds r0, r0, r1 + strh r5, [r0] +_08087CC8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08087CD0: .4byte 0x03005B20 + thumb_func_end MapGridSetMetatileEntryAt + + thumb_func_start GetBehaviorByMetatileId +GetBehaviorByMetatileId: @ 0x08087CD4 + push {lr} + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + adds r3, r2, #0 + ldr r0, _08087CF0 + cmp r2, r0 + bhi _08087CF8 + ldr r0, _08087CF4 + ldr r0, [r0] + ldr r0, [r0, #0x10] + ldr r1, [r0, #0x10] + lsls r0, r2, #1 + b _08087D16 + .align 2, 0 +_08087CF0: .4byte 0x000001FF +_08087CF4: .4byte 0x02036FB8 +_08087CF8: + ldr r0, _08087D04 + cmp r2, r0 + bls _08087D08 + movs r0, #0xff + b _08087D1A + .align 2, 0 +_08087D04: .4byte 0x000003FF +_08087D08: + ldr r0, _08087D20 + ldr r0, [r0] + ldr r0, [r0, #0x14] + ldr r1, [r0, #0x10] + lsls r0, r3, #1 + adds r0, r0, r1 + ldr r1, _08087D24 +_08087D16: + adds r0, r0, r1 + ldrh r0, [r0] +_08087D1A: + pop {r1} + bx r1 + .align 2, 0 +_08087D20: .4byte 0x02036FB8 +_08087D24: .4byte 0xFFFFFC00 + thumb_func_end GetBehaviorByMetatileId + + thumb_func_start save_serialize_map +save_serialize_map: @ 0x08087D28 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r0, _08087D90 + ldr r1, [r0] + adds r4, r1, #0 + adds r4, #0x34 + ldr r0, _08087D94 + ldr r0, [r0] + mov r8, r0 + movs r0, #0 + ldrsh r6, [r1, r0] + movs r2, #2 + ldrsh r0, [r1, r2] + adds r1, r0, #0 + adds r1, #0xe + cmp r0, r1 + bge _08087D84 + mov ip, r1 + ldr r1, _08087D98 + mov sb, r1 + lsls r7, r6, #1 +_08087D56: + adds r1, r6, #0 + adds r3, r1, #0 + adds r3, #0xf + adds r5, r0, #1 + cmp r1, r3 + bge _08087D7E + mov r2, r8 + muls r2, r0, r2 + adds r0, r2, #0 + lsls r0, r0, #1 + add r0, sb + adds r2, r7, r0 + subs r1, r3, r1 +_08087D70: + ldrh r0, [r2] + strh r0, [r4] + adds r4, #2 + adds r2, #2 + subs r1, #1 + cmp r1, #0 + bne _08087D70 +_08087D7E: + adds r0, r5, #0 + cmp r0, ip + blt _08087D56 +_08087D84: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08087D90: .4byte 0x03005AEC +_08087D94: .4byte 0x03005B20 +_08087D98: .4byte 0x02031FB8 + thumb_func_end save_serialize_map + + thumb_func_start SavedMapViewIsEmpty +SavedMapViewIsEmpty: @ 0x08087D9C + push {r4, lr} + movs r2, #0 + movs r1, #0 + ldr r0, _08087DC8 + ldr r0, [r0] + adds r3, r0, #0 + adds r3, #0x34 + ldr r4, _08087DCC +_08087DAC: + lsls r0, r1, #1 + adds r0, r3, r0 + ldrh r0, [r0] + orrs r2, r0 + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, r4 + bls _08087DAC + cmp r2, #0 + beq _08087DD0 + movs r0, #0 + b _08087DD2 + .align 2, 0 +_08087DC8: .4byte 0x03005AEC +_08087DCC: .4byte 0x000001FF +_08087DD0: + movs r0, #1 +_08087DD2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end SavedMapViewIsEmpty + + thumb_func_start ClearSavedMapView +ClearSavedMapView: @ 0x08087DD8 + push {lr} + sub sp, #4 + mov r1, sp + movs r0, #0 + strh r0, [r1] + ldr r0, _08087DF8 + ldr r1, [r0] + adds r1, #0x34 + ldr r2, _08087DFC + mov r0, sp + bl CpuSet + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_08087DF8: .4byte 0x03005AEC +_08087DFC: .4byte 0x01000100 + thumb_func_end ClearSavedMapView + + thumb_func_start LoadSavedMapView +LoadSavedMapView: @ 0x08087E00 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + ldr r4, _08087E48 + ldr r0, [r4] + adds r7, r0, #0 + adds r7, #0x34 + bl SavedMapViewIsEmpty + cmp r0, #0 + bne _08087F10 + ldr r0, _08087E4C + ldr r0, [r0] + str r0, [sp] + ldr r0, [r4] + movs r2, #0 + ldrsh r1, [r0, r2] + mov sl, r1 + movs r2, #2 + ldrsh r1, [r0, r2] + mov r8, r1 + mov r6, r8 + adds r0, r6, #0 + adds r0, #0xe + cmp r6, r0 + bge _08087EBE +_08087E3A: + cmp r6, r8 + bne _08087E50 + cmp r6, #0 + beq _08087E50 + movs r0, #0 + mov sb, r0 + b _08087E6C + .align 2, 0 +_08087E48: .4byte 0x03005AEC +_08087E4C: .4byte 0x03005B20 +_08087E50: + mov r0, r8 + adds r0, #0xd + movs r1, #0xff + mov sb, r1 + cmp r6, r0 + bne _08087E6C + ldr r0, _08087F20 + ldr r0, [r0] + ldr r0, [r0, #4] + subs r0, #1 + cmp r6, r0 + beq _08087E6C + movs r2, #1 + mov sb, r2 +_08087E6C: + mov r5, sl + adds r0, r5, #0 + adds r0, #0xf + mov r1, r8 + adds r1, #0xe + str r1, [sp, #8] + adds r2, r6, #1 + str r2, [sp, #4] + cmp r5, r0 + bge _08087EB6 + ldr r0, [sp] + lsls r3, r0, #0x10 +_08087E84: + ldr r1, [sp] + adds r0, r1, #0 + muls r0, r6, r0 + adds r0, r5, r0 + lsls r0, r0, #1 + ldr r1, _08087F24 + adds r4, r0, r1 + adds r0, r4, #0 + lsrs r1, r3, #0x10 + mov r2, sb + str r3, [sp, #0xc] + bl SkipCopyingMetatileFromSavedMap + lsls r0, r0, #0x18 + ldr r3, [sp, #0xc] + cmp r0, #0 + bne _08087EAA + ldrh r0, [r7] + strh r0, [r4] +_08087EAA: + adds r7, #2 + adds r5, #1 + mov r0, sl + adds r0, #0xf + cmp r5, r0 + blt _08087E84 +_08087EB6: + ldr r6, [sp, #4] + ldr r2, [sp, #8] + cmp r6, r2 + blt _08087E3A +_08087EBE: + mov r5, sl + adds r0, r5, #0 + adds r0, #0xf + cmp r5, r0 + bge _08087F0C + mov r0, r8 + subs r0, #1 + lsls r0, r0, #0x10 + mov sb, r0 + lsls r4, r5, #0x10 + mov r0, r8 + adds r0, #0xd + lsls r7, r0, #0x10 +_08087ED8: + mov r0, r8 + cmp r0, #0 + beq _08087EE8 + asrs r0, r4, #0x10 + mov r2, sb + asrs r1, r2, #0x10 + bl FixLongGrassMetatilesWindowTop +_08087EE8: + ldr r0, _08087F20 + ldr r0, [r0] + ldr r0, [r0, #4] + subs r0, #1 + cmp r6, r0 + bge _08087EFC + asrs r0, r4, #0x10 + asrs r1, r7, #0x10 + bl FixLongGrassMetatilesWindowBottom +_08087EFC: + movs r0, #0x80 + lsls r0, r0, #9 + adds r4, r4, r0 + adds r5, #1 + mov r0, sl + adds r0, #0xf + cmp r5, r0 + blt _08087ED8 +_08087F0C: + bl ClearSavedMapView +_08087F10: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08087F20: .4byte 0x02036FB8 +_08087F24: .4byte 0x02031FB8 + thumb_func_end LoadSavedMapView + + thumb_func_start sub_08087F28 +sub_08087F28: @ 0x08087F28 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + adds r2, r3, #0 + ldr r0, _08087F70 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0x34 + str r0, [sp, #4] + ldr r0, _08087F74 + ldr r0, [r0] + str r0, [sp] + movs r4, #0 + mov sb, r4 + mov r8, r4 + movs r0, #0 + ldrsh r6, [r1, r0] + str r6, [sp, #8] + movs r4, #2 + ldrsh r5, [r1, r4] + movs r7, #0xf + movs r6, #0xe + mov ip, r6 + cmp r3, #2 + beq _08087F82 + cmp r3, #2 + bgt _08087F78 + cmp r3, #1 + beq _08087F8A + b _08087FA2 + .align 2, 0 +_08087F70: .4byte 0x03005AEC +_08087F74: .4byte 0x03005B20 +_08087F78: + cmp r2, #3 + beq _08087F94 + cmp r2, #4 + beq _08087F9C + b _08087FA2 +_08087F82: + adds r5, #1 + movs r0, #0xd + mov ip, r0 + b _08087FA2 +_08087F8A: + movs r1, #1 + mov r8, r1 + movs r3, #0xd + mov ip, r3 + b _08087FA2 +_08087F94: + ldr r4, [sp, #8] + adds r4, #1 + str r4, [sp, #8] + b _08087FA0 +_08087F9C: + movs r6, #1 + mov sb, r6 +_08087FA0: + movs r7, #0xe +_08087FA2: + movs r1, #0 + cmp r1, ip + bge _08087FE6 + ldr r0, _08087FFC + mov sl, r0 +_08087FAC: + adds r4, r1, #1 + cmp r7, #0 + beq _08087FE0 + adds r0, r1, r5 + ldr r3, [sp] + adds r2, r3, #0 + muls r2, r0, r2 + add r1, r8 + lsls r0, r1, #4 + subs r0, r0, r1 + add r0, sb + ldr r6, [sp, #8] + adds r2, r6, r2 + adds r3, r7, #0 + lsls r2, r2, #1 + add r2, sl + lsls r0, r0, #1 + ldr r6, [sp, #4] + adds r1, r0, r6 +_08087FD2: + ldrh r0, [r1] + strh r0, [r2] + adds r1, #2 + adds r2, #2 + subs r3, #1 + cmp r3, #0 + bne _08087FD2 +_08087FE0: + adds r1, r4, #0 + cmp r1, ip + blt _08087FAC +_08087FE6: + bl ClearSavedMapView + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08087FFC: .4byte 0x02031FB8 + thumb_func_end sub_08087F28 + + thumb_func_start GetMapBorderIdAt +GetMapBorderIdAt: @ 0x08088000 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + cmp r4, #0 + blt _0808803C + ldr r1, _08088034 + ldr r2, [r1] + cmp r4, r2 + bge _0808803C + cmp r5, #0 + blt _0808803C + ldr r0, [r1, #4] + cmp r5, r0 + bge _0808803C + adds r0, r2, #0 + muls r0, r5, r0 + adds r0, r4, r0 + ldr r1, [r1, #8] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + ldr r0, _08088038 + cmp r1, r0 + beq _080880D4 + b _08088064 + .align 2, 0 +_08088034: .4byte 0x03005B20 +_08088038: .4byte 0x000003FF +_0808803C: + ldr r0, _08088080 + ldr r3, [r0] + adds r1, r4, #1 + movs r2, #1 + ands r1, r2 + adds r0, r5, #1 + ands r0, r2 + lsls r0, r0, #1 + adds r1, r1, r0 + ldr r0, [r3, #8] + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r1, [r1] + movs r2, #0xc0 + lsls r2, r2, #4 + adds r0, r2, #0 + orrs r0, r1 + ldr r1, _08088084 + cmp r0, r1 + beq _080880D4 +_08088064: + ldr r1, _08088088 + ldr r0, [r1] + subs r0, #8 + cmp r4, r0 + blt _08088090 + ldr r0, _0808808C + ldrb r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080880D4 + movs r0, #4 + b _080880E6 + .align 2, 0 +_08088080: .4byte 0x02036FB8 +_08088084: .4byte 0x000003FF +_08088088: .4byte 0x03005B20 +_0808808C: .4byte 0x02036FE0 +_08088090: + cmp r4, #6 + bgt _080880A8 + ldr r0, _080880A4 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080880D4 + movs r0, #3 + b _080880E6 + .align 2, 0 +_080880A4: .4byte 0x02036FE0 +_080880A8: + ldr r0, [r1, #4] + subs r0, #7 + cmp r5, r0 + blt _080880C4 + ldr r0, _080880C0 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080880D4 + movs r0, #1 + b _080880E6 + .align 2, 0 +_080880C0: .4byte 0x02036FE0 +_080880C4: + cmp r5, #6 + bgt _080880E4 + ldr r0, _080880DC + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _080880E0 +_080880D4: + movs r0, #1 + rsbs r0, r0, #0 + b _080880E6 + .align 2, 0 +_080880DC: .4byte 0x02036FE0 +_080880E0: + movs r0, #2 + b _080880E6 +_080880E4: + movs r0, #0 +_080880E6: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end GetMapBorderIdAt + + thumb_func_start GetPostCameraMoveMapBorderId +GetPostCameraMoveMapBorderId: @ 0x080880EC + push {r4, lr} + adds r3, r1, #0 + ldr r1, _08088110 + ldr r1, [r1] + movs r4, #0 + ldrsh r2, [r1, r4] + adds r0, #7 + adds r2, r2, r0 + movs r0, #2 + ldrsh r1, [r1, r0] + adds r3, #7 + adds r1, r1, r3 + adds r0, r2, #0 + bl GetMapBorderIdAt + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08088110: .4byte 0x03005AEC + thumb_func_end GetPostCameraMoveMapBorderId + + thumb_func_start CanCameraMoveInDirection +CanCameraMoveInDirection: @ 0x08088114 + push {r4, r5, lr} + ldr r1, _0808814C + ldr r4, [r1] + movs r1, #0 + ldrsh r3, [r4, r1] + ldr r2, _08088150 + lsls r0, r0, #3 + adds r1, r0, r2 + ldr r1, [r1] + adds r1, #7 + adds r3, r3, r1 + movs r5, #2 + ldrsh r1, [r4, r5] + adds r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + adds r0, #7 + adds r1, r1, r0 + adds r0, r3, #0 + bl GetMapBorderIdAt + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _08088154 + movs r0, #1 + b _08088156 + .align 2, 0 +_0808814C: .4byte 0x03005AEC +_08088150: .4byte 0x0830FCB0 +_08088154: + movs r0, #0 +_08088156: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end CanCameraMoveInDirection + + thumb_func_start sub_0808815C +sub_0808815C: @ 0x0808815C + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + adds r7, r3, #0 + bl mapconnection_get_mapheader + adds r3, r0, #0 + cmp r4, #2 + beq _080881C4 + cmp r4, #2 + bgt _0808817A + cmp r4, #1 + beq _080881B0 + b _080881D6 +_0808817A: + cmp r4, #3 + beq _08088198 + cmp r4, #4 + bne _080881D6 + ldr r0, _08088194 + ldr r1, [r0] + rsbs r0, r6, #0 + strh r0, [r1] + ldr r2, [r5, #4] + ldrh r0, [r1, #2] + subs r0, r0, r2 + b _080881D4 + .align 2, 0 +_08088194: .4byte 0x03005AEC +_08088198: + ldr r0, _080881AC + ldr r1, [r0] + ldr r0, [r3] + ldr r0, [r0] + strh r0, [r1] + ldr r2, [r5, #4] + ldrh r0, [r1, #2] + subs r0, r0, r2 + b _080881D4 + .align 2, 0 +_080881AC: .4byte 0x03005AEC +_080881B0: + ldr r0, _080881C0 + ldr r1, [r0] + ldr r2, [r5, #4] + ldrh r0, [r1] + subs r0, r0, r2 + strh r0, [r1] + rsbs r0, r7, #0 + b _080881D4 + .align 2, 0 +_080881C0: .4byte 0x03005AEC +_080881C4: + ldr r0, _080881DC + ldr r1, [r0] + ldr r2, [r5, #4] + ldrh r0, [r1] + subs r0, r0, r2 + strh r0, [r1] + ldr r0, [r3] + ldr r0, [r0, #4] +_080881D4: + strh r0, [r1, #2] +_080881D6: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080881DC: .4byte 0x03005AEC + thumb_func_end sub_0808815C + + thumb_func_start CameraMove +CameraMove: @ 0x080881E0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sl, r0 + mov sb, r1 + ldr r1, _08088220 + ldrb r0, [r1] + movs r1, #2 + rsbs r1, r1, #0 + ands r1, r0 + ldr r2, _08088220 + strb r1, [r2] + mov r0, sl + mov r1, sb + bl GetPostCameraMoveMapBorderId + adds r7, r0, #0 + adds r0, r7, #1 + cmp r0, #1 + bhi _08088228 + ldr r0, _08088224 + ldr r1, [r0] + ldrh r0, [r1] + add r0, sl + strh r0, [r1] + ldrh r0, [r1, #2] + add r0, sb + strh r0, [r1, #2] + b _08088296 + .align 2, 0 +_08088220: .4byte 0x02036FD4 +_08088224: .4byte 0x03005AEC +_08088228: + bl save_serialize_map + bl ClearMirageTowerPulseBlendEffect + ldr r1, _080882AC + ldr r0, [r1] + movs r2, #0 + ldrsh r5, [r0, r2] + movs r1, #2 + ldrsh r6, [r0, r1] + lsls r2, r7, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + mov r0, r8 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_080882B4 + adds r4, r0, #0 + adds r1, r7, #0 + mov r2, sl + mov r3, sb + bl sub_0808815C + ldrb r0, [r4, #8] + ldrb r1, [r4, #9] + bl LoadMapFromCameraTransition + ldr r1, _080882B0 + ldrb r0, [r1] + movs r1, #1 + orrs r0, r1 + ldr r2, _080882B0 + strb r0, [r2] + ldr r0, _080882AC + ldr r1, [r0] + movs r2, #0 + ldrsh r0, [r1, r2] + subs r5, r5, r0 + ldr r0, _080882B0 + str r5, [r0, #4] + movs r2, #2 + ldrsh r0, [r1, r2] + subs r6, r6, r0 + ldr r0, _080882B0 + str r6, [r0, #8] + ldrh r0, [r1] + add r0, sl + strh r0, [r1] + ldrh r0, [r1, #2] + add r0, sb + strh r0, [r1, #2] + mov r0, r8 + bl sub_08087F28 +_08088296: + ldr r0, _080882B0 + ldrb r0, [r0] + lsls r0, r0, #0x1f + lsrs r0, r0, #0x1f + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080882AC: .4byte 0x03005AEC +_080882B0: .4byte 0x02036FD4 + thumb_func_end CameraMove + + thumb_func_start sub_080882B4 +sub_080882B4: @ 0x080882B4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov sb, r1 + mov r8, r2 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _080882F0 + ldr r0, [r0, #0xc] + ldr r7, [r0] + ldr r4, [r0, #4] + movs r5, #0 + cmp r5, r7 + bge _080882FC +_080882D2: + ldrb r0, [r4] + cmp r0, r6 + bne _080882F4 + adds r0, r6, #0 + mov r1, sb + mov r2, r8 + adds r3, r4, #0 + bl sub_0808830C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080882F4 + adds r0, r4, #0 + b _080882FE + .align 2, 0 +_080882F0: .4byte 0x02036FB8 +_080882F4: + adds r5, #1 + adds r4, #0xc + cmp r5, r7 + blt _080882D2 +_080882FC: + movs r0, #0 +_080882FE: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080882B4 + + thumb_func_start sub_0808830C +sub_0808830C: @ 0x0808830C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r1, #0 + mov r8, r2 + adds r5, r3, #0 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r6, r4, #0 + adds r0, r5, #0 + bl mapconnection_get_mapheader + adds r2, r0, #0 + cmp r4, #1 + blt _08088364 + cmp r4, #2 + bgt _08088344 + ldr r0, _08088340 + ldr r0, [r0] + ldr r1, [r0] + ldr r0, [r2] + ldr r2, [r0] + ldr r3, [r5, #4] + adds r0, r7, #0 + b _08088356 + .align 2, 0 +_08088340: .4byte 0x02036FB8 +_08088344: + cmp r6, #4 + bgt _08088364 + ldr r0, _08088360 + ldr r0, [r0] + ldr r1, [r0, #4] + ldr r0, [r2] + ldr r2, [r0, #4] + ldr r3, [r5, #4] + mov r0, r8 +_08088356: + bl sub_08088370 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _08088366 + .align 2, 0 +_08088360: .4byte 0x02036FB8 +_08088364: + movs r0, #0 +_08088366: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_0808830C + + thumb_func_start sub_08088370 +sub_08088370: @ 0x08088370 + push {r4, lr} + adds r4, r0, #0 + adds r0, r2, #0 + adds r2, r3, #0 + cmp r3, #0 + bge _0808837E + movs r3, #0 +_0808837E: + adds r2, r0, r2 + cmp r2, r1 + bge _08088386 + adds r1, r2, #0 +_08088386: + cmp r3, r4 + bgt _08088392 + cmp r4, r1 + bgt _08088392 + movs r0, #1 + b _08088394 +_08088392: + movs r0, #0 +_08088394: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08088370 + + thumb_func_start sub_0808839C +sub_0808839C: @ 0x0808839C + push {lr} + cmp r0, #0 + blt _080883AA + cmp r0, r1 + bge _080883AA + movs r0, #1 + b _080883AC +_080883AA: + movs r0, #0 +_080883AC: + pop {r1} + bx r1 + thumb_func_end sub_0808839C + + thumb_func_start sub_080883B0 +sub_080883B0: @ 0x080883B0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + bl mapconnection_get_mapheader + adds r1, r0, #0 + ldrb r0, [r4] + cmp r0, #1 + blt _080883E8 + cmp r0, #2 + bgt _080883D6 + ldr r0, [r4, #4] + subs r0, r5, r0 + ldr r1, [r1] + ldr r1, [r1] + bl sub_0808839C + b _080883EA +_080883D6: + cmp r0, #4 + bgt _080883E8 + ldr r0, [r4, #4] + subs r0, r6, r0 + ldr r1, [r1] + ldr r1, [r1, #4] + bl sub_0808839C + b _080883EA +_080883E8: + movs r0, #0 +_080883EA: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_080883B0 + + thumb_func_start sub_080883F0 +sub_080883F0: @ 0x080883F0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r2, _08088410 + ldr r0, [r2, #0xc] + cmp r0, #0 + bne _08088418 + b _0808848E + .align 2, 0 +_08088410: .4byte 0x02036FB8 +_08088414: + adds r0, r4, #0 + b _08088490 +_08088418: + ldr r7, [r0] + ldr r4, [r0, #4] + movs r6, #0 + cmp r6, r7 + bge _0808848E + lsls r0, r1, #0x10 + asrs r5, r0, #0x10 + mov sb, r2 + mov r1, r8 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + mov sl, r0 +_08088430: + ldrb r1, [r4] + adds r3, r1, #0 + subs r0, r1, #5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _08088486 + cmp r1, #2 + bne _08088446 + cmp r5, #6 + bgt _08088486 +_08088446: + cmp r1, #1 + bne _08088456 + mov r2, sb + ldr r0, [r2] + ldr r0, [r0, #4] + adds r0, #7 + cmp r5, r0 + blt _08088486 +_08088456: + mov r0, r8 + lsls r2, r0, #0x10 + cmp r1, #3 + bne _08088464 + mov r1, sl + cmp r1, #6 + bgt _08088486 +_08088464: + cmp r3, #4 + bne _08088476 + asrs r1, r2, #0x10 + mov r3, sb + ldr r0, [r3] + ldr r0, [r0] + adds r0, #7 + cmp r1, r0 + blt _08088486 +_08088476: + asrs r1, r2, #0x10 + subs r1, #7 + adds r0, r4, #0 + subs r2, r5, #7 + bl sub_080883B0 + cmp r0, #1 + beq _08088414 +_08088486: + adds r6, #1 + adds r4, #0xc + cmp r6, r7 + blt _08088430 +_0808848E: + movs r0, #0 +_08088490: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080883F0 + + thumb_func_start sub_080884A0 +sub_080884A0: @ 0x080884A0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r2, _080884B8 + ldr r2, [r2] + subs r0, #7 + strh r0, [r2] + subs r1, #7 + strh r1, [r2, #2] + bx lr + .align 2, 0 +_080884B8: .4byte 0x03005AEC + thumb_func_end sub_080884A0 + + thumb_func_start GetCameraFocusCoords +GetCameraFocusCoords: @ 0x080884BC + ldr r2, _080884D0 + ldr r3, [r2] + ldrh r2, [r3] + adds r2, #7 + strh r2, [r0] + ldrh r0, [r3, #2] + adds r0, #7 + strh r0, [r1] + bx lr + .align 2, 0 +_080884D0: .4byte 0x03005AEC + thumb_func_end GetCameraFocusCoords + + thumb_func_start SetPlayerCoords +SetPlayerCoords: @ 0x080884D4 + ldr r2, _080884E0 + ldr r2, [r2] + strh r0, [r2] + strh r1, [r2, #2] + bx lr + .align 2, 0 +_080884E0: .4byte 0x03005AEC + thumb_func_end SetPlayerCoords + + thumb_func_start GetCameraCoords +GetCameraCoords: @ 0x080884E4 + ldr r2, _080884F4 + ldr r3, [r2] + ldrh r2, [r3] + strh r2, [r0] + ldrh r0, [r3, #2] + strh r0, [r1] + bx lr + .align 2, 0 +_080884F4: .4byte 0x03005AEC + thumb_func_end GetCameraCoords + + thumb_func_start sub_080884F8 +sub_080884F8: @ 0x080884F8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r3, r1, #0 + adds r5, r2, #0 + cmp r4, #0 + blt _0808854A + ldr r2, _08088534 + ldr r1, [r2] + cmp r4, r1 + bge _0808854A + cmp r3, #0 + blt _0808854A + ldr r0, [r2, #4] + cmp r3, r0 + bge _0808854A + cmp r5, #0 + beq _08088538 + adds r0, r1, #0 + muls r0, r3, r0 + adds r0, r4, r0 + ldr r1, [r2, #8] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r3, #0xc0 + lsls r3, r3, #4 + adds r2, r3, #0 + orrs r1, r2 + strh r1, [r0] + b _0808854A + .align 2, 0 +_08088534: .4byte 0x03005B20 +_08088538: + muls r1, r3, r1 + adds r1, r4, r1 + ldr r0, [r2, #8] + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r2, [r1] + ldr r0, _08088550 + ands r0, r2 + strh r0, [r1] +_0808854A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08088550: .4byte 0x0000F3FF + thumb_func_end sub_080884F8 + + thumb_func_start SkipCopyingMetatileFromSavedMap +SkipCopyingMetatileFromSavedMap: @ 0x08088554 + push {lr} + adds r3, r0, #0 + lsls r1, r1, #0x10 + lsrs r0, r1, #0x10 + adds r1, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + cmp r2, #0xff + beq _08088588 + cmp r2, #0 + bne _08088570 + lsls r0, r0, #1 + subs r3, r3, r0 + b _08088574 +_08088570: + lsls r0, r1, #1 + adds r3, r3, r0 +_08088574: + ldrh r1, [r3] + ldr r0, _0808858C + ands r0, r1 + adds r1, r2, #0 + bl sub_080FB654 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08088590 +_08088588: + movs r0, #0 + b _08088592 + .align 2, 0 +_0808858C: .4byte 0x000003FF +_08088590: + movs r0, #1 +_08088592: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SkipCopyingMetatileFromSavedMap + + thumb_func_start copy_tileset_patterns_to_vram +copy_tileset_patterns_to_vram: @ 0x08088598 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r3, r0, #0 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + adds r6, r4, #0 + lsls r2, r2, #0x10 + lsrs r5, r2, #0x10 + adds r7, r5, #0 + cmp r3, #0 + beq _080885D4 + ldrb r0, [r3] + cmp r0, #0 + bne _080885C4 + ldr r1, [r3, #4] + lsls r2, r4, #0x15 + lsrs r2, r2, #0x10 + movs r0, #2 + adds r3, r5, #0 + bl LoadBgTiles + b _080885D4 +_080885C4: + ldr r1, [r3, #4] + lsls r2, r6, #5 + movs r0, #0 + str r0, [sp] + movs r0, #2 + adds r3, r7, #0 + bl decompress_and_copy_tile_data_to_vram +_080885D4: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end copy_tileset_patterns_to_vram + + thumb_func_start copy_tileset_patterns_to_vram2 +copy_tileset_patterns_to_vram2: @ 0x080885DC + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r3, r0, #0 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + adds r6, r4, #0 + lsls r2, r2, #0x10 + lsrs r5, r2, #0x10 + adds r7, r5, #0 + cmp r3, #0 + beq _08088618 + ldrb r0, [r3] + cmp r0, #0 + bne _08088608 + ldr r1, [r3, #4] + lsls r2, r4, #0x15 + lsrs r2, r2, #0x10 + movs r0, #2 + adds r3, r5, #0 + bl LoadBgTiles + b _08088618 +_08088608: + ldr r1, [r3, #4] + lsls r2, r6, #5 + movs r0, #0 + str r0, [sp] + movs r0, #2 + adds r3, r7, #0 + bl DecompressAndLoadBgGfxUsingHeap +_08088618: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end copy_tileset_patterns_to_vram2 + + thumb_func_start nullsub_90 +nullsub_90: @ 0x08088620 + bx lr + .align 2, 0 + thumb_func_end nullsub_90 + + thumb_func_start nullsub_3 +nullsub_3: @ 0x08088624 + bx lr + .align 2, 0 + thumb_func_end nullsub_3 + + thumb_func_start apply_map_tileset_palette +apply_map_tileset_palette: @ 0x08088628 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r4, r0, #0 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + mov r8, r5 + lsls r6, r2, #0x10 + lsrs r7, r6, #0x10 + adds r2, r7, #0 + movs r1, #0 + mov r0, sp + strh r1, [r0] + cmp r4, #0 + beq _080886A6 + ldrb r0, [r4, #1] + cmp r0, #0 + bne _0808867C + mov r0, sp + adds r1, r5, #0 + movs r2, #2 + bl LoadPalette + ldr r0, [r4, #8] + adds r0, #2 + adds r5, #1 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + subs r4, r7, #2 + lsls r2, r4, #0x10 + lsrs r2, r2, #0x10 + adds r1, r5, #0 + bl LoadPalette + lsls r4, r4, #0xf + lsrs r4, r4, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl nullsub_90 + b _080886A6 +_0808867C: + cmp r0, #1 + bne _08088696 + ldr r0, [r4, #8] + adds r0, #0xc0 + adds r1, r5, #0 + adds r2, r7, #0 + bl LoadPalette + lsrs r1, r6, #0x11 + adds r0, r5, #0 + bl nullsub_90 + b _080886A6 +_08088696: + ldr r0, [r4, #8] + mov r1, r8 + bl LoadCompressedPalette + lsrs r1, r6, #0x11 + mov r0, r8 + bl nullsub_90 +_080886A6: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end apply_map_tileset_palette + + thumb_func_start copy_map_tileset1_to_vram +copy_map_tileset1_to_vram: @ 0x080886B4 + push {lr} + ldr r0, [r0, #0x10] + movs r1, #0x80 + lsls r1, r1, #2 + movs r2, #0 + bl copy_tileset_patterns_to_vram + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end copy_map_tileset1_to_vram + + thumb_func_start copy_map_tileset2_to_vram +copy_map_tileset2_to_vram: @ 0x080886C8 + push {lr} + ldr r0, [r0, #0x14] + movs r2, #0x80 + lsls r2, r2, #2 + adds r1, r2, #0 + bl copy_tileset_patterns_to_vram + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end copy_map_tileset2_to_vram + + thumb_func_start copy_map_tileset2_to_vram_2 +copy_map_tileset2_to_vram_2: @ 0x080886DC + push {lr} + ldr r0, [r0, #0x14] + movs r2, #0x80 + lsls r2, r2, #2 + adds r1, r2, #0 + bl copy_tileset_patterns_to_vram2 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end copy_map_tileset2_to_vram_2 + + thumb_func_start apply_map_tileset1_palette +apply_map_tileset1_palette: @ 0x080886F0 + push {lr} + ldr r0, [r0, #0x10] + movs r1, #0 + movs r2, #0xc0 + bl apply_map_tileset_palette + pop {r0} + bx r0 + thumb_func_end apply_map_tileset1_palette + + thumb_func_start apply_map_tileset2_palette +apply_map_tileset2_palette: @ 0x08088700 + push {lr} + ldr r0, [r0, #0x14] + movs r1, #0x60 + movs r2, #0xe0 + bl apply_map_tileset_palette + pop {r0} + bx r0 + thumb_func_end apply_map_tileset2_palette + + thumb_func_start copy_map_tileset1_tileset2_to_vram +copy_map_tileset1_tileset2_to_vram: @ 0x08088710 + push {r4, r5, lr} + adds r5, r0, #0 + cmp r5, #0 + beq _08088730 + ldr r0, [r5, #0x10] + movs r4, #0x80 + lsls r4, r4, #2 + adds r1, r4, #0 + movs r2, #0 + bl copy_tileset_patterns_to_vram2 + ldr r0, [r5, #0x14] + adds r1, r4, #0 + adds r2, r4, #0 + bl copy_tileset_patterns_to_vram2 +_08088730: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end copy_map_tileset1_tileset2_to_vram + + thumb_func_start apply_map_tileset1_tileset2_palette +apply_map_tileset1_tileset2_palette: @ 0x08088738 + push {r4, lr} + adds r4, r0, #0 + cmp r4, #0 + beq _0808874A + bl apply_map_tileset1_palette + adds r0, r4, #0 + bl apply_map_tileset2_palette +_0808874A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end apply_map_tileset1_tileset2_palette + diff --git a/asm/fight.s b/asm/fight.s new file mode 100644 index 0000000..a7da6c5 --- /dev/null +++ b/asm/fight.s @@ -0,0 +1,1746 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start unc_080B08A0 +unc_080B08A0: @ 0x0810D67C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0810D6AC + movs r0, #0 + ldrsh r1, [r5, r0] + adds r0, r4, #0 + bl SetAnimSpriteInitialXOffset + ldrh r0, [r5, #2] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] + movs r0, #0xf + strh r0, [r4, #0x2e] + ldr r0, _0810D6B0 + str r0, [r4, #0x1c] + ldr r1, _0810D6B4 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810D6AC: .4byte 0x020380BE +_0810D6B0: .4byte 0x080A5D79 +_0810D6B4: .4byte 0x080A34C5 + thumb_func_end unc_080B08A0 + + thumb_func_start sub_0810D6B8 +sub_0810D6B8: @ 0x0810D6B8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0810D6FC + movs r1, #0xe + ldrsh r0, [r4, r1] + cmp r0, #1 + bne _0810D6E0 + ldr r0, _0810D700 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810D6E0 + ldrh r0, [r4, #2] + rsbs r0, r0, #0 + strh r0, [r4, #2] + ldrh r0, [r4, #6] + rsbs r0, r0, #0 + strh r0, [r4, #6] +_0810D6E0: + ldr r4, _0810D6FC + ldrb r1, [r4, #0xc] + adds r0, r5, #0 + bl StartSpriteAnim + movs r0, #0 + strh r0, [r4, #0xc] + adds r0, r5, #0 + bl sub_080A7200 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810D6FC: .4byte 0x020380BE +_0810D700: .4byte 0x020380D6 + thumb_func_end sub_0810D6B8 + + thumb_func_start sub_0810D704 +sub_0810D704: @ 0x0810D704 + push {r4, lr} + adds r4, r0, #0 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810D720 + ldr r0, _0810D72C + ldrh r1, [r0, #2] + rsbs r1, r1, #0 + strh r1, [r0, #2] + ldrh r1, [r0, #6] + rsbs r1, r1, #0 + strh r1, [r0, #6] +_0810D720: + adds r0, r4, #0 + bl sub_0810D6B8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810D72C: .4byte 0x020380BE + thumb_func_end sub_0810D704 + + thumb_func_start AnimBasicFistOrFoot +AnimBasicFistOrFoot: @ 0x0810D730 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0810D750 + ldrb r1, [r4, #8] + bl StartSpriteAnim + movs r1, #6 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0810D754 + adds r0, r5, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + b _0810D75C + .align 2, 0 +_0810D750: .4byte 0x020380BE +_0810D754: + adds r0, r5, #0 + movs r1, #1 + bl InitSpritePosToAnimTarget +_0810D75C: + ldr r0, _0810D774 + ldrh r0, [r0, #4] + strh r0, [r5, #0x2e] + ldr r0, _0810D778 + str r0, [r5, #0x1c] + ldr r1, _0810D77C + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810D774: .4byte 0x020380BE +_0810D778: .4byte 0x080A5D79 +_0810D77C: .4byte 0x080A34C5 + thumb_func_end AnimBasicFistOrFoot + + thumb_func_start sub_0810D780 +sub_0810D780: @ 0x0810D780 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + ldr r0, _0810D79C + movs r2, #0 + ldrsh r1, [r0, r2] + mov sb, r0 + cmp r1, #0 + bne _0810D7A4 + ldr r0, _0810D7A0 + b _0810D7A6 + .align 2, 0 +_0810D79C: .4byte 0x020380BE +_0810D7A0: .4byte 0x020380D6 +_0810D7A4: + ldr r0, _0810D8EC +_0810D7A6: + ldrb r0, [r0] + mov r8, r0 + mov r4, sb + movs r3, #4 + ldrsh r0, [r4, r3] + cmp r0, #0 + bge _0810D7C4 + bl Random2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #5 + bl __umodsi3 + strh r0, [r4, #4] +_0810D7C4: + ldrb r1, [r4, #4] + adds r0, r5, #0 + bl StartSpriteAnim + mov r0, r8 + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + mov r0, r8 + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + mov r0, r8 + movs r1, #1 + bl GetBattlerSpriteCoordAttr + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + lsrs r0, r0, #0x1f + adds r1, r1, r0 + lsls r1, r1, #0xf + lsrs r6, r1, #0x10 + mov r0, r8 + movs r1, #0 + bl GetBattlerSpriteCoordAttr + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _0810D80E + adds r0, #3 +_0810D80E: + lsls r4, r0, #0xe + lsrs r4, r4, #0x10 + bl Random2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r6, #0x10 + asrs r1, r1, #0x10 + bl __modsi3 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + bl Random2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + adds r1, r4, #0 + bl __modsi3 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + bl Random2 + movs r7, #1 + adds r1, r7, #0 + ands r1, r0 + cmp r1, #0 + beq _0810D850 + lsls r0, r6, #0x10 + rsbs r0, r0, #0 + lsrs r6, r0, #0x10 +_0810D850: + bl Random2 + adds r1, r7, #0 + ands r1, r0 + cmp r1, #0 + beq _0810D862 + lsls r0, r4, #0x10 + rsbs r0, r0, #0 + lsrs r4, r0, #0x10 +_0810D862: + ldr r0, _0810D8F0 + add r0, r8 + ldrb r1, [r0] + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0 + bne _0810D878 + lsls r0, r4, #0x10 + ldr r1, _0810D8F4 + adds r0, r0, r1 + lsrs r4, r0, #0x10 +_0810D878: + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + ldrh r2, [r5, #0x20] + adds r0, r0, r2 + strh r0, [r5, #0x20] + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + ldrh r3, [r5, #0x22] + adds r0, r0, r3 + strh r0, [r5, #0x22] + mov r1, sb + ldrh r0, [r1, #2] + strh r0, [r5, #0x2e] + ldr r0, _0810D8F8 + 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, #1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x3c] + cmp r0, #0x40 + beq _0810D8DC + movs r0, #0x3c + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _0810D8FC + adds r0, r0, r4 + movs r1, #0 + bl StartSpriteAffineAnim + movs r2, #0x3c + ldrsh r1, [r5, r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, #0x1c + adds r0, r0, r4 + ldr r1, _0810D900 + str r1, [r0] +_0810D8DC: + ldr r0, _0810D904 + str r0, [r5, #0x1c] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0810D8EC: .4byte 0x020380D7 +_0810D8F0: .4byte 0x02023D1A +_0810D8F4: .4byte 0xFFF00000 +_0810D8F8: .4byte 0x08572F3C +_0810D8FC: .4byte 0x020205AC +_0810D900: .4byte 0x08007141 +_0810D904: .4byte 0x0810D909 + thumb_func_end sub_0810D780 + + thumb_func_start sub_0810D908 +sub_0810D908: @ 0x0810D908 + push {r4, r5, lr} + adds r5, r0, #0 + ldrh r1, [r5, #0x2e] + movs r2, #0x2e + ldrsh r0, [r5, r2] + cmp r0, #0 + bne _0810D950 + movs r1, #0x3c + ldrsh r0, [r5, r1] + cmp r0, #0x40 + beq _0810D944 + ldr r4, _0810D94C + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r0, [r0, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + movs r0, #0x3c + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite +_0810D944: + adds r0, r5, #0 + bl DestroyAnimSprite + b _0810D954 + .align 2, 0 +_0810D94C: .4byte 0x020205AC +_0810D950: + subs r0, r1, #1 + strh r0, [r5, #0x2e] +_0810D954: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0810D908 + + thumb_func_start sub_0810D95C +sub_0810D95C: @ 0x0810D95C + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimTarget + movs r0, #0x1e + strh r0, [r4, #0x2e] + ldr r0, _0810D97C + movs r1, #4 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _0810D980 + ldrh r0, [r4, #0x20] + subs r0, #0x14 + strh r0, [r4, #0x32] + b _0810D992 + .align 2, 0 +_0810D97C: .4byte 0x020380BE +_0810D980: + ldrh r0, [r4, #0x20] + adds r0, #0x14 + strh r0, [r4, #0x32] + adds r2, r4, #0 + adds r2, #0x3f + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] +_0810D992: + ldrh r0, [r4, #0x22] + subs r0, #0x14 + strh r0, [r4, #0x36] + ldr r0, _0810D9AC + str r0, [r4, #0x1c] + ldr r1, _0810D9B0 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810D9AC: .4byte 0x080A67B5 +_0810D9B0: .4byte 0x0810D9B5 + thumb_func_end sub_0810D95C + + thumb_func_start sub_0810D9B4 +sub_0810D9B4: @ 0x0810D9B4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrh r0, [r5, #0x38] + adds r0, #1 + movs r6, #0 + strh r0, [r5, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xb + bne _0810D9F4 + 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, #8 + strh r0, [r5, #0x2e] + adds r2, r2, r4 + strh r2, [r5, #0x20] + adds r1, r1, r3 + strh r1, [r5, #0x22] + strh r6, [r5, #0x26] + strh r6, [r5, #0x24] + ldr r0, _0810D9FC + str r0, [r5, #0x1c] + ldr r1, _0810DA00 + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 +_0810D9F4: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0810D9FC: .4byte 0x080A67B5 +_0810DA00: .4byte 0x080A34C5 + thumb_func_end sub_0810D9B4 + + thumb_func_start sub_0810DA04 +sub_0810DA04: @ 0x0810DA04 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r0, _0810DA80 + ldrb r1, [r0] + movs r0, #2 + ldr r2, _0810DA84 + eors r0, r1 + ldrb r1, [r2] + cmp r0, r1 + bne _0810DA30 + ldrb r0, [r2] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0810DA30 + ldr r1, _0810DA88 + movs r2, #0 + ldrsh r0, [r1, r2] + rsbs r0, r0, #0 + strh r0, [r1] +_0810DA30: + adds r0, r6, #0 + movs r1, #1 + bl InitSpritePosToAnimTarget + ldr r0, _0810DA80 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810DA4E + ldr r1, _0810DA88 + ldrh r0, [r1, #4] + rsbs r0, r0, #0 + strh r0, [r1, #4] +_0810DA4E: + ldr r4, _0810DA88 + ldrh r0, [r4, #6] + movs r5, #0 + strh r0, [r6, #0x2e] + ldrh r0, [r6, #0x20] + strh r0, [r6, #0x30] + ldrh r1, [r4, #4] + adds r0, r0, r1 + strh r0, [r6, #0x32] + ldrh r0, [r6, #0x22] + strh r0, [r6, #0x34] + strh r0, [r6, #0x36] + adds r0, r6, #0 + bl InitAnimLinearTranslation + ldrh r0, [r4, #0xa] + strh r0, [r6, #0x38] + ldrh r0, [r4, #8] + strh r0, [r6, #0x3a] + strh r5, [r6, #0x3c] + ldr r0, _0810DA8C + str r0, [r6, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0810DA80: .4byte 0x020380D6 +_0810DA84: .4byte 0x020380D7 +_0810DA88: .4byte 0x020380BE +_0810DA8C: .4byte 0x0810DA91 + thumb_func_end sub_0810DA04 + + thumb_func_start sub_0810DA90 +sub_0810DA90: @ 0x0810DA90 + push {r4, lr} + adds r4, r0, #0 + bl AnimTranslateLinear + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810DABC + ldrh r0, [r4, #0x3c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + movs r2, #0x38 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, #0x26] + adds r0, r0, r1 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x3a] + ldrh r2, [r4, #0x3c] + adds r0, r0, r2 + strh r0, [r4, #0x3c] + b _0810DAC2 +_0810DABC: + adds r0, r4, #0 + bl DestroyAnimSprite +_0810DAC2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0810DA90 + + thumb_func_start AnimSpinningKickOrPunch +AnimSpinningKickOrPunch: @ 0x0810DAC8 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimTarget + ldr r5, _0810DAF4 + ldrb r1, [r5, #4] + adds r0, r4, #0 + bl StartSpriteAnim + ldrh r0, [r5, #6] + strh r0, [r4, #0x2e] + ldr r0, _0810DAF8 + str r0, [r4, #0x1c] + ldr r1, _0810DAFC + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810DAF4: .4byte 0x020380BE +_0810DAF8: .4byte 0x080A5D79 +_0810DAFC: .4byte 0x0810DB01 + thumb_func_end AnimSpinningKickOrPunch + + thumb_func_start AnimSpinningKickOrPunchFinish +AnimSpinningKickOrPunchFinish: @ 0x0810DB00 + 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, _0810DB2C + str r0, [r4, #0x1c] + ldr r1, _0810DB30 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810DB2C: .4byte 0x080A5D79 +_0810DB30: .4byte 0x080A34C5 + thumb_func_end AnimSpinningKickOrPunchFinish + + thumb_func_start AnimStompFoot +AnimStompFoot: @ 0x0810DB34 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimTarget + ldr r0, _0810DB50 + ldrh r0, [r0, #4] + strh r0, [r4, #0x2e] + ldr r0, _0810DB54 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810DB50: .4byte 0x020380BE +_0810DB54: .4byte 0x0810DB59 + thumb_func_end AnimStompFoot + + thumb_func_start AnimStompFootStep +AnimStompFootStep: @ 0x0810DB58 + push {r4, r5, lr} + adds r5, r0, #0 + ldrh r0, [r5, #0x2e] + subs r0, #1 + strh r0, [r5, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0810DB9C + movs r0, #6 + strh r0, [r5, #0x2e] + ldr r4, _0810DBA4 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x32] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x36] + ldr r0, _0810DBA8 + str r0, [r5, #0x1c] + ldr r1, _0810DBAC + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 +_0810DB9C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810DBA4: .4byte 0x020380D7 +_0810DBA8: .4byte 0x080A67B5 +_0810DBAC: .4byte 0x0810DBB1 + thumb_func_end AnimStompFootStep + + thumb_func_start AnimStompFootEnd +AnimStompFootEnd: @ 0x0810DBB0 + push {lr} + movs r1, #0xf + strh r1, [r0, #0x2e] + ldr r1, _0810DBC4 + str r1, [r0, #0x1c] + ldr r1, _0810DBC8 + bl StoreSpriteCallbackInData6 + pop {r0} + bx r0 + .align 2, 0 +_0810DBC4: .4byte 0x080A5D79 +_0810DBC8: .4byte 0x080A34C5 + thumb_func_end AnimStompFootEnd + + thumb_func_start sub_0810DBCC +sub_0810DBCC: @ 0x0810DBCC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0810DBF8 + adds r0, r4, #0 + movs r1, #1 + bl InitSpritePosToAnimTarget + ldr r1, _0810DBF4 + ldrh r0, [r1, #4] + strh r0, [r4, #0x30] + ldrh r0, [r1, #6] + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + b _0810DC54 + .align 2, 0 +_0810DBF4: .4byte 0x020380BE +_0810DBF8: + ldrh r0, [r4, #0x30] + ldrh r2, [r4, #0x36] + adds r0, r0, r2 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + 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, #3 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x34] + cmp r0, #0x64 + ble _0810DC46 + movs r0, #0x34 + ldrsh r1, [r4, r0] + lsrs r0, r1, #0x1f + adds r0, r1, r0 + asrs r0, r0, #1 + lsls r0, r0, #1 + subs r1, r1, r0 + adds r3, r4, #0 + adds r3, #0x3e + movs r0, #1 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r3] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_0810DC46: + movs r1, #0x34 + ldrsh r0, [r4, r1] + cmp r0, #0x78 + ble _0810DC54 + adds r0, r4, #0 + bl DestroyAnimSprite +_0810DC54: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0810DBCC + + thumb_func_start sub_0810DC5C +sub_0810DC5C: @ 0x0810DC5C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0810DC70 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _0810DC78 + ldr r4, _0810DC74 + b _0810DC7A + .align 2, 0 +_0810DC70: .4byte 0x020380BE +_0810DC74: .4byte 0x020380D6 +_0810DC78: + ldr r4, _0810DCC0 +_0810DC7A: + ldrb r0, [r4] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + ldr r1, _0810DCC4 + ldrh r0, [r1, #2] + ldrh r2, [r5, #0x20] + adds r0, r0, r2 + movs r2, #0 + strh r0, [r5, #0x20] + ldrh r0, [r1, #4] + ldrh r3, [r5, #0x22] + adds r0, r0, r3 + strh r0, [r5, #0x22] + strh r2, [r5, #0x2e] + ldrh r0, [r1, #6] + strh r0, [r5, #0x30] + ldrh r0, [r1, #8] + strh r0, [r5, #0x32] + strh r2, [r5, #0x34] + ldr r0, _0810DCC8 + str r0, [r5, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810DCC0: .4byte 0x020380D7 +_0810DCC4: .4byte 0x020380BE +_0810DCC8: .4byte 0x0810DCCD + thumb_func_end sub_0810DC5C + + thumb_func_start sub_0810DCCC +sub_0810DCCC: @ 0x0810DCCC + push {lr} + adds r1, r0, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + cmp r2, #0 + beq _0810DCDE + cmp r2, #1 + beq _0810DD02 + b _0810DD3C +_0810DCDE: + ldrh r0, [r1, #0x30] + subs r0, #1 + strh r0, [r1, #0x30] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0810DD3C + movs r2, #0x32 + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _0810DCFA + adds r0, r1, #0 + bl DestroyAnimSprite + b _0810DD3C +_0810DCFA: + ldrh r0, [r1, #0x2e] + adds r0, #1 + strh r0, [r1, #0x2e] + b _0810DD3C +_0810DD02: + ldrh r0, [r1, #0x30] + adds r0, #1 + strh r0, [r1, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _0810DD2A + movs r0, #0 + strh r0, [r1, #0x30] + ldrh r0, [r1, #0x34] + adds r0, #1 + strh r0, [r1, #0x34] + ands r0, r2 + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0810DD26 + movs r0, #2 + b _0810DD28 +_0810DD26: + ldr r0, _0810DD40 +_0810DD28: + strh r0, [r1, #0x24] +_0810DD2A: + ldrh r0, [r1, #0x32] + subs r0, #1 + strh r0, [r1, #0x32] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0810DD3C + adds r0, r1, #0 + bl DestroyAnimSprite +_0810DD3C: + pop {r0} + bx r0 + .align 2, 0 +_0810DD40: .4byte 0x0000FFFE + thumb_func_end sub_0810DCCC + + thumb_func_start sub_0810DD44 +sub_0810DD44: @ 0x0810DD44 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, _0810DD68 + movs r1, #0 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _0810DD70 + ldr r4, _0810DD6C + ldrb r0, [r4] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r2, [r6, #4] + adds r0, r0, r2 + b _0810DD82 + .align 2, 0 +_0810DD68: .4byte 0x020380BE +_0810DD6C: .4byte 0x020380D6 +_0810DD70: + ldr r4, _0810DDCC + ldrb r0, [r4] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r6, #4] + adds r0, r0, r1 +_0810DD82: + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r6, [r6, #6] + adds r0, r0, r6 + strh r0, [r5, #0x22] + ldrh r2, [r5, #4] + lsls r1, r2, #0x16 + lsrs r1, r1, #0x16 + ldr r3, _0810DDD0 + movs r4, #2 + ldrsh r0, [r3, r4] + lsls r0, r0, #4 + adds r1, r1, r0 + ldr r4, _0810DDD4 + adds r0, r4, #0 + ands r1, r0 + ldr r0, _0810DDD8 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, #4] + movs r1, #0 + movs r0, #0 + strh r0, [r5, #0x2e] + movs r2, #2 + ldrsh r0, [r3, r2] + cmp r0, #1 + beq _0810DDF0 + cmp r0, #1 + bgt _0810DDDC + cmp r0, #0 + beq _0810DDE6 + b _0810DE16 + .align 2, 0 +_0810DDCC: .4byte 0x020380D7 +_0810DDD0: .4byte 0x020380BE +_0810DDD4: .4byte 0x000003FF +_0810DDD8: .4byte 0xFFFFFC00 +_0810DDDC: + cmp r0, #2 + beq _0810DE00 + cmp r0, #3 + beq _0810DE10 + b _0810DE16 +_0810DDE6: + ldr r0, _0810DDEC + b _0810DE10 + .align 2, 0 +_0810DDEC: .4byte 0x0000FFFD +_0810DDF0: + movs r0, #3 + strh r0, [r5, #0x3a] + ldr r0, _0810DDFC + strh r0, [r5, #0x3c] + b _0810DE1E + .align 2, 0 +_0810DDFC: .4byte 0x0000FFFD +_0810DE00: + ldr r0, _0810DE0C + strh r0, [r5, #0x3a] + movs r0, #3 + strh r0, [r5, #0x3c] + b _0810DE1E + .align 2, 0 +_0810DE0C: .4byte 0x0000FFFD +_0810DE10: + strh r0, [r5, #0x3a] + strh r0, [r5, #0x3c] + b _0810DE1E +_0810DE16: + adds r0, r5, #0 + bl DestroyAnimSprite + b _0810DE22 +_0810DE1E: + ldr r0, _0810DE28 + str r0, [r5, #0x1c] +_0810DE22: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0810DE28: .4byte 0x0810DE2D + thumb_func_end sub_0810DD44 + + thumb_func_start sub_0810DE2C +sub_0810DE2C: @ 0x0810DE2C + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0x3a] + ldrh r2, [r1, #0x20] + adds r0, r0, r2 + strh r0, [r1, #0x20] + ldrh r0, [r1, #0x3c] + ldrh r2, [r1, #0x22] + adds r0, r0, r2 + strh r0, [r1, #0x22] + ldrh r0, [r1, #0x2e] + adds r0, #1 + strh r0, [r1, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x28 + ble _0810DE54 + adds r0, r1, #0 + bl DestroyAnimSprite +_0810DE54: + pop {r0} + bx r0 + thumb_func_end sub_0810DE2C + + thumb_func_start sub_0810DE58 +sub_0810DE58: @ 0x0810DE58 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0810DEA4 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _0810DEB4 + ldr r4, _0810DEA8 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + ldr r0, _0810DEAC + ldrb r0, [r0] + bl GetBattlerSpriteBGPriority + movs r1, #3 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r5, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #5] + ldr r0, _0810DEB0 + b _0810DED0 + .align 2, 0 +_0810DEA4: .4byte 0x020380BE +_0810DEA8: .4byte 0x02023EAF +_0810DEAC: .4byte 0x020380D6 +_0810DEB0: .4byte 0x020380D7 +_0810DEB4: + ldr r0, _0810DEEC + ldrb r0, [r0] + bl GetBattlerSpriteBGPriority + movs r1, #3 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r5, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #5] + ldr r0, _0810DEF0 +_0810DED0: + ldrb r0, [r0] + strh r0, [r5, #0x3c] + movs r0, #0 + strh r0, [r5, #0x2e] + movs r0, #0xc + strh r0, [r5, #0x30] + movs r0, #8 + strh r0, [r5, #0x32] + ldr r0, _0810DEF4 + str r0, [r5, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810DEEC: .4byte 0x020380D7 +_0810DEF0: .4byte 0x020380D6 +_0810DEF4: .4byte 0x0810DEF9 + thumb_func_end sub_0810DE58 + + thumb_func_start sub_0810DEF8 +sub_0810DEF8: @ 0x0810DEF8 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xb4 + bne _0810DF54 + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x10 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x20] + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x3c] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x22] + strh r0, [r4, #0x34] + ldrh r0, [r4, #0x3c] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl InitAnimLinearTranslation + ldr r1, _0810DF5C + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _0810DF60 + str r0, [r4, #0x1c] +_0810DF54: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810DF5C: .4byte 0x080A6015 +_0810DF60: .4byte 0x080A6861 + thumb_func_end sub_0810DEF8 + + thumb_func_start sub_0810DF64 +sub_0810DF64: @ 0x0810DF64 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0810DFB0 + ldrh r0, [r4] + strh r0, [r5, #0x20] + movs r2, #0x78 + strh r2, [r5, #0x22] + ldrh r0, [r4, #6] + strh r0, [r5, #0x2e] + adds r0, r5, #0 + adds r0, #0x36 + adds r1, r5, #0 + adds r1, #0x38 + lsls r2, r2, #8 + bl StorePointerInVars + ldrh r0, [r4, #2] + strh r0, [r5, #0x3a] + ldrh r2, [r5, #4] + lsls r1, r2, #0x16 + lsrs r1, r1, #0x16 + movs r3, #4 + ldrsh r0, [r4, r3] + lsls r0, r0, #2 + adds r1, r1, r0 + ldr r3, _0810DFB4 + adds r0, r3, #0 + ands r1, r0 + ldr r0, _0810DFB8 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, #4] + ldr r0, _0810DFBC + str r0, [r5, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810DFB0: .4byte 0x020380BE +_0810DFB4: .4byte 0x000003FF +_0810DFB8: .4byte 0xFFFFFC00 +_0810DFBC: .4byte 0x0810DFC1 + thumb_func_end sub_0810DF64 + + thumb_func_start sub_0810DFC0 +sub_0810DFC0: @ 0x0810DFC0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + movs r1, #0x2e + ldrsh r0, [r7, r1] + cmp r0, #0 + beq _0810E012 + movs r2, #0x36 + ldrsh r0, [r7, r2] + movs r2, #0x38 + ldrsh r1, [r7, r2] + bl LoadPointerFromVars + adds r4, r0, #0 + movs r1, #0x3a + ldrsh r0, [r7, r1] + subs r4, r4, r0 + adds r0, r7, #0 + adds r0, #0x36 + adds r1, r7, #0 + adds r1, #0x38 + adds r2, r4, #0 + bl StorePointerInVars + asrs r4, r4, #8 + strh r4, [r7, #0x22] + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + movs r0, #8 + rsbs r0, r0, #0 + cmp r4, r0 + bge _0810E00A + adds r0, r7, #0 + bl DestroyAnimSprite + b _0810E068 +_0810E00A: + ldrh r0, [r7, #0x2e] + subs r0, #1 + strh r0, [r7, #0x2e] + b _0810E068 +_0810E012: + ldr r4, _0810E074 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r2, _0810E078 + mov r8, r2 + ldrb r0, [r2] + movs r1, #2 + bl GetBattlerSpriteCoord + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r1, r8 + ldrb r0, [r1] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + subs r4, r4, r6 + strh r4, [r7, #0x2e] + lsrs r0, r0, #0x18 + subs r0, r0, r5 + strh r0, [r7, #0x30] + ldrh r0, [r7, #0x20] + lsls r0, r0, #4 + strh r0, [r7, #0x32] + ldrh r0, [r7, #0x22] + lsls r0, r0, #4 + strh r0, [r7, #0x34] + ldr r0, _0810E07C + str r0, [r7, #0x1c] +_0810E068: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0810E074: .4byte 0x020380D6 +_0810E078: .4byte 0x020380D7 +_0810E07C: .4byte 0x0810E081 + thumb_func_end sub_0810DFC0 + + thumb_func_start sub_0810E080 +sub_0810E080: @ 0x0810E080 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x2e] + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] + ldrh r1, [r2, #0x30] + ldrh r3, [r2, #0x34] + adds r1, r1, r3 + strh r1, [r2, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + strh r0, [r2, #0x20] + lsls r1, r1, #0x10 + asrs r3, r1, #0x14 + strh r3, [r2, #0x22] + adds r0, #8 + lsls r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _0810E0BA + adds r1, r3, #0 + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + blt _0810E0BA + cmp r1, #0x78 + ble _0810E0C0 +_0810E0BA: + adds r0, r2, #0 + bl DestroyAnimSprite +_0810E0C0: + pop {r0} + bx r0 + thumb_func_end sub_0810E080 + + thumb_func_start sub_0810E0C4 +sub_0810E0C4: @ 0x0810E0C4 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0810E0F8 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _0810E108 + ldr r4, _0810E0FC + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + ldr r0, _0810E100 + ldrb r4, [r0] + ldr r0, _0810E104 + b _0810E10E + .align 2, 0 +_0810E0F8: .4byte 0x020380BE +_0810E0FC: .4byte 0x02023EAF +_0810E100: .4byte 0x020380D7 +_0810E104: .4byte 0x020380D6 +_0810E108: + ldr r0, _0810E140 + ldrb r4, [r0] + ldr r0, _0810E144 +_0810E10E: + ldrb r0, [r0] + bl GetBattlerSpriteBGPriority + movs r1, #3 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r5, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #5] + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810E148 + ldrb r2, [r5, #3] + lsls r1, r2, #0x1a + lsrs r1, r1, #0x1b + movs r0, #8 + orrs r1, r0 + lsls r1, r1, #1 + subs r0, #0x47 + b _0810E162 + .align 2, 0 +_0810E140: .4byte 0x020380D6 +_0810E144: .4byte 0x020380D7 +_0810E148: + adds r0, r4, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810E168 + ldrb r2, [r5, #3] + lsls r1, r2, #0x1a + lsrs r1, r1, #0x1b + movs r0, #0x18 + orrs r1, r0 + lsls r1, r1, #1 + subs r0, #0x57 +_0810E162: + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #3] +_0810E168: + movs r0, #0x10 + strh r0, [r5, #0x2e] + ldrh r0, [r5, #0x20] + strh r0, [r5, #0x30] + adds r0, r4, #0 + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x32] + ldrh r0, [r5, #0x22] + strh r0, [r5, #0x34] + adds r0, r4, #0 + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x36] + adds r0, r5, #0 + bl InitAnimLinearTranslation + ldr r1, _0810E1A8 + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _0810E1AC + str r0, [r5, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810E1A8: .4byte 0x080A34C5 +_0810E1AC: .4byte 0x080A6861 + thumb_func_end sub_0810E0C4 + + thumb_func_start sub_0810E1B0 +sub_0810E1B0: @ 0x0810E1B0 + 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 _0810E1C6 + adds r0, r4, #0 + bl DestroyAnimSprite +_0810E1C6: + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0810E1B0 + + thumb_func_start sub_0810E1D4 +sub_0810E1D4: @ 0x0810E1D4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r4, _0810E250 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + ldr r1, _0810E254 + ldrh r0, [r1, #6] + strh r0, [r5, #0x30] + ldrh r0, [r1] + strh r0, [r5, #0x32] + ldrh r0, [r1, #2] + strh r0, [r5, #0x34] + ldrh r0, [r1, #4] + strh r0, [r5, #0x36] + ldr r0, _0810E258 + ldrb r6, [r0] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810E21E + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_0810E21E: + movs r0, #1 + ands r6, r0 + cmp r6, #0 + beq _0810E232 + ldrh r0, [r5, #0x32] + rsbs r0, r0, #0 + strh r0, [r5, #0x32] + ldrh r0, [r5, #0x30] + adds r0, #1 + strh r0, [r5, #0x30] +_0810E232: + ldrh r1, [r5, #0x30] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl StartSpriteAnim + ldrh r0, [r5, #0x32] + strh r0, [r5, #0x24] + ldrh r0, [r5, #0x34] + strh r0, [r5, #0x26] + ldr r0, _0810E25C + str r0, [r5, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0810E250: .4byte 0x020380D7 +_0810E254: .4byte 0x020380BE +_0810E258: .4byte 0x020380D2 +_0810E25C: .4byte 0x0810E1B1 + thumb_func_end sub_0810E1D4 + + thumb_func_start sub_0810E260 +sub_0810E260: @ 0x0810E260 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0810E278 + movs r1, #4 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _0810E27C + adds r0, r4, #0 + movs r1, #0 + bl InitSpritePosToAnimAttacker + b _0810E284 + .align 2, 0 +_0810E278: .4byte 0x020380BE +_0810E27C: + adds r0, r4, #0 + movs r1, #0 + bl InitSpritePosToAnimTarget +_0810E284: + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810E298 + adds r0, r4, #0 + movs r1, #2 + bl StartSpriteAnim + b _0810E2AE +_0810E298: + ldr r0, _0810E2C0 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810E2AE + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAnim +_0810E2AE: + ldr r0, _0810E2C4 + str r0, [r4, #0x1c] + ldr r1, _0810E2C8 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810E2C0: .4byte 0x020380D6 +_0810E2C4: .4byte 0x080A60A1 +_0810E2C8: .4byte 0x080A34C5 + thumb_func_end sub_0810E260 + + thumb_func_start sub_0810E2CC +sub_0810E2CC: @ 0x0810E2CC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0810E306 + 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, #2 + bl Sin + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x28 + ble _0810E306 + adds r0, r4, #0 + bl DestroyAnimSprite +_0810E306: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0810E2CC + + thumb_func_start sub_0810E30C +sub_0810E30C: @ 0x0810E30C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _0810E33C + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _0810E344 + cmp r0, #1 + bgt _0810E35E + cmp r0, #0 + bne _0810E35E + movs r0, #0 + bl sub_080A6674 + ldr r0, _0810E340 + ldrh r0, [r0] + strh r0, [r4, #0x18] + b _0810E356 + .align 2, 0 +_0810E33C: .4byte 0x03005B60 +_0810E340: .4byte 0x020380BE +_0810E344: + ldrh r0, [r4, #0x18] + subs r0, #1 + strh r0, [r4, #0x18] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0810E36A +_0810E356: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _0810E36A +_0810E35E: + movs r2, #0xa0 + lsls r2, r2, #3 + adds r0, r2, #0 + ldrh r1, [r4, #0x1a] + adds r0, r0, r1 + strh r0, [r4, #0x1a] +_0810E36A: + movs r2, #0xb0 + lsls r2, r2, #4 + adds r0, r2, #0 + ldrh r1, [r4, #0x1c] + adds r0, r0, r1 + strh r0, [r4, #0x1c] + ldr r0, _0810E398 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810E3A0 + ldr r1, _0810E39C + ldrh r0, [r4, #0x1a] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + adds r7, r1, #0 + b _0810E3B0 + .align 2, 0 +_0810E398: .4byte 0x020380D7 +_0810E39C: .4byte 0x02022AD4 +_0810E3A0: + ldr r2, _0810E3F0 + ldrh r1, [r4, #0x1a] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + ldrh r0, [r2] + subs r0, r0, r1 + strh r0, [r2] + adds r7, r2, #0 +_0810E3B0: + ldr r3, _0810E3F4 + ldrh r2, [r4, #0x1c] + lsls r0, r2, #0x10 + asrs r0, r0, #0x18 + ldrh r1, [r3] + adds r0, 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, _0810E3F8 + movs r2, #0xe + ldrsh r1, [r0, r2] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _0810E3E8 + strh r5, [r7] + strh r5, [r3] + movs r0, #1 + bl sub_080A6674 + adds r0, r6, #0 + bl DestroyAnimVisualTask +_0810E3E8: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0810E3F0: .4byte 0x02022AD4 +_0810E3F4: .4byte 0x02022AD6 +_0810E3F8: .4byte 0x020380BE + thumb_func_end sub_0810E30C + diff --git a/asm/fire.s b/asm/fire.s new file mode 100644 index 0000000..de8bf16 --- /dev/null +++ b/asm/fire.s @@ -0,0 +1,2501 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_08109718 +sub_08109718: @ 0x08109718 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0810974C + ldrh r0, [r0] + strh r0, [r4, #0x2e] + movs r0, #0x3c + strh r0, [r4, #0x30] + movs r0, #9 + strh r0, [r4, #0x32] + movs r0, #0x1e + strh r0, [r4, #0x34] + movs r0, #0xfe + lsls r0, r0, #8 + strh r0, [r4, #0x36] + ldr r1, _08109750 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + ldr r1, _08109754 + str r1, [r4, #0x1c] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810974C: .4byte 0x020380BE +_08109750: .4byte 0x080A34C5 +_08109754: .4byte 0x080A5C15 + thumb_func_end sub_08109718 + + thumb_func_start sub_08109758 +sub_08109758: @ 0x08109758 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08109790 + movs r0, #0 + ldrsh r1, [r5, r0] + adds r0, r4, #0 + bl SetAnimSpriteInitialXOffset + ldrh r0, [r5, #2] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] + ldrh r0, [r5, #8] + strh r0, [r4, #0x2e] + ldrh r0, [r5, #4] + strh r0, [r4, #0x30] + ldrh r0, [r5, #6] + strh r0, [r4, #0x32] + ldr r0, _08109794 + str r0, [r4, #0x1c] + ldr r1, _08109798 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08109790: .4byte 0x020380BE +_08109794: .4byte 0x080A5E35 +_08109798: .4byte 0x080A34C5 + thumb_func_end sub_08109758 + + thumb_func_start sub_0810979C +sub_0810979C: @ 0x0810979C + push {r4, lr} + adds r4, r0, #0 + bl SetSpriteCoordsToAnimAttackerCoords + ldr r0, _081097D0 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081097D8 + ldr r2, _081097D4 + ldrh r0, [r4, #0x20] + ldrh r1, [r2] + subs r0, r0, r1 + strh r0, [r4, #0x20] + ldrh r0, [r2, #2] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] + ldrh r0, [r2, #8] + rsbs r0, r0, #0 + strh r0, [r4, #0x32] + adds r1, r2, #0 + b _081097EE + .align 2, 0 +_081097D0: .4byte 0x020380D6 +_081097D4: .4byte 0x020380BE +_081097D8: + ldr r1, _08109804 + ldrh r0, [r1] + ldrh r2, [r4, #0x20] + adds r0, r0, r2 + strh r0, [r4, #0x20] + ldrh r0, [r1, #2] + ldrh r2, [r4, #0x22] + adds r0, r0, r2 + strh r0, [r4, #0x22] + ldrh r0, [r1, #8] + strh r0, [r4, #0x32] +_081097EE: + ldrh r0, [r1, #4] + strh r0, [r4, #0x30] + ldrh r0, [r1, #6] + strh r0, [r4, #0x36] + ldrh r0, [r1, #0xa] + strh r0, [r4, #0x34] + ldr r0, _08109808 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08109804: .4byte 0x020380BE +_08109808: .4byte 0x08109879 + thumb_func_end sub_0810979C + + thumb_func_start sub_0810980C +sub_0810980C: @ 0x0810980C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08109838 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08109840 + ldr r2, _0810983C + ldrh r0, [r4, #0x20] + ldrh r1, [r2] + subs r0, r0, r1 + strh r0, [r4, #0x20] + ldrh r0, [r2, #2] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] + ldrh r0, [r2, #8] + strh r0, [r4, #0x32] + adds r1, r2, #0 + b _08109858 + .align 2, 0 +_08109838: .4byte 0x020380D6 +_0810983C: .4byte 0x020380BE +_08109840: + ldr r1, _08109870 + ldrh r0, [r1] + ldrh r2, [r4, #0x20] + adds r0, r0, r2 + strh r0, [r4, #0x20] + ldrh r0, [r1, #2] + ldrh r2, [r4, #0x22] + adds r0, r0, r2 + strh r0, [r4, #0x22] + ldrh r0, [r1, #8] + rsbs r0, r0, #0 + strh r0, [r4, #0x32] +_08109858: + ldrh r0, [r1, #4] + strh r0, [r4, #0x30] + ldrh r0, [r1, #6] + strh r0, [r4, #0x36] + ldrh r0, [r1, #0xa] + strh r0, [r4, #0x34] + ldr r0, _08109874 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08109870: .4byte 0x020380BE +_08109874: .4byte 0x08109879 + thumb_func_end sub_0810980C + + thumb_func_start sub_08109878 +sub_08109878: @ 0x08109878 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x2e] + adds r0, #1 + strh r0, [r2, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r3, #0x36 + ldrsh r1, [r2, r3] + cmp r0, r1 + bge _0810989E + ldrh r0, [r2, #0x32] + ldrh r1, [r2, #0x24] + adds r0, r0, r1 + strh r0, [r2, #0x24] + ldrh r0, [r2, #0x34] + ldrh r3, [r2, #0x26] + adds r0, r0, r3 + strh r0, [r2, #0x26] +_0810989E: + movs r0, #0x2e + ldrsh r1, [r2, r0] + movs r3, #0x30 + ldrsh r0, [r2, r3] + cmp r1, r0 + bne _081098B0 + adds r0, r2, #0 + bl DestroySpriteAndMatrix +_081098B0: + pop {r0} + bx r0 + thumb_func_end sub_08109878 + + thumb_func_start sub_081098B4 +sub_081098B4: @ 0x081098B4 + push {r4, lr} + adds r4, r0, #0 + bl SetSpriteCoordsToAnimAttackerCoords + ldr r0, _081098D8 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081098E0 + ldr r0, _081098DC + ldrh r1, [r4, #0x20] + ldrh r2, [r0] + subs r1, r1, r2 + strh r1, [r4, #0x20] + b _081098F2 + .align 2, 0 +_081098D8: .4byte 0x020380D6 +_081098DC: .4byte 0x020380BE +_081098E0: + ldr r0, _08109920 + ldrh r1, [r0] + ldrh r2, [r4, #0x20] + adds r1, r1, r2 + strh r1, [r4, #0x20] + adds r2, r4, #0 + adds r2, #0x43 + movs r1, #8 + strb r1, [r2] +_081098F2: + adds r2, r0, #0 + ldrh r0, [r2, #2] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + movs r1, #0 + strh r0, [r4, #0x22] + ldrh r0, [r2, #4] + strh r0, [r4, #0x2e] + ldrh r0, [r2, #6] + strh r0, [r4, #0x30] + ldrh r0, [r2, #8] + 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, _08109924 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08109920: .4byte 0x020380BE +_08109924: .4byte 0x08109929 + thumb_func_end sub_081098B4 + + thumb_func_start sub_08109928 +sub_08109928: @ 0x08109928 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x34 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _081099B0 + movs r2, #0x38 + ldrsh r1, [r4, r2] + ldr r0, _08109994 + cmp r1, r0 + ble _08109946 + adds r1, r4, #0 + adds r1, #0x43 + movs r0, #1 + strb r0, [r1] +_08109946: + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldrh r1, [r4, #0x38] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + ldrh r2, [r4, #0x30] + adds r1, r1, r2 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl Sin + strh r0, [r4, #0x24] + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldrh r1, [r4, #0x38] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + ldrh r2, [r4, #0x30] + adds r1, r1, r2 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + 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, r0, r2 + strh r0, [r4, #0x38] + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xff + ble _0810999C + ldr r2, _08109998 + b _081099A4 + .align 2, 0 +_08109994: .4byte 0x00002710 +_08109998: .4byte 0xFFFFFF00 +_0810999C: + cmp r0, #0 + bge _081099A8 + movs r2, #0x80 + lsls r2, r2, #1 +_081099A4: + adds r0, r1, r2 + strh r0, [r4, #0x2e] +_081099A8: + ldrh r0, [r4, #0x34] + subs r0, #1 + strh r0, [r4, #0x34] + b _081099B6 +_081099B0: + adds r0, r4, #0 + bl DestroySpriteAndMatrix +_081099B6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08109928 + + thumb_func_start sub_081099BC +sub_081099BC: @ 0x081099BC + 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, _081099E0 + str r1, [r0, #0x1c] + ldr r1, _081099E4 + bl StoreSpriteCallbackInData6 + pop {r0} + bx r0 + .align 2, 0 +_081099E0: .4byte 0x080A67B5 +_081099E4: .4byte 0x080A34C5 + thumb_func_end sub_081099BC + + thumb_func_start AnimEmberFlare +AnimEmberFlare: @ 0x081099E8 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r5, _08109A40 + ldrb r0, [r5] + bl GetBattlerSide + adds r4, r0, #0 + ldr r0, _08109A44 + ldrb r0, [r0] + bl GetBattlerSide + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + bne _08109A2E + movs r0, #2 + bl GetBattlerAtPosition + ldrb r1, [r5] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r1, r0 + beq _08109A26 + movs r0, #3 + bl GetBattlerAtPosition + ldrb r1, [r5] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r1, r0 + bne _08109A2E +_08109A26: + ldr r1, _08109A48 + ldrh r0, [r1, #4] + rsbs r0, r0, #0 + strh r0, [r1, #4] +_08109A2E: + ldr r1, _08109A4C + str r1, [r6, #0x1c] + adds r0, r6, #0 + bl _call_via_r1 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08109A40: .4byte 0x020380D6 +_08109A44: .4byte 0x020380D7 +_08109A48: .4byte 0x020380BE +_08109A4C: .4byte 0x080A7201 + thumb_func_end AnimEmberFlare + + thumb_func_start sub_08109A50 +sub_08109A50: @ 0x08109A50 + ldr r2, _08109A64 + ldrh r1, [r2] + rsbs r1, r1, #0 + strh r1, [r2] + ldrh r1, [r2, #4] + rsbs r1, r1, #0 + strh r1, [r2, #4] + ldr r1, _08109A68 + str r1, [r0, #0x1c] + bx lr + .align 2, 0 +_08109A64: .4byte 0x020380BE +_08109A68: .4byte 0x080A7201 + thumb_func_end sub_08109A50 + + thumb_func_start AnimFireRing +AnimFireRing: @ 0x08109A6C + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldr r0, _08109A8C + ldrh r0, [r0, #4] + movs r1, #0 + strh r0, [r4, #0x3c] + strh r1, [r4, #0x2e] + ldr r0, _08109A90 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08109A8C: .4byte 0x020380BE +_08109A90: .4byte 0x08109A95 + thumb_func_end AnimFireRing + + thumb_func_start AnimFireRingStep1 +AnimFireRingStep1: @ 0x08109A94 + push {r4, r5, lr} + adds r5, r0, #0 + bl UpdateFireRingCircleOffset + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x12 + bne _08109ADE + movs r0, #0x19 + strh r0, [r5, #0x2e] + ldrh r0, [r5, #0x20] + strh r0, [r5, #0x30] + ldr r4, _08109AE4 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x32] + ldrh r0, [r5, #0x22] + strh r0, [r5, #0x34] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x36] + adds r0, r5, #0 + bl InitAnimLinearTranslation + ldr r0, _08109AE8 + str r0, [r5, #0x1c] +_08109ADE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08109AE4: .4byte 0x020380D7 +_08109AE8: .4byte 0x08109AED + thumb_func_end AnimFireRingStep1 + + thumb_func_start AnimFireRingStep2 +AnimFireRingStep2: @ 0x08109AEC + push {r4, r5, r6, lr} + adds r6, r0, #0 + bl AnimTranslateLinear + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08109B34 + movs r4, #0 + strh r4, [r6, #0x2e] + ldr r5, _08109B2C + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r6, #0x20] + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r6, #0x22] + strh r4, [r6, #0x26] + strh r4, [r6, #0x24] + ldr r1, _08109B30 + str r1, [r6, #0x1c] + adds r0, r6, #0 + bl _call_via_r1 + b _08109B5E + .align 2, 0 +_08109B2C: .4byte 0x020380D7 +_08109B30: .4byte 0x08109B65 +_08109B34: + movs r1, #0x3c + ldrsh r0, [r6, r1] + movs r1, #0x1c + bl Sin + ldrh r1, [r6, #0x24] + adds r0, r0, r1 + strh r0, [r6, #0x24] + movs r1, #0x3c + ldrsh r0, [r6, r1] + movs r1, #0x1c + bl Cos + ldrh r1, [r6, #0x26] + adds r0, r0, r1 + strh r0, [r6, #0x26] + ldrh r0, [r6, #0x3c] + adds r0, #0x14 + movs r1, #0xff + ands r0, r1 + strh r0, [r6, #0x3c] +_08109B5E: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end AnimFireRingStep2 + + thumb_func_start AnimFireRingStep3 +AnimFireRingStep3: @ 0x08109B64 + push {r4, lr} + adds r4, r0, #0 + bl UpdateFireRingCircleOffset + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1f + bne _08109B80 + adds r0, r4, #0 + bl DestroyAnimSprite +_08109B80: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AnimFireRingStep3 + + thumb_func_start UpdateFireRingCircleOffset +UpdateFireRingCircleOffset: @ 0x08109B88 + 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 UpdateFireRingCircleOffset + + thumb_func_start AnimFireCross +AnimFireCross: @ 0x08109BB4 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08109BE8 + ldrh r0, [r1] + ldrh r2, [r4, #0x20] + adds r0, r0, r2 + strh r0, [r4, #0x20] + ldrh r0, [r1, #2] + ldrh r2, [r4, #0x22] + adds r0, r0, r2 + strh r0, [r4, #0x22] + ldrh r0, [r1, #4] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #6] + strh r0, [r4, #0x30] + ldrh r0, [r1, #8] + strh r0, [r4, #0x32] + ldr r1, _08109BEC + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _08109BF0 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08109BE8: .4byte 0x020380BE +_08109BEC: .4byte 0x080A34C5 +_08109BF0: .4byte 0x080A5E05 + thumb_func_end AnimFireCross + + thumb_func_start sub_08109BF4 +sub_08109BF4: @ 0x08109BF4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldr r1, _08109C28 + ldrh r0, [r1, #4] + strh r0, [r4, #0x30] + ldrh r0, [r1, #6] + strh r0, [r4, #0x2e] + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08109C2C + str r0, [r4, #0x1c] + ldr r1, _08109C30 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08109C28: .4byte 0x020380BE +_08109C2C: .4byte 0x080A5D79 +_08109C30: .4byte 0x08109C35 + thumb_func_end sub_08109BF4 + + thumb_func_start sub_08109C34 +sub_08109C34: @ 0x08109C34 + push {lr} + adds r3, r0, #0 + adds r3, #0x3e + ldrb r2, [r3] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r3] + ldrh r1, [r0, #0x30] + movs r2, #0 + strh r1, [r0, #0x2e] + strh r2, [r0, #0x30] + ldr r1, _08109C58 + str r1, [r0, #0x1c] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_08109C58: .4byte 0x08109C5D + thumb_func_end sub_08109C34 + + thumb_func_start sub_08109C5C +sub_08109C5C: @ 0x08109C5C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x30 + ldrsh r0, [r4, r1] + ldrh r1, [r4, #0x32] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + bl Sin + strh r0, [r4, #0x24] + movs r1, #0x30 + ldrsh r0, [r4, r1] + ldrh r1, [r4, #0x32] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + 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, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _08109CA8 + adds r0, r4, #0 + bl DestroyAnimSprite +_08109CA8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08109C5C + + thumb_func_start sub_08109CB0 +sub_08109CB0: @ 0x08109CB0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _08109D10 + adds r4, r4, r0 + movs r0, #0 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r5, #0 + strh r0, [r4, #0x26] + strh r5, [r4, #8] + strh r5, [r4, #0xa] + strh r5, [r4, #0xc] + strh r5, [r4, #0xe] + ldr r2, _08109D14 + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0, #0x22] + strh r0, [r4, #0x10] + ldr r0, _08109D18 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x12] + strh r5, [r4, #0x14] + ldrh r0, [r4, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl PrepareBattlerSpriteForRotScale + ldr r0, _08109D1C + str r0, [r4] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08109D10: .4byte 0x03005B60 +_08109D14: .4byte 0x020205AC +_08109D18: .4byte 0x020380D6 +_08109D1C: .4byte 0x08109D21 + thumb_func_end sub_08109CB0 + + thumb_func_start sub_08109D20 +sub_08109D20: @ 0x08109D20 + push {r4, r5, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _08109D48 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #6 + bls _08109D3C + b _08109FFA +_08109D3C: + lsls r0, r0, #2 + ldr r1, _08109D4C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08109D48: .4byte 0x03005B60 +_08109D4C: .4byte 0x08109D50 +_08109D50: @ jump table + .4byte _08109D6C @ case 0 + .4byte _08109D92 @ case 1 + .4byte _08109E44 @ case 2 + .4byte _08109EA4 @ case 3 + .4byte _08109EC2 @ case 4 + .4byte _08109F98 @ case 5 + .4byte _08109FEC @ case 6 +_08109D6C: + ldrh r1, [r4, #0x26] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r3, #0x80 + lsls r3, r3, #1 + movs r0, #0xe0 + str r0, [sp] + movs r0, #0x80 + lsls r0, r0, #2 + str r0, [sp, #4] + movs r0, #0x20 + str r0, [sp, #8] + adds r0, r4, #0 + adds r2, r3, #0 + bl sub_080A7924 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_08109D92: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _08109DDA + movs r0, #0 + strh r0, [r4, #0xa] + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08109DC8 + ldr r2, _08109DC4 + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #3 + b _08109DD8 + .align 2, 0 +_08109DC4: .4byte 0x020205AC +_08109DC8: + ldr r2, _08109E3C + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, _08109E40 +_08109DD8: + strh r1, [r0, #0x24] +_08109DDA: + movs r1, #0x12 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _08109E08 + ldrh r0, [r4, #0xe] + adds r0, #1 + strh r0, [r4, #0xe] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _08109E08 + movs r0, #0 + strh r0, [r4, #0xe] + ldr r2, _08109E3C + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x22] + adds r1, #1 + strh r1, [r0, #0x22] +_08109E08: + adds r0, r4, #0 + bl sub_080A7990 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + beq _08109E18 + b _08109FFA +_08109E18: + ldrh r0, [r4, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl SetBattlerSpriteYOffsetFromYScale + ldr r2, _08109E3C + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r5, [r0, #0x24] + strh r5, [r4, #0xa] + strh r5, [r4, #0xc] + strh r5, [r4, #0xe] + b _08109FE0 + .align 2, 0 +_08109E3C: .4byte 0x020205AC +_08109E40: .4byte 0x0000FFFD +_08109E44: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + bgt _08109E54 + b _08109FFA +_08109E54: + movs r1, #0x12 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _08109E7E + ldrh r1, [r4, #0x26] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r3, #0x80 + lsls r3, r3, #2 + movs r0, #0xc0 + lsls r0, r0, #1 + str r0, [sp] + movs r0, #0xf0 + str r0, [sp, #4] + movs r0, #6 + str r0, [sp, #8] + adds r0, r4, #0 + movs r2, #0xe0 + bl sub_080A7924 + b _08109E9E +_08109E7E: + ldrh r1, [r4, #0x26] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r3, #0x80 + lsls r3, r3, #2 + movs r0, #0xc0 + lsls r0, r0, #1 + str r0, [sp] + movs r0, #0xc0 + str r0, [sp, #4] + movs r0, #6 + str r0, [sp, #8] + adds r0, r4, #0 + movs r2, #0xe0 + bl sub_080A7924 +_08109E9E: + movs r0, #0 + strh r0, [r4, #0xa] + b _08109FE0 +_08109EA4: + adds r0, r4, #0 + bl sub_080A7990 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08109EB2 + b _08109FFA +_08109EB2: + ldrh r0, [r4, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r5, #0 + movs r2, #6 + bl sub_0810A004 + b _08109FE0 +_08109EC2: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _08109F10 + movs r0, #0 + strh r0, [r4, #0xa] + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08109EFC + ldr r2, _08109EF8 + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x26] + adds r1, #3 + b _08109F0E + .align 2, 0 +_08109EF8: .4byte 0x020205AC +_08109EFC: + ldr r2, _08109F48 + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x26] + subs r1, #3 +_08109F0E: + strh r1, [r0, #0x26] +_08109F10: + ldrh r0, [r4, #0xe] + adds r0, #1 + strh r0, [r4, #0xe] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x18 + ble _08109FFA + movs r1, #0x12 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _08109F4C + ldrh r1, [r4, #0x26] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r2, #0xc0 + lsls r2, r2, #1 + movs r0, #0x80 + lsls r0, r0, #1 + str r0, [sp] + str r0, [sp, #4] + movs r0, #8 + str r0, [sp, #8] + adds r0, r4, #0 + movs r3, #0xf0 + bl sub_080A7924 + b _08109F6A + .align 2, 0 +_08109F48: .4byte 0x020205AC +_08109F4C: + ldrh r1, [r4, #0x26] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r2, #0xc0 + lsls r2, r2, #1 + movs r0, #0x80 + lsls r0, r0, #1 + str r0, [sp] + str r0, [sp, #4] + movs r0, #8 + str r0, [sp, #8] + adds r0, r4, #0 + movs r3, #0xc0 + bl sub_080A7924 +_08109F6A: + ldrh r1, [r4, #0xc] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08109F88 + ldr r2, _08109F94 + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x26] + subs r1, #3 + strh r1, [r0, #0x26] +_08109F88: + movs r0, #0 + strh r0, [r4, #0xa] + strh r0, [r4, #0xc] + strh r0, [r4, #0xe] + b _08109FE0 + .align 2, 0 +_08109F94: .4byte 0x020205AC +_08109F98: + movs r1, #0x12 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _08109FB4 + ldr r2, _08109FE8 + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x22] + subs r1, #1 + strh r1, [r0, #0x22] +_08109FB4: + adds r0, r4, #0 + bl sub_080A7990 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _08109FFA + ldr r2, _08109FE8 + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r4, #0x10] + strh r1, [r0, #0x22] + ldrh r0, [r4, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl ResetSpriteRotScale + strh r5, [r4, #0xc] +_08109FE0: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _08109FFA + .align 2, 0 +_08109FE8: .4byte 0x020205AC +_08109FEC: + movs r1, #0x14 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08109FFA + adds r0, r5, #0 + bl DestroyAnimVisualTask +_08109FFA: + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08109D20 + + thumb_func_start sub_0810A004 +sub_0810A004: @ 0x0810A004 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + adds r0, r4, #0 + bl sub_0810A180 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + ldr r1, _0810A054 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r4, [r0, #0x20] + ldr r0, _0810A058 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810A05C + adds r0, r4, #0 + subs r0, #0xc + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r0, #1 + b _0810A066 + .align 2, 0 +_0810A054: .4byte 0x020205AC +_0810A058: .4byte 0x020380D6 +_0810A05C: + adds r0, r4, #0 + adds r0, #0x10 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r0, #0xff +_0810A066: + movs r6, #0 + movs r5, #0 + lsls r4, r4, #0x10 + str r4, [sp, #8] + mov r1, sb + lsls r1, r1, #0x10 + str r1, [sp, #4] + ldr r2, _0810A120 + mov sb, r2 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + str r0, [sp] + mov r3, r8 + lsls r3, r3, #1 + mov sl, r3 +_0810A084: + ldr r0, _0810A124 + ldr r2, [sp, #8] + asrs r1, r2, #0x10 + ldr r3, [sp, #4] + asrs r2, r3, #0x10 + movs r3, #2 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x40 + beq _0810A106 + ldr r1, _0810A128 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r4, r0, r1 + ldrh r2, [r4, #4] + lsls r1, r2, #0x16 + lsrs r1, r1, #0x16 + lsls r0, r5, #2 + adds r0, #0x40 + adds r1, r1, r0 + ldr r3, _0810A12C + adds r0, r3, #0 + ands r1, r0 + ldr r3, _0810A130 + adds r0, r3, #0 + ands r2, r0 + orrs r2, r1 + strh r2, [r4, #4] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #4 + bls _0810A0CE + movs r5, #0 +_0810A0CE: + lsls r2, r6, #2 + mov r1, sb + adds r0, r2, r1 + ldrh r0, [r0] + ldr r3, [sp] + adds r1, r0, #0 + muls r1, r3, r1 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldr r0, _0810A134 + adds r2, r2, r0 + movs r3, #0 + ldrsh r2, [r2, r3] + adds r0, r4, #0 + bl sub_0810A1D4 + strh r7, [r4, #0x3a] + mov r0, r8 + strh r0, [r4, #0x3c] + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + add r0, sl + ldr r1, _0810A138 + adds r0, r0, r1 + ldrh r1, [r0] + adds r1, #1 + strh r1, [r0] +_0810A106: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #6 + bls _0810A084 + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0810A120: .4byte 0x085711B0 +_0810A124: .4byte 0x08571198 +_0810A128: .4byte 0x020205AC +_0810A12C: .4byte 0x000003FF +_0810A130: .4byte 0xFFFFFC00 +_0810A134: .4byte 0x085711B2 +_0810A138: .4byte 0x03005B68 + thumb_func_end sub_0810A004 + + thumb_func_start sub_0810A13C +sub_0810A13C: @ 0x0810A13C + push {r4, lr} + adds r4, r0, #0 + bl sub_0810A1F0 + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0810A176 + ldr r3, _0810A17C + movs r0, #0x3c + ldrsh r1, [r4, r0] + lsls r1, r1, #1 + movs r0, #0x3a + ldrsh r2, [r4, r0] + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r3, #8 + adds r1, r1, r3 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + adds r0, r4, #0 + bl DestroySprite +_0810A176: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810A17C: .4byte 0x03005B60 + thumb_func_end sub_0810A13C + + thumb_func_start sub_0810A180 +sub_0810A180: @ 0x0810A180 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0810A1B8 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r2, [r1, #0x26] + ldrh r0, [r1, #0x22] + adds r2, r2, r0 + adds r1, #0x29 + movs r0, #0 + ldrsb r0, [r1, r0] + adds r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, _0810A1BC + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810A1C0 + lsls r0, r4, #0x10 + movs r1, #0x94 + lsls r1, r1, #0xf + b _0810A1C6 + .align 2, 0 +_0810A1B8: .4byte 0x020205AC +_0810A1BC: .4byte 0x020380D6 +_0810A1C0: + lsls r0, r4, #0x10 + movs r1, #0xb0 + lsls r1, r1, #0xe +_0810A1C6: + adds r0, r0, r1 + lsrs r4, r0, #0x10 + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0810A180 + + thumb_func_start sub_0810A1D4 +sub_0810A1D4: @ 0x0810A1D4 + movs r3, #0 + strh r3, [r0, #0x2e] + strh r3, [r0, #0x30] + ldrh r3, [r0, #0x20] + lsls r3, r3, #3 + strh r3, [r0, #0x32] + ldrh r3, [r0, #0x22] + lsls r3, r3, #3 + strh r3, [r0, #0x34] + lsls r1, r1, #3 + strh r1, [r0, #0x36] + lsls r2, r2, #3 + strh r2, [r0, #0x38] + bx lr + thumb_func_end sub_0810A1D4 + + thumb_func_start sub_0810A1F0 +sub_0810A1F0: @ 0x0810A1F0 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x2e] + adds r0, #1 + strh r0, [r2, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + ble _0810A21A + movs r0, #0 + strh r0, [r2, #0x2e] + ldrh r0, [r2, #0x30] + adds r0, #1 + strh r0, [r2, #0x30] + ldrh r0, [r2, #0x30] + adds r1, r0, #0 + muls r1, r0, r1 + adds r0, r1, #0 + ldrh r3, [r2, #0x34] + adds r0, r0, r3 + strh r0, [r2, #0x34] +_0810A21A: + ldrh r0, [r2, #0x36] + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x13 + strh r0, [r2, #0x20] + ldrh r1, [r2, #0x38] + ldrh r3, [r2, #0x34] + adds r1, r1, r3 + strh r1, [r2, #0x34] + lsls r1, r1, #0x10 + asrs r3, r1, #0x13 + strh r3, [r2, #0x22] + adds r0, #8 + lsls r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _0810A250 + adds r1, r3, #0 + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + blt _0810A250 + cmp r1, #0x78 + ble _0810A25C +_0810A250: + adds r0, r2, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_0810A25C: + pop {r0} + bx r0 + thumb_func_end sub_0810A1F0 + + thumb_func_start sub_0810A260 +sub_0810A260: @ 0x0810A260 + push {r4, r5, lr} + ldr r3, _0810A2A4 + ldrh r1, [r3] + movs r2, #0 + strh r1, [r0, #0x20] + ldrh r1, [r3, #2] + strh r1, [r0, #0x22] + strh r2, [r0, #0x2e] + strh r2, [r0, #0x30] + strh r2, [r0, #0x32] + ldrh r1, [r3, #4] + strh r1, [r0, #0x3a] + ldrh r1, [r3, #6] + strh r1, [r0, #0x3c] + ldrh r4, [r0, #4] + lsls r2, r4, #0x16 + lsrs r2, r2, #0x16 + movs r5, #8 + ldrsh r1, [r3, r5] + lsls r1, r1, #4 + adds r2, r2, r1 + ldr r3, _0810A2A8 + adds r1, r3, #0 + ands r2, r1 + ldr r1, _0810A2AC + ands r1, r4 + orrs r1, r2 + strh r1, [r0, #4] + ldr r1, _0810A2B0 + str r1, [r0, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810A2A4: .4byte 0x020380BE +_0810A2A8: .4byte 0x000003FF +_0810A2AC: .4byte 0xFFFFFC00 +_0810A2B0: .4byte 0x0810A2B5 + thumb_func_end sub_0810A260 + + thumb_func_start sub_0810A2B4 +sub_0810A2B4: @ 0x0810A2B4 + push {r4, lr} + adds r2, r0, #0 + movs r1, #0x2e + ldrsh r0, [r2, r1] + cmp r0, #1 + beq _0810A2E6 + cmp r0, #1 + bgt _0810A2CA + cmp r0, #0 + beq _0810A2D0 + b _0810A344 +_0810A2CA: + cmp r0, #2 + beq _0810A304 + b _0810A344 +_0810A2D0: + ldrh r1, [r2, #0x3a] + movs r3, #0x3a + ldrsh r0, [r2, r3] + cmp r0, #0 + beq _0810A2E0 + subs r0, r1, #1 + strh r0, [r2, #0x3a] + b _0810A344 +_0810A2E0: + ldrh r0, [r2, #0x2e] + adds r0, #1 + strh r0, [r2, #0x2e] +_0810A2E6: + ldrh r0, [r2, #0x22] + adds r0, #8 + strh r0, [r2, #0x22] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrh r3, [r2, #0x3c] + movs r4, #0x3c + ldrsh r1, [r2, r4] + cmp r0, r1 + blt _0810A344 + strh r3, [r2, #0x22] + ldrh r0, [r2, #0x2e] + adds r0, #1 + strh r0, [r2, #0x2e] + b _0810A344 +_0810A304: + ldrh r0, [r2, #0x30] + adds r0, #1 + strh r0, [r2, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _0810A330 + movs r0, #0 + strh r0, [r2, #0x30] + ldrh r0, [r2, #0x32] + adds r0, #1 + strh r0, [r2, #0x32] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0810A32C + ldr r0, _0810A328 + b _0810A32E + .align 2, 0 +_0810A328: .4byte 0x0000FFFD +_0810A32C: + movs r0, #3 +_0810A32E: + strh r0, [r2, #0x26] +_0810A330: + ldrh r0, [r2, #0x34] + adds r0, #1 + strh r0, [r2, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x10 + ble _0810A344 + adds r0, r2, #0 + bl DestroyAnimSprite +_0810A344: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0810A2B4 + + thumb_func_start sub_0810A34C +sub_0810A34C: @ 0x0810A34C + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + cmp r0, #1 + beq _0810A3C0 + cmp r0, #1 + bgt _0810A362 + cmp r0, #0 + beq _0810A368 + b _0810A48E +_0810A362: + cmp r0, #2 + beq _0810A41E + b _0810A48E +_0810A368: + adds r0, r5, #0 + movs r1, #0 + bl InitSpritePosToAnimAttacker + ldr r4, _0810A390 + ldrb r1, [r4, #4] + adds r0, r5, #0 + bl StartSpriteAnim + ldrh r0, [r4, #4] + strh r0, [r5, #0x3c] + ldr r0, _0810A394 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810A398 + movs r0, #4 + b _0810A39A + .align 2, 0 +_0810A390: .4byte 0x020380BE +_0810A394: .4byte 0x020380D6 +_0810A398: + ldr r0, _0810A3B8 +_0810A39A: + strh r0, [r5, #0x36] + ldr r0, _0810A3BC + ldrb r0, [r0] + bl GetBattlerSpriteBGPriority + movs r1, #3 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r5, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #5] + b _0810A416 + .align 2, 0 +_0810A3B8: .4byte 0x0000FFFC +_0810A3BC: .4byte 0x020380D7 +_0810A3C0: + ldrh r0, [r5, #0x30] + adds r0, #0xc0 + strh r0, [r5, #0x30] + ldr r0, _0810A3E0 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810A3E4 + ldrh r0, [r5, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + rsbs r0, r0, #0 + b _0810A3EA + .align 2, 0 +_0810A3E0: .4byte 0x020380D6 +_0810A3E4: + ldrh r0, [r5, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 +_0810A3EA: + 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, #4 + movs r1, #0xff + ands r0, r1 + strh r0, [r5, #0x32] + ldrh r0, [r5, #0x34] + adds r0, #1 + strh r0, [r5, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + bne _0810A48E + movs r0, #0 + strh r0, [r5, #0x34] +_0810A416: + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] + b _0810A48E +_0810A41E: + 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, #4 + movs r1, #0xff + ands r0, r1 + strh r0, [r5, #0x32] + ldrh r0, [r5, #0x34] + adds r0, #1 + strh r0, [r5, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1f + bne _0810A48E + ldrh r0, [r5, #0x20] + adds r1, r2, r0 + strh r1, [r5, #0x20] + ldrh r0, [r5, #0x26] + ldrh r2, [r5, #0x22] + adds r0, r0, r2 + strh r0, [r5, #0x22] + strh r3, [r5, #0x26] + strh r3, [r5, #0x24] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r5, #0x2e] + strh r1, [r5, #0x30] + ldr r4, _0810A494 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x32] + ldrh r0, [r5, #0x22] + strh r0, [r5, #0x34] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x36] + adds r0, r5, #0 + bl sub_080A689C + ldr r0, _0810A498 + str r0, [r5, #0x1c] +_0810A48E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810A494: .4byte 0x020380D7 +_0810A498: .4byte 0x0810A49D + thumb_func_end sub_0810A34C + + thumb_func_start sub_0810A49C +sub_0810A49C: @ 0x0810A49C + push {r4, lr} + adds r4, r0, #0 + bl AnimTranslateLinear + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810A4F4 + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r1, #0x10 + bl Sin + ldrh r1, [r4, #0x24] + adds r0, r0, r1 + strh r0, [r4, #0x24] + ldrh r2, [r4, #0x38] + adds r0, r2, #4 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x38] + ldrh r0, [r4, #0x38] + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + cmp r2, #0 + beq _0810A4D2 + cmp r2, #0xc4 + ble _0810A4FA +_0810A4D2: + lsls r0, r0, #0x10 + cmp r0, #0 + ble _0810A4FA + movs r1, #0x3c + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0810A4FA + ldr r0, _0810A4F0 + movs r1, #0 + ldrsb r1, [r0, r1] + movs r0, #0x90 + bl PlaySE12WithPanning + b _0810A4FA + .align 2, 0 +_0810A4F0: .4byte 0x020380E0 +_0810A4F4: + adds r0, r4, #0 + bl DestroyAnimSprite +_0810A4FA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0810A49C + + thumb_func_start sub_0810A500 +sub_0810A500: @ 0x0810A500 + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x2e] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _0810A518 + ldr r0, _0810A584 + ldrh r0, [r0] + strh r0, [r4, #0x30] + adds r0, r1, #1 + strh r0, [r4, #0x2e] +_0810A518: + movs r0, #0xc0 + lsls r0, r0, #1 + adds r1, r0, #0 + ldrh r2, [r4, #0x34] + adds r1, 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, r1, #0x10 + asrs r1, r1, #0x18 + bl Sin + strh r0, [r4, #0x24] + movs r1, #0x30 + ldrsh r0, [r4, r1] + ldrh r1, [r4, #0x36] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + bl Cos + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x30] + adds r0, #7 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x30] + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810A5B4 + ldrh r0, [r4, #0x30] + subs r0, #0x40 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x83 + bls _0810A58C + ldr r0, _0810A588 + ldrb r0, [r0] + bl GetBattlerSpriteBGPriority + movs r1, #3 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r4, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #5] + b _0810A5D0 + .align 2, 0 +_0810A584: .4byte 0x020380BE +_0810A588: .4byte 0x020380D7 +_0810A58C: + ldr r0, _0810A5B0 + ldrb r0, [r0] + bl GetBattlerSpriteBGPriority + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #1 + movs r1, #3 + ands r0, r1 + lsls r0, r0, #2 + ldrb r2, [r4, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #5] + b _0810A5D0 + .align 2, 0 +_0810A5B0: .4byte 0x020380D7 +_0810A5B4: + ldrh r0, [r4, #0x30] + subs r0, #0x40 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x83 + bls _0810A5C8 + adds r1, r4, #0 + adds r1, #0x43 + movs r0, #0x1d + b _0810A5CE +_0810A5C8: + adds r1, r4, #0 + adds r1, #0x43 + movs r0, #0x1f +_0810A5CE: + strb r0, [r1] +_0810A5D0: + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x14 + ble _0810A5F8 + adds r3, r4, #0 + adds r3, #0x3e + ldrb r2, [r3] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_0810A5F8: + movs r2, #0x32 + ldrsh r0, [r4, r2] + cmp r0, #0x1e + bne _0810A606 + adds r0, r4, #0 + bl DestroyAnimSprite +_0810A606: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0810A500 + + thumb_func_start sub_0810A60C +sub_0810A60C: @ 0x0810A60C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _0810A66C + adds r4, r1, r0 + ldr r0, _0810A670 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + movs r2, #1 + rsbs r2, r2, #0 + adds r1, r2, #0 + cmp r0, #0 + bne _0810A632 + movs r1, #1 +_0810A632: + strh r1, [r4, #0x20] + ldr r0, _0810A674 + ldrb r1, [r0] + movs r0, #2 + eors r0, r1 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #1 + strh r0, [r4, #0x22] + movs r0, #1 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x24] + movs r0, #3 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x26] + ldr r0, _0810A678 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810A66C: .4byte 0x03005B60 +_0810A670: .4byte 0x020380D6 +_0810A674: .4byte 0x020380D7 +_0810A678: .4byte 0x0810A67D + thumb_func_end sub_0810A60C + + thumb_func_start sub_0810A67C +sub_0810A67C: @ 0x0810A67C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _0810A6A0 + adds r2, r0, r1 + movs r0, #8 + ldrsh r3, [r2, r0] + cmp r3, #1 + beq _0810A744 + cmp r3, #1 + bgt _0810A6A4 + cmp r3, #0 + beq _0810A6B2 + b _0810A8A4 + .align 2, 0 +_0810A6A0: .4byte 0x03005B60 +_0810A6A4: + cmp r3, #2 + bne _0810A6AA + b _0810A7CC +_0810A6AA: + cmp r3, #3 + bne _0810A6B0 + b _0810A860 +_0810A6B0: + b _0810A8A4 +_0810A6B2: + movs r1, #0x20 + ldrsh r0, [r2, r1] + lsls r0, r0, #1 + ldrh r5, [r2, #0x1c] + adds r0, r0, r5 + strh r0, [r2, #0x1c] + ldrh r0, [r2, #0xa] + adds r0, #1 + strh r0, [r2, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _0810A6E4 + strh r3, [r2, #0xa] + ldrh r0, [r2, #0xc] + adds r0, #1 + strh r0, [r2, #0xc] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0810A6E0 + movs r0, #2 + b _0810A6E2 +_0810A6E0: + ldr r0, _0810A73C +_0810A6E2: + strh r0, [r2, #0x1e] +_0810A6E4: + movs r1, #0 + strh r1, [r2, #0xe] + movs r7, #0x22 + ldrsh r0, [r2, r7] + cmp r1, r0 + bge _0810A726 + ldr r4, _0810A740 + adds r3, r2, #0 + adds r3, #8 +_0810A6F6: + movs r1, #0xe + ldrsh r0, [r2, r1] + adds r0, #0xe + lsls r0, r0, #1 + adds r0, r3, r0 + movs r5, #0 + ldrsh r0, [r0, r5] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrh r0, [r2, #0x1e] + ldrh r7, [r2, #0x1c] + adds r0, r0, r7 + strh r0, [r1, #0x24] + ldrh r0, [r2, #0xe] + adds r0, #1 + strh r0, [r2, #0xe] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r5, #0x22 + ldrsh r1, [r2, r5] + cmp r0, r1 + blt _0810A6F6 +_0810A726: + ldrh r0, [r2, #0x1a] + adds r0, #1 + strh r0, [r2, #0x1a] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x10 + beq _0810A736 + b _0810A8A4 +_0810A736: + movs r0, #0 + strh r0, [r2, #0x1a] + b _0810A850 + .align 2, 0 +_0810A73C: .4byte 0x0000FFFE +_0810A740: .4byte 0x020205AC +_0810A744: + ldrh r0, [r2, #0xa] + adds r0, #1 + strh r0, [r2, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _0810A76C + movs r0, #0 + strh r0, [r2, #0xa] + ldrh r0, [r2, #0xc] + adds r0, #1 + strh r0, [r2, #0xc] + ands r0, r3 + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0810A768 + movs r0, #2 + b _0810A76A +_0810A768: + ldr r0, _0810A7C4 +_0810A76A: + strh r0, [r2, #0x1e] +_0810A76C: + movs r1, #0 + strh r1, [r2, #0xe] + movs r7, #0x22 + ldrsh r0, [r2, r7] + cmp r1, r0 + bge _0810A7AE + ldr r4, _0810A7C8 + adds r3, r2, #0 + adds r3, #8 +_0810A77E: + movs r1, #0xe + ldrsh r0, [r2, r1] + adds r0, #0xe + lsls r0, r0, #1 + adds r0, r3, r0 + movs r5, #0 + ldrsh r0, [r0, r5] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrh r0, [r2, #0x1e] + ldrh r7, [r2, #0x1c] + adds r0, r0, r7 + strh r0, [r1, #0x24] + ldrh r0, [r2, #0xe] + adds r0, #1 + strh r0, [r2, #0xe] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r5, #0x22 + ldrsh r1, [r2, r5] + cmp r0, r1 + blt _0810A77E +_0810A7AE: + ldrh r0, [r2, #0x1a] + adds r0, #1 + strh r0, [r2, #0x1a] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x60 + bne _0810A8A4 + movs r0, #0 + strh r0, [r2, #0x1a] + b _0810A850 + .align 2, 0 +_0810A7C4: .4byte 0x0000FFFE +_0810A7C8: .4byte 0x020205AC +_0810A7CC: + movs r7, #0x20 + ldrsh r1, [r2, r7] + lsls r1, r1, #1 + ldrh r0, [r2, #0x1c] + subs r0, r0, r1 + strh r0, [r2, #0x1c] + ldrh r0, [r2, #0xa] + adds r0, #1 + strh r0, [r2, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _0810A800 + movs r0, #0 + strh r0, [r2, #0xa] + ldrh r0, [r2, #0xc] + adds r0, #1 + strh r0, [r2, #0xc] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0810A7FC + strh r3, [r2, #0x1e] + b _0810A800 +_0810A7FC: + ldr r0, _0810A858 + strh r0, [r2, #0x1e] +_0810A800: + movs r1, #0 + strh r1, [r2, #0xe] + movs r3, #0x22 + ldrsh r0, [r2, r3] + cmp r1, r0 + bge _0810A842 + ldr r4, _0810A85C + adds r3, r2, #0 + adds r3, #8 +_0810A812: + movs r5, #0xe + ldrsh r0, [r2, r5] + adds r0, #0xe + lsls r0, r0, #1 + adds r0, r3, r0 + movs r7, #0 + ldrsh r0, [r0, r7] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrh r0, [r2, #0x1e] + ldrh r5, [r2, #0x1c] + adds r0, r0, r5 + strh r0, [r1, #0x24] + ldrh r0, [r2, #0xe] + adds r0, #1 + strh r0, [r2, #0xe] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r7, #0x22 + ldrsh r1, [r2, r7] + cmp r0, r1 + blt _0810A812 +_0810A842: + ldrh r0, [r2, #0x1a] + adds r0, #1 + strh r0, [r2, #0x1a] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x10 + bne _0810A8A4 +_0810A850: + ldrh r0, [r2, #8] + adds r0, #1 + strh r0, [r2, #8] + b _0810A8A4 + .align 2, 0 +_0810A858: .4byte 0x0000FFFE +_0810A85C: .4byte 0x020205AC +_0810A860: + movs r1, #0 + strh r1, [r2, #0xe] + movs r3, #0x22 + ldrsh r0, [r2, r3] + cmp r1, r0 + bge _0810A89E + ldr r6, _0810A8AC + adds r3, r2, #0 + adds r3, #8 + movs r5, #0 +_0810A874: + movs r7, #0xe + ldrsh r0, [r2, r7] + adds r0, #0xe + lsls r0, r0, #1 + adds r0, r3, r0 + movs r7, #0 + ldrsh r1, [r0, r7] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + strh r5, [r0, #0x24] + ldrh r0, [r2, #0xe] + adds r0, #1 + strh r0, [r2, #0xe] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r7, #0x22 + ldrsh r1, [r2, r7] + cmp r0, r1 + blt _0810A874 +_0810A89E: + adds r0, r4, #0 + bl DestroyAnimVisualTask +_0810A8A4: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0810A8AC: .4byte 0x020205AC + thumb_func_end sub_0810A67C + + thumb_func_start AnimTask_BlendBackground +AnimTask_BlendBackground: @ 0x0810A8B0 + push {r4, lr} + sub sp, #0x10 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r0, sp + bl sub_080A63F8 + mov r0, sp + ldrb r0, [r0, #8] + lsls r0, r0, #4 + ldr r1, _0810A8E0 + ldrb r2, [r1] + ldrh r3, [r1, #2] + movs r1, #0x10 + bl BlendPalette + adds r0, r4, #0 + bl DestroyAnimVisualTask + add sp, #0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810A8E0: .4byte 0x020380BE + thumb_func_end AnimTask_BlendBackground + + thumb_func_start sub_0810A8E4 +sub_0810A8E4: @ 0x0810A8E4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r1, _0810A93C + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r2, r0, r1 + movs r3, #8 + ldrsh r0, [r2, r3] + mov sb, r1 + ldr r4, _0810A940 + mov r8, r4 + cmp r0, #0 + bne _0810A91A + ldrh r0, [r4] + strh r0, [r2, #0xa] + ldrh r0, [r4, #2] + strh r0, [r2, #0xc] + ldrh r0, [r4, #4] + strh r0, [r2, #0xe] + ldrh r0, [r4, #6] + strh r0, [r2, #0x10] +_0810A91A: + ldrh r0, [r2, #8] + adds r0, #1 + strh r0, [r2, #8] + ldr r1, _0810A944 + ldr r0, _0810A948 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r6, [r0] + movs r5, #0x10 + ldrsh r0, [r2, r5] + cmp r0, #0 + bne _0810A950 + ldr r4, _0810A94C + movs r1, #8 + ldrsh r0, [r2, r1] + b _0810A956 + .align 2, 0 +_0810A93C: .4byte 0x03005B60 +_0810A940: .4byte 0x020380BE +_0810A944: .4byte 0x02023E88 +_0810A948: .4byte 0x020380D7 +_0810A94C: .4byte 0x08571268 +_0810A950: + ldr r4, _0810A99C + movs r3, #8 + ldrsh r0, [r2, r3] +_0810A956: + movs r1, #0xa + bl __modsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r0, r0, r4 + ldrb r5, [r0] + lsls r0, r7, #2 + adds r1, r0, r7 + lsls r1, r1, #3 + add r1, sb + movs r4, #0xe + ldrsh r1, [r1, r4] + mov ip, r0 + cmp r1, #1 + bne _0810A9A4 + ldr r2, _0810A9A0 + lsls r3, r6, #4 + adds r0, r3, r6 + lsls r0, r0, #2 + adds r0, r0, r2 + mov sl, r0 + mov r0, r8 + movs r4, #2 + ldrsh r1, [r0, r4] + lsls r0, r5, #0x18 + asrs r0, r0, #0x18 + muls r0, r1, r0 + cmp r0, #0 + bge _0810A994 + rsbs r0, r0, #0 +_0810A994: + mov r5, sl + strh r0, [r5, #0x26] + b _0810A9BE + .align 2, 0 +_0810A99C: .4byte 0x08571278 +_0810A9A0: .4byte 0x020205AC +_0810A9A4: + ldr r3, _0810A9F4 + lsls r4, r6, #4 + adds r2, r4, r6 + lsls r2, r2, #2 + adds r2, r2, r3 + lsls r0, r5, #0x18 + asrs r0, r0, #0x18 + mov r5, r8 + ldrh r1, [r5, #2] + muls r0, r1, r0 + strh r0, [r2, #0x24] + adds r2, r3, #0 + adds r3, r4, #0 +_0810A9BE: + mov r1, ip + adds r0, r1, r7 + lsls r0, r0, #3 + add r0, sb + movs r4, #8 + ldrsh r1, [r0, r4] + movs r5, #0xa + ldrsh r0, [r0, r5] + cmp r1, r0 + bne _0810A9E4 + adds r0, r3, r6 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0 + strh r1, [r0, #0x24] + strh r1, [r0, #0x26] + adds r0, r7, #0 + bl DestroyAnimVisualTask +_0810A9E4: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0810A9F4: .4byte 0x020205AC + thumb_func_end sub_0810A8E4 + diff --git a/asm/fldeff_cut.s b/asm/fldeff_cut.s new file mode 100644 index 0000000..35bb4ee --- /dev/null +++ b/asm/fldeff_cut.s @@ -0,0 +1,1584 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start SetUpFieldMove_Cut +SetUpFieldMove_Cut: @ 0x080D2FB8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + movs r0, #0x52 + bl CheckObjectGraphicsInFrontOfPlayer + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080D2FF4 + ldr r1, _080D2FE4 + ldr r0, _080D2FE8 + str r0, [r1] + ldr r1, _080D2FEC + ldr r0, _080D2FF0 + str r0, [r1] + movs r0, #1 + b _080D32CC + .align 2, 0 +_080D2FE4: .4byte 0x03005B10 +_080D2FE8: .4byte 0x081B53D9 +_080D2FEC: .4byte 0x0203CBB8 +_080D2FF0: .4byte 0x080D333D +_080D2FF4: + ldr r0, _080D3028 + adds r1, r0, #2 + bl PlayerGetDestCoords + bl GetCursorSelectionMonId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x64 + muls r0, r1, r0 + ldr r1, _080D302C + adds r0, r0, r1 + bl GetMonAbility + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0xc] + cmp r0, #0x34 + bne _080D3038 + ldr r1, _080D3030 + movs r0, #5 + strb r0, [r1] + ldr r0, _080D3034 + movs r1, #2 + b _080D3042 + .align 2, 0 +_080D3028: .4byte 0x0203A80C +_080D302C: .4byte 0x02024190 +_080D3030: .4byte 0x03001100 +_080D3034: .4byte 0x03001101 +_080D3038: + ldr r1, _080D3118 + movs r0, #3 + strb r0, [r1] + ldr r0, _080D311C + movs r1, #1 +_080D3042: + strb r1, [r0] + ldr r0, _080D3120 + strb r1, [r0] + movs r6, #0 + movs r1, #0 +_080D304C: + mov r2, sp + adds r0, r2, r6 + strb r1, [r0] + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #8 + bls _080D304C + movs r6, #0 + ldr r2, _080D3124 + movs r1, #0 +_080D3062: + adds r0, r6, r2 + strb r1, [r0] + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0x18 + bls _080D3062 + movs r3, #0 + str r3, [sp, #0x10] + movs r6, #0 +_080D3076: + ldr r4, _080D3128 + adds r0, r6, r4 + ldr r1, _080D312C + ldrh r1, [r1, #2] + adds r0, r0, r1 + movs r5, #0 + adds r2, r6, #1 + str r2, [sp, #0x18] + lsls r7, r6, #1 + lsls r0, r0, #0x10 + str r0, [sp, #0x14] + asrs r0, r0, #0x10 + mov sl, r0 + lsls r0, r6, #2 + adds r0, r0, r6 + mov sb, r0 +_080D3096: + ldr r3, _080D3128 + adds r0, r5, r3 + ldr r4, _080D312C + ldrh r4, [r4] + adds r0, r0, r4 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + mov r8, r1 + asrs r4, r0, #0x10 + adds r0, r4, #0 + mov r1, sl + bl MapGridGetZCoordAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080D312C + movs r1, #4 + ldrsb r1, [r2, r1] + cmp r0, r1 + bne _080D315C + adds r0, r4, #0 + mov r1, sl + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl MetatileBehavior_IsPokeGrass + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080D30E6 + adds r0, r4, #0 + bl MetatileBehavior_IsAshGrass + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080D30F6 +_080D30E6: + adds r0, r5, #6 + add r0, sb + ldr r3, _080D3124 + adds r0, r0, r3 + movs r1, #1 + strb r1, [r0] + movs r0, #1 + str r0, [sp, #0x10] +_080D30F6: + mov r1, r8 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + ldr r2, [sp, #0x14] + asrs r1, r2, #0x10 + bl MapGridIsImpassableAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080D3130 + adds r0, r7, r6 + adds r0, r0, r5 + mov r3, sp + adds r1, r3, r0 + b _080D3164 + .align 2, 0 +_080D3118: .4byte 0x03001100 +_080D311C: .4byte 0x03001101 +_080D3120: .4byte 0x03001102 +_080D3124: .4byte 0x03001108 +_080D3128: .4byte 0x0000FFFF +_080D312C: .4byte 0x0203A80C +_080D3130: + adds r0, r7, r6 + adds r0, r0, r5 + mov r2, sp + adds r1, r2, r0 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl MetatileBehavior_IsCuttableGrass + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #1 + bne _080D3168 + adds r0, r5, #6 + add r0, sb + ldr r3, _080D3158 + adds r0, r0, r3 + strb r1, [r0] + b _080D3168 + .align 2, 0 +_080D3158: .4byte 0x03001108 +_080D315C: + adds r0, r7, r6 + adds r0, r0, r5 + mov r4, sp + adds r1, r4, r0 +_080D3164: + movs r0, #0 + strb r0, [r1] +_080D3168: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #2 + bls _080D3096 + ldr r1, [sp, #0x18] + lsls r0, r1, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #2 + bhi _080D317E + b _080D3076 +_080D317E: + ldr r2, [sp, #0xc] + cmp r2, #0x34 + beq _080D318E + ldr r3, [sp, #0x10] + cmp r3, #1 + beq _080D318C + b _080D32CA +_080D318C: + b _080D32BE +_080D318E: + movs r6, #0 + ldr r4, _080D3274 + mov sb, r4 + ldr r0, _080D3278 + mov sl, r0 +_080D3198: + lsls r2, r6, #2 + mov r3, sl + adds r1, r2, r3 + movs r0, #0 + ldrsb r0, [r1, r0] + mov r4, sb + ldrh r4, [r4] + adds r0, r0, r4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + movs r0, #1 + ldrsb r0, [r1, r0] + mov r1, sb + ldrh r1, [r1, #2] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r7, #1 + movs r5, #0 + ldr r3, _080D327C + adds r0, r2, r3 + ldrb r0, [r0] + adds r6, #1 + str r6, [sp, #0x18] + adds r6, r2, #0 + cmp r0, #0 + beq _080D31FA +_080D31D0: + adds r1, r2, #0 + adds r0, r5, r2 + adds r0, r0, r3 + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add r0, sp + ldrb r0, [r0] + cmp r0, #0 + beq _080D3294 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #1 + bhi _080D31FA + adds r0, r5, r1 + adds r0, r0, r3 + ldrb r0, [r0] + cmp r0, #0 + bne _080D31D0 +_080D31FA: + cmp r7, #1 + bne _080D32AC + mov r1, r8 + lsls r0, r1, #0x10 + asrs r5, r0, #0x10 + lsls r0, r4, #0x10 + asrs r4, r0, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl MapGridGetZCoordAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r2, sb + movs r1, #4 + ldrsb r1, [r2, r1] + cmp r0, r1 + bne _080D32AC + mov r3, sl + adds r2, r6, r3 + movs r1, #1 + ldrsb r1, [r2, r1] + lsls r0, r1, #2 + adds r0, r0, r1 + adds r0, #0xc + ldrb r2, [r2] + adds r0, r0, r2 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r0, r5, #0 + adds r1, r4, #0 + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl MetatileBehavior_IsPokeGrass + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080D325C + adds r0, r4, #0 + bl MetatileBehavior_IsAshGrass + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080D3298 +_080D325C: + ldr r1, _080D3280 + ldr r0, _080D3284 + str r0, [r1] + ldr r1, _080D3288 + ldr r0, _080D328C + str r0, [r1] + ldr r0, _080D3290 + adds r0, r6, r0 + strb r7, [r0] + movs r4, #1 + str r4, [sp, #0x10] + b _080D32AC + .align 2, 0 +_080D3274: .4byte 0x0203A80C +_080D3278: .4byte 0x08557164 +_080D327C: .4byte 0x08557166 +_080D3280: .4byte 0x03005B10 +_080D3284: .4byte 0x081B53D9 +_080D3288: .4byte 0x0203CBB8 +_080D328C: .4byte 0x080D32F1 +_080D3290: .4byte 0x03001108 +_080D3294: + movs r7, #0 + b _080D31FA +_080D3298: + adds r0, r4, #0 + bl MetatileBehavior_IsCuttableGrass + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #1 + bne _080D32AC + ldr r0, _080D32DC + adds r0, r6, r0 + strb r1, [r0] +_080D32AC: + ldr r1, [sp, #0x18] + lsls r0, r1, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0xf + bhi _080D32B8 + b _080D3198 +_080D32B8: + ldr r2, [sp, #0x10] + cmp r2, #1 + bne _080D32CA +_080D32BE: + ldr r1, _080D32E0 + ldr r0, _080D32E4 + str r0, [r1] + ldr r1, _080D32E8 + ldr r0, _080D32EC + str r0, [r1] +_080D32CA: + ldr r0, [sp, #0x10] +_080D32CC: + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080D32DC: .4byte 0x03001108 +_080D32E0: .4byte 0x03005B10 +_080D32E4: .4byte 0x081B53D9 +_080D32E8: .4byte 0x0203CBB8 +_080D32EC: .4byte 0x080D32F1 + thumb_func_end SetUpFieldMove_Cut + + thumb_func_start FieldCallback_CutGrass +FieldCallback_CutGrass: @ 0x080D32F0 + push {lr} + movs r0, #1 + bl FieldEffectStart + bl GetCursorSelectionMonId + ldr r1, _080D3308 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080D3308: .4byte 0x020388A8 + thumb_func_end FieldCallback_CutGrass + + thumb_func_start FldEff_UseCutOnGrass +FldEff_UseCutOnGrass: @ 0x080D330C + push {lr} + bl oei_task_add + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080D3334 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r2, _080D3338 + lsrs r0, r2, #0x10 + strh r0, [r1, #0x18] + strh r2, [r1, #0x1a] + movs r0, #0x12 + bl IncrementGameStat + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_080D3334: .4byte 0x03005B60 +_080D3338: .4byte 0x080D338D + thumb_func_end FldEff_UseCutOnGrass + + thumb_func_start FieldCallback_CutTree +FieldCallback_CutTree: @ 0x080D333C + push {lr} + bl GetCursorSelectionMonId + ldr r1, _080D3354 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [r1] + ldr r0, _080D3358 + bl ScriptContext1_SetupScript + pop {r0} + bx r0 + .align 2, 0 +_080D3354: .4byte 0x020388A8 +_080D3358: .4byte 0x08256612 + thumb_func_end FieldCallback_CutTree + + thumb_func_start FldEff_UseCutOnTree +FldEff_UseCutOnTree: @ 0x080D335C + push {lr} + bl oei_task_add + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080D3384 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r2, _080D3388 + lsrs r0, r2, #0x10 + strh r0, [r1, #0x18] + strh r2, [r1, #0x1a] + movs r0, #0x12 + bl IncrementGameStat + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_080D3384: .4byte 0x03005B60 +_080D3388: .4byte 0x080D3BF5 + thumb_func_end FldEff_UseCutOnTree + + thumb_func_start StartCutGrassFieldEffect +StartCutGrassFieldEffect: @ 0x080D338C + push {lr} + movs r0, #1 + bl FieldEffectActiveListRemove + movs r0, #0x3a + bl FieldEffectStart + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end StartCutGrassFieldEffect + + thumb_func_start FldEff_CutGrass +FldEff_CutGrass: @ 0x080D33A0 + push {r4, r5, r6, r7, lr} + movs r6, #0 + movs r0, #0x80 + bl PlaySE + ldr r4, _080D3490 + adds r1, r4, #2 + adds r0, r4, #0 + bl PlayerGetDestCoords + adds r7, r4, #0 +_080D33B6: + ldr r0, _080D3494 + adds r0, r6, r0 + ldrb r0, [r0] + cmp r0, #1 + bne _080D3404 + adds r0, r6, #0 + movs r1, #5 + bl __umodsi3 + adds r4, r0, #0 + subs r4, #2 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r6, #0 + movs r1, #5 + bl __udivsi3 + adds r5, r0, #0 + subs r5, #2 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + ldrh r0, [r7] + adds r4, r4, r0 + lsls r5, r5, #0x18 + asrs r5, r5, #0x18 + ldrh r2, [r7, #2] + adds r5, r5, r2 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl SetCutGrassMetatile + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0808E0CC +_080D3404: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0x18 + bls _080D33B6 + ldr r2, _080D3490 + ldr r0, _080D3498 + ldrb r1, [r0] + ldrh r0, [r2] + subs r0, r0, r1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldr r1, _080D349C + ldrb r1, [r1] + mvns r1, r1 + ldrh r2, [r2, #2] + adds r1, r1, r2 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl SetCutGrassMetatiles + bl DrawWholeMapView + ldr r4, _080D34A0 + movs r0, #8 + bl AllocZeroed + str r0, [r4] + movs r6, #0 + ldr r5, _080D34A4 +_080D3440: + ldr r0, _080D34A8 + ldrb r1, [r0, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrh r1, [r0, #2] + lsls r1, r1, #0x17 + lsrs r1, r1, #7 + movs r2, #0x80 + lsls r2, r2, #0xc + adds r1, r1, r2 + asrs r1, r1, #0x10 + ldrb r2, [r0] + adds r2, #0x14 + ldr r0, _080D34AC + movs r3, #0 + bl CreateSprite + ldr r1, [r4] + adds r1, r1, r6 + strb r0, [r1] + ldr r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + lsls r1, r6, #5 + strh r1, [r0, #0x32] + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #7 + bls _080D3440 + movs r0, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080D3490: .4byte 0x0203A80C +_080D3494: .4byte 0x03001108 +_080D3498: .4byte 0x03001101 +_080D349C: .4byte 0x03001102 +_080D34A0: .4byte 0x02039A70 +_080D34A4: .4byte 0x020205AC +_080D34A8: .4byte 0x02037230 +_080D34AC: .4byte 0x085571C8 + thumb_func_end FldEff_CutGrass + + thumb_func_start SetCutGrassMetatile +SetCutGrassMetatile: @ 0x080D34B0 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r6, r0, #0x10 + asrs r4, r0, #0x10 + lsrs r7, r1, #0x10 + asrs r5, r1, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl MapGridGetMetatileIdAt + adds r1, r0, #0 + ldr r0, _080D34E8 + cmp r1, r0 + bgt _080D34FC + subs r0, #1 + cmp r1, r0 + bge _080D3574 + cmp r1, #0x25 + beq _080D3596 + cmp r1, #0x25 + bgt _080D34EC + cmp r1, #0xd + beq _080D353C + cmp r1, #0x15 + beq _080D353C + b _080D35A0 + .align 2, 0 +_080D34E8: .4byte 0x00000207 +_080D34EC: + movs r0, #0xe3 + lsls r0, r0, #1 + cmp r1, r0 + beq _080D354C + adds r0, #1 + cmp r1, r0 + beq _080D3552 + b _080D35A0 +_080D34FC: + ldr r0, _080D3514 + cmp r1, r0 + beq _080D3584 + cmp r1, r0 + bgt _080D3518 + subs r0, #0xa + cmp r1, r0 + beq _080D353C + adds r0, #2 + cmp r1, r0 + beq _080D3584 + b _080D35A0 + .align 2, 0 +_080D3514: .4byte 0x00000212 +_080D3518: + ldr r0, _080D352C + cmp r1, r0 + beq _080D3564 + cmp r1, r0 + bgt _080D3530 + subs r0, #1 + cmp r1, r0 + beq _080D355C + b _080D35A0 + .align 2, 0 +_080D352C: .4byte 0x00000282 +_080D3530: + ldr r0, _080D3538 + cmp r1, r0 + beq _080D356C + b _080D35A0 + .align 2, 0 +_080D3538: .4byte 0x00000283 +_080D353C: + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + lsls r1, r7, #0x10 + asrs r1, r1, #0x10 + movs r2, #1 + bl MapGridSetMetatileIdAt + b _080D35A0 +_080D354C: + movs r2, #0xe7 + lsls r2, r2, #1 + b _080D3576 +_080D3552: + ldr r2, _080D3558 + b _080D3576 + .align 2, 0 +_080D3558: .4byte 0x000001CF +_080D355C: + ldr r2, _080D3560 + b _080D3576 + .align 2, 0 +_080D3560: .4byte 0x00000279 +_080D3564: + ldr r2, _080D3568 + b _080D3576 + .align 2, 0 +_080D3568: .4byte 0x0000027A +_080D356C: + ldr r2, _080D3570 + b _080D3576 + .align 2, 0 +_080D3570: .4byte 0x0000027B +_080D3574: + ldr r2, _080D3580 +_080D3576: + adds r0, r4, #0 + adds r1, r5, #0 + bl MapGridSetMetatileIdAt + b _080D35A0 + .align 2, 0 +_080D3580: .4byte 0x00000271 +_080D3584: + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + lsls r1, r7, #0x10 + asrs r1, r1, #0x10 + movs r2, #0x86 + lsls r2, r2, #2 + bl MapGridSetMetatileIdAt + b _080D35A0 +_080D3596: + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0xe + bl MapGridSetMetatileIdAt +_080D35A0: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetCutGrassMetatile + + thumb_func_start GetLongGrassCaseAt +GetLongGrassCaseAt: @ 0x080D35A8 + push {lr} + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl MapGridGetMetatileIdAt + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + adds r2, r1, #0 + cmp r1, #1 + bne _080D35C4 + movs r0, #1 + b _080D35F6 +_080D35C4: + ldr r0, _080D35D0 + cmp r1, r0 + bne _080D35D4 + movs r0, #2 + b _080D35F6 + .align 2, 0 +_080D35D0: .4byte 0x00000279 +_080D35D4: + ldr r0, _080D35E0 + cmp r1, r0 + bne _080D35E4 + movs r0, #3 + b _080D35F6 + .align 2, 0 +_080D35E0: .4byte 0x0000027A +_080D35E4: + ldr r0, _080D35F0 + cmp r2, r0 + beq _080D35F4 + movs r0, #0 + b _080D35F6 + .align 2, 0 +_080D35F0: .4byte 0x0000027B +_080D35F4: + movs r0, #4 +_080D35F6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetLongGrassCaseAt + + thumb_func_start SetCutGrassMetatiles +SetCutGrassMetatiles: @ 0x080D35FC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sl, r1 + ldr r1, _080D366C + ldrb r2, [r1] + mov r3, sl + adds r0, r2, r3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp] + movs r4, #0 + cmp r4, r2 + blt _080D362A + b _080D3740 +_080D362A: + lsls r0, r3, #0x10 + asrs r7, r0, #0x10 +_080D362E: + mov r1, sb + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + lsls r4, r4, #0x10 + asrs r1, r4, #0x10 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + asrs r5, r0, #0x10 + adds r0, r5, #0 + adds r1, r7, #0 + bl MapGridGetMetatileIdAt + mov r8, r4 + cmp r0, #0x15 + bne _080D36B2 + adds r4, r7, #1 + lsls r1, r4, #0x10 + asrs r1, r1, #0x10 + adds r0, r5, #0 + bl GetLongGrassCaseAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + beq _080D3688 + cmp r0, #2 + bgt _080D3670 + cmp r0, #1 + beq _080D367A + b _080D36B2 + .align 2, 0 +_080D366C: .4byte 0x03001100 +_080D3670: + cmp r0, #3 + beq _080D3698 + cmp r0, #4 + beq _080D36A8 + b _080D36B2 +_080D367A: + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x82 + lsls r2, r2, #2 + bl MapGridSetMetatileIdAt + b _080D36B2 +_080D3688: + adds r0, r5, #0 + adds r1, r4, #0 + ldr r2, _080D3694 + bl MapGridSetMetatileIdAt + b _080D36B2 + .align 2, 0 +_080D3694: .4byte 0x00000281 +_080D3698: + adds r0, r5, #0 + adds r1, r4, #0 + ldr r2, _080D36A4 + bl MapGridSetMetatileIdAt + b _080D36B2 + .align 2, 0 +_080D36A4: .4byte 0x00000282 +_080D36A8: + adds r0, r5, #0 + adds r1, r4, #0 + ldr r2, _080D3778 + bl MapGridSetMetatileIdAt +_080D36B2: + lsls r0, r6, #0x10 + asrs r5, r0, #0x10 + ldr r3, [sp] + lsls r0, r3, #0x10 + asrs r4, r0, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl MapGridGetMetatileIdAt + cmp r0, #1 + bne _080D372C + adds r4, #1 + adds r0, r5, #0 + adds r1, r4, #0 + bl MapGridGetMetatileIdAt + movs r1, #0x82 + lsls r1, r1, #2 + cmp r0, r1 + bne _080D36E4 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #1 + bl MapGridSetMetatileIdAt +_080D36E4: + adds r0, r5, #0 + adds r1, r4, #0 + bl MapGridGetMetatileIdAt + ldr r1, _080D377C + cmp r0, r1 + bne _080D36FC + adds r0, r5, #0 + adds r1, r4, #0 + ldr r2, _080D3780 + bl MapGridSetMetatileIdAt +_080D36FC: + adds r0, r5, #0 + adds r1, r4, #0 + bl MapGridGetMetatileIdAt + ldr r1, _080D3784 + cmp r0, r1 + bne _080D3714 + adds r0, r5, #0 + adds r1, r4, #0 + ldr r2, _080D3788 + bl MapGridSetMetatileIdAt +_080D3714: + adds r0, r5, #0 + adds r1, r4, #0 + bl MapGridGetMetatileIdAt + ldr r1, _080D3778 + cmp r0, r1 + bne _080D372C + adds r0, r5, #0 + adds r1, r4, #0 + ldr r2, _080D378C + bl MapGridSetMetatileIdAt +_080D372C: + movs r1, #0x80 + lsls r1, r1, #9 + add r1, r8 + lsrs r4, r1, #0x10 + asrs r1, r1, #0x10 + ldr r0, _080D3790 + ldrb r0, [r0] + cmp r1, r0 + bge _080D3740 + b _080D362E +_080D3740: + ldr r1, _080D3790 + ldrb r0, [r1] + cmp r0, #5 + bne _080D3768 + mov r3, sb + lsls r5, r3, #0x10 + asrs r5, r5, #0x10 + mov r0, sl + lsls r4, r0, #0x10 + asrs r4, r4, #0x10 + movs r0, #0 + adds r1, r5, #0 + adds r2, r4, #0 + bl HandleLongGrassOnHyper + movs r0, #1 + adds r1, r5, #0 + adds r2, r4, #0 + bl HandleLongGrassOnHyper +_080D3768: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D3778: .4byte 0x00000283 +_080D377C: .4byte 0x00000281 +_080D3780: .4byte 0x00000279 +_080D3784: .4byte 0x00000282 +_080D3788: .4byte 0x0000027A +_080D378C: .4byte 0x0000027B +_080D3790: .4byte 0x03001100 + thumb_func_end SetCutGrassMetatiles + + thumb_func_start HandleLongGrassOnHyper +HandleLongGrassOnHyper: @ 0x080D3794 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + adds r3, r5, #0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + mov sl, r2 + cmp r0, #0 + bne _080D37CC + mov r2, sp + ldr r1, _080D37C8 + ldrb r0, [r1, #5] + strb r0, [r2] + ldrb r0, [r1, #0xa] + strb r0, [r2, #1] + ldrb r0, [r1, #0xf] + strb r0, [r2, #2] + mov r8, r5 + b _080D37EE + .align 2, 0 +_080D37C8: .4byte 0x03001108 +_080D37CC: + cmp r0, #1 + beq _080D37D2 + b _080D39EA +_080D37D2: + mov r2, sp + ldr r1, _080D38A8 + ldrb r0, [r1, #9] + strb r0, [r2] + ldrb r0, [r1, #0xe] + strb r0, [r2, #1] + ldrb r0, [r1, #0x13] + strb r0, [r2, #2] + lsls r0, r3, #0x10 + movs r1, #0x80 + lsls r1, r1, #0xb + adds r0, r0, r1 + lsrs r0, r0, #0x10 + mov r8, r0 +_080D37EE: + mov r0, sp + ldrb r0, [r0] + cmp r0, #1 + bne _080D3866 + mov r1, r8 + lsls r0, r1, #0x10 + asrs r5, r0, #0x10 + mov r1, sl + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + adds r4, r0, #3 + adds r0, r5, #0 + adds r1, r4, #0 + bl MapGridGetMetatileIdAt + movs r1, #0x82 + lsls r1, r1, #2 + cmp r0, r1 + bne _080D381E + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #1 + bl MapGridSetMetatileIdAt +_080D381E: + adds r0, r5, #0 + adds r1, r4, #0 + bl MapGridGetMetatileIdAt + ldr r1, _080D38AC + cmp r0, r1 + bne _080D3836 + ldr r2, _080D38B0 + adds r0, r5, #0 + adds r1, r4, #0 + bl MapGridSetMetatileIdAt +_080D3836: + adds r0, r5, #0 + adds r1, r4, #0 + bl MapGridGetMetatileIdAt + ldr r1, _080D38B4 + cmp r0, r1 + bne _080D384E + ldr r2, _080D38B8 + adds r0, r5, #0 + adds r1, r4, #0 + bl MapGridSetMetatileIdAt +_080D384E: + adds r0, r5, #0 + adds r1, r4, #0 + bl MapGridGetMetatileIdAt + ldr r1, _080D38BC + cmp r0, r1 + bne _080D3866 + ldr r2, _080D38C0 + adds r0, r5, #0 + adds r1, r4, #0 + bl MapGridSetMetatileIdAt +_080D3866: + mov r0, sp + ldrb r0, [r0, #1] + cmp r0, #1 + bne _080D3960 + mov r0, r8 + lsls r5, r0, #0x10 + asrs r6, r5, #0x10 + mov r1, sl + lsls r4, r1, #0x10 + asrs r7, r4, #0x10 + adds r1, r7, #2 + adds r0, r6, #0 + bl MapGridGetMetatileIdAt + mov sb, r4 + cmp r0, #0x15 + bne _080D38F6 + adds r4, r7, #3 + lsls r1, r4, #0x10 + asrs r1, r1, #0x10 + adds r0, r6, #0 + bl GetLongGrassCaseAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + beq _080D38D4 + cmp r0, #2 + bgt _080D38C4 + cmp r0, #1 + beq _080D38CE + b _080D38F6 + .align 2, 0 +_080D38A8: .4byte 0x03001108 +_080D38AC: .4byte 0x00000281 +_080D38B0: .4byte 0x00000279 +_080D38B4: .4byte 0x00000282 +_080D38B8: .4byte 0x0000027A +_080D38BC: .4byte 0x00000283 +_080D38C0: .4byte 0x0000027B +_080D38C4: + cmp r0, #3 + beq _080D38DC + cmp r0, #4 + beq _080D38EC + b _080D38F6 +_080D38CE: + movs r2, #0x82 + lsls r2, r2, #2 + b _080D38DE +_080D38D4: + ldr r2, _080D38D8 + b _080D38DE + .align 2, 0 +_080D38D8: .4byte 0x00000281 +_080D38DC: + ldr r2, _080D38E8 +_080D38DE: + adds r0, r6, #0 + adds r1, r4, #0 + bl MapGridSetMetatileIdAt + b _080D38F6 + .align 2, 0 +_080D38E8: .4byte 0x00000282 +_080D38EC: + ldr r2, _080D39A0 + adds r0, r6, #0 + adds r1, r4, #0 + bl MapGridSetMetatileIdAt +_080D38F6: + asrs r5, r5, #0x10 + mov r1, sb + asrs r0, r1, #0x10 + adds r4, r0, #4 + adds r0, r5, #0 + adds r1, r4, #0 + bl MapGridGetMetatileIdAt + movs r1, #0x82 + lsls r1, r1, #2 + cmp r0, r1 + bne _080D3918 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #1 + bl MapGridSetMetatileIdAt +_080D3918: + adds r0, r5, #0 + adds r1, r4, #0 + bl MapGridGetMetatileIdAt + ldr r1, _080D39A4 + cmp r0, r1 + bne _080D3930 + ldr r2, _080D39A8 + adds r0, r5, #0 + adds r1, r4, #0 + bl MapGridSetMetatileIdAt +_080D3930: + adds r0, r5, #0 + adds r1, r4, #0 + bl MapGridGetMetatileIdAt + ldr r1, _080D39AC + cmp r0, r1 + bne _080D3948 + ldr r2, _080D39B0 + adds r0, r5, #0 + adds r1, r4, #0 + bl MapGridSetMetatileIdAt +_080D3948: + adds r0, r5, #0 + adds r1, r4, #0 + bl MapGridGetMetatileIdAt + ldr r1, _080D39A0 + cmp r0, r1 + bne _080D3960 + ldr r2, _080D39B4 + adds r0, r5, #0 + adds r1, r4, #0 + bl MapGridSetMetatileIdAt +_080D3960: + mov r0, sp + ldrb r0, [r0, #2] + cmp r0, #1 + bne _080D39EA + mov r1, r8 + lsls r0, r1, #0x10 + asrs r5, r0, #0x10 + mov r1, sl + lsls r0, r1, #0x10 + asrs r4, r0, #0x10 + adds r1, r4, #3 + adds r0, r5, #0 + bl MapGridGetMetatileIdAt + cmp r0, #0x15 + bne _080D39EA + adds r4, #4 + lsls r1, r4, #0x10 + asrs r1, r1, #0x10 + adds r0, r5, #0 + bl GetLongGrassCaseAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + beq _080D39C8 + cmp r0, #2 + bgt _080D39B8 + cmp r0, #1 + beq _080D39C2 + b _080D39EA + .align 2, 0 +_080D39A0: .4byte 0x00000283 +_080D39A4: .4byte 0x00000281 +_080D39A8: .4byte 0x00000279 +_080D39AC: .4byte 0x00000282 +_080D39B0: .4byte 0x0000027A +_080D39B4: .4byte 0x0000027B +_080D39B8: + cmp r0, #3 + beq _080D39D0 + cmp r0, #4 + beq _080D39E0 + b _080D39EA +_080D39C2: + movs r2, #0x82 + lsls r2, r2, #2 + b _080D39D2 +_080D39C8: + ldr r2, _080D39CC + b _080D39D2 + .align 2, 0 +_080D39CC: .4byte 0x00000281 +_080D39D0: + ldr r2, _080D39DC +_080D39D2: + adds r0, r5, #0 + adds r1, r4, #0 + bl MapGridSetMetatileIdAt + b _080D39EA + .align 2, 0 +_080D39DC: .4byte 0x00000282 +_080D39E0: + ldr r2, _080D39FC + adds r0, r5, #0 + adds r1, r4, #0 + bl MapGridSetMetatileIdAt +_080D39EA: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D39FC: .4byte 0x00000283 + thumb_func_end HandleLongGrassOnHyper + + thumb_func_start CutGrassSpriteCallback1 +CutGrassSpriteCallback1: @ 0x080D3A00 + movs r2, #0 + movs r1, #8 + strh r1, [r0, #0x2e] + strh r2, [r0, #0x30] + strh r2, [r0, #0x34] + ldr r1, _080D3A10 + str r1, [r0, #0x1c] + bx lr + .align 2, 0 +_080D3A10: .4byte 0x080D3A15 + thumb_func_end CutGrassSpriteCallback1 + + thumb_func_start CutGrassSpriteCallback2 +CutGrassSpriteCallback2: @ 0x080D3A14 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + movs r2, #0x2e + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, #0x24] + movs r1, #0x32 + ldrsh r0, [r4, r1] + movs r2, #0x2e + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x32] + adds r0, #8 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x32] + ldrh r1, [r4, #0x2e] + adds r1, #1 + ldrh r2, [r4, #0x34] + lsls r0, r2, #0x10 + asrs r0, r0, #0x12 + adds r1, r1, r0 + strh r1, [r4, #0x2e] + adds r2, #1 + strh r2, [r4, #0x34] + ldrh r1, [r4, #0x30] + movs r2, #0x30 + ldrsh r0, [r4, r2] + cmp r0, #0x1c + beq _080D3A60 + adds r0, r1, #1 + strh r0, [r4, #0x30] + b _080D3A64 +_080D3A60: + ldr r0, _080D3A6C + str r0, [r4, #0x1c] +_080D3A64: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D3A6C: .4byte 0x080D3A71 + thumb_func_end CutGrassSpriteCallback2 + + thumb_func_start CutGrassSpriteCallbackEnd +CutGrassSpriteCallbackEnd: @ 0x080D3A70 + push {r4, r5, r6, lr} + movs r4, #1 +_080D3A74: + ldr r6, _080D3AD0 + ldr r0, [r6] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r5, _080D3AD4 + adds r0, r0, r5 + bl DestroySprite + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #7 + bls _080D3A74 + ldr r0, [r6] + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0x3a + bl FieldEffectStop + ldr r0, [r6] + bl Free + movs r0, #0 + str r0, [r6] + bl ScriptUnfreezeEventObjects + bl ScriptContext2_Disable + bl IsMewPlayingHideAndSeek + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080D3ACA + ldr r0, _080D3AD8 + bl ScriptContext1_SetupScript +_080D3ACA: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080D3AD0: .4byte 0x02039A70 +_080D3AD4: .4byte 0x020205AC +_080D3AD8: .4byte 0x0823B5A9 + thumb_func_end CutGrassSpriteCallbackEnd + + thumb_func_start FixLongGrassMetatilesWindowTop +FixLongGrassMetatilesWindowTop: @ 0x080D3ADC + push {r4, r5, lr} + lsls r0, r0, #0x10 + asrs r5, r0, #0x10 + lsls r1, r1, #0x10 + asrs r4, r1, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsLongGrass + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D3B4E + adds r4, #1 + lsls r1, r4, #0x10 + asrs r1, r1, #0x10 + adds r0, r5, #0 + bl GetLongGrassCaseAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + beq _080D3B2A + cmp r0, #2 + bgt _080D3B1A + cmp r0, #1 + beq _080D3B24 + b _080D3B4E +_080D3B1A: + cmp r0, #3 + beq _080D3B34 + cmp r0, #4 + beq _080D3B44 + b _080D3B4E +_080D3B24: + movs r2, #0x82 + lsls r2, r2, #2 + b _080D3B36 +_080D3B2A: + ldr r2, _080D3B30 + b _080D3B36 + .align 2, 0 +_080D3B30: .4byte 0x00000281 +_080D3B34: + ldr r2, _080D3B40 +_080D3B36: + adds r0, r5, #0 + adds r1, r4, #0 + bl MapGridSetMetatileIdAt + b _080D3B4E + .align 2, 0 +_080D3B40: .4byte 0x00000282 +_080D3B44: + ldr r2, _080D3B54 + adds r0, r5, #0 + adds r1, r4, #0 + bl MapGridSetMetatileIdAt +_080D3B4E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D3B54: .4byte 0x00000283 + thumb_func_end FixLongGrassMetatilesWindowTop + + thumb_func_start FixLongGrassMetatilesWindowBottom +FixLongGrassMetatilesWindowBottom: @ 0x080D3B58 + push {r4, r5, lr} + lsls r0, r0, #0x10 + asrs r4, r0, #0x10 + lsls r1, r1, #0x10 + asrs r5, r1, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl MapGridGetMetatileIdAt + cmp r0, #1 + bne _080D3BEA + adds r5, #1 + adds r0, r4, #0 + adds r1, r5, #0 + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsLongGrassSouthEdge + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D3BEA + adds r0, r4, #0 + adds r1, r5, #0 + bl MapGridGetMetatileIdAt + adds r1, r0, #0 + ldr r0, _080D3BA4 + cmp r1, r0 + beq _080D3BC8 + cmp r1, r0 + bgt _080D3BA8 + subs r0, #0x79 + cmp r1, r0 + beq _080D3BBC + b _080D3BEA + .align 2, 0 +_080D3BA4: .4byte 0x00000281 +_080D3BA8: + ldr r0, _080D3BB8 + cmp r1, r0 + beq _080D3BD0 + adds r0, #1 + cmp r1, r0 + beq _080D3BE0 + b _080D3BEA + .align 2, 0 +_080D3BB8: .4byte 0x00000282 +_080D3BBC: + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #1 + bl MapGridSetMetatileIdAt + b _080D3BEA +_080D3BC8: + ldr r2, _080D3BCC + b _080D3BD2 + .align 2, 0 +_080D3BCC: .4byte 0x00000279 +_080D3BD0: + ldr r2, _080D3BDC +_080D3BD2: + adds r0, r4, #0 + adds r1, r5, #0 + bl MapGridSetMetatileIdAt + b _080D3BEA + .align 2, 0 +_080D3BDC: .4byte 0x0000027A +_080D3BE0: + ldr r2, _080D3BF0 + adds r0, r4, #0 + adds r1, r5, #0 + bl MapGridSetMetatileIdAt +_080D3BEA: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D3BF0: .4byte 0x0000027B + thumb_func_end FixLongGrassMetatilesWindowBottom + + thumb_func_start StartCutTreeFieldEffect +StartCutTreeFieldEffect: @ 0x080D3BF4 + push {lr} + movs r0, #0x80 + bl PlaySE + movs r0, #2 + bl FieldEffectActiveListRemove + bl EnableBothScriptContexts + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end StartCutTreeFieldEffect + diff --git a/asm/fldeff_escalator.s b/asm/fldeff_escalator.s new file mode 100644 index 0000000..6f0e9ee --- /dev/null +++ b/asm/fldeff_escalator.s @@ -0,0 +1,383 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_080E0834 +sub_080E0834: @ 0x080E0834 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + mov sb, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + mov sl, r2 + ldr r2, _080E08C8 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldrh r0, [r1, #0x10] + subs r0, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldrh r0, [r1, #0x12] + subs r0, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldrh r4, [r1, #0xa] + movs r2, #0xc + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _080E08F8 + movs r2, #0 + lsls r5, r5, #0x10 + str r5, [sp, #0xc] + lsls r0, r3, #0x10 + lsls r1, r4, #0x10 + asrs r0, r0, #0x10 + str r0, [sp] + asrs r1, r1, #0x10 + str r1, [sp, #4] + lsls r0, r1, #1 + mov r1, sb + adds r7, r0, r1 +_080E0888: + movs r4, #0 + lsls r2, r2, #0x10 + mov r8, r2 + asrs r0, r2, #0x10 + ldr r2, [sp] + adds r6, r2, r0 +_080E0894: + ldr r0, [sp, #0xc] + asrs r1, r0, #0x10 + lsls r4, r4, #0x10 + asrs r0, r4, #0x10 + adds r5, r1, r0 + adds r0, r5, #0 + adds r1, r6, #0 + bl MapGridGetMetatileIdAt + movs r2, #0 + ldrsh r1, [r7, r2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r1, r0 + bne _080E08DC + ldr r0, [sp, #4] + cmp r0, #2 + beq _080E08CC + ldrh r0, [r7, #2] + mov r2, sl + orrs r2, r0 + adds r0, r5, #0 + adds r1, r6, #0 + bl MapGridSetMetatileIdAt + b _080E08DC + .align 2, 0 +_080E08C8: .4byte 0x03005B60 +_080E08CC: + mov r1, sb + ldrh r0, [r1] + mov r2, sl + orrs r2, r0 + adds r0, r5, #0 + adds r1, r6, #0 + bl MapGridSetMetatileIdAt +_080E08DC: + movs r2, #0x80 + lsls r2, r2, #9 + adds r0, r4, r2 + lsrs r4, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + ble _080E0894 + adds r0, r2, #0 + add r0, r8 + lsrs r2, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + ble _080E0888 + b _080E0980 +_080E08F8: + movs r2, #0 + lsls r5, r5, #0x10 + str r5, [sp, #0xc] + lsls r0, r3, #0x10 + lsls r1, r4, #0x10 + asrs r0, r0, #0x10 + str r0, [sp, #8] + asrs r7, r1, #0x10 +_080E0908: + movs r4, #0 + lsls r2, r2, #0x10 + mov r8, r2 + asrs r0, r2, #0x10 + ldr r1, [sp, #8] + adds r6, r1, r0 +_080E0914: + ldr r2, [sp, #0xc] + asrs r1, r2, #0x10 + lsls r4, r4, #0x10 + asrs r0, r4, #0x10 + adds r5, r1, r0 + adds r0, r5, #0 + adds r1, r6, #0 + bl MapGridGetMetatileIdAt + movs r1, #2 + subs r1, r1, r7 + lsls r1, r1, #1 + add r1, sb + movs r2, #0 + ldrsh r1, [r1, r2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r1, r0 + bne _080E0966 + cmp r7, #2 + beq _080E0956 + movs r0, #1 + subs r0, r0, r7 + lsls r0, r0, #1 + add r0, sb + ldrh r0, [r0] + mov r2, sl + orrs r2, r0 + adds r0, r5, #0 + adds r1, r6, #0 + bl MapGridSetMetatileIdAt + b _080E0966 +_080E0956: + mov r1, sb + ldrh r0, [r1, #4] + mov r2, sl + orrs r2, r0 + adds r0, r5, #0 + adds r1, r6, #0 + bl MapGridSetMetatileIdAt +_080E0966: + movs r2, #0x80 + lsls r2, r2, #9 + adds r0, r4, r2 + lsrs r4, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + ble _080E0914 + adds r0, r2, #0 + add r0, r8 + lsrs r2, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + ble _080E0908 +_080E0980: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_080E0834 + + thumb_func_start sub_080E0990 +sub_080E0990: @ 0x080E0990 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #3 + ldr r1, _080E09B8 + adds r4, r0, r1 + movs r0, #1 + strh r0, [r4, #6] + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #6 + bhi _080E0A2A + lsls r0, r0, #2 + ldr r1, _080E09BC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E09B8: .4byte 0x03005B68 +_080E09BC: .4byte 0x080E09C0 +_080E09C0: @ jump table + .4byte _080E09DC @ case 0 + .4byte _080E09E4 @ case 1 + .4byte _080E09EC @ case 2 + .4byte _080E09F4 @ case 3 + .4byte _080E09FC @ case 4 + .4byte _080E0A10 @ case 5 + .4byte _080E0A20 @ case 6 +_080E09DC: + ldr r1, _080E09E0 + b _080E0A12 + .align 2, 0 +_080E09E0: .4byte 0x08562A3E +_080E09E4: + ldr r1, _080E09E8 + b _080E0A12 + .align 2, 0 +_080E09E8: .4byte 0x08562A44 +_080E09EC: + ldr r1, _080E09F0 + b _080E09FE + .align 2, 0 +_080E09F0: .4byte 0x08562A4A +_080E09F4: + ldr r1, _080E09F8 + b _080E0A12 + .align 2, 0 +_080E09F8: .4byte 0x08562A50 +_080E09FC: + ldr r1, _080E0A0C +_080E09FE: + movs r2, #0xc0 + lsls r2, r2, #4 + adds r0, r3, #0 + bl sub_080E0834 + b _080E0A2A + .align 2, 0 +_080E0A0C: .4byte 0x08562A56 +_080E0A10: + ldr r1, _080E0A1C +_080E0A12: + adds r0, r3, #0 + movs r2, #0 + bl sub_080E0834 + b _080E0A2A + .align 2, 0 +_080E0A1C: .4byte 0x08562A5C +_080E0A20: + ldr r1, _080E0A54 + adds r0, r3, #0 + movs r2, #0 + bl sub_080E0834 +_080E0A2A: + ldrh r0, [r4] + adds r0, #1 + movs r1, #7 + ands r0, r1 + strh r0, [r4] + adds r5, r0, #0 + cmp r5, #0 + bne _080E0A4E + bl DrawWholeMapView + movs r1, #2 + ldrsh r0, [r4, r1] + adds r0, #1 + movs r1, #3 + bl __modsi3 + strh r0, [r4, #2] + strh r5, [r4, #6] +_080E0A4E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080E0A54: .4byte 0x08562A62 + thumb_func_end sub_080E0990 + + thumb_func_start sub_080E0A58 +sub_080E0A58: @ 0x080E0A58 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + ldr r6, _080E0A9C + adds r0, r6, #0 + movs r1, #0 + bl CreateTask + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _080E0AA0 + adds r7, r0, r1 + adds r0, r7, #0 + adds r0, #8 + adds r1, r7, #0 + adds r1, #0xa + bl PlayerGetDestCoords + movs r0, #0 + strh r0, [r7] + strh r0, [r7, #2] + strh r5, [r7, #4] + adds r0, r4, #0 + bl _call_via_r6 + adds r0, r4, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080E0A9C: .4byte 0x080E0991 +_080E0AA0: .4byte 0x03005B68 + thumb_func_end sub_080E0A58 + + thumb_func_start sub_080E0AA4 +sub_080E0AA4: @ 0x080E0AA4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_080E0A58 + ldr r1, _080E0AB8 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080E0AB8: .4byte 0x02039C2C + thumb_func_end sub_080E0AA4 + + thumb_func_start sub_080E0ABC +sub_080E0ABC: @ 0x080E0ABC + push {lr} + ldr r0, _080E0ACC + ldrb r0, [r0] + bl DestroyTask + pop {r0} + bx r0 + .align 2, 0 +_080E0ACC: .4byte 0x02039C2C + thumb_func_end sub_080E0ABC + + thumb_func_start sub_080E0AD0 +sub_080E0AD0: @ 0x080E0AD0 + push {lr} + ldr r2, _080E0AF4 + ldr r0, _080E0AF8 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r1, r0, r2 + movs r2, #0xe + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _080E0AFC + movs r2, #0xa + ldrsh r0, [r1, r2] + cmp r0, #2 + bne _080E0AFC + movs r0, #0 + b _080E0AFE + .align 2, 0 +_080E0AF4: .4byte 0x03005B60 +_080E0AF8: .4byte 0x02039C2C +_080E0AFC: + movs r0, #1 +_080E0AFE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080E0AD0 + diff --git a/asm/fldeff_flash.s b/asm/fldeff_flash.s new file mode 100644 index 0000000..0ae59d4 --- /dev/null +++ b/asm/fldeff_flash.s @@ -0,0 +1,781 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start SetUpFieldMove_Flash +SetUpFieldMove_Flash: @ 0x0813716C + push {r4, lr} + bl ShouldDoBrailleRegisteelEffect + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081371A4 + ldr r4, _08137190 + bl GetCursorSelectionMonId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + ldr r1, _08137194 + ldr r0, _08137198 + str r0, [r1] + ldr r1, _0813719C + ldr r0, _081371A0 + b _081371C2 + .align 2, 0 +_08137190: .4byte 0x02037290 +_08137194: .4byte 0x03005B10 +_08137198: .4byte 0x081B53D9 +_0813719C: .4byte 0x0203CBB8 +_081371A0: .4byte 0x081797D1 +_081371A4: + ldr r0, _081371C8 + ldrb r0, [r0, #0x15] + cmp r0, #1 + bne _081371E0 + ldr r0, _081371CC + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081371E0 + ldr r1, _081371D0 + ldr r0, _081371D4 + str r0, [r1] + ldr r1, _081371D8 + ldr r0, _081371DC +_081371C2: + str r0, [r1] + movs r0, #1 + b _081371E2 + .align 2, 0 +_081371C8: .4byte 0x02036FB8 +_081371CC: .4byte 0x00000888 +_081371D0: .4byte 0x03005B10 +_081371D4: .4byte 0x081B53D9 +_081371D8: .4byte 0x0203CBB8 +_081371DC: .4byte 0x081371E9 +_081371E0: + movs r0, #0 +_081371E2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end SetUpFieldMove_Flash + + thumb_func_start hm2_flash +hm2_flash: @ 0x081371E8 + push {r4, lr} + bl oei_task_add + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl GetCursorSelectionMonId + ldr r1, _08137218 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [r1] + ldr r1, _0813721C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r2, _08137220 + lsrs r1, r2, #0x10 + strh r1, [r0, #0x18] + strh r2, [r0, #0x1a] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08137218: .4byte 0x020388A8 +_0813721C: .4byte 0x03005B60 +_08137220: .4byte 0x08137225 + thumb_func_end hm2_flash + + thumb_func_start sub_08137224 +sub_08137224: @ 0x08137224 + push {lr} + movs r0, #0xcf + bl PlaySE + ldr r0, _0813723C + bl FlagSet + ldr r0, _08137240 + bl ScriptContext1_SetupScript + pop {r0} + bx r0 + .align 2, 0 +_0813723C: .4byte 0x00000888 +_08137240: .4byte 0x08257EE2 + thumb_func_end sub_08137224 + + thumb_func_start sub_08137244 +sub_08137244: @ 0x08137244 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08137244 + + thumb_func_start sub_0813725C +sub_0813725C: @ 0x0813725C + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0813725C + + thumb_func_start c2_change_map +c2_change_map: @ 0x08137270 + push {r4, lr} + sub sp, #8 + movs r0, #0 + bl SetVBlankCallback + movs r0, #0 + movs r1, #0 + bl SetGpuReg + movs r0, #0xc + movs r1, #0 + bl SetGpuReg + movs r0, #0xa + movs r1, #0 + bl SetGpuReg + movs r0, #8 + movs r1, #0 + bl SetGpuReg + movs r0, #0x18 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1a + movs r1, #0 + bl SetGpuReg + movs r0, #0x14 + movs r1, #0 + bl SetGpuReg + movs r0, #0x16 + movs r1, #0 + bl SetGpuReg + movs r0, #0x10 + movs r1, #0 + bl SetGpuReg + movs r0, #0x12 + movs r1, #0 + bl SetGpuReg + mov r1, sp + movs r0, #0 + strh r0, [r1] + ldr r1, _0813734C + mov r0, sp + str r0, [r1] + movs r0, #0xc0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _08137350 + str r0, [r1, #8] + ldr r0, [r1, #8] + movs r4, #0 + str r4, [sp, #4] + add r0, sp, #4 + str r0, [r1] + movs r0, #0xe0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _08137354 + str r0, [r1, #8] + ldr r0, [r1, #8] + mov r0, sp + strh r4, [r0] + str r0, [r1] + ldr r0, _08137358 + str r0, [r1, #4] + ldr r0, _0813735C + str r0, [r1, #8] + ldr r0, [r1, #8] + bl ResetPaletteFade + bl ResetTasks + bl ResetSpriteData + ldr r3, _08137360 + ldrh r2, [r3] + strh r4, [r3] + ldr r4, _08137364 + ldrh r0, [r4] + movs r1, #1 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r0, _08137368 + bl SetVBlankCallback + ldr r0, _0813736C + bl SetMainCallback2 + bl sub_08137374 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08137342 + ldr r0, _08137370 + ldr r0, [r0, #8] + bl SetMainCallback2 +_08137342: + add sp, #8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813734C: .4byte 0x040000D4 +_08137350: .4byte 0x8100C000 +_08137354: .4byte 0x85000100 +_08137358: .4byte 0x05000002 +_0813735C: .4byte 0x810001FF +_08137360: .4byte 0x04000208 +_08137364: .4byte 0x04000200 +_08137368: .4byte 0x0813725D +_0813736C: .4byte 0x08137245 +_08137370: .4byte 0x03002360 + thumb_func_end c2_change_map + + thumb_func_start sub_08137374 +sub_08137374: @ 0x08137374 + push {r4, r5, r6, r7, lr} + bl GetLastUsedWarpMapType + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + bl GetCurrentMapType + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r3, #0 + ldr r4, _081373B4 + ldrb r0, [r4] + cmp r0, #0 + beq _081373C8 + adds r7, r4, #0 + adds r0, r4, #4 + mov ip, r0 +_08137396: + lsls r2, r3, #3 + adds r1, r2, r7 + ldrb r0, [r1] + cmp r0, r6 + bne _081373B8 + ldrb r0, [r1, #1] + cmp r0, r5 + bne _081373B8 + mov r1, ip + adds r0, r2, r1 + ldr r0, [r0] + bl _call_via_r0 + movs r0, #1 + b _081373CA + .align 2, 0 +_081373B4: .4byte 0x08592214 +_081373B8: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r0, r3, #3 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0 + bne _08137396 +_081373C8: + movs r0, #0 +_081373CA: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_08137374 + + thumb_func_start GetMapPairFadeToType +GetMapPairFadeToType: @ 0x081373D0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r0, #0x18 + lsrs r4, r1, #0x18 + movs r3, #0 + ldr r1, _081373FC + ldrb r0, [r1] + cmp r0, #0 + beq _08137410 + adds r6, r1, #0 +_081373E6: + lsls r0, r3, #3 + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, r5 + bne _08137400 + ldrb r0, [r2, #1] + cmp r0, r4 + bne _08137400 + ldrb r0, [r2, #2] + b _08137412 + .align 2, 0 +_081373FC: .4byte 0x08592214 +_08137400: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r0, r3, #3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _081373E6 +_08137410: + movs r0, #0 +_08137412: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end GetMapPairFadeToType + + thumb_func_start GetMapPairFadeFromType +GetMapPairFadeFromType: @ 0x08137418 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r0, #0x18 + lsrs r4, r1, #0x18 + movs r3, #0 + ldr r1, _08137444 + ldrb r0, [r1] + cmp r0, #0 + beq _08137458 + adds r6, r1, #0 +_0813742E: + lsls r0, r3, #3 + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, r5 + bne _08137448 + ldrb r0, [r2, #1] + cmp r0, r4 + bne _08137448 + ldrb r0, [r2, #3] + b _0813745A + .align 2, 0 +_08137444: .4byte 0x08592214 +_08137448: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r0, r3, #3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _0813742E +_08137458: + movs r0, #0 +_0813745A: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end GetMapPairFadeFromType + + thumb_func_start sub_08137460 +sub_08137460: @ 0x08137460 + push {lr} + ldr r0, _08137470 + movs r1, #0 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_08137470: .4byte 0x08137475 + thumb_func_end sub_08137460 + + thumb_func_start sub_08137474 +sub_08137474: @ 0x08137474 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08137488 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r0, _0813748C + str r0, [r1] + bx lr + .align 2, 0 +_08137488: .4byte 0x03005B60 +_0813748C: .4byte 0x08137491 + thumb_func_end sub_08137474 + + thumb_func_start sub_08137490 +sub_08137490: @ 0x08137490 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + movs r1, #0 + bl SetGpuReg + ldr r0, _0813750C + ldr r1, _08137510 + bl LZ77UnCompVram + ldr r0, _08137514 + ldr r1, _08137518 + bl LZ77UnCompVram + ldr r0, _0813751C + movs r1, #0xe0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _08137520 + movs r1, #0xe0 + movs r2, #0x10 + bl LoadPalette + ldr r1, _08137524 + movs r0, #0x50 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + ldr r1, _08137528 + movs r0, #8 + bl SetGpuReg + movs r1, #0x8a + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + ldr r1, _0813752C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08137530 + str r1, [r0] + movs r2, #0 + movs r1, #0x10 + strh r1, [r0, #8] + strh r2, [r0, #0xa] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813750C: .4byte 0x085924DC +_08137510: .4byte 0x0600C000 +_08137514: .4byte 0x085922FC +_08137518: .4byte 0x0600F800 +_0813751C: .4byte 0x0859229C +_08137520: .4byte 0x085922EC +_08137524: .4byte 0x00003E41 +_08137528: .4byte 0x00001F0C +_0813752C: .4byte 0x03005B60 +_08137530: .4byte 0x08137535 + thumb_func_end sub_08137490 + + thumb_func_start sub_08137534 +sub_08137534: @ 0x08137534 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08137564 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r5, r1, r2 + ldrh r4, [r5, #0xa] + movs r0, #0x80 + lsls r0, r0, #5 + adds r1, r4, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + cmp r4, #0x10 + bhi _08137568 + ldrh r0, [r5, #0xa] + adds r0, #1 + strh r0, [r5, #0xa] + b _08137570 + .align 2, 0 +_08137564: .4byte 0x03005B60 +_08137568: + movs r0, #0 + strh r0, [r5, #0xc] + ldr r0, _08137578 + str r0, [r5] +_08137570: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08137578: .4byte 0x0813757D + thumb_func_end sub_08137534 + + thumb_func_start sub_0813757C +sub_0813757C: @ 0x0813757C + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _081375B8 + movs r0, #0x52 + bl SetGpuReg + ldr r1, _081375BC + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrh r1, [r4, #0xc] + cmp r1, #7 + bhi _081375C4 + adds r0, r1, #1 + strh r0, [r4, #0xc] + lsls r1, r1, #1 + ldr r0, _081375C0 + adds r0, r1, r0 + movs r2, #0x10 + subs r2, r2, r1 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + movs r1, #0xe0 + bl LoadPalette + b _081375D6 + .align 2, 0 +_081375B8: .4byte 0x00001010 +_081375BC: .4byte 0x03005B60 +_081375C0: .4byte 0x085922EC +_081375C4: + ldr r0, _081375DC + movs r1, #0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _081375E0 + str r0, [r4] + movs r0, #8 + strh r0, [r4, #0xc] +_081375D6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081375DC: .4byte 0x0859229C +_081375E0: .4byte 0x081375E5 + thumb_func_end sub_0813757C + + thumb_func_start sub_081375E4 +sub_081375E4: @ 0x081375E4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08137604 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldrh r2, [r1, #0xc] + movs r3, #0xc + ldrsh r0, [r1, r3] + cmp r0, #0 + beq _08137608 + subs r0, r2, #1 + strh r0, [r1, #0xc] + b _08137610 + .align 2, 0 +_08137604: .4byte 0x03005B60 +_08137608: + ldr r0, _08137614 + ldr r0, [r0, #8] + bl SetMainCallback2 +_08137610: + pop {r0} + bx r0 + .align 2, 0 +_08137614: .4byte 0x03002360 + thumb_func_end sub_081375E4 + + thumb_func_start sub_08137618 +sub_08137618: @ 0x08137618 + push {lr} + ldr r0, _08137628 + movs r1, #0 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_08137628: .4byte 0x0813762D + thumb_func_end sub_08137618 + + thumb_func_start sub_0813762C +sub_0813762C: @ 0x0813762C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08137640 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r0, _08137644 + str r0, [r1] + bx lr + .align 2, 0 +_08137640: .4byte 0x03005B60 +_08137644: .4byte 0x08137649 + thumb_func_end sub_0813762C + + thumb_func_start sub_08137648 +sub_08137648: @ 0x08137648 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + movs r1, #0 + bl SetGpuReg + ldr r0, _081376C4 + ldr r1, _081376C8 + bl LZ77UnCompVram + ldr r0, _081376CC + ldr r1, _081376D0 + bl LZ77UnCompVram + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + ldr r1, _081376D4 + movs r0, #8 + bl SetGpuReg + movs r1, #0x8a + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + ldr r0, _081376D8 + movs r1, #0xe0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _081376DC + movs r1, #0 + movs r2, #0x20 + bl LoadPalette + ldr r1, _081376E0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081376E4 + str r1, [r0] + movs r2, #0 + movs r1, #0x10 + strh r1, [r0, #8] + strh r2, [r0, #0xa] + strh r2, [r0, #0xc] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081376C4: .4byte 0x085924DC +_081376C8: .4byte 0x0600C000 +_081376CC: .4byte 0x085922FC +_081376D0: .4byte 0x0600F800 +_081376D4: .4byte 0x00001F0C +_081376D8: .4byte 0x0859229C +_081376DC: .4byte 0x085922BC +_081376E0: .4byte 0x03005B60 +_081376E4: .4byte 0x081376E9 + thumb_func_end sub_08137648 + + thumb_func_start sub_081376E8 +sub_081376E8: @ 0x081376E8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0813771C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 + ldrh r1, [r4, #0xc] + cmp r1, #0xf + bhi _08137724 + adds r2, r1, #1 + adds r0, r2, #1 + strh r0, [r4, #0xc] + movs r0, #0xf + subs r0, r0, r1 + lsls r0, r0, #1 + ldr r1, _08137720 + adds r0, r0, r1 + lsls r2, r2, #0x11 + lsrs r2, r2, #0x10 + movs r1, #0xe0 + bl LoadPalette + b _08137738 + .align 2, 0 +_0813771C: .4byte 0x03005B60 +_08137720: .4byte 0x085922DC +_08137724: + ldr r1, _08137740 + movs r0, #0x52 + bl SetGpuReg + ldr r1, _08137744 + movs r0, #0x50 + bl SetGpuReg + ldr r0, _08137748 + str r0, [r4] +_08137738: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08137740: .4byte 0x00001010 +_08137744: .4byte 0x00003E41 +_08137748: .4byte 0x0813774D + thumb_func_end sub_081376E8 + + thumb_func_start sub_0813774C +sub_0813774C: @ 0x0813774C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08137780 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r5, r1, r2 + ldrh r0, [r5, #0xa] + movs r1, #0x10 + subs r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + movs r0, #0x80 + lsls r0, r0, #0x15 + adds r1, r1, r0 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + cmp r4, #0 + beq _08137784 + ldrh r0, [r5, #0xa] + adds r0, #1 + strh r0, [r5, #0xa] + b _08137796 + .align 2, 0 +_08137780: .4byte 0x03005B60 +_08137784: + ldr r0, _0813779C + movs r1, #0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _081377A0 + ldr r0, [r0, #8] + bl SetMainCallback2 +_08137796: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0813779C: .4byte 0x085922BC +_081377A0: .4byte 0x03002360 + thumb_func_end sub_0813774C + diff --git a/asm/fldeff_misc.s b/asm/fldeff_misc.s new file mode 100644 index 0000000..86547dc --- /dev/null +++ b/asm/fldeff_misc.s @@ -0,0 +1,2674 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_080FA43C +sub_080FA43C: @ 0x080FA43C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r3, r2, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r0, _080FA460 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_080FA4B4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FA460: .4byte 0x080FA501 + thumb_func_end sub_080FA43C + + thumb_func_start sub_080FA464 +sub_080FA464: @ 0x080FA464 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r3, r2, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r0, _080FA488 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_080FA4B4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FA488: .4byte 0x080FA66D + thumb_func_end sub_080FA464 + + thumb_func_start sub_080FA48C +sub_080FA48C: @ 0x080FA48C + push {lr} + ldr r0, _080FA49C + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_080FA49C: .4byte 0x080FA501 + thumb_func_end sub_080FA48C + + thumb_func_start FldEffPoison_IsActive +FldEffPoison_IsActive: @ 0x080FA4A0 + push {lr} + ldr r0, _080FA4B0 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_080FA4B0: .4byte 0x080FA66D + thumb_func_end FldEffPoison_IsActive + + thumb_func_start sub_080FA4B4 +sub_080FA4B4: @ 0x080FA4B4 + push {r4, r5, lr} + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + adds r5, r4, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r1, r3, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r2, r0, #0 + ldr r1, _080FA4FC + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r1, r0, r1 + movs r0, #0 + strh r0, [r1, #8] + movs r0, #0x10 + cmp r4, #0 + beq _080FA4E2 + adds r0, r4, #0 +_080FA4E2: + strh r0, [r1, #0xa] + movs r0, #0x14 + cmp r5, #0 + beq _080FA4EC + adds r0, r5, #0 +_080FA4EC: + strh r0, [r1, #0xc] + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FA4FC: .4byte 0x03005B60 + thumb_func_end sub_080FA4B4 + + thumb_func_start sub_080FA500 +sub_080FA500: @ 0x080FA500 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080FA524 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _080FA580 + cmp r0, #1 + bgt _080FA528 + cmp r0, #0 + beq _080FA532 + b _080FA64E + .align 2, 0 +_080FA524: .4byte 0x03005B60 +_080FA528: + cmp r0, #2 + beq _080FA5A2 + cmp r0, #3 + beq _080FA604 + b _080FA64E +_080FA532: + movs r0, #0x78 + strh r0, [r4, #0xe] + strh r0, [r4, #0x10] + movs r0, #0x50 + strh r0, [r4, #0x12] + movs r0, #0x51 + strh r0, [r4, #0x14] + movs r1, #0x80 + lsls r1, r1, #6 + movs r0, #0 + bl SetGpuRegBits + ldrh r1, [r4, #0xe] + lsls r1, r1, #8 + ldrh r0, [r4, #0x10] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x40 + bl SetGpuReg + ldrh r1, [r4, #0x12] + lsls r1, r1, #8 + ldrh r0, [r4, #0x14] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x44 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0x3f + bl SetGpuReg + movs r0, #0x4a + movs r1, #0 + bl SetGpuReg + b _080FA65E +_080FA580: + movs r0, #0x50 + bl GetGpuReg + strh r0, [r4, #0x16] + movs r0, #0x54 + bl GetGpuReg + strh r0, [r4, #0x18] + movs r0, #0x50 + movs r1, #0xbf + bl SetGpuReg + movs r0, #0x54 + movs r1, #0x10 + bl SetGpuReg + b _080FA65E +_080FA5A2: + ldrh r0, [r4, #0xe] + ldrh r1, [r4, #0xa] + subs r0, r0, r1 + movs r5, #0 + strh r0, [r4, #0xe] + ldrh r2, [r4, #0x10] + adds r1, r1, r2 + strh r1, [r4, #0x10] + lsls r0, r0, #0x10 + cmp r0, #0 + ble _080FA5C0 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xef + ble _080FA5E6 +_080FA5C0: + strh r5, [r4, #0xe] + movs r0, #0xf0 + strh r0, [r4, #0x10] + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + ldrh r1, [r4, #0x16] + movs r0, #0x50 + bl SetGpuReg + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + movs r2, #0 + bl BlendPalettes + ldr r0, _080FA600 + strh r5, [r0] +_080FA5E6: + ldrh r1, [r4, #0xe] + lsls r1, r1, #8 + ldrh r0, [r4, #0x10] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x40 + bl SetGpuReg + movs r1, #0xe + ldrsh r0, [r4, r1] + b _080FA648 + .align 2, 0 +_080FA600: .4byte 0x020377B4 +_080FA604: + ldrh r0, [r4, #0x12] + ldrh r1, [r4, #0xc] + subs r0, r0, r1 + strh r0, [r4, #0x12] + ldrh r2, [r4, #0x14] + adds r1, r1, r2 + strh r1, [r4, #0x14] + lsls r0, r0, #0x10 + cmp r0, #0 + ble _080FA620 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x9f + ble _080FA632 +_080FA620: + movs r0, #0 + strh r0, [r4, #0x12] + movs r0, #0xa0 + strh r0, [r4, #0x14] + movs r1, #0x80 + lsls r1, r1, #6 + movs r0, #0 + bl ClearGpuRegBits +_080FA632: + ldrh r1, [r4, #0x12] + lsls r1, r1, #8 + ldrh r0, [r4, #0x14] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x44 + bl SetGpuReg + movs r1, #0x12 + ldrsh r0, [r4, r1] +_080FA648: + cmp r0, #0 + bne _080FA664 + b _080FA65E +_080FA64E: + ldrh r1, [r4, #0x16] + movs r0, #0x50 + bl SetGpuReg + adds r0, r5, #0 + bl DestroyTask + b _080FA664 +_080FA65E: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080FA664: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080FA500 + + thumb_func_start sub_080FA66C +sub_080FA66C: @ 0x080FA66C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080FA690 + adds r4, r0, r1 + movs r0, #8 + ldrsh r1, [r4, r0] + cmp r1, #1 + beq _080FA6A8 + cmp r1, #1 + bgt _080FA694 + cmp r1, #0 + beq _080FA69E + b _080FA79C + .align 2, 0 +_080FA690: .4byte 0x03005B60 +_080FA694: + cmp r1, #2 + beq _080FA6F6 + cmp r1, #3 + beq _080FA748 + b _080FA79C +_080FA69E: + ldr r0, _080FA6A4 + strh r1, [r0] + b _080FA7BE + .align 2, 0 +_080FA6A4: .4byte 0x020377B4 +_080FA6A8: + movs r1, #0 + strh r1, [r4, #0xe] + movs r0, #0xf0 + strh r0, [r4, #0x10] + strh r1, [r4, #0x12] + movs r0, #0xa0 + strh r0, [r4, #0x14] + movs r1, #0x80 + lsls r1, r1, #6 + movs r0, #0 + bl SetGpuRegBits + ldrh r1, [r4, #0xe] + lsls r1, r1, #8 + ldrh r0, [r4, #0x10] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x40 + bl SetGpuReg + ldrh r1, [r4, #0x12] + lsls r1, r1, #8 + ldrh r0, [r4, #0x14] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x44 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0x3f + bl SetGpuReg + movs r0, #0x4a + movs r1, #0 + bl SetGpuReg + b _080FA7BE +_080FA6F6: + ldrh r0, [r4, #0xc] + ldrh r2, [r4, #0x12] + adds r1, r0, r2 + strh r1, [r4, #0x12] + ldrh r2, [r4, #0x14] + subs r0, r2, r0 + strh r0, [r4, #0x14] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #0x4f + bgt _080FA714 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x51 + bgt _080FA72C +_080FA714: + movs r0, #0x50 + strh r0, [r4, #0x12] + movs r0, #0x51 + strh r0, [r4, #0x14] + movs r0, #0x50 + movs r1, #0xbf + bl SetGpuReg + movs r0, #0x54 + movs r1, #0x10 + bl SetGpuReg +_080FA72C: + ldrh r1, [r4, #0x12] + lsls r1, r1, #8 + ldrh r0, [r4, #0x14] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x44 + bl SetGpuReg + movs r1, #0x12 + ldrsh r0, [r4, r1] + cmp r0, #0x50 + bne _080FA7C4 + b _080FA7BE +_080FA748: + ldrh r0, [r4, #0xa] + ldrh r2, [r4, #0xe] + adds r1, r0, r2 + strh r1, [r4, #0xe] + ldrh r2, [r4, #0x10] + subs r0, r2, r0 + strh r0, [r4, #0x10] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #0x77 + bgt _080FA766 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x78 + bgt _080FA77C +_080FA766: + movs r0, #0x78 + strh r0, [r4, #0xe] + strh r0, [r4, #0x10] + subs r0, #0x79 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + ldr r1, _080FA798 + movs r0, #0 + strh r0, [r1] +_080FA77C: + ldrh r1, [r4, #0xe] + lsls r1, r1, #8 + ldrh r0, [r4, #0x10] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x40 + bl SetGpuReg + movs r1, #0xe + ldrsh r0, [r4, r1] + cmp r0, #0x78 + bne _080FA7C4 + b _080FA7BE + .align 2, 0 +_080FA798: .4byte 0x020377B4 +_080FA79C: + movs r1, #0x80 + lsls r1, r1, #6 + movs r0, #0 + bl ClearGpuRegBits + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + adds r0, r5, #0 + bl DestroyTask + b _080FA7C4 +_080FA7BE: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080FA7C4: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080FA66C + + thumb_func_start SetCurrentSecretBase +SetCurrentSecretBase: @ 0x080FA7CC + push {lr} + ldr r0, _080FA7E0 + ldr r1, _080FA7E4 + ldr r1, [r1, #4] + bl SetCurSecretBaseIdFromPosition + bl TrySetCurSecretBaseIndex + pop {r0} + bx r0 + .align 2, 0 +_080FA7E0: .4byte 0x0203A80C +_080FA7E4: .4byte 0x02036FB8 + thumb_func_end SetCurrentSecretBase + + thumb_func_start AdjustSecretPowerSpritePixelOffsets +AdjustSecretPowerSpritePixelOffsets: @ 0x080FA7E8 + push {lr} + ldr r0, _080FA808 + ldrb r1, [r0] + movs r0, #6 + ands r0, r1 + cmp r0, #0 + beq _080FA830 + ldr r1, _080FA80C + ldr r0, [r1, #4] + cmp r0, #2 + beq _080FA81E + cmp r0, #2 + bgt _080FA810 + cmp r0, #1 + beq _080FA816 + b _080FA86E + .align 2, 0 +_080FA808: .4byte 0x02037230 +_080FA80C: .4byte 0x020388A8 +_080FA810: + cmp r0, #3 + beq _080FA826 + b _080FA84C +_080FA816: + movs r0, #0x10 + str r0, [r1, #0x14] + movs r0, #0x28 + b _080FA86C +_080FA81E: + movs r0, #0x10 + str r0, [r1, #0x14] + movs r0, #8 + b _080FA86C +_080FA826: + movs r0, #8 + rsbs r0, r0, #0 + str r0, [r1, #0x14] + movs r0, #0x18 + b _080FA86C +_080FA830: + ldr r1, _080FA844 + ldr r0, [r1, #4] + cmp r0, #2 + beq _080FA85A + cmp r0, #2 + bgt _080FA848 + cmp r0, #1 + beq _080FA852 + b _080FA86E + .align 2, 0 +_080FA844: .4byte 0x020388A8 +_080FA848: + cmp r0, #3 + beq _080FA85E +_080FA84C: + cmp r0, #4 + beq _080FA868 + b _080FA86E +_080FA852: + movs r0, #8 + str r0, [r1, #0x14] + movs r0, #0x28 + b _080FA86C +_080FA85A: + movs r0, #8 + b _080FA86A +_080FA85E: + movs r0, #8 + rsbs r0, r0, #0 + str r0, [r1, #0x14] + movs r0, #0x18 + b _080FA86C +_080FA868: + movs r0, #0x18 +_080FA86A: + str r0, [r1, #0x14] +_080FA86C: + str r0, [r1, #0x18] +_080FA86E: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AdjustSecretPowerSpritePixelOffsets + + thumb_func_start SetUpFieldMove_SecretPower +SetUpFieldMove_SecretPower: @ 0x080FA874 + push {r4, lr} + bl CheckPlayerHasSecretBase + ldr r0, _080FA8C8 + ldrh r0, [r0] + cmp r0, #1 + beq _080FA91E + bl GetPlayerFacingDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _080FA91E + ldr r4, _080FA8CC + adds r1, r4, #2 + adds r0, r4, #0 + bl GetXYCoordsOneStepInFrontOfPlayer + movs r1, #0 + ldrsh r0, [r4, r1] + movs r2, #2 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl MetatileBehavior_IsSecretBaseCave + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080FA8E0 + bl SetCurrentSecretBase + ldr r1, _080FA8D0 + ldr r0, _080FA8D4 + str r0, [r1] + ldr r1, _080FA8D8 + ldr r0, _080FA8DC + b _080FA930 + .align 2, 0 +_080FA8C8: .4byte 0x02037290 +_080FA8CC: .4byte 0x0203A80C +_080FA8D0: .4byte 0x03005B10 +_080FA8D4: .4byte 0x081B53D9 +_080FA8D8: .4byte 0x0203CBB8 +_080FA8DC: .4byte 0x080FA94D +_080FA8E0: + adds r0, r4, #0 + bl MetatileBehavior_IsSecretBaseTree + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080FA910 + bl SetCurrentSecretBase + ldr r1, _080FA900 + ldr r0, _080FA904 + str r0, [r1] + ldr r1, _080FA908 + ldr r0, _080FA90C + b _080FA930 + .align 2, 0 +_080FA900: .4byte 0x03005B10 +_080FA904: .4byte 0x081B53D9 +_080FA908: .4byte 0x0203CBB8 +_080FA90C: .4byte 0x080FAA59 +_080FA910: + adds r0, r4, #0 + bl MetatileBehavior_IsSecretBaseShrub + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080FA922 +_080FA91E: + movs r0, #0 + b _080FA934 +_080FA922: + bl SetCurrentSecretBase + ldr r1, _080FA93C + ldr r0, _080FA940 + str r0, [r1] + ldr r1, _080FA944 + ldr r0, _080FA948 +_080FA930: + str r0, [r1] + movs r0, #1 +_080FA934: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080FA93C: .4byte 0x03005B10 +_080FA940: .4byte 0x081B53D9 +_080FA944: .4byte 0x0203CBB8 +_080FA948: .4byte 0x080FABBD + thumb_func_end SetUpFieldMove_SecretPower + + thumb_func_start FieldCallback_SecretBaseCave +FieldCallback_SecretBaseCave: @ 0x080FA94C + push {lr} + bl GetCursorSelectionMonId + ldr r1, _080FA964 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [r1] + ldr r0, _080FA968 + bl ScriptContext1_SetupScript + pop {r0} + bx r0 + .align 2, 0 +_080FA964: .4byte 0x020388A8 +_080FA968: .4byte 0x08245B35 + thumb_func_end FieldCallback_SecretBaseCave + + thumb_func_start FldEff_UseSecretPowerCave +FldEff_UseSecretPowerCave: @ 0x080FA96C + push {lr} + bl oei_task_add + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080FA990 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r2, _080FA994 + lsrs r0, r2, #0x10 + strh r0, [r1, #0x18] + strh r2, [r1, #0x1a] + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_080FA990: .4byte 0x03005B60 +_080FA994: .4byte 0x080FA999 + thumb_func_end FldEff_UseSecretPowerCave + + thumb_func_start StartSecretBaseCaveFieldEffect +StartSecretBaseCaveFieldEffect: @ 0x080FA998 + push {lr} + movs r0, #0xb + bl FieldEffectActiveListRemove + movs r0, #0x37 + bl FieldEffectStart + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end StartSecretBaseCaveFieldEffect + + thumb_func_start FldEff_SecretPowerCave +FldEff_SecretPowerCave: @ 0x080FA9AC + push {r4, lr} + bl AdjustSecretPowerSpritePixelOffsets + ldr r0, _080FA9EC + ldr r3, _080FA9F0 + ldr r1, _080FA9F4 + ldrb r1, [r1, #4] + lsls r2, r1, #4 + adds r2, r2, r1 + lsls r2, r2, #2 + adds r2, r2, r3 + ldrh r1, [r2, #2] + lsls r1, r1, #0x17 + lsrs r1, r1, #0x17 + ldr r4, _080FA9F8 + ldr r3, [r4, #0x14] + adds r1, r1, r3 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldrb r2, [r2] + ldr r3, [r4, #0x18] + adds r2, r2, r3 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + movs r3, #0x94 + bl CreateSprite + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080FA9EC: .4byte 0x0856A1E4 +_080FA9F0: .4byte 0x020205AC +_080FA9F4: .4byte 0x02037230 +_080FA9F8: .4byte 0x020388A8 + thumb_func_end FldEff_SecretPowerCave + + thumb_func_start CaveEntranceSpriteCallback1 +CaveEntranceSpriteCallback1: @ 0x080FA9FC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x83 + bl PlaySE + movs r0, #0 + strh r0, [r4, #0x2e] + ldr r0, _080FAA14 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FAA14: .4byte 0x080FAA19 + thumb_func_end CaveEntranceSpriteCallback1 + + thumb_func_start ShrubEntranceSpriteCallback2 +ShrubEntranceSpriteCallback2: @ 0x080FAA18 + push {lr} + adds r1, r0, #0 + ldrh r2, [r1, #0x2e] + movs r3, #0x2e + ldrsh r0, [r1, r3] + cmp r0, #0x27 + bgt _080FAA38 + adds r0, r2, #1 + strh r0, [r1, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x14 + bne _080FAA40 + bl ToggleSecretBaseEntranceMetatile + b _080FAA40 +_080FAA38: + movs r0, #0 + strh r0, [r1, #0x2e] + ldr r0, _080FAA44 + str r0, [r1, #0x1c] +_080FAA40: + pop {r0} + bx r0 + .align 2, 0 +_080FAA44: .4byte 0x080FAA49 + thumb_func_end ShrubEntranceSpriteCallback2 + + thumb_func_start CaveEntranceSpriteCallbackEnd +CaveEntranceSpriteCallbackEnd: @ 0x080FAA48 + push {lr} + movs r1, #0x37 + bl FieldEffectStop + bl EnableBothScriptContexts + pop {r0} + bx r0 + thumb_func_end CaveEntranceSpriteCallbackEnd + + thumb_func_start FieldCallback_SecretBaseShrub +FieldCallback_SecretBaseShrub: @ 0x080FAA58 + push {lr} + bl GetCursorSelectionMonId + ldr r1, _080FAA70 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [r1] + ldr r0, _080FAA74 + bl ScriptContext1_SetupScript + pop {r0} + bx r0 + .align 2, 0 +_080FAA70: .4byte 0x020388A8 +_080FAA74: .4byte 0x08245B8E + thumb_func_end FieldCallback_SecretBaseShrub + + thumb_func_start FldEff_UseSecretPowerShrub +FldEff_UseSecretPowerShrub: @ 0x080FAA78 + push {lr} + bl oei_task_add + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080FAA9C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r2, _080FAAA0 + lsrs r0, r2, #0x10 + strh r0, [r1, #0x18] + strh r2, [r1, #0x1a] + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_080FAA9C: .4byte 0x03005B60 +_080FAAA0: .4byte 0x080FAAA5 + thumb_func_end FldEff_UseSecretPowerShrub + + thumb_func_start StartSecretBaseTreeFieldEffect +StartSecretBaseTreeFieldEffect: @ 0x080FAAA4 + push {lr} + movs r0, #0x1a + bl FieldEffectActiveListRemove + movs r0, #0x38 + bl FieldEffectStart + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end StartSecretBaseTreeFieldEffect + + thumb_func_start FldEff_SecretPowerTree +FldEff_SecretPowerTree: @ 0x080FAAB8 + push {r4, lr} + ldr r1, _080FAB30 + movs r2, #0 + ldrsh r0, [r1, r2] + movs r2, #2 + ldrsh r1, [r1, r2] + bl MapGridGetMetatileBehaviorAt + adds r2, r0, #0 + ldr r1, _080FAB34 + adds r0, r1, #0 + ands r2, r0 + cmp r2, #0x96 + bne _080FAADA + ldr r1, _080FAB38 + movs r0, #0 + str r0, [r1, #0x1c] +_080FAADA: + cmp r2, #0x9c + bne _080FAAE4 + ldr r1, _080FAB38 + movs r0, #2 + str r0, [r1, #0x1c] +_080FAAE4: + bl AdjustSecretPowerSpritePixelOffsets + ldr r0, _080FAB3C + ldr r3, _080FAB40 + ldr r1, _080FAB44 + ldrb r1, [r1, #4] + lsls r2, r1, #4 + adds r2, r2, r1 + lsls r2, r2, #2 + adds r2, r2, r3 + ldrh r1, [r2, #2] + lsls r1, r1, #0x17 + lsrs r1, r1, #0x17 + ldr r4, _080FAB38 + ldr r3, [r4, #0x14] + adds r1, r1, r3 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldrb r2, [r2] + ldr r3, [r4, #0x18] + adds r2, r2, r3 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + movs r3, #0x94 + bl CreateSprite + ldr r0, [r4, #0x1c] + cmp r0, #1 + beq _080FAB22 + cmp r0, #3 + bne _080FAB26 +_080FAB22: + bl ToggleSecretBaseEntranceMetatile +_080FAB26: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080FAB30: .4byte 0x0203A80C +_080FAB34: .4byte 0x00000FFF +_080FAB38: .4byte 0x020388A8 +_080FAB3C: .4byte 0x0856A1FC +_080FAB40: .4byte 0x020205AC +_080FAB44: .4byte 0x02037230 + thumb_func_end FldEff_SecretPowerTree + + thumb_func_start TreeEntranceSpriteCallback1 +TreeEntranceSpriteCallback1: @ 0x080FAB48 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x9b + bl PlaySE + ldr r0, _080FAB6C + ldr r1, [r0, #0x1c] + adds r2, r4, #0 + adds r2, #0x2a + movs r0, #0 + strb r1, [r2] + strh r0, [r4, #0x2e] + ldr r0, _080FAB70 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FAB6C: .4byte 0x020388A8 +_080FAB70: .4byte 0x080FAB75 + thumb_func_end TreeEntranceSpriteCallback1 + + thumb_func_start TreeEntranceSpriteCallback2 +TreeEntranceSpriteCallback2: @ 0x080FAB74 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x27 + ble _080FAB9E + ldr r0, _080FABA4 + ldr r0, [r0, #0x1c] + cmp r0, #0 + beq _080FAB92 + cmp r0, #2 + bne _080FAB96 +_080FAB92: + bl ToggleSecretBaseEntranceMetatile +_080FAB96: + movs r0, #0 + strh r0, [r4, #0x2e] + ldr r0, _080FABA8 + str r0, [r4, #0x1c] +_080FAB9E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FABA4: .4byte 0x020388A8 +_080FABA8: .4byte 0x080FABAD + thumb_func_end TreeEntranceSpriteCallback2 + + thumb_func_start TreeEntranceSpriteCallbackEnd +TreeEntranceSpriteCallbackEnd: @ 0x080FABAC + push {lr} + movs r1, #0x38 + bl FieldEffectStop + bl EnableBothScriptContexts + pop {r0} + bx r0 + thumb_func_end TreeEntranceSpriteCallbackEnd + + thumb_func_start FieldCallback_SecretBaseTree +FieldCallback_SecretBaseTree: @ 0x080FABBC + push {lr} + bl GetCursorSelectionMonId + ldr r1, _080FABD4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [r1] + ldr r0, _080FABD8 + bl ScriptContext1_SetupScript + pop {r0} + bx r0 + .align 2, 0 +_080FABD4: .4byte 0x020388A8 +_080FABD8: .4byte 0x08245BE7 + thumb_func_end FieldCallback_SecretBaseTree + + thumb_func_start FldEff_UseSecretPowerTree +FldEff_UseSecretPowerTree: @ 0x080FABDC + push {lr} + bl oei_task_add + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080FAC00 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r2, _080FAC04 + lsrs r0, r2, #0x10 + strh r0, [r1, #0x18] + strh r2, [r1, #0x1a] + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_080FAC00: .4byte 0x03005B60 +_080FAC04: .4byte 0x080FAC09 + thumb_func_end FldEff_UseSecretPowerTree + + thumb_func_start StartSecretBaseShrubFieldEffect +StartSecretBaseShrubFieldEffect: @ 0x080FAC08 + push {lr} + movs r0, #0x1b + bl FieldEffectActiveListRemove + movs r0, #0x39 + bl FieldEffectStart + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end StartSecretBaseShrubFieldEffect + + thumb_func_start FldEff_SecretPowerShrub +FldEff_SecretPowerShrub: @ 0x080FAC1C + push {r4, lr} + bl AdjustSecretPowerSpritePixelOffsets + ldr r0, _080FAC5C + ldr r3, _080FAC60 + ldr r1, _080FAC64 + ldrb r1, [r1, #4] + lsls r2, r1, #4 + adds r2, r2, r1 + lsls r2, r2, #2 + adds r2, r2, r3 + ldrh r1, [r2, #2] + lsls r1, r1, #0x17 + lsrs r1, r1, #0x17 + ldr r4, _080FAC68 + ldr r3, [r4, #0x14] + adds r1, r1, r3 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldrb r2, [r2] + ldr r3, [r4, #0x18] + adds r2, r2, r3 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + movs r3, #0x94 + bl CreateSprite + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080FAC5C: .4byte 0x0856A214 +_080FAC60: .4byte 0x020205AC +_080FAC64: .4byte 0x02037230 +_080FAC68: .4byte 0x020388A8 + thumb_func_end FldEff_SecretPowerShrub + + thumb_func_start ShrubEntranceSpriteCallback1 +ShrubEntranceSpriteCallback1: @ 0x080FAC6C + push {r4, lr} + adds r4, r0, #0 + movs r0, #0xa9 + bl PlaySE + movs r0, #0 + strh r0, [r4, #0x2e] + ldr r0, _080FAC84 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FAC84: .4byte 0x080FAC89 + thumb_func_end ShrubEntranceSpriteCallback1 + + thumb_func_start CaveEntranceSpriteCallback2 +CaveEntranceSpriteCallback2: @ 0x080FAC88 + push {lr} + adds r1, r0, #0 + ldrh r2, [r1, #0x2e] + movs r3, #0x2e + ldrsh r0, [r1, r3] + cmp r0, #0x27 + bgt _080FACA8 + adds r0, r2, #1 + strh r0, [r1, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x14 + bne _080FACB0 + bl ToggleSecretBaseEntranceMetatile + b _080FACB0 +_080FACA8: + movs r0, #0 + strh r0, [r1, #0x2e] + ldr r0, _080FACB4 + str r0, [r1, #0x1c] +_080FACB0: + pop {r0} + bx r0 + .align 2, 0 +_080FACB4: .4byte 0x080FACB9 + thumb_func_end CaveEntranceSpriteCallback2 + + thumb_func_start ShrubEntranceSpriteCallbackEnd +ShrubEntranceSpriteCallbackEnd: @ 0x080FACB8 + push {lr} + movs r1, #0x39 + bl FieldEffectStop + bl EnableBothScriptContexts + pop {r0} + bx r0 + thumb_func_end ShrubEntranceSpriteCallbackEnd + + thumb_func_start FldEff_SecretBasePCTurnOn +FldEff_SecretBasePCTurnOn: @ 0x080FACC8 + push {r4, lr} + sub sp, #4 + mov r4, sp + adds r4, #2 + mov r0, sp + adds r1, r4, #0 + bl GetXYCoordsOneStepInFrontOfPlayer + ldr r0, _080FAD08 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080FAD0C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + mov r0, sp + ldrh r0, [r0] + movs r2, #0 + strh r0, [r1, #8] + ldrh r0, [r4] + strh r0, [r1, #0xa] + strh r2, [r1, #0xc] + movs r0, #0 + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080FAD08: .4byte 0x080FAD11 +_080FAD0C: .4byte 0x03005B60 + thumb_func_end FldEff_SecretBasePCTurnOn + + thumb_func_start Task_SecretBasePCTurnOn +Task_SecretBasePCTurnOn: @ 0x080FAD10 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080FAD38 + adds r4, r0, r1 + ldrh r0, [r4, #4] + subs r0, #4 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x10 + bhi _080FADDE + lsls r0, r0, #2 + ldr r1, _080FAD3C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080FAD38: .4byte 0x03005B68 +_080FAD3C: .4byte 0x080FAD40 +_080FAD40: @ jump table + .4byte _080FAD84 @ case 0 + .4byte _080FADDE @ case 1 + .4byte _080FADDE @ case 2 + .4byte _080FADDE @ case 3 + .4byte _080FAD92 @ case 4 + .4byte _080FADDE @ case 5 + .4byte _080FADDE @ case 6 + .4byte _080FADDE @ case 7 + .4byte _080FAD84 @ case 8 + .4byte _080FADDE @ case 9 + .4byte _080FADDE @ case 10 + .4byte _080FADDE @ case 11 + .4byte _080FAD92 @ case 12 + .4byte _080FADDE @ case 13 + .4byte _080FADDE @ case 14 + .4byte _080FADDE @ case 15 + .4byte _080FADB0 @ case 16 +_080FAD84: + movs r1, #0 + ldrsh r0, [r4, r1] + movs r2, #2 + ldrsh r1, [r4, r2] + movs r2, #0x89 + lsls r2, r2, #2 + b _080FAD9E +_080FAD92: + movs r1, #0 + ldrsh r0, [r4, r1] + movs r2, #2 + ldrsh r1, [r4, r2] + movs r2, #0x88 + lsls r2, r2, #2 +_080FAD9E: + bl MapGridSetMetatileIdAt + movs r1, #0 + ldrsh r0, [r4, r1] + movs r2, #2 + ldrsh r1, [r4, r2] + bl CurrentMapDrawMetatileAt + b _080FADDE +_080FADB0: + movs r1, #0 + ldrsh r0, [r4, r1] + movs r2, #2 + ldrsh r1, [r4, r2] + movs r2, #0x89 + lsls r2, r2, #2 + bl MapGridSetMetatileIdAt + movs r1, #0 + ldrsh r0, [r4, r1] + movs r2, #2 + ldrsh r1, [r4, r2] + bl CurrentMapDrawMetatileAt + movs r0, #0x3d + bl FieldEffectActiveListRemove + bl EnableBothScriptContexts + adds r0, r5, #0 + bl DestroyTask + b _080FADE4 +_080FADDE: + ldrh r0, [r4, #4] + adds r0, #1 + strh r0, [r4, #4] +_080FADE4: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Task_SecretBasePCTurnOn + + thumb_func_start DoSecretBasePCTurnOffEffect +DoSecretBasePCTurnOffEffect: @ 0x080FADEC + push {r4, lr} + sub sp, #4 + mov r4, sp + adds r4, #2 + mov r0, sp + adds r1, r4, #0 + bl GetXYCoordsOneStepInFrontOfPlayer + movs r0, #3 + bl PlaySE + ldr r0, _080FAE24 + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080FAE28 + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0 + ldrsh r1, [r4, r2] + movs r2, #0xe2 + lsls r2, r2, #4 + bl MapGridSetMetatileIdAt + b _080FAE38 + .align 2, 0 +_080FAE24: .4byte 0x00004054 +_080FAE28: + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0 + ldrsh r1, [r4, r2] + ldr r2, _080FAE50 + bl MapGridSetMetatileIdAt +_080FAE38: + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0 + ldrsh r1, [r4, r2] + bl CurrentMapDrawMetatileAt + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FAE50: .4byte 0x00000E21 + thumb_func_end DoSecretBasePCTurnOffEffect + + thumb_func_start PopSecretBaseBalloon +PopSecretBaseBalloon: @ 0x080FAE54 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + ldr r0, _080FAE94 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080FAE98 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r0, #0 + strh r4, [r1, #8] + strh r5, [r1, #0xa] + strh r6, [r1, #0xc] + strh r0, [r1, #0xe] + movs r0, #1 + strh r0, [r1, #0x10] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080FAE94: .4byte 0x080FAE9D +_080FAE98: .4byte 0x03005B60 + thumb_func_end PopSecretBaseBalloon + + thumb_func_start Task_PopSecretBaseBalloon +Task_PopSecretBaseBalloon: @ 0x080FAE9C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080FAEBC + adds r4, r0, r1 + ldrh r1, [r4, #6] + movs r2, #6 + ldrsh r0, [r4, r2] + cmp r0, #6 + bne _080FAEC0 + movs r0, #0 + b _080FAEC2 + .align 2, 0 +_080FAEBC: .4byte 0x03005B68 +_080FAEC0: + adds r0, r1, #1 +_080FAEC2: + strh r0, [r4, #6] + movs r3, #6 + ldrsh r0, [r4, r3] + cmp r0, #0 + bne _080FAF14 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #2 + bne _080FAEDC + movs r2, #0 + ldrsh r0, [r4, r2] + bl DoBalloonSoundEffect +_080FAEDC: + movs r3, #2 + ldrsh r0, [r4, r3] + movs r2, #4 + ldrsh r1, [r4, r2] + ldrh r2, [r4, #8] + ldrh r3, [r4] + adds r2, r2, r3 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + bl MapGridSetMetatileIdAt + movs r1, #2 + ldrsh r0, [r4, r1] + movs r2, #4 + ldrsh r1, [r4, r2] + bl CurrentMapDrawMetatileAt + ldrh r1, [r4, #8] + movs r3, #8 + ldrsh r0, [r4, r3] + cmp r0, #3 + bne _080FAF10 + adds r0, r5, #0 + bl DestroyTask + b _080FAF14 +_080FAF10: + adds r0, r1, #1 + strh r0, [r4, #8] +_080FAF14: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Task_PopSecretBaseBalloon + + thumb_func_start DoBalloonSoundEffect +DoBalloonSoundEffect: @ 0x080FAF1C + push {lr} + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + movs r0, #0xce + lsls r0, r0, #2 + cmp r1, r0 + beq _080FAF48 + cmp r1, r0 + bgt _080FAF38 + movs r0, #0x8a + lsls r0, r0, #2 + cmp r1, r0 + beq _080FAF60 + b _080FAF66 +_080FAF38: + movs r0, #0xcf + lsls r0, r0, #2 + cmp r1, r0 + beq _080FAF50 + adds r0, #4 + cmp r1, r0 + beq _080FAF58 + b _080FAF66 +_080FAF48: + movs r0, #0x4a + bl PlaySE + b _080FAF66 +_080FAF50: + movs r0, #0x4b + bl PlaySE + b _080FAF66 +_080FAF58: + movs r0, #0x4c + bl PlaySE + b _080FAF66 +_080FAF60: + movs r0, #0x4e + bl PlaySE +_080FAF66: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end DoBalloonSoundEffect + + thumb_func_start FldEff_NopA700 +FldEff_NopA700: @ 0x080FAF6C + movs r0, #0 + bx lr + thumb_func_end FldEff_NopA700 + + thumb_func_start FldEff_NopA6FC +FldEff_NopA6FC: @ 0x080FAF70 + movs r0, #0 + bx lr + thumb_func_end FldEff_NopA6FC + + thumb_func_start DoSecretBaseBreakableDoorEffect +DoSecretBaseBreakableDoorEffect: @ 0x080FAF74 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + movs r0, #0x4d + bl PlaySE + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + ldr r2, _080FAFBC + adds r0, r5, #0 + adds r1, r4, #0 + bl MapGridSetMetatileIdAt + subs r6, r4, #1 + ldr r2, _080FAFC0 + 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, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080FAFBC: .4byte 0x00000276 +_080FAFC0: .4byte 0x0000026E + thumb_func_end DoSecretBaseBreakableDoorEffect + + thumb_func_start Task_ShatterSecretBaseBreakableDoor +Task_ShatterSecretBaseBreakableDoor: @ 0x080FAFC4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _080FAFF4 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r1, r0, r1 + ldrh r2, [r1, #8] + movs r3, #8 + ldrsh r0, [r1, r3] + cmp r0, #7 + bne _080FAFF8 + movs r2, #0xa + ldrsh r0, [r1, r2] + movs r3, #0xc + ldrsh r1, [r1, r3] + bl DoSecretBaseBreakableDoorEffect + adds r0, r4, #0 + bl DestroyTask + b _080FAFFC + .align 2, 0 +_080FAFF4: .4byte 0x03005B60 +_080FAFF8: + adds r0, r2, #1 + strh r0, [r1, #8] +_080FAFFC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Task_ShatterSecretBaseBreakableDoor + + thumb_func_start ShatterSecretBaseBreakableDoor +ShatterSecretBaseBreakableDoor: @ 0x080FB004 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r7, r5, #0 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + adds r6, r4, #0 + bl GetPlayerFacingDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080FB02C + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + lsls r1, r4, #0x10 + asrs r1, r1, #0x10 + bl DoSecretBaseBreakableDoorEffect + b _080FB04E +_080FB02C: + cmp r0, #2 + bne _080FB04E + ldr r0, _080FB054 + movs r1, #5 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080FB058 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r0, #0 + strh r0, [r1, #8] + strh r7, [r1, #0xa] + strh r6, [r1, #0xc] +_080FB04E: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080FB054: .4byte 0x080FAFC5 +_080FB058: .4byte 0x03005B60 + thumb_func_end ShatterSecretBaseBreakableDoor + + thumb_func_start Task_SecretBaseMusicNoteMatSound +Task_SecretBaseMusicNoteMatSound: @ 0x080FB05C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _080FB094 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r1, r0, r1 + ldrh r2, [r1, #0xa] + movs r3, #0xa + ldrsh r0, [r1, r3] + cmp r0, #7 + beq _080FB078 + b _080FB1D6 +_080FB078: + ldr r2, _080FB098 + adds r0, r2, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x3b + bls _080FB08A + b _080FB1CE +_080FB08A: + lsls r0, r0, #2 + ldr r1, _080FB09C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080FB094: .4byte 0x03005B60 +_080FB098: .4byte 0xFFFFFD88 +_080FB09C: .4byte 0x080FB0A0 +_080FB0A0: @ jump table + .4byte _080FB190 @ case 0 + .4byte _080FB198 @ case 1 + .4byte _080FB1A0 @ case 2 + .4byte _080FB1A8 @ case 3 + .4byte _080FB1B0 @ case 4 + .4byte _080FB1B8 @ case 5 + .4byte _080FB1C0 @ case 6 + .4byte _080FB1CE @ case 7 + .4byte _080FB1CE @ case 8 + .4byte _080FB1CE @ case 9 + .4byte _080FB1CE @ case 10 + .4byte _080FB1CE @ case 11 + .4byte _080FB1CE @ case 12 + .4byte _080FB1CE @ case 13 + .4byte _080FB1CE @ case 14 + .4byte _080FB1CE @ case 15 + .4byte _080FB1CE @ case 16 + .4byte _080FB1CE @ case 17 + .4byte _080FB1CE @ case 18 + .4byte _080FB1CE @ case 19 + .4byte _080FB1CE @ case 20 + .4byte _080FB1CE @ case 21 + .4byte _080FB1CE @ case 22 + .4byte _080FB1CE @ case 23 + .4byte _080FB1CE @ case 24 + .4byte _080FB1CE @ case 25 + .4byte _080FB1CE @ case 26 + .4byte _080FB1CE @ case 27 + .4byte _080FB1CE @ case 28 + .4byte _080FB1CE @ case 29 + .4byte _080FB1CE @ case 30 + .4byte _080FB1CE @ case 31 + .4byte _080FB1CE @ case 32 + .4byte _080FB1CE @ case 33 + .4byte _080FB1CE @ case 34 + .4byte _080FB1CE @ case 35 + .4byte _080FB1CE @ case 36 + .4byte _080FB1CE @ case 37 + .4byte _080FB1CE @ case 38 + .4byte _080FB1CE @ case 39 + .4byte _080FB1CE @ case 40 + .4byte _080FB1CE @ case 41 + .4byte _080FB1CE @ case 42 + .4byte _080FB1CE @ case 43 + .4byte _080FB1CE @ case 44 + .4byte _080FB1CE @ case 45 + .4byte _080FB1CE @ case 46 + .4byte _080FB1CE @ case 47 + .4byte _080FB1CE @ case 48 + .4byte _080FB1CE @ case 49 + .4byte _080FB1CE @ case 50 + .4byte _080FB1CE @ case 51 + .4byte _080FB1CE @ case 52 + .4byte _080FB1CE @ case 53 + .4byte _080FB1CE @ case 54 + .4byte _080FB1CE @ case 55 + .4byte _080FB1CE @ case 56 + .4byte _080FB1CE @ case 57 + .4byte _080FB1CE @ case 58 + .4byte _080FB1C8 @ case 59 +_080FB190: + movs r0, #0x3e + bl PlaySE + b _080FB1CE +_080FB198: + movs r0, #0x3f + bl PlaySE + b _080FB1CE +_080FB1A0: + movs r0, #0x40 + bl PlaySE + b _080FB1CE +_080FB1A8: + movs r0, #0x41 + bl PlaySE + b _080FB1CE +_080FB1B0: + movs r0, #0x42 + bl PlaySE + b _080FB1CE +_080FB1B8: + movs r0, #0x43 + bl PlaySE + b _080FB1CE +_080FB1C0: + movs r0, #0x44 + bl PlaySE + b _080FB1CE +_080FB1C8: + movs r0, #0x45 + bl PlaySE +_080FB1CE: + adds r0, r4, #0 + bl DestroyTask + b _080FB1DA +_080FB1D6: + adds r0, r2, #1 + strh r0, [r1, #0xa] +_080FB1DA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end Task_SecretBaseMusicNoteMatSound + + thumb_func_start PlaySecretBaseMusicNoteMatSound +PlaySecretBaseMusicNoteMatSound: @ 0x080FB1E0 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r0, _080FB20C + movs r1, #5 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080FB210 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r0, #0 + strh r4, [r1, #8] + strh r0, [r1, #0xa] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FB20C: .4byte 0x080FB05D +_080FB210: .4byte 0x03005B60 + thumb_func_end PlaySecretBaseMusicNoteMatSound + + thumb_func_start SpriteCB_GlitterMatSparkle +SpriteCB_GlitterMatSparkle: @ 0x080FB214 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #8 + bne _080FB22C + movs r0, #0xc3 + bl PlaySE +_080FB22C: + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0x1f + ble _080FB23A + adds r0, r4, #0 + bl DestroySprite +_080FB23A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end SpriteCB_GlitterMatSparkle + + thumb_func_start DoSecretBaseGlitterMatSparkle +DoSecretBaseGlitterMatSparkle: @ 0x080FB240 + push {r4, lr} + sub sp, #4 + ldr r3, _080FB2D8 + ldr r2, _080FB2DC + ldrb r1, [r2, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r0, #0x10] + mov r0, sp + strh r1, [r0] + ldrb r1, [r2, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r0, [r0, #0x12] + mov r4, sp + adds r4, #2 + strh r0, [r4] + mov r0, sp + adds r1, r4, #0 + movs r2, #8 + movs r3, #4 + bl sub_08092A50 + ldr r0, _080FB2E0 + 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, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _080FB2CE + ldr r3, _080FB2E4 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r4, r2, r3 + movs r0, #0x3e + adds r0, r0, r4 + mov ip, r0 + ldrb r0, [r0] + movs r1, #2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrb r1, [r4, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + movs r1, #0xf + ands r0, r1 + movs r1, #0x50 + orrs r0, r1 + strb r0, [r4, #5] + adds r3, #0x1c + adds r2, r2, r3 + ldr r0, _080FB2E8 + str r0, [r2] + movs r0, #0 + strh r0, [r4, #0x2e] +_080FB2CE: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FB2D8: .4byte 0x02036FF0 +_080FB2DC: .4byte 0x02037230 +_080FB2E0: .4byte 0x084DDE4C +_080FB2E4: .4byte 0x020205AC +_080FB2E8: .4byte 0x080FB215 + thumb_func_end DoSecretBaseGlitterMatSparkle + + thumb_func_start FldEff_SandPillar +FldEff_SandPillar: @ 0x080FB2EC + push {r4, lr} + sub sp, #4 + bl ScriptContext2_Enable + mov r4, sp + adds r4, #2 + mov r0, sp + adds r1, r4, #0 + bl GetXYCoordsOneStepInFrontOfPlayer + ldr r1, _080FB328 + 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 GetPlayerFacingDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + beq _080FB36C + cmp r0, #2 + bgt _080FB32C + cmp r0, #1 + beq _080FB336 + b _080FB3FC + .align 2, 0 +_080FB328: .4byte 0x020388A8 +_080FB32C: + cmp r0, #3 + beq _080FB39C + cmp r0, #4 + beq _080FB3D4 + b _080FB3FC +_080FB336: + ldr r0, _080FB360 + ldr r3, _080FB364 + ldr r1, _080FB368 + ldrb r1, [r1, #4] + lsls r2, r1, #4 + adds r2, r2, r1 + lsls r2, r2, #2 + adds r2, r2, r3 + ldrh r1, [r2, #2] + lsls r1, r1, #0x17 + lsrs r1, r1, #7 + movs r3, #0x80 + lsls r3, r3, #0xc + adds r1, r1, r3 + asrs r1, r1, #0x10 + ldrb r2, [r2] + adds r2, #0x20 + movs r3, #0 + bl CreateSprite + b _080FB3FC + .align 2, 0 +_080FB360: .4byte 0x0856A270 +_080FB364: .4byte 0x020205AC +_080FB368: .4byte 0x02037230 +_080FB36C: + ldr r0, _080FB390 + ldr r3, _080FB394 + ldr r1, _080FB398 + ldrb r1, [r1, #4] + lsls r2, r1, #4 + adds r2, r2, r1 + lsls r2, r2, #2 + adds r2, r2, r3 + ldrh r1, [r2, #2] + lsls r1, r1, #0x17 + lsrs r1, r1, #7 + movs r3, #0x80 + lsls r3, r3, #0xc + adds r1, r1, r3 + asrs r1, r1, #0x10 + ldrb r2, [r2] + b _080FB3BC + .align 2, 0 +_080FB390: .4byte 0x0856A270 +_080FB394: .4byte 0x020205AC +_080FB398: .4byte 0x02037230 +_080FB39C: + ldr r0, _080FB3C4 + ldr r3, _080FB3C8 + ldr r1, _080FB3CC + ldrb r1, [r1, #4] + lsls r2, r1, #4 + adds r2, r2, r1 + lsls r2, r2, #2 + adds r2, r2, r3 + ldrh r1, [r2, #2] + lsls r1, r1, #0x17 + lsrs r1, r1, #7 + ldr r3, _080FB3D0 + adds r1, r1, r3 + asrs r1, r1, #0x10 + ldrb r2, [r2] + adds r2, #0x10 +_080FB3BC: + movs r3, #0x94 + bl CreateSprite + b _080FB3FC + .align 2, 0 +_080FB3C4: .4byte 0x0856A270 +_080FB3C8: .4byte 0x020205AC +_080FB3CC: .4byte 0x02037230 +_080FB3D0: .4byte 0xFFF80000 +_080FB3D4: + ldr r0, _080FB408 + ldr r3, _080FB40C + ldr r1, _080FB410 + ldrb r1, [r1, #4] + lsls r2, r1, #4 + adds r2, r2, r1 + lsls r2, r2, #2 + adds r2, r2, r3 + ldrh r1, [r2, #2] + lsls r1, r1, #0x17 + lsrs r1, r1, #7 + movs r3, #0xc0 + lsls r3, r3, #0xd + adds r1, r1, r3 + asrs r1, r1, #0x10 + ldrb r2, [r2] + adds r2, #0x10 + movs r3, #0x94 + bl CreateSprite +_080FB3FC: + movs r0, #0 + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080FB408: .4byte 0x0856A270 +_080FB40C: .4byte 0x020205AC +_080FB410: .4byte 0x02037230 + thumb_func_end FldEff_SandPillar + + thumb_func_start SpriteCB_SandPillar_0 +SpriteCB_SandPillar_0: @ 0x080FB414 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x83 + bl PlaySE + ldr r4, _080FB440 + ldr r0, [r4, #0x14] + ldr r1, [r4, #0x18] + subs r1, #1 + bl MapGridGetMetatileIdAt + ldr r1, _080FB444 + cmp r0, r1 + bne _080FB44C + ldr r0, [r4, #0x14] + ldr r1, [r4, #0x18] + subs r1, #1 + ldr r2, _080FB448 + bl MapGridSetMetatileIdAt + b _080FB45A + .align 2, 0 +_080FB440: .4byte 0x020388A8 +_080FB444: .4byte 0x00000286 +_080FB448: .4byte 0x00000E02 +_080FB44C: + ldr r0, [r4, #0x14] + ldr r1, [r4, #0x18] + subs r1, #1 + movs r2, #0xa1 + lsls r2, r2, #2 + bl MapGridSetMetatileIdAt +_080FB45A: + ldr r4, _080FB488 + ldr r0, [r4, #0x14] + ldr r1, [r4, #0x18] + ldr r2, _080FB48C + bl MapGridSetMetatileIdAt + ldr r0, [r4, #0x14] + ldr r1, [r4, #0x18] + subs r1, #1 + bl CurrentMapDrawMetatileAt + ldr r0, [r4, #0x14] + ldr r1, [r4, #0x18] + bl CurrentMapDrawMetatileAt + movs r0, #0 + strh r0, [r5, #0x2e] + ldr r0, _080FB490 + str r0, [r5, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FB488: .4byte 0x020388A8 +_080FB48C: .4byte 0x0000020A +_080FB490: .4byte 0x080FB495 + thumb_func_end SpriteCB_SandPillar_0 + + thumb_func_start SpriteCB_SandPillar_1 +SpriteCB_SandPillar_1: @ 0x080FB494 + push {r4, r5, lr} + adds r5, r0, #0 + ldrh r1, [r5, #0x2e] + movs r2, #0x2e + ldrsh r0, [r5, r2] + cmp r0, #0x11 + bgt _080FB4A8 + adds r0, r1, #1 + strh r0, [r5, #0x2e] + b _080FB4C4 +_080FB4A8: + ldr r4, _080FB4CC + ldr r0, [r4, #0x14] + ldr r1, [r4, #0x18] + ldr r2, _080FB4D0 + bl MapGridSetMetatileIdAt + ldr r0, [r4, #0x14] + ldr r1, [r4, #0x18] + bl CurrentMapDrawMetatileAt + movs r0, #0 + strh r0, [r5, #0x2e] + ldr r0, _080FB4D4 + str r0, [r5, #0x1c] +_080FB4C4: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FB4CC: .4byte 0x020388A8 +_080FB4D0: .4byte 0x00000E8C +_080FB4D4: .4byte 0x080FB4D9 + thumb_func_end SpriteCB_SandPillar_1 + + thumb_func_start SpriteCB_SandPillar_2 +SpriteCB_SandPillar_2: @ 0x080FB4D8 + push {lr} + movs r1, #0x34 + bl FieldEffectStop + bl EnableBothScriptContexts + pop {r0} + bx r0 + thumb_func_end SpriteCB_SandPillar_2 + + thumb_func_start GetShieldToyTVDecorationInfo +GetShieldToyTVDecorationInfo: @ 0x080FB4E8 + push {r4, lr} + sub sp, #4 + mov r4, sp + adds r4, #2 + 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, _080FB520 + cmp r1, r0 + beq _080FB5DC + cmp r1, r0 + bgt _080FB524 + subs r0, #0x17 + cmp r1, r0 + beq _080FB584 + adds r0, #0x16 + cmp r1, r0 + beq _080FB5D0 + b _080FB63E + .align 2, 0 +_080FB520: .4byte 0x000002F5 +_080FB524: + ldr r0, _080FB568 + cmp r1, r0 + beq _080FB614 + adds r0, #0x40 + cmp r1, r0 + beq _080FB532 + b _080FB63E +_080FB532: + ldr r0, _080FB56C + movs r1, #0x64 + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r0, _080FB570 + ldr r1, _080FB574 + bl StringCopy + ldr r1, _080FB578 + movs r0, #0 + strh r0, [r1] + ldr r0, _080FB57C + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080FB63E + ldr r4, _080FB580 + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r0, #0x10 + b _080FB5FA + .align 2, 0 +_080FB568: .4byte 0x000002F6 +_080FB56C: .4byte 0x02021C40 +_080FB570: .4byte 0x02021C54 +_080FB574: .4byte 0x085CA73F +_080FB578: .4byte 0x02037290 +_080FB57C: .4byte 0x00004054 +_080FB580: .4byte 0x000040EE +_080FB584: + ldr r0, _080FB5B8 + movs r1, #0x32 + movs r2, #0 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r0, _080FB5BC + ldr r1, _080FB5C0 + bl StringCopy + ldr r1, _080FB5C4 + movs r0, #0 + strh r0, [r1] + ldr r0, _080FB5C8 + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080FB63E + ldr r4, _080FB5CC + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r0, #0x20 + b _080FB5FA + .align 2, 0 +_080FB5B8: .4byte 0x02021C40 +_080FB5BC: .4byte 0x02021C54 +_080FB5C0: .4byte 0x085CA742 +_080FB5C4: .4byte 0x02037290 +_080FB5C8: .4byte 0x00004054 +_080FB5CC: .4byte 0x000040EE +_080FB5D0: + ldr r1, _080FB5D8 + movs r0, #1 + b _080FB5E0 + .align 2, 0 +_080FB5D8: .4byte 0x02037290 +_080FB5DC: + ldr r1, _080FB608 + movs r0, #2 +_080FB5E0: + strh r0, [r1] + ldr r0, _080FB60C + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080FB63E + ldr r4, _080FB610 + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r0, #0x80 +_080FB5FA: + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl VarSet + b _080FB63E + .align 2, 0 +_080FB608: .4byte 0x02037290 +_080FB60C: .4byte 0x00004054 +_080FB610: .4byte 0x000040EE +_080FB614: + ldr r1, _080FB648 + movs r0, #3 + strh r0, [r1] + ldr r0, _080FB64C + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080FB63E + ldr r4, _080FB650 + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r0, #0x80 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl VarSet +_080FB63E: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FB648: .4byte 0x02037290 +_080FB64C: .4byte 0x00004054 +_080FB650: .4byte 0x000040EE + thumb_func_end GetShieldToyTVDecorationInfo + + thumb_func_start sub_080FB654 +sub_080FB654: @ 0x080FB654 + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r6, r4, #0 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + bl CurMapIsSecretBase + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FB698 + cmp r5, #0 + bne _080FB68C + ldr r1, _080FB684 + adds r0, r4, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bls _080FB680 + ldr r0, _080FB688 + cmp r4, r0 + bne _080FB698 +_080FB680: + movs r0, #1 + b _080FB69A + .align 2, 0 +_080FB684: .4byte 0xFFFFFD7B +_080FB688: .4byte 0x00000237 +_080FB68C: + ldr r0, _080FB6A0 + cmp r4, r0 + beq _080FB680 + ldr r0, _080FB6A4 + cmp r6, r0 + beq _080FB680 +_080FB698: + movs r0, #0 +_080FB69A: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080FB6A0: .4byte 0x0000028D +_080FB6A4: .4byte 0x0000023F + thumb_func_end sub_080FB654 + + thumb_func_start Task_FieldPoisonEffect +Task_FieldPoisonEffect: @ 0x080FB6A8 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _080FB6CC + adds r1, r0, r1 + movs r3, #0 + ldrsh r0, [r1, r3] + cmp r0, #1 + beq _080FB6E6 + cmp r0, #1 + bgt _080FB6D0 + cmp r0, #0 + beq _080FB6D6 + b _080FB702 + .align 2, 0 +_080FB6CC: .4byte 0x03005B68 +_080FB6D0: + cmp r0, #2 + beq _080FB6FA + b _080FB702 +_080FB6D6: + ldrh r0, [r1, #2] + adds r0, #2 + strh r0, [r1, #2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #8 + ble _080FB702 + b _080FB6F2 +_080FB6E6: + ldrh r0, [r1, #2] + subs r0, #2 + strh r0, [r1, #2] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080FB702 +_080FB6F2: + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _080FB702 +_080FB6FA: + adds r0, r2, #0 + bl DestroyTask + b _080FB712 +_080FB702: + ldrh r0, [r1, #2] + lsls r1, r0, #4 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x4c + bl SetGpuReg +_080FB712: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Task_FieldPoisonEffect + + thumb_func_start FldEffPoison_Start +FldEffPoison_Start: @ 0x080FB718 + push {lr} + movs r0, #0x4f + bl PlaySE + ldr r0, _080FB72C + movs r1, #0x50 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080FB72C: .4byte 0x080FB6A9 + thumb_func_end FldEffPoison_Start + + thumb_func_start sub_080FB730 +sub_080FB730: @ 0x080FB730 + push {lr} + ldr r0, _080FB740 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_080FB740: .4byte 0x080FB6A9 + thumb_func_end sub_080FB730 + + thumb_func_start Task_WateringBerryTreeAnim_0 +Task_WateringBerryTreeAnim_0: @ 0x080FB744 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080FB758 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r0, _080FB75C + str r0, [r1] + bx lr + .align 2, 0 +_080FB758: .4byte 0x03005B60 +_080FB75C: .4byte 0x080FB761 + thumb_func_end Task_WateringBerryTreeAnim_0 + + thumb_func_start Task_WateringBerryTreeAnim_1 +Task_WateringBerryTreeAnim_1: @ 0x080FB760 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _080FB7C4 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080FB7C8 + adds r4, r0, r1 + adds r0, r4, #0 + bl EventObjectIsMovementOverridden + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FB78C + adds r0, r4, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FB7BE +_080FB78C: + bl GetPlayerFacingDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_0808BB8C + bl GetPlayerFacingDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_08092F08 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetHeldMovement + ldr r1, _080FB7CC + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080FB7D0 + str r1, [r0] +_080FB7BE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FB7C4: .4byte 0x02037230 +_080FB7C8: .4byte 0x02036FF0 +_080FB7CC: .4byte 0x03005B60 +_080FB7D0: .4byte 0x080FB7D5 + thumb_func_end Task_WateringBerryTreeAnim_1 + + thumb_func_start Task_WateringBerryTreeAnim_2 +Task_WateringBerryTreeAnim_2: @ 0x080FB7D4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080FB828 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080FB82C + adds r5, r0, r1 + adds r0, r5, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FB838 + ldr r1, _080FB830 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r2, r0, r1 + ldrh r0, [r2, #0xa] + adds r1, r0, #1 + strh r1, [r2, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #9 + bgt _080FB834 + bl GetPlayerFacingDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_08092F08 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl EventObjectSetHeldMovement + b _080FB838 + .align 2, 0 +_080FB828: .4byte 0x02037230 +_080FB82C: .4byte 0x02036FF0 +_080FB830: .4byte 0x03005B60 +_080FB834: + ldr r0, _080FB840 + str r0, [r2] +_080FB838: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FB840: .4byte 0x080FB845 + thumb_func_end Task_WateringBerryTreeAnim_2 + + thumb_func_start Task_WateringBerryTreeAnim_3 +Task_WateringBerryTreeAnim_3: @ 0x080FB844 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl sub_0808B634 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl SetPlayerAvatarTransitionFlags + adds r0, r4, #0 + bl DestroyTask + bl EnableBothScriptContexts + pop {r4} + pop {r0} + bx r0 + thumb_func_end Task_WateringBerryTreeAnim_3 + + thumb_func_start DoWateringBerryTreeAnim +DoWateringBerryTreeAnim: @ 0x080FB868 + push {lr} + ldr r0, _080FB878 + movs r1, #0x50 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080FB878: .4byte 0x080FB745 + thumb_func_end DoWateringBerryTreeAnim + + thumb_func_start CreateRecordMixingSprite +CreateRecordMixingSprite: @ 0x080FB87C + push {r4, r5, lr} + ldr r0, _080FB8D0 + bl LoadSpritePalette + ldr r0, _080FB8D4 + movs r1, #0 + movs r2, #0 + movs r3, #0x52 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x40 + beq _080FB8DC + lsls r0, r5, #4 + adds r0, r0, r5 + lsls r0, r0, #2 + ldr r1, _080FB8D8 + 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_08092960 + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #2 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r4, #0x20] + adds r0, #0x10 + strh r0, [r4, #0x20] + ldrh r0, [r4, #0x22] + adds r0, #2 + strh r0, [r4, #0x22] + adds r0, r5, #0 + b _080FB8DE + .align 2, 0 +_080FB8D0: .4byte 0x0856A448 +_080FB8D4: .4byte 0x0856A464 +_080FB8D8: .4byte 0x020205AC +_080FB8DC: + movs r0, #0x40 +_080FB8DE: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end CreateRecordMixingSprite + + thumb_func_start DestroyRecordMixingSprite +DestroyRecordMixingSprite: @ 0x080FB8E4 + push {r4, r5, r6, r7, lr} + ldr r4, _080FB918 + adds r7, r4, #0 + movs r6, #0 + movs r5, #0x3f +_080FB8EE: + adds r0, r7, #0 + adds r0, #0x14 + adds r0, r6, r0 + ldr r1, [r0] + ldr r0, _080FB91C + cmp r1, r0 + bne _080FB908 + adds r0, r4, #0 + bl FreeSpritePalette + adds r0, r4, #0 + bl DestroySprite +_080FB908: + adds r4, #0x44 + adds r6, #0x44 + subs r5, #1 + cmp r5, #0 + bge _080FB8EE + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080FB918: .4byte 0x020205AC +_080FB91C: .4byte 0x0856A464 + thumb_func_end DestroyRecordMixingSprite + diff --git a/asm/fldeff_rocksmash.s b/asm/fldeff_rocksmash.s new file mode 100644 index 0000000..32cea38 --- /dev/null +++ b/asm/fldeff_rocksmash.s @@ -0,0 +1,495 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start CheckObjectGraphicsInFrontOfPlayer +CheckObjectGraphicsInFrontOfPlayer: @ 0x08135478 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r4, _081354B8 + adds r1, r4, #2 + adds r0, r4, #0 + bl GetXYCoordsOneStepInFrontOfPlayer + bl PlayerGetZCoord + strb r0, [r4, #4] + ldrh r0, [r4] + ldrh r1, [r4, #2] + ldrb r2, [r4, #4] + bl GetEventObjectIdByXYZ + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _081354BC + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r2, r1, r2 + ldrb r0, [r2, #5] + cmp r0, r5 + bne _081354C4 + ldr r1, _081354C0 + ldrb r0, [r2, #8] + strh r0, [r1] + movs r0, #1 + b _081354C6 + .align 2, 0 +_081354B8: .4byte 0x0203A80C +_081354BC: .4byte 0x02036FF0 +_081354C0: .4byte 0x02037292 +_081354C4: + movs r0, #0 +_081354C6: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end CheckObjectGraphicsInFrontOfPlayer + + thumb_func_start oei_task_add +oei_task_add: @ 0x081354CC + push {lr} + ldr r0, _081354E8 + adds r1, r0, #2 + bl GetXYCoordsOneStepInFrontOfPlayer + ldr r0, _081354EC + movs r1, #8 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_081354E8: .4byte 0x0203A80C +_081354EC: .4byte 0x081354F1 + thumb_func_end oei_task_add + + thumb_func_start task08_080C9820 +task08_080C9820: @ 0x081354F0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r6, r5, #0 + bl ScriptContext2_Enable + ldr r1, _08135544 + movs r0, #1 + strb r0, [r1, #6] + ldrb r1, [r1, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08135548 + adds r4, r0, r1 + adds r0, r4, #0 + bl EventObjectIsMovementOverridden + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08135526 + adds r0, r4, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08135572 +_08135526: + ldr r0, _0813554C + ldrb r0, [r0, #0x17] + cmp r0, #5 + bne _08135558 + movs r0, #0x3b + bl FieldEffectStart + ldr r0, _08135550 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _08135554 + b _08135570 + .align 2, 0 +_08135544: .4byte 0x02037230 +_08135548: .4byte 0x02036FF0 +_0813554C: .4byte 0x02036FB8 +_08135550: .4byte 0x03005B60 +_08135554: .4byte 0x081355CD +_08135558: + bl sub_0808BA78 + adds r0, r4, #0 + movs r1, #0x39 + bl EventObjectSetHeldMovement + ldr r0, _08135578 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _0813557C +_08135570: + str r0, [r1] +_08135572: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08135578: .4byte 0x03005B60 +_0813557C: .4byte 0x08135581 + thumb_func_end task08_080C9820 + + thumb_func_start sub_08135580 +sub_08135580: @ 0x08135580 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _081355BC + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _081355C0 + adds r0, r0, r1 + bl EventObjectCheckHeldMovementStatus + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081355B4 + movs r0, #0x3b + bl FieldEffectStart + ldr r0, _081355C4 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081355C8 + str r0, [r1] +_081355B4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081355BC: .4byte 0x02037230 +_081355C0: .4byte 0x02036FF0 +_081355C4: .4byte 0x03005B60 +_081355C8: .4byte 0x081355CD + thumb_func_end sub_08135580 + + thumb_func_start sub_081355CC +sub_081355CC: @ 0x081355CC + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r0, #6 + bl FieldEffectActiveListContains + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _08135650 + bl GetPlayerFacingDirection + ldr r6, _08135658 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [r6, #4] + cmp r0, #1 + bne _081355F2 + str r4, [r6, #8] +_081355F2: + ldr r1, [r6, #4] + cmp r1, #2 + bne _081355FC + movs r0, #1 + str r0, [r6, #8] +_081355FC: + cmp r1, #3 + bne _08135604 + movs r0, #2 + str r0, [r6, #8] +_08135604: + cmp r1, #4 + bne _0813560C + movs r0, #3 + str r0, [r6, #8] +_0813560C: + ldr r5, _0813565C + ldrb r0, [r5, #5] + lsls r4, r0, #3 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _08135660 + adds r4, r4, r0 + bl GetPlayerAvatarGraphicsIdByCurrentState + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetGraphicsId + ldrb r1, [r5, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08135664 + adds r0, r0, r1 + ldrb r1, [r6, #8] + bl StartSpriteAnim + movs r0, #6 + bl FieldEffectActiveListRemove + ldr r1, _08135668 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0813566C + str r1, [r0] +_08135650: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08135658: .4byte 0x020388A8 +_0813565C: .4byte 0x02037230 +_08135660: .4byte 0x02036FF0 +_08135664: .4byte 0x020205AC +_08135668: .4byte 0x03005B60 +_0813566C: .4byte 0x08135671 + thumb_func_end sub_081355CC + + thumb_func_start sub_08135670 +sub_08135670: @ 0x08135670 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _081356A0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #0x18] + lsls r1, r1, #0x10 + ldrh r0, [r0, #0x1a] + orrs r1, r0 + bl _call_via_r1 + ldr r1, _081356A4 + movs r0, #0 + strb r0, [r1, #6] + adds r0, r4, #0 + bl DestroyTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081356A0: .4byte 0x03005B60 +_081356A4: .4byte 0x02037230 + thumb_func_end sub_08135670 + + thumb_func_start SetUpFieldMove_RockSmash +SetUpFieldMove_RockSmash: @ 0x081356A8 + push {r4, lr} + bl ShouldDoBrailleRegirockEffect + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081356E0 + ldr r4, _081356CC + bl GetCursorSelectionMonId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + ldr r1, _081356D0 + ldr r0, _081356D4 + str r0, [r1] + ldr r1, _081356D8 + ldr r0, _081356DC + b _081356FC + .align 2, 0 +_081356CC: .4byte 0x02037290 +_081356D0: .4byte 0x03005B10 +_081356D4: .4byte 0x081B53D9 +_081356D8: .4byte 0x0203CBB8 +_081356DC: .4byte 0x081796ED +_081356E0: + movs r0, #0x56 + bl CheckObjectGraphicsInFrontOfPlayer + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081356F2 + movs r0, #0 + b _08135700 +_081356F2: + ldr r1, _08135708 + ldr r0, _0813570C + str r0, [r1] + ldr r1, _08135710 + ldr r0, _08135714 +_081356FC: + str r0, [r1] + movs r0, #1 +_08135700: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08135708: .4byte 0x03005B10 +_0813570C: .4byte 0x081B53D9 +_08135710: .4byte 0x0203CBB8 +_08135714: .4byte 0x08135719 + thumb_func_end SetUpFieldMove_RockSmash + + thumb_func_start sub_08135718 +sub_08135718: @ 0x08135718 + push {lr} + bl GetCursorSelectionMonId + ldr r1, _08135730 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [r1] + ldr r0, _08135734 + bl ScriptContext1_SetupScript + pop {r0} + bx r0 + .align 2, 0 +_08135730: .4byte 0x020388A8 +_08135734: .4byte 0x082566C6 + thumb_func_end sub_08135718 + + thumb_func_start FldEff_UseRockSmash +FldEff_UseRockSmash: @ 0x08135738 + push {lr} + bl oei_task_add + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08135760 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r2, _08135764 + lsrs r0, r2, #0x10 + strh r0, [r1, #0x18] + strh r2, [r1, #0x1a] + movs r0, #0x13 + bl IncrementGameStat + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_08135760: .4byte 0x03005B60 +_08135764: .4byte 0x08135769 + thumb_func_end FldEff_UseRockSmash + + thumb_func_start sub_08135768 +sub_08135768: @ 0x08135768 + push {lr} + movs r0, #0x83 + bl PlaySE + movs r0, #0x25 + bl FieldEffectActiveListRemove + bl EnableBothScriptContexts + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08135768 + + thumb_func_start sub_08135780 +sub_08135780: @ 0x08135780 + push {lr} + bl CanUseEscapeRopeOnCurrMap + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08135792 + movs r0, #0 + b _081357A0 +_08135792: + ldr r1, _081357A4 + ldr r0, _081357A8 + str r0, [r1] + ldr r1, _081357AC + ldr r0, _081357B0 + str r0, [r1] + movs r0, #1 +_081357A0: + pop {r1} + bx r1 + .align 2, 0 +_081357A4: .4byte 0x03005B10 +_081357A8: .4byte 0x081B53D9 +_081357AC: .4byte 0x0203CBB8 +_081357B0: .4byte 0x081357B5 + thumb_func_end sub_08135780 + + thumb_func_start sub_081357B4 +sub_081357B4: @ 0x081357B4 + push {lr} + bl Overworld_ResetStateAfterFly + movs r0, #0x26 + bl FieldEffectStart + bl GetCursorSelectionMonId + ldr r1, _081357D0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_081357D0: .4byte 0x020388A8 + thumb_func_end sub_081357B4 + + thumb_func_start sub_081357D4 +sub_081357D4: @ 0x081357D4 + push {lr} + bl oei_task_add + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08135808 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r2, _0813580C + lsrs r0, r2, #0x10 + strh r0, [r1, #0x18] + strh r2, [r1, #0x1a] + bl ShouldDoBrailleDigEffect + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08135800 + movs r0, #1 + bl SetPlayerAvatarTransitionFlags +_08135800: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_08135808: .4byte 0x03005B60 +_0813580C: .4byte 0x08135811 + thumb_func_end sub_081357D4 + + thumb_func_start sub_08135810 +sub_08135810: @ 0x08135810 + push {r4, lr} + movs r0, #0x26 + bl FieldEffectActiveListRemove + bl ShouldDoBrailleDigEffect + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + beq _0813582A + bl DoBrailleDigEffect + b _08135842 +_0813582A: + ldr r0, _08135848 + movs r1, #8 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0813584C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #8] +_08135842: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08135848: .4byte 0x080FEB0D +_0813584C: .4byte 0x03005B60 + thumb_func_end sub_08135810 + diff --git a/asm/fldeff_softboiled.s b/asm/fldeff_softboiled.s new file mode 100644 index 0000000..f615d44 --- /dev/null +++ b/asm/fldeff_softboiled.s @@ -0,0 +1,363 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start SetUpFieldMove_SoftBoiled +SetUpFieldMove_SoftBoiled: @ 0x0816140C + push {r4, r5, r6, lr} + bl GetCursorSelectionMonId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r6, #0x64 + muls r0, r6, r0 + ldr r4, _08161458 + adds r0, r0, r4 + movs r1, #0x3a + bl GetMonData + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + bl GetCursorSelectionMonId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + muls r0, r6, r0 + adds r0, r0, r4 + movs r1, #0x39 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + movs r1, #5 + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r4, r0 + bhi _0816145C + movs r0, #0 + b _0816145E + .align 2, 0 +_08161458: .4byte 0x02024190 +_0816145C: + movs r0, #1 +_0816145E: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end SetUpFieldMove_SoftBoiled + + thumb_func_start sub_08161464 +sub_08161464: @ 0x08161464 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081614A0 + movs r1, #0xa + strb r1, [r0, #0xb] + ldrb r1, [r0, #9] + strb r1, [r0, #0xa] + bl GetCursorSelectionMonId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + bl sub_081B0C9C + movs r0, #5 + bl display_pokemon_menu_message + ldr r1, _081614A4 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081614A8 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081614A0: .4byte 0x0203CB94 +_081614A4: .4byte 0x03005B60 +_081614A8: .4byte 0x081B1041 + thumb_func_end sub_08161464 + + thumb_func_start sub_081614AC +sub_081614AC: @ 0x081614AC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + str r4, [sp, #4] + ldr r1, _081614E4 + ldrb r7, [r1, #9] + mov r8, r7 + ldrb r0, [r1, #0xa] + adds r5, r0, #0 + cmp r5, #6 + bls _081614F0 + movs r0, #0 + strb r0, [r1, #0xb] + bl display_pokemon_menu_message + ldr r1, _081614E8 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081614EC + str r1, [r0] + b _0816155C + .align 2, 0 +_081614E4: .4byte 0x0203CB94 +_081614E8: .4byte 0x03005B60 +_081614EC: .4byte 0x081B1041 +_081614F0: + movs r0, #0x64 + mov sl, r0 + mov r0, sl + muls r0, r5, r0 + ldr r1, _08161528 + mov sb, r1 + adds r6, r0, r1 + adds r0, r6, #0 + movs r1, #0x39 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0 + beq _0816151E + cmp r7, r5 + beq _0816151E + adds r0, r6, #0 + movs r1, #0x3a + bl GetMonData + cmp r0, r4 + bne _0816152C +_0816151E: + ldr r0, [sp, #4] + bl sub_081616BC + b _0816155C + .align 2, 0 +_08161528: .4byte 0x02024190 +_0816152C: + movs r0, #1 + bl PlaySE + mov r1, sl + mov r0, r8 + muls r0, r1, r0 + add r0, sb + movs r1, #0x3a + bl GetMonData + movs r1, #5 + bl __udivsi3 + adds r3, r0, #0 + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + movs r2, #1 + rsbs r2, r2, #0 + ldr r0, _0816156C + str r0, [sp] + ldr r0, [sp, #4] + mov r1, r8 + bl sub_081B1BE8 +_0816155C: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0816156C: .4byte 0x08161571 + thumb_func_end sub_081614AC + + thumb_func_start sub_08161570 +sub_08161570: @ 0x08161570 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + bl PlaySE + ldr r5, _081615B8 + movs r1, #9 + ldrsb r1, [r5, r1] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081615BC + adds r0, r0, r1 + movs r1, #0x3a + bl GetMonData + movs r1, #5 + bl __udivsi3 + adds r3, r0, #0 + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + ldrb r1, [r5, #0xa] + ldr r0, _081615C0 + str r0, [sp] + adds r0, r4, #0 + movs r2, #1 + bl sub_081B1BE8 + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081615B8: .4byte 0x0203CB94 +_081615BC: .4byte 0x02024190 +_081615C0: .4byte 0x081615C5 + thumb_func_end sub_08161570 + + thumb_func_start sub_081615C4 +sub_081615C4: @ 0x081615C4 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _0816160C + movs r1, #0xa + ldrsb r1, [r0, r1] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08161610 + adds r0, r0, r1 + ldr r1, _08161614 + bl GetMonNickname + ldr r4, _08161618 + ldr r1, _0816161C + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + movs r1, #0 + bl sub_081B182C + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, _08161620 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08161624 + str r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0816160C: .4byte 0x0203CB94 +_08161610: .4byte 0x02024190 +_08161614: .4byte 0x02021C40 +_08161618: .4byte 0x02021C7C +_0816161C: .4byte 0x085C9E8F +_08161620: .4byte 0x03005B60 +_08161624: .4byte 0x08161629 + thumb_func_end sub_081615C4 + + thumb_func_start sub_08161628 +sub_08161628: @ 0x08161628 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + bl sub_081B18A4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08161676 + ldr r4, _0816167C + movs r0, #0 + strb r0, [r4, #0xb] + ldrb r0, [r4, #9] + movs r1, #0 + bl sub_081B0C9C + ldrb r0, [r4, #0xa] + strb r0, [r4, #9] + ldrb r0, [r4, #0xa] + movs r1, #1 + bl sub_081B0C9C + movs r0, #6 + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + movs r0, #6 + bl ClearWindowTilemap + movs r0, #0 + bl display_pokemon_menu_message + ldr r1, _08161680 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08161684 + str r1, [r0] +_08161676: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0816167C: .4byte 0x0203CB94 +_08161680: .4byte 0x03005B60 +_08161684: .4byte 0x081B1041 + thumb_func_end sub_08161628 + + thumb_func_start sub_08161688 +sub_08161688: @ 0x08161688 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl sub_081B18A4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081616AE + movs r0, #5 + bl display_pokemon_menu_message + ldr r0, _081616B4 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081616B8 + str r0, [r1] +_081616AE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081616B4: .4byte 0x03005B60 +_081616B8: .4byte 0x081B1041 + thumb_func_end sub_08161688 + + thumb_func_start sub_081616BC +sub_081616BC: @ 0x081616BC + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #5 + bl PlaySE + ldr r0, _081616EC + movs r1, #0 + bl sub_081B182C + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, _081616F0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081616F4 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081616EC: .4byte 0x085C9B07 +_081616F0: .4byte 0x03005B60 +_081616F4: .4byte 0x08161689 + thumb_func_end sub_081616BC + diff --git a/asm/fldeff_strength.s b/asm/fldeff_strength.s new file mode 100644 index 0000000..c671261 --- /dev/null +++ b/asm/fldeff_strength.s @@ -0,0 +1,102 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start SetUpFieldMove_Strength +SetUpFieldMove_Strength: @ 0x08145E84 + push {r4, lr} + movs r0, #0x57 + bl CheckObjectGraphicsInFrontOfPlayer + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08145E98 + movs r0, #0 + b _08145EB2 +_08145E98: + ldr r4, _08145EB8 + bl GetCursorSelectionMonId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + ldr r1, _08145EBC + ldr r0, _08145EC0 + str r0, [r1] + ldr r1, _08145EC4 + ldr r0, _08145EC8 + str r0, [r1] + movs r0, #1 +_08145EB2: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08145EB8: .4byte 0x02037290 +_08145EBC: .4byte 0x03005B10 +_08145EC0: .4byte 0x081B53D9 +_08145EC4: .4byte 0x0203CBB8 +_08145EC8: .4byte 0x08145ECD + thumb_func_end SetUpFieldMove_Strength + + thumb_func_start FldEff_UseStrength +FldEff_UseStrength: @ 0x08145ECC + push {lr} + bl GetCursorSelectionMonId + ldr r1, _08145EE4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [r1] + ldr r0, _08145EE8 + bl ScriptContext1_SetupScript + pop {r0} + bx r0 + .align 2, 0 +_08145EE4: .4byte 0x020388A8 +_08145EE8: .4byte 0x08256797 + thumb_func_end FldEff_UseStrength + + thumb_func_start sub_08145EEC +sub_08145EEC: @ 0x08145EEC + push {lr} + bl oei_task_add + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08145F20 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r2, _08145F24 + lsrs r0, r2, #0x10 + strh r0, [r1, #0x18] + strh r2, [r1, #0x1a] + ldr r0, _08145F28 + ldr r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08145F2C + adds r0, r0, r1 + ldr r1, _08145F30 + bl GetMonNickname + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_08145F20: .4byte 0x03005B60 +_08145F24: .4byte 0x08145F35 +_08145F28: .4byte 0x020388A8 +_08145F2C: .4byte 0x02024190 +_08145F30: .4byte 0x02021C40 + thumb_func_end sub_08145EEC + + thumb_func_start sub_08145F34 +sub_08145F34: @ 0x08145F34 + push {lr} + movs r0, #0x28 + bl FieldEffectActiveListRemove + bl EnableBothScriptContexts + pop {r0} + bx r0 + thumb_func_end sub_08145F34 + diff --git a/asm/fldeff_sweetscent.s b/asm/fldeff_sweetscent.s new file mode 100644 index 0000000..3160fb1 --- /dev/null +++ b/asm/fldeff_sweetscent.s @@ -0,0 +1,237 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start SetUpFieldMove_SweetScent +SetUpFieldMove_SweetScent: @ 0x08159E2C + ldr r1, _08159E3C + ldr r0, _08159E40 + str r0, [r1] + ldr r1, _08159E44 + ldr r0, _08159E48 + str r0, [r1] + movs r0, #1 + bx lr + .align 2, 0 +_08159E3C: .4byte 0x03005B10 +_08159E40: .4byte 0x081B53D9 +_08159E44: .4byte 0x0203CBB8 +_08159E48: .4byte 0x08159E4D + thumb_func_end SetUpFieldMove_SweetScent + + thumb_func_start FieldCallback_SweetScent +FieldCallback_SweetScent: @ 0x08159E4C + push {lr} + movs r0, #0x33 + bl FieldEffectStart + bl GetCursorSelectionMonId + ldr r1, _08159E64 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08159E64: .4byte 0x020388A8 + thumb_func_end FieldCallback_SweetScent + + thumb_func_start FldEff_SweetScent +FldEff_SweetScent: @ 0x08159E68 + push {lr} + bl sub_080ABCCC + bl oei_task_add + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08159E90 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r2, _08159E94 + lsrs r0, r2, #0x10 + strh r0, [r1, #0x18] + strh r2, [r1, #0x1a] + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_08159E90: .4byte 0x03005B60 +_08159E94: .4byte 0x08159E99 + thumb_func_end FldEff_SweetScent + + thumb_func_start StartSweetScentFieldEffect +StartSweetScentFieldEffect: @ 0x08159E98 + push {r4, r5, lr} + sub sp, #4 + movs r0, #0xec + bl PlaySE + ldr r5, _08159F10 + ldr r1, _08159F14 + movs r4, #0x80 + lsls r4, r4, #1 + adds r0, r5, #0 + adds r2, r4, #0 + bl CpuFastSet + ldr r0, _08159F18 + adds r1, r5, #0 + adds r2, r4, #0 + bl CpuFastSet + bl GetPlayerAvatarObjectId + ldr r2, _08159F1C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r1, [r1, #5] + lsrs r1, r1, #4 + adds r1, #0x10 + movs r0, #1 + lsls r0, r1 + mvns r0, r0 + movs r1, #0x1f + str r1, [sp] + movs r1, #4 + movs r2, #0 + movs r3, #8 + bl BeginNormalPaletteFade + ldr r0, _08159F20 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08159F24 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r0, #0 + strh r0, [r1, #8] + movs r0, #0x33 + bl FieldEffectActiveListRemove + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08159F10: .4byte 0x020373B4 +_08159F14: .4byte 0x02037C88 +_08159F18: .4byte 0x020377B4 +_08159F1C: .4byte 0x020205AC +_08159F20: .4byte 0x08159F29 +_08159F24: .4byte 0x03005B60 + thumb_func_end StartSweetScentFieldEffect + + thumb_func_start TrySweetScentEncounter +TrySweetScentEncounter: @ 0x08159F28 + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _08159F78 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + bne _08159FC4 + bl ClearMirageTowerPulseBlendEffect + movs r0, #0x40 + movs r1, #8 + movs r2, #0x1f + bl BlendPalettes + ldr r0, _08159F7C + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r4, r1, r0 + ldrh r1, [r4, #8] + movs r2, #8 + ldrsh r0, [r4, r2] + cmp r0, #0x40 + bne _08159FC0 + strh r6, [r4, #8] + bl SweetScentWildEncounter + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08159F80 + adds r0, r5, #0 + bl DestroyTask + b _08159FC4 + .align 2, 0 +_08159F78: .4byte 0x02037C74 +_08159F7C: .4byte 0x03005B60 +_08159F80: + ldr r0, _08159FB8 + str r0, [r4] + bl GetPlayerAvatarObjectId + ldr r2, _08159FBC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r1, [r1, #5] + lsrs r1, r1, #4 + adds r1, #0x10 + movs r0, #1 + lsls r0, r1 + mvns r0, r0 + movs r1, #0x1f + str r1, [sp] + movs r1, #4 + movs r2, #8 + movs r3, #0 + bl BeginNormalPaletteFade + bl TryStartMirageTowerPulseBlendEffect + b _08159FC4 + .align 2, 0 +_08159FB8: .4byte 0x08159FCD +_08159FBC: .4byte 0x020205AC +_08159FC0: + adds r0, r1, #1 + strh r0, [r4, #8] +_08159FC4: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end TrySweetScentEncounter + + thumb_func_start FailSweetScentEncounter +FailSweetScentEncounter: @ 0x08159FCC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0815A000 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08159FFA + ldr r0, _0815A004 + ldr r1, _0815A008 + movs r2, #0x80 + lsls r2, r2, #1 + bl CpuFastSet + bl sub_080ABCE0 + ldr r0, _0815A00C + bl ScriptContext1_SetupScript + adds r0, r4, #0 + bl DestroyTask +_08159FFA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815A000: .4byte 0x02037C74 +_0815A004: .4byte 0x02037C88 +_0815A008: .4byte 0x020373B4 +_0815A00C: .4byte 0x08256A14 + thumb_func_end FailSweetScentEncounter + diff --git a/asm/fldeff_teleport.s b/asm/fldeff_teleport.s new file mode 100644 index 0000000..1273939 --- /dev/null +++ b/asm/fldeff_teleport.s @@ -0,0 +1,89 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start SetUpFieldMove_Teleport +SetUpFieldMove_Teleport: @ 0x0817C768 + push {lr} + ldr r0, _0817C780 + ldrb r0, [r0, #0x17] + bl Overworld_MapTypeAllowsTeleportAndFly + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0817C784 + movs r0, #0 + b _0817C792 + .align 2, 0 +_0817C780: .4byte 0x02036FB8 +_0817C784: + ldr r1, _0817C798 + ldr r0, _0817C79C + str r0, [r1] + ldr r1, _0817C7A0 + ldr r0, _0817C7A4 + str r0, [r1] + movs r0, #1 +_0817C792: + pop {r1} + bx r1 + .align 2, 0 +_0817C798: .4byte 0x03005B10 +_0817C79C: .4byte 0x081B53D9 +_0817C7A0: .4byte 0x0203CBB8 +_0817C7A4: .4byte 0x0817C7A9 + thumb_func_end SetUpFieldMove_Teleport + + thumb_func_start FieldCallback_Teleport +FieldCallback_Teleport: @ 0x0817C7A8 + push {lr} + bl Overworld_ResetStateAfterTeleport + movs r0, #0x3f + bl FieldEffectStart + bl GetCursorSelectionMonId + ldr r1, _0817C7C4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0817C7C4: .4byte 0x020388A8 + thumb_func_end FieldCallback_Teleport + + thumb_func_start FldEff_UseTeleport +FldEff_UseTeleport: @ 0x0817C7C8 + push {lr} + bl oei_task_add + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0817C7F0 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r2, _0817C7F4 + lsrs r0, r2, #0x10 + strh r0, [r1, #0x18] + strh r2, [r1, #0x1a] + movs r0, #1 + bl SetPlayerAvatarTransitionFlags + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0817C7F0: .4byte 0x03005B60 +_0817C7F4: .4byte 0x0817C7F9 + thumb_func_end FldEff_UseTeleport + + thumb_func_start StartTeleportFieldEffect +StartTeleportFieldEffect: @ 0x0817C7F8 + push {lr} + movs r0, #0x3f + bl FieldEffectActiveListRemove + bl sub_080B7720 + pop {r0} + bx r0 + thumb_func_end StartTeleportFieldEffect + diff --git a/asm/flying.s b/asm/flying.s new file mode 100644 index 0000000..c999331 --- /dev/null +++ b/asm/flying.s @@ -0,0 +1,2596 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_0810E6C0 +sub_0810E6C0: @ 0x0810E6C0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl InitSpritePosToAnimTarget + ldrh r0, [r4, #0x22] + adds r0, #0x14 + strh r0, [r4, #0x22] + movs r0, #0xbf + strh r0, [r4, #0x30] + ldr r1, _0810E6E4 + str r1, [r4, #0x1c] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810E6E4: .4byte 0x0810E6E9 + thumb_func_end sub_0810E6C0 + + thumb_func_start sub_0810E6E8 +sub_0810E6E8: @ 0x0810E6E8 + 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, #8 + bl Cos + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x30] + adds r0, #5 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x47 + bne _0810E722 + adds r0, r4, #0 + bl DestroyAnimSprite +_0810E722: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0810E6E8 + + thumb_func_start sub_0810E728 +sub_0810E728: @ 0x0810E728 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0810E758 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + adds r4, r4, r1 + ldr r1, _0810E75C + ldrh r0, [r1, #2] + strh r0, [r4, #8] + ldrh r0, [r1] + strh r0, [r4, #0xa] + ldr r0, _0810E760 + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0xc] + ldr r0, _0810E764 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810E758: .4byte 0x03005B60 +_0810E75C: .4byte 0x020380BE +_0810E760: .4byte 0x00002719 +_0810E764: .4byte 0x0810E769 + thumb_func_end sub_0810E728 + + thumb_func_start sub_0810E768 +sub_0810E768: @ 0x0810E768 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r2, _0810E7E8 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r3, r0, r2 + ldrh r0, [r3, #0x1c] + adds r1, r0, #1 + strh r1, [r3, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r4, #0xa + ldrsh r1, [r3, r4] + adds r7, r2, #0 + cmp r0, r1 + bne _0810E7C6 + movs r0, #0 + strh r0, [r3, #0x1c] + ldrb r0, [r3, #0xc] + ldr r2, _0810E7EC + lsls r0, r0, #4 + movs r3, #0x84 + lsls r3, r3, #1 + adds r1, r0, r3 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r6, [r1] + movs r4, #7 + mov ip, r0 + ldr r0, _0810E7F0 + add r0, ip + lsls r0, r0, #1 + adds r3, r0, r2 +_0810E7AE: + ldrh r0, [r3] + strh r0, [r1] + subs r3, #2 + subs r1, #2 + subs r4, #1 + cmp r4, #0 + bgt _0810E7AE + ldr r0, _0810E7F4 + add r0, ip + lsls r0, r0, #1 + adds r0, r0, r2 + strh r6, [r0] +_0810E7C6: + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r7 + ldrh r1, [r0, #8] + subs r1, #1 + strh r1, [r0, #8] + lsls r1, r1, #0x10 + cmp r1, #0 + bne _0810E7E0 + adds r0, r5, #0 + bl DestroyAnimVisualTask +_0810E7E0: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0810E7E8: .4byte 0x03005B60 +_0810E7EC: .4byte 0x020377B4 +_0810E7F0: .4byte 0x00000107 +_0810E7F4: .4byte 0x00000101 + thumb_func_end sub_0810E768 + + thumb_func_start sub_0810E7F8 +sub_0810E7F8: @ 0x0810E7F8 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldr r0, _0810E864 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810E818 + ldr r1, _0810E868 + ldrh r0, [r1, #4] + rsbs r0, r0, #0 + strh r0, [r1, #4] +_0810E818: + ldr r4, _0810E868 + ldrh r0, [r4, #8] + strh r0, [r6, #0x2e] + ldrh r0, [r6, #0x20] + strh r0, [r6, #0x30] + ldr r5, _0810E86C + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #4] + adds r0, r0, r1 + strh r0, [r6, #0x32] + ldrh r0, [r6, #0x22] + strh r0, [r6, #0x34] + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r4, [r4, #6] + adds r0, r0, r4 + strh r0, [r6, #0x36] + adds r0, r6, #0 + bl InitAnimLinearTranslation + ldr r0, _0810E870 + str r0, [r6, #0x1c] + ldr r1, _0810E874 + adds r0, r6, #0 + bl StoreSpriteCallbackInData6 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0810E864: .4byte 0x020380D6 +_0810E868: .4byte 0x020380BE +_0810E86C: .4byte 0x020380D7 +_0810E870: .4byte 0x080A6085 +_0810E874: .4byte 0x0810E879 + thumb_func_end sub_0810E7F8 + + thumb_func_start sub_0810E878 +sub_0810E878: @ 0x0810E878 + push {r4, lr} + adds r4, r0, #0 + bl AnimTranslateLinear + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810E88C + adds r0, r4, #0 + bl DestroyAnimSprite +_0810E88C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0810E878 + + thumb_func_start sub_0810E894 +sub_0810E894: @ 0x0810E894 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0810E930 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810E8C0 + ldr r1, _0810E934 + ldrh r0, [r1] + rsbs r0, r0, #0 + strh r0, [r1] + ldrh r0, [r1, #2] + rsbs r0, r0, #0 + strh r0, [r1, #2] + ldrh r0, [r1, #4] + rsbs r0, r0, #0 + strh r0, [r1, #4] + ldrh r0, [r1, #6] + rsbs r0, r0, #0 + strh r0, [r1, #6] +_0810E8C0: + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810E8D8 + ldr r0, _0810E934 + ldrh r1, [r0, #2] + rsbs r1, r1, #0 + strh r1, [r0, #2] + ldrh r1, [r0, #6] + rsbs r1, r1, #0 + strh r1, [r0, #6] +_0810E8D8: + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + ldr r2, _0810E934 + ldrh r1, [r2] + ldrh r3, [r5, #0x20] + adds r1, r1, r3 + strh r1, [r5, #0x20] + lsrs r0, r0, #0x18 + ldrh r1, [r2, #2] + adds r0, r0, r1 + strh r0, [r5, #0x22] + ldrh r0, [r2, #8] + strh r0, [r5, #0x2e] + movs r3, #0xc + ldrsh r0, [r2, r3] + cmp r0, #0 + bne _0810E93C + ldr r4, _0810E938 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x32] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x36] + b _0810E94E + .align 2, 0 +_0810E930: .4byte 0x020380D6 +_0810E934: .4byte 0x020380BE +_0810E938: .4byte 0x020380D7 +_0810E93C: + ldr r0, _0810E97C + ldrb r0, [r0] + adds r2, r5, #0 + adds r2, #0x32 + adds r3, r5, #0 + adds r3, #0x36 + movs r1, #1 + bl SetAverageBattlerPositions +_0810E94E: + ldr r4, _0810E980 + ldrh r0, [r4, #4] + ldrh r1, [r5, #0x32] + adds r0, r0, r1 + strh r0, [r5, #0x32] + ldrh r0, [r4, #6] + ldrh r3, [r5, #0x36] + adds r0, r0, r3 + strh r0, [r5, #0x36] + ldr r0, _0810E984 + str r0, [r5, #0x1c] + ldr r1, _0810E988 + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + ldrb r1, [r4, #0xa] + adds r0, r5, #0 + bl SeekSpriteAnim + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810E97C: .4byte 0x020380D7 +_0810E980: .4byte 0x020380BE +_0810E984: .4byte 0x080A67B5 +_0810E988: .4byte 0x080A34C5 + thumb_func_end sub_0810E894 + + thumb_func_start sub_0810E98C +sub_0810E98C: @ 0x0810E98C + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldr r1, _0810E9C8 + ldrh r0, [r1, #4] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #6] + strh r0, [r4, #0x30] + ldr r0, _0810E9CC + str r0, [r4, #0x1c] + movs r0, #0 + bl GetAnimBattlerSpriteId + ldr r2, _0810E9D0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810E9C8: .4byte 0x020380BE +_0810E9CC: .4byte 0x0810E9D5 +_0810E9D0: .4byte 0x020205AC + thumb_func_end sub_0810E98C + + thumb_func_start sub_0810E9D4 +sub_0810E9D4: @ 0x0810E9D4 + push {lr} + adds r2, r0, #0 + ldrh r1, [r2, #0x2e] + movs r3, #0x2e + ldrsh r0, [r2, r3] + cmp r0, #0 + ble _0810E9E8 + subs r0, r1, #1 + strh r0, [r2, #0x2e] + b _0810E9FA +_0810E9E8: + ldrh r0, [r2, #0x30] + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + ldrh r1, [r2, #0x26] + subs r1, r1, r0 + strh r1, [r2, #0x26] +_0810E9FA: + movs r3, #0x22 + ldrsh r0, [r2, r3] + movs r3, #0x26 + ldrsh r1, [r2, r3] + adds r0, r0, r1 + movs r1, #0x20 + rsbs r1, r1, #0 + cmp r0, r1 + bge _0810EA12 + adds r0, r2, #0 + bl DestroyAnimSprite +_0810EA12: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0810E9D4 + + thumb_func_start sub_0810EA18 +sub_0810EA18: @ 0x0810EA18 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0810EA40 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810EA48 + movs r0, #0x88 + lsls r0, r0, #1 + strh r0, [r5, #0x20] + ldr r0, _0810EA44 + strh r0, [r5, #0x22] + adds r0, r5, #0 + movs r1, #1 + bl StartSpriteAffineAnim + b _0810EA4E + .align 2, 0 +_0810EA40: .4byte 0x020380D6 +_0810EA44: .4byte 0x0000FFE0 +_0810EA48: + ldr r0, _0810EA8C + strh r0, [r5, #0x20] + strh r0, [r5, #0x22] +_0810EA4E: + ldr r0, _0810EA90 + ldrh r0, [r0] + strh r0, [r5, #0x2e] + ldrh r0, [r5, #0x20] + strh r0, [r5, #0x30] + ldr r4, _0810EA94 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x32] + ldrh r0, [r5, #0x22] + strh r0, [r5, #0x34] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x36] + adds r0, r5, #0 + bl InitAnimLinearTranslation + ldr r0, _0810EA98 + str r0, [r5, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810EA8C: .4byte 0x0000FFE0 +_0810EA90: .4byte 0x020380BE +_0810EA94: .4byte 0x020380D7 +_0810EA98: .4byte 0x0810EA9D + thumb_func_end sub_0810EA18 + + thumb_func_start sub_0810EA9C +sub_0810EA9C: @ 0x0810EA9C + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strh r0, [r4, #0x2e] + adds r0, r4, #0 + bl AnimTranslateLinear + ldrh r1, [r4, #0x34] + lsrs r0, r1, #8 + cmp r0, #0xc8 + bls _0810EAC4 + ldrh r0, [r4, #0x24] + ldrh r2, [r4, #0x20] + adds r0, r0, r2 + strh r0, [r4, #0x20] + movs r0, #0 + strh r0, [r4, #0x24] + movs r0, #0xff + ands r0, r1 + strh r0, [r4, #0x34] +_0810EAC4: + movs r1, #0x20 + ldrsh r0, [r4, r1] + movs r2, #0x24 + ldrsh r1, [r4, r2] + adds r0, r0, r1 + adds r0, #0x20 + movs r1, #0x98 + lsls r1, r1, #1 + cmp r0, r1 + bhi _0810EAE6 + movs r1, #0x22 + ldrsh r0, [r4, r1] + movs r2, #0x26 + ldrsh r1, [r4, r2] + adds r0, r0, r1 + cmp r0, #0xa0 + ble _0810EB0C +_0810EAE6: + movs r0, #0 + bl GetAnimBattlerSpriteId + ldr r2, _0810EB14 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + adds r1, #0x3e + ldrb r2, [r1] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + adds r0, r4, #0 + bl DestroyAnimSprite +_0810EB0C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810EB14: .4byte 0x020205AC + thumb_func_end sub_0810EA9C + + thumb_func_start sub_0810EB18 +sub_0810EB18: @ 0x0810EB18 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + subs r1, r0, #1 + strh r1, [r4, #0x2e] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _0810EB58 + ldrb r0, [r4, #1] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0810EB4A + ldrb r0, [r4, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + ldrb r1, [r4, #1] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #1] +_0810EB4A: + adds r0, r4, #0 + bl DestroySprite + ldr r1, _0810EB60 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] +_0810EB58: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810EB60: .4byte 0x0203809E + thumb_func_end sub_0810EB18 + + thumb_func_start sub_0810EB64 +sub_0810EB64: @ 0x0810EB64 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + adds r5, r7, #0 + adds r5, #0x2e + ldr r0, _0810EB84 + ldrh r1, [r0, #0xe] + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0810EB8C + ldr r0, _0810EB88 + b _0810EB8E + .align 2, 0 +_0810EB84: .4byte 0x020380BE +_0810EB88: .4byte 0x020380D6 +_0810EB8C: + ldr r0, _0810EC38 +_0810EB8E: + ldrb r6, [r0] + adds r0, r6, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810EBA4 + ldr r1, _0810EC3C + ldrh r0, [r1] + rsbs r0, r0, #0 + strh r0, [r1] +_0810EBA4: + adds r0, r6, #0 + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + ldr r4, _0810EC3C + lsrs r0, r0, #0x18 + ldrh r1, [r4] + adds r0, r0, r1 + strh r0, [r7, #0x20] + adds r0, r6, #0 + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + ldrh r1, [r4, #2] + lsrs r0, r0, #0x18 + adds r1, r0, r1 + strh r1, [r7, #0x22] + lsls r1, r1, #8 + strh r1, [r5, #8] + ldrh r1, [r4, #0xc] + adds r0, r0, r1 + lsls r0, r0, #1 + ldrh r2, [r5, #0xe] + movs r1, #1 + ands r1, r2 + orrs r1, r0 + strh r1, [r5, #0xe] + ldrb r0, [r5] + movs r2, #4 + mov r8, r2 + mov r1, r8 + orrs r0, r1 + strb r0, [r5] + ldrh r0, [r4, #4] + ldrb r1, [r4, #4] + strh r1, [r5, #2] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + strh r0, [r5, #0xa] + ldrh r0, [r4, #6] + strh r0, [r5, #4] + ldrh r0, [r4, #8] + strh r0, [r5, #6] + ldrh r0, [r4, #0xa] + strh r0, [r5, #0xc] + subs r1, #0x40 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + cmp r1, #0x7f + bhi _0810EC9A + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810EC40 + adds r0, r6, #0 + bl GetBattlerSpriteBGPriority + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #1 + movs r1, #3 + ands r0, r1 + lsls r0, r0, #2 + ldrb r2, [r7, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r7, #5] + b _0810EC58 + .align 2, 0 +_0810EC38: .4byte 0x020380D7 +_0810EC3C: .4byte 0x020380BE +_0810EC40: + adds r0, r6, #0 + bl GetBattlerSpriteBGPriority + movs r1, #3 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r7, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r7, #5] +_0810EC58: + ldrb r1, [r5, #0xe] + movs r4, #2 + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r1 + strb r0, [r5, #0xe] + movs r2, #4 + ldrsh r0, [r5, r2] + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + bne _0810ECFA + adds r3, r7, #0 + adds r3, #0x3f + ldrb r2, [r3] + lsls r0, r2, #0x1f + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + adds r0, r4, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + lsls r0, r0, #0x1f + lsrs r0, r0, #0x1f + adds r1, r7, #0 + adds r1, #0x2a + strb r0, [r1] + ldrb r0, [r3] + movs r1, #4 + orrs r0, r1 + b _0810ECF2 +_0810EC9A: + adds r0, r6, #0 + bl GetBattlerSpriteBGPriority + movs r1, #3 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r7, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r7, #5] + ldrb r0, [r5, #0xe] + movs r4, #1 + orrs r0, r4 + strb r0, [r5, #0xe] + movs r1, #4 + ldrsh r0, [r5, r1] + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + beq _0810ECFA + adds r3, r7, #0 + adds r3, #0x3f + ldrb r2, [r3] + lsls r1, r2, #0x1f + lsrs r1, r1, #0x1f + movs r0, #1 + eors r1, r0 + ands r1, r4 + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + lsls r0, r0, #0x1f + lsrs r0, r0, #0x1f + adds r1, r7, #0 + adds r1, #0x2a + strb r0, [r1] + ldrb r0, [r3] + mov r2, r8 + orrs r0, r2 +_0810ECF2: + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r3] +_0810ECFA: + ldrh r1, [r5, #2] + lsrs r1, r1, #6 + lsls r1, r1, #4 + ldrb r2, [r5] + movs r0, #0xf + ands r0, r2 + orrs r0, r1 + strb r0, [r5] + ldr r3, _0810ED64 + ldrh r0, [r5, #2] + lsls r0, r0, #1 + adds r0, r0, r3 + movs r2, #0 + ldrsh r1, [r0, r2] + ldrb r0, [r5, #0xc] + muls r0, r1, r0 + asrs r0, r0, #8 + strh r0, [r7, #0x24] + ldrb r2, [r7, #3] + lsls r2, r2, #0x1a + lsrs r2, r2, #0x1b + movs r1, #0x24 + ldrsh r0, [r7, r1] + rsbs r0, r0, #0 + asrs r0, r0, #1 + ldrb r5, [r5, #0xa] + adds r0, r0, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #1 + adds r1, r1, r3 + ldrh r4, [r1] + ldr r1, _0810ED68 + lsls r2, r2, #3 + adds r2, r2, r1 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + strh r0, [r2, #6] + strh r0, [r2] + strh r4, [r2, #2] + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + rsbs r0, r0, #0 + strh r0, [r2, #4] + ldr r0, _0810ED6C + str r0, [r7, #0x1c] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0810ED64: .4byte 0x082FA8CC +_0810ED68: .4byte 0x02021B3C +_0810ED6C: .4byte 0x0810ED71 + thumb_func_end sub_0810EB64 + + thumb_func_start sub_0810ED70 +sub_0810ED70: @ 0x0810ED70 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + movs r6, #0 + adds r4, r5, #0 + adds r4, #0x2e + ldrb r2, [r4] + movs r7, #1 + movs r0, #1 + mov sb, r0 + ands r0, r2 + cmp r0, #0 + beq _0810EDAA + ldrb r0, [r4, #1] + adds r1, r0, #0 + adds r1, #0xff + strb r1, [r4, #1] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810ED9E + b _0810F286 +_0810ED9E: + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r4] + strb r6, [r4, #1] + b _0810F286 +_0810EDAA: + ldrh r0, [r4, #2] + lsrs r1, r0, #6 + mov ip, r0 + cmp r1, #1 + bne _0810EDB6 + b _0810EEDA +_0810EDB6: + cmp r1, #1 + bgt _0810EDC0 + cmp r1, #0 + beq _0810EDCE + b _0810F1CC +_0810EDC0: + cmp r1, #2 + bne _0810EDC6 + b _0810EFCE +_0810EDC6: + cmp r1, #3 + bne _0810EDCC + b _0810F0C2 +_0810EDCC: + b _0810F1CC +_0810EDCE: + lsls r1, r2, #0x18 + lsrs r0, r1, #0x1c + cmp r0, #1 + bne _0810EDE2 + movs r0, #8 + orrs r0, r2 + orrs r0, r7 + strb r0, [r4] + strb r6, [r4, #1] + b _0810EED0 +_0810EDE2: + lsrs r0, r1, #0x1c + cmp r0, #3 + bne _0810EE04 + lsls r0, r2, #0x1e + lsrs r0, r0, #0x1f + movs r1, #1 + eors r0, r1 + ands r0, r7 + lsls r0, r0, #1 + movs r1, #3 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + orrs r1, r7 + strb r1, [r4] + strb r6, [r4, #1] + b _0810EED0 +_0810EE04: + movs r0, #8 + ands r0, r2 + cmp r0, #0 + beq _0810EED0 + adds r3, r5, #0 + adds r3, #0x3f + ldrb r2, [r3] + lsls r1, r2, #0x1f + lsrs r1, r1, #0x1f + movs r6, #1 + eors r1, r6 + ands r1, r7 + movs r0, #2 + rsbs r0, r0, #0 + mov r8, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + lsls r0, r0, #0x1f + lsrs r0, r0, #0x1f + adds r1, r5, #0 + adds r1, #0x2a + strb r0, [r1] + ldrb r0, [r3] + movs r1, #4 + orrs r0, r1 + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r3] + ldrb r1, [r4] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0810EEC2 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810EE92 + ldrb r1, [r4, #0xe] + mov r0, sb + ands r0, r1 + cmp r0, #0 + bne _0810EE78 + ldrb r2, [r5, #5] + lsls r1, r2, #0x1c + lsrs r1, r1, #0x1e + subs r1, #1 + movs r0, #3 + ands r1, r0 + lsls r1, r1, #2 + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #5] + b _0810EEB0 +_0810EE78: + ldrb r2, [r5, #5] + lsls r1, r2, #0x1c + lsrs r1, r1, #0x1e + adds r1, #1 + movs r0, #3 + ands r1, r0 + lsls r1, r1, #2 + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #5] + b _0810EEB0 +_0810EE92: + ldrb r1, [r4, #0xe] + mov r0, sb + ands r0, r1 + cmp r0, #0 + bne _0810EEA6 + adds r1, r5, #0 + adds r1, #0x43 + ldrb r0, [r1] + subs r0, #0xc + b _0810EEAE +_0810EEA6: + adds r1, r5, #0 + adds r1, #0x43 + ldrb r0, [r1] + adds r0, #0xc +_0810EEAE: + strb r0, [r1] +_0810EEB0: + ldrb r2, [r4, #0xe] + lsls r0, r2, #0x1f + lsrs r0, r0, #0x1f + eors r0, r6 + ands r0, r7 + mov r1, r8 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0xe] +_0810EEC2: + ldrb r1, [r4] + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4] + ldrh r1, [r4, #2] + mov ip, r1 +_0810EED0: + ldrb r1, [r4] + movs r0, #0xf + ands r0, r1 + strb r0, [r4] + b _0810F1CC +_0810EEDA: + lsls r1, r2, #0x18 + lsrs r0, r1, #0x1c + cmp r0, #0 + bne _0810EEE8 + movs r0, #8 + orrs r0, r2 + b _0810EEF0 +_0810EEE8: + lsrs r0, r1, #0x1c + cmp r0, #2 + bne _0810EEF8 + adds r0, r2, #0 +_0810EEF0: + orrs r0, r7 + strb r0, [r4] + strb r6, [r4, #1] + b _0810EFC4 +_0810EEF8: + movs r0, #8 + ands r0, r2 + cmp r0, #0 + beq _0810EFC4 + adds r3, r5, #0 + adds r3, #0x3f + ldrb r2, [r3] + lsls r1, r2, #0x1f + lsrs r1, r1, #0x1f + movs r6, #1 + eors r1, r6 + ands r1, r7 + movs r0, #2 + rsbs r0, r0, #0 + mov r8, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + lsls r0, r0, #0x1f + lsrs r0, r0, #0x1f + adds r1, r5, #0 + adds r1, #0x2a + strb r0, [r1] + ldrb r0, [r3] + movs r1, #4 + orrs r0, r1 + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r3] + ldrb r1, [r4] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0810EFB6 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810EF86 + ldrb r1, [r4, #0xe] + mov r0, sb + ands r0, r1 + cmp r0, #0 + bne _0810EF6C + ldrb r2, [r5, #5] + lsls r1, r2, #0x1c + lsrs r1, r1, #0x1e + subs r1, #1 + movs r0, #3 + ands r1, r0 + lsls r1, r1, #2 + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #5] + b _0810EFA4 +_0810EF6C: + ldrb r2, [r5, #5] + lsls r1, r2, #0x1c + lsrs r1, r1, #0x1e + adds r1, #1 + movs r0, #3 + ands r1, r0 + lsls r1, r1, #2 + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #5] + b _0810EFA4 +_0810EF86: + ldrb r1, [r4, #0xe] + mov r0, sb + ands r0, r1 + cmp r0, #0 + bne _0810EF9A + adds r1, r5, #0 + adds r1, #0x43 + ldrb r0, [r1] + subs r0, #0xc + b _0810EFA2 +_0810EF9A: + adds r1, r5, #0 + adds r1, #0x43 + ldrb r0, [r1] + adds r0, #0xc +_0810EFA2: + strb r0, [r1] +_0810EFA4: + ldrb r2, [r4, #0xe] + lsls r0, r2, #0x1f + lsrs r0, r0, #0x1f + eors r0, r6 + ands r0, r7 + mov r1, r8 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0xe] +_0810EFB6: + ldrb r1, [r4] + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4] + ldrh r1, [r4, #2] + mov ip, r1 +_0810EFC4: + ldrb r0, [r4] + movs r1, #0xf + ands r1, r0 + movs r0, #0x10 + b _0810F1C8 +_0810EFCE: + lsls r1, r2, #0x18 + lsrs r0, r1, #0x1c + cmp r0, #3 + bne _0810EFDC + movs r0, #8 + orrs r0, r2 + b _0810EFE4 +_0810EFDC: + lsrs r0, r1, #0x1c + cmp r0, #1 + bne _0810EFEC + adds r0, r2, #0 +_0810EFE4: + orrs r0, r7 + strb r0, [r4] + strb r6, [r4, #1] + b _0810F0B8 +_0810EFEC: + movs r0, #8 + ands r0, r2 + cmp r0, #0 + beq _0810F0B8 + adds r3, r5, #0 + adds r3, #0x3f + ldrb r2, [r3] + lsls r1, r2, #0x1f + lsrs r1, r1, #0x1f + movs r6, #1 + eors r1, r6 + ands r1, r7 + movs r0, #2 + rsbs r0, r0, #0 + mov r8, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + lsls r0, r0, #0x1f + lsrs r0, r0, #0x1f + adds r1, r5, #0 + adds r1, #0x2a + strb r0, [r1] + ldrb r0, [r3] + movs r1, #4 + orrs r0, r1 + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r3] + ldrb r1, [r4] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0810F0AA + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810F07A + ldrb r1, [r4, #0xe] + mov r0, sb + ands r0, r1 + cmp r0, #0 + bne _0810F060 + ldrb r2, [r5, #5] + lsls r1, r2, #0x1c + lsrs r1, r1, #0x1e + subs r1, #1 + movs r0, #3 + ands r1, r0 + lsls r1, r1, #2 + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #5] + b _0810F098 +_0810F060: + ldrb r2, [r5, #5] + lsls r1, r2, #0x1c + lsrs r1, r1, #0x1e + adds r1, #1 + movs r0, #3 + ands r1, r0 + lsls r1, r1, #2 + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #5] + b _0810F098 +_0810F07A: + ldrb r1, [r4, #0xe] + mov r0, sb + ands r0, r1 + cmp r0, #0 + bne _0810F08E + adds r1, r5, #0 + adds r1, #0x43 + ldrb r0, [r1] + subs r0, #0xc + b _0810F096 +_0810F08E: + adds r1, r5, #0 + adds r1, #0x43 + ldrb r0, [r1] + adds r0, #0xc +_0810F096: + strb r0, [r1] +_0810F098: + ldrb r2, [r4, #0xe] + lsls r0, r2, #0x1f + lsrs r0, r0, #0x1f + eors r0, r6 + ands r0, r7 + mov r1, r8 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0xe] +_0810F0AA: + ldrb r1, [r4] + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4] + ldrh r1, [r4, #2] + mov ip, r1 +_0810F0B8: + ldrb r0, [r4] + movs r1, #0xf + ands r1, r0 + movs r0, #0x20 + b _0810F1C8 +_0810F0C2: + lsls r1, r2, #0x18 + lsrs r0, r1, #0x1c + cmp r0, #2 + bne _0810F0D2 + movs r0, #8 + orrs r0, r2 + strb r0, [r4] + b _0810F1C0 +_0810F0D2: + lsrs r0, r1, #0x1c + cmp r0, #0 + bne _0810F0F4 + lsls r0, r2, #0x1e + lsrs r0, r0, #0x1f + movs r1, #1 + eors r0, r1 + ands r0, r7 + lsls r0, r0, #1 + movs r1, #3 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + orrs r1, r7 + strb r1, [r4] + strb r6, [r4, #1] + b _0810F1C0 +_0810F0F4: + movs r0, #8 + ands r0, r2 + cmp r0, #0 + beq _0810F1C0 + adds r3, r5, #0 + adds r3, #0x3f + ldrb r2, [r3] + lsls r1, r2, #0x1f + lsrs r1, r1, #0x1f + movs r6, #1 + eors r1, r6 + ands r1, r7 + movs r0, #2 + rsbs r0, r0, #0 + mov r8, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + lsls r0, r0, #0x1f + lsrs r0, r0, #0x1f + adds r1, r5, #0 + adds r1, #0x2a + strb r0, [r1] + ldrb r0, [r3] + movs r1, #4 + orrs r0, r1 + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r3] + ldrb r1, [r4] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0810F1B2 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810F182 + ldrb r1, [r4, #0xe] + mov r0, sb + ands r0, r1 + cmp r0, #0 + bne _0810F168 + ldrb r2, [r5, #5] + lsls r1, r2, #0x1c + lsrs r1, r1, #0x1e + subs r1, #1 + movs r0, #3 + ands r1, r0 + lsls r1, r1, #2 + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #5] + b _0810F1A0 +_0810F168: + ldrb r2, [r5, #5] + lsls r1, r2, #0x1c + lsrs r1, r1, #0x1e + adds r1, #1 + movs r0, #3 + ands r1, r0 + lsls r1, r1, #2 + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #5] + b _0810F1A0 +_0810F182: + ldrb r1, [r4, #0xe] + mov r0, sb + ands r0, r1 + cmp r0, #0 + bne _0810F196 + adds r1, r5, #0 + adds r1, #0x43 + ldrb r0, [r1] + subs r0, #0xc + b _0810F19E +_0810F196: + adds r1, r5, #0 + adds r1, #0x43 + ldrb r0, [r1] + adds r0, #0xc +_0810F19E: + strb r0, [r1] +_0810F1A0: + ldrb r2, [r4, #0xe] + lsls r0, r2, #0x1f + lsrs r0, r0, #0x1f + eors r0, r6 + ands r0, r7 + mov r1, r8 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0xe] +_0810F1B2: + ldrb r1, [r4] + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4] + ldrh r1, [r4, #2] + mov ip, r1 +_0810F1C0: + ldrb r0, [r4] + movs r1, #0xf + ands r1, r0 + movs r0, #0x30 +_0810F1C8: + orrs r1, r0 + strb r1, [r4] +_0810F1CC: + ldrb r1, [r4] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1f + adds r0, r4, #0 + adds r0, #0xc + adds r0, r0, r1 + ldrb r1, [r0] + ldr r3, _0810F254 + mov r2, ip + lsls r0, r2, #1 + adds r0, r0, r3 + movs r2, #0 + ldrsh r0, [r0, r2] + muls r0, r1, r0 + asrs r0, r0, #8 + strh r0, [r5, #0x24] + ldrb r2, [r5, #3] + lsls r2, r2, #0x1a + lsrs r2, r2, #0x1b + movs r1, #0x24 + ldrsh r0, [r5, r1] + rsbs r0, r0, #0 + asrs r0, r0, #1 + ldrb r1, [r4, #0xa] + adds r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #1 + adds r1, r1, r3 + ldrh r6, [r1] + ldr r1, _0810F258 + lsls r2, r2, #3 + adds r2, r2, r1 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + strh r0, [r2, #6] + strh r0, [r2] + strh r6, [r2, #2] + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + rsbs r0, r0, #0 + strh r0, [r2, #4] + ldrh r0, [r4, #6] + ldrh r2, [r4, #8] + adds r0, r0, r2 + strh r0, [r4, #8] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + movs r1, #4 + ldrsh r0, [r4, r1] + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + beq _0810F25C + ldrh r0, [r4, #4] + subs r1, #1 + ands r1, r0 + ldrh r0, [r4, #2] + subs r0, r0, r1 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #2] + b _0810F26C + .align 2, 0 +_0810F254: .4byte 0x082FA8CC +_0810F258: .4byte 0x02021B3C +_0810F25C: + ldrh r0, [r4, #4] + ldr r1, _0810F294 + ands r1, r0 + ldrh r2, [r4, #2] + adds r1, r1, r2 + movs r0, #0xff + ands r1, r0 + strh r1, [r4, #2] +_0810F26C: + movs r0, #0x22 + ldrsh r1, [r5, r0] + movs r2, #0x26 + ldrsh r0, [r5, r2] + adds r1, r1, r0 + ldrh r0, [r4, #0xe] + lsrs r0, r0, #1 + cmp r1, r0 + blt _0810F286 + movs r0, #0 + strh r0, [r5, #0x2e] + ldr r0, _0810F298 + str r0, [r5, #0x1c] +_0810F286: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0810F294: .4byte 0x00007FFF +_0810F298: .4byte 0x0810EB19 + thumb_func_end sub_0810ED70 + + thumb_func_start sub_0810F29C +sub_0810F29C: @ 0x0810F29C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _0810F2E4 + ldrb r0, [r0] + bl GetBattlerSpriteBGPriority + movs r1, #3 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r4, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #5] + ldr r5, _0810F2E8 + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x20] + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x22] + ldr r0, _0810F2EC + str r0, [r4, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810F2E4: .4byte 0x020380D7 +_0810F2E8: .4byte 0x020380D6 +_0810F2EC: .4byte 0x080A70E9 + thumb_func_end sub_0810F29C + + thumb_func_start sub_0810F2F0 +sub_0810F2F0: @ 0x0810F2F0 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0810F308 + movs r1, #4 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _0810F30C + adds r0, r5, #0 + movs r1, #0 + bl InitSpritePosToAnimAttacker + b _0810F314 + .align 2, 0 +_0810F308: .4byte 0x020380BE +_0810F30C: + adds r0, r5, #0 + movs r1, #0 + bl InitSpritePosToAnimTarget +_0810F314: + ldr r4, _0810F37C + movs r2, #4 + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _0810F32C + ldr r0, _0810F380 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810F342 +_0810F32C: + movs r1, #4 + ldrsh r0, [r4, r1] + cmp r0, #1 + bne _0810F348 + ldr r0, _0810F384 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810F348 +_0810F342: + ldrh r0, [r5, #0x20] + adds r0, #8 + strh r0, [r5, #0x20] +_0810F348: + ldr r4, _0810F37C + ldrb r1, [r4, #8] + adds r0, r5, #0 + bl SeekSpriteAnim + ldrh r0, [r5, #0x20] + subs r0, #0x20 + strh r0, [r5, #0x20] + ldr r0, _0810F388 + strh r0, [r5, #0x30] + ldrh r1, [r4, #8] + movs r0, #0xc + adds r2, r0, #0 + muls r2, r1, r2 + adds r0, r2, #0 + ldrh r2, [r5, #0x24] + adds r0, r0, r2 + strh r0, [r5, #0x24] + strh r1, [r5, #0x2e] + ldrh r0, [r4, #6] + strh r0, [r5, #0x3c] + ldr r0, _0810F38C + str r0, [r5, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810F37C: .4byte 0x020380BE +_0810F380: .4byte 0x020380D6 +_0810F384: .4byte 0x020380D7 +_0810F388: .4byte 0x00000CCC +_0810F38C: .4byte 0x0810F391 + thumb_func_end sub_0810F2F0 + + thumb_func_start sub_0810F390 +sub_0810F390: @ 0x0810F390 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x24] + adds r0, r0, r1 + movs r1, #0 + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #6 + bne _0810F3BA + strh r1, [r4, #0x2e] + strh r1, [r4, #0x24] + adds r0, r4, #0 + bl StartSpriteAnim +_0810F3BA: + ldrh r0, [r4, #0x3c] + subs r0, #1 + strh r0, [r4, #0x3c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0810F3D2 + adds r0, r4, #0 + bl DestroyAnimSprite +_0810F3D2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0810F390 + + thumb_func_start sub_0810F3D8 +sub_0810F3D8: @ 0x0810F3D8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r0, #0 + ldr r1, _0810F470 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r7, r0, r1 + ldrh r0, [r7, #8] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0810F452 + ldr r1, _0810F474 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r1, #8 + ldrsh r0, [r7, r1] + movs r5, #0xd + rsbs r5, r5, #0 + adds r1, r5, #0 + bl Sin + ldr r4, _0810F478 + strh r0, [r4] + movs r1, #8 + ldrsh r0, [r7, r1] + adds r1, r5, #0 + bl Cos + strh r0, [r4, #2] + movs r0, #1 + strh r0, [r4, #4] + movs r0, #3 + strh r0, [r4, #6] + ldr r0, _0810F47C + mov r8, r0 + ldr r5, _0810F480 + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r0, r8 + adds r1, r4, #0 + movs r3, #3 + bl CreateSpriteAndAnimate +_0810F452: + ldrh r0, [r7, #8] + adds r0, #8 + strh r0, [r7, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xff + ble _0810F466 + adds r0, r6, #0 + bl DestroyAnimVisualTask +_0810F466: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0810F470: .4byte 0x03005B60 +_0810F474: .4byte 0x0203809E +_0810F478: .4byte 0x020380BE +_0810F47C: .4byte 0x08572FCC +_0810F480: .4byte 0x020380D7 + thumb_func_end sub_0810F3D8 + + thumb_func_start sub_0810F484 +sub_0810F484: @ 0x0810F484 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0810F496 + cmp r0, #1 + beq _0810F4C8 + b _0810F4DC +_0810F496: + adds r0, r4, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + movs r0, #0 + bl GetAnimBattlerSpriteId + ldr r2, _0810F4C4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + b _0810F4DC + .align 2, 0 +_0810F4C4: .4byte 0x020205AC +_0810F4C8: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0810F4DC + adds r0, r4, #0 + bl DestroyAnimSprite +_0810F4DC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0810F484 + + thumb_func_start sub_0810F4E4 +sub_0810F4E4: @ 0x0810F4E4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _0810F51C + cmp r0, #1 + bgt _0810F4FA + cmp r0, #0 + beq _0810F500 + b _0810F56E +_0810F4FA: + cmp r0, #2 + beq _0810F530 + b _0810F56E +_0810F500: + ldr r0, _0810F518 + ldrb r0, [r0] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x22] + rsbs r0, r0, #0 + subs r0, #0x20 + strh r0, [r4, #0x26] + b _0810F528 + .align 2, 0 +_0810F518: .4byte 0x020380D7 +_0810F51C: + ldrh r0, [r4, #0x26] + adds r0, #0xa + strh r0, [r4, #0x26] + lsls r0, r0, #0x10 + cmp r0, #0 + blt _0810F56E +_0810F528: + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + b _0810F56E +_0810F530: + 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, r0, r1 + movs r1, #0x20 + rsbs r1, r1, #0 + cmp r0, r1 + bge _0810F56E + movs r0, #0 + bl GetAnimBattlerSpriteId + ldr r2, _0810F574 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + adds r1, #0x3e + ldrb r2, [r1] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + adds r0, r4, #0 + bl DestroyAnimSprite +_0810F56E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810F574: .4byte 0x020205AC + thumb_func_end sub_0810F4E4 + + thumb_func_start sub_0810F578 +sub_0810F578: @ 0x0810F578 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldr r1, _0810F5B4 + ldrh r0, [r1, #4] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #6] + strh r0, [r4, #0x30] + ldr r0, _0810F5B8 + str r0, [r4, #0x1c] + movs r0, #0 + bl GetAnimBattlerSpriteId + ldr r2, _0810F5BC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810F5B4: .4byte 0x020380BE +_0810F5B8: .4byte 0x0810F5C1 +_0810F5BC: .4byte 0x020205AC + thumb_func_end sub_0810F578 + + thumb_func_start sub_0810F5C0 +sub_0810F5C0: @ 0x0810F5C0 + push {lr} + adds r2, r0, #0 + ldrh r1, [r2, #0x2e] + movs r3, #0x2e + ldrsh r0, [r2, r3] + cmp r0, #0 + ble _0810F5D4 + subs r0, r1, #1 + strh r0, [r2, #0x2e] + b _0810F618 +_0810F5D4: + movs r1, #0x22 + ldrsh r0, [r2, r1] + movs r3, #0x26 + ldrsh r1, [r2, r3] + adds r0, r0, r1 + movs r1, #0x20 + rsbs r1, r1, #0 + cmp r0, r1 + ble _0810F5FA + ldrh r0, [r2, #0x30] + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + ldrh r1, [r2, #0x26] + subs r1, r1, r0 + strh r1, [r2, #0x26] + b _0810F618 +_0810F5FA: + adds r3, r2, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r1, #4 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r2, #0x34] + adds r1, r0, #1 + strh r1, [r2, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x14 + ble _0810F618 + ldr r0, _0810F61C + str r0, [r2, #0x1c] +_0810F618: + pop {r0} + bx r0 + .align 2, 0 +_0810F61C: .4byte 0x0810F621 + thumb_func_end sub_0810F5C0 + + thumb_func_start sub_0810F620 +sub_0810F620: @ 0x0810F620 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + ldrh r1, [r2, #0x26] + adds r0, r0, r1 + strh r0, [r2, #0x26] + movs r3, #0x22 + ldrsh r0, [r2, r3] + movs r3, #0x26 + ldrsh r1, [r2, r3] + adds r0, r0, r1 + movs r1, #0x20 + rsbs r1, r1, #0 + cmp r0, r1 + ble _0810F650 + adds r3, r2, #0 + adds r3, #0x3e + ldrb r1, [r3] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3] +_0810F650: + movs r1, #0x26 + ldrsh r0, [r2, r1] + cmp r0, #0 + ble _0810F65E + adds r0, r2, #0 + bl DestroyAnimSprite +_0810F65E: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0810F620 + + thumb_func_start sub_0810F664 +sub_0810F664: @ 0x0810F664 + push {r4, r5, lr} + sub sp, #4 + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _0810F678 + cmp r0, #1 + beq _0810F6D0 + b _0810F73C +_0810F678: + ldr r0, _0810F688 + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r0, #0 + bne _0810F690 + ldr r4, _0810F68C + b _0810F692 + .align 2, 0 +_0810F688: .4byte 0x020380BE +_0810F68C: .4byte 0x020380D6 +_0810F690: + ldr r4, _0810F6CC +_0810F692: + ldrb r0, [r4] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + movs r0, #0 + movs r3, #0x80 + lsls r3, r3, #2 + strh r3, [r5, #0x30] + movs r2, #0x80 + lsls r2, r2, #1 + str r0, [sp] + adds r0, r5, #0 + movs r1, #0 + bl TrySetSpriteRotScale + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] + b _0810F73C + .align 2, 0 +_0810F6CC: .4byte 0x020380D7 +_0810F6D0: + movs r1, #0x32 + ldrsh r0, [r5, r1] + cmp r0, #0xb + bgt _0810F6DE + ldrh r0, [r5, #0x30] + subs r0, #0x28 + b _0810F6E2 +_0810F6DE: + ldrh r0, [r5, #0x30] + adds r0, #0x28 +_0810F6E2: + strh r0, [r5, #0x30] + ldrh r0, [r5, #0x32] + adds r0, #1 + movs r1, #0 + strh r0, [r5, #0x32] + movs r2, #0x80 + lsls r2, r2, #1 + movs r0, #0x30 + ldrsh r3, [r5, r0] + str r1, [sp] + adds r0, r5, #0 + bl TrySetSpriteRotScale + ldrb r1, [r5, #3] + lsls r1, r1, #0x1a + lsrs r1, r1, #0x1b + movs r0, #0xf4 + lsls r0, r0, #6 + ldr r2, _0810F744 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r2, #6 + ldrsh r1, [r1, r2] + bl __divsi3 + adds r1, r0, #1 + cmp r1, #0x80 + ble _0810F71C + movs r1, #0x80 +_0810F71C: + movs r0, #0x40 + subs r0, r0, r1 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r1, r0, #1 + strh r1, [r5, #0x26] + movs r1, #0x32 + ldrsh r0, [r5, r1] + cmp r0, #0x18 + bne _0810F73C + adds r0, r5, #0 + bl sub_080A6D64 + adds r0, r5, #0 + bl DestroyAnimSprite +_0810F73C: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810F744: .4byte 0x02021B3C + thumb_func_end sub_0810F664 + + thumb_func_start sub_0810F748 +sub_0810F748: @ 0x0810F748 + push {r4, r5, lr} + adds r5, r0, #0 + bl Random2 + ldr r4, _0810F76C + ands r4, r0 + bl Random2 + movs r1, #0x7f + ands r1, r0 + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _0810F770 + movs r2, #0xb8 + lsls r2, r2, #2 + adds r0, r4, r2 + b _0810F778 + .align 2, 0 +_0810F76C: .4byte 0x000001FF +_0810F770: + movs r2, #0xb8 + lsls r2, r2, #2 + adds r0, r2, #0 + subs r0, r0, r4 +_0810F778: + strh r0, [r5, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0810F78C + movs r2, #0xe0 + lsls r2, r2, #2 + adds r0, r2, #0 + adds r0, r1, r0 + b _0810F794 +_0810F78C: + movs r2, #0xe0 + lsls r2, r2, #2 + adds r0, r2, #0 + subs r0, r0, r1 +_0810F794: + strh r0, [r5, #0x30] + ldr r2, _0810F7BC + ldrh r0, [r2] + strh r0, [r5, #0x32] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0810F7B0 + ldrb r0, [r5, #3] + movs r1, #0x3f + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #0x10 + orrs r1, r0 + strb r1, [r5, #3] +_0810F7B0: + movs r1, #2 + ldrsh r0, [r2, r1] + cmp r0, #0 + bne _0810F7C4 + ldr r4, _0810F7C0 + b _0810F7C6 + .align 2, 0 +_0810F7BC: .4byte 0x020380BE +_0810F7C0: .4byte 0x020380D6 +_0810F7C4: + ldr r4, _0810F7F0 +_0810F7C6: + ldrb r0, [r4] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #0x20 + strh r0, [r5, #0x22] + ldr r0, _0810F7F4 + str r0, [r5, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810F7F0: .4byte 0x020380D7 +_0810F7F4: .4byte 0x0810F7F9 + thumb_func_end sub_0810F748 + + thumb_func_start sub_0810F7F8 +sub_0810F7F8: @ 0x0810F7F8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0810F810 + ldrh r3, [r4, #0x2e] + lsls r0, r3, #0x10 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x24] + adds r0, r0, r1 + b _0810F81A +_0810F810: + ldrh r3, [r4, #0x2e] + lsls r1, r3, #0x10 + asrs r1, r1, #0x18 + ldrh r0, [r4, #0x24] + subs r0, r0, r1 +_0810F81A: + strh r0, [r4, #0x24] + ldrh r2, [r4, #0x30] + lsls r1, r2, #0x10 + asrs r1, r1, #0x18 + ldrh r0, [r4, #0x26] + subs r0, r0, r1 + strh r0, [r4, #0x26] + strh r3, [r4, #0x2e] + adds r0, r2, #0 + subs r0, #0x20 + strh r0, [r4, #0x30] + lsls r0, r3, #0x10 + cmp r0, #0 + bge _0810F83A + movs r0, #0 + strh r0, [r4, #0x2e] +_0810F83A: + ldrh r0, [r4, #0x34] + adds r0, #1 + strh r0, [r4, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1f + bne _0810F84E + adds r0, r4, #0 + bl DestroyAnimSprite +_0810F84E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0810F7F8 + + thumb_func_start sub_0810F854 +sub_0810F854: @ 0x0810F854 + movs r1, #0 + strh r1, [r0, #0x3a] + movs r1, #0x40 + strh r1, [r0, #0x3c] + ldr r1, _0810F864 + str r1, [r0, #0x1c] + bx lr + .align 2, 0 +_0810F864: .4byte 0x0810F869 + thumb_func_end sub_0810F854 + + thumb_func_start sub_0810F868 +sub_0810F868: @ 0x0810F868 + push {lr} + adds r3, r0, #0 + movs r0, #0x2e + ldrsh r1, [r3, r0] + cmp r1, #0 + beq _0810F87A + cmp r1, #1 + beq _0810F8C8 + b _0810F8CE +_0810F87A: + ldrh r0, [r3, #0x30] + adds r0, #1 + strh r0, [r3, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #8 + ble _0810F8CE + strh r1, [r3, #0x30] + movs r1, #0x3e + adds r1, r1, r3 + mov ip, r1 + ldrb r2, [r1] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrh r0, [r3, #0x32] + adds r0, #1 + strh r0, [r3, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #5 + ble _0810F8CE + ldrb r1, [r1] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0810F8CE + ldrh r0, [r3, #0x2e] + adds r0, #1 + strh r0, [r3, #0x2e] + b _0810F8CE +_0810F8C8: + adds r0, r3, #0 + bl DestroyAnimSprite +_0810F8CE: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0810F868 + + thumb_func_start sub_0810F8D4 +sub_0810F8D4: @ 0x0810F8D4 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #4 + mov r8, r0 + ldrh r4, [r0, #0x20] + ldrh r5, [r0, #0x22] + ldr r6, _0810F988 + ldrb r0, [r6] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, r8 + strh r0, [r1, #0x20] + ldrb r0, [r6] + movs r1, #3 + bl GetBattlerSpriteCoord + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov r2, r8 + strh r6, [r2, #0x22] + ldrh r0, [r2, #0x20] + mov sb, r0 + mov r1, sb + lsls r0, r1, #4 + strh r0, [r2, #0x36] + lsls r0, r6, #4 + strh r0, [r2, #0x38] + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + movs r1, #0x20 + ldrsh r0, [r2, r1] + subs r0, r4, r0 + lsls r0, r0, #4 + movs r1, #0xc + bl __divsi3 + mov r2, r8 + strh r0, [r2, #0x3a] + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + movs r1, #0x22 + ldrsh r0, [r2, r1] + subs r0, r5, r0 + lsls r0, r0, #4 + movs r1, #0xc + bl __divsi3 + mov r2, r8 + strh r0, [r2, #0x3c] + mov r0, sb + subs r4, r4, r0 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + subs r5, r5, r6 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl ArcTan2Neg + lsls r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + movs r3, #0x80 + lsls r3, r3, #1 + str r0, [sp] + mov r0, r8 + movs r1, #1 + adds r2, r3, #0 + bl TrySetSpriteRotScale + ldr r0, _0810F98C + mov r2, r8 + str r0, [r2, #0x1c] + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0810F988: .4byte 0x020380D6 +_0810F98C: .4byte 0x0810F991 + thumb_func_end sub_0810F8D4 + + thumb_func_start sub_0810F990 +sub_0810F990: @ 0x0810F990 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x3a] + ldrh r1, [r2, #0x36] + adds r0, r0, r1 + strh r0, [r2, #0x36] + ldrh r1, [r2, #0x3c] + ldrh r3, [r2, #0x38] + adds r1, r1, r3 + strh r1, [r2, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + strh r0, [r2, #0x20] + lsls r1, r1, #0x10 + asrs r3, r1, #0x14 + strh r3, [r2, #0x22] + adds r0, #0x2d + lsls r0, r0, #0x10 + movs r1, #0xa5 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _0810F9CA + adds r1, r3, #0 + cmp r1, #0x9d + bgt _0810F9CA + movs r0, #0x2d + rsbs r0, r0, #0 + cmp r1, r0 + bge _0810F9D0 +_0810F9CA: + adds r0, r2, #0 + bl DestroySpriteAndMatrix +_0810F9D0: + pop {r0} + bx r0 + thumb_func_end sub_0810F990 + + thumb_func_start unref_sub_810F184 +unref_sub_810F184: @ 0x0810F9D4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0810FA04 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _0810FA0C + movs r0, #0 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0810FA08 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + b _0810FA2A + .align 2, 0 +_0810FA04: .4byte 0x020380BE +_0810FA08: .4byte 0x020205AC +_0810FA0C: + movs r0, #0 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0810FA38 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + adds r1, #0x3e + ldrb r2, [r1] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 +_0810FA2A: + strb r0, [r1] + adds r0, r4, #0 + bl DestroyAnimVisualTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810FA38: .4byte 0x020205AC + thumb_func_end unref_sub_810F184 + diff --git a/asm/frontier_pass.s b/asm/frontier_pass.s new file mode 100644 index 0000000..b9392e7 --- /dev/null +++ b/asm/frontier_pass.s @@ -0,0 +1,3758 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ResetGpuRegsAndBgs +ResetGpuRegsAndBgs: @ 0x080C49CC + push {lr} + sub sp, #8 + movs r0, #0 + movs r1, #0 + bl SetGpuReg + movs r0, #0xe + movs r1, #0 + bl SetGpuReg + movs r0, #0xc + movs r1, #0 + bl SetGpuReg + movs r0, #0xa + movs r1, #0 + bl SetGpuReg + movs r0, #8 + movs r1, #0 + bl SetGpuReg + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x40 + movs r1, #0 + bl SetGpuReg + movs r0, #0x44 + movs r1, #0 + bl SetGpuReg + movs r0, #0x42 + movs r1, #0 + bl SetGpuReg + movs r0, #0x46 + movs r1, #0 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0 + bl SetGpuReg + movs r0, #0x4a + movs r1, #0 + bl SetGpuReg + mov r1, sp + movs r0, #0 + strh r0, [r1] + movs r1, #0xc0 + lsls r1, r1, #0x13 + ldr r2, _080C4AB8 + mov r0, sp + bl CpuSet + movs r0, #0 + str r0, [sp, #4] + add r0, sp, #4 + movs r1, #0xe0 + lsls r1, r1, #0x13 + ldr r2, _080C4ABC + bl CpuSet + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 +_080C4AB8: .4byte 0x0100C000 +_080C4ABC: .4byte 0x05000100 + thumb_func_end ResetGpuRegsAndBgs + + thumb_func_start ShowFrontierPass +ShowFrontierPass: @ 0x080C4AC0 + push {lr} + bl AllocateFrontierPassData + ldr r0, _080C4AD0 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080C4AD0: .4byte 0x080C4D49 + thumb_func_end ShowFrontierPass + + thumb_func_start LeaveFrontierPass +LeaveFrontierPass: @ 0x080C4AD4 + push {lr} + ldr r0, _080C4AE8 + ldr r0, [r0] + ldr r0, [r0] + bl SetMainCallback2 + bl FreeFrontierPassData + pop {r0} + bx r0 + .align 2, 0 +_080C4AE8: .4byte 0x0203998C + thumb_func_end LeaveFrontierPass + + thumb_func_start AllocateFrontierPassData +AllocateFrontierPassData: @ 0x080C4AEC + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r5, _080C4AFC + ldr r0, [r5] + cmp r0, #0 + beq _080C4B00 + movs r0, #1 + b _080C4BC4 + .align 2, 0 +_080C4AFC: .4byte 0x0203998C +_080C4B00: + movs r0, #0x18 + bl AllocZeroed + str r0, [r5] + cmp r0, #0 + bne _080C4B10 + movs r0, #2 + b _080C4BC4 +_080C4B10: + str r4, [r0] + bl GetCurrentRegionMapSectionId + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x3a + beq _080C4B2E + cmp r4, #0xca + beq _080C4B2E + ldr r0, [r5] + movs r1, #0xb0 + strh r1, [r0, #8] + movs r1, #0x68 + strh r1, [r0, #0xa] + b _080C4B3C +_080C4B2E: + ldr r2, _080C4BCC + ldr r1, [r2] + movs r0, #0xb0 + strh r0, [r1, #8] + movs r0, #0x30 + strh r0, [r1, #0xa] + adds r5, r2, #0 +_080C4B3C: + ldr r1, [r5] + ldr r0, _080C4BD0 + ldr r0, [r0] + ldr r2, _080C4BD4 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r1, #6] + bl CanCopyRecordedBattleSaveData + ldr r3, [r5] + movs r1, #1 + ands r0, r1 + ldrb r2, [r3, #0xe] + movs r1, #2 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0xe] + ldr r2, [r5] + ldrb r1, [r2, #0xe] + movs r0, #0xf + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0xe] + bl CountPlayerTrainerStars + ldr r3, [r5] + lsls r0, r0, #4 + ldrb r2, [r3, #0xe] + movs r1, #0xf + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0xe] + movs r4, #0 + adds r6, r5, #0 +_080C4B82: + lsls r5, r4, #1 + ldr r1, _080C4BD8 + adds r0, r5, r1 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C4B9E + ldr r1, [r6] + adds r1, #0xf + adds r1, r1, r4 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_080C4B9E: + ldr r2, _080C4BDC + adds r0, r5, r2 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C4BB8 + ldr r1, [r6] + adds r1, #0xf + adds r1, r1, r4 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_080C4BB8: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #6 + bls _080C4B82 + movs r0, #0 +_080C4BC4: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080C4BCC: .4byte 0x0203998C +_080C4BD0: .4byte 0x03005AF0 +_080C4BD4: .4byte 0x00000EB8 +_080C4BD8: .4byte 0x000008C4 +_080C4BDC: .4byte 0x000008C5 + thumb_func_end AllocateFrontierPassData + + thumb_func_start FreeFrontierPassData +FreeFrontierPassData: @ 0x080C4BE0 + push {r4, lr} + ldr r4, _080C4C00 + ldr r0, [r4] + cmp r0, #0 + beq _080C4C04 + movs r1, #0 + movs r2, #0x18 + bl memset + ldr r0, [r4] + bl Free + movs r0, #0 + str r0, [r4] + b _080C4C06 + .align 2, 0 +_080C4C00: .4byte 0x0203998C +_080C4C04: + movs r0, #1 +_080C4C06: + pop {r4} + pop {r1} + bx r1 + thumb_func_end FreeFrontierPassData + + thumb_func_start AllocateFrontierPassGfx +AllocateFrontierPassGfx: @ 0x080C4C0C + push {r4, lr} + ldr r4, _080C4C1C + ldr r0, [r4] + cmp r0, #0 + beq _080C4C20 + movs r0, #1 + b _080C4C36 + .align 2, 0 +_080C4C1C: .4byte 0x02039990 +_080C4C20: + ldr r0, _080C4C30 + bl AllocZeroed + str r0, [r4] + cmp r0, #0 + beq _080C4C34 + movs r0, #0 + b _080C4C36 + .align 2, 0 +_080C4C30: .4byte 0x00002434 +_080C4C34: + movs r0, #2 +_080C4C36: + pop {r4} + pop {r1} + bx r1 + thumb_func_end AllocateFrontierPassGfx + + thumb_func_start FreeFrontierPassGfx +FreeFrontierPassGfx: @ 0x080C4C3C + push {r4, lr} + bl FreeAllWindowBuffers + ldr r4, _080C4C50 + ldr r0, [r4] + cmp r0, #0 + bne _080C4C54 + movs r0, #1 + b _080C4C9C + .align 2, 0 +_080C4C50: .4byte 0x02039990 +_080C4C54: + ldr r0, [r0, #0x28] + cmp r0, #0 + beq _080C4C64 + bl Free + ldr r1, [r4] + movs r0, #0 + str r0, [r1, #0x28] +_080C4C64: + ldr r0, [r4] + ldr r0, [r0, #0x24] + cmp r0, #0 + beq _080C4C76 + bl Free + ldr r1, [r4] + movs r0, #0 + str r0, [r1, #0x24] +_080C4C76: + ldr r0, [r4] + ldr r0, [r0, #0x20] + cmp r0, #0 + beq _080C4C88 + bl Free + ldr r1, [r4] + movs r0, #0 + str r0, [r1, #0x20] +_080C4C88: + ldr r0, [r4] + ldr r2, _080C4CA4 + movs r1, #0 + bl memset + ldr r0, [r4] + bl Free + movs r0, #0 + str r0, [r4] +_080C4C9C: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080C4CA4: .4byte 0x00002434 + thumb_func_end FreeFrontierPassGfx + + thumb_func_start VblankCb_FrontierPass +VblankCb_FrontierPass: @ 0x080C4CA8 + push {r4, r5, r6, r7, lr} + sub sp, #0x10 + ldr r0, _080C4D28 + ldr r6, [r0] + adds r0, r6, #0 + adds r0, #0x2c + ldrb r0, [r0] + cmp r0, #0 + beq _080C4D12 + ldr r3, _080C4D2C + ldr r0, _080C4D30 + ldr r0, [r0] + ldrb r4, [r0, #0xe] + lsls r4, r4, #0x1c + lsrs r0, r4, #0x1d + subs r0, #1 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r2, #0 + ldrsh r1, [r0, r2] + lsls r1, r1, #8 + lsrs r0, r4, #0x1d + subs r0, #1 + lsls r0, r0, #2 + adds r5, r3, #2 + adds r0, r0, r5 + movs r7, #0 + ldrsh r2, [r0, r7] + lsls r2, r2, #8 + lsrs r0, r4, #0x1d + subs r0, #1 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r7, #0 + ldrsh r3, [r0, r7] + lsrs r4, r4, #0x1d + subs r4, #1 + lsls r4, r4, #2 + adds r4, r4, r5 + movs r5, #0 + ldrsh r0, [r4, r5] + str r0, [sp] + movs r7, #0x2e + ldrsh r0, [r6, r7] + str r0, [sp, #4] + movs r4, #0x30 + ldrsh r0, [r6, r4] + str r0, [sp, #8] + movs r0, #0 + str r0, [sp, #0xc] + movs r0, #2 + bl SetBgAffine +_080C4D12: + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + add sp, #0x10 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080C4D28: .4byte 0x02039990 +_080C4D2C: .4byte 0x0854AF04 +_080C4D30: .4byte 0x0203998C + thumb_func_end VblankCb_FrontierPass + + thumb_func_start CB2_FrontierPass +CB2_FrontierPass: @ 0x080C4D34 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CB2_FrontierPass + + thumb_func_start CB2_InitFrontierPass +CB2_InitFrontierPass: @ 0x080C4D48 + push {lr} + bl InitFrontierPass + cmp r0, #0 + beq _080C4D60 + ldr r0, _080C4D64 + movs r1, #0 + bl CreateTask + ldr r0, _080C4D68 + bl SetMainCallback2 +_080C4D60: + pop {r0} + bx r0 + .align 2, 0 +_080C4D64: .4byte 0x080C5345 +_080C4D68: .4byte 0x080C4D35 + thumb_func_end CB2_InitFrontierPass + + thumb_func_start CB2_HideFrontierPass +CB2_HideFrontierPass: @ 0x080C4D6C + push {lr} + bl HideFrontierPass + cmp r0, #0 + beq _080C4D7A + bl LeaveFrontierPass +_080C4D7A: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CB2_HideFrontierPass + + thumb_func_start InitFrontierPass +InitFrontierPass: @ 0x080C4D80 + push {r4, r5, lr} + sub sp, #0xc + movs r0, #0 + str r0, [sp, #8] + ldr r0, _080C4DA0 + ldr r0, [r0] + ldrh r0, [r0, #4] + cmp r0, #0xa + bls _080C4D94 + b _080C4FF0 +_080C4D94: + lsls r0, r0, #2 + ldr r1, _080C4DA4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C4DA0: .4byte 0x0203998C +_080C4DA4: .4byte 0x080C4DA8 +_080C4DA8: @ jump table + .4byte _080C4DD4 @ case 0 + .4byte _080C4DEA @ case 1 + .4byte _080C4DF0 @ case 2 + .4byte _080C4E06 @ case 3 + .4byte _080C4E0C @ case 4 + .4byte _080C4E5C @ case 5 + .4byte _080C4E6C @ case 6 + .4byte _080C4ECC @ case 7 + .4byte _080C4F20 @ case 8 + .4byte _080C4F80 @ case 9 + .4byte _080C4FCC @ case 10 +_080C4DD4: + movs r0, #0 + bl SetVBlankCallback + bl ScanlineEffect_Stop + bl SetVBlankHBlankCallbacksToNull + movs r0, #2 + bl DisableInterrupts + b _080C4FF0 +_080C4DEA: + bl ResetGpuRegsAndBgs + b _080C4FF0 +_080C4DF0: + bl ResetTasks + bl ResetSpriteData + bl FreeAllSpritePalettes + bl ResetPaletteFade + bl reset_temp_tile_data_buffers + b _080C4FF0 +_080C4E06: + bl AllocateFrontierPassGfx + b _080C4FF0 +_080C4E0C: + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _080C4E4C + movs r0, #1 + movs r2, #3 + bl InitBgsFromTemplates + ldr r4, _080C4E50 + ldr r1, [r4] + adds r1, #0x32 + movs r0, #1 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, _080C4E54 + adds r1, r1, r0 + movs r0, #2 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, _080C4E58 + adds r1, r1, r0 + movs r0, #3 + bl SetBgTilemapBuffer + movs r0, #2 + movs r1, #6 + movs r2, #1 + bl SetBgAttribute + b _080C4FF0 + .align 2, 0 +_080C4E4C: .4byte 0x0854AF0C +_080C4E50: .4byte 0x02039990 +_080C4E54: .4byte 0x00001032 +_080C4E58: .4byte 0x00002032 +_080C4E5C: + ldr r0, _080C4E68 + bl InitWindows + bl DeactivateAllTextPrinters + b _080C4FF0 + .align 2, 0 +_080C4E68: .4byte 0x0854AF24 +_080C4E6C: + ldr r0, _080C4EB4 + add r1, sp, #8 + bl malloc_and_decompress + ldr r4, _080C4EB8 + ldr r1, [r4] + str r0, [r1, #0x20] + ldr r0, _080C4EBC + add r1, sp, #8 + bl malloc_and_decompress + ldr r1, [r4] + str r0, [r1, #0x24] + ldr r0, _080C4EC0 + add r1, sp, #8 + bl malloc_and_decompress + ldr r1, [r4] + str r0, [r1, #0x28] + ldr r1, _080C4EC4 + movs r4, #0 + str r4, [sp] + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, _080C4EC8 + str r4, [sp] + movs r0, #2 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + b _080C4FF0 + .align 2, 0 +_080C4EB4: .4byte 0x0854AE1C +_080C4EB8: .4byte 0x02039990 +_080C4EBC: .4byte 0x08549B58 +_080C4EC0: .4byte 0x08549DE8 +_080C4EC4: .4byte 0x085469A4 +_080C4EC8: .4byte 0x08549E20 +_080C4ECC: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C4ED8 + b _080C4FFA +_080C4ED8: + movs r5, #0x1e + str r5, [sp] + movs r4, #0x14 + str r4, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + str r5, [sp] + str r4, [sp, #4] + movs r0, #1 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + str r5, [sp] + str r4, [sp, #4] + movs r0, #2 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, #0 + bl CopyBgTilemapBufferToVram + movs r0, #1 + bl CopyBgTilemapBufferToVram + movs r0, #2 + bl CopyBgTilemapBufferToVram + b _080C4FF0 +_080C4F20: + ldr r4, _080C4F78 + movs r2, #0xd0 + lsls r2, r2, #1 + adds r0, r4, #0 + movs r1, #0 + bl LoadPalette + ldr r5, _080C4F7C + ldr r0, [r5] + ldrb r0, [r0, #0xe] + lsrs r0, r0, #4 + lsls r0, r0, #5 + adds r4, #0x20 + adds r0, r0, r4 + movs r1, #0x10 + movs r2, #0x20 + bl LoadPalette + movs r0, #0 + bl stdpal_get + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + bl sub_080C5B88 + ldr r1, [r5] + ldrb r0, [r1, #0xc] + ldrb r1, [r1, #0xd] + bl sub_080C59F0 + ldr r5, [r5] + ldrb r0, [r5, #0xe] + movs r1, #0xe + ands r1, r0 + cmp r1, #2 + beq _080C4F70 + cmp r1, #4 + bne _080C4FF0 +_080C4F70: + movs r0, #0 + strh r0, [r5, #4] + movs r0, #1 + b _080C4FFC + .align 2, 0 +_080C4F78: .4byte 0x085467E4 +_080C4F7C: .4byte 0x0203998C +_080C4F80: + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + bl LoadCursorAndSymbolSprites + ldr r0, _080C4FC8 + bl SetVBlankCallback + movs r4, #1 + rsbs r4, r4, #0 + adds r0, r4, #0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + movs r0, #0 + str r0, [sp] + adds r0, r4, #0 + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + b _080C4FF0 + .align 2, 0 +_080C4FC8: .4byte 0x080C4CA9 +_080C4FCC: + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080C4FFA + ldr r0, _080C4FEC + ldr r0, [r0] + strh r1, [r0, #4] + movs r0, #1 + b _080C4FFC + .align 2, 0 +_080C4FEC: .4byte 0x0203998C +_080C4FF0: + ldr r0, _080C5004 + ldr r1, [r0] + ldrh r0, [r1, #4] + adds r0, #1 + strh r0, [r1, #4] +_080C4FFA: + movs r0, #0 +_080C4FFC: + add sp, #0xc + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080C5004: .4byte 0x0203998C + thumb_func_end InitFrontierPass + + thumb_func_start HideFrontierPass +HideFrontierPass: @ 0x080C5008 + push {lr} + sub sp, #4 + ldr r1, _080C5024 + ldr r0, [r1] + ldrh r0, [r0, #4] + adds r2, r1, #0 + cmp r0, #5 + bhi _080C50E0 + lsls r0, r0, #2 + ldr r1, _080C5028 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C5024: .4byte 0x0203998C +_080C5028: .4byte 0x080C502C +_080C502C: @ jump table + .4byte _080C5044 @ case 0 + .4byte _080C506C @ case 1 + .4byte _080C5078 @ case 2 + .4byte _080C50A2 @ case 3 + .4byte _080C50A8 @ case 4 + .4byte _080C50BA @ case 5 +_080C5044: + ldr r0, [r2] + ldrb r0, [r0, #0xe] + movs r1, #0xe + ands r1, r0 + cmp r1, #2 + beq _080C5066 + cmp r1, #4 + beq _080C5066 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + b _080C50E0 +_080C5066: + ldr r1, [r2] + movs r0, #2 + b _080C50E8 +_080C506C: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C50E0 + b _080C50EA +_080C5078: + movs r0, #0 + movs r1, #0 + bl SetGpuReg + movs r0, #0 + bl HideBg + movs r0, #1 + bl HideBg + movs r0, #2 + bl HideBg + movs r0, #0 + bl SetVBlankCallback + bl ScanlineEffect_Stop + bl SetVBlankHBlankCallbacksToNull + b _080C50E0 +_080C50A2: + bl FreeCursorAndSymbolSprites + b _080C50E0 +_080C50A8: + bl ResetGpuRegsAndBgs + bl ResetTasks + bl ResetSpriteData + bl FreeAllSpritePalettes + b _080C50E0 +_080C50BA: + movs r0, #0 + bl UnsetBgTilemapBuffer + movs r0, #1 + bl UnsetBgTilemapBuffer + movs r0, #2 + bl UnsetBgTilemapBuffer + bl FreeFrontierPassGfx + ldr r0, _080C50DC + ldr r1, [r0] + movs r0, #0 + strh r0, [r1, #4] + movs r0, #1 + b _080C50EC + .align 2, 0 +_080C50DC: .4byte 0x0203998C +_080C50E0: + ldr r0, _080C50F4 + ldr r1, [r0] + ldrh r0, [r1, #4] + adds r0, #1 +_080C50E8: + strh r0, [r1, #4] +_080C50EA: + movs r0, #0 +_080C50EC: + add sp, #4 + pop {r1} + bx r1 + .align 2, 0 +_080C50F4: .4byte 0x0203998C + thumb_func_end HideFrontierPass + + thumb_func_start GetCursorAreaFromCoords +GetCursorAreaFromCoords: @ 0x080C50F8 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + movs r4, #0 + ldr r7, _080C5148 + lsls r1, r1, #0x10 + asrs r5, r1, #0x10 +_080C5106: + lsls r0, r4, #3 + adds r3, r0, r7 + movs r1, #0 + ldrsh r0, [r3, r1] + cmp r0, r5 + bgt _080C5150 + movs r1, #2 + ldrsh r0, [r3, r1] + cmp r0, r5 + blt _080C5150 + movs r0, #4 + ldrsh r1, [r3, r0] + lsls r0, r6, #0x10 + asrs r2, r0, #0x10 + cmp r1, r2 + bgt _080C5150 + movs r1, #6 + ldrsh r0, [r3, r1] + cmp r0, r2 + blt _080C5150 + cmp r4, #5 + bls _080C513E + ldr r0, _080C514C + ldr r0, [r0] + adds r0, r0, r4 + ldrb r0, [r0, #9] + cmp r0, #0 + beq _080C515A +_080C513E: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _080C515C + .align 2, 0 +_080C5148: .4byte 0x0854AF78 +_080C514C: .4byte 0x0203998C +_080C5150: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xc + bls _080C5106 +_080C515A: + movs r0, #0 +_080C515C: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetCursorAreaFromCoords + + thumb_func_start CB2_ReshowFrontierPass +CB2_ReshowFrontierPass: @ 0x080C5164 + push {lr} + bl InitFrontierPass + cmp r0, #0 + beq _080C51C2 + ldr r1, _080C519C + ldr r0, [r1] + ldrb r0, [r0, #0xe] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1d + cmp r0, #1 + blt _080C51A8 + cmp r0, #2 + bgt _080C51A8 + ldr r0, _080C51A0 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080C51A4 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r0, #1 + strh r0, [r1, #8] + b _080C51BC + .align 2, 0 +_080C519C: .4byte 0x0203998C +_080C51A0: .4byte 0x080C54D5 +_080C51A4: .4byte 0x03005B60 +_080C51A8: + ldr r2, [r1] + ldrb r1, [r2, #0xe] + movs r0, #0xf + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0xe] + ldr r0, _080C51C8 + movs r1, #0 + bl CreateTask +_080C51BC: + ldr r0, _080C51CC + bl SetMainCallback2 +_080C51C2: + pop {r0} + bx r0 + .align 2, 0 +_080C51C8: .4byte 0x080C5345 +_080C51CC: .4byte 0x080C4D35 + thumb_func_end CB2_ReshowFrontierPass + + thumb_func_start CB2_ReturnFromRecord +CB2_ReturnFromRecord: @ 0x080C51D0 + push {r4, lr} + ldr r4, _080C5208 + ldr r0, [r4] + bl AllocateFrontierPassData + ldr r0, _080C520C + ldr r1, [r0] + ldrh r0, [r4, #4] + strh r0, [r1, #8] + ldrh r0, [r4, #6] + strh r0, [r1, #0xa] + adds r0, r4, #0 + movs r1, #0 + movs r2, #8 + bl memset + bl InBattlePyramid + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080C5210 + cmp r0, #2 + beq _080C5218 + bl Overworld_PlaySpecialMapMusic + b _080C5220 + .align 2, 0 +_080C5208: .4byte 0x02039998 +_080C520C: .4byte 0x0203998C +_080C5210: + ldr r0, _080C5214 + b _080C521C + .align 2, 0 +_080C5214: .4byte 0x000001CD +_080C5218: + movs r0, #0xe7 + lsls r0, r0, #1 +_080C521C: + bl PlayBGM +_080C5220: + ldr r0, _080C522C + bl SetMainCallback2 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C522C: .4byte 0x080C5165 + thumb_func_end CB2_ReturnFromRecord + + thumb_func_start CB2_ShowFrontierPassFeature +CB2_ShowFrontierPassFeature: @ 0x080C5230 + push {lr} + bl HideFrontierPass + cmp r0, #0 + beq _080C5296 + ldr r0, _080C5254 + ldr r2, [r0] + ldrb r0, [r2, #0xe] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1d + cmp r0, #2 + beq _080C5290 + cmp r0, #2 + bgt _080C5258 + cmp r0, #1 + beq _080C525E + b _080C5296 + .align 2, 0 +_080C5254: .4byte 0x0203998C +_080C5258: + cmp r0, #3 + beq _080C526C + b _080C5296 +_080C525E: + ldr r0, _080C5268 + bl ShowFrontierMap + b _080C5296 + .align 2, 0 +_080C5268: .4byte 0x080C5165 +_080C526C: + ldr r1, _080C5288 + ldr r0, [r2] + str r0, [r1] + ldrh r0, [r2, #8] + strh r0, [r1, #4] + ldrh r0, [r2, #0xa] + strh r0, [r1, #6] + bl FreeFrontierPassData + ldr r0, _080C528C + bl PlayRecordedBattle + b _080C5296 + .align 2, 0 +_080C5288: .4byte 0x02039998 +_080C528C: .4byte 0x080C51D1 +_080C5290: + ldr r0, _080C529C + bl ShowPlayerTrainerCard +_080C5296: + pop {r0} + bx r0 + .align 2, 0 +_080C529C: .4byte 0x080C5165 + thumb_func_end CB2_ShowFrontierPassFeature + + thumb_func_start TryCallPassAreaFunction +TryCallPassAreaFunction: @ 0x080C52A0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + adds r4, r3, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r2, r1, #0 + cmp r1, #1 + blt _080C52C8 + cmp r1, #2 + ble _080C52F0 + cmp r1, #3 + bne _080C52C8 + ldr r0, _080C52CC + ldr r2, [r0] + ldrb r1, [r2, #0xe] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080C52D0 +_080C52C8: + movs r0, #0 + b _080C532C + .align 2, 0 +_080C52CC: .4byte 0x0203998C +_080C52D0: + movs r0, #0xf + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2, #0xe] + adds r0, r3, #0 + bl DestroyTask + ldr r0, _080C52EC + bl SetMainCallback2 + b _080C5316 + .align 2, 0 +_080C52EC: .4byte 0x080C5231 +_080C52F0: + ldr r0, _080C5334 + ldr r3, [r0] + movs r0, #7 + ands r2, r0 + lsls r2, r2, #1 + ldrb r1, [r3, #0xe] + subs r0, #0x16 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #0xe] + ldr r1, _080C5338 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080C533C + str r1, [r0] + movs r1, #0 + strh r1, [r0, #8] +_080C5316: + ldr r0, _080C5334 + ldr r2, [r0] + ldr r0, _080C5340 + ldr r1, [r0] + ldr r0, [r1] + ldrh r0, [r0, #0x20] + strh r0, [r2, #8] + ldr r0, [r1] + ldrh r0, [r0, #0x22] + strh r0, [r2, #0xa] + movs r0, #1 +_080C532C: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080C5334: .4byte 0x0203998C +_080C5338: .4byte 0x03005B60 +_080C533C: .4byte 0x080C54D5 +_080C5340: .4byte 0x02039990 + thumb_func_end TryCallPassAreaFunction + + thumb_func_start Task_HandleFrontierPassInput +Task_HandleFrontierPassInput: @ 0x080C5344 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r5, #0 + ldr r2, _080C5438 + ldrh r1, [r2, #0x2c] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080C537C + ldr r0, _080C543C + ldr r4, [r0] + ldr r1, [r4] + ldrh r3, [r1, #0x22] + movs r7, #0x22 + ldrsh r0, [r1, r7] + cmp r0, #8 + ble _080C537C + subs r0, r3, #2 + strh r0, [r1, #0x22] + ldr r1, [r4] + movs r3, #0x22 + ldrsh r0, [r1, r3] + cmp r0, #7 + bgt _080C537A + movs r0, #2 + strh r0, [r1, #0x22] +_080C537A: + movs r5, #1 +_080C537C: + ldrh r1, [r2, #0x2c] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080C53AA + ldr r0, _080C543C + ldr r4, [r0] + ldr r1, [r4] + ldrh r3, [r1, #0x22] + movs r7, #0x22 + ldrsh r0, [r1, r7] + cmp r0, #0x87 + bgt _080C53AA + adds r0, r3, #2 + strh r0, [r1, #0x22] + ldr r1, [r4] + movs r3, #0x22 + ldrsh r0, [r1, r3] + cmp r0, #0x88 + ble _080C53A8 + movs r0, #0x88 + strh r0, [r1, #0x22] +_080C53A8: + movs r5, #1 +_080C53AA: + ldrh r1, [r2, #0x2c] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080C53D8 + ldr r0, _080C543C + ldr r4, [r0] + ldr r1, [r4] + ldrh r3, [r1, #0x20] + movs r7, #0x20 + ldrsh r0, [r1, r7] + cmp r0, #5 + ble _080C53D8 + subs r0, r3, #2 + strh r0, [r1, #0x20] + ldr r1, [r4] + movs r3, #0x20 + ldrsh r0, [r1, r3] + cmp r0, #4 + bgt _080C53D6 + movs r0, #5 + strh r0, [r1, #0x20] +_080C53D6: + movs r5, #1 +_080C53D8: + ldrh r1, [r2, #0x2c] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080C5406 + ldr r0, _080C543C + ldr r4, [r0] + ldr r1, [r4] + ldrh r3, [r1, #0x20] + movs r7, #0x20 + ldrsh r0, [r1, r7] + cmp r0, #0xe7 + bgt _080C5406 + adds r0, r3, #2 + strh r0, [r1, #0x20] + ldr r1, [r4] + movs r3, #0x20 + ldrsh r0, [r1, r3] + cmp r0, #0xe8 + ble _080C5404 + movs r0, #0xe8 + strh r0, [r1, #0x20] +_080C5404: + movs r5, #1 +_080C5406: + cmp r5, #0 + bne _080C5484 + ldr r4, _080C5440 + ldr r0, [r4] + ldrb r3, [r0, #0xc] + cmp r3, #0 + beq _080C545A + ldrh r1, [r2, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080C545A + cmp r3, #3 + bhi _080C5444 + movs r0, #5 + bl PlaySE + ldr r0, [r4] + ldrb r1, [r0, #0xc] + adds r0, r6, #0 + bl TryCallPassAreaFunction + cmp r0, #0 + bne _080C54C6 + b _080C545A + .align 2, 0 +_080C5438: .4byte 0x03002360 +_080C543C: .4byte 0x02039990 +_080C5440: .4byte 0x0203998C +_080C5444: + cmp r3, #4 + bne _080C545A + movs r0, #3 + bl PlaySE + ldr r0, _080C547C + bl SetMainCallback2 + adds r0, r6, #0 + bl DestroyTask +_080C545A: + ldr r0, _080C5480 + ldrh r1, [r0, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080C54C6 + movs r0, #3 + bl PlaySE + ldr r0, _080C547C + bl SetMainCallback2 + adds r0, r6, #0 + bl DestroyTask + b _080C54C6 + .align 2, 0 +_080C547C: .4byte 0x080C4D6D +_080C5480: .4byte 0x03002360 +_080C5484: + ldr r0, _080C54CC + ldr r0, [r0] + ldr r1, [r0] + ldrh r0, [r1, #0x20] + subs r0, #5 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrh r1, [r1, #0x22] + adds r1, #5 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl GetCursorAreaFromCoords + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r4, _080C54D0 + ldr r0, [r4] + ldrb r0, [r0, #0xc] + cmp r0, r5 + beq _080C54C6 + adds r0, r5, #0 + bl PrintAreaDescription + ldr r1, [r4] + ldrb r0, [r1, #0xc] + strb r0, [r1, #0xd] + ldr r0, [r4] + strb r5, [r0, #0xc] + ldr r1, [r4] + ldrb r0, [r1, #0xc] + ldrb r1, [r1, #0xd] + bl sub_080C59F0 +_080C54C6: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080C54CC: .4byte 0x02039990 +_080C54D0: .4byte 0x0203998C + thumb_func_end Task_HandleFrontierPassInput + + thumb_func_start Task_DoFadeEffect +Task_DoFadeEffect: @ 0x080C54D4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r5, r0, #3 + ldr r0, _080C5500 + mov r8, r0 + adds r6, r5, r0 + ldr r7, _080C5504 + ldr r0, [r7] + ldrh r0, [r0, #4] + cmp r0, #1 + beq _080C55D0 + cmp r0, #1 + bgt _080C5508 + cmp r0, #0 + beq _080C5510 + b _080C5698 + .align 2, 0 +_080C5500: .4byte 0x03005B68 +_080C5504: .4byte 0x0203998C +_080C5508: + cmp r0, #2 + bne _080C550E + b _080C5626 +_080C550E: + b _080C5698 +_080C5510: + movs r1, #0 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _080C5548 + movs r0, #1 + movs r1, #0 + bl sub_080C5844 + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r1, #0 + strh r0, [r6, #2] + strh r0, [r6, #4] + movs r0, #0x15 + strh r0, [r6, #6] + strh r0, [r6, #8] + movs r0, #1 + rsbs r0, r0, #0 + ldr r1, _080C5544 + str r1, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + b _080C55A0 + .align 2, 0 +_080C5544: .4byte 0x00007FFF +_080C5548: + movs r1, #0xfe + lsls r1, r1, #1 + adds r0, r1, #0 + strh r0, [r6, #2] + strh r0, [r6, #4] + movs r1, #0x15 + rsbs r1, r1, #0 + adds r0, r1, #0 + strh r0, [r6, #6] + strh r0, [r6, #8] + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + bl LoadCursorAndSymbolSprites + ldr r0, _080C55C4 + bl SetVBlankCallback + movs r5, #1 + rsbs r5, r5, #0 + ldr r4, _080C55C8 + adds r0, r5, #0 + movs r1, #0x10 + adds r2, r4, #0 + bl BlendPalettes + str r4, [sp] + adds r0, r5, #0 + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade +_080C55A0: + ldr r4, _080C55CC + ldr r0, [r4] + adds r0, #0x2c + movs r1, #1 + strb r1, [r0] + movs r1, #2 + ldrsh r0, [r6, r1] + bl sub_08151600 + ldr r1, [r4] + strh r0, [r1, #0x2e] + movs r1, #4 + ldrsh r0, [r6, r1] + bl sub_08151600 + ldr r1, [r4] + strh r0, [r1, #0x30] + b _080C5698 + .align 2, 0 +_080C55C4: .4byte 0x080C4CA9 +_080C55C8: .4byte 0x00007FFF +_080C55CC: .4byte 0x02039990 +_080C55D0: + bl UpdatePaletteFade + ldrh r0, [r6, #6] + ldrh r1, [r6, #2] + adds r0, r0, r1 + strh r0, [r6, #2] + ldrh r0, [r6, #8] + ldrh r1, [r6, #4] + adds r0, r0, r1 + strh r0, [r6, #4] + movs r1, #2 + ldrsh r0, [r6, r1] + bl sub_08151600 + ldr r4, _080C5614 + ldr r1, [r4] + strh r0, [r1, #0x2e] + movs r1, #4 + ldrsh r0, [r6, r1] + bl sub_08151600 + ldr r1, [r4] + strh r0, [r1, #0x30] + movs r1, #0 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _080C5618 + movs r0, #2 + ldrsh r1, [r6, r0] + movs r0, #0xfe + lsls r0, r0, #1 + cmp r1, r0 + ble _080C56A2 + b _080C5698 + .align 2, 0 +_080C5614: .4byte 0x02039990 +_080C5618: + movs r0, #2 + ldrsh r1, [r6, r0] + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + bne _080C56A2 + b _080C5698 +_080C5626: + ldr r0, _080C5658 + ldr r0, [r0] + adds r1, r0, #0 + adds r1, #0x2c + ldrb r0, [r1] + cmp r0, #0 + beq _080C5638 + movs r0, #0 + strb r0, [r1] +_080C5638: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C56A2 + movs r1, #0 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _080C5660 + adds r0, r4, #0 + bl DestroyTask + ldr r0, _080C565C + bl SetMainCallback2 + b _080C567E + .align 2, 0 +_080C5658: .4byte 0x02039990 +_080C565C: .4byte 0x080C5231 +_080C5660: + movs r0, #0 + movs r1, #0 + bl sub_080C5844 + ldr r2, [r7] + ldrb r1, [r2, #0xe] + movs r0, #0xf + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0xe] + mov r0, r8 + subs r0, #8 + adds r0, r5, r0 + ldr r1, _080C5690 + str r1, [r0] +_080C567E: + movs r0, #2 + movs r1, #6 + movs r2, #0 + bl SetBgAttribute + ldr r0, _080C5694 + ldr r1, [r0] + movs r0, #0 + b _080C56A0 + .align 2, 0 +_080C5690: .4byte 0x080C5345 +_080C5694: .4byte 0x0203998C +_080C5698: + ldr r0, _080C56B0 + ldr r1, [r0] + ldrh r0, [r1, #4] + adds r0, #1 +_080C56A0: + strh r0, [r1, #4] +_080C56A2: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080C56B0: .4byte 0x0203998C + thumb_func_end Task_DoFadeEffect + + thumb_func_start ShowAndPrintWindows +ShowAndPrintWindows: @ 0x080C56B4 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0xc + movs r4, #0 +_080C56BE: + adds r0, r4, #0 + bl PutWindowTilemap + adds r0, r4, #0 + movs r1, #0 + bl FillWindowPixelBuffer + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #4 + bls _080C56BE + ldr r6, _080C57A4 + str r6, [sp] + movs r0, #0 + mov r8, r0 + str r0, [sp, #4] + ldr r0, _080C57A8 + str r0, [sp, #8] + movs r0, #0 + movs r1, #1 + movs r2, #8 + movs r3, #6 + bl AddTextPrinterParameterized3 + str r6, [sp] + mov r1, r8 + str r1, [sp, #4] + ldr r0, _080C57AC + str r0, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r2, #0xe + movs r3, #6 + bl AddTextPrinterParameterized3 + str r6, [sp] + mov r0, r8 + str r0, [sp, #4] + ldr r0, _080C57B0 + str r0, [sp, #8] + movs r0, #2 + movs r1, #0 + movs r2, #8 + movs r3, #3 + bl AddTextPrinterParameterized3 + ldr r4, _080C57B4 + ldr r5, _080C57B8 + ldr r0, [r5] + ldrh r1, [r0, #6] + adds r0, r4, #0 + movs r2, #0 + movs r3, #5 + bl ConvertIntToDecimalStringN + movs r2, #1 + rsbs r2, r2, #0 + movs r0, #0 + adds r1, r4, #0 + bl GetStringWidth + movs r2, #0x5c + subs r2, r2, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r6, [sp] + mov r1, r8 + str r1, [sp, #4] + str r4, [sp, #8] + movs r0, #2 + movs r1, #0 + movs r3, #0xf + bl AddTextPrinterParameterized3 + ldr r1, [r5] + ldrh r0, [r1, #8] + subs r0, #5 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrh r1, [r1, #0xa] + adds r1, #5 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl GetCursorAreaFromCoords + ldr r1, [r5] + strb r0, [r1, #0xc] + ldr r0, [r5] + mov r1, r8 + strb r1, [r0, #0xd] + ldr r0, [r5] + ldrb r0, [r0, #0xc] + bl PrintAreaDescription + movs r4, #0 +_080C577E: + adds r0, r4, #0 + movs r1, #3 + bl CopyWindowToVram + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #4 + bls _080C577E + movs r0, #0 + bl CopyBgTilemapBufferToVram + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080C57A4: .4byte 0x0854AF6C +_080C57A8: .4byte 0x085CCA93 +_080C57AC: .4byte 0x085CCA9E +_080C57B0: .4byte 0x085CCAA8 +_080C57B4: .4byte 0x02021C7C +_080C57B8: .4byte 0x0203998C + thumb_func_end ShowAndPrintWindows + + thumb_func_start PrintAreaDescription +PrintAreaDescription: @ 0x080C57BC + push {r4, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #3 + movs r1, #0 + bl FillWindowPixelBuffer + cmp r4, #3 + bne _080C5804 + ldr r0, _080C57F8 + ldr r0, [r0] + ldrb r0, [r0, #0xe] + movs r1, #1 + ands r1, r0 + cmp r1, #0 + bne _080C5804 + ldr r0, _080C57FC + str r0, [sp] + str r1, [sp, #4] + ldr r0, _080C5800 + ldr r0, [r0] + str r0, [sp, #8] + movs r0, #3 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 + b _080C5826 + .align 2, 0 +_080C57F8: .4byte 0x0203998C +_080C57FC: .4byte 0x0854AF6F +_080C5800: .4byte 0x0854B138 +_080C5804: + cmp r4, #0 + beq _080C5826 + ldr r0, _080C583C + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + ldr r1, _080C5840 + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [sp, #8] + movs r0, #3 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 +_080C5826: + movs r0, #3 + movs r1, #3 + bl CopyWindowToVram + movs r0, #0 + bl CopyBgTilemapBufferToVram + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C583C: .4byte 0x0854AF6F +_080C5840: .4byte 0x0854B138 + thumb_func_end PrintAreaDescription + + thumb_func_start sub_080C5844 +sub_080C5844: @ 0x080C5844 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + ldr r0, _080C5868 + ldr r0, [r0] + ldrb r0, [r0, #0xe] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1d + cmp r0, #1 + beq _080C586C + cmp r0, #2 + beq _080C58AE + b _080C59DA + .align 2, 0 +_080C5868: .4byte 0x0203998C +_080C586C: + cmp r2, #0 + beq _080C5894 + ldr r0, _080C5890 + ldr r0, [r0] + ldr r1, [r0, #0x20] + movs r0, #0xc + str r0, [sp] + movs r0, #7 + str r0, [sp, #4] + movs r0, #0x10 + str r0, [sp, #8] + movs r0, #2 + movs r2, #0x10 + movs r3, #3 + bl CopyToBgTilemapBufferRect_ChangePalette + b _080C58F0 + .align 2, 0 +_080C5890: .4byte 0x02039990 +_080C5894: + movs r0, #0xc + str r0, [sp] + movs r0, #7 + str r0, [sp, #4] + movs r0, #0x10 + str r0, [sp, #8] + movs r0, #2 + movs r1, #0 + movs r2, #0x10 + movs r3, #3 + bl FillBgTilemapBufferRect + b _080C58F0 +_080C58AE: + cmp r2, #0 + beq _080C58D8 + ldr r0, _080C58D4 + ldr r0, [r0] + ldr r1, [r0, #0x20] + adds r1, #0x54 + movs r0, #0xc + str r0, [sp] + movs r0, #7 + str r0, [sp, #4] + movs r0, #0x10 + str r0, [sp, #8] + movs r0, #2 + movs r2, #0x10 + movs r3, #0xa + bl CopyToBgTilemapBufferRect_ChangePalette + b _080C58F0 + .align 2, 0 +_080C58D4: .4byte 0x02039990 +_080C58D8: + movs r0, #0xc + str r0, [sp] + movs r0, #7 + str r0, [sp, #4] + movs r0, #0x10 + str r0, [sp, #8] + movs r0, #2 + movs r1, #0 + movs r2, #0x10 + movs r3, #0xa + bl FillBgTilemapBufferRect +_080C58F0: + movs r0, #2 + bl CopyBgTilemapBufferToVram + cmp r7, #0 + beq _080C5970 + movs r4, #0xfe + lsls r4, r4, #1 + adds r0, r4, #0 + bl sub_08151600 + adds r6, r0, #0 + lsls r6, r6, #0x10 + asrs r6, r6, #0x10 + adds r0, r4, #0 + bl sub_08151600 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldr r5, _080C5968 + ldr r1, _080C596C + ldr r1, [r1] + ldrb r4, [r1, #0xe] + lsls r4, r4, #0x1c + lsrs r1, r4, #0x1d + subs r1, #1 + lsls r1, r1, #2 + adds r1, r1, r5 + movs r2, #0 + ldrsh r1, [r1, r2] + lsls r1, r1, #8 + lsrs r2, r4, #0x1d + subs r2, #1 + lsls r2, r2, #2 + adds r3, r5, #2 + mov r8, r3 + add r2, r8 + movs r3, #0 + ldrsh r2, [r2, r3] + lsls r2, r2, #8 + lsrs r3, r4, #0x1d + subs r3, #1 + lsls r3, r3, #2 + adds r3, r3, r5 + movs r5, #0 + ldrsh r3, [r3, r5] + lsrs r4, r4, #0x1d + subs r4, #1 + lsls r4, r4, #2 + add r4, r8 + movs r5, #0 + ldrsh r4, [r4, r5] + str r4, [sp] + str r6, [sp, #4] + str r0, [sp, #8] + movs r0, #0 + str r0, [sp, #0xc] + movs r0, #2 + bl SetBgAffine + b _080C59DA + .align 2, 0 +_080C5968: .4byte 0x0854AF04 +_080C596C: .4byte 0x0203998C +_080C5970: + movs r4, #0x80 + lsls r4, r4, #1 + adds r0, r4, #0 + bl sub_08151600 + adds r6, r0, #0 + lsls r6, r6, #0x10 + asrs r6, r6, #0x10 + adds r0, r4, #0 + bl sub_08151600 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldr r5, _080C59E8 + ldr r1, _080C59EC + ldr r1, [r1] + ldrb r4, [r1, #0xe] + lsls r4, r4, #0x1c + lsrs r1, r4, #0x1d + subs r1, #1 + lsls r1, r1, #2 + adds r1, r1, r5 + movs r2, #0 + ldrsh r1, [r1, r2] + lsls r1, r1, #8 + lsrs r2, r4, #0x1d + subs r2, #1 + lsls r2, r2, #2 + adds r3, r5, #2 + mov r8, r3 + add r2, r8 + movs r3, #0 + ldrsh r2, [r2, r3] + lsls r2, r2, #8 + lsrs r3, r4, #0x1d + subs r3, #1 + lsls r3, r3, #2 + adds r3, r3, r5 + movs r5, #0 + ldrsh r3, [r3, r5] + lsrs r4, r4, #0x1d + subs r4, #1 + lsls r4, r4, #2 + add r4, r8 + movs r5, #0 + ldrsh r4, [r4, r5] + str r4, [sp] + str r6, [sp, #4] + str r0, [sp, #8] + str r7, [sp, #0xc] + movs r0, #2 + bl SetBgAffine +_080C59DA: + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080C59E8: .4byte 0x0854AF04 +_080C59EC: .4byte 0x0203998C + thumb_func_end sub_080C5844 + + thumb_func_start sub_080C59F0 +sub_080C59F0: @ 0x080C59F0 + push {r4, r5, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + cmp r5, #2 + beq _080C5A38 + cmp r5, #2 + bgt _080C5A0A + cmp r5, #1 + beq _080C5A14 + b _080C5AB0 +_080C5A0A: + cmp r5, #3 + beq _080C5A5C + cmp r5, #4 + beq _080C5A90 + b _080C5AB0 +_080C5A14: + ldr r0, _080C5A34 + ldr r0, [r0] + ldr r1, [r0, #0x24] + movs r0, #0xc + str r0, [sp] + movs r0, #7 + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #1 + movs r2, #0x10 + movs r3, #3 + bl CopyToBgTilemapBufferRect_ChangePalette + b _080C5ABA + .align 2, 0 +_080C5A34: .4byte 0x02039990 +_080C5A38: + ldr r0, _080C5A58 + ldr r0, [r0] + ldr r1, [r0, #0x24] + movs r0, #0xa8 + lsls r0, r0, #1 + adds r1, r1, r0 + movs r0, #0xc + str r0, [sp] + movs r0, #7 + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #1 + movs r2, #0x10 + b _080C5A7E + .align 2, 0 +_080C5A58: .4byte 0x02039990 +_080C5A5C: + ldr r0, _080C5A88 + ldr r0, [r0] + ldrb r1, [r0, #0xe] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080C5AB0 + ldr r0, _080C5A8C + ldr r0, [r0] + ldr r1, [r0, #0x28] + movs r0, #0xc + str r0, [sp] + str r5, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #1 + movs r2, #2 +_080C5A7E: + movs r3, #0xa + bl CopyToBgTilemapBufferRect_ChangePalette + b _080C5ABA + .align 2, 0 +_080C5A88: .4byte 0x0203998C +_080C5A8C: .4byte 0x02039990 +_080C5A90: + ldr r1, _080C5AAC + movs r0, #6 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #1 + movs r2, #0x15 + movs r3, #0 + bl CopyToBgTilemapBufferRect_ChangePalette + b _080C5ABA + .align 2, 0 +_080C5AAC: .4byte 0x08549DB8 +_080C5AB0: + subs r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bhi _080C5B80 +_080C5ABA: + cmp r4, #2 + beq _080C5AF8 + cmp r4, #2 + bgt _080C5AC8 + cmp r4, #1 + beq _080C5AD2 + b _080C5B70 +_080C5AC8: + cmp r4, #3 + beq _080C5B1C + cmp r4, #4 + beq _080C5B50 + b _080C5B70 +_080C5AD2: + ldr r0, _080C5AF4 + ldr r0, [r0] + ldr r1, [r0, #0x24] + adds r1, #0xa8 + movs r0, #0xc + str r0, [sp] + movs r0, #7 + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #1 + movs r2, #0x10 + movs r3, #3 + bl CopyToBgTilemapBufferRect_ChangePalette + b _080C5B7A + .align 2, 0 +_080C5AF4: .4byte 0x02039990 +_080C5AF8: + ldr r0, _080C5B18 + ldr r0, [r0] + ldr r1, [r0, #0x24] + movs r0, #0xfc + lsls r0, r0, #1 + adds r1, r1, r0 + movs r0, #0xc + str r0, [sp] + movs r0, #7 + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #1 + movs r2, #0x10 + b _080C5B40 + .align 2, 0 +_080C5B18: .4byte 0x02039990 +_080C5B1C: + ldr r0, _080C5B48 + ldr r0, [r0] + ldrb r1, [r0, #0xe] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080C5B80 + ldr r0, _080C5B4C + ldr r0, [r0] + ldr r1, [r0, #0x28] + adds r1, #0x48 + movs r0, #0xc + str r0, [sp] + str r4, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #1 + movs r2, #2 +_080C5B40: + movs r3, #0xa + bl CopyToBgTilemapBufferRect_ChangePalette + b _080C5B7A + .align 2, 0 +_080C5B48: .4byte 0x0203998C +_080C5B4C: .4byte 0x02039990 +_080C5B50: + ldr r1, _080C5B6C + movs r0, #6 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #1 + movs r2, #0x15 + movs r3, #0 + bl CopyToBgTilemapBufferRect_ChangePalette + b _080C5B7A + .align 2, 0 +_080C5B6C: .4byte 0x08549DD0 +_080C5B70: + subs r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bhi _080C5B80 +_080C5B7A: + movs r0, #1 + bl CopyBgTilemapBufferToVram +_080C5B80: + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_080C59F0 + + thumb_func_start sub_080C5B88 +sub_080C5B88: @ 0x080C5B88 + push {r4, lr} + ldr r1, _080C5BC0 + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + ldr r4, _080C5BC4 + ldr r1, [r4] + ldrb r0, [r1, #0xc] + ldrb r1, [r1, #0xd] + bl sub_080C59F0 + ldr r0, [r4] + ldrb r1, [r0, #0xe] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1d + movs r0, #1 + bl sub_080C5844 + bl ShowAndPrintWindows + movs r0, #1 + bl CopyBgTilemapBufferToVram + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C5BC0: .4byte 0x08549610 +_080C5BC4: .4byte 0x0203998C + thumb_func_end sub_080C5B88 + + thumb_func_start LoadCursorAndSymbolSprites +LoadCursorAndSymbolSprites: @ 0x080C5BC8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x18 + movs r5, #0 + bl FreeAllSpritePalettes + bl ResetAffineAnimData + ldr r0, _080C5CC4 + bl LoadSpritePalettes + ldr r4, _080C5CC8 + adds r0, r4, #0 + bl LoadCompressedSpriteSheet + adds r4, #0x10 + adds r0, r4, #0 + bl LoadCompressedSpriteSheet + ldr r0, _080C5CCC + ldr r1, _080C5CD0 + ldr r2, [r1] + movs r3, #8 + ldrsh r1, [r2, r3] + movs r6, #0xa + ldrsh r2, [r2, r6] + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _080C5CD4 + ldr r2, [r3] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080C5CD8 + adds r1, r1, r0 + str r1, [r2] + ldrb r2, [r1, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #5] + mov r8, sp + mov sb, r3 +_080C5C28: + ldr r0, _080C5CD0 + ldr r0, [r0] + adds r0, #0xf + adds r2, r0, r5 + ldrb r0, [r2] + adds r4, r5, #1 + cmp r0, #0 + beq _080C5CAE + mov r1, sp + ldr r0, _080C5CDC + ldm r0!, {r3, r6, r7} + stm r1!, {r3, r6, r7} + ldm r0!, {r3, r6, r7} + stm r1!, {r3, r6, r7} + mov r7, r8 + ldrh r0, [r7, #2] + ldr r1, _080C5CE0 + adds r0, r0, r1 + ldrb r2, [r2] + adds r0, r0, r2 + strh r0, [r7, #2] + ldr r1, _080C5CE4 + adds r0, r5, #6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #4] + adds r1, #8 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldrh r2, [r0] + adds r2, #6 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + lsls r3, r4, #0x18 + lsrs r3, r3, #0x18 + mov r0, sp + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r3, sb + ldr r2, [r3] + lsls r3, r5, #2 + adds r2, #4 + adds r2, r2, r3 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080C5CD8 + adds r1, r1, r0 + str r1, [r2] + ldrb r2, [r1, #5] + movs r6, #0xd + rsbs r6, r6, #0 + adds r0, r6, #0 + ands r2, r0 + movs r0, #8 + orrs r2, r0 + strb r2, [r1, #5] + mov r7, sb + ldr r0, [r7] + adds r0, #4 + adds r0, r0, r3 + ldr r0, [r0] + adds r1, r5, #0 + bl StartSpriteAnim +_080C5CAE: + lsls r0, r4, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #6 + bls _080C5C28 + add sp, #0x18 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080C5CC4: .4byte 0x0854B008 +_080C5CC8: .4byte 0x0854AFE0 +_080C5CCC: .4byte 0x0854B0D8 +_080C5CD0: .4byte 0x0203998C +_080C5CD4: .4byte 0x02039990 +_080C5CD8: .4byte 0x020205AC +_080C5CDC: .4byte 0x0854B108 +_080C5CE0: .4byte 0x0000FFFF +_080C5CE4: .4byte 0x0854AF78 + thumb_func_end LoadCursorAndSymbolSprites + + thumb_func_start FreeCursorAndSymbolSprites +FreeCursorAndSymbolSprites: @ 0x080C5CE8 + push {r4, r5, r6, lr} + movs r5, #0 + ldr r4, _080C5D38 + ldr r0, [r4] + ldr r0, [r0] + bl DestroySprite + ldr r0, [r4] + str r5, [r0] + adds r6, r4, #0 +_080C5CFC: + ldr r0, [r6] + lsls r4, r5, #2 + adds r0, #4 + adds r0, r0, r4 + ldr r0, [r0] + cmp r0, #0 + beq _080C5D18 + bl DestroySprite + ldr r0, [r6] + adds r0, #4 + adds r0, r0, r4 + movs r1, #0 + str r1, [r0] +_080C5D18: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #6 + bls _080C5CFC + bl FreeAllSpritePalettes + movs r0, #2 + bl FreeSpriteTilesByTag + movs r0, #0 + bl FreeSpriteTilesByTag + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080C5D38: .4byte 0x02039990 + thumb_func_end FreeCursorAndSymbolSprites + + thumb_func_start SpriteCb_Dummy +SpriteCb_Dummy: @ 0x080C5D3C + bx lr + .align 2, 0 + thumb_func_end SpriteCb_Dummy + + thumb_func_start ShowFrontierMap +ShowFrontierMap: @ 0x080C5D40 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _080C5D74 + ldr r0, [r5] + cmp r0, #0 + beq _080C5D52 + adds r0, r4, #0 + bl SetMainCallback2 +_080C5D52: + ldr r0, _080C5D78 + bl AllocZeroed + str r0, [r5] + str r4, [r0] + bl ResetTasks + ldr r0, _080C5D7C + movs r1, #0 + bl CreateTask + ldr r0, _080C5D80 + bl SetMainCallback2 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080C5D74: .4byte 0x02039994 +_080C5D78: .4byte 0x00003014 +_080C5D7C: .4byte 0x080C60A9 +_080C5D80: .4byte 0x080C4D35 + thumb_func_end ShowFrontierMap + + thumb_func_start FreeFrontierMap +FreeFrontierMap: @ 0x080C5D84 + push {r4, lr} + bl ResetTasks + ldr r4, _080C5DB0 + ldr r0, [r4] + ldr r0, [r0] + bl SetMainCallback2 + ldr r0, [r4] + ldr r2, _080C5DB4 + movs r1, #0 + bl memset + ldr r0, [r4] + bl Free + movs r0, #0 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C5DB0: .4byte 0x02039994 +_080C5DB4: .4byte 0x00003014 + thumb_func_end FreeFrontierMap + + thumb_func_start InitFrontierMap +InitFrontierMap: @ 0x080C5DB8 + push {r4, r5, lr} + sub sp, #8 + ldr r0, _080C5DD4 + ldr r0, [r0] + ldrh r0, [r0, #4] + cmp r0, #7 + bls _080C5DC8 + b _080C5F80 +_080C5DC8: + lsls r0, r0, #2 + ldr r1, _080C5DD8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C5DD4: .4byte 0x0203998C +_080C5DD8: .4byte 0x080C5DDC +_080C5DDC: @ jump table + .4byte _080C5DFC @ case 0 + .4byte _080C5E0C @ case 1 + .4byte _080C5E12 @ case 2 + .4byte _080C5E24 @ case 3 + .4byte _080C5EAC @ case 4 + .4byte _080C5ED4 @ case 5 + .4byte _080C5F14 @ case 6 + .4byte _080C5F64 @ case 7 +_080C5DFC: + movs r0, #0 + bl SetVBlankCallback + bl ScanlineEffect_Stop + bl SetVBlankHBlankCallbacksToNull + b _080C5F80 +_080C5E0C: + bl ResetGpuRegsAndBgs + b _080C5F80 +_080C5E12: + bl ResetSpriteData + bl FreeAllSpritePalettes + bl ResetPaletteFade + bl reset_temp_tile_data_buffers + b _080C5F80 +_080C5E24: + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _080C5E9C + movs r0, #0 + movs r2, #3 + bl InitBgsFromTemplates + ldr r4, _080C5EA0 + ldr r1, [r4] + adds r1, #0x12 + movs r0, #0 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, _080C5EA4 + adds r1, r1, r0 + movs r0, #1 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, _080C5EA8 + adds r1, r1, r0 + movs r0, #2 + bl SetBgTilemapBuffer + movs r5, #0x1e + str r5, [sp] + movs r4, #0x14 + str r4, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + str r5, [sp] + str r4, [sp, #4] + movs r0, #1 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + str r5, [sp] + str r4, [sp, #4] + movs r0, #2 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, #0 + bl CopyBgTilemapBufferToVram + movs r0, #1 + bl CopyBgTilemapBufferToVram + b _080C5F04 + .align 2, 0 +_080C5E9C: .4byte 0x0854AF18 +_080C5EA0: .4byte 0x02039994 +_080C5EA4: .4byte 0x00001012 +_080C5EA8: .4byte 0x00002012 +_080C5EAC: + ldr r0, _080C5ECC + bl InitWindows + bl DeactivateAllTextPrinters + bl PrintOnFrontierMap + ldr r1, _080C5ED0 + movs r0, #0 + str r0, [sp] + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + b _080C5F80 + .align 2, 0 +_080C5ECC: .4byte 0x0854AF4C +_080C5ED0: .4byte 0x08548168 +_080C5ED4: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C5F8A + ldr r0, _080C5F0C + movs r2, #0xd0 + lsls r2, r2, #1 + movs r1, #0 + bl LoadPalette + movs r0, #0 + bl stdpal_get + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + ldr r1, _080C5F10 + movs r0, #2 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer +_080C5F04: + movs r0, #2 + bl CopyBgTilemapBufferToVram + b _080C5F80 + .align 2, 0 +_080C5F0C: .4byte 0x085467E4 +_080C5F10: .4byte 0x085498F8 +_080C5F14: + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + bl InitFrontierMapSprites + ldr r0, _080C5F5C + bl SetVBlankCallback + movs r5, #1 + rsbs r5, r5, #0 + ldr r4, _080C5F60 + adds r0, r5, #0 + movs r1, #0x10 + adds r2, r4, #0 + bl BlendPalettes + str r4, [sp] + adds r0, r5, #0 + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + b _080C5F80 + .align 2, 0 +_080C5F5C: .4byte 0x080C4CA9 +_080C5F60: .4byte 0x00007FFF +_080C5F64: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080C5F8A + ldr r0, _080C5F7C + ldr r0, [r0] + strh r1, [r0, #4] + movs r0, #1 + b _080C5F8C + .align 2, 0 +_080C5F7C: .4byte 0x0203998C +_080C5F80: + ldr r0, _080C5F94 + ldr r1, [r0] + ldrh r0, [r1, #4] + adds r0, #1 + strh r0, [r1, #4] +_080C5F8A: + movs r0, #0 +_080C5F8C: + add sp, #8 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080C5F94: .4byte 0x0203998C + thumb_func_end InitFrontierMap + + thumb_func_start ExitFrontierMap +ExitFrontierMap: @ 0x080C5F98 + push {r4, lr} + sub sp, #4 + ldr r0, _080C5FB0 + ldr r0, [r0] + ldrh r0, [r0, #4] + cmp r0, #5 + bhi _080C6090 + lsls r0, r0, #2 + ldr r1, _080C5FB4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C5FB0: .4byte 0x0203998C +_080C5FB4: .4byte 0x080C5FB8 +_080C5FB8: @ jump table + .4byte _080C5FD0 @ case 0 + .4byte _080C5FE8 @ case 1 + .4byte _080C600E @ case 2 + .4byte _080C601E @ case 3 + .4byte _080C6060 @ case 4 + .4byte _080C606E @ case 5 +_080C5FD0: + movs r0, #1 + rsbs r0, r0, #0 + ldr r1, _080C5FE4 + str r1, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + b _080C6090 + .align 2, 0 +_080C5FE4: .4byte 0x00007FFF +_080C5FE8: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C609A + movs r0, #0 + movs r1, #0 + bl SetGpuReg + movs r0, #0 + bl HideBg + movs r0, #1 + bl HideBg + movs r0, #2 + bl HideBg + b _080C6090 +_080C600E: + movs r0, #0 + bl SetVBlankCallback + bl ScanlineEffect_Stop + bl SetVBlankHBlankCallbacksToNull + b _080C6090 +_080C601E: + ldr r4, _080C605C + ldr r0, [r4] + ldr r0, [r0, #4] + cmp r0, #0 + beq _080C6032 + bl DestroySprite + movs r0, #0 + bl FreeSpriteTilesByTag +_080C6032: + ldr r0, [r4] + ldr r0, [r0, #0xc] + cmp r0, #0 + beq _080C6044 + bl DestroySprite + movs r0, #1 + bl FreeSpriteTilesByTag +_080C6044: + ldr r0, [r4] + ldr r0, [r0, #8] + cmp r0, #0 + beq _080C6056 + bl DestroySprite + movs r0, #4 + bl FreeSpriteTilesByTag +_080C6056: + bl FreeAllWindowBuffers + b _080C6090 + .align 2, 0 +_080C605C: .4byte 0x02039994 +_080C6060: + bl ResetGpuRegsAndBgs + bl ResetSpriteData + bl FreeAllSpritePalettes + b _080C6090 +_080C606E: + movs r0, #0 + bl UnsetBgTilemapBuffer + movs r0, #1 + bl UnsetBgTilemapBuffer + movs r0, #2 + bl UnsetBgTilemapBuffer + ldr r0, _080C608C + ldr r1, [r0] + movs r0, #0 + strh r0, [r1, #4] + movs r0, #1 + b _080C609C + .align 2, 0 +_080C608C: .4byte 0x0203998C +_080C6090: + ldr r0, _080C60A4 + ldr r1, [r0] + ldrh r0, [r1, #4] + adds r0, #1 + strh r0, [r1, #4] +_080C609A: + movs r0, #0 +_080C609C: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080C60A4: .4byte 0x0203998C + thumb_func_end ExitFrontierMap + + thumb_func_start Task_HandleFrontierMap +Task_HandleFrontierMap: @ 0x080C60A8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _080C60CC + adds r4, r0, r1 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #5 + bls _080C60C2 + b _080C61C6 +_080C60C2: + lsls r0, r0, #2 + ldr r1, _080C60D0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C60CC: .4byte 0x03005B68 +_080C60D0: .4byte 0x080C60D4 +_080C60D4: @ jump table + .4byte _080C60EC @ case 0 + .4byte _080C60F2 @ case 1 + .4byte _080C6158 @ case 2 + .4byte _080C6180 @ case 3 + .4byte _080C61B0 @ case 4 + .4byte _080C61BA @ case 5 +_080C60EC: + bl InitFrontierMap + b _080C61B4 +_080C60F2: + ldr r0, _080C610C + ldrh r1, [r0, #0x2e] + movs r2, #2 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _080C6110 + movs r0, #3 + bl PlaySE + movs r0, #4 + b _080C61CA + .align 2, 0 +_080C610C: .4byte 0x03002360 +_080C6110: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080C6134 + ldr r0, _080C612C + ldr r0, [r0] + ldrb r0, [r0, #0x10] + cmp r0, #5 + bls _080C6130 + movs r0, #0 + bl HandleFrontierMapCursorMove + b _080C61CC + .align 2, 0 +_080C612C: .4byte 0x02039994 +_080C6130: + strh r2, [r4] + b _080C61CC +_080C6134: + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080C61CC + ldr r0, _080C6150 + ldr r0, [r0] + ldrb r0, [r0, #0x10] + cmp r0, #0 + bne _080C6154 + movs r0, #1 + bl HandleFrontierMapCursorMove + b _080C61CC + .align 2, 0 +_080C6150: .4byte 0x02039994 +_080C6154: + movs r0, #3 + b _080C61CA +_080C6158: + movs r1, #2 + ldrsh r0, [r4, r1] + cmp r0, #3 + ble _080C616E + movs r0, #0 + bl HandleFrontierMapCursorMove + movs r0, #0 + strh r0, [r4, #2] + movs r0, #1 + b _080C61CA +_080C616E: + ldr r0, _080C617C + ldr r0, [r0] + ldr r1, [r0, #4] + ldrh r0, [r1, #0x22] + adds r0, #4 + b _080C61A0 + .align 2, 0 +_080C617C: .4byte 0x02039994 +_080C6180: + movs r1, #2 + ldrsh r0, [r4, r1] + cmp r0, #3 + ble _080C6196 + movs r0, #1 + bl HandleFrontierMapCursorMove + movs r0, #0 + strh r0, [r4, #2] + movs r0, #1 + b _080C61CA +_080C6196: + ldr r0, _080C61AC + ldr r0, [r0] + ldr r1, [r0, #4] + ldrh r0, [r1, #0x22] + subs r0, #4 +_080C61A0: + strh r0, [r1, #0x22] + ldrh r0, [r4, #2] + adds r0, #1 + strh r0, [r4, #2] + b _080C61CC + .align 2, 0 +_080C61AC: .4byte 0x02039994 +_080C61B0: + bl ExitFrontierMap +_080C61B4: + cmp r0, #0 + bne _080C61C6 + b _080C61CC +_080C61BA: + adds r0, r2, #0 + bl DestroyTask + bl FreeFrontierMap + b _080C61CC +_080C61C6: + ldrh r0, [r4] + adds r0, #1 +_080C61CA: + strh r0, [r4] +_080C61CC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Task_HandleFrontierMap + + thumb_func_start MapNumToFrontierFacilityId +MapNumToFrontierFacilityId: @ 0x080C61D4 + push {lr} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r2, _080C61F4 + adds r0, r0, r2 + lsrs r0, r0, #0x10 + cmp r0, #3 + bls _080C61F0 + adds r0, r1, #0 + subs r0, #0xf + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #2 + bhi _080C61F8 +_080C61F0: + movs r0, #1 + b _080C625A + .align 2, 0 +_080C61F4: .4byte 0xFFFB0000 +_080C61F8: + adds r0, r1, #0 + subs r0, #0x12 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #3 + bhi _080C6208 + movs r0, #2 + b _080C625A +_080C6208: + adds r0, r1, #0 + subs r0, #0x16 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #2 + bhi _080C6218 + movs r0, #3 + b _080C625A +_080C6218: + adds r0, r1, #0 + subs r0, #0x1c + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #2 + bhi _080C6228 + movs r0, #4 + b _080C625A +_080C6228: + adds r0, r1, #0 + subs r0, #0x1f + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #2 + bhi _080C6238 + movs r0, #5 + b _080C625A +_080C6238: + adds r0, r1, #0 + subs r0, #0x22 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #5 + bhi _080C6248 + movs r0, #6 + b _080C625A +_080C6248: + adds r0, r1, #0 + subs r0, #0x19 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #2 + bls _080C6258 + movs r0, #0 + b _080C625A +_080C6258: + movs r0, #7 +_080C625A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MapNumToFrontierFacilityId + + thumb_func_start InitFrontierMapSprites +InitFrontierMapSprites: @ 0x080C6260 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x18 + movs r7, #0 + bl FreeAllSpritePalettes + ldr r0, _080C6368 + bl LoadSpritePalettes + ldr r6, _080C636C + adds r0, r6, #0 + bl LoadCompressedSpriteSheet + ldr r0, _080C6370 + mov r8, r0 + ldr r4, _080C6374 + ldr r0, [r4] + ldrb r2, [r0, #0x10] + lsls r2, r2, #4 + adds r2, #8 + mov r0, r8 + movs r1, #0x9b + movs r3, #2 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r0, [r4] + lsls r1, r3, #4 + adds r1, r1, r3 + lsls r1, r1, #2 + ldr r2, _080C6378 + mov sb, r2 + add r1, sb + str r1, [r0, #4] + ldrb r2, [r1, #5] + movs r5, #0xd + rsbs r5, r5, #0 + adds r0, r5, #0 + ands r0, r2 + strb r0, [r1, #5] + ldr r0, [r4] + ldr r1, [r0, #4] + adds r1, #0x3f + ldrb r0, [r1] + movs r2, #1 + orrs r0, r2 + strb r0, [r1] + ldr r0, [r4] + ldr r0, [r0, #4] + movs r1, #1 + bl StartSpriteAnim + adds r6, #8 + adds r0, r6, #0 + bl LoadCompressedSpriteSheet + movs r3, #0x18 + add r8, r3 + ldr r6, _080C637C + ldr r0, [r4] + ldrb r0, [r0, #0x10] + lsls r0, r0, #4 + adds r0, r0, r6 + movs r2, #8 + ldrsh r1, [r0, r2] + movs r3, #0xa + ldrsh r2, [r0, r3] + mov r0, r8 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r1, [r4] + lsls r0, r3, #4 + adds r0, r0, r3 + lsls r0, r0, #2 + add r0, sb + str r0, [r1, #0xc] + ldrb r1, [r0, #5] + ands r5, r1 + strb r5, [r0, #5] + ldr r1, [r4] + ldr r0, [r1, #0xc] + ldrb r1, [r1, #0x10] + lsls r1, r1, #4 + adds r1, r1, r6 + ldrb r1, [r1, #0xc] + bl StartSpriteAnim + bl GetCurrentRegionMapSectionId + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x3a + beq _080C632C + cmp r5, #0xca + beq _080C632C + b _080C6466 +_080C632C: + ldr r4, _080C6380 + ldr r2, [r4] + movs r0, #5 + ldrsb r0, [r2, r0] + cmp r0, #4 + beq _080C633E + cmp r0, #0xe + bne _080C6384 + movs r7, #0x37 +_080C633E: + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + ldrh r6, [r2] + adds r0, r0, r6 + ldrh r4, [r2, #2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _080C6352 + adds r0, #7 +_080C6352: + lsls r0, r0, #0xd + lsrs r7, r0, #0x10 + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _080C6360 + adds r0, #7 +_080C6360: + lsls r0, r0, #0xd + lsrs r4, r0, #0x10 + movs r5, #0 + b _080C63DE + .align 2, 0 +_080C6368: .4byte 0x0854B008 +_080C636C: .4byte 0x0854AFE0 +_080C6370: .4byte 0x0854B0D8 +_080C6374: .4byte 0x02039994 +_080C6378: .4byte 0x020205AC +_080C637C: .4byte 0x0854B174 +_080C6380: .4byte 0x03005AEC +_080C6384: + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl MapNumToFrontierFacilityId + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + beq _080C63A0 + subs r0, r5, #1 + lsls r0, r0, #4 + adds r0, r0, r6 + ldrh r7, [r0, #8] + ldrh r4, [r0, #0xa] + b _080C63DE +_080C63A0: + ldr r1, [r4] + adds r0, r1, #0 + adds r0, #0x25 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0xe + bne _080C63BA + ldrh r0, [r1, #0x28] + adds r0, #0x37 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + b _080C63BC +_080C63BA: + ldrh r7, [r1, #0x28] +_080C63BC: + ldr r0, _080C6408 + ldr r0, [r0] + ldrh r4, [r0, #0x2a] + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _080C63CC + adds r0, #7 +_080C63CC: + lsls r0, r0, #0xd + lsrs r7, r0, #0x10 + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _080C63DA + adds r0, #7 +_080C63DA: + lsls r0, r0, #0xd + lsrs r4, r0, #0x10 +_080C63DE: + ldr r0, _080C640C + bl LoadCompressedSpriteSheet + mov r1, sp + ldr r0, _080C6410 + ldm r0!, {r2, r3, r6} + stm r1!, {r2, r3, r6} + ldm r0!, {r2, r3, r6} + stm r1!, {r2, r3, r6} + mov r1, sp + ldr r0, _080C6414 + ldr r0, [r0] + ldrb r0, [r0, #8] + adds r0, #4 + strh r0, [r1, #2] + cmp r5, #0 + beq _080C6418 + lsls r1, r7, #0x10 + asrs r1, r1, #0x10 + lsls r2, r4, #0x10 + b _080C642A + .align 2, 0 +_080C6408: .4byte 0x03005AEC +_080C640C: .4byte 0x0854AFF8 +_080C6410: .4byte 0x0854B120 +_080C6414: .4byte 0x03005AF0 +_080C6418: + lsls r1, r7, #0x13 + lsls r2, r4, #0x13 + movs r0, #0xa0 + lsls r0, r0, #0xd + adds r1, r1, r0 + asrs r1, r1, #0x10 + movs r3, #0x90 + lsls r3, r3, #0xe + adds r2, r2, r3 +_080C642A: + asrs r2, r2, #0x10 + mov r0, sp + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r4, _080C6474 + ldr r2, [r4] + lsls r1, r3, #4 + adds r1, r1, r3 + lsls r1, r1, #2 + ldr r0, _080C6478 + adds r1, r1, r0 + str r1, [r2, #8] + ldrb r2, [r1, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #5] + ldr r0, _080C647C + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #0 + beq _080C6466 + ldr r0, [r4] + ldr r0, [r0, #8] + movs r1, #1 + bl StartSpriteAnim +_080C6466: + add sp, #0x18 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080C6474: .4byte 0x02039994 +_080C6478: .4byte 0x020205AC +_080C647C: .4byte 0x03005AF0 + thumb_func_end InitFrontierMapSprites + + thumb_func_start PrintOnFrontierMap +PrintOnFrontierMap: @ 0x080C6480 + push {r4, r5, r6, lr} + sub sp, #0xc + movs r4, #0 +_080C6486: + adds r0, r4, #0 + bl PutWindowTilemap + adds r0, r4, #0 + movs r1, #0 + bl FillWindowPixelBuffer + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #2 + bls _080C6486 + movs r4, #0 + movs r6, #0 + ldr r5, _080C64D0 +_080C64A4: + ldr r0, _080C64D4 + ldr r0, [r0] + ldrb r0, [r0, #0x10] + cmp r4, r0 + bne _080C64DC + lsls r1, r4, #4 + adds r3, r1, #2 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r0, _080C64D8 + str r0, [sp] + str r6, [sp, #4] + adds r1, r1, r5 + ldr r0, [r1] + str r0, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r2, #4 + bl AddTextPrinterParameterized3 + b _080C64FA + .align 2, 0 +_080C64D0: .4byte 0x0854B174 +_080C64D4: .4byte 0x02039994 +_080C64D8: .4byte 0x0854AF72 +_080C64DC: + lsls r1, r4, #4 + adds r3, r1, #2 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r0, _080C654C + str r0, [sp] + str r6, [sp, #4] + adds r1, r1, r5 + ldr r0, [r1] + str r0, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r2, #4 + bl AddTextPrinterParameterized3 +_080C64FA: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #6 + bls _080C64A4 + ldr r0, _080C6550 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + ldr r1, _080C6554 + ldr r0, _080C6558 + ldr r0, [r0] + ldrb r0, [r0, #0x10] + lsls r0, r0, #4 + adds r1, #4 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [sp, #8] + movs r0, #2 + movs r1, #1 + movs r2, #4 + movs r3, #1 + bl AddTextPrinterParameterized3 + movs r4, #0 +_080C652C: + adds r0, r4, #0 + movs r1, #3 + bl CopyWindowToVram + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #2 + bls _080C652C + movs r0, #0 + bl CopyBgTilemapBufferToVram + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080C654C: .4byte 0x0854AF6F +_080C6550: .4byte 0x0854AF6C +_080C6554: .4byte 0x0854B174 +_080C6558: .4byte 0x02039994 + thumb_func_end PrintOnFrontierMap + + thumb_func_start HandleFrontierMapCursorMove +HandleFrontierMapCursorMove: @ 0x080C655C + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0xc + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C6578 + ldr r0, _080C6574 + ldr r4, [r0] + ldrb r5, [r4, #0x10] + adds r0, r5, #6 + b _080C6580 + .align 2, 0 +_080C6574: .4byte 0x02039994 +_080C6578: + ldr r0, _080C6660 + ldr r4, [r0] + ldrb r5, [r4, #0x10] + adds r0, r5, #1 +_080C6580: + movs r1, #7 + bl __modsi3 + strb r0, [r4, #0x10] + lsls r0, r5, #4 + adds r3, r0, #2 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r6, _080C6664 + str r6, [sp] + movs r1, #0 + mov r8, r1 + str r1, [sp, #4] + ldr r4, _080C6668 + adds r0, r0, r4 + ldr r0, [r0] + str r0, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r2, #4 + bl AddTextPrinterParameterized3 + ldr r5, _080C6660 + ldr r1, [r5] + ldrb r3, [r1, #0x10] + lsls r3, r3, #4 + adds r3, #2 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r6, #3 + str r0, [sp] + mov r0, r8 + str r0, [sp, #4] + ldrb r0, [r1, #0x10] + lsls r0, r0, #4 + adds r0, r0, r4 + ldr r0, [r0] + str r0, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r2, #4 + bl AddTextPrinterParameterized3 + ldr r1, [r5] + ldr r2, [r1, #4] + ldrb r0, [r1, #0x10] + lsls r0, r0, #4 + adds r0, #8 + strh r0, [r2, #0x22] + ldr r0, [r1, #0xc] + ldrb r1, [r1, #0x10] + lsls r1, r1, #4 + adds r1, r1, r4 + ldrb r1, [r1, #0xc] + bl StartSpriteAnim + ldr r1, [r5] + ldr r2, [r1, #0xc] + ldrb r0, [r1, #0x10] + lsls r0, r0, #4 + adds r0, r0, r4 + ldrh r0, [r0, #8] + strh r0, [r2, #0x20] + ldr r2, [r1, #0xc] + ldrb r0, [r1, #0x10] + lsls r0, r0, #4 + adds r0, r0, r4 + ldrh r0, [r0, #0xa] + strh r0, [r2, #0x22] + movs r0, #2 + movs r1, #0 + bl FillWindowPixelBuffer + subs r6, #3 + str r6, [sp] + mov r1, r8 + str r1, [sp, #4] + ldr r0, [r5] + ldrb r0, [r0, #0x10] + lsls r0, r0, #4 + adds r4, #4 + adds r0, r0, r4 + ldr r0, [r0] + str r0, [sp, #8] + movs r0, #2 + movs r1, #1 + movs r2, #4 + movs r3, #1 + bl AddTextPrinterParameterized3 + movs r4, #0 +_080C6636: + adds r0, r4, #0 + movs r1, #3 + bl CopyWindowToVram + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #2 + bls _080C6636 + movs r0, #0 + bl CopyBgTilemapBufferToVram + movs r0, #0x6c + bl PlaySE + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080C6660: .4byte 0x02039994 +_080C6664: .4byte 0x0854AF6F +_080C6668: .4byte 0x0854B174 + thumb_func_end HandleFrontierMapCursorMove + + thumb_func_start sub_080C666C +sub_080C666C: @ 0x080C666C + push {r4, r5, r6, lr} + sub sp, #0xc + adds r5, r0, #0 + adds r6, r1, #0 + ldr r0, [sp, #0x1c] + lsls r2, r2, #0x18 + lsls r3, r3, #0x10 + lsrs r4, r3, #0x10 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r2, #0 + bne _080C6686 + movs r3, #0 +_080C6686: + movs r0, #0xf + movs r1, #0xe + str r0, [sp] + str r1, [sp, #4] + ldr r0, [sp, #0x20] + str r0, [sp, #8] + adds r0, r5, #0 + adds r1, r6, #0 + adds r2, r4, #0 + bl sub_080C6738 + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_080C666C + + thumb_func_start sub_080C66A4 +sub_080C66A4: @ 0x080C66A4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x10 + adds r4, r0, #0 + adds r5, r1, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + lsls r3, r3, #0x18 + lsrs r7, r3, #0x18 + movs r6, #0 +_080C66BC: + movs r3, #0 + ldrb r0, [r4] + adds r1, r0, #0 + adds r2, r0, #0 + cmp r1, #0xff + beq _080C672A +_080C66C8: + mov r0, sp + adds r0, r0, r3 + adds r0, #8 + strb r2, [r0] + adds r4, #1 + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #3 + bhi _080C6704 + ldrb r0, [r4] + adds r1, r0, #0 + adds r2, r0, #0 + cmp r1, #0xff + bne _080C66C8 + cmp r3, #0 + beq _080C672A + movs r6, #1 + cmp r3, #3 + bhi _080C6704 + movs r2, #0 +_080C66F2: + adds r0, r3, #0 + adds r1, r0, #1 + lsls r1, r1, #0x10 + lsrs r3, r1, #0x10 + add r0, sp + adds r0, #8 + strb r2, [r0] + cmp r3, #3 + bls _080C66F2 +_080C6704: + mov r1, sp + adds r1, r1, r3 + adds r1, #8 + movs r0, #0xff + strb r0, [r1] + str r7, [sp] + ldr r0, [sp, #0x28] + str r0, [sp, #4] + add r0, sp, #8 + adds r1, r5, #0 + mov r2, r8 + movs r3, #0x80 + bl sub_080C666C + movs r0, #0x80 + lsls r0, r0, #1 + adds r5, r5, r0 + cmp r6, #0 + beq _080C66BC +_080C672A: + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080C66A4 + + thumb_func_start sub_080C6738 +sub_080C6738: @ 0x080C6738 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x2c + str r0, [sp, #0x20] + str r1, [sp, #0x24] + adds r6, r3, #0 + ldr r0, [sp, #0x4c] + mov sb, r0 + ldr r1, [sp, #0x50] + mov sl, r1 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + str r2, [sp, #0x28] + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov r2, sb + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sb, r2 + mov r0, sl + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + movs r0, #0 + movs r1, #0 + str r0, [sp, #0x18] + str r1, [sp, #0x1c] + ldr r0, [sp, #0x20] + bl StringLength_Multibyte + lsls r0, r0, #0x18 + ldr r2, _080C6824 + ldr r1, [sp, #0x18] + ands r1, r2 + orrs r1, r0 + str r1, [sp, #0x18] + ldr r1, _080C6828 + add r2, sp, #0x18 + mov r8, r2 + ldr r0, [r2, #4] + ands r0, r1 + movs r1, #2 + orrs r0, r1 + str r0, [r2, #4] + ldr r5, [sp, #0x18] + lsrs r5, r5, #0x18 + lsls r5, r5, #5 + mov r0, r8 + bl AddWindow + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r1, r6, #4 + orrs r1, r6 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl FillWindowPixelBuffer + adds r0, r4, #0 + movs r1, #7 + bl GetWindowAttribute + adds r7, r0, #0 + mov r0, r8 + ldrb r0, [r0, #3] + lsls r0, r0, #5 + mov r8, r0 + add r8, r7 + add r0, sp, #0x14 + movs r1, #0 + strb r6, [r0] + mov r2, sb + strb r2, [r0, #1] + mov r2, sl + strb r2, [r0, #2] + str r1, [sp] + str r1, [sp, #4] + str r0, [sp, #8] + movs r0, #1 + rsbs r0, r0, #0 + str r0, [sp, #0xc] + ldr r0, [sp, #0x20] + str r0, [sp, #0x10] + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized4 + lsrs r5, r5, #1 + adds r0, r7, #0 + ldr r1, [sp, #0x24] + adds r2, r5, #0 + bl CpuSet + ldr r2, [sp, #0x24] + ldr r0, [sp, #0x28] + adds r1, r2, r0 + mov r0, r8 + adds r2, r5, #0 + bl CpuSet + adds r0, r4, #0 + bl RemoveWindow + add sp, #0x2c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080C6824: .4byte 0x00FFFFFF +_080C6828: .4byte 0xFFFFFF00 + thumb_func_end sub_080C6738 + diff --git a/asm/frontier_util.s b/asm/frontier_util.s new file mode 100644 index 0000000..8eb1ccb --- /dev/null +++ b/asm/frontier_util.s @@ -0,0 +1,6956 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start CallFrontierUtilFunc +CallFrontierUtilFunc: @ 0x081A1628 + push {lr} + ldr r1, _081A1640 + ldr r0, _081A1644 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + thumb_func_end CallFrontierUtilFunc + + thumb_func_start sub_081A163C +sub_081A163C: @ 0x081A163C + bx r0 + .align 2, 0 +_081A1640: .4byte 0x085DD244 +_081A1644: .4byte 0x02037280 + thumb_func_end sub_081A163C + + thumb_func_start sub_081A1648 +sub_081A1648: @ 0x081A1648 + push {lr} + movs r0, #0x80 + lsls r0, r0, #7 + movs r1, #0xff + bl VarSet + ldr r0, _081A166C + ldr r0, [r0] + ldr r1, _081A1670 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #4 + bhi _081A16CA + lsls r0, r0, #2 + ldr r1, _081A1674 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081A166C: .4byte 0x03005AF0 +_081A1670: .4byte 0x00000CA8 +_081A1674: .4byte 0x081A1678 +_081A1678: @ jump table + .4byte _081A16CA @ case 0 + .4byte _081A168C @ case 1 + .4byte _081A16B8 @ case 2 + .4byte _081A1694 @ case 3 + .4byte _081A1690 @ case 4 +_081A168C: + movs r0, #0 + b _081A1696 +_081A1690: + movs r0, #0 + b _081A1696 +_081A1694: + movs r0, #1 +_081A1696: + bl sub_0813A880 + movs r0, #0x80 + lsls r0, r0, #7 + ldr r1, _081A16B0 + ldr r1, [r1] + ldr r2, _081A16B4 + adds r1, r1, r2 + ldrb r1, [r1] + bl VarSet + b _081A16CA + .align 2, 0 +_081A16B0: .4byte 0x03005AF0 +_081A16B4: .4byte 0x00000CA8 +_081A16B8: + movs r0, #0x80 + lsls r0, r0, #7 + ldr r1, _081A16D0 + ldr r1, [r1] + ldr r2, _081A16D4 + adds r1, r1, r2 + ldrb r1, [r1] + bl VarSet +_081A16CA: + pop {r0} + bx r0 + .align 2, 0 +_081A16D0: .4byte 0x03005AF0 +_081A16D4: .4byte 0x00000CA8 + thumb_func_end sub_081A1648 + + thumb_func_start sub_081A16D8 +sub_081A16D8: @ 0x081A16D8 + push {r4, r5, r6, lr} + ldr r0, _081A1708 + bl VarGet + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r0, r6, #0 + bl GetPlayerSymbolCountForFacility + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #2 + bne _081A16F4 + movs r5, #1 +_081A16F4: + ldr r0, _081A170C + ldrh r0, [r0] + cmp r0, #7 + bls _081A16FE + b _081A17FE +_081A16FE: + lsls r0, r0, #2 + ldr r1, _081A1710 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081A1708: .4byte 0x000040CF +_081A170C: .4byte 0x02037282 +_081A1710: .4byte 0x081A1714 +_081A1714: @ jump table + .4byte _081A1734 @ case 0 + .4byte _081A1750 @ case 1 + .4byte _081A1770 @ case 2 + .4byte _081A178C @ case 3 + .4byte _081A17FE @ case 4 + .4byte _081A17A8 @ case 5 + .4byte _081A17C0 @ case 6 + .4byte _081A17E0 @ case 7 +_081A1734: + ldr r1, _081A1744 + ldr r0, _081A1748 + ldr r0, [r0] + ldr r2, _081A174C + adds r0, r0, r2 + ldrb r0, [r0] + strh r0, [r1] + b _081A17FE + .align 2, 0 +_081A1744: .4byte 0x02037290 +_081A1748: .4byte 0x03005AF0 +_081A174C: .4byte 0x00000CA8 +_081A1750: + ldr r1, _081A1764 + ldr r0, _081A1768 + ldr r0, [r0] + ldr r2, _081A176C + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + strh r0, [r1] + b _081A17FE + .align 2, 0 +_081A1764: .4byte 0x02037290 +_081A1768: .4byte 0x03005AF0 +_081A176C: .4byte 0x00000CA9 +_081A1770: + ldr r1, _081A1780 + ldr r0, _081A1784 + ldr r0, [r0] + ldr r2, _081A1788 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r1] + b _081A17FE + .align 2, 0 +_081A1780: .4byte 0x02037290 +_081A1784: .4byte 0x03005AF0 +_081A1788: .4byte 0x00000CB2 +_081A178C: + ldr r1, _081A179C + ldr r0, _081A17A0 + ldr r0, [r0] + ldr r2, _081A17A4 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1d + b _081A17CE + .align 2, 0 +_081A179C: .4byte 0x02037290 +_081A17A0: .4byte 0x03005AF0 +_081A17A4: .4byte 0x00000CA9 +_081A17A8: + ldr r2, _081A17B8 + ldr r1, _081A17BC + ldrb r0, [r1] + strh r0, [r2] + movs r0, #0 + strb r0, [r1] + b _081A17FE + .align 2, 0 +_081A17B8: .4byte 0x02037290 +_081A17BC: .4byte 0x02023FDE +_081A17C0: + ldr r1, _081A17D4 + ldr r0, _081A17D8 + ldr r0, [r0] + ldr r2, _081A17DC + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1c +_081A17CE: + lsrs r0, r0, #0x1f + strh r0, [r1] + b _081A17FE + .align 2, 0 +_081A17D4: .4byte 0x02037290 +_081A17D8: .4byte 0x03005AF0 +_081A17DC: .4byte 0x00000CA9 +_081A17E0: + ldr r4, _081A1804 + ldr r0, _081A1808 + ldr r2, [r0] + movs r0, #0xd0 + lsls r0, r0, #4 + adds r2, r2, r0 + ldr r3, _081A180C + lsls r0, r5, #1 + lsls r1, r6, #2 + adds r0, r0, r1 + adds r0, r0, r3 + ldrh r1, [r2] + ldrh r0, [r0] + ands r0, r1 + strh r0, [r4] +_081A17FE: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081A1804: .4byte 0x02037290 +_081A1808: .4byte 0x03005AF0 +_081A180C: .4byte 0x085DD228 + thumb_func_end sub_081A16D8 + + thumb_func_start sub_081A1810 +sub_081A1810: @ 0x081A1810 + push {r4, r5, lr} + ldr r0, _081A1840 + bl VarGet + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r5, #0 + bl GetPlayerSymbolCountForFacility + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #2 + bne _081A182C + movs r4, #1 +_081A182C: + ldr r0, _081A1844 + ldrh r0, [r0] + cmp r0, #7 + bls _081A1836 + b _081A196C +_081A1836: + lsls r0, r0, #2 + ldr r1, _081A1848 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081A1840: .4byte 0x000040CF +_081A1844: .4byte 0x02037282 +_081A1848: .4byte 0x081A184C +_081A184C: @ jump table + .4byte _081A186C @ case 0 + .4byte _081A1888 @ case 1 + .4byte _081A18B4 @ case 2 + .4byte _081A18D0 @ case 3 + .4byte _081A18F8 @ case 4 + .4byte _081A196C @ case 5 + .4byte _081A1924 @ case 6 + .4byte _081A1950 @ case 7 +_081A186C: + ldr r0, _081A187C + ldr r0, [r0] + ldr r1, _081A1880 + ldrh r1, [r1] + ldr r2, _081A1884 + adds r0, r0, r2 + strb r1, [r0] + b _081A196C + .align 2, 0 +_081A187C: .4byte 0x03005AF0 +_081A1880: .4byte 0x02037284 +_081A1884: .4byte 0x00000CA8 +_081A1888: + ldr r0, _081A18A8 + ldr r2, [r0] + ldr r0, _081A18AC + ldrb r0, [r0] + ldr r1, _081A18B0 + adds r2, r2, r1 + movs r1, #3 + ands r1, r0 + ldrb r3, [r2] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + b _081A196C + .align 2, 0 +_081A18A8: .4byte 0x03005AF0 +_081A18AC: .4byte 0x02037284 +_081A18B0: .4byte 0x00000CA9 +_081A18B4: + ldr r0, _081A18C4 + ldr r0, [r0] + ldr r1, _081A18C8 + ldrh r1, [r1] + ldr r2, _081A18CC + adds r0, r0, r2 + strh r1, [r0] + b _081A196C + .align 2, 0 +_081A18C4: .4byte 0x03005AF0 +_081A18C8: .4byte 0x02037284 +_081A18CC: .4byte 0x00000CB2 +_081A18D0: + ldr r0, _081A18EC + ldr r3, [r0] + ldr r0, _081A18F0 + ldrb r0, [r0] + ldr r1, _081A18F4 + adds r3, r3, r1 + movs r1, #1 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r3] + movs r0, #5 + rsbs r0, r0, #0 + b _081A193C + .align 2, 0 +_081A18EC: .4byte 0x03005AF0 +_081A18F0: .4byte 0x02037284 +_081A18F4: .4byte 0x00000CA9 +_081A18F8: + movs r2, #0 + ldr r5, _081A1918 + ldr r4, _081A191C + ldr r3, _081A1920 +_081A1900: + ldr r1, [r5] + lsls r0, r2, #1 + adds r1, r1, r4 + adds r1, r1, r0 + adds r0, r2, r3 + ldrb r0, [r0] + strh r0, [r1] + adds r2, #1 + cmp r2, #3 + ble _081A1900 + b _081A196C + .align 2, 0 +_081A1918: .4byte 0x03005AF0 +_081A191C: .4byte 0x00000CAA +_081A1920: .4byte 0x0203CBC4 +_081A1924: + ldr r0, _081A1944 + ldr r3, [r0] + ldr r0, _081A1948 + ldrb r0, [r0] + ldr r2, _081A194C + adds r3, r3, r2 + movs r1, #1 + ands r1, r0 + lsls r1, r1, #3 + ldrb r2, [r3] + movs r0, #9 + rsbs r0, r0, #0 +_081A193C: + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _081A196C + .align 2, 0 +_081A1944: .4byte 0x03005AF0 +_081A1948: .4byte 0x02037284 +_081A194C: .4byte 0x00000CA9 +_081A1950: + ldr r0, _081A1974 + ldr r2, [r0] + movs r0, #0xd0 + lsls r0, r0, #4 + adds r2, r2, r0 + ldr r3, _081A1978 + lsls r1, r4, #1 + lsls r0, r5, #2 + adds r1, r1, r0 + adds r1, r1, r3 + ldrh r0, [r2] + ldrh r1, [r1] + orrs r0, r1 + strh r0, [r2] +_081A196C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081A1974: .4byte 0x03005AF0 +_081A1978: .4byte 0x085DD228 + thumb_func_end sub_081A1810 + + thumb_func_start sub_081A197C +sub_081A197C: @ 0x081A197C + push {r4, r5, r6, r7, lr} + bl sub_081B81F8 + movs r3, #0 + ldr r4, _081A19B4 + ldrh r0, [r4] + cmp r3, r0 + bge _081A19A8 + ldr r7, _081A19B8 + ldr r6, _081A19BC + ldr r5, _081A19C0 +_081A1992: + adds r2, r3, r7 + ldr r0, [r6] + lsls r1, r3, #1 + adds r0, r0, r5 + adds r0, r0, r1 + ldrh r0, [r0] + strb r0, [r2] + adds r3, #1 + ldrh r0, [r4] + cmp r3, r0 + blt _081A1992 +_081A19A8: + bl ReducePlayerPartyToSelectedMons + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A19B4: .4byte 0x02037282 +_081A19B8: .4byte 0x0203CBC4 +_081A19BC: .4byte 0x03005AF0 +_081A19C0: .4byte 0x00000CAA + thumb_func_end sub_081A197C + + thumb_func_start DoSoftReset_ +DoSoftReset_: @ 0x081A19C4 + push {lr} + bl DoSoftReset + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end DoSoftReset_ + + thumb_func_start sub_081A19D0 +sub_081A19D0: @ 0x081A19D0 + ldr r1, _081A19D8 + ldr r0, _081A19DC + str r0, [r1] + bx lr + .align 2, 0 +_081A19D8: .4byte 0x0203B954 +_081A19DC: .4byte 0x085B4A10 + thumb_func_end sub_081A19D0 + + thumb_func_start sub_081A19E0 +sub_081A19E0: @ 0x081A19E0 + push {r4, r5, lr} + movs r4, #0 + movs r5, #0x64 +_081A19E6: + ldr r0, _081A1A30 + ldr r0, [r0] + lsls r1, r4, #1 + ldr r2, _081A1A34 + adds r0, r0, r2 + adds r1, r0, r1 + ldrh r0, [r1] + subs r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #5 + bhi _081A1A1E + ldr r0, _081A1A38 + ldr r0, [r0] + ldrh r1, [r1] + subs r1, #1 + muls r1, r5, r1 + adds r0, r0, r1 + movs r1, #0x8e + lsls r1, r1, #2 + adds r0, r0, r1 + ldr r2, _081A1A3C + adds r1, r4, #0 + muls r1, r5, r1 + adds r1, r1, r2 + movs r2, #0x64 + bl memcpy +_081A1A1E: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _081A19E6 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081A1A30: .4byte 0x03005AF0 +_081A1A34: .4byte 0x00000CAA +_081A1A38: .4byte 0x03005AEC +_081A1A3C: .4byte 0x02024190 + thumb_func_end sub_081A19E0 + + thumb_func_start ShowFacilityResultsWindow +ShowFacilityResultsWindow: @ 0x081A1A40 + push {lr} + ldr r0, _081A1A64 + ldrh r1, [r0] + adds r2, r0, #0 + cmp r1, #3 + bls _081A1A50 + movs r0, #0 + strh r0, [r2] +_081A1A50: + ldr r0, _081A1A68 + ldrh r0, [r0] + cmp r0, #7 + bhi _081A1AC6 + lsls r0, r0, #2 + ldr r1, _081A1A6C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081A1A64: .4byte 0x02037284 +_081A1A68: .4byte 0x02037282 +_081A1A6C: .4byte 0x081A1A70 +_081A1A70: @ jump table + .4byte _081A1A90 @ case 0 + .4byte _081A1A98 @ case 1 + .4byte _081A1AA0 @ case 2 + .4byte _081A1AB6 @ case 3 + .4byte _081A1AAE @ case 4 + .4byte _081A1AA8 @ case 5 + .4byte _081A1ABC @ case 6 + .4byte _081A1AC2 @ case 7 +_081A1A90: + ldrb r0, [r2] + bl ShowTowerResultsWindow + b _081A1AC6 +_081A1A98: + ldrb r0, [r2] + bl ShowDomeResultsWindow + b _081A1AC6 +_081A1AA0: + ldrb r0, [r2] + bl ShowPalaceResultsWindow + b _081A1AC6 +_081A1AA8: + bl ShowPikeResultsWindow + b _081A1AC6 +_081A1AAE: + ldrb r0, [r2] + bl ShowFactoryResultsWindow + b _081A1AC6 +_081A1AB6: + bl ShowArenaResultsWindow + b _081A1AC6 +_081A1ABC: + bl ShowPyramidResultsWindow + b _081A1AC6 +_081A1AC2: + bl PrintHallRecords +_081A1AC6: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ShowFacilityResultsWindow + + thumb_func_start sub_081A1ACC +sub_081A1ACC: @ 0x081A1ACC + push {lr} + ldr r1, _081A1AE4 + ldr r1, [r1] + ldr r2, _081A1AE8 + adds r1, r1, r2 + ldr r1, [r1] + ands r1, r0 + cmp r1, #0 + bne _081A1AEC + movs r0, #0 + b _081A1AEE + .align 2, 0 +_081A1AE4: .4byte 0x03005AF0 +_081A1AE8: .4byte 0x00000CDC +_081A1AEC: + movs r0, #1 +_081A1AEE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081A1ACC + + thumb_func_start TowerPrintStreak +TowerPrintStreak: @ 0x081A1AF4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0xc + mov ip, r0 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + lsls r3, r3, #0x18 + ldr r0, _081A1B78 + mov sb, r0 + ldrb r0, [r0] + lsls r4, r2, #0x1b + lsrs r4, r4, #0x18 + lsrs r3, r3, #0x15 + adds r3, #2 + lsls r3, r3, #0x18 + lsrs r5, r3, #0x18 + str r5, [sp] + movs r7, #0 + str r7, [sp, #4] + str r7, [sp, #8] + movs r1, #1 + mov r2, ip + adds r3, r4, #0 + bl AddTextPrinterParameterized + ldr r0, _081A1B7C + cmp r6, r0 + bls _081A1B38 + adds r6, r0, #0 +_081A1B38: + ldr r0, _081A1B80 + adds r1, r6, #0 + movs r2, #1 + movs r3, #4 + bl ConvertIntToDecimalStringN + ldr r4, _081A1B84 + ldr r1, _081A1B88 + adds r0, r4, #0 + bl StringExpandPlaceholders + mov r1, sb + ldrb r0, [r1] + mov r3, r8 + adds r3, #6 + lsls r3, r3, #0x1b + lsrs r3, r3, #0x18 + str r5, [sp] + str r7, [sp, #4] + str r7, [sp, #8] + movs r1, #1 + adds r2, r4, #0 + bl AddTextPrinterParameterized + add sp, #0xc + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A1B78: .4byte 0x0203A840 +_081A1B7C: .4byte 0x0000270F +_081A1B80: .4byte 0x02021C40 +_081A1B84: .4byte 0x02021C7C +_081A1B88: .4byte 0x085DD41D + thumb_func_end TowerPrintStreak + + thumb_func_start TowerPrintRecordStreak +TowerPrintRecordStreak: @ 0x081A1B8C + push {r4, lr} + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r4, _081A1BBC + ldr r4, [r4] + lsrs r1, r1, #0x17 + lsrs r0, r0, #0x16 + adds r1, r1, r0 + movs r0, #0xcf + lsls r0, r0, #4 + adds r4, r4, r0 + adds r4, r4, r1 + ldrh r1, [r4] + ldr r0, _081A1BC0 + bl TowerPrintStreak + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081A1BBC: .4byte 0x03005AF0 +_081A1BC0: .4byte 0x085DD42A + thumb_func_end TowerPrintRecordStreak + + thumb_func_start TowerGetWinStreak +TowerGetWinStreak: @ 0x081A1BC4 + push {lr} + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + ldr r2, _081A1BEC + ldr r2, [r2] + lsrs r1, r1, #0x17 + lsrs r0, r0, #0x16 + adds r1, r1, r0 + movs r0, #0xce + lsls r0, r0, #4 + adds r2, r2, r0 + adds r2, r2, r1 + ldrh r0, [r2] + ldr r1, _081A1BF0 + cmp r0, r1 + bls _081A1BE6 + adds r0, r1, #0 +_081A1BE6: + pop {r1} + bx r1 + .align 2, 0 +_081A1BEC: .4byte 0x03005AF0 +_081A1BF0: .4byte 0x0000270F + thumb_func_end TowerGetWinStreak + + thumb_func_start TowerPrintPrevOrCurrentStreak +TowerPrintPrevOrCurrentStreak: @ 0x081A1BF4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r8, r3 + adds r0, r4, #0 + adds r1, r5, #0 + bl TowerGetWinStreak + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r4, #1 + beq _081A1C34 + cmp r4, #1 + ble _081A1C28 + cmp r4, #2 + beq _081A1C44 + cmp r4, #3 + beq _081A1C54 +_081A1C28: + cmp r5, #0 + beq _081A1C30 + movs r0, #2 + b _081A1C62 +_081A1C30: + movs r0, #1 + b _081A1C62 +_081A1C34: + cmp r5, #0 + beq _081A1C3E + movs r0, #0x80 + lsls r0, r0, #8 + b _081A1C62 +_081A1C3E: + movs r0, #0x80 + lsls r0, r0, #7 + b _081A1C62 +_081A1C44: + cmp r5, #0 + beq _081A1C4E + movs r0, #0x80 + lsls r0, r0, #0xa + b _081A1C62 +_081A1C4E: + movs r0, #0x80 + lsls r0, r0, #9 + b _081A1C62 +_081A1C54: + cmp r5, #0 + beq _081A1C5E + movs r0, #0x80 + lsls r0, r0, #0xc + b _081A1C62 +_081A1C5E: + movs r0, #0x80 + lsls r0, r0, #0xb +_081A1C62: + bl sub_081A1ACC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081A1C80 + ldr r0, _081A1C7C + adds r1, r6, #0 + adds r2, r7, #0 + mov r3, r8 + bl TowerPrintStreak + b _081A1C8C + .align 2, 0 +_081A1C7C: .4byte 0x085DD425 +_081A1C80: + ldr r0, _081A1C98 + adds r1, r6, #0 + adds r2, r7, #0 + mov r3, r8 + bl TowerPrintStreak +_081A1C8C: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A1C98: .4byte 0x085DD42F + thumb_func_end TowerPrintPrevOrCurrentStreak + + thumb_func_start ShowTowerResultsWindow +ShowTowerResultsWindow: @ 0x081A1C9C + push {r4, r5, r6, r7, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r4, _081A1CCC + ldr r0, _081A1CD0 + bl AddWindow + strb r0, [r4] + ldrb r0, [r4] + movs r1, #0 + bl ClearStdWindowAndFrame + ldrb r0, [r4] + movs r1, #0x11 + bl FillWindowPixelBuffer + cmp r6, #0 + bne _081A1CDC + ldr r0, _081A1CD4 + ldr r1, _081A1CD8 + bl StringExpandPlaceholders + b _081A1D14 + .align 2, 0 +_081A1CCC: .4byte 0x0203A840 +_081A1CD0: .4byte 0x085DD2A0 +_081A1CD4: .4byte 0x02021C7C +_081A1CD8: .4byte 0x085DD2EC +_081A1CDC: + cmp r6, #1 + bne _081A1CF4 + ldr r0, _081A1CEC + ldr r1, _081A1CF0 + bl StringExpandPlaceholders + b _081A1D14 + .align 2, 0 +_081A1CEC: .4byte 0x02021C7C +_081A1CF0: .4byte 0x085DD303 +_081A1CF4: + cmp r6, #2 + bne _081A1D0C + ldr r0, _081A1D04 + ldr r1, _081A1D08 + bl StringExpandPlaceholders + b _081A1D14 + .align 2, 0 +_081A1D04: .4byte 0x02021C7C +_081A1D08: .4byte 0x085DD31A +_081A1D0C: + ldr r0, _081A1DC4 + ldr r1, _081A1DC8 + bl StringExpandPlaceholders +_081A1D14: + ldr r5, _081A1DCC + ldrb r0, [r5] + ldr r2, _081A1DC4 + movs r1, #0x12 + str r1, [sp] + movs r4, #0 + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #8 + bl AddTextPrinterParameterized + ldrb r0, [r5] + ldr r2, _081A1DD0 + movs r1, #0x32 + str r1, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #0x10 + bl AddTextPrinterParameterized + ldrb r0, [r5] + ldr r2, _081A1DD4 + movs r1, #0x62 + str r1, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #0x10 + bl AddTextPrinterParameterized + movs r5, #0 +_081A1D56: + ldr r7, _081A1DCC + ldrb r0, [r7] + lsls r3, r4, #1 + adds r3, r3, r4 + adds r3, #1 + lsls r3, r3, #0x1b + lsrs r3, r3, #0x18 + movs r1, #0x52 + str r1, [sp] + str r5, [sp, #4] + str r5, [sp, #8] + movs r1, #1 + ldr r2, _081A1DD8 + bl AddTextPrinterParameterized + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0xa + bls _081A1D56 + adds r0, r6, #0 + movs r1, #0 + movs r2, #0xb + movs r3, #6 + bl TowerPrintPrevOrCurrentStreak + adds r0, r6, #0 + movs r1, #0 + movs r2, #0xb + movs r3, #8 + bl TowerPrintRecordStreak + adds r0, r6, #0 + movs r1, #1 + movs r2, #0xb + movs r3, #0xc + bl TowerPrintPrevOrCurrentStreak + adds r0, r6, #0 + movs r1, #1 + movs r2, #0xb + movs r3, #0xe + bl TowerPrintRecordStreak + ldrb r0, [r7] + bl PutWindowTilemap + ldrb r0, [r7] + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A1DC4: .4byte 0x02021C7C +_081A1DC8: .4byte 0x085DD331 +_081A1DCC: .4byte 0x0203A840 +_081A1DD0: .4byte 0x085DD40E +_081A1DD4: .4byte 0x085DD415 +_081A1DD8: .4byte 0x085DD2E8 + thumb_func_end ShowTowerResultsWindow + + thumb_func_start DomeGetWinStreak +DomeGetWinStreak: @ 0x081A1DDC + push {lr} + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + ldr r2, _081A1E00 + ldr r2, [r2] + lsrs r1, r1, #0x17 + lsrs r0, r0, #0x16 + adds r1, r1, r0 + ldr r0, _081A1E04 + adds r2, r2, r0 + adds r2, r2, r1 + ldrh r0, [r2] + ldr r1, _081A1E08 + cmp r0, r1 + bls _081A1DFC + adds r0, r1, #0 +_081A1DFC: + pop {r1} + bx r1 + .align 2, 0 +_081A1E00: .4byte 0x03005AF0 +_081A1E04: .4byte 0x00000D0C +_081A1E08: .4byte 0x0000270F + thumb_func_end DomeGetWinStreak + + thumb_func_start PrintTwoStrings +PrintTwoStrings: @ 0x081A1E0C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + mov sl, r0 + adds r7, r1, #0 + adds r6, r2, #0 + adds r5, r3, #0 + ldr r4, [sp, #0x2c] + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r4, #0x18 + ldr r0, _081A1E94 + mov sb, r0 + ldrb r0, [r0] + lsls r3, r5, #0x1b + lsrs r3, r3, #0x18 + lsrs r4, r4, #0x15 + adds r4, #2 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r4, [sp] + movs r1, #0 + mov r8, r1 + str r1, [sp, #4] + str r1, [sp, #8] + movs r1, #1 + mov r2, sl + bl AddTextPrinterParameterized + ldr r0, _081A1E98 + adds r1, r6, #0 + movs r2, #1 + movs r3, #4 + bl ConvertIntToDecimalStringN + ldr r6, _081A1E9C + adds r0, r6, #0 + adds r1, r7, #0 + bl StringExpandPlaceholders + mov r1, sb + ldrb r0, [r1] + adds r5, #5 + lsls r5, r5, #0x1b + lsrs r5, r5, #0x18 + str r4, [sp] + mov r1, r8 + str r1, [sp, #4] + str r1, [sp, #8] + movs r1, #1 + adds r2, r6, #0 + adds r3, r5, #0 + bl AddTextPrinterParameterized + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A1E94: .4byte 0x0203A840 +_081A1E98: .4byte 0x02021C40 +_081A1E9C: .4byte 0x02021C7C + thumb_func_end PrintTwoStrings + + thumb_func_start PyramidPrintPrevOrCurrentStreak +PyramidPrintPrevOrCurrentStreak: @ 0x081A1EA0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + lsls r3, r3, #0x18 + lsrs r6, r3, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl DomeGetWinStreak + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + cmp r4, #0 + beq _081A1ECE + cmp r4, #1 + beq _081A1EDA +_081A1ECE: + cmp r5, #0 + beq _081A1ED6 + movs r0, #8 + b _081A1EE8 +_081A1ED6: + movs r0, #4 + b _081A1EE8 +_081A1EDA: + cmp r5, #0 + beq _081A1EE4 + movs r0, #0x80 + lsls r0, r0, #0xe + b _081A1EE8 +_081A1EE4: + movs r0, #0x80 + lsls r0, r0, #0xd +_081A1EE8: + bl sub_081A1ACC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081A1F0C + ldr r0, _081A1F04 + ldr r1, _081A1F08 + str r6, [sp] + adds r2, r7, #0 + mov r3, r8 + bl PrintTwoStrings + b _081A1F1A + .align 2, 0 +_081A1F04: .4byte 0x085DD425 +_081A1F08: .4byte 0x085DD447 +_081A1F0C: + ldr r0, _081A1F28 + ldr r1, _081A1F2C + str r6, [sp] + adds r2, r7, #0 + mov r3, r8 + bl PrintTwoStrings +_081A1F1A: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A1F28: .4byte 0x085DD42F +_081A1F2C: .4byte 0x085DD447 + thumb_func_end PyramidPrintPrevOrCurrentStreak + + thumb_func_start ShowDomeResultsWindow +ShowDomeResultsWindow: @ 0x081A1F30 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r4, _081A1F68 + ldr r0, _081A1F6C + bl AddWindow + strb r0, [r4] + ldrb r0, [r4] + movs r1, #0 + bl ClearStdWindowAndFrame + ldrb r0, [r4] + movs r1, #0x11 + bl FillWindowPixelBuffer + cmp r6, #0 + bne _081A1F78 + ldr r0, _081A1F70 + ldr r1, _081A1F74 + bl StringExpandPlaceholders + b _081A1F80 + .align 2, 0 +_081A1F68: .4byte 0x0203A840 +_081A1F6C: .4byte 0x085DD2A8 +_081A1F70: .4byte 0x02021C7C +_081A1F74: .4byte 0x085DD34A +_081A1F78: + ldr r0, _081A2094 + ldr r1, _081A2098 + bl StringExpandPlaceholders +_081A1F80: + ldr r5, _081A209C + ldrb r0, [r5] + ldr r2, _081A2094 + movs r1, #2 + str r1, [sp] + movs r4, #0 + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #8 + bl AddTextPrinterParameterized + ldrb r0, [r5] + ldr r2, _081A20A0 + movs r1, #0x22 + str r1, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #8 + bl AddTextPrinterParameterized + ldrb r0, [r5] + ldr r2, _081A20A4 + movs r1, #0x62 + str r1, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #8 + bl AddTextPrinterParameterized + lsls r7, r6, #2 + movs r5, #0 +_081A1FC4: + ldr r0, _081A209C + mov sl, r0 + ldrb r0, [r0] + lsls r3, r4, #1 + adds r3, r3, r4 + lsls r3, r3, #0x1b + lsrs r3, r3, #0x18 + movs r1, #0x52 + str r1, [sp] + str r5, [sp, #4] + str r5, [sp, #8] + movs r1, #1 + ldr r2, _081A20A8 + bl AddTextPrinterParameterized + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #9 + bls _081A1FC4 + adds r0, r6, #0 + movs r1, #0 + movs r2, #0xa + movs r3, #4 + bl PyramidPrintPrevOrCurrentStreak + ldr r1, _081A20AC + mov r8, r1 + ldr r4, _081A20B0 + ldr r0, [r4] + ldr r1, _081A20B4 + adds r0, r0, r1 + adds r0, r0, r7 + ldrh r2, [r0] + movs r0, #6 + str r0, [sp] + mov r0, r8 + ldr r1, _081A20B8 + movs r3, #0xa + bl PrintTwoStrings + ldr r5, _081A20BC + ldr r0, _081A20C0 + mov sb, r0 + ldr r0, [r4] + ldr r1, _081A20C4 + adds r0, r0, r1 + adds r0, r0, r7 + ldrh r2, [r0] + movs r0, #8 + str r0, [sp] + adds r0, r5, #0 + mov r1, sb + movs r3, #0xa + bl PrintTwoStrings + adds r0, r6, #0 + movs r1, #1 + movs r2, #0xa + movs r3, #0xc + bl PyramidPrintPrevOrCurrentStreak + ldr r0, [r4] + ldr r1, _081A20C8 + adds r0, r0, r1 + adds r0, r0, r7 + ldrh r2, [r0] + movs r0, #0xe + str r0, [sp] + mov r0, r8 + ldr r1, _081A20B8 + movs r3, #0xa + bl PrintTwoStrings + ldr r0, [r4] + ldr r1, _081A20CC + adds r0, r0, r1 + adds r0, r0, r7 + ldrh r2, [r0] + movs r0, #0x10 + str r0, [sp] + adds r0, r5, #0 + mov r1, sb + movs r3, #0xa + bl PrintTwoStrings + mov r1, sl + ldrb r0, [r1] + bl PutWindowTilemap + mov r1, sl + ldrb r0, [r1] + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A2094: .4byte 0x02021C7C +_081A2098: .4byte 0x085DD363 +_081A209C: .4byte 0x0203A840 +_081A20A0: .4byte 0x085DD40E +_081A20A4: .4byte 0x085DD415 +_081A20A8: .4byte 0x085DD2E8 +_081A20AC: .4byte 0x085DD42A +_081A20B0: .4byte 0x03005AF0 +_081A20B4: .4byte 0x00000D14 +_081A20B8: .4byte 0x085DD447 +_081A20BC: .4byte 0x085DD442 +_081A20C0: .4byte 0x085DD44D +_081A20C4: .4byte 0x00000D1C +_081A20C8: .4byte 0x00000D16 +_081A20CC: .4byte 0x00000D1E + thumb_func_end ShowDomeResultsWindow + + thumb_func_start PalacePrintStreak +PalacePrintStreak: @ 0x081A20D0 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0xc + mov ip, r0 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + lsls r3, r3, #0x18 + ldr r0, _081A2154 + mov sb, r0 + ldrb r0, [r0] + lsls r4, r2, #0x1b + lsrs r4, r4, #0x18 + lsrs r3, r3, #0x15 + adds r3, #2 + lsls r3, r3, #0x18 + lsrs r5, r3, #0x18 + str r5, [sp] + movs r7, #0 + str r7, [sp, #4] + str r7, [sp, #8] + movs r1, #1 + mov r2, ip + adds r3, r4, #0 + bl AddTextPrinterParameterized + ldr r0, _081A2158 + cmp r6, r0 + bls _081A2114 + adds r6, r0, #0 +_081A2114: + ldr r0, _081A215C + adds r1, r6, #0 + movs r2, #1 + movs r3, #4 + bl ConvertIntToDecimalStringN + ldr r4, _081A2160 + ldr r1, _081A2164 + adds r0, r4, #0 + bl StringExpandPlaceholders + mov r1, sb + ldrb r0, [r1] + mov r3, r8 + adds r3, #6 + lsls r3, r3, #0x1b + lsrs r3, r3, #0x18 + str r5, [sp] + str r7, [sp, #4] + str r7, [sp, #8] + movs r1, #1 + adds r2, r4, #0 + bl AddTextPrinterParameterized + add sp, #0xc + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A2154: .4byte 0x0203A840 +_081A2158: .4byte 0x0000270F +_081A215C: .4byte 0x02021C40 +_081A2160: .4byte 0x02021C7C +_081A2164: .4byte 0x085DD41D + thumb_func_end PalacePrintStreak + + thumb_func_start PalacePrintRecordStreak +PalacePrintRecordStreak: @ 0x081A2168 + push {r4, lr} + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r4, _081A2198 + ldr r4, [r4] + lsrs r1, r1, #0x17 + lsrs r0, r0, #0x16 + adds r1, r1, r0 + movs r0, #0xdd + lsls r0, r0, #4 + adds r4, r4, r0 + adds r4, r4, r1 + ldrh r1, [r4] + ldr r0, _081A219C + bl PalacePrintStreak + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081A2198: .4byte 0x03005AF0 +_081A219C: .4byte 0x085DD42A + thumb_func_end PalacePrintRecordStreak + + thumb_func_start FactoryGetRentsCount +FactoryGetRentsCount: @ 0x081A21A0 + push {lr} + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + ldr r2, _081A21C4 + ldr r2, [r2] + lsrs r1, r1, #0x17 + lsrs r0, r0, #0x16 + adds r1, r1, r0 + ldr r0, _081A21C8 + adds r2, r2, r0 + adds r2, r2, r1 + ldrh r0, [r2] + ldr r1, _081A21CC + cmp r0, r1 + bls _081A21C0 + adds r0, r1, #0 +_081A21C0: + pop {r1} + bx r1 + .align 2, 0 +_081A21C4: .4byte 0x03005AF0 +_081A21C8: .4byte 0x00000DC8 +_081A21CC: .4byte 0x0000270F + thumb_func_end FactoryGetRentsCount + + thumb_func_start ArenaPrintPrevOrCurrentStreak +ArenaPrintPrevOrCurrentStreak: @ 0x081A21D0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r8, r3 + adds r0, r4, #0 + adds r1, r5, #0 + bl FactoryGetRentsCount + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r4, #0 + beq _081A21FC + cmp r4, #1 + beq _081A2208 +_081A21FC: + cmp r5, #0 + beq _081A2204 + movs r0, #0x20 + b _081A2216 +_081A2204: + movs r0, #0x10 + b _081A2216 +_081A2208: + cmp r5, #0 + beq _081A2212 + movs r0, #0x80 + lsls r0, r0, #0x10 + b _081A2216 +_081A2212: + movs r0, #0x80 + lsls r0, r0, #0xf +_081A2216: + bl sub_081A1ACC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081A2234 + ldr r0, _081A2230 + adds r1, r6, #0 + adds r2, r7, #0 + mov r3, r8 + bl PalacePrintStreak + b _081A2240 + .align 2, 0 +_081A2230: .4byte 0x085DD425 +_081A2234: + ldr r0, _081A224C + adds r1, r6, #0 + adds r2, r7, #0 + mov r3, r8 + bl PalacePrintStreak +_081A2240: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A224C: .4byte 0x085DD42F + thumb_func_end ArenaPrintPrevOrCurrentStreak + + thumb_func_start ShowPalaceResultsWindow +ShowPalaceResultsWindow: @ 0x081A2250 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r4, _081A2280 + ldr r0, _081A2284 + bl AddWindow + strb r0, [r4] + ldrb r0, [r4] + movs r1, #0 + bl ClearStdWindowAndFrame + ldrb r0, [r4] + movs r1, #0x11 + bl FillWindowPixelBuffer + cmp r7, #0 + bne _081A2290 + ldr r0, _081A2288 + ldr r1, _081A228C + bl StringExpandPlaceholders + b _081A2298 + .align 2, 0 +_081A2280: .4byte 0x0203A840 +_081A2284: .4byte 0x085DD2B0 +_081A2288: .4byte 0x02021C7C +_081A228C: .4byte 0x085DD37B +_081A2290: + ldr r0, _081A2348 + ldr r1, _081A234C + bl StringExpandPlaceholders +_081A2298: + ldr r5, _081A2350 + ldrb r0, [r5] + ldr r2, _081A2348 + movs r1, #0x12 + str r1, [sp] + movs r4, #0 + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #0x10 + bl AddTextPrinterParameterized + ldrb r0, [r5] + ldr r2, _081A2354 + movs r1, #0x32 + str r1, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #0x10 + bl AddTextPrinterParameterized + ldrb r0, [r5] + ldr r2, _081A2358 + movs r1, #0x62 + str r1, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #0x10 + bl AddTextPrinterParameterized + movs r5, #0 +_081A22DA: + ldr r6, _081A2350 + ldrb r0, [r6] + lsls r3, r4, #1 + adds r3, r3, r4 + lsls r3, r3, #0x1b + lsrs r3, r3, #0x18 + movs r1, #0x52 + str r1, [sp] + str r5, [sp, #4] + str r5, [sp, #8] + movs r1, #1 + ldr r2, _081A235C + bl AddTextPrinterParameterized + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0xa + bls _081A22DA + adds r0, r7, #0 + movs r1, #0 + movs r2, #0xb + movs r3, #6 + bl ArenaPrintPrevOrCurrentStreak + adds r0, r7, #0 + movs r1, #0 + movs r2, #0xb + movs r3, #8 + bl PalacePrintRecordStreak + adds r0, r7, #0 + movs r1, #1 + movs r2, #0xb + movs r3, #0xc + bl ArenaPrintPrevOrCurrentStreak + adds r0, r7, #0 + movs r1, #1 + movs r2, #0xb + movs r3, #0xe + bl PalacePrintRecordStreak + ldrb r0, [r6] + bl PutWindowTilemap + ldrb r0, [r6] + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A2348: .4byte 0x02021C7C +_081A234C: .4byte 0x085DD391 +_081A2350: .4byte 0x0203A840 +_081A2354: .4byte 0x085DD40E +_081A2358: .4byte 0x085DD415 +_081A235C: .4byte 0x085DD2E8 + thumb_func_end ShowPalaceResultsWindow + + thumb_func_start ArenaGetWinStreak +ArenaGetWinStreak: @ 0x081A2360 + push {lr} + lsls r0, r0, #0x18 + ldr r1, _081A2380 + ldr r1, [r1] + lsrs r0, r0, #0x17 + ldr r2, _081A2384 + adds r1, r1, r2 + adds r1, r1, r0 + ldrh r0, [r1] + ldr r1, _081A2388 + cmp r0, r1 + bls _081A237A + adds r0, r1, #0 +_081A237A: + pop {r1} + bx r1 + .align 2, 0 +_081A2380: .4byte 0x03005AF0 +_081A2384: .4byte 0x00000E04 +_081A2388: .4byte 0x0000270F + thumb_func_end ArenaGetWinStreak + + thumb_func_start PikePrintCleared +PikePrintCleared: @ 0x081A238C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + mov sl, r0 + adds r7, r1, #0 + adds r6, r2, #0 + adds r5, r3, #0 + ldr r4, [sp, #0x2c] + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r4, #0x18 + ldr r0, _081A2414 + mov sb, r0 + ldrb r0, [r0] + lsls r3, r5, #0x1b + lsrs r3, r3, #0x18 + lsrs r4, r4, #0x15 + adds r4, #2 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r4, [sp] + movs r1, #0 + mov r8, r1 + str r1, [sp, #4] + str r1, [sp, #8] + movs r1, #1 + mov r2, sl + bl AddTextPrinterParameterized + ldr r0, _081A2418 + adds r1, r6, #0 + movs r2, #1 + movs r3, #4 + bl ConvertIntToDecimalStringN + ldr r6, _081A241C + adds r0, r6, #0 + adds r1, r7, #0 + bl StringExpandPlaceholders + mov r1, sb + ldrb r0, [r1] + adds r5, #5 + lsls r5, r5, #0x1b + lsrs r5, r5, #0x18 + str r4, [sp] + mov r1, r8 + str r1, [sp, #4] + str r1, [sp, #8] + movs r1, #1 + adds r2, r6, #0 + adds r3, r5, #0 + bl AddTextPrinterParameterized + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A2414: .4byte 0x0203A840 +_081A2418: .4byte 0x02021C40 +_081A241C: .4byte 0x02021C7C + thumb_func_end PikePrintCleared + + thumb_func_start PikePrintPrevOrCurrentStreak +PikePrintPrevOrCurrentStreak: @ 0x081A2420 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + adds r0, r4, #0 + bl ArenaGetWinStreak + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r4, #0 + beq _081A2446 + movs r0, #0x80 + lsls r0, r0, #4 + b _081A244A +_081A2446: + movs r0, #0x80 + lsls r0, r0, #3 +_081A244A: + bl sub_081A1ACC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081A2470 + ldr r0, _081A2468 + ldr r1, _081A246C + str r5, [sp] + adds r2, r6, #0 + adds r3, r7, #0 + bl PrintTwoStrings + b _081A247E + .align 2, 0 +_081A2468: .4byte 0x085DD425 +_081A246C: .4byte 0x085DD458 +_081A2470: + ldr r0, _081A2488 + ldr r1, _081A248C + str r5, [sp] + adds r2, r6, #0 + adds r3, r7, #0 + bl PrintTwoStrings +_081A247E: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A2488: .4byte 0x085DD42F +_081A248C: .4byte 0x085DD458 + thumb_func_end PikePrintPrevOrCurrentStreak + + thumb_func_start ShowPikeResultsWindow +ShowPikeResultsWindow: @ 0x081A2490 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0xc + ldr r5, _081A25BC + ldr r0, _081A25C0 + bl AddWindow + strb r0, [r5] + ldrb r0, [r5] + movs r1, #0 + bl ClearStdWindowAndFrame + ldrb r0, [r5] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r6, _081A25C4 + ldr r1, _081A25C8 + adds r0, r6, #0 + bl StringExpandPlaceholders + ldrb r0, [r5] + movs r1, #2 + str r1, [sp] + movs r4, #0 + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + adds r2, r6, #0 + movs r3, #0x28 + bl AddTextPrinterParameterized + ldrb r0, [r5] + ldr r2, _081A25CC + movs r1, #0x22 + str r1, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #8 + bl AddTextPrinterParameterized + ldrb r0, [r5] + ldr r2, _081A25D0 + movs r1, #0x62 + str r1, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #8 + bl AddTextPrinterParameterized + movs r5, #0 +_081A24FE: + ldr r7, _081A25BC + ldrb r0, [r7] + lsls r3, r4, #1 + adds r3, r3, r4 + lsls r3, r3, #0x1b + lsrs r3, r3, #0x18 + movs r1, #0x52 + str r1, [sp] + str r5, [sp, #4] + str r5, [sp, #8] + movs r1, #1 + ldr r2, _081A25D4 + bl AddTextPrinterParameterized + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0xa + bls _081A24FE + movs r0, #0 + movs r1, #0xb + movs r2, #4 + bl PikePrintPrevOrCurrentStreak + ldr r0, _081A25D8 + mov r8, r0 + ldr r1, _081A25DC + mov sb, r1 + ldr r4, _081A25E0 + ldr r0, [r4] + ldr r1, _081A25E4 + adds r0, r0, r1 + ldrh r2, [r0] + movs r0, #6 + str r0, [sp] + mov r0, r8 + mov r1, sb + movs r3, #0xb + bl PikePrintCleared + ldr r5, _081A25E8 + ldr r6, _081A25EC + ldr r0, [r4] + ldr r1, _081A25F0 + adds r0, r0, r1 + ldrh r2, [r0] + movs r0, #8 + str r0, [sp] + adds r0, r5, #0 + adds r1, r6, #0 + movs r3, #0xb + bl PikePrintCleared + movs r0, #1 + movs r1, #0xb + movs r2, #0xc + bl PikePrintPrevOrCurrentStreak + ldr r0, [r4] + ldr r1, _081A25F4 + adds r0, r0, r1 + ldrh r2, [r0] + movs r0, #0xe + str r0, [sp] + mov r0, r8 + mov r1, sb + movs r3, #0xb + bl PikePrintCleared + ldr r0, [r4] + ldr r1, _081A25F8 + adds r0, r0, r1 + ldrh r2, [r0] + movs r0, #0x10 + str r0, [sp] + adds r0, r5, #0 + adds r1, r6, #0 + movs r3, #0xb + bl PikePrintCleared + ldrb r0, [r7] + bl PutWindowTilemap + ldrb r0, [r7] + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A25BC: .4byte 0x0203A840 +_081A25C0: .4byte 0x085DD2B8 +_081A25C4: .4byte 0x02021C7C +_081A25C8: .4byte 0x085DD3A6 +_081A25CC: .4byte 0x085DD40E +_081A25D0: .4byte 0x085DD415 +_081A25D4: .4byte 0x085DD2E8 +_081A25D8: .4byte 0x085DD42A +_081A25DC: .4byte 0x085DD458 +_081A25E0: .4byte 0x03005AF0 +_081A25E4: .4byte 0x00000E08 +_081A25E8: .4byte 0x085DD442 +_081A25EC: .4byte 0x085DD461 +_081A25F0: .4byte 0x00000E0C +_081A25F4: .4byte 0x00000E0A +_081A25F8: .4byte 0x00000E0E + thumb_func_end ShowPikeResultsWindow + + thumb_func_start ArenaPrintStreak +ArenaPrintStreak: @ 0x081A25FC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0xc + mov ip, r0 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + lsls r3, r3, #0x18 + ldr r0, _081A2684 + mov sb, r0 + ldrb r0, [r0] + lsls r4, r2, #0x1b + lsrs r4, r4, #0x18 + lsrs r3, r3, #0x15 + adds r3, #2 + lsls r3, r3, #0x18 + lsrs r5, r3, #0x18 + str r5, [sp] + movs r7, #0 + str r7, [sp, #4] + str r7, [sp, #8] + movs r1, #1 + mov r2, ip + adds r3, r4, #0 + bl AddTextPrinterParameterized + ldr r0, _081A2688 + cmp r6, r0 + bls _081A2640 + adds r6, r0, #0 +_081A2640: + ldr r0, _081A268C + adds r1, r6, #0 + movs r2, #1 + movs r3, #4 + bl ConvertIntToDecimalStringN + ldr r4, _081A2690 + ldr r1, _081A2694 + adds r0, r4, #0 + bl StringExpandPlaceholders + mov r1, sb + ldrb r0, [r1] + mov r1, r8 + lsls r3, r1, #0x1b + movs r1, #0xc0 + lsls r1, r1, #0x16 + adds r3, r3, r1 + lsrs r3, r3, #0x18 + str r5, [sp] + str r7, [sp, #4] + str r7, [sp, #8] + movs r1, #1 + adds r2, r4, #0 + bl AddTextPrinterParameterized + add sp, #0xc + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A2684: .4byte 0x0203A840 +_081A2688: .4byte 0x0000270F +_081A268C: .4byte 0x02021C40 +_081A2690: .4byte 0x02021C7C +_081A2694: .4byte 0x085DD46A + thumb_func_end ArenaPrintStreak + + thumb_func_start ArenaPrintRecordStreak +ArenaPrintRecordStreak: @ 0x081A2698 + push {r4, lr} + adds r4, r1, #0 + adds r3, r2, #0 + lsls r0, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r1, _081A26C4 + ldr r1, [r1] + lsrs r0, r0, #0x17 + ldr r2, _081A26C8 + adds r1, r1, r2 + adds r1, r1, r0 + ldrh r1, [r1] + ldr r0, _081A26CC + adds r2, r4, #0 + bl ArenaPrintStreak + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081A26C4: .4byte 0x03005AF0 +_081A26C8: .4byte 0x00000DDE +_081A26CC: .4byte 0x085DD42A + thumb_func_end ArenaPrintRecordStreak + + thumb_func_start PikeGetWinStreak +PikeGetWinStreak: @ 0x081A26D0 + push {lr} + lsls r0, r0, #0x18 + ldr r1, _081A26F0 + ldr r1, [r1] + lsrs r0, r0, #0x17 + ldr r2, _081A26F4 + adds r1, r1, r2 + adds r1, r1, r0 + ldrh r0, [r1] + ldr r1, _081A26F8 + cmp r0, r1 + bls _081A26EA + adds r0, r1, #0 +_081A26EA: + pop {r1} + bx r1 + .align 2, 0 +_081A26F0: .4byte 0x03005AF0 +_081A26F4: .4byte 0x00000DDA +_081A26F8: .4byte 0x0000270F + thumb_func_end PikeGetWinStreak + + thumb_func_start sub_081A26FC +sub_081A26FC: @ 0x081A26FC + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + adds r0, r4, #0 + bl PikeGetWinStreak + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r4, #0 + beq _081A271E + movs r0, #0x80 + b _081A2720 +_081A271E: + movs r0, #0x40 +_081A2720: + bl sub_081A1ACC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081A2740 + ldr r0, _081A273C + adds r1, r5, #0 + adds r2, r6, #0 + adds r3, r7, #0 + bl ArenaPrintStreak + b _081A274C + .align 2, 0 +_081A273C: .4byte 0x085DD425 +_081A2740: + ldr r0, _081A2754 + adds r1, r5, #0 + adds r2, r6, #0 + adds r3, r7, #0 + bl ArenaPrintStreak +_081A274C: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A2754: .4byte 0x085DD42F + thumb_func_end sub_081A26FC + + thumb_func_start ShowArenaResultsWindow +ShowArenaResultsWindow: @ 0x081A2758 + push {r4, r5, r6, lr} + sub sp, #0xc + ldr r4, _081A2828 + ldr r0, _081A282C + bl AddWindow + strb r0, [r4] + ldrb r0, [r4] + movs r1, #0 + bl ClearStdWindowAndFrame + ldrb r0, [r4] + movs r1, #0x11 + bl FillWindowPixelBuffer + movs r4, #0 + movs r5, #0 +_081A277A: + ldr r6, _081A2828 + ldrb r0, [r6] + lsls r3, r4, #1 + adds r3, r3, r4 + lsls r3, r3, #0x1b + lsrs r3, r3, #0x18 + movs r1, #0x52 + str r1, [sp] + str r5, [sp, #4] + str r5, [sp, #8] + movs r1, #1 + ldr r2, _081A2830 + bl AddTextPrinterParameterized + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #9 + bls _081A277A + ldr r5, _081A2834 + ldr r1, _081A2838 + adds r0, r5, #0 + bl StringExpandPlaceholders + ldrb r0, [r6] + movs r1, #0x10 + str r1, [sp] + movs r4, #0 + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + adds r2, r5, #0 + movs r3, #0x10 + bl AddTextPrinterParameterized + ldrb r0, [r6] + ldr r2, _081A283C + movs r1, #0x30 + str r1, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #0x10 + bl AddTextPrinterParameterized + ldrb r0, [r6] + ldr r2, _081A2840 + movs r1, #0x60 + str r1, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #0x10 + bl AddTextPrinterParameterized + movs r0, #0 + movs r1, #0xb + movs r2, #6 + bl sub_081A26FC + movs r0, #0 + movs r1, #0xb + movs r2, #8 + bl ArenaPrintRecordStreak + movs r0, #1 + movs r1, #0xb + movs r2, #0xc + bl sub_081A26FC + movs r0, #1 + movs r1, #0xb + movs r2, #0xe + bl ArenaPrintRecordStreak + ldrb r0, [r6] + bl PutWindowTilemap + ldrb r0, [r6] + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081A2828: .4byte 0x0203A840 +_081A282C: .4byte 0x085DD2C0 +_081A2830: .4byte 0x085DD2E8 +_081A2834: .4byte 0x02021C7C +_081A2838: .4byte 0x085DD3B7 +_081A283C: .4byte 0x085DD40E +_081A2840: .4byte 0x085DD415 + thumb_func_end ShowArenaResultsWindow + + thumb_func_start FactoryPrintStreak +FactoryPrintStreak: @ 0x081A2844 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + mov ip, r0 + ldr r4, [sp, #0x30] + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + str r2, [sp, #0xc] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r5, r3, #0 + lsls r4, r4, #0x18 + ldr r0, _081A290C + mov sb, r0 + ldrb r0, [r0] + lsls r3, r5, #0x1b + lsrs r3, r3, #0x18 + lsrs r4, r4, #0x15 + adds r4, #2 + lsls r4, r4, #0x18 + lsrs r7, r4, #0x18 + str r7, [sp] + movs r1, #0 + mov r8, r1 + str r1, [sp, #4] + str r1, [sp, #8] + movs r1, #1 + mov r2, ip + bl AddTextPrinterParameterized + ldr r0, _081A2910 + cmp r6, r0 + bls _081A2892 + adds r6, r0, #0 +_081A2892: + ldr r0, _081A2914 + mov sl, r0 + adds r1, r6, #0 + movs r2, #1 + movs r3, #4 + bl ConvertIntToDecimalStringN + ldr r4, _081A2918 + ldr r1, _081A291C + adds r0, r4, #0 + bl StringExpandPlaceholders + mov r1, sb + ldrb r0, [r1] + lsls r3, r5, #0x1b + movs r1, #0xc0 + lsls r1, r1, #0x16 + adds r3, r3, r1 + lsrs r3, r3, #0x18 + str r7, [sp] + mov r1, r8 + str r1, [sp, #4] + str r1, [sp, #8] + movs r1, #1 + adds r2, r4, #0 + bl AddTextPrinterParameterized + mov r0, sl + ldr r1, [sp, #0xc] + movs r2, #1 + movs r3, #4 + bl ConvertIntToDecimalStringN + ldr r1, _081A2920 + adds r0, r4, #0 + bl StringExpandPlaceholders + mov r1, sb + ldrb r0, [r1] + lsls r3, r5, #0x1b + movs r1, #0x98 + lsls r1, r1, #0x18 + adds r3, r3, r1 + lsrs r3, r3, #0x18 + str r7, [sp] + mov r1, r8 + str r1, [sp, #4] + str r1, [sp, #8] + movs r1, #1 + adds r2, r4, #0 + bl AddTextPrinterParameterized + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A290C: .4byte 0x0203A840 +_081A2910: .4byte 0x0000270F +_081A2914: .4byte 0x02021C40 +_081A2918: .4byte 0x02021C7C +_081A291C: .4byte 0x085DD41D +_081A2920: .4byte 0x085DD471 + thumb_func_end FactoryPrintStreak + + thumb_func_start PyramidPrintRecordStreak +PyramidPrintRecordStreak: @ 0x081A2924 + push {r4, r5, lr} + sub sp, #4 + adds r4, r2, #0 + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r2, _081A2964 + ldr r2, [r2] + lsrs r1, r1, #0x17 + lsrs r0, r0, #0x16 + adds r1, r1, r0 + ldr r5, _081A2968 + adds r0, r2, r5 + adds r0, r0, r1 + ldrh r5, [r0] + ldr r0, _081A296C + adds r2, r2, r0 + adds r2, r2, r1 + ldrh r2, [r2] + ldr r0, _081A2970 + str r3, [sp] + adds r1, r5, #0 + adds r3, r4, #0 + bl FactoryPrintStreak + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081A2964: .4byte 0x03005AF0 +_081A2968: .4byte 0x00000DEA +_081A296C: .4byte 0x00000DFA +_081A2970: .4byte 0x085DD42A + thumb_func_end PyramidPrintRecordStreak + + thumb_func_start FactoryGetWinStreak +FactoryGetWinStreak: @ 0x081A2974 + push {lr} + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + ldr r2, _081A2998 + ldr r2, [r2] + lsrs r1, r1, #0x17 + lsrs r0, r0, #0x16 + adds r1, r1, r0 + ldr r0, _081A299C + adds r2, r2, r0 + adds r2, r2, r1 + ldrh r0, [r2] + ldr r1, _081A29A0 + cmp r0, r1 + bls _081A2994 + adds r0, r1, #0 +_081A2994: + pop {r1} + bx r1 + .align 2, 0 +_081A2998: .4byte 0x03005AF0 +_081A299C: .4byte 0x00000DE2 +_081A29A0: .4byte 0x0000270F + thumb_func_end FactoryGetWinStreak + + thumb_func_start PalaceGetWinStreak +PalaceGetWinStreak: @ 0x081A29A4 + push {lr} + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + ldr r2, _081A29C8 + ldr r2, [r2] + lsrs r1, r1, #0x17 + lsrs r0, r0, #0x16 + adds r1, r1, r0 + ldr r0, _081A29CC + adds r2, r2, r0 + adds r2, r2, r1 + ldrh r0, [r2] + ldr r1, _081A29D0 + cmp r0, r1 + bls _081A29C4 + adds r0, r1, #0 +_081A29C4: + pop {r1} + bx r1 + .align 2, 0 +_081A29C8: .4byte 0x03005AF0 +_081A29CC: .4byte 0x00000DF2 +_081A29D0: .4byte 0x0000270F + thumb_func_end PalaceGetWinStreak + + thumb_func_start PalacePrintPrevOrCurrentStreak +PalacePrintPrevOrCurrentStreak: @ 0x081A29D4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sb, r2 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r8, r3 + adds r0, r4, #0 + adds r1, r5, #0 + bl FactoryGetWinStreak + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl PalaceGetWinStreak + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r4, #0 + beq _081A2A12 + cmp r4, #1 + beq _081A2A22 +_081A2A12: + cmp r5, #0 + beq _081A2A1C + movs r0, #0x80 + lsls r0, r0, #2 + b _081A2A30 +_081A2A1C: + movs r0, #0x80 + lsls r0, r0, #1 + b _081A2A30 +_081A2A22: + cmp r5, #0 + beq _081A2A2C + movs r0, #0x80 + lsls r0, r0, #0x12 + b _081A2A30 +_081A2A2C: + movs r0, #0x80 + lsls r0, r0, #0x11 +_081A2A30: + bl sub_081A1ACC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081A2A54 + ldr r0, _081A2A50 + mov r1, r8 + str r1, [sp] + adds r1, r7, #0 + adds r2, r6, #0 + mov r3, sb + bl FactoryPrintStreak + b _081A2A64 + .align 2, 0 +_081A2A50: .4byte 0x085DD425 +_081A2A54: + ldr r0, _081A2A74 + mov r1, r8 + str r1, [sp] + adds r1, r7, #0 + adds r2, r6, #0 + mov r3, sb + bl FactoryPrintStreak +_081A2A64: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A2A74: .4byte 0x085DD42F + thumb_func_end PalacePrintPrevOrCurrentStreak + + thumb_func_start ShowFactoryResultsWindow +ShowFactoryResultsWindow: @ 0x081A2A78 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r4, _081A2AA8 + ldr r0, _081A2AAC + bl AddWindow + strb r0, [r4] + ldrb r0, [r4] + movs r1, #0 + bl ClearStdWindowAndFrame + ldrb r0, [r4] + movs r1, #0x11 + bl FillWindowPixelBuffer + cmp r7, #0 + bne _081A2AB8 + ldr r0, _081A2AB0 + ldr r1, _081A2AB4 + bl StringExpandPlaceholders + b _081A2AC0 + .align 2, 0 +_081A2AA8: .4byte 0x0203A840 +_081A2AAC: .4byte 0x085DD2C8 +_081A2AB0: .4byte 0x02021C7C +_081A2AB4: .4byte 0x085DD3CC +_081A2AB8: + ldr r0, _081A2B80 + ldr r1, _081A2B84 + bl StringExpandPlaceholders +_081A2AC0: + ldr r5, _081A2B88 + ldrb r0, [r5] + ldr r2, _081A2B80 + movs r1, #2 + str r1, [sp] + movs r4, #0 + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #8 + bl AddTextPrinterParameterized + ldrb r0, [r5] + ldr r2, _081A2B8C + movs r6, #0x22 + str r6, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #8 + bl AddTextPrinterParameterized + ldrb r0, [r5] + ldr r2, _081A2B90 + str r6, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #0x80 + bl AddTextPrinterParameterized + ldrb r0, [r5] + ldr r2, _081A2B94 + movs r1, #0x62 + str r1, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #8 + bl AddTextPrinterParameterized + movs r5, #0 +_081A2B14: + ldr r6, _081A2B88 + ldrb r0, [r6] + lsls r3, r4, #1 + adds r3, r3, r4 + lsls r3, r3, #0x1b + lsrs r3, r3, #0x18 + movs r1, #0x52 + str r1, [sp] + str r5, [sp, #4] + str r5, [sp, #8] + movs r1, #1 + ldr r2, _081A2B98 + bl AddTextPrinterParameterized + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #9 + bls _081A2B14 + adds r0, r7, #0 + movs r1, #0 + movs r2, #1 + movs r3, #6 + bl PalacePrintPrevOrCurrentStreak + adds r0, r7, #0 + movs r1, #0 + movs r2, #1 + movs r3, #8 + bl PyramidPrintRecordStreak + adds r0, r7, #0 + movs r1, #1 + movs r2, #1 + movs r3, #0xe + bl PalacePrintPrevOrCurrentStreak + adds r0, r7, #0 + movs r1, #1 + movs r2, #1 + movs r3, #0x10 + bl PyramidPrintRecordStreak + ldrb r0, [r6] + bl PutWindowTilemap + ldrb r0, [r6] + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A2B80: .4byte 0x02021C7C +_081A2B84: .4byte 0x085DD3E3 +_081A2B88: .4byte 0x0203A840 +_081A2B8C: .4byte 0x085DD40E +_081A2B90: .4byte 0x085DD438 +_081A2B94: .4byte 0x085DD415 +_081A2B98: .4byte 0x085DD2E8 + thumb_func_end ShowFactoryResultsWindow + + thumb_func_start PyramidPrintStreak +PyramidPrintStreak: @ 0x081A2B9C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0xc + mov ip, r0 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + lsls r3, r3, #0x18 + ldr r0, _081A2C24 + mov sb, r0 + ldrb r0, [r0] + lsls r4, r2, #0x1b + lsrs r4, r4, #0x18 + lsrs r3, r3, #0x15 + adds r3, #2 + lsls r3, r3, #0x18 + lsrs r5, r3, #0x18 + str r5, [sp] + movs r7, #0 + str r7, [sp, #4] + str r7, [sp, #8] + movs r1, #1 + mov r2, ip + adds r3, r4, #0 + bl AddTextPrinterParameterized + ldr r0, _081A2C28 + cmp r6, r0 + bls _081A2BE0 + adds r6, r0, #0 +_081A2BE0: + ldr r0, _081A2C2C + adds r1, r6, #0 + movs r2, #1 + movs r3, #4 + bl ConvertIntToDecimalStringN + ldr r4, _081A2C30 + ldr r1, _081A2C34 + adds r0, r4, #0 + bl StringExpandPlaceholders + mov r1, sb + ldrb r0, [r1] + mov r1, r8 + lsls r3, r1, #0x1b + movs r1, #0xc0 + lsls r1, r1, #0x16 + adds r3, r3, r1 + lsrs r3, r3, #0x18 + str r5, [sp] + str r7, [sp, #4] + str r7, [sp, #8] + movs r1, #1 + adds r2, r4, #0 + bl AddTextPrinterParameterized + add sp, #0xc + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A2C24: .4byte 0x0203A840 +_081A2C28: .4byte 0x0000270F +_081A2C2C: .4byte 0x02021C40 +_081A2C30: .4byte 0x02021C7C +_081A2C34: .4byte 0x085DD476 + thumb_func_end PyramidPrintStreak + + thumb_func_start PyramidGetWinStreak +PyramidGetWinStreak: @ 0x081A2C38 + push {r4, lr} + adds r4, r1, #0 + adds r3, r2, #0 + lsls r0, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r1, _081A2C64 + ldr r1, [r1] + lsrs r0, r0, #0x17 + ldr r2, _081A2C68 + adds r1, r1, r2 + adds r1, r1, r0 + ldrh r1, [r1] + ldr r0, _081A2C6C + adds r2, r4, #0 + bl PyramidPrintStreak + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081A2C64: .4byte 0x03005AF0 +_081A2C68: .4byte 0x00000E1E +_081A2C6C: .4byte 0x085DD42A + thumb_func_end PyramidGetWinStreak + + thumb_func_start sub_081A2C70 +sub_081A2C70: @ 0x081A2C70 + push {lr} + lsls r0, r0, #0x18 + ldr r1, _081A2C90 + ldr r1, [r1] + lsrs r0, r0, #0x17 + ldr r2, _081A2C94 + adds r1, r1, r2 + adds r1, r1, r0 + ldrh r0, [r1] + ldr r1, _081A2C98 + cmp r0, r1 + bls _081A2C8A + adds r0, r1, #0 +_081A2C8A: + pop {r1} + bx r1 + .align 2, 0 +_081A2C90: .4byte 0x03005AF0 +_081A2C94: .4byte 0x00000E1A +_081A2C98: .4byte 0x0000270F + thumb_func_end sub_081A2C70 + + thumb_func_start sub_081A2C9C +sub_081A2C9C: @ 0x081A2C9C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + adds r0, r4, #0 + bl sub_081A2C70 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r4, #0 + beq _081A2CC0 + movs r0, #0x80 + lsls r0, r0, #6 + b _081A2CC4 +_081A2CC0: + movs r0, #0x80 + lsls r0, r0, #5 +_081A2CC4: + bl sub_081A1ACC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081A2CE4 + ldr r0, _081A2CE0 + adds r1, r5, #0 + adds r2, r6, #0 + adds r3, r7, #0 + bl PyramidPrintStreak + b _081A2CF0 + .align 2, 0 +_081A2CE0: .4byte 0x085DD425 +_081A2CE4: + ldr r0, _081A2CF8 + adds r1, r5, #0 + adds r2, r6, #0 + adds r3, r7, #0 + bl PyramidPrintStreak +_081A2CF0: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A2CF8: .4byte 0x085DD42F + thumb_func_end sub_081A2C9C + + thumb_func_start ShowPyramidResultsWindow +ShowPyramidResultsWindow: @ 0x081A2CFC + push {r4, r5, r6, lr} + sub sp, #0xc + ldr r5, _081A2DC8 + ldr r0, _081A2DCC + bl AddWindow + strb r0, [r5] + ldrb r0, [r5] + movs r1, #0 + bl ClearStdWindowAndFrame + ldrb r0, [r5] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r6, _081A2DD0 + ldr r1, _081A2DD4 + adds r0, r6, #0 + bl StringExpandPlaceholders + ldrb r0, [r5] + movs r1, #0x12 + str r1, [sp] + movs r4, #0 + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + adds r2, r6, #0 + movs r3, #0x18 + bl AddTextPrinterParameterized + ldrb r0, [r5] + ldr r2, _081A2DD8 + movs r1, #0x32 + str r1, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #0x10 + bl AddTextPrinterParameterized + ldrb r0, [r5] + ldr r2, _081A2DDC + movs r1, #0x62 + str r1, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #0x10 + bl AddTextPrinterParameterized + movs r5, #0 +_081A2D64: + ldr r6, _081A2DC8 + ldrb r0, [r6] + lsls r3, r4, #1 + adds r3, r3, r4 + lsls r3, r3, #0x1b + lsrs r3, r3, #0x18 + movs r1, #0x52 + str r1, [sp] + str r5, [sp, #4] + str r5, [sp, #8] + movs r1, #1 + ldr r2, _081A2DE0 + bl AddTextPrinterParameterized + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0xa + bls _081A2D64 + movs r0, #0 + movs r1, #0xa + movs r2, #6 + bl sub_081A2C9C + movs r0, #0 + movs r1, #0xa + movs r2, #8 + bl PyramidGetWinStreak + movs r0, #1 + movs r1, #0xa + movs r2, #0xc + bl sub_081A2C9C + movs r0, #1 + movs r1, #0xa + movs r2, #0xe + bl PyramidGetWinStreak + ldrb r0, [r6] + bl PutWindowTilemap + ldrb r0, [r6] + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081A2DC8: .4byte 0x0203A840 +_081A2DCC: .4byte 0x085DD2D0 +_081A2DD0: .4byte 0x02021C7C +_081A2DD4: .4byte 0x085DD3F9 +_081A2DD8: .4byte 0x085DD40E +_081A2DDC: .4byte 0x085DD415 +_081A2DE0: .4byte 0x085DD2E8 + thumb_func_end ShowPyramidResultsWindow + + thumb_func_start PrintHallRecords +PrintHallRecords: @ 0x081A2DE4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + ldr r5, _081A2F54 + ldr r0, _081A2F58 + bl AddWindow + strb r0, [r5] + ldrb r0, [r5] + movs r1, #0 + bl ClearStdWindowAndFrame + ldrb r0, [r5] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r0, _081A2F5C + mov r8, r0 + ldr r1, _081A2F60 + bl StringExpandPlaceholders + ldrb r0, [r5] + movs r4, #0 + str r4, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + mov r2, r8 + movs r3, #0x10 + bl AddTextPrinterParameterized + ldrb r0, [r5] + ldr r2, _081A2F64 + movs r6, #0x20 + str r6, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #0x48 + bl AddTextPrinterParameterized + ldrb r0, [r5] + ldr r2, _081A2F68 + str r6, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #0x70 + bl AddTextPrinterParameterized + ldrb r0, [r5] + ldr r2, _081A2F6C + str r6, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #0x98 + bl AddTextPrinterParameterized + ldrb r0, [r5] + ldr r2, _081A2F70 + str r6, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #0xc0 + bl AddTextPrinterParameterized + ldrb r0, [r5] + ldr r2, _081A2F74 + movs r1, #0x30 + str r1, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #8 + bl AddTextPrinterParameterized + ldrb r0, [r5] + ldr r2, _081A2F78 + movs r1, #0x40 + str r1, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #8 + bl AddTextPrinterParameterized + ldrb r0, [r5] + ldr r2, _081A2F7C + movs r1, #0x50 + str r1, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #8 + bl AddTextPrinterParameterized + ldrb r0, [r5] + ldr r2, _081A2F80 + movs r1, #0x60 + str r1, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #8 + bl AddTextPrinterParameterized + ldrb r0, [r5] + ldr r2, _081A2F84 + movs r1, #0x70 + str r1, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #8 + bl AddTextPrinterParameterized + movs r1, #0 + mov sl, r8 +_081A2EDA: + adds r2, r1, #1 + mov sb, r2 + lsls r0, r1, #0x1c + movs r2, #0xc0 + lsls r2, r2, #0x16 + adds r0, r0, r2 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r6, #0xe0 + lsls r6, r6, #0x16 + lsls r4, r1, #3 + movs r5, #3 +_081A2EF2: + ldr r0, _081A2F88 + ldr r0, [r0] + ldr r1, _081A2F8C + adds r0, r0, r1 + adds r0, r0, r4 + ldrh r1, [r0] + mov r0, sl + movs r2, #1 + movs r3, #4 + bl ConvertIntToDecimalStringN + ldr r7, _081A2F54 + ldrb r0, [r7] + lsrs r3, r6, #0x18 + mov r2, r8 + str r2, [sp] + movs r1, #0 + str r1, [sp, #4] + str r1, [sp, #8] + movs r1, #1 + mov r2, sl + bl AddTextPrinterParameterized + movs r0, #0xa0 + lsls r0, r0, #0x16 + adds r6, r6, r0 + adds r4, #2 + subs r5, #1 + cmp r5, #0 + bge _081A2EF2 + mov r1, sb + cmp r1, #4 + ble _081A2EDA + ldrb r0, [r7] + bl PutWindowTilemap + ldrb r0, [r7] + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A2F54: .4byte 0x0203A840 +_081A2F58: .4byte 0x085DD2D8 +_081A2F5C: .4byte 0x02021C7C +_081A2F60: .4byte 0x085CCEA5 +_081A2F64: .4byte 0x085CCEB9 +_081A2F68: .4byte 0x085CCEBC +_081A2F6C: .4byte 0x085CCEBF +_081A2F70: .4byte 0x085CCEC2 +_081A2F74: .4byte 0x085CAC84 +_081A2F78: .4byte 0x085CAC8A +_081A2F7C: .4byte 0x085CAC90 +_081A2F80: .4byte 0x085CAC95 +_081A2F84: .4byte 0x085CAC9A +_081A2F88: .4byte 0x03005AF0 +_081A2F8C: .4byte 0x00000624 + thumb_func_end PrintHallRecords + + thumb_func_start sub_081A2F90 +sub_081A2F90: @ 0x081A2F90 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + ldr r0, _081A2FD0 + ldr r0, [r0] + ldr r1, _081A2FD4 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r5, r0, #0x1e + ldr r0, _081A2FD8 + bl VarGet + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, _081A2FDC + bl VarGet + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r4, #6 + bls _081A2FC4 + b _081A335E +_081A2FC4: + lsls r0, r4, #2 + ldr r1, _081A2FE0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081A2FD0: .4byte 0x03005AF0 +_081A2FD4: .4byte 0x00000CA9 +_081A2FD8: .4byte 0x000040CF +_081A2FDC: .4byte 0x000040CE +_081A2FE0: .4byte 0x081A2FE4 +_081A2FE4: @ jump table + .4byte _081A3000 @ case 0 + .4byte _081A3138 @ case 1 + .4byte _081A31A0 @ case 2 + .4byte _081A3208 @ case 3 + .4byte _081A3258 @ case 4 + .4byte _081A32DA @ case 5 + .4byte _081A3324 @ case 6 +_081A3000: + ldr r2, _081A30D0 + mov r8, r2 + ldr r1, [r2] + lsls r3, r5, #1 + lsls r4, r6, #2 + adds r2, r3, r4 + movs r7, #0xce + lsls r7, r7, #4 + adds r0, r1, r7 + adds r0, r0, r2 + adds r7, #0x10 + adds r1, r1, r7 + adds r1, r1, r2 + ldrh r0, [r0] + str r3, [sp] + str r4, [sp, #8] + ldrh r2, [r1] + cmp r0, r2 + bhi _081A3028 + b _081A335E +_081A3028: + strh r0, [r1] + cmp r6, #3 + bne _081A309A + movs r3, #0 + ldr r7, _081A30D4 + mov sl, r7 + lsls r0, r5, #2 + str r0, [sp, #4] + mov sb, r8 + movs r1, #0x25 + add r1, sl + mov ip, r1 + ldr r2, _081A30D8 + adds r2, #8 + mov r8, r2 + lsls r7, r5, #3 + ldr r4, _081A30DC +_081A304A: + mov r0, sb + ldr r2, [r0] + adds r0, r3, r7 + adds r2, r2, r4 + adds r2, r2, r0 + mov r1, ip + ldrb r0, [r1] + movs r5, #1 + adds r1, r5, #0 + eors r1, r0 + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r3, r0 + add r0, r8 + ldrb r0, [r0] + strb r0, [r2] + adds r3, #1 + cmp r3, #7 + ble _081A304A + mov r0, sl + adds r0, #0x25 + ldrb r0, [r0] + adds r1, r5, #0 + eors r1, r0 + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _081A30D8 + adds r1, #4 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _081A30D0 + ldr r2, _081A30E0 + ldr r3, [sp, #4] + adds r2, r3, r2 + ldr r1, [r1] + adds r1, r1, r2 + bl SetTrainerId +_081A309A: + ldr r4, _081A30D0 + ldr r0, [r4] + ldr r5, [sp] + ldr r7, [sp, #8] + adds r1, r5, r7 + movs r7, #0xce + lsls r7, r7, #4 + adds r0, r0, r7 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #1 + bhi _081A30B4 + b _081A335E +_081A30B4: + bl sub_080EF330 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081A30C0 + b _081A335E +_081A30C0: + cmp r6, #1 + beq _081A30FE + cmp r6, #1 + bgt _081A30E4 + cmp r6, #0 + beq _081A30EE + b _081A335E + .align 2, 0 +_081A30D0: .4byte 0x03005AF0 +_081A30D4: .4byte 0x02024118 +_081A30D8: .4byte 0x020226A0 +_081A30DC: .4byte 0x00000EE1 +_081A30E0: .4byte 0x00000EF1 +_081A30E4: + cmp r6, #2 + beq _081A3110 + cmp r6, #3 + beq _081A3124 + b _081A335E +_081A30EE: + ldr r0, [r4] + adds r0, r0, r7 + adds r0, r0, r5 + ldrh r0, [r0] + movs r1, #1 + bl sub_080EF3E0 + b _081A335E +_081A30FE: + ldr r0, [r4] + adds r1, r5, #4 + adds r0, r0, r7 + adds r0, r0, r1 + ldrh r0, [r0] + movs r1, #2 + bl sub_080EF3E0 + b _081A335E +_081A3110: + ldr r0, [r4] + adds r1, r5, #0 + adds r1, #8 + adds r0, r0, r7 + adds r0, r0, r1 + ldrh r0, [r0] + movs r1, #3 + bl sub_080EF3E0 + b _081A335E +_081A3124: + ldr r0, [r4] + ldr r1, [sp] + adds r1, #0xc + adds r0, r0, r7 + adds r0, r0, r1 + ldrh r0, [r0] + movs r1, #4 + bl sub_080EF3E0 + b _081A335E +_081A3138: + ldr r7, _081A3184 + ldr r0, [r7] + lsls r5, r5, #1 + mov r8, r5 + lsls r1, r6, #2 + adds r4, r5, r1 + ldr r5, _081A3188 + adds r1, r0, r5 + adds r1, r1, r4 + ldr r2, _081A318C + adds r0, r0, r2 + adds r0, r0, r4 + ldrh r2, [r1] + ldrh r3, [r0] + cmp r2, r3 + bhi _081A315A + b _081A335E +_081A315A: + strh r2, [r0] + ldrh r0, [r1] + cmp r0, #1 + bhi _081A3164 + b _081A335E +_081A3164: + bl sub_080EF330 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081A3170 + b _081A335E +_081A3170: + cmp r6, #0 + bne _081A3190 + ldr r0, [r7] + adds r0, r0, r5 + add r0, r8 + ldrh r0, [r0] + movs r1, #5 + bl sub_080EF3E0 + b _081A335E + .align 2, 0 +_081A3184: .4byte 0x03005AF0 +_081A3188: .4byte 0x00000D0C +_081A318C: .4byte 0x00000D14 +_081A3190: + ldr r0, [r7] + adds r0, r0, r5 + adds r0, r0, r4 + ldrh r0, [r0] + movs r1, #6 + bl sub_080EF3E0 + b _081A335E +_081A31A0: + ldr r7, _081A31F0 + ldr r0, [r7] + lsls r5, r5, #1 + mov r8, r5 + lsls r1, r6, #2 + adds r4, r5, r1 + ldr r5, _081A31F4 + adds r1, r0, r5 + adds r1, r1, r4 + movs r2, #0xdd + lsls r2, r2, #4 + adds r0, r0, r2 + adds r0, r0, r4 + ldrh r2, [r1] + ldrh r3, [r0] + cmp r2, r3 + bhi _081A31C4 + b _081A335E +_081A31C4: + strh r2, [r0] + ldrh r0, [r1] + cmp r0, #1 + bhi _081A31CE + b _081A335E +_081A31CE: + bl sub_080EF330 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081A31DA + b _081A335E +_081A31DA: + cmp r6, #0 + bne _081A31F8 + ldr r0, [r7] + adds r0, r0, r5 + add r0, r8 + ldrh r0, [r0] + movs r1, #0xb + bl sub_080EF3E0 + b _081A335E + .align 2, 0 +_081A31F0: .4byte 0x03005AF0 +_081A31F4: .4byte 0x00000DC8 +_081A31F8: + ldr r0, [r7] + adds r0, r0, r5 + adds r0, r0, r4 + ldrh r0, [r0] + movs r1, #0xc + bl sub_080EF3E0 + b _081A335E +_081A3208: + ldr r6, _081A324C + ldr r1, [r6] + lsls r4, r5, #1 + ldr r5, _081A3250 + adds r0, r1, r5 + adds r0, r0, r4 + ldr r7, _081A3254 + adds r1, r1, r7 + adds r1, r1, r4 + ldrh r2, [r0] + ldrh r3, [r1] + cmp r2, r3 + bhi _081A3224 + b _081A335E +_081A3224: + strh r2, [r1] + ldrh r0, [r0] + cmp r0, #1 + bhi _081A322E + b _081A335E +_081A322E: + bl sub_080EF330 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081A323A + b _081A335E +_081A323A: + ldr r0, [r6] + adds r0, r0, r5 + adds r0, r0, r4 + ldrh r0, [r0] + movs r1, #0xa + bl sub_080EF3E0 + b _081A335E + .align 2, 0 +_081A324C: .4byte 0x03005AF0 +_081A3250: .4byte 0x00000DDA +_081A3254: .4byte 0x00000DDE +_081A3258: + ldr r7, _081A32B4 + mov sb, r7 + mov r0, sb + ldr r2, [r0] + lsls r5, r5, #1 + mov r8, r5 + lsls r0, r6, #2 + adds r4, r5, r0 + ldr r5, _081A32B8 + adds r0, r2, r5 + adds r3, r0, r4 + ldr r1, _081A32BC + adds r0, r2, r1 + adds r0, r0, r4 + ldrh r1, [r3] + ldrh r7, [r0] + cmp r1, r7 + bls _081A335E + strh r1, [r0] + ldr r0, _081A32C0 + adds r1, r2, r0 + adds r1, r1, r4 + ldr r7, _081A32C4 + adds r0, r2, r7 + adds r0, r0, r4 + ldrh r0, [r0] + strh r0, [r1] + ldrh r0, [r3] + cmp r0, #1 + bls _081A335E + bl sub_080EF330 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081A335E + cmp r6, #0 + bne _081A32C8 + mov r1, sb + ldr r0, [r1] + adds r0, r0, r5 + add r0, r8 + ldrh r0, [r0] + movs r1, #7 + bl sub_080EF3E0 + b _081A335E + .align 2, 0 +_081A32B4: .4byte 0x03005AF0 +_081A32B8: .4byte 0x00000DE2 +_081A32BC: .4byte 0x00000DEA +_081A32C0: .4byte 0x00000DFA +_081A32C4: .4byte 0x00000DF2 +_081A32C8: + mov r2, sb + ldr r0, [r2] + adds r0, r0, r5 + adds r0, r0, r4 + ldrh r0, [r0] + movs r1, #8 + bl sub_080EF3E0 + b _081A335E +_081A32DA: + ldr r6, _081A3318 + ldr r1, [r6] + lsls r4, r5, #1 + ldr r5, _081A331C + adds r0, r1, r5 + adds r0, r0, r4 + ldr r3, _081A3320 + adds r1, r1, r3 + adds r1, r1, r4 + ldrh r2, [r0] + ldrh r7, [r1] + cmp r2, r7 + bls _081A335E + strh r2, [r1] + ldrh r0, [r0] + cmp r0, #1 + bls _081A335E + bl sub_080EF330 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081A335E + ldr r0, [r6] + adds r0, r0, r5 + adds r0, r0, r4 + ldrh r0, [r0] + movs r1, #9 + bl sub_080EF3E0 + b _081A335E + .align 2, 0 +_081A3318: .4byte 0x03005AF0 +_081A331C: .4byte 0x00000E04 +_081A3320: .4byte 0x00000E08 +_081A3324: + ldr r6, _081A3370 + ldr r1, [r6] + lsls r4, r5, #1 + ldr r5, _081A3374 + adds r0, r1, r5 + adds r0, r0, r4 + ldr r2, _081A3378 + adds r1, r1, r2 + adds r1, r1, r4 + ldrh r2, [r0] + ldrh r3, [r1] + cmp r2, r3 + bls _081A335E + strh r2, [r1] + ldrh r0, [r0] + cmp r0, #1 + bls _081A335E + bl sub_080EF330 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081A335E + ldr r0, [r6] + adds r0, r0, r5 + adds r0, r0, r4 + ldrh r0, [r0] + movs r1, #0xd + bl sub_080EF3E0 +_081A335E: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A3370: .4byte 0x03005AF0 +_081A3374: .4byte 0x00000E1A +_081A3378: .4byte 0x00000E1E + thumb_func_end sub_081A2F90 + + thumb_func_start sub_081A337C +sub_081A337C: @ 0x081A337C + push {r4, lr} + ldr r0, _081A3398 + bl VarGet + ldr r4, _081A339C + bl sub_081A33A0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081A3398: .4byte 0x000040CF +_081A339C: .4byte 0x02037290 + thumb_func_end sub_081A337C + + thumb_func_start sub_081A33A0 +sub_081A33A0: @ 0x081A33A0 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + movs r0, #0 + mov r8, r0 + ldr r0, _081A33E0 + bl VarGet + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r0, _081A33E4 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + bl GetCurrentFacilityWinStreak + lsls r0, r0, #0x10 + ldr r1, _081A33E8 + mov sb, r1 + lsls r7, r6, #2 + adds r1, #3 + adds r1, r7, r1 + lsrs r0, r0, #0x10 + ldrb r1, [r1] + adds r5, r0, r1 + cmp r4, #0 + beq _081A33EC + movs r0, #0 + b _081A3452 + .align 2, 0 +_081A33E0: .4byte 0x000040CF +_081A33E4: .4byte 0x000040CE +_081A33E8: .4byte 0x085DCB7C +_081A33EC: + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + bl GetPlayerSymbolCountForFacility + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + blt _081A3410 + cmp r1, #1 + bgt _081A3410 + adds r0, r1, r7 + add r0, sb + ldrb r0, [r0] + cmp r5, r0 + bne _081A344C + adds r1, #1 + mov r8, r1 + b _081A344C +_081A3410: + ldr r1, _081A3420 + lsls r2, r6, #2 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r5, r0 + bne _081A3424 + movs r0, #3 + b _081A344A + .align 2, 0 +_081A3420: .4byte 0x085DCB7C +_081A3424: + adds r0, r1, #1 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r5, r0 + bne _081A3434 + movs r1, #4 + mov r8, r1 + b _081A344C +_081A3434: + cmp r5, r0 + ble _081A344C + subs r0, r5, r0 + adds r1, #2 + adds r1, r2, r1 + ldrb r1, [r1] + bl __modsi3 + cmp r0, #0 + bne _081A344C + movs r0, #4 +_081A344A: + mov r8, r0 +_081A344C: + mov r1, r8 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 +_081A3452: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081A33A0 + + thumb_func_start CopyFrontierTrainerText +CopyFrontierTrainerText: @ 0x081A3460 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r2, r0, #0 + lsls r1, r1, #0x10 + lsrs r3, r1, #0x10 + cmp r0, #1 + beq _081A34F6 + cmp r0, #1 + bgt _081A347A + cmp r0, #0 + beq _081A3482 + b _081A368E +_081A347A: + cmp r2, #2 + bne _081A3480 + b _081A35A8 +_081A3480: + b _081A368E +_081A3482: + movs r0, #0xfa + lsls r0, r0, #1 + cmp r3, r0 + bne _081A349C + ldr r0, _081A3494 + ldr r0, [r0] + ldr r1, _081A3498 + b _081A3656 + .align 2, 0 +_081A3494: .4byte 0x03005AF0 +_081A3498: .4byte 0x00000BFC +_081A349C: + ldr r0, _081A34BC + cmp r3, r0 + beq _081A3516 + ldr r0, _081A34C0 + cmp r3, r0 + bhi _081A34C8 + ldr r2, _081A34C4 + movs r0, #0x34 + adds r1, r3, #0 + muls r1, r0, r1 + ldr r0, [r2] + adds r0, r0, r1 + adds r0, #0xc + bl FrontierSpeechToString + b _081A368E + .align 2, 0 +_081A34BC: .4byte 0x000003FE +_081A34C0: .4byte 0x0000012B +_081A34C4: .4byte 0x0203B954 +_081A34C8: + ldr r0, _081A34DC + cmp r3, r0 + bhi _081A34E8 + ldr r1, _081A34E0 + movs r0, #0xec + muls r0, r3, r0 + ldr r1, [r1] + adds r0, r0, r1 + ldr r1, _081A34E4 + b _081A3656 + .align 2, 0 +_081A34DC: .4byte 0x0000018F +_081A34E0: .4byte 0x03005AF0 +_081A34E4: .4byte 0xFFFEF2B8 +_081A34E8: + adds r0, r3, #0 + adds r0, #0x70 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl CopyFriendsApprenticeChallengeText + b _081A368E +_081A34F6: + movs r0, #0xfa + lsls r0, r0, #1 + cmp r3, r0 + bne _081A3510 + ldr r0, _081A3508 + ldr r0, [r0] + ldr r1, _081A350C + b _081A3656 + .align 2, 0 +_081A3508: .4byte 0x03005AF0 +_081A350C: .4byte 0x00000C08 +_081A3510: + ldr r0, _081A3520 + cmp r3, r0 + bne _081A3524 +_081A3516: + movs r0, #0 + bl CopyFrontierBrainText + b _081A368E + .align 2, 0 +_081A3520: .4byte 0x000003FE +_081A3524: + ldr r0, _081A3540 + cmp r3, r0 + bhi _081A3548 + ldr r2, _081A3544 + movs r0, #0x34 + adds r1, r3, #0 + muls r1, r0, r1 + ldr r0, [r2] + adds r0, r0, r1 + adds r0, #0x18 + bl FrontierSpeechToString + b _081A368E + .align 2, 0 +_081A3540: .4byte 0x0000012B +_081A3544: .4byte 0x0203B954 +_081A3548: + ldr r0, _081A356C + cmp r3, r0 + bhi _081A357C + ldr r0, _081A3570 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + bne _081A360C + ldr r1, _081A3574 + movs r0, #0xec + muls r0, r3, r0 + ldr r1, [r1] + adds r0, r0, r1 + ldr r1, _081A3578 + b _081A3656 + .align 2, 0 +_081A356C: .4byte 0x0000018F +_081A3570: .4byte 0x02022C90 +_081A3574: .4byte 0x03005AF0 +_081A3578: .4byte 0xFFFEF2C4 +_081A357C: + ldr r0, _081A359C + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + bne _081A360C + ldr r1, _081A35A0 + lsls r0, r3, #4 + adds r0, r0, r3 + lsls r0, r0, #2 + ldr r1, [r1] + adds r0, r0, r1 + ldr r1, _081A35A4 + b _081A3656 + .align 2, 0 +_081A359C: .4byte 0x02022C90 +_081A35A0: .4byte 0x03005AF0 +_081A35A4: .4byte 0xFFFF96C4 +_081A35A8: + movs r0, #0xfa + lsls r0, r0, #1 + cmp r3, r0 + bne _081A35C0 + ldr r0, _081A35B8 + ldr r0, [r0] + ldr r1, _081A35BC + b _081A3656 + .align 2, 0 +_081A35B8: .4byte 0x03005AF0 +_081A35BC: .4byte 0x00000C14 +_081A35C0: + ldr r0, _081A35D0 + cmp r3, r0 + bne _081A35D4 + movs r0, #1 + bl CopyFrontierBrainText + b _081A368E + .align 2, 0 +_081A35D0: .4byte 0x000003FE +_081A35D4: + ldr r0, _081A35F0 + cmp r3, r0 + bhi _081A35F8 + ldr r2, _081A35F4 + movs r0, #0x34 + adds r1, r3, #0 + muls r1, r0, r1 + ldr r0, [r2] + adds r0, r0, r1 + adds r0, #0x24 + bl FrontierSpeechToString + b _081A368E + .align 2, 0 +_081A35F0: .4byte 0x0000012B +_081A35F4: .4byte 0x0203B954 +_081A35F8: + ldr r0, _081A3618 + cmp r3, r0 + bhi _081A3638 + ldr r0, _081A361C + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + beq _081A3620 +_081A360C: + bl GetRecordedBattleEasyChatSpeech + bl FrontierSpeechToString + b _081A368E + .align 2, 0 +_081A3618: .4byte 0x0000018F +_081A361C: .4byte 0x02022C90 +_081A3620: + ldr r1, _081A3630 + movs r0, #0xec + muls r0, r3, r0 + ldr r1, [r1] + adds r0, r0, r1 + ldr r1, _081A3634 + b _081A3656 + .align 2, 0 +_081A3630: .4byte 0x03005AF0 +_081A3634: .4byte 0xFFFEF2D0 +_081A3638: + ldr r0, _081A3660 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + beq _081A3668 + bl GetTextSpeedInRecordedBattle + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #4 + ldr r1, _081A3664 +_081A3656: + adds r0, r0, r1 + bl FrontierSpeechToString + b _081A368E + .align 2, 0 +_081A3660: .4byte 0x02022C90 +_081A3664: .4byte 0x085DC23E +_081A3668: + ldr r0, _081A3694 + ldr r1, [r0] + ldr r0, _081A3698 + adds r2, r3, r0 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r1, r1, r0 + adds r1, #0xdc + ldrb r0, [r1] + lsls r0, r0, #0x1b + lsrs r3, r0, #0x1b + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #4 + ldr r1, _081A369C + adds r0, r0, r1 + bl FrontierSpeechToString +_081A368E: + pop {r0} + bx r0 + .align 2, 0 +_081A3694: .4byte 0x03005AF0 +_081A3698: .4byte 0xFFFFFE70 +_081A369C: .4byte 0x085DC23E + thumb_func_end CopyFrontierTrainerText + + thumb_func_start sub_081A36A0 +sub_081A36A0: @ 0x081A36A0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _081A3744 + ldr r1, [r0] + ldr r2, _081A3748 + adds r1, r1, r2 + movs r2, #0 + str r2, [r1] + movs r4, #0 + mov sb, r0 + mov r8, sb + movs r6, #0 +_081A36BE: + movs r5, #0 + lsls r7, r4, #2 + mov sl, r7 + adds r0, r4, #1 + mov ip, r0 +_081A36C8: + mov r1, r8 + ldr r2, [r1] + lsls r3, r5, #1 + mov r7, sl + adds r1, r3, r7 + movs r7, #0xce + lsls r7, r7, #4 + adds r0, r2, r7 + adds r0, r0, r1 + strh r6, [r0] + cmp r4, #1 + bgt _081A36F8 + adds r7, #0x2c + adds r0, r2, r7 + adds r0, r0, r1 + strh r6, [r0] + adds r7, #0xbc + adds r0, r2, r7 + adds r0, r0, r1 + strh r6, [r0] + adds r7, #0x1a + adds r0, r2, r7 + adds r0, r0, r1 + strh r6, [r0] +_081A36F8: + cmp r4, #0 + bne _081A3718 + mov r1, r8 + ldr r0, [r1] + ldr r2, _081A374C + adds r1, r0, r2 + adds r1, r1, r3 + strh r4, [r1] + ldr r7, _081A3750 + adds r1, r0, r7 + adds r1, r1, r3 + strh r4, [r1] + ldr r1, _081A3754 + adds r0, r0, r1 + adds r0, r0, r3 + strh r4, [r0] +_081A3718: + adds r5, #1 + cmp r5, #1 + ble _081A36C8 + mov r4, ip + cmp r4, #3 + ble _081A36BE + mov r2, sb + ldr r0, [r2] + ldr r7, _081A3758 + adds r1, r0, r7 + ldrb r0, [r1] + cmp r0, #0 + beq _081A3736 + movs r0, #1 + strb r0, [r1] +_081A3736: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A3744: .4byte 0x03005AF0 +_081A3748: .4byte 0x00000CDC +_081A374C: .4byte 0x00000DDA +_081A3750: .4byte 0x00000E04 +_081A3754: .4byte 0x00000E1A +_081A3758: .4byte 0x00000CA8 + thumb_func_end sub_081A36A0 + + thumb_func_start GetCurrentFacilityWinStreak +GetCurrentFacilityWinStreak: @ 0x081A375C + push {r4, r5, lr} + ldr r0, _081A3790 + ldr r0, [r0] + ldr r1, _081A3794 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r4, r0, #0x1e + ldr r0, _081A3798 + bl VarGet + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, _081A379C + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #6 + bhi _081A385C + lsls r0, r0, #2 + ldr r1, _081A37A0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081A3790: .4byte 0x03005AF0 +_081A3794: .4byte 0x00000CA9 +_081A3798: .4byte 0x000040CE +_081A379C: .4byte 0x000040CF +_081A37A0: .4byte 0x081A37A4 +_081A37A4: @ jump table + .4byte _081A37C0 @ case 0 + .4byte _081A37D4 @ case 1 + .4byte _081A37EC @ case 2 + .4byte _081A3804 @ case 3 + .4byte _081A3818 @ case 4 + .4byte _081A3830 @ case 5 + .4byte _081A3844 @ case 6 +_081A37C0: + ldr r0, _081A37D0 + ldr r0, [r0] + lsls r1, r4, #1 + lsls r2, r5, #2 + adds r1, r1, r2 + movs r2, #0xce + lsls r2, r2, #4 + b _081A384C + .align 2, 0 +_081A37D0: .4byte 0x03005AF0 +_081A37D4: + ldr r0, _081A37E4 + ldr r0, [r0] + lsls r1, r4, #1 + lsls r2, r5, #2 + adds r1, r1, r2 + ldr r2, _081A37E8 + b _081A384C + .align 2, 0 +_081A37E4: .4byte 0x03005AF0 +_081A37E8: .4byte 0x00000D0C +_081A37EC: + ldr r0, _081A37FC + ldr r0, [r0] + lsls r1, r4, #1 + lsls r2, r5, #2 + adds r1, r1, r2 + ldr r2, _081A3800 + b _081A384C + .align 2, 0 +_081A37FC: .4byte 0x03005AF0 +_081A3800: .4byte 0x00000DC8 +_081A3804: + ldr r0, _081A3810 + ldr r0, [r0] + lsls r1, r4, #1 + ldr r2, _081A3814 + b _081A384C + .align 2, 0 +_081A3810: .4byte 0x03005AF0 +_081A3814: .4byte 0x00000DDA +_081A3818: + ldr r0, _081A3828 + ldr r0, [r0] + lsls r1, r4, #1 + lsls r2, r5, #2 + adds r1, r1, r2 + ldr r2, _081A382C + b _081A384C + .align 2, 0 +_081A3828: .4byte 0x03005AF0 +_081A382C: .4byte 0x00000DE2 +_081A3830: + ldr r0, _081A383C + ldr r0, [r0] + lsls r1, r4, #1 + ldr r2, _081A3840 + b _081A384C + .align 2, 0 +_081A383C: .4byte 0x03005AF0 +_081A3840: .4byte 0x00000E04 +_081A3844: + ldr r0, _081A3854 + ldr r0, [r0] + lsls r1, r4, #1 + ldr r2, _081A3858 +_081A384C: + adds r0, r0, r2 + adds r0, r0, r1 + ldrh r0, [r0] + b _081A385E + .align 2, 0 +_081A3854: .4byte 0x03005AF0 +_081A3858: .4byte 0x00000E1A +_081A385C: + movs r0, #0 +_081A385E: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end GetCurrentFacilityWinStreak + + thumb_func_start sub_081A3864 +sub_081A3864: @ 0x081A3864 + push {r4, r5, lr} + movs r2, #0 + ldr r5, _081A388C + ldr r4, _081A3890 + ldr r0, _081A3894 + adds r3, r0, #0 +_081A3870: + ldr r0, [r5] + lsls r1, r2, #1 + adds r0, r0, r4 + adds r0, r0, r1 + ldrh r1, [r0] + orrs r1, r3 + strh r1, [r0] + adds r2, #1 + cmp r2, #0x13 + ble _081A3870 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081A388C: .4byte 0x03005AF0 +_081A3890: .4byte 0x00000CB4 +_081A3894: .4byte 0x0000FFFF + thumb_func_end sub_081A3864 + + thumb_func_start sub_081A3898 +sub_081A3898: @ 0x081A3898 + push {lr} + ldr r0, _081A38AC + ldrh r1, [r0] + ldr r0, _081A38B0 + cmp r1, r0 + bne _081A38B8 + ldr r1, _081A38B4 + movs r0, #1 + b _081A38BC + .align 2, 0 +_081A38AC: .4byte 0x0203886A +_081A38B0: .4byte 0x000003FE +_081A38B4: .4byte 0x02037290 +_081A38B8: + ldr r1, _081A38C4 + movs r0, #0 +_081A38BC: + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_081A38C4: .4byte 0x02037290 + thumb_func_end sub_081A3898 + + thumb_func_start GetPlayerSymbolCountForFacility +GetPlayerSymbolCountForFacility: @ 0x081A38C8 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x17 + ldr r1, _081A38F4 + adds r0, r4, r1 + bl FlagGet + adds r5, r0, #0 + ldr r0, _081A38F8 + adds r4, r4, r0 + adds r0, r4, #0 + bl FlagGet + adds r5, r5, r0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + adds r0, r5, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081A38F4: .4byte 0x000008C4 +_081A38F8: .4byte 0x000008C5 + thumb_func_end GetPlayerSymbolCountForFacility + + thumb_func_start sub_081A38FC +sub_081A38FC: @ 0x081A38FC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + movs r5, #0 + ldr r0, _081A3938 + ldr r0, [r0] + ldr r1, _081A393C + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r4, r0, #0x1e + ldr r0, _081A3940 + bl VarGet + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + ldr r0, _081A3944 + bl VarGet + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r7, #6 + bhi _081A3A10 + lsls r0, r7, #2 + ldr r1, _081A3948 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081A3938: .4byte 0x03005AF0 +_081A393C: .4byte 0x00000CA9 +_081A3940: .4byte 0x000040CF +_081A3944: .4byte 0x000040CE +_081A3948: .4byte 0x081A394C +_081A394C: @ jump table + .4byte _081A3968 @ case 0 + .4byte _081A397C @ case 1 + .4byte _081A3998 @ case 2 + .4byte _081A39B0 @ case 3 + .4byte _081A39C4 @ case 4 + .4byte _081A39DC @ case 5 + .4byte _081A39F8 @ case 6 +_081A3968: + ldr r0, _081A3978 + ldr r0, [r0] + lsls r1, r4, #1 + lsls r2, r6, #2 + adds r1, r1, r2 + movs r2, #0xce + lsls r2, r2, #4 + b _081A3A00 + .align 2, 0 +_081A3978: .4byte 0x03005AF0 +_081A397C: + ldr r0, _081A3990 + ldr r0, [r0] + lsls r1, r4, #1 + lsls r2, r6, #2 + adds r1, r1, r2 + ldr r2, _081A3994 + adds r0, r0, r2 + adds r0, r0, r1 + ldrh r5, [r0] + b _081A3A10 + .align 2, 0 +_081A3990: .4byte 0x03005AF0 +_081A3994: .4byte 0x00000D0C +_081A3998: + ldr r0, _081A39A8 + ldr r0, [r0] + lsls r1, r4, #1 + lsls r2, r6, #2 + adds r1, r1, r2 + ldr r2, _081A39AC + b _081A3A00 + .align 2, 0 +_081A39A8: .4byte 0x03005AF0 +_081A39AC: .4byte 0x00000DC8 +_081A39B0: + ldr r0, _081A39BC + ldr r0, [r0] + lsls r1, r4, #1 + ldr r2, _081A39C0 + b _081A3A00 + .align 2, 0 +_081A39BC: .4byte 0x03005AF0 +_081A39C0: .4byte 0x00000DDA +_081A39C4: + ldr r0, _081A39D4 + ldr r0, [r0] + lsls r1, r4, #1 + lsls r2, r6, #2 + adds r1, r1, r2 + ldr r2, _081A39D8 + b _081A3A00 + .align 2, 0 +_081A39D4: .4byte 0x03005AF0 +_081A39D8: .4byte 0x00000DE2 +_081A39DC: + ldr r0, _081A39F0 + ldr r0, [r0] + lsls r1, r4, #1 + ldr r2, _081A39F4 + adds r0, r0, r2 + adds r0, r0, r1 + ldrh r0, [r0] + movs r1, #0xe + b _081A3A08 + .align 2, 0 +_081A39F0: .4byte 0x03005AF0 +_081A39F4: .4byte 0x00000E04 +_081A39F8: + ldr r0, _081A3AA0 + ldr r0, [r0] + lsls r1, r4, #1 + ldr r2, _081A3AA4 +_081A3A00: + adds r0, r0, r2 + adds r0, r0, r1 + ldrh r0, [r0] + movs r1, #7 +_081A3A08: + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_081A3A10: + cmp r5, #0 + beq _081A3A16 + subs r5, #1 +_081A3A16: + cmp r5, #0x1d + bls _081A3A1C + movs r5, #0x1d +_081A3A1C: + ldr r2, _081A3AA8 + lsls r1, r7, #2 + adds r1, r6, r1 + lsls r0, r5, #3 + subs r0, r0, r5 + lsls r0, r0, #2 + adds r1, r1, r0 + adds r7, r1, r2 + ldrb r5, [r7] + ldr r0, _081A3AAC + mov sb, r0 + ldrh r0, [r0] + ldr r1, _081A3AB0 + mov r8, r1 + cmp r0, r8 + bne _081A3A3E + adds r5, #0xa +_081A3A3E: + ldr r6, _081A3AA0 + ldr r1, [r6] + ldr r4, _081A3AB4 + adds r1, r1, r4 + ldrh r0, [r1] + adds r0, r0, r5 + strh r0, [r1] + ldr r0, _081A3AB8 + adds r1, r5, #0 + movs r2, #0 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r0, [r6] + adds r2, r0, r4 + ldrh r0, [r2] + ldr r1, _081A3ABC + cmp r0, r1 + bls _081A3A66 + strh r1, [r2] +_081A3A66: + ldr r0, [r6] + ldr r4, _081A3AC0 + adds r0, r0, r4 + ldrh r5, [r0] + ldrb r0, [r7] + adds r5, r5, r0 + bl sub_080EF864 + mov r2, sb + ldrh r0, [r2] + cmp r0, r8 + bne _081A3A86 + adds r5, #0xa + movs r0, #0xa + bl sub_080EF864 +_081A3A86: + ldr r0, _081A3AC4 + cmp r5, r0 + ble _081A3A8E + adds r5, r0, #0 +_081A3A8E: + ldr r0, [r6] + adds r0, r0, r4 + strh r5, [r0] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A3AA0: .4byte 0x03005AF0 +_081A3AA4: .4byte 0x00000E1A +_081A3AA8: .4byte 0x085DCEE0 +_081A3AAC: .4byte 0x0203886A +_081A3AB0: .4byte 0x000003FE +_081A3AB4: .4byte 0x00000EB8 +_081A3AB8: .4byte 0x02021C40 +_081A3ABC: .4byte 0x0000270F +_081A3AC0: .4byte 0x00000EBA +_081A3AC4: .4byte 0x0000FFFF + thumb_func_end sub_081A38FC + + thumb_func_start sub_081A3AC8 +sub_081A3AC8: @ 0x081A3AC8 + push {r4, lr} + ldr r0, _081A3AE8 + bl VarGet + ldr r4, _081A3AEC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetPlayerSymbolCountForFacility + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081A3AE8: .4byte 0x000040CF +_081A3AEC: .4byte 0x02037290 + thumb_func_end sub_081A3AC8 + + thumb_func_start sub_081A3AF0 +sub_081A3AF0: @ 0x081A3AF0 + push {r4, lr} + ldr r0, _081A3B18 + bl VarGet + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl GetPlayerSymbolCountForFacility + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081A3B20 + lsls r0, r4, #0x11 + ldr r1, _081A3B1C + adds r0, r0, r1 + lsrs r0, r0, #0x10 + bl FlagSet + b _081A3B2C + .align 2, 0 +_081A3B18: .4byte 0x000040CF +_081A3B1C: .4byte 0x08C40000 +_081A3B20: + lsls r0, r4, #0x11 + ldr r1, _081A3B34 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + bl FlagSet +_081A3B2C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081A3B34: .4byte 0x08C50000 + thumb_func_end sub_081A3AF0 + + thumb_func_start sub_081A3B38 +sub_081A3B38: @ 0x081A3B38 + push {lr} + ldr r0, _081A3B50 + ldr r1, _081A3B54 + ldrh r1, [r1] + ldr r2, [r0] + ands r2, r1 + cmp r2, #0 + beq _081A3B5C + ldr r1, _081A3B58 + movs r0, #1 + strh r0, [r1] + b _081A3B60 + .align 2, 0 +_081A3B50: .4byte 0x02022C90 +_081A3B54: .4byte 0x02037282 +_081A3B58: .4byte 0x02037290 +_081A3B5C: + ldr r0, _081A3B64 + strh r2, [r0] +_081A3B60: + pop {r0} + bx r0 + .align 2, 0 +_081A3B64: .4byte 0x02037290 + thumb_func_end sub_081A3B38 + + thumb_func_start sub_081A3B68 +sub_081A3B68: @ 0x081A3B68 + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r5, r0, #0 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + bl GetSetPokedexFlag + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081A3BFC + cmp r4, #0 + bne _081A3B94 + ldr r0, _081A3BBC + ldr r1, _081A3BC0 + bl StringAppend +_081A3B94: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r6, _081A3BBC + lsls r1, r5, #1 + adds r1, r1, r5 + lsls r1, r1, #1 + ldr r0, _081A3BC4 + adds r1, r1, r0 + adds r0, r6, #0 + bl StringAppend + cmp r4, #5 + beq _081A3BE0 + cmp r4, #5 + bgt _081A3BC8 + cmp r4, #2 + beq _081A3BD2 + b _081A3BF4 + .align 2, 0 +_081A3BBC: .4byte 0x02021C40 +_081A3BC0: .4byte 0x085ABC6C +_081A3BC4: .4byte 0x082EA31C +_081A3BC8: + cmp r4, #8 + beq _081A3BE0 + cmp r4, #0xb + beq _081A3BE0 + b _081A3BF4 +_081A3BD2: + ldr r1, _081A3BDC + adds r0, r6, #0 + bl StringAppend + b _081A3BFC + .align 2, 0 +_081A3BDC: .4byte 0x085ABC70 +_081A3BE0: + ldr r0, _081A3BEC + ldr r1, _081A3BF0 + bl StringAppend + b _081A3BFC + .align 2, 0 +_081A3BEC: .4byte 0x02021C40 +_081A3BF0: .4byte 0x085ABC6E +_081A3BF4: + ldr r0, _081A3C04 + ldr r1, _081A3C08 + bl StringAppend +_081A3BFC: + adds r0, r4, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_081A3C04: .4byte 0x02021C40 +_081A3C08: .4byte 0x085ABC6C + thumb_func_end sub_081A3B68 + + thumb_func_start AppendIfValid +AppendIfValid: @ 0x081A3C0C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r2, [sp, #0x20] + ldr r4, [sp, #0x24] + mov sb, r4 + ldr r4, [sp, #0x28] + mov sl, r4 + ldr r7, [sp, #0x2c] + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov ip, r3 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + movs r2, #0 + movs r0, #0xce + lsls r0, r0, #1 + cmp r4, r0 + beq _081A3CDA + cmp r4, #0 + beq _081A3CDA + ldr r0, _081A3CE8 + ldrh r1, [r0] + ldr r5, _081A3CEC + adds r3, r0, #0 + cmp r1, r5 + beq _081A3C70 + cmp r1, r4 + beq _081A3C64 + adds r1, r3, #0 +_081A3C56: + adds r1, #2 + adds r2, #1 + ldrh r0, [r1] + cmp r0, r5 + beq _081A3C70 + cmp r0, r4 + bne _081A3C56 +_081A3C64: + lsls r0, r2, #1 + adds r0, r0, r3 + ldrh r1, [r0] + ldr r0, _081A3CEC + cmp r1, r0 + bne _081A3CDA +_081A3C70: + mov r0, ip + cmp r0, #0 + bne _081A3C7C + mov r1, r8 + cmp r1, #0x32 + bhi _081A3CDA +_081A3C7C: + movs r2, #0 + ldrb r3, [r7] + cmp r2, r3 + bge _081A3C9C + mov r1, sb + ldrh r0, [r1] + cmp r0, r4 + beq _081A3C9C + adds r5, r3, #0 +_081A3C8E: + adds r1, #2 + adds r2, #1 + cmp r2, r5 + bge _081A3C9C + ldrh r0, [r1] + cmp r0, r4 + bne _081A3C8E +_081A3C9C: + cmp r2, r3 + bne _081A3CDA + cmp r6, #0 + beq _081A3CC6 + movs r2, #0 + cmp r2, r3 + bge _081A3CC2 + mov r1, sl + ldrh r0, [r1] + cmp r0, r6 + beq _081A3CC2 + adds r5, r3, #0 +_081A3CB4: + adds r1, #2 + adds r2, #1 + cmp r2, r5 + bge _081A3CC2 + ldrh r0, [r1] + cmp r0, r6 + bne _081A3CB4 +_081A3CC2: + cmp r2, r3 + bne _081A3CDA +_081A3CC6: + lsls r0, r3, #1 + add r0, sb + strh r4, [r0] + ldrb r0, [r7] + lsls r0, r0, #1 + add r0, sl + strh r6, [r0] + ldrb r0, [r7] + adds r0, #1 + strb r0, [r7] +_081A3CDA: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A3CE8: .4byte 0x085DD48E +_081A3CEC: .4byte 0x0000FFFF + thumb_func_end AppendIfValid + + thumb_func_start sub_081A3CF0 +sub_081A3CF0: @ 0x081A3CF0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x2c + movs r0, #0 + mov sl, r0 + add r4, sp, #0x28 + mov r1, sl + strb r1, [r4] + ldr r0, _081A3D20 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r4 + cmp r0, #1 + beq _081A3D32 + cmp r0, #1 + bgt _081A3D24 + cmp r0, #0 + beq _081A3D2C + b _081A3D46 + .align 2, 0 +_081A3D20: .4byte 0x000040CE +_081A3D24: + cmp r0, #3 + bgt _081A3D46 + movs r0, #2 + b _081A3D44 +_081A3D2C: + movs r1, #3 + mov sl, r1 + b _081A3D46 +_081A3D32: + ldr r0, _081A3DB4 + bl VarGet + lsls r0, r0, #0x10 + movs r1, #3 + mov sl, r1 + cmp r0, #0 + bne _081A3D46 + movs r0, #4 +_081A3D44: + mov sl, r0 +_081A3D46: + movs r1, #0 + mov r8, r1 +_081A3D4A: + movs r0, #0x64 + mov r4, r8 + muls r4, r0, r4 + ldr r0, _081A3DB8 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + adds r0, r4, #0 + movs r1, #0xc + bl GetMonData + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r0, r4, #0 + movs r1, #0x38 + bl GetMonData + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, _081A3DB4 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #6 + bne _081A3DC0 + cmp r6, #0 + bne _081A3DDC + ldr r0, _081A3DBC + ldrb r3, [r0] + str r5, [sp] + add r0, sp, #0x10 + str r0, [sp, #4] + add r0, sp, #0x1c + str r0, [sp, #8] + mov r1, sb + str r1, [sp, #0xc] + adds r0, r7, #0 + movs r1, #0 + adds r2, r4, #0 + bl AppendIfValid + b _081A3DDC + .align 2, 0 +_081A3DB4: .4byte 0x000040CF +_081A3DB8: .4byte 0x02024190 +_081A3DBC: .4byte 0x02037290 +_081A3DC0: + ldr r0, _081A3E44 + ldrb r3, [r0] + str r5, [sp] + add r0, sp, #0x10 + str r0, [sp, #4] + add r0, sp, #0x1c + str r0, [sp, #8] + mov r1, sb + str r1, [sp, #0xc] + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + bl AppendIfValid +_081A3DDC: + movs r0, #1 + add r8, r0 + mov r1, r8 + cmp r1, #5 + ble _081A3D4A + mov r1, sb + ldrb r0, [r1] + cmp r0, sl + bge _081A3E6C + ldr r1, _081A3E48 + movs r0, #0xff + strb r0, [r1] + ldr r1, _081A3E4C + movs r0, #1 + strh r0, [r1] + movs r0, #0 + mov r1, sb + strb r0, [r1] + ldr r2, _081A3E50 + ldrh r0, [r2] + ldr r1, _081A3E54 + cmp r0, r1 + beq _081A3E22 + mov r5, sb + adds r6, r1, #0 + adds r4, r2, #0 +_081A3E10: + ldrh r0, [r4] + ldrb r1, [r5] + bl sub_081A3B68 + strb r0, [r5] + adds r4, #2 + ldrh r0, [r4] + cmp r0, r6 + bne _081A3E10 +_081A3E22: + ldr r4, _081A3E48 + adds r0, r4, #0 + bl StringLength + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + subs r0, #1 + adds r0, r0, r4 + movs r1, #0xff + strb r1, [r0] + mov r1, sb + ldrb r0, [r1] + cmp r0, #2 + bhi _081A3E5C + ldr r1, _081A3E58 + b _081A3E5E + .align 2, 0 +_081A3E44: .4byte 0x02037290 +_081A3E48: .4byte 0x02021C40 +_081A3E4C: .4byte 0x02037280 +_081A3E50: .4byte 0x085DD48E +_081A3E54: .4byte 0x0000FFFF +_081A3E58: .4byte 0x085ABC72 +_081A3E5C: + ldr r1, _081A3E68 +_081A3E5E: + adds r0, r4, #0 + bl StringAppend + b _081A3E8E + .align 2, 0 +_081A3E68: .4byte 0x085ABC75 +_081A3E6C: + ldr r1, _081A3EA0 + movs r0, #0 + strh r0, [r1] + ldr r0, _081A3EA4 + ldr r2, [r0] + ldr r0, _081A3EA8 + ldrb r0, [r0] + ldr r1, _081A3EAC + adds r2, r2, r1 + movs r1, #3 + ands r1, r0 + ldrb r3, [r2] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] +_081A3E8E: + add sp, #0x2c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A3EA0: .4byte 0x02037280 +_081A3EA4: .4byte 0x03005AF0 +_081A3EA8: .4byte 0x02037290 +_081A3EAC: .4byte 0x00000CA9 + thumb_func_end sub_081A3CF0 + + thumb_func_start sub_081A3EB0 +sub_081A3EB0: @ 0x081A3EB0 + push {lr} + bl ValidateEReaderTrainer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081A3EB0 + + thumb_func_start sub_081A3EBC +sub_081A3EBC: @ 0x081A3EBC + push {r4, r5, r6, r7, lr} + ldr r0, _081A3EF0 + ldr r0, [r0] + ldr r1, _081A3EF4 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r4, r0, #0x1e + ldr r0, _081A3EF8 + bl VarGet + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, _081A3EFC + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #6 + bls _081A3EE6 + b _081A4020 +_081A3EE6: + lsls r0, r0, #2 + ldr r1, _081A3F00 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081A3EF0: .4byte 0x03005AF0 +_081A3EF4: .4byte 0x00000CA9 +_081A3EF8: .4byte 0x000040CE +_081A3EFC: .4byte 0x000040CF +_081A3F00: .4byte 0x081A3F04 +_081A3F04: @ jump table + .4byte _081A3F20 @ case 0 + .4byte _081A3F68 @ case 1 + .4byte _081A3FA8 @ case 2 + .4byte _081A3FC4 @ case 3 + .4byte _081A3FD8 @ case 4 + .4byte _081A3FF4 @ case 5 + .4byte _081A4008 @ case 6 +_081A3F20: + ldr r7, _081A3F5C + ldr r0, [r7] + lsls r4, r4, #1 + lsls r1, r5, #2 + adds r1, r4, r1 + movs r6, #0xce + lsls r6, r6, #4 + adds r3, r0, r6 + adds r2, r3, r1 + ldrh r1, [r2] + ldr r0, _081A3F60 + cmp r1, r0 + bhi _081A4020 + adds r0, r1, #1 + strh r0, [r2] + cmp r5, #0 + bne _081A4020 + adds r0, r3, r4 + ldrh r1, [r0] + movs r0, #0x20 + bl SetGameStat + ldr r1, [r7] + adds r0, r1, r6 + adds r0, r0, r4 + ldrh r0, [r0] + ldr r2, _081A3F64 + adds r1, r1, r2 + b _081A401E + .align 2, 0 +_081A3F5C: .4byte 0x03005AF0 +_081A3F60: .4byte 0x0000270E +_081A3F64: .4byte 0x00000D02 +_081A3F68: + ldr r6, _081A3F98 + ldr r0, [r6] + lsls r2, r4, #1 + lsls r1, r5, #2 + adds r1, r2, r1 + ldr r3, _081A3F9C + adds r0, r0, r3 + adds r3, r0, r1 + ldrh r0, [r3] + ldr r2, _081A3FA0 + cmp r0, r2 + bhi _081A3F84 + adds r0, #1 + strh r0, [r3] +_081A3F84: + ldr r0, [r6] + ldr r3, _081A3FA4 + adds r0, r0, r3 + adds r1, r0, r1 + ldrh r0, [r1] + cmp r0, r2 + bhi _081A4020 + adds r0, #1 + b _081A401E + .align 2, 0 +_081A3F98: .4byte 0x03005AF0 +_081A3F9C: .4byte 0x00000D0C +_081A3FA0: .4byte 0x0000270E +_081A3FA4: .4byte 0x00000D1C +_081A3FA8: + ldr r0, _081A3FBC + ldr r2, [r0] + lsls r0, r4, #1 + lsls r1, r5, #2 + adds r0, r0, r1 + ldr r1, _081A3FC0 + adds r2, r2, r1 + adds r1, r2, r0 + b _081A4014 + .align 2, 0 +_081A3FBC: .4byte 0x03005AF0 +_081A3FC0: .4byte 0x00000DC8 +_081A3FC4: + ldr r0, _081A3FD0 + ldr r0, [r0] + lsls r1, r4, #1 + ldr r2, _081A3FD4 + adds r0, r0, r2 + b _081A4012 + .align 2, 0 +_081A3FD0: .4byte 0x03005AF0 +_081A3FD4: .4byte 0x00000DDA +_081A3FD8: + ldr r0, _081A3FEC + ldr r2, [r0] + lsls r0, r4, #1 + lsls r1, r5, #2 + adds r0, r0, r1 + ldr r3, _081A3FF0 + adds r2, r2, r3 + adds r1, r2, r0 + b _081A4014 + .align 2, 0 +_081A3FEC: .4byte 0x03005AF0 +_081A3FF0: .4byte 0x00000DE2 +_081A3FF4: + ldr r0, _081A4000 + ldr r0, [r0] + lsls r1, r4, #1 + ldr r2, _081A4004 + adds r0, r0, r2 + b _081A4012 + .align 2, 0 +_081A4000: .4byte 0x03005AF0 +_081A4004: .4byte 0x00000E04 +_081A4008: + ldr r0, _081A4028 + ldr r0, [r0] + lsls r1, r4, #1 + ldr r3, _081A402C + adds r0, r0, r3 +_081A4012: + adds r1, r0, r1 +_081A4014: + ldrh r3, [r1] + ldr r0, _081A4030 + cmp r3, r0 + bhi _081A4020 + adds r0, r3, #1 +_081A401E: + strh r0, [r1] +_081A4020: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A4028: .4byte 0x03005AF0 +_081A402C: .4byte 0x00000E1A +_081A4030: .4byte 0x0000270E + thumb_func_end sub_081A3EBC + + thumb_func_start sub_081A4034 +sub_081A4034: @ 0x081A4034 + push {r4, r5, r6, lr} + sub sp, #4 + movs r4, #0 + ldr r6, _081A408C + movs r5, #0x64 +_081A403E: + ldr r0, _081A4090 + ldr r0, [r0] + lsls r1, r4, #1 + ldr r2, _081A4094 + adds r0, r0, r2 + adds r1, r0, r1 + ldrh r0, [r1] + cmp r0, #0 + beq _081A407A + adds r1, r0, #0 + muls r1, r5, r1 + movs r0, #0xea + lsls r0, r0, #1 + adds r1, r1, r0 + ldr r0, [r6] + adds r0, r0, r1 + movs r1, #0xc + movs r2, #0 + bl GetMonData + mov r1, sp + strh r0, [r1] + adds r0, r4, #0 + muls r0, r5, r0 + ldr r1, _081A4098 + adds r0, r0, r1 + movs r1, #0xc + mov r2, sp + bl SetMonData +_081A407A: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _081A403E + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081A408C: .4byte 0x03005AEC +_081A4090: .4byte 0x03005AF0 +_081A4094: .4byte 0x00000CAA +_081A4098: .4byte 0x02024190 + thumb_func_end sub_081A4034 + + thumb_func_start PrintAligned +PrintAligned: @ 0x081A409C + push {r4, lr} + ldr r4, _081A40BC + bl MoveRecordedBattleToSaveData + strh r0, [r4] + ldr r0, _081A40C0 + ldr r1, [r0] + ldr r0, _081A40C4 + adds r1, r1, r0 + ldrb r0, [r1] + movs r2, #8 + orrs r0, r2 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081A40BC: .4byte 0x02037290 +_081A40C0: .4byte 0x03005AF0 +_081A40C4: .4byte 0x00000CA9 + thumb_func_end PrintAligned + + thumb_func_start GetFrontierBrainTrainerClass +GetFrontierBrainTrainerClass: @ 0x081A40C8 + push {lr} + ldr r0, _081A40D8 + ldrh r0, [r0] + cmp r0, #0 + beq _081A40DC + cmp r0, #1 + beq _081A40F0 + b _081A40FA + .align 2, 0 +_081A40D8: .4byte 0x02037282 +_081A40DC: + ldr r0, _081A40E8 + ldr r1, _081A40EC + ldrh r1, [r1] + bl GetFrontierTrainerName + b _081A40FA + .align 2, 0 +_081A40E8: .4byte 0x02021C40 +_081A40EC: .4byte 0x0203886A +_081A40F0: + ldr r0, _081A4100 + ldr r1, _081A4104 + ldrh r1, [r1] + bl GetFrontierTrainerName +_081A40FA: + pop {r0} + bx r0 + .align 2, 0 +_081A4100: .4byte 0x02021C54 +_081A4104: .4byte 0x0203886A + thumb_func_end GetFrontierBrainTrainerClass + + thumb_func_start sub_081A4108 +sub_081A4108: @ 0x081A4108 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + movs r0, #0 + str r0, [sp] +_081A4118: + ldr r1, _081A41F8 + ldr r0, [r1] + ldr r2, [sp] + lsls r1, r2, #1 + ldr r4, _081A41FC + adds r0, r0, r4 + adds r0, r0, r1 + ldrh r0, [r0] + subs r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r1 + adds r2, #1 + str r2, [sp, #4] + cmp r0, #5 + bhi _081A41DA + movs r6, #0 + ldr r0, [sp] + movs r2, #0x64 + adds r1, r0, #0 + muls r1, r2, r1 + ldr r0, _081A4200 + adds r7, r1, r0 +_081A4146: + movs r5, #0 + movs r4, #0xd + adds r4, r4, r6 + mov r8, r4 + adds r0, r6, #1 + mov sl, r0 +_081A4152: + ldr r1, _081A41F8 + ldr r0, [r1] + ldr r2, _081A41FC + adds r0, r0, r2 + add r0, sb + ldrh r0, [r0] + movs r4, #0x64 + adds r1, r0, #0 + muls r1, r4, r1 + movs r0, #0xea + lsls r0, r0, #1 + adds r1, r1, r0 + ldr r2, _081A4204 + ldr r0, [r2] + adds r0, r0, r1 + adds r1, r5, #0 + adds r1, #0xd + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + adds r0, r7, #0 + mov r1, r8 + movs r2, #0 + bl GetMonData + cmp r4, r0 + beq _081A4194 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #3 + bls _081A4152 +_081A4194: + cmp r5, #4 + bne _081A41A2 + adds r0, r7, #0 + movs r1, #0xa6 + adds r2, r6, #0 + bl SetMonMoveSlot +_081A41A2: + mov r4, sl + lsls r0, r4, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #3 + bls _081A4146 + ldr r0, _081A4204 + ldr r0, [r0] + ldr r2, _081A41F8 + ldr r1, [r2] + ldr r4, _081A41FC + adds r1, r1, r4 + add r1, sb + ldrh r1, [r1] + subs r1, #1 + movs r3, #0x64 + muls r1, r3, r1 + adds r0, r0, r1 + movs r1, #0x8e + lsls r1, r1, #2 + adds r0, r0, r1 + ldr r2, _081A4200 + ldr r4, [sp] + adds r1, r4, #0 + muls r1, r3, r1 + adds r1, r1, r2 + movs r2, #0x64 + bl memcpy +_081A41DA: + ldr r1, [sp, #4] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + cmp r0, #3 + bls _081A4118 + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A41F8: .4byte 0x03005AF0 +_081A41FC: .4byte 0x00000CAA +_081A4200: .4byte 0x02024190 +_081A4204: .4byte 0x03005AEC + thumb_func_end sub_081A4108 + + thumb_func_start GetFrontierBrainTrainerPicIndex +GetFrontierBrainTrainerPicIndex: @ 0x081A4208 + push {lr} + ldr r0, _081A421C + bl VarGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl SetFrontierBrainEventObjGfx + pop {r0} + bx r0 + .align 2, 0 +_081A421C: .4byte 0x000040CF + thumb_func_end GetFrontierBrainTrainerPicIndex + + thumb_func_start Print1PRecord +Print1PRecord: @ 0x081A4220 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + mov sb, r1 + adds r6, r3, #0 + ldr r1, _081A42DC + mov sl, r1 + ldrb r5, [r1] + lsls r4, r0, #1 + ldr r1, _081A42E0 + adds r4, r4, r1 + mov r1, sb + lsls r3, r1, #0x1b + lsrs r3, r3, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + adds r2, r2, r1 + lsls r2, r2, #3 + adds r2, #2 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + str r7, [sp] + movs r0, #0 + mov r8, r0 + str r0, [sp, #4] + str r0, [sp, #8] + adds r0, r5, #0 + movs r1, #1 + adds r2, r4, #0 + bl AddTextPrinterParameterized + movs r0, #0xff + strb r0, [r6, #0xd] + ldrh r0, [r6, #4] + cmp r0, #0 + beq _081A42CC + mov r1, sl + ldrb r0, [r1] + adds r2, r6, #6 + mov r3, sb + adds r3, #2 + lsls r3, r3, #0x1b + lsrs r3, r3, #0x18 + str r7, [sp] + mov r1, r8 + str r1, [sp, #4] + str r1, [sp, #8] + movs r1, #1 + bl AddTextPrinterParameterized + ldrh r1, [r6, #4] + ldr r0, _081A42E4 + cmp r1, r0 + bls _081A4294 + adds r1, r0, #0 +_081A4294: + ldr r0, _081A42E8 + movs r2, #1 + movs r3, #4 + bl ConvertIntToDecimalStringN + ldr r4, _081A42EC + ldr r1, _081A42F0 + ldr r0, [sp, #0x2c] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl StringExpandPlaceholders + mov r1, sl + ldrb r0, [r1] + mov r3, sb + adds r3, #0xe + lsls r3, r3, #0x1b + lsrs r3, r3, #0x18 + str r7, [sp] + mov r1, r8 + str r1, [sp, #4] + str r1, [sp, #8] + movs r1, #1 + adds r2, r4, #0 + bl AddTextPrinterParameterized +_081A42CC: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A42DC: .4byte 0x0203A840 +_081A42E0: .4byte 0x085DD564 +_081A42E4: .4byte 0x0000270F +_081A42E8: .4byte 0x02021C54 +_081A42EC: .4byte 0x02021C7C +_081A42F0: .4byte 0x085DD53C + thumb_func_end Print1PRecord + + thumb_func_start FactoryPrintPrevOrCurrentStreak +FactoryPrintPrevOrCurrentStreak: @ 0x081A42F4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + mov r8, r1 + adds r4, r2, #0 + adds r6, r3, #0 + ldr r1, _081A43E0 + mov sb, r1 + ldrb r5, [r1] + lsls r2, r0, #1 + ldr r1, _081A43E4 + adds r2, r2, r1 + mov r1, r8 + lsls r3, r1, #0x1b + lsrs r3, r3, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + adds r4, r4, r1 + lsls r0, r4, #3 + adds r0, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + str r0, [sp] + movs r7, #0 + str r7, [sp, #4] + str r7, [sp, #8] + adds r0, r5, #0 + movs r1, #1 + bl AddTextPrinterParameterized + ldrh r0, [r6, #8] + cmp r0, #0 + beq _081A43D0 + movs r0, #0xff + strb r0, [r6, #0x11] + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r6, #0x19] + mov r1, sb + ldrb r0, [r1] + adds r2, r6, #0 + adds r2, #0xa + mov r3, r8 + adds r3, #2 + lsls r3, r3, #0x1b + lsrs r3, r3, #0x18 + subs r1, r4, #1 + lsls r1, r1, #3 + adds r1, #2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp] + str r7, [sp, #4] + str r7, [sp, #8] + movs r1, #1 + bl AddTextPrinterParameterized + mov r1, sb + ldrb r0, [r1] + adds r2, r6, #0 + adds r2, #0x12 + mov r3, r8 + adds r3, #4 + lsls r3, r3, #0x1b + lsrs r3, r3, #0x18 + adds r1, r4, #1 + lsls r1, r1, #3 + adds r1, #2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp] + str r7, [sp, #4] + str r7, [sp, #8] + movs r1, #1 + bl AddTextPrinterParameterized + ldrh r1, [r6, #8] + ldr r0, _081A43E8 + cmp r1, r0 + bls _081A439E + adds r1, r0, #0 +_081A439E: + ldr r0, _081A43EC + movs r2, #1 + movs r3, #4 + bl ConvertIntToDecimalStringN + ldr r4, _081A43F0 + ldr r0, _081A43F4 + ldr r1, [r0, #0x24] + adds r0, r4, #0 + bl StringExpandPlaceholders + mov r1, sb + ldrb r0, [r1] + mov r3, r8 + adds r3, #0xe + lsls r3, r3, #0x1b + lsrs r3, r3, #0x18 + mov r1, sl + str r1, [sp] + str r7, [sp, #4] + str r7, [sp, #8] + movs r1, #1 + adds r2, r4, #0 + bl AddTextPrinterParameterized +_081A43D0: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A43E0: .4byte 0x0203A840 +_081A43E4: .4byte 0x085DD564 +_081A43E8: .4byte 0x0000270F +_081A43EC: .4byte 0x02021C54 +_081A43F0: .4byte 0x02021C7C +_081A43F4: .4byte 0x085DD53C + thumb_func_end FactoryPrintPrevOrCurrentStreak + + thumb_func_start Fill1PRecords +Fill1PRecords: @ 0x081A43F8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x44 + mov sb, r0 + mov sl, r1 + str r2, [sp, #0x40] + movs r0, #0xac + lsls r0, r0, #1 + bl AllocZeroed + mov r8, r0 + bl GetPlayerHallRecords + add r0, sp, #0x30 + mov ip, r0 + ldr r0, _081A44C8 + ldr r2, [r0] + ldr r3, [sp, #0x40] + lsls r1, r3, #1 + adds r1, r1, r3 + lsls r1, r1, #4 + mov r4, sl + lsls r0, r4, #1 + add r0, sl + lsls r0, r0, #5 + adds r1, r1, r0 + adds r4, r1, r2 + mov r3, sp + movs r2, #2 +_081A4438: + adds r0, r3, #0 + movs r5, #0x87 + lsls r5, r5, #2 + adds r1, r4, r5 + ldm r1!, {r5, r6, r7} + stm r0!, {r5, r6, r7} + ldr r1, [r1] + str r1, [r0] + adds r4, #0x10 + adds r3, #0x10 + subs r2, #1 + cmp r2, #0 + bge _081A4438 + ldr r6, [sp, #0x40] + lsls r0, r6, #4 + mov r7, sl + lsls r1, r7, #5 + adds r0, r0, r1 + mov r1, ip + add r0, r8 + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldr r0, [r0] + str r0, [r1] + movs r2, #0 +_081A446A: + movs r1, #0 + movs r4, #0 + movs r3, #0 + lsls r5, r2, #4 + adds r6, r2, #1 + mov r2, sp +_081A4476: + ldrh r0, [r2, #4] + cmp r0, r1 + ble _081A4480 + adds r4, r3, #0 + adds r1, r0, #0 +_081A4480: + adds r2, #0x10 + adds r3, #1 + cmp r3, #3 + ble _081A4476 + mov r0, sp + ldrh r0, [r0, #0x34] + cmp r0, r1 + blt _081A4492 + movs r4, #3 +_081A4492: + lsls r0, r4, #4 + mov r7, sp + adds r2, r7, r0 + mov r0, sb + adds r1, r5, r0 + adds r0, r2, #0 + ldm r0!, {r3, r4, r5} + stm r1!, {r3, r4, r5} + ldr r0, [r0] + str r0, [r1] + movs r0, #0 + strh r0, [r2, #4] + adds r2, r6, #0 + cmp r2, #2 + ble _081A446A + mov r0, r8 + bl Free + add sp, #0x44 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A44C8: .4byte 0x03005AF0 + thumb_func_end Fill1PRecords + + thumb_func_start Fill2PRecords +Fill2PRecords: @ 0x081A44CC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x74 + mov sb, r0 + mov sl, r1 + movs r0, #0xac + lsls r0, r0, #1 + bl AllocZeroed + mov r8, r0 + bl GetPlayerHallRecords + mov r0, sp + adds r0, #0x54 + str r0, [sp, #0x70] + add r1, sp, #0x5c + mov ip, r1 + ldr r0, _081A45A8 + ldr r1, [r0] + movs r0, #0x54 + mov r2, sl + muls r2, r0, r2 + adds r0, r2, #0 + adds r3, r0, r1 + mov r2, sp + movs r4, #2 +_081A4506: + adds r0, r2, #0 + ldr r5, _081A45AC + adds r1, r3, r5 + ldm r1!, {r5, r6, r7} + stm r0!, {r5, r6, r7} + ldm r1!, {r5, r6, r7} + stm r0!, {r5, r6, r7} + ldr r1, [r1] + str r1, [r0] + adds r3, #0x1c + adds r2, #0x1c + subs r4, #1 + cmp r4, #0 + bge _081A4506 + mov r6, sl + lsls r0, r6, #3 + subs r0, r0, r6 + lsls r0, r0, #2 + add r0, r8 + ldr r1, [sp, #0x70] + movs r7, #0x90 + lsls r7, r7, #1 + adds r0, r0, r7 + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldm r0!, {r5, r6, r7} + stm r1!, {r5, r6, r7} + ldr r0, [r0] + str r0, [r1] + movs r4, #0 +_081A4542: + movs r1, #0 + movs r5, #0 + movs r3, #0 + lsls r6, r4, #3 + adds r7, r4, #1 + mov r2, sp +_081A454E: + ldrh r0, [r2, #8] + cmp r0, r1 + ble _081A4558 + adds r5, r3, #0 + adds r1, r0, #0 +_081A4558: + adds r2, #0x1c + adds r3, #1 + cmp r3, #2 + ble _081A454E + mov r2, ip + ldrh r0, [r2] + cmp r0, r1 + blt _081A456A + movs r5, #3 +_081A456A: + subs r1, r6, r4 + lsls r1, r1, #2 + lsls r0, r5, #3 + subs r0, r0, r5 + lsls r0, r0, #2 + mov r3, sp + adds r2, r3, r0 + add r1, sb + adds r0, r2, #0 + ldm r0!, {r4, r5, r6} + stm r1!, {r4, r5, r6} + ldm r0!, {r3, r4, r5} + stm r1!, {r3, r4, r5} + ldr r0, [r0] + str r0, [r1] + movs r0, #0 + strh r0, [r2, #8] + adds r4, r7, #0 + cmp r4, #2 + ble _081A4542 + mov r0, r8 + bl Free + add sp, #0x74 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A45A8: .4byte 0x03005AF0 +_081A45AC: .4byte 0x0000057C + thumb_func_end Fill2PRecords + + thumb_func_start DomePrintPrevOrCurrentStreak +DomePrintPrevOrCurrentStreak: @ 0x081A45B0 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x90 + adds r7, r0, #0 + mov sb, r1 + ldr r0, _081A464C + ldr r4, _081A4650 + lsls r5, r7, #3 + adds r1, r5, r4 + ldr r1, [r1] + bl StringCopy + ldr r0, _081A4654 + mov r8, r0 + adds r4, #4 + adds r5, r5, r4 + ldr r1, [r5] + bl StringExpandPlaceholders + ldr r5, _081A4658 + ldrb r0, [r5] + movs r6, #2 + str r6, [sp] + movs r4, #0 + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + mov r2, r8 + movs r3, #0xc + bl AddTextPrinterParameterized + ldrb r0, [r5] + ldr r2, _081A465C + mov r3, sb + lsls r1, r3, #2 + adds r1, r1, r2 + ldr r2, [r1] + str r6, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #0x84 + bl AddTextPrinterParameterized + cmp r7, #9 + bne _081A4668 + ldr r2, _081A4660 + ldr r0, [r2] + ldr r1, _081A4664 + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] + ldr r0, [r2] + movs r3, #0xef + lsls r3, r3, #4 + adds r0, r0, r3 + movs r1, #1 + rsbs r1, r1, #0 + strb r1, [r0] + add r4, sp, #0x3c + adds r0, r4, #0 + mov r1, sb + bl Fill2PRecords + movs r5, #0 +_081A4636: + adds r0, r5, #0 + movs r1, #1 + movs r2, #4 + adds r3, r4, #0 + bl FactoryPrintPrevOrCurrentStreak + adds r4, #0x1c + adds r5, #1 + cmp r5, #2 + ble _081A4636 + b _081A468C + .align 2, 0 +_081A464C: .4byte 0x02021C40 +_081A4650: .4byte 0x085DD4A4 +_081A4654: .4byte 0x02021C7C +_081A4658: .4byte 0x0203A840 +_081A465C: .4byte 0x085DD504 +_081A4660: .4byte 0x03005AF0 +_081A4664: .4byte 0x00000EE8 +_081A4668: + add r0, sp, #0xc + adds r1, r7, #0 + mov r2, sb + bl Fill1PRecords + movs r5, #0 + add r4, sp, #0xc +_081A4676: + str r7, [sp] + adds r0, r5, #0 + movs r1, #1 + movs r2, #4 + adds r3, r4, #0 + bl Print1PRecord + adds r4, #0x10 + adds r5, #1 + cmp r5, #2 + ble _081A4676 +_081A468C: + add sp, #0x90 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end DomePrintPrevOrCurrentStreak + + thumb_func_start ShowRankingHallRecordsWindow +ShowRankingHallRecordsWindow: @ 0x081A469C + push {r4, lr} + ldr r4, _081A46D8 + ldr r0, _081A46DC + bl AddWindow + strb r0, [r4] + ldrb r0, [r4] + movs r1, #0 + bl ClearStdWindowAndFrame + ldrb r0, [r4] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r0, _081A46E0 + ldrh r0, [r0] + movs r1, #0 + bl DomePrintPrevOrCurrentStreak + ldrb r0, [r4] + bl PutWindowTilemap + ldrb r0, [r4] + movs r1, #3 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081A46D8: .4byte 0x0203A840 +_081A46DC: .4byte 0x085DD2E0 +_081A46E0: .4byte 0x02037282 + thumb_func_end ShowRankingHallRecordsWindow + + thumb_func_start ScrollRankingHallRecordsWindow +ScrollRankingHallRecordsWindow: @ 0x081A46E4 + push {r4, lr} + ldr r4, _081A4708 + ldrb r0, [r4] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r0, _081A470C + ldrh r0, [r0] + movs r1, #1 + bl DomePrintPrevOrCurrentStreak + ldrb r0, [r4] + movs r1, #2 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081A4708: .4byte 0x0203A840 +_081A470C: .4byte 0x02037282 + thumb_func_end ScrollRankingHallRecordsWindow + + thumb_func_start ClearRankingHallRecords +ClearRankingHallRecords: @ 0x081A4710 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + movs r1, #0 + ldr r3, _081A4814 +_081A4720: + movs r6, #0 + lsls r0, r1, #1 + adds r2, r1, #1 + mov sl, r2 + adds r0, r0, r1 + lsls r0, r0, #5 + mov r8, r0 + movs r7, #0 + movs r0, #0x87 + lsls r0, r0, #2 + add r0, r8 + mov sb, r0 +_081A4738: + movs r5, #0 + adds r2, r7, #0 + mov r1, r8 + adds r4, r7, r1 +_081A4740: + ldr r0, [r3] + add r0, sb + adds r0, r0, r2 + lsls r1, r5, #4 + adds r0, r0, r1 + movs r1, #0 + str r2, [sp] + str r3, [sp, #4] + bl CopyTrainerId + ldr r3, [sp, #4] + ldr r0, [r3] + adds r0, r0, r4 + ldr r1, _081A4818 + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] + ldr r0, [r3] + adds r0, r0, r4 + movs r1, #0x88 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0] + adds r4, #0x10 + adds r5, #1 + ldr r2, [sp] + cmp r5, #2 + ble _081A4740 + adds r7, #0x30 + adds r6, #1 + cmp r6, #1 + ble _081A4738 + mov r1, sl + cmp r1, #8 + ble _081A4720 + movs r6, #0 + ldr r7, _081A4814 + movs r2, #0x54 + mov sl, r2 + movs r3, #0xff + mov sb, r3 +_081A4794: + adds r0, r6, #1 + mov r8, r0 + mov r1, sl + muls r1, r6, r1 + movs r0, #0x54 + adds r4, r6, #0 + muls r4, r0, r4 + movs r2, #0 + ldr r3, _081A481C + adds r6, r1, r3 + movs r5, #2 +_081A47AA: + ldr r0, [r7] + adds r0, r0, r6 + adds r0, r0, r2 + movs r1, #0 + str r2, [sp] + bl CopyTrainerId + ldr r0, [r7] + adds r0, r0, r6 + ldr r2, [sp] + adds r0, r0, r2 + adds r0, #4 + movs r1, #0 + bl CopyTrainerId + ldr r1, [r7] + adds r1, r1, r4 + ldr r0, _081A4820 + adds r1, r1, r0 + ldrb r0, [r1] + mov r3, sb + orrs r0, r3 + strb r0, [r1] + ldr r1, [r7] + adds r1, r1, r4 + ldr r0, _081A4824 + adds r1, r1, r0 + ldrb r0, [r1] + orrs r0, r3 + strb r0, [r1] + ldr r0, [r7] + adds r0, r0, r4 + ldr r1, _081A4828 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0] + adds r4, #0x1c + ldr r2, [sp] + adds r2, #0x1c + subs r5, #1 + cmp r5, #0 + bge _081A47AA + mov r6, r8 + cmp r6, #1 + ble _081A4794 + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A4814: .4byte 0x03005AF0 +_081A4818: .4byte 0x00000222 +_081A481C: .4byte 0x0000057C +_081A4820: .4byte 0x00000586 +_081A4824: .4byte 0x0000058E +_081A4828: .4byte 0x00000584 + thumb_func_end ClearRankingHallRecords + + thumb_func_start sub_081A482C +sub_081A482C: @ 0x081A482C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r0, #0x96 + lsls r0, r0, #2 + bl AllocZeroed + adds r7, r0, #0 + adds r4, r7, #0 + movs r5, #0 + movs r0, #0xfa + lsls r0, r0, #1 + adds r6, r7, r0 + ldr r0, _081A48A4 + mov r8, r0 +_081A484A: + mov r0, r8 + adds r1, r5, r0 + adds r0, r4, #0 + movs r2, #0x64 + bl memcpy + adds r4, #0x64 + adds r5, #0x64 + cmp r4, r6 + ble _081A484A + ldr r4, _081A48A8 + ldrb r5, [r4] + bl LoadPlayerParty + bl SetContinueGameWarpStatusToDynamicWarp + movs r0, #1 + bl TrySavingData + bl ClearContinueGameWarpStatus + strb r5, [r4] + adds r4, r7, #0 + ldr r5, _081A48A4 + movs r0, #0xfa + lsls r0, r0, #1 + adds r6, r7, r0 +_081A4880: + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x64 + bl memcpy + adds r4, #0x64 + adds r5, #0x64 + cmp r4, r6 + ble _081A4880 + adds r0, r7, #0 + bl Free + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A48A4: .4byte 0x02024190 +_081A48A8: .4byte 0x0202418D + thumb_func_end sub_081A482C + + thumb_func_start PrintHyphens +PrintHyphens: @ 0x081A48AC + push {lr} + ldr r0, _081A48C8 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + beq _081A48CC + bl GetRecordedBattleApprenticeLanguage + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _081A48D6 + .align 2, 0 +_081A48C8: .4byte 0x02022C90 +_081A48CC: + ldr r0, _081A48EC + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_081A48D6: + ldr r2, _081A48F0 + ldr r1, _081A48F4 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r2 + ldrb r0, [r0, #3] + pop {r1} + bx r1 + .align 2, 0 +_081A48EC: .4byte 0x000040CF +_081A48F0: .4byte 0x082E383C +_081A48F4: .4byte 0x085DD56A + thumb_func_end PrintHyphens + + thumb_func_start sub_081A48F8 +sub_081A48F8: @ 0x081A48F8 + push {lr} + ldr r0, _081A4914 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + beq _081A4918 + bl GetRecordedBattleApprenticeLanguage + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _081A4922 + .align 2, 0 +_081A4914: .4byte 0x02022C90 +_081A4918: + ldr r0, _081A4938 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_081A4922: + ldr r2, _081A493C + ldr r1, _081A4940 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r2 + ldrb r0, [r0, #1] + pop {r1} + bx r1 + .align 2, 0 +_081A4938: .4byte 0x000040CF +_081A493C: .4byte 0x082E383C +_081A4940: .4byte 0x085DD56A + thumb_func_end sub_081A48F8 + + thumb_func_start CopyFrontierBrainTrainerName +CopyFrontierBrainTrainerName: @ 0x081A4944 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _081A4960 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + beq _081A4964 + bl GetRecordedBattleApprenticeLanguage + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _081A496E + .align 2, 0 +_081A4960: .4byte 0x02022C90 +_081A4964: + ldr r0, _081A499C + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_081A496E: + movs r3, #0 + lsls r0, r0, #1 + ldr r2, _081A49A0 + ldr r1, _081A49A4 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #5 + adds r2, #4 + adds r2, r0, r2 +_081A4980: + adds r1, r4, r3 + ldrb r0, [r2] + strb r0, [r1] + adds r2, #1 + adds r3, #1 + cmp r3, #6 + ble _081A4980 + adds r1, r4, r3 + movs r0, #0xff + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081A499C: .4byte 0x000040CF +_081A49A0: .4byte 0x082E383C +_081A49A4: .4byte 0x085DD56A + thumb_func_end CopyFrontierBrainTrainerName + + thumb_func_start IsFrontierBrainFemale +IsFrontierBrainFemale: @ 0x081A49A8 + push {lr} + ldr r0, _081A49C0 + bl VarGet + lsls r0, r0, #0x10 + ldr r1, _081A49C4 + lsrs r0, r0, #0xf + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + pop {r1} + bx r1 + .align 2, 0 +_081A49C0: .4byte 0x000040CF +_081A49C4: .4byte 0x085DD47F + thumb_func_end IsFrontierBrainFemale + + thumb_func_start SetFrontierBrainEventObjGfx_2 +SetFrontierBrainEventObjGfx_2: @ 0x081A49C8 + push {lr} + ldr r0, _081A49E8 + bl VarGet + lsls r0, r0, #0x10 + ldr r2, _081A49EC + ldr r1, _081A49F0 + lsrs r0, r0, #0xf + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r2, #0 + bl VarSet + pop {r0} + bx r0 + .align 2, 0 +_081A49E8: .4byte 0x000040CF +_081A49EC: .4byte 0x00004010 +_081A49F0: .4byte 0x085DD47F + thumb_func_end SetFrontierBrainEventObjGfx_2 + + thumb_func_start CreateFrontierBrainPokemon +CreateFrontierBrainPokemon: @ 0x081A49F4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x44 + ldr r0, _081A4A2C + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x20] + bl GetFronterBrainSymbol + str r0, [sp, #0x24] + ldr r0, [sp, #0x20] + cmp r0, #1 + bne _081A4A34 + ldr r0, _081A4A30 + bl TrainerIdToTournamentId + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetDomeTrainerMonCountInBits + adds r4, r0, #0 + b _081A4A36 + .align 2, 0 +_081A4A2C: .4byte 0x000040CF +_081A4A30: .4byte 0x000003FE +_081A4A34: + movs r4, #7 +_081A4A36: + bl ZeroEnemyPartyMons + movs r1, #0 + str r1, [sp, #0x18] + bl SetFacilityPtrsGetLevel + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x1c] + movs r2, #0 + str r2, [sp, #0x14] +_081A4A4C: + movs r0, #1 + ands r0, r4 + asrs r4, r4, #1 + str r4, [sp, #0x30] + ldr r3, [sp, #0x14] + adds r3, #1 + str r3, [sp, #0x28] + cmp r0, #0 + bne _081A4A60 + b _081A4BB4 +_081A4A60: + ldr r4, [sp, #0x14] + lsls r4, r4, #2 + mov sb, r4 + ldr r0, [sp, #0x24] + lsls r0, r0, #4 + str r0, [sp, #0x38] + ldr r1, [sp, #0x20] + lsls r1, r1, #4 + str r1, [sp, #0x34] + ldr r2, [sp, #0x1c] + lsls r2, r2, #0x18 + str r2, [sp, #0x3c] + ldr r3, [sp, #0x18] + adds r3, #1 + str r3, [sp, #0x2c] + ldr r0, [sp, #0x14] + add r0, sb + lsls r0, r0, #2 + mov r8, r0 +_081A4A86: + bl Random + adds r4, r0, #0 + bl Random + lsls r4, r4, #0x10 + lsrs r7, r4, #0x10 + lsls r0, r0, #0x10 + orrs r7, r0 + ldr r0, _081A4BD0 + adds r1, r7, #0 + bl IsShinyOtIdPersonality + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081A4A86 + ldr r4, [sp, #0x38] + ldr r1, [sp, #0x24] + subs r0, r4, r1 + lsls r5, r0, #2 + mov r2, r8 + adds r4, r2, r5 + ldr r3, [sp, #0x34] + ldr r1, [sp, #0x20] + subs r0, r3, r1 + lsls r6, r0, #3 + adds r4, r4, r6 + ldr r2, _081A4BD4 + adds r4, r4, r2 + adds r0, r7, #0 + bl GetNatureFromPersonality + ldrb r1, [r4, #5] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r1, r0 + bne _081A4A86 + ldr r4, [sp, #0x18] + movs r0, #0x64 + adds r3, r4, #0 + muls r3, r0, r3 + mov r8, r3 + ldr r1, _081A4BD8 + add r1, r8 + mov sl, r1 + ldr r4, [sp, #0x14] + add r4, sb + lsls r4, r4, #2 + adds r0, r4, r5 + adds r0, r0, r6 + ldr r2, _081A4BD4 + adds r0, r0, r2 + ldrh r1, [r0] + ldr r3, [sp, #0x3c] + lsrs r2, r3, #0x18 + ldrb r3, [r0, #4] + movs r0, #1 + str r0, [sp] + str r7, [sp, #4] + str r0, [sp, #8] + ldr r0, _081A4BD0 + str r0, [sp, #0xc] + mov r0, sl + bl CreateMon + ldr r0, _081A4BD4 + adds r5, r5, r0 + adds r5, r6, r5 + adds r4, r5, r4 + adds r4, #2 + mov r0, sl + movs r1, #0xc + adds r2, r4, #0 + bl SetMonData + movs r7, #0 + mov r6, r8 + ldr r3, _081A4BD8 +_081A4B22: + adds r1, r7, #0 + adds r1, #0x1a + ldr r0, [sp, #0x14] + add r0, sb + lsls r4, r0, #2 + adds r2, r5, r4 + adds r0, r7, #6 + adds r2, r2, r0 + adds r0, r6, r3 + str r3, [sp, #0x40] + bl SetMonData + adds r7, #1 + ldr r3, [sp, #0x40] + cmp r7, #5 + ble _081A4B22 + movs r1, #0xff + add r0, sp, #0x10 + strb r1, [r0] + movs r7, #0 + ldr r1, [sp, #0x18] + movs r2, #0x64 + adds r6, r1, #0 + muls r6, r2, r6 + ldr r3, _081A4BDC + mov r8, r3 + ldr r3, _081A4BD8 + adds r5, r4, #0 +_081A4B5A: + ldr r4, [sp, #0x38] + ldr r0, [sp, #0x24] + subs r1, r4, r0 + lsls r1, r1, #2 + adds r1, r5, r1 + ldr r2, [sp, #0x34] + ldr r4, [sp, #0x20] + subs r0, r2, r4 + lsls r0, r0, #3 + adds r1, r1, r0 + add r1, r8 + ldrh r4, [r1] + lsls r2, r7, #0x18 + lsrs r2, r2, #0x18 + adds r0, r6, r3 + adds r1, r4, #0 + str r3, [sp, #0x40] + bl SetMonMoveSlot + ldr r3, [sp, #0x40] + cmp r4, #0xda + bne _081A4B8C + movs r1, #0 + add r0, sp, #0x10 + strb r1, [r0] +_081A4B8C: + adds r5, #2 + adds r7, #1 + cmp r7, #3 + ble _081A4B5A + ldr r0, [sp, #0x18] + movs r1, #0x64 + adds r4, r0, #0 + muls r4, r1, r4 + ldr r0, _081A4BD8 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x20 + add r2, sp, #0x10 + bl SetMonData + adds r0, r4, #0 + bl CalculateMonStats + ldr r2, [sp, #0x2c] + str r2, [sp, #0x18] +_081A4BB4: + ldr r4, [sp, #0x30] + ldr r3, [sp, #0x28] + str r3, [sp, #0x14] + cmp r3, #2 + bgt _081A4BC0 + b _081A4A4C +_081A4BC0: + add sp, #0x44 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A4BD0: .4byte 0x0000EF2A +_081A4BD4: .4byte 0x085DCB98 +_081A4BD8: .4byte 0x020243E8 +_081A4BDC: .4byte 0x085DCBA4 + thumb_func_end CreateFrontierBrainPokemon + + thumb_func_start GetFrontierBrainMonSpecies +GetFrontierBrainMonSpecies: @ 0x081A4BE0 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081A4C18 + bl VarGet + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + bl GetFronterBrainSymbol + ldr r3, _081A4C1C + lsls r2, r4, #2 + adds r2, r2, r4 + lsls r1, r0, #4 + subs r1, r1, r0 + adds r1, r1, r2 + lsls r1, r1, #2 + lsls r0, r5, #4 + subs r0, r0, r5 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r1, r1, r3 + ldrh r0, [r1] + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081A4C18: .4byte 0x000040CF +_081A4C1C: .4byte 0x085DCB98 + thumb_func_end GetFrontierBrainMonSpecies + + thumb_func_start SetFrontierBrainEventObjGfx +SetFrontierBrainEventObjGfx: @ 0x081A4C20 + push {lr} + lsls r0, r0, #0x18 + ldr r2, _081A4C40 + ldr r3, _081A4C44 + adds r1, r3, #0 + strh r1, [r2] + ldr r2, _081A4C48 + ldr r1, _081A4C4C + lsrs r0, r0, #0x17 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r2, #0 + bl VarSet + pop {r0} + bx r0 + .align 2, 0 +_081A4C40: .4byte 0x0203886A +_081A4C44: .4byte 0x000003FE +_081A4C48: .4byte 0x00004010 +_081A4C4C: .4byte 0x085DD47F + thumb_func_end SetFrontierBrainEventObjGfx + + thumb_func_start GetFrontierBrainMonMove +GetFrontierBrainMonMove: @ 0x081A4C50 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r4, r1, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081A4C98 + bl VarGet + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + bl GetFronterBrainSymbol + ldr r2, _081A4C9C + lsls r4, r4, #1 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #2 + adds r4, r4, r1 + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r4, r4, r1 + lsls r0, r5, #4 + subs r0, r0, r5 + lsls r0, r0, #3 + adds r4, r4, r0 + adds r2, #0xc + adds r4, r4, r2 + ldrh r0, [r4] + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_081A4C98: .4byte 0x000040CF +_081A4C9C: .4byte 0x085DCB98 + thumb_func_end GetFrontierBrainMonMove + + thumb_func_start GetFrontierBrainMonNature +GetFrontierBrainMonNature: @ 0x081A4CA0 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081A4CD8 + bl VarGet + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + bl GetFronterBrainSymbol + ldr r3, _081A4CDC + lsls r2, r4, #2 + adds r2, r2, r4 + lsls r1, r0, #4 + subs r1, r1, r0 + adds r1, r1, r2 + lsls r1, r1, #2 + lsls r0, r5, #4 + subs r0, r0, r5 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r1, r1, r3 + ldrb r0, [r1, #5] + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081A4CD8: .4byte 0x000040CF +_081A4CDC: .4byte 0x085DCB98 + thumb_func_end GetFrontierBrainMonNature + + thumb_func_start GetFrontierBrainMonEvs +GetFrontierBrainMonEvs: @ 0x081A4CE0 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r4, r1, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081A4D24 + bl VarGet + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + bl GetFronterBrainSymbol + ldr r2, _081A4D28 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #2 + adds r4, r4, r1 + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r4, r4, r1 + lsls r0, r5, #4 + subs r0, r0, r5 + lsls r0, r0, #3 + adds r4, r4, r0 + adds r2, #6 + adds r4, r4, r2 + ldrb r0, [r4] + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_081A4D24: .4byte 0x000040CF +_081A4D28: .4byte 0x085DCB98 + thumb_func_end GetFrontierBrainMonEvs + + thumb_func_start GetFronterBrainSymbol +GetFronterBrainSymbol: @ 0x081A4D2C + push {r4, r5, lr} + ldr r0, _081A4D68 + bl VarGet + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + bl GetPlayerSymbolCountForFacility + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #2 + bne _081A4D90 + bl GetCurrentFacilityWinStreak + lsls r0, r0, #0x10 + ldr r3, _081A4D6C + lsls r2, r5, #2 + adds r1, r3, #3 + adds r1, r2, r1 + lsrs r0, r0, #0x10 + ldrb r1, [r1] + adds r1, r0, r1 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r1, r0 + bne _081A4D70 + movs r4, #0 + b _081A4D90 + .align 2, 0 +_081A4D68: .4byte 0x000040CF +_081A4D6C: .4byte 0x085DCB7C +_081A4D70: + adds r0, r3, #1 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r1, r0 + beq _081A4D8E + cmp r1, r0 + ble _081A4D90 + subs r0, r1, r0 + adds r1, r3, #2 + adds r1, r2, r1 + ldrb r1, [r1] + bl __modsi3 + cmp r0, #0 + bne _081A4D90 +_081A4D8E: + movs r4, #1 +_081A4D90: + adds r0, r4, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end GetFronterBrainSymbol + + thumb_func_start CopyFrontierBrainText +CopyFrontierBrainText: @ 0x081A4D98 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _081A4DC0 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + beq _081A4DC4 + bl GetRecordedBattleApprenticeLanguage + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl GetRecordedBattleFronterBrainSymbol + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + b _081A4DD4 + .align 2, 0 +_081A4DC0: .4byte 0x02022C90 +_081A4DC4: + ldr r0, _081A4DE0 + bl VarGet + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + bl GetFronterBrainSymbol + adds r1, r0, #0 +_081A4DD4: + cmp r5, #0 + beq _081A4DE4 + cmp r5, #1 + beq _081A4E04 + b _081A4E18 + .align 2, 0 +_081A4DE0: .4byte 0x000040CF +_081A4DE4: + ldr r0, _081A4DFC + ldr r2, _081A4E00 + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r2, [r1] + lsls r1, r4, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl StringCopy + b _081A4E18 + .align 2, 0 +_081A4DFC: .4byte 0x02021C7C +_081A4E00: .4byte 0x085DD5E8 +_081A4E04: + ldr r0, _081A4E20 + ldr r2, _081A4E24 + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r2, [r1] + lsls r1, r4, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl StringCopy +_081A4E18: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081A4E20: .4byte 0x02021C7C +_081A4E24: .4byte 0x085DD5F0 + thumb_func_end CopyFrontierBrainText + diff --git a/asm/ghost.s b/asm/ghost.s new file mode 100644 index 0000000..f65f047 --- /dev/null +++ b/asm/ghost.s @@ -0,0 +1,3289 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_08111E5C +sub_08111E5C: @ 0x08111E5C + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldr r0, _08111EB8 + ldrh r0, [r0, #4] + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x20] + strh r0, [r4, #0x30] + ldr r5, _08111EBC + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x22] + strh r0, [r4, #0x34] + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_080A689C + ldr r0, _08111EC0 + str r0, [r4, #0x1c] + movs r0, #0x10 + strh r0, [r4, #0x3a] + movs r1, #0xfd + lsls r1, r1, #6 + movs r0, #0x50 + bl SetGpuReg + ldrh r1, [r4, #0x3a] + movs r0, #0x52 + bl SetGpuReg + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08111EB8: .4byte 0x020380BE +_08111EBC: .4byte 0x020380D7 +_08111EC0: .4byte 0x08111EC5 + thumb_func_end sub_08111E5C + + thumb_func_start sub_08111EC4 +sub_08111EC4: @ 0x08111EC4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08111FB4 + adds r0, r4, #0 + bl AnimTranslateLinear + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08111EE4 + ldr r0, _08111EE0 + str r0, [r4, #0x1c] + b _08111F2E + .align 2, 0 +_08111EE0: .4byte 0x08111F39 +_08111EE4: + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r1, #0xa + bl Sin + ldrh r1, [r4, #0x24] + adds r0, r0, r1 + strh r0, [r4, #0x24] + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r1, #0xf + bl Cos + ldrh r1, [r4, #0x26] + adds r0, r0, r1 + strh r0, [r4, #0x26] + ldrh r2, [r4, #0x38] + adds r0, r2, #5 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x38] + ldrh r0, [r4, #0x38] + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + cmp r2, #0 + beq _08111F1C + cmp r2, #0xc4 + ble _08111F2E +_08111F1C: + lsls r0, r0, #0x10 + cmp r0, #0 + ble _08111F2E + ldr r0, _08111F34 + movs r1, #0 + ldrsb r1, [r0, r1] + movs r0, #0xc4 + bl PlaySE12WithPanning +_08111F2E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08111F34: .4byte 0x020380E0 + thumb_func_end sub_08111EC4 + + thumb_func_start sub_08111F38 +sub_08111F38: @ 0x08111F38 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strh r0, [r4, #0x2e] + adds r0, r4, #0 + bl AnimTranslateLinear + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r1, #0xa + bl Sin + ldrh r1, [r4, #0x24] + adds r0, r0, r1 + strh r0, [r4, #0x24] + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r1, #0xf + bl Cos + ldrh r1, [r4, #0x26] + adds r0, r0, r1 + strh r0, [r4, #0x26] + ldrh r2, [r4, #0x38] + adds r0, r2, #5 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x38] + ldrh r0, [r4, #0x38] + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + cmp r2, #0 + beq _08111F7E + cmp r2, #0xc4 + ble _08111F8A +_08111F7E: + lsls r0, r0, #0x10 + cmp r0, #0 + ble _08111F8A + movs r0, #0xc4 + bl PlaySE +_08111F8A: + movs r1, #0x3a + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08111FA8 + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08111FA4 + str r0, [r4, #0x1c] + b _08111FAE + .align 2, 0 +_08111FA4: .4byte 0x080A60BD +_08111FA8: + adds r0, r4, #0 + bl sub_08111FB4 +_08111FAE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08111F38 + + thumb_func_start sub_08111FB4 +sub_08111FB4: @ 0x08111FB4 + push {r4, lr} + adds r4, r0, #0 + ldrh r2, [r4, #0x3a] + movs r1, #0x3a + ldrsh r0, [r4, r1] + cmp r0, #0xff + ble _08111FD8 + adds r0, r2, #1 + strh r0, [r4, #0x3a] + lsls r0, r0, #0x10 + ldr r1, _08111FD4 + cmp r0, r1 + bne _0811203E + movs r0, #0 + b _0811203C + .align 2, 0 +_08111FD4: .4byte 0x010D0000 +_08111FD8: + ldrh r1, [r4, #0x3c] + adds r3, r1, #1 + strh r3, [r4, #0x3c] + movs r0, #0xff + ands r0, r1 + cmp r0, #0 + bne _0811203E + ldr r1, _08111FFC + ands r1, r3 + strh r1, [r4, #0x3c] + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08112000 + adds r0, r2, #1 + b _08112002 + .align 2, 0 +_08111FFC: .4byte 0xFFFFFF00 +_08112000: + subs r0, r2, #1 +_08112002: + strh r0, [r4, #0x3a] + ldrh r0, [r4, #0x3a] + movs r1, #0x10 + subs r1, r1, r0 + lsls r1, r1, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r2, #0x3a + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _08112024 + cmp r0, #0x10 + bne _08112030 +_08112024: + ldrh r0, [r4, #0x3c] + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + eors r0, r1 + strh r0, [r4, #0x3c] +_08112030: + movs r1, #0x3a + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0811203E + movs r0, #0x80 + lsls r0, r0, #1 +_0811203C: + strh r0, [r4, #0x3a] +_0811203E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08111FB4 + + thumb_func_start sub_08112044 +sub_08112044: @ 0x08112044 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimTarget + ldr r1, _08112060 + str r1, [r4, #0x1c] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08112060: .4byte 0x08112065 + thumb_func_end sub_08112044 + + thumb_func_start sub_08112064 +sub_08112064: @ 0x08112064 + 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, #8 + bl Cos + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x2e] + subs r0, #0x41 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x82 + bhi _08112098 + ldrb r0, [r4, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #8 + b _081120A2 +_08112098: + ldrb r0, [r4, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #4 +_081120A2: + orrs r1, r0 + strb r1, [r4, #5] + 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, r0, #0x10 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x26] + adds r0, r0, r1 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x3c] + adds r0, #1 + strh r0, [r4, #0x3c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x3d + bne _081120D4 + adds r0, r4, #0 + bl DestroyAnimSprite +_081120D4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08112064 + + thumb_func_start sub_081120DC +sub_081120DC: @ 0x081120DC + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r1, #0xfd + lsls r1, r1, #6 + movs r0, #0x50 + bl SetGpuReg + movs r1, #0x80 + lsls r1, r1, #5 + movs r0, #0x52 + bl SetGpuReg + movs r0, #0 + bl GetAnimBattlerSpriteId + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #1 + bl PrepareBattlerSpriteForRotScale + adds r0, r4, #0 + movs r1, #0x80 + movs r2, #0x80 + movs r3, #0 + bl SetSpriteRotScale + ldr r1, _08112154 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + ldr r1, _08112158 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #0 + movs r1, #0x80 + strh r1, [r0, #8] + ldr r1, _0811215C + ldrh r1, [r1] + strh r1, [r0, #0xa] + strh r2, [r0, #0xc] + movs r1, #0x10 + strh r1, [r0, #0xe] + ldr r1, _08112160 + str r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08112154: .4byte 0x020205AC +_08112158: .4byte 0x03005B60 +_0811215C: .4byte 0x020380BE +_08112160: .4byte 0x08112165 + thumb_func_end sub_081120DC + + thumb_func_start sub_08112164 +sub_08112164: @ 0x08112164 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _081121B4 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 + ldrh r0, [r4, #0x1c] + adds r0, #1 + strh r0, [r4, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + bne _081121AC + movs r0, #0 + strh r0, [r4, #0x1c] + ldrh r1, [r4, #0xc] + adds r1, #1 + strh r1, [r4, #0xc] + ldrh r0, [r4, #0xe] + subs r0, #1 + strh r0, [r4, #0xe] + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r1, #0xc + ldrsh r0, [r4, r1] + cmp r0, #9 + bne _081121AC + ldr r0, _081121B8 + str r0, [r4] +_081121AC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081121B4: .4byte 0x03005B60 +_081121B8: .4byte 0x081121BD + thumb_func_end sub_08112164 + + thumb_func_start sub_081121BC +sub_081121BC: @ 0x081121BC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + ldr r1, _081121E0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrh r1, [r4, #0xa] + movs r2, #0xa + ldrsh r0, [r4, r2] + cmp r0, #0 + ble _081121E4 + subs r0, r1, #1 + strh r0, [r4, #0xa] + b _08112228 + .align 2, 0 +_081121E0: .4byte 0x03005B60 +_081121E4: + movs r0, #0 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldrh r0, [r4, #8] + adds r0, #8 + strh r0, [r4, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xff + bgt _0811220C + movs r0, #8 + ldrsh r2, [r4, r0] + adds r0, r1, #0 + adds r1, r2, #0 + movs r3, #0 + bl SetSpriteRotScale + b _08112228 +_0811220C: + adds r0, r1, #0 + bl ResetSpriteRotScale + adds r0, r5, #0 + bl DestroyAnimVisualTask + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg +_08112228: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081121BC + + thumb_func_start InitAnimShadowBall +InitAnimShadowBall: @ 0x08112230 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #4 + adds r4, r0, #0 + ldrh r5, [r4, #0x20] + ldrh r6, [r4, #0x22] + ldr r0, _081122CC + mov r8, r0 + ldrb r0, [r0] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + mov sb, r1 + strh r0, [r4, #0x20] + mov r1, r8 + ldrb r0, [r1] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x22] + mov r1, sb + strh r1, [r4, #0x2e] + ldr r2, _081122D0 + ldrh r1, [r2] + strh r1, [r4, #0x30] + ldrh r1, [r2, #2] + strh r1, [r4, #0x32] + ldrh r1, [r2, #4] + strh r1, [r4, #0x34] + ldrh r1, [r4, #0x20] + lsls r1, r1, #4 + strh r1, [r4, #0x36] + lsls r0, r0, #4 + strh r0, [r4, #0x38] + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + movs r1, #0x20 + ldrsh r0, [r4, r1] + subs r5, r5, r0 + lsls r5, r5, #4 + movs r0, #0 + ldrsh r1, [r2, r0] + lsls r1, r1, #1 + adds r0, r5, #0 + str r2, [sp] + bl __divsi3 + strh r0, [r4, #0x3a] + lsls r6, r6, #0x10 + asrs r6, r6, #0x10 + movs r1, #0x22 + ldrsh r0, [r4, r1] + subs r6, r6, r0 + lsls r6, r6, #4 + ldr r2, [sp] + movs r0, #0 + ldrsh r1, [r2, r0] + lsls r1, r1, #1 + adds r0, r6, #0 + bl __divsi3 + strh r0, [r4, #0x3c] + ldr r0, _081122D4 + str r0, [r4, #0x1c] + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081122CC: .4byte 0x020380D6 +_081122D0: .4byte 0x020380BE +_081122D4: .4byte 0x081122D9 + thumb_func_end InitAnimShadowBall + + thumb_func_start AnimShadowBallStep +AnimShadowBallStep: @ 0x081122D8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + cmp r0, #1 + beq _08112322 + cmp r0, #1 + bgt _081122EE + cmp r0, #0 + beq _081122F8 + b _081123E6 +_081122EE: + cmp r0, #2 + beq _0811238C + cmp r0, #3 + beq _081123E0 + b _081123E6 +_081122F8: + ldrh r0, [r5, #0x3a] + ldrh r2, [r5, #0x36] + adds r0, r0, r2 + strh r0, [r5, #0x36] + ldrh r1, [r5, #0x3c] + ldrh r2, [r5, #0x38] + adds r1, r1, r2 + strh r1, [r5, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + strh r0, [r5, #0x20] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + strh r1, [r5, #0x22] + ldrh r0, [r5, #0x30] + subs r0, #1 + strh r0, [r5, #0x30] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _081123E6 + b _081123D2 +_08112322: + ldrh r0, [r5, #0x32] + subs r0, #1 + strh r0, [r5, #0x32] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _081123E6 + ldr r4, _08112388 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x30] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x32] + ldrh r0, [r5, #0x20] + lsls r0, r0, #4 + strh r0, [r5, #0x36] + ldrh r0, [r5, #0x22] + lsls r0, r0, #4 + strh r0, [r5, #0x38] + movs r1, #0x30 + ldrsh r0, [r5, r1] + movs r2, #0x20 + ldrsh r1, [r5, r2] + subs r0, r0, r1 + lsls r0, 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, r0, r1 + lsls r0, r0, #4 + movs r2, #0x34 + ldrsh r1, [r5, r2] + bl __divsi3 + strh r0, [r5, #0x3c] + b _081123D2 + .align 2, 0 +_08112388: .4byte 0x020380D7 +_0811238C: + ldrh r0, [r5, #0x3a] + ldrh r1, [r5, #0x36] + adds r0, r0, r1 + strh r0, [r5, #0x36] + ldrh r1, [r5, #0x3c] + ldrh r2, [r5, #0x38] + adds r1, r1, r2 + strh r1, [r5, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + strh r0, [r5, #0x20] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + strh r1, [r5, #0x22] + ldrh r0, [r5, #0x34] + subs r0, #1 + strh r0, [r5, #0x34] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _081123E6 + ldr r4, _081123DC + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] +_081123D2: + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] + b _081123E6 + .align 2, 0 +_081123DC: .4byte 0x020380D7 +_081123E0: + adds r0, r5, #0 + bl DestroySpriteAndMatrix +_081123E6: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end AnimShadowBallStep + + thumb_func_start sub_081123EC +sub_081123EC: @ 0x081123EC + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimTarget + ldr r0, _08112400 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08112400: .4byte 0x08112405 + thumb_func_end sub_081123EC + + thumb_func_start sub_08112404 +sub_08112404: @ 0x08112404 + push {r4, r5, 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 _0811249A + adds r1, r3, #0 + adds r1, #0x3e + ldrb r2, [r1] + movs r0, #4 + ands r0, r2 + adds r4, r1, #0 + cmp r0, #0 + bne _0811242E + movs r0, #4 + orrs r0, r2 + strb r0, [r4] +_0811242E: + movs r1, #0x2e + ldrsh r0, [r3, r1] + cmp r0, #0 + beq _0811243E + cmp r0, #1 + beq _08112448 + movs r6, #1 + b _08112452 +_0811243E: + movs r1, #0x30 + ldrsh r0, [r3, r1] + cmp r0, #2 + bne _08112452 + b _08112456 +_08112448: + movs r1, #0x30 + ldrsh r0, [r3, r1] + cmp r0, #4 + bne _08112452 + movs r5, #1 +_08112452: + cmp r5, #0 + beq _08112488 +_08112456: + ldrb r2, [r4] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4] + ldrh r0, [r3, #0x32] + adds r0, #1 + movs r1, #0 + strh r0, [r3, #0x32] + strh r1, [r3, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #5 + bne _0811249A + strh r1, [r3, #0x32] + ldrh r0, [r3, #0x2e] + adds r0, #1 + strh r0, [r3, #0x2e] + b _0811249A +_08112488: + cmp r6, #0 + beq _08112494 + adds r0, r3, #0 + bl DestroyAnimSprite + b _0811249A +_08112494: + ldrh r0, [r3, #0x30] + adds r0, #1 + strh r0, [r3, #0x30] +_0811249A: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_08112404 + + thumb_func_start sub_081124A0 +sub_081124A0: @ 0x081124A0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _081124CC + adds r5, r0, r1 + movs r0, #1 + bl CloneBattlerSpriteWithBlend + movs r6, #0 + movs r1, #0 + strh r0, [r5, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _081124D0 + adds r0, r4, #0 + bl DestroyAnimVisualTask + b _081125AC + .align 2, 0 +_081124CC: .4byte 0x03005B60 +_081124D0: + strh r1, [r5, #0xa] + movs r0, #0xf + strh r0, [r5, #0xc] + movs r0, #2 + strh r0, [r5, #0xe] + strh r1, [r5, #0x10] + movs r1, #0xfd + lsls r1, r1, #6 + movs r0, #0x50 + bl SetGpuReg + ldrh r1, [r5, #0xe] + lsls r1, r1, #8 + ldrh r0, [r5, #0xc] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + ldr r4, _08112538 + movs r0, #8 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0x50 + strh r1, [r0, #0x2e] + ldr r0, _0811253C + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08112544 + movs r0, #8 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _08112540 + strh r1, [r0, #0x30] + movs r0, #8 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0x70 + b _08112562 + .align 2, 0 +_08112538: .4byte 0x020205AC +_0811253C: .4byte 0x020380D7 +_08112540: .4byte 0x0000FF70 +_08112544: + movs r0, #8 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0x90 + strh r1, [r0, #0x30] + movs r0, #8 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _081125B4 +_08112562: + strh r1, [r0, #0x32] + ldr r4, _081125B8 + movs r0, #8 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r2, #0 + strh r2, [r0, #0x34] + movs r0, #8 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + strh r2, [r0, #0x36] + movs r0, #8 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _081125BC + bl StoreSpriteCallbackInData6 + movs r0, #8 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, #0x1c + adds r0, r0, r4 + ldr r1, _081125C0 + str r1, [r0] + ldr r0, _081125C4 + str r0, [r5] +_081125AC: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081125B4: .4byte 0x0000FF90 +_081125B8: .4byte 0x020205AC +_081125BC: .4byte 0x08007141 +_081125C0: .4byte 0x080A5E35 +_081125C4: .4byte 0x081125C9 + thumb_func_end sub_081124A0 + + thumb_func_start sub_081125C8 +sub_081125C8: @ 0x081125C8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _081125EC + adds r4, r0, r1 + movs r1, #0x10 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _0811266C + cmp r0, #1 + bgt _081125F0 + cmp r0, #0 + beq _081125F6 + b _08112698 + .align 2, 0 +_081125EC: .4byte 0x03005B60 +_081125F0: + cmp r0, #2 + beq _08112692 + b _08112698 +_081125F6: + ldrh r1, [r4, #0xa] + adds r1, #1 + strh r1, [r4, #0xa] + movs r0, #3 + ands r0, r1 + strh r0, [r4, #0x12] + cmp r0, #1 + bne _08112614 + ldrh r1, [r4, #0xc] + movs r2, #0xc + ldrsh r0, [r4, r2] + cmp r0, #0 + ble _08112614 + subs r0, r1, #1 + strh r0, [r4, #0xc] +_08112614: + movs r1, #0x12 + ldrsh r0, [r4, r1] + cmp r0, #3 + bne _0811262A + ldrh r1, [r4, #0xe] + movs r2, #0xe + ldrsh r0, [r4, r2] + cmp r0, #0xf + bgt _0811262A + adds r0, r1, #1 + strh r0, [r4, #0xe] +_0811262A: + ldrh r1, [r4, #0xe] + lsls r1, r1, #8 + ldrh r0, [r4, #0xc] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + ldr r1, [r4, #0xc] + movs r0, #0x80 + lsls r0, r0, #0xd + cmp r1, r0 + bne _08112698 + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0x50 + ble _08112698 + movs r2, #8 + ldrsh r1, [r4, r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08112668 + adds r0, r0, r1 + bl obj_delete_but_dont_free_vram + movs r0, #1 + strh r0, [r4, #0x10] + b _08112698 + .align 2, 0 +_08112668: .4byte 0x020205AC +_0811266C: + ldrh r0, [r4, #0x14] + adds r0, #1 + strh r0, [r4, #0x14] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _08112698 + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + ldrh r0, [r4, #0x10] + adds r0, #1 + strh r0, [r4, #0x10] + b _08112698 +_08112692: + adds r0, r2, #0 + bl DestroyAnimVisualTask +_08112698: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081125C8 + + thumb_func_start sub_081126A0 +sub_081126A0: @ 0x081126A0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r2, _081126C0 + adds r1, r1, r2 + movs r2, #0 + strh r2, [r1, #0x26] + ldr r2, _081126C4 + str r2, [r1] + bl _call_via_r2 + thumb_func_end sub_081126A0 + + thumb_func_start sub_081126BC +sub_081126BC: @ 0x081126BC + pop {r0} + bx r0 + .align 2, 0 +_081126C0: .4byte 0x03005B60 +_081126C4: .4byte 0x081126C9 + thumb_func_end sub_081126BC + + thumb_func_start sub_081126C8 +sub_081126C8: @ 0x081126C8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _08112700 + adds r5, r0, r1 + ldr r0, _08112704 + ldrb r0, [r0] + bl GetBattlerSpriteBGPriorityRank + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r1, #0x26 + ldrsh r0, [r5, r1] + cmp r0, #4 + bls _081126F4 + b _08112916 +_081126F4: + lsls r0, r0, #2 + ldr r1, _08112708 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08112700: .4byte 0x03005B60 +_08112704: .4byte 0x020380D7 +_08112708: .4byte 0x0811270C +_0811270C: @ jump table + .4byte _08112720 @ case 0 + .4byte _08112820 @ case 1 + .4byte _08112864 @ case 2 + .4byte _081128CC @ case 3 + .4byte _081128F8 @ case 4 +_08112720: + ldr r7, _08112758 + adds r0, r7, #0 + bl AllocSpritePalette + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0 + mov r8, r2 + strh r0, [r5, #0x24] + cmp r0, #0xff + beq _0811274E + cmp r0, #0xf + beq _0811274E + movs r0, #1 + bl CloneBattlerSpriteWithBlend + strh r0, [r5, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _0811275C + adds r0, r7, #0 + bl FreeSpritePaletteByTag +_0811274E: + adds r0, r4, #0 + bl DestroyAnimVisualTask + b _0811291C + .align 2, 0 +_08112758: .4byte 0x00002771 +_0811275C: + ldr r4, _08112808 + movs r1, #8 + ldrsh r0, [r5, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrh r2, [r5, #0x24] + lsls r2, r2, #4 + ldrb r3, [r1, #5] + movs r0, #0xf + ands r0, r3 + orrs r0, r2 + strb r0, [r1, #5] + movs r2, #8 + ldrsh r0, [r5, r2] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r2, [r1, #1] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #1] + movs r0, #8 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r1, [r0, #5] + movs r2, #0xc + orrs r1, r2 + strb r1, [r0, #5] + movs r1, #8 + ldrsh r0, [r5, r1] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r4 + ldr r0, _0811280C + ldr r1, [r0] + ldr r0, _08112810 + ldrb r0, [r0] + ldr r1, [r1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + lsls r1, r1, #0x1f + adds r2, #0x3e + lsrs r1, r1, #0x1f + lsls r1, r1, #2 + ldrb r3, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + mov r2, r8 + strh r2, [r5, #0xa] + strh r2, [r5, #0xc] + movs r0, #0x10 + strh r0, [r5, #0xe] + movs r0, #1 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + movs r0, #0x22 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r0, [r0, #5] + lsrs r0, r0, #4 + adds r0, #0x10 + lsls r0, r0, #4 + strh r0, [r5, #0x10] + cmp r6, #1 + bne _08112814 + movs r1, #0x80 + lsls r1, r1, #2 + b _08112818 + .align 2, 0 +_08112808: .4byte 0x020205AC +_0811280C: .4byte 0x02024174 +_08112810: .4byte 0x020380D7 +_08112814: + movs r1, #0x80 + lsls r1, r1, #3 +_08112818: + movs r0, #0 + bl ClearGpuRegBits + b _08112916 +_08112820: + movs r1, #0x24 + ldrsh r0, [r5, r1] + adds r0, #0x10 + lsls r0, r0, #4 + strh r0, [r5, #0x24] + movs r2, #0x10 + ldrsh r0, [r5, r2] + lsls r0, r0, #1 + ldr r1, _08112854 + adds r0, r0, r1 + movs r2, #0x24 + ldrsh r1, [r5, r2] + lsls r1, r1, #1 + ldr r2, _08112858 + adds r1, r1, r2 + ldr r2, _0811285C + bl CpuSet + ldrh r0, [r5, #0x10] + ldr r3, _08112860 + movs r1, #0x10 + movs r2, #0xa + bl BlendPalette + b _08112916 + .align 2, 0 +_08112854: .4byte 0x020373B4 +_08112858: .4byte 0x020377B4 +_0811285C: .4byte 0x04000008 +_08112860: .4byte 0x00003C0D +_08112864: + ldr r2, _081128A0 + movs r0, #0x22 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x26] + ldrh r0, [r0, #0x22] + adds r1, r1, r0 + subs r1, #0x20 + lsls r1, r1, #0x10 + lsrs r2, r1, #0x10 + cmp r1, #0 + bge _08112884 + movs r2, #0 +_08112884: + cmp r6, #1 + bne _081128A4 + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + adds r1, r2, #0 + adds r1, #0x40 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r2, #0 + str r2, [sp] + movs r2, #4 + str r2, [sp, #4] + str r6, [sp, #8] + b _081128BC + .align 2, 0 +_081128A0: .4byte 0x020205AC +_081128A4: + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + adds r1, r2, #0 + adds r1, #0x40 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r2, #0 + str r2, [sp] + movs r2, #8 + str r2, [sp, #4] + movs r2, #1 + str r2, [sp, #8] +_081128BC: + movs r2, #2 + movs r3, #6 + bl ScanlineEffect_InitWave + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x1c] + b _08112916 +_081128CC: + cmp r6, #1 + bne _081128E0 + ldr r1, _081128DC + movs r0, #0x50 + bl SetGpuReg + b _081128E8 + .align 2, 0 +_081128DC: .4byte 0x00003F42 +_081128E0: + ldr r1, _081128F4 + movs r0, #0x50 + bl SetGpuReg +_081128E8: + movs r1, #0x80 + lsls r1, r1, #5 + movs r0, #0x52 + bl SetGpuReg + b _08112916 + .align 2, 0 +_081128F4: .4byte 0x00003F44 +_081128F8: + cmp r6, #1 + bne _08112908 + movs r1, #0x80 + lsls r1, r1, #2 + movs r0, #0 + bl SetGpuRegBits + b _08112912 +_08112908: + movs r1, #0x80 + lsls r1, r1, #3 + movs r0, #0 + bl SetGpuRegBits +_08112912: + ldr r0, _08112928 + str r0, [r5] +_08112916: + ldrh r0, [r5, #0x26] + adds r0, #1 + strh r0, [r5, #0x26] +_0811291C: + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08112928: .4byte 0x0811292D + thumb_func_end sub_081126C8 + + thumb_func_start sub_0811292C +sub_0811292C: @ 0x0811292C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _081129B4 + adds r4, r0, r1 + ldrh r1, [r4, #0xa] + adds r1, #1 + strh r1, [r4, #0xa] + movs r0, #1 + ands r0, r1 + strh r0, [r4, #0x12] + cmp r0, #0 + bne _08112964 + ldr r1, _081129B8 + movs r2, #0xa + ldrsh r0, [r4, r2] + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + movs r1, #0x12 + bl __divsi3 + strh r0, [r4, #0xc] +_08112964: + movs r2, #0x12 + ldrsh r0, [r4, r2] + cmp r0, #1 + bne _08112986 + ldr r1, _081129B8 + movs r2, #0xa + ldrsh r0, [r4, r2] + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + movs r1, #0x12 + bl __divsi3 + movs r1, #0x10 + subs r1, r1, r0 + strh r1, [r4, #0xe] +_08112986: + ldrh r1, [r4, #0xe] + lsls r1, r1, #8 + ldrh r0, [r4, #0xc] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r2, #0xa + ldrsh r0, [r4, r2] + cmp r0, #0x80 + bne _081129AE + movs r0, #0 + strh r0, [r4, #0x26] + ldr r1, _081129BC + str r1, [r4] + adds r0, r5, #0 + bl _call_via_r1 +_081129AE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081129B4: .4byte 0x03005B60 +_081129B8: .4byte 0x082FA8CC +_081129BC: .4byte 0x081129C1 + thumb_func_end sub_0811292C + + thumb_func_start sub_081129C0 +sub_081129C0: @ 0x081129C0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _081129F0 + adds r4, r0, r1 + ldr r0, _081129F4 + ldrb r0, [r0] + bl GetBattlerSpriteBGPriorityRank + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r1, #0x26 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _08112A2C + cmp r0, #1 + bgt _081129F8 + cmp r0, #0 + beq _081129FE + b _08112AA8 + .align 2, 0 +_081129F0: .4byte 0x03005B60 +_081129F4: .4byte 0x020380D7 +_081129F8: + cmp r0, #2 + beq _08112A40 + b _08112AA8 +_081129FE: + ldr r1, _08112A1C + movs r0, #3 + strb r0, [r1, #0x15] + movs r0, #1 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x24] + cmp r6, #1 + bne _08112A20 + movs r1, #0x80 + lsls r1, r1, #2 + b _08112A24 + .align 2, 0 +_08112A1C: .4byte 0x020397C8 +_08112A20: + movs r1, #0x80 + lsls r1, r1, #3 +_08112A24: + movs r0, #0 + bl ClearGpuRegBits + b _08112AA8 +_08112A2C: + ldrh r0, [r4, #0x10] + ldr r3, _08112A3C + movs r1, #0x10 + movs r2, #0 + bl BlendPalette + b _08112AA8 + .align 2, 0 +_08112A3C: .4byte 0x00003C0D +_08112A40: + ldr r3, _08112A90 + movs r0, #0x24 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + movs r0, #8 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + bl obj_delete_but_dont_free_vram + ldr r0, _08112A94 + bl FreeSpritePaletteByTag + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + cmp r6, #1 + bne _08112A98 + movs r1, #0x80 + lsls r1, r1, #2 + movs r0, #0 + bl SetGpuRegBits + b _08112AA2 + .align 2, 0 +_08112A90: .4byte 0x020205AC +_08112A94: .4byte 0x00002771 +_08112A98: + movs r1, #0x80 + lsls r1, r1, #3 + movs r0, #0 + bl SetGpuRegBits +_08112AA2: + adds r0, r5, #0 + bl DestroyAnimVisualTask +_08112AA8: + ldrh r0, [r4, #0x26] + adds r0, #1 + strh r0, [r4, #0x26] + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_081129C0 + + thumb_func_start sub_08112AB4 +sub_08112AB4: @ 0x08112AB4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r7, r0, #0 + ldr r0, _08112AF0 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08112AFC + ldr r4, _08112AF4 + ldrb r0, [r4] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldrb r0, [r4] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #8 + movs r2, #0xe0 + lsls r2, r2, #0xd + adds r0, r0, r2 + lsrs r5, r0, #0x10 + ldr r4, _08112AF8 + b _08112B20 + .align 2, 0 +_08112AF0: .4byte 0x020380BE +_08112AF4: .4byte 0x020380D6 +_08112AF8: .4byte 0x020380D7 +_08112AFC: + ldr r4, _08112BC4 + ldrb r0, [r4] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldrb r0, [r4] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #8 + movs r2, #0xe0 + lsls r2, r2, #0xd + adds r0, r0, r2 + lsrs r5, r0, #0x10 + ldr r4, _08112BC8 +_08112B20: + ldrb r0, [r4] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + ldrb r0, [r4] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #8 + movs r1, #0xe0 + lsls r1, r1, #0xd + adds r0, r0, r1 + lsrs r0, r0, #0x10 + mov sb, r0 + mov r8, r5 + mov r2, sb + subs r4, r2, r5 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r0, r6, #4 + strh r0, [r7, #0x2e] + lsls r0, r5, #4 + strh r0, [r7, #0x30] + mov r1, sl + subs r0, r1, r6 + lsls r0, r0, #4 + ldr r5, _08112BCC + movs r2, #2 + ldrsh r1, [r5, r2] + bl __divsi3 + strh r0, [r7, #0x32] + lsls r4, r4, #0x10 + asrs r4, r4, #0xc + movs r0, #2 + ldrsh r1, [r5, r0] + adds r0, r4, #0 + bl __divsi3 + strh r0, [r7, #0x34] + ldrh r0, [r5, #2] + strh r0, [r7, #0x36] + mov r1, sl + strh r1, [r7, #0x38] + mov r2, sb + strh r2, [r7, #0x3a] + movs r1, #0x36 + ldrsh r0, [r7, r1] + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + strh r0, [r7, #0x3c] + ldrb r1, [r7, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r7, #5] + strh r6, [r7, #0x20] + mov r2, r8 + strh r2, [r7, #0x22] + ldr r0, _08112BD0 + str r0, [r7, #0x1c] + adds r2, r7, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08112BC4: .4byte 0x020380D7 +_08112BC8: .4byte 0x020380D6 +_08112BCC: .4byte 0x020380BE +_08112BD0: .4byte 0x08112BD5 + thumb_func_end sub_08112AB4 + + thumb_func_start sub_08112BD4 +sub_08112BD4: @ 0x08112BD4 + push {r4, lr} + adds r2, r0, #0 + ldrh r3, [r2, #0x36] + movs r1, #0x36 + ldrsh r0, [r2, r1] + cmp r0, #0 + beq _08112C0C + ldrh r0, [r2, #0x32] + ldrh r4, [r2, #0x2e] + adds r0, r0, r4 + strh r0, [r2, #0x2e] + ldrh r1, [r2, #0x34] + ldrh r4, [r2, #0x30] + adds r1, r1, r4 + strh r1, [r2, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + strh r0, [r2, #0x20] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + strh r1, [r2, #0x22] + subs r0, r3, #1 + strh r0, [r2, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bne _08112C0C + strh r0, [r2, #0x2e] +_08112C0C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08112BD4 + + thumb_func_start sub_08112C14 +sub_08112C14: @ 0x08112C14 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _08112D64 + adds r1, r1, r0 + str r1, [sp] + movs r1, #0xfd + lsls r1, r1, #6 + movs r0, #0x50 + bl SetGpuReg + movs r1, #0x80 + lsls r1, r1, #5 + movs r0, #0x52 + bl SetGpuReg + 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, _08112D68 + ldrh r0, [r2] + strh r0, [r1, #0x1c] + ldr r4, _08112D6C + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoordAttr + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #8] + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08112C84 + b _08112D80 +_08112C84: + movs r4, #0 +_08112C86: + lsls r1, r4, #0x10 + asrs r3, r1, #0x10 + ldr r0, _08112D6C + ldrb r2, [r0] + str r1, [sp, #0x10] + cmp r3, r2 + beq _08112D52 + movs r0, #2 + eors r2, r0 + cmp r3, r2 + beq _08112D52 + lsls r0, r4, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08112D52 + ldr r6, [sp, #4] + ldr r3, [sp, #8] + lsls r0, r3, #0x10 + asrs r7, r0, #0x10 + ldr r0, _08112D70 + adds r1, r6, #0 + adds r2, r7, #0 + movs r3, #0x37 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + cmp r0, #0x40 + beq _08112D52 + adds r0, r4, #0 + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + adds r0, r4, #0 + movs r1, #3 + bl GetBattlerSpriteCoordAttr + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + mov r0, r8 + lsls r5, r0, #4 + add r5, r8 + lsls r5, r5, #2 + ldr r1, _08112D74 + adds r4, r5, r1 + lsls r0, r6, #4 + strh r0, [r4, #0x2e] + lsls r0, r7, #4 + strh r0, [r4, #0x30] + mov r2, sl + subs r0, r2, r6 + lsls r0, r0, #4 + ldr r3, _08112D68 + movs r2, #2 + ldrsh r1, [r3, r2] + bl __divsi3 + strh r0, [r4, #0x32] + mov r3, sb + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + subs r0, r0, r7 + lsls r0, r0, #4 + ldr r2, _08112D68 + movs r3, #2 + ldrsh r1, [r2, r3] + bl __divsi3 + strh r0, [r4, #0x34] + ldr r1, _08112D68 + ldrh r0, [r1, #2] + strh r0, [r4, #0x36] + mov r2, sl + strh r2, [r4, #0x38] + mov r3, sb + strh r3, [r4, #0x3a] + ldr r0, _08112D78 + adds r5, r5, r0 + ldr r0, _08112D7C + str r0, [r5] + ldr r2, [sp] + movs r3, #0x20 + ldrsh r1, [r2, r3] + adds r1, #0xd + lsls r1, r1, #1 + adds r0, r2, #0 + adds r0, #8 + adds r0, r0, r1 + mov r1, r8 + strh r1, [r0] + ldrh r0, [r2, #0x20] + adds r0, #1 + strh r0, [r2, #0x20] +_08112D52: + ldr r2, [sp, #0x10] + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r2, r3 + lsrs r4, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + ble _08112C86 + b _08112E04 + .align 2, 0 +_08112D64: .4byte 0x03005B60 +_08112D68: .4byte 0x020380BE +_08112D6C: .4byte 0x020380D6 +_08112D70: .4byte 0x0857299C +_08112D74: .4byte 0x020205AC +_08112D78: .4byte 0x020205C8 +_08112D7C: .4byte 0x08112BD5 +_08112D80: + ldr r0, _08112E1C + ldr r7, [sp, #4] + ldr r2, [sp, #8] + lsls r1, r2, #0x10 + asrs r1, r1, #0x10 + str r1, [sp, #0xc] + adds r1, r7, #0 + ldr r2, [sp, #0xc] + movs r3, #0x37 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + cmp r0, #0x40 + beq _08112E04 + movs r3, #0x30 + mov sl, r3 + movs r0, #0x28 + mov sb, r0 + ldr r6, _08112E20 + mov r1, r8 + lsls r5, r1, #4 + add r5, r8 + lsls r5, 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, r0, #4 + ldr r3, _08112E24 + movs r2, #2 + ldrsh r1, [r3, r2] + bl __divsi3 + strh r0, [r4, #0x32] + mov r3, sb + ldr r1, [sp, #0xc] + subs r0, r3, r1 + lsls r0, r0, #4 + ldr r2, _08112E24 + movs r3, #2 + ldrsh r1, [r2, r3] + bl __divsi3 + strh r0, [r4, #0x34] + ldr r1, _08112E24 + ldrh r0, [r1, #2] + strh r0, [r4, #0x36] + mov r2, sl + strh r2, [r4, #0x38] + mov r3, sb + strh r3, [r4, #0x3a] + adds r6, #0x1c + adds r5, r5, r6 + ldr r0, _08112E28 + str r0, [r5] + mov r1, r8 + ldr r0, [sp] + strh r1, [r0, #0x22] + movs r0, #1 + ldr r2, [sp] + strh r0, [r2, #0x20] +_08112E04: + ldr r0, _08112E2C + ldr r3, [sp] + str r0, [r3] + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08112E1C: .4byte 0x0857299C +_08112E20: .4byte 0x020205AC +_08112E24: .4byte 0x020380BE +_08112E28: .4byte 0x08112BD5 +_08112E2C: .4byte 0x08112E31 + thumb_func_end sub_08112C14 + + thumb_func_start sub_08112E30 +sub_08112E30: @ 0x08112E30 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _08112E54 + adds r4, r0, r1 + movs r0, #8 + ldrsh r1, [r4, r0] + cmp r1, #1 + beq _08112EE6 + cmp r1, #1 + bgt _08112E58 + cmp r1, #0 + beq _08112E66 + b _08112FA2 + .align 2, 0 +_08112E54: .4byte 0x03005B60 +_08112E58: + cmp r1, #2 + bne _08112E5E + b _08112F78 +_08112E5E: + cmp r1, #3 + bne _08112E64 + b _08112F8C +_08112E64: + b _08112FA2 +_08112E66: + movs r2, #0x14 + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _08112ECC + ldrh r0, [r4, #0x12] + adds r0, #1 + strh r0, [r4, #0x12] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _08112ECC + strh r1, [r4, #0x12] + ldrh r0, [r4, #0x16] + adds r0, #1 + strh r0, [r4, #0x16] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08112E9C + ldrh r1, [r4, #0x18] + movs r2, #0x18 + ldrsh r0, [r4, r2] + cmp r0, #0xf + bgt _08112EAA + adds r0, r1, #1 + strh r0, [r4, #0x18] + b _08112EAA +_08112E9C: + ldrh r1, [r4, #0x1a] + movs r2, #0x1a + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _08112EAA + subs r0, r1, #1 + strh r0, [r4, #0x1a] +_08112EAA: + ldrh r1, [r4, #0x1a] + lsls r1, r1, #8 + ldrh r0, [r4, #0x18] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r1, #0x16 + ldrsh r0, [r4, r1] + cmp r0, #0x17 + ble _08112ECC + movs r0, #0 + strh r0, [r4, #0x16] + movs r0, #1 + strh r0, [r4, #0x14] +_08112ECC: + ldrh r1, [r4, #0x1c] + movs r2, #0x1c + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _08112EDC + subs r0, r1, #1 + strh r0, [r4, #0x1c] + b _08112FA2 +_08112EDC: + movs r1, #0x14 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _08112FA2 + b _08112F84 +_08112EE6: + ldrh r0, [r4, #0x12] + adds r0, #1 + strh r0, [r4, #0x12] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _08112FA2 + movs r0, #0 + strh r0, [r4, #0x12] + ldrh r0, [r4, #0x16] + adds r0, #1 + strh r0, [r4, #0x16] + ands r0, r1 + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08112F16 + ldrh r1, [r4, #0x18] + movs r2, #0x18 + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _08112F24 + subs r0, r1, #1 + strh r0, [r4, #0x18] + b _08112F24 +_08112F16: + ldrh r1, [r4, #0x1a] + movs r2, #0x1a + ldrsh r0, [r4, r2] + cmp r0, #0xf + bgt _08112F24 + adds r0, r1, #1 + strh r0, [r4, #0x1a] +_08112F24: + ldrh r1, [r4, #0x1a] + lsls r1, r1, #8 + ldrh r0, [r4, #0x18] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + ldr r1, [r4, #0x18] + movs r0, #0x80 + lsls r0, r0, #0xd + cmp r1, r0 + bne _08112FA2 + movs r5, #0 + b _08112F68 +_08112F44: + adds r1, r5, #0 + adds r1, #0xd + lsls r1, r1, #1 + adds r0, r4, #0 + adds r0, #8 + adds r0, r0, r1 + movs r2, #0 + ldrsh r1, [r0, r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08112F74 + adds r0, r0, r1 + bl DestroySprite + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_08112F68: + movs r1, #0x20 + ldrsh r0, [r4, r1] + cmp r5, r0 + blt _08112F44 + b _08112F84 + .align 2, 0 +_08112F74: .4byte 0x020205AC +_08112F78: + ldrh r0, [r4, #0x12] + adds r0, #1 + strh r0, [r4, #0x12] + lsls r0, r0, #0x10 + cmp r0, #0 + ble _08112FA2 +_08112F84: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _08112FA2 +_08112F8C: + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + adds r0, r5, #0 + bl DestroyAnimVisualTask +_08112FA2: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_08112E30 + + thumb_func_start sub_08112FA8 +sub_08112FA8: @ 0x08112FA8 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _08112FF4 + movs r1, #0 + strh r1, [r0] + ldr r0, _08112FF8 + strh r1, [r0] + ldr r1, _08112FFC + movs r0, #0x48 + bl SetGpuReg + ldr r1, _08113000 + movs r0, #0x4a + bl SetGpuReg + movs r0, #0x50 + movs r1, #0xc8 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0x10 + bl SetGpuReg + ldr r0, _08113004 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08112FF0 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08113008 +_08112FF0: + movs r6, #0x28 + b _0811300A + .align 2, 0 +_08112FF4: .4byte 0x02022AD8 +_08112FF8: .4byte 0x02022ADA +_08112FFC: .4byte 0x00003F3F +_08113000: .4byte 0x00003F1F +_08113004: .4byte 0x020380D6 +_08113008: + movs r6, #0xc8 +_0811300A: + ldr r1, _08113048 + lsls r3, r6, #0x10 + asrs r2, r3, #0x10 + lsls r0, r2, #8 + orrs r0, r2 + strh r0, [r1] + ldr r1, _0811304C + movs r5, #0x28 + ldr r0, _08113050 + strh r0, [r1] + lsrs r3, r3, #0x10 + movs r1, #0xf0 + subs r1, r1, r2 + movs r4, #0x48 + ldr r2, _08113054 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, 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, _08113058 + str r1, [r0] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08113048: .4byte 0x02022AD8 +_0811304C: .4byte 0x02022ADA +_08113050: .4byte 0x00002828 +_08113054: .4byte 0x03005B60 +_08113058: .4byte 0x0811305D + thumb_func_end sub_08112FA8 + + thumb_func_start sub_0811305C +sub_0811305C: @ 0x0811305C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0811317C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 + ldrh r1, [r4, #8] + adds r0, r1, #1 + strh r0, [r4, #8] + ldrh r5, [r4, #0xa] + ldrh r7, [r4, #0xc] + ldrh r0, [r4, #0xe] + mov sl, r0 + ldrh r2, [r4, #0x10] + str r2, [sp, #0xc] + ldrh r0, [r4, #0x12] + ldrh r2, [r4, #0x14] + mov r8, r2 + lsls r1, r1, #0x10 + asrs r6, r1, #0x10 + cmp r6, #0xf + ble _08113098 + b _08113188 +_08113098: + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + bl __floatsidf + str r0, [sp, #0x10] + str r1, [sp, #0x14] + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + bl __floatsidf + ldr r2, _08113180 + ldr r3, _08113184 + 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, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + bl __floatsidf + ldr r2, _08113180 + ldr r3, _08113184 + 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, r0, #0x10 + lsrs r7, r0, #0x10 + mov r1, r8 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + bl __floatsidf + adds r5, r1, #0 + adds r4, r0, #0 + mov r2, sl + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + bl __floatsidf + ldr r2, _08113180 + ldr r3, _08113184 + 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, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r1, [sp, #0xc] + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + bl __floatsidf + ldr r2, _08113180 + ldr r3, _08113184 + 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, r0, #0x10 + lsrs r5, r0, #0x10 + b _081131B6 + .align 2, 0 +_0811317C: .4byte 0x03005B60 +_08113180: .4byte 0x3FB00000 +_08113184: .4byte 0x00000000 +_08113188: + movs r2, #0 + mov sb, r2 + movs r7, #0xf0 + movs r6, #0 + movs r5, #0x70 + str r6, [sp] + str r6, [sp, #4] + str r6, [sp, #8] + movs r0, #1 + movs r1, #0 + movs r3, #0 + bl sub_080A6E74 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r6, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _081131D8 + str r0, [r4] +_081131B6: + ldr r1, _081131DC + mov r2, sb + lsls r0, r2, #8 + orrs r7, r0 + strh r7, [r1] + ldr r1, _081131E0 + lsls r0, r6, #8 + orrs r5, r0 + strh r5, [r1] + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081131D8: .4byte 0x081131E5 +_081131DC: .4byte 0x02022AD8 +_081131E0: .4byte 0x02022ADA + thumb_func_end sub_0811305C + + thumb_func_start sub_081131E4 +sub_081131E4: @ 0x081131E4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _08113230 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0811322A + ldr r0, _08113234 + strh r1, [r0] + ldr r0, _08113238 + strh r1, [r0] + ldr r4, _0811323C + movs r0, #0x48 + adds r1, r4, #0 + bl SetGpuReg + movs r0, #0x4a + adds r1, r4, #0 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + adds r0, r5, #0 + bl DestroyAnimVisualTask +_0811322A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08113230: .4byte 0x02037C74 +_08113234: .4byte 0x02022AD8 +_08113238: .4byte 0x02022ADA +_0811323C: .4byte 0x00003F3F + thumb_func_end sub_081131E4 + + thumb_func_start sub_08113240 +sub_08113240: @ 0x08113240 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldr r0, _0811326C + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08113274 + movs r2, #0x18 + ldr r3, _08113270 + ldrb r0, [r4, #3] + movs r1, #0x3f + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #0x10 + orrs r1, r0 + strb r1, [r4, #3] + b _08113278 + .align 2, 0 +_0811326C: .4byte 0x020380D6 +_08113270: .4byte 0x0000FFFE +_08113274: + ldr r2, _08113294 + movs r3, #2 +_08113278: + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + ldrh r1, [r4, #0x20] + adds r0, r0, r1 + strh r0, [r4, #0x20] + strh r3, [r4, #0x30] + movs r0, #0x3c + strh r0, [r4, #0x2e] + ldr r0, _08113298 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08113294: .4byte 0x0000FFE8 +_08113298: .4byte 0x0811329D + thumb_func_end sub_08113240 + + thumb_func_start sub_0811329C +sub_0811329C: @ 0x0811329C + push {r4, lr} + adds r3, r0, #0 + ldrh r1, [r3, #0x2e] + movs r2, #0x2e + ldrsh r0, [r3, r2] + cmp r0, #0 + ble _081132AE + subs r0, r1, #1 + b _08113312 +_081132AE: + ldrh r0, [r3, #0x30] + ldrh r4, [r3, #0x24] + adds r1, r0, r4 + strh r1, [r3, #0x24] + adds r0, r1, #7 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xe + bls _08113314 + ldrh r0, [r3, #0x20] + adds r0, r0, r1 + strh r0, [r3, #0x20] + movs r0, #0 + strh r0, [r3, #0x24] + ldrh r2, [r3, #4] + lsls r1, r2, #0x16 + lsrs r1, r1, #0x16 + adds r1, #8 + ldr r4, _08113300 + adds r0, r4, #0 + ands r1, r0 + ldr r0, _08113304 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #4] + ldrh r0, [r3, #0x32] + adds r0, #1 + strh r0, [r3, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + bne _08113310 + movs r0, #0x1e + strh r0, [r3, #0x2e] + ldr r0, _08113308 + str r0, [r3, #0x1c] + ldr r1, _0811330C + adds r0, r3, #0 + bl StoreSpriteCallbackInData6 + b _08113314 + .align 2, 0 +_08113300: .4byte 0x000003FF +_08113304: .4byte 0xFFFFFC00 +_08113308: .4byte 0x080A5D79 +_0811330C: .4byte 0x0811331D +_08113310: + movs r0, #0x28 +_08113312: + strh r0, [r3, #0x2e] +_08113314: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0811329C + + thumb_func_start sub_0811331C +sub_0811331C: @ 0x0811331C + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r5, [r4, r0] + cmp r5, #0 + bne _08113346 + movs r1, #0xfd + lsls r1, r1, #6 + movs r0, #0x50 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0x10 + bl SetGpuReg + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + strh r5, [r4, #0x30] + strh r5, [r4, #0x32] + b _0811338A +_08113346: + ldrh r1, [r4, #0x30] + movs r2, #0x30 + ldrsh r0, [r4, r2] + cmp r0, #1 + bgt _08113356 + adds r0, r1, #1 + strh r0, [r4, #0x30] + b _0811338A +_08113356: + movs r0, #0 + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + movs r1, #0x10 + subs r1, r1, r0 + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0x10 + bne _0811338A + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08113390 + str r0, [r4, #0x1c] +_0811338A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08113390: .4byte 0x08113395 + thumb_func_end sub_0811331C + + thumb_func_start sub_08113394 +sub_08113394: @ 0x08113394 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + ldr r0, _081133C0 + movs r1, #0 + strh r1, [r0] + ldr r0, _081133C4 + strh r1, [r0] + adds r0, r4, #0 + bl DestroyAnimSprite + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081133C0: .4byte 0x02022AD8 +_081133C4: .4byte 0x02022ADA + thumb_func_end sub_08113394 + + thumb_func_start sub_081133C8 +sub_081133C8: @ 0x081133C8 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + movs r1, #0xc + bl Sin + strh r0, [r5, #0x24] + ldr r0, _08113430 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081133EC + ldrh r0, [r5, #0x24] + rsbs r0, r0, #0 + strh r0, [r5, #0x24] +_081133EC: + ldrh r0, [r5, #0x2e] + adds r0, #6 + movs r1, #0xff + ands r0, r1 + strh r0, [r5, #0x2e] + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r1, [r5, #0x30] + adds r0, r0, r1 + strh r0, [r5, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + rsbs r0, r0, #0 + strh r0, [r5, #0x26] + ldrh r0, [r5, #0x3c] + adds r0, #1 + strh r0, [r5, #0x3c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + bne _08113438 + ldr r0, _08113434 + strh r0, [r5, #0x3a] + movs r1, #0xfd + lsls r1, r1, #6 + movs r0, #0x50 + bl SetGpuReg + ldrh r1, [r5, #0x3a] + movs r0, #0x52 + bl SetGpuReg + b _08113490 + .align 2, 0 +_08113430: .4byte 0x020380D6 +_08113434: .4byte 0x0000050B +_08113438: + cmp r0, #0x1e + ble _08113490 + ldrh r0, [r5, #0x32] + adds r0, #1 + strh r0, [r5, #0x32] + ldrh r1, [r5, #0x3a] + lsls r0, r1, #0x10 + asrs r0, r0, #0x18 + lsls r0, r0, #0x10 + movs r6, #0xff + ands r6, r1 + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r0, r1 + lsrs r7, r0, #0x10 + cmp r7, #0x10 + bls _0811345C + movs r7, #0x10 +_0811345C: + subs r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r0, #0 + bge _08113468 + movs r6, #0 +_08113468: + lsls r4, r7, #8 + orrs r4, r6 + lsls r1, r4, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + strh r4, [r5, #0x3a] + cmp r7, #0x10 + bne _08113490 + cmp r6, #0 + bne _08113490 + adds r2, r5, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08113498 + str r0, [r5, #0x1c] +_08113490: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08113498: .4byte 0x0811349D + thumb_func_end sub_081133C8 + + thumb_func_start sub_0811349C +sub_0811349C: @ 0x0811349C + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + adds r0, r4, #0 + bl DestroyAnimSprite + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0811349C + + thumb_func_start sub_081134BC +sub_081134BC: @ 0x081134BC + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _08113554 + adds r4, r4, r0 + movs r6, #0 + strh r6, [r4, #8] + movs r0, #0x10 + mov r8, r0 + mov r0, r8 + strh r0, [r4, #0xa] + ldr r5, _08113558 + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x1a] + ldrb r0, [r5] + bl GetBattlerYCoordWithElevation + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x1c] + ldrb r0, [r5] + movs r1, #1 + bl GetBattlerSpriteCoordAttr + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + lsrs r0, r0, #0x1f + adds r1, r1, r0 + asrs r1, r1, #1 + adds r1, #8 + strh r1, [r4, #0x1e] + strh r6, [r4, #0x16] + ldrb r0, [r5] + bl GetBattlerSpriteBGPriority + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x12] + ldrb r0, [r5] + bl GetBattlerSpriteSubpriority + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, #2 + strh r0, [r4, #0x14] + strh r6, [r4, #0xe] + mov r0, r8 + strh r0, [r4, #0x10] + movs r1, #0xfd + lsls r1, r1, #6 + movs r0, #0x50 + bl SetGpuReg + movs r1, #0x80 + lsls r1, r1, #5 + movs r0, #0x52 + bl SetGpuReg + strh r6, [r4, #0x18] + ldr r0, _0811355C + str r0, [r4] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08113554: .4byte 0x03005B60 +_08113558: .4byte 0x020380D6 +_0811355C: .4byte 0x08113561 + thumb_func_end sub_081134BC + + thumb_func_start sub_08113560 +sub_08113560: @ 0x08113560 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + ldr r1, _08113584 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #5 + bls _0811357A + b _081136E6 +_0811357A: + lsls r0, r0, #2 + ldr r1, _08113588 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08113584: .4byte 0x03005B60 +_08113588: .4byte 0x0811358C +_0811358C: @ jump table + .4byte _081135A4 @ case 0 + .4byte _08113614 @ case 1 + .4byte _08113656 @ case 2 + .4byte _0811366A @ case 3 + .4byte _081136C0 @ case 4 + .4byte _081136D0 @ case 5 +_081135A4: + movs r6, #0 +_081135A6: + movs r2, #0x1a + ldrsh r1, [r4, r2] + movs r0, #0x1c + ldrsh r2, [r4, r0] + ldrb r3, [r4, #0x14] + ldr r0, _08113608 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x40 + beq _081135FA + ldr r1, _0811360C + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r5, r0, r1 + strh r7, [r5, #0x2e] + ldr r0, _08113610 + ldrb r0, [r0] + bl GetBattlerSide + movs r1, #0 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081135DC + movs r1, #1 +_081135DC: + strh r1, [r5, #0x30] + movs r0, #0x2a + muls r0, r6, r0 + movs r1, #0xff + ands r0, r1 + strh r0, [r5, #0x32] + ldrh r0, [r4, #0x1e] + strh r0, [r5, #0x34] + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r0, r0, #1 + strh r0, [r5, #0x38] + ldrh r0, [r4, #0x16] + adds r0, #1 + strh r0, [r4, #0x16] +_081135FA: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #5 + bls _081135A6 + b _081136C8 + .align 2, 0 +_08113608: .4byte 0x08572A14 +_0811360C: .4byte 0x020205AC +_08113610: .4byte 0x020380D6 +_08113614: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08113632 + ldrh r1, [r4, #0xe] + movs r2, #0xe + ldrsh r0, [r4, r2] + cmp r0, #0xd + bgt _08113640 + adds r0, r1, #1 + strh r0, [r4, #0xe] + b _08113640 +_08113632: + ldrh r1, [r4, #0x10] + movs r2, #0x10 + ldrsh r0, [r4, r2] + cmp r0, #4 + ble _08113640 + subs r0, r1, #1 + strh r0, [r4, #0x10] +_08113640: + movs r1, #0xe + ldrsh r0, [r4, r1] + ldrh r2, [r4, #0xe] + ldrh r1, [r4, #0x10] + cmp r0, #0xe + bne _081136B0 + cmp r1, #4 + bne _081136B0 + movs r0, #0 + strh r0, [r4, #0xa] + b _081136AA +_08113656: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1e + ble _081136E6 + movs r0, #0 + strh r0, [r4, #0xa] + b _081136C8 +_0811366A: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08113688 + ldrh r1, [r4, #0xe] + movs r2, #0xe + ldrsh r0, [r4, r2] + cmp r0, #0 + ble _08113696 + subs r0, r1, #1 + strh r0, [r4, #0xe] + b _08113696 +_08113688: + ldrh r1, [r4, #0x10] + movs r2, #0x10 + ldrsh r0, [r4, r2] + cmp r0, #0xf + bgt _08113696 + adds r0, r1, #1 + strh r0, [r4, #0x10] +_08113696: + movs r1, #0xe + ldrsh r0, [r4, r1] + ldrh r2, [r4, #0xe] + ldrh r1, [r4, #0x10] + cmp r0, #0 + bne _081136B0 + cmp r1, #0x10 + bne _081136B0 + movs r0, #1 + strh r0, [r4, #0x18] +_081136AA: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_081136B0: + lsls r1, r1, #8 + orrs r1, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + b _081136E6 +_081136C0: + movs r2, #0x16 + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _081136E6 +_081136C8: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _081136E6 +_081136D0: + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + adds r0, r7, #0 + bl DestroyAnimVisualTask +_081136E6: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08113560 + + thumb_func_start sub_081136EC +sub_081136EC: @ 0x081136EC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x30 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _081136FE + ldrh r0, [r4, #0x32] + adds r0, #2 + b _08113702 +_081136FE: + ldrh r0, [r4, #0x32] + subs r0, #2 +_08113702: + 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, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x7e + bhi _08113744 + ldr r2, _08113740 + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrh r1, [r0, #0x12] + adds r1, #1 + movs r0, #3 + ands r1, r0 + b _08113758 + .align 2, 0 +_08113740: .4byte 0x03005B60 +_08113744: + ldr r2, _081137AC + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r2, #3 + ldrb r1, [r0, #0x12] + ands r1, r2 +_08113758: + lsls r1, r1, #2 + ldrb r2, [r4, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #5] + ldrh r0, [r4, #0x38] + adds r0, #1 + strh r0, [r4, #0x38] + movs r1, #0x38 + ldrsh r0, [r4, r1] + lsls r0, r0, #3 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x3a] + movs r2, #0x3a + ldrsh r0, [r4, r2] + movs r1, #7 + bl Sin + strh r0, [r4, #0x26] + ldr r2, _081137AC + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r1, r0, r2 + movs r2, #0x18 + ldrsh r0, [r1, r2] + cmp r0, #0 + beq _081137A6 + ldrh r0, [r1, #0x16] + subs r0, #1 + strh r0, [r1, #0x16] + adds r0, r4, #0 + bl DestroySprite +_081137A6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081137AC: .4byte 0x03005B60 + thumb_func_end sub_081136EC + + thumb_func_start sub_081137B0 +sub_081137B0: @ 0x081137B0 + adds r3, r0, #0 + adds r3, #0x3e + ldrb r1, [r3] + movs r2, #4 + orrs r1, r2 + strb r1, [r3] + ldr r2, _081137F4 + ldr r1, _081137F8 + ldrb r1, [r1] + adds r1, 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, _081137FC + ldrh r1, [r2] + strh r1, [r0, #0x32] + ldrh r1, [r2, #2] + strh r1, [r0, #0x34] + ldr r1, _08113800 + str r1, [r0, #0x1c] + ldr r2, _08113804 + movs r3, #0x38 + ldrsh r1, [r0, r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x22] + adds r1, #8 + strh r1, [r0, #0x22] + bx lr + .align 2, 0 +_081137F4: .4byte 0x02023E88 +_081137F8: .4byte 0x020380D6 +_081137FC: .4byte 0x020380BE +_08113800: .4byte 0x08113809 +_08113804: .4byte 0x020205AC + thumb_func_end sub_081137B0 + diff --git a/asm/gpu_regs.s b/asm/gpu_regs.s new file mode 100644 index 0000000..03d63cc --- /dev/null +++ b/asm/gpu_regs.s @@ -0,0 +1,370 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start InitGpuRegManager +InitGpuRegManager: @ 0x08001074 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r2, #0 + ldr r7, _080010B8 + ldr r0, _080010BC + mov ip, r0 + ldr r1, _080010C0 + mov r8, r1 + ldr r6, _080010C4 + movs r5, #0 + ldr r4, _080010C8 + movs r3, #0xff +_0800108E: + adds r0, r2, r6 + strb r5, [r0] + adds r1, r2, r4 + ldrb r0, [r1] + orrs r0, r3 + strb r0, [r1] + adds r2, #1 + cmp r2, #0x5f + ble _0800108E + movs r0, #0 + strb r0, [r7] + mov r1, ip + strb r0, [r1] + movs r0, #0 + mov r1, r8 + strh r0, [r1] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080010B8: .4byte 0x030008D8 +_080010BC: .4byte 0x030008D9 +_080010C0: .4byte 0x030008DA +_080010C4: .4byte 0x03000818 +_080010C8: .4byte 0x03000878 + thumb_func_end InitGpuRegManager + + thumb_func_start CopyBufferedValueToGpuReg +CopyBufferedValueToGpuReg: @ 0x080010CC + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #4 + bne _080010F8 + ldr r2, _080010EC + ldrh r1, [r2] + ldr r0, _080010F0 + ands r0, r1 + strh r0, [r2] + ldr r1, _080010F4 + ldrh r0, [r2] + ldrh r1, [r1] + orrs r0, r1 + strh r0, [r2] + b _08001106 + .align 2, 0 +_080010EC: .4byte 0x04000004 +_080010F0: .4byte 0x0000FFE7 +_080010F4: .4byte 0x0300081C +_080010F8: + movs r0, #0x80 + lsls r0, r0, #0x13 + adds r0, r2, r0 + ldr r1, _0800110C + adds r1, r2, r1 + ldrh r1, [r1] + strh r1, [r0] +_08001106: + pop {r0} + bx r0 + .align 2, 0 +_0800110C: .4byte 0x03000818 + thumb_func_end CopyBufferedValueToGpuReg + + thumb_func_start CopyBufferedValuesToGpuRegs +CopyBufferedValuesToGpuRegs: @ 0x08001110 + push {r4, r5, lr} + ldr r0, _0800113C + ldrb r0, [r0] + cmp r0, #0 + bne _08001134 + movs r5, #0 +_0800111C: + ldr r0, _08001140 + adds r4, r5, r0 + ldrb r0, [r4] + cmp r0, #0xff + beq _08001134 + bl CopyBufferedValueToGpuReg + movs r0, #0xff + strb r0, [r4] + adds r5, #1 + cmp r5, #0x5f + ble _0800111C +_08001134: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0800113C: .4byte 0x030008D8 +_08001140: .4byte 0x03000878 + thumb_func_end CopyBufferedValuesToGpuRegs + + thumb_func_start SetGpuReg +SetGpuReg: @ 0x08001144 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + cmp r4, #0x5f + bhi _080011C0 + ldr r0, _08001180 + adds r0, r4, r0 + strh r1, [r0] + ldr r0, _08001184 + ldrh r1, [r0] + movs r0, #0xff + ands r0, r1 + subs r0, #0xa1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x40 + bls _08001178 + movs r0, #0x80 + lsls r0, r0, #0x13 + ldrh r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0800118E +_08001178: + adds r0, r4, #0 + bl CopyBufferedValueToGpuReg + b _080011C0 + .align 2, 0 +_08001180: .4byte 0x03000818 +_08001184: .4byte 0x04000006 +_08001188: + movs r0, #0 + strb r0, [r5] + b _080011C0 +_0800118E: + ldr r2, _080011C8 + movs r0, #1 + strb r0, [r2] + movs r3, #0 + ldr r0, _080011CC + ldrb r1, [r0] + adds r5, r2, #0 + adds r2, r0, #0 + cmp r1, #0xff + beq _080011B8 + adds r1, r2, #0 +_080011A4: + ldrb r0, [r1] + cmp r0, r4 + beq _08001188 + adds r1, #1 + adds r3, #1 + cmp r3, #0x5f + bgt _080011B8 + ldrb r0, [r1] + cmp r0, #0xff + bne _080011A4 +_080011B8: + adds r0, r3, r2 + movs r1, #0 + strb r4, [r0] + strb r1, [r5] +_080011C0: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080011C8: .4byte 0x030008D8 +_080011CC: .4byte 0x03000878 + thumb_func_end SetGpuReg + + thumb_func_start GetGpuReg +GetGpuReg: @ 0x080011D0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + cmp r1, #4 + bne _080011E4 + ldr r0, _080011E0 + b _080011F6 + .align 2, 0 +_080011E0: .4byte 0x04000004 +_080011E4: + cmp r1, #6 + beq _080011F4 + ldr r0, _080011F0 + adds r0, r1, r0 + ldrh r0, [r0] + b _080011F8 + .align 2, 0 +_080011F0: .4byte 0x03000818 +_080011F4: + ldr r0, _080011FC +_080011F6: + ldrh r0, [r0] +_080011F8: + pop {r1} + bx r1 + .align 2, 0 +_080011FC: .4byte 0x04000006 + thumb_func_end GetGpuReg + + thumb_func_start SetGpuRegBits +SetGpuRegBits: @ 0x08001200 + push {lr} + adds r2, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0800121C + adds r1, r0, r1 + ldrh r1, [r1] + orrs r1, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 +_0800121C: .4byte 0x03000818 + thumb_func_end SetGpuRegBits + + thumb_func_start ClearGpuRegBits +ClearGpuRegBits: @ 0x08001220 + push {lr} + adds r2, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r2, #0x10 + ldr r1, _0800123C + adds r1, r0, r1 + ldrh r1, [r1] + lsrs r2, r2, #0x10 + bics r1, r2 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 +_0800123C: .4byte 0x03000818 + thumb_func_end ClearGpuRegBits + + thumb_func_start SyncRegIE +SyncRegIE: @ 0x08001240 + push {r4, r5, lr} + ldr r5, _08001264 + ldrb r0, [r5] + cmp r0, #0 + beq _0800125E + ldr r2, _08001268 + ldrh r1, [r2] + movs r4, #0 + strh r4, [r2] + ldr r3, _0800126C + ldr r0, _08001270 + ldrh r0, [r0] + strh r0, [r3] + strh r1, [r2] + strb r4, [r5] +_0800125E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08001264: .4byte 0x030008D9 +_08001268: .4byte 0x04000208 +_0800126C: .4byte 0x04000200 +_08001270: .4byte 0x030008DA + thumb_func_end SyncRegIE + + thumb_func_start EnableInterrupts +EnableInterrupts: @ 0x08001274 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _08001298 + ldrh r1, [r4] + orrs r0, r1 + strh r0, [r4] + ldr r1, _0800129C + movs r0, #1 + strb r0, [r1] + bl SyncRegIE + ldrh r0, [r4] + bl UpdateRegDispstatIntrBits + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08001298: .4byte 0x030008DA +_0800129C: .4byte 0x030008D9 + thumb_func_end EnableInterrupts + + thumb_func_start DisableInterrupts +DisableInterrupts: @ 0x080012A0 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _080012C4 + ldrh r1, [r4] + bics r1, r0 + strh r1, [r4] + ldr r1, _080012C8 + movs r0, #1 + strb r0, [r1] + bl SyncRegIE + ldrh r0, [r4] + bl UpdateRegDispstatIntrBits + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080012C4: .4byte 0x030008DA +_080012C8: .4byte 0x030008D9 + thumb_func_end DisableInterrupts + + thumb_func_start UpdateRegDispstatIntrBits +UpdateRegDispstatIntrBits: @ 0x080012CC + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + movs r0, #4 + bl GetGpuReg + movs r2, #0x18 + ands r2, r0 + movs r1, #1 + ands r1, r4 + rsbs r0, r1, #0 + orrs r0, r1 + asrs r1, r0, #0x1f + movs r0, #8 + ands r1, r0 + movs r0, #2 + ands r0, r4 + cmp r0, #0 + beq _080012F8 + movs r0, #0x10 + orrs r1, r0 +_080012F8: + cmp r2, r1 + beq _08001302 + movs r0, #4 + bl SetGpuReg +_08001302: + pop {r4} + pop {r0} + bx r0 + thumb_func_end UpdateRegDispstatIntrBits + diff --git a/asm/ground.s b/asm/ground.s new file mode 100644 index 0000000..d14ef88 --- /dev/null +++ b/asm/ground.s @@ -0,0 +1,1786 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start AnimBonemerangProjectile +AnimBonemerangProjectile: @ 0x081151E4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0811523C + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x20] + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x22] + movs r0, #0x14 + strh r0, [r4, #0x2e] + ldr r5, _08115240 + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x32] + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x36] + ldr r0, _08115244 + strh r0, [r4, #0x38] + adds r0, r4, #0 + bl InitAnimArcTranslation + ldr r0, _08115248 + str r0, [r4, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0811523C: .4byte 0x020380D6 +_08115240: .4byte 0x020380D7 +_08115244: .4byte 0x0000FFD8 +_08115248: .4byte 0x0811524D + thumb_func_end AnimBonemerangProjectile + + thumb_func_start AnimBonemerangProjectileStep +AnimBonemerangProjectileStep: @ 0x0811524C + push {r4, r5, lr} + adds r5, r0, #0 + bl TranslateAnimHorizontalArc + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081152A0 + ldrh r0, [r5, #0x24] + ldrh r1, [r5, #0x20] + adds r0, r0, r1 + movs r1, #0 + strh r0, [r5, #0x20] + ldrh r0, [r5, #0x26] + ldrh r2, [r5, #0x22] + adds r0, r0, r2 + strh r0, [r5, #0x22] + strh r1, [r5, #0x26] + strh r1, [r5, #0x24] + movs r0, #0x14 + strh r0, [r5, #0x2e] + ldr r4, _081152A8 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x32] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x36] + movs r0, #0x28 + strh r0, [r5, #0x38] + adds r0, r5, #0 + bl InitAnimArcTranslation + ldr r0, _081152AC + str r0, [r5, #0x1c] +_081152A0: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081152A8: .4byte 0x020380D6 +_081152AC: .4byte 0x081152B1 + thumb_func_end AnimBonemerangProjectileStep + + thumb_func_start AnimFissureDirtPlumeParticleStep +AnimFissureDirtPlumeParticleStep: @ 0x081152B0 + push {r4, lr} + adds r4, r0, #0 + bl TranslateAnimHorizontalArc + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081152C4 + adds r0, r4, #0 + bl DestroyAnimSprite +_081152C4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AnimFissureDirtPlumeParticleStep + + thumb_func_start AnimBoneHitProjectile +AnimBoneHitProjectile: @ 0x081152CC + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimTarget + ldr r0, _0811532C + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081152EC + ldr r1, _08115330 + ldrh r0, [r1, #4] + rsbs r0, r0, #0 + strh r0, [r1, #4] +_081152EC: + ldr r4, _08115330 + ldrh r0, [r4, #8] + strh r0, [r6, #0x2e] + ldr r5, _08115334 + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #4] + adds r0, r0, r1 + strh r0, [r6, #0x32] + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r4, [r4, #6] + adds r0, r0, r4 + strh r0, [r6, #0x36] + ldr r0, _08115338 + str r0, [r6, #0x1c] + ldr r1, _0811533C + adds r0, r6, #0 + bl StoreSpriteCallbackInData6 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0811532C: .4byte 0x020380D6 +_08115330: .4byte 0x020380BE +_08115334: .4byte 0x020380D7 +_08115338: .4byte 0x080A67B5 +_0811533C: .4byte 0x080A34C5 + thumb_func_end AnimBoneHitProjectile + + thumb_func_start AnimDirtScatter +AnimDirtScatter: @ 0x08115340 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldr r4, _081153C0 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord2 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + bl Random2 + movs r4, #0x1f + adds r5, r4, #0 + ands r5, r0 + bl Random2 + ands r4, r0 + adds r1, r5, #0 + cmp r1, #0x10 + ble _08115388 + movs r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_08115388: + lsls r0, r4, #0x10 + asrs r1, r0, #0x10 + cmp r1, #0x10 + ble _08115398 + movs r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_08115398: + ldr r0, _081153C4 + ldrh r0, [r0, #4] + 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, _081153C8 + str r0, [r6, #0x1c] + ldr r1, _081153CC + adds r0, r6, #0 + bl StoreSpriteCallbackInData6 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081153C0: .4byte 0x020380D7 +_081153C4: .4byte 0x020380BE +_081153C8: .4byte 0x080A67B5 +_081153CC: .4byte 0x080A6015 + thumb_func_end AnimDirtScatter + + thumb_func_start AnimMudSportDirt +AnimMudSportDirt: @ 0x081153D0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrh r2, [r5, #4] + lsls r1, r2, #0x16 + lsrs r1, r1, #0x16 + adds r1, #1 + ldr r3, _08115430 + adds r0, r3, #0 + ands r1, r0 + ldr r0, _08115434 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, #4] + ldr r6, _08115438 + movs r1, #0 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _08115444 + ldr r4, _0811543C + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r2, [r6, #2] + adds r0, r0, r2 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r3, [r6, #4] + adds r0, r0, r3 + strh r0, [r5, #0x22] + movs r1, #2 + ldrsh r0, [r6, r1] + movs r2, #1 + rsbs r2, r2, #0 + adds r1, r2, #0 + cmp r0, #0 + ble _0811542A + movs r1, #1 +_0811542A: + strh r1, [r5, #0x2e] + ldr r0, _08115440 + b _08115452 + .align 2, 0 +_08115430: .4byte 0x000003FF +_08115434: .4byte 0xFFFFFC00 +_08115438: .4byte 0x020380BE +_0811543C: .4byte 0x020380D6 +_08115440: .4byte 0x08115461 +_08115444: + ldrh r0, [r6, #2] + strh r0, [r5, #0x20] + ldrh r0, [r6, #4] + strh r0, [r5, #0x22] + rsbs r0, r0, #0 + strh r0, [r5, #0x26] + ldr r0, _0811545C +_08115452: + str r0, [r5, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0811545C: .4byte 0x0811549D + thumb_func_end AnimMudSportDirt + + thumb_func_start AnimMudSportDirtRising +AnimMudSportDirtRising: @ 0x08115460 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x30] + adds r0, #1 + strh r0, [r2, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _0811547E + movs r0, #0 + strh r0, [r2, #0x30] + ldrh r0, [r2, #0x2e] + ldrh r1, [r2, #0x20] + adds r0, r0, r1 + strh r0, [r2, #0x20] +_0811547E: + ldrh r0, [r2, #0x22] + subs r0, #4 + strh r0, [r2, #0x22] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #4 + rsbs r1, r1, #0 + cmp r0, r1 + bge _08115496 + adds r0, r2, #0 + bl DestroyAnimSprite +_08115496: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AnimMudSportDirtRising + + thumb_func_start AnimMudSportDirtFalling +AnimMudSportDirtFalling: @ 0x0811549C + push {lr} + adds r3, r0, #0 + movs r0, #0x2e + ldrsh r1, [r3, r0] + cmp r1, #0 + beq _081154AE + cmp r1, #1 + beq _081154C4 + b _08115506 +_081154AE: + ldrh r0, [r3, #0x26] + adds r0, #4 + strh r0, [r3, #0x26] + lsls r0, r0, #0x10 + cmp r0, #0 + blt _08115506 + strh r1, [r3, #0x26] + ldrh r0, [r3, #0x2e] + adds r0, #1 + strh r0, [r3, #0x2e] + b _08115506 +_081154C4: + ldrh r0, [r3, #0x30] + adds r0, #1 + strh r0, [r3, #0x30] + lsls r0, r0, #0x10 + cmp r0, #0 + ble _08115506 + movs r0, #0 + strh r0, [r3, #0x30] + movs r1, #0x3e + adds r1, r1, r3 + mov ip, r1 + ldrb r2, [r1] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrh r0, [r3, #0x32] + adds r0, #1 + strh r0, [r3, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xa + bne _08115506 + adds r0, r3, #0 + bl DestroyAnimSprite +_08115506: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AnimMudSportDirtFalling + + thumb_func_start sub_0811550C +sub_0811550C: @ 0x0811550C + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _0811552C + adds r1, r0, r1 + ldr r0, _08115530 + movs r3, #0 + ldrsh r0, [r0, r3] + cmp r0, #0 + bne _08115538 + ldr r0, _08115534 + b _0811553A + .align 2, 0 +_0811552C: .4byte 0x03005B60 +_08115530: .4byte 0x020380BE +_08115534: .4byte 0x0811554D +_08115538: + ldr r0, _08115548 +_0811553A: + str r0, [r1] + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_08115548: .4byte 0x08115705 + thumb_func_end sub_0811550C + + thumb_func_start sub_0811554C +sub_0811554C: @ 0x0811554C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _08115570 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #4 + bls _08115566 + b _081156FA +_08115566: + lsls r0, r0, #2 + ldr r1, _08115574 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08115570: .4byte 0x03005B60 +_08115574: .4byte 0x08115578 +_08115578: @ jump table + .4byte _0811558C @ case 0 + .4byte _08115614 @ case 1 + .4byte _08115624 @ case 2 + .4byte _081156C8 @ case 3 + .4byte _081156DC @ case 4 +_0811558C: + movs r0, #0 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x1c] + ldr r0, _081155B4 + ldrb r0, [r0] + bl GetBattlerSpriteBGPriorityRank + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x1e] + cmp r0, #1 + bne _081155C0 + ldr r0, _081155B8 + ldrh r0, [r0] + strh r0, [r4, #0x20] + ldr r0, _081155BC + b _081155C8 + .align 2, 0 +_081155B4: .4byte 0x020380D6 +_081155B8: .4byte 0x02022ACC +_081155BC: .4byte 0x02022ACE +_081155C0: + ldr r0, _08115604 + ldrh r0, [r0] + strh r0, [r4, #0x20] + ldr r0, _08115608 +_081155C8: + ldrh r0, [r0] + strh r0, [r4, #0x22] + ldr r0, _0811560C + ldrb r0, [r0] + bl GetBattlerYCoordWithElevation + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + subs r1, #0x20 + strh r1, [r4, #0x24] + adds r0, #0x20 + strh r0, [r4, #0x26] + cmp r1, #0 + bge _081155EA + movs r0, #0 + strh r0, [r4, #0x24] +_081155EA: + ldr r2, _08115610 + movs r3, #0x1c + ldrsh r1, [r4, r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + b _081156CE + .align 2, 0 +_08115604: .4byte 0x02022AD0 +_08115608: .4byte 0x02022AD2 +_0811560C: .4byte 0x020380D6 +_08115610: .4byte 0x020205AC +_08115614: + ldrb r0, [r4, #0x1e] + movs r2, #0x24 + ldrsh r1, [r4, r2] + movs r3, #0x26 + ldrsh r2, [r4, r3] + bl sub_08115930 + b _081156CE +_08115624: + ldrh r0, [r4, #0xc] + adds r0, #6 + movs r1, #0x7f + ands r0, r1 + strh r0, [r4, #0xc] + ldrh r0, [r4, #0x10] + adds r0, #1 + strh r0, [r4, #0x10] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + ble _08115646 + movs r0, #0 + strh r0, [r4, #0x10] + ldrh r0, [r4, #0xe] + adds r0, #1 + strh r0, [r4, #0xe] +_08115646: + ldr r1, _08115668 + movs r2, #0xc + ldrsh r0, [r4, r2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + ldrh r3, [r4, #0xe] + adds r2, r0, r3 + strh r2, [r4, #0x12] + movs r1, #0x1e + ldrsh r0, [r4, r1] + cmp r0, #1 + bne _08115670 + ldr r1, _0811566C + b _08115672 + .align 2, 0 +_08115668: .4byte 0x082FA8CC +_0811566C: .4byte 0x02022ACE +_08115670: + ldr r1, _08115694 +_08115672: + ldrh r0, [r4, #0x22] + subs r0, r0, r2 + strh r0, [r1] + movs r2, #0x12 + ldrsh r0, [r4, r2] + cmp r0, #0x3f + ble _081156FA + ldrh r0, [r4, #0x24] + movs r1, #0x78 + subs r2, r1, r0 + strh r2, [r4, #0x12] + movs r3, #0x1e + ldrsh r0, [r4, r3] + cmp r0, #1 + bne _0811569C + ldr r1, _08115698 + b _0811569E + .align 2, 0 +_08115694: .4byte 0x02022AD2 +_08115698: .4byte 0x02022ACE +_0811569C: + ldr r1, _081156C0 +_0811569E: + ldrh r0, [r4, #0x22] + subs r0, r0, r2 + strh r0, [r1] + ldr r2, _081156C4 + movs r1, #0x1c + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r2, [r1, #0x20] + movs r3, #0x88 + lsls r3, r3, #1 + adds r0, r3, #0 + subs r0, r0, r2 + strh r0, [r1, #0x24] + b _081156CE + .align 2, 0 +_081156C0: .4byte 0x02022AD2 +_081156C4: .4byte 0x020205AC +_081156C8: + ldr r1, _081156D8 + movs r0, #3 + strb r0, [r1, #0x15] +_081156CE: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _081156FA + .align 2, 0 +_081156D8: .4byte 0x020397C8 +_081156DC: + adds r0, r2, #0 + bl DestroyAnimVisualTask + ldr r2, _08115700 + movs r0, #0x1c + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_081156FA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08115700: .4byte 0x020205AC + thumb_func_end sub_0811554C + + thumb_func_start sub_08115704 +sub_08115704: @ 0x08115704 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r0, #0 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08115744 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + adds r3, r1, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r2, #4 + orrs r0, r2 + strb r0, [r3] + movs r4, #0 + strh r4, [r1, #0x24] + strh r4, [r1, #0x26] + ldr r0, _08115748 + ldrb r0, [r0] + bl GetBattlerSpriteBGPriorityRank + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08115750 + ldr r0, _0811574C + b _08115752 + .align 2, 0 +_08115744: .4byte 0x020205AC +_08115748: .4byte 0x020380D6 +_0811574C: .4byte 0x02022ACE +_08115750: + ldr r0, _08115760 +_08115752: + strh r4, [r0] + adds r0, r5, #0 + bl DestroyAnimVisualTask + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08115760: .4byte 0x02022AD2 + thumb_func_end sub_08115704 + + thumb_func_start sub_08115764 +sub_08115764: @ 0x08115764 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _08115784 + adds r1, r0, r1 + ldr r0, _08115788 + movs r3, #0 + ldrsh r0, [r0, r3] + cmp r0, #0 + bne _08115790 + ldr r0, _0811578C + b _08115792 + .align 2, 0 +_08115784: .4byte 0x03005B60 +_08115788: .4byte 0x020380BE +_0811578C: .4byte 0x081157A5 +_08115790: + ldr r0, _081157A0 +_08115792: + str r0, [r1] + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_081157A0: .4byte 0x08115829 + thumb_func_end sub_08115764 + + thumb_func_start sub_081157A4 +sub_081157A4: @ 0x081157A4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _081157C4 + adds r4, r0, r1 + movs r0, #8 + ldrsh r5, [r4, r0] + cmp r5, #0 + beq _081157C8 + cmp r5, #1 + beq _0811581C + b _08115822 + .align 2, 0 +_081157C4: .4byte 0x03005B60 +_081157C8: + movs r0, #0 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x1c] + ldr r3, _08115818 + movs r0, #0x1c + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + movs r0, #0x1c + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r5, [r0, #0x24] + movs r1, #0x1c + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrh r2, [r1, #0x22] + movs r0, #0xa0 + subs r0, r0, r2 + strh r0, [r1, #0x26] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _08115822 + .align 2, 0 +_08115818: .4byte 0x020205AC +_0811581C: + adds r0, r2, #0 + bl DestroyAnimVisualTask +_08115822: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_081157A4 + + thumb_func_start sub_08115828 +sub_08115828: @ 0x08115828 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _0811584C + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #4 + bhi _0811592A + lsls r0, r0, #2 + ldr r1, _08115850 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0811584C: .4byte 0x03005B60 +_08115850: .4byte 0x08115854 +_08115854: @ jump table + .4byte _08115868 @ case 0 + .4byte _081158BC @ case 1 + .4byte _081158CA @ case 2 + .4byte _081158E4 @ case 3 + .4byte _08115924 @ case 4 +_08115868: + movs r0, #0 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x1c] + ldr r0, _0811588C + ldrb r0, [r0] + bl GetBattlerSpriteBGPriorityRank + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x1e] + cmp r0, #1 + bne _08115894 + ldr r0, _08115890 + b _08115896 + .align 2, 0 +_0811588C: .4byte 0x020380D6 +_08115890: .4byte 0x02022ACC +_08115894: + ldr r0, _081158B4 +_08115896: + ldrh r0, [r0] + strh r0, [r4, #0x20] + ldr r0, _081158B8 + ldrb r0, [r0] + bl GetBattlerYCoordWithElevation + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + subs r1, #0x20 + strh r1, [r4, #0x24] + adds r0, #0x20 + strh r0, [r4, #0x26] + b _08115912 + .align 2, 0 +_081158B4: .4byte 0x02022AD0 +_081158B8: .4byte 0x020380D6 +_081158BC: + ldrb r0, [r4, #0x1e] + movs r1, #0x26 + ldrsh r2, [r4, r1] + movs r1, #0 + bl sub_08115930 + b _08115912 +_081158CA: + ldr r2, _081158E0 + movs r0, #0x1c + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0x60 + strh r1, [r0, #0x26] + b _08115912 + .align 2, 0 +_081158E0: .4byte 0x020205AC +_081158E4: + ldr r2, _0811591C + movs r0, #0x1c + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x26] + subs r1, #8 + strh r1, [r0, #0x26] + movs r0, #0x1c + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0x26 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _0811592A + ldr r1, _08115920 + movs r0, #3 + strb r0, [r1, #0x15] +_08115912: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _0811592A + .align 2, 0 +_0811591C: .4byte 0x020205AC +_08115920: .4byte 0x020397C8 +_08115924: + adds r0, r2, #0 + bl DestroyAnimVisualTask +_0811592A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08115828 + + thumb_func_start sub_08115930 +sub_08115930: @ 0x08115930 + push {r4, r5, r6, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r4, r2, #0x10 + cmp r0, #1 + bne _08115954 + ldr r0, _0811594C + ldrh r3, [r0] + ldr r0, _08115950 + b _0811595A + .align 2, 0 +_0811594C: .4byte 0x02022ACC +_08115950: .4byte 0x04000014 +_08115954: + ldr r0, _081159E0 + ldrh r3, [r0] + ldr r0, _081159E4 +_0811595A: + str r0, [sp] + lsls r0, r1, #0x10 + cmp r0, #0 + bge _08115964 + movs r1, #0 +_08115964: + lsls r2, r1, #0x10 + lsls r0, r4, #0x10 + asrs r4, r0, #0x10 + cmp r2, r0 + bge _08115990 + ldr r5, _081159E8 + movs r0, #0xf0 + lsls r0, r0, #3 + adds r6, r5, r0 +_08115976: + asrs r2, r2, #0x10 + lsls r1, r2, #1 + adds r0, r1, r5 + strh r3, [r0] + adds r1, r1, r6 + strh r3, [r1] + adds r2, #1 + lsls r2, r2, #0x10 + lsrs r1, r2, #0x10 + lsls r2, r1, #0x10 + asrs r0, r2, #0x10 + cmp r0, r4 + blt _08115976 +_08115990: + lsls r1, r1, #0x10 + asrs r0, r1, #0x10 + cmp r0, #0x9f + bgt _081159BE + ldr r4, _081159E8 + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + adds r3, r0, #0 + adds r3, #0xf0 + movs r0, #0xf0 + lsls r0, r0, #3 + adds r5, r4, r0 +_081159A8: + asrs r2, r1, #0x10 + lsls r1, r2, #1 + adds r0, r1, r4 + strh r3, [r0] + adds r1, r1, r5 + strh r3, [r1] + adds r2, #1 + lsls r1, r2, #0x10 + asrs r0, r1, #0x10 + cmp r0, #0x9f + ble _081159A8 +_081159BE: + ldr r0, _081159EC + str r0, [sp, #4] + mov r1, sp + movs r2, #0 + movs r0, #1 + strb r0, [r1, #8] + mov r0, sp + strb r2, [r0, #9] + ldr r0, [sp] + ldr r1, [sp, #4] + ldr r2, [sp, #8] + bl ScanlineEffect_SetParams + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081159E0: .4byte 0x02022AD0 +_081159E4: .4byte 0x04000018 +_081159E8: .4byte 0x020388C8 +_081159EC: .4byte 0xA2600001 + thumb_func_end sub_08115930 + + thumb_func_start AnimFissureDirtPlumeParticle +AnimFissureDirtPlumeParticle: @ 0x081159F0 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldr r0, _08115A04 + movs r2, #0 + ldrsh r1, [r0, r2] + adds r7, r0, #0 + cmp r1, #0 + bne _08115A0C + ldr r0, _08115A08 + b _08115A0E + .align 2, 0 +_08115A04: .4byte 0x020380BE +_08115A08: .4byte 0x020380D6 +_08115A0C: + ldr r0, _08115A70 +_08115A0E: + ldrb r4, [r0] + movs r6, #0x18 + adds r1, r7, #0 + movs r2, #2 + ldrsh r0, [r1, r2] + cmp r0, #1 + bne _08115A2A + rsbs r0, r6, #0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + movs r2, #4 + ldrsh r0, [r1, r2] + rsbs r0, r0, #0 + strh r0, [r1, #4] +_08115A2A: + adds r0, r4, #0 + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r6 + strh r0, [r5, #0x20] + adds r0, r4, #0 + bl GetBattlerYCoordWithElevation + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #0x1e + strh r0, [r5, #0x22] + ldrh r1, [r7, #0xa] + strh r1, [r5, #0x2e] + ldrh r1, [r7, #4] + ldrh r2, [r5, #0x20] + adds r1, r1, r2 + strh r1, [r5, #0x32] + ldrh r1, [r7, #6] + adds r0, r0, r1 + strh r0, [r5, #0x36] + ldrh r0, [r7, #8] + strh r0, [r5, #0x38] + adds r0, r5, #0 + bl InitAnimArcTranslation + ldr r0, _08115A74 + str r0, [r5, #0x1c] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08115A70: .4byte 0x020380D7 +_08115A74: .4byte 0x08115A79 + thumb_func_end AnimFissureDirtPlumeParticle + + thumb_func_start AnimBonemerangProjectileEnd +AnimBonemerangProjectileEnd: @ 0x08115A78 + push {r4, lr} + adds r4, r0, #0 + bl TranslateAnimHorizontalArc + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08115A8C + adds r0, r4, #0 + bl DestroyAnimSprite +_08115A8C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AnimBonemerangProjectileEnd + + thumb_func_start AnimDigDirtMound +AnimDigDirtMound: @ 0x08115A94 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r0, _08115AA8 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08115AB0 + ldr r0, _08115AAC + b _08115AB2 + .align 2, 0 +_08115AA8: .4byte 0x020380BE +_08115AAC: .4byte 0x020380D6 +_08115AB0: + ldr r0, _08115B10 +_08115AB2: + ldrb r5, [r0] + adds r0, r5, #0 + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08115B14 + adds r0, r0, r2 + ldr r4, _08115B18 + movs r3, #2 + ldrsh r1, [r4, r3] + lsls r1, r1, #5 + adds r0, r0, r1 + strh r0, [r6, #0x20] + adds r0, r5, #0 + bl GetBattlerYCoordWithElevation + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #0x20 + strh r0, [r6, #0x22] + ldrh r2, [r6, #4] + lsls r1, r2, #0x16 + lsrs r1, r1, #0x16 + movs r3, #2 + ldrsh r0, [r4, r3] + lsls r0, r0, #3 + adds r1, r1, r0 + ldr r3, _08115B1C + adds r0, r3, #0 + ands r1, r0 + ldr r0, _08115B20 + ands r0, r2 + orrs r0, r1 + strh r0, [r6, #4] + ldr r1, _08115B24 + adds r0, r6, #0 + bl StoreSpriteCallbackInData6 + ldrh r0, [r4, #4] + strh r0, [r6, #0x2e] + ldr r0, _08115B28 + str r0, [r6, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08115B10: .4byte 0x020380D7 +_08115B14: .4byte 0x0000FFF0 +_08115B18: .4byte 0x020380BE +_08115B1C: .4byte 0x000003FF +_08115B20: .4byte 0xFFFFFC00 +_08115B24: .4byte 0x080A34C5 +_08115B28: .4byte 0x080A5D79 + thumb_func_end AnimDigDirtMound + + thumb_func_start sub_08115B2C +sub_08115B2C: @ 0x08115B2C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _08115B50 + adds r4, r0, r1 + ldr r0, _08115B54 + ldrh r2, [r0, #2] + movs r3, #2 + ldrsh r1, [r0, r3] + adds r6, r0, #0 + cmp r1, #0 + beq _08115B58 + adds r0, r2, #3 + b _08115B64 + .align 2, 0 +_08115B50: .4byte 0x03005B60 +_08115B54: .4byte 0x020380BE +_08115B58: + ldr r0, _08115B84 + ldrh r0, [r0] + movs r1, #0xa + bl __udivsi3 + adds r0, #3 +_08115B64: + strh r0, [r4, #0x26] + strh r0, [r4, #0x24] + adds r1, r6, #0 + ldrh r0, [r1, #4] + strh r0, [r4, #0xe] + movs r2, #0 + ldrsh r0, [r1, r2] + cmp r0, #4 + beq _08115B90 + cmp r0, #5 + bne _08115BD0 + ldr r0, _08115B88 + ldrh r0, [r0] + strh r0, [r4, #0x22] + ldr r0, _08115B8C + b _08115BEE + .align 2, 0 +_08115B84: .4byte 0x020380A8 +_08115B88: .4byte 0x02022AD4 +_08115B8C: .4byte 0x08115BFD +_08115B90: + movs r0, #0 + strh r0, [r4, #0x22] + movs r5, #0 +_08115B96: + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08115BC0 + movs r3, #0x22 + ldrsh r0, [r4, r3] + adds r0, #9 + lsls r0, r0, #1 + adds r1, r4, #0 + adds r1, #8 + adds r1, r1, r0 + ldr r0, _08115BCC + adds r0, r5, r0 + ldrb r0, [r0] + strh r0, [r1] + ldrh r0, [r4, #0x22] + adds r0, #1 + strh r0, [r4, #0x22] +_08115BC0: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #3 + bls _08115B96 + b _08115BEC + .align 2, 0 +_08115BCC: .4byte 0x02023E88 +_08115BD0: + ldrb r0, [r6] + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x1a] + cmp r0, #0xff + bne _08115BE8 + adds r0, r5, #0 + bl DestroyAnimVisualTask + b _08115BF0 +_08115BE8: + movs r0, #1 + strh r0, [r4, #0x22] +_08115BEC: + ldr r0, _08115BF8 +_08115BEE: + str r0, [r4] +_08115BF0: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08115BF8: .4byte 0x08115CF5 + thumb_func_end sub_08115B2C + + thumb_func_start sub_08115BFC +sub_08115BFC: @ 0x08115BFC + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _08115C20 + adds r3, r0, r1 + movs r0, #8 + ldrsh r1, [r3, r0] + cmp r1, #1 + beq _08115C80 + cmp r1, #1 + bgt _08115C24 + cmp r1, #0 + beq _08115C2A + b _08115CEC + .align 2, 0 +_08115C20: .4byte 0x03005B60 +_08115C24: + cmp r1, #2 + beq _08115CE0 + b _08115CEC +_08115C2A: + ldrh r0, [r3, #0xa] + adds r0, #1 + strh r0, [r3, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _08115CEC + strh r1, [r3, #0xa] + ldrh r1, [r3, #0xc] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08115C54 + ldr r1, _08115C50 + ldrh r0, [r3, #0x26] + ldrh r2, [r3, #0x22] + adds r0, r0, r2 + strh r0, [r1] + b _08115C5E + .align 2, 0 +_08115C50: .4byte 0x02022AD4 +_08115C54: + ldr r0, _08115C7C + ldrh r1, [r3, #0x22] + ldrh r2, [r3, #0x26] + subs r1, r1, r2 + strh r1, [r0] +_08115C5E: + ldrh r0, [r3, #0xc] + adds r0, #1 + strh r0, [r3, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0xe + ldrsh r1, [r3, r2] + cmp r0, r1 + bne _08115CEC + movs r0, #0 + strh r0, [r3, #0xc] + ldrh r0, [r3, #0x24] + subs r0, #1 + strh r0, [r3, #0x24] + b _08115CD4 + .align 2, 0 +_08115C7C: .4byte 0x02022AD4 +_08115C80: + ldrh r0, [r3, #0xa] + adds r0, #1 + strh r0, [r3, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _08115CEC + movs r0, #0 + strh r0, [r3, #0xa] + ldrh r0, [r3, #0xc] + ands r1, r0 + cmp r1, #0 + bne _08115CAC + ldr r1, _08115CA8 + ldrh r0, [r3, #0x24] + ldrh r2, [r3, #0x22] + adds r0, r0, r2 + strh r0, [r1] + b _08115CB6 + .align 2, 0 +_08115CA8: .4byte 0x02022AD4 +_08115CAC: + ldr r0, _08115CDC + ldrh r1, [r3, #0x22] + ldrh r2, [r3, #0x24] + subs r1, r1, r2 + strh r1, [r0] +_08115CB6: + ldrh r0, [r3, #0xc] + adds r0, #1 + strh r0, [r3, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + bne _08115CEC + movs r0, #0 + strh r0, [r3, #0xc] + ldrh r0, [r3, #0x24] + subs r0, #1 + strh r0, [r3, #0x24] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08115CEC +_08115CD4: + ldrh r0, [r3, #8] + adds r0, #1 + strh r0, [r3, #8] + b _08115CEC + .align 2, 0 +_08115CDC: .4byte 0x02022AD4 +_08115CE0: + ldr r1, _08115CF0 + ldrh r0, [r3, #0x22] + strh r0, [r1] + adds r0, r2, #0 + bl DestroyAnimVisualTask +_08115CEC: + pop {r0} + bx r0 + .align 2, 0 +_08115CF0: .4byte 0x02022AD4 + thumb_func_end sub_08115BFC + + thumb_func_start sub_08115CF4 +sub_08115CF4: @ 0x08115CF4 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #3 + ldr r1, _08115D18 + adds r4, r0, r1 + movs r0, #8 + ldrsh r5, [r4, r0] + cmp r5, #1 + beq _08115D54 + cmp r5, #1 + bgt _08115D1C + cmp r5, #0 + beq _08115D22 + b _08115DCE + .align 2, 0 +_08115D18: .4byte 0x03005B60 +_08115D1C: + cmp r5, #2 + beq _08115D90 + b _08115DCE +_08115D22: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _08115DCE + strh r5, [r4, #0xa] + adds r0, r4, #0 + bl sub_08115DD8 + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0xe + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _08115DCE + strh r5, [r4, #0xc] + ldrh r0, [r4, #0x24] + subs r0, #1 + strh r0, [r4, #0x24] + b _08115D88 +_08115D54: + ldrh r0, [r4, #0xa] + adds r0, #1 + movs r5, #0 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _08115DCE + strh r5, [r4, #0xa] + adds r0, r4, #0 + bl sub_08115DD8 + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + bne _08115DCE + strh r5, [r4, #0xc] + ldrh r0, [r4, #0x24] + subs r0, #1 + strh r0, [r4, #0x24] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08115DCE +_08115D88: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _08115DCE +_08115D90: + movs r2, #0 + movs r7, #0x22 + ldrsh r0, [r4, r7] + cmp r2, r0 + bge _08115DC8 + ldr r0, _08115DD4 + mov ip, r0 + adds r5, r4, #0 + adds r5, #8 + movs r6, #0 +_08115DA4: + adds r0, r2, #0 + adds r0, #9 + lsls r0, r0, #1 + adds r0, r5, r0 + movs r7, #0 + ldrsh r1, [r0, r7] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, ip + strh r6, [r0, #0x24] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + movs r1, #0x22 + ldrsh r0, [r4, r1] + cmp r2, r0 + blt _08115DA4 +_08115DC8: + adds r0, r3, #0 + bl DestroyAnimVisualTask +_08115DCE: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08115DD4: .4byte 0x020205AC + thumb_func_end sub_08115CF4 + + thumb_func_start sub_08115DD8 +sub_08115DD8: @ 0x08115DD8 + push {r4, r5, r6, r7, lr} + adds r3, r0, #0 + ldrh r1, [r3, #0xc] + movs r4, #1 + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + bne _08115E00 + movs r0, #0x24 + ldrsh r1, [r3, r0] + lsrs r0, r1, #0x1f + adds r1, r1, r0 + asrs r1, r1, #1 + ldrh r2, [r3, #0x24] + adds r0, r4, #0 + ands r0, r2 + adds r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + b _08115E10 +_08115E00: + movs r1, #0x24 + ldrsh r0, [r3, r1] + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + rsbs r0, r0, #0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_08115E10: + movs r2, #0 + movs r7, #0x22 + ldrsh r0, [r3, r7] + cmp r2, r0 + bge _08115E44 + ldr r6, _08115E4C + adds r5, r3, #0 + adds r5, #8 +_08115E20: + adds r0, r2, #0 + adds r0, #9 + lsls r0, r0, #1 + adds r0, r5, r0 + movs r7, #0 + ldrsh r1, [r0, r7] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + strh r4, [r0, #0x24] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + movs r1, #0x22 + ldrsh r0, [r3, r1] + cmp r2, r0 + blt _08115E20 +_08115E44: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08115E4C: .4byte 0x020205AC + thumb_func_end sub_08115DD8 + + thumb_func_start AnimTask_IsPowerOver99 +AnimTask_IsPowerOver99: @ 0x08115E50 + push {lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r3, _08115E70 + movs r2, #0 + ldr r0, _08115E74 + ldrh r0, [r0] + cmp r0, #0x63 + bls _08115E64 + movs r2, #1 +_08115E64: + strh r2, [r3, #0x1e] + adds r0, r1, #0 + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_08115E70: .4byte 0x020380BE +_08115E74: .4byte 0x020380A8 + thumb_func_end AnimTask_IsPowerOver99 + + thumb_func_start sub_08115E78 +sub_08115E78: @ 0x08115E78 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r2, _08115E90 + ldrh r1, [r2] + movs r0, #1 + ands r0, r1 + adds r6, r2, #0 + cmp r0, #0 + beq _08115E98 + ldr r0, _08115E94 + b _08115E9A + .align 2, 0 +_08115E90: .4byte 0x020380BE +_08115E94: .4byte 0x020380D7 +_08115E98: + ldr r0, _08115F08 +_08115E9A: + ldrb r0, [r0] + adds r5, r0, #0 + movs r1, #0 + ldrsh r0, [r6, r1] + cmp r0, #1 + ble _08115EAA + movs r0, #2 + eors r5, r0 +_08115EAA: + ldr r0, _08115F0C + ldrb r1, [r6, #2] + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _08115F10 + adds r4, r4, r0 + adds r0, r5, #0 + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x20 + subs r1, r1, r0 + ldr r2, _08115F14 + adds r0, r2, #0 + ands r1, r0 + strh r1, [r4, #0xa] + adds r0, r5, #0 + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x40 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + strh r1, [r4, #0xc] + ldr r2, _08115F18 + ldrh r0, [r4, #0xa] + strh r0, [r2] + ldr r0, _08115F1C + strh r1, [r0] + ldrh r0, [r6, #4] + strh r0, [r4, #0xe] + adds r0, r7, #0 + bl DestroyAnimVisualTask + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08115F08: .4byte 0x020380D6 +_08115F0C: .4byte 0x08115F21 +_08115F10: .4byte 0x03005B60 +_08115F14: .4byte 0x000001FF +_08115F18: .4byte 0x02022AD4 +_08115F1C: .4byte 0x02022AD6 + thumb_func_end sub_08115E78 + + thumb_func_start sub_08115F20 +sub_08115F20: @ 0x08115F20 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #3 + ldr r1, _08115F50 + adds r2, r0, r1 + ldr r0, _08115F54 + movs r4, #0xe + ldrsh r1, [r0, r4] + movs r4, #0xe + ldrsh r0, [r2, r4] + cmp r1, r0 + bne _08115F60 + ldr r0, _08115F58 + movs r1, #0 + strh r1, [r0] + ldr r0, _08115F5C + strh r1, [r0] + adds r0, r3, #0 + bl DestroyTask + b _08115F6C + .align 2, 0 +_08115F50: .4byte 0x03005B60 +_08115F54: .4byte 0x020380BE +_08115F58: .4byte 0x02022AD4 +_08115F5C: .4byte 0x02022AD6 +_08115F60: + ldr r1, _08115F74 + ldrh r0, [r2, #0xa] + strh r0, [r1] + ldr r1, _08115F78 + ldrh r0, [r2, #0xc] + strh r0, [r1] +_08115F6C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08115F74: .4byte 0x02022AD4 +_08115F78: .4byte 0x02022AD6 + thumb_func_end sub_08115F20 + diff --git a/asm/gym_leader_rematch.s b/asm/gym_leader_rematch.s new file mode 100644 index 0000000..cd7ec5f --- /dev/null +++ b/asm/gym_leader_rematch.s @@ -0,0 +1,211 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start UpdateGymLeaderRematch +UpdateGymLeaderRematch: @ 0x081D9DCC + push {lr} + ldr r0, _081D9E08 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D9E1A + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x1e + bhi _081D9E1A + movs r0, #0x5b + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D9E10 + ldr r0, _081D9E0C + movs r1, #8 + movs r2, #5 + bl UpdateGymLeaderRematchFromArray + b _081D9E1A + .align 2, 0 +_081D9E08: .4byte 0x00000864 +_081D9E0C: .4byte 0x085FC01C +_081D9E10: + ldr r0, _081D9E20 + movs r1, #7 + movs r2, #1 + bl UpdateGymLeaderRematchFromArray +_081D9E1A: + pop {r0} + bx r0 + .align 2, 0 +_081D9E20: .4byte 0x085FC02C + thumb_func_end UpdateGymLeaderRematch + + thumb_func_start UpdateGymLeaderRematchFromArray +UpdateGymLeaderRematchFromArray: @ 0x081D9E24 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + mov sb, r0 + adds r7, r1, #0 + mov sl, r2 + movs r6, #0 + movs r0, #5 + mov r8, r0 + movs r5, #0 + cmp r5, r7 + bhs _081D9E6C + mov r4, sb +_081D9E44: + ldr r0, _081D9EF8 + ldr r0, [r0] + ldrh r1, [r4] + ldr r2, _081D9EFC + adds r0, r0, r2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _081D9E64 + adds r0, r1, #0 + bl GetRematchIndex + cmp r8, r0 + ble _081D9E62 + mov r8, r0 +_081D9E62: + adds r6, #1 +_081D9E64: + adds r4, #2 + adds r5, #1 + cmp r5, r7 + blo _081D9E44 +_081D9E6C: + cmp r6, #0 + beq _081D9F0A + cmp r8, sl + bhi _081D9F0A + movs r6, #0 + movs r5, #0 + cmp r5, r7 + bhs _081D9EA4 + mov r4, sb +_081D9E7E: + ldr r0, _081D9EF8 + ldr r0, [r0] + ldrh r1, [r4] + ldr r2, _081D9EFC + adds r0, r0, r2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _081D9E9C + adds r0, r1, #0 + bl GetRematchIndex + cmp r0, r8 + bne _081D9E9C + adds r6, #1 +_081D9E9C: + adds r4, #2 + adds r5, #1 + cmp r5, r7 + blo _081D9E7E +_081D9EA4: + cmp r6, #0 + beq _081D9F0A + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r6, #0 + bl __modsi3 + adds r6, r0, #0 + movs r5, #0 + cmp r5, r7 + bhs _081D9F0A + ldr r2, _081D9EF8 + ldr r3, _081D9EFC + mov r4, sb +_081D9EC4: + ldr r0, [r2] + ldrh r1, [r4] + adds r0, r0, r3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _081D9F02 + adds r0, r1, #0 + str r2, [sp] + str r3, [sp, #4] + bl GetRematchIndex + ldr r2, [sp] + ldr r3, [sp, #4] + cmp r0, r8 + bne _081D9F02 + cmp r6, #0 + bne _081D9F00 + ldr r0, [r2] + adds r0, r0, r3 + ldrh r4, [r4] + adds r0, r0, r4 + mov r1, r8 + strb r1, [r0] + b _081D9F0A + .align 2, 0 +_081D9EF8: .4byte 0x03005AEC +_081D9EFC: .4byte 0x000009CA +_081D9F00: + subs r6, #1 +_081D9F02: + adds r4, #2 + adds r5, #1 + cmp r5, r7 + blo _081D9EC4 +_081D9F0A: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end UpdateGymLeaderRematchFromArray + + thumb_func_start GetRematchIndex +GetRematchIndex: @ 0x081D9F1C + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r4, #0 + ldr r6, _081D9F3C +_081D9F24: + lsls r0, r4, #1 + lsls r1, r5, #4 + adds r0, r0, r1 + adds r0, r0, r6 + ldrh r0, [r0] + bl HasTrainerBeenFought + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081D9F40 + adds r0, r4, #0 + b _081D9F48 + .align 2, 0 +_081D9F3C: .4byte 0x0852AD40 +_081D9F40: + adds r4, #1 + cmp r4, #4 + ble _081D9F24 + movs r0, #5 +_081D9F48: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetRematchIndex + diff --git a/asm/hall_of_fame.s b/asm/hall_of_fame.s new file mode 100644 index 0000000..ce027a3 --- /dev/null +++ b/asm/hall_of_fame.s @@ -0,0 +1,4003 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start VBlankCB_HallOfFame +VBlankCB_HallOfFame: @ 0x08173330 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end VBlankCB_HallOfFame + + thumb_func_start CB2_HallOfFame +CB2_HallOfFame: @ 0x08173344 + push {lr} + bl RunTasks + bl RunTextPrinters + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CB2_HallOfFame + + thumb_func_start InitHallOfFameScreen +InitHallOfFameScreen: @ 0x08173360 + push {r4, lr} + sub sp, #4 + ldr r0, _08173380 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #4 + bls _08173374 + b _0817346C +_08173374: + lsls r0, r0, #2 + ldr r1, _08173384 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08173380: .4byte 0x03002360 +_08173384: .4byte 0x08173388 +_08173388: @ jump table + .4byte _0817339C @ case 0 + .4byte _081733CC @ case 1 + .4byte _081733D2 @ case 2 + .4byte _08173404 @ case 3 + .4byte _08173440 @ case 4 +_0817339C: + movs r0, #0 + bl SetVBlankCallback + bl ClearVramOamPltt_LoadHofPal + ldr r4, _081733C0 + ldr r0, _081733C4 + bl AllocZeroed + str r0, [r4] + ldr r0, _081733C8 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + movs r1, #1 + strb r1, [r0] + b _0817346C + .align 2, 0 +_081733C0: .4byte 0x0203B9A8 +_081733C4: .4byte 0x00002014 +_081733C8: .4byte 0x03002360 +_081733CC: + bl sub_08174E74 + b _08173426 +_081733D2: + ldr r1, _081733FC + movs r0, #0x50 + bl SetGpuReg + movs r1, #0xe2 + lsls r1, r1, #3 + movs r0, #0x52 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + bl sub_08174EB0 + ldr r0, _08173400 + ldr r1, [r0] + movs r0, #0 + strh r0, [r1] + b _08173426 + .align 2, 0 +_081733FC: .4byte 0x00003F42 +_08173400: .4byte 0x0203B9A8 +_08173404: + bl sub_08174F28 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _0817346C + ldr r0, _08173438 + bl SetVBlankCallback + movs r0, #1 + rsbs r0, r0, #0 + str r4, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade +_08173426: + ldr r1, _0817343C + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0817346C + .align 2, 0 +_08173438: .4byte 0x08173331 +_0817343C: .4byte 0x03002360 +_08173440: + bl UpdatePaletteFade + ldr r0, _08173464 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0817346C + ldr r0, _08173468 + bl SetMainCallback2 + movs r0, #0xda + lsls r0, r0, #1 + bl PlayBGM + movs r0, #0 + b _0817346E + .align 2, 0 +_08173464: .4byte 0x02037C74 +_08173468: .4byte 0x08173345 +_0817346C: + movs r0, #1 +_0817346E: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end InitHallOfFameScreen + + thumb_func_start CB2_DoHallOfFameScreen +CB2_DoHallOfFameScreen: @ 0x08173478 + push {r4, lr} + bl InitHallOfFameScreen + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _081734A8 + ldr r0, _081734B0 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _081734B4 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #8] + ldr r4, _081734B8 + movs r0, #0x78 + bl AllocZeroed + str r0, [r4] +_081734A8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081734B0: .4byte 0x08173501 +_081734B4: .4byte 0x03005B60 +_081734B8: .4byte 0x0203B9A4 + thumb_func_end CB2_DoHallOfFameScreen + + thumb_func_start CB2_DoHallOfFameScreenDontSaveData +CB2_DoHallOfFameScreenDontSaveData: @ 0x081734BC + push {r4, lr} + bl InitHallOfFameScreen + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081734EC + ldr r0, _081734F4 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _081734F8 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r0, #1 + strh r0, [r1, #8] + ldr r4, _081734FC + movs r0, #0x78 + bl AllocZeroed + str r0, [r4] +_081734EC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081734F4: .4byte 0x08173501 +_081734F8: .4byte 0x03005B60 +_081734FC: .4byte 0x0203B9A4 + thumb_func_end CB2_DoHallOfFameScreenDontSaveData + + thumb_func_start Task_Hof_InitMonData +Task_Hof_InitMonData: @ 0x08173500 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r1, _081735DC + lsls r0, r0, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #0xc] + movs r7, #0 + ldr r0, _081735E0 + mov sb, r0 +_08173524: + movs r0, #0x64 + adds r1, r7, #0 + muls r1, r0, r1 + ldr r0, _081735E4 + adds r6, r1, r0 + adds r0, r6, #0 + movs r1, #0xb + bl GetMonData + adds r5, r0, #0 + cmp r5, #0 + beq _081735F0 + adds r0, r6, #0 + movs r1, #0x41 + bl GetMonData + mov r1, sb + ldr r3, [r1] + lsls r4, r7, #2 + adds r4, r4, r7 + lsls r4, r4, #2 + adds r3, r3, r4 + ldr r2, _081735E8 + adds r1, r2, #0 + ands r0, r1 + ldrh r1, [r3, #8] + ldr r5, _081735EC + adds r2, r5, #0 + ands r1, r2 + orrs r1, r0 + strh r1, [r3, #8] + adds r0, r6, #0 + movs r1, #1 + bl GetMonData + mov r2, sb + ldr r1, [r2] + adds r1, r1, r4 + str r0, [r1] + adds r0, r6, #0 + movs r1, #0 + bl GetMonData + mov r5, sb + ldr r1, [r5] + adds r1, #4 + adds r1, r1, r4 + str r0, [r1] + adds r0, r6, #0 + movs r1, #0x38 + bl GetMonData + ldr r2, [r5] + adds r2, r2, r4 + lsls r0, r0, #1 + ldrb r3, [r2, #9] + movs r1, #1 + ands r1, r3 + orrs r1, r0 + strb r1, [r2, #9] + adds r0, r6, #0 + movs r1, #2 + mov r2, sp + bl GetMonData + movs r2, #0 + mov r6, r8 + lsls r5, r6, #2 + ldr r3, _081735E0 +_081735AE: + ldr r0, [r3] + adds r1, r2, r4 + adds r0, #0xa + adds r0, r0, r1 + mov r6, sp + adds r1, r6, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #9 + bls _081735AE + ldr r0, _081735DC + mov r2, r8 + adds r1, r5, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0xc] + adds r0, #1 + strh r0, [r1, #0xc] + b _08173624 + .align 2, 0 +_081735DC: .4byte 0x03005B60 +_081735E0: .4byte 0x0203B9A4 +_081735E4: .4byte 0x02024190 +_081735E8: .4byte 0x000001FF +_081735EC: .4byte 0xFFFFFE00 +_081735F0: + mov r6, sb + ldr r3, [r6] + lsls r2, r7, #2 + adds r2, r2, r7 + lsls r2, r2, #2 + adds r4, r3, r2 + ldrh r0, [r4, #8] + ldr r6, _08173678 + adds r1, r6, #0 + ands r0, r1 + strh r0, [r4, #8] + str r5, [r4] + adds r3, #4 + adds r3, r3, r2 + str r5, [r3] + ldrb r1, [r4, #9] + movs r0, #1 + ands r0, r1 + strb r0, [r4, #9] + mov r1, sb + ldr r0, [r1] + adds r0, r0, r2 + movs r1, #0xff + strb r1, [r0, #0xa] + mov r2, r8 + lsls r5, r2, #2 +_08173624: + adds r0, r7, #1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + cmp r7, #5 + bhi _08173630 + b _08173524 +_08173630: + ldr r0, _0817367C + movs r3, #0 + str r3, [r0] + ldr r4, _08173680 + mov r6, r8 + adds r1, r5, r6 + lsls r1, r1, #3 + adds r2, r1, r4 + strh r3, [r2, #0xa] + movs r0, #0xff + strh r0, [r2, #0x10] + movs r7, #0 + adds r3, r4, #0 + adds r3, #8 + movs r2, #0xff +_0817364E: + adds r0, r7, #5 + lsls r0, r0, #1 + adds r0, r0, r1 + adds r0, r0, r3 + strh r2, [r0] + adds r0, r7, #1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + cmp r7, #5 + bls _0817364E + mov r1, r8 + adds r0, r5, r1 + lsls r0, r0, #3 + adds r1, r0, r4 + movs r2, #8 + ldrsh r0, [r1, r2] + cmp r0, #0 + beq _08173688 + ldr r0, _08173684 + b _0817368A + .align 2, 0 +_08173678: .4byte 0xFFFFFE00 +_0817367C: .4byte 0x0203B9A0 +_08173680: .4byte 0x03005B60 +_08173684: .4byte 0x08173871 +_08173688: + ldr r0, _0817369C +_0817368A: + str r0, [r1] + add sp, #0xc + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0817369C: .4byte 0x081736A1 + thumb_func_end Task_Hof_InitMonData + + thumb_func_start Task_Hof_InitTeamSaveData +Task_Hof_InitTeamSaveData: @ 0x081736A0 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldr r7, _081736C8 + ldr r0, _081736CC + ldrb r0, [r0] + cmp r0, #0 + bne _081736D0 + movs r2, #0x80 + lsls r2, r2, #6 + adds r0, r7, #0 + movs r1, #0 + bl memset + b _081736EA + .align 2, 0 +_081736C8: .4byte 0x0201C000 +_081736CC: .4byte 0x0203B9B0 +_081736D0: + movs r0, #3 + bl Save_LoadGameData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081736EA + movs r2, #0x80 + lsls r2, r2, #6 + adds r0, r7, #0 + movs r1, #0 + bl memset +_081736EA: + movs r5, #0 + ldrh r1, [r7, #8] + ldr r2, _08173790 + adds r0, r2, #0 + ands r0, r1 + mov r1, sb + lsls r1, r1, #2 + mov r8, r1 + cmp r0, #0 + beq _08173714 +_081736FE: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r7, #0x78 + cmp r5, #0x31 + bhi _08173718 + ldrh r1, [r7, #8] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _081736FE +_08173714: + cmp r5, #0x31 + bls _0817373A +_08173718: + ldr r4, _08173794 + adds r6, r4, #0 + adds r4, #0x78 + movs r5, #0 + subs r7, #0x78 +_08173722: + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #0x78 + bl memcpy + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r6, #0x78 + adds r4, #0x78 + cmp r5, #0x30 + bls _08173722 +_0817373A: + ldr r0, _08173798 + ldr r1, [r0] + adds r0, r7, #0 + movs r2, #0x78 + bl memcpy + movs r0, #0 + movs r1, #0 + bl ClearDialogWindowAndFrame + ldr r2, _0817379C + movs r0, #0 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + movs r0, #3 + str r0, [sp, #0xc] + movs r0, #0 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized2 + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + ldr r1, _081737A0 + mov r0, r8 + add r0, sb + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081737A4 + str r1, [r0] + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08173790: .4byte 0x000001FF +_08173794: .4byte 0x0201C000 +_08173798: .4byte 0x0203B9A4 +_0817379C: .4byte 0x08277071 +_081737A0: .4byte 0x03005B60 +_081737A4: .4byte 0x081737A9 + thumb_func_end Task_Hof_InitTeamSaveData + + thumb_func_start Task_Hof_TrySaveData +Task_Hof_TrySaveData: @ 0x081737A8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08173804 + ldr r0, _08173808 + str r0, [r1] + movs r0, #3 + bl TrySavingData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08173818 + ldr r0, _0817380C + ldr r0, [r0] + cmp r0, #0 + beq _08173818 + movs r0, #1 + bl UnsetBgTilemapBuffer + movs r0, #3 + bl UnsetBgTilemapBuffer + bl FreeAllWindowBuffers + ldr r5, _08173810 + ldr r0, [r5] + cmp r0, #0 + beq _081737EA + bl Free + movs r0, #0 + str r0, [r5] +_081737EA: + ldr r5, _08173814 + ldr r0, [r5] + cmp r0, #0 + beq _081737FA + bl Free + movs r0, #0 + str r0, [r5] +_081737FA: + adds r0, r4, #0 + bl DestroyTask + b _08173830 + .align 2, 0 +_08173804: .4byte 0x03005F54 +_08173808: .4byte 0x081734BD +_0817380C: .4byte 0x03005F3C +_08173810: .4byte 0x0203B9A8 +_08173814: .4byte 0x0203B9A4 +_08173818: + movs r0, #0x37 + bl PlaySE + ldr r1, _08173838 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0817383C + str r1, [r0] + movs r1, #0x20 + strh r1, [r0, #0xe] +_08173830: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08173838: .4byte 0x03005B60 +_0817383C: .4byte 0x08173841 + thumb_func_end Task_Hof_TrySaveData + + thumb_func_start Task_Hof_WaitForFrames +Task_Hof_WaitForFrames: @ 0x08173840 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08173860 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldrh r2, [r1, #0xe] + movs r3, #0xe + ldrsh r0, [r1, r3] + cmp r0, #0 + beq _08173864 + subs r0, r2, #1 + strh r0, [r1, #0xe] + b _08173868 + .align 2, 0 +_08173860: .4byte 0x03005B60 +_08173864: + ldr r0, _0817386C + str r0, [r1] +_08173868: + pop {r0} + bx r0 + .align 2, 0 +_0817386C: .4byte 0x08173871 + thumb_func_end Task_Hof_WaitForFrames + + thumb_func_start Task_Hof_SetMonDisplayTask +Task_Hof_SetMonDisplayTask: @ 0x08173870 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08173884 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r0, _08173888 + str r0, [r1] + bx lr + .align 2, 0 +_08173884: .4byte 0x03005B60 +_08173888: .4byte 0x0817388D + thumb_func_end Task_Hof_SetMonDisplayTask + + thumb_func_start Task_Hof_DisplayMon +Task_Hof_DisplayMon: @ 0x0817388C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r0, _081738C4 + mov r2, r8 + lsls r1, r2, #2 + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r6, [r1, #0xa] + ldr r2, _081738C8 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #2 + ldr r2, [r2] + adds r7, r2, r0 + movs r2, #0xc + ldrsh r0, [r1, r2] + cmp r0, #3 + ble _081738D0 + ldr r1, _081738CC + b _081738D2 + .align 2, 0 +_081738C4: .4byte 0x03005B60 +_081738C8: .4byte 0x0203B9A4 +_081738CC: .4byte 0x085C6470 +_081738D0: + ldr r1, _08173988 +_081738D2: + lsls r2, r6, #3 + adds r0, r2, r1 + ldrh r3, [r0] + adds r0, r1, #2 + adds r0, r2, r0 + ldrh r4, [r0] + adds r0, r1, #4 + adds r0, r2, r0 + ldrh r0, [r0] + mov sb, r0 + adds r1, #6 + adds r2, r2, r1 + ldrh r5, [r2] + ldrh r2, [r7, #8] + ldr r0, _0817398C + ands r0, r2 + movs r1, #0xce + lsls r1, r1, #1 + cmp r0, r1 + bne _08173904 + lsls r0, r5, #0x10 + movs r1, #0xa0 + lsls r1, r1, #0xc + adds r0, r0, r1 + lsrs r5, r0, #0x10 +_08173904: + lsls r0, r2, #0x17 + lsrs r0, r0, #0x17 + ldr r1, [r7] + ldr r2, [r7, #4] + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + str r3, [sp] + lsls r3, r4, #0x10 + asrs r3, r3, #0x10 + str r3, [sp, #4] + lsls r3, r6, #0x18 + lsrs r3, r3, #0x18 + str r3, [sp, #8] + ldr r3, _08173990 + str r3, [sp, #0xc] + movs r3, #1 + bl CreatePicSprite2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _08173994 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r3, r2, r4 + movs r1, #0 + mov ip, r1 + mov r1, sb + strh r1, [r3, #0x30] + strh r5, [r3, #0x32] + mov r1, ip + strh r1, [r3, #0x2e] + ldrh r1, [r7, #8] + lsls r1, r1, #0x17 + lsrs r1, r1, #0x17 + strh r1, [r3, #0x3c] + adds r4, #0x1c + adds r2, r2, r4 + ldr r1, _08173998 + str r1, [r2] + ldr r5, _0817399C + adds r1, r6, #5 + lsls r1, r1, #1 + mov r2, r8 + lsls r4, r2, #2 + add r4, r8 + lsls r4, r4, #3 + adds r1, r1, r4 + adds r2, r5, #0 + adds r2, #8 + adds r1, r1, r2 + strh r0, [r1] + movs r0, #0 + movs r1, #1 + bl DrawDialogueFrame + adds r4, r4, r5 + ldr r0, _081739A0 + str r0, [r4] + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08173988: .4byte 0x085C64A0 +_0817398C: .4byte 0x000001FF +_08173990: .4byte 0x0000FFFF +_08173994: .4byte 0x020205AC +_08173998: .4byte 0x08175025 +_0817399C: .4byte 0x03005B60 +_081739A0: .4byte 0x081739A5 + thumb_func_end Task_Hof_DisplayMon + + thumb_func_start Task_Hof_PrintMonInfoAfterAnimating +Task_Hof_PrintMonInfoAfterAnimating: @ 0x081739A4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _08173A04 + lsls r3, r0, #2 + adds r3, r3, r0 + lsls r3, r3, #3 + adds r5, r3, r4 + ldrh r0, [r5, #0xa] + ldr r2, _08173A08 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r2, [r2] + adds r2, r2, r1 + adds r0, #5 + lsls r0, r0, #1 + adds r0, r0, r3 + adds r4, #8 + adds r0, r0, r4 + movs r3, #0 + ldrsh r1, [r0, r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08173A0C + adds r3, r0, r1 + ldr r1, [r3, #0x1c] + ldr r0, _08173A10 + cmp r1, r0 + bne _081739FE + ldrb r1, [r3, #1] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3, #1] + adds r0, r2, #0 + movs r1, #0 + movs r2, #0xe + bl HallOfFame_PrintMonInfo + movs r0, #0x78 + strh r0, [r5, #0xe] + ldr r0, _08173A14 + str r0, [r5] +_081739FE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08173A04: .4byte 0x03005B60 +_08173A08: .4byte 0x0203B9A4 +_08173A0C: .4byte 0x020205AC +_08173A10: .4byte 0x08007141 +_08173A14: .4byte 0x08173A19 + thumb_func_end Task_Hof_PrintMonInfoAfterAnimating + + thumb_func_start Task_Hof_TryDisplayAnotherMon +Task_Hof_TryDisplayAnotherMon: @ 0x08173A18 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r2, _08173A54 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r6, r0, #3 + adds r4, r6, r2 + ldrh r3, [r4, #0xa] + ldr r1, _08173A58 + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #2 + ldr r1, [r1] + adds r1, r1, r0 + mov sb, r1 + ldrh r1, [r4, #0xe] + movs r7, #0xe + ldrsh r0, [r4, r7] + mov ip, r2 + cmp r0, #0 + beq _08173A5C + subs r0, r1, #1 + strh r0, [r4, #0xe] + b _08173AF4 + .align 2, 0 +_08173A54: .4byte 0x03005B60 +_08173A58: .4byte 0x0203B9A4 +_08173A5C: + ldr r2, _08173AD4 + ldr r0, _08173AD8 + mov r8, r0 + adds r0, r3, #5 + lsls r0, r0, #1 + adds r0, r0, r6 + mov r1, ip + adds r1, #8 + adds r6, r0, r1 + movs r7, #0 + ldrsh r1, [r6, r7] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + ldrb r0, [r0, #5] + lsrs r0, r0, #4 + movs r1, #0x80 + lsls r1, r1, #9 + lsls r1, r0 + ldr r3, [r2] + orrs r3, r1 + str r3, [r2] + ldrh r2, [r4, #0xa] + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #4 + bgt _08173AE8 + mov r7, sb + ldrh r1, [r7, #0x1c] + ldr r0, _08173ADC + ands r0, r1 + cmp r0, #0 + beq _08173AE8 + adds r0, r2, #1 + strh r0, [r4, #0xa] + ldr r0, _08173AE0 + str r0, [sp] + adds r0, r3, #0 + movs r1, #0 + movs r2, #0xc + movs r3, #0xc + bl BeginNormalPaletteFade + movs r0, #0 + ldrsh r1, [r6, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + ldrb r2, [r0, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #4 + orrs r1, r2 + strb r1, [r0, #5] + ldr r0, _08173AE4 + str r0, [r4] + b _08173AF4 + .align 2, 0 +_08173AD4: .4byte 0x0203B9A0 +_08173AD8: .4byte 0x020205AC +_08173ADC: .4byte 0x000001FF +_08173AE0: .4byte 0x000063B0 +_08173AE4: .4byte 0x0817388D +_08173AE8: + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + add r0, ip + ldr r1, _08173B04 + str r1, [r0] +_08173AF4: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08173B04: .4byte 0x08173B09 + thumb_func_end Task_Hof_TryDisplayAnotherMon + + thumb_func_start Task_Hof_PaletteFadeAndPrintWelcomeText +Task_Hof_PaletteFadeAndPrintWelcomeText: @ 0x08173B08 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _08173B90 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0 + bl BeginNormalPaletteFade + movs r3, #0 + lsls r1, r4, #2 + adds r0, r1, r4 + lsls r5, r0, #3 + ldr r0, _08173B94 + mov ip, r0 + mov r8, r1 + ldr r6, _08173B98 + movs r7, #0xd + rsbs r7, r7, #0 +_08173B36: + adds r0, r3, #5 + lsls r0, r0, #1 + adds r0, r0, r5 + mov r2, ip + adds r1, r0, r2 + movs r2, #0 + ldrsh r0, [r1, r2] + cmp r0, #0xff + beq _08173B58 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrb r2, [r1, #5] + adds r0, r7, #0 + ands r0, r2 + strb r0, [r1, #5] +_08173B58: + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #5 + bls _08173B36 + movs r0, #0 + movs r1, #0xf + bl HallOfFame_PrintWelcomeText + movs r0, #0x69 + bl PlaySE + ldr r1, _08173B9C + mov r2, r8 + adds r0, r2, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0xc8 + lsls r1, r1, #1 + strh r1, [r0, #0xe] + ldr r1, _08173BA0 + str r1, [r0] + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08173B90: .4byte 0xFFFF0000 +_08173B94: .4byte 0x03005B68 +_08173B98: .4byte 0x020205AC +_08173B9C: .4byte 0x03005B60 +_08173BA0: .4byte 0x08173BA5 + thumb_func_end Task_Hof_PaletteFadeAndPrintWelcomeText + + thumb_func_start sub_08173BA4 +sub_08173BA4: @ 0x08173BA4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r7, _08173BE4 + lsls r4, r6, #2 + adds r0, r4, r6 + lsls r5, r0, #3 + adds r1, r5, r7 + ldrh r2, [r1, #0xe] + movs r3, #0xe + ldrsh r0, [r1, r3] + cmp r0, #0 + beq _08173BE8 + subs r2, #1 + strh r2, [r1, #0xe] + movs r0, #3 + ands r0, r2 + cmp r0, #0 + bne _08173C62 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x6e + ble _08173C62 + bl sub_08175100 + b _08173C62 + .align 2, 0 +_08173BE4: .4byte 0x03005B60 +_08173BE8: + movs r3, #0 + mov sb, r4 + ldr r0, _08173C74 + mov sl, r0 + adds r4, r5, #0 + adds r7, #8 + mov r8, r7 + ldr r7, _08173C78 + movs r1, #0xd + rsbs r1, r1, #0 + mov ip, r1 + movs r5, #4 +_08173C00: + adds r0, r3, #5 + lsls r0, r0, #1 + adds r0, r0, r4 + mov r2, r8 + adds r1, r0, r2 + movs r2, #0 + ldrsh r0, [r1, r2] + cmp r0, #0xff + beq _08173C24 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r7 + ldrb r2, [r1, #5] + mov r0, ip + ands r0, r2 + orrs r0, r5 + strb r0, [r1, #5] +_08173C24: + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #5 + bls _08173C00 + mov r3, sl + ldr r0, [r3] + ldr r1, _08173C7C + str r1, [sp] + movs r1, #0 + movs r2, #0xc + movs r3, #0xc + bl BeginNormalPaletteFade + movs r0, #0 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + ldr r1, _08173C80 + mov r2, sb + adds r0, r2, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #7 + strh r1, [r0, #0xe] + ldr r1, _08173C84 + str r1, [r0] +_08173C62: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08173C74: .4byte 0x0203B9A0 +_08173C78: .4byte 0x020205AC +_08173C7C: .4byte 0x000063B0 +_08173C80: .4byte 0x03005B60 +_08173C84: .4byte 0x08173C89 + thumb_func_end sub_08173BA4 + + thumb_func_start sub_08173C88 +sub_08173C88: @ 0x08173C88 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08173CA8 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldrh r2, [r1, #0xe] + movs r3, #0xe + ldrsh r0, [r1, r3] + cmp r0, #0xf + ble _08173CB0 + ldr r0, _08173CAC + str r0, [r1] + b _08173CC2 + .align 2, 0 +_08173CA8: .4byte 0x03005B60 +_08173CAC: .4byte 0x08173CC9 +_08173CB0: + adds r0, r2, #1 + strh r0, [r1, #0xe] + movs r0, #0xe + ldrsh r1, [r1, r0] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg +_08173CC2: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08173C88 + + thumb_func_start sub_08173CC8 +sub_08173CC8: @ 0x08173CC8 + push {r4, r5, r6, lr} + sub sp, #8 + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #3 + bl ShowBg + ldr r6, _08173D50 + ldr r0, [r6] + ldrb r0, [r0, #8] + movs r1, #1 + bl PlayerGenderToFrontTrainerPicId_Debug + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #6 + str r1, [sp] + ldr r1, _08173D54 + str r1, [sp, #4] + movs r1, #1 + movs r2, #0x78 + movs r3, #0x48 + bl CreateTrainerPicSprite + ldr r1, _08173D58 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + adds r4, r4, r1 + strh r0, [r4, #0x10] + ldr r0, _08173D5C + bl AddWindow + ldr r0, [r6] + ldrb r1, [r0, #0x14] + lsrs r1, r1, #3 + ldr r2, _08173D60 + movs r0, #1 + movs r3, #0xd0 + bl LoadWindowGfx + movs r0, #1 + bl stdpal_get + movs r1, #0xe0 + movs r2, #0x20 + bl LoadPalette + movs r0, #0x78 + strh r0, [r4, #0xe] + ldr r0, _08173D64 + str r0, [r4] + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08173D50: .4byte 0x03005AF0 +_08173D54: .4byte 0x0000FFFF +_08173D58: .4byte 0x03005B60 +_08173D5C: .4byte 0x085C643C +_08173D60: .4byte 0x0000021D +_08173D64: .4byte 0x08173D69 + thumb_func_end sub_08173CC8 + + thumb_func_start Task_Hof_WaitAndPrintPlayerInfo +Task_Hof_WaitAndPrintPlayerInfo: @ 0x08173D68 + push {r4, r5, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08173D8C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 + ldrh r0, [r4, #0xe] + movs r1, #0xe + ldrsh r5, [r4, r1] + cmp r5, #0 + beq _08173D90 + subs r0, #1 + strh r0, [r4, #0xe] + b _08173DFC + .align 2, 0 +_08173D8C: .4byte 0x03005B60 +_08173D90: + ldr r2, _08173DB0 + movs r3, #0x10 + ldrsh r1, [r4, r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r2 + ldrh r2, [r1, #0x20] + movs r3, #0x20 + ldrsh r0, [r1, r3] + cmp r0, #0xc0 + beq _08173DB4 + adds r0, r2, #1 + strh r0, [r1, #0x20] + b _08173DFC + .align 2, 0 +_08173DB0: .4byte 0x020205AC +_08173DB4: + movs r0, #0x20 + str r0, [sp] + str r0, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, #1 + movs r1, #2 + bl HallOfFame_PrintPlayerInfo + movs r0, #0 + movs r1, #0 + bl ClearDialogWindowAndFrame + ldr r2, _08173E04 + str r5, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + movs r0, #3 + str r0, [sp, #0xc] + movs r0, #0 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized2 + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + ldr r0, _08173E08 + str r0, [r4] +_08173DFC: + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08173E04: .4byte 0x085C9337 +_08173E08: .4byte 0x08173E0D + thumb_func_end Task_Hof_WaitAndPrintPlayerInfo + + thumb_func_start Task_Hof_ExitOnKeyPressed +Task_Hof_ExitOnKeyPressed: @ 0x08173E0C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _08173E38 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08173E32 + movs r0, #4 + bl FadeOutBGMTemporarily + ldr r0, _08173E3C + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _08173E40 + str r0, [r1] +_08173E32: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08173E38: .4byte 0x03002360 +_08173E3C: .4byte 0x03005B60 +_08173E40: .4byte 0x08173E45 + thumb_func_end Task_Hof_ExitOnKeyPressed + + thumb_func_start Task_Hof_HandlePaletteOnExit +Task_Hof_HandlePaletteOnExit: @ 0x08173E44 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _08173E84 + ldr r1, _08173E88 + movs r2, #0x80 + lsls r2, r2, #2 + bl CpuSet + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r1, #8 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _08173E8C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08173E90 + str r1, [r0] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08173E84: .4byte 0x020377B4 +_08173E88: .4byte 0x020373B4 +_08173E8C: .4byte 0x03005B60 +_08173E90: .4byte 0x08173E95 + thumb_func_end Task_Hof_HandlePaletteOnExit + + thumb_func_start Task_Hof_HandleExit +Task_Hof_HandleExit: @ 0x08173E94 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _08173F54 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08173F48 + lsls r0, r7, #2 + mov r8, r0 + ldr r1, _08173F58 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r1, #0x12 + adds r5, r0, r1 + ldr r2, _08173F5C + mov sb, r2 + movs r6, #5 +_08173EC0: + ldrb r4, [r5] + cmp r4, #0xff + beq _08173EDE + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + add r0, sb + ldrb r0, [r0, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + adds r0, r4, #0 + bl FreeAndDestroyMonPicSprite +_08173EDE: + adds r5, #2 + subs r6, #1 + cmp r6, #0 + bge _08173EC0 + ldr r0, _08173F58 + mov r2, r8 + adds r1, r2, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x10] + bl FreeAndDestroyTrainerPicSprite + movs r0, #0 + bl HideBg + movs r0, #1 + bl HideBg + movs r0, #3 + bl HideBg + bl FreeAllWindowBuffers + movs r0, #1 + bl UnsetBgTilemapBuffer + movs r0, #3 + bl UnsetBgTilemapBuffer + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + adds r0, r7, #0 + bl DestroyTask + ldr r4, _08173F60 + ldr r0, [r4] + cmp r0, #0 + beq _08173F34 + bl Free + movs r0, #0 + str r0, [r4] +_08173F34: + ldr r4, _08173F64 + ldr r0, [r4] + cmp r0, #0 + beq _08173F44 + bl Free + movs r0, #0 + str r0, [r4] +_08173F44: + bl SetCallback2AfterHallOfFameDisplay +_08173F48: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08173F54: .4byte 0x02037C74 +_08173F58: .4byte 0x03005B60 +_08173F5C: .4byte 0x020205AC +_08173F60: .4byte 0x0203B9A8 +_08173F64: .4byte 0x0203B9A4 + thumb_func_end Task_Hof_HandleExit + + thumb_func_start SetCallback2AfterHallOfFameDisplay +SetCallback2AfterHallOfFameDisplay: @ 0x08173F68 + push {lr} + ldr r0, _08173F74 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_08173F74: .4byte 0x0817553D + thumb_func_end SetCallback2AfterHallOfFameDisplay + + thumb_func_start CB2_DoHallOfFamePC +CB2_DoHallOfFamePC: @ 0x08173F78 + push {r4, lr} + ldr r0, _08173F94 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #5 + bhi _08173FB4 + lsls r0, r0, #2 + ldr r1, _08173F98 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08173F94: .4byte 0x03002360 +_08173F98: .4byte 0x08173F9C +_08173F9C: @ jump table + .4byte _08173FB4 @ case 0 + .4byte _08173FE4 @ case 1 + .4byte _08173FF8 @ case 2 + .4byte _08174024 @ case 3 + .4byte _08174064 @ case 4 + .4byte _08174094 @ case 5 +_08173FB4: + movs r0, #0 + bl SetVBlankCallback + bl ClearVramOamPltt_LoadHofPal + ldr r4, _08173FD8 + ldr r0, _08173FDC + bl AllocZeroed + str r0, [r4] + ldr r0, _08173FE0 + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r0, r2 + movs r1, #1 + strb r1, [r0] + b _081740EC + .align 2, 0 +_08173FD8: .4byte 0x0203B9A8 +_08173FDC: .4byte 0x00002014 +_08173FE0: .4byte 0x03002360 +_08173FE4: + bl sub_08174E74 + ldr r1, _08173FF4 + movs r3, #0x87 + lsls r3, r3, #3 + adds r1, r1, r3 + b _08174086 + .align 2, 0 +_08173FF4: .4byte 0x03002360 +_08173FF8: + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + bl sub_08174EB0 + ldr r1, _08174020 + movs r4, #0x87 + lsls r4, r4, #3 + adds r1, r1, r4 + b _08174086 + .align 2, 0 +_08174020: .4byte 0x03002360 +_08174024: + bl sub_08174F28 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081740EC + ldr r1, _08174054 + ldr r0, _08174058 + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldm r0!, {r2, r3} + stm r1!, {r2, r3} + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl sub_080FA43C + ldr r0, _0817405C + bl SetVBlankCallback + ldr r1, _08174060 + movs r4, #0x87 + lsls r4, r4, #3 + adds r1, r1, r4 + b _08174086 + .align 2, 0 +_08174054: .4byte 0x0201C000 +_08174058: .4byte 0x085C6790 +_0817405C: .4byte 0x08173331 +_08174060: .4byte 0x03002360 +_08174064: + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + bl sub_080FA48C + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081740EC + ldr r1, _08174090 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 +_08174086: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _081740EC + .align 2, 0 +_08174090: .4byte 0x03002360 +_08174094: + ldr r1, _081740F4 + movs r0, #0x50 + bl SetGpuReg + movs r1, #0xe2 + lsls r1, r1, #3 + movs r0, #0x52 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + ldr r0, _081740F8 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r4, _081740FC + movs r3, #0xff +_081740C6: + adds r0, r2, #5 + lsls r0, r0, #1 + adds r0, r0, r1 + adds r0, r0, r4 + strh r3, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #5 + bls _081740C6 + ldr r4, _08174100 + movs r0, #0x80 + lsls r0, r0, #6 + bl AllocZeroed + str r0, [r4] + ldr r0, _08174104 + bl SetMainCallback2 +_081740EC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081740F4: .4byte 0x00003F42 +_081740F8: .4byte 0x08174109 +_081740FC: .4byte 0x03005B68 +_08174100: .4byte 0x0203B9A4 +_08174104: .4byte 0x08173345 + thumb_func_end CB2_DoHallOfFamePC + + thumb_func_start Task_HofPC_CopySaveData +Task_HofPC_CopySaveData: @ 0x08174108 + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _0817413C + str r0, [sp] + movs r0, #0 + movs r1, #0x1e + movs r2, #0 + movs r3, #0xc + bl sub_081981B4 + movs r0, #3 + bl Save_LoadGameData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08174148 + ldr r0, _08174140 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _08174144 + b _081741BE + .align 2, 0 +_0817413C: .4byte 0x00000226 +_08174140: .4byte 0x03005B60 +_08174144: .4byte 0x08174785 +_08174148: + ldr r0, _08174190 + ldr r4, _08174194 + ldr r1, [r4] + movs r2, #0x80 + lsls r2, r2, #5 + bl CpuSet + ldr r4, [r4] + movs r2, #0 + ldrh r1, [r4, #8] + ldr r3, _08174198 + adds r0, r3, #0 + ands r0, r1 + lsls r5, r6, #2 + cmp r0, #0 + beq _0817417E +_08174168: + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + adds r4, #0x78 + cmp r2, #0x31 + bhi _081741A0 + ldrh r1, [r4, #8] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _08174168 +_0817417E: + cmp r2, #0x31 + bhi _081741A0 + ldr r0, _0817419C + adds r1, r5, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + subs r0, r2, #1 + b _081741AA + .align 2, 0 +_08174190: .4byte 0x0201C000 +_08174194: .4byte 0x0203B9A4 +_08174198: .4byte 0x000001FF +_0817419C: .4byte 0x03005B60 +_081741A0: + ldr r0, _081741C8 + adds r1, r5, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0x31 +_081741AA: + strh r0, [r1, #8] + movs r0, #0xa + bl GetGameStat + ldr r2, _081741C8 + adds r1, r5, r6 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r0, [r1, #0xa] + ldr r0, _081741CC +_081741BE: + str r0, [r1] + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081741C8: .4byte 0x03005B60 +_081741CC: .4byte 0x081741D1 + thumb_func_end Task_HofPC_CopySaveData + + thumb_func_start Task_HofPC_DrawSpritesPrintText +Task_HofPC_DrawSpritesPrintText: @ 0x081741D0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r0, _08174284 + ldr r3, [r0] + movs r5, #0 + ldr r1, _08174288 + mov r2, r8 + lsls r0, r2, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r4, #8 + ldrsh r0, [r0, r4] + adds r4, r1, #0 + ldr r2, _0817428C + cmp r5, r0 + bge _0817420E + adds r1, r0, #0 +_08174202: + adds r3, #0x78 + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, r1 + blt _08174202 +_0817420E: + adds r6, r3, #0 + movs r0, #0 + str r0, [r2] + mov r5, r8 + lsls r2, r5, #2 + adds r1, r2, r5 + lsls r1, r1, #3 + adds r1, r1, r4 + strh r0, [r1, #0xc] + strh r0, [r1, #0x10] + movs r5, #0 + str r2, [sp, #0x14] + ldr r4, _08174290 + adds r2, r1, #0 +_0817422A: + ldrh r1, [r6, #8] + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + beq _0817423A + ldrh r0, [r2, #0x10] + adds r0, #1 + strh r0, [r2, #0x10] +_0817423A: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r6, #0x14 + cmp r5, #5 + bls _0817422A + adds r6, r3, #0 + movs r5, #0 + ldr r1, _08174288 + ldr r0, [sp, #0x14] + add r0, r8 + lsls r0, r0, #3 + mov sb, r0 + adds r0, r0, r1 + str r0, [sp, #0x10] + ldr r1, _08174290 + mov sl, r1 +_0817425C: + ldrh r0, [r6, #8] + mov r1, sl + ands r1, r0 + adds r7, r0, #0 + cmp r1, #0 + beq _08174324 + ldr r2, [sp, #0x10] + movs r4, #0x10 + ldrsh r0, [r2, r4] + cmp r0, #3 + ble _0817429C + lsls r1, r5, #3 + ldr r0, _08174294 + adds r0, #4 + adds r0, r1, r0 + ldrh r3, [r0] + ldr r0, _08174298 + adds r1, r1, r0 + ldrh r4, [r1] + b _081742AC + .align 2, 0 +_08174284: .4byte 0x0203B9A4 +_08174288: .4byte 0x03005B60 +_0817428C: .4byte 0x0203B9A0 +_08174290: .4byte 0x000001FF +_08174294: .4byte 0x085C6470 +_08174298: .4byte 0x085C6476 +_0817429C: + ldr r0, _08174314 + lsls r2, r5, #3 + adds r1, r0, #4 + adds r1, r2, r1 + ldrh r3, [r1] + adds r0, #6 + adds r2, r2, r0 + ldrh r4, [r2] +_081742AC: + mov r1, sl + ands r1, r7 + movs r0, #0xce + lsls r0, r0, #1 + cmp r1, r0 + bne _081742C2 + lsls r0, r4, #0x10 + movs r1, #0xa0 + lsls r1, r1, #0xc + adds r0, r0, r1 + lsrs r4, r0, #0x10 +_081742C2: + lsls r0, r7, #0x17 + lsrs r0, r0, #0x17 + ldr r1, [r6] + ldr r2, [r6, #4] + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + str r3, [sp] + lsls r3, r4, #0x10 + asrs r3, r3, #0x10 + str r3, [sp, #4] + lsls r3, r5, #0x18 + lsrs r3, r3, #0x18 + str r3, [sp, #8] + ldr r3, _08174318 + str r3, [sp, #0xc] + movs r3, #1 + bl CreateMonPicSprite_HandleDeoxys + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r2, _0817431C + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r3, [r1, #5] + movs r4, #0xd + rsbs r4, r4, #0 + adds r2, r4, #0 + ands r3, r2 + movs r2, #4 + orrs r3, r2 + strb r3, [r1, #5] + adds r1, r5, #5 + lsls r1, r1, #1 + add r1, sb + ldr r2, _08174320 + adds r1, r1, r2 + strh r0, [r1] + b _08174332 + .align 2, 0 +_08174314: .4byte 0x085C64A0 +_08174318: .4byte 0x0000FFFF +_0817431C: .4byte 0x020205AC +_08174320: .4byte 0x03005B68 +_08174324: + adds r0, r5, #5 + lsls r0, r0, #1 + add r0, sb + ldr r4, _08174384 + adds r0, r0, r4 + movs r1, #0xff + strh r1, [r0] +_08174332: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r6, #0x14 + cmp r5, #5 + bls _0817425C + ldr r0, _08174388 + ldr r2, _0817438C + movs r1, #0xc + bl BlendPalettes + ldr r0, _08174390 + ldr r1, _08174394 + ldr r4, [sp, #0x14] + add r4, r8 + lsls r4, r4, #3 + adds r4, r4, r1 + movs r5, #0xa + ldrsh r1, [r4, r5] + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r5, _08174398 + ldr r1, _0817439C + adds r0, r5, #0 + bl StringExpandPlaceholders + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + bgt _081743A4 + ldr r1, _081743A0 + movs r0, #1 + str r0, [sp] + adds r0, r5, #0 + movs r2, #0 + movs r3, #0 + bl sub_081982E8 + b _081743B4 + .align 2, 0 +_08174384: .4byte 0x03005B68 +_08174388: .4byte 0xFFFF0000 +_0817438C: .4byte 0x000063B0 +_08174390: .4byte 0x02021C40 +_08174394: .4byte 0x03005B60 +_08174398: .4byte 0x02021C7C +_0817439C: .4byte 0x085C9328 +_081743A0: .4byte 0x085C8E7C +_081743A4: + ldr r1, _081743D4 + movs r0, #1 + str r0, [sp] + adds r0, r5, #0 + movs r2, #0 + movs r3, #0 + bl sub_081982E8 +_081743B4: + ldr r0, _081743D8 + ldr r1, [sp, #0x14] + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081743DC + str r0, [r1] + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081743D4: .4byte 0x085C8E68 +_081743D8: .4byte 0x03005B60 +_081743DC: .4byte 0x081743E1 + thumb_func_end Task_HofPC_DrawSpritesPrintText + + thumb_func_start Task_HofPC_PrintMonInfo +Task_HofPC_PrintMonInfo: @ 0x081743E0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _081744E8 + ldr r5, [r0] + movs r3, #0 + ldr r1, _081744EC + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #8 + ldrsh r0, [r0, r2] + cmp r3, r0 + bge _08174414 + adds r1, r0, #0 +_08174408: + adds r5, #0x78 + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, r1 + blt _08174408 +_08174414: + movs r3, #0 + lsls r7, r4, #2 + adds r0, r7, r4 + lsls r6, r0, #3 + ldr r0, _081744F0 + mov sl, r0 + ldr r1, _081744F4 + mov r8, r1 + movs r2, #0xd + rsbs r2, r2, #0 + mov sb, r2 + movs r0, #4 + mov ip, r0 +_0817442E: + adds r0, r3, #5 + lsls r0, r0, #1 + adds r0, r0, r6 + add r0, sl + ldrh r1, [r0] + cmp r1, #0xff + beq _08174450 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + ldrb r2, [r0, #5] + mov r1, sb + ands r1, r2 + mov r2, ip + orrs r1, r2 + strb r1, [r0, #5] +_08174450: + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #5 + bls _0817442E + adds r1, r7, r4 + lsls r1, r1, #3 + ldr r0, _081744EC + adds r6, r1, r0 + movs r2, #0xc + ldrsh r0, [r6, r2] + adds r0, #5 + lsls r0, r0, #1 + adds r0, r0, r1 + ldr r1, _081744EC + adds r1, #8 + adds r0, r0, r1 + ldrh r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _081744F4 + adds r0, r0, r1 + ldrb r2, [r0, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0, #5] + lsrs r1, r1, #4 + movs r0, #0x80 + lsls r0, r0, #9 + lsls r0, r1 + ldr r1, _081744F8 + eors r0, r1 + ldr r2, _081744FC + str r0, [r2] + ldr r2, _08174500 + movs r1, #0xc + bl BlendPalettesUnfaded + movs r0, #0xc + ldrsh r1, [r6, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, r5, r0 + ldrh r1, [r4, #8] + ldr r0, _08174504 + ands r0, r1 + movs r1, #0xce + lsls r1, r1, #1 + cmp r0, r1 + beq _081744CA + bl StopCryAndClearCrySongs + ldrh r0, [r4, #8] + lsls r0, r0, #0x17 + lsrs r0, r0, #0x17 + movs r1, #0 + bl PlayCry1 +_081744CA: + adds r0, r4, #0 + movs r1, #0 + movs r2, #0xe + bl HallOfFame_PrintMonInfo + ldr r0, _08174508 + str r0, [r6] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081744E8: .4byte 0x0203B9A4 +_081744EC: .4byte 0x03005B60 +_081744F0: .4byte 0x03005B68 +_081744F4: .4byte 0x020205AC +_081744F8: .4byte 0xFFFF0000 +_081744FC: .4byte 0x0203B9A0 +_08174500: .4byte 0x000063B0 +_08174504: .4byte 0x000001FF +_08174508: .4byte 0x0817450D + thumb_func_end Task_HofPC_PrintMonInfo + + thumb_func_start Task_HofPC_HandleInput +Task_HofPC_HandleInput: @ 0x0817450C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _08174590 + ldrh r2, [r1, #0x2e] + movs r0, #1 + ands r0, r2 + adds r3, r1, #0 + cmp r0, #0 + beq _081745C8 + ldr r0, _08174594 + mov ip, r0 + lsls r0, r6, #2 + adds r1, r0, r6 + lsls r3, r1, #3 + mov r1, ip + adds r4, r3, r1 + ldrh r2, [r4, #8] + movs r5, #8 + ldrsh r1, [r4, r5] + mov sb, r0 + cmp r1, #0 + beq _0817459C + subs r0, r2, #1 + strh r0, [r4, #8] + movs r5, #0 + adds r7, r3, #0 + movs r0, #8 + add r0, ip + mov r8, r0 +_0817454E: + adds r0, r5, #5 + lsls r0, r0, #1 + adds r0, r0, r7 + mov r1, r8 + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, #0xff + beq _08174566 + bl FreeAndDestroyMonPicSprite + movs r0, #0xff + strh r0, [r4] +_08174566: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #5 + bls _0817454E + ldr r0, _08174594 + mov r2, sb + adds r1, r2, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r2, [r1, #0xa] + movs r3, #0xa + ldrsh r0, [r1, r3] + cmp r0, #0 + beq _08174588 + subs r0, r2, #1 + strh r0, [r1, #0xa] +_08174588: + ldr r0, _08174598 + str r0, [r1] + b _08174668 + .align 2, 0 +_08174590: .4byte 0x03002360 +_08174594: .4byte 0x03005B60 +_08174598: .4byte 0x081741D1 +_0817459C: + bl IsCryPlayingOrClearCrySongs + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081745B6 + bl StopCryAndClearCrySongs + ldr r0, _081745BC + ldr r1, _081745C0 + movs r2, #0x80 + lsls r2, r2, #1 + bl m4aMPlayVolumeControl +_081745B6: + ldr r0, _081745C4 + str r0, [r4] + b _08174668 + .align 2, 0 +_081745BC: .4byte 0x030074D0 +_081745C0: .4byte 0x0000FFFF +_081745C4: .4byte 0x0817467D +_081745C8: + movs r0, #2 + ands r0, r2 + cmp r0, #0 + beq _0817460C + bl IsCryPlayingOrClearCrySongs + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081745EA + bl StopCryAndClearCrySongs + ldr r0, _081745FC + ldr r1, _08174600 + movs r2, #0x80 + lsls r2, r2, #1 + bl m4aMPlayVolumeControl +_081745EA: + ldr r0, _08174604 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _08174608 + str r0, [r1] + b _08174668 + .align 2, 0 +_081745FC: .4byte 0x030074D0 +_08174600: .4byte 0x0000FFFF +_08174604: .4byte 0x03005B60 +_08174608: .4byte 0x0817467D +_0817460C: + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + beq _0817463C + ldr r0, _08174634 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r2, [r1, #0xc] + movs r4, #0xc + ldrsh r0, [r1, r4] + cmp r0, #0 + beq _0817463C + subs r0, r2, #1 + strh r0, [r1, #0xc] + ldr r0, _08174638 + str r0, [r1] + b _08174668 + .align 2, 0 +_08174634: .4byte 0x03005B60 +_08174638: .4byte 0x081743E1 +_0817463C: + ldrh r1, [r3, #0x2e] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08174668 + ldr r1, _08174674 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r2, r0, r1 + movs r5, #0xc + ldrsh r1, [r2, r5] + movs r3, #0x10 + ldrsh r0, [r2, r3] + subs r0, #1 + cmp r1, r0 + bge _08174668 + ldrh r0, [r2, #0xc] + adds r0, #1 + strh r0, [r2, #0xc] + ldr r0, _08174678 + str r0, [r2] +_08174668: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08174674: .4byte 0x03005B60 +_08174678: .4byte 0x081743E1 + thumb_func_end Task_HofPC_HandleInput + + thumb_func_start Task_HofPC_HandlePaletteOnExit +Task_HofPC_HandlePaletteOnExit: @ 0x0817467C + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081746BC + ldr r1, _081746C0 + movs r2, #0x80 + lsls r2, r2, #2 + bl CpuSet + ldr r1, _081746C4 + ldr r0, _081746C8 + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} + ldm r0!, {r2, r3} + stm r1!, {r2, r3} + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl sub_080FA464 + ldr r1, _081746CC + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081746D0 + str r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081746BC: .4byte 0x020377B4 +_081746C0: .4byte 0x020373B4 +_081746C4: .4byte 0x0201C000 +_081746C8: .4byte 0x085C6790 +_081746CC: .4byte 0x03005B60 +_081746D0: .4byte 0x081746D5 + thumb_func_end Task_HofPC_HandlePaletteOnExit + + thumb_func_start Task_HofPC_HandleExit +Task_HofPC_HandleExit: @ 0x081746D4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + bl FldEffPoison_IsActive + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0817476C + movs r5, #0 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r7, r0, #3 + ldr r0, _08174778 + mov r8, r0 +_081746F4: + adds r0, r5, #5 + lsls r0, r0, #1 + adds r0, r0, r7 + mov r1, r8 + adds r4, r0, r1 + ldrh r0, [r4] + cmp r0, #0xff + beq _0817470C + bl FreeAndDestroyMonPicSprite + movs r0, #0xff + strh r0, [r4] +_0817470C: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #5 + bls _081746F4 + movs r0, #0 + bl HideBg + movs r0, #1 + bl HideBg + movs r0, #3 + bl HideBg + bl sub_08198418 + bl FreeAllWindowBuffers + movs r0, #1 + bl UnsetBgTilemapBuffer + movs r0, #3 + bl UnsetBgTilemapBuffer + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + adds r0, r6, #0 + bl DestroyTask + ldr r4, _0817477C + ldr r0, [r4] + cmp r0, #0 + beq _08174758 + bl Free + movs r0, #0 + str r0, [r4] +_08174758: + ldr r4, _08174780 + ldr r0, [r4] + cmp r0, #0 + beq _08174768 + bl Free + movs r0, #0 + str r0, [r4] +_08174768: + bl ReturnFromHallOfFamePC +_0817476C: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08174778: .4byte 0x03005B68 +_0817477C: .4byte 0x0203B9A8 +_08174780: .4byte 0x0203B9A4 + thumb_func_end Task_HofPC_HandleExit + + thumb_func_start Task_HofPC_PrintDataIsCorrupted +Task_HofPC_PrintDataIsCorrupted: @ 0x08174784 + push {r4, lr} + sub sp, #0x10 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081747DC + movs r1, #8 + movs r2, #1 + bl sub_08198244 + movs r0, #0 + movs r1, #0 + bl ClearDialogWindowAndFrame + ldr r2, _081747E0 + movs r0, #0 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + movs r0, #3 + str r0, [sp, #0xc] + movs r0, #0 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized2 + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + ldr r1, _081747E4 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081747E8 + str r1, [r0] + add sp, #0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081747DC: .4byte 0x085C8E8C +_081747E0: .4byte 0x085C9311 +_081747E4: .4byte 0x03005B60 +_081747E8: .4byte 0x081747ED + thumb_func_end Task_HofPC_PrintDataIsCorrupted + + thumb_func_start Task_HofPC_ExitOnButtonPress +Task_HofPC_ExitOnButtonPress: @ 0x081747EC + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _08174810 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0817480C + ldr r0, _08174814 + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _08174818 + str r0, [r1] +_0817480C: + pop {r0} + bx r0 + .align 2, 0 +_08174810: .4byte 0x03002360 +_08174814: .4byte 0x03005B60 +_08174818: .4byte 0x0817467D + thumb_func_end Task_HofPC_ExitOnButtonPress + + thumb_func_start HallOfFame_PrintWelcomeText +HallOfFame_PrintWelcomeText: @ 0x0817481C + push {r4, r5, lr} + sub sp, #0xc + movs r0, #0 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #0 + bl PutWindowTilemap + movs r0, #0 + movs r1, #3 + bl GetWindowAttribute + adds r4, r0, #0 + ldr r5, _08174874 + movs r2, #1 + rsbs r2, r2, #0 + movs r0, #1 + adds r1, r5, #0 + bl GetStringWidth + lsls r4, r4, #2 + lsrs r0, r0, #1 + subs r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _08174878 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r5, [sp, #8] + movs r1, #1 + adds r2, r4, #0 + movs r3, #1 + bl AddTextPrinterParameterized3 + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08174874: .4byte 0x085C929D +_08174878: .4byte 0x085C6444 + thumb_func_end HallOfFame_PrintWelcomeText + + thumb_func_start HallOfFame_PrintMonInfo +HallOfFame_PrintMonInfo: @ 0x0817487C + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + adds r7, r0, #0 + movs r0, #0 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #0 + bl PutWindowTilemap + ldrh r0, [r7, #8] + ldr r1, _08174904 + ands r1, r0 + movs r0, #0xce + lsls r0, r0, #1 + cmp r1, r0 + beq _0817493C + ldr r0, _08174908 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + ldr r0, _0817490C + str r0, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #4 + movs r3, #1 + bl AddTextPrinterParameterized3 + ldrh r0, [r7, #8] + lsls r0, r0, #0x17 + lsrs r0, r0, #0x17 + bl SpeciesToPokedexNum + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r0, _08174910 + cmp r6, r0 + beq _08174914 + add r4, sp, #0xc + adds r0, r6, #0 + movs r1, #0x64 + bl __udivsi3 + adds r0, #0xa1 + strb r0, [r4] + add r5, sp, #0xc + adds r0, r6, #0 + movs r1, #0x64 + bl __umodsi3 + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r4, #0 + movs r1, #0xa + bl __udivsi3 + adds r0, #0xa1 + strb r0, [r5, #1] + add r5, sp, #0xc + adds r0, r4, #0 + movs r1, #0xa + bl __umodsi3 + adds r0, #0xa1 + strb r0, [r5, #2] + b _08174922 + .align 2, 0 +_08174904: .4byte 0x000001FF +_08174908: .4byte 0x085C6444 +_0817490C: .4byte 0x085C934B +_08174910: .4byte 0x0000FFFF +_08174914: + add r3, sp, #0xc + adds r2, r3, #0 + adds r1, r2, #0 + movs r0, #0xac + strb r0, [r1, #2] + strb r0, [r2, #1] + strb r0, [r3] +_08174922: + add r1, sp, #0xc + movs r0, #0xff + strb r0, [r1, #3] + ldr r0, _081749C8 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r1, [sp, #8] + movs r1, #0 + movs r2, #0x1c + movs r3, #1 + bl AddTextPrinterParameterized3 +_0817493C: + movs r4, #0 + adds r1, r7, #0 + adds r1, #0xa + ldrb r0, [r7, #0xa] + ldrh r3, [r7, #8] + cmp r0, #0xff + beq _0817496E + adds r2, r1, #0 +_0817494C: + mov r1, sp + adds r1, r1, r4 + adds r1, #0xc + adds r0, r2, r4 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #5 + beq _0817496E + adds r0, r2, r4 + ldrb r0, [r0] + cmp r0, #0xff + beq _0817496E + cmp r4, #9 + bls _0817494C +_0817496E: + mov r1, sp + adds r1, r1, r4 + adds r1, #0xc + movs r0, #0xff + strb r0, [r1] + ldr r0, _081749CC + ands r0, r3 + movs r1, #0xce + lsls r1, r1, #1 + cmp r0, r1 + bne _081749D0 + movs r0, #0 + movs r1, #3 + bl GetWindowAttribute + adds r4, r0, #0 + movs r2, #1 + rsbs r2, r2, #0 + movs r0, #1 + add r1, sp, #0xc + bl GetStringWidth + lsls r4, r4, #2 + lsrs r0, r0, #1 + subs r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081749C8 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + add r0, sp, #0xc + str r0, [sp, #8] + movs r0, #0 + movs r1, #1 + adds r2, r4, #0 + movs r3, #1 + bl AddTextPrinterParameterized3 + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + b _08174B58 + .align 2, 0 +_081749C8: .4byte 0x085C6444 +_081749CC: .4byte 0x000001FF +_081749D0: + movs r2, #1 + rsbs r2, r2, #0 + movs r0, #1 + add r1, sp, #0xc + bl GetStringWidth + movs r2, #0x79 + subs r2, r2, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r0, _08174A7C + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + add r0, sp, #0xc + str r0, [sp, #8] + movs r0, #0 + movs r1, #1 + movs r3, #1 + bl AddTextPrinterParameterized3 + add r1, sp, #0xc + movs r0, #0xba + strb r0, [r1] + movs r4, #1 + ldr r2, _08174A80 + ldrh r5, [r7, #8] + lsls r1, r5, #0x17 + lsrs r1, r1, #0x17 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #0xff + beq _08174A52 + adds r6, r2, #0 +_08174A1A: + mov r3, sp + adds r3, r3, r4 + adds r3, #0xc + lsls r2, r5, #0x17 + lsrs r1, r2, #0x17 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + subs r0, #1 + adds r0, r4, r0 + adds r0, r0, r6 + ldrb r0, [r0] + strb r0, [r3] + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r2, r1, #0 + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #1 + subs r0, #1 + adds r0, r4, r0 + adds r0, r0, r6 + ldrb r0, [r0] + cmp r0, #0xff + beq _08174A52 + cmp r4, #9 + bls _08174A1A +_08174A52: + ldrh r0, [r7, #8] + ldr r1, _08174A84 + ands r1, r0 + cmp r1, #0x20 + beq _08174AA2 + cmp r1, #0x1d + beq _08174AA2 + lsls r0, r0, #0x17 + lsrs r0, r0, #0x17 + ldr r1, [r7, #4] + bl GetGenderFromSpeciesAndPersonality + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xfe + beq _08174A98 + cmp r0, #0xfe + bgt _08174A88 + cmp r0, #0 + beq _08174A8E + b _08174AAC + .align 2, 0 +_08174A7C: .4byte 0x085C6444 +_08174A80: .4byte 0x082EA31C +_08174A84: .4byte 0x000001FF +_08174A88: + cmp r0, #0xff + beq _08174AA2 + b _08174AAC +_08174A8E: + mov r1, sp + adds r1, r1, r4 + adds r1, #0xc + movs r0, #0xb5 + b _08174AAA +_08174A98: + mov r1, sp + adds r1, r1, r4 + adds r1, #0xc + movs r0, #0xb6 + b _08174AAA +_08174AA2: + mov r1, sp + adds r1, r1, r4 + adds r1, #0xc + movs r0, #0 +_08174AAA: + strb r0, [r1] +_08174AAC: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + mov r1, sp + adds r1, r1, r4 + adds r1, #0xc + movs r0, #0xff + strb r0, [r1] + ldr r6, _08174B60 + str r6, [sp] + movs r4, #0 + str r4, [sp, #4] + add r0, sp, #0xc + str r0, [sp, #8] + movs r0, #0 + movs r1, #1 + movs r2, #0x7a + movs r3, #1 + bl AddTextPrinterParameterized3 + str r6, [sp] + str r4, [sp, #4] + ldr r0, _08174B64 + str r0, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #0x18 + movs r3, #0x11 + bl AddTextPrinterParameterized3 + ldr r5, _08174B68 + ldrb r1, [r7, #9] + lsrs r1, r1, #1 + adds r0, r5, #0 + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + str r6, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #0x28 + movs r3, #0x11 + bl AddTextPrinterParameterized3 + str r6, [sp] + str r4, [sp, #4] + ldr r0, _08174B6C + str r0, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #0x52 + movs r3, #0x11 + bl AddTextPrinterParameterized3 + str r6, [sp] + str r4, [sp, #4] + ldr r0, _08174B70 + str r0, [sp, #8] + movs r0, #0 + movs r1, #1 + movs r2, #0x7a + movs r3, #0x11 + bl AddTextPrinterParameterized3 + ldrh r1, [r7] + adds r0, r5, #0 + movs r2, #2 + movs r3, #5 + bl ConvertIntToDecimalStringN + str r6, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #0x84 + movs r3, #0x11 + bl AddTextPrinterParameterized3 + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram +_08174B58: + add sp, #0x1c + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08174B60: .4byte 0x085C6444 +_08174B64: .4byte 0x085C934F +_08174B68: .4byte 0x02021C40 +_08174B6C: .4byte 0x085C935D +_08174B70: .4byte 0x085C93FF + thumb_func_end HallOfFame_PrintMonInfo + + thumb_func_start HallOfFame_PrintPlayerInfo +HallOfFame_PrintPlayerInfo: @ 0x08174B74 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x28 + movs r4, #0 + movs r0, #1 + movs r1, #0x11 + bl FillWindowPixelBuffer + movs r0, #1 + bl PutWindowTilemap + ldr r2, _08174C04 + movs r0, #1 + movs r1, #0 + movs r3, #0xd + bl DrawStdFrameWithCustomTileAndPalette + str r4, [sp] + str r4, [sp, #4] + ldr r0, _08174C08 + str r0, [sp, #8] + str r4, [sp, #0xc] + ldr r0, _08174C0C + str r0, [sp, #0x10] + movs r0, #1 + movs r1, #1 + movs r2, #4 + movs r3, #3 + bl AddTextPrinterParameterized4 + movs r2, #0 + ldr r0, _08174C10 + ldr r3, [r0] + movs r5, #1 +_08174BBC: + mov r1, sp + adds r1, r1, r2 + adds r1, #0x14 + adds r0, r3, r2 + ldrb r0, [r0] + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08174BD2 + orrs r4, r5 +_08174BD2: + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #4 + bls _08174BBC + mov r1, sp + adds r1, r1, r2 + adds r1, #0x14 + movs r0, #0xff + strb r0, [r1] + cmp r4, #0 + beq _08174C14 + ldr r0, _08174C08 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + add r0, sp, #0x14 + str r0, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r2, #0x3c + movs r3, #3 + bl AddTextPrinterParameterized3 + b _08174C2E + .align 2, 0 +_08174C04: .4byte 0x0000021D +_08174C08: .4byte 0x085C6448 +_08174C0C: .4byte 0x085C9359 +_08174C10: .4byte 0x03005AF0 +_08174C14: + str r4, [sp] + str r4, [sp, #4] + ldr r0, _08174DB0 + str r0, [sp, #8] + str r4, [sp, #0xc] + add r1, sp, #0x14 + str r1, [sp, #0x10] + movs r0, #1 + movs r1, #1 + movs r2, #0x3c + movs r3, #3 + bl AddTextPrinterParameterized4 +_08174C2E: + ldr r0, _08174DB4 + mov sb, r0 + ldr r0, [r0] + ldrb r4, [r0, #0xa] + ldrb r0, [r0, #0xb] + lsls r0, r0, #8 + orrs r4, r0 + ldr r1, _08174DB0 + mov r8, r1 + str r1, [sp] + movs r7, #0 + str r7, [sp, #4] + ldr r0, _08174DB8 + str r0, [sp, #8] + movs r0, #1 + movs r1, #0 + movs r2, #4 + movs r3, #0x12 + bl AddTextPrinterParameterized3 + add r6, sp, #0x14 + ldr r1, _08174DBC + adds r0, r4, #0 + bl __modsi3 + ldr r5, _08174DC0 + adds r1, r5, #0 + bl __divsi3 + subs r0, #0x5f + strb r0, [r6] + add r6, sp, #0x14 + adds r0, r4, #0 + adds r1, r5, #0 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r5, #0xfa + lsls r5, r5, #2 + adds r1, r5, #0 + bl __udivsi3 + adds r0, #0xa1 + strb r0, [r6, #1] + add r6, sp, #0x14 + adds r0, r4, #0 + adds r1, r5, #0 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __udivsi3 + adds r0, #0xa1 + strb r0, [r6, #2] + add r5, sp, #0x14 + adds r0, r4, #0 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __udivsi3 + adds r0, #0xa1 + strb r0, [r5, #3] + add r5, sp, #0x14 + adds r0, r4, #0 + movs r1, #0xa + bl __umodsi3 + adds r0, #0xa1 + strb r0, [r5, #4] + add r1, sp, #0x14 + movs r0, #0xff + strb r0, [r1, #5] + mov r0, r8 + str r0, [sp] + str r7, [sp, #4] + str r1, [sp, #8] + movs r0, #1 + movs r1, #0 + movs r2, #0x3c + movs r3, #0x12 + bl AddTextPrinterParameterized3 + mov r1, r8 + str r1, [sp] + str r7, [sp, #4] + ldr r0, _08174DC4 + str r0, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r2, #4 + movs r3, #0x20 + bl AddTextPrinterParameterized3 + add r5, sp, #0x14 + mov r0, sb + ldr r4, [r0] + ldrh r0, [r4, #0xe] + movs r1, #0x64 + bl __udivsi3 + adds r0, #0xa1 + strb r0, [r5] + add r5, sp, #0x14 + ldrh r0, [r4, #0xe] + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __udivsi3 + adds r0, #0xa1 + strb r0, [r5, #1] + add r5, sp, #0x14 + ldrh r0, [r4, #0xe] + movs r1, #0xa + bl __umodsi3 + adds r0, #0xa1 + strb r0, [r5, #2] + add r0, sp, #0x14 + ldrb r0, [r0] + cmp r0, #0xa1 + bne _08174D3A + add r0, sp, #0x14 + strb r7, [r0] +_08174D3A: + add r0, sp, #0x14 + ldrb r1, [r0] + cmp r1, #0 + bne _08174D4C + ldrb r0, [r0, #1] + cmp r0, #0xa1 + bne _08174D4C + add r0, sp, #0x14 + strb r1, [r0, #8] +_08174D4C: + add r1, sp, #0x14 + movs r6, #0 + movs r0, #0xf0 + strb r0, [r1, #3] + adds r4, r1, #0 + ldr r0, _08174DB4 + ldr r5, [r0] + ldrb r0, [r5, #0x10] + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0xa + bl __udivsi3 + adds r0, #0xa1 + strb r0, [r4, #4] + add r4, sp, #0x14 + ldrb r0, [r5, #0x10] + movs r1, #0xa + bl __umodsi3 + adds r0, #0xa1 + strb r0, [r4, #5] + add r1, sp, #0x14 + movs r0, #0xff + strb r0, [r1, #6] + ldr r0, _08174DB0 + str r0, [sp] + str r6, [sp, #4] + str r1, [sp, #8] + movs r0, #1 + movs r1, #0 + movs r2, #0x3c + movs r3, #0x20 + bl AddTextPrinterParameterized3 + movs r0, #1 + movs r1, #3 + bl CopyWindowToVram + add sp, #0x28 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08174DB0: .4byte 0x085C6448 +_08174DB4: .4byte 0x03005AF0 +_08174DB8: .4byte 0x085C935D +_08174DBC: .4byte 0x000186A0 +_08174DC0: .4byte 0x00002710 +_08174DC4: .4byte 0x085C8DEC + thumb_func_end HallOfFame_PrintPlayerInfo + + thumb_func_start ClearVramOamPltt_LoadHofPal +ClearVramOamPltt_LoadHofPal: @ 0x08174DC8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + movs r3, #0xc0 + lsls r3, r3, #0x13 + movs r4, #0xc0 + lsls r4, r4, #9 + add r0, sp, #4 + mov r8, r0 + mov r2, sp + movs r6, #0 + ldr r1, _08174E68 + movs r5, #0x80 + lsls r5, r5, #5 + ldr r7, _08174E6C + movs r0, #0x81 + lsls r0, r0, #0x18 + mov ip, r0 +_08174DEE: + strh r6, [r2] + mov r0, sp + str r0, [r1] + str r3, [r1, #4] + str r7, [r1, #8] + ldr r0, [r1, #8] + adds r3, r3, r5 + subs r4, r4, r5 + cmp r4, r5 + bhi _08174DEE + strh r6, [r2] + mov r2, sp + str r2, [r1] + str r3, [r1, #4] + lsrs r0, r4, #1 + mov r2, ip + orrs r0, r2 + str r0, [r1, #8] + ldr r0, [r1, #8] + movs r0, #0xe0 + lsls r0, r0, #0x13 + movs r3, #0x80 + lsls r3, r3, #3 + movs r4, #0 + str r4, [sp, #4] + ldr r2, _08174E68 + mov r1, r8 + str r1, [r2] + str r0, [r2, #4] + lsrs r0, r3, #2 + movs r1, #0x85 + lsls r1, r1, #0x18 + orrs r0, r1 + str r0, [r2, #8] + ldr r0, [r2, #8] + movs r1, #0xa0 + lsls r1, r1, #0x13 + mov r0, sp + strh r4, [r0] + str r0, [r2] + str r1, [r2, #4] + lsrs r3, r3, #1 + movs r0, #0x81 + lsls r0, r0, #0x18 + orrs r3, r0 + str r3, [r2, #8] + ldr r0, [r2, #8] + bl ResetPaletteFade + ldr r0, _08174E70 + movs r1, #0 + movs r2, #0x20 + bl LoadPalette + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08174E68: .4byte 0x040000D4 +_08174E6C: .4byte 0x81000800 +_08174E70: .4byte 0x085C65A4 + thumb_func_end ClearVramOamPltt_LoadHofPal + + thumb_func_start sub_08174E74 +sub_08174E74: @ 0x08174E74 + push {lr} + bl ScanlineEffect_Stop + bl ResetTasks + bl ResetSpriteData + bl reset_temp_tile_data_buffers + bl ResetAllPicSprites + bl FreeAllSpritePalettes + ldr r1, _08174EA4 + movs r0, #8 + strb r0, [r1] + ldr r0, _08174EA8 + bl LoadCompressedSpriteSheet + ldr r0, _08174EAC + bl LoadCompressedSpritePalette + pop {r0} + bx r0 + .align 2, 0 +_08174EA4: .4byte 0x030030BC +_08174EA8: .4byte 0x085C6450 +_08174EAC: .4byte 0x085C6460 + thumb_func_end sub_08174E74 + + thumb_func_start sub_08174EB0 +sub_08174EB0: @ 0x08174EB0 + push {r4, lr} + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _08174F1C + movs r0, #0 + movs r2, #3 + bl InitBgsFromTemplates + ldr r4, _08174F20 + ldr r1, [r4] + adds r1, #0x12 + movs r0, #1 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, _08174F24 + adds r1, r1, r0 + movs r0, #3 + bl SetBgTilemapBuffer + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08174F1C: .4byte 0x085C6430 +_08174F20: .4byte 0x0203B9A8 +_08174F24: .4byte 0x00001012 + thumb_func_end sub_08174EB0 + + thumb_func_start sub_08174F28 +sub_08174F28: @ 0x08174F28 + push {r4, lr} + sub sp, #8 + ldr r0, _08174F40 + ldr r0, [r0] + ldrh r0, [r0] + cmp r0, #4 + bhi _0817500C + lsls r0, r0, #2 + ldr r1, _08174F44 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08174F40: .4byte 0x0203B9A8 +_08174F44: .4byte 0x08174F48 +_08174F48: @ jump table + .4byte _08174F5C @ case 0 + .4byte _08174F74 @ case 1 + .4byte _08174F80 @ case 2 + .4byte _08174FD6 @ case 3 + .4byte _08174FE0 @ case 4 +_08174F5C: + ldr r1, _08174F70 + movs r0, #0 + str r0, [sp] + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + b _0817500C + .align 2, 0 +_08174F70: .4byte 0x085C65C4 +_08174F74: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0817500C + b _08175016 +_08174F80: + movs r4, #0x20 + str r4, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #1 + movs r1, #1 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + str r4, [sp] + movs r0, #0xb + str r0, [sp, #4] + movs r0, #1 + movs r1, #0 + movs r2, #0 + movs r3, #3 + bl FillBgTilemapBufferRect_Palette0 + str r4, [sp] + movs r0, #6 + str r0, [sp, #4] + movs r0, #1 + movs r1, #1 + movs r2, #0 + movs r3, #0xe + bl FillBgTilemapBufferRect_Palette0 + str r4, [sp] + str r4, [sp, #4] + movs r0, #3 + movs r1, #2 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, #1 + bl CopyBgTilemapBufferToVram + movs r0, #3 + bl CopyBgTilemapBufferToVram + b _0817500C +_08174FD6: + bl InitStandardTextBoxWindows + bl sub_08196DF4 + b _0817500C +_08174FE0: + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #3 + bl ShowBg + ldr r0, _08175008 + ldr r1, [r0] + movs r0, #0 + strh r0, [r1] + b _08175018 + .align 2, 0 +_08175008: .4byte 0x0203B9A8 +_0817500C: + ldr r0, _08175020 + ldr r1, [r0] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_08175016: + movs r0, #1 +_08175018: + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08175020: .4byte 0x0203B9A8 + thumb_func_end sub_08174F28 + + thumb_func_start SpriteCB_GetOnScreenAndAnimate +SpriteCB_GetOnScreenAndAnimate: @ 0x08175024 + push {r4, lr} + adds r2, r0, #0 + ldr r1, [r2, #0x20] + ldr r0, [r2, #0x30] + cmp r1, r0 + beq _0817507A + ldrh r3, [r2, #0x20] + movs r1, #0x20 + ldrsh r0, [r2, r1] + movs r4, #0x30 + ldrsh r1, [r2, r4] + cmp r0, r1 + bge _08175044 + adds r0, r3, #0 + adds r0, #0xf + strh r0, [r2, #0x20] +_08175044: + ldrh r3, [r2, #0x20] + movs r4, #0x20 + ldrsh r0, [r2, r4] + cmp r0, r1 + ble _08175054 + adds r0, r3, #0 + subs r0, #0xf + strh r0, [r2, #0x20] +_08175054: + ldrh r3, [r2, #0x22] + movs r1, #0x22 + ldrsh r0, [r2, r1] + movs r4, #0x32 + ldrsh r1, [r2, r4] + cmp r0, r1 + bge _08175068 + adds r0, r3, #0 + adds r0, #0xa + strh r0, [r2, #0x22] +_08175068: + ldrh r3, [r2, #0x22] + movs r4, #0x22 + ldrsh r0, [r2, r4] + cmp r0, r1 + ble _081750A0 + adds r0, r3, #0 + subs r0, #0xa + strh r0, [r2, #0x22] + b _081750A0 +_0817507A: + ldrh r0, [r2, #0x3c] + lsls r1, r0, #0x10 + movs r0, #0xce + lsls r0, r0, #0x11 + cmp r1, r0 + bne _08175094 + lsrs r1, r1, #0x10 + adds r0, r2, #0 + movs r2, #1 + movs r3, #3 + bl DoMonFrontSpriteAnimation + b _081750A0 +_08175094: + lsrs r1, r1, #0x10 + adds r0, r2, #0 + movs r2, #0 + movs r3, #3 + bl DoMonFrontSpriteAnimation +_081750A0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SpriteCB_GetOnScreenAndAnimate + + thumb_func_start sub_081750A8 +sub_081750A8: @ 0x081750A8 + push {r4, r5, lr} + adds r5, r0, #0 + ldrh r1, [r5, #0x26] + movs r2, #0x26 + ldrsh r0, [r5, r2] + cmp r0, #0x78 + ble _081750BE + adds r0, r5, #0 + bl DestroySprite + b _081750F6 +_081750BE: + adds r0, r1, #1 + ldrh r1, [r5, #0x30] + adds r0, r0, r1 + strh r0, [r5, #0x26] + ldrh r4, [r5, #0x2e] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + ands r0, r1 + adds r0, #8 + ldr r1, _081750FC + lsls r4, r4, #1 + adds r4, r4, r1 + movs r2, #0 + ldrsh r1, [r4, r2] + muls r0, r1, r0 + cmp r0, #0 + bge _081750EC + adds r0, #0xff +_081750EC: + asrs r0, r0, #8 + strh r0, [r5, #0x24] + ldrh r0, [r5, #0x2e] + adds r0, #4 + strh r0, [r5, #0x2e] +_081750F6: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081750FC: .4byte 0x082FA8CC + thumb_func_end sub_081750A8 + + thumb_func_start sub_08175100 +sub_08175100: @ 0x08175100 + push {r4, lr} + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xf0 + bl __umodsi3 + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + bl Random + adds r2, r0, #0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + movs r0, #7 + ands r2, r0 + rsbs r2, r2, #0 + ldr r0, _08175170 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r1, r4, #0 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08175174 + adds r4, r1, r0 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x11 + bl __umodsi3 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim + bl Random + movs r1, #3 + ands r1, r0 + cmp r1, #0 + beq _08175178 + movs r0, #0 + b _0817517A + .align 2, 0 +_08175170: .4byte 0x085C658C +_08175174: .4byte 0x020205AC +_08175178: + movs r0, #1 +_0817517A: + strh r0, [r4, #0x30] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_08175100 + + thumb_func_start sub_08175184 +sub_08175184: @ 0x08175184 + push {r4, lr} + ldr r4, _081751B4 + movs r0, #0xb4 + strh r0, [r4] + ldr r0, _081751B8 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xff + beq _081751AE + ldr r1, _081751BC + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r4] + strh r1, [r0, #0xa] + ldr r0, _081751C0 + strh r2, [r0] +_081751AE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081751B4: .4byte 0x02037280 +_081751B8: .4byte 0x08175269 +_081751BC: .4byte 0x03005B60 +_081751C0: .4byte 0x02037282 + thumb_func_end sub_08175184 + + thumb_func_start sub_081751C4 +sub_081751C4: @ 0x081751C4 + push {r4, lr} + ldr r0, _081751F0 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _081751D8 + bl DestroyTask +_081751D8: + bl sub_08152230 + ldr r4, _081751F4 + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl FreeSpritePaletteByTag + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081751F0: .4byte 0x08175269 +_081751F4: .4byte 0x000003E9 + thumb_func_end sub_081751C4 + + thumb_func_start sub_081751F8 +sub_081751F8: @ 0x081751F8 + push {r4, r5, lr} + adds r5, r0, #0 + ldrh r1, [r5, #0xe] + movs r2, #0xe + ldrsh r0, [r5, r2] + cmp r0, #0x6e + ble _08175228 + ldr r2, _08175224 + movs r0, #0x28 + ldrsh r1, [r5, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrh r1, [r0, #0x26] + subs r1, #1 + strh r1, [r0, #0x26] + ldrb r0, [r5, #0x16] + bl sub_081525AC + b _0817525C + .align 2, 0 +_08175224: .4byte 0x03005B60 +_08175228: + adds r0, r1, #1 + ldrh r1, [r5, #0x1c] + adds r0, r0, r1 + strh r0, [r5, #0xe] + ldrb r4, [r5, #0x1a] + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + ands r0, r1 + adds r0, #8 + ldr r1, _08175264 + lsls r4, r4, #1 + adds r4, r4, r1 + movs r2, #0 + ldrsh r1, [r4, r2] + muls r0, r1, r0 + cmp r0, #0 + bge _08175252 + adds r0, #0xff +_08175252: + asrs r0, r0, #8 + strh r0, [r5, #0xc] + ldrh r0, [r5, #0x1a] + adds r0, #4 + strh r0, [r5, #0x1a] +_0817525C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08175264: .4byte 0x082FA8CC + thumb_func_end sub_081751F8 + + thumb_func_start sub_08175268 +sub_08175268: @ 0x08175268 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + mov r8, r4 + movs r7, #0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _08175294 + adds r6, r0, r1 + ldrh r0, [r6] + cmp r0, #1 + beq _081752E4 + cmp r0, #1 + bgt _08175298 + cmp r0, #0 + beq _081752A0 + b _081753B4 + .align 2, 0 +_08175294: .4byte 0x03005B68 +_08175298: + cmp r0, #0xff + bne _0817529E + b _081753A4 +_0817529E: + b _081753B4 +_081752A0: + movs r0, #0x40 + bl sub_0815219C + cmp r0, #0 + bne _081752BC + adds r0, r4, #0 + bl DestroyTask + ldr r0, _081752D0 + strh r7, [r0] + ldr r1, _081752D4 + ldr r2, _081752D8 + adds r0, r2, #0 + strh r0, [r1] +_081752BC: + ldr r0, _081752DC + bl LoadCompressedSpriteSheet + ldr r0, _081752E0 + bl LoadCompressedSpritePalette + ldrh r0, [r6] + adds r0, #1 + strh r0, [r6] + b _081753B4 + .align 2, 0 +_081752D0: .4byte 0x02037280 +_081752D4: .4byte 0x02037282 +_081752D8: .4byte 0x0000FFFF +_081752DC: .4byte 0x085C6450 +_081752E0: .4byte 0x085C6460 +_081752E4: + ldrh r0, [r6, #2] + cmp r0, #0 + beq _0817537C + movs r1, #3 + bl __umodsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0817537C + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xf0 + bl __umodsi3 + adds r5, r0, #0 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + bl Random + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + movs r0, #7 + ands r4, r0 + rsbs r4, r4, #0 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x11 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0817538C + ldr r2, _08175390 + str r4, [sp] + str r0, [sp, #4] + str r7, [sp, #8] + adds r0, r1, #0 + adds r1, r2, #0 + adds r3, r5, #0 + bl sub_081524A0 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #0xff + beq _0817537C + adds r4, r7, #0 + ldr r1, _08175394 + adds r0, r4, #0 + bl sub_08152414 + bl Random + movs r1, #3 + ands r1, r0 + cmp r1, #0 + bne _0817536C + adds r0, r4, #0 + movs r1, #1 + movs r2, #1 + bl sub_08152450 +_0817536C: + adds r0, r4, #0 + movs r1, #7 + mov r2, r8 + bl sub_08152450 + ldrh r0, [r6, #0x1e] + adds r0, #1 + strh r0, [r6, #0x1e] +_0817537C: + bl sub_081522B0 + ldrh r0, [r6, #2] + cmp r0, #0 + beq _08175398 + subs r0, #1 + strh r0, [r6, #2] + b _081753B4 + .align 2, 0 +_0817538C: .4byte 0x085C64B8 +_08175390: .4byte 0x000003E9 +_08175394: .4byte 0x081751F9 +_08175398: + ldrh r0, [r6, #0x1e] + cmp r0, #0 + bne _081753B4 + movs r0, #0xff + strh r0, [r6] + b _081753B4 +_081753A4: + bl sub_081751C4 + ldr r0, _081753C0 + strh r7, [r0] + ldr r1, _081753C4 + ldr r2, _081753C8 + adds r0, r2, #0 + strh r0, [r1] +_081753B4: + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081753C0: .4byte 0x02037280 +_081753C4: .4byte 0x02037282 +_081753C8: .4byte 0x0000FFFF + thumb_func_end sub_08175268 + diff --git a/asm/heal_location.s b/asm/heal_location.s new file mode 100644 index 0000000..6ad30da --- /dev/null +++ b/asm/heal_location.s @@ -0,0 +1,84 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start GetHealLocationIndexByMap +GetHealLocationIndexByMap: @ 0x08122C68 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r3, #0 + ldr r2, _08122C8C +_08122C76: + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, r4 + bne _08122C90 + movs r0, #1 + ldrsb r0, [r2, r0] + cmp r0, r1 + bne _08122C90 + adds r0, r3, #1 + b _08122C9A + .align 2, 0 +_08122C8C: .4byte 0x0857B10C +_08122C90: + adds r2, #8 + adds r3, #1 + cmp r3, #0x15 + bls _08122C76 + movs r0, #0 +_08122C9A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetHealLocationIndexByMap + + thumb_func_start GetHealLocationByMap +GetHealLocationByMap: @ 0x08122CA0 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl GetHealLocationIndexByMap + cmp r0, #0 + beq _08122CC0 + lsls r0, r0, #3 + ldr r1, _08122CBC + adds r0, r0, r1 + b _08122CC2 + .align 2, 0 +_08122CBC: .4byte 0x0857B104 +_08122CC0: + movs r0, #0 +_08122CC2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetHealLocationByMap + + thumb_func_start GetHealLocation +GetHealLocation: @ 0x08122CC8 + push {lr} + cmp r0, #0 + beq _08122CE0 + cmp r0, #0x16 + bhi _08122CE0 + lsls r0, r0, #3 + ldr r1, _08122CDC + adds r0, r0, r1 + b _08122CE2 + .align 2, 0 +_08122CDC: .4byte 0x0857B104 +_08122CE0: + movs r0, #0 +_08122CE2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetHealLocation + diff --git a/asm/hof_pc.s b/asm/hof_pc.s new file mode 100644 index 0000000..4d2ab2f --- /dev/null +++ b/asm/hof_pc.s @@ -0,0 +1,78 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start AccessHallOfFamePC +AccessHallOfFamePC: @ 0x08137C98 + push {lr} + ldr r0, _08137CA8 + bl SetMainCallback2 + bl ScriptContext2_Enable + pop {r0} + bx r0 + .align 2, 0 +_08137CA8: .4byte 0x08173F79 + thumb_func_end AccessHallOfFamePC + + thumb_func_start ReturnFromHallOfFamePC +ReturnFromHallOfFamePC: @ 0x08137CAC + push {lr} + ldr r0, _08137CC0 + bl SetMainCallback2 + ldr r1, _08137CC4 + ldr r0, _08137CC8 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08137CC0: .4byte 0x08085A31 +_08137CC4: .4byte 0x03005B0C +_08137CC8: .4byte 0x08137CCD + thumb_func_end ReturnFromHallOfFamePC + + thumb_func_start ReshowPCMenuAfterHallOfFamePC +ReshowPCMenuAfterHallOfFamePC: @ 0x08137CCC + push {lr} + sub sp, #4 + bl ScriptContext2_Enable + bl Overworld_PlaySpecialMapMusic + bl sub_080E1850 + bl ScriptMenu_DisplayPCStartupPrompt + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r0, _08137D00 + movs r1, #0xa + bl CreateTask + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_08137D00: .4byte 0x08137D05 + thumb_func_end ReshowPCMenuAfterHallOfFamePC + + thumb_func_start Task_WaitForPaletteFade +Task_WaitForPaletteFade: @ 0x08137D04 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _08137D20 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08137D1C + adds r0, r2, #0 + bl DestroyTask +_08137D1C: + pop {r0} + bx r0 + .align 2, 0 +_08137D20: .4byte 0x02037C74 + thumb_func_end Task_WaitForPaletteFade + diff --git a/asm/ice.s b/asm/ice.s new file mode 100644 index 0000000..5bb623b --- /dev/null +++ b/asm/ice.s @@ -0,0 +1,2982 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_0810BF14 +sub_0810BF14: @ 0x0810BF14 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r5, r0, #0 + ldrh r2, [r5, #4] + lsls r1, r2, #0x16 + lsrs r1, r1, #0x16 + adds r1, #7 + ldr r3, _0810C01C + adds r0, r3, #0 + ands r1, r0 + ldr r0, _0810C020 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, #4] + ldr r4, _0810C024 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r4, _0810C028 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldrb r0, [r4] + movs r1, #3 + str r3, [sp] + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _0810C02C + ldrh r0, [r1, #8] + strh r0, [r5, #0x2e] + ldrh r0, [r1] + ldr r3, [sp] + adds r0, r0, r3 + strh r0, [r5, #0x30] + ldrh r0, [r1, #4] + mov r4, sb + adds r0, r4, r0 + strh r0, [r5, #0x32] + ldrh r0, [r1, #2] + adds r0, r0, r6 + strh r0, [r5, #0x34] + ldrh r0, [r1, #6] + mov r7, r8 + adds r0, r7, r0 + strh r0, [r5, #0x36] + adds r0, r5, #0 + bl sub_080A5DB4 + adds r4, #0x20 + movs r0, #0x98 + lsls r0, r0, #1 + mov ip, r0 + ldr r3, [sp] + cmp r4, ip + bhi _0810BFEE + adds r0, r7, #0 + adds r0, #0x20 + ldrh r1, [r5, #0x30] + ldrh r2, [r5, #0x32] + cmp r0, #0xe0 + bhi _0810BFEE + adds r4, r1, #0 + mov sl, ip +_0810BFBA: + mov r7, sb + lsls r1, r7, #0x10 + asrs r1, r1, #0x10 + adds r1, r1, r4 + lsls r1, r1, #0x10 + mov r7, r8 + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + adds r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + lsrs r0, r1, #0x10 + mov sb, r0 + movs r7, #0x80 + lsls r7, r7, #0xe + adds r1, r1, r7 + lsrs r1, r1, #0x10 + cmp r1, sl + bhi _0810BFEE + mov r1, r8 + lsls r0, r1, #0x10 + adds r0, r0, r7 + lsrs r0, r0, #0x10 + cmp r0, #0xe0 + bls _0810BFBA +_0810BFEE: + ldrh r0, [r5, #0x30] + rsbs r7, r0, #0 + strh r7, [r5, #0x30] + ldrh r0, [r5, #0x32] + rsbs r4, r0, #0 + strh r4, [r5, #0x32] + lsls r0, r3, #0x10 + movs r1, #0x80 + lsls r1, r1, #0xe + adds r0, r0, r1 + lsrs r0, r0, #0x10 + movs r2, #0x98 + lsls r2, r2, #1 + mov ip, r2 + ldr r1, _0810C02C + mov sl, r1 + cmp r0, ip + bhi _0810C05A + lsls r1, r6, #0x10 + movs r2, #0x80 + lsls r2, r2, #0xe + adds r0, r1, r2 + b _0810C052 + .align 2, 0 +_0810C01C: .4byte 0x000003FF +_0810C020: .4byte 0xFFFFFC00 +_0810C024: .4byte 0x020380D7 +_0810C028: .4byte 0x020380D6 +_0810C02C: .4byte 0x020380BE +_0810C030: + lsls r1, r3, #0x10 + asrs r1, r1, #0x10 + adds r1, r1, r7 + lsls r1, r1, #0x10 + asrs r0, r2, #0x10 + adds r0, r0, r4 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + lsrs r3, r1, #0x10 + movs r0, #0x80 + lsls r0, r0, #0xe + adds r1, r1, r0 + lsrs r1, r1, #0x10 + cmp r1, ip + bhi _0810C05A + lsls r1, r6, #0x10 + adds r0, r1, r0 +_0810C052: + lsrs r0, r0, #0x10 + adds r2, r1, #0 + cmp r0, #0xe0 + bls _0810C030 +_0810C05A: + strh r3, [r5, #0x20] + strh r6, [r5, #0x22] + mov r1, sl + ldrh r0, [r1, #8] + strh r0, [r5, #0x2e] + strh r3, [r5, #0x30] + mov r2, sb + strh r2, [r5, #0x32] + strh r6, [r5, #0x34] + mov r3, r8 + strh r3, [r5, #0x36] + adds r0, r5, #0 + bl sub_080A5DB4 + mov r7, sl + ldrh r0, [r7, #0xa] + strh r0, [r5, #0x34] + ldrh r0, [r7, #0xc] + strh r0, [r5, #0x36] + ldr r0, _0810C094 + str r0, [r5, #0x1c] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0810C094: .4byte 0x0810C099 + thumb_func_end sub_0810BF14 + + thumb_func_start sub_0810C098 +sub_0810C098: @ 0x0810C098 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0810C0F0 + ldrh r1, [r4, #0x30] + ldrh r2, [r4, #0x38] + adds r1, r1, r2 + strh r1, [r4, #0x38] + ldrh r0, [r4, #0x32] + ldrh r2, [r4, #0x3a] + adds r0, 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, 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, r0, r1 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x36] + ldrh r2, [r4, #0x3c] + adds r0, r0, r2 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x3c] + ldrh r0, [r4, #0x2e] + subs r0, #1 + strh r0, [r4, #0x2e] + b _0810C0F6 +_0810C0F0: + adds r0, r4, #0 + bl DestroyAnimSprite +_0810C0F6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0810C098 + + thumb_func_start AnimIcePunchSwirlingParticle +AnimIcePunchSwirlingParticle: @ 0x0810C0FC + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0810C130 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + movs r0, #0x3c + strh r0, [r4, #0x30] + movs r0, #9 + strh r0, [r4, #0x32] + movs r0, #0x1e + strh r0, [r4, #0x34] + movs r0, #0xfe + lsls r0, r0, #8 + strh r0, [r4, #0x36] + ldr r1, _0810C134 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + ldr r1, _0810C138 + str r1, [r4, #0x1c] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810C130: .4byte 0x020380BE +_0810C134: .4byte 0x080A34C5 +_0810C138: .4byte 0x080A5C15 + thumb_func_end AnimIcePunchSwirlingParticle + + thumb_func_start AnimIceBeamParticle +AnimIceBeamParticle: @ 0x0810C13C + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldr r0, _0810C170 + ldrb r0, [r0] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x32] + ldr r0, _0810C174 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810C17C + ldr r0, _0810C178 + ldrh r1, [r4, #0x32] + ldrh r0, [r0, #4] + subs r1, r1, r0 + strh r1, [r4, #0x32] + b _0810C186 + .align 2, 0 +_0810C170: .4byte 0x020380D7 +_0810C174: .4byte 0x020380D6 +_0810C178: .4byte 0x020380BE +_0810C17C: + ldr r0, _0810C1B4 + ldrh r0, [r0, #4] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] +_0810C186: + ldr r0, _0810C1B8 + ldrb r0, [r0] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + ldr r1, _0810C1B4 + lsrs r0, r0, #0x18 + ldrh r2, [r1, #6] + adds r0, r0, r2 + strh r0, [r4, #0x36] + ldrh r0, [r1, #8] + strh r0, [r4, #0x2e] + ldr r1, _0810C1BC + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _0810C1C0 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810C1B4: .4byte 0x020380BE +_0810C1B8: .4byte 0x020380D7 +_0810C1BC: .4byte 0x080A34C5 +_0810C1C0: .4byte 0x080A67B5 + thumb_func_end AnimIceBeamParticle + + thumb_func_start AnimIceEffectParticle +AnimIceEffectParticle: @ 0x0810C1C4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0810C1DC + movs r1, #4 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _0810C1E0 + adds r0, r4, #0 + movs r1, #1 + bl InitSpritePosToAnimTarget + b _0810C216 + .align 2, 0 +_0810C1DC: .4byte 0x020380BE +_0810C1E0: + ldr r0, _0810C228 + ldrb r0, [r0] + adds r2, r4, #0 + adds r2, #0x20 + adds r3, r4, #0 + adds r3, #0x22 + movs r1, #1 + bl SetAverageBattlerPositions + ldr r0, _0810C22C + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810C206 + ldrh r0, [r5] + rsbs r0, r0, #0 + strh r0, [r5] +_0810C206: + ldrh r0, [r5] + ldrh r1, [r4, #0x20] + adds r0, r0, r1 + strh r0, [r4, #0x20] + ldrh r0, [r5, #2] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] +_0810C216: + ldr r1, _0810C230 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _0810C234 + str r0, [r4, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810C228: .4byte 0x020380D7 +_0810C22C: .4byte 0x020380D6 +_0810C230: .4byte 0x0810C239 +_0810C234: .4byte 0x080A6085 + thumb_func_end AnimIceEffectParticle + + thumb_func_start AnimFlickerIceEffectParticle +AnimFlickerIceEffectParticle: @ 0x0810C238 + push {lr} + adds r3, r0, #0 + movs r0, #0x3e + adds r0, r0, r3 + mov ip, r0 + ldrb r2, [r0] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrh r0, [r3, #0x2e] + adds r0, #1 + strh r0, [r3, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x14 + bne _0810C26E + adds r0, r3, #0 + bl DestroySpriteAndMatrix +_0810C26E: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AnimFlickerIceEffectParticle + + thumb_func_start AnimSwirlingSnowball_Step1 +AnimSwirlingSnowball_Step1: @ 0x0810C274 + push {r4, r5, r6, r7, lr} + sub sp, #0x10 + adds r5, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldr r6, _0810C2BC + ldrh r0, [r6, #8] + 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 _0810C2C4 + ldr r4, _0810C2C0 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x32] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r6, [r6, #6] + adds r0, r0, r6 + strh r0, [r5, #0x36] + b _0810C2D6 + .align 2, 0 +_0810C2BC: .4byte 0x020380BE +_0810C2C0: .4byte 0x020380D7 +_0810C2C4: + ldr r0, _0810C2F0 + ldrb r0, [r0] + adds r2, r5, #0 + adds r2, #0x32 + adds r3, r5, #0 + adds r3, #0x36 + movs r1, #1 + bl SetAverageBattlerPositions +_0810C2D6: + ldr r0, _0810C2F4 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810C2FC + ldr r0, _0810C2F8 + ldrh r1, [r5, #0x32] + ldrh r0, [r0, #4] + subs r1, r1, r0 + strh r1, [r5, #0x32] + b _0810C306 + .align 2, 0 +_0810C2F0: .4byte 0x020380D7 +_0810C2F4: .4byte 0x020380D6 +_0810C2F8: .4byte 0x020380BE +_0810C2FC: + ldr r0, _0810C3A4 + ldrh r0, [r0, #4] + ldrh r2, [r5, #0x32] + adds r0, r0, r2 + strh r0, [r5, #0x32] +_0810C306: + adds r7, r5, #0 + adds r7, #0x2e + adds r2, r7, #0 + mov r1, sp + movs r4, #7 +_0810C310: + ldrh r0, [r2] + strh r0, [r1] + adds r2, #2 + adds r1, #2 + subs r4, #1 + cmp r4, #0 + bge _0810C310 + adds r0, r5, #0 + bl InitAnimFastLinearTranslationWithSpeed + ldrh r0, [r5, #0x30] + movs r1, #1 + eors r0, r1 + strh r0, [r5, #0x30] + ldrh r0, [r5, #0x32] + eors r0, r1 + strh r0, [r5, #0x32] +_0810C332: + movs r0, #1 + strh r0, [r5, #0x2e] + adds r0, r5, #0 + bl AnimFastTranslateLinear + movs r0, #0x20 + ldrsh r1, [r5, r0] + movs r2, #0x24 + ldrsh r0, [r5, r2] + adds r1, r1, r0 + adds r1, #0x10 + movs r0, #0x88 + lsls r0, r0, #1 + cmp r1, r0 + bhi _0810C366 + movs r0, #0x22 + ldrsh r1, [r5, r0] + movs r2, #0x26 + ldrsh r0, [r5, r2] + adds r1, r1, r0 + cmp r1, #0xa0 + bgt _0810C366 + movs r0, #0x10 + rsbs r0, r0, #0 + cmp r1, r0 + bge _0810C332 +_0810C366: + ldrh r0, [r5, #0x24] + ldrh r1, [r5, #0x20] + adds r0, r0, r1 + movs r1, #0 + strh r0, [r5, #0x20] + ldrh r0, [r5, #0x26] + ldrh r2, [r5, #0x22] + adds r0, r0, r2 + strh r0, [r5, #0x22] + strh r1, [r5, #0x26] + strh r1, [r5, #0x24] + ldr r6, _0810C3A8 + ldr r1, _0810C3AC + mov r3, sp + adds r2, r7, #0 + movs r4, #7 +_0810C386: + ldrh r0, [r3] + strh r0, [r2] + adds r3, #2 + adds r2, #2 + subs r4, #1 + cmp r4, #0 + bge _0810C386 + str r6, [r5, #0x1c] + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + add sp, #0x10 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0810C3A4: .4byte 0x020380BE +_0810C3A8: .4byte 0x080A6A55 +_0810C3AC: .4byte 0x0810C3B1 + thumb_func_end AnimSwirlingSnowball_Step1 + + thumb_func_start AnimSwirlingSnowball_Step2 +AnimSwirlingSnowball_Step2: @ 0x0810C3B0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x24] + ldrh r1, [r4, #0x20] + adds r0, r0, r1 + movs r5, #0 + strh r0, [r4, #0x20] + ldrh r0, [r4, #0x26] + ldrh r2, [r4, #0x22] + adds r0, r0, r2 + strh r0, [r4, #0x22] + strh r5, [r4, #0x26] + strh r5, [r4, #0x24] + movs r0, #0x80 + strh r0, [r4, #0x2e] + ldr r0, _0810C40C + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + ldr r1, _0810C410 + cmp r0, #0 + beq _0810C3E0 + movs r1, #0x14 +_0810C3E0: + movs r2, #0x2e + ldrsh r0, [r4, r2] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + 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, _0810C414 + str r1, [r4, #0x1c] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810C40C: .4byte 0x020380D6 +_0810C410: .4byte 0x0000FFEC +_0810C414: .4byte 0x0810C419 + thumb_func_end AnimSwirlingSnowball_Step2 + + thumb_func_start AnimSwirlingSnowball_Step3 +AnimSwirlingSnowball_Step3: @ 0x0810C418 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0810C46C + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + ldr r1, _0810C470 + cmp r0, #0 + beq _0810C42E + movs r1, #0x14 +_0810C42E: + movs r2, #0x38 + ldrsh r0, [r4, r2] + cmp r0, #0x1f + bgt _0810C474 + movs r2, #0x2e + ldrsh r0, [r4, r2] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl Sin + ldrh r1, [r4, #0x34] + subs r0, r0, r1 + strh r0, [r4, #0x24] + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r1, #0xf + bl Cos + ldrh r1, [r4, #0x36] + subs r0, 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, #1 + strh r0, [r4, #0x38] + b _0810C492 + .align 2, 0 +_0810C46C: .4byte 0x020380D6 +_0810C470: .4byte 0x0000FFEC +_0810C474: + ldrh r0, [r4, #0x24] + ldrh r2, [r4, #0x20] + adds r0, r0, r2 + movs r1, #0 + strh r0, [r4, #0x20] + ldrh r0, [r4, #0x26] + ldrh r2, [r4, #0x22] + adds r0, r0, r2 + strh r0, [r4, #0x22] + strh r1, [r4, #0x26] + strh r1, [r4, #0x24] + strh r1, [r4, #0x36] + strh r1, [r4, #0x34] + ldr r0, _0810C498 + str r0, [r4, #0x1c] +_0810C492: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810C498: .4byte 0x0810C49D + thumb_func_end AnimSwirlingSnowball_Step3 + + thumb_func_start AnimSwirlingSnowball_End +AnimSwirlingSnowball_End: @ 0x0810C49C + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strh r0, [r4, #0x2e] + adds r0, r4, #0 + bl AnimFastTranslateLinear + movs r1, #0x20 + ldrsh r0, [r4, r1] + movs r2, #0x24 + ldrsh r1, [r4, r2] + adds r0, r0, r1 + adds r0, #0x10 + movs r1, #0x88 + lsls r1, r1, #1 + cmp r0, r1 + bhi _0810C4D8 + movs r1, #0x22 + ldrsh r0, [r4, r1] + movs r2, #0x26 + ldrsh r1, [r4, r2] + adds r1, r0, r1 + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + bgt _0810C4D8 + movs r0, #0x10 + rsbs r0, r0, #0 + cmp r1, r0 + bge _0810C4DE +_0810C4D8: + adds r0, r4, #0 + bl DestroyAnimSprite +_0810C4DE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end AnimSwirlingSnowball_End + + thumb_func_start AnimMoveParticleBeyondTarget +AnimMoveParticleBeyondTarget: @ 0x0810C4E4 + push {r4, r5, r6, r7, lr} + sub sp, #0x10 + adds r5, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldr r1, _0810C528 + ldrh r0, [r1, #8] + 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 _0810C530 + ldr r4, _0810C52C + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x32] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x36] + b _0810C542 + .align 2, 0 +_0810C528: .4byte 0x020380BE +_0810C52C: .4byte 0x020380D7 +_0810C530: + ldr r0, _0810C560 + ldrb r0, [r0] + adds r2, r5, #0 + adds r2, #0x32 + adds r3, r5, #0 + adds r3, #0x36 + movs r1, #1 + bl SetAverageBattlerPositions +_0810C542: + ldr r0, _0810C564 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810C56C + ldr r0, _0810C568 + ldrh r1, [r5, #0x32] + ldrh r2, [r0, #4] + subs r1, r1, r2 + strh r1, [r5, #0x32] + adds r1, r0, #0 + b _0810C576 + .align 2, 0 +_0810C560: .4byte 0x020380D7 +_0810C564: .4byte 0x020380D6 +_0810C568: .4byte 0x020380BE +_0810C56C: + ldr r1, _0810C620 + ldrh r0, [r1, #4] + ldrh r2, [r5, #0x32] + adds r0, r0, r2 + strh r0, [r5, #0x32] +_0810C576: + ldrh r0, [r1, #6] + ldrh r1, [r5, #0x36] + adds r0, r0, r1 + strh r0, [r5, #0x36] + adds r0, r5, #0 + bl InitAnimFastLinearTranslationWithSpeed + adds r7, r5, #0 + adds r7, #0x2e + adds r2, r7, #0 + mov r1, sp + movs r4, #7 +_0810C58E: + ldrh r0, [r2] + strh r0, [r1] + adds r2, #2 + adds r1, #2 + subs r4, #1 + cmp r4, #0 + bge _0810C58E + ldrh r0, [r5, #0x30] + movs r1, #1 + eors r0, r1 + strh r0, [r5, #0x30] + ldrh r0, [r5, #0x32] + eors r0, r1 + strh r0, [r5, #0x32] +_0810C5AA: + movs r0, #1 + strh r0, [r5, #0x2e] + adds r0, r5, #0 + bl AnimFastTranslateLinear + movs r2, #0x20 + ldrsh r1, [r5, r2] + movs r2, #0x24 + ldrsh r0, [r5, r2] + adds r1, r1, r0 + adds r1, #0x10 + movs r0, #0x88 + lsls r0, r0, #1 + cmp r1, r0 + bhi _0810C5DE + movs r0, #0x22 + ldrsh r1, [r5, r0] + movs r2, #0x26 + ldrsh r0, [r5, r2] + adds r1, r1, r0 + cmp r1, #0xa0 + bgt _0810C5DE + movs r0, #0x10 + rsbs r0, r0, #0 + cmp r1, r0 + bge _0810C5AA +_0810C5DE: + ldrh r0, [r5, #0x24] + ldrh r1, [r5, #0x20] + adds r0, r0, r1 + movs r1, #0 + strh r0, [r5, #0x20] + ldrh r0, [r5, #0x26] + ldrh r2, [r5, #0x22] + adds r0, r0, r2 + strh r0, [r5, #0x22] + strh r1, [r5, #0x26] + strh r1, [r5, #0x24] + ldr r1, _0810C620 + ldr r6, _0810C624 + mov r3, sp + adds r2, r7, #0 + movs r4, #7 +_0810C5FE: + ldrh r0, [r3] + strh r0, [r2] + adds r3, #2 + adds r2, #2 + subs r4, #1 + cmp r4, #0 + bge _0810C5FE + 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, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0810C620: .4byte 0x020380BE +_0810C624: .4byte 0x0810C629 + thumb_func_end AnimMoveParticleBeyondTarget + + thumb_func_start AnimWiggleParticleTowardsTarget +AnimWiggleParticleTowardsTarget: @ 0x0810C628 + push {r4, lr} + adds r4, r0, #0 + bl AnimFastTranslateLinear + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0810C63C + movs r0, #1 + strh r0, [r4, #0x2e] +_0810C63C: + movs r2, #0x3c + ldrsh r0, [r4, r2] + movs r2, #0x38 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, #0x26] + adds r0, r0, r1 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x3a] + ldrh r2, [r4, #0x3c] + adds r0, r0, r2 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x3c] + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #1 + bne _0810C692 + movs r2, #0x20 + ldrsh r0, [r4, r2] + movs r2, #0x24 + ldrsh r1, [r4, r2] + adds r0, r0, r1 + adds r0, #0x10 + movs r1, #0x88 + lsls r1, r1, #1 + cmp r0, r1 + bhi _0810C68C + movs r0, #0x22 + ldrsh r1, [r4, r0] + movs r2, #0x26 + ldrsh r0, [r4, r2] + adds r1, r1, r0 + cmp r1, #0xa0 + bgt _0810C68C + movs r0, #0x10 + rsbs r0, r0, #0 + cmp r1, r0 + bge _0810C692 +_0810C68C: + adds r0, r4, #0 + bl DestroyAnimSprite +_0810C692: + pop {r4} + pop {r0} + bx r0 + thumb_func_end AnimWiggleParticleTowardsTarget + + thumb_func_start AnimWaveFromCenterOfTarget +AnimWaveFromCenterOfTarget: @ 0x0810C698 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0810C704 + ldr r5, _0810C6B8 + movs r1, #4 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _0810C6BC + adds r0, r4, #0 + movs r1, #0 + bl InitSpritePosToAnimTarget + b _0810C6F2 + .align 2, 0 +_0810C6B8: .4byte 0x020380BE +_0810C6BC: + ldr r0, _0810C6FC + ldrb r0, [r0] + adds r2, r4, #0 + adds r2, #0x20 + adds r3, r4, #0 + adds r3, #0x22 + movs r1, #0 + bl SetAverageBattlerPositions + ldr r0, _0810C700 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810C6E2 + ldrh r0, [r5] + rsbs r0, r0, #0 + strh r0, [r5] +_0810C6E2: + ldrh r0, [r5] + ldrh r1, [r4, #0x20] + adds r0, r0, r1 + strh r0, [r4, #0x20] + ldrh r0, [r5, #2] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] +_0810C6F2: + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + b _0810C718 + .align 2, 0 +_0810C6FC: .4byte 0x020380D7 +_0810C700: .4byte 0x020380D6 +_0810C704: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0810C718 + adds r0, r4, #0 + bl DestroyAnimSprite +_0810C718: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AnimWaveFromCenterOfTarget + + thumb_func_start InitSwirlingFogAnim +InitSwirlingFogAnim: @ 0x0810C720 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, _0810C740 + movs r1, #8 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _0810C790 + movs r1, #0xa + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _0810C744 + adds r0, r5, #0 + movs r1, #0 + bl InitSpritePosToAnimAttacker + b _0810C782 + .align 2, 0 +_0810C740: .4byte 0x020380BE +_0810C744: + ldr r4, _0810C76C + ldrb r0, [r4] + adds r2, r5, #0 + adds r2, #0x20 + adds r3, r5, #0 + adds r3, #0x22 + movs r1, #0 + bl SetAverageBattlerPositions + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810C770 + ldrh r0, [r5, #0x20] + ldrh r1, [r6] + subs r0, r0, r1 + b _0810C776 + .align 2, 0 +_0810C76C: .4byte 0x020380D6 +_0810C770: + ldrh r0, [r6] + ldrh r1, [r5, #0x20] + adds r0, r0, r1 +_0810C776: + strh r0, [r5, #0x20] + ldr r0, _0810C788 + ldrh r0, [r0, #2] + ldrh r1, [r5, #0x22] + adds r0, r0, r1 + strh r0, [r5, #0x22] +_0810C782: + ldr r0, _0810C78C + b _0810C7E0 + .align 2, 0 +_0810C788: .4byte 0x020380BE +_0810C78C: .4byte 0x020380D6 +_0810C790: + movs r1, #0xa + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _0810C7A2 + adds r0, r5, #0 + movs r1, #0 + bl InitSpritePosToAnimTarget + b _0810C7DE +_0810C7A2: + ldr r4, _0810C7C8 + ldrb r0, [r4] + adds r2, r5, #0 + adds r2, #0x20 + adds r3, r5, #0 + adds r3, #0x22 + movs r1, #0 + bl SetAverageBattlerPositions + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810C7CC + ldrh r0, [r5, #0x20] + ldrh r1, [r6] + subs r0, r0, r1 + b _0810C7D2 + .align 2, 0 +_0810C7C8: .4byte 0x020380D7 +_0810C7CC: + ldrh r0, [r6] + ldrh r1, [r5, #0x20] + adds r0, r0, r1 +_0810C7D2: + strh r0, [r5, #0x20] + ldr r0, _0810C7FC + ldrh r0, [r0, #2] + ldrh r1, [r5, #0x22] + adds r0, r0, r1 + strh r0, [r5, #0x22] +_0810C7DE: + ldr r0, _0810C800 +_0810C7E0: + ldrb r0, [r0] + strh r0, [r5, #0x3c] + ldr r0, _0810C7FC + movs r1, #0xa + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _0810C7F8 + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810C804 +_0810C7F8: + movs r0, #0x20 + b _0810C806 + .align 2, 0 +_0810C7FC: .4byte 0x020380BE +_0810C800: .4byte 0x020380D7 +_0810C804: + movs r0, #0x40 +_0810C806: + strh r0, [r5, #0x3a] + ldr r0, _0810C84C + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810C81C + ldrh r0, [r5, #0x22] + adds r0, #8 + strh r0, [r5, #0x22] +_0810C81C: + ldr r1, _0810C850 + ldrh r0, [r1, #6] + 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, #4] + adds r0, r0, r1 + strh r0, [r5, #0x36] + adds r0, r5, #0 + bl InitAnimLinearTranslation + movs r0, #0x40 + strh r0, [r5, #0x38] + ldr r1, _0810C854 + str r1, [r5, #0x1c] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0810C84C: .4byte 0x020380D7 +_0810C850: .4byte 0x020380BE +_0810C854: .4byte 0x0810C859 + thumb_func_end InitSwirlingFogAnim + + thumb_func_start AnimSwirlingFogAnim +AnimSwirlingFogAnim: @ 0x0810C858 + push {r4, lr} + adds r4, r0, #0 + bl AnimTranslateLinear + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810C8E2 + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r2, #0x3a + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, #0x24] + adds r0, r0, r1 + strh r0, [r4, #0x24] + movs r2, #0x38 + ldrsh r0, [r4, r2] + movs r1, #6 + rsbs r1, r1, #0 + bl Cos + ldrh r1, [r4, #0x26] + adds r0, r0, r1 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x38] + subs r0, #0x40 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x7f + bhi _0810C8B4 + ldrh r0, [r4, #0x3c] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerSpriteBGPriority + movs r1, #3 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r4, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #5] + b _0810C8D6 +_0810C8B4: + ldrh r0, [r4, #0x3c] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerSpriteBGPriority + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #1 + movs r1, #3 + ands r0, r1 + lsls r0, r0, #2 + ldrb r2, [r4, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #5] +_0810C8D6: + ldrh r0, [r4, #0x38] + adds r0, #3 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x38] + b _0810C8E8 +_0810C8E2: + adds r0, r4, #0 + bl DestroyAnimSprite +_0810C8E8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AnimSwirlingFogAnim + + thumb_func_start AnimTask_Haze1 +AnimTask_Haze1: @ 0x0810C8F0 + push {r4, r5, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _0810C994 + movs r0, #0x50 + bl SetGpuReg + movs r1, #0x80 + lsls r1, r1, #5 + movs r0, #0x52 + bl SetGpuReg + movs r0, #1 + movs r1, #4 + movs r2, #1 + bl SetAnimBgAttribute + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl SetAnimBgAttribute + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810C932 + movs r0, #1 + movs r1, #3 + movs r2, #1 + bl SetAnimBgAttribute +_0810C932: + ldr r0, _0810C998 + movs r1, #0 + strh r1, [r0] + ldr r4, _0810C99C + strh r1, [r4] + movs r0, #0x14 + movs r1, #0 + bl SetGpuReg + ldrh r1, [r4] + movs r0, #0x16 + bl SetGpuReg + mov r0, sp + bl sub_080A63F8 + mov r0, sp + ldrb r0, [r0, #9] + ldr r1, _0810C9A0 + movs r2, #0x80 + lsls r2, r2, #4 + mov r3, sp + ldrh r3, [r3, #0xa] + bl LoadBgTiles + ldr r1, _0810C9A4 + mov r0, sp + movs r2, #0 + bl sub_080A6628 + ldr r0, _0810C9A8 + mov r1, sp + ldrb r1, [r1, #8] + lsls r1, r1, #4 + movs r2, #0x20 + bl LoadPalette + ldr r1, _0810C9AC + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0810C9B0 + str r1, [r0] + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810C994: .4byte 0x00003F42 +_0810C998: .4byte 0x02022ACC +_0810C99C: .4byte 0x02022ACE +_0810C9A0: .4byte 0x0852776C +_0810C9A4: .4byte 0x08D93294 +_0810C9A8: .4byte 0x08526F0C +_0810C9AC: .4byte 0x03005B60 +_0810C9B0: .4byte 0x0810C9B5 + thumb_func_end AnimTask_Haze1 + + thumb_func_start AnimTask_Haze2 +AnimTask_Haze2: @ 0x0810C9B4 + push {r4, r5, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _0810C9E8 + ldr r2, _0810C9EC + adds r0, r2, #0 + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + ldr r1, _0810C9F0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #0x20 + ldrsh r0, [r0, r2] + adds r2, r1, #0 + cmp r0, #4 + bls _0810C9DE + b _0810CB2A +_0810C9DE: + lsls r0, r0, #2 + ldr r1, _0810C9F4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0810C9E8: .4byte 0x02022ACC +_0810C9EC: .4byte 0x0000FFFF +_0810C9F0: .4byte 0x03005B60 +_0810C9F4: .4byte 0x0810C9F8 +_0810C9F8: @ jump table + .4byte _0810CA0C @ case 0 + .4byte _0810CA64 @ case 1 + .4byte _0810CA86 @ case 2 + .4byte _0810CACA @ case 3 + .4byte _0810CAEC @ case 4 +_0810CA0C: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r4, r0, r2 + ldrh r0, [r4, #0x1c] + adds r0, #1 + movs r5, #0 + strh r0, [r4, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + beq _0810CA26 + b _0810CB2A +_0810CA26: + strh r5, [r4, #0x1c] + ldrh r0, [r4, #0x1a] + adds r0, #1 + strh r0, [r4, #0x1a] + ldr r1, _0810CA60 + movs r2, #0x1a + ldrsh r0, [r4, r2] + adds r0, r0, r1 + ldrb r1, [r0] + strh r1, [r4, #0x1e] + movs r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r1, #0x1e + ldrsh r0, [r4, r1] + cmp r0, #9 + bne _0810CB2A + ldrh r0, [r4, #0x20] + adds r0, #1 + strh r0, [r4, #0x20] + strh r5, [r4, #0x1e] + b _0810CB2A + .align 2, 0 +_0810CA60: .4byte 0x08571840 +_0810CA64: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r1, r0, r2 + ldrh r0, [r1, #0x1e] + adds r0, #1 + strh r0, [r1, #0x1e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x51 + bne _0810CB2A + movs r0, #9 + strh r0, [r1, #0x1e] + ldrh r0, [r1, #0x20] + adds r0, #1 + strh r0, [r1, #0x20] + b _0810CB2A +_0810CA86: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r4, r0, r2 + ldrh r0, [r4, #0x1c] + adds r0, #1 + strh r0, [r4, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + bne _0810CB2A + movs r0, #0 + strh r0, [r4, #0x1c] + ldrh r1, [r4, #0x1e] + subs r1, #1 + strh r1, [r4, #0x1e] + movs r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r2, #0x1e + ldrsh r1, [r4, r2] + cmp r1, #0 + bne _0810CB2A + ldrh r0, [r4, #0x20] + adds r0, #1 + strh r0, [r4, #0x20] + strh r1, [r4, #0x1e] + b _0810CB2A +_0810CACA: + mov r0, sp + bl sub_080A63F8 + movs r0, #1 + bl sub_080A6530 + movs r0, #2 + bl sub_080A6530 + ldr r0, _0810CB34 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x20] + adds r0, #1 + strh r0, [r1, #0x20] +_0810CAEC: + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810CB00 + movs r0, #1 + movs r1, #3 + movs r2, #0 + bl SetAnimBgAttribute +_0810CB00: + ldr r0, _0810CB38 + movs r1, #0 + strh r1, [r0] + ldr r0, _0810CB3C + strh r1, [r0] + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #1 + movs r1, #4 + movs r2, #1 + bl SetAnimBgAttribute + adds r0, r4, #0 + bl DestroyAnimVisualTask +_0810CB2A: + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810CB34: .4byte 0x03005B60 +_0810CB38: .4byte 0x02022ACC +_0810CB3C: .4byte 0x02022ACE + thumb_func_end AnimTask_Haze2 + + thumb_func_start AnimThrowMistBall +AnimThrowMistBall: @ 0x0810CB40 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0810CB6C + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x20] + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x22] + ldr r0, _0810CB70 + str r0, [r4, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810CB6C: .4byte 0x020380D6 +_0810CB70: .4byte 0x080A70E9 + thumb_func_end AnimThrowMistBall + + thumb_func_start AnimTask_LoadMistTiles +AnimTask_LoadMistTiles: @ 0x0810CB74 + push {r4, r5, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _0810CC1C + movs r0, #0x50 + bl SetGpuReg + movs r1, #0x80 + lsls r1, r1, #5 + movs r0, #0x52 + bl SetGpuReg + movs r0, #1 + movs r1, #4 + movs r2, #1 + bl SetAnimBgAttribute + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl SetAnimBgAttribute + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810CBB6 + movs r0, #1 + movs r1, #3 + movs r2, #1 + bl SetAnimBgAttribute +_0810CBB6: + ldr r0, _0810CC20 + movs r1, #0 + strh r1, [r0] + ldr r4, _0810CC24 + strh r1, [r4] + movs r0, #0x14 + movs r1, #0 + bl SetGpuReg + ldrh r1, [r4] + movs r0, #0x16 + bl SetGpuReg + mov r0, sp + bl sub_080A63F8 + mov r0, sp + ldrb r0, [r0, #9] + ldr r1, _0810CC28 + movs r2, #0x80 + lsls r2, r2, #4 + mov r3, sp + ldrh r3, [r3, #0xa] + bl LoadBgTiles + ldr r1, _0810CC2C + mov r0, sp + movs r2, #0 + bl sub_080A6628 + ldr r0, _0810CC30 + mov r1, sp + ldrb r1, [r1, #8] + lsls r1, r1, #4 + movs r2, #0x20 + bl LoadPalette + ldr r1, _0810CC34 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0810CC38 + strh r1, [r0, #0x26] + ldr r1, _0810CC3C + str r1, [r0] + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810CC1C: .4byte 0x00003F42 +_0810CC20: .4byte 0x02022ACC +_0810CC24: .4byte 0x02022ACE +_0810CC28: .4byte 0x0852776C +_0810CC2C: .4byte 0x08D93294 +_0810CC30: .4byte 0x08526F0C +_0810CC34: .4byte 0x03005B60 +_0810CC38: .4byte 0x0000FFFF +_0810CC3C: .4byte 0x0810CC41 + thumb_func_end AnimTask_LoadMistTiles + + thumb_func_start AnimTask_OverlayFogTiles +AnimTask_OverlayFogTiles: @ 0x0810CC40 + push {r4, r5, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r2, _0810CC70 + ldr r3, _0810CC74 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r3 + ldrh r0, [r1, #0x26] + ldrh r5, [r2] + adds r0, r0, r5 + strh r0, [r2] + movs r2, #0x20 + ldrsh r0, [r1, r2] + cmp r0, #4 + bls _0810CC66 + b _0810CD9A +_0810CC66: + lsls r0, r0, #2 + ldr r1, _0810CC78 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0810CC70: .4byte 0x02022ACC +_0810CC74: .4byte 0x03005B60 +_0810CC78: .4byte 0x0810CC7C +_0810CC7C: @ jump table + .4byte _0810CC90 @ case 0 + .4byte _0810CCD4 @ case 1 + .4byte _0810CCF6 @ case 2 + .4byte _0810CD3A @ case 3 + .4byte _0810CD5C @ case 4 +_0810CC90: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r4, r0, r3 + ldrh r0, [r4, #0x1a] + adds r0, #1 + strh r0, [r4, #0x1a] + ldr r1, _0810CCD0 + movs r5, #0x1a + ldrsh r0, [r4, r5] + adds r0, r0, r1 + ldrb r1, [r0] + strh r1, [r4, #0x1e] + movs r0, #0x11 + subs r0, r0, r1 + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r1, #0x1e + ldrsh r0, [r4, r1] + cmp r0, #5 + bne _0810CD9A + ldrh r0, [r4, #0x20] + adds r0, #1 + strh r0, [r4, #0x20] + movs r0, #0 + strh r0, [r4, #0x1e] + b _0810CD9A + .align 2, 0 +_0810CCD0: .4byte 0x0857186C +_0810CCD4: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r1, r0, r3 + ldrh r0, [r1, #0x1e] + adds r0, #1 + strh r0, [r1, #0x1e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x51 + bne _0810CD9A + movs r0, #5 + strh r0, [r1, #0x1e] + ldrh r0, [r1, #0x20] + adds r0, #1 + strh r0, [r1, #0x20] + b _0810CD9A +_0810CCF6: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r4, r0, r3 + ldrh r0, [r4, #0x1c] + adds r0, #1 + strh r0, [r4, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + bne _0810CD9A + movs r0, #0 + strh r0, [r4, #0x1c] + ldrh r1, [r4, #0x1e] + subs r1, #1 + strh r1, [r4, #0x1e] + movs r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r2, #0x1e + ldrsh r1, [r4, r2] + cmp r1, #0 + bne _0810CD9A + ldrh r0, [r4, #0x20] + adds r0, #1 + strh r0, [r4, #0x20] + strh r1, [r4, #0x1e] + b _0810CD9A +_0810CD3A: + mov r0, sp + bl sub_080A63F8 + movs r0, #1 + bl sub_080A6530 + movs r0, #2 + bl sub_080A6530 + ldr r0, _0810CDA4 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x20] + adds r0, #1 + strh r0, [r1, #0x20] +_0810CD5C: + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810CD70 + movs r0, #1 + movs r1, #3 + movs r2, #0 + bl SetAnimBgAttribute +_0810CD70: + ldr r0, _0810CDA8 + movs r1, #0 + strh r1, [r0] + ldr r0, _0810CDAC + strh r1, [r0] + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #1 + movs r1, #4 + movs r2, #1 + bl SetAnimBgAttribute + adds r0, r4, #0 + bl DestroyAnimVisualTask +_0810CD9A: + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810CDA4: .4byte 0x03005B60 +_0810CDA8: .4byte 0x02022ACC +_0810CDAC: .4byte 0x02022ACE + thumb_func_end AnimTask_OverlayFogTiles + + thumb_func_start InitPoisonGasCloudAnim +InitPoisonGasCloudAnim: @ 0x0810CDB0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + ldr r6, _0810CE98 + ldrh r0, [r6] + strh r0, [r5, #0x2e] + ldr r0, _0810CE9C + mov r8, r0 + ldrb r0, [r0] + movs r1, #2 + bl GetBattlerSpriteCoord + adds r4, r0, #0 + ldr r7, _0810CEA0 + ldrb r0, [r7] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + bhs _0810CDE4 + movs r0, #0x80 + lsls r0, r0, #8 + strh r0, [r5, #0x3c] +_0810CDE4: + ldr r3, _0810CEA4 + ldrb r0, [r7] + adds r0, r0, r3 + ldrb r1, [r0] + movs r2, #1 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _0810CE44 + ldrh r0, [r6, #2] + rsbs r0, r0, #0 + strh r0, [r6, #2] + ldrh r0, [r6, #6] + rsbs r0, r0, #0 + strh r0, [r6, #6] + movs r1, #0x3c + ldrsh r0, [r5, r1] + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + beq _0810CE40 + mov r1, r8 + ldrb r0, [r1] + adds r0, r0, r3 + ldrb r1, [r0] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _0810CE40 + movs r0, #1 + bl GetAnimBattlerSpriteId + ldr r2, _0810CEA8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + adds r1, #0x43 + ldrb r0, [r1] + adds r0, #1 + adds r1, r5, #0 + adds r1, #0x43 + strb r0, [r1] +_0810CE40: + movs r0, #1 + strh r0, [r5, #0x3a] +_0810CE44: + ldr r4, _0810CE9C + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + ldr r6, _0810CE98 + movs r1, #0xe + ldrsh r0, [r6, r1] + cmp r0, #0 + beq _0810CEAC + ldrh r0, [r6, #2] + ldrh r1, [r5, #0x20] + adds r0, r0, r1 + strh r0, [r5, #0x30] + ldr r4, _0810CEA0 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r6, #6] + adds r0, r0, r1 + strh r0, [r5, #0x32] + ldrh r0, [r6, #4] + ldrh r1, [r5, #0x22] + adds r0, r0, r1 + strh r0, [r5, #0x34] + ldrb r0, [r4] + movs r1, #3 + b _0810CED4 + .align 2, 0 +_0810CE98: .4byte 0x020380BE +_0810CE9C: .4byte 0x020380D6 +_0810CEA0: .4byte 0x020380D7 +_0810CEA4: .4byte 0x02023D1A +_0810CEA8: .4byte 0x020205AC +_0810CEAC: + ldrh r0, [r6, #2] + ldrh r1, [r5, #0x20] + adds r0, r0, r1 + strh r0, [r5, #0x30] + ldr r4, _0810CF1C + ldrb r0, [r4] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r6, #6] + adds r0, r0, r1 + strh r0, [r5, #0x32] + ldrh r0, [r6, #4] + ldrh r1, [r5, #0x22] + adds r0, r0, r1 + strh r0, [r5, #0x34] + ldrb r0, [r4] + movs r1, #1 +_0810CED4: + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r6, [r6, #8] + adds r0, r0, r6 + strh r0, [r5, #0x36] + ldrb r0, [r4] + bl GetBattlerSpriteBGPriority + lsls r0, r0, #0x18 + lsrs r0, r0, #0x10 + ldrh r1, [r5, #0x3c] + orrs r0, r1 + strh r0, [r5, #0x3c] + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810CF08 + movs r0, #1 + strh r0, [r5, #0x3a] + adds r1, r5, #0 + adds r1, #0x43 + movs r0, #0x80 + strb r0, [r1] +_0810CF08: + adds r0, r5, #0 + bl InitAnimLinearTranslation + ldr r0, _0810CF20 + str r0, [r5, #0x1c] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0810CF1C: .4byte 0x020380D7 +_0810CF20: .4byte 0x0810CF25 + thumb_func_end InitPoisonGasCloudAnim + + thumb_func_start MovePoisonGasCloud +MovePoisonGasCloud: @ 0x0810CF24 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3c] + movs r5, #0xff + movs r1, #0xff + ands r1, r0 + cmp r1, #1 + beq _0810D00C + cmp r1, #1 + bgt _0810CF3E + cmp r1, #0 + beq _0810CF46 + b _0810D15C +_0810CF3E: + cmp r1, #2 + bne _0810CF44 + b _0810D120 +_0810CF44: + b _0810D15C +_0810CF46: + adds r0, r4, #0 + bl AnimTranslateLinear + ldr r1, _0810CF70 + movs r2, #0x38 + ldrsh r0, [r4, r2] + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + asrs r0, r0, #4 + ldrh r2, [r4, #0x24] + adds r0, r0, r2 + strh r0, [r4, #0x24] + movs r1, #0x3a + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0810CF74 + ldrh r0, [r4, #0x38] + subs r0, #8 + b _0810CF78 + .align 2, 0 +_0810CF70: .4byte 0x082FA8CC +_0810CF74: + ldrh r0, [r4, #0x38] + adds r0, #8 +_0810CF78: + ands r0, r5 + strh r0, [r4, #0x38] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r0, #0 + ble _0810CF86 + b _0810D15C +_0810CF86: + movs r5, #0x50 + strh r5, [r4, #0x2e] + ldr r6, _0810CFD4 + ldrb r0, [r6] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x20] + strh r0, [r4, #0x30] + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x26] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] + strh r0, [r4, #0x34] + adds r0, #0x1d + strh r0, [r4, #0x36] + ldrh r0, [r4, #0x3c] + adds r0, #1 + strh r0, [r4, #0x3c] + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810CFDC + ldr r1, _0810CFD8 + ldrb r0, [r6] + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0810CFDC + movs r0, #0xcc + strh r0, [r4, #0x38] + b _0810CFDE + .align 2, 0 +_0810CFD4: .4byte 0x020380D7 +_0810CFD8: .4byte 0x02023D1A +_0810CFDC: + strh r5, [r4, #0x38] +_0810CFDE: + movs r0, #0 + strh r0, [r4, #0x26] + ldr r1, _0810D008 + movs r2, #0x38 + ldrsh r0, [r4, r2] + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + asrs r0, r0, #3 + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x38] + adds r0, #2 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x38] + adds r0, r4, #0 + bl InitAnimLinearTranslation + b _0810D15C + .align 2, 0 +_0810D008: .4byte 0x082FA8CC +_0810D00C: + adds r0, r4, #0 + bl AnimTranslateLinear + ldr r1, _0810D068 + movs r2, #0x38 + ldrsh r0, [r4, r2] + lsls r0, r0, #1 + adds r0, r0, r1 + movs r2, #0 + ldrsh r0, [r0, r2] + asrs r0, r0, #3 + ldrh r2, [r4, #0x24] + adds r0, r0, r2 + strh r0, [r4, #0x24] + movs r2, #0x38 + ldrsh r0, [r4, r2] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r2, #0 + ldrsh r1, [r0, r2] + lsls r0, r1, #1 + adds r0, r0, r1 + rsbs r0, r0, #0 + asrs r0, r0, #8 + ldrh r1, [r4, #0x26] + adds r0, r0, r1 + strh r0, [r4, #0x26] + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810D08A + ldrh r1, [r4, #0x38] + adds r0, r1, #0 + subs r0, #0x40 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r3, r1, #0 + cmp r0, #0x7f + bhi _0810D06C + ldrh r1, [r4, #0x3c] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + b _0810D074 + .align 2, 0 +_0810D068: .4byte 0x082FA8CC +_0810D06C: + ldrh r1, [r4, #0x3c] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + adds r1, #1 +_0810D074: + movs r0, #3 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r4, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #5] + adds r0, r3, #4 + b _0810D0AA +_0810D08A: + ldrh r0, [r4, #0x38] + subs r0, #0x40 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x7f + bhi _0810D09E + adds r1, r4, #0 + adds r1, #0x43 + movs r0, #0x80 + b _0810D0A4 +_0810D09E: + adds r1, r4, #0 + adds r1, #0x43 + movs r0, #0x8c +_0810D0A4: + strb r0, [r1] + ldrh r0, [r4, #0x38] + subs r0, #4 +_0810D0AA: + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x38] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r0, #0 + bgt _0810D15C + movs r5, #0 + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x24] + ldrh r1, [r4, #0x20] + adds r0, r0, r1 + strh r0, [r4, #0x20] + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x26] + ldrh r2, [r4, #0x22] + adds r0, r0, r2 + strh r0, [r4, #0x22] + strh r0, [r4, #0x34] + adds r0, #4 + strh r0, [r4, #0x36] + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810D104 + ldr r1, _0810D0FC + ldr r0, _0810D100 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0810D104 + movs r0, #0x80 + lsls r0, r0, #1 + b _0810D106 + .align 2, 0 +_0810D0FC: .4byte 0x02023D1A +_0810D100: .4byte 0x020380D7 +_0810D104: + ldr r0, _0810D11C +_0810D106: + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x3c] + adds r0, #1 + movs r1, #0 + strh r0, [r4, #0x3c] + strh r1, [r4, #0x26] + strh r1, [r4, #0x24] + adds r0, r4, #0 + bl sub_080A689C + b _0810D15C + .align 2, 0 +_0810D11C: .4byte 0x0000FFF0 +_0810D120: + adds r0, r4, #0 + bl AnimTranslateLinear + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810D15C + ldrb r0, [r4, #1] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0810D14E + ldrb r0, [r4, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + ldrb r1, [r4, #1] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #1] +_0810D14E: + adds r0, r4, #0 + bl DestroySprite + ldr r1, _0810D164 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] +_0810D15C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0810D164: .4byte 0x0203809E + thumb_func_end MovePoisonGasCloud + + thumb_func_start AnimTask_Hail1 +AnimTask_Hail1: @ 0x0810D168 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _0810D17C + adds r1, r1, r0 + ldr r0, _0810D180 + str r0, [r1] + bx lr + .align 2, 0 +_0810D17C: .4byte 0x03005B60 +_0810D180: .4byte 0x0810D185 + thumb_func_end AnimTask_Hail1 + + thumb_func_start AnimTask_Hail2 +AnimTask_Hail2: @ 0x0810D184 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _0810D1A8 + adds r4, r0, r1 + movs r0, #8 + ldrsh r5, [r4, r0] + cmp r5, #1 + beq _0810D1C8 + cmp r5, #1 + bgt _0810D1AC + cmp r5, #0 + beq _0810D1B2 + b _0810D22C + .align 2, 0 +_0810D1A8: .4byte 0x03005B60 +_0810D1AC: + cmp r5, #2 + beq _0810D21E + b _0810D22C +_0810D1B2: + ldrh r0, [r4, #0x10] + adds r0, #1 + strh r0, [r4, #0x10] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + ble _0810D22C + strh r5, [r4, #0x10] + strh r5, [r4, #0x12] + strh r5, [r4, #0xc] + b _0810D204 +_0810D1C8: + ldrh r1, [r4, #0x12] + movs r3, #0x12 + ldrsh r0, [r4, r3] + cmp r0, #0 + bne _0810D218 + ldrb r0, [r4, #0xe] + ldrb r1, [r4, #0xc] + movs r3, #1 + bl GenerateHailParticle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810D1E8 + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] +_0810D1E8: + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + bne _0810D214 + ldrh r0, [r4, #0xe] + adds r0, #1 + strh r0, [r4, #0xe] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xa + bne _0810D20C +_0810D204: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _0810D22C +_0810D20C: + ldrh r0, [r4, #8] + subs r0, #1 + strh r0, [r4, #8] + b _0810D22C +_0810D214: + strh r5, [r4, #0x12] + b _0810D22C +_0810D218: + subs r0, r1, #1 + strh r0, [r4, #0x12] + b _0810D22C +_0810D21E: + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0810D22C + adds r0, r2, #0 + bl DestroyAnimVisualTask +_0810D22C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AnimTask_Hail2 + + thumb_func_start GenerateHailParticle +GenerateHailParticle: @ 0x0810D234 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sb, r1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov sl, r3 + movs r1, #0 + str r1, [sp, #4] + ldr r1, _0810D2AC + lsrs r0, r0, #0x16 + adds r4, r0, r1 + ldrb r0, [r4, #3] + lsls r0, r0, #0x18 + asrs r0, r0, #0x1c + mov r8, r0 + cmp r0, #2 + beq _0810D320 + ldrh r0, [r4, #2] + lsls r0, r0, #0x14 + lsrs r0, r0, #0x18 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r5, #0 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810D320 + movs r0, #1 + str r0, [sp, #4] + adds r0, r5, #0 + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + adds r0, r5, #0 + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + mov r1, r8 + cmp r1, #0 + beq _0810D2B0 + cmp r1, #1 + beq _0810D2E6 + b _0810D332 + .align 2, 0 +_0810D2AC: .4byte 0x08571898 +_0810D2B0: + adds r0, r5, #0 + movs r1, #1 + bl GetBattlerSpriteCoordAttr + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #6 + bl __divsi3 + lsls r1, r7, #0x10 + asrs r1, r1, #0x10 + subs r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + adds r0, r5, #0 + movs r1, #0 + bl GetBattlerSpriteCoordAttr + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #6 + bl __divsi3 + lsls r1, r6, #0x10 + asrs r1, r1, #0x10 + subs r1, r1, r0 + b _0810D31A +_0810D2E6: + adds r0, r5, #0 + movs r1, #1 + bl GetBattlerSpriteCoordAttr + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #6 + bl __divsi3 + lsls r1, r7, #0x10 + asrs r1, r1, #0x10 + adds r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + adds r0, r5, #0 + movs r1, #0 + bl GetBattlerSpriteCoordAttr + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #6 + bl __divsi3 + lsls r1, r6, #0x10 + asrs r1, r1, #0x10 + adds r1, r1, r0 +_0810D31A: + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + b _0810D332 +_0810D320: + ldrh r0, [r4] + lsls r0, r0, #0x16 + asrs r0, r0, #6 + lsrs r7, r0, #0x10 + ldr r0, [r4] + lsls r0, r0, #0xc + asrs r0, r0, #0x16 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 +_0810D332: + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + adds r0, #8 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + lsls r1, r7, #0x10 + asrs r1, r1, #0x10 + subs r1, r1, r0 + ldr r0, _0810D38C + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r2, #8 + rsbs r2, r2, #0 + movs r3, #0x12 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x40 + beq _0810D394 + lsls r4, r5, #4 + adds r4, r4, r5 + lsls r4, r4, #2 + ldr r0, _0810D390 + adds r4, r4, r0 + adds r0, r4, #0 + mov r1, sb + bl StartSpriteAffineAnim + mov r0, sp + ldrh r0, [r0, #4] + strh r0, [r4, #0x2e] + strh r7, [r4, #0x34] + strh r6, [r4, #0x36] + mov r1, sb + strh r1, [r4, #0x38] + mov r0, sp + ldrh r0, [r0] + strh r0, [r4, #0x3a] + mov r1, sl + strh r1, [r4, #0x3c] + movs r0, #1 + b _0810D396 + .align 2, 0 +_0810D38C: .4byte 0x08571910 +_0810D390: .4byte 0x020205AC +_0810D394: + movs r0, #0 +_0810D396: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GenerateHailParticle + + thumb_func_start AnimHailBegin +AnimHailBegin: @ 0x0810D3A8 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x20] + adds r0, #4 + strh r0, [r4, #0x20] + ldrh r1, [r4, #0x22] + adds r2, r1, #0 + adds r2, #8 + strh r2, [r4, #0x22] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r3, #0x34 + ldrsh r1, [r4, r3] + cmp r0, r1 + bge _0810D3D2 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x36 + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _0810D482 +_0810D3D2: + movs r3, #0x2e + ldrsh r0, [r4, r3] + cmp r0, #1 + bne _0810D454 + movs r1, #0x38 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0810D454 + ldr r0, _0810D448 + 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, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x2e] + cmp r0, #0x40 + beq _0810D436 + ldr r2, _0810D44C + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r2, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _0810D450 + str r1, [r0] + movs r3, #0x2e + ldrsh r1, [r4, r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r4, #0x3a] + strh r1, [r0, #0x3a] + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r4, #0x3c] + strh r1, [r0, #0x3c] +_0810D436: + ldrb r0, [r4, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + adds r0, r4, #0 + bl DestroySprite + b _0810D482 + .align 2, 0 +_0810D448: .4byte 0x0857174C +_0810D44C: .4byte 0x020205AC +_0810D450: .4byte 0x0810D48D +_0810D454: + ldr r3, _0810D488 + movs r2, #0x3c + ldrsh r1, [r4, r2] + lsls r1, r1, #1 + movs r0, #0x3a + ldrsh r2, [r4, r0] + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r3, #8 + adds r1, r1, r3 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + ldrb r0, [r4, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + adds r0, r4, #0 + bl DestroySprite +_0810D482: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810D488: .4byte 0x03005B60 + thumb_func_end AnimHailBegin + + thumb_func_start AnimHailContinue +AnimHailContinue: @ 0x0810D48C + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x14 + bne _0810D4CC + ldr r3, _0810D4D4 + movs r0, #0x3c + ldrsh r1, [r4, r0] + lsls r1, r1, #1 + movs r0, #0x3a + ldrsh r2, [r4, r0] + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r3, #8 + adds r1, r1, r3 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + ldrb r0, [r4, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + adds r0, r4, #0 + bl DestroySprite +_0810D4CC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810D4D4: .4byte 0x03005B60 + thumb_func_end AnimHailContinue + + thumb_func_start InitIceBallAnim +InitIceBallAnim: @ 0x0810D4D8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r0, _0810D558 + ldr r0, [r0] + ldrb r1, [r0, #0x11] + lsrs r0, r1, #4 + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + subs r0, r0, r1 + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #4 + bls _0810D4F6 + movs r1, #4 +_0810D4F6: + adds r0, r5, #0 + bl StartSpriteAffineAnim + adds r0, r5, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldr r6, _0810D55C + ldrh r0, [r6, #8] + strh r0, [r5, #0x2e] + ldr r0, _0810D560 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810D51E + ldrh r0, [r6, #4] + rsbs r0, r0, #0 + strh r0, [r6, #4] +_0810D51E: + ldr r4, _0810D564 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r6, #4] + adds r0, r0, r1 + strh r0, [r5, #0x32] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r6, #6] + adds r0, r0, r1 + strh r0, [r5, #0x36] + ldrh r0, [r6, #0xa] + strh r0, [r5, #0x38] + adds r0, r5, #0 + bl InitAnimArcTranslation + ldr r0, _0810D568 + str r0, [r5, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0810D558: .4byte 0x020380A0 +_0810D55C: .4byte 0x020380BE +_0810D560: .4byte 0x020380D6 +_0810D564: .4byte 0x020380D7 +_0810D568: .4byte 0x0810D56D + thumb_func_end InitIceBallAnim + + thumb_func_start AnimThrowIceBall +AnimThrowIceBall: @ 0x0810D56C + push {r4, lr} + adds r4, r0, #0 + bl TranslateAnimHorizontalArc + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810D58E + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAnim + ldr r0, _0810D594 + str r0, [r4, #0x1c] + ldr r1, _0810D598 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 +_0810D58E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810D594: .4byte 0x080A60A1 +_0810D598: .4byte 0x080A34C5 + thumb_func_end AnimThrowIceBall + + thumb_func_start InitIceBallParticle +InitIceBallParticle: @ 0x0810D59C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrh r2, [r4, #4] + lsls r1, r2, #0x16 + lsrs r1, r1, #0x16 + adds r1, #8 + ldr r3, _0810D5F0 + adds r0, r3, #0 + ands r1, r0 + ldr r0, _0810D5F4 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, #4] + adds r0, r4, #0 + movs r1, #1 + bl InitSpritePosToAnimTarget + bl Random2 + movs r5, #0xff + ands r5, r0 + movs r0, #0x80 + lsls r0, r0, #1 + adds r6, r0, #0 + orrs r5, r6 + bl Random2 + ldr r1, _0810D5F8 + ands r1, r0 + adds r0, r1, #0 + cmp r0, #0xff + ble _0810D5E2 + subs r0, r6, r0 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 +_0810D5E2: + strh r5, [r4, #0x30] + strh r1, [r4, #0x32] + ldr r0, _0810D5FC + str r0, [r4, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0810D5F0: .4byte 0x000003FF +_0810D5F4: .4byte 0xFFFFFC00 +_0810D5F8: .4byte 0x000001FF +_0810D5FC: .4byte 0x0810D601 + thumb_func_end InitIceBallParticle + + thumb_func_start AnimIceBallParticle +AnimIceBallParticle: @ 0x0810D600 + 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, r1, r4 + strh r1, [r2, #0x36] + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0810D624 + lsls r0, r3, #0x10 + asrs r0, r0, #0x18 + rsbs r0, r0, #0 + b _0810D628 +_0810D624: + lsls r0, r3, #0x10 + asrs r0, r0, #0x18 +_0810D628: + strh r0, [r2, #0x24] + ldrh r0, [r2, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + strh r0, [r2, #0x26] + ldrh r0, [r2, #0x2e] + adds r0, #1 + strh r0, [r2, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x15 + bne _0810D646 + adds r0, r2, #0 + bl DestroyAnimSprite +_0810D646: + pop {r4} + pop {r0} + bx r0 + thumb_func_end AnimIceBallParticle + + thumb_func_start AnimTask_GetRolloutCounter +AnimTask_GetRolloutCounter: @ 0x0810D64C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0810D674 + ldrb r3, [r1] + lsls r3, r3, #1 + adds r3, r3, r1 + ldr r1, _0810D678 + ldr r1, [r1] + ldrb r1, [r1, #0x11] + lsrs r2, r1, #4 + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + subs r2, r2, r1 + subs r2, #1 + strh r2, [r3] + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_0810D674: .4byte 0x020380BE +_0810D678: .4byte 0x020380A0 + thumb_func_end AnimTask_GetRolloutCounter + diff --git a/asm/intro.s b/asm/intro.s new file mode 100644 index 0000000..35579f6 --- /dev/null +++ b/asm/intro.s @@ -0,0 +1,6619 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start VBlankCB_Intro +VBlankCB_Intro: @ 0x0816C9F8 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + bl ScanlineEffect_InitHBlankDmaTransfer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end VBlankCB_Intro + + thumb_func_start MainCB2_Intro +MainCB2_Intro: @ 0x0816CA10 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + ldr r0, _0816CA40 + ldrh r0, [r0, #0x2e] + cmp r0, #0 + beq _0816CA4C + ldr r0, _0816CA44 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0816CA4C + ldr r0, _0816CA48 + bl SetMainCallback2 + b _0816CA5C + .align 2, 0 +_0816CA40: .4byte 0x03002360 +_0816CA44: .4byte 0x02037C74 +_0816CA48: .4byte 0x0816CA65 +_0816CA4C: + ldr r2, _0816CA60 + ldr r1, [r2] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0816CA5C + adds r0, r1, #1 + str r0, [r2] +_0816CA5C: + pop {r0} + bx r0 + .align 2, 0 +_0816CA60: .4byte 0x03005FE0 + thumb_func_end MainCB2_Intro + + thumb_func_start MainCB2_EndIntro +MainCB2_EndIntro: @ 0x0816CA64 + push {lr} + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0816CA76 + ldr r0, _0816CA7C + bl SetMainCallback2 +_0816CA76: + pop {r0} + bx r0 + .align 2, 0 +_0816CA7C: .4byte 0x080AA06D + thumb_func_end MainCB2_EndIntro + + thumb_func_start LoadCopyrightGraphics +LoadCopyrightGraphics: @ 0x0816CA80 + push {r4, r5, r6, lr} + adds r3, r0, #0 + adds r4, r1, #0 + adds r5, r2, #0 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + ldr r0, _0816CABC + movs r6, #0xc0 + lsls r6, r6, #0x13 + adds r3, r3, r6 + adds r1, r3, #0 + bl LZ77UnCompVram + ldr r0, _0816CAC0 + adds r4, r4, r6 + adds r1, r4, #0 + bl LZ77UnCompVram + ldr r0, _0816CAC4 + adds r1, r5, #0 + movs r2, #0x20 + bl LoadPalette + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0816CABC: .4byte 0x085C0C94 +_0816CAC0: .4byte 0x085C0EF8 +_0816CAC4: .4byte 0x085C0C74 + thumb_func_end LoadCopyrightGraphics + + thumb_func_start SerialCB_CopyrightScreen +SerialCB_CopyrightScreen: @ 0x0816CAC8 + push {lr} + ldr r0, _0816CAD4 + bl GameCubeMultiBoot_HandleSerialInterrupt + pop {r0} + bx r0 + .align 2, 0 +_0816CAD4: .4byte 0x03005FF0 + thumb_func_end SerialCB_CopyrightScreen + + thumb_func_start SetUpCopyrightScreen +SetUpCopyrightScreen: @ 0x0816CAD8 + push {r4, r5, lr} + sub sp, #0x10 + ldr r0, _0816CAF8 + movs r1, #0x87 + lsls r1, r1, #3 + adds r5, r0, r1 + ldrb r4, [r5] + cmp r4, #0x8c + bne _0816CAEC + b _0816CC10 +_0816CAEC: + cmp r4, #0x8c + bgt _0816CAFC + cmp r4, #0 + beq _0816CB04 + b _0816CBCC + .align 2, 0 +_0816CAF8: .4byte 0x03002360 +_0816CAFC: + cmp r4, #0x8d + bne _0816CB02 + b _0816CC3C +_0816CB02: + b _0816CBCC +_0816CB04: + movs r0, #0 + bl SetVBlankCallback + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + movs r1, #0xa0 + lsls r1, r1, #0x13 + ldr r2, _0816CBE8 + adds r0, r2, #0 + strh r0, [r1] + movs r0, #0 + movs r1, #0 + bl SetGpuReg + movs r0, #0x10 + movs r1, #0 + bl SetGpuReg + movs r0, #0x12 + movs r1, #0 + bl SetGpuReg + str r4, [sp, #4] + movs r1, #0xc0 + lsls r1, r1, #0x13 + ldr r2, _0816CBEC + add r0, sp, #4 + bl CpuSet + str r4, [sp, #8] + add r0, sp, #8 + movs r1, #0xe0 + lsls r1, r1, #0x13 + ldr r2, _0816CBF0 + bl CpuSet + add r0, sp, #0xc + strh r4, [r0] + ldr r1, _0816CBF4 + ldr r2, _0816CBF8 + bl CpuSet + bl ResetPaletteFade + movs r1, #0xe0 + lsls r1, r1, #6 + movs r0, #0 + movs r2, #0 + bl LoadCopyrightGraphics + bl ScanlineEffect_Stop + bl ResetTasks + bl ResetSpriteData + bl FreeAllSpritePalettes + movs r0, #1 + rsbs r0, r0, #0 + ldr r1, _0816CBFC + str r1, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + movs r1, #0xe0 + lsls r1, r1, #3 + movs r0, #8 + bl SetGpuReg + movs r0, #1 + bl EnableInterrupts + ldr r0, _0816CC00 + bl SetVBlankCallback + movs r1, #0x80 + lsls r1, r1, #0x13 + movs r2, #0xa0 + lsls r2, r2, #1 + adds r0, r2, #0 + strh r0, [r1] + ldr r0, _0816CC04 + bl SetSerialCallback + ldr r0, _0816CC08 + bl GameCubeMultiBoot_Init +_0816CBCC: + bl UpdatePaletteFade + ldr r0, _0816CC0C + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + ldr r0, _0816CC08 + bl sGameCubeMultiBoot_Main + b _0816CC84 + .align 2, 0 +_0816CBE8: .4byte 0x00007FFF +_0816CBEC: .4byte 0x05006000 +_0816CBF0: .4byte 0x05000100 +_0816CBF4: .4byte 0x05000002 +_0816CBF8: .4byte 0x010001FF +_0816CBFC: .4byte 0x0000FFFF +_0816CC00: .4byte 0x0816C9F9 +_0816CC04: .4byte 0x0816CAC9 +_0816CC08: .4byte 0x03005FF0 +_0816CC0C: .4byte 0x03002360 +_0816CC10: + ldr r4, _0816CC38 + adds r0, r4, #0 + bl sGameCubeMultiBoot_Main + ldrb r0, [r4, #2] + cmp r0, #1 + beq _0816CC84 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + b _0816CC84 + .align 2, 0 +_0816CC38: .4byte 0x03005FF0 +_0816CC3C: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0816CC84 + ldr r0, _0816CC64 + movs r1, #0 + bl CreateTask + ldr r0, _0816CC68 + bl SetMainCallback2 + ldr r1, _0816CC6C + ldrb r0, [r1, #2] + cmp r0, #0 + beq _0816CC70 + adds r0, r1, #0 + bl GameCubeMultiBoot_ExecuteProgram + b _0816CC7A + .align 2, 0 +_0816CC64: .4byte 0x0816CCFD +_0816CC68: .4byte 0x0816CA11 +_0816CC6C: .4byte 0x03005FF0 +_0816CC70: + bl GameCubeMultiBoot_Quit + ldr r0, _0816CC80 + bl SetSerialCallback +_0816CC7A: + movs r0, #0 + b _0816CC86 + .align 2, 0 +_0816CC80: .4byte 0x0800B4F5 +_0816CC84: + movs r0, #1 +_0816CC86: + add sp, #0x10 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SetUpCopyrightScreen + + thumb_func_start CB2_InitCopyrightScreenAfterBootup +CB2_InitCopyrightScreenAfterBootup: @ 0x0816CC90 + push {lr} + bl SetUpCopyrightScreen + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0816CCDE + bl sub_08153498 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl SetSaveBlocksPointers + bl ResetMenuAndMonGlobals + bl Save_ResetSaveCounters + movs r0, #0 + bl Save_LoadGameData + ldr r0, _0816CCE4 + ldrh r0, [r0] + cmp r0, #0 + beq _0816CCC2 + cmp r0, #2 + bne _0816CCC6 +_0816CCC2: + bl Sav2_ClearSetDefault +_0816CCC6: + ldr r0, _0816CCE8 + ldr r0, [r0] + ldrb r0, [r0, #0x15] + lsls r0, r0, #0x1f + lsrs r0, r0, #0x1f + bl SetPokemonCryStereo + ldr r0, _0816CCEC + movs r1, #0xe0 + lsls r1, r1, #9 + bl InitHeap +_0816CCDE: + pop {r0} + bx r0 + .align 2, 0 +_0816CCE4: .4byte 0x03005F50 +_0816CCE8: .4byte 0x03005AF0 +_0816CCEC: .4byte 0x02000000 + thumb_func_end CB2_InitCopyrightScreenAfterBootup + + thumb_func_start CB2_InitCopyrightScreenAfterTitleScreen +CB2_InitCopyrightScreenAfterTitleScreen: @ 0x0816CCF0 + push {lr} + bl SetUpCopyrightScreen + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CB2_InitCopyrightScreenAfterTitleScreen + + thumb_func_start Task_IntroLoadPart1Graphics +Task_IntroLoadPart1Graphics: @ 0x0816CCFC + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0xc + mov r8, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r0, #0 + bl SetVBlankCallback + ldr r4, _0816CEA0 + bl Random + movs r1, #1 + ands r1, r0 + strh r1, [r4] + bl intro_reset_and_hide_bgs + movs r0, #0x1e + movs r1, #0 + bl SetGpuReg + movs r0, #0x1a + movs r1, #0x50 + bl SetGpuReg + movs r0, #0x16 + movs r1, #0x18 + bl SetGpuReg + movs r0, #0x12 + movs r1, #0x28 + bl SetGpuReg + ldr r0, _0816CEA4 + movs r1, #0xc0 + lsls r1, r1, #0x13 + bl LZ77UnCompVram + ldr r0, _0816CEA8 + ldr r1, _0816CEAC + bl LZ77UnCompVram + ldr r1, _0816CEB0 + add r0, sp, #8 + movs r6, #0 + strh r6, [r0] + ldr r4, _0816CEB4 + str r0, [r4] + str r1, [r4, #4] + ldr r5, _0816CEB8 + str r5, [r4, #8] + ldr r0, [r4, #8] + ldr r0, _0816CEBC + ldr r1, _0816CEC0 + bl LZ77UnCompVram + ldr r1, _0816CEC4 + add r0, sp, #8 + strh r6, [r0] + str r0, [r4] + str r1, [r4, #4] + str r5, [r4, #8] + ldr r0, [r4, #8] + ldr r0, _0816CEC8 + ldr r1, _0816CECC + bl LZ77UnCompVram + ldr r1, _0816CED0 + add r0, sp, #8 + strh r6, [r0] + str r0, [r4] + str r1, [r4, #4] + str r5, [r4, #8] + ldr r0, [r4, #8] + ldr r0, _0816CED4 + ldr r1, _0816CED8 + bl LZ77UnCompVram + ldr r1, _0816CEDC + add r0, sp, #8 + strh r6, [r0] + str r0, [r4] + str r1, [r4, #4] + str r5, [r4, #8] + ldr r0, [r4, #8] + ldr r0, _0816CEE0 + movs r5, #0x80 + lsls r5, r5, #2 + movs r1, #0 + adds r2, r5, #0 + bl LoadPalette + ldr r1, _0816CEE4 + movs r0, #0xe + bl SetGpuReg + ldr r1, _0816CEE8 + movs r0, #0xc + bl SetGpuReg + ldr r1, _0816CEEC + movs r0, #0xa + bl SetGpuReg + movs r1, #0x90 + lsls r1, r1, #8 + movs r0, #8 + bl SetGpuReg + ldr r0, _0816CEF0 + bl LoadCompressedSpriteSheet + ldr r0, _0816CEF4 + bl LoadCompressedSpriteSheet + ldr r0, _0816CEF8 + bl LoadSpritePalettes + ldr r0, _0816CEFC + bl LoadCompressedSpriteSheet + ldr r0, _0816CF00 + bl LoadSpritePalettes + ldr r4, _0816CF04 + movs r3, #0xf0 + lsls r3, r3, #1 + adds r1, r4, r3 + adds r0, r4, #0 + movs r2, #0x10 + bl CpuSet + movs r0, #0xe1 + lsls r0, r0, #1 + adds r1, r4, r0 + adds r0, r4, #0 + movs r2, #0xf + bl CpuSet + movs r3, #0xd2 + lsls r3, r3, #1 + adds r1, r4, r3 + adds r0, r4, #0 + movs r2, #0xe + bl CpuSet + movs r0, #0xc3 + lsls r0, r0, #1 + adds r1, r4, r0 + adds r0, r4, #0 + movs r2, #0xd + bl CpuSet + movs r3, #0xb4 + lsls r3, r3, #1 + adds r1, r4, r3 + adds r0, r4, #0 + movs r2, #0xc + bl CpuSet + movs r0, #0xa5 + lsls r0, r0, #1 + adds r1, r4, r0 + adds r0, r4, #0 + movs r2, #0xb + bl CpuSet + movs r3, #0x96 + lsls r3, r3, #1 + adds r1, r4, r3 + adds r0, r4, #0 + movs r2, #0xa + bl CpuSet + movs r0, #0x78 + movs r1, #0x50 + movs r2, #0 + bl CreatePart1Animations + movs r1, #0xe + rsbs r1, r1, #0 + movs r0, #0x78 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + movs r0, #0xec + adds r2, r5, #0 + movs r3, #1 + bl CreateWaterDrop + ldr r2, _0816CF08 + mov r3, r8 + lsls r1, r3, #2 + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r1, #8] + ldr r0, _0816CF0C + str r0, [r1] + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0816CEA0: .4byte 0x0203B994 +_0816CEA4: .4byte 0x085C2468 +_0816CEA8: .4byte 0x085C1878 +_0816CEAC: .4byte 0x06008000 +_0816CEB0: .4byte 0x06008800 +_0816CEB4: .4byte 0x040000D4 +_0816CEB8: .4byte 0x81000400 +_0816CEBC: .4byte 0x085C1C2C +_0816CEC0: .4byte 0x06009000 +_0816CEC4: .4byte 0x06009800 +_0816CEC8: .4byte 0x085C1F60 +_0816CECC: .4byte 0x0600A000 +_0816CED0: .4byte 0x0600A800 +_0816CED4: .4byte 0x085C2250 +_0816CED8: .4byte 0x0600B000 +_0816CEDC: .4byte 0x0600B800 +_0816CEE0: .4byte 0x085C1678 +_0816CEE4: .4byte 0x00009603 +_0816CEE8: .4byte 0x00009402 +_0816CEEC: .4byte 0x00009201 +_0816CEF0: .4byte 0x085C6090 +_0816CEF4: .4byte 0x085C60A0 +_0816CEF8: .4byte 0x085C60B0 +_0816CEFC: .4byte 0x085C5B28 +_0816CF00: .4byte 0x085C5B38 +_0816CF04: .4byte 0x020375B4 +_0816CF08: .4byte 0x03005B60 +_0816CF0C: .4byte 0x0816CF11 + thumb_func_end Task_IntroLoadPart1Graphics + + thumb_func_start Task_IntroFadeIn +Task_IntroFadeIn: @ 0x0816CF10 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + rsbs r0, r0, #0 + movs r5, #0 + str r5, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r0, _0816CF64 + bl SetVBlankCallback + movs r1, #0xfa + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + ldr r1, _0816CF68 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0816CF6C + str r1, [r0] + ldr r0, _0816CF70 + str r5, [r0] + movs r0, #0xcf + lsls r0, r0, #1 + bl m4aSongNumStart + bl ResetSerial + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0816CF64: .4byte 0x0816C9F9 +_0816CF68: .4byte 0x03005B60 +_0816CF6C: .4byte 0x0816CF75 +_0816CF70: .4byte 0x03005FE0 + thumb_func_end Task_IntroFadeIn + + thumb_func_start Task_IntroWaterDrops +Task_IntroWaterDrops: @ 0x0816CF74 + push {r4, r5, r6, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r6, r4, #0 + ldr r5, _0816D068 + ldr r0, [r5] + cmp r0, #0x4c + bne _0816CFA2 + ldr r2, _0816D06C + ldr r1, _0816D070 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r3, #8 + ldrsh r1, [r0, r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #1 + strh r1, [r0, #0x2e] +_0816CFA2: + ldr r0, [r5] + cmp r0, #0x80 + bne _0816CFB0 + ldr r0, _0816D074 + movs r1, #0 + bl CreateTask +_0816CFB0: + ldr r0, [r5] + cmp r0, #0xfb + bne _0816CFD2 + ldr r2, _0816D06C + ldr r1, _0816D070 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r3, #8 + ldrsh r1, [r0, r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #2 + strh r1, [r0, #0x2e] +_0816CFD2: + ldr r1, [r5] + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + bne _0816CFE4 + ldr r0, _0816D078 + movs r1, #0 + bl CreateTask +_0816CFE4: + ldr r1, [r5] + movs r0, #0xb8 + lsls r0, r0, #1 + cmp r1, r0 + bne _0816D004 + movs r2, #0x80 + lsls r2, r2, #3 + movs r0, #0x70 + str r0, [sp] + movs r0, #1 + str r0, [sp, #4] + movs r0, #0x30 + movs r1, #0 + movs r3, #5 + bl CreateWaterDrop +_0816D004: + ldr r1, [r5] + movs r0, #0xc0 + lsls r0, r0, #1 + cmp r1, r0 + bne _0816D024 + movs r2, #0x80 + lsls r2, r2, #3 + movs r0, #0x80 + str r0, [sp] + movs r0, #1 + str r0, [sp, #4] + movs r0, #0xc8 + movs r1, #0x3c + movs r3, #9 + bl CreateWaterDrop +_0816D024: + ldr r0, [r5] + movs r4, #0x8c + lsls r4, r4, #2 + cmp r0, r4 + bne _0816D036 + ldr r0, _0816D07C + movs r1, #0 + bl CreateTask +_0816D036: + ldr r0, [r5] + cmp r0, r4 + bls _0816D05E + ldr r1, _0816D070 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #0 + movs r1, #0x50 + strh r1, [r0, #0xa] + strh r2, [r0, #0xc] + movs r1, #0x18 + strh r1, [r0, #0xe] + strh r2, [r0, #0x10] + movs r1, #0x28 + strh r1, [r0, #0x12] + strh r2, [r0, #0x14] + ldr r1, _0816D080 + str r1, [r0] +_0816D05E: + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0816D068: .4byte 0x03005FE0 +_0816D06C: .4byte 0x020205AC +_0816D070: .4byte 0x03005B60 +_0816D074: .4byte 0x0816EF0D +_0816D078: .4byte 0x0816EFC5 +_0816D07C: .4byte 0x0816D085 +_0816D080: .4byte 0x0816D139 + thumb_func_end Task_IntroWaterDrops + + thumb_func_start Task_IntroWaterDrops_3 +Task_IntroWaterDrops_3: @ 0x0816D084 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _0816D0B8 + adds r4, r0, r1 + ldrh r0, [r4, #4] + adds r0, #1 + strh r0, [r4, #4] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0816D0A8 + ldrh r0, [r4, #6] + adds r0, #1 + strh r0, [r4, #6] +_0816D0A8: + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0816D0BC + cmp r0, #1 + beq _0816D0F8 + b _0816D108 + .align 2, 0 +_0816D0B8: .4byte 0x03005B68 +_0816D0BC: + ldr r0, _0816D0F0 + ldr r2, _0816D0F4 + movs r1, #8 + ldrsh r3, [r4, r1] + lsls r3, r3, #1 + adds r1, r3, r2 + ldrb r1, [r1] + adds r2, #1 + adds r3, r3, r2 + ldrh r2, [r4, #6] + ldrb r3, [r3] + adds r2, r2, r3 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + movs r3, #0 + bl CreateSprite + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + movs r0, #0xc + strh r0, [r4, #2] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _0816D108 + .align 2, 0 +_0816D0F0: .4byte 0x085C5B6C +_0816D0F4: .4byte 0x085C5B84 +_0816D0F8: + ldrh r0, [r4, #2] + subs r0, #1 + strh r0, [r4, #2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bne _0816D108 + strh r0, [r4] +_0816D108: + movs r1, #6 + ldrsh r0, [r4, r1] + cmp r0, #0x3c + ble _0816D116 + adds r0, r5, #0 + bl DestroyTask +_0816D116: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end Task_IntroWaterDrops_3 + + thumb_func_start sub_0816D11C +sub_0816D11C: @ 0x0816D11C + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0x2e] + adds r0, #1 + strh r0, [r1, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xc + bne _0816D134 + adds r0, r1, #0 + bl DestroySprite +_0816D134: + pop {r0} + bx r0 + thumb_func_end sub_0816D11C + + thumb_func_start Task_IntroScrollDownAndShowFlygon +Task_IntroScrollDownAndShowFlygon: @ 0x0816D138 + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r4, r1, #0 + ldr r5, _0816D1DC + ldr r2, [r5] + ldr r0, _0816D1E0 + cmp r2, r0 + bhi _0816D1FC + ldr r0, _0816D1E4 + lsls r4, r1, #2 + adds r4, r4, r1 + lsls r4, r4, #3 + adds r4, r4, r0 + movs r1, #0xa + ldrsh r0, [r4, r1] + lsls r0, r0, #0x10 + ldrh r1, [r4, #0xc] + adds r1, r0, r1 + ldr r0, _0816D1E8 + adds r1, r1, r0 + asrs r0, r1, #0x10 + strh r0, [r4, #0xa] + strh r1, [r4, #0xc] + ldrh r1, [r4, #0xa] + movs r0, #0x1a + bl SetGpuReg + movs r1, #0xe + ldrsh r0, [r4, r1] + lsls r0, r0, #0x10 + ldrh r1, [r4, #0x10] + adds r1, r0, r1 + ldr r0, _0816D1EC + adds r1, r1, r0 + asrs r0, r1, #0x10 + strh r0, [r4, #0xe] + strh r1, [r4, #0x10] + ldrh r1, [r4, #0xe] + movs r0, #0x16 + bl SetGpuReg + movs r1, #0x12 + ldrsh r0, [r4, r1] + lsls r0, r0, #0x10 + ldrh r1, [r4, #0x14] + adds r1, r0, r1 + ldr r0, _0816D1F0 + adds r1, r1, r0 + asrs r0, r1, #0x10 + strh r0, [r4, #0x12] + strh r1, [r4, #0x14] + ldrh r1, [r4, #0x12] + movs r0, #0x12 + bl SetGpuReg + ldr r1, [r5] + movs r0, #0xd0 + lsls r0, r0, #2 + cmp r1, r0 + bne _0816D222 + ldr r0, _0816D1F4 + movs r1, #0x78 + movs r2, #0xa0 + movs r3, #0xa + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0816D1F8 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + b _0816D222 + .align 2, 0 +_0816D1DC: .4byte 0x03005FE0 +_0816D1E0: .4byte 0x00000387 +_0816D1E4: .4byte 0x03005B60 +_0816D1E8: .4byte 0xFFFFA000 +_0816D1EC: .4byte 0xFFFF8000 +_0816D1F0: .4byte 0xFFFF4000 +_0816D1F4: .4byte 0x085C6078 +_0816D1F8: .4byte 0x020205AC +_0816D1FC: + ldr r0, _0816D22C + cmp r2, r0 + bls _0816D222 + movs r0, #1 + rsbs r0, r0, #0 + ldr r1, _0816D230 + str r1, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _0816D234 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0816D238 + str r1, [r0] +_0816D222: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0816D22C: .4byte 0x000003EF +_0816D230: .4byte 0x0000FFFF +_0816D234: .4byte 0x03005B60 +_0816D238: .4byte 0x0816D23D + thumb_func_end Task_IntroScrollDownAndShowFlygon + + thumb_func_start Task_IntroWaitToSetupPart3 +Task_IntroWaitToSetupPart3: @ 0x0816D23C + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _0816D260 + ldr r1, [r0] + ldr r0, _0816D264 + cmp r1, r0 + bls _0816D25A + ldr r0, _0816D268 + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _0816D26C + str r0, [r1] +_0816D25A: + pop {r0} + bx r0 + .align 2, 0 +_0816D260: .4byte 0x03005FE0 +_0816D264: .4byte 0x00000402 +_0816D268: .4byte 0x03005B60 +_0816D26C: .4byte 0x0816D271 + thumb_func_end Task_IntroWaitToSetupPart3 + + thumb_func_start Task_IntroLoadPart2Graphics +Task_IntroLoadPart2Graphics: @ 0x0816D270 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl intro_reset_and_hide_bgs + movs r0, #0 + bl SetVBlankCallback + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r0, _0816D2B4 + movs r1, #0 + strh r1, [r0] + ldr r0, _0816D2B8 + strh r1, [r0] + ldr r0, _0816D2BC + strh r1, [r0] + movs r0, #1 + bl load_intro_part2_graphics + ldr r1, _0816D2C0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0816D2C4 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816D2B4: .4byte 0x0203B9F0 +_0816D2B8: .4byte 0x0203B9F2 +_0816D2BC: .4byte 0x0203B998 +_0816D2C0: .4byte 0x03005B60 +_0816D2C4: .4byte 0x0816D2C9 + thumb_func_end Task_IntroLoadPart2Graphics + + thumb_func_start Task_IntroStartBikeRide +Task_IntroStartBikeRide: @ 0x0816D2C8 + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0816D2E0 + ldrh r0, [r0] + cmp r0, #0 + bne _0816D2E8 + ldr r0, _0816D2E4 + bl LoadCompressedSpriteSheet + b _0816D2EE + .align 2, 0 +_0816D2E0: .4byte 0x0203B994 +_0816D2E4: .4byte 0x085D278C +_0816D2E8: + ldr r0, _0816D350 + bl LoadCompressedSpriteSheet +_0816D2EE: + ldr r0, _0816D354 + bl LoadCompressedSpriteSheet + ldr r0, _0816D358 + bl LoadCompressedSpriteSheet + movs r6, #0 + lsls r7, r4, #2 + ldr r5, _0816D35C +_0816D300: + lsls r0, r6, #3 + adds r0, r0, r5 + bl LoadCompressedSpriteSheet + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #2 + bls _0816D300 + ldr r0, _0816D360 + bl LoadSpritePalettes + ldr r0, _0816D364 + bl LoadSpritePalettes + ldr r0, _0816D368 + movs r5, #0x88 + lsls r5, r5, #1 + adds r1, r5, #0 + movs r2, #0x80 + movs r3, #0 + bl CreateSprite + ldr r0, _0816D36C + movs r1, #0x90 + lsls r1, r1, #1 + movs r2, #0x6e + movs r3, #1 + bl CreateSprite + ldr r0, _0816D370 + ldrh r0, [r0] + cmp r0, #0 + bne _0816D374 + adds r0, r5, #0 + movs r1, #0x64 + bl intro_create_brendan_sprite + b _0816D37C + .align 2, 0 +_0816D350: .4byte 0x085D279C +_0816D354: .4byte 0x085D27AC +_0816D358: .4byte 0x085D27CC +_0816D35C: .4byte 0x085C5B9C +_0816D360: .4byte 0x085D27DC +_0816D364: .4byte 0x085C5BBC +_0816D368: .4byte 0x085C5C90 +_0816D36C: .4byte 0x085C5C58 +_0816D370: .4byte 0x0203B994 +_0816D374: + adds r0, r5, #0 + movs r1, #0x64 + bl intro_create_may_sprite +_0816D37C: + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r2, _0816D410 + lsls r0, r6, #4 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r5, r2, #0 + adds r5, #0x1c + adds r3, r0, r5 + ldr r1, _0816D414 + str r1, [r3] + adds r2, #8 + adds r0, r0, r2 + ldr r1, _0816D418 + str r1, [r0] + ldr r0, _0816D41C + adds r4, r7, r4 + lsls r4, r4, #3 + adds r4, r4, r0 + strh r6, [r4, #0xa] + ldr r0, _0816D420 + movs r1, #0x88 + lsls r1, r1, #1 + movs r2, #0x50 + movs r3, #4 + bl CreateSprite + movs r0, #0x40 + rsbs r0, r0, #0 + movs r1, #0x3c + bl sub_0817B884 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #4 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _0816D424 + str r1, [r0] + strh r6, [r4, #0xc] + movs r0, #1 + rsbs r0, r0, #0 + ldr r1, _0816D428 + str r1, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r0, _0816D42C + bl SetVBlankCallback + movs r1, #0x80 + lsls r1, r1, #7 + movs r2, #0x80 + lsls r2, r2, #3 + movs r0, #1 + movs r3, #0x10 + bl CreateBicycleAnimationTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #8] + movs r0, #1 + bl sub_0817B010 + ldr r0, _0816D430 + str r0, [r4] + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0816D410: .4byte 0x020205AC +_0816D414: .4byte 0x0816F7B9 +_0816D418: .4byte 0x085C5E78 +_0816D41C: .4byte 0x03005B60 +_0816D420: .4byte 0x085C5BF4 +_0816D424: .4byte 0x0816F895 +_0816D428: .4byte 0x0000FFFF +_0816D42C: .4byte 0x0816C9F9 +_0816D430: .4byte 0x0816D435 + thumb_func_end Task_IntroStartBikeRide + + thumb_func_start Task_IntroHandleBikeAndFlygonMovement +Task_IntroHandleBikeAndFlygonMovement: @ 0x0816D434 + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r6, r4, #0 + ldr r5, _0816D594 + ldr r1, [r5] + movs r0, #0xe8 + lsls r0, r0, #3 + cmp r1, r0 + bne _0816D460 + ldr r1, _0816D598 + movs r0, #2 + strh r0, [r1] + ldr r1, _0816D59C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r0, [r0, #8] + bl DestroyTask +_0816D460: + ldr r1, [r5] + ldr r0, _0816D5A0 + cmp r1, r0 + bls _0816D488 + movs r0, #1 + rsbs r0, r0, #0 + ldr r1, _0816D5A4 + str r1, [sp] + movs r1, #8 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _0816D59C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0816D5A8 + str r1, [r0] +_0816D488: + ldr r1, [r5] + ldr r0, _0816D5AC + ldr r3, _0816D59C + cmp r1, r0 + bne _0816D4AC + ldr r2, _0816D5B0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r3 + movs r7, #0xa + ldrsh r1, [r0, r7] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #1 + strh r1, [r0, #0x2e] +_0816D4AC: + ldr r1, [r5] + ldr r0, _0816D5B4 + cmp r1, r0 + bne _0816D4CE + ldr r2, _0816D5B0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r3 + movs r7, #0xa + ldrsh r1, [r0, r7] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0 + strh r1, [r0, #0x2e] +_0816D4CE: + ldr r1, [r5] + ldr r0, _0816D5B8 + cmp r1, r0 + bne _0816D4F0 + ldr r2, _0816D5B0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r3 + movs r7, #0xc + ldrsh r1, [r0, r7] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #1 + strh r1, [r0, #0x2e] +_0816D4F0: + ldr r1, [r5] + ldr r0, _0816D5BC + cmp r1, r0 + bne _0816D512 + ldr r2, _0816D5B0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r3 + movs r7, #0xa + ldrsh r1, [r0, r7] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #2 + strh r1, [r0, #0x2e] +_0816D512: + ldr r1, [r5] + movs r0, #0xc5 + lsls r0, r0, #3 + cmp r1, r0 + bne _0816D536 + ldr r2, _0816D5B0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r3 + movs r7, #0xa + ldrsh r1, [r0, r7] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #3 + strh r1, [r0, #0x2e] +_0816D536: + ldr r1, [r5] + ldr r0, _0816D5C0 + cmp r1, r0 + bne _0816D558 + ldr r2, _0816D5B0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r3 + movs r4, #0xa + ldrsh r1, [r0, r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #4 + strh r1, [r0, #0x2e] +_0816D558: + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r4, r0, r3 + ldrh r0, [r4, #0xe] + lsls r0, r0, #0x10 + asrs r0, r0, #0x12 + movs r1, #0x7f + ands r0, r1 + movs r1, #0x30 + bl Sin + ldr r1, _0816D5C4 + strh r0, [r1] + ldrh r2, [r4, #0xe] + movs r7, #0xe + ldrsh r1, [r4, r7] + ldr r0, _0816D5C8 + cmp r1, r0 + bgt _0816D584 + adds r0, r2, #1 + strh r0, [r4, #0xe] +_0816D584: + movs r0, #0 + bl sub_0817B400 + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0816D594: .4byte 0x03005FE0 +_0816D598: .4byte 0x0203B9F4 +_0816D59C: .4byte 0x03005B60 +_0816D5A0: .4byte 0x0000079A +_0816D5A4: .4byte 0x0000FFFF +_0816D5A8: .4byte 0x0816D5CD +_0816D5AC: .4byte 0x00000455 +_0816D5B0: .4byte 0x020205AC +_0816D5B4: .4byte 0x000004BE +_0816D5B8: .4byte 0x00000572 +_0816D5BC: .4byte 0x00000576 +_0816D5C0: .4byte 0x000006BF +_0816D5C4: .4byte 0x0203B998 +_0816D5C8: .4byte 0x000001FF + thumb_func_end Task_IntroHandleBikeAndFlygonMovement + + thumb_func_start Task_IntroWaitToSetupPart2 +Task_IntroWaitToSetupPart2: @ 0x0816D5CC + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _0816D5F0 + ldr r1, [r0] + ldr r0, _0816D5F4 + cmp r1, r0 + bls _0816D5EA + ldr r0, _0816D5F8 + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _0816D5FC + str r0, [r1] +_0816D5EA: + pop {r0} + bx r0 + .align 2, 0 +_0816D5F0: .4byte 0x03005FE0 +_0816D5F4: .4byte 0x00000814 +_0816D5F8: .4byte 0x03005B60 +_0816D5FC: .4byte 0x0816D991 + thumb_func_end Task_IntroWaitToSetupPart2 + + thumb_func_start sub_0816D600 +sub_0816D600: @ 0x0816D600 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x34] + adds r0, #4 + strh r0, [r4, #0x34] + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #8 + bls _0816D614 + b _0816D79E +_0816D614: + lsls r0, r0, #2 + ldr r1, _0816D620 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0816D620: .4byte 0x0816D624 +_0816D624: @ jump table + .4byte _0816D648 @ case 0 + .4byte _0816D65E @ case 1 + .4byte _0816D67C @ case 2 + .4byte _0816D6A0 @ case 3 + .4byte _0816D6BC @ case 4 + .4byte _0816D6DE @ case 5 + .4byte _0816D6F6 @ case 6 + .4byte _0816D752 @ case 7 + .4byte _0816D780 @ case 8 +_0816D648: + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xb3 + bgt _0816D658 + b _0816D79E +_0816D658: + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] +_0816D65E: + ldrh r0, [r4, #0x20] + subs r0, #4 + strh r0, [r4, #0x20] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x3c + beq _0816D66E + b _0816D79E +_0816D66E: + movs r0, #8 + strh r0, [r4, #0x2e] + movs r0, #0x14 + strh r0, [r4, #0x30] + movs r0, #2 + strh r0, [r4, #0x32] + b _0816D79E +_0816D67C: + ldrh r1, [r4, #0x20] + adds r1, #8 + strh r1, [r4, #0x20] + ldrh r0, [r4, #0x22] + subs r0, #2 + strh r0, [r4, #0x22] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #0x7c + beq _0816D692 + b _0816D79E +_0816D692: + movs r0, #8 + strh r0, [r4, #0x2e] + movs r0, #0x14 + strh r0, [r4, #0x30] + movs r0, #3 + strh r0, [r4, #0x32] + b _0816D79E +_0816D6A0: + ldrh r0, [r4, #0x22] + adds r0, #4 + strh r0, [r4, #0x22] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x50 + bne _0816D79E + movs r0, #8 + strh r0, [r4, #0x2e] + movs r0, #0xa + strh r0, [r4, #0x30] + movs r0, #4 + strh r0, [r4, #0x32] + b _0816D79E +_0816D6BC: + ldrh r1, [r4, #0x20] + subs r1, #8 + strh r1, [r4, #0x20] + ldrh r0, [r4, #0x22] + subs r0, #2 + strh r0, [r4, #0x22] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #0x3c + bne _0816D79E + movs r0, #8 + strh r0, [r4, #0x2e] + movs r0, #0xa + strh r0, [r4, #0x30] + movs r0, #5 + strh r0, [r4, #0x32] + b _0816D79E +_0816D6DE: + ldrh r0, [r4, #0x20] + adds r0, #0x3c + strh r0, [r4, #0x20] + movs r0, #0xc0 + strh r0, [r4, #0x36] + movs r0, #0x80 + strh r0, [r4, #0x38] + movs r0, #3 + strh r0, [r4, #0x3a] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] +_0816D6F6: + ldrh r0, [r4, #0x36] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x3c + bl Sin + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x38] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x14 + bl Sin + strh r0, [r4, #0x26] + ldrh r1, [r4, #0x36] + adds r1, #2 + strh r1, [r4, #0x36] + ldrh r0, [r4, #0x38] + adds r0, #4 + strh r0, [r4, #0x38] + movs r0, #0xff + ands r1, r0 + cmp r1, #0x40 + bne _0816D79E + adds r2, r4, #0 + adds r2, #0x3f + ldrb r0, [r2] + movs r1, #2 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r2] + ldrh r0, [r4, #0x3a] + subs r0, #1 + strh r0, [r4, #0x3a] + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + cmp r1, #0 + bne _0816D79E + ldrh r0, [r4, #0x24] + ldrh r2, [r4, #0x20] + adds r0, r0, r2 + strh r0, [r4, #0x20] + strh r1, [r4, #0x24] + ldrh r0, [r4, #0x2e] + adds r0, #1 + b _0816D79C +_0816D752: + ldrh r0, [r4, #0x20] + subs r0, #2 + strh r0, [r4, #0x20] + ldrh r0, [r4, #0x38] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x14 + bl Sin + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x38] + adds r0, #4 + strh r0, [r4, #0x38] + movs r0, #0x20 + ldrsh r1, [r4, r0] + movs r0, #0x10 + rsbs r0, r0, #0 + cmp r1, r0 + bge _0816D79E + adds r0, r4, #0 + bl DestroySprite + b _0816D79E +_0816D780: + ldrh r0, [r4, #0x34] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl Cos + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x30] + subs r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0816D79E + ldrh r0, [r4, #0x32] +_0816D79C: + strh r0, [r4, #0x2e] +_0816D79E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0816D600 + + thumb_func_start sub_0816D7A4 +sub_0816D7A4: @ 0x0816D7A4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #5 + bls _0816D7B2 + b _0816D8BE +_0816D7B2: + lsls r0, r0, #2 + ldr r1, _0816D7BC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0816D7BC: .4byte 0x0816D7C0 +_0816D7C0: @ jump table + .4byte _0816D7D8 @ case 0 + .4byte _0816D7EC @ case 1 + .4byte _0816D804 @ case 2 + .4byte _0816D848 @ case 3 + .4byte _0816D87E @ case 4 + .4byte _0816D8AE @ case 5 +_0816D7D8: + ldr r0, _0816D7E8 + ldr r1, [r0] + movs r0, #0x99 + lsls r0, r0, #3 + cmp r1, r0 + bne _0816D8BE + b _0816D89E + .align 2, 0 +_0816D7E8: .4byte 0x03005FE0 +_0816D7EC: + ldr r0, _0816D800 + ldr r1, [r0] + movs r0, #0xc5 + lsls r0, r0, #3 + cmp r1, r0 + bne _0816D854 + adds r0, r4, #0 + movs r1, #0 + b _0816D8A2 + .align 2, 0 +_0816D800: .4byte 0x03005FE0 +_0816D804: + ldr r0, _0816D82C + ldr r1, [r0] + ldr r0, _0816D830 + cmp r1, r0 + beq _0816D834 + ldrh r0, [r4, #0x30] + adds r2, r0, #0 + adds r2, #0x20 + strh r2, [r4, #0x30] + movs r1, #0x30 + ldrsh r0, [r4, r1] + movs r1, #0xff + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + beq _0816D8BE + ldrh r0, [r4, #0x20] + adds r0, #1 + b _0816D86E + .align 2, 0 +_0816D82C: .4byte 0x03005FE0 +_0816D830: .4byte 0x000006C7 +_0816D834: + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAnim + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + movs r0, #0x50 + strh r0, [r4, #0x32] + b _0816D8BE +_0816D848: + ldrh r0, [r4, #0x32] + subs r0, #1 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0816D878 +_0816D854: + ldrh r0, [r4, #0x30] + adds r2, r0, #0 + adds r2, #0x40 + strh r2, [r4, #0x30] + movs r1, #0x30 + ldrsh r0, [r4, r1] + movs r1, #0xff + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + beq _0816D8BE + ldrh r0, [r4, #0x20] + subs r0, #1 +_0816D86E: + strh r0, [r4, #0x20] + movs r0, #0xff + ands r2, r0 + strh r2, [r4, #0x30] + b _0816D8BE +_0816D878: + adds r0, r4, #0 + movs r1, #2 + b _0816D8A2 +_0816D87E: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0816D892 + ldrh r0, [r4, #0x20] + adds r0, #4 + strh r0, [r4, #0x20] +_0816D892: + movs r0, #0x20 + ldrsh r1, [r4, r0] + movs r0, #0xa8 + lsls r0, r0, #1 + cmp r1, r0 + ble _0816D8BE +_0816D89E: + adds r0, r4, #0 + movs r1, #1 +_0816D8A2: + bl StartSpriteAnim + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + b _0816D8BE +_0816D8AE: + ldr r0, _0816D8C4 + ldr r1, [r0] + ldr r0, _0816D8C8 + cmp r1, r0 + bls _0816D8BE + ldrh r0, [r4, #0x20] + subs r0, #2 + strh r0, [r4, #0x20] +_0816D8BE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816D8C4: .4byte 0x03005FE0 +_0816D8C8: .4byte 0x0000073F + thumb_func_end sub_0816D7A4 + + thumb_func_start sub_0816D8CC +sub_0816D8CC: @ 0x0816D8CC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _0816D900 + cmp r0, #1 + bgt _0816D8E2 + cmp r0, #0 + beq _0816D8E8 + b _0816D988 +_0816D8E2: + cmp r0, #2 + beq _0816D926 + b _0816D988 +_0816D8E8: + ldr r0, _0816D8FC + ldr r1, [r0] + movs r0, #0x88 + lsls r0, r0, #3 + cmp r1, r0 + bne _0816D988 + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + b _0816D988 + .align 2, 0 +_0816D8FC: .4byte 0x03005FE0 +_0816D900: + ldrh r0, [r4, #0x20] + subs r0, #2 + strh r0, [r4, #0x20] + ldr r0, _0816D940 + ldr r1, [r0] + movs r0, #0x92 + lsls r0, r0, #3 + cmp r1, r0 + bne _0816D988 + ldrh r0, [r4, #0x22] + subs r0, #0xc + strh r0, [r4, #0x22] + movs r0, #0x80 + strh r0, [r4, #0x30] + movs r0, #0 + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] +_0816D926: + movs r2, #0x20 + ldrsh r0, [r4, r2] + movs r2, #0x24 + ldrsh r1, [r4, r2] + adds r0, r0, r1 + movs r1, #0x20 + rsbs r1, r1, #0 + cmp r0, r1 + bgt _0816D944 + adds r0, r4, #0 + bl DestroySprite + b _0816D988 + .align 2, 0 +_0816D940: .4byte 0x03005FE0 +_0816D944: + ldrh r0, [r4, #0x30] + movs r1, #0xff + ands r1, r0 + cmp r1, #0x3f + bgt _0816D956 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x10 + b _0816D968 +_0816D956: + cmp r1, #0x40 + bne _0816D960 + ldrh r0, [r4, #0x20] + subs r0, #0x30 + strh r0, [r4, #0x20] +_0816D960: + ldrh r0, [r4, #0x30] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x40 +_0816D968: + bl Sin + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x32] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0xc + bl Cos + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] +_0816D988: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0816D8CC + + thumb_func_start Task_IntroLoadPart3Graphics +Task_IntroLoadPart3Graphics: @ 0x0816D990 + push {r4, r5, lr} + sub sp, #4 + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + bl intro_reset_and_hide_bgs + ldr r0, _0816DA20 + movs r1, #0xc0 + lsls r1, r1, #0x13 + bl LZ77UnCompVram + ldr r0, _0816DA24 + ldr r1, _0816DA28 + bl LZ77UnCompVram + ldr r0, _0816DA2C + movs r2, #0x80 + lsls r2, r2, #2 + movs r1, #0 + bl LoadPalette + ldr r0, _0816DA30 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + adds r4, r4, r0 + movs r5, #0 + strh r5, [r4, #8] + strh r5, [r4, #0xa] + strh r5, [r4, #0xc] + strh r5, [r4, #0xe] + movs r0, #0x78 + movs r1, #0x50 + movs r2, #0 + movs r3, #0 + bl PanFadeAndZoomScreen + bl ResetSpriteData + bl FreeAllSpritePalettes + movs r0, #1 + rsbs r0, r0, #0 + ldr r1, _0816DA34 + str r1, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r1, _0816DA38 + movs r0, #0xc + bl SetGpuReg + ldr r1, _0816DA3C + movs r0, #0 + bl SetGpuReg + ldr r0, _0816DA40 + str r0, [r4] + ldr r0, _0816DA44 + str r5, [r0] + movs r0, #0xdd + lsls r0, r0, #1 + bl m4aSongNumStart + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0816DA20: .4byte 0x085C4908 +_0816DA24: .4byte 0x085C47D8 +_0816DA28: .4byte 0x06004000 +_0816DA2C: .4byte 0x085C45D8 +_0816DA30: .4byte 0x03005B60 +_0816DA34: .4byte 0x0000FFFF +_0816DA38: .4byte 0x00004883 +_0816DA3C: .4byte 0x00001441 +_0816DA40: .4byte 0x0816DA49 +_0816DA44: .4byte 0x03005FE0 + thumb_func_end Task_IntroLoadPart3Graphics + + thumb_func_start Task_IntroSpinAndZoomPokeball +Task_IntroSpinAndZoomPokeball: @ 0x0816DA48 + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r2, _0816DA80 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r3, r0, r2 + movs r1, #0x80 + lsls r1, r1, #3 + adds r0, r1, #0 + ldrh r1, [r3, #8] + adds r0, r0, r1 + strh r0, [r3, #8] + ldrh r4, [r3, #0xa] + movs r0, #0xa + ldrsh r1, [r3, r0] + ldr r0, _0816DA84 + cmp r1, r0 + bgt _0816DA88 + ldrh r0, [r3, #0xc] + adds r1, r4, r0 + strh r1, [r3, #0xa] + adds r0, #2 + strh r0, [r3, #0xc] + b _0816DA8C + .align 2, 0 +_0816DA80: .4byte 0x03005B60 +_0816DA84: .4byte 0x000006BF +_0816DA88: + ldr r0, _0816DAD4 + str r0, [r3] +_0816DA8C: + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + adds r4, r4, r2 + movs r0, #0xa + ldrsh r1, [r4, r0] + movs r0, #0x80 + lsls r0, r0, #9 + bl __divsi3 + adds r2, r0, #0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldrh r3, [r4, #8] + movs r0, #0x78 + movs r1, #0x50 + bl PanFadeAndZoomScreen + ldr r0, _0816DAD8 + ldr r0, [r0] + cmp r0, #0x1c + bne _0816DACA + movs r0, #1 + rsbs r0, r0, #0 + ldr r1, _0816DADC + str r1, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade +_0816DACA: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0816DAD4: .4byte 0x0816DAE1 +_0816DAD8: .4byte 0x03005FE0 +_0816DADC: .4byte 0x0000FFFF + thumb_func_end Task_IntroSpinAndZoomPokeball + + thumb_func_start Task_IntroWaitToSetupPart3LegendsFight +Task_IntroWaitToSetupPart3LegendsFight: @ 0x0816DAE0 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _0816DB00 + ldr r0, [r0] + cmp r0, #0x2b + bls _0816DAFC + ldr r0, _0816DB04 + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _0816DB08 + str r0, [r1] +_0816DAFC: + pop {r0} + bx r0 + .align 2, 0 +_0816DB00: .4byte 0x03005FE0 +_0816DB04: .4byte 0x03005B60 +_0816DB08: .4byte 0x0816DB0D + thumb_func_end Task_IntroWaitToSetupPart3LegendsFight + + thumb_func_start Task_IntroLoadGroudonScene +Task_IntroLoadGroudonScene: @ 0x0816DB0C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0816DB80 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0816DB78 + bl intro_reset_and_hide_bgs + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r1, _0816DB84 + movs r0, #8 + strb r0, [r1] + ldr r0, _0816DB88 + movs r1, #0xc0 + lsls r1, r1, #0x13 + bl LZDecompressWram + ldr r0, _0816DB8C + ldr r1, _0816DB90 + bl LZDecompressWram + ldr r0, _0816DB94 + ldr r1, _0816DB98 + bl LZDecompressWram + ldr r0, _0816DB9C + ldr r1, _0816DBA0 + bl LZDecompressWram + ldr r0, _0816DBA4 + bl LoadCompressedSpriteSheetUsingHeap + ldr r0, _0816DBA8 + bl LoadCompressedSpritePaletteUsingHeap + ldr r0, _0816DBAC + ldr r1, _0816DBB0 + movs r2, #0x80 + lsls r2, r2, #1 + bl CpuSet + ldr r1, _0816DBB4 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0816DBB8 + str r1, [r0] +_0816DB78: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816DB80: .4byte 0x02037C74 +_0816DB84: .4byte 0x030030BC +_0816DB88: .4byte 0x08D88478 +_0816DB8C: .4byte 0x08D88D24 +_0816DB90: .4byte 0x0600C000 +_0816DB94: .4byte 0x08D89F60 +_0816DB98: .4byte 0x06004000 +_0816DB9C: .4byte 0x08D8A7FC +_0816DBA0: .4byte 0x0600E000 +_0816DBA4: .4byte 0x084FD420 +_0816DBA8: .4byte 0x084FDD28 +_0816DBAC: .4byte 0x08D85CB4 +_0816DBB0: .4byte 0x020373B4 +_0816DBB4: .4byte 0x03005B60 +_0816DBB8: .4byte 0x0816DBBD + thumb_func_end Task_IntroLoadGroudonScene + + thumb_func_start Task_IntroLoadPart3Graphics1 +Task_IntroLoadPart3Graphics1: @ 0x0816DBBC + push {r4, r5, lr} + sub sp, #4 + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r0, #0x40 + movs r1, #0xf0 + bl SetGpuReg + movs r0, #0x44 + movs r1, #0xa0 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0x3f + bl SetGpuReg + movs r0, #0x4a + movs r1, #0 + bl SetGpuReg + ldr r1, _0816DC40 + movs r0, #0xc + bl SetGpuReg + ldr r1, _0816DC44 + movs r0, #0xa + bl SetGpuReg + ldr r1, _0816DC48 + movs r0, #0 + bl SetGpuReg + movs r0, #1 + rsbs r0, r0, #0 + ldr r1, _0816DC4C + str r1, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r0, _0816DC50 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + adds r4, r4, r0 + movs r0, #0 + strh r0, [r4, #8] + ldr r0, _0816DC54 + strh r0, [r4, #0xa] + ldr r1, _0816DC58 + strh r1, [r4, #0xc] + movs r2, #0x80 + lsls r2, r2, #1 + strh r2, [r4, #0xe] + movs r3, #0 + bl PanFadeAndZoomScreen + ldr r0, _0816DC5C + str r0, [r4] + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0816DC40: .4byte 0x0000B880 +_0816DC44: .4byte 0x00001C05 +_0816DC48: .4byte 0x00003641 +_0816DC4C: .4byte 0x0000FFFF +_0816DC50: .4byte 0x03005B60 +_0816DC54: .4byte 0x0000FFA0 +_0816DC58: .4byte 0x0000FF51 +_0816DC5C: .4byte 0x0816DC61 + thumb_func_end Task_IntroLoadPart3Graphics1 + + thumb_func_start Task_IntroLoadPart3Graphics2 +Task_IntroLoadPart3Graphics2: @ 0x0816DC60 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0816DC98 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 + ldrh r2, [r4, #8] + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0x20 + beq _0816DC9C + adds r0, r2, #4 + strh r0, [r4, #8] + movs r0, #8 + ldrsh r1, [r4, r0] + lsls r1, r1, #8 + adds r0, r2, #0 + subs r0, #0x9c + subs r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x44 + bl SetGpuReg + b _0816DCAA + .align 2, 0 +_0816DC98: .4byte 0x03005B60 +_0816DC9C: + movs r1, #0x82 + lsls r1, r1, #6 + movs r0, #0x44 + bl SetGpuReg + ldr r0, _0816DCB0 + str r0, [r4] +_0816DCAA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816DCB0: .4byte 0x0816DCB5 + thumb_func_end Task_IntroLoadPart3Graphics2 + + thumb_func_start Task_IntroLoadPart3Graphics3 +Task_IntroLoadPart3Graphics3: @ 0x0816DCB4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0816DCC8 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r0, _0816DCCC + str r0, [r1] + bx lr + .align 2, 0 +_0816DCC8: .4byte 0x03005B60 +_0816DCCC: .4byte 0x0816DCD1 + thumb_func_end Task_IntroLoadPart3Graphics3 + + thumb_func_start Task_IntroLoadPart3Graphics4 +Task_IntroLoadPart3Graphics4: @ 0x0816DCD0 + push {lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0816DD08 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r2, #0 + strh r2, [r1, #8] + ldr r0, _0816DD0C + str r0, [r1] + movs r0, #1 + str r0, [sp] + movs r0, #4 + str r0, [sp, #4] + str r2, [sp, #8] + movs r0, #0 + movs r1, #0xa0 + movs r2, #4 + movs r3, #4 + bl ScanlineEffect_InitWave + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_0816DD08: .4byte 0x03005B60 +_0816DD0C: .4byte 0x0816DD11 + thumb_func_end Task_IntroLoadPart3Graphics4 + + thumb_func_start Task_IntroGroudonScene +Task_IntroGroudonScene: @ 0x0816DD10 + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _0816DD70 + adds r4, r0, r1 + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + ldrh r0, [r4] + subs r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #6 + bhi _0816DD46 + ldrh r0, [r4, #0xa] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0816DD46 + ldrh r0, [r4, #8] + movs r1, #3 + eors r0, r1 + strh r0, [r4, #8] +_0816DD46: + ldrh r0, [r4, #2] + ldrh r1, [r4, #8] + ldrh r2, [r4, #4] + adds r1, r1, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldrh r2, [r4, #6] + movs r3, #0 + bl PanFadeAndZoomScreen + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #9 + bls _0816DD64 + b _0816DF5A +_0816DD64: + lsls r0, r0, #2 + ldr r1, _0816DD74 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0816DD70: .4byte 0x03005B68 +_0816DD74: .4byte 0x0816DD78 +_0816DD78: @ jump table + .4byte _0816DDA0 @ case 0 + .4byte _0816DDCA @ case 1 + .4byte _0816DE08 @ case 2 + .4byte _0816DE1C @ case 3 + .4byte _0816DE60 @ case 4 + .4byte _0816DE7E @ case 5 + .4byte _0816DEAC @ case 6 + .4byte _0816DEC2 @ case 7 + .4byte _0816DF20 @ case 8 + .4byte _0816DF3A @ case 9 +_0816DDA0: + ldrh r0, [r4, #2] + adds r0, #0x10 + strh r0, [r4, #2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xa0 + beq _0816DDB0 + b _0816DF5A +_0816DDB0: + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + movs r0, #2 + strh r0, [r4, #0xc] + movs r2, #0xf1 + lsls r2, r2, #1 + adds r0, r2, #0 + strh r0, [r4, #0xe] + adds r0, r5, #0 + bl CreateGroudonRockSprites + b _0816DF5A +_0816DDCA: + ldrh r0, [r4, #0xc] + subs r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0816DDD8 + b _0816DF5A +_0816DDD8: + movs r0, #2 + strh r0, [r4, #0xc] + movs r1, #0xe + ldrsh r0, [r4, r1] + ldr r2, _0816DE00 + adds r0, r0, r2 + ldr r1, _0816DE04 + movs r2, #1 + bl CpuSet + ldrh r0, [r4, #0xe] + adds r0, #2 + strh r0, [r4, #0xe] + lsls r0, r0, #0x10 + movs r1, #0xf6 + lsls r1, r1, #0x11 + cmp r0, r1 + beq _0816DDFE + b _0816DF5A +_0816DDFE: + b _0816DF32 + .align 2, 0 +_0816DE00: .4byte 0x08D85CB4 +_0816DE04: .4byte 0x020377F2 +_0816DE08: + ldrh r0, [r4, #0xc] + subs r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0816DE16 + b _0816DF5A +_0816DE16: + movs r0, #2 + strh r0, [r4, #0xc] + b _0816DF32 +_0816DE1C: + ldrh r0, [r4, #0xc] + subs r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0816DE2A + b _0816DF5A +_0816DE2A: + movs r0, #2 + strh r0, [r4, #0xc] + movs r1, #0xe + ldrsh r0, [r4, r1] + ldr r2, _0816DE58 + adds r0, r0, r2 + ldr r1, _0816DE5C + movs r2, #1 + bl CpuSet + ldrh r0, [r4, #0xe] + subs r0, #2 + strh r0, [r4, #0xe] + lsls r0, r0, #0x10 + movs r1, #0xf0 + lsls r1, r1, #0x11 + cmp r0, r1 + beq _0816DE50 + b _0816DF5A +_0816DE50: + movs r0, #8 + strh r0, [r4, #0xc] + b _0816DF32 + .align 2, 0 +_0816DE58: .4byte 0x08D85CB4 +_0816DE5C: .4byte 0x020377F2 +_0816DE60: + ldrh r0, [r4, #0xc] + subs r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0816DF5A + movs r1, #0x60 + rsbs r1, r1, #0 + adds r0, r1, #0 + strh r0, [r4, #2] + movs r0, #0xa9 + strh r0, [r4, #4] + movs r0, #3 + strh r0, [r4, #0xc] + b _0816DF32 +_0816DE7E: + ldrh r0, [r4, #0xc] + subs r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + cmp r1, #0 + bne _0816DF5A + movs r0, #0x50 + strh r0, [r4, #2] + movs r0, #0x29 + strh r0, [r4, #4] + movs r0, #0x10 + strh r0, [r4, #0xc] + ldr r0, _0816DEA8 + str r1, [sp] + movs r1, #0 + movs r2, #0x64 + movs r3, #0xa + bl PlayCryInternal + b _0816DF32 + .align 2, 0 +_0816DEA8: .4byte 0x00000195 +_0816DEAC: + ldrh r0, [r4, #0xc] + subs r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0816DF5A + movs r0, #0x50 + strh r0, [r4, #2] + movs r0, #0x28 + strh r0, [r4, #4] + b _0816DF32 +_0816DEC2: + ldrh r0, [r4, #2] + adds r0, #4 + strh r0, [r4, #2] + ldrh r0, [r4, #4] + adds r0, #4 + strh r0, [r4, #4] + ldr r2, _0816DF18 + adds r0, r2, #0 + ldrh r1, [r4, #0xc] + adds r0, r0, r1 + strh r0, [r4, #0xc] + movs r2, #0xc + ldrsh r0, [r4, r2] + movs r1, #0xff + lsls r1, r1, #8 + ands r0, r1 + lsrs r0, r0, #8 + movs r1, #0x40 + bl Sin + movs r1, #0x80 + lsls r1, r1, #1 + adds r5, r1, #0 + adds r0, r0, r5 + strh r0, [r4, #6] + movs r2, #2 + ldrsh r0, [r4, r2] + cmp r0, #0x78 + bne _0816DF5A + movs r0, #2 + rsbs r0, r0, #0 + ldr r1, _0816DF1C + str r1, [sp] + movs r1, #3 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + strh r5, [r4, #6] + movs r0, #0 + strh r0, [r4, #8] + b _0816DF32 + .align 2, 0 +_0816DF18: .4byte 0x00000666 +_0816DF1C: .4byte 0x00007FFF +_0816DF20: + ldrh r1, [r4, #6] + movs r2, #6 + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _0816DF32 + adds r0, r1, #0 + subs r0, #8 + strh r0, [r4, #6] + b _0816DF5A +_0816DF32: + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + b _0816DF5A +_0816DF3A: + ldr r0, _0816DF64 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0816DF5A + ldr r1, _0816DF68 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0816DF6C + str r1, [r0] + ldr r1, _0816DF70 + movs r0, #3 + strb r0, [r1, #0x15] +_0816DF5A: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0816DF64: .4byte 0x02037C74 +_0816DF68: .4byte 0x03005B60 +_0816DF6C: .4byte 0x0816E085 +_0816DF70: .4byte 0x020397C8 + thumb_func_end Task_IntroGroudonScene + + thumb_func_start CreateGroudonRockSprites +CreateGroudonRockSprites: @ 0x0816DF74 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r4, #0 + ldr r6, _0816DFCC + ldr r5, _0816DFD0 +_0816DF80: + movs r0, #0 + ldrsh r1, [r5, r0] + lsls r3, r4, #0x18 + lsrs r3, r3, #0x18 + ldr r0, _0816DFD4 + movs r2, #0xa0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r0, r6, #0 + adds r0, #0x1c + adds r0, r2, r0 + ldr r1, _0816DFD8 + str r1, [r0] + adds r2, r2, r6 + ldrb r0, [r2, #5] + movs r3, #0xd + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r0, r1 + strb r0, [r2, #5] + strh r4, [r2, #0x30] + strh r7, [r2, #0x36] + ldrb r1, [r5, #2] + adds r0, r2, #0 + bl StartSpriteAnim + adds r5, #6 + adds r4, #1 + cmp r4, #5 + ble _0816DF80 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0816DFCC: .4byte 0x020205AC +_0816DFD0: .4byte 0x085C5D18 +_0816DFD4: .4byte 0x085727F4 +_0816DFD8: .4byte 0x0816DFDD + thumb_func_end CreateGroudonRockSprites + + thumb_func_start SpriteCB_IntroGroudonRocks +SpriteCB_IntroGroudonRocks: @ 0x0816DFDC + push {lr} + adds r3, r0, #0 + ldrh r0, [r3, #0x34] + adds r0, #1 + strh r0, [r3, #0x34] + ldrh r0, [r3, #0x34] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0816DFF8 + ldrh r0, [r3, #0x26] + movs r1, #3 + eors r0, r1 + strh r0, [r3, #0x26] +_0816DFF8: + movs r1, #0x2e + ldrsh r0, [r3, r1] + cmp r0, #0 + beq _0816E006 + cmp r0, #1 + beq _0816E05C + b _0816E080 +_0816E006: + ldr r2, _0816E054 + movs r0, #0x30 + ldrsh r1, [r3, r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r2, #4 + adds r0, r0, r2 + ldrh r2, [r0] + ldrh r1, [r3, #0x32] + adds r2, r2, r1 + strh r2, [r3, #0x32] + movs r0, #0x32 + ldrsh r1, [r3, r0] + movs r0, #0xff + lsls r0, r0, #8 + ands r1, r0 + asrs r1, r1, #8 + ldrh r0, [r3, #0x22] + subs r0, r0, r1 + strh r0, [r3, #0x22] + movs r0, #0xff + ands r2, r0 + strh r2, [r3, #0x32] + ldr r2, _0816E058 + movs r0, #0x36 + ldrsh r1, [r3, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r1, #8 + ldrsh r0, [r0, r1] + cmp r0, #7 + ble _0816E080 + ldrh r0, [r3, #0x2e] + adds r0, #1 + strh r0, [r3, #0x2e] + b _0816E080 + .align 2, 0 +_0816E054: .4byte 0x085C5D18 +_0816E058: .4byte 0x03005B60 +_0816E05C: + ldrh r1, [r3, #0x20] + movs r2, #0x20 + ldrsh r0, [r3, r2] + cmp r0, #0x77 + bgt _0816E06A + subs r0, r1, #2 + b _0816E06C +_0816E06A: + adds r0, r1, #2 +_0816E06C: + strh r0, [r3, #0x20] + ldrh r1, [r3, #0x22] + movs r2, #0x22 + ldrsh r0, [r3, r2] + cmp r0, #0x4f + bgt _0816E07C + subs r0, r1, #2 + b _0816E07E +_0816E07C: + adds r0, r1, #2 +_0816E07E: + strh r0, [r3, #0x22] +_0816E080: + pop {r0} + bx r0 + thumb_func_end SpriteCB_IntroGroudonRocks + + thumb_func_start Task_IntroLoadKyogreScene +Task_IntroLoadKyogreScene: @ 0x0816E084 + push {r4, lr} + sub sp, #0xc + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl ResetSpriteData + ldr r0, _0816E114 + movs r1, #0xc0 + lsls r1, r1, #0x13 + bl LZDecompressWram + ldr r0, _0816E118 + ldr r1, _0816E11C + bl LZDecompressWram + ldr r0, _0816E120 + ldr r1, _0816E124 + bl LZDecompressWram + ldr r0, _0816E128 + bl LoadCompressedSpriteSheet + ldr r0, _0816E12C + bl LoadSpritePalette + movs r0, #2 + rsbs r0, r0, #0 + ldr r1, _0816E130 + str r1, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r0, _0816E134 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _0816E138 + str r0, [r1] + movs r4, #0 + strh r4, [r1, #8] + movs r0, #0xa8 + lsls r0, r0, #1 + strh r0, [r1, #0xa] + movs r2, #0x50 + strh r2, [r1, #0xc] + movs r2, #0x10 + strh r2, [r1, #0x14] + adds r2, #0xf0 + strh r2, [r1, #0xe] + movs r1, #0x50 + movs r3, #0 + bl PanFadeAndZoomScreen + movs r0, #1 + str r0, [sp] + movs r0, #6 + str r0, [sp, #4] + str r4, [sp, #8] + movs r0, #0 + movs r1, #0xa0 + movs r2, #4 + movs r3, #4 + bl ScanlineEffect_InitWave + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816E114: .4byte 0x08D89208 +_0816E118: .4byte 0x08D89AA0 +_0816E11C: .4byte 0x0600C000 +_0816E120: .4byte 0x08D8A918 +_0816E124: .4byte 0x0600E000 +_0816E128: .4byte 0x085C5D3C +_0816E12C: .4byte 0x085C5D4C +_0816E130: .4byte 0x0000FFFF +_0816E134: .4byte 0x03005B60 +_0816E138: .4byte 0x0816E13D + thumb_func_end Task_IntroLoadKyogreScene + + thumb_func_start Task_IntroKyogreScene +Task_IntroKyogreScene: @ 0x0816E13C + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _0816E170 + adds r5, r0, r1 + ldrh r0, [r5, #2] + ldrh r1, [r5, #4] + ldrh r2, [r5, #6] + movs r3, #0 + bl PanFadeAndZoomScreen + movs r1, #0 + ldrsh r0, [r5, r1] + cmp r0, #0xd + bls _0816E164 + b _0816E4A0 +_0816E164: + lsls r0, r0, #2 + ldr r1, _0816E174 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0816E170: .4byte 0x03005B68 +_0816E174: .4byte 0x0816E178 +_0816E178: @ jump table + .4byte _0816E1B0 @ case 0 + .4byte _0816E1C4 @ case 1 + .4byte _0816E220 @ case 2 + .4byte _0816E26C @ case 3 + .4byte _0816E2A8 @ case 4 + .4byte _0816E2D0 @ case 5 + .4byte _0816E328 @ case 6 + .4byte _0816E344 @ case 7 + .4byte _0816E384 @ case 8 + .4byte _0816E3A0 @ case 9 + .4byte _0816E3E0 @ case 10 + .4byte _0816E3FE @ case 11 + .4byte _0816E448 @ case 12 + .4byte _0816E480 @ case 13 +_0816E1B0: + ldrh r0, [r5, #0xc] + subs r0, #1 + strh r0, [r5, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0816E1BE + b _0816E4A0 +_0816E1BE: + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] +_0816E1C4: + ldrh r0, [r5, #0xc] + adds r0, #4 + strh r0, [r5, #0xc] + movs r2, #0xc + ldrsh r0, [r5, r2] + movs r1, #0x80 + lsls r1, r1, #1 + bl Sin + ldr r1, _0816E21C + lsls r4, r6, #2 + adds r4, r4, r6 + lsls r4, r4, #3 + adds r4, r4, r1 + movs r2, #0xac + lsls r2, r2, #1 + adds r1, r2, #0 + subs r1, r1, r0 + strh r1, [r4, #0xa] + movs r1, #0xc + ldrsh r0, [r5, r1] + movs r1, #0x40 + bl Cos + movs r1, #0x54 + subs r1, r1, r0 + strh r1, [r4, #0xc] + movs r2, #0xc + ldrsh r0, [r5, r2] + cmp r0, #0x40 + beq _0816E204 + b _0816E4A0 +_0816E204: + movs r0, #0x19 + strh r0, [r5, #0xc] + movs r0, #1 + strh r0, [r5, #0xe] + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + movs r0, #0 + bl CreateKyogreBubbleSprites_0 + b _0816E4A0 + .align 2, 0 +_0816E21C: .4byte 0x03005B60 +_0816E220: + ldrh r0, [r5, #0xc] + subs r0, #1 + strh r0, [r5, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0816E22E + b _0816E4A0 +_0816E22E: + ldr r0, _0816E264 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r2, #0 + ldrh r2, [r1, #0xa] + adds r0, r0, r2 + strh r0, [r1, #0xa] + ldr r2, _0816E268 + adds r0, r2, #0 + ldrh r2, [r1, #0xc] + adds r0, r0, r2 + strh r0, [r1, #0xc] + movs r0, #8 + strh r0, [r5, #0xc] + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + movs r0, #0 + bl CreateKyogreBubbleSprites_0 + bl CreateKyogreBubbleSprites_1 + b _0816E4A0 + .align 2, 0 +_0816E264: .4byte 0x03005B60 +_0816E268: .4byte 0xFFFFFEFE +_0816E26C: + ldrh r0, [r5, #0xc] + subs r0, #1 + strh r0, [r5, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0816E27A + b _0816E4A0 +_0816E27A: + ldr r0, _0816E2A0 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r2, _0816E2A4 + adds r0, r2, #0 + ldrh r2, [r1, #0xa] + adds r0, r0, r2 + strh r0, [r1, #0xa] + movs r2, #0x81 + lsls r2, r2, #1 + adds r0, r2, #0 + ldrh r2, [r1, #0xc] + adds r0, r0, r2 + strh r0, [r1, #0xc] + movs r0, #8 + strh r0, [r5, #0xc] + b _0816E474 + .align 2, 0 +_0816E2A0: .4byte 0x03005B60 +_0816E2A4: .4byte 0xFFFFFF00 +_0816E2A8: + ldrh r0, [r5, #0xc] + subs r0, #1 + strh r0, [r5, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0816E2B6 + b _0816E4A0 +_0816E2B6: + ldr r1, _0816E2CC + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #0xc] + subs r1, #0xfc + strh r1, [r0, #0xc] + movs r0, #8 + strh r0, [r5, #0xc] + b _0816E474 + .align 2, 0 +_0816E2CC: .4byte 0x03005B60 +_0816E2D0: + ldrh r0, [r5, #0xc] + subs r0, #1 + strh r0, [r5, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0816E2DE + b _0816E4A0 +_0816E2DE: + ldr r0, _0816E308 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0xc] + adds r0, #0xfc + strh r0, [r1, #0xc] + ldrh r2, [r5, #0xe] + movs r0, #0xe + ldrsh r1, [r5, r0] + cmp r1, #0 + beq _0816E30C + movs r0, #0xc + strh r0, [r5, #0xc] + subs r0, r2, #1 + strh r0, [r5, #0xe] + movs r0, #2 + strh r0, [r5] + b _0816E4A0 + .align 2, 0 +_0816E308: .4byte 0x03005B60 +_0816E30C: + movs r0, #1 + strh r0, [r5, #0xc] + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + movs r0, #0xca + lsls r0, r0, #1 + str r1, [sp] + movs r1, #0 + movs r2, #0x78 + movs r3, #0xa + bl PlayCryInternal + b _0816E4A0 +_0816E328: + ldrh r0, [r5, #0xc] + subs r0, #1 + strh r0, [r5, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0816E336 + b _0816E4A0 +_0816E336: + movs r0, #4 + strh r0, [r5, #0xc] + movs r1, #0xf5 + lsls r1, r1, #1 + adds r0, r1, #0 + strh r0, [r5, #0xe] + b _0816E474 +_0816E344: + ldrh r0, [r5, #0xc] + subs r0, #1 + strh r0, [r5, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0816E352 + b _0816E4A0 +_0816E352: + movs r0, #4 + strh r0, [r5, #0xc] + movs r2, #0xe + ldrsh r0, [r5, r2] + ldr r1, _0816E37C + adds r0, r0, r1 + ldr r1, _0816E380 + movs r2, #1 + bl CpuSet + ldrh r0, [r5, #0xe] + subs r0, #2 + strh r0, [r5, #0xe] + lsls r0, r0, #0x10 + movs r1, #0xf0 + lsls r1, r1, #0x11 + cmp r0, r1 + beq _0816E378 + b _0816E4A0 +_0816E378: + b _0816E474 + .align 2, 0 +_0816E37C: .4byte 0x08D85CB4 +_0816E380: .4byte 0x02037812 +_0816E384: + ldrh r0, [r5, #0xc] + subs r0, #1 + strh r0, [r5, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0816E392 + b _0816E4A0 +_0816E392: + movs r0, #4 + strh r0, [r5, #0xc] + movs r2, #0xf1 + lsls r2, r2, #1 + adds r0, r2, #0 + strh r0, [r5, #0xe] + b _0816E474 +_0816E3A0: + ldrh r0, [r5, #0xc] + subs r0, #1 + strh r0, [r5, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0816E4A0 + movs r0, #4 + strh r0, [r5, #0xc] + movs r1, #0xe + ldrsh r0, [r5, r1] + ldr r2, _0816E3D8 + adds r0, r0, r2 + ldr r1, _0816E3DC + movs r2, #1 + bl CpuSet + ldrh r0, [r5, #0xe] + adds r0, #2 + strh r0, [r5, #0xe] + lsls r0, r0, #0x10 + movs r1, #0xf7 + lsls r1, r1, #0x11 + cmp r0, r1 + bne _0816E4A0 + movs r0, #0x10 + strh r0, [r5, #0xc] + b _0816E474 + .align 2, 0 +_0816E3D8: .4byte 0x08D85CB4 +_0816E3DC: .4byte 0x02037812 +_0816E3E0: + ldrh r0, [r5, #0xc] + subs r0, #1 + strh r0, [r5, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bne _0816E4A0 + strh r0, [r5, #0xc] + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + adds r0, r6, #0 + bl CreateKyogreBubbleSprites_0 + b _0816E4A0 +_0816E3FE: + ldrh r0, [r5, #0xc] + adds r0, #4 + strh r0, [r5, #0xc] + ldrh r0, [r5, #6] + subs r0, #8 + strh r0, [r5, #6] + movs r1, #0xc + ldrsh r0, [r5, r1] + movs r1, #0x3c + bl Sin + ldr r2, _0816E440 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r2 + adds r0, #0x58 + strh r0, [r1, #0xa] + movs r2, #0xc + ldrsh r0, [r5, r2] + cmp r0, #0x40 + bne _0816E4A0 + movs r0, #2 + rsbs r0, r0, #0 + ldr r1, _0816E444 + str r1, [sp] + movs r1, #3 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + b _0816E474 + .align 2, 0 +_0816E440: .4byte 0x03005B60 +_0816E444: .4byte 0x00007FFF +_0816E448: + ldrh r0, [r5, #0xc] + adds r0, #4 + strh r0, [r5, #0xc] + ldrh r0, [r5, #6] + subs r0, #8 + strh r0, [r5, #6] + movs r1, #0xc + ldrsh r0, [r5, r1] + movs r1, #0x14 + bl Sin + ldr r2, _0816E47C + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r2 + adds r0, #0x80 + strh r0, [r1, #0xa] + movs r2, #0xc + ldrsh r0, [r5, r2] + cmp r0, #0x80 + bne _0816E4A0 +_0816E474: + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + b _0816E4A0 + .align 2, 0 +_0816E47C: .4byte 0x03005B60 +_0816E480: + ldr r0, _0816E4A8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0816E4A0 + ldr r1, _0816E4AC + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0816E4B0 + str r1, [r0] + ldr r1, _0816E4B4 + movs r0, #3 + strb r0, [r1, #0x15] +_0816E4A0: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0816E4A8: .4byte 0x02037C74 +_0816E4AC: .4byte 0x03005B60 +_0816E4B0: .4byte 0x0816E66D +_0816E4B4: .4byte 0x020397C8 + thumb_func_end Task_IntroKyogreScene + + thumb_func_start CreateKyogreBubbleSprites_0 +CreateKyogreBubbleSprites_0: @ 0x0816E4B8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r5, #0 + ldr r7, _0816E524 + ldr r0, _0816E528 + mov sb, r0 + adds r4, r7, #0 + movs r6, #0 +_0816E4D2: + movs r3, #0 + ldrsh r1, [r4, r3] + adds r0, r7, #2 + adds r0, r6, r0 + movs r3, #0 + ldrsh r2, [r0, r3] + lsls r3, r5, #0x18 + lsrs r3, r3, #0x18 + ldr r0, _0816E52C + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + add r2, sb + adds r3, r2, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r1, #4 + orrs r0, r1 + strb r0, [r3] + mov r0, r8 + strh r0, [r2, #0x38] + ldrh r0, [r4, #4] + strh r0, [r2, #0x3a] + movs r0, #0x40 + strh r0, [r2, #0x3c] + adds r4, #6 + adds r6, #6 + adds r5, #1 + cmp r5, #5 + ble _0816E4D2 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0816E524: .4byte 0x085C5D5C +_0816E528: .4byte 0x020205AC +_0816E52C: .4byte 0x085C5DC8 + thumb_func_end CreateKyogreBubbleSprites_0 + + thumb_func_start CreateKyogreBubbleSprites_1 +CreateKyogreBubbleSprites_1: @ 0x0816E530 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r5, #0 + ldr r7, _0816E58C + adds r4, r7, #4 + movs r6, #0x24 + ldr r0, _0816E590 + mov r8, r0 +_0816E542: + movs r3, #0x20 + ldrsh r1, [r4, r3] + adds r0, r7, #2 + adds r0, r6, r0 + movs r3, #0 + ldrsh r2, [r0, r3] + lsls r3, r5, #0x18 + lsrs r3, r3, #0x18 + ldr r0, _0816E594 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + add r2, r8 + adds r3, r2, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r1, #4 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r4] + strh r0, [r2, #0x3a] + movs r0, #0x40 + strh r0, [r2, #0x3c] + adds r4, #6 + adds r6, #6 + adds r5, #1 + cmp r5, #5 + ble _0816E542 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0816E58C: .4byte 0x085C5D5C +_0816E590: .4byte 0x020205AC +_0816E594: .4byte 0x085C5DC8 + thumb_func_end CreateKyogreBubbleSprites_1 + + thumb_func_start SpriteCB_IntroKyogreBubbles +SpriteCB_IntroKyogreBubbles: @ 0x0816E598 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0816E5AA + cmp r0, #1 + beq _0816E630 + b _0816E666 +_0816E5AA: + ldrh r1, [r4, #0x3a] + movs r2, #0x3a + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _0816E5EE + ldrh r0, [r4, #0x30] + adds r0, #0xb + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x30] + movs r1, #0x30 + ldrsh r0, [r4, r1] + movs r1, #4 + bl Sin + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x32] + adds r0, #0x30 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0816E60E + adds r0, r4, #0 + bl DestroySprite + b _0816E60E +_0816E5EE: + subs r0, r1, #1 + strh r0, [r4, #0x3a] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0816E60E + adds r0, r4, #0 + movs r1, #0 + bl StartSpriteAnim + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_0816E60E: + ldr r2, _0816E62C + movs r0, #0x38 + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r1, #8 + ldrsh r0, [r0, r1] + cmp r0, #0xb + ble _0816E666 + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + b _0816E666 + .align 2, 0 +_0816E62C: .4byte 0x03005B60 +_0816E630: + ldrh r1, [r4, #0x20] + movs r2, #0x20 + ldrsh r0, [r4, r2] + cmp r0, #0x77 + bgt _0816E63E + subs r0, r1, #3 + b _0816E640 +_0816E63E: + adds r0, r1, #3 +_0816E640: + strh r0, [r4, #0x20] + ldrh r1, [r4, #0x22] + movs r2, #0x22 + ldrsh r0, [r4, r2] + cmp r0, #0x4f + bgt _0816E650 + subs r0, r1, #3 + b _0816E652 +_0816E650: + adds r0, r1, #3 +_0816E652: + strh r0, [r4, #0x22] + ldrh r0, [r4, #0x22] + subs r0, #0x14 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x8c + bls _0816E666 + adds r0, r4, #0 + bl DestroySprite +_0816E666: + pop {r4} + pop {r0} + bx r0 + thumb_func_end SpriteCB_IntroKyogreBubbles + + thumb_func_start Task_IntroLoadClouds1 +Task_IntroLoadClouds1: @ 0x0816E66C + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r0, #0x50 + movs r1, #0x87 + bl SetGpuReg + ldr r1, _0816E710 + movs r0, #0x52 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0x1f + bl SetGpuReg + movs r1, #0xb0 + lsls r1, r1, #7 + movs r0, #8 + bl SetGpuReg + ldr r1, _0816E714 + movs r0, #0xa + bl SetGpuReg + ldr r1, _0816E718 + movs r0, #0xc + bl SetGpuReg + movs r1, #0xdd + lsls r1, r1, #6 + movs r0, #0 + bl SetGpuReg + movs r0, #0x10 + movs r1, #0x50 + bl SetGpuReg + movs r0, #0x12 + movs r1, #0 + bl SetGpuReg + ldr r1, _0816E71C + movs r0, #0x14 + bl SetGpuReg + movs r0, #0x16 + movs r1, #0 + bl SetGpuReg + movs r0, #0x18 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1a + movs r1, #0 + bl SetGpuReg + ldr r4, _0816E720 + movs r1, #0xc0 + lsls r1, r1, #0x13 + adds r0, r4, #0 + bl LZDecompressWram + ldr r1, _0816E724 + adds r0, r4, #0 + bl LZDecompressWram + ldr r0, _0816E728 + ldr r1, _0816E72C + bl LZDecompressWram + ldr r1, _0816E730 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0816E734 + str r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0816E710: .4byte 0x00001F1F +_0816E714: .4byte 0x00005A04 +_0816E718: .4byte 0x00001C06 +_0816E71C: .4byte 0x0000FFB0 +_0816E720: .4byte 0x08D8AA38 +_0816E724: .4byte 0x06004000 +_0816E728: .4byte 0x08D8B6CC +_0816E72C: .4byte 0x0600E000 +_0816E730: .4byte 0x03005B60 +_0816E734: .4byte 0x0816E739 + thumb_func_end Task_IntroLoadClouds1 + + thumb_func_start Task_IntroLoadClouds2 +Task_IntroLoadClouds2: @ 0x0816E738 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _0816E764 + ldr r1, _0816E768 + bl LZDecompressWram + ldr r0, _0816E76C + ldr r1, _0816E770 + bl LZDecompressWram + ldr r1, _0816E774 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0816E778 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816E764: .4byte 0x08D8B164 +_0816E768: .4byte 0x0600C000 +_0816E76C: .4byte 0x08D8B424 +_0816E770: .4byte 0x0600D000 +_0816E774: .4byte 0x03005B60 +_0816E778: .4byte 0x0816E77D + thumb_func_end Task_IntroLoadClouds2 + + thumb_func_start Task_IntroLoadClouds3 +Task_IntroLoadClouds3: @ 0x0816E77C + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + ldr r1, _0816E7B8 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0816E7BC + str r1, [r0] + movs r1, #0 + strh r1, [r0, #8] + movs r1, #0x10 + strh r1, [r0, #0x14] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816E7B8: .4byte 0x03005B60 +_0816E7BC: .4byte 0x0816E7C1 + thumb_func_end Task_IntroLoadClouds3 + + thumb_func_start Task_IntroCloudScene +Task_IntroCloudScene: @ 0x0816E7C0 + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r5, r1, #3 + ldr r6, _0816E804 + adds r4, r5, r6 + ldrh r1, [r4, #0xc] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x10 + bl SetGpuReg + ldrh r1, [r4, #0xc] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + rsbs r1, r1, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x14 + bl SetGpuReg + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0816E808 + cmp r0, #1 + beq _0816E83C + b _0816E88A + .align 2, 0 +_0816E804: .4byte 0x03005B68 +_0816E808: + ldrh r0, [r4, #0xc] + subs r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0816E88A + movs r0, #2 + rsbs r0, r0, #0 + ldr r1, _0816E838 + str r1, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + movs r2, #0xa0 + lsls r2, r2, #7 + adds r0, r2, #0 + strh r0, [r4, #0xc] + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + b _0816E88A + .align 2, 0 +_0816E838: .4byte 0x0000FFFF +_0816E83C: + movs r0, #0xc + ldrsh r1, [r4, r0] + movs r0, #0xa0 + lsls r0, r0, #6 + cmp r1, r0 + bne _0816E858 + ldr r0, _0816E86C + ldr r1, _0816E870 + str r1, [sp] + movs r1, #3 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade +_0816E858: + ldrh r1, [r4, #0xc] + movs r2, #0xc + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _0816E874 + adds r0, r1, #0 + subs r0, #0x80 + strh r0, [r4, #0xc] + b _0816E88A + .align 2, 0 +_0816E86C: .4byte 0x0000FFFE +_0816E870: .4byte 0x00002949 +_0816E874: + ldr r0, _0816E894 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0816E88A + adds r0, r6, #0 + subs r0, #8 + adds r0, r5, r0 + ldr r1, _0816E898 + str r1, [r0] +_0816E88A: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0816E894: .4byte 0x02037C74 +_0816E898: .4byte 0x0816E89D + thumb_func_end Task_IntroCloudScene + + thumb_func_start Task_IntroLoadRayquazaLightningScene +Task_IntroLoadRayquazaLightningScene: @ 0x0816E89C + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _0816E8FC + ldr r1, _0816E900 + bl LZDecompressWram + ldr r0, _0816E904 + ldr r1, _0816E908 + bl LZDecompressWram + ldr r0, _0816E90C + ldr r1, _0816E910 + bl LZDecompressWram + ldr r0, _0816E914 + movs r1, #0xc0 + lsls r1, r1, #0x13 + bl LZDecompressWram + movs r1, #0xd5 + lsls r1, r1, #6 + movs r0, #0 + bl SetGpuReg + ldr r1, _0816E918 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0816E91C + str r1, [r0] + movs r2, #0 + strh r2, [r0, #8] + movs r1, #1 + strh r1, [r0, #0x14] + strh r2, [r0, #0x16] + ldr r0, _0816E920 + bl LoadCompressedSpriteSheetUsingHeap + ldr r0, _0816E924 + bl LoadSpritePalettes + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816E8FC: .4byte 0x08D8C150 +_0816E900: .4byte 0x0600E000 +_0816E904: .4byte 0x08D8CCAC +_0816E908: .4byte 0x0600C000 +_0816E90C: .4byte 0x08D8BA58 +_0816E910: .4byte 0x06004000 +_0816E914: .4byte 0x08D8C81C +_0816E918: .4byte 0x03005B60 +_0816E91C: .4byte 0x0816E929 +_0816E920: .4byte 0x085C5CA8 +_0816E924: .4byte 0x085C5CB8 + thumb_func_end Task_IntroLoadRayquazaLightningScene + + thumb_func_start Task_IntroRayquazaLightningScene +Task_IntroRayquazaLightningScene: @ 0x0816E928 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r2, _0816E94C + adds r6, r1, r2 + movs r3, #0 + ldrsh r0, [r6, r3] + cmp r0, #1 + beq _0816E9C4 + cmp r0, #1 + bgt _0816E950 + cmp r0, #0 + beq _0816E956 + b _0816EA46 + .align 2, 0 +_0816E94C: .4byte 0x03005B68 +_0816E950: + cmp r0, #2 + beq _0816EA30 + b _0816EA46 +_0816E956: + ldrh r0, [r6, #0xc] + subs r0, #1 + strh r0, [r6, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0816EA46 + ldr r4, _0816E9BC + adds r0, r4, #0 + movs r1, #0xc8 + movs r2, #0x30 + movs r3, #0 + bl CreateSprite + adds r0, r4, #0 + movs r1, #0xc8 + movs r2, #0x50 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r5, _0816E9C0 + adds r0, r0, r5 + movs r1, #1 + bl StartSpriteAnim + adds r0, r4, #0 + movs r1, #0xc8 + movs r2, #0x70 + movs r3, #2 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #2 + bl StartSpriteAnim + ldrh r0, [r6] + adds r0, #1 + strh r0, [r6] + movs r0, #0x48 + strh r0, [r6, #0xc] + b _0816EA46 + .align 2, 0 +_0816E9BC: .4byte 0x085C5D00 +_0816E9C0: .4byte 0x020205AC +_0816E9C4: + ldrh r0, [r6, #0xc] + subs r0, #1 + strh r0, [r6, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0816EA46 + ldr r4, _0816EA28 + adds r0, r4, #0 + movs r1, #0x28 + movs r2, #0x30 + movs r3, #0 + bl CreateSprite + adds r0, r4, #0 + movs r1, #0x28 + movs r2, #0x50 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r5, _0816EA2C + adds r0, r0, r5 + movs r1, #1 + bl StartSpriteAnim + adds r0, r4, #0 + movs r1, #0x28 + movs r2, #0x70 + movs r3, #2 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #2 + bl StartSpriteAnim + ldrh r0, [r6] + adds r0, #1 + strh r0, [r6] + movs r0, #0x30 + strh r0, [r6, #0xc] + b _0816EA46 + .align 2, 0 +_0816EA28: .4byte 0x085C5D00 +_0816EA2C: .4byte 0x020205AC +_0816EA30: + ldrh r0, [r6, #0xc] + subs r0, #1 + strh r0, [r6, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0816EA46 + adds r0, r2, #0 + subs r0, #8 + adds r0, r1, r0 + ldr r1, _0816EA4C + str r1, [r0] +_0816EA46: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0816EA4C: .4byte 0x0816EB05 + thumb_func_end Task_IntroRayquazaLightningScene + + thumb_func_start SpriteCB_IntroRayquazaLightning +SpriteCB_IntroRayquazaLightning: @ 0x0816EA50 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0816EA6C + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] +_0816EA6C: + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _0816EA90 + cmp r0, #1 + bgt _0816EA7E + cmp r0, #0 + beq _0816EA84 + b _0816EAF6 +_0816EA7E: + cmp r0, #2 + beq _0816EAC0 + b _0816EAF6 +_0816EA84: + movs r0, #0xe1 + lsls r0, r0, #1 + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] +_0816EA90: + movs r1, #0x30 + ldrsh r0, [r4, r1] + ldr r1, _0816EAFC + adds r0, r0, r1 + ldr r1, _0816EB00 + movs r2, #1 + bl CpuSet + ldrh r0, [r4, #0x30] + adds r0, #2 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + movs r1, #0xe7 + lsls r1, r1, #0x11 + cmp r0, r1 + bne _0816EAF6 + movs r0, #0xe6 + lsls r0, r0, #1 + strh r0, [r4, #0x30] + movs r0, #4 + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] +_0816EAC0: + ldrh r0, [r4, #0x32] + subs r0, #1 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0816EAF6 + movs r0, #4 + strh r0, [r4, #0x32] + movs r1, #0x30 + ldrsh r0, [r4, r1] + ldr r1, _0816EAFC + adds r0, r0, r1 + ldr r1, _0816EB00 + movs r2, #1 + bl CpuSet + ldrh r0, [r4, #0x30] + subs r0, #2 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + movs r1, #0xe0 + lsls r1, r1, #0x11 + cmp r0, r1 + bne _0816EAF6 + adds r0, r4, #0 + bl DestroySprite +_0816EAF6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816EAFC: .4byte 0x08D85CB4 +_0816EB00: .4byte 0x0203786E + thumb_func_end SpriteCB_IntroRayquazaLightning + + thumb_func_start Task_IntroLoadRayquazaGlowScene +Task_IntroLoadRayquazaGlowScene: @ 0x0816EB04 + push {r4, r5, r6, lr} + sub sp, #4 + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _0816EB74 + bl LoadCompressedSpriteSheet + ldr r0, _0816EB78 + bl LoadSpritePalettes + movs r1, #0xd5 + lsls r1, r1, #6 + movs r0, #0 + bl SetGpuReg + ldr r6, _0816EB7C + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + adds r4, r4, r6 + ldr r0, _0816EB80 + str r0, [r4] + ldr r0, _0816EB84 + ldr r1, _0816EB88 + str r1, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + movs r0, #0 + strh r0, [r4, #8] + movs r0, #0xa8 + strh r0, [r4, #0xa] + ldr r1, _0816EB8C + strh r1, [r4, #0xc] + ldr r0, _0816EB90 + strh r0, [r4, #0xe] + strh r1, [r4, #0x10] + ldr r0, _0816EB94 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r6 + strh r5, [r1, #0x10] + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0816EB74: .4byte 0x085C60FC +_0816EB78: .4byte 0x085C610C +_0816EB7C: .4byte 0x03005B60 +_0816EB80: .4byte 0x0816EB99 +_0816EB84: .4byte 0x0000FFDE +_0816EB88: .4byte 0x00002949 +_0816EB8C: .4byte 0x0000FFF0 +_0816EB90: .4byte 0x0000FF78 +_0816EB94: .4byte 0x0816EC8D + thumb_func_end Task_IntroLoadRayquazaGlowScene + + thumb_func_start Task_IntroRayquazaGlowScene_0 +Task_IntroRayquazaGlowScene_0: @ 0x0816EB98 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r4, r1, #3 + ldr r5, _0816EBD4 + adds r2, r4, r5 + ldrh r0, [r2, #0xe] + movs r3, #1 + ands r0, r3 + cmp r0, #0 + bne _0816EBBA + ldrh r0, [r2, #0xc] + movs r1, #2 + eors r0, r1 + strh r0, [r2, #0xc] +_0816EBBA: + ldrh r0, [r2, #0xe] + adds r0, #1 + strh r0, [r2, #0xe] + movs r6, #0 + ldrsh r1, [r2, r6] + cmp r1, #1 + beq _0816EC12 + cmp r1, #1 + bgt _0816EBD8 + cmp r1, #0 + beq _0816EBE2 + b _0816EC6A + .align 2, 0 +_0816EBD4: .4byte 0x03005B68 +_0816EBD8: + cmp r1, #2 + beq _0816EC1E + cmp r1, #3 + beq _0816EC54 + b _0816EC6A +_0816EBE2: + ands r0, r3 + cmp r0, #0 + beq _0816EC00 + ldrh r0, [r2, #2] + subs r0, #2 + strh r0, [r2, #2] + ldrh r0, [r2, #4] + adds r0, #1 + strh r0, [r2, #4] + ldrh r0, [r2, #6] + adds r0, #2 + strh r0, [r2, #6] + ldrh r0, [r2, #8] + adds r0, #1 + strh r0, [r2, #8] +_0816EC00: + movs r1, #2 + ldrsh r0, [r2, r1] + cmp r0, #0x68 + bne _0816EC6A + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + strh r3, [r2, #0xa] + b _0816EC6A +_0816EC12: + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + movs r0, #4 + strh r0, [r2, #0xa] + b _0816EC6A +_0816EC1E: + ldrh r0, [r2, #2] + adds r0, #4 + strh r0, [r2, #2] + ldrh r0, [r2, #4] + subs r0, #2 + strh r0, [r2, #4] + ldrh r0, [r2, #6] + subs r0, #4 + strh r0, [r2, #6] + ldrh r0, [r2, #8] + subs r0, #2 + strh r0, [r2, #8] + ldr r0, _0816EC50 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0816EC6A + movs r0, #0x8c + strh r0, [r2, #0xa] + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + b _0816EC6A + .align 2, 0 +_0816EC50: .4byte 0x02037C74 +_0816EC54: + ldrh r0, [r2, #0xa] + subs r0, #1 + strh r0, [r2, #0xa] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0816EC6A + adds r0, r5, #0 + subs r0, #8 + adds r0, r4, r0 + ldr r1, _0816EC70 + str r1, [r0] +_0816EC6A: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0816EC70: .4byte 0x0816EC75 + thumb_func_end Task_IntroRayquazaGlowScene_0 + + thumb_func_start Task_EndIntroMovie +Task_EndIntroMovie: @ 0x0816EC74 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + ldr r0, _0816EC88 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_0816EC88: .4byte 0x0816CA65 + thumb_func_end Task_EndIntroMovie + + thumb_func_start Task_IntroRayquazaGlowScene_1 +Task_IntroRayquazaGlowScene_1: @ 0x0816EC8C + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _0816ECB8 + adds r5, r0, r1 + ldrh r0, [r5, #4] + adds r0, #1 + strh r0, [r5, #4] + movs r1, #0 + ldrsh r0, [r5, r1] + cmp r0, #5 + bls _0816ECAE + b _0816EE96 +_0816ECAE: + lsls r0, r0, #2 + ldr r1, _0816ECBC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0816ECB8: .4byte 0x03005B68 +_0816ECBC: .4byte 0x0816ECC0 +_0816ECC0: @ jump table + .4byte _0816ECD8 @ case 0 + .4byte _0816ED18 @ case 1 + .4byte _0816ED64 @ case 2 + .4byte _0816EDEE @ case 3 + .4byte _0816EE58 @ case 4 + .4byte _0816EE84 @ case 5 +_0816ECD8: + ldrh r1, [r5, #4] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0816ECFA + movs r2, #2 + ldrsh r0, [r5, r2] + lsls r0, r0, #1 + ldr r1, _0816ED10 + adds r0, r0, r1 + ldr r1, _0816ED14 + movs r2, #1 + bl CpuSet + ldrh r0, [r5, #2] + adds r0, #1 + strh r0, [r5, #2] +_0816ECFA: + movs r2, #2 + ldrsh r0, [r5, r2] + cmp r0, #6 + beq _0816ED04 + b _0816EE96 +_0816ED04: + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + movs r0, #0 + strh r0, [r5, #2] + b _0816ED54 + .align 2, 0 +_0816ED10: .4byte 0x08D85E56 +_0816ED14: .4byte 0x02037870 +_0816ED18: + ldrh r1, [r5, #6] + movs r2, #6 + ldrsh r0, [r5, r2] + cmp r0, #0 + bne _0816EDE8 + ldrh r1, [r5, #4] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0816ED44 + movs r1, #2 + ldrsh r0, [r5, r1] + lsls r0, r0, #1 + ldr r2, _0816ED5C + adds r0, r0, r2 + ldr r1, _0816ED60 + movs r2, #1 + bl CpuSet + ldrh r0, [r5, #2] + adds r0, #1 + strh r0, [r5, #2] +_0816ED44: + movs r1, #2 + ldrsh r0, [r5, r1] + cmp r0, #6 + beq _0816ED4E + b _0816EE96 +_0816ED4E: + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] +_0816ED54: + movs r0, #0xa + strh r0, [r5, #6] + b _0816EE96 + .align 2, 0 +_0816ED5C: .4byte 0x08D85E56 +_0816ED60: .4byte 0x02037864 +_0816ED64: + ldrh r1, [r5, #6] + movs r2, #6 + ldrsh r0, [r5, r2] + cmp r0, #0 + bne _0816EDE8 + ldrh r1, [r5, #4] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0816ED90 + movs r1, #2 + ldrsh r0, [r5, r1] + lsls r0, r0, #1 + ldr r2, _0816EDD8 + adds r0, r0, r2 + ldr r1, _0816EDDC + movs r2, #1 + bl CpuSet + ldrh r0, [r5, #2] + adds r0, #1 + strh r0, [r5, #2] +_0816ED90: + movs r1, #2 + ldrsh r0, [r5, r1] + cmp r0, #6 + beq _0816ED9A + b _0816EE96 +_0816ED9A: + ldr r0, _0816EDE0 + movs r1, #0x78 + movs r2, #0x58 + movs r3, #0xf + bl CreateSprite + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0x67 + bl PlaySE + ldr r1, _0816EDE4 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + adds r3, r0, #0 + adds r3, #0x3e + ldrb r1, [r3] + movs r2, #4 + orrs r1, r2 + strb r1, [r3] + ldrh r1, [r5, #8] + strh r1, [r0, #0x34] + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + movs r0, #0x10 + strh r0, [r5, #6] + b _0816EE96 + .align 2, 0 +_0816EDD8: .4byte 0x08D85E36 +_0816EDDC: .4byte 0x0203786C +_0816EDE0: .4byte 0x085C60E4 +_0816EDE4: .4byte 0x020205AC +_0816EDE8: + subs r0, r1, #1 + strh r0, [r5, #6] + b _0816EE96 +_0816EDEE: + ldrh r1, [r5, #4] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0816EE96 + ldrh r0, [r5, #6] + subs r0, #1 + adds r2, r0, #0 + strh r0, [r5, #6] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0816EE4C + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r3, _0816EE3C + movs r0, #0x50 + movs r1, #0x10 + bl BlendPalette + ldr r5, _0816EE40 + ldr r4, _0816EE44 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #1 + bl CpuSet + adds r1, r4, #0 + subs r1, #0xc + adds r0, r5, #0 + movs r2, #1 + bl CpuSet + ldr r0, _0816EE48 + subs r4, #4 + adds r1, r4, #0 + movs r2, #1 + bl CpuSet + b _0816EE96 + .align 2, 0 +_0816EE3C: .4byte 0x00002949 +_0816EE40: .4byte 0x08D85E60 +_0816EE44: .4byte 0x02037870 +_0816EE48: .4byte 0x08D85E40 +_0816EE4C: + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + movs r0, #0x35 + strh r0, [r5, #6] + b _0816EE96 +_0816EE58: + ldrh r0, [r5, #6] + subs r0, #1 + strh r0, [r5, #6] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0816EE96 + movs r0, #1 + rsbs r0, r0, #0 + ldr r1, _0816EE80 + str r1, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + b _0816EE96 + .align 2, 0 +_0816EE80: .4byte 0x00007FFF +_0816EE84: + ldr r0, _0816EEA0 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0816EE96 + adds r0, r2, #0 + bl DestroyTask +_0816EE96: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0816EEA0: .4byte 0x02037C74 + thumb_func_end Task_IntroRayquazaGlowScene_1 + + thumb_func_start intro_reset_and_hide_bgs +intro_reset_and_hide_bgs: @ 0x0816EEA4 + push {lr} + movs r0, #0 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1c + movs r1, #0 + bl SetGpuReg + movs r0, #0x1e + movs r1, #0 + bl SetGpuReg + movs r0, #0x18 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1a + movs r1, #0 + bl SetGpuReg + movs r0, #0x14 + movs r1, #0 + bl SetGpuReg + movs r0, #0x16 + movs r1, #0 + bl SetGpuReg + movs r0, #0x10 + movs r1, #0 + bl SetGpuReg + movs r0, #0x12 + movs r1, #0 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end intro_reset_and_hide_bgs + + thumb_func_start Task_IntroWaterDrops_1 +Task_IntroWaterDrops_1: @ 0x0816EF0C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _0816EF4C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _0816EF54 + cmp r0, #1 + ble _0816EF2C + cmp r0, #2 + beq _0816EFA0 +_0816EF2C: + movs r1, #0xfd + lsls r1, r1, #6 + movs r0, #0x50 + bl SetGpuReg + ldr r0, _0816EF50 + ldrh r1, [r0, #0x3e] + movs r0, #0x52 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + movs r0, #0x40 + b _0816EF90 + .align 2, 0 +_0816EF4C: .4byte 0x03005B60 +_0816EF50: .4byte 0x0851AC0C +_0816EF54: + ldrh r1, [r4, #0xa] + movs r2, #0xa + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _0816EF84 + subs r0, r1, #1 + strh r0, [r4, #0xa] + movs r1, #0xa + ldrsh r0, [r4, r1] + lsrs r1, r0, #0x1f + adds r0, r0, r1 + movs r1, #0xff + lsls r1, r1, #1 + ldr r2, _0816EF80 + ands r0, r1 + adds r0, r0, r2 + ldrh r1, [r0] + movs r0, #0x52 + bl SetGpuReg + b _0816EFBE + .align 2, 0 +_0816EF80: .4byte 0x0851AC0C +_0816EF84: + ldr r0, _0816EF9C + ldrh r1, [r0] + movs r0, #0x52 + bl SetGpuReg + movs r0, #0x10 +_0816EF90: + strh r0, [r4, #0xa] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _0816EFBE + .align 2, 0 +_0816EF9C: .4byte 0x0851AC0C +_0816EFA0: + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + adds r0, r5, #0 + bl DestroyTask +_0816EFBE: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end Task_IntroWaterDrops_1 + + thumb_func_start Task_IntroWaterDrops_2 +Task_IntroWaterDrops_2: @ 0x0816EFC4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _0816F004 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _0816F00C + cmp r0, #1 + ble _0816EFE4 + cmp r0, #2 + beq _0816F058 +_0816EFE4: + movs r1, #0xfd + lsls r1, r1, #6 + movs r0, #0x50 + bl SetGpuReg + ldr r0, _0816F008 + ldrh r1, [r0] + movs r0, #0x52 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + movs r0, #0 + b _0816F048 + .align 2, 0 +_0816F004: .4byte 0x03005B60 +_0816F008: .4byte 0x0851AC0C +_0816F00C: + ldrh r1, [r4, #0xa] + movs r2, #0xa + ldrsh r0, [r4, r2] + cmp r0, #0x3d + bgt _0816F03C + adds r0, r1, #1 + strh r0, [r4, #0xa] + movs r1, #0xa + ldrsh r0, [r4, r1] + lsrs r1, r0, #0x1f + adds r0, r0, r1 + movs r1, #0xff + lsls r1, r1, #1 + ldr r2, _0816F038 + ands r0, r1 + adds r0, r0, r2 + ldrh r1, [r0] + movs r0, #0x52 + bl SetGpuReg + b _0816F086 + .align 2, 0 +_0816F038: .4byte 0x0851AC0C +_0816F03C: + ldr r0, _0816F054 + ldrh r1, [r0, #0x3e] + movs r0, #0x52 + bl SetGpuReg + movs r0, #0x10 +_0816F048: + strh r0, [r4, #0xa] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _0816F086 + .align 2, 0 +_0816F054: .4byte 0x0851AC0C +_0816F058: + ldrh r1, [r4, #0xa] + movs r2, #0xa + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _0816F068 + subs r0, r1, #1 + strh r0, [r4, #0xa] + b _0816F086 +_0816F068: + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + adds r0, r5, #0 + bl DestroyTask +_0816F086: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end Task_IntroWaterDrops_2 + + thumb_func_start PanFadeAndZoomScreen +PanFadeAndZoomScreen: @ 0x0816F08C + push {r4, lr} + sub sp, #0x24 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + movs r4, #0x80 + lsls r4, r4, #8 + str r4, [sp] + str r4, [sp, #4] + mov r4, sp + strh r0, [r4, #8] + mov r0, sp + strh r1, [r0, #0xa] + strh r2, [r0, #0xc] + strh r2, [r0, #0xe] + strh r3, [r0, #0x10] + add r4, sp, #0x14 + adds r1, r4, #0 + movs r2, #1 + bl BgAffineSet + ldrh r1, [r4] + movs r0, #0x20 + bl SetGpuReg + ldrh r1, [r4, #2] + movs r0, #0x22 + bl SetGpuReg + ldrh r1, [r4, #4] + movs r0, #0x24 + bl SetGpuReg + ldrh r1, [r4, #6] + movs r0, #0x26 + bl SetGpuReg + ldrh r1, [r4, #8] + movs r0, #0x28 + bl SetGpuReg + ldrh r1, [r4, #0xa] + movs r0, #0x2a + bl SetGpuReg + ldrh r1, [r4, #0xc] + movs r0, #0x2c + bl SetGpuReg + ldrh r1, [r4, #0xe] + movs r0, #0x2e + bl SetGpuReg + add sp, #0x24 + pop {r4} + pop {r0} + bx r0 + thumb_func_end PanFadeAndZoomScreen + + thumb_func_start sub_0816F0FC +sub_0816F0FC: @ 0x0816F0FC + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0xbf + ble _0816F178 + ldrh r1, [r4, #0x34] + movs r2, #0x34 + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _0816F11A + subs r0, r1, #1 + strh r0, [r4, #0x34] + b _0816F17E +_0816F11A: + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldrh r0, [r4, #0x30] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #0x32] + str r1, [sp] + movs r2, #0 + movs r3, #0 + bl SetOamMatrix + movs r0, #0x32 + ldrsh r1, [r4, r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #5 + subs r0, r0, r1 + movs r1, #0x64 + bl __divsi3 + strh r0, [r4, #0x32] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r0, r1, #0 + subs r0, #0xc0 + cmp r0, #0 + bge _0816F15C + adds r0, #0x7f +_0816F15C: + asrs r0, r0, #7 + adds r0, #9 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xf + bls _0816F16A + movs r0, #0xf +_0816F16A: + lsls r2, r0, #4 + ldrb r1, [r4, #5] + movs r0, #0xf + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #5] + b _0816F17E +_0816F178: + adds r0, r4, #0 + bl DestroySprite +_0816F17E: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0816F0FC + + thumb_func_start sub_0816F188 +sub_0816F188: @ 0x0816F188 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0816F1FC + movs r1, #0x3c + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r3, #0x3c + ldrsh r0, [r1, r3] + cmp r0, #0 + beq _0816F204 + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r4, #0x24] + ldrh r1, [r4, #0x20] + adds r0, r0, r1 + strh r0, [r4, #0x20] + ldrh r0, [r4, #0x26] + ldrh r3, [r4, #0x22] + adds r0, r0, r3 + strh r0, [r4, #0x22] + adds r0, r4, #0 + movs r1, #3 + bl StartSpriteAnim + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r4, #0x32] + ldrh r1, [r4, #0x30] + movs r0, #3 + ands r0, r1 + lsls r0, r0, #3 + strh r0, [r4, #0x34] + ldr r0, _0816F200 + str r0, [r4, #0x1c] + ldrb r1, [r4, #1] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #1] + ldrb r0, [r4, #3] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #3] + adds r0, r4, #0 + movs r1, #1 + movs r2, #3 + movs r3, #2 + bl CalcCenterToCornerVec + b _0816F230 + .align 2, 0 +_0816F1FC: .4byte 0x020205AC +_0816F200: .4byte 0x0816F0FD +_0816F204: + ldrh r0, [r1, #0x24] + strh r0, [r4, #0x24] + movs r0, #0x3c + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0, #0x26] + strh r0, [r4, #0x26] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0, #0x20] + strh r0, [r4, #0x20] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0, #0x22] + strh r0, [r4, #0x22] +_0816F230: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0816F188 + + thumb_func_start sub_0816F238 +sub_0816F238: @ 0x0816F238 + push {lr} + adds r1, r0, #0 + movs r2, #0x2e + ldrsh r0, [r1, r2] + cmp r0, #0 + beq _0816F248 + ldr r0, _0816F24C + str r0, [r1, #0x1c] +_0816F248: + pop {r0} + bx r0 + .align 2, 0 +_0816F24C: .4byte 0x0816F251 + thumb_func_end sub_0816F238 + + thumb_func_start sub_0816F250 +sub_0816F250: @ 0x0816F250 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r7, r0, #0 + ldrh r4, [r7, #0x20] + movs r1, #0x20 + ldrsh r0, [r7, r1] + cmp r0, #0x74 + bgt _0816F290 + ldrh r0, [r7, #0x26] + ldrh r1, [r7, #0x22] + adds r0, r0, r1 + movs r1, #0 + strh r0, [r7, #0x22] + strh r1, [r7, #0x26] + adds r0, r4, #4 + strh r0, [r7, #0x20] + ldr r0, _0816F288 + strh r0, [r7, #0x24] + movs r0, #0x80 + strh r0, [r7, #0x36] + ldr r0, _0816F28C + str r0, [r7, #0x1c] + b _0816F382 + .align 2, 0 +_0816F288: .4byte 0x0000FFFC +_0816F28C: .4byte 0x0816F399 +_0816F290: + ldrh r1, [r7, #0x36] + ldr r5, _0816F394 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r5 + ldrh r2, [r0] + adds r0, r1, #0 + adds r0, #0x40 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r5 + ldrh r3, [r0] + adds r1, #2 + strh r1, [r7, #0x36] + lsls r2, r2, #0x10 + asrs r0, r2, #0x10 + cmp r0, #0 + bge _0816F2B6 + adds r0, #0x1f +_0816F2B6: + asrs r0, r0, #5 + strh r0, [r7, #0x26] + subs r0, r4, #1 + strh r0, [r7, #0x20] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0816F2CC + ldrh r0, [r7, #0x22] + adds r0, #1 + strh r0, [r7, #0x22] +_0816F2CC: + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + rsbs r0, r0, #0 + cmp r0, #0 + bge _0816F2D8 + adds r0, #0xf +_0816F2D8: + lsls r1, r0, #0xc + lsrs r1, r1, #0x10 + ldrh r4, [r7, #0x32] + ldrh r3, [r7, #0x34] + adds r0, r1, #0 + subs r0, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r5 + ldrh r2, [r0] + adds r1, #0x30 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x17 + adds r1, r1, r5 + movs r0, #0 + ldrsh r1, [r1, r0] + adds r0, r1, #0 + muls r0, r4, r0 + cmp r0, #0 + bge _0816F302 + adds r0, #0xff +_0816F302: + lsls r0, r0, #8 + lsrs r0, r0, #0x10 + mov r8, r0 + lsls r0, r2, #0x10 + asrs r2, r0, #0x10 + rsbs r0, r2, #0 + muls r0, r3, r0 + cmp r0, #0 + bge _0816F316 + adds r0, #0xff +_0816F316: + lsls r0, r0, #8 + lsrs r0, r0, #0x10 + mov sl, r0 + adds r0, r2, #0 + muls r0, r4, r0 + cmp r0, #0 + bge _0816F326 + adds r0, #0xff +_0816F326: + lsls r0, r0, #8 + lsrs r5, r0, #0x10 + adds r0, r1, #0 + muls r0, r3, r0 + cmp r0, #0 + bge _0816F334 + adds r0, #0xff +_0816F334: + lsls r6, r0, #8 + lsrs r6, r6, #0x10 + ldrh r0, [r7, #0x30] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r3, [sp] + adds r1, r4, #0 + movs r2, #0 + movs r3, #0 + bl SetOamMatrix + ldrh r0, [r7, #0x30] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r5 + mov r1, sl + lsls r5, r1, #0x10 + lsrs r3, r5, #0x10 + lsls r4, r6, #0x10 + str r6, [sp] + mov r1, r8 + mov r2, sb + bl SetOamMatrix + ldrh r0, [r7, #0x30] + adds r0, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r5, r5, #1 + lsrs r5, r5, #0x10 + lsls r4, r4, #1 + lsrs r4, r4, #0x10 + str r4, [sp] + mov r1, r8 + mov r2, sb + adds r3, r5, #0 + bl SetOamMatrix +_0816F382: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0816F394: .4byte 0x082FA8CC + thumb_func_end sub_0816F250 + + thumb_func_start sub_0816F398 +sub_0816F398: @ 0x0816F398 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + ldrh r0, [r4, #0x30] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #0x3a] + adds r1, #0x40 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp] + movs r2, #0 + movs r3, #0 + bl SetOamMatrix + ldrh r0, [r4, #0x30] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #0x3a] + adds r1, #0x40 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp] + movs r2, #0 + movs r3, #0 + bl SetOamMatrix + ldrh r0, [r4, #0x30] + adds r0, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #0x3a] + adds r1, #0x40 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp] + movs r2, #0 + movs r3, #0 + bl SetOamMatrix + ldrh r1, [r4, #0x36] + movs r2, #0x36 + ldrsh r0, [r4, r2] + cmp r0, #0x40 + beq _0816F430 + adds r0, r1, #0 + subs r0, #8 + strh r0, [r4, #0x36] + ldrh r0, [r4, #0x36] + adds r1, r0, #0 + ldr r2, _0816F42C + adds r0, #0x40 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r2 + movs r3, #0 + ldrsh r0, [r0, r3] + cmp r0, #0 + bge _0816F412 + adds r0, #0x3f +_0816F412: + asrs r0, r0, #6 + strh r0, [r4, #0x24] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r2 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bge _0816F426 + adds r0, #0x3f +_0816F426: + asrs r0, r0, #6 + strh r0, [r4, #0x26] + b _0816F438 + .align 2, 0 +_0816F42C: .4byte 0x082FA8CC +_0816F430: + movs r0, #0 + strh r0, [r4, #0x36] + ldr r0, _0816F440 + str r0, [r4, #0x1c] +_0816F438: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816F440: .4byte 0x0816F445 + thumb_func_end sub_0816F398 + + thumb_func_start sub_0816F444 +sub_0816F444: @ 0x0816F444 + push {r4, lr} + adds r1, r0, #0 + movs r2, #0x2e + ldrsh r0, [r1, r2] + cmp r0, #2 + beq _0816F4A4 + ldrh r0, [r1, #0x36] + adds r0, #8 + strh r0, [r1, #0x36] + ldr r3, _0816F4A0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r3 + movs r4, #0 + ldrsh r0, [r0, r4] + cmp r0, #0 + bge _0816F468 + adds r0, #0xf +_0816F468: + asrs r0, r0, #4 + adds r0, #0x40 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + adds r0, r2, #0 + adds r0, #0x40 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r3 + movs r4, #0 + ldrsh r0, [r0, r4] + cmp r0, #0 + bge _0816F484 + adds r0, #0x3f +_0816F484: + asrs r0, r0, #6 + strh r0, [r1, #0x24] + lsls r0, r2, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r3 + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r0, #0 + bge _0816F498 + adds r0, #0x3f +_0816F498: + asrs r0, r0, #6 + strh r0, [r1, #0x26] + b _0816F4A8 + .align 2, 0 +_0816F4A0: .4byte 0x082FA8CC +_0816F4A4: + ldr r0, _0816F4B0 + str r0, [r1, #0x1c] +_0816F4A8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816F4B0: .4byte 0x0816F4B5 + thumb_func_end sub_0816F444 + + thumb_func_start SpriteCB_WaterDropFall_2 +SpriteCB_WaterDropFall_2: @ 0x0816F4B4 + push {r4, lr} + adds r4, r0, #0 + ldrh r2, [r4, #0x22] + movs r0, #0x22 + ldrsh r1, [r4, r0] + movs r3, #0x38 + ldrsh r0, [r4, r3] + cmp r1, r0 + bge _0816F4CC + adds r0, r2, #4 + strh r0, [r4, #0x22] + b _0816F528 +_0816F4CC: + movs r0, #1 + strh r0, [r4, #0x3c] + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r4, #0x24] + ldrh r1, [r4, #0x20] + adds r0, r0, r1 + strh r0, [r4, #0x20] + ldrh r0, [r4, #0x26] + ldrh r3, [r4, #0x22] + adds r0, r0, r3 + strh r0, [r4, #0x22] + adds r0, r4, #0 + movs r1, #3 + bl StartSpriteAnim + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r4, #0x32] + ldrh r1, [r4, #0x30] + movs r0, #3 + ands r0, r1 + lsls r0, r0, #3 + strh r0, [r4, #0x34] + ldr r0, _0816F530 + str r0, [r4, #0x1c] + ldrb r1, [r4, #1] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #1] + ldrb r0, [r4, #3] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #3] + adds r0, r4, #0 + movs r1, #1 + movs r2, #3 + movs r3, #2 + bl CalcCenterToCornerVec +_0816F528: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816F530: .4byte 0x0816F0FD + thumb_func_end SpriteCB_WaterDropFall_2 + + thumb_func_start SpriteCB_WaterDropFall +SpriteCB_WaterDropFall: @ 0x0816F534 + push {r4, lr} + adds r4, r0, #0 + ldrh r2, [r4, #0x22] + movs r0, #0x22 + ldrsh r1, [r4, r0] + movs r3, #0x38 + ldrsh r0, [r4, r3] + cmp r1, r0 + bge _0816F54C + adds r0, r2, #4 + strh r0, [r4, #0x22] + b _0816F5A8 +_0816F54C: + movs r0, #1 + strh r0, [r4, #0x3c] + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r4, #0x24] + ldrh r1, [r4, #0x20] + adds r0, r0, r1 + strh r0, [r4, #0x20] + ldrh r0, [r4, #0x26] + ldrh r3, [r4, #0x22] + adds r0, r0, r3 + strh r0, [r4, #0x22] + adds r0, r4, #0 + movs r1, #3 + bl StartSpriteAnim + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r4, #0x32] + ldrh r1, [r4, #0x30] + movs r0, #3 + ands r0, r1 + lsls r0, r0, #3 + strh r0, [r4, #0x34] + ldr r0, _0816F5B0 + str r0, [r4, #0x1c] + ldrb r1, [r4, #1] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #1] + ldrb r0, [r4, #3] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #3] + adds r0, r4, #0 + movs r1, #1 + movs r2, #3 + movs r3, #2 + bl CalcCenterToCornerVec +_0816F5A8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816F5B0: .4byte 0x0816F0FD + thumb_func_end SpriteCB_WaterDropFall + + thumb_func_start CreateWaterDrop +CreateWaterDrop: @ 0x0816F5B4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r6, [sp, #0x34] + ldr r0, [sp, #0x38] + mov r8, r0 + lsls r4, r4, #0x10 + lsls r5, r5, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + str r2, [sp, #8] + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + str r3, [sp, #0xc] + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + mov r1, r8 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + ldr r0, _0816F670 + lsrs r2, r4, #0x10 + mov sl, r2 + asrs r4, r4, #0x10 + lsrs r1, r5, #0x10 + str r1, [sp, #4] + asrs r5, r5, #0x10 + adds r1, r4, #0 + adds r2, r5, #0 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r2, _0816F674 + mov sb, r2 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r5, r0, #2 + adds r4, r5, r2 + movs r0, #0 + strh r0, [r4, #0x2e] + strh r0, [r4, #0x3c] + mov r0, sp + ldrh r0, [r0, #0xc] + strh r0, [r4, #0x30] + mov r1, sp + ldrh r1, [r1, #8] + strh r1, [r4, #0x32] + mov r2, sp + ldrh r2, [r2, #8] + strh r2, [r4, #0x34] + strh r6, [r4, #0x38] + mov r0, sp + ldrh r0, [r0, #8] + strh r0, [r4, #0x3a] + ldrb r0, [r4, #1] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #1] + movs r0, #0x1f + ldr r1, [sp, #0xc] + ands r1, r0 + lsls r1, r1, #1 + ldrb r2, [r4, #3] + movs r0, #0x3f + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #3] + adds r0, r4, #0 + movs r1, #0 + movs r2, #2 + movs r3, #2 + bl CalcCenterToCornerVec + adds r0, r4, #0 + movs r1, #2 + bl StartSpriteAnim + mov r1, r8 + cmp r1, #0 + bne _0816F67C + mov r0, sb + adds r0, #0x1c + adds r0, r5, r0 + ldr r1, _0816F678 + b _0816F684 + .align 2, 0 +_0816F670: .4byte 0x085C5E18 +_0816F674: .4byte 0x020205AC +_0816F678: .4byte 0x0816F239 +_0816F67C: + mov r0, sb + adds r0, #0x1c + adds r0, r5, r0 + ldr r1, _0816F7A4 +_0816F684: + str r1, [r0] + str r7, [sp, #0x10] + mov r2, sl + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + mov sl, r2 + ldr r0, [sp, #4] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov r8, r0 + ldr r0, _0816F7A8 + mov r1, sl + mov r2, r8 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r5, _0816F7AC + lsls r4, r7, #4 + adds r4, r4, r7 + lsls r4, r4, #2 + adds r0, r4, r5 + mov r1, sp + ldrh r1, [r1, #0x10] + strh r1, [r0, #0x3c] + ldr r2, [sp, #0xc] + adds r2, #1 + mov sb, r2 + strh r2, [r0, #0x30] + ldrb r1, [r0, #1] + movs r2, #3 + orrs r1, r2 + strb r1, [r0, #1] + mov r2, sb + movs r1, #0x1f + ands r2, r1 + lsls r2, r2, #1 + ldrb r3, [r0, #3] + movs r6, #0x3f + rsbs r6, r6, #0 + adds r1, r6, #0 + ands r1, r3 + orrs r1, r2 + strb r1, [r0, #3] + movs r1, #0 + movs r2, #2 + movs r3, #2 + bl CalcCenterToCornerVec + ldr r2, _0816F7B0 + adds r4, r4, r2 + ldr r0, _0816F7B4 + str r0, [r4] + ldr r0, _0816F7A8 + mov r1, sl + mov r2, r8 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r4, r7, #4 + adds r4, r4, r7 + lsls r4, r4, #2 + adds r5, r4, r5 + mov r1, sp + ldrh r1, [r1, #0x10] + strh r1, [r5, #0x3c] + ldr r2, [sp, #0xc] + adds r2, #2 + mov r8, r2 + strh r2, [r5, #0x30] + adds r0, r5, #0 + movs r1, #1 + bl StartSpriteAnim + ldrb r0, [r5, #1] + movs r1, #3 + orrs r0, r1 + strb r0, [r5, #1] + mov r0, r8 + movs r2, #0x1f + ands r0, r2 + lsls r0, r0, #1 + ldrb r1, [r5, #3] + ands r6, r1 + orrs r6, r0 + strb r6, [r5, #3] + adds r0, r5, #0 + movs r1, #0 + movs r2, #2 + movs r3, #2 + bl CalcCenterToCornerVec + ldr r0, _0816F7B0 + adds r4, r4, r0 + ldr r1, _0816F7B4 + str r1, [r4] + ldr r2, [sp, #0xc] + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + ldr r5, [sp, #8] + adds r5, #0x20 + lsls r4, r5, #0x10 + lsrs r4, r4, #0x10 + str r4, [sp] + adds r1, r4, #0 + movs r2, #0 + movs r3, #0 + bl SetOamMatrix + mov r0, sb + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + str r4, [sp] + adds r1, r4, #0 + movs r2, #0 + movs r3, #0 + bl SetOamMatrix + mov r1, r8 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + lsls r5, r5, #0x11 + lsrs r5, r5, #0x10 + str r5, [sp] + mov r0, r8 + adds r1, r4, #0 + movs r2, #0 + movs r3, #0 + bl SetOamMatrix + ldr r0, [sp, #0x10] + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0816F7A4: .4byte 0x0816F535 +_0816F7A8: .4byte 0x085C5E18 +_0816F7AC: .4byte 0x020205AC +_0816F7B0: .4byte 0x020205C8 +_0816F7B4: .4byte 0x0816F189 + thumb_func_end CreateWaterDrop + + thumb_func_start SpriteCB_IntroGraphicsBicycle +SpriteCB_IntroGraphicsBicycle: @ 0x0816F7B8 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #4 + bhi _0816F846 + lsls r0, r0, #2 + ldr r1, _0816F7D0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0816F7D0: .4byte 0x0816F7D4 +_0816F7D4: @ jump table + .4byte _0816F7E8 @ case 0 + .4byte _0816F7F6 @ case 1 + .4byte _0816F814 @ case 2 + .4byte _0816F846 @ case 3 + .4byte _0816F834 @ case 4 +_0816F7E8: + adds r0, r4, #0 + movs r1, #0 + bl StartSpriteAnimIfDifferent + ldrh r0, [r4, #0x20] + subs r0, #1 + b _0816F844 +_0816F7F6: + adds r0, r4, #0 + movs r1, #0 + bl StartSpriteAnimIfDifferent + ldr r0, _0816F810 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _0816F88E + ldrh r0, [r4, #0x20] + adds r0, #1 + b _0816F844 + .align 2, 0 +_0816F810: .4byte 0x03005FE0 +_0816F814: + ldrh r2, [r4, #0x20] + movs r1, #0x20 + ldrsh r0, [r4, r1] + cmp r0, #0x78 + ble _0816F82A + ldr r0, _0816F830 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + beq _0816F852 +_0816F82A: + adds r0, r2, #1 + b _0816F844 + .align 2, 0 +_0816F830: .4byte 0x03005FE0 +_0816F834: + ldrh r2, [r4, #0x20] + movs r0, #0x20 + ldrsh r1, [r4, r0] + movs r0, #0x20 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0816F846 + subs r0, r2, #2 +_0816F844: + strh r0, [r4, #0x20] +_0816F846: + ldr r0, _0816F860 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _0816F88E +_0816F852: + movs r1, #0x26 + ldrsh r5, [r4, r1] + cmp r5, #0 + beq _0816F864 + movs r0, #0 + strh r0, [r4, #0x26] + b _0816F88E + .align 2, 0 +_0816F860: .4byte 0x03005FE0 +_0816F864: + bl Random + movs r1, #3 + ands r1, r0 + cmp r1, #1 + beq _0816F88C + cmp r1, #1 + bgt _0816F87A + cmp r1, #0 + beq _0816F882 + b _0816F88E +_0816F87A: + cmp r1, #3 + bgt _0816F88E + strh r5, [r4, #0x26] + b _0816F88E +_0816F882: + ldr r0, _0816F888 + strh r0, [r4, #0x26] + b _0816F88E + .align 2, 0 +_0816F888: .4byte 0x0000FFFF +_0816F88C: + strh r1, [r4, #0x26] +_0816F88E: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end SpriteCB_IntroGraphicsBicycle + + thumb_func_start SpriteCB_IntroGraphicsFlygon +SpriteCB_IntroGraphicsFlygon: @ 0x0816F894 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _0816F8AE + cmp r0, #1 + ble _0816F8F6 + cmp r0, #2 + beq _0816F8CE + cmp r0, #3 + beq _0816F8E8 + b _0816F8F6 +_0816F8AE: + movs r2, #0x24 + ldrsh r0, [r4, r2] + movs r2, #0x20 + ldrsh r1, [r4, r2] + adds r0, r0, r1 + ldr r1, _0816F8C4 + cmp r0, r1 + bgt _0816F8C8 + ldrh r0, [r4, #0x24] + adds r0, #8 + b _0816F8F4 + .align 2, 0 +_0816F8C4: .4byte 0x0000012F +_0816F8C8: + movs r0, #2 + strh r0, [r4, #0x2e] + b _0816F8F6 +_0816F8CE: + movs r1, #0x24 + ldrsh r0, [r4, r1] + movs r2, #0x20 + ldrsh r1, [r4, r2] + adds r0, r0, r1 + cmp r0, #0x78 + ble _0816F8E2 + ldrh r0, [r4, #0x24] + subs r0, #1 + b _0816F8F4 +_0816F8E2: + movs r0, #3 + strh r0, [r4, #0x2e] + b _0816F8F6 +_0816F8E8: + ldrh r1, [r4, #0x24] + movs r2, #0x24 + ldrsh r0, [r4, r2] + cmp r0, #0 + ble _0816F8F6 + subs r0, r1, #2 +_0816F8F4: + strh r0, [r4, #0x24] +_0816F8F6: + ldrh r0, [r4, #0x30] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #8 + bl Sin + ldr r1, _0816F918 + ldrh r1, [r1] + subs r0, r0, r1 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x30] + adds r0, #4 + strh r0, [r4, #0x30] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816F918: .4byte 0x0203B998 + thumb_func_end SpriteCB_IntroGraphicsFlygon + + thumb_func_start sub_0816F91C +sub_0816F91C: @ 0x0816F91C + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + cmp r0, #5 + bls _0816F92A + b _0816FB30 +_0816F92A: + lsls r0, r0, #2 + ldr r1, _0816F934 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0816F934: .4byte 0x0816F938 +_0816F938: @ jump table + .4byte _0816F950 @ case 0 + .4byte _0816F978 @ case 1 + .4byte _0816F998 @ case 2 + .4byte _0816FA50 @ case 3 + .4byte _0816FABC @ case 4 + .4byte _0816FAEC @ case 5 +_0816F950: + ldrh r1, [r5, #0x30] + movs r2, #0x30 + ldrsh r0, [r5, r2] + cmp r0, #0 + beq _0816F960 + subs r0, r1, #1 + strh r0, [r5, #0x30] + b _0816FB30 +_0816F960: + adds r2, r5, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r2] + adds r0, r5, #0 + movs r1, #1 + bl StartSpriteAffineAnim + b _0816FADE +_0816F978: + ldr r0, _0816F994 + ldr r0, [r0] + cmp r0, #0x90 + beq _0816F982 + b _0816FB30 +_0816F982: + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] + movs r0, #9 + strh r0, [r5, #0x30] + movs r0, #2 + strh r0, [r5, #0x34] + b _0816FB30 + .align 2, 0 +_0816F994: .4byte 0x03005FE0 +_0816F998: + ldrh r1, [r5, #0x34] + movs r2, #0x34 + ldrsh r0, [r5, r2] + cmp r0, #0 + bne _0816FA5A + movs r0, #2 + strh r0, [r5, #0x34] + movs r1, #0x30 + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _0816FA00 + lsls r0, r0, #1 + ldr r1, _0816F9F0 + adds r0, r0, r1 + ldr r4, _0816F9F4 + adds r1, r4, #0 + movs r2, #1 + bl CpuSet + movs r2, #0x30 + ldrsh r0, [r5, r2] + lsls r0, r0, #1 + ldr r1, _0816F9F8 + adds r0, r0, r1 + adds r1, r4, #0 + subs r1, #0x16 + movs r2, #1 + bl CpuSet + movs r2, #0x30 + ldrsh r0, [r5, r2] + lsls r0, r0, #1 + ldr r1, _0816F9FC + adds r0, r0, r1 + subs r4, #0xa + adds r1, r4, #0 + movs r2, #1 + bl CpuSet + ldrh r0, [r5, #0x30] + subs r0, #1 + strh r0, [r5, #0x30] + b _0816FB30 + .align 2, 0 +_0816F9F0: .4byte 0x08D85C34 +_0816F9F4: .4byte 0x020379F2 +_0816F9F8: .4byte 0x08D85C54 +_0816F9FC: .4byte 0x08D85C74 +_0816FA00: + movs r2, #0x30 + ldrsh r0, [r5, r2] + lsls r0, r0, #1 + ldr r1, _0816FA40 + adds r0, r0, r1 + ldr r4, _0816FA44 + adds r1, r4, #0 + movs r2, #1 + bl CpuSet + movs r2, #0x30 + ldrsh r0, [r5, r2] + lsls r0, r0, #1 + ldr r1, _0816FA48 + adds r0, r0, r1 + adds r1, r4, #0 + subs r1, #0x16 + movs r2, #1 + bl CpuSet + movs r2, #0x30 + ldrsh r0, [r5, r2] + lsls r0, r0, #1 + ldr r1, _0816FA4C + adds r0, r0, r1 + subs r4, #0xa + adds r1, r4, #0 + movs r2, #1 + bl CpuSet + b _0816FADE + .align 2, 0 +_0816FA40: .4byte 0x08D85C34 +_0816FA44: .4byte 0x020379F2 +_0816FA48: .4byte 0x08D85C54 +_0816FA4C: .4byte 0x08D85C74 +_0816FA50: + ldrh r1, [r5, #0x34] + movs r2, #0x34 + ldrsh r0, [r5, r2] + cmp r0, #0 + beq _0816FA60 +_0816FA5A: + subs r0, r1, #1 + strh r0, [r5, #0x34] + b _0816FB30 +_0816FA60: + movs r0, #2 + strh r0, [r5, #0x34] + movs r1, #0x30 + ldrsh r0, [r5, r1] + cmp r0, #9 + bgt _0816FADE + lsls r0, r0, #1 + ldr r1, _0816FAAC + adds r0, r0, r1 + ldr r4, _0816FAB0 + adds r1, r4, #0 + movs r2, #1 + bl CpuSet + movs r2, #0x30 + ldrsh r0, [r5, r2] + lsls r0, r0, #1 + ldr r1, _0816FAB4 + adds r0, r0, r1 + adds r1, r4, #0 + subs r1, #0x16 + movs r2, #1 + bl CpuSet + movs r2, #0x30 + ldrsh r0, [r5, r2] + lsls r0, r0, #1 + ldr r1, _0816FAB8 + adds r0, r0, r1 + subs r4, #0xa + adds r1, r4, #0 + movs r2, #1 + bl CpuSet + ldrh r0, [r5, #0x30] + adds r0, #1 + strh r0, [r5, #0x30] + b _0816FB30 + .align 2, 0 +_0816FAAC: .4byte 0x08D85C34 +_0816FAB0: .4byte 0x020379F2 +_0816FAB4: .4byte 0x08D85C54 +_0816FAB8: .4byte 0x08D85C74 +_0816FABC: + ldr r0, _0816FAE8 + ldr r1, [r0] + movs r0, #0x88 + lsls r0, r0, #1 + cmp r1, r0 + bne _0816FB30 + adds r0, r5, #0 + movs r1, #2 + bl StartSpriteAffineAnim + ldrb r1, [r5, #1] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r5, #1] +_0816FADE: + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] + b _0816FB30 + .align 2, 0 +_0816FAE8: .4byte 0x03005FE0 +_0816FAEC: + ldr r1, _0816FB38 + movs r2, #0x32 + ldrsh r0, [r5, r2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ldrh r1, [r5, #0x34] + adds r0, r0, r1 + strh r0, [r5, #0x34] + movs r2, #0x34 + ldrsh r0, [r5, r2] + movs r1, #0xff + lsls r1, r1, #8 + ands r0, r1 + asrs r0, r0, #8 + strh r0, [r5, #0x24] + movs r1, #0x32 + ldrsh r0, [r5, r1] + cmp r0, #3 + bgt _0816FB1C + movs r2, #0x24 + ldrsh r0, [r5, r2] + rsbs r0, r0, #0 + strh r0, [r5, #0x24] +_0816FB1C: + adds r0, r5, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0816FB30 + adds r0, r5, #0 + bl DestroySprite +_0816FB30: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0816FB38: .4byte 0x085C5FFC + thumb_func_end sub_0816F91C + + thumb_func_start sub_0816FB3C +sub_0816FB3C: @ 0x0816FB3C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _0816FB74 + cmp r0, #1 + bgt _0816FB52 + cmp r0, #0 + beq _0816FB58 + b _0816FBA8 +_0816FB52: + cmp r0, #2 + beq _0816FB94 + b _0816FBA8 +_0816FB58: + ldr r0, _0816FB70 + ldr r0, [r0] + cmp r0, #0x80 + bne _0816FBA8 + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r2] + b _0816FB88 + .align 2, 0 +_0816FB70: .4byte 0x03005FE0 +_0816FB74: + ldr r0, _0816FB90 + ldr r1, [r0] + movs r0, #0x88 + lsls r0, r0, #1 + cmp r1, r0 + bne _0816FBA8 + adds r0, r4, #0 + movs r1, #3 + bl StartSpriteAffineAnim +_0816FB88: + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + b _0816FBA8 + .align 2, 0 +_0816FB90: .4byte 0x03005FE0 +_0816FB94: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0816FBA8 + adds r0, r4, #0 + bl DestroySprite +_0816FBA8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0816FB3C + + thumb_func_start CreatePart1Animations +CreatePart1Animations: @ 0x0816FBB0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp, #4] + movs r7, #0 +_0816FBCA: + lsls r5, r7, #2 + ldr r0, _0816FCBC + adds r0, #2 + adds r0, r5, r0 + ldr r2, [sp] + lsls r1, r2, #0x10 + asrs r1, r1, #0x10 + ldrh r0, [r0] + adds r1, r1, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldr r3, [sp, #4] + lsls r2, r3, #0x10 + asrs r0, r2, #0x10 + str r0, [sp, #8] + ldr r3, _0816FCC0 + adds r2, r2, r3 + ldr r0, _0816FCC4 + asrs r2, r2, #0x10 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r4, r6, #4 + adds r4, r4, r6 + lsls r4, r4, #2 + ldr r0, _0816FCC8 + adds r4, r4, r0 + movs r1, #0 + strh r1, [r4, #0x2e] + ldr r0, _0816FCCC + adds r0, r7, r0 + ldrb r0, [r0] + strh r0, [r4, #0x30] + strh r7, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #4 + mov sl, r2 + mov r3, sl + orrs r0, r3 + strb r0, [r1] + adds r1, r7, #0 + adds r1, #0xc + movs r0, #0x1f + mov sb, r0 + mov r2, sb + ands r1, r2 + lsls r1, r1, #1 + ldrb r0, [r4, #3] + movs r3, #0x3f + rsbs r3, r3, #0 + mov r8, r3 + mov r2, r8 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #3] + ldr r3, _0816FCBC + adds r5, r5, r3 + ldrb r1, [r5] + adds r0, r4, #0 + bl StartSpriteAnim + adds r0, r4, #0 + movs r1, #0 + bl StartSpriteAffineAnim + adds r0, r7, #1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + cmp r7, #8 + bls _0816FBCA + ldr r0, _0816FCD0 + ldr r2, [sp, #8] + subs r2, #6 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + movs r1, #0x78 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #4 + adds r0, r0, r6 + lsls r0, r0, #2 + ldr r1, _0816FCC8 + adds r0, r0, r1 + movs r2, #0 + strh r2, [r0, #0x2e] + adds r2, r0, #0 + adds r2, #0x3e + ldrb r1, [r2] + mov r3, sl + orrs r1, r3 + strb r1, [r2] + adds r2, r7, #0 + adds r2, #0xc + mov r1, sb + ands r2, r1 + lsls r2, r2, #1 + ldrb r1, [r0, #3] + mov r3, r8 + ands r1, r3 + orrs r1, r2 + strb r1, [r0, #3] + movs r1, #1 + bl StartSpriteAffineAnim + adds r0, r6, #0 + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0816FCBC: .4byte 0x085C5F48 +_0816FCC0: .4byte 0xFFFC0000 +_0816FCC4: .4byte 0x085C6010 +_0816FCC8: .4byte 0x020205AC +_0816FCCC: .4byte 0x085C6058 +_0816FCD0: .4byte 0x085C6040 + thumb_func_end CreatePart1Animations + + thumb_func_start sub_0816FCD4 +sub_0816FCD4: @ 0x0816FCD4 + push {r4, r5, r6, lr} + sub sp, #4 + adds r4, r0, #0 + ldrh r0, [r4, #0x3c] + adds r0, #1 + strh r0, [r4, #0x3c] + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0816FD40 + ldr r2, _0816FD90 + ldrh r1, [r4, #0x32] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r2 + ldrh r3, [r0] + adds r1, #0x40 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x17 + adds r1, r1, r2 + movs r2, #0 + ldrsh r0, [r1, r2] + movs r1, #0x30 + ldrsh r2, [r4, r1] + adds r1, r0, #0 + muls r1, r2, r1 + adds r0, r1, #0 + cmp r1, #0 + bge _0816FD10 + adds r0, #0xff +_0816FD10: + lsls r0, r0, #8 + lsrs r6, r0, #0x10 + lsls r0, r3, #0x10 + asrs r3, r0, #0x10 + rsbs r0, r3, #0 + muls r0, r2, r0 + cmp r0, #0 + bge _0816FD22 + adds r0, #0xff +_0816FD22: + lsls r0, r0, #8 + lsrs r5, r0, #0x10 + adds r0, r3, #0 + muls r0, r2, r0 + cmp r0, #0 + bge _0816FD30 + adds r0, #0xff +_0816FD30: + lsls r0, r0, #8 + lsrs r2, r0, #0x10 + adds r1, r6, #0 + adds r3, r5, #0 + str r1, [sp] + movs r0, #1 + bl SetOamMatrix +_0816FD40: + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r0, #1 + beq _0816FD94 + cmp r0, #1 + ble _0816FD50 + cmp r0, #2 + beq _0816FDF6 +_0816FD50: + ldrb r0, [r4, #1] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #1] + ldrb r1, [r4, #3] + movs r0, #0x3f + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r4, #3] + adds r0, r4, #0 + movs r1, #1 + movs r2, #3 + movs r3, #3 + bl CalcCenterToCornerVec + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + movs r1, #0 + movs r0, #1 + strh r0, [r4, #0x2e] + movs r0, #0x80 + strh r0, [r4, #0x30] + strh r1, [r4, #0x32] + strh r1, [r4, #0x34] + b _0816FE30 + .align 2, 0 +_0816FD90: .4byte 0x082FA8CC +_0816FD94: + ldrh r0, [r4, #0x34] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x8c + bl Sin + rsbs r0, r0, #0 + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x34] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x78 + bl Sin + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x30] + adds r0, #7 + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x34] + adds r0, #3 + strh r0, [r4, #0x34] + movs r1, #0x20 + ldrsh r0, [r4, r1] + movs r2, #0x24 + ldrsh r1, [r4, r2] + adds r0, r0, r1 + movs r1, #0x10 + rsbs r1, r1, #0 + cmp r0, r1 + bgt _0816FE30 + ldrb r0, [r4, #5] + movs r1, #0xc + orrs r0, r1 + strb r0, [r4, #5] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + movs r0, #0x14 + strh r0, [r4, #0x20] + movs r0, #0x28 + strh r0, [r4, #0x22] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x30] + movs r0, #0 + strh r0, [r4, #0x32] + movs r0, #0x10 + b _0816FE2E +_0816FDF6: + ldrh r0, [r4, #0x34] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x22 + bl Sin + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x34] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x3c + bl Cos + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x30] + adds r0, #2 + strh r0, [r4, #0x30] + movs r1, #0x3c + ldrsh r0, [r4, r1] + movs r1, #5 + bl __modsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0816FE30 + ldrh r0, [r4, #0x34] + adds r0, #1 +_0816FE2E: + strh r0, [r4, #0x34] +_0816FE30: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_0816FCD4 + + thumb_func_start SpriteCB_IntroRayquazaHyperbeam +SpriteCB_IntroRayquazaHyperbeam: @ 0x0816FE38 + push {r4, r5, lr} + sub sp, #4 + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _0816FE4E + adds r4, r5, #0 + adds r4, #0x3e + cmp r0, #1 + beq _0816FE86 +_0816FE4E: + adds r4, r5, #0 + adds r4, #0x3e + ldrb r1, [r4] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4] + ldrb r0, [r5, #1] + movs r1, #3 + orrs r0, r1 + strb r0, [r5, #1] + ldrb r1, [r5, #3] + movs r0, #0x3f + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x24 + orrs r0, r1 + strb r0, [r5, #3] + adds r0, r5, #0 + movs r1, #0 + movs r2, #3 + movs r3, #3 + bl CalcCenterToCornerVec + movs r0, #0 + strh r0, [r5, #0x30] + movs r0, #1 + strh r0, [r5, #0x2e] +_0816FE86: + ldrh r0, [r5, #0x3c] + adds r0, #1 + strh r0, [r5, #0x3c] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0816FE9E + ldrb r0, [r4] + movs r1, #4 + orrs r0, r1 + strb r0, [r4] + b _0816FEB6 +_0816FE9E: + ldrb r0, [r4] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4] + ldrh r1, [r5, #0x30] + movs r2, #0x30 + ldrsh r0, [r5, r2] + cmp r0, #0x3f + bgt _0816FEB6 + adds r0, r1, #1 + strh r0, [r5, #0x30] +_0816FEB6: + ldr r1, _0816FEEC + ldrh r0, [r5, #0x30] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + subs r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp] + movs r0, #0x12 + movs r2, #0 + movs r3, #0 + bl SetOamMatrix + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0816FEEC: .4byte 0x082FA8CC + thumb_func_end SpriteCB_IntroRayquazaHyperbeam + diff --git a/asm/intro_credits_graphics.s b/asm/intro_credits_graphics.s new file mode 100644 index 0000000..90e4849 --- /dev/null +++ b/asm/intro_credits_graphics.s @@ -0,0 +1,1187 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start load_intro_part2_graphics +load_intro_part2_graphics: @ 0x0817AF24 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0817AF80 + ldr r1, _0817AF84 + bl LZ77UnCompVram + ldr r0, _0817AF88 + ldr r1, _0817AF8C + bl LZ77UnCompVram + ldr r0, _0817AF90 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + cmp r4, #0 + beq _0817AF4C + cmp r4, #1 + beq _0817AFAC +_0817AF4C: + ldr r0, _0817AF94 + movs r1, #0xc0 + lsls r1, r1, #0x13 + bl LZ77UnCompVram + ldr r0, _0817AF98 + ldr r1, _0817AF9C + bl LZ77UnCompVram + ldr r0, _0817AFA0 + movs r1, #0 + movs r2, #0x60 + bl LoadPalette + ldr r0, _0817AFA4 + bl LoadCompressedSpriteSheet + ldr r0, _0817AFA8 + movs r1, #0x80 + lsls r1, r1, #1 + movs r2, #0x20 + bl LoadPalette + bl sub_0817B62C + b _0817AFDE + .align 2, 0 +_0817AF80: .4byte 0x085CDC10 +_0817AF84: .4byte 0x06004000 +_0817AF88: .4byte 0x085CE090 +_0817AF8C: .4byte 0x06007800 +_0817AF90: .4byte 0x085CDBB0 +_0817AF94: .4byte 0x085CE28C +_0817AF98: .4byte 0x085CE868 +_0817AF9C: .4byte 0x06003000 +_0817AFA0: .4byte 0x085CE1CC +_0817AFA4: .4byte 0x085D2534 +_0817AFA8: .4byte 0x085CEB38 +_0817AFAC: + ldr r0, _0817AFF0 + movs r1, #0xc0 + lsls r1, r1, #0x13 + bl LZ77UnCompVram + ldr r0, _0817AFF4 + ldr r1, _0817AFF8 + bl LZ77UnCompVram + ldr r0, _0817AFFC + movs r1, #0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _0817B000 + bl LoadCompressedSpriteSheet + ldr r0, _0817B004 + movs r1, #0x80 + lsls r1, r1, #1 + movs r2, #0x20 + bl LoadPalette + bl sub_0817B648 +_0817AFDE: + ldr r1, _0817B008 + movs r0, #0 + strh r0, [r1] + ldr r1, _0817B00C + movs r0, #8 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0817AFF0: .4byte 0x085CECF4 +_0817AFF4: .4byte 0x085CF37C +_0817AFF8: .4byte 0x06003000 +_0817AFFC: .4byte 0x085CECB4 +_0817B000: .4byte 0x085D25BC +_0817B004: .4byte 0x085CF680 +_0817B008: .4byte 0x0203B9F4 +_0817B00C: .4byte 0x030030BC + thumb_func_end load_intro_part2_graphics + + thumb_func_start sub_0817B010 +sub_0817B010: @ 0x0817B010 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0817B022 + cmp r0, #1 + ble _0817B022 + cmp r0, #2 + beq _0817B054 +_0817B022: + ldr r1, _0817B048 + movs r0, #0xe + bl SetGpuReg + ldr r1, _0817B04C + movs r0, #0xc + bl SetGpuReg + ldr r1, _0817B050 + movs r0, #0xa + bl SetGpuReg + movs r1, #0xf2 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + b _0817B076 + .align 2, 0 +_0817B048: .4byte 0x00000603 +_0817B04C: .4byte 0x00000702 +_0817B050: .4byte 0x00000F05 +_0817B054: + ldr r1, _0817B07C + movs r0, #0xe + bl SetGpuReg + ldr r1, _0817B080 + movs r0, #0xc + bl SetGpuReg + ldr r1, _0817B084 + movs r0, #0xa + bl SetGpuReg + movs r1, #0xf2 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg +_0817B076: + pop {r0} + bx r0 + .align 2, 0 +_0817B07C: .4byte 0x00000603 +_0817B080: .4byte 0x00000702 +_0817B084: .4byte 0x00000F05 + thumb_func_end sub_0817B010 + + thumb_func_start sub_0817B088 +sub_0817B088: @ 0x0817B088 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0817B0AC + ldr r1, _0817B0B0 + bl LZ77UnCompVram + ldr r0, _0817B0B4 + ldr r1, _0817B0B8 + bl LZ77UnCompVram + cmp r4, #4 + bhi _0817B0D4 + lsls r0, r4, #2 + ldr r1, _0817B0BC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0817B0AC: .4byte 0x085CDC10 +_0817B0B0: .4byte 0x06004000 +_0817B0B4: .4byte 0x085CE090 +_0817B0B8: .4byte 0x06007800 +_0817B0BC: .4byte 0x0817B0C0 +_0817B0C0: @ jump table + .4byte _0817B0D4 @ case 0 + .4byte _0817B130 @ case 1 + .4byte _0817B19C @ case 2 + .4byte _0817B19C @ case 3 + .4byte _0817B1F4 @ case 4 +_0817B0D4: + ldr r0, _0817B10C + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _0817B110 + movs r1, #0xc0 + lsls r1, r1, #0x13 + bl LZ77UnCompVram + ldr r0, _0817B114 + ldr r1, _0817B118 + bl LZ77UnCompVram + ldr r0, _0817B11C + movs r1, #0 + movs r2, #0x60 + bl LoadPalette + ldr r0, _0817B120 + bl LoadCompressedSpriteSheet + ldr r0, _0817B124 + ldr r1, _0817B128 + bl LZ77UnCompVram + ldr r0, _0817B12C + b _0817B166 + .align 2, 0 +_0817B10C: .4byte 0x085CDBB0 +_0817B110: .4byte 0x085CE28C +_0817B114: .4byte 0x085CE868 +_0817B118: .4byte 0x06003000 +_0817B11C: .4byte 0x085CE1CC +_0817B120: .4byte 0x085D2534 +_0817B124: .4byte 0x085CEB78 +_0817B128: .4byte 0x06010000 +_0817B12C: .4byte 0x085CEB38 +_0817B130: + ldr r0, _0817B178 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _0817B17C + movs r1, #0xc0 + lsls r1, r1, #0x13 + bl LZ77UnCompVram + ldr r0, _0817B180 + ldr r1, _0817B184 + bl LZ77UnCompVram + ldr r0, _0817B188 + movs r1, #0 + movs r2, #0x60 + bl LoadPalette + ldr r0, _0817B18C + bl LoadCompressedSpriteSheet + ldr r0, _0817B190 + ldr r1, _0817B194 + bl LZ77UnCompVram + ldr r0, _0817B198 +_0817B166: + movs r1, #0x80 + lsls r1, r1, #1 + movs r2, #0x20 + bl LoadPalette + bl sub_0817B62C + b _0817B230 + .align 2, 0 +_0817B178: .4byte 0x085CDBD0 +_0817B17C: .4byte 0x085CE28C +_0817B180: .4byte 0x085CE868 +_0817B184: .4byte 0x06003000 +_0817B188: .4byte 0x085CE22C +_0817B18C: .4byte 0x085D2534 +_0817B190: .4byte 0x085CEB78 +_0817B194: .4byte 0x06010000 +_0817B198: .4byte 0x085CEB58 +_0817B19C: + ldr r0, _0817B1DC + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _0817B1E0 + movs r1, #0xc0 + lsls r1, r1, #0x13 + bl LZ77UnCompVram + ldr r0, _0817B1E4 + ldr r1, _0817B1E8 + bl LZ77UnCompVram + ldr r4, _0817B1EC + adds r0, r4, #0 + movs r1, #0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _0817B1F0 + bl LoadCompressedSpriteSheet + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r4, #0 + movs r2, #0x20 + bl LoadPalette + bl sub_0817B648 + b _0817B230 + .align 2, 0 +_0817B1DC: .4byte 0x085CDBD0 +_0817B1E0: .4byte 0x085CECF4 +_0817B1E4: .4byte 0x085CF37C +_0817B1E8: .4byte 0x06003000 +_0817B1EC: .4byte 0x085CECD4 +_0817B1F0: .4byte 0x085D25BC +_0817B1F4: + ldr r0, _0817B244 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _0817B248 + movs r1, #0xc0 + lsls r1, r1, #0x13 + bl LZ77UnCompVram + ldr r0, _0817B24C + ldr r1, _0817B250 + bl LZ77UnCompVram + ldr r0, _0817B254 + movs r1, #0 + movs r2, #0x40 + bl LoadPalette + ldr r0, _0817B258 + bl LoadCompressedSpriteSheet + ldr r0, _0817B25C + movs r1, #0x80 + lsls r1, r1, #1 + movs r2, #0x20 + bl LoadPalette + bl sub_0817B664 +_0817B230: + ldr r1, _0817B260 + movs r0, #8 + strb r0, [r1] + ldr r1, _0817B264 + movs r0, #0 + strh r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0817B244: .4byte 0x085CDBF0 +_0817B248: .4byte 0x085CF82C +_0817B24C: .4byte 0x085CFA38 +_0817B250: .4byte 0x06003000 +_0817B254: .4byte 0x085CF7EC +_0817B258: .4byte 0x085D2650 +_0817B25C: .4byte 0x085CFA18 +_0817B260: .4byte 0x030030BC +_0817B264: .4byte 0x0203B9F4 + thumb_func_end sub_0817B088 + + thumb_func_start sub_0817B268 +sub_0817B268: @ 0x0817B268 + push {lr} + ldr r1, _0817B290 + movs r0, #0xe + bl SetGpuReg + ldr r1, _0817B294 + movs r0, #0xc + bl SetGpuReg + ldr r1, _0817B298 + movs r0, #0xa + bl SetGpuReg + movs r1, #0xfa + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 +_0817B290: .4byte 0x00000603 +_0817B294: .4byte 0x00000702 +_0817B298: .4byte 0x00000F05 + thumb_func_end sub_0817B268 + + thumb_func_start CreateBicycleAnimationTask +CreateBicycleAnimationTask: @ 0x0817B29C + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #4 + adds r5, r0, #0 + adds r6, r1, #0 + mov r8, r2 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + mov r0, r8 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + ldr r1, _0817B310 + mov sb, r1 + mov r0, sb + movs r1, #0 + str r3, [sp] + bl CreateTask + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _0817B314 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #0 + strh r5, [r0, #8] + strh r6, [r0, #0xa] + strh r2, [r0, #0xc] + strh r2, [r0, #0xe] + mov r1, r8 + strh r1, [r0, #0x10] + strh r2, [r0, #0x12] + strh r2, [r0, #0x14] + ldr r3, [sp] + strh r3, [r0, #0x16] + movs r1, #8 + strh r1, [r0, #0x18] + strh r2, [r0, #0x1a] + adds r0, r4, #0 + bl _call_via_r9 + adds r0, r4, #0 + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0817B310: .4byte 0x0817B319 +_0817B314: .4byte 0x03005B60 + thumb_func_end CreateBicycleAnimationTask + + thumb_func_start sub_0817B318 +sub_0817B318: @ 0x0817B318 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _0817B3A4 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrh r0, [r4, #0xa] + lsls r2, r0, #0x10 + cmp r2, #0 + beq _0817B360 + movs r1, #0xc + ldrsh r0, [r4, r1] + lsls r0, r0, #0x10 + ldrh r1, [r4, #0xe] + adds r1, r0, r1 + lsrs r0, r2, #0xc + subs r1, r1, r0 + asrs r0, r1, #0x10 + strh r0, [r4, #0xc] + strh r1, [r4, #0xe] + ldrh r1, [r4, #0xc] + movs r0, #0x14 + bl SetGpuReg + ldr r2, _0817B3A8 + ldr r0, _0817B3AC + ldrh r1, [r0] + ldrh r2, [r2] + adds r1, r1, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x16 + bl SetGpuReg +_0817B360: + ldrh r0, [r4, #0x10] + lsls r2, r0, #0x10 + cmp r2, #0 + beq _0817B3BA + movs r1, #0x12 + ldrsh r0, [r4, r1] + lsls r0, r0, #0x10 + ldrh r1, [r4, #0x14] + adds r1, r0, r1 + lsrs r0, r2, #0xc + subs r1, r1, r0 + asrs r0, r1, #0x10 + strh r0, [r4, #0x12] + strh r1, [r4, #0x14] + ldrh r1, [r4, #0x12] + movs r0, #0x18 + bl SetGpuReg + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0817B3B0 + ldr r2, _0817B3A8 + ldr r0, _0817B3AC + ldrh r1, [r0] + ldrh r2, [r2] + adds r1, r1, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x1a + bl SetGpuReg + b _0817B3BA + .align 2, 0 +_0817B3A4: .4byte 0x03005B60 +_0817B3A8: .4byte 0x0203B9F0 +_0817B3AC: .4byte 0x0203B9F2 +_0817B3B0: + ldr r0, _0817B3F8 + ldrh r1, [r0] + movs r0, #0x1a + bl SetGpuReg +_0817B3BA: + ldr r0, _0817B3FC + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r2, r1, r0 + ldrh r0, [r2, #0x16] + lsls r3, r0, #0x10 + cmp r3, #0 + beq _0817B3F2 + movs r1, #0x18 + ldrsh r0, [r2, r1] + lsls r0, r0, #0x10 + ldrh r1, [r2, #0x1a] + adds r1, r0, r1 + lsrs r0, r3, #0xc + subs r1, r1, r0 + asrs r0, r1, #0x10 + strh r0, [r2, #0x18] + strh r1, [r2, #0x1a] + ldrh r1, [r2, #0x18] + movs r0, #0x1c + bl SetGpuReg + ldr r0, _0817B3F8 + ldrh r1, [r0] + movs r0, #0x1e + bl SetGpuReg +_0817B3F2: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0817B3F8: .4byte 0x0203B9F0 +_0817B3FC: .4byte 0x03005B60 + thumb_func_end sub_0817B318 + + thumb_func_start sub_0817B400 +sub_0817B400: @ 0x0817B400 + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0817B4E0 + cmp r0, #1 + ble _0817B414 + cmp r0, #2 + beq _0817B478 +_0817B414: + ldr r0, _0817B440 + ldr r2, [r0, #0x20] + movs r0, #3 + ands r0, r2 + cmp r0, #0 + bne _0817B4E0 + ldr r0, _0817B444 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0817B4E0 + movs r0, #4 + ands r2, r0 + cmp r2, #0 + beq _0817B44C + ldr r2, _0817B448 + ldrh r1, [r2, #0x12] + mov r0, sp + strh r1, [r0] + ldrh r1, [r2, #0x14] + b _0817B456 + .align 2, 0 +_0817B440: .4byte 0x03002360 +_0817B444: .4byte 0x02037C74 +_0817B448: .4byte 0x020373B4 +_0817B44C: + ldr r2, _0817B474 + ldrh r1, [r2, #0x14] + mov r0, sp + strh r1, [r0] + ldrh r1, [r2, #0x12] +_0817B456: + adds r0, #2 + strh r1, [r0] + adds r4, r0, #0 + mov r0, sp + movs r1, #9 + movs r2, #2 + bl LoadPalette + adds r0, r4, #0 + movs r1, #0xa + movs r2, #2 + bl LoadPalette + b _0817B4E0 + .align 2, 0 +_0817B474: .4byte 0x020373B4 +_0817B478: + ldr r0, _0817B4A8 + ldr r2, [r0, #0x20] + movs r0, #3 + ands r0, r2 + cmp r0, #0 + bne _0817B4E0 + ldr r0, _0817B4AC + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0817B4E0 + movs r0, #4 + ands r2, r0 + cmp r2, #0 + beq _0817B4B8 + mov r1, sp + ldr r2, _0817B4B0 + adds r0, r2, #0 + strh r0, [r1] + adds r1, #2 + ldr r2, _0817B4B4 + b _0817B4C6 + .align 2, 0 +_0817B4A8: .4byte 0x03002360 +_0817B4AC: .4byte 0x02037C74 +_0817B4B0: .4byte 0x00003D27 +_0817B4B4: .4byte 0x00000295 +_0817B4B8: + mov r1, sp + movs r2, #0xc7 + lsls r2, r2, #2 + adds r0, r2, #0 + strh r0, [r1] + adds r1, #2 + ldr r2, _0817B4E8 +_0817B4C6: + adds r0, r2, #0 + strh r0, [r1] + adds r4, r1, #0 + mov r0, sp + movs r1, #0xc + movs r2, #2 + bl LoadPalette + adds r0, r4, #0 + movs r1, #0xd + movs r2, #2 + bl LoadPalette +_0817B4E0: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0817B4E8: .4byte 0x00003D27 + thumb_func_end sub_0817B400 + + thumb_func_start sub_0817B4EC +sub_0817B4EC: @ 0x0817B4EC + push {lr} + adds r2, r0, #0 + ldr r0, _0817B508 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #2 + beq _0817B550 + cmp r0, #0 + beq _0817B50C + adds r0, r2, #0 + bl DestroySprite + b _0817B550 + .align 2, 0 +_0817B508: .4byte 0x0203B9F4 +_0817B50C: + movs r1, #0x20 + ldrsh r0, [r2, r1] + lsls r0, r0, #0x10 + ldrh r1, [r2, #0x32] + orrs r0, r1 + ldrh r1, [r2, #0x30] + adds r0, r0, r1 + asrs r1, r0, #0x10 + strh r1, [r2, #0x20] + strh r0, [r2, #0x32] + cmp r1, #0xff + ble _0817B528 + ldr r0, _0817B53C + strh r0, [r2, #0x20] +_0817B528: + movs r1, #0x2e + ldrsh r0, [r2, r1] + cmp r0, #0 + beq _0817B548 + ldr r1, _0817B540 + ldr r0, _0817B544 + ldrh r0, [r0] + ldrh r1, [r1] + adds r0, r0, r1 + b _0817B54C + .align 2, 0 +_0817B53C: .4byte 0x0000FFE0 +_0817B540: .4byte 0x0203B9F0 +_0817B544: .4byte 0x0203B9F2 +_0817B548: + ldr r0, _0817B554 + ldrh r0, [r0] +_0817B54C: + rsbs r0, r0, #0 + strh r0, [r2, #0x26] +_0817B550: + pop {r0} + bx r0 + .align 2, 0 +_0817B554: .4byte 0x0203B9F0 + thumb_func_end sub_0817B4EC + + thumb_func_start sub_0817B558 +sub_0817B558: @ 0x0817B558 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + str r1, [sp, #4] + str r2, [sp, #8] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r8, r3 + movs r7, #0 + cmp r7, r8 + bhs _0817B60E + ldr r0, _0817B620 + mov sl, r0 + movs r2, #0x3f + mov sb, r2 +_0817B582: + lsls r6, r7, #3 + ldr r0, [sp, #4] + adds r6, r6, r0 + ldrb r1, [r6, #1] + ldrb r2, [r6, #2] + ldrb r3, [r6, #3] + ldr r0, _0817B624 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r5, r0, #4 + adds r5, r5, r0 + lsls r5, r5, #2 + mov r2, sl + adds r4, r5, r2 + ldrb r2, [r6] + lsls r1, r2, #0x1a + lsrs r1, r1, #0x1e + lsrs r2, r2, #6 + adds r0, r4, #0 + movs r3, #0 + bl CalcCenterToCornerVec + ldrb r3, [r4, #5] + movs r0, #0xc + orrs r3, r0 + strb r3, [r4, #5] + ldrb r1, [r6] + lsls r1, r1, #0x1a + lsrs r1, r1, #0x1e + lsls r1, r1, #6 + ldrb r2, [r4, #1] + mov r0, sb + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #1] + ldrb r1, [r6] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r4, #3] + mov r0, sb + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #3] + movs r0, #0xf + ands r3, r0 + strb r3, [r4, #5] + ldr r0, _0817B628 + adds r5, r5, r0 + ldr r2, [sp, #8] + str r2, [r5] + ldrb r1, [r6] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + adds r0, r4, #0 + bl StartSpriteAnim + movs r1, #0 + mov r0, sp + ldrh r0, [r0] + strh r0, [r4, #0x2e] + ldrh r0, [r6, #4] + strh r0, [r4, #0x30] + strh r1, [r4, #0x32] + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, r8 + blo _0817B582 +_0817B60E: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0817B620: .4byte 0x020205AC +_0817B624: .4byte 0x085D251C +_0817B628: .4byte 0x020205B4 + thumb_func_end sub_0817B558 + + thumb_func_start sub_0817B62C +sub_0817B62C: @ 0x0817B62C + push {lr} + ldr r1, _0817B640 + ldr r2, _0817B644 + movs r0, #0 + movs r3, #9 + bl sub_0817B558 + pop {r0} + bx r0 + .align 2, 0 +_0817B640: .4byte 0x085D2574 +_0817B644: .4byte 0x085D2564 + thumb_func_end sub_0817B62C + + thumb_func_start sub_0817B648 +sub_0817B648: @ 0x0817B648 + push {lr} + ldr r1, _0817B65C + ldr r2, _0817B660 + movs r0, #1 + movs r3, #0xc + bl sub_0817B558 + pop {r0} + bx r0 + .align 2, 0 +_0817B65C: .4byte 0x085D25F0 +_0817B660: .4byte 0x085D25E4 + thumb_func_end sub_0817B648 + + thumb_func_start sub_0817B664 +sub_0817B664: @ 0x0817B664 + push {lr} + ldr r1, _0817B678 + ldr r2, _0817B67C + movs r0, #1 + movs r3, #6 + bl sub_0817B558 + pop {r0} + bx r0 + .align 2, 0 +_0817B678: .4byte 0x085D266C +_0817B67C: .4byte 0x085D2668 + thumb_func_end sub_0817B664 + + thumb_func_start nullsub_65 +nullsub_65: @ 0x0817B680 + bx lr + .align 2, 0 + thumb_func_end nullsub_65 + + thumb_func_start sub_0817B684 +sub_0817B684: @ 0x0817B684 + push {r4, lr} + ldr r4, _0817B6F0 + movs r1, #0x2e + ldrsh r2, [r0, r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r4 + adds r1, #0x3e + ldrb r1, [r1] + movs r2, #0x3e + adds r2, r2, r0 + mov ip, r2 + movs r2, #4 + ands r2, r1 + mov r1, ip + ldrb r3, [r1] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r2 + mov r2, ip + strb r1, [r2] + movs r1, #0x2e + ldrsh r2, [r0, r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrh r1, [r1, #0x20] + strh r1, [r0, #0x20] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrh r1, [r1, #0x22] + adds r1, #8 + strh r1, [r0, #0x22] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrh r1, [r1, #0x24] + strh r1, [r0, #0x24] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrh r1, [r1, #0x26] + strh r1, [r0, #0x26] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0817B6F0: .4byte 0x020205AC + thumb_func_end sub_0817B684 + + thumb_func_start intro_create_brendan_sprite +intro_create_brendan_sprite: @ 0x0817B6F4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + ldr r0, _0817B740 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + adds r1, r5, #0 + adds r2, r4, #0 + movs r3, #2 + bl CreateSprite + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + ldr r0, _0817B744 + adds r4, #8 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + adds r1, r5, #0 + adds r2, r4, #0 + movs r3, #3 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0817B748 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + strh r6, [r1, #0x2e] + adds r0, r6, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0817B740: .4byte 0x085D26BC +_0817B744: .4byte 0x085D270C +_0817B748: .4byte 0x020205AC + thumb_func_end intro_create_brendan_sprite + + thumb_func_start intro_create_may_sprite +intro_create_may_sprite: @ 0x0817B74C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + ldr r0, _0817B798 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + adds r1, r5, #0 + adds r2, r4, #0 + movs r3, #2 + bl CreateSprite + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + ldr r0, _0817B79C + adds r4, #8 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + adds r1, r5, #0 + adds r2, r4, #0 + movs r3, #3 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0817B7A0 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + strh r6, [r1, #0x2e] + adds r0, r6, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0817B798: .4byte 0x085D26D4 +_0817B79C: .4byte 0x085D2724 +_0817B7A0: .4byte 0x020205AC + thumb_func_end intro_create_may_sprite + + thumb_func_start nullsub_66 +nullsub_66: @ 0x0817B7A4 + bx lr + .align 2, 0 + thumb_func_end nullsub_66 + + thumb_func_start sub_0817B7A8 +sub_0817B7A8: @ 0x0817B7A8 + push {r4, lr} + ldr r4, _0817B804 + movs r1, #0x2e + ldrsh r2, [r0, r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r4 + adds r1, #0x3e + ldrb r1, [r1] + movs r2, #0x3e + adds r2, r2, r0 + mov ip, r2 + movs r2, #4 + ands r2, r1 + mov r1, ip + ldrb r3, [r1] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r2 + mov r2, ip + strb r1, [r2] + movs r1, #0x2e + ldrsh r2, [r0, r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrh r1, [r1, #0x22] + strh r1, [r0, #0x22] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrh r1, [r1, #0x24] + strh r1, [r0, #0x24] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrh r1, [r1, #0x26] + strh r1, [r0, #0x26] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0817B804: .4byte 0x020205AC + thumb_func_end sub_0817B7A8 + + thumb_func_start intro_create_flygon_sprite +intro_create_flygon_sprite: @ 0x0817B808 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r2, r0, #0 + adds r5, r1, #0 + ldr r0, _0817B874 + mov r8, r0 + lsls r2, r2, #0x10 + asrs r4, r2, #0x10 + ldr r0, _0817B878 + adds r2, r2, r0 + asrs r2, r2, #0x10 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + mov r0, r8 + adds r1, r2, #0 + adds r2, r5, #0 + movs r3, #5 + bl CreateSprite + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + adds r4, #0x20 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + mov r0, r8 + adds r1, r4, #0 + adds r2, r5, #0 + movs r3, #6 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _0817B87C + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + adds r0, r4, r5 + strh r6, [r0, #0x2e] + movs r1, #1 + bl StartSpriteAnim + adds r5, #0x1c + adds r4, r4, r5 + ldr r0, _0817B880 + str r0, [r4] + adds r0, r6, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0817B874: .4byte 0x085D275C +_0817B878: .4byte 0xFFE00000 +_0817B87C: .4byte 0x020205AC +_0817B880: .4byte 0x0817B7A9 + thumb_func_end intro_create_flygon_sprite + + thumb_func_start sub_0817B884 +sub_0817B884: @ 0x0817B884 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r2, r0, #0 + adds r5, r1, #0 + ldr r0, _0817B8F0 + mov r8, r0 + lsls r2, r2, #0x10 + asrs r4, r2, #0x10 + ldr r0, _0817B8F4 + adds r2, r2, r0 + asrs r2, r2, #0x10 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + mov r0, r8 + adds r1, r2, #0 + adds r2, r5, #0 + movs r3, #5 + bl CreateSprite + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + adds r4, #0x20 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + mov r0, r8 + adds r1, r4, #0 + adds r2, r5, #0 + movs r3, #6 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _0817B8F8 + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + adds r0, r4, r5 + strh r6, [r0, #0x2e] + movs r1, #1 + bl StartSpriteAnim + adds r5, #0x1c + adds r4, r4, r5 + ldr r0, _0817B8FC + str r0, [r4] + adds r0, r6, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0817B8F0: .4byte 0x085D2774 +_0817B8F4: .4byte 0xFFE00000 +_0817B8F8: .4byte 0x020205AC +_0817B8FC: .4byte 0x0817B7A9 + thumb_func_end sub_0817B884 + diff --git a/asm/item.s b/asm/item.s new file mode 100644 index 0000000..8146ce6 --- /dev/null +++ b/asm/item.s @@ -0,0 +1,2329 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start GetBagItemQuantity +GetBagItemQuantity: @ 0x080D5DD8 + adds r1, r0, #0 + ldr r0, _080D5DEC + ldr r0, [r0] + adds r0, #0xac + ldr r0, [r0] + ldrh r1, [r1] + eors r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bx lr + .align 2, 0 +_080D5DEC: .4byte 0x03005AF0 + thumb_func_end GetBagItemQuantity + + thumb_func_start SetBagItemQuantity +SetBagItemQuantity: @ 0x080D5DF0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r2, _080D5E04 + ldr r2, [r2] + adds r2, #0xac + ldr r2, [r2] + eors r1, r2 + strh r1, [r0] + bx lr + .align 2, 0 +_080D5E04: .4byte 0x03005AF0 + thumb_func_end SetBagItemQuantity + + thumb_func_start GetPCItemQuantity +GetPCItemQuantity: @ 0x080D5E08 + ldrh r0, [r0] + bx lr + thumb_func_end GetPCItemQuantity + + thumb_func_start SetPCItemQuantity +SetPCItemQuantity: @ 0x080D5E0C + strh r1, [r0] + bx lr + thumb_func_end SetPCItemQuantity + + thumb_func_start ApplyNewEncryptionKeyToBagItems +ApplyNewEncryptionKeyToBagItems: @ 0x080D5E10 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + mov r8, r0 + movs r1, #0 + ldr r0, _080D5E64 + mov sb, r0 +_080D5E22: + movs r6, #0 + lsls r5, r1, #3 + mov r2, sb + adds r0, r5, r2 + adds r7, r1, #1 + ldrb r0, [r0, #4] + cmp r6, r0 + bhs _080D5E50 + ldr r2, _080D5E64 +_080D5E34: + adds r4, r5, r2 + lsls r1, r6, #2 + ldr r0, [r4] + adds r0, r0, r1 + adds r0, #2 + mov r1, r8 + str r2, [sp] + bl ApplyNewEncryptionKeyToHword + adds r6, #1 + ldr r2, [sp] + ldrb r4, [r4, #4] + cmp r6, r4 + blo _080D5E34 +_080D5E50: + adds r1, r7, #0 + cmp r1, #4 + bls _080D5E22 + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D5E64: .4byte 0x02039A78 + thumb_func_end ApplyNewEncryptionKeyToBagItems + + thumb_func_start ApplyNewEncryptionKeyToBagItems_ +ApplyNewEncryptionKeyToBagItems_: @ 0x080D5E68 + push {lr} + bl ApplyNewEncryptionKeyToBagItems + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ApplyNewEncryptionKeyToBagItems_ + + thumb_func_start SetBagItemsPointers +SetBagItemsPointers: @ 0x080D5E74 + push {r4, lr} + ldr r1, _080D5EC0 + ldr r0, _080D5EC4 + ldr r2, [r0] + movs r3, #0xac + lsls r3, r3, #3 + adds r0, r2, r3 + str r0, [r1] + movs r3, #0x1e + strb r3, [r1, #4] + movs r4, #0xbb + lsls r4, r4, #3 + adds r0, r2, r4 + str r0, [r1, #0x20] + adds r0, r1, #0 + adds r0, #0x24 + strb r3, [r0] + movs r3, #0xca + lsls r3, r3, #3 + adds r0, r2, r3 + str r0, [r1, #8] + movs r0, #0x10 + strb r0, [r1, #0xc] + adds r4, #0xb8 + adds r0, r2, r4 + str r0, [r1, #0x10] + movs r0, #0x40 + strb r0, [r1, #0x14] + movs r0, #0xf2 + lsls r0, r0, #3 + adds r2, r2, r0 + str r2, [r1, #0x18] + movs r0, #0x2e + strb r0, [r1, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D5EC0: .4byte 0x02039A78 +_080D5EC4: .4byte 0x03005AEC + thumb_func_end SetBagItemsPointers + + thumb_func_start CopyItemName +CopyItemName: @ 0x080D5EC8 + push {r4, lr} + adds r4, r1, #0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xaf + bne _080D5EF0 + movs r0, #0x2b + bl GetBerryInfo + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCopy + ldr r1, _080D5EEC + adds r0, r4, #0 + bl StringAppend + b _080D5EFC + .align 2, 0 +_080D5EEC: .4byte 0x085C9440 +_080D5EF0: + bl ItemId_GetName + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCopy +_080D5EFC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CopyItemName + + thumb_func_start IsBagPocketNonEmpty +IsBagPocketNonEmpty: @ 0x080D5F04 + push {lr} + lsls r0, r0, #0x18 + movs r2, #0 + ldr r1, _080D5F28 + lsrs r0, r0, #0x15 + subs r0, #8 + adds r0, r0, r1 + ldrb r1, [r0, #4] + cmp r2, r1 + bhs _080D5F36 + ldr r3, [r0] +_080D5F1A: + lsls r0, r2, #2 + adds r0, r0, r3 + ldrh r0, [r0] + cmp r0, #0 + beq _080D5F2C + movs r0, #1 + b _080D5F38 + .align 2, 0 +_080D5F28: .4byte 0x02039A78 +_080D5F2C: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, r1 + blo _080D5F1A +_080D5F36: + movs r0, #0 +_080D5F38: + pop {r1} + bx r1 + thumb_func_end IsBagPocketNonEmpty + + thumb_func_start CheckBagHasItem +CheckBagHasItem: @ 0x080D5F3C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + adds r0, r7, #0 + bl ItemId_GetImportance + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D5FCE + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080D5F6A + ldr r0, _080D5F78 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080D5F80 +_080D5F6A: + adds r0, r7, #0 + adds r1, r5, #0 + bl CheckPyramidBagHasItem + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _080D5FD0 + .align 2, 0 +_080D5F78: .4byte 0x00004004 +_080D5F7C: + movs r0, #1 + b _080D5FD0 +_080D5F80: + adds r0, r7, #0 + bl ItemId_GetImportance + subs r0, #1 + lsls r0, r0, #0x18 + movs r6, #0 + ldr r1, _080D5F94 + lsrs r4, r0, #0x15 + b _080D5FC6 + .align 2, 0 +_080D5F94: .4byte 0x02039A78 +_080D5F98: + adds r0, r4, r1 + ldr r1, [r0] + lsls r0, r6, #2 + adds r1, r0, r1 + ldrh r0, [r1] + cmp r0, r7 + bne _080D5FBE + adds r0, r1, #2 + bl GetBagItemQuantity + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r5 + bhs _080D5F7C + subs r0, r5, r0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0 + beq _080D5F7C +_080D5FBE: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _080D5FD8 +_080D5FC6: + adds r0, r4, r1 + ldrb r0, [r0, #4] + cmp r6, r0 + blo _080D5F98 +_080D5FCE: + movs r0, #0 +_080D5FD0: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080D5FD8: .4byte 0x02039A78 + thumb_func_end CheckBagHasItem + + thumb_func_start HasAtLeastOneBerry +HasAtLeastOneBerry: @ 0x080D5FDC + push {r4, lr} + movs r4, #0x85 +_080D5FE0: + adds r0, r4, #0 + movs r1, #1 + bl CheckBagHasItem + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #1 + bne _080D5FFC + ldr r0, _080D5FF8 + strh r1, [r0] + movs r0, #1 + b _080D600E + .align 2, 0 +_080D5FF8: .4byte 0x02037290 +_080D5FFC: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0xb2 + bls _080D5FE0 + ldr r1, _080D6014 + movs r0, #0 + strh r0, [r1] + movs r0, #0 +_080D600E: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080D6014: .4byte 0x02037290 + thumb_func_end HasAtLeastOneBerry + + thumb_func_start CheckBagHasSpace +CheckBagHasSpace: @ 0x080D6018 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + bl ItemId_GetImportance + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D611E + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080D6050 + ldr r0, _080D6060 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080D6064 +_080D6050: + mov r0, r8 + adds r1, r5, #0 + bl CheckPyramidBagHasSpace + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _080D612E + .align 2, 0 +_080D6060: .4byte 0x00004004 +_080D6064: + mov r0, r8 + bl ItemId_GetImportance + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r7, _080D6124 + cmp r2, #3 + beq _080D6078 + movs r7, #0x63 +_080D6078: + movs r6, #0 + ldr r1, _080D6128 + lsls r4, r2, #3 + adds r0, r4, r1 + mov sb, r4 + ldrb r0, [r0, #4] + cmp r6, r0 + bhs _080D60D4 + subs r0, r2, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 +_080D6090: + adds r0, r4, r1 + ldr r1, [r0] + lsls r0, r6, #2 + adds r1, r0, r1 + ldrh r0, [r1] + cmp r0, r8 + bne _080D60C4 + adds r0, r1, #2 + str r2, [sp] + bl GetBagItemQuantity + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + adds r0, r1, r5 + ldr r2, [sp] + cmp r0, r7 + ble _080D612C + mov r0, sl + cmp r0, #1 + bls _080D611E + subs r0, r7, r1 + subs r0, r5, r0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0 + beq _080D612C +_080D60C4: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _080D6128 + adds r0, r4, r1 + ldrb r0, [r0, #4] + cmp r6, r0 + blo _080D6090 +_080D60D4: + cmp r5, #0 + beq _080D612C + movs r6, #0 + ldr r3, _080D6128 + mov r1, sb + adds r0, r1, r3 + ldrb r0, [r0, #4] + cmp r6, r0 + bhs _080D611A + adds r4, r3, #0 + subs r0, r2, #2 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 +_080D60EE: + adds r0, r1, r4 + ldr r1, [r0] + lsls r0, r6, #2 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0 + bne _080D610A + cmp r5, r7 + bls _080D612C + cmp r2, #1 + bls _080D611E + subs r0, r5, r7 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_080D610A: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + mov r1, sb + adds r0, r1, r3 + ldrb r0, [r0, #4] + cmp r6, r0 + blo _080D60EE +_080D611A: + cmp r5, #0 + beq _080D612C +_080D611E: + movs r0, #0 + b _080D612E + .align 2, 0 +_080D6124: .4byte 0x000003E7 +_080D6128: .4byte 0x02039A78 +_080D612C: + movs r0, #1 +_080D612E: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CheckBagHasSpace + + thumb_func_start AddBagItem +AddBagItem: @ 0x080D6140 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + bl ItemId_GetImportance + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080D6164 + movs r0, #0 + b _080D62AA +_080D6164: + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080D617C + ldr r0, _080D618C + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080D6190 +_080D617C: + mov r0, sb + adds r1, r5, #0 + bl AddPyramidBagItem + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _080D62AA + .align 2, 0 +_080D618C: .4byte 0x00004004 +_080D6190: + mov r0, sb + bl ItemId_GetImportance + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + lsls r1, r0, #3 + ldr r0, _080D6250 + adds r7, r1, r0 + ldrb r0, [r7, #4] + lsls r0, r0, #2 + bl AllocZeroed + mov r8, r0 + ldr r1, [r7] + ldrb r2, [r7, #4] + lsls r2, r2, #2 + bl memcpy + ldr r2, _080D6254 + mov r0, sl + cmp r0, #3 + beq _080D61C2 + movs r2, #0x63 +_080D61C2: + movs r6, #0 + ldrb r0, [r7, #4] + cmp r6, r0 + bhs _080D621E + mov r0, sl + subs r0, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] +_080D61D4: + lsls r0, r6, #2 + mov r3, r8 + adds r1, r0, r3 + ldrh r0, [r1] + cmp r0, sb + bne _080D6212 + adds r4, r1, #2 + adds r0, r4, #0 + str r2, [sp, #4] + bl GetBagItemQuantity + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r0, r5 + ldr r2, [sp, #4] + cmp r1, r2 + ble _080D6280 + ldr r1, [sp] + cmp r1, #1 + bls _080D628C + subs r0, r2, r0 + subs r0, r5, r0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r4, #0 + adds r1, r2, #0 + bl SetBagItemQuantity + ldr r2, [sp, #4] + cmp r5, #0 + beq _080D6296 +_080D6212: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldrb r0, [r7, #4] + cmp r6, r0 + blo _080D61D4 +_080D621E: + cmp r5, #0 + beq _080D6296 + movs r6, #0 + cmp r6, r0 + bhs _080D627A + mov r0, sl + subs r0, #2 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_080D6230: + lsls r0, r6, #2 + mov r3, r8 + adds r1, r0, r3 + ldrh r0, [r1] + cmp r0, #0 + bne _080D626E + mov r0, sb + strh r0, [r1] + cmp r5, r2 + bhi _080D6258 + adds r0, r1, #2 + adds r1, r5, #0 + bl SetBagItemQuantity + b _080D6296 + .align 2, 0 +_080D6250: .4byte 0x02039A78 +_080D6254: .4byte 0x000003E7 +_080D6258: + cmp r4, #1 + bls _080D628C + subs r0, r5, r2 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r1, #2 + adds r1, r2, #0 + str r2, [sp, #4] + bl SetBagItemQuantity + ldr r2, [sp, #4] +_080D626E: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldrb r1, [r7, #4] + cmp r6, r1 + blo _080D6230 +_080D627A: + cmp r5, #0 + beq _080D6296 + b _080D628C +_080D6280: + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl SetBagItemQuantity + b _080D6296 +_080D628C: + mov r0, r8 + bl Free + movs r0, #0 + b _080D62AA +_080D6296: + ldr r0, [r7] + ldrb r2, [r7, #4] + lsls r2, r2, #2 + mov r1, r8 + bl memcpy + mov r0, r8 + bl Free + movs r0, #1 +_080D62AA: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end AddBagItem + + thumb_func_start RemoveBagItem +RemoveBagItem: @ 0x080D62BC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + movs r4, #0 + bl ItemId_GetImportance + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D6350 + mov r0, r8 + cmp r0, #0 + beq _080D6350 + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080D62F8 + ldr r0, _080D6308 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080D630C +_080D62F8: + mov r0, r8 + adds r1, r7, #0 + bl RemovePyramidBagItem + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _080D6472 + .align 2, 0 +_080D6308: .4byte 0x00004004 +_080D630C: + mov r0, r8 + bl ItemId_GetImportance + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + lsls r1, r0, #3 + ldr r0, _080D6354 + adds r5, r1, r0 + movs r6, #0 + ldrb r2, [r5, #4] + cmp r6, r2 + bhs _080D634C +_080D6328: + ldr r0, [r5] + lsls r1, r6, #2 + adds r1, r1, r0 + ldrh r0, [r1] + cmp r0, r8 + bne _080D6340 + adds r0, r1, #2 + bl GetBagItemQuantity + adds r0, r4, r0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_080D6340: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldrb r0, [r5, #4] + cmp r6, r0 + blo _080D6328 +_080D634C: + cmp r4, r7 + bhs _080D6358 +_080D6350: + movs r0, #0 + b _080D6472 + .align 2, 0 +_080D6354: .4byte 0x02039A78 +_080D6358: + bl CurMapIsSecretBase + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080D6388 + ldr r4, _080D63C8 + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r2, #0x80 + lsls r2, r2, #2 + adds r0, r2, #0 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl VarSet + ldr r0, _080D63CC + mov r1, r8 + bl VarSet +_080D6388: + mov r0, sb + bl GetItemListPosition + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldrb r0, [r5, #4] + cmp r0, r1 + bls _080D63FE + ldr r0, [r5] + lsls r1, r1, #2 + adds r2, r1, r0 + ldrh r0, [r2] + adds r4, r1, #0 + cmp r0, r8 + bne _080D63FE + adds r0, r2, #2 + bl GetBagItemQuantity + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, r7 + blo _080D63D0 + ldr r0, [r5] + adds r0, r0, r4 + adds r0, #2 + subs r1, r1, r7 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl SetBagItemQuantity + movs r7, #0 + b _080D63E2 + .align 2, 0 +_080D63C8: .4byte 0x000040EE +_080D63CC: .4byte 0x000040ED +_080D63D0: + subs r0, r7, r1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + ldr r0, [r5] + adds r0, r0, r4 + adds r0, #2 + movs r1, #0 + bl SetBagItemQuantity +_080D63E2: + ldr r0, [r5] + adds r0, r0, r4 + adds r0, #2 + bl GetBagItemQuantity + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0 + bne _080D63FA + ldr r0, [r5] + adds r0, r4, r0 + strh r2, [r0] +_080D63FA: + cmp r7, #0 + beq _080D6470 +_080D63FE: + movs r6, #0 + ldrb r0, [r5, #4] + cmp r6, r0 + bhs _080D6470 +_080D6406: + ldr r0, [r5] + lsls r1, r6, #2 + adds r2, r1, r0 + ldrh r0, [r2] + adds r4, r1, #0 + cmp r0, r8 + bne _080D6464 + adds r0, r2, #2 + bl GetBagItemQuantity + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, r7 + blo _080D6436 + ldr r0, [r5] + adds r0, r0, r4 + adds r0, #2 + subs r1, r1, r7 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl SetBagItemQuantity + movs r7, #0 + b _080D6448 +_080D6436: + subs r0, r7, r1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + ldr r0, [r5] + adds r0, r0, r4 + adds r0, #2 + movs r1, #0 + bl SetBagItemQuantity +_080D6448: + ldr r0, [r5] + adds r0, r0, r4 + adds r0, #2 + bl GetBagItemQuantity + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0 + bne _080D6460 + ldr r0, [r5] + adds r0, r4, r0 + strh r2, [r0] +_080D6460: + cmp r7, #0 + beq _080D6470 +_080D6464: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldrb r2, [r5, #4] + cmp r6, r2 + blo _080D6406 +_080D6470: + movs r0, #1 +_080D6472: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end RemoveBagItem + + thumb_func_start GetPocketByItemId +GetPocketByItemId: @ 0x080D6480 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl ItemId_GetImportance + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetPocketByItemId + + thumb_func_start ClearItemSlots +ClearItemSlots: @ 0x080D6494 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + lsls r1, r1, #0x18 + movs r4, #0 + lsrs r1, r1, #0x18 + cmp r4, r1 + bhs _080D64BE + adds r5, r1, #0 + movs r7, #0 +_080D64A6: + lsls r0, r4, #2 + adds r0, r0, r6 + strh r7, [r0] + adds r0, #2 + movs r1, #0 + bl SetBagItemQuantity + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, r5 + blo _080D64A6 +_080D64BE: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end ClearItemSlots + + thumb_func_start FindFreePCItemSlot +FindFreePCItemSlot: @ 0x080D64C4 + push {lr} + movs r1, #0 + ldr r0, _080D64E4 + ldr r2, [r0] + movs r3, #0x93 + lsls r3, r3, #3 +_080D64D0: + lsls r0, r1, #0x18 + asrs r1, r0, #0x18 + lsls r0, r1, #2 + adds r0, r2, r0 + adds r0, r0, r3 + ldrh r0, [r0] + cmp r0, #0 + bne _080D64E8 + adds r0, r1, #0 + b _080D64F8 + .align 2, 0 +_080D64E4: .4byte 0x03005AEC +_080D64E8: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0x31 + ble _080D64D0 + movs r0, #1 + rsbs r0, r0, #0 +_080D64F8: + pop {r1} + bx r1 + thumb_func_end FindFreePCItemSlot + + thumb_func_start CountUsedPCItemSlots +CountUsedPCItemSlots: @ 0x080D64FC + push {r4, lr} + movs r2, #0 + movs r1, #0 + ldr r0, _080D6530 + ldr r3, [r0] + movs r4, #0x93 + lsls r4, r4, #3 +_080D650A: + lsls r0, r1, #2 + adds r0, r3, r0 + adds r0, r0, r4 + ldrh r0, [r0] + cmp r0, #0 + beq _080D651C + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 +_080D651C: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x31 + bls _080D650A + adds r0, r2, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080D6530: .4byte 0x03005AEC + thumb_func_end CountUsedPCItemSlots + + thumb_func_start CheckPCHasItem +CheckPCHasItem: @ 0x080D6534 + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + movs r4, #0 +_080D6540: + ldr r0, _080D656C + ldr r2, [r0] + lsls r1, r4, #2 + adds r0, r2, r1 + movs r3, #0x93 + lsls r3, r3, #3 + adds r0, r0, r3 + ldrh r0, [r0] + cmp r0, r6 + bne _080D6574 + adds r0, r1, r2 + ldr r1, _080D6570 + adds r0, r0, r1 + bl GetPCItemQuantity + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r5 + blo _080D6574 + movs r0, #1 + b _080D6580 + .align 2, 0 +_080D656C: .4byte 0x03005AEC +_080D6570: .4byte 0x0000049A +_080D6574: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x31 + bls _080D6540 + movs r0, #0 +_080D6580: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CheckPCHasItem + + thumb_func_start AddPCItem +AddPCItem: @ 0x080D6588 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + movs r0, #0xc8 + bl AllocZeroed + adds r7, r0, #0 + ldr r0, _080D6610 + ldr r1, [r0] + movs r0, #0x93 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r0, r7, #0 + movs r2, #0xc8 + bl memcpy + movs r6, #0 +_080D65B4: + lsls r0, r6, #2 + adds r1, r0, r7 + ldrh r0, [r1] + cmp r0, r8 + bne _080D65E8 + adds r4, r1, #2 + adds r0, r4, #0 + bl GetPCItemQuantity + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + adds r1, r2, r5 + ldr r3, _080D6614 + cmp r1, r3 + ble _080D661C + ldr r1, _080D6618 + adds r0, r5, r1 + adds r0, r2, r0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r4, #0 + adds r1, r3, #0 + bl SetPCItemQuantity + cmp r5, #0 + beq _080D6638 +_080D65E8: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0x31 + bls _080D65B4 + cmp r5, #0 + beq _080D6638 + bl FindFreePCItemSlot + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _080D6628 + adds r0, r7, #0 + bl Free + movs r0, #0 + b _080D6652 + .align 2, 0 +_080D6610: .4byte 0x03005AEC +_080D6614: .4byte 0x000003E7 +_080D6618: .4byte 0x0000FC19 +_080D661C: + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl SetPCItemQuantity + b _080D6638 +_080D6628: + lsls r0, r1, #2 + adds r0, r0, r7 + mov r1, r8 + strh r1, [r0] + adds r0, #2 + adds r1, r5, #0 + bl SetPCItemQuantity +_080D6638: + ldr r0, _080D665C + ldr r0, [r0] + movs r1, #0x93 + lsls r1, r1, #3 + adds r0, r0, r1 + adds r1, r7, #0 + movs r2, #0xc8 + bl memcpy + adds r0, r7, #0 + bl Free + movs r0, #1 +_080D6652: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080D665C: .4byte 0x03005AEC + thumb_func_end AddPCItem + + thumb_func_start RemovePCItem +RemovePCItem: @ 0x080D6660 + push {lr} + lsls r0, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r2, _080D6694 + ldr r2, [r2] + lsrs r0, r0, #0x16 + adds r3, r2, r0 + ldr r0, _080D6698 + adds r2, r3, r0 + ldrh r0, [r2] + subs r0, r0, r1 + strh r0, [r2] + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + bne _080D668E + movs r2, #0x93 + lsls r2, r2, #3 + adds r0, r3, r2 + strh r1, [r0] + bl CompactPCItems +_080D668E: + pop {r0} + bx r0 + .align 2, 0 +_080D6694: .4byte 0x03005AEC +_080D6698: .4byte 0x0000049A + thumb_func_end RemovePCItem + + thumb_func_start CompactPCItems +CompactPCItems: @ 0x080D669C + push {r4, r5, r6, r7, lr} + movs r2, #0 +_080D66A0: + adds r1, r2, #1 + lsls r0, r1, #0x10 + lsrs r4, r0, #0x10 + adds r6, r1, #0 + cmp r4, #0x31 + bhi _080D66E2 + ldr r0, _080D66F0 + mov ip, r0 + lsls r5, r2, #2 + movs r7, #0x93 + lsls r7, r7, #3 +_080D66B6: + mov r0, ip + ldr r1, [r0] + adds r0, r1, r5 + adds r0, r0, r7 + ldrh r0, [r0] + cmp r0, #0 + bne _080D66D8 + movs r0, #0x93 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r2, r1, r5 + ldr r3, [r2] + lsls r0, r4, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r2] + str r3, [r1] +_080D66D8: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x31 + bls _080D66B6 +_080D66E2: + lsls r0, r6, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0x30 + bls _080D66A0 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D66F0: .4byte 0x03005AEC + thumb_func_end CompactPCItems + + thumb_func_start SwapRegisteredBike +SwapRegisteredBike: @ 0x080D66F4 + push {lr} + ldr r0, _080D6710 + ldr r0, [r0] + ldr r2, _080D6714 + adds r1, r0, r2 + ldrh r2, [r1] + ldr r3, _080D6718 + cmp r2, r3 + beq _080D671C + movs r0, #0x88 + lsls r0, r0, #1 + cmp r2, r0 + beq _080D6724 + b _080D6726 + .align 2, 0 +_080D6710: .4byte 0x03005AEC +_080D6714: .4byte 0x00000496 +_080D6718: .4byte 0x00000103 +_080D671C: + movs r0, #0x88 + lsls r0, r0, #1 + strh r0, [r1] + b _080D6726 +_080D6724: + strh r3, [r1] +_080D6726: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SwapRegisteredBike + + thumb_func_start BagGetItemIdByPocketPosition +BagGetItemIdByPocketPosition: @ 0x080D672C + lsls r0, r0, #0x18 + lsls r1, r1, #0x10 + ldr r2, _080D6744 + lsrs r0, r0, #0x15 + subs r0, #8 + adds r0, r0, r2 + ldr r0, [r0] + lsrs r1, r1, #0xe + adds r1, r1, r0 + ldrh r0, [r1] + bx lr + .align 2, 0 +_080D6744: .4byte 0x02039A78 + thumb_func_end BagGetItemIdByPocketPosition + + thumb_func_start BagGetQuantityByPocketPosition +BagGetQuantityByPocketPosition: @ 0x080D6748 + push {lr} + lsls r0, r0, #0x18 + lsls r1, r1, #0x10 + ldr r2, _080D676C + lsrs r0, r0, #0x15 + subs r0, #8 + adds r0, r0, r2 + lsrs r1, r1, #0xe + ldr r0, [r0] + adds r0, r0, r1 + adds r0, #2 + bl GetBagItemQuantity + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 +_080D676C: .4byte 0x02039A78 + thumb_func_end BagGetQuantityByPocketPosition + + thumb_func_start SwapItemSlots +SwapItemSlots: @ 0x080D6770 + ldr r3, [r0] + ldr r2, [r1] + str r2, [r0] + str r3, [r1] + bx lr + .align 2, 0 + thumb_func_end SwapItemSlots + + thumb_func_start CompactItemsInBagPocket +CompactItemsInBagPocket: @ 0x080D677C + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + movs r3, #0 + b _080D67BE +_080D6784: + adds r1, r3, #1 + lsls r0, r1, #0x10 + lsrs r4, r0, #0x10 + adds r7, r1, #0 + cmp r4, r2 + bhs _080D67BA + lsls r5, r3, #2 +_080D6792: + ldr r0, [r6] + adds r0, r0, r5 + adds r0, #2 + bl GetBagItemQuantity + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080D67AE + ldr r1, [r6] + adds r0, r1, r5 + lsls r2, r4, #2 + adds r1, r1, r2 + bl SwapItemSlots +_080D67AE: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldrb r0, [r6, #4] + cmp r4, r0 + blo _080D6792 +_080D67BA: + lsls r0, r7, #0x10 + lsrs r3, r0, #0x10 +_080D67BE: + ldrb r2, [r6, #4] + subs r0, r2, #1 + cmp r3, r0 + blt _080D6784 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end CompactItemsInBagPocket + + thumb_func_start SortBerriesOrTMHMs +SortBerriesOrTMHMs: @ 0x080D67CC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + movs r3, #0 + b _080D6832 +_080D67D8: + adds r1, r3, #1 + lsls r0, r1, #0x10 + lsrs r5, r0, #0x10 + mov r8, r1 + cmp r5, r2 + bhs _080D682C + lsls r7, r3, #2 +_080D67E6: + ldr r0, [r6] + adds r0, r0, r7 + adds r0, #2 + bl GetBagItemQuantity + lsls r0, r0, #0x10 + lsls r4, r5, #2 + cmp r0, #0 + beq _080D6816 + ldr r0, [r6] + adds r0, r0, r4 + adds r0, #2 + bl GetBagItemQuantity + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080D6820 + ldr r0, [r6] + adds r1, r7, r0 + adds r0, r4, r0 + ldrh r1, [r1] + ldrh r0, [r0] + cmp r1, r0 + bls _080D6820 +_080D6816: + ldr r1, [r6] + adds r0, r1, r7 + adds r1, r1, r4 + bl SwapItemSlots +_080D6820: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldrb r0, [r6, #4] + cmp r5, r0 + blo _080D67E6 +_080D682C: + mov r1, r8 + lsls r0, r1, #0x10 + lsrs r3, r0, #0x10 +_080D6832: + ldrb r2, [r6, #4] + subs r0, r2, #1 + cmp r3, r0 + blt _080D67D8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end SortBerriesOrTMHMs + + thumb_func_start MoveItemSlotInList +MoveItemSlotInList: @ 0x080D6844 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r3, r2, #0 + cmp r1, r3 + beq _080D68A4 + lsls r0, r1, #2 + adds r0, r0, r4 + ldr r6, [r0] + cmp r3, r1 + bls _080D687C + subs r3, #1 + lsls r1, r1, #0x10 + lsls r0, r3, #0x10 + asrs r2, r0, #0x10 + cmp r1, r0 + bge _080D689E + adds r5, r2, #0 +_080D6866: + asrs r2, r1, #0x10 + lsls r0, r2, #2 + adds r0, r0, r4 + ldr r1, [r0, #4] + str r1, [r0] + adds r2, #1 + lsls r1, r2, #0x10 + asrs r0, r1, #0x10 + cmp r0, r5 + blt _080D6866 + b _080D689E +_080D687C: + lsls r1, r1, #0x10 + lsls r0, r3, #0x10 + asrs r2, r0, #0x10 + cmp r1, r0 + ble _080D689E + adds r5, r2, #0 +_080D6888: + asrs r2, r1, #0x10 + lsls r1, r2, #2 + adds r1, r1, r4 + subs r0, r1, #4 + ldr r0, [r0] + str r0, [r1] + subs r2, #1 + lsls r1, r2, #0x10 + asrs r0, r1, #0x10 + cmp r0, r5 + bgt _080D6888 +_080D689E: + lsls r0, r3, #2 + adds r0, r0, r4 + str r6, [r0] +_080D68A4: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end MoveItemSlotInList + + thumb_func_start ClearBag +ClearBag: @ 0x080D68AC + push {r4, r5, lr} + movs r4, #0 + ldr r5, _080D68D0 +_080D68B2: + lsls r1, r4, #3 + adds r1, r1, r5 + ldr r0, [r1] + ldrb r1, [r1, #4] + bl ClearItemSlots + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #4 + bls _080D68B2 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D68D0: .4byte 0x02039A78 + thumb_func_end ClearBag + + thumb_func_start CountTotalItemQuantityInBag +CountTotalItemQuantityInBag: @ 0x080D68D4 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + movs r7, #0 + adds r0, r6, #0 + bl ItemId_GetImportance + lsls r0, r0, #0x18 + lsrs r0, r0, #0x15 + ldr r1, _080D6920 + adds r5, r0, r1 + movs r4, #0 + ldrb r0, [r5, #4] + cmp r7, r0 + bhs _080D6916 +_080D68F2: + ldr r0, [r5] + lsls r1, r4, #2 + adds r1, r1, r0 + ldrh r0, [r1] + cmp r0, r6 + bne _080D690A + adds r0, r1, #2 + bl GetBagItemQuantity + adds r0, r7, r0 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 +_080D690A: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldrb r0, [r5, #4] + cmp r4, r0 + blo _080D68F2 +_080D6916: + adds r0, r7, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080D6920: .4byte 0x02039A70 + thumb_func_end CountTotalItemQuantityInBag + + thumb_func_start CheckPyramidBagHasItem +CheckPyramidBagHasItem: @ 0x080D6924 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + ldr r0, _080D6978 + ldr r3, [r0] + ldr r1, _080D697C + adds r0, r3, r1 + ldrb r1, [r0] + lsls r1, r1, #0x1e + lsrs r2, r1, #0x1e + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _080D6980 + adds r0, r0, r2 + adds r2, r3, r0 + lsrs r1, r1, #0x1e + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r1, _080D6984 + adds r0, r0, r1 + adds r3, r3, r0 + movs r1, #0 +_080D6958: + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r0, r5 + bne _080D6988 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, r4 + bhs _080D6974 + subs r0, r4, r0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0 + bne _080D6988 +_080D6974: + movs r0, #1 + b _080D6994 + .align 2, 0 +_080D6978: .4byte 0x03005AF0 +_080D697C: .4byte 0x00000CA9 +_080D6980: .4byte 0x00000E2C +_080D6984: .4byte 0x00000E54 +_080D6988: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #9 + bls _080D6958 + movs r0, #0 +_080D6994: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CheckPyramidBagHasItem + + thumb_func_start CheckPyramidBagHasSpace +CheckPyramidBagHasSpace: @ 0x080D699C + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + ldr r0, _080D69F8 + ldr r3, [r0] + ldr r1, _080D69FC + adds r0, r3, r1 + ldrb r1, [r0] + lsls r1, r1, #0x1e + lsrs r2, r1, #0x1e + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _080D6A00 + adds r0, r0, r2 + adds r2, r3, r0 + lsrs r1, r1, #0x1e + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r1, _080D6A04 + adds r0, r0, r1 + adds r3, r3, r0 + movs r1, #0 +_080D69D0: + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r0, r5 + beq _080D69DE + cmp r0, #0 + bne _080D6A08 +_080D69DE: + adds r0, r3, r1 + ldrb r0, [r0] + adds r0, r0, r4 + cmp r0, #0x63 + ble _080D69F2 + subs r0, #0x63 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0 + bne _080D6A08 +_080D69F2: + movs r0, #1 + b _080D6A14 + .align 2, 0 +_080D69F8: .4byte 0x03005AF0 +_080D69FC: .4byte 0x00000CA9 +_080D6A00: .4byte 0x00000E2C +_080D6A04: .4byte 0x00000E54 +_080D6A08: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #9 + bls _080D69D0 + movs r0, #0 +_080D6A14: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CheckPyramidBagHasSpace + + thumb_func_start AddPyramidBagItem +AddPyramidBagItem: @ 0x080D6A1C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + ldr r0, _080D6AAC + ldr r3, [r0] + ldr r1, _080D6AB0 + adds r0, r3, r1 + ldrb r1, [r0] + lsls r1, r1, #0x1e + lsrs r2, r1, #0x1e + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _080D6AB4 + adds r0, r0, r2 + adds r0, r0, r3 + mov sb, r0 + lsrs r1, r1, #0x1e + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r1, _080D6AB8 + adds r0, r0, r1 + adds r3, r3, r0 + mov r8, r3 + movs r0, #0x14 + bl Alloc + adds r5, r0, #0 + movs r0, #0xa + bl Alloc + adds r6, r0, #0 + adds r0, r5, #0 + mov r1, sb + movs r2, #0x14 + bl memcpy + adds r0, r6, #0 + mov r1, r8 + movs r2, #0xa + bl memcpy + movs r2, #0 +_080D6A7E: + lsls r0, r2, #1 + adds r0, r0, r5 + ldrh r0, [r0] + cmp r0, r7 + bne _080D6AC2 + adds r1, r6, r2 + ldrb r0, [r1] + cmp r0, #0x62 + bhi _080D6AC2 + adds r0, r0, r4 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x63 + bls _080D6ABC + ldrb r0, [r1] + subs r0, #0x63 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r0, #0x63 + strb r0, [r1] + b _080D6ABE + .align 2, 0 +_080D6AAC: .4byte 0x03005AF0 +_080D6AB0: .4byte 0x00000CA9 +_080D6AB4: .4byte 0x00000E2C +_080D6AB8: .4byte 0x00000E54 +_080D6ABC: + movs r4, #0 +_080D6ABE: + cmp r4, #0 + beq _080D6B1C +_080D6AC2: + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #9 + bls _080D6A7E + cmp r4, #0 + beq _080D6B1C + movs r2, #0 +_080D6AD2: + lsls r0, r2, #1 + adds r1, r0, r5 + ldrh r0, [r1] + cmp r0, #0 + bne _080D6AFE + strh r7, [r1] + adds r1, r6, r2 + strb r4, [r1] + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x63 + bls _080D6AF8 + ldrb r0, [r1] + subs r0, #0x63 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r0, #0x63 + strb r0, [r1] + b _080D6AFA +_080D6AF8: + movs r4, #0 +_080D6AFA: + cmp r4, #0 + beq _080D6B1C +_080D6AFE: + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #9 + bls _080D6AD2 + cmp r4, #0 + beq _080D6B1C + adds r0, r5, #0 + bl Free + adds r0, r6, #0 + bl Free + movs r0, #0 + b _080D6B3E +_080D6B1C: + mov r0, sb + adds r1, r5, #0 + movs r2, #0x14 + bl memcpy + mov r0, r8 + adds r1, r6, #0 + movs r2, #0xa + bl memcpy + adds r0, r5, #0 + bl Free + adds r0, r6, #0 + bl Free + movs r0, #1 +_080D6B3E: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end AddPyramidBagItem + + thumb_func_start RemovePyramidBagItem +RemovePyramidBagItem: @ 0x080D6B4C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + ldr r0, _080D6BB8 + ldr r3, [r0] + ldr r1, _080D6BBC + adds r0, r3, r1 + ldrb r1, [r0] + lsls r1, r1, #0x1e + lsrs r2, r1, #0x1e + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _080D6BC0 + adds r0, r0, r2 + adds r0, r0, r3 + mov r8, r0 + lsrs r1, r1, #0x1e + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r1, _080D6BC4 + adds r0, r0, r1 + adds r7, r3, r0 + ldr r1, _080D6BC8 + ldrh r0, [r1, #8] + ldrh r1, [r1, #6] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + lsls r0, r2, #1 + mov r1, r8 + adds r3, r0, r1 + ldrh r0, [r3] + cmp r0, sb + bne _080D6BCC + adds r1, r7, r2 + ldrb r0, [r1] + cmp r0, r4 + blo _080D6BCC + subs r0, r0, r4 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _080D6C64 + strh r0, [r3] + b _080D6C64 + .align 2, 0 +_080D6BB8: .4byte 0x03005AF0 +_080D6BBC: .4byte 0x00000CA9 +_080D6BC0: .4byte 0x00000E2C +_080D6BC4: .4byte 0x00000E54 +_080D6BC8: .4byte 0x0203CBFC +_080D6BCC: + movs r0, #0x14 + bl Alloc + adds r5, r0, #0 + movs r0, #0xa + bl Alloc + adds r6, r0, #0 + adds r0, r5, #0 + mov r1, r8 + movs r2, #0x14 + bl memcpy + adds r0, r6, #0 + adds r1, r7, #0 + movs r2, #0xa + bl memcpy + movs r2, #0 +_080D6BF2: + lsls r0, r2, #1 + adds r3, r0, r5 + ldrh r0, [r3] + cmp r0, sb + bne _080D6C26 + adds r1, r6, r2 + ldrb r0, [r1] + cmp r0, r4 + blo _080D6C14 + subs r0, r0, r4 + strb r0, [r1] + movs r4, #0 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080D6C22 + strh r4, [r3] + b _080D6C22 +_080D6C14: + subs r0, r4, r0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r0, #0 + strb r0, [r1] + movs r0, #0 + strh r0, [r3] +_080D6C22: + cmp r4, #0 + beq _080D6C44 +_080D6C26: + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #9 + bls _080D6BF2 + cmp r4, #0 + beq _080D6C44 + adds r0, r5, #0 + bl Free + adds r0, r6, #0 + bl Free + movs r0, #0 + b _080D6C66 +_080D6C44: + mov r0, r8 + adds r1, r5, #0 + movs r2, #0x14 + bl memcpy + adds r0, r7, #0 + adds r1, r6, #0 + movs r2, #0xa + bl memcpy + adds r0, r5, #0 + bl Free + adds r0, r6, #0 + bl Free +_080D6C64: + movs r0, #1 +_080D6C66: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end RemovePyramidBagItem + + thumb_func_start SanitizeItemId +SanitizeItemId: @ 0x080D6C74 + push {lr} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + movs r0, #0xbc + lsls r0, r0, #1 + cmp r1, r0 + bhi _080D6C86 + adds r0, r1, #0 + b _080D6C88 +_080D6C86: + movs r0, #0 +_080D6C88: + pop {r1} + bx r1 + thumb_func_end SanitizeItemId + + thumb_func_start ItemId_GetName +ItemId_GetName: @ 0x080D6C8C + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl SanitizeItemId + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + ldr r1, _080D6CAC + adds r0, r0, r1 + pop {r1} + bx r1 + .align 2, 0 +_080D6CAC: .4byte 0x0855CEE8 + thumb_func_end ItemId_GetName + + thumb_func_start sub_080D6CB0 +sub_080D6CB0: @ 0x080D6CB0 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _080D6CD0 + bl SanitizeItemId + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r4 + ldrh r0, [r1, #0xa] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080D6CD0: .4byte 0x0855CEE8 + thumb_func_end sub_080D6CB0 + + thumb_func_start sub_080D6CD4 +sub_080D6CD4: @ 0x080D6CD4 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _080D6CF4 + bl SanitizeItemId + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r4 + ldrh r0, [r1, #0xc] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080D6CF4: .4byte 0x0855CEE8 + thumb_func_end sub_080D6CD4 + + thumb_func_start sub_080D6CF8 +sub_080D6CF8: @ 0x080D6CF8 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _080D6D18 + bl SanitizeItemId + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r4 + ldrb r0, [r1, #0xe] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080D6D18: .4byte 0x0855CEE8 + thumb_func_end sub_080D6CF8 + + thumb_func_start sub_080D6D1C +sub_080D6D1C: @ 0x080D6D1C + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _080D6D3C + bl SanitizeItemId + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r4 + ldrb r0, [r1, #0xf] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080D6D3C: .4byte 0x0855CEE8 + thumb_func_end sub_080D6D1C + + thumb_func_start ItemId_GetHoldEffect +ItemId_GetHoldEffect: @ 0x080D6D40 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _080D6D64 + bl SanitizeItemId + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, #0x10 + adds r1, r1, r4 + ldr r0, [r1] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080D6D64: .4byte 0x0855CEE8 + thumb_func_end ItemId_GetHoldEffect + + thumb_func_start ItemId_GetHoldEffectParam +ItemId_GetHoldEffectParam: @ 0x080D6D68 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _080D6D88 + bl SanitizeItemId + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r4 + ldrb r0, [r1, #0x14] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080D6D88: .4byte 0x0855CEE8 + thumb_func_end ItemId_GetHoldEffectParam + + thumb_func_start sub_080D6D8C +sub_080D6D8C: @ 0x080D6D8C + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _080D6DAC + bl SanitizeItemId + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r4 + ldrb r0, [r1, #0x15] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080D6DAC: .4byte 0x0855CEE8 + thumb_func_end sub_080D6D8C + + thumb_func_start ItemId_GetImportance +ItemId_GetImportance: @ 0x080D6DB0 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _080D6DD0 + bl SanitizeItemId + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r4 + ldrb r0, [r1, #0x16] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080D6DD0: .4byte 0x0855CEE8 + thumb_func_end ItemId_GetImportance + + thumb_func_start ItemId_GetPocket +ItemId_GetPocket: @ 0x080D6DD4 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _080D6DF4 + bl SanitizeItemId + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r4 + ldrb r0, [r1, #0x17] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080D6DF4: .4byte 0x0855CEE8 + thumb_func_end ItemId_GetPocket + + thumb_func_start sub_080D6DF8 +sub_080D6DF8: @ 0x080D6DF8 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _080D6E1C + bl SanitizeItemId + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, #0x18 + adds r1, r1, r4 + ldr r0, [r1] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080D6E1C: .4byte 0x0855CEE8 + thumb_func_end sub_080D6DF8 + + thumb_func_start ItemId_GetSecondaryId +ItemId_GetSecondaryId: @ 0x080D6E20 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _080D6E40 + bl SanitizeItemId + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r4 + ldrb r0, [r1, #0x1c] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080D6E40: .4byte 0x0855CEE8 + thumb_func_end ItemId_GetSecondaryId + + thumb_func_start sub_080D6E44 +sub_080D6E44: @ 0x080D6E44 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _080D6E68 + bl SanitizeItemId + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, #0x20 + adds r1, r1, r4 + ldr r0, [r1] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080D6E68: .4byte 0x0855CEE8 + thumb_func_end sub_080D6E44 + + thumb_func_start sub_080D6E6C +sub_080D6E6C: @ 0x080D6E6C + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _080D6E90 + bl SanitizeItemId + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r4 + adds r1, #0x24 + ldrb r0, [r1] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080D6E90: .4byte 0x0855CEE8 + thumb_func_end sub_080D6E6C + diff --git a/asm/item_icon.s b/asm/item_icon.s new file mode 100644 index 0000000..db71723 --- /dev/null +++ b/asm/item_icon.s @@ -0,0 +1,293 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start AllocItemIconTemporaryBuffers +AllocItemIconTemporaryBuffers: @ 0x081AFABC + push {r4, r5, lr} + ldr r5, _081AFAE4 + movs r0, #0x90 + lsls r0, r0, #1 + bl Alloc + str r0, [r5] + cmp r0, #0 + beq _081AFAF2 + ldr r4, _081AFAE8 + movs r0, #0x80 + lsls r0, r0, #2 + bl AllocZeroed + str r0, [r4] + cmp r0, #0 + beq _081AFAEC + movs r0, #1 + b _081AFAF4 + .align 2, 0 +_081AFAE4: .4byte 0x0203CB88 +_081AFAE8: .4byte 0x0203CB8C +_081AFAEC: + ldr r0, [r5] + bl Free +_081AFAF2: + movs r0, #0 +_081AFAF4: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end AllocItemIconTemporaryBuffers + + thumb_func_start FreeItemIconTemporaryBuffers +FreeItemIconTemporaryBuffers: @ 0x081AFAFC + push {lr} + ldr r0, _081AFB14 + ldr r0, [r0] + bl Free + ldr r0, _081AFB18 + ldr r0, [r0] + bl Free + pop {r0} + bx r0 + .align 2, 0 +_081AFB14: .4byte 0x0203CB88 +_081AFB18: .4byte 0x0203CB8C + thumb_func_end FreeItemIconTemporaryBuffers + + thumb_func_start CopyItemIconPicTo4x4Buffer +CopyItemIconPicTo4x4Buffer: @ 0x081AFB1C + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + movs r4, #0 +_081AFB24: + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #5 + adds r0, r6, r0 + lsls r1, r4, #7 + adds r1, r5, r1 + movs r2, #0x30 + bl CpuSet + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #2 + bls _081AFB24 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CopyItemIconPicTo4x4Buffer + + thumb_func_start AddItemIconSprite +AddItemIconSprite: @ 0x081AFB48 + push {r4, r5, r6, r7, lr} + sub sp, #0x10 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r5, r2, #0x10 + bl AllocItemIconTemporaryBuffers + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081AFC00 + adds r0, r5, #0 + movs r1, #0 + bl GetItemIconPicOrPalette + ldr r4, _081AFBEC + ldr r1, [r4] + bl LZDecompressVram + ldr r0, [r4] + ldr r4, _081AFBF0 + ldr r1, [r4] + bl CopyItemIconPicTo4x4Buffer + ldr r0, [r4] + str r0, [sp] + ldr r4, _081AFBF4 + ldr r0, [sp, #4] + ands r0, r4 + movs r1, #0x80 + lsls r1, r1, #2 + orrs r0, r1 + lsls r2, r7, #0x10 + ldr r1, _081AFBF8 + ands r0, r1 + orrs r0, r2 + str r0, [sp, #4] + mov r0, sp + bl LoadSpriteSheet + adds r0, r5, #0 + movs r1, #1 + bl GetItemIconPicOrPalette + str r0, [sp, #8] + add r0, sp, #8 + ldr r1, [r0, #4] + ands r1, r4 + orrs r1, r6 + str r1, [r0, #4] + bl LoadCompressedSpritePalette + movs r0, #0x18 + bl Alloc + adds r5, r0, #0 + ldr r0, _081AFBFC + adds r1, r5, #0 + movs r2, #0xc + bl CpuSet + strh r7, [r5] + strh r6, [r5, #2] + adds r0, r5, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl CreateSprite + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl FreeItemIconTemporaryBuffers + adds r0, r5, #0 + bl Free + adds r0, r4, #0 + b _081AFC02 + .align 2, 0 +_081AFBEC: .4byte 0x0203CB88 +_081AFBF0: .4byte 0x0203CB8C +_081AFBF4: .4byte 0xFFFF0000 +_081AFBF8: .4byte 0x0000FFFF +_081AFBFC: .4byte 0x085E08AC +_081AFC00: + movs r0, #0x40 +_081AFC02: + add sp, #0x10 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end AddItemIconSprite + + thumb_func_start AddCustomItemIconSprite +AddCustomItemIconSprite: @ 0x081AFC0C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x10 + mov r8, r0 + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r6, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r5, r3, #0x10 + bl AllocItemIconTemporaryBuffers + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081AFCC4 + adds r0, r5, #0 + movs r1, #0 + bl GetItemIconPicOrPalette + ldr r4, _081AFCB4 + ldr r1, [r4] + bl LZDecompressVram + ldr r0, [r4] + ldr r4, _081AFCB8 + ldr r1, [r4] + bl CopyItemIconPicTo4x4Buffer + ldr r0, [r4] + str r0, [sp] + ldr r4, _081AFCBC + ldr r0, [sp, #4] + ands r0, r4 + movs r1, #0x80 + lsls r1, r1, #2 + orrs r0, r1 + lsls r2, r7, #0x10 + ldr r1, _081AFCC0 + ands r0, r1 + orrs r0, r2 + str r0, [sp, #4] + mov r0, sp + bl LoadSpriteSheet + adds r0, r5, #0 + movs r1, #1 + bl GetItemIconPicOrPalette + str r0, [sp, #8] + add r0, sp, #8 + ldr r1, [r0, #4] + ands r1, r4 + orrs r1, r6 + str r1, [r0, #4] + bl LoadCompressedSpritePalette + movs r0, #0x18 + bl Alloc + adds r5, r0, #0 + mov r0, r8 + adds r1, r5, #0 + movs r2, #0xc + bl CpuSet + strh r7, [r5] + strh r6, [r5, #2] + adds r0, r5, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl CreateSprite + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl FreeItemIconTemporaryBuffers + adds r0, r5, #0 + bl Free + adds r0, r4, #0 + b _081AFCC6 + .align 2, 0 +_081AFCB4: .4byte 0x0203CB88 +_081AFCB8: .4byte 0x0203CB8C +_081AFCBC: .4byte 0xFFFF0000 +_081AFCC0: .4byte 0x0000FFFF +_081AFCC4: + movs r0, #0x40 +_081AFCC6: + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end AddCustomItemIconSprite + + thumb_func_start GetItemIconPicOrPalette +GetItemIconPicOrPalette: @ 0x081AFCD4 + push {lr} + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, _081AFCE8 + cmp r3, r0 + bne _081AFCF0 + ldr r3, _081AFCEC + b _081AFCFA + .align 2, 0 +_081AFCE8: .4byte 0x0000FFFF +_081AFCEC: .4byte 0x00000179 +_081AFCF0: + movs r0, #0xbc + lsls r0, r0, #1 + cmp r3, r0 + bls _081AFCFA + movs r3, #0 +_081AFCFA: + ldr r2, _081AFD0C + lsls r0, r1, #2 + lsls r1, r3, #3 + adds r0, r0, r1 + adds r0, r0, r2 + ldr r0, [r0] + pop {r1} + bx r1 + .align 2, 0 +_081AFD0C: .4byte 0x085DFCC8 + thumb_func_end GetItemIconPicOrPalette + diff --git a/asm/item_menu.s b/asm/item_menu.s new file mode 100644 index 0000000..7b4fa1f --- /dev/null +++ b/asm/item_menu.s @@ -0,0 +1,6891 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ResetBagScrollPositions +ResetBagScrollPositions: @ 0x081AA8E8 + push {r4, lr} + ldr r4, _081AA910 + movs r0, #0 + strb r0, [r4, #5] + adds r0, r4, #0 + adds r0, #8 + movs r1, #0 + movs r2, #0xa + bl memset + adds r4, #0x12 + adds r0, r4, #0 + movs r1, #0 + movs r2, #0xa + bl memset + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081AA910: .4byte 0x0203CB24 + thumb_func_end ResetBagScrollPositions + + thumb_func_start CB2_BagMenuFromStartMenu +CB2_BagMenuFromStartMenu: @ 0x081AA914 + push {lr} + ldr r2, _081AA924 + movs r0, #0 + movs r1, #5 + bl GoToBagMenu + pop {r0} + bx r0 + .align 2, 0 +_081AA924: .4byte 0x08085AFD + thumb_func_end CB2_BagMenuFromStartMenu + + thumb_func_start sub_081AA928 +sub_081AA928: @ 0x081AA928 + push {lr} + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081AA944 + ldr r2, _081AA940 + movs r0, #1 + movs r1, #5 + bl GoToBagMenu + b _081AA94C + .align 2, 0 +_081AA940: .4byte 0x0805996D +_081AA944: + ldr r1, _081AA950 + movs r0, #1 + bl sub_081C47A0 +_081AA94C: + pop {r0} + bx r0 + .align 2, 0 +_081AA950: .4byte 0x0805996D + thumb_func_end sub_081AA928 + + thumb_func_start CB2_ChooseBerry +CB2_ChooseBerry: @ 0x081AA954 + push {lr} + ldr r2, _081AA964 + movs r0, #4 + movs r1, #3 + bl GoToBagMenu + pop {r0} + bx r0 + .align 2, 0 +_081AA964: .4byte 0x08085B19 + thumb_func_end CB2_ChooseBerry + + thumb_func_start sub_081AA968 +sub_081AA968: @ 0x081AA968 + push {lr} + adds r2, r0, #0 + movs r0, #5 + movs r1, #3 + bl GoToBagMenu + pop {r0} + bx r0 + thumb_func_end sub_081AA968 + + thumb_func_start CB2_GoToSellMenu +CB2_GoToSellMenu: @ 0x081AA978 + push {lr} + ldr r2, _081AA988 + movs r0, #3 + movs r1, #5 + bl GoToBagMenu + pop {r0} + bx r0 + .align 2, 0 +_081AA988: .4byte 0x080DF195 + thumb_func_end CB2_GoToSellMenu + + thumb_func_start sub_081AA98C +sub_081AA98C: @ 0x081AA98C + push {lr} + ldr r2, _081AA99C + movs r0, #6 + movs r1, #5 + bl GoToBagMenu + pop {r0} + bx r0 + .align 2, 0 +_081AA99C: .4byte 0x0816B141 + thumb_func_end sub_081AA98C + + thumb_func_start sub_081AA9A0 +sub_081AA9A0: @ 0x081AA9A0 + push {lr} + ldr r2, _081AA9BC + movs r0, #9 + movs r1, #5 + bl GoToBagMenu + ldr r0, _081AA9C0 + movs r1, #0 + strh r1, [r0] + ldr r0, _081AA9C4 + strh r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_081AA9BC: .4byte 0x081ADC79 +_081AA9C0: .4byte 0x02037282 +_081AA9C4: .4byte 0x02037290 + thumb_func_end sub_081AA9A0 + + thumb_func_start sub_081AA9C8 +sub_081AA9C8: @ 0x081AA9C8 + push {lr} + ldr r2, _081AA9E0 + movs r0, #7 + movs r1, #5 + bl GoToBagMenu + ldr r1, _081AA9E4 + movs r0, #0 + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_081AA9E0: .4byte 0x081ADCC9 +_081AA9E4: .4byte 0x02037290 + thumb_func_end sub_081AA9C8 + + thumb_func_start sub_081AA9E8 +sub_081AA9E8: @ 0x081AA9E8 + push {lr} + ldr r2, _081AAA00 + movs r0, #8 + movs r1, #5 + bl GoToBagMenu + ldr r1, _081AAA04 + movs r0, #0 + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_081AAA00: .4byte 0x081ADD0D +_081AAA04: .4byte 0x02037290 + thumb_func_end sub_081AA9E8 + + thumb_func_start GoToBagMenu +GoToBagMenu: @ 0x081AAA08 + push {r4, r5, r6, r7, lr} + adds r4, r2, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + ldr r6, _081AAA2C + ldr r0, _081AAA30 + bl AllocZeroed + str r0, [r6] + cmp r0, #0 + bne _081AAA34 + adds r0, r4, #0 + bl SetMainCallback2 + b _081AAAB2 + .align 2, 0 +_081AAA2C: .4byte 0x0203CB20 +_081AAA30: .4byte 0x00000844 +_081AAA34: + ldr r0, _081AAAB8 + cmp r5, #0xc + beq _081AAA3C + strb r5, [r0, #4] +_081AAA3C: + cmp r4, #0 + beq _081AAA42 + str r4, [r0] +_081AAA42: + cmp r7, #4 + bhi _081AAA48 + strb r7, [r0, #5] +_081AAA48: + ldrb r0, [r0, #4] + subs r0, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _081AAA68 + ldr r2, [r6] + ldr r0, _081AAABC + adds r2, r2, r0 + ldrb r1, [r2] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2] +_081AAA68: + ldr r0, [r6] + movs r1, #0 + str r1, [r0] + ldr r1, _081AAAC0 + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] + ldr r0, [r6] + ldr r1, _081AAAC4 + adds r0, r0, r1 + movs r1, #1 + rsbs r1, r1, #0 + strb r1, [r0] + ldr r0, [r6] + ldr r1, _081AAAC8 + adds r0, r0, r1 + movs r1, #1 + rsbs r1, r1, #0 + strb r1, [r0] + ldr r0, [r6] + ldr r1, _081AAACC + adds r0, r0, r1 + movs r1, #0xff + movs r2, #0xc + bl memset + ldr r0, [r6] + movs r1, #0x81 + lsls r1, r1, #4 + adds r0, r0, r1 + movs r1, #0xff + movs r2, #0xa + bl memset + ldr r0, _081AAAD0 + bl SetMainCallback2 +_081AAAB2: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081AAAB8: .4byte 0x0203CB24 +_081AAABC: .4byte 0x0000081B +_081AAAC0: .4byte 0x0000081A +_081AAAC4: .4byte 0x0000081E +_081AAAC8: .4byte 0x0000081F +_081AAACC: .4byte 0x00000804 +_081AAAD0: .4byte 0x081AAB05 + thumb_func_end GoToBagMenu + + thumb_func_start c2_bag_3 +c2_bag_3: @ 0x081AAAD4 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl do_scheduled_bg_tilemap_copies_to_vram + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end c2_bag_3 + + thumb_func_start vblank_cb_bag_menu +vblank_cb_bag_menu: @ 0x081AAAF0 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end vblank_cb_bag_menu + + thumb_func_start CB2_Bag +CB2_Bag: @ 0x081AAB04 + push {lr} +_081AAB06: + bl sub_081221F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081AAB2A + bl SetupBagMenu + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081AAB2A + bl sub_081221B8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081AAB06 +_081AAB2A: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CB2_Bag + + thumb_func_start SetupBagMenu +SetupBagMenu: @ 0x081AAB30 + push {r4, r5, lr} + sub sp, #4 + ldr r1, _081AAB50 + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, r1, #0 + cmp r0, #0x14 + bls _081AAB46 + b _081AAD9C +_081AAB46: + lsls r0, r0, #2 + ldr r1, _081AAB54 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081AAB50: .4byte 0x03002360 +_081AAB54: .4byte 0x081AAB58 +_081AAB58: @ jump table + .4byte _081AABAC @ case 0 + .4byte _081AABB6 @ case 1 + .4byte _081AABC8 @ case 2 + .4byte _081AABCE @ case 3 + .4byte _081AABF0 @ case 4 + .4byte _081AABF6 @ case 5 + .4byte _081AABFE @ case 6 + .4byte _081AAC1C @ case 7 + .4byte _081AAC44 @ case 8 + .4byte _081AAC52 @ case 9 + .4byte _081AAC64 @ case 10 + .4byte _081AAC72 @ case 11 + .4byte _081AAC84 @ case 12 + .4byte _081AAC94 @ case 13 + .4byte _081AACC4 @ case 14 + .4byte _081AAD10 @ case 15 + .4byte _081AAD2C @ case 16 + .4byte _081AAD32 @ case 17 + .4byte _081AAD48 @ case 18 + .4byte _081AAD4E @ case 19 + .4byte _081AAD68 @ case 20 +_081AABAC: + bl SetVBlankHBlankCallbacksToNull + bl clear_scheduled_bg_copies_to_vram + b _081AAD82 +_081AABB6: + bl ScanlineEffect_Stop + ldr r1, _081AABC4 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _081AAD8A + .align 2, 0 +_081AABC4: .4byte 0x03002360 +_081AABC8: + bl FreeAllSpritePalettes + b _081AAD82 +_081AABCE: + bl ResetPaletteFade + ldr r2, _081AABE8 + ldrb r0, [r2, #8] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #8] + ldr r1, _081AABEC + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _081AAD8A + .align 2, 0 +_081AABE8: .4byte 0x02037C74 +_081AABEC: .4byte 0x03002360 +_081AABF0: + bl ResetSpriteData + b _081AAD82 +_081AABF6: + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r2, r0 + b _081AAD8A +_081AABFE: + bl sub_081221B8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081AAC0C + bl ResetTasks +_081AAC0C: + ldr r1, _081AAC18 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _081AAD8A + .align 2, 0 +_081AAC18: .4byte 0x03002360 +_081AAC1C: + bl BagMenu_InitBGs + ldr r0, _081AAC38 + ldr r0, [r0] + ldr r1, _081AAC3C + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0] + ldr r1, _081AAC40 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _081AAD8A + .align 2, 0 +_081AAC38: .4byte 0x0203CB20 +_081AAC3C: .4byte 0x00000834 +_081AAC40: .4byte 0x03002360 +_081AAC44: + bl LoadBagMenu_Graphics + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081AAC50 + b _081AADB4 +_081AAC50: + b _081AAD82 +_081AAC52: + bl SetupBagMenu_Textboxes + ldr r1, _081AAC60 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _081AAD8A + .align 2, 0 +_081AAC60: .4byte 0x03002360 +_081AAC64: + bl sub_081AB818 + bl SetPocketListPositions + bl sub_081AB88C + b _081AAD82 +_081AAC72: + bl AllocateBagItemListBuffers + ldr r1, _081AAC80 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _081AAD8A + .align 2, 0 +_081AAC80: .4byte 0x03002360 +_081AAC84: + ldr r0, _081AAC90 + ldrb r0, [r0, #5] + bl LoadBagItemListBuffers + b _081AAD82 + .align 2, 0 +_081AAC90: .4byte 0x0203CB24 +_081AAC94: + ldr r4, _081AACB8 + ldrb r1, [r4, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + ldr r1, _081AACBC + adds r0, r0, r1 + movs r1, #0 + bl sub_081AB4A0 + ldrb r0, [r4, #5] + movs r1, #1 + bl BagMenu_DrawPocketIndicatorSquare + ldr r1, _081AACC0 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _081AAD8A + .align 2, 0 +_081AACB8: .4byte 0x0203CB24 +_081AACBC: .4byte 0x085C9742 +_081AACC0: .4byte 0x03002360 +_081AACC4: + ldr r4, _081AAD04 + ldrb r0, [r4, #4] + bl sub_081AAF60 + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _081AAD08 + ldrb r2, [r4, #5] + lsls r2, r2, #1 + adds r1, r4, #0 + adds r1, #0x12 + adds r1, r2, r1 + ldrh r1, [r1] + adds r4, #8 + adds r2, r2, r4 + ldrh r2, [r2] + bl ListMenuInit + ldr r2, _081AAD0C + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0 + strh r0, [r1, #8] + strh r2, [r1, #0xe] + strh r2, [r1, #0x18] + b _081AAD82 + .align 2, 0 +_081AAD04: .4byte 0x0203CB24 +_081AAD08: .4byte 0x03006050 +_081AAD0C: .4byte 0x03005B60 +_081AAD10: + ldr r0, _081AAD24 + ldrb r0, [r0, #5] + bl AddBagVisualSprite + ldr r1, _081AAD28 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _081AAD8A + .align 2, 0 +_081AAD24: .4byte 0x0203CB24 +_081AAD28: .4byte 0x03002360 +_081AAD2C: + bl sub_080D4830 + b _081AAD82 +_081AAD32: + bl bag_menu_add_pocket_scroll_arrow_indicators_maybe + bl bag_menu_add_list_scroll_arrow_indicators_maybe + ldr r1, _081AAD44 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _081AAD8A + .align 2, 0 +_081AAD44: .4byte 0x03002360 +_081AAD48: + bl BagMenu_PrepareTMHMMoveWindow + b _081AAD82 +_081AAD4E: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + ldr r1, _081AAD64 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _081AAD8A + .align 2, 0 +_081AAD64: .4byte 0x03002360 +_081AAD68: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r2, _081AAD94 + ldrb r1, [r2, #8] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #8] +_081AAD82: + ldr r1, _081AAD98 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 +_081AAD8A: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _081AADB4 + .align 2, 0 +_081AAD94: .4byte 0x02037C74 +_081AAD98: .4byte 0x03002360 +_081AAD9C: + ldr r0, _081AADAC + bl SetVBlankCallback + ldr r0, _081AADB0 + bl SetMainCallback2 + movs r0, #1 + b _081AADB6 + .align 2, 0 +_081AADAC: .4byte 0x081AAAF1 +_081AADB0: .4byte 0x081AAAD5 +_081AADB4: + movs r0, #0 +_081AADB6: + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SetupBagMenu + + thumb_func_start BagMenu_InitBGs +BagMenu_InitBGs: @ 0x081AADC0 + push {r4, lr} + bl ResetVramOamAndBgCntRegs + ldr r4, _081AAE24 + ldr r0, [r4] + adds r0, #4 + movs r2, #0x80 + lsls r2, r2, #4 + movs r1, #0 + bl memset + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _081AAE28 + movs r0, #0 + movs r2, #3 + bl InitBgsFromTemplates + ldr r1, [r4] + adds r1, #4 + movs r0, #2 + bl SetBgTilemapBuffer + bl ResetAllBgsCoordinates + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081AAE24: .4byte 0x0203CB20 +_081AAE28: .4byte 0x085DF7C8 + thumb_func_end BagMenu_InitBGs + + thumb_func_start LoadBagMenu_Graphics +LoadBagMenu_Graphics: @ 0x081AAE2C + push {r4, lr} + sub sp, #4 + ldr r4, _081AAE4C + ldr r0, [r4] + ldr r1, _081AAE50 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #4 + bls _081AAE42 + b _081AAF3C +_081AAE42: + lsls r0, r0, #2 + ldr r1, _081AAE54 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081AAE4C: .4byte 0x0203CB20 +_081AAE50: .4byte 0x00000834 +_081AAE54: .4byte 0x081AAE58 +_081AAE58: @ jump table + .4byte _081AAE6C @ case 0 + .4byte _081AAE88 @ case 1 + .4byte _081AAEAC @ case 2 + .4byte _081AAEE4 @ case 3 + .4byte _081AAF18 @ case 4 +_081AAE6C: + bl reset_temp_tile_data_buffers + ldr r1, _081AAE84 + movs r0, #0 + str r0, [sp] + movs r0, #2 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + b _081AAF1E + .align 2, 0 +_081AAE84: .4byte 0x08D9A7CC +_081AAE88: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081AAF54 + ldr r0, _081AAEA4 + ldr r4, _081AAEA8 + ldr r1, [r4] + adds r1, #4 + bl LZDecompressVram + ldr r1, [r4] + b _081AAF22 + .align 2, 0 +_081AAEA4: .4byte 0x08D9AA84 +_081AAEA8: .4byte 0x0203CB20 +_081AAEAC: + bl IsWallysBag + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081AAED4 + ldr r0, _081AAECC + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #0 + beq _081AAED4 + ldr r0, _081AAED0 + movs r1, #0 + movs r2, #0x40 + bl LoadCompressedPalette + b _081AAF1E + .align 2, 0 +_081AAECC: .4byte 0x03005AF0 +_081AAED0: .4byte 0x08D9A780 +_081AAED4: + ldr r0, _081AAEE0 + movs r1, #0 + movs r2, #0x40 + bl LoadCompressedPalette + b _081AAF1E + .align 2, 0 +_081AAEE0: .4byte 0x08D9A734 +_081AAEE4: + bl IsWallysBag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081AAEFA + ldr r0, _081AAF04 + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #0 + bne _081AAF0C +_081AAEFA: + ldr r0, _081AAF08 + bl LoadCompressedSpriteSheet + b _081AAF1E + .align 2, 0 +_081AAF04: .4byte 0x03005AF0 +_081AAF08: .4byte 0x0855A664 +_081AAF0C: + ldr r0, _081AAF14 + bl LoadCompressedSpriteSheet + b _081AAF1E + .align 2, 0 +_081AAF14: .4byte 0x0855A66C +_081AAF18: + ldr r0, _081AAF30 + bl LoadCompressedSpritePalette +_081AAF1E: + ldr r0, _081AAF34 + ldr r1, [r0] +_081AAF22: + ldr r0, _081AAF38 + adds r1, r1, r0 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _081AAF54 + .align 2, 0 +_081AAF30: .4byte 0x0855A674 +_081AAF34: .4byte 0x0203CB20 +_081AAF38: .4byte 0x00000834 +_081AAF3C: + bl LoadListMenuArrowsGfx + ldr r0, [r4] + ldr r1, _081AAF50 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0] + movs r0, #1 + b _081AAF56 + .align 2, 0 +_081AAF50: .4byte 0x00000834 +_081AAF54: + movs r0, #0 +_081AAF56: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end LoadBagMenu_Graphics + + thumb_func_start sub_081AAF60 +sub_081AAF60: @ 0x081AAF60 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xa + bne _081AAF74 + ldr r0, _081AAF70 + b _081AAF76 + .align 2, 0 +_081AAF70: .4byte 0x081ADBA5 +_081AAF74: + ldr r0, _081AAF84 +_081AAF76: + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_081AAF84: .4byte 0x081ABAB5 + thumb_func_end sub_081AAF60 + + thumb_func_start AllocateBagItemListBuffers +AllocateBagItemListBuffers: @ 0x081AAF88 + push {r4, lr} + ldr r4, _081AAFA8 + movs r0, #0x82 + lsls r0, r0, #2 + bl Alloc + str r0, [r4] + ldr r4, _081AAFAC + movs r0, #0xc3 + lsls r0, r0, #3 + bl Alloc + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081AAFA8: .4byte 0x0203CB40 +_081AAFAC: .4byte 0x0203CB44 + thumb_func_end AllocateBagItemListBuffers + + thumb_func_start LoadBagItemListBuffers +LoadBagItemListBuffers: @ 0x081AAFB0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r1, r7, #3 + ldr r0, _081AB050 + adds r1, r1, r0 + mov r8, r1 + ldr r0, _081AB054 + ldr r2, [r0] + ldr r1, _081AB058 + adds r0, r2, r1 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081AB06C + movs r6, #0 + ldr r3, _081AB05C + adds r0, r2, r3 + adds r0, r0, r7 + ldrb r0, [r0] + subs r0, #1 + cmp r6, r0 + bge _081AB026 + ldr r5, _081AB060 +_081AAFE6: + lsls r4, r6, #1 + adds r4, r4, r6 + lsls r4, r4, #3 + ldr r0, [r5] + adds r0, r0, r4 + mov r1, r8 + ldr r2, [r1] + lsls r1, r6, #2 + adds r1, r1, r2 + ldrh r1, [r1] + bl GetItemName + ldr r0, _081AB064 + ldr r0, [r0] + lsls r1, r6, #3 + adds r1, r1, r0 + ldr r0, [r5] + adds r0, r0, r4 + str r0, [r1] + str r6, [r1, #4] + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r0, _081AB054 + ldr r0, [r0] + ldr r3, _081AB05C + adds r0, r0, r3 + adds r0, r0, r7 + ldrb r0, [r0] + subs r0, #1 + cmp r6, r0 + blt _081AAFE6 +_081AB026: + ldr r5, _081AB060 + lsls r4, r6, #1 + adds r4, r4, r6 + lsls r4, r4, #3 + ldr r0, [r5] + adds r0, r0, r4 + ldr r1, _081AB068 + bl StringCopy + ldr r0, _081AB064 + ldr r0, [r0] + lsls r1, r6, #3 + adds r1, r1, r0 + ldr r0, [r5] + adds r0, r0, r4 + str r0, [r1] + movs r0, #2 + rsbs r0, r0, #0 + str r0, [r1, #4] + b _081AB0BA + .align 2, 0 +_081AB050: .4byte 0x02039A78 +_081AB054: .4byte 0x0203CB20 +_081AB058: .4byte 0x0000081B +_081AB05C: .4byte 0x00000829 +_081AB060: .4byte 0x0203CB44 +_081AB064: .4byte 0x0203CB40 +_081AB068: .4byte 0x085C9448 +_081AB06C: + movs r6, #0 + ldr r4, _081AB0F0 + adds r0, r2, r4 + adds r0, r0, r7 + ldrb r0, [r0] + cmp r6, r0 + bhs _081AB0BA + ldr r5, _081AB0F4 +_081AB07C: + lsls r4, r6, #1 + adds r4, r4, r6 + lsls r4, r4, #3 + ldr r0, [r5] + adds r0, r0, r4 + mov r1, r8 + ldr r2, [r1] + lsls r1, r6, #2 + adds r1, r1, r2 + ldrh r1, [r1] + bl GetItemName + ldr r0, _081AB0F8 + ldr r0, [r0] + lsls r1, r6, #3 + adds r1, r1, r0 + ldr r0, [r5] + adds r0, r0, r4 + str r0, [r1] + str r6, [r1, #4] + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r0, _081AB0FC + ldr r0, [r0] + ldr r3, _081AB0F0 + adds r0, r0, r3 + adds r0, r0, r7 + ldrb r0, [r0] + cmp r6, r0 + blo _081AB07C +_081AB0BA: + ldr r2, _081AB100 + adds r1, r2, #0 + ldr r0, _081AB104 + ldm r0!, {r3, r4, r5} + stm r1!, {r3, r4, r5} + ldm r0!, {r3, r4, r5} + stm r1!, {r3, r4, r5} + ldr r0, _081AB0FC + ldr r1, [r0] + ldr r4, _081AB0F0 + adds r0, r1, r4 + adds r0, r0, r7 + ldrb r0, [r0] + strh r0, [r2, #0xc] + ldr r0, _081AB0F8 + ldr r0, [r0] + str r0, [r2] + ldr r5, _081AB108 + adds r1, r1, r5 + adds r1, r1, r7 + ldrb r0, [r1] + strh r0, [r2, #0xe] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081AB0F0: .4byte 0x00000829 +_081AB0F4: .4byte 0x0203CB44 +_081AB0F8: .4byte 0x0203CB40 +_081AB0FC: .4byte 0x0203CB20 +_081AB100: .4byte 0x03006050 +_081AB104: .4byte 0x085DF7D4 +_081AB108: .4byte 0x0000082E + thumb_func_end LoadBagItemListBuffers + + thumb_func_start GetItemName +GetItemName: @ 0x081AB10C + push {r4, r5, r6, lr} + adds r6, r0, #0 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + ldr r0, _081AB12C + ldrb r0, [r0, #5] + cmp r0, #2 + beq _081AB130 + cmp r0, #3 + beq _081AB190 + adds r0, r5, #0 + adds r1, r6, #0 + bl CopyItemName + b _081AB1AE + .align 2, 0 +_081AB12C: .4byte 0x0203CB24 +_081AB130: + ldr r4, _081AB164 + adds r0, r5, #0 + bl ItemIdToBattleMoveId + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0xd + ldr r0, _081AB168 + adds r1, r1, r0 + adds r0, r4, #0 + bl StringCopy + movs r0, #0xa9 + lsls r0, r0, #1 + cmp r5, r0 + bls _081AB178 + ldr r0, _081AB16C + ldr r2, _081AB170 + adds r1, r5, r2 + movs r2, #2 + movs r3, #1 + bl ConvertIntToDecimalStringN + ldr r1, _081AB174 + b _081AB1A8 + .align 2, 0 +_081AB164: .4byte 0x02021C54 +_081AB168: .4byte 0x082EACC4 +_081AB16C: .4byte 0x02021C40 +_081AB170: .4byte 0xFFFFFEAE +_081AB174: .4byte 0x085C9776 +_081AB178: + ldr r0, _081AB188 + ldr r2, _081AB18C + adds r1, r5, r2 + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + b _081AB1A6 + .align 2, 0 +_081AB188: .4byte 0x02021C40 +_081AB18C: .4byte 0xFFFFFEE0 +_081AB190: + ldr r0, _081AB1B4 + adds r1, r5, #0 + subs r1, #0x84 + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r1, _081AB1B8 + adds r0, r5, #0 + bl CopyItemName +_081AB1A6: + ldr r1, _081AB1BC +_081AB1A8: + adds r0, r6, #0 + bl StringExpandPlaceholders +_081AB1AE: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081AB1B4: .4byte 0x02021C40 +_081AB1B8: .4byte 0x02021C54 +_081AB1BC: .4byte 0x085C976F + thumb_func_end GetItemName + + thumb_func_start BagMenu_MoveCursorCallback +BagMenu_MoveCursorCallback: @ 0x081AB1C0 + push {r4, r5, r6, lr} + adds r6, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #1 + beq _081AB1D6 + movs r0, #5 + bl PlaySE + bl ShakeBagVisual +_081AB1D6: + ldr r4, _081AB228 + ldr r1, [r4] + ldr r2, _081AB22C + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0xff + bne _081AB27C + adds r2, #1 + adds r0, r1, r2 + ldrb r1, [r0] + lsls r1, r1, #0x1a + lsrs r1, r1, #0x1e + movs r0, #1 + eors r0, r1 + bl RemoveBagItemIconSprite + movs r0, #2 + rsbs r0, r0, #0 + cmp r6, r0 + beq _081AB238 + ldr r0, _081AB230 + ldrb r0, [r0, #5] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r6, #0x10 + lsrs r1, r1, #0x10 + bl BagGetItemIdByPocketPosition + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, [r4] + ldr r2, _081AB234 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #0x1a + lsrs r1, r1, #0x1e + bl AddBagItemIconSprite + b _081AB24A + .align 2, 0 +_081AB228: .4byte 0x0203CB20 +_081AB22C: .4byte 0x0000081A +_081AB230: .4byte 0x0203CB24 +_081AB234: .4byte 0x0000081B +_081AB238: + ldr r0, _081AB284 + ldr r1, [r4] + ldr r2, _081AB288 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #0x1a + lsrs r1, r1, #0x1e + bl AddBagItemIconSprite +_081AB24A: + ldr r5, _081AB28C + ldr r2, [r5] + ldr r4, _081AB288 + adds r2, r2, r4 + ldrb r3, [r2] + lsls r0, r3, #0x1a + lsrs r0, r0, #0x1e + movs r1, #1 + eors r1, r0 + lsls r1, r1, #4 + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r5] + adds r0, r0, r4 + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _081AB27C + adds r0, r6, #0 + bl BagMenu_PrintDescription +_081AB27C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081AB284: .4byte 0x0000FFFF +_081AB288: .4byte 0x0000081B +_081AB28C: .4byte 0x0203CB20 + thumb_func_end BagMenu_MoveCursorCallback + + thumb_func_start PrintItemQuantityPlusGFX +PrintItemQuantityPlusGFX: @ 0x081AB290 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x14 + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + movs r0, #2 + rsbs r0, r0, #0 + cmp r4, r0 + bne _081AB2B0 + b _081AB3FA +_081AB2B0: + ldr r0, _081AB2D0 + ldr r0, [r0] + ldr r1, _081AB2D4 + adds r0, r0, r1 + ldrb r1, [r0] + cmp r1, #0xff + beq _081AB2E0 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + cmp r1, r0 + bne _081AB2D8 + adds r0, r7, #0 + movs r1, #2 + bl BagMenu_PrintCursor + b _081AB2E0 + .align 2, 0 +_081AB2D0: .4byte 0x0203CB20 +_081AB2D4: .4byte 0x0000081A +_081AB2D8: + adds r0, r7, #0 + movs r1, #0xff + bl BagMenu_PrintCursor +_081AB2E0: + ldr r5, _081AB368 + ldrb r0, [r5, #5] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r1, r4, #0 + bl BagGetItemIdByPocketPosition + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldrb r0, [r5, #5] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r4, #0 + bl BagGetQuantityByPocketPosition + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + mov sb, r4 + ldr r1, _081AB36C + adds r0, r6, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #7 + bhi _081AB32E + ldr r1, _081AB370 + subs r3, r7, #2 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + movs r0, #0x10 + str r0, [sp] + str r0, [sp, #4] + mov r0, r8 + movs r2, #8 + bl BlitBitmapToWindow +_081AB32E: + ldrb r0, [r5, #5] + cmp r0, #3 + bne _081AB380 + ldr r0, _081AB374 + adds r1, r4, #0 + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r4, _081AB378 + ldr r1, _081AB37C + adds r0, r4, #0 + bl StringExpandPlaceholders + str r7, [sp] + movs r1, #0 + str r1, [sp, #4] + str r1, [sp, #8] + movs r0, #0xff + str r0, [sp, #0xc] + str r1, [sp, #0x10] + mov r0, r8 + movs r1, #1 + adds r2, r4, #0 + movs r3, #0x58 + bl BagMenu_Print + b _081AB3FA + .align 2, 0 +_081AB368: .4byte 0x0203CB24 +_081AB36C: .4byte 0xFFFFFEAD +_081AB370: .4byte 0x085DF99C +_081AB374: .4byte 0x02021C40 +_081AB378: .4byte 0x02021C7C +_081AB37C: .4byte 0x085C943C +_081AB380: + cmp r0, #4 + beq _081AB3D0 + adds r0, r6, #0 + bl ItemId_GetHoldEffectParam + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _081AB3D0 + ldr r0, _081AB3C4 + mov r1, sb + movs r2, #1 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r4, _081AB3C8 + ldr r1, _081AB3CC + adds r0, r4, #0 + bl StringExpandPlaceholders + str r7, [sp] + str r5, [sp, #4] + str r5, [sp, #8] + movs r0, #0xff + str r0, [sp, #0xc] + str r5, [sp, #0x10] + mov r0, r8 + movs r1, #1 + adds r2, r4, #0 + movs r3, #0x60 + bl BagMenu_Print + b _081AB3FA + .align 2, 0 +_081AB3C4: .4byte 0x02021C40 +_081AB3C8: .4byte 0x02021C7C +_081AB3CC: .4byte 0x085C943C +_081AB3D0: + ldr r0, _081AB408 + ldr r0, [r0] + ldr r1, _081AB40C + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0 + beq _081AB3FA + cmp r0, r6 + bne _081AB3FA + ldr r1, _081AB410 + subs r3, r7, #1 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + movs r0, #0x18 + str r0, [sp] + movs r0, #0x10 + str r0, [sp, #4] + mov r0, r8 + movs r2, #0x60 + bl BlitBitmapToWindow +_081AB3FA: + add sp, #0x14 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081AB408: .4byte 0x03005AEC +_081AB40C: .4byte 0x00000496 +_081AB410: .4byte 0x085DF8DC + thumb_func_end PrintItemQuantityPlusGFX + + thumb_func_start BagMenu_PrintDescription +BagMenu_PrintDescription: @ 0x081AB414 + push {r4, lr} + sub sp, #0x14 + adds r1, r0, #0 + movs r0, #2 + rsbs r0, r0, #0 + cmp r1, r0 + beq _081AB444 + ldr r0, _081AB440 + ldrb r0, [r0, #5] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl BagGetItemIdByPocketPosition + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl ItemId_GetHoldEffect + adds r4, r0, #0 + b _081AB460 + .align 2, 0 +_081AB440: .4byte 0x0203CB24 +_081AB444: + ldr r0, _081AB48C + ldr r2, _081AB490 + ldr r1, _081AB494 + ldrb r1, [r1, #4] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl StringCopy + ldr r4, _081AB498 + ldr r1, _081AB49C + adds r0, r4, #0 + bl StringExpandPlaceholders +_081AB460: + movs r0, #1 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + str r0, [sp, #0x10] + movs r0, #1 + movs r1, #1 + adds r2, r4, #0 + movs r3, #0 + bl BagMenu_Print + add sp, #0x14 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081AB48C: .4byte 0x02021C40 +_081AB490: .4byte 0x085C96F8 +_081AB494: .4byte 0x0203CB24 +_081AB498: .4byte 0x02021C7C +_081AB49C: .4byte 0x085C9738 + thumb_func_end BagMenu_PrintDescription + + thumb_func_start sub_081AB4A0 +sub_081AB4A0: @ 0x081AB4A0 + push {lr} + sub sp, #0x20 + adds r2, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r2, r2, r1 + add r0, sp, #0x14 + adds r1, r2, #0 + movs r2, #9 + bl StringCopyN + add r1, sp, #0x14 + movs r0, #0xff + strb r0, [r1, #8] + movs r0, #2 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + movs r0, #1 + str r0, [sp, #0x10] + movs r0, #2 + movs r1, #1 + add r2, sp, #0x14 + movs r3, #0 + bl BagMenu_Print + add sp, #0x20 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081AB4A0 + + thumb_func_start BagMenu_PrintCursor_ +BagMenu_PrintCursor_: @ 0x081AB4E8 + push {r4, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl ListMenuGetYCoordForPrintingArrowCursor + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r4, #0 + bl BagMenu_PrintCursor + pop {r4} + pop {r0} + bx r0 + thumb_func_end BagMenu_PrintCursor_ + + thumb_func_start BagMenu_PrintCursor +BagMenu_PrintCursor: @ 0x081AB508 + push {r4, r5, lr} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0xff + bne _081AB544 + movs r0, #1 + movs r1, #0 + bl GetMenuCursorDimensionByFont + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + movs r1, #1 + bl GetMenuCursorDimensionByFont + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r4, [sp] + str r0, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + adds r3, r5, #0 + bl FillWindowPixelRect + b _081AB55A +_081AB544: + ldr r2, _081AB564 + str r5, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + str r1, [sp, #0x10] + movs r1, #1 + movs r3, #0 + bl BagMenu_Print +_081AB55A: + add sp, #0x14 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081AB564: .4byte 0x085C9421 + thumb_func_end BagMenu_PrintCursor + + thumb_func_start bag_menu_add_pocket_scroll_arrow_indicators_maybe +bag_menu_add_pocket_scroll_arrow_indicators_maybe: @ 0x081AB568 + push {r4, r5, r6, lr} + sub sp, #0x10 + ldr r5, _081AB5C0 + ldr r4, [r5] + ldr r1, _081AB5C4 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #0xff + bne _081AB5B6 + ldr r2, _081AB5C8 + ldrb r3, [r2, #5] + ldr r6, _081AB5CC + adds r0, r4, r6 + adds r0, r0, r3 + ldrb r1, [r0] + adds r6, #5 + adds r0, r4, r6 + adds r0, r0, r3 + ldrb r0, [r0] + subs r1, r1, r0 + str r1, [sp] + movs r0, #0x6e + str r0, [sp, #4] + str r0, [sp, #8] + ldrb r0, [r2, #5] + lsls r0, r0, #1 + adds r2, #0x12 + adds r0, r0, r2 + str r0, [sp, #0xc] + movs r0, #2 + movs r1, #0xac + movs r2, #0xc + movs r3, #0x94 + bl AddScrollIndicatorArrowPairParameterized + ldr r1, [r5] + ldr r2, _081AB5C4 + adds r1, r1, r2 + strb r0, [r1] +_081AB5B6: + add sp, #0x10 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081AB5C0: .4byte 0x0203CB20 +_081AB5C4: .4byte 0x0000081E +_081AB5C8: .4byte 0x0203CB24 +_081AB5CC: .4byte 0x00000829 + thumb_func_end bag_menu_add_pocket_scroll_arrow_indicators_maybe + + thumb_func_start sub_081AB5D0 +sub_081AB5D0: @ 0x081AB5D0 + push {r4, lr} + ldr r4, _081AB5F8 + ldr r0, [r4] + ldr r2, _081AB5FC + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, #0xff + beq _081AB5EE + bl RemoveScrollIndicatorArrowPair + ldr r0, [r4] + ldr r1, _081AB5FC + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] +_081AB5EE: + bl sub_081AB648 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081AB5F8: .4byte 0x0203CB20 +_081AB5FC: .4byte 0x0000081E + thumb_func_end sub_081AB5D0 + + thumb_func_start bag_menu_add_list_scroll_arrow_indicators_maybe +bag_menu_add_list_scroll_arrow_indicators_maybe: @ 0x081AB600 + push {r4, lr} + ldr r4, _081AB634 + ldr r2, [r4] + ldr r1, _081AB638 + adds r0, r2, r1 + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + beq _081AB62E + ldr r1, _081AB63C + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #0xff + bne _081AB62E + ldr r0, _081AB640 + ldr r1, _081AB644 + bl AddScrollIndicatorArrowPair + ldr r1, [r4] + ldr r2, _081AB63C + adds r1, r1, r2 + strb r0, [r1] +_081AB62E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081AB634: .4byte 0x0203CB20 +_081AB638: .4byte 0x0000081B +_081AB63C: .4byte 0x0000081F +_081AB640: .4byte 0x085DF8CC +_081AB644: .4byte 0x0203CB2A + thumb_func_end bag_menu_add_list_scroll_arrow_indicators_maybe + + thumb_func_start sub_081AB648 +sub_081AB648: @ 0x081AB648 + push {r4, lr} + ldr r4, _081AB66C + ldr r0, [r4] + ldr r2, _081AB670 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, #0xff + beq _081AB666 + bl RemoveScrollIndicatorArrowPair + ldr r0, [r4] + ldr r1, _081AB670 + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] +_081AB666: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081AB66C: .4byte 0x0203CB20 +_081AB670: .4byte 0x0000081F + thumb_func_end sub_081AB648 + + thumb_func_start FreeBagItemListBuffers +FreeBagItemListBuffers: @ 0x081AB674 + push {lr} + ldr r0, _081AB698 + ldr r0, [r0] + bl Free + ldr r0, _081AB69C + ldr r0, [r0] + bl Free + bl FreeAllWindowBuffers + ldr r0, _081AB6A0 + ldr r0, [r0] + bl Free + pop {r0} + bx r0 + .align 2, 0 +_081AB698: .4byte 0x0203CB44 +_081AB69C: .4byte 0x0203CB40 +_081AB6A0: .4byte 0x0203CB20 + thumb_func_end FreeBagItemListBuffers + + thumb_func_start unknown_ItemMenu_Confirm +unknown_ItemMenu_Confirm: @ 0x081AB6A4 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _081AB6D4 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081AB6D8 + str r1, [r0] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081AB6D4: .4byte 0x03005B60 +_081AB6D8: .4byte 0x081AB6DD + thumb_func_end unknown_ItemMenu_Confirm + + thumb_func_start TaskCloseBagMenu_2 +TaskCloseBagMenu_2: @ 0x081AB6DC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _081AB720 + adds r2, r0, r1 + ldr r0, _081AB724 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081AB74C + ldrb r0, [r2] + ldr r4, _081AB728 + ldrb r2, [r4, #5] + lsls r2, r2, #1 + adds r1, r4, #0 + adds r1, #0x12 + adds r1, r2, r1 + adds r3, r4, #0 + adds r3, #8 + adds r2, r2, r3 + bl DestroyListMenuTask + ldr r0, _081AB72C + ldr r0, [r0] + ldr r0, [r0] + cmp r0, #0 + beq _081AB730 + bl SetMainCallback2 + b _081AB736 + .align 2, 0 +_081AB720: .4byte 0x03005B68 +_081AB724: .4byte 0x02037C74 +_081AB728: .4byte 0x0203CB24 +_081AB72C: .4byte 0x0203CB20 +_081AB730: + ldr r0, [r4] + bl SetMainCallback2 +_081AB736: + bl sub_081AB5D0 + bl ResetSpriteData + bl FreeAllSpritePalettes + bl FreeBagItemListBuffers + adds r0, r5, #0 + bl DestroyTask +_081AB74C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end TaskCloseBagMenu_2 + + thumb_func_start sub_081AB754 +sub_081AB754: @ 0x081AB754 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r5, #3 + ldr r0, _081AB770 + adds r4, r1, r0 + cmp r5, #3 + bgt _081AB774 + cmp r5, #2 + blt _081AB774 + adds r0, r4, #0 + bl SortBerriesOrTMHMs + b _081AB77A + .align 2, 0 +_081AB770: .4byte 0x02039A78 +_081AB774: + adds r0, r4, #0 + bl CompactItemsInBagPocket +_081AB77A: + ldr r0, _081AB7F4 + ldr r1, [r0] + ldr r6, _081AB7F8 + adds r1, r1, r6 + adds r1, r1, r5 + movs r2, #0 + strb r2, [r1] + adds r3, r0, #0 + ldrb r0, [r4, #4] + cmp r2, r0 + bhs _081AB7BE + ldr r0, [r4] + ldrh r0, [r0] + cmp r0, #0 + beq _081AB7BE + adds r7, r3, #0 +_081AB79A: + ldr r0, [r7] + adds r0, r0, r6 + adds r0, r0, r5 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldrb r1, [r4, #4] + cmp r2, r1 + bhs _081AB7BE + ldr r0, [r4] + lsls r1, r2, #2 + adds r1, r1, r0 + ldrh r0, [r1] + cmp r0, #0 + bne _081AB79A +_081AB7BE: + ldr r2, [r3] + ldr r1, _081AB7FC + adds r0, r2, r1 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081AB7DA + ldr r0, _081AB7F8 + adds r1, r2, r0 + adds r1, r1, r5 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_081AB7DA: + ldr r1, [r3] + ldr r2, _081AB7F8 + adds r0, r1, r2 + adds r0, r0, r5 + ldrb r2, [r0] + cmp r2, #8 + bls _081AB804 + ldr r3, _081AB800 + adds r0, r1, r3 + adds r0, r0, r5 + movs r1, #8 + strb r1, [r0] + b _081AB80C + .align 2, 0 +_081AB7F4: .4byte 0x0203CB20 +_081AB7F8: .4byte 0x00000829 +_081AB7FC: .4byte 0x0000081B +_081AB800: .4byte 0x0000082E +_081AB804: + ldr r3, _081AB814 + adds r0, r1, r3 + adds r0, r0, r5 + strb r2, [r0] +_081AB80C: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081AB814: .4byte 0x0000082E + thumb_func_end sub_081AB754 + + thumb_func_start sub_081AB818 +sub_081AB818: @ 0x081AB818 + push {r4, lr} + movs r4, #0 +_081AB81C: + adds r0, r4, #0 + bl sub_081AB754 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #4 + bls _081AB81C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081AB818 + + thumb_func_start SetInitialScrollAndCursorPositions +SetInitialScrollAndCursorPositions: @ 0x081AB834 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #1 + ldr r2, _081AB864 + adds r4, r1, r2 + subs r2, #0xa + adds r1, r1, r2 + ldr r2, _081AB868 + ldr r3, [r2] + ldr r5, _081AB86C + adds r2, r3, r5 + adds r2, r2, r0 + ldrb r2, [r2] + subs r5, #5 + adds r3, r3, r5 + adds r3, r3, r0 + ldrb r3, [r3] + adds r0, r4, #0 + bl sub_08122268 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081AB864: .4byte 0x0203CB36 +_081AB868: .4byte 0x0203CB20 +_081AB86C: .4byte 0x0000082E + thumb_func_end SetInitialScrollAndCursorPositions + + thumb_func_start SetPocketListPositions +SetPocketListPositions: @ 0x081AB870 + push {r4, lr} + movs r4, #0 +_081AB874: + adds r0, r4, #0 + bl SetInitialScrollAndCursorPositions + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #4 + bls _081AB874 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetPocketListPositions + + thumb_func_start sub_081AB88C +sub_081AB88C: @ 0x081AB88C + push {r4, r5, r6, r7, lr} + sub sp, #4 + movs r5, #0 + ldr r6, _081AB8CC + adds r7, r6, #0 + subs r7, #0xa +_081AB898: + lsls r1, r5, #1 + adds r0, r1, r6 + adds r1, r1, r7 + ldr r2, _081AB8D0 + ldr r3, [r2] + ldr r4, _081AB8D4 + adds r2, r3, r4 + adds r2, r2, r5 + ldrb r2, [r2] + subs r4, #5 + adds r3, r3, r4 + adds r3, r3, r5 + ldrb r3, [r3] + movs r4, #8 + str r4, [sp] + bl sub_081222A4 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #4 + bls _081AB898 + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081AB8CC: .4byte 0x0203CB36 +_081AB8D0: .4byte 0x0203CB20 +_081AB8D4: .4byte 0x0000082E + thumb_func_end sub_081AB88C + + thumb_func_start GetItemListPosition +GetItemListPosition: @ 0x081AB8D8 + lsls r0, r0, #0x18 + ldr r1, _081AB8F4 + lsrs r0, r0, #0x17 + adds r2, r1, #0 + adds r2, #0x12 + adds r2, r0, r2 + adds r1, #8 + adds r0, r0, r1 + ldrb r0, [r0] + ldrb r2, [r2] + adds r0, r0, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bx lr + .align 2, 0 +_081AB8F4: .4byte 0x0203CB24 + thumb_func_end GetItemListPosition + + thumb_func_start DisplayItemMessage +DisplayItemMessage: @ 0x081AB8F8 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #0x10 + adds r5, r0, #0 + adds r6, r1, #0 + mov r8, r2 + mov sb, r3 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + ldr r0, _081AB964 + adds r4, r4, r0 + movs r0, #4 + bl AddItemMessageWindow + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x14] + movs r1, #0x11 + bl FillWindowPixelBuffer + bl GetPlayerTextSpeedDelay + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r4, #0x14] + str r6, [sp] + str r0, [sp, #4] + mov r0, r8 + str r0, [sp, #8] + mov r0, sb + str r0, [sp, #0xc] + adds r0, r5, #0 + movs r2, #0xa + movs r3, #0xd + bl DisplayMessageAndContinueTask + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081AB964: .4byte 0x03005B68 + thumb_func_end DisplayItemMessage + + thumb_func_start BagMenu_InitListsMenu +BagMenu_InitListsMenu: @ 0x081AB968 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r5, r6, #2 + adds r5, r5, r6 + lsls r5, r5, #3 + ldr r0, _081AB9DC + adds r5, r5, r0 + ldr r7, _081AB9E0 + ldrb r4, [r7, #5] + lsls r4, r4, #1 + movs r0, #0x12 + adds r0, r0, r7 + mov r8, r0 + add r8, r4 + adds r0, r7, #0 + adds r0, #8 + adds r4, r4, r0 + movs r0, #4 + bl bag_menu_RemoveBagItem_message_window + ldrb r0, [r5] + mov r1, r8 + adds r2, r4, #0 + bl DestroyListMenuTask + ldrb r0, [r7, #5] + bl sub_081AB754 + ldrb r0, [r7, #5] + bl SetInitialScrollAndCursorPositions + ldrb r0, [r7, #5] + bl LoadBagItemListBuffers + ldr r0, _081AB9E4 + mov r2, r8 + ldrh r1, [r2] + ldrh r2, [r4] + bl ListMenuInit + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5] + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + adds r0, r6, #0 + bl set_callback3_to_bag + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081AB9DC: .4byte 0x03005B68 +_081AB9E0: .4byte 0x0203CB24 +_081AB9E4: .4byte 0x03006050 + thumb_func_end BagMenu_InitListsMenu + + thumb_func_start PrintItemDepositAmount +PrintItemDepositAmount: @ 0x081AB9E8 + push {r4, r5, r6, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _081ABA00 + ldrb r0, [r0, #5] + cmp r0, #3 + bne _081ABA04 + movs r6, #4 + movs r3, #3 + b _081ABA08 + .align 2, 0 +_081ABA00: .4byte 0x0203CB24 +_081ABA04: + movs r6, #8 + movs r3, #2 +_081ABA08: + ldr r0, _081ABA44 + movs r1, #1 + movs r2, #2 + bl ConvertIntToDecimalStringN + ldr r4, _081ABA48 + ldr r1, _081ABA4C + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r5, #0 + bl BagMenu_AddWindow + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r3, r6, #0 + movs r1, #2 + str r1, [sp] + movs r1, #0 + str r1, [sp, #4] + str r1, [sp, #8] + movs r1, #1 + adds r2, r4, #0 + bl AddTextPrinterParameterized + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081ABA44: .4byte 0x02021C40 +_081ABA48: .4byte 0x02021C7C +_081ABA4C: .4byte 0x085C943C + thumb_func_end PrintItemDepositAmount + + thumb_func_start sub_081ABA50 +sub_081ABA50: @ 0x081ABA50 + push {r4, r5, r6, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, _081ABA6C + ldrb r0, [r0, #5] + cmp r0, #3 + bne _081ABA70 + movs r5, #4 + movs r3, #3 + b _081ABA74 + .align 2, 0 +_081ABA6C: .4byte 0x0203CB24 +_081ABA70: + movs r5, #8 + movs r3, #2 +_081ABA74: + ldr r0, _081ABAA8 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r2, #2 + bl ConvertIntToDecimalStringN + ldr r4, _081ABAAC + ldr r1, _081ABAB0 + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r3, r5, #0 + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + adds r0, r6, #0 + movs r1, #1 + adds r2, r4, #0 + bl AddTextPrinterParameterized + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081ABAA8: .4byte 0x02021C40 +_081ABAAC: .4byte 0x02021C7C +_081ABAB0: .4byte 0x085C943C + thumb_func_end sub_081ABA50 + + thumb_func_start Task_BagMenu +Task_BagMenu: @ 0x081ABAB4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + lsls r0, r0, #2 + add r0, sb + lsls r0, r0, #3 + str r0, [sp] + ldr r1, _081ABB34 + adds r6, r0, r1 + ldr r5, _081ABB38 + ldrb r0, [r5, #5] + lsls r0, r0, #1 + adds r1, r5, #0 + adds r1, #0x12 + adds r7, r0, r1 + subs r1, #0xa + adds r0, r0, r1 + mov r8, r0 + bl sub_081221F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081ABAF2 + b _081ABC3E +_081ABAF2: + ldr r0, _081ABB3C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _081ABB00 + b _081ABC3E +_081ABB00: + bl GetSwitchBagPocketDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081ABB44 + cmp r0, #2 + beq _081ABB4C + ldr r0, _081ABB40 + ldrh r1, [r0, #0x2e] + movs r0, #4 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 + cmp r0, #0 + beq _081ABB9C + bl sub_081AC084 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081ABB30 + b _081ABC3E +_081ABB30: + b _081ABB58 + .align 2, 0 +_081ABB34: .4byte 0x03005B68 +_081ABB38: .4byte 0x0203CB24 +_081ABB3C: .4byte 0x02037C74 +_081ABB40: .4byte 0x03002360 +_081ABB44: + movs r1, #1 + rsbs r1, r1, #0 + mov r0, sb + b _081ABB50 +_081ABB4C: + mov r0, sb + movs r1, #1 +_081ABB50: + movs r2, #0 + bl SwitchBagPocket + b _081ABC3E +_081ABB58: + ldrb r0, [r6] + adds r1, r7, #0 + mov r2, r8 + bl ListMenuGetScrollAndRow + ldrh r2, [r7] + mov r3, r8 + ldrh r0, [r3] + adds r2, r2, r0 + ldr r0, _081ABB90 + ldr r0, [r0] + ldr r1, _081ABB94 + ldr r3, _081ABB98 + adds r0, r0, r3 + ldrb r1, [r1, #5] + adds r0, r0, r1 + ldrb r0, [r0] + subs r0, #1 + cmp r2, r0 + beq _081ABC3E + movs r0, #5 + bl PlaySE + mov r0, sb + bl BagMenu_SwapItems + b _081ABC3E + .align 2, 0 +_081ABB90: .4byte 0x0203CB20 +_081ABB94: .4byte 0x0203CB24 +_081ABB98: .4byte 0x00000829 +_081ABB9C: + ldrb r0, [r6] + bl ListMenu_ProcessInput + adds r4, r0, #0 + ldrb r0, [r6] + adds r1, r7, #0 + mov r2, r8 + bl ListMenuGetScrollAndRow + movs r0, #2 + rsbs r0, r0, #0 + cmp r4, r0 + beq _081ABBBE + adds r0, #1 + cmp r4, r0 + bne _081ABBF4 + b _081ABC3E +_081ABBBE: + ldrb r0, [r5, #4] + cmp r0, #5 + bne _081ABBCC + movs r0, #0x20 + bl PlaySE + b _081ABC3E +_081ABBCC: + movs r0, #5 + bl PlaySE + ldr r0, _081ABBE8 + mov r1, sl + strh r1, [r0] + ldr r0, _081ABBEC + subs r0, #8 + ldr r3, [sp] + adds r0, r3, r0 + ldr r1, _081ABBF0 + str r1, [r0] + b _081ABC3E + .align 2, 0 +_081ABBE8: .4byte 0x0203CB48 +_081ABBEC: .4byte 0x03005B68 +_081ABBF0: .4byte 0x081AB6A5 +_081ABBF4: + movs r0, #5 + bl PlaySE + bl sub_081AB5D0 + ldrb r0, [r6] + movs r1, #2 + bl BagMenu_PrintCursor_ + strh r4, [r6, #2] + ldrb r0, [r5, #5] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r1, r4, #0 + bl BagGetQuantityByPocketPosition + strh r0, [r6, #4] + ldrb r0, [r5, #5] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r4, #0 + bl BagGetItemIdByPocketPosition + ldr r1, _081ABC50 + strh r0, [r1] + ldr r1, _081ABC54 + ldrb r0, [r5, #4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + mov r0, sb + bl _call_via_r1 +_081ABC3E: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081ABC50: .4byte 0x0203CB48 +_081ABC54: .4byte 0x085DF88C + thumb_func_end Task_BagMenu + + thumb_func_start set_callback3_to_bag +set_callback3_to_bag: @ 0x081ABC58 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl bag_menu_add_pocket_scroll_arrow_indicators_maybe + bl bag_menu_add_list_scroll_arrow_indicators_maybe + movs r0, #3 + bl ClearWindowTilemap + movs r0, #4 + bl ClearWindowTilemap + movs r0, #1 + bl PutWindowTilemap + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, _081ABC94 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081ABC98 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081ABC94: .4byte 0x03005B60 +_081ABC98: .4byte 0x081ABAB5 + thumb_func_end set_callback3_to_bag + + thumb_func_start GetSwitchBagPocketDirection +GetSwitchBagPocketDirection: @ 0x081ABC9C + push {lr} + ldr r0, _081ABCD4 + ldr r0, [r0] + ldr r1, _081ABCD8 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _081ABCF6 + bl GetLRKeysState + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _081ABCDC + ldrh r1, [r0, #0x2e] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _081ABCC8 + cmp r2, #1 + bne _081ABCE0 +_081ABCC8: + movs r0, #5 + bl PlaySE + movs r0, #1 + b _081ABCF8 + .align 2, 0 +_081ABCD4: .4byte 0x0203CB20 +_081ABCD8: .4byte 0x0000081B +_081ABCDC: .4byte 0x03002360 +_081ABCE0: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _081ABCEC + cmp r2, #2 + bne _081ABCF6 +_081ABCEC: + movs r0, #5 + bl PlaySE + movs r0, #2 + b _081ABCF8 +_081ABCF6: + movs r0, #0 +_081ABCF8: + pop {r1} + bx r1 + thumb_func_end GetSwitchBagPocketDirection + + thumb_func_start ChangeBagPocketId +ChangeBagPocketId: @ 0x081ABCFC + push {r4, lr} + adds r2, r0, #0 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + asrs r1, r1, #0x18 + cmp r1, #1 + bne _081ABD14 + ldrb r0, [r2] + cmp r0, #4 + bne _081ABD14 + movs r0, #0 + b _081ABD2C +_081ABD14: + lsls r0, r4, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + ldrb r3, [r2] + cmp r0, r1 + bne _081ABD2A + cmp r3, #0 + bne _081ABD2A + movs r0, #4 + b _081ABD2C +_081ABD2A: + adds r0, r3, r4 +_081ABD2C: + strb r0, [r2] + pop {r4} + pop {r0} + bx r0 + thumb_func_end ChangeBagPocketId + + thumb_func_start SwitchBagPocket +SwitchBagPocket: @ 0x081ABD34 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + lsls r2, r2, #0x10 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + ldr r1, _081ABDFC + adds r4, r0, r1 + movs r0, #0 + strh r0, [r4, #0x1a] + strh r0, [r4, #0x18] + strh r5, [r4, #0x16] + cmp r2, #0 + bne _081ABDB6 + movs r0, #0 + bl ClearWindowTilemap + movs r0, #1 + bl ClearWindowTilemap + ldrb r0, [r4] + ldr r3, _081ABE00 + ldrb r2, [r3, #5] + lsls r2, r2, #1 + adds r1, r3, #0 + adds r1, #0x12 + adds r1, r2, r1 + adds r3, #8 + adds r2, r2, r3 + bl DestroyListMenuTask + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + ldr r3, _081ABE04 + ldr r0, _081ABE08 + ldr r2, [r0] + ldr r1, _081ABE0C + adds r0, r2, r1 + ldrb r1, [r0] + lsls r1, r1, #0x1a + lsrs r1, r1, #0x1e + movs r0, #1 + eors r0, r1 + adds r2, r2, r0 + ldr r0, _081ABE10 + adds r2, r2, r0 + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + bl sub_081AB5D0 +_081ABDB6: + ldr r6, _081ABE00 + ldrb r1, [r6, #5] + add r0, sp, #8 + strb r1, [r0] + lsls r1, r5, #0x18 + asrs r1, r1, #0x18 + bl ChangeBagPocketId + lsls r0, r5, #0x10 + asrs r1, r0, #0x10 + mov r8, r0 + cmp r1, #1 + bne _081ABE1C + ldr r4, _081ABE14 + ldrb r0, [r6, #5] + lsls r1, r0, #3 + adds r1, r1, r0 + ldr r5, _081ABE18 + adds r1, r1, r5 + adds r0, r4, #0 + bl StringCopy + add r0, sp, #8 + ldrb r0, [r0] + lsls r1, r0, #3 + adds r1, r1, r0 + adds r1, r1, r5 + adds r0, r4, #0 + bl StringAppend + adds r0, r4, #0 + movs r1, #0 + bl sub_081AB4A0 + b _081ABE46 + .align 2, 0 +_081ABDFC: .4byte 0x03005B68 +_081ABE00: .4byte 0x0203CB24 +_081ABE04: .4byte 0x020205AC +_081ABE08: .4byte 0x0203CB20 +_081ABE0C: .4byte 0x0000081B +_081ABE10: .4byte 0x00000806 +_081ABE14: .4byte 0x02021C7C +_081ABE18: .4byte 0x085C9742 +_081ABE1C: + ldr r4, _081ABEAC + add r0, sp, #8 + ldrb r0, [r0] + lsls r1, r0, #3 + adds r1, r1, r0 + ldr r5, _081ABEB0 + adds r1, r1, r5 + adds r0, r4, #0 + bl StringCopy + ldrb r0, [r6, #5] + lsls r1, r0, #3 + adds r1, r1, r0 + adds r1, r1, r5 + adds r0, r4, #0 + bl StringAppend + adds r0, r4, #0 + movs r1, #8 + bl sub_081AB4A0 +_081ABE46: + ldr r0, _081ABEB4 + ldrb r0, [r0, #5] + movs r1, #0 + bl BagMenu_DrawPocketIndicatorSquare + add r0, sp, #8 + ldrb r0, [r0] + movs r1, #1 + bl BagMenu_DrawPocketIndicatorSquare + movs r0, #0xf + str r0, [sp] + movs r0, #0x10 + str r0, [sp, #4] + movs r0, #2 + movs r1, #0xb + movs r2, #0xe + movs r3, #2 + bl FillBgTilemapBufferRect_Palette0 + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + add r0, sp, #8 + ldrb r0, [r0] + movs r1, #1 + bl SetBagVisualPocketId + movs r0, #1 + bl RemoveBagSprite + mov r1, r8 + asrs r0, r1, #0x10 + bl AddSwitchPocketRotatingBallSprite + ldr r1, _081ABEB8 + ldr r2, _081ABEBC + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r2 + ldr r2, [r0] + adds r0, r7, #0 + bl SetTaskFuncWithFollowupFunc + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081ABEAC: .4byte 0x02021C7C +_081ABEB0: .4byte 0x085C9742 +_081ABEB4: .4byte 0x0203CB24 +_081ABEB8: .4byte 0x081ABEC1 +_081ABEBC: .4byte 0x03005B60 + thumb_func_end SwitchBagPocket + + thumb_func_start sub_081ABEC0 +sub_081ABEC0: @ 0x081ABEC0 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + ldr r1, _081ABEF8 + adds r6, r0, r1 + bl sub_081221B8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081ABF38 + bl IsWallysBag + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081ABF38 + bl GetSwitchBagPocketDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081ABEFC + cmp r0, #2 + beq _081ABF18 + b _081ABF38 + .align 2, 0 +_081ABEF8: .4byte 0x03005B68 +_081ABEFC: + ldr r0, _081ABF14 + movs r1, #0x16 + ldrsb r1, [r6, r1] + bl ChangeBagPocketId + adds r0, r7, #0 + bl SwitchTaskToFollowupFunc + movs r1, #1 + rsbs r1, r1, #0 + adds r0, r7, #0 + b _081ABF2C + .align 2, 0 +_081ABF14: .4byte 0x0203CB29 +_081ABF18: + ldr r0, _081ABF34 + movs r1, #0x16 + ldrsb r1, [r6, r1] + bl ChangeBagPocketId + adds r0, r7, #0 + bl SwitchTaskToFollowupFunc + adds r0, r7, #0 + movs r1, #1 +_081ABF2C: + movs r2, #1 + bl SwitchBagPocket + b _081ABFF2 + .align 2, 0 +_081ABF34: .4byte 0x0203CB29 +_081ABF38: + movs r1, #0x1a + ldrsh r0, [r6, r1] + cmp r0, #0 + beq _081ABF46 + cmp r0, #1 + beq _081ABFA0 + b _081ABFF2 +_081ABF46: + ldrb r0, [r6, #0x18] + bl bag_menu_leave_maybe + ldrh r0, [r6, #0x18] + adds r1, r0, #1 + strh r1, [r6, #0x18] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _081ABF8A + movs r2, #0x16 + ldrsh r0, [r6, r2] + cmp r0, #1 + bne _081ABF78 + ldr r0, _081ABF74 + lsls r1, r1, #0x10 + asrs r1, r1, #0x11 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl sub_081AB4A0 + b _081ABF8A + .align 2, 0 +_081ABF74: .4byte 0x02021C7C +_081ABF78: + ldr r0, _081ABF9C + lsls r2, r1, #0x10 + asrs r2, r2, #0x11 + movs r1, #8 + subs r1, r1, r2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl sub_081AB4A0 +_081ABF8A: + movs r1, #0x18 + ldrsh r0, [r6, r1] + cmp r0, #0x10 + bne _081ABFF2 + ldrh r0, [r6, #0x1a] + adds r0, #1 + strh r0, [r6, #0x1a] + b _081ABFF2 + .align 2, 0 +_081ABF9C: .4byte 0x02021C7C +_081ABFA0: + ldr r4, _081ABFF8 + movs r1, #0x16 + ldrsb r1, [r6, r1] + adds r0, r4, #0 + bl ChangeBagPocketId + subs r5, r4, #5 + ldrb r0, [r5, #5] + bl LoadBagItemListBuffers + ldr r0, _081ABFFC + ldrb r2, [r5, #5] + lsls r2, r2, #1 + adds r1, r4, #0 + adds r1, #0xd + adds r1, r2, r1 + ldrh r1, [r1] + adds r4, #3 + adds r2, r2, r4 + ldrh r2, [r2] + bl ListMenuInit + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r6] + movs r0, #1 + bl PutWindowTilemap + movs r0, #2 + bl PutWindowTilemap + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + bl bag_menu_add_pocket_scroll_arrow_indicators_maybe + bl bag_menu_add_list_scroll_arrow_indicators_maybe + adds r0, r7, #0 + bl SwitchTaskToFollowupFunc +_081ABFF2: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081ABFF8: .4byte 0x0203CB29 +_081ABFFC: .4byte 0x03006050 + thumb_func_end sub_081ABEC0 + + thumb_func_start bag_menu_leave_maybe +bag_menu_leave_maybe: @ 0x081AC000 + push {lr} + sub sp, #8 + adds r3, r0, #0 + lsls r3, r3, #0x18 + movs r0, #0x80 + lsls r0, r0, #0x12 + adds r3, r3, r0 + lsrs r3, r3, #0x18 + movs r0, #0xf + str r0, [sp] + movs r0, #1 + str r0, [sp, #4] + movs r0, #2 + movs r1, #0x11 + movs r2, #0xe + bl FillBgTilemapBufferRect_Palette0 + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end bag_menu_leave_maybe + + thumb_func_start BagMenu_DrawPocketIndicatorSquare +BagMenu_DrawPocketIndicatorSquare: @ 0x081AC030 + push {lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + cmp r1, #0 + bne _081AC05C + ldr r1, _081AC058 + adds r2, r0, #5 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r0, #1 + str r0, [sp] + str r0, [sp, #4] + movs r0, #2 + movs r3, #3 + bl FillBgTilemapBufferRect_Palette0 + b _081AC072 + .align 2, 0 +_081AC058: .4byte 0x00001017 +_081AC05C: + ldr r1, _081AC080 + adds r2, r0, #5 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r0, #1 + str r0, [sp] + str r0, [sp, #4] + movs r0, #2 + movs r3, #3 + bl FillBgTilemapBufferRect_Palette0 +_081AC072: + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 +_081AC080: .4byte 0x0000102B + thumb_func_end BagMenu_DrawPocketIndicatorSquare + + thumb_func_start sub_081AC084 +sub_081AC084: @ 0x081AC084 + push {lr} + ldr r1, _081AC0A0 + ldrb r0, [r1, #4] + cmp r0, #1 + bhi _081AC0A4 + ldrb r0, [r1, #5] + subs r0, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _081AC0A4 + movs r0, #1 + b _081AC0A6 + .align 2, 0 +_081AC0A0: .4byte 0x0203CB24 +_081AC0A4: + movs r0, #0 +_081AC0A6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081AC084 + + thumb_func_start BagMenu_SwapItems +BagMenu_SwapItems: @ 0x081AC0AC + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _081AC164 + mov sb, r0 + adds r6, r4, r0 + ldrb r0, [r6] + movs r1, #0x10 + movs r2, #1 + bl ListMenuSetUnkIndicatorsStructField + ldr r3, _081AC168 + ldrb r0, [r3, #5] + lsls r0, r0, #1 + adds r2, r3, #0 + adds r2, #0x12 + adds r2, r0, r2 + adds r1, r3, #0 + adds r1, #8 + adds r0, r0, r1 + ldrh r1, [r0] + ldrh r2, [r2] + adds r1, r1, r2 + strh r1, [r6, #2] + ldr r0, _081AC16C + ldr r0, [r0] + ldr r2, _081AC170 + adds r0, r0, r2 + movs r5, #0 + strb r1, [r0] + ldrb r0, [r3, #5] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r6, #2] + bl BagGetItemIdByPocketPosition + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _081AC174 + bl CopyItemName + ldr r0, _081AC178 + mov r8, r0 + ldr r1, _081AC17C + bl StringExpandPlaceholders + movs r0, #1 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #2 + str r0, [sp] + str r5, [sp, #4] + str r5, [sp, #8] + str r5, [sp, #0xc] + str r5, [sp, #0x10] + movs r0, #1 + movs r1, #1 + mov r2, r8 + movs r3, #0 + bl BagMenu_Print + ldrb r0, [r6, #2] + bl sub_080D4870 + bl sub_081AB648 + ldrb r0, [r6] + movs r1, #2 + bl BagMenu_PrintCursor_ + movs r2, #8 + rsbs r2, r2, #0 + add sb, r2 + add r4, sb + ldr r0, _081AC180 + str r0, [r4] + add sp, #0x14 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081AC164: .4byte 0x03005B68 +_081AC168: .4byte 0x0203CB24 +_081AC16C: .4byte 0x0203CB20 +_081AC170: .4byte 0x0000081A +_081AC174: .4byte 0x02021C40 +_081AC178: .4byte 0x02021C7C +_081AC17C: .4byte 0x085C947F +_081AC180: .4byte 0x081AC185 + thumb_func_end BagMenu_SwapItems + + thumb_func_start sub_081AC184 +sub_081AC184: @ 0x081AC184 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _081AC1D0 + adds r4, r0, r1 + bl sub_081221F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081AC252 + ldr r0, _081AC1D4 + mov r8, r0 + ldrh r1, [r0, #0x2e] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _081AC1DC + movs r0, #5 + bl PlaySE + ldrb r0, [r4] + ldr r3, _081AC1D8 + ldrb r2, [r3, #5] + lsls r2, r2, #1 + adds r1, r3, #0 + adds r1, #0x12 + adds r1, r2, r1 + adds r3, #8 + adds r2, r2, r3 + bl ListMenuGetScrollAndRow + b _081AC236 + .align 2, 0 +_081AC1D0: .4byte 0x03005B68 +_081AC1D4: .4byte 0x03002360 +_081AC1D8: .4byte 0x0203CB24 +_081AC1DC: + ldrb r0, [r4] + bl ListMenu_ProcessInput + adds r7, r0, #0 + ldrb r0, [r4] + ldr r5, _081AC220 + ldrb r2, [r5, #5] + lsls r2, r2, #1 + adds r1, r5, #0 + adds r1, #0x12 + adds r1, r2, r1 + adds r4, r5, #0 + adds r4, #8 + adds r2, r2, r4 + bl ListMenuGetScrollAndRow + movs r0, #0 + bl sub_080D484C + ldrb r0, [r5, #5] + lsls r0, r0, #1 + adds r0, r0, r4 + ldrb r0, [r0] + bl sub_080D4870 + movs r0, #2 + rsbs r0, r0, #0 + cmp r7, r0 + beq _081AC224 + adds r0, #1 + cmp r7, r0 + bne _081AC246 + b _081AC252 + .align 2, 0 +_081AC220: .4byte 0x0203CB24 +_081AC224: + movs r0, #5 + bl PlaySE + mov r0, r8 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081AC23E +_081AC236: + adds r0, r6, #0 + bl sub_081AC25C + b _081AC252 +_081AC23E: + adds r0, r6, #0 + bl sub_081AC354 + b _081AC252 +_081AC246: + movs r0, #5 + bl PlaySE + adds r0, r6, #0 + bl sub_081AC25C +_081AC252: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_081AC184 + + thumb_func_start sub_081AC25C +sub_081AC25C: @ 0x081AC25C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #3 + mov sl, r0 + ldr r0, _081AC2B0 + add r0, sl + mov sb, r0 + ldr r5, _081AC2B4 + ldrb r6, [r5, #5] + lsls r1, r6, #1 + adds r0, r5, #0 + adds r0, #0x12 + adds r0, r0, r1 + mov r8, r0 + ldr r2, _081AC2B8 + adds r7, r1, r2 + ldrh r0, [r7] + mov r1, r8 + ldrh r1, [r1] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + mov r0, sb + movs r1, #2 + ldrsh r2, [r0, r1] + cmp r2, r4 + beq _081AC2A6 + subs r0, r4, #1 + cmp r2, r0 + bne _081AC2BC +_081AC2A6: + adds r0, r3, #0 + bl sub_081AC354 + b _081AC32A + .align 2, 0 +_081AC2B0: .4byte 0x03005B68 +_081AC2B4: .4byte 0x0203CB24 +_081AC2B8: .4byte 0x0203CB2C +_081AC2BC: + ldr r1, _081AC338 + lsls r0, r6, #3 + adds r0, r0, r1 + ldr r0, [r0] + adds r1, r2, #0 + adds r2, r4, #0 + bl MoveItemSlotInList + ldr r0, _081AC33C + ldr r0, [r0] + ldr r2, _081AC340 + adds r0, r0, r2 + movs r1, #0xff + strb r1, [r0] + mov r1, sb + ldrb r0, [r1] + mov r1, r8 + adds r2, r7, #0 + bl DestroyListMenuTask + mov r2, sb + movs r1, #2 + ldrsh r0, [r2, r1] + cmp r0, r4 + bge _081AC2FC + ldrb r1, [r5, #5] + lsls r1, r1, #1 + ldr r2, _081AC344 + adds r1, r1, r2 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] +_081AC2FC: + ldrb r0, [r5, #5] + bl LoadBagItemListBuffers + ldr r0, _081AC348 + mov r2, r8 + ldrh r1, [r2] + ldrh r2, [r7] + bl ListMenuInit + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, sb + strh r0, [r1] + movs r0, #1 + bl sub_080D484C + bl bag_menu_add_list_scroll_arrow_indicators_maybe + ldr r0, _081AC34C + subs r0, #8 + add r0, sl + ldr r1, _081AC350 + str r1, [r0] +_081AC32A: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081AC338: .4byte 0x02039A78 +_081AC33C: .4byte 0x0203CB20 +_081AC340: .4byte 0x0000081A +_081AC344: .4byte 0x0203CB2C +_081AC348: .4byte 0x03006050 +_081AC34C: .4byte 0x03005B68 +_081AC350: .4byte 0x081ABAB5 + thumb_func_end sub_081AC25C + + thumb_func_start sub_081AC354 +sub_081AC354: @ 0x081AC354 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + mov sb, r1 + ldr r0, _081AC3F0 + mov sl, r0 + mov r7, sb + add r7, sl + ldr r4, _081AC3F4 + ldrb r0, [r4, #5] + lsls r0, r0, #1 + adds r1, r4, #0 + adds r1, #0x12 + adds r6, r0, r1 + movs r1, #8 + adds r1, r1, r4 + mov r8, r1 + adds r5, r0, r1 + ldr r0, _081AC3F8 + ldr r0, [r0] + ldr r1, _081AC3FC + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] + ldrb r0, [r7] + adds r1, r6, #0 + adds r2, r5, #0 + bl DestroyListMenuTask + movs r0, #2 + ldrsh r2, [r7, r0] + ldrh r0, [r6] + ldrh r1, [r5] + adds r0, r0, r1 + cmp r2, r0 + bge _081AC3B6 + ldrb r1, [r4, #5] + lsls r1, r1, #1 + add r1, r8 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] +_081AC3B6: + ldrb r0, [r4, #5] + bl LoadBagItemListBuffers + ldr r0, _081AC400 + ldrh r1, [r6] + ldrh r2, [r5] + bl ListMenuInit + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r7] + movs r0, #1 + bl sub_080D484C + bl bag_menu_add_list_scroll_arrow_indicators_maybe + mov r0, sl + subs r0, #8 + add r0, sb + ldr r1, _081AC404 + str r1, [r0] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081AC3F0: .4byte 0x03005B68 +_081AC3F4: .4byte 0x0203CB24 +_081AC3F8: .4byte 0x0203CB20 +_081AC3FC: .4byte 0x0000081A +_081AC400: .4byte 0x03006050 +_081AC404: .4byte 0x081ABAB5 + thumb_func_end sub_081AC354 + + thumb_func_start sub_081AC408 +sub_081AC408: @ 0x081AC408 + push {r4, r5, lr} + sub sp, #0x14 + ldr r0, _081AC424 + ldrb r0, [r0, #4] + subs r0, #1 + cmp r0, #9 + bls _081AC418 + b _081AC5F0 +_081AC418: + lsls r0, r0, #2 + ldr r1, _081AC428 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081AC424: .4byte 0x0203CB24 +_081AC428: .4byte 0x081AC42C +_081AC42C: @ jump table + .4byte _081AC454 @ case 0 + .4byte _081AC5F0 @ case 1 + .4byte _081AC5F0 @ case 2 + .4byte _081AC5F0 @ case 3 + .4byte _081AC4AC @ case 4 + .4byte _081AC5F0 @ case 5 + .4byte _081AC530 @ case 6 + .4byte _081AC590 @ case 7 + .4byte _081AC4D0 @ case 8 + .4byte _081AC454 @ case 9 +_081AC454: + ldr r0, _081AC478 + ldrh r0, [r0] + bl ItemId_GetSecondaryId + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081AC488 + ldr r0, _081AC47C + ldr r1, [r0] + movs r0, #0x82 + lsls r0, r0, #4 + adds r2, r1, r0 + ldr r0, _081AC480 + str r0, [r2] + ldr r0, _081AC484 + adds r1, r1, r0 + movs r0, #2 + b _081AC7D4 + .align 2, 0 +_081AC478: .4byte 0x0203CB48 +_081AC47C: .4byte 0x0203CB20 +_081AC480: .4byte 0x085DF87A +_081AC484: .4byte 0x00000828 +_081AC488: + ldr r0, _081AC4A0 + ldr r1, [r0] + movs r0, #0x82 + lsls r0, r0, #4 + adds r2, r1, r0 + ldr r0, _081AC4A4 + str r0, [r2] + ldr r0, _081AC4A8 + adds r1, r1, r0 + movs r0, #1 + b _081AC7D4 + .align 2, 0 +_081AC4A0: .4byte 0x0203CB20 +_081AC4A4: .4byte 0x085DF87E +_081AC4A8: .4byte 0x00000828 +_081AC4AC: + ldr r0, _081AC4C4 + ldr r1, [r0] + movs r0, #0x82 + lsls r0, r0, #4 + adds r2, r1, r0 + ldr r0, _081AC4C8 + str r0, [r2] + ldr r0, _081AC4CC + adds r1, r1, r0 + movs r0, #4 + b _081AC7D4 + .align 2, 0 +_081AC4C4: .4byte 0x0203CB20 +_081AC4C8: .4byte 0x085DF87F +_081AC4CC: .4byte 0x00000828 +_081AC4D0: + ldr r4, _081AC4FC + ldrh r0, [r4] + bl ItemId_GetHoldEffectParam + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081AC50C + ldrh r0, [r4] + cmp r0, #0xaf + beq _081AC50C + ldr r0, _081AC500 + ldr r1, [r0] + movs r0, #0x82 + lsls r0, r0, #4 + adds r2, r1, r0 + ldr r0, _081AC504 + str r0, [r2] + ldr r0, _081AC508 + adds r1, r1, r0 + movs r0, #2 + b _081AC7D4 + .align 2, 0 +_081AC4FC: .4byte 0x0203CB48 +_081AC500: .4byte 0x0203CB20 +_081AC504: .4byte 0x085DF883 +_081AC508: .4byte 0x00000828 +_081AC50C: + ldr r0, _081AC524 + ldr r1, [r0] + movs r0, #0x82 + lsls r0, r0, #4 + adds r2, r1, r0 + ldr r0, _081AC528 + str r0, [r2] + ldr r0, _081AC52C + adds r1, r1, r0 + movs r0, #1 + b _081AC7D4 + .align 2, 0 +_081AC524: .4byte 0x0203CB20 +_081AC528: .4byte 0x085DF87E +_081AC52C: .4byte 0x00000828 +_081AC530: + ldr r4, _081AC55C + ldrh r0, [r4] + bl ItemId_GetHoldEffectParam + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081AC56C + ldrh r0, [r4] + cmp r0, #0xaf + beq _081AC56C + ldr r0, _081AC560 + ldr r1, [r0] + movs r0, #0x82 + lsls r0, r0, #4 + adds r2, r1, r0 + ldr r0, _081AC564 + str r0, [r2] + ldr r0, _081AC568 + adds r1, r1, r0 + movs r0, #2 + b _081AC7D4 + .align 2, 0 +_081AC55C: .4byte 0x0203CB48 +_081AC560: .4byte 0x0203CB20 +_081AC564: .4byte 0x085DF885 +_081AC568: .4byte 0x00000828 +_081AC56C: + ldr r0, _081AC584 + ldr r1, [r0] + movs r0, #0x82 + lsls r0, r0, #4 + adds r2, r1, r0 + ldr r0, _081AC588 + str r0, [r2] + ldr r0, _081AC58C + adds r1, r1, r0 + movs r0, #1 + b _081AC7D4 + .align 2, 0 +_081AC584: .4byte 0x0203CB20 +_081AC588: .4byte 0x085DF87E +_081AC58C: .4byte 0x00000828 +_081AC590: + ldr r4, _081AC5BC + ldrh r0, [r4] + bl ItemId_GetHoldEffectParam + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081AC5CC + ldrh r0, [r4] + cmp r0, #0xaf + beq _081AC5CC + ldr r0, _081AC5C0 + ldr r1, [r0] + movs r0, #0x82 + lsls r0, r0, #4 + adds r2, r1, r0 + ldr r0, _081AC5C4 + str r0, [r2] + ldr r0, _081AC5C8 + adds r1, r1, r0 + movs r0, #2 + b _081AC7D4 + .align 2, 0 +_081AC5BC: .4byte 0x0203CB48 +_081AC5C0: .4byte 0x0203CB20 +_081AC5C4: .4byte 0x085DF887 +_081AC5C8: .4byte 0x00000828 +_081AC5CC: + ldr r0, _081AC5E4 + ldr r1, [r0] + movs r0, #0x82 + lsls r0, r0, #4 + adds r2, r1, r0 + ldr r0, _081AC5E8 + str r0, [r2] + ldr r0, _081AC5EC + adds r1, r1, r0 + movs r0, #1 + b _081AC7D4 + .align 2, 0 +_081AC5E4: .4byte 0x0203CB20 +_081AC5E8: .4byte 0x085DF87E +_081AC5EC: .4byte 0x00000828 +_081AC5F0: + bl sub_081221B8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081AC604 + bl InUnionRoom + cmp r0, #1 + bne _081AC668 +_081AC604: + ldr r0, _081AC630 + ldrb r0, [r0, #5] + cmp r0, #4 + beq _081AC61A + ldr r0, _081AC634 + ldrh r0, [r0] + bl sub_08122154 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081AC644 +_081AC61A: + ldr r0, _081AC638 + ldr r1, [r0] + movs r0, #0x82 + lsls r0, r0, #4 + adds r2, r1, r0 + ldr r0, _081AC63C + str r0, [r2] + ldr r0, _081AC640 + adds r1, r1, r0 + movs r0, #1 + b _081AC7D4 + .align 2, 0 +_081AC630: .4byte 0x0203CB24 +_081AC634: .4byte 0x0203CB48 +_081AC638: .4byte 0x0203CB20 +_081AC63C: .4byte 0x085DF87E +_081AC640: .4byte 0x00000828 +_081AC644: + ldr r0, _081AC65C + ldr r1, [r0] + movs r0, #0x82 + lsls r0, r0, #4 + adds r2, r1, r0 + ldr r0, _081AC660 + str r0, [r2] + ldr r0, _081AC664 + adds r1, r1, r0 + movs r0, #2 + b _081AC7D4 + .align 2, 0 +_081AC65C: .4byte 0x0203CB20 +_081AC660: .4byte 0x085DF87C +_081AC664: .4byte 0x00000828 +_081AC668: + ldr r0, _081AC67C + ldrb r0, [r0, #5] + cmp r0, #4 + bls _081AC672 + b _081AC7D6 +_081AC672: + lsls r0, r0, #2 + ldr r1, _081AC680 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081AC67C: .4byte 0x0203CB24 +_081AC680: .4byte 0x081AC684 +_081AC684: @ jump table + .4byte _081AC698 @ case 0 + .4byte _081AC778 @ case 1 + .4byte _081AC79C @ case 2 + .4byte _081AC7C0 @ case 3 + .4byte _081AC6F0 @ case 4 +_081AC698: + ldr r4, _081AC6DC + ldr r1, [r4] + movs r0, #0x82 + lsls r0, r0, #4 + adds r2, r1, r0 + ldr r3, _081AC6E0 + adds r0, r1, r3 + str r0, [r2] + ldr r0, _081AC6E4 + adds r1, r1, r0 + movs r0, #4 + strb r0, [r1] + ldr r0, [r4] + adds r0, r0, r3 + ldr r1, _081AC6E8 + movs r2, #4 + bl memcpy + ldr r0, _081AC6EC + ldrh r0, [r0] + bl ItemIsMail + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081AC6CE + b _081AC7D6 +_081AC6CE: + ldr r0, [r4] + ldr r1, _081AC6E0 + adds r0, r0, r1 + movs r1, #6 + strb r1, [r0] + b _081AC7D6 + .align 2, 0 +_081AC6DC: .4byte 0x0203CB20 +_081AC6E0: .4byte 0x00000824 +_081AC6E4: .4byte 0x00000828 +_081AC6E8: .4byte 0x085DF864 +_081AC6EC: .4byte 0x0203CB48 +_081AC6F0: + ldr r4, _081AC754 + ldr r1, [r4] + movs r0, #0x82 + lsls r0, r0, #4 + adds r2, r1, r0 + ldr r5, _081AC758 + adds r0, r1, r5 + str r0, [r2] + ldr r0, _081AC75C + adds r1, r1, r0 + movs r0, #4 + strb r0, [r1] + ldr r0, [r4] + adds r0, r0, r5 + ldr r1, _081AC760 + movs r2, #4 + bl memcpy + ldr r0, _081AC764 + ldr r0, [r0] + ldr r1, _081AC768 + adds r0, r0, r1 + ldr r2, _081AC76C + ldrh r0, [r0] + ldrh r1, [r2] + cmp r0, r1 + bne _081AC730 + ldr r0, [r4] + ldr r1, _081AC770 + adds r0, r0, r1 + movs r1, #8 + strb r1, [r0] +_081AC730: + ldrh r1, [r2] + ldr r0, _081AC774 + cmp r1, r0 + beq _081AC73E + adds r0, #0xd + cmp r1, r0 + bne _081AC7D6 +_081AC73E: + movs r0, #6 + bl TestPlayerAvatarFlags + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081AC7D6 + ldr r0, [r4] + adds r0, r0, r5 + movs r1, #7 + strb r1, [r0] + b _081AC7D6 + .align 2, 0 +_081AC754: .4byte 0x0203CB20 +_081AC758: .4byte 0x00000824 +_081AC75C: .4byte 0x00000828 +_081AC760: .4byte 0x085DF868 +_081AC764: .4byte 0x03005AEC +_081AC768: .4byte 0x00000496 +_081AC76C: .4byte 0x0203CB48 +_081AC770: .4byte 0x00000825 +_081AC774: .4byte 0x00000103 +_081AC778: + ldr r0, _081AC790 + ldr r1, [r0] + movs r0, #0x82 + lsls r0, r0, #4 + adds r2, r1, r0 + ldr r0, _081AC794 + str r0, [r2] + ldr r0, _081AC798 + adds r1, r1, r0 + movs r0, #4 + b _081AC7D4 + .align 2, 0 +_081AC790: .4byte 0x0203CB20 +_081AC794: .4byte 0x085DF86C +_081AC798: .4byte 0x00000828 +_081AC79C: + ldr r0, _081AC7B4 + ldr r1, [r0] + movs r0, #0x82 + lsls r0, r0, #4 + adds r2, r1, r0 + ldr r0, _081AC7B8 + str r0, [r2] + ldr r0, _081AC7BC + adds r1, r1, r0 + movs r0, #4 + b _081AC7D4 + .align 2, 0 +_081AC7B4: .4byte 0x0203CB20 +_081AC7B8: .4byte 0x085DF870 +_081AC7BC: .4byte 0x00000828 +_081AC7C0: + ldr r0, _081AC800 + ldr r1, [r0] + movs r0, #0x82 + lsls r0, r0, #4 + adds r2, r1, r0 + ldr r0, _081AC804 + str r0, [r2] + ldr r0, _081AC808 + adds r1, r1, r0 + movs r0, #6 +_081AC7D4: + strb r0, [r1] +_081AC7D6: + ldr r0, _081AC80C + ldrb r0, [r0, #5] + cmp r0, #2 + bne _081AC814 + movs r0, #1 + bl ClearWindowTilemap + ldr r0, _081AC810 + ldrh r0, [r0] + bl PrintTMHMMoveData + movs r0, #3 + bl PutWindowTilemap + movs r0, #4 + bl PutWindowTilemap + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + b _081AC84A + .align 2, 0 +_081AC800: .4byte 0x0203CB20 +_081AC804: .4byte 0x085DF874 +_081AC808: .4byte 0x00000828 +_081AC80C: .4byte 0x0203CB24 +_081AC810: .4byte 0x0203CB48 +_081AC814: + ldr r0, _081AC85C + ldrh r0, [r0] + ldr r1, _081AC860 + bl CopyItemName + ldr r4, _081AC864 + ldr r1, _081AC868 + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #1 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + str r0, [sp, #0x10] + movs r0, #1 + movs r1, #1 + adds r2, r4, #0 + movs r3, #0 + bl BagMenu_Print +_081AC84A: + ldr r0, _081AC86C + ldr r0, [r0] + ldr r1, _081AC870 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + bne _081AC874 + movs r0, #0 + b _081AC87A + .align 2, 0 +_081AC85C: .4byte 0x0203CB48 +_081AC860: .4byte 0x02021C40 +_081AC864: .4byte 0x02021C7C +_081AC868: .4byte 0x085C9450 +_081AC86C: .4byte 0x0203CB20 +_081AC870: .4byte 0x00000828 +_081AC874: + cmp r0, #2 + bne _081AC888 + movs r0, #1 +_081AC87A: + bl BagMenu_AddWindow + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_081AC8BC + b _081AC8B2 +_081AC888: + cmp r0, #4 + bne _081AC8A0 + movs r0, #2 + bl BagMenu_AddWindow + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + movs r2, #2 + bl sub_081AC938 + b _081AC8B2 +_081AC8A0: + movs r0, #3 + bl BagMenu_AddWindow + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + movs r2, #3 + bl sub_081AC938 +_081AC8B2: + add sp, #0x14 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081AC408 + + thumb_func_start sub_081AC8BC +sub_081AC8BC: @ 0x081AC8BC + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0x14 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + mov r8, r0 + str r0, [sp] + movs r0, #0x10 + str r0, [sp, #4] + ldr r6, _081AC92C + ldr r1, [r6] + ldr r5, _081AC930 + adds r0, r1, r5 + ldrb r0, [r0] + str r0, [sp, #8] + ldr r0, _081AC934 + str r0, [sp, #0xc] + movs r0, #0x82 + lsls r0, r0, #4 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [sp, #0x10] + adds r0, r4, #0 + movs r1, #1 + movs r2, #8 + movs r3, #2 + bl AddItemMenuActionTextPrinters + movs r0, #1 + movs r1, #1 + bl GetFontAttribute + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + ldr r0, [r6] + adds r0, r0, r5 + ldrb r0, [r0] + str r0, [sp, #4] + mov r0, r8 + str r0, [sp, #8] + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl sub_081984B0 + add sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081AC92C: .4byte 0x0203CB20 +_081AC930: .4byte 0x00000828 +_081AC934: .4byte 0x085DF7EC + thumb_func_end sub_081AC8BC + + thumb_func_start sub_081AC938 +sub_081AC938: @ 0x081AC938 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0x14 + adds r6, r0, #0 + adds r4, r1, #0 + adds r5, r2, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r0, #0x30 + mov r8, r0 + str r0, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + ldr r0, _081AC9A0 + str r0, [sp, #0xc] + ldr r0, _081AC9A4 + ldr r0, [r0] + movs r1, #0x82 + lsls r1, r1, #4 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [sp, #0x10] + adds r0, r6, #0 + movs r1, #1 + movs r2, #8 + movs r3, #2 + bl sub_08198ECC + mov r0, r8 + str r0, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + str r0, [sp, #0xc] + adds r0, r6, #0 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl sub_081990E4 + add sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081AC9A0: .4byte 0x085DF7EC +_081AC9A4: .4byte 0x0203CB20 + thumb_func_end sub_081AC938 + + thumb_func_start unknown_item_menu_type +unknown_item_menu_type: @ 0x081AC9A8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl sub_081AC408 + ldr r0, _081AC9D0 + ldr r0, [r0] + ldr r1, _081AC9D4 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #2 + bhi _081AC9E0 + ldr r0, _081AC9D8 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081AC9DC + b _081AC9EC + .align 2, 0 +_081AC9D0: .4byte 0x0203CB20 +_081AC9D4: .4byte 0x00000828 +_081AC9D8: .4byte 0x03005B60 +_081AC9DC: .4byte 0x081AC9FD +_081AC9E0: + ldr r0, _081AC9F4 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081AC9F8 +_081AC9EC: + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081AC9F4: .4byte 0x03005B60 +_081AC9F8: .4byte 0x081ACA71 + thumb_func_end unknown_item_menu_type + + thumb_func_start Task_HandleInBattleItemMenuInput +Task_HandleInBattleItemMenuInput: @ 0x081AC9FC + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r6, r5, #0 + bl sub_081221F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081ACA62 + bl Menu_ProcessInputNoWrap + lsls r0, r0, #0x18 + asrs r4, r0, #0x18 + movs r0, #2 + rsbs r0, r0, #0 + cmp r4, r0 + beq _081ACA62 + adds r0, #1 + cmp r4, r0 + bne _081ACA3C + movs r0, #5 + bl PlaySE + ldr r0, _081ACA38 + ldr r1, [r0, #0x24] + adds r0, r5, #0 + bl _call_via_r1 + b _081ACA62 + .align 2, 0 +_081ACA38: .4byte 0x085DF7EC +_081ACA3C: + movs r0, #5 + bl PlaySE + ldr r1, _081ACA68 + ldr r0, _081ACA6C + ldr r0, [r0] + movs r2, #0x82 + lsls r2, r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + adds r0, r0, r4 + ldrb r0, [r0] + lsls r0, r0, #3 + adds r1, #4 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r6, #0 + bl _call_via_r1 +_081ACA62: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081ACA68: .4byte 0x085DF7EC +_081ACA6C: .4byte 0x0203CB20 + thumb_func_end Task_HandleInBattleItemMenuInput + + thumb_func_start Task_HandleOutOfBattleItemMenuInput +Task_HandleOutOfBattleItemMenuInput: @ 0x081ACA70 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + bl sub_081221F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081ACA84 + b _081ACBE8 +_081ACA84: + bl Menu_GetCursorPos + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r5, _081ACAC8 + ldrh r1, [r5, #0x2e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _081ACACC + lsls r0, r4, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bgt _081ACAA2 + b _081ACBE8 +_081ACAA2: + subs r0, #2 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + bl sub_081ACBF4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081ACAB4 + b _081ACBE8 +_081ACAB4: + movs r0, #5 + bl PlaySE + movs r1, #1 + rsbs r1, r1, #0 + movs r0, #0 + bl sub_08199250 + b _081ACBE8 + .align 2, 0 +_081ACAC8: .4byte 0x03002360 +_081ACACC: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _081ACB14 + lsls r0, r4, #0x18 + asrs r1, r0, #0x18 + ldr r0, _081ACB0C + ldr r0, [r0] + ldr r2, _081ACB10 + adds r0, r0, r2 + ldrb r0, [r0] + subs r0, #2 + cmp r1, r0 + blt _081ACAEA + b _081ACBE8 +_081ACAEA: + adds r0, r1, #2 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + bl sub_081ACBF4 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081ACBE8 + movs r0, #5 + bl PlaySE + movs r0, #0 + movs r1, #1 + bl sub_08199250 + b _081ACBE8 + .align 2, 0 +_081ACB0C: .4byte 0x0203CB20 +_081ACB10: .4byte 0x00000828 +_081ACB14: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _081ACB28 + bl GetLRKeysState + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081ACB50 +_081ACB28: + lsls r0, r4, #0x18 + asrs r1, r0, #0x18 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081ACBE8 + subs r0, r1, #1 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + bl sub_081ACBF4 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081ACBE8 + movs r0, #5 + bl PlaySE + movs r0, #1 + rsbs r0, r0, #0 + b _081ACB8A +_081ACB50: + ldrh r1, [r5, #0x2e] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _081ACB66 + bl GetLRKeysState + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _081ACB92 +_081ACB66: + lsls r0, r4, #0x18 + asrs r1, r0, #0x18 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _081ACBE8 + adds r0, r1, #1 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + bl sub_081ACBF4 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081ACBE8 + movs r0, #5 + bl PlaySE + movs r0, #1 +_081ACB8A: + movs r1, #0 + bl sub_08199250 + b _081ACBE8 +_081ACB92: + ldrh r1, [r5, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081ACBD0 + movs r0, #5 + bl PlaySE + ldr r2, _081ACBC8 + ldr r0, _081ACBCC + ldr r0, [r0] + lsls r1, r4, #0x18 + asrs r1, r1, #0x18 + movs r3, #0x82 + lsls r3, r3, #4 + adds r0, r0, r3 + ldr r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #3 + adds r2, #4 + adds r0, r0, r2 + ldr r1, [r0] + adds r0, r6, #0 + bl _call_via_r1 + b _081ACBE8 + .align 2, 0 +_081ACBC8: .4byte 0x085DF7EC +_081ACBCC: .4byte 0x0203CB20 +_081ACBD0: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081ACBE8 + movs r0, #5 + bl PlaySE + ldr r0, _081ACBF0 + ldr r1, [r0, #0x24] + adds r0, r6, #0 + bl _call_via_r1 +_081ACBE8: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081ACBF0: .4byte 0x085DF7EC + thumb_func_end Task_HandleOutOfBattleItemMenuInput + + thumb_func_start sub_081ACBF4 +sub_081ACBF4: @ 0x081ACBF4 + push {lr} + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + blt _081ACC28 + ldr r0, _081ACC20 + ldr r2, [r0] + ldr r3, _081ACC24 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r1, r0 + bgt _081ACC28 + movs r3, #0x82 + lsls r3, r3, #4 + adds r0, r2, r3 + ldr r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0xe + beq _081ACC28 + movs r0, #1 + b _081ACC2A + .align 2, 0 +_081ACC20: .4byte 0x0203CB20 +_081ACC24: .4byte 0x00000828 +_081ACC28: + movs r0, #0 +_081ACC2A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081ACBF4 + + thumb_func_start BagMenu_RemoveSomeWindow +BagMenu_RemoveSomeWindow: @ 0x081ACC30 + push {lr} + ldr r0, _081ACC48 + ldr r0, [r0] + ldr r1, _081ACC4C + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + bne _081ACC50 + movs r0, #0 + bl BagMenu_RemoveWindow + b _081ACC6E + .align 2, 0 +_081ACC48: .4byte 0x0203CB20 +_081ACC4C: .4byte 0x00000828 +_081ACC50: + cmp r0, #2 + bne _081ACC5C + movs r0, #1 + bl BagMenu_RemoveWindow + b _081ACC6E +_081ACC5C: + cmp r0, #4 + bne _081ACC68 + movs r0, #2 + bl BagMenu_RemoveWindow + b _081ACC6E +_081ACC68: + movs r0, #3 + bl BagMenu_RemoveWindow +_081ACC6E: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BagMenu_RemoveSomeWindow + + thumb_func_start ItemMenu_UseOutOfBattle +ItemMenu_UseOutOfBattle: @ 0x081ACC74 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r5, _081ACCAC + ldrh r0, [r5] + bl sub_080D6DF8 + cmp r0, #0 + beq _081ACCE6 + bl BagMenu_RemoveSomeWindow + bl CalculatePlayerPartyCount + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081ACCB0 + ldrh r0, [r5] + bl ItemId_GetPocket + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081ACCB0 + adds r0, r4, #0 + bl BagMenu_PrintThereIsNoPokemon + b _081ACCE6 + .align 2, 0 +_081ACCAC: .4byte 0x0203CB48 +_081ACCB0: + movs r0, #1 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + ldr r0, _081ACCD8 + ldrb r0, [r0, #5] + cmp r0, #3 + beq _081ACCE0 + ldr r0, _081ACCDC + ldrh r0, [r0] + bl sub_080D6DF8 + adds r1, r0, #0 + adds r0, r4, #0 + bl _call_via_r1 + b _081ACCE6 + .align 2, 0 +_081ACCD8: .4byte 0x0203CB24 +_081ACCDC: .4byte 0x0203CB48 +_081ACCE0: + adds r0, r4, #0 + bl sub_080FE564 +_081ACCE6: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end ItemMenu_UseOutOfBattle + + thumb_func_start ItemMenu_Toss +ItemMenu_Toss: @ 0x081ACCEC + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r6, r0, #3 + ldr r7, _081ACD18 + adds r4, r6, r7 + bl BagMenu_RemoveSomeWindow + movs r0, #1 + strh r0, [r4, #0x10] + movs r1, #4 + ldrsh r0, [r4, r1] + cmp r0, #1 + bne _081ACD1C + adds r0, r5, #0 + bl BagMenu_TossItems + b _081ACD62 + .align 2, 0 +_081ACD18: .4byte 0x03005B68 +_081ACD1C: + ldr r0, _081ACD6C + ldrh r0, [r0] + ldr r1, _081ACD70 + bl CopyItemName + ldr r4, _081ACD74 + ldr r1, _081ACD78 + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #1 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + str r0, [sp, #0x10] + movs r0, #1 + movs r1, #1 + adds r2, r4, #0 + movs r3, #0 + bl BagMenu_Print + movs r0, #7 + bl PrintItemDepositAmount + adds r0, r7, #0 + subs r0, #8 + adds r0, r6, r0 + ldr r1, _081ACD7C + str r1, [r0] +_081ACD62: + add sp, #0x14 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081ACD6C: .4byte 0x0203CB48 +_081ACD70: .4byte 0x02021C40 +_081ACD74: .4byte 0x02021C7C +_081ACD78: .4byte 0x085C9523 +_081ACD7C: .4byte 0x081ACE3D + thumb_func_end ItemMenu_Toss + + thumb_func_start BagMenu_TossItems +BagMenu_TossItems: @ 0x081ACD80 + push {r4, r5, lr} + sub sp, #0x14 + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + ldr r0, _081ACDEC + adds r4, r4, r0 + ldr r0, _081ACDF0 + ldrh r0, [r0] + ldr r1, _081ACDF4 + bl CopyItemName + ldr r0, _081ACDF8 + movs r2, #0x10 + ldrsh r1, [r4, r2] + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r4, _081ACDFC + ldr r1, _081ACE00 + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #1 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + str r0, [sp, #0x10] + movs r0, #1 + movs r1, #1 + adds r2, r4, #0 + movs r3, #0 + bl BagMenu_Print + ldr r2, _081ACE04 + adds r0, r5, #0 + movs r1, #5 + bl BagMenu_YesNo + add sp, #0x14 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081ACDEC: .4byte 0x03005B68 +_081ACDF0: .4byte 0x0203CB48 +_081ACDF4: .4byte 0x02021C40 +_081ACDF8: .4byte 0x02021C54 +_081ACDFC: .4byte 0x02021C7C +_081ACE00: .4byte 0x085C9540 +_081ACE04: .4byte 0x085DF8BC + thumb_func_end BagMenu_TossItems + + thumb_func_start BagMenu_CancelToss +BagMenu_CancelToss: @ 0x081ACE08 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + ldr r0, _081ACE38 + adds r4, r4, r0 + movs r1, #2 + ldrsh r0, [r4, r1] + bl BagMenu_PrintDescription + ldrb r0, [r4] + movs r1, #0 + bl BagMenu_PrintCursor_ + adds r0, r5, #0 + bl set_callback3_to_bag + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081ACE38: .4byte 0x03005B68 + thumb_func_end BagMenu_CancelToss + + thumb_func_start Task_ChooseHowManyToToss +Task_ChooseHowManyToToss: @ 0x081ACE3C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r6, r5, #0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _081ACE74 + adds r4, r0, r1 + adds r0, r4, #0 + adds r0, #0x10 + ldrh r1, [r4, #4] + bl AdjustQuantityAccordingToDPadInput + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081ACE80 + ldr r0, _081ACE78 + ldr r0, [r0] + ldr r1, _081ACE7C + adds r0, r0, r1 + ldrb r0, [r0] + movs r2, #0x10 + ldrsh r1, [r4, r2] + bl sub_081ABA50 + b _081ACEBE + .align 2, 0 +_081ACE74: .4byte 0x03005B68 +_081ACE78: .4byte 0x0203CB20 +_081ACE7C: .4byte 0x00000817 +_081ACE80: + ldr r0, _081ACEA0 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081ACEA4 + movs r0, #5 + bl PlaySE + movs r0, #7 + bl BagMenu_RemoveWindow + adds r0, r5, #0 + bl BagMenu_TossItems + b _081ACEBE + .align 2, 0 +_081ACEA0: .4byte 0x03002360 +_081ACEA4: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081ACEBE + movs r0, #5 + bl PlaySE + movs r0, #7 + bl BagMenu_RemoveWindow + adds r0, r6, #0 + bl BagMenu_CancelToss +_081ACEBE: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end Task_ChooseHowManyToToss + + thumb_func_start BagMenu_ConfirmToss +BagMenu_ConfirmToss: @ 0x081ACEC4 + push {r4, r5, r6, lr} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r5, _081ACF2C + adds r6, r4, r5 + ldr r0, _081ACF30 + ldrh r0, [r0] + ldr r1, _081ACF34 + bl CopyItemName + ldr r0, _081ACF38 + movs r2, #0x10 + ldrsh r1, [r6, r2] + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r6, _081ACF3C + ldr r1, _081ACF40 + adds r0, r6, #0 + bl StringExpandPlaceholders + movs r0, #1 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + str r0, [sp, #0x10] + movs r0, #1 + movs r1, #1 + adds r2, r6, #0 + movs r3, #0 + bl BagMenu_Print + subs r5, #8 + adds r4, r4, r5 + ldr r0, _081ACF44 + str r0, [r4] + add sp, #0x14 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081ACF2C: .4byte 0x03005B68 +_081ACF30: .4byte 0x0203CB48 +_081ACF34: .4byte 0x02021C40 +_081ACF38: .4byte 0x02021C54 +_081ACF3C: .4byte 0x02021C7C +_081ACF40: .4byte 0x085C9532 +_081ACF44: .4byte 0x081ACF49 + thumb_func_end BagMenu_ConfirmToss + + thumb_func_start Task_ActuallyToss +Task_ActuallyToss: @ 0x081ACF48 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _081ACFD0 + adds r5, r0, r1 + ldr r4, _081ACFD4 + ldrb r0, [r4, #5] + lsls r0, r0, #1 + adds r1, r4, #0 + adds r1, #0x12 + adds r1, r1, r0 + mov r8, r1 + adds r1, r4, #0 + adds r1, #8 + adds r7, r0, r1 + ldr r0, _081ACFD8 + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _081ACFC6 + movs r0, #5 + bl PlaySE + ldr r0, _081ACFDC + ldrh r0, [r0] + ldrh r1, [r5, #0x10] + bl RemoveBagItem + ldrb r0, [r5] + mov r1, r8 + adds r2, r7, #0 + bl DestroyListMenuTask + ldrb r0, [r4, #5] + bl sub_081AB754 + ldrb r0, [r4, #5] + bl SetInitialScrollAndCursorPositions + ldrb r0, [r4, #5] + bl LoadBagItemListBuffers + ldr r0, _081ACFE0 + mov r2, r8 + ldrh r1, [r2] + ldrh r2, [r7] + bl ListMenuInit + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5] + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + adds r0, r6, #0 + bl set_callback3_to_bag +_081ACFC6: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081ACFD0: .4byte 0x03005B68 +_081ACFD4: .4byte 0x0203CB24 +_081ACFD8: .4byte 0x03002360 +_081ACFDC: .4byte 0x0203CB48 +_081ACFE0: .4byte 0x03006050 + thumb_func_end Task_ActuallyToss + + thumb_func_start ItemMenu_Register +ItemMenu_Register: @ 0x081ACFE4 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _081AD01C + adds r7, r0, r1 + ldr r0, _081AD020 + ldrb r1, [r0, #5] + lsls r1, r1, #1 + adds r2, r0, #0 + adds r2, #0x12 + adds r6, r1, r2 + adds r0, #8 + adds r5, r1, r0 + ldr r0, _081AD024 + ldr r0, [r0] + ldr r2, _081AD028 + adds r1, r0, r2 + ldr r0, _081AD02C + ldrh r2, [r0] + ldrh r0, [r1] + cmp r0, r2 + bne _081AD030 + movs r0, #0 + strh r0, [r1] + b _081AD032 + .align 2, 0 +_081AD01C: .4byte 0x03005B68 +_081AD020: .4byte 0x0203CB24 +_081AD024: .4byte 0x03005AEC +_081AD028: .4byte 0x00000496 +_081AD02C: .4byte 0x0203CB48 +_081AD030: + strh r2, [r1] +_081AD032: + ldrb r0, [r7] + adds r1, r6, #0 + adds r2, r5, #0 + bl DestroyListMenuTask + ldr r0, _081AD068 + ldrb r0, [r0, #5] + bl LoadBagItemListBuffers + ldr r0, _081AD06C + ldrh r1, [r6] + ldrh r2, [r5] + bl ListMenuInit + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r7] + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + adds r0, r4, #0 + bl ItemMenu_Cancel + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081AD068: .4byte 0x0203CB24 +_081AD06C: .4byte 0x03006050 + thumb_func_end ItemMenu_Register + + thumb_func_start ItemMenu_Give +ItemMenu_Give: @ 0x081AD070 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r6, r4, #0 + bl BagMenu_RemoveSomeWindow + ldr r5, _081AD098 + ldrh r0, [r5] + bl itemid_80BF6D8_mail_related + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081AD0A4 + ldr r2, _081AD09C + ldr r3, _081AD0A0 + adds r0, r4, #0 + movs r1, #1 + bl DisplayItemMessage + b _081AD0E2 + .align 2, 0 +_081AD098: .4byte 0x0203CB48 +_081AD09C: .4byte 0x085C945C +_081AD0A0: .4byte 0x081AD149 +_081AD0A4: + ldrh r0, [r5] + bl ItemId_GetHoldEffectParam + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081AD0DC + bl CalculatePlayerPartyCount + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081AD0C2 + adds r0, r4, #0 + bl BagMenu_PrintThereIsNoPokemon + b _081AD0E2 +_081AD0C2: + ldr r0, _081AD0D4 + ldr r1, [r0] + ldr r0, _081AD0D8 + str r0, [r1] + adds r0, r4, #0 + bl unknown_ItemMenu_Confirm + b _081AD0E2 + .align 2, 0 +_081AD0D4: .4byte 0x0203CB20 +_081AD0D8: .4byte 0x081B7C01 +_081AD0DC: + adds r0, r6, #0 + bl BagMenu_PrintItemCantBeHeld +_081AD0E2: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end ItemMenu_Give + + thumb_func_start BagMenu_PrintThereIsNoPokemon +BagMenu_PrintThereIsNoPokemon: @ 0x081AD0E8 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _081AD0FC + ldr r3, _081AD100 + movs r1, #1 + bl DisplayItemMessage + pop {r0} + bx r0 + .align 2, 0 +_081AD0FC: .4byte 0x085C9472 +_081AD100: .4byte 0x081AD149 + thumb_func_end BagMenu_PrintThereIsNoPokemon + + thumb_func_start BagMenu_PrintItemCantBeHeld +BagMenu_PrintItemCantBeHeld: @ 0x081AD104 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081AD134 + ldrh r0, [r0] + ldr r1, _081AD138 + bl CopyItemName + ldr r5, _081AD13C + ldr r1, _081AD140 + adds r0, r5, #0 + bl StringExpandPlaceholders + ldr r3, _081AD144 + adds r0, r4, #0 + movs r1, #1 + adds r2, r5, #0 + bl DisplayItemMessage + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081AD134: .4byte 0x0203CB48 +_081AD138: .4byte 0x02021C40 +_081AD13C: .4byte 0x02021C7C +_081AD140: .4byte 0x085C948E +_081AD144: .4byte 0x081AD149 + thumb_func_end BagMenu_PrintItemCantBeHeld + + thumb_func_start sub_081AD148 +sub_081AD148: @ 0x081AD148 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _081AD16C + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081AD166 + movs r0, #5 + bl PlaySE + adds r0, r4, #0 + bl BagMenu_InitListsMenu +_081AD166: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081AD16C: .4byte 0x03002360 + thumb_func_end sub_081AD148 + + thumb_func_start ItemMenu_CheckTag +ItemMenu_CheckTag: @ 0x081AD170 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081AD188 + ldr r2, [r1] + ldr r1, _081AD18C + str r1, [r2] + bl unknown_ItemMenu_Confirm + pop {r0} + bx r0 + .align 2, 0 +_081AD188: .4byte 0x0203CB20 +_081AD18C: .4byte 0x08177AFD + thumb_func_end ItemMenu_CheckTag + + thumb_func_start ItemMenu_Cancel +ItemMenu_Cancel: @ 0x081AD190 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + ldr r0, _081AD1D0 + adds r4, r4, r0 + bl BagMenu_RemoveSomeWindow + movs r1, #2 + ldrsh r0, [r4, r1] + bl BagMenu_PrintDescription + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + ldrb r0, [r4] + movs r1, #0 + bl BagMenu_PrintCursor_ + adds r0, r5, #0 + bl set_callback3_to_bag + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081AD1D0: .4byte 0x03005B68 + thumb_func_end ItemMenu_Cancel + + thumb_func_start ItemMenu_UseInBattle +ItemMenu_UseInBattle: @ 0x081AD1D4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r4, _081AD200 + ldrh r0, [r4] + bl sub_080D6E44 + cmp r0, #0 + beq _081AD1F8 + bl BagMenu_RemoveSomeWindow + ldrh r0, [r4] + bl sub_080D6E44 + adds r1, r0, #0 + adds r0, r5, #0 + bl _call_via_r1 +_081AD1F8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081AD200: .4byte 0x0203CB48 + thumb_func_end ItemMenu_UseInBattle + + thumb_func_start bag_menu_mail_related +bag_menu_mail_related: @ 0x081AD204 + push {lr} + movs r0, #0xc + movs r1, #5 + movs r2, #0 + bl GoToBagMenu + pop {r0} + bx r0 + thumb_func_end bag_menu_mail_related + + thumb_func_start item_menu_type_2 +item_menu_type_2: @ 0x081AD214 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r4, _081AD238 + ldrh r0, [r4] + bl itemid_80BF6D8_mail_related + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081AD244 + ldr r2, _081AD23C + ldr r3, _081AD240 + adds r0, r5, #0 + movs r1, #1 + bl DisplayItemMessage + b _081AD2A6 + .align 2, 0 +_081AD238: .4byte 0x0203CB48 +_081AD23C: .4byte 0x085C945C +_081AD240: .4byte 0x081AD149 +_081AD244: + ldrh r0, [r4] + bl sub_08122154 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081AD280 + ldrh r0, [r4] + ldr r1, _081AD270 + bl CopyItemName + ldr r4, _081AD274 + ldr r1, _081AD278 + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r3, _081AD27C + adds r0, r5, #0 + movs r1, #1 + adds r2, r4, #0 + bl DisplayItemMessage + b _081AD2A6 + .align 2, 0 +_081AD270: .4byte 0x02021C40 +_081AD274: .4byte 0x02021C7C +_081AD278: .4byte 0x085C94A1 +_081AD27C: .4byte 0x081AD149 +_081AD280: + ldr r0, _081AD29C + ldrb r0, [r0, #5] + cmp r0, #4 + beq _081AD2A0 + ldrh r0, [r4] + bl ItemId_GetHoldEffectParam + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081AD2A0 + adds r0, r5, #0 + bl unknown_ItemMenu_Confirm + b _081AD2A6 + .align 2, 0 +_081AD29C: .4byte 0x0203CB24 +_081AD2A0: + adds r0, r5, #0 + bl BagMenu_PrintItemCantBeHeld +_081AD2A6: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end item_menu_type_2 + + thumb_func_start item_menu_type_b +item_menu_type_b: @ 0x081AD2AC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r5, _081AD2D0 + ldrh r0, [r5] + bl ItemIsMail + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081AD2DC + ldr r2, _081AD2D4 + ldr r3, _081AD2D8 + adds r0, r4, #0 + movs r1, #1 + bl DisplayItemMessage + b _081AD312 + .align 2, 0 +_081AD2D0: .4byte 0x0203CB48 +_081AD2D4: .4byte 0x085C945C +_081AD2D8: .4byte 0x081AD149 +_081AD2DC: + ldr r0, _081AD300 + ldrb r0, [r0, #5] + cmp r0, #4 + beq _081AD30C + ldrh r0, [r5] + bl ItemId_GetHoldEffectParam + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081AD30C + ldr r0, _081AD304 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081AD308 + str r0, [r1] + b _081AD312 + .align 2, 0 +_081AD300: .4byte 0x0203CB24 +_081AD304: .4byte 0x03005B60 +_081AD308: .4byte 0x081AB6A5 +_081AD30C: + adds r0, r4, #0 + bl BagMenu_PrintItemCantBeHeld +_081AD312: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end item_menu_type_b + + thumb_func_start UseRegisteredKeyItemOnField +UseRegisteredKeyItemOnField: @ 0x081AD318 + push {r4, r5, r6, r7, lr} + bl InUnionRoom + cmp r0, #1 + beq _081AD344 + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081AD344 + bl InBattlePike + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #0 + bne _081AD344 + bl InMultiBattleRoom + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081AD348 +_081AD344: + movs r0, #0 + b _081AD3CA +_081AD348: + bl HideMapNamePopUpWindow + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + ldr r4, _081AD3AC + ldr r0, [r4] + ldr r5, _081AD3B0 + adds r1, r0, r5 + ldrh r0, [r1] + cmp r0, #0 + beq _081AD3C2 + movs r1, #1 + bl CheckBagHasItem + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #1 + bne _081AD3BC + bl ScriptContext2_Enable + bl FreezeEventObjects + bl sub_0808B1C8 + bl sub_0808B658 + ldr r2, _081AD3B4 + ldr r0, [r4] + adds r0, r0, r5 + ldrh r1, [r0] + strh r1, [r2] + ldrh r0, [r0] + bl sub_080D6DF8 + movs r1, #8 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _081AD3B8 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r6, [r1, #0xe] + b _081AD3C8 + .align 2, 0 +_081AD3AC: .4byte 0x03005AEC +_081AD3B0: .4byte 0x00000496 +_081AD3B4: .4byte 0x0203CB48 +_081AD3B8: .4byte 0x03005B60 +_081AD3BC: + ldr r0, [r4] + adds r0, r0, r5 + strh r7, [r0] +_081AD3C2: + ldr r0, _081AD3D0 + bl ScriptContext1_SetupScript +_081AD3C8: + movs r0, #1 +_081AD3CA: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081AD3D0: .4byte 0x082440DD + thumb_func_end UseRegisteredKeyItemOnField + + thumb_func_start DisplaySellItemAskString +DisplaySellItemAskString: @ 0x081AD3D4 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r7, r5, #0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _081AD414 + adds r4, r0, r1 + ldr r6, _081AD418 + ldrh r0, [r6] + bl sub_080D6CD4 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _081AD42C + ldrh r0, [r6] + ldr r1, _081AD41C + bl CopyItemName + ldr r4, _081AD420 + ldr r1, _081AD424 + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r3, _081AD428 + adds r0, r5, #0 + movs r1, #1 + adds r2, r4, #0 + bl DisplayItemMessage + b _081AD462 + .align 2, 0 +_081AD414: .4byte 0x03005B68 +_081AD418: .4byte 0x0203CB48 +_081AD41C: .4byte 0x02021C54 +_081AD420: .4byte 0x02021C7C +_081AD424: .4byte 0x085C9A47 +_081AD428: .4byte 0x081AB969 +_081AD42C: + movs r0, #1 + strh r0, [r4, #0x10] + movs r1, #4 + ldrsh r0, [r4, r1] + cmp r0, #1 + bne _081AD444 + bl bag_menu_AddMoney_window + adds r0, r5, #0 + bl sub_081AD478 + b _081AD462 +_081AD444: + ldrh r0, [r6] + ldr r1, _081AD468 + bl CopyItemName + ldr r4, _081AD46C + ldr r1, _081AD470 + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r3, _081AD474 + adds r0, r7, #0 + movs r1, #1 + adds r2, r4, #0 + bl DisplayItemMessage +_081AD462: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081AD468: .4byte 0x02021C54 +_081AD46C: .4byte 0x02021C7C +_081AD470: .4byte 0x085C9A5D +_081AD474: .4byte 0x081AD529 + thumb_func_end DisplaySellItemAskString + + thumb_func_start sub_081AD478 +sub_081AD478: @ 0x081AD478 + push {r4, r5, r6, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + ldr r0, _081AD4C4 + adds r4, r4, r0 + ldr r6, _081AD4C8 + ldr r0, _081AD4CC + ldrh r0, [r0] + bl sub_080D6CD4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x11 + movs r2, #0x10 + ldrsh r1, [r4, r2] + muls r1, r0, r1 + adds r0, r6, #0 + movs r2, #0 + movs r3, #6 + bl ConvertIntToDecimalStringN + ldr r4, _081AD4D0 + ldr r1, _081AD4D4 + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r3, _081AD4D8 + adds r0, r5, #0 + movs r1, #1 + adds r2, r4, #0 + bl DisplayItemMessage + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081AD4C4: .4byte 0x03005B68 +_081AD4C8: .4byte 0x02021C40 +_081AD4CC: .4byte 0x0203CB48 +_081AD4D0: .4byte 0x02021C7C +_081AD4D4: .4byte 0x085C9A6C +_081AD4D8: .4byte 0x081AD4DD + thumb_func_end sub_081AD478 + + thumb_func_start sub_081AD4DC +sub_081AD4DC: @ 0x081AD4DC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _081AD4F0 + movs r1, #6 + bl BagMenu_YesNo + pop {r0} + bx r0 + .align 2, 0 +_081AD4F0: .4byte 0x085DF8C4 + thumb_func_end sub_081AD4DC + + thumb_func_start BagMenu_CancelSell +BagMenu_CancelSell: @ 0x081AD4F4 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + ldr r0, _081AD524 + adds r4, r4, r0 + bl bag_menu_remove_money_window + movs r0, #4 + bl bag_menu_RemoveBagItem_message_window + ldrb r0, [r4] + movs r1, #0 + bl BagMenu_PrintCursor_ + adds r0, r5, #0 + bl set_callback3_to_bag + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081AD524: .4byte 0x03005B68 + thumb_func_end BagMenu_CancelSell + + thumb_func_start sub_081AD528 +sub_081AD528: @ 0x081AD528 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r5, _081AD570 + adds r6, r4, r5 + movs r0, #8 + bl BagMenu_AddWindow + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + bl sub_081ABA50 + ldr r0, _081AD574 + ldrh r0, [r0] + bl sub_080D6CD4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x11 + movs r2, #0x10 + ldrsh r1, [r6, r2] + muls r0, r1, r0 + bl bag_menu_leave_maybe_2 + bl bag_menu_AddMoney_window + subs r5, #8 + adds r4, r4, r5 + ldr r0, _081AD578 + str r0, [r4] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081AD570: .4byte 0x03005B68 +_081AD574: .4byte 0x0203CB48 +_081AD578: .4byte 0x081AD5A9 + thumb_func_end sub_081AD528 + + thumb_func_start bag_menu_leave_maybe_2 +bag_menu_leave_maybe_2: @ 0x081AD57C + push {lr} + sub sp, #4 + adds r3, r0, #0 + ldr r0, _081AD5A0 + ldr r0, [r0] + ldr r1, _081AD5A4 + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0 + str r1, [sp] + movs r1, #0x28 + movs r2, #2 + bl PrintMoneyAmountInMoneyBoxWithBorder + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_081AD5A0: .4byte 0x0203CB20 +_081AD5A4: .4byte 0x00000818 + thumb_func_end bag_menu_leave_maybe_2 + + thumb_func_start sub_081AD5A8 +sub_081AD5A8: @ 0x081AD5A8 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r6, r4, #0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _081AD5F8 + adds r5, r0, r1 + adds r0, r5, #0 + adds r0, #0x10 + ldrh r1, [r5, #4] + bl AdjustQuantityAccordingToDPadInput + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081AD608 + ldr r0, _081AD5FC + ldr r0, [r0] + ldr r1, _081AD600 + adds r0, r0, r1 + ldrb r0, [r0] + movs r2, #0x10 + ldrsh r1, [r5, r2] + bl sub_081ABA50 + ldr r0, _081AD604 + ldrh r0, [r0] + bl sub_080D6CD4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x11 + movs r2, #0x10 + ldrsh r1, [r5, r2] + muls r0, r1, r0 + bl bag_menu_leave_maybe_2 + b _081AD658 + .align 2, 0 +_081AD5F8: .4byte 0x03005B68 +_081AD5FC: .4byte 0x0203CB20 +_081AD600: .4byte 0x00000818 +_081AD604: .4byte 0x0203CB48 +_081AD608: + ldr r0, _081AD628 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081AD62C + movs r0, #5 + bl PlaySE + movs r0, #8 + bl BagMenu_RemoveWindow + adds r0, r4, #0 + bl sub_081AD478 + b _081AD658 + .align 2, 0 +_081AD628: .4byte 0x03002360 +_081AD62C: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081AD658 + movs r0, #5 + bl PlaySE + ldrb r0, [r5] + movs r1, #0 + bl BagMenu_PrintCursor_ + bl bag_menu_remove_money_window + movs r0, #8 + bl BagMenu_RemoveWindow + movs r0, #4 + bl bag_menu_RemoveBagItem_message_window + adds r0, r6, #0 + bl set_callback3_to_bag +_081AD658: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081AD5A8 + + thumb_func_start BagMenu_ConfirmSell +BagMenu_ConfirmSell: @ 0x081AD660 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + ldr r0, _081AD6C0 + adds r4, r4, r0 + ldr r6, _081AD6C4 + ldrh r0, [r6] + ldr r1, _081AD6C8 + bl CopyItemName + ldr r0, _081AD6CC + mov r8, r0 + ldrh r0, [r6] + bl sub_080D6CD4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x11 + movs r2, #0x10 + ldrsh r1, [r4, r2] + muls r1, r0, r1 + mov r0, r8 + movs r2, #0 + movs r3, #6 + bl ConvertIntToDecimalStringN + ldr r4, _081AD6D0 + ldr r1, _081AD6D4 + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r3, _081AD6D8 + adds r0, r5, #0 + movs r1, #1 + adds r2, r4, #0 + bl DisplayItemMessage + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081AD6C0: .4byte 0x03005B68 +_081AD6C4: .4byte 0x0203CB48 +_081AD6C8: .4byte 0x02021C54 +_081AD6CC: .4byte 0x02021C40 +_081AD6D0: .4byte 0x02021C7C +_081AD6D4: .4byte 0x085C9A88 +_081AD6D8: .4byte 0x081AD6DD + thumb_func_end BagMenu_ConfirmSell + + thumb_func_start sub_081AD6DC +sub_081AD6DC: @ 0x081AD6DC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r6, r0, #2 + adds r6, r6, r0 + lsls r6, r6, #3 + ldr r0, _081AD7B4 + adds r0, r0, r6 + mov sl, r0 + ldr r7, _081AD7B8 + ldrb r5, [r7, #5] + lsls r5, r5, #1 + movs r1, #0x12 + adds r1, r1, r7 + mov sb, r1 + add sb, r5 + adds r0, r7, #0 + adds r0, #8 + adds r5, r5, r0 + movs r0, #0x5f + bl PlaySE + ldr r2, _081AD7BC + mov r8, r2 + ldrh r0, [r2] + mov r3, sl + ldrh r1, [r3, #0x10] + bl RemoveBagItem + ldr r0, _081AD7C0 + ldr r4, [r0] + movs r1, #0x92 + lsls r1, r1, #3 + adds r4, r4, r1 + mov r2, r8 + ldrh r0, [r2] + bl sub_080D6CD4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x11 + mov r3, sl + movs r2, #0x10 + ldrsh r1, [r3, r2] + muls r1, r0, r1 + adds r0, r4, #0 + bl AddMoney + mov r3, sl + ldrb r0, [r3] + mov r1, sb + adds r2, r5, #0 + bl DestroyListMenuTask + ldrb r0, [r7, #5] + bl sub_081AB754 + ldrb r0, [r7, #5] + bl SetInitialScrollAndCursorPositions + ldrb r0, [r7, #5] + bl LoadBagItemListBuffers + ldr r0, _081AD7C4 + mov r2, sb + ldrh r1, [r2] + ldrh r2, [r5] + bl ListMenuInit + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r3, sl + strh r0, [r3] + movs r1, #2 + bl BagMenu_PrintCursor_ + ldr r0, _081AD7C8 + ldr r0, [r0] + ldr r1, _081AD7CC + adds r0, r0, r1 + ldrb r4, [r0] + ldr r2, _081AD7C0 + ldr r0, [r2] + movs r3, #0x92 + lsls r3, r3, #3 + adds r0, r0, r3 + bl GetMoney + adds r1, r0, #0 + adds r0, r4, #0 + movs r2, #0 + bl PrintMoneyAmountInMoneyBox + ldr r0, _081AD7B4 + subs r0, #8 + adds r6, r6, r0 + ldr r0, _081AD7D0 + str r0, [r6] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081AD7B4: .4byte 0x03005B68 +_081AD7B8: .4byte 0x0203CB24 +_081AD7BC: .4byte 0x0203CB48 +_081AD7C0: .4byte 0x03005AEC +_081AD7C4: .4byte 0x03006050 +_081AD7C8: .4byte 0x0203CB20 +_081AD7CC: .4byte 0x00000819 +_081AD7D0: .4byte 0x081AD7D5 + thumb_func_end sub_081AD6DC + + thumb_func_start unknown_ItemMenu_Show +unknown_ItemMenu_Show: @ 0x081AD7D4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _081AD7FC + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _081AD7F6 + movs r0, #5 + bl PlaySE + bl bag_menu_remove_money_window + adds r0, r4, #0 + bl BagMenu_InitListsMenu +_081AD7F6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081AD7FC: .4byte 0x03002360 + thumb_func_end unknown_ItemMenu_Show + + thumb_func_start DisplayDepositItemAskString +DisplayDepositItemAskString: @ 0x081AD800 + push {r4, r5, r6, lr} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r5, r0, #3 + ldr r6, _081AD828 + adds r1, r5, r6 + movs r0, #1 + strh r0, [r1, #0x10] + movs r3, #4 + ldrsh r0, [r1, r3] + cmp r0, #1 + bne _081AD82C + adds r0, r2, #0 + bl sub_081AD928 + b _081AD872 + .align 2, 0 +_081AD828: .4byte 0x03005B68 +_081AD82C: + ldr r0, _081AD87C + ldrh r0, [r0] + ldr r1, _081AD880 + bl CopyItemName + ldr r4, _081AD884 + ldr r1, _081AD888 + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #1 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + str r0, [sp, #0x10] + movs r0, #1 + movs r1, #1 + adds r2, r4, #0 + movs r3, #0 + bl BagMenu_Print + movs r0, #7 + bl PrintItemDepositAmount + adds r0, r6, #0 + subs r0, #8 + adds r0, r5, r0 + ldr r1, _081AD88C + str r1, [r0] +_081AD872: + add sp, #0x14 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081AD87C: .4byte 0x0203CB48 +_081AD880: .4byte 0x02021C40 +_081AD884: .4byte 0x02021C7C +_081AD888: .4byte 0x085C94B9 +_081AD88C: .4byte 0x081AD891 + thumb_func_end DisplayDepositItemAskString + + thumb_func_start sub_081AD890 +sub_081AD890: @ 0x081AD890 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r6, r4, #0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _081AD8C8 + adds r5, r0, r1 + adds r0, r5, #0 + adds r0, #0x10 + ldrh r1, [r5, #4] + bl AdjustQuantityAccordingToDPadInput + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081AD8D4 + ldr r0, _081AD8CC + ldr r0, [r0] + ldr r1, _081AD8D0 + adds r0, r0, r1 + ldrb r0, [r0] + movs r2, #0x10 + ldrsh r1, [r5, r2] + bl sub_081ABA50 + b _081AD922 + .align 2, 0 +_081AD8C8: .4byte 0x03005B68 +_081AD8CC: .4byte 0x0203CB20 +_081AD8D0: .4byte 0x00000817 +_081AD8D4: + ldr r0, _081AD8F4 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081AD8F8 + movs r0, #5 + bl PlaySE + movs r0, #7 + bl BagMenu_RemoveWindow + adds r0, r4, #0 + bl sub_081AD928 + b _081AD922 + .align 2, 0 +_081AD8F4: .4byte 0x03002360 +_081AD8F8: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081AD922 + movs r0, #5 + bl PlaySE + movs r1, #2 + ldrsh r0, [r5, r1] + bl BagMenu_PrintDescription + ldrb r0, [r5] + movs r1, #0 + bl BagMenu_PrintCursor_ + movs r0, #7 + bl BagMenu_RemoveWindow + adds r0, r6, #0 + bl set_callback3_to_bag +_081AD922: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_081AD890 + + thumb_func_start sub_081AD928 +sub_081AD928: @ 0x081AD928 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r6, r1, #3 + ldr r0, _081AD96C + mov r8, r0 + adds r7, r6, r0 + movs r0, #1 + movs r1, #0 + bl FillWindowPixelBuffer + ldr r4, _081AD970 + ldrh r0, [r4] + bl ItemId_GetHoldEffectParam + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + beq _081AD978 + ldr r2, _081AD974 + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + str r0, [sp, #0x10] + b _081AD9EE + .align 2, 0 +_081AD96C: .4byte 0x03005B68 +_081AD970: .4byte 0x0203CB48 +_081AD974: .4byte 0x085C94EB +_081AD978: + ldrh r0, [r4] + ldrh r1, [r7, #0x10] + bl AddPCItem + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081AD9E0 + ldrh r0, [r4] + ldr r1, _081AD9CC + bl CopyItemName + ldr r0, _081AD9D0 + movs r2, #0x10 + ldrsh r1, [r7, r2] + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r4, _081AD9D4 + ldr r1, _081AD9D8 + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #2 + str r0, [sp] + str r5, [sp, #4] + str r5, [sp, #8] + str r5, [sp, #0xc] + str r5, [sp, #0x10] + movs r0, #1 + movs r1, #1 + adds r2, r4, #0 + movs r3, #0 + bl BagMenu_Print + mov r0, r8 + subs r0, #8 + adds r0, r6, r0 + ldr r1, _081AD9DC + b _081ADA00 + .align 2, 0 +_081AD9CC: .4byte 0x02021C40 +_081AD9D0: .4byte 0x02021C54 +_081AD9D4: .4byte 0x02021C7C +_081AD9D8: .4byte 0x085C94CA +_081AD9DC: .4byte 0x081ACF49 +_081AD9E0: + ldr r2, _081ADA10 + movs r0, #2 + str r0, [sp] + str r5, [sp, #4] + str r5, [sp, #8] + str r5, [sp, #0xc] + str r5, [sp, #0x10] +_081AD9EE: + movs r0, #1 + movs r1, #1 + movs r3, #0 + bl BagMenu_Print + mov r0, r8 + subs r0, #8 + adds r0, r6, r0 + ldr r1, _081ADA14 +_081ADA00: + str r1, [r0] + add sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081ADA10: .4byte 0x085C94DA +_081ADA14: .4byte 0x081ADA19 + thumb_func_end sub_081AD928 + + thumb_func_start sub_081ADA18 +sub_081ADA18: @ 0x081ADA18 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _081ADA58 + adds r5, r0, r1 + ldr r0, _081ADA5C + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _081ADA50 + movs r0, #5 + bl PlaySE + movs r1, #2 + ldrsh r0, [r5, r1] + bl BagMenu_PrintDescription + ldrb r0, [r5] + movs r1, #0 + bl BagMenu_PrintCursor_ + adds r0, r4, #0 + bl set_callback3_to_bag +_081ADA50: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081ADA58: .4byte 0x03005B68 +_081ADA5C: .4byte 0x03002360 + thumb_func_end sub_081ADA18 + + thumb_func_start IsWallysBag +IsWallysBag: @ 0x081ADA60 + push {lr} + ldr r0, _081ADA70 + ldrb r0, [r0, #4] + cmp r0, #0xa + beq _081ADA74 + movs r0, #0 + b _081ADA76 + .align 2, 0 +_081ADA70: .4byte 0x0203CB24 +_081ADA74: + movs r0, #1 +_081ADA76: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsWallysBag + + thumb_func_start PrepareBagForWallyTutorial +PrepareBagForWallyTutorial: @ 0x081ADA7C + push {r4, r5, r6, lr} + ldr r4, _081ADB00 + movs r0, #0xd0 + bl AllocZeroed + str r0, [r4] + ldr r5, _081ADB04 + ldr r1, [r5] + movs r2, #0xac + lsls r2, r2, #3 + adds r1, r1, r2 + movs r2, #0x78 + bl memcpy + ldr r0, [r4] + ldr r1, [r5] + movs r2, #0xca + lsls r2, r2, #3 + adds r1, r1, r2 + adds r0, #0x78 + movs r2, #0x40 + bl memcpy + ldr r0, [r4] + ldr r2, _081ADB08 + ldrb r1, [r2, #5] + adds r0, #0xce + strh r1, [r0] + movs r6, #0 + adds r5, r2, #0 + adds r5, #8 +_081ADABA: + ldr r2, [r4] + lsls r3, r6, #1 + adds r0, r2, #0 + adds r0, #0xb8 + adds r0, r0, r3 + ldrh r1, [r5] + strh r1, [r0] + adds r2, #0xc2 + adds r2, r2, r3 + ldrh r0, [r5, #0xa] + strh r0, [r2] + adds r5, #2 + adds r6, #1 + cmp r6, #4 + bls _081ADABA + ldr r4, _081ADB04 + ldr r0, [r4] + movs r1, #0xac + lsls r1, r1, #3 + adds r0, r0, r1 + movs r1, #0x1e + bl ClearItemSlots + ldr r0, [r4] + movs r2, #0xca + lsls r2, r2, #3 + adds r0, r0, r2 + movs r1, #0x10 + bl ClearItemSlots + bl ResetBagScrollPositions + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081ADB00: .4byte 0x0203CB4C +_081ADB04: .4byte 0x03005AEC +_081ADB08: .4byte 0x0203CB24 + thumb_func_end PrepareBagForWallyTutorial + + thumb_func_start RestoreBagAfterWallyTutorial +RestoreBagAfterWallyTutorial: @ 0x081ADB0C + push {r4, r5, r6, lr} + ldr r5, _081ADB70 + ldr r0, [r5] + movs r1, #0xac + lsls r1, r1, #3 + adds r0, r0, r1 + ldr r4, _081ADB74 + ldr r1, [r4] + movs r2, #0x78 + bl memcpy + ldr r0, [r5] + movs r1, #0xca + lsls r1, r1, #3 + adds r0, r0, r1 + ldr r1, [r4] + adds r1, #0x78 + movs r2, #0x40 + bl memcpy + ldr r1, _081ADB78 + ldr r0, [r4] + adds r0, #0xce + ldrh r0, [r0] + strb r0, [r1, #5] + movs r5, #0 + adds r6, r4, #0 + adds r3, r1, #0 + adds r3, #8 +_081ADB46: + lsls r2, r5, #1 + ldr r1, [r4] + adds r0, r1, #0 + adds r0, #0xb8 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r3] + adds r1, #0xc2 + adds r1, r1, r2 + ldrh r0, [r1] + strh r0, [r3, #0xa] + adds r3, #2 + adds r5, #1 + cmp r5, #4 + bls _081ADB46 + ldr r0, [r6] + bl Free + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081ADB70: .4byte 0x03005AEC +_081ADB74: .4byte 0x0203CB4C +_081ADB78: .4byte 0x0203CB24 + thumb_func_end RestoreBagAfterWallyTutorial + + thumb_func_start DoWallyTutorialBagMenu +DoWallyTutorialBagMenu: @ 0x081ADB7C + push {lr} + bl PrepareBagForWallyTutorial + movs r0, #0xd + movs r1, #1 + bl AddBagItem + movs r0, #4 + movs r1, #1 + bl AddBagItem + ldr r2, _081ADBA0 + movs r0, #0xa + movs r1, #0 + bl GoToBagMenu + pop {r0} + bx r0 + .align 2, 0 +_081ADBA0: .4byte 0x0805996D + thumb_func_end DoWallyTutorialBagMenu + + thumb_func_start Task_WallyTutorialBagMenu +Task_WallyTutorialBagMenu: @ 0x081ADBA4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _081ADBD4 + adds r4, r0, r1 + ldr r0, _081ADBD8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081ADC3E + movs r0, #0x10 + ldrsh r1, [r4, r0] + cmp r1, #0xcc + beq _081ADBF8 + cmp r1, #0xcc + bgt _081ADBDC + cmp r1, #0x66 + beq _081ADBE6 + b _081ADC38 + .align 2, 0 +_081ADBD4: .4byte 0x03005B68 +_081ADBD8: .4byte 0x02037C74 +_081ADBDC: + movs r0, #0x99 + lsls r0, r0, #1 + cmp r1, r0 + beq _081ADC18 + b _081ADC38 +_081ADBE6: + movs r0, #5 + bl PlaySE + adds r0, r5, #0 + movs r1, #1 + movs r2, #0 + bl SwitchBagPocket + b _081ADC38 +_081ADBF8: + movs r0, #5 + bl PlaySE + ldrb r0, [r4] + movs r1, #2 + bl BagMenu_PrintCursor_ + ldr r1, _081ADC14 + movs r0, #4 + strh r0, [r1] + adds r0, r5, #0 + bl sub_081AC408 + b _081ADC38 + .align 2, 0 +_081ADC14: .4byte 0x0203CB48 +_081ADC18: + movs r0, #5 + bl PlaySE + bl BagMenu_RemoveSomeWindow + ldrb r0, [r4] + movs r1, #0 + movs r2, #0 + bl DestroyListMenuTask + bl RestoreBagAfterWallyTutorial + adds r0, r5, #0 + bl unknown_ItemMenu_Confirm + b _081ADC3E +_081ADC38: + ldrh r0, [r4, #0x10] + adds r0, #1 + strh r0, [r4, #0x10] +_081ADC3E: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end Task_WallyTutorialBagMenu + + thumb_func_start sub_081ADC44 +sub_081ADC44: @ 0x081ADC44 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _081ADC6C + ldr r0, _081ADC70 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _081ADC74 + movs r0, #1 + strh r0, [r1] + bl BagMenu_RemoveSomeWindow + adds r0, r4, #0 + bl unknown_ItemMenu_Confirm + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081ADC6C: .4byte 0x02037282 +_081ADC70: .4byte 0x0203CB48 +_081ADC74: .4byte 0x02037290 + thumb_func_end sub_081ADC44 + + thumb_func_start bag_menu_leave_maybe_3 +bag_menu_leave_maybe_3: @ 0x081ADC78 + push {lr} + ldr r0, _081ADC8C + ldr r1, _081ADC90 + str r1, [r0] + ldr r0, _081ADC94 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_081ADC8C: .4byte 0x03005B0C +_081ADC90: .4byte 0x0819F929 +_081ADC94: .4byte 0x08085A31 + thumb_func_end bag_menu_leave_maybe_3 + + thumb_func_start unknown_ItemMenu_Give2 +unknown_ItemMenu_Give2: @ 0x081ADC98 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081ADCC0 + ldrh r0, [r0] + movs r1, #1 + bl RemoveBagItem + ldr r1, _081ADCC4 + movs r0, #1 + strh r0, [r1] + bl BagMenu_RemoveSomeWindow + adds r0, r4, #0 + bl unknown_ItemMenu_Confirm + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081ADCC0: .4byte 0x0203CB48 +_081ADCC4: .4byte 0x02037290 + thumb_func_end unknown_ItemMenu_Give2 + + thumb_func_start sub_081ADCC8 +sub_081ADCC8: @ 0x081ADCC8 + push {lr} + ldr r0, _081ADCDC + ldr r1, _081ADCE0 + str r1, [r0] + ldr r0, _081ADCE4 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_081ADCDC: .4byte 0x03005B0C +_081ADCE0: .4byte 0x0818DC01 +_081ADCE4: .4byte 0x08085A31 + thumb_func_end sub_081ADCC8 + + thumb_func_start unknown_ItemMenu_Confirm2 +unknown_ItemMenu_Confirm2: @ 0x081ADCE8 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _081ADD08 + movs r0, #1 + strh r0, [r1] + bl BagMenu_RemoveSomeWindow + adds r0, r4, #0 + bl unknown_ItemMenu_Confirm + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081ADD08: .4byte 0x02037290 + thumb_func_end unknown_ItemMenu_Confirm2 + + thumb_func_start sub_081ADD0C +sub_081ADD0C: @ 0x081ADD0C + push {lr} + ldr r0, _081ADD20 + ldr r1, _081ADD24 + str r1, [r0] + ldr r0, _081ADD28 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_081ADD20: .4byte 0x03005B0C +_081ADD24: .4byte 0x0818E1C1 +_081ADD28: .4byte 0x08085A31 + thumb_func_end sub_081ADD0C + + thumb_func_start SetupBagMenu_Textboxes +SetupBagMenu_Textboxes: @ 0x081ADD2C + push {r4, lr} + ldr r0, _081ADD8C + bl InitWindows + bl DeactivateAllTextPrinters + movs r0, #0 + movs r1, #1 + movs r2, #0xe0 + bl LoadUserWindowBorderGfx + movs r0, #0 + movs r1, #0xa + movs r2, #0xd0 + bl LoadMessageBoxGfx + movs r0, #0xc0 + movs r1, #1 + bl sub_08199F54 + ldr r0, _081ADD90 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + movs r4, #0 +_081ADD60: + adds r0, r4, #0 + movs r1, #0 + bl FillWindowPixelBuffer + adds r0, r4, #0 + bl PutWindowTilemap + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #2 + bls _081ADD60 + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081ADD8C: .4byte 0x085DFA2C +_081ADD90: .4byte 0x085D7B04 + thumb_func_end SetupBagMenu_Textboxes + + thumb_func_start BagMenu_Print +BagMenu_Print: @ 0x081ADD94 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x14 + mov sb, r3 + ldr r3, [sp, #0x30] + ldr r4, [sp, #0x34] + ldr r6, [sp, #0x38] + ldr r5, [sp, #0x3c] + mov r8, r5 + ldr r5, [sp, #0x40] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r7, sb + lsls r7, r7, #0x18 + lsrs r7, r7, #0x18 + mov sb, r7 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + str r4, [sp] + str r6, [sp, #4] + lsls r4, r5, #1 + adds r4, r4, r5 + ldr r5, _081ADDF8 + adds r4, r4, r5 + str r4, [sp, #8] + mov r4, r8 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + str r4, [sp, #0xc] + str r2, [sp, #0x10] + mov r2, sb + bl AddTextPrinterParameterized4 + add sp, #0x14 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081ADDF8: .4byte 0x085DFA1C + thumb_func_end BagMenu_Print + + thumb_func_start sub_081ADDFC +sub_081ADDFC: @ 0x081ADDFC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081ADE10 + ldr r1, [r1] + movs r2, #0x81 + lsls r2, r2, #4 + adds r1, r1, r2 + adds r1, r1, r0 + ldrb r0, [r1] + bx lr + .align 2, 0 +_081ADE10: .4byte 0x0203CB20 + thumb_func_end sub_081ADDFC + + thumb_func_start BagMenu_AddWindow +BagMenu_AddWindow: @ 0x081ADE14 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _081ADE54 + movs r3, #0x81 + lsls r3, r3, #4 + adds r1, r2, r3 + ldr r0, [r0] + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, #0xff + bne _081ADE4A + lsls r0, r2, #3 + ldr r1, _081ADE58 + adds r0, r0, r1 + bl AddWindow + strb r0, [r4] + ldrb r0, [r4] + movs r1, #0 + movs r2, #1 + movs r3, #0xe + bl DrawStdFrameWithCustomTileAndPalette + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram +_081ADE4A: + ldrb r0, [r4] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081ADE54: .4byte 0x0203CB20 +_081ADE58: .4byte 0x085DFA64 + thumb_func_end BagMenu_AddWindow + + thumb_func_start BagMenu_RemoveWindow +BagMenu_RemoveWindow: @ 0x081ADE5C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081ADE98 + movs r2, #0x81 + lsls r2, r2, #4 + adds r0, r0, r2 + ldr r1, [r1] + adds r4, r1, r0 + ldrb r0, [r4] + cmp r0, #0xff + beq _081ADE90 + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + ldrb r0, [r4] + bl ClearWindowTilemap + ldrb r0, [r4] + bl RemoveWindow + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #0xff + strb r0, [r4] +_081ADE90: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081ADE98: .4byte 0x0203CB20 + thumb_func_end BagMenu_RemoveWindow + + thumb_func_start AddItemMessageWindow +AddItemMessageWindow: @ 0x081ADE9C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _081ADEC8 + movs r3, #0x81 + lsls r3, r3, #4 + adds r1, r2, r3 + ldr r0, [r0] + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, #0xff + bne _081ADEC0 + lsls r0, r2, #3 + ldr r1, _081ADECC + adds r0, r0, r1 + bl AddWindow + strb r0, [r4] +_081ADEC0: + ldrb r0, [r4] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081ADEC8: .4byte 0x0203CB20 +_081ADECC: .4byte 0x085DFA64 + thumb_func_end AddItemMessageWindow + + thumb_func_start bag_menu_RemoveBagItem_message_window +bag_menu_RemoveBagItem_message_window: @ 0x081ADED0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081ADF0C + movs r2, #0x81 + lsls r2, r2, #4 + adds r0, r0, r2 + ldr r1, [r1] + adds r4, r1, r0 + ldrb r0, [r4] + cmp r0, #0xff + beq _081ADF04 + movs r1, #0 + bl ClearDialogWindowAndFrameToTransparent + ldrb r0, [r4] + bl ClearWindowTilemap + ldrb r0, [r4] + bl RemoveWindow + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #0xff + strb r0, [r4] +_081ADF04: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081ADF0C: .4byte 0x0203CB20 + thumb_func_end bag_menu_RemoveBagItem_message_window + + thumb_func_start BagMenu_YesNo +BagMenu_YesNo: @ 0x081ADF10 + push {lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x15 + ldr r3, _081ADF3C + adds r1, r1, r3 + movs r3, #2 + str r3, [sp] + movs r3, #1 + str r3, [sp, #4] + movs r3, #0xe + str r3, [sp, #8] + str r2, [sp, #0xc] + movs r2, #1 + movs r3, #0 + bl CreateYesNoMenuWithCallbacks + add sp, #0x10 + pop {r0} + bx r0 + .align 2, 0 +_081ADF3C: .4byte 0x085DFA64 + thumb_func_end BagMenu_YesNo + + thumb_func_start bag_menu_AddMoney_window +bag_menu_AddMoney_window: @ 0x081ADF40 + push {r4, lr} + movs r0, #9 + bl BagMenu_AddWindow + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081ADF78 + ldr r0, [r0] + movs r1, #0x92 + lsls r1, r1, #3 + adds r0, r0, r1 + bl GetMoney + adds r3, r0, #0 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0xe + bl PrintMoneyAmount + movs r0, #0x13 + movs r1, #0xb + bl AddMoneyLabelObject + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081ADF78: .4byte 0x03005AEC + thumb_func_end bag_menu_AddMoney_window + + thumb_func_start bag_menu_remove_money_window +bag_menu_remove_money_window: @ 0x081ADF7C + push {lr} + movs r0, #9 + bl BagMenu_RemoveWindow + bl RemoveMoneyLabelObject + pop {r0} + bx r0 + thumb_func_end bag_menu_remove_money_window + + thumb_func_start BagMenu_PrepareTMHMMoveWindow +BagMenu_PrepareTMHMMoveWindow: @ 0x081ADF8C + push {lr} + movs r0, #3 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #3 + movs r1, #0x13 + movs r2, #0 + movs r3, #0 + bl blit_move_info_icon + movs r0, #3 + movs r1, #0x14 + movs r2, #0 + movs r3, #0xc + bl blit_move_info_icon + movs r0, #3 + movs r1, #0x15 + movs r2, #0 + movs r3, #0x18 + bl blit_move_info_icon + movs r0, #3 + movs r1, #0x16 + movs r2, #0 + movs r3, #0x24 + bl blit_move_info_icon + movs r0, #3 + movs r1, #2 + bl CopyWindowToVram + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BagMenu_PrepareTMHMMoveWindow + + thumb_func_start PrintTMHMMoveData +PrintTMHMMoveData: @ 0x081ADFD4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x14 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r0, #4 + movs r1, #0 + bl FillWindowPixelBuffer + cmp r4, #0 + bne _081AE02C + movs r4, #0 + movs r5, #0 +_081ADFF2: + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #0x1a + lsrs r0, r0, #0x18 + str r0, [sp] + str r5, [sp, #4] + str r5, [sp, #8] + movs r0, #0xff + str r0, [sp, #0xc] + movs r0, #4 + str r0, [sp, #0x10] + movs r1, #1 + ldr r2, _081AE028 + movs r3, #4 + bl BagMenu_Print + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _081ADFF2 + movs r0, #4 + movs r1, #2 + bl CopyWindowToVram + b _081AE118 + .align 2, 0 +_081AE028: .4byte 0x085C9406 +_081AE02C: + adds r0, r4, #0 + bl ItemIdToBattleMoveId + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + ldr r1, _081AE05C + lsls r0, r7, #1 + adds r0, r0, r7 + lsls r0, r0, #2 + adds r5, r0, r1 + ldrb r1, [r5, #2] + adds r1, #1 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #4 + movs r2, #0 + movs r3, #0 + bl blit_move_info_icon + ldrb r0, [r5, #1] + cmp r0, #1 + bhi _081AE064 + ldr r2, _081AE060 + b _081AE074 + .align 2, 0 +_081AE05C: .4byte 0x082ED220 +_081AE060: .4byte 0x085C9406 +_081AE064: + ldr r4, _081AE0A4 + ldrb r1, [r5, #1] + adds r0, r4, #0 + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + adds r2, r4, #0 +_081AE074: + movs r0, #0xc + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + movs r0, #0xff + str r0, [sp, #0xc] + movs r0, #4 + str r0, [sp, #0x10] + movs r1, #1 + movs r3, #4 + bl BagMenu_Print + ldr r2, _081AE0A8 + lsls r1, r7, #1 + adds r0, r1, r7 + lsls r0, r0, #2 + adds r2, r0, r2 + ldrb r0, [r2, #3] + adds r6, r1, #0 + cmp r0, #0 + bne _081AE0B0 + ldr r2, _081AE0AC + b _081AE0C0 + .align 2, 0 +_081AE0A4: .4byte 0x02021C40 +_081AE0A8: .4byte 0x082ED220 +_081AE0AC: .4byte 0x085C9406 +_081AE0B0: + ldr r4, _081AE128 + ldrb r1, [r2, #3] + adds r0, r4, #0 + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + adds r2, r4, #0 +_081AE0C0: + movs r0, #0x18 + str r0, [sp] + movs r4, #0 + str r4, [sp, #4] + str r4, [sp, #8] + movs r0, #0xff + mov r8, r0 + str r0, [sp, #0xc] + movs r0, #4 + mov sb, r0 + str r0, [sp, #0x10] + movs r1, #1 + movs r3, #4 + bl BagMenu_Print + ldr r5, _081AE128 + ldr r1, _081AE12C + adds r0, r6, r7 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #4] + adds r0, r5, #0 + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + movs r0, #0x24 + str r0, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + mov r0, r8 + str r0, [sp, #0xc] + mov r0, sb + str r0, [sp, #0x10] + movs r0, #4 + movs r1, #1 + adds r2, r5, #0 + movs r3, #4 + bl BagMenu_Print + movs r0, #4 + movs r1, #2 + bl CopyWindowToVram +_081AE118: + add sp, #0x14 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081AE128: .4byte 0x02021C40 +_081AE12C: .4byte 0x082ED220 + thumb_func_end PrintTMHMMoveData + diff --git a/asm/item_menu_icons.s b/asm/item_menu_icons.s new file mode 100644 index 0000000..c5b7844 --- /dev/null +++ b/asm/item_menu_icons.s @@ -0,0 +1,669 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start RemoveBagSprite +RemoveBagSprite: @ 0x080D452C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080D4578 + ldr r2, _080D457C + adds r1, r4, r2 + ldr r0, [r0] + adds r5, r0, r1 + ldrb r0, [r5] + cmp r0, #0xff + beq _080D4572 + adds r4, #0x64 + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl FreeSpritePaletteByTag + ldrb r1, [r5] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _080D4580 + adds r0, r0, r4 + bl FreeSpriteOamMatrix + ldrb r1, [r5] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + movs r0, #0xff + strb r0, [r5] +_080D4572: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D4578: .4byte 0x0203CB20 +_080D457C: .4byte 0x00000804 +_080D4580: .4byte 0x020205AC + thumb_func_end RemoveBagSprite + + thumb_func_start AddBagVisualSprite +AddBagVisualSprite: @ 0x080D4584 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _080D45B0 + ldr r4, [r0] + ldr r0, _080D45B4 + adds r4, r4, r0 + ldr r0, _080D45B8 + movs r1, #0x44 + movs r2, #0x42 + movs r3, #0 + bl CreateSprite + strb r0, [r4] + adds r0, r5, #0 + movs r1, #0 + bl SetBagVisualPocketId + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D45B0: .4byte 0x0203CB20 +_080D45B4: .4byte 0x00000804 +_080D45B8: .4byte 0x0855A67C + thumb_func_end AddBagVisualSprite + + thumb_func_start SetBagVisualPocketId +SetBagVisualPocketId: @ 0x080D45BC + push {lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r1, r1, #0x18 + ldr r0, _080D45F4 + ldr r0, [r0] + ldr r2, _080D45F8 + adds r0, r0, r2 + ldrb r2, [r0] + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _080D45FC + adds r2, r0, r2 + cmp r1, #0 + beq _080D4608 + ldr r0, _080D4600 + strh r0, [r2, #0x26] + ldr r0, _080D4604 + str r0, [r2, #0x1c] + adds r0, r3, #1 + strh r0, [r2, #0x2e] + adds r0, r2, #0 + movs r1, #0 + bl StartSpriteAnim + b _080D4614 + .align 2, 0 +_080D45F4: .4byte 0x0203CB20 +_080D45F8: .4byte 0x00000804 +_080D45FC: .4byte 0x020205AC +_080D4600: .4byte 0x0000FFFB +_080D4604: .4byte 0x080D4619 +_080D4608: + adds r1, r3, #1 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r2, #0 + bl StartSpriteAnim +_080D4614: + pop {r0} + bx r0 + thumb_func_end SetBagVisualPocketId + + thumb_func_start SpriteCB_BagVisualSwitchingPockets +SpriteCB_BagVisualSwitchingPockets: @ 0x080D4618 + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x26] + movs r2, #0x26 + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _080D462C + adds r0, r1, #1 + strh r0, [r4, #0x26] + b _080D463C +_080D462C: + ldrh r1, [r4, #0x2e] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim + ldr r0, _080D4644 + str r0, [r4, #0x1c] +_080D463C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D4644: .4byte 0x08007141 + thumb_func_end SpriteCB_BagVisualSwitchingPockets + + thumb_func_start ShakeBagVisual +ShakeBagVisual: @ 0x080D4648 + push {r4, lr} + ldr r0, _080D4680 + ldr r0, [r0] + ldr r1, _080D4684 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080D4688 + adds r4, r0, r1 + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080D4678 + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAffineAnim + ldr r0, _080D468C + str r0, [r4, #0x1c] +_080D4678: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D4680: .4byte 0x0203CB20 +_080D4684: .4byte 0x00000804 +_080D4688: .4byte 0x020205AC +_080D468C: .4byte 0x080D4691 + thumb_func_end ShakeBagVisual + + thumb_func_start SpriteCB_ShakeBagVisual +SpriteCB_ShakeBagVisual: @ 0x080D4690 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080D46AC + adds r0, r4, #0 + movs r1, #0 + bl StartSpriteAffineAnim + ldr r0, _080D46B4 + str r0, [r4, #0x1c] +_080D46AC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D46B4: .4byte 0x08007141 + thumb_func_end SpriteCB_ShakeBagVisual + + thumb_func_start AddSwitchPocketRotatingBallSprite +AddSwitchPocketRotatingBallSprite: @ 0x080D46B8 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + ldr r0, _080D46F8 + ldr r4, [r0] + ldr r0, _080D46FC + adds r4, r4, r0 + ldr r0, _080D4700 + bl LoadSpriteSheet + ldr r0, _080D4704 + bl LoadSpritePalette + ldr r0, _080D4708 + movs r1, #0x10 + movs r2, #0x10 + movs r3, #0 + bl CreateSprite + strb r0, [r4] + ldr r2, _080D470C + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r5, [r0, #0x2e] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D46F8: .4byte 0x0203CB20 +_080D46FC: .4byte 0x00000805 +_080D4700: .4byte 0x0855A6D0 +_080D4704: .4byte 0x0855A6D8 +_080D4708: .4byte 0x0855A6E0 +_080D470C: .4byte 0x020205AC + thumb_func_end AddSwitchPocketRotatingBallSprite + + thumb_func_start UpdateSwitchPocketRotatingBallCoords +UpdateSwitchPocketRotatingBallCoords: @ 0x080D4710 + ldrh r2, [r0, #0x30] + ldrh r1, [r0, #0x34] + adds r1, #1 + movs r3, #1 + ands r1, r3 + subs r2, r2, r1 + adds r1, r0, #0 + adds r1, #0x28 + strb r2, [r1] + ldrh r2, [r0, #0x30] + ldrh r1, [r0, #0x34] + adds r1, #1 + ands r1, r3 + subs r2, r2, r1 + adds r0, #0x29 + strb r2, [r0] + bx lr + .align 2, 0 + thumb_func_end UpdateSwitchPocketRotatingBallCoords + + thumb_func_start SpriteCB_SwitchPocketRotatingBallInit +SpriteCB_SwitchPocketRotatingBallInit: @ 0x080D4734 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #1] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #1] + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _080D475C + ldr r0, _080D4758 + b _080D475E + .align 2, 0 +_080D4758: .4byte 0x0855A6C8 +_080D475C: + ldr r0, _080D4790 +_080D475E: + str r0, [r4, #0x10] + adds r0, r4, #0 + bl InitSpriteAffineAnim + adds r0, r4, #0 + adds r0, #0x28 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r4, #0x30] + adds r0, r4, #0 + adds r0, #0x29 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r4, #0x30] + adds r0, r4, #0 + bl UpdateSwitchPocketRotatingBallCoords + ldr r0, _080D4794 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D4790: .4byte 0x0855A6CC +_080D4794: .4byte 0x080D4799 + thumb_func_end SpriteCB_SwitchPocketRotatingBallInit + + thumb_func_start SpriteCB_SwitchPocketRotatingBallContinue +SpriteCB_SwitchPocketRotatingBallContinue: @ 0x080D4798 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x34] + adds r0, #1 + strh r0, [r4, #0x34] + adds r0, r4, #0 + bl UpdateSwitchPocketRotatingBallCoords + movs r1, #0x34 + ldrsh r0, [r4, r1] + cmp r0, #0x10 + bne _080D47B6 + movs r0, #1 + bl RemoveBagSprite +_080D47B6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end SpriteCB_SwitchPocketRotatingBallContinue + + thumb_func_start AddBagItemIconSprite +AddBagItemIconSprite: @ 0x080D47BC + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + ldr r0, _080D4810 + ldr r2, _080D4814 + adds r1, r4, r2 + ldr r0, [r0] + adds r5, r0, r1 + ldrb r0, [r5] + cmp r0, #0xff + bne _080D480A + adds r4, #0x66 + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl FreeSpritePaletteByTag + adds r0, r4, #0 + adds r1, r4, #0 + adds r2, r6, #0 + bl AddItemIconSprite + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x40 + beq _080D480A + strb r2, [r5] + ldr r1, _080D4818 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + movs r1, #0x18 + strh r1, [r0, #0x24] + movs r1, #0x58 + strh r1, [r0, #0x26] +_080D480A: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080D4810: .4byte 0x0203CB20 +_080D4814: .4byte 0x00000806 +_080D4818: .4byte 0x020205AC + thumb_func_end AddBagItemIconSprite + + thumb_func_start RemoveBagItemIconSprite +RemoveBagItemIconSprite: @ 0x080D481C + push {lr} + lsls r0, r0, #0x18 + movs r1, #0x80 + lsls r1, r1, #0x12 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + bl RemoveBagSprite + pop {r0} + bx r0 + thumb_func_end RemoveBagItemIconSprite + + thumb_func_start sub_080D4830 +sub_080D4830: @ 0x080D4830 + push {lr} + ldr r0, _080D4844 + ldr r0, [r0] + ldr r1, _080D4848 + adds r0, r0, r1 + movs r1, #8 + bl sub_08122350 + pop {r0} + bx r0 + .align 2, 0 +_080D4844: .4byte 0x0203CB20 +_080D4848: .4byte 0x00000808 + thumb_func_end sub_080D4830 + + thumb_func_start sub_080D484C +sub_080D484C: @ 0x080D484C + push {lr} + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r0, _080D4868 + ldr r0, [r0] + ldr r1, _080D486C + adds r0, r0, r1 + movs r1, #8 + bl sub_08122408 + pop {r0} + bx r0 + .align 2, 0 +_080D4868: .4byte 0x0203CB20 +_080D486C: .4byte 0x00000808 + thumb_func_end sub_080D484C + + thumb_func_start sub_080D4870 +sub_080D4870: @ 0x080D4870 + push {lr} + adds r3, r0, #0 + lsls r3, r3, #0x18 + ldr r0, _080D4894 + ldr r0, [r0] + ldr r1, _080D4898 + adds r0, r0, r1 + lsrs r3, r3, #4 + movs r1, #0x80 + lsls r1, r1, #0xd + adds r3, r3, r1 + lsrs r3, r3, #0x10 + movs r1, #0x88 + movs r2, #0x78 + bl sub_08122454 + pop {r0} + bx r0 + .align 2, 0 +_080D4894: .4byte 0x0203CB20 +_080D4898: .4byte 0x00000808 + thumb_func_end sub_080D4870 + + thumb_func_start sub_080D489C +sub_080D489C: @ 0x080D489C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r4, r1, #0 + movs r2, #0x80 + lsls r2, r2, #4 + adds r0, r4, #0 + movs r1, #0 + bl memset + movs r0, #0x80 + lsls r0, r0, #1 + adds r4, r4, r0 + movs r7, #0 +_080D48BA: + adds r4, #0x20 + movs r5, #0 + adds r1, r7, #1 + mov r8, r1 +_080D48C2: + adds r0, r4, #0 + adds r1, r6, #0 + movs r2, #0x20 + bl memcpy + adds r4, #0x20 + adds r6, #0x20 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #5 + bls _080D48C2 + cmp r7, #5 + beq _080D48E0 + adds r4, #0x20 +_080D48E0: + mov r1, r8 + lsls r0, r1, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #5 + bls _080D48BA + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_080D489C + + thumb_func_start LoadBerryGfx +LoadBerryGfx: @ 0x080D48F4 + push {r4, r5, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r4, r0, #0 + cmp r4, #0x2a + bne _080D4906 + bl IsEnigmaBerryValid +_080D4906: + ldr r5, _080D4944 + lsls r4, r4, #3 + adds r0, r5, #4 + adds r0, r4, r0 + ldr r0, [r0] + str r0, [sp] + ldr r1, _080D4948 + ldr r0, [sp, #4] + ands r0, r1 + ldr r1, _080D494C + orrs r0, r1 + str r0, [sp, #4] + mov r0, sp + bl LoadCompressedSpritePalette + adds r4, r4, r5 + ldr r0, [r4] + ldr r4, _080D4950 + adds r1, r4, #0 + bl LZDecompressVram + ldr r0, _080D4954 + adds r1, r4, r0 + adds r0, r4, #0 + bl sub_080D489C + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D4944: .4byte 0x0855A7C4 +_080D4948: .4byte 0xFFFF0000 +_080D494C: .4byte 0x00007544 +_080D4950: .4byte 0x0201D000 +_080D4954: .4byte 0xFFFFF000 + thumb_func_end LoadBerryGfx + + thumb_func_start CreateBerryTagSprite +CreateBerryTagSprite: @ 0x080D4958 + push {r4, r5, lr} + adds r4, r1, #0 + adds r5, r2, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + bl LoadBerryGfx + ldr r0, _080D498C + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + adds r1, r4, #0 + adds r2, r5, #0 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080D498C: .4byte 0x0855A71C + thumb_func_end CreateBerryTagSprite + + thumb_func_start FreeBerryTagSpritePalette +FreeBerryTagSpritePalette: @ 0x080D4990 + push {lr} + ldr r0, _080D499C + bl FreeSpritePaletteByTag + pop {r0} + bx r0 + .align 2, 0 +_080D499C: .4byte 0x00007544 + thumb_func_end FreeBerryTagSpritePalette + + thumb_func_start LoadSpinningBerryPicGfx +LoadSpinningBerryPicGfx: @ 0x080D49A0 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + mov r8, r3 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov r0, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r0, _080D4A04 + bl FreeSpritePaletteByTag + adds r0, r4, #0 + bl LoadBerryGfx + ldr r0, _080D4A08 + adds r1, r5, #0 + adds r2, r6, #0 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r4, r1, #0 + mov r0, r8 + cmp r0, #1 + bne _080D49F6 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080D4A0C + adds r0, r0, r1 + movs r1, #1 + bl StartSpriteAffineAnim +_080D49F6: + adds r0, r4, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080D4A04: .4byte 0x00007544 +_080D4A08: .4byte 0x0855A7AC +_080D4A0C: .4byte 0x020205AC + thumb_func_end LoadSpinningBerryPicGfx + + thumb_func_start CreateBerryFlavorCircleSprite +CreateBerryFlavorCircleSprite: @ 0x080D4A10 + push {lr} + adds r1, r0, #0 + ldr r0, _080D4A2C + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r2, #0x63 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_080D4A2C: .4byte 0x0855A940 + thumb_func_end CreateBerryFlavorCircleSprite + diff --git a/asm/item_use.s b/asm/item_use.s new file mode 100644 index 0000000..084e9e2 --- /dev/null +++ b/asm/item_use.s @@ -0,0 +1,3071 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start SetUpItemUseCallback +SetUpItemUseCallback: @ 0x080FD8B4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _080FD8D0 + ldrh r0, [r1] + cmp r0, #0xaf + bne _080FD8D8 + ldr r0, _080FD8D4 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrb r0, [r1, #0x10] + b _080FD8DE + .align 2, 0 +_080FD8D0: .4byte 0x0203CB48 +_080FD8D4: .4byte 0x03005B60 +_080FD8D8: + ldrh r0, [r1] + bl ItemId_GetPocket +_080FD8DE: + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FD90C + ldr r0, _080FD904 + ldr r2, [r0] + ldr r1, _080FD908 + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r2] + adds r0, r5, #0 + bl unknown_ItemMenu_Confirm + b _080FD920 + .align 2, 0 +_080FD904: .4byte 0x0203CB20 +_080FD908: .4byte 0x0856DCBC +_080FD90C: + ldr r0, _080FD928 + ldr r2, [r0] + ldr r1, _080FD92C + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r2] + adds r0, r5, #0 + bl sub_081C5310 +_080FD920: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FD928: .4byte 0x0203CBF8 +_080FD92C: .4byte 0x0856DCBC + thumb_func_end SetUpItemUseCallback + + thumb_func_start SetUpItemUseOnFieldCallback +SetUpItemUseOnFieldCallback: @ 0x080FD930 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _080FD958 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0xe + ldrsh r0, [r0, r1] + cmp r0, #1 + beq _080FD964 + ldr r1, _080FD95C + ldr r0, _080FD960 + str r0, [r1] + adds r0, r2, #0 + bl SetUpItemUseCallback + b _080FD96E + .align 2, 0 +_080FD958: .4byte 0x03005B60 +_080FD95C: .4byte 0x03005B0C +_080FD960: .4byte 0x080FD979 +_080FD964: + ldr r0, _080FD974 + ldr r1, [r0] + adds r0, r2, #0 + bl _call_via_r1 +_080FD96E: + pop {r0} + bx r0 + .align 2, 0 +_080FD974: .4byte 0x02039DC0 + thumb_func_end SetUpItemUseOnFieldCallback + + thumb_func_start MapPostLoadHook_UseItem +MapPostLoadHook_UseItem: @ 0x080FD978 + push {lr} + bl pal_fill_black + ldr r0, _080FD98C + movs r1, #8 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080FD98C: .4byte 0x080FD991 + thumb_func_end MapPostLoadHook_UseItem + + thumb_func_start Task_CallItemUseOnFieldCallback +Task_CallItemUseOnFieldCallback: @ 0x080FD990 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl IsWeatherNotFadingIn + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080FD9AC + ldr r0, _080FD9B4 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 +_080FD9AC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FD9B4: .4byte 0x02039DC0 + thumb_func_end Task_CallItemUseOnFieldCallback + + thumb_func_start DisplayCannotUseItemMessage +DisplayCannotUseItemMessage: @ 0x080FD9B8 + push {r4, r5, r6, lr} + adds r4, r1, #0 + adds r1, r2, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r6, _080FD9EC + adds r0, r6, #0 + bl StringExpandPlaceholders + cmp r4, #0 + bne _080FDA08 + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FD9F4 + ldr r3, _080FD9F0 + adds r0, r5, #0 + movs r1, #1 + adds r2, r6, #0 + bl DisplayItemMessage + b _080FDA12 + .align 2, 0 +_080FD9EC: .4byte 0x02021C7C +_080FD9F0: .4byte 0x081AB969 +_080FD9F4: + ldr r1, _080FDA00 + ldr r2, _080FDA04 + adds r0, r5, #0 + bl DisplayItemMessageInBattlePyramid + b _080FDA12 + .align 2, 0 +_080FDA00: .4byte 0x085C9556 +_080FDA04: .4byte 0x081C5F25 +_080FDA08: + ldr r2, _080FDA18 + adds r0, r5, #0 + adds r1, r6, #0 + bl DisplayItemMessageOnField +_080FDA12: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080FDA18: .4byte 0x080FDA4D + thumb_func_end DisplayCannotUseItemMessage + + thumb_func_start DisplayDadsAdviceCannotUseItemMessage +DisplayDadsAdviceCannotUseItemMessage: @ 0x080FDA1C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _080FDA30 + bl DisplayCannotUseItemMessage + pop {r0} + bx r0 + .align 2, 0 +_080FDA30: .4byte 0x085C9556 + thumb_func_end DisplayDadsAdviceCannotUseItemMessage + + thumb_func_start DisplayCannotDismountBikeMessage +DisplayCannotDismountBikeMessage: @ 0x080FDA34 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _080FDA48 + bl DisplayCannotUseItemMessage + pop {r0} + bx r0 + .align 2, 0 +_080FDA48: .4byte 0x085C957F + thumb_func_end DisplayCannotDismountBikeMessage + + thumb_func_start CleanUpAfterFailingToUseRegisteredKeyItemOnField +CleanUpAfterFailingToUseRegisteredKeyItemOnField: @ 0x080FDA4C + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + movs r1, #1 + bl DrawDialogueFrame + adds r0, r4, #0 + bl DestroyTask + bl ScriptUnfreezeEventObjects + bl ScriptContext2_Disable + pop {r4} + pop {r0} + bx r0 + thumb_func_end CleanUpAfterFailingToUseRegisteredKeyItemOnField + + thumb_func_start CheckIfItemIsTMHMOrEvolutionStone +CheckIfItemIsTMHMOrEvolutionStone: @ 0x080FDA70 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r4, #0 + bl sub_080D6DF8 + ldr r1, _080FDA88 + cmp r0, r1 + bne _080FDA8C + movs r0, #1 + b _080FDAA2 + .align 2, 0 +_080FDA88: .4byte 0x080FE79D +_080FDA8C: + adds r0, r4, #0 + bl sub_080D6DF8 + ldr r1, _080FDA9C + cmp r0, r1 + beq _080FDAA0 + movs r0, #0 + b _080FDAA2 + .align 2, 0 +_080FDA9C: .4byte 0x080FEBC9 +_080FDAA0: + movs r0, #2 +_080FDAA2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end CheckIfItemIsTMHMOrEvolutionStone + + thumb_func_start sub_080FDAA8 +sub_080FDAA8: @ 0x080FDAA8 + push {lr} + sub sp, #0x24 + mov r1, sp + ldr r0, _080FDAC4 + ldrh r0, [r0] + strh r0, [r1, #0x20] + ldr r1, _080FDAC8 + mov r0, sp + movs r2, #0 + bl ReadMail + add sp, #0x24 + pop {r0} + bx r0 + .align 2, 0 +_080FDAC4: .4byte 0x0203CB48 +_080FDAC8: .4byte 0x081AD205 + thumb_func_end sub_080FDAA8 + + thumb_func_start ItemUseOutOfBattle_Mail +ItemUseOutOfBattle_Mail: @ 0x080FDACC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080FDAE4 + ldr r2, [r1] + ldr r1, _080FDAE8 + str r1, [r2] + bl unknown_ItemMenu_Confirm + pop {r0} + bx r0 + .align 2, 0 +_080FDAE4: .4byte 0x0203CB20 +_080FDAE8: .4byte 0x080FDAA9 + thumb_func_end ItemUseOutOfBattle_Mail + + thumb_func_start ItemUseOutOfBattle_Bike +ItemUseOutOfBattle_Bike: @ 0x080FDAEC + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080FDB6C + adds r6, r0, r1 + mov r4, sp + adds r4, #2 + 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, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080FDB70 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080FDB62 + adds r0, r4, #0 + bl MetatileBehavior_IsVerticalRail + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080FDB62 + adds r0, r4, #0 + bl MetatileBehavior_IsHorizontalRail + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080FDB62 + adds r0, r4, #0 + bl MetatileBehavior_IsIsolatedVerticalRail + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080FDB62 + adds r0, r4, #0 + bl MetatileBehavior_IsIsolatedHorizontalRail + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080FDB74 +_080FDB62: + ldrb r1, [r6, #6] + adds r0, r5, #0 + bl DisplayCannotDismountBikeMessage + b _080FDBA4 + .align 2, 0 +_080FDB6C: .4byte 0x03005B68 +_080FDB70: .4byte 0x0000088B +_080FDB74: + bl Overworld_IsBikingAllowed + cmp r0, #1 + bne _080FDB9C + bl IsBikingDisallowedByPlayer + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FDB9C + ldr r1, _080FDB94 + ldr r0, _080FDB98 + str r0, [r1] + adds r0, r5, #0 + bl SetUpItemUseOnFieldCallback + b _080FDBA4 + .align 2, 0 +_080FDB94: .4byte 0x02039DC0 +_080FDB98: .4byte 0x080FDBAD +_080FDB9C: + ldrb r1, [r6, #6] + adds r0, r5, #0 + bl DisplayDadsAdviceCannotUseItemMessage +_080FDBA4: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end ItemUseOutOfBattle_Bike + + thumb_func_start ItemUseOnFieldCB_Bike +ItemUseOnFieldCB_Bike: @ 0x080FDBAC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080FDBC8 + ldrh r0, [r0] + bl sub_080D6E6C + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FDBCC + movs r0, #2 + bl GetOnOffBike + b _080FDBD2 + .align 2, 0 +_080FDBC8: .4byte 0x0203CB48 +_080FDBCC: + movs r0, #4 + bl GetOnOffBike +_080FDBD2: + bl ScriptUnfreezeEventObjects + bl ScriptContext2_Disable + adds r0, r4, #0 + bl DestroyTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ItemUseOnFieldCB_Bike + + thumb_func_start CanFish +CanFish: @ 0x080FDBE8 + push {r4, r5, r6, lr} + sub sp, #4 + mov r4, sp + adds r4, #2 + 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, r0, #0x10 + lsrs r6, r0, #0x10 + lsls r0, r6, #0x18 + lsrs r5, r0, #0x18 + adds r0, r5, #0 + bl MetatileBehavior_IsWaterfall + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FDC70 + movs r0, #0x10 + bl TestPlayerAvatarFlags + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FDC70 + movs r0, #8 + bl TestPlayerAvatarFlags + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FDC40 + bl IsPlayerFacingSurfableFishableWater + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FDC70 +_080FDC3C: + movs r0, #1 + b _080FDC72 +_080FDC40: + adds r0, r5, #0 + bl MetatileBehavior_IsSurfableWaterOrUnderwater + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FDC60 + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0 + ldrsh r1, [r4, r2] + bl MapGridIsImpassableAt + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080FDC3C +_080FDC60: + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_8089510 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080FDC3C +_080FDC70: + movs r0, #0 +_080FDC72: + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CanFish + + thumb_func_start ItemUseOutOfBattle_Rod +ItemUseOutOfBattle_Rod: @ 0x080FDC7C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl CanFish + cmp r0, #1 + bne _080FDCA0 + ldr r1, _080FDC98 + ldr r0, _080FDC9C + str r0, [r1] + adds r0, r4, #0 + bl SetUpItemUseOnFieldCallback + b _080FDCB2 + .align 2, 0 +_080FDC98: .4byte 0x02039DC0 +_080FDC9C: .4byte 0x080FDCBD +_080FDCA0: + ldr r0, _080FDCB8 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrb r1, [r1, #0xe] + adds r0, r4, #0 + bl DisplayDadsAdviceCannotUseItemMessage +_080FDCB2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FDCB8: .4byte 0x03005B60 + thumb_func_end ItemUseOutOfBattle_Rod + + thumb_func_start ItemUseOnFieldCB_Rod +ItemUseOnFieldCB_Rod: @ 0x080FDCBC + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _080FDCE0 + ldrh r0, [r0] + bl sub_080D6E6C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl StartFishing + adds r0, r4, #0 + bl DestroyTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FDCE0: .4byte 0x0203CB48 + thumb_func_end ItemUseOnFieldCB_Rod + + thumb_func_start ItemUseOutOfBattle_Itemfinder +ItemUseOutOfBattle_Itemfinder: @ 0x080FDCE4 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0x27 + bl IncrementGameStat + ldr r1, _080FDD04 + ldr r0, _080FDD08 + str r0, [r1] + adds r0, r4, #0 + bl SetUpItemUseOnFieldCallback + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FDD04: .4byte 0x02039DC0 +_080FDD08: .4byte 0x080FDD0D + thumb_func_end ItemUseOutOfBattle_Itemfinder + + thumb_func_start ItemUseOnFieldCB_Itemfinder +ItemUseOnFieldCB_Itemfinder: @ 0x080FDD0C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080FDD34 + ldr r0, [r0, #4] + adds r1, r4, #0 + bl ItemfinderCheckForHiddenItems + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080FDD40 + ldr r0, _080FDD38 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080FDD3C + str r0, [r1] + b _080FDD4A + .align 2, 0 +_080FDD34: .4byte 0x02036FB8 +_080FDD38: .4byte 0x03005B60 +_080FDD3C: .4byte 0x080FDD59 +_080FDD40: + ldr r1, _080FDD50 + ldr r2, _080FDD54 + adds r0, r4, #0 + bl DisplayItemMessageOnField +_080FDD4A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FDD50: .4byte 0x085C95D3 +_080FDD54: .4byte 0x080FDE21 + thumb_func_end ItemUseOnFieldCB_Itemfinder + + thumb_func_start sub_080FDD58 +sub_080FDD58: @ 0x080FDD58 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r6, r5, #2 + adds r0, r6, r5 + lsls r7, r0, #3 + ldr r0, _080FDDAC + mov r8, r0 + adds r4, r7, r0 + movs r1, #6 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080FDE0C + movs r2, #8 + ldrsh r0, [r4, r2] + cmp r0, #4 + bne _080FDE00 + movs r1, #0 + ldrsh r0, [r4, r1] + movs r2, #2 + ldrsh r1, [r4, r2] + bl sub_080FE204 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _080FDDB8 + ldr r1, _080FDDB0 + subs r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + bl sub_080FE278 + mov r0, r8 + subs r0, #8 + adds r0, r7, r0 + ldr r1, _080FDDB4 + str r1, [r0] + b _080FDE16 + .align 2, 0 +_080FDDAC: .4byte 0x03005B68 +_080FDDB0: .4byte 0x0856DCC8 +_080FDDB4: .4byte 0x080FE2E9 +_080FDDB8: + bl GetPlayerFacingDirection + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + movs r1, #0 + adds r3, r6, #0 + ldr r7, _080FDDF4 + movs r6, #3 +_080FDDC8: + adds r0, r1, r7 + adds r1, #1 + ldrb r0, [r0] + cmp r2, r0 + bne _080FDDD8 + adds r0, r1, #0 + ands r0, r6 + strh r0, [r4, #0xa] +_080FDDD8: + lsls r0, r1, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #3 + bls _080FDDC8 + ldr r1, _080FDDF8 + adds r0, r3, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080FDDFC + str r1, [r0] + movs r0, #0 + strh r0, [r4, #6] + strh r0, [r4, #4] + b _080FDE16 + .align 2, 0 +_080FDDF4: .4byte 0x0856DCC8 +_080FDDF8: .4byte 0x03005B60 +_080FDDFC: .4byte 0x080FE331 +_080FDE00: + movs r0, #0x48 + bl PlaySE + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080FDE0C: + ldrh r0, [r4, #6] + adds r0, #1 + movs r1, #0x1f + ands r0, r1 + strh r0, [r4, #6] +_080FDE16: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_080FDD58 + + thumb_func_start sub_080FDE20 +sub_080FDE20: @ 0x080FDE20 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + movs r1, #1 + bl DrawDialogueFrame + bl ScriptUnfreezeEventObjects + bl ScriptContext2_Disable + adds r0, r4, #0 + bl DestroyTask + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_080FDE20 + + thumb_func_start ItemfinderCheckForHiddenItems +ItemfinderCheckForHiddenItems: @ 0x080FDE44 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + adds r5, r0, #0 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + mov r4, sp + adds r4, #2 + mov r0, sp + adds r1, r4, #0 + bl PlayerGetDestCoords + ldr r1, _080FDF14 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #0xc] + movs r3, #0 + mov sb, r4 + ldrb r0, [r5, #3] + cmp r3, r0 + bge _080FDEF8 + subs r1, #5 + mov r8, r1 +_080FDE7C: + lsls r3, r3, #0x10 + asrs r1, r3, #0x10 + ldr r2, [r5, #0x10] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r4, r0, #2 + adds r1, r4, r2 + ldrb r0, [r1, #5] + adds r7, r3, #0 + cmp r0, #7 + bne _080FDEE8 + movs r2, #0xfa + lsls r2, r2, #1 + adds r0, r2, #0 + ldrh r1, [r1, #0xa] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FDEE8 + ldr r1, [r5, #0x10] + adds r1, r4, r1 + ldrh r2, [r1] + adds r2, #7 + mov r0, sp + ldrh r0, [r0] + subs r2, r2, r0 + ldrh r0, [r1, #2] + adds r0, #7 + mov r3, sb + ldrh r1, [r3] + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r2, r2, #0x10 + asrs r1, r2, #0x10 + movs r3, #0xe0 + lsls r3, r3, #0xb + adds r2, r2, r3 + lsrs r2, r2, #0x10 + cmp r2, #0xe + bhi _080FDEE8 + lsls r0, r0, #0x10 + asrs r2, r0, #0x10 + cmp r2, r8 + blt _080FDEE8 + cmp r2, #5 + bgt _080FDEE8 + adds r0, r6, #0 + bl sub_080FE134 +_080FDEE8: + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r7, r1 + lsrs r3, r0, #0x10 + asrs r0, r0, #0x10 + ldrb r2, [r5, #3] + cmp r0, r2 + blt _080FDE7C +_080FDEF8: + adds r0, r6, #0 + bl sub_080FE01C + ldr r0, _080FDF14 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r3, #0xc + ldrsh r0, [r1, r3] + cmp r0, #1 + beq _080FDF18 + movs r0, #0 + b _080FDF1A + .align 2, 0 +_080FDF14: .4byte 0x03005B60 +_080FDF18: + movs r0, #1 +_080FDF1A: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end ItemfinderCheckForHiddenItems + + thumb_func_start sub_080FDF28 +sub_080FDF28: @ 0x080FDF28 + push {r4, r5, r6, lr} + lsls r1, r1, #0x10 + lsrs r3, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r4, r2, #0x10 + ldrb r2, [r0, #3] + ldr r5, [r0, #0x10] + movs r1, #0 + cmp r1, r2 + bge _080FDF7C + lsls r0, r3, #0x10 + asrs r6, r0, #0x10 + lsls r0, r4, #0x10 + asrs r4, r0, #0x10 + adds r3, r5, #0 +_080FDF46: + ldrb r0, [r3, #5] + cmp r0, #7 + bne _080FDF74 + ldrh r0, [r3] + cmp r6, r0 + bne _080FDF74 + ldrh r0, [r3, #2] + cmp r4, r0 + bne _080FDF74 + movs r1, #0xfa + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r3, [r3, #0xa] + adds r0, r0, r3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FDF7C + movs r0, #1 + b _080FDF7E +_080FDF74: + adds r3, #0xc + adds r1, #1 + cmp r1, r2 + blt _080FDF46 +_080FDF7C: + movs r0, #0 +_080FDF7E: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_080FDF28 + + thumb_func_start sub_080FDF84 +sub_080FDF84: @ 0x080FDF84 + push {r4, r5, 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, #2 + beq _080FDFAC + cmp r0, #2 + bgt _080FDFA2 + cmp r0, #1 + beq _080FDFC0 + b _080FE000 +_080FDFA2: + cmp r0, #3 + beq _080FDFD8 + cmp r0, #4 + beq _080FDFE2 + b _080FE000 +_080FDFAC: + ldr r0, [r4, #4] + adds r0, #7 + subs r0, r5, r0 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r0, [r3] + ldr r0, [r0, #4] + subs r0, #7 + adds r0, r0, r6 + b _080FDFF6 +_080FDFC0: + ldr r0, [r4, #4] + adds r0, #7 + subs r0, r5, r0 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r0, _080FDFD4 + ldr r0, [r0] + ldr r0, [r0, #4] + b _080FDFF2 + .align 2, 0 +_080FDFD4: .4byte 0x02036FB8 +_080FDFD8: + ldr r0, [r3] + ldr r0, [r0] + subs r0, #7 + adds r0, r0, r5 + b _080FDFEC +_080FDFE2: + ldr r0, _080FDFFC + ldr r0, [r0] + ldr r0, [r0] + adds r0, #7 + subs r0, r5, r0 +_080FDFEC: + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r0, [r4, #4] +_080FDFF2: + adds r0, #7 + subs r0, r6, r0 +_080FDFF6: + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + b _080FE004 + .align 2, 0 +_080FDFFC: .4byte 0x02036FB8 +_080FE000: + movs r0, #0 + b _080FE016 +_080FE004: + ldr r0, [r3, #4] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + bl sub_080FDF28 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_080FE016: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_080FDF84 + + thumb_func_start sub_080FE01C +sub_080FE01C: @ 0x080FE01C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + ldr r0, _080FE130 + ldr r1, [r0] + ldr r0, [r1] + adds r0, #7 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #8] + ldr r0, [r1, #4] + adds r0, #7 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0xc] + mov r4, sp + adds r4, #2 + mov r0, sp + adds r1, r4, #0 + bl PlayerGetDestCoords + mov r0, sp + ldrh r0, [r0] + subs r0, #7 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + asrs r0, r0, #0x10 + mov r1, sp + movs r2, #0 + ldrsh r1, [r1, r2] + adds r1, #7 + cmp r0, r1 + bgt _080FE120 +_080FE06A: + mov r5, sp + ldrh r0, [r5, #2] + subs r0, #5 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + lsls r2, r4, #0x10 + asrs r1, r2, #0x10 + movs r6, #2 + ldrsh r0, [r5, r6] + adds r0, #5 + lsls r3, r3, #0x10 + mov r8, r3 + cmp r1, r0 + bgt _080FE10A + movs r0, #7 + str r0, [sp, #0x10] + mov r1, r8 + asrs r1, r1, #0x10 + mov sb, r1 + mov sl, r0 +_080FE092: + ldr r3, [sp, #0x10] + cmp r3, sb + bgt _080FE0B4 + ldr r5, [sp, #8] + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + cmp sb, r0 + bge _080FE0B4 + asrs r1, r2, #0x10 + cmp sl, r1 + bgt _080FE0B4 + ldr r6, [sp, #0xc] + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + lsls r7, r4, #0x10 + cmp r1, r0 + blt _080FE0F2 +_080FE0B4: + mov r0, r8 + asrs r5, r0, #0x10 + lsls r4, r4, #0x10 + asrs r6, r4, #0x10 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_080883F0 + adds r7, r4, #0 + cmp r0, #0 + beq _080FE0F2 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_080FDF84 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080FE0F2 + mov r0, sp + ldrh r1, [r0] + subs r1, r5, r1 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldrh r2, [r0, #2] + subs r2, r6, r2 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + ldr r0, [sp, #4] + bl sub_080FE134 +_080FE0F2: + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r7, r1 + lsrs r4, r0, #0x10 + lsls r2, r4, #0x10 + asrs r1, r2, #0x10 + mov r3, sp + movs r5, #2 + ldrsh r0, [r3, r5] + adds r0, #5 + cmp r1, r0 + ble _080FE092 +_080FE10A: + movs r1, #0x80 + lsls r1, r1, #9 + add r1, r8 + lsrs r3, r1, #0x10 + asrs r1, r1, #0x10 + mov r0, sp + movs r6, #0 + ldrsh r0, [r0, r6] + adds r0, #7 + cmp r1, r0 + ble _080FE06A +_080FE120: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080FE130: .4byte 0x02036FB8 + thumb_func_end sub_080FE01C + + thumb_func_start sub_080FE134 +sub_080FE134: @ 0x080FE134 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + mov ip, r2 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080FE168 + adds r3, r1, r0 + movs r1, #4 + ldrsh r0, [r3, r1] + cmp r0, #0 + bne _080FE16C + strh r7, [r3] + mov r0, ip + strh r0, [r3, #2] + movs r0, #1 + strh r0, [r3, #4] + b _080FE1F6 + .align 2, 0 +_080FE168: .4byte 0x03005B68 +_080FE16C: + movs r1, #0 + ldrsh r0, [r3, r1] + cmp r0, #0 + bge _080FE17C + rsbs r0, r0, #0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + b _080FE17E +_080FE17C: + ldrh r4, [r3] +_080FE17E: + movs r1, #2 + ldrsh r0, [r3, r1] + ldrh r1, [r3, #2] + mov sb, r1 + cmp r0, #0 + bge _080FE192 + rsbs r0, r0, #0 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + b _080FE194 +_080FE192: + ldrh r2, [r3, #2] +_080FE194: + lsls r1, r7, #0x10 + asrs r0, r1, #0x10 + cmp r0, #0 + bge _080FE1A4 + rsbs r0, r0, #0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + b _080FE1A6 +_080FE1A4: + lsrs r6, r1, #0x10 +_080FE1A6: + mov r1, ip + lsls r0, r1, #0x10 + asrs r1, r0, #0x10 + mov r8, r0 + cmp r1, #0 + bge _080FE1B8 + rsbs r0, r1, #0 + lsls r0, r0, #0x10 + b _080FE1BA +_080FE1B8: + mov r0, r8 +_080FE1BA: + lsrs r5, r0, #0x10 + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + lsls r1, r2, #0x10 + asrs r2, r1, #0x10 + adds r4, r0, r2 + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + lsls r1, r5, #0x10 + asrs r1, r1, #0x10 + adds r0, r0, r1 + cmp r4, r0 + ble _080FE1DC + strh r7, [r3] + mov r1, ip + strh r1, [r3, #2] + b _080FE1F6 +_080FE1DC: + cmp r4, r0 + bne _080FE1F6 + cmp r2, r1 + bgt _080FE1F0 + cmp r2, r1 + bne _080FE1F6 + mov r1, sb + lsls r0, r1, #0x10 + cmp r0, r8 + bge _080FE1F6 +_080FE1F0: + strh r7, [r3] + mov r0, ip + strh r0, [r3, #2] +_080FE1F6: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080FE134 + + thumb_func_start sub_080FE204 +sub_080FE204: @ 0x080FE204 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsrs r2, r0, #0x10 + cmp r0, #0 + bne _080FE216 + cmp r1, #0 + beq _080FE270 +_080FE216: + lsls r0, r2, #0x10 + asrs r2, r0, #0x10 + adds r5, r0, #0 + cmp r2, #0 + bge _080FE228 + rsbs r0, r2, #0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + b _080FE22A +_080FE228: + lsrs r4, r5, #0x10 +_080FE22A: + lsls r0, r1, #0x10 + asrs r2, r0, #0x10 + adds r1, r0, #0 + cmp r2, #0 + bge _080FE23C + rsbs r0, r2, #0 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + b _080FE23E +_080FE23C: + lsrs r3, r1, #0x10 +_080FE23E: + lsls r0, r4, #0x10 + asrs r2, r0, #0x10 + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + cmp r2, r0 + ble _080FE256 + cmp r5, #0 + bge _080FE252 + movs r0, #4 + b _080FE272 +_080FE252: + movs r0, #2 + b _080FE272 +_080FE256: + cmp r2, r0 + bge _080FE260 + cmp r1, #0 + blt _080FE268 + b _080FE26C +_080FE260: + cmp r2, r0 + bne _080FE270 + cmp r1, #0 + bge _080FE26C +_080FE268: + movs r0, #1 + b _080FE272 +_080FE26C: + movs r0, #3 + b _080FE272 +_080FE270: + movs r0, #0 +_080FE272: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_080FE204 + + thumb_func_start sub_080FE278 +sub_080FE278: @ 0x080FE278 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r0, #0xff + movs r1, #0 + movs r2, #0 + bl GetEventObjectIdByLocalIdAndMap + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _080FE2E4 + adds r0, r0, r4 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + movs r0, #0xff + movs r1, #0 + movs r2, #0 + bl GetEventObjectIdByLocalIdAndMap + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl EventObjectClearHeldMovement + movs r0, #0xff + movs r1, #0 + movs r2, #0 + bl GetEventObjectIdByLocalIdAndMap + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl UnfreezeEventObject + adds r0, r5, #0 + bl PlayerTurnInPlace + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FE2E4: .4byte 0x02036FF0 + thumb_func_end sub_080FE278 + + thumb_func_start sub_080FE2E8 +sub_080FE2E8: @ 0x080FE2E8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #0xff + movs r1, #0 + movs r2, #0 + bl GetEventObjectIdByLocalIdAndMap + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080FE324 + adds r0, r0, r1 + bl EventObjectCheckHeldMovementStatus + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080FE31E + ldr r1, _080FE328 + ldr r2, _080FE32C + adds r0, r4, #0 + bl DisplayItemMessageOnField +_080FE31E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FE324: .4byte 0x02036FF0 +_080FE328: .4byte 0x085C958E +_080FE32C: .4byte 0x080FDE21 + thumb_func_end sub_080FE2E8 + + thumb_func_start sub_080FE330 +sub_080FE330: @ 0x080FE330 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080FE3AC + adds r4, r0, r1 + movs r0, #0xff + movs r1, #0 + movs r2, #0 + bl GetEventObjectIdByLocalIdAndMap + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080FE3B0 + adds r0, r0, r1 + bl EventObjectCheckHeldMovementStatus + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080FE370 + movs r1, #4 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080FE3A4 +_080FE370: + ldr r1, _080FE3B4 + movs r2, #0xa + ldrsh r0, [r4, r2] + adds r0, r0, r1 + ldrb r0, [r0] + bl sub_080FE278 + movs r0, #1 + strh r0, [r4, #4] + ldrh r0, [r4, #0xa] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strh r0, [r4, #0xa] + ldrh r0, [r4, #6] + adds r0, #1 + strh r0, [r4, #6] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + bne _080FE3A4 + ldr r1, _080FE3B8 + ldr r2, _080FE3BC + adds r0, r5, #0 + bl DisplayItemMessageOnField +_080FE3A4: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FE3AC: .4byte 0x03005B68 +_080FE3B0: .4byte 0x02036FF0 +_080FE3B4: .4byte 0x0856DCC8 +_080FE3B8: .4byte 0x085C95B6 +_080FE3BC: .4byte 0x080FDE21 + thumb_func_end sub_080FE330 + + thumb_func_start ItemUseOutOfBattle_PokeblockCase +ItemUseOutOfBattle_PokeblockCase: @ 0x080FE3C0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl sub_081221B8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080FE3EC + ldr r0, _080FE3E8 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrb r1, [r1, #0xe] + adds r0, r4, #0 + bl DisplayDadsAdviceCannotUseItemMessage + b _080FE42E + .align 2, 0 +_080FE3E8: .4byte 0x03005B60 +_080FE3EC: + ldr r0, _080FE410 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r5, r1, r0 + movs r1, #0xe + ldrsh r0, [r5, r1] + cmp r0, #1 + beq _080FE41C + ldr r0, _080FE414 + ldr r1, [r0] + ldr r0, _080FE418 + str r0, [r1] + adds r0, r4, #0 + bl unknown_ItemMenu_Confirm + b _080FE42E + .align 2, 0 +_080FE410: .4byte 0x03005B60 +_080FE414: .4byte 0x0203CB20 +_080FE418: .4byte 0x080FE441 +_080FE41C: + ldr r0, _080FE434 + ldr r1, _080FE438 + str r1, [r0] + movs r0, #1 + movs r1, #0 + bl FadeScreen + ldr r0, _080FE43C + str r0, [r5] +_080FE42E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FE434: .4byte 0x03005B0C +_080FE438: .4byte 0x080AEFD1 +_080FE43C: .4byte 0x080FE455 + thumb_func_end ItemUseOutOfBattle_PokeblockCase + + thumb_func_start sub_080FE440 +sub_080FE440: @ 0x080FE440 + push {lr} + ldr r1, _080FE450 + movs r0, #0 + bl sub_08135850 + pop {r0} + bx r0 + .align 2, 0 +_080FE450: .4byte 0x081AD205 + thumb_func_end sub_080FE440 + + thumb_func_start sub_080FE454 +sub_080FE454: @ 0x080FE454 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080FE480 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080FE478 + bl CleanupOverworldWindowsAndTilemaps + ldr r1, _080FE484 + movs r0, #0 + bl sub_08135850 + adds r0, r4, #0 + bl DestroyTask +_080FE478: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FE480: .4byte 0x02037C74 +_080FE484: .4byte 0x08085A31 + thumb_func_end sub_080FE454 + + thumb_func_start ItemUseOutOfBattle_CoinCase +ItemUseOutOfBattle_CoinCase: @ 0x080FE488 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r4, _080FE4D0 + bl GetCoins + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + movs r2, #0 + movs r3, #4 + bl ConvertIntToDecimalStringN + ldr r4, _080FE4D4 + ldr r1, _080FE4D8 + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r1, _080FE4DC + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0xe + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _080FE4E4 + ldr r3, _080FE4E0 + adds r0, r5, #0 + movs r1, #1 + adds r2, r4, #0 + bl DisplayItemMessage + b _080FE4EE + .align 2, 0 +_080FE4D0: .4byte 0x02021C40 +_080FE4D4: .4byte 0x02021C7C +_080FE4D8: .4byte 0x085C95F0 +_080FE4DC: .4byte 0x03005B60 +_080FE4E0: .4byte 0x081AB969 +_080FE4E4: + ldr r2, _080FE4F4 + adds r0, r5, #0 + adds r1, r4, #0 + bl DisplayItemMessageOnField +_080FE4EE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FE4F4: .4byte 0x080FDA4D + thumb_func_end ItemUseOutOfBattle_CoinCase + + thumb_func_start ItemUseOutOfBattle_PowderJar +ItemUseOutOfBattle_PowderJar: @ 0x080FE4F8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r4, _080FE53C + bl GetBerryPowder + adds r1, r0, #0 + adds r0, r4, #0 + movs r2, #0 + movs r3, #5 + bl ConvertIntToDecimalStringN + ldr r4, _080FE540 + ldr r1, _080FE544 + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r1, _080FE548 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0xe + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _080FE550 + ldr r3, _080FE54C + adds r0, r5, #0 + movs r1, #1 + adds r2, r4, #0 + bl DisplayItemMessage + b _080FE55A + .align 2, 0 +_080FE53C: .4byte 0x02021C40 +_080FE540: .4byte 0x02021C7C +_080FE544: .4byte 0x085C96CE +_080FE548: .4byte 0x03005B60 +_080FE54C: .4byte 0x081AB969 +_080FE550: + ldr r2, _080FE560 + adds r0, r5, #0 + adds r1, r4, #0 + bl DisplayItemMessageOnField +_080FE55A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FE560: .4byte 0x080FDA4D + thumb_func_end ItemUseOutOfBattle_PowderJar + + thumb_func_start sub_080FE564 +sub_080FE564: @ 0x080FE564 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl IsPlayerFacingEmptyBerryTreePatch + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080FE5AC + ldr r1, _080FE594 + ldr r0, _080FE598 + str r0, [r1] + ldr r1, _080FE59C + ldr r0, _080FE5A0 + str r0, [r1] + ldr r0, _080FE5A4 + ldr r1, [r0] + ldr r0, _080FE5A8 + str r0, [r1] + adds r0, r4, #0 + bl unknown_ItemMenu_Confirm + b _080FE5BC + .align 2, 0 +_080FE594: .4byte 0x02039DC0 +_080FE598: .4byte 0x080FE5C9 +_080FE59C: .4byte 0x03005B0C +_080FE5A0: .4byte 0x080FD979 +_080FE5A4: .4byte 0x0203CB20 +_080FE5A8: .4byte 0x08085A31 +_080FE5AC: + ldr r0, _080FE5C4 + ldrh r0, [r0] + bl sub_080D6DF8 + adds r1, r0, #0 + adds r0, r4, #0 + bl _call_via_r1 +_080FE5BC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FE5C4: .4byte 0x0203CB48 + thumb_func_end sub_080FE564 + + thumb_func_start sub_080FE5C8 +sub_080FE5C8: @ 0x080FE5C8 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _080FE5F0 + ldrh r0, [r0] + movs r1, #1 + bl RemoveBagItem + bl ScriptContext2_Enable + ldr r0, _080FE5F4 + bl ScriptContext1_SetupScript + adds r0, r4, #0 + bl DestroyTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FE5F0: .4byte 0x0203CB48 +_080FE5F4: .4byte 0x08244E9D + thumb_func_end sub_080FE5C8 + + thumb_func_start ItemUseOutOfBattle_WailmerPail +ItemUseOutOfBattle_WailmerPail: @ 0x080FE5F8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r5, r4, #0 + bl sub_080FE680 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080FE61C + ldr r1, _080FE614 + ldr r0, _080FE618 + b _080FE62C + .align 2, 0 +_080FE614: .4byte 0x02039DC0 +_080FE618: .4byte 0x080FE6D1 +_080FE61C: + bl TryToWaterBerryTree + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080FE640 + ldr r1, _080FE638 + ldr r0, _080FE63C +_080FE62C: + str r0, [r1] + adds r0, r4, #0 + bl SetUpItemUseOnFieldCallback + b _080FE652 + .align 2, 0 +_080FE638: .4byte 0x02039DC0 +_080FE63C: .4byte 0x080FE65D +_080FE640: + ldr r0, _080FE658 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrb r1, [r1, #0xe] + adds r0, r5, #0 + bl DisplayDadsAdviceCannotUseItemMessage +_080FE652: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FE658: .4byte 0x03005B60 + thumb_func_end ItemUseOutOfBattle_WailmerPail + + thumb_func_start sub_080FE65C +sub_080FE65C: @ 0x080FE65C + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl ScriptContext2_Enable + ldr r0, _080FE67C + bl ScriptContext1_SetupScript + adds r0, r4, #0 + bl DestroyTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FE67C: .4byte 0x08244ED8 + thumb_func_end sub_080FE65C + + thumb_func_start sub_080FE680 +sub_080FE680: @ 0x080FE680 + push {r4, lr} + sub sp, #4 + mov r4, sp + adds r4, #2 + mov r0, sp + adds r1, r4, #0 + bl GetXYCoordsOneStepInFrontOfPlayer + bl PlayerGetZCoord + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r0, sp + ldrh r0, [r0] + ldrh r1, [r4] + bl GetEventObjectIdByXYZ + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x10 + beq _080FE6BC + ldr r0, _080FE6C0 + lsls r1, r2, #3 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #5] + cmp r0, #0xe4 + beq _080FE6C4 +_080FE6BC: + movs r0, #0 + b _080FE6C6 + .align 2, 0 +_080FE6C0: .4byte 0x02036FF0 +_080FE6C4: + movs r0, #1 +_080FE6C6: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080FE680 + + thumb_func_start sub_080FE6D0 +sub_080FE6D0: @ 0x080FE6D0 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl ScriptContext2_Enable + ldr r0, _080FE6F0 + bl ScriptContext1_SetupScript + adds r0, r4, #0 + bl DestroyTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FE6F0: .4byte 0x08222A99 + thumb_func_end sub_080FE6D0 + + thumb_func_start ItemUseOutOfBattle_Medicine +ItemUseOutOfBattle_Medicine: @ 0x080FE6F4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080FE708 + ldr r1, _080FE70C + str r1, [r2] + bl SetUpItemUseCallback + pop {r0} + bx r0 + .align 2, 0 +_080FE708: .4byte 0x03006068 +_080FE70C: .4byte 0x081B6229 + thumb_func_end ItemUseOutOfBattle_Medicine + + thumb_func_start ItemUseOutOfBattle_ReduceEV +ItemUseOutOfBattle_ReduceEV: @ 0x080FE710 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080FE724 + ldr r1, _080FE728 + str r1, [r2] + bl SetUpItemUseCallback + pop {r0} + bx r0 + .align 2, 0 +_080FE724: .4byte 0x03006068 +_080FE728: .4byte 0x081B6469 + thumb_func_end ItemUseOutOfBattle_ReduceEV + + thumb_func_start ItemUseOutOfBattle_SacredAsh +ItemUseOutOfBattle_SacredAsh: @ 0x080FE72C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080FE740 + ldr r1, _080FE744 + str r1, [r2] + bl SetUpItemUseCallback + pop {r0} + bx r0 + .align 2, 0 +_080FE740: .4byte 0x03006068 +_080FE744: .4byte 0x081B768D + thumb_func_end ItemUseOutOfBattle_SacredAsh + + thumb_func_start ItemUseOutOfBattle_PPRecovery +ItemUseOutOfBattle_PPRecovery: @ 0x080FE748 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080FE75C + ldr r1, _080FE760 + str r1, [r2] + bl SetUpItemUseCallback + pop {r0} + bx r0 + .align 2, 0 +_080FE75C: .4byte 0x03006068 +_080FE760: .4byte 0x081B67C5 + thumb_func_end ItemUseOutOfBattle_PPRecovery + + thumb_func_start ItemUseOutOfBattle_PPUp +ItemUseOutOfBattle_PPUp: @ 0x080FE764 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080FE778 + ldr r1, _080FE77C + str r1, [r2] + bl SetUpItemUseCallback + pop {r0} + bx r0 + .align 2, 0 +_080FE778: .4byte 0x03006068 +_080FE77C: .4byte 0x081B6979 + thumb_func_end ItemUseOutOfBattle_PPUp + + thumb_func_start ItemUseOutOfBattle_RareCandy +ItemUseOutOfBattle_RareCandy: @ 0x080FE780 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080FE794 + ldr r1, _080FE798 + str r1, [r2] + bl SetUpItemUseCallback + pop {r0} + bx r0 + .align 2, 0 +_080FE794: .4byte 0x03006068 +_080FE798: .4byte 0x081B70B1 + thumb_func_end ItemUseOutOfBattle_RareCandy + + thumb_func_start ItemUseOutOfBattle_TMHM +ItemUseOutOfBattle_TMHM: @ 0x080FE79C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080FE7BC + ldrh r1, [r0] + movs r0, #0xa9 + lsls r0, r0, #1 + cmp r1, r0 + bls _080FE7C8 + ldr r2, _080FE7C0 + ldr r3, _080FE7C4 + adds r0, r4, #0 + movs r1, #1 + bl DisplayItemMessage + b _080FE7D4 + .align 2, 0 +_080FE7BC: .4byte 0x0203CB48 +_080FE7C0: .4byte 0x085C960E +_080FE7C4: .4byte 0x080FE7E5 +_080FE7C8: + ldr r2, _080FE7DC + ldr r3, _080FE7E0 + adds r0, r4, #0 + movs r1, #1 + bl DisplayItemMessage +_080FE7D4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FE7DC: .4byte 0x085C9600 +_080FE7E0: .4byte 0x080FE7E5 + thumb_func_end ItemUseOutOfBattle_TMHM + + thumb_func_start sub_080FE7E4 +sub_080FE7E4: @ 0x080FE7E4 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #2 + bl PlaySE + ldr r1, _080FE808 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080FE80C + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FE808: .4byte 0x03005B60 +_080FE80C: .4byte 0x080FE811 + thumb_func_end sub_080FE7E4 + + thumb_func_start task08_0809AD8C +task08_0809AD8C: @ 0x080FE810 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _080FE858 + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _080FE852 + ldr r4, _080FE85C + ldr r0, _080FE860 + ldrh r0, [r0] + bl ItemIdToBattleMoveId + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0xd + ldr r0, _080FE864 + adds r1, r1, r0 + adds r0, r4, #0 + bl StringCopy + ldr r4, _080FE868 + ldr r1, _080FE86C + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r3, _080FE870 + adds r0, r5, #0 + movs r1, #1 + adds r2, r4, #0 + bl DisplayItemMessage +_080FE852: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FE858: .4byte 0x03002360 +_080FE85C: .4byte 0x02021C40 +_080FE860: .4byte 0x0203CB48 +_080FE864: .4byte 0x082EACC4 +_080FE868: .4byte 0x02021C7C +_080FE86C: .4byte 0x085C961D +_080FE870: .4byte 0x080FE875 + thumb_func_end task08_0809AD8C + + thumb_func_start sub_080FE874 +sub_080FE874: @ 0x080FE874 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080FE888 + movs r1, #6 + bl BagMenu_YesNo + pop {r0} + bx r0 + .align 2, 0 +_080FE888: .4byte 0x0856DCCC + thumb_func_end sub_080FE874 + + thumb_func_start sub_080FE88C +sub_080FE88C: @ 0x080FE88C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080FE8A0 + ldr r1, _080FE8A4 + str r1, [r2] + bl SetUpItemUseCallback + pop {r0} + bx r0 + .align 2, 0 +_080FE8A0: .4byte 0x03006068 +_080FE8A4: .4byte 0x081B6A7D + thumb_func_end sub_080FE88C + + thumb_func_start sub_080FE8A8 +sub_080FE8A8: @ 0x080FE8A8 + push {r4, lr} + ldr r4, _080FE8EC + ldrh r0, [r4] + movs r1, #1 + bl RemoveBagItem + ldrh r0, [r4] + ldr r1, _080FE8F0 + bl CopyItemName + ldr r0, _080FE8F4 + ldr r1, _080FE8F8 + bl StringExpandPlaceholders + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FE8FC + ldrh r0, [r4] + bl ItemId_GetImportance + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_081AB754 + ldrh r0, [r4] + bl ItemId_GetImportance + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl SetInitialScrollAndCursorPositions + b _080FE904 + .align 2, 0 +_080FE8EC: .4byte 0x0203CB48 +_080FE8F0: .4byte 0x02021C54 +_080FE8F4: .4byte 0x02021C7C +_080FE8F8: .4byte 0x085C9644 +_080FE8FC: + bl sub_081C5120 + bl sub_081C51B8 +_080FE904: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080FE8A8 + + thumb_func_start ItemUseOutOfBattle_Repel +ItemUseOutOfBattle_Repel: @ 0x080FE90C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r5, r4, #0 + ldr r0, _080FE930 + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080FE93C + ldr r0, _080FE934 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080FE938 + str r0, [r1] + b _080FE966 + .align 2, 0 +_080FE930: .4byte 0x00004021 +_080FE934: .4byte 0x03005B60 +_080FE938: .4byte 0x080FE975 +_080FE93C: + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FE95C + ldr r2, _080FE954 + ldr r3, _080FE958 + adds r0, r4, #0 + movs r1, #1 + bl DisplayItemMessage + b _080FE966 + .align 2, 0 +_080FE954: .4byte 0x085C9654 +_080FE958: .4byte 0x081AB969 +_080FE95C: + ldr r1, _080FE96C + ldr r2, _080FE970 + adds r0, r5, #0 + bl DisplayItemMessageInBattlePyramid +_080FE966: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FE96C: .4byte 0x085C9654 +_080FE970: .4byte 0x081C5F25 + thumb_func_end ItemUseOutOfBattle_Repel + + thumb_func_start sub_080FE974 +sub_080FE974: @ 0x080FE974 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r4, r1, #3 + ldr r5, _080FE9AC + adds r1, r4, r5 + ldrh r0, [r1, #0x10] + adds r0, #1 + strh r0, [r1, #0x10] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + ble _080FE9A6 + movs r0, #0 + strh r0, [r1, #0x10] + movs r0, #0x2f + bl PlaySE + adds r0, r5, #0 + subs r0, #8 + adds r0, r4, r0 + ldr r1, _080FE9B0 + str r1, [r0] +_080FE9A6: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FE9AC: .4byte 0x03005B68 +_080FE9B0: .4byte 0x080FE9B5 + thumb_func_end sub_080FE974 + + thumb_func_start sub_080FE9B4 +sub_080FE9B4: @ 0x080FE9B4 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r6, r5, #0 + bl IsSEPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FEA12 + ldr r4, _080FE9F8 + ldr r0, _080FE9FC + ldrh r0, [r0] + bl sub_080D6D1C + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl VarSet + bl sub_080FE8A8 + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FEA08 + ldr r2, _080FEA00 + ldr r3, _080FEA04 + adds r0, r5, #0 + movs r1, #1 + bl DisplayItemMessage + b _080FEA12 + .align 2, 0 +_080FE9F8: .4byte 0x00004021 +_080FE9FC: .4byte 0x0203CB48 +_080FEA00: .4byte 0x02021C7C +_080FEA04: .4byte 0x081AB969 +_080FEA08: + ldr r1, _080FEA18 + ldr r2, _080FEA1C + adds r0, r6, #0 + bl DisplayItemMessageInBattlePyramid +_080FEA12: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080FEA18: .4byte 0x02021C7C +_080FEA1C: .4byte 0x081C5F25 + thumb_func_end sub_080FE9B4 + + thumb_func_start sub_080FEA20 +sub_080FEA20: @ 0x080FEA20 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r5, r4, #0 + ldr r0, _080FEA60 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x18] + adds r0, #1 + strh r0, [r1, #0x18] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + ble _080FEA76 + movs r0, #0x75 + bl PlaySE + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FEA6C + ldr r2, _080FEA64 + ldr r3, _080FEA68 + adds r0, r4, #0 + movs r1, #1 + bl DisplayItemMessage + b _080FEA76 + .align 2, 0 +_080FEA60: .4byte 0x03005B60 +_080FEA64: .4byte 0x02021C7C +_080FEA68: .4byte 0x081AB969 +_080FEA6C: + ldr r1, _080FEA7C + ldr r2, _080FEA80 + adds r0, r5, #0 + bl DisplayItemMessageInBattlePyramid +_080FEA76: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FEA7C: .4byte 0x02021C7C +_080FEA80: .4byte 0x081C5F25 + thumb_func_end sub_080FEA20 + + thumb_func_start ItemUseOutOfBattle_BlackWhiteFlute +ItemUseOutOfBattle_BlackWhiteFlute: @ 0x080FEA84 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r4, _080FEAB0 + ldrh r0, [r4] + ldr r1, _080FEAB4 + bl CopyItemName + ldrh r0, [r4] + cmp r0, #0x2b + bne _080FEAC8 + ldr r0, _080FEAB8 + bl FlagSet + ldr r0, _080FEABC + bl FlagClear + ldr r0, _080FEAC0 + ldr r1, _080FEAC4 + bl StringExpandPlaceholders + b _080FEADC + .align 2, 0 +_080FEAB0: .4byte 0x0203CB48 +_080FEAB4: .4byte 0x02021C54 +_080FEAB8: .4byte 0x000008AD +_080FEABC: .4byte 0x000008AE +_080FEAC0: .4byte 0x02021C7C +_080FEAC4: .4byte 0x085C9675 +_080FEAC8: + ldr r0, _080FEAF4 + bl FlagSet + ldr r0, _080FEAF8 + bl FlagClear + ldr r0, _080FEAFC + ldr r1, _080FEB00 + bl StringExpandPlaceholders +_080FEADC: + ldr r1, _080FEB04 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #0x18] + ldr r1, _080FEB08 + str r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FEAF4: .4byte 0x000008AE +_080FEAF8: .4byte 0x000008AD +_080FEAFC: .4byte 0x02021C7C +_080FEB00: .4byte 0x085C9699 +_080FEB04: .4byte 0x03005B60 +_080FEB08: .4byte 0x080FEA21 + thumb_func_end ItemUseOutOfBattle_BlackWhiteFlute + + thumb_func_start task08_080A1C44 +task08_080A1C44: @ 0x080FEB0C + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl ResetInitialPlayerAvatarState + bl StartEscapeRopeFieldEffect + adds r0, r4, #0 + bl DestroyTask + pop {r4} + pop {r0} + bx r0 + thumb_func_end task08_080A1C44 + + thumb_func_start re_escape_rope +re_escape_rope: @ 0x080FEB28 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl Overworld_ResetStateAfterFly + bl sub_080FE8A8 + ldr r1, _080FEB58 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #8] + ldr r1, _080FEB5C + ldr r2, _080FEB60 + adds r0, r4, #0 + bl DisplayItemMessageOnField + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FEB58: .4byte 0x03005B60 +_080FEB5C: .4byte 0x02021C7C +_080FEB60: .4byte 0x080FEB0D + thumb_func_end re_escape_rope + + thumb_func_start CanUseEscapeRopeOnCurrMap +CanUseEscapeRopeOnCurrMap: @ 0x080FEB64 + push {lr} + ldr r0, _080FEB78 + ldrb r1, [r0, #0x1a] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _080FEB7C + movs r0, #0 + b _080FEB7E + .align 2, 0 +_080FEB78: .4byte 0x02036FB8 +_080FEB7C: + movs r0, #1 +_080FEB7E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CanUseEscapeRopeOnCurrMap + + thumb_func_start ItemUseOutOfBattle_EscapeRope +ItemUseOutOfBattle_EscapeRope: @ 0x080FEB84 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl CanUseEscapeRopeOnCurrMap + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080FEBAC + ldr r1, _080FEBA4 + ldr r0, _080FEBA8 + str r0, [r1] + adds r0, r4, #0 + bl SetUpItemUseOnFieldCallback + b _080FEBBE + .align 2, 0 +_080FEBA4: .4byte 0x02039DC0 +_080FEBA8: .4byte 0x080FEB29 +_080FEBAC: + ldr r0, _080FEBC4 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrb r1, [r1, #0xe] + adds r0, r4, #0 + bl DisplayDadsAdviceCannotUseItemMessage +_080FEBBE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FEBC4: .4byte 0x03005B60 + thumb_func_end ItemUseOutOfBattle_EscapeRope + + thumb_func_start ItemUseOutOfBattle_EvolutionStone +ItemUseOutOfBattle_EvolutionStone: @ 0x080FEBC8 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080FEBDC + ldr r1, _080FEBE0 + str r1, [r2] + bl SetUpItemUseCallback + pop {r0} + bx r0 + .align 2, 0 +_080FEBDC: .4byte 0x03006068 +_080FEBE0: .4byte 0x081B7919 + thumb_func_end ItemUseOutOfBattle_EvolutionStone + + thumb_func_start ItemUseInBattle_PokeBall +ItemUseInBattle_PokeBall: @ 0x080FEBE4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r5, r4, #0 + bl IsPlayerPartyAndPokemonStorageFull + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FEC20 + ldr r0, _080FEC14 + ldrh r0, [r0] + movs r1, #1 + bl RemoveBagItem + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FEC18 + adds r0, r4, #0 + bl unknown_ItemMenu_Confirm + b _080FEC4A + .align 2, 0 +_080FEC14: .4byte 0x0203CB48 +_080FEC18: + adds r0, r4, #0 + bl sub_081C5310 + b _080FEC4A +_080FEC20: + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FEC40 + ldr r2, _080FEC38 + ldr r3, _080FEC3C + adds r0, r4, #0 + movs r1, #1 + bl DisplayItemMessage + b _080FEC4A + .align 2, 0 +_080FEC38: .4byte 0x085C96BD +_080FEC3C: .4byte 0x081AB969 +_080FEC40: + ldr r1, _080FEC50 + ldr r2, _080FEC54 + adds r0, r5, #0 + bl DisplayItemMessageInBattlePyramid +_080FEC4A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FEC50: .4byte 0x085C96BD +_080FEC54: .4byte 0x081C5F25 + thumb_func_end ItemUseInBattle_PokeBall + + thumb_func_start sub_080FEC58 +sub_080FEC58: @ 0x080FEC58 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r5, r4, #0 + ldr r0, _080FEC80 + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _080FEC8A + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FEC84 + adds r0, r4, #0 + bl unknown_ItemMenu_Confirm + b _080FEC8A + .align 2, 0 +_080FEC80: .4byte 0x03002360 +_080FEC84: + adds r0, r5, #0 + bl sub_081C5310 +_080FEC8A: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_080FEC58 + + thumb_func_start sub_080FEC90 +sub_080FEC90: @ 0x080FEC90 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r6, r5, #0 + ldr r0, _080FECE0 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x18] + adds r0, #1 + strh r0, [r1, #0x18] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + ble _080FECFC + movs r0, #1 + bl PlaySE + ldr r4, _080FECE4 + ldrh r0, [r4] + movs r1, #1 + bl RemoveBagItem + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FECEC + ldrh r0, [r4] + bl sub_0806CA3C + adds r2, r0, #0 + ldr r3, _080FECE8 + adds r0, r5, #0 + movs r1, #1 + bl DisplayItemMessage + b _080FECFC + .align 2, 0 +_080FECE0: .4byte 0x03005B60 +_080FECE4: .4byte 0x0203CB48 +_080FECE8: .4byte 0x080FEC59 +_080FECEC: + ldrh r0, [r4] + bl sub_0806CA3C + adds r1, r0, #0 + ldr r2, _080FED04 + adds r0, r6, #0 + bl DisplayItemMessageInBattlePyramid +_080FECFC: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080FED04: .4byte 0x080FEC59 + thumb_func_end sub_080FEC90 + + thumb_func_start ItemUseInBattle_StatIncrease +ItemUseInBattle_StatIncrease: @ 0x080FED08 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _080FED50 + ldr r0, _080FED54 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r2, [r0] + movs r0, #0x64 + muls r0, r2, r0 + ldr r1, _080FED58 + adds r0, r0, r1 + ldr r1, _080FED5C + ldrh r1, [r1] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r3, #0 + bl ExecuteTableBasedItemEffect + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _080FED7C + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FED68 + ldr r2, _080FED60 + ldr r3, _080FED64 + adds r0, r4, #0 + movs r1, #1 + bl DisplayItemMessage + b _080FED8C + .align 2, 0 +_080FED50: .4byte 0x02023D12 +_080FED54: .4byte 0x0202415C +_080FED58: .4byte 0x02024190 +_080FED5C: .4byte 0x0203CB48 +_080FED60: .4byte 0x085C9AF7 +_080FED64: .4byte 0x081AB969 +_080FED68: + ldr r1, _080FED74 + ldr r2, _080FED78 + adds r0, r4, #0 + bl DisplayItemMessageInBattlePyramid + b _080FED8C + .align 2, 0 +_080FED74: .4byte 0x085C9AF7 +_080FED78: .4byte 0x081C5F25 +_080FED7C: + ldr r0, _080FED94 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080FED98 + str r0, [r1] + strh r2, [r1, #0x18] +_080FED8C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FED94: .4byte 0x03005B60 +_080FED98: .4byte 0x080FEC91 + thumb_func_end ItemUseInBattle_StatIncrease + + thumb_func_start sub_080FED9C +sub_080FED9C: @ 0x080FED9C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FEDC4 + ldr r0, _080FEDBC + ldr r1, [r0] + ldr r0, _080FEDC0 + str r0, [r1] + adds r0, r4, #0 + bl unknown_ItemMenu_Confirm + b _080FEDD2 + .align 2, 0 +_080FEDBC: .4byte 0x0203CB20 +_080FEDC0: .4byte 0x081B8691 +_080FEDC4: + ldr r0, _080FEDD8 + ldr r1, [r0] + ldr r0, _080FEDDC + str r0, [r1] + adds r0, r4, #0 + bl sub_081C5310 +_080FEDD2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FEDD8: .4byte 0x0203CBF8 +_080FEDDC: .4byte 0x081B8691 + thumb_func_end sub_080FED9C + + thumb_func_start ItemUseInBattle_Medicine +ItemUseInBattle_Medicine: @ 0x080FEDE0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080FEDF4 + ldr r1, _080FEDF8 + str r1, [r2] + bl sub_080FED9C + pop {r0} + bx r0 + .align 2, 0 +_080FEDF4: .4byte 0x03006068 +_080FEDF8: .4byte 0x081B6229 + thumb_func_end ItemUseInBattle_Medicine + + thumb_func_start sub_080FEDFC +sub_080FEDFC: @ 0x080FEDFC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080FEE10 + ldr r1, _080FEE14 + str r1, [r2] + bl sub_080FED9C + pop {r0} + bx r0 + .align 2, 0 +_080FEE10: .4byte 0x03006068 +_080FEE14: .4byte 0x081B768D + thumb_func_end sub_080FEDFC + + thumb_func_start ItemUseInBattle_PPRecovery +ItemUseInBattle_PPRecovery: @ 0x080FEE18 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080FEE2C + ldr r1, _080FEE30 + str r1, [r2] + bl sub_080FED9C + pop {r0} + bx r0 + .align 2, 0 +_080FEE2C: .4byte 0x03006068 +_080FEE30: .4byte 0x081B67C5 + thumb_func_end ItemUseInBattle_PPRecovery + + thumb_func_start ItemUseInBattle_Escape +ItemUseInBattle_Escape: @ 0x080FEE34 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080FEE64 + ldr r0, [r0] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + bne _080FEE84 + bl sub_080FE8A8 + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FEE70 + ldr r2, _080FEE68 + ldr r3, _080FEE6C + adds r0, r4, #0 + movs r1, #1 + bl DisplayItemMessage + b _080FEE96 + .align 2, 0 +_080FEE64: .4byte 0x02022C90 +_080FEE68: .4byte 0x02021C7C +_080FEE6C: .4byte 0x081AB6A5 +_080FEE70: + ldr r1, _080FEE7C + ldr r2, _080FEE80 + adds r0, r4, #0 + bl DisplayItemMessageInBattlePyramid + b _080FEE96 + .align 2, 0 +_080FEE7C: .4byte 0x02021C7C +_080FEE80: .4byte 0x081C5311 +_080FEE84: + ldr r0, _080FEE9C + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrb r1, [r1, #0xe] + adds r0, r4, #0 + bl DisplayDadsAdviceCannotUseItemMessage +_080FEE96: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FEE9C: .4byte 0x03005B60 + thumb_func_end ItemUseInBattle_Escape + + thumb_func_start ItemUseOutOfBattle_EnigmaBerry +ItemUseOutOfBattle_EnigmaBerry: @ 0x080FEEA0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080FEEC4 + ldrh r0, [r0] + bl GetItemEffectType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, #1 + cmp r0, #0x14 + bls _080FEEBA + b _080FEFAC +_080FEEBA: + lsls r0, r0, #2 + ldr r1, _080FEEC8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080FEEC4: .4byte 0x0203CB48 +_080FEEC8: .4byte 0x080FEECC +_080FEECC: @ jump table + .4byte _080FEF58 @ case 0 + .4byte _080FEF20 @ case 1 + .4byte _080FEF20 @ case 2 + .4byte _080FEF20 @ case 3 + .4byte _080FEF20 @ case 4 + .4byte _080FEF20 @ case 5 + .4byte _080FEF20 @ case 6 + .4byte _080FEFAC @ case 7 + .4byte _080FEFAC @ case 8 + .4byte _080FEF3C @ case 9 + .4byte _080FEF20 @ case 10 + .4byte _080FEF20 @ case 11 + .4byte _080FEF20 @ case 12 + .4byte _080FEF20 @ case 13 + .4byte _080FEF20 @ case 14 + .4byte _080FEF20 @ case 15 + .4byte _080FEF20 @ case 16 + .4byte _080FEFAC @ case 17 + .4byte _080FEF74 @ case 18 + .4byte _080FEF74 @ case 19 + .4byte _080FEF90 @ case 20 +_080FEF20: + ldr r0, _080FEF38 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #1 + strh r0, [r1, #0x10] + adds r0, r4, #0 + bl ItemUseOutOfBattle_Medicine + b _080FEFC0 + .align 2, 0 +_080FEF38: .4byte 0x03005B60 +_080FEF3C: + ldr r0, _080FEF54 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #1 + strh r0, [r1, #0x10] + adds r0, r4, #0 + bl ItemUseOutOfBattle_SacredAsh + b _080FEFC0 + .align 2, 0 +_080FEF54: .4byte 0x03005B60 +_080FEF58: + ldr r0, _080FEF70 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #1 + strh r0, [r1, #0x10] + adds r0, r4, #0 + bl ItemUseOutOfBattle_RareCandy + b _080FEFC0 + .align 2, 0 +_080FEF70: .4byte 0x03005B60 +_080FEF74: + ldr r0, _080FEF8C + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #1 + strh r0, [r1, #0x10] + adds r0, r4, #0 + bl ItemUseOutOfBattle_PPUp + b _080FEFC0 + .align 2, 0 +_080FEF8C: .4byte 0x03005B60 +_080FEF90: + ldr r0, _080FEFA8 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #1 + strh r0, [r1, #0x10] + adds r0, r4, #0 + bl ItemUseOutOfBattle_PPRecovery + b _080FEFC0 + .align 2, 0 +_080FEFA8: .4byte 0x03005B60 +_080FEFAC: + ldr r0, _080FEFC8 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #4 + strh r0, [r1, #0x10] + adds r0, r4, #0 + bl ItemUseOutOfBattle_CannotUse +_080FEFC0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FEFC8: .4byte 0x03005B60 + thumb_func_end ItemUseOutOfBattle_EnigmaBerry + + thumb_func_start ItemUseInBattle_EnigmaBerry +ItemUseInBattle_EnigmaBerry: @ 0x080FEFCC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080FEFEC + ldrh r0, [r0] + bl GetItemEffectType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x15 + bhi _080FF064 + lsls r0, r0, #2 + ldr r1, _080FEFF0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080FEFEC: .4byte 0x0203CB48 +_080FEFF0: .4byte 0x080FEFF4 +_080FEFF4: @ jump table + .4byte _080FF04C @ case 0 + .4byte _080FF064 @ case 1 + .4byte _080FF054 @ case 2 + .4byte _080FF054 @ case 3 + .4byte _080FF054 @ case 4 + .4byte _080FF054 @ case 5 + .4byte _080FF054 @ case 6 + .4byte _080FF054 @ case 7 + .4byte _080FF054 @ case 8 + .4byte _080FF054 @ case 9 + .4byte _080FF064 @ case 10 + .4byte _080FF054 @ case 11 + .4byte _080FF064 @ case 12 + .4byte _080FF064 @ case 13 + .4byte _080FF064 @ case 14 + .4byte _080FF064 @ case 15 + .4byte _080FF064 @ case 16 + .4byte _080FF064 @ case 17 + .4byte _080FF064 @ case 18 + .4byte _080FF064 @ case 19 + .4byte _080FF064 @ case 20 + .4byte _080FF05C @ case 21 +_080FF04C: + adds r0, r4, #0 + bl ItemUseInBattle_StatIncrease + b _080FF06A +_080FF054: + adds r0, r4, #0 + bl ItemUseInBattle_Medicine + b _080FF06A +_080FF05C: + adds r0, r4, #0 + bl ItemUseInBattle_PPRecovery + b _080FF06A +_080FF064: + adds r0, r4, #0 + bl ItemUseOutOfBattle_CannotUse +_080FF06A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end ItemUseInBattle_EnigmaBerry + + thumb_func_start ItemUseOutOfBattle_CannotUse +ItemUseOutOfBattle_CannotUse: @ 0x080FF070 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080FF08C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldrb r1, [r1, #0xe] + bl DisplayDadsAdviceCannotUseItemMessage + pop {r0} + bx r0 + .align 2, 0 +_080FF08C: .4byte 0x03005B60 + thumb_func_end ItemUseOutOfBattle_CannotUse + diff --git a/asm/landmark.s b/asm/landmark.s new file mode 100644 index 0000000..d1a4747 --- /dev/null +++ b/asm/landmark.s @@ -0,0 +1,128 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start GetLandmarkName +GetLandmarkName: @ 0x08145DB4 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + bl GetLandmarks + adds r4, r0, #0 + cmp r4, #0 + bne _08145DD0 +_08145DCC: + movs r0, #0 + b _08145E02 +_08145DD0: + ldr r6, _08145DD4 + b _08145DE6 + .align 2, 0 +_08145DD4: .4byte 0x0000FFFF +_08145DD8: + subs r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_08145DDE: + adds r4, #4 + ldr r0, [r4] + cmp r0, #0 + beq _08145DCC +_08145DE6: + ldr r1, [r4] + ldrh r0, [r1, #4] + cmp r0, r6 + beq _08145DFA + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08145DDE +_08145DFA: + cmp r5, #0 + bne _08145DD8 + ldr r0, [r4] + ldr r0, [r0] +_08145E02: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end GetLandmarkName + + thumb_func_start GetLandmarks +GetLandmarks: @ 0x08145E08 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + movs r2, #0 + ldr r0, _08145E4C + ldrb r1, [r0] + adds r4, r0, #0 + cmp r1, #0xd5 + beq _08145E78 + adds r1, r4, #0 +_08145E20: + lsls r0, r2, #3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, r3 + bhi _08145E78 + cmp r0, r3 + beq _08145E3E + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + lsls r0, r2, #3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0xd5 + bne _08145E20 +_08145E3E: + lsls r0, r2, #3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0xd5 + bne _08145E58 + b _08145E78 + .align 2, 0 +_08145E4C: .4byte 0x08598C68 +_08145E50: + adds r0, r4, #4 + adds r0, r1, r0 + ldr r0, [r0] + b _08145E7A +_08145E58: + cmp r0, r3 + bne _08145E78 + ldr r5, _08145E80 +_08145E5E: + lsls r1, r2, #3 + adds r0, r1, r5 + ldrb r0, [r0, #1] + cmp r0, r6 + beq _08145E50 + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + lsls r0, r2, #3 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, r3 + beq _08145E5E +_08145E78: + movs r0, #0 +_08145E7A: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08145E80: .4byte 0x08598C68 + thumb_func_end GetLandmarks + diff --git a/asm/libagbsyscall.s b/asm/libagbsyscall.s index e35abcc..0fa23fd 100644 --- a/asm/libagbsyscall.s +++ b/asm/libagbsyscall.s @@ -1,7 +1,7 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - .text - .syntax unified +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified thumb_func_start ArcTan2 ArcTan2: @ 0x082959B0 @@ -89,7 +89,7 @@ SoftReset: @ 0x082959E4 movs r0, r0 .align 2, 0 _082959F4: .4byte 0x04000208 -_082959F8: .4byte gUnknown_3007F00 +_082959F8: .4byte 0x03007F00 thumb_func_end SoftReset thumb_func_start Sqrt @@ -105,3 +105,4 @@ VBlankIntrWait: @ 0x08295A00 bx lr .align 2, 0 thumb_func_end VBlankIntrWait + diff --git a/asm/libc.s b/asm/libc.s index f66e53e..2d04fe5 100644 --- a/asm/libc.s +++ b/asm/libc.s @@ -1,7 +1,7 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - .text - .syntax unified +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified thumb_func_start memcpy memcpy: @ 0x08297D0C @@ -236,7 +236,7 @@ vsprintf: @ 0x08297E68 pop {r4, r5, pc} .align 2, 0 _08297E94: .4byte 0x7FFFFFFF -_08297E98: .4byte gUnknown_203CF1C +_08297E98: .4byte 0x0203CF1C thumb_func_end vsprintf thumb_func_start sub_08297E9C @@ -389,7 +389,7 @@ _08297F9A: bl _08298E94 .align 2, 0 _08297FAC: .4byte 0xFFFFFDE0 -_08297FB0: .4byte gUnknown_203CF1C +_08297FB0: .4byte 0x0203CF1C _08297FB4: movs r0, #0x1a ldr r1, [sp, #0x1e0] @@ -520,10 +520,10 @@ _082980A0: ldr r0, [r0] mov pc, r0 .align 2, 0 -_082980AC: .4byte gUnknown_203CF1C -_082980B0: .4byte gUnknown_203CF20 +_082980AC: .4byte 0x0203CF1C +_082980B0: .4byte 0x0203CF20 _082980B4: .4byte 0x000001C9 -_082980B8: .4byte _082980BC +_082980B8: .4byte 0x082980BC _082980BC: @ jump table .4byte _08298220 @ case 0 .4byte _08298752 @ case 1 @@ -876,7 +876,7 @@ _082983DA: _082983E4: .4byte 0x00000000 _082983E8: .4byte 0x00000000 _082983EC: .4byte 0x000001C9 -_082983F0: .4byte gUnknown_890F17C +_082983F0: .4byte 0x0890F17C _082983F4: ldr r0, [sp, #0x1fc] ldr r1, [sp, #0x200] @@ -888,7 +888,7 @@ _082983F4: movs r3, #3 b _0829876A .align 2, 0 -_08298408: .4byte gUnknown_890F180 +_08298408: .4byte 0x0890F180 _0829840C: movs r0, #0x80 lsls r0, r0, #1 @@ -1104,7 +1104,7 @@ _08298570: str r1, [sp, #0x1e8] b _0829865E .align 2, 0 -_0829858C: .4byte gUnknown_890F184 +_0829858C: .4byte 0x0890F184 _08298590: movs r2, #4 add sl, r2 @@ -1134,7 +1134,7 @@ _082985C0: adds r3, r6, #0 b _08298762 .align 2, 0 -_082985C4: .4byte gUnknown_890F198 +_082985C4: .4byte 0x0890F198 _082985C8: mov r0, r8 bl strlen @@ -1181,7 +1181,7 @@ _0829860E: str r0, [sp, #0x210] b _0829861C .align 2, 0 -_08298614: .4byte gUnknown_890F1A0 +_08298614: .4byte 0x0890F1A0 _08298618: ldr r1, _0829863C str r1, [sp, #0x210] @@ -1203,7 +1203,7 @@ _0829861C: ldrh r4, [r0] b _0829864A .align 2, 0 -_0829863C: .4byte gUnknown_890F184 +_0829863C: .4byte 0x0890F184 _08298640: movs r4, #4 add sl, r4 @@ -1262,7 +1262,7 @@ _0829868C: b _0829876A .align 2, 0 _082986A8: .4byte 0x000001C9 -_082986AC: .4byte gUnknown_890F1B4 +_082986AC: .4byte 0x0890F1B4 _082986B0: adds r7, r5, #0 adds r7, #8 @@ -1487,7 +1487,7 @@ _08298820: mov r1, sb b _08298884 .align 2, 0 -_0829884C: .4byte gUnknown_890F15C +_0829884C: .4byte 0x0890F15C _08298850: .4byte 0x000001C9 _08298854: movs r2, #2 @@ -1673,7 +1673,7 @@ _082989A6: ldr r0, [sp, #0x1e0] b _08298DBC .align 2, 0 -_082989AC: .4byte gUnknown_890F16C +_082989AC: .4byte 0x0890F16C _082989B0: ldr r2, [sp, #0x1e8] cmp r2, #0x65 @@ -1789,8 +1789,8 @@ _08298A74: .align 2, 0 _08298A80: .4byte 0x00000000 _08298A84: .4byte 0x00000000 -_08298A88: .4byte gUnknown_890F1D0 -_08298A8C: .4byte gUnknown_890F16C +_08298A88: .4byte 0x0890F1D0 +_08298A8C: .4byte 0x0890F16C _08298A90: add r6, sp, #0x1d4 ldr r2, [r6] @@ -1910,8 +1910,8 @@ _08298B52: str r0, [r4, #4] b _08298DB4 .align 2, 0 -_08298B70: .4byte gUnknown_890F1D0 -_08298B74: .4byte gUnknown_890F16C +_08298B70: .4byte 0x0890F1D0 +_08298B74: .4byte 0x0890F16C _08298B78: add r4, sp, #0x1d8 ldr r1, [r4] @@ -2010,8 +2010,8 @@ _08298C1E: adds r0, #1 b _08298DAA .align 2, 0 -_08298C2C: .4byte gUnknown_890F16C -_08298C30: .4byte gUnknown_890F1D4 +_08298C2C: .4byte 0x0890F16C +_08298C30: .4byte 0x0890F1D4 _08298C34: mov r0, r8 str r0, [r5] @@ -2066,7 +2066,7 @@ _08298C8C: subs r1, r1, r0 b _08298DA2 .align 2, 0 -_08298C98: .4byte gUnknown_890F1D4 +_08298C98: .4byte 0x0890F1D4 _08298C9C: add r4, sp, #0x1d8 ldr r0, [r4] @@ -2178,7 +2178,7 @@ _08298D54: ldr r0, [sp, #0x1e0] b _08298D92 .align 2, 0 -_08298D70: .4byte gUnknown_890F16C +_08298D70: .4byte 0x0890F16C _08298D74: mov r2, r8 str r2, [r5] @@ -2308,7 +2308,7 @@ _08298E56: add r5, sp, #0x28 bl _08297FFC .align 2, 0 -_08298E64: .4byte gUnknown_890F15C +_08298E64: .4byte 0x0890F15C _08298E68: mov r1, sb ldr r0, [r1, #8] @@ -2574,7 +2574,7 @@ _08299026: rsbs r0, r0, #0 b _082990B2 .align 2, 0 -_08299044: .4byte gUnknown_203CF1C +_08299044: .4byte 0x0203CF1C _08299048: movs r0, #4 ands r0, r1 @@ -2909,9 +2909,9 @@ _082992A0: .align 2, 0 _082992A8: .4byte 0x7FF00000 _082992AC: .4byte 0x0000270F -_082992B0: .4byte gUnknown_890F1E4 +_082992B0: .4byte 0x0890F1E4 _082992B4: .4byte 0x000FFFFF -_082992B8: .4byte gUnknown_890F1D8 +_082992B8: .4byte 0x0890F1D8 _082992BC: ldr r3, _082992EC ldr r2, _082992E8 @@ -2936,7 +2936,7 @@ _082992E0: .align 2, 0 _082992E8: .4byte 0x00000000 _082992EC: .4byte 0x00000000 -_082992F0: .4byte gUnknown_890F1E8 +_082992F0: .4byte 0x0890F1E8 _082992F4: add r0, sp, #8 str r0, [sp] @@ -3117,7 +3117,7 @@ _08299478: .4byte 0x3FD34413 _0829947C: .4byte 0x509F79FB _08299480: .4byte 0x00000000 _08299484: .4byte 0x00000000 -_08299488: .4byte gUnknown_890F234 +_08299488: .4byte 0x0890F234 _0829948C: rsbs r4, r4, #0 str r4, [sp, #0x10] @@ -3169,7 +3169,7 @@ _082994D0: ldr r0, [r0] mov pc, r0 .align 2, 0 -_082994E4: .4byte _082994E8 +_082994E4: .4byte 0x082994E8 _082994E8: @ jump table .4byte _08299500 @ case 0 .4byte _08299500 @ case 1 @@ -3324,8 +3324,8 @@ _082995FC: str r1, [sp, #0x44] b _08299664 .align 2, 0 -_08299610: .4byte gUnknown_890F234 -_08299614: .4byte gUnknown_890F2FC +_08299610: .4byte 0x0890F234 +_08299614: .4byte 0x0890F2FC _08299618: ldr r2, [sp, #0x24] rsbs r6, r2, #0 @@ -3446,8 +3446,8 @@ _082996F0: _0829970A: b _082998E0 .align 2, 0 -_0829970C: .4byte gUnknown_890F234 -_08299710: .4byte gUnknown_890F2FC +_0829970C: .4byte 0x0890F234 +_08299710: .4byte 0x0890F2FC _08299714: .4byte 0x3FF00000 _08299718: .4byte 0x00000000 _0829971C: .4byte 0x40240000 @@ -3480,7 +3480,7 @@ _08299738: mov r8, r1 b _08299794 .align 2, 0 -_08299768: .4byte gUnknown_890F234 +_08299768: .4byte 0x0890F234 _0829976C: .4byte 0x3FE00000 _08299770: .4byte 0x00000000 _08299774: @@ -3566,7 +3566,7 @@ _08299808: mov r8, r2 b _08299840 .align 2, 0 -_08299828: .4byte gUnknown_890F234 +_08299828: .4byte 0x0890F234 _0829982C: movs r3, #1 add r8, r3 @@ -3709,7 +3709,7 @@ _0829992E: _0829994C: b _08299C6A .align 2, 0 -_08299950: .4byte gUnknown_890F234 +_08299950: .4byte 0x0890F234 _08299954: .4byte 0x40140000 _08299958: .4byte 0x00000000 _0829995C: @@ -4474,8 +4474,8 @@ fflush: @ 0x08299F08 bl _fwalk b _08299F9A .align 2, 0 -_08299F1C: .4byte gUnknown_203CF1C -_08299F20: .4byte fflush +_08299F1C: .4byte 0x0203CF1C +_08299F20: .4byte 0x08299F09 _08299F24: ldr r0, [r4, #0x54] cmp r0, #0 @@ -4510,7 +4510,7 @@ _08299F3E: ldr r0, [r4, #0x14] b _08299F78 .align 2, 0 -_08299F64: .4byte gUnknown_203CF1C +_08299F64: .4byte 0x0203CF1C _08299F68: movs r0, #0x40 ldrh r1, [r4, #0xc] @@ -4567,10 +4567,10 @@ sub_08299F9C: @ 0x08299F9C str r3, [r0, #0x54] pop {r4, pc} .align 2, 0 -_08299FC4: .4byte __sread -_08299FC8: .4byte __swrite -_08299FCC: .4byte __sseek -_08299FD0: .4byte __sclose +_08299FC4: .4byte 0x0829B6C5 +_08299FC8: .4byte 0x0829B6F9 +_08299FCC: .4byte 0x0829B739 +_08299FD0: .4byte 0x0829B779 thumb_func_end sub_08299F9C thumb_func_start __sfmoreglue @@ -4674,7 +4674,7 @@ _cleanup_r: @ 0x0829A078 bl _fwalk pop {pc} .align 2, 0 -_0829A084: .4byte fflush +_0829A084: .4byte 0x08299F09 thumb_func_end _cleanup_r thumb_func_start _cleanup @@ -4685,7 +4685,7 @@ _cleanup: @ 0x0829A088 bl _cleanup_r pop {pc} .align 2, 0 -_0829A094: .4byte gUnknown_203CF1C +_0829A094: .4byte 0x0203CF1C thumb_func_end _cleanup thumb_func_start __sinit @@ -4734,7 +4734,7 @@ __sinit: @ 0x0829A098 str r4, [r0] pop {r4, r5, pc} .align 2, 0 -_0829A0F4: .4byte _cleanup_r +_0829A0F4: .4byte 0x0829A079 thumb_func_end __sinit thumb_func_start _free_r @@ -4797,9 +4797,9 @@ _0829A162: bl __malloc_unlock b _0829A2AE .align 2, 0 -_0829A16C: .4byte gUnknown_203CF34 -_0829A170: .4byte gUnknown_203D33C -_0829A174: .4byte gUnknown_203D340 +_0829A16C: .4byte 0x0203CF34 +_0829A170: .4byte 0x0203D33C +_0829A174: .4byte 0x0203D340 _0829A178: str r4, [r7, #4] movs r0, #0 @@ -4847,7 +4847,7 @@ _0829A1A4: str r1, [r5, #8] b _0829A1DC .align 2, 0 -_0829A1D0: .4byte gUnknown_203CF3C +_0829A1D0: .4byte 0x0203CF3C _0829A1D4: ldr r3, [r7, #0xc] adds r2, r1, #0 @@ -4880,7 +4880,7 @@ _0829A1DC: b _0829A2A0 .align 2, 0 _0829A20C: .4byte 0x000001FF -_0829A210: .4byte gUnknown_203CF34 +_0829A210: .4byte 0x0203CF34 _0829A214: lsrs r1, r6, #9 cmp r1, #0 @@ -4944,7 +4944,7 @@ _0829A266: str r0, [r7, #4] b _0829A2A0 .align 2, 0 -_0829A284: .4byte gUnknown_203CF34 +_0829A284: .4byte 0x0203CF34 _0829A288: ldr r0, [r2, #4] movs r1, #4 @@ -5043,10 +5043,10 @@ _0829A336: movs r0, #0 b _0829A36C .align 2, 0 -_0829A340: .4byte gUnknown_203CF34 +_0829A340: .4byte 0x0203CF34 _0829A344: .4byte 0x00000FEF -_0829A348: .4byte gUnknown_203D350 -_0829A34C: .4byte gUnknown_203D344 +_0829A348: .4byte 0x0203D350 +_0829A34C: .4byte 0x0203D344 _0829A350: mov r1, r8 ldr r2, [r1, #8] @@ -5066,7 +5066,7 @@ _0829A36C: mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 -_0829A374: .4byte gUnknown_203D350 +_0829A374: .4byte 0x0203D350 thumb_func_end _malloc_trim_r thumb_func_start __sfvwrite @@ -5433,8 +5433,8 @@ _setlocale_r: @ 0x0829A5E4 movs r0, #0 b _0829A61A .align 2, 0 -_0829A60C: .4byte gUnknown_890F224 -_0829A610: .4byte gUnknown_890F21C +_0829A60C: .4byte 0x0890F224 +_0829A610: .4byte 0x0890F21C _0829A614: str r6, [r5, #0x30] str r4, [r5, #0x34] @@ -5443,7 +5443,7 @@ _0829A618: _0829A61A: pop {r4, r5, r6, pc} .align 2, 0 -_0829A61C: .4byte gUnknown_890F224 +_0829A61C: .4byte 0x0890F224 thumb_func_end _setlocale_r thumb_func_start _localeconv_r @@ -5451,7 +5451,7 @@ _localeconv_r: @ 0x0829A620 ldr r0, _0829A624 bx lr .align 2, 0 -_0829A624: .4byte gUnknown_890F1EC +_0829A624: .4byte 0x0890F1EC thumb_func_end _localeconv_r thumb_func_start setlocale @@ -5465,7 +5465,7 @@ setlocale: @ 0x0829A628 bl _setlocale_r pop {pc} .align 2, 0 -_0829A63C: .4byte gUnknown_203CF1C +_0829A63C: .4byte 0x0203CF1C thumb_func_end setlocale thumb_func_start localeconv @@ -5476,7 +5476,7 @@ localeconv: @ 0x0829A640 bl _localeconv_r pop {pc} .align 2, 0 -_0829A64C: .4byte gUnknown_203CF1C +_0829A64C: .4byte 0x0203CF1C thumb_func_end localeconv thumb_func_start __smakebuf @@ -5539,7 +5539,7 @@ _0829A69E: str r6, [r4, #0x4c] b _0829A6D0 .align 2, 0 -_0829A6C0: .4byte __sseek +_0829A6C0: .4byte 0x0829B739 _0829A6C4: movs r2, #0x80 lsls r2, r2, #4 @@ -5594,7 +5594,7 @@ _0829A722: add sp, #0x3c pop {r4, r5, r6, r7, pc} .align 2, 0 -_0829A728: .4byte _cleanup_r +_0829A728: .4byte 0x0829A079 thumb_func_end __smakebuf thumb_func_start sub_0829A72C @@ -5659,12 +5659,12 @@ _0829A786: str r2, [r1, #4] b _0829A858 .align 2, 0 -_0829A7A0: .4byte gUnknown_203CF34 -_0829A7A4: .4byte gUnknown_203D340 -_0829A7A8: .4byte gUnknown_203D344 +_0829A7A0: .4byte 0x0203CF34 +_0829A7A4: .4byte 0x0203D340 +_0829A7A8: .4byte 0x0203D344 _0829A7AC: .4byte 0x0000100F _0829A7B0: .4byte 0xFFFFF000 -_0829A7B4: .4byte gUnknown_203D350 +_0829A7B4: .4byte 0x0203D350 _0829A7B8: mov r3, sl ldr r0, [r3] @@ -5725,8 +5725,8 @@ _0829A7E0: str r3, [r5, #4] b _0829A870 .align 2, 0 -_0829A828: .4byte gUnknown_203D350 -_0829A82C: .4byte gUnknown_203CF34 +_0829A828: .4byte 0x0203D350 +_0829A82C: .4byte 0x0203CF34 _0829A830: subs r7, #0xc movs r0, #8 @@ -5769,9 +5769,9 @@ _0829A870: mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 -_0829A87C: .4byte gUnknown_203D350 -_0829A880: .4byte gUnknown_203D348 -_0829A884: .4byte gUnknown_203D34C +_0829A87C: .4byte 0x0203D350 +_0829A880: .4byte 0x0203D348 +_0829A884: .4byte 0x0203D34C thumb_func_end sub_0829A72C thumb_func_start _malloc_r @@ -5833,7 +5833,7 @@ _0829A8D6: b _0829AC2E .align 2, 0 _0829A8F4: .4byte 0x000001F7 -_0829A8F8: .4byte gUnknown_203CF34 +_0829A8F8: .4byte 0x0203CF34 _0829A8FC: movs r0, #2 add ip, r0 @@ -5912,7 +5912,7 @@ _0829A960: add ip, r0 b _0829A9AA .align 2, 0 -_0829A984: .4byte gUnknown_203CF34 +_0829A984: .4byte 0x0203CF34 _0829A988: cmp r3, #0 blt _0829A98E @@ -5968,7 +5968,7 @@ _0829A9BA: str r3, [r0] b _0829AC2E .align 2, 0 -_0829A9EC: .4byte gUnknown_203CF3C +_0829A9EC: .4byte 0x0203CF3C _0829A9F0: mov r7, sl str r7, [r7, #0xc] @@ -6064,7 +6064,7 @@ _0829AA7A: str r0, [r7, #4] b _0829AAB4 .align 2, 0 -_0829AA98: .4byte gUnknown_203CF34 +_0829AA98: .4byte 0x0203CF34 _0829AA9C: ldr r0, [r4, #4] movs r2, #4 @@ -6111,7 +6111,7 @@ _0829AAC4: mov ip, r0 b _0829AAF0 .align 2, 0 -_0829AAE8: .4byte gUnknown_203CF34 +_0829AAE8: .4byte 0x0203CF34 _0829AAEC: movs r3, #4 add ip, r3 @@ -6193,7 +6193,7 @@ _0829AB68: beq _0829AB68 b _0829AAFE .align 2, 0 -_0829AB78: .4byte gUnknown_203CF34 +_0829AB78: .4byte 0x0203CF34 _0829AB7C: mov r1, sb ldr r0, [r1, #4] @@ -6233,7 +6233,7 @@ _0829ABBA: movs r0, #0 b _0829AC38 .align 2, 0 -_0829ABC4: .4byte gUnknown_203CF34 +_0829ABC4: .4byte 0x0203CF34 _0829ABC8: ldr r6, [r5, #0xc] ldr r4, [r5, #8] @@ -6302,7 +6302,7 @@ _0829AC38: mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 -_0829AC44: .4byte gUnknown_203CF34 +_0829AC44: .4byte 0x0203CF34 thumb_func_end _malloc_r thumb_func_start _mbtowc_r @@ -7106,7 +7106,7 @@ _0829B196: str r4, [r5] b _0829B1D8 .align 2, 0 -_0829B1B8: .4byte gUnknown_890F228 +_0829B1B8: .4byte 0x0890F228 _0829B1BC: .4byte 0x00000271 _0829B1C0: ldr r0, [r5] @@ -7736,7 +7736,7 @@ _mprec_log10: @ 0x0829B614 .align 2, 0 _0829B62C: .4byte 0x3FF00000 _0829B630: .4byte 0x00000000 -_0829B634: .4byte gUnknown_890F234 +_0829B634: .4byte 0x0890F234 _0829B638: cmp r4, #0 ble _0829B64A @@ -7815,7 +7815,7 @@ _0829B6BA: adds r0, r1, #0 pop {r4, r5, pc} .align 2, 0 -_0829B6C0: .4byte gUnknown_300764C +_0829B6C0: .4byte 0x0300764C thumb_func_end _sbrk_r thumb_func_start __sread @@ -7978,7 +7978,7 @@ sub_0829B7CC: @ 0x0829B7CC ldr r2, _0829B7D4 b _0829B7E0 .align 2, 0 -_0829B7D4: .4byte gUnknown_3001AB0 +_0829B7D4: .4byte 0x03001AB0 _0829B7D8: adds r2, #8 adds r1, #1 @@ -8007,8 +8007,8 @@ sub_0829B7EC: @ 0x0829B7EC ldr r0, _0829B804 b _0829B82E .align 2, 0 -_0829B800: .4byte gUnknown_203CF1C -_0829B804: .4byte gUnknown_3001AA4 +_0829B800: .4byte 0x0203CF1C +_0829B804: .4byte 0x03001AA4 _0829B808: ldr r0, [r1, #8] movs r3, #0xe @@ -8018,7 +8018,7 @@ _0829B808: ldr r0, _0829B818 b _0829B82E .align 2, 0 -_0829B818: .4byte gUnknown_3001AA8 +_0829B818: .4byte 0x03001AA8 _0829B81C: ldr r0, [r1, #0xc] movs r1, #0xe @@ -8035,7 +8035,7 @@ _0829B82E: _0829B830: bx lr .align 2, 0 -_0829B834: .4byte gUnknown_3001AAC +_0829B834: .4byte 0x03001AAC thumb_func_end sub_0829B7EC thumb_func_start initialise_monitor_handles @@ -8088,11 +8088,11 @@ _0829B87A: add sp, #0xc pop {r4, r5, pc} .align 2, 0 -_0829B894: .4byte gUnknown_890F34C -_0829B898: .4byte gUnknown_3001AA4 -_0829B89C: .4byte gUnknown_3001AA8 -_0829B8A0: .4byte gUnknown_3001AAC -_0829B8A4: .4byte gUnknown_3001AB0 +_0829B894: .4byte 0x0890F34C +_0829B898: .4byte 0x03001AA4 +_0829B89C: .4byte 0x03001AA8 +_0829B8A0: .4byte 0x03001AAC +_0829B8A4: .4byte 0x03001AB0 thumb_func_end initialise_monitor_handles thumb_func_start sub_0829B8A8 @@ -8194,7 +8194,7 @@ _0829B94A: _0829B94C: pop {r4, r5, r6, r7, pc} .align 2, 0 -_0829B950: .4byte gUnknown_3001AB0 +_0829B950: .4byte 0x03001AB0 thumb_func_end _read thumb_func_start _swilseek @@ -8266,7 +8266,7 @@ _0829B9CC: mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 -_0829B9D4: .4byte gUnknown_3001AB0 +_0829B9D4: .4byte 0x03001AB0 thumb_func_end _swilseek thumb_func_start _lseek @@ -8337,7 +8337,7 @@ _0829BA4C: _0829BA4E: pop {r4, r5, r6, r7, pc} .align 2, 0 -_0829BA50: .4byte gUnknown_3001AB0 +_0829BA50: .4byte 0x03001AB0 thumb_func_end _write thumb_func_start _swiopen @@ -8415,7 +8415,7 @@ _0829BAAC: adds r0, #0x20 b _0829BAEA .align 2, 0 -_0829BAE0: .4byte gUnknown_3001AB0 +_0829BAE0: .4byte 0x03001AB0 _0829BAE4: adds r0, r3, #0 bl sub_0829B8BC @@ -8465,7 +8465,7 @@ _0829BB28: add sp, #4 pop {pc} .align 2, 0 -_0829BB38: .4byte gUnknown_3001AB0 +_0829BB38: .4byte 0x03001AB0 thumb_func_end _swiclose thumb_func_start _close @@ -8547,9 +8547,9 @@ _0829BBB2: adds r0, r5, #0 pop {r4, r5, r6, pc} .align 2, 0 -_0829BBBC: .4byte gUnknown_3001AA0 -_0829BBC0: .4byte gUnknown_88BA568 -_0829BBC4: .4byte gUnknown_890F350 +_0829BBBC: .4byte 0x03001AA0 +_0829BBC0: .4byte 0x088BA568 +_0829BBC4: .4byte 0x0890F350 thumb_func_end _sbrk thumb_func_start _fstat @@ -8651,7 +8651,7 @@ _0829BC56: adds r0, r1, #0 pop {r4, r5, pc} .align 2, 0 -_0829BC5C: .4byte gUnknown_300764C +_0829BC5C: .4byte 0x0300764C thumb_func_end _write_r thumb_func_start _calloc_r @@ -8727,7 +8727,7 @@ _0829BCDA: adds r0, r1, #0 pop {r4, r5, pc} .align 2, 0 -_0829BCE0: .4byte gUnknown_300764C +_0829BCE0: .4byte 0x0300764C thumb_func_end _close_r thumb_func_start __errno @@ -8736,7 +8736,7 @@ __errno: @ 0x0829BCE4 ldr r0, [r0] bx lr .align 2, 0 -_0829BCEC: .4byte gUnknown_203CF1C +_0829BCEC: .4byte 0x0203CF1C thumb_func_end __errno thumb_func_start _fstat_r @@ -8762,7 +8762,7 @@ _0829BD14: adds r0, r1, #0 pop {r4, r5, pc} .align 2, 0 -_0829BD18: .4byte gUnknown_300764C +_0829BD18: .4byte 0x0300764C thumb_func_end _fstat_r thumb_func_start abort @@ -8820,7 +8820,7 @@ _0829BD6A: adds r0, r1, #0 pop {r4, r5, pc} .align 2, 0 -_0829BD70: .4byte gUnknown_300764C +_0829BD70: .4byte 0x0300764C thumb_func_end _lseek_r thumb_func_start _read_r @@ -8847,4 +8847,4 @@ _0829BD9A: adds r0, r1, #0 pop {r4, r5, pc} .align 2, 0 -_0829BDA0: .4byte gUnknown_300764C +_0829BDA0: .4byte 0x0300764C diff --git a/asm/libgcc.s b/asm/libgcc.s index a808181..9cdd420 100644 --- a/asm/libgcc.s +++ b/asm/libgcc.s @@ -1,7 +1,7 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - .text - .syntax unified +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified thumb_func_start _call_via_r0 _call_via_r0: @ 0x08295A08 @@ -250,7 +250,7 @@ _08295B62: b _08295E42 .align 2, 0 _08295B6C: .4byte 0x00FFFFFF -_08295B70: .4byte gUnknown_890EF58 +_08295B70: .4byte 0x0890EF58 _08295B74: .4byte 0x0000FFFF _08295B78: cmp r2, #0 @@ -295,7 +295,7 @@ _08295BA6: b _08295C6A .align 2, 0 _08295BC4: .4byte 0x00FFFFFF -_08295BC8: .4byte gUnknown_890EF58 +_08295BC8: .4byte 0x0890EF58 _08295BCC: subs r1, r1, r2 lsls r7, r2 @@ -483,7 +483,7 @@ _08295D34: b _08295E3C .align 2, 0 _08295D3C: .4byte 0x00FFFFFF -_08295D40: .4byte gUnknown_890EF58 +_08295D40: .4byte 0x0890EF58 _08295D44: movs r6, #0 b _08295E3E @@ -1109,7 +1109,7 @@ _082961AA: b _08296336 .align 2, 0 _082961B0: .4byte 0x00FFFFFF -_082961B4: .4byte gUnknown_890F058 +_082961B4: .4byte 0x0890F058 _082961B8: .4byte 0x0000FFFF _082961BC: cmp r2, #0 @@ -1154,7 +1154,7 @@ _082961EA: b _082962AE .align 2, 0 _08296208: .4byte 0x00FFFFFF -_0829620C: .4byte gUnknown_890F058 +_0829620C: .4byte 0x0890F058 _08296210: subs r1, r1, r2 lsls r7, r2 @@ -1343,7 +1343,7 @@ _08296378: b _08296480 .align 2, 0 _08296380: .4byte 0x00FFFFFF -_08296384: .4byte gUnknown_890F058 +_08296384: .4byte 0x0890F058 _08296388: movs r6, #0 b _08296482 @@ -2019,7 +2019,7 @@ _0829683E: ldr r0, _08296850 b _08296A54 .align 2, 0 -_08296850: .4byte gUnknown_3001A78 +_08296850: .4byte 0x03001A78 _08296854: movs r1, #0 cmp r0, #4 @@ -2436,7 +2436,7 @@ _08296B4A: ldr r0, _08296B50 b _08296D52 .align 2, 0 -_08296B50: .4byte gUnknown_3001A78 +_08296B50: .4byte 0x03001A78 _08296B54: mov r1, r8 ldr r0, [r1, #4] @@ -2790,7 +2790,7 @@ _08296DE4: ldr r1, _08296DE8 b _08296EE8 .align 2, 0 -_08296DE8: .4byte gUnknown_3001A78 +_08296DE8: .4byte 0x03001A78 _08296DEC: movs r0, #0 cmp r2, #4 @@ -3835,7 +3835,7 @@ _082974E8: ldr r0, _082974F8 b _0829761C .align 2, 0 -_082974F8: .4byte gUnknown_3001A90 +_082974F8: .4byte 0x03001A90 _082974FC: movs r1, #0 cmp r0, #4 @@ -4131,7 +4131,7 @@ _082976FE: ldr r0, _08297704 b _082977D6 .align 2, 0 -_08297704: .4byte gUnknown_3001A90 +_08297704: .4byte 0x03001A90 _08297708: movs r2, #0 cmp r1, #2 @@ -4324,7 +4324,7 @@ _0829784A: ldr r1, _08297858 b _082978C8 .align 2, 0 -_08297858: .4byte gUnknown_3001A90 +_08297858: .4byte 0x03001A90 _0829785C: movs r1, #0 cmp r2, #4 @@ -5044,3 +5044,4 @@ _08297D02: pop {r4, pc} .align 2, 0 thumb_func_end __negdi2 + diff --git a/asm/libgcnmultiboot.s b/asm/libgcnmultiboot.s index b67d978..6efb7b7 100644 --- a/asm/libgcnmultiboot.s +++ b/asm/libgcnmultiboot.s @@ -1,7 +1,8 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - .text - .syntax unified +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + thumb_func_start GameCubeMultiBoot_Hash GameCubeMultiBoot_Hash: @ 0x0828D2F8 push {r4, lr} @@ -18,8 +19,8 @@ _0828D306: pop {r4, pc} thumb_func_end GameCubeMultiBoot_Hash - thumb_func_start GameCubeMultiBoot_Main -GameCubeMultiBoot_Main: @ 0x0828D30C + thumb_func_start sGameCubeMultiBoot_Main +sGameCubeMultiBoot_Main: @ 0x0828D30C ldr r1, [r0, #0x28] cmp r1, #0 beq _0828D332 @@ -156,7 +157,7 @@ _0828D3FE: _0828D400: .4byte 0x0000A1C1 _0828D404: .4byte 0x6177614B _0828D408: .4byte 0x08000004 - thumb_func_end GameCubeMultiBoot_Main + thumb_func_end sGameCubeMultiBoot_Main thumb_func_start GameCubeMultiBoot_ExecuteProgram GameCubeMultiBoot_ExecuteProgram: @ 0x0828D40C @@ -172,7 +173,7 @@ GameCubeMultiBoot_ExecuteProgram: @ 0x0828D40C _0828D41E: bx lr thumb_func_end GameCubeMultiBoot_ExecuteProgram - + thumb_func_start GameCubeMultiBoot_Init GameCubeMultiBoot_Init: ldr r3, _0828D5C0 @@ -213,9 +214,9 @@ _0828D438: strh r1, [r3] strh r2, [r3, #8] bx lr - thumb_func_end GameCubeMultiBoot_ExecuteProgram + thumb_func_end GameCubeMultiBoot_Init - non_word_aligned_thumb_func_start GameCubeMultiBoot_HandleSerialInterrupt + thumb_func_start GameCubeMultiBoot_HandleSerialInterrupt GameCubeMultiBoot_HandleSerialInterrupt: @ 0x0828D46A ldr r3, _0828D5C4 ldrh r1, [r3, #0x20] @@ -425,7 +426,7 @@ GcMbIntrHandler_StopUnconditionally: @ 0x0828D598 b _0828D480 thumb_func_end GcMbIntrHandler_StopUnconditionally - non_word_aligned_thumb_func_start GameCubeMultiBoot_Quit + thumb_func_start GameCubeMultiBoot_Quit GameCubeMultiBoot_Quit: @ 0x0828D59A ldr r3, _0828D5C0 ldrh r2, [r3, #8] @@ -450,5 +451,6 @@ _0828D5C0: .4byte 0x04000200 _0828D5C4: .4byte 0x04000120 _0828D5C8: .4byte 0x04000004 _0828D5CC: .4byte 0x4A565841 -_0828D5D0: .4byte gUnknown_2000000 +_0828D5D0: .4byte 0x02000000 thumb_func_end GameCubeMultiBoot_Quit + diff --git a/asm/libisagbprn.s b/asm/libisagbprn.s index ca99840..deec1dd 100644 --- a/asm/libisagbprn.s +++ b/asm/libisagbprn.s @@ -1,7 +1,7 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - .text - .syntax unified +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified thumb_func_start AGBPrintInit AGBPrintInit: @ 0x08295600 @@ -485,7 +485,7 @@ AGBAssert: @ 0x0829596C .hword 0xEFFF b _082959A4 .align 2, 0 -_08295994: .4byte gUnknown_890EEF4 +_08295994: .4byte 0x0890EEF4 _08295998: ldr r0, _082959AC ldr r2, [r7, #4] @@ -498,5 +498,6 @@ _082959A4: pop {r0} bx r0 .align 2, 0 -_082959AC: .4byte gUnknown_890EF28 +_082959AC: .4byte 0x0890EF28 thumb_func_end AGBAssert + diff --git a/asm/librfu.s b/asm/librfu.s index 2f944ec..3e4d87b 100644 --- a/asm/librfu.s +++ b/asm/librfu.s @@ -1,7 +1,7 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - .text - .syntax unified +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified thumb_func_start sub_082952F4 sub_082952F4: @ 0x082952F4 @@ -41,8 +41,8 @@ _08295310: b _0829535E .align 2, 0 _0829533C: .4byte 0x04000200 -_08295340: .4byte gUnknown_3007608 -_08295344: .4byte sub_08295510 +_08295340: .4byte 0x03007608 +_08295344: .4byte 0x08295511 _08295348: .4byte 0x04000100 _0829534C: strh r6, [r4, #2] @@ -89,7 +89,7 @@ _08295390: .align 2, 0 _0829539C: .4byte 0x04000208 _082953A0: .4byte 0x04000200 -_082953A4: .4byte gUnknown_3007608 +_082953A4: .4byte 0x03007608 thumb_func_end sub_082952F4 thumb_func_start sub_082953A8 @@ -140,9 +140,9 @@ sub_082953A8: @ 0x082953A8 .align 2, 0 _08295400: .4byte 0x04000208 _08295404: .4byte 0x04000200 -_08295408: .4byte gUnknown_3007608 +_08295408: .4byte 0x03007608 _0829540C: .4byte 0x04000134 -_08295410: .4byte gUnknown_3007640 +_08295410: .4byte 0x03007640 _08295414: .4byte 0x05000003 _08295418: .4byte 0x04000202 thumb_func_end sub_082953A8 @@ -160,7 +160,7 @@ sub_0829541C: @ 0x0829541C beq _0829546C b _08295504 .align 2, 0 -_08295430: .4byte gUnknown_3007640 +_08295430: .4byte 0x03007640 _08295434: movs r6, #1 strb r6, [r7] @@ -310,7 +310,7 @@ _0829552A: b _0829557E .align 2, 0 _08295558: .4byte 0x04000120 -_0829555C: .4byte gUnknown_3007640 +_0829555C: .4byte 0x03007640 _08295560: .4byte 0x04000128 _08295564: ldrh r0, [r4, #4] @@ -337,7 +337,7 @@ _0829557E: ldrh r0, [r0] b _08295596 .align 2, 0 -_08295590: .4byte gUnknown_890EEDC +_08295590: .4byte 0x0890EEDC _08295594: ldr r0, _082955EC _08295596: @@ -393,3 +393,4 @@ _082955F4: .4byte 0x0000494E _082955F8: .4byte 0x00000257 _082955FC: .4byte 0x04000128 thumb_func_end sub_08295510 + diff --git a/asm/librfu_intr.s b/asm/librfu_intr.s index 0a8e36f..4a27333 100644 --- a/asm/librfu_intr.s +++ b/asm/librfu_intr.s @@ -1,7 +1,7 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - .text - .syntax unified +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified arm_func_start IntrSIO32 IntrSIO32: @ 0x08291ADC @@ -36,7 +36,7 @@ _08291B30: ldmdb fp, {fp, sp, lr} bx lr .align 2, 0 -_08291B3C: .4byte gUnknown_3007608 +_08291B3C: .4byte 0x03007608 arm_func_end sub_08291B0C arm_func_start sio32intr_clock_master @@ -210,7 +210,7 @@ _08291D88: bl sub_08292430 b _08291DC8 .align 2, 0 -_08291DB4: .4byte gUnknown_3007608 +_08291DB4: .4byte 0x03007608 _08291DB8: add r3, r5, #3 strh r3, [r4] @@ -479,7 +479,7 @@ _0829216C: bhi _0829216C b _082921A8 .align 2, 0 -_0829217C: .4byte gUnknown_3007608 +_0829217C: .4byte 0x03007608 _08292180: .4byte 0x996601EE _08292184: mov r2, #0xff00 @@ -539,7 +539,7 @@ _0829222C: ldmdb fp, {fp, sp, lr} bx lr .align 2, 0 -_08292240: .4byte gUnknown_3007608 +_08292240: .4byte 0x03007608 arm_func_end handshake_wait arm_func_start STWI_set_timer_in_RAM @@ -595,7 +595,7 @@ _082922E4: mov r3, #3 b _08292314 .align 2, 0 -_082922FC: .4byte gUnknown_3007608 +_082922FC: .4byte 0x03007608 _08292300: mvn r3, #0x850 sub r3, r3, #2 @@ -641,7 +641,7 @@ STWI_stop_timer_in_RAM: ldmdb fp, {fp, sp, lr} bx lr .align 2, 0 -_082923A0: .4byte gUnknown_3007608 +_082923A0: .4byte 0x03007608 arm_func_end STWI_set_timer_in_RAM arm_func_start STWI_init_slave @@ -681,7 +681,7 @@ STWI_init_slave: @ 0x082923A4 ldmdb fp, {fp, sp, lr} bx lr .align 2, 0 -_0829242C: .4byte gUnknown_3007608 +_0829242C: .4byte 0x03007608 arm_func_end STWI_init_slave arm_func_start sub_08292430 @@ -698,3 +698,4 @@ sub_08292434: @ 0x08292434 sub_08292438: @ 0x08292438 bx r0 arm_func_end sub_08292438 + diff --git a/asm/librfu_rfu.s b/asm/librfu_rfu.s index 0fbc8f2..5d0d817 100644 --- a/asm/librfu_rfu.s +++ b/asm/librfu_rfu.s @@ -1,7 +1,7 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - .text - .syntax unified +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified thumb_func_start rfu_initializeAPI rfu_initializeAPI: @ 0x0829243C @@ -146,12 +146,12 @@ _08292540: pop {r1} bx r1 .align 2, 0 -_08292548: .4byte gUnknown_3007630 -_0829254C: .4byte gUnknown_3007634 -_08292550: .4byte gUnknown_3007638 -_08292554: .4byte gUnknown_3007620 -_08292558: .4byte gUnknown_3007610 -_0829255C: .4byte sub_0829397C +_08292548: .4byte 0x03007630 +_0829254C: .4byte 0x03007634 +_08292550: .4byte 0x03007638 +_08292554: .4byte 0x03007620 +_08292558: .4byte 0x03007610 +_0829255C: .4byte 0x0829397D _08292560: .4byte 0x0000FFFF thumb_func_end rfu_initializeAPI @@ -215,9 +215,9 @@ _082925B8: bx r0 .align 2, 0 _082925D8: .4byte 0x04000208 -_082925DC: .4byte gUnknown_3007634 +_082925DC: .4byte 0x03007634 _082925E0: .4byte 0x01000014 -_082925E4: .4byte gUnknown_3007630 +_082925E4: .4byte 0x03007630 _082925E8: .4byte 0x0100005A thumb_func_end rfu_STC_clearAPIVariables @@ -230,7 +230,7 @@ rfu_REQ_PARENT_resumeRetransmitAndChange: @ 0x082925EC pop {r0} bx r0 .align 2, 0 -_082925FC: .4byte rfu_STC_REQ_callback +_082925FC: .4byte 0x082926C1 thumb_func_end rfu_REQ_PARENT_resumeRetransmitAndChange thumb_func_start rfu_UNI_PARENT_getDRAC_ACK @@ -248,7 +248,7 @@ rfu_UNI_PARENT_getDRAC_ACK: @ 0x08292600 lsls r0, r0, #2 b _08292642 .align 2, 0 -_08292618: .4byte gUnknown_3007630 +_08292618: .4byte 0x03007630 _0829261C: bl rfu_getSTWIRecvBuffer adds r1, r0, #0 @@ -299,7 +299,7 @@ rfu_getSTWIRecvBuffer: @ 0x0829265C ldr r0, [r0] bx lr .align 2, 0 -_08292668: .4byte gUnknown_3007638 +_08292668: .4byte 0x03007638 thumb_func_end rfu_getSTWIRecvBuffer thumb_func_start rfu_setMSCCallback @@ -325,7 +325,7 @@ rfu_setREQCallback: @ 0x08292678 pop {r0} bx r0 .align 2, 0 -_08292690: .4byte gUnknown_3007638 +_08292690: .4byte 0x03007638 thumb_func_end rfu_setREQCallback thumb_func_start rfu_enableREQCallback @@ -341,7 +341,7 @@ rfu_enableREQCallback: @ 0x08292694 orrs r0, r1 b _082926B6 .align 2, 0 -_082926A8: .4byte gUnknown_3007634 +_082926A8: .4byte 0x03007634 _082926AC: ldr r0, _082926BC ldr r2, [r0] @@ -353,7 +353,7 @@ _082926B6: pop {r0} bx r0 .align 2, 0 -_082926BC: .4byte gUnknown_3007634 +_082926BC: .4byte 0x03007634 thumb_func_end rfu_enableREQCallback thumb_func_start rfu_STC_REQ_callback @@ -384,9 +384,9 @@ _082926EE: pop {r0} bx r0 .align 2, 0 -_082926F4: .4byte rfu_CB_defaultCallback -_082926F8: .4byte gUnknown_3007634 -_082926FC: .4byte gUnknown_3007638 +_082926F4: .4byte 0x08292701 +_082926F8: .4byte 0x03007634 +_082926FC: .4byte 0x03007638 thumb_func_end rfu_STC_REQ_callback thumb_func_start rfu_CB_defaultCallback @@ -443,9 +443,9 @@ _0829275C: pop {r0} bx r0 .align 2, 0 -_08292764: .4byte gUnknown_3007634 -_08292768: .4byte gUnknown_3007638 -_0829276C: .4byte gUnknown_3007630 +_08292764: .4byte 0x03007634 +_08292768: .4byte 0x03007638 +_0829276C: .4byte 0x03007630 thumb_func_end rfu_CB_defaultCallback thumb_func_start rfu_waitREQComplete @@ -458,7 +458,7 @@ rfu_waitREQComplete: @ 0x08292770 pop {r1} bx r1 .align 2, 0 -_08292780: .4byte gUnknown_3007634 +_08292780: .4byte 0x03007634 thumb_func_end rfu_waitREQComplete thumb_func_start rfu_REQ_RFUStatus @@ -470,7 +470,7 @@ rfu_REQ_RFUStatus: @ 0x08292784 pop {r0} bx r0 .align 2, 0 -_08292794: .4byte rfu_STC_REQ_callback +_08292794: .4byte 0x082926C1 thumb_func_end rfu_REQ_RFUStatus thumb_func_start rfu_getRFUStatus @@ -487,7 +487,7 @@ rfu_getRFUStatus: @ 0x08292798 movs r0, #0x10 b _082927CE .align 2, 0 -_082927B0: .4byte gUnknown_3007638 +_082927B0: .4byte 0x03007638 _082927B4: bl STWI_poll_CommandEnd lsls r0, r0, #0x10 @@ -516,8 +516,8 @@ sub_082927D4: @ 0x082927D4 ldr r3, _082927E0 b _082927EE .align 2, 0 -_082927DC: .4byte gUnknown_890EED0 -_082927E0: .4byte gUnknown_30000F0 +_082927DC: .4byte 0x0890EED0 +_082927E0: .4byte 0x030000F0 _082927E4: ldrb r0, [r3] adds r3, #1 @@ -562,9 +562,9 @@ _082927FC: movs r0, #0 b _08292846 .align 2, 0 -_08292838: .4byte gUnknown_30000FA -_0829283C: .4byte gUnknown_3007630 -_08292840: .4byte gUnknown_3007634 +_08292838: .4byte 0x030000FA +_0829283C: .4byte 0x03007630 +_08292840: .4byte 0x03007634 _08292844: movs r0, #1 _08292846: @@ -591,7 +591,7 @@ rfu_REQ_stopMode: @ 0x0829284C b _082928EA .align 2, 0 _0829286C: .4byte 0x04000208 -_08292870: .4byte gUnknown_3007608 +_08292870: .4byte 0x03007608 _08292874: bl AgbRFU_SoftReset bl rfu_STC_clearAPIVariables @@ -631,10 +631,10 @@ _082928B2: b _082928EA .align 2, 0 _082928C4: .4byte 0x00008001 -_082928C8: .4byte gUnknown_3007608 +_082928C8: .4byte 0x03007608 _082928CC: .4byte 0x04000100 _082928D0: .4byte 0x0105FFFF -_082928D4: .4byte rfu_CB_stopMode +_082928D4: .4byte 0x082928F5 _082928D8: ldr r1, _082928F0 movs r2, #0x80 @@ -720,7 +720,7 @@ rfu_REQ_reset: @ 0x0829295C pop {r0} bx r0 .align 2, 0 -_0829296C: .4byte rfu_CB_reset +_0829296C: .4byte 0x08292971 thumb_func_end rfu_REQ_reset thumb_func_start rfu_CB_reset @@ -773,8 +773,8 @@ rfu_REQ_configSystem: @ 0x08292994 strh r0, [r1, #0x1a] b _082929EE .align 2, 0 -_082929CC: .4byte rfu_STC_REQ_callback -_082929D0: .4byte gUnknown_3007634 +_082929CC: .4byte 0x082926C1 +_082929D0: .4byte 0x03007634 _082929D4: ldr r5, _082929F4 ldrh r4, [r5] @@ -794,7 +794,7 @@ _082929EE: bx r0 .align 2, 0 _082929F4: .4byte 0x04000208 -_082929F8: .4byte gUnknown_3007634 +_082929F8: .4byte 0x03007634 thumb_func_end rfu_REQ_configSystem thumb_func_start rfu_REQ_configGameData @@ -870,7 +870,7 @@ _08292A6E: pop {r0} bx r0 .align 2, 0 -_08292A84: .4byte rfu_CB_configGameData +_08292A84: .4byte 0x08292A89 thumb_func_end rfu_REQ_configGameData thumb_func_start rfu_CB_configGameData @@ -910,8 +910,8 @@ rfu_CB_configGameData: @ 0x08292A88 movs r0, #1 b _08292ADA .align 2, 0 -_08292ACC: .4byte gUnknown_3007608 -_08292AD0: .4byte gUnknown_3007630 +_08292ACC: .4byte 0x03007608 +_08292AD0: .4byte 0x03007630 _08292AD4: adds r1, r6, #0 adds r1, #0x97 @@ -955,7 +955,7 @@ _08292B12: pop {r0} bx r0 .align 2, 0 -_08292B20: .4byte gUnknown_3007630 +_08292B20: .4byte 0x03007630 thumb_func_end rfu_CB_configGameData thumb_func_start rfu_REQ_startSearchChild @@ -994,9 +994,9 @@ _08292B2E: bl rfu_STC_clearLinkStatus b _08292B7E .align 2, 0 -_08292B6C: .4byte rfu_CB_defaultCallback -_08292B70: .4byte gUnknown_3007634 -_08292B74: .4byte gUnknown_3007638 +_08292B6C: .4byte 0x08292701 +_08292B70: .4byte 0x03007634 +_08292B74: .4byte 0x03007638 _08292B78: movs r0, #0x19 bl rfu_STC_REQ_callback @@ -1008,7 +1008,7 @@ _08292B7E: pop {r0} bx r0 .align 2, 0 -_08292B90: .4byte rfu_CB_startSearchChild +_08292B90: .4byte 0x08292B95 thumb_func_end rfu_REQ_startSearchChild thumb_func_start rfu_CB_startSearchChild @@ -1032,7 +1032,7 @@ _08292BAC: pop {r0} bx r0 .align 2, 0 -_08292BB8: .4byte gUnknown_3007634 +_08292BB8: .4byte 0x03007634 thumb_func_end rfu_CB_startSearchChild thumb_func_start rfu_STC_clearLinkStatus @@ -1084,7 +1084,7 @@ _08292BEC: pop {r0} bx r0 .align 2, 0 -_08292C18: .4byte gUnknown_3007630 +_08292C18: .4byte 0x03007630 _08292C1C: .4byte 0x01000040 thumb_func_end rfu_STC_clearLinkStatus @@ -1097,7 +1097,7 @@ rfu_REQ_pollSearchChild: @ 0x08292C20 pop {r0} bx r0 .align 2, 0 -_08292C30: .4byte rfu_CB_pollAndEndSearchChild +_08292C30: .4byte 0x08292C49 thumb_func_end rfu_REQ_pollSearchChild thumb_func_start rfu_REQ_endSearchChild @@ -1109,7 +1109,7 @@ rfu_REQ_endSearchChild: @ 0x08292C34 pop {r0} bx r0 .align 2, 0 -_08292C44: .4byte rfu_CB_pollAndEndSearchChild +_08292C44: .4byte 0x08292C49 thumb_func_end rfu_REQ_endSearchChild thumb_func_start rfu_CB_pollAndEndSearchChild @@ -1148,9 +1148,9 @@ _08292C5A: strh r0, [r1] b _08292CB8 .align 2, 0 -_08292C90: .4byte gUnknown_3007630 -_08292C94: .4byte rfu_CB_defaultCallback -_08292C98: .4byte gUnknown_3007638 +_08292C90: .4byte 0x03007630 +_08292C94: .4byte 0x08292701 +_08292C98: .4byte 0x03007638 _08292C9C: cmp r4, #0x1b bne _08292CB8 @@ -1175,8 +1175,8 @@ _08292CB8: pop {r0} bx r0 .align 2, 0 -_08292CC8: .4byte gUnknown_3007630 -_08292CCC: .4byte gUnknown_3007634 +_08292CC8: .4byte 0x03007630 +_08292CCC: .4byte 0x03007634 thumb_func_end rfu_CB_pollAndEndSearchChild thumb_func_start rfu_STC_readChildList @@ -1273,9 +1273,9 @@ _08292D76: pop {r0} bx r0 .align 2, 0 -_08292D80: .4byte gUnknown_3007638 -_08292D84: .4byte gUnknown_3007634 -_08292D88: .4byte gUnknown_3007630 +_08292D80: .4byte 0x03007638 +_08292D84: .4byte 0x03007634 +_08292D88: .4byte 0x03007630 thumb_func_end rfu_STC_readChildList thumb_func_start rfu_REQ_startSearchParent @@ -1287,7 +1287,7 @@ rfu_REQ_startSearchParent: @ 0x08292D8C pop {r0} bx r0 .align 2, 0 -_08292D9C: .4byte rfu_CB_startSearchParent +_08292D9C: .4byte 0x08292DA1 thumb_func_end rfu_REQ_startSearchParent thumb_func_start rfu_CB_startSearchParent @@ -1320,7 +1320,7 @@ rfu_REQ_pollSearchParent: @ 0x08292DC4 pop {r0} bx r0 .align 2, 0 -_08292DD4: .4byte sub_08292DD8 +_08292DD4: .4byte 0x08292DD9 thumb_func_end rfu_REQ_pollSearchParent thumb_func_start sub_08292DD8 @@ -1353,7 +1353,7 @@ rfu_REQ_endSearchParent: @ 0x08292DFC pop {r0} bx r0 .align 2, 0 -_08292E0C: .4byte rfu_STC_REQ_callback +_08292E0C: .4byte 0x082926C1 thumb_func_end rfu_REQ_endSearchParent thumb_func_start rfu_STC_readParentCandidateList @@ -1444,9 +1444,9 @@ _08292E60: strb r0, [r4, #3] b _08292ECA .align 2, 0 -_08292EB8: .4byte gUnknown_3007630 +_08292EB8: .4byte 0x03007630 _08292EBC: .4byte 0x01000040 -_08292EC0: .4byte gUnknown_3007638 +_08292EC0: .4byte 0x03007638 _08292EC4: .4byte 0x00007FFF _08292EC8: strb r3, [r4, #3] @@ -1542,9 +1542,9 @@ _08292F54: bl STWI_send_CP_StartREQ b _08292F80 .align 2, 0 -_08292F6C: .4byte gUnknown_3007630 -_08292F70: .4byte gUnknown_3007634 -_08292F74: .4byte rfu_STC_REQ_callback +_08292F6C: .4byte 0x03007630 +_08292F70: .4byte 0x03007634 +_08292F74: .4byte 0x082926C1 _08292F78: movs r0, #0x1f adds r1, r3, #0 @@ -1565,7 +1565,7 @@ rfu_REQ_pollConnectParent: @ 0x08292F88 pop {r0} bx r0 .align 2, 0 -_08292F98: .4byte rfu_CB_pollConnectParent +_08292F98: .4byte 0x08292F9D thumb_func_end rfu_REQ_pollConnectParent thumb_func_start rfu_CB_pollConnectParent @@ -1664,9 +1664,9 @@ _0829301A: strb r1, [r0, #8] b _0829307C .align 2, 0 -_08293058: .4byte gUnknown_3007638 -_0829305C: .4byte gUnknown_3007630 -_08293060: .4byte gUnknown_3007634 +_08293058: .4byte 0x03007638 +_0829305C: .4byte 0x03007630 +_08293060: .4byte 0x03007634 _08293064: .4byte 0x01000040 _08293068: adds r0, r4, #0 @@ -1710,7 +1710,7 @@ _0829309E: pop {r0} bx r0 .align 2, 0 -_082930B8: .4byte gUnknown_3007630 +_082930B8: .4byte 0x03007630 thumb_func_end rfu_CB_pollConnectParent thumb_func_start rfu_getConnectParentStatus @@ -1732,7 +1732,7 @@ rfu_getConnectParentStatus: @ 0x082930BC movs r0, #0x10 b _082930EC .align 2, 0 -_082930DC: .4byte gUnknown_3007638 +_082930DC: .4byte 0x03007638 _082930E0: adds r2, #6 ldrb r0, [r2] @@ -1769,9 +1769,9 @@ _08293118: pop {r0} bx r0 .align 2, 0 -_0829311C: .4byte rfu_CB_pollConnectParent -_08293120: .4byte gUnknown_3007638 -_08293124: .4byte gUnknown_3007634 +_0829311C: .4byte 0x08292F9D +_08293120: .4byte 0x03007638 +_08293124: .4byte 0x03007634 thumb_func_end rfu_REQ_endConnectParent thumb_func_start rfu_syncVBlank @@ -1811,8 +1811,8 @@ _08293146: strh r0, [r1, #0x20] b _08293182 .align 2, 0 -_08293170: .4byte gUnknown_3007630 -_08293174: .4byte gUnknown_3007634 +_08293170: .4byte 0x03007630 +_08293174: .4byte 0x03007634 _08293178: cmp r3, #0 beq _08293198 @@ -1830,7 +1830,7 @@ _08293186: ands r0, r1 b _082931A2 .align 2, 0 -_08293194: .4byte gUnknown_3007634 +_08293194: .4byte 0x03007634 _08293198: ldr r3, _082931F4 ldr r2, [r3] @@ -1880,8 +1880,8 @@ _082931DC: movs r0, #1 b _08293202 .align 2, 0 -_082931F4: .4byte gUnknown_3007634 -_082931F8: .4byte gUnknown_3007630 +_082931F4: .4byte 0x03007634 +_082931F8: .4byte 0x03007630 _082931FC: subs r0, #1 strh r0, [r3, #0x20] @@ -1980,10 +1980,10 @@ _082932A0: str r2, [sp, #8] b _08293310 .align 2, 0 -_082932A8: .4byte gUnknown_3007630 -_082932AC: .4byte gUnknown_3007608 -_082932B0: .4byte gUnknown_3007634 -_082932B4: .4byte gUnknown_3007638 +_082932A8: .4byte 0x03007630 +_082932AC: .4byte 0x03007608 +_082932B0: .4byte 0x03007634 +_082932B4: .4byte 0x03007638 _082932B8: movs r0, #0x9b lsls r0, r0, #1 @@ -2072,9 +2072,9 @@ _08293344: movs r5, #0 b _0829337C .align 2, 0 -_08293364: .4byte gUnknown_3007638 -_08293368: .4byte gUnknown_3007630 -_0829336C: .4byte rfu_CB_defaultCallback +_08293364: .4byte 0x03007638 +_08293368: .4byte 0x03007630 +_0829336C: .4byte 0x08292701 _08293370: movs r0, #0x11 ldr r1, [sp, #0xc] @@ -2153,8 +2153,8 @@ _082933B6: strb r2, [r0] b _08293498 .align 2, 0 -_08293404: .4byte gUnknown_3007634 -_08293408: .4byte gUnknown_3007630 +_08293404: .4byte 0x03007634 +_08293408: .4byte 0x03007630 _0829340C: bl STWI_send_SystemStatusREQ bl STWI_poll_CommandEnd @@ -2178,7 +2178,7 @@ _0829340C: ldr r0, [sp] b _08293496 .align 2, 0 -_0829343C: .4byte gUnknown_3007638 +_0829343C: .4byte 0x03007638 _08293440: ldr r2, _08293488 ldr r1, [r2] @@ -2215,7 +2215,7 @@ _08293440: strb r0, [r2] b _08293498 .align 2, 0 -_08293488: .4byte gUnknown_3007634 +_08293488: .4byte 0x03007634 _0829348C: ldr r0, [r3] adds r0, #0xa @@ -2274,8 +2274,8 @@ _08293498: strb r3, [r0] b _0829358A .align 2, 0 -_082934F8: .4byte gUnknown_3007630 -_082934FC: .4byte gUnknown_3007634 +_082934F8: .4byte 0x03007630 +_082934FC: .4byte 0x03007634 _08293500: movs r0, #0 strb r0, [r4] @@ -2317,8 +2317,8 @@ _08293506: lsls r0, r0, #0x18 b _08293586 .align 2, 0 -_08293550: .4byte gUnknown_3007638 -_08293554: .4byte gUnknown_3007634 +_08293550: .4byte 0x03007638 +_08293554: .4byte 0x03007634 _08293558: adds r2, #4 subs r0, r3, #1 @@ -2397,9 +2397,9 @@ _082935D8: pop {r1} bx r1 .align 2, 0 -_082935E8: .4byte gUnknown_3007634 -_082935EC: .4byte gUnknown_3007630 -_082935F0: .4byte gUnknown_3007638 +_082935E8: .4byte 0x03007634 +_082935EC: .4byte 0x03007630 +_082935F0: .4byte 0x03007638 thumb_func_end rfu_REQBN_watchLink thumb_func_start rfu_STC_removeLinkData @@ -2495,8 +2495,8 @@ _08293698: pop {r0} bx r0 .align 2, 0 -_082936A4: .4byte gUnknown_3007634 -_082936A8: .4byte gUnknown_3007630 +_082936A4: .4byte 0x03007634 +_082936A8: .4byte 0x03007630 _082936AC: .4byte 0x00FF00FF _082936B0: .4byte 0x01000010 thumb_func_end rfu_STC_removeLinkData @@ -2537,8 +2537,8 @@ rfu_REQ_disconnect: @ 0x082936B4 bl rfu_CB_disconnect b _08293738 .align 2, 0 -_082936F8: .4byte gUnknown_3007630 -_082936FC: .4byte gUnknown_3007634 +_082936F8: .4byte 0x03007630 +_082936FC: .4byte 0x03007634 _08293700: ldr r0, [r3] ldrb r0, [r0, #9] @@ -2556,7 +2556,7 @@ _08293700: bl rfu_STC_REQ_callback b _08293738 .align 2, 0 -_08293728: .4byte rfu_CB_defaultCallback +_08293728: .4byte 0x08292701 _0829372C: ldr r0, _08293740 bl STWI_set_Callback_M @@ -2567,7 +2567,7 @@ _08293738: pop {r0} bx r0 .align 2, 0 -_08293740: .4byte rfu_CB_disconnect +_08293740: .4byte 0x08293745 thumb_func_end rfu_REQ_disconnect thumb_func_start rfu_CB_disconnect @@ -2674,10 +2674,10 @@ _0829380E: pop {r0} bx r0 .align 2, 0 -_08293814: .4byte gUnknown_3007630 -_08293818: .4byte rfu_CB_defaultCallback -_0829381C: .4byte gUnknown_3007638 -_08293820: .4byte gUnknown_3007634 +_08293814: .4byte 0x03007630 +_08293818: .4byte 0x08292701 +_0829381C: .4byte 0x03007638 +_08293820: .4byte 0x03007634 thumb_func_end rfu_CB_disconnect thumb_func_start rfu_REQ_CHILD_startConnectRecovery @@ -2722,9 +2722,9 @@ _08293852: pop {r0} bx r0 .align 2, 0 -_08293874: .4byte gUnknown_3007634 -_08293878: .4byte rfu_STC_REQ_callback -_0829387C: .4byte gUnknown_3007630 +_08293874: .4byte 0x03007634 +_08293878: .4byte 0x082926C1 +_0829387C: .4byte 0x03007630 thumb_func_end rfu_REQ_CHILD_startConnectRecovery thumb_func_start rfu_REQ_CHILD_pollConnectRecovery @@ -2736,7 +2736,7 @@ rfu_REQ_CHILD_pollConnectRecovery: @ 0x08293880 pop {r0} bx r0 .align 2, 0 -_08293890: .4byte rfu_CB_CHILD_pollConnectRecovery +_08293890: .4byte 0x08293895 thumb_func_end rfu_REQ_CHILD_pollConnectRecovery thumb_func_start rfu_CB_CHILD_pollConnectRecovery @@ -2819,9 +2819,9 @@ _08293918: pop {r0} bx r0 .align 2, 0 -_0829392C: .4byte gUnknown_3007638 -_08293930: .4byte gUnknown_3007634 -_08293934: .4byte gUnknown_3007630 +_0829392C: .4byte 0x03007638 +_08293930: .4byte 0x03007634 +_08293934: .4byte 0x03007630 thumb_func_end rfu_CB_CHILD_pollConnectRecovery thumb_func_start rfu_CHILD_getConnectRecoveryStatus @@ -2843,7 +2843,7 @@ rfu_CHILD_getConnectRecoveryStatus: @ 0x08293938 movs r0, #0x10 b _08293962 .align 2, 0 -_08293958: .4byte gUnknown_3007638 +_08293958: .4byte 0x03007638 _0829395C: ldrb r0, [r1, #4] strb r0, [r2] @@ -2863,7 +2863,7 @@ rfu_REQ_CHILD_endConnectRecovery: @ 0x08293968 pop {r0} bx r0 .align 2, 0 -_08293978: .4byte rfu_CB_CHILD_pollConnectRecovery +_08293978: .4byte 0x08293895 thumb_func_end rfu_REQ_CHILD_endConnectRecovery thumb_func_start sub_0829397C @@ -2910,7 +2910,7 @@ rfu_REQ_changeMasterSlave: @ 0x082939AC bl STWI_send_MS_ChangeREQ b _082939D4 .align 2, 0 -_082939C8: .4byte rfu_STC_REQ_callback +_082939C8: .4byte 0x082926C1 _082939CC: movs r0, #0x27 movs r1, #0 @@ -2950,7 +2950,7 @@ _08293A06: pop {r1} bx r1 .align 2, 0 -_08293A0C: .4byte gUnknown_3007608 +_08293A0C: .4byte 0x03007608 thumb_func_end rfu_getMasterSlave thumb_func_start rfu_clearAllSlot @@ -3021,12 +3021,12 @@ _08293A2C: bx r0 .align 2, 0 _08293A94: .4byte 0x04000208 -_08293A98: .4byte gUnknown_3007620 +_08293A98: .4byte 0x03007620 _08293A9C: .4byte 0x01000034 -_08293AA0: .4byte gUnknown_3007610 +_08293AA0: .4byte 0x03007610 _08293AA4: .4byte 0x0100000A -_08293AA8: .4byte gUnknown_3007630 -_08293AAC: .4byte gUnknown_3007634 +_08293AA8: .4byte 0x03007630 +_08293AAC: .4byte 0x03007634 thumb_func_end rfu_clearAllSlot thumb_func_start rfu_STC_releaseFrame @@ -3060,8 +3060,8 @@ _08293ADC: strb r0, [r1, #0xf] b _08293B10 .align 2, 0 -_08293AE8: .4byte gUnknown_3007634 -_08293AEC: .4byte gUnknown_3007630 +_08293AE8: .4byte 0x03007634 +_08293AEC: .4byte 0x03007630 _08293AF0: ldr r6, _08293B18 cmp r3, #0 @@ -3085,7 +3085,7 @@ _08293B10: pop {r0} bx r0 .align 2, 0 -_08293B18: .4byte gUnknown_3007630 +_08293B18: .4byte 0x03007630 thumb_func_end rfu_STC_releaseFrame thumb_func_start rfu_clearSlot @@ -3153,8 +3153,8 @@ _08293B6A: b _08293BBC .align 2, 0 _08293B90: .4byte 0x04000208 -_08293B94: .4byte gUnknown_3007620 -_08293B98: .4byte gUnknown_3007630 +_08293B94: .4byte 0x03007620 +_08293B98: .4byte 0x03007630 _08293B9C: movs r0, #8 mov r1, r8 @@ -3251,10 +3251,10 @@ _08293C14: strb r0, [r1, #0xf] b _08293C72 .align 2, 0 -_08293C50: .4byte gUnknown_3007630 +_08293C50: .4byte 0x03007630 _08293C54: .4byte 0x0100001A -_08293C58: .4byte gUnknown_3007610 -_08293C5C: .4byte gUnknown_3007634 +_08293C58: .4byte 0x03007610 +_08293C5C: .4byte 0x03007634 _08293C60: ldr r2, _08293CC4 ldr r1, [r2] @@ -3310,9 +3310,9 @@ _08293CB4: pop {r1} bx r1 .align 2, 0 -_08293CC4: .4byte gUnknown_3007630 +_08293CC4: .4byte 0x03007630 _08293CC8: .4byte 0x01000006 -_08293CCC: .4byte gUnknown_3007610 +_08293CCC: .4byte 0x03007610 _08293CD0: .4byte 0x01000004 _08293CD4: .4byte 0x04000208 thumb_func_end rfu_clearSlot @@ -3346,7 +3346,7 @@ _08293CF4: str r6, [r0, #0x6c] b _08293D2A .align 2, 0 -_08293D0C: .4byte gUnknown_3007620 +_08293D0C: .4byte 0x03007620 _08293D10: movs r0, #0x10 ands r2, r0 @@ -3369,7 +3369,7 @@ _08293D2C: pop {r1} bx r1 .align 2, 0 -_08293D34: .4byte gUnknown_3007610 +_08293D34: .4byte 0x03007610 thumb_func_end rfu_setRecvBuffer thumb_func_start rfu_NI_setSendData @@ -3414,7 +3414,7 @@ rfu_UNI_setSendData: @ 0x08293D64 adds r0, r2, #3 b _08293D86 .align 2, 0 -_08293D80: .4byte gUnknown_3007630 +_08293D80: .4byte 0x03007630 _08293D84: adds r0, r2, #2 _08293D86: @@ -3458,7 +3458,7 @@ rfu_NI_CHILD_setSendGameName: @ 0x08293DA0 pop {r1} bx r1 .align 2, 0 -_08293DD0: .4byte gUnknown_3007630 +_08293DD0: .4byte 0x03007630 thumb_func_end rfu_NI_CHILD_setSendGameName thumb_func_start rfu_STC_setSendData_org @@ -3486,7 +3486,7 @@ rfu_STC_setSendData_org: @ 0x08293DD4 ldr r0, _08293E04 b _08293FBE .align 2, 0 -_08293E00: .4byte gUnknown_3007630 +_08293E00: .4byte 0x03007630 _08293E04: .4byte 0x00000301 _08293E08: movs r0, #0xf @@ -3552,7 +3552,7 @@ _08293E6A: adds r1, #0xf b _08293E86 .align 2, 0 -_08293E78: .4byte gUnknown_890EEA4 +_08293E78: .4byte 0x0890EEA4 _08293E7C: cmp r0, #0 bne _08293E88 @@ -3620,7 +3620,7 @@ _08293EC0: b _08293F00 .align 2, 0 _08293EF4: .4byte 0x04000208 -_08293EF8: .4byte gUnknown_3007620 +_08293EF8: .4byte 0x03007620 _08293EFC: movs r0, #1 strb r0, [r1] @@ -3687,7 +3687,7 @@ _08293F4C: strh r0, [r2] b _08293FB4 .align 2, 0 -_08293F74: .4byte gUnknown_3007620 +_08293F74: .4byte 0x03007620 _08293F78: .4byte 0x00008021 _08293F7C: movs r0, #0x10 @@ -3734,7 +3734,7 @@ _08293FBE: pop {r1} bx r1 .align 2, 0 -_08293FD0: .4byte gUnknown_3007610 +_08293FD0: .4byte 0x03007610 _08293FD4: .4byte 0x00008024 _08293FD8: .4byte 0x04000208 thumb_func_end rfu_STC_setSendData_org @@ -3835,10 +3835,10 @@ _08294086: strh r1, [r0] b _08294132 .align 2, 0 -_08294090: .4byte gUnknown_3007620 +_08294090: .4byte 0x03007620 _08294094: .4byte 0x00008020 _08294098: .4byte 0x04000208 -_0829409C: .4byte gUnknown_3007630 +_0829409C: .4byte 0x03007630 _082940A0: cmp r3, #0x10 bne _0829412C @@ -3855,7 +3855,7 @@ _082940B6: ldr r0, _082940C4 b _08294134 .align 2, 0 -_082940BC: .4byte gUnknown_3007610 +_082940BC: .4byte 0x03007610 _082940C0: .4byte 0x00008024 _082940C4: .4byte 0x00000403 _082940C8: @@ -3910,7 +3910,7 @@ _082940F8: b _08294132 .align 2, 0 _08294124: .4byte 0x04000208 -_08294128: .4byte gUnknown_3007630 +_08294128: .4byte 0x03007630 _0829412C: movs r0, #0xc0 lsls r0, r0, #3 @@ -3962,7 +3962,7 @@ _08294154: movs r0, #0x48 b _0829418E .align 2, 0 -_08294180: .4byte gUnknown_3007620 +_08294180: .4byte 0x03007620 _08294184: .4byte 0x04000208 _08294188: .4byte 0x00008043 _0829418C: @@ -3989,7 +3989,7 @@ _082941AE: pop {r1} bx r1 .align 2, 0 -_082941B4: .4byte gUnknown_3007630 +_082941B4: .4byte 0x03007630 _082941B8: .4byte 0x04000208 thumb_func_end rfu_NI_stopReceivingData @@ -4019,7 +4019,7 @@ _082941D4: ldr r0, _082941F0 b _08294248 .align 2, 0 -_082941E8: .4byte gUnknown_3007610 +_082941E8: .4byte 0x03007610 _082941EC: .4byte 0x00008024 _082941F0: .4byte 0x00000403 _082941F4: @@ -4034,7 +4034,7 @@ _082941F4: ldrb r1, [r1, #0xf] b _0829421A .align 2, 0 -_08294208: .4byte gUnknown_3007630 +_08294208: .4byte 0x03007630 _0829420C: adds r0, r3, #0 adds r0, #0x10 @@ -4095,7 +4095,7 @@ _0829426E: pop {r0} bx r0 .align 2, 0 -_08294274: .4byte gUnknown_3007610 +_08294274: .4byte 0x03007610 _08294278: .4byte 0x00008024 thumb_func_end rfu_UNI_readySendData @@ -4116,7 +4116,7 @@ _08294292: pop {r0} bx r0 .align 2, 0 -_08294298: .4byte gUnknown_3007610 +_08294298: .4byte 0x03007610 thumb_func_end rfu_UNI_clearRecvNewDataFlag thumb_func_start rfu_REQ_sendData @@ -4161,8 +4161,8 @@ _082942D8: strb r0, [r1, #8] b _082942F6 .align 2, 0 -_082942E8: .4byte gUnknown_3007630 -_082942EC: .4byte gUnknown_3007634 +_082942E8: .4byte 0x03007630 +_082942EC: .4byte 0x03007634 _082942F0: ldrb r0, [r1, #7] adds r0, #1 @@ -4194,8 +4194,8 @@ _08294308: bl STWI_send_DataTxREQ b _082943D6 .align 2, 0 -_0829432C: .4byte gUnknown_3007638 -_08294330: .4byte sub_08294488 +_0829432C: .4byte 0x03007638 +_08294330: .4byte 0x08294489 _08294334: ldr r0, [r4] adds r0, #0x68 @@ -4229,9 +4229,9 @@ _0829434C: bl STWI_send_DataTxAndChangeREQ b _082943D6 .align 2, 0 -_08294378: .4byte rfu_CB_sendData -_0829437C: .4byte gUnknown_3007638 -_08294380: .4byte gUnknown_3007634 +_08294378: .4byte 0x082943E1 +_0829437C: .4byte 0x03007638 +_08294380: .4byte 0x03007634 _08294384: ldr r0, _082943BC ldr r0, [r0] @@ -4260,10 +4260,10 @@ _0829439A: bl _call_via_r1 b _082943D6 .align 2, 0 -_082943BC: .4byte gUnknown_3007638 -_082943C0: .4byte gUnknown_3007634 -_082943C4: .4byte gUnknown_3007630 -_082943C8: .4byte gUnknown_3007608 +_082943BC: .4byte 0x03007638 +_082943C0: .4byte 0x03007634 +_082943C4: .4byte 0x03007630 +_082943C8: .4byte 0x03007608 _082943CC: ldr r0, _082943DC bl STWI_set_Callback_M @@ -4273,7 +4273,7 @@ _082943D6: pop {r0} bx r0 .align 2, 0 -_082943DC: .4byte rfu_CB_sendData2 +_082943DC: .4byte 0x08294479 thumb_func_end rfu_REQ_sendData thumb_func_start rfu_CB_sendData @@ -4350,9 +4350,9 @@ _0829444A: bx r0 .align 2, 0 _08294468: .4byte 0x00008020 -_0829446C: .4byte gUnknown_3007610 -_08294470: .4byte gUnknown_3007620 -_08294474: .4byte gUnknown_3007630 +_0829446C: .4byte 0x03007610 +_08294470: .4byte 0x03007620 +_08294474: .4byte 0x03007630 thumb_func_end rfu_CB_sendData thumb_func_start rfu_CB_sendData2 @@ -4480,11 +4480,11 @@ _08294548: add r8, r5 b _0829457C .align 2, 0 -_0829455C: .4byte gUnknown_3007630 -_08294560: .4byte gUnknown_3007638 +_0829455C: .4byte 0x03007630 +_08294560: .4byte 0x03007638 _08294564: .4byte 0x00008024 -_08294568: .4byte gUnknown_3007620 -_0829456C: .4byte gUnknown_3007610 +_08294568: .4byte 0x03007620 +_0829456C: .4byte 0x03007610 _08294570: adds r0, r7, r6 adds r0, #8 @@ -4546,9 +4546,9 @@ _082945CC: pop {r0} bx r0 .align 2, 0 -_082945DC: .4byte gUnknown_3007634 -_082945E0: .4byte gUnknown_3007630 -_082945E4: .4byte gUnknown_3007638 +_082945DC: .4byte 0x03007634 +_082945E0: .4byte 0x03007630 +_082945E4: .4byte 0x03007638 thumb_func_end rfu_constructSendLLFrame thumb_func_start rfu_STC_NI_constructLLSF @@ -4618,8 +4618,8 @@ _08294652: movs r5, #0 b _082946B4 .align 2, 0 -_08294664: .4byte gUnknown_3007630 -_08294668: .4byte gUnknown_890EEA4 +_08294664: .4byte 0x03007630 +_08294668: .4byte 0x0890EEA4 _0829466C: .4byte 0x00008022 _08294670: ldr r0, _0829469C @@ -4762,8 +4762,8 @@ _08294764: strb r1, [r2, #0xe] b _0829478E .align 2, 0 -_08294774: .4byte gUnknown_3007630 -_08294778: .4byte gUnknown_3007638 +_08294774: .4byte 0x03007630 +_08294778: .4byte 0x03007638 _0829477C: .4byte 0x00008022 _08294780: movs r0, #1 @@ -4813,7 +4813,7 @@ _082947CC: movs r0, #0 b _08294870 .align 2, 0 -_082947D0: .4byte gUnknown_3007610 +_082947D0: .4byte 0x03007610 _082947D4: ldr r0, _0829484C ldr r2, [r0] @@ -4877,9 +4877,9 @@ _08294826: movs r0, #0x10 b _08294864 .align 2, 0 -_0829484C: .4byte gUnknown_3007630 -_08294850: .4byte gUnknown_890EEA4 -_08294854: .4byte gUnknown_3007638 +_0829484C: .4byte 0x03007630 +_08294850: .4byte 0x0890EEA4 +_08294854: .4byte 0x03007638 _08294858: movs r0, #0x10 mov r1, r8 @@ -4930,9 +4930,9 @@ _082948A8: pop {r0} bx r0 .align 2, 0 -_082948B0: .4byte gUnknown_3007630 -_082948B4: .4byte gUnknown_3007634 -_082948B8: .4byte rfu_CB_recvData +_082948B0: .4byte 0x03007630 +_082948B4: .4byte 0x03007634 +_082948B8: .4byte 0x082948BD thumb_func_end rfu_REQ_recvData thumb_func_start rfu_CB_recvData @@ -4967,9 +4967,9 @@ rfu_CB_recvData: @ 0x082948BC bl rfu_STC_PARENT_analyzeRecvPacket b _08294908 .align 2, 0 -_082948F8: .4byte gUnknown_3007638 -_082948FC: .4byte gUnknown_3007634 -_08294900: .4byte gUnknown_3007630 +_082948F8: .4byte 0x03007638 +_082948FC: .4byte 0x03007634 +_08294900: .4byte 0x03007630 _08294904: bl rfu_STC_CHILD_analyzeRecvPacket _08294908: @@ -5048,9 +5048,9 @@ _08294980: bx r0 .align 2, 0 _08294998: .4byte 0x00008043 -_0829499C: .4byte gUnknown_3007630 -_082949A0: .4byte gUnknown_3007620 -_082949A4: .4byte gUnknown_3007634 +_0829499C: .4byte 0x03007630 +_082949A0: .4byte 0x03007620 +_082949A4: .4byte 0x03007634 thumb_func_end rfu_CB_recvData thumb_func_start rfu_STC_PARENT_analyzeRecvPacket @@ -5132,8 +5132,8 @@ _08294A28: pop {r0} bx r0 .align 2, 0 -_08294A38: .4byte gUnknown_3007638 -_08294A3C: .4byte gUnknown_3007634 +_08294A38: .4byte 0x03007638 +_08294A3C: .4byte 0x03007634 thumb_func_end rfu_STC_PARENT_analyzeRecvPacket thumb_func_start rfu_STC_CHILD_analyzeRecvPacket @@ -5180,8 +5180,8 @@ _08294A88: pop {r0} bx r0 .align 2, 0 -_08294A90: .4byte gUnknown_3007638 -_08294A94: .4byte gUnknown_3007634 +_08294A90: .4byte 0x03007638 +_08294A94: .4byte 0x03007634 thumb_func_end rfu_STC_CHILD_analyzeRecvPacket thumb_func_start rfu_STC_analyzeLLSF @@ -5213,8 +5213,8 @@ rfu_STC_analyzeLLSF: @ 0x08294A98 adds r0, r3, #0 b _08294CC6 .align 2, 0 -_08294ACC: .4byte gUnknown_3007630 -_08294AD0: .4byte gUnknown_890EEA4 +_08294ACC: .4byte 0x03007630 +_08294AD0: .4byte 0x0890EEA4 _08294AD4: movs r5, #0 movs r4, #0 @@ -5352,7 +5352,7 @@ _08294BD8: .4byte 0xFFFF00FF _08294BDC: .4byte 0xFF00FFFF _08294BE0: .4byte 0x00FFFFFF _08294BE4: .4byte 0x0000FFFF -_08294BE8: .4byte gUnknown_3007630 +_08294BE8: .4byte 0x03007630 _08294BEC: mov r5, sb ldrb r0, [r5, #3] @@ -5376,7 +5376,7 @@ _08294C00: ldrb r0, [r3, #4] b _08294C42 .align 2, 0 -_08294C18: .4byte gUnknown_3007620 +_08294C18: .4byte 0x03007620 _08294C1C: adds r0, r4, #1 lsls r0, r0, #0x18 @@ -5411,7 +5411,7 @@ _08294C42: bl rfu_STC_NI_receive_Sender b _08294CC4 .align 2, 0 -_08294C5C: .4byte gUnknown_3007630 +_08294C5C: .4byte 0x03007630 _08294C60: ldrb r1, [r3, #2] mov r2, sb @@ -5476,7 +5476,7 @@ _08294CC6: pop {r1} bx r1 .align 2, 0 -_08294CD8: .4byte gUnknown_3007630 +_08294CD8: .4byte 0x03007630 thumb_func_end rfu_STC_analyzeLLSF thumb_func_start rfu_STC_UNI_receive @@ -5508,7 +5508,7 @@ rfu_STC_UNI_receive: @ 0x08294CDC strh r0, [r5, #2] b _08294D66 .align 2, 0 -_08294D10: .4byte gUnknown_3007610 +_08294D10: .4byte 0x03007610 _08294D14: .4byte 0x00000701 _08294D18: ldrb r0, [r5, #7] @@ -5568,8 +5568,8 @@ _08294D7A: bx r0 .align 2, 0 _08294D84: .4byte 0x00008042 -_08294D88: .4byte gUnknown_3007638 -_08294D8C: .4byte gUnknown_3007634 +_08294D88: .4byte 0x03007638 +_08294D8C: .4byte 0x03007634 thumb_func_end rfu_STC_UNI_receive thumb_func_start rfu_STC_NI_receive_Sender @@ -5681,7 +5681,7 @@ _08294E0A: str r0, [r1] b _08294E86 .align 2, 0 -_08294E5C: .4byte gUnknown_3007620 +_08294E5C: .4byte 0x03007620 _08294E60: .4byte 0x00008022 _08294E64: .4byte 0x00008021 _08294E68: .4byte 0x00008023 @@ -5820,8 +5820,8 @@ _08294F56: _08294F68: .4byte 0x80230000 _08294F6C: .4byte 0x00008020 _08294F70: .4byte 0x04000208 -_08294F74: .4byte gUnknown_3007634 -_08294F78: .4byte gUnknown_3007620 +_08294F74: .4byte 0x03007634 +_08294F78: .4byte 0x03007620 thumb_func_end rfu_STC_NI_receive_Sender thumb_func_start rfu_STC_NI_receive_Receiver @@ -5875,8 +5875,8 @@ rfu_STC_NI_receive_Receiver: @ 0x08294F7C strh r0, [r4, #0x34] b _08295032 .align 2, 0 -_08294FDC: .4byte gUnknown_3007620 -_08294FE0: .4byte gUnknown_3007634 +_08294FDC: .4byte 0x03007620 +_08294FE0: .4byte 0x03007634 _08294FE4: .4byte 0x00008042 _08294FE8: .4byte 0x00008043 _08294FEC: @@ -6008,10 +6008,10 @@ _082950D2: bx r0 .align 2, 0 _082950E4: .4byte 0x00008041 -_082950E8: .4byte gUnknown_3007638 +_082950E8: .4byte 0x03007638 _082950EC: .4byte 0x00008042 _082950F0: .4byte 0x04000208 -_082950F4: .4byte gUnknown_3007634 +_082950F4: .4byte 0x03007634 thumb_func_end rfu_STC_NI_receive_Receiver thumb_func_start rfu_STC_NI_initSlot_asRecvControllData @@ -6031,7 +6031,7 @@ rfu_STC_NI_initSlot_asRecvControllData: @ 0x082950F8 adds r1, #0xf b _08295120 .align 2, 0 -_08295114: .4byte gUnknown_3007630 +_08295114: .4byte 0x03007630 _08295118: movs r5, #2 adds r0, r4, #0 @@ -6063,7 +6063,7 @@ _08295120: b _0829517E .align 2, 0 _08295150: .4byte 0x00000702 -_08295154: .4byte gUnknown_3007634 +_08295154: .4byte 0x03007634 _08295158: strh r3, [r2, #0x18] ldrb r0, [r1] @@ -6111,7 +6111,7 @@ rfu_STC_NI_initSlot_asRecvDataEntity: @ 0x08295188 adds r0, #4 b _08295202 .align 2, 0 -_082951A8: .4byte gUnknown_3007630 +_082951A8: .4byte 0x03007630 _082951AC: ldr r1, _082951F0 lsls r0, r5, #2 @@ -6146,9 +6146,9 @@ _082951AC: bl rfu_STC_releaseFrame b _08295234 .align 2, 0 -_082951F0: .4byte gUnknown_3007620 -_082951F4: .4byte gUnknown_3007634 -_082951F8: .4byte gUnknown_3007630 +_082951F0: .4byte 0x03007620 +_082951F4: .4byte 0x03007634 +_082951F8: .4byte 0x03007630 _082951FC: .4byte 0x00000701 _08295200: ldr r0, [r2, #0x68] @@ -6264,10 +6264,10 @@ _082952C6: pop {r0} bx r0 .align 2, 0 -_082952CC: .4byte gUnknown_3007630 +_082952CC: .4byte 0x03007630 _082952D0: .4byte 0x04000208 -_082952D4: .4byte gUnknown_3007634 -_082952D8: .4byte gUnknown_3007620 +_082952D4: .4byte 0x03007634 +_082952D8: .4byte 0x03007620 thumb_func_end rfu_NI_checkCommFailCounter thumb_func_start rfu_REQ_noise @@ -6281,5 +6281,6 @@ rfu_REQ_noise: @ 0x082952DC pop {r0} bx r0 .align 2, 0 -_082952F0: .4byte rfu_STC_REQ_callback +_082952F0: .4byte 0x082926C1 thumb_func_end rfu_REQ_noise + diff --git a/asm/librfu_stwi.s b/asm/librfu_stwi.s index 2f5cd2a..921ee87 100644 --- a/asm/librfu_stwi.s +++ b/asm/librfu_stwi.s @@ -1,7 +1,7 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - .text - .syntax unified +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified thumb_func_start STWI_init_all STWI_init_all: @ 0x08290FA0 @@ -27,9 +27,9 @@ STWI_init_all: @ 0x08290FA0 b _08290FE6 .align 2, 0 _08290FC8: .4byte 0x040000D4 -_08290FCC: .4byte IntrSIO32 +_08290FCC: .4byte 0x08291ADC _08290FD0: .4byte 0x800004B0 -_08290FD4: .4byte gUnknown_3007608 +_08290FD4: .4byte 0x03007608 _08290FD8: .4byte 0x00000A48 _08290FDC: ldr r0, _08291060 @@ -97,8 +97,8 @@ _08290FE6: pop {r0} bx r0 .align 2, 0 -_08291060: .4byte IntrSIO32 -_08291064: .4byte gUnknown_3007608 +_08291060: .4byte 0x08291ADC +_08291064: .4byte 0x03007608 _08291068: .4byte 0x04000134 _0829106C: .4byte 0x00005003 _08291070: .4byte 0x04000208 @@ -130,8 +130,8 @@ STWI_init_timer: @ 0x08291078 pop {r0} bx r0 .align 2, 0 -_082910A4: .4byte STWI_intr_timer -_082910A8: .4byte gUnknown_3007608 +_082910A4: .4byte 0x0829179D +_082910A8: .4byte 0x03007608 _082910AC: .4byte 0x04000208 _082910B0: .4byte 0x04000200 thumb_func_end STWI_init_timer @@ -219,7 +219,7 @@ _082910F4: .align 2, 0 _0829114C: .4byte 0x04000134 _08291150: .4byte 0x000080A0 -_08291154: .4byte gUnknown_3007608 +_08291154: .4byte 0x03007608 _08291158: .4byte 0x04000100 _0829115C: .4byte 0x04000102 _08291160: .4byte 0x000080A2 @@ -236,7 +236,7 @@ STWI_set_MS_mode: @ 0x08291168 strb r0, [r1, #0x14] bx lr .align 2, 0 -_08291178: .4byte gUnknown_3007608 +_08291178: .4byte 0x03007608 thumb_func_end STWI_set_MS_mode thumb_func_start STWI_read_status @@ -264,14 +264,14 @@ _0829119C: ldrh r0, [r0, #0x12] b _082911D2 .align 2, 0 -_082911A4: .4byte gUnknown_3007608 +_082911A4: .4byte 0x03007608 _082911A8: ldr r0, _082911B0 ldr r0, [r0] ldrb r0, [r0, #0x14] b _082911D2 .align 2, 0 -_082911B0: .4byte gUnknown_3007608 +_082911B0: .4byte 0x03007608 _082911B4: ldr r0, _082911C0 ldr r0, [r0] @@ -280,14 +280,14 @@ _082911B4: lsrs r0, r0, #0x10 b _082911D2 .align 2, 0 -_082911C0: .4byte gUnknown_3007608 +_082911C0: .4byte 0x03007608 _082911C4: ldr r0, _082911CC ldr r0, [r0] ldrb r0, [r0, #6] b _082911D2 .align 2, 0 -_082911CC: .4byte gUnknown_3007608 +_082911CC: .4byte 0x03007608 _082911D0: ldr r0, _082911D8 _082911D2: @@ -322,7 +322,7 @@ STWI_set_Callback_M: @ 0x082911F4 str r0, [r1, #0x18] bx lr .align 2, 0 -_082911FC: .4byte gUnknown_3007608 +_082911FC: .4byte 0x03007608 thumb_func_end STWI_set_Callback_M thumb_func_start STWI_set_Callback_S @@ -332,7 +332,7 @@ STWI_set_Callback_S: @ 0x08291200 str r0, [r1, #0x1c] bx lr .align 2, 0 -_08291208: .4byte gUnknown_3007608 +_08291208: .4byte 0x03007608 thumb_func_end STWI_set_Callback_S thumb_func_start STWI_set_Callback_ID @@ -342,7 +342,7 @@ STWI_set_Callback_ID: @ 0x0829120C str r0, [r1, #0x20] bx lr .align 2, 0 -_08291214: .4byte gUnknown_3007608 +_08291214: .4byte 0x03007608 thumb_func_end STWI_set_Callback_ID thumb_func_start STWI_poll_CommandEnd @@ -367,7 +367,7 @@ _08291232: pop {r1} bx r1 .align 2, 0 -_0829123C: .4byte gUnknown_3007608 +_0829123C: .4byte 0x03007608 thumb_func_end STWI_poll_CommandEnd thumb_func_start STWI_send_ResetREQ @@ -387,7 +387,7 @@ _0829125A: pop {r0} bx r0 .align 2, 0 -_08291260: .4byte gUnknown_3007608 +_08291260: .4byte 0x03007608 thumb_func_end STWI_send_ResetREQ thumb_func_start STWI_send_LinkStatusREQ @@ -407,7 +407,7 @@ _0829127E: pop {r0} bx r0 .align 2, 0 -_08291284: .4byte gUnknown_3007608 +_08291284: .4byte 0x03007608 thumb_func_end STWI_send_LinkStatusREQ thumb_func_start STWI_send_VersionStatusREQ @@ -427,7 +427,7 @@ _082912A2: pop {r0} bx r0 .align 2, 0 -_082912A8: .4byte gUnknown_3007608 +_082912A8: .4byte 0x03007608 thumb_func_end STWI_send_VersionStatusREQ thumb_func_start STWI_send_SystemStatusREQ @@ -447,7 +447,7 @@ _082912C6: pop {r0} bx r0 .align 2, 0 -_082912CC: .4byte gUnknown_3007608 +_082912CC: .4byte 0x03007608 thumb_func_end STWI_send_SystemStatusREQ thumb_func_start STWI_send_SlotStatusREQ @@ -467,7 +467,7 @@ _082912EA: pop {r0} bx r0 .align 2, 0 -_082912F0: .4byte gUnknown_3007608 +_082912F0: .4byte 0x03007608 thumb_func_end STWI_send_SlotStatusREQ thumb_func_start STWI_send_ConfigStatusREQ @@ -487,7 +487,7 @@ _0829130E: pop {r0} bx r0 .align 2, 0 -_08291314: .4byte gUnknown_3007608 +_08291314: .4byte 0x03007608 thumb_func_end STWI_send_ConfigStatusREQ thumb_func_start STWI_send_GameConfigREQ @@ -535,7 +535,7 @@ _08291364: pop {r0} bx r0 .align 2, 0 -_0829136C: .4byte gUnknown_3007608 +_0829136C: .4byte 0x03007608 thumb_func_end STWI_send_GameConfigREQ thumb_func_start STWI_send_SystemConfigREQ @@ -570,7 +570,7 @@ _082913A6: pop {r0} bx r0 .align 2, 0 -_082913AC: .4byte gUnknown_3007608 +_082913AC: .4byte 0x03007608 thumb_func_end STWI_send_SystemConfigREQ thumb_func_start STWI_send_SC_StartREQ @@ -590,7 +590,7 @@ _082913CA: pop {r0} bx r0 .align 2, 0 -_082913D0: .4byte gUnknown_3007608 +_082913D0: .4byte 0x03007608 thumb_func_end STWI_send_SC_StartREQ thumb_func_start STWI_send_SC_PollingREQ @@ -610,7 +610,7 @@ _082913EE: pop {r0} bx r0 .align 2, 0 -_082913F4: .4byte gUnknown_3007608 +_082913F4: .4byte 0x03007608 thumb_func_end STWI_send_SC_PollingREQ thumb_func_start STWI_send_SC_EndREQ @@ -630,7 +630,7 @@ _08291412: pop {r0} bx r0 .align 2, 0 -_08291418: .4byte gUnknown_3007608 +_08291418: .4byte 0x03007608 thumb_func_end STWI_send_SC_EndREQ thumb_func_start STWI_send_SP_StartREQ @@ -650,7 +650,7 @@ _08291436: pop {r0} bx r0 .align 2, 0 -_0829143C: .4byte gUnknown_3007608 +_0829143C: .4byte 0x03007608 thumb_func_end STWI_send_SP_StartREQ thumb_func_start STWI_send_SP_PollingREQ @@ -670,7 +670,7 @@ _0829145A: pop {r0} bx r0 .align 2, 0 -_08291460: .4byte gUnknown_3007608 +_08291460: .4byte 0x03007608 thumb_func_end STWI_send_SP_PollingREQ thumb_func_start STWI_send_SP_EndREQ @@ -690,7 +690,7 @@ _0829147E: pop {r0} bx r0 .align 2, 0 -_08291484: .4byte gUnknown_3007608 +_08291484: .4byte 0x03007608 thumb_func_end STWI_send_SP_EndREQ thumb_func_start STWI_send_CP_StartREQ @@ -716,7 +716,7 @@ _082914AC: pop {r0} bx r0 .align 2, 0 -_082914B4: .4byte gUnknown_3007608 +_082914B4: .4byte 0x03007608 thumb_func_end STWI_send_CP_StartREQ thumb_func_start STWI_send_CP_PollingREQ @@ -736,7 +736,7 @@ _082914D2: pop {r0} bx r0 .align 2, 0 -_082914D8: .4byte gUnknown_3007608 +_082914D8: .4byte 0x03007608 thumb_func_end STWI_send_CP_PollingREQ thumb_func_start STWI_send_CP_EndREQ @@ -756,7 +756,7 @@ _082914F6: pop {r0} bx r0 .align 2, 0 -_082914FC: .4byte gUnknown_3007608 +_082914FC: .4byte 0x03007608 thumb_func_end STWI_send_CP_EndREQ thumb_func_start STWI_send_DataTxREQ @@ -795,7 +795,7 @@ _0829153E: pop {r0} bx r0 .align 2, 0 -_08291544: .4byte gUnknown_3007608 +_08291544: .4byte 0x03007608 thumb_func_end STWI_send_DataTxREQ thumb_func_start STWI_send_DataTxAndChangeREQ @@ -834,7 +834,7 @@ _08291586: pop {r0} bx r0 .align 2, 0 -_0829158C: .4byte gUnknown_3007608 +_0829158C: .4byte 0x03007608 thumb_func_end STWI_send_DataTxAndChangeREQ thumb_func_start STWI_send_DataRxREQ @@ -854,7 +854,7 @@ _082915AA: pop {r0} bx r0 .align 2, 0 -_082915B0: .4byte gUnknown_3007608 +_082915B0: .4byte 0x03007608 thumb_func_end STWI_send_DataRxREQ thumb_func_start STWI_send_MS_ChangeREQ @@ -874,7 +874,7 @@ _082915CE: pop {r0} bx r0 .align 2, 0 -_082915D4: .4byte gUnknown_3007608 +_082915D4: .4byte 0x03007608 thumb_func_end STWI_send_MS_ChangeREQ thumb_func_start STWI_send_DataReadyAndChangeREQ @@ -896,7 +896,7 @@ STWI_send_DataReadyAndChangeREQ: @ 0x082915D8 strb r3, [r0, #4] b _0829161A .align 2, 0 -_082915FC: .4byte gUnknown_3007608 +_082915FC: .4byte 0x03007608 _08291600: ldr r2, _08291624 ldr r1, [r2] @@ -918,7 +918,7 @@ _0829161E: pop {r0} bx r0 .align 2, 0 -_08291624: .4byte gUnknown_3007608 +_08291624: .4byte 0x03007608 thumb_func_end STWI_send_DataReadyAndChangeREQ thumb_func_start STWI_send_DisconnectedAndChangeREQ @@ -953,7 +953,7 @@ _0829165E: pop {r0} bx r0 .align 2, 0 -_08291664: .4byte gUnknown_3007608 +_08291664: .4byte 0x03007608 thumb_func_end STWI_send_DisconnectedAndChangeREQ thumb_func_start STWI_send_ResumeRetransmitAndChangeREQ @@ -973,7 +973,7 @@ _08291682: pop {r0} bx r0 .align 2, 0 -_08291688: .4byte gUnknown_3007608 +_08291688: .4byte 0x03007608 thumb_func_end STWI_send_ResumeRetransmitAndChangeREQ thumb_func_start STWI_send_DisconnectREQ @@ -999,7 +999,7 @@ _082916B0: pop {r0} bx r0 .align 2, 0 -_082916B8: .4byte gUnknown_3007608 +_082916B8: .4byte 0x03007608 thumb_func_end STWI_send_DisconnectREQ thumb_func_start STWI_send_TestModeREQ @@ -1029,7 +1029,7 @@ _082916E8: pop {r0} bx r0 .align 2, 0 -_082916F0: .4byte gUnknown_3007608 +_082916F0: .4byte 0x03007608 thumb_func_end STWI_send_TestModeREQ thumb_func_start STWI_send_CPR_StartREQ @@ -1062,7 +1062,7 @@ _08291726: pop {r0} bx r0 .align 2, 0 -_0829172C: .4byte gUnknown_3007608 +_0829172C: .4byte 0x03007608 thumb_func_end STWI_send_CPR_StartREQ thumb_func_start STWI_send_CPR_PollingREQ @@ -1082,7 +1082,7 @@ _0829174A: pop {r0} bx r0 .align 2, 0 -_08291750: .4byte gUnknown_3007608 +_08291750: .4byte 0x03007608 thumb_func_end STWI_send_CPR_PollingREQ thumb_func_start STWI_send_CPR_EndREQ @@ -1102,7 +1102,7 @@ _0829176E: pop {r0} bx r0 .align 2, 0 -_08291774: .4byte gUnknown_3007608 +_08291774: .4byte 0x03007608 thumb_func_end STWI_send_CPR_EndREQ thumb_func_start STWI_send_StopModeREQ @@ -1122,7 +1122,7 @@ _08291792: pop {r0} bx r0 .align 2, 0 -_08291798: .4byte gUnknown_3007608 +_08291798: .4byte 0x03007608 thumb_func_end STWI_send_StopModeREQ thumb_func_start STWI_intr_timer @@ -1139,7 +1139,7 @@ STWI_intr_timer: @ 0x0829179C beq _082917D0 b _082917F8 .align 2, 0 -_082917B4: .4byte gUnknown_3007608 +_082917B4: .4byte 0x03007608 _082917B8: cmp r0, #3 beq _082917DA @@ -1203,7 +1203,7 @@ STWI_set_timer: @ 0x08291800 beq _08291846 b _08291884 .align 2, 0 -_08291830: .4byte gUnknown_3007608 +_08291830: .4byte 0x03007608 _08291834: .4byte 0x04000100 _08291838: .4byte 0x04000208 _0829183C: @@ -1287,7 +1287,7 @@ STWI_stop_timer: @ 0x082918AC strh r1, [r0] bx lr .align 2, 0 -_082918CC: .4byte gUnknown_3007608 +_082918CC: .4byte 0x03007608 _082918D0: .4byte 0x04000100 _082918D4: .4byte 0x04000102 thumb_func_end STWI_stop_timer @@ -1316,7 +1316,7 @@ STWI_init: @ 0x082918D8 b _08291956 .align 2, 0 _08291904: .4byte 0x04000208 -_08291908: .4byte gUnknown_3007608 +_08291908: .4byte 0x03007608 _0829190C: ldr r4, _08291938 ldr r2, [r4] @@ -1340,7 +1340,7 @@ _0829190C: bl _call_via_r2 b _08291956 .align 2, 0 -_08291938: .4byte gUnknown_3007608 +_08291938: .4byte 0x03007608 _0829193C: ldrb r0, [r2, #0x14] cmp r0, #0 @@ -1450,7 +1450,7 @@ STWI_start_Command: @ 0x082919B0 pop {r1} bx r1 .align 2, 0 -_08291A08: .4byte gUnknown_3007608 +_08291A08: .4byte 0x03007608 _08291A0C: .4byte 0x99660000 _08291A10: .4byte 0x04000120 _08291A14: .4byte 0x04000208 @@ -1473,7 +1473,7 @@ STWI_restart_Command: @ 0x08291A24 bl STWI_start_Command b _08291A9A .align 2, 0 -_08291A3C: .4byte gUnknown_3007608 +_08291A3C: .4byte 0x03007608 _08291A40: ldrb r0, [r2, #6] cmp r0, #0x27 @@ -1554,7 +1554,8 @@ STWI_reset_ClockCounter: @ 0x08291AA4 movs r0, #0 bx lr .align 2, 0 -_08291AD0: .4byte gUnknown_3007608 +_08291AD0: .4byte 0x03007608 _08291AD4: .4byte 0x04000120 _08291AD8: .4byte 0x00005003 thumb_func_end STWI_reset_ClockCounter + diff --git a/asm/libs.s.bak b/asm/libs.s.bak deleted file mode 100644 index f66e53e..0000000 --- a/asm/libs.s.bak +++ /dev/null @@ -1,8850 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - .text - .syntax unified - - thumb_func_start memcpy -memcpy: @ 0x08297D0C - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r5, #0 - adds r3, r1, #0 - cmp r2, #0xf - bls _08297D4C - adds r0, r3, #0 - orrs r0, r5 - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _08297D4C - adds r1, r5, #0 -_08297D26: - ldm r3!, {r0} - stm r1!, {r0} - ldm r3!, {r0} - stm r1!, {r0} - ldm r3!, {r0} - stm r1!, {r0} - ldm r3!, {r0} - stm r1!, {r0} - subs r2, #0x10 - cmp r2, #0xf - bhi _08297D26 - cmp r2, #3 - bls _08297D4A -_08297D40: - ldm r3!, {r0} - stm r1!, {r0} - subs r2, #4 - cmp r2, #3 - bhi _08297D40 -_08297D4A: - adds r4, r1, #0 -_08297D4C: - subs r2, #1 - movs r0, #1 - rsbs r0, r0, #0 - cmp r2, r0 - beq _08297D66 - adds r1, r0, #0 -_08297D58: - ldrb r0, [r3] - strb r0, [r4] - adds r3, #1 - adds r4, #1 - subs r2, #1 - cmp r2, r1 - bne _08297D58 -_08297D66: - adds r0, r5, #0 - pop {r4, r5, pc} - .align 2, 0 - thumb_func_end memcpy - - thumb_func_start memset -memset: @ 0x08297D6C - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r3, r5, #0 - cmp r2, #3 - bls _08297DB2 - movs r0, #3 - ands r0, r5 - cmp r0, #0 - bne _08297DB2 - adds r1, r5, #0 - movs r0, #0xff - ands r4, r0 - lsls r3, r4, #8 - orrs r3, r4 - lsls r0, r3, #0x10 - orrs r3, r0 - cmp r2, #0xf - bls _08297DA6 -_08297D92: - stm r1!, {r3} - stm r1!, {r3} - stm r1!, {r3} - stm r1!, {r3} - subs r2, #0x10 - cmp r2, #0xf - bhi _08297D92 - b _08297DA6 -_08297DA2: - stm r1!, {r3} - subs r2, #4 -_08297DA6: - cmp r2, #3 - bhi _08297DA2 - adds r3, r1, #0 - b _08297DB2 -_08297DAE: - strb r4, [r3] - adds r3, #1 -_08297DB2: - adds r0, r2, #0 - subs r2, #1 - cmp r0, #0 - bne _08297DAE - adds r0, r5, #0 - pop {r4, r5, pc} - .align 2, 0 - thumb_func_end memset - - thumb_func_start strcmp -strcmp: @ 0x08297DC0 - push {r4, r5, lr} - adds r2, r0, #0 - adds r3, r1, #0 - orrs r0, r3 - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _08297E06 - ldr r1, [r2] - ldr r0, [r3] - cmp r1, r0 - bne _08297E06 - ldr r5, _08297DEC - ldr r4, _08297DF0 -_08297DDC: - ldr r1, [r2] - adds r0, r1, r5 - bics r0, r1 - ands r0, r4 - cmp r0, #0 - beq _08297DF4 - movs r0, #0 - b _08297E18 - .align 2, 0 -_08297DEC: .4byte 0xFEFEFEFF -_08297DF0: .4byte 0x80808080 -_08297DF4: - adds r2, #4 - adds r3, #4 - ldr r1, [r2] - ldr r0, [r3] - cmp r1, r0 - beq _08297DDC - b _08297E06 -_08297E02: - adds r2, #1 - adds r3, #1 -_08297E06: - ldrb r0, [r2] - cmp r0, #0 - beq _08297E12 - ldrb r1, [r3] - cmp r0, r1 - beq _08297E02 -_08297E12: - ldrb r2, [r2] - ldrb r3, [r3] - subs r0, r2, r3 -_08297E18: - pop {r4, r5, pc} - .align 2, 0 - thumb_func_end strcmp - - thumb_func_start strcpy -strcpy: @ 0x08297E1C - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r3, r6, #0 - adds r2, r1, #0 - adds r0, r2, #0 - orrs r0, r6 - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _08297E54 - ldr r1, [r2] - ldr r5, _08297E3C - adds r0, r1, r5 - bics r0, r1 - ldr r4, _08297E40 - b _08297E4E - .align 2, 0 -_08297E3C: .4byte 0xFEFEFEFF -_08297E40: .4byte 0x80808080 -_08297E44: - ldm r2!, {r0} - stm r3!, {r0} - ldr r1, [r2] - adds r0, r1, r5 - bics r0, r1 -_08297E4E: - ands r0, r4 - cmp r0, #0 - beq _08297E44 -_08297E54: - ldrb r0, [r2] - strb r0, [r3] - lsls r0, r0, #0x18 - adds r2, #1 - adds r3, #1 - cmp r0, #0 - bne _08297E54 - adds r0, r6, #0 - pop {r4, r5, r6, pc} - .align 2, 0 - thumb_func_end strcpy - - thumb_func_start vsprintf -vsprintf: @ 0x08297E68 - push {r4, r5, lr} - sub sp, #0x58 - mov r4, sp - movs r5, #0 - movs r3, #0x82 - lsls r3, r3, #2 - strh r3, [r4, #0xc] - str r0, [sp] - str r0, [sp, #0x10] - ldr r0, _08297E94 - str r0, [sp, #8] - str r0, [sp, #0x14] - ldr r0, _08297E98 - ldr r0, [r0] - str r0, [sp, #0x54] - mov r0, sp - bl vfprintf - ldr r1, [sp] - strb r5, [r1] - add sp, #0x58 - pop {r4, r5, pc} - .align 2, 0 -_08297E94: .4byte 0x7FFFFFFF -_08297E98: .4byte gUnknown_203CF1C - thumb_func_end vsprintf - - thumb_func_start sub_08297E9C -sub_08297E9C: @ 0x08297E9C - push {r4, lr} - adds r4, r1, #0 - ldr r1, [r4, #8] - cmp r1, #0 - beq _08297EB4 - adds r1, r4, #0 - bl __sfvwrite - movs r1, #0 - str r1, [r4, #8] - str r1, [r4, #4] - b _08297EB8 -_08297EB4: - str r1, [r4, #4] - movs r0, #0 -_08297EB8: - pop {r4, pc} - .align 2, 0 - thumb_func_end sub_08297E9C - - thumb_func_start sub_08297EBC -sub_08297EBC: @ 0x08297EBC - push {r4, r5, lr} - ldr r4, _08297F2C - add sp, r4 - adds r5, r0, #0 - ldr r0, [r5, #0x54] - str r0, [sp, #0x54] - mov r3, sp - movs r0, #3 - rsbs r0, r0, #0 - ldrh r4, [r5, #0xc] - ands r0, r4 - movs r4, #0 - strh r0, [r3, #0xc] - ldrh r0, [r5, #0xe] - strh r0, [r3, #0xe] - ldr r0, [r5, #0x1c] - str r0, [sp, #0x1c] - ldr r0, [r5, #0x24] - str r0, [sp, #0x24] - add r0, sp, #0x58 - str r0, [sp] - str r0, [sp, #0x10] - movs r0, #0x80 - lsls r0, r0, #3 - str r0, [sp, #8] - str r0, [sp, #0x14] - str r4, [sp, #0x18] - mov r0, sp - bl vfprintf - adds r4, r0, #0 - cmp r4, #0 - blt _08297F0C - mov r0, sp - bl fflush - cmp r0, #0 - beq _08297F0C - movs r4, #1 - rsbs r4, r4, #0 -_08297F0C: - mov r1, sp - movs r0, #0x40 - ldrh r1, [r1, #0xc] - ands r0, r1 - cmp r0, #0 - beq _08297F20 - movs r0, #0x40 - ldrh r1, [r5, #0xc] - orrs r0, r1 - strh r0, [r5, #0xc] -_08297F20: - adds r0, r4, #0 - movs r3, #0x8b - lsls r3, r3, #3 - add sp, r3 - pop {r4, r5, pc} - .align 2, 0 -_08297F2C: .4byte 0xFFFFFBA8 - thumb_func_end sub_08297EBC - - thumb_func_start vfprintf -vfprintf: @ 0x08297F30 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r3, r2, #0 - ldr r0, [r4, #0x54] - adds r1, r4, #0 - adds r2, r5, #0 - bl _vfprintf_r - pop {r4, r5, pc} - thumb_func_end vfprintf - - thumb_func_start _vfprintf_r -_vfprintf_r: @ 0x08297F44 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r4, _08297FAC - add sp, r4 - str r0, [sp, #0x1dc] - str r1, [sp, #0x1e0] - adds r4, r2, #0 - mov sl, r3 - bl localeconv - ldr r0, [r0] - str r0, [sp, #0x1f8] - movs r1, #0 - add r0, sp, #0x1d0 - str r1, [r0] - ldr r1, [sp, #0x1e0] - ldr r0, [r1, #0x54] - cmp r0, #0 - bne _08297F76 - ldr r0, _08297FB0 - ldr r0, [r0] - str r0, [r1, #0x54] -_08297F76: - ldr r2, [sp, #0x1e0] - ldr r1, [r2, #0x54] - ldr r0, [r1, #0x38] - cmp r0, #0 - bne _08297F86 - adds r0, r1, #0 - bl __sinit -_08297F86: - movs r0, #8 - ldr r1, [sp, #0x1e0] - ldrh r1, [r1, #0xc] - ands r0, r1 - cmp r0, #0 - beq _08297F9A - ldr r2, [sp, #0x1e0] - ldr r0, [r2, #0x10] - cmp r0, #0 - bne _08297FB4 -_08297F9A: - ldr r0, [sp, #0x1e0] - bl __swsetup - cmp r0, #0 - beq _08297FB4 - movs r0, #1 - rsbs r0, r0, #0 - bl _08298E94 - .align 2, 0 -_08297FAC: .4byte 0xFFFFFDE0 -_08297FB0: .4byte gUnknown_203CF1C -_08297FB4: - movs r0, #0x1a - ldr r1, [sp, #0x1e0] - ldrh r1, [r1, #0xc] - ands r0, r1 - cmp r0, #0xa - bne _08297FD8 - ldr r2, [sp, #0x1e0] - movs r1, #0xe - ldrsh r0, [r2, r1] - cmp r0, #0 - blt _08297FD8 - adds r0, r2, #0 - adds r1, r4, #0 - mov r2, sl - bl sub_08297EBC - bl _08298E94 -_08297FD8: - str r4, [sp, #0x1e4] - add r1, sp, #0x1c - add r5, sp, #0x28 - str r5, [sp, #0x1c] - movs r0, #0 - str r0, [r1, #8] - str r0, [r1, #4] - movs r2, #0 - str r2, [sp, #0x1f0] - mov sb, r1 - movs r4, #0xe6 - lsls r4, r4, #1 - add r4, sp - str r4, [sp, #0x214] - movs r0, #0xe8 - lsls r0, r0, #1 - add r0, sp - str r0, [sp, #0x218] -_08297FFC: - ldr r1, [sp, #0x1e4] - mov r8, r1 -_08298000: - ldr r0, _082980AC - ldr r0, [r0] - ldr r1, _082980B0 - ldr r3, [r1] - ldr r2, [sp, #0x218] - str r2, [sp] - ldr r1, [sp, #0x214] - ldr r2, [sp, #0x1e4] - bl _mbtowc_r - adds r4, r0, #0 - cmp r4, #0 - ble _0829802E - ldr r0, [sp, #0x1e4] - adds r0, r0, r4 - str r0, [sp, #0x1e4] - add r0, sp, #0x1cc - ldr r0, [r0] - cmp r0, #0x25 - bne _08298000 - ldr r1, [sp, #0x1e4] - subs r1, #1 - str r1, [sp, #0x1e4] -_0829802E: - ldr r2, [sp, #0x1e4] - mov r0, r8 - subs r6, r2, r0 - cmp r6, #0 - beq _08298066 - str r0, [r5] - str r6, [r5, #4] - mov r1, sb - ldr r0, [r1, #8] - adds r0, r0, r6 - str r0, [r1, #8] - adds r5, #8 - ldr r0, [r1, #4] - adds r0, #1 - str r0, [r1, #4] - cmp r0, #7 - ble _08298060 - ldr r0, [sp, #0x1e0] - bl sub_08297E9C - cmp r0, #0 - beq _0829805E - bl _08298E80 -_0829805E: - add r5, sp, #0x28 -_08298060: - ldr r2, [sp, #0x1f0] - adds r2, r2, r6 - str r2, [sp, #0x1f0] -_08298066: - cmp r4, #0 - bgt _0829806E - bl _08298E68 -_0829806E: - ldr r4, [sp, #0x1e4] - adds r4, #1 - str r4, [sp, #0x1e4] - movs r0, #0 - str r0, [sp, #0x1ec] - movs r1, #0 - str r1, [sp, #0x208] - movs r2, #0 - str r2, [sp, #0x1f4] - movs r6, #1 - rsbs r6, r6, #0 - ldr r0, _082980B4 - add r0, sp - strb r2, [r0] -_0829808A: - ldr r0, [sp, #0x1e4] - ldrb r0, [r0] - str r0, [sp, #0x1e8] - ldr r1, [sp, #0x1e4] - adds r1, #1 - str r1, [sp, #0x1e4] -_08298096: - ldr r0, [sp, #0x1e8] - subs r0, #0x20 - cmp r0, #0x58 - bls _082980A0 - b _08298752 -_082980A0: - lsls r0, r0, #2 - ldr r1, _082980B8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_082980AC: .4byte gUnknown_203CF1C -_082980B0: .4byte gUnknown_203CF20 -_082980B4: .4byte 0x000001C9 -_082980B8: .4byte _082980BC -_082980BC: @ jump table - .4byte _08298220 @ case 0 - .4byte _08298752 @ case 1 - .4byte _08298752 @ case 2 - .4byte _08298238 @ case 3 - .4byte _08298752 @ case 4 - .4byte _08298752 @ case 5 - .4byte _08298752 @ case 6 - .4byte _08298752 @ case 7 - .4byte _08298752 @ case 8 - .4byte _08298752 @ case 9 - .4byte _0829823C @ case 10 - .4byte _08298256 @ case 11 - .4byte _08298752 @ case 12 - .4byte _08298252 @ case 13 - .4byte _08298264 @ case 14 - .4byte _08298752 @ case 15 - .4byte _082982C4 @ case 16 - .4byte _082982C8 @ case 17 - .4byte _082982C8 @ case 18 - .4byte _082982C8 @ case 19 - .4byte _082982C8 @ case 20 - .4byte _082982C8 @ case 21 - .4byte _082982C8 @ case 22 - .4byte _082982C8 @ case 23 - .4byte _082982C8 @ case 24 - .4byte _082982C8 @ case 25 - .4byte _08298752 @ case 26 - .4byte _08298752 @ case 27 - .4byte _08298752 @ case 28 - .4byte _08298752 @ case 29 - .4byte _08298752 @ case 30 - .4byte _08298752 @ case 31 - .4byte _08298752 @ case 32 - .4byte _08298752 @ case 33 - .4byte _08298752 @ case 34 - .4byte _08298752 @ case 35 - .4byte _08298332 @ case 36 - .4byte _08298384 @ case 37 - .4byte _08298752 @ case 38 - .4byte _08298384 @ case 39 - .4byte _08298752 @ case 40 - .4byte _08298752 @ case 41 - .4byte _08298752 @ case 42 - .4byte _08298752 @ case 43 - .4byte _082982EC @ case 44 - .4byte _08298752 @ case 45 - .4byte _08298752 @ case 46 - .4byte _0829853A @ case 47 - .4byte _08298752 @ case 48 - .4byte _08298752 @ case 49 - .4byte _08298752 @ case 50 - .4byte _08298752 @ case 51 - .4byte _08298752 @ case 52 - .4byte _082985D2 @ case 53 - .4byte _08298752 @ case 54 - .4byte _08298752 @ case 55 - .4byte _0829860E @ case 56 - .4byte _08298752 @ case 57 - .4byte _08298752 @ case 58 - .4byte _08298752 @ case 59 - .4byte _08298752 @ case 60 - .4byte _08298752 @ case 61 - .4byte _08298752 @ case 62 - .4byte _08298752 @ case 63 - .4byte _08298752 @ case 64 - .4byte _08298752 @ case 65 - .4byte _08298752 @ case 66 - .4byte _08298320 @ case 67 - .4byte _0829833A @ case 68 - .4byte _08298384 @ case 69 - .4byte _08298384 @ case 70 - .4byte _08298384 @ case 71 - .4byte _082982F0 @ case 72 - .4byte _0829833A @ case 73 - .4byte _08298752 @ case 74 - .4byte _08298752 @ case 75 - .4byte _082982F4 @ case 76 - .4byte _08298752 @ case 77 - .4byte _082984F4 @ case 78 - .4byte _08298542 @ case 79 - .4byte _08298570 @ case 80 - .4byte _08298316 @ case 81 - .4byte _08298752 @ case 82 - .4byte _08298590 @ case 83 - .4byte _08298752 @ case 84 - .4byte _082985DA @ case 85 - .4byte _08298752 @ case 86 - .4byte _08298752 @ case 87 - .4byte _08298618 @ case 88 -_08298220: - ldr r1, _08298234 - add r1, sp - ldrb r0, [r1] - cmp r0, #0 - beq _0829822C - b _0829808A -_0829822C: - movs r0, #0x20 - strb r0, [r1] - b _0829808A - .align 2, 0 -_08298234: .4byte 0x000001C9 -_08298238: - movs r0, #1 - b _08298304 -_0829823C: - movs r4, #4 - add sl, r4 - mov r0, sl - subs r0, #4 - ldr r0, [r0] - str r0, [sp, #0x1f4] - cmp r0, #0 - blt _0829824E - b _0829808A -_0829824E: - rsbs r0, r0, #0 - str r0, [sp, #0x1f4] -_08298252: - movs r0, #4 - b _08298318 -_08298256: - ldr r1, _08298260 - add r1, sp - movs r0, #0x2b - strb r0, [r1] - b _0829808A - .align 2, 0 -_08298260: .4byte 0x000001C9 -_08298264: - ldr r2, [sp, #0x1e4] - ldrb r2, [r2] - str r2, [sp, #0x1e8] - ldr r4, [sp, #0x1e4] - adds r4, #1 - str r4, [sp, #0x1e4] - cmp r2, #0x2a - bne _0829828E - movs r0, #4 - add sl, r0 - mov r0, sl - subs r0, #4 - ldr r4, [r0] - adds r6, r4, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r6, r0 - blt _0829828A - b _0829808A -_0829828A: - adds r6, r0, #0 - b _0829808A -_0829828E: - movs r4, #0 - ldr r0, [sp, #0x1e8] - b _082982AE -_08298294: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #1 - subs r0, #0x30 - ldr r1, [sp, #0x1e8] - adds r4, r0, r1 - ldr r2, [sp, #0x1e4] - ldrb r2, [r2] - str r2, [sp, #0x1e8] - ldr r0, [sp, #0x1e4] - adds r0, #1 - str r0, [sp, #0x1e4] - adds r0, r2, #0 -_082982AE: - subs r0, #0x30 - cmp r0, #9 - bls _08298294 - adds r6, r4, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r6, r0 - blt _082982C0 - b _08298096 -_082982C0: - adds r6, r0, #0 - b _08298096 -_082982C4: - movs r0, #0x80 - b _08298318 -_082982C8: - movs r4, #0 -_082982CA: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #1 - subs r0, #0x30 - ldr r2, [sp, #0x1e8] - adds r4, r0, r2 - ldr r0, [sp, #0x1e4] - ldrb r0, [r0] - str r0, [sp, #0x1e8] - ldr r1, [sp, #0x1e4] - adds r1, #1 - str r1, [sp, #0x1e4] - subs r0, #0x30 - cmp r0, #9 - bls _082982CA - str r4, [sp, #0x1f4] - b _08298096 -_082982EC: - movs r0, #8 - b _08298304 -_082982F0: - movs r0, #0x40 - b _0829830E -_082982F4: - ldr r0, [sp, #0x1e4] - ldrb r0, [r0] - cmp r0, #0x6c - bne _0829830C - ldr r1, [sp, #0x1e4] - adds r1, #1 - str r1, [sp, #0x1e4] - movs r0, #0x20 -_08298304: - ldr r2, [sp, #0x1ec] - orrs r2, r0 - str r2, [sp, #0x1ec] - b _0829808A -_0829830C: - movs r0, #0x10 -_0829830E: - ldr r4, [sp, #0x1ec] - orrs r4, r0 - str r4, [sp, #0x1ec] - b _0829808A -_08298316: - movs r0, #0x20 -_08298318: - ldr r1, [sp, #0x1ec] - orrs r1, r0 - str r1, [sp, #0x1ec] - b _0829808A -_08298320: - add r2, sp, #0x68 - mov r8, r2 - movs r4, #4 - add sl, r4 - mov r0, sl - subs r0, #4 - ldr r0, [r0] - strb r0, [r2] - b _08298760 -_08298332: - movs r0, #0x10 - ldr r1, [sp, #0x1ec] - orrs r1, r0 - str r1, [sp, #0x1ec] -_0829833A: - movs r0, #0x10 - ldr r2, [sp, #0x1ec] - ands r0, r2 - cmp r0, #0 - beq _0829834A - movs r4, #4 - add sl, r4 - b _08298366 -_0829834A: - movs r0, #0x40 - ldr r1, [sp, #0x1ec] - ands r0, r1 - cmp r0, #0 - beq _08298362 - movs r2, #4 - add sl, r2 - mov r0, sl - subs r0, #4 - movs r1, #0 - ldrsh r4, [r0, r1] - b _0829836C -_08298362: - movs r2, #4 - add sl, r2 -_08298366: - mov r0, sl - subs r0, #4 - ldr r4, [r0] -_0829836C: - cmp r4, #0 - bge _0829837A - rsbs r4, r4, #0 - ldr r1, _08298380 - add r1, sp - movs r0, #0x2d - strb r0, [r1] -_0829837A: - movs r2, #1 - b _08298666 - .align 2, 0 -_08298380: .4byte 0x000001C9 -_08298384: - movs r0, #1 - rsbs r0, r0, #0 - cmp r6, r0 - bne _08298390 - movs r6, #6 - b _082983A0 -_08298390: - ldr r4, [sp, #0x1e8] - cmp r4, #0x67 - beq _0829839A - cmp r4, #0x47 - bne _082983A0 -_0829839A: - cmp r6, #0 - bne _082983A0 - movs r6, #1 -_082983A0: - movs r0, #8 - ldr r1, [sp, #0x1ec] - ands r0, r1 - movs r2, #8 - add sl, r2 - mov r0, sl - subs r0, #8 - ldr r1, [r0] - ldr r2, [r0, #4] - str r1, [sp, #0x1fc] - str r2, [sp, #0x200] - ldr r0, [sp, #0x1fc] - ldr r1, [sp, #0x200] - bl isinf - cmp r0, #0 - beq _082983F4 - ldr r3, _082983E8 - ldr r2, _082983E4 - ldr r0, [sp, #0x1fc] - ldr r1, [sp, #0x200] - bl __ltdf2 - cmp r0, #0 - bge _082983DA - ldr r1, _082983EC - add r1, sp - movs r0, #0x2d - strb r0, [r1] -_082983DA: - ldr r2, _082983F0 - mov r8, r2 - movs r3, #3 - b _0829876A - .align 2, 0 -_082983E4: .4byte 0x00000000 -_082983E8: .4byte 0x00000000 -_082983EC: .4byte 0x000001C9 -_082983F0: .4byte gUnknown_890F17C -_082983F4: - ldr r0, [sp, #0x1fc] - ldr r1, [sp, #0x200] - bl isnan - cmp r0, #0 - beq _0829840C - ldr r4, _08298408 - mov r8, r4 - movs r3, #3 - b _0829876A - .align 2, 0 -_08298408: .4byte gUnknown_890F180 -_0829840C: - movs r0, #0x80 - lsls r0, r0, #1 - ldr r1, [sp, #0x1ec] - orrs r1, r0 - str r1, [sp, #0x1ec] - str r1, [sp] - add r0, sp, #0x1c8 - str r0, [sp, #4] - add r0, sp, #0x1d4 - str r0, [sp, #8] - ldr r2, [sp, #0x1e8] - str r2, [sp, #0xc] - add r0, sp, #0x1d8 - str r0, [sp, #0x10] - ldr r0, [sp, #0x1dc] - ldr r1, [sp, #0x1fc] - ldr r2, [sp, #0x200] - adds r3, r6, #0 - bl sub_08298EA4 - mov r8, r0 - ldr r4, [sp, #0x1e8] - cmp r4, #0x67 - beq _08298440 - cmp r4, #0x47 - bne _08298462 -_08298440: - add r0, sp, #0x1d4 - ldr r1, [r0] - movs r0, #4 - rsbs r0, r0, #0 - cmp r1, r0 - ble _08298450 - cmp r1, r6 - ble _0829845E -_08298450: - movs r0, #0x45 - ldr r1, [sp, #0x1e8] - cmp r1, #0x67 - bne _0829845A - movs r0, #0x65 -_0829845A: - str r0, [sp, #0x1e8] - b _08298462 -_0829845E: - movs r2, #0x67 - str r2, [sp, #0x1e8] -_08298462: - ldr r4, [sp, #0x1e8] - cmp r4, #0x65 - bgt _08298488 - add r0, sp, #0x1d4 - ldr r1, [r0] - subs r1, #1 - str r1, [r0] - add r0, sp, #0x14 - ldr r2, [sp, #0x1e8] - bl sub_08298F98 - str r0, [sp, #0x204] - add r0, sp, #0x1d8 - ldr r0, [r0] - ldr r1, [sp, #0x204] - adds r3, r1, r0 - cmp r0, #1 - bgt _082984C8 - b _082984BE -_08298488: - ldr r4, [sp, #0x1e8] - cmp r4, #0x66 - bne _082984B0 - add r0, sp, #0x1d4 - ldr r0, [r0] - cmp r0, #0 - ble _082984AC - adds r3, r0, #0 - cmp r6, #0 - bne _082984A6 - movs r0, #1 - ldr r1, [sp, #0x1ec] - ands r0, r1 - cmp r0, #0 - beq _082984D8 -_082984A6: - adds r0, r3, #1 - adds r3, r0, r6 - b _082984D8 -_082984AC: - adds r3, r6, #2 - b _082984D8 -_082984B0: - add r0, sp, #0x1d4 - ldr r1, [r0] - add r0, sp, #0x1d8 - ldr r0, [r0] - cmp r1, r0 - blt _082984CC - adds r3, r1, #0 -_082984BE: - movs r0, #1 - ldr r2, [sp, #0x1ec] - ands r0, r2 - cmp r0, #0 - beq _082984D8 -_082984C8: - adds r3, #1 - b _082984D8 -_082984CC: - cmp r1, #0 - bgt _082984D6 - adds r0, #2 - subs r3, r0, r1 - b _082984D8 -_082984D6: - adds r3, r0, #1 -_082984D8: - add r0, sp, #0x1c8 - ldrb r0, [r0] - adds r7, r5, #0 - adds r7, #8 - cmp r0, #0 - bne _082984E6 - b _0829876E -_082984E6: - ldr r1, _082984F0 - add r1, sp - movs r0, #0x2d - strb r0, [r1] - b _0829876E - .align 2, 0 -_082984F0: .4byte 0x000001C9 -_082984F4: - movs r0, #0x10 - ldr r4, [sp, #0x1ec] - ands r0, r4 - cmp r0, #0 - beq _0829850E - movs r0, #4 - add sl, r0 - mov r0, sl - subs r0, #4 - ldr r0, [r0] - ldr r1, [sp, #0x1f0] - str r1, [r0] - b _08297FFC -_0829850E: - movs r0, #0x40 - ldr r2, [sp, #0x1ec] - ands r2, r0 - cmp r2, #0 - beq _0829852A - movs r4, #4 - add sl, r4 - mov r0, sl - subs r0, #4 - ldr r0, [r0] - add r1, sp, #0x1f0 - ldrh r1, [r1] - strh r1, [r0] - b _08297FFC -_0829852A: - movs r2, #4 - add sl, r2 - mov r0, sl - subs r0, #4 - ldr r0, [r0] - ldr r4, [sp, #0x1f0] - str r4, [r0] - b _08297FFC -_0829853A: - movs r0, #0x10 - ldr r1, [sp, #0x1ec] - orrs r1, r0 - str r1, [sp, #0x1ec] -_08298542: - movs r0, #0x10 - ldr r2, [sp, #0x1ec] - ands r0, r2 - cmp r0, #0 - bne _08298562 - movs r0, #0x40 - ldr r1, [sp, #0x1ec] - ands r0, r1 - cmp r0, #0 - beq _08298562 - movs r2, #4 - add sl, r2 - mov r0, sl - subs r0, #4 - ldrh r4, [r0] - b _0829856C -_08298562: - movs r4, #4 - add sl, r4 - mov r0, sl - subs r0, #4 - ldr r4, [r0] -_0829856C: - movs r2, #0 - b _0829865E -_08298570: - movs r0, #4 - add sl, r0 - mov r0, sl - subs r0, #4 - ldr r4, [r0] - movs r2, #2 - ldr r1, _0829858C - str r1, [sp, #0x210] - ldr r0, [sp, #0x1ec] - orrs r0, r2 - str r0, [sp, #0x1ec] - movs r1, #0x78 - str r1, [sp, #0x1e8] - b _0829865E - .align 2, 0 -_0829858C: .4byte gUnknown_890F184 -_08298590: - movs r2, #4 - add sl, r2 - mov r0, sl - subs r0, #4 - ldr r0, [r0] - mov r8, r0 - cmp r0, #0 - bne _082985A4 - ldr r4, _082985C4 - mov r8, r4 -_082985A4: - cmp r6, #0 - blt _082985C8 - mov r0, r8 - movs r1, #0 - adds r2, r6, #0 - bl memchr - cmp r0, #0 - beq _082985C0 - mov r1, r8 - subs r3, r0, r1 - cmp r3, r6 - bgt _082985C0 - b _08298762 -_082985C0: - adds r3, r6, #0 - b _08298762 - .align 2, 0 -_082985C4: .4byte gUnknown_890F198 -_082985C8: - mov r0, r8 - bl strlen - adds r3, r0, #0 - b _08298762 -_082985D2: - movs r0, #0x10 - ldr r2, [sp, #0x1ec] - orrs r2, r0 - str r2, [sp, #0x1ec] -_082985DA: - movs r0, #0x10 - ldr r4, [sp, #0x1ec] - ands r0, r4 - cmp r0, #0 - beq _082985EA - movs r0, #4 - add sl, r0 - b _08298604 -_082985EA: - movs r0, #0x40 - ldr r1, [sp, #0x1ec] - ands r0, r1 - cmp r0, #0 - beq _08298600 - movs r2, #4 - add sl, r2 - mov r0, sl - subs r0, #4 - ldrh r4, [r0] - b _0829860A -_08298600: - movs r4, #4 - add sl, r4 -_08298604: - mov r0, sl - subs r0, #4 - ldr r4, [r0] -_0829860A: - movs r2, #1 - b _0829865E -_0829860E: - ldr r0, _08298614 - str r0, [sp, #0x210] - b _0829861C - .align 2, 0 -_08298614: .4byte gUnknown_890F1A0 -_08298618: - ldr r1, _0829863C - str r1, [sp, #0x210] -_0829861C: - movs r0, #0x10 - ldr r2, [sp, #0x1ec] - ands r0, r2 - cmp r0, #0 - bne _08298640 - movs r0, #0x40 - ldr r1, [sp, #0x1ec] - ands r0, r1 - cmp r0, #0 - beq _08298640 - movs r2, #4 - add sl, r2 - mov r0, sl - subs r0, #4 - ldrh r4, [r0] - b _0829864A - .align 2, 0 -_0829863C: .4byte gUnknown_890F184 -_08298640: - movs r4, #4 - add sl, r4 - mov r0, sl - subs r0, #4 - ldr r4, [r0] -_0829864A: - movs r2, #2 - movs r0, #1 - ldr r1, [sp, #0x1ec] - ands r0, r1 - cmp r0, #0 - beq _0829865E - cmp r4, #0 - beq _0829865E - orrs r1, r2 - str r1, [sp, #0x1ec] -_0829865E: - ldr r1, _082986A8 - add r1, sp - movs r0, #0 - strb r0, [r1] -_08298666: - str r6, [sp, #0x208] - cmp r6, #0 - blt _08298676 - movs r0, #0x81 - rsbs r0, r0, #0 - ldr r1, [sp, #0x1ec] - ands r1, r0 - str r1, [sp, #0x1ec] -_08298676: - movs r0, #0xe2 - lsls r0, r0, #1 - add r0, sp - mov r8, r0 - cmp r4, #0 - bne _0829868C - adds r7, r5, #0 - adds r7, #8 - ldr r1, [sp, #0x208] - cmp r1, #0 - beq _08298744 -_0829868C: - cmp r2, #1 - beq _082986EA - cmp r2, #1 - blo _082986B0 - cmp r2, #2 - beq _08298724 - ldr r2, _082986AC - mov r8, r2 - mov r0, r8 - bl strlen - adds r3, r0, #0 - b _0829876A - .align 2, 0 -_082986A8: .4byte 0x000001C9 -_082986AC: .4byte gUnknown_890F1B4 -_082986B0: - adds r7, r5, #0 - adds r7, #8 - movs r2, #7 -_082986B6: - movs r0, #1 - rsbs r0, r0, #0 - add r8, r0 - adds r0, r4, #0 - ands r0, r2 - adds r1, r0, #0 - adds r1, #0x30 - mov r0, r8 - strb r1, [r0] - lsrs r4, r4, #3 - cmp r4, #0 - bne _082986B6 - movs r0, #1 - ldr r2, [sp, #0x1ec] - ands r0, r2 - cmp r0, #0 - beq _08298744 - cmp r1, #0x30 - beq _08298744 - movs r4, #1 - rsbs r4, r4, #0 - add r8, r4 - movs r0, #0x30 - mov r1, r8 - strb r0, [r1] - b _08298744 -_082986EA: - adds r7, r5, #0 - adds r7, #8 - cmp r4, #9 - bls _08298714 -_082986F2: - movs r2, #1 - rsbs r2, r2, #0 - add r8, r2 - adds r0, r4, #0 - movs r1, #0xa - bl __umodsi3 - adds r0, #0x30 - mov r1, r8 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0xa - bl __udivsi3 - adds r4, r0, #0 - cmp r4, #9 - bhi _082986F2 -_08298714: - movs r2, #1 - rsbs r2, r2, #0 - add r8, r2 - adds r0, r4, #0 - adds r0, #0x30 - mov r4, r8 - strb r0, [r4] - b _08298744 -_08298724: - adds r7, r5, #0 - adds r7, #8 - movs r1, #0xf -_0829872A: - movs r0, #1 - rsbs r0, r0, #0 - add r8, r0 - adds r0, r4, #0 - ands r0, r1 - ldr r2, [sp, #0x210] - adds r0, r2, r0 - ldrb r0, [r0] - mov r2, r8 - strb r0, [r2] - lsrs r4, r4, #4 - cmp r4, #0 - bne _0829872A -_08298744: - add r4, sp, #0x14 - mov r1, r8 - subs r0, r4, r1 - movs r2, #0xd8 - lsls r2, r2, #1 - adds r3, r0, r2 - b _0829876E -_08298752: - ldr r4, [sp, #0x1e8] - cmp r4, #0 - bne _0829875A - b _08298E68 -_0829875A: - add r0, sp, #0x68 - mov r8, r0 - strb r4, [r0] -_08298760: - movs r3, #1 -_08298762: - ldr r1, _0829878C - add r1, sp - movs r0, #0 - strb r0, [r1] -_0829876A: - adds r7, r5, #0 - adds r7, #8 -_0829876E: - str r3, [sp, #0x20c] - ldr r2, [sp, #0x208] - cmp r3, r2 - bge _08298778 - str r2, [sp, #0x20c] -_08298778: - ldr r0, _0829878C - add r0, sp - ldrb r0, [r0] - cmp r0, #0 - beq _08298790 - ldr r4, [sp, #0x20c] - adds r4, #1 - str r4, [sp, #0x20c] - b _082987A0 - .align 2, 0 -_0829878C: .4byte 0x000001C9 -_08298790: - movs r0, #2 - ldr r1, [sp, #0x1ec] - ands r0, r1 - cmp r0, #0 - beq _082987A0 - ldr r2, [sp, #0x20c] - adds r2, #2 - str r2, [sp, #0x20c] -_082987A0: - movs r0, #0x84 - ldr r4, [sp, #0x1ec] - ands r0, r4 - cmp r0, #0 - bne _08298820 - ldr r0, [sp, #0x1f4] - ldr r1, [sp, #0x20c] - subs r4, r0, r1 - cmp r4, #0 - ble _08298820 - ldr r1, _0829884C - cmp r4, #0x10 - ble _082987F4 - mov r6, sb -_082987BC: - str r1, [r5] - movs r0, #0x10 - str r0, [r5, #4] - ldr r0, [r6, #8] - adds r0, #0x10 - str r0, [r6, #8] - adds r5, r7, #0 - ldr r0, [r6, #4] - adds r0, #1 - str r0, [r6, #4] - cmp r0, #7 - ble _082987EA - ldr r0, [sp, #0x1e0] - mov r1, sb - str r3, [sp, #0x21c] - bl sub_08297E9C - ldr r3, [sp, #0x21c] - cmp r0, #0 - beq _082987E6 - b _08298E80 -_082987E6: - add r5, sp, #0x28 - ldr r1, _0829884C -_082987EA: - subs r4, #0x10 - adds r7, r5, #0 - adds r7, #8 - cmp r4, #0x10 - bgt _082987BC -_082987F4: - str r1, [r5] - str r4, [r5, #4] - mov r2, sb - ldr r0, [r2, #8] - adds r0, r0, r4 - str r0, [r2, #8] - adds r5, r7, #0 - ldr r0, [r2, #4] - adds r0, #1 - str r0, [r2, #4] - cmp r0, #7 - ble _08298820 - ldr r0, [sp, #0x1e0] - mov r1, sb - str r3, [sp, #0x21c] - bl sub_08297E9C - ldr r3, [sp, #0x21c] - cmp r0, #0 - beq _0829881E - b _08298E80 -_0829881E: - add r5, sp, #0x28 -_08298820: - ldr r1, _08298850 - add r1, sp - ldrb r0, [r1] - cmp r0, #0 - beq _08298854 - str r1, [r5] - movs r0, #1 - str r0, [r5, #4] - mov r4, sb - ldr r0, [r4, #8] - adds r0, #1 - str r0, [r4, #8] - adds r5, #8 - ldr r0, [r4, #4] - adds r0, #1 - str r0, [r4, #4] - cmp r0, #7 - ble _08298894 - ldr r0, [sp, #0x1e0] - mov r1, sb - b _08298884 - .align 2, 0 -_0829884C: .4byte gUnknown_890F15C -_08298850: .4byte 0x000001C9 -_08298854: - movs r2, #2 - ldr r0, [sp, #0x1ec] - ands r0, r2 - cmp r0, #0 - beq _08298894 - add r1, sp, #0x1c4 - movs r0, #0x30 - strb r0, [r1] - add r0, sp, #0x1e8 - ldrb r0, [r0] - strb r0, [r1, #1] - str r1, [r5] - str r2, [r5, #4] - mov r1, sb - ldr r0, [r1, #8] - adds r0, #2 - str r0, [r1, #8] - adds r5, #8 - ldr r0, [r1, #4] - adds r0, #1 - str r0, [r1, #4] - cmp r0, #7 - ble _08298894 - ldr r0, [sp, #0x1e0] -_08298884: - str r3, [sp, #0x21c] - bl sub_08297E9C - ldr r3, [sp, #0x21c] - cmp r0, #0 - beq _08298892 - b _08298E80 -_08298892: - add r5, sp, #0x28 -_08298894: - movs r0, #0x84 - ldr r2, [sp, #0x1ec] - ands r0, r2 - cmp r0, #0x80 - bne _08298910 - ldr r0, [sp, #0x1f4] - ldr r1, [sp, #0x20c] - subs r4, r0, r1 - cmp r4, #0 - ble _08298910 - ldr r1, _082989AC - cmp r4, #0x10 - ble _082988E4 - mov r6, sb -_082988B0: - str r1, [r5] - movs r0, #0x10 - str r0, [r5, #4] - ldr r0, [r6, #8] - adds r0, #0x10 - str r0, [r6, #8] - adds r5, #8 - ldr r0, [r6, #4] - adds r0, #1 - str r0, [r6, #4] - cmp r0, #7 - ble _082988DE - ldr r0, [sp, #0x1e0] - mov r1, sb - str r3, [sp, #0x21c] - bl sub_08297E9C - ldr r3, [sp, #0x21c] - cmp r0, #0 - beq _082988DA - b _08298E80 -_082988DA: - add r5, sp, #0x28 - ldr r1, _082989AC -_082988DE: - subs r4, #0x10 - cmp r4, #0x10 - bgt _082988B0 -_082988E4: - str r1, [r5] - str r4, [r5, #4] - mov r2, sb - ldr r0, [r2, #8] - adds r0, r0, r4 - str r0, [r2, #8] - adds r5, #8 - ldr r0, [r2, #4] - adds r0, #1 - str r0, [r2, #4] - cmp r0, #7 - ble _08298910 - ldr r0, [sp, #0x1e0] - mov r1, sb - str r3, [sp, #0x21c] - bl sub_08297E9C - ldr r3, [sp, #0x21c] - cmp r0, #0 - beq _0829890E - b _08298E80 -_0829890E: - add r5, sp, #0x28 -_08298910: - ldr r0, [sp, #0x208] - subs r4, r0, r3 - cmp r4, #0 - ble _0829897E - ldr r1, _082989AC - cmp r4, #0x10 - ble _08298954 - mov r6, sb -_08298920: - str r1, [r5] - movs r0, #0x10 - str r0, [r5, #4] - ldr r0, [r6, #8] - adds r0, #0x10 - str r0, [r6, #8] - adds r5, #8 - ldr r0, [r6, #4] - adds r0, #1 - str r0, [r6, #4] - cmp r0, #7 - ble _0829894E - ldr r0, [sp, #0x1e0] - mov r1, sb - str r3, [sp, #0x21c] - bl sub_08297E9C - ldr r3, [sp, #0x21c] - cmp r0, #0 - beq _0829894A - b _08298E80 -_0829894A: - add r5, sp, #0x28 - ldr r1, _082989AC -_0829894E: - subs r4, #0x10 - cmp r4, #0x10 - bgt _08298920 -_08298954: - str r1, [r5] - str r4, [r5, #4] - mov r1, sb - ldr r0, [r1, #8] - adds r0, r0, r4 - str r0, [r1, #8] - adds r5, #8 - ldr r0, [r1, #4] - adds r0, #1 - str r0, [r1, #4] - cmp r0, #7 - ble _0829897E - ldr r0, [sp, #0x1e0] - str r3, [sp, #0x21c] - bl sub_08297E9C - ldr r3, [sp, #0x21c] - cmp r0, #0 - beq _0829897C - b _08298E80 -_0829897C: - add r5, sp, #0x28 -_0829897E: - movs r0, #0x80 - lsls r0, r0, #1 - ldr r2, [sp, #0x1ec] - ands r0, r2 - cmp r0, #0 - bne _082989B0 - mov r4, r8 - str r4, [r5] - str r3, [r5, #4] - mov r1, sb - ldr r0, [r1, #8] - adds r0, r0, r3 - str r0, [r1, #8] - adds r5, #8 - ldr r0, [r1, #4] - adds r0, #1 - str r0, [r1, #4] - cmp r0, #7 - bgt _082989A6 - b _08298DC6 -_082989A6: - ldr r0, [sp, #0x1e0] - b _08298DBC - .align 2, 0 -_082989AC: .4byte gUnknown_890F16C -_082989B0: - ldr r2, [sp, #0x1e8] - cmp r2, #0x65 - bgt _082989B8 - b _08298C9C -_082989B8: - ldr r3, _08298A84 - ldr r2, _08298A80 - ldr r0, [sp, #0x1fc] - ldr r1, [sp, #0x200] - bl __eqdf2 - cmp r0, #0 - bne _08298A90 - ldr r0, _08298A88 - str r0, [r5] - movs r6, #1 - str r6, [r5, #4] - mov r4, sb - ldr r0, [r4, #8] - adds r0, #1 - str r0, [r4, #8] - adds r5, #8 - ldr r0, [r4, #4] - adds r0, #1 - str r0, [r4, #4] - cmp r0, #7 - ble _082989F4 - ldr r0, [sp, #0x1e0] - mov r1, sb - bl sub_08297E9C - cmp r0, #0 - beq _082989F2 - b _08298E80 -_082989F2: - add r5, sp, #0x28 -_082989F4: - add r0, sp, #0x1d4 - ldr r1, [r0] - add r4, sp, #0x1d8 - ldr r0, [r4] - cmp r1, r0 - blt _08298A0A - ldr r0, [sp, #0x1ec] - ands r0, r6 - cmp r0, #0 - bne _08298A0A - b _08298DC6 -_08298A0A: - ldr r0, [sp, #0x1f8] - str r0, [r5] - str r6, [r5, #4] - mov r1, sb - ldr r0, [r1, #8] - adds r0, #1 - str r0, [r1, #8] - adds r5, #8 - ldr r0, [r1, #4] - adds r0, #1 - str r0, [r1, #4] - cmp r0, #7 - ble _08298A32 - ldr r0, [sp, #0x1e0] - bl sub_08297E9C - cmp r0, #0 - beq _08298A30 - b _08298E80 -_08298A30: - add r5, sp, #0x28 -_08298A32: - ldr r0, [r4] - subs r4, r0, #1 - cmp r4, #0 - bgt _08298A3C - b _08298DC6 -_08298A3C: - ldr r1, _08298A8C - cmp r4, #0x10 - ble _08298A74 - mov r6, sb -_08298A44: - str r1, [r5] - movs r0, #0x10 - str r0, [r5, #4] - ldr r0, [r6, #8] - adds r0, #0x10 - str r0, [r6, #8] - adds r5, #8 - ldr r0, [r6, #4] - adds r0, #1 - str r0, [r6, #4] - cmp r0, #7 - ble _08298A6E - ldr r0, [sp, #0x1e0] - mov r1, sb - bl sub_08297E9C - cmp r0, #0 - beq _08298A6A - b _08298E80 -_08298A6A: - add r5, sp, #0x28 - ldr r1, _08298A8C -_08298A6E: - subs r4, #0x10 - cmp r4, #0x10 - bgt _08298A44 -_08298A74: - str r1, [r5] - str r4, [r5, #4] - mov r2, sb - ldr r0, [r2, #8] - adds r0, r0, r4 - b _08298DAA - .align 2, 0 -_08298A80: .4byte 0x00000000 -_08298A84: .4byte 0x00000000 -_08298A88: .4byte gUnknown_890F1D0 -_08298A8C: .4byte gUnknown_890F16C -_08298A90: - add r6, sp, #0x1d4 - ldr r2, [r6] - cmp r2, #0 - bgt _08298B78 - ldr r0, _08298B70 - str r0, [r5] - movs r4, #1 - str r4, [r5, #4] - mov r1, sb - ldr r0, [r1, #8] - adds r0, #1 - str r0, [r1, #8] - adds r5, #8 - ldr r0, [r1, #4] - adds r0, #1 - str r0, [r1, #4] - cmp r0, #7 - ble _08298AC2 - ldr r0, [sp, #0x1e0] - bl sub_08297E9C - cmp r0, #0 - beq _08298AC0 - b _08298E80 -_08298AC0: - add r5, sp, #0x28 -_08298AC2: - ldr r2, [sp, #0x1f8] - str r2, [r5] - str r4, [r5, #4] - mov r4, sb - ldr r0, [r4, #8] - adds r0, #1 - str r0, [r4, #8] - adds r5, #8 - ldr r0, [r4, #4] - adds r0, #1 - str r0, [r4, #4] - cmp r0, #7 - ble _08298AEC - ldr r0, [sp, #0x1e0] - mov r1, sb - bl sub_08297E9C - cmp r0, #0 - beq _08298AEA - b _08298E80 -_08298AEA: - add r5, sp, #0x28 -_08298AEC: - ldr r0, [r6] - rsbs r4, r0, #0 - cmp r4, #0 - ble _08298B52 - ldr r1, _08298B74 - cmp r4, #0x10 - ble _08298B2C - mov r6, sb -_08298AFC: - str r1, [r5] - movs r0, #0x10 - str r0, [r5, #4] - ldr r0, [r6, #8] - adds r0, #0x10 - str r0, [r6, #8] - adds r5, #8 - ldr r0, [r6, #4] - adds r0, #1 - str r0, [r6, #4] - cmp r0, #7 - ble _08298B26 - ldr r0, [sp, #0x1e0] - mov r1, sb - bl sub_08297E9C - cmp r0, #0 - beq _08298B22 - b _08298E80 -_08298B22: - add r5, sp, #0x28 - ldr r1, _08298B74 -_08298B26: - subs r4, #0x10 - cmp r4, #0x10 - bgt _08298AFC -_08298B2C: - str r1, [r5] - str r4, [r5, #4] - mov r1, sb - ldr r0, [r1, #8] - adds r0, r0, r4 - str r0, [r1, #8] - adds r5, #8 - ldr r0, [r1, #4] - adds r0, #1 - str r0, [r1, #4] - cmp r0, #7 - ble _08298B52 - ldr r0, [sp, #0x1e0] - bl sub_08297E9C - cmp r0, #0 - beq _08298B50 - b _08298E80 -_08298B50: - add r5, sp, #0x28 -_08298B52: - mov r2, r8 - str r2, [r5] - add r0, sp, #0x1d8 - ldr r1, [r0] - str r1, [r5, #4] - mov r4, sb - ldr r0, [r4, #8] - adds r0, r0, r1 - str r0, [r4, #8] - adds r5, #8 - ldr r0, [r4, #4] - adds r0, #1 - str r0, [r4, #4] - b _08298DB4 - .align 2, 0 -_08298B70: .4byte gUnknown_890F1D0 -_08298B74: .4byte gUnknown_890F16C -_08298B78: - add r4, sp, #0x1d8 - ldr r1, [r4] - cmp r2, r1 - blt _08298C34 - mov r0, r8 - str r0, [r5] - str r1, [r5, #4] - mov r2, sb - ldr r0, [r2, #8] - adds r0, r0, r1 - str r0, [r2, #8] - adds r5, #8 - ldr r0, [r2, #4] - adds r0, #1 - str r0, [r2, #4] - cmp r0, #7 - ble _08298BAA - ldr r0, [sp, #0x1e0] - mov r1, sb - bl sub_08297E9C - cmp r0, #0 - beq _08298BA8 - b _08298E80 -_08298BA8: - add r5, sp, #0x28 -_08298BAA: - ldr r1, [r6] - ldr r0, [r4] - subs r4, r1, r0 - cmp r4, #0 - ble _08298C12 - ldr r1, _08298C2C - cmp r4, #0x10 - ble _08298BEC - mov r6, sb -_08298BBC: - str r1, [r5] - movs r0, #0x10 - str r0, [r5, #4] - ldr r0, [r6, #8] - adds r0, #0x10 - str r0, [r6, #8] - adds r5, #8 - ldr r0, [r6, #4] - adds r0, #1 - str r0, [r6, #4] - cmp r0, #7 - ble _08298BE6 - ldr r0, [sp, #0x1e0] - mov r1, sb - bl sub_08297E9C - cmp r0, #0 - beq _08298BE2 - b _08298E80 -_08298BE2: - add r5, sp, #0x28 - ldr r1, _08298C2C -_08298BE6: - subs r4, #0x10 - cmp r4, #0x10 - bgt _08298BBC -_08298BEC: - str r1, [r5] - str r4, [r5, #4] - mov r1, sb - ldr r0, [r1, #8] - adds r0, r0, r4 - str r0, [r1, #8] - adds r5, #8 - ldr r0, [r1, #4] - adds r0, #1 - str r0, [r1, #4] - cmp r0, #7 - ble _08298C12 - ldr r0, [sp, #0x1e0] - bl sub_08297E9C - cmp r0, #0 - beq _08298C10 - b _08298E80 -_08298C10: - add r5, sp, #0x28 -_08298C12: - movs r1, #1 - ldr r0, [sp, #0x1ec] - ands r0, r1 - cmp r0, #0 - bne _08298C1E - b _08298DC6 -_08298C1E: - ldr r0, _08298C30 - str r0, [r5] - str r1, [r5, #4] - mov r2, sb - ldr r0, [r2, #8] - adds r0, #1 - b _08298DAA - .align 2, 0 -_08298C2C: .4byte gUnknown_890F16C -_08298C30: .4byte gUnknown_890F1D4 -_08298C34: - mov r0, r8 - str r0, [r5] - str r2, [r5, #4] - mov r1, sb - ldr r0, [r1, #8] - adds r0, r0, r2 - str r0, [r1, #8] - adds r5, #8 - ldr r0, [r1, #4] - adds r0, #1 - str r0, [r1, #4] - cmp r0, #7 - ble _08298C5C - ldr r0, [sp, #0x1e0] - bl sub_08297E9C - cmp r0, #0 - beq _08298C5A - b _08298E80 -_08298C5A: - add r5, sp, #0x28 -_08298C5C: - ldr r0, [r6] - add r8, r0 - ldr r0, _08298C98 - str r0, [r5] - movs r0, #1 - str r0, [r5, #4] - mov r2, sb - ldr r0, [r2, #8] - adds r0, #1 - str r0, [r2, #8] - adds r5, #8 - ldr r0, [r2, #4] - adds r0, #1 - str r0, [r2, #4] - cmp r0, #7 - ble _08298C8C - ldr r0, [sp, #0x1e0] - mov r1, sb - bl sub_08297E9C - cmp r0, #0 - beq _08298C8A - b _08298E80 -_08298C8A: - add r5, sp, #0x28 -_08298C8C: - mov r0, r8 - str r0, [r5] - ldr r1, [r4] - ldr r0, [r6] - subs r1, r1, r0 - b _08298DA2 - .align 2, 0 -_08298C98: .4byte gUnknown_890F1D4 -_08298C9C: - add r4, sp, #0x1d8 - ldr r0, [r4] - cmp r0, #1 - bgt _08298CAE - movs r1, #1 - ldr r0, [sp, #0x1ec] - ands r0, r1 - cmp r0, #0 - beq _08298D74 -_08298CAE: - add r1, sp, #0x1c4 - mov r2, r8 - ldrb r0, [r2] - strb r0, [r1] - movs r0, #1 - add r8, r0 - movs r0, #0x2e - strb r0, [r1, #1] - str r1, [r5] - movs r0, #2 - str r0, [r5, #4] - mov r1, sb - ldr r0, [r1, #8] - adds r0, #2 - str r0, [r1, #8] - adds r5, #8 - ldr r0, [r1, #4] - adds r0, #1 - str r0, [r1, #4] - cmp r0, #7 - ble _08298CE6 - ldr r0, [sp, #0x1e0] - bl sub_08297E9C - cmp r0, #0 - beq _08298CE4 - b _08298E80 -_08298CE4: - add r5, sp, #0x28 -_08298CE6: - ldr r3, _08298D10 - ldr r2, _08298D0C - ldr r0, [sp, #0x1fc] - ldr r1, [sp, #0x200] - bl __nedf2 - cmp r0, #0 - beq _08298D14 - mov r2, r8 - str r2, [r5] - ldr r1, [r4] - subs r0, r1, #1 - str r0, [r5, #4] - mov r4, sb - ldr r0, [r4, #8] - subs r0, #1 - adds r0, r0, r1 - b _08298D80 - .align 2, 0 -_08298D0C: .4byte 0x00000000 -_08298D10: .4byte 0x00000000 -_08298D14: - ldr r0, [r4] - subs r4, r0, #1 - cmp r4, #0 - ble _08298D9C - ldr r1, _08298D70 - cmp r4, #0x10 - ble _08298D54 - mov r6, sb -_08298D24: - str r1, [r5] - movs r0, #0x10 - str r0, [r5, #4] - ldr r0, [r6, #8] - adds r0, #0x10 - str r0, [r6, #8] - adds r5, #8 - ldr r0, [r6, #4] - adds r0, #1 - str r0, [r6, #4] - cmp r0, #7 - ble _08298D4E - ldr r0, [sp, #0x1e0] - mov r1, sb - bl sub_08297E9C - cmp r0, #0 - beq _08298D4A - b _08298E80 -_08298D4A: - add r5, sp, #0x28 - ldr r1, _08298D70 -_08298D4E: - subs r4, #0x10 - cmp r4, #0x10 - bgt _08298D24 -_08298D54: - str r1, [r5] - str r4, [r5, #4] - mov r1, sb - ldr r0, [r1, #8] - adds r0, r0, r4 - str r0, [r1, #8] - adds r5, #8 - ldr r0, [r1, #4] - adds r0, #1 - str r0, [r1, #4] - cmp r0, #7 - ble _08298D9C - ldr r0, [sp, #0x1e0] - b _08298D92 - .align 2, 0 -_08298D70: .4byte gUnknown_890F16C -_08298D74: - mov r2, r8 - str r2, [r5] - str r1, [r5, #4] - mov r4, sb - ldr r0, [r4, #8] - adds r0, #1 -_08298D80: - str r0, [r4, #8] - adds r5, #8 - ldr r0, [r4, #4] - adds r0, #1 - str r0, [r4, #4] - cmp r0, #7 - ble _08298D9C - ldr r0, [sp, #0x1e0] - mov r1, sb -_08298D92: - bl sub_08297E9C - cmp r0, #0 - bne _08298E80 - add r5, sp, #0x28 -_08298D9C: - add r0, sp, #0x14 - str r0, [r5] - ldr r1, [sp, #0x204] -_08298DA2: - str r1, [r5, #4] - mov r2, sb - ldr r0, [r2, #8] - adds r0, r0, r1 -_08298DAA: - str r0, [r2, #8] - adds r5, #8 - ldr r0, [r2, #4] - adds r0, #1 - str r0, [r2, #4] -_08298DB4: - cmp r0, #7 - ble _08298DC6 - ldr r0, [sp, #0x1e0] - mov r1, sb -_08298DBC: - bl sub_08297E9C - cmp r0, #0 - bne _08298E80 - add r5, sp, #0x28 -_08298DC6: - movs r0, #4 - ldr r4, [sp, #0x1ec] - ands r4, r0 - cmp r4, #0 - beq _08298E32 - ldr r0, [sp, #0x1f4] - ldr r1, [sp, #0x20c] - subs r4, r0, r1 - cmp r4, #0 - ble _08298E32 - ldr r1, _08298E64 - cmp r4, #0x10 - ble _08298E10 - mov r6, sb -_08298DE2: - str r1, [r5] - movs r0, #0x10 - str r0, [r5, #4] - ldr r0, [r6, #8] - adds r0, #0x10 - str r0, [r6, #8] - adds r5, #8 - ldr r0, [r6, #4] - adds r0, #1 - str r0, [r6, #4] - cmp r0, #7 - ble _08298E0A - ldr r0, [sp, #0x1e0] - mov r1, sb - bl sub_08297E9C - cmp r0, #0 - bne _08298E80 - add r5, sp, #0x28 - ldr r1, _08298E64 -_08298E0A: - subs r4, #0x10 - cmp r4, #0x10 - bgt _08298DE2 -_08298E10: - str r1, [r5] - str r4, [r5, #4] - mov r2, sb - ldr r0, [r2, #8] - adds r0, r0, r4 - str r0, [r2, #8] - ldr r0, [r2, #4] - adds r0, #1 - str r0, [r2, #4] - cmp r0, #7 - ble _08298E32 - ldr r0, [sp, #0x1e0] - mov r1, sb - bl sub_08297E9C - cmp r0, #0 - bne _08298E80 -_08298E32: - ldr r0, [sp, #0x20c] - ldr r4, [sp, #0x1f4] - cmp r0, r4 - bge _08298E3C - adds r0, r4, #0 -_08298E3C: - ldr r1, [sp, #0x1f0] - adds r1, r1, r0 - str r1, [sp, #0x1f0] - mov r2, sb - ldr r0, [r2, #8] - cmp r0, #0 - beq _08298E56 - ldr r0, [sp, #0x1e0] - mov r1, sb - bl sub_08297E9C - cmp r0, #0 - bne _08298E80 -_08298E56: - movs r0, #0 - mov r4, sb - str r0, [r4, #4] - add r5, sp, #0x28 - bl _08297FFC - .align 2, 0 -_08298E64: .4byte gUnknown_890F15C -_08298E68: - mov r1, sb - ldr r0, [r1, #8] - cmp r0, #0 - beq _08298E7A - ldr r0, [sp, #0x1e0] - bl sub_08297E9C - cmp r0, #0 - bne _08298E80 -_08298E7A: - movs r0, #0 - mov r1, sb - str r0, [r1, #4] -_08298E80: - movs r0, #0x40 - ldr r2, [sp, #0x1e0] - ldrh r2, [r2, #0xc] - ands r0, r2 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, #0 - bne _08298E92 - ldr r1, [sp, #0x1f0] -_08298E92: - adds r0, r1, #0 -_08298E94: - movs r3, #0x88 - lsls r3, r3, #2 - add sp, r3 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - thumb_func_end _vfprintf_r - - thumb_func_start sub_08298EA4 -sub_08298EA4: @ 0x08298EA4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - str r0, [sp, #0x18] - adds r5, r2, #0 - adds r4, r1, #0 - mov r8, r3 - ldr r6, [sp, #0x3c] - ldr r0, [sp, #0x44] - mov sl, r0 - ldr r1, [sp, #0x48] - mov sb, r1 - cmp r1, #0x66 - bne _08298ECA - movs r7, #3 - b _08298EDA -_08298ECA: - mov r0, sb - cmp r0, #0x65 - beq _08298ED4 - cmp r0, #0x45 - bne _08298ED8 -_08298ED4: - movs r1, #1 - add r8, r1 -_08298ED8: - movs r7, #2 -_08298EDA: - lsls r0, r4, #0x1f - lsrs r0, r0, #0x1f - cmp r0, #0 - beq _08298EF0 - adds r1, r5, #0 - adds r0, r4, #0 - bl __negdf2 - adds r5, r1, #0 - adds r4, r0, #0 - movs r0, #0x2d -_08298EF0: - ldr r1, [sp, #0x40] - strb r0, [r1] - mov r0, r8 - str r0, [sp] - mov r1, sl - str r1, [sp, #4] - add r0, sp, #0x10 - str r0, [sp, #8] - add r0, sp, #0x14 - str r0, [sp, #0xc] - ldr r0, [sp, #0x18] - adds r2, r5, #0 - adds r1, r4, #0 - adds r3, r7, #0 - bl _dtoa_r - adds r7, r0, #0 - mov r1, sb - cmp r1, #0x67 - beq _08298F1C - cmp r1, #0x47 - bne _08298F24 -_08298F1C: - movs r0, #1 - ands r6, r0 - cmp r6, #0 - beq _08298F78 -_08298F24: - mov r0, r8 - adds r6, r7, r0 - mov r1, sb - cmp r1, #0x66 - bne _08298F54 - ldrb r0, [r7] - cmp r0, #0x30 - bne _08298F4E - ldr r3, _08298F94 - ldr r2, _08298F90 - adds r1, r5, #0 - adds r0, r4, #0 - bl __nedf2 - cmp r0, #0 - beq _08298F4E - mov r1, r8 - rsbs r0, r1, #0 - adds r0, #1 - mov r1, sl - str r0, [r1] -_08298F4E: - mov r1, sl - ldr r0, [r1] - adds r6, r6, r0 -_08298F54: - ldr r3, _08298F94 - ldr r2, _08298F90 - adds r1, r5, #0 - adds r0, r4, #0 - bl __eqdf2 - cmp r0, #0 - bne _08298F66 - str r6, [sp, #0x14] -_08298F66: - ldr r0, [sp, #0x14] - cmp r0, r6 - bhs _08298F78 - movs r1, #0x30 -_08298F6E: - strb r1, [r0] - adds r0, #1 - str r0, [sp, #0x14] - cmp r0, r6 - blo _08298F6E -_08298F78: - ldr r0, [sp, #0x14] - subs r0, r0, r7 - ldr r1, [sp, #0x4c] - str r0, [r1] - adds r0, r7, #0 - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08298F90: .4byte 0x00000000 -_08298F94: .4byte 0x00000000 - thumb_func_end sub_08298EA4 - - thumb_func_start sub_08298F98 -sub_08298F98: @ 0x08298F98 - push {r4, r5, r6, r7, lr} - sub sp, #0x134 - adds r7, r0, #0 - adds r6, r1, #0 - strb r2, [r7] - adds r5, r7, #1 - cmp r6, #0 - bge _08298FAE - rsbs r6, r6, #0 - movs r0, #0x2d - b _08298FB0 -_08298FAE: - movs r0, #0x2b -_08298FB0: - strb r0, [r7, #1] - adds r5, #1 - add r4, sp, #0x134 - cmp r6, #9 - ble _08298FF2 -_08298FBA: - subs r4, #1 - adds r0, r6, #0 - movs r1, #0xa - bl __modsi3 - adds r0, #0x30 - strb r0, [r4] - adds r0, r6, #0 - movs r1, #0xa - bl __divsi3 - adds r6, r0, #0 - cmp r6, #9 - bgt _08298FBA - subs r4, #1 - adds r0, #0x30 - strb r0, [r4] - add r0, sp, #0x134 - cmp r4, r0 - bhs _08299000 - adds r1, r0, #0 -_08298FE4: - ldrb r0, [r4] - strb r0, [r5] - adds r4, #1 - adds r5, #1 - cmp r4, r1 - blo _08298FE4 - b _08299000 -_08298FF2: - movs r0, #0x30 - strb r0, [r5] - adds r5, #1 - adds r0, r6, #0 - adds r0, #0x30 - strb r0, [r5] - adds r5, #1 -_08299000: - subs r0, r5, r7 - add sp, #0x134 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - thumb_func_end sub_08298F98 - - thumb_func_start __swsetup -__swsetup: @ 0x08299008 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x54] - cmp r0, #0 - bne _08299018 - ldr r0, _08299044 - ldr r0, [r0] - str r0, [r4, #0x54] -_08299018: - ldr r1, [r4, #0x54] - ldr r0, [r1, #0x38] - cmp r0, #0 - bne _08299026 - adds r0, r1, #0 - bl __sinit -_08299026: - ldrh r1, [r4, #0xc] - movs r0, #8 - ands r0, r1 - lsls r0, r0, #0x10 - asrs r5, r0, #0x10 - cmp r5, #0 - bne _08299080 - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _08299048 - movs r0, #1 - rsbs r0, r0, #0 - b _082990B2 - .align 2, 0 -_08299044: .4byte gUnknown_203CF1C -_08299048: - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08299078 - ldr r1, [r4, #0x30] - cmp r1, #0 - beq _08299066 - adds r0, r4, #0 - adds r0, #0x40 - cmp r1, r0 - beq _08299064 - ldr r0, [r4, #0x54] - bl _free_r -_08299064: - str r5, [r4, #0x30] -_08299066: - movs r0, #0x25 - rsbs r0, r0, #0 - ldrh r1, [r4, #0xc] - ands r0, r1 - movs r1, #0 - strh r0, [r4, #0xc] - str r1, [r4, #4] - ldr r0, [r4, #0x10] - str r0, [r4] -_08299078: - movs r0, #8 - ldrh r1, [r4, #0xc] - orrs r0, r1 - strh r0, [r4, #0xc] -_08299080: - ldr r0, [r4, #0x10] - cmp r0, #0 - bne _0829908C - adds r0, r4, #0 - bl __smakebuf -_0829908C: - ldrh r1, [r4, #0xc] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _082990A2 - movs r0, #0 - str r0, [r4, #8] - ldr r0, [r4, #0x14] - rsbs r0, r0, #0 - str r0, [r4, #0x18] - b _082990B0 -_082990A2: - movs r0, #2 - ands r0, r1 - movs r1, #0 - cmp r0, #0 - bne _082990AE - ldr r1, [r4, #0x14] -_082990AE: - str r1, [r4, #8] -_082990B0: - movs r0, #0 -_082990B2: - pop {r4, r5, pc} - thumb_func_end __swsetup - - thumb_func_start sub_082990B4 -sub_082990B4: @ 0x082990B4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - str r0, [sp] - str r1, [sp, #4] - ldr r7, [r1, #0x10] - ldr r0, [r0, #0x10] - cmp r0, r7 - bge _082990D0 - movs r0, #0 - b _08299204 -_082990D0: - ldr r0, [sp, #4] - adds r0, #0x14 - mov r8, r0 - subs r7, #1 - lsls r0, r7, #2 - mov r1, r8 - adds r1, r1, r0 - str r1, [sp, #0xc] - ldr r4, [sp] - adds r4, #0x14 - adds r5, r4, r0 - ldr r1, [r1] - adds r1, #1 - ldr r2, [r5] - mov sl, r2 - mov r0, sl - bl __udivsi3 - str r0, [sp, #8] - mov r3, r8 - str r3, [sp, #0x14] - str r4, [sp, #0x10] - cmp r0, #0 - beq _0829917A - movs r6, #0 - mov sb, r6 - ldr r0, _08299164 - mov ip, r0 -_08299108: - mov r2, r8 - adds r2, #4 - mov r8, r2 - subs r2, #4 - ldm r2!, {r1} - adds r0, r1, #0 - mov r3, ip - ands r0, r3 - ldr r2, [sp, #8] - muls r0, r2, r0 - mov r3, sb - adds r2, r0, r3 - lsrs r0, r1, #0x10 - ldr r3, [sp, #8] - adds r1, r0, #0 - muls r1, r3, r1 - lsrs r0, r2, #0x10 - adds r3, r1, r0 - lsrs r0, r3, #0x10 - mov sb, r0 - ldr r0, [r4] - mov r1, ip - ands r0, r1 - ands r2, r1 - subs r0, r0, r2 - adds r2, r0, r6 - asrs r6, r2, #0x10 - ldr r0, [r4] - lsrs r1, r0, #0x10 - mov r0, ip - ands r3, r0 - subs r1, r1, r3 - adds r0, r1, r6 - asrs r6, r0, #0x10 - strh r0, [r4] - strh r2, [r4, #2] - adds r4, #4 - ldr r1, [sp, #0xc] - cmp r8, r1 - bls _08299108 - mov r2, sl - cmp r2, #0 - bne _0829917A - ldr r4, [sp, #0x10] - b _0829916A - .align 2, 0 -_08299164: .4byte 0x0000FFFF -_08299168: - subs r7, #1 -_0829916A: - subs r5, #4 - cmp r5, r4 - bls _08299176 - ldr r0, [r5] - cmp r0, #0 - beq _08299168 -_08299176: - ldr r3, [sp] - str r7, [r3, #0x10] -_0829917A: - ldr r0, [sp] - ldr r1, [sp, #4] - bl __mcmp - cmp r0, #0 - blt _08299202 - ldr r0, [sp, #8] - adds r0, #1 - str r0, [sp, #8] - movs r6, #0 - mov sb, r6 - ldr r4, [sp, #0x10] - ldr r1, [sp, #0x14] - mov r8, r1 - lsls r2, r7, #2 - mov sl, r2 - ldr r5, _082991EC -_0829919C: - mov r3, r8 - adds r3, #4 - mov r8, r3 - subs r3, #4 - ldm r3!, {r1} - adds r0, r1, #0 - ands r0, r5 - mov r3, sb - adds r2, r0, r3 - lsrs r1, r1, #0x10 - lsrs r0, r2, #0x10 - adds r3, r1, r0 - lsrs r0, r3, #0x10 - mov sb, r0 - ldr r1, [r4] - adds r0, r1, #0 - ands r0, r5 - ands r2, r5 - subs r0, r0, r2 - adds r2, r0, r6 - asrs r6, r2, #0x10 - lsrs r1, r1, #0x10 - ands r3, r5 - subs r1, r1, r3 - adds r0, r1, r6 - asrs r6, r0, #0x10 - strh r0, [r4] - strh r2, [r4, #2] - adds r4, #4 - ldr r1, [sp, #0xc] - cmp r8, r1 - bls _0829919C - ldr r4, [sp, #0x10] - mov r2, sl - adds r5, r4, r2 - ldr r0, [r5] - cmp r0, #0 - bne _08299202 - b _082991F2 - .align 2, 0 -_082991EC: .4byte 0x0000FFFF -_082991F0: - subs r7, #1 -_082991F2: - subs r5, #4 - cmp r5, r4 - bls _082991FE - ldr r0, [r5] - cmp r0, #0 - beq _082991F0 -_082991FE: - ldr r3, [sp] - str r7, [r3, #0x10] -_08299202: - ldr r0, [sp, #8] -_08299204: - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - thumb_func_end sub_082990B4 - - thumb_func_start _dtoa_r -_dtoa_r: @ 0x08299210 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x84 - mov sl, r0 - str r3, [sp, #0xc] - ldr r4, [sp, #0xac] - str r1, [sp, #0x40] - str r2, [sp, #0x44] - ldr r2, [r0, #0x40] - cmp r2, #0 - beq _08299248 - ldr r0, [r0, #0x44] - str r0, [r2, #4] - mov r0, sl - ldr r1, [r0, #0x44] - movs r0, #1 - lsls r0, r1 - str r0, [r2, #8] - mov r0, sl - adds r1, r2, #0 - bl _Bfree - movs r0, #0 - mov r1, sl - str r0, [r1, #0x40] -_08299248: - movs r0, #0x80 - lsls r0, r0, #0x18 - ldr r1, [sp, #0x40] - ands r0, r1 - cmp r0, #0 - beq _08299264 - movs r0, #1 - str r0, [r4] - ldr r0, _08299260 - ands r1, r0 - str r1, [sp, #0x40] - b _08299266 - .align 2, 0 -_08299260: .4byte 0x7FFFFFFF -_08299264: - str r0, [r4] -_08299266: - ldr r1, _082992A8 - ldr r2, [sp, #0x40] - adds r0, r2, #0 - ands r0, r1 - cmp r0, r1 - bne _082992BC - ldr r0, _082992AC - ldr r3, [sp, #0xa8] - str r0, [r3] - ldr r0, _082992B0 - mov sb, r0 - ldr r1, [sp, #0x44] - cmp r1, #0 - bne _0829928E - ldr r0, _082992B4 - ands r2, r0 - cmp r2, #0 - bne _0829928E - ldr r2, _082992B8 - mov sb, r2 -_0829928E: - ldr r3, [sp, #0xb0] - cmp r3, #0 - beq _082992E0 - mov r1, sb - ldrb r0, [r1, #3] - adds r1, #3 - cmp r0, #0 - beq _082992A0 - adds r1, #5 -_082992A0: - ldr r2, [sp, #0xb0] - str r1, [r2] - b _082992E0 - .align 2, 0 -_082992A8: .4byte 0x7FF00000 -_082992AC: .4byte 0x0000270F -_082992B0: .4byte gUnknown_890F1E4 -_082992B4: .4byte 0x000FFFFF -_082992B8: .4byte gUnknown_890F1D8 -_082992BC: - ldr r3, _082992EC - ldr r2, _082992E8 - ldr r0, [sp, #0x40] - ldr r1, [sp, #0x44] - bl __eqdf2 - cmp r0, #0 - bne _082992F4 - movs r0, #1 - ldr r3, [sp, #0xa8] - str r0, [r3] - ldr r0, _082992F0 - mov sb, r0 - ldr r1, [sp, #0xb0] - cmp r1, #0 - beq _082992E0 - adds r0, #1 - str r0, [r1] -_082992E0: - mov r0, sb - bl _08299EFA - .align 2, 0 -_082992E8: .4byte 0x00000000 -_082992EC: .4byte 0x00000000 -_082992F0: .4byte gUnknown_890F1E8 -_082992F4: - add r0, sp, #8 - str r0, [sp] - mov r0, sl - ldr r1, [sp, #0x40] - ldr r2, [sp, #0x44] - add r3, sp, #4 - bl _d2b - str r0, [sp, #0x5c] - ldr r2, [sp, #0x40] - lsls r0, r2, #1 - lsrs r0, r0, #0x15 - mov r8, r0 - cmp r0, #0 - beq _08299344 - ldr r0, [sp, #0x40] - ldr r1, [sp, #0x44] - str r0, [sp, #0x48] - str r1, [sp, #0x4c] - ldr r0, _08299338 - ldr r1, [sp, #0x48] - ands r1, r0 - str r1, [sp, #0x48] - ldr r0, _0829933C - adds r2, r1, #0 - orrs r2, r0 - str r2, [sp, #0x48] - ldr r3, _08299340 - add r8, r3 - movs r0, #0 - str r0, [sp, #0x58] - ldr r6, [sp, #8] - b _082993A4 - .align 2, 0 -_08299338: .4byte 0x000FFFFF -_0829933C: .4byte 0x3FF00000 -_08299340: .4byte 0xFFFFFC01 -_08299344: - ldr r1, [sp, #8] - ldr r0, [sp, #4] - adds r2, r1, r0 - ldr r3, _0829936C - adds r3, r3, r2 - mov r8, r3 - adds r6, r1, #0 - cmp r3, #0x20 - ble _08299374 - movs r0, #0x40 - subs r0, r0, r3 - ldr r4, [sp, #0x40] - lsls r4, r0 - ldr r1, _08299370 - adds r0, r2, r1 - ldr r2, [sp, #0x44] - lsrs r2, r0 - adds r0, r2, #0 - orrs r4, r0 - b _0829937E - .align 2, 0 -_0829936C: .4byte 0x00000432 -_08299370: .4byte 0x00000412 -_08299374: - movs r0, #0x20 - mov r3, r8 - subs r0, r0, r3 - ldr r4, [sp, #0x44] - lsls r4, r0 -_0829937E: - adds r0, r4, #0 - bl __floatsidf - cmp r4, #0 - bge _08299390 - ldr r3, _08299454 - ldr r2, _08299450 - bl __adddf3 -_08299390: - str r0, [sp, #0x48] - str r1, [sp, #0x4c] - ldr r1, _08299458 - ldr r0, [sp, #0x48] - adds r1, r0, r1 - str r1, [sp, #0x48] - ldr r2, _0829945C - add r8, r2 - movs r3, #1 - str r3, [sp, #0x58] -_082993A4: - ldr r2, _08299460 - ldr r3, _08299464 - ldr r0, [sp, #0x48] - ldr r1, [sp, #0x4c] - bl __subdf3 - ldr r2, _08299468 - ldr r3, _0829946C - bl __muldf3 - ldr r2, _08299470 - ldr r3, _08299474 - bl __adddf3 - adds r5, r1, #0 - adds r4, r0, #0 - mov r0, r8 - bl __floatsidf - ldr r2, _08299478 - ldr r3, _0829947C - bl __muldf3 - adds r3, r1, #0 - adds r2, r0, #0 - adds r1, r5, #0 - adds r0, r4, #0 - bl __adddf3 - str r0, [sp, #0x6c] - str r1, [sp, #0x70] - bl __fixdfsi - str r0, [sp, #0x24] - ldr r2, _08299480 - ldr r3, _08299484 - ldr r0, [sp, #0x6c] - ldr r1, [sp, #0x70] - bl __ltdf2 - cmp r0, #0 - bge _08299414 - ldr r0, [sp, #0x24] - bl __floatsidf - adds r3, r1, #0 - adds r2, r0, #0 - ldr r0, [sp, #0x6c] - ldr r1, [sp, #0x70] - bl __nedf2 - cmp r0, #0 - beq _08299414 - ldr r0, [sp, #0x24] - subs r0, #1 - str r0, [sp, #0x24] -_08299414: - movs r1, #1 - str r1, [sp, #0x2c] - ldr r2, [sp, #0x24] - cmp r2, #0x16 - bhi _0829943E - ldr r1, _08299488 - lsls r0, r2, #3 - adds r0, r0, r1 - ldr r2, [r0] - ldr r3, [r0, #4] - ldr r0, [sp, #0x40] - ldr r1, [sp, #0x44] - bl __ltdf2 - cmp r0, #0 - bge _0829943A - ldr r3, [sp, #0x24] - subs r3, #1 - str r3, [sp, #0x24] -_0829943A: - movs r0, #0 - str r0, [sp, #0x2c] -_0829943E: - mov r1, r8 - subs r0, r6, r1 - subs r4, r0, #1 - cmp r4, #0 - blt _0829948C - movs r2, #0 - str r2, [sp, #0x10] - str r4, [sp, #0x34] - b _08299494 - .align 2, 0 -_08299450: .4byte 0x41F00000 -_08299454: .4byte 0x00000000 -_08299458: .4byte 0xFE100000 -_0829945C: .4byte 0xFFFFFBCD -_08299460: .4byte 0x3FF80000 -_08299464: .4byte 0x00000000 -_08299468: .4byte 0x3FD287A7 -_0829946C: .4byte 0x636F4361 -_08299470: .4byte 0x3FC68A28 -_08299474: .4byte 0x8B60C8B3 -_08299478: .4byte 0x3FD34413 -_0829947C: .4byte 0x509F79FB -_08299480: .4byte 0x00000000 -_08299484: .4byte 0x00000000 -_08299488: .4byte gUnknown_890F234 -_0829948C: - rsbs r4, r4, #0 - str r4, [sp, #0x10] - movs r3, #0 - str r3, [sp, #0x34] -_08299494: - ldr r0, [sp, #0x24] - cmp r0, #0 - blt _082994A8 - movs r1, #0 - str r1, [sp, #0x14] - str r0, [sp, #0x38] - ldr r2, [sp, #0x34] - adds r2, r2, r0 - str r2, [sp, #0x34] - b _082994B8 -_082994A8: - ldr r3, [sp, #0x10] - ldr r0, [sp, #0x24] - subs r3, r3, r0 - str r3, [sp, #0x10] - rsbs r1, r0, #0 - str r1, [sp, #0x14] - movs r2, #0 - str r2, [sp, #0x38] -_082994B8: - ldr r3, [sp, #0xc] - cmp r3, #9 - bls _082994C2 - movs r0, #0 - str r0, [sp, #0xc] -_082994C2: - movs r5, #1 - ldr r1, [sp, #0xc] - cmp r1, #5 - ble _082994D0 - subs r1, #4 - str r1, [sp, #0xc] - movs r5, #0 -_082994D0: - movs r2, #1 - str r2, [sp, #0x30] - ldr r3, [sp, #0xc] - cmp r3, #5 - bhi _0829954A - lsls r0, r3, #2 - ldr r1, _082994E4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_082994E4: .4byte _082994E8 -_082994E8: @ jump table - .4byte _08299500 @ case 0 - .4byte _08299500 @ case 1 - .4byte _08299512 @ case 2 - .4byte _0829952E @ case 3 - .4byte _08299516 @ case 4 - .4byte _08299532 @ case 5 -_08299500: - movs r0, #1 - rsbs r0, r0, #0 - str r0, [sp, #0x18] - str r0, [sp, #0x20] - movs r1, #0x12 - mov r8, r1 - movs r2, #0 - str r2, [sp, #0xa4] - b _0829954A -_08299512: - movs r3, #0 - str r3, [sp, #0x30] -_08299516: - ldr r0, [sp, #0xa4] - cmp r0, #0 - bgt _08299520 - movs r1, #1 - str r1, [sp, #0xa4] -_08299520: - ldr r2, [sp, #0xa4] - mov r8, r2 - mov r3, r8 - str r3, [sp, #0x20] - mov r0, r8 - str r0, [sp, #0x18] - b _0829954A -_0829952E: - movs r1, #0 - str r1, [sp, #0x30] -_08299532: - ldr r2, [sp, #0xa4] - ldr r3, [sp, #0x24] - adds r0, r2, r3 - adds r1, r0, #1 - mov r8, r1 - mov r2, r8 - str r2, [sp, #0x18] - str r0, [sp, #0x20] - cmp r1, #0 - bgt _0829954A - movs r3, #1 - mov r8, r3 -_0829954A: - movs r4, #4 - movs r0, #0 - mov r1, sl - str r0, [r1, #0x44] - mov r2, r8 - cmp r2, #0x17 - bls _0829956A - movs r1, #0 -_0829955A: - adds r1, #1 - lsls r4, r4, #1 - adds r0, r4, #0 - adds r0, #0x14 - cmp r0, r8 - bls _0829955A - mov r3, sl - str r1, [r3, #0x44] -_0829956A: - mov r0, sl - ldr r1, [r0, #0x44] - bl _Balloc - mov r1, sl - str r0, [r1, #0x40] - str r0, [sp, #0x74] - mov sb, r0 - ldr r2, [sp, #0x18] - cmp r2, #0xe - bls _08299582 - b _082998F4 -_08299582: - cmp r5, #0 - bne _08299588 - b _082998F4 -_08299588: - ldr r0, [sp, #0x40] - ldr r1, [sp, #0x44] - str r0, [sp, #0x78] - str r1, [sp, #0x7c] - str r0, [sp, #0x48] - str r1, [sp, #0x4c] - ldr r1, [sp, #0x24] - str r1, [sp, #0x28] - str r2, [sp, #0x1c] - movs r7, #2 - cmp r1, #0 - ble _08299618 - ldr r0, _08299610 - movs r2, #0xf - ands r1, r2 - lsls r1, r1, #3 - adds r3, r1, r0 - ldr r0, [r3] - ldr r1, [r3, #4] - str r0, [sp, #0x6c] - str r1, [sp, #0x70] - ldr r1, [sp, #0x24] - asrs r4, r1, #4 - movs r0, #0x10 - ands r0, r4 - cmp r0, #0 - beq _082995D4 - ands r4, r2 - ldr r0, _08299614 - ldr r2, [r0, #0x20] - ldr r3, [r0, #0x24] - ldr r0, [sp, #0x78] - ldr r1, [sp, #0x7c] - bl __divdf3 - str r0, [sp, #0x40] - str r1, [sp, #0x44] - movs r7, #3 -_082995D4: - cmp r4, #0 - beq _082995FC - ldr r5, _08299614 -_082995DA: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _082995F4 - adds r7, #1 - ldr r2, [r5] - ldr r3, [r5, #4] - ldr r0, [sp, #0x6c] - ldr r1, [sp, #0x70] - bl __muldf3 - str r0, [sp, #0x6c] - str r1, [sp, #0x70] -_082995F4: - asrs r4, r4, #1 - adds r5, #8 - cmp r4, #0 - bne _082995DA -_082995FC: - ldr r0, [sp, #0x40] - ldr r1, [sp, #0x44] - ldr r2, [sp, #0x6c] - ldr r3, [sp, #0x70] - bl __divdf3 - str r0, [sp, #0x40] - str r1, [sp, #0x44] - b _08299664 - .align 2, 0 -_08299610: .4byte gUnknown_890F234 -_08299614: .4byte gUnknown_890F2FC -_08299618: - ldr r2, [sp, #0x24] - rsbs r6, r2, #0 - cmp r6, #0 - beq _08299664 - ldr r1, _0829970C - movs r0, #0xf - ands r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, [r0, #4] - ldr r0, [r0] - ldr r2, [sp, #0x78] - ldr r3, [sp, #0x7c] - bl __muldf3 - str r0, [sp, #0x40] - str r1, [sp, #0x44] - asrs r4, r6, #4 - cmp r4, #0 - beq _08299664 - ldr r5, _08299710 -_08299642: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _0829965C - adds r7, #1 - ldr r0, [r5] - ldr r1, [r5, #4] - ldr r2, [sp, #0x40] - ldr r3, [sp, #0x44] - bl __muldf3 - str r0, [sp, #0x40] - str r1, [sp, #0x44] -_0829965C: - asrs r4, r4, #1 - adds r5, #8 - cmp r4, #0 - bne _08299642 -_08299664: - ldr r3, [sp, #0x2c] - cmp r3, #0 - beq _082996A2 - ldr r2, _08299714 - ldr r3, _08299718 - ldr r0, [sp, #0x40] - ldr r1, [sp, #0x44] - bl __ltdf2 - cmp r0, #0 - bge _082996A2 - ldr r0, [sp, #0x18] - cmp r0, #0 - ble _082996A2 - ldr r1, [sp, #0x20] - cmp r1, #0 - bgt _08299688 - b _082998E0 -_08299688: - str r1, [sp, #0x18] - ldr r2, [sp, #0x24] - subs r2, #1 - str r2, [sp, #0x24] - ldr r0, _0829971C - ldr r1, _08299720 - ldr r2, [sp, #0x40] - ldr r3, [sp, #0x44] - bl __muldf3 - str r0, [sp, #0x40] - str r1, [sp, #0x44] - adds r7, #1 -_082996A2: - adds r0, r7, #0 - bl __floatsidf - ldr r2, [sp, #0x40] - ldr r3, [sp, #0x44] - bl __muldf3 - ldr r2, _08299724 - ldr r3, _08299728 - bl __adddf3 - str r0, [sp, #0x50] - str r1, [sp, #0x54] - ldr r0, _0829972C - ldr r3, [sp, #0x50] - adds r0, r3, r0 - str r0, [sp, #0x50] - ldr r1, [sp, #0x18] - cmp r1, #0 - bne _08299738 - movs r2, #0 - str r2, [sp, #0x64] - movs r3, #0 - str r3, [sp, #0x68] - ldr r2, _08299730 - ldr r3, _08299734 - ldr r0, [sp, #0x40] - ldr r1, [sp, #0x44] - bl __subdf3 - adds r5, r1, #0 - adds r4, r0, #0 - ldr r2, [sp, #0x50] - ldr r3, [sp, #0x54] - bl __gtdf2 - cmp r0, #0 - ble _082996F0 - b _08299C6A -_082996F0: - ldr r0, [sp, #0x50] - ldr r1, [sp, #0x54] - bl __negdf2 - adds r3, r1, #0 - adds r2, r0, #0 - adds r1, r5, #0 - adds r0, r4, #0 - bl __ltdf2 - cmp r0, #0 - bge _0829970A - b _08299C62 -_0829970A: - b _082998E0 - .align 2, 0 -_0829970C: .4byte gUnknown_890F234 -_08299710: .4byte gUnknown_890F2FC -_08299714: .4byte 0x3FF00000 -_08299718: .4byte 0x00000000 -_0829971C: .4byte 0x40240000 -_08299720: .4byte 0x00000000 -_08299724: .4byte 0x401C0000 -_08299728: .4byte 0x00000000 -_0829972C: .4byte 0xFCC00000 -_08299730: .4byte 0x40140000 -_08299734: .4byte 0x00000000 -_08299738: - ldr r0, [sp, #0x30] - cmp r0, #0 - beq _08299808 - ldr r1, _08299768 - ldr r0, [sp, #0x18] - subs r0, #1 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r2, [r0] - ldr r3, [r0, #4] - ldr r0, _0829976C - ldr r1, _08299770 - bl __divdf3 - ldr r2, [sp, #0x50] - ldr r3, [sp, #0x54] - bl __subdf3 - str r0, [sp, #0x50] - str r1, [sp, #0x54] - movs r1, #0 - mov r8, r1 - b _08299794 - .align 2, 0 -_08299768: .4byte gUnknown_890F234 -_0829976C: .4byte 0x3FE00000 -_08299770: .4byte 0x00000000 -_08299774: - ldr r1, _082997FC - ldr r0, _082997F8 - ldr r2, [sp, #0x50] - ldr r3, [sp, #0x54] - bl __muldf3 - str r0, [sp, #0x50] - str r1, [sp, #0x54] - ldr r1, _082997FC - ldr r0, _082997F8 - adds r3, r5, #0 - adds r2, r4, #0 - bl __muldf3 - str r0, [sp, #0x40] - str r1, [sp, #0x44] -_08299794: - ldr r0, [sp, #0x40] - ldr r1, [sp, #0x44] - bl __fixdfsi - adds r6, r0, #0 - bl __floatsidf - adds r3, r1, #0 - adds r2, r0, #0 - ldr r0, [sp, #0x40] - ldr r1, [sp, #0x44] - bl __subdf3 - adds r5, r1, #0 - adds r4, r0, #0 - adds r0, r6, #0 - adds r0, #0x30 - mov r2, sb - strb r0, [r2] - movs r3, #1 - add sb, r3 - adds r1, r5, #0 - adds r0, r4, #0 - ldr r2, [sp, #0x50] - ldr r3, [sp, #0x54] - bl __ltdf2 - cmp r0, #0 - bge _082997D0 - b _08299EDA -_082997D0: - ldr r0, _08299800 - ldr r1, _08299804 - adds r3, r5, #0 - adds r2, r4, #0 - bl __subdf3 - ldr r2, [sp, #0x50] - ldr r3, [sp, #0x54] - bl __ltdf2 - cmp r0, #0 - bge _082997EA - b _082999F4 -_082997EA: - movs r0, #1 - add r8, r0 - ldr r1, [sp, #0x18] - cmp r8, r1 - blt _08299774 - b _082998E0 - .align 2, 0 -_082997F8: .4byte 0x40240000 -_082997FC: .4byte 0x00000000 -_08299800: .4byte 0x3FF00000 -_08299804: .4byte 0x00000000 -_08299808: - ldr r1, _08299828 - ldr r0, [sp, #0x18] - subs r0, #1 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, [r0, #4] - ldr r0, [r0] - ldr r2, [sp, #0x50] - ldr r3, [sp, #0x54] - bl __muldf3 - str r0, [sp, #0x50] - str r1, [sp, #0x54] - movs r2, #1 - mov r8, r2 - b _08299840 - .align 2, 0 -_08299828: .4byte gUnknown_890F234 -_0829982C: - movs r3, #1 - add r8, r3 - ldr r1, _082998D4 - ldr r0, _082998D0 - adds r3, r5, #0 - adds r2, r4, #0 - bl __muldf3 - str r0, [sp, #0x40] - str r1, [sp, #0x44] -_08299840: - ldr r0, [sp, #0x40] - ldr r1, [sp, #0x44] - bl __fixdfsi - adds r6, r0, #0 - bl __floatsidf - adds r3, r1, #0 - adds r2, r0, #0 - ldr r0, [sp, #0x40] - ldr r1, [sp, #0x44] - bl __subdf3 - adds r5, r1, #0 - adds r4, r0, #0 - adds r0, r6, #0 - adds r0, #0x30 - mov r1, sb - strb r0, [r1] - movs r2, #1 - add sb, r2 - ldr r3, [sp, #0x18] - cmp r8, r3 - bne _0829982C - ldr r6, _082998D8 - ldr r7, _082998DC - adds r1, r7, #0 - adds r0, r6, #0 - ldr r2, [sp, #0x50] - ldr r3, [sp, #0x54] - bl __adddf3 - adds r3, r1, #0 - adds r2, r0, #0 - adds r1, r5, #0 - adds r0, r4, #0 - bl __gtdf2 - cmp r0, #0 - ble _08299892 - b _082999F4 -_08299892: - adds r1, r7, #0 - adds r0, r6, #0 - ldr r2, [sp, #0x50] - ldr r3, [sp, #0x54] - bl __subdf3 - adds r3, r1, #0 - adds r2, r0, #0 - adds r1, r5, #0 - adds r0, r4, #0 - bl __ltdf2 - cmp r0, #0 - bge _082998E0 - movs r0, #1 - rsbs r0, r0, #0 - add sb, r0 - mov r1, sb - ldrb r1, [r1] - cmp r1, #0x30 - beq _082998BE - b _08299A1A -_082998BE: - movs r2, #1 - rsbs r2, r2, #0 - add sb, r2 - mov r3, sb - ldrb r3, [r3] - cmp r3, #0x30 - beq _082998BE - b _08299A1A - .align 2, 0 -_082998D0: .4byte 0x40240000 -_082998D4: .4byte 0x00000000 -_082998D8: .4byte 0x3FE00000 -_082998DC: .4byte 0x00000000 -_082998E0: - ldr r1, [sp, #0x74] - mov sb, r1 - ldr r2, [sp, #0x48] - ldr r3, [sp, #0x4c] - str r2, [sp, #0x40] - str r3, [sp, #0x44] - ldr r3, [sp, #0x28] - str r3, [sp, #0x24] - ldr r0, [sp, #0x1c] - str r0, [sp, #0x18] -_082998F4: - ldr r0, [sp, #4] - cmp r0, #0 - bge _082998FC - b _08299A30 -_082998FC: - ldr r1, [sp, #0x24] - cmp r1, #0xe - ble _08299904 - b _08299A30 -_08299904: - ldr r1, _08299950 - ldr r2, [sp, #0x24] - lsls r0, r2, #3 - adds r0, r0, r1 - ldr r1, [r0] - ldr r2, [r0, #4] - str r1, [sp, #0x6c] - str r2, [sp, #0x70] - ldr r2, [sp, #0xa4] - cmp r2, #0 - bge _0829995C - ldr r3, [sp, #0x18] - cmp r3, #0 - bgt _0829995C - movs r0, #0 - str r0, [sp, #0x64] - movs r1, #0 - str r1, [sp, #0x68] - cmp r3, #0 - bge _0829992E - b _08299C62 -_0829992E: - ldr r2, _08299954 - ldr r3, _08299958 - ldr r0, [sp, #0x6c] - ldr r1, [sp, #0x70] - bl __muldf3 - adds r3, r1, #0 - adds r2, r0, #0 - ldr r0, [sp, #0x40] - ldr r1, [sp, #0x44] - bl __ledf2 - cmp r0, #0 - bgt _0829994C - b _08299C62 -_0829994C: - b _08299C6A - .align 2, 0 -_08299950: .4byte gUnknown_890F234 -_08299954: .4byte 0x40140000 -_08299958: .4byte 0x00000000 -_0829995C: - movs r2, #1 - mov r8, r2 - b _08299980 -_08299962: - ldr r1, _08299A24 - ldr r0, _08299A20 - bl __muldf3 - str r0, [sp, #0x40] - str r1, [sp, #0x44] - ldr r2, _08299A28 - ldr r3, _08299A2C - bl __eqdf2 - cmp r0, #0 - bne _0829997C - b _08299EDA -_0829997C: - movs r3, #1 - add r8, r3 -_08299980: - ldr r0, [sp, #0x40] - ldr r1, [sp, #0x44] - ldr r2, [sp, #0x6c] - ldr r3, [sp, #0x70] - bl __divdf3 - bl __fixdfsi - adds r6, r0, #0 - bl __floatsidf - ldr r2, [sp, #0x6c] - ldr r3, [sp, #0x70] - bl __muldf3 - adds r3, r1, #0 - adds r2, r0, #0 - ldr r0, [sp, #0x40] - ldr r1, [sp, #0x44] - bl __subdf3 - adds r3, r1, #0 - adds r2, r0, #0 - adds r0, r6, #0 - adds r0, #0x30 - mov r1, sb - strb r0, [r1] - movs r0, #1 - add sb, r0 - ldr r1, [sp, #0x18] - cmp r8, r1 - bne _08299962 - adds r1, r3, #0 - adds r0, r2, #0 - bl __adddf3 - adds r5, r1, #0 - adds r4, r0, #0 - ldr r2, [sp, #0x6c] - ldr r3, [sp, #0x70] - bl __gtdf2 - cmp r0, #0 - bgt _082999F4 - adds r1, r5, #0 - adds r0, r4, #0 - ldr r2, [sp, #0x6c] - ldr r3, [sp, #0x70] - bl __eqdf2 - cmp r0, #0 - beq _082999EA - b _08299EDA -_082999EA: - movs r0, #1 - ands r0, r6 - cmp r0, #0 - bne _082999F4 - b _08299EDA -_082999F4: - movs r0, #0x30 -_082999F6: - movs r2, #1 - rsbs r2, r2, #0 - add sb, r2 - mov r3, sb - ldrb r3, [r3] - cmp r3, #0x39 - bne _08299A12 - ldr r1, [sp, #0x74] - cmp sb, r1 - bne _082999F6 - ldr r2, [sp, #0x24] - adds r2, #1 - str r2, [sp, #0x24] - strb r0, [r1] -_08299A12: - mov r3, sb - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] -_08299A1A: - movs r0, #1 - add sb, r0 - b _08299EDA - .align 2, 0 -_08299A20: .4byte 0x40240000 -_08299A24: .4byte 0x00000000 -_08299A28: .4byte 0x00000000 -_08299A2C: .4byte 0x00000000 -_08299A30: - ldr r5, [sp, #0x10] - ldr r6, [sp, #0x14] - movs r1, #0 - str r1, [sp, #0x60] - movs r2, #0 - str r2, [sp, #0x64] - ldr r3, [sp, #0x30] - cmp r3, #0 - beq _08299AA6 - ldr r1, [sp, #0xc] - cmp r1, #1 - bgt _08299A64 - ldr r2, [sp, #0x58] - cmp r2, #0 - beq _08299A5C - ldr r3, _08299A58 - adds r3, r3, r0 - mov r8, r3 - b _08299A90 - .align 2, 0 -_08299A58: .4byte 0x00000433 -_08299A5C: - ldr r1, [sp, #8] - movs r0, #0x36 - subs r0, r0, r1 - b _08299A8E -_08299A64: - ldr r4, [sp, #0x18] - subs r4, #1 - ldr r0, [sp, #0x14] - cmp r0, r4 - blt _08299A72 - subs r6, r0, r4 - b _08299A82 -_08299A72: - ldr r1, [sp, #0x14] - subs r4, r4, r1 - ldr r2, [sp, #0x38] - adds r2, r2, r4 - str r2, [sp, #0x38] - adds r1, r1, r4 - str r1, [sp, #0x14] - movs r6, #0 -_08299A82: - ldr r3, [sp, #0x18] - mov r8, r3 - cmp r3, #0 - bge _08299A90 - subs r5, r5, r3 - movs r0, #0 -_08299A8E: - mov r8, r0 -_08299A90: - ldr r1, [sp, #0x10] - add r1, r8 - str r1, [sp, #0x10] - ldr r2, [sp, #0x34] - add r2, r8 - str r2, [sp, #0x34] - mov r0, sl - movs r1, #1 - bl _i2b - str r0, [sp, #0x64] -_08299AA6: - cmp r5, #0 - ble _08299AC8 - ldr r3, [sp, #0x34] - cmp r3, #0 - ble _08299AC8 - mov r8, r3 - cmp r8, r5 - ble _08299AB8 - mov r8, r5 -_08299AB8: - ldr r0, [sp, #0x10] - mov r1, r8 - subs r0, r0, r1 - str r0, [sp, #0x10] - subs r5, r5, r1 - ldr r2, [sp, #0x34] - subs r2, r2, r1 - str r2, [sp, #0x34] -_08299AC8: - ldr r3, [sp, #0x14] - cmp r3, #0 - ble _08299B16 - ldr r0, [sp, #0x30] - cmp r0, #0 - beq _08299B0A - cmp r6, #0 - ble _08299AFA - mov r0, sl - ldr r1, [sp, #0x64] - adds r2, r6, #0 - bl _pow5mult - str r0, [sp, #0x64] - mov r0, sl - ldr r1, [sp, #0x64] - ldr r2, [sp, #0x5c] - bl _multiply - adds r4, r0, #0 - mov r0, sl - ldr r1, [sp, #0x5c] - bl _Bfree - str r4, [sp, #0x5c] -_08299AFA: - ldr r1, [sp, #0x14] - subs r4, r1, r6 - cmp r4, #0 - beq _08299B16 - mov r0, sl - ldr r1, [sp, #0x5c] - adds r2, r4, #0 - b _08299B10 -_08299B0A: - mov r0, sl - ldr r1, [sp, #0x5c] - ldr r2, [sp, #0x14] -_08299B10: - bl _pow5mult - str r0, [sp, #0x5c] -_08299B16: - mov r0, sl - movs r1, #1 - bl _i2b - str r0, [sp, #0x68] - ldr r2, [sp, #0x38] - cmp r2, #0 - ble _08299B30 - mov r0, sl - ldr r1, [sp, #0x68] - bl _pow5mult - str r0, [sp, #0x68] -_08299B30: - ldr r3, [sp, #0xc] - cmp r3, #1 - bgt _08299B6C - ldr r0, [sp, #0x44] - cmp r0, #0 - bne _08299B68 - ldr r0, _08299B60 - ldr r1, [sp, #0x40] - ands r0, r1 - cmp r0, #0 - bne _08299B68 - ldr r0, _08299B64 - ands r1, r0 - cmp r1, #0 - beq _08299B68 - ldr r1, [sp, #0x10] - adds r1, #1 - str r1, [sp, #0x10] - ldr r2, [sp, #0x34] - adds r2, #1 - str r2, [sp, #0x34] - movs r3, #1 - str r3, [sp, #0x3c] - b _08299B6C - .align 2, 0 -_08299B60: .4byte 0x000FFFFF -_08299B64: .4byte 0x7FF00000 -_08299B68: - movs r0, #0 - str r0, [sp, #0x3c] -_08299B6C: - ldr r1, [sp, #0x38] - cmp r1, #0 - beq _08299B98 - ldr r2, [sp, #0x68] - ldr r1, [r2, #0x10] - subs r1, #1 - lsls r1, r1, #2 - adds r0, r2, #0 - adds r0, #0x14 - adds r0, r0, r1 - ldr r0, [r0] - bl _hi0bits - ldr r1, [sp, #0x34] - adds r1, #0x20 - subs r1, r1, r0 - mov r8, r1 - movs r0, #0x1f - mov r3, r8 - ands r3, r0 - mov r8, r3 - b _08299BA6 -_08299B98: - ldr r0, [sp, #0x34] - adds r0, #1 - mov r8, r0 - movs r0, #0x1f - mov r1, r8 - ands r1, r0 - mov r8, r1 -_08299BA6: - mov r2, r8 - cmp r2, #0 - beq _08299BB2 - movs r0, #0x20 - subs r2, r0, r2 - mov r8, r2 -_08299BB2: - mov r3, r8 - cmp r3, #4 - ble _08299BBE - movs r0, #4 - rsbs r0, r0, #0 - b _08299BC6 -_08299BBE: - mov r3, r8 - cmp r3, #3 - bgt _08299BD6 - movs r0, #0x1c -_08299BC6: - add r8, r0 - ldr r1, [sp, #0x10] - add r1, r8 - str r1, [sp, #0x10] - add r5, r8 - ldr r2, [sp, #0x34] - add r2, r8 - str r2, [sp, #0x34] -_08299BD6: - ldr r3, [sp, #0x10] - cmp r3, #0 - ble _08299BE8 - mov r0, sl - ldr r1, [sp, #0x5c] - adds r2, r3, #0 - bl _lshift - str r0, [sp, #0x5c] -_08299BE8: - ldr r0, [sp, #0x34] - cmp r0, #0 - ble _08299BFA - mov r0, sl - ldr r1, [sp, #0x68] - ldr r2, [sp, #0x34] - bl _lshift - str r0, [sp, #0x68] -_08299BFA: - ldr r1, [sp, #0x2c] - cmp r1, #0 - beq _08299C38 - ldr r0, [sp, #0x5c] - ldr r1, [sp, #0x68] - bl __mcmp - cmp r0, #0 - bge _08299C38 - ldr r2, [sp, #0x24] - subs r2, #1 - str r2, [sp, #0x24] - mov r0, sl - ldr r1, [sp, #0x5c] - movs r2, #0xa - movs r3, #0 - bl _multadd - str r0, [sp, #0x5c] - ldr r3, [sp, #0x30] - cmp r3, #0 - beq _08299C34 - mov r0, sl - ldr r1, [sp, #0x64] - movs r2, #0xa - movs r3, #0 - bl _multadd - str r0, [sp, #0x64] -_08299C34: - ldr r0, [sp, #0x20] - str r0, [sp, #0x18] -_08299C38: - ldr r1, [sp, #0x18] - cmp r1, #0 - bgt _08299C7C - ldr r2, [sp, #0xc] - cmp r2, #2 - ble _08299C7C - cmp r1, #0 - blt _08299C62 - mov r0, sl - ldr r1, [sp, #0x68] - movs r2, #5 - movs r3, #0 - bl _multadd - str r0, [sp, #0x68] - ldr r0, [sp, #0x5c] - ldr r1, [sp, #0x68] - bl __mcmp - cmp r0, #0 - bgt _08299C6A -_08299C62: - ldr r3, [sp, #0xa4] - mvns r3, r3 - str r3, [sp, #0x24] - b _08299EB2 -_08299C6A: - movs r0, #0x31 - mov r1, sb - strb r0, [r1] - movs r2, #1 - add sb, r2 - ldr r3, [sp, #0x24] - adds r3, #1 - str r3, [sp, #0x24] - b _08299EB2 -_08299C7C: - ldr r0, [sp, #0x30] - cmp r0, #0 - bne _08299C84 - b _08299DFA -_08299C84: - cmp r5, #0 - ble _08299C94 - mov r0, sl - ldr r1, [sp, #0x64] - adds r2, r5, #0 - bl _lshift - str r0, [sp, #0x64] -_08299C94: - ldr r1, [sp, #0x64] - str r1, [sp, #0x60] - ldr r2, [sp, #0x3c] - cmp r2, #0 - beq _08299CC6 - ldr r1, [r1, #4] - mov r0, sl - bl _Balloc - str r0, [sp, #0x64] - adds r0, #0xc - ldr r1, [sp, #0x60] - adds r1, #0xc - ldr r3, [sp, #0x60] - ldr r2, [r3, #0x10] - lsls r2, r2, #2 - adds r2, #8 - bl memcpy - mov r0, sl - ldr r1, [sp, #0x64] - movs r2, #1 - bl _lshift - str r0, [sp, #0x64] -_08299CC6: - movs r0, #1 - mov r8, r0 - mov r1, r8 - ldr r2, [sp, #0x44] - ands r2, r1 - str r2, [sp, #0x80] - b _08299D1C -_08299CD4: - mov r0, sl - ldr r1, [sp, #0x5c] - movs r2, #0xa - movs r3, #0 - bl _multadd - str r0, [sp, #0x5c] - ldr r3, [sp, #0x60] - ldr r0, [sp, #0x64] - cmp r3, r0 - bne _08299CFC - mov r0, sl - ldr r1, [sp, #0x64] - movs r2, #0xa - movs r3, #0 - bl _multadd - str r0, [sp, #0x64] - str r0, [sp, #0x60] - b _08299D18 -_08299CFC: - mov r0, sl - ldr r1, [sp, #0x60] - movs r2, #0xa - movs r3, #0 - bl _multadd - str r0, [sp, #0x60] - mov r0, sl - ldr r1, [sp, #0x64] - movs r2, #0xa - movs r3, #0 - bl _multadd - str r0, [sp, #0x64] -_08299D18: - movs r1, #1 - add r8, r1 -_08299D1C: - ldr r0, [sp, #0x5c] - ldr r1, [sp, #0x68] - bl sub_082990B4 - adds r7, r0, #0 - adds r7, #0x30 - ldr r0, [sp, #0x5c] - ldr r1, [sp, #0x60] - bl __mcmp - adds r4, r0, #0 - mov r0, sl - ldr r1, [sp, #0x68] - ldr r2, [sp, #0x64] - bl __mdiff - adds r5, r0, #0 - ldr r0, [r5, #0xc] - cmp r0, #0 - bne _08299D50 - ldr r0, [sp, #0x5c] - adds r1, r5, #0 - bl __mcmp - adds r6, r0, #0 - b _08299D52 -_08299D50: - movs r6, #1 -_08299D52: - mov r0, sl - adds r1, r5, #0 - bl _Bfree - cmp r6, #0 - bne _08299D7E - ldr r2, [sp, #0xc] - cmp r2, #0 - bne _08299D7E - ldr r3, [sp, #0x80] - cmp r3, #0 - bne _08299D7E - cmp r7, #0x39 - beq _08299DD0 - cmp r4, #0 - ble _08299D74 - adds r7, #1 -_08299D74: - mov r0, sb - strb r7, [r0] - movs r1, #1 - add sb, r1 - b _08299EB2 -_08299D7E: - cmp r4, #0 - blt _08299D92 - cmp r4, #0 - bne _08299DC8 - ldr r2, [sp, #0xc] - cmp r2, #0 - bne _08299DC8 - ldr r3, [sp, #0x80] - cmp r3, #0 - bne _08299DC8 -_08299D92: - cmp r6, #0 - ble _08299DC2 - mov r0, sl - ldr r1, [sp, #0x5c] - movs r2, #1 - bl _lshift - str r0, [sp, #0x5c] - ldr r1, [sp, #0x68] - bl __mcmp - adds r6, r0, #0 - cmp r6, #0 - bgt _08299DBC - cmp r6, #0 - bne _08299DC2 - adds r0, r7, #0 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08299DC2 -_08299DBC: - adds r7, #1 - cmp r7, #0x3a - beq _08299DD0 -_08299DC2: - mov r2, sb - strb r7, [r2] - b _08299E7A -_08299DC8: - cmp r6, #0 - ble _08299DE8 - cmp r7, #0x39 - bne _08299DDC -_08299DD0: - movs r0, #0x39 - mov r1, sb - strb r0, [r1] - movs r2, #1 - add sb, r2 - b _08299E50 -_08299DDC: - adds r0, r7, #1 - mov r3, sb - strb r0, [r3] - movs r0, #1 - add sb, r0 - b _08299EB2 -_08299DE8: - mov r1, sb - strb r7, [r1] - movs r2, #1 - add sb, r2 - ldr r3, [sp, #0x18] - cmp r8, r3 - beq _08299DF8 - b _08299CD4 -_08299DF8: - b _08299E2C -_08299DFA: - movs r0, #1 - mov r8, r0 - b _08299E12 -_08299E00: - mov r0, sl - ldr r1, [sp, #0x5c] - movs r2, #0xa - movs r3, #0 - bl _multadd - str r0, [sp, #0x5c] - movs r1, #1 - add r8, r1 -_08299E12: - ldr r0, [sp, #0x5c] - ldr r1, [sp, #0x68] - bl sub_082990B4 - adds r7, r0, #0 - adds r7, #0x30 - mov r2, sb - strb r7, [r2] - movs r3, #1 - add sb, r3 - ldr r0, [sp, #0x18] - cmp r8, r0 - blt _08299E00 -_08299E2C: - mov r0, sl - ldr r1, [sp, #0x5c] - movs r2, #1 - bl _lshift - str r0, [sp, #0x5c] - ldr r1, [sp, #0x68] - bl __mcmp - adds r4, r0, #0 - cmp r4, #0 - bgt _08299E50 - cmp r4, #0 - bne _08299E92 - movs r0, #1 - ands r7, r0 - cmp r7, #0 - beq _08299E92 -_08299E50: - movs r1, #1 - rsbs r1, r1, #0 - add sb, r1 - mov r2, sb - ldrb r2, [r2] - cmp r2, #0x39 - bne _08299E72 -_08299E5E: - ldr r3, [sp, #0x74] - cmp sb, r3 - beq _08299E80 - movs r0, #1 - rsbs r0, r0, #0 - add sb, r0 - mov r1, sb - ldrb r1, [r1] - cmp r1, #0x39 - beq _08299E5E -_08299E72: - mov r2, sb - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] -_08299E7A: - movs r3, #1 - add sb, r3 - b _08299EB2 -_08299E80: - ldr r0, [sp, #0x24] - adds r0, #1 - str r0, [sp, #0x24] - movs r0, #0x31 - ldr r1, [sp, #0x74] - strb r0, [r1] - adds r1, #1 - mov sb, r1 - b _08299EB2 -_08299E92: - movs r2, #1 - rsbs r2, r2, #0 - add sb, r2 - mov r3, sb - ldrb r3, [r3] - cmp r3, #0x30 - bne _08299EAE -_08299EA0: - movs r0, #1 - rsbs r0, r0, #0 - add sb, r0 - mov r1, sb - ldrb r1, [r1] - cmp r1, #0x30 - beq _08299EA0 -_08299EAE: - movs r2, #1 - add sb, r2 -_08299EB2: - mov r0, sl - ldr r1, [sp, #0x68] - bl _Bfree - ldr r3, [sp, #0x64] - cmp r3, #0 - beq _08299EDA - ldr r0, [sp, #0x60] - cmp r0, #0 - beq _08299ED2 - cmp r0, r3 - beq _08299ED2 - mov r0, sl - ldr r1, [sp, #0x60] - bl _Bfree -_08299ED2: - mov r0, sl - ldr r1, [sp, #0x64] - bl _Bfree -_08299EDA: - mov r0, sl - ldr r1, [sp, #0x5c] - bl _Bfree - movs r0, #0 - mov r1, sb - strb r0, [r1] - ldr r0, [sp, #0x24] - adds r0, #1 - ldr r2, [sp, #0xa8] - str r0, [r2] - ldr r3, [sp, #0xb0] - cmp r3, #0 - beq _08299EF8 - str r1, [r3] -_08299EF8: - ldr r0, [sp, #0x74] -_08299EFA: - add sp, #0x84 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - thumb_func_end _dtoa_r - - thumb_func_start fflush -fflush: @ 0x08299F08 - push {r4, r5, r6, lr} - adds r4, r0, #0 - cmp r4, #0 - bne _08299F24 - ldr r0, _08299F1C - ldr r0, [r0] - ldr r1, _08299F20 - bl _fwalk - b _08299F9A - .align 2, 0 -_08299F1C: .4byte gUnknown_203CF1C -_08299F20: .4byte fflush -_08299F24: - ldr r0, [r4, #0x54] - cmp r0, #0 - bne _08299F30 - ldr r0, _08299F64 - ldr r0, [r0] - str r0, [r4, #0x54] -_08299F30: - ldr r1, [r4, #0x54] - ldr r0, [r1, #0x38] - cmp r0, #0 - bne _08299F3E - adds r0, r1, #0 - bl __sinit -_08299F3E: - movs r0, #0xc - ldrsh r1, [r4, r0] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08299F98 - ldr r6, [r4, #0x10] - cmp r6, #0 - beq _08299F98 - ldr r0, [r4] - subs r5, r0, r6 - str r6, [r4] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _08299F76 - ldr r0, [r4, #0x14] - b _08299F78 - .align 2, 0 -_08299F64: .4byte gUnknown_203CF1C -_08299F68: - movs r0, #0x40 - ldrh r1, [r4, #0xc] - orrs r0, r1 - strh r0, [r4, #0xc] - movs r0, #1 - rsbs r0, r0, #0 - b _08299F9A -_08299F76: - movs r0, #0 -_08299F78: - str r0, [r4, #8] - cmp r5, #0 - ble _08299F98 -_08299F7E: - ldr r0, [r4, #0x1c] - ldr r3, [r4, #0x24] - adds r1, r6, #0 - adds r2, r5, #0 - bl _call_via_r3 - adds r1, r0, #0 - cmp r1, #0 - ble _08299F68 - adds r6, r6, r1 - subs r5, r5, r1 - cmp r5, #0 - bgt _08299F7E -_08299F98: - movs r0, #0 -_08299F9A: - pop {r4, r5, r6, pc} - thumb_func_end fflush - - thumb_func_start sub_08299F9C -sub_08299F9C: @ 0x08299F9C - push {r4, lr} - movs r4, #0 - str r4, [r0] - str r4, [r0, #4] - str r4, [r0, #8] - strh r1, [r0, #0xc] - strh r2, [r0, #0xe] - str r4, [r0, #0x10] - str r4, [r0, #0x18] - str r0, [r0, #0x1c] - ldr r1, _08299FC4 - str r1, [r0, #0x20] - ldr r1, _08299FC8 - str r1, [r0, #0x24] - ldr r1, _08299FCC - str r1, [r0, #0x28] - ldr r1, _08299FD0 - str r1, [r0, #0x2c] - str r3, [r0, #0x54] - pop {r4, pc} - .align 2, 0 -_08299FC4: .4byte __sread -_08299FC8: .4byte __swrite -_08299FCC: .4byte __sseek -_08299FD0: .4byte __sclose - thumb_func_end sub_08299F9C - - thumb_func_start __sfmoreglue -__sfmoreglue: @ 0x08299FD4 - push {r4, r5, r6, lr} - adds r5, r1, #0 - movs r1, #0x58 - adds r6, r5, #0 - muls r6, r1, r6 - adds r1, r6, #0 - adds r1, #0xc - bl _malloc_r - adds r4, r0, #0 - cmp r4, #0 - beq _0829A000 - adds r0, #0xc - movs r1, #0 - str r1, [r4] - str r5, [r4, #4] - str r0, [r4, #8] - adds r2, r6, #0 - bl memset - adds r0, r4, #0 - b _0829A002 -_0829A000: - movs r0, #0 -_0829A002: - pop {r4, r5, r6, pc} - thumb_func_end __sfmoreglue - - thumb_func_start __sfp -__sfp: @ 0x0829A004 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, [r5, #0x38] - cmp r0, #0 - bne _0829A014 - adds r0, r5, #0 - bl __sinit -_0829A014: - movs r0, #0xec - lsls r0, r0, #1 - adds r4, r5, r0 - b _0829A01E -_0829A01C: - ldr r4, [r4] -_0829A01E: - ldr r2, [r4, #8] - ldr r0, [r4, #4] - b _0829A02E -_0829A024: - movs r3, #0xc - ldrsh r1, [r2, r3] - cmp r1, #0 - beq _0829A050 - adds r2, #0x58 -_0829A02E: - subs r0, #1 - cmp r0, #0 - bge _0829A024 - ldr r0, [r4] - cmp r0, #0 - bne _0829A01C - adds r0, r5, #0 - movs r1, #4 - bl __sfmoreglue - str r0, [r4] - cmp r0, #0 - bne _0829A01C - movs r0, #0xc - str r0, [r5] - movs r0, #0 - b _0829A070 -_0829A050: - movs r0, #1 - strh r0, [r2, #0xc] - str r1, [r2] - str r1, [r2, #8] - str r1, [r2, #4] - str r1, [r2, #0x10] - str r1, [r2, #0x14] - str r1, [r2, #0x18] - ldr r0, _0829A074 - strh r0, [r2, #0xe] - str r1, [r2, #0x30] - str r1, [r2, #0x34] - str r1, [r2, #0x44] - str r1, [r2, #0x48] - str r5, [r2, #0x54] - adds r0, r2, #0 -_0829A070: - pop {r4, r5, pc} - .align 2, 0 -_0829A074: .4byte 0x0000FFFF - thumb_func_end __sfp - - thumb_func_start _cleanup_r -_cleanup_r: @ 0x0829A078 - push {lr} - ldr r1, _0829A084 - bl _fwalk - pop {pc} - .align 2, 0 -_0829A084: .4byte fflush - thumb_func_end _cleanup_r - - thumb_func_start _cleanup -_cleanup: @ 0x0829A088 - push {lr} - ldr r0, _0829A094 - ldr r0, [r0] - bl _cleanup_r - pop {pc} - .align 2, 0 -_0829A094: .4byte gUnknown_203CF1C - thumb_func_end _cleanup - - thumb_func_start __sinit -__sinit: @ 0x0829A098 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0829A0F4 - str r0, [r5, #0x3c] - movs r0, #1 - str r0, [r5, #0x38] - movs r0, #0xf2 - lsls r0, r0, #1 - adds r4, r5, r0 - adds r0, r4, #0 - movs r1, #4 - movs r2, #0 - adds r3, r5, #0 - bl sub_08299F9C - movs r1, #0x8f - lsls r1, r1, #2 - adds r0, r5, r1 - movs r1, #9 - movs r2, #1 - adds r3, r5, #0 - bl sub_08299F9C - movs r1, #0xa5 - lsls r1, r1, #2 - adds r0, r5, r1 - movs r1, #0xa - movs r2, #2 - adds r3, r5, #0 - bl sub_08299F9C - movs r0, #0xec - lsls r0, r0, #1 - adds r1, r5, r0 - movs r0, #0 - str r0, [r1] - movs r0, #0xee - lsls r0, r0, #1 - adds r1, r5, r0 - movs r0, #3 - str r0, [r1] - movs r1, #0xf0 - lsls r1, r1, #1 - adds r0, r5, r1 - str r4, [r0] - pop {r4, r5, pc} - .align 2, 0 -_0829A0F4: .4byte _cleanup_r - thumb_func_end __sinit - - thumb_func_start _free_r -_free_r: @ 0x0829A0F8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov sb, r0 - adds r4, r1, #0 - cmp r4, #0 - bne _0829A10A - b _0829A2AE -_0829A10A: - bl __malloc_lock - adds r5, r4, #0 - subs r5, #8 - ldr r1, [r5, #4] - movs r6, #2 - rsbs r6, r6, #0 - ands r6, r1 - adds r7, r5, r6 - ldr r4, [r7, #4] - movs r0, #4 - rsbs r0, r0, #0 - ands r4, r0 - ldr r0, _0829A16C - mov ip, r0 - ldr r0, [r0, #8] - cmp r7, r0 - bne _0829A178 - adds r6, r6, r4 - movs r4, #1 - ands r1, r4 - cmp r1, #0 - bne _0829A146 - ldr r0, [r5] - subs r5, r5, r0 - adds r6, r6, r0 - ldr r3, [r5, #0xc] - ldr r2, [r5, #8] - str r3, [r2, #0xc] - str r2, [r3, #8] -_0829A146: - adds r0, r6, #0 - orrs r0, r4 - str r0, [r5, #4] - mov r2, ip - str r5, [r2, #8] - ldr r0, _0829A170 - ldr r0, [r0] - cmp r6, r0 - blo _0829A162 - ldr r0, _0829A174 - ldr r1, [r0] - mov r0, sb - bl _malloc_trim_r -_0829A162: - mov r0, sb - bl __malloc_unlock - b _0829A2AE - .align 2, 0 -_0829A16C: .4byte gUnknown_203CF34 -_0829A170: .4byte gUnknown_203D33C -_0829A174: .4byte gUnknown_203D340 -_0829A178: - str r4, [r7, #4] - movs r0, #0 - mov r8, r0 - movs r0, #1 - ands r1, r0 - cmp r1, #0 - bne _0829A1A4 - ldr r0, [r5] - subs r5, r5, r0 - adds r6, r6, r0 - ldr r1, [r5, #8] - mov r0, ip - adds r0, #8 - cmp r1, r0 - bne _0829A19C - movs r2, #1 - mov r8, r2 - b _0829A1A4 -_0829A19C: - ldr r3, [r5, #0xc] - adds r2, r1, #0 - str r3, [r2, #0xc] - str r2, [r3, #8] -_0829A1A4: - adds r0, r7, r4 - ldr r0, [r0, #4] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _0829A1DC - adds r6, r6, r4 - ldr r1, [r7, #8] - mov r0, r8 - cmp r0, #0 - bne _0829A1D4 - ldr r0, _0829A1D0 - cmp r1, r0 - bne _0829A1D4 - movs r2, #1 - mov r8, r2 - str r5, [r1, #0xc] - str r5, [r1, #8] - str r1, [r5, #0xc] - str r1, [r5, #8] - b _0829A1DC - .align 2, 0 -_0829A1D0: .4byte gUnknown_203CF3C -_0829A1D4: - ldr r3, [r7, #0xc] - adds r2, r1, #0 - str r3, [r2, #0xc] - str r2, [r3, #8] -_0829A1DC: - movs r1, #1 - adds r0, r6, #0 - orrs r0, r1 - str r0, [r5, #4] - adds r0, r5, r6 - str r6, [r0] - mov r0, r8 - cmp r0, #0 - bne _0829A2A8 - ldr r0, _0829A20C - cmp r6, r0 - bhi _0829A214 - lsrs r4, r6, #3 - ldr r2, _0829A210 - adds r0, r4, #0 - asrs r0, r0, #2 - lsls r1, r0 - ldr r0, [r2, #4] - orrs r0, r1 - str r0, [r2, #4] - lsls r0, r4, #3 - adds r3, r0, r2 - ldr r2, [r3, #8] - b _0829A2A0 - .align 2, 0 -_0829A20C: .4byte 0x000001FF -_0829A210: .4byte gUnknown_203CF34 -_0829A214: - lsrs r1, r6, #9 - cmp r1, #0 - bne _0829A21E - lsrs r4, r6, #3 - b _0829A266 -_0829A21E: - cmp r1, #4 - bhi _0829A22A - lsrs r0, r6, #6 - adds r4, r0, #0 - adds r4, #0x38 - b _0829A266 -_0829A22A: - cmp r1, #0x14 - bhi _0829A234 - adds r4, r1, #0 - adds r4, #0x5b - b _0829A266 -_0829A234: - cmp r1, #0x54 - bhi _0829A240 - lsrs r0, r6, #0xc - adds r4, r0, #0 - adds r4, #0x6e - b _0829A266 -_0829A240: - movs r0, #0xaa - lsls r0, r0, #1 - cmp r1, r0 - bhi _0829A250 - lsrs r0, r6, #0xf - adds r4, r0, #0 - adds r4, #0x77 - b _0829A266 -_0829A250: - ldr r0, _0829A260 - cmp r1, r0 - bhi _0829A264 - lsrs r0, r6, #0x12 - adds r4, r0, #0 - adds r4, #0x7c - b _0829A266 - .align 2, 0 -_0829A260: .4byte 0x00000554 -_0829A264: - movs r4, #0x7e -_0829A266: - lsls r0, r4, #3 - ldr r7, _0829A284 - adds r3, r0, r7 - ldr r2, [r3, #8] - cmp r2, r3 - bne _0829A288 - adds r0, r4, #0 - asrs r0, r0, #2 - movs r1, #1 - lsls r1, r0 - ldr r0, [r7, #4] - orrs r0, r1 - str r0, [r7, #4] - b _0829A2A0 - .align 2, 0 -_0829A284: .4byte gUnknown_203CF34 -_0829A288: - ldr r0, [r2, #4] - movs r1, #4 - rsbs r1, r1, #0 - b _0829A298 -_0829A290: - ldr r2, [r2, #8] - cmp r2, r3 - beq _0829A29E - ldr r0, [r2, #4] -_0829A298: - ands r0, r1 - cmp r6, r0 - blo _0829A290 -_0829A29E: - ldr r3, [r2, #0xc] -_0829A2A0: - str r3, [r5, #0xc] - str r2, [r5, #8] - str r5, [r3, #8] - str r5, [r2, #0xc] -_0829A2A8: - mov r0, sb - bl __malloc_unlock -_0829A2AE: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - thumb_func_end _free_r - - thumb_func_start _malloc_trim_r -_malloc_trim_r: @ 0x0829A2B8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - adds r4, r1, #0 - bl __malloc_lock - ldr r0, _0829A340 - mov r8, r0 - ldr r0, [r0, #8] - ldr r6, [r0, #4] - movs r0, #4 - rsbs r0, r0, #0 - ands r6, r0 - subs r4, r6, r4 - movs r5, #0x80 - lsls r5, r5, #5 - ldr r1, _0829A344 - adds r4, r4, r1 - adds r0, r4, #0 - adds r1, r5, #0 - bl __udivsi3 - subs r0, #1 - lsls r4, r0, #0xc - cmp r4, r5 - blt _0829A336 - adds r0, r7, #0 - movs r1, #0 - bl _sbrk_r - adds r2, r0, #0 - mov r1, r8 - ldr r0, [r1, #8] - adds r0, r0, r6 - cmp r2, r0 - bne _0829A336 - rsbs r1, r4, #0 - adds r0, r7, #0 - bl _sbrk_r - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _0829A350 - adds r0, r7, #0 - movs r1, #0 - bl _sbrk_r - adds r2, r0, #0 - mov r0, r8 - ldr r3, [r0, #8] - subs r6, r2, r3 - cmp r6, #0xf - ble _0829A336 - ldr r1, _0829A348 - ldr r0, _0829A34C - ldr r0, [r0] - subs r0, r2, r0 - str r0, [r1] - movs r0, #1 - orrs r6, r0 - str r6, [r3, #4] -_0829A336: - adds r0, r7, #0 - bl __malloc_unlock - movs r0, #0 - b _0829A36C - .align 2, 0 -_0829A340: .4byte gUnknown_203CF34 -_0829A344: .4byte 0x00000FEF -_0829A348: .4byte gUnknown_203D350 -_0829A34C: .4byte gUnknown_203D344 -_0829A350: - mov r1, r8 - ldr r2, [r1, #8] - subs r0, r6, r4 - movs r1, #1 - orrs r0, r1 - str r0, [r2, #4] - ldr r1, _0829A374 - ldr r0, [r1] - subs r0, r0, r4 - str r0, [r1] - adds r0, r7, #0 - bl __malloc_unlock - movs r0, #1 -_0829A36C: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0829A374: .4byte gUnknown_203D350 - thumb_func_end _malloc_trim_r - - thumb_func_start __sfvwrite -__sfvwrite: @ 0x0829A378 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r5, r0, #0 - mov sl, r1 - ldr r6, [r1, #8] - cmp r6, #0 - bne _0829A390 - b _0829A586 -_0829A390: - movs r0, #8 - ldrh r1, [r5, #0xc] - ands r0, r1 - cmp r0, #0 - beq _0829A3A0 - ldr r0, [r5, #0x10] - cmp r0, #0 - bne _0829A3AC -_0829A3A0: - adds r0, r5, #0 - bl __swsetup - cmp r0, #0 - beq _0829A3AC - b _0829A592 -_0829A3AC: - mov r2, sl - ldr r2, [r2] - mov r8, r2 - movs r6, #0 - ldrh r1, [r5, #0xc] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0829A400 -_0829A3BE: - ldr r0, [r5, #0x1c] - ldr r3, [r5, #0x24] - cmp r6, #0 - bne _0829A3D4 -_0829A3C6: - mov r1, r8 - ldr r7, [r1] - ldr r6, [r1, #4] - movs r2, #8 - add r8, r2 - cmp r6, #0 - beq _0829A3C6 -_0829A3D4: - adds r2, r6, #0 - movs r1, #0x80 - lsls r1, r1, #3 - cmp r6, r1 - bls _0829A3E0 - adds r2, r1, #0 -_0829A3E0: - adds r1, r7, #0 - bl _call_via_r3 - adds r4, r0, #0 - cmp r4, #0 - bgt _0829A3EE - b _0829A58A -_0829A3EE: - adds r7, r7, r4 - subs r6, r6, r4 - mov r1, sl - ldr r0, [r1, #8] - subs r0, r0, r4 - str r0, [r1, #8] - cmp r0, #0 - bne _0829A3BE - b _0829A586 -_0829A400: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0829A4BA -_0829A408: - ldrh r1, [r5, #0xc] - ldr r0, [r5, #8] - ldr r3, [r5] - cmp r6, #0 - bne _0829A420 -_0829A412: - mov r2, r8 - ldr r7, [r2] - ldr r6, [r2, #4] - movs r2, #8 - add r8, r2 - cmp r6, #0 - beq _0829A412 -_0829A420: - adds r4, r0, #0 - movs r2, #0x80 - lsls r2, r2, #2 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0829A44E - cmp r6, r4 - bhs _0829A434 - adds r4, r6, #0 -_0829A434: - adds r0, r3, #0 - adds r1, r7, #0 - adds r2, r4, #0 - bl memmove - ldr r0, [r5, #8] - subs r0, r0, r4 - str r0, [r5, #8] - ldr r0, [r5] - adds r0, r0, r4 - str r0, [r5] - adds r4, r6, #0 - b _0829A4A8 -_0829A44E: - ldr r0, [r5, #0x10] - cmp r3, r0 - bls _0829A476 - cmp r6, r4 - bls _0829A476 - adds r0, r3, #0 - adds r1, r7, #0 - adds r2, r4, #0 - bl memmove - ldr r0, [r5] - adds r0, r0, r4 - str r0, [r5] - adds r0, r5, #0 - bl fflush - cmp r0, #0 - beq _0829A474 - b _0829A58A -_0829A474: - b _0829A4A8 -_0829A476: - ldr r4, [r5, #0x14] - cmp r6, r4 - blo _0829A490 - ldr r0, [r5, #0x1c] - ldr r3, [r5, #0x24] - adds r1, r7, #0 - adds r2, r4, #0 - bl _call_via_r3 - adds r4, r0, #0 - cmp r4, #0 - ble _0829A58A - b _0829A4A8 -_0829A490: - adds r4, r6, #0 - adds r0, r3, #0 - adds r1, r7, #0 - adds r2, r4, #0 - bl memmove - ldr r0, [r5, #8] - subs r0, r0, r4 - str r0, [r5, #8] - ldr r0, [r5] - adds r0, r0, r4 - str r0, [r5] -_0829A4A8: - adds r7, r7, r4 - subs r6, r6, r4 - mov r1, sl - ldr r0, [r1, #8] - subs r0, r0, r4 - str r0, [r1, #8] - cmp r0, #0 - bne _0829A408 - b _0829A586 -_0829A4BA: - movs r2, #0 - str r2, [sp] -_0829A4BE: - cmp r6, #0 - bne _0829A4D4 - movs r0, #0 - str r0, [sp] -_0829A4C6: - mov r1, r8 - ldr r7, [r1] - ldr r6, [r1, #4] - movs r2, #8 - add r8, r2 - cmp r6, #0 - beq _0829A4C6 -_0829A4D4: - ldr r0, [sp] - cmp r0, #0 - bne _0829A4F8 - adds r0, r7, #0 - movs r1, #0xa - adds r2, r6, #0 - bl memchr - adds r1, r0, #0 - cmp r1, #0 - beq _0829A4F0 - subs r0, r7, #1 - subs r1, r1, r0 - b _0829A4F2 -_0829A4F0: - adds r1, r6, #1 -_0829A4F2: - mov sb, r1 - movs r2, #1 - str r2, [sp] -_0829A4F8: - mov r2, sb - cmp sb, r6 - bls _0829A500 - adds r2, r6, #0 -_0829A500: - ldr r0, [r5, #8] - ldr r1, [r5, #0x14] - adds r4, r0, r1 - ldr r0, [r5, #0x10] - ldr r3, [r5] - cmp r3, r0 - bls _0829A52E - cmp r2, r4 - ble _0829A52E - adds r0, r3, #0 - adds r1, r7, #0 - adds r2, r4, #0 - bl memmove - ldr r0, [r5] - adds r0, r0, r4 - str r0, [r5] - adds r0, r5, #0 - bl fflush - cmp r0, #0 - bne _0829A58A - b _0829A55E -_0829A52E: - adds r4, r1, #0 - cmp r2, r4 - blt _0829A548 - ldr r0, [r5, #0x1c] - ldr r3, [r5, #0x24] - adds r1, r7, #0 - adds r2, r4, #0 - bl _call_via_r3 - adds r4, r0, #0 - cmp r4, #0 - ble _0829A58A - b _0829A55E -_0829A548: - adds r4, r2, #0 - adds r0, r3, #0 - adds r1, r7, #0 - bl memmove - ldr r0, [r5, #8] - subs r0, r0, r4 - str r0, [r5, #8] - ldr r0, [r5] - adds r0, r0, r4 - str r0, [r5] -_0829A55E: - mov r0, sb - subs r0, r0, r4 - mov sb, r0 - cmp r0, #0 - bne _0829A576 - adds r0, r5, #0 - bl fflush - cmp r0, #0 - bne _0829A58A - movs r1, #0 - str r1, [sp] -_0829A576: - adds r7, r7, r4 - subs r6, r6, r4 - mov r2, sl - ldr r0, [r2, #8] - subs r0, r0, r4 - str r0, [r2, #8] - cmp r0, #0 - bne _0829A4BE -_0829A586: - movs r0, #0 - b _0829A596 -_0829A58A: - movs r0, #0x40 - ldrh r1, [r5, #0xc] - orrs r0, r1 - strh r0, [r5, #0xc] -_0829A592: - movs r0, #1 - rsbs r0, r0, #0 -_0829A596: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - thumb_func_end __sfvwrite - - thumb_func_start _fwalk -_fwalk: @ 0x0829A5A4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r1 - movs r7, #0 - movs r1, #0xec - lsls r1, r1, #1 - adds r6, r0, r1 - cmp r6, #0 - beq _0829A5DC -_0829A5B8: - ldr r5, [r6, #8] - ldr r4, [r6, #4] - b _0829A5D0 -_0829A5BE: - movs r1, #0xc - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _0829A5CE - adds r0, r5, #0 - bl _call_via_r8 - orrs r7, r0 -_0829A5CE: - adds r5, #0x58 -_0829A5D0: - subs r4, #1 - cmp r4, #0 - bge _0829A5BE - ldr r6, [r6] - cmp r6, #0 - bne _0829A5B8 -_0829A5DC: - adds r0, r7, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - thumb_func_end _fwalk - - thumb_func_start _setlocale_r -_setlocale_r: @ 0x0829A5E4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - adds r4, r2, #0 - cmp r4, #0 - beq _0829A618 - ldr r1, _0829A60C - adds r0, r4, #0 - bl strcmp - cmp r0, #0 - beq _0829A614 - ldr r1, _0829A610 - adds r0, r4, #0 - bl strcmp - cmp r0, #0 - beq _0829A614 - movs r0, #0 - b _0829A61A - .align 2, 0 -_0829A60C: .4byte gUnknown_890F224 -_0829A610: .4byte gUnknown_890F21C -_0829A614: - str r6, [r5, #0x30] - str r4, [r5, #0x34] -_0829A618: - ldr r0, _0829A61C -_0829A61A: - pop {r4, r5, r6, pc} - .align 2, 0 -_0829A61C: .4byte gUnknown_890F224 - thumb_func_end _setlocale_r - - thumb_func_start _localeconv_r -_localeconv_r: @ 0x0829A620 - ldr r0, _0829A624 - bx lr - .align 2, 0 -_0829A624: .4byte gUnknown_890F1EC - thumb_func_end _localeconv_r - - thumb_func_start setlocale -setlocale: @ 0x0829A628 - push {lr} - adds r3, r0, #0 - adds r2, r1, #0 - ldr r0, _0829A63C - ldr r0, [r0] - adds r1, r3, #0 - bl _setlocale_r - pop {pc} - .align 2, 0 -_0829A63C: .4byte gUnknown_203CF1C - thumb_func_end setlocale - - thumb_func_start localeconv -localeconv: @ 0x0829A640 - push {lr} - ldr r0, _0829A64C - ldr r0, [r0] - bl _localeconv_r - pop {pc} - .align 2, 0 -_0829A64C: .4byte gUnknown_203CF1C - thumb_func_end localeconv - - thumb_func_start __smakebuf -__smakebuf: @ 0x0829A650 - push {r4, r5, r6, r7, lr} - sub sp, #0x3c - adds r4, r0, #0 - movs r0, #2 - ldrh r1, [r4, #0xc] - ands r0, r1 - cmp r0, #0 - bne _0829A6E6 - movs r2, #0xe - ldrsh r0, [r4, r2] - cmp r0, #0 - blt _0829A678 - ldr r0, [r4, #0x54] - movs r2, #0xe - ldrsh r1, [r4, r2] - mov r2, sp - bl _fstat_r - cmp r0, #0 - bge _0829A68A -_0829A678: - movs r7, #0 - movs r6, #0x80 - lsls r6, r6, #3 - movs r1, #0x80 - lsls r1, r1, #4 - adds r0, r1, #0 - ldrh r2, [r4, #0xc] - orrs r0, r2 - b _0829A6CE -_0829A68A: - movs r7, #0 - ldr r1, [sp, #4] - movs r0, #0xf0 - lsls r0, r0, #8 - ands r1, r0 - movs r0, #0x80 - lsls r0, r0, #6 - cmp r1, r0 - bne _0829A69E - movs r7, #1 -_0829A69E: - movs r6, #0x80 - lsls r6, r6, #3 - movs r0, #0x80 - lsls r0, r0, #8 - cmp r1, r0 - bne _0829A6C4 - ldr r1, [r4, #0x28] - ldr r0, _0829A6C0 - cmp r1, r0 - bne _0829A6C4 - adds r0, r6, #0 - ldrh r1, [r4, #0xc] - orrs r0, r1 - strh r0, [r4, #0xc] - str r6, [r4, #0x4c] - b _0829A6D0 - .align 2, 0 -_0829A6C0: .4byte __sseek -_0829A6C4: - movs r2, #0x80 - lsls r2, r2, #4 - adds r0, r2, #0 - ldrh r1, [r4, #0xc] - orrs r0, r1 -_0829A6CE: - strh r0, [r4, #0xc] -_0829A6D0: - ldr r0, [r4, #0x54] - adds r1, r6, #0 - bl _malloc_r - adds r2, r0, #0 - cmp r2, #0 - bne _0829A6F4 - movs r0, #2 - ldrh r2, [r4, #0xc] - orrs r0, r2 - strh r0, [r4, #0xc] -_0829A6E6: - adds r0, r4, #0 - adds r0, #0x43 - str r0, [r4] - str r0, [r4, #0x10] - movs r0, #1 - str r0, [r4, #0x14] - b _0829A722 -_0829A6F4: - ldr r1, [r4, #0x54] - ldr r0, _0829A728 - str r0, [r1, #0x3c] - movs r0, #0x80 - movs r5, #0 - ldrh r1, [r4, #0xc] - orrs r0, r1 - strh r0, [r4, #0xc] - str r2, [r4] - str r2, [r4, #0x10] - str r6, [r4, #0x14] - cmp r7, #0 - beq _0829A722 - movs r2, #0xe - ldrsh r0, [r4, r2] - bl isatty - cmp r0, #0 - beq _0829A722 - movs r0, #1 - ldrh r1, [r4, #0xc] - orrs r0, r1 - strh r0, [r4, #0xc] -_0829A722: - add sp, #0x3c - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0829A728: .4byte _cleanup_r - thumb_func_end __smakebuf - - thumb_func_start sub_0829A72C -sub_0829A72C: @ 0x0829A72C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - str r0, [sp] - ldr r0, _0829A7A0 - ldr r0, [r0, #8] - mov r8, r0 - ldr r7, [r0, #4] - movs r0, #4 - rsbs r0, r0, #0 - ands r7, r0 - mov r2, r8 - adds r4, r2, r7 - ldr r0, _0829A7A4 - ldr r0, [r0] - adds r1, r1, r0 - adds r6, r1, #0 - adds r6, #0x10 - ldr r3, _0829A7A8 - mov sl, r3 - ldr r0, [r3] - movs r2, #1 - rsbs r2, r2, #0 - mov sb, r2 - cmp r0, sb - beq _0829A76E - ldr r3, _0829A7AC - adds r6, r1, r3 - ldr r0, _0829A7B0 - ands r6, r0 -_0829A76E: - ldr r0, [sp] - adds r1, r6, #0 - bl _sbrk_r - adds r5, r0, #0 - cmp r5, sb - beq _0829A870 - cmp r5, r4 - bhs _0829A786 - ldr r0, _0829A7A0 - cmp r8, r0 - bne _0829A870 -_0829A786: - ldr r1, _0829A7B4 - ldr r0, [r1] - adds r2, r0, r6 - str r2, [r1] - cmp r5, r4 - bne _0829A7B8 - adds r2, r6, r7 - ldr r3, _0829A7A0 - ldr r1, [r3, #8] - movs r0, #1 - orrs r2, r0 - str r2, [r1, #4] - b _0829A858 - .align 2, 0 -_0829A7A0: .4byte gUnknown_203CF34 -_0829A7A4: .4byte gUnknown_203D340 -_0829A7A8: .4byte gUnknown_203D344 -_0829A7AC: .4byte 0x0000100F -_0829A7B0: .4byte 0xFFFFF000 -_0829A7B4: .4byte gUnknown_203D350 -_0829A7B8: - mov r3, sl - ldr r0, [r3] - cmp r0, sb - bne _0829A7C4 - str r5, [r3] - b _0829A7CA -_0829A7C4: - subs r0, r5, r4 - adds r0, r2, r0 - str r0, [r1] -_0829A7CA: - adds r1, r5, #0 - adds r1, #8 - movs r0, #7 - ands r1, r0 - cmp r1, #0 - beq _0829A7DE - movs r0, #8 - subs r4, r0, r1 - adds r5, r5, r4 - b _0829A7E0 -_0829A7DE: - movs r4, #0 -_0829A7E0: - adds r0, r5, r6 - movs r1, #0x80 - lsls r1, r1, #5 - subs r1, #1 - ands r0, r1 - movs r1, #0x80 - lsls r1, r1, #5 - subs r0, r1, r0 - adds r4, r4, r0 - ldr r0, [sp] - adds r1, r4, #0 - bl _sbrk_r - adds r2, r0, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r2, r0 - beq _0829A870 - ldr r1, _0829A828 - ldr r0, [r1] - adds r0, r0, r4 - str r0, [r1] - ldr r1, _0829A82C - str r5, [r1, #8] - subs r0, r2, r5 - adds r2, r0, r4 - movs r3, #1 - orrs r2, r3 - str r2, [r5, #4] - cmp r8, r1 - beq _0829A858 - cmp r7, #0xf - bhi _0829A830 - str r3, [r5, #4] - b _0829A870 - .align 2, 0 -_0829A828: .4byte gUnknown_203D350 -_0829A82C: .4byte gUnknown_203CF34 -_0829A830: - subs r7, #0xc - movs r0, #8 - rsbs r0, r0, #0 - ands r7, r0 - mov r2, r8 - ldr r0, [r2, #4] - ands r0, r3 - orrs r0, r7 - str r0, [r2, #4] - adds r1, r2, r7 - movs r0, #5 - str r0, [r1, #4] - str r0, [r1, #8] - cmp r7, #0xf - bls _0829A858 - mov r1, r8 - adds r1, #8 - ldr r0, [sp] - bl _free_r -_0829A858: - ldr r0, _0829A87C - ldr r2, _0829A880 - ldr r1, [r0] - ldr r0, [r2] - cmp r1, r0 - bls _0829A866 - str r1, [r2] -_0829A866: - ldr r2, _0829A884 - ldr r0, [r2] - cmp r1, r0 - bls _0829A870 - str r1, [r2] -_0829A870: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0829A87C: .4byte gUnknown_203D350 -_0829A880: .4byte gUnknown_203D348 -_0829A884: .4byte gUnknown_203D34C - thumb_func_end sub_0829A72C - - thumb_func_start _malloc_r -_malloc_r: @ 0x0829A888 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - str r0, [sp] - adds r1, #0xb - cmp r1, #0x16 - ble _0829A8AA - movs r0, #8 - rsbs r0, r0, #0 - mov r8, r0 - mov r2, r8 - ands r2, r1 - mov r8, r2 - b _0829A8AE -_0829A8AA: - movs r3, #0x10 - mov r8, r3 -_0829A8AE: - ldr r0, [sp] - bl __malloc_lock - ldr r0, _0829A8F4 - cmp r8, r0 - bhi _0829A902 - mov r4, r8 - lsrs r4, r4, #3 - mov ip, r4 - ldr r0, _0829A8F8 - mov r7, r8 - adds r2, r7, r0 - ldr r5, [r2, #0xc] - cmp r5, r2 - bne _0829A8D6 - adds r2, r5, #0 - adds r2, #8 - ldr r5, [r2, #0xc] - cmp r5, r2 - beq _0829A8FC -_0829A8D6: - ldr r2, [r5, #4] - movs r0, #4 - rsbs r0, r0, #0 - ands r2, r0 - ldr r6, [r5, #0xc] - ldr r4, [r5, #8] - str r6, [r4, #0xc] - str r4, [r6, #8] - adds r2, r5, r2 - ldr r0, [r2, #4] - movs r1, #1 - orrs r0, r1 - str r0, [r2, #4] - b _0829AC2E - .align 2, 0 -_0829A8F4: .4byte 0x000001F7 -_0829A8F8: .4byte gUnknown_203CF34 -_0829A8FC: - movs r0, #2 - add ip, r0 - b _0829A9AE -_0829A902: - mov r2, r8 - lsrs r1, r2, #9 - cmp r1, #0 - bne _0829A90E - lsrs r2, r2, #3 - b _0829A95E -_0829A90E: - cmp r1, #4 - bhi _0829A91C - mov r3, r8 - lsrs r0, r3, #6 - adds r0, #0x38 - mov ip, r0 - b _0829A960 -_0829A91C: - cmp r1, #0x14 - bhi _0829A926 - adds r1, #0x5b - mov ip, r1 - b _0829A960 -_0829A926: - cmp r1, #0x54 - bhi _0829A934 - mov r4, r8 - lsrs r0, r4, #0xc - adds r0, #0x6e - mov ip, r0 - b _0829A960 -_0829A934: - movs r0, #0xaa - lsls r0, r0, #1 - cmp r1, r0 - bhi _0829A946 - mov r7, r8 - lsrs r0, r7, #0xf - adds r0, #0x77 - mov ip, r0 - b _0829A960 -_0829A946: - ldr r0, _0829A958 - cmp r1, r0 - bhi _0829A95C - mov r1, r8 - lsrs r0, r1, #0x12 - adds r0, #0x7c - mov ip, r0 - b _0829A960 - .align 2, 0 -_0829A958: .4byte 0x00000554 -_0829A95C: - movs r2, #0x7e -_0829A95E: - mov ip, r2 -_0829A960: - mov r3, ip - lsls r0, r3, #3 - ldr r1, _0829A984 - adds r4, r0, r1 - ldr r5, [r4, #0xc] - cmp r5, r4 - beq _0829A9AA - ldr r1, [r5, #4] - movs r0, #4 - rsbs r0, r0, #0 - ands r1, r0 - mov r7, r8 - subs r3, r1, r7 - cmp r3, #0xf - ble _0829A988 - adds r0, #3 - add ip, r0 - b _0829A9AA - .align 2, 0 -_0829A984: .4byte gUnknown_203CF34 -_0829A988: - cmp r3, #0 - blt _0829A98E - b _0829ABC8 -_0829A98E: - ldr r5, [r5, #0xc] - cmp r5, r4 - beq _0829A9AA - ldr r1, [r5, #4] - movs r0, #4 - rsbs r0, r0, #0 - ands r1, r0 - mov r2, r8 - subs r3, r1, r2 - cmp r3, #0xf - ble _0829A988 - movs r3, #1 - rsbs r3, r3, #0 - add ip, r3 -_0829A9AA: - movs r4, #1 - add ip, r4 -_0829A9AE: - ldr r0, _0829A9EC - ldr r5, [r0, #8] - mov sl, r0 - cmp r5, sl - bne _0829A9BA - b _0829AABC -_0829A9BA: - ldr r1, [r5, #4] - movs r0, #4 - rsbs r0, r0, #0 - ands r1, r0 - mov r7, r8 - subs r3, r1, r7 - cmp r3, #0xf - ble _0829A9F0 - adds r2, r5, r7 - movs r1, #1 - adds r0, r7, #0 - orrs r0, r1 - str r0, [r5, #4] - mov r4, sl - str r2, [r4, #0xc] - str r2, [r4, #8] - str r4, [r2, #0xc] - str r4, [r2, #8] - adds r0, r3, #0 - orrs r0, r1 - str r0, [r2, #4] - adds r0, r2, r3 - str r3, [r0] - b _0829AC2E - .align 2, 0 -_0829A9EC: .4byte gUnknown_203CF3C -_0829A9F0: - mov r7, sl - str r7, [r7, #0xc] - str r7, [r7, #8] - cmp r3, #0 - blt _0829AA06 - adds r2, r5, r1 - ldr r0, [r2, #4] - movs r1, #1 - orrs r0, r1 - str r0, [r2, #4] - b _0829AC2E -_0829AA06: - ldr r0, _0829AA28 - cmp r1, r0 - bhi _0829AA2C - lsrs r2, r1, #3 - mov r3, sl - subs r3, #8 - adds r0, r2, #0 - asrs r0, r0, #2 - movs r1, #1 - lsls r1, r0 - ldr r0, [r3, #4] - orrs r0, r1 - str r0, [r3, #4] - lsls r0, r2, #3 - adds r6, r0, r3 - ldr r4, [r6, #8] - b _0829AAB4 - .align 2, 0 -_0829AA28: .4byte 0x000001FF -_0829AA2C: - lsrs r2, r1, #9 - cmp r2, #0 - bne _0829AA36 - lsrs r2, r1, #3 - b _0829AA7A -_0829AA36: - cmp r2, #4 - bhi _0829AA42 - lsrs r0, r1, #6 - adds r2, r0, #0 - adds r2, #0x38 - b _0829AA7A -_0829AA42: - cmp r2, #0x14 - bhi _0829AA4A - adds r2, #0x5b - b _0829AA7A -_0829AA4A: - cmp r2, #0x54 - bhi _0829AA56 - lsrs r0, r1, #0xc - adds r2, r0, #0 - adds r2, #0x6e - b _0829AA7A -_0829AA56: - movs r0, #0xaa - lsls r0, r0, #1 - cmp r2, r0 - bhi _0829AA66 - lsrs r0, r1, #0xf - adds r2, r0, #0 - adds r2, #0x77 - b _0829AA7A -_0829AA66: - ldr r0, _0829AA74 - cmp r2, r0 - bhi _0829AA78 - lsrs r0, r1, #0x12 - adds r2, r0, #0 - adds r2, #0x7c - b _0829AA7A - .align 2, 0 -_0829AA74: .4byte 0x00000554 -_0829AA78: - movs r2, #0x7e -_0829AA7A: - lsls r0, r2, #3 - ldr r3, _0829AA98 - adds r6, r0, r3 - ldr r4, [r6, #8] - cmp r4, r6 - bne _0829AA9C - adds r0, r2, #0 - asrs r0, r0, #2 - movs r1, #1 - lsls r1, r0 - ldr r7, _0829AA98 - ldr r0, [r7, #4] - orrs r0, r1 - str r0, [r7, #4] - b _0829AAB4 - .align 2, 0 -_0829AA98: .4byte gUnknown_203CF34 -_0829AA9C: - ldr r0, [r4, #4] - movs r2, #4 - rsbs r2, r2, #0 - b _0829AAAC -_0829AAA4: - ldr r4, [r4, #8] - cmp r4, r6 - beq _0829AAB2 - ldr r0, [r4, #4] -_0829AAAC: - ands r0, r2 - cmp r1, r0 - blo _0829AAA4 -_0829AAB2: - ldr r6, [r4, #0xc] -_0829AAB4: - str r6, [r5, #0xc] - str r4, [r5, #8] - str r5, [r6, #8] - str r5, [r4, #0xc] -_0829AABC: - mov r0, ip - cmp r0, #0 - bge _0829AAC4 - adds r0, #3 -_0829AAC4: - asrs r0, r0, #2 - movs r6, #1 - lsls r6, r0 - ldr r0, _0829AAE8 - ldr r1, [r0, #4] - cmp r6, r1 - bhi _0829AB86 - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - bne _0829AAFA - movs r0, #4 - rsbs r0, r0, #0 - mov r2, ip - ands r0, r2 - adds r0, #4 - mov ip, r0 - b _0829AAF0 - .align 2, 0 -_0829AAE8: .4byte gUnknown_203CF34 -_0829AAEC: - movs r3, #4 - add ip, r3 -_0829AAF0: - lsls r6, r6, #1 - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _0829AAEC -_0829AAFA: - ldr r4, _0829AB78 - mov sb, r4 -_0829AAFE: - mov r7, ip - str r7, [sp, #4] - mov r1, ip - lsls r0, r1, #3 - mov r3, sb - adds r2, r0, r3 - adds r4, r2, #0 -_0829AB0C: - ldr r5, [r4, #0xc] - cmp r5, r4 - beq _0829AB2C - movs r0, #4 - rsbs r0, r0, #0 -_0829AB16: - ldr r1, [r5, #4] - ands r1, r0 - mov r7, r8 - subs r3, r1, r7 - cmp r3, #0xf - bgt _0829ABDC - cmp r3, #0 - bge _0829AC04 - ldr r5, [r5, #0xc] - cmp r5, r4 - bne _0829AB16 -_0829AB2C: - adds r4, #8 - movs r0, #1 - add ip, r0 - mov r0, ip - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0829AB0C -_0829AB3C: - ldr r0, [sp, #4] - ands r0, r1 - cmp r0, #0 - beq _0829AB7C - ldr r3, [sp, #4] - subs r3, #1 - str r3, [sp, #4] - subs r2, #8 - ldr r0, [r2, #8] - cmp r0, r2 - beq _0829AB3C -_0829AB52: - lsls r6, r6, #1 - mov r4, sb - ldr r1, [r4, #4] - cmp r6, r1 - bhi _0829AB86 - cmp r6, #0 - beq _0829AB86 - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - bne _0829AAFE -_0829AB68: - movs r7, #4 - add ip, r7 - lsls r6, r6, #1 - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _0829AB68 - b _0829AAFE - .align 2, 0 -_0829AB78: .4byte gUnknown_203CF34 -_0829AB7C: - mov r1, sb - ldr r0, [r1, #4] - bics r0, r6 - str r0, [r1, #4] - b _0829AB52 -_0829AB86: - ldr r2, _0829ABC4 - ldr r0, [r2, #8] - ldr r0, [r0, #4] - movs r4, #4 - rsbs r4, r4, #0 - ands r0, r4 - mov r7, r8 - subs r3, r0, r7 - cmp r0, r8 - blo _0829AB9E - cmp r3, #0xf - bgt _0829AC18 -_0829AB9E: - ldr r0, [sp] - mov r1, r8 - bl sub_0829A72C - ldr r1, _0829ABC4 - ldr r0, [r1, #8] - ldr r0, [r0, #4] - ands r0, r4 - mov r2, r8 - subs r3, r0, r2 - cmp r0, r8 - blo _0829ABBA - cmp r3, #0xf - bgt _0829AC18 -_0829ABBA: - ldr r0, [sp] - bl __malloc_unlock - movs r0, #0 - b _0829AC38 - .align 2, 0 -_0829ABC4: .4byte gUnknown_203CF34 -_0829ABC8: - ldr r6, [r5, #0xc] - ldr r4, [r5, #8] - str r6, [r4, #0xc] - str r4, [r6, #8] - adds r2, r5, r1 - ldr r0, [r2, #4] - movs r1, #1 - orrs r0, r1 - str r0, [r2, #4] - b _0829AC2E -_0829ABDC: - mov r4, r8 - adds r2, r5, r4 - movs r1, #1 - orrs r4, r1 - str r4, [r5, #4] - ldr r6, [r5, #0xc] - ldr r4, [r5, #8] - str r6, [r4, #0xc] - str r4, [r6, #8] - mov r7, sl - str r2, [r7, #0xc] - str r2, [r7, #8] - str r7, [r2, #0xc] - str r7, [r2, #8] - adds r0, r3, #0 - orrs r0, r1 - str r0, [r2, #4] - adds r0, r2, r3 - str r3, [r0] - b _0829AC2E -_0829AC04: - adds r2, r5, r1 - ldr r0, [r2, #4] - movs r1, #1 - orrs r0, r1 - str r0, [r2, #4] - ldr r6, [r5, #0xc] - ldr r4, [r5, #8] - str r6, [r4, #0xc] - str r4, [r6, #8] - b _0829AC2E -_0829AC18: - ldr r2, _0829AC44 - ldr r5, [r2, #8] - movs r1, #1 - mov r0, r8 - orrs r0, r1 - str r0, [r5, #4] - mov r4, r8 - adds r0, r5, r4 - str r0, [r2, #8] - orrs r3, r1 - str r3, [r0, #4] -_0829AC2E: - ldr r0, [sp] - bl __malloc_unlock - adds r0, r5, #0 - adds r0, #8 -_0829AC38: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0829AC44: .4byte gUnknown_203CF34 - thumb_func_end _malloc_r - - thumb_func_start _mbtowc_r -_mbtowc_r: @ 0x0829AC48 - sub sp, #4 - cmp r1, #0 - bne _0829AC50 - mov r1, sp -_0829AC50: - cmp r2, #0 - beq _0829AC6C - cmp r3, #0 - bne _0829AC5E - movs r0, #1 - rsbs r0, r0, #0 - b _0829AC6E -_0829AC5E: - ldrb r0, [r2] - str r0, [r1] - ldrb r0, [r2] - cmp r0, #0 - beq _0829AC6C - movs r0, #1 - b _0829AC6E -_0829AC6C: - movs r0, #0 -_0829AC6E: - add sp, #4 - bx lr - .align 2, 0 - thumb_func_end _mbtowc_r - - thumb_func_start memchr -memchr: @ 0x0829AC74 - push {r4, r5, r6, r7, lr} - adds r5, r1, #0 - adds r1, r0, #0 - movs r0, #0xff - ands r5, r0 - cmp r2, #3 - bls _0829ACE8 - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _0829ACE8 - adds r4, r1, #0 - movs r6, #0 - movs r1, #0 -_0829AC90: - lsls r0, r6, #8 - adds r6, r0, r5 - adds r1, #1 - cmp r1, #3 - bls _0829AC90 - cmp r2, #3 - bls _0829ACCE - ldr r0, _0829ACD4 - mov ip, r0 - ldr r7, _0829ACD8 -_0829ACA4: - ldr r1, [r4] - eors r1, r6 - mov r3, ip - adds r0, r1, r3 - bics r0, r1 - ands r0, r7 - cmp r0, #0 - beq _0829ACC6 - adds r1, r4, #0 - movs r3, #0 -_0829ACB8: - ldrb r0, [r1] - cmp r0, r5 - beq _0829ACE2 - adds r1, #1 - adds r3, #1 - cmp r3, #3 - bls _0829ACB8 -_0829ACC6: - subs r2, #4 - adds r4, #4 - cmp r2, #3 - bhi _0829ACA4 -_0829ACCE: - adds r1, r4, #0 - b _0829ACE8 - .align 2, 0 -_0829ACD4: .4byte 0xFEFEFEFF -_0829ACD8: .4byte 0x80808080 -_0829ACDC: - ldrb r0, [r1] - cmp r0, r5 - bne _0829ACE6 -_0829ACE2: - adds r0, r1, #0 - b _0829ACF2 -_0829ACE6: - adds r1, #1 -_0829ACE8: - adds r0, r2, #0 - subs r2, #1 - cmp r0, #0 - bne _0829ACDC - movs r0, #0 -_0829ACF2: - pop {r4, r5, r6, r7, pc} - thumb_func_end memchr - - thumb_func_start memmove -memmove: @ 0x0829ACF4 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r5, #0 - adds r3, r1, #0 - cmp r3, r5 - bhs _0829AD26 - adds r0, r3, r2 - cmp r5, r0 - bhs _0829AD26 - adds r3, r0, #0 - adds r4, r5, r2 - subs r2, #1 - movs r0, #1 - rsbs r0, r0, #0 - cmp r2, r0 - beq _0829AD78 - adds r1, r0, #0 -_0829AD16: - subs r4, #1 - subs r3, #1 - ldrb r0, [r3] - strb r0, [r4] - subs r2, #1 - cmp r2, r1 - bne _0829AD16 - b _0829AD78 -_0829AD26: - cmp r2, #0xf - bls _0829AD5E - adds r0, r3, #0 - orrs r0, r4 - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0829AD5E - adds r1, r3, #0 -_0829AD38: - ldm r1!, {r0} - stm r4!, {r0} - ldm r1!, {r0} - stm r4!, {r0} - ldm r1!, {r0} - stm r4!, {r0} - ldm r1!, {r0} - stm r4!, {r0} - subs r2, #0x10 - cmp r2, #0xf - bhi _0829AD38 - cmp r2, #3 - bls _0829AD5C -_0829AD52: - ldm r1!, {r0} - stm r4!, {r0} - subs r2, #4 - cmp r2, #3 - bhi _0829AD52 -_0829AD5C: - adds r3, r1, #0 -_0829AD5E: - subs r2, #1 - movs r0, #1 - rsbs r0, r0, #0 - cmp r2, r0 - beq _0829AD78 - adds r1, r0, #0 -_0829AD6A: - ldrb r0, [r3] - strb r0, [r4] - adds r3, #1 - adds r4, #1 - subs r2, #1 - cmp r2, r1 - bne _0829AD6A -_0829AD78: - adds r0, r5, #0 - pop {r4, r5, pc} - thumb_func_end memmove - - thumb_func_start __malloc_lock -__malloc_lock: @ 0x0829AD7C - bx lr - .align 2, 0 - thumb_func_end __malloc_lock - - thumb_func_start __malloc_unlock -__malloc_unlock: @ 0x0829AD80 - bx lr - .align 2, 0 - thumb_func_end __malloc_unlock - - thumb_func_start _Balloc -_Balloc: @ 0x0829AD84 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r0, [r4, #0x4c] - cmp r0, #0 - bne _0829ADA0 - adds r0, r4, #0 - movs r1, #4 - movs r2, #0x10 - bl _calloc_r - str r0, [r4, #0x4c] - cmp r0, #0 - beq _0829ADC8 -_0829ADA0: - ldr r1, [r4, #0x4c] - lsls r0, r6, #2 - adds r2, r0, r1 - ldr r1, [r2] - cmp r1, #0 - beq _0829ADB2 - ldr r0, [r1] - str r0, [r2] - b _0829ADD0 -_0829ADB2: - movs r5, #1 - lsls r5, r6 - lsls r2, r5, #2 - adds r2, #0x14 - adds r0, r4, #0 - movs r1, #1 - bl _calloc_r - adds r1, r0, #0 - cmp r1, #0 - bne _0829ADCC -_0829ADC8: - movs r0, #0 - b _0829ADD8 -_0829ADCC: - str r6, [r1, #4] - str r5, [r1, #8] -_0829ADD0: - movs r0, #0 - str r0, [r1, #0x10] - str r0, [r1, #0xc] - adds r0, r1, #0 -_0829ADD8: - pop {r4, r5, r6, pc} - .align 2, 0 - thumb_func_end _Balloc - - thumb_func_start _Bfree -_Bfree: @ 0x0829ADDC - adds r3, r0, #0 - adds r2, r1, #0 - cmp r2, #0 - beq _0829ADF2 - ldr r0, [r2, #4] - ldr r1, [r3, #0x4c] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - str r1, [r2] - str r2, [r0] -_0829ADF2: - bx lr - thumb_func_end _Bfree - - thumb_func_start _multadd -_multadd: @ 0x0829ADF4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov sb, r0 - adds r5, r1, #0 - adds r4, r2, #0 - mov r8, r3 - ldr r6, [r5, #0x10] - adds r3, r5, #0 - adds r3, #0x14 - movs r7, #0 - ldr r0, _0829AE88 - mov ip, r0 -_0829AE10: - ldr r1, [r3] - adds r0, r1, #0 - mov r2, ip - ands r0, r2 - adds r2, r0, #0 - muls r2, r4, r2 - add r2, r8 - lsrs r1, r1, #0x10 - adds r0, r1, #0 - muls r0, r4, r0 - lsrs r1, r2, #0x10 - adds r0, r0, r1 - lsrs r1, r0, #0x10 - mov r8, r1 - lsls r0, r0, #0x10 - mov r1, ip - ands r2, r1 - adds r0, r0, r2 - stm r3!, {r0} - adds r7, #1 - cmp r7, r6 - blt _0829AE10 - mov r2, r8 - cmp r2, #0 - beq _0829AE7E - ldr r0, [r5, #8] - cmp r6, r0 - blt _0829AE6E - ldr r1, [r5, #4] - adds r1, #1 - mov r0, sb - bl _Balloc - adds r4, r0, #0 - adds r0, #0xc - adds r1, r5, #0 - adds r1, #0xc - ldr r2, [r5, #0x10] - lsls r2, r2, #2 - adds r2, #8 - bl memcpy - mov r0, sb - adds r1, r5, #0 - bl _Bfree - adds r5, r4, #0 -_0829AE6E: - lsls r1, r6, #2 - adds r0, r5, #0 - adds r0, #0x14 - adds r0, r0, r1 - mov r1, r8 - str r1, [r0] - adds r6, #1 - str r6, [r5, #0x10] -_0829AE7E: - adds r0, r5, #0 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0829AE88: .4byte 0x0000FFFF - thumb_func_end _multadd - - thumb_func_start _s2b -_s2b: @ 0x0829AE8C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - adds r4, r1, #0 - adds r6, r2, #0 - mov r8, r3 - mov r0, r8 - adds r0, #8 - movs r1, #9 - bl __divsi3 - movs r1, #0 - movs r2, #1 - cmp r0, #1 - ble _0829AEB4 -_0829AEAC: - lsls r2, r2, #1 - adds r1, #1 - cmp r0, r2 - bgt _0829AEAC -_0829AEB4: - adds r0, r7, #0 - bl _Balloc - adds r1, r0, #0 - ldr r0, [sp, #0x18] - str r0, [r1, #0x14] - movs r0, #1 - str r0, [r1, #0x10] - movs r5, #9 - cmp r6, #9 - ble _0829AEE6 - adds r4, #9 -_0829AECC: - ldrb r3, [r4] - subs r3, #0x30 - adds r4, #1 - adds r0, r7, #0 - movs r2, #0xa - bl _multadd - adds r1, r0, #0 - adds r5, #1 - cmp r5, r6 - blt _0829AECC - adds r4, #1 - b _0829AEE8 -_0829AEE6: - adds r4, #0xa -_0829AEE8: - cmp r5, r8 - bge _0829AF06 - mov r0, r8 - subs r5, r0, r5 -_0829AEF0: - ldrb r3, [r4] - subs r3, #0x30 - adds r4, #1 - adds r0, r7, #0 - movs r2, #0xa - bl _multadd - adds r1, r0, #0 - subs r5, #1 - cmp r5, #0 - bne _0829AEF0 -_0829AF06: - adds r0, r1, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - thumb_func_end _s2b - - thumb_func_start _hi0bits -_hi0bits: @ 0x0829AF10 - adds r1, r0, #0 - movs r2, #0 - ldr r0, _0829AF60 - ands r0, r1 - cmp r0, #0 - bne _0829AF20 - movs r2, #0x10 - lsls r1, r1, #0x10 -_0829AF20: - movs r0, #0xff - lsls r0, r0, #0x18 - ands r0, r1 - cmp r0, #0 - bne _0829AF2E - adds r2, #8 - lsls r1, r1, #8 -_0829AF2E: - movs r0, #0xf0 - lsls r0, r0, #0x18 - ands r0, r1 - cmp r0, #0 - bne _0829AF3C - adds r2, #4 - lsls r1, r1, #4 -_0829AF3C: - movs r0, #0xc0 - lsls r0, r0, #0x18 - ands r0, r1 - cmp r0, #0 - bne _0829AF4A - adds r2, #2 - lsls r1, r1, #2 -_0829AF4A: - cmp r1, #0 - blt _0829AF64 - adds r2, #1 - movs r0, #0x80 - lsls r0, r0, #0x17 - ands r0, r1 - cmp r0, #0 - bne _0829AF64 - movs r0, #0x20 - b _0829AF66 - .align 2, 0 -_0829AF60: .4byte 0xFFFF0000 -_0829AF64: - adds r0, r2, #0 -_0829AF66: - bx lr - thumb_func_end _hi0bits - - thumb_func_start _lo0bits -_lo0bits: @ 0x0829AF68 - adds r3, r0, #0 - ldr r1, [r3] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - beq _0829AF98 - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0829AF80 - movs r0, #0 - b _0829AFE8 -_0829AF80: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0829AF90 - lsrs r0, r1, #1 - str r0, [r3] - movs r0, #1 - b _0829AFE8 -_0829AF90: - lsrs r0, r1, #2 - str r0, [r3] - movs r0, #2 - b _0829AFE8 -_0829AF98: - movs r2, #0 - ldr r0, _0829AFE0 - ands r0, r1 - cmp r0, #0 - bne _0829AFA6 - movs r2, #0x10 - lsrs r1, r1, #0x10 -_0829AFA6: - movs r0, #0xff - ands r0, r1 - cmp r0, #0 - bne _0829AFB2 - adds r2, #8 - lsrs r1, r1, #8 -_0829AFB2: - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _0829AFBE - adds r2, #4 - lsrs r1, r1, #4 -_0829AFBE: - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _0829AFCA - adds r2, #2 - lsrs r1, r1, #2 -_0829AFCA: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0829AFE4 - adds r2, #1 - lsrs r1, r1, #1 - cmp r1, #0 - bne _0829AFE4 - movs r0, #0x20 - b _0829AFE8 - .align 2, 0 -_0829AFE0: .4byte 0x0000FFFF -_0829AFE4: - str r1, [r3] - adds r0, r2, #0 -_0829AFE8: - bx lr - .align 2, 0 - thumb_func_end _lo0bits - - thumb_func_start _i2b -_i2b: @ 0x0829AFEC - push {r4, lr} - adds r4, r1, #0 - movs r1, #1 - bl _Balloc - str r4, [r0, #0x14] - movs r1, #1 - str r1, [r0, #0x10] - pop {r4, pc} - .align 2, 0 - thumb_func_end _i2b - - thumb_func_start _multiply -_multiply: @ 0x0829B000 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x24 - adds r3, r0, #0 - adds r4, r1, #0 - adds r5, r2, #0 - ldr r1, [r4, #0x10] - ldr r0, [r5, #0x10] - cmp r1, r0 - bge _0829B020 - str r4, [sp] - adds r4, r5, #0 - ldr r5, [sp] -_0829B020: - ldr r1, [r4, #4] - ldr r6, [r4, #0x10] - ldr r0, [r5, #0x10] - mov r8, r0 - mov r2, r8 - adds r2, r6, r2 - str r2, [sp, #4] - ldr r0, [r4, #8] - cmp r2, r0 - ble _0829B036 - adds r1, #1 -_0829B036: - adds r0, r3, #0 - bl _Balloc - str r0, [sp] - adds r7, r0, #0 - adds r7, #0x14 - ldr r1, [sp, #4] - lsls r0, r1, #2 - adds r2, r7, r0 - str r2, [sp, #8] - str r0, [sp, #0x18] - adds r1, r4, #0 - adds r1, #0x14 - lsls r3, r6, #2 - adds r2, r5, #0 - adds r2, #0x14 - mov r5, r8 - lsls r4, r5, #2 - ldr r0, [sp, #8] - cmp r7, r0 - bhs _0829B06A - movs r0, #0 -_0829B062: - stm r7!, {r0} - ldr r5, [sp, #8] - cmp r7, r5 - blo _0829B062 -_0829B06A: - str r1, [sp, #8] - adds r3, r1, r3 - str r3, [sp, #0xc] - mov r8, r2 - add r4, r8 - str r4, [sp, #0x10] - ldr r0, [sp] - adds r0, #0x14 - mov sb, r0 - mov r1, sb - str r1, [sp, #0x20] - cmp r8, r4 - bhs _0829B132 -_0829B084: - mov r2, r8 - ldm r2!, {r6} - str r2, [sp, #0x14] - ldr r0, _0829B140 - ands r6, r0 - mov r4, sb - adds r4, #4 - str r4, [sp, #0x1c] - cmp r6, #0 - beq _0829B0DC - ldr r7, [sp, #8] - mov r5, sb - movs r1, #0 - mov ip, r1 - mov sl, r0 -_0829B0A2: - ldm r7!, {r3} - adds r0, r3, #0 - mov r2, sl - ands r0, r2 - adds r1, r0, #0 - muls r1, r6, r1 - ldr r2, [r5] - adds r0, r2, #0 - mov r4, sl - ands r0, r4 - adds r1, r1, r0 - mov r0, ip - adds r4, r1, r0 - lsrs r1, r4, #0x10 - lsrs r3, r3, #0x10 - adds r0, r3, #0 - muls r0, r6, r0 - lsrs r2, r2, #0x10 - adds r0, r0, r2 - adds r2, r0, r1 - lsrs r0, r2, #0x10 - mov ip, r0 - strh r2, [r5] - strh r4, [r5, #2] - adds r5, #4 - ldr r1, [sp, #0xc] - cmp r7, r1 - blo _0829B0A2 - str r0, [r5] -_0829B0DC: - mov r2, r8 - ldrh r6, [r2, #2] - cmp r6, #0 - beq _0829B124 - ldr r7, [sp, #8] - mov r5, sb - movs r4, #0 - mov ip, r4 - ldr r2, [r5] - ldr r3, _0829B140 -_0829B0F0: - ldm r7!, {r1} - adds r0, r1, #0 - ands r0, r3 - muls r0, r6, r0 - ldrh r4, [r5, #2] - adds r4, r4, r0 - mov r8, r4 - add r4, ip - lsrs r0, r4, #0x10 - mov ip, r0 - strh r4, [r5] - strh r2, [r5, #2] - adds r5, #4 - lsrs r1, r1, #0x10 - muls r1, r6, r1 - ldr r0, [r5] - ands r0, r3 - adds r1, r1, r0 - mov r4, ip - adds r2, r1, r4 - lsrs r0, r2, #0x10 - mov ip, r0 - ldr r1, [sp, #0xc] - cmp r7, r1 - blo _0829B0F0 - str r2, [r5] -_0829B124: - ldr r2, [sp, #0x14] - mov r8, r2 - ldr r4, [sp, #0x1c] - mov sb, r4 - ldr r5, [sp, #0x10] - cmp r8, r5 - blo _0829B084 -_0829B132: - ldr r0, [sp, #0x20] - ldr r1, [sp, #0x18] - adds r5, r0, r1 - ldr r2, [sp, #4] - cmp r2, #0 - ble _0829B156 - b _0829B14E - .align 2, 0 -_0829B140: .4byte 0x0000FFFF -_0829B144: - ldr r4, [sp, #4] - subs r4, #1 - str r4, [sp, #4] - cmp r4, #0 - ble _0829B156 -_0829B14E: - subs r5, #4 - ldr r0, [r5] - cmp r0, #0 - beq _0829B144 -_0829B156: - ldr r5, [sp, #4] - ldr r0, [sp] - str r5, [r0, #0x10] - ldr r0, [sp] - add sp, #0x24 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - thumb_func_end _multiply - - thumb_func_start _pow5mult -_pow5mult: @ 0x0829B16C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r7, r1, #0 - adds r6, r2, #0 - movs r1, #3 - ands r1, r6 - cmp r1, #0 - beq _0829B196 - ldr r0, _0829B1B8 - subs r1, #1 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r2, [r1] - mov r0, r8 - adds r1, r7, #0 - movs r3, #0 - bl _multadd - adds r7, r0, #0 -_0829B196: - asrs r6, r6, #2 - cmp r6, #0 - beq _0829B1FC - mov r0, r8 - ldr r5, [r0, #0x48] - adds r4, r5, #0 - cmp r5, #0 - bne _0829B1D8 - ldr r1, _0829B1BC - bl _i2b - mov r1, r8 - str r0, [r1, #0x48] - adds r5, r0, #0 - str r4, [r5] - b _0829B1D8 - .align 2, 0 -_0829B1B8: .4byte gUnknown_890F228 -_0829B1BC: .4byte 0x00000271 -_0829B1C0: - ldr r0, [r5] - adds r4, r0, #0 - cmp r0, #0 - bne _0829B1D6 - mov r0, r8 - adds r1, r5, #0 - adds r2, r5, #0 - bl _multiply - str r0, [r5] - str r4, [r0] -_0829B1D6: - adds r5, r0, #0 -_0829B1D8: - movs r0, #1 - ands r0, r6 - cmp r0, #0 - beq _0829B1F6 - mov r0, r8 - adds r1, r7, #0 - adds r2, r5, #0 - bl _multiply - adds r4, r0, #0 - mov r0, r8 - adds r1, r7, #0 - bl _Bfree - adds r7, r4, #0 -_0829B1F6: - asrs r6, r6, #1 - cmp r6, #0 - bne _0829B1C0 -_0829B1FC: - adds r0, r7, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - thumb_func_end _pow5mult - - thumb_func_start _lshift -_lshift: @ 0x0829B204 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sl, r0 - mov r8, r1 - adds r5, r2, #0 - asrs r6, r5, #5 - ldr r1, [r1, #4] - mov r2, r8 - ldr r0, [r2, #0x10] - adds r0, r6, r0 - adds r7, r0, #1 - ldr r2, [r2, #8] - cmp r7, r2 - ble _0829B22E -_0829B226: - adds r1, #1 - lsls r2, r2, #1 - cmp r7, r2 - bgt _0829B226 -_0829B22E: - mov r0, sl - bl _Balloc - mov sb, r0 - mov r4, sb - adds r4, #0x14 - mov r0, r8 - adds r0, #0x14 - cmp r6, #0 - ble _0829B24E - movs r1, #0 - adds r2, r6, #0 -_0829B246: - stm r4!, {r1} - subs r2, #1 - cmp r2, #0 - bne _0829B246 -_0829B24E: - adds r3, r0, #0 - mov r1, r8 - ldr r0, [r1, #0x10] - lsls r0, r0, #2 - adds r6, r3, r0 - movs r0, #0x1f - ands r5, r0 - cmp r5, #0 - beq _0829B280 - movs r0, #0x20 - subs r1, r0, r5 - movs r2, #0 -_0829B266: - ldr r0, [r3] - lsls r0, r5 - orrs r0, r2 - stm r4!, {r0} - ldm r3!, {r2} - lsrs r2, r1 - cmp r3, r6 - blo _0829B266 - str r2, [r4] - cmp r2, #0 - beq _0829B288 - adds r7, #1 - b _0829B288 -_0829B280: - ldm r3!, {r0} - stm r4!, {r0} - cmp r3, r6 - blo _0829B280 -_0829B288: - subs r0, r7, #1 - mov r2, sb - str r0, [r2, #0x10] - mov r0, sl - mov r1, r8 - bl _Bfree - mov r0, sb - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - thumb_func_end _lshift - - thumb_func_start __mcmp -__mcmp: @ 0x0829B2A4 - push {r4, r5, lr} - adds r2, r0, #0 - adds r5, r1, #0 - ldr r0, [r2, #0x10] - ldr r1, [r5, #0x10] - subs r0, r0, r1 - cmp r0, #0 - bne _0829B2E0 - adds r4, r2, #0 - adds r4, #0x14 - lsls r1, r1, #2 - adds r3, r4, r1 - adds r0, r5, #0 - adds r0, #0x14 - adds r1, r0, r1 -_0829B2C2: - subs r3, #4 - subs r1, #4 - ldr r0, [r3] - ldr r2, [r1] - cmp r0, r2 - beq _0829B2DA - movs r1, #1 - cmp r0, r2 - bhs _0829B2D6 - subs r1, #2 -_0829B2D6: - adds r0, r1, #0 - b _0829B2E0 -_0829B2DA: - cmp r3, r4 - bhi _0829B2C2 - movs r0, #0 -_0829B2E0: - pop {r4, r5, pc} - .align 2, 0 - thumb_func_end __mcmp - - thumb_func_start __mdiff -__mdiff: @ 0x0829B2E4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - adds r6, r0, #0 - adds r5, r1, #0 - mov r8, r2 - adds r0, r5, #0 - mov r1, r8 - bl __mcmp - adds r4, r0, #0 - cmp r4, #0 - bne _0829B316 - adds r0, r6, #0 - movs r1, #0 - bl _Balloc - adds r7, r0, #0 - movs r0, #1 - str r0, [r7, #0x10] - str r4, [r7, #0x14] - b _0829B3C6 -_0829B316: - cmp r4, #0 - bge _0829B324 - adds r7, r5, #0 - mov r5, r8 - mov r8, r7 - movs r4, #1 - b _0829B326 -_0829B324: - movs r4, #0 -_0829B326: - ldr r1, [r5, #4] - adds r0, r6, #0 - bl _Balloc - adds r7, r0, #0 - str r4, [r7, #0xc] - ldr r0, [r5, #0x10] - mov sb, r0 - adds r6, r5, #0 - adds r6, #0x14 - lsls r0, r0, #2 - adds r0, r0, r6 - mov sl, r0 - mov r1, r8 - ldr r0, [r1, #0x10] - movs r3, #0x14 - add r3, r8 - mov ip, r3 - lsls r0, r0, #2 - add r0, ip - str r0, [sp] - adds r4, r7, #0 - adds r4, #0x14 - movs r5, #0 - ldr r0, _0829B3B0 - mov r8, r0 -_0829B35A: - ldm r6!, {r1} - str r1, [sp, #4] - mov r3, r8 - ands r1, r3 - mov r0, ip - adds r0, #4 - mov ip, r0 - subs r0, #4 - ldm r0!, {r2} - adds r0, r2, #0 - ands r0, r3 - subs r1, r1, r0 - adds r0, r1, r5 - asrs r5, r0, #0x10 - ldr r1, [sp, #4] - lsrs r3, r1, #0x10 - lsrs r2, r2, #0x10 - subs r3, r3, r2 - adds r1, r3, r5 - asrs r5, r1, #0x10 - strh r1, [r4] - strh r0, [r4, #2] - adds r4, #4 - ldr r3, [sp] - cmp ip, r3 - blo _0829B35A - cmp r6, sl - bhs _0829B3BA - ldr r2, _0829B3B0 -_0829B394: - ldm r6!, {r1} - adds r0, r1, #0 - ands r0, r2 - adds r0, r0, r5 - asrs r5, r0, #0x10 - lsrs r1, r1, #0x10 - adds r1, r1, r5 - asrs r5, r1, #0x10 - strh r1, [r4] - strh r0, [r4, #2] - adds r4, #4 - cmp r6, sl - blo _0829B394 - b _0829B3BA - .align 2, 0 -_0829B3B0: .4byte 0x0000FFFF -_0829B3B4: - movs r0, #1 - rsbs r0, r0, #0 - add sb, r0 -_0829B3BA: - subs r4, #4 - ldr r0, [r4] - cmp r0, #0 - beq _0829B3B4 - mov r1, sb - str r1, [r7, #0x10] -_0829B3C6: - adds r0, r7, #0 - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - thumb_func_end __mdiff - - thumb_func_start _ulp -_ulp: @ 0x0829B3D4 - push {r4, lr} - ldr r2, _0829B3E8 - ands r2, r0 - ldr r0, _0829B3EC - adds r2, r2, r0 - cmp r2, #0 - ble _0829B3F0 - adds r3, r2, #0 - movs r4, #0 - b _0829B41A - .align 2, 0 -_0829B3E8: .4byte 0x7FF00000 -_0829B3EC: .4byte 0xFCC00000 -_0829B3F0: - rsbs r0, r2, #0 - asrs r2, r0, #0x14 - cmp r2, #0x13 - bgt _0829B404 - movs r0, #0x80 - lsls r0, r0, #0xc - adds r3, r0, #0 - asrs r3, r2 - movs r4, #0 - b _0829B41A -_0829B404: - movs r3, #0 - subs r2, #0x14 - cmp r2, #0x1e - bgt _0829B416 - movs r0, #0x1f - subs r0, r0, r2 - movs r1, #1 - lsls r1, r0 - b _0829B418 -_0829B416: - movs r1, #1 -_0829B418: - adds r4, r1, #0 -_0829B41A: - adds r1, r4, #0 - adds r0, r3, #0 - pop {r4, pc} - thumb_func_end _ulp - - thumb_func_start _b2d -_b2d: @ 0x0829B420 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r4, r1, #0 - movs r1, #0x14 - adds r1, r1, r0 - mov r8, r1 - ldr r0, [r0, #0x10] - lsls r0, r0, #2 - adds r5, r1, r0 - subs r5, #4 - ldr r2, [r5] - adds r0, r2, #0 - str r2, [sp] - bl _hi0bits - adds r3, r0, #0 - movs r0, #0x20 - subs r0, r0, r3 - str r0, [r4] - ldr r2, [sp] - cmp r3, #0xa - bgt _0829B480 - movs r0, #0xb - subs r0, r0, r3 - adds r1, r2, #0 - lsrs r1, r0 - ldr r0, _0829B468 - adds r6, r1, #0 - orrs r6, r0 - cmp r5, r8 - bls _0829B46C - subs r5, #4 - ldr r1, [r5] - b _0829B46E - .align 2, 0 -_0829B468: .4byte 0x3FF00000 -_0829B46C: - movs r1, #0 -_0829B46E: - adds r0, r3, #0 - adds r0, #0x15 - lsls r2, r0 - movs r0, #0xb - subs r0, r0, r3 - lsrs r1, r0 - adds r7, r2, #0 - orrs r7, r1 - b _0829B4CC -_0829B480: - cmp r5, r8 - bls _0829B48A - subs r5, #4 - ldr r4, [r5] - b _0829B48C -_0829B48A: - movs r4, #0 -_0829B48C: - subs r3, #0xb - cmp r3, #0 - beq _0829B4C4 - lsls r2, r3 - movs r0, #0x20 - subs r0, r0, r3 - adds r1, r4, #0 - lsrs r1, r0 - ldr r0, _0829B4B0 - orrs r1, r0 - adds r6, r2, #0 - orrs r6, r1 - cmp r5, r8 - bls _0829B4B4 - subs r5, #4 - ldr r2, [r5] - b _0829B4B6 - .align 2, 0 -_0829B4B0: .4byte 0x3FF00000 -_0829B4B4: - movs r2, #0 -_0829B4B6: - lsls r4, r3 - movs r0, #0x20 - subs r0, r0, r3 - lsrs r2, r0 - adds r7, r4, #0 - orrs r7, r2 - b _0829B4CC -_0829B4C4: - ldr r0, _0829B4D8 - adds r6, r2, #0 - orrs r6, r0 - adds r7, r4, #0 -_0829B4CC: - adds r1, r7, #0 - adds r0, r6, #0 - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0829B4D8: .4byte 0x3FF00000 - thumb_func_end _b2d - - thumb_func_start _d2b -_d2b: @ 0x0829B4DC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - mov sb, r3 - ldr r3, [sp, #0x28] - mov sl, r3 - adds r5, r2, #0 - adds r4, r1, #0 - movs r1, #1 - bl _Balloc - adds r6, r0, #0 - movs r0, #0x14 - adds r0, r0, r6 - mov r8, r0 - ldr r2, _0829B544 - adds r1, r4, #0 - ands r2, r1 - str r2, [sp, #4] - ldr r0, _0829B548 - ands r4, r0 - lsrs r7, r4, #0x14 - cmp r7, #0 - beq _0829B51A - movs r0, #0x80 - lsls r0, r0, #0xd - orrs r0, r2 - str r0, [sp, #4] -_0829B51A: - str r5, [sp] - cmp r5, #0 - beq _0829B564 - mov r0, sp - bl _lo0bits - adds r2, r0, #0 - cmp r2, #0 - beq _0829B54C - movs r0, #0x20 - subs r0, r0, r2 - ldr r1, [sp, #4] - lsls r1, r0 - ldr r0, [sp] - orrs r0, r1 - str r0, [r6, #0x14] - ldr r0, [sp, #4] - lsrs r0, r2 - str r0, [sp, #4] - b _0829B550 - .align 2, 0 -_0829B544: .4byte 0x000FFFFF -_0829B548: .4byte 0x7FFFFFFF -_0829B54C: - ldr r0, [sp] - str r0, [r6, #0x14] -_0829B550: - ldr r0, [sp, #4] - mov r1, r8 - str r0, [r1, #4] - movs r1, #1 - cmp r0, #0 - beq _0829B55E - movs r1, #2 -_0829B55E: - str r1, [r6, #0x10] - adds r4, r1, #0 - b _0829B578 -_0829B564: - add r0, sp, #4 - bl _lo0bits - adds r2, r0, #0 - ldr r0, [sp, #4] - str r0, [r6, #0x14] - movs r0, #1 - str r0, [r6, #0x10] - movs r4, #1 - adds r2, #0x20 -_0829B578: - cmp r7, #0 - beq _0829B594 - ldr r3, _0829B590 - adds r0, r2, r3 - adds r0, r7, r0 - mov r1, sb - str r0, [r1] - movs r0, #0x35 - subs r0, r0, r2 - mov r3, sl - str r0, [r3] - b _0829B5B0 - .align 2, 0 -_0829B590: .4byte 0xFFFFFBCD -_0829B594: - ldr r1, _0829B5C0 - adds r0, r2, r1 - mov r3, sb - str r0, [r3] - lsls r0, r4, #2 - add r0, r8 - subs r0, #4 - ldr r0, [r0] - bl _hi0bits - lsls r1, r4, #5 - subs r1, r1, r0 - mov r0, sl - str r1, [r0] -_0829B5B0: - adds r0, r6, #0 - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0829B5C0: .4byte 0xFFFFFBCE - thumb_func_end _d2b - - thumb_func_start _ratio -_ratio: @ 0x0829B5C4 - push {r4, r5, r6, r7, lr} - sub sp, #0x10 - adds r4, r0, #0 - adds r5, r1, #0 - mov r1, sp - bl _b2d - str r0, [sp, #8] - str r1, [sp, #0xc] - add r1, sp, #4 - adds r0, r5, #0 - bl _b2d - adds r7, r1, #0 - adds r6, r0, #0 - ldr r2, [sp] - ldr r0, [sp, #4] - subs r2, r2, r0 - ldr r0, [r4, #0x10] - ldr r1, [r5, #0x10] - subs r0, r0, r1 - lsls r0, r0, #5 - adds r0, r2, r0 - cmp r0, #0 - ble _0829B600 - lsls r0, r0, #0x14 - ldr r1, [sp, #8] - adds r0, r1, r0 - str r0, [sp, #8] - b _0829B604 -_0829B600: - lsls r0, r0, #0x14 - subs r6, r6, r0 -_0829B604: - ldr r0, [sp, #8] - ldr r1, [sp, #0xc] - adds r3, r7, #0 - adds r2, r6, #0 - bl __divdf3 - add sp, #0x10 - pop {r4, r5, r6, r7, pc} - thumb_func_end _ratio - - thumb_func_start _mprec_log10 -_mprec_log10: @ 0x0829B614 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0829B630 - ldr r0, _0829B62C - cmp r4, #0x17 - bgt _0829B638 - ldr r0, _0829B634 - lsls r1, r4, #3 - adds r1, r1, r0 - ldr r0, [r1] - ldr r1, [r1, #4] - b _0829B64A - .align 2, 0 -_0829B62C: .4byte 0x3FF00000 -_0829B630: .4byte 0x00000000 -_0829B634: .4byte gUnknown_890F234 -_0829B638: - cmp r4, #0 - ble _0829B64A -_0829B63C: - ldr r3, _0829B650 - ldr r2, _0829B64C - bl __muldf3 - subs r4, #1 - cmp r4, #0 - bgt _0829B63C -_0829B64A: - pop {r4, pc} - .align 2, 0 -_0829B64C: .4byte 0x40240000 -_0829B650: .4byte 0x00000000 - thumb_func_end _mprec_log10 - - thumb_func_start isinf -isinf: @ 0x0829B654 - ldr r3, _0829B670 - ands r3, r0 - rsbs r2, r1, #0 - orrs r2, r1 - lsrs r2, r2, #0x1f - orrs r3, r2 - ldr r0, _0829B674 - subs r3, r0, r3 - rsbs r0, r3, #0 - orrs r3, r0 - lsrs r3, r3, #0x1f - movs r0, #1 - subs r0, r0, r3 - bx lr - .align 2, 0 -_0829B670: .4byte 0x7FFFFFFF -_0829B674: .4byte 0x7FF00000 - thumb_func_end isinf - - thumb_func_start isnan -isnan: @ 0x0829B678 - ldr r3, _0829B690 - ands r3, r0 - rsbs r2, r1, #0 - orrs r2, r1 - lsrs r2, r2, #0x1f - orrs r3, r2 - ldr r0, _0829B694 - subs r3, r0, r3 - lsrs r3, r3, #0x1f - adds r0, r3, #0 - bx lr - .align 2, 0 -_0829B690: .4byte 0x7FFFFFFF -_0829B694: .4byte 0x7FF00000 - thumb_func_end isnan - - thumb_func_start _sbrk_r -_sbrk_r: @ 0x0829B698 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, r1, #0 - ldr r4, _0829B6C0 - movs r1, #0 - str r1, [r4] - bl _sbrk - adds r1, r0, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _0829B6BA - ldr r0, [r4] - cmp r0, #0 - beq _0829B6BA - str r0, [r5] -_0829B6BA: - adds r0, r1, #0 - pop {r4, r5, pc} - .align 2, 0 -_0829B6C0: .4byte gUnknown_300764C - thumb_func_end _sbrk_r - - thumb_func_start __sread -__sread: @ 0x0829B6C4 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r3, r2, #0 - ldr r0, [r5, #0x54] - movs r2, #0xe - ldrsh r1, [r5, r2] - adds r2, r4, #0 - bl _read_r - adds r1, r0, #0 - cmp r1, #0 - blt _0829B6E6 - ldr r0, [r5, #0x50] - adds r0, r0, r1 - str r0, [r5, #0x50] - b _0829B6EE -_0829B6E6: - ldr r0, _0829B6F4 - ldrh r2, [r5, #0xc] - ands r0, r2 - strh r0, [r5, #0xc] -_0829B6EE: - adds r0, r1, #0 - pop {r4, r5, pc} - .align 2, 0 -_0829B6F4: .4byte 0xFFFFEFFF - thumb_func_end __sread - - thumb_func_start __swrite -__swrite: @ 0x0829B6F8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - movs r0, #0x80 - lsls r0, r0, #1 - ldrh r1, [r4, #0xc] - ands r0, r1 - cmp r0, #0 - beq _0829B71A - ldr r0, [r4, #0x54] - movs r2, #0xe - ldrsh r1, [r4, r2] - movs r2, #0 - movs r3, #2 - bl _lseek_r -_0829B71A: - ldr r0, _0829B734 - ldrh r1, [r4, #0xc] - ands r0, r1 - strh r0, [r4, #0xc] - ldr r0, [r4, #0x54] - movs r2, #0xe - ldrsh r1, [r4, r2] - adds r2, r5, #0 - adds r3, r6, #0 - bl _write_r - pop {r4, r5, r6, pc} - .align 2, 0 -_0829B734: .4byte 0xFFFFEFFF - thumb_func_end __swrite - - thumb_func_start __sseek -__sseek: @ 0x0829B738 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r3, r2, #0 - ldr r0, [r5, #0x54] - movs r2, #0xe - ldrsh r1, [r5, r2] - adds r2, r4, #0 - bl _lseek_r - adds r1, r0, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _0829B764 - ldr r0, _0829B760 - ldrh r2, [r5, #0xc] - ands r0, r2 - strh r0, [r5, #0xc] - b _0829B772 - .align 2, 0 -_0829B760: .4byte 0xFFFFEFFF -_0829B764: - movs r2, #0x80 - lsls r2, r2, #5 - adds r0, r2, #0 - ldrh r2, [r5, #0xc] - orrs r0, r2 - strh r0, [r5, #0xc] - str r1, [r5, #0x50] -_0829B772: - adds r0, r1, #0 - pop {r4, r5, pc} - .align 2, 0 - thumb_func_end __sseek - - thumb_func_start __sclose -__sclose: @ 0x0829B778 - push {lr} - ldr r2, [r0, #0x54] - movs r3, #0xe - ldrsh r1, [r0, r3] - adds r0, r2, #0 - bl _close_r - pop {pc} - thumb_func_end __sclose - - thumb_func_start strlen -strlen: @ 0x0829B788 - push {r4, r5, lr} - adds r1, r0, #0 - adds r5, r1, #0 - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _0829B7C0 - adds r2, r1, #0 - ldr r1, [r2] - ldr r4, _0829B7A4 - adds r0, r1, r4 - bics r0, r1 - ldr r3, _0829B7A8 - b _0829B7B4 - .align 2, 0 -_0829B7A4: .4byte 0xFEFEFEFF -_0829B7A8: .4byte 0x80808080 -_0829B7AC: - adds r2, #4 - ldr r1, [r2] - adds r0, r1, r4 - bics r0, r1 -_0829B7B4: - ands r0, r3 - cmp r0, #0 - beq _0829B7AC - adds r1, r2, #0 - b _0829B7C0 -_0829B7BE: - adds r1, #1 -_0829B7C0: - ldrb r0, [r1] - cmp r0, #0 - bne _0829B7BE - subs r0, r1, r5 - pop {r4, r5, pc} - .align 2, 0 - thumb_func_end strlen - - thumb_func_start sub_0829B7CC -sub_0829B7CC: @ 0x0829B7CC - adds r3, r0, #0 - movs r1, #0 - ldr r2, _0829B7D4 - b _0829B7E0 - .align 2, 0 -_0829B7D4: .4byte gUnknown_3001AB0 -_0829B7D8: - adds r2, #8 - adds r1, #1 - cmp r1, #0x13 - bgt _0829B7E6 -_0829B7E0: - ldr r0, [r2] - cmp r0, r3 - bne _0829B7D8 -_0829B7E6: - adds r0, r1, #0 - bx lr - .align 2, 0 - thumb_func_end sub_0829B7CC - - thumb_func_start sub_0829B7EC -sub_0829B7EC: @ 0x0829B7EC - adds r2, r0, #0 - ldr r0, _0829B800 - ldr r1, [r0] - ldr r0, [r1, #4] - movs r3, #0xe - ldrsh r0, [r0, r3] - cmp r2, r0 - bne _0829B808 - ldr r0, _0829B804 - b _0829B82E - .align 2, 0 -_0829B800: .4byte gUnknown_203CF1C -_0829B804: .4byte gUnknown_3001AA4 -_0829B808: - ldr r0, [r1, #8] - movs r3, #0xe - ldrsh r0, [r0, r3] - cmp r2, r0 - bne _0829B81C - ldr r0, _0829B818 - b _0829B82E - .align 2, 0 -_0829B818: .4byte gUnknown_3001AA8 -_0829B81C: - ldr r0, [r1, #0xc] - movs r1, #0xe - ldrsh r0, [r0, r1] - cmp r2, r0 - beq _0829B82C - adds r0, r2, #0 - subs r0, #0x20 - b _0829B830 -_0829B82C: - ldr r0, _0829B834 -_0829B82E: - ldr r0, [r0] -_0829B830: - bx lr - .align 2, 0 -_0829B834: .4byte gUnknown_3001AAC - thumb_func_end sub_0829B7EC - - thumb_func_start initialise_monitor_handles -initialise_monitor_handles: @ 0x0829B838 - push {r4, r5, lr} - sub sp, #0xc - ldr r4, _0829B894 - str r4, [sp] - movs r3, #3 - str r3, [sp, #8] - movs r0, #0 - str r0, [sp, #4] - movs r5, #1 - adds r0, r5, #0 - mov r1, sp - svc #0xab - adds r2, r0, #0 - ldr r5, _0829B898 - str r2, [r5] - str r4, [sp] - str r3, [sp, #8] - movs r0, #4 - str r0, [sp, #4] - ldr r3, _0829B89C - movs r4, #1 - adds r0, r4, #0 - mov r1, sp - svc #0xab - adds r2, r0, #0 - ldr r0, _0829B8A0 - str r2, [r0] - str r2, [r3] - ldr r2, _0829B8A4 - adds r1, r2, #0 - subs r4, #2 - adds r0, r2, #0 - adds r0, #0x98 -_0829B87A: - str r4, [r0] - subs r0, #8 - cmp r0, r1 - bge _0829B87A - movs r0, #0 - ldr r1, [r5] - str r1, [r2] - str r0, [r2, #4] - ldr r1, [r3] - str r1, [r2, #8] - str r0, [r2, #0xc] - add sp, #0xc - pop {r4, r5, pc} - .align 2, 0 -_0829B894: .4byte gUnknown_890F34C -_0829B898: .4byte gUnknown_3001AA4 -_0829B89C: .4byte gUnknown_3001AA8 -_0829B8A0: .4byte gUnknown_3001AAC -_0829B8A4: .4byte gUnknown_3001AB0 - thumb_func_end initialise_monitor_handles - - thumb_func_start sub_0829B8A8 -sub_0829B8A8: @ 0x0829B8A8 - push {r4, lr} - movs r3, #0x13 - movs r4, #0 - adds r0, r3, #0 - adds r1, r4, #0 - svc #0xab - adds r2, r0, #0 - adds r0, r2, #0 - pop {r4, pc} - .align 2, 0 - thumb_func_end sub_0829B8A8 - - thumb_func_start sub_0829B8BC -sub_0829B8BC: @ 0x0829B8BC - push {r4, r5, lr} - adds r5, r0, #0 - bl __errno - adds r4, r0, #0 - bl sub_0829B8A8 - str r0, [r4] - adds r0, r5, #0 - pop {r4, r5, pc} - thumb_func_end sub_0829B8BC - - thumb_func_start sub_0829B8D0 -sub_0829B8D0: @ 0x0829B8D0 - push {lr} - adds r1, r0, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0829B8E0 - adds r0, r1, #0 - b _0829B8E6 -_0829B8E0: - adds r0, r1, #0 - bl sub_0829B8BC -_0829B8E6: - pop {pc} - thumb_func_end sub_0829B8D0 - - thumb_func_start _swiread -_swiread: @ 0x0829B8E8 - push {r4, r5, lr} - sub sp, #0xc - adds r4, r1, #0 - adds r5, r2, #0 - bl sub_0829B7EC - str r0, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r3, #6 - adds r0, r3, #0 - mov r1, sp - svc #0xab - adds r2, r0, #0 - adds r0, r2, #0 - add sp, #0xc - pop {r4, r5, pc} - .align 2, 0 - thumb_func_end _swiread - - thumb_func_start _read -_read: @ 0x0829B90C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r7, r2, #0 - bl sub_0829B7EC - bl sub_0829B7CC - adds r6, r0, #0 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r7, #0 - bl _swiread - cmp r0, #0 - bge _0829B936 - movs r0, #1 - rsbs r0, r0, #0 - bl sub_0829B8BC - b _0829B94C -_0829B936: - subs r2, r7, r0 - cmp r6, #0x14 - beq _0829B94A - ldr r0, _0829B950 - lsls r1, r6, #3 - adds r0, #4 - adds r1, r1, r0 - ldr r0, [r1] - adds r0, r0, r2 - str r0, [r1] -_0829B94A: - adds r0, r2, #0 -_0829B94C: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0829B950: .4byte gUnknown_3001AB0 - thumb_func_end _read - - thumb_func_start _swilseek -_swilseek: @ 0x0829B954 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - mov r8, r0 - adds r5, r1, #0 - adds r4, r2, #0 - bl sub_0829B7EC - adds r7, r0, #0 - bl sub_0829B7CC - adds r6, r0, #0 - cmp r4, #1 - bne _0829B98A - cmp r6, #0x14 - bne _0829B97C - movs r0, #1 - rsbs r0, r0, #0 - b _0829B9CC -_0829B97C: - ldr r0, _0829B9D4 - lsls r1, r6, #3 - adds r0, #4 - adds r1, r1, r0 - ldr r0, [r1] - adds r5, r5, r0 - movs r4, #0 -_0829B98A: - cmp r4, #2 - bne _0829B99C - str r7, [sp] - movs r3, #0xc - adds r0, r3, #0 - mov r1, sp - svc #0xab - adds r2, r0, #0 - adds r5, r5, r2 -_0829B99C: - mov r0, r8 - bl sub_0829B7EC - str r0, [sp] - str r5, [sp, #4] - movs r3, #0xa - adds r0, r3, #0 - mov r1, sp - svc #0xab - adds r2, r0, #0 - cmp r6, #0x14 - beq _0829B9C2 - cmp r2, #0 - bne _0829B9C2 - ldr r0, _0829B9D4 - lsls r1, r6, #3 - adds r0, #4 - adds r1, r1, r0 - str r5, [r1] -_0829B9C2: - movs r0, #1 - rsbs r0, r0, #0 - cmp r2, #0 - bne _0829B9CC - adds r0, r5, #0 -_0829B9CC: - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0829B9D4: .4byte gUnknown_3001AB0 - thumb_func_end _swilseek - - thumb_func_start _lseek -_lseek: @ 0x0829B9D8 - push {lr} - bl _swilseek - bl sub_0829B8D0 - pop {pc} - thumb_func_end _lseek - - thumb_func_start _swiwrite -_swiwrite: @ 0x0829B9E4 - push {r4, r5, lr} - sub sp, #0xc - adds r4, r1, #0 - adds r5, r2, #0 - bl sub_0829B7EC - str r0, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r3, #5 - adds r0, r3, #0 - mov r1, sp - svc #0xab - adds r2, r0, #0 - adds r0, r2, #0 - add sp, #0xc - pop {r4, r5, pc} - .align 2, 0 - thumb_func_end _swiwrite - - thumb_func_start _write -_write: @ 0x0829BA08 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - bl sub_0829B7EC - bl sub_0829B7CC - adds r7, r0, #0 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl _swiwrite - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _0829BA30 - cmp r0, r6 - bne _0829BA38 -_0829BA30: - adds r0, r1, #0 - bl sub_0829B8BC - b _0829BA4E -_0829BA38: - subs r2, r6, r0 - cmp r7, #0x14 - beq _0829BA4C - ldr r0, _0829BA50 - lsls r1, r7, #3 - adds r0, #4 - adds r1, r1, r0 - ldr r0, [r1] - adds r0, r0, r2 - str r0, [r1] -_0829BA4C: - adds r0, r2, #0 -_0829BA4E: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0829BA50: .4byte gUnknown_3001AB0 - thumb_func_end _write - - thumb_func_start _swiopen -_swiopen: @ 0x0829BA54 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - adds r7, r0, #0 - adds r4, r1, #0 - movs r5, #0 - movs r6, #1 - rsbs r6, r6, #0 - adds r0, r6, #0 - bl sub_0829B7CC - mov r8, r0 - cmp r0, #0x14 - bne _0829BA76 - adds r0, r6, #0 - b _0829BAEA -_0829BA76: - movs r0, #2 - ands r0, r4 - cmp r0, #0 - beq _0829BA80 - movs r5, #2 -_0829BA80: - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r4 - cmp r0, #0 - beq _0829BA8E - movs r0, #4 - orrs r5, r0 -_0829BA8E: - movs r0, #0x80 - lsls r0, r0, #3 - ands r0, r4 - cmp r0, #0 - beq _0829BA9C - movs r0, #4 - orrs r5, r0 -_0829BA9C: - movs r1, #8 - ands r4, r1 - cmp r4, #0 - beq _0829BAAC - movs r0, #5 - rsbs r0, r0, #0 - ands r5, r0 - orrs r5, r1 -_0829BAAC: - str r7, [sp] - adds r0, r7, #0 - bl strlen - str r0, [sp, #8] - str r5, [sp, #4] - movs r2, #1 - adds r0, r2, #0 - mov r1, sp - svc #0xab - adds r3, r0, #0 - cmp r3, #0 - blt _0829BAE4 - ldr r0, _0829BAE0 - mov r1, r8 - lsls r2, r1, #3 - adds r1, r2, r0 - str r3, [r1] - adds r0, #4 - adds r2, r2, r0 - movs r0, #0 - str r0, [r2] - adds r0, r3, #0 - adds r0, #0x20 - b _0829BAEA - .align 2, 0 -_0829BAE0: .4byte gUnknown_3001AB0 -_0829BAE4: - adds r0, r3, #0 - bl sub_0829B8BC -_0829BAEA: - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - thumb_func_end _swiopen - - thumb_func_start _open -_open: @ 0x0829BAF4 - push {r1, r2, r3} - push {lr} - ldr r1, [sp, #4] - bl _swiopen - bl sub_0829B8D0 - pop {r3} - add sp, #0xc - bx r3 - thumb_func_end _open - - thumb_func_start _swiclose -_swiclose: @ 0x0829BB08 - push {lr} - sub sp, #4 - bl sub_0829B7EC - str r0, [sp] - bl sub_0829B7CC - adds r1, r0, #0 - cmp r1, #0x14 - beq _0829BB28 - ldr r0, _0829BB38 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #1 - rsbs r0, r0, #0 - str r0, [r1] -_0829BB28: - movs r3, #2 - adds r0, r3, #0 - mov r1, sp - svc #0xab - adds r2, r0, #0 - adds r0, r2, #0 - add sp, #4 - pop {pc} - .align 2, 0 -_0829BB38: .4byte gUnknown_3001AB0 - thumb_func_end _swiclose - - thumb_func_start _close -_close: @ 0x0829BB3C - push {lr} - bl _swiclose - bl sub_0829B8D0 - pop {pc} - thumb_func_end _close - - thumb_func_start _exit -_exit: @ 0x0829BB48 - mov ip, r3 - mov r3, r8 - push {r3} - mov r3, ip - movs r2, #0x18 - ldr r3, _0829BB64 - adds r0, r2, #0 - adds r1, r3, #0 - svc #0xab - mov r8, r0 - pop {r3} - mov r8, r3 - bx lr - .align 2, 0 -_0829BB64: .4byte 0x00020026 - thumb_func_end _exit - - thumb_func_start _kill -_kill: @ 0x0829BB68 - mov ip, r3 - mov r3, r8 - push {r3} - mov r3, ip - movs r2, #0x18 - ldr r3, _0829BB84 - adds r0, r2, #0 - adds r1, r3, #0 - svc #0xab - mov r8, r0 - pop {r3} - mov r8, r3 - bx lr - .align 2, 0 -_0829BB84: .4byte 0x00020026 - thumb_func_end _kill - - thumb_func_start _getpid -_getpid: @ 0x0829BB88 - movs r0, #1 - bx lr - thumb_func_end _getpid - - thumb_func_start _sbrk -_sbrk: @ 0x0829BB8C - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r4, _0829BBBC - ldr r0, [r4] - cmp r0, #0 - bne _0829BB9C - ldr r0, _0829BBC0 - str r0, [r4] -_0829BB9C: - ldr r5, [r4] - adds r0, r5, r6 - cmp r0, sp - bls _0829BBB2 - ldr r1, _0829BBC4 - movs r0, #1 - movs r2, #0x20 - bl _write - bl abort -_0829BBB2: - ldr r0, [r4] - adds r0, r0, r6 - str r0, [r4] - adds r0, r5, #0 - pop {r4, r5, r6, pc} - .align 2, 0 -_0829BBBC: .4byte gUnknown_3001AA0 -_0829BBC0: .4byte gUnknown_88BA568 -_0829BBC4: .4byte gUnknown_890F350 - thumb_func_end _sbrk - - thumb_func_start _fstat -_fstat: @ 0x0829BBC8 - movs r0, #0x80 - lsls r0, r0, #6 - str r0, [r1, #4] - movs r0, #0 - bx lr - .align 2, 0 - thumb_func_end _fstat - - thumb_func_start _unlink -_unlink: @ 0x0829BBD4 - movs r0, #1 - rsbs r0, r0, #0 - bx lr - .align 2, 0 - thumb_func_end _unlink - - thumb_func_start _raise -_raise: @ 0x0829BBDC - bx lr - .align 2, 0 - thumb_func_end _raise - - thumb_func_start _gettimeofday -_gettimeofday: @ 0x0829BBE0 - push {r4, r5, lr} - adds r2, r0, #0 - adds r3, r1, #0 - cmp r2, #0 - beq _0829BBFE - movs r4, #0x11 - movs r5, #0 - adds r0, r4, #0 - adds r1, r5, #0 - svc #0xab - adds r5, r0, #0 - adds r4, r5, #0 - str r4, [r2] - movs r0, #0 - str r0, [r2, #4] -_0829BBFE: - cmp r3, #0 - beq _0829BC08 - movs r0, #0 - str r0, [r3] - str r0, [r3, #4] -_0829BC08: - movs r0, #0 - pop {r4, r5, pc} - thumb_func_end _gettimeofday - - thumb_func_start _times -_times: @ 0x0829BC0C - push {r4, r5, lr} - adds r2, r0, #0 - movs r4, #0x10 - movs r5, #0 - adds r0, r4, #0 - adds r1, r5, #0 - svc #0xab - adds r3, r0, #0 - cmp r2, #0 - beq _0829BC2A - str r3, [r2] - movs r0, #0 - str r0, [r2, #4] - str r0, [r2, #8] - str r0, [r2, #0xc] -_0829BC2A: - adds r0, r3, #0 - pop {r4, r5, pc} - .align 2, 0 - thumb_func_end _times - - thumb_func_start _write_r -_write_r: @ 0x0829BC30 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, r1, #0 - adds r1, r2, #0 - adds r2, r3, #0 - ldr r4, _0829BC5C - movs r3, #0 - str r3, [r4] - bl _write - adds r1, r0, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _0829BC56 - ldr r0, [r4] - cmp r0, #0 - beq _0829BC56 - str r0, [r5] -_0829BC56: - adds r0, r1, #0 - pop {r4, r5, pc} - .align 2, 0 -_0829BC5C: .4byte gUnknown_300764C - thumb_func_end _write_r - - thumb_func_start _calloc_r -_calloc_r: @ 0x0829BC60 - push {r4, lr} - muls r1, r2, r1 - bl _malloc_r - adds r4, r0, #0 - cmp r4, #0 - bne _0829BC72 - movs r0, #0 - b _0829BCB6 -_0829BC72: - adds r0, r4, #0 - subs r0, #8 - ldr r0, [r0, #4] - movs r1, #4 - rsbs r1, r1, #0 - ands r0, r1 - subs r2, r0, #4 - cmp r2, #0x24 - bhi _0829BCAC - adds r1, r4, #0 - cmp r2, #0x13 - bls _0829BCA2 - movs r0, #0 - stm r1!, {r0} - str r0, [r4, #4] - adds r1, #4 - cmp r2, #0x1b - bls _0829BCA2 - stm r1!, {r0} - stm r1!, {r0} - cmp r2, #0x23 - bls _0829BCA2 - stm r1!, {r0} - stm r1!, {r0} -_0829BCA2: - movs r0, #0 - stm r1!, {r0} - stm r1!, {r0} - str r0, [r1] - b _0829BCB4 -_0829BCAC: - adds r0, r4, #0 - movs r1, #0 - bl memset -_0829BCB4: - adds r0, r4, #0 -_0829BCB6: - pop {r4, pc} - thumb_func_end _calloc_r - - thumb_func_start _close_r -_close_r: @ 0x0829BCB8 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, r1, #0 - ldr r4, _0829BCE0 - movs r1, #0 - str r1, [r4] - bl _close - adds r1, r0, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _0829BCDA - ldr r0, [r4] - cmp r0, #0 - beq _0829BCDA - str r0, [r5] -_0829BCDA: - adds r0, r1, #0 - pop {r4, r5, pc} - .align 2, 0 -_0829BCE0: .4byte gUnknown_300764C - thumb_func_end _close_r - - thumb_func_start __errno -__errno: @ 0x0829BCE4 - ldr r0, _0829BCEC - ldr r0, [r0] - bx lr - .align 2, 0 -_0829BCEC: .4byte gUnknown_203CF1C - thumb_func_end __errno - - thumb_func_start _fstat_r -_fstat_r: @ 0x0829BCF0 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, r1, #0 - adds r1, r2, #0 - ldr r4, _0829BD18 - movs r2, #0 - str r2, [r4] - bl _fstat - adds r1, r0, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _0829BD14 - ldr r0, [r4] - cmp r0, #0 - beq _0829BD14 - str r0, [r5] -_0829BD14: - adds r0, r1, #0 - pop {r4, r5, pc} - .align 2, 0 -_0829BD18: .4byte gUnknown_300764C - thumb_func_end _fstat_r - - thumb_func_start abort -abort: @ 0x0829BD1C - mov ip, r3 - mov r3, r8 - push {r3} - mov r3, ip - movs r2, #0x18 - ldr r3, _0829BD38 - adds r0, r2, #0 - adds r1, r3, #0 - svc #0xab - mov r8, r0 - pop {r3} - mov r8, r3 - bx lr - .align 2, 0 -_0829BD38: .4byte 0x00020022 - thumb_func_end abort - - thumb_func_start isatty -isatty: @ 0x0829BD3C - movs r0, #1 - bx lr - thumb_func_end isatty - - thumb_func_start alarm -alarm: @ 0x0829BD40 - bx lr - .align 2, 0 - thumb_func_end alarm - - thumb_func_start _lseek_r -_lseek_r: @ 0x0829BD44 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, r1, #0 - adds r1, r2, #0 - adds r2, r3, #0 - ldr r4, _0829BD70 - movs r3, #0 - str r3, [r4] - bl _lseek - adds r1, r0, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _0829BD6A - ldr r0, [r4] - cmp r0, #0 - beq _0829BD6A - str r0, [r5] -_0829BD6A: - adds r0, r1, #0 - pop {r4, r5, pc} - .align 2, 0 -_0829BD70: .4byte gUnknown_300764C - thumb_func_end _lseek_r - - thumb_func_start _read_r -_read_r: @ 0x0829BD74 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, r1, #0 - adds r1, r2, #0 - adds r2, r3, #0 - ldr r4, _0829BDA0 - movs r3, #0 - str r3, [r4] - bl _read - adds r1, r0, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _0829BD9A - ldr r0, [r4] - cmp r0, #0 - beq _0829BD9A - str r0, [r5] -_0829BD9A: - adds r0, r1, #0 - pop {r4, r5, pc} - .align 2, 0 -_0829BDA0: .4byte gUnknown_300764C diff --git a/asm/lilycove_lady.s b/asm/lilycove_lady.s new file mode 100644 index 0000000..2b0a228 --- /dev/null +++ b/asm/lilycove_lady.s @@ -0,0 +1,2081 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start GetLilycoveLadyId +GetLilycoveLadyId: @ 0x0818D6D8 + ldr r0, _0818D6E4 + ldr r0, [r0] + ldr r1, _0818D6E8 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0818D6E4: .4byte 0x03005AEC +_0818D6E8: .4byte 0x00003B58 + thumb_func_end GetLilycoveLadyId + + thumb_func_start sub_0818D6EC +sub_0818D6EC: @ 0x0818D6EC + push {r4, r5, lr} + ldr r5, _0818D730 + ldr r4, _0818D734 + bl GetLilycoveLadyId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r4 + ldrh r1, [r0] + adds r0, r5, #0 + bl VarSet + bl GetLilycoveLadyId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _0818D74C + ldr r0, _0818D738 + ldr r1, [r0] + ldr r0, _0818D73C + adds r1, r1, r0 + ldr r0, _0818D740 + ldr r2, _0818D744 + ldrb r1, [r1, #0xd] + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r1, [r1] + bl VarSet + ldr r1, _0818D748 + movs r0, #1 + b _0818D750 + .align 2, 0 +_0818D730: .4byte 0x00004010 +_0818D734: .4byte 0x085D3ADE +_0818D738: .4byte 0x03005AEC +_0818D73C: .4byte 0x00003B58 +_0818D740: .4byte 0x00004011 +_0818D744: .4byte 0x085D3AD4 +_0818D748: .4byte 0x02037290 +_0818D74C: + ldr r1, _0818D758 + movs r0, #0 +_0818D750: + strh r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0818D758: .4byte 0x02037290 + thumb_func_end sub_0818D6EC + + thumb_func_start SetLilycoveLady +SetLilycoveLady: @ 0x0818D75C + push {lr} + ldr r0, _0818D784 + ldr r0, [r0] + ldrb r1, [r0, #0xb] + lsls r1, r1, #8 + ldrb r0, [r0, #0xa] + orrs r0, r1 + movs r1, #6 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x11 + adds r1, r0, #0 + cmp r0, #1 + beq _0818D794 + cmp r0, #1 + bgt _0818D788 + cmp r0, #0 + beq _0818D78E + b _0818D79E + .align 2, 0 +_0818D784: .4byte 0x03005AF0 +_0818D788: + cmp r1, #2 + beq _0818D79A + b _0818D79E +_0818D78E: + bl SetLilycoveQuizLady + b _0818D79E +_0818D794: + bl SetLilycoveFavourLady + b _0818D79E +_0818D79A: + bl SetLilycoveContestLady +_0818D79E: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetLilycoveLady + + thumb_func_start sub_0818D7A4 +sub_0818D7A4: @ 0x0818D7A4 + push {lr} + bl GetLilycoveLadyId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0818D7C8 + cmp r0, #1 + bgt _0818D7BC + cmp r0, #0 + beq _0818D7C2 + b _0818D7D2 +_0818D7BC: + cmp r0, #2 + beq _0818D7CE + b _0818D7D2 +_0818D7C2: + bl sub_0818DD10 + b _0818D7D2 +_0818D7C8: + bl sub_0818D8F0 + b _0818D7D2 +_0818D7CE: + bl sub_0818E2D0 +_0818D7D2: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0818D7A4 + + thumb_func_start SetLilycoveLadyRandomly +SetLilycoveLadyRandomly: @ 0x0818D7D8 + push {lr} + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + cmp r0, #1 + beq _0818D808 + cmp r0, #1 + bgt _0818D7FC + cmp r0, #0 + beq _0818D802 + b _0818D812 +_0818D7FC: + cmp r1, #2 + beq _0818D80E + b _0818D812 +_0818D802: + bl SetLilycoveQuizLady + b _0818D812 +_0818D808: + bl SetLilycoveFavourLady + b _0818D812 +_0818D80E: + bl SetLilycoveContestLady +_0818D812: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetLilycoveLadyRandomly + + thumb_func_start sub_0818D818 +sub_0818D818: @ 0x0818D818 + push {r4, lr} + ldr r4, _0818D82C + bl GetLilycoveLadyId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0818D82C: .4byte 0x02037290 + thumb_func_end sub_0818D818 + + thumb_func_start sub_0818D830 +sub_0818D830: @ 0x0818D830 + push {lr} + adds r1, r0, #0 + movs r2, #0 + b _0818D840 +_0818D838: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r1, #2 +_0818D840: + ldrh r0, [r1] + cmp r0, #0 + bne _0818D838 + adds r0, r2, #0 + pop {r1} + bx r1 + thumb_func_end sub_0818D830 + + thumb_func_start sub_0818D84C +sub_0818D84C: @ 0x0818D84C + push {r4, r5, r6, lr} + bl Random + ldr r5, _0818D8A0 + ldr r4, [r5] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #6 + bl __umodsi3 + strb r0, [r4, #0xc] + ldr r6, _0818D8A4 + ldr r0, [r5] + ldrb r0, [r0, #0xc] + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r0, [r0] + bl sub_0818D830 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r4, #0 + bl __modsi3 + lsls r0, r0, #0x18 + ldr r2, [r5] + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r6 + ldr r1, [r1] + lsrs r0, r0, #0x17 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2, #0x10] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0818D8A0: .4byte 0x0203CA30 +_0818D8A4: .4byte 0x085D3D6C + thumb_func_end sub_0818D84C + + thumb_func_start SetLilycoveFavourLady +SetLilycoveFavourLady: @ 0x0818D8A8 + push {lr} + ldr r2, _0818D8E0 + ldr r0, _0818D8E4 + ldr r0, [r0] + ldr r1, _0818D8E8 + adds r0, r0, r1 + str r0, [r2] + movs r3, #0 + movs r1, #1 + strb r1, [r0] + ldr r0, [r2] + strb r3, [r0, #1] + ldr r1, [r2] + movs r0, #0xff + strb r0, [r1, #4] + ldr r0, [r2] + strb r3, [r0, #2] + ldr r0, [r2] + strb r3, [r0, #3] + ldr r1, [r2] + strh r3, [r1, #0xe] + ldr r0, _0818D8EC + ldrb r0, [r0] + strb r0, [r1, #0x12] + bl sub_0818D84C + pop {r0} + bx r0 + .align 2, 0 +_0818D8E0: .4byte 0x0203CA30 +_0818D8E4: .4byte 0x03005AEC +_0818D8E8: .4byte 0x00003B58 +_0818D8EC: .4byte 0x0829BDA5 + thumb_func_end SetLilycoveFavourLady + + thumb_func_start sub_0818D8F0 +sub_0818D8F0: @ 0x0818D8F0 + ldr r3, _0818D908 + ldr r0, _0818D90C + ldr r0, [r0] + ldr r1, _0818D910 + adds r0, r0, r1 + str r0, [r3] + movs r2, #0 + movs r1, #1 + strb r1, [r0] + ldr r0, [r3] + strb r2, [r0, #1] + bx lr + .align 2, 0 +_0818D908: .4byte 0x0203CA30 +_0818D90C: .4byte 0x03005AEC +_0818D910: .4byte 0x00003B58 + thumb_func_end sub_0818D8F0 + + thumb_func_start sub_0818D914 +sub_0818D914: @ 0x0818D914 + push {lr} + ldr r1, _0818D92C + ldr r0, _0818D930 + ldr r0, [r0] + ldr r2, _0818D934 + adds r0, r0, r2 + str r0, [r1] + ldrb r0, [r0, #1] + cmp r0, #2 + bne _0818D938 + movs r0, #2 + b _0818D942 + .align 2, 0 +_0818D92C: .4byte 0x0203CA30 +_0818D930: .4byte 0x03005AEC +_0818D934: .4byte 0x00003B58 +_0818D938: + cmp r0, #1 + beq _0818D940 + movs r0, #0 + b _0818D942 +_0818D940: + movs r0, #1 +_0818D942: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0818D914 + + thumb_func_start sub_0818D948 +sub_0818D948: @ 0x0818D948 + lsls r0, r0, #0x18 + ldr r1, _0818D954 + lsrs r0, r0, #0x16 + adds r0, r0, r1 + ldr r0, [r0] + bx lr + .align 2, 0 +_0818D954: .4byte 0x085D3CA4 + thumb_func_end sub_0818D948 + + thumb_func_start sub_0818D958 +sub_0818D958: @ 0x0818D958 + push {r4, lr} + ldr r1, _0818D97C + ldr r0, _0818D980 + ldr r0, [r0] + ldr r2, _0818D984 + adds r0, r0, r2 + str r0, [r1] + ldr r4, _0818D988 + ldrb r0, [r0, #0xc] + bl sub_0818D948 + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCopy + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0818D97C: .4byte 0x0203CA30 +_0818D980: .4byte 0x03005AEC +_0818D984: .4byte 0x00003B58 +_0818D988: .4byte 0x02021C40 + thumb_func_end sub_0818D958 + + thumb_func_start sub_0818D98C +sub_0818D98C: @ 0x0818D98C + push {lr} + ldr r1, _0818D9A4 + ldr r0, _0818D9A8 + ldr r2, [r0] + ldr r3, _0818D9AC + adds r0, r2, r3 + str r0, [r1] + ldrb r0, [r0, #4] + cmp r0, #0xff + bne _0818D9B0 + movs r0, #0 + b _0818D9BC + .align 2, 0 +_0818D9A4: .4byte 0x0203CA30 +_0818D9A8: .4byte 0x03005AEC +_0818D9AC: .4byte 0x00003B58 +_0818D9B0: + ldr r0, _0818D9C0 + ldr r3, _0818D9C4 + adds r1, r2, r3 + bl StringCopy7 + movs r0, #1 +_0818D9BC: + pop {r1} + bx r1 + .align 2, 0 +_0818D9C0: .4byte 0x02021C68 +_0818D9C4: .4byte 0x00003B5C + thumb_func_end sub_0818D98C + + thumb_func_start sub_0818D9C8 +sub_0818D9C8: @ 0x0818D9C8 + push {r4, lr} + adds r4, r0, #0 + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + bl ItemId_GetName + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCopy + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0818D9C8 + + thumb_func_start sub_0818D9E4 +sub_0818D9E4: @ 0x0818D9E4 + push {lr} + ldr r2, _0818DA00 + ldr r0, _0818DA04 + ldr r1, [r0] + ldr r0, _0818DA08 + adds r1, r1, r0 + str r1, [r2] + ldr r0, _0818DA0C + ldrh r1, [r1, #0xe] + bl sub_0818D9C8 + pop {r0} + bx r0 + .align 2, 0 +_0818DA00: .4byte 0x0203CA30 +_0818DA04: .4byte 0x03005AEC +_0818DA08: .4byte 0x00003B58 +_0818DA0C: .4byte 0x02021C54 + thumb_func_end sub_0818D9E4 + + thumb_func_start sub_0818DA10 +sub_0818DA10: @ 0x0818DA10 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r0, r4, #0 + movs r1, #0xff + movs r2, #8 + bl memset + adds r0, r4, #0 + adds r1, r5, #0 + bl StringCopy7 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0818DA10 + + thumb_func_start sub_0818DA30 +sub_0818DA30: @ 0x0818DA30 + push {lr} + ldr r2, _0818DA4C + ldr r0, _0818DA50 + ldr r0, [r0] + ldr r3, _0818DA54 + adds r1, r0, r3 + str r1, [r2] + ldr r1, _0818DA58 + adds r0, r0, r1 + ldr r1, _0818DA5C + bl sub_0818DA10 + pop {r0} + bx r0 + .align 2, 0 +_0818DA4C: .4byte 0x0203CA30 +_0818DA50: .4byte 0x03005AEC +_0818DA54: .4byte 0x00003B58 +_0818DA58: .4byte 0x00003B5C +_0818DA5C: .4byte 0x02021C68 + thumb_func_end sub_0818DA30 + + thumb_func_start sub_0818DA60 +sub_0818DA60: @ 0x0818DA60 + ldr r1, _0818DA78 + ldr r0, _0818DA7C + ldr r0, [r0] + ldr r2, _0818DA80 + adds r0, r0, r2 + str r0, [r1] + ldrb r1, [r0, #2] + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + bx lr + .align 2, 0 +_0818DA78: .4byte 0x0203CA30 +_0818DA7C: .4byte 0x03005AEC +_0818DA80: .4byte 0x00003B58 + thumb_func_end sub_0818DA60 + + thumb_func_start sub_0818DA84 +sub_0818DA84: @ 0x0818DA84 + push {lr} + bl sub_081AA9C8 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0818DA84 + + thumb_func_start sub_0818DA90 +sub_0818DA90: @ 0x0818DA90 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r4, _0818DB18 + ldr r0, _0818DB1C + ldr r0, [r0] + ldr r1, _0818DB20 + adds r0, r0, r1 + str r0, [r4] + ldr r1, _0818DB24 + mov r8, r1 + ldrb r0, [r0, #0xc] + lsls r0, r0, #2 + add r0, r8 + ldr r0, [r0] + bl sub_0818D830 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, [r4] + movs r0, #1 + strb r0, [r1, #1] + ldr r0, _0818DB28 + adds r1, r5, #0 + bl sub_0818D9C8 + ldr r1, [r4] + strh r5, [r1, #0xe] + ldr r0, _0818DB2C + ldr r0, [r0] + adds r1, #4 + bl sub_0818DA10 + ldr r1, [r4] + ldr r0, _0818DB30 + ldrb r0, [r0] + strb r0, [r1, #0x12] + movs r7, #0 + movs r3, #0 + cmp r7, r6 + bhs _0818DB42 + mov ip, r8 +_0818DAE8: + ldr r2, [r4] + ldrb r0, [r2, #0xc] + lsls r0, r0, #2 + add r0, ip + ldr r1, [r0] + lsls r0, r3, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, r5 + bne _0818DB34 + movs r7, #1 + ldrb r0, [r2, #3] + adds r0, #1 + strb r0, [r2, #3] + ldr r0, [r4] + strb r7, [r0, #2] + ldr r1, [r4] + ldrh r0, [r1, #0x10] + cmp r0, r5 + bne _0818DB42 + movs r0, #5 + strb r0, [r1, #3] + b _0818DB42 + .align 2, 0 +_0818DB18: .4byte 0x0203CA30 +_0818DB1C: .4byte 0x03005AEC +_0818DB20: .4byte 0x00003B58 +_0818DB24: .4byte 0x085D3D6C +_0818DB28: .4byte 0x02021C54 +_0818DB2C: .4byte 0x03005AF0 +_0818DB30: .4byte 0x0829BDA5 +_0818DB34: + movs r0, #0 + strb r0, [r2, #2] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, r6 + blo _0818DAE8 +_0818DB42: + adds r0, r7, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0818DA90 + + thumb_func_start sub_0818DB50 +sub_0818DB50: @ 0x0818DB50 + push {lr} + ldr r0, _0818DB64 + ldrh r0, [r0] + bl sub_0818DA90 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0818DB64: .4byte 0x0203CB48 + thumb_func_end sub_0818DB50 + + thumb_func_start sub_0818DB68 +sub_0818DB68: @ 0x0818DB68 + push {lr} + ldr r1, _0818DB88 + ldr r0, _0818DB8C + ldr r0, [r0] + ldr r2, _0818DB90 + adds r0, r0, r2 + str r0, [r1] + ldrb r0, [r0, #3] + movs r1, #0 + cmp r0, #4 + bls _0818DB80 + movs r1, #1 +_0818DB80: + adds r0, r1, #0 + pop {r1} + bx r1 + .align 2, 0 +_0818DB88: .4byte 0x0203CA30 +_0818DB8C: .4byte 0x03005AEC +_0818DB90: .4byte 0x00003B58 + thumb_func_end sub_0818DB68 + + thumb_func_start sub_0818DB94 +sub_0818DB94: @ 0x0818DB94 + push {lr} + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, _0818DBA8 + bl sub_0818D9C8 + pop {r0} + bx r0 + .align 2, 0 +_0818DBA8: .4byte 0x02021C54 + thumb_func_end sub_0818DB94 + + thumb_func_start sub_0818DBAC +sub_0818DBAC: @ 0x0818DBAC + push {r4, r5, lr} + ldr r5, _0818DBD8 + ldr r0, _0818DBDC + ldr r0, [r0] + ldr r1, _0818DBE0 + adds r0, r0, r1 + str r0, [r5] + ldr r1, _0818DBE4 + ldrb r0, [r0, #0xc] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r4, [r0] + adds r0, r4, #0 + bl sub_0818DB94 + ldr r1, [r5] + movs r0, #2 + strb r0, [r1, #1] + adds r0, r4, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0818DBD8: .4byte 0x0203CA30 +_0818DBDC: .4byte 0x03005AEC +_0818DBE0: .4byte 0x00003B58 +_0818DBE4: .4byte 0x085D3D84 + thumb_func_end sub_0818DBAC + + thumb_func_start sub_0818DBE8 +sub_0818DBE8: @ 0x0818DBE8 + push {lr} + bl SetLilycoveFavourLady + ldr r0, _0818DBFC + ldr r1, [r0] + movs r0, #1 + strb r0, [r1, #1] + pop {r0} + bx r0 + .align 2, 0 +_0818DBFC: .4byte 0x0203CA30 + thumb_func_end sub_0818DBE8 + + thumb_func_start sub_0818DC00 +sub_0818DC00: @ 0x0818DC00 + push {lr} + bl EnableBothScriptContexts + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0818DC00 + + thumb_func_start sub_0818DC0C +sub_0818DC0C: @ 0x0818DC0C + push {r4, r5, r6, r7, lr} + bl Random + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r0, #0xf + ands r4, r0 + movs r3, #0 + ldr r5, _0818DC64 + ldr r1, _0818DC68 + lsls r0, r4, #2 + adds r6, r0, r1 + adds r7, r5, #0 +_0818DC26: + ldr r2, [r5] + lsls r1, r3, #1 + adds r2, #2 + adds r2, r2, r1 + ldr r0, [r6] + adds r1, r1, r0 + ldrh r0, [r1] + strh r0, [r2] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #8 + bls _0818DC26 + ldr r2, [r7] + ldr r0, _0818DC6C + lsls r1, r4, #1 + adds r0, r1, r0 + ldrh r0, [r0] + strh r0, [r2, #0x14] + ldr r0, _0818DC70 + adds r1, r1, r0 + ldrh r0, [r1] + strh r0, [r2, #0x28] + adds r2, #0x2b + strb r4, [r2] + ldr r1, [r7] + movs r0, #0xff + strb r0, [r1, #0x18] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0818DC64: .4byte 0x0203CA34 +_0818DC68: .4byte 0x085D3C04 +_0818DC6C: .4byte 0x085D3C44 +_0818DC70: .4byte 0x085D3C64 + thumb_func_end sub_0818DC0C + + thumb_func_start SetLilycoveQuizLady +SetLilycoveQuizLady: @ 0x0818DC74 + push {r4, r5, r6, lr} + ldr r2, _0818DCFC + ldr r0, _0818DD00 + ldr r0, [r0] + ldr r1, _0818DD04 + adds r0, r0, r1 + str r0, [r2] + movs r1, #0 + strb r1, [r0] + ldr r0, [r2] + strb r1, [r0, #1] + movs r3, #0 + adds r4, r2, #0 + ldr r6, _0818DD08 + adds r5, r4, #0 + ldr r0, _0818DD0C + adds r2, r0, #0 +_0818DC96: + ldr r1, [r5] + lsls r0, r3, #1 + adds r1, #2 + adds r1, r1, r0 + ldrh r0, [r1] + orrs r0, r2 + strh r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #8 + bls _0818DC96 + ldr r0, [r4] + ldr r1, _0818DD0C + strh r1, [r0, #0x14] + movs r1, #1 + rsbs r1, r1, #0 + strh r1, [r0, #0x16] + movs r3, #0 + adds r5, r4, #0 + movs r2, #0 +_0818DCC0: + ldr r0, [r5] + lsls r1, r3, #1 + adds r0, #0x20 + adds r0, r0, r1 + strh r2, [r0] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #3 + bls _0818DCC0 + ldr r0, [r4] + movs r2, #0 + movs r1, #0 + strh r1, [r0, #0x28] + adds r0, #0x2a + strb r2, [r0] + ldr r0, [r4] + adds r0, #0x2c + movs r1, #0x10 + strb r1, [r0] + ldr r0, [r4] + ldrb r1, [r6] + adds r0, #0x2d + strb r1, [r0] + bl sub_0818DC0C + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0818DCFC: .4byte 0x0203CA34 +_0818DD00: .4byte 0x03005AEC +_0818DD04: .4byte 0x00003B58 +_0818DD08: .4byte 0x0829BDA5 +_0818DD0C: .4byte 0x0000FFFF + thumb_func_end SetLilycoveQuizLady + + thumb_func_start sub_0818DD10 +sub_0818DD10: @ 0x0818DD10 + ldr r2, _0818DD34 + ldr r0, _0818DD38 + ldr r0, [r0] + ldr r1, _0818DD3C + adds r0, r0, r1 + str r0, [r2] + movs r1, #0 + strb r1, [r0] + ldr r0, [r2] + strb r1, [r0, #1] + ldr r0, [r2] + adds r0, #0x2a + strb r1, [r0] + ldr r1, [r2] + ldr r0, _0818DD40 + strh r0, [r1, #0x16] + bx lr + .align 2, 0 +_0818DD34: .4byte 0x0203CA34 +_0818DD38: .4byte 0x03005AEC +_0818DD3C: .4byte 0x00003B58 +_0818DD40: .4byte 0x0000FFFF + thumb_func_end sub_0818DD10 + + thumb_func_start sub_0818DD44 +sub_0818DD44: @ 0x0818DD44 + push {lr} + ldr r1, _0818DD5C + ldr r0, _0818DD60 + ldr r0, [r0] + ldr r2, _0818DD64 + adds r0, r0, r2 + str r0, [r1] + ldrb r0, [r0, #1] + cmp r0, #2 + bne _0818DD68 + movs r0, #2 + b _0818DD72 + .align 2, 0 +_0818DD5C: .4byte 0x0203CA34 +_0818DD60: .4byte 0x03005AEC +_0818DD64: .4byte 0x00003B58 +_0818DD68: + cmp r0, #1 + beq _0818DD70 + movs r0, #0 + b _0818DD72 +_0818DD70: + movs r0, #1 +_0818DD72: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0818DD44 + + thumb_func_start sub_0818DD78 +sub_0818DD78: @ 0x0818DD78 + push {lr} + bl sub_0818DDA4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0818DD8A + movs r0, #2 + b _0818DD9E +_0818DD8A: + cmp r0, #2 + beq _0818DD98 + bl sub_0818DE50 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0818DD9C +_0818DD98: + movs r0, #1 + b _0818DD9E +_0818DD9C: + movs r0, #0 +_0818DD9E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0818DD78 + + thumb_func_start sub_0818DDA4 +sub_0818DDA4: @ 0x0818DDA4 + push {r4, r5, r6, r7, lr} + movs r7, #1 + ldr r5, _0818DDC8 + ldr r0, _0818DDCC + ldr r1, [r0] + ldr r2, _0818DDD0 + adds r0, r1, r2 + str r0, [r5] + ldrb r0, [r0, #0x18] + cmp r0, #0xff + bne _0818DDDC + ldr r0, _0818DDD4 + ldr r1, _0818DDD8 + bl StringCopy7 + movs r7, #0 + b _0818DE36 + .align 2, 0 +_0818DDC8: .4byte 0x0203CA34 +_0818DDCC: .4byte 0x03005AEC +_0818DDD0: .4byte 0x00003B58 +_0818DDD4: .4byte 0x02021C40 +_0818DDD8: .4byte 0x085D3D90 +_0818DDDC: + ldr r0, _0818DE40 + ldr r2, _0818DE44 + adds r1, r1, r2 + bl StringCopy7 + ldr r0, [r5] + adds r0, #0x18 + bl sub_0818DEB4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r6, _0818DE48 + ldr r0, [r6] + bl sub_0818DEB4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + bne _0818DE36 + ldr r0, [r5] + movs r2, #0 + cmp r2, r4 + bhs _0818DE36 + ldr r1, [r6] + ldrb r0, [r0, #0x18] + ldrb r1, [r1] + cmp r0, r1 + bne _0818DE34 +_0818DE14: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, r4 + bhs _0818DE36 + ldr r0, _0818DE4C + ldr r1, [r0] + adds r1, #0x18 + adds r1, r1, r2 + ldr r0, _0818DE48 + ldr r0, [r0] + adds r0, r0, r2 + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + beq _0818DE14 +_0818DE34: + movs r7, #2 +_0818DE36: + adds r0, r7, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0818DE40: .4byte 0x02021C40 +_0818DE44: .4byte 0x00003B70 +_0818DE48: .4byte 0x03005AF0 +_0818DE4C: .4byte 0x0203CA34 + thumb_func_end sub_0818DDA4 + + thumb_func_start sub_0818DE50 +sub_0818DE50: @ 0x0818DE50 + push {r4, r5, r6, lr} + ldr r3, _0818DEA0 + ldr r0, _0818DEA4 + ldr r1, [r0] + ldr r2, _0818DEA8 + adds r0, r1, r2 + str r0, [r3] + movs r5, #0 + movs r4, #0 + ldr r0, _0818DEAC + adds r1, r1, r0 + ldr r0, _0818DEB0 + ldr r2, [r0] + ldrh r1, [r1] + adds r6, r3, #0 + adds r3, r0, #0 + ldrb r2, [r2, #0xa] + cmp r1, r2 + bne _0818DE96 +_0818DE76: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bhi _0818DE98 + ldr r1, [r6] + lsls r0, r4, #1 + adds r1, #0x20 + adds r1, r1, r0 + ldr r0, [r3] + adds r0, #0xa + adds r0, r0, r4 + ldrh r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + beq _0818DE76 +_0818DE96: + movs r5, #1 +_0818DE98: + adds r0, r5, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0818DEA0: .4byte 0x0203CA34 +_0818DEA4: .4byte 0x03005AEC +_0818DEA8: .4byte 0x00003B58 +_0818DEAC: .4byte 0x00003B78 +_0818DEB0: .4byte 0x03005AF0 + thumb_func_end sub_0818DE50 + + thumb_func_start sub_0818DEB4 +sub_0818DEB4: @ 0x0818DEB4 + push {lr} + movs r2, #0 + adds r1, r0, #0 + b _0818DEC4 +_0818DEBC: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r1, #1 +_0818DEC4: + ldrb r0, [r1] + cmp r0, #0xff + bne _0818DEBC + adds r0, r2, #0 + pop {r1} + bx r1 + thumb_func_end sub_0818DEB4 + + thumb_func_start sub_0818DED0 +sub_0818DED0: @ 0x0818DED0 + push {r4, lr} + ldr r4, _0818DEEC + ldr r0, _0818DEF0 + ldr r0, [r0] + ldrh r0, [r0, #0x28] + bl ItemId_GetName + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCopy + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0818DEEC: .4byte 0x02021C40 +_0818DEF0: .4byte 0x0203CA34 + thumb_func_end sub_0818DED0 + + thumb_func_start sub_0818DEF4 +sub_0818DEF4: @ 0x0818DEF4 + push {r4, lr} + ldr r4, _0818DF10 + ldr r0, _0818DF14 + ldr r0, [r0] + ldr r1, _0818DF18 + adds r0, r0, r1 + str r0, [r4] + bl sub_0818DDA4 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0818DF1C + movs r0, #0 + b _0818DF28 + .align 2, 0 +_0818DF10: .4byte 0x0203CA34 +_0818DF14: .4byte 0x03005AEC +_0818DF18: .4byte 0x00003B58 +_0818DF1C: + ldr r0, [r4] + ldr r1, _0818DF30 + ldrb r1, [r1] + adds r0, #0x2d + strb r1, [r0] + movs r0, #1 +_0818DF28: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0818DF30: .4byte 0x0829BDA5 + thumb_func_end sub_0818DEF4 + + thumb_func_start sub_0818DF34 +sub_0818DF34: @ 0x0818DF34 + ldr r2, _0818DF48 + ldr r0, _0818DF4C + ldr r0, [r0] + ldr r3, _0818DF50 + adds r1, r0, r3 + str r1, [r2] + ldr r1, _0818DF54 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0818DF48: .4byte 0x0203CA34 +_0818DF4C: .4byte 0x03005AEC +_0818DF50: .4byte 0x00003B58 +_0818DF54: .4byte 0x00003B82 + thumb_func_end sub_0818DF34 + + thumb_func_start sub_0818DF58 +sub_0818DF58: @ 0x0818DF58 + push {lr} + bl ShowEasyChatScreen + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0818DF58 + + thumb_func_start sub_0818DF64 +sub_0818DF64: @ 0x0818DF64 + push {r4, r5, r6, lr} + ldr r5, _0818DFA0 + ldr r0, _0818DFA4 + ldr r0, [r0] + ldr r1, _0818DFA8 + adds r0, r0, r1 + str r0, [r5] + ldr r6, _0818DFAC + ldrh r1, [r0, #0x14] + adds r0, r6, #0 + bl CopyEasyChatWord + ldr r4, _0818DFB0 + ldr r0, [r5] + ldrh r1, [r0, #0x16] + adds r0, r4, #0 + bl CopyEasyChatWord + adds r0, r6, #0 + adds r1, r4, #0 + bl StringCompare + movs r1, #0 + cmp r0, #0 + bne _0818DF98 + movs r1, #1 +_0818DF98: + adds r0, r1, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0818DFA0: .4byte 0x0203CA34 +_0818DFA4: .4byte 0x03005AEC +_0818DFA8: .4byte 0x00003B58 +_0818DFAC: .4byte 0x02021C40 +_0818DFB0: .4byte 0x02021C54 + thumb_func_end sub_0818DF64 + + thumb_func_start sub_0818DFB4 +sub_0818DFB4: @ 0x0818DFB4 + ldr r1, _0818DFC8 + ldr r0, _0818DFCC + ldr r0, [r0] + ldr r2, _0818DFD0 + adds r0, r0, r2 + str r0, [r1] + ldr r1, _0818DFD4 + ldrh r0, [r0, #0x28] + strh r0, [r1] + bx lr + .align 2, 0 +_0818DFC8: .4byte 0x0203CA34 +_0818DFCC: .4byte 0x03005AEC +_0818DFD0: .4byte 0x00003B58 +_0818DFD4: .4byte 0x02037282 + thumb_func_end sub_0818DFB4 + + thumb_func_start sub_0818DFD8 +sub_0818DFD8: @ 0x0818DFD8 + ldr r1, _0818DFEC + ldr r0, _0818DFF0 + ldr r0, [r0] + ldr r2, _0818DFF4 + adds r0, r0, r2 + str r0, [r1] + movs r1, #1 + strb r1, [r0, #1] + bx lr + .align 2, 0 +_0818DFEC: .4byte 0x0203CA34 +_0818DFF0: .4byte 0x03005AEC +_0818DFF4: .4byte 0x00003B58 + thumb_func_end sub_0818DFD8 + + thumb_func_start sub_0818DFF8 +sub_0818DFF8: @ 0x0818DFF8 + ldr r1, _0818E00C + ldr r0, _0818E010 + ldr r0, [r0] + ldr r2, _0818E014 + adds r0, r0, r2 + str r0, [r1] + movs r1, #2 + strb r1, [r0, #1] + bx lr + .align 2, 0 +_0818E00C: .4byte 0x0203CA34 +_0818E010: .4byte 0x03005AEC +_0818E014: .4byte 0x00003B58 + thumb_func_end sub_0818DFF8 + + thumb_func_start sub_0818E018 +sub_0818E018: @ 0x0818E018 + ldr r1, _0818E02C + ldr r0, _0818E030 + ldr r0, [r0] + ldr r2, _0818E034 + adds r0, r0, r2 + str r0, [r1] + ldr r1, _0818E038 + strh r1, [r0, #0x16] + bx lr + .align 2, 0 +_0818E02C: .4byte 0x0203CA34 +_0818E030: .4byte 0x03005AEC +_0818E034: .4byte 0x00003B58 +_0818E038: .4byte 0x0000FFFF + thumb_func_end sub_0818E018 + + thumb_func_start sub_0818E03C +sub_0818E03C: @ 0x0818E03C + push {lr} + bl sub_081AA9E8 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0818E03C + + thumb_func_start sub_0818E048 +sub_0818E048: @ 0x0818E048 + push {r4, lr} + ldr r4, _0818E06C + ldr r0, _0818E070 + ldr r0, [r0] + ldr r1, _0818E074 + adds r0, r0, r1 + str r0, [r4] + bl sub_0818DEF4 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0818E078 + ldr r0, [r4] + adds r1, r0, #0 + adds r1, #0x2b + ldrb r1, [r1] + adds r0, #0x2c + b _0818E07E + .align 2, 0 +_0818E06C: .4byte 0x0203CA34 +_0818E070: .4byte 0x03005AEC +_0818E074: .4byte 0x00003B58 +_0818E078: + ldr r0, [r4] + adds r0, #0x2c + movs r1, #0x10 +_0818E07E: + strb r1, [r0] + bl sub_0818DC0C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0818E048 + + thumb_func_start sub_0818E08C +sub_0818E08C: @ 0x0818E08C + push {r4, r5, lr} + ldr r1, _0818E0C8 + ldr r0, _0818E0CC + ldr r0, [r0] + ldr r2, _0818E0D0 + adds r0, r0, r2 + str r0, [r1] + movs r2, #0 + adds r5, r1, #0 + adds r4, r5, #0 + ldr r0, _0818E0D4 + adds r3, r0, #0 +_0818E0A4: + ldr r1, [r4] + lsls r0, r2, #1 + adds r1, #2 + adds r1, r1, r0 + ldrh r0, [r1] + orrs r0, r3 + strh r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #8 + bls _0818E0A4 + ldr r1, [r5] + ldr r0, _0818E0D4 + strh r0, [r1, #0x14] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0818E0C8: .4byte 0x0203CA34 +_0818E0CC: .4byte 0x03005AEC +_0818E0D0: .4byte 0x00003B58 +_0818E0D4: .4byte 0x0000FFFF + thumb_func_end sub_0818E08C + + thumb_func_start sub_0818E0D8 +sub_0818E0D8: @ 0x0818E0D8 + push {lr} + ldr r1, _0818E0E8 + movs r0, #0x11 + strh r0, [r1] + bl ShowEasyChatScreen + pop {r0} + bx r0 + .align 2, 0 +_0818E0E8: .4byte 0x02037280 + thumb_func_end sub_0818E0D8 + + thumb_func_start sub_0818E0EC +sub_0818E0EC: @ 0x0818E0EC + push {lr} + ldr r0, _0818E0FC + ldrh r0, [r0] + movs r1, #1 + bl RemoveBagItem + pop {r0} + bx r0 + .align 2, 0 +_0818E0FC: .4byte 0x0203CB48 + thumb_func_end sub_0818E0EC + + thumb_func_start sub_0818E100 +sub_0818E100: @ 0x0818E100 + push {r4, r5, r6, lr} + ldr r2, _0818E154 + ldr r0, _0818E158 + ldr r0, [r0] + ldr r1, _0818E15C + adds r0, r0, r1 + str r0, [r2] + ldr r1, _0818E160 + ldrh r1, [r1] + strh r1, [r0, #0x28] + movs r3, #0 + adds r4, r2, #0 + ldr r6, _0818E164 + adds r5, r4, #0 + adds r2, r6, #0 +_0818E11E: + ldr r1, [r5] + lsls r0, r3, #1 + adds r1, #0x20 + adds r1, r1, r0 + ldr r0, [r2] + adds r0, #0xa + adds r0, r0, r3 + ldrb r0, [r0] + strh r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #3 + bls _0818E11E + ldr r0, [r4] + adds r0, #0x18 + ldr r1, [r6] + bl StringCopy7 + ldr r0, [r4] + ldr r1, _0818E168 + ldrb r1, [r1] + adds r0, #0x2d + strb r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0818E154: .4byte 0x0203CA34 +_0818E158: .4byte 0x03005AEC +_0818E15C: .4byte 0x00003B58 +_0818E160: .4byte 0x0203CB48 +_0818E164: .4byte 0x03005AF0 +_0818E168: .4byte 0x0829BDA5 + thumb_func_end sub_0818E100 + + thumb_func_start sub_0818E16C +sub_0818E16C: @ 0x0818E16C + ldr r2, _0818E184 + ldr r0, _0818E188 + ldr r0, [r0] + ldr r3, _0818E18C + adds r1, r0, r3 + str r1, [r2] + ldr r1, _0818E190 + adds r0, r0, r1 + movs r1, #1 + strb r1, [r0] + bx lr + .align 2, 0 +_0818E184: .4byte 0x0203CA34 +_0818E188: .4byte 0x03005AEC +_0818E18C: .4byte 0x00003B58 +_0818E190: .4byte 0x00003B82 + thumb_func_end sub_0818E16C + + thumb_func_start sub_0818E194 +sub_0818E194: @ 0x0818E194 + push {lr} + ldr r2, _0818E1B0 + ldr r0, _0818E1B4 + ldr r1, [r0] + ldr r0, _0818E1B8 + adds r1, r1, r0 + str r1, [r2] + ldr r0, _0818E1BC + ldrh r1, [r1, #0x14] + bl CopyEasyChatWord + pop {r0} + bx r0 + .align 2, 0 +_0818E1B0: .4byte 0x0203CA34 +_0818E1B4: .4byte 0x03005AEC +_0818E1B8: .4byte 0x00003B58 +_0818E1BC: .4byte 0x02021C68 + thumb_func_end sub_0818E194 + + thumb_func_start sub_0818E1C0 +sub_0818E1C0: @ 0x0818E1C0 + push {lr} + bl EnableBothScriptContexts + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0818E1C0 + + thumb_func_start sub_0818E1CC +sub_0818E1CC: @ 0x0818E1CC + push {r4, r5, r6, r7, lr} + ldr r2, _0818E250 + ldr r1, _0818E254 + ldr r1, [r1] + ldr r4, _0818E258 + adds r3, r1, r4 + str r3, [r2] + adds r6, r0, #0 + adds r6, #0x2c + ldrb r4, [r6] + adds r7, r2, #0 + cmp r4, #0xf + bhi _0818E248 + ldrb r0, [r3] + cmp r0, #0 + bne _0818E248 + movs r5, #0 + ldr r2, _0818E25C + adds r0, r1, r2 + ldrb r0, [r0] + cmp r4, r0 + bne _0818E240 + adds r4, r7, #0 +_0818E1FA: + bl Random + ldr r2, [r4] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xf + ands r0, r1 + adds r2, #0x2b + strb r0, [r2] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #3 + bhi _0818E222 + ldr r0, [r4] + adds r0, #0x2b + ldrb r1, [r6] + ldrb r0, [r0] + cmp r1, r0 + beq _0818E1FA +_0818E222: + ldr r0, [r4] + adds r2, r0, #0 + adds r2, #0x2b + ldrb r0, [r6] + ldr r7, _0818E250 + ldrb r4, [r2] + cmp r0, r4 + bne _0818E240 + ldrb r1, [r2] + adds r3, r1, #1 + adds r0, r3, #0 + asrs r0, r0, #4 + lsls r0, r0, #4 + subs r0, r3, r0 + strb r0, [r2] +_0818E240: + ldr r0, [r7] + ldrb r1, [r6] + adds r0, #0x2c + strb r1, [r0] +_0818E248: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0818E250: .4byte 0x0203CA34 +_0818E254: .4byte 0x03005AEC +_0818E258: .4byte 0x00003B58 +_0818E25C: .4byte 0x00003B83 + thumb_func_end sub_0818E1CC + + thumb_func_start sub_0818E260 +sub_0818E260: @ 0x0818E260 + push {r4, lr} + ldr r4, _0818E290 + ldr r1, [r4] + movs r0, #0xff + strb r0, [r1, #4] + ldr r0, [r4] + movs r1, #0 + strb r1, [r0, #2] + ldr r0, [r4] + strb r1, [r0, #3] + ldr r0, [r4] + strb r1, [r0, #0xc] + bl Random + ldr r4, [r4] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #5 + bl __umodsi3 + strb r0, [r4, #0xd] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0818E290: .4byte 0x0203CA38 + thumb_func_end sub_0818E260 + + thumb_func_start SetLilycoveContestLady +SetLilycoveContestLady: @ 0x0818E294 + push {r4, lr} + ldr r4, _0818E2C0 + ldr r0, _0818E2C4 + ldr r0, [r0] + ldr r1, _0818E2C8 + adds r0, r0, r1 + str r0, [r4] + movs r2, #0 + movs r1, #2 + strb r1, [r0] + ldr r0, [r4] + strb r2, [r0, #1] + bl sub_0818E260 + ldr r1, [r4] + ldr r0, _0818E2CC + ldrb r0, [r0] + strb r0, [r1, #0xe] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0818E2C0: .4byte 0x0203CA38 +_0818E2C4: .4byte 0x03005AEC +_0818E2C8: .4byte 0x00003B58 +_0818E2CC: .4byte 0x0829BDA5 + thumb_func_end SetLilycoveContestLady + + thumb_func_start sub_0818E2D0 +sub_0818E2D0: @ 0x0818E2D0 + push {lr} + ldr r2, _0818E300 + ldr r0, _0818E304 + ldr r0, [r0] + ldr r1, _0818E308 + adds r0, r0, r1 + str r0, [r2] + movs r3, #0 + movs r1, #2 + strb r1, [r0] + ldr r0, [r2] + strb r3, [r0, #1] + ldr r2, [r2] + ldrb r0, [r2, #2] + cmp r0, #5 + beq _0818E2F6 + ldrb r0, [r2, #3] + cmp r0, #5 + bne _0818E2FA +_0818E2F6: + bl sub_0818E260 +_0818E2FA: + pop {r0} + bx r0 + .align 2, 0 +_0818E300: .4byte 0x0203CA38 +_0818E304: .4byte 0x03005AEC +_0818E308: .4byte 0x00003B58 + thumb_func_end sub_0818E2D0 + + thumb_func_start sub_0818E30C +sub_0818E30C: @ 0x0818E30C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r4, _0818E34C + ldr r0, _0818E350 + ldr r0, [r0] + ldr r3, _0818E354 + adds r1, r0, r3 + str r1, [r4] + ldrb r0, [r1, #0xc] + cmp r0, r2 + bhi _0818E346 + strb r2, [r1, #0xc] + ldr r0, [r4] + adds r0, #4 + movs r1, #0xff + movs r2, #8 + bl memset + ldr r1, [r4] + ldr r0, _0818E358 + adds r1, #4 + ldr r0, [r0] + ldm r0!, {r2, r3} + stm r1!, {r2, r3} + ldr r1, [r4] + ldr r0, _0818E35C + ldrb r0, [r0] + strb r0, [r1, #0xe] +_0818E346: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0818E34C: .4byte 0x0203CA38 +_0818E350: .4byte 0x03005AEC +_0818E354: .4byte 0x00003B58 +_0818E358: .4byte 0x03005AF0 +_0818E35C: .4byte 0x0829BDA5 + thumb_func_end sub_0818E30C + + thumb_func_start GivePokeblockToContestLady +GivePokeblockToContestLady: @ 0x0818E360 + push {r4, r5, lr} + adds r2, r0, #0 + movs r3, #0 + movs r4, #0 + ldr r1, _0818E388 + ldr r0, _0818E38C + ldr r0, [r0] + ldr r5, _0818E390 + adds r0, r0, r5 + str r0, [r1] + ldrb r0, [r0, #0xd] + adds r5, r1, #0 + cmp r0, #4 + bhi _0818E3C6 + lsls r0, r0, #2 + ldr r1, _0818E394 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0818E388: .4byte 0x0203CA38 +_0818E38C: .4byte 0x03005AEC +_0818E390: .4byte 0x00003B58 +_0818E394: .4byte 0x0818E398 +_0818E398: @ jump table + .4byte _0818E3AC @ case 0 + .4byte _0818E3B0 @ case 1 + .4byte _0818E3B4 @ case 2 + .4byte _0818E3B8 @ case 3 + .4byte _0818E3BC @ case 4 +_0818E3AC: + ldrb r0, [r2, #1] + b _0818E3BE +_0818E3B0: + ldrb r0, [r2, #2] + b _0818E3BE +_0818E3B4: + ldrb r0, [r2, #3] + b _0818E3BE +_0818E3B8: + ldrb r0, [r2, #4] + b _0818E3BE +_0818E3BC: + ldrb r0, [r2, #5] +_0818E3BE: + cmp r0, #0 + beq _0818E3C6 + adds r3, r0, #0 + movs r4, #1 +_0818E3C6: + cmp r4, #1 + bne _0818E3E0 + adds r0, r3, #0 + bl sub_0818E30C + ldr r0, _0818E3DC + ldr r1, [r0] + ldrb r0, [r1, #2] + adds r0, #1 + strb r0, [r1, #2] + b _0818E3E8 + .align 2, 0 +_0818E3DC: .4byte 0x0203CA38 +_0818E3E0: + ldr r1, [r5] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] +_0818E3E8: + adds r0, r4, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end GivePokeblockToContestLady + + thumb_func_start sub_0818E3F0 +sub_0818E3F0: @ 0x0818E3F0 + push {r4, r5, lr} + adds r5, r1, #0 + ldr r4, _0818E428 + ldr r1, _0818E42C + ldr r1, [r1] + ldr r2, _0818E430 + adds r1, r1, r2 + str r1, [r4] + ldr r2, _0818E434 + ldrb r1, [r1, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl StringCopy + ldr r1, _0818E438 + ldr r0, [r4] + ldrb r0, [r0, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r5, #0 + bl StringCopy10 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0818E428: .4byte 0x0203CA38 +_0818E42C: .4byte 0x03005AEC +_0818E430: .4byte 0x00003B58 +_0818E434: .4byte 0x085D3DDC +_0818E438: .4byte 0x085D3DB0 + thumb_func_end sub_0818E3F0 + + thumb_func_start sub_0818E43C +sub_0818E43C: @ 0x0818E43C + push {r4, lr} + adds r3, r1, #0 + ldr r2, _0818E468 + ldr r1, _0818E46C + ldr r1, [r1] + ldr r4, _0818E470 + adds r1, r1, r4 + str r1, [r2] + ldrb r2, [r1, #0xd] + strb r2, [r0] + ldr r2, _0818E474 + ldrb r0, [r1, #0xd] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, [r0] + adds r0, r3, #0 + bl StringCopy + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0818E468: .4byte 0x0203CA38 +_0818E46C: .4byte 0x03005AEC +_0818E470: .4byte 0x00003B58 +_0818E474: .4byte 0x085D3DB0 + thumb_func_end sub_0818E43C + + thumb_func_start sub_0818E478 +sub_0818E478: @ 0x0818E478 + push {r4, lr} + ldr r3, _0818E494 + ldr r1, _0818E498 + ldr r1, [r1] + ldr r4, _0818E49C + adds r2, r1, r4 + str r2, [r3] + ldr r2, _0818E4A0 + adds r1, r1, r2 + bl StringCopy + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0818E494: .4byte 0x0203CA38 +_0818E498: .4byte 0x03005AEC +_0818E49C: .4byte 0x00003B58 +_0818E4A0: .4byte 0x00003B5C + thumb_func_end sub_0818E478 + + thumb_func_start sub_0818E4A4 +sub_0818E4A4: @ 0x0818E4A4 + ldr r2, _0818E4B8 + ldr r1, _0818E4BC + ldr r1, [r1] + ldr r3, _0818E4C0 + adds r1, r1, r3 + str r1, [r2] + ldrb r1, [r1, #0xe] + strb r1, [r0] + bx lr + .align 2, 0 +_0818E4B8: .4byte 0x0203CA38 +_0818E4BC: .4byte 0x03005AEC +_0818E4C0: .4byte 0x00003B58 + thumb_func_end sub_0818E4A4 + + thumb_func_start sub_0818E4C4 +sub_0818E4C4: @ 0x0818E4C4 + push {lr} + lsls r1, r1, #0x18 + ldr r2, _0818E4D8 + lsrs r1, r1, #0x16 + adds r1, r1, r2 + ldr r1, [r1] + bl StringCopy + pop {r0} + bx r0 + .align 2, 0 +_0818E4D8: .4byte 0x085D3DDC + thumb_func_end sub_0818E4C4 + + thumb_func_start sub_0818E4DC +sub_0818E4DC: @ 0x0818E4DC + push {lr} + ldr r1, _0818E4F4 + ldr r0, _0818E4F8 + ldr r0, [r0] + ldr r2, _0818E4FC + adds r0, r0, r2 + str r0, [r1] + ldrb r0, [r0, #2] + cmp r0, #4 + bls _0818E500 + movs r0, #1 + b _0818E50A + .align 2, 0 +_0818E4F4: .4byte 0x0203CA38 +_0818E4F8: .4byte 0x03005AEC +_0818E4FC: .4byte 0x00003B58 +_0818E500: + cmp r0, #0 + beq _0818E508 + movs r0, #0 + b _0818E50A +_0818E508: + movs r0, #2 +_0818E50A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0818E4DC + + thumb_func_start sub_0818E510 +sub_0818E510: @ 0x0818E510 + push {lr} + ldr r1, _0818E528 + ldr r0, _0818E52C + ldr r0, [r0] + ldr r2, _0818E530 + adds r0, r0, r2 + str r0, [r1] + ldrb r0, [r0, #1] + cmp r0, #1 + beq _0818E534 + movs r0, #0 + b _0818E536 + .align 2, 0 +_0818E528: .4byte 0x0203CA38 +_0818E52C: .4byte 0x03005AEC +_0818E530: .4byte 0x00003B58 +_0818E534: + movs r0, #1 +_0818E536: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0818E510 + + thumb_func_start sub_0818E53C +sub_0818E53C: @ 0x0818E53C + push {r4, lr} + movs r3, #0 + ldr r1, _0818E564 + ldr r0, _0818E568 + ldr r0, [r0] + ldr r4, _0818E56C + adds r2, r0, r4 + str r2, [r1] + ldrb r0, [r2, #2] + cmp r0, #4 + bhi _0818E558 + ldrb r0, [r2, #3] + cmp r0, #4 + bls _0818E55A +_0818E558: + movs r3, #1 +_0818E55A: + adds r0, r3, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0818E564: .4byte 0x0203CA38 +_0818E568: .4byte 0x03005AEC +_0818E56C: .4byte 0x00003B58 + thumb_func_end sub_0818E53C + + thumb_func_start sub_0818E570 +sub_0818E570: @ 0x0818E570 + push {lr} + ldr r0, _0818E580 + ldr r1, _0818E584 + bl sub_0818E3F0 + pop {r0} + bx r0 + .align 2, 0 +_0818E580: .4byte 0x02021C54 +_0818E584: .4byte 0x02021C40 + thumb_func_end sub_0818E570 + + thumb_func_start sub_0818E588 +sub_0818E588: @ 0x0818E588 + push {lr} + ldr r1, _0818E598 + movs r0, #3 + bl sub_08135850 + pop {r0} + bx r0 + .align 2, 0 +_0818E598: .4byte 0x08085A31 + thumb_func_end sub_0818E588 + + thumb_func_start sub_0818E59C +sub_0818E59C: @ 0x0818E59C + ldr r1, _0818E5B0 + ldr r0, _0818E5B4 + ldr r0, [r0] + ldr r2, _0818E5B8 + adds r0, r0, r2 + str r0, [r1] + movs r1, #1 + strb r1, [r0, #1] + bx lr + .align 2, 0 +_0818E5B0: .4byte 0x0203CA38 +_0818E5B4: .4byte 0x03005AEC +_0818E5B8: .4byte 0x00003B58 + thumb_func_end sub_0818E59C + + thumb_func_start sub_0818E5BC +sub_0818E5BC: @ 0x0818E5BC + ldr r1, _0818E5D8 + ldr r0, _0818E5DC + ldr r0, [r0] + ldr r2, _0818E5E0 + adds r0, r0, r2 + str r0, [r1] + ldr r2, _0818E5E4 + ldr r1, _0818E5E8 + ldrb r0, [r0, #0xd] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2] + bx lr + .align 2, 0 +_0818E5D8: .4byte 0x0203CA38 +_0818E5DC: .4byte 0x03005AEC +_0818E5E0: .4byte 0x00003B58 +_0818E5E4: .4byte 0x02037282 +_0818E5E8: .4byte 0x085D3DF0 + thumb_func_end sub_0818E5BC + + thumb_func_start sub_0818E5EC +sub_0818E5EC: @ 0x0818E5EC + ldr r1, _0818E5FC + ldr r0, _0818E600 + ldr r0, [r0] + ldr r2, _0818E604 + adds r0, r0, r2 + str r0, [r1] + ldrb r0, [r0, #0xd] + bx lr + .align 2, 0 +_0818E5FC: .4byte 0x0203CA38 +_0818E600: .4byte 0x03005AEC +_0818E604: .4byte 0x00003B58 + thumb_func_end sub_0818E5EC + + thumb_func_start sub_0818E608 +sub_0818E608: @ 0x0818E608 + push {lr} + ldr r1, _0818E620 + ldr r0, _0818E624 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + thumb_func_end sub_0818E608 + + thumb_func_start sub_0818E61C +sub_0818E61C: @ 0x0818E61C + bx r0 + .align 2, 0 +_0818E620: .4byte 0x085D5B0C +_0818E624: .4byte 0x02037280 + thumb_func_end sub_0818E61C + diff --git a/asm/link.s b/asm/link.s new file mode 100644 index 0000000..6e940d3 --- /dev/null +++ b/asm/link.s @@ -0,0 +1,5552 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start IsWirelessAdapterConnected +IsWirelessAdapterConnected: @ 0x08008F68 + push {lr} + bl sub_0800AF5C + bl sub_0800E1C4 + bl sub_0800B97C + ldr r1, _08008F8C + cmp r0, r1 + beq _08008F90 + bl sub_0800AF78 + bl CloseLink + bl RestoreSerialTimer3IntrHandlers + movs r0, #0 + b _08008F9A + .align 2, 0 +_08008F8C: .4byte 0x00008001 +_08008F90: + bl rfu_REQ_stopMode + bl rfu_waitREQComplete + movs r0, #1 +_08008F9A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsWirelessAdapterConnected + + thumb_func_start Task_DestroySelf +Task_DestroySelf: @ 0x08008FA0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Task_DestroySelf + + thumb_func_start InitLinkTestBG +InitLinkTestBG: @ 0x08008FB0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + ldr r4, [sp, #0x18] + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r7, r3, #0x18 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r0, _0800900C + lsls r1, r5, #4 + movs r2, #0x20 + bl LoadPalette + ldr r3, _08009010 + ldr r0, _08009014 + str r0, [r3] + lsls r2, r7, #0xe + lsls r0, r4, #5 + movs r1, #0xc0 + lsls r1, r1, #0x13 + adds r0, r0, r1 + adds r2, r2, r0 + str r2, [r3, #4] + ldr r0, _08009018 + str r0, [r3, #8] + ldr r0, [r3, #8] + ldr r0, _0800901C + str r6, [r0] + str r5, [r0, #4] + str r4, [r0, #8] + mov r0, r8 + cmp r0, #2 + beq _0800903A + cmp r0, #2 + bgt _08009020 + cmp r0, #1 + beq _08009028 + b _0800905C + .align 2, 0 +_0800900C: .4byte 0x082BFB6C +_08009010: .4byte 0x040000D4 +_08009014: .4byte 0x082BFB8C +_08009018: .4byte 0x80000110 +_0800901C: .4byte 0x030031D0 +_08009020: + mov r0, r8 + cmp r0, #3 + beq _0800904C + b _0800905C +_08009028: + lsls r1, r6, #8 + movs r0, #1 + orrs r1, r0 + lsls r0, r7, #2 + orrs r1, r0 + movs r0, #0xa + bl SetGpuReg + b _0800905C +_0800903A: + lsls r1, r6, #8 + movs r0, #1 + orrs r1, r0 + lsls r0, r7, #2 + orrs r1, r0 + movs r0, #0xc + bl SetGpuReg + b _0800905C +_0800904C: + lsls r1, r6, #8 + movs r0, #1 + orrs r1, r0 + lsls r0, r7, #2 + orrs r1, r0 + movs r0, #0xe + bl SetGpuReg +_0800905C: + mov r0, r8 + lsls r4, r0, #2 + adds r0, r4, #0 + adds r0, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl SetGpuReg + adds r4, #0x12 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #0 + bl SetGpuReg + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end InitLinkTestBG + + thumb_func_start sub_08009088 +sub_08009088: @ 0x08009088 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + mov r8, r0 + adds r6, r1, #0 + adds r4, r2, #0 + adds r5, r3, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _080090F4 + mov r2, r8 + lsls r1, r2, #4 + movs r2, #0x20 + bl LoadPalette + ldr r2, _080090F8 + ldr r0, _080090FC + str r0, [r2] + lsls r0, r5, #0xe + movs r1, #0xc0 + lsls r1, r1, #0x13 + adds r0, r0, r1 + str r0, [r2, #4] + ldr r0, _08009100 + str r0, [r2, #8] + ldr r0, [r2, #8] + ldr r0, _08009104 + str r4, [r0] + mov r1, r8 + str r1, [r0, #4] + movs r1, #0 + str r1, [r0, #8] + ldr r0, _08009108 + adds r6, r6, r0 + ldrb r0, [r6] + lsls r4, r4, #8 + lsls r5, r5, #2 + orrs r4, r5 + adds r1, r4, #0 + bl SetGpuReg + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080090F4: .4byte 0x082BFB6C +_080090F8: .4byte 0x040000D4 +_080090FC: .4byte 0x082BFB8C +_08009100: .4byte 0x80000110 +_08009104: .4byte 0x030031D0 +_08009108: .4byte 0x082BFF20 + thumb_func_end sub_08009088 + + thumb_func_start LinkTestScreen +LinkTestScreen: @ 0x0800910C + push {r4, lr} + sub sp, #4 + bl ResetSpriteData + bl FreeAllSpritePalettes + bl ResetTasks + ldr r0, _080091A0 + bl SetVBlankCallback + bl ResetBlockSend + ldr r1, _080091A4 + ldr r2, _080091A8 + adds r0, r2, #0 + strh r0, [r1] + bl OpenLink + ldr r0, _080091AC + ldrh r0, [r0, #0x24] + bl SeedRng + movs r4, #0 +_0800913C: + bl Random + ldr r1, _080091B0 + ldr r1, [r1] + adds r1, #0xa + adds r1, r1, r4 + strb r0, [r1] + adds r4, #1 + cmp r4, #3 + ble _0800913C + movs r4, #0 + str r4, [sp] + movs r0, #0 + movs r1, #2 + movs r2, #4 + movs r3, #0 + bl InitLinkTestBG + movs r1, #0xaa + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + ldr r0, _080091B4 + movs r1, #0 + bl CreateTask + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + ldr r0, _080091B8 + str r4, [r0] + bl InitLocalLinkPlayer + ldr r0, _080091BC + movs r1, #0 + bl CreateTask + ldr r0, _080091C0 + bl SetMainCallback2 + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080091A0: .4byte 0x08009259 +_080091A4: .4byte 0x0202267E +_080091A8: .4byte 0x00001111 +_080091AC: .4byte 0x03002360 +_080091B0: .4byte 0x03005AF0 +_080091B4: .4byte 0x08008FA1 +_080091B8: .4byte 0x03000D60 +_080091BC: .4byte 0x0800A415 +_080091C0: .4byte 0x08009559 + thumb_func_end LinkTestScreen + + thumb_func_start SetLocalLinkPlayerId +SetLocalLinkPlayerId: @ 0x080091C4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080091D0 + strh r0, [r1, #0x18] + bx lr + .align 2, 0 +_080091D0: .4byte 0x02022684 + thumb_func_end SetLocalLinkPlayerId + + thumb_func_start InitLocalLinkPlayer +InitLocalLinkPlayer: @ 0x080091D4 + push {r4, r5, lr} + ldr r5, _08009240 + ldr r4, _08009244 + ldr r1, [r4] + ldrb r2, [r1, #0xa] + ldrb r0, [r1, #0xb] + lsls r0, r0, #8 + orrs r2, r0 + ldrb r0, [r1, #0xc] + lsls r0, r0, #0x10 + orrs r2, r0 + ldrb r0, [r1, #0xd] + lsls r0, r0, #0x18 + orrs r2, r0 + str r2, [r5, #4] + adds r0, r5, #0 + adds r0, #8 + bl StringCopy + ldr r0, [r4] + ldrb r0, [r0, #8] + strb r0, [r5, #0x13] + ldr r0, _08009248 + ldrh r0, [r0] + str r0, [r5, #0x14] + ldr r0, _0800924C + ldrb r0, [r0] + strh r0, [r5, #0x1a] + ldr r0, _08009250 + ldrb r0, [r0] + movs r2, #0x80 + lsls r2, r2, #7 + adds r1, r2, #0 + adds r0, r0, r1 + strh r0, [r5] + movs r0, #0x80 + lsls r0, r0, #8 + strh r0, [r5, #2] + bl IsNationalPokedexEnabled + strb r0, [r5, #0x10] + ldr r0, _08009254 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0800923A + ldrb r0, [r5, #0x10] + movs r1, #0x10 + orrs r0, r1 + strb r0, [r5, #0x10] +_0800923A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08009240: .4byte 0x02022684 +_08009244: .4byte 0x03005AF0 +_08009248: .4byte 0x0202267E +_0800924C: .4byte 0x0829BDA5 +_08009250: .4byte 0x0829BDA4 +_08009254: .4byte 0x0000087F + thumb_func_end InitLocalLinkPlayer + + thumb_func_start sub_08009258 +sub_08009258: @ 0x08009258 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08009258 + + thumb_func_start InitLink +InitLink: @ 0x0800926C + push {lr} + ldr r3, _0800928C + ldr r1, _08009290 + ldr r2, _08009294 + adds r0, r1, #0 + adds r0, #0xe +_08009278: + strh r2, [r0] + subs r0, #2 + cmp r0, r1 + bge _08009278 + movs r0, #1 + strb r0, [r3] + bl EnableSerial + pop {r0} + bx r0 + .align 2, 0 +_0800928C: .4byte 0x0202267C +_08009290: .4byte 0x030031B0 +_08009294: .4byte 0x0000EFFF + thumb_func_end InitLink + + thumb_func_start Task_TriggerHandshake +Task_TriggerHandshake: @ 0x08009298 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _080092C8 + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #5 + bne _080092C2 + ldr r1, _080092CC + movs r0, #1 + strb r0, [r1] + adds r0, r2, #0 + bl DestroyTask +_080092C2: + pop {r0} + bx r0 + .align 2, 0 +_080092C8: .4byte 0x03005B60 +_080092CC: .4byte 0x030031E4 + thumb_func_end Task_TriggerHandshake + + thumb_func_start OpenLink +OpenLink: @ 0x080092D0 + push {r4, r5, r6, lr} + ldr r0, _08009318 + ldrb r4, [r0] + cmp r4, #0 + bne _08009344 + bl ResetSerial + bl InitLink + ldr r1, _0800931C + ldr r0, _08009320 + str r0, [r1] + ldr r0, _08009324 + strb r4, [r0] + ldr r0, _08009328 + strb r4, [r0] + ldr r0, _0800932C + strb r4, [r0] + bl ResetBlockReceivedFlags + bl ResetBlockSend + ldr r0, _08009330 + str r4, [r0] + ldr r0, _08009334 + strb r4, [r0] + ldr r0, _08009338 + strb r4, [r0] + ldr r0, _0800933C + strh r4, [r0] + ldr r0, _08009340 + movs r1, #2 + bl CreateTask + b _08009348 + .align 2, 0 +_08009318: .4byte 0x0300319C +_0800931C: .4byte 0x030031E0 +_08009320: .4byte 0x0800A3E9 +_08009324: .4byte 0x030027E8 +_08009328: .4byte 0x0300310C +_0800932C: .4byte 0x03003198 +_08009330: .4byte 0x03000D54 +_08009334: .4byte 0x03003188 +_08009338: .4byte 0x03003184 +_0800933C: .4byte 0x03003194 +_08009340: .4byte 0x08009299 +_08009344: + bl sub_0800E1C4 +_08009348: + ldr r1, _08009374 + movs r0, #0 + strb r0, [r1] + movs r1, #0 + ldr r6, _08009378 + movs r2, #0 + movs r5, #1 + ldr r4, _0800937C + ldr r3, _08009380 +_0800935A: + adds r0, r1, r6 + strb r5, [r0] + adds r0, r1, r4 + strb r2, [r0] + adds r0, r1, r3 + strb r2, [r0] + adds r1, #1 + cmp r1, #3 + ble _0800935A + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08009374: .4byte 0x030031C4 +_08009378: .4byte 0x03003118 +_0800937C: .4byte 0x03003190 +_08009380: .4byte 0x0300318C + thumb_func_end OpenLink + + thumb_func_start CloseLink +CloseLink: @ 0x08009384 + push {r4, lr} + ldr r0, _080093A8 + movs r4, #0 + strb r4, [r0] + ldr r0, _080093AC + ldrb r0, [r0] + cmp r0, #0 + beq _08009398 + bl sub_0800E894 +_08009398: + ldr r0, _080093B0 + strb r4, [r0] + bl DisableSerial + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080093A8: .4byte 0x030031C4 +_080093AC: .4byte 0x0300319C +_080093B0: .4byte 0x0202267C + thumb_func_end CloseLink + + thumb_func_start TestBlockTransfer +TestBlockTransfer: @ 0x080093B4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r5, _08009478 + ldr r4, _0800947C + ldrb r0, [r5] + ldrh r1, [r4] + cmp r0, r1 + beq _080093D8 + ldrh r0, [r4] + movs r1, #2 + movs r2, #3 + movs r3, #2 + bl LinkTest_prnthex + ldrh r0, [r4] + strb r0, [r5] +_080093D8: + movs r5, #0 + ldr r7, _08009480 +_080093DC: + ldr r0, _08009484 + adds r6, r5, r0 + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r4, r0, r7 + ldrb r0, [r6] + ldrh r1, [r4] + cmp r0, r1 + beq _08009404 + ldrh r0, [r4] + adds r2, r5, #4 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r1, #2 + movs r3, #2 + bl LinkTest_prnthex + ldrh r0, [r4] + strb r0, [r6] +_08009404: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #3 + bls _080093DC + bl GetBlockReceivedStatus + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #0xf + bne _0800946A + movs r5, #0 + ldr r0, _08009480 + mov sb, r0 + ldr r1, _08009488 + mov r8, r1 +_08009424: + adds r0, r7, #0 + asrs r0, r5 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08009460 + lsls r0, r5, #8 + ldr r1, _0800948C + adds r0, r0, r1 + lsls r4, r5, #1 + adds r1, r4, r5 + lsls r1, r1, #2 + add r1, sb + ldrh r1, [r1, #2] + bl LinkTestCalcBlockChecksum + ldr r1, _08009490 + adds r4, r4, r1 + movs r6, #0 + strh r0, [r4] + adds r0, r5, #0 + bl ResetBlockReceivedFlag + ldrh r0, [r4] + cmp r0, r8 + beq _08009460 + ldr r0, _08009494 + strb r6, [r0] + ldr r0, _08009498 + strb r6, [r0] +_08009460: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #3 + bls _08009424 +_0800946A: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08009478: .4byte 0x03000D64 +_0800947C: .4byte 0x03000D10 +_08009480: .4byte 0x03000D20 +_08009484: .4byte 0x03000D68 +_08009488: .4byte 0x00000342 +_0800948C: .4byte 0x0202207C +_08009490: .4byte 0x030031E8 +_08009494: .4byte 0x02022074 +_08009498: .4byte 0x02022075 + thumb_func_end TestBlockTransfer + + thumb_func_start LinkTestProcessKeyInput +LinkTestProcessKeyInput: @ 0x0800949C + push {r4, r5, lr} + sub sp, #4 + ldr r4, _0800953C + ldrh r1, [r4, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080094B2 + ldr r1, _08009540 + movs r0, #1 + strb r0, [r1] +_080094B2: + ldrh r1, [r4, #0x2c] + movs r5, #2 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _080094C6 + ldr r0, _08009544 + ldr r1, _08009548 + bl InitBlockSend +_080094C6: + ldrh r1, [r4, #0x2e] + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080094E2 + movs r0, #1 + rsbs r0, r0, #0 + str r5, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade +_080094E2: + ldrh r1, [r4, #0x2e] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080094F2 + movs r0, #1 + bl SetSuppressLinkErrorMessage +_080094F2: + ldrh r1, [r4, #0x2e] + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08009504 + movs r0, #1 + bl TrySavingData +_08009504: + ldrh r1, [r4, #0x2e] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08009512 + bl sub_0800A7F8 +_08009512: + ldr r0, _0800954C + ldrb r0, [r0] + cmp r0, #0 + beq _08009532 + ldr r2, [r4, #0x24] + ldr r0, _08009550 + ldrb r1, [r0] + ldr r0, _08009554 + ldr r0, [r0] + cmp r0, #0 + bne _0800952C + movs r0, #0x10 + orrs r1, r0 +_0800952C: + adds r0, r2, #0 + bl SetLinkDebugValues +_08009532: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0800953C: .4byte 0x03002360 +_08009540: .4byte 0x030031E4 +_08009544: .4byte 0x02004000 +_08009548: .4byte 0x00002004 +_0800954C: .4byte 0x02022074 +_08009550: .4byte 0x030027E8 +_08009554: .4byte 0x030031E0 + thumb_func_end LinkTestProcessKeyInput + + thumb_func_start CB2_LinkTest +CB2_LinkTest: @ 0x08009558 + push {lr} + bl LinkTestProcessKeyInput + movs r0, #1 + movs r1, #1 + movs r2, #0 + bl TestBlockTransfer + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end CB2_LinkTest + + thumb_func_start LinkMain2 +LinkMain2: @ 0x0800957C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _0800958C + ldrb r0, [r0] + cmp r0, #0 + bne _08009590 + movs r0, #0 + b _080095D8 + .align 2, 0 +_0800958C: .4byte 0x0202267C +_08009590: + movs r1, #0 + ldr r5, _080095E0 + ldr r3, _080095E4 + movs r2, #0 +_08009598: + lsls r0, r1, #1 + adds r0, r0, r3 + strh r2, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #7 + bls _08009598 + ldrh r0, [r4] + strh r0, [r5] + ldr r0, _080095E8 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080095D4 + ldr r0, _080095EC + ldr r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + bl ProcessRecvCmds + ldr r0, _080095F0 + ldr r0, [r0] + cmp r0, #0 + beq _080095D0 + bl _call_via_r0 +_080095D0: + bl CheckErrorStatus +_080095D4: + ldr r0, _080095E8 + ldrh r0, [r0] +_080095D8: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080095E0: .4byte 0x03003124 +_080095E4: .4byte 0x030031B0 +_080095E8: .4byte 0x03003180 +_080095EC: .4byte 0x04000128 +_080095F0: .4byte 0x030031E0 + thumb_func_end LinkMain2 + + thumb_func_start HandleReceiveRemoteLinkPlayer +HandleReceiveRemoteLinkPlayer: @ 0x080095F4 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r5, #0 + ldr r1, _08009608 + adds r0, r0, r1 + strb r5, [r0] + movs r4, #0 + adds r6, r1, #0 + b _08009614 + .align 2, 0 +_08009608: .4byte 0x03003118 +_0800960C: + adds r0, r4, r6 + ldrb r0, [r0] + adds r5, r5, r0 + adds r4, #1 +_08009614: + bl GetLinkPlayerCount_2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + blt _0800960C + cmp r5, #0 + bne _08009630 + ldr r1, _08009638 + ldrb r0, [r1] + cmp r0, #0 + bne _08009630 + movs r0, #1 + strb r0, [r1] +_08009630: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08009638: .4byte 0x030031C4 + thumb_func_end HandleReceiveRemoteLinkPlayer + + thumb_func_start ProcessRecvCmds +ProcessRecvCmds: @ 0x0800963C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + movs r6, #0 +_0800964A: + ldr r0, _08009694 + lsls r1, r6, #1 + adds r3, r1, r0 + movs r0, #0 + strh r0, [r3] + lsls r4, r6, #4 + ldr r5, _08009698 + adds r2, r4, r5 + ldrh r0, [r2] + mov ip, r1 + adds r7, r6, #1 + str r7, [sp] + cmp r0, #0 + bne _08009668 + b _08009906 +_08009668: + ldrh r1, [r2] + ldr r0, _0800969C + cmp r1, r0 + bne _08009672 + b _080098B8 +_08009672: + cmp r1, r0 + bgt _080096C0 + ldr r0, _080096A0 + cmp r1, r0 + bne _0800967E + b _080098FC +_0800967E: + cmp r1, r0 + bgt _080096AC + ldr r0, _080096A4 + cmp r1, r0 + beq _08009704 + ldr r0, _080096A8 + cmp r1, r0 + bne _08009690 + b _080098C0 +_08009690: + b _08009906 + .align 2, 0 +_08009694: .4byte 0x030030C0 +_08009698: .4byte 0x03003130 +_0800969C: .4byte 0x00005FFF +_080096A0: .4byte 0x00004444 +_080096A4: .4byte 0x00002222 +_080096A8: .4byte 0x00002FFE +_080096AC: + ldr r0, _080096BC + cmp r1, r0 + beq _08009754 + adds r0, #0x11 + cmp r1, r0 + beq _08009754 + b _08009906 + .align 2, 0 +_080096BC: .4byte 0x00005555 +_080096C0: + ldr r0, _080096DC + cmp r1, r0 + beq _08009760 + cmp r1, r0 + bgt _080096E8 + ldr r0, _080096E0 + cmp r1, r0 + beq _0800978C + ldr r0, _080096E4 + cmp r1, r0 + bne _080096D8 + b _080098D0 +_080096D8: + b _08009906 + .align 2, 0 +_080096DC: .4byte 0x0000BBBB +_080096E0: .4byte 0x00008888 +_080096E4: .4byte 0x0000AAAA +_080096E8: + ldr r0, _080096FC + cmp r1, r0 + bne _080096F0 + b _080098FC +_080096F0: + ldr r0, _08009700 + cmp r1, r0 + bne _080096F8 + b _080098D6 +_080096F8: + b _08009906 + .align 2, 0 +_080096FC: .4byte 0x0000CAFE +_08009700: .4byte 0x0000CCCC +_08009704: + bl InitLocalLinkPlayer + ldr r1, _08009748 + adds r1, #0x10 + ldr r0, _0800974C + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldm r0!, {r2, r5, r7} + stm r1!, {r2, r5, r7} + ldr r0, [r0] + str r0, [r1] + ldr r3, _08009750 + ldr r1, _08009748 + adds r0, r3, #0 + ldm r0!, {r4, r5, r7} + stm r1!, {r4, r5, r7} + ldrh r2, [r0] + strh r2, [r1] + ldrb r0, [r0, #2] + strb r0, [r1, #2] + ldr r0, _08009748 + adds r0, #0x2c + ldm r3!, {r1, r2, r4} + stm r0!, {r1, r2, r4} + ldrh r1, [r3] + strh r1, [r0] + ldrb r1, [r3, #2] + strb r1, [r0, #2] + ldr r0, _08009748 + movs r1, #0x3c + bl InitBlockSend + b _08009906 + .align 2, 0 +_08009748: .4byte 0x030030D0 +_0800974C: .4byte 0x02022684 +_08009750: .4byte 0x082BFF24 +_08009754: + ldr r1, _0800975C + movs r0, #1 + strb r0, [r1] + b _08009906 + .align 2, 0 +_0800975C: .4byte 0x03003188 +_08009760: + mov r5, ip + adds r1, r5, r6 + lsls r1, r1, #2 + ldr r7, _08009784 + adds r1, r1, r7 + movs r0, #0 + strh r0, [r1] + ldr r0, _08009788 + adds r0, #2 + adds r0, r4, r0 + ldrh r0, [r0] + strh r0, [r1, #2] + ldr r0, _08009788 + adds r0, #4 + adds r0, r4, r0 + ldrh r0, [r0] + strb r0, [r1, #9] + b _08009906 + .align 2, 0 +_08009784: .4byte 0x03000D20 +_08009788: .4byte 0x03003130 +_0800978C: + mov r1, ip + adds r0, r1, r6 + lsls r0, r0, #2 + ldr r2, _080097D0 + adds r3, r0, r2 + ldrh r1, [r3, #2] + movs r0, #0x80 + lsls r0, r0, #1 + adds r5, r2, #0 + mov sl, r5 + cmp r1, r0 + bls _080097DC + ldr r7, _080097D4 + mov r8, r7 + movs r2, #0 + adds r5, r3, #0 + ldr r7, _080097D8 + adds r3, r4, #0 +_080097B0: + ldrh r1, [r5] + lsrs r1, r1, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + add r1, r8 + adds r2, #1 + lsls r0, r2, #1 + adds r0, r0, r3 + adds r0, r0, r7 + ldrh r0, [r0] + strh r0, [r1] + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + cmp r2, #6 + bls _080097B0 + b _0800980C + .align 2, 0 +_080097D0: .4byte 0x03000D20 +_080097D4: .4byte 0x0201C000 +_080097D8: .4byte 0x03003130 +_080097DC: + movs r2, #0 + ldr r0, _0800988C + mov sb, r0 + adds r7, r3, #0 + ldr r1, _08009890 + mov r8, r1 + lsls r5, r6, #8 + adds r3, r4, #0 +_080097EC: + ldrh r1, [r7] + lsrs r1, r1, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + adds r1, r1, r5 + add r1, sb + adds r2, #1 + lsls r0, r2, #1 + adds r0, r0, r3 + add r0, r8 + ldrh r0, [r0] + strh r0, [r1] + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + cmp r2, #6 + bls _080097EC +_0800980C: + mov r2, ip + adds r1, r2, r6 + lsls r1, r1, #2 + add r1, sl + ldrh r0, [r1] + adds r0, #0xe + movs r3, #0 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrh r1, [r1, #2] + cmp r0, r1 + blo _08009906 + ldr r0, _08009894 + adds r0, r6, r0 + ldrb r0, [r0] + cmp r0, #1 + bne _080098AE + lsls r1, r6, #8 + ldr r0, _0800988C + adds r1, r1, r0 + mov r8, r1 + lsls r0, r6, #3 + subs r0, r0, r6 + lsls r0, r0, #2 + ldr r1, _08009898 + adds r2, r0, r1 + adds r1, r2, #0 + mov r0, r8 + adds r0, #0x10 + ldm r0!, {r4, r5, r7} + stm r1!, {r4, r5, r7} + ldm r0!, {r4, r5, r7} + stm r1!, {r4, r5, r7} + ldr r0, [r0] + str r0, [r1] + ldrb r0, [r2] + subs r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bhi _08009866 + strb r3, [r2, #0x12] + strb r3, [r2, #0x11] + strb r3, [r2, #0x10] +_08009866: + ldr r5, _0800989C + mov r0, r8 + adds r1, r5, #0 + bl strcmp + cmp r0, #0 + bne _08009882 + mov r0, r8 + adds r0, #0x2c + adds r1, r5, #0 + bl strcmp + cmp r0, #0 + beq _080098A4 +_08009882: + ldr r0, _080098A0 + bl SetMainCallback2 + b _08009906 + .align 2, 0 +_0800988C: .4byte 0x0202207C +_08009890: .4byte 0x03003130 +_08009894: .4byte 0x03003118 +_08009898: .4byte 0x020226A0 +_0800989C: .4byte 0x082BFF24 +_080098A0: .4byte 0x0800AA0D +_080098A4: + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + bl HandleReceiveRemoteLinkPlayer + b _08009906 +_080098AE: + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + bl SetBlockReceivedFlag + b _08009906 +_080098B8: + ldr r0, _080098BC + b _080098C2 + .align 2, 0 +_080098BC: .4byte 0x03003190 +_080098C0: + ldr r0, _080098CC +_080098C2: + adds r0, r6, r0 + movs r1, #1 + strb r1, [r0] + b _08009906 + .align 2, 0 +_080098CC: .4byte 0x0300318C +_080098D0: + bl sub_08009FDC + b _08009906 +_080098D6: + ldr r3, _080098F4 + ldr r0, _080098F8 + adds r0, #2 + adds r0, r4, r0 + ldrh r2, [r0] + lsls r2, r2, #3 + adds r0, r2, r3 + ldr r1, [r0] + adds r3, #4 + adds r2, r2, r3 + ldrh r2, [r2] + movs r0, #0 + bl SendBlock + b _08009906 + .align 2, 0 +_080098F4: .4byte 0x082BFEF8 +_080098F8: .4byte 0x03003130 +_080098FC: + ldr r0, _08009924 + adds r0, #2 + adds r0, r4, r0 + ldrh r0, [r0] + strh r0, [r3] +_08009906: + ldr r1, [sp] + lsls r0, r1, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #3 + bhi _08009912 + b _0800964A +_08009912: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08009924: .4byte 0x03003130 + thumb_func_end ProcessRecvCmds + + thumb_func_start BuildSendCmd +BuildSendCmd: @ 0x08009928 + push {lr} + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _08009954 + cmp r2, r0 + beq _080099F8 + cmp r2, r0 + bgt _08009988 + ldr r0, _08009958 + cmp r2, r0 + beq _080099E4 + cmp r2, r0 + bgt _08009964 + ldr r0, _0800995C + cmp r2, r0 + beq _080099D0 + ldr r0, _08009960 +_0800994A: + cmp r2, r0 + bne _08009950 + b _08009A7C +_08009950: + b _08009A9E + .align 2, 0 +_08009954: .4byte 0x00006666 +_08009958: .4byte 0x00004444 +_0800995C: .4byte 0x00002222 +_08009960: .4byte 0x00002FFE +_08009964: + ldr r0, _08009974 + cmp r2, r0 + bne _0800996C + b _08009A7C +_0800996C: + cmp r2, r0 + bgt _08009978 + subs r0, #0x11 + b _0800994A + .align 2, 0 +_08009974: .4byte 0x00005566 +_08009978: + ldr r0, _08009984 + cmp r2, r0 + bne _08009980 + b _08009A68 +_08009980: + b _08009A9E + .align 2, 0 +_08009984: .4byte 0x00005FFF +_08009988: + ldr r0, _0800999C + cmp r2, r0 + beq _08009A40 + cmp r2, r0 + bgt _080099A8 + ldr r0, _080099A0 + cmp r2, r0 + beq _08009A04 + ldr r0, _080099A4 + b _0800994A + .align 2, 0 +_0800999C: .4byte 0x0000AAAB +_080099A0: .4byte 0x00007777 +_080099A4: .4byte 0x0000AAAA +_080099A8: + ldr r0, _080099BC + cmp r2, r0 + beq _08009A88 + cmp r2, r0 + bgt _080099C4 + ldr r0, _080099C0 + cmp r2, r0 + beq _08009A24 + b _08009A9E + .align 2, 0 +_080099BC: .4byte 0x0000CAFE +_080099C0: .4byte 0x0000BBBB +_080099C4: + ldr r0, _080099CC + cmp r2, r0 + beq _08009A54 + b _08009A9E + .align 2, 0 +_080099CC: .4byte 0x0000CCCC +_080099D0: + ldr r0, _080099DC + strh r2, [r0] + ldr r1, _080099E0 + ldrh r1, [r1] + b _08009A9C + .align 2, 0 +_080099DC: .4byte 0x030031B0 +_080099E0: .4byte 0x0202267E +_080099E4: + ldr r0, _080099F0 + strh r2, [r0] + ldr r1, _080099F4 + ldrh r1, [r1, #0x2c] + b _08009A9C + .align 2, 0 +_080099F0: .4byte 0x030031B0 +_080099F4: .4byte 0x03002360 +_080099F8: + ldr r0, _08009A00 + movs r1, #0 + b _08009A9A + .align 2, 0 +_08009A00: .4byte 0x030031B0 +_08009A04: + ldr r0, _08009A20 + strh r2, [r0] + movs r1, #0 + adds r3, r0, #0 + movs r2, #0xee +_08009A0E: + adds r1, #1 + lsls r0, r1, #1 + adds r0, r0, r3 + strh r2, [r0] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #4 + bls _08009A0E + b _08009A9E + .align 2, 0 +_08009A20: .4byte 0x030031B0 +_08009A24: + ldr r1, _08009A38 + strh r2, [r1] + ldr r2, _08009A3C + ldrh r0, [r2, #2] + strh r0, [r1, #2] + ldrb r0, [r2, #9] + adds r0, #0x80 + strh r0, [r1, #4] + b _08009A9E + .align 2, 0 +_08009A38: .4byte 0x030031B0 +_08009A3C: .4byte 0x03000D10 +_08009A40: + ldr r0, _08009A4C + strh r2, [r0] + ldr r1, _08009A50 + ldrh r1, [r1] + b _08009A9C + .align 2, 0 +_08009A4C: .4byte 0x030031B0 +_08009A50: .4byte 0x0203CB48 +_08009A54: + ldr r0, _08009A60 + strh r2, [r0] + ldr r1, _08009A64 + ldrb r1, [r1] + b _08009A9C + .align 2, 0 +_08009A60: .4byte 0x030031B0 +_08009A64: .4byte 0x030031F0 +_08009A68: + ldr r0, _08009A74 + strh r2, [r0] + ldr r1, _08009A78 + ldrh r1, [r1] + b _08009A9C + .align 2, 0 +_08009A74: .4byte 0x030031B0 +_08009A78: .4byte 0x03003194 +_08009A7C: + ldr r0, _08009A84 + strh r2, [r0] + b _08009A9E + .align 2, 0 +_08009A84: .4byte 0x030031B0 +_08009A88: + ldr r0, _08009AA4 + ldrh r1, [r0] + cmp r1, #0 + beq _08009A9E + ldr r0, _08009AA8 + ldrb r0, [r0] + cmp r0, #0 + bne _08009A9E + ldr r0, _08009AAC +_08009A9A: + strh r2, [r0] +_08009A9C: + strh r1, [r0, #2] +_08009A9E: + pop {r0} + bx r0 + .align 2, 0 +_08009AA4: .4byte 0x03005B08 +_08009AA8: .4byte 0x03002354 +_08009AAC: .4byte 0x030031B0 + thumb_func_end BuildSendCmd + + thumb_func_start sub_08009AB0 +sub_08009AB0: @ 0x08009AB0 + push {lr} + ldr r0, _08009AC8 + ldrb r0, [r0] + cmp r0, #0 + beq _08009ABE + bl sub_0800F2C4 +_08009ABE: + ldr r1, _08009ACC + ldr r0, _08009AD0 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08009AC8: .4byte 0x0300319C +_08009ACC: .4byte 0x030031E0 +_08009AD0: .4byte 0x08009B09 + thumb_func_end sub_08009AB0 + + thumb_func_start IsSendingKeysToLink +IsSendingKeysToLink: @ 0x08009AD4 + push {lr} + ldr r0, _08009AE4 + ldrb r0, [r0] + cmp r0, #0 + beq _08009AE8 + bl IsSendingKeysToRfu + b _08009B02 + .align 2, 0 +_08009AE4: .4byte 0x0300319C +_08009AE8: + ldr r0, _08009AF8 + ldr r1, [r0] + ldr r0, _08009AFC + cmp r1, r0 + beq _08009B00 + movs r0, #0 + b _08009B02 + .align 2, 0 +_08009AF8: .4byte 0x030031E0 +_08009AFC: .4byte 0x08009B09 +_08009B00: + movs r0, #1 +_08009B02: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsSendingKeysToLink + + thumb_func_start sub_08009B08 +sub_08009B08: @ 0x08009B08 + push {lr} + ldr r0, _08009B1C + ldrb r0, [r0] + cmp r0, #1 + bne _08009B18 + ldr r0, _08009B20 + bl BuildSendCmd +_08009B18: + pop {r0} + bx r0 + .align 2, 0 +_08009B1C: .4byte 0x030031C4 +_08009B20: .4byte 0x0000CAFE + thumb_func_end sub_08009B08 + + thumb_func_start ClearLinkCallback +ClearLinkCallback: @ 0x08009B24 + push {lr} + ldr r0, _08009B34 + ldrb r1, [r0] + cmp r1, #0 + beq _08009B38 + bl Rfu_set_zero + b _08009B3C + .align 2, 0 +_08009B34: .4byte 0x0300319C +_08009B38: + ldr r0, _08009B40 + str r1, [r0] +_08009B3C: + pop {r0} + bx r0 + .align 2, 0 +_08009B40: .4byte 0x030031E0 + thumb_func_end ClearLinkCallback + + thumb_func_start ClearLinkCallback_2 +ClearLinkCallback_2: @ 0x08009B44 + push {lr} + ldr r0, _08009B54 + ldrb r1, [r0] + cmp r1, #0 + beq _08009B58 + bl Rfu_set_zero + b _08009B5C + .align 2, 0 +_08009B54: .4byte 0x0300319C +_08009B58: + ldr r0, _08009B60 + str r1, [r0] +_08009B5C: + pop {r0} + bx r0 + .align 2, 0 +_08009B60: .4byte 0x030031E0 + thumb_func_end ClearLinkCallback_2 + + thumb_func_start GetLinkPlayerCount +GetLinkPlayerCount: @ 0x08009B64 + push {lr} + ldr r0, _08009B7C + ldrb r0, [r0] + cmp r0, #0 + bne _08009B84 + ldr r0, _08009B80 + ldr r0, [r0] + movs r1, #0x1c + ands r0, r1 + lsrs r0, r0, #2 + b _08009B8C + .align 2, 0 +_08009B7C: .4byte 0x0300319C +_08009B80: .4byte 0x03003180 +_08009B84: + bl sub_0800FFF4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_08009B8C: + pop {r1} + bx r1 + thumb_func_end GetLinkPlayerCount + + thumb_func_start sub_08009B90 +sub_08009B90: @ 0x08009B90 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r5, r1, #0 + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r2, #0 + cmp r2, r4 + bge _08009BC8 + movs r7, #0xff + ldr r3, _08009BBC +_08009BA8: + ldrh r0, [r3] + adds r1, r7, #0 + ands r1, r0 + cmp r1, r6 + beq _08009BB6 + cmp r1, r5 + bne _08009BC0 +_08009BB6: + movs r0, #1 + b _08009BCC + .align 2, 0 +_08009BBC: .4byte 0x020226A0 +_08009BC0: + adds r3, #0x1c + adds r2, #1 + cmp r2, r4 + blt _08009BA8 +_08009BC8: + movs r0, #1 + rsbs r0, r0, #0 +_08009BCC: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08009B90 + + thumb_func_start sub_08009BD4 +sub_08009BD4: @ 0x08009BD4 + push {r4, r5, lr} + movs r5, #0 + ldr r4, _08009BDC + b _08009BEE + .align 2, 0 +_08009BDC: .4byte 0x020226A0 +_08009BE0: + ldrh r0, [r4, #0x1a] + cmp r0, #1 + beq _08009BEA + movs r0, #1 + b _08009BFC +_08009BEA: + adds r4, #0x1c + adds r5, #1 +_08009BEE: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r5, r0 + blt _08009BE0 + movs r0, #0 +_08009BFC: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08009BD4 + + thumb_func_start sub_08009C04 +sub_08009C04: @ 0x08009C04 + push {lr} + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bne _08009C1E + movs r0, #2 + movs r1, #1 + bl sub_08009B90 + cmp r0, #0 + bge _08009C22 +_08009C1E: + movs r0, #0 + b _08009C24 +_08009C22: + movs r0, #1 +_08009C24: + pop {r1} + bx r1 + thumb_func_end sub_08009C04 + + thumb_func_start Link_AnyPartnersPlayingRubyOrSapphire +Link_AnyPartnersPlayingRubyOrSapphire: @ 0x08009C28 + push {lr} + movs r0, #2 + movs r1, #1 + bl sub_08009B90 + cmp r0, #0 + bge _08009C3A + movs r0, #0 + b _08009C3C +_08009C3A: + movs r0, #1 +_08009C3C: + pop {r1} + bx r1 + thumb_func_end Link_AnyPartnersPlayingRubyOrSapphire + + thumb_func_start sub_08009C40 +sub_08009C40: @ 0x08009C40 + push {lr} + movs r0, #4 + movs r1, #5 + bl sub_08009B90 + adds r2, r0, #0 + cmp r2, #0 + blt _08009C68 + ldr r0, _08009C64 + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r0, [r1, #0x1a] + cmp r0, #1 + bne _08009C68 + movs r0, #1 + b _08009C6A + .align 2, 0 +_08009C64: .4byte 0x020226A0 +_08009C68: + movs r0, #0 +_08009C6A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08009C40 + + thumb_func_start OpenLinkTimed +OpenLinkTimed: @ 0x08009C70 + push {lr} + ldr r0, _08009C84 + movs r1, #0 + str r1, [r0] + ldr r0, _08009C88 + strh r1, [r0] + bl OpenLink + pop {r0} + bx r0 + .align 2, 0 +_08009C84: .4byte 0x03000D5C +_08009C88: .4byte 0x02022680 + thumb_func_end OpenLinkTimed + + thumb_func_start GetLinkPlayerDataExchangeStatusTimed +GetLinkPlayerDataExchangeStatusTimed: @ 0x08009C8C + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + movs r7, #0 + ldr r0, _08009CB8 + ldrb r4, [r0] + cmp r4, #1 + beq _08009C9E + b _08009DD8 +_08009C9E: + bl GetLinkPlayerCount_2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r5, r0 + bgt _08009CAE + cmp r0, r6 + ble _08009CC0 +_08009CAE: + ldr r1, _08009CBC + movs r0, #6 + str r0, [r1] + b _08009DF2 + .align 2, 0 +_08009CB8: .4byte 0x030031C4 +_08009CBC: .4byte 0x03000D5C +_08009CC0: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08009CD2 + ldr r0, _08009CDC + strb r4, [r0] + bl CloseLink +_08009CD2: + movs r6, #0 + ldr r4, _08009CE0 + movs r5, #0 + b _08009CF8 + .align 2, 0 +_08009CDC: .4byte 0x0300310C +_08009CE0: .4byte 0x020226A0 +_08009CE4: + adds r0, r4, #0 + adds r0, #0x14 + adds r0, r5, r0 + ldr r1, [r0] + ldr r0, [r4, #0x14] + cmp r1, r0 + bne _08009CF4 + adds r7, #1 +_08009CF4: + adds r5, #0x1c + adds r6, #1 +_08009CF8: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r6, r0 + blt _08009CE4 + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r7, r0 + bne _08009D70 + ldr r0, _08009D30 + ldr r1, [r0, #0x14] + ldr r0, _08009D34 + cmp r1, r0 + bne _08009D60 + bl sub_0807A198 + cmp r0, #1 + beq _08009D48 + cmp r0, #1 + bgt _08009D3C + cmp r0, #0 + beq _08009D60 + ldr r3, _08009D38 + b _08009DF0 + .align 2, 0 +_08009D30: .4byte 0x020226A0 +_08009D34: .4byte 0x00001133 +_08009D38: .4byte 0x03000D5C +_08009D3C: + cmp r0, #2 + beq _08009D54 + ldr r3, _08009D44 + b _08009DF0 + .align 2, 0 +_08009D44: .4byte 0x03000D5C +_08009D48: + ldr r1, _08009D50 + movs r0, #4 + b _08009D64 + .align 2, 0 +_08009D50: .4byte 0x03000D5C +_08009D54: + ldr r1, _08009D5C + movs r0, #5 + b _08009D64 + .align 2, 0 +_08009D5C: .4byte 0x03000D5C +_08009D60: + ldr r1, _08009D6C + movs r0, #1 +_08009D64: + str r0, [r1] + adds r3, r1, #0 + b _08009DF0 + .align 2, 0 +_08009D6C: .4byte 0x03000D5C +_08009D70: + ldr r6, _08009DC4 + movs r0, #3 + str r0, [r6] + ldr r4, _08009DC8 + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r4, #0x14 + adds r1, r1, r4 + ldr r5, [r1] + bl GetMultiplayerId + movs r1, #1 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldr r1, [r1] + ldr r2, _08009DCC + cmp r5, r2 + bne _08009DAE + ldr r0, _08009DD0 + cmp r1, r0 + beq _08009DBA +_08009DAE: + ldr r0, _08009DD0 + adds r3, r6, #0 + cmp r5, r0 + bne _08009DF0 + cmp r1, r2 + bne _08009DF0 +_08009DBA: + ldr r1, _08009DD4 + movs r0, #3 + strh r0, [r1] + ldr r3, _08009DC4 + b _08009DF0 + .align 2, 0 +_08009DC4: .4byte 0x03000D5C +_08009DC8: .4byte 0x020226A0 +_08009DCC: .4byte 0x00002266 +_08009DD0: .4byte 0x00002277 +_08009DD4: .4byte 0x02037282 +_08009DD8: + ldr r0, _08009DF8 + ldrh r1, [r0] + adds r1, #1 + strh r1, [r0] + lsls r1, r1, #0x10 + movs r0, #0x96 + lsls r0, r0, #0x12 + ldr r3, _08009DFC + cmp r1, r0 + bls _08009DF0 + movs r0, #2 + str r0, [r3] +_08009DF0: + ldrb r0, [r3] +_08009DF2: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08009DF8: .4byte 0x02022680 +_08009DFC: .4byte 0x03000D5C + thumb_func_end GetLinkPlayerDataExchangeStatusTimed + + thumb_func_start IsLinkPlayerDataExchangeComplete +IsLinkPlayerDataExchangeComplete: @ 0x08009E00 + push {r4, r5, r6, lr} + movs r6, #0 + movs r4, #0 + ldr r5, _08009E0C + b _08009E30 + .align 2, 0 +_08009E0C: .4byte 0x020226A0 +_08009E10: + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + adds r1, r5, #0 + adds r1, #0x14 + adds r0, r0, r1 + ldr r1, [r0] + ldr r0, [r5, #0x14] + cmp r1, r0 + bne _08009E2A + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_08009E2A: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_08009E30: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + blo _08009E10 + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r6, r0 + bne _08009E54 + movs r2, #1 + ldr r0, _08009E50 + str r2, [r0] + b _08009E5C + .align 2, 0 +_08009E50: .4byte 0x03000D5C +_08009E54: + movs r2, #0 + ldr r1, _08009E64 + movs r0, #3 + str r0, [r1] +_08009E5C: + adds r0, r2, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08009E64: .4byte 0x03000D5C + thumb_func_end IsLinkPlayerDataExchangeComplete + + thumb_func_start GetLinkPlayerTrainerId +GetLinkPlayerTrainerId: @ 0x08009E68 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08009E7C + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r2, #4 + adds r1, r1, r2 + ldr r0, [r1] + bx lr + .align 2, 0 +_08009E7C: .4byte 0x020226A0 + thumb_func_end GetLinkPlayerTrainerId + + thumb_func_start ResetLinkPlayers +ResetLinkPlayers: @ 0x08009E80 + push {r4, r5, lr} + ldr r5, _08009EA0 + movs r4, #4 +_08009E86: + adds r0, r5, #0 + movs r1, #0 + movs r2, #0x1c + bl memset + adds r5, #0x1c + subs r4, #1 + cmp r4, #0 + bge _08009E86 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08009EA0: .4byte 0x020226A0 + thumb_func_end ResetLinkPlayers + + thumb_func_start ResetBlockSend +ResetBlockSend: @ 0x08009EA4 + ldr r1, _08009EB4 + movs r0, #0 + strb r0, [r1, #8] + strh r0, [r1] + strh r0, [r1, #2] + str r0, [r1, #4] + bx lr + .align 2, 0 +_08009EB4: .4byte 0x03000D10 + thumb_func_end ResetBlockSend + + thumb_func_start InitBlockSend +InitBlockSend: @ 0x08009EB8 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r6, r1, #0 + ldr r4, _08009ECC + ldrb r5, [r4, #8] + cmp r5, #0 + beq _08009ED0 + movs r0, #0 + b _08009F0E + .align 2, 0 +_08009ECC: .4byte 0x03000D10 +_08009ED0: + bl GetMultiplayerId + strb r0, [r4, #9] + movs r0, #1 + strb r0, [r4, #8] + strh r6, [r4, #2] + strh r5, [r4] + adds r0, #0xff + cmp r6, r0 + bls _08009EE8 + str r7, [r4, #4] + b _08009EFA +_08009EE8: + ldr r5, _08009F14 + cmp r7, r5 + beq _08009EF8 + adds r0, r5, #0 + adds r1, r7, #0 + adds r2, r6, #0 + bl memcpy +_08009EF8: + str r5, [r4, #4] +_08009EFA: + ldr r0, _08009F18 + bl BuildSendCmd + ldr r1, _08009F1C + ldr r0, _08009F20 + str r0, [r1] + ldr r1, _08009F24 + movs r0, #0 + str r0, [r1] + movs r0, #1 +_08009F0E: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08009F14: .4byte 0x0202257C +_08009F18: .4byte 0x0000BBBB +_08009F1C: .4byte 0x030031E0 +_08009F20: .4byte 0x08009F29 +_08009F24: .4byte 0x03000D50 + thumb_func_end InitBlockSend + + thumb_func_start LinkCB_BlockSendBegin +LinkCB_BlockSendBegin: @ 0x08009F28 + push {lr} + ldr r1, _08009F40 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + cmp r0, #2 + bls _08009F3C + ldr r1, _08009F44 + ldr r0, _08009F48 + str r0, [r1] +_08009F3C: + pop {r0} + bx r0 + .align 2, 0 +_08009F40: .4byte 0x03000D50 +_08009F44: .4byte 0x030031E0 +_08009F48: .4byte 0x08009F4D + thumb_func_end LinkCB_BlockSendBegin + + thumb_func_start LinkCB_BlockSend +LinkCB_BlockSend: @ 0x08009F4C + push {r4, r5, r6, lr} + ldr r0, _08009F9C + ldr r5, [r0, #4] + ldr r2, _08009FA0 + ldr r1, _08009FA4 + strh r1, [r2] + movs r3, #0 + adds r4, r0, #0 + adds r6, r4, #0 + adds r2, #2 +_08009F60: + lsls r0, r3, #1 + ldrh r1, [r6] + adds r0, r0, r1 + adds r0, r0, r5 + ldrb r1, [r0, #1] + lsls r1, r1, #8 + ldrb r0, [r0] + orrs r0, r1 + strh r0, [r2] + adds r2, #2 + adds r3, #1 + cmp r3, #6 + ble _08009F60 + ldrh r0, [r4] + adds r0, #0xe + strh r0, [r4] + ldrh r1, [r4, #2] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r1, r0 + bhi _08009F94 + movs r0, #0 + strb r0, [r4, #8] + ldr r1, _08009FA8 + ldr r0, _08009FAC + str r0, [r1] +_08009F94: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08009F9C: .4byte 0x03000D10 +_08009FA0: .4byte 0x030031B0 +_08009FA4: .4byte 0x00008888 +_08009FA8: .4byte 0x030031E0 +_08009FAC: .4byte 0x08009FB1 + thumb_func_end LinkCB_BlockSend + + thumb_func_start LinkCB_BlockSendEnd +LinkCB_BlockSendEnd: @ 0x08009FB0 + ldr r1, _08009FB8 + movs r0, #0 + str r0, [r1] + bx lr + .align 2, 0 +_08009FB8: .4byte 0x030031E0 + thumb_func_end LinkCB_BlockSendEnd + + thumb_func_start sub_08009FBC +sub_08009FBC: @ 0x08009FBC + push {lr} + bl GetMultiplayerId + ldr r0, _08009FD4 + bl BuildSendCmd + ldr r1, _08009FD8 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08009FD4: .4byte 0x00004444 +_08009FD8: .4byte 0x02022078 + thumb_func_end sub_08009FBC + + thumb_func_start sub_08009FDC +sub_08009FDC: @ 0x08009FDC + push {lr} + ldr r1, _08009FF4 + movs r0, #0 + str r0, [r1] + ldr r0, _08009FF8 + ldrb r0, [r0] + cmp r0, #0 + beq _08009FFC + bl sub_0800F334 + b _0800A002 + .align 2, 0 +_08009FF4: .4byte 0x02022078 +_08009FF8: .4byte 0x0300319C +_08009FFC: + ldr r1, _0800A008 + ldr r0, _0800A00C + str r0, [r1] +_0800A002: + pop {r0} + bx r0 + .align 2, 0 +_0800A008: .4byte 0x030031E0 +_0800A00C: .4byte 0x08009FBD + thumb_func_end sub_08009FDC + + thumb_func_start sub_0800A010 +sub_0800A010: @ 0x0800A010 + ldr r0, _0800A018 + ldr r0, [r0] + bx lr + .align 2, 0 +_0800A018: .4byte 0x02022078 + thumb_func_end sub_0800A010 + + thumb_func_start sub_0800A01C +sub_0800A01C: @ 0x0800A01C + push {lr} + ldr r0, _0800A028 + bl BuildSendCmd + pop {r0} + bx r0 + .align 2, 0 +_0800A028: .4byte 0x0000AAAA + thumb_func_end sub_0800A01C + + thumb_func_start GetMultiplayerId +GetMultiplayerId: @ 0x0800A02C + push {lr} + ldr r0, _0800A040 + ldrb r0, [r0] + cmp r0, #1 + beq _0800A048 + ldr r0, _0800A044 + ldr r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + b _0800A050 + .align 2, 0 +_0800A040: .4byte 0x0300319C +_0800A044: .4byte 0x04000128 +_0800A048: + bl rfu_get_multiplayer_id + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_0800A050: + pop {r1} + bx r1 + thumb_func_end GetMultiplayerId + + thumb_func_start bitmask_all_link_players_but_self +bitmask_all_link_players_but_self: @ 0x0800A054 + push {lr} + bl GetMultiplayerId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #1 + lsls r0, r1 + movs r1, #0xf + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + thumb_func_end bitmask_all_link_players_but_self + + thumb_func_start SendBlock +SendBlock: @ 0x0800A070 + push {lr} + adds r3, r1, #0 + lsls r2, r2, #0x10 + lsrs r1, r2, #0x10 + ldr r0, _0800A088 + ldrb r0, [r0] + cmp r0, #1 + beq _0800A08C + adds r0, r3, #0 + bl InitBlockSend + b _0800A092 + .align 2, 0 +_0800A088: .4byte 0x0300319C +_0800A08C: + adds r0, r3, #0 + bl sub_0800F968 +_0800A092: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SendBlock + + thumb_func_start sub_0800A09C +sub_0800A09C: @ 0x0800A09C + push {lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r2, r1, #0 + ldr r0, _0800A0B8 + ldrb r0, [r0] + cmp r0, #1 + bne _0800A0BC + adds r0, r1, #0 + bl sub_0800FC00 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0800A0D8 + .align 2, 0 +_0800A0B8: .4byte 0x0300319C +_0800A0BC: + ldr r0, _0800A0C8 + ldr r0, [r0] + cmp r0, #0 + beq _0800A0CC + movs r0, #0 + b _0800A0D8 + .align 2, 0 +_0800A0C8: .4byte 0x030031E0 +_0800A0CC: + ldr r0, _0800A0DC + strb r2, [r0] + ldr r0, _0800A0E0 + bl BuildSendCmd + movs r0, #1 +_0800A0D8: + pop {r1} + bx r1 + .align 2, 0 +_0800A0DC: .4byte 0x030031F0 +_0800A0E0: .4byte 0x0000CCCC + thumb_func_end sub_0800A09C + + thumb_func_start IsLinkTaskFinished +IsLinkTaskFinished: @ 0x0800A0E4 + push {lr} + ldr r0, _0800A0F8 + ldrb r0, [r0] + cmp r0, #1 + bne _0800A0FC + bl sub_08010000 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0800A10A + .align 2, 0 +_0800A0F8: .4byte 0x0300319C +_0800A0FC: + movs r1, #0 + ldr r0, _0800A110 + ldr r0, [r0] + cmp r0, #0 + bne _0800A108 + movs r1, #1 +_0800A108: + adds r0, r1, #0 +_0800A10A: + pop {r1} + bx r1 + .align 2, 0 +_0800A110: .4byte 0x030031E0 + thumb_func_end IsLinkTaskFinished + + thumb_func_start GetBlockReceivedStatus +GetBlockReceivedStatus: @ 0x0800A114 + push {lr} + ldr r0, _0800A138 + ldrb r0, [r0] + cmp r0, #1 + beq _0800A140 + ldr r2, _0800A13C + ldrb r0, [r2, #3] + lsls r0, r0, #3 + ldrb r1, [r2, #2] + lsls r1, r1, #2 + orrs r0, r1 + ldrb r1, [r2, #1] + lsls r1, r1, #1 + orrs r0, r1 + ldrb r1, [r2] + orrs r0, r1 + b _0800A144 + .align 2, 0 +_0800A138: .4byte 0x0300319C +_0800A13C: .4byte 0x0300311C +_0800A140: + bl sub_0800F7BC +_0800A144: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + thumb_func_end GetBlockReceivedStatus + + thumb_func_start SetBlockReceivedFlag +SetBlockReceivedFlag: @ 0x0800A14C + push {lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r0, _0800A164 + ldrb r0, [r0] + cmp r0, #1 + bne _0800A168 + adds r0, r1, #0 + bl sub_0800F1BC + b _0800A170 + .align 2, 0 +_0800A164: .4byte 0x0300319C +_0800A168: + ldr r0, _0800A174 + adds r0, r1, r0 + movs r1, #1 + strb r1, [r0] +_0800A170: + pop {r0} + bx r0 + .align 2, 0 +_0800A174: .4byte 0x0300311C + thumb_func_end SetBlockReceivedFlag + + thumb_func_start ResetBlockReceivedFlags +ResetBlockReceivedFlags: @ 0x0800A178 + push {r4, lr} + ldr r0, _0800A194 + ldrb r0, [r0] + cmp r0, #1 + bne _0800A198 + movs r4, #0 +_0800A184: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl sub_0800F1E8 + adds r4, #1 + cmp r4, #4 + ble _0800A184 + b _0800A1A6 + .align 2, 0 +_0800A194: .4byte 0x0300319C +_0800A198: + ldr r1, _0800A1AC + movs r2, #0 + adds r0, r1, #3 +_0800A19E: + strb r2, [r0] + subs r0, #1 + cmp r0, r1 + bge _0800A19E +_0800A1A6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800A1AC: .4byte 0x0300311C + thumb_func_end ResetBlockReceivedFlags + + thumb_func_start ResetBlockReceivedFlag +ResetBlockReceivedFlag: @ 0x0800A1B0 + push {lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r0, _0800A1C8 + ldrb r0, [r0] + cmp r0, #1 + bne _0800A1CC + adds r0, r1, #0 + bl sub_0800F1E8 + b _0800A1DA + .align 2, 0 +_0800A1C8: .4byte 0x0300319C +_0800A1CC: + ldr r0, _0800A1E0 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0 + beq _0800A1DA + movs r0, #0 + strb r0, [r1] +_0800A1DA: + pop {r0} + bx r0 + .align 2, 0 +_0800A1E0: .4byte 0x0300311C + thumb_func_end ResetBlockReceivedFlag + + thumb_func_start CheckShouldAdvanceLinkState +CheckShouldAdvanceLinkState: @ 0x0800A1E4 + push {lr} + ldr r0, _0800A204 + ldr r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0800A200 + movs r0, #0x1c + ands r1, r0 + cmp r1, #4 + bls _0800A200 + ldr r1, _0800A208 + movs r0, #1 + strb r0, [r1] +_0800A200: + pop {r0} + bx r0 + .align 2, 0 +_0800A204: .4byte 0x03003180 +_0800A208: .4byte 0x030031E4 + thumb_func_end CheckShouldAdvanceLinkState + + thumb_func_start LinkTestCalcBlockChecksum +LinkTestCalcBlockChecksum: @ 0x0800A20C + push {r4, lr} + adds r4, r0, #0 + lsls r1, r1, #0x10 + movs r3, #0 + movs r2, #0 + lsrs r1, r1, #0x11 + cmp r3, r1 + bhs _0800A232 +_0800A21C: + lsls r0, r2, #1 + adds r0, r0, r4 + ldrh r0, [r0] + adds r0, r3, r0 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, r1 + blo _0800A21C +_0800A232: + adds r0, r3, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end LinkTestCalcBlockChecksum + + thumb_func_start LinkTest_prnthexchar +LinkTest_prnthexchar: @ 0x0800A23C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + ldr r4, _0800A270 + ldr r3, [r4] + lsls r3, r3, #0xb + movs r5, #0xc0 + lsls r5, r5, #0x13 + adds r3, r3, r5 + lsrs r2, r2, #0x13 + adds r2, r2, r1 + lsls r2, r2, #1 + adds r2, r2, r3 + ldr r3, [r4, #4] + lsls r3, r3, #0xc + ldr r1, [r4, #8] + adds r1, #1 + adds r0, r0, r1 + orrs r3, r0 + strh r3, [r2] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0800A270: .4byte 0x030031D0 + thumb_func_end LinkTest_prnthexchar + + thumb_func_start LinkTest_prntchar +LinkTest_prntchar: @ 0x0800A274 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + ldr r4, _0800A2A8 + ldr r3, [r4] + lsls r3, r3, #0xb + movs r5, #0xc0 + lsls r5, r5, #0x13 + adds r3, r3, r5 + lsrs r2, r2, #0x13 + adds r2, r2, r1 + lsls r2, r2, #1 + adds r2, r2, r3 + ldr r3, [r4, #4] + lsls r3, r3, #0xc + ldr r1, [r4, #8] + adds r1, r1, r0 + orrs r3, r1 + strh r3, [r2] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0800A2A8: .4byte 0x030031D0 + thumb_func_end LinkTest_prntchar + + thumb_func_start LinkTest_prnthex +LinkTest_prnthex: @ 0x0800A2AC + push {r4, r5, r6, r7, lr} + sub sp, #0x10 + adds r5, r0, #0 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r4, #0 + cmp r4, r3 + bge _0800A2D8 + movs r2, #0xf +_0800A2C6: + mov r0, sp + adds r1, r0, r4 + adds r0, r5, #0 + ands r0, r2 + strb r0, [r1] + lsrs r5, r5, #4 + adds r4, #1 + cmp r4, r3 + blt _0800A2C6 +_0800A2D8: + subs r4, r3, #1 + cmp r4, #0 + blt _0800A2F8 +_0800A2DE: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + adds r1, r6, #0 + adds r2, r7, #0 + bl LinkTest_prnthexchar + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + subs r4, #1 + cmp r4, #0 + bge _0800A2DE +_0800A2F8: + add sp, #0x10 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end LinkTest_prnthex + + thumb_func_start LinkTest_prntint +LinkTest_prntint: @ 0x0800A300 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + adds r6, r0, #0 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sb, r2 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r8, r3 + movs r0, #1 + rsbs r0, r0, #0 + str r0, [sp, #0x10] + cmp r6, #0 + bge _0800A32C + str r7, [sp, #0x10] + rsbs r6, r6, #0 +_0800A32C: + movs r5, #0 + movs r1, #1 + rsbs r1, r1, #0 + add r1, r8 + mov sl, r1 + cmp r5, r8 + bge _0800A358 +_0800A33A: + mov r0, sp + adds r4, r0, r5 + adds r0, r6, #0 + movs r1, #0xa + bl __modsi3 + strb r0, [r4] + adds r0, r6, #0 + movs r1, #0xa + bl __divsi3 + adds r6, r0, #0 + adds r5, #1 + cmp r5, r8 + blt _0800A33A +_0800A358: + mov r5, sl + cmp r5, #0 + blt _0800A378 +_0800A35E: + mov r1, sp + adds r0, r1, r5 + ldrb r0, [r0] + adds r1, r7, #0 + mov r2, sb + bl LinkTest_prnthexchar + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + subs r5, #1 + cmp r5, #0 + bge _0800A35E +_0800A378: + movs r0, #1 + rsbs r0, r0, #0 + ldr r1, [sp, #0x10] + cmp r1, r0 + beq _0800A38E + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0xa + mov r2, sb + bl LinkTest_prnthexchar +_0800A38E: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkTest_prntint + + thumb_func_start LinkTest_prntstr +LinkTest_prntstr: @ 0x0800A3A0 + push {r4, r5, r6, r7, lr} + adds r3, r0, #0 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r6, #0 + ldrb r0, [r3] + cmp r0, #0 + beq _0800A3E0 + adds r4, r3, #0 + lsls r5, r2, #0x18 +_0800A3B8: + ldrb r0, [r4] + cmp r0, #0xa + bne _0800A3C8 + movs r0, #0x80 + lsls r0, r0, #0x11 + adds r5, r5, r0 + movs r6, #0 + b _0800A3D8 +_0800A3C8: + ldrb r0, [r4] + adds r1, r7, r6 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsrs r2, r5, #0x18 + bl LinkTest_prntchar + adds r6, #1 +_0800A3D8: + adds r4, #1 + ldrb r0, [r4] + cmp r0, #0 + bne _0800A3B8 +_0800A3E0: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LinkTest_prntstr + + thumb_func_start LinkCB_RequestPlayerDataExchange +LinkCB_RequestPlayerDataExchange: @ 0x0800A3E8 + push {lr} + ldr r0, _0800A408 + ldr r0, [r0] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0800A3FC + ldr r0, _0800A40C + bl BuildSendCmd +_0800A3FC: + ldr r1, _0800A410 + movs r0, #0 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0800A408: .4byte 0x03003180 +_0800A40C: .4byte 0x00002222 +_0800A410: .4byte 0x030031E0 + thumb_func_end LinkCB_RequestPlayerDataExchange + + thumb_func_start Task_PrintTestData +Task_PrintTestData: @ 0x0800A414 + push {r4, r5, r6, lr} + sub sp, #0x20 + ldr r1, _0800A534 + mov r0, sp + bl strcpy + mov r0, sp + movs r1, #5 + movs r2, #2 + bl LinkTest_prntstr + ldr r0, _0800A538 + ldrb r0, [r0] + movs r1, #2 + movs r2, #1 + movs r3, #2 + bl LinkTest_prnthex + ldr r4, _0800A53C + ldr r0, [r4] + movs r1, #0xf + movs r2, #1 + movs r3, #8 + bl LinkTest_prnthex + ldr r0, _0800A540 + ldrb r0, [r0, #1] + movs r1, #2 + movs r2, #0xa + movs r3, #2 + bl LinkTest_prnthex + ldr r0, [r4] + movs r1, #0x1c + ands r0, r1 + lsrs r0, r0, #2 + movs r1, #0xf + movs r2, #0xa + movs r3, #2 + bl LinkTest_prnthex + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0xf + movs r2, #0xc + movs r3, #2 + bl LinkTest_prnthex + ldr r0, _0800A544 + ldrb r0, [r0] + movs r1, #0x19 + movs r2, #1 + movs r3, #2 + bl LinkTest_prnthex + ldr r0, _0800A548 + ldrb r0, [r0] + movs r1, #0x19 + movs r2, #2 + movs r3, #2 + bl LinkTest_prnthex + bl GetBlockReceivedStatus + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0xf + movs r2, #5 + movs r3, #2 + bl LinkTest_prnthex + ldr r0, _0800A54C + ldr r0, [r0] + movs r1, #2 + movs r2, #0xc + movs r3, #8 + bl LinkTest_prnthex + ldr r0, _0800A550 + ldr r0, [r0] + movs r1, #2 + movs r2, #0xd + movs r3, #8 + bl LinkTest_prnthex + bl GetSioMultiSI + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x19 + movs r2, #5 + movs r3, #1 + bl LinkTest_prnthex + bl IsSioMultiMaster + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x19 + movs r2, #6 + movs r3, #1 + bl LinkTest_prnthex + bl IsLinkConnectionEstablished + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x19 + movs r2, #7 + movs r3, #1 + bl LinkTest_prnthex + bl HasLinkErrorOccurred + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x19 + movs r2, #8 + movs r3, #1 + bl LinkTest_prnthex + movs r6, #0 + movs r5, #0x80 + lsls r5, r5, #0x13 + ldr r4, _0800A554 +_0800A512: + ldrh r0, [r4] + lsrs r2, r5, #0x18 + movs r1, #0xa + movs r3, #4 + bl LinkTest_prnthex + movs r0, #0x80 + lsls r0, r0, #0x11 + adds r5, r5, r0 + adds r4, #2 + adds r6, #1 + cmp r6, #3 + ble _0800A512 + add sp, #0x20 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0800A534: .4byte 0x082BFF34 +_0800A538: .4byte 0x030031E4 +_0800A53C: .4byte 0x03003180 +_0800A540: .4byte 0x03003210 +_0800A544: .4byte 0x03003200 +_0800A548: .4byte 0x030041D0 +_0800A54C: .4byte 0x030030CC +_0800A550: .4byte 0x03003110 +_0800A554: .4byte 0x030031E8 + thumb_func_end Task_PrintTestData + + thumb_func_start SetLinkDebugValues +SetLinkDebugValues: @ 0x0800A558 + ldr r2, _0800A564 + str r0, [r2] + ldr r0, _0800A568 + str r1, [r0] + bx lr + .align 2, 0 +_0800A564: .4byte 0x030030CC +_0800A568: .4byte 0x03003110 + thumb_func_end SetLinkDebugValues + + thumb_func_start sub_0800A56C +sub_0800A56C: @ 0x0800A56C + push {r4, lr} + movs r1, #0 + movs r2, #0 + ldr r0, _0800A598 + ldrb r0, [r0] + cmp r1, r0 + bge _0800A58E + movs r4, #1 + adds r3, r0, #0 +_0800A57E: + adds r0, r4, #0 + lsls r0, r2 + orrs r1, r0 + lsls r0, r1, #0x18 + lsrs r1, r0, #0x18 + adds r2, #1 + cmp r2, r3 + blt _0800A57E +_0800A58E: + adds r0, r1, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0800A598: .4byte 0x030031A0 + thumb_func_end sub_0800A56C + + thumb_func_start sub_0800A59C +sub_0800A59C: @ 0x0800A59C + push {r4, r5, r6, lr} + movs r4, #0 + movs r5, #0 + movs r6, #1 + b _0800A5B2 +_0800A5A6: + adds r0, r6, #0 + lsls r0, r5 + orrs r4, r0 + lsls r0, r4, #0x18 + lsrs r4, r0, #0x18 + adds r5, #1 +_0800A5B2: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r5, r0 + blt _0800A5A6 + adds r0, r4, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0800A59C + + thumb_func_start sub_0800A5C8 +sub_0800A5C8: @ 0x0800A5C8 + push {r4, r5, r6, r7, lr} + ldr r1, _0800A5FC + strb r0, [r1] + bl GetMultiplayerId + ldr r1, _0800A600 + strb r0, [r1] + ldr r4, _0800A604 + ldr r3, _0800A608 + movs r2, #4 +_0800A5DC: + adds r0, r3, #0 + adds r1, r4, #0 + ldm r1!, {r5, r6, r7} + stm r0!, {r5, r6, r7} + ldm r1!, {r5, r6, r7} + stm r0!, {r5, r6, r7} + ldr r1, [r1] + str r1, [r0] + adds r4, #0x1c + adds r3, #0x1c + subs r2, #1 + cmp r2, #0 + bge _0800A5DC + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800A5FC: .4byte 0x030031A0 +_0800A600: .4byte 0x030031C0 +_0800A604: .4byte 0x020226A0 +_0800A608: .4byte 0x0202272C + thumb_func_end sub_0800A5C8 + + thumb_func_start GetSavedPlayerCount +GetSavedPlayerCount: @ 0x0800A60C + ldr r0, _0800A614 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0800A614: .4byte 0x030031A0 + thumb_func_end GetSavedPlayerCount + + thumb_func_start sub_0800A618 +sub_0800A618: @ 0x0800A618 + ldr r0, _0800A620 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0800A620: .4byte 0x030031C0 + thumb_func_end sub_0800A618 + + thumb_func_start sub_0800A624 +sub_0800A624: @ 0x0800A624 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + movs r3, #0 + ldr r0, _0800A694 + ldrb r1, [r0] + mov sb, r0 + cmp r3, r1 + bge _0800A678 + ldr r0, _0800A698 + mov ip, r0 + ldr r0, _0800A69C + ldr r2, _0800A6A0 + mov r8, r2 + ldr r7, _0800A6A4 + mov r6, ip + adds r6, #0x14 + adds r5, r0, #4 + movs r4, #0 + adds r2, r1, #0 +_0800A64E: + mov r0, ip + adds r0, #4 + adds r0, r4, r0 + ldr r1, [r0] + ldr r0, [r5] + cmp r1, r0 + bne _0800A66C + ldrh r0, [r7] + cmp r0, r8 + bne _0800A66A + adds r1, r0, #0 + ldr r0, [r6] + cmp r1, r0 + bne _0800A66C +_0800A66A: + adds r3, #1 +_0800A66C: + adds r6, #0x1c + adds r5, #0x1c + adds r4, #0x1c + subs r2, #1 + cmp r2, #0 + bne _0800A64E +_0800A678: + mov r0, sb + ldrb r0, [r0] + cmp r3, r0 + bne _0800A6A8 + bl GetLinkPlayerCount_2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, sb + ldrb r1, [r1] + cmp r0, r1 + bne _0800A6A8 + movs r0, #1 + b _0800A6AA + .align 2, 0 +_0800A694: .4byte 0x030031A0 +_0800A698: .4byte 0x020226A0 +_0800A69C: .4byte 0x0202272C +_0800A6A0: .4byte 0x00002288 +_0800A6A4: .4byte 0x0202267E +_0800A6A8: + movs r0, #0 +_0800A6AA: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0800A624 + + thumb_func_start sub_0800A6B8 +sub_0800A6B8: @ 0x0800A6B8 + push {r4, r5, lr} + ldr r5, _0800A6D8 + movs r4, #3 +_0800A6BE: + adds r0, r5, #0 + movs r1, #0 + movs r2, #0x1c + bl CpuSet + adds r5, #0x1c + subs r4, #1 + cmp r4, #0 + bge _0800A6BE + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0800A6D8: .4byte 0x0202272C + thumb_func_end sub_0800A6B8 + + thumb_func_start sub_0800A6DC +sub_0800A6DC: @ 0x0800A6DC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r4, #0 + ldr r0, _0800A748 + ldrb r0, [r0] + cmp r4, r0 + bhs _0800A73C + ldr r6, _0800A74C + ldr r5, _0800A750 + movs r0, #8 + adds r0, r0, r6 + mov r8, r0 + adds r7, r5, #0 + adds r7, #8 +_0800A6FA: + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r2, r0, #2 + adds r1, r6, #4 + adds r1, r2, r1 + adds r0, r5, #4 + adds r0, r2, r0 + ldr r1, [r1] + ldr r0, [r0] + cmp r1, r0 + bne _0800A71E + mov r1, r8 + adds r0, r2, r1 + adds r1, r2, r7 + bl StringCompare + cmp r0, #0 + beq _0800A72E +_0800A71E: + ldr r1, _0800A754 + movs r0, #1 + strb r0, [r1] + bl CloseLink + ldr r0, _0800A758 + bl SetMainCallback2 +_0800A72E: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0800A748 + ldrb r0, [r0] + cmp r4, r0 + blo _0800A6FA +_0800A73C: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800A748: .4byte 0x030031A0 +_0800A74C: .4byte 0x0202272C +_0800A750: .4byte 0x020226A0 +_0800A754: .4byte 0x0300310C +_0800A758: .4byte 0x0800AA0D + thumb_func_end sub_0800A6DC + + thumb_func_start sub_0800A75C +sub_0800A75C: @ 0x0800A75C + ldr r0, _0800A768 + movs r1, #0 + strb r1, [r0] + ldr r0, _0800A76C + strb r1, [r0] + bx lr + .align 2, 0 +_0800A768: .4byte 0x030031A0 +_0800A76C: .4byte 0x030031C0 + thumb_func_end sub_0800A75C + + thumb_func_start GetLinkPlayerCount_2 +GetLinkPlayerCount_2: @ 0x0800A770 + ldr r0, _0800A77C + ldr r0, [r0] + movs r1, #0x1c + ands r0, r1 + lsrs r0, r0, #2 + bx lr + .align 2, 0 +_0800A77C: .4byte 0x03003180 + thumb_func_end GetLinkPlayerCount_2 + + thumb_func_start IsLinkMaster +IsLinkMaster: @ 0x0800A780 + push {lr} + ldr r0, _0800A798 + ldrb r0, [r0] + cmp r0, #0 + bne _0800A7A0 + ldr r0, _0800A79C + ldr r0, [r0] + lsrs r0, r0, #5 + movs r1, #1 + ands r0, r1 + b _0800A7A8 + .align 2, 0 +_0800A798: .4byte 0x0300319C +_0800A79C: .4byte 0x03003180 +_0800A7A0: + bl Rfu_IsMaster + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_0800A7A8: + pop {r1} + bx r1 + thumb_func_end IsLinkMaster + + thumb_func_start sub_0800A7AC +sub_0800A7AC: @ 0x0800A7AC + ldr r0, _0800A7B4 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0800A7B4: .4byte 0x03000D58 + thumb_func_end sub_0800A7AC + + thumb_func_start sub_0800A7B8 +sub_0800A7B8: @ 0x0800A7B8 + push {lr} + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldr r0, _0800A7CC + ldrb r0, [r0] + cmp r0, #1 + bne _0800A7D0 + bl task_add_05_task_del_08FA224_when_no_RfuFunc + b _0800A7E4 + .align 2, 0 +_0800A7CC: .4byte 0x0300319C +_0800A7D0: + ldr r2, _0800A7E8 + ldr r1, [r2] + cmp r1, #0 + bne _0800A7E4 + ldr r0, _0800A7EC + str r0, [r2] + ldr r0, _0800A7F0 + strb r1, [r0] + ldr r0, _0800A7F4 + strh r3, [r0] +_0800A7E4: + pop {r0} + bx r0 + .align 2, 0 +_0800A7E8: .4byte 0x030031E0 +_0800A7EC: .4byte 0x0800A845 +_0800A7F0: .4byte 0x03003184 +_0800A7F4: .4byte 0x03003194 + thumb_func_end sub_0800A7B8 + + thumb_func_start sub_0800A7F8 +sub_0800A7F8: @ 0x0800A7F8 + push {lr} + ldr r0, _0800A808 + ldrb r0, [r0] + cmp r0, #1 + bne _0800A80C + bl task_add_05_task_del_08FA224_when_no_RfuFunc + b _0800A834 + .align 2, 0 +_0800A808: .4byte 0x0300319C +_0800A80C: + ldr r2, _0800A820 + ldr r1, [r2] + cmp r1, #0 + beq _0800A828 + ldr r1, _0800A824 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _0800A834 + .align 2, 0 +_0800A820: .4byte 0x030031E0 +_0800A824: .4byte 0x020227C0 +_0800A828: + ldr r0, _0800A838 + str r0, [r2] + ldr r0, _0800A83C + strb r1, [r0] + ldr r0, _0800A840 + strh r1, [r0] +_0800A834: + pop {r0} + bx r0 + .align 2, 0 +_0800A838: .4byte 0x0800A845 +_0800A83C: .4byte 0x03003184 +_0800A840: .4byte 0x03003194 + thumb_func_end sub_0800A7F8 + + thumb_func_start sub_0800A844 +sub_0800A844: @ 0x0800A844 + push {lr} + ldr r0, _0800A860 + ldrb r0, [r0] + cmp r0, #0 + bne _0800A85A + ldr r0, _0800A864 + bl BuildSendCmd + ldr r1, _0800A868 + ldr r0, _0800A86C + str r0, [r1] +_0800A85A: + pop {r0} + bx r0 + .align 2, 0 +_0800A860: .4byte 0x030041D0 +_0800A864: .4byte 0x00005FFF +_0800A868: .4byte 0x030031E0 +_0800A86C: .4byte 0x0800A871 + thumb_func_end sub_0800A844 + + thumb_func_start sub_0800A870 +sub_0800A870: @ 0x0800A870 + push {r4, lr} + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + movs r3, #0 + movs r1, #0 + cmp r3, r2 + bge _0800A894 + ldr r4, _0800A8C0 +_0800A884: + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, #0 + beq _0800A88E + adds r3, #1 +_0800A88E: + adds r1, #1 + cmp r1, r2 + blt _0800A884 +_0800A894: + cmp r3, r2 + bne _0800A8B8 + ldr r2, _0800A8C4 + ldr r0, [r2] + movs r1, #0x21 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2] + ldr r0, _0800A8C8 + movs r4, #1 + strb r4, [r0] + bl CloseLink + ldr r1, _0800A8CC + movs r0, #0 + str r0, [r1] + ldr r0, _0800A8D0 + strb r4, [r0] +_0800A8B8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800A8C0: .4byte 0x03003190 +_0800A8C4: .4byte 0x02022C90 +_0800A8C8: .4byte 0x030027E8 +_0800A8CC: .4byte 0x030031E0 +_0800A8D0: .4byte 0x03003184 + thumb_func_end sub_0800A870 + + thumb_func_start sub_0800A8D4 +sub_0800A8D4: @ 0x0800A8D4 + push {lr} + ldr r0, _0800A8E4 + ldrb r0, [r0] + cmp r0, #1 + bne _0800A8E8 + bl sub_0800FF34 + b _0800A8FA + .align 2, 0 +_0800A8E4: .4byte 0x0300319C +_0800A8E8: + ldr r1, _0800A900 + ldr r0, [r1] + cmp r0, #0 + bne _0800A8F4 + ldr r0, _0800A904 + str r0, [r1] +_0800A8F4: + ldr r1, _0800A908 + movs r0, #0 + strb r0, [r1] +_0800A8FA: + pop {r0} + bx r0 + .align 2, 0 +_0800A900: .4byte 0x030031E0 +_0800A904: .4byte 0x0800A90D +_0800A908: .4byte 0x03003184 + thumb_func_end sub_0800A8D4 + + thumb_func_start sub_0800A90C +sub_0800A90C: @ 0x0800A90C + push {lr} + ldr r0, _0800A928 + ldrb r0, [r0] + cmp r0, #0 + bne _0800A922 + ldr r0, _0800A92C + bl BuildSendCmd + ldr r1, _0800A930 + ldr r0, _0800A934 + str r0, [r1] +_0800A922: + pop {r0} + bx r0 + .align 2, 0 +_0800A928: .4byte 0x030041D0 +_0800A92C: .4byte 0x00002FFE +_0800A930: .4byte 0x030031E0 +_0800A934: .4byte 0x0800A939 + thumb_func_end sub_0800A90C + + thumb_func_start sub_0800A938 +sub_0800A938: @ 0x0800A938 + push {r4, lr} + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + movs r1, #0 + cmp r1, r2 + bhs _0800A962 + ldr r3, _0800A988 + ldrb r0, [r3] + cmp r0, #0 + beq _0800A962 +_0800A950: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, r2 + bhs _0800A962 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, #0 + bne _0800A950 +_0800A962: + cmp r1, r2 + bne _0800A980 + movs r1, #0 + ldr r4, _0800A98C + ldr r3, _0800A988 + movs r2, #0 +_0800A96E: + adds r0, r1, r3 + strb r2, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #3 + bls _0800A96E + movs r0, #0 + str r0, [r4] +_0800A980: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800A988: .4byte 0x0300318C +_0800A98C: .4byte 0x030031E0 + thumb_func_end sub_0800A938 + + thumb_func_start CheckErrorStatus +CheckErrorStatus: @ 0x0800A990 + push {lr} + ldr r0, _0800A9D4 + ldrb r0, [r0] + cmp r0, #0 + beq _0800A9D0 + ldr r0, _0800A9D8 + ldr r2, [r0] + movs r0, #0xfe + lsls r0, r0, #0xb + ands r0, r2 + cmp r0, #0 + beq _0800A9D0 + ldr r0, _0800A9DC + ldrb r0, [r0] + cmp r0, #0 + bne _0800A9C6 + ldr r1, _0800A9E0 + str r2, [r1] + ldr r0, _0800A9E4 + ldrb r0, [r0] + strb r0, [r1, #4] + ldr r0, _0800A9E8 + ldrb r0, [r0] + strb r0, [r1, #5] + ldr r0, _0800A9EC + bl SetMainCallback2 +_0800A9C6: + ldr r1, _0800A9F0 + movs r0, #1 + strb r0, [r1] + bl CloseLink +_0800A9D0: + pop {r0} + bx r0 + .align 2, 0 +_0800A9D4: .4byte 0x0202267C +_0800A9D8: .4byte 0x03003180 +_0800A9DC: .4byte 0x03003198 +_0800A9E0: .4byte 0x020227B8 +_0800A9E4: .4byte 0x030041D0 +_0800A9E8: .4byte 0x03003200 +_0800A9EC: .4byte 0x0800AA0D +_0800A9F0: .4byte 0x0300310C + thumb_func_end CheckErrorStatus + + thumb_func_start sub_0800A9F4 +sub_0800A9F4: @ 0x0800A9F4 + push {r4, lr} + ldr r4, _0800AA08 + str r0, [r4] + strb r1, [r4, #5] + strb r2, [r4, #4] + strb r3, [r4, #6] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800AA08: .4byte 0x020227B8 + thumb_func_end sub_0800A9F4 + + thumb_func_start CB2_LinkError +CB2_LinkError: @ 0x0800AA0C + push {r4, lr} + movs r0, #0 + movs r1, #0 + bl SetGpuReg + ldr r0, _0800AB20 + bl m4aMPlayStop + ldr r0, _0800AB24 + bl m4aMPlayStop + ldr r0, _0800AB28 + bl m4aMPlayStop + ldr r0, _0800AB2C + movs r1, #0xe0 + lsls r1, r1, #9 + bl InitHeap + bl ResetSpriteData + bl FreeAllSpritePalettes + bl ResetPaletteFadeControl + movs r0, #0 + movs r1, #0 + movs r2, #2 + bl FillPalette + bl ResetTasks + bl ScanlineEffect_Stop + ldr r1, _0800AB30 + ldrb r0, [r1] + cmp r0, #0 + beq _0800AA68 + ldr r0, _0800AB34 + ldrb r0, [r0, #6] + cmp r0, #0 + bne _0800AA64 + movs r0, #3 + strb r0, [r1] +_0800AA64: + bl sub_0800E0C8 +_0800AA68: + ldr r0, _0800AB38 + bl SetVBlankCallback + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _0800AB3C + movs r0, #0 + movs r2, #2 + bl InitBgsFromTemplates + ldr r4, _0800AB40 + movs r0, #0x80 + lsls r0, r0, #4 + bl Alloc + adds r1, r0, #0 + str r1, [r4] + movs r0, #1 + bl SetBgTilemapBuffer + ldr r0, _0800AB44 + bl InitWindows + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0800AB18 + bl DeactivateAllTextPrinters + bl reset_temp_tile_data_buffers + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x10 + movs r1, #0 + bl SetGpuReg + movs r0, #0x12 + movs r1, #0 + bl SetGpuReg + movs r0, #0x14 + movs r1, #0 + bl SetGpuReg + movs r0, #0x16 + movs r1, #0 + bl SetGpuReg + movs r1, #0xe0 + lsls r1, r1, #8 + movs r0, #0 + bl ClearGpuRegBits + ldr r0, _0800AB48 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + ldr r1, _0800AB4C + movs r0, #0 + strb r0, [r1] + ldr r0, _0800AB50 + movs r1, #0 + bl CreateTask + bl StopMapMusic + ldr r1, _0800AB54 + movs r0, #0 + str r0, [r1] + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + ldr r0, _0800AB58 + bl SetMainCallback2 +_0800AB18: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800AB20: .4byte 0x03007510 +_0800AB24: .4byte 0x03007550 +_0800AB28: .4byte 0x030075A0 +_0800AB2C: .4byte 0x02000000 +_0800AB30: .4byte 0x0300319C +_0800AB34: .4byte 0x020227B8 +_0800AB38: .4byte 0x08009259 +_0800AB3C: .4byte 0x082BFF4C +_0800AB40: .4byte 0x020227C4 +_0800AB44: .4byte 0x082BFF54 +_0800AB48: .4byte 0x085D7B04 +_0800AB4C: .4byte 0x030027A0 +_0800AB50: .4byte 0x08008FA1 +_0800AB54: .4byte 0x03002360 +_0800AB58: .4byte 0x0800AC7D + thumb_func_end CB2_LinkError + + thumb_func_start sub_0800AB5C +sub_0800AB5C: @ 0x0800AB5C + push {r4, r5, lr} + sub sp, #0xc + ldr r1, _0800ABF8 + movs r0, #0 + movs r2, #0x20 + movs r3, #0 + bl LoadBgTiles + ldr r1, _0800ABFC + movs r5, #0 + str r5, [sp] + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl DecompressAndLoadBgGfxUsingHeap + ldr r1, _0800AC00 + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + movs r0, #1 + bl CopyBgTilemapBufferToVram + ldr r0, _0800AC04 + movs r1, #0 + movs r2, #0x20 + bl LoadPalette + movs r0, #0 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #2 + movs r1, #0 + bl FillWindowPixelBuffer + ldr r4, _0800AC08 + str r4, [sp] + str r5, [sp, #4] + ldr r0, _0800AC0C + str r0, [sp, #8] + movs r0, #0 + movs r1, #3 + movs r2, #0x18 + movs r3, #5 + bl AddTextPrinterParameterized3 + str r4, [sp] + str r5, [sp, #4] + ldr r0, _0800AC10 + str r0, [sp, #8] + movs r0, #2 + movs r1, #3 + movs r2, #3 + movs r3, #2 + bl AddTextPrinterParameterized3 + movs r0, #0 + bl PutWindowTilemap + movs r0, #2 + bl PutWindowTilemap + movs r0, #0 + movs r1, #0 + bl CopyWindowToVram + movs r0, #2 + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0800ABF8: .4byte 0x082BFEB8 +_0800ABFC: .4byte 0x082BF4D8 +_0800AC00: .4byte 0x082BF980 +_0800AC04: .4byte 0x082BF4B8 +_0800AC08: .4byte 0x082BFF74 +_0800AC0C: .4byte 0x082BFE50 +_0800AC10: .4byte 0x082BFE62 + thumb_func_end sub_0800AB5C + + thumb_func_start sub_0800AC14 +sub_0800AC14: @ 0x0800AC14 + push {lr} + sub sp, #0xc + ldr r1, _0800AC70 + movs r0, #0 + movs r2, #0x20 + movs r3, #0 + bl LoadBgTiles + movs r0, #1 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #2 + movs r1, #0 + bl FillWindowPixelBuffer + ldr r0, _0800AC74 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + ldr r0, _0800AC78 + str r0, [sp, #8] + movs r0, #1 + movs r1, #3 + movs r2, #3 + movs r3, #0 + bl AddTextPrinterParameterized3 + movs r0, #1 + bl PutWindowTilemap + movs r0, #2 + bl PutWindowTilemap + movs r0, #1 + movs r1, #0 + bl CopyWindowToVram + movs r0, #2 + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_0800AC70: .4byte 0x082BFEB8 +_0800AC74: .4byte 0x082BFF74 +_0800AC78: .4byte 0x082BFE00 + thumb_func_end sub_0800AC14 + + thumb_func_start CB2_PrintErrorMessage +CB2_PrintErrorMessage: @ 0x0800AC7C + push {r4, lr} + sub sp, #0xc + ldr r0, _0800AC9C + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0x1e + beq _0800ACE8 + cmp r0, #0x1e + bgt _0800ACA0 + cmp r0, #0 + beq _0800ACB4 + cmp r0, #2 + beq _0800ACCE + b _0800AD3C + .align 2, 0 +_0800AC9C: .4byte 0x03002360 +_0800ACA0: + cmp r0, #0x5a + beq _0800ACE8 + cmp r0, #0x5a + bgt _0800ACAE + cmp r0, #0x3c + beq _0800ACE8 + b _0800AD3C +_0800ACAE: + cmp r0, #0x82 + beq _0800ACF0 + b _0800AD3C +_0800ACB4: + ldr r0, _0800ACC4 + ldrb r0, [r0, #6] + cmp r0, #0 + beq _0800ACC8 + bl sub_0800AB5C + b _0800AD3C + .align 2, 0 +_0800ACC4: .4byte 0x020227B8 +_0800ACC8: + bl sub_0800AC14 + b _0800AD3C +_0800ACCE: + movs r0, #0 + bl ShowBg + ldr r0, _0800ACE4 + ldrb r0, [r0, #6] + cmp r0, #0 + beq _0800AD3C + movs r0, #1 + bl ShowBg + b _0800AD3C + .align 2, 0 +_0800ACE4: .4byte 0x020227B8 +_0800ACE8: + movs r0, #0x16 + bl PlaySE + b _0800AD3C +_0800ACF0: + ldr r0, _0800AD14 + ldrb r0, [r0] + cmp r0, #2 + bne _0800AD20 + ldr r0, _0800AD18 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + ldr r0, _0800AD1C + str r0, [sp, #8] + movs r0, #0 + movs r1, #3 + movs r2, #0x18 + movs r3, #0x12 + bl AddTextPrinterParameterized3 + b _0800AD3C + .align 2, 0 +_0800AD14: .4byte 0x0300319C +_0800AD18: .4byte 0x082BFF74 +_0800AD1C: .4byte 0x082BFE9F +_0800AD20: + cmp r0, #1 + bne _0800AD3C + ldr r0, _0800AD70 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + ldr r0, _0800AD74 + str r0, [sp, #8] + movs r0, #0 + movs r1, #3 + movs r2, #0x18 + movs r3, #0x12 + bl AddTextPrinterParameterized3 +_0800AD3C: + ldr r0, _0800AD78 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r0, r2 + ldrb r1, [r1] + cmp r1, #0xa0 + bne _0800ADAC + ldr r4, _0800AD7C + ldrb r2, [r4] + cmp r2, #1 + bne _0800AD84 + ldrh r0, [r0, #0x2e] + ands r2, r0 + cmp r2, #0 + beq _0800AD9E + movs r0, #0x15 + bl PlaySE + movs r0, #0 + strb r0, [r4] + ldr r1, _0800AD80 + movs r0, #0 + strb r0, [r1, #6] + bl sub_0816FEF0 + b _0800AD9E + .align 2, 0 +_0800AD70: .4byte 0x082BFF74 +_0800AD74: .4byte 0x082BFE8D +_0800AD78: .4byte 0x03002360 +_0800AD7C: .4byte 0x0300319C +_0800AD80: .4byte 0x020227B8 +_0800AD84: + cmp r2, #2 + bne _0800AD9E + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0800AD9E + bl rfu_REQ_stopMode + bl rfu_waitREQComplete + bl DoSoftReset +_0800AD9E: + ldr r0, _0800ADC0 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r0, r2 + ldrb r1, [r1] + cmp r1, #0xa0 + beq _0800ADB8 +_0800ADAC: + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r0, r2 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0800ADB8: + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800ADC0: .4byte 0x03002360 + thumb_func_end CB2_PrintErrorMessage + + thumb_func_start GetSioMultiSI +GetSioMultiSI: @ 0x0800ADC4 + ldr r0, _0800ADD0 + ldrh r0, [r0] + lsrs r0, r0, #2 + movs r1, #1 + ands r0, r1 + bx lr + .align 2, 0 +_0800ADD0: .4byte 0x04000128 + thumb_func_end GetSioMultiSI + + thumb_func_start IsSioMultiMaster +IsSioMultiMaster: @ 0x0800ADD4 + push {lr} + movs r3, #0 + ldr r2, _0800ADF8 + ldrh r1, [r2] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0800ADF0 + ldrh r1, [r2] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _0800ADF0 + movs r3, #1 +_0800ADF0: + adds r0, r3, #0 + pop {r1} + bx r1 + .align 2, 0 +_0800ADF8: .4byte 0x04000128 + thumb_func_end IsSioMultiMaster + + thumb_func_start IsLinkConnectionEstablished +IsLinkConnectionEstablished: @ 0x0800ADFC + ldr r0, _0800AE08 + ldr r0, [r0] + lsrs r0, r0, #6 + movs r1, #1 + ands r0, r1 + bx lr + .align 2, 0 +_0800AE08: .4byte 0x03003180 + thumb_func_end IsLinkConnectionEstablished + + thumb_func_start SetSuppressLinkErrorMessage +SetSuppressLinkErrorMessage: @ 0x0800AE0C + ldr r1, _0800AE14 + strb r0, [r1] + bx lr + .align 2, 0 +_0800AE14: .4byte 0x03003198 + thumb_func_end SetSuppressLinkErrorMessage + + thumb_func_start HasLinkErrorOccurred +HasLinkErrorOccurred: @ 0x0800AE18 + ldr r0, _0800AE20 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0800AE20: .4byte 0x0300310C + thumb_func_end HasLinkErrorOccurred + + thumb_func_start sub_0800AE24 +sub_0800AE24: @ 0x0800AE24 + push {r4, r5, r6, lr} + bl InitLocalLinkPlayer + ldr r1, _0800AE70 + adds r2, r1, #0 + adds r2, #0x10 + ldr r0, _0800AE74 + ldm r0!, {r3, r4, r5} + stm r2!, {r3, r4, r5} + ldm r0!, {r3, r4, r6} + stm r2!, {r3, r4, r6} + ldr r0, [r0] + str r0, [r2] + ldr r3, _0800AE78 + adds r2, r1, #0 + adds r0, r3, #0 + ldm r0!, {r4, r5, r6} + stm r2!, {r4, r5, r6} + ldrh r4, [r0] + strh r4, [r2] + ldrb r0, [r0, #2] + strb r0, [r2, #2] + adds r0, r1, #0 + adds r0, #0x2c + ldm r3!, {r2, r5, r6} + stm r0!, {r2, r5, r6} + ldrh r2, [r3] + strh r2, [r0] + ldrb r2, [r3, #2] + strb r2, [r0, #2] + ldr r0, _0800AE7C + movs r2, #0x3c + bl memcpy + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0800AE70: .4byte 0x030030D0 +_0800AE74: .4byte 0x02022684 +_0800AE78: .4byte 0x082BFF24 +_0800AE7C: .4byte 0x0202257C + thumb_func_end sub_0800AE24 + + thumb_func_start sub_0800AE80 +sub_0800AE80: @ 0x0800AE80 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r0, #8 + ldr r1, _0800AED0 + adds r4, r2, r1 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _0800AED4 + adds r1, r1, r0 + adds r0, r4, #0 + adds r0, #0x10 + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} + ldr r0, [r0] + str r0, [r1] + ldr r5, _0800AED8 + adds r0, r4, #0 + adds r1, r5, #0 + bl strcmp + cmp r0, #0 + bne _0800AEC2 + adds r0, r4, #0 + adds r0, #0x2c + adds r1, r5, #0 + bl strcmp + cmp r0, #0 + beq _0800AEC8 +_0800AEC2: + ldr r0, _0800AEDC + bl SetMainCallback2 +_0800AEC8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0800AED0: .4byte 0x0202207C +_0800AED4: .4byte 0x020226A0 +_0800AED8: .4byte 0x082BFF24 +_0800AEDC: .4byte 0x0800AA0D + thumb_func_end sub_0800AE80 + + thumb_func_start HandleLinkConnection +HandleLinkConnection: @ 0x0800AEE0 + push {r4, r5, lr} + ldr r0, _0800AF18 + ldrb r0, [r0] + cmp r0, #0 + bne _0800AF30 + ldr r0, _0800AF1C + ldr r1, _0800AF20 + ldr r2, _0800AF24 + bl LinkMain1 + ldr r4, _0800AF28 + str r0, [r4] + ldr r0, _0800AF2C + bl LinkMain2 + ldr r0, [r4] + movs r1, #0x80 + lsls r1, r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0800AF54 + bl sub_08086FD0 + cmp r0, #1 + bne _0800AF54 +_0800AF12: + movs r0, #1 + b _0800AF56 + .align 2, 0 +_0800AF18: .4byte 0x0300319C +_0800AF1C: .4byte 0x030031E4 +_0800AF20: .4byte 0x030031B0 +_0800AF24: .4byte 0x03003130 +_0800AF28: .4byte 0x03003180 +_0800AF2C: .4byte 0x0300238C +_0800AF30: + bl sub_080109B0 + adds r4, r0, #0 + bl sub_08010A0C + adds r5, r0, #0 + bl sub_08086FD0 + cmp r0, #1 + bne _0800AF54 + cmp r4, #1 + beq _0800AF12 + bl IsRfuRecvQueueEmpty + cmp r0, #0 + bne _0800AF12 + cmp r5, #0 + bne _0800AF12 +_0800AF54: + movs r0, #0 +_0800AF56: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end HandleLinkConnection + + thumb_func_start sub_0800AF5C +sub_0800AF5C: @ 0x0800AF5C + push {lr} + ldr r0, _0800AF70 + ldrb r0, [r0] + cmp r0, #0 + bne _0800AF6C + ldr r1, _0800AF74 + movs r0, #1 + strb r0, [r1] +_0800AF6C: + pop {r0} + bx r0 + .align 2, 0 +_0800AF70: .4byte 0x030031C4 +_0800AF74: .4byte 0x0300319C + thumb_func_end sub_0800AF5C + + thumb_func_start sub_0800AF78 +sub_0800AF78: @ 0x0800AF78 + push {lr} + ldr r0, _0800AF8C + ldrb r1, [r0] + cmp r1, #0 + bne _0800AF86 + ldr r0, _0800AF90 + strb r1, [r0] +_0800AF86: + pop {r0} + bx r0 + .align 2, 0 +_0800AF8C: .4byte 0x030031C4 +_0800AF90: .4byte 0x0300319C + thumb_func_end sub_0800AF78 + + thumb_func_start sub_0800AF94 +sub_0800AF94: @ 0x0800AF94 + push {lr} + ldr r0, _0800AFA8 + ldrb r1, [r0] + cmp r1, #0 + bne _0800AFA2 + ldr r0, _0800AFAC + strb r1, [r0] +_0800AFA2: + pop {r0} + bx r0 + .align 2, 0 +_0800AFA8: .4byte 0x030031C4 +_0800AFAC: .4byte 0x0300319C + thumb_func_end sub_0800AF94 + + thumb_func_start GetLinkRecvQueueLength +GetLinkRecvQueueLength: @ 0x0800AFB0 + push {lr} + ldr r0, _0800AFC4 + ldrb r0, [r0] + cmp r0, #0 + bne _0800AFD0 + ldr r0, _0800AFC8 + ldr r1, _0800AFCC + adds r0, r0, r1 + ldrb r0, [r0] + b _0800AFD4 + .align 2, 0 +_0800AFC4: .4byte 0x0300319C +_0800AFC8: .4byte 0x03003210 +_0800AFCC: .4byte 0x00000FBD +_0800AFD0: + bl sub_08011FC0 +_0800AFD4: + pop {r1} + bx r1 + thumb_func_end GetLinkRecvQueueLength + + thumb_func_start sub_0800AFD8 +sub_0800AFD8: @ 0x0800AFD8 + push {lr} + bl GetLinkRecvQueueLength + cmp r0, #2 + bhi _0800AFE6 + movs r0, #0 + b _0800AFE8 +_0800AFE6: + movs r0, #1 +_0800AFE8: + pop {r1} + bx r1 + thumb_func_end sub_0800AFD8 + + thumb_func_start sub_0800AFEC +sub_0800AFEC: @ 0x0800AFEC + ldr r0, _0800AFF4 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0800AFF4: .4byte 0x0300319C + thumb_func_end sub_0800AFEC + + thumb_func_start DisableSerial +DisableSerial: @ 0x0800AFF8 + push {lr} + sub sp, #4 + movs r0, #0xc0 + bl DisableInterrupts + ldr r1, _0800B038 + movs r2, #0x80 + lsls r2, r2, #6 + adds r0, r2, #0 + strh r0, [r1] + ldr r0, _0800B03C + movs r2, #0 + strh r2, [r0] + adds r1, #0xda + movs r0, #0xc0 + strh r0, [r1] + ldr r0, _0800B040 + strh r2, [r0] + ldr r2, _0800B044 + movs r0, #0 + movs r1, #0 + str r0, [r2] + str r1, [r2, #4] + str r0, [sp] + ldr r1, _0800B048 + ldr r2, _0800B04C + mov r0, sp + bl CpuSet + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_0800B038: .4byte 0x04000128 +_0800B03C: .4byte 0x0400010E +_0800B040: .4byte 0x0400012A +_0800B044: .4byte 0x04000120 +_0800B048: .4byte 0x03003210 +_0800B04C: .4byte 0x050003F0 + thumb_func_end DisableSerial + + thumb_func_start EnableSerial +EnableSerial: @ 0x0800B050 + push {r4, r5, lr} + sub sp, #4 + movs r0, #0xc0 + bl DisableInterrupts + ldr r0, _0800B0B0 + movs r4, #0 + strh r4, [r0] + ldr r2, _0800B0B4 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r1, #0 + strh r0, [r2] + ldrh r0, [r2] + ldr r3, _0800B0B8 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + movs r0, #0x80 + bl EnableInterrupts + ldr r0, _0800B0BC + strh r4, [r0] + movs r5, #0 + str r5, [sp] + ldr r1, _0800B0C0 + ldr r2, _0800B0C4 + mov r0, sp + bl CpuSet + ldr r0, _0800B0C8 + strb r4, [r0] + ldr r0, _0800B0CC + strh r5, [r0] + ldr r0, _0800B0D0 + strh r5, [r0] + ldr r0, _0800B0D4 + strb r4, [r0] + ldr r0, _0800B0D8 + strb r4, [r0] + ldr r0, _0800B0DC + strb r4, [r0] + ldr r0, _0800B0E0 + strb r4, [r0] + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0800B0B0: .4byte 0x04000134 +_0800B0B4: .4byte 0x04000128 +_0800B0B8: .4byte 0x00004003 +_0800B0BC: .4byte 0x0400012A +_0800B0C0: .4byte 0x03003210 +_0800B0C4: .4byte 0x050003F0 +_0800B0C8: .4byte 0x03000D6C +_0800B0CC: .4byte 0x03000D6E +_0800B0D0: .4byte 0x03000D70 +_0800B0D4: .4byte 0x03000D72 +_0800B0D8: .4byte 0x03000D73 +_0800B0DC: .4byte 0x03003200 +_0800B0E0: .4byte 0x030041D0 + thumb_func_end EnableSerial + + thumb_func_start ResetSerial +ResetSerial: @ 0x0800B0E4 + push {lr} + bl EnableSerial + bl DisableSerial + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ResetSerial + + thumb_func_start LinkMain1 +LinkMain1: @ 0x0800B0F4 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + ldr r0, _0800B110 + ldrb r0, [r0, #1] + cmp r0, #4 + bhi _0800B1A6 + lsls r0, r0, #2 + ldr r1, _0800B114 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0800B110: .4byte 0x03003210 +_0800B114: .4byte 0x0800B118 +_0800B118: @ jump table + .4byte _0800B12C @ case 0 + .4byte _0800B13C @ case 1 + .4byte _0800B154 @ case 2 + .4byte _0800B190 @ case 3 + .4byte _0800B19A @ case 4 +_0800B12C: + bl DisableSerial + ldr r1, _0800B138 + movs r0, #1 + strb r0, [r1, #1] + b _0800B1A6 + .align 2, 0 +_0800B138: .4byte 0x03003210 +_0800B13C: + ldrb r0, [r4] + cmp r0, #1 + bne _0800B1A6 + bl EnableSerial + ldr r1, _0800B150 + movs r0, #2 + strb r0, [r1, #1] + b _0800B1A6 + .align 2, 0 +_0800B150: .4byte 0x03003210 +_0800B154: + ldrb r1, [r4] + cmp r1, #1 + beq _0800B164 + cmp r1, #2 + beq _0800B17C + bl CheckMasterOrSlave + b _0800B1A6 +_0800B164: + ldr r2, _0800B178 + ldrb r0, [r2] + cmp r0, #8 + bne _0800B1A6 + ldrb r0, [r2, #3] + cmp r0, #1 + bls _0800B1A6 + strb r1, [r2, #0xe] + b _0800B1A6 + .align 2, 0 +_0800B178: .4byte 0x03003210 +_0800B17C: + ldr r0, _0800B188 + movs r1, #0 + strb r1, [r0, #1] + ldr r0, _0800B18C + strh r1, [r0] + b _0800B1A6 + .align 2, 0 +_0800B188: .4byte 0x03003210 +_0800B18C: .4byte 0x0400012A +_0800B190: + bl InitTimer + ldr r1, _0800B1E0 + movs r0, #4 + strb r0, [r1, #1] +_0800B19A: + adds r0, r5, #0 + bl EnqueueSendCmd + adds r0, r6, #0 + bl DequeueRecvCmds +_0800B1A6: + movs r0, #0 + strb r0, [r4] + ldr r1, _0800B1E0 + ldrb r2, [r1, #2] + ldrb r0, [r1, #3] + lsls r0, r0, #2 + orrs r2, r0 + ldrb r0, [r1] + cmp r0, #8 + bne _0800B1BE + movs r0, #0x20 + orrs r2, r0 +_0800B1BE: + ldrb r0, [r1, #0xc] + lsls r3, r0, #8 + ldrb r0, [r1, #0xf] + lsls r4, r0, #9 + ldrb r0, [r1, #0x10] + lsls r5, r0, #0xc + ldrb r0, [r1, #0x11] + lsls r6, r0, #0xd + ldrb r0, [r1, #0x12] + lsls r7, r0, #0xe + ldrb r0, [r1, #1] + cmp r0, #4 + bne _0800B1E4 + movs r0, #0x40 + orrs r0, r3 + orrs r0, r2 + b _0800B1E8 + .align 2, 0 +_0800B1E0: .4byte 0x03003210 +_0800B1E4: + adds r0, r2, #0 + orrs r0, r3 +_0800B1E8: + orrs r0, r4 + orrs r0, r5 + orrs r0, r6 + orrs r0, r7 + adds r2, r0, #0 + ldrb r3, [r1, #0x13] + cmp r3, #1 + bne _0800B1FE + movs r0, #0x80 + lsls r0, r0, #9 + orrs r2, r0 +_0800B1FE: + ldrb r0, [r1, #2] + cmp r0, #3 + bls _0800B20A + movs r0, #0x80 + lsls r0, r0, #0xa + orrs r2, r0 +_0800B20A: + adds r1, r2, #0 + cmp r3, #2 + bne _0800B216 + movs r0, #0x80 + lsls r0, r0, #0xb + orrs r1, r0 +_0800B216: + adds r0, r1, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end LinkMain1 + + thumb_func_start CheckMasterOrSlave +CheckMasterOrSlave: @ 0x0800B220 + push {lr} + ldr r0, _0800B23C + ldr r1, [r0] + movs r0, #0xc + ands r1, r0 + ldr r2, _0800B240 + cmp r1, #8 + bne _0800B244 + ldrb r0, [r2, #2] + cmp r0, #0 + bne _0800B244 + strb r1, [r2] + b _0800B248 + .align 2, 0 +_0800B23C: .4byte 0x04000128 +_0800B240: .4byte 0x03003210 +_0800B244: + movs r0, #0 + strb r0, [r2] +_0800B248: + pop {r0} + bx r0 + thumb_func_end CheckMasterOrSlave + + thumb_func_start InitTimer +InitTimer: @ 0x0800B24C + push {lr} + ldr r0, _0800B270 + ldrb r0, [r0] + cmp r0, #0 + beq _0800B26A + ldr r1, _0800B274 + ldr r2, _0800B278 + adds r0, r2, #0 + strh r0, [r1] + adds r1, #2 + movs r0, #0x41 + strh r0, [r1] + movs r0, #0x40 + bl EnableInterrupts +_0800B26A: + pop {r0} + bx r0 + .align 2, 0 +_0800B270: .4byte 0x03003210 +_0800B274: .4byte 0x0400010C +_0800B278: .4byte 0x0000FF3B + thumb_func_end InitTimer + + thumb_func_start EnqueueSendCmd +EnqueueSendCmd: @ 0x0800B27C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r3, r0, #0 + ldr r2, _0800B2F4 + ldr r1, _0800B2F8 + ldrh r0, [r1] + strh r0, [r2] + movs r0, #0 + strh r0, [r1] + ldr r1, _0800B2FC + ldr r4, _0800B300 + adds r0, r1, r4 + ldrb r4, [r0] + adds r6, r1, #0 + cmp r4, #0x31 + bhi _0800B30C + movs r1, #0xce + lsls r1, r1, #2 + adds r0, r6, r1 + ldrb r0, [r0] + adds r0, r4, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x31 + bls _0800B2BA + subs r0, #0x32 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_0800B2BA: + movs r2, #0 + ldr r4, _0800B304 + mov sb, r4 + ldr r1, _0800B308 + mov sl, r1 + lsls r5, r0, #1 + movs r0, #0x18 + adds r0, r0, r6 + mov r8, r0 + mov ip, r2 + movs r7, #0x64 +_0800B2D0: + ldrh r0, [r4] + ldrh r1, [r3] + orrs r0, r1 + strh r0, [r4] + adds r0, r2, #0 + muls r0, r7, r0 + adds r0, r5, r0 + add r0, r8 + strh r1, [r0] + mov r1, ip + strh r1, [r3] + adds r3, #2 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #7 + bls _0800B2D0 + b _0800B318 + .align 2, 0 +_0800B2F4: .4byte 0x030041D4 +_0800B2F8: .4byte 0x04000208 +_0800B2FC: .4byte 0x03003210 +_0800B300: .4byte 0x00000339 +_0800B304: .4byte 0x03000D6E +_0800B308: .4byte 0x03003200 +_0800B30C: + movs r0, #1 + strb r0, [r6, #0x12] + ldr r2, _0800B350 + mov sb, r2 + ldr r4, _0800B354 + mov sl, r4 +_0800B318: + mov r1, sb + ldrh r0, [r1] + cmp r0, #0 + beq _0800B330 + ldr r2, _0800B358 + adds r0, r6, r2 + ldrb r1, [r0] + adds r1, #1 + movs r2, #0 + strb r1, [r0] + mov r4, sb + strh r2, [r4] +_0800B330: + ldr r1, _0800B35C + ldr r2, _0800B360 + ldrh r0, [r2] + strh r0, [r1] + ldr r4, _0800B358 + adds r0, r6, r4 + ldrb r0, [r0] + mov r1, sl + strb r0, [r1] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800B350: .4byte 0x03000D6E +_0800B354: .4byte 0x03003200 +_0800B358: .4byte 0x00000339 +_0800B35C: .4byte 0x04000208 +_0800B360: .4byte 0x030041D4 + thumb_func_end EnqueueSendCmd + + thumb_func_start DequeueRecvCmds +DequeueRecvCmds: @ 0x0800B364 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sb, r0 + ldr r2, _0800B3C0 + ldr r1, _0800B3C4 + ldrh r0, [r1] + strh r0, [r2] + movs r0, #0 + strh r0, [r1] + ldr r1, _0800B3C8 + ldr r3, _0800B3CC + adds r0, r1, r3 + ldrb r0, [r0] + mov ip, r1 + cmp r0, #0 + bne _0800B3D0 + movs r3, #0 + ldrb r0, [r1, #3] + cmp r3, r0 + bhs _0800B3B6 + movs r5, #0 + adds r6, r0, #0 +_0800B396: + movs r2, #0 + lsls r1, r3, #4 + adds r4, r3, #1 + add r1, sb +_0800B39E: + lsls r0, r2, #1 + adds r0, r0, r1 + strh r5, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #7 + bls _0800B39E + lsls r0, r4, #0x18 + lsrs r3, r0, #0x18 + cmp r3, r6 + blo _0800B396 +_0800B3B6: + movs r0, #1 + mov r7, ip + strb r0, [r7, #0xc] + b _0800B44C + .align 2, 0 +_0800B3C0: .4byte 0x030041D4 +_0800B3C4: .4byte 0x04000208 +_0800B3C8: .4byte 0x03003210 +_0800B3CC: .4byte 0x00000FBD +_0800B3D0: + movs r3, #0 + mov r0, ip + ldrb r1, [r0, #3] + cmp r3, r1 + bhs _0800B426 + ldr r0, _0800B464 + add r0, ip + ldrb r0, [r0] + lsls r6, r0, #1 + movs r2, #0xcf + lsls r2, r2, #2 + add r2, ip + mov r8, r2 + mov sl, r1 +_0800B3EC: + movs r2, #0 + lsls r1, r3, #4 + adds r4, r3, #1 + lsls r0, r3, #1 + mov r7, sb + adds r5, r1, r7 + adds r0, r0, r3 + lsls r0, r0, #3 + adds r0, r0, r3 + lsls r3, r0, #5 +_0800B400: + lsls r1, r2, #1 + adds r1, r1, r5 + movs r7, #0x64 + adds r0, r2, #0 + muls r0, r7, r0 + adds r0, r6, r0 + adds r0, r0, r3 + add r0, r8 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #7 + bls _0800B400 + lsls r0, r4, #0x18 + lsrs r3, r0, #0x18 + cmp r3, sl + blo _0800B3EC +_0800B426: + mov r2, ip + ldr r0, _0800B468 + adds r1, r2, r0 + ldrb r0, [r1] + subs r0, #1 + movs r3, #0 + strb r0, [r1] + ldr r1, _0800B464 + adds r2, r2, r1 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x31 + bls _0800B448 + strb r3, [r2] +_0800B448: + mov r2, ip + strb r3, [r2, #0xc] +_0800B44C: + ldr r1, _0800B46C + ldr r3, _0800B470 + ldrh r0, [r3] + strh r0, [r1] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800B464: .4byte 0x00000FBC +_0800B468: .4byte 0x00000FBD +_0800B46C: .4byte 0x04000208 +_0800B470: .4byte 0x030041D4 + thumb_func_end DequeueRecvCmds + + thumb_func_start LinkVSync +LinkVSync: @ 0x0800B474 + push {r4, lr} + ldr r3, _0800B49C + ldrb r4, [r3] + cmp r4, #0 + beq _0800B4B0 + ldrb r0, [r3, #1] + cmp r0, #2 + beq _0800B4AA + cmp r0, #4 + bne _0800B4DA + movs r0, #0xd + ldrsb r0, [r3, r0] + cmp r0, #8 + bgt _0800B4A0 + ldrb r0, [r3, #0x10] + cmp r0, #1 + beq _0800B4AA + movs r0, #1 + strb r0, [r3, #0x13] + b _0800B4DA + .align 2, 0 +_0800B49C: .4byte 0x03003210 +_0800B4A0: + ldrb r0, [r3, #0x13] + cmp r0, #1 + beq _0800B4DA + movs r0, #0 + strb r0, [r3, #0xd] +_0800B4AA: + bl StartTransfer + b _0800B4DA +_0800B4B0: + ldrb r2, [r3, #1] + cmp r2, #4 + beq _0800B4BA + cmp r2, #2 + bne _0800B4DA +_0800B4BA: + ldr r1, _0800B4E0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xa + bls _0800B4DA + cmp r2, #4 + bne _0800B4D2 + movs r0, #2 + strb r0, [r3, #0x13] +_0800B4D2: + cmp r2, #2 + bne _0800B4DA + strb r4, [r3, #3] + strb r4, [r3, #0xf] +_0800B4DA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800B4E0: .4byte 0x03000D6C + thumb_func_end LinkVSync + + thumb_func_start Timer3Intr +Timer3Intr: @ 0x0800B4E4 + push {lr} + bl StopTimer + bl StartTransfer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Timer3Intr + + thumb_func_start SerialCB +SerialCB: @ 0x0800B4F4 + push {r4, lr} + ldr r4, _0800B520 + ldr r0, _0800B524 + ldr r1, [r0] + lsls r0, r1, #0x1a + lsrs r0, r0, #0x1e + strb r0, [r4, #2] + ldrb r0, [r4, #1] + cmp r0, #2 + beq _0800B528 + cmp r0, #4 + bne _0800B546 + lsls r0, r1, #0x19 + lsrs r0, r0, #0x1f + strb r0, [r4, #0x10] + bl DoRecv + bl DoSend + bl SendRecvDone + b _0800B546 + .align 2, 0 +_0800B520: .4byte 0x03003210 +_0800B524: .4byte 0x04000128 +_0800B528: + bl DoHandshake + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0800B546 + ldrb r0, [r4] + cmp r0, #0 + beq _0800B542 + movs r0, #3 + strb r0, [r4, #1] + movs r0, #8 + strb r0, [r4, #0xd] + b _0800B546 +_0800B542: + movs r0, #4 + strb r0, [r4, #1] +_0800B546: + ldr r3, _0800B56C + ldrb r0, [r3, #0xd] + adds r0, #1 + movs r2, #0 + strb r0, [r3, #0xd] + ldr r1, _0800B570 + strb r2, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #8 + bne _0800B566 + ldr r0, _0800B574 + ldr r2, _0800B578 + adds r1, r3, r2 + ldrb r1, [r1] + strb r1, [r0] +_0800B566: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800B56C: .4byte 0x03003210 +_0800B570: .4byte 0x03000D6C +_0800B574: .4byte 0x030041D0 +_0800B578: .4byte 0x00000FBD + thumb_func_end SerialCB + + thumb_func_start StartTransfer +StartTransfer: @ 0x0800B57C + ldr r0, _0800B588 + ldrh r1, [r0] + movs r2, #0x80 + orrs r1, r2 + strh r1, [r0] + bx lr + .align 2, 0 +_0800B588: .4byte 0x04000128 + thumb_func_end StartTransfer + + thumb_func_start DoHandshake +DoHandshake: @ 0x0800B58C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + movs r5, #0 + ldr r6, _0800B5A8 + ldr r0, _0800B5AC + ldrb r1, [r0, #0xe] + adds r7, r0, #0 + cmp r1, #1 + bne _0800B5B8 + ldr r1, _0800B5B0 + ldr r2, _0800B5B4 + b _0800B5BC + .align 2, 0 +_0800B5A8: .4byte 0x0000FFFF +_0800B5AC: .4byte 0x03003210 +_0800B5B0: .4byte 0x0400012A +_0800B5B4: .4byte 0x00008FFF +_0800B5B8: + ldr r1, _0800B610 + ldr r2, _0800B614 +_0800B5BC: + adds r0, r2, #0 + strh r0, [r1] + ldr r2, _0800B618 + ldr r3, _0800B61C + ldr r0, [r3] + ldr r1, [r3, #4] + str r0, [r2] + str r1, [r2, #4] + movs r0, #0 + movs r1, #0 + str r0, [r3] + str r1, [r3, #4] + strb r0, [r2, #0xa] + movs r4, #0 + ldr r0, _0800B620 + mov sb, r0 + mov r8, r2 + ldr r2, _0800B624 + ldr r1, _0800B628 + mov ip, r1 +_0800B5E4: + lsls r0, r4, #1 + add r0, r8 + ldrh r3, [r0] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r3 + ldr r1, _0800B614 + cmp r0, r1 + beq _0800B5FC + adds r0, r3, #0 + cmp r0, r2 + bne _0800B62C +_0800B5FC: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r3, #0 + cmp r6, r0 + bls _0800B634 + cmp r0, #0 + beq _0800B634 + adds r6, r3, #0 + b _0800B634 + .align 2, 0 +_0800B610: .4byte 0x0400012A +_0800B614: .4byte 0x0000B9A0 +_0800B618: .4byte 0x03003214 +_0800B61C: .4byte 0x04000120 +_0800B620: .4byte 0x03000D73 +_0800B624: .4byte 0x00008FFF +_0800B628: .4byte 0x0000FFFF +_0800B62C: + cmp r0, ip + beq _0800B63E + movs r5, #0 + b _0800B63E +_0800B634: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _0800B5E4 +_0800B63E: + strb r5, [r7, #3] + adds r0, r5, #0 + cmp r0, #1 + bls _0800B66E + mov r2, sb + ldrb r2, [r2] + cmp r0, r2 + bne _0800B660 + ldrh r1, [r7, #4] + ldr r0, _0800B65C + cmp r1, r0 + bne _0800B660 + movs r0, #1 + b _0800B67A + .align 2, 0 +_0800B65C: .4byte 0x00008FFF +_0800B660: + ldrb r0, [r7, #3] + cmp r0, #1 + bls _0800B66E + movs r0, #3 + ands r6, r0 + adds r0, r6, #1 + b _0800B670 +_0800B66E: + movs r0, #0 +_0800B670: + strb r0, [r7, #0xf] + ldrb r0, [r7, #3] + mov r1, sb + strb r0, [r1] + movs r0, #0 +_0800B67A: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end DoHandshake + + thumb_func_start DoRecv +DoRecv: @ 0x0800B688 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + ldr r0, _0800B6E0 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [sp] + str r1, [sp, #4] + ldr r0, _0800B6E4 + ldrb r1, [r0, #0x16] + adds r6, r0, #0 + cmp r1, #0 + bne _0800B6EC + movs r4, #0 + ldr r7, _0800B6E8 + ldrb r0, [r6, #3] + cmp r4, r0 + bhs _0800B6D6 + adds r5, r6, #0 + ldrh r1, [r6, #0x14] + adds r3, r7, #0 + adds r2, r6, #0 +_0800B6B6: + lsls r0, r4, #1 + add r0, sp + ldrh r0, [r0] + cmp r1, r0 + beq _0800B6CA + ldrb r0, [r3] + cmp r0, #0 + beq _0800B6CA + movs r0, #1 + strb r0, [r5, #0x11] +_0800B6CA: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldrb r0, [r2, #3] + cmp r4, r0 + blo _0800B6B6 +_0800B6D6: + movs r0, #0 + strh r0, [r6, #0x14] + movs r0, #1 + strb r0, [r7] + b _0800B78C + .align 2, 0 +_0800B6E0: .4byte 0x04000120 +_0800B6E4: .4byte 0x03003210 +_0800B6E8: .4byte 0x03000D72 +_0800B6EC: + ldr r2, _0800B75C + adds r1, r6, r2 + adds r2, #1 + adds r0, r6, r2 + ldrb r2, [r0] + ldrb r1, [r1] + adds r0, r2, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x31 + bls _0800B708 + subs r0, #0x32 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_0800B708: + cmp r2, #0x31 + bhi _0800B764 + movs r4, #0 + ldrb r1, [r6, #3] + cmp r4, r1 + bhs _0800B768 + adds r5, r6, #0 + ldr r7, _0800B760 + lsls r0, r0, #1 + mov ip, r0 + movs r2, #0xcf + lsls r2, r2, #2 + adds r2, r2, r6 + mov r8, r2 +_0800B724: + lsls r1, r4, #1 + mov r2, sp + adds r0, r2, r1 + ldrh r3, [r0] + ldrh r2, [r5, #0x14] + adds r0, r3, r2 + strh r0, [r5, #0x14] + ldrh r0, [r7] + orrs r0, r3 + strh r0, [r7] + ldrb r2, [r5, #0x17] + movs r0, #0x64 + muls r0, r2, r0 + add r0, ip + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r4 + lsls r1, r1, #5 + adds r0, r0, r1 + add r0, r8 + strh r3, [r0] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldrb r0, [r5, #3] + cmp r4, r0 + blo _0800B724 + b _0800B768 + .align 2, 0 +_0800B75C: .4byte 0x00000FBC +_0800B760: .4byte 0x03000D70 +_0800B764: + movs r0, #2 + strb r0, [r6, #0x12] +_0800B768: + ldrb r0, [r6, #0x17] + adds r0, #1 + strb r0, [r6, #0x17] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #8 + bne _0800B78C + ldr r2, _0800B798 + ldrh r0, [r2] + cmp r0, #0 + beq _0800B78C + ldr r1, _0800B79C + adds r0, r6, r1 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + movs r0, #0 + strh r0, [r2] +_0800B78C: + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800B798: .4byte 0x03000D70 +_0800B79C: .4byte 0x00000FBD + thumb_func_end DoRecv + + thumb_func_start DoSend +DoSend: @ 0x0800B7A0 + push {r4, lr} + ldr r0, _0800B7DC + ldrb r1, [r0, #0x16] + adds r4, r0, #0 + cmp r1, #8 + bne _0800B7F2 + ldr r1, _0800B7E0 + ldrh r0, [r4, #0x14] + strh r0, [r1] + ldr r1, _0800B7E4 + ldrb r2, [r1] + cmp r2, #0 + bne _0800B7EC + ldr r0, _0800B7E8 + adds r1, r4, r0 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + movs r0, #0xce + lsls r0, r0, #2 + adds r1, r4, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x31 + bls _0800B848 + strb r2, [r1] + b _0800B848 + .align 2, 0 +_0800B7DC: .4byte 0x03003210 +_0800B7E0: .4byte 0x0400012A +_0800B7E4: .4byte 0x03000D6D +_0800B7E8: .4byte 0x00000339 +_0800B7EC: + movs r0, #0 + strb r0, [r1] + b _0800B848 +_0800B7F2: + ldr r1, _0800B818 + ldrb r0, [r1] + cmp r0, #0 + bne _0800B80E + ldr r2, _0800B81C + adds r0, r4, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _0800B808 + movs r0, #1 + strb r0, [r1] +_0800B808: + ldrb r0, [r1] + cmp r0, #0 + beq _0800B824 +_0800B80E: + ldr r1, _0800B820 + movs r0, #0 + strh r0, [r1] + b _0800B842 + .align 2, 0 +_0800B818: .4byte 0x03000D6D +_0800B81C: .4byte 0x00000339 +_0800B820: .4byte 0x0400012A +_0800B824: + ldr r3, _0800B850 + movs r1, #0xce + lsls r1, r1, #2 + adds r0, r4, r1 + ldrb r0, [r0] + lsls r0, r0, #1 + ldrb r2, [r4, #0x16] + movs r1, #0x64 + muls r1, r2, r1 + adds r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x18 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r3] +_0800B842: + ldrb r0, [r4, #0x16] + adds r0, #1 + strb r0, [r4, #0x16] +_0800B848: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800B850: .4byte 0x0400012A + thumb_func_end DoSend + + thumb_func_start StopTimer +StopTimer: @ 0x0800B854 + push {lr} + ldr r0, _0800B874 + ldrb r0, [r0] + cmp r0, #0 + beq _0800B870 + ldr r2, _0800B878 + ldrh r1, [r2] + ldr r0, _0800B87C + ands r0, r1 + strh r0, [r2] + ldr r1, _0800B880 + ldr r2, _0800B884 + adds r0, r2, #0 + strh r0, [r1] +_0800B870: + pop {r0} + bx r0 + .align 2, 0 +_0800B874: .4byte 0x03003210 +_0800B878: .4byte 0x0400010E +_0800B87C: .4byte 0x0000FF7F +_0800B880: .4byte 0x0400010C +_0800B884: .4byte 0x0000FF3B + thumb_func_end StopTimer + + thumb_func_start SendRecvDone +SendRecvDone: @ 0x0800B888 + push {lr} + ldr r1, _0800B89C + ldrb r0, [r1, #0x17] + cmp r0, #8 + bne _0800B8A0 + movs r0, #0 + strb r0, [r1, #0x16] + strb r0, [r1, #0x17] + b _0800B8B0 + .align 2, 0 +_0800B89C: .4byte 0x03003210 +_0800B8A0: + ldrb r0, [r1] + cmp r0, #0 + beq _0800B8B0 + ldr r0, _0800B8B4 + ldrh r1, [r0] + movs r2, #0x80 + orrs r1, r2 + strh r1, [r0] +_0800B8B0: + pop {r0} + bx r0 + .align 2, 0 +_0800B8B4: .4byte 0x0400010E + thumb_func_end SendRecvDone + + thumb_func_start ResetSendBuffer +ResetSendBuffer: @ 0x0800B8B8 + push {r4, r5, r6, lr} + ldr r1, _0800B900 + ldr r2, _0800B904 + adds r0, r1, r2 + movs r2, #0 + strb r2, [r0] + movs r3, #0xce + lsls r3, r3, #2 + adds r0, r1, r3 + strb r2, [r0] + movs r0, #0 + movs r6, #0x64 + adds r5, r1, #0 + adds r5, #0x18 + ldr r4, _0800B908 +_0800B8D6: + movs r2, #0 + adds r1, r0, #1 + adds r3, r0, #0 + muls r3, r6, r3 +_0800B8DE: + lsls r0, r2, #1 + adds r0, r0, r3 + adds r0, r0, r5 + strh r4, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x31 + bls _0800B8DE + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #7 + bls _0800B8D6 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0800B900: .4byte 0x03003210 +_0800B904: .4byte 0x00000339 +_0800B908: .4byte 0x0000EFFF + thumb_func_end ResetSendBuffer + + thumb_func_start ResetRecvBuffer +ResetRecvBuffer: @ 0x0800B90C + push {r4, r5, r6, r7, lr} + ldr r1, _0800B96C + ldr r2, _0800B970 + adds r0, r1, r2 + movs r2, #0 + strb r2, [r0] + ldr r3, _0800B974 + adds r0, r1, r3 + strb r2, [r0] + movs r0, #0x64 + mov ip, r0 + movs r3, #0xcf + lsls r3, r3, #2 + adds r7, r1, r3 + ldr r6, _0800B978 +_0800B92A: + movs r3, #0 + lsls r0, r2, #1 + adds r5, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r0, r0, r2 + lsls r4, r0, #5 +_0800B938: + movs r2, #0 + adds r1, r3, #1 + mov r0, ip + muls r0, r3, r0 + adds r3, r0, #0 +_0800B942: + lsls r0, r2, #1 + adds r0, r0, r3 + adds r0, r0, r4 + adds r0, r0, r7 + strh r6, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x31 + bls _0800B942 + lsls r0, r1, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #7 + bls _0800B938 + lsls r0, r5, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #3 + bls _0800B92A + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800B96C: .4byte 0x03003210 +_0800B970: .4byte 0x00000FBD +_0800B974: .4byte 0x00000FBC +_0800B978: .4byte 0x0000EFFF + thumb_func_end ResetRecvBuffer + diff --git a/asm/link_rfu.s b/asm/link_rfu.s new file mode 100644 index 0000000..efd67ff --- /dev/null +++ b/asm/link_rfu.s @@ -0,0 +1,13454 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_0800B97C +sub_0800B97C: @ 0x0800B97C + push {r4, lr} + bl rfu_REQBN_softReset_and_checkID + adds r4, r0, #0 + ldr r0, _0800B9C0 + cmp r4, r0 + bne _0800B990 + ldr r1, _0800B9C4 + movs r0, #1 + strb r0, [r1, #8] +_0800B990: + ldr r0, _0800B9C4 + ldrb r2, [r0, #4] + adds r1, r0, #0 + cmp r2, #0x17 + beq _0800B9A4 + cmp r2, #1 + beq _0800B9A4 + movs r0, #0 + strb r0, [r1, #5] + strb r0, [r1, #4] +_0800B9A4: + movs r0, #0 + strb r0, [r1, #7] + strb r0, [r1, #0xd] + strb r0, [r1, #1] + strb r0, [r1] + movs r0, #0xff + strb r0, [r1, #6] + bl sub_0800D0CC + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0800B9C0: .4byte 0x00008001 +_0800B9C4: .4byte 0x030041E0 + thumb_func_end sub_0800B97C + + thumb_func_start rfu_REQ_sendData_wrapper +rfu_REQ_sendData_wrapper: @ 0x0800B9C8 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _0800B9E8 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #0 + bne _0800B9F0 + ldr r0, _0800B9EC + ldrb r0, [r0, #2] + movs r2, #0 + cmp r0, #1 + bne _0800B9F8 + movs r2, #1 + b _0800B9F8 + .align 2, 0 +_0800B9E8: .4byte 0x03007630 +_0800B9EC: .4byte 0x030041E0 +_0800B9F0: + ldr r0, _0800BA04 + ldrb r1, [r0, #3] + movs r1, #0 + strb r1, [r0, #3] +_0800B9F8: + adds r0, r2, #0 + bl rfu_REQ_sendData + pop {r0} + bx r0 + .align 2, 0 +_0800BA04: .4byte 0x030041E0 + thumb_func_end rfu_REQ_sendData_wrapper + + thumb_func_start sub_0800BA08 +sub_0800BA08: @ 0x0800BA08 + push {r4, r5, r6, lr} + sub sp, #4 + adds r5, r0, #0 + adds r6, r1, #0 + cmp r5, #0 + beq _0800BA50 + mov r1, sp + movs r0, #0 + strh r0, [r1] + ldr r4, _0800BA40 + ldr r2, _0800BA44 + mov r0, sp + adds r1, r4, #0 + bl CpuSet + movs r0, #0xff + strb r0, [r4, #6] + str r5, [r4, #0x40] + str r6, [r4, #0x44] + ldr r0, _0800BA48 + bl rfu_setMSCCallback + ldr r0, _0800BA4C + bl rfu_setREQCallback + movs r0, #0 + b _0800BA52 + .align 2, 0 +_0800BA40: .4byte 0x030041E0 +_0800BA44: .4byte 0x01000024 +_0800BA48: .4byte 0x0800C96D +_0800BA4C: .4byte 0x0800C271 +_0800BA50: + movs r0, #4 +_0800BA52: + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0800BA08 + + thumb_func_start sub_0800BA5C +sub_0800BA5C: @ 0x0800BA5C + push {r4, lr} + sub sp, #4 + mov r1, sp + movs r0, #0 + strh r0, [r1] + ldr r4, _0800BA80 + ldr r2, _0800BA84 + mov r0, sp + adds r1, r4, #0 + bl CpuSet + movs r0, #0xff + strb r0, [r4, #6] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800BA80: .4byte 0x030041E0 +_0800BA84: .4byte 0x01000020 + thumb_func_end sub_0800BA5C + + thumb_func_start sub_0800BA88 +sub_0800BA88: @ 0x0800BA88 + push {r4, lr} + adds r4, r0, #0 + bl sub_0800BABC + ldr r1, _0800BAB8 + movs r2, #1 + strb r2, [r1, #4] + movs r0, #2 + strb r0, [r1, #5] + str r4, [r1, #0x3c] + ldrb r0, [r4, #0x11] + strb r0, [r1, #9] + ldrh r0, [r4, #0x12] + strh r0, [r1, #0x32] + ldrh r0, [r4, #0x14] + strh r0, [r1, #0x18] + ldrb r0, [r4, #0x10] + cmp r0, #0 + beq _0800BAB0 + strb r2, [r1, #0xb] +_0800BAB0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800BAB8: .4byte 0x030041E0 + thumb_func_end sub_0800BA88 + + thumb_func_start sub_0800BABC +sub_0800BABC: @ 0x0800BABC + push {r4, r5, lr} + ldr r2, _0800BB00 + movs r0, #0 + strb r0, [r2, #5] + strb r0, [r2, #4] + movs r1, #0xff + strb r1, [r2, #6] + strb r0, [r2, #7] + strb r0, [r2, #0x10] + strb r0, [r2, #0xc] + adds r1, r2, #0 + adds r1, #0x24 + strb r0, [r1] + adds r1, #0xc + strb r0, [r1] + movs r3, #0 + adds r5, r2, #0 + adds r5, #0x28 + movs r4, #0 + adds r2, #0x34 +_0800BAE4: + lsls r1, r3, #1 + adds r0, r1, r5 + strh r4, [r0] + adds r1, r1, r2 + strh r4, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #3 + bls _0800BAE4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0800BB00: .4byte 0x030041E0 + thumb_func_end sub_0800BABC + + thumb_func_start sub_0800BB04 +sub_0800BB04: @ 0x0800BB04 + ldr r1, _0800BB0C + movs r0, #0x15 + strb r0, [r1, #4] + bx lr + .align 2, 0 +_0800BB0C: .4byte 0x030041E0 + thumb_func_end sub_0800BB04 + + thumb_func_start sub_0800BB10 +sub_0800BB10: @ 0x0800BB10 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r3, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + mov r8, r2 + ldr r1, _0800BB48 + ldrb r0, [r1, #4] + cmp r0, #0 + beq _0800BB4C + cmp r0, #8 + bne _0800BB36 + cmp r5, #1 + beq _0800BB4C +_0800BB36: + movs r0, #1 + strh r0, [r1, #0x14] + movs r0, #0xf3 + movs r1, #1 + bl sub_0800CDC8 + movs r0, #1 + b _0800BBDE + .align 2, 0 +_0800BB48: .4byte 0x030041E0 +_0800BB4C: + bl rfu_getMasterSlave + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0800BB6C + ldr r1, _0800BB68 + movs r0, #2 + strh r0, [r1, #0x14] + movs r0, #0xf3 + movs r1, #1 + bl sub_0800CDC8 + movs r0, #2 + b _0800BBDE + .align 2, 0 +_0800BB68: .4byte 0x030041E0 +_0800BB6C: + movs r2, #0 + ldrh r0, [r6] + ldr r4, _0800BBA0 + adds r1, r6, #2 + ldr r3, _0800BBA4 + cmp r0, r4 + beq _0800BB8C +_0800BB7A: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xf + bhi _0800BB8C + ldrh r0, [r1] + adds r1, #2 + cmp r0, r4 + bne _0800BB7A +_0800BB8C: + cmp r2, #0x10 + bne _0800BBA8 + movs r0, #4 + strh r0, [r3, #0x14] + movs r0, #0xf3 + movs r1, #1 + bl sub_0800CDC8 + movs r0, #4 + b _0800BBDE + .align 2, 0 +_0800BBA0: .4byte 0x0000FFFF +_0800BBA4: .4byte 0x030041E0 +_0800BBA8: + cmp r5, #1 + bls _0800BBB6 + movs r0, #1 + strb r0, [r3, #7] + movs r5, #1 + movs r7, #0 + b _0800BBBA +_0800BBB6: + movs r0, #0 + strb r0, [r3, #7] +_0800BBBA: + cmp r5, #0 + beq _0800BBC4 + movs r0, #5 + strb r0, [r3, #4] + b _0800BBD2 +_0800BBC4: + movs r0, #9 + strb r0, [r3, #4] + ldrb r0, [r3, #0xb] + cmp r0, #0 + beq _0800BBD2 + movs r0, #2 + strb r0, [r3, #0xb] +_0800BBD2: + strb r5, [r3, #6] + strh r7, [r3, #0x1a] + mov r0, r8 + strh r0, [r3, #0x26] + str r6, [r3, #0x20] + movs r0, #0 +_0800BBDE: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_0800BB10 + + thumb_func_start sub_0800BBE8 +sub_0800BBE8: @ 0x0800BBE8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r8, r1 + ldr r1, _0800BC1C + ldrb r0, [r1, #4] + cmp r0, #0 + beq _0800BC20 + subs r0, #9 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bls _0800BC20 + movs r0, #1 + strh r0, [r1, #0x14] + movs r0, #0xf3 + movs r1, #1 + bl sub_0800CDC8 + movs r0, #1 + b _0800BCC0 + .align 2, 0 +_0800BC1C: .4byte 0x030041E0 +_0800BC20: + bl rfu_getMasterSlave + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0800BC40 + ldr r1, _0800BC3C + movs r0, #2 + strh r0, [r1, #0x14] + movs r0, #0xf3 + movs r1, #1 + bl sub_0800CDC8 + movs r0, #2 + b _0800BCC0 + .align 2, 0 +_0800BC3C: .4byte 0x030041E0 +_0800BC40: + movs r2, #0 + ldr r0, _0800BC8C + ldr r1, [r0] + ldrb r3, [r1, #8] + ldr r5, _0800BC90 + adds r7, r0, #0 + cmp r2, r3 + bhs _0800BC6E + ldrh r0, [r1, #0x14] + cmp r0, r6 + beq _0800BC6E + adds r4, r1, #0 + adds r1, r3, #0 +_0800BC5A: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, r1 + bhs _0800BC6E + lsls r0, r2, #5 + adds r0, r4, r0 + ldrh r0, [r0, #0x14] + cmp r0, r6 + bne _0800BC5A +_0800BC6E: + ldr r0, [r7] + ldrb r0, [r0, #8] + cmp r0, #0 + beq _0800BC7A + cmp r2, r0 + bne _0800BC94 +_0800BC7A: + movs r0, #3 + strh r0, [r5, #0x14] + movs r0, #0xf3 + movs r1, #1 + bl sub_0800CDC8 + movs r0, #3 + b _0800BCC0 + .align 2, 0 +_0800BC8C: .4byte 0x03007630 +_0800BC90: .4byte 0x030041E0 +_0800BC94: + ldrb r0, [r5, #4] + cmp r0, #0 + beq _0800BC9E + cmp r0, #9 + bne _0800BCA6 +_0800BC9E: + movs r0, #0xc + strb r0, [r5, #4] + movs r0, #0xd + b _0800BCAC +_0800BCA6: + movs r0, #0xb + strb r0, [r5, #4] + movs r0, #0xc +_0800BCAC: + strb r0, [r5, #5] + strh r6, [r5, #0x1e] + mov r0, r8 + strh r0, [r5, #0x1a] + ldrb r0, [r5, #7] + cmp r0, #0 + beq _0800BCBE + movs r0, #7 + strb r0, [r5, #7] +_0800BCBE: + movs r0, #0 +_0800BCC0: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0800BBE8 + + thumb_func_start sub_0800BCCC +sub_0800BCCC: @ 0x0800BCCC + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r6, _0800BD30 + adds r3, r6, #0 + adds r3, #0x30 + ldrb r2, [r3] + adds r0, r1, #0 + ands r0, r2 + cmp r0, #0 + beq _0800BD28 + adds r0, r2, #0 + bics r0, r1 + strb r0, [r3] + movs r4, #0 + ldr r7, _0800BD34 + movs r5, #1 + adds r3, #4 + movs r2, #0 +_0800BCF2: + adds r0, r1, #0 + asrs r0, r4 + ands r0, r5 + cmp r0, #0 + beq _0800BD02 + lsls r0, r4, #1 + adds r0, r0, r3 + strh r2, [r0] +_0800BD02: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _0800BCF2 + ldr r0, [r7] + ldrb r4, [r0, #3] + ands r4, r1 + cmp r4, #0 + beq _0800BD1C + adds r0, r4, #0 + bl sub_0800CDF0 +_0800BD1C: + ldr r0, _0800BD30 + strh r4, [r0, #0x14] + movs r0, #0x33 + adds r1, r4, #0 + bl sub_0800CDC8 +_0800BD28: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800BD30: .4byte 0x030041E0 +_0800BD34: .4byte 0x03007630 + thumb_func_end sub_0800BCCC + + thumb_func_start sub_0800BD38 +sub_0800BD38: @ 0x0800BD38 + push {r4, r5, lr} + lsls r0, r0, #0x18 + movs r2, #0 + ldr r1, _0800BD54 + strb r2, [r1, #7] + adds r5, r1, #0 + cmp r0, #0 + beq _0800BD58 + bl sub_0800BABC + movs r0, #0x17 + strb r0, [r5, #4] + b _0800BE22 + .align 2, 0 +_0800BD54: .4byte 0x030041E0 +_0800BD58: + ldrb r0, [r5, #4] + subs r0, #5 + cmp r0, #0xd + bhi _0800BE0E + lsls r0, r0, #2 + ldr r1, _0800BD6C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0800BD6C: .4byte 0x0800BD70 +_0800BD70: @ jump table + .4byte _0800BDA8 @ case 0 + .4byte _0800BDB4 @ case 1 + .4byte _0800BDB4 @ case 2 + .4byte _0800BE14 @ case 3 + .4byte _0800BDBE @ case 4 + .4byte _0800BDC8 @ case 5 + .4byte _0800BDC8 @ case 6 + .4byte _0800BDD2 @ case 7 + .4byte _0800BDDC @ case 8 + .4byte _0800BDDC @ case 9 + .4byte _0800BE14 @ case 10 + .4byte _0800BDE2 @ case 11 + .4byte _0800BE08 @ case 12 + .4byte _0800BE08 @ case 13 +_0800BDA8: + movs r1, #0 + movs r0, #8 + strb r0, [r5, #4] + strb r1, [r5, #5] + movs r2, #0x13 + b _0800BE14 +_0800BDB4: + movs r0, #7 + strb r0, [r5, #4] + movs r0, #8 + strb r0, [r5, #5] + b _0800BE14 +_0800BDBE: + movs r0, #0 + strb r0, [r5, #5] + strb r0, [r5, #4] + movs r2, #0x21 + b _0800BE14 +_0800BDC8: + movs r1, #0 + movs r0, #0xb + strb r0, [r5, #4] + strb r1, [r5, #5] + b _0800BE14 +_0800BDD2: + movs r0, #0 + strb r0, [r5, #5] + strb r0, [r5, #4] + movs r2, #0x23 + b _0800BE14 +_0800BDDC: + movs r0, #0xe + strb r0, [r5, #4] + b _0800BE14 +_0800BDE2: + ldrb r0, [r5, #0x11] + strb r0, [r5, #4] + ldrb r0, [r5, #0x12] + strb r0, [r5, #5] + ldr r4, _0800BE04 + ldr r0, [r4] + ldrb r0, [r0, #3] + bl sub_0800CDF0 + ldr r0, [r4] + ldrb r0, [r0, #3] + strh r0, [r5, #0x14] + movs r0, #0x33 + movs r1, #1 + bl sub_0800CDC8 + b _0800BE22 + .align 2, 0 +_0800BE04: .4byte 0x03007630 +_0800BE08: + movs r0, #0x12 + strb r0, [r5, #4] + b _0800BE14 +_0800BE0E: + strb r2, [r5, #5] + strb r2, [r5, #4] + movs r2, #0x43 +_0800BE14: + ldrb r0, [r5, #4] + cmp r0, #0 + bne _0800BE22 + adds r0, r2, #0 + movs r1, #0 + bl sub_0800CDC8 +_0800BE22: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_0800BD38 + + thumb_func_start sub_0800BE28 +sub_0800BE28: @ 0x0800BE28 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0 + mov r8, r1 + mov r5, sp + adds r5, #1 + mov r4, sp + adds r4, #2 + mov r1, sp + adds r2, r5, #0 + adds r3, r4, #0 + bl rfu_REQBN_watchLink + mov r0, sp + ldrb r0, [r0] + adds r7, r4, #0 + cmp r0, #0 + beq _0800BEFA + ldr r1, _0800BEC4 + mov r0, sp + ldrb r0, [r0] + strh r0, [r1, #0x14] + ldrb r0, [r5] + strh r0, [r1, #0x16] + ldrb r0, [r1, #9] + adds r6, r1, #0 + cmp r0, #0 + beq _0800BEE2 + movs r0, #1 + strb r0, [r6, #0xa] + ldrb r0, [r6, #6] + cmp r0, #0 + bne _0800BE7E + ldrb r0, [r5] + cmp r0, #0 + bne _0800BE7E + movs r0, #4 + strb r0, [r6, #0xa] +_0800BE7E: + ldrb r0, [r6, #0xa] + cmp r0, #1 + bne _0800BEC8 + movs r2, #0 + mov r4, sp + movs r5, #1 + mov ip, r6 + mov r3, ip + adds r3, #0x30 + movs r6, #0x34 + add r6, ip + mov sb, r6 +_0800BE96: + ldrb r0, [r4] + asrs r0, r2 + ands r0, r5 + cmp r0, #0 + beq _0800BEB4 + adds r0, r5, #0 + lsls r0, r2 + ldrb r1, [r3] + orrs r0, r1 + strb r0, [r3] + lsls r0, r2, #1 + add r0, sb + mov r6, ip + ldrh r1, [r6, #0x32] + strh r1, [r0] +_0800BEB4: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #3 + bls _0800BE96 + movs r0, #0x31 + b _0800BEDA + .align 2, 0 +_0800BEC4: .4byte 0x030041E0 +_0800BEC8: + movs r0, #0 + strb r0, [r6, #0xa] + mov r0, sp + ldrb r0, [r0] + bl sub_0800CDF0 + movs r0, #1 + mov r8, r0 + movs r0, #0x33 +_0800BEDA: + movs r1, #1 + bl sub_0800CDC8 + b _0800BEF6 +_0800BEE2: + mov r0, sp + ldrb r0, [r0] + bl sub_0800CDF0 + movs r1, #1 + mov r8, r1 + movs r0, #0x30 + movs r1, #2 + bl sub_0800CDC8 +_0800BEF6: + bl sub_0800D0CC +_0800BEFA: + ldr r0, _0800BFE4 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #1 + bne _0800BFD4 + ldrb r0, [r7] + cmp r0, #0 + beq _0800BF58 + movs r2, #0 + ldr r6, _0800BFE8 + movs r3, #1 + adds r4, r6, #0 + adds r4, #0x34 + adds r6, #0x30 + adds r5, r7, #0 +_0800BF18: + ldrb r0, [r6] + asrs r0, r2 + ands r0, r3 + cmp r0, #0 + beq _0800BF34 + ldrb r0, [r5] + asrs r0, r2 + ands r0, r3 + cmp r0, #0 + beq _0800BF34 + lsls r0, r2, #1 + adds r0, r0, r4 + movs r1, #0 + strh r1, [r0] +_0800BF34: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #3 + bls _0800BF18 + ldr r3, _0800BFE8 + adds r2, r3, #0 + adds r2, #0x30 + ldrb r1, [r7] + ldrb r0, [r2] + bics r0, r1 + strb r0, [r2] + ldrb r0, [r7] + strh r0, [r3, #0x14] + movs r0, #0x32 + movs r1, #1 + bl sub_0800CDC8 +_0800BF58: + ldr r0, _0800BFE8 + adds r3, r0, #0 + adds r3, #0x30 + ldrb r1, [r3] + adds r6, r0, #0 + cmp r1, #0 + beq _0800BFD0 + movs r4, #0 + movs r2, #0 + movs r5, #1 +_0800BF6C: + ldrb r0, [r3] + asrs r0, r2 + ands r0, r5 + cmp r0, #0 + beq _0800BF9E + lsls r1, r2, #1 + adds r0, r6, #0 + adds r0, #0x34 + adds r1, r1, r0 + ldrh r0, [r1] + cmp r0, #0 + beq _0800BF9E + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0800BF9E + adds r0, r5, #0 + lsls r0, r2 + ldrb r1, [r3] + bics r1, r0 + strb r1, [r3] + orrs r4, r0 + lsls r0, r4, #0x18 + lsrs r4, r0, #0x18 +_0800BF9E: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #3 + bls _0800BF6C + cmp r4, #0 + beq _0800BFC2 + adds r0, r4, #0 + bl sub_0800CDF0 + movs r6, #1 + mov r8, r6 + ldr r0, _0800BFE8 + strh r4, [r0, #0x14] + movs r0, #0x33 + movs r1, #1 + bl sub_0800CDC8 +_0800BFC2: + ldr r0, _0800BFE8 + adds r1, r0, #0 + adds r1, #0x30 + ldrb r1, [r1] + adds r6, r0, #0 + cmp r1, #0 + bne _0800BFD4 +_0800BFD0: + movs r0, #0 + strb r0, [r6, #0xa] +_0800BFD4: + mov r0, r8 + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0800BFE4: .4byte 0x03007630 +_0800BFE8: .4byte 0x030041E0 + thumb_func_end sub_0800BE28 + + thumb_func_start rfu_syncVBlank_ +rfu_syncVBlank_: @ 0x0800BFEC + push {lr} + bl rfu_syncVBlank + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0800C004 + movs r0, #0xf1 + movs r1, #0 + bl sub_0800CDC8 + bl sub_0800D0CC +_0800C004: + pop {r0} + bx r0 + thumb_func_end rfu_syncVBlank_ + + thumb_func_start sub_0800C008 +sub_0800C008: @ 0x0800C008 + push {r4, lr} + adds r3, r0, #0 + ldr r1, _0800C020 + ldr r2, [r1, #0x40] + cmp r2, #0 + bne _0800C024 + ldrb r0, [r1, #4] + cmp r0, #0 + beq _0800C024 + strb r2, [r1, #4] + b _0800C1F2 + .align 2, 0 +_0800C020: .4byte 0x030041E0 +_0800C024: + ldr r0, _0800C058 + ldrb r0, [r0, #7] + cmp r0, #0 + beq _0800C032 + adds r0, r3, #0 + bl sub_0800C200 +_0800C032: + ldr r4, _0800C058 + ldrb r0, [r4, #4] + cmp r0, #0 + bne _0800C03C + b _0800C1BC +_0800C03C: + bl rfu_waitREQComplete + movs r0, #1 + strb r0, [r4, #0xe] + ldrb r0, [r4, #4] + subs r0, #1 + cmp r0, #0x16 + bls _0800C04E + b _0800C1B2 +_0800C04E: + lsls r0, r0, #2 + ldr r1, _0800C05C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0800C058: .4byte 0x030041E0 +_0800C05C: .4byte 0x0800C060 +_0800C060: @ jump table + .4byte _0800C0E0 @ case 0 + .4byte _0800C118 @ case 1 + .4byte _0800C11E @ case 2 + .4byte _0800C134 @ case 3 + .4byte _0800C14C @ case 4 + .4byte _0800C152 @ case 5 + .4byte _0800C158 @ case 6 + .4byte _0800C1B2 @ case 7 + .4byte _0800C15E @ case 8 + .4byte _0800C164 @ case 9 + .4byte _0800C16A @ case 10 + .4byte _0800C170 @ case 11 + .4byte _0800C180 @ case 12 + .4byte _0800C186 @ case 13 + .4byte _0800C1B2 @ case 14 + .4byte _0800C18C @ case 15 + .4byte _0800C19C @ case 16 + .4byte _0800C1A2 @ case 17 + .4byte _0800C1A8 @ case 18 + .4byte _0800C1B2 @ case 19 + .4byte _0800C1AE @ case 20 + .4byte _0800C1B2 @ case 21 + .4byte _0800C0BC @ case 22 +_0800C0BC: + bl sub_0800B97C + ldr r1, _0800C0D8 + movs r2, #0xff + cmp r0, r1 + bne _0800C0CA + movs r2, #0x44 +_0800C0CA: + ldr r1, _0800C0DC + movs r0, #0 + strb r0, [r1, #5] + strb r0, [r1, #4] + adds r0, r2, #0 + b _0800C10A + .align 2, 0 +_0800C0D8: .4byte 0x00008001 +_0800C0DC: .4byte 0x030041E0 +_0800C0E0: + bl sub_0800B97C + ldr r1, _0800C0F8 + cmp r0, r1 + bne _0800C100 + ldr r0, _0800C0FC + ldrb r1, [r0, #5] + strb r1, [r0, #4] + movs r1, #3 + strb r1, [r0, #5] + b _0800C1B2 + .align 2, 0 +_0800C0F8: .4byte 0x00008001 +_0800C0FC: .4byte 0x030041E0 +_0800C100: + ldr r1, _0800C114 + movs r0, #0 + strb r0, [r1, #5] + strb r0, [r1, #4] + movs r0, #0xff +_0800C10A: + movs r1, #0 + bl sub_0800CDC8 + b _0800C1B2 + .align 2, 0 +_0800C114: .4byte 0x030041E0 +_0800C118: + bl rfu_REQ_reset + b _0800C1B2 +_0800C11E: + ldr r0, _0800C130 + ldr r2, [r0, #0x3c] + ldrh r0, [r2, #2] + ldrb r1, [r2] + ldrb r2, [r2, #1] + bl rfu_REQ_configSystem + b _0800C1B2 + .align 2, 0 +_0800C130: .4byte 0x030041E0 +_0800C134: + ldr r0, _0800C148 + ldr r3, [r0, #0x3c] + ldrb r0, [r3, #4] + ldrh r1, [r3, #6] + ldr r2, [r3, #8] + ldr r3, [r3, #0xc] + bl rfu_REQ_configGameData + b _0800C1B2 + .align 2, 0 +_0800C148: .4byte 0x030041E0 +_0800C14C: + bl rfu_REQ_startSearchChild + b _0800C1B2 +_0800C152: + bl rfu_REQ_pollSearchChild + b _0800C1B2 +_0800C158: + bl rfu_REQ_endSearchChild + b _0800C1B2 +_0800C15E: + bl rfu_REQ_startSearchParent + b _0800C1B2 +_0800C164: + bl rfu_REQ_pollSearchParent + b _0800C1B2 +_0800C16A: + bl rfu_REQ_endSearchParent + b _0800C1B2 +_0800C170: + ldr r0, _0800C17C + ldrh r0, [r0, #0x1e] + bl rfu_REQ_startConnectParent + b _0800C1B2 + .align 2, 0 +_0800C17C: .4byte 0x030041E0 +_0800C180: + bl rfu_REQ_pollConnectParent + b _0800C1B2 +_0800C186: + bl rfu_REQ_endConnectParent + b _0800C1B2 +_0800C18C: + ldr r0, _0800C198 + ldr r0, [r0] + ldrb r0, [r0, #3] + bl rfu_REQ_CHILD_startConnectRecovery + b _0800C1B2 + .align 2, 0 +_0800C198: .4byte 0x03007630 +_0800C19C: + bl rfu_REQ_CHILD_pollConnectRecovery + b _0800C1B2 +_0800C1A2: + bl rfu_REQ_CHILD_endConnectRecovery + b _0800C1B2 +_0800C1A8: + bl rfu_REQ_changeMasterSlave + b _0800C1B2 +_0800C1AE: + bl rfu_REQ_stopMode +_0800C1B2: + bl rfu_waitREQComplete + ldr r1, _0800C1F8 + movs r0, #0 + strb r0, [r1, #0xe] +_0800C1BC: + ldr r0, _0800C1F8 + ldrb r0, [r0, #4] + subs r0, #0x12 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0800C1CC + b _0800C032 +_0800C1CC: + ldr r0, _0800C1FC + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #1 + bne _0800C1E2 + movs r0, #0 + bl sub_0800BE28 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0800C1F2 +_0800C1E2: + bl sub_0800C9F0 + bl sub_0800CC14 + bl sub_0800CD24 + bl sub_0800CEF0 +_0800C1F2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800C1F8: .4byte 0x030041E0 +_0800C1FC: .4byte 0x03007630 + thumb_func_end sub_0800C008 + + thumb_func_start sub_0800C200 +sub_0800C200: @ 0x0800C200 + push {r4, lr} + adds r3, r0, #0 + ldr r0, _0800C224 + ldrb r1, [r0, #7] + adds r4, r0, #0 + cmp r1, #5 + bne _0800C22A + movs r2, #1 + strb r2, [r4, #6] + strb r1, [r4, #4] + ldrh r0, [r4, #0x1c] + strh r0, [r4, #0x1a] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0800C228 + movs r0, #6 + strb r0, [r4, #7] + b _0800C22A + .align 2, 0 +_0800C224: .4byte 0x030041E0 +_0800C228: + strb r2, [r4, #7] +_0800C22A: + ldrb r0, [r4, #7] + cmp r0, #1 + bne _0800C254 + strb r0, [r4, #6] + movs r0, #5 + strb r0, [r4, #4] + adds r0, r3, #0 + movs r1, #0x8c + bl __umodsi3 + strh r0, [r4, #0x1a] + movs r1, #0x8c + subs r1, r1, r0 + strh r1, [r4, #0x1c] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0800C250 + movs r0, #2 + b _0800C252 +_0800C250: + movs r0, #3 +_0800C252: + strb r0, [r4, #7] +_0800C254: + ldrb r0, [r4, #7] + cmp r0, #3 + bne _0800C26A + movs r0, #0 + strb r0, [r4, #6] + movs r0, #0x28 + strh r0, [r4, #0x1a] + movs r0, #4 + strb r0, [r4, #7] + movs r0, #9 + strb r0, [r4, #4] +_0800C26A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0800C200 + + thumb_func_start sub_0800C270 +sub_0800C270: @ 0x0800C270 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + ldr r0, _0800C2A8 + ldrb r1, [r0, #0xe] + adds r7, r0, #0 + cmp r1, #0 + bne _0800C28E + b _0800C754 +_0800C28E: + movs r0, #0 + strb r0, [r7, #0xe] + mov r0, r8 + subs r0, #0x10 + cmp r0, #0x2d + bls _0800C29C + b _0800C746 +_0800C29C: + lsls r0, r0, #2 + ldr r1, _0800C2AC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0800C2A8: .4byte 0x030041E0 +_0800C2AC: .4byte 0x0800C2B0 +_0800C2B0: @ jump table + .4byte _0800C368 @ case 0 + .4byte _0800C746 @ case 1 + .4byte _0800C746 @ case 2 + .4byte _0800C746 @ case 3 + .4byte _0800C746 @ case 4 + .4byte _0800C746 @ case 5 + .4byte _0800C394 @ case 6 + .4byte _0800C380 @ case 7 + .4byte _0800C746 @ case 8 + .4byte _0800C3A8 @ case 9 + .4byte _0800C3B8 @ case 10 + .4byte _0800C3DC @ case 11 + .4byte _0800C3FC @ case 12 + .4byte _0800C41C @ case 13 + .4byte _0800C48C @ case 14 + .4byte _0800C4BE @ case 15 + .4byte _0800C4D4 @ case 16 + .4byte _0800C51C @ case 17 + .4byte _0800C746 @ case 18 + .4byte _0800C746 @ case 19 + .4byte _0800C746 @ case 20 + .4byte _0800C746 @ case 21 + .4byte _0800C746 @ case 22 + .4byte _0800C694 @ case 23 + .4byte _0800C746 @ case 24 + .4byte _0800C746 @ case 25 + .4byte _0800C746 @ case 26 + .4byte _0800C746 @ case 27 + .4byte _0800C746 @ case 28 + .4byte _0800C746 @ case 29 + .4byte _0800C746 @ case 30 + .4byte _0800C746 @ case 31 + .4byte _0800C746 @ case 32 + .4byte _0800C746 @ case 33 + .4byte _0800C58C @ case 34 + .4byte _0800C5D8 @ case 35 + .4byte _0800C620 @ case 36 + .4byte _0800C746 @ case 37 + .4byte _0800C746 @ case 38 + .4byte _0800C746 @ case 39 + .4byte _0800C746 @ case 40 + .4byte _0800C746 @ case 41 + .4byte _0800C746 @ case 42 + .4byte _0800C746 @ case 43 + .4byte _0800C746 @ case 44 + .4byte _0800C734 @ case 45 +_0800C368: + cmp r6, #0 + beq _0800C36E + b _0800C746 +_0800C36E: + ldr r0, _0800C37C + ldrb r1, [r0, #5] + strb r1, [r0, #4] + movs r1, #4 + strb r1, [r0, #5] + b _0800C746 + .align 2, 0 +_0800C37C: .4byte 0x030041E0 +_0800C380: + cmp r6, #0 + beq _0800C386 + b _0800C746 +_0800C386: + ldr r0, _0800C390 + ldrb r1, [r0, #5] + strb r1, [r0, #4] + strb r6, [r0, #5] + b _0800C746 + .align 2, 0 +_0800C390: .4byte 0x030041E0 +_0800C394: + cmp r6, #0 + beq _0800C39A + b _0800C746 +_0800C39A: + ldr r0, _0800C3A4 + strb r6, [r0, #5] + strb r6, [r0, #4] + movs r0, #0 + b _0800C6B2 + .align 2, 0 +_0800C3A4: .4byte 0x030041E0 +_0800C3A8: + cmp r6, #0 + beq _0800C3AE + b _0800C746 +_0800C3AE: + ldr r1, _0800C3B4 + movs r0, #6 + b _0800C4C8 + .align 2, 0 +_0800C3B4: .4byte 0x030041E0 +_0800C3B8: + ldr r1, _0800C3D8 + ldrh r0, [r1, #0x1a] + cmp r0, #0 + bne _0800C3C2 + b _0800C746 +_0800C3C2: + subs r0, #1 + strh r0, [r1, #0x1a] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0800C3CE + b _0800C746 +_0800C3CE: + movs r0, #7 + strb r0, [r1, #4] + movs r0, #8 + strb r0, [r1, #5] + b _0800C746 + .align 2, 0 +_0800C3D8: .4byte 0x030041E0 +_0800C3DC: + cmp r6, #0 + beq _0800C3E2 + b _0800C746 +_0800C3E2: + ldr r0, _0800C3F8 + ldrb r1, [r0, #5] + strb r1, [r0, #4] + strb r6, [r0, #5] + ldrb r0, [r0, #7] + cmp r0, #0 + beq _0800C3F2 + b _0800C746 +_0800C3F2: + movs r0, #0x13 + b _0800C6B2 + .align 2, 0 +_0800C3F8: .4byte 0x030041E0 +_0800C3FC: + cmp r6, #0 + beq _0800C402 + b _0800C746 +_0800C402: + ldrb r0, [r7, #0xb] + cmp r0, #1 + bne _0800C412 + ldrh r0, [r7, #0x1a] + cmp r0, #1 + bls _0800C412 + subs r0, #1 + strh r0, [r7, #0x1a] +_0800C412: + ldr r1, _0800C418 + movs r0, #0xa + b _0800C4C8 + .align 2, 0 +_0800C418: .4byte 0x030041E0 +_0800C41C: + cmp r6, #0 + bne _0800C462 + bl sub_0800CD50 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, sp + strb r0, [r1] + ldr r4, _0800C484 + strh r0, [r4, #0x14] + cmp r0, #0 + beq _0800C43C + movs r0, #0x20 + movs r1, #1 + bl sub_0800CDC8 +_0800C43C: + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _0800C462 + ldrh r0, [r4, #0x1a] + cmp r0, #1 + beq _0800C462 + ldr r0, _0800C488 + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #4 + bne _0800C462 + bl rfu_REQ_endSearchParent + bl rfu_waitREQComplete + movs r0, #9 + strb r0, [r4, #4] + movs r0, #1 + strb r0, [r4, #0xb] +_0800C462: + ldr r1, _0800C484 + ldrh r0, [r1, #0x1a] + cmp r0, #0 + bne _0800C46C + b _0800C746 +_0800C46C: + subs r0, #1 + strh r0, [r1, #0x1a] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0800C478 + b _0800C746 +_0800C478: + movs r0, #0xb + strb r0, [r1, #4] + movs r0, #0 + strb r0, [r1, #5] + b _0800C746 + .align 2, 0 +_0800C484: .4byte 0x030041E0 +_0800C488: .4byte 0x03007630 +_0800C48C: + cmp r6, #0 + beq _0800C492 + b _0800C746 +_0800C492: + ldr r2, _0800C4AC + ldrb r0, [r2, #5] + strb r0, [r2, #4] + ldrb r1, [r2, #7] + cmp r1, #0 + bne _0800C4B0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0800C4A6 + b _0800C746 +_0800C4A6: + movs r0, #0x21 + b _0800C6B2 + .align 2, 0 +_0800C4AC: .4byte 0x030041E0 +_0800C4B0: + cmp r1, #7 + bne _0800C4B6 + b _0800C746 +_0800C4B6: + movs r0, #5 + strb r0, [r2, #4] + strb r0, [r2, #7] + b _0800C746 +_0800C4BE: + cmp r6, #0 + beq _0800C4C4 + b _0800C746 +_0800C4C4: + ldr r1, _0800C4D0 + movs r0, #0xd +_0800C4C8: + strb r0, [r1, #5] + strb r0, [r1, #4] + b _0800C746 + .align 2, 0 +_0800C4D0: .4byte 0x030041E0 +_0800C4D4: + cmp r6, #0 + bne _0800C4F8 + ldr r4, _0800C514 + mov r0, sp + adds r1, r4, #0 + bl rfu_getConnectParentStatus + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0800C4F8 + mov r0, sp + ldrb r0, [r0] + cmp r0, #0 + bne _0800C4F8 + adds r1, r4, #0 + subs r1, #0x10 + movs r0, #0xe + strb r0, [r1, #4] +_0800C4F8: + ldr r1, _0800C518 + ldrh r0, [r1, #0x1a] + cmp r0, #0 + bne _0800C502 + b _0800C746 +_0800C502: + subs r0, #1 + strh r0, [r1, #0x1a] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0800C50E + b _0800C746 +_0800C50E: + movs r0, #0xe + strb r0, [r1, #4] + b _0800C746 + .align 2, 0 +_0800C514: .4byte 0x030041F0 +_0800C518: .4byte 0x030041E0 +_0800C51C: + cmp r6, #0 + beq _0800C522 + b _0800C746 +_0800C522: + ldr r4, _0800C554 + mov r0, sp + adds r1, r4, #0 + bl rfu_getConnectParentStatus + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0800C534 + b _0800C746 +_0800C534: + mov r0, sp + ldrb r0, [r0] + cmp r0, #0 + bne _0800C558 + adds r1, r4, #0 + subs r1, #0x10 + movs r0, #0x13 + strb r0, [r1, #4] + movs r0, #0xf + strb r0, [r1, #5] + movs r0, #0x22 + strh r0, [r1, #0x1e] + ldrb r0, [r1, #0x10] + strh r0, [r1, #0x14] + b _0800C578 + .align 2, 0 +_0800C554: .4byte 0x030041F0 +_0800C558: + adds r1, r4, #0 + subs r1, #0x10 + strb r6, [r1, #5] + strb r6, [r1, #4] + movs r0, #0x23 + strh r0, [r1, #0x1e] + mov r0, sp + ldrb r0, [r0] + strh r0, [r1, #0x14] + ldrb r0, [r1, #7] + cmp r0, #0 + beq _0800C578 + movs r0, #3 + strb r0, [r1, #7] + movs r0, #9 + strb r0, [r1, #4] +_0800C578: + ldr r4, _0800C588 + ldrb r0, [r4, #0x1e] + movs r1, #1 + bl sub_0800CDC8 + movs r0, #0 + strh r0, [r4, #0x1e] + b _0800C746 + .align 2, 0 +_0800C588: .4byte 0x030041E0 +_0800C58C: + cmp r6, #0 + beq _0800C592 + b _0800C746 +_0800C592: + ldr r2, _0800C5D4 + ldr r3, [r2] + ldrb r0, [r3, #3] + movs r1, #0 + strh r0, [r7, #0x14] + movs r0, #0x11 + strb r0, [r7, #5] + strb r0, [r7, #4] + strb r1, [r7, #0x10] + ldrb r0, [r3, #3] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0800C5B0 + b _0800C746 +_0800C5B0: + adds r1, r7, #0 + movs r3, #1 +_0800C5B4: + ldrb r0, [r1, #0x10] + adds r0, #1 + strb r0, [r1, #0x10] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _0800C5C4 + b _0800C746 +_0800C5C4: + ldr r0, [r2] + ldrb r0, [r0, #3] + ldrb r4, [r7, #0x10] + asrs r0, r4 + ands r0, r3 + cmp r0, #0 + beq _0800C5B4 + b _0800C746 + .align 2, 0 +_0800C5D4: .4byte 0x03007630 +_0800C5D8: + cmp r6, #0 + bne _0800C5F6 + mov r0, sp + bl rfu_CHILD_getConnectRecoveryStatus + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0800C5F6 + mov r0, sp + ldrb r0, [r0] + cmp r0, #1 + bhi _0800C5F6 + ldr r1, _0800C61C + movs r0, #0x12 + strb r0, [r1, #4] +_0800C5F6: + ldr r2, _0800C61C + ldrb r0, [r2, #0x10] + lsls r0, r0, #1 + adds r1, r2, #0 + adds r1, #0x34 + adds r1, r0, r1 + ldrh r0, [r1] + cmp r0, #0 + bne _0800C60A + b _0800C746 +_0800C60A: + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0800C616 + b _0800C746 +_0800C616: + movs r0, #0x12 + strb r0, [r2, #4] + b _0800C746 + .align 2, 0 +_0800C61C: .4byte 0x030041E0 +_0800C620: + cmp r6, #0 + beq _0800C626 + b _0800C746 +_0800C626: + mov r0, sp + bl rfu_CHILD_getConnectRecoveryStatus + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0800C634 + b _0800C746 +_0800C634: + mov r0, sp + ldrb r0, [r0] + cmp r0, #0 + bne _0800C650 + ldr r1, _0800C64C + movs r0, #0x13 + strb r0, [r1, #4] + movs r0, #0x16 + strb r0, [r1, #5] + movs r0, #0x32 + strh r0, [r1, #0x1e] + b _0800C664 + .align 2, 0 +_0800C64C: .4byte 0x030041E0 +_0800C650: + ldr r4, _0800C68C + strb r6, [r4, #5] + strb r6, [r4, #4] + ldr r0, _0800C690 + ldr r0, [r0] + ldrb r0, [r0, #3] + bl sub_0800CDF0 + movs r0, #0x33 + strh r0, [r4, #0x1e] +_0800C664: + ldr r5, _0800C68C + ldrb r0, [r5, #0x10] + lsls r0, r0, #1 + adds r1, r5, #0 + adds r1, #0x34 + adds r0, r0, r1 + movs r1, #0 + movs r4, #0 + strh r4, [r0] + adds r0, r5, #0 + adds r0, #0x30 + strb r1, [r0] + strb r1, [r5, #0xa] + ldrb r0, [r5, #0x1e] + movs r1, #1 + bl sub_0800CDC8 + strh r4, [r5, #0x1e] + b _0800C746 + .align 2, 0 +_0800C68C: .4byte 0x030041E0 +_0800C690: .4byte 0x03007630 +_0800C694: + cmp r6, #0 + bne _0800C746 + ldr r5, _0800C6BC + ldrb r1, [r5, #5] + adds r0, r1, #0 + cmp r0, #0x16 + bne _0800C6C0 + ldrb r0, [r5, #0x11] + strb r0, [r5, #4] + ldrb r0, [r5, #0x12] + strb r0, [r5, #5] + ldrb r0, [r5, #2] + movs r0, #1 + strb r0, [r5, #2] + movs r0, #0x41 +_0800C6B2: + movs r1, #0 + bl sub_0800CDC8 + b _0800C746 + .align 2, 0 +_0800C6BC: .4byte 0x030041E0 +_0800C6C0: + cmp r0, #0xf + bne _0800C746 + strb r1, [r5, #4] + ldrb r0, [r5, #2] + movs r4, #1 + strb r4, [r5, #2] + movs r0, #0x41 + movs r1, #0 + bl sub_0800CDC8 + adds r1, r5, #0 + adds r1, #0x24 + ldrb r0, [r5, #0x10] + lsls r4, r0 + ldrb r0, [r1] + orrs r4, r0 + strb r4, [r1] + ldrb r0, [r5, #0x10] + lsls r0, r0, #1 + adds r1, #4 + adds r0, r0, r1 + ldrh r1, [r5, #0x26] + movs r7, #0 + strh r1, [r0] + ldrb r1, [r5, #0x10] + movs r0, #4 + bl rfu_clearSlot + mov r4, sp + ldrb r0, [r5, #0x10] + movs r1, #0xe + bl rfu_NI_CHILD_setSendGameName + strb r0, [r4] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0800C746 + strb r7, [r5, #5] + strb r7, [r5, #4] + bl sub_0800D0CC + ldr r0, _0800C730 + ldr r0, [r0] + ldrb r1, [r0, #2] + ldrb r0, [r0, #3] + orrs r0, r1 + bl sub_0800CDF0 + mov r0, sp + ldrb r0, [r0] + strh r0, [r5, #0x14] + movs r0, #0x25 + movs r1, #1 + bl sub_0800CDC8 + b _0800C746 + .align 2, 0 +_0800C730: .4byte 0x03007630 +_0800C734: + cmp r6, #0 + bne _0800C746 + ldr r0, _0800C750 + strb r6, [r0, #5] + strb r6, [r0, #4] + movs r0, #0x42 + movs r1, #0 + bl sub_0800CDC8 +_0800C746: + ldr r1, _0800C750 + movs r0, #1 + strb r0, [r1, #0xe] + b _0800C7A2 + .align 2, 0 +_0800C750: .4byte 0x030041E0 +_0800C754: + cmp r6, #3 + bne _0800C7A2 + ldrb r0, [r7, #0xf] + cmp r0, #0 + beq _0800C7A2 + mov r3, r8 + cmp r3, #0x24 + beq _0800C76C + cmp r3, #0x26 + beq _0800C76C + cmp r3, #0x27 + bne _0800C7A2 +_0800C76C: + bl rfu_REQ_RFUStatus + bl rfu_waitREQComplete + mov r0, sp + bl rfu_getRFUStatus + mov r0, sp + ldrb r0, [r0] + cmp r0, #0 + bne _0800C7A2 + ldr r4, _0800C7B8 + ldr r0, [r4] + ldrb r0, [r0] + cmp r0, #0 + bne _0800C7A2 + bl rfu_getSTWIRecvBuffer + ldr r1, [r4] + ldrb r1, [r1, #2] + strb r1, [r0, #4] + movs r1, #1 + strb r1, [r0, #5] + movs r0, #0x29 + bl sub_0800BE28 + movs r6, #0 +_0800C7A2: + mov r4, r8 + cmp r4, #0x26 + bne _0800C7AA + b _0800C8BE +_0800C7AA: + cmp r4, #0x26 + bgt _0800C7BC + cmp r4, #0x10 + bne _0800C7B4 + b _0800C8DC +_0800C7B4: + b _0800C8FA + .align 2, 0 +_0800C7B8: .4byte 0x03007630 +_0800C7BC: + mov r0, r8 + cmp r0, #0x30 + beq _0800C7CA + cmp r0, #0x3d + bne _0800C7C8 + b _0800C8DC +_0800C7C8: + b _0800C8FA +_0800C7CA: + cmp r6, #0 + beq _0800C7D0 + b _0800C8FE +_0800C7D0: + bl rfu_getSTWIRecvBuffer + ldr r4, _0800C880 + ldrb r0, [r0, #8] + strh r0, [r4, #0x14] + bl sub_0800CE14 + adds r2, r4, #0 + adds r2, #0x30 + ldrb r1, [r2] + cmp r1, #0 + beq _0800C826 + ldrb r0, [r4, #0x14] + adds r3, r1, #0 + bics r3, r0 + adds r0, r3, #0 + strb r0, [r2] + movs r3, #0 + adds r7, r4, #0 + adds r1, r7, #0 + movs r5, #1 + adds r4, r1, #0 + adds r4, #0x34 + movs r2, #0 +_0800C800: + ldrh r0, [r1, #0x14] + asrs r0, r3 + ands r0, r5 + cmp r0, #0 + beq _0800C810 + lsls r0, r3, #1 + adds r0, r0, r4 + strh r2, [r0] +_0800C810: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #3 + bls _0800C800 + ldr r1, _0800C880 + ldrb r0, [r1, #6] + cmp r0, #0 + bne _0800C826 + strb r0, [r1, #5] + strb r0, [r1, #4] +_0800C826: + mov r3, sp + ldr r1, _0800C880 + ldrb r2, [r1] + ldrb r0, [r1, #0x14] + ands r0, r2 + strb r0, [r3] + movs r3, #0 + adds r7, r1, #0 + ldr r2, _0800C884 + mov r1, sp + movs r5, #1 + adds r4, r7, #0 +_0800C83E: + ldrb r0, [r1] + asrs r0, r3 + ands r0, r5 + cmp r0, #0 + beq _0800C852 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _0800C852 + subs r0, #1 + strb r0, [r7, #1] +_0800C852: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #3 + bls _0800C83E + ldrb r1, [r7, #0x14] + ldrb r0, [r7] + bics r0, r1 + strb r0, [r7] + ldrb r1, [r7, #7] + cmp r1, #0 + beq _0800C89C + ldr r0, [r2] + ldrb r0, [r0] + cmp r0, #0xff + bne _0800C8AE + cmp r1, #8 + bne _0800C888 + ldrh r0, [r7, #0x1c] + strh r0, [r7, #0x1a] + movs r0, #6 + strb r0, [r7, #7] + b _0800C89A + .align 2, 0 +_0800C880: .4byte 0x030041E0 +_0800C884: .4byte 0x03007630 +_0800C888: + ldrb r0, [r7, #4] + subs r0, #6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _0800C89C + movs r0, #1 + strb r0, [r7, #7] + movs r0, #5 +_0800C89A: + strb r0, [r7, #4] +_0800C89C: + ldr r0, [r2] + ldrb r0, [r0] + cmp r0, #0xff + bne _0800C8AE + ldrb r0, [r7, #4] + cmp r0, #0 + bne _0800C8AE + movs r0, #0xff + strb r0, [r7, #6] +_0800C8AE: + ldrb r0, [r7, #0xe] + cmp r0, #0 + bne _0800C8FA + movs r0, #0x40 + movs r1, #1 + bl sub_0800CDC8 + b _0800C8FA +_0800C8BE: + bl sub_0800CCC8 + ldr r0, _0800C8D8 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #0xff + beq _0800C8FA + movs r0, #0x50 + movs r1, #0 + bl sub_0800CDC8 + b _0800C8FA + .align 2, 0 +_0800C8D8: .4byte 0x03007630 +_0800C8DC: + cmp r6, #0 + bne _0800C8FE + ldr r0, _0800C928 + strb r6, [r0, #0xd] + strb r6, [r0, #1] + strb r6, [r0] + movs r1, #0xff + strb r1, [r0, #6] + bl sub_0800D0CC + mov r4, r8 + cmp r4, #0x3d + bne _0800C8FA + bl sub_0800BA5C +_0800C8FA: + cmp r6, #0 + beq _0800C94E +_0800C8FE: + ldr r7, _0800C928 + mov r0, r8 + cmp r0, #0x1c + bne _0800C930 + cmp r6, #0 + beq _0800C930 + ldrb r0, [r7, #7] + cmp r0, #4 + bne _0800C930 + ldr r2, _0800C92C + ldr r1, [r2] + movs r0, #1 + strb r0, [r1] + ldr r1, [r2] + movs r0, #0xf + strb r0, [r1, #2] + bl sub_0800CDF0 + bl rfu_waitREQComplete + b _0800C960 + .align 2, 0 +_0800C928: .4byte 0x030041E0 +_0800C92C: .4byte 0x03007630 +_0800C930: + movs r1, #0 + mov r3, r8 + strh r3, [r7, #0x14] + strh r6, [r7, #0x16] + ldrb r0, [r7, #0xe] + cmp r0, #0 + beq _0800C942 + strb r1, [r7, #5] + strb r1, [r7, #4] +_0800C942: + movs r0, #0xf0 + movs r1, #2 + bl sub_0800CDC8 + bl sub_0800D0CC +_0800C94E: + mov r4, r8 + cmp r4, #0xff + bne _0800C960 + movs r0, #0xf2 + movs r1, #0 + bl sub_0800CDC8 + bl sub_0800D0CC +_0800C960: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_0800C270 + + thumb_func_start sub_0800C96C +sub_0800C96C: @ 0x0800C96C + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r4, _0800C9A0 + ldrb r7, [r4, #0xe] + movs r0, #0 + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r4, #0xf] + ldr r0, _0800C9A4 + ldr r0, [r0] + ldrb r5, [r0] + cmp r5, #0 + bne _0800C9A8 + adds r0, r6, #0 + bl sub_0800BE28 + ldrb r0, [r4, #2] + cmp r0, #1 + beq _0800C9C0 + bl sub_0800D0CC + strb r5, [r4, #0xf] + strb r7, [r4, #0xe] + b _0800C9E4 + .align 2, 0 +_0800C9A0: .4byte 0x030041E0 +_0800C9A4: .4byte 0x03007630 +_0800C9A8: + mov r0, sp + bl rfu_UNI_PARENT_getDRAC_ACK + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0800C9C0 + mov r1, sp + ldrb r0, [r4, #3] + ldrb r1, [r1] + orrs r0, r1 + ldrb r1, [r4, #3] + strb r0, [r4, #3] +_0800C9C0: + ldr r4, _0800C9EC + ldr r1, [r4, #0x44] + cmp r1, #0 + beq _0800C9DC + adds r0, r6, #0 + bl _call_via_r1 + bl rfu_waitREQComplete + ldrb r0, [r4, #2] + cmp r0, #2 + bne _0800C9DC + bl sub_0800D0CC +_0800C9DC: + ldr r1, _0800C9EC + movs r0, #0 + strb r0, [r1, #0xf] + strb r7, [r1, #0xe] +_0800C9E4: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800C9EC: .4byte 0x030041E0 + thumb_func_end sub_0800C96C + + thumb_func_start sub_0800C9F0 +sub_0800C9F0: @ 0x0800C9F0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r1, _0800CA74 + ldrb r0, [r1, #4] + subs r0, #5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r3, r1, #0 + cmp r0, #3 + bls _0800CA0E + b _0800CC02 +_0800CA0E: + ldr r0, _0800CA78 + ldr r2, [r0] + ldrb r1, [r2, #2] + ldrb r0, [r3, #0xc] + adds r4, r1, #0 + eors r4, r0 + ands r4, r1 + ldrb r0, [r2, #7] + bics r4, r0 + mov r8, r4 + strb r1, [r3, #0xc] + cmp r4, #0 + beq _0800CA36 + strh r4, [r3, #0x14] + movs r0, #0x10 + movs r1, #1 + str r3, [sp, #4] + bl sub_0800CDC8 + ldr r3, [sp, #4] +_0800CA36: + movs r0, #0 + str r0, [sp] + movs r6, #0 + adds r7, r3, #0 + movs r1, #0x24 + adds r1, r1, r3 + mov sb, r1 +_0800CA44: + movs r0, #0x80 + lsls r0, r0, #0x11 + lsls r0, r6 + lsrs r4, r0, #0x18 + movs r5, #0 + mov r0, r8 + ands r0, r4 + cmp r0, #0 + beq _0800CA96 + lsls r1, r6, #1 + adds r0, r7, #0 + adds r0, #0x28 + adds r1, r1, r0 + ldrh r0, [r7, #0x26] + strh r0, [r1] + mov r2, sb + ldrb r1, [r2] + adds r0, r4, #0 + orrs r0, r1 + strb r0, [r2] + adds r6, #1 + mov sl, r6 + b _0800CB4C + .align 2, 0 +_0800CA74: .4byte 0x030041E0 +_0800CA78: .4byte 0x03007630 +_0800CA7C: + ldrb r1, [r7] + adds r0, r4, #0 + orrs r0, r1 + strb r0, [r7] + ldrb r0, [r7, #1] + adds r0, #1 + strb r0, [r7, #1] + ldr r0, [sp] + orrs r0, r4 + str r0, [sp] + movs r0, #1 + orrs r5, r0 + b _0800CAE0 +_0800CA96: + mov r1, sb + ldrb r0, [r1] + ands r0, r4 + adds r2, r6, #1 + mov sl, r2 + cmp r0, #0 + beq _0800CB4C + ldr r0, _0800CAF0 + lsls r1, r6, #2 + adds r1, r1, r0 + ldr r1, [r1] + ldrh r0, [r1, #0x34] + cmp r0, #0x46 + bne _0800CAFC + adds r0, r1, #0 + adds r0, #0x61 + ldrb r0, [r0] + cmp r0, #1 + bne _0800CB14 + movs r5, #2 + ldr r3, [r3, #0x20] + ldrh r2, [r3] + ldr r0, _0800CAF4 + cmp r2, r0 + beq _0800CAE0 + ldr r0, _0800CAF8 + ldr r0, [r0] + lsls r1, r6, #5 + adds r0, r0, r1 + ldrh r0, [r0, #0x18] + ldr r1, _0800CAF4 +_0800CAD4: + cmp r0, r2 + beq _0800CA7C + adds r3, #2 + ldrh r2, [r3] + cmp r2, r1 + bne _0800CAD4 +_0800CAE0: + movs r0, #1 + ands r0, r5 + cmp r0, #0 + bne _0800CB14 + movs r0, #4 + orrs r5, r0 + b _0800CB14 + .align 2, 0 +_0800CAF0: .4byte 0x03007620 +_0800CAF4: .4byte 0x0000FFFF +_0800CAF8: .4byte 0x03007630 +_0800CAFC: + lsls r1, r6, #1 + adds r0, r3, #0 + adds r0, #0x28 + adds r1, r1, r0 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + ldr r1, _0800CBD0 + ands r0, r1 + cmp r0, #0 + bne _0800CB14 + movs r5, #6 +_0800CB14: + movs r0, #2 + ands r0, r5 + cmp r0, #0 + beq _0800CB3A + mov r2, sb + ldrb r0, [r2] + bics r0, r4 + movs r2, #0 + mov r1, sb + strb r0, [r1] + lsls r0, r6, #1 + adds r1, r7, #0 + adds r1, #0x28 + adds r0, r0, r1 + strh r2, [r0] + movs r0, #8 + adds r1, r6, #0 + bl rfu_clearSlot +_0800CB3A: + movs r0, #4 + ands r5, r0 + ldr r3, _0800CBD4 + cmp r5, #0 + beq _0800CB4C + ldrb r1, [r7, #0xd] + adds r0, r4, #0 + orrs r0, r1 + strb r0, [r7, #0xd] +_0800CB4C: + mov r2, sl + lsls r0, r2, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #3 + bhi _0800CB58 + b _0800CA44 +_0800CB58: + ldr r4, [sp] + cmp r4, #0 + beq _0800CB6A + ldr r0, _0800CBD4 + strh r4, [r0, #0x14] + movs r0, #0x11 + movs r1, #1 + bl sub_0800CDC8 +_0800CB6A: + ldr r1, _0800CBD4 + ldrb r0, [r1, #0xd] + cmp r0, #0 + beq _0800CBA6 + movs r5, #1 + ldr r0, _0800CBD8 + ldr r0, [r0] + ldrb r0, [r0, #6] + cmp r0, #0 + beq _0800CB8A + ldrb r0, [r1, #3] + ldrb r1, [r1] + ands r0, r1 + cmp r0, r1 + beq _0800CB8A + movs r5, #0 +_0800CB8A: + cmp r5, #0 + beq _0800CBA6 + ldr r4, _0800CBD4 + ldrb r0, [r4, #0xd] + bl sub_0800CDF0 + ldrb r0, [r4, #0xd] + movs r1, #0 + strh r0, [r4, #0x14] + strb r1, [r4, #0xd] + movs r0, #0x12 + movs r1, #1 + bl sub_0800CDC8 +_0800CBA6: + ldr r0, _0800CBD4 + adds r1, r0, #0 + adds r1, #0x24 + ldrb r1, [r1] + adds r3, r0, #0 + cmp r1, #0 + bne _0800CC02 + ldrb r0, [r3, #4] + cmp r0, #8 + bne _0800CC02 + ldrb r0, [r3, #7] + cmp r0, #0 + bne _0800CBDC + strb r0, [r3, #5] + strb r0, [r3, #4] + movs r0, #0x14 + movs r1, #0 + bl sub_0800CDC8 + b _0800CC02 + .align 2, 0 +_0800CBD0: .4byte 0x0000FFFF +_0800CBD4: .4byte 0x030041E0 +_0800CBD8: .4byte 0x03007630 +_0800CBDC: + cmp r0, #2 + bne _0800CBE8 + movs r0, #3 + strb r0, [r3, #7] + movs r0, #9 + b _0800CBEE +_0800CBE8: + movs r0, #1 + strb r0, [r3, #7] + movs r0, #5 +_0800CBEE: + strb r0, [r3, #4] + ldrb r0, [r3] + cmp r0, #0 + beq _0800CC02 + movs r0, #0 + strh r0, [r3, #0x1a] + movs r0, #8 + strb r0, [r3, #7] + movs r0, #5 + strb r0, [r3, #4] +_0800CC02: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0800C9F0 + + thumb_func_start sub_0800CC14 +sub_0800CC14: @ 0x0800CC14 + push {r4, r5, r6, lr} + ldr r1, _0800CCB8 + ldrh r0, [r1] + adds r6, r0, #0 + movs r0, #0 + strh r0, [r1] + ldr r4, _0800CCBC + ldrb r0, [r4, #4] + cmp r0, #0xf + bne _0800CC78 + ldrb r1, [r4, #0x10] + lsls r1, r1, #1 + adds r5, r4, #0 + adds r5, #0x28 + adds r1, r1, r5 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0800CC4E + ldr r1, _0800CCC0 + ldrb r0, [r4, #0x10] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldrh r0, [r0] + cmp r0, #0x27 + bne _0800CC78 +_0800CC4E: + bl sub_0800D0EC + movs r0, #0x18 + strb r0, [r4, #4] + ldrb r1, [r4, #0x10] + movs r0, #4 + bl rfu_clearSlot + adds r2, r4, #0 + adds r2, #0x24 + movs r1, #1 + ldrb r0, [r4, #0x10] + lsls r1, r0 + ldrb r0, [r2] + bics r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0x10] + lsls r0, r0, #1 + adds r0, r0, r5 + movs r1, #0 + strh r1, [r0] +_0800CC78: + ldr r0, _0800CCB8 + strh r6, [r0] + ldr r5, _0800CCBC + ldrb r0, [r5, #4] + cmp r0, #0x18 + bne _0800CCB2 + ldrb r0, [r5, #2] + cmp r0, #1 + bne _0800CC8E + bl sub_0800D0EC +_0800CC8E: + ldrb r0, [r5, #2] + adds r4, r0, #0 + cmp r4, #0 + bne _0800CCB2 + strb r4, [r5, #5] + strb r4, [r5, #4] + ldr r0, _0800CCC4 + ldr r0, [r0] + ldrb r1, [r0, #2] + ldrb r0, [r0, #3] + orrs r0, r1 + bl sub_0800CDF0 + strh r4, [r5, #0x14] + movs r0, #0x25 + movs r1, #1 + bl sub_0800CDC8 +_0800CCB2: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0800CCB8: .4byte 0x04000208 +_0800CCBC: .4byte 0x030041E0 +_0800CCC0: .4byte 0x03007620 +_0800CCC4: .4byte 0x03007630 + thumb_func_end sub_0800CC14 + + thumb_func_start sub_0800CCC8 +sub_0800CCC8: @ 0x0800CCC8 + push {r4, r5, lr} + ldr r5, _0800CD1C + ldrb r0, [r5, #4] + cmp r0, #0xf + bne _0800CD14 + ldr r1, _0800CD20 + ldrb r2, [r5, #0x10] + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldrh r0, [r0] + cmp r0, #0x26 + bne _0800CD14 + movs r4, #0 + strb r4, [r5, #5] + strb r4, [r5, #4] + movs r0, #4 + adds r1, r2, #0 + bl rfu_clearSlot + adds r2, r5, #0 + adds r2, #0x24 + movs r1, #1 + ldrb r0, [r5, #0x10] + lsls r1, r0 + ldrb r0, [r2] + bics r0, r1 + strb r0, [r2] + ldrb r0, [r5, #0x10] + lsls r0, r0, #1 + adds r1, r5, #0 + adds r1, #0x28 + adds r0, r0, r1 + strh r4, [r0] + movs r0, #0x24 + movs r1, #0 + bl sub_0800CDC8 +_0800CD14: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0800CD1C: .4byte 0x030041E0 +_0800CD20: .4byte 0x03007620 + thumb_func_end sub_0800CCC8 + + thumb_func_start sub_0800CD24 +sub_0800CD24: @ 0x0800CD24 + push {lr} + ldr r1, _0800CD4C + ldrb r0, [r1, #6] + cmp r0, #0 + bne _0800CD48 + ldrb r0, [r1, #0xa] + cmp r0, #1 + bne _0800CD48 + ldrb r0, [r1, #4] + strb r0, [r1, #0x11] + ldrb r0, [r1, #5] + strb r0, [r1, #0x12] + movs r0, #0x10 + strb r0, [r1, #4] + movs r0, #0x11 + strb r0, [r1, #5] + movs r0, #2 + strb r0, [r1, #0xa] +_0800CD48: + pop {r0} + bx r0 + .align 2, 0 +_0800CD4C: .4byte 0x030041E0 + thumb_func_end sub_0800CD24 + + thumb_func_start sub_0800CD50 +sub_0800CD50: @ 0x0800CD50 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + movs r6, #0 + movs r5, #0 + ldr r1, _0800CDBC + ldr r0, [r1] + ldrb r0, [r0, #8] + cmp r6, r0 + bhs _0800CDAC + mov r8, r0 + ldr r0, _0800CDC0 + mov sl, r0 + mov sb, r1 +_0800CD70: + mov r1, sl + ldr r3, [r1, #0x20] + ldrh r2, [r3] + adds r0, r5, #1 + mov ip, r0 + ldr r1, _0800CDC4 + cmp r2, r1 + beq _0800CDA2 + mov r1, sb + ldr r0, [r1] + lsls r1, r5, #5 + adds r0, r0, r1 + ldrh r4, [r0, #0x18] + ldr r7, _0800CDC4 + movs r1, #1 + lsls r1, r5 +_0800CD90: + cmp r4, r2 + bne _0800CD9A + orrs r6, r1 + lsls r0, r6, #0x18 + lsrs r6, r0, #0x18 +_0800CD9A: + adds r3, #2 + ldrh r2, [r3] + cmp r2, r7 + bne _0800CD90 +_0800CDA2: + mov r1, ip + lsls r0, r1, #0x18 + lsrs r5, r0, #0x18 + cmp r5, r8 + blo _0800CD70 +_0800CDAC: + adds r0, r6, #0 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0800CDBC: .4byte 0x03007630 +_0800CDC0: .4byte 0x030041E0 +_0800CDC4: .4byte 0x0000FFFF + thumb_func_end sub_0800CD50 + + thumb_func_start sub_0800CDC8 +sub_0800CDC8: @ 0x0800CDC8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r4, _0800CDEC + ldr r2, [r4, #0x40] + cmp r2, #0 + beq _0800CDDE + bl _call_via_r2 +_0800CDDE: + movs r0, #0 + strh r0, [r4, #0x16] + strh r0, [r4, #0x14] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800CDEC: .4byte 0x030041E0 + thumb_func_end sub_0800CDC8 + + thumb_func_start sub_0800CDF0 +sub_0800CDF0: @ 0x0800CDF0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _0800CE10 + ldrb r5, [r4, #0xe] + movs r1, #1 + strb r1, [r4, #0xe] + bl rfu_REQ_disconnect + bl rfu_waitREQComplete + strb r5, [r4, #0xe] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0800CE10: .4byte 0x030041E0 + thumb_func_end sub_0800CDF0 + + thumb_func_start sub_0800CE14 +sub_0800CE14: @ 0x0800CE14 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _0800CEE0 + ldr r0, [r0] + ldrb r0, [r0, #4] + cmp r0, #0 + beq _0800CE5C + movs r4, #0 +_0800CE26: + ldr r1, _0800CEE4 + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r2, [r0] + ldrh r0, [r2] + movs r3, #0x80 + lsls r3, r3, #8 + adds r1, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _0800CE52 + ldrb r1, [r2, #0x1a] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _0800CE52 + adds r2, r1, #0 + bics r2, r5 + movs r0, #0x20 + adds r1, r4, #0 + bl rfu_changeSendTarget +_0800CE52: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _0800CE26 +_0800CE5C: + ldr r0, _0800CEE0 + ldr r0, [r0] + ldrb r0, [r0, #5] + cmp r0, #0 + beq _0800CE9A + movs r4, #0 +_0800CE68: + ldr r1, _0800CEE4 + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r2, [r0] + ldrh r0, [r2, #0x34] + movs r3, #0x80 + lsls r3, r3, #8 + adds r1, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _0800CE90 + adds r0, r2, #0 + adds r0, #0x4e + ldrb r0, [r0] + ands r0, r5 + cmp r0, #0 + beq _0800CE90 + adds r0, r4, #0 + bl rfu_NI_stopReceivingData +_0800CE90: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _0800CE68 +_0800CE9A: + ldr r0, _0800CEE0 + ldr r3, [r0] + ldrb r2, [r3, #6] + cmp r2, #0 + beq _0800CED8 + mvns r1, r5 + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3, #6] + movs r4, #0 + ldr r7, _0800CEE8 + ldr r6, _0800CEEC +_0800CEB2: + lsls r0, r4, #2 + adds r0, r0, r7 + ldr r2, [r0] + ldrh r0, [r2] + cmp r0, r6 + bne _0800CECE + ldrb r3, [r2, #3] + adds r0, r5, #0 + ands r0, r3 + cmp r0, #0 + beq _0800CECE + adds r0, r1, #0 + ands r0, r3 + strb r0, [r2, #3] +_0800CECE: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _0800CEB2 +_0800CED8: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800CEE0: .4byte 0x03007630 +_0800CEE4: .4byte 0x03007620 +_0800CEE8: .4byte 0x03007610 +_0800CEEC: .4byte 0x00008024 + thumb_func_end sub_0800CE14 + + thumb_func_start sub_0800CEF0 +sub_0800CEF0: @ 0x0800CEF0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r0, _0800CFDC + ldrh r0, [r0, #0x18] + cmp r0, #0 + beq _0800CFCC + ldr r0, _0800CFE0 + ldr r0, [r0] + ldrb r0, [r0, #4] + cmp r0, #0 + beq _0800CF90 + movs r6, #0 +_0800CF10: + ldr r3, _0800CFE4 + lsls r2, r6, #2 + adds r0, r2, r3 + ldr r0, [r0] + ldrh r1, [r0] + movs r4, #0x80 + lsls r4, r4, #8 + adds r0, r4, #0 + ands r1, r0 + adds r7, r2, #0 + adds r0, r6, #1 + mov sb, r0 + cmp r1, #0 + beq _0800CF86 + movs r5, #0 + movs r4, #0 + movs r1, #1 + mov r8, r1 + mov sl, r3 +_0800CF36: + adds r0, r7, r3 + ldr r0, [r0] + ldrb r0, [r0, #0x1a] + asrs r0, r4 + mov r1, r8 + ands r0, r1 + cmp r0, #0 + beq _0800CF60 + lsls r0, r4, #2 + adds r0, r0, r3 + ldr r0, [r0] + ldr r1, _0800CFDC + ldrh r0, [r0, #2] + ldrh r1, [r1, #0x18] + cmp r0, r1 + bls _0800CF60 + mov r0, r8 + lsls r0, r4 + orrs r5, r0 + lsls r0, r5, #0x18 + lsrs r5, r0, #0x18 +_0800CF60: + cmp r5, #0 + beq _0800CF7C + mov r1, sl + adds r0, r7, r1 + ldr r0, [r0] + ldrb r0, [r0, #0x1a] + adds r2, r5, #0 + eors r2, r0 + movs r0, #0x20 + adds r1, r6, #0 + str r3, [sp] + bl rfu_changeSendTarget + ldr r3, [sp] +_0800CF7C: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _0800CF36 +_0800CF86: + mov r3, sb + lsls r0, r3, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #3 + bls _0800CF10 +_0800CF90: + ldr r0, _0800CFE0 + ldr r0, [r0] + ldrb r0, [r0, #5] + cmp r0, #0 + beq _0800CFCC + movs r6, #0 +_0800CF9C: + ldr r1, _0800CFE4 + lsls r0, r6, #2 + adds r0, r0, r1 + ldr r2, [r0] + ldrh r0, [r2, #0x34] + movs r4, #0x80 + lsls r4, r4, #8 + adds r1, r4, #0 + ands r0, r1 + cmp r0, #0 + beq _0800CFC2 + ldr r1, _0800CFDC + ldrh r0, [r2, #0x36] + ldrh r1, [r1, #0x18] + cmp r0, r1 + bls _0800CFC2 + adds r0, r6, #0 + bl rfu_NI_stopReceivingData +_0800CFC2: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #3 + bls _0800CF9C +_0800CFCC: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800CFDC: .4byte 0x030041E0 +_0800CFE0: .4byte 0x03007630 +_0800CFE4: .4byte 0x03007620 + thumb_func_end sub_0800CEF0 + + thumb_func_start sub_0800CFE8 +sub_0800CFE8: @ 0x0800CFE8 + push {lr} + ldr r1, _0800CFF8 + str r0, [r1, #0x44] + ldr r0, _0800CFFC + bl rfu_setMSCCallback + pop {r0} + bx r0 + .align 2, 0 +_0800CFF8: .4byte 0x030041E0 +_0800CFFC: .4byte 0x0800C96D + thumb_func_end sub_0800CFE8 + + thumb_func_start sub_0800D000 +sub_0800D000: @ 0x0800D000 + ldr r1, _0800D008 + str r0, [r1, #0x40] + bx lr + .align 2, 0 +_0800D008: .4byte 0x030041E0 + thumb_func_end sub_0800D000 + + thumb_func_start sub_0800D00C +sub_0800D00C: @ 0x0800D00C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + ldr r0, _0800D030 + ldrb r1, [r0, #9] + adds r3, r0, #0 + cmp r1, #0 + beq _0800D034 + cmp r4, #0 + bne _0800D034 + adds r0, #0x30 + ldrb r0, [r0] + cmp r0, #0 + beq _0800D034 + movs r0, #5 + b _0800D044 + .align 2, 0 +_0800D030: .4byte 0x030041E0 +_0800D034: + ldr r2, _0800D04C + ldrh r1, [r2] + movs r0, #0 + strh r0, [r2] + strb r4, [r3, #9] + strh r5, [r3, #0x32] + strh r1, [r2] + movs r0, #0 +_0800D044: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0800D04C: .4byte 0x04000208 + thumb_func_end sub_0800D00C + + thumb_func_start sub_0800D050 +sub_0800D050: @ 0x0800D050 + push {lr} + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _0800D06C + ldr r0, [r0] + ldrb r1, [r0, #4] + ldrb r0, [r0, #5] + orrs r0, r1 + cmp r0, #0 + bne _0800D074 + ldr r0, _0800D070 + strh r2, [r0, #0x18] + movs r0, #0 + b _0800D084 + .align 2, 0 +_0800D06C: .4byte 0x03007630 +_0800D070: .4byte 0x030041E0 +_0800D074: + ldr r1, _0800D088 + movs r0, #6 + strh r0, [r1, #0x14] + movs r0, #0xf3 + movs r1, #1 + bl sub_0800CDC8 + movs r0, #6 +_0800D084: + pop {r1} + bx r1 + .align 2, 0 +_0800D088: .4byte 0x030041E0 + thumb_func_end sub_0800D050 + + thumb_func_start sub_0800D08C +sub_0800D08C: @ 0x0800D08C + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r3, r2, #0 + ldr r1, _0800D0B4 + ldrb r0, [r1, #4] + subs r0, #9 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bhi _0800D0B8 + movs r0, #7 + strh r0, [r1, #0x14] + movs r0, #0xf3 + movs r1, #1 + bl sub_0800CDC8 + movs r0, #7 + b _0800D0C6 + .align 2, 0 +_0800D0B4: .4byte 0x030041E0 +_0800D0B8: + cmp r2, #0 + beq _0800D0C2 + movs r0, #1 + strb r0, [r1, #0xb] + b _0800D0C4 +_0800D0C2: + strb r3, [r1, #0xb] +_0800D0C4: + movs r0, #0 +_0800D0C6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0800D08C + + thumb_func_start sub_0800D0CC +sub_0800D0CC: @ 0x0800D0CC + push {lr} + ldr r1, _0800D0E8 + ldrb r0, [r1, #2] + cmp r0, #0 + beq _0800D0E4 + ldrb r0, [r1, #2] + movs r0, #0 + strb r0, [r1, #2] + movs r0, #0x45 + movs r1, #0 + bl sub_0800CDC8 +_0800D0E4: + pop {r0} + bx r0 + .align 2, 0 +_0800D0E8: .4byte 0x030041E0 + thumb_func_end sub_0800D0CC + + thumb_func_start sub_0800D0EC +sub_0800D0EC: @ 0x0800D0EC + push {lr} + ldr r1, _0800D100 + ldrb r0, [r1, #2] + cmp r0, #0 + bne _0800D104 + movs r0, #0x45 + movs r1, #0 + bl sub_0800CDC8 + b _0800D110 + .align 2, 0 +_0800D100: .4byte 0x030041E0 +_0800D104: + ldrb r0, [r1, #2] + cmp r0, #1 + bne _0800D110 + ldrb r0, [r1, #2] + movs r0, #2 + strb r0, [r1, #2] +_0800D110: + pop {r0} + bx r0 + thumb_func_end sub_0800D0EC + + thumb_func_start sub_0800D114 +sub_0800D114: @ 0x0800D114 + push {lr} + ldr r0, _0800D134 + ldrb r1, [r0, #7] + adds r2, r0, #0 + cmp r1, #0 + beq _0800D17E + ldrb r0, [r2, #4] + subs r0, #5 + cmp r0, #6 + bhi _0800D17E + lsls r0, r0, #2 + ldr r1, _0800D138 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0800D134: .4byte 0x030041E0 +_0800D138: .4byte 0x0800D13C +_0800D13C: @ jump table + .4byte _0800D158 @ case 0 + .4byte _0800D160 @ case 1 + .4byte _0800D16A @ case 2 + .4byte _0800D16A @ case 3 + .4byte _0800D170 @ case 4 + .4byte _0800D170 @ case 5 + .4byte _0800D176 @ case 6 +_0800D158: + movs r0, #3 + strb r0, [r2, #7] + movs r0, #9 + b _0800D17C +_0800D160: + movs r0, #2 + strb r0, [r2, #7] + movs r0, #1 + strh r0, [r2, #0x1a] + b _0800D17E +_0800D16A: + movs r0, #2 + strb r0, [r2, #7] + b _0800D17E +_0800D170: + movs r0, #0x28 + strh r0, [r2, #0x1a] + b _0800D17E +_0800D176: + movs r0, #0x28 + strh r0, [r2, #0x1a] + movs r0, #0xa +_0800D17C: + strb r0, [r2, #4] +_0800D17E: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0800D114 + + thumb_func_start sub_0800D184 +sub_0800D184: @ 0x0800D184 + push {r4, r5, lr} + adds r3, r0, #0 + movs r0, #0 + movs r4, #0 + movs r5, #0x46 +_0800D18E: + adds r2, r0, #1 + movs r1, #0x45 + muls r0, r5, r0 + adds r0, r0, r3 + adds r0, #0x45 +_0800D198: + strb r4, [r0] + subs r0, #1 + subs r1, #1 + cmp r1, #0 + bge _0800D198 + adds r0, r2, #0 + cmp r0, #0x13 + ble _0800D18E + movs r1, #0 + ldr r2, _0800D1D4 + adds r0, r3, r2 + ldrb r2, [r0] + strb r1, [r0] + movs r2, #0xaf + lsls r2, r2, #3 + adds r0, r3, r2 + ldrb r2, [r0] + strb r1, [r0] + ldr r2, _0800D1D8 + adds r0, r3, r2 + ldrb r2, [r0] + strb r1, [r0] + ldr r2, _0800D1DC + adds r0, r3, r2 + ldrb r2, [r0] + strb r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0800D1D4: .4byte 0x00000579 +_0800D1D8: .4byte 0x0000057A +_0800D1DC: .4byte 0x0000057B + thumb_func_end sub_0800D184 + + thumb_func_start sub_0800D1E0 +sub_0800D1E0: @ 0x0800D1E0 + push {r4, lr} + adds r3, r0, #0 + movs r1, #0 + movs r4, #0 +_0800D1E8: + lsls r0, r1, #3 + adds r2, r1, #1 + subs r0, r0, r1 + movs r1, #0xd + lsls r0, r0, #1 + adds r0, r0, r3 + adds r0, #0xd +_0800D1F6: + strb r4, [r0] + subs r0, #1 + subs r1, #1 + cmp r1, #0 + bge _0800D1F6 + adds r1, r2, #0 + cmp r1, #0x27 + ble _0800D1E8 + movs r1, #0 + ldr r2, _0800D230 + adds r0, r3, r2 + ldrb r2, [r0] + strb r1, [r0] + movs r2, #0x8c + lsls r2, r2, #2 + adds r0, r3, r2 + ldrb r2, [r0] + strb r1, [r0] + ldr r2, _0800D234 + adds r0, r3, r2 + ldrb r2, [r0] + strb r1, [r0] + ldr r2, _0800D238 + adds r0, r3, r2 + ldrb r2, [r0] + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800D230: .4byte 0x00000231 +_0800D234: .4byte 0x00000232 +_0800D238: .4byte 0x00000233 + thumb_func_end sub_0800D1E0 + + thumb_func_start sub_0800D23C +sub_0800D23C: @ 0x0800D23C + push {r4, lr} + adds r3, r0, #0 + movs r1, #0 + movs r4, #0 +_0800D244: + lsls r0, r1, #8 + adds r2, r1, #1 + movs r1, #0xff + adds r0, r0, r3 + adds r0, #0xff +_0800D24E: + strb r4, [r0] + subs r0, #1 + subs r1, #1 + cmp r1, #0 + bge _0800D24E + adds r1, r2, #0 + cmp r1, #1 + ble _0800D244 + movs r1, #0 + ldr r2, _0800D288 + adds r0, r3, r2 + ldrb r2, [r0] + strb r1, [r0] + movs r2, #0x80 + lsls r2, r2, #2 + adds r0, r3, r2 + ldrb r2, [r0] + strb r1, [r0] + ldr r2, _0800D28C + adds r0, r3, r2 + ldrb r2, [r0] + strb r1, [r0] + ldr r2, _0800D290 + adds r0, r3, r2 + ldrb r2, [r0] + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800D288: .4byte 0x00000201 +_0800D28C: .4byte 0x00000202 +_0800D290: .4byte 0x00000203 + thumb_func_end sub_0800D23C + + thumb_func_start sub_0800D294 +sub_0800D294: @ 0x0800D294 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + ldr r1, _0800D32C + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, #0x13 + bhi _0800D334 + ldr r0, _0800D330 + ldrh r1, [r0] + adds r7, r1, #0 + movs r1, #0 + strh r1, [r0] + movs r3, #0 + movs r2, #0 +_0800D2B2: + adds r1, r6, r2 + ldrb r0, [r1] + cmp r0, #0 + bne _0800D2C6 + ldrb r0, [r1, #1] + cmp r0, #0 + bne _0800D2C6 + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 +_0800D2C6: + adds r2, #0xe + cmp r2, #0x45 + ble _0800D2B2 + cmp r3, #5 + beq _0800D324 + movs r2, #0 + movs r0, #0xaf + lsls r0, r0, #3 + adds r3, r5, r0 + movs r4, #0x46 +_0800D2DA: + ldrb r0, [r3] + adds r1, r0, #0 + muls r1, r4, r1 + adds r1, r2, r1 + adds r1, r5, r1 + adds r0, r6, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r2, #1 + cmp r2, #0x45 + ble _0800D2DA + movs r1, #0xaf + lsls r1, r1, #3 + adds r4, r5, r1 + ldrb r0, [r4] + adds r0, #1 + ldrb r1, [r4] + strb r0, [r4] + ldrb r0, [r4] + movs r1, #0x14 + bl __umodsi3 + ldrb r1, [r4] + strb r0, [r4] + ldr r0, _0800D32C + adds r1, r5, r0 + ldrb r0, [r1] + adds r0, #1 + ldrb r2, [r1] + strb r0, [r1] + movs r1, #0 + adds r0, r6, #0 + adds r0, #0x45 +_0800D31C: + strb r1, [r0] + subs r0, #1 + cmp r0, r6 + bge _0800D31C +_0800D324: + ldr r0, _0800D330 + strh r7, [r0] + b _0800D33E + .align 2, 0 +_0800D32C: .4byte 0x0000057A +_0800D330: .4byte 0x04000208 +_0800D334: + ldr r1, _0800D344 + adds r0, r5, r1 + ldrb r1, [r0] + movs r1, #1 + strb r1, [r0] +_0800D33E: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800D344: .4byte 0x0000057B + thumb_func_end sub_0800D294 + + thumb_func_start sub_0800D348 +sub_0800D348: @ 0x0800D348 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r5, r1, #0 + ldr r1, _0800D3D8 + adds r0, r6, r1 + ldrb r0, [r0] + cmp r0, #0x27 + bhi _0800D3E0 + ldr r1, _0800D3DC + ldrh r0, [r1] + adds r7, r0, #0 + movs r0, #0 + strh r0, [r1] + movs r2, #0 + ldrb r0, [r5] + cmp r0, #0 + bne _0800D378 +_0800D36A: + adds r2, #1 + cmp r2, #0xd + bgt _0800D378 + adds r0, r5, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _0800D36A +_0800D378: + cmp r2, #0xe + beq _0800D3D0 + movs r2, #0 + movs r0, #0x8c + lsls r0, r0, #2 + adds r3, r6, r0 +_0800D384: + ldrb r1, [r3] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #1 + adds r0, r2, r0 + adds r0, r6, r0 + adds r1, r5, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, #0xd + ble _0800D384 + movs r1, #0x8c + lsls r1, r1, #2 + adds r4, r6, r1 + ldrb r0, [r4] + adds r0, #1 + ldrb r1, [r4] + strb r0, [r4] + ldrb r0, [r4] + movs r1, #0x28 + bl __umodsi3 + ldrb r1, [r4] + strb r0, [r4] + ldr r0, _0800D3D8 + adds r1, r6, r0 + ldrb r0, [r1] + adds r0, #1 + ldrb r2, [r1] + strb r0, [r1] + movs r1, #0 + adds r0, r5, #0 + adds r0, #0xd +_0800D3C8: + strb r1, [r0] + subs r0, #1 + cmp r0, r5 + bge _0800D3C8 +_0800D3D0: + ldr r0, _0800D3DC + strh r7, [r0] + b _0800D3EA + .align 2, 0 +_0800D3D8: .4byte 0x00000232 +_0800D3DC: .4byte 0x04000208 +_0800D3E0: + ldr r1, _0800D3F0 + adds r0, r6, r1 + ldrb r1, [r0] + movs r1, #1 + strb r1, [r0] +_0800D3EA: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800D3F0: .4byte 0x00000233 + thumb_func_end sub_0800D348 + + thumb_func_start sub_0800D3F4 +sub_0800D3F4: @ 0x0800D3F4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + adds r3, r1, #0 + ldr r1, _0800D43C + ldrh r0, [r1] + mov r8, r0 + movs r0, #0 + strh r0, [r1] + movs r1, #0xaf + lsls r1, r1, #3 + adds r0, r5, r1 + ldr r7, _0800D440 + adds r4, r5, r7 + ldrb r1, [r0] + ldrb r0, [r4] + cmp r1, r0 + beq _0800D424 + ldr r1, _0800D444 + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _0800D448 +_0800D424: + movs r1, #0 + adds r0, r3, #0 + adds r0, #0x45 +_0800D42A: + strb r1, [r0] + subs r0, #1 + cmp r0, r3 + bge _0800D42A + ldr r0, _0800D43C + mov r7, r8 + strh r7, [r0] + movs r0, #0 + b _0800D490 + .align 2, 0 +_0800D43C: .4byte 0x04000208 +_0800D440: .4byte 0x00000579 +_0800D444: .4byte 0x0000057B +_0800D448: + movs r2, #0 + movs r6, #0x46 +_0800D44C: + adds r1, r3, r2 + ldrb r0, [r4] + adds r7, r0, #0 + muls r7, r6, r7 + adds r0, r7, #0 + adds r0, r2, r0 + adds r0, r5, r0 + ldrb r0, [r0] + strb r0, [r1] + adds r2, #1 + cmp r2, #0x45 + ble _0800D44C + ldr r0, _0800D49C + adds r4, r5, r0 + ldrb r0, [r4] + adds r0, #1 + ldrb r1, [r4] + strb r0, [r4] + ldrb r0, [r4] + movs r1, #0x14 + bl __umodsi3 + ldrb r1, [r4] + strb r0, [r4] + ldr r7, _0800D4A0 + adds r1, r5, r7 + ldrb r0, [r1] + subs r0, #1 + ldrb r2, [r1] + strb r0, [r1] + ldr r0, _0800D4A4 + mov r1, r8 + strh r1, [r0] + movs r0, #1 +_0800D490: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0800D49C: .4byte 0x00000579 +_0800D4A0: .4byte 0x0000057A +_0800D4A4: .4byte 0x04000208 + thumb_func_end sub_0800D3F4 + + thumb_func_start sub_0800D4A8 +sub_0800D4A8: @ 0x0800D4A8 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + movs r1, #0x8c + lsls r1, r1, #2 + adds r0, r5, r1 + adds r1, #1 + adds r4, r5, r1 + ldrb r1, [r0] + ldrb r0, [r4] + cmp r1, r0 + beq _0800D4CC + ldr r1, _0800D4D0 + adds r0, r5, r1 + ldrb r0, [r0] + adds r2, r0, #0 + cmp r2, #0 + beq _0800D4D4 +_0800D4CC: + movs r0, #0 + b _0800D520 + .align 2, 0 +_0800D4D0: .4byte 0x00000233 +_0800D4D4: + ldr r1, _0800D528 + ldrh r0, [r1] + adds r7, r0, #0 + strh r2, [r1] + movs r3, #0 +_0800D4DE: + adds r2, r6, r3 + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #1 + adds r0, r3, r0 + adds r0, r5, r0 + ldrb r0, [r0] + strb r0, [r2] + adds r3, #1 + cmp r3, #0xd + ble _0800D4DE + ldr r0, _0800D52C + adds r4, r5, r0 + ldrb r0, [r4] + adds r0, #1 + ldrb r1, [r4] + strb r0, [r4] + ldrb r0, [r4] + movs r1, #0x28 + bl __umodsi3 + ldrb r1, [r4] + strb r0, [r4] + ldr r0, _0800D530 + adds r1, r5, r0 + ldrb r0, [r1] + subs r0, #1 + ldrb r2, [r1] + strb r0, [r1] + ldr r0, _0800D528 + strh r7, [r0] + movs r0, #1 +_0800D520: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0800D528: .4byte 0x04000208 +_0800D52C: .4byte 0x00000231 +_0800D530: .4byte 0x00000232 + thumb_func_end sub_0800D4A8 + + thumb_func_start sub_0800D534 +sub_0800D534: @ 0x0800D534 + push {r4, lr} + adds r2, r0, #0 + adds r4, r1, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + bne _0800D54A + adds r0, r2, #0 + movs r1, #0 + bl sub_0800D594 + b _0800D58C +_0800D54A: + movs r3, #0 +_0800D54C: + ldrb r1, [r2, #0x1c] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #1 + adds r0, r3, r0 + adds r0, r2, r0 + adds r1, r4, r3 + ldrb r1, [r1] + strb r1, [r0] + adds r3, #1 + cmp r3, #0xd + ble _0800D54C + ldrb r0, [r2, #0x1c] + adds r0, #1 + ldrb r1, [r2, #0x1c] + strb r0, [r2, #0x1c] + ldrb r1, [r2, #0x1c] + movs r0, #1 + ands r0, r1 + ldrb r1, [r2, #0x1c] + strb r0, [r2, #0x1c] + ldrb r0, [r2, #0x1e] + cmp r0, #1 + bhi _0800D586 + ldrb r0, [r2, #0x1e] + adds r0, #1 + ldrb r1, [r2, #0x1e] + strb r0, [r2, #0x1e] + b _0800D58C +_0800D586: + ldrb r0, [r2, #0x1c] + ldrb r1, [r2, #0x1d] + strb r0, [r2, #0x1d] +_0800D58C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0800D534 + + thumb_func_start sub_0800D594 +sub_0800D594: @ 0x0800D594 + push {r4, r5, lr} + adds r3, r0, #0 + adds r5, r1, #0 + ldrb r0, [r3, #0x1e] + cmp r0, #0 + bne _0800D5A4 + movs r0, #0 + b _0800D5DE +_0800D5A4: + cmp r5, #0 + beq _0800D5C2 + movs r4, #0 +_0800D5AA: + adds r2, r5, r4 + ldrb r1, [r3, #0x1d] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #1 + adds r0, r4, r0 + adds r0, r3, r0 + ldrb r0, [r0] + strb r0, [r2] + adds r4, #1 + cmp r4, #0xd + ble _0800D5AA +_0800D5C2: + ldrb r0, [r3, #0x1d] + adds r0, #1 + ldrb r1, [r3, #0x1d] + strb r0, [r3, #0x1d] + ldrb r1, [r3, #0x1d] + movs r0, #1 + ands r0, r1 + ldrb r1, [r3, #0x1d] + strb r0, [r3, #0x1d] + ldrb r0, [r3, #0x1e] + subs r0, #1 + ldrb r1, [r3, #0x1e] + strb r0, [r3, #0x1e] + movs r0, #1 +_0800D5DE: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_0800D594 + + thumb_func_start sub_0800D5E4 +sub_0800D5E4: @ 0x0800D5E4 + push {r4, r5, lr} + adds r3, r0, #0 + adds r5, r1, #0 + ldr r1, _0800D638 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, #1 + bhi _0800D63C + movs r2, #0 + movs r0, #0x80 + lsls r0, r0, #2 + adds r4, r3, r0 +_0800D5FC: + ldrb r0, [r4] + lsls r0, r0, #8 + adds r0, r2, r0 + adds r0, r3, r0 + adds r1, r5, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, #0xff + ble _0800D5FC + movs r0, #0x80 + lsls r0, r0, #2 + adds r1, r3, r0 + ldrb r0, [r1] + adds r0, #1 + ldrb r2, [r1] + strb r0, [r1] + ldrb r2, [r1] + movs r0, #1 + ands r0, r2 + ldrb r2, [r1] + strb r0, [r1] + ldr r0, _0800D638 + adds r1, r3, r0 + ldrb r0, [r1] + adds r0, #1 + ldrb r2, [r1] + strb r0, [r1] + b _0800D646 + .align 2, 0 +_0800D638: .4byte 0x00000202 +_0800D63C: + ldr r1, _0800D64C + adds r0, r3, r1 + ldrb r1, [r0] + movs r1, #1 + strb r1, [r0] +_0800D646: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0800D64C: .4byte 0x00000203 + thumb_func_end sub_0800D5E4 + + thumb_func_start sub_0800D650 +sub_0800D650: @ 0x0800D650 + push {r4, r5, lr} + adds r3, r0, #0 + adds r5, r1, #0 + movs r1, #0x80 + lsls r1, r1, #2 + adds r0, r3, r1 + adds r1, #1 + adds r4, r3, r1 + ldrb r1, [r0] + ldrb r0, [r4] + cmp r1, r0 + beq _0800D672 + ldr r1, _0800D678 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _0800D67C +_0800D672: + movs r0, #0 + b _0800D6B6 + .align 2, 0 +_0800D678: .4byte 0x00000203 +_0800D67C: + movs r2, #0 +_0800D67E: + adds r0, r5, r2 + ldrb r1, [r4] + lsls r1, r1, #8 + adds r1, r2, r1 + adds r1, r3, r1 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, #0xff + ble _0800D67E + ldr r0, _0800D6BC + adds r1, r3, r0 + ldrb r0, [r1] + adds r0, #1 + ldrb r2, [r1] + strb r0, [r1] + ldrb r2, [r1] + movs r0, #1 + ands r0, r2 + ldrb r2, [r1] + strb r0, [r1] + ldr r0, _0800D6C0 + adds r1, r3, r0 + ldrb r0, [r1] + subs r0, #1 + ldrb r2, [r1] + strb r0, [r1] + movs r0, #1 +_0800D6B6: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0800D6BC: .4byte 0x00000201 +_0800D6C0: .4byte 0x00000202 + thumb_func_end sub_0800D650 + + thumb_func_start sub_0800D6C4 +sub_0800D6C4: @ 0x0800D6C4 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r1, #0 + movs r5, #0 + cmp r1, #1 + beq _0800D702 + cmp r1, #1 + bgt _0800D6DE + cmp r1, #0 + beq _0800D6E8 + b _0800D776 +_0800D6DE: + cmp r0, #2 + beq _0800D722 + cmp r0, #3 + beq _0800D742 + b _0800D776 +_0800D6E8: + movs r4, #0 +_0800D6EA: + adds r0, r6, r4 + adds r1, r4, #1 + strb r1, [r0] + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r4, r1, #0 + cmp r4, #0xc7 + ble _0800D6EA + b _0800D73C +_0800D702: + movs r4, #0 + adds r2, r6, #0 + adds r2, #0xc8 +_0800D708: + adds r0, r6, r4 + adds r1, r4, #1 + strb r1, [r0] + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r4, r1, #0 + cmp r4, #0x63 + ble _0800D708 + strh r5, [r2] + b _0800D776 +_0800D722: + movs r4, #0 +_0800D724: + bl Random + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r6, r4 + strb r0, [r1] + adds r0, r5, r0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r4, #1 + cmp r4, #0xc7 + ble _0800D724 +_0800D73C: + adds r0, r6, r4 + strh r5, [r0] + b _0800D776 +_0800D742: + movs r4, #0 + ldr r3, _0800D77C + ldrb r1, [r3] + ldrb r0, [r3] + adds r7, r0, #1 + adds r2, r1, #1 + movs r0, #0xff + mov ip, r0 +_0800D752: + adds r0, r6, r4 + adds r1, r4, #1 + strb r2, [r0] + adds r0, r4, r7 + mov r4, ip + ands r0, r4 + adds r0, r5, r0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r2, #1 + adds r4, r1, #0 + cmp r1, #0xc7 + ble _0800D752 + adds r0, r6, r1 + strh r5, [r0] + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] +_0800D776: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800D77C: .4byte 0x03000D74 + thumb_func_end sub_0800D6C4 + + thumb_func_start PkmnStrToASCII +PkmnStrToASCII: @ 0x0800D780 + push {r4, r5, lr} + adds r4, r0, #0 + movs r3, #0 + ldrb r0, [r1] + cmp r0, #0xff + beq _0800D7A4 + ldr r5, _0800D7B0 + adds r2, r1, #0 +_0800D790: + adds r1, r4, r3 + ldrb r0, [r2] + adds r0, r0, r5 + ldrb r0, [r0] + strb r0, [r1] + adds r2, #1 + adds r3, #1 + ldrb r0, [r2] + cmp r0, #0xff + bne _0800D790 +_0800D7A4: + adds r1, r4, r3 + movs r0, #0 + strb r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0800D7B0: .4byte 0x082C01C0 + thumb_func_end PkmnStrToASCII + + thumb_func_start ASCIIToPkmnStr +ASCIIToPkmnStr: @ 0x0800D7B4 + push {r4, r5, lr} + adds r4, r0, #0 + movs r3, #0 + ldrb r0, [r1] + cmp r0, #0 + beq _0800D7D8 + ldr r5, _0800D7E4 + adds r2, r1, #0 +_0800D7C4: + adds r1, r4, r3 + ldrb r0, [r2] + adds r0, r0, r5 + ldrb r0, [r0] + strb r0, [r1] + adds r2, #1 + adds r3, #1 + ldrb r0, [r2] + cmp r0, #0 + bne _0800D7C4 +_0800D7D8: + adds r1, r4, r3 + movs r0, #0xff + strb r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0800D7E4: .4byte 0x082C00C0 + thumb_func_end ASCIIToPkmnStr + + thumb_func_start sub_0800D7E8 +sub_0800D7E8: @ 0x0800D7E8 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r6, #0 + ldr r0, _0800D810 + ldr r4, [r0] + ldrb r2, [r4, #2] + ldrb r1, [r4] + adds r7, r0, #0 + cmp r1, #1 + bne _0800D83E + movs r3, #0 + ands r1, r2 + cmp r1, #0 + beq _0800D81A + cmp r5, #1 + bne _0800D814 + ldrb r0, [r4, #0xa] + b _0800D858 + .align 2, 0 +_0800D810: .4byte 0x03007630 +_0800D814: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_0800D81A: + lsrs r2, r2, #1 + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #3 + bhi _0800D856 + movs r0, #1 + ands r0, r2 + cmp r0, #0 + beq _0800D81A + adds r0, r6, #1 + cmp r5, r0 + bne _0800D814 +_0800D834: + ldr r0, [r7] + adds r0, #0xa + adds r0, r0, r3 + ldrb r0, [r0] + b _0800D858 +_0800D83E: + movs r3, #0 + movs r1, #1 +_0800D842: + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _0800D834 + lsrs r2, r2, #1 + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #3 + bls _0800D842 +_0800D856: + movs r0, #0 +_0800D858: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0800D7E8 + + thumb_func_start sub_0800D860 +sub_0800D860: @ 0x0800D860 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sb, r1 + movs r4, #0 + ldr r0, _0800D93C + mov r8, r0 + adds r6, r7, #2 + ldr r0, [r0] + adds r5, r0, #0 + adds r5, #0xa +_0800D87E: + adds r0, r6, r4 + adds r1, r5, r4 + ldrb r1, [r1] + strb r1, [r0] + adds r4, #1 + cmp r4, #1 + ble _0800D87E + movs r4, #0 + lsls r2, r2, #7 + mov ip, r2 + adds r1, r7, #4 +_0800D894: + adds r0, r1, r4 + strb r3, [r0] + asrs r3, r3, #8 + adds r4, #1 + cmp r4, #3 + ble _0800D894 + mov r1, r8 + ldr r0, [r1] + ldrb r0, [r0, #8] + movs r6, #1 + movs r1, #1 + ands r1, r0 + ldrb r2, [r7, #0xb] + movs r5, #2 + rsbs r5, r5, #0 + adds r0, r5, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r7, #0xb] + movs r4, #0x7f + mov r1, sb + ands r1, r4 + ldrb r2, [r7, #0xa] + movs r0, #0x80 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + ands r0, r4 + mov r1, ip + orrs r0, r1 + strb r0, [r7, #0xa] + ldrb r0, [r7] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + orrs r1, r6 + ldrb r2, [r7, #1] + movs r0, #0x3d + rsbs r0, r0, #0 + ands r0, r2 + movs r2, #0xc + orrs r0, r2 + strb r0, [r7, #1] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r1, r0 + subs r0, #0x10 + ands r1, r0 + subs r0, #0x20 + ands r1, r0 + strb r1, [r7] + ldr r0, _0800D940 + bl FlagGet + lsls r0, r0, #7 + ldrb r1, [r7] + ands r4, r1 + orrs r4, r0 + strb r4, [r7] + bl IsNationalPokedexEnabled + ands r0, r6 + ldrb r1, [r7, #1] + ands r5, r1 + orrs r5, r0 + strb r5, [r7, #1] + ldr r0, _0800D944 + bl FlagGet + ands r6, r0 + lsls r6, r6, #1 + ldrb r1, [r7, #1] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r6 + strb r0, [r7, #1] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800D93C: .4byte 0x03005AF0 +_0800D940: .4byte 0x0000087F +_0800D944: .4byte 0x00000864 + thumb_func_end sub_0800D860 + + thumb_func_start sub_0800D948 +sub_0800D948: @ 0x0800D948 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + mov r8, r1 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + ldr r0, _0800D99C + ldrb r0, [r0, #6] + cmp r0, #1 + bne _0800D9A4 + movs r0, #1 + mov sb, r0 + ldr r6, _0800D9A0 + ldr r0, [r6] + lsls r4, r5, #5 + adds r0, r0, r4 + ldrh r0, [r0, #0x18] + bl sub_0800FF54 + cmp r0, #0 + beq _0800D984 + ldr r1, [r6] + ldrb r0, [r1, #7] + asrs r0, r5 + mov r2, sb + ands r0, r2 + cmp r0, #0 + bne _0800D9BC +_0800D984: + adds r0, r7, #0 + movs r1, #0 + movs r2, #0xd + bl memset + mov r0, r8 + movs r1, #0 + movs r2, #8 + bl memset + b _0800D9F0 + .align 2, 0 +_0800D99C: .4byte 0x030041E0 +_0800D9A0: .4byte 0x03007630 +_0800D9A4: + movs r0, #0 + mov sb, r0 + ldr r6, _0800D9D8 + ldr r0, [r6] + lsls r4, r5, #5 + adds r0, r0, r4 + ldrh r0, [r0, #0x18] + bl sub_0800FF54 + cmp r0, #0 + beq _0800D9DC + ldr r1, [r6] +_0800D9BC: + adds r1, r4, r1 + adds r1, #0x1a + adds r0, r7, #0 + movs r2, #0xd + bl memcpy + ldr r1, [r6] + adds r1, r4, r1 + adds r1, #0x29 + mov r0, r8 + movs r2, #8 + bl memcpy + b _0800D9F0 + .align 2, 0 +_0800D9D8: .4byte 0x03007630 +_0800D9DC: + adds r0, r7, #0 + movs r1, #0 + movs r2, #0xd + bl memset + mov r0, r8 + movs r1, #0 + movs r2, #8 + bl memset +_0800D9F0: + mov r0, sb + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0800D948 + + thumb_func_start sub_0800DA00 +sub_0800DA00: @ 0x0800DA00 + push {r4, r5, r6, r7, lr} + adds r3, r0, #0 + adds r5, r1, #0 + lsls r2, r2, #0x18 + movs r7, #0 + ldr r6, _0800DA38 + ldr r0, [r6] + lsrs r4, r2, #0x13 + adds r2, r0, r4 + ldrh r1, [r2, #0x18] + ldr r0, _0800DA3C + cmp r1, r0 + bne _0800DA40 + adds r1, r2, #0 + adds r1, #0x1a + adds r0, r3, #0 + movs r2, #0xd + bl memcpy + ldr r1, [r6] + adds r1, r4, r1 + adds r1, #0x29 + adds r0, r5, #0 + movs r2, #8 + bl memcpy + movs r7, #1 + b _0800DA54 + .align 2, 0 +_0800DA38: .4byte 0x03007630 +_0800DA3C: .4byte 0x00007F7F +_0800DA40: + adds r0, r3, #0 + movs r1, #0 + movs r2, #0xd + bl memset + adds r0, r5, #0 + movs r1, #0 + movs r2, #8 + bl memset +_0800DA54: + adds r0, r7, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_0800DA00 + + thumb_func_start sub_0800DA5C +sub_0800DA5C: @ 0x0800DA5C + push {r4, lr} + adds r4, r1, #0 + ldr r1, _0800DA78 + movs r2, #0xd + bl memcpy + ldr r1, _0800DA7C + adds r0, r4, #0 + movs r2, #8 + bl memcpy + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800DA78: .4byte 0x020227CC +_0800DA7C: .4byte 0x020227DA + thumb_func_end sub_0800DA5C + + thumb_func_start CreateWirelessStatusIndicatorSprite +CreateWirelessStatusIndicatorSprite: @ 0x0800DA80 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r2, r1, #0x18 + cmp r3, #0 + bne _0800DA96 + cmp r2, #0 + bne _0800DA96 + movs r3, #0xe7 + movs r2, #8 +_0800DA96: + ldr r0, _0800DAD8 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #1 + bne _0800DAF0 + ldr r0, _0800DADC + adds r1, r3, #0 + movs r3, #0 + bl CreateSprite + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _0800DAE0 + lsls r4, r5, #4 + adds r4, r4, r5 + lsls r4, r4, #2 + adds r4, r4, r0 + ldr r0, _0800DAE4 + strh r0, [r4, #0x3c] + ldr r0, _0800DAE8 + ldrh r0, [r0, #6] + bl GetSpriteTileStartByTag + strh r0, [r4, #0x3a] + adds r4, #0x3e + ldrb r0, [r4] + movs r1, #4 + orrs r0, r1 + strb r0, [r4] + ldr r0, _0800DAEC + strb r5, [r0] + b _0800DB36 + .align 2, 0 +_0800DAD8: .4byte 0x03007630 +_0800DADC: .4byte 0x082C0340 +_0800DAE0: .4byte 0x020205AC +_0800DAE4: .4byte 0x00001234 +_0800DAE8: .4byte 0x082C0330 +_0800DAEC: .4byte 0x020227C8 +_0800DAF0: + ldr r0, _0800DB3C + adds r1, r3, #0 + movs r3, #0 + bl CreateSprite + ldr r4, _0800DB40 + strb r0, [r4] + ldr r5, _0800DB44 + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _0800DB48 + strh r1, [r0, #0x3c] + ldr r0, _0800DB4C + ldrh r0, [r0, #6] + bl GetSpriteTileStartByTag + ldrb r2, [r4] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r5 + strh r0, [r1, #0x3a] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_0800DB36: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0800DB3C: .4byte 0x082C0340 +_0800DB40: .4byte 0x020227C8 +_0800DB44: .4byte 0x020205AC +_0800DB48: .4byte 0x00001234 +_0800DB4C: .4byte 0x082C0330 + thumb_func_end CreateWirelessStatusIndicatorSprite + + thumb_func_start DestroyWirelessStatusIndicatorSprite +DestroyWirelessStatusIndicatorSprite: @ 0x0800DB50 + push {r4, lr} + ldr r4, _0800DB9C + ldr r3, _0800DBA0 + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, r0, r4 + movs r0, #0x3c + ldrsh r1, [r2, r0] + ldr r0, _0800DBA4 + cmp r1, r0 + bne _0800DB96 + movs r0, #0 + strh r0, [r2, #0x3c] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + ldr r3, _0800DBA8 + movs r0, #0x84 + lsls r0, r0, #3 + adds r3, r3, r0 + ldr r0, _0800DBAC + ldr r1, [r0] + ldr r2, [r0, #4] + str r1, [r3] + str r2, [r3, #4] + ldr r1, _0800DBB0 + movs r2, #4 + bl CpuSet +_0800DB96: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800DB9C: .4byte 0x020205AC +_0800DBA0: .4byte 0x020227C8 +_0800DBA4: .4byte 0x00001234 +_0800DBA8: .4byte 0x03002360 +_0800DBAC: .4byte 0x082BF2F8 +_0800DBB0: .4byte 0x070003E8 + thumb_func_end DestroyWirelessStatusIndicatorSprite + + thumb_func_start LoadWirelessStatusIndicatorSpriteGfx +LoadWirelessStatusIndicatorSpriteGfx: @ 0x0800DBB4 + push {r4, lr} + ldr r4, _0800DBE0 + ldrh r0, [r4, #6] + bl GetSpriteTileStartByTag + lsls r0, r0, #0x10 + ldr r1, _0800DBE4 + cmp r0, r1 + bne _0800DBCC + adds r0, r4, #0 + bl LoadCompressedSpriteSheet +_0800DBCC: + ldr r0, _0800DBE8 + bl LoadSpritePalette + ldr r1, _0800DBEC + movs r0, #0xff + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800DBE0: .4byte 0x082C0330 +_0800DBE4: .4byte 0xFFFF0000 +_0800DBE8: .4byte 0x082C0338 +_0800DBEC: .4byte 0x020227C8 + thumb_func_end LoadWirelessStatusIndicatorSpriteGfx + + thumb_func_start sub_0800DBF0 +sub_0800DBF0: @ 0x0800DBF0 + push {r4, lr} + ldr r1, _0800DC10 + ldr r0, [r1] + ldrb r2, [r0, #2] + movs r3, #0 + movs r4, #1 +_0800DBFC: + adds r0, r2, #0 + ands r0, r4 + cmp r0, #0 + beq _0800DC14 + ldr r0, [r1] + adds r0, #0xa + adds r0, r0, r3 + ldrb r0, [r0] + b _0800DC22 + .align 2, 0 +_0800DC10: .4byte 0x03007630 +_0800DC14: + lsrs r2, r2, #1 + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #3 + bls _0800DBFC + movs r0, #0 +_0800DC22: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0800DBF0 + + thumb_func_start sub_0800DC28 +sub_0800DC28: @ 0x0800DC28 + push {lr} + adds r2, r0, #0 + movs r3, #0x32 + ldrsh r0, [r2, r3] + cmp r0, r1 + beq _0800DC3C + movs r0, #0 + strh r1, [r2, #0x32] + strh r0, [r2, #0x34] + strh r0, [r2, #0x36] +_0800DC3C: + pop {r0} + bx r0 + thumb_func_end sub_0800DC28 + + thumb_func_start sub_0800DC40 +sub_0800DC40: @ 0x0800DC40 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r1, _0800DC84 + ldrb r0, [r1] + cmp r0, #0xff + bne _0800DC50 + b _0800DE12 +_0800DC50: + ldr r2, _0800DC88 + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, r0, r2 + movs r0, #0x3c + ldrsh r1, [r2, r0] + ldr r0, _0800DC8C + cmp r1, r0 + beq _0800DC68 + b _0800DE12 +_0800DC68: + adds r6, r2, #0 + movs r5, #0xff + movs r4, #0 + ldr r0, _0800DC90 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #1 + bne _0800DCC2 + adds r7, r6, #0 + adds r7, #0x28 + movs r1, #0x29 + adds r1, r1, r6 + mov r8, r1 + b _0800DCB2 + .align 2, 0 +_0800DC84: .4byte 0x020227C8 +_0800DC88: .4byte 0x020205AC +_0800DC8C: .4byte 0x00001234 +_0800DC90: .4byte 0x03007630 +_0800DC94: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl sub_0800D7E8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r5, r0 + blo _0800DCB2 + adds r0, r4, #0 + bl sub_0800D7E8 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_0800DCB2: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, #1 + cmp r4, r0 + blt _0800DC94 + b _0800DCD4 +_0800DCC2: + bl sub_0800DBF0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r7, r6, #0 + adds r7, #0x28 + movs r2, #0x29 + adds r2, r2, r6 + mov r8, r2 +_0800DCD4: + bl sub_08011D10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0800DCE4 + movs r0, #4 + b _0800DD12 +_0800DCE4: + cmp r5, #0x18 + bhi _0800DCEC + movs r0, #3 + b _0800DD12 +_0800DCEC: + adds r0, r5, #0 + subs r0, #0x19 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x65 + bhi _0800DCFC + movs r0, #2 + b _0800DD12 +_0800DCFC: + adds r0, r5, #0 + subs r0, #0x7f + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x65 + bhi _0800DD0C + movs r0, #1 + b _0800DD12 +_0800DD0C: + cmp r5, #0xe4 + bls _0800DD14 + movs r0, #0 +_0800DD12: + strh r0, [r6, #0x2e] +_0800DD14: + movs r3, #0x2e + ldrsh r1, [r6, r3] + movs r2, #0x30 + ldrsh r0, [r6, r2] + cmp r1, r0 + beq _0800DD2A + adds r0, r6, #0 + bl sub_0800DC28 + ldrh r0, [r6, #0x2e] + strh r0, [r6, #0x30] +_0800DD2A: + movs r0, #0x32 + ldrsh r1, [r6, r0] + ldr r2, [r6, #8] + lsls r1, r1, #2 + adds r1, r1, r2 + movs r3, #0x36 + ldrsh r0, [r6, r3] + ldr r1, [r1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + lsls r0, r0, #0xa + lsrs r0, r0, #0x1a + movs r3, #0x34 + ldrsh r1, [r6, r3] + cmp r0, r1 + bge _0800DD78 + ldrh r0, [r6, #0x36] + adds r0, #1 + movs r3, #0 + strh r0, [r6, #0x36] + strh r3, [r6, #0x34] + movs r1, #0x32 + ldrsh r0, [r6, r1] + lsls r0, r0, #2 + adds r0, r0, r2 + movs r2, #0x36 + ldrsh r1, [r6, r2] + ldr r0, [r0] + lsls r1, r1, #2 + adds r1, r1, r0 + movs r0, #0 + ldrsh r1, [r1, r0] + movs r0, #2 + rsbs r0, r0, #0 + cmp r1, r0 + bne _0800DD7E + strh r3, [r6, #0x36] + b _0800DD7E +_0800DD78: + ldrh r0, [r6, #0x34] + adds r0, #1 + strh r0, [r6, #0x34] +_0800DD7E: + ldr r4, _0800DE1C + movs r1, #0x84 + lsls r1, r1, #3 + adds r0, r4, r1 + ldr r1, _0800DE20 + ldr r2, [r1, #4] + ldr r1, [r1] + str r1, [r0] + str r2, [r0, #4] + movs r3, #0x20 + ldrsh r2, [r6, r3] + movs r1, #0 + ldrsb r1, [r7, r1] + adds r2, r2, r1 + ldr r1, _0800DE24 + adds r5, r4, r1 + ldr r3, _0800DE28 + adds r1, r3, #0 + ands r2, r1 + ldrh r3, [r5] + ldr r1, _0800DE2C + ands r1, r3 + orrs r1, r2 + strh r1, [r5] + ldrh r1, [r6, #0x22] + mov r2, r8 + ldrb r2, [r2] + adds r1, r1, r2 + strb r1, [r0] + ldrb r2, [r6, #5] + ldr r3, _0800DE30 + adds r5, r4, r3 + lsrs r2, r2, #4 + lsls r2, r2, #4 + ldrb r3, [r5] + movs r1, #0xf + ands r1, r3 + orrs r1, r2 + strb r1, [r5] + movs r1, #0x32 + ldrsh r2, [r6, r1] + ldr r1, [r6, #8] + lsls r2, r2, #2 + adds r2, r2, r1 + movs r3, #0x36 + ldrsh r1, [r6, r3] + ldr r2, [r2] + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r2, [r1] + ldrh r6, [r6, #0x3a] + adds r2, r2, r6 + ldr r1, _0800DE34 + adds r4, r4, r1 + ldr r3, _0800DE38 + adds r1, r3, #0 + ands r2, r1 + ldrh r3, [r4] + ldr r1, _0800DE3C + ands r1, r3 + orrs r1, r2 + strh r1, [r4] + ldr r1, _0800DE40 + movs r2, #4 + bl CpuSet + bl sub_08011564 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0800DE12 + bl DestroyWirelessStatusIndicatorSprite +_0800DE12: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800DE1C: .4byte 0x03002360 +_0800DE20: .4byte 0x082C02C0 +_0800DE24: .4byte 0x00000422 +_0800DE28: .4byte 0x000001FF +_0800DE2C: .4byte 0xFFFFFE00 +_0800DE30: .4byte 0x00000425 +_0800DE34: .4byte 0x00000424 +_0800DE38: .4byte 0x000003FF +_0800DE3C: .4byte 0xFFFFFC00 +_0800DE40: .4byte 0x070003E8 + thumb_func_end sub_0800DC40 + + thumb_func_start CopyTrainerRecord +CopyTrainerRecord: @ 0x0800DE44 + push {lr} + stm r0!, {r1} + adds r1, r2, #0 + bl StringCopy + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CopyTrainerRecord + + thumb_func_start NameIsNotEmpty +NameIsNotEmpty: @ 0x0800DE54 + push {lr} + adds r2, r0, #0 + movs r1, #0 +_0800DE5A: + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _0800DE66 + movs r0, #1 + b _0800DE6E +_0800DE66: + adds r1, #1 + cmp r1, #7 + ble _0800DE5A + movs r0, #0 +_0800DE6E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end NameIsNotEmpty + + thumb_func_start RecordMixTrainerNames +RecordMixTrainerNames: @ 0x0800DE74 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + ldr r0, _0800DE98 + ldrb r0, [r0] + cmp r0, #0 + bne _0800DE8A + b _0800DFE8 +_0800DE8A: + movs r0, #0xf0 + bl AllocZeroed + str r0, [sp, #0x14] + movs r4, #0 + b _0800DF00 + .align 2, 0 +_0800DE98: .4byte 0x0300319C +_0800DE9C: + lsls r2, r4, #2 + mov r0, sp + adds r1, r0, r2 + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r1] + movs r5, #0 + mov r8, r2 + lsls r0, r4, #3 + adds r1, r4, #1 + mov sb, r1 + subs r0, r0, r4 + lsls r0, r0, #2 + str r0, [sp, #0x1c] + ldr r7, _0800DF24 + mov sl, r7 + ldr r6, _0800DF28 + movs r4, #0 + mov r0, sl + subs r0, #4 + ldr r1, [sp, #0x1c] + adds r3, r1, r0 +_0800DEC8: + ldrh r1, [r3] + ldr r0, _0800DF2C + ldr r2, [r0] + ldr r7, _0800DF28 + adds r0, r2, r7 + adds r0, r0, r4 + ldr r0, [r0] + cmp r1, r0 + bne _0800DEF4 + adds r1, r2, r6 + adds r1, #4 + ldr r0, [sp, #0x1c] + add r0, sl + str r3, [sp, #0x18] + bl StringCompare + ldr r3, [sp, #0x18] + cmp r0, #0 + bne _0800DEF4 + mov r0, sp + add r0, r8 + str r5, [r0] +_0800DEF4: + adds r6, #0xc + adds r4, #0xc + adds r5, #1 + cmp r5, #0x13 + ble _0800DEC8 + mov r4, sb +_0800DF00: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + blt _0800DE9C + movs r7, #0 + movs r4, #0 + ldr r0, _0800DF30 + mov sl, r0 + mov r6, sp + movs r1, #8 + add r1, sl + mov sb, r1 + mov r8, r4 + ldr r5, [sp, #0x14] + b _0800DF78 + .align 2, 0 +_0800DF24: .4byte 0x020226A8 +_0800DF28: .4byte 0x00003B98 +_0800DF2C: .4byte 0x03005AEC +_0800DF30: .4byte 0x020226A0 +_0800DF34: + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + beq _0800DF6E + mov r0, sl + adds r0, #4 + add r0, r8 + ldrh r1, [r0] + adds r0, r5, #0 + mov r2, sb + bl CopyTrainerRecord + ldr r2, [r6] + cmp r2, #0 + blt _0800DF6A + ldr r0, _0800DFF8 + ldr r1, [r0] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r1, r1, r0 + ldr r0, _0800DFFC + adds r1, r1, r0 + movs r0, #0 + strb r0, [r1] +_0800DF6A: + adds r5, #0xc + adds r7, #1 +_0800DF6E: + adds r6, #4 + movs r1, #0x1c + add sb, r1 + add r8, r1 + adds r4, #1 +_0800DF78: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + blt _0800DF34 + movs r4, #0 + ldr r0, _0800DFF8 + mov sb, r0 + ldr r6, _0800E000 + mov r8, r4 + lsls r0, r7, #1 + adds r0, r0, r7 + lsls r0, r0, #2 + ldr r1, [sp, #0x14] + adds r5, r0, r1 +_0800DF98: + mov r1, sb + ldr r0, [r1] + adds r0, r0, r6 + adds r0, #4 + bl NameIsNotEmpty + cmp r0, #0 + beq _0800DFC6 + mov r0, sb + ldr r2, [r0] + ldr r1, _0800E000 + adds r0, r2, r1 + add r0, r8 + ldr r1, [r0] + adds r2, r2, r6 + adds r2, #4 + adds r0, r5, #0 + bl CopyTrainerRecord + adds r5, #0xc + adds r7, #1 + cmp r7, #0x13 + bgt _0800DFD2 +_0800DFC6: + adds r6, #0xc + movs r0, #0xc + add r8, r0 + adds r4, #1 + cmp r4, #0x13 + ble _0800DF98 +_0800DFD2: + ldr r0, _0800DFF8 + ldr r0, [r0] + ldr r1, _0800E000 + adds r0, r0, r1 + ldr r1, [sp, #0x14] + movs r2, #0xf0 + bl memcpy + ldr r0, [sp, #0x14] + bl Free +_0800DFE8: + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800DFF8: .4byte 0x03005AEC +_0800DFFC: .4byte 0x00003B9C +_0800E000: .4byte 0x00003B98 + thumb_func_end RecordMixTrainerNames + + thumb_func_start sub_0800E004 +sub_0800E004: @ 0x0800E004 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov sb, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + movs r7, #0 + ldr r6, _0800E040 + ldr r4, _0800E044 + movs r5, #0 +_0800E01C: + ldr r0, [r6] + adds r0, r0, r4 + adds r0, #4 + mov r1, sb + bl StringCompare + cmp r0, #0 + bne _0800E048 + ldr r0, [r6] + ldr r1, _0800E044 + adds r0, r0, r1 + adds r0, r0, r5 + ldr r0, [r0] + cmp r0, r8 + bne _0800E048 + movs r0, #1 + b _0800E062 + .align 2, 0 +_0800E040: .4byte 0x03005AEC +_0800E044: .4byte 0x00003B98 +_0800E048: + ldr r0, [r6] + adds r0, r0, r4 + adds r0, #4 + bl NameIsNotEmpty + cmp r0, #0 + beq _0800E060 + adds r4, #0xc + adds r5, #0xc + adds r7, #1 + cmp r7, #0x13 + ble _0800E01C +_0800E060: + movs r0, #0 +_0800E062: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0800E004 + + thumb_func_start WipeTrainerNameRecords +WipeTrainerNameRecords: @ 0x0800E070 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + ldr r0, _0800E0B4 + mov r8, r0 + movs r7, #0 + mov r6, r8 + movs r5, #0 + movs r4, #0x13 +_0800E084: + ldr r0, _0800E0B8 + ldr r1, [r0] + mov r2, r8 + adds r0, r1, r2 + adds r0, r0, r5 + str r7, [r0] + mov r0, sp + strh r7, [r0] + adds r1, r1, r6 + adds r1, #4 + ldr r2, _0800E0BC + bl CpuSet + adds r6, #0xc + adds r5, #0xc + subs r4, #1 + cmp r4, #0 + bge _0800E084 + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800E0B4: .4byte 0x00003B98 +_0800E0B8: .4byte 0x03005AEC +_0800E0BC: .4byte 0x01000004 + thumb_func_end WipeTrainerNameRecords + + thumb_func_start nullsub_13 +nullsub_13: @ 0x0800E0C0 + bx lr + .align 2, 0 + thumb_func_end nullsub_13 + + thumb_func_start nullsub_5 +nullsub_5: @ 0x0800E0C4 + bx lr + .align 2, 0 + thumb_func_end nullsub_5 + + thumb_func_start sub_0800E0C8 +sub_0800E0C8: @ 0x0800E0C8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #8 + ldr r6, _0800E16C + adds r5, r6, #0 + adds r5, #0xee + ldrb r4, [r5] + mov r0, sp + movs r7, #0 + strh r7, [r0] + ldr r2, _0800E170 + adds r1, r6, #0 + bl CpuSet + ldrb r0, [r5] + strb r4, [r5] + movs r0, #0xff + strb r0, [r6, #0xc] + ldrb r0, [r5] + cmp r0, #4 + beq _0800E0FA + ldrb r0, [r5] + strb r7, [r5] +_0800E0FA: + mov r7, sp + adds r7, #2 + add r0, sp, #4 + mov r8, r0 + movs r0, #6 + add r0, sp + mov sb, r0 + adds r5, r6, #0 + adds r5, #0x80 + movs r4, #4 +_0800E10E: + adds r0, r5, #0 + bl sub_0800F7A8 + adds r5, #0x14 + subs r4, #1 + cmp r4, #0 + bge _0800E10E + movs r5, #0 + ldr r4, _0800E174 + adds r0, r4, #0 + bl sub_0800F7A8 + adds r0, r4, #0 + adds r0, #0xb8 + bl sub_0800D184 + ldr r0, _0800E178 + adds r4, r4, r0 + adds r0, r4, #0 + bl sub_0800D1E0 + strh r5, [r7] + ldr r1, _0800E17C + ldr r2, _0800E180 + adds r0, r7, #0 + bl CpuSet + mov r0, r8 + strh r5, [r0] + ldr r1, _0800E184 + ldr r2, _0800E188 + bl CpuSet + mov r0, sb + strh r5, [r0] + ldr r1, _0800E18C + ldr r2, _0800E190 + bl CpuSet + add sp, #8 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800E16C: .4byte 0x030050A0 +_0800E170: .4byte 0x010004D6 +_0800E174: .4byte 0x0300510C +_0800E178: .4byte 0x00000634 +_0800E17C: .4byte 0x030031B0 +_0800E180: .4byte 0x01000008 +_0800E184: .4byte 0x03003130 +_0800E188: .4byte 0x01000028 +_0800E18C: .4byte 0x020226A0 +_0800E190: .4byte 0x01000046 + thumb_func_end sub_0800E0C8 + + thumb_func_start sub_0800E194 +sub_0800E194: @ 0x0800E194 + push {r4, r5, r6, lr} + ldr r4, _0800E1BC + ldr r5, [r4, #4] + ldr r6, [r4, #8] + bl sub_0800E1C4 + bl rfu_REQ_stopMode + bl rfu_waitREQComplete + ldr r1, _0800E1C0 + movs r0, #0 + strh r0, [r1] + str r5, [r4, #4] + str r6, [r4, #8] + movs r0, #1 + strh r0, [r1] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0800E1BC: .4byte 0x030027B0 +_0800E1C0: .4byte 0x04000208 + thumb_func_end sub_0800E194 + + thumb_func_start sub_0800E1C4 +sub_0800E1C4: @ 0x0800E1C4 + push {r4, lr} + ldr r0, _0800E1FC + ldr r1, _0800E200 + ldr r4, _0800E204 + adds r2, r4, #0 + movs r3, #1 + bl rfu_initializeAPI + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + bne _0800E1F6 + ldr r0, _0800E208 + strh r1, [r0] + bl sub_0800A6B8 + movs r0, #0 + bl sub_08010CA0 + bl sub_0800E0C8 + adds r1, r4, #4 + movs r0, #3 + bl rfu_setTimerInterrupt +_0800E1F6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800E1FC: .4byte 0x03004230 +_0800E200: .4byte 0x00000E64 +_0800E204: .4byte 0x030027B4 +_0800E208: .4byte 0x0202267E + thumb_func_end sub_0800E1C4 + + thumb_func_start sub_0800E20C +sub_0800E20C: @ 0x0800E20C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + bl sub_08010250 + ldr r0, _0800E22C + ldrh r0, [r0, #4] + cmp r0, #0x12 + bls _0800E220 + b _0800E326 +_0800E220: + lsls r0, r0, #2 + ldr r1, _0800E230 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0800E22C: .4byte 0x030050A0 +_0800E230: .4byte 0x0800E234 +_0800E234: @ jump table + .4byte _0800E280 @ case 0 + .4byte _0800E326 @ case 1 + .4byte _0800E2A8 @ case 2 + .4byte _0800E326 @ case 3 + .4byte _0800E2D8 @ case 4 + .4byte _0800E326 @ case 5 + .4byte _0800E326 @ case 6 + .4byte _0800E326 @ case 7 + .4byte _0800E326 @ case 8 + .4byte _0800E326 @ case 9 + .4byte _0800E326 @ case 10 + .4byte _0800E326 @ case 11 + .4byte _0800E326 @ case 12 + .4byte _0800E326 @ case 13 + .4byte _0800E326 @ case 14 + .4byte _0800E326 @ case 15 + .4byte _0800E326 @ case 16 + .4byte _0800E326 @ case 17 + .4byte _0800E2EC @ case 18 +_0800E280: + ldr r0, _0800E29C + bl sub_0800BA88 + ldr r0, _0800E2A0 + movs r2, #1 + strh r2, [r0, #4] + ldr r1, _0800E2A4 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r2, [r0, #0xa] + b _0800E326 + .align 2, 0 +_0800E29C: .4byte 0x020227E4 +_0800E2A0: .4byte 0x030050A0 +_0800E2A4: .4byte 0x03005B60 +_0800E2A8: + ldr r4, _0800E2CC + ldrb r0, [r4, #0xc] + ldr r3, _0800E2D0 + movs r1, #0 + movs r2, #0xf0 + bl sub_0800BB10 + movs r0, #3 + strh r0, [r4, #4] + ldr r1, _0800E2D4 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #6 + strh r1, [r0, #0xa] + b _0800E326 + .align 2, 0 +_0800E2CC: .4byte 0x030050A0 +_0800E2D0: .4byte 0x082C0430 +_0800E2D4: .4byte 0x03005B60 +_0800E2D8: + movs r0, #0 + bl sub_0800BD38 + ldr r1, _0800E2E8 + movs r0, #5 + strh r0, [r1, #4] + b _0800E326 + .align 2, 0 +_0800E2E8: .4byte 0x030050A0 +_0800E2EC: + ldr r4, _0800E32C + ldr r0, _0800E330 + adds r1, r4, r0 + ldrb r0, [r1] + movs r0, #0 + strb r0, [r1] + ldr r0, _0800E334 + bl sub_0800CFE8 + bl sub_0800E578 + bl sub_0800E5C0 + movs r0, #0x14 + strh r0, [r4, #4] + ldr r1, _0800E338 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #8 + strh r1, [r0, #0xa] + ldr r0, _0800E33C + movs r1, #5 + bl CreateTask + adds r0, r5, #0 + bl DestroyTask +_0800E326: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0800E32C: .4byte 0x030050A0 +_0800E330: .4byte 0x00000993 +_0800E334: .4byte 0x0800E87D +_0800E338: .4byte 0x03005B60 +_0800E33C: .4byte 0x0801034D + thumb_func_end sub_0800E20C + + thumb_func_start sub_0800E340 +sub_0800E340: @ 0x0800E340 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0800E34C + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0800E34C: .4byte 0x082C03F5 + thumb_func_end sub_0800E340 + + thumb_func_start sub_0800E350 +sub_0800E350: @ 0x0800E350 + push {r4, r5, r6, r7, lr} + adds r2, r0, #0 + adds r5, r1, #0 + movs r4, #1 + adds r1, r2, #0 + movs r6, #0 + movs r0, #1 + rsbs r0, r0, #0 + cmp r5, r0 + bne _0800E390 + movs r3, #0 + movs r5, #1 + ldr r1, _0800E38C +_0800E36A: + adds r0, r2, #0 + ands r0, r5 + cmp r0, #0 + beq _0800E37C + adds r0, r3, r1 + strb r4, [r0] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_0800E37C: + asrs r2, r2, #1 + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #3 + bls _0800E36A + b _0800E406 + .align 2, 0 +_0800E38C: .4byte 0x03005A36 +_0800E390: + movs r3, #0 + mvns r0, r1 + mov ip, r0 + movs r7, #1 + ldr r4, _0800E40C +_0800E39A: + adds r2, r1, #0 + ands r2, r7 + cmp r2, #0 + bne _0800E3A6 + adds r0, r3, r4 + strb r2, [r0] +_0800E3A6: + asrs r1, r1, #1 + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #3 + bls _0800E39A + movs r4, #4 + ldr r0, _0800E40C + ldrb r7, [r0] +_0800E3B8: + movs r3, #0 + subs r1, r4, #1 + cmp r7, r4 + beq _0800E3D4 + ldr r2, _0800E40C +_0800E3C2: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #3 + bhi _0800E3D4 + adds r0, r3, r2 + ldrb r0, [r0] + cmp r0, r4 + bne _0800E3C2 +_0800E3D4: + cmp r3, #4 + bne _0800E3DA + adds r6, r4, #0 +_0800E3DA: + lsls r0, r1, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _0800E3B8 + mov r0, ip + ands r5, r0 + movs r3, #0 + movs r2, #1 + ldr r1, _0800E40C +_0800E3EC: + adds r0, r5, #0 + ands r0, r2 + cmp r0, #0 + beq _0800E3FA + adds r0, r3, r1 + strb r6, [r0] + adds r6, #1 +_0800E3FA: + asrs r5, r5, #1 + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #3 + bls _0800E3EC +_0800E406: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800E40C: .4byte 0x03005A36 + thumb_func_end sub_0800E350 + + thumb_func_start sub_0800E410 +sub_0800E410: @ 0x0800E410 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _0800E42C + ldrh r3, [r0, #4] + adds r7, r0, #0 + cmp r3, #0xc + bls _0800E422 + b _0800E55E +_0800E422: + lsls r0, r3, #2 + ldr r1, _0800E430 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0800E42C: .4byte 0x030050A0 +_0800E430: .4byte 0x0800E434 +_0800E434: @ jump table + .4byte _0800E468 @ case 0 + .4byte _0800E55E @ case 1 + .4byte _0800E55E @ case 2 + .4byte _0800E55E @ case 3 + .4byte _0800E55E @ case 4 + .4byte _0800E55E @ case 5 + .4byte _0800E480 @ case 6 + .4byte _0800E55E @ case 7 + .4byte _0800E55E @ case 8 + .4byte _0800E4A8 @ case 9 + .4byte _0800E55E @ case 10 + .4byte _0800E4BC @ case 11 + .4byte _0800E500 @ case 12 +_0800E468: + ldr r0, _0800E478 + bl sub_0800BA88 + ldr r0, _0800E47C + movs r2, #1 + strh r2, [r0, #4] + b _0800E490 + .align 2, 0 +_0800E478: .4byte 0x082C0358 +_0800E47C: .4byte 0x030050A0 +_0800E480: + ldrb r0, [r7, #0xc] + ldr r3, _0800E4A0 + movs r1, #0 + movs r2, #0xf0 + bl sub_0800BB10 + movs r2, #7 + strh r2, [r7, #4] +_0800E490: + ldr r1, _0800E4A4 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r2, [r0, #0xa] + b _0800E55E + .align 2, 0 +_0800E4A0: .4byte 0x082C0430 +_0800E4A4: .4byte 0x03005B60 +_0800E4A8: + ldr r0, _0800E4B8 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0xa + strh r0, [r1, #0xa] + b _0800E55E + .align 2, 0 +_0800E4B8: .4byte 0x03005B60 +_0800E4BC: + bl sub_080102A0 + cmp r0, #6 + beq _0800E4E0 + cmp r0, #6 + bgt _0800E4CE + cmp r0, #5 + beq _0800E4D4 + b _0800E55E +_0800E4CE: + cmp r0, #9 + beq _0800E4E0 + b _0800E55E +_0800E4D4: + ldr r1, _0800E4DC + movs r0, #0xc + strh r0, [r1, #4] + b _0800E55E + .align 2, 0 +_0800E4DC: .4byte 0x030050A0 +_0800E4E0: + bl sub_0800D0EC + ldr r0, _0800E4F8 + ldr r1, _0800E4FC + adds r0, r0, r1 + movs r1, #2 + strb r1, [r0] + adds r0, r6, #0 + bl DestroyTask + b _0800E55E + .align 2, 0 +_0800E4F8: .4byte 0x030050A0 +_0800E4FC: .4byte 0x0000099C +_0800E500: + ldr r0, _0800E564 + adds r4, r7, r0 + ldrb r0, [r4] + movs r5, #0x80 + lsls r5, r5, #0x11 + lsls r5, r0 + lsrs r5, r5, #0x18 + ldrb r1, [r4] + movs r0, #0xc + bl rfu_clearSlot + ldrb r1, [r4] + ldr r0, _0800E568 + adds r2, r7, r0 + movs r0, #0x10 + movs r3, #0x46 + bl rfu_setRecvBuffer + adds r1, r7, #0 + adds r1, #0x4c + adds r0, r5, #0 + movs r2, #0xe + bl rfu_UNI_setSendData + ldr r1, _0800E56C + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #8 + strh r1, [r0, #0xa] + adds r0, r6, #0 + bl DestroyTask + ldr r4, _0800E570 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0800E556 + bl sub_08011D68 + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] +_0800E556: + ldr r0, _0800E574 + movs r1, #5 + bl CreateTask +_0800E55E: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800E564: .4byte 0x000008F6 +_0800E568: .4byte 0x000008F7 +_0800E56C: .4byte 0x03005B60 +_0800E570: .4byte 0x020227FC +_0800E574: .4byte 0x0801034D + thumb_func_end sub_0800E410 + + thumb_func_start sub_0800E578 +sub_0800E578: @ 0x0800E578 + push {r4, r5, lr} + ldr r0, _0800E5B8 + ldrb r5, [r0] + movs r4, #0 +_0800E580: + movs r0, #1 + ands r0, r5 + cmp r0, #0 + beq _0800E5A4 + lsls r2, r4, #3 + subs r2, r2, r4 + lsls r2, r2, #1 + ldr r0, _0800E5BC + adds r2, r2, r0 + movs r0, #0x10 + adds r1, r4, #0 + movs r3, #0xe + bl rfu_setRecvBuffer + movs r0, #3 + adds r1, r4, #0 + bl rfu_clearSlot +_0800E5A4: + lsrs r5, r5, #1 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _0800E580 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0800E5B8: .4byte 0x030041E0 +_0800E5BC: .4byte 0x030050B4 + thumb_func_end sub_0800E578 + + thumb_func_start sub_0800E5C0 +sub_0800E5C0: @ 0x0800E5C0 + push {r4, r5, r6, lr} + ldr r0, _0800E5FC + ldrb r5, [r0] + ldr r4, _0800E600 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x46 + bl rfu_UNI_setSendData + adds r0, r5, #0 + bl sub_0800E340 + ldr r1, _0800E604 + adds r6, r4, r1 + adds r1, r4, #0 + adds r1, #0x53 + strb r0, [r1] + adds r4, #0x5b + strb r5, [r4] + movs r1, #1 + rsbs r1, r1, #0 + adds r0, r5, #0 + bl sub_0800E350 + movs r0, #1 + strb r0, [r6, #0xc] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0800E5FC: .4byte 0x030041E0 +_0800E600: .4byte 0x030059DF +_0800E604: .4byte 0xFFFFF6C1 + thumb_func_end sub_0800E5C0 + + thumb_func_start sub_0800E608 +sub_0800E608: @ 0x0800E608 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + bl sub_0800F29C + ldrb r1, [r0, #0xa] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x54 + bne _0800E63C + bl sub_08011564 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bne _0800E63C + ldr r0, _0800E654 + ldrb r0, [r0] + bl rfu_REQ_disconnect + bl rfu_waitREQComplete + movs r0, #0 + movs r1, #0 + bl sub_08011554 +_0800E63C: + ldr r0, _0800E658 + ldrh r2, [r0, #4] + adds r6, r0, #0 + cmp r2, #0x12 + bls _0800E648 + b _0800E7BA +_0800E648: + lsls r0, r2, #2 + ldr r1, _0800E65C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0800E654: .4byte 0x030041E0 +_0800E658: .4byte 0x030050A0 +_0800E65C: .4byte 0x0800E660 +_0800E660: @ jump table + .4byte _0800E6AC @ case 0 + .4byte _0800E7BA @ case 1 + .4byte _0800E7BA @ case 2 + .4byte _0800E7BA @ case 3 + .4byte _0800E7BA @ case 4 + .4byte _0800E7BA @ case 5 + .4byte _0800E7BA @ case 6 + .4byte _0800E7BA @ case 7 + .4byte _0800E7BA @ case 8 + .4byte _0800E7BA @ case 9 + .4byte _0800E7BA @ case 10 + .4byte _0800E7BA @ case 11 + .4byte _0800E7BA @ case 12 + .4byte _0800E6FC @ case 13 + .4byte _0800E75C @ case 14 + .4byte _0800E7BA @ case 15 + .4byte _0800E770 @ case 16 + .4byte _0800E6D4 @ case 17 + .4byte _0800E7BA @ case 18 +_0800E6AC: + ldr r0, _0800E6C8 + bl sub_0800BA88 + ldr r0, _0800E6CC + movs r2, #1 + strh r2, [r0, #4] + ldr r1, _0800E6D0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r2, [r0, #0xa] + b _0800E7BA + .align 2, 0 +_0800E6C8: .4byte 0x020227E4 +_0800E6CC: .4byte 0x030050A0 +_0800E6D0: .4byte 0x03005B60 +_0800E6D4: + ldr r3, _0800E6F0 + movs r0, #2 + movs r1, #0 + movs r2, #0xf0 + bl sub_0800BB10 + ldr r0, _0800E6F4 + bl sub_0800CFE8 + ldr r1, _0800E6F8 + movs r0, #0x12 + strh r0, [r1, #4] + b _0800E7BA + .align 2, 0 +_0800E6F0: .4byte 0x082C0430 +_0800E6F4: .4byte 0x0800E7F5 +_0800E6F8: .4byte 0x030050A0 +_0800E6FC: + ldr r1, _0800E740 + adds r0, r6, r1 + ldrb r1, [r0] + movs r0, #0x80 + lsls r0, r0, #0x11 + lsls r0, r1 + lsrs r0, r0, #0x18 + adds r1, r6, #0 + adds r1, #0x4c + movs r2, #0xe + bl rfu_UNI_setSendData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + bne _0800E7BA + strb r0, [r6, #0xc] + adds r0, r5, #0 + bl DestroyTask + ldr r0, _0800E744 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r2, #0x16 + ldrsh r0, [r1, r2] + cmp r0, #0 + beq _0800E74C + ldr r0, _0800E748 + movs r1, #1 + bl CreateTask + b _0800E7BA + .align 2, 0 +_0800E740: .4byte 0x000008F6 +_0800E744: .4byte 0x03005B60 +_0800E748: .4byte 0x080107FD +_0800E74C: + ldr r0, _0800E758 + movs r1, #5 + bl CreateTask + b _0800E7BA + .align 2, 0 +_0800E758: .4byte 0x0801034D +_0800E75C: + movs r0, #0 + bl sub_0800BD38 + ldr r1, _0800E76C + movs r0, #0xf + strh r0, [r1, #4] + b _0800E7BA + .align 2, 0 +_0800E76C: .4byte 0x030050A0 +_0800E770: + ldr r0, _0800E7C0 + adds r1, r6, r0 + ldrb r0, [r1] + movs r0, #0 + strb r0, [r1] + ldr r0, _0800E7C4 + bl sub_0800CFE8 + movs r0, #1 + bl sub_08010B58 + bl sub_0800E578 + bl sub_0800E5C0 + movs r0, #0x14 + strh r0, [r6, #4] + ldr r1, _0800E7C8 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #8 + strh r1, [r0, #0xa] + movs r4, #1 + strb r4, [r6, #0xc] + ldr r0, _0800E7CC + movs r1, #5 + bl CreateTask + movs r1, #0x9a + lsls r1, r1, #4 + adds r0, r6, r1 + strb r4, [r0] + adds r0, r5, #0 + bl DestroyTask +_0800E7BA: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0800E7C0: .4byte 0x00000993 +_0800E7C4: .4byte 0x0800E87D +_0800E7C8: .4byte 0x03005B60 +_0800E7CC: .4byte 0x0801034D + thumb_func_end sub_0800E608 + + thumb_func_start sub_0800E7D0 +sub_0800E7D0: @ 0x0800E7D0 + push {lr} + ldr r3, _0800E7E4 + movs r0, #1 + movs r1, #0 + movs r2, #0xf0 + bl sub_0800BB10 + pop {r0} + bx r0 + .align 2, 0 +_0800E7E4: .4byte 0x082C0430 + thumb_func_end sub_0800E7D0 + + thumb_func_start sub_0800E7E8 +sub_0800E7E8: @ 0x0800E7E8 + push {lr} + movs r0, #0 + bl sub_0800BD38 + pop {r0} + bx r0 + thumb_func_end sub_0800E7E8 + + thumb_func_start sub_0800E7F4 +sub_0800E7F4: @ 0x0800E7F4 + push {r4, lr} + ldr r0, _0800E864 + movs r2, #0 + movs r1, #0xd + adds r0, #0x59 +_0800E7FE: + strb r2, [r0] + subs r0, #1 + subs r1, #1 + cmp r1, #0 + bge _0800E7FE + bl rfu_REQ_recvData + bl rfu_waitREQComplete + ldr r1, _0800E868 + ldr r3, _0800E864 + ldr r0, _0800E86C + adds r4, r3, r0 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldrb r0, [r0, #0x12] + cmp r0, #0 + beq _0800E858 + ldr r2, _0800E870 + adds r1, r3, r2 + ldrb r0, [r1] + adds r0, #1 + ldrb r2, [r1] + strb r0, [r1] + movs r1, #0x92 + lsls r1, r1, #1 + adds r0, r3, r1 + ldr r2, _0800E874 + adds r1, r3, r2 + bl sub_0800D294 + ldr r1, _0800E878 + ldrh r0, [r1, #6] + adds r0, #1 + strh r0, [r1, #6] + bl sub_0800EB08 + ldrb r0, [r4] + bl rfu_UNI_readySendData + ldrb r0, [r4] + bl rfu_UNI_clearRecvNewDataFlag +_0800E858: + movs r0, #1 + bl rfu_REQ_sendData_wrapper + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800E864: .4byte 0x030050A0 +_0800E868: .4byte 0x03007610 +_0800E86C: .4byte 0x000008F6 +_0800E870: .4byte 0x00000988 +_0800E874: .4byte 0x000008F7 +_0800E878: .4byte 0x020227FC + thumb_func_end sub_0800E7F4 + + thumb_func_start sub_0800E87C +sub_0800E87C: @ 0x0800E87C + ldr r0, _0800E88C + ldr r1, _0800E890 + adds r0, r0, r1 + ldrb r1, [r0] + movs r1, #1 + strb r1, [r0] + bx lr + .align 2, 0 +_0800E88C: .4byte 0x030050A0 +_0800E890: .4byte 0x00000993 + thumb_func_end sub_0800E87C + + thumb_func_start sub_0800E894 +sub_0800E894: @ 0x0800E894 + push {r4, r5, r6, lr} + bl sub_0800BB04 + ldr r4, _0800E8A8 + ldrb r0, [r4, #0xc] + cmp r0, #1 + bne _0800E8B0 + ldr r0, _0800E8AC + b _0800E8B6 + .align 2, 0 +_0800E8A8: .4byte 0x030050A0 +_0800E8AC: .4byte 0x0800E20D +_0800E8B0: + cmp r0, #0 + bne _0800E8D8 + ldr r0, _0800E8D4 +_0800E8B6: + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0800E8F8 + adds r0, r4, #0 + adds r0, #0x67 + ldrb r0, [r0] + bl DestroyTask + bl sub_0800E0C8 + b _0800E8F8 + .align 2, 0 +_0800E8D4: .4byte 0x0800E411 +_0800E8D8: + cmp r0, #2 + bne _0800E8F8 + ldr r0, _0800E930 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0800E8F8 + adds r0, r4, #0 + adds r0, #0x67 + ldrb r0, [r0] + bl DestroyTask + bl sub_0800E0C8 +_0800E8F8: + movs r5, #0 + ldr r6, _0800E934 +_0800E8FC: + lsls r0, r5, #2 + adds r0, r0, r6 + ldr r4, [r0] + adds r0, r4, #0 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0800E91E + adds r0, r4, #0 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_0800E91E: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #2 + bls _0800E8FC + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0800E930: .4byte 0x0800E609 +_0800E934: .4byte 0x082C0530 + thumb_func_end sub_0800E894 + + thumb_func_start sub_0800E938 +sub_0800E938: @ 0x0800E938 + push {lr} + ldr r0, _0800E94C + movs r1, #1 + bl CreateTask + ldr r1, _0800E950 + adds r1, #0x67 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0800E94C: .4byte 0x0800E20D +_0800E950: .4byte 0x030050A0 + thumb_func_end sub_0800E938 + + thumb_func_start sub_0800E954 +sub_0800E954: @ 0x0800E954 + push {lr} + ldr r1, _0800E96C + ldrh r0, [r1, #4] + cmp r0, #7 + bne _0800E974 + ldr r2, _0800E970 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _0800E974 + movs r0, #1 + b _0800E976 + .align 2, 0 +_0800E96C: .4byte 0x030050A0 +_0800E970: .4byte 0x00000985 +_0800E974: + movs r0, #0 +_0800E976: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0800E954 + + thumb_func_start sub_0800E97C +sub_0800E97C: @ 0x0800E97C + push {r4, lr} + ldr r4, _0800E9AC + ldrh r0, [r4, #4] + cmp r0, #7 + bne _0800E9B8 + ldr r0, _0800E9B0 + ldr r1, [r0] + ldr r2, _0800E9B4 + adds r0, r4, r2 + ldrb r0, [r0] + lsls r0, r0, #5 + adds r1, r1, r0 + ldrh r0, [r1, #0x14] + movs r1, #0xf0 + bl sub_0800BBE8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0800E9B8 + movs r0, #9 + strh r0, [r4, #4] + movs r0, #1 + b _0800E9BA + .align 2, 0 +_0800E9AC: .4byte 0x030050A0 +_0800E9B0: .4byte 0x03007630 +_0800E9B4: .4byte 0x000008F5 +_0800E9B8: + movs r0, #0 +_0800E9BA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0800E97C + + thumb_func_start sub_0800E9C0 +sub_0800E9C0: @ 0x0800E9C0 + push {lr} + ldr r0, _0800E9D4 + movs r1, #1 + bl CreateTask + ldr r1, _0800E9D8 + adds r1, #0x67 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0800E9D4: .4byte 0x0800E411 +_0800E9D8: .4byte 0x030050A0 + thumb_func_end sub_0800E9C0 + + thumb_func_start sub_0800E9DC +sub_0800E9DC: @ 0x0800E9DC + push {lr} + ldr r0, _0800E9EC + ldrb r0, [r0] + cmp r0, #0 + bne _0800E9F0 + movs r0, #0 + b _0800E9F2 + .align 2, 0 +_0800E9EC: .4byte 0x030041E0 +_0800E9F0: + movs r0, #1 +_0800E9F2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0800E9DC + + thumb_func_start sub_0800E9F8 +sub_0800E9F8: @ 0x0800E9F8 + ldr r1, _0800EA0C + movs r0, #4 + strh r0, [r1, #4] + ldr r0, _0800EA10 + ldrb r0, [r0] + ldr r2, _0800EA14 + adds r1, r1, r2 + strb r0, [r1] + bx lr + .align 2, 0 +_0800EA0C: .4byte 0x030050A0 +_0800EA10: .4byte 0x030041E0 +_0800EA14: .4byte 0x0000099F + thumb_func_end sub_0800E9F8 + + thumb_func_start sub_0800EA18 +sub_0800EA18: @ 0x0800EA18 + push {lr} + adds r1, r0, #0 + ldr r2, _0800EA30 + ldrh r0, [r2, #4] + cmp r0, #0x11 + beq _0800EA28 + cmp r1, #0 + beq _0800EA34 +_0800EA28: + movs r0, #0x12 + strh r0, [r2, #4] + movs r0, #1 + b _0800EA36 + .align 2, 0 +_0800EA30: .4byte 0x030050A0 +_0800EA34: + movs r0, #0 +_0800EA36: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0800EA18 + + thumb_func_start sub_0800EA3C +sub_0800EA3C: @ 0x0800EA3C + ldr r1, _0800EA44 + movs r0, #0xe + strh r0, [r1, #4] + bx lr + .align 2, 0 +_0800EA44: .4byte 0x030050A0 + thumb_func_end sub_0800EA3C + + thumb_func_start sub_0800EA48 +sub_0800EA48: @ 0x0800EA48 + push {lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r2, #0 + b _0800EA5A +_0800EA52: + lsrs r1, r1, #1 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 +_0800EA5A: + cmp r2, #3 + bhi _0800EA6C + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0800EA52 + adds r0, r2, #0 + bl rfu_UNI_readySendData +_0800EA6C: + pop {r0} + bx r0 + thumb_func_end sub_0800EA48 + + thumb_func_start sub_0800EA70 +sub_0800EA70: @ 0x0800EA70 + push {r4, r5, r6, r7, lr} + sub sp, #4 + movs r2, #0 + ldr r7, _0800EAC4 + ldr r0, _0800EAC8 + adds r6, r7, #0 + ldr r1, _0800EACC + adds r5, r0, r1 +_0800EA80: + movs r3, #0 + lsls r0, r2, #3 + lsls r1, r2, #4 + adds r4, r2, #1 + subs r0, r0, r2 + lsls r0, r0, #1 + adds r2, r0, r5 + adds r1, r1, r6 +_0800EA90: + ldrh r0, [r1] + lsrs r0, r0, #8 + strb r0, [r2, #1] + ldrh r0, [r1] + strb r0, [r2] + adds r2, #2 + adds r1, #2 + adds r3, #1 + cmp r3, #6 + ble _0800EA90 + adds r2, r4, #0 + cmp r2, #4 + ble _0800EA80 + movs r0, #0 + mov r1, sp + strh r0, [r1] + ldr r2, _0800EAD0 + mov r0, sp + adds r1, r7, #0 + bl CpuSet + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800EAC4: .4byte 0x03003130 +_0800EAC8: .4byte 0x030050A0 +_0800EACC: .4byte 0x0000093F +_0800EAD0: .4byte 0x01000028 + thumb_func_end sub_0800EA70 + + thumb_func_start sub_0800EAD4 +sub_0800EAD4: @ 0x0800EAD4 + push {lr} + ldr r3, _0800EB00 + ldr r2, _0800EB04 + movs r1, #6 +_0800EADC: + ldrh r0, [r3] + strh r0, [r2] + adds r3, #2 + adds r2, #2 + subs r1, #1 + cmp r1, #0 + bge _0800EADC + ldr r1, _0800EB00 + movs r2, #0 + adds r0, r1, #0 + adds r0, #0xc +_0800EAF2: + strh r2, [r0] + subs r0, #2 + cmp r0, r1 + bge _0800EAF2 + pop {r0} + bx r0 + .align 2, 0 +_0800EB00: .4byte 0x030031B0 +_0800EB04: .4byte 0x03003130 + thumb_func_end sub_0800EAD4 + + thumb_func_start sub_0800EB08 +sub_0800EB08: @ 0x0800EB08 + push {r4, r5, lr} + ldr r4, _0800EB68 + ldr r0, _0800EB6C + adds r5, r4, r0 + ldrb r0, [r5] + cmp r0, #0 + beq _0800EB3A + ldr r1, _0800EB70 + adds r0, r4, r1 + adds r1, r4, #0 + adds r1, #0x4c + bl sub_0800D594 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _0800EB74 + adds r0, r4, r1 + ldrb r0, [r0] + adds r1, r0, #0 + cmp r1, #0 + bne _0800EB36 + ldrb r0, [r5] + strb r1, [r5] +_0800EB36: + cmp r2, #0 + bne _0800EB60 +_0800EB3A: + ldr r5, _0800EB68 + ldr r1, _0800EB6C + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _0800EB60 + movs r1, #0xd4 + lsls r1, r1, #3 + adds r0, r5, r1 + adds r4, r5, #0 + adds r4, #0x4c + adds r1, r4, #0 + bl sub_0800D4A8 + ldr r1, _0800EB70 + adds r0, r5, r1 + adds r1, r4, #0 + bl sub_0800D534 +_0800EB60: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0800EB68: .4byte 0x030050A0 +_0800EB6C: .4byte 0x000008F4 +_0800EB70: .4byte 0x000008D4 +_0800EB74: .4byte 0x000008F2 + thumb_func_end sub_0800EB08 + + thumb_func_start IsRfuRecvQueueEmpty +IsRfuRecvQueueEmpty: @ 0x0800EB78 + push {r4, lr} + ldr r0, _0800EB88 + ldr r0, [r0] + ldrb r0, [r0, #6] + cmp r0, #0 + bne _0800EB8C +_0800EB84: + movs r0, #0 + b _0800EBAC + .align 2, 0 +_0800EB88: .4byte 0x03007630 +_0800EB8C: + movs r3, #0 + ldr r4, _0800EBB4 +_0800EB90: + movs r2, #0 + lsls r0, r3, #4 + adds r1, r0, r4 +_0800EB96: + ldrh r0, [r1] + cmp r0, #0 + bne _0800EB84 + adds r1, #2 + adds r2, #1 + cmp r2, #6 + ble _0800EB96 + adds r3, #1 + cmp r3, #4 + ble _0800EB90 + movs r0, #1 +_0800EBAC: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0800EBB4: .4byte 0x03003130 + thumb_func_end IsRfuRecvQueueEmpty + + thumb_func_start sub_0800EBB8 +sub_0800EBB8: @ 0x0800EBB8 + push {r4, r5, r6, lr} + ldr r6, _0800EBD4 + ldrh r0, [r6, #4] + cmp r0, #0x13 + bhi _0800EBD8 + bl rfu_REQ_recvData + bl rfu_waitREQComplete + movs r0, #0 + bl rfu_REQ_sendData_wrapper + b _0800EC92 + .align 2, 0 +_0800EBD4: .4byte 0x030050A0 +_0800EBD8: + ldr r0, _0800EC34 + adds r1, r6, r0 + ldrb r0, [r1] + movs r0, #0 + strb r0, [r1] + ldr r0, _0800EC38 + adds r1, r6, r0 + ldr r0, _0800EC3C + ldr r0, [r0] + ldrb r1, [r1] + ldrb r0, [r0, #2] + ands r0, r1 + cmp r0, r1 + bne _0800EC92 + cmp r0, #0 + beq _0800EC92 + ldr r1, _0800EC40 + adds r0, r6, r1 + ldrb r0, [r0] + adds r5, r0, #0 + cmp r5, #0 + bne _0800EC88 + ldr r0, _0800EC44 + adds r4, r6, r0 + ldrb r0, [r4] + cmp r0, #0 + beq _0800EC68 + bl sub_08011858 + strb r5, [r4] + ldr r1, _0800EC48 + adds r0, r6, r1 + ldrb r0, [r0] + cmp r0, #1 + bne _0800EC4C + movs r4, #0x80 + lsls r4, r4, #8 + movs r0, #2 + adds r1, r4, #0 + bl sub_08011554 + adds r0, r4, #0 + bl sub_08010C60 + b _0800EC92 + .align 2, 0 +_0800EC34: .4byte 0x00000993 +_0800EC38: .4byte 0x0000099A +_0800EC3C: .4byte 0x03007630 +_0800EC40: .4byte 0x00000994 +_0800EC44: .4byte 0x0000099B +_0800EC48: .4byte 0x0000099C +_0800EC4C: + ldr r0, _0800EC60 + ldrb r4, [r0] + cmp r4, #0 + bne _0800EC68 + bl sub_0800E894 + ldr r0, _0800EC64 + strb r4, [r0] + b _0800EC92 + .align 2, 0 +_0800EC60: .4byte 0x030041E0 +_0800EC64: .4byte 0x030031C4 +_0800EC68: + bl sub_0800EA70 + ldr r0, _0800EC80 + ldr r1, _0800EC84 + adds r0, r0, r1 + ldrb r0, [r0] + bl rfu_UNI_readySendData + movs r0, #1 + bl rfu_REQ_sendData_wrapper + b _0800EC8C + .align 2, 0 +_0800EC80: .4byte 0x030050A0 +_0800EC84: .4byte 0x00000992 +_0800EC88: + bl rfu_REQ_PARENT_resumeRetransmitAndChange +_0800EC8C: + ldr r1, _0800EC9C + movs r0, #1 + strb r0, [r1, #0xe] +_0800EC92: + movs r0, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0800EC9C: .4byte 0x030050A0 + thumb_func_end sub_0800EBB8 + + thumb_func_start sub_0800ECA0 +sub_0800ECA0: @ 0x0800ECA0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r0, _0800ED80 + ldrh r1, [r0, #4] + adds r6, r0, #0 + cmp r1, #0x13 + bhi _0800ECB8 + b _0800EF1A +_0800ECB8: + ldrb r0, [r6, #0xe] + cmp r0, #1 + beq _0800ECC0 + b _0800EF1A +_0800ECC0: + bl rfu_waitREQComplete + ldr r0, _0800ED84 + adds r2, r6, r0 + ldrb r0, [r2] + cmp r0, #0 + bne _0800ECE0 + adds r1, r6, #0 + adds r1, #0xee +_0800ECD2: + ldrb r0, [r1] + cmp r0, #0 + beq _0800ECDA + b _0800EF40 +_0800ECDA: + ldrb r0, [r2] + cmp r0, #0 + beq _0800ECD2 +_0800ECE0: + bl rfu_REQ_recvData + bl rfu_waitREQComplete + ldr r2, _0800ED88 + ldr r4, _0800ED80 + ldr r1, _0800ED8C + adds r0, r4, r1 + ldrb r1, [r2, #3] + ldrb r0, [r0] + ands r1, r0 + cmp r1, r0 + beq _0800ECFC + b _0800EF04 +_0800ECFC: + ldr r6, _0800ED90 + adds r1, r4, r6 + ldrb r0, [r1] + movs r0, #0 + strb r0, [r1] + ldr r1, _0800ED94 + ldrh r0, [r1, #6] + adds r0, #1 + strh r0, [r1, #6] + ldrb r7, [r2] + movs r5, #0 +_0800ED12: + movs r0, #1 + ands r0, r7 + lsrs r1, r7, #1 + str r1, [sp, #4] + adds r2, r5, #1 + str r2, [sp] + cmp r0, #0 + bne _0800ED24 + b _0800EE24 +_0800ED24: + ldr r1, _0800ED80 + lsls r2, r5, #3 + subs r0, r2, r5 + lsls r4, r0, #1 + adds r0, r1, #0 + adds r0, #0x15 + adds r0, r4, r0 + ldrb r0, [r0] + adds r6, r1, #0 + adds r3, r2, #0 + lsls r1, r5, #0x18 + mov sl, r1 + cmp r0, #0 + beq _0800EE1C + ldr r2, _0800ED98 + adds r0, r6, r2 + adds r1, r5, r0 + ldrb r0, [r1] + cmp r0, #0xff + beq _0800EDA0 + adds r0, r6, #0 + adds r0, #0x14 + adds r0, r4, r0 + ldrb r2, [r0] + lsrs r2, r2, #5 + ldrb r0, [r1] + adds r0, #1 + movs r1, #7 + ands r0, r1 + cmp r2, r0 + beq _0800EDA0 + ldr r0, _0800ED9C + adds r1, r6, r0 + adds r1, r5, r1 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bls _0800EE1C + movs r0, #0x81 + lsls r0, r0, #8 + bl sub_08010C60 + b _0800EE1C + .align 2, 0 +_0800ED80: .4byte 0x030050A0 +_0800ED84: .4byte 0x00000993 +_0800ED88: .4byte 0x030041E0 +_0800ED8C: .4byte 0x0000099A +_0800ED90: .4byte 0x00000994 +_0800ED94: .4byte 0x020227FC +_0800ED98: .4byte 0x000009A6 +_0800ED9C: .4byte 0x000009A2 +_0800EDA0: + ldr r2, _0800EEE0 + ldr r6, _0800EEE4 + adds r1, r2, r6 + adds r1, r5, r1 + subs r3, r3, r5 + lsls r3, r3, #1 + adds r4, r2, #0 + adds r4, #0x14 + adds r2, r3, r4 + ldrb r0, [r2] + lsrs r0, r0, #5 + strb r0, [r1] + ldr r1, _0800EEE0 + subs r6, #4 + adds r0, r1, r6 + adds r0, r5, r0 + movs r1, #0 + strb r1, [r0] + ldrb r1, [r2] + movs r0, #0x1f + ands r0, r1 + strb r0, [r2] + ldr r2, _0800EEE8 + adds r0, r5, r2 + ldrb r0, [r0] + movs r6, #0 + lsls r1, r5, #0x18 + mov sl, r1 + lsrs r2, r7, #1 + str r2, [sp, #4] + adds r5, #1 + str r5, [sp] + ldr r1, _0800EEEC + mov sb, r1 + adds r5, r3, #0 + adds r7, r4, #0 + lsls r0, r0, #4 + mov r8, r0 + adds r2, r5, #1 + mov ip, r2 +_0800EDF0: + lsls r1, r6, #1 + mov r0, r8 + adds r4, r1, r0 + add r4, sb + mov r2, ip + adds r3, r1, r2 + adds r3, r3, r7 + ldrb r2, [r3] + lsls r2, r2, #8 + adds r1, r1, r5 + adds r1, r1, r7 + ldrb r0, [r1] + orrs r0, r2 + strh r0, [r4] + movs r0, #0 + strb r0, [r3] + strb r0, [r1] + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #6 + bls _0800EDF0 +_0800EE1C: + mov r1, sl + lsrs r0, r1, #0x18 + bl rfu_UNI_clearRecvNewDataFlag +_0800EE24: + ldr r2, [sp, #4] + lsls r0, r2, #0x10 + lsrs r7, r0, #0x10 + ldr r6, [sp] + lsls r0, r6, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #3 + bhi _0800EE36 + b _0800ED12 +_0800EE36: + bl sub_0800EAD4 + movs r0, #0 + bl sub_0800F350 + bl sub_08010028 + ldr r4, _0800EEE0 + ldr r1, _0800EEF0 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _0800EF12 + ldr r2, _0800EEF4 + adds r0, r4, r2 + ldrb r2, [r0] + cmp r2, #0 + bne _0800EF12 + ldr r0, _0800EEF8 + ldrb r1, [r0, #0xe] + strb r2, [r0, #0xe] + ldr r6, _0800EEFC + adds r0, r4, r6 + ldrb r1, [r0] + movs r0, #3 + bl rfu_clearSlot + movs r5, #0 + adds r7, r4, #0 + adds r7, #0x14 +_0800EE72: + ldr r0, _0800EEF0 + adds r6, r4, r0 + ldrb r0, [r6] + asrs r0, r5 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0800EE96 + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r5, #3 + subs r2, r2, r5 + lsls r2, r2, #1 + adds r2, r2, r7 + movs r0, #0x10 + movs r3, #0xe + bl rfu_setRecvBuffer +_0800EE96: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #3 + bls _0800EE72 + subs r4, r6, #3 + ldrb r0, [r4] + ldrb r2, [r6] + adds r1, r0, #0 + orrs r1, r2 + bl sub_0800E350 + ldrb r1, [r6] + movs r2, #0 + strb r1, [r6, #4] + ldrb r0, [r4] + orrs r0, r1 + strb r0, [r4] + strb r2, [r6] + ldrb r0, [r4] + adds r1, r6, #0 + subs r1, #0x5e + movs r2, #0x46 + bl rfu_UNI_setSendData + ldrb r0, [r4] + bl sub_0800E340 + adds r1, r6, #0 + subs r1, #0xb + strb r0, [r1] + ldr r0, _0800EF00 + movs r1, #0 + bl CreateTask + b _0800EF12 + .align 2, 0 +_0800EEE0: .4byte 0x030050A0 +_0800EEE4: .4byte 0x000009A6 +_0800EEE8: .4byte 0x03005A36 +_0800EEEC: .4byte 0x03003130 +_0800EEF0: .4byte 0x0000099D +_0800EEF4: .4byte 0x00000991 +_0800EEF8: .4byte 0x020227FC +_0800EEFC: .4byte 0x00000992 +_0800EF00: .4byte 0x080105A5 +_0800EF04: + ldr r2, _0800EF34 + adds r1, r4, r2 + ldrb r0, [r1] + movs r2, #0 + movs r0, #1 + strb r0, [r1] + strb r2, [r4, #0xe] +_0800EF12: + ldr r1, _0800EF38 + movs r0, #0 + strb r0, [r1, #0xe] + adds r6, r1, #0 +_0800EF1A: + ldr r1, _0800EF34 + adds r0, r6, r1 + ldrb r0, [r0] + adds r1, r0, #0 + ldr r0, _0800EF3C + ldr r0, [r0] + ldrb r0, [r0, #6] + cmp r0, #0 + beq _0800EF44 + movs r0, #1 + ands r0, r1 + b _0800EF46 + .align 2, 0 +_0800EF34: .4byte 0x00000994 +_0800EF38: .4byte 0x030050A0 +_0800EF3C: .4byte 0x03007630 +_0800EF40: + movs r0, #0 + b _0800EF46 +_0800EF44: + movs r0, #0 +_0800EF46: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0800ECA0 + + thumb_func_start sub_0800EF58 +sub_0800EF58: @ 0x0800EF58 + push {r4, r5, lr} + adds r4, r0, #0 + adds r2, r1, #0 + ldrh r1, [r4] + cmp r1, #0 + beq _0800EF9C + ldr r0, _0800EF98 + movs r5, #0x81 + lsls r5, r5, #1 + adds r3, r0, r5 + ldrb r0, [r3] + lsls r0, r0, #5 + orrs r0, r1 + strh r0, [r4] + ldrb r0, [r3] + adds r0, #1 + movs r1, #7 + ands r0, r1 + strb r0, [r3] + adds r3, r4, #0 + movs r4, #6 +_0800EF82: + ldrh r1, [r3] + lsrs r0, r1, #8 + strb r0, [r2, #1] + strb r1, [r2] + adds r2, #2 + adds r3, #2 + subs r4, #1 + cmp r4, #0 + bge _0800EF82 + b _0800EFAA + .align 2, 0 +_0800EF98: .4byte 0x030050A0 +_0800EF9C: + movs r1, #0 + adds r0, r2, #0 + adds r0, #0xd +_0800EFA2: + strb r1, [r0] + subs r0, #1 + cmp r0, r2 + bge _0800EFA2 +_0800EFAA: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_0800EF58 + + thumb_func_start sub_0800EFB0 +sub_0800EFB0: @ 0x0800EFB0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x58 + ldr r0, _0800F0D4 + mov r1, sp + bl sub_0800D3F4 + movs r1, #0 + ldr r0, _0800F0D8 + mov ip, r0 +_0800EFC6: + movs r4, #0 + lsls r0, r1, #3 + adds r2, r1, #1 + mov r8, r2 + lsls r6, r1, #4 + subs r0, r0, r1 + lsls r5, r0, #1 +_0800EFD4: + lsls r1, r4, #1 + adds r3, r1, r6 + add r3, ip + adds r1, r5, r1 + adds r0, r1, #1 + add r0, sp + ldrb r2, [r0] + lsls r2, r2, #8 + mov r7, sp + adds r0, r7, r1 + ldrb r0, [r0] + orrs r0, r2 + strh r0, [r3] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #6 + bls _0800EFD4 + mov r1, r8 + lsls r0, r1, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #4 + bls _0800EFC6 + movs r0, #0 + bl sub_0800F350 + ldr r0, _0800F0DC + ldrb r0, [r0, #2] + cmp r0, #0 + bne _0800F080 + ldr r0, _0800F0E0 + ldr r2, _0800F0E4 + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _0800F080 + ldr r0, _0800F0E8 + ldr r0, [r0] + ldrb r1, [r0, #2] + ldrb r0, [r0, #3] + orrs r0, r1 + bl rfu_REQ_disconnect + bl rfu_waitREQComplete + bl sub_08011564 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0800F04C + cmp r0, #6 + beq _0800F04C + cmp r0, #9 + beq _0800F04C + movs r1, #0x90 + lsls r1, r1, #8 + movs r0, #2 + bl sub_08011554 +_0800F04C: + bl rfu_clearAllSlot + ldr r1, _0800F0EC + movs r0, #0 + strb r0, [r1] + ldr r0, _0800F0E0 + movs r5, #0 + str r5, [r0] + ldr r7, _0800F0E4 + adds r6, r0, r7 + ldrb r0, [r6] + cmp r0, #1 + bne _0800F078 + movs r4, #0x90 + lsls r4, r4, #8 + movs r0, #2 + adds r1, r4, #0 + bl sub_08011554 + adds r0, r4, #0 + bl sub_08010C60 +_0800F078: + ldr r0, _0800F0DC + strb r5, [r0, #5] + strb r5, [r0, #4] + strb r5, [r6] +_0800F080: + ldr r6, _0800F0E0 + ldr r0, _0800F0F0 + adds r2, r6, r0 + ldrb r0, [r2] + cmp r0, #0 + beq _0800F0C4 + ldrb r0, [r2] + subs r0, #1 + ldrb r1, [r2] + strb r0, [r2] + bl sub_08010028 + ldr r5, _0800F0F4 + add r4, sp, #0x48 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0800EF58 + movs r1, #0xd4 + lsls r1, r1, #3 + adds r0, r6, r1 + adds r1, r4, #0 + bl sub_0800D348 + movs r1, #0 + movs r2, #0 +_0800F0B4: + lsls r0, r1, #1 + adds r0, r0, r5 + strh r2, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #6 + bls _0800F0B4 +_0800F0C4: + bl IsRfuRecvQueueEmpty + add sp, #0x58 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0800F0D4: .4byte 0x030051C4 +_0800F0D8: .4byte 0x03003130 +_0800F0DC: .4byte 0x030041E0 +_0800F0E0: .4byte 0x030050A0 +_0800F0E4: .4byte 0x0000099C +_0800F0E8: .4byte 0x03007630 +_0800F0EC: .4byte 0x030031C4 +_0800F0F0: .4byte 0x00000988 +_0800F0F4: .4byte 0x030031B0 + thumb_func_end sub_0800EFB0 + + thumb_func_start sub_0800F0F8 +sub_0800F0F8: @ 0x0800F0F8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _0800F1A4 + ldr r2, [r0, #0x70] + mov sl, r2 + movs r5, #0 + adds r2, r0, #0 + adds r2, #0x6e + ldrh r3, [r2] + cmp r5, r3 + bge _0800F194 + mov sb, r0 + ldr r0, _0800F1A8 + mov r8, r0 +_0800F11A: + movs r0, #1 + ands r0, r1 + lsrs r7, r1, #1 + adds r6, r5, #1 + cmp r0, #0 + bne _0800F188 + ldr r1, _0800F1AC + adds r0, r1, #0 + adds r1, r5, #0 + orrs r1, r0 + mov r2, r8 + strh r1, [r2] + movs r4, #0 + lsls r0, r5, #1 + ldr r3, _0800F1B0 + mov ip, r3 + adds r0, r0, r5 + lsls r0, r0, #2 + mov r1, sl + adds r2, r0, r1 + mov r3, r8 + adds r3, #2 +_0800F146: + ldrb r1, [r2, #1] + lsls r1, r1, #8 + ldrb r0, [r2] + orrs r0, r1 + strh r0, [r3] + adds r2, #2 + adds r3, #2 + adds r4, #1 + cmp r4, #6 + ble _0800F146 + movs r4, #0 + ldr r2, _0800F1A8 + ldr r1, _0800F1B0 +_0800F160: + ldrh r0, [r2] + lsrs r0, r0, #8 + strb r0, [r1, #1] + ldrh r0, [r2] + strb r0, [r1] + adds r2, #2 + adds r1, #2 + adds r4, #1 + cmp r4, #6 + ble _0800F160 + ldr r0, _0800F1B4 + mov r1, ip + bl sub_0800D348 + movs r1, #1 + lsls r1, r5 + mov r2, sb + ldr r0, [r2, #0x78] + orrs r0, r1 + str r0, [r2, #0x78] +_0800F188: + adds r1, r7, #0 + adds r5, r6, #0 + ldr r3, _0800F1B8 + ldrh r3, [r3] + cmp r5, r3 + blt _0800F11A +_0800F194: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800F1A4: .4byte 0x030050A0 +_0800F1A8: .4byte 0x03000D90 +_0800F1AC: .4byte 0xFFFF8900 +_0800F1B0: .4byte 0x03000D80 +_0800F1B4: .4byte 0x03005740 +_0800F1B8: .4byte 0x0300510E + thumb_func_end sub_0800F0F8 + + thumb_func_start sub_0800F1BC +sub_0800F1BC: @ 0x0800F1BC + push {lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r0, _0800F1D8 + ldrb r2, [r0, #0xc] + cmp r2, #1 + bne _0800F1DC + cmp r1, #0 + beq _0800F1DC + adds r0, #0x61 + adds r0, r1, r0 + strb r2, [r0] + b _0800F1E4 + .align 2, 0 +_0800F1D8: .4byte 0x030050A0 +_0800F1DC: + adds r0, #0x5c + adds r0, r1, r0 + movs r1, #1 + strb r1, [r0] +_0800F1E4: + pop {r0} + bx r0 + thumb_func_end sub_0800F1BC + + thumb_func_start sub_0800F1E8 +sub_0800F1E8: @ 0x0800F1E8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _0800F208 + adds r1, r3, #0 + adds r1, #0x5c + adds r1, r0, r1 + movs r2, #0 + strb r2, [r1] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + adds r1, #0x92 + strb r2, [r1] + bx lr + .align 2, 0 +_0800F208: .4byte 0x030050A0 + thumb_func_end sub_0800F1E8 + + thumb_func_start sub_0800F20C +sub_0800F20C: @ 0x0800F20C + push {r4, r5, lr} + adds r3, r0, #0 + ldr r0, _0800F220 + ldrb r1, [r0, #0xc] + adds r5, r0, #0 + cmp r1, #1 + bne _0800F224 + movs r0, #0 + b _0800F246 + .align 2, 0 +_0800F220: .4byte 0x030050A0 +_0800F224: + movs r2, #0 + ldr r0, _0800F24C + adds r4, r5, r0 +_0800F22A: + adds r1, r2, r4 + adds r0, r3, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #3 + bls _0800F22A + ldr r1, _0800F250 + adds r0, r5, r1 + ldrb r0, [r0] + adds r0, r0, r3 + ldrb r0, [r0] +_0800F246: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0800F24C: .4byte 0x00000996 +_0800F250: .4byte 0x000008F6 + thumb_func_end sub_0800F20C + + thumb_func_start rfu_func_080F97B8 +rfu_func_080F97B8: @ 0x0800F254 + push {lr} + ldr r0, _0800F28C + ldrb r0, [r0] + cmp r0, #0 + beq _0800F286 + ldr r3, _0800F290 + ldrh r2, [r3] + cmp r2, #0 + beq _0800F286 + ldr r0, _0800F294 + ldrb r0, [r0] + cmp r0, #1 + beq _0800F286 + ldr r1, _0800F298 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldrb r0, [r1] + lsls r0, r0, #8 + orrs r0, r2 + strh r0, [r3] + movs r0, #0xbe + lsls r0, r0, #8 + bl sub_0800F7F8 +_0800F286: + pop {r0} + bx r0 + .align 2, 0 +_0800F28C: .4byte 0x030031C4 +_0800F290: .4byte 0x03005B08 +_0800F294: .4byte 0x03002354 +_0800F298: .4byte 0x03000D78 + thumb_func_end rfu_func_080F97B8 + + thumb_func_start sub_0800F29C +sub_0800F29C: @ 0x0800F29C + ldr r0, _0800F2A0 + bx lr + .align 2, 0 +_0800F2A0: .4byte 0x020227CC + thumb_func_end sub_0800F29C + + thumb_func_start IsSendingKeysToRfu +IsSendingKeysToRfu: @ 0x0800F2A4 + push {lr} + movs r2, #0 + ldr r0, _0800F2BC + ldr r1, [r0] + ldr r0, _0800F2C0 + cmp r1, r0 + bne _0800F2B4 + movs r2, #1 +_0800F2B4: + adds r0, r2, #0 + pop {r1} + bx r1 + .align 2, 0 +_0800F2BC: .4byte 0x030050A0 +_0800F2C0: .4byte 0x0800F255 + thumb_func_end IsSendingKeysToRfu + + thumb_func_start sub_0800F2C4 +sub_0800F2C4: @ 0x0800F2C4 + push {r4, lr} + ldr r4, _0800F2E4 + ldr r0, [r4] + cmp r0, #0 + beq _0800F2DA + ldr r0, _0800F2E8 + ldr r1, _0800F2EC + ldr r2, _0800F2F0 + movs r3, #1 + bl AGBAssert +_0800F2DA: + ldr r0, _0800F2F4 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800F2E4: .4byte 0x030050A0 +_0800F2E8: .4byte 0x082C053C +_0800F2EC: .4byte 0x000005E6 +_0800F2F0: .4byte 0x082C0544 +_0800F2F4: .4byte 0x0800F255 + thumb_func_end sub_0800F2C4 + + thumb_func_start Rfu_set_zero +Rfu_set_zero: @ 0x0800F2F8 + ldr r1, _0800F300 + movs r0, #0 + str r0, [r1] + bx lr + .align 2, 0 +_0800F300: .4byte 0x030050A0 + thumb_func_end Rfu_set_zero + + thumb_func_start sub_0800F304 +sub_0800F304: @ 0x0800F304 + push {lr} + movs r0, #0x88 + lsls r0, r0, #7 + bl sub_0800F7F8 + bl GetMultiplayerId + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0800F320 + bl GetBlenderArrowPosition + ldr r1, _0800F32C + strh r0, [r1, #0xc] +_0800F320: + ldr r1, _0800F330 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0800F32C: .4byte 0x030031B0 +_0800F330: .4byte 0x02022078 + thumb_func_end sub_0800F304 + + thumb_func_start sub_0800F334 +sub_0800F334: @ 0x0800F334 + push {lr} + ldr r1, _0800F348 + ldr r0, [r1] + cmp r0, #0 + bne _0800F342 + ldr r0, _0800F34C + str r0, [r1] +_0800F342: + pop {r0} + bx r0 + .align 2, 0 +_0800F348: .4byte 0x030050A0 +_0800F34C: .4byte 0x0800F305 + thumb_func_end sub_0800F334 + + thumb_func_start sub_0800F350 +sub_0800F350: @ 0x0800F350 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + movs r0, #0 + mov r8, r0 +_0800F35E: + mov r1, r8 + lsls r0, r1, #4 + ldr r2, _0800F3A4 + adds r1, r0, r2 + ldrh r7, [r1] + movs r3, #0xff + lsls r3, r3, #8 + adds r1, r3, #0 + ands r1, r7 + movs r2, #0x88 + lsls r2, r2, #8 + adds r5, r0, #0 + cmp r1, r2 + beq _0800F444 + cmp r1, r2 + bgt _0800F3BA + movs r0, #0xcc + lsls r0, r0, #7 + cmp r1, r0 + bne _0800F388 + b _0800F5C4 +_0800F388: + cmp r1, r0 + bgt _0800F3A8 + movs r0, #0x88 + lsls r0, r0, #7 + cmp r1, r0 + bne _0800F396 + b _0800F6D8 +_0800F396: + movs r0, #0xbe + lsls r0, r0, #7 + cmp r1, r0 + bne _0800F3A0 + b _0800F5B4 +_0800F3A0: + b _0800F6E8 + .align 2, 0 +_0800F3A4: .4byte 0x03003130 +_0800F3A8: + movs r0, #0xee + lsls r0, r0, #7 + cmp r1, r0 + beq _0800F404 + movs r0, #0xf0 + lsls r0, r0, #7 + cmp r1, r0 + beq _0800F3F2 + b _0800F6E8 +_0800F3BA: + movs r0, #0xbe + lsls r0, r0, #8 + cmp r1, r0 + bne _0800F3C4 + b _0800F6D8 +_0800F3C4: + cmp r1, r0 + bgt _0800F3DC + movs r0, #0x89 + lsls r0, r0, #8 + cmp r1, r0 + beq _0800F4AC + movs r0, #0xa1 + lsls r0, r0, #8 + cmp r1, r0 + bne _0800F3DA + b _0800F590 +_0800F3DA: + b _0800F6E8 +_0800F3DC: + movs r0, #0xed + lsls r0, r0, #8 + cmp r1, r0 + bne _0800F3E6 + b _0800F5F4 +_0800F3E6: + movs r0, #0xee + lsls r0, r0, #8 + cmp r1, r0 + bne _0800F3F0 + b _0800F694 +_0800F3F0: + b _0800F6E8 +_0800F3F2: + ldr r4, _0800F42C + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0800F404 + ldr r0, _0800F430 + ldrb r0, [r0] + cmp r0, #0 + beq _0800F404 + b _0800F734 +_0800F404: + ldr r0, _0800F434 + ldr r0, [r0] + ldrb r0, [r0] + mov r6, r8 + adds r6, #1 + cmp r0, #0 + beq _0800F414 + b _0800F6EC +_0800F414: + ldr r1, _0800F438 + adds r0, r5, r1 + ldrh r0, [r0] + ldr r2, _0800F42C + strb r0, [r2, #0xd] + ldr r3, _0800F43C + adds r0, r5, r3 + bl sub_0800F20C + ldr r4, _0800F440 + strb r0, [r4] + b _0800F6EC + .align 2, 0 +_0800F42C: .4byte 0x030050A0 +_0800F430: .4byte 0x030031C4 +_0800F434: .4byte 0x03007630 +_0800F438: .4byte 0x03003132 +_0800F43C: .4byte 0x03003134 +_0800F440: .4byte 0x03005A26 +_0800F444: + ldr r0, _0800F4A0 + mov sb, r0 + mov r1, r8 + lsls r0, r1, #2 + add r0, r8 + lsls r7, r0, #2 + mov r2, sb + adds r3, r7, r2 + movs r4, #0x92 + adds r4, r4, r3 + mov ip, r4 + ldrb r4, [r4] + mov r6, r8 + adds r6, #1 + cmp r4, #0 + beq _0800F466 + b _0800F6EC +_0800F466: + adds r0, r3, #0 + adds r0, #0x80 + movs r2, #0 + strh r4, [r0] + ldr r1, _0800F4A4 + adds r0, r5, r1 + ldrh r0, [r0] + adds r1, r3, #0 + adds r1, #0x82 + strh r0, [r1] + ldr r1, _0800F4A8 + adds r0, r5, r1 + ldrh r1, [r0] + adds r0, r3, #0 + adds r0, #0x91 + strb r1, [r0] + mov r0, sb + adds r0, #0x88 + adds r0, r7, r0 + str r4, [r0] + movs r0, #1 + mov r3, ip + strb r0, [r3] + mov r0, sb + adds r0, #0x5c + add r0, r8 + strb r2, [r0] + b _0800F6EC + .align 2, 0 +_0800F4A0: .4byte 0x030050A0 +_0800F4A4: .4byte 0x03003132 +_0800F4A8: .4byte 0x03003134 +_0800F4AC: + ldr r4, _0800F57C + mov sb, r4 + mov r0, r8 + lsls r1, r0, #2 + adds r0, r1, r0 + lsls r4, r0, #2 + mov r3, sb + adds r2, r4, r3 + adds r0, r2, #0 + adds r0, #0x92 + ldrb r3, [r0] + mov sl, r1 + mov r6, r8 + adds r6, #1 + cmp r3, #1 + beq _0800F4CE + b _0800F6EC +_0800F4CE: + movs r0, #0xff + ands r0, r7 + adds r2, #0x80 + strh r0, [r2] + mov r1, sb + adds r1, #0x88 + adds r1, r4, r1 + lsls r3, r0 + ldr r0, [r1] + orrs r0, r3 + str r0, [r1] + movs r4, #0 + ldr r0, _0800F580 + mov sb, r0 + mov ip, r2 + mov r1, r8 + lsls r7, r1, #8 + adds r3, r5, #0 +_0800F4F2: + mov r2, ip + ldrh r0, [r2] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + lsls r1, r1, #1 + adds r1, r1, r7 + add r1, sb + adds r2, r4, #1 + lsls r0, r2, #1 + adds r0, r0, r3 + ldr r4, _0800F584 + adds r0, r0, r4 + ldrh r0, [r0] + strh r0, [r1] + lsls r2, r2, #0x10 + lsrs r4, r2, #0x10 + cmp r4, #5 + bls _0800F4F2 + ldr r4, _0800F57C + mov r0, sl + add r0, r8 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x88 + adds r1, r0, r1 + adds r2, r0, r4 + adds r0, r2, #0 + adds r0, #0x82 + ldrh r0, [r0] + lsls r0, r0, #2 + ldr r3, _0800F588 + adds r0, r0, r3 + ldr r1, [r1] + ldr r0, [r0] + cmp r1, r0 + beq _0800F540 + b _0800F6EC +_0800F540: + adds r1, r2, #0 + adds r1, #0x92 + movs r0, #2 + strb r0, [r1] + mov r1, r8 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + bl sub_0800F1BC + bl sub_0800F29C + ldrb r1, [r0, #0xa] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x45 + beq _0800F562 + b _0800F6EC +_0800F562: + ldr r0, _0800F58C + ldrb r0, [r0] + cmp r0, #0 + bne _0800F56C + b _0800F6EC +_0800F56C: + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _0800F574 + b _0800F6EC +_0800F574: + ldr r0, _0800F580 + bl sub_08010568 + b _0800F6EC + .align 2, 0 +_0800F57C: .4byte 0x030050A0 +_0800F580: .4byte 0x0202207C +_0800F584: .4byte 0x03003130 +_0800F588: .4byte 0x082C0378 +_0800F58C: .4byte 0x030031C4 +_0800F590: + ldr r2, _0800F5AC + ldr r3, _0800F5B0 + adds r0, r5, r3 + ldrh r1, [r0] + lsls r1, r1, #3 + adds r0, r1, r2 + ldr r0, [r0] + adds r2, #4 + adds r1, r1, r2 + ldrh r1, [r1] + bl sub_0800F968 + b _0800F6E8 + .align 2, 0 +_0800F5AC: .4byte 0x082C0408 +_0800F5B0: .4byte 0x03003132 +_0800F5B4: + ldr r1, _0800F5C0 + add r1, r8 + movs r0, #1 + strb r0, [r1] + b _0800F6E8 + .align 2, 0 +_0800F5C0: .4byte 0x03005184 +_0800F5C4: + ldr r2, _0800F5EC + movs r4, #0x80 + lsls r4, r4, #1 + adds r0, r2, r4 + ldr r3, _0800F5F0 + adds r1, r5, r3 + ldrh r0, [r0] + mov r6, r8 + adds r6, #1 + ldrh r1, [r1] + cmp r0, r1 + beq _0800F5DE + b _0800F6EC +_0800F5DE: + adds r0, r2, #0 + adds r0, #0xe9 + add r0, r8 + movs r1, #1 + strb r1, [r0] + b _0800F6EC + .align 2, 0 +_0800F5EC: .4byte 0x030050A0 +_0800F5F0: .4byte 0x03003132 +_0800F5F4: + ldr r7, _0800F640 + ldrb r2, [r7, #0xc] + cmp r2, #0 + bne _0800F65C + ldr r3, _0800F644 + ldrb r0, [r3] + mov r6, r8 + adds r6, #1 + cmp r0, #0 + beq _0800F6EC + ldr r0, _0800F648 + adds r4, r5, r0 + ldrh r1, [r4] + ldr r0, _0800F64C + ldr r0, [r0] + ldrb r0, [r0, #2] + ands r1, r0 + cmp r1, #0 + beq _0800F62C + strb r2, [r3] + bl sub_0800D0EC + ldr r1, _0800F650 + adds r0, r5, r1 + ldrh r1, [r0] + ldr r2, _0800F654 + adds r0, r7, r2 + strb r1, [r0] +_0800F62C: + ldr r0, _0800F658 + adds r0, #6 + adds r0, r5, r0 + ldrh r0, [r0] + strb r0, [r7, #0xd] + ldrh r0, [r4] + bl sub_080104E8 + b _0800F6EC + .align 2, 0 +_0800F640: .4byte 0x030050A0 +_0800F644: .4byte 0x030031C4 +_0800F648: .4byte 0x03003132 +_0800F64C: .4byte 0x03007630 +_0800F650: .4byte 0x03003134 +_0800F654: .4byte 0x0000099C +_0800F658: .4byte 0x03003130 +_0800F65C: + movs r0, #0xee + lsls r0, r0, #8 + bl sub_0800F7F8 + ldr r1, _0800F684 + ldr r3, _0800F688 + adds r0, r5, r3 + ldrh r0, [r0] + strh r0, [r1, #2] + ldr r4, _0800F68C + adds r0, r5, r4 + ldrh r0, [r0] + strh r0, [r1, #4] + ldr r0, _0800F690 + adds r0, #6 + adds r0, r5, r0 + ldrh r0, [r0] + strh r0, [r1, #6] + b _0800F6E8 + .align 2, 0 +_0800F684: .4byte 0x030031B0 +_0800F688: .4byte 0x03003132 +_0800F68C: .4byte 0x03003134 +_0800F690: .4byte 0x03003130 +_0800F694: + ldr r4, _0800F6C4 + ldrb r0, [r4, #0xc] + mov r6, r8 + adds r6, #1 + cmp r0, #1 + bne _0800F728 + ldr r0, _0800F6C8 + adds r2, r4, r0 + ldr r1, _0800F6CC + adds r3, r5, r1 + ldrb r1, [r3] + ldrb r0, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r2, _0800F6D0 + adds r0, r5, r2 + ldrh r1, [r0] + ldr r2, _0800F6D4 + adds r0, r4, r2 + strb r1, [r0] + ldrh r0, [r3] + bl sub_080104E8 + b _0800F6EC + .align 2, 0 +_0800F6C4: .4byte 0x030050A0 +_0800F6C8: .4byte 0x0000099B +_0800F6CC: .4byte 0x03003132 +_0800F6D0: .4byte 0x03003134 +_0800F6D4: .4byte 0x0000099C +_0800F6D8: + ldr r0, _0800F718 + mov r3, r8 + lsls r1, r3, #1 + adds r1, r1, r0 + ldr r4, _0800F71C + adds r0, r5, r4 + ldrh r0, [r0] + strh r0, [r1] +_0800F6E8: + mov r6, r8 + adds r6, #1 +_0800F6EC: + ldr r3, _0800F720 + ldrb r4, [r3, #0xc] + cmp r4, #1 + bne _0800F728 + adds r0, r3, #0 + adds r0, #0x61 + mov r1, r8 + adds r2, r1, r0 + ldrb r0, [r2] + adds r1, r0, #0 + cmp r1, #0 + beq _0800F728 + cmp r1, #4 + bne _0800F724 + adds r0, r3, #0 + adds r0, #0x5c + add r0, r8 + movs r1, #0 + strb r4, [r0] + strb r1, [r2] + b _0800F728 + .align 2, 0 +_0800F718: .4byte 0x030030C0 +_0800F71C: .4byte 0x03003132 +_0800F720: .4byte 0x030050A0 +_0800F724: + adds r0, #1 + strb r0, [r2] +_0800F728: + lsls r0, r6, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + cmp r0, #4 + bhi _0800F734 + b _0800F35E +_0800F734: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0800F350 + + thumb_func_start sub_0800F744 +sub_0800F744: @ 0x0800F744 + push {lr} + movs r2, #0 + ldr r0, _0800F758 + adds r1, r0, #0 + adds r1, #0x92 +_0800F74E: + ldrb r0, [r1] + cmp r0, #0 + beq _0800F75C + movs r0, #0 + b _0800F766 + .align 2, 0 +_0800F758: .4byte 0x030050A0 +_0800F75C: + adds r1, #0x14 + adds r2, #1 + cmp r2, #4 + ble _0800F74E + movs r0, #1 +_0800F766: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0800F744 + + thumb_func_start sub_0800F76C +sub_0800F76C: @ 0x0800F76C + push {r4, lr} + movs r1, #0 + ldr r2, _0800F794 + ldrb r0, [r2, #0xd] + cmp r1, r0 + bge _0800F7A0 + adds r4, r0, #0 + adds r3, r2, #0 + adds r3, #0x92 + adds r2, #0x5c +_0800F780: + ldrb r0, [r3] + cmp r0, #2 + bne _0800F78E + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #1 + beq _0800F798 +_0800F78E: + movs r0, #0 + b _0800F7A2 + .align 2, 0 +_0800F794: .4byte 0x030050A0 +_0800F798: + adds r3, #0x14 + adds r1, #1 + cmp r1, r4 + blt _0800F780 +_0800F7A0: + movs r0, #1 +_0800F7A2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0800F76C + + thumb_func_start sub_0800F7A8 +sub_0800F7A8: @ 0x0800F7A8 + movs r2, #0 + movs r1, #0 + strh r1, [r0] + strh r1, [r0, #2] + str r1, [r0, #4] + str r1, [r0, #8] + strb r2, [r0, #0x10] + strb r2, [r0, #0x11] + strb r2, [r0, #0x12] + bx lr + thumb_func_end sub_0800F7A8 + + thumb_func_start sub_0800F7BC +sub_0800F7BC: @ 0x0800F7BC + push {r4, lr} + movs r2, #0 + movs r1, #0 + ldr r0, _0800F7F4 + adds r3, r0, #0 + adds r3, #0x92 + adds r4, r0, #0 + adds r4, #0x5c +_0800F7CC: + ldrb r0, [r3] + cmp r0, #2 + bne _0800F7E2 + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, #1 + bne _0800F7E2 + lsls r0, r1 + orrs r2, r0 + lsls r0, r2, #0x18 + lsrs r2, r0, #0x18 +_0800F7E2: + adds r3, #0x14 + adds r1, #1 + cmp r1, #4 + ble _0800F7CC + adds r0, r2, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0800F7F4: .4byte 0x030050A0 + thumb_func_end sub_0800F7BC + + thumb_func_start sub_0800F7F8 +sub_0800F7F8: @ 0x0800F7F8 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r5, _0800F830 + strh r1, [r5] + movs r0, #0xf0 + lsls r0, r0, #7 + adds r4, r5, #0 + cmp r1, r0 + beq _0800F894 + cmp r1, r0 + bgt _0800F846 + movs r0, #0xbe + lsls r0, r0, #7 + cmp r1, r0 + beq _0800F8E4 + cmp r1, r0 + bgt _0800F834 + movs r0, #0xbc + lsls r0, r0, #6 + cmp r1, r0 + beq _0800F904 + movs r0, #0x88 + lsls r0, r0, #7 + cmp r1, r0 + beq _0800F8F8 + b _0800F92A + .align 2, 0 +_0800F830: .4byte 0x030031B0 +_0800F834: + movs r0, #0xcc + lsls r0, r0, #7 + cmp r1, r0 + beq _0800F8E4 + movs r0, #0xee + lsls r0, r0, #7 + cmp r1, r0 + beq _0800F894 + b _0800F92A +_0800F846: + movs r0, #0xbe + lsls r0, r0, #8 + cmp r1, r0 + beq _0800F924 + cmp r1, r0 + bgt _0800F92A + movs r0, #0x88 + lsls r0, r0, #8 + cmp r1, r0 + beq _0800F864 + movs r0, #0xa1 + lsls r0, r0, #8 + cmp r1, r0 + beq _0800F87C + b _0800F92A +_0800F864: + ldr r0, _0800F878 + adds r1, r0, #0 + adds r1, #0x6e + ldrh r1, [r1] + strh r1, [r5, #2] + adds r0, #0x7d + ldrb r0, [r0] + adds r0, #0x80 + strh r0, [r5, #4] + b _0800F92A + .align 2, 0 +_0800F878: .4byte 0x030050A0 +_0800F87C: + bl sub_0800F744 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0800F92A + ldr r0, _0800F890 + adds r0, #0x5a + ldrb r0, [r0] + b _0800F928 + .align 2, 0 +_0800F890: .4byte 0x030050A0 +_0800F894: + ldr r3, _0800F8D0 + ldr r1, _0800F8D4 + adds r0, r3, r1 + ldr r2, _0800F8D8 + adds r1, r3, r2 + ldrb r2, [r0] + ldrb r0, [r1] + eors r0, r2 + ldr r1, _0800F8DC + adds r0, r0, r1 + ldrb r0, [r0] + adds r0, #1 + strb r0, [r3, #0xd] + ldrb r0, [r3, #0xd] + strh r0, [r4, #2] + adds r2, r4, #4 + movs r4, #0 + ldr r0, _0800F8E0 + adds r3, r3, r0 +_0800F8BA: + adds r1, r2, r4 + adds r0, r4, r3 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _0800F8BA + b _0800F92A + .align 2, 0 +_0800F8D0: .4byte 0x030050A0 +_0800F8D4: .4byte 0x0000099A +_0800F8D8: .4byte 0x0000099B +_0800F8DC: .4byte 0x082C03E5 +_0800F8E0: .4byte 0x00000996 +_0800F8E4: + ldr r0, _0800F8F4 + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r4, #2] + b _0800F92A + .align 2, 0 +_0800F8F4: .4byte 0x030050A0 +_0800F8F8: + strh r1, [r5] + ldr r0, _0800F900 + ldrh r0, [r0, #0x2c] + b _0800F928 + .align 2, 0 +_0800F900: .4byte 0x03002360 +_0800F904: + movs r4, #0 + ldr r3, _0800F920 +_0800F908: + adds r2, r4, #1 + lsls r1, r2, #1 + adds r1, r1, r5 + lsls r0, r4, #1 + adds r0, r0, r3 + ldrh r0, [r0] + strh r0, [r1] + lsls r2, r2, #0x18 + lsrs r4, r2, #0x18 + cmp r4, #5 + bls _0800F908 + b _0800F92A + .align 2, 0 +_0800F920: .4byte 0x03005192 +_0800F924: + ldr r0, _0800F930 + ldrh r0, [r0] +_0800F928: + strh r0, [r5, #2] +_0800F92A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0800F930: .4byte 0x03005B08 + thumb_func_end sub_0800F7F8 + + thumb_func_start sub_0800F934 +sub_0800F934: @ 0x0800F934 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0800F960 + ldrh r0, [r0] + cmp r0, #0 + bne _0800F95A + bl sub_08011570 + cmp r0, #0 + bne _0800F95A + ldr r0, _0800F964 + adds r1, r4, #0 + movs r2, #0xc + bl memcpy + movs r0, #0xbc + lsls r0, r0, #6 + bl sub_0800F7F8 +_0800F95A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800F960: .4byte 0x030031B0 +_0800F964: .4byte 0x03005192 + thumb_func_end sub_0800F934 + + thumb_func_start sub_0800F968 +sub_0800F968: @ 0x0800F968 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + adds r6, r1, #0 + cmp r6, #0xfc + bls _0800F984 + ldr r0, _0800F9B0 + ldr r1, _0800F9B4 + ldr r2, _0800F9B8 + movs r3, #1 + bl AGBAssert +_0800F984: + ldr r5, _0800F9BC + ldr r0, [r5] + cmp r0, #0 + bne _0800F9AC + ldr r0, _0800F9C0 + ldrh r0, [r0] + cmp r0, #0 + bne _0800F9AC + movs r0, #0x7c + adds r0, r0, r5 + mov sb, r0 + ldrb r1, [r0] + mov r8, r1 + cmp r1, #0 + beq _0800F9C8 + ldr r1, _0800F9C4 + adds r1, #0x83 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0800F9AC: + movs r0, #0 + b _0800FA32 + .align 2, 0 +_0800F9B0: .4byte 0x082C053C +_0800F9B4: .4byte 0x00000755 +_0800F9B8: .4byte 0x082C0558 +_0800F9BC: .4byte 0x030050A0 +_0800F9C0: .4byte 0x030031B0 +_0800F9C4: .4byte 0x020227FC +_0800F9C8: + adds r0, r6, #0 + movs r1, #0xc + bl __umodsi3 + rsbs r4, r0, #0 + orrs r4, r0 + lsrs r4, r4, #0x1f + bl GetMultiplayerId + adds r1, r5, #0 + adds r1, #0x7d + strb r0, [r1] + movs r0, #1 + mov r1, sb + strb r0, [r1] + adds r0, r6, #0 + movs r1, #0xc + bl __udivsi3 + adds r0, r0, r4 + adds r1, r5, #0 + adds r1, #0x6e + strh r0, [r1] + adds r0, r5, #0 + adds r0, #0x6c + mov r1, r8 + strh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #1 + cmp r6, r0 + bls _0800FA0A + str r7, [r5, #0x70] + b _0800FA1C +_0800FA0A: + ldr r4, _0800FA40 + cmp r7, r4 + beq _0800FA1A + adds r0, r4, #0 + adds r1, r7, #0 + adds r2, r6, #0 + bl memcpy +_0800FA1A: + str r4, [r5, #0x70] +_0800FA1C: + movs r0, #0x88 + lsls r0, r0, #8 + bl sub_0800F7F8 + ldr r0, _0800FA44 + ldr r1, _0800FA48 + str r1, [r0] + adds r0, #0x5b + movs r1, #0 + strb r1, [r0] + movs r0, #1 +_0800FA32: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0800FA40: .4byte 0x0202257C +_0800FA44: .4byte 0x030050A0 +_0800FA48: .4byte 0x0800FA4D + thumb_func_end sub_0800F968 + + thumb_func_start rfufunc_80F9F44 +rfufunc_80F9F44: @ 0x0800FA4C + push {r4, r5, lr} + ldr r0, _0800FA7C + ldrh r0, [r0] + cmp r0, #0 + bne _0800FAA0 + movs r5, #0x88 + lsls r5, r5, #8 + adds r0, r5, #0 + bl sub_0800F7F8 + ldr r4, _0800FA80 + ldrb r0, [r4, #0xc] + cmp r0, #1 + bne _0800FA84 + adds r1, r4, #0 + adds r1, #0x5b + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bls _0800FAA0 + b _0800FA9C + .align 2, 0 +_0800FA7C: .4byte 0x030031B0 +_0800FA80: .4byte 0x030050A0 +_0800FA84: + bl GetMultiplayerId + ldr r1, _0800FAA8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x14 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + cmp r0, r5 + bne _0800FAA0 +_0800FA9C: + ldr r0, _0800FAAC + str r0, [r4] +_0800FAA0: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0800FAA8: .4byte 0x03003130 +_0800FAAC: .4byte 0x0800FAB1 + thumb_func_end rfufunc_80F9F44 + + thumb_func_start sub_0800FAB0 +sub_0800FAB0: @ 0x0800FAB0 + push {r4, r5, r6, lr} + ldr r0, _0800FB1C + mov ip, r0 + ldr r5, [r0, #0x70] + ldr r3, _0800FB20 + mov r2, ip + adds r2, #0x6c + ldrh r1, [r2] + movs r4, #0x89 + lsls r4, r4, #8 + adds r0, r4, #0 + orrs r0, r1 + strh r0, [r3] + movs r4, #0 + adds r6, r2, #0 + adds r3, #2 +_0800FAD0: + lsls r2, r4, #1 + ldrh r1, [r6] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, r0, r5 + ldrb r1, [r0, #1] + lsls r1, r1, #8 + ldrb r0, [r0] + orrs r0, r1 + strh r0, [r3] + adds r3, #2 + adds r4, #1 + cmp r4, #6 + ble _0800FAD0 + mov r0, ip + adds r0, #0x6c + ldrh r1, [r0] + adds r1, #1 + strh r1, [r0] + adds r0, #2 + ldrh r0, [r0] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + cmp r0, r1 + bhi _0800FB14 + mov r0, ip + adds r0, #0x7c + movs r1, #0 + strb r1, [r0] + ldr r0, _0800FB24 + mov r1, ip + str r0, [r1] +_0800FB14: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0800FB1C: .4byte 0x030050A0 +_0800FB20: .4byte 0x030031B0 +_0800FB24: .4byte 0x0800FB29 + thumb_func_end sub_0800FAB0 + + thumb_func_start rfufunc_80FA020 +rfufunc_80FA020: @ 0x0800FB28 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r5, _0800FBD0 + ldr r0, [r5, #0x70] + mov r8, r0 + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _0800FBF0 + ldr r3, _0800FBD4 + adds r2, r5, #0 + adds r2, #0x6e + ldrh r0, [r2] + subs r0, #1 + ldr r4, _0800FBD8 + adds r1, r4, #0 + orrs r0, r1 + strh r0, [r3] + movs r4, #0 + mov sb, r5 + ldr r0, _0800FBDC + mov ip, r0 + lsls r5, r6, #4 + adds r7, r2, #0 + adds r3, #2 +_0800FB64: + lsls r2, r4, #1 + ldrh r1, [r7] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + add r0, r8 + adds r1, r0, #0 + subs r1, #0xb + ldrb r1, [r1] + lsls r1, r1, #8 + subs r0, #0xc + ldrb r0, [r0] + orrs r0, r1 + strh r0, [r3] + adds r3, #2 + adds r4, #1 + cmp r4, #6 + ble _0800FB64 + mov r1, ip + adds r0, r5, r1 + ldrb r1, [r0] + mov r3, sb + adds r0, r3, #0 + adds r0, #0x6e + ldrh r0, [r0] + subs r0, #1 + cmp r1, r0 + bne _0800FBF4 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r1, r3, #0 + adds r1, #0x88 + adds r1, r0, r1 + ldr r2, _0800FBE0 + adds r0, r0, r3 + adds r0, #0x82 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, [r1] + ldr r0, [r0] + cmp r1, r0 + beq _0800FBE8 + adds r0, r6, #0 + bl sub_0800F0F8 + ldr r1, _0800FBE4 + adds r1, #0x64 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _0800FBF4 + .align 2, 0 +_0800FBD0: .4byte 0x030050A0 +_0800FBD4: .4byte 0x030031B0 +_0800FBD8: .4byte 0xFFFF8900 +_0800FBDC: .4byte 0x03003130 +_0800FBE0: .4byte 0x082C0378 +_0800FBE4: .4byte 0x020227FC +_0800FBE8: + movs r0, #0 + mov r4, sb + str r0, [r4] + b _0800FBF4 +_0800FBF0: + movs r0, #0 + str r0, [r5] +_0800FBF4: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end rfufunc_80FA020 + + thumb_func_start sub_0800FC00 +sub_0800FC00: @ 0x0800FC00 + push {lr} + ldr r1, _0800FC18 + adds r1, #0x5a + strb r0, [r1] + movs r0, #0xa1 + lsls r0, r0, #8 + bl sub_0800F7F8 + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 +_0800FC18: .4byte 0x030050A0 + thumb_func_end sub_0800FC00 + + thumb_func_start sub_0800FC1C +sub_0800FC1C: @ 0x0800FC1C + push {lr} + bl rfu_clearAllSlot + bl sub_0800BB04 + ldr r1, _0800FC40 + movs r0, #0 + strb r0, [r1] + ldr r2, _0800FC44 + adds r3, r2, #0 + adds r3, #0xef + movs r1, #0 + movs r0, #1 + strb r0, [r3] + str r1, [r2] + pop {r0} + bx r0 + .align 2, 0 +_0800FC40: .4byte 0x030031C4 +_0800FC44: .4byte 0x030050A0 + thumb_func_end sub_0800FC1C + + thumb_func_start sub_0800FC48 +sub_0800FC48: @ 0x0800FC48 + push {lr} + ldr r0, _0800FC64 + ldr r0, [r0] + ldrb r1, [r0, #2] + ldrb r0, [r0, #3] + orrs r0, r1 + bl rfu_REQ_disconnect + bl rfu_waitREQComplete + bl sub_0800FC1C + pop {r0} + bx r0 + .align 2, 0 +_0800FC64: .4byte 0x03007630 + thumb_func_end sub_0800FC48 + + thumb_func_start sub_0800FC68 +sub_0800FC68: @ 0x0800FC68 + push {r4, lr} + ldr r4, _0800FC80 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0800FC88 + bl sub_0800D0EC + ldr r0, _0800FC84 + adds r1, r4, r0 + movs r0, #2 + strb r0, [r1] + b _0800FC8C + .align 2, 0 +_0800FC80: .4byte 0x030050A0 +_0800FC84: .4byte 0x0000099C +_0800FC88: + ldr r0, _0800FC94 + str r0, [r4] +_0800FC8C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800FC94: .4byte 0x0800FC49 + thumb_func_end sub_0800FC68 + + thumb_func_start LinkRfu_FatalError +LinkRfu_FatalError: @ 0x0800FC98 + push {lr} + bl sub_0800D0EC + ldr r2, _0800FCBC + ldr r0, _0800FCC0 + adds r1, r2, r0 + movs r0, #1 + strb r0, [r1] + ldr r0, _0800FCC4 + ldr r1, [r0] + ldrb r0, [r1, #2] + ldrb r1, [r1, #3] + orrs r0, r1 + ldr r1, _0800FCC8 + adds r2, r2, r1 + strb r0, [r2] + pop {r0} + bx r0 + .align 2, 0 +_0800FCBC: .4byte 0x030050A0 +_0800FCC0: .4byte 0x0000099C +_0800FCC4: .4byte 0x03007630 +_0800FCC8: .4byte 0x0000099B + thumb_func_end LinkRfu_FatalError + + thumb_func_start sub_0800FCCC +sub_0800FCCC: @ 0x0800FCCC + push {r4, r5, lr} + ldr r0, _0800FD14 + ldrb r5, [r0, #0xd] + movs r2, #0 + movs r1, #0 + adds r3, r0, #0 + adds r4, r3, #0 + adds r4, #0xe4 +_0800FCDC: + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, #0 + beq _0800FCE6 + adds r2, #1 +_0800FCE6: + adds r1, #1 + cmp r1, #4 + ble _0800FCDC + cmp r2, r5 + bne _0800FD20 + ldr r2, _0800FD18 + ldr r0, [r2] + movs r1, #0x21 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2] + ldrb r0, [r3, #0xc] + cmp r0, #0 + bne _0800FD1C + adds r0, r3, #0 + adds r0, #0xee + ldrb r1, [r0] + movs r1, #3 + strb r1, [r0] + bl sub_0800FC68 + b _0800FD20 + .align 2, 0 +_0800FD14: .4byte 0x030050A0 +_0800FD18: .4byte 0x02022C90 +_0800FD1C: + ldr r0, _0800FD28 + str r0, [r3] +_0800FD20: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0800FD28: .4byte 0x0800FC69 + thumb_func_end sub_0800FCCC + + thumb_func_start sub_0800FD2C +sub_0800FD2C: @ 0x0800FD2C + push {r4, lr} + ldr r0, _0800FD58 + ldrh r0, [r0] + cmp r0, #0 + bne _0800FD50 + ldr r4, _0800FD5C + movs r1, #0x9a + lsls r1, r1, #4 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _0800FD50 + movs r0, #0xbe + lsls r0, r0, #7 + bl sub_0800F7F8 + ldr r0, _0800FD60 + str r0, [r4] +_0800FD50: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800FD58: .4byte 0x030031B0 +_0800FD5C: .4byte 0x030050A0 +_0800FD60: .4byte 0x0800FCCD + thumb_func_end sub_0800FD2C + + thumb_func_start sub_0800FD64 +sub_0800FD64: @ 0x0800FD64 + push {lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r2, _0800FD88 + ldr r0, [r2] + cmp r0, #0 + bne _0800FD84 + ldr r1, _0800FD8C + adds r0, r2, r1 + movs r1, #1 + strb r1, [r0] + ldr r0, _0800FD90 + str r0, [r2] + adds r0, r3, #0 + bl DestroyTask +_0800FD84: + pop {r0} + bx r0 + .align 2, 0 +_0800FD88: .4byte 0x030050A0 +_0800FD8C: .4byte 0x00000991 +_0800FD90: .4byte 0x0800FD2D + thumb_func_end sub_0800FD64 + + thumb_func_start task_add_05_task_del_08FA224_when_no_RfuFunc +task_add_05_task_del_08FA224_when_no_RfuFunc: @ 0x0800FD94 + push {r4, lr} + ldr r4, _0800FDB4 + adds r0, r4, #0 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0800FDAC + adds r0, r4, #0 + movs r1, #5 + bl CreateTask +_0800FDAC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800FDB4: .4byte 0x0800FD65 + thumb_func_end task_add_05_task_del_08FA224_when_no_RfuFunc + + thumb_func_start sub_0800FDB8 +sub_0800FDB8: @ 0x0800FDB8 + push {r4, r5, lr} + bl GetMultiplayerId + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0800FDE6 + ldr r1, _0800FE50 + ldr r2, _0800FE54 + adds r0, r1, r2 + ldrb r0, [r0] + adds r4, r0, #0 + cmp r4, #0 + bne _0800FDE6 + adds r5, r1, #0 + adds r5, #0xfe + ldrh r0, [r5] + cmp r0, #0x3c + bls _0800FDE6 + movs r0, #0xcc + lsls r0, r0, #7 + bl sub_0800F7F8 + strh r4, [r5] +_0800FDE6: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + movs r1, #0 + cmp r1, r2 + bhs _0800FE12 + ldr r0, _0800FE50 + adds r3, r0, #0 + adds r3, #0xe9 + ldrb r0, [r3] + cmp r0, #0 + beq _0800FE12 +_0800FE00: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, r2 + bhs _0800FE12 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, #0 + bne _0800FE00 +_0800FE12: + ldr r4, _0800FE50 + cmp r1, r2 + bne _0800FE3E + movs r1, #0 + adds r3, r4, #0 + adds r3, #0xe9 + movs r2, #0 +_0800FE20: + adds r0, r1, r3 + strb r2, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #4 + bls _0800FE20 + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r4, r1 + ldrh r1, [r0] + adds r1, #1 + movs r2, #0 + strh r1, [r0] + str r2, [r4] +_0800FE3E: + adds r1, r4, #0 + adds r1, #0xfe + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0800FE50: .4byte 0x030050A0 +_0800FE54: .4byte 0x0000069E + thumb_func_end sub_0800FDB8 + + thumb_func_start sub_0800FE58 +sub_0800FE58: @ 0x0800FE58 + push {r4, lr} + ldr r4, _0800FE80 + ldr r1, _0800FE84 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _0800FE7A + ldr r0, _0800FE88 + ldrh r0, [r0] + cmp r0, #0 + bne _0800FE7A + movs r0, #0xcc + lsls r0, r0, #7 + bl sub_0800F7F8 + ldr r0, _0800FE8C + str r0, [r4] +_0800FE7A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800FE80: .4byte 0x030050A0 +_0800FE84: .4byte 0x0000069E +_0800FE88: .4byte 0x030031B0 +_0800FE8C: .4byte 0x0800FDB9 + thumb_func_end sub_0800FE58 + + thumb_func_start sub_0800FE90 +sub_0800FE90: @ 0x0800FE90 + push {r4, lr} + bl GetMultiplayerId + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0800FECC + ldr r4, _0800FEBC + ldr r1, _0800FEC0 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _0800FF1E + ldr r0, _0800FEC4 + ldrh r0, [r0] + cmp r0, #0 + bne _0800FF1E + movs r0, #0xcc + lsls r0, r0, #7 + bl sub_0800F7F8 + ldr r0, _0800FEC8 + b _0800FF1C + .align 2, 0 +_0800FEBC: .4byte 0x030050A0 +_0800FEC0: .4byte 0x0000069E +_0800FEC4: .4byte 0x030031B0 +_0800FEC8: .4byte 0x0800FDB9 +_0800FECC: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + movs r1, #1 + cmp r1, r2 + bhs _0800FEFA + ldr r3, _0800FF24 + adds r0, r3, #0 + adds r0, #0xea + ldrb r0, [r0] + cmp r0, #0 + beq _0800FEFA + adds r3, #0xe9 +_0800FEE8: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, r2 + bhs _0800FEFA + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, #0 + bne _0800FEE8 +_0800FEFA: + cmp r1, r2 + bne _0800FF1E + ldr r4, _0800FF24 + ldr r1, _0800FF28 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _0800FF1E + ldr r0, _0800FF2C + ldrh r0, [r0] + cmp r0, #0 + bne _0800FF1E + movs r0, #0xcc + lsls r0, r0, #7 + bl sub_0800F7F8 + ldr r0, _0800FF30 +_0800FF1C: + str r0, [r4] +_0800FF1E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800FF24: .4byte 0x030050A0 +_0800FF28: .4byte 0x0000069E +_0800FF2C: .4byte 0x030031B0 +_0800FF30: .4byte 0x0800FE59 + thumb_func_end sub_0800FE90 + + thumb_func_start sub_0800FF34 +sub_0800FF34: @ 0x0800FF34 + push {lr} + ldr r1, _0800FF4C + ldr r2, [r1] + cmp r2, #0 + bne _0800FF48 + ldr r0, _0800FF50 + str r0, [r1] + adds r0, r1, #0 + adds r0, #0xfe + strh r2, [r0] +_0800FF48: + pop {r0} + bx r0 + .align 2, 0 +_0800FF4C: .4byte 0x030050A0 +_0800FF50: .4byte 0x0800FE91 + thumb_func_end sub_0800FF34 + + thumb_func_start sub_0800FF54 +sub_0800FF54: @ 0x0800FF54 + push {r4, lr} + adds r3, r0, #0 + ldr r1, _0800FF70 + ldrh r0, [r1] + cmp r0, r3 + beq _0800FF82 + ldr r4, _0800FF74 + adds r2, r1, #0 +_0800FF64: + ldrh r0, [r2] + cmp r0, r4 + bne _0800FF78 + movs r0, #0 + b _0800FF84 + .align 2, 0 +_0800FF70: .4byte 0x082C0430 +_0800FF74: .4byte 0x0000FFFF +_0800FF78: + adds r1, #2 + adds r2, #2 + ldrh r0, [r1] + cmp r0, r3 + bne _0800FF64 +_0800FF82: + movs r0, #1 +_0800FF84: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0800FF54 + + thumb_func_start sub_0800FF8C +sub_0800FF8C: @ 0x0800FF8C + push {lr} + cmp r0, #0 + beq _0800FFA0 + movs r1, #0x96 + lsls r1, r1, #2 + movs r0, #1 + bl sub_0800D00C + movs r0, #0 + b _0800FFAC +_0800FFA0: + movs r0, #0 + movs r1, #0 + bl sub_0800D00C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_0800FFAC: + pop {r1} + bx r1 + thumb_func_end sub_0800FF8C + + thumb_func_start sub_0800FFB0 +sub_0800FFB0: @ 0x0800FFB0 + push {lr} + ldr r0, _0800FFC8 + ldr r1, _0800FFCC + adds r0, r0, r1 + movs r1, #1 + strb r1, [r0] + movs r0, #0 + bl sub_0800BD38 + pop {r0} + bx r0 + .align 2, 0 +_0800FFC8: .4byte 0x030050A0 +_0800FFCC: .4byte 0x00000991 + thumb_func_end sub_0800FFB0 + + thumb_func_start rfu_get_multiplayer_id +rfu_get_multiplayer_id: @ 0x0800FFD0 + push {lr} + ldr r1, _0800FFE4 + ldrb r0, [r1, #0xc] + cmp r0, #1 + beq _0800FFEC + ldr r2, _0800FFE8 + adds r0, r1, r2 + ldrb r0, [r0] + b _0800FFEE + .align 2, 0 +_0800FFE4: .4byte 0x030050A0 +_0800FFE8: .4byte 0x00000986 +_0800FFEC: + movs r0, #0 +_0800FFEE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end rfu_get_multiplayer_id + + thumb_func_start sub_0800FFF4 +sub_0800FFF4: @ 0x0800FFF4 + ldr r0, _0800FFFC + ldrb r0, [r0, #0xd] + bx lr + .align 2, 0 +_0800FFFC: .4byte 0x030050A0 + thumb_func_end sub_0800FFF4 + + thumb_func_start sub_08010000 +sub_08010000: @ 0x08010000 + push {lr} + ldr r2, _08010014 + adds r0, r2, #0 + adds r0, #0xf1 + ldrb r0, [r0] + cmp r0, #2 + bne _08010018 + movs r0, #0 + b _08010024 + .align 2, 0 +_08010014: .4byte 0x030050A0 +_08010018: + movs r1, #0 + ldr r0, [r2] + cmp r0, #0 + bne _08010022 + movs r1, #1 +_08010022: + adds r0, r1, #0 +_08010024: + pop {r1} + bx r1 + thumb_func_end sub_08010000 + + thumb_func_start sub_08010028 +sub_08010028: @ 0x08010028 + push {lr} + ldr r0, _0801003C + ldr r0, [r0] + cmp r0, #0 + beq _08010036 + bl _call_via_r0 +_08010036: + pop {r0} + bx r0 + .align 2, 0 +_0801003C: .4byte 0x030050A0 + thumb_func_end sub_08010028 + + thumb_func_start sub_08010040 +sub_08010040: @ 0x08010040 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r7, #0 + movs r5, #0 + ldr r6, _080100AC + ldr r0, _080100B0 + adds r0, r0, r6 + mov r8, r0 +_08010052: + ldr r1, _080100B4 + adds r0, r6, r1 + adds r4, r5, r0 + ldrb r0, [r4] + subs r0, #5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _080100DA + ldr r1, _080100B8 + lsls r0, r5, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldrh r0, [r0, #0x34] + cmp r0, #0x46 + beq _08010076 + cmp r0, #0x48 + bne _080100C0 +_08010076: + ldr r2, _080100BC + adds r0, r6, r2 + adds r1, r5, r0 + ldrb r0, [r1] + cmp r0, #8 + bne _080100DA + movs r0, #9 + strb r0, [r4] + movs r0, #0xa + strb r0, [r1] + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + movs r0, #8 + bl rfu_clearSlot + movs r0, #0x80 + lsls r0, r0, #0x11 + lsls r0, r5 + lsrs r0, r0, #0x18 + movs r1, #8 + adds r2, r4, #0 + movs r3, #1 + bl rfu_NI_setSendData + movs r7, #1 + b _080100DA + .align 2, 0 +_080100AC: .4byte 0x030050A0 +_080100B0: .4byte 0x000008F6 +_080100B4: .4byte 0x00000989 +_080100B8: .4byte 0x03007620 +_080100BC: .4byte 0x0000098D +_080100C0: + mov r2, r8 + ldrb r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldrh r0, [r0, #0x34] + cmp r0, #0x47 + bne _080100DA + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + movs r0, #8 + bl rfu_clearSlot +_080100DA: + adds r5, #1 + cmp r5, #3 + ble _08010052 + adds r0, r7, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_08010040 + + thumb_func_start sub_080100EC +sub_080100EC: @ 0x080100EC + push {r4, r5, r6, lr} + movs r3, #0 + movs r1, #0 + ldr r5, _08010138 + movs r6, #1 + movs r4, #0 +_080100F8: + adds r2, r1, r5 + ldrb r0, [r2] + cmp r0, #0xb + bne _0801010C + adds r0, r6, #0 + lsls r0, r1 + orrs r3, r0 + lsls r0, r3, #0x18 + lsrs r3, r0, #0x18 + strb r4, [r2] +_0801010C: + adds r1, #1 + cmp r1, #3 + ble _080100F8 + cmp r3, #0 + beq _08010120 + adds r0, r3, #0 + bl rfu_REQ_disconnect + bl rfu_waitREQComplete +_08010120: + movs r1, #0 + ldr r2, _08010138 +_08010124: + adds r0, r1, r2 + ldrb r0, [r0] + subs r0, #0xa + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0801013C + movs r0, #1 + b _08010144 + .align 2, 0 +_08010138: .4byte 0x03005A2D +_0801013C: + adds r1, #1 + cmp r1, #3 + ble _08010124 + movs r0, #0 +_08010144: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080100EC + + thumb_func_start sub_0801014C +sub_0801014C: @ 0x0801014C + push {lr} + adds r2, r0, #0 + adds r0, r1, #0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + adds r1, r2, #0 + bl sub_080117D0 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xff + beq _08010180 + ldr r0, _08010178 + ldr r2, _0801017C + adds r0, r0, r2 + adds r0, r1, r0 + ldrb r0, [r0] + cmp r0, #9 + beq _08010180 + movs r0, #0 + b _08010182 + .align 2, 0 +_08010178: .4byte 0x030050A0 +_0801017C: .4byte 0x00000989 +_08010180: + movs r0, #1 +_08010182: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0801014C + + thumb_func_start sub_08010188 +sub_08010188: @ 0x08010188 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r0, r2, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl sub_080117D0 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r5, _080101CC + ldr r0, _080101D0 + adds r5, r5, r0 + adds r5, r4, r5 + strb r6, [r5] + movs r0, #4 + adds r1, r4, #0 + bl rfu_clearSlot + movs r0, #0x80 + lsls r0, r0, #0x11 + lsls r0, r4 + lsrs r0, r0, #0x18 + movs r1, #8 + adds r2, r5, #0 + movs r3, #1 + bl rfu_NI_setSendData + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080101CC: .4byte 0x030050A0 +_080101D0: .4byte 0x00000989 + thumb_func_end sub_08010188 + + thumb_func_start sub_080101D4 +sub_080101D4: @ 0x080101D4 + push {r4, r5, lr} + ldr r4, _08010208 + ldr r0, _0801020C + adds r5, r4, r0 + movs r0, #8 + strb r0, [r5] + ldr r0, _08010210 + adds r4, r4, r0 + ldrb r1, [r4] + movs r0, #4 + bl rfu_clearSlot + ldrb r1, [r4] + movs r0, #0x80 + lsls r0, r0, #0x11 + lsls r0, r1 + lsrs r0, r0, #0x18 + movs r1, #8 + adds r2, r5, #0 + movs r3, #1 + bl rfu_NI_setSendData + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08010208: .4byte 0x030050A0 +_0801020C: .4byte 0x0000093D +_08010210: .4byte 0x000008F6 + thumb_func_end sub_080101D4 + + thumb_func_start sub_08010214 +sub_08010214: @ 0x08010214 + push {lr} + adds r2, r0, #0 + adds r0, r1, #0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + adds r1, r2, #0 + bl sub_080117D0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08010230 + movs r0, #2 + b _0801024A +_08010230: + ldr r1, _08010244 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldrh r0, [r0] + cmp r0, #0 + beq _08010248 + movs r0, #0 + b _0801024A + .align 2, 0 +_08010244: .4byte 0x03007620 +_08010248: + movs r0, #1 +_0801024A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08010214 + + thumb_func_start sub_08010250 +sub_08010250: @ 0x08010250 + push {r4, r5, lr} + bl sub_08010040 + movs r4, #0 + ldr r0, _08010294 + ldr r1, _08010298 + adds r5, r0, r1 +_0801025E: + ldr r1, _0801029C + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldrh r0, [r0] + subs r0, #0x26 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bhi _08010288 + adds r1, r4, r5 + ldrb r0, [r1] + cmp r0, #0xa + bne _0801027E + movs r0, #0xb + strb r0, [r1] +_0801027E: + lsls r1, r4, #0x18 + lsrs r1, r1, #0x18 + movs r0, #4 + bl rfu_clearSlot +_08010288: + adds r4, #1 + cmp r4, #3 + ble _0801025E + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08010294: .4byte 0x030050A0 +_08010298: .4byte 0x0000098D +_0801029C: .4byte 0x03007620 + thumb_func_end sub_08010250 + + thumb_func_start sub_080102A0 +sub_080102A0: @ 0x080102A0 + push {r4, r5, lr} + movs r4, #0 + ldr r1, _08010318 + ldr r2, _0801031C + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #8 + bne _080102DA + ldr r2, _08010320 + ldr r0, _08010324 + adds r1, r1, r0 + ldrb r0, [r1] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + ldrh r0, [r0] + cmp r0, #0x26 + beq _080102D2 + ldrb r0, [r1] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + ldrh r0, [r0] + cmp r0, #0x27 + bne _080102DA +_080102D2: + ldrb r1, [r1] + movs r0, #4 + bl rfu_clearSlot +_080102DA: + ldr r2, _08010320 + ldr r5, _08010318 + ldr r0, _08010324 + adds r1, r5, r0 + ldrb r0, [r1] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + ldrh r0, [r0, #0x34] + cmp r0, #0x46 + beq _080102FE + ldrb r0, [r1] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + ldrh r0, [r0, #0x34] + cmp r0, #0x48 + bne _0801032C +_080102FE: + ldrb r1, [r1] + movs r0, #8 + bl rfu_clearSlot + ldr r2, _08010328 + adds r4, r5, r2 + ldrb r0, [r4] + movs r1, #0 + bl sub_08011554 + ldrb r4, [r4] + b _08010344 + .align 2, 0 +_08010318: .4byte 0x030050A0 +_0801031C: .4byte 0x0000093D +_08010320: .4byte 0x03007620 +_08010324: .4byte 0x000008F6 +_08010328: .4byte 0x0000093E +_0801032C: + ldrb r0, [r1] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + ldrh r0, [r0, #0x34] + cmp r0, #0x47 + bne _08010344 + ldrb r1, [r1] + movs r0, #8 + bl rfu_clearSlot + movs r4, #6 +_08010344: + adds r0, r4, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_080102A0 + + thumb_func_start sub_0801034C +sub_0801034C: @ 0x0801034C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r5, _0801039C + adds r0, r5, #0 + adds r0, #0xf1 + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _08010374 + movs r0, #0x9a + lsls r0, r0, #4 + adds r1, r5, r0 + movs r0, #0 + strb r0, [r1] + adds r0, r6, #0 + bl DestroyTask +_08010374: + ldr r2, _080103A0 + lsls r1, r6, #2 + adds r0, r1, r6 + lsls r0, r0, #3 + adds r4, r0, r2 + movs r2, #8 + ldrsh r0, [r4, r2] + adds r7, r1, #0 + cmp r0, #3 + beq _0801041C + cmp r0, #3 + bgt _080103A4 + cmp r0, #1 + beq _080103CC + cmp r0, #1 + bgt _08010418 + cmp r0, #0 + beq _080103B6 + b _080104D4 + .align 2, 0 +_0801039C: .4byte 0x030050A0 +_080103A0: .4byte 0x03005B60 +_080103A4: + cmp r0, #5 + beq _08010450 + cmp r0, #5 + blt _0801043E + cmp r0, #6 + beq _08010484 + cmp r0, #0x65 + beq _08010404 + b _080104D4 +_080103B6: + bl sub_0800F744 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080103C2 + b _080104D4 +_080103C2: + bl ResetBlockReceivedFlags + bl sub_0800AE24 + b _08010448 +_080103CC: + ldrb r0, [r5, #0xc] + cmp r0, #1 + bne _0801040C + ldr r0, _080103E4 + ldrb r0, [r0] + cmp r0, #0 + beq _080103E8 + movs r0, #0xf0 + lsls r0, r0, #7 + bl sub_0800F7F8 + b _080103F0 + .align 2, 0 +_080103E4: .4byte 0x030031C4 +_080103E8: + movs r0, #0xee + lsls r0, r0, #7 + bl sub_0800F7F8 +_080103F0: + ldr r0, _08010400 + adds r1, r7, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0x65 + strh r0, [r1, #8] + b _080104D4 + .align 2, 0 +_08010400: .4byte 0x03005B60 +_08010404: + ldr r0, _08010414 + ldrh r0, [r0] + cmp r0, #0 + bne _080104D4 +_0801040C: + movs r0, #2 + strh r0, [r4, #8] + b _080104D4 + .align 2, 0 +_08010414: .4byte 0x030031B0 +_08010418: + ldrb r0, [r5, #0xd] + b _08010444 +_0801041C: + ldrb r0, [r5, #0xc] + cmp r0, #1 + bne _08010448 + bl sub_0800F744 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080104D4 + adds r1, r5, #0 + adds r1, #0x5a + movs r0, #0 + strb r0, [r1] + movs r0, #0xa1 + lsls r0, r0, #8 + bl sub_0800F7F8 + b _08010448 +_0801043E: + bl sub_0800F76C + lsls r0, r0, #0x18 +_08010444: + cmp r0, #0 + beq _080104D4 +_08010448: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _080104D4 +_08010450: + movs r4, #0 + ldrb r0, [r5, #0xd] + cmp r4, r0 + bge _0801046E +_08010458: + adds r0, r4, #0 + bl sub_0800AE80 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl sub_0800F1E8 + adds r4, #1 + ldrb r2, [r5, #0xd] + cmp r4, r2 + blt _08010458 +_0801046E: + ldr r0, _08010480 + adds r1, r7, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _080104D4 + .align 2, 0 +_08010480: .4byte 0x03005B60 +_08010484: + adds r0, r6, #0 + bl DestroyTask + ldr r1, _080104DC + movs r0, #1 + strb r0, [r1] + movs r0, #0x9a + lsls r0, r0, #4 + adds r1, r5, r0 + movs r0, #0 + strb r0, [r1] + movs r1, #0x96 + lsls r1, r1, #2 + movs r0, #1 + bl sub_0800D00C + ldr r2, _080104E0 + adds r1, r5, r2 + ldrb r0, [r1] + cmp r0, #0 + beq _080104D4 + movs r4, #0 + adds r2, r1, #0 + movs r3, #1 + ldr r0, _080104E4 + adds r5, r5, r0 +_080104B8: + ldrb r0, [r2] + asrs r0, r4 + ands r0, r3 + cmp r0, #0 + beq _080104CE + adds r0, r3, #0 + lsls r0, r4 + strb r0, [r5] + ldrb r1, [r2] + eors r0, r1 + strb r0, [r2] +_080104CE: + adds r4, #1 + cmp r4, #3 + ble _080104B8 +_080104D4: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080104DC: .4byte 0x030031C4 +_080104E0: .4byte 0x0000099E +_080104E4: .4byte 0x0000099D + thumb_func_end sub_0801034C + + thumb_func_start sub_080104E8 +sub_080104E8: @ 0x080104E8 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + movs r1, #0 + movs r5, #1 + ldr r4, _08010510 + movs r3, #0 +_080104F6: + adds r0, r2, #0 + asrs r0, r1 + ands r0, r5 + cmp r0, #0 + beq _08010504 + adds r0, r1, r4 + strb r3, [r0] +_08010504: + adds r1, #1 + cmp r1, #3 + ble _080104F6 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08010510: .4byte 0x03005A36 + thumb_func_end sub_080104E8 + + thumb_func_start sub_08010514 +sub_08010514: @ 0x08010514 + push {r4, r5, r6, r7, lr} + adds r3, r0, #0 + ldr r1, _0801055C + ldrb r0, [r3, #0xf] + strb r0, [r1, #0xd] + movs r2, #0 + ldr r0, _08010560 + adds r5, r1, r0 + adds r4, r3, #0 + adds r4, #0x10 +_08010528: + adds r0, r2, r5 + adds r1, r4, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, #3 + ble _08010528 + ldr r4, _08010564 + movs r2, #4 +_0801053A: + adds r0, r4, #0 + adds r1, r3, #0 + adds r1, #0x14 + ldm r1!, {r5, r6, r7} + stm r0!, {r5, r6, r7} + ldm r1!, {r5, r6, r7} + stm r0!, {r5, r6, r7} + ldr r1, [r1] + str r1, [r0] + adds r3, #0x1c + adds r4, #0x1c + subs r2, #1 + cmp r2, #0 + bge _0801053A + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0801055C: .4byte 0x030050A0 +_08010560: .4byte 0x00000996 +_08010564: .4byte 0x020226A0 + thumb_func_end sub_08010514 + + thumb_func_start sub_08010568 +sub_08010568: @ 0x08010568 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + ldr r0, _0801059C + adds r1, r4, #0 + bl strcmp + adds r5, r0, #0 + cmp r5, #0 + bne _08010594 + adds r0, r4, #0 + bl sub_08010514 + mov r0, sp + strh r5, [r0] + ldr r2, _080105A0 + adds r1, r4, #0 + bl CpuSet + movs r0, #0 + bl ResetBlockReceivedFlag +_08010594: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0801059C: .4byte 0x082C0564 +_080105A0: .4byte 0x0100007E + thumb_func_end sub_08010568 + + thumb_func_start sub_080105A4 +sub_080105A4: @ 0x080105A4 + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r3, _08010604 + ldr r2, _08010608 + ldr r1, _0801060C + adds r0, r3, r1 + ldrb r1, [r0] + adds r1, r1, r2 + ldr r2, _08010610 + adds r0, r3, r2 + ldrb r1, [r1] + adds r0, r0, r1 + ldrb r4, [r0] + adds r0, r3, #0 + adds r0, #0xf1 + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _080105E2 + movs r0, #0x9a + lsls r0, r0, #4 + adds r1, r3, r0 + movs r0, #0 + strb r0, [r1] + adds r0, r6, #0 + bl DestroyTask +_080105E2: + ldr r0, _08010614 + lsls r2, r6, #2 + adds r1, r2, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r3, #8 + ldrsh r1, [r1, r3] + adds r3, r0, #0 + adds r7, r2, #0 + cmp r1, #5 + bls _080105FA + b _080107E2 +_080105FA: + lsls r0, r1, #2 + ldr r1, _08010618 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08010604: .4byte 0x030050A0 +_08010608: .4byte 0x082C03DC +_0801060C: .4byte 0x000009A1 +_08010610: .4byte 0x00000996 +_08010614: .4byte 0x03005B60 +_08010618: .4byte 0x0801061C +_0801061C: @ jump table + .4byte _08010634 @ case 0 + .4byte _08010654 @ case 1 + .4byte _0801066C @ case 2 + .4byte _080106B0 @ case 3 + .4byte _080106FA @ case 4 + .4byte _08010784 @ case 5 +_08010634: + ldr r0, _08010650 + ldrh r0, [r0] + cmp r0, #0 + beq _0801063E + b _080107E2 +_0801063E: + adds r0, r4, #0 + bl ResetBlockReceivedFlag + movs r0, #0xf0 + lsls r0, r0, #7 + bl sub_0800F7F8 + b _0801073A + .align 2, 0 +_08010650: .4byte 0x030031B0 +_08010654: + ldr r0, _08010668 + ldrh r0, [r0] + cmp r0, #0 + beq _0801065E + b _080107E2 +_0801065E: + adds r1, r7, r6 + lsls r1, r1, #3 + adds r1, r1, r3 + b _08010742 + .align 2, 0 +_08010668: .4byte 0x030031B0 +_0801066C: + bl GetBlockReceivedStatus + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + asrs r0, r4 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08010680 + b _080107E2 +_08010680: + adds r0, r4, #0 + bl ResetBlockReceivedFlag + lsls r1, r4, #8 + ldr r0, _080106A8 + adds r1, r1, r0 + ldr r2, _080106AC + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r1, #0x10 + ldm r1!, {r2, r3, r4} + stm r0!, {r2, r3, r4} + ldm r1!, {r2, r3, r4} + stm r0!, {r2, r3, r4} + ldr r1, [r1] + str r1, [r0] + b _0801073A + .align 2, 0 +_080106A8: .4byte 0x0202207C +_080106AC: .4byte 0x020226A0 +_080106B0: + ldr r5, _0801074C + adds r1, r5, #0 + ldr r0, _08010750 + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldrh r2, [r0] + strh r2, [r1] + ldrb r0, [r0, #2] + strb r0, [r1, #2] + ldr r1, _08010754 + ldrb r0, [r1, #0xd] + strb r0, [r5, #0xf] + movs r2, #0 + adds r4, r5, #0 + adds r4, #0x10 + ldr r0, _08010758 + adds r3, r1, r0 +_080106D2: + adds r0, r4, r2 + adds r1, r2, r3 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, #3 + ble _080106D2 + ldr r1, _0801075C + adds r0, r5, #0 + adds r0, #0x14 + movs r2, #0x8c + bl memcpy + ldr r0, _08010760 + adds r1, r7, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] +_080106FA: + ldr r5, _0801074C + ldr r1, _08010754 + ldrb r0, [r1, #0xd] + strb r0, [r5, #0xf] + movs r2, #0 + ldr r3, _0801075C + mov ip, r3 + adds r4, r5, #0 + adds r4, #0x10 + ldr r0, _08010758 + adds r3, r1, r0 +_08010710: + adds r0, r4, r2 + adds r1, r2, r3 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, #3 + ble _08010710 + adds r0, r5, #0 + adds r0, #0x14 + mov r1, ip + movs r2, #0x8c + bl memcpy + ldr r1, _0801074C + movs r0, #0 + movs r2, #0xa0 + bl SendBlock + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080107E2 +_0801073A: + ldr r0, _08010760 + adds r1, r7, r6 + lsls r1, r1, #3 + adds r1, r1, r0 +_08010742: + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _080107E2 + .align 2, 0 +_0801074C: .4byte 0x0202257C +_08010750: .4byte 0x082C0564 +_08010754: .4byte 0x030050A0 +_08010758: .4byte 0x00000996 +_0801075C: .4byte 0x020226A0 +_08010760: .4byte 0x03005B60 +_08010764: + adds r0, r3, #0 + lsls r0, r2 + ldr r2, _08010780 + adds r1, r5, r2 + strb r0, [r1] + ldrb r1, [r4] + eors r0, r1 + strb r0, [r4] + movs r4, #0x9a + lsls r4, r4, #4 + adds r0, r5, r4 + strb r3, [r0] + b _080107DC + .align 2, 0 +_08010780: .4byte 0x0000099D +_08010784: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080107E2 + bl GetBlockReceivedStatus + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _080107E2 + mov r0, sp + movs r4, #0 + strh r4, [r0] + ldr r1, _080107EC + ldr r2, _080107F0 + bl CpuSet + movs r0, #0 + bl ResetBlockReceivedFlag + ldr r1, _080107F4 + movs r2, #0x9a + lsls r2, r2, #4 + adds r0, r1, r2 + strb r4, [r0] + ldr r4, _080107F8 + adds r3, r1, r4 + ldrb r0, [r3] + cmp r0, #0 + beq _080107DC + movs r2, #0 + adds r5, r1, #0 + adds r4, r3, #0 + ldrb r1, [r4] + movs r3, #1 +_080107CC: + adds r0, r1, #0 + asrs r0, r2 + ands r0, r3 + cmp r0, #0 + bne _08010764 + adds r2, #1 + cmp r2, #3 + ble _080107CC +_080107DC: + adds r0, r6, #0 + bl DestroyTask +_080107E2: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080107EC: .4byte 0x0202207C +_080107F0: .4byte 0x0100007E +_080107F4: .4byte 0x030050A0 +_080107F8: .4byte 0x0000099E + thumb_func_end sub_080105A4 + + thumb_func_start sub_080107FC +sub_080107FC: @ 0x080107FC + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r6, _08010838 + adds r0, r6, #0 + adds r0, #0xf1 + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0801081A + adds r0, r5, #0 + bl DestroyTask +_0801081A: + ldr r1, _0801083C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _08010860 + cmp r0, #1 + bgt _08010840 + cmp r0, #0 + beq _08010846 + b _08010896 + .align 2, 0 +_08010838: .4byte 0x030050A0 +_0801083C: .4byte 0x03005B60 +_08010840: + cmp r0, #2 + beq _08010872 + b _08010896 +_08010846: + ldrb r0, [r6, #0xd] + cmp r0, #0 + beq _08010896 + bl sub_0800AE24 + ldr r1, _0801085C + movs r0, #0 + movs r2, #0x3c + bl SendBlock + b _0801086A + .align 2, 0 +_0801085C: .4byte 0x0202257C +_08010860: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08010896 +_0801086A: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _08010896 +_08010872: + bl GetBlockReceivedStatus + movs r4, #1 + adds r1, r4, #0 + ands r1, r0 + cmp r1, #0 + beq _08010896 + ldr r0, _0801089C + bl sub_08010514 + movs r0, #0 + bl ResetBlockReceivedFlag + ldr r0, _080108A0 + strb r4, [r0] + adds r0, r5, #0 + bl DestroyTask +_08010896: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0801089C: .4byte 0x0202207C +_080108A0: .4byte 0x030031C4 + thumb_func_end sub_080107FC + + thumb_func_start sub_080108A4 +sub_080108A4: @ 0x080108A4 + push {r4, r5, r6, r7, lr} + ldr r0, _0801092C + adds r1, r0, #0 + adds r1, #0xee + ldrb r1, [r1] + adds r3, r0, #0 + cmp r1, #1 + bne _0801094C + ldr r2, _08010930 + ldrb r0, [r2, #2] + cmp r0, #0 + bne _0801094C + ldr r0, _08010934 + ldr r1, [r0, #4] + ldr r0, _08010938 + cmp r1, r0 + beq _080108CE + ldr r0, [r2, #0x3c] + ldrb r0, [r0, #4] + cmp r0, #0 + beq _080108D4 +_080108CE: + ldr r1, _0801093C + movs r0, #2 + strb r0, [r1] +_080108D4: + ldr r4, _08010940 + adds r0, r4, #0 + bl SetMainCallback2 + ldr r0, _08010934 + str r4, [r0, #8] + ldr r5, _0801092C + ldrh r0, [r5, #0xa] + lsls r4, r0, #0x10 + ldrh r0, [r5, #0x10] + lsls r0, r0, #8 + orrs r4, r0 + ldrh r0, [r5, #0x12] + orrs r4, r0 + ldr r1, _08010944 + adds r0, r5, r1 + ldrb r0, [r0] + adds r7, r0, #0 + ldr r1, _08010948 + adds r0, r5, r1 + ldrb r0, [r0] + adds r6, r0, #0 + bl sub_08011564 + movs r3, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _08010910 + movs r3, #1 +_08010910: + adds r0, r4, #0 + adds r1, r7, #0 + adds r2, r6, #0 + bl sub_0800A9F4 + adds r0, r5, #0 + adds r0, #0xee + ldrb r1, [r0] + movs r1, #2 + strb r1, [r0] + bl CloseLink + b _0801097E + .align 2, 0 +_0801092C: .4byte 0x030050A0 +_08010930: .4byte 0x030041E0 +_08010934: .4byte 0x03002360 +_08010938: .4byte 0x08017ED1 +_0801093C: .4byte 0x0300319C +_08010940: .4byte 0x0800AA0D +_08010944: .4byte 0x0000069E +_08010948: .4byte 0x000008D2 +_0801094C: + ldr r1, _08010984 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, #1 + beq _08010960 + ldr r1, _08010988 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, #1 + bne _0801097E +_08010960: + ldr r0, _0801098C + ldrb r0, [r0, #2] + cmp r0, #0 + beq _0801096C + bl sub_0800D0EC +_0801096C: + movs r4, #0xe0 + lsls r4, r4, #7 + movs r0, #1 + adds r1, r4, #0 + bl sub_08011554 + adds r0, r4, #0 + bl sub_08010C60 +_0801097E: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08010984: .4byte 0x000008D3 +_08010988: .4byte 0x0000069F +_0801098C: .4byte 0x030041E0 + thumb_func_end sub_080108A4 + + thumb_func_start rfu_REQ_recvData_then_sendData +rfu_REQ_recvData_then_sendData: @ 0x08010990 + push {lr} + ldr r0, _080109AC + ldrb r0, [r0, #6] + cmp r0, #1 + bne _080109A8 + bl rfu_REQ_recvData + bl rfu_waitREQComplete + movs r0, #0 + bl rfu_REQ_sendData_wrapper +_080109A8: + pop {r0} + bx r0 + .align 2, 0 +_080109AC: .4byte 0x030041E0 + thumb_func_end rfu_REQ_recvData_then_sendData + + thumb_func_start sub_080109B0 +sub_080109B0: @ 0x080109B0 + push {r4, r5, lr} + movs r5, #0 + ldr r4, _080109E4 + ldr r1, _080109E8 + adds r0, r4, r1 + strb r5, [r0] + bl Random2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl sub_0800C008 + adds r0, r4, #0 + adds r0, #0xef + ldrb r0, [r0] + cmp r0, #0 + bne _08010A04 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _080109F2 + cmp r0, #1 + bgt _080109EC + cmp r0, #0 + beq _080109F8 + b _08010A04 + .align 2, 0 +_080109E4: .4byte 0x030050A0 +_080109E8: .4byte 0x00000985 +_080109EC: + cmp r0, #2 + beq _08010A00 + b _08010A04 +_080109F2: + bl sub_0800EBB8 + b _08010A04 +_080109F8: + bl sub_0800EFB0 + adds r5, r0, #0 + b _08010A04 +_08010A00: + bl rfu_REQ_recvData_then_sendData +_08010A04: + adds r0, r5, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_080109B0 + + thumb_func_start sub_08010A0C +sub_08010A0C: @ 0x08010A0C + push {r4, lr} + movs r4, #0 + ldr r1, _08010A34 + adds r0, r1, #0 + adds r0, #0xef + ldrb r0, [r0] + cmp r0, #0 + bne _08010A2C + ldrb r0, [r1, #0xc] + cmp r0, #1 + bne _08010A28 + bl sub_0800ECA0 + adds r4, r0, #0 +_08010A28: + bl sub_080108A4 +_08010A2C: + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08010A34: .4byte 0x030050A0 + thumb_func_end sub_08010A0C + + thumb_func_start sub_08010A38 +sub_08010A38: @ 0x08010A38 + push {lr} + ldr r0, _08010A48 + ldr r1, _08010A4C + ldr r1, [r1] + bl StringCopy + pop {r0} + bx r0 + .align 2, 0 +_08010A48: .4byte 0x020227DA +_08010A4C: .4byte 0x03005AF0 + thumb_func_end sub_08010A38 + + thumb_func_start sub_08010A50 +sub_08010A50: @ 0x08010A50 + push {r4, lr} + ldr r4, _08010A70 + adds r0, r4, #0 + movs r1, #0 + movs r2, #0xd + bl memset + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_0800D860 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08010A70: .4byte 0x020227CC + thumb_func_end sub_08010A50 + + thumb_func_start sub_08010A74 +sub_08010A74: @ 0x08010A74 + push {r4, lr} + adds r4, r0, #0 + adds r3, r1, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _08010A8C + adds r1, r4, #0 + bl sub_0800D860 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08010A8C: .4byte 0x020227CC + thumb_func_end sub_08010A74 + + thumb_func_start sub_08010A90 +sub_08010A90: @ 0x08010A90 + push {r4, r5, lr} + ldr r5, _08010AB8 + movs r4, #1 + ands r0, r4 + lsls r0, r0, #4 + ldrb r3, [r5] + movs r2, #0x11 + rsbs r2, r2, #0 + ands r2, r3 + orrs r2, r0 + ands r1, r4 + lsls r1, r1, #5 + movs r0, #0x21 + rsbs r0, r0, #0 + ands r2, r0 + orrs r2, r1 + strb r2, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08010AB8: .4byte 0x020227CC + thumb_func_end sub_08010A90 + + thumb_func_start sub_08010ABC +sub_08010ABC: @ 0x08010ABC + push {r4, r5, lr} + ldr r5, _08010AF0 + lsls r0, r0, #2 + ldrb r4, [r5, #9] + movs r3, #3 + ands r3, r4 + orrs r3, r0 + strb r3, [r5, #9] + ldr r3, _08010AF4 + adds r0, r3, #0 + ands r1, r0 + ldrh r3, [r5, #8] + ldr r0, _08010AF8 + ands r0, r3 + orrs r0, r1 + strh r0, [r5, #8] + lsls r2, r2, #1 + ldrb r1, [r5, #0xb] + movs r0, #1 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0xb] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08010AF0: .4byte 0x020227CC +_08010AF4: .4byte 0x000003FF +_08010AF8: .4byte 0xFFFFFC00 + thumb_func_end sub_08010ABC + + thumb_func_start sub_08010AFC +sub_08010AFC: @ 0x08010AFC + push {r4, lr} + movs r4, #0x80 + ldr r3, _08010B28 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r0, r1, r3 + ldrb r2, [r0, #0x13] + lsls r2, r2, #3 + orrs r2, r4 + adds r3, #4 + adds r1, r1, r3 + ldr r0, [r1] + movs r1, #7 + ands r0, r1 + orrs r0, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08010B28: .4byte 0x020226A0 + thumb_func_end sub_08010AFC + + thumb_func_start sub_08010B2C +sub_08010B2C: @ 0x08010B2C + push {r4, r5, lr} + ldr r5, _08010B34 + movs r4, #1 + b _08010B44 + .align 2, 0 +_08010B34: .4byte 0x020227CC +_08010B38: + adds r0, r4, #0 + bl sub_08010AFC + adds r1, r5, r4 + strb r0, [r1, #3] + adds r4, #1 +_08010B44: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + blt _08010B38 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08010B2C + + thumb_func_start sub_08010B58 +sub_08010B58: @ 0x08010B58 + push {lr} + lsls r0, r0, #0x18 + ldr r2, _08010B78 + lsrs r0, r0, #0x11 + ldrb r3, [r2, #0xa] + movs r1, #0x7f + ands r1, r3 + orrs r1, r0 + strb r1, [r2, #0xa] + ldr r3, _08010B7C + movs r0, #0 + movs r1, #2 + bl rfu_REQ_configGameData + pop {r0} + bx r0 + .align 2, 0 +_08010B78: .4byte 0x020227CC +_08010B7C: .4byte 0x020227DA + thumb_func_end sub_08010B58 + + thumb_func_start sub_08010B80 +sub_08010B80: @ 0x08010B80 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _08010B8E + bl sub_08010A74 +_08010B8E: + ldr r2, _08010BA0 + ldr r3, _08010BA4 + movs r0, #0 + movs r1, #2 + bl rfu_REQ_configGameData + pop {r0} + bx r0 + .align 2, 0 +_08010BA0: .4byte 0x020227CC +_08010BA4: .4byte 0x020227DA + thumb_func_end sub_08010B80 + + thumb_func_start sub_08010BA8 +sub_08010BA8: @ 0x08010BA8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sb, r0 + bl sub_0800F29C + ldrb r1, [r0, #0xa] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x45 + bne _08010C3C + movs r5, #0 + movs r7, #0 + ldr r3, _08010C4C + ldr r1, _08010C50 + adds r0, r3, r1 + ldr r2, _08010C54 + adds r1, r3, r2 + ldrb r2, [r0] + ldrb r0, [r1] + adds r1, r0, #0 + eors r1, r2 + mov r8, r1 + movs r4, #0 + movs r6, #1 + ldr r2, _08010C58 + mov ip, r2 + ldr r0, _08010C5C + adds r0, r0, r3 + mov sl, r0 + mov r3, ip + adds r3, #4 +_08010BEC: + mov r0, r8 + asrs r0, r4 + ands r0, r6 + cmp r0, #0 + beq _08010C2C + mov r1, sl + adds r0, r4, r1 + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + mov r2, ip + adds r1, r0, r2 + ldrb r1, [r1, #0x13] + adds r2, r6, #0 + ands r2, r1 + lsls r2, r2, #3 + adds r0, r0, r3 + ldr r1, [r0] + movs r0, #7 + ands r1, r0 + movs r0, #0x80 + orrs r1, r0 + orrs r2, r1 + lsls r0, r5, #3 + lsls r2, r0 + orrs r7, r2 + adds r5, #1 + mov r0, sb + subs r0, #1 + cmp r5, r0 + beq _08010C32 +_08010C2C: + adds r4, #1 + cmp r4, #3 + ble _08010BEC +_08010C32: + movs r0, #0x45 + adds r1, r7, #0 + movs r2, #0 + bl sub_08010B80 +_08010C3C: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08010C4C: .4byte 0x030050A0 +_08010C50: .4byte 0x0000099A +_08010C54: .4byte 0x0000099B +_08010C58: .4byte 0x020226A0 +_08010C5C: .4byte 0x00000996 + thumb_func_end sub_08010BA8 + + thumb_func_start sub_08010C60 +sub_08010C60: @ 0x08010C60 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _08010C88 + adds r3, r2, #0 + adds r3, #0xee + ldrb r0, [r3] + cmp r0, #0 + bne _08010C82 + ldr r1, _08010C8C + ldrh r0, [r1, #0x14] + strh r0, [r2, #0x10] + ldrh r0, [r1, #0x16] + strh r0, [r2, #0x12] + strh r4, [r2, #0xa] + ldrb r0, [r3] + movs r0, #1 + strb r0, [r3] +_08010C82: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08010C88: .4byte 0x030050A0 +_08010C8C: .4byte 0x030041E0 + thumb_func_end sub_08010C60 + + thumb_func_start sub_08010C90 +sub_08010C90: @ 0x08010C90 + ldr r0, _08010C9C + adds r0, #0xee + ldrb r1, [r0] + movs r1, #0 + strb r1, [r0] + bx lr + .align 2, 0 +_08010C9C: .4byte 0x030050A0 + thumb_func_end sub_08010C90 + + thumb_func_start sub_08010CA0 +sub_08010CA0: @ 0x08010CA0 + push {lr} + adds r2, r0, #0 + cmp r2, #0 + bne _08010CB8 + ldr r0, _08010CB4 + adds r0, #0xee + ldrb r1, [r0] + strb r2, [r0] + b _08010CC2 + .align 2, 0 +_08010CB4: .4byte 0x030050A0 +_08010CB8: + ldr r0, _08010CC8 + adds r0, #0xee + ldrb r1, [r0] + movs r1, #4 + strb r1, [r0] +_08010CC2: + pop {r0} + bx r0 + .align 2, 0 +_08010CC8: .4byte 0x030050A0 + thumb_func_end sub_08010CA0 + + thumb_func_start sub_08010CCC +sub_08010CCC: @ 0x08010CCC + push {lr} + ldr r0, _08010CE4 + ldrb r0, [r0] + movs r1, #1 + bl sub_08011980 + ldr r1, _08010CE8 + movs r0, #0 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08010CE4: .4byte 0x030041E0 +_08010CE8: .4byte 0x030050A0 + thumb_func_end sub_08010CCC + + thumb_func_start sub_08010CEC +sub_08010CEC: @ 0x08010CEC + ldr r1, _08010CF4 + ldr r0, _08010CF8 + str r0, [r1] + bx lr + .align 2, 0 +_08010CF4: .4byte 0x030050A0 +_08010CF8: .4byte 0x08010CCD + thumb_func_end sub_08010CEC + + thumb_func_start sub_08010CFC +sub_08010CFC: @ 0x08010CFC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r6, #0 + cmp r4, #0x32 + bne _08010D12 + b _08010E50 +_08010D12: + cmp r4, #0x32 + bgt _08010D42 + cmp r4, #0x13 + bgt _08010D30 + cmp r4, #0x12 + blt _08010D20 + b _08010EDE +_08010D20: + cmp r4, #0x10 + bne _08010D26 + b _08010EDE +_08010D26: + cmp r4, #0x10 + bgt _08010D7C + cmp r4, #0 + beq _08010D6E + b _08010EDE +_08010D30: + cmp r4, #0x30 + bne _08010D36 + b _08010E5C +_08010D36: + cmp r4, #0x30 + ble _08010D3C + b _08010E44 +_08010D3C: + cmp r4, #0x14 + beq _08010E18 + b _08010EDE +_08010D42: + cmp r4, #0x44 + bgt _08010D54 + cmp r4, #0x42 + blt _08010D4C + b _08010EDE +_08010D4C: + cmp r4, #0x33 + bne _08010D52 + b _08010E5C +_08010D52: + b _08010EDE +_08010D54: + cmp r4, #0xf3 + bne _08010D5A + b _08010EAA +_08010D5A: + cmp r4, #0xf3 + bgt _08010D66 + cmp r4, #0xf0 + bge _08010D64 + b _08010EDE +_08010D64: + b _08010EC4 +_08010D66: + cmp r4, #0xff + bne _08010D6C + b _08010EC4 +_08010D6C: + b _08010EDE +_08010D6E: + ldr r1, _08010D78 + movs r0, #2 + strh r0, [r1, #4] + b _08010EDE + .align 2, 0 +_08010D78: .4byte 0x030050A0 +_08010D7C: + ldr r0, _08010DE0 + ldrh r0, [r0, #0x14] + bl sub_080110DC + movs r5, #0 + movs r0, #1 + mov r8, r0 + ldr r1, _08010DE4 + mov sb, r1 + ldr r3, _08010DE8 + add r3, sb + mov sl, r3 + movs r7, #0x7f +_08010D96: + ldr r0, _08010DE0 + ldrh r0, [r0, #0x14] + asrs r0, r5 + mov r1, r8 + ands r0, r1 + cmp r0, #0 + beq _08010DFE + ldr r0, _08010DEC + lsls r1, r5, #5 + adds r1, #0x14 + ldr r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0, #0x10] + adds r4, r7, #0 + ands r4, r0 + bl sub_0800F29C + ldrb r1, [r0, #0xa] + adds r0, r7, #0 + ands r0, r1 + cmp r4, r0 + bne _08010DF4 + ldr r0, _08010DF0 + add r0, sb + adds r0, r5, r0 + movs r1, #0 + strb r1, [r0] + mov r3, sl + adds r2, r5, r3 + strb r1, [r2] + movs r0, #0x20 + adds r1, r5, #0 + movs r3, #1 + bl rfu_setRecvBuffer + b _08010DFE + .align 2, 0 +_08010DE0: .4byte 0x030041E0 +_08010DE4: .4byte 0x030050A0 +_08010DE8: .4byte 0x0000098D +_08010DEC: .4byte 0x03007630 +_08010DF0: .4byte 0x00000989 +_08010DF4: + mov r0, r8 + lsls r0, r5 + orrs r6, r0 + lsls r0, r6, #0x18 + lsrs r6, r0, #0x18 +_08010DFE: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #3 + bls _08010D96 + cmp r6, #0 + beq _08010EDE + adds r0, r6, #0 + bl rfu_REQ_disconnect + bl rfu_waitREQComplete + b _08010EDE +_08010E18: + ldr r4, _08010E38 + ldr r1, _08010E3C + adds r0, r4, r1 + ldr r1, _08010E40 + ldrb r2, [r0] + ldrb r0, [r1] + cmp r2, r0 + beq _08010E32 + eors r0, r2 + bl rfu_REQ_disconnect + bl rfu_waitREQComplete +_08010E32: + movs r0, #0x11 + strh r0, [r4, #4] + b _08010EDE + .align 2, 0 +_08010E38: .4byte 0x030050A0 +_08010E3C: .4byte 0x0000099F +_08010E40: .4byte 0x030041E0 +_08010E44: + ldr r0, _08010E4C + adds r0, #0xf0 + b _08010EDA + .align 2, 0 +_08010E4C: .4byte 0x030050A0 +_08010E50: + ldr r0, _08010E58 + adds r0, #0xf0 + movs r1, #3 + b _08010EDC + .align 2, 0 +_08010E58: .4byte 0x030050A0 +_08010E5C: + ldr r1, _08010E8C + adds r2, r1, #0 + adds r2, #0xf0 + movs r0, #4 + strb r0, [r2] + ldr r3, _08010E90 + adds r1, r1, r3 + ldr r0, _08010E94 + ldrb r2, [r0, #0x14] + ldrb r0, [r1] + adds r3, r0, #0 + bics r3, r2 + adds r2, r3, #0 + strb r2, [r1] + ldr r0, _08010E98 + ldrb r0, [r0] + cmp r0, #1 + bne _08010EA0 + cmp r2, #0 + bne _08010E9C + adds r0, r4, #0 + bl sub_08010C60 + b _08010EA0 + .align 2, 0 +_08010E8C: .4byte 0x030050A0 +_08010E90: .4byte 0x0000099A +_08010E94: .4byte 0x030041E0 +_08010E98: .4byte 0x030031C4 +_08010E9C: + bl sub_08010CEC +_08010EA0: + movs r0, #2 + adds r1, r4, #0 + bl sub_08011554 + b _08010EDE +_08010EAA: + movs r0, #1 + movs r1, #0xf3 + bl sub_08011554 + movs r0, #0xf3 + bl sub_08010C60 + ldr r0, _08010EC0 + adds r0, #0xef + b _08010EDA + .align 2, 0 +_08010EC0: .4byte 0x030050A0 +_08010EC4: + adds r0, r4, #0 + bl sub_08010C60 + movs r0, #1 + adds r1, r4, #0 + bl sub_08011554 + ldr r0, _08010EEC + ldr r1, _08010EF0 + adds r0, r0, r1 + ldrb r1, [r0] +_08010EDA: + movs r1, #1 +_08010EDC: + strb r1, [r0] +_08010EDE: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08010EEC: .4byte 0x030050A0 +_08010EF0: .4byte 0x00000993 + thumb_func_end sub_08010CFC + + thumb_func_start sub_08010EF4 +sub_08010EF4: @ 0x08010EF4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x31 + bne _08010F00 + b _08011060 +_08010F00: + cmp r4, #0x31 + bgt _08010F2E + cmp r4, #0x22 + beq _08010F84 + cmp r4, #0x22 + bgt _08010F1C + cmp r4, #0x20 + beq _08010F6C + cmp r4, #0x20 + ble _08010F16 + b _080110CE +_08010F16: + cmp r4, #0 + beq _08010F5E + b _080110CE +_08010F1C: + cmp r4, #0x24 + beq _08010FAA + cmp r4, #0x24 + blt _08010FA0 + cmp r4, #0x25 + beq _08010FF4 + cmp r4, #0x30 + beq _08010FFE + b _080110CE +_08010F2E: + cmp r4, #0x44 + bgt _08010F44 + cmp r4, #0x42 + blt _08010F38 + b _080110CE +_08010F38: + cmp r4, #0x33 + beq _08011012 + cmp r4, #0x33 + bge _08010F42 + b _0801107C +_08010F42: + b _080110CE +_08010F44: + cmp r4, #0xf3 + bne _08010F4A + b _0801109C +_08010F4A: + cmp r4, #0xf3 + bgt _08010F56 + cmp r4, #0xf0 + bge _08010F54 + b _080110CE +_08010F54: + b _080110B4 +_08010F56: + cmp r4, #0xff + bne _08010F5C + b _080110B4 +_08010F5C: + b _080110CE +_08010F5E: + ldr r1, _08010F68 + movs r0, #6 + strh r0, [r1, #4] + b _080110CE + .align 2, 0 +_08010F68: .4byte 0x030050A0 +_08010F6C: + ldr r0, _08010F78 + ldr r1, _08010F7C + ldrh r1, [r1, #0x14] + ldr r2, _08010F80 + adds r0, r0, r2 + b _080110CC + .align 2, 0 +_08010F78: .4byte 0x030050A0 +_08010F7C: .4byte 0x030041E0 +_08010F80: .4byte 0x00000985 +_08010F84: + ldr r0, _08010F94 + ldr r1, _08010F98 + ldrh r1, [r1, #0x14] + ldr r2, _08010F9C + adds r0, r0, r2 + ldrb r2, [r0] + b _080110CC + .align 2, 0 +_08010F94: .4byte 0x030050A0 +_08010F98: .4byte 0x030041E0 +_08010F9C: .4byte 0x000008F6 +_08010FA0: + movs r0, #2 + adds r1, r4, #0 + bl sub_08011554 + b _080110CE +_08010FAA: + ldr r4, _08010FE0 + movs r1, #0 + movs r0, #0xb + strh r0, [r4, #4] + ldr r2, _08010FE4 + adds r0, r4, r2 + strb r1, [r0] + ldr r0, _08010FE8 + adds r2, r4, r0 + strb r1, [r2] + ldr r1, _08010FEC + adds r5, r4, r1 + ldrb r1, [r5] + movs r0, #0x20 + movs r3, #1 + bl rfu_setRecvBuffer + ldrb r1, [r5] + ldr r2, _08010FF0 + adds r4, r4, r2 + movs r0, #0x10 + adds r2, r4, #0 + movs r3, #0x46 + bl rfu_setRecvBuffer + b _080110CE + .align 2, 0 +_08010FE0: .4byte 0x030050A0 +_08010FE4: .4byte 0x0000093D +_08010FE8: .4byte 0x0000093E +_08010FEC: .4byte 0x000008F6 +_08010FF0: .4byte 0x000008F7 +_08010FF4: + movs r0, #2 + movs r1, #0x25 + bl sub_08011554 + b _080110CE +_08010FFE: + ldr r0, _08011050 + adds r2, r0, #0 + adds r2, #0xf0 + movs r1, #2 + strb r1, [r2] + ldr r1, _08011054 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #6 + beq _080110CE +_08011012: + ldr r2, _08011050 + adds r1, r2, #0 + adds r1, #0xf0 + ldrb r0, [r1] + cmp r0, #2 + beq _08011022 + movs r0, #4 + strb r0, [r1] +_08011022: + ldr r1, _08011054 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #9 + beq _08011034 + movs r0, #2 + adds r1, r4, #0 + bl sub_08011554 +_08011034: + ldr r0, _08011058 + movs r1, #5 + movs r2, #5 + bl nullsub_13 + ldr r0, _0801105C + ldrb r0, [r0] + cmp r0, #1 + bne _080110CE + adds r0, r4, #0 + bl sub_08010C60 + b _080110CE + .align 2, 0 +_08011050: .4byte 0x030050A0 +_08011054: .4byte 0x0000093E +_08011058: .4byte 0x082C0578 +_0801105C: .4byte 0x030031C4 +_08011060: + ldr r0, _08011074 + adds r0, #0xf0 + movs r1, #1 + strb r1, [r0] + ldr r0, _08011078 + movs r1, #5 + movs r2, #5 + bl nullsub_13 + b _080110CE + .align 2, 0 +_08011074: .4byte 0x030050A0 +_08011078: .4byte 0x082C0590 +_0801107C: + ldr r1, _08011094 + adds r2, r1, #0 + adds r2, #0xf0 + movs r0, #3 + strb r0, [r2] + ldr r2, _08011098 + adds r1, r1, r2 + ldrb r0, [r1] + movs r0, #1 + strb r0, [r1] + b _080110CE + .align 2, 0 +_08011094: .4byte 0x030050A0 +_08011098: .4byte 0x000008F4 +_0801109C: + movs r0, #1 + movs r1, #0xf3 + bl sub_08011554 + movs r0, #0xf3 + bl sub_08010C60 + ldr r0, _080110B0 + adds r0, #0xef + b _080110CA + .align 2, 0 +_080110B0: .4byte 0x030050A0 +_080110B4: + movs r0, #1 + adds r1, r4, #0 + bl sub_08011554 + adds r0, r4, #0 + bl sub_08010C60 + ldr r0, _080110D4 + ldr r1, _080110D8 + adds r0, r0, r1 + ldrb r1, [r0] +_080110CA: + movs r1, #1 +_080110CC: + strb r1, [r0] +_080110CE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080110D4: .4byte 0x030050A0 +_080110D8: .4byte 0x00000993 + thumb_func_end sub_08010EF4 + + thumb_func_start sub_080110DC +sub_080110DC: @ 0x080110DC + push {r4, r5, r6, lr} + adds r3, r0, #0 + movs r2, #0 + movs r6, #1 + ldr r0, _08011110 + ldr r4, _08011114 + adds r1, r0, r4 + movs r5, #0 + movs r4, #0xff +_080110EE: + adds r0, r3, #0 + asrs r0, r2 + ands r0, r6 + cmp r0, #0 + beq _08011100 + strb r5, [r1] + ldrb r0, [r1, #4] + orrs r0, r4 + strb r0, [r1, #4] +_08011100: + adds r1, #1 + adds r2, #1 + cmp r2, #3 + ble _080110EE + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08011110: .4byte 0x030050A0 +_08011114: .4byte 0x000009A2 + thumb_func_end sub_080110DC + + thumb_func_start sub_08011118 +sub_08011118: @ 0x08011118 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r3, #0 + movs r2, #0 + movs r4, #1 + ldr r6, _08011160 + movs r7, #0x7f +_08011126: + adds r0, r5, #0 + asrs r0, r2 + ands r0, r4 + cmp r0, #0 + beq _0801114C + lsls r1, r2, #5 + adds r1, #0x14 + ldr r0, [r6] + adds r0, r0, r1 + ldrb r1, [r0, #0x10] + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0x45 + bne _0801114C + adds r0, r4, #0 + lsls r0, r2 + orrs r3, r0 + lsls r0, r3, #0x18 + lsrs r3, r0, #0x18 +_0801114C: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #3 + bls _08011126 + adds r0, r3, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08011160: .4byte 0x03007630 + thumb_func_end sub_08011118 + + thumb_func_start sub_08011164 +sub_08011164: @ 0x08011164 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x25 + bne _08011170 + b _080113DC +_08011170: + cmp r4, #0x25 + bgt _080111B2 + cmp r4, #0x14 + bne _0801117A + b _080112F4 +_0801117A: + cmp r4, #0x14 + bgt _08011192 + cmp r4, #0x11 + beq _08011212 + cmp r4, #0x11 + ble _08011188 + b _08011532 +_08011188: + cmp r4, #0 + beq _080111FC + cmp r4, #0x10 + beq _08011208 + b _08011532 +_08011192: + cmp r4, #0x22 + bne _08011198 + b _08011358 +_08011198: + cmp r4, #0x22 + bgt _080111A4 + cmp r4, #0x20 + bne _080111A2 + b _08011340 +_080111A2: + b _08011532 +_080111A4: + cmp r4, #0x23 + bne _080111AA + b _08011374 +_080111AA: + cmp r4, #0x24 + bne _080111B0 + b _080113AA +_080111B0: + b _08011532 +_080111B2: + cmp r4, #0x44 + bgt _080111E2 + cmp r4, #0x42 + blt _080111BC + b _08011532 +_080111BC: + cmp r4, #0x32 + bne _080111C2 + b _08011404 +_080111C2: + cmp r4, #0x32 + bgt _080111D4 + cmp r4, #0x30 + bne _080111CC + b _08011430 +_080111CC: + cmp r4, #0x31 + bne _080111D2 + b _080113E6 +_080111D2: + b _08011532 +_080111D4: + cmp r4, #0x33 + bne _080111DA + b _08011438 +_080111DA: + cmp r4, #0x40 + bne _080111E0 + b _080114EC +_080111E0: + b _08011532 +_080111E2: + cmp r4, #0xf3 + bne _080111E8 + b _080114FC +_080111E8: + cmp r4, #0xf3 + bgt _080111F4 + cmp r4, #0xf0 + bge _080111F2 + b _08011532 +_080111F2: + b _08011518 +_080111F4: + cmp r4, #0xff + bne _080111FA + b _08011518 +_080111FA: + b _08011532 +_080111FC: + ldr r1, _08011204 + movs r0, #0x11 + strh r0, [r1, #4] + b _08011532 + .align 2, 0 +_08011204: .4byte 0x030050A0 +_08011208: + movs r0, #4 + movs r1, #0 + bl sub_08011554 + b _08011532 +_08011212: + bl sub_0800F29C + ldrb r1, [r0, #0xa] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x45 + bne _080112CC + ldr r5, _08011278 + ldr r1, _0801127C + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080112CC + ldr r0, _08011280 + ldrh r0, [r0, #0x14] + bl sub_08011118 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + beq _08011296 + adds r0, r4, #0 + bl sub_0800E340 + movs r2, #1 + mov ip, r2 + mov r1, ip + lsls r1, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r7, _08011284 + adds r6, r5, r7 + ldrb r2, [r6] + cmp r2, #0 + bne _08011288 + movs r0, #0x9a + lsls r0, r0, #4 + adds r3, r5, r0 + ldrb r0, [r3] + cmp r0, #0 + bne _08011288 + subs r7, #1 + adds r0, r5, r7 + strb r1, [r0] + eors r1, r4 + orrs r1, r2 + strb r1, [r6] + mov r0, ip + strb r0, [r3] + b _08011296 + .align 2, 0 +_08011278: .4byte 0x030050A0 +_0801127C: .4byte 0x00000991 +_08011280: .4byte 0x030041E0 +_08011284: .4byte 0x0000099E +_08011288: + ldr r0, _080112B8 + ldr r1, _080112BC + adds r0, r0, r1 + ldrb r2, [r0] + adds r1, r4, #0 + orrs r1, r2 + strb r1, [r0] +_08011296: + ldr r0, _080112C0 + ldrh r1, [r0, #0x14] + cmp r4, r1 + beq _080112E6 + ldr r2, _080112B8 + ldr r7, _080112C4 + adds r3, r2, r7 + adds r0, r4, #0 + eors r0, r1 + ldrb r1, [r3] + orrs r0, r1 + strb r0, [r3] + ldr r0, _080112C8 + adds r2, r2, r0 + movs r0, #2 + strb r0, [r2] + b _080112E6 + .align 2, 0 +_080112B8: .4byte 0x030050A0 +_080112BC: .4byte 0x0000099E +_080112C0: .4byte 0x030041E0 +_080112C4: .4byte 0x0000099B +_080112C8: .4byte 0x0000099C +_080112CC: + bl sub_0800F29C + ldrb r1, [r0, #0xa] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x54 + bne _080112E6 + ldr r0, _080112F0 + ldrb r0, [r0] + bl rfu_REQ_disconnect + bl rfu_waitREQComplete +_080112E6: + ldr r0, _080112F0 + ldrh r0, [r0, #0x14] + bl sub_080110DC + b _08011532 + .align 2, 0 +_080112F0: .4byte 0x030041E0 +_080112F4: + bl sub_0800F29C + ldrb r1, [r0, #0xa] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x45 + beq _08011326 + ldr r4, _08011338 + ldrb r0, [r4, #1] + cmp r0, #1 + bls _08011326 + ldrb r0, [r4, #0x14] + bl sub_0800E340 + movs r1, #0x80 + lsls r1, r1, #0x11 + lsls r1, r0 + lsrs r1, r1, #0x18 + ldrb r0, [r4] + eors r1, r0 + adds r0, r1, #0 + bl rfu_REQ_disconnect + bl rfu_waitREQComplete +_08011326: + ldr r1, _0801133C + ldrh r0, [r1, #4] + cmp r0, #0xf + beq _08011330 + b _08011532 +_08011330: + movs r0, #0x10 + strh r0, [r1, #4] + b _08011532 + .align 2, 0 +_08011338: .4byte 0x030041E0 +_0801133C: .4byte 0x030050A0 +_08011340: + ldr r0, _0801134C + ldr r1, _08011350 + ldrh r1, [r1, #0x14] + ldr r2, _08011354 + adds r0, r0, r2 + b _08011530 + .align 2, 0 +_0801134C: .4byte 0x030050A0 +_08011350: .4byte 0x030041E0 +_08011354: .4byte 0x00000985 +_08011358: + ldr r0, _08011368 + ldr r1, _0801136C + ldrh r1, [r1, #0x14] + ldr r7, _08011370 + adds r0, r0, r7 + ldrb r2, [r0] + b _08011530 + .align 2, 0 +_08011368: .4byte 0x030050A0 +_0801136C: .4byte 0x030041E0 +_08011370: .4byte 0x000008F6 +_08011374: + ldr r1, _08011394 + movs r0, #0x12 + strh r0, [r1, #4] + ldr r0, _08011398 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #1 + bhi _080113A0 + adds r0, #1 + strb r0, [r1] + ldr r0, _0801139C + movs r1, #2 + bl CreateTask + b _08011532 + .align 2, 0 +_08011394: .4byte 0x030050A0 +_08011398: .4byte 0x00000987 +_0801139C: .4byte 0x08011B89 +_080113A0: + movs r0, #2 + movs r1, #0x23 + bl sub_08011554 + b _08011532 +_080113AA: + ldr r4, _080113D0 + movs r0, #0xd + strh r0, [r4, #4] + movs r0, #3 + movs r1, #0 + bl sub_08011554 + ldr r1, _080113D4 + adds r0, r4, r1 + ldrb r1, [r0] + ldr r2, _080113D8 + adds r4, r4, r2 + movs r0, #0x10 + adds r2, r4, #0 + movs r3, #0x46 + bl rfu_setRecvBuffer + b _08011532 + .align 2, 0 +_080113D0: .4byte 0x030050A0 +_080113D4: .4byte 0x000008F6 +_080113D8: .4byte 0x000008F7 +_080113DC: + movs r0, #2 + movs r1, #0x25 + bl sub_08011554 + b _08011532 +_080113E6: + ldr r0, _080113FC + ldrb r1, [r0] + ldrh r0, [r0, #0x14] + ands r1, r0 + cmp r1, #0 + bne _080113F4 + b _08011532 +_080113F4: + ldr r0, _08011400 + adds r0, #0xf0 + movs r1, #1 + b _08011530 + .align 2, 0 +_080113FC: .4byte 0x030041E0 +_08011400: .4byte 0x030050A0 +_08011404: + ldr r2, _08011424 + adds r1, r2, #0 + adds r1, #0xf0 + movs r0, #3 + strb r0, [r1] + ldr r0, _08011428 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #0 + beq _0801141A + b _08011532 +_0801141A: + ldr r7, _0801142C + adds r0, r2, r7 + ldrb r1, [r0] + movs r1, #1 + b _08011530 + .align 2, 0 +_08011424: .4byte 0x030050A0 +_08011428: .4byte 0x03007630 +_0801142C: .4byte 0x000008F4 +_08011430: + ldr r0, _08011470 + adds r0, #0xf0 + movs r1, #2 + strb r1, [r0] +_08011438: + ldr r2, _08011470 + adds r1, r2, #0 + adds r1, #0xf0 + ldrb r0, [r1] + cmp r0, #2 + beq _08011448 + movs r0, #4 + strb r0, [r1] +_08011448: + ldrb r0, [r2, #0xc] + cmp r0, #1 + bne _08011486 + ldr r0, _08011474 + ldrb r0, [r0] + cmp r0, #1 + bne _080114A4 + ldr r0, _08011478 + adds r2, r2, r0 + ldr r0, _0801147C + ldrb r1, [r0, #0x14] + ldrb r0, [r2] + bics r0, r1 + strb r0, [r2] + cmp r0, #0 + bne _08011480 + adds r0, r4, #0 + bl sub_08010C60 + b _080114A4 + .align 2, 0 +_08011470: .4byte 0x030050A0 +_08011474: .4byte 0x030031C4 +_08011478: .4byte 0x0000099A +_0801147C: .4byte 0x030041E0 +_08011480: + bl sub_08010CEC + b _080114A4 +_08011486: + ldr r1, _080114D4 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #2 + beq _080114A4 + ldr r0, _080114D8 + ldrb r0, [r0] + cmp r0, #1 + bne _080114A4 + adds r0, r4, #0 + bl sub_08010C60 + movs r0, #0 + bl sub_0800BD38 +_080114A4: + ldr r0, _080114DC + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #0xff + bne _080114CA + ldr r0, _080114E0 + ldrb r0, [r0, #7] + cmp r0, #0 + bne _080114CA + ldr r0, _080114E4 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080114CA + ldr r1, _080114E8 + movs r0, #0x11 + strh r0, [r1, #4] +_080114CA: + movs r0, #2 + adds r1, r4, #0 + bl sub_08011554 + b _08011532 + .align 2, 0 +_080114D4: .4byte 0x0000099C +_080114D8: .4byte 0x030031C4 +_080114DC: .4byte 0x03007630 +_080114E0: .4byte 0x030041E0 +_080114E4: .4byte 0x0800E609 +_080114E8: .4byte 0x030050A0 +_080114EC: + ldr r0, _080114F4 + ldr r2, _080114F8 + adds r0, r0, r2 + b _0801152E + .align 2, 0 +_080114F4: .4byte 0x030050A0 +_080114F8: .4byte 0x0000099B +_080114FC: + movs r0, #1 + movs r1, #0xf3 + bl sub_08011554 + movs r0, #0xf3 + bl sub_08010C60 + ldr r0, _08011514 + adds r0, #0xef + movs r1, #1 + b _08011530 + .align 2, 0 +_08011514: .4byte 0x030050A0 +_08011518: + adds r0, r4, #0 + bl sub_08010C60 + movs r0, #1 + adds r1, r4, #0 + bl sub_08011554 + ldr r0, _08011538 + ldr r7, _0801153C + adds r0, r0, r7 + ldrb r1, [r0] +_0801152E: + movs r1, #0 +_08011530: + strb r1, [r0] +_08011532: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08011538: .4byte 0x030050A0 +_0801153C: .4byte 0x00000993 + thumb_func_end sub_08011164 + + thumb_func_start sub_08011540 +sub_08011540: @ 0x08011540 + ldr r0, _0801154C + ldr r1, _08011550 + adds r0, r0, r1 + movs r1, #2 + strb r1, [r0] + bx lr + .align 2, 0 +_0801154C: .4byte 0x030050A0 +_08011550: .4byte 0x0000099C + thumb_func_end sub_08011540 + + thumb_func_start sub_08011554 +sub_08011554: @ 0x08011554 + ldr r2, _08011560 + adds r3, r2, #0 + adds r3, #0xf1 + strb r0, [r3] + strh r1, [r2, #0xa] + bx lr + .align 2, 0 +_08011560: .4byte 0x030050A0 + thumb_func_end sub_08011554 + + thumb_func_start sub_08011564 +sub_08011564: @ 0x08011564 + ldr r0, _0801156C + adds r0, #0xf1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0801156C: .4byte 0x030050A0 + thumb_func_end sub_08011564 + + thumb_func_start sub_08011570 +sub_08011570: @ 0x08011570 + push {lr} + bl sub_08011564 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, #1 + cmp r0, #1 + bls _08011584 + movs r0, #0 + b _08011586 +_08011584: + movs r0, #1 +_08011586: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08011570 + + thumb_func_start GetRfuRecvQueueLength +GetRfuRecvQueueLength: @ 0x0801158C + ldr r0, _08011598 + movs r1, #0x9a + lsls r1, r1, #4 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08011598: .4byte 0x030050A0 + thumb_func_end GetRfuRecvQueueLength + + thumb_func_start Rfu_IsMaster +Rfu_IsMaster: @ 0x0801159C + ldr r0, _080115A4 + ldrb r0, [r0, #0xc] + bx lr + .align 2, 0 +_080115A4: .4byte 0x030050A0 + thumb_func_end Rfu_IsMaster + + thumb_func_start ReadU16 +ReadU16: @ 0x080115A8 + push {lr} + bl rfu_syncVBlank_ + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ReadU16 + + thumb_func_start sub_080115B4 +sub_080115B4: @ 0x080115B4 + push {lr} + sub sp, #4 + movs r0, #0 + str r0, [sp] + ldr r1, _080115CC + ldr r2, _080115D0 + mov r0, sp + bl CpuSet + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_080115CC: .4byte 0x03003130 +_080115D0: .4byte 0x05000014 + thumb_func_end sub_080115B4 + + thumb_func_start sub_080115D4 +sub_080115D4: @ 0x080115D4 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080115D4 + + thumb_func_start sub_080115E8 +sub_080115E8: @ 0x080115E8 + push {r4, lr} + bl ResetSpriteData + bl FreeAllSpritePalettes + bl ResetTasks + bl ResetPaletteFade + ldr r0, _08011664 + bl SetVBlankCallback + bl IsWirelessAdapterConnected + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801165C + ldr r1, _08011668 + ldr r2, _0801166C + adds r0, r2, #0 + strh r0, [r1] + bl sub_0800AF5C + bl OpenLink + ldr r0, _08011670 + ldrh r0, [r0, #0x24] + bl SeedRng + movs r4, #0 +_08011624: + bl Random + ldr r1, _08011674 + ldr r1, [r1] + adds r1, #0xa + adds r1, r1, r4 + strb r0, [r1] + adds r4, #1 + cmp r4, #3 + ble _08011624 + movs r1, #0xaa + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + bl sub_08011690 + ldr r0, _08011678 + bl SetMainCallback2 +_0801165C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08011664: .4byte 0x080115D5 +_08011668: .4byte 0x0202267E +_0801166C: .4byte 0x00001111 +_08011670: .4byte 0x03002360 +_08011674: .4byte 0x03005AF0 +_08011678: .4byte 0x080116E5 + thumb_func_end sub_080115E8 + + thumb_func_start sub_0801167C +sub_0801167C: @ 0x0801167C + push {lr} + ldr r0, _0801168C + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0801168C: .4byte 0x0800E609 + thumb_func_end sub_0801167C + + thumb_func_start sub_08011690 +sub_08011690: @ 0x08011690 + push {r4, lr} + ldr r4, _080116B4 + adds r0, r4, #0 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080116AE + adds r0, r4, #0 + movs r1, #0 + bl CreateTask + ldr r1, _080116B8 + adds r1, #0x66 + strb r0, [r1] +_080116AE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080116B4: .4byte 0x08011FD5 +_080116B8: .4byte 0x030050A0 + thumb_func_end sub_08011690 + + thumb_func_start sub_080116BC +sub_080116BC: @ 0x080116BC + push {lr} + ldr r0, _080116DC + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080116D6 + ldr r0, _080116E0 + adds r0, #0x66 + ldrb r0, [r0] + bl DestroyTask +_080116D6: + pop {r0} + bx r0 + .align 2, 0 +_080116DC: .4byte 0x08011FD5 +_080116E0: .4byte 0x030050A0 + thumb_func_end sub_080116BC + + thumb_func_start sub_080116E4 +sub_080116E4: @ 0x080116E4 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080116E4 + + thumb_func_start sub_080116FC +sub_080116FC: @ 0x080116FC + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r1, _08011734 + movs r0, #1 + strb r0, [r1, #0xc] + bl sub_08010A38 + ldr r0, _08011738 + movs r1, #0 + bl sub_0800BA08 + ldr r2, _0801173C + adds r1, r2, #0 + ldr r0, _08011740 + ldm r0!, {r3, r5, r6} + stm r1!, {r3, r5, r6} + ldm r0!, {r3, r5, r6} + stm r1!, {r3, r5, r6} + ldr r0, _08011744 + subs r4, #1 + adds r4, r4, r0 + ldrb r0, [r4] + strh r0, [r2, #2] + bl sub_0800E938 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08011734: .4byte 0x030050A0 +_08011738: .4byte 0x08010CFD +_0801173C: .4byte 0x020227E4 +_08011740: .4byte 0x082C0358 +_08011744: .4byte 0x082C0370 + thumb_func_end sub_080116FC + + thumb_func_start sub_08011748 +sub_08011748: @ 0x08011748 + push {lr} + ldr r1, _08011764 + movs r0, #0 + strb r0, [r1, #0xc] + bl sub_08010A38 + ldr r0, _08011768 + ldr r1, _0801176C + bl sub_0800BA08 + bl sub_0800E9C0 + pop {r0} + bx r0 + .align 2, 0 +_08011764: .4byte 0x030050A0 +_08011768: .4byte 0x08010EF5 +_0801176C: .4byte 0x0800E7F5 + thumb_func_end sub_08011748 + + thumb_func_start sub_08011770 +sub_08011770: @ 0x08011770 + push {r4, r5, r6, r7, lr} + ldr r4, _080117B0 + movs r5, #0 + movs r0, #2 + strb r0, [r4, #0xc] + bl sub_08010A38 + ldr r0, _080117B4 + movs r1, #0 + bl sub_0800BA08 + ldr r2, _080117B8 + adds r1, r2, #0 + ldr r0, _080117BC + ldm r0!, {r3, r6, r7} + stm r1!, {r3, r6, r7} + ldm r0!, {r3, r6, r7} + stm r1!, {r3, r6, r7} + strb r5, [r2, #0x11] + movs r0, #0x96 + lsls r0, r0, #2 + strh r0, [r2, #0x12] + ldr r0, _080117C0 + movs r1, #1 + bl CreateTask + adds r4, #0x67 + strb r0, [r4] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080117B0: .4byte 0x030050A0 +_080117B4: .4byte 0x08011165 +_080117B8: .4byte 0x020227E4 +_080117BC: .4byte 0x082C0358 +_080117C0: .4byte 0x0800E609 + thumb_func_end sub_08011770 + + thumb_func_start sub_080117C4 +sub_080117C4: @ 0x080117C4 + ldrb r1, [r0, #1] + lsls r1, r1, #8 + ldrb r0, [r0] + orrs r0, r1 + bx lr + .align 2, 0 + thumb_func_end sub_080117C4 + + thumb_func_start sub_080117D0 +sub_080117D0: @ 0x080117D0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + str r0, [sp] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sl, r1 + movs r0, #0xff + mov sb, r0 + movs r7, #0 + ldr r1, _08011854 + mov r8, r1 +_080117EE: + lsls r4, r7, #5 + adds r5, r4, #0 + adds r5, #0x14 + mov r1, r8 + ldr r0, [r1] + adds r0, r0, r5 + adds r0, #8 + bl sub_080117C4 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + mov r1, r8 + ldr r0, [r1] + adds r0, r0, r4 + ldrh r0, [r0, #0x18] + bl sub_0800FF54 + cmp r0, #0 + beq _08011838 + mov r0, r8 + ldr r1, [r0] + adds r1, r1, r5 + adds r1, #0x15 + ldr r0, [sp] + bl StringCompare + cmp r0, #0 + bne _08011838 + cmp sl, r6 + bne _08011838 + mov sb, r7 + mov r1, r8 + ldr r0, [r1] + adds r0, r0, r4 + ldrb r0, [r0, #0x16] + cmp r0, #0xff + bne _08011842 +_08011838: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #3 + bls _080117EE +_08011842: + mov r0, sb + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08011854: .4byte 0x03007630 + thumb_func_end sub_080117D0 + + thumb_func_start sub_08011858 +sub_08011858: @ 0x08011858 + push {r4, r5, r6, lr} + adds r6, r0, #0 + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + bl rfu_REQ_disconnect + bl rfu_waitREQComplete + ldr r4, _0801189C + ldr r0, _080118A0 + adds r5, r4, r0 + ldrb r0, [r5] + bics r0, r6 + strb r0, [r5] + ldr r1, _080118A4 + adds r6, r4, r1 + ldrb r1, [r6] + movs r0, #1 + bl rfu_clearSlot + ldrb r0, [r5] + ldr r1, _080118A8 + adds r4, r4, r1 + adds r1, r4, #0 + movs r2, #0x46 + bl rfu_UNI_setSendData + ldrb r0, [r5] + bl sub_0800E340 + strb r0, [r6] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0801189C: .4byte 0x030050A0 +_080118A0: .4byte 0x0000099A +_080118A4: .4byte 0x00000992 +_080118A8: .4byte 0x0000093F + thumb_func_end sub_08011858 + + thumb_func_start sub_080118AC +sub_080118AC: @ 0x080118AC + push {lr} + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl sub_080117D0 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xff + beq _080118C6 + movs r0, #1 + lsls r0, r1 + bl sub_08011858 +_080118C6: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080118AC + + thumb_func_start sub_080118CC +sub_080118CC: @ 0x080118CC + push {r4, r5, r6, lr} + adds r4, r0, #0 + cmp r4, #0 + beq _0801190C + movs r3, #0 + movs r2, #0 + ldr r5, _08011914 + adds r6, r5, #4 +_080118DC: + adds r0, r2, r5 + ldrb r0, [r0] + cmp r0, r4 + bne _080118FA + ldrb r0, [r6] + asrs r0, r2 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _080118FA + adds r0, r1, #0 + lsls r0, r2 + orrs r3, r0 + lsls r0, r3, #0x18 + lsrs r3, r0, #0x18 +_080118FA: + adds r2, #1 + cmp r2, #3 + ble _080118DC + cmp r3, #0 + beq _0801190C + adds r0, r3, #0 + movs r1, #2 + bl sub_08011980 +_0801190C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08011914: .4byte 0x03005A36 + thumb_func_end sub_080118CC + + thumb_func_start sub_08011918 +sub_08011918: @ 0x08011918 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r6, _08011970 + ldrh r0, [r6] + cmp r0, #0 + bne _08011968 + ldr r5, _08011974 + movs r1, #0x9a + lsls r1, r1, #4 + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _08011968 + movs r0, #0xed + lsls r0, r0, #8 + bl sub_0800F7F8 + ldr r1, _08011978 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #8] + strh r1, [r6, #2] + ldrh r1, [r0, #0xa] + strh r1, [r6, #4] + ldr r1, _0801197C + movs r2, #8 + ldrsh r0, [r0, r2] + adds r0, r0, r1 + ldrb r1, [r5, #0xd] + ldrb r0, [r0] + subs r1, r1, r0 + strb r1, [r5, #0xd] + ldrb r0, [r5, #0xd] + strh r0, [r6, #6] + adds r0, r4, #0 + bl DestroyTask +_08011968: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08011970: .4byte 0x030031B0 +_08011974: .4byte 0x030050A0 +_08011978: .4byte 0x03005B60 +_0801197C: .4byte 0x082C03E5 + thumb_func_end sub_08011918 + + thumb_func_start sub_08011980 +sub_08011980: @ 0x08011980 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r5, _080119B0 + adds r0, r5, #0 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xff + bne _080119B8 + adds r0, r5, #0 + movs r1, #5 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _080119B4 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r4, [r0, #8] + b _080119C8 + .align 2, 0 +_080119B0: .4byte 0x08011919 +_080119B4: .4byte 0x03005B60 +_080119B8: + ldr r0, _080119DC + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + orrs r4, r0 + strh r4, [r1, #8] +_080119C8: + ldr r1, _080119DC + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r6, [r0, #0xa] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080119DC: .4byte 0x03005B60 + thumb_func_end sub_08011980 + + thumb_func_start sub_080119E0 +sub_080119E0: @ 0x080119E0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _08011A38 + adds r4, r0, r1 + bl sub_0800E954 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08011A90 + adds r0, r4, #0 + adds r0, #0x10 + bl sub_080117C4 + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl sub_080117D0 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xff + beq _08011A78 + ldr r0, _08011A3C + ldr r0, [r0] + lsls r1, r2, #5 + adds r0, r0, r1 + ldrb r0, [r0, #0x16] + cmp r0, #0xff + beq _08011A48 + ldr r0, _08011A40 + ldr r1, _08011A44 + adds r0, r0, r1 + strb r2, [r0] + bl sub_0800E97C + cmp r0, #0 + beq _08011A96 + b _08011A70 + .align 2, 0 +_08011A38: .4byte 0x03005B68 +_08011A3C: .4byte 0x03007630 +_08011A40: .4byte 0x030050A0 +_08011A44: .4byte 0x000008F5 +_08011A48: + bl sub_0800F29C + ldrb r1, [r0, #0xa] + movs r5, #0x7f + adds r0, r5, #0 + ands r0, r1 + cmp r0, #6 + beq _08011A90 + bl sub_0800F29C + ldrb r1, [r0, #0xa] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #7 + beq _08011A90 + movs r1, #0xe0 + lsls r1, r1, #7 + movs r0, #2 + bl sub_08011554 +_08011A70: + adds r0, r6, #0 + bl DestroyTask + b _08011A96 +_08011A78: + ldrh r0, [r4, #0x1e] + adds r0, #1 + strh r0, [r4, #0x1e] + ldr r0, _08011A88 + ldr r1, _08011A8C + adds r0, r0, r1 + strb r2, [r0] + b _08011A96 + .align 2, 0 +_08011A88: .4byte 0x030050A0 +_08011A8C: .4byte 0x000008F5 +_08011A90: + ldrh r0, [r4, #0x1e] + adds r0, #1 + strh r0, [r4, #0x1e] +_08011A96: + movs r1, #0x1e + ldrsh r0, [r4, r1] + cmp r0, #0xf0 + ble _08011AAE + movs r1, #0xe0 + lsls r1, r1, #7 + movs r0, #2 + bl sub_08011554 + adds r0, r6, #0 + bl DestroyTask +_08011AAE: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_080119E0 + + thumb_func_start sub_08011AB4 +sub_08011AB4: @ 0x08011AB4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + lsls r5, r1, #0x10 + lsrs r5, r5, #0x10 + ldr r0, _08011AEC + adds r0, #0xf1 + movs r1, #0 + strb r1, [r0] + ldr r0, _08011AF0 + movs r1, #3 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _08011AF4 + adds r4, r4, r0 + adds r0, r4, #0 + adds r1, r6, #0 + bl StringCopy + strh r5, [r4, #0x10] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08011AEC: .4byte 0x030050A0 +_08011AF0: .4byte 0x080119E1 +_08011AF4: .4byte 0x03005B68 + thumb_func_end sub_08011AB4 + + thumb_func_start sub_08011AF8 +sub_08011AF8: @ 0x08011AF8 + push {r4, r5, lr} + adds r4, r1, #0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + bl sub_0800F29C + ldrb r1, [r0, #0xa] + movs r2, #0x7f + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0x45 + bne _08011B1E + ldrb r1, [r4, #0xa] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0x45 + beq _08011B7E +_08011B1A: + movs r0, #1 + b _08011B80 +_08011B1E: + ldrb r1, [r4, #0xa] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0x40 + bne _08011B1A + cmp r5, #0x44 + bne _08011B7E + ldr r5, _08011B4C + ldrh r0, [r5, #8] + ldr r3, _08011B50 + adds r2, r3, #0 + ands r2, r0 + movs r0, #0xce + lsls r0, r0, #1 + cmp r2, r0 + bne _08011B54 + ldrh r1, [r4, #8] + adds r0, r3, #0 + ands r0, r1 + cmp r0, r2 + beq _08011B7E + b _08011B1A + .align 2, 0 +_08011B4C: .4byte 0x030051AA +_08011B50: .4byte 0x000003FF +_08011B54: + ldrh r1, [r4, #8] + adds r0, r3, #0 + ands r0, r1 + cmp r0, r2 + bne _08011B1A + ldrb r2, [r4, #0xb] + movs r0, #0xfe + ldrb r3, [r5, #0xb] + adds r1, r0, #0 + ands r1, r2 + ands r0, r3 + cmp r1, r0 + bne _08011B1A + ldrb r2, [r4, #9] + movs r0, #0xfc + ldrb r3, [r5, #9] + adds r1, r0, #0 + ands r1, r2 + ands r0, r3 + cmp r1, r0 + bne _08011B1A +_08011B7E: + movs r0, #0 +_08011B80: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08011AF8 + + thumb_func_start sub_08011B88 +sub_08011B88: @ 0x08011B88 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + mov r8, r5 + ldr r6, _08011C40 + adds r0, r6, #0 + adds r0, #0xf1 + ldrb r0, [r0] + cmp r0, #4 + bne _08011BA6 + adds r0, r5, #0 + bl DestroyTask +_08011BA6: + ldr r1, _08011C44 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + lsls r0, r0, #0x10 + movs r1, #0x96 + lsls r1, r1, #0x11 + cmp r0, r1 + ble _08011BD0 + movs r1, #0xe0 + lsls r1, r1, #7 + movs r0, #2 + bl sub_08011554 + adds r0, r5, #0 + bl DestroyTask +_08011BD0: + ldr r1, _08011C48 + adds r0, r6, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _08011C68 + ldr r0, _08011C4C + ldrb r0, [r0, #6] + cmp r0, #0 + bne _08011C68 + movs r2, #0x86 + lsls r2, r2, #1 + adds r0, r6, r2 + bl sub_080117C4 + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r2, _08011C50 + adds r0, r6, r2 + bl sub_080117D0 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xff + beq _08011C68 + movs r1, #0xa + ldrsh r0, [r4, r1] + ldr r7, _08011C54 + lsls r4, r2, #5 + adds r2, r4, #0 + adds r2, #0x14 + ldr r1, [r7] + adds r1, r1, r2 + adds r1, #6 + bl sub_08011AF8 + cmp r0, #0 + bne _08011C58 + ldr r0, [r7] + adds r1, r0, r4 + ldrb r0, [r1, #0x16] + cmp r0, #0xff + beq _08011C68 + ldrh r0, [r1, #0x14] + movs r1, #0x5a + bl sub_0800BBE8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08011C68 + movs r0, #0xa + strh r0, [r6, #4] + adds r0, r5, #0 + bl DestroyTask + b _08011C68 + .align 2, 0 +_08011C40: .4byte 0x030050A0 +_08011C44: .4byte 0x03005B60 +_08011C48: .4byte 0x00000985 +_08011C4C: .4byte 0x030041E0 +_08011C50: .4byte 0x00000119 +_08011C54: .4byte 0x03007630 +_08011C58: + movs r1, #0xe0 + lsls r1, r1, #7 + movs r0, #2 + bl sub_08011554 + mov r0, r8 + bl DestroyTask +_08011C68: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08011B88 + + thumb_func_start sub_08011C74 +sub_08011C74: @ 0x08011C74 + push {r4, r5, r6, r7, lr} + adds r3, r0, #0 + adds r5, r1, #0 + lsls r4, r2, #0x18 + lsrs r4, r4, #0x18 + ldr r6, _08011CE4 + ldr r1, _08011CE8 + adds r0, r6, r1 + movs r7, #0 + strb r7, [r0] + adds r0, r6, #0 + adds r0, #0xf1 + strb r7, [r0] + ldr r1, _08011CEC + adds r0, r6, r1 + adds r1, r3, #0 + bl StringCopy + movs r1, #0x85 + lsls r1, r1, #1 + adds r0, r6, r1 + adds r1, r5, #0 + movs r2, #0xd + bl memcpy + bl sub_0800D114 + ldr r0, _08011CF0 + movs r1, #2 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _08011CF4 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r5 + strh r4, [r1, #0xa] + ldr r0, _08011CF8 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r2, r1, #0 + cmp r4, #0x45 + bne _08011CFC + cmp r1, #0xff + beq _08011D0A + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r1, #1 + strh r1, [r0, #0x16] + b _08011D0A + .align 2, 0 +_08011CE4: .4byte 0x030050A0 +_08011CE8: .4byte 0x00000987 +_08011CEC: .4byte 0x00000119 +_08011CF0: .4byte 0x08011B89 +_08011CF4: .4byte 0x03005B60 +_08011CF8: .4byte 0x0800E609 +_08011CFC: + cmp r2, #0xff + beq _08011D0A + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r0, r0, r5 + strh r7, [r0, #0x16] +_08011D0A: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08011C74 + + thumb_func_start sub_08011D10 +sub_08011D10: @ 0x08011D10 + push {lr} + ldr r0, _08011D20 + adds r0, #0xf0 + ldrb r0, [r0] + cmp r0, #1 + beq _08011D24 + movs r0, #0 + b _08011D26 + .align 2, 0 +_08011D20: .4byte 0x030050A0 +_08011D24: + movs r0, #1 +_08011D26: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08011D10 + + thumb_func_start sub_08011D2C +sub_08011D2C: @ 0x08011D2C + push {r4, lr} + movs r1, #0 + ldr r0, _08011D50 + ldrb r2, [r0] + ldr r4, _08011D54 + movs r3, #1 +_08011D38: + adds r0, r2, #0 + asrs r0, r1 + ands r0, r3 + cmp r0, #0 + beq _08011D58 + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, #0 + bne _08011D58 + movs r0, #0 + b _08011D60 + .align 2, 0 +_08011D50: .4byte 0x030041E0 +_08011D54: .4byte 0x03005A29 +_08011D58: + adds r1, #1 + cmp r1, #3 + ble _08011D38 + movs r0, #1 +_08011D60: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08011D2C + + thumb_func_start sub_08011D68 +sub_08011D68: @ 0x08011D68 + push {r4, lr} + movs r4, #0 +_08011D6C: + lsls r2, r4, #0x18 + lsrs r2, r2, #0x18 + ldr r0, _08011D84 + movs r1, #0 + bl nullsub_13 + adds r4, #1 + cmp r4, #0x13 + ble _08011D6C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08011D84: .4byte 0x082C05A8 + thumb_func_end sub_08011D68 + + thumb_func_start sub_08011D88 +sub_08011D88: @ 0x08011D88 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + bl GetBlockReceivedStatus + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x1c + movs r2, #0x13 + movs r3, #2 + bl nullsub_5 + ldr r4, _08011E58 + ldr r0, [r4] + ldrb r0, [r0, #2] + movs r1, #0x14 + movs r2, #1 + movs r3, #1 + bl nullsub_5 + ldr r0, [r4] + ldrb r0, [r0, #3] + movs r1, #0x17 + movs r2, #1 + movs r3, #1 + bl nullsub_5 + ldr r0, _08011E5C + ldrb r0, [r0, #0xc] + cmp r0, #1 + bne _08011E64 + movs r6, #0 + adds r7, r4, #0 + movs r5, #0x14 +_08011DCC: + ldr r2, [r7] + ldrb r0, [r2, #7] + asrs r0, r6 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08011E0A + lsls r0, r6, #5 + adds r0, r2, r0 + ldrh r0, [r0, #0x18] + adds r4, r6, #3 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r2, r4, #0 + movs r3, #4 + bl nullsub_5 + ldr r0, [r7] + adds r0, r0, r5 + adds r0, #6 + movs r1, #6 + adds r2, r4, #0 + bl nullsub_13 + ldr r0, [r7] + adds r0, r0, r5 + adds r0, #0x15 + movs r1, #0x16 + adds r2, r4, #0 + bl nullsub_13 +_08011E0A: + adds r5, #0x20 + adds r6, #1 + cmp r6, #3 + ble _08011DCC + movs r6, #0 + ldr r0, _08011E5C + mov r8, r0 +_08011E18: + movs r5, #0 + adds r7, r6, #1 + lsls r0, r6, #3 + adds r2, r6, #0 + adds r2, #0xb + subs r0, r0, r6 + lsls r0, r0, #1 + mov r1, r8 + adds r1, #0x14 + adds r4, r0, r1 + lsls r6, r2, #0x18 +_08011E2E: + ldrb r0, [r4] + lsls r1, r5, #0x19 + lsrs r1, r1, #0x18 + lsrs r2, r6, #0x18 + movs r3, #2 + bl nullsub_5 + adds r4, #1 + adds r5, #1 + cmp r5, #0xd + ble _08011E2E + adds r6, r7, #0 + cmp r6, #3 + ble _08011E18 + ldr r0, _08011E60 + movs r1, #1 + movs r2, #0xf + bl nullsub_13 + b _08011F96 + .align 2, 0 +_08011E58: .4byte 0x03007630 +_08011E5C: .4byte 0x030050A0 +_08011E60: .4byte 0x082C05E4 +_08011E64: + ldr r1, [r4] + ldrb r0, [r1, #2] + cmp r0, #0 + beq _08011F00 + ldrb r0, [r1, #7] + cmp r0, #0 + beq _08011F00 + movs r6, #0 + movs r5, #0xc0 + lsls r5, r5, #0x12 +_08011E78: + lsrs r4, r5, #0x18 + movs r0, #0 + movs r1, #1 + adds r2, r4, #0 + movs r3, #4 + bl nullsub_5 + ldr r0, _08011EEC + movs r1, #6 + adds r2, r4, #0 + bl nullsub_13 + ldr r0, _08011EF0 + movs r1, #0x16 + adds r2, r4, #0 + bl nullsub_13 + movs r1, #0x80 + lsls r1, r1, #0x11 + adds r5, r5, r1 + adds r6, #1 + cmp r6, #3 + ble _08011E78 + ldr r5, _08011EF4 + ldr r1, [r5] + ldr r4, _08011EF8 + ldr r0, _08011EFC + adds r4, r4, r0 + ldrb r0, [r4] + lsls r0, r0, #5 + adds r1, r1, r0 + ldrh r0, [r1, #0x18] + movs r1, #1 + movs r2, #3 + movs r3, #4 + bl nullsub_5 + ldrb r1, [r4] + lsls r1, r1, #5 + adds r1, #0x14 + ldr r0, [r5] + adds r0, r0, r1 + adds r0, #6 + movs r1, #6 + movs r2, #3 + bl nullsub_13 + ldrb r1, [r4] + lsls r1, r1, #5 + adds r1, #0x14 + ldr r0, [r5] + adds r0, r0, r1 + adds r0, #0x15 + movs r1, #0x16 + movs r2, #3 + bl nullsub_13 + b _08011F96 + .align 2, 0 +_08011EEC: .4byte 0x082C05C7 +_08011EF0: .4byte 0x082C05D7 +_08011EF4: .4byte 0x03007630 +_08011EF8: .4byte 0x030050A0 +_08011EFC: .4byte 0x000008F6 +_08011F00: + movs r6, #0 + ldr r1, _08011FA0 + ldr r0, [r1] + ldrb r0, [r0, #8] + cmp r6, r0 + bge _08011F5C + adds r7, r1, #0 + movs r1, #0x14 + mov r8, r1 +_08011F12: + ldr r0, [r7] + lsls r5, r6, #5 + adds r1, r0, r5 + ldrb r0, [r1, #0x16] + cmp r0, #0xff + beq _08011F4E + ldrh r0, [r1, #0x18] + adds r4, r6, #3 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r1, #1 + adds r2, r4, #0 + movs r3, #4 + bl nullsub_5 + ldr r0, [r7] + adds r0, r0, r5 + ldrh r0, [r0, #0x14] + movs r1, #6 + adds r2, r4, #0 + movs r3, #4 + bl nullsub_5 + ldr r0, [r7] + add r0, r8 + adds r0, #0x15 + movs r1, #0x16 + adds r2, r4, #0 + bl nullsub_13 +_08011F4E: + movs r0, #0x20 + add r8, r0 + adds r6, #1 + ldr r0, [r7] + ldrb r0, [r0, #8] + cmp r6, r0 + blt _08011F12 +_08011F5C: + cmp r6, #3 + bgt _08011F96 + lsls r0, r6, #0x18 + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r5, r0, r1 +_08011F68: + lsrs r4, r5, #0x18 + movs r0, #0 + movs r1, #1 + adds r2, r4, #0 + movs r3, #4 + bl nullsub_5 + ldr r0, _08011FA4 + movs r1, #6 + adds r2, r4, #0 + bl nullsub_13 + ldr r0, _08011FA8 + movs r1, #0x16 + adds r2, r4, #0 + bl nullsub_13 + movs r0, #0x80 + lsls r0, r0, #0x11 + adds r5, r5, r0 + adds r6, #1 + cmp r6, #3 + ble _08011F68 +_08011F96: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08011FA0: .4byte 0x03007630 +_08011FA4: .4byte 0x082C05C7 +_08011FA8: .4byte 0x082C05D7 + thumb_func_end sub_08011D88 + + thumb_func_start sub_08011FAC +sub_08011FAC: @ 0x08011FAC + ldr r0, _08011FB8 + ldr r1, _08011FBC + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08011FB8: .4byte 0x030050A0 +_08011FBC: .4byte 0x000008D2 + thumb_func_end sub_08011FAC + + thumb_func_start sub_08011FC0 +sub_08011FC0: @ 0x08011FC0 + ldr r0, _08011FCC + ldr r1, _08011FD0 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08011FCC: .4byte 0x030050A0 +_08011FD0: .4byte 0x0000069E + thumb_func_end sub_08011FC0 + diff --git a/asm/list_menu.s b/asm/list_menu.s new file mode 100644 index 0000000..a4fd11f --- /dev/null +++ b/asm/list_menu.s @@ -0,0 +1,3160 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start Task_RedArrowCursor +Task_RedArrowCursor: @ 0x081AE130 + bx lr + .align 2, 0 + thumb_func_end Task_RedArrowCursor + + thumb_func_start DoMysteryGiftListMenu +DoMysteryGiftListMenu: @ 0x081AE134 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + mov ip, r0 + str r1, [sp] + ldr r0, [sp, #0x28] + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + mov sl, r6 + lsls r3, r3, #0x10 + lsrs r7, r3, #0x10 + str r7, [sp, #4] + lsls r0, r0, #0x10 + mov r8, r0 + lsrs r0, r0, #0x10 + mov sb, r0 + ldr r5, _081AE1C4 + ldrb r4, [r5, #4] + cmp r4, #1 + beq _081AE1CC + cmp r4, #1 + ble _081AE16A + cmp r4, #2 + beq _081AE230 +_081AE16A: + mov r0, ip + bl AddWindow + strb r0, [r5, #5] + cmp r6, #1 + beq _081AE188 + cmp r6, #2 + bne _081AE198 + ldrb r0, [r5, #5] + mov r1, sb + lsls r2, r1, #0x18 + lsrs r2, r2, #0x18 + adds r1, r7, #0 + bl LoadUserWindowBorderGfx +_081AE188: + ldrb r0, [r5, #5] + mov r3, r8 + lsrs r2, r3, #0x14 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r1, [sp, #4] + bl DrawTextBorderOuter +_081AE198: + ldr r0, _081AE1C8 + adds r2, r0, #0 + ldr r1, [sp] + ldm r1!, {r3, r4, r5} + stm r2!, {r3, r4, r5} + ldm r1!, {r3, r4, r5} + stm r2!, {r3, r4, r5} + ldr r4, _081AE1C4 + ldrb r1, [r4, #5] + strb r1, [r0, #0x10] + movs r1, #0 + movs r2, #0 + bl ListMenuInit + strb r0, [r4, #6] + ldrb r0, [r4, #5] + movs r1, #1 + bl CopyWindowToVram + movs r0, #1 + strb r0, [r4, #4] + b _081AE248 + .align 2, 0 +_081AE1C4: .4byte 0x0203CB50 +_081AE1C8: .4byte 0x03006050 +_081AE1CC: + ldrb r0, [r5, #6] + bl ListMenu_ProcessInput + str r0, [r5] + ldr r1, _081AE208 + ldrh r0, [r1, #0x2e] + ands r4, r0 + cmp r4, #0 + beq _081AE1E2 + movs r0, #2 + strb r0, [r5, #4] +_081AE1E2: + ldrh r1, [r1, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081AE1F6 + movs r0, #2 + rsbs r0, r0, #0 + str r0, [r5] + movs r0, #2 + strb r0, [r5, #4] +_081AE1F6: + ldrb r0, [r5, #4] + cmp r0, #2 + bne _081AE248 + cmp r6, #0 + bne _081AE20C + ldrb r0, [r5, #5] + bl ClearWindowTilemap + b _081AE21E + .align 2, 0 +_081AE208: .4byte 0x03002360 +_081AE20C: + mov r4, sl + cmp r4, #0 + blt _081AE21E + cmp r4, #2 + bgt _081AE21E + ldrb r0, [r5, #5] + movs r1, #0 + bl DrawStdWindowFrame +_081AE21E: + ldr r0, _081AE22C + ldrb r0, [r0, #5] + movs r1, #1 + bl CopyWindowToVram + b _081AE248 + .align 2, 0 +_081AE22C: .4byte 0x0203CB50 +_081AE230: + ldrb r0, [r5, #6] + movs r1, #0 + movs r2, #0 + bl DestroyListMenuTask + ldrb r0, [r5, #5] + bl RemoveWindow + movs r0, #0 + strb r0, [r5, #4] + ldr r0, [r5] + b _081AE24C +_081AE248: + movs r0, #1 + rsbs r0, r0, #0 +_081AE24C: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end DoMysteryGiftListMenu + + thumb_func_start ListMenuInit +ListMenuInit: @ 0x081AE25C + push {r4, r5, lr} + adds r5, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + bl ListMenuInitInternal + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldrb r0, [r5, #0x10] + bl PutWindowTilemap + ldrb r0, [r5, #0x10] + movs r1, #2 + bl CopyWindowToVram + adds r0, r4, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end ListMenuInit + + thumb_func_start ListMenuInitInRect +ListMenuInitInRect: @ 0x081AE288 + push {r4, r5, r6, r7, lr} + sub sp, #8 + adds r6, r0, #0 + adds r4, r1, #0 + adds r1, r2, #0 + adds r2, r3, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + bl ListMenuInitInternal + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldrb r0, [r4, #4] + cmp r0, #0xff + beq _081AE2C8 + adds r5, r4, #0 +_081AE2AC: + ldrb r0, [r6, #0x10] + ldrb r1, [r5] + ldrb r2, [r5, #1] + ldrb r3, [r5, #2] + ldrb r4, [r5, #3] + str r4, [sp] + ldrb r4, [r5, #4] + str r4, [sp, #4] + bl PutWindowRectTilemapOverridePalette + adds r5, #8 + ldrb r0, [r5, #4] + cmp r0, #0xff + bne _081AE2AC +_081AE2C8: + ldrb r0, [r6, #0x10] + movs r1, #2 + bl CopyWindowToVram + adds r0, r7, #0 + add sp, #8 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ListMenuInitInRect + + thumb_func_start ListMenu_ProcessInput +ListMenu_ProcessInput: @ 0x081AE2DC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _081AE308 + adds r3, r1, r0 + ldr r2, _081AE30C + ldrh r1, [r2, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081AE310 + ldrh r0, [r3, #0x18] + ldrh r1, [r3, #0x1a] + adds r0, r0, r1 + ldr r1, [r3] + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r0, [r0, #4] + b _081AE39A + .align 2, 0 +_081AE308: .4byte 0x03005B68 +_081AE30C: .4byte 0x03002360 +_081AE310: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081AE31E + movs r0, #2 + rsbs r0, r0, #0 + b _081AE39A +_081AE31E: + ldrh r1, [r2, #0x30] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _081AE332 + adds r0, r3, #0 + movs r1, #1 + movs r2, #1 + movs r3, #0 + b _081AE392 +_081AE332: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _081AE342 + adds r0, r3, #0 + movs r1, #1 + movs r2, #1 + b _081AE390 +_081AE342: + ldrb r0, [r3, #0x16] + lsrs r0, r0, #6 + cmp r0, #1 + beq _081AE358 + cmp r0, #1 + ble _081AE352 + cmp r0, #2 + beq _081AE364 +_081AE352: + movs r2, #0 + movs r0, #0 + b _081AE378 +_081AE358: + movs r0, #0x20 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + movs r0, #0x10 + b _081AE372 +_081AE364: + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + movs r0, #0x80 + lsls r0, r0, #1 +_081AE372: + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_081AE378: + cmp r2, #0 + beq _081AE386 + ldrb r2, [r3, #0xe] + adds r0, r3, #0 + movs r1, #1 + movs r3, #0 + b _081AE392 +_081AE386: + cmp r0, #0 + beq _081AE396 + ldrb r2, [r3, #0xe] + adds r0, r3, #0 + movs r1, #1 +_081AE390: + movs r3, #1 +_081AE392: + bl ListMenuChangeSelection +_081AE396: + movs r0, #1 + rsbs r0, r0, #0 +_081AE39A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ListMenu_ProcessInput + + thumb_func_start DestroyListMenuTask +DestroyListMenuTask: @ 0x081AE3A0 + push {r4, lr} + adds r3, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r4, r0, #0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _081AE3E0 + adds r1, r0, r1 + cmp r3, #0 + beq _081AE3BC + ldrh r0, [r1, #0x18] + strh r0, [r3] +_081AE3BC: + cmp r2, #0 + beq _081AE3C4 + ldrh r0, [r1, #0x1a] + strh r0, [r2] +_081AE3C4: + ldrb r0, [r1, #0x1e] + cmp r0, #0xff + beq _081AE3D4 + ldrb r1, [r1, #0x17] + lsrs r1, r1, #6 + subs r1, #2 + bl ListMenuRemoveCursorObject +_081AE3D4: + adds r0, r4, #0 + bl DestroyTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081AE3E0: .4byte 0x03005B68 + thumb_func_end DestroyListMenuTask + + thumb_func_start RedrawListMenu +RedrawListMenu: @ 0x081AE3E4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _081AE424 + adds r4, r4, r0 + ldrb r0, [r4, #0x10] + ldrb r2, [r4, #0x15] + lsls r2, r2, #0x1c + lsrs r1, r2, #4 + orrs r1, r2 + lsrs r1, r1, #0x18 + bl FillWindowPixelBuffer + ldrh r1, [r4, #0x18] + ldrh r3, [r4, #0xe] + adds r0, r4, #0 + movs r2, #0 + bl ListMenuPrintEntries + adds r0, r4, #0 + bl ListMenuDrawCursor + ldrb r0, [r4, #0x10] + movs r1, #2 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081AE424: .4byte 0x03005B68 + thumb_func_end RedrawListMenu + + thumb_func_start ChangeListMenuPals +ChangeListMenuPals: @ 0x081AE428 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _081AE468 + adds r4, r4, r0 + lsrs r1, r1, #0x14 + ldrb r6, [r4, #0x14] + movs r5, #0xf + adds r0, r5, #0 + ands r0, r6 + orrs r0, r1 + strb r0, [r4, #0x14] + ands r2, r5 + ldrb r1, [r4, #0x15] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + lsrs r3, r3, #0x14 + ands r0, r5 + orrs r0, r3 + strb r0, [r4, #0x15] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081AE468: .4byte 0x03005B68 + thumb_func_end ChangeListMenuPals + + thumb_func_start ChangeListMenuCoords +ChangeListMenuCoords: @ 0x081AE46C + push {r4, r5, lr} + adds r3, r1, #0 + adds r5, r2, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _081AE4A4 + adds r4, r4, r0 + ldrb r0, [r4, #0x10] + movs r1, #1 + adds r2, r3, #0 + bl SetWindowAttribute + ldrb r0, [r4, #0x10] + movs r1, #2 + adds r2, r5, #0 + bl SetWindowAttribute + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081AE4A4: .4byte 0x03005B68 + thumb_func_end ChangeListMenuCoords + + thumb_func_start ListMenuTestInput +ListMenuTestInput: @ 0x081AE4A8 + push {r4, r5, r6, r7, lr} + sub sp, #0x20 + mov ip, r2 + ldr r5, [sp, #0x34] + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + adds r4, r3, #0 + mov r3, sp + ldm r0!, {r2, r6, r7} + stm r3!, {r2, r6, r7} + ldm r0!, {r2, r6, r7} + stm r3!, {r2, r6, r7} + mov r0, sp + movs r3, #0 + strh r1, [r0, #0x18] + mov r1, ip + strh r1, [r0, #0x1a] + strb r3, [r0, #0x1c] + strb r3, [r0, #0x1d] + cmp r4, #0x40 + bne _081AE4DC + movs r1, #0 + movs r2, #1 + movs r3, #0 + bl ListMenuChangeSelection +_081AE4DC: + cmp r4, #0x80 + bne _081AE4EC + mov r0, sp + movs r1, #0 + movs r2, #1 + movs r3, #1 + bl ListMenuChangeSelection +_081AE4EC: + cmp r5, #0 + beq _081AE4F6 + mov r0, sp + ldrh r0, [r0, #0x18] + strh r0, [r5] +_081AE4F6: + ldr r2, [sp, #0x38] + cmp r2, #0 + beq _081AE502 + mov r0, sp + ldrh r0, [r0, #0x1a] + strh r0, [r2] +_081AE502: + movs r0, #1 + rsbs r0, r0, #0 + add sp, #0x20 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ListMenuTestInput + + thumb_func_start ListMenuGetCurrentItemArrayId +ListMenuGetCurrentItemArrayId: @ 0x081AE510 + push {lr} + adds r2, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _081AE534 + adds r1, r1, r0 + cmp r2, #0 + beq _081AE52E + ldrh r0, [r1, #0x1a] + ldrh r1, [r1, #0x18] + adds r0, r0, r1 + strh r0, [r2] +_081AE52E: + pop {r0} + bx r0 + .align 2, 0 +_081AE534: .4byte 0x03005B68 + thumb_func_end ListMenuGetCurrentItemArrayId + + thumb_func_start ListMenuGetScrollAndRow +ListMenuGetScrollAndRow: @ 0x081AE538 + push {lr} + adds r3, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _081AE560 + adds r1, r1, r0 + cmp r3, #0 + beq _081AE552 + ldrh r0, [r1, #0x18] + strh r0, [r3] +_081AE552: + cmp r2, #0 + beq _081AE55A + ldrh r0, [r1, #0x1a] + strh r0, [r2] +_081AE55A: + pop {r0} + bx r0 + .align 2, 0 +_081AE560: .4byte 0x03005B68 + thumb_func_end ListMenuGetScrollAndRow + + thumb_func_start ListMenuGetYCoordForPrintingArrowCursor +ListMenuGetYCoordForPrintingArrowCursor: @ 0x081AE564 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _081AE5A8 + adds r4, r4, r0 + ldrb r0, [r4, #0x17] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1a + movs r1, #1 + bl GetFontAttribute + ldrb r1, [r4, #0x16] + lsls r1, r1, #0x1a + lsrs r1, r1, #0x1d + adds r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #0x1a] + adds r2, r1, #0 + muls r2, r0, r2 + adds r1, r2, #0 + ldrb r0, [r4, #0x14] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081AE5A8: .4byte 0x03005B68 + thumb_func_end ListMenuGetYCoordForPrintingArrowCursor + + thumb_func_start ListMenuInitInternal +ListMenuInitInternal: @ 0x081AE5AC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + ldr r0, _081AE67C + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r0, r0, #2 + add r0, r8 + lsls r0, r0, #3 + ldr r1, _081AE680 + adds r7, r0, r1 + adds r0, r7, #0 + ldm r4!, {r1, r2, r3} + stm r0!, {r1, r2, r3} + ldm r4!, {r1, r2, r3} + stm r0!, {r1, r2, r3} + movs r1, #0 + strh r5, [r7, #0x18] + strh r6, [r7, #0x1a] + strb r1, [r7, #0x1c] + strb r1, [r7, #0x1d] + movs r0, #0xff + strb r0, [r7, #0x1e] + strb r1, [r7, #0x1f] + ldr r3, _081AE684 + ldrb r1, [r7, #0x14] + movs r5, #0xf + lsrs r1, r1, #4 + ldrb r4, [r3] + movs r2, #0x10 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r4 + orrs r0, r1 + strb r0, [r3] + ldrb r1, [r7, #0x15] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x18 + ands r0, r5 + orrs r0, r1 + strb r0, [r3] + ldrb r0, [r7, #0x15] + lsrs r0, r0, #4 + ands r5, r0 + ldrb r0, [r3, #1] + ands r2, r0 + orrs r2, r5 + strb r2, [r3, #1] + ldrb r1, [r7, #0x16] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x11 + ldr r0, [r3] + ldr r2, _081AE688 + ands r0, r2 + orrs r0, r1 + str r0, [r3] + ldrb r0, [r7, #0x17] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1a + strb r0, [r3, #3] + ldrh r0, [r7, #0xc] + ldrh r1, [r7, #0xe] + cmp r0, r1 + bhs _081AE644 + strh r0, [r7, #0xe] +_081AE644: + ldrb r0, [r7, #0x10] + ldrb r2, [r7, #0x15] + lsls r2, r2, #0x1c + lsrs r1, r2, #4 + orrs r1, r2 + lsrs r1, r1, #0x18 + bl FillWindowPixelBuffer + ldrh r1, [r7, #0x18] + ldrh r3, [r7, #0xe] + adds r0, r7, #0 + movs r2, #0 + bl ListMenuPrintEntries + adds r0, r7, #0 + bl ListMenuDrawCursor + adds r0, r7, #0 + movs r1, #1 + bl ListMenuCallSelectionChangedCallback + mov r0, r8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081AE67C: .4byte 0x081AE131 +_081AE680: .4byte 0x03005B68 +_081AE684: .4byte 0x03006040 +_081AE688: .4byte 0xFFFC0FFF + thumb_func_end ListMenuInitInternal + + thumb_func_start ListMenuPrint +ListMenuPrint: @ 0x081AE68C + push {r4, r5, r6, r7, lr} + sub sp, #0x18 + adds r4, r0, #0 + adds r6, r1, #0 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov ip, r3 + ldr r5, _081AE6F4 + ldrb r1, [r5, #3] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + beq _081AE6F8 + add r1, sp, #0x14 + ldr r2, [r5] + lsls r0, r2, #0x18 + lsrs r0, r0, #0x1c + movs r3, #0 + strb r0, [r1] + lsls r0, r2, #0x1c + lsrs r0, r0, #0x1c + strb r0, [r1, #1] + lsls r0, r2, #0x14 + lsrs r0, r0, #0x1c + strb r0, [r1, #2] + ldrb r0, [r4, #0x10] + lsls r1, r2, #1 + lsrs r1, r1, #0x19 + lsls r2, r2, #0xe + lsrs r2, r2, #0x1a + str r2, [sp] + str r3, [sp, #4] + add r2, sp, #0x14 + str r2, [sp, #8] + movs r2, #1 + rsbs r2, r2, #0 + str r2, [sp, #0xc] + str r6, [sp, #0x10] + adds r2, r7, #0 + mov r3, ip + bl AddTextPrinterParameterized4 + ldrb r1, [r5, #3] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #3] + b _081AE736 + .align 2, 0 +_081AE6F4: .4byte 0x03006040 +_081AE6F8: + add r2, sp, #0x14 + ldrb r1, [r4, #0x15] + lsls r0, r1, #0x1c + lsrs r0, r0, #0x1c + strb r0, [r2] + ldrb r0, [r4, #0x14] + lsrs r0, r0, #4 + strb r0, [r2, #1] + adds r0, r2, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1c + strb r1, [r0, #2] + ldrb r0, [r4, #0x10] + ldrb r1, [r4, #0x17] + lsls r1, r1, #0x1a + lsrs r1, r1, #0x1a + ldrb r2, [r4, #0x16] + lsls r2, r2, #0x1d + lsrs r2, r2, #0x1d + str r2, [sp] + str r3, [sp, #4] + add r2, sp, #0x14 + str r2, [sp, #8] + movs r2, #1 + rsbs r2, r2, #0 + str r2, [sp, #0xc] + str r6, [sp, #0x10] + adds r2, r7, #0 + mov r3, ip + bl AddTextPrinterParameterized4 +_081AE736: + add sp, #0x18 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ListMenuPrint + + thumb_func_start ListMenuPrintEntries +ListMenuPrintEntries: @ 0x081AE740 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r4, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sb, r1 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + str r2, [sp] + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + mov sl, r3 + ldrb r0, [r4, #0x17] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1a + movs r1, #1 + bl GetFontAttribute + ldrb r1, [r4, #0x16] + lsls r1, r1, #0x1a + lsrs r1, r1, #0x1d + adds r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + movs r0, #0 + mov r8, r0 + cmp r8, sl + bge _081AE7E8 +_081AE782: + ldr r0, [r4] + mov r2, sb + lsls r1, r2, #3 + adds r0, r1, r0 + ldr r2, [r0, #4] + movs r0, #3 + rsbs r0, r0, #0 + adds r5, r1, #0 + cmp r2, r0 + beq _081AE79A + ldrb r6, [r4, #0x12] + b _081AE79C +_081AE79A: + ldrb r6, [r4, #0x11] +_081AE79C: + ldr r0, [sp] + add r0, r8 + ldr r2, [sp, #4] + adds r1, r0, #0 + muls r1, r2, r1 + ldrb r0, [r4, #0x14] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + adds r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r7, r2, #0 + ldr r3, [r4, #8] + cmp r3, #0 + beq _081AE7C6 + ldrb r0, [r4, #0x10] + ldr r1, [r4] + adds r1, r5, r1 + ldr r1, [r1, #4] + bl _call_via_r3 +_081AE7C6: + ldr r0, [r4] + adds r0, r5, r0 + ldr r1, [r0] + adds r0, r4, #0 + adds r2, r6, #0 + adds r3, r7, #0 + bl ListMenuPrint + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + movs r0, #1 + add r8, r0 + cmp r8, sl + blt _081AE782 +_081AE7E8: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end ListMenuPrintEntries + + thumb_func_start ListMenuDrawCursor +ListMenuDrawCursor: @ 0x081AE7F8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + ldrb r0, [r6, #0x17] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1a + movs r1, #1 + bl GetFontAttribute + ldrb r1, [r6, #0x16] + lsls r1, r1, #0x1a + lsrs r1, r1, #0x1d + adds r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r6, #0x13] + mov r8, r1 + ldrh r1, [r6, #0x1a] + muls r1, r0, r1 + ldrb r0, [r6, #0x14] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + adds r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldrb r0, [r6, #0x17] + lsrs r0, r0, #6 + cmp r0, #1 + beq _081AE8E4 + cmp r0, #1 + bgt _081AE83E + cmp r0, #0 + beq _081AE848 + b _081AE8E4 +_081AE83E: + cmp r0, #2 + beq _081AE85C + cmp r0, #3 + beq _081AE8A4 + b _081AE8E4 +_081AE848: + ldr r1, _081AE858 + adds r0, r6, #0 + mov r2, r8 + adds r3, r7, #0 + bl ListMenuPrint + b _081AE8E4 + .align 2, 0 +_081AE858: .4byte 0x085C9421 +_081AE85C: + ldrb r0, [r6, #0x1e] + cmp r0, #0xff + bne _081AE86C + adds r0, r6, #0 + movs r1, #0 + bl ListMenuAddCursorObject + strb r0, [r6, #0x1e] +_081AE86C: + ldrb r5, [r6, #0x1e] + ldrb r0, [r6, #0x10] + movs r1, #1 + bl GetWindowAttribute + adds r4, r0, #0 + lsls r4, r4, #0x13 + ldr r0, _081AE8A0 + adds r4, r4, r0 + lsrs r4, r4, #0x10 + ldrb r0, [r6, #0x10] + movs r1, #2 + bl GetWindowAttribute + adds r2, r0, #0 + lsls r2, r2, #3 + adds r2, r2, r7 + subs r2, #1 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + movs r3, #0 + bl ListMenuUpdateCursorObject + b _081AE8E4 + .align 2, 0 +_081AE8A0: .4byte 0xFFFF0000 +_081AE8A4: + ldrb r0, [r6, #0x1e] + cmp r0, #0xff + bne _081AE8B4 + adds r0, r6, #0 + movs r1, #1 + bl ListMenuAddCursorObject + strb r0, [r6, #0x1e] +_081AE8B4: + ldrb r5, [r6, #0x1e] + ldrb r0, [r6, #0x10] + movs r1, #1 + bl GetWindowAttribute + adds r4, r0, #0 + lsls r4, r4, #3 + add r4, r8 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldrb r0, [r6, #0x10] + movs r1, #2 + bl GetWindowAttribute + adds r2, r0, #0 + lsls r2, r2, #3 + adds r2, r2, r7 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + movs r3, #1 + bl ListMenuUpdateCursorObject +_081AE8E4: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ListMenuDrawCursor + + thumb_func_start ListMenuAddCursorObject +ListMenuAddCursorObject: @ 0x081AE8F0 + push {r4, r5, lr} + sub sp, #0xc + adds r4, r0, #0 + adds r5, r1, #0 + mov r1, sp + movs r0, #0 + strb r0, [r1] + movs r0, #0xa0 + strb r0, [r1, #1] + ldrb r0, [r4, #0x10] + movs r1, #3 + bl GetWindowAttribute + mov r1, sp + lsls r0, r0, #3 + adds r0, #2 + strh r0, [r1, #2] + ldrb r0, [r4, #0x17] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1a + movs r1, #1 + bl GetFontAttribute + mov r1, sp + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #2 + strh r0, [r1, #4] + movs r0, #0x80 + lsls r0, r0, #7 + strh r0, [r1, #6] + ldr r0, _081AE94C + strh r0, [r1, #8] + movs r0, #0xf + strb r0, [r1, #0xa] + mov r0, sp + adds r1, r5, #0 + bl ListMenuAddCursorObjectInternal + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #0xc + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081AE94C: .4byte 0x0000FFFF + thumb_func_end ListMenuAddCursorObject + + thumb_func_start ListMenuErasePrintedCursor +ListMenuErasePrintedCursor: @ 0x081AE950 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + adds r7, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r8, r1 + ldrb r1, [r7, #0x17] + lsrs r0, r1, #6 + cmp r0, #0 + bne _081AE9CC + lsls r0, r1, #0x1a + lsrs r0, r0, #0x1a + movs r1, #1 + bl GetFontAttribute + adds r4, r0, #0 + ldrb r0, [r7, #0x16] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1d + adds r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldrb r0, [r7, #0x17] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1a + movs r1, #0 + bl GetMenuCursorDimensionByFont + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldrb r0, [r7, #0x17] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1a + movs r1, #1 + bl GetMenuCursorDimensionByFont + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r6, [r7, #0x10] + ldrb r2, [r7, #0x15] + lsls r2, r2, #0x1c + lsrs r1, r2, #4 + orrs r1, r2 + lsrs r1, r1, #0x18 + ldrb r2, [r7, #0x13] + mov r3, r8 + muls r3, r4, r3 + adds r4, r3, #0 + ldrb r3, [r7, #0x14] + lsls r3, r3, #0x1c + lsrs r3, r3, #0x1c + adds r3, r3, r4 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + str r5, [sp] + str r0, [sp, #4] + adds r0, r6, #0 + bl FillWindowPixelRect +_081AE9CC: + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end ListMenuErasePrintedCursor + + thumb_func_start ListMenuUpdateSelectedRowIndexAndScrollOffset +ListMenuUpdateSelectedRowIndexAndScrollOffset: @ 0x081AE9D8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r1, r1, #0x18 + ldrh r3, [r4, #0x1a] + ldrh r5, [r4, #0x18] + cmp r1, #0 + bne _081AEA4C + ldrh r0, [r4, #0xe] + cmp r0, #1 + bne _081AE9F0 + movs r2, #0 + b _081AEA02 +_081AE9F0: + ldrh r0, [r4, #0xe] + lsrs r2, r0, #1 + movs r1, #1 + ands r1, r0 + adds r2, r2, r1 + subs r0, r0, r2 + subs r0, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 +_081AEA02: + cmp r5, #0 + bne _081AEA28 + cmp r3, #0 + beq _081AEA8E + ldr r1, [r4] + movs r2, #3 + rsbs r2, r2, #0 +_081AEA10: + subs r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + adds r0, r5, r3 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r0, [r0, #4] + cmp r0, r2 + bne _081AEA92 + cmp r3, #0 + bne _081AEA10 + b _081AEA8E +_081AEA28: + cmp r3, r2 + bls _081AEA48 + ldr r1, [r4] + movs r6, #3 + rsbs r6, r6, #0 +_081AEA32: + subs r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + adds r0, r5, r3 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r0, [r0, #4] + cmp r0, r6 + bne _081AEA92 + cmp r3, r2 + bhi _081AEA32 +_081AEA48: + subs r0, r5, #1 + b _081AEABA +_081AEA4C: + ldrh r0, [r4, #0xe] + cmp r0, #1 + bne _081AEA56 + movs r2, #0 + b _081AEA60 +_081AEA56: + ldrh r0, [r4, #0xe] + lsrs r2, r0, #1 + movs r1, #1 + ands r1, r0 + adds r2, r2, r1 +_081AEA60: + adds r1, r0, #0 + ldrh r0, [r4, #0xc] + subs r0, r0, r1 + cmp r5, r0 + bne _081AEA98 + subs r0, r1, #1 + cmp r3, r0 + bge _081AEA8E + ldr r2, [r4] + movs r6, #3 + rsbs r6, r6, #0 + adds r1, r0, #0 +_081AEA78: + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + adds r0, r5, r3 + lsls r0, r0, #3 + adds r0, r0, r2 + ldr r0, [r0, #4] + cmp r0, r6 + bne _081AEA92 + cmp r3, r1 + blt _081AEA78 +_081AEA8E: + movs r0, #0 + b _081AEAC0 +_081AEA92: + strh r3, [r4, #0x1a] + movs r0, #1 + b _081AEAC0 +_081AEA98: + cmp r3, r2 + bhs _081AEAB8 + ldr r1, [r4] + movs r6, #3 + rsbs r6, r6, #0 +_081AEAA2: + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + adds r0, r5, r3 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r0, [r0, #4] + cmp r0, r6 + bne _081AEA92 + cmp r3, r2 + blo _081AEAA2 +_081AEAB8: + adds r0, r5, #1 +_081AEABA: + strh r2, [r4, #0x1a] + strh r0, [r4, #0x18] + movs r0, #2 +_081AEAC0: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ListMenuUpdateSelectedRowIndexAndScrollOffset + + thumb_func_start ListMenuScroll +ListMenuScroll: @ 0x081AEAC8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + adds r6, r0, #0 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + adds r7, r5, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + ldrh r0, [r6, #0xe] + cmp r5, r0 + blo _081AEB02 + ldrb r0, [r6, #0x10] + ldrb r2, [r6, #0x15] + lsls r2, r2, #0x1c + lsrs r1, r2, #4 + orrs r1, r2 + lsrs r1, r1, #0x18 + bl FillWindowPixelBuffer + ldrh r1, [r6, #0x18] + ldrh r3, [r6, #0xe] + adds r0, r6, #0 + movs r2, #0 + bl ListMenuPrintEntries + b _081AEBF2 +_081AEB02: + ldrb r0, [r6, #0x17] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1a + movs r1, #1 + bl GetFontAttribute + ldrb r1, [r6, #0x16] + lsls r1, r1, #0x1a + lsrs r1, r1, #0x1d + adds r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + mov r1, r8 + cmp r1, #0 + bne _081AEB94 + ldrb r0, [r6, #0x10] + adds r2, r5, #0 + muls r2, r4, r2 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r1, [r6, #0x15] + lsls r1, r1, #0x1c + lsrs r3, r1, #4 + orrs r3, r1 + lsrs r3, r3, #0x18 + movs r1, #1 + bl ScrollWindow + ldrh r1, [r6, #0x18] + adds r0, r6, #0 + movs r2, #0 + adds r3, r5, #0 + bl ListMenuPrintEntries + ldrh r0, [r6, #0xe] + adds r1, r0, #0 + muls r1, r4, r1 + adds r0, r1, #0 + ldrb r4, [r6, #0x14] + lsls r4, r4, #0x1c + lsrs r4, r4, #0x1c + adds r4, r4, r0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldrb r0, [r6, #0x10] + movs r1, #3 + bl GetWindowAttribute + adds r5, r0, #0 + lsls r5, r5, #0x13 + lsrs r5, r5, #0x10 + ldrb r0, [r6, #0x10] + movs r1, #4 + bl GetWindowAttribute + lsls r0, r0, #3 + subs r0, r0, r4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrb r3, [r6, #0x10] + ldrb r2, [r6, #0x15] + lsls r2, r2, #0x1c + lsrs r1, r2, #4 + orrs r1, r2 + lsrs r1, r1, #0x18 + str r5, [sp] + str r0, [sp, #4] + adds r0, r3, #0 + movs r2, #0 + adds r3, r4, #0 + bl FillWindowPixelRect + b _081AEBF2 +_081AEB94: + ldrb r0, [r6, #0x10] + adds r2, r7, #0 + muls r2, r4, r2 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r1, [r6, #0x15] + lsls r1, r1, #0x1c + lsrs r3, r1, #4 + orrs r3, r1 + lsrs r3, r3, #0x18 + movs r1, #0 + bl ScrollWindow + ldrh r2, [r6, #0xe] + subs r2, r2, r7 + ldrh r1, [r6, #0x18] + adds r1, r1, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + adds r0, r6, #0 + adds r3, r7, #0 + bl ListMenuPrintEntries + ldrb r0, [r6, #0x10] + movs r1, #3 + bl GetWindowAttribute + lsls r0, r0, #0x13 + lsrs r0, r0, #0x10 + ldrb r3, [r6, #0x10] + ldrb r2, [r6, #0x15] + lsls r2, r2, #0x1c + lsrs r1, r2, #4 + orrs r1, r2 + lsrs r1, r1, #0x18 + str r0, [sp] + ldrb r0, [r6, #0x14] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + str r0, [sp, #4] + adds r0, r3, #0 + movs r2, #0 + movs r3, #0 + bl FillWindowPixelRect +_081AEBF2: + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ListMenuScroll + + thumb_func_start ListMenuChangeSelection +ListMenuChangeSelection: @ 0x081AEC00 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov sb, r3 + ldrh r0, [r4, #0x1a] + mov sl, r0 + movs r7, #0 + movs r5, #0 + movs r0, #0 + cmp r7, r8 + bhs _081AEC68 +_081AEC2E: + adds r6, r0, #1 + b _081AEC4E +_081AEC32: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldrh r0, [r4, #0x18] + ldrh r1, [r4, #0x1a] + adds r0, r0, r1 + ldr r1, [r4] + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, [r0, #4] + movs r0, #3 + rsbs r0, r0, #0 + cmp r1, r0 + bne _081AEC60 +_081AEC4E: + adds r0, r4, #0 + mov r1, sb + bl ListMenuUpdateSelectedRowIndexAndScrollOffset + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + orrs r5, r0 + cmp r0, #2 + beq _081AEC32 +_081AEC60: + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r8 + blo _081AEC2E +_081AEC68: + ldr r0, [sp] + cmp r0, #0 + beq _081AECC6 + cmp r5, #1 + beq _081AEC7E + cmp r5, #1 + ble _081AEC7A + cmp r5, #3 + ble _081AEC9E +_081AEC7A: + movs r0, #1 + b _081AECC8 +_081AEC7E: + adds r0, r4, #0 + mov r1, sl + bl ListMenuErasePrintedCursor + adds r0, r4, #0 + bl ListMenuDrawCursor + adds r0, r4, #0 + movs r1, #0 + bl ListMenuCallSelectionChangedCallback + ldrb r0, [r4, #0x10] + movs r1, #2 + bl CopyWindowToVram + b _081AECC6 +_081AEC9E: + adds r0, r4, #0 + mov r1, sl + bl ListMenuErasePrintedCursor + adds r0, r4, #0 + adds r1, r7, #0 + mov r2, sb + bl ListMenuScroll + adds r0, r4, #0 + bl ListMenuDrawCursor + adds r0, r4, #0 + movs r1, #0 + bl ListMenuCallSelectionChangedCallback + ldrb r0, [r4, #0x10] + movs r1, #2 + bl CopyWindowToVram +_081AECC6: + movs r0, #0 +_081AECC8: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end ListMenuChangeSelection + + thumb_func_start ListMenuCallSelectionChangedCallback +ListMenuCallSelectionChangedCallback: @ 0x081AECD8 + push {r4, lr} + adds r2, r0, #0 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + ldr r3, [r2, #4] + cmp r3, #0 + beq _081AECFA + ldrh r0, [r2, #0x18] + ldrh r1, [r2, #0x1a] + adds r0, r0, r1 + ldr r1, [r2] + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r0, [r0, #4] + adds r1, r4, #0 + bl _call_via_r3 +_081AECFA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end ListMenuCallSelectionChangedCallback + + thumb_func_start ListMenuOverrideSetColors +ListMenuOverrideSetColors: @ 0x081AED00 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r6, _081AED4C + movs r5, #0xf + ands r0, r5 + ldrb r3, [r6] + mov r8, r3 + movs r4, #0x10 + rsbs r4, r4, #0 + adds r3, r4, #0 + mov r7, r8 + ands r3, r7 + orrs r3, r0 + lsrs r1, r1, #0x14 + ands r3, r5 + orrs r3, r1 + strb r3, [r6] + ands r2, r5 + ldrb r0, [r6, #1] + ands r4, r0 + orrs r4, r2 + strb r4, [r6, #1] + ldrb r0, [r6, #3] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r6, #3] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081AED4C: .4byte 0x03006040 + thumb_func_end ListMenuOverrideSetColors + + thumb_func_start ListMenuDefaultCursorMoveFunc +ListMenuDefaultCursorMoveFunc: @ 0x081AED50 + push {lr} + lsls r1, r1, #0x18 + cmp r1, #0 + bne _081AED5E + movs r0, #5 + bl PlaySE +_081AED5E: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ListMenuDefaultCursorMoveFunc + + thumb_func_start ListMenuGetUnkIndicatorsStructFields +ListMenuGetUnkIndicatorsStructFields: @ 0x081AED64 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _081AED88 + adds r2, r1, r0 + cmp r3, #0x10 + bhi _081AEE2C + lsls r0, r3, #2 + ldr r1, _081AED8C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081AED88: .4byte 0x03005B68 +_081AED8C: .4byte 0x081AED90 +_081AED90: @ jump table + .4byte _081AEDD4 @ case 0 + .4byte _081AEDD4 @ case 1 + .4byte _081AEDD8 @ case 2 + .4byte _081AEDDC @ case 3 + .4byte _081AEDE0 @ case 4 + .4byte _081AEDE4 @ case 5 + .4byte _081AEDE8 @ case 6 + .4byte _081AEDEC @ case 7 + .4byte _081AEDF0 @ case 8 + .4byte _081AEDF4 @ case 9 + .4byte _081AEDFA @ case 10 + .4byte _081AEE02 @ case 11 + .4byte _081AEE08 @ case 12 + .4byte _081AEE10 @ case 13 + .4byte _081AEE18 @ case 14 + .4byte _081AEE1E @ case 15 + .4byte _081AEE26 @ case 16 +_081AEDD4: + ldr r0, [r2, #4] + b _081AEE30 +_081AEDD8: + ldrh r0, [r2, #0xc] + b _081AEE30 +_081AEDDC: + ldrh r0, [r2, #0xe] + b _081AEE30 +_081AEDE0: + ldrb r0, [r2, #0x10] + b _081AEE30 +_081AEDE4: + ldrb r0, [r2, #0x11] + b _081AEE30 +_081AEDE8: + ldrb r0, [r2, #0x12] + b _081AEE30 +_081AEDEC: + ldrb r0, [r2, #0x13] + b _081AEE30 +_081AEDF0: + ldrb r0, [r2, #0x14] + b _081AEDFC +_081AEDF4: + ldrb r0, [r2, #0x14] + lsrs r0, r0, #4 + b _081AEE30 +_081AEDFA: + ldrb r0, [r2, #0x15] +_081AEDFC: + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + b _081AEE30 +_081AEE02: + ldrb r0, [r2, #0x15] + lsrs r0, r0, #4 + b _081AEE30 +_081AEE08: + ldrb r0, [r2, #0x16] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1d + b _081AEE30 +_081AEE10: + ldrb r0, [r2, #0x16] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1d + b _081AEE30 +_081AEE18: + ldrb r0, [r2, #0x16] + lsrs r0, r0, #6 + b _081AEE30 +_081AEE1E: + ldrb r0, [r2, #0x17] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1a + b _081AEE30 +_081AEE26: + ldrb r0, [r2, #0x17] + lsrs r0, r0, #6 + b _081AEE30 +_081AEE2C: + movs r0, #1 + rsbs r0, r0, #0 +_081AEE30: + pop {r1} + bx r1 + thumb_func_end ListMenuGetUnkIndicatorsStructFields + + thumb_func_start ListMenuSetUnkIndicatorsStructField +ListMenuSetUnkIndicatorsStructField: @ 0x081AEE34 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _081AEE58 + adds r3, r1, r0 + cmp r4, #0x10 + bhi _081AEF34 + lsls r0, r4, #2 + ldr r1, _081AEE5C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081AEE58: .4byte 0x03005B68 +_081AEE5C: .4byte 0x081AEE60 +_081AEE60: @ jump table + .4byte _081AEEA4 @ case 0 + .4byte _081AEEA4 @ case 1 + .4byte _081AEEA8 @ case 2 + .4byte _081AEEAC @ case 3 + .4byte _081AEEB0 @ case 4 + .4byte _081AEEB4 @ case 5 + .4byte _081AEEB8 @ case 6 + .4byte _081AEEBC @ case 7 + .4byte _081AEEC0 @ case 8 + .4byte _081AEECC @ case 9 + .4byte _081AEEDA @ case 10 + .4byte _081AEEE6 @ case 11 + .4byte _081AEEF4 @ case 12 + .4byte _081AEF00 @ case 13 + .4byte _081AEF0E @ case 14 + .4byte _081AEF1C @ case 15 + .4byte _081AEF28 @ case 16 +_081AEEA4: + str r2, [r3, #4] + b _081AEF34 +_081AEEA8: + strh r2, [r3, #0xc] + b _081AEF34 +_081AEEAC: + strh r2, [r3, #0xe] + b _081AEF34 +_081AEEB0: + strb r2, [r3, #0x10] + b _081AEF34 +_081AEEB4: + strb r2, [r3, #0x11] + b _081AEF34 +_081AEEB8: + strb r2, [r3, #0x12] + b _081AEF34 +_081AEEBC: + strb r2, [r3, #0x13] + b _081AEF34 +_081AEEC0: + movs r0, #0xf + ands r2, r0 + ldrb r1, [r3, #0x14] + movs r0, #0x10 + rsbs r0, r0, #0 + b _081AEED2 +_081AEECC: + lsls r2, r2, #4 + ldrb r1, [r3, #0x14] + movs r0, #0xf +_081AEED2: + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #0x14] + b _081AEF34 +_081AEEDA: + movs r0, #0xf + ands r2, r0 + ldrb r1, [r3, #0x15] + movs r0, #0x10 + rsbs r0, r0, #0 + b _081AEEEC +_081AEEE6: + lsls r2, r2, #4 + ldrb r1, [r3, #0x15] + movs r0, #0xf +_081AEEEC: + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #0x15] + b _081AEF34 +_081AEEF4: + movs r0, #7 + ands r2, r0 + ldrb r1, [r3, #0x16] + movs r0, #8 + rsbs r0, r0, #0 + b _081AEF14 +_081AEF00: + movs r0, #7 + ands r2, r0 + lsls r2, r2, #3 + ldrb r1, [r3, #0x16] + movs r0, #0x39 + rsbs r0, r0, #0 + b _081AEF14 +_081AEF0E: + lsls r2, r2, #6 + ldrb r1, [r3, #0x16] + movs r0, #0x3f +_081AEF14: + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #0x16] + b _081AEF34 +_081AEF1C: + movs r0, #0x3f + ands r2, r0 + ldrb r1, [r3, #0x17] + movs r0, #0x40 + rsbs r0, r0, #0 + b _081AEF2E +_081AEF28: + lsls r2, r2, #6 + ldrb r1, [r3, #0x17] + movs r0, #0x3f +_081AEF2E: + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #0x17] +_081AEF34: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ListMenuSetUnkIndicatorsStructField + + thumb_func_start SpriteCallback_ScrollIndicatorArrow +SpriteCallback_ScrollIndicatorArrow: @ 0x081AEF3C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _081AEF4E + cmp r0, #1 + beq _081AEF62 + b _081AEFBC +_081AEF4E: + ldrh r1, [r4, #0x30] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + b _081AEFBC +_081AEF62: + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _081AEF72 + cmp r0, #1 + beq _081AEF98 + ldrh r2, [r4, #0x38] + b _081AEFB6 +_081AEF72: + movs r0, #0x34 + ldrsh r3, [r4, r0] + ldr r1, _081AEF94 + ldrh r2, [r4, #0x38] + lsls r0, r2, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + muls r0, r3, r0 + cmp r0, #0 + bge _081AEF8C + adds r0, #0xff +_081AEF8C: + asrs r0, r0, #8 + strh r0, [r4, #0x24] + b _081AEFB6 + .align 2, 0 +_081AEF94: .4byte 0x082FA8CC +_081AEF98: + movs r0, #0x34 + ldrsh r3, [r4, r0] + ldr r1, _081AEFC4 + ldrh r2, [r4, #0x38] + lsls r0, r2, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + muls r0, r3, r0 + cmp r0, #0 + bge _081AEFB2 + adds r0, #0xff +_081AEFB2: + asrs r0, r0, #8 + strh r0, [r4, #0x26] +_081AEFB6: + ldrh r0, [r4, #0x36] + adds r0, r2, r0 + strh r0, [r4, #0x38] +_081AEFBC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081AEFC4: .4byte 0x082FA8CC + thumb_func_end SpriteCallback_ScrollIndicatorArrow + + thumb_func_start AddScrollIndicatorArrowObject +AddScrollIndicatorArrowObject: @ 0x081AEFC8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x18 + adds r6, r0, #0 + ldr r5, [sp, #0x30] + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov r8, r6 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + mov ip, r5 + mov r4, sp + ldr r0, _081AF04C + ldm r0!, {r5, r6, r7} + stm r4!, {r5, r6, r7} + ldm r0!, {r5, r6, r7} + stm r4!, {r5, r6, r7} + mov r0, sp + movs r4, #0 + strh r3, [r0] + mov r3, ip + strh r3, [r0, #2] + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081AF050 + lsls r3, r0, #4 + adds r3, r3, r0 + lsls r3, r3, #2 + adds r3, r3, r1 + adds r5, r3, #0 + adds r5, #0x3e + ldrb r1, [r5] + movs r2, #4 + orrs r1, r2 + strb r1, [r5] + strh r4, [r3, #0x2e] + ldr r1, _081AF054 + mov r5, r8 + lsls r6, r5, #2 + adds r6, r6, r1 + ldrb r2, [r6] + lsls r1, r2, #0x1c + lsrs r1, r1, #0x1c + strh r1, [r3, #0x30] + lsrs r2, r2, #4 + strh r2, [r3, #0x32] + ldrb r1, [r6, #1] + strh r1, [r3, #0x34] + ldrh r1, [r6, #2] + strh r1, [r3, #0x36] + strh r4, [r3, #0x38] + add sp, #0x18 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081AF04C: .4byte 0x085DFAFC +_081AF050: .4byte 0x020205AC +_081AF054: .4byte 0x085DFAB4 + thumb_func_end AddScrollIndicatorArrowObject + + thumb_func_start AddScrollIndicatorArrowPair +AddScrollIndicatorArrowPair: @ 0x081AF058 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x14 + adds r6, r0, #0 + mov sb, r1 + ldr r0, _081AF0A4 + str r0, [sp, #4] + ldr r5, _081AF0A8 + ldr r0, [sp, #8] + ands r0, r5 + movs r1, #0x80 + lsls r1, r1, #1 + orrs r0, r1 + ldrh r1, [r6, #0xa] + lsls r1, r1, #0x10 + ldr r4, _081AF0AC + ands r0, r4 + orrs r0, r1 + str r0, [sp, #8] + add r0, sp, #4 + bl LoadCompressedSpriteSheet + ldrh r2, [r6, #0xc] + cmp r2, r4 + bne _081AF0B4 + ldr r0, _081AF0B0 + ldrb r1, [r6, #0xe] + lsls r1, r1, #0x14 + movs r2, #0x80 + lsls r2, r2, #0x11 + adds r1, r1, r2 + lsrs r1, r1, #0x10 + movs r2, #0x20 + bl LoadPalette + b _081AF0C6 + .align 2, 0 +_081AF0A4: .4byte 0x085DFB80 +_081AF0A8: .4byte 0xFFFF0000 +_081AF0AC: .4byte 0x0000FFFF +_081AF0B0: .4byte 0x085DFB60 +_081AF0B4: + ldr r0, _081AF164 + str r0, [sp, #0xc] + add r0, sp, #0xc + ldr r1, [r0, #4] + ands r1, r5 + orrs r1, r2 + str r1, [r0, #4] + bl LoadSpritePalette +_081AF0C6: + ldr r0, _081AF168 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r0, r0, #2 + add r0, r8 + lsls r0, r0, #3 + ldr r1, _081AF16C + adds r7, r0, r1 + movs r0, #0 + strb r0, [r7] + mov r0, sb + str r0, [r7, #4] + ldrh r0, [r6, #6] + strh r0, [r7, #8] + ldrh r0, [r6, #8] + strh r0, [r7, #0xa] + ldrh r0, [r6, #0xa] + strh r0, [r7, #0xe] + ldrh r0, [r6, #0xc] + strh r0, [r7, #0x10] + ldrb r0, [r6] + ldrb r1, [r6, #1] + ldrb r2, [r6, #2] + ldrh r3, [r6, #0xa] + ldrh r4, [r6, #0xc] + str r4, [sp] + bl AddScrollIndicatorArrowObject + strb r0, [r7, #0xc] + ldrb r0, [r6, #3] + ldrb r1, [r6, #4] + ldrb r2, [r6, #5] + ldrh r3, [r6, #0xa] + ldrh r4, [r6, #0xc] + str r4, [sp] + bl AddScrollIndicatorArrowObject + strb r0, [r7, #0xd] + ldrh r1, [r6, #0xc] + ldr r0, _081AF170 + cmp r1, r0 + bne _081AF154 + ldr r5, _081AF174 + ldrb r0, [r7, #0xc] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrb r3, [r6, #0xe] + lsls r3, r3, #4 + ldrb r4, [r1, #5] + movs r2, #0xf + adds r0, r2, #0 + ands r0, r4 + orrs r0, r3 + strb r0, [r1, #5] + ldrb r1, [r7, #0xd] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r1, [r6, #0xe] + lsls r1, r1, #4 + ldrb r3, [r0, #5] + ands r2, r3 + orrs r2, r1 + strb r2, [r0, #5] +_081AF154: + mov r0, r8 + add sp, #0x14 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081AF164: .4byte 0x085DFB60 +_081AF168: .4byte 0x081AF1DD +_081AF16C: .4byte 0x03005B68 +_081AF170: .4byte 0x0000FFFF +_081AF174: .4byte 0x020205AC + thumb_func_end AddScrollIndicatorArrowPair + + thumb_func_start AddScrollIndicatorArrowPairParameterized +AddScrollIndicatorArrowPairParameterized: @ 0x081AF178 + push {r4, lr} + adds r4, r1, #0 + subs r0, #2 + cmp r0, #1 + bhi _081AF19C + ldr r0, _081AF198 + movs r1, #2 + strb r1, [r0] + strb r4, [r0, #1] + strb r2, [r0, #2] + movs r1, #3 + strb r1, [r0, #3] + strb r4, [r0, #4] + strb r3, [r0, #5] + b _081AF1AE + .align 2, 0 +_081AF198: .4byte 0x0203CB58 +_081AF19C: + ldr r0, _081AF1D8 + movs r1, #0 + strb r1, [r0] + strb r2, [r0, #1] + strb r4, [r0, #2] + movs r1, #1 + strb r1, [r0, #3] + strb r3, [r0, #4] + strb r4, [r0, #5] +_081AF1AE: + adds r2, r0, #0 + movs r1, #0 + movs r0, #0 + strh r0, [r2, #6] + ldr r0, [sp, #8] + strh r0, [r2, #8] + ldr r0, [sp, #0xc] + strh r0, [r2, #0xa] + ldr r0, [sp, #0x10] + strh r0, [r2, #0xc] + strb r1, [r2, #0xe] + adds r0, r2, #0 + ldr r1, [sp, #0x14] + bl AddScrollIndicatorArrowPair + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081AF1D8: .4byte 0x0203CB58 + thumb_func_end AddScrollIndicatorArrowPairParameterized + + thumb_func_start Task_ScrollIndicatorArrowPair +Task_ScrollIndicatorArrowPair: @ 0x081AF1DC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _081AF214 + adds r4, r1, r0 + ldr r0, [r4, #4] + ldrh r5, [r0] + ldrh r0, [r4, #8] + cmp r5, r0 + bne _081AF220 + ldr r0, _081AF218 + cmp r5, r0 + beq _081AF220 + ldr r3, _081AF21C + ldrb r1, [r4, #0xc] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + b _081AF236 + .align 2, 0 +_081AF214: .4byte 0x03005B68 +_081AF218: .4byte 0x0000FFFF +_081AF21C: .4byte 0x020205AC +_081AF220: + ldr r3, _081AF254 + ldrb r1, [r4, #0xc] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 +_081AF236: + strb r1, [r0] + ldrh r0, [r4, #0xa] + cmp r5, r0 + bne _081AF258 + ldrb r1, [r4, #0xd] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + b _081AF26C + .align 2, 0 +_081AF254: .4byte 0x020205AC +_081AF258: + ldrb r1, [r4, #0xd] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 +_081AF26C: + strb r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end Task_ScrollIndicatorArrowPair + + thumb_func_start Task_ScrollIndicatorArrowPairOnMainMenu +Task_ScrollIndicatorArrowPairOnMainMenu: @ 0x081AF274 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _081AF2B8 + adds r4, r1, r0 + movs r1, #0x1e + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _081AF2C0 + ldr r3, _081AF2BC + ldrb r1, [r4, #0xc] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + ldrb r1, [r4, #0xd] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + b _081AF2EA + .align 2, 0 +_081AF2B8: .4byte 0x03005B68 +_081AF2BC: .4byte 0x020205AC +_081AF2C0: + ldr r3, _081AF2F4 + ldrb r1, [r4, #0xc] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r4, #0xd] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 +_081AF2EA: + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081AF2F4: .4byte 0x020205AC + thumb_func_end Task_ScrollIndicatorArrowPairOnMainMenu + + thumb_func_start RemoveScrollIndicatorArrowPair +RemoveScrollIndicatorArrowPair: @ 0x081AF2F8 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r0, #0 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _081AF34C + adds r5, r0, r1 + ldrh r0, [r5, #0xe] + ldr r4, _081AF350 + cmp r0, r4 + beq _081AF316 + bl FreeSpriteTilesByTag +_081AF316: + ldrh r0, [r5, #0x10] + cmp r0, r4 + beq _081AF320 + bl FreeSpritePaletteByTag +_081AF320: + ldrb r1, [r5, #0xc] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _081AF354 + adds r0, r0, r4 + bl DestroySprite + ldrb r1, [r5, #0xd] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + adds r0, r6, #0 + bl DestroyTask + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081AF34C: .4byte 0x03005B68 +_081AF350: .4byte 0x0000FFFF +_081AF354: .4byte 0x020205AC + thumb_func_end RemoveScrollIndicatorArrowPair + + thumb_func_start ListMenuAddCursorObjectInternal +ListMenuAddCursorObjectInternal: @ 0x081AF358 + push {lr} + cmp r1, #0 + beq _081AF362 + cmp r1, #1 + beq _081AF368 +_081AF362: + bl ListMenuAddRedOutlineCursorObject + b _081AF36C +_081AF368: + bl ListMenuAddRedArrowCursorObject +_081AF36C: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + thumb_func_end ListMenuAddCursorObjectInternal + + thumb_func_start ListMenuUpdateCursorObject +ListMenuUpdateCursorObject: @ 0x081AF374 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + cmp r3, #0 + beq _081AF38C + cmp r3, #1 + beq _081AF392 + b _081AF396 +_081AF38C: + bl ListMenuUpdateRedOutlineCursorObject + b _081AF396 +_081AF392: + bl ListMenuUpdateRedArrowCursorObject +_081AF396: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ListMenuUpdateCursorObject + + thumb_func_start ListMenuRemoveCursorObject +ListMenuRemoveCursorObject: @ 0x081AF39C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r1, #0 + beq _081AF3AC + cmp r1, #1 + beq _081AF3B2 + b _081AF3B6 +_081AF3AC: + bl ListMenuRemoveRedOutlineCursorObject + b _081AF3B6 +_081AF3B2: + bl ListMenuRemoveRedArrowCursorObject +_081AF3B6: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ListMenuRemoveCursorObject + + thumb_func_start Task_RedOutlineCursor +Task_RedOutlineCursor: @ 0x081AF3BC + bx lr + .align 2, 0 + thumb_func_end Task_RedOutlineCursor + + thumb_func_start ListMenuGetRedOutlineCursorSpriteCount +ListMenuGetRedOutlineCursorSpriteCount: @ 0x081AF3C0 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r3, #4 + cmp r0, #0x10 + bls _081AF3E0 + movs r2, #8 + subs r0, #8 + cmp r2, r0 + bge _081AF3E0 +_081AF3D8: + adds r3, #2 + adds r2, #8 + cmp r2, r0 + blt _081AF3D8 +_081AF3E0: + cmp r1, #0x10 + bls _081AF3F4 + movs r2, #8 + subs r1, #8 + cmp r2, r1 + bge _081AF3F4 +_081AF3EC: + adds r3, #2 + adds r2, #8 + cmp r2, r1 + blt _081AF3EC +_081AF3F4: + lsls r0, r3, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + thumb_func_end ListMenuGetRedOutlineCursorSpriteCount + + thumb_func_start ListMenuSetUpRedOutlineCursorSpriteOamTable +ListMenuSetUpRedOutlineCursorSpriteOamTable: @ 0x081AF3FC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r3, r2, #0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sb, r1 + ldr r0, _081AF4E0 + ldr r0, [r0] + str r0, [r3] + movs r1, #0x88 + strb r1, [r3] + strb r1, [r3, #1] + ldr r0, _081AF4E4 + ldr r0, [r0] + str r0, [r3, #4] + mov r2, r8 + adds r2, #0x80 + strb r2, [r3, #4] + strb r1, [r3, #5] + ldr r0, _081AF4E8 + ldr r0, [r0] + str r0, [r3, #8] + strb r1, [r3, #8] + mov r4, sb + adds r4, #0x80 + strb r4, [r3, #9] + ldr r0, _081AF4EC + ldr r0, [r0] + str r0, [r3, #0xc] + strb r2, [r3, #0xc] + strb r4, [r3, #0xd] + movs r0, #4 + mov ip, r0 + mov r2, r8 + cmp r2, #0x10 + bls _081AF490 + movs r2, #8 + mov r5, r8 + subs r5, #8 + cmp r2, r5 + bge _081AF490 + ldr r0, _081AF4F0 + ldr r0, [r0] + str r0, [sp] + ldr r0, _081AF4F4 + ldr r6, [r0] + adds r1, r3, #0 + adds r1, #0x10 + movs r7, #0x88 + mov sl, r7 +_081AF46E: + ldr r0, [sp] + str r0, [r1] + adds r0, r2, #0 + subs r0, #0x78 + strb r0, [r1] + mov r7, sl + strb r7, [r1, #1] + adds r1, #4 + str r6, [r1] + strb r0, [r1] + strb r4, [r1, #1] + adds r1, #4 + movs r0, #2 + add ip, r0 + adds r2, #8 + cmp r2, r5 + blt _081AF46E +_081AF490: + mov r2, sb + cmp r2, #0x10 + bls _081AF4CE + movs r1, #8 + mov r4, sb + subs r4, #8 + cmp r1, r4 + bge _081AF4CE + ldr r0, _081AF4F8 + ldr r6, [r0] + ldr r0, _081AF4FC + ldr r5, [r0] + mov r7, ip + lsls r0, r7, #2 + adds r2, r0, r3 + movs r7, #0x88 + mov r3, r8 + adds r3, #0x80 +_081AF4B4: + str r6, [r2] + strb r7, [r2] + adds r0, r1, #0 + subs r0, #0x78 + strb r0, [r2, #1] + adds r2, #4 + str r5, [r2] + strb r3, [r2] + strb r0, [r2, #1] + adds r2, #4 + adds r1, #8 + cmp r1, r4 + blt _081AF4B4 +_081AF4CE: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081AF4E0: .4byte 0x085DFB14 +_081AF4E4: .4byte 0x085DFB18 +_081AF4E8: .4byte 0x085DFB2C +_081AF4EC: .4byte 0x085DFB30 +_081AF4F0: .4byte 0x085DFB1C +_081AF4F4: .4byte 0x085DFB28 +_081AF4F8: .4byte 0x085DFB20 +_081AF4FC: .4byte 0x085DFB24 + thumb_func_end ListMenuSetUpRedOutlineCursorSpriteOamTable + + thumb_func_start ListMenuAddRedOutlineCursorObject +ListMenuAddRedOutlineCursorObject: @ 0x081AF500 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x28 + adds r6, r0, #0 + ldr r0, _081AF54C + str r0, [sp, #0x18] + ldr r5, _081AF550 + add r0, sp, #0x18 + ldr r1, [r0, #4] + ands r1, r5 + movs r2, #0x80 + lsls r2, r2, #1 + orrs r1, r2 + ldrh r2, [r6, #6] + lsls r2, r2, #0x10 + ldr r3, _081AF554 + ands r1, r3 + orrs r1, r2 + str r1, [r0, #4] + bl LoadCompressedSpriteSheet + ldrh r2, [r6, #8] + ldr r7, _081AF554 + cmp r2, r7 + bne _081AF55C + ldr r0, _081AF558 + ldrb r1, [r6, #0xa] + lsls r1, r1, #0x14 + movs r2, #0x80 + lsls r2, r2, #0x11 + adds r1, r1, r2 + lsrs r1, r1, #0x10 + movs r2, #0x20 + bl LoadPalette + b _081AF56E + .align 2, 0 +_081AF54C: .4byte 0x085DFBF0 +_081AF550: .4byte 0xFFFF0000 +_081AF554: .4byte 0x0000FFFF +_081AF558: .4byte 0x085DFB60 +_081AF55C: + ldr r0, _081AF654 + str r0, [sp, #0x20] + add r0, sp, #0x20 + ldr r1, [r0, #4] + ands r1, r5 + orrs r1, r2 + str r1, [r0, #4] + bl LoadSpritePalette +_081AF56E: + ldr r0, _081AF658 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r4, r0, #0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _081AF65C + adds r5, r0, r1 + ldrh r0, [r6, #6] + movs r3, #0 + mov r8, r3 + strh r0, [r5, #0xe] + ldrh r0, [r6, #8] + strh r0, [r5, #0x10] + ldrh r0, [r6, #2] + ldrh r1, [r6, #4] + bl ListMenuGetRedOutlineCursorSpriteCount + strb r0, [r5] + ldrb r0, [r5] + lsls r0, r0, #2 + bl Alloc + adds r2, r0, #0 + str r2, [r5, #8] + str r2, [r5, #4] + ldrh r0, [r6, #2] + ldrh r1, [r6, #4] + bl ListMenuSetUpRedOutlineCursorSpriteOamTable + mov r1, sp + ldr r0, _081AF660 + ldm r0!, {r2, r3, r7} + stm r1!, {r2, r3, r7} + ldm r0!, {r2, r3, r7} + stm r1!, {r2, r3, r7} + mov r1, sp + ldrh r0, [r6, #6] + strh r0, [r1] + ldrh r0, [r6, #8] + strh r0, [r1, #2] + ldrb r1, [r6] + adds r1, #0x78 + ldrb r2, [r6, #1] + adds r2, #0x78 + mov r0, sp + movs r3, #0 + bl CreateSprite + strb r0, [r5, #0xc] + ldrb r1, [r5, #0xc] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r7, _081AF664 + adds r0, r0, r7 + adds r1, r5, #0 + bl SetSubspriteTables + ldrb r0, [r5, #0xc] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r7 + ldrb r2, [r1, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #5] + ldrb r1, [r5, #0xc] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + adds r0, #0x43 + mov r1, r8 + strb r1, [r0] + ldrb r1, [r5, #0xc] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + adds r0, #0x42 + ldrb r2, [r0] + movs r1, #0x40 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + ldrh r1, [r6, #8] + ldr r0, _081AF668 + cmp r1, r0 + bne _081AF646 + ldrb r0, [r5, #0xc] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r7 + ldrb r2, [r6, #0xa] + lsls r2, r2, #4 + ldrb r3, [r1, #5] + movs r0, #0xf + ands r0, r3 + orrs r0, r2 + strb r0, [r1, #5] +_081AF646: + adds r0, r4, #0 + add sp, #0x28 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081AF654: .4byte 0x085DFB60 +_081AF658: .4byte 0x081AF3BD +_081AF65C: .4byte 0x03005B68 +_081AF660: .4byte 0x082BF314 +_081AF664: .4byte 0x020205AC +_081AF668: .4byte 0x0000FFFF + thumb_func_end ListMenuAddRedOutlineCursorObject + + thumb_func_start ListMenuUpdateRedOutlineCursorObject +ListMenuUpdateRedOutlineCursorObject: @ 0x081AF66C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + lsls r3, r0, #2 + adds r3, r3, r0 + lsls r3, r3, #3 + ldr r0, _081AF6A8 + adds r3, r3, r0 + ldr r5, _081AF6AC + ldrb r4, [r3, #0xc] + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r1, #0x78 + strh r1, [r0, #0x20] + ldrb r1, [r3, #0xc] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r2, #0x78 + strh r2, [r0, #0x22] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081AF6A8: .4byte 0x03005B68 +_081AF6AC: .4byte 0x020205AC + thumb_func_end ListMenuUpdateRedOutlineCursorObject + + thumb_func_start ListMenuRemoveRedOutlineCursorObject +ListMenuRemoveRedOutlineCursorObject: @ 0x081AF6B0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _081AF6FC + adds r4, r0, r1 + ldr r0, [r4, #8] + bl Free + ldrh r0, [r4, #0xe] + ldr r6, _081AF700 + cmp r0, r6 + beq _081AF6D4 + bl FreeSpriteTilesByTag +_081AF6D4: + ldrh r0, [r4, #0x10] + cmp r0, r6 + beq _081AF6DE + bl FreeSpritePaletteByTag +_081AF6DE: + ldrb r1, [r4, #0xc] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _081AF704 + adds r0, r0, r1 + bl DestroySprite + adds r0, r5, #0 + bl DestroyTask + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081AF6FC: .4byte 0x03005B68 +_081AF700: .4byte 0x0000FFFF +_081AF704: .4byte 0x020205AC + thumb_func_end ListMenuRemoveRedOutlineCursorObject + + thumb_func_start SpriteCallback_RedArrowCursor +SpriteCallback_RedArrowCursor: @ 0x081AF708 + push {lr} + adds r2, r0, #0 + ldr r1, _081AF730 + ldrh r3, [r2, #0x2e] + lsls r0, r3, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bge _081AF720 + adds r0, #0x3f +_081AF720: + asrs r0, r0, #6 + strh r0, [r2, #0x24] + adds r0, r3, #0 + adds r0, #8 + strh r0, [r2, #0x2e] + pop {r0} + bx r0 + .align 2, 0 +_081AF730: .4byte 0x082FA8CC + thumb_func_end SpriteCallback_RedArrowCursor + + thumb_func_start ListMenuDummyTask +ListMenuDummyTask: @ 0x081AF734 + bx lr + .align 2, 0 + thumb_func_end ListMenuDummyTask + + thumb_func_start ListMenuAddRedArrowCursorObject +ListMenuAddRedArrowCursorObject: @ 0x081AF738 + push {r4, r5, r6, r7, lr} + sub sp, #0x28 + adds r5, r0, #0 + ldr r0, _081AF77C + str r0, [sp, #0x18] + ldr r6, _081AF780 + add r0, sp, #0x18 + ldr r1, [r0, #4] + ands r1, r6 + movs r2, #0x80 + orrs r1, r2 + ldrh r2, [r5, #6] + lsls r2, r2, #0x10 + ldr r4, _081AF784 + ands r1, r4 + orrs r1, r2 + str r1, [r0, #4] + bl LoadCompressedSpriteSheet + ldrh r2, [r5, #8] + cmp r2, r4 + bne _081AF78C + ldr r0, _081AF788 + ldrb r1, [r5, #0xa] + lsls r1, r1, #0x14 + movs r2, #0x80 + lsls r2, r2, #0x11 + adds r1, r1, r2 + lsrs r1, r1, #0x10 + movs r2, #0x20 + bl LoadPalette + b _081AF79E + .align 2, 0 +_081AF77C: .4byte 0x085DFC30 +_081AF780: .4byte 0xFFFF0000 +_081AF784: .4byte 0x0000FFFF +_081AF788: .4byte 0x085DFB60 +_081AF78C: + ldr r0, _081AF828 + str r0, [sp, #0x20] + add r0, sp, #0x20 + ldr r1, [r0, #4] + ands r1, r6 + orrs r1, r2 + str r1, [r0, #4] + bl LoadSpritePalette +_081AF79E: + ldr r0, _081AF82C + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r0, #0 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _081AF830 + adds r4, r0, r1 + ldrh r0, [r5, #6] + strh r0, [r4, #2] + ldrh r0, [r5, #8] + strh r0, [r4, #4] + mov r1, sp + ldr r0, _081AF834 + ldm r0!, {r2, r3, r7} + stm r1!, {r2, r3, r7} + ldm r0!, {r2, r3, r7} + stm r1!, {r2, r3, r7} + mov r1, sp + ldrh r0, [r5, #6] + strh r0, [r1] + ldrh r0, [r5, #8] + strh r0, [r1, #2] + ldrb r1, [r5] + ldrb r2, [r5, #1] + mov r0, sp + movs r3, #0 + bl CreateSprite + strb r0, [r4] + ldr r3, _081AF838 + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r2, #8 + strh r2, [r0, #0x24] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r2, [r0, #0x26] + ldrh r1, [r5, #8] + ldr r0, _081AF83C + cmp r1, r0 + bne _081AF81E + ldrb r0, [r4] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrb r2, [r5, #0xa] + lsls r2, r2, #4 + ldrb r3, [r1, #5] + movs r0, #0xf + ands r0, r3 + orrs r0, r2 + strb r0, [r1, #5] +_081AF81E: + adds r0, r6, #0 + add sp, #0x28 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081AF828: .4byte 0x085DFB60 +_081AF82C: .4byte 0x081AF735 +_081AF830: .4byte 0x03005B68 +_081AF834: .4byte 0x085DFB48 +_081AF838: .4byte 0x020205AC +_081AF83C: .4byte 0x0000FFFF + thumb_func_end ListMenuAddRedArrowCursorObject + + thumb_func_start ListMenuUpdateRedArrowCursorObject +ListMenuUpdateRedArrowCursorObject: @ 0x081AF840 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r3, r0, #2 + adds r3, r3, r0 + lsls r3, r3, #3 + ldr r0, _081AF870 + adds r3, r3, r0 + ldr r5, _081AF874 + ldrb r4, [r3] + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r1, [r0, #0x20] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r2, [r0, #0x22] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081AF870: .4byte 0x03005B68 +_081AF874: .4byte 0x020205AC + thumb_func_end ListMenuUpdateRedArrowCursorObject + + thumb_func_start ListMenuRemoveRedArrowCursorObject +ListMenuRemoveRedArrowCursorObject: @ 0x081AF878 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _081AF8BC + adds r4, r0, r1 + ldrh r0, [r4, #2] + ldr r6, _081AF8C0 + cmp r0, r6 + beq _081AF896 + bl FreeSpriteTilesByTag +_081AF896: + ldrh r0, [r4, #4] + cmp r0, r6 + beq _081AF8A0 + bl FreeSpritePaletteByTag +_081AF8A0: + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _081AF8C4 + adds r0, r0, r1 + bl DestroySprite + adds r0, r5, #0 + bl DestroyTask + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081AF8BC: .4byte 0x03005B68 +_081AF8C0: .4byte 0x0000FFFF +_081AF8C4: .4byte 0x020205AC + thumb_func_end ListMenuRemoveRedArrowCursorObject + diff --git a/asm/load_save.s b/asm/load_save.s new file mode 100644 index 0000000..871d0d3 --- /dev/null +++ b/asm/load_save.s @@ -0,0 +1,805 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start CheckForFlashMemory +CheckForFlashMemory: @ 0x08076570 + push {lr} + bl IdentifyFlash + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0807658C + ldr r1, _08076588 + movs r0, #1 + str r0, [r1] + bl InitFlashTimer + b _08076592 + .align 2, 0 +_08076588: .4byte 0x03005AE8 +_0807658C: + ldr r1, _08076598 + movs r0, #0 + str r0, [r1] +_08076592: + pop {r0} + bx r0 + .align 2, 0 +_08076598: .4byte 0x03005AE8 + thumb_func_end CheckForFlashMemory + + thumb_func_start ClearSav1 +ClearSav1: @ 0x0807659C + push {lr} + sub sp, #4 + mov r1, sp + movs r0, #0 + strh r0, [r1] + ldr r1, _080765B8 + ldr r2, _080765BC + mov r0, sp + bl CpuSet + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_080765B8: .4byte 0x020246F8 +_080765BC: .4byte 0x010007D6 + thumb_func_end ClearSav1 + + thumb_func_start ClearSav2 +ClearSav2: @ 0x080765C0 + push {lr} + sub sp, #4 + mov r1, sp + movs r0, #0 + strh r0, [r1] + ldr r1, _080765DC + ldr r2, _080765E0 + mov r0, sp + bl CpuSet + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_080765DC: .4byte 0x020256A4 +_080765E0: .4byte 0x01001F04 + thumb_func_end ClearSav2 + + thumb_func_start SetSaveBlocksPointers +SetSaveBlocksPointers: @ 0x080765E4 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r5, _0807661C + bl Random + adds r4, r4, r0 + movs r0, #0x7c + ands r4, r0 + ldr r1, _08076620 + ldr r0, _08076624 + adds r0, r4, r0 + str r0, [r1] + ldr r0, _08076628 + adds r0, r4, r0 + str r0, [r5] + ldr r1, _0807662C + ldr r0, _08076630 + adds r4, r4, r0 + str r4, [r1] + bl SetBagItemsPointers + bl SetDecorationInventoriesPointers + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0807661C: .4byte 0x03005AEC +_08076620: .4byte 0x03005AF0 +_08076624: .4byte 0x020246F8 +_08076628: .4byte 0x020256A4 +_0807662C: .4byte 0x03005AF4 +_08076630: .4byte 0x020294AC + thumb_func_end SetSaveBlocksPointers + + thumb_func_start MoveSaveBlocks_ResetHeap +MoveSaveBlocks_ResetHeap: @ 0x08076634 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r5, _08076700 + ldr r0, [r5, #0xc] + str r0, [sp] + ldr r1, [r5, #0x10] + str r1, [sp, #4] + movs r0, #0 + str r0, [r5, #0xc] + str r0, [r5, #0x10] + ldr r1, _08076704 + str r0, [r1] + ldr r4, _08076708 + ldr r0, _0807670C + ldr r1, [r0] + ldr r6, _08076710 + adds r0, r4, #0 + adds r2, r6, #0 + bl memcpy + ldr r1, _08076714 + mov sl, r1 + ldr r1, [r1] + ldr r7, _08076718 + ldr r0, _0807671C + adds r2, r7, #0 + bl memcpy + ldr r0, _08076720 + mov r8, r0 + ldr r1, [r0] + ldr r0, _08076724 + mov sb, r0 + ldr r0, _08076728 + mov r2, sb + bl memcpy + ldrb r1, [r4, #0xa] + ldrb r0, [r4, #0xb] + adds r1, r1, r0 + ldrb r0, [r4, #0xc] + adds r1, r1, r0 + ldrb r0, [r4, #0xd] + adds r0, r0, r1 + bl SetSaveBlocksPointers + ldr r1, _0807670C + ldr r0, [r1] + adds r1, r4, #0 + adds r2, r6, #0 + bl memcpy + mov r1, sl + ldr r0, [r1] + ldr r1, _0807671C + adds r2, r7, #0 + bl memcpy + mov r1, r8 + ldr r0, [r1] + ldr r1, _08076728 + mov r2, sb + bl memcpy + movs r1, #0xe0 + lsls r1, r1, #9 + adds r0, r4, #0 + bl InitHeap + ldr r0, [sp, #4] + str r0, [r5, #0x10] + ldr r1, [sp] + str r1, [r5, #0xc] + bl Random + adds r4, r0, #0 + bl Random + lsls r4, r4, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r4, r4, r0 + adds r0, r4, #0 + bl ApplyNewEncryptionKeyToAllEncryptedData + ldr r1, _0807670C + ldr r0, [r1] + adds r0, #0xac + str r4, [r0] + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08076700: .4byte 0x03002360 +_08076704: .4byte 0x0203CC28 +_08076708: .4byte 0x02000000 +_0807670C: .4byte 0x03005AF0 +_08076710: .4byte 0x00000F2C +_08076714: .4byte 0x03005AEC +_08076718: .4byte 0x00003D88 +_0807671C: .4byte 0x02000F2C +_08076720: .4byte 0x03005AF4 +_08076724: .4byte 0x000083D0 +_08076728: .4byte 0x02004CB4 + thumb_func_end MoveSaveBlocks_ResetHeap + + thumb_func_start UseContinueGameWarp +UseContinueGameWarp: @ 0x0807672C + ldr r0, _08076738 + ldr r0, [r0] + ldrb r1, [r0, #9] + movs r0, #1 + ands r0, r1 + bx lr + .align 2, 0 +_08076738: .4byte 0x03005AF0 + thumb_func_end UseContinueGameWarp + + thumb_func_start ClearContinueGameWarpStatus2 +ClearContinueGameWarpStatus2: @ 0x0807673C + ldr r0, _0807674C + ldr r2, [r0] + ldrb r1, [r2, #9] + movs r0, #0xfe + ands r0, r1 + strb r0, [r2, #9] + bx lr + .align 2, 0 +_0807674C: .4byte 0x03005AF0 + thumb_func_end ClearContinueGameWarpStatus2 + + thumb_func_start SetContinueGameWarpStatus +SetContinueGameWarpStatus: @ 0x08076750 + ldr r0, _08076760 + ldr r2, [r0] + ldrb r1, [r2, #9] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #9] + bx lr + .align 2, 0 +_08076760: .4byte 0x03005AF0 + thumb_func_end SetContinueGameWarpStatus + + thumb_func_start SetContinueGameWarpStatusToDynamicWarp +SetContinueGameWarpStatusToDynamicWarp: @ 0x08076764 + push {lr} + movs r0, #0 + bl SetContinueGameWarpToDynamicWarp + ldr r0, _0807677C + ldr r2, [r0] + ldrb r1, [r2, #9] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #9] + pop {r0} + bx r0 + .align 2, 0 +_0807677C: .4byte 0x03005AF0 + thumb_func_end SetContinueGameWarpStatusToDynamicWarp + + thumb_func_start ClearContinueGameWarpStatus +ClearContinueGameWarpStatus: @ 0x08076780 + ldr r0, _08076790 + ldr r2, [r0] + ldrb r1, [r2, #9] + movs r0, #0xfe + ands r0, r1 + strb r0, [r2, #9] + bx lr + .align 2, 0 +_08076790: .4byte 0x03005AF0 + thumb_func_end ClearContinueGameWarpStatus + + thumb_func_start SavePlayerParty +SavePlayerParty: @ 0x08076794 + push {r4, lr} + ldr r0, _080767D0 + ldr r0, [r0] + ldr r1, _080767D4 + ldrb r1, [r1] + movs r2, #0x8d + lsls r2, r2, #2 + adds r0, r0, r2 + strb r1, [r0] + movs r4, #0 +_080767A8: + ldr r0, _080767D0 + ldr r0, [r0] + movs r1, #0x64 + muls r1, r4, r1 + adds r0, r0, r1 + movs r2, #0x8e + lsls r2, r2, #2 + adds r0, r0, r2 + ldr r2, _080767D8 + adds r1, r1, r2 + movs r2, #0x64 + bl memcpy + adds r4, #1 + cmp r4, #5 + ble _080767A8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080767D0: .4byte 0x03005AEC +_080767D4: .4byte 0x0202418D +_080767D8: .4byte 0x02024190 + thumb_func_end SavePlayerParty + + thumb_func_start LoadPlayerParty +LoadPlayerParty: @ 0x080767DC + push {r4, r5, lr} + ldr r1, _08076818 + ldr r0, _0807681C + ldr r0, [r0] + movs r2, #0x8d + lsls r2, r2, #2 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r1] + movs r4, #0 + ldr r5, _08076820 +_080767F2: + movs r0, #0x64 + adds r2, r4, #0 + muls r2, r0, r2 + adds r0, r2, r5 + ldr r1, _0807681C + ldr r1, [r1] + adds r1, r1, r2 + movs r2, #0x8e + lsls r2, r2, #2 + adds r1, r1, r2 + movs r2, #0x64 + bl memcpy + adds r4, #1 + cmp r4, #5 + ble _080767F2 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08076818: .4byte 0x0202418D +_0807681C: .4byte 0x03005AEC +_08076820: .4byte 0x02024190 + thumb_func_end LoadPlayerParty + + thumb_func_start SaveEventObjects +SaveEventObjects: @ 0x08076824 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _08076864 + mov ip, r0 + movs r5, #0xa3 + lsls r5, r5, #4 + mov r8, r5 + ldr r4, _08076868 + movs r3, #0 + movs r2, #0xf +_0807683A: + mov r6, ip + ldr r1, [r6] + adds r1, r1, r3 + add r1, r8 + adds r0, r4, #0 + ldm r0!, {r5, r6, r7} + stm r1!, {r5, r6, r7} + ldm r0!, {r5, r6, r7} + stm r1!, {r5, r6, r7} + ldm r0!, {r5, r6, r7} + stm r1!, {r5, r6, r7} + adds r4, #0x24 + adds r3, #0x24 + subs r2, #1 + cmp r2, #0 + bge _0807683A + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08076864: .4byte 0x03005AEC +_08076868: .4byte 0x02036FF0 + thumb_func_end SaveEventObjects + + thumb_func_start LoadEventObjects +LoadEventObjects: @ 0x0807686C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _080768AC + mov ip, r0 + movs r5, #0xa3 + lsls r5, r5, #4 + mov r8, r5 + ldr r4, _080768B0 + movs r3, #0 + movs r2, #0xf +_08076882: + mov r6, ip + ldr r1, [r6] + adds r1, r1, r3 + adds r0, r4, #0 + add r1, r8 + ldm r1!, {r5, r6, r7} + stm r0!, {r5, r6, r7} + ldm r1!, {r5, r6, r7} + stm r0!, {r5, r6, r7} + ldm r1!, {r5, r6, r7} + stm r0!, {r5, r6, r7} + adds r4, #0x24 + adds r3, #0x24 + subs r2, #1 + cmp r2, #0 + bge _08076882 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080768AC: .4byte 0x03005AEC +_080768B0: .4byte 0x02036FF0 + thumb_func_end LoadEventObjects + + thumb_func_start SaveSerializedGame +SaveSerializedGame: @ 0x080768B4 + push {lr} + bl SavePlayerParty + bl SaveEventObjects + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SaveSerializedGame + + thumb_func_start LoadSerializedGame +LoadSerializedGame: @ 0x080768C4 + push {lr} + bl LoadPlayerParty + bl LoadEventObjects + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LoadSerializedGame + + thumb_func_start LoadPlayerBag +LoadPlayerBag: @ 0x080768D4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + movs r2, #0 + ldr r0, _080769D4 + mov ip, r0 + ldr r1, _080769D8 + mov sl, r1 + ldr r5, _080769DC + movs r3, #0xac + lsls r3, r3, #3 + ldr r4, _080769E0 +_080768F0: + lsls r0, r2, #2 + ldr r1, [r5] + adds r1, r1, r3 + adds r1, r1, r0 + ldr r0, [r1] + stm r4!, {r0} + adds r2, #1 + cmp r2, #0x1d + ble _080768F0 + movs r2, #0 + ldr r0, _080769E0 + ldr r5, _080769DC + movs r3, #0xbb + lsls r3, r3, #3 + adds r4, r0, #0 + adds r4, #0x78 +_08076910: + lsls r0, r2, #2 + ldr r1, [r5] + adds r1, r1, r3 + adds r1, r1, r0 + ldr r0, [r1] + stm r4!, {r0} + adds r2, #1 + cmp r2, #0x1d + ble _08076910 + movs r2, #0 + ldr r0, _080769E0 + ldr r5, _080769DC + movs r3, #0xca + lsls r3, r3, #3 + adds r4, r0, #0 + adds r4, #0xf0 +_08076930: + lsls r0, r2, #2 + ldr r1, [r5] + adds r1, r1, r3 + adds r1, r1, r0 + ldr r0, [r1] + stm r4!, {r0} + adds r2, #1 + cmp r2, #0xf + ble _08076930 + movs r2, #0 + ldr r0, _080769E0 + ldr r5, _080769DC + movs r6, #0x98 + lsls r6, r6, #1 + adds r4, r0, r6 + movs r3, #0xd2 + lsls r3, r3, #3 +_08076952: + lsls r0, r2, #2 + ldr r1, [r5] + adds r1, r1, r3 + adds r1, r1, r0 + ldr r0, [r1] + stm r4!, {r0} + adds r2, #1 + cmp r2, #0x3f + ble _08076952 + movs r2, #0 + ldr r0, _080769E0 + ldr r5, _080769DC + movs r7, #0x8c + lsls r7, r7, #2 + adds r4, r0, r7 + movs r3, #0xf2 + lsls r3, r3, #3 +_08076974: + lsls r0, r2, #2 + ldr r1, [r5] + adds r1, r1, r3 + adds r1, r1, r0 + ldr r0, [r1] + stm r4!, {r0} + adds r2, #1 + cmp r2, #0x2d + ble _08076974 + ldr r0, _080769E0 + ldr r1, _080769DC + mov r8, r1 + movs r5, #0xba + lsls r5, r5, #2 + adds r4, r0, r5 + movs r3, #0 + ldr r6, _080769E4 + mov sb, r6 + movs r2, #0xf +_0807699A: + mov r7, r8 + ldr r1, [r7] + adds r1, r1, r3 + adds r0, r4, #0 + add r1, sb + ldm r1!, {r5, r6, r7} + stm r0!, {r5, r6, r7} + ldm r1!, {r5, r6, r7} + stm r0!, {r5, r6, r7} + ldm r1!, {r5, r6, r7} + stm r0!, {r5, r6, r7} + adds r4, #0x24 + adds r3, #0x24 + subs r2, #1 + cmp r2, #0 + bge _0807699A + mov r1, sl + ldr r0, [r1] + adds r0, #0xac + ldr r0, [r0] + mov r5, ip + str r0, [r5] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080769D4: .4byte 0x02031E24 +_080769D8: .4byte 0x03005AF0 +_080769DC: .4byte 0x03005AEC +_080769E0: .4byte 0x020318FC +_080769E4: .4byte 0x00002BE0 + thumb_func_end LoadPlayerBag + + thumb_func_start SavePlayerBag +SavePlayerBag: @ 0x080769E8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + movs r2, #0 + ldr r0, _08076AF4 + mov r8, r0 + ldr r1, _08076AF8 + mov ip, r1 + ldr r5, _08076AFC + movs r3, #0xac + lsls r3, r3, #3 + ldr r4, _08076B00 +_08076A04: + ldr r0, [r5] + lsls r1, r2, #2 + adds r0, r0, r3 + adds r0, r0, r1 + ldm r4!, {r1} + str r1, [r0] + adds r2, #1 + cmp r2, #0x1d + ble _08076A04 + movs r2, #0 + ldr r5, _08076AFC + movs r4, #0xbb + lsls r4, r4, #3 + ldr r0, _08076B00 + adds r3, r0, #0 + adds r3, #0x78 +_08076A24: + ldr r0, [r5] + lsls r1, r2, #2 + adds r0, r0, r4 + adds r0, r0, r1 + ldm r3!, {r1} + str r1, [r0] + adds r2, #1 + cmp r2, #0x1d + ble _08076A24 + movs r2, #0 + ldr r5, _08076AFC + movs r4, #0xca + lsls r4, r4, #3 + ldr r0, _08076B00 + adds r3, r0, #0 + adds r3, #0xf0 +_08076A44: + ldr r0, [r5] + lsls r1, r2, #2 + adds r0, r0, r4 + adds r0, r0, r1 + ldm r3!, {r1} + str r1, [r0] + adds r2, #1 + cmp r2, #0xf + ble _08076A44 + movs r2, #0 + ldr r5, _08076AFC + movs r4, #0xd2 + lsls r4, r4, #3 + ldr r0, _08076B00 + movs r6, #0x98 + lsls r6, r6, #1 + adds r3, r0, r6 +_08076A66: + ldr r0, [r5] + lsls r1, r2, #2 + adds r0, r0, r4 + adds r0, r0, r1 + ldm r3!, {r1} + str r1, [r0] + adds r2, #1 + cmp r2, #0x3f + ble _08076A66 + movs r2, #0 + ldr r5, _08076AFC + movs r4, #0xf2 + lsls r4, r4, #3 + ldr r0, _08076B00 + movs r7, #0x8c + lsls r7, r7, #2 + adds r3, r0, r7 +_08076A88: + ldr r0, [r5] + lsls r1, r2, #2 + adds r0, r0, r4 + adds r0, r0, r1 + ldm r3!, {r1} + str r1, [r0] + adds r2, #1 + cmp r2, #0x2d + ble _08076A88 + ldr r0, _08076AFC + mov sb, r0 + ldr r1, _08076B04 + mov sl, r1 + ldr r4, _08076B00 + movs r3, #0 + movs r2, #0xf +_08076AA8: + mov r5, sb + ldr r1, [r5] + adds r1, r1, r3 + add r1, sl + movs r6, #0xba + lsls r6, r6, #2 + adds r0, r4, r6 + ldm r0!, {r5, r6, r7} + stm r1!, {r5, r6, r7} + ldm r0!, {r5, r6, r7} + stm r1!, {r5, r6, r7} + ldm r0!, {r5, r6, r7} + stm r1!, {r5, r6, r7} + adds r4, #0x24 + adds r3, #0x24 + subs r2, #1 + cmp r2, #0 + bge _08076AA8 + mov r7, r8 + ldr r0, [r7] + adds r0, #0xac + ldr r4, [r0] + mov r2, ip + ldr r1, [r2] + str r1, [r0] + adds r0, r4, #0 + bl ApplyNewEncryptionKeyToBagItems + ldr r0, [r7] + adds r0, #0xac + str r4, [r0] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08076AF4: .4byte 0x03005AF0 +_08076AF8: .4byte 0x02031E24 +_08076AFC: .4byte 0x03005AEC +_08076B00: .4byte 0x020318FC +_08076B04: .4byte 0x00002BE0 + thumb_func_end SavePlayerBag + + thumb_func_start ApplyNewEncryptionKeyToHword +ApplyNewEncryptionKeyToHword: @ 0x08076B08 + ldr r2, _08076B1C + ldr r2, [r2] + adds r2, #0xac + ldr r2, [r2] + ldrh r3, [r0] + eors r2, r3 + eors r2, r1 + strh r2, [r0] + bx lr + .align 2, 0 +_08076B1C: .4byte 0x03005AF0 + thumb_func_end ApplyNewEncryptionKeyToHword + + thumb_func_start ApplyNewEncryptionKeyToWord +ApplyNewEncryptionKeyToWord: @ 0x08076B20 + ldr r2, _08076B34 + ldr r3, [r2] + adds r3, #0xac + ldr r2, [r0] + ldr r3, [r3] + eors r2, r3 + eors r2, r1 + str r2, [r0] + bx lr + .align 2, 0 +_08076B34: .4byte 0x03005AF0 + thumb_func_end ApplyNewEncryptionKeyToWord + + thumb_func_start ApplyNewEncryptionKeyToAllEncryptedData +ApplyNewEncryptionKeyToAllEncryptedData: @ 0x08076B38 + push {r4, r5, lr} + adds r4, r0, #0 + bl ApplyNewEncryptionKeyToGameStats + adds r0, r4, #0 + bl ApplyNewEncryptionKeyToBagItems_ + adds r0, r4, #0 + bl ApplyNewEncryptionKeyToBerryPowder + ldr r5, _08076B70 + ldr r0, [r5] + movs r1, #0x92 + lsls r1, r1, #3 + adds r0, r0, r1 + adds r1, r4, #0 + bl ApplyNewEncryptionKeyToWord + ldr r0, [r5] + ldr r1, _08076B74 + adds r0, r0, r1 + adds r1, r4, #0 + bl ApplyNewEncryptionKeyToHword + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08076B70: .4byte 0x03005AEC +_08076B74: .4byte 0x00000494 + thumb_func_end ApplyNewEncryptionKeyToAllEncryptedData + diff --git a/asm/lottery_corner.s b/asm/lottery_corner.s new file mode 100644 index 0000000..f92979f --- /dev/null +++ b/asm/lottery_corner.s @@ -0,0 +1,563 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ResetLotteryCorner +ResetLotteryCorner: @ 0x081773E4 + push {r4, lr} + bl Random + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + bl Random + lsls r0, r0, #0x10 + orrs r0, r4 + bl SetLotteryNumber + ldr r0, _0817740C + movs r1, #0 + bl VarSet + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0817740C: .4byte 0x00004045 + thumb_func_end ResetLotteryCorner + + thumb_func_start SetRandomLotteryNumber +SetRandomLotteryNumber: @ 0x08177410 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + bl Random + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + subs r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, _0817744C + cmp r4, r0 + beq _08177440 + ldr r5, _08177450 + ldr r3, _08177454 + adds r2, r0, #0 +_08177430: + adds r0, r1, #0 + muls r0, r5, r0 + adds r1, r0, r3 + subs r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, r2 + bne _08177430 +_08177440: + adds r0, r1, #0 + bl SetLotteryNumber + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0817744C: .4byte 0x0000FFFF +_08177450: .4byte 0x41C64E6D +_08177454: .4byte 0x00003039 + thumb_func_end SetRandomLotteryNumber + + thumb_func_start RetrieveLotteryNumber +RetrieveLotteryNumber: @ 0x08177458 + push {lr} + bl GetLotteryNumber + ldr r1, _08177468 + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08177468: .4byte 0x02037290 + thumb_func_end RetrieveLotteryNumber + + thumb_func_start PickLotteryCornerTicket +PickLotteryCornerTicket: @ 0x0817746C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r1, _081775A8 + movs r0, #0 + strh r0, [r1] + movs r0, #0 + str r0, [sp, #4] + movs r1, #0 + str r1, [sp] + movs r7, #0 +_08177488: + movs r0, #0x64 + adds r1, r7, #0 + muls r1, r0, r1 + ldr r0, _081775AC + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _081774E4 + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + bne _081774DA + adds r0, r4, #0 + movs r1, #1 + bl GetMonData + adds r1, r0, #0 + ldr r0, _081775B0 + ldrh r0, [r0] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl GetMatchingDigits + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081775A8 + ldrh r2, [r1] + cmp r0, r2 + bls _081774DA + cmp r0, #1 + bls _081774DA + subs r0, #1 + strh r0, [r1] + movs r0, #0xe + str r0, [sp] + str r7, [sp, #4] +_081774DA: + adds r0, r7, #1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + cmp r7, #5 + bls _08177488 +_081774E4: + movs r7, #0 + ldr r1, _081775B4 + mov sb, r1 +_081774EA: + movs r6, #0 + adds r2, r7, #1 + mov sl, r2 + lsls r0, r7, #2 + adds r0, r0, r7 + mov r8, r0 +_081774F6: + mov r1, r8 + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #5 + adds r5, r0, #4 + mov r2, sb + ldr r0, [r2] + adds r0, r0, r5 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r4, r1, #4 + adds r0, r0, r4 + movs r1, #0xb + bl GetBoxMonData + cmp r0, #0 + beq _0817755E + mov r1, sb + ldr r0, [r1] + adds r0, r0, r5 + adds r0, r0, r4 + movs r1, #0x2d + bl GetBoxMonData + cmp r0, #0 + bne _0817755E + mov r2, sb + ldr r0, [r2] + adds r0, r0, r5 + adds r0, r0, r4 + movs r1, #1 + bl GetBoxMonData + adds r1, r0, #0 + ldr r0, _081775B0 + ldrh r0, [r0] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl GetMatchingDigits + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081775A8 + ldrh r2, [r1] + cmp r0, r2 + bls _0817755E + cmp r0, #1 + bls _0817755E + subs r0, #1 + strh r0, [r1] + str r7, [sp] + str r6, [sp, #4] +_0817755E: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #0x1d + bls _081774F6 + mov r1, sl + lsls r0, r1, #0x10 + lsrs r7, r0, #0x10 + cmp r7, #0xd + bls _081774EA + ldr r3, _081775A8 + ldrh r0, [r3] + cmp r0, #0 + beq _081775FA + ldr r2, _081775B8 + ldr r1, _081775BC + subs r0, #1 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2] + ldr r2, [sp] + cmp r2, #0xe + bne _081775C8 + ldr r1, _081775C0 + movs r0, #0 + strh r0, [r1] + movs r0, #0x64 + ldr r1, [sp, #4] + muls r0, r1, r0 + ldr r1, _081775AC + adds r0, r0, r1 + ldr r2, _081775C4 + movs r1, #2 + bl GetMonData + b _081775F4 + .align 2, 0 +_081775A8: .4byte 0x02037280 +_081775AC: .4byte 0x02024190 +_081775B0: .4byte 0x02037290 +_081775B4: .4byte 0x03005AF4 +_081775B8: .4byte 0x02037282 +_081775BC: .4byte 0x085C7A2C +_081775C0: .4byte 0x02037284 +_081775C4: .4byte 0x02021C40 +_081775C8: + ldr r1, _0817760C + movs r0, #1 + strh r0, [r1] + ldr r2, _08177610 + ldr r1, [sp] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r1, r1, #5 + adds r1, #4 + ldr r0, [r2] + adds r0, r0, r1 + ldr r2, [sp, #4] + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #4 + adds r0, r0, r1 + ldr r2, _08177614 + movs r1, #2 + bl GetBoxMonData +_081775F4: + ldr r0, _08177614 + bl StringGetEnd10 +_081775FA: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0817760C: .4byte 0x02037284 +_08177610: .4byte 0x03005AF4 +_08177614: .4byte 0x02021C40 + thumb_func_end PickLotteryCornerTicket + + thumb_func_start GetMatchingDigits +GetMatchingDigits: @ 0x08177618 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + movs r0, #0 + mov r8, r0 + movs r7, #0 + ldr r1, _08177698 + mov sl, r1 + ldr r0, _0817769C + mov sb, r0 +_08177638: + adds r0, r6, #0 + movs r1, #0xa + bl __umodsi3 + adds r4, r0, #0 + mov r1, sl + strh r4, [r1] + adds r0, r5, #0 + movs r1, #0xa + bl __umodsi3 + mov r1, sb + strh r0, [r1] + lsls r4, r4, #0x10 + lsls r0, r0, #0x10 + cmp r4, r0 + bne _08177686 + adds r0, r6, #0 + movs r1, #0xa + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r0, r5, #0 + movs r1, #0xa + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #4 + bls _08177638 +_08177686: + mov r0, r8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08177698: .4byte 0x0203B9B8 +_0817769C: .4byte 0x0203B9BA + thumb_func_end GetMatchingDigits + + thumb_func_start SetLotteryNumber +SetLotteryNumber: @ 0x081776A0 + push {r4, lr} + adds r1, r0, #0 + lsrs r4, r1, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, _081776C0 + bl VarSet + ldr r0, _081776C4 + adds r1, r4, #0 + bl VarSet + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081776C0: .4byte 0x0000404B +_081776C4: .4byte 0x0000404C + thumb_func_end SetLotteryNumber + + thumb_func_start GetLotteryNumber +GetLotteryNumber: @ 0x081776C8 + push {r4, lr} + ldr r0, _081776E8 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r0, _081776EC + bl VarGet + lsls r0, r0, #0x10 + orrs r0, r4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081776E8: .4byte 0x0000404B +_081776EC: .4byte 0x0000404C + thumb_func_end GetLotteryNumber + + thumb_func_start SetLotteryNumber16_Unused +SetLotteryNumber16_Unused: @ 0x081776F0 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl SetLotteryNumber + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetLotteryNumber16_Unused + + thumb_func_start sub_08177700 +sub_08177700: @ 0x08177700 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08177700 + + thumb_func_start CB2_ShowDiploma +CB2_ShowDiploma: @ 0x08177714 + push {r4, r5, lr} + sub sp, #0xc + movs r0, #0 + bl SetVBlankCallback + movs r0, #0 + movs r1, #0 + bl SetGpuReg + movs r0, #0xe + movs r1, #0 + bl SetGpuReg + movs r0, #0xc + movs r1, #0 + bl SetGpuReg + movs r0, #0xa + movs r1, #0 + bl SetGpuReg + movs r0, #8 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1c + movs r1, #0 + bl SetGpuReg + movs r0, #0x1e + movs r1, #0 + bl SetGpuReg + movs r0, #0x18 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1a + movs r1, #0 + bl SetGpuReg + movs r0, #0x14 + movs r1, #0 + bl SetGpuReg + movs r0, #0x16 + movs r1, #0 + bl SetGpuReg + movs r0, #0x10 + movs r1, #0 + bl SetGpuReg + movs r0, #0x12 + movs r1, #0 + bl SetGpuReg + add r1, sp, #4 + movs r0, #0 + strh r0, [r1] + ldr r1, _08177868 + add r0, sp, #4 + str r0, [r1] + movs r0, #0xc0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _0817786C + str r0, [r1, #8] + ldr r0, [r1, #8] + movs r5, #0 + str r5, [sp, #8] + add r0, sp, #8 + str r0, [r1] + movs r0, #0xe0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _08177870 + str r0, [r1, #8] + ldr r0, [r1, #8] + add r0, sp, #4 + strh r5, [r0] + str r0, [r1] + movs r0, #0xa0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _08177874 + str r0, [r1, #8] + ldr r0, [r1, #8] + bl ScanlineEffect_Stop + bl ResetTasks + bl ResetSpriteData + bl ResetPaletteFade + bl FreeAllSpritePalettes + ldr r0, _08177878 + movs r1, #0 + movs r2, #0x40 + bl LoadPalette + ldr r4, _0817787C + movs r0, #0x80 + lsls r0, r0, #5 + bl Alloc + str r0, [r4] + bl InitDiplomaBg + bl InitDiplomaWindow + bl reset_temp_tile_data_buffers + ldr r1, _08177880 + str r5, [sp] + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram +_08177808: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _08177808 + ldr r0, _08177884 + ldr r1, _0817787C + ldr r1, [r1] + bl LZDecompressVram + movs r0, #1 + bl CopyBgTilemapBufferToVram + bl DisplayDiplomaText + movs r4, #1 + rsbs r4, r4, #0 + adds r0, r4, #0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + str r5, [sp] + adds r0, r4, #0 + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + movs r0, #1 + bl EnableInterrupts + ldr r0, _08177888 + bl SetVBlankCallback + ldr r0, _0817788C + bl SetMainCallback2 + ldr r0, _08177890 + movs r1, #0 + bl CreateTask + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08177868: .4byte 0x040000D4 +_0817786C: .4byte 0x8100C000 +_08177870: .4byte 0x85000100 +_08177874: .4byte 0x81000200 +_08177878: .4byte 0x085C7A34 +_0817787C: .4byte 0x0203B9BC +_08177880: .4byte 0x085C81B0 +_08177884: .4byte 0x085C7A74 +_08177888: .4byte 0x08177701 +_0817788C: .4byte 0x08177895 +_08177890: .4byte 0x081778AD + thumb_func_end CB2_ShowDiploma + diff --git a/asm/m4a.s b/asm/m4a.s index 11d135d..8d1c254 100644 --- a/asm/m4a.s +++ b/asm/m4a.s @@ -1,7 +1,7 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - .text - .syntax unified +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified thumb_func_start umul3232H32 umul3232H32: @ 0x0828D5D4 @@ -75,9 +75,9 @@ _0828D646: ldr r3, _0828D658 bx r3 .align 2, 0 -_0828D650: .4byte gUnknown_3007FF0 +_0828D650: .4byte 0x03007FF0 _0828D654: .4byte 0x68736D53 -_0828D658: .4byte gUnknown_3001B51 +_0828D658: .4byte 0x03001B51 _0828D65C: .4byte 0x04000006 _0828D660: .4byte 0x00000350 _0828D664: .4byte 0x00000630 @@ -117,7 +117,6 @@ _0828D684: bgt _0828D684 add r0, pc, #0x2f bx r0 - .thumb _0828D6C8: movs r0, #0 mov r1, r8 @@ -442,7 +441,6 @@ _0828D9F4: ldr r8, [sp] add r0, pc, #1 bx r0 - .thumb _0828DA00: ldr r0, [sp, #4] subs r0, #1 @@ -462,7 +460,7 @@ _0828DA0A: pop {r3} arm_func_end sub_0828D804 - non_word_aligned_thumb_func_start sub_0828DA1E + thumb_func_start sub_0828DA1E sub_0828DA1E: @ 0x0828DA1E bx r3 .align 2, 0 @@ -708,8 +706,8 @@ _0828DD54: ldrsb r1, [r5, r0] pop {r0, r2, r5, r6, r7, pc} .align 2, 0 -_0828DD64: .4byte gUnknown_30012F8 -_0828DD68: .4byte gUnknown_85FD590 +_0828DD64: .4byte 0x030012F8 +_0828DD68: .4byte 0x085FD590 arm_func_end sub_0828DCE0 thumb_func_start SoundMainBTM @@ -813,7 +811,7 @@ _0828DE00: pop {r0} bx lr .align 2, 0 -_0828DE04: .4byte gUnknown_85FD500 +_0828DE04: .4byte 0x085FD500 thumb_func_end sub_0828DDEC thumb_func_start ld_r3_tp_adr_i @@ -821,7 +819,7 @@ ld_r3_tp_adr_i: @ 0x0828DE08 ldr r2, [r1, #0x40] thumb_func_end ld_r3_tp_adr_i - non_word_aligned_thumb_func_start sub_0828DE0A + thumb_func_start sub_0828DE0A sub_0828DE0A: @ 0x0828DE0A adds r3, r2, #1 str r3, [r1, #0x40] @@ -1453,8 +1451,8 @@ _0828E22C: sub_0828E23C: @ 0x0828E23C bx r3 .align 2, 0 -_0828E240: .4byte gUnknown_85FD784 -_0828E244: .4byte gUnknown_3007FF0 +_0828E240: .4byte 0x085FD784 +_0828E244: .4byte 0x03007FF0 _0828E248: .4byte 0x68736D53 thumb_func_end sub_0828E23C @@ -1496,7 +1494,7 @@ _0828E284: pop {r0} bx r0 .align 2, 0 -_0828E28C: .4byte gUnknown_3007FF0 +_0828E28C: .4byte 0x03007FF0 thumb_func_end TrackStop thumb_func_start ChnVolSetAsm @@ -1807,8 +1805,8 @@ _0828E4AA: pop {r0} bx r0 .align 2, 0 -_0828E4BC: .4byte gUnknown_3007FF0 -_0828E4C0: .4byte gUnknown_85FD784 +_0828E4BC: .4byte 0x03007FF0 +_0828E4C0: .4byte 0x085FD784 thumb_func_end ply_note thumb_func_start ply_endtie @@ -1956,8 +1954,8 @@ _0828E568: pop {r1} bx r1 .align 2, 0 -_0828E5B0: .4byte gUnknown_85FD5A0 -_0828E5B4: .4byte gUnknown_85FD654 +_0828E5B0: .4byte 0x085FD5A0 +_0828E5B4: .4byte 0x085FD654 thumb_func_end MidiKeyToFreq thumb_func_start UnusedDummyFunc @@ -2067,19 +2065,19 @@ _0828E654: pop {r0} bx r0 .align 2, 0 -_0828E678: .4byte SoundMainRAM -_0828E67C: .4byte gUnknown_3001B50 +_0828E678: .4byte 0x0828D669 +_0828E67C: .4byte 0x03001B50 _0828E680: .4byte 0x04000200 -_0828E684: .4byte gUnknown_3006120 -_0828E688: .4byte gUnknown_3007250 +_0828E684: .4byte 0x03006120 +_0828E688: .4byte 0x03007250 _0828E68C: .4byte 0x0094C500 _0828E690: .4byte 0x00000004 -_0828E694: .4byte gUnknown_863C27C -_0828E698: .4byte gUnknown_3007590 -_0828E69C: .4byte gUnknown_3007490 -_0828E6A0: .4byte gUnknown_85FD7B8 -_0828E6A4: .4byte gUnknown_3007140 -_0828E6A8: .4byte gUnknown_3007350 +_0828E694: .4byte 0x0863C27C +_0828E698: .4byte 0x03007590 +_0828E69C: .4byte 0x03007490 +_0828E6A0: .4byte 0x085FD7B8 +_0828E6A4: .4byte 0x03007140 +_0828E6A8: .4byte 0x03007350 thumb_func_end m4aSoundInit thumb_func_start m4aSoundMain @@ -2111,8 +2109,8 @@ m4aSongNumStart: @ 0x0828E6B8 pop {r0} bx r0 .align 2, 0 -_0828E6DC: .4byte gUnknown_863C27C -_0828E6E0: .4byte gUnknown_863C2AC +_0828E6DC: .4byte 0x0863C27C +_0828E6E0: .4byte 0x0863C2AC thumb_func_end m4aSongNumStart thumb_func_start m4aSongNumStartOrChange @@ -2138,8 +2136,8 @@ m4aSongNumStartOrChange: @ 0x0828E6E4 bl MPlayStart b _0828E72C .align 2, 0 -_0828E710: .4byte gUnknown_863C27C -_0828E714: .4byte gUnknown_863C2AC +_0828E710: .4byte 0x0863C27C +_0828E714: .4byte 0x0863C2AC _0828E718: ldr r2, [r1, #4] ldrh r0, [r1, #4] @@ -2179,8 +2177,8 @@ m4aSongNumStartOrContinue: @ 0x0828E730 bl MPlayStart b _0828E780 .align 2, 0 -_0828E75C: .4byte gUnknown_863C27C -_0828E760: .4byte gUnknown_863C2AC +_0828E75C: .4byte 0x0863C27C +_0828E760: .4byte 0x0863C2AC _0828E764: ldr r2, [r1, #4] ldrh r0, [r1, #4] @@ -2224,8 +2222,8 @@ _0828E7AA: pop {r0} bx r0 .align 2, 0 -_0828E7B0: .4byte gUnknown_863C27C -_0828E7B4: .4byte gUnknown_863C2AC +_0828E7B0: .4byte 0x0863C27C +_0828E7B4: .4byte 0x0863C2AC thumb_func_end m4aSongNumStop thumb_func_start m4aSongNumContinue @@ -2252,8 +2250,8 @@ _0828E7DE: pop {r0} bx r0 .align 2, 0 -_0828E7E4: .4byte gUnknown_863C27C -_0828E7E8: .4byte gUnknown_863C2AC +_0828E7E4: .4byte 0x0863C27C +_0828E7E8: .4byte 0x0863C2AC thumb_func_end m4aSongNumContinue thumb_func_start m4aMPlayAllStop @@ -2288,8 +2286,8 @@ _0828E80E: bx r0 .align 2, 0 _0828E824: .4byte 0x00000004 -_0828E828: .4byte gUnknown_863C27C -_0828E82C: .4byte gUnknown_3007140 +_0828E828: .4byte 0x0863C27C +_0828E82C: .4byte 0x03007140 thumb_func_end m4aMPlayAllStop thumb_func_start m4aMPlayContinue @@ -2333,8 +2331,8 @@ _0828E85E: bx r0 .align 2, 0 _0828E874: .4byte 0x00000004 -_0828E878: .4byte gUnknown_863C27C -_0828E87C: .4byte gUnknown_3007140 +_0828E878: .4byte 0x0863C27C +_0828E87C: .4byte 0x03007140 thumb_func_end m4aMPlayAllContinue thumb_func_start m4aMPlayFadeOut @@ -2540,21 +2538,21 @@ _0828E9E0: _0828E9E8: .4byte 0x04000084 _0828E9EC: .4byte 0x04000080 _0828E9F0: .4byte 0x04000063 -_0828E9F4: .4byte gUnknown_3007FF0 +_0828E9F4: .4byte 0x03007FF0 _0828E9F8: .4byte 0x68736D53 -_0828E9FC: .4byte gUnknown_30071C0 -_0828EA00: .4byte ply_memacc -_0828EA04: .4byte ply_lfos -_0828EA08: .4byte ply_mod -_0828EA0C: .4byte ply_xcmd -_0828EA10: .4byte ply_endtie -_0828EA14: .4byte SampleFreqSet -_0828EA18: .4byte TrackStop -_0828EA1C: .4byte FadeOutBody -_0828EA20: .4byte TrkVolPitSet -_0828EA24: .4byte CgbSound -_0828EA28: .4byte CgbOscOff -_0828EA2C: .4byte MidiKeyToCgbFreq +_0828E9FC: .4byte 0x030071C0 +_0828EA00: .4byte 0x0828F8F1 +_0828EA04: .4byte 0x0828E52D +_0828EA08: .4byte 0x0828E541 +_0828EA0C: .4byte 0x0828FA49 +_0828EA10: .4byte 0x0828E4C5 +_0828EA14: .4byte 0x0828EB5D +_0828EA18: .4byte 0x0828E24D +_0828EA1C: .4byte 0x0828EF41 +_0828EA20: .4byte 0x0828F009 +_0828EA24: .4byte 0x0828F231 +_0828EA28: .4byte 0x0828F165 +_0828EA2C: .4byte 0x0828F0BD _0828EA30: .4byte 0x00000000 _0828EA34: .4byte 0x05000040 thumb_func_end MPlayExtender @@ -2574,7 +2572,7 @@ ClearChain: @ 0x0828EA3C pop {r0} bx r0 .align 2, 0 -_0828EA4C: .4byte gUnknown_3007248 +_0828EA4C: .4byte 0x03007248 thumb_func_end ClearChain thumb_func_start Clear64byte @@ -2586,7 +2584,7 @@ Clear64byte: @ 0x0828EA50 pop {r0} bx r0 .align 2, 0 -_0828EA60: .4byte gUnknown_300724C +_0828EA60: .4byte 0x0300724C thumb_func_end Clear64byte thumb_func_start SoundInit @@ -2693,11 +2691,11 @@ _0828EB34: .4byte 0x04000089 _0828EB38: .4byte 0x040000BC _0828EB3C: .4byte 0x040000A0 _0828EB40: .4byte 0x040000A4 -_0828EB44: .4byte gUnknown_3007FF0 +_0828EB44: .4byte 0x03007FF0 _0828EB48: .4byte 0x050003EC -_0828EB4C: .4byte ply_note -_0828EB50: .4byte DummyFunc -_0828EB54: .4byte gUnknown_30071C0 +_0828EB4C: .4byte 0x0828E2C1 +_0828EB50: .4byte 0x0828FBF9 +_0828EB54: .4byte 0x030071C0 _0828EB58: .4byte 0x68736D53 thumb_func_end SoundInit @@ -2764,8 +2762,8 @@ _0828EBC8: pop {r0} bx r0 .align 2, 0 -_0828EBDC: .4byte gUnknown_3007FF0 -_0828EBE0: .4byte gUnknown_85FD684 +_0828EBDC: .4byte 0x03007FF0 +_0828EBE0: .4byte 0x085FD684 _0828EBE4: .4byte 0x00091D1B _0828EBE8: .4byte 0x00001388 _0828EBEC: .4byte 0x00002710 @@ -2853,7 +2851,7 @@ _0828EC86: pop {r0} bx r0 .align 2, 0 -_0828EC8C: .4byte gUnknown_3007FF0 +_0828EC8C: .4byte 0x03007FF0 _0828EC90: .4byte 0x68736D53 _0828EC94: .4byte 0x04000089 thumb_func_end m4aSoundMode @@ -2902,7 +2900,7 @@ _0828ECDE: pop {r0} bx r0 .align 2, 0 -_0828ECE4: .4byte gUnknown_3007FF0 +_0828ECE4: .4byte 0x03007FF0 _0828ECE8: .4byte 0x68736D53 thumb_func_end SoundClear @@ -2958,7 +2956,7 @@ _0828ED44: pop {r0} bx r0 .align 2, 0 -_0828ED4C: .4byte gUnknown_3007FF0 +_0828ED4C: .4byte 0x03007FF0 _0828ED50: .4byte 0x978C92AD _0828ED54: .4byte 0x040000C4 _0828ED58: .4byte 0x84400004 @@ -2994,7 +2992,7 @@ _0828ED90: pop {r0} bx r0 .align 2, 0 -_0828ED98: .4byte gUnknown_3007FF0 +_0828ED98: .4byte 0x03007FF0 _0828ED9C: .4byte 0x68736D53 _0828EDA0: .4byte 0x040000C6 thumb_func_end m4aSoundVSyncOn @@ -3059,9 +3057,9 @@ _0828EE08: pop {r0} bx r0 .align 2, 0 -_0828EE10: .4byte gUnknown_3007FF0 +_0828EE10: .4byte 0x03007FF0 _0828EE14: .4byte 0x68736D53 -_0828EE18: .4byte MPlayMain +_0828EE18: .4byte 0x0828DFE5 thumb_func_end MPlayOpen thumb_func_start MPlayStart @@ -3469,7 +3467,7 @@ _0828F0E6: ldrb r0, [r0] b _0828F156 .align 2, 0 -_0828F0F0: .4byte gUnknown_85FD738 +_0828F0F0: .4byte 0x085FD738 _0828F0F4: cmp r5, #0x23 bhi _0828F100 @@ -3527,8 +3525,8 @@ _0828F156: pop {r1} bx r1 .align 2, 0 -_0828F15C: .4byte gUnknown_85FD69C -_0828F160: .4byte gUnknown_85FD720 +_0828F15C: .4byte 0x085FD69C +_0828F160: .4byte 0x085FD720 thumb_func_end MidiKeyToCgbFreq thumb_func_start CgbOscOff @@ -3607,7 +3605,7 @@ CgbModVol: @ 0x0828F1B4 strb r0, [r2, #0x1b] b _0828F202 .align 2, 0 -_0828F1E4: .4byte gUnknown_3007FF0 +_0828F1E4: .4byte 0x03007FF0 _0828F1E8: lsrs r0, r0, #0x19 cmp r0, r4 @@ -3670,7 +3668,7 @@ CgbSound: @ 0x0828F230 strb r0, [r1, #0xa] b _0828F25A .align 2, 0 -_0828F250: .4byte gUnknown_3007FF0 +_0828F250: .4byte 0x03007FF0 _0828F254: movs r0, #0xe ldr r2, [sp, #4] @@ -4187,7 +4185,7 @@ _0828F5D6: b _0828F65C .align 2, 0 _0828F620: .4byte 0x04000081 -_0828F624: .4byte gUnknown_85FD774 +_0828F624: .4byte 0x085FD774 _0828F628: movs r0, #0xf mov r1, r8 @@ -4623,7 +4621,7 @@ _0828F914: ldr r0, [r0] mov pc, r0 .align 2, 0 -_0828F920: .4byte _0828F924 +_0828F920: .4byte 0x0828F924 _0828F924: @ jump table .4byte _0828F96C @ case 0 .4byte _0828F970 @ case 1 @@ -4763,7 +4761,7 @@ _0828FA28: bl _call_via_r2 b _0828FA42 .align 2, 0 -_0828FA38: .4byte gUnknown_30071C4 +_0828FA38: .4byte 0x030071C4 _0828FA3C: ldr r0, [r6, #0x40] adds r0, #4 @@ -4789,7 +4787,7 @@ ply_xcmd: @ 0x0828FA48 pop {r0} bx r0 .align 2, 0 -_0828FA64: .4byte gUnknown_85FD7EC +_0828FA64: .4byte 0x085FD7EC thumb_func_end ply_xcmd thumb_func_start ply_xxx @@ -4801,7 +4799,7 @@ ply_xxx: @ 0x0828FA68 pop {r0} bx r0 .align 2, 0 -_0828FA78: .4byte gUnknown_30071C0 +_0828FA78: .4byte 0x030071C0 thumb_func_end ply_xxx thumb_func_start ply_xwave @@ -5139,10 +5137,10 @@ _0828FC4E: pop {r1} bx r1 .align 2, 0 -_0828FCB8: .4byte gUnknown_3007140 -_0828FCBC: .4byte gUnknown_30070D0 -_0828FCC0: .4byte gUnknown_3007490 -_0828FCC4: .4byte gUnknown_3007350 +_0828FCB8: .4byte 0x03007140 +_0828FCBC: .4byte 0x030070D0 +_0828FCC0: .4byte 0x03007490 +_0828FCC4: .4byte 0x03007350 _0828FCC8: .4byte 0x68736D53 thumb_func_end SetPokemonCryTone @@ -5156,7 +5154,7 @@ SetPokemonCryVolume: @ 0x0828FCCC strb r0, [r2, #0x1d] bx lr .align 2, 0 -_0828FCDC: .4byte gUnknown_3007490 +_0828FCDC: .4byte 0x03007490 thumb_func_end SetPokemonCryVolume thumb_func_start SetPokemonCryPanpot @@ -5171,7 +5169,7 @@ SetPokemonCryPanpot: @ 0x0828FCE0 strb r0, [r2] bx lr .align 2, 0 -_0828FCF4: .4byte gUnknown_3007490 +_0828FCF4: .4byte 0x03007490 thumb_func_end SetPokemonCryPanpot thumb_func_start SetPokemonCryPitch @@ -5203,7 +5201,7 @@ SetPokemonCryPitch: @ 0x0828FCF8 pop {r0} bx r0 .align 2, 0 -_0828FD2C: .4byte gUnknown_3007490 +_0828FD2C: .4byte 0x03007490 thumb_func_end SetPokemonCryPitch thumb_func_start SetPokemonCryLength @@ -5212,7 +5210,7 @@ SetPokemonCryLength: @ 0x0828FD30 strh r0, [r1, #0x2e] bx lr .align 2, 0 -_0828FD38: .4byte gUnknown_3007490 +_0828FD38: .4byte 0x03007490 thumb_func_end SetPokemonCryLength thumb_func_start SetPokemonCryRelease @@ -5222,7 +5220,7 @@ SetPokemonCryRelease: @ 0x0828FD3C strb r0, [r1] bx lr .align 2, 0 -_0828FD44: .4byte gUnknown_3007490 +_0828FD44: .4byte 0x03007490 thumb_func_end SetPokemonCryRelease thumb_func_start SetPokemonCryProgress @@ -5231,7 +5229,7 @@ SetPokemonCryProgress: @ 0x0828FD48 str r0, [r1, #0x20] bx lr .align 2, 0 -_0828FD50: .4byte gUnknown_3007490 +_0828FD50: .4byte 0x03007490 thumb_func_end SetPokemonCryProgress thumb_func_start IsPokemonCryPlaying @@ -5268,7 +5266,7 @@ SetPokemonCryChorus: @ 0x0828FD6C strb r0, [r2, #0x19] b _0828FD92 .align 2, 0 -_0828FD88: .4byte gUnknown_3007490 +_0828FD88: .4byte 0x03007490 _0828FD8C: ldr r1, _0828FD94 movs r0, #1 @@ -5276,7 +5274,7 @@ _0828FD8C: _0828FD92: bx lr .align 2, 0 -_0828FD94: .4byte gUnknown_3007490 +_0828FD94: .4byte 0x03007490 thumb_func_end SetPokemonCryChorus thumb_func_start SetPokemonCryStereo @@ -5294,7 +5292,7 @@ SetPokemonCryStereo: @ 0x0828FD98 ands r0, r1 b _0828FDCA .align 2, 0 -_0828FDB0: .4byte gUnknown_3007FF0 +_0828FDB0: .4byte 0x03007FF0 _0828FDB4: .4byte 0x04000082 _0828FDB8: .4byte 0x0000210E _0828FDBC: @@ -5319,5 +5317,6 @@ SetPokemonCryPriority: @ 0x0828FDD8 strb r0, [r1, #2] bx lr .align 2, 0 -_0828FDE0: .4byte gUnknown_3007490 +_0828FDE0: .4byte 0x03007490 thumb_func_end SetPokemonCryPriority + diff --git a/asm/mail.s b/asm/mail.s new file mode 100644 index 0000000..7b2b803 --- /dev/null +++ b/asm/mail.s @@ -0,0 +1,1001 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ReadMail +ReadMail: @ 0x08121568 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r5, r0, #0 + adds r7, r1, #0 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + ldr r4, _081215B4 + ldr r0, _081215B8 + bl AllocZeroed + str r0, [r4] + adds r0, #0xdd + movs r3, #0 + movs r1, #1 + strb r1, [r0] + ldr r0, [r4] + adds r0, #0xde + strb r3, [r0] + ldr r2, [r4] + adds r1, r2, #0 + adds r1, #0xe0 + ldr r0, _081215BC + str r0, [r1] + adds r1, #4 + ldr r0, _081215C0 + str r0, [r1] + ldrh r1, [r5, #0x20] + adds r0, r1, #0 + subs r0, #0x79 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xb + bhi _081215C4 + subs r1, #0x79 + adds r0, r2, #0 + adds r0, #0xda + strb r1, [r0] + b _081215CC + .align 2, 0 +_081215B4: .4byte 0x02039E00 +_081215B8: .4byte 0x000020EC +_081215BC: .4byte 0x0811F181 +_081215C0: .4byte 0x0811F1CD +_081215C4: + adds r0, r2, #0 + adds r0, #0xda + strb r3, [r0] + movs r6, #0 +_081215CC: + ldr r0, _081215EC + ldr r0, [r0] + adds r1, r0, #0 + adds r1, #0xde + ldrb r1, [r1] + cmp r1, #0 + beq _081215DE + cmp r1, #1 + beq _081215F4 +_081215DE: + adds r2, r0, #0 + adds r2, #0xe8 + adds r0, #0xda + ldrb r0, [r0] + lsls r0, r0, #3 + ldr r1, _081215F0 + b _08121600 + .align 2, 0 +_081215EC: .4byte 0x02039E00 +_081215F0: .4byte 0x0857AFE0 +_081215F4: + adds r2, r0, #0 + adds r2, #0xe8 + adds r0, #0xda + ldrb r0, [r0] + lsls r0, r0, #3 + ldr r1, _08121638 +_08121600: + adds r0, r0, r1 + str r0, [r2] + ldrh r0, [r5, #0x1e] + mov r1, sp + bl MailSpeciesToSpecies + lsls r0, r0, #0x10 + ldr r1, _0812163C + adds r0, r0, r1 + movs r1, #0xcd + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _08121654 + ldr r0, _08121640 + ldr r1, [r0] + adds r2, r1, #0 + adds r2, #0xda + ldrb r2, [r2] + adds r3, r0, #0 + cmp r2, #6 + beq _08121644 + cmp r2, #9 + beq _0812164C + adds r1, #0xdb + movs r0, #0 + strb r0, [r1] + b _08121660 + .align 2, 0 +_08121638: .4byte 0x0857B054 +_0812163C: .4byte 0xFFFF0000 +_08121640: .4byte 0x02039E00 +_08121644: + adds r1, #0xdb + movs r0, #1 + strb r0, [r1] + b _08121660 +_0812164C: + adds r1, #0xdb + movs r0, #2 + strb r0, [r1] + b _08121660 +_08121654: + ldr r0, _08121680 + ldr r1, [r0] + adds r1, #0xdb + movs r2, #0 + strb r2, [r1] + adds r3, r0, #0 +_08121660: + ldr r1, [r3] + adds r0, r1, #0 + adds r0, #0xd4 + str r5, [r0] + subs r0, #8 + str r7, [r0] + adds r0, #0xc + strb r6, [r0] + ldr r0, _08121684 + bl SetMainCallback2 + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08121680: .4byte 0x02039E00 +_08121684: .4byte 0x08121A61 + thumb_func_end ReadMail + + thumb_func_start MailReadBuildGraphics +MailReadBuildGraphics: @ 0x08121688 + push {r4, r5, r6, lr} + sub sp, #0xc + ldr r0, _081216A8 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0x12 + bls _0812169C + b _08121A52 +_0812169C: + lsls r0, r0, #2 + ldr r1, _081216AC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081216A8: .4byte 0x03002360 +_081216AC: .4byte 0x081216B0 +_081216B0: @ jump table + .4byte _081216FC @ case 0 + .4byte _0812170A @ case 1 + .4byte _08121724 @ case 2 + .4byte _0812172A @ case 3 + .4byte _08121730 @ case 4 + .4byte _08121736 @ case 5 + .4byte _08121790 @ case 6 + .4byte _081217C8 @ case 7 + .4byte _081217D8 @ case 8 + .4byte _08121808 @ case 9 + .4byte _08121816 @ case 10 + .4byte _08121864 @ case 11 + .4byte _08121878 @ case 12 + .4byte _08121938 @ case 13 + .4byte _08121950 @ case 14 + .4byte _0812196C @ case 15 + .4byte _08121976 @ case 16 + .4byte _08121990 @ case 17 + .4byte _081219F4 @ case 18 +_081216FC: + movs r0, #0 + bl SetVBlankCallback + bl ScanlineEffect_Stop + movs r0, #0 + b _08121788 +_0812170A: + add r1, sp, #8 + movs r0, #0 + strh r0, [r1] + movs r1, #0xe0 + lsls r1, r1, #0x13 + ldr r2, _08121720 + add r0, sp, #8 + bl CpuSet + b _08121A44 + .align 2, 0 +_08121720: .4byte 0x01000200 +_08121724: + bl ResetPaletteFade + b _08121A44 +_0812172A: + bl ResetTasks + b _08121A44 +_08121730: + bl ResetSpriteData + b _08121A44 +_08121736: + bl FreeAllSpritePalettes + bl reset_temp_tile_data_buffers + movs r0, #0x10 + movs r1, #0 + bl SetGpuReg + movs r0, #0x12 + movs r1, #0 + bl SetGpuReg + movs r0, #0x14 + movs r1, #0 + bl SetGpuReg + movs r0, #0x16 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1a + movs r1, #0 + bl SetGpuReg + movs r0, #0x18 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1c + movs r1, #0 + bl SetGpuReg + movs r0, #0x1e + movs r1, #0 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 +_08121788: + movs r1, #0 + bl SetGpuReg + b _08121A44 +_08121790: + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _081217BC + movs r0, #0 + movs r2, #3 + bl InitBgsFromTemplates + ldr r4, _081217C0 + ldr r1, [r4] + adds r1, #0xec + movs r0, #1 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, _081217C4 + adds r1, r1, r0 + movs r0, #2 + bl SetBgTilemapBuffer + b _08121A44 + .align 2, 0 +_081217BC: .4byte 0x0857AEB4 +_081217C0: .4byte 0x02039E00 +_081217C4: .4byte 0x000010EC +_081217C8: + ldr r0, _081217D4 + bl InitWindows + bl DeactivateAllTextPrinters + b _08121A44 + .align 2, 0 +_081217D4: .4byte 0x0857AEC0 +_081217D8: + ldr r2, _08121800 + ldr r0, _08121804 + ldr r0, [r0] + adds r0, #0xda + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #4 + adds r0, r0, r2 + ldr r1, [r0] + movs r0, #0 + str r0, [sp] + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + b _08121A44 + .align 2, 0 +_08121800: .4byte 0x0857AEE4 +_08121804: .4byte 0x02039E00 +_08121808: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08121814 + b _08121A44 +_08121814: + b _08121A52 +_08121816: + movs r5, #0x1e + str r5, [sp] + movs r4, #0x14 + str r4, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + str r5, [sp] + str r4, [sp, #4] + movs r0, #2 + movs r1, #1 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + ldr r2, _0812185C + ldr r0, _08121860 + ldr r0, [r0] + adds r0, #0xda + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #8 + adds r0, r0, r2 + ldr r1, [r0] + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + b _08121A44 + .align 2, 0 +_0812185C: .4byte 0x0857AEE4 +_08121860: .4byte 0x02039E00 +_08121864: + movs r0, #0 + bl CopyBgTilemapBufferToVram + movs r0, #1 + bl CopyBgTilemapBufferToVram + movs r0, #2 + bl CopyBgTilemapBufferToVram + b _08121A44 +_08121878: + bl GetOverworldTextboxPalettePtr + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + ldr r6, _08121920 + ldr r4, _08121924 + ldr r0, _08121928 + ldr r3, [r0] + adds r3, #0xda + ldrb r1, [r3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r0, #0x10] + movs r2, #0xfa + lsls r2, r2, #1 + adds r0, r6, r2 + strh r1, [r0] + ldr r5, _0812192C + ldrb r1, [r3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r0, [r0, #0x10] + adds r2, r5, r2 + strh r0, [r2] + ldrb r1, [r3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r0, #0x12] + movs r2, #0xfb + lsls r2, r2, #1 + adds r0, r6, r2 + strh r1, [r0] + ldrb r1, [r3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r0, [r0, #0x12] + adds r2, r5, r2 + strh r0, [r2] + ldrb r1, [r3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r0, [r0] + movs r1, #0 + movs r2, #0x20 + bl LoadPalette + ldr r1, _08121930 + ldr r0, _08121934 + ldr r2, [r0] + ldrb r0, [r2, #8] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r6, #0x14] + ldrb r0, [r2, #8] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r5, #0x14] + ldrb r0, [r2, #8] + lsls r0, r0, #2 + adds r1, #2 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r6, #0x16] + ldrb r0, [r2, #8] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r5, #0x16] + b _08121A44 + .align 2, 0 +_08121920: .4byte 0x020373B4 +_08121924: .4byte 0x0857AEE4 +_08121928: .4byte 0x02039E00 +_0812192C: .4byte 0x020377B4 +_08121930: .4byte 0x0857AEDC +_08121934: .4byte 0x03005AF0 +_08121938: + ldr r0, _0812194C + ldr r0, [r0] + adds r0, #0xd8 + ldrb r0, [r0] + cmp r0, #0 + bne _08121946 + b _08121A44 +_08121946: + bl sub_08121A8C + b _08121A44 + .align 2, 0 +_0812194C: .4byte 0x02039E00 +_08121950: + ldr r0, _08121968 + ldr r0, [r0] + adds r0, #0xd8 + ldrb r0, [r0] + cmp r0, #0 + beq _08121A44 + bl sub_08121B64 + bl RunTextPrinters + b _08121A44 + .align 2, 0 +_08121968: .4byte 0x02039E00 +_0812196C: + bl sub_08086EFC + cmp r0, #1 + bne _08121A44 + b _08121A52 +_08121976: + ldr r0, _08121988 + bl SetVBlankCallback + ldr r2, _0812198C + ldrb r0, [r2, #8] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #8] + b _08121A44 + .align 2, 0 +_08121988: .4byte 0x08121C61 +_0812198C: .4byte 0x02037C74 +_08121990: + ldr r5, _081219B4 + ldr r0, [r5] + adds r0, #0xd4 + ldr r0, [r0] + ldrh r0, [r0, #0x1e] + bl sub_080D2724 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, [r5] + adds r0, #0xdb + ldrb r0, [r0] + cmp r0, #1 + beq _081219B8 + cmp r0, #2 + beq _081219D0 + b _08121A44 + .align 2, 0 +_081219B4: .4byte 0x02039E00 +_081219B8: + adds r0, r4, #0 + bl LoadMonIconPalette + ldr r1, _081219CC + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + adds r0, r4, #0 + movs r2, #0x60 + b _081219E2 + .align 2, 0 +_081219CC: .4byte 0x08007141 +_081219D0: + adds r0, r4, #0 + bl LoadMonIconPalette + ldr r1, _081219F0 + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + adds r0, r4, #0 + movs r2, #0x28 +_081219E2: + movs r3, #0x80 + bl sub_080D2618 + ldr r1, [r5] + adds r1, #0xdc + strb r0, [r1] + b _08121A44 + .align 2, 0 +_081219F0: .4byte 0x08007141 +_081219F4: + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r2, _08121A38 + ldrb r1, [r2, #8] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #8] + ldr r0, _08121A3C + ldr r0, [r0] + adds r0, #0xd0 + ldr r1, _08121A40 + str r1, [r0] + movs r0, #1 + b _08121A54 + .align 2, 0 +_08121A38: .4byte 0x02037C74 +_08121A3C: .4byte 0x02039E00 +_08121A40: .4byte 0x08121CA1 +_08121A44: + ldr r1, _08121A5C + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_08121A52: + movs r0, #0 +_08121A54: + add sp, #0xc + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08121A5C: .4byte 0x03002360 + thumb_func_end MailReadBuildGraphics + + thumb_func_start CB2_InitMailRead +CB2_InitMailRead: @ 0x08121A60 + push {lr} +_08121A62: + bl MailReadBuildGraphics + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08121A7C + ldr r0, _08121A78 + bl SetMainCallback2 + b _08121A88 + .align 2, 0 +_08121A78: .4byte 0x08121C75 +_08121A7C: + bl sub_081221B8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08121A62 +_08121A88: + pop {r0} + bx r0 + thumb_func_end CB2_InitMailRead + + thumb_func_start sub_08121A8C +sub_08121A8C: @ 0x08121A8C + push {r4, r5, r6, r7, lr} + sub sp, #4 + ldr r1, _08121B44 + mov r0, sp + movs r2, #4 + bl memcpy + movs r6, #0 + movs r5, #0 + ldr r2, _08121B48 + ldr r0, [r2] + adds r0, #0xe8 + ldr r0, [r0] + ldrb r0, [r0] + cmp r5, r0 + bhs _08121AFA + adds r7, r2, #0 +_08121AAE: + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r2, [r7] + adds r0, r2, r0 + adds r1, r2, #0 + adds r1, #0xd4 + lsls r3, r6, #1 + ldr r1, [r1] + adds r1, r1, r3 + adds r2, #0xe8 + ldr r2, [r2] + ldr r2, [r2, #4] + lsls r4, r5, #2 + adds r2, r4, r2 + ldr r2, [r2] + lsls r2, r2, #0x1e + lsrs r2, r2, #0x1e + movs r3, #1 + bl ConvertEasyChatWordsToString + ldr r0, [r7] + adds r0, #0xe8 + ldr r1, [r0] + ldr r0, [r1, #4] + adds r4, r4, r0 + ldr r0, [r4] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + adds r0, r6, r0 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldrb r1, [r1] + cmp r5, r1 + blo _08121AAE +_08121AFA: + ldr r4, _08121B48 + ldr r1, [r4] + adds r0, r1, #0 + adds r0, #0xc0 + adds r1, #0xd4 + ldr r1, [r1] + adds r1, #0x12 + bl StringCopy + adds r2, r0, #0 + ldr r1, [r4] + adds r0, r1, #0 + adds r0, #0xde + ldrb r0, [r0] + cmp r0, #0 + bne _08121B4C + adds r0, r2, #0 + mov r1, sp + bl StringCopy + ldr r0, [r4] + adds r0, #0xc0 + bl StringLength + ldr r2, [r4] + adds r1, r2, #0 + adds r1, #0xe8 + ldr r1, [r1] + ldrb r1, [r1, #1] + lsrs r1, r1, #4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0xd + subs r0, #0x60 + subs r1, r1, r0 + adds r2, #0xd9 + strb r1, [r2] + b _08121B5A + .align 2, 0 +_08121B44: .4byte 0x0857B0B4 +_08121B48: .4byte 0x02039E00 +_08121B4C: + adds r0, r1, #0 + adds r0, #0xe8 + ldr r0, [r0] + ldrb r0, [r0, #1] + lsrs r0, r0, #4 + adds r1, #0xd9 + strb r0, [r1] +_08121B5A: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08121A8C + + thumb_func_start sub_08121B64 +sub_08121B64: @ 0x08121B64 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0xc + movs r7, #0 + movs r0, #0 + bl PutWindowTilemap + movs r0, #1 + bl PutWindowTilemap + movs r0, #0 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #1 + movs r1, #0 + bl FillWindowPixelBuffer + movs r6, #0 + ldr r0, _08121C58 + mov sb, r0 + ldr r0, [r0] + adds r0, #0xe8 + ldr r0, [r0] + ldrb r0, [r0] + cmp r6, r0 + bhs _08121C10 + mov r8, sb +_08121BA0: + mov r0, r8 + ldr r1, [r0] + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r5, r1, r0 + ldrb r0, [r5] + cmp r0, #0xff + beq _08121BFC + cmp r0, #0 + beq _08121BFC + adds r0, r1, #0 + adds r0, #0xe8 + ldr r1, [r0] + ldr r0, [r1, #4] + lsls r4, r6, #2 + adds r0, r4, r0 + ldr r2, [r0] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x1a + ldrb r0, [r1, #3] + adds r2, r2, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r3, [r1, #2] + adds r3, r7, r3 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r0, _08121C5C + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r5, [sp, #8] + movs r1, #1 + bl AddTextPrinterParameterized3 + mov r1, r8 + ldr r0, [r1] + adds r0, #0xe8 + ldr r0, [r0] + ldr r0, [r0, #4] + adds r4, r4, r0 + ldrb r0, [r4, #1] + adds r0, r7, r0 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 +_08121BFC: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + mov r1, sb + ldr r0, [r1] + adds r0, #0xe8 + ldr r0, [r0] + ldrb r0, [r0] + cmp r6, r0 + blo _08121BA0 +_08121C10: + ldr r0, _08121C58 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0xd9 + ldrb r2, [r0] + adds r0, #0xf + ldr r0, [r0] + ldrb r3, [r0, #1] + lsls r3, r3, #0x1c + lsrs r3, r3, #0x1c + ldr r0, _08121C5C + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + adds r0, r1, #0 + adds r0, #0xc0 + str r0, [sp, #8] + movs r0, #1 + movs r1, #1 + bl AddTextPrinterParameterized3 + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + movs r0, #1 + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08121C58: .4byte 0x02039E00 +_08121C5C: .4byte 0x0857AED8 + thumb_func_end sub_08121B64 + + thumb_func_start VBlankCB_MailRead +VBlankCB_MailRead: @ 0x08121C60 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end VBlankCB_MailRead + + thumb_func_start CB2_MailRead +CB2_MailRead: @ 0x08121C74 + push {r4, lr} + ldr r4, _08121C9C + ldr r0, [r4] + adds r0, #0xdb + ldrb r0, [r0] + cmp r0, #0 + beq _08121C8A + bl AnimateSprites + bl BuildOamBuffer +_08121C8A: + ldr r0, [r4] + adds r0, #0xd0 + ldr r0, [r0] + bl _call_via_r0 + thumb_func_end CB2_MailRead + + thumb_func_start sub_08121C94 +sub_08121C94: @ 0x08121C94 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08121C9C: .4byte 0x02039E00 + thumb_func_end sub_08121C94 + + thumb_func_start CB2_WaitForPaletteExitOnKeyPress +CB2_WaitForPaletteExitOnKeyPress: @ 0x08121CA0 + push {lr} + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08121CB6 + ldr r0, _08121CBC + ldr r0, [r0] + adds r0, #0xd0 + ldr r1, _08121CC0 + str r1, [r0] +_08121CB6: + pop {r0} + bx r0 + .align 2, 0 +_08121CBC: .4byte 0x02039E00 +_08121CC0: .4byte 0x08121CC5 + thumb_func_end CB2_WaitForPaletteExitOnKeyPress + + thumb_func_start CB2_ExitOnKeyPress +CB2_ExitOnKeyPress: @ 0x08121CC4 + push {lr} + sub sp, #4 + ldr r0, _08121CF4 + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _08121CEE + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _08121CF8 + ldr r0, [r0] + adds r0, #0xd0 + ldr r1, _08121CFC + str r1, [r0] +_08121CEE: + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_08121CF4: .4byte 0x03002360 +_08121CF8: .4byte 0x02039E00 +_08121CFC: .4byte 0x08121D01 + thumb_func_end CB2_ExitOnKeyPress + + thumb_func_start CB2_ExitMailReadFreeVars +CB2_ExitMailReadFreeVars: @ 0x08121D00 + push {r4, lr} + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08121D7E + ldr r4, _08121D84 + ldr r0, [r4] + adds r0, #0xcc + ldr r0, [r0] + bl SetMainCallback2 + ldr r0, [r4] + adds r1, r0, #0 + adds r1, #0xdb + ldrb r1, [r1] + cmp r1, #2 + bgt _08121D4E + cmp r1, #1 + blt _08121D4E + adds r0, #0xd4 + ldr r0, [r0] + ldrh r0, [r0, #0x1e] + bl sub_080D2724 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl FreeMonIconPalette + ldr r0, [r4] + adds r0, #0xdc + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08121D88 + adds r0, r0, r1 + bl sub_080D2798 +_08121D4E: + ldr r4, _08121D84 + ldr r0, [r4] + ldr r2, _08121D8C + movs r1, #0 + bl memset + bl ResetPaletteFade + movs r0, #0 + bl UnsetBgTilemapBuffer + movs r0, #1 + bl UnsetBgTilemapBuffer + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + bl FreeAllWindowBuffers + ldr r0, [r4] + bl Free + movs r0, #0 + str r0, [r4] +_08121D7E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08121D84: .4byte 0x02039E00 +_08121D88: .4byte 0x020205AC +_08121D8C: .4byte 0x000020EC + thumb_func_end CB2_ExitMailReadFreeVars + diff --git a/asm/mail_data.s b/asm/mail_data.s new file mode 100644 index 0000000..4031e60 --- /dev/null +++ b/asm/mail_data.s @@ -0,0 +1,596 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ClearMailData +ClearMailData: @ 0x080D3C0C + push {r4, r5, lr} + movs r4, #0 + ldr r5, _080D3C34 +_080D3C12: + lsls r1, r4, #3 + adds r1, r1, r4 + lsls r1, r1, #2 + ldr r0, _080D3C38 + adds r1, r1, r0 + ldr r0, [r5] + adds r0, r0, r1 + bl ClearMailStruct + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xf + bls _080D3C12 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D3C34: .4byte 0x03005AEC +_080D3C38: .4byte 0x00002BE0 + thumb_func_end ClearMailData + + thumb_func_start ClearMailStruct +ClearMailStruct: @ 0x080D3C3C + push {r4, r5, r6, lr} + adds r3, r0, #0 + ldr r0, _080D3C8C + adds r4, r0, #0 + adds r1, r3, #0 + movs r2, #8 +_080D3C48: + ldrh r0, [r1] + orrs r0, r4 + strh r0, [r1] + adds r1, #2 + subs r2, #1 + cmp r2, #0 + bge _080D3C48 + movs r2, #0 + adds r6, r3, #0 + adds r6, #0x1a + adds r4, r3, #0 + adds r4, #0x12 + movs r5, #0xff +_080D3C62: + adds r1, r4, r2 + ldrb r0, [r1] + orrs r0, r5 + strb r0, [r1] + adds r2, #1 + cmp r2, #7 + ble _080D3C62 + adds r1, r6, #0 + movs r2, #0 + adds r0, r1, #3 +_080D3C76: + strb r2, [r0] + subs r0, #1 + cmp r0, r1 + bge _080D3C76 + movs r1, #0 + movs r0, #1 + strh r0, [r3, #0x1e] + strh r1, [r3, #0x20] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080D3C8C: .4byte 0x0000FFFF + thumb_func_end ClearMailStruct + + thumb_func_start MonHasMail +MonHasMail: @ 0x080D3C90 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xc + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl ItemIsMail + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D3CB8 + adds r0, r4, #0 + movs r1, #0x40 + bl GetMonData + cmp r0, #0xff + beq _080D3CB8 + movs r0, #1 + b _080D3CBA +_080D3CB8: + movs r0, #0 +_080D3CBA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end MonHasMail + + thumb_func_start GiveMailToMon +GiveMailToMon: @ 0x080D3CC0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + mov r8, r0 + lsls r1, r1, #0x10 + lsrs r0, r1, #0x10 + str r0, [sp, #8] + mov r0, sp + movs r2, #0 + ldrb r3, [r0, #8] + strb r3, [r0] + lsrs r1, r1, #0x18 + strb r1, [r0, #1] + add r4, sp, #4 + strb r2, [r4] + mov ip, r4 + mov sl, r4 + adds r5, r4, #0 +_080D3CEA: + ldr r2, _080D3E10 + ldr r0, [r2] + ldrb r3, [r5] + lsls r1, r3, #3 + adds r1, r1, r3 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r1, #0xb0 + lsls r1, r1, #6 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0 + beq _080D3D06 + b _080D3E2C +_080D3D06: + movs r4, #0 + ldr r3, _080D3E14 + mov sb, r3 + adds r7, r2, #0 + mov r5, ip + ldr r0, _080D3E18 + adds r6, r0, #0 +_080D3D14: + ldr r2, [r7] + lsls r3, r4, #1 + ldrb r1, [r5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r3, r3, r0 + ldr r1, _080D3E1C + adds r2, r2, r1 + adds r2, r2, r3 + ldrh r0, [r2] + orrs r0, r6 + strh r0, [r2] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #8 + bls _080D3D14 + movs r4, #0 + ldr r5, _080D3E10 + mov r3, ip +_080D3D3E: + ldr r2, [r5] + ldrb r1, [r3] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r4, r0 + ldr r1, _080D3E20 + adds r2, r2, r1 + adds r2, r2, r0 + mov r1, sb + ldr r0, [r1] + adds r0, r0, r4 + ldrb r0, [r0] + strb r0, [r2] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #6 + bls _080D3D3E + ldr r3, _080D3E10 + ldr r2, [r3] + mov r0, ip + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r4, r0 + ldr r1, _080D3E20 + adds r2, r2, r1 + adds r2, r2, r0 + movs r0, #0xff + strb r0, [r2] + movs r4, #0 + adds r5, r3, #0 + mov r3, ip +_080D3D84: + ldr r2, [r5] + ldrb r1, [r3] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r4, r0 + ldr r1, _080D3E24 + adds r2, r2, r1 + adds r2, r2, r0 + mov r1, sb + ldr r0, [r1] + adds r0, #0xa + adds r0, r0, r4 + ldrb r0, [r0] + strb r0, [r2] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _080D3D84 + mov r0, r8 + movs r1, #0xb + bl GetBoxMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + mov r0, r8 + movs r1, #0 + bl GetBoxMonData + adds r1, r0, #0 + adds r0, r4, #0 + bl SpeciesToMailSpecies + ldr r1, _080D3E10 + ldr r3, [r1] + mov r4, sl + ldrb r2, [r4] + lsls r1, r2, #3 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r3, r1 + ldr r2, _080D3E28 + adds r1, r1, r2 + strh r0, [r1] + ldrb r1, [r4] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r3, r3, r0 + movs r4, #0xb0 + lsls r4, r4, #6 + adds r3, r3, r4 + mov r0, sp + ldrh r0, [r0, #8] + strh r0, [r3] + mov r0, r8 + movs r1, #0x40 + mov r2, sl + bl SetMonData + mov r0, r8 + movs r1, #0xc + mov r2, sp + bl SetMonData + mov r1, sl + ldrb r0, [r1] + b _080D3E3A + .align 2, 0 +_080D3E10: .4byte 0x03005AEC +_080D3E14: .4byte 0x03005AF0 +_080D3E18: .4byte 0x0000FFFF +_080D3E1C: .4byte 0x00002BE0 +_080D3E20: .4byte 0x00002BF2 +_080D3E24: .4byte 0x00002BFA +_080D3E28: .4byte 0x00002BFE +_080D3E2C: + adds r0, r3, #1 + strb r0, [r4] + ldrb r0, [r5] + cmp r0, #5 + bhi _080D3E38 + b _080D3CEA +_080D3E38: + movs r0, #0xff +_080D3E3A: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GiveMailToMon + + thumb_func_start SpeciesToMailSpecies +SpeciesToMailSpecies: @ 0x080D3E4C + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xc9 + bne _080D3E64 + adds r0, r1, #0 + bl GetUnownLetterByPersonality + lsls r0, r0, #0x10 + ldr r1, _080D3E68 + adds r0, r0, r1 + lsrs r0, r0, #0x10 +_080D3E64: + pop {r1} + bx r1 + .align 2, 0 +_080D3E68: .4byte 0x75300000 + thumb_func_end SpeciesToMailSpecies + + thumb_func_start MailSpeciesToSpecies +MailSpeciesToSpecies: @ 0x080D3E6C + push {lr} + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldr r0, _080D3E84 + adds r2, r3, r0 + lsls r0, r2, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x1b + bhi _080D3E88 + movs r0, #0xc9 + strh r2, [r1] + b _080D3E8A + .align 2, 0 +_080D3E84: .4byte 0xFFFF8AD0 +_080D3E88: + adds r0, r3, #0 +_080D3E8A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MailSpeciesToSpecies + + thumb_func_start GiveMailToMon2 +GiveMailToMon2: @ 0x080D3E90 + push {r4, r5, r6, r7, lr} + sub sp, #8 + adds r6, r0, #0 + adds r7, r1, #0 + ldrh r5, [r7, #0x20] + adds r1, r5, #0 + bl GiveMailToMon + add r4, sp, #4 + strb r0, [r4] + ldrb r2, [r4] + cmp r2, #0xff + beq _080D3EF4 + ldr r0, _080D3EEC + ldr r1, [r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r1, r1, r0 + ldr r0, _080D3EF0 + adds r1, r1, r0 + adds r0, r7, #0 + ldm r0!, {r2, r3, r7} + stm r1!, {r2, r3, r7} + ldm r0!, {r2, r3, r7} + stm r1!, {r2, r3, r7} + ldm r0!, {r2, r3, r7} + stm r1!, {r2, r3, r7} + adds r0, r6, #0 + movs r1, #0x40 + adds r2, r4, #0 + bl SetMonData + mov r0, sp + strb r5, [r0] + mov r1, sp + lsrs r0, r5, #8 + strb r0, [r1, #1] + adds r0, r6, #0 + movs r1, #0xc + mov r2, sp + bl SetMonData + ldrb r0, [r4] + b _080D3EF6 + .align 2, 0 +_080D3EEC: .4byte 0x03005AEC +_080D3EF0: .4byte 0x00002BE0 +_080D3EF4: + movs r0, #0xff +_080D3EF6: + add sp, #8 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GiveMailToMon2 + + thumb_func_start DummyMailFunc +DummyMailFunc: @ 0x080D3F00 + movs r0, #0 + bx lr + thumb_func_end DummyMailFunc + + thumb_func_start TakeMailFromMon +TakeMailFromMon: @ 0x080D3F04 + push {r4, lr} + sub sp, #8 + adds r4, r0, #0 + bl MonHasMail + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D3F56 + adds r0, r4, #0 + movs r1, #0x40 + bl GetMonData + add r2, sp, #4 + strb r0, [r2] + ldr r0, _080D3F60 + ldr r3, [r0] + ldrb r1, [r2] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r3, r3, r0 + movs r0, #0xb0 + lsls r0, r0, #6 + adds r3, r3, r0 + movs r1, #0 + movs r0, #0 + strh r0, [r3] + movs r0, #0xff + strb r0, [r2] + mov r0, sp + strb r1, [r0] + strb r1, [r0, #1] + adds r0, r4, #0 + movs r1, #0x40 + bl SetMonData + adds r0, r4, #0 + movs r1, #0xc + mov r2, sp + bl SetMonData +_080D3F56: + add sp, #8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D3F60: .4byte 0x03005AEC + thumb_func_end TakeMailFromMon + + thumb_func_start ClearMailItemId +ClearMailItemId: @ 0x080D3F64 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080D3F80 + ldr r2, [r1] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r2, r2, r1 + movs r0, #0xb0 + lsls r0, r0, #6 + adds r2, r2, r0 + movs r0, #0 + strh r0, [r2] + bx lr + .align 2, 0 +_080D3F80: .4byte 0x03005AEC + thumb_func_end ClearMailItemId + + thumb_func_start TakeMailFromMon2 +TakeMailFromMon2: @ 0x080D3F84 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0xc + adds r5, r0, #0 + mov r0, sp + movs r1, #0 + strb r1, [r0] + strb r1, [r0, #1] + add r1, sp, #4 + movs r0, #0xff + strb r0, [r1] + movs r7, #6 + mov sb, r1 + ldr r0, _080D401C + mov r8, r0 + ldr r3, _080D4020 +_080D3FA8: + mov r1, r8 + ldr r0, [r1] + lsls r1, r7, #3 + adds r1, r1, r7 + lsls r1, r1, #2 + adds r4, r0, r1 + movs r2, #0xb0 + lsls r2, r2, #6 + adds r0, r4, r2 + ldrh r6, [r0] + cmp r6, #0 + bne _080D4024 + adds r4, r4, r3 + adds r0, r5, #0 + movs r1, #0x40 + str r3, [sp, #8] + bl GetMonData + mov r1, r8 + ldr r2, [r1] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r3, [sp, #8] + adds r1, r1, r3 + ldm r1!, {r0, r2, r3} + stm r4!, {r0, r2, r3} + ldm r1!, {r0, r2, r3} + stm r4!, {r0, r2, r3} + ldm r1!, {r0, r2, r3} + stm r4!, {r0, r2, r3} + adds r0, r5, #0 + movs r1, #0x40 + bl GetMonData + mov r1, r8 + ldr r2, [r1] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r2, r2, r1 + movs r3, #0xb0 + lsls r3, r3, #6 + adds r2, r2, r3 + strh r6, [r2] + adds r0, r5, #0 + movs r1, #0x40 + mov r2, sb + bl SetMonData + adds r0, r5, #0 + movs r1, #0xc + mov r2, sp + bl SetMonData + adds r0, r7, #0 + b _080D4030 + .align 2, 0 +_080D401C: .4byte 0x03005AEC +_080D4020: .4byte 0x00002BE0 +_080D4024: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #0xf + bls _080D3FA8 + movs r0, #0xff +_080D4030: + add sp, #0xc + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TakeMailFromMon2 + + thumb_func_start ItemIsMail +ItemIsMail: @ 0x080D4040 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x84 + bgt _080D4052 + cmp r0, #0x79 + blt _080D4052 + movs r0, #1 + b _080D4054 +_080D4052: + movs r0, #0 +_080D4054: + pop {r1} + bx r1 + thumb_func_end ItemIsMail + diff --git a/asm/main.s b/asm/main.s new file mode 100644 index 0000000..d769535 --- /dev/null +++ b/asm/main.s @@ -0,0 +1,772 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start AgbMain +AgbMain: @ 0x080003A4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r0, #0xff + bl RegisterRamReset + movs r1, #0xa0 + lsls r1, r1, #0x13 + ldr r2, _08000468 + adds r0, r2, #0 + strh r0, [r1] + bl InitGpuRegManager + ldr r1, _0800046C + ldr r3, _08000470 + adds r0, r3, #0 + strh r0, [r1] + bl InitKeys + bl InitIntrHandlers + bl m4aSoundInit + bl EnableVCountIntrAtLine150 + bl sub_0800E194 + bl RtcInit + bl CheckForFlashMemory + bl InitMainCallbacks + bl InitMapMusic + bl ClearDma3Requests + bl ResetBgs + bl SetDefaultFontsPointer + ldr r0, _08000474 + movs r1, #0xe0 + lsls r1, r1, #9 + bl InitHeap + ldr r0, _08000478 + movs r4, #0 + strb r4, [r0] + ldr r0, _0800047C + ldr r0, [r0] + cmp r0, #1 + beq _08000414 + movs r0, #0 + bl SetMainCallback2 +_08000414: + ldr r2, _08000480 + strb r4, [r2] + ldr r1, _08000484 + movs r3, #0xfc + lsls r3, r3, #4 + adds r0, r3, #0 + strh r0, [r1] + ldr r7, _08000488 + movs r0, #0 + mov r8, r0 + adds r6, r2, #0 +_0800042A: + bl ReadKeys + ldr r0, _08000478 + ldrb r0, [r0] + cmp r0, #0 + bne _08000454 + ldrh r1, [r7, #0x28] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08000454 + movs r0, #0xe + ands r0, r1 + cmp r0, #0xe + bne _08000454 + bl rfu_REQ_stopMode + bl rfu_waitREQComplete + bl DoSoftReset +_08000454: + bl sub_08086F98 + cmp r0, #1 + bne _0800048C + strb r0, [r6] + bl UpdateLinkAndCallCallbacks + movs r0, #0 + strb r0, [r6] + b _080004B2 + .align 2, 0 +_08000468: .4byte 0x00007FFF +_0800046C: .4byte 0x04000204 +_08000470: .4byte 0x00004014 +_08000474: .4byte 0x02000000 +_08000478: .4byte 0x030027A0 +_0800047C: .4byte 0x03005AE8 +_08000480: .4byte 0x03002354 +_08000484: .4byte 0x03000000 +_08000488: .4byte 0x03002360 +_0800048C: + ldr r5, _080004C0 + movs r0, #0 + strb r0, [r5] + bl UpdateLinkAndCallCallbacks + bl sub_08086F2C + adds r4, r0, #0 + cmp r4, #1 + bne _080004B2 + movs r0, #0 + strh r0, [r7, #0x2e] + bl ClearSpriteCopyRequests + strb r4, [r5] + bl UpdateLinkAndCallCallbacks + mov r2, r8 + strb r2, [r5] +_080004B2: + bl PlayTimeCounter_Update + bl MapMusicMain + bl WaitForVBlank + b _0800042A + .align 2, 0 +_080004C0: .4byte 0x03002354 + thumb_func_end AgbMain + + thumb_func_start UpdateLinkAndCallCallbacks +UpdateLinkAndCallCallbacks: @ 0x080004C4 + push {lr} + bl HandleLinkConnection + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080004D4 + bl CallCallbacks +_080004D4: + pop {r0} + bx r0 + thumb_func_end UpdateLinkAndCallCallbacks + + thumb_func_start InitMainCallbacks +InitMainCallbacks: @ 0x080004D8 + push {lr} + ldr r2, _08000500 + movs r0, #0 + str r0, [r2, #0x20] + ldr r1, _08000504 + str r0, [r1] + str r0, [r2, #0x24] + str r0, [r2] + ldr r0, _08000508 + bl SetMainCallback2 + ldr r1, _0800050C + ldr r0, _08000510 + str r0, [r1] + ldr r1, _08000514 + ldr r0, _08000518 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08000500: .4byte 0x03002360 +_08000504: .4byte 0x0203CC28 +_08000508: .4byte 0x0816CC91 +_0800050C: .4byte 0x03005AF0 +_08000510: .4byte 0x020246F8 +_08000514: .4byte 0x03005AF4 +_08000518: .4byte 0x020294AC + thumb_func_end InitMainCallbacks + + thumb_func_start CallCallbacks +CallCallbacks: @ 0x0800051C + push {r4, lr} + ldr r4, _0800053C + ldr r0, [r4] + cmp r0, #0 + beq _0800052A + bl _call_via_r0 +_0800052A: + ldr r0, [r4, #4] + cmp r0, #0 + beq _08000534 + bl _call_via_r0 +_08000534: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800053C: .4byte 0x03002360 + thumb_func_end CallCallbacks + + thumb_func_start SetMainCallback2 +SetMainCallback2: @ 0x08000540 + ldr r1, _08000550 + str r0, [r1, #4] + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + movs r0, #0 + strb r0, [r1] + bx lr + .align 2, 0 +_08000550: .4byte 0x03002360 + thumb_func_end SetMainCallback2 + + thumb_func_start StartTimer1 +StartTimer1: @ 0x08000554 + ldr r1, _0800055C + movs r0, #0x80 + strh r0, [r1] + bx lr + .align 2, 0 +_0800055C: .4byte 0x04000106 + thumb_func_end StartTimer1 + + thumb_func_start SeedRngAndSetTrainerId +SeedRngAndSetTrainerId: @ 0x08000560 + push {r4, lr} + ldr r0, _0800057C + ldrh r4, [r0] + adds r0, r4, #0 + bl SeedRng + ldr r1, _08000580 + movs r0, #0 + strh r0, [r1] + ldr r0, _08000584 + strh r4, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800057C: .4byte 0x04000104 +_08000580: .4byte 0x04000106 +_08000584: .4byte 0x02020000 + thumb_func_end SeedRngAndSetTrainerId + + thumb_func_start GetGeneratedTrainerIdLower +GetGeneratedTrainerIdLower: @ 0x08000588 + ldr r0, _08000590 + ldrh r0, [r0] + bx lr + .align 2, 0 +_08000590: .4byte 0x02020000 + thumb_func_end GetGeneratedTrainerIdLower + + thumb_func_start EnableVCountIntrAtLine150 +EnableVCountIntrAtLine150: @ 0x08000594 + push {lr} + movs r0, #4 + bl GetGpuReg + movs r1, #0xff + ands r1, r0 + movs r2, #0x96 + lsls r2, r2, #8 + adds r0, r2, #0 + orrs r1, r0 + movs r0, #0x20 + orrs r1, r0 + movs r0, #4 + bl SetGpuReg + movs r0, #4 + bl EnableInterrupts + pop {r0} + bx r0 + thumb_func_end EnableVCountIntrAtLine150 + + thumb_func_start InitKeys +InitKeys: @ 0x080005BC + ldr r1, _080005D8 + movs r0, #5 + strh r0, [r1] + ldr r1, _080005DC + movs r0, #0x28 + strh r0, [r1] + ldr r1, _080005E0 + movs r0, #0 + strh r0, [r1, #0x2c] + strh r0, [r1, #0x2e] + strh r0, [r1, #0x30] + strh r0, [r1, #0x28] + strh r0, [r1, #0x2a] + bx lr + .align 2, 0 +_080005D8: .4byte 0x0300279C +_080005DC: .4byte 0x03002350 +_080005E0: .4byte 0x03002360 + thumb_func_end InitKeys + + thumb_func_start ReadKeys +ReadKeys: @ 0x080005E4 + push {lr} + ldr r0, _08000620 + ldrh r1, [r0] + ldr r2, _08000624 + adds r0, r2, #0 + adds r3, r0, #0 + eors r3, r1 + ldr r1, _08000628 + ldrh r2, [r1, #0x28] + adds r0, r3, #0 + bics r0, r2 + strh r0, [r1, #0x2a] + strh r0, [r1, #0x2e] + strh r0, [r1, #0x30] + adds r2, r1, #0 + cmp r3, #0 + beq _08000630 + ldrh r0, [r2, #0x2c] + cmp r0, r3 + bne _08000630 + ldrh r0, [r2, #0x32] + subs r0, #1 + strh r0, [r2, #0x32] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08000636 + strh r3, [r2, #0x30] + ldr r0, _0800062C + b _08000632 + .align 2, 0 +_08000620: .4byte 0x04000130 +_08000624: .4byte 0x000003FF +_08000628: .4byte 0x03002360 +_0800062C: .4byte 0x0300279C +_08000630: + ldr r0, _0800067C +_08000632: + ldrh r0, [r0] + strh r0, [r2, #0x32] +_08000636: + strh r3, [r2, #0x28] + strh r3, [r2, #0x2c] + ldr r0, _08000680 + ldr r0, [r0] + ldrb r0, [r0, #0x13] + cmp r0, #2 + bne _08000668 + ldrh r1, [r2, #0x2e] + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08000658 + movs r0, #1 + orrs r0, r1 + strh r0, [r2, #0x2e] +_08000658: + ldrh r1, [r2, #0x2c] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08000668 + movs r0, #1 + orrs r0, r1 + strh r0, [r2, #0x2c] +_08000668: + ldrh r1, [r2, #0x2e] + ldrh r0, [r2, #0x36] + ands r0, r1 + cmp r0, #0 + beq _08000676 + movs r0, #1 + strh r0, [r2, #0x34] +_08000676: + pop {r0} + bx r0 + .align 2, 0 +_0800067C: .4byte 0x03002350 +_08000680: .4byte 0x03005AF0 + thumb_func_end ReadKeys + + thumb_func_start InitIntrHandlers +InitIntrHandlers: @ 0x08000684 + push {r4, r5, lr} + ldr r5, _080006D0 + ldr r4, _080006D4 + ldr r3, _080006D8 + ldr r2, _080006DC + movs r1, #0xd +_08000690: + ldm r3!, {r0} + stm r2!, {r0} + subs r1, #1 + cmp r1, #0 + bge _08000690 + ldr r0, _080006E0 + str r5, [r0] + str r4, [r0, #4] + ldr r1, _080006E4 + str r1, [r0, #8] + ldr r0, [r0, #8] + ldr r0, _080006E8 + str r4, [r0] + movs r0, #0 + bl SetVBlankCallback + movs r0, #0 + bl SetHBlankCallback + movs r0, #0 + bl SetSerialCallback + ldr r1, _080006EC + movs r0, #1 + strh r0, [r1] + movs r0, #1 + bl EnableInterrupts + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080006D0: .4byte 0x08000248 +_080006D4: .4byte 0x030027F0 +_080006D8: .4byte 0x0829BDBC +_080006DC: .4byte 0x030027B0 +_080006E0: .4byte 0x040000D4 +_080006E4: .4byte 0x84000200 +_080006E8: .4byte 0x03007FFC +_080006EC: .4byte 0x04000208 + thumb_func_end InitIntrHandlers + + thumb_func_start SetVBlankCallback +SetVBlankCallback: @ 0x080006F0 + ldr r1, _080006F8 + str r0, [r1, #0xc] + bx lr + .align 2, 0 +_080006F8: .4byte 0x03002360 + thumb_func_end SetVBlankCallback + + thumb_func_start SetHBlankCallback +SetHBlankCallback: @ 0x080006FC + ldr r1, _08000704 + str r0, [r1, #0x10] + bx lr + .align 2, 0 +_08000704: .4byte 0x03002360 + thumb_func_end SetHBlankCallback + + thumb_func_start SetVCountCallback +SetVCountCallback: @ 0x08000708 + ldr r1, _08000710 + str r0, [r1, #0x14] + bx lr + .align 2, 0 +_08000710: .4byte 0x03002360 + thumb_func_end SetVCountCallback + + thumb_func_start RestoreSerialTimer3IntrHandlers +RestoreSerialTimer3IntrHandlers: @ 0x08000714 + ldr r0, _08000720 + ldr r1, _08000724 + str r1, [r0, #4] + ldr r1, _08000728 + str r1, [r0, #8] + bx lr + .align 2, 0 +_08000720: .4byte 0x030027B0 +_08000724: .4byte 0x08000879 +_08000728: .4byte 0x0800B4E5 + thumb_func_end RestoreSerialTimer3IntrHandlers + + thumb_func_start SetSerialCallback +SetSerialCallback: @ 0x0800072C + ldr r1, _08000734 + str r0, [r1, #0x18] + bx lr + .align 2, 0 +_08000734: .4byte 0x03002360 + thumb_func_end SetSerialCallback + + thumb_func_start VBlankIntr +VBlankIntr: @ 0x08000738 + push {r4, lr} + ldr r0, _08000748 + ldrb r0, [r0] + cmp r0, #0 + beq _0800074C + bl ReadU16 + b _08000758 + .align 2, 0 +_08000748: .4byte 0x0300319C +_0800074C: + ldr r0, _080007DC + ldrb r0, [r0] + cmp r0, #0 + bne _08000758 + bl LinkVSync +_08000758: + ldr r0, _080007E0 + ldr r1, [r0, #0x20] + adds r1, #1 + str r1, [r0, #0x20] + ldr r1, _080007E4 + ldr r1, [r1] + adds r4, r0, #0 + cmp r1, #0 + beq _08000778 + ldr r2, [r1] + movs r0, #2 + rsbs r0, r0, #0 + cmp r2, r0 + bhi _08000778 + adds r0, r2, #1 + str r0, [r1] +_08000778: + ldr r0, [r4, #0xc] + cmp r0, #0 + beq _08000782 + bl _call_via_r0 +_08000782: + ldr r0, [r4, #0x24] + adds r0, #1 + str r0, [r4, #0x24] + bl CopyBufferedValuesToGpuRegs + bl ProcessDma3Requests + ldr r1, _080007E8 + ldr r0, _080007EC + ldrb r0, [r0, #4] + strb r0, [r1] + bl m4aSoundMain + bl sub_080334E0 + ldr r1, _080007F0 + adds r0, r4, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080007BA + ldr r0, _080007F4 + ldr r0, [r0] + ldr r1, _080007F8 + ands r0, r1 + cmp r0, #0 + bne _080007BE +_080007BA: + bl Random +_080007BE: + bl sub_0800DC40 + ldr r2, _080007FC + ldrh r0, [r2] + movs r1, #1 + orrs r0, r1 + strh r0, [r2] + ldr r0, _080007E0 + ldrh r2, [r0, #0x1c] + ldrh r3, [r0, #0x1c] + orrs r1, r2 + strh r1, [r0, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080007DC: .4byte 0x030027E8 +_080007E0: .4byte 0x03002360 +_080007E4: .4byte 0x0203CC28 +_080007E8: .4byte 0x03002FF0 +_080007EC: .4byte 0x03006120 +_080007F0: .4byte 0x00000439 +_080007F4: .4byte 0x02022C90 +_080007F8: .4byte 0x013F0102 +_080007FC: .4byte 0x03007FF8 + thumb_func_end VBlankIntr + + thumb_func_start InitFlashTimer +InitFlashTimer: @ 0x08000800 + push {lr} + ldr r1, _08000810 + movs r0, #2 + bl SetFlashTimerIntr + pop {r0} + bx r0 + .align 2, 0 +_08000810: .4byte 0x030027CC + thumb_func_end InitFlashTimer + + thumb_func_start HBlankIntr +HBlankIntr: @ 0x08000814 + push {r4, lr} + ldr r4, _0800083C + ldr r0, [r4, #0x10] + cmp r0, #0 + beq _08000822 + bl _call_via_r0 +_08000822: + ldr r2, _08000840 + ldrh r0, [r2] + movs r1, #2 + orrs r0, r1 + strh r0, [r2] + ldrh r0, [r4, #0x1c] + ldrh r2, [r4, #0x1c] + orrs r1, r0 + strh r1, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800083C: .4byte 0x03002360 +_08000840: .4byte 0x03007FF8 + thumb_func_end HBlankIntr + + thumb_func_start VCountIntr +VCountIntr: @ 0x08000844 + push {r4, lr} + ldr r4, _08000870 + ldr r0, [r4, #0x14] + cmp r0, #0 + beq _08000852 + bl _call_via_r0 +_08000852: + bl m4aSoundVSync + ldr r2, _08000874 + ldrh r0, [r2] + movs r1, #4 + orrs r0, r1 + strh r0, [r2] + ldrh r0, [r4, #0x1c] + ldrh r2, [r4, #0x1c] + orrs r1, r0 + strh r1, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08000870: .4byte 0x03002360 +_08000874: .4byte 0x03007FF8 + thumb_func_end VCountIntr + + thumb_func_start SerialIntr +SerialIntr: @ 0x08000878 + push {r4, lr} + ldr r4, _080008A0 + ldr r0, [r4, #0x18] + cmp r0, #0 + beq _08000886 + bl _call_via_r0 +_08000886: + ldr r2, _080008A4 + ldrh r0, [r2] + movs r1, #0x80 + orrs r0, r1 + strh r0, [r2] + ldrh r0, [r4, #0x1c] + ldrh r2, [r4, #0x1c] + orrs r1, r0 + strh r1, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080008A0: .4byte 0x03002360 +_080008A4: .4byte 0x03007FF8 + thumb_func_end SerialIntr + + thumb_func_start IntrDummy +IntrDummy: @ 0x080008A8 + bx lr + .align 2, 0 + thumb_func_end IntrDummy + + thumb_func_start WaitForVBlank +WaitForVBlank: @ 0x080008AC + push {lr} + ldr r2, _080008D4 + ldrh r1, [r2, #0x1c] + ldr r0, _080008D8 + ands r0, r1 + ldrh r1, [r2, #0x1c] + strh r0, [r2, #0x1c] + ldrh r1, [r2, #0x1c] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080008D0 + movs r3, #1 +_080008C6: + ldrh r1, [r2, #0x1c] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _080008C6 +_080008D0: + pop {r0} + bx r0 + .align 2, 0 +_080008D4: .4byte 0x03002360 +_080008D8: .4byte 0x0000FFFE + thumb_func_end WaitForVBlank + + thumb_func_start SetTrainerHillVBlankCounter +SetTrainerHillVBlankCounter: @ 0x080008DC + ldr r1, _080008E4 + str r0, [r1] + bx lr + .align 2, 0 +_080008E4: .4byte 0x0203CC28 + thumb_func_end SetTrainerHillVBlankCounter + + thumb_func_start ClearTrainerHillVBlankCounter +ClearTrainerHillVBlankCounter: @ 0x080008E8 + ldr r1, _080008F0 + movs r0, #0 + str r0, [r1] + bx lr + .align 2, 0 +_080008F0: .4byte 0x0203CC28 + thumb_func_end ClearTrainerHillVBlankCounter + + thumb_func_start DoSoftReset +DoSoftReset: @ 0x080008F4 + push {r4, lr} + ldr r1, _08000950 + movs r0, #0 + strh r0, [r1] + bl m4aSoundVSyncOff + bl ScanlineEffect_Stop + ldr r1, _08000954 + ldrh r2, [r1, #0xa] + ldr r3, _08000958 + adds r0, r3, #0 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r4, [r1, #0xa] + ldr r2, _0800095C + adds r0, r2, #0 + ands r0, r4 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + adds r1, #0xc + ldrh r4, [r1, #0xa] + adds r0, r3, #0 + ands r0, r4 + strh r0, [r1, #0xa] + ldrh r4, [r1, #0xa] + adds r0, r2, #0 + ands r0, r4 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + ldr r0, _08000960 + ldrh r1, [r0, #0xa] + ands r3, r1 + strh r3, [r0, #0xa] + ldrh r1, [r0, #0xa] + ands r2, r1 + strh r2, [r0, #0xa] + ldrh r0, [r0, #0xa] + bl SiiRtcProtect + movs r0, #0xff + bl SoftReset + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08000950: .4byte 0x04000208 +_08000954: .4byte 0x040000BC +_08000958: .4byte 0x0000C5FF +_0800095C: .4byte 0x00007FFF +_08000960: .4byte 0x040000D4 + thumb_func_end DoSoftReset + + thumb_func_start ClearPokemonCrySongs +ClearPokemonCrySongs: @ 0x08000964 + push {lr} + sub sp, #4 + mov r1, sp + movs r0, #0 + strh r0, [r1] + ldr r1, _08000980 + ldr r2, _08000984 + mov r0, sp + bl CpuSet + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_08000980: .4byte 0x030070D0 +_08000984: .4byte 0x01000034 + thumb_func_end ClearPokemonCrySongs + diff --git a/asm/main_menu.s b/asm/main_menu.s new file mode 100644 index 0000000..3b6685c --- /dev/null +++ b/asm/main_menu.s @@ -0,0 +1,6078 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start CB2_MainMenu +CB2_MainMenu: @ 0x0802F314 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CB2_MainMenu + + thumb_func_start VBlankCB_MainMenu +VBlankCB_MainMenu: @ 0x0802F32C + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end VBlankCB_MainMenu + + thumb_func_start CB2_InitMainMenu +CB2_InitMainMenu: @ 0x0802F340 + push {lr} + movs r0, #0 + bl InitMainMenu + pop {r0} + bx r0 + thumb_func_end CB2_InitMainMenu + + thumb_func_start CB2_ReinitMainMenu +CB2_ReinitMainMenu: @ 0x0802F34C + push {lr} + movs r0, #1 + bl InitMainMenu + pop {r0} + bx r0 + thumb_func_end CB2_ReinitMainMenu + + thumb_func_start InitMainMenu +InitMainMenu: @ 0x0802F358 + push {r4, r5, lr} + sub sp, #0xc + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + bl SetVBlankCallback + movs r0, #0 + movs r1, #0 + bl SetGpuReg + movs r0, #0xc + movs r1, #0 + bl SetGpuReg + movs r0, #0xa + movs r1, #0 + bl SetGpuReg + movs r0, #8 + movs r1, #0 + bl SetGpuReg + movs r0, #0x18 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1a + movs r1, #0 + bl SetGpuReg + movs r0, #0x14 + movs r1, #0 + bl SetGpuReg + movs r0, #0x16 + movs r1, #0 + bl SetGpuReg + movs r0, #0x10 + movs r1, #0 + bl SetGpuReg + movs r0, #0x12 + movs r1, #0 + bl SetGpuReg + add r1, sp, #4 + movs r0, #0 + strh r0, [r1] + ldr r1, _0802F434 + add r0, sp, #4 + str r0, [r1] + movs r0, #0xc0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _0802F438 + str r0, [r1, #8] + ldr r0, [r1, #8] + movs r5, #0 + str r5, [sp, #8] + add r0, sp, #8 + str r0, [r1] + movs r0, #0xe0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _0802F43C + str r0, [r1, #8] + ldr r0, [r1, #8] + add r0, sp, #4 + strh r5, [r0] + str r0, [r1] + ldr r0, _0802F440 + str r0, [r1, #4] + ldr r0, _0802F444 + str r0, [r1, #8] + ldr r0, [r1, #8] + bl ResetPaletteFade + ldr r0, _0802F448 + movs r1, #0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _0802F44C + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + bl ScanlineEffect_Stop + bl ResetTasks + bl ResetSpriteData + bl FreeAllSpritePalettes + cmp r4, #0 + beq _0802F450 + movs r0, #1 + rsbs r0, r0, #0 + str r5, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + b _0802F462 + .align 2, 0 +_0802F434: .4byte 0x040000D4 +_0802F438: .4byte 0x8100C000 +_0802F43C: .4byte 0x85000100 +_0802F440: .4byte 0x05000002 +_0802F444: .4byte 0x810001FF +_0802F448: .4byte 0x082D2930 +_0802F44C: .4byte 0x082D2950 +_0802F450: + movs r0, #1 + rsbs r0, r0, #0 + ldr r1, _0802F520 + str r1, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade +_0802F462: + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _0802F524 + movs r0, #0 + movs r2, #2 + bl InitBgsFromTemplates + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + ldr r0, _0802F528 + bl InitWindows + bl DeactivateAllTextPrinters + ldr r1, _0802F52C + movs r0, #0 + bl LoadMainMenuWindowFrameTiles + movs r0, #0x40 + movs r1, #0 + bl SetGpuReg + movs r0, #0x44 + movs r1, #0 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0 + bl SetGpuReg + movs r0, #0x4a + movs r1, #0 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + movs r0, #1 + bl EnableInterrupts + ldr r0, _0802F530 + bl SetVBlankCallback + ldr r0, _0802F534 + bl SetMainCallback2 + movs r1, #0xc1 + lsls r1, r1, #6 + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #1 + bl HideBg + ldr r0, _0802F538 + movs r1, #0 + bl CreateTask + movs r0, #0 + add sp, #0xc + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0802F520: .4byte 0x0000FFFF +_0802F524: .4byte 0x082D2978 +_0802F528: .4byte 0x082D28C8 +_0802F52C: .4byte 0x000001D5 +_0802F530: .4byte 0x0802F32D +_0802F534: .4byte 0x0802F315 +_0802F538: .4byte 0x0802F53D + thumb_func_end InitMainMenu + + thumb_func_start Task_MainMenuCheckSaveFile +Task_MainMenuCheckSaveFile: @ 0x0802F53C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r6, r0, #3 + ldr r0, _0802F5C0 + mov r8, r0 + adds r4, r6, r0 + ldr r0, _0802F5C4 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + beq _0802F564 + b _0802F704 +_0802F564: + movs r0, #0x40 + movs r1, #0 + bl SetGpuReg + movs r0, #0x44 + movs r1, #0 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0x11 + bl SetGpuReg + movs r0, #0x4a + movs r1, #0x31 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0xc1 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #7 + bl SetGpuReg + bl IsWirelessAdapterConnected + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0802F5AA + movs r0, #1 + strh r0, [r4, #0x1e] +_0802F5AA: + ldr r0, _0802F5C8 + ldrh r0, [r0] + cmp r0, #2 + beq _0802F614 + cmp r0, #2 + bgt _0802F5CC + cmp r0, #0 + beq _0802F66C + cmp r0, #1 + beq _0802F5D6 + b _0802F66C + .align 2, 0 +_0802F5C0: .4byte 0x03005B68 +_0802F5C4: .4byte 0x02037C74 +_0802F5C8: .4byte 0x03005F50 +_0802F5CC: + cmp r0, #4 + beq _0802F688 + cmp r0, #0xff + beq _0802F628 + b _0802F66C +_0802F5D6: + strh r0, [r4] + movs r1, #0x1e + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0802F5EE + bl IsMysteryEventEnabled + cmp r0, #0 + beq _0802F5EE + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] +_0802F5EE: + bl IsMysteryGiftEnabled + cmp r0, #0 + beq _0802F5FC + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] +_0802F5FC: + ldr r0, _0802F60C + lsls r1, r7, #2 + adds r1, r1, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _0802F610 + str r0, [r1] + b _0802F69A + .align 2, 0 +_0802F60C: .4byte 0x03005B60 +_0802F610: .4byte 0x0802F76D +_0802F614: + ldr r0, _0802F624 + bl CreateMainMenuErrorWindow + strh r5, [r4] + mov r0, r8 + subs r0, #8 + adds r0, r6, r0 + b _0802F696 + .align 2, 0 +_0802F624: .4byte 0x085C8D6B +_0802F628: + ldr r0, _0802F664 + bl CreateMainMenuErrorWindow + mov r0, r8 + subs r0, #8 + adds r0, r6, r0 + ldr r1, _0802F668 + str r1, [r0] + movs r0, #1 + strh r0, [r4] + movs r1, #0x1e + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0802F652 + bl IsMysteryEventEnabled + cmp r0, #1 + bne _0802F652 + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] +_0802F652: + bl IsMysteryGiftEnabled + cmp r0, #1 + bne _0802F69A + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + b _0802F69A + .align 2, 0 +_0802F664: .4byte 0x085C8D44 +_0802F668: .4byte 0x0802F719 +_0802F66C: + movs r0, #0 + strh r0, [r4] + ldr r1, _0802F680 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0802F684 + b _0802F698 + .align 2, 0 +_0802F680: .4byte 0x03005B60 +_0802F684: .4byte 0x0802F76D +_0802F688: + ldr r0, _0802F6BC + bl CreateMainMenuErrorWindow + mov r0, r8 + subs r0, #8 + adds r0, r6, r0 + strh r5, [r0, #8] +_0802F696: + ldr r1, _0802F6C0 +_0802F698: + str r1, [r0] +_0802F69A: + ldr r5, _0802F6C4 + ldrh r1, [r5] + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0802F6F2 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #2 + beq _0802F6D2 + cmp r0, #2 + ble _0802F6C8 + cmp r0, #3 + beq _0802F6EE + b _0802F6F2 + .align 2, 0 +_0802F6BC: .4byte 0x085C8D80 +_0802F6C0: .4byte 0x0802F719 +_0802F6C4: .4byte 0x020229BA +_0802F6C8: + cmp r0, #0 + blt _0802F6F2 + ldrh r0, [r4] + adds r0, #1 + b _0802F6F0 +_0802F6D2: + bl IsMysteryEventEnabled + cmp r0, #0 + bne _0802F6EA + movs r1, #0x1e + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0802F6F2 + bl IsMysteryGiftEnabled + cmp r0, #0 + beq _0802F6F2 +_0802F6EA: + movs r0, #3 + b _0802F6F0 +_0802F6EE: + movs r0, #4 +_0802F6F0: + strh r0, [r5] +_0802F6F2: + ldr r2, _0802F710 + ldrh r1, [r2] + ldr r0, _0802F714 + ands r0, r1 + strh r0, [r2] + strh r0, [r4, #2] + ldrh r0, [r4] + adds r0, #2 + strh r0, [r4, #0x18] +_0802F704: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0802F710: .4byte 0x020229BA +_0802F714: .4byte 0x00007FFF + thumb_func_end Task_MainMenuCheckSaveFile + + thumb_func_start Task_WaitForBatteryDryErrorWindow +Task_WaitForBatteryDryErrorWindow: @ 0x0802F718 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl RunTextPrinters + movs r0, #7 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0802F754 + ldr r0, _0802F75C + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0802F754 + movs r0, #7 + bl ClearWindowTilemap + ldr r0, _0802F760 + bl ClearMainMenuWindowTilemap + ldr r1, _0802F764 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0802F768 + str r1, [r0] +_0802F754: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802F75C: .4byte 0x03002360 +_0802F760: .4byte 0x082D2900 +_0802F764: .4byte 0x03005B60 +_0802F768: .4byte 0x0802F76D + thumb_func_end Task_WaitForBatteryDryErrorWindow + + thumb_func_start Task_MainMenuCheckBattery +Task_MainMenuCheckBattery: @ 0x0802F76C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r5, r4, #0 + ldr r0, _0802F7D8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0802F7F8 + movs r0, #0x40 + movs r1, #0 + bl SetGpuReg + movs r0, #0x44 + movs r1, #0 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0x11 + bl SetGpuReg + movs r0, #0x4a + movs r1, #0x31 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0xc1 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #7 + bl SetGpuReg + bl RtcGetErrorStatus + movs r1, #0xff + lsls r1, r1, #4 + ands r1, r0 + cmp r1, #0 + bne _0802F7E4 + ldr r0, _0802F7DC + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _0802F7E0 + str r0, [r1] + b _0802F7F8 + .align 2, 0 +_0802F7D8: .4byte 0x02037C74 +_0802F7DC: .4byte 0x03005B60 +_0802F7E0: .4byte 0x0802F861 +_0802F7E4: + ldr r0, _0802F800 + bl CreateMainMenuErrorWindow + ldr r1, _0802F804 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0802F808 + str r1, [r0] +_0802F7F8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0802F800: .4byte 0x085C8D93 +_0802F804: .4byte 0x03005B60 +_0802F808: .4byte 0x0802F80D + thumb_func_end Task_MainMenuCheckBattery + + thumb_func_start Task_WaitForSaveFileErrorWindow +Task_WaitForSaveFileErrorWindow: @ 0x0802F80C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl RunTextPrinters + movs r0, #7 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0802F848 + ldr r0, _0802F850 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0802F848 + movs r0, #7 + bl ClearWindowTilemap + ldr r0, _0802F854 + bl ClearMainMenuWindowTilemap + ldr r1, _0802F858 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0802F85C + str r1, [r0] +_0802F848: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802F850: .4byte 0x03002360 +_0802F854: .4byte 0x082D2900 +_0802F858: .4byte 0x03005B60 +_0802F85C: .4byte 0x0802F861 + thumb_func_end Task_WaitForSaveFileErrorWindow + + thumb_func_start Task_DisplayMainMenu +Task_DisplayMainMenu: @ 0x0802F860 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r0, r0, #2 + add r0, r8 + lsls r0, r0, #3 + ldr r1, _0802F924 + adds r6, r0, r1 + ldr r0, _0802F928 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + beq _0802F88C + b _0802FD6C +_0802F88C: + movs r0, #0x40 + movs r1, #0 + bl SetGpuReg + movs r0, #0x44 + movs r1, #0 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0x11 + bl SetGpuReg + movs r0, #0x4a + movs r1, #0x31 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0xc1 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #7 + bl SetGpuReg + add r0, sp, #0xc + strh r4, [r0] + movs r1, #0xfe + movs r2, #2 + bl LoadPalette + add r1, sp, #0xc + ldr r2, _0802F92C + adds r0, r2, #0 + strh r0, [r1] + adds r0, r1, #0 + movs r1, #0xfa + movs r2, #2 + bl LoadPalette + add r1, sp, #0xc + ldr r2, _0802F930 + adds r0, r2, #0 + strh r0, [r1] + adds r0, r1, #0 + movs r1, #0xfb + movs r2, #2 + bl LoadPalette + add r1, sp, #0xc + ldr r2, _0802F934 + adds r0, r2, #0 + strh r0, [r1] + adds r0, r1, #0 + movs r1, #0xfc + movs r2, #2 + bl LoadPalette + ldr r0, _0802F938 + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #0 + bne _0802F940 + add r1, sp, #0xc + ldr r2, _0802F93C + adds r0, r2, #0 + strh r0, [r1] + adds r0, r1, #0 + movs r1, #0xf1 + movs r2, #2 + bl LoadPalette + b _0802F952 + .align 2, 0 +_0802F924: .4byte 0x03005B68 +_0802F928: .4byte 0x02037C74 +_0802F92C: .4byte 0x00007FFF +_0802F930: .4byte 0x0000318C +_0802F934: .4byte 0x0000675A +_0802F938: .4byte 0x03005AF0 +_0802F93C: .4byte 0x00007E04 +_0802F940: + add r1, sp, #0xc + ldr r2, _0802F9E4 + adds r0, r2, #0 + strh r0, [r1] + adds r0, r1, #0 + movs r1, #0xf1 + movs r2, #2 + bl LoadPalette +_0802F952: + ldr r7, _0802F9E8 + mov r0, r8 + lsls r1, r0, #2 + adds r0, r1, r0 + lsls r0, r0, #3 + adds r0, r0, r7 + movs r2, #8 + ldrsh r0, [r0, r2] + mov sb, r1 + cmp r0, #1 + beq _0802FA00 + cmp r0, #1 + ble _0802F978 + cmp r0, #2 + bne _0802F972 + b _0802FABC +_0802F972: + cmp r0, #3 + bne _0802F978 + b _0802FBFC +_0802F978: + movs r0, #0 + movs r1, #0xaa + bl FillWindowPixelBuffer + movs r0, #1 + movs r1, #0xaa + bl FillWindowPixelBuffer + ldr r5, _0802F9EC + str r5, [sp] + movs r4, #1 + rsbs r4, r4, #0 + str r4, [sp, #4] + ldr r0, _0802F9F0 + str r0, [sp, #8] + movs r0, #0 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 + str r5, [sp] + str r4, [sp, #4] + ldr r0, _0802F9F4 + str r0, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 + movs r0, #0 + bl PutWindowTilemap + movs r0, #1 + bl PutWindowTilemap + movs r0, #0 + movs r1, #2 + bl CopyWindowToVram + movs r0, #1 + movs r1, #2 + bl CopyWindowToVram + ldr r4, _0802F9F8 + ldr r5, _0802F9FC + adds r0, r4, #0 + adds r1, r5, #0 + bl DrawMainMenuWindowBorder + adds r4, #8 + b _0802FBDC + .align 2, 0 +_0802F9E4: .4byte 0x0000547F +_0802F9E8: .4byte 0x03005B60 +_0802F9EC: .4byte 0x082D2970 +_0802F9F0: .4byte 0x085C8C70 +_0802F9F4: .4byte 0x085C8C87 +_0802F9F8: .4byte 0x082D28C8 +_0802F9FC: .4byte 0x000001D5 +_0802FA00: + movs r0, #2 + movs r1, #0xaa + bl FillWindowPixelBuffer + movs r0, #3 + movs r1, #0xaa + bl FillWindowPixelBuffer + movs r0, #4 + movs r1, #0xaa + bl FillWindowPixelBuffer + ldr r5, _0802FAA4 + str r5, [sp] + movs r4, #1 + rsbs r4, r4, #0 + str r4, [sp, #4] + ldr r0, _0802FAA8 + str r0, [sp, #8] + movs r0, #2 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 + str r5, [sp] + str r4, [sp, #4] + ldr r0, _0802FAAC + str r0, [sp, #8] + movs r0, #3 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 + str r5, [sp] + str r4, [sp, #4] + ldr r0, _0802FAB0 + str r0, [sp, #8] + movs r0, #4 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 + bl MainMenu_FormatSavegameText + movs r0, #2 + bl PutWindowTilemap + movs r0, #3 + bl PutWindowTilemap + movs r0, #4 + bl PutWindowTilemap + movs r0, #2 + movs r1, #2 + bl CopyWindowToVram + movs r0, #3 + movs r1, #2 + bl CopyWindowToVram + movs r0, #4 + movs r1, #2 + bl CopyWindowToVram + ldr r4, _0802FAB4 + ldr r5, _0802FAB8 + adds r0, r4, #0 + adds r1, r5, #0 + bl DrawMainMenuWindowBorder + adds r0, r4, #0 + adds r0, #8 + adds r1, r5, #0 + bl DrawMainMenuWindowBorder + adds r4, #0x10 + b _0802FBDC + .align 2, 0 +_0802FAA4: .4byte 0x082D2970 +_0802FAA8: .4byte 0x085C8C7C +_0802FAAC: .4byte 0x085C8C70 +_0802FAB0: .4byte 0x085C8C87 +_0802FAB4: .4byte 0x082D28D8 +_0802FAB8: .4byte 0x000001D5 +_0802FABC: + movs r0, #2 + movs r1, #0xaa + bl FillWindowPixelBuffer + movs r0, #3 + movs r1, #0xaa + bl FillWindowPixelBuffer + movs r0, #4 + movs r1, #0xaa + bl FillWindowPixelBuffer + movs r0, #5 + movs r1, #0xaa + bl FillWindowPixelBuffer + ldr r4, _0802FB1C + str r4, [sp] + movs r5, #1 + rsbs r5, r5, #0 + str r5, [sp, #4] + ldr r0, _0802FB20 + str r0, [sp, #8] + movs r0, #2 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 + str r4, [sp] + str r5, [sp, #4] + ldr r0, _0802FB24 + str r0, [sp, #8] + movs r0, #3 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 + movs r1, #0x1e + ldrsh r0, [r6, r1] + cmp r0, #0 + beq _0802FB2C + str r4, [sp] + str r5, [sp, #4] + ldr r0, _0802FB28 + b _0802FB3A + .align 2, 0 +_0802FB1C: .4byte 0x082D2970 +_0802FB20: .4byte 0x085C8C7C +_0802FB24: .4byte 0x085C8C70 +_0802FB28: .4byte 0x085C8C91 +_0802FB2C: + bl IsMysteryEventEnabled + cmp r0, #0 + beq _0802FB50 + str r4, [sp] + str r5, [sp, #4] + ldr r0, _0802FB4C +_0802FB3A: + str r0, [sp, #8] + movs r0, #4 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 + b _0802FB64 + .align 2, 0 +_0802FB4C: .4byte 0x085C8CA7 +_0802FB50: + str r4, [sp] + str r5, [sp, #4] + ldr r0, _0802FBE8 + str r0, [sp, #8] + movs r0, #4 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 +_0802FB64: + ldr r0, _0802FBEC + str r0, [sp] + movs r0, #1 + rsbs r0, r0, #0 + str r0, [sp, #4] + ldr r0, _0802FBF0 + str r0, [sp, #8] + movs r0, #5 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 + bl MainMenu_FormatSavegameText + movs r0, #2 + bl PutWindowTilemap + movs r0, #3 + bl PutWindowTilemap + movs r0, #4 + bl PutWindowTilemap + movs r0, #5 + bl PutWindowTilemap + movs r0, #2 + movs r1, #2 + bl CopyWindowToVram + movs r0, #3 + movs r1, #2 + bl CopyWindowToVram + movs r0, #4 + movs r1, #2 + bl CopyWindowToVram + movs r0, #5 + movs r1, #2 + bl CopyWindowToVram + ldr r4, _0802FBF4 + ldr r5, _0802FBF8 + adds r0, r4, #0 + adds r1, r5, #0 + bl DrawMainMenuWindowBorder + adds r0, r4, #0 + adds r0, #8 + adds r1, r5, #0 + bl DrawMainMenuWindowBorder + adds r0, r4, #0 + adds r0, #0x10 + adds r1, r5, #0 + bl DrawMainMenuWindowBorder + adds r4, #0x18 +_0802FBDC: + adds r0, r4, #0 + adds r1, r5, #0 + bl DrawMainMenuWindowBorder + b _0802FD5E + .align 2, 0 +_0802FBE8: .4byte 0x085C8C9C +_0802FBEC: .4byte 0x082D2970 +_0802FBF0: .4byte 0x085C8C87 +_0802FBF4: .4byte 0x082D28D8 +_0802FBF8: .4byte 0x000001D5 +_0802FBFC: + movs r0, #2 + movs r1, #0xaa + bl FillWindowPixelBuffer + movs r0, #3 + movs r1, #0xaa + bl FillWindowPixelBuffer + movs r0, #4 + movs r1, #0xaa + bl FillWindowPixelBuffer + movs r0, #5 + movs r1, #0xaa + bl FillWindowPixelBuffer + movs r0, #6 + movs r1, #0xaa + bl FillWindowPixelBuffer + ldr r5, _0802FD7C + str r5, [sp] + movs r4, #1 + rsbs r4, r4, #0 + str r4, [sp, #4] + ldr r0, _0802FD80 + str r0, [sp, #8] + movs r0, #2 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 + str r5, [sp] + str r4, [sp, #4] + ldr r0, _0802FD84 + str r0, [sp, #8] + movs r0, #3 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 + str r5, [sp] + str r4, [sp, #4] + ldr r0, _0802FD88 + str r0, [sp, #8] + movs r0, #4 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 + str r5, [sp] + str r4, [sp, #4] + ldr r0, _0802FD8C + str r0, [sp, #8] + movs r0, #5 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 + str r5, [sp] + str r4, [sp, #4] + ldr r0, _0802FD90 + str r0, [sp, #8] + movs r0, #6 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 + bl MainMenu_FormatSavegameText + movs r0, #2 + bl PutWindowTilemap + movs r0, #3 + bl PutWindowTilemap + movs r0, #4 + bl PutWindowTilemap + movs r0, #5 + bl PutWindowTilemap + movs r0, #6 + bl PutWindowTilemap + movs r0, #2 + movs r1, #2 + bl CopyWindowToVram + movs r0, #3 + movs r1, #2 + bl CopyWindowToVram + movs r0, #4 + movs r1, #2 + bl CopyWindowToVram + movs r0, #5 + movs r1, #2 + bl CopyWindowToVram + movs r0, #6 + movs r1, #2 + bl CopyWindowToVram + ldr r5, _0802FD94 + ldr r4, _0802FD98 + adds r0, r5, #0 + adds r1, r4, #0 + bl DrawMainMenuWindowBorder + adds r0, r5, #0 + adds r0, #8 + adds r1, r4, #0 + bl DrawMainMenuWindowBorder + adds r0, r5, #0 + adds r0, #0x10 + adds r1, r4, #0 + bl DrawMainMenuWindowBorder + adds r0, r5, #0 + adds r0, #0x18 + adds r1, r4, #0 + bl DrawMainMenuWindowBorder + adds r0, r5, #0 + adds r0, #0x20 + adds r1, r4, #0 + bl DrawMainMenuWindowBorder + ldr r0, _0802FD9C + ldr r4, _0802FDA0 + adds r1, r4, #0 + bl AddScrollIndicatorArrowPair + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r6, #0x1a] + movs r2, #0x1a + ldrsh r1, [r6, r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r7 + ldr r1, _0802FDA4 + str r1, [r0] + ldrh r0, [r4] + cmp r0, #4 + bne _0802FD5E + movs r4, #0x80 + lsls r4, r4, #6 + movs r0, #0 + adds r1, r4, #0 + movs r2, #1 + bl ChangeBgY + movs r0, #1 + adds r1, r4, #0 + movs r2, #1 + bl ChangeBgY + movs r0, #1 + strh r0, [r6, #0x1c] + movs r0, #0x1a + ldrsh r1, [r6, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r7 + movs r1, #1 + strh r1, [r0, #0x26] +_0802FD5E: + ldr r0, _0802FDA8 + mov r1, sb + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _0802FDAC + str r0, [r1] +_0802FD6C: + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0802FD7C: .4byte 0x082D2970 +_0802FD80: .4byte 0x085C8C7C +_0802FD84: .4byte 0x085C8C70 +_0802FD88: .4byte 0x085C8C9C +_0802FD8C: .4byte 0x085C8CA7 +_0802FD90: .4byte 0x085C8C87 +_0802FD94: .4byte 0x082D28D8 +_0802FD98: .4byte 0x000001D5 +_0802FD9C: .4byte 0x082D2984 +_0802FDA0: .4byte 0x020229BA +_0802FDA4: .4byte 0x081AF275 +_0802FDA8: .4byte 0x03005B60 +_0802FDAC: .4byte 0x0802FDB1 + thumb_func_end Task_DisplayMainMenu + + thumb_func_start Task_HighlightSelectedMainMenuItem +Task_HighlightSelectedMainMenuItem: @ 0x0802FDB0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0802FDD8 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + adds r4, r4, r1 + ldrb r0, [r4, #8] + ldrb r1, [r4, #0xa] + movs r3, #0x24 + ldrsh r2, [r4, r3] + bl HighlightSelectedMainMenuItem + ldr r0, _0802FDDC + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802FDD8: .4byte 0x03005B60 +_0802FDDC: .4byte 0x0802FF4D + thumb_func_end Task_HighlightSelectedMainMenuItem + + thumb_func_start HandleMainMenuInput +HandleMainMenuInput: @ 0x0802FDE0 + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r4, r1, #3 + ldr r7, _0802FE24 + adds r5, r4, r7 + ldr r1, _0802FE28 + ldrh r2, [r1, #0x2e] + movs r0, #1 + ands r0, r2 + cmp r0, #0 + beq _0802FE30 + movs r0, #5 + bl PlaySE + bl IsWirelessAdapterConnected + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + adds r0, r7, #0 + subs r0, #8 + adds r0, r4, r0 + ldr r1, _0802FE2C + str r1, [r0] + b _0802FF40 + .align 2, 0 +_0802FE24: .4byte 0x03005B68 +_0802FE28: .4byte 0x03002360 +_0802FE2C: .4byte 0x0802FF7D +_0802FE30: + movs r0, #2 + ands r0, r2 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #0 + beq _0802FE78 + movs r0, #5 + bl PlaySE + movs r0, #1 + rsbs r0, r0, #0 + ldr r1, _0802FE70 + str r1, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + movs r0, #0x40 + movs r1, #0xf0 + bl SetGpuReg + movs r0, #0x44 + movs r1, #0xa0 + bl SetGpuReg + adds r0, r7, #0 + subs r0, #8 + adds r0, r4, r0 + ldr r1, _0802FE74 + str r1, [r0] + b _0802FF40 + .align 2, 0 +_0802FE70: .4byte 0x0000FFFF +_0802FE74: .4byte 0x08030285 +_0802FE78: + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + beq _0802FECA + movs r0, #2 + ldrsh r2, [r5, r0] + cmp r2, #0 + ble _0802FECA + movs r1, #0 + ldrsh r0, [r5, r1] + cmp r0, #3 + bne _0802FEC4 + movs r1, #0x1c + ldrsh r0, [r5, r1] + cmp r0, #1 + bne _0802FEC4 + cmp r2, #1 + bne _0802FEC4 + movs r4, #0x80 + lsls r4, r4, #6 + movs r0, #0 + adds r1, r4, #0 + movs r2, #2 + bl ChangeBgY + movs r0, #1 + adds r1, r4, #0 + movs r2, #2 + bl ChangeBgY + movs r2, #0x1a + ldrsh r1, [r5, r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r7, r0 + strh r6, [r5, #0x1c] + strh r6, [r0, #0x1e] +_0802FEC4: + ldrh r0, [r5, #2] + subs r0, #1 + b _0802FF2C +_0802FECA: + ldrh r1, [r1, #0x2e] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802FF40 + movs r0, #2 + ldrsh r1, [r5, r0] + movs r2, #0x18 + ldrsh r0, [r5, r2] + subs r0, #1 + cmp r1, r0 + bge _0802FF40 + movs r1, #0 + ldrsh r0, [r5, r1] + cmp r0, #3 + bne _0802FF28 + movs r2, #2 + ldrsh r0, [r5, r2] + cmp r0, #3 + bne _0802FF28 + movs r1, #0x1c + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _0802FF28 + movs r4, #0x80 + lsls r4, r4, #6 + movs r0, #0 + adds r1, r4, #0 + movs r2, #1 + bl ChangeBgY + movs r0, #1 + adds r1, r4, #0 + movs r2, #1 + bl ChangeBgY + ldr r2, _0802FF38 + movs r0, #0x1a + ldrsh r1, [r5, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r1, #1 + strh r1, [r5, #0x1c] + movs r1, #1 + strh r1, [r0, #0x26] +_0802FF28: + ldrh r0, [r5, #2] + adds r0, #1 +_0802FF2C: + strh r0, [r5, #2] + ldr r1, _0802FF3C + strh r0, [r1] + movs r0, #1 + b _0802FF42 + .align 2, 0 +_0802FF38: .4byte 0x03005B60 +_0802FF3C: .4byte 0x020229BA +_0802FF40: + movs r0, #0 +_0802FF42: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end HandleMainMenuInput + + thumb_func_start Task_HandleMainMenuInput +Task_HandleMainMenuInput: @ 0x0802FF4C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl HandleMainMenuInput + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0802FF6C + ldr r0, _0802FF74 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _0802FF78 + str r0, [r1] +_0802FF6C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802FF74: .4byte 0x03005B60 +_0802FF78: .4byte 0x0802FDB1 + thumb_func_end Task_HandleMainMenuInput + + thumb_func_start Task_HandleMainMenuAPressed +Task_HandleMainMenuAPressed: @ 0x0802FF7C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r0, _08030024 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802FF9A + b _08030272 +_0802FF9A: + ldr r2, _08030028 + mov r0, r8 + lsls r1, r0, #2 + adds r0, r1, r0 + lsls r0, r0, #3 + adds r6, r0, r2 + movs r2, #8 + ldrsh r0, [r6, r2] + mov sb, r1 + cmp r0, #3 + bne _0802FFBA + ldrh r0, [r6, #0x22] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl RemoveScrollIndicatorArrowPair +_0802FFBA: + movs r0, #0 + movs r1, #1 + bl DrawStdWindowFrame + movs r0, #1 + movs r1, #1 + bl DrawStdWindowFrame + movs r0, #2 + movs r1, #1 + bl DrawStdWindowFrame + movs r0, #3 + movs r1, #1 + bl DrawStdWindowFrame + movs r0, #4 + movs r1, #1 + bl DrawStdWindowFrame + movs r0, #5 + movs r1, #1 + bl DrawStdWindowFrame + movs r0, #6 + movs r1, #1 + bl DrawStdWindowFrame + movs r0, #7 + movs r1, #1 + bl DrawStdWindowFrame + bl IsWirelessAdapterConnected + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r3, #8 + ldrsh r0, [r6, r3] + cmp r0, #1 + beq _0803002C + cmp r0, #1 + ble _08030016 + cmp r0, #2 + beq _0803003E + cmp r0, #3 + beq _08030086 +_08030016: + movs r1, #0xa + ldrsh r0, [r6, r1] + cmp r0, #0 + beq _080300B4 + cmp r0, #1 + bne _080300B4 + b _0803010C + .align 2, 0 +_08030024: .4byte 0x02037C74 +_08030028: .4byte 0x03005B60 +_0803002C: + movs r2, #0xa + ldrsh r0, [r6, r2] + cmp r0, #1 + beq _080300B4 + cmp r0, #1 + ble _080300B0 + cmp r0, #2 + bne _080300B0 + b _0803010C +_0803003E: + movs r3, #0xa + ldrsh r4, [r6, r3] + cmp r4, #1 + beq _080300B4 + cmp r4, #1 + ble _080300B0 + cmp r4, #2 + beq _08030054 + cmp r4, #3 + beq _0803010C + b _080300B0 +_08030054: + bl IsMysteryGiftEnabled + cmp r0, #0 + beq _0803007C + movs r1, #0x26 + ldrsh r0, [r6, r1] + cmp r0, #0 + beq _08030070 + movs r7, #3 + cmp r5, #0 + bne _0803010E + movs r7, #6 + strh r5, [r6, #8] + b _0803010E +_08030070: + cmp r5, #0 + beq _080300E8 + movs r7, #6 + movs r0, #1 + strh r0, [r6, #8] + b _0803010E +_0803007C: + cmp r5, #0 + beq _08030108 + movs r7, #6 + strh r4, [r6, #8] + b _0803010E +_08030086: + movs r2, #0xa + ldrsh r0, [r6, r2] + cmp r0, #4 + bhi _080300B0 + lsls r0, r0, #2 + ldr r1, _08030098 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08030098: .4byte 0x0803009C +_0803009C: @ jump table + .4byte _080300B0 @ case 0 + .4byte _080300B4 @ case 1 + .4byte _080300B8 @ case 2 + .4byte _080300EC @ case 3 + .4byte _0803010C @ case 4 +_080300B0: + movs r7, #1 + b _0803010E +_080300B4: + movs r7, #0 + b _0803010E +_080300B8: + ldr r0, _080300D8 + mov r1, sb + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r3, #0x26 + ldrsh r0, [r1, r3] + cmp r0, #0 + beq _080300DC + movs r7, #3 + cmp r5, #0 + bne _0803010E + movs r7, #6 + strh r5, [r1, #8] + b _0803010E + .align 2, 0 +_080300D8: .4byte 0x03005B60 +_080300DC: + cmp r5, #0 + beq _080300E8 + movs r7, #6 + movs r0, #1 + strh r0, [r1, #8] + b _0803010E +_080300E8: + movs r7, #5 + b _0803010E +_080300EC: + cmp r5, #0 + beq _08030108 + movs r7, #6 + ldr r0, _08030104 + mov r1, sb + add r1, r8 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #2 + strh r0, [r1, #8] + b _0803010E + .align 2, 0 +_08030104: .4byte 0x03005B60 +_08030108: + movs r7, #4 + b _0803010E +_0803010C: + movs r7, #2 +_0803010E: + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + cmp r7, #6 + bhi _08030150 + lsls r0, r7, #2 + ldr r1, _08030130 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08030130: .4byte 0x08030134 +_08030134: @ jump table + .4byte _08030150 @ case 0 + .4byte _0803017C @ case 1 + .4byte _08030198 @ case 2 + .4byte _080301B0 @ case 3 + .4byte _080301B8 @ case 4 + .4byte _080301C0 @ case 5 + .4byte _080301D4 @ case 6 +_08030150: + ldr r0, _0803016C + movs r1, #0 + strh r1, [r0] + ldr r0, _08030170 + strh r1, [r0] + ldr r1, _08030174 + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08030178 + str r1, [r0] + b _08030250 + .align 2, 0 +_0803016C: .4byte 0x020373B4 +_08030170: .4byte 0x020377B4 +_08030174: .4byte 0x03005B60 +_08030178: .4byte 0x080304F1 +_0803017C: + ldr r0, _0803018C + movs r1, #0 + strh r1, [r0] + ldr r0, _08030190 + strh r1, [r0] + ldr r0, _08030194 + b _080301C2 + .align 2, 0 +_0803018C: .4byte 0x020373B4 +_08030190: .4byte 0x020377B4 +_08030194: .4byte 0x08085B99 +_08030198: + ldr r0, _080301A4 + ldr r1, _080301A8 + str r1, [r0, #8] + ldr r0, _080301AC + b _080301C2 + .align 2, 0 +_080301A4: .4byte 0x03002360 +_080301A8: .4byte 0x0802F34D +_080301AC: .4byte 0x080B9C35 +_080301B0: + ldr r0, _080301B4 + b _080301C2 + .align 2, 0 +_080301B4: .4byte 0x080180E5 +_080301B8: + ldr r0, _080301BC + b _080301C2 + .align 2, 0 +_080301BC: .4byte 0x0817882D +_080301C0: + ldr r0, _080301D0 +_080301C2: + bl SetMainCallback2 + mov r0, r8 + bl DestroyTask + b _08030250 + .align 2, 0 +_080301D0: .4byte 0x08018111 +_080301D4: + ldr r1, _0803023C + mov r0, sb + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r4, #0 + strh r4, [r0, #0xa] + ldr r1, _08030240 + str r1, [r0] + ldr r0, _08030244 + movs r2, #0xf1 + lsls r2, r2, #1 + adds r0, r0, r2 + ldr r1, _08030248 + strh r1, [r0] + ldr r0, _0803024C + adds r0, r0, r2 + strh r1, [r0] + movs r0, #0x18 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1a + movs r1, #0 + bl SetGpuReg + movs r0, #0x14 + movs r1, #0 + bl SetGpuReg + movs r0, #0x16 + movs r1, #0 + bl SetGpuReg + movs r0, #0x10 + movs r1, #0 + bl SetGpuReg + movs r0, #0x12 + movs r1, #0 + bl SetGpuReg + movs r0, #1 + rsbs r0, r0, #0 + str r4, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + b _08030272 + .align 2, 0 +_0803023C: .4byte 0x03005B60 +_08030240: .4byte 0x080302E5 +_08030244: .4byte 0x020373B4 +_08030248: .4byte 0x00007FFF +_0803024C: .4byte 0x020377B4 +_08030250: + bl FreeAllWindowBuffers + cmp r7, #2 + beq _08030264 + ldr r1, _08030260 + movs r0, #0 + strh r0, [r1] + b _08030272 + .align 2, 0 +_08030260: .4byte 0x020229BA +_08030264: + ldr r0, _08030280 + ldrh r1, [r0] + movs r3, #0x80 + lsls r3, r3, #8 + adds r2, r3, #0 + orrs r1, r2 + strh r1, [r0] +_08030272: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08030280: .4byte 0x020229BA + thumb_func_end Task_HandleMainMenuAPressed + + thumb_func_start Task_HandleMainMenuBPressed +Task_HandleMainMenuBPressed: @ 0x08030284 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r5, r2, #0 + ldr r0, _080302D4 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _080302CC + ldr r0, _080302D8 + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r2, #8 + ldrsh r0, [r1, r2] + cmp r0, #3 + bne _080302B8 + ldrh r0, [r1, #0x22] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl RemoveScrollIndicatorArrowPair +_080302B8: + ldr r0, _080302DC + strh r4, [r0] + bl FreeAllWindowBuffers + ldr r0, _080302E0 + bl SetMainCallback2 + adds r0, r5, #0 + bl DestroyTask +_080302CC: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080302D4: .4byte 0x02037C74 +_080302D8: .4byte 0x03005B60 +_080302DC: .4byte 0x020229BA +_080302E0: .4byte 0x080AA06D + thumb_func_end Task_HandleMainMenuBPressed + + thumb_func_start Task_DisplayMainMenuInvalidActionError +Task_DisplayMainMenuInvalidActionError: @ 0x080302E4 + push {r4, r5, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _08030308 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r0, #0xa + ldrsh r1, [r4, r0] + cmp r1, #1 + beq _0803037C + cmp r1, #1 + bgt _0803030C + cmp r1, #0 + beq _08030316 + b _080303C8 + .align 2, 0 +_08030308: .4byte 0x03005B60 +_0803030C: + cmp r1, #2 + beq _0803038C + cmp r1, #3 + beq _080303A4 + b _080303C8 +_08030316: + movs r0, #0x1e + str r0, [sp] + movs r0, #0x14 + str r0, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _08030350 + cmp r0, #1 + bgt _0803033C + cmp r0, #0 + beq _08030342 + b _08030362 +_0803033C: + cmp r0, #2 + beq _0803035C + b _08030362 +_08030342: + ldr r0, _0803034C + bl CreateMainMenuErrorWindow + b _08030362 + .align 2, 0 +_0803034C: .4byte 0x085C8CB1 +_08030350: + ldr r0, _08030358 + bl CreateMainMenuErrorWindow + b _08030362 + .align 2, 0 +_08030358: .4byte 0x085C8CC7 +_0803035C: + ldr r0, _08030374 + bl CreateMainMenuErrorWindow +_08030362: + ldr r0, _08030378 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0xa] + adds r0, #1 + strh r0, [r1, #0xa] + b _080303C8 + .align 2, 0 +_08030374: .4byte 0x085C8CEB +_08030378: .4byte 0x03005B60 +_0803037C: + ldr r0, _08030388 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + b _08030398 + .align 2, 0 +_08030388: .4byte 0x02037C74 +_0803038C: + bl RunTextPrinters + movs r0, #7 + bl IsTextPrinterActive + lsls r0, r0, #0x10 +_08030398: + cmp r0, #0 + bne _080303C8 + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + b _080303C8 +_080303A4: + ldr r0, _080303D0 + ldrh r0, [r0, #0x2e] + ands r1, r0 + cmp r1, #0 + beq _080303C8 + movs r0, #5 + bl PlaySE + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _080303D4 + str r0, [r4] +_080303C8: + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080303D0: .4byte 0x03002360 +_080303D4: .4byte 0x08030285 + thumb_func_end Task_DisplayMainMenuInvalidActionError + + thumb_func_start HighlightSelectedMainMenuItem +HighlightSelectedMainMenuItem: @ 0x080303D8 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + lsls r2, r2, #0x10 + lsrs r6, r2, #0x10 + ldr r1, _0803040C + movs r0, #0x40 + bl SetGpuReg + cmp r5, #1 + beq _0803041C + cmp r5, #1 + ble _080303FE + cmp r5, #2 + beq _08030440 + cmp r5, #3 + beq _08030468 +_080303FE: + cmp r4, #0 + beq _08030406 + cmp r4, #1 + beq _08030414 +_08030406: + ldr r1, _08030410 + b _080304CE + .align 2, 0 +_0803040C: .4byte 0x000009E7 +_08030410: .4byte 0x0000011F +_08030414: + ldr r1, _08030418 + b _080304CE + .align 2, 0 +_08030418: .4byte 0x0000213F +_0803041C: + cmp r4, #1 + beq _08030430 + cmp r4, #1 + ble _08030428 + cmp r4, #2 + beq _08030438 +_08030428: + ldr r1, _0803042C + b _080304CE + .align 2, 0 +_0803042C: .4byte 0x0000013F +_08030430: + ldr r1, _08030434 + b _080304CE + .align 2, 0 +_08030434: .4byte 0x0000415F +_08030438: + ldr r1, _0803043C + b _080304CE + .align 2, 0 +_0803043C: .4byte 0x0000617F +_08030440: + cmp r4, #1 + beq _08030458 + cmp r4, #1 + ble _08030450 + cmp r4, #2 + beq _08030460 + cmp r4, #3 + beq _080304CC +_08030450: + ldr r1, _08030454 + b _080304CE + .align 2, 0 +_08030454: .4byte 0x0000013F +_08030458: + ldr r1, _0803045C + b _080304CE + .align 2, 0 +_0803045C: .4byte 0x0000415F +_08030460: + ldr r1, _08030464 + b _080304CE + .align 2, 0 +_08030464: .4byte 0x0000617F +_08030468: + cmp r4, #4 + bhi _08030490 + lsls r0, r4, #2 + ldr r1, _08030478 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08030478: .4byte 0x0803047C +_0803047C: @ jump table + .4byte _08030490 @ case 0 + .4byte _08030498 @ case 1 + .4byte _080304AC @ case 2 + .4byte _080304C0 @ case 3 + .4byte _080304DC @ case 4 +_08030490: + ldr r1, _08030494 + b _080304CE + .align 2, 0 +_08030494: .4byte 0x0000013F +_08030498: + cmp r6, #0 + beq _080304A4 + ldr r1, _080304A0 + b _080304CE + .align 2, 0 +_080304A0: .4byte 0x0000213F +_080304A4: + ldr r1, _080304A8 + b _080304CE + .align 2, 0 +_080304A8: .4byte 0x0000415F +_080304AC: + cmp r6, #0 + beq _080304B8 + ldr r1, _080304B4 + b _080304CE + .align 2, 0 +_080304B4: .4byte 0x0000415F +_080304B8: + ldr r1, _080304BC + b _080304CE + .align 2, 0 +_080304BC: .4byte 0x0000617F +_080304C0: + cmp r6, #0 + beq _080304CC + ldr r1, _080304C8 + b _080304CE + .align 2, 0 +_080304C8: .4byte 0x0000617F +_080304CC: + ldr r1, _080304D8 +_080304CE: + movs r0, #0x44 + bl SetGpuReg + b _080304E4 + .align 2, 0 +_080304D8: .4byte 0x0000819F +_080304DC: + ldr r1, _080304EC + movs r0, #0x44 + bl SetGpuReg +_080304E4: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080304EC: .4byte 0x0000819F + thumb_func_end HighlightSelectedMainMenuItem + + thumb_func_start Task_NewGameBirchSpeech_Init +Task_NewGameBirchSpeech_Init: @ 0x080304F0 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + movs r1, #0 + bl SetGpuReg + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + ldr r0, _080305D0 + bl InitBgFromTemplate + movs r0, #0x40 + movs r1, #0 + bl SetGpuReg + movs r0, #0x44 + movs r1, #0 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0 + bl SetGpuReg + movs r0, #0x4a + movs r1, #0 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + ldr r0, _080305D4 + movs r1, #0xc0 + lsls r1, r1, #0x13 + bl LZ77UnCompVram + ldr r0, _080305D8 + ldr r1, _080305DC + bl LZ77UnCompVram + ldr r0, _080305E0 + movs r1, #0 + movs r2, #0x40 + bl LoadPalette + ldr r0, _080305E4 + movs r1, #1 + movs r2, #0x10 + bl LoadPalette + bl ScanlineEffect_Stop + bl ResetSpriteData + bl FreeAllSpritePalettes + bl ResetAllPicSprites + adds r0, r4, #0 + bl AddBirchSpeechObjects + movs r0, #1 + rsbs r0, r0, #0 + movs r5, #0 + thumb_func_end Task_NewGameBirchSpeech_Init + + thumb_func_start sub_0803058C +sub_0803058C: @ 0x0803058C + str r5, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r1, _080305E8 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r5, [r0, #0x10] + ldr r1, _080305EC + str r1, [r0] + movs r1, #0xff + strh r1, [r0, #0xc] + strh r1, [r0, #0xe] + movs r1, #0xd8 + strh r1, [r0, #0x16] + movs r0, #0xbb + lsls r0, r0, #1 + bl PlayBGM + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080305D0: .4byte 0x082D2980 +_080305D4: .4byte 0x082D25C8 +_080305D8: .4byte 0x082D277C +_080305DC: .4byte 0x06003800 +_080305E0: .4byte 0x082D2588 +_080305E4: .4byte 0x082D28B6 +_080305E8: .4byte 0x03005B60 +_080305EC: .4byte 0x080305F1 + thumb_func_end sub_0803058C + + thumb_func_start Task_NewGameBirchSpeech_WaitToShowBirch +Task_NewGameBirchSpeech_WaitToShowBirch: @ 0x080305F0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _08030610 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrh r1, [r4, #0x16] + movs r2, #0x16 + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _08030614 + subs r0, r1, #1 + strh r0, [r4, #0x16] + b _0803065A + .align 2, 0 +_08030610: .4byte 0x03005B60 +_08030614: + ldrb r0, [r4, #0x18] + ldr r2, _08030660 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #0x88 + strh r0, [r1, #0x20] + movs r0, #0x3c + strh r0, [r1, #0x22] + adds r3, r1, #0 + adds r3, #0x3e + ldrb r2, [r3] + subs r0, #0x41 + ands r0, r2 + strb r0, [r3] + ldrb r2, [r1, #1] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + movs r2, #4 + orrs r0, r2 + strb r0, [r1, #1] + adds r0, r5, #0 + movs r1, #0xa + bl NewGameBirchSpeech_StartFadeInTarget1OutTarget2 + adds r0, r5, #0 + movs r1, #0x14 + bl NewGameBirchSpeech_StartFadePlatformOut + movs r0, #0x50 + strh r0, [r4, #0x16] + ldr r0, _08030664 + str r0, [r4] +_0803065A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08030660: .4byte 0x020205AC +_08030664: .4byte 0x08030669 + thumb_func_end Task_NewGameBirchSpeech_WaitToShowBirch + + thumb_func_start Task_NewGameBirchSpeech_WaitForSpriteFadeInWelcome +Task_NewGameBirchSpeech_WaitForSpriteFadeInWelcome: @ 0x08030668 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080306A8 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 + movs r1, #0x12 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _080306F6 + ldr r2, _080306AC + movs r1, #0x18 + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r2, [r1, #1] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #1] + ldrh r1, [r4, #0x16] + movs r2, #0x16 + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _080306B0 + subs r0, r1, #1 + strh r0, [r4, #0x16] + b _080306F6 + .align 2, 0 +_080306A8: .4byte 0x03005B60 +_080306AC: .4byte 0x020205AC +_080306B0: + ldr r0, _080306FC + bl InitWindows + movs r0, #0 + movs r1, #0xdb + bl LoadMainMenuWindowFrameTiles + movs r0, #0 + movs r1, #0xe4 + movs r2, #0xf0 + bl LoadMessageBoxGfx + movs r0, #0 + movs r1, #1 + bl sub_0803213C + movs r0, #0 + bl PutWindowTilemap + movs r0, #0 + movs r1, #2 + bl CopyWindowToVram + movs r0, #0 + bl NewGameBirchSpeech_ClearWindow + ldr r0, _08030700 + ldr r1, _08030704 + bl StringExpandPlaceholders + movs r0, #1 + bl AddTextPrinterForMessage + ldr r0, _08030708 + str r0, [r4] +_080306F6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080306FC: .4byte 0x082D2910 +_08030700: .4byte 0x02021C7C +_08030704: .4byte 0x08277095 +_08030708: .4byte 0x0803070D + thumb_func_end Task_NewGameBirchSpeech_WaitForSpriteFadeInWelcome + + thumb_func_start Task_NewGameBirchSpeech_ThisIsAPokemon +Task_NewGameBirchSpeech_ThisIsAPokemon: @ 0x0803070C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _08030750 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0803074A + bl RunTextPrintersAndIsPrinter0Active + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803074A + ldr r1, _08030754 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08030758 + str r1, [r0] + ldr r0, _0803075C + ldr r1, _08030760 + bl StringExpandPlaceholders + ldr r1, _08030764 + movs r0, #1 + bl AddTextPrinterWithCallbackForMessage + ldr r0, _08030768 + strb r4, [r0] +_0803074A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08030750: .4byte 0x02037C74 +_08030754: .4byte 0x03005B60 +_08030758: .4byte 0x0803076D +_0803075C: .4byte 0x02021C7C +_08030760: .4byte 0x085C8F88 +_08030764: .4byte 0x08032099 +_08030768: .4byte 0x03000DD0 + thumb_func_end Task_NewGameBirchSpeech_ThisIsAPokemon + + thumb_func_start Task_NewGameBirchSpeech_MainSpeech +Task_NewGameBirchSpeech_MainSpeech: @ 0x0803076C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl RunTextPrintersAndIsPrinter0Active + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08030798 + ldr r0, _080307A0 + ldr r1, _080307A4 + bl StringExpandPlaceholders + movs r0, #1 + bl AddTextPrinterForMessage + ldr r1, _080307A8 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080307AC + str r1, [r0] +_08030798: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080307A0: .4byte 0x02021C7C +_080307A4: .4byte 0x08277102 +_080307A8: .4byte 0x03005B60 +_080307AC: .4byte 0x0803090D + thumb_func_end Task_NewGameBirchSpeech_MainSpeech + + thumb_func_start Task_NewGameBirchSpeechSub_InitPokeBall +Task_NewGameBirchSpeechSub_InitPokeBall: @ 0x080307B0 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0x14 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r6, _0803083C + ldr r0, _08030840 + mov r8, r0 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r6 + ldrb r0, [r0, #0x1a] + ldr r1, _08030844 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r1 + movs r5, #0 + movs r1, #0x64 + strh r1, [r2, #0x20] + movs r1, #0x4b + strh r1, [r2, #0x22] + movs r1, #0x3e + adds r1, r1, r2 + mov ip, r1 + ldrb r3, [r1] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r3 + mov r3, ip + strb r1, [r3] + strh r5, [r2, #0x2e] + ldrb r1, [r2, #5] + lsrs r1, r1, #4 + str r5, [sp] + str r5, [sp, #4] + movs r2, #0x20 + str r2, [sp, #8] + ldr r2, _08030848 + str r2, [sp, #0xc] + ldr r2, _0803084C + str r2, [sp, #0x10] + movs r2, #0x70 + movs r3, #0x3a + bl CreatePokeballSpriteToReleaseMon + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r6 + ldr r1, _08030850 + str r1, [r0] + mov r0, r8 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r6 + strh r5, [r0, #0x16] + add sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0803083C: .4byte 0x03005B60 +_08030840: .4byte 0x03000DD0 +_08030844: .4byte 0x020205AC +_08030848: .4byte 0x0000FFFF +_0803084C: .4byte 0x00000127 +_08030850: .4byte 0x08030855 + thumb_func_end Task_NewGameBirchSpeechSub_InitPokeBall + + thumb_func_start Task_NewGameBirchSpeechSub_WaitForLotad +Task_NewGameBirchSpeechSub_WaitForLotad: @ 0x08030854 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _08030898 + adds r5, r0, r1 + subs r1, #8 + mov r8, r1 + ldr r2, _0803089C + ldrb r1, [r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + mov r1, r8 + adds r6, r0, r1 + movs r0, #0x1a + ldrsh r1, [r6, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080308A0 + adds r3, r0, r1 + movs r1, #0 + ldrsh r0, [r5, r1] + adds r7, r2, #0 + cmp r0, #0 + beq _080308A4 + cmp r0, #1 + beq _080308BC + b _080308D8 + .align 2, 0 +_08030898: .4byte 0x03005B68 +_0803089C: .4byte 0x03000DD0 +_080308A0: .4byte 0x020205AC +_080308A4: + ldr r1, [r3, #0x1c] + ldr r0, _080308B8 + cmp r1, r0 + bne _080308FA + ldrb r1, [r3, #1] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3, #1] + b _080308D8 + .align 2, 0 +_080308B8: .4byte 0x08007141 +_080308BC: + movs r1, #0x16 + ldrsh r0, [r6, r1] + cmp r0, #0x5f + ble _080308FA + adds r0, r4, #0 + bl DestroyTask + ldrb r1, [r7] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + mov r1, r8 + adds r2, r0, r1 + b _080308EA +_080308D8: + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + ldr r2, _08030904 + ldrb r1, [r7] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r2, r0, r2 +_080308EA: + ldrh r3, [r2, #0x16] + movs r0, #0x16 + ldrsh r1, [r2, r0] + ldr r0, _08030908 + cmp r1, r0 + bgt _080308FA + adds r0, r3, #1 + strh r0, [r2, #0x16] +_080308FA: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08030904: .4byte 0x03005B60 +_08030908: .4byte 0x00003FFF + thumb_func_end Task_NewGameBirchSpeechSub_WaitForLotad + + thumb_func_start Task_NewGameBirchSpeech_AndYouAre +Task_NewGameBirchSpeech_AndYouAre: @ 0x0803090C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl RunTextPrintersAndIsPrinter0Active + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + bne _0803093E + ldr r0, _08030944 + strb r1, [r0] + ldr r0, _08030948 + ldr r1, _0803094C + bl StringExpandPlaceholders + movs r0, #1 + bl AddTextPrinterForMessage + ldr r1, _08030950 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08030954 + str r1, [r0] +_0803093E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08030944: .4byte 0x020229B8 +_08030948: .4byte 0x02021C7C +_0803094C: .4byte 0x082771F4 +_08030950: .4byte 0x03005B60 +_08030954: .4byte 0x08030959 + thumb_func_end Task_NewGameBirchSpeech_AndYouAre + + thumb_func_start Task_NewGameBirchSpeech_StartBirchLotadPlatformFade +Task_NewGameBirchSpeech_StartBirchLotadPlatformFade: @ 0x08030958 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + bl RunTextPrintersAndIsPrinter0Active + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080309BC + ldr r5, _080309C4 + ldr r0, _080309C8 + lsls r4, r6, #2 + adds r4, r4, r6 + lsls r4, r4, #3 + adds r4, r4, r0 + movs r1, #0x18 + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrb r3, [r1, #1] + movs r2, #0xd + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r3 + movs r3, #4 + orrs r0, r3 + strb r0, [r1, #1] + movs r0, #0x1a + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r1, [r0, #1] + ands r2, r1 + orrs r2, r3 + strb r2, [r0, #1] + adds r0, r6, #0 + movs r1, #2 + bl NewGameBirchSpeech_StartFadeOutTarget1InTarget2 + adds r0, r6, #0 + movs r1, #1 + bl NewGameBirchSpeech_StartFadePlatformIn + movs r0, #0x40 + strh r0, [r4, #0x16] + ldr r0, _080309CC + str r0, [r4] +_080309BC: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080309C4: .4byte 0x020205AC +_080309C8: .4byte 0x03005B60 +_080309CC: .4byte 0x080309D1 + thumb_func_end Task_NewGameBirchSpeech_StartBirchLotadPlatformFade + + thumb_func_start Task_NewGameBirchSpeech_SlidePlatformAway +Task_NewGameBirchSpeech_SlidePlatformAway: @ 0x080309D0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080309FC + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r2, r1, r2 + ldrh r3, [r2, #0x10] + movs r0, #0x10 + ldrsh r1, [r2, r0] + movs r0, #0x3c + rsbs r0, r0, #0 + cmp r1, r0 + beq _08030A00 + subs r0, r3, #2 + strh r0, [r2, #0x10] + ldrh r1, [r2, #0x10] + movs r0, #0x14 + bl SetGpuReg + b _08030A08 + .align 2, 0 +_080309FC: .4byte 0x03005B60 +_08030A00: + ldr r0, _08030A0C + strh r0, [r2, #0x10] + ldr r0, _08030A10 + str r0, [r2] +_08030A08: + pop {r0} + bx r0 + .align 2, 0 +_08030A0C: .4byte 0x0000FFC4 +_08030A10: .4byte 0x08030A15 + thumb_func_end Task_NewGameBirchSpeech_SlidePlatformAway + + thumb_func_start Task_NewGameBirchSpeech_StartPlayerFadeIn +Task_NewGameBirchSpeech_StartPlayerFadeIn: @ 0x08030A14 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + ldr r1, _08030A6C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #0x12 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _08030ABA + ldr r2, _08030A70 + movs r0, #0x18 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r1, [r0] + movs r7, #4 + orrs r1, r7 + strb r1, [r0] + movs r0, #0x1a + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r7 + strb r1, [r0] + ldrh r0, [r4, #0x16] + movs r1, #0x16 + ldrsh r6, [r4, r1] + cmp r6, #0 + beq _08030A74 + subs r0, #1 + strh r0, [r4, #0x16] + b _08030ABA + .align 2, 0 +_08030A6C: .4byte 0x03005B60 +_08030A70: .4byte 0x020205AC +_08030A74: + ldrb r3, [r4, #0x1c] + lsls r1, r3, #4 + adds r1, r1, r3 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #0xb4 + strh r0, [r1, #0x20] + movs r0, #0x3c + strh r0, [r1, #0x22] + movs r2, #0x3e + adds r2, r2, r1 + mov ip, r2 + ldrb r2, [r2] + subs r0, #0x41 + ands r0, r2 + mov r2, ip + strb r0, [r2] + ldrb r2, [r1, #1] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r7 + strb r0, [r1, #1] + strh r3, [r4, #0xc] + strh r6, [r4, #0x14] + adds r0, r5, #0 + movs r1, #2 + bl NewGameBirchSpeech_StartFadeInTarget1OutTarget2 + adds r0, r5, #0 + movs r1, #1 + bl NewGameBirchSpeech_StartFadePlatformOut + ldr r0, _08030AC0 + str r0, [r4] +_08030ABA: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08030AC0: .4byte 0x08030AC5 + thumb_func_end Task_NewGameBirchSpeech_StartPlayerFadeIn + + thumb_func_start Task_NewGameBirchSpeech_WaitForPlayerFadeIn +Task_NewGameBirchSpeech_WaitForPlayerFadeIn: @ 0x08030AC4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08030AFC + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r3, r1, r2 + movs r1, #0x12 + ldrsh r0, [r3, r1] + cmp r0, #0 + beq _08030AF8 + ldr r2, _08030B00 + movs r1, #0xc + ldrsh r0, [r3, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r2, [r1, #1] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #1] + ldr r0, _08030B04 + str r0, [r3] +_08030AF8: + pop {r0} + bx r0 + .align 2, 0 +_08030AFC: .4byte 0x03005B60 +_08030B00: .4byte 0x020205AC +_08030B04: .4byte 0x08030B09 + thumb_func_end Task_NewGameBirchSpeech_WaitForPlayerFadeIn + + thumb_func_start Task_NewGameBirchSpeech_BoyOrGirl +Task_NewGameBirchSpeech_BoyOrGirl: @ 0x08030B08 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + bl NewGameBirchSpeech_ClearWindow + ldr r0, _08030B38 + ldr r1, _08030B3C + bl StringExpandPlaceholders + movs r0, #1 + bl AddTextPrinterForMessage + ldr r1, _08030B40 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08030B44 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08030B38: .4byte 0x02021C7C +_08030B3C: .4byte 0x08277200 +_08030B40: .4byte 0x03005B60 +_08030B44: .4byte 0x08030B49 + thumb_func_end Task_NewGameBirchSpeech_BoyOrGirl + + thumb_func_start Task_NewGameBirchSpeech_WaitToShowGenderMenu +Task_NewGameBirchSpeech_WaitToShowGenderMenu: @ 0x08030B48 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl RunTextPrintersAndIsPrinter0Active + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08030B6A + bl NewGameBirchSpeech_ShowGenderMenu + ldr r0, _08030B70 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _08030B74 + str r0, [r1] +_08030B6A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08030B70: .4byte 0x03005B60 +_08030B74: .4byte 0x08030B79 + thumb_func_end Task_NewGameBirchSpeech_WaitToShowGenderMenu + + thumb_func_start Task_NewGameBirchSpeech_ChooseGender +Task_NewGameBirchSpeech_ChooseGender: @ 0x08030B78 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + bl NewGameBirchSpeech_ProcessGenderMenuInput + lsls r0, r0, #0x18 + asrs r4, r0, #0x18 + cmp r4, #0 + beq _08030B92 + cmp r4, #1 + beq _08030B92 + lsls r4, r5, #2 + b _08030BB6 +_08030B92: + movs r0, #5 + bl PlaySE + ldr r0, _08030C00 + ldr r0, [r0] + strb r4, [r0, #8] + movs r0, #1 + movs r1, #1 + bl sub_08031FD8 + ldr r1, _08030C04 + lsls r2, r5, #2 + adds r0, r2, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08030C08 + str r1, [r0] + adds r4, r2, #0 +_08030BB6: + bl Menu_GetCursorPos + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r1, _08030C04 + adds r0, r4, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #0x14 + ldrsh r0, [r4, r1] + cmp r3, r0 + beq _08030BF8 + strh r3, [r4, #0x14] + ldr r2, _08030C0C + movs r0, #0xc + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r2, [r0, #1] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #4 + orrs r1, r2 + strb r1, [r0, #1] + adds r0, r5, #0 + movs r1, #0 + bl NewGameBirchSpeech_StartFadeOutTarget1InTarget2 + ldr r0, _08030C10 + str r0, [r4] +_08030BF8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08030C00: .4byte 0x03005AF0 +_08030C04: .4byte 0x03005B60 +_08030C08: .4byte 0x08030D15 +_08030C0C: .4byte 0x020205AC +_08030C10: .4byte 0x08030C15 + thumb_func_end Task_NewGameBirchSpeech_ChooseGender + + thumb_func_start Task_NewGameBirchSpeech_SlideOutOldGenderSprite +Task_NewGameBirchSpeech_SlideOutOldGenderSprite: @ 0x08030C14 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _08030C44 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrb r5, [r4, #0xc] + movs r2, #0x12 + ldrsh r0, [r4, r2] + adds r7, r1, #0 + cmp r0, #0 + bne _08030C4C + ldr r0, _08030C48 + lsls r1, r5, #4 + adds r1, r1, r5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r0, [r1, #0x20] + adds r0, #4 + strh r0, [r1, #0x20] + b _08030CB2 + .align 2, 0 +_08030C44: .4byte 0x03005B60 +_08030C48: .4byte 0x020205AC +_08030C4C: + ldr r3, _08030C6C + lsls r0, r5, #4 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + movs r1, #0x14 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _08030C70 + ldrb r5, [r4, #0x1e] + b _08030C72 + .align 2, 0 +_08030C6C: .4byte 0x020205AC +_08030C70: + ldrb r5, [r4, #0x1c] +_08030C72: + lsls r2, r5, #4 + adds r2, r2, r5 + lsls r2, r2, #2 + adds r2, r2, r3 + movs r0, #0xf0 + strh r0, [r2, #0x20] + movs r0, #0x3c + strh r0, [r2, #0x22] + adds r3, r2, #0 + adds r3, #0x3e + ldrb r1, [r3] + subs r0, #0x41 + ands r0, r1 + strb r0, [r3] + lsls r4, r6, #2 + adds r4, r4, r6 + lsls r4, r4, #3 + adds r4, r4, r7 + strh r5, [r4, #0xc] + ldrb r1, [r2, #1] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #1] + adds r0, r6, #0 + movs r1, #0 + bl NewGameBirchSpeech_StartFadeInTarget1OutTarget2 + ldr r0, _08030CB8 + str r0, [r4] +_08030CB2: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08030CB8: .4byte 0x08030CBD + thumb_func_end Task_NewGameBirchSpeech_SlideOutOldGenderSprite + + thumb_func_start Task_NewGameBirchSpeech_SlideInNewGenderSprite +Task_NewGameBirchSpeech_SlideInNewGenderSprite: @ 0x08030CBC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08030CE8 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r3, r1, r2 + ldrb r1, [r3, #0xc] + ldr r2, _08030CEC + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, r0, r2 + ldrh r1, [r2, #0x20] + movs r4, #0x20 + ldrsh r0, [r2, r4] + cmp r0, #0xb4 + ble _08030CF0 + subs r0, r1, #4 + strh r0, [r2, #0x20] + b _08030D0A + .align 2, 0 +_08030CE8: .4byte 0x03005B60 +_08030CEC: .4byte 0x020205AC +_08030CF0: + movs r0, #0xb4 + strh r0, [r2, #0x20] + movs r1, #0x12 + ldrsh r0, [r3, r1] + cmp r0, #0 + beq _08030D0A + ldrb r0, [r2, #1] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r2, #1] + ldr r0, _08030D10 + str r0, [r3] +_08030D0A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08030D10: .4byte 0x08030B79 + thumb_func_end Task_NewGameBirchSpeech_SlideInNewGenderSprite + + thumb_func_start Task_NewGameBirchSpeech_WhatsYourName +Task_NewGameBirchSpeech_WhatsYourName: @ 0x08030D14 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + bl NewGameBirchSpeech_ClearWindow + ldr r0, _08030D44 + ldr r1, _08030D48 + bl StringExpandPlaceholders + movs r0, #1 + bl AddTextPrinterForMessage + ldr r1, _08030D4C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08030D50 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08030D44: .4byte 0x02021C7C +_08030D48: .4byte 0x08277213 +_08030D4C: .4byte 0x03005B60 +_08030D50: .4byte 0x08030D55 + thumb_func_end Task_NewGameBirchSpeech_WhatsYourName + + thumb_func_start Task_NewGameBirchSpeech_WaitForWhatsYourNameToPrint +Task_NewGameBirchSpeech_WaitForWhatsYourNameToPrint: @ 0x08030D54 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl RunTextPrintersAndIsPrinter0Active + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08030D72 + ldr r0, _08030D78 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _08030D7C + str r0, [r1] +_08030D72: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08030D78: .4byte 0x03005B60 +_08030D7C: .4byte 0x08030D81 + thumb_func_end Task_NewGameBirchSpeech_WaitForWhatsYourNameToPrint + + thumb_func_start Task_NewGameBirchSpeech_WaitPressBeforeNameChoice +Task_NewGameBirchSpeech_WaitPressBeforeNameChoice: @ 0x08030D80 + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _08030DC4 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08030D9C + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08030DBA +_08030D9C: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _08030DC8 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08030DCC + str r1, [r0] +_08030DBA: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08030DC4: .4byte 0x03002360 +_08030DC8: .4byte 0x03005B60 +_08030DCC: .4byte 0x08030DD1 + thumb_func_end Task_NewGameBirchSpeech_WaitPressBeforeNameChoice + + thumb_func_start Task_NewGameBirchSpeech_StartNamingScreen +Task_NewGameBirchSpeech_StartNamingScreen: @ 0x08030DD0 + push {r4, r5, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _08030E34 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _08030E2C + bl FreeAllWindowBuffers + ldr r1, _08030E38 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r0, [r0, #0x1a] + bl FreeAndDestroyMonPicSprite + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x14 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl NewGameBirchSpeech_SetDefaultPlayerName + adds r0, r4, #0 + bl DestroyTask + ldr r0, _08030E3C + ldr r1, [r0] + ldrb r2, [r1, #8] + str r5, [sp] + ldr r0, _08030E40 + str r0, [sp, #4] + movs r0, #0 + movs r3, #0 + bl DoNamingScreen +_08030E2C: + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08030E34: .4byte 0x02037C74 +_08030E38: .4byte 0x03005B60 +_08030E3C: .4byte 0x03005AF0 +_08030E40: .4byte 0x080313B9 + thumb_func_end Task_NewGameBirchSpeech_StartNamingScreen + + thumb_func_start Task_NewGameBirchSpeech_SoItsPlayerName +Task_NewGameBirchSpeech_SoItsPlayerName: @ 0x08030E44 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + bl NewGameBirchSpeech_ClearWindow + ldr r0, _08030E74 + ldr r1, _08030E78 + bl StringExpandPlaceholders + movs r0, #1 + bl AddTextPrinterForMessage + ldr r1, _08030E7C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08030E80 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08030E74: .4byte 0x02021C7C +_08030E78: .4byte 0x08277224 +_08030E7C: .4byte 0x03005B60 +_08030E80: .4byte 0x08030E85 + thumb_func_end Task_NewGameBirchSpeech_SoItsPlayerName + + thumb_func_start Task_NewGameBirchSpeech_CreateNameYesNo +Task_NewGameBirchSpeech_CreateNameYesNo: @ 0x08030E84 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl RunTextPrintersAndIsPrinter0Active + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08030EB8 + movs r0, #2 + str r0, [sp] + movs r0, #0xf + str r0, [sp, #4] + movs r0, #2 + movs r1, #1 + movs r2, #0xdb + movs r3, #0xc7 + bl CreateYesNoMenuParameterized + ldr r1, _08030EC0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08030EC4 + str r1, [r0] +_08030EB8: + add sp, #8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08030EC0: .4byte 0x03005B60 +_08030EC4: .4byte 0x08030EC9 + thumb_func_end Task_NewGameBirchSpeech_CreateNameYesNo + + thumb_func_start Task_NewGameBirchSpeech_ProcessNameYesNoMenu +Task_NewGameBirchSpeech_ProcessNameYesNoMenu: @ 0x08030EC8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _08030EEE + cmp r1, #0 + bgt _08030EE8 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _08030F3C + b _08030F50 +_08030EE8: + cmp r1, #1 + beq _08030F3C + b _08030F50 +_08030EEE: + movs r0, #5 + bl PlaySE + ldr r2, _08030F30 + ldr r0, _08030F34 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + adds r4, r4, r0 + movs r0, #0xc + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r2, [r0, #1] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #4 + orrs r1, r2 + strb r1, [r0, #1] + adds r0, r5, #0 + movs r1, #2 + bl NewGameBirchSpeech_StartFadeOutTarget1InTarget2 + adds r0, r5, #0 + movs r1, #1 + bl NewGameBirchSpeech_StartFadePlatformIn + ldr r0, _08030F38 + str r0, [r4] + b _08030F50 + .align 2, 0 +_08030F30: .4byte 0x020205AC +_08030F34: .4byte 0x03005B60 +_08030F38: .4byte 0x08030F61 +_08030F3C: + movs r0, #5 + bl PlaySE + ldr r0, _08030F58 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _08030F5C + str r0, [r1] +_08030F50: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08030F58: .4byte 0x03005B60 +_08030F5C: .4byte 0x08030B09 + thumb_func_end Task_NewGameBirchSpeech_ProcessNameYesNoMenu + + thumb_func_start Task_NewGameBirchSpeech_SlidePlatformAway2 +Task_NewGameBirchSpeech_SlidePlatformAway2: @ 0x08030F60 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08030F88 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldrh r2, [r1, #0x10] + movs r3, #0x10 + ldrsh r0, [r1, r3] + cmp r0, #0 + beq _08030F8C + adds r0, r2, #2 + strh r0, [r1, #0x10] + ldrh r1, [r1, #0x10] + movs r0, #0x14 + bl SetGpuReg + b _08030F90 + .align 2, 0 +_08030F88: .4byte 0x03005B60 +_08030F8C: + ldr r0, _08030F94 + str r0, [r1] +_08030F90: + pop {r0} + bx r0 + .align 2, 0 +_08030F94: .4byte 0x08030F99 + thumb_func_end Task_NewGameBirchSpeech_SlidePlatformAway2 + + thumb_func_start Task_NewGameBirchSpeech_ReshowBirchLotad +Task_NewGameBirchSpeech_ReshowBirchLotad: @ 0x08030F98 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _08031068 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r7, r0, r1 + movs r1, #0x12 + ldrsh r0, [r7, r1] + cmp r0, #0 + beq _08031060 + ldr r5, _0803106C + movs r2, #0x1c + ldrsh r1, [r7, r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r1, [r0] + movs r3, #4 + mov ip, r3 + mov r2, ip + orrs r1, r2 + strb r1, [r0] + movs r3, #0x1e + ldrsh r1, [r7, r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + ldrb r0, [r7, #0x18] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + movs r0, #0x88 + strh r0, [r1, #0x20] + movs r0, #0x3c + strh r0, [r1, #0x22] + adds r3, r1, #0 + adds r3, #0x3e + ldrb r2, [r3] + movs r4, #5 + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r2 + strb r0, [r3] + ldrb r3, [r1, #1] + movs r2, #0xd + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r3 + mov r3, ip + orrs r0, r3 + strb r0, [r1, #1] + ldrb r1, [r7, #0x1a] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0x64 + strh r1, [r0, #0x20] + movs r1, #0x4b + strh r1, [r0, #0x22] + adds r3, r0, #0 + adds r3, #0x3e + ldrb r1, [r3] + ands r4, r1 + strb r4, [r3] + ldrb r1, [r0, #1] + ands r2, r1 + mov r1, ip + orrs r2, r1 + strb r2, [r0, #1] + adds r0, r6, #0 + movs r1, #2 + bl NewGameBirchSpeech_StartFadeInTarget1OutTarget2 + adds r0, r6, #0 + movs r1, #1 + bl NewGameBirchSpeech_StartFadePlatformOut + movs r0, #0 + bl NewGameBirchSpeech_ClearWindow + ldr r0, _08031070 + ldr r1, _08031074 + bl StringExpandPlaceholders + movs r0, #1 + bl AddTextPrinterForMessage + ldr r0, _08031078 + str r0, [r7] +_08031060: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08031068: .4byte 0x03005B60 +_0803106C: .4byte 0x020205AC +_08031070: .4byte 0x02021C7C +_08031074: .4byte 0x0827722D +_08031078: .4byte 0x0803107D + thumb_func_end Task_NewGameBirchSpeech_ReshowBirchLotad + + thumb_func_start Task_NewGameBirchSpeech_WaitForSpriteFadeInAndTextPrinter +Task_NewGameBirchSpeech_WaitForSpriteFadeInAndTextPrinter: @ 0x0803107C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _08031118 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #0x12 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _08031112 + ldr r7, _0803111C + movs r1, #0x18 + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r7 + ldrb r2, [r1, #1] + movs r6, #0xd + rsbs r6, r6, #0 + adds r0, r6, #0 + ands r0, r2 + strb r0, [r1, #1] + movs r1, #0x1a + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r7 + ldrb r2, [r1, #1] + adds r0, r6, #0 + ands r0, r2 + strb r0, [r1, #1] + bl RunTextPrintersAndIsPrinter0Active + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08031112 + movs r0, #0x18 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrb r2, [r0, #1] + adds r1, r6, #0 + ands r1, r2 + movs r3, #4 + orrs r1, r3 + strb r1, [r0, #1] + movs r1, #0x1a + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r7 + ldrb r2, [r1, #1] + adds r0, r6, #0 + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #1] + adds r0, r5, #0 + movs r1, #2 + bl NewGameBirchSpeech_StartFadeOutTarget1InTarget2 + adds r0, r5, #0 + movs r1, #1 + bl NewGameBirchSpeech_StartFadePlatformIn + movs r0, #0x40 + strh r0, [r4, #0x16] + ldr r0, _08031120 + str r0, [r4] +_08031112: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08031118: .4byte 0x03005B60 +_0803111C: .4byte 0x020205AC +_08031120: .4byte 0x08031125 + thumb_func_end Task_NewGameBirchSpeech_WaitForSpriteFadeInAndTextPrinter + + thumb_func_start Task_NewGameBirchSpeech_AreYouReady +Task_NewGameBirchSpeech_AreYouReady: @ 0x08031124 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _0803117C + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r2, #0x12 + ldrsh r0, [r4, r2] + adds r7, r1, #0 + cmp r0, #0 + beq _080311F0 + ldr r2, _08031180 + movs r3, #0x18 + ldrsh r1, [r4, r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r1, [r0] + movs r3, #4 + orrs r1, r3 + strb r1, [r0] + movs r0, #0x1a + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r3 + strb r1, [r0] + ldrh r1, [r4, #0x16] + movs r3, #0x16 + ldrsh r0, [r4, r3] + cmp r0, #0 + beq _08031184 + subs r0, r1, #1 + strh r0, [r4, #0x16] + b _080311F0 + .align 2, 0 +_0803117C: .4byte 0x03005B60 +_08031180: .4byte 0x020205AC +_08031184: + ldr r0, _08031194 + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #0 + beq _08031198 + ldrb r5, [r4, #0x1e] + b _0803119A + .align 2, 0 +_08031194: .4byte 0x03005AF0 +_08031198: + ldrb r5, [r4, #0x1c] +_0803119A: + lsls r1, r5, #4 + adds r1, r1, r5 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #0x78 + strh r0, [r1, #0x20] + movs r0, #0x3c + strh r0, [r1, #0x22] + adds r3, r1, #0 + adds r3, #0x3e + ldrb r2, [r3] + subs r0, #0x41 + ands r0, r2 + strb r0, [r3] + ldrb r2, [r1, #1] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + movs r2, #4 + orrs r0, r2 + strb r0, [r1, #1] + lsls r4, r6, #2 + adds r4, r4, r6 + lsls r4, r4, #3 + adds r4, r4, r7 + strh r5, [r4, #0xc] + adds r0, r6, #0 + movs r1, #2 + bl NewGameBirchSpeech_StartFadeInTarget1OutTarget2 + adds r0, r6, #0 + movs r1, #1 + bl NewGameBirchSpeech_StartFadePlatformOut + ldr r0, _080311F8 + ldr r1, _080311FC + bl StringExpandPlaceholders + movs r0, #1 + bl AddTextPrinterForMessage + ldr r0, _08031200 + str r0, [r4] +_080311F0: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080311F8: .4byte 0x02021C7C +_080311FC: .4byte 0x08277265 +_08031200: .4byte 0x08031205 + thumb_func_end Task_NewGameBirchSpeech_AreYouReady + + thumb_func_start Task_NewGameBirchSpeech_ShrinkPlayer +Task_NewGameBirchSpeech_ShrinkPlayer: @ 0x08031204 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080312A8 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r6, r1, r2 + movs r1, #0x12 + ldrsh r0, [r6, r1] + cmp r0, #0 + beq _0803129C + ldr r7, _080312AC + movs r1, #0xc + ldrsh r0, [r6, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r7 + ldrb r2, [r1, #1] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #1] + bl RunTextPrintersAndIsPrinter0Active + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + cmp r0, #0 + bne _0803129C + ldrb r0, [r6, #0xc] + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + adds r5, r4, r7 + ldrb r1, [r5, #1] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #1] + adds r0, r7, #0 + adds r0, #0x10 + adds r0, r4, r0 + ldr r1, _080312B0 + str r1, [r0] + adds r0, r5, #0 + bl InitSpriteAffineAnim + adds r0, r5, #0 + movs r1, #0 + bl StartSpriteAffineAnim + adds r0, r7, #0 + adds r0, #0x1c + adds r4, r4, r0 + ldr r0, _080312B4 + str r0, [r4] + ldr r0, _080312B8 + mov r1, r8 + str r1, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + movs r0, #4 + bl FadeOutBGMTemporarily + ldr r0, _080312BC + str r0, [r6] +_0803129C: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080312A8: .4byte 0x03005B60 +_080312AC: .4byte 0x020205AC +_080312B0: .4byte 0x082D29A4 +_080312B4: .4byte 0x08031619 +_080312B8: .4byte 0x0000FFFF +_080312BC: .4byte 0x080312C1 + thumb_func_end Task_NewGameBirchSpeech_ShrinkPlayer + + thumb_func_start Task_NewGameBirchSpeech_WaitForPlayerShrink +Task_NewGameBirchSpeech_WaitForPlayerShrink: @ 0x080312C0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080312F0 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r3, r1, r2 + ldrb r1, [r3, #0xc] + ldr r2, _080312F4 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3f + ldrb r0, [r0] + lsls r0, r0, #0x1a + cmp r0, #0 + bge _080312EA + ldr r0, _080312F8 + str r0, [r3] +_080312EA: + pop {r0} + bx r0 + .align 2, 0 +_080312F0: .4byte 0x03005B60 +_080312F4: .4byte 0x020205AC +_080312F8: .4byte 0x080312FD + thumb_func_end Task_NewGameBirchSpeech_WaitForPlayerShrink + + thumb_func_start Task_NewGameBirchSpeech_FadePlayerToWhite +Task_NewGameBirchSpeech_FadePlayerToWhite: @ 0x080312FC + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _08031354 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0803134A + ldr r0, _08031358 + lsls r4, r2, #2 + adds r4, r4, r2 + lsls r4, r4, #3 + adds r4, r4, r0 + ldrb r2, [r4, #0xc] + ldr r1, _0803135C + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _08031360 + str r1, [r0] + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + ldr r0, _08031364 + ldr r1, _08031368 + str r1, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _0803136C + str r0, [r4] +_0803134A: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08031354: .4byte 0x02037C74 +_08031358: .4byte 0x03005B60 +_0803135C: .4byte 0x020205AC +_08031360: .4byte 0x08031615 +_08031364: .4byte 0xFFFF0000 +_08031368: .4byte 0x0000FFFF +_0803136C: .4byte 0x08031371 + thumb_func_end Task_NewGameBirchSpeech_FadePlayerToWhite + + thumb_func_start Task_NewGameBirchSpeech_Cleanup +Task_NewGameBirchSpeech_Cleanup: @ 0x08031370 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080313AC + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080313A6 + bl FreeAllWindowBuffers + ldr r1, _080313B0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r0, [r0, #0x1a] + bl FreeAndDestroyMonPicSprite + bl ResetAllPicSprites + ldr r0, _080313B4 + bl SetMainCallback2 + adds r0, r4, #0 + bl DestroyTask +_080313A6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080313AC: .4byte 0x02037C74 +_080313B0: .4byte 0x03005B60 +_080313B4: .4byte 0x08085861 + thumb_func_end Task_NewGameBirchSpeech_Cleanup + + thumb_func_start CB2_NewGameBirchSpeech_ReturnFromNamingScreen +CB2_NewGameBirchSpeech_ReturnFromNamingScreen: @ 0x080313B8 + push {r4, r5, lr} + sub sp, #0xc + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + movs r0, #0 + movs r1, #0 + bl SetGpuReg + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + ldr r1, _080314E0 + movs r0, #0 + movs r2, #2 + bl InitBgsFromTemplates + ldr r0, _080314E4 + bl InitBgFromTemplate + movs r0, #0 + bl SetVBlankCallback + movs r0, #0xc + movs r1, #0 + bl SetGpuReg + movs r0, #0xa + movs r1, #0 + bl SetGpuReg + movs r0, #8 + movs r1, #0 + bl SetGpuReg + movs r0, #0x18 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1a + movs r1, #0 + bl SetGpuReg + movs r0, #0x14 + movs r1, #0 + bl SetGpuReg + movs r0, #0x16 + movs r1, #0 + bl SetGpuReg + movs r0, #0x10 + movs r1, #0 + bl SetGpuReg + movs r0, #0x12 + movs r1, #0 + bl SetGpuReg + add r0, sp, #4 + movs r4, #0 + strh r4, [r0] + ldr r1, _080314E8 + str r0, [r1] + movs r4, #0xc0 + lsls r4, r4, #0x13 + str r4, [r1, #4] + ldr r0, _080314EC + str r0, [r1, #8] + ldr r0, [r1, #8] + movs r2, #0 + str r2, [sp, #8] + add r0, sp, #8 + str r0, [r1] + movs r0, #0xe0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _080314F0 + str r0, [r1, #8] + ldr r0, [r1, #8] + add r0, sp, #4 + strh r2, [r0] + str r0, [r1] + movs r0, #0xa0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _080314F4 + str r0, [r1, #8] + ldr r0, [r1, #8] + bl ResetPaletteFade + ldr r0, _080314F8 + adds r1, r4, #0 + bl LZ77UnCompVram + ldr r0, _080314FC + ldr r1, _08031500 + bl LZ77UnCompVram + ldr r0, _08031504 + movs r1, #0 + movs r2, #0x40 + bl LoadPalette + ldr r0, _08031508 + movs r1, #1 + movs r2, #0x10 + bl LoadPalette + bl ResetTasks + ldr r0, _0803150C + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _08031510 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r0, #5 + strh r0, [r4, #0x16] + ldr r0, _08031514 + strh r0, [r4, #0x10] + bl ScanlineEffect_Stop + bl ResetSpriteData + bl FreeAllSpritePalettes + bl ResetAllPicSprites + adds r0, r5, #0 + bl AddBirchSpeechObjects + ldr r0, _08031518 + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #0 + beq _0803151C + movs r0, #1 + strh r0, [r4, #0x14] + ldrb r3, [r4, #0x1e] + b _08031520 + .align 2, 0 +_080314E0: .4byte 0x082D2978 +_080314E4: .4byte 0x082D2980 +_080314E8: .4byte 0x040000D4 +_080314EC: .4byte 0x8100C000 +_080314F0: .4byte 0x85000100 +_080314F4: .4byte 0x81000200 +_080314F8: .4byte 0x082D25C8 +_080314FC: .4byte 0x082D277C +_08031500: .4byte 0x06003800 +_08031504: .4byte 0x082D2588 +_08031508: .4byte 0x082D28A8 +_0803150C: .4byte 0x080324B5 +_08031510: .4byte 0x03005B60 +_08031514: .4byte 0x0000FFC4 +_08031518: .4byte 0x03005AF0 +_0803151C: + strh r0, [r4, #0x14] + ldrb r3, [r4, #0x1c] +_08031520: + ldr r0, _080315F4 + lsls r1, r3, #4 + adds r1, r1, r3 + lsls r1, r1, #2 + adds r1, r1, r0 + movs r4, #0 + movs r0, #0xb4 + strh r0, [r1, #0x20] + movs r0, #0x3c + strh r0, [r1, #0x22] + adds r1, #0x3e + ldrb r2, [r1] + subs r0, #0x41 + ands r0, r2 + strb r0, [r1] + ldr r1, _080315F8 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r3, [r0, #0xc] + ldr r1, _080315FC + movs r0, #0x14 + bl SetGpuReg + movs r0, #1 + rsbs r0, r0, #0 + str r4, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + movs r0, #0x40 + movs r1, #0 + bl SetGpuReg + movs r0, #0x44 + movs r1, #0 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0 + bl SetGpuReg + movs r0, #0x4a + movs r1, #0 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + ldr r3, _08031600 + ldrh r2, [r3] + strh r4, [r3] + ldr r4, _08031604 + ldrh r0, [r4] + movs r1, #1 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r0, _08031608 + bl SetVBlankCallback + ldr r0, _0803160C + bl SetMainCallback2 + ldr r0, _08031610 + bl InitWindows + movs r0, #0 + movs r1, #0xdb + bl LoadMainMenuWindowFrameTiles + movs r0, #0 + movs r1, #0xe4 + movs r2, #0xf0 + bl LoadMessageBoxGfx + movs r0, #0 + bl PutWindowTilemap + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080315F4: .4byte 0x020205AC +_080315F8: .4byte 0x03005B60 +_080315FC: .4byte 0x0000FFC4 +_08031600: .4byte 0x04000208 +_08031604: .4byte 0x04000200 +_08031608: .4byte 0x0802F32D +_0803160C: .4byte 0x0802F315 +_08031610: .4byte 0x082D2910 + thumb_func_end CB2_NewGameBirchSpeech_ReturnFromNamingScreen + + thumb_func_start SpriteCB_Null +SpriteCB_Null: @ 0x08031614 + bx lr + .align 2, 0 + thumb_func_end SpriteCB_Null + + thumb_func_start SpriteCB_MovePlayerDownWhileShrinking +SpriteCB_MovePlayerDownWhileShrinking: @ 0x08031618 + movs r2, #0x22 + ldrsh r1, [r0, r2] + lsls r1, r1, #0x10 + movs r3, #0x2e + ldrsh r2, [r0, r3] + adds r1, r1, r2 + movs r2, #0xc0 + lsls r2, r2, #8 + adds r1, r1, r2 + lsrs r2, r1, #0x10 + strh r2, [r0, #0x22] + strh r1, [r0, #0x2e] + bx lr + .align 2, 0 + thumb_func_end SpriteCB_MovePlayerDownWhileShrinking + + thumb_func_start NewGameBirchSpeech_CreateLotadSprite +NewGameBirchSpeech_CreateLotadSprite: @ 0x08031634 + push {lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _08031664 + str r0, [sp] + str r1, [sp, #4] + movs r0, #0xe + str r0, [sp, #8] + ldr r0, _08031668 + str r0, [sp, #0xc] + adds r0, r2, #0 + movs r1, #8 + movs r2, #0 + movs r3, #1 + bl CreatePicSprite2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #0x10 + pop {r1} + bx r1 + .align 2, 0 +_08031664: .4byte 0x00000127 +_08031668: .4byte 0x0000FFFF + thumb_func_end NewGameBirchSpeech_CreateLotadSprite + + thumb_func_start AddBirchSpeechObjects +AddBirchSpeechObjects: @ 0x0803166C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0x88 + movs r1, #0x3c + movs r2, #1 + bl AddNewGameBirchObject + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0803178C + mov sb, r1 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + movs r3, #0x1c + add r3, sb + mov r8, r3 + adds r1, r2, r3 + ldr r7, _08031790 + str r7, [r1] + add r2, sb + ldrb r3, [r2, #5] + movs r6, #0xd + rsbs r6, r6, #0 + adds r1, r6, #0 + ands r1, r3 + strb r1, [r2, #5] + adds r2, #0x3e + ldrb r1, [r2] + movs r3, #4 + mov sl, r3 + mov r3, sl + orrs r1, r3 + strb r1, [r2] + ldr r1, _08031794 + lsls r5, r4, #2 + adds r5, r5, r4 + lsls r5, r5, #3 + adds r5, r5, r1 + strh r0, [r5, #0x18] + movs r0, #0x64 + movs r1, #0x4b + bl NewGameBirchSpeech_CreateLotadSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + mov r4, r8 + adds r1, r2, r4 + str r7, [r1] + add r2, sb + ldrb r3, [r2, #5] + adds r1, r6, #0 + ands r1, r3 + strb r1, [r2, #5] + adds r2, #0x3e + ldrb r1, [r2] + mov r3, sl + orrs r1, r3 + strb r1, [r2] + strh r0, [r5, #0x1a] + movs r0, #0x3c + bl FacilityClassToPicIndex + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _08031798 + str r4, [sp] + movs r1, #0x78 + movs r2, #0x3c + movs r3, #0 + bl CreateTrainerSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + mov r3, r8 + adds r1, r2, r3 + str r7, [r1] + add r2, sb + adds r3, r2, #0 + adds r3, #0x3e + ldrb r1, [r3] + mov r4, sl + orrs r1, r4 + strb r1, [r3] + ldrb r3, [r2, #5] + adds r1, r6, #0 + ands r1, r3 + strb r1, [r2, #5] + strh r0, [r5, #0x1c] + movs r0, #0x3f + bl FacilityClassToPicIndex + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08031798 + movs r2, #0x80 + lsls r2, r2, #4 + adds r4, r1, r2 + str r4, [sp] + movs r1, #0x78 + movs r2, #0x3c + movs r3, #0 + bl CreateTrainerSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + add r8, r2 + mov r3, r8 + str r7, [r3] + add r2, sb + adds r3, r2, #0 + adds r3, #0x3e + ldrb r1, [r3] + mov r4, sl + orrs r1, r4 + strb r1, [r3] + ldrb r1, [r2, #5] + ands r6, r1 + strb r6, [r2, #5] + strh r0, [r5, #0x1e] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0803178C: .4byte 0x020205AC +_08031790: .4byte 0x08031615 +_08031794: .4byte 0x03005B60 +_08031798: .4byte 0x0201C000 + thumb_func_end AddBirchSpeechObjects + + thumb_func_start Task_NewGameBirchSpeech_FadeOutTarget1InTarget2 +Task_NewGameBirchSpeech_FadeOutTarget1InTarget2: @ 0x0803179C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r4, _080317D0 + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #3 + adds r2, r0, r4 + ldrh r1, [r2, #0xa] + movs r5, #0xa + ldrsh r0, [r2, r5] + cmp r0, #0 + bne _080317D4 + movs r1, #8 + ldrsh r0, [r2, r1] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r4 + movs r0, #1 + strh r0, [r1, #0x12] + adds r0, r3, #0 + bl DestroyTask + b _08031804 + .align 2, 0 +_080317D0: .4byte 0x03005B60 +_080317D4: + ldrh r3, [r2, #0x10] + movs r4, #0x10 + ldrsh r0, [r2, r4] + cmp r0, #0 + beq _080317E4 + subs r0, r3, #1 + strh r0, [r2, #0x10] + b _08031804 +_080317E4: + ldrh r0, [r2, #0xe] + strh r0, [r2, #0x10] + subs r1, #1 + strh r1, [r2, #0xa] + ldrh r0, [r2, #0xc] + adds r0, #1 + strh r0, [r2, #0xc] + movs r5, #0xc + ldrsh r0, [r2, r5] + lsls r0, r0, #8 + adds r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg +_08031804: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Task_NewGameBirchSpeech_FadeOutTarget1InTarget2 + + thumb_func_start NewGameBirchSpeech_StartFadeOutTarget1InTarget2 +NewGameBirchSpeech_StartFadeOutTarget1InTarget2: @ 0x0803180C + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r1, #0x94 + lsls r1, r1, #2 + movs r0, #0x50 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0x10 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + ldr r0, _08031874 + mov r8, r0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + add r0, r8 + movs r6, #0 + strh r6, [r0, #0x12] + ldr r0, _08031878 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + add r1, r8 + strh r4, [r1, #8] + movs r0, #0x10 + strh r0, [r1, #0xa] + strh r6, [r1, #0xc] + strh r5, [r1, #0xe] + strh r5, [r1, #0x10] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08031874: .4byte 0x03005B60 +_08031878: .4byte 0x0803179D + thumb_func_end NewGameBirchSpeech_StartFadeOutTarget1InTarget2 + + thumb_func_start Task_NewGameBirchSpeech_FadeInTarget1OutTarget2 +Task_NewGameBirchSpeech_FadeInTarget1OutTarget2: @ 0x0803187C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r4, _080318B0 + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #3 + adds r2, r0, r4 + ldrh r1, [r2, #0xa] + movs r5, #0xa + ldrsh r0, [r2, r5] + cmp r0, #0x10 + bne _080318B4 + movs r1, #8 + ldrsh r0, [r2, r1] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r4 + movs r0, #1 + strh r0, [r1, #0x12] + adds r0, r3, #0 + bl DestroyTask + b _080318E4 + .align 2, 0 +_080318B0: .4byte 0x03005B60 +_080318B4: + ldrh r3, [r2, #0x10] + movs r4, #0x10 + ldrsh r0, [r2, r4] + cmp r0, #0 + beq _080318C4 + subs r0, r3, #1 + strh r0, [r2, #0x10] + b _080318E4 +_080318C4: + ldrh r0, [r2, #0xe] + strh r0, [r2, #0x10] + adds r1, #1 + strh r1, [r2, #0xa] + ldrh r0, [r2, #0xc] + subs r0, #1 + strh r0, [r2, #0xc] + movs r5, #0xc + ldrsh r0, [r2, r5] + lsls r0, r0, #8 + adds r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg +_080318E4: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Task_NewGameBirchSpeech_FadeInTarget1OutTarget2 + + thumb_func_start NewGameBirchSpeech_StartFadeInTarget1OutTarget2 +NewGameBirchSpeech_StartFadeInTarget1OutTarget2: @ 0x080318EC + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r1, #0x94 + lsls r1, r1, #2 + movs r0, #0x50 + bl SetGpuReg + movs r1, #0x80 + lsls r1, r1, #5 + movs r0, #0x52 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + ldr r0, _08031954 + mov r8, r0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + add r0, r8 + movs r6, #0 + strh r6, [r0, #0x12] + ldr r0, _08031958 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + add r1, r8 + strh r4, [r1, #8] + strh r6, [r1, #0xa] + movs r0, #0x10 + strh r0, [r1, #0xc] + strh r5, [r1, #0xe] + strh r5, [r1, #0x10] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08031954: .4byte 0x03005B60 +_08031958: .4byte 0x0803187D + thumb_func_end NewGameBirchSpeech_StartFadeInTarget1OutTarget2 + + thumb_func_start Task_NewGameBirchSpeech_FadePlatformIn +Task_NewGameBirchSpeech_FadePlatformIn: @ 0x0803195C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _0803197C + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r1, r0, r1 + ldrh r3, [r1, #0xc] + movs r4, #0xc + ldrsh r0, [r1, r4] + cmp r0, #0 + beq _08031980 + subs r0, r3, #1 + strh r0, [r1, #0xc] + b _080319BC + .align 2, 0 +_0803197C: .4byte 0x03005B60 +_08031980: + ldrh r3, [r1, #0xa] + movs r4, #0xa + ldrsh r0, [r1, r4] + cmp r0, #8 + bne _08031992 + adds r0, r2, #0 + bl DestroyTask + b _080319BC +_08031992: + ldrh r2, [r1, #0x10] + movs r4, #0x10 + ldrsh r0, [r1, r4] + cmp r0, #0 + beq _080319A2 + subs r0, r2, #1 + strh r0, [r1, #0x10] + b _080319BC +_080319A2: + ldrh r0, [r1, #0xe] + strh r0, [r1, #0x10] + adds r0, r3, #1 + strh r0, [r1, #0xa] + movs r2, #0xa + ldrsh r0, [r1, r2] + lsls r0, r0, #1 + ldr r1, _080319C4 + adds r0, r0, r1 + movs r1, #1 + movs r2, #0x10 + bl LoadPalette +_080319BC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080319C4: .4byte 0x082D28A6 + thumb_func_end Task_NewGameBirchSpeech_FadePlatformIn + + thumb_func_start NewGameBirchSpeech_StartFadePlatformIn +NewGameBirchSpeech_StartFadePlatformIn: @ 0x080319C8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _08031A00 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08031A04 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r0, #0 + strh r4, [r1, #8] + strh r0, [r1, #0xa] + movs r0, #8 + strh r0, [r1, #0xc] + strh r5, [r1, #0xe] + strh r5, [r1, #0x10] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08031A00: .4byte 0x0803195D +_08031A04: .4byte 0x03005B60 + thumb_func_end NewGameBirchSpeech_StartFadePlatformIn + + thumb_func_start Task_NewGameBirchSpeech_FadePlatformOut +Task_NewGameBirchSpeech_FadePlatformOut: @ 0x08031A08 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _08031A28 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r1, r0, r1 + ldrh r3, [r1, #0xc] + movs r4, #0xc + ldrsh r0, [r1, r4] + cmp r0, #0 + beq _08031A2C + subs r0, r3, #1 + strh r0, [r1, #0xc] + b _08031A68 + .align 2, 0 +_08031A28: .4byte 0x03005B60 +_08031A2C: + ldrh r3, [r1, #0xa] + movs r4, #0xa + ldrsh r0, [r1, r4] + cmp r0, #0 + bne _08031A3E + adds r0, r2, #0 + bl DestroyTask + b _08031A68 +_08031A3E: + ldrh r2, [r1, #0x10] + movs r4, #0x10 + ldrsh r0, [r1, r4] + cmp r0, #0 + beq _08031A4E + subs r0, r2, #1 + strh r0, [r1, #0x10] + b _08031A68 +_08031A4E: + ldrh r0, [r1, #0xe] + strh r0, [r1, #0x10] + subs r0, r3, #1 + strh r0, [r1, #0xa] + movs r2, #0xa + ldrsh r0, [r1, r2] + lsls r0, r0, #1 + ldr r1, _08031A70 + adds r0, r0, r1 + movs r1, #1 + movs r2, #0x10 + bl LoadPalette +_08031A68: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08031A70: .4byte 0x082D28A6 + thumb_func_end Task_NewGameBirchSpeech_FadePlatformOut + + thumb_func_start NewGameBirchSpeech_StartFadePlatformOut +NewGameBirchSpeech_StartFadePlatformOut: @ 0x08031A74 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _08031AAC + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08031AB0 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #8] + movs r0, #8 + strh r0, [r1, #0xa] + strh r0, [r1, #0xc] + strh r5, [r1, #0xe] + strh r5, [r1, #0x10] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08031AAC: .4byte 0x08031A09 +_08031AB0: .4byte 0x03005B60 + thumb_func_end NewGameBirchSpeech_StartFadePlatformOut + + thumb_func_start NewGameBirchSpeech_ShowGenderMenu +NewGameBirchSpeech_ShowGenderMenu: @ 0x08031AB4 + push {r4, r5, lr} + sub sp, #0xc + ldr r0, _08031B18 + movs r1, #0xdb + bl DrawMainMenuWindowBorder + movs r0, #1 + movs r1, #0x11 + bl FillWindowPixelBuffer + movs r0, #1 + movs r1, #0 + bl GetMenuCursorDimensionByFont + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r5, #0x10 + str r5, [sp] + movs r4, #2 + str r4, [sp, #4] + ldr r0, _08031B1C + str r0, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r3, #2 + bl PrintTextArray + str r5, [sp] + str r4, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl sub_081984B0 + movs r0, #1 + bl PutWindowTilemap + movs r0, #1 + movs r1, #2 + bl CopyWindowToVram + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08031B18: .4byte 0x082D2918 +_08031B1C: .4byte 0x082D29A8 + thumb_func_end NewGameBirchSpeech_ShowGenderMenu + + thumb_func_start NewGameBirchSpeech_ProcessGenderMenuInput +NewGameBirchSpeech_ProcessGenderMenuInput: @ 0x08031B20 + push {lr} + bl Menu_ProcessInputNoWrap + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end NewGameBirchSpeech_ProcessGenderMenuInput + + thumb_func_start NewGameBirchSpeech_SetDefaultPlayerName +NewGameBirchSpeech_SetDefaultPlayerName: @ 0x08031B30 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _08031B48 + ldr r0, [r1] + ldrb r0, [r0, #8] + adds r5, r1, #0 + cmp r0, #0 + bne _08031B50 + ldr r1, _08031B4C + b _08031B52 + .align 2, 0 +_08031B48: .4byte 0x03005AF0 +_08031B4C: .4byte 0x082D29B8 +_08031B50: + ldr r1, _08031B7C +_08031B52: + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r3, [r0] + movs r2, #0 + ldr r4, _08031B80 +_08031B5C: + ldr r1, [r4] + adds r1, r1, r2 + adds r0, r3, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #4 + bls _08031B5C + ldr r1, [r5] + movs r0, #0xff + strb r0, [r1, #5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08031B7C: .4byte 0x082D2A08 +_08031B80: .4byte 0x03005AF0 + thumb_func_end NewGameBirchSpeech_SetDefaultPlayerName + + thumb_func_start CreateMainMenuErrorWindow +CreateMainMenuErrorWindow: @ 0x08031B84 + push {r4, lr} + sub sp, #0xc + adds r4, r0, #0 + movs r0, #7 + movs r1, #0x11 + bl FillWindowPixelBuffer + movs r0, #2 + str r0, [sp] + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + movs r0, #7 + movs r1, #1 + adds r2, r4, #0 + movs r3, #0 + bl AddTextPrinterParameterized + movs r0, #7 + bl PutWindowTilemap + movs r0, #7 + movs r1, #2 + bl CopyWindowToVram + ldr r0, _08031BD8 + ldr r1, _08031BDC + bl DrawMainMenuWindowBorder + ldr r1, _08031BE0 + movs r0, #0x40 + bl SetGpuReg + ldr r1, _08031BE4 + movs r0, #0x44 + bl SetGpuReg + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08031BD8: .4byte 0x082D2900 +_08031BDC: .4byte 0x000001D5 +_08031BE0: .4byte 0x000009E7 +_08031BE4: .4byte 0x0000719F + thumb_func_end CreateMainMenuErrorWindow + + thumb_func_start MainMenu_FormatSavegameText +MainMenu_FormatSavegameText: @ 0x08031BE8 + push {lr} + bl MainMenu_FormatSavegamePlayer + bl MainMenu_FormatSavegamePokedex + bl MainMenu_FormatSavegameTime + bl MainMenu_FormatSavegameBadges + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end MainMenu_FormatSavegameText + + thumb_func_start MainMenu_FormatSavegamePlayer +MainMenu_FormatSavegamePlayer: @ 0x08031C00 + push {r4, lr} + sub sp, #0xc + ldr r0, _08031C38 + ldr r1, _08031C3C + ldr r1, [r1] + bl StringCopy + ldr r4, _08031C40 + ldr r1, _08031C44 + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r0, _08031C48 + str r0, [sp] + movs r0, #1 + rsbs r0, r0, #0 + str r0, [sp, #4] + str r4, [sp, #8] + movs r0, #2 + movs r1, #1 + movs r2, #0 + movs r3, #0x11 + bl AddTextPrinterParameterized3 + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08031C38: .4byte 0x02021C40 +_08031C3C: .4byte 0x03005AF0 +_08031C40: .4byte 0x02021C7C +_08031C44: .4byte 0x085CCCBD +_08031C48: .4byte 0x082D2973 + thumb_func_end MainMenu_FormatSavegamePlayer + + thumb_func_start MainMenu_FormatSavegameTime +MainMenu_FormatSavegameTime: @ 0x08031C4C + push {r4, lr} + sub sp, #0xc + ldr r0, _08031C98 + ldr r4, _08031C9C + ldr r1, [r4] + ldrh r1, [r1, #0xe] + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r0, _08031CA0 + ldr r1, [r4] + ldrb r1, [r1, #0x10] + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r4, _08031CA4 + ldr r1, _08031CA8 + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r0, _08031CAC + str r0, [sp] + movs r0, #1 + rsbs r0, r0, #0 + str r0, [sp, #4] + str r4, [sp, #8] + movs r0, #2 + movs r1, #1 + movs r2, #0x67 + movs r3, #0x11 + bl AddTextPrinterParameterized3 + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08031C98: .4byte 0x02021C40 +_08031C9C: .4byte 0x03005AF0 +_08031CA0: .4byte 0x02021C54 +_08031CA4: .4byte 0x02021C7C +_08031CA8: .4byte 0x085CCCC7 +_08031CAC: .4byte 0x082D2973 + thumb_func_end MainMenu_FormatSavegameTime + + thumb_func_start MainMenu_FormatSavegamePokedex +MainMenu_FormatSavegamePokedex: @ 0x08031CB0 + push {r4, lr} + sub sp, #0xc + ldr r0, _08031CD4 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08031D0E + bl IsNationalPokedexEnabled + cmp r0, #0 + beq _08031CD8 + movs r0, #1 + bl GetNationalPokedexCount + b _08031CDE + .align 2, 0 +_08031CD4: .4byte 0x00000861 +_08031CD8: + movs r0, #1 + bl GetHoennPokedexCount +_08031CDE: + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r0, _08031D18 + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r4, _08031D1C + ldr r1, _08031D20 + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r0, _08031D24 + str r0, [sp] + movs r0, #1 + rsbs r0, r0, #0 + str r0, [sp, #4] + str r4, [sp, #8] + movs r0, #2 + movs r1, #1 + movs r2, #0 + movs r3, #0x21 + bl AddTextPrinterParameterized3 +_08031D0E: + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08031D18: .4byte 0x02021C40 +_08031D1C: .4byte 0x02021C7C +_08031D20: .4byte 0x085CCCD4 +_08031D24: .4byte 0x082D2973 + thumb_func_end MainMenu_FormatSavegamePokedex + + thumb_func_start MainMenu_FormatSavegameBadges +MainMenu_FormatSavegameBadges: @ 0x08031D28 + push {r4, r5, lr} + sub sp, #0xc + movs r5, #0 + ldr r4, _08031D84 +_08031D30: + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08031D44 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_08031D44: + adds r4, #1 + ldr r0, _08031D88 + cmp r4, r0 + bls _08031D30 + ldr r0, _08031D8C + adds r1, r5, #0 + movs r2, #2 + movs r3, #1 + bl ConvertIntToDecimalStringN + ldr r4, _08031D90 + ldr r1, _08031D94 + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r0, _08031D98 + str r0, [sp] + movs r0, #1 + rsbs r0, r0, #0 + str r0, [sp, #4] + str r4, [sp, #8] + movs r0, #2 + movs r1, #1 + movs r2, #0x6f + movs r3, #0x21 + bl AddTextPrinterParameterized3 + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08031D84: .4byte 0x00000867 +_08031D88: .4byte 0x0000086E +_08031D8C: .4byte 0x02021C40 +_08031D90: .4byte 0x02021C7C +_08031D94: .4byte 0x085CCCE1 +_08031D98: .4byte 0x082D2973 + thumb_func_end MainMenu_FormatSavegameBadges + + thumb_func_start LoadMainMenuWindowFrameTiles +LoadMainMenuWindowFrameTiles: @ 0x08031D9C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + ldr r6, _08031DE0 + ldr r0, [r6] + ldrb r0, [r0, #0x14] + lsrs r0, r0, #3 + bl GetWindowFrameTilesPal + ldr r1, [r0] + movs r2, #0x90 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r3, r5, #0 + bl LoadBgTiles + ldr r0, [r6] + ldrb r0, [r0, #0x14] + lsrs r0, r0, #3 + bl GetWindowFrameTilesPal + ldr r0, [r0, #4] + movs r1, #0x20 + movs r2, #0x20 + bl LoadPalette + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08031DE0: .4byte 0x03005AF0 + thumb_func_end LoadMainMenuWindowFrameTiles + + thumb_func_start DrawMainMenuWindowBorder +DrawMainMenuWindowBorder: @ 0x08031DE4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + adds r4, r0, #0 + lsls r6, r1, #0x10 + movs r0, #0x80 + lsls r0, r0, #9 + adds r0, r0, r6 + lsrs r0, r0, #0x10 + mov sb, r0 + movs r1, #0x80 + lsls r1, r1, #0xa + adds r1, r1, r6 + lsrs r1, r1, #0x10 + mov sl, r1 + movs r7, #0xc0 + lsls r7, r7, #0xa + adds r1, r6, r7 + lsrs r1, r1, #0x10 + str r1, [sp, #0x18] + movs r0, #0xa0 + lsls r0, r0, #0xb + adds r1, r6, r0 + lsrs r1, r1, #0x10 + str r1, [sp, #0xc] + movs r7, #0xc0 + lsls r7, r7, #0xb + adds r1, r6, r7 + lsrs r1, r1, #0x10 + str r1, [sp, #0x10] + movs r0, #0xe0 + lsls r0, r0, #0xb + adds r1, r6, r0 + lsrs r1, r1, #0x10 + str r1, [sp, #0x14] + lsrs r1, r6, #0x10 + movs r7, #0x80 + lsls r7, r7, #0xc + adds r6, r6, r7 + lsrs r6, r6, #0x10 + ldrb r0, [r4] + ldrb r2, [r4, #1] + subs r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r3, [r4, #2] + subs r3, #1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r5, #1 + str r5, [sp] + str r5, [sp, #4] + movs r7, #2 + mov r8, r7 + str r7, [sp, #8] + bl FillBgTilemapBufferRect + ldrb r0, [r4] + ldrb r2, [r4, #1] + ldrb r3, [r4, #2] + subs r3, #1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldrb r1, [r4, #3] + str r1, [sp] + str r5, [sp, #4] + str r7, [sp, #8] + mov r1, sb + bl FillBgTilemapBufferRect + ldrb r0, [r4] + ldrb r2, [r4, #3] + ldrb r1, [r4, #1] + adds r2, r2, r1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r3, [r4, #2] + subs r3, #1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r5, [sp] + str r5, [sp, #4] + str r7, [sp, #8] + mov r1, sl + bl FillBgTilemapBufferRect + ldrb r0, [r4] + ldrb r2, [r4, #1] + subs r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r3, [r4, #2] + str r5, [sp] + ldrb r1, [r4, #4] + str r1, [sp, #4] + str r7, [sp, #8] + ldr r1, [sp, #0x18] + bl FillBgTilemapBufferRect + ldrb r0, [r4] + ldrb r2, [r4, #3] + ldrb r7, [r4, #1] + adds r2, r2, r7 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r3, [r4, #2] + str r5, [sp] + ldrb r1, [r4, #4] + str r1, [sp, #4] + mov r1, r8 + str r1, [sp, #8] + ldr r1, [sp, #0xc] + bl FillBgTilemapBufferRect + ldrb r0, [r4] + ldrb r2, [r4, #1] + subs r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r3, [r4, #4] + ldrb r7, [r4, #2] + adds r3, r3, r7 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r5, [sp] + str r5, [sp, #4] + mov r1, r8 + str r1, [sp, #8] + ldr r1, [sp, #0x10] + bl FillBgTilemapBufferRect + ldrb r0, [r4] + ldrb r2, [r4, #1] + ldrb r3, [r4, #4] + ldrb r7, [r4, #2] + adds r3, r3, r7 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldrb r1, [r4, #3] + str r1, [sp] + str r5, [sp, #4] + mov r1, r8 + str r1, [sp, #8] + ldr r1, [sp, #0x14] + bl FillBgTilemapBufferRect + ldrb r0, [r4] + ldrb r2, [r4, #3] + ldrb r7, [r4, #1] + adds r2, r2, r7 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r3, [r4, #4] + ldrb r1, [r4, #2] + adds r3, r3, r1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r5, [sp] + str r5, [sp, #4] + mov r7, r8 + str r7, [sp, #8] + adds r1, r6, #0 + bl FillBgTilemapBufferRect + ldrb r0, [r4] + bl CopyBgTilemapBufferToVram + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end DrawMainMenuWindowBorder + + thumb_func_start ClearMainMenuWindowTilemap +ClearMainMenuWindowTilemap: @ 0x08031F48 + push {r4, r5, r6, lr} + sub sp, #0xc + adds r6, r0, #0 + ldrb r0, [r6] + ldrb r1, [r6, #1] + subs r2, r1, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r4, [r6, #2] + subs r3, r4, #1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldrb r5, [r6, #3] + adds r1, r1, r5 + adds r1, #1 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp] + ldrb r1, [r6, #4] + adds r4, r4, r1 + adds r4, #1 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r4, [sp, #4] + movs r1, #2 + str r1, [sp, #8] + movs r1, #0 + bl FillBgTilemapBufferRect + ldrb r0, [r6] + bl CopyBgTilemapBufferToVram + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end ClearMainMenuWindowTilemap + + thumb_func_start NewGameBirchSpeech_ClearGenderWindowTilemap +NewGameBirchSpeech_ClearGenderWindowTilemap: @ 0x08031F90 + push {r4, r5, lr} + sub sp, #0xc + adds r4, r1, #0 + adds r5, r2, #0 + ldr r1, [sp, #0x18] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r4, #0x18 + lsls r5, r5, #0x18 + lsls r3, r3, #0x18 + lsls r1, r1, #0x18 + movs r2, #0xff + lsls r2, r2, #0x18 + adds r4, r4, r2 + lsrs r4, r4, #0x18 + adds r5, r5, r2 + lsrs r5, r5, #0x18 + movs r2, #0x80 + lsls r2, r2, #0x12 + adds r3, r3, r2 + lsrs r3, r3, #0x18 + str r3, [sp] + adds r1, r1, r2 + lsrs r1, r1, #0x18 + str r1, [sp, #4] + movs r1, #2 + str r1, [sp, #8] + movs r1, #0 + adds r2, r4, #0 + adds r3, r5, #0 + bl FillBgTilemapBufferRect + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end NewGameBirchSpeech_ClearGenderWindowTilemap + + thumb_func_start sub_08031FD8 +sub_08031FD8: @ 0x08031FD8 + push {r4, r5, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _0803200C + adds r0, r5, #0 + bl CallWindowFunction + adds r0, r5, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + adds r0, r5, #0 + bl ClearWindowTilemap + cmp r4, #1 + bne _08032006 + adds r0, r5, #0 + movs r1, #3 + bl CopyWindowToVram +_08032006: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0803200C: .4byte 0x08031F91 + thumb_func_end sub_08031FD8 + + thumb_func_start NewGameBirchSpeech_ClearWindow +NewGameBirchSpeech_ClearWindow: @ 0x08032010 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #8 + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + movs r0, #1 + movs r1, #6 + bl GetFontAttribute + mov sb, r0 + mov r0, sb + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + movs r0, #1 + movs r1, #0 + bl GetFontAttribute + mov r8, r0 + mov r0, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r0, #1 + movs r1, #1 + bl GetFontAttribute + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + adds r0, r6, #0 + movs r1, #3 + bl GetWindowAttribute + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r6, #0 + movs r1, #4 + bl GetWindowAttribute + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, r8 + muls r1, r4, r1 + str r1, [sp] + muls r0, r5, r0 + str r0, [sp, #4] + adds r0, r6, #0 + mov r1, sb + movs r2, #0 + movs r3, #0 + bl FillWindowPixelRect + adds r0, r6, #0 + movs r1, #2 + bl CopyWindowToVram + add sp, #8 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end NewGameBirchSpeech_ClearWindow + + thumb_func_start NewGameBirchSpeech_ShowPokeBallPrinterCallback +NewGameBirchSpeech_ShowPokeBallPrinterCallback: @ 0x08032098 + push {lr} + ldr r0, [r0] + subs r0, #2 + ldrb r0, [r0] + cmp r0, #8 + bne _080320B8 + ldr r1, _080320BC + ldrb r0, [r1] + cmp r0, #0 + bne _080320B8 + movs r0, #1 + strb r0, [r1] + ldr r0, _080320C0 + movs r1, #0 + bl CreateTask +_080320B8: + pop {r0} + bx r0 + .align 2, 0 +_080320BC: .4byte 0x020229B8 +_080320C0: .4byte 0x080307B1 + thumb_func_end NewGameBirchSpeech_ShowPokeBallPrinterCallback + + thumb_func_start CreateYesNoMenuParameterized +CreateYesNoMenuParameterized: @ 0x080320C4 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0x20 + adds r4, r0, #0 + adds r5, r1, #0 + mov r8, r2 + ldr r6, [sp, #0x34] + ldr r1, [sp, #0x38] + lsls r4, r4, #0x18 + lsls r5, r5, #0x18 + mov r0, r8 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0x80 + lsls r0, r0, #0x11 + adds r4, r4, r0 + lsrs r4, r4, #0x18 + adds r5, r5, r0 + lsrs r5, r5, #0x18 + movs r0, #5 + str r0, [sp] + movs r0, #4 + str r0, [sp, #4] + str r1, [sp, #8] + str r3, [sp, #0xc] + add r0, sp, #0x10 + movs r1, #0 + adds r2, r4, #0 + adds r3, r5, #0 + bl CreateWindowTemplate + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + str r0, [sp, #0x18] + str r1, [sp, #0x1c] + add r0, sp, #0x18 + mov r1, r8 + str r1, [sp] + str r6, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl sub_08198C08 + add sp, #0x20 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end CreateYesNoMenuParameterized + + thumb_func_start sub_0803213C +sub_0803213C: @ 0x0803213C + push {r4, r5, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _08032170 + adds r0, r5, #0 + bl CallWindowFunction + adds r0, r5, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + adds r0, r5, #0 + bl PutWindowTilemap + cmp r4, #1 + bne _0803216A + adds r0, r5, #0 + movs r1, #3 + bl CopyWindowToVram +_0803216A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08032170: .4byte 0x08032175 + thumb_func_end sub_0803213C + + thumb_func_start sub_08032174 +sub_08032174: @ 0x08032174 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x2c + mov r8, r0 + adds r5, r2, #0 + ldr r2, [sp, #0x4c] + ldr r6, [sp, #0x50] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r1, r1, #0x18 + lsls r5, r5, #0x18 + lsls r0, r3, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x10] + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x14] + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsrs r0, r1, #0x18 + str r0, [sp, #0xc] + movs r0, #0xfd + lsls r0, r0, #0x18 + adds r1, r1, r0 + lsrs r1, r1, #0x18 + str r1, [sp, #0x18] + lsrs r1, r5, #0x18 + mov sl, r1 + movs r0, #0xff + lsls r0, r0, #0x18 + adds r5, r5, r0 + lsrs r5, r5, #0x18 + movs r4, #1 + str r4, [sp] + str r4, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + movs r1, #0xe5 + ldr r2, [sp, #0x18] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + ldr r0, [sp, #0xc] + subs r0, #2 + lsls r2, r0, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x1c] + str r4, [sp] + str r4, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + movs r1, #0xe6 + adds r3, r5, #0 + bl FillBgTilemapBufferRect + ldr r0, [sp, #0xc] + subs r0, #1 + lsls r2, r0, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x20] + str r4, [sp] + str r4, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + movs r1, #0xe7 + adds r3, r5, #0 + bl FillBgTilemapBufferRect + ldr r1, [sp, #0x10] + str r1, [sp] + str r4, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + movs r1, #0xe8 + ldr r2, [sp, #0xc] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + ldr r0, [sp, #0xc] + ldr r1, [sp, #0x10] + adds r7, r0, r1 + lsls r2, r7, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x24] + str r4, [sp] + str r4, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + movs r1, #0xe9 + adds r3, r5, #0 + bl FillBgTilemapBufferRect + adds r0, r7, #1 + lsls r2, r0, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x28] + str r4, [sp] + str r4, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + movs r1, #0xe6 + adds r3, r5, #0 + bl FillBgTilemapBufferRect + adds r0, r7, #2 + lsls r2, r0, #0x18 + lsrs r7, r2, #0x18 + str r4, [sp] + str r4, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + movs r1, #0xea + adds r2, r7, #0 + adds r3, r5, #0 + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + movs r1, #0xeb + ldr r2, [sp, #0x18] + mov r3, sl + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + movs r1, #0xf1 + ldr r2, [sp, #0x1c] + mov r3, sl + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + movs r1, #0xef + ldr r2, [sp, #0x20] + mov r3, sl + bl FillBgTilemapBufferRect + ldr r0, [sp, #0x10] + str r0, [sp] + str r4, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + movs r1, #0xed + ldr r2, [sp, #0xc] + mov r3, sl + bl FillBgTilemapBufferRect + ldr r1, _08032480 + str r4, [sp] + str r4, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x24] + mov r3, sl + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + movs r1, #0xf1 + ldr r2, [sp, #0x28] + mov r3, sl + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + movs r1, #0xee + adds r2, r7, #0 + mov r3, sl + bl FillBgTilemapBufferRect + mov r5, sl + adds r5, #1 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + str r4, [sp] + movs r1, #2 + mov sb, r1 + str r1, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + movs r1, #0xeb + ldr r2, [sp, #0x18] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + str r4, [sp] + mov r0, sb + str r0, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + movs r1, #0xec + ldr r2, [sp, #0x1c] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + ldr r0, [sp, #0x10] + adds r0, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + mov r1, sb + str r1, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + movs r1, #0xed + ldr r2, [sp, #0x20] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + str r4, [sp] + mov r0, sb + str r0, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + movs r1, #0xec + ldr r2, [sp, #0x28] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + str r4, [sp] + mov r1, sb + str r1, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + movs r1, #0xee + adds r2, r7, #0 + adds r3, r5, #0 + bl FillBgTilemapBufferRect + ldr r1, _08032484 + ldr r0, [sp, #0x14] + add sl, r0 + mov r5, sl + subs r5, #1 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + str r4, [sp] + str r4, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x18] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + ldr r1, _08032488 + mov sb, r1 + str r4, [sp] + str r4, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x1c] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + ldr r1, _0803248C + str r4, [sp] + str r4, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x20] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + ldr r1, _08032490 + str r4, [sp] + str r4, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0xc] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + ldr r1, _08032494 + str r4, [sp] + str r4, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x24] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + mov r1, sb + ldr r2, [sp, #0x28] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + ldr r1, _08032498 + str r4, [sp] + str r4, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + adds r2, r7, #0 + adds r3, r5, #0 + bl FillBgTilemapBufferRect + ldr r1, _0803249C + mov r0, sl + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + str r4, [sp] + str r4, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x18] + mov r3, sl + bl FillBgTilemapBufferRect + ldr r5, _080324A0 + str r4, [sp] + str r4, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + adds r1, r5, #0 + ldr r2, [sp, #0x1c] + mov r3, sl + bl FillBgTilemapBufferRect + ldr r1, _080324A4 + str r4, [sp] + str r4, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x20] + mov r3, sl + bl FillBgTilemapBufferRect + ldr r1, _080324A8 + ldr r0, [sp, #0x10] + str r0, [sp] + str r4, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0xc] + mov r3, sl + bl FillBgTilemapBufferRect + ldr r1, _080324AC + str r4, [sp] + str r4, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x24] + mov r3, sl + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + adds r1, r5, #0 + ldr r2, [sp, #0x28] + mov r3, sl + bl FillBgTilemapBufferRect + ldr r1, _080324B0 + str r4, [sp] + str r4, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + adds r2, r7, #0 + mov r3, sl + bl FillBgTilemapBufferRect + add sp, #0x2c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08032480: .4byte 0x000004EF +_08032484: .4byte 0x000008EB +_08032488: .4byte 0x000008F1 +_0803248C: .4byte 0x000008EF +_08032490: .4byte 0x000008ED +_08032494: .4byte 0x00000CEF +_08032498: .4byte 0x000008EE +_0803249C: .4byte 0x000008E5 +_080324A0: .4byte 0x000008E6 +_080324A4: .4byte 0x000008E7 +_080324A8: .4byte 0x000008E8 +_080324AC: .4byte 0x000008E9 +_080324B0: .4byte 0x000008EA + thumb_func_end sub_08032174 + + thumb_func_start Task_NewGameBirchSpeech_ReturnFromNamingScreenShowTextbox +Task_NewGameBirchSpeech_ReturnFromNamingScreenShowTextbox: @ 0x080324B4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080324E4 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 + ldrh r0, [r4, #0x16] + subs r1, r0, #1 + strh r1, [r4, #0x16] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _080324DC + movs r0, #0 + movs r1, #1 + bl sub_0803213C + ldr r0, _080324E8 + str r0, [r4] +_080324DC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080324E4: .4byte 0x03005B60 +_080324E8: .4byte 0x08030E45 + thumb_func_end Task_NewGameBirchSpeech_ReturnFromNamingScreenShowTextbox + diff --git a/asm/map_name_popup.s b/asm/map_name_popup.s new file mode 100644 index 0000000..9fb7a9c --- /dev/null +++ b/asm/map_name_popup.s @@ -0,0 +1,599 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_080D4058 +sub_080D4058: @ 0x080D4058 + push {lr} + bl HideStartMenu + bl ShowMapNamePopup + movs r0, #1 + pop {r1} + bx r1 + thumb_func_end sub_080D4058 + + thumb_func_start ShowMapNamePopup +ShowMapNamePopup: @ 0x080D4068 + push {r4, lr} + movs r0, #0x80 + lsls r0, r0, #7 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080D40F0 + ldr r4, _080D40BC + adds r0, r4, #0 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080D40C8 + adds r0, r4, #0 + movs r1, #0x5a + bl CreateTask + ldr r4, _080D40C0 + strb r0, [r4] + movs r0, #0x12 + movs r1, #0x28 + bl SetGpuReg + ldr r2, _080D40C4 + ldrb r1, [r4] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r1, #6 + strh r1, [r0, #8] + ldrb r1, [r4] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r1, #0x28 + strh r1, [r0, #0xc] + b _080D40F0 + .align 2, 0 +_080D40BC: .4byte 0x080D4101 +_080D40C0: .4byte 0x02039A74 +_080D40C4: .4byte 0x03005B60 +_080D40C8: + ldr r3, _080D40F8 + ldr r2, _080D40FC + ldrb r0, [r2] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r3 + movs r4, #8 + ldrsh r0, [r1, r4] + cmp r0, #2 + beq _080D40E2 + movs r0, #2 + strh r0, [r1, #8] +_080D40E2: + ldrb r0, [r2] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r3 + movs r0, #1 + strh r0, [r1, #0xe] +_080D40F0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D40F8: .4byte 0x03005B60 +_080D40FC: .4byte 0x02039A74 + thumb_func_end ShowMapNamePopup + + thumb_func_start Task_MapNamePopUpWindow +Task_MapNamePopUpWindow: @ 0x080D4100 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080D4124 + adds r4, r1, r0 + movs r2, #8 + ldrsh r1, [r4, r2] + adds r3, r0, #0 + cmp r1, #6 + bhi _080D41EA + lsls r0, r1, #2 + ldr r1, _080D4128 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080D4124: .4byte 0x03005B60 +_080D4128: .4byte 0x080D412C +_080D412C: @ jump table + .4byte _080D4162 @ case 0 + .4byte _080D418C @ case 1 + .4byte _080D41A4 @ case 2 + .4byte _080D41EA @ case 3 + .4byte _080D41D0 @ case 4 + .4byte _080D41E4 @ case 5 + .4byte _080D4148 @ case 6 +_080D4148: + ldrh r0, [r4, #0x10] + adds r0, #1 + movs r1, #0 + strh r0, [r4, #0x10] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1e + ble _080D41EA + strh r1, [r4, #8] + strh r1, [r4, #0x10] + bl ShowMapNamePopUpWindow + b _080D41EA +_080D4162: + ldrh r0, [r4, #0xc] + subs r0, #2 + movs r2, #0 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _080D41EA + strh r2, [r4, #0xc] + movs r0, #1 + strh r0, [r4, #8] + ldr r0, _080D4188 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r3 + strh r2, [r0, #0xa] + b _080D41EA + .align 2, 0 +_080D4188: .4byte 0x02039A74 +_080D418C: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x78 + ble _080D41EA + movs r0, #0 + strh r0, [r4, #0xa] + movs r0, #2 + strh r0, [r4, #8] + b _080D41EA +_080D41A4: + ldrh r0, [r4, #0xc] + adds r0, #2 + movs r1, #0 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x27 + ble _080D41EA + movs r0, #0x28 + strh r0, [r4, #0xc] + movs r2, #0xe + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _080D41CA + movs r0, #6 + strh r0, [r4, #8] + strh r1, [r4, #0x10] + strh r1, [r4, #0xe] + b _080D41EA +_080D41CA: + movs r0, #4 + strh r0, [r4, #8] + b _080D41F2 +_080D41D0: + bl GetMapNamePopUpWindowId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + bl DrawStdWindowFrame + movs r0, #5 + strh r0, [r4, #8] + b _080D41EA +_080D41E4: + bl HideMapNamePopUpWindow + b _080D41F2 +_080D41EA: + ldrh r1, [r4, #0xc] + movs r0, #0x12 + bl SetGpuReg +_080D41F2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end Task_MapNamePopUpWindow + + thumb_func_start HideMapNamePopUpWindow +HideMapNamePopUpWindow: @ 0x080D41F8 + push {lr} + ldr r0, _080D422C + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D4228 + bl GetMapNamePopUpWindowId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + bl DrawStdWindowFrame + bl RemoveStartMenuWindow + movs r0, #0x12 + movs r1, #0 + bl SetGpuReg + ldr r0, _080D4230 + ldrb r0, [r0] + bl DestroyTask +_080D4228: + pop {r0} + bx r0 + .align 2, 0 +_080D422C: .4byte 0x080D4101 +_080D4230: .4byte 0x02039A74 + thumb_func_end HideMapNamePopUpWindow + + thumb_func_start ShowMapNamePopUpWindow +ShowMapNamePopUpWindow: @ 0x080D4234 + push {r4, r5, lr} + sub sp, #0x24 + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D428C + ldr r0, _080D4258 + ldrh r1, [r0, #0x12] + movs r0, #0xbd + lsls r0, r0, #1 + cmp r1, r0 + bne _080D4260 + mov r4, sp + adds r4, #0xf + ldr r0, _080D425C + ldr r1, [r0, #0x1c] + b _080D4276 + .align 2, 0 +_080D4258: .4byte 0x02036FB8 +_080D425C: .4byte 0x0855A074 +_080D4260: + mov r4, sp + adds r4, #0xf + ldr r1, _080D4280 + ldr r0, _080D4284 + ldr r0, [r0] + ldr r2, _080D4288 + adds r0, r0, r2 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] +_080D4276: + adds r0, r4, #0 + bl StringCopy + b _080D429C + .align 2, 0 +_080D4280: .4byte 0x0855A074 +_080D4284: .4byte 0x03005AF0 +_080D4288: .4byte 0x00000CB2 +_080D428C: + mov r4, sp + adds r4, #0xf + ldr r0, _080D42F8 + ldrb r1, [r0, #0x14] + adds r0, r4, #0 + movs r2, #0 + bl GetMapName +_080D429C: + bl AddMapNamePopUpWindow + bl LoadMapNamePopUpWindowBg + adds r0, r4, #0 + bl StringLength + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r4, #0xa + subs r4, r4, r0 + lsls r4, r4, #0x1a + lsrs r4, r4, #0x18 + add r1, sp, #0xc + movs r5, #0 + movs r0, #0xfc + strb r0, [r1] + movs r0, #2 + strb r0, [r1, #1] + adds r0, r1, #0 + strb r5, [r0, #2] + bl GetMapNamePopUpWindowId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #4 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + str r5, [sp, #8] + movs r1, #1 + add r2, sp, #0xc + adds r3, r4, #0 + bl AddTextPrinterParameterized + bl GetMapNamePopUpWindowId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #3 + bl CopyWindowToVram + add sp, #0x24 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D42F8: .4byte 0x02036FB8 + thumb_func_end ShowMapNamePopUpWindow + + thumb_func_start sub_080D42FC +sub_080D42FC: @ 0x080D42FC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + ldr r4, [sp, #0x3c] + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sl, r1 + lsls r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r3, [sp, #0x10] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r4, [sp, #0x14] + movs r5, #0 + lsls r0, r1, #0x18 + asrs r1, r0, #0x18 + lsrs r3, r2, #0x18 + str r3, [sp, #0xc] + movs r6, #0xff + lsls r6, r6, #0x18 + adds r6, r6, r2 + mov r8, r6 + str r0, [sp, #0x18] + subs r4, r1, #1 +_080D4338: + ldr r0, _080D4448 + adds r1, r5, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r4, #0x18 + lsrs r2, r2, #0x18 + movs r3, #1 + str r3, [sp] + str r3, [sp, #4] + movs r6, #0xe + mov sb, r6 + str r6, [sp, #8] + adds r0, r7, #0 + mov r6, r8 + lsrs r3, r6, #0x18 + bl FillBgTilemapBufferRect + adds r4, #1 + adds r5, #1 + cmp r5, #0xb + ble _080D4338 + ldr r1, _080D444C + movs r0, #1 + rsbs r0, r0, #0 + add r0, sl + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r5, #1 + str r5, [sp] + str r5, [sp, #4] + mov r2, sb + str r2, [sp, #8] + adds r0, r7, #0 + mov r2, r8 + ldr r3, [sp, #0xc] + bl FillBgTilemapBufferRect + ldr r1, _080D4450 + ldr r6, [sp, #0x10] + add r6, sl + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + str r5, [sp] + str r5, [sp, #4] + mov r3, sb + str r3, [sp, #8] + adds r0, r7, #0 + adds r2, r6, #0 + ldr r3, [sp, #0xc] + bl FillBgTilemapBufferRect + ldr r1, _080D4454 + ldr r4, [sp, #0xc] + adds r4, #1 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r5, [sp] + str r5, [sp, #4] + mov r0, sb + str r0, [sp, #8] + adds r0, r7, #0 + mov r2, r8 + adds r3, r4, #0 + bl FillBgTilemapBufferRect + movs r1, #0x8b + lsls r1, r1, #2 + str r5, [sp] + str r5, [sp, #4] + mov r2, sb + str r2, [sp, #8] + adds r0, r7, #0 + adds r2, r6, #0 + adds r3, r4, #0 + bl FillBgTilemapBufferRect + ldr r1, _080D4458 + ldr r4, [sp, #0xc] + adds r4, #2 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r5, [sp] + str r5, [sp, #4] + mov r3, sb + str r3, [sp, #8] + adds r0, r7, #0 + mov r2, r8 + adds r3, r4, #0 + bl FillBgTilemapBufferRect + ldr r1, _080D445C + str r5, [sp] + str r5, [sp, #4] + mov r0, sb + str r0, [sp, #8] + adds r0, r7, #0 + adds r2, r6, #0 + adds r3, r4, #0 + bl FillBgTilemapBufferRect + movs r5, #0 + ldr r1, [sp, #0xc] + ldr r2, [sp, #0x14] + adds r0, r1, r2 + lsls r4, r0, #0x18 + movs r6, #1 +_080D440E: + ldr r3, _080D4460 + adds r1, r5, r3 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + subs r0, r5, #1 + ldr r3, [sp, #0x18] + asrs r2, r3, #0x18 + adds r2, r2, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r6, [sp] + str r6, [sp, #4] + movs r0, #0xe + str r0, [sp, #8] + adds r0, r7, #0 + lsrs r3, r4, #0x18 + bl FillBgTilemapBufferRect + adds r5, #1 + cmp r5, #0xb + ble _080D440E + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D4448: .4byte 0x0000021D +_080D444C: .4byte 0x00000229 +_080D4450: .4byte 0x0000022A +_080D4454: .4byte 0x0000022B +_080D4458: .4byte 0x0000022D +_080D445C: .4byte 0x0000022E +_080D4460: .4byte 0x0000022F + thumb_func_end sub_080D42FC + + thumb_func_start LoadMapNamePopUpWindowBg +LoadMapNamePopUpWindowBg: @ 0x080D4464 + push {r4, r5, lr} + sub sp, #8 + bl GetMapNamePopUpWindowId + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _080D4488 + ldrb r1, [r0, #0x14] + cmp r1, #0x57 + bls _080D448E + cmp r1, #0xc4 + bls _080D448C + adds r0, r1, #0 + subs r0, #0x6d + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + b _080D448E + .align 2, 0 +_080D4488: .4byte 0x02036FB8 +_080D448C: + movs r1, #0 +_080D448E: + ldr r0, _080D44D8 + adds r0, r1, r0 + ldrb r4, [r0] + adds r0, r5, #0 + movs r1, #0 + bl GetWindowAttribute + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r4, #4 + subs r1, r1, r4 + lsls r1, r1, #6 + ldr r2, _080D44DC + adds r1, r1, r2 + movs r2, #0x80 + lsls r2, r2, #3 + ldr r3, _080D44E0 + bl LoadBgTiles + ldr r1, _080D44E4 + adds r0, r5, #0 + bl CallWindowFunction + adds r0, r5, #0 + bl PutWindowTilemap + ldr r0, _080D44E8 + ldrb r0, [r0, #0x16] + cmp r0, #0xe + bne _080D44F0 + ldr r0, _080D44EC + movs r1, #0xe0 + movs r2, #0x20 + bl LoadPalette + b _080D44FE + .align 2, 0 +_080D44D8: .4byte 0x08559FC0 +_080D44DC: .4byte 0x08558860 +_080D44E0: .4byte 0x0000021D +_080D44E4: .4byte 0x080D42FD +_080D44E8: .4byte 0x02036FB8 +_080D44EC: .4byte 0x08559FA0 +_080D44F0: + lsls r0, r4, #5 + ldr r1, _080D4524 + adds r0, r0, r1 + movs r1, #0xe0 + movs r2, #0x20 + bl LoadPalette +_080D44FE: + lsls r1, r4, #4 + subs r1, r1, r4 + lsls r1, r1, #6 + ldr r0, _080D4528 + adds r1, r1, r0 + movs r0, #0x50 + str r0, [sp] + movs r0, #0x18 + str r0, [sp, #4] + adds r0, r5, #0 + movs r2, #0 + movs r3, #0 + bl BlitBitmapToWindow + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D4524: .4byte 0x08559EE0 +_080D4528: .4byte 0x085571E0 + thumb_func_end LoadMapNamePopUpWindowBg + diff --git a/asm/match_call.s b/asm/match_call.s new file mode 100644 index 0000000..0862d11 --- /dev/null +++ b/asm/match_call.s @@ -0,0 +1,2644 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start InitMatchCallCounters +InitMatchCallCounters: @ 0x08195A10 + push {lr} + bl RtcCalcLocalTime + ldr r0, _08195A2C + bl GetCurrentTotalMinutes + ldr r1, _08195A30 + adds r0, #0xa + str r0, [r1] + movs r0, #0 + strb r0, [r1, #6] + pop {r0} + bx r0 + .align 2, 0 +_08195A2C: .4byte 0x03005A50 +_08195A30: .4byte 0x0203CA4C + thumb_func_end InitMatchCallCounters + + thumb_func_start GetCurrentTotalMinutes +GetCurrentTotalMinutes: @ 0x08195A34 + adds r3, r0, #0 + movs r1, #0 + ldrsh r0, [r3, r1] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #5 + movs r2, #2 + ldrsb r2, [r3, r2] + lsls r1, r2, #4 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r1, #3 + ldrsb r1, [r3, r1] + adds r0, r0, r1 + bx lr + thumb_func_end GetCurrentTotalMinutes + + thumb_func_start UpdateMatchCallMinutesCounter +UpdateMatchCallMinutesCounter: @ 0x08195A58 + push {lr} + bl RtcCalcLocalTime + ldr r0, _08195A7C + bl GetCurrentTotalMinutes + adds r1, r0, #0 + ldr r2, _08195A80 + ldr r0, [r2] + cmp r0, r1 + bhi _08195A74 + subs r0, r1, r0 + cmp r0, #9 + bls _08195A84 +_08195A74: + str r1, [r2] + movs r0, #1 + b _08195A86 + .align 2, 0 +_08195A7C: .4byte 0x03005A50 +_08195A80: .4byte 0x0203CA4C +_08195A84: + movs r0, #0 +_08195A86: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end UpdateMatchCallMinutesCounter + + thumb_func_start CheckMatchCallChance +CheckMatchCallChance: @ 0x08195A8C + push {r4, r5, lr} + movs r5, #1 + ldr r4, _08195ACC + adds r0, r4, #0 + movs r1, #6 + bl GetMonData + cmp r0, #0 + bne _08195AAE + adds r0, r4, #0 + bl GetMonAbility + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1f + bne _08195AAE + movs r5, #2 +_08195AAE: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r5, #1 + adds r1, r1, r5 + cmp r0, r1 + blt _08195AD0 + movs r0, #0 + b _08195AD2 + .align 2, 0 +_08195ACC: .4byte 0x02024190 +_08195AD0: + movs r0, #1 +_08195AD2: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end CheckMatchCallChance + + thumb_func_start MapAllowsMatchCall +MapAllowsMatchCall: @ 0x08195AD8 + push {r4, lr} + ldr r4, _08195B34 + ldrb r0, [r4, #0x17] + bl Overworld_MapTypeAllowsTeleportAndFly + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08195B30 + ldrb r0, [r4, #0x14] + cmp r0, #0x39 + beq _08195B30 + cmp r0, #0xe + bne _08195B0E + movs r0, #0xf9 + lsls r0, r0, #2 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08195B0E + movs r0, #0xdc + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08195B30 +_08195B0E: + ldr r0, _08195B34 + ldrb r0, [r0, #0x14] + cmp r0, #0x38 + bne _08195B38 + movs r0, #0xcf + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08195B38 + movs r0, #0x8b + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08195B38 +_08195B30: + movs r0, #0 + b _08195B3A + .align 2, 0 +_08195B34: .4byte 0x02036FB8 +_08195B38: + movs r0, #1 +_08195B3A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end MapAllowsMatchCall + + thumb_func_start UpdateMatchCallStepCounter +UpdateMatchCallStepCounter: @ 0x08195B40 + push {lr} + ldr r1, _08195B58 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #9 + bhi _08195B5C + movs r0, #0 + b _08195B62 + .align 2, 0 +_08195B58: .4byte 0x0203CA4C +_08195B5C: + movs r0, #0 + strb r0, [r1, #6] + movs r0, #1 +_08195B62: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end UpdateMatchCallStepCounter + + thumb_func_start SelectMatchCallTrainer +SelectMatchCallTrainer: @ 0x08195B68 + push {r4, lr} + bl GetNumRegisteredNPCs + adds r4, r0, #0 + cmp r4, #0 + beq _08195BB8 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r4, #0 + bl __umodsi3 + bl GetActiveMatchCallTrainerId + ldr r2, _08195BBC + movs r1, #0 + strh r0, [r2, #4] + strb r1, [r2, #7] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x4e + beq _08195BB8 + ldrh r0, [r2, #4] + bl GetTrainerMatchCallId + adds r4, r0, #0 + bl GetRematchTrainerLocation + ldr r1, _08195BC0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r1, #0x14] + cmp r0, r1 + bne _08195BC4 + adds r0, r4, #0 + bl TrainerIsEligibleForRematch + cmp r0, #0 + bne _08195BC4 +_08195BB8: + movs r0, #0 + b _08195BC6 + .align 2, 0 +_08195BBC: .4byte 0x0203CA4C +_08195BC0: .4byte 0x02036FB8 +_08195BC4: + movs r0, #1 +_08195BC6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end SelectMatchCallTrainer + + thumb_func_start GetNumRegisteredNPCs +GetNumRegisteredNPCs: @ 0x08195BCC + push {r4, r5, lr} + movs r4, #0 + movs r5, #0 +_08195BD2: + movs r1, #0xae + lsls r1, r1, #1 + adds r0, r4, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08195BE8 + adds r5, #1 +_08195BE8: + adds r4, #1 + cmp r4, #0x3f + bls _08195BD2 + adds r0, r5, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetNumRegisteredNPCs + + thumb_func_start GetActiveMatchCallTrainerId +GetActiveMatchCallTrainerId: @ 0x08195BF8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r4, #0 + ldr r6, _08195C1C +_08195C00: + movs r1, #0xae + lsls r1, r1, #1 + adds r0, r4, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08195C22 + cmp r5, #0 + bne _08195C20 + ldrh r0, [r6] + b _08195C2C + .align 2, 0 +_08195C1C: .4byte 0x0852AD40 +_08195C20: + subs r5, #1 +_08195C22: + adds r6, #0x10 + adds r4, #1 + cmp r4, #0x3f + bls _08195C00 + movs r0, #0x4e +_08195C2C: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetActiveMatchCallTrainerId + + thumb_func_start TryStartMatchCall +TryStartMatchCall: @ 0x08195C34 + push {lr} + ldr r0, _08195C74 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08195C78 + bl UpdateMatchCallStepCounter + cmp r0, #0 + beq _08195C78 + bl UpdateMatchCallMinutesCounter + cmp r0, #0 + beq _08195C78 + bl CheckMatchCallChance + cmp r0, #0 + beq _08195C78 + bl MapAllowsMatchCall + cmp r0, #0 + beq _08195C78 + bl SelectMatchCallTrainer + cmp r0, #0 + beq _08195C78 + bl StartMatchCall + movs r0, #1 + b _08195C7A + .align 2, 0 +_08195C74: .4byte 0x0000012F +_08195C78: + movs r0, #0 +_08195C7A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TryStartMatchCall + + thumb_func_start StartMatchCallFromScript +StartMatchCallFromScript: @ 0x08195C80 + push {lr} + ldr r1, _08195C90 + movs r0, #1 + strb r0, [r1, #7] + bl StartMatchCall + pop {r0} + bx r0 + .align 2, 0 +_08195C90: .4byte 0x0203CA4C + thumb_func_end StartMatchCallFromScript + + thumb_func_start IsMatchCallTaskActive +IsMatchCallTaskActive: @ 0x08195C94 + push {lr} + ldr r0, _08195CA4 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_08195CA4: .4byte 0x08195CE1 + thumb_func_end IsMatchCallTaskActive + + thumb_func_start StartMatchCall +StartMatchCall: @ 0x08195CA8 + push {lr} + ldr r0, _08195CD4 + ldrb r0, [r0, #7] + cmp r0, #0 + bne _08195CC2 + bl ScriptContext2_Enable + bl FreezeEventObjects + bl sub_0808B1C8 + bl sub_0808B658 +_08195CC2: + ldr r0, _08195CD8 + bl PlaySE + ldr r0, _08195CDC + movs r1, #1 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_08195CD4: .4byte 0x0203CA4C +_08195CD8: .4byte 0x00000107 +_08195CDC: .4byte 0x08195CE1 + thumb_func_end StartMatchCall + + thumb_func_start ExecuteMatchCall +ExecuteMatchCall: @ 0x08195CE0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _08195D24 + adds r4, r0, r1 + ldr r1, _08195D28 + movs r2, #0 + ldrsh r0, [r4, r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + cmp r0, #0 + beq _08195D1E + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + movs r1, #0 + strh r1, [r4, #2] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #7 + bls _08195D1E + adds r0, r5, #0 + bl DestroyTask +_08195D1E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08195D24: .4byte 0x03005B68 +_08195D28: .4byte 0x085D79F4 + thumb_func_end ExecuteMatchCall + + thumb_func_start LoadMatchCallWindowGfx +LoadMatchCallWindowGfx: @ 0x08195D2C + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r6, r4, #0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _08195D54 + adds r5, r0, r1 + ldr r0, _08195D58 + bl AddWindow + strh r0, [r5, #4] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xff + bne _08195D5C + adds r0, r4, #0 + b _08195DE0 + .align 2, 0 +_08195D54: .4byte 0x03005B68 +_08195D58: .4byte 0x085D7A14 +_08195D5C: + ldr r1, _08195D80 + movs r2, #0x80 + lsls r2, r2, #1 + movs r3, #0x9c + lsls r3, r3, #2 + movs r0, #0 + bl LoadBgTiles + lsls r0, r0, #0x10 + ldr r1, _08195D84 + cmp r0, r1 + bne _08195D88 + ldrb r0, [r5, #4] + bl RemoveWindow + adds r0, r4, #0 + b _08195DE0 + .align 2, 0 +_08195D80: .4byte 0x085D74E8 +_08195D84: .4byte 0xFFFF0000 +_08195D88: + ldr r1, _08195DC4 + ldr r3, _08195DC8 + movs r0, #0 + str r0, [sp] + movs r2, #0 + bl decompress_and_copy_tile_data_to_vram + cmp r0, #0 + beq _08195DD8 + ldrb r0, [r5, #4] + movs r1, #0x88 + bl FillWindowPixelBuffer + ldr r0, _08195DCC + movs r1, #0xe0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _08195DD0 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + ldr r1, _08195DD4 + movs r0, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #1 + b _08195DE6 + .align 2, 0 +_08195DC4: .4byte 0x085D7608 +_08195DC8: .4byte 0x00000279 +_08195DCC: .4byte 0x085D74C8 +_08195DD0: .4byte 0x085D75E8 +_08195DD4: .4byte 0xFFFFE000 +_08195DD8: + ldrb r0, [r5, #4] + bl RemoveWindow + adds r0, r6, #0 +_08195DE0: + bl DestroyTask + movs r0, #0 +_08195DE6: + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end LoadMatchCallWindowGfx + + thumb_func_start MoveMatchCallWindowToVram +MoveMatchCallWindowToVram: @ 0x08195DF0 + push {r4, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _08195E5C + adds r4, r1, r0 + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08195E68 + ldrb r0, [r4, #4] + bl PutWindowTilemap + movs r1, #4 + ldrsh r0, [r4, r1] + movs r1, #0x9c + lsls r1, r1, #2 + movs r2, #0xe + bl DrawMatchCallTextBoxBorder + ldr r1, _08195E60 + movs r0, #4 + str r0, [sp] + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #1 + str r0, [sp, #0xc] + movs r0, #0 + movs r2, #1 + movs r3, #0xf + bl WriteSequenceToBgTilemapBuffer + ldr r0, _08195E64 + movs r1, #0xa + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0xa] + ldrb r0, [r4, #4] + movs r1, #2 + bl CopyWindowToVram + movs r0, #0 + bl CopyBgTilemapBufferToVram + movs r0, #1 + b _08195E6A + .align 2, 0 +_08195E5C: .4byte 0x03005B68 +_08195E60: .4byte 0x0000F279 +_08195E64: .4byte 0x08196295 +_08195E68: + movs r0, #0 +_08195E6A: + add sp, #0x10 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MoveMatchCallWindowToVram + + thumb_func_start PrintMatchCallIntroEllipsis +PrintMatchCallIntroEllipsis: @ 0x08195E74 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _08195E94 + adds r4, r1, r0 + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08195E98 + movs r0, #0 + b _08195EA4 + .align 2, 0 +_08195E94: .4byte 0x03005B68 +_08195E98: + movs r1, #4 + ldrsh r0, [r4, r1] + ldr r1, _08195EAC + bl InitMatchCallTextPrinter + movs r0, #1 +_08195EA4: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08195EAC: .4byte 0x085D79EC + thumb_func_end PrintMatchCallIntroEllipsis + + thumb_func_start sub_08195EB0 +sub_08195EB0: @ 0x08195EB0 + push {lr} + movs r1, #0xc0 + lsls r1, r1, #3 + movs r0, #0 + movs r2, #1 + bl ChangeBgY + cmp r0, #0 + bge _08195EC6 + movs r0, #0 + b _08195ED2 +_08195EC6: + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #1 +_08195ED2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08195EB0 + + thumb_func_start sub_08195ED8 +sub_08195ED8: @ 0x08195ED8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _08195F1C + adds r4, r1, r0 + movs r1, #4 + ldrsh r0, [r4, r1] + bl ExecuteMatchCallTextPrinter + cmp r0, #0 + bne _08195F28 + ldrb r0, [r4, #4] + movs r1, #0x88 + bl FillWindowPixelBuffer + ldr r1, _08195F20 + ldrb r0, [r1, #7] + cmp r0, #0 + bne _08195F0C + ldrh r0, [r1, #4] + ldr r1, _08195F24 + bl SelectMatchCallMessage +_08195F0C: + movs r1, #4 + ldrsh r0, [r4, r1] + ldr r1, _08195F24 + bl InitMatchCallTextPrinter + movs r0, #1 + b _08195F2A + .align 2, 0 +_08195F1C: .4byte 0x03005B68 +_08195F20: .4byte 0x0203CA4C +_08195F24: .4byte 0x02021C7C +_08195F28: + movs r0, #0 +_08195F2A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_08195ED8 + + thumb_func_start sub_08195F30 +sub_08195F30: @ 0x08195F30 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _08195F80 + adds r4, r1, r0 + movs r1, #4 + ldrsh r0, [r4, r1] + bl ExecuteMatchCallTextPrinter + cmp r0, #0 + bne _08195F88 + bl IsSEPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08195F88 + ldr r0, _08195F84 + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _08195F88 + ldrb r0, [r4, #4] + movs r1, #0x88 + bl FillWindowPixelBuffer + ldrb r0, [r4, #4] + movs r1, #2 + bl CopyWindowToVram + movs r0, #0x84 + lsls r0, r0, #1 + bl PlaySE + movs r0, #1 + b _08195F8A + .align 2, 0 +_08195F80: .4byte 0x03005B68 +_08195F84: .4byte 0x03002360 +_08195F88: + movs r0, #0 +_08195F8A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_08195F30 + + thumb_func_start sub_08195F90 +sub_08195F90: @ 0x08195F90 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _08195FB8 + adds r4, r1, r0 + movs r1, #0xc0 + lsls r1, r1, #3 + movs r0, #0 + movs r2, #2 + bl ChangeBgY + ldr r1, _08195FBC + cmp r0, r1 + ble _08195FC0 + movs r0, #0 + b _08195FE8 + .align 2, 0 +_08195FB8: .4byte 0x03005B68 +_08195FBC: .4byte 0xFFFFE000 +_08195FC0: + movs r0, #0x1e + str r0, [sp] + movs r0, #6 + str r0, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0xe + bl FillBgTilemapBufferRect_Palette0 + ldrb r0, [r4, #0xa] + bl DestroyTask + ldrb r0, [r4, #4] + bl RemoveWindow + movs r0, #0 + bl CopyBgTilemapBufferToVram + movs r0, #1 +_08195FE8: + add sp, #8 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_08195F90 + + thumb_func_start sub_08195FF0 +sub_08195FF0: @ 0x08195FF0 + push {lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08196054 + bl IsSEPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08196054 + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + ldr r0, _0819604C + ldrb r0, [r0, #7] + cmp r0, #0 + bne _08196046 + bl sub_08196F98 + movs r0, #0xff + movs r1, #0 + movs r2, #0 + bl GetEventObjectIdByLocalIdAndMap + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08196050 + adds r0, r0, r1 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + bl sub_080D2C2C + bl UnfreezeEventObjects + bl ScriptContext2_Disable +_08196046: + movs r0, #1 + b _08196056 + .align 2, 0 +_0819604C: .4byte 0x0203CA4C +_08196050: .4byte 0x02036FF0 +_08196054: + movs r0, #0 +_08196056: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08195FF0 + + thumb_func_start DrawMatchCallTextBoxBorder +DrawMatchCallTextBoxBorder: @ 0x0819605C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + adds r4, r0, #0 + adds r5, r1, #0 + adds r7, r2, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #0 + bl GetWindowAttribute + mov sb, r0 + adds r0, r4, #0 + movs r1, #1 + bl GetWindowAttribute + str r0, [sp, #8] + adds r0, r4, #0 + movs r1, #2 + bl GetWindowAttribute + str r0, [sp, #0xc] + adds r0, r4, #0 + movs r1, #3 + bl GetWindowAttribute + adds r6, r0, #0 + adds r0, r4, #0 + movs r1, #4 + bl GetWindowAttribute + str r0, [sp, #0x10] + mov r0, sb + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + movs r1, #0xa + bl GetBgAttribute + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r5, r5, r0 + lsls r7, r7, #0xc + movs r1, #0xf0 + lsls r1, r1, #8 + adds r0, r1, #0 + ands r7, r0 + adds r1, r7, #0 + orrs r1, r5 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r2, [sp, #8] + subs r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sl, r2 + ldr r4, [sp, #0xc] + subs r4, #1 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r3, #1 + mov r8, r3 + str r3, [sp] + str r3, [sp, #4] + mov r0, sb + adds r3, r4, #0 + bl FillBgTilemapBufferRect_Palette0 + adds r1, r5, #1 + orrs r1, r7 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, [sp, #8] + lsls r2, r0, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x14] + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x18] + str r0, [sp] + mov r2, r8 + str r2, [sp, #4] + mov r0, sb + ldr r2, [sp, #0x14] + adds r3, r4, #0 + bl FillBgTilemapBufferRect_Palette0 + adds r1, r5, #2 + orrs r1, r7 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r3, [sp, #8] + adds r0, r3, r6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x1c] + mov r0, r8 + str r0, [sp] + str r0, [sp, #4] + mov r0, sb + ldr r2, [sp, #0x1c] + adds r3, r4, #0 + bl FillBgTilemapBufferRect_Palette0 + adds r1, r5, #3 + orrs r1, r7 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r2, [sp, #0xc] + lsls r6, r2, #0x18 + lsrs r6, r6, #0x18 + mov r3, r8 + str r3, [sp] + ldr r0, [sp, #0x10] + lsls r4, r0, #0x18 + lsrs r4, r4, #0x18 + str r4, [sp, #4] + mov r0, sb + mov r2, sl + adds r3, r6, #0 + bl FillBgTilemapBufferRect_Palette0 + adds r1, r5, #4 + orrs r1, r7 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r2, r8 + str r2, [sp] + str r4, [sp, #4] + mov r0, sb + ldr r2, [sp, #0x1c] + adds r3, r6, #0 + bl FillBgTilemapBufferRect_Palette0 + adds r1, r5, #5 + orrs r1, r7 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r3, [sp, #0xc] + ldr r2, [sp, #0x10] + adds r0, r3, r2 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + mov r3, r8 + str r3, [sp] + str r3, [sp, #4] + mov r0, sb + mov r2, sl + adds r3, r4, #0 + bl FillBgTilemapBufferRect_Palette0 + adds r1, r5, #6 + orrs r1, r7 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, [sp, #0x18] + str r0, [sp] + mov r2, r8 + str r2, [sp, #4] + mov r0, sb + ldr r2, [sp, #0x14] + adds r3, r4, #0 + bl FillBgTilemapBufferRect_Palette0 + adds r5, #7 + orrs r5, r7 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + mov r3, r8 + str r3, [sp] + str r3, [sp, #4] + mov r0, sb + adds r1, r5, #0 + ldr r2, [sp, #0x1c] + adds r3, r4, #0 + bl FillBgTilemapBufferRect_Palette0 + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end DrawMatchCallTextBoxBorder + + thumb_func_start InitMatchCallTextPrinter +InitMatchCallTextPrinter: @ 0x081961D8 + push {lr} + sub sp, #0x10 + str r1, [sp] + mov r1, sp + movs r3, #0 + strb r0, [r1, #4] + movs r0, #1 + strb r0, [r1, #5] + mov r0, sp + movs r2, #0x20 + strb r2, [r0, #6] + movs r1, #2 + strb r1, [r0, #7] + strb r2, [r0, #8] + strb r1, [r0, #9] + strb r3, [r0, #0xa] + strb r3, [r0, #0xb] + mov r3, sp + ldrb r2, [r3, #0xc] + subs r1, #0x12 + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3, #0xc] + mov r2, sp + movs r3, #0xf + movs r0, #0xa0 + strb r0, [r2, #0xc] + ldrb r0, [r2, #0xd] + ands r1, r0 + movs r0, #8 + orrs r1, r0 + strb r1, [r2, #0xd] + ands r1, r3 + movs r0, #0xe0 + orrs r1, r0 + strb r1, [r2, #0xd] + ldr r2, _08196244 + ldrb r1, [r2] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + bl GetPlayerTextSpeedDelay + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r0, sp + movs r2, #0 + bl AddTextPrinter + add sp, #0x10 + pop {r0} + bx r0 + .align 2, 0 +_08196244: .4byte 0x030030B4 + thumb_func_end InitMatchCallTextPrinter + + thumb_func_start ExecuteMatchCallTextPrinter +ExecuteMatchCallTextPrinter: @ 0x08196248 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08196264 + ldrh r1, [r0, #0x2c] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0819626C + ldr r0, _08196268 + ldrb r1, [r0] + movs r2, #1 + orrs r1, r2 + strb r1, [r0] + b _08196278 + .align 2, 0 +_08196264: .4byte 0x03002360 +_08196268: .4byte 0x030030B4 +_0819626C: + ldr r2, _08196290 + ldrb r1, [r2] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_08196278: + bl RunTextPrinters + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08196290: .4byte 0x030030B4 + thumb_func_end ExecuteMatchCallTextPrinter + + thumb_func_start sub_08196294 +sub_08196294: @ 0x08196294 + push {lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _08196304 + adds r2, r1, r0 + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #8 + ble _081962FC + movs r1, #0 + strh r1, [r2] + ldrh r0, [r2, #2] + adds r0, #1 + strh r0, [r2, #2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + ble _081962C8 + strh r1, [r2, #2] +_081962C8: + movs r0, #2 + ldrsh r1, [r2, r0] + lsls r1, r1, #4 + ldr r0, _08196308 + adds r1, r1, r0 + strh r1, [r2, #4] + ldr r2, _0819630C + adds r0, r2, #0 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #4 + str r0, [sp] + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #1 + str r0, [sp, #0xc] + movs r0, #0 + movs r2, #1 + movs r3, #0xf + bl WriteSequenceToBgTilemapBuffer + movs r0, #0 + bl CopyBgTilemapBufferToVram +_081962FC: + add sp, #0x10 + pop {r0} + bx r0 + .align 2, 0 +_08196304: .4byte 0x03005B68 +_08196308: .4byte 0x00000279 +_0819630C: .4byte 0xFFFFF000 + thumb_func_end sub_08196294 + + thumb_func_start TrainerIsEligibleForRematch +TrainerIsEligibleForRematch: @ 0x08196310 + ldr r1, _08196324 + ldr r1, [r1] + ldr r2, _08196328 + adds r1, r1, r2 + adds r1, r1, r0 + ldrb r1, [r1] + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + bx lr + .align 2, 0 +_08196324: .4byte 0x03005AEC +_08196328: .4byte 0x000009CA + thumb_func_end TrainerIsEligibleForRematch + + thumb_func_start GetRematchTrainerLocation +GetRematchTrainerLocation: @ 0x0819632C + push {lr} + ldr r1, _08196344 + lsls r0, r0, #4 + adds r0, r0, r1 + ldrh r2, [r0, #0xa] + ldrh r1, [r0, #0xc] + adds r0, r2, #0 + bl Overworld_GetMapHeaderByGroupAndId + ldrb r0, [r0, #0x14] + pop {r1} + bx r1 + .align 2, 0 +_08196344: .4byte 0x0852AD40 + thumb_func_end GetRematchTrainerLocation + + thumb_func_start GetNumRematchTrainersFought +GetNumRematchTrainersFought: @ 0x08196348 + push {r4, r5, r6, lr} + movs r5, #0 + movs r6, #0 + ldr r4, _08196370 +_08196350: + ldrh r0, [r4] + bl HasTrainerBeenFought + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0819635E + adds r6, #1 +_0819635E: + adds r4, #0x10 + adds r5, #1 + cmp r5, #0x3f + bls _08196350 + adds r0, r6, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08196370: .4byte 0x0852AD40 + thumb_func_end GetNumRematchTrainersFought + + thumb_func_start sub_08196374 +sub_08196374: @ 0x08196374 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + movs r4, #0 + movs r6, #0 + ldr r5, _08196394 +_0819637E: + ldrh r0, [r5] + bl HasTrainerBeenFought + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0819639A + cmp r6, r7 + bne _08196398 + adds r0, r4, #0 + b _081963A4 + .align 2, 0 +_08196394: .4byte 0x0852AD40 +_08196398: + adds r6, #1 +_0819639A: + adds r5, #0x10 + adds r4, #1 + cmp r4, #0x4d + bls _0819637E + movs r0, #0x4e +_081963A4: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08196374 + + thumb_func_start SelectMatchCallMessage +SelectMatchCallMessage: @ 0x081963AC + push {r4, r5, r6, r7, lr} + adds r6, r1, #0 + movs r7, #0 + bl GetTrainerMatchCallId + adds r5, r0, #0 + ldr r0, _081963E4 + strh r7, [r0] + adds r0, r5, #0 + bl TrainerIsEligibleForRematch + cmp r0, #0 + beq _081963EC + adds r0, r5, #0 + bl GetRematchTrainerLocation + ldr r1, _081963E8 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r1, #0x14] + cmp r0, r1 + bne _081963EC + adds r0, r5, #0 + adds r1, r6, #0 + bl GetSameRouteMatchCallText + b _08196430 + .align 2, 0 +_081963E4: .4byte 0x0203CA54 +_081963E8: .4byte 0x02036FB8 +_081963EC: + adds r0, r5, #0 + bl sub_08196968 + cmp r0, #0 + beq _0819640A + adds r0, r5, #0 + adds r1, r6, #0 + bl GetDifferentRouteMatchCallText + adds r4, r0, #0 + movs r7, #1 + adds r0, r5, #0 + bl UpdateRematchIfDefeated + b _08196432 +_0819640A: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08196428 + adds r0, r5, #0 + adds r1, r6, #0 + bl GetBattleMatchCallText + b _08196430 +_08196428: + adds r0, r5, #0 + adds r1, r6, #0 + bl GetGeneralMatchCallText +_08196430: + adds r4, r0, #0 +_08196432: + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r6, #0 + bl BuildMatchCallString + adds r0, r7, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end SelectMatchCallMessage + + thumb_func_start GetTrainerMatchCallId +GetTrainerMatchCallId: @ 0x08196444 + push {lr} + adds r3, r0, #0 + movs r2, #0 + ldr r1, _08196458 +_0819644C: + ldrh r0, [r1] + cmp r0, r3 + beq _0819645C + adds r1, #0x14 + adds r2, #1 + b _0819644C + .align 2, 0 +_08196458: .4byte 0x085D6934 +_0819645C: + adds r0, r2, #0 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetTrainerMatchCallId + + thumb_func_start GetSameRouteMatchCallText +GetSameRouteMatchCallText: @ 0x08196464 + ldr r2, _08196488 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r1, [r1, #0xe] + movs r2, #0xff + lsrs r0, r1, #8 + subs r0, #1 + ands r1, r2 + subs r1, #1 + ldr r2, _0819648C + lsls r0, r0, #2 + adds r0, r0, r2 + lsls r1, r1, #3 + ldr r0, [r0] + adds r0, r0, r1 + bx lr + .align 2, 0 +_08196488: .4byte 0x085D6934 +_0819648C: .4byte 0x085D74A8 + thumb_func_end GetSameRouteMatchCallText + + thumb_func_start GetDifferentRouteMatchCallText +GetDifferentRouteMatchCallText: @ 0x08196490 + ldr r2, _081964B4 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r1, [r1, #0x10] + movs r2, #0xff + lsrs r0, r1, #8 + subs r0, #1 + ands r1, r2 + subs r1, #1 + ldr r2, _081964B8 + lsls r0, r0, #2 + adds r0, r0, r2 + lsls r1, r1, #3 + ldr r0, [r0] + adds r0, r0, r1 + bx lr + .align 2, 0 +_081964B4: .4byte 0x085D6934 +_081964B8: .4byte 0x085D74A8 + thumb_func_end GetDifferentRouteMatchCallText + + thumb_func_start GetBattleMatchCallText +GetBattleMatchCallText: @ 0x081964BC + push {r4, lr} + adds r4, r0, #0 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + lsls r0, r0, #0x10 + ldr r2, _08196508 + lsrs r0, r0, #0xf + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r0, r0, r1 + adds r2, #4 + adds r0, r0, r2 + ldrh r4, [r0] + cmp r4, #0 + bne _081964EC + movs r0, #0 + bl SpriteCallbackDummy +_081964EC: + movs r1, #0xff + lsrs r0, r4, #8 + subs r0, #1 + ands r4, r1 + subs r1, r4, #1 + ldr r2, _0819650C + lsls r0, r0, #2 + adds r0, r0, r2 + lsls r1, r1, #3 + ldr r0, [r0] + adds r0, r0, r1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08196508: .4byte 0x085D6934 +_0819650C: .4byte 0x085D749C + thumb_func_end GetBattleMatchCallText + + thumb_func_start GetGeneralMatchCallText +GetGeneralMatchCallText: @ 0x08196510 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r6, r0, #0 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _081965AC + movs r5, #0 + movs r4, #0 + lsls r7, r6, #2 +_0819652C: + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + mov r1, sp + bl GetFrontierStreakInfo + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bls _08196540 + adds r5, #1 +_08196540: + adds r4, #1 + cmp r4, #6 + ble _0819652C + cmp r5, #0 + beq _081965AC + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r5, #0 + bl __modsi3 + adds r5, r0, #0 + movs r4, #0 + b _08196562 +_0819655E: + subs r5, #1 +_08196560: + adds r4, #1 +_08196562: + cmp r4, #6 + bgt _08196580 + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + mov r1, sp + bl GetFrontierStreakInfo + ldr r1, _081965A0 + strh r0, [r1, #2] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bls _08196560 + cmp r5, #0 + bne _0819655E +_08196580: + ldr r0, _081965A0 + strh r4, [r0] + ldr r1, _081965A4 + adds r0, r7, r6 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #0xc] + subs r2, r0, #1 + ldr r1, _081965A8 + ldr r0, [sp] + lsls r0, r0, #2 + adds r0, r0, r1 + lsls r1, r2, #3 + ldr r0, [r0] + adds r0, r0, r1 + b _081965D0 + .align 2, 0 +_081965A0: .4byte 0x0203CA54 +_081965A4: .4byte 0x085D6934 +_081965A8: .4byte 0x085D74B0 +_081965AC: + ldr r1, _081965D8 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r2, [r0, #0xa] + lsrs r1, r2, #8 + subs r1, #1 + str r1, [sp] + movs r0, #0xff + ands r0, r2 + subs r2, r0, #1 + ldr r0, _081965DC + lsls r1, r1, #2 + adds r1, r1, r0 + lsls r2, r2, #3 + ldr r0, [r1] + adds r0, r0, r2 +_081965D0: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081965D8: .4byte 0x085D6934 +_081965DC: .4byte 0x085D74B0 + thumb_func_end GetGeneralMatchCallText + + thumb_func_start BuildMatchCallString +BuildMatchCallString: @ 0x081965E0 + push {r4, r5, lr} + adds r4, r1, #0 + adds r5, r2, #0 + adds r1, r4, #4 + bl PopulateMatchCallStringVars + ldr r1, [r4] + adds r0, r5, #0 + bl StringExpandPlaceholders + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BuildMatchCallString + + thumb_func_start PopulateMatchCallStringVars +PopulateMatchCallStringVars: @ 0x081965FC + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r6, r1, #0 + movs r4, #0 + ldr r5, _08196628 +_08196606: + adds r1, r6, r4 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + blt _0819661A + adds r1, r0, #0 + ldr r2, [r5] + adds r0, r7, #0 + bl PopulateMatchCallStringVar +_0819661A: + adds r5, #4 + adds r4, #1 + cmp r4, #2 + ble _08196606 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08196628: .4byte 0x085D7A1C + thumb_func_end PopulateMatchCallStringVars + + thumb_func_start PopulateMatchCallStringVar +PopulateMatchCallStringVar: @ 0x0819662C + push {lr} + ldr r3, _08196640 + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r3, [r1] + adds r1, r2, #0 + bl _call_via_r3 + pop {r0} + bx r0 + .align 2, 0 +_08196640: .4byte 0x085D7A28 + thumb_func_end PopulateMatchCallStringVar + + thumb_func_start PopulateTrainerName +PopulateTrainerName: @ 0x08196644 + push {r4, r5, r6, lr} + adds r5, r1, #0 + ldr r2, _08196670 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r4, [r1] + movs r3, #0 + ldr r1, _08196674 + adds r6, r1, #0 +_0819665A: + lsls r2, r3, #3 + ldrh r0, [r1] + cmp r0, r4 + bne _08196678 + adds r0, r6, #4 + adds r0, r2, r0 + ldr r1, [r0] + adds r0, r5, #0 + bl StringCopy + b _0819668C + .align 2, 0 +_08196670: .4byte 0x085D6934 +_08196674: .4byte 0x085D7A54 +_08196678: + adds r1, #8 + adds r3, #1 + cmp r3, #5 + bls _0819665A + lsls r1, r4, #5 + ldr r0, _08196694 + adds r1, r1, r0 + adds r0, r5, #0 + bl StringCopy +_0819668C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08196694: .4byte 0x082E3840 + thumb_func_end PopulateTrainerName + + thumb_func_start PopulateMapName +PopulateMapName: @ 0x08196698 + push {r4, lr} + adds r4, r1, #0 + bl GetRematchTrainerLocation + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + movs r2, #0 + bl GetMapName + pop {r4} + pop {r0} + bx r0 + thumb_func_end PopulateMapName + + thumb_func_start GetLandEncounterSlot +GetLandEncounterSlot: @ 0x081966B4 + push {lr} + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0x13 + bgt _081966D0 + movs r0, #0 + b _08196746 +_081966D0: + adds r0, r1, #0 + subs r0, #0x14 + cmp r0, #0x13 + bhi _081966DC + movs r0, #1 + b _08196746 +_081966DC: + adds r0, r1, #0 + subs r0, #0x28 + cmp r0, #9 + bhi _081966E8 + movs r0, #2 + b _08196746 +_081966E8: + adds r0, r1, #0 + subs r0, #0x32 + cmp r0, #9 + bhi _081966F4 + movs r0, #3 + b _08196746 +_081966F4: + adds r0, r1, #0 + subs r0, #0x3c + cmp r0, #9 + bhi _08196700 + movs r0, #4 + b _08196746 +_08196700: + adds r0, r1, #0 + subs r0, #0x46 + cmp r0, #9 + bhi _0819670C + movs r0, #5 + b _08196746 +_0819670C: + adds r0, r1, #0 + subs r0, #0x50 + cmp r0, #4 + bhi _08196718 + movs r0, #6 + b _08196746 +_08196718: + adds r0, r1, #0 + subs r0, #0x55 + cmp r0, #4 + bhi _08196724 + movs r0, #7 + b _08196746 +_08196724: + adds r0, r1, #0 + subs r0, #0x5a + cmp r0, #3 + bhi _08196730 + movs r0, #8 + b _08196746 +_08196730: + adds r0, r1, #0 + subs r0, #0x5e + cmp r0, #3 + bhi _0819673C + movs r0, #9 + b _08196746 +_0819673C: + cmp r1, #0x62 + beq _08196744 + movs r0, #0xb + b _08196746 +_08196744: + movs r0, #0xa +_08196746: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetLandEncounterSlot + + thumb_func_start GetWaterEncounterSlot +GetWaterEncounterSlot: @ 0x0819674C + push {lr} + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0x3b + bgt _08196768 + movs r0, #0 + b _0819678E +_08196768: + adds r0, r1, #0 + subs r0, #0x3c + cmp r0, #0x1d + bhi _08196774 + movs r0, #1 + b _0819678E +_08196774: + adds r0, r1, #0 + subs r0, #0x5a + cmp r0, #4 + bhi _08196780 + movs r0, #2 + b _0819678E +_08196780: + adds r0, r1, #0 + subs r0, #0x5f + cmp r0, #3 + bls _0819678C + movs r0, #4 + b _0819678E +_0819678C: + movs r0, #3 +_0819678E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetWaterEncounterSlot + + thumb_func_start PopulateSpeciesFromTrainerLocation +PopulateSpeciesFromTrainerLocation: @ 0x08196794 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r2, r0, #0 + mov r8, r1 + movs r3, #0 + ldr r0, _0819684C + ldrb r1, [r0] + adds r7, r0, #0 + cmp r1, #0xff + beq _08196858 + ldr r1, _08196850 + lsls r0, r2, #4 + adds r2, r0, r1 + ldrh r4, [r2, #0xa] + adds r1, r7, #0 +_081967B6: + ldrb r0, [r1] + cmp r0, r4 + bne _081967C4 + ldrb r0, [r1, #1] + ldrh r5, [r2, #0xc] + cmp r0, r5 + beq _081967CE +_081967C4: + adds r1, #0x14 + adds r3, #1 + ldrb r0, [r1] + cmp r0, #0xff + bne _081967B6 +_081967CE: + adds r1, r7, #0 + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r5, r0, #2 + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, #0xff + beq _08196858 + movs r6, #0 + adds r0, r1, #4 + adds r0, r5, r0 + ldr r4, [r0] + cmp r4, #0 + beq _081967FE + bl GetLandEncounterSlot + lsls r0, r0, #0x18 + mov r2, sp + ldr r1, [r4, #4] + lsrs r0, r0, #0x16 + adds r0, r0, r1 + ldrh r0, [r0, #2] + strh r0, [r2] + movs r6, #1 +_081967FE: + adds r0, r7, #0 + adds r0, #8 + adds r0, r5, r0 + ldr r4, [r0] + cmp r4, #0 + beq _08196822 + bl GetWaterEncounterSlot + lsls r0, r0, #0x18 + lsls r1, r6, #1 + mov r3, sp + adds r2, r3, r1 + ldr r1, [r4, #4] + lsrs r0, r0, #0x16 + adds r0, r0, r1 + ldrh r0, [r0, #2] + strh r0, [r2] + adds r6, #1 +_08196822: + cmp r6, #0 + beq _08196858 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r6, #0 + bl __modsi3 + lsls r0, r0, #1 + add r0, sp + ldrh r0, [r0] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + ldr r0, _08196854 + adds r1, r1, r0 + mov r0, r8 + bl StringCopy + b _0819685E + .align 2, 0 +_0819684C: .4byte 0x0852D9F4 +_08196850: .4byte 0x0852AD40 +_08196854: .4byte 0x082EA31C +_08196858: + movs r0, #0xff + mov r5, r8 + strb r0, [r5] +_0819685E: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PopulateSpeciesFromTrainerLocation + + thumb_func_start PopulateSpeciesFromTrainerParty +PopulateSpeciesFromTrainerParty: @ 0x0819686C + push {r4, r5, r6, r7, lr} + adds r7, r1, #0 + ldr r2, _081968BC + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r0, [r1] + bl GetLastBeatenRematchTrainerId + adds r4, r0, #0 + lsls r4, r4, #0x10 + ldr r5, _081968C0 + lsrs r4, r4, #0xb + adds r0, r5, #0 + adds r0, #0x1c + adds r0, r4, r0 + ldr r6, [r0] + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r4, r4, r5 + ldrb r1, [r4, #0x18] + bl __modsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r4] + cmp r1, #1 + beq _081968C8 + cmp r1, #1 + ble _081968B6 + cmp r1, #2 + beq _081968C4 + cmp r1, #3 + beq _081968C8 +_081968B6: + lsls r0, r0, #3 + b _081968CA + .align 2, 0 +_081968BC: .4byte 0x085D6934 +_081968C0: .4byte 0x082E383C +_081968C4: + lsls r0, r0, #3 + b _081968CA +_081968C8: + lsls r0, r0, #4 +_081968CA: + adds r0, r0, r6 + ldrh r0, [r0, #4] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + ldr r0, _081968E4 + adds r1, r1, r0 + adds r0, r7, #0 + bl StringCopy + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081968E4: .4byte 0x082EA31C + thumb_func_end PopulateSpeciesFromTrainerParty + + thumb_func_start PopulateBattleFrontierFacilityName +PopulateBattleFrontierFacilityName: @ 0x081968E8 + push {lr} + adds r0, r1, #0 + ldr r2, _08196900 + ldr r1, _08196904 + ldrh r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl StringCopy + pop {r0} + bx r0 + .align 2, 0 +_08196900: .4byte 0x085D7A84 +_08196904: .4byte 0x0203CA54 + thumb_func_end PopulateBattleFrontierFacilityName + + thumb_func_start PopulateBattleFrontierStreak +PopulateBattleFrontierStreak: @ 0x08196908 + push {r4, r5, r6, lr} + adds r5, r1, #0 + movs r4, #0 + ldr r0, _0819693C + ldrh r1, [r0, #2] + adds r6, r0, #0 + cmp r1, #0 + beq _08196928 +_08196918: + adds r0, r1, #0 + movs r1, #0xa + bl __divsi3 + adds r1, r0, #0 + adds r4, #1 + cmp r1, #0 + bne _08196918 +_08196928: + ldrh r1, [r6, #2] + lsls r3, r4, #0x18 + lsrs r3, r3, #0x18 + adds r0, r5, #0 + movs r2, #0 + bl ConvertIntToDecimalStringN + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0819693C: .4byte 0x0203CA54 + thumb_func_end PopulateBattleFrontierStreak + + thumb_func_start GetNumOwnedBadges +GetNumOwnedBadges: @ 0x08196940 + push {r4, r5, lr} + movs r4, #0 + ldr r5, _08196948 + b _08196950 + .align 2, 0 +_08196948: .4byte 0x085D7AA0 +_0819694C: + adds r5, #2 + adds r4, #1 +_08196950: + cmp r4, #7 + bhi _08196960 + ldrh r0, [r5] + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0819694C +_08196960: + adds r0, r4, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end GetNumOwnedBadges + + thumb_func_start sub_08196968 +sub_08196968: @ 0x08196968 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + bl GetNumOwnedBadges + cmp r0, #4 + ble _081969E8 + bl RtcGetLocalDayCount + adds r4, r0, #0 + ldr r0, _081969D8 + ldr r0, [r0] + adds r0, #0xa + bl GetTrainerId + adds r6, r0, #0 + ldr r0, _081969DC + ands r6, r0 + ldr r0, _081969E0 + ldr r0, [r0] + ldr r1, _081969E4 + adds r0, r0, r1 + ldrh r5, [r0] + bl GetNumRematchTrainersFought + mov sb, r0 + movs r0, #0xd + mov r1, sb + muls r1, r0, r1 + adds r0, r1, #0 + movs r1, #0xa + bl __divsi3 + mov r8, r0 + movs r0, #9 + bl GetGameStat + eors r4, r5 + eors r5, r0 + adds r4, r4, r5 + eors r4, r6 + adds r0, r4, #0 + mov r1, r8 + bl __modsi3 + cmp r0, sb + bge _081969E8 + bl sub_08196374 + cmp r0, r7 + bne _081969E8 + movs r0, #1 + b _081969EA + .align 2, 0 +_081969D8: .4byte 0x03005AF0 +_081969DC: .4byte 0x0000FFFF +_081969E0: .4byte 0x03005AEC +_081969E4: .4byte 0x00002E6A +_081969E8: + movs r0, #0 +_081969EA: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08196968 + + thumb_func_start GetFrontierStreakInfo +GetFrontierStreakInfo: @ 0x081969F8 + push {r4, r5, r6, lr} + adds r5, r1, #0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r4, #0 + cmp r0, #6 + bls _08196A08 + b _08196B72 +_08196A08: + lsls r0, r0, #2 + ldr r1, _08196A14 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08196A14: .4byte 0x08196A18 +_08196A18: @ jump table + .4byte _08196A90 @ case 0 + .4byte _08196A34 @ case 1 + .4byte _08196AC4 @ case 2 + .4byte _08196B2C @ case 3 + .4byte _08196A68 @ case 4 + .4byte _08196AF8 @ case 5 + .4byte _08196B54 @ case 6 +_08196A34: + movs r3, #0 + ldr r0, _08196A60 + ldr r0, [r0] + ldr r1, _08196A64 + adds r0, r0, r1 +_08196A3E: + lsls r1, r3, #2 + adds r3, #1 + adds r1, r1, r0 + movs r2, #1 +_08196A46: + ldrh r6, [r1] + cmp r4, r6 + bhs _08196A4E + ldrh r4, [r1] +_08196A4E: + adds r1, #2 + subs r2, #1 + cmp r2, #0 + bge _08196A46 + cmp r3, #1 + ble _08196A3E + movs r0, #3 + b _08196B70 + .align 2, 0 +_08196A60: .4byte 0x03005AF0 +_08196A64: .4byte 0x00000D14 +_08196A68: + ldr r0, _08196A88 + ldr r0, [r0] + ldr r1, _08196A8C + adds r0, r0, r1 + movs r3, #1 +_08196A72: + ldrh r6, [r0] + cmp r4, r6 + bhs _08196A7A + ldrh r4, [r0] +_08196A7A: + adds r0, #2 + subs r3, #1 + cmp r3, #0 + bge _08196A72 + movs r0, #4 + b _08196B70 + .align 2, 0 +_08196A88: .4byte 0x03005AF0 +_08196A8C: .4byte 0x00000E08 +_08196A90: + movs r3, #0 + ldr r0, _08196AC0 + ldr r0, [r0] + movs r1, #0xcf + lsls r1, r1, #4 + adds r0, r0, r1 +_08196A9C: + lsls r1, r3, #2 + adds r3, #1 + adds r1, r1, r0 + movs r2, #1 +_08196AA4: + ldrh r6, [r1] + cmp r4, r6 + bhs _08196AAC + ldrh r4, [r1] +_08196AAC: + adds r1, #2 + subs r2, #1 + cmp r2, #0 + bge _08196AA4 + movs r2, #2 + cmp r3, #3 + ble _08196A9C + str r2, [r5] + b _08196B72 + .align 2, 0 +_08196AC0: .4byte 0x03005AF0 +_08196AC4: + movs r3, #0 + ldr r0, _08196AF4 + ldr r0, [r0] + movs r1, #0xdd + lsls r1, r1, #4 + adds r0, r0, r1 +_08196AD0: + lsls r1, r3, #2 + adds r3, #1 + adds r1, r1, r0 + movs r2, #1 +_08196AD8: + ldrh r6, [r1] + cmp r4, r6 + bhs _08196AE0 + ldrh r4, [r1] +_08196AE0: + adds r1, #2 + subs r2, #1 + cmp r2, #0 + bge _08196AD8 + movs r2, #2 + cmp r3, #1 + ble _08196AD0 + str r2, [r5] + b _08196B72 + .align 2, 0 +_08196AF4: .4byte 0x03005AF0 +_08196AF8: + movs r3, #0 + ldr r0, _08196B24 + ldr r0, [r0] + ldr r1, _08196B28 + adds r0, r0, r1 +_08196B02: + lsls r1, r3, #2 + adds r3, #1 + adds r1, r1, r0 + movs r2, #1 +_08196B0A: + ldrh r6, [r1] + cmp r4, r6 + bhs _08196B12 + ldrh r4, [r1] +_08196B12: + adds r1, #2 + subs r2, #1 + cmp r2, #0 + bge _08196B0A + movs r2, #2 + cmp r3, #1 + ble _08196B02 + str r2, [r5] + b _08196B72 + .align 2, 0 +_08196B24: .4byte 0x03005AF0 +_08196B28: .4byte 0x00000DEA +_08196B2C: + ldr r0, _08196B4C + ldr r0, [r0] + ldr r1, _08196B50 + adds r0, r0, r1 + movs r3, #1 +_08196B36: + ldrh r6, [r0] + cmp r4, r6 + bhs _08196B3E + ldrh r4, [r0] +_08196B3E: + adds r0, #2 + subs r3, #1 + cmp r3, #0 + bge _08196B36 + movs r3, #2 + str r3, [r5] + b _08196B72 + .align 2, 0 +_08196B4C: .4byte 0x03005AF0 +_08196B50: .4byte 0x00000DDE +_08196B54: + ldr r0, _08196B7C + ldr r0, [r0] + ldr r1, _08196B80 + adds r0, r0, r1 + movs r3, #1 +_08196B5E: + ldrh r6, [r0] + cmp r4, r6 + bhs _08196B66 + ldrh r4, [r0] +_08196B66: + adds r0, #2 + subs r3, #1 + cmp r3, #0 + bge _08196B5E + movs r0, #5 +_08196B70: + str r0, [r5] +_08196B72: + adds r0, r4, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08196B7C: .4byte 0x03005AF0 +_08196B80: .4byte 0x00000E1E + thumb_func_end GetFrontierStreakInfo + + thumb_func_start GetPokedexRatingLevel +GetPokedexRatingLevel: @ 0x08196B84 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #9 + bhi _08196B92 + movs r0, #0 + b _08196C6E +_08196B92: + cmp r4, #0x13 + bhi _08196B9A + movs r0, #1 + b _08196C6E +_08196B9A: + cmp r4, #0x1d + bhi _08196BA2 + movs r0, #2 + b _08196C6E +_08196BA2: + cmp r4, #0x27 + bhi _08196BAA + movs r0, #3 + b _08196C6E +_08196BAA: + cmp r4, #0x31 + bhi _08196BB2 + movs r0, #4 + b _08196C6E +_08196BB2: + cmp r4, #0x3b + bhi _08196BBA + movs r0, #5 + b _08196C6E +_08196BBA: + cmp r4, #0x45 + bhi _08196BC2 + movs r0, #6 + b _08196C6E +_08196BC2: + cmp r4, #0x4f + bhi _08196BCA + movs r0, #7 + b _08196C6E +_08196BCA: + cmp r4, #0x59 + bhi _08196BD2 + movs r0, #8 + b _08196C6E +_08196BD2: + cmp r4, #0x63 + bhi _08196BDA + movs r0, #9 + b _08196C6E +_08196BDA: + cmp r4, #0x6d + bhi _08196BE2 + movs r0, #0xa + b _08196C6E +_08196BE2: + cmp r4, #0x77 + bhi _08196BEA + movs r0, #0xb + b _08196C6E +_08196BEA: + cmp r4, #0x81 + bhi _08196BF2 + movs r0, #0xc + b _08196C6E +_08196BF2: + cmp r4, #0x8b + bhi _08196BFA + movs r0, #0xd + b _08196C6E +_08196BFA: + cmp r4, #0x95 + bhi _08196C02 + movs r0, #0xe + b _08196C6E +_08196C02: + cmp r4, #0x9f + bhi _08196C0A + movs r0, #0xf + b _08196C6E +_08196C0A: + cmp r4, #0xa9 + bhi _08196C12 + movs r0, #0x10 + b _08196C6E +_08196C12: + cmp r4, #0xb3 + bhi _08196C1A + movs r0, #0x11 + b _08196C6E +_08196C1A: + cmp r4, #0xbd + bhi _08196C22 + movs r0, #0x12 + b _08196C6E +_08196C22: + cmp r4, #0xc7 + bls _08196C6C + movs r0, #0xcd + lsls r0, r0, #1 + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + bl GetSetPokedexFlag + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08196C44 + subs r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_08196C44: + ldr r0, _08196C68 + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + bl GetSetPokedexFlag + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08196C60 + subs r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_08196C60: + cmp r4, #0xc7 + bls _08196C6C + movs r0, #0x14 + b _08196C6E + .align 2, 0 +_08196C68: .4byte 0x00000199 +_08196C6C: + movs r0, #0x13 +_08196C6E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetPokedexRatingLevel + + thumb_func_start sub_08196C74 +sub_08196C74: @ 0x08196C74 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov r8, r0 + movs r0, #0xfa + lsls r0, r0, #2 + bl Alloc + adds r7, r0, #0 + cmp r7, #0 + bne _08196C96 + movs r0, #0xff + mov r1, r8 + strb r0, [r1] + b _08196D50 +_08196C96: + movs r0, #0 + bl GetHoennPokedexCount + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r0, #1 + bl GetHoennPokedexCount + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r0, _08196D60 + mov sl, r0 + adds r1, r4, #0 + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r1, _08196D64 + mov sb, r1 + mov r0, sb + adds r1, r6, #0 + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + adds r0, r6, #0 + bl GetPokedexRatingLevel + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _08196D68 + adds r0, r7, #0 + bl StringCopy + adds r5, r0, #0 + movs r6, #0xfb + strb r6, [r5] + adds r5, #1 + ldr r1, _08196D6C + adds r0, r5, #0 + bl StringCopy + adds r5, r0, #0 + strb r6, [r5] + adds r5, #1 + ldr r0, _08196D70 + lsls r4, r4, #2 + adds r4, r4, r0 + ldr r1, [r4] + adds r0, r5, #0 + bl StringCopy + mov r0, r8 + adds r1, r7, #0 + bl StringExpandPlaceholders + adds r5, r0, #0 + bl IsNationalPokedexEnabled + cmp r0, #0 + beq _08196D4A + strb r6, [r5] + adds r5, #1 + movs r0, #0 + bl GetNationalPokedexCount + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r0, #1 + bl GetNationalPokedexCount + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + mov r0, sl + adds r1, r4, #0 + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + mov r0, sb + adds r1, r6, #0 + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r1, _08196D74 + adds r0, r5, #0 + bl StringExpandPlaceholders +_08196D4A: + adds r0, r7, #0 + bl Free +_08196D50: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08196D60: .4byte 0x02021C40 +_08196D64: .4byte 0x02021C54 +_08196D68: .4byte 0x08262DF5 +_08196D6C: .4byte 0x08262E39 +_08196D70: .4byte 0x085D7AB0 +_08196D74: .4byte 0x0826316A + thumb_func_end sub_08196C74 + + thumb_func_start sub_08196D78 +sub_08196D78: @ 0x08196D78 + push {r4, r5, lr} + adds r4, r1, #0 + adds r5, r2, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl GetWindowAttribute + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08196DB0 + movs r2, #0x80 + lsls r2, r2, #1 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r3, r4, #0 + bl LoadBgTiles + ldr r0, _08196DB4 + lsls r5, r5, #0x14 + lsrs r5, r5, #0x10 + adds r1, r5, #0 + movs r2, #0x20 + bl LoadPalette + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08196DB0: .4byte 0x085D74E8 +_08196DB4: .4byte 0x085D74C8 + thumb_func_end sub_08196D78 + + thumb_func_start sub_08196DB8 +sub_08196DB8: @ 0x08196DB8 + push {lr} + bl DrawMatchCallTextBoxBorder + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08196DB8 + diff --git a/asm/math_util.s b/asm/math_util.s new file mode 100644 index 0000000..09535b5 --- /dev/null +++ b/asm/math_util.s @@ -0,0 +1,241 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_081514A4 +sub_081514A4: @ 0x081514A4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _081514B2 + cmp r0, #1 + beq _081514DC +_081514B2: + ldr r1, _081514D8 + ldr r2, [r1] + movs r3, #0 + movs r0, #2 + strb r0, [r2, #0x1b] + ldr r0, [r1] + strb r3, [r0, #0x19] + ldr r2, [r1] + movs r0, #0x14 + strb r0, [r2, #0x1a] + ldr r1, [r1] + movs r0, #0xc + strb r0, [r1, #0x18] + bl sub_08151064 + bl sub_081511F0 + b _081514FE + .align 2, 0 +_081514D8: .4byte 0x0203A878 +_081514DC: + ldr r1, _0815150C + ldr r2, [r1] + movs r0, #2 + strb r0, [r2, #0x1b] + ldr r2, [r1] + movs r0, #0x1c + strb r0, [r2, #0x19] + ldr r2, [r1] + movs r0, #0x14 + strb r0, [r2, #0x1a] + ldr r1, [r1] + movs r0, #4 + strb r0, [r1, #0x18] + bl sub_08151064 + bl sub_08151364 +_081514FE: + ldr r0, _0815150C + ldr r1, [r0] + movs r0, #0 + strb r0, [r1, #0x1c] + pop {r0} + bx r0 + .align 2, 0 +_0815150C: .4byte 0x0203A878 + thumb_func_end sub_081514A4 + + thumb_func_start sub_08151510 +sub_08151510: @ 0x08151510 + push {lr} + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + muls r0, r1, r0 + adds r1, r0, #0 + cmp r0, #0 + bge _08151524 + adds r1, #0xff +_08151524: + lsls r0, r1, #8 + asrs r0, r0, #0x10 + pop {r1} + bx r1 + thumb_func_end sub_08151510 + + thumb_func_start sub_0815152C +sub_0815152C: @ 0x0815152C + push {lr} + adds r3, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + muls r3, r2, r3 + movs r1, #1 + lsls r1, r0 + adds r0, r3, #0 + bl __divsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + pop {r1} + bx r1 + thumb_func_end sub_0815152C + + thumb_func_start sub_08151550 +sub_08151550: @ 0x08151550 + push {r4, r5, r6, r7, lr} + adds r2, r1, #0 + adds r4, r0, #0 + asrs r5, r0, #0x1f + asrs r3, r2, #0x1f + adds r1, r5, #0 + adds r0, r4, #0 + bl __muldi3 + adds r5, r1, #0 + adds r4, r0, #0 + adds r7, r5, #0 + adds r6, r4, #0 + cmp r5, #0 + bge _08151576 + movs r6, #0xff + movs r7, #0 + adds r6, r6, r4 + adcs r7, r5 +_08151576: + lsls r3, r7, #0x18 + lsrs r2, r6, #8 + adds r0, r3, #0 + orrs r0, r2 + asrs r1, r7, #8 + adds r5, r1, #0 + adds r4, r0, #0 + adds r0, r4, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_08151550 + + thumb_func_start sub_0815158C +sub_0815158C: @ 0x0815158C + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #0 + beq _081515A8 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + bl __divsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + b _081515AA +_081515A8: + movs r0, #0 +_081515AA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0815158C + + thumb_func_start sub_081515B0 +sub_081515B0: @ 0x081515B0 + push {lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r0, r1, #0x10 + lsls r2, r2, #0x10 + asrs r1, r2, #0x10 + cmp r1, #0 + beq _081515D2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r0, r3 + bl __divsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + b _081515D4 +_081515D2: + movs r0, #0 +_081515D4: + pop {r1} + bx r1 + thumb_func_end sub_081515B0 + + thumb_func_start sub_081515D8 +sub_081515D8: @ 0x081515D8 + push {r4, r5, r6, lr} + adds r6, r1, #0 + cmp r6, #0 + beq _081515F8 + adds r2, r0, #0 + asrs r3, r0, #0x1f + lsrs r5, r2, #0x18 + lsls r4, r3, #8 + adds r1, r5, #0 + orrs r1, r4 + lsls r0, r2, #8 + adds r2, r6, #0 + asrs r3, r6, #0x1f + bl __divdi3 + b _081515FA +_081515F8: + movs r0, #0 +_081515FA: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_081515D8 + + thumb_func_start sub_08151600 +sub_08151600: @ 0x08151600 + push {lr} + adds r1, r0, #0 + movs r0, #0x80 + lsls r0, r0, #9 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl __divsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + pop {r1} + bx r1 + thumb_func_end sub_08151600 + + thumb_func_start sub_08151618 +sub_08151618: @ 0x08151618 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0x80 + lsls r2, r2, #1 + lsls r2, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r0, r2, #0 + bl __divsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08151618 + diff --git a/asm/mauville_old_man.s b/asm/mauville_old_man.s new file mode 100644 index 0000000..d98b695 --- /dev/null +++ b/asm/mauville_old_man.s @@ -0,0 +1,2101 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start SetupBard +SetupBard: @ 0x081205C0 + push {r4, lr} + ldr r0, _08120600 + ldr r2, [r0] + ldr r1, _08120604 + adds r0, r2, r1 + movs r1, #0 + strb r1, [r0] + ldr r3, _08120608 + adds r0, r2, r3 + strb r1, [r0] + ldr r0, _0812060C + ldrb r1, [r0] + adds r3, #1 + adds r0, r2, r3 + strb r1, [r0] + movs r3, #0 + ldr r0, _08120610 + adds r2, r2, r0 + ldr r4, _08120614 +_081205E6: + lsls r0, r3, #1 + adds r1, r2, r0 + adds r0, r0, r4 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #5 + bls _081205E6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08120600: .4byte 0x03005AEC +_08120604: .4byte 0x00002E28 +_08120608: .4byte 0x00002E51 +_0812060C: .4byte 0x0829BDA5 +_08120610: .4byte 0x00002E2A +_08120614: .4byte 0x0857AC08 + thumb_func_end SetupBard + + thumb_func_start SetupHipster +SetupHipster: @ 0x08120618 + ldr r0, _08120630 + ldr r1, [r0] + ldr r0, _08120634 + adds r1, r1, r0 + movs r2, #0 + movs r0, #1 + strb r0, [r1] + strb r2, [r1, #1] + ldr r0, _08120638 + ldrb r0, [r0] + strb r0, [r1, #2] + bx lr + .align 2, 0 +_08120630: .4byte 0x03005AEC +_08120634: .4byte 0x00002E28 +_08120638: .4byte 0x0829BDA5 + thumb_func_end SetupHipster + + thumb_func_start ResetStorytellerFlag +ResetStorytellerFlag: @ 0x0812063C + push {lr} + bl StorytellerSetup + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ResetStorytellerFlag + + thumb_func_start SetupGiddy +SetupGiddy: @ 0x08120648 + ldr r0, _08120664 + ldr r1, [r0] + ldr r0, _08120668 + adds r2, r1, r0 + movs r3, #0 + movs r0, #4 + strb r0, [r2] + strb r3, [r2, #1] + ldr r0, _0812066C + ldrb r0, [r0] + ldr r2, _08120670 + adds r1, r1, r2 + strb r0, [r1] + bx lr + .align 2, 0 +_08120664: .4byte 0x03005AEC +_08120668: .4byte 0x00002E28 +_0812066C: .4byte 0x0829BDA5 +_08120670: .4byte 0x00002E48 + thumb_func_end SetupGiddy + + thumb_func_start ResetTraderFlag +ResetTraderFlag: @ 0x08120674 + push {lr} + bl TraderSetup + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ResetTraderFlag + + thumb_func_start SetMauvilleOldMan +SetMauvilleOldMan: @ 0x08120680 + push {lr} + ldr r0, _081206A8 + ldr r0, [r0] + ldrb r1, [r0, #0xb] + lsls r1, r1, #8 + ldrb r0, [r0, #0xa] + orrs r0, r1 + movs r1, #0xa + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x11 + cmp r0, #4 + bhi _081206E0 + lsls r0, r0, #2 + ldr r1, _081206AC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081206A8: .4byte 0x03005AF0 +_081206AC: .4byte 0x081206B0 +_081206B0: @ jump table + .4byte _081206C4 @ case 0 + .4byte _081206CA @ case 1 + .4byte _081206D0 @ case 2 + .4byte _081206D6 @ case 3 + .4byte _081206DC @ case 4 +_081206C4: + bl SetupBard + b _081206E0 +_081206CA: + bl SetupHipster + b _081206E0 +_081206D0: + bl ResetTraderFlag + b _081206E0 +_081206D6: + bl ResetStorytellerFlag + b _081206E0 +_081206DC: + bl SetupGiddy +_081206E0: + bl ScrSpecial_SetMauvilleOldManEventObjGfx + pop {r0} + bx r0 + thumb_func_end SetMauvilleOldMan + + thumb_func_start GetCurrentMauvilleOldMan +GetCurrentMauvilleOldMan: @ 0x081206E8 + ldr r0, _081206F4 + ldr r0, [r0] + ldr r1, _081206F8 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_081206F4: .4byte 0x03005AEC +_081206F8: .4byte 0x00002E28 + thumb_func_end GetCurrentMauvilleOldMan + + thumb_func_start ScrSpecial_GetCurrentMauvilleMan +ScrSpecial_GetCurrentMauvilleMan: @ 0x081206FC + push {r4, lr} + ldr r4, _08120710 + bl GetCurrentMauvilleOldMan + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08120710: .4byte 0x02037290 + thumb_func_end ScrSpecial_GetCurrentMauvilleMan + + thumb_func_start ScrSpecial_HasBardSongBeenChanged +ScrSpecial_HasBardSongBeenChanged: @ 0x08120714 + ldr r1, _08120724 + ldr r0, _08120728 + ldr r0, [r0] + ldr r2, _0812072C + adds r0, r0, r2 + ldrb r0, [r0] + strh r0, [r1] + bx lr + .align 2, 0 +_08120724: .4byte 0x02037290 +_08120728: .4byte 0x03005AEC +_0812072C: .4byte 0x00002E51 + thumb_func_end ScrSpecial_HasBardSongBeenChanged + + thumb_func_start ScrSpecial_SaveBardSongLyrics +ScrSpecial_SaveBardSongLyrics: @ 0x08120730 + push {r4, r5, r6, lr} + ldr r0, _0812078C + ldr r4, [r0] + ldr r0, _08120790 + adds r6, r4, r0 + ldr r1, _08120794 + adds r0, r4, r1 + ldr r5, _08120798 + ldr r1, [r5] + bl StringCopy + movs r2, #0 + ldr r0, _0812079C + adds r4, r4, r0 +_0812074C: + adds r1, r4, r2 + ldr r0, [r5] + adds r0, #0xa + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #3 + bls _0812074C + movs r2, #0 + adds r5, r6, #0 + adds r5, #0x29 + adds r3, r6, #2 + adds r4, r6, #0 + adds r4, #0xe +_0812076E: + lsls r0, r2, #1 + adds r1, r3, r0 + adds r0, r4, r0 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #5 + bls _0812076E + movs r0, #1 + strb r0, [r5] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0812078C: .4byte 0x03005AEC +_08120790: .4byte 0x00002E28 +_08120794: .4byte 0x00002E42 +_08120798: .4byte 0x03005AF0 +_0812079C: .4byte 0x00002E4D + thumb_func_end ScrSpecial_SaveBardSongLyrics + + thumb_func_start sub_081207A0 +sub_081207A0: @ 0x081207A0 + push {r4, r5, lr} + ldr r0, _0812080C + ldr r1, [r0] + ldr r0, _08120810 + ldrh r0, [r0] + ldr r2, _08120814 + adds r4, r1, r2 + cmp r0, #0 + bne _081207B6 + ldr r0, _08120818 + adds r4, r1, r0 +_081207B6: + ldr r2, _0812081C + movs r5, #0 +_081207BA: + ldrh r1, [r4] + adds r4, #2 + adds r0, r2, #0 + bl CopyEasyChatWord + adds r2, r0, #0 + movs r0, #0 + strb r0, [r2] + adds r2, #1 + ldrh r1, [r4] + adds r4, #2 + adds r0, r2, #0 + bl CopyEasyChatWord + adds r2, r0, #0 + movs r0, #0xfe + strb r0, [r2] + adds r2, #1 + ldrh r1, [r4] + adds r4, #2 + adds r0, r2, #0 + bl CopyEasyChatWord + adds r2, r0, #0 + cmp r5, #0 + bne _081207FA + movs r0, #0xfc + strb r0, [r2] + adds r2, #1 + movs r0, #0xf + strb r0, [r2] + adds r2, #1 +_081207FA: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #1 + bls _081207BA + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0812080C: .4byte 0x03005AEC +_08120810: .4byte 0x02037280 +_08120814: .4byte 0x00002E36 +_08120818: .4byte 0x00002E2A +_0812081C: .4byte 0x02021C7C + thumb_func_end sub_081207A0 + + thumb_func_start ScrSpecial_PlayBardSong +ScrSpecial_PlayBardSong: @ 0x08120820 + push {lr} + ldr r0, _08120834 + ldrb r0, [r0] + bl StartBardSong + bl ScriptContext1_Stop + pop {r0} + bx r0 + .align 2, 0 +_08120834: .4byte 0x02037280 + thumb_func_end ScrSpecial_PlayBardSong + + thumb_func_start ScrSpecial_GetHipsterSpokenFlag +ScrSpecial_GetHipsterSpokenFlag: @ 0x08120838 + ldr r1, _08120848 + ldr r0, _0812084C + ldr r0, [r0] + ldr r2, _08120850 + adds r0, r0, r2 + ldrb r0, [r0, #1] + strh r0, [r1] + bx lr + .align 2, 0 +_08120848: .4byte 0x02037290 +_0812084C: .4byte 0x03005AEC +_08120850: .4byte 0x00002E28 + thumb_func_end ScrSpecial_GetHipsterSpokenFlag + + thumb_func_start ScrSpecial_SetHipsterSpokenFlag +ScrSpecial_SetHipsterSpokenFlag: @ 0x08120854 + ldr r0, _08120864 + ldr r0, [r0] + ldr r1, _08120868 + adds r0, r0, r1 + movs r1, #1 + strb r1, [r0, #1] + bx lr + .align 2, 0 +_08120864: .4byte 0x03005AEC +_08120868: .4byte 0x00002E28 + thumb_func_end ScrSpecial_SetHipsterSpokenFlag + + thumb_func_start ScrSpecial_HipsterTeachWord +ScrSpecial_HipsterTeachWord: @ 0x0812086C + push {lr} + bl sub_0811F4FC + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r0, _08120884 + cmp r1, r0 + bne _0812088C + ldr r1, _08120888 + movs r0, #0 + b _08120896 + .align 2, 0 +_08120884: .4byte 0x0000FFFF +_08120888: .4byte 0x02037290 +_0812088C: + ldr r0, _0812089C + bl CopyEasyChatWord + ldr r1, _081208A0 + movs r0, #1 +_08120896: + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0812089C: .4byte 0x02021C40 +_081208A0: .4byte 0x02037290 + thumb_func_end ScrSpecial_HipsterTeachWord + + thumb_func_start ScrSpecial_GiddyShouldTellAnotherTale +ScrSpecial_GiddyShouldTellAnotherTale: @ 0x081208A4 + push {lr} + ldr r0, _081208C0 + ldr r0, [r0] + ldr r1, _081208C4 + adds r2, r0, r1 + ldrb r0, [r2, #1] + cmp r0, #0xa + bne _081208CC + ldr r1, _081208C8 + movs r0, #0 + strh r0, [r1] + strb r0, [r2, #1] + b _081208D2 + .align 2, 0 +_081208C0: .4byte 0x03005AEC +_081208C4: .4byte 0x00002E28 +_081208C8: .4byte 0x02037290 +_081208CC: + ldr r1, _081208D8 + movs r0, #1 + strh r0, [r1] +_081208D2: + pop {r0} + bx r0 + .align 2, 0 +_081208D8: .4byte 0x02037290 + thumb_func_end ScrSpecial_GiddyShouldTellAnotherTale + + thumb_func_start ScrSpecial_GenerateGiddyLine +ScrSpecial_GenerateGiddyLine: @ 0x081208DC + push {r4, r5, r6, lr} + ldr r0, _08120940 + ldr r4, [r0] + ldr r0, _08120944 + adds r5, r4, r0 + ldrb r0, [r5, #1] + cmp r0, #0 + bne _081208F0 + bl InitGiddyTaleList +_081208F0: + ldrb r0, [r5, #1] + lsls r0, r0, #1 + ldr r1, _08120948 + adds r6, r4, r1 + adds r0, r6, r0 + ldrh r1, [r0] + ldr r0, _0812094C + cmp r1, r0 + beq _08120960 + bl Random + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + movs r0, #7 + ands r4, r0 + ldr r0, _08120950 + ldrb r1, [r5, #1] + lsls r1, r1, #1 + adds r1, r6, r1 + ldrh r1, [r1] + bl CopyEasyChatWord + adds r2, r0, #0 + ldr r1, _08120954 + bl StringCopy + adds r2, r0, #0 + ldr r0, _08120958 + lsls r4, r4, #2 + adds r4, r4, r0 + ldr r1, [r4] + adds r0, r2, #0 + bl StringCopy + adds r2, r0, #0 + ldr r1, _0812095C + bl StringCopy + b _08120982 + .align 2, 0 +_08120940: .4byte 0x03005AEC +_08120944: .4byte 0x00002E28 +_08120948: .4byte 0x00002E2C +_0812094C: .4byte 0x0000FFFF +_08120950: .4byte 0x02021C7C +_08120954: .4byte 0x0825941C +_08120958: .4byte 0x0857AC14 +_0812095C: .4byte 0x0825941F +_08120960: + ldr r0, _0812099C + ldr r3, _081209A0 + ldrb r2, [r5, #2] + adds r1, r2, #1 + strb r1, [r5, #2] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r6, #0xb9 + lsls r6, r6, #6 + adds r1, r4, r6 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r1, [r1] + bl StringCopy +_08120982: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __umodsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _081209A4 + movs r0, #0xa + b _081209A8 + .align 2, 0 +_0812099C: .4byte 0x02021C7C +_081209A0: .4byte 0x0857AC34 +_081209A4: + ldrb r0, [r5, #1] + adds r0, #1 +_081209A8: + strb r0, [r5, #1] + ldr r1, _081209B8 + movs r0, #1 + strh r0, [r1] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081209B8: .4byte 0x02037290 + thumb_func_end ScrSpecial_GenerateGiddyLine + + thumb_func_start InitGiddyTaleList +InitGiddyTaleList: @ 0x081209BC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + ldr r0, _08120A8C + ldr r4, [r0] + ldr r0, _08120A90 + adds r0, r4, r0 + str r0, [sp, #0x18] + ldr r1, _08120A94 + mov r0, sp + movs r2, #0x18 + bl memcpy + movs r5, #0 + movs r1, #2 + add r1, sp + mov r8, r1 + movs r2, #0xb9 + lsls r2, r2, #6 + adds r3, r4, r2 + adds r1, r3, #0 +_081209EC: + adds r0, r3, r5 + strb r5, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #7 + bls _081209EC + movs r5, #0 + ldr r3, [sp, #0x18] + adds r3, #4 + mov sb, r3 + adds r6, r1, #0 +_08120A04: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r4, r5, #1 + adds r1, r4, #0 + bl __modsi3 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + adds r2, r6, r5 + ldrb r7, [r2] + adds r1, r6, r1 + ldrb r0, [r1] + strb r0, [r2] + strb r7, [r1] + lsls r4, r4, #0x10 + lsrs r5, r4, #0x10 + cmp r5, #7 + bls _08120A04 + movs r0, #0 + mov sl, r0 + movs r5, #0 +_08120A32: + lsls r4, r5, #2 + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + bl EasyChat_GetNumWordsInGroup + add r4, r8 + strh r0, [r4] + add r0, sl + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #5 + bls _08120A32 + movs r0, #0 + ldr r2, [sp, #0x18] + strb r0, [r2, #2] + movs r7, #0 + movs r5, #0 +_08120A5E: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #2 + bhi _08120A9C + cmp r7, #7 + bhi _08120A9C + lsls r0, r5, #1 + add r0, sb + ldr r1, _08120A98 + strh r1, [r0] + adds r0, r7, #1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + adds r4, r5, #1 + b _08120AEE + .align 2, 0 +_08120A8C: .4byte 0x03005AEC +_08120A90: .4byte 0x00002E28 +_08120A94: .4byte 0x0857AC54 +_08120A98: .4byte 0x0000FFFF +_08120A9C: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r1, sl + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + movs r1, #0 + adds r4, r5, #1 + lsls r6, r5, #1 + cmp r5, #5 + bhi _08120AD8 + mov r3, r8 + ldrh r0, [r3] + b _08120ACE +_08120ABE: + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r5, #5 + bhi _08120AD8 + lsls r0, r1, #2 + adds r0, r3, r0 + ldrh r0, [r0] +_08120ACE: + subs r0, r2, r0 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r0, #0 + bgt _08120ABE +_08120AD8: + cmp r1, #6 + bne _08120ADE + movs r1, #0 +_08120ADE: + lsls r0, r1, #2 + add r0, sp + ldrh r0, [r0] + bl sub_0811F370 + mov r2, sb + adds r1, r2, r6 + strh r0, [r1] +_08120AEE: + lsls r0, r4, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #9 + bls _08120A5E + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end InitGiddyTaleList + + thumb_func_start ResetBardFlag +ResetBardFlag: @ 0x08120B08 + ldr r0, _08120B18 + ldr r0, [r0] + ldr r1, _08120B1C + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + bx lr + .align 2, 0 +_08120B18: .4byte 0x03005AEC +_08120B1C: .4byte 0x00002E51 + thumb_func_end ResetBardFlag + + thumb_func_start ResetHipsterFlag +ResetHipsterFlag: @ 0x08120B20 + ldr r0, _08120B30 + ldr r0, [r0] + ldr r1, _08120B34 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0, #1] + bx lr + .align 2, 0 +_08120B30: .4byte 0x03005AEC +_08120B34: .4byte 0x00002E28 + thumb_func_end ResetHipsterFlag + + thumb_func_start SetupStoryteller +SetupStoryteller: @ 0x08120B38 + push {lr} + bl Trader_ResetFlag + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetupStoryteller + + thumb_func_start SetupTrader +SetupTrader: @ 0x08120B44 + push {lr} + bl Storyteller_ResetFlag + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetupTrader + + thumb_func_start ResetMauvilleOldManFlag +ResetMauvilleOldManFlag: @ 0x08120B50 + push {lr} + bl GetCurrentMauvilleOldMan + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _08120B96 + lsls r0, r0, #2 + ldr r1, _08120B68 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08120B68: .4byte 0x08120B6C +_08120B6C: @ jump table + .4byte _08120B80 @ case 0 + .4byte _08120B86 @ case 1 + .4byte _08120B92 @ case 2 + .4byte _08120B8C @ case 3 + .4byte _08120B96 @ case 4 +_08120B80: + bl ResetBardFlag + b _08120B96 +_08120B86: + bl ResetHipsterFlag + b _08120B96 +_08120B8C: + bl SetupTrader + b _08120B96 +_08120B92: + bl SetupStoryteller +_08120B96: + bl ScrSpecial_SetMauvilleOldManEventObjGfx + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ResetMauvilleOldManFlag + + thumb_func_start StartBardSong +StartBardSong: @ 0x08120BA0 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _08120BC8 + movs r1, #0x50 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08120BCC + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #0x12] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08120BC8: .4byte 0x08120C2D +_08120BCC: .4byte 0x03005B60 + thumb_func_end StartBardSong + + thumb_func_start sub_08120BD0 +sub_08120BD0: @ 0x08120BD0 + ldr r1, _08120BD8 + movs r0, #0 + strb r0, [r1] + bx lr + .align 2, 0 +_08120BD8: .4byte 0x03003024 + thumb_func_end sub_08120BD0 + + thumb_func_start BardSong_TextSubPrinter +BardSong_TextSubPrinter: @ 0x08120BDC + ldr r1, _08120BE4 + movs r0, #1 + strb r0, [r1] + bx lr + .align 2, 0 +_08120BE4: .4byte 0x03003024 + thumb_func_end BardSong_TextSubPrinter + + thumb_func_start ScrSpecial_StorytellerDisplayStory +ScrSpecial_StorytellerDisplayStory: @ 0x08120BE8 + push {r4, r5, lr} + sub sp, #0xc + adds r5, r0, #0 + movs r0, #0 + movs r1, #0 + bl ClearDialogWindowAndFrame + movs r0, #2 + str r0, [sp] + movs r4, #1 + str r4, [sp, #4] + ldr r0, _08120C24 + str r0, [sp, #8] + movs r0, #0 + movs r1, #1 + adds r2, r5, #0 + movs r3, #0 + bl AddTextPrinterParameterized + ldr r0, _08120C28 + strb r4, [r0] + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08120C24: .4byte 0x08120BDD +_08120C28: .4byte 0x03003024 + thumb_func_end ScrSpecial_StorytellerDisplayStory + + thumb_func_start Task_BardSong +Task_BardSong: @ 0x08120C2C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _08120C50 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #5 + bls _08120C46 + b _08120E0C +_08120C46: + lsls r0, r0, #2 + ldr r1, _08120C54 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08120C50: .4byte 0x03005B60 +_08120C54: .4byte 0x08120C58 +_08120C58: @ jump table + .4byte _08120C70 @ case 0 + .4byte _08120C94 @ case 1 + .4byte _08120CA4 @ case 2 + .4byte _08120D4E @ case 3 + .4byte _08120DFC @ case 4 + .4byte _08120D3E @ case 5 +_08120C70: + bl sub_081207A0 + ldr r0, _08120C90 + bl ScrSpecial_StorytellerDisplayStory + movs r0, #0 + strh r0, [r4, #0xa] + strh r0, [r4, #0xc] + strh r0, [r4, #0xe] + strh r0, [r4, #0x10] + movs r0, #4 + bl FadeInBGM + movs r0, #1 + b _08120E0A + .align 2, 0 +_08120C90: .4byte 0x02021C7C +_08120C94: + bl IsBGMPausedOrStopped + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08120CA0 + b _08120E0C +_08120CA0: + movs r0, #2 + b _08120E0A +_08120CA4: + ldr r0, _08120CC4 + ldr r0, [r0] + ldr r2, _08120CC8 + adds r5, r0, r2 + movs r0, #0xe + ldrsh r1, [r4, r0] + ldr r0, _08120CCC + adds r1, r1, r0 + movs r3, #0 + ldrb r0, [r1] + ldrh r2, [r4, #0x12] + ldr r7, _08120CD0 + adds r6, r4, #0 + adds r6, #8 + b _08120CDE + .align 2, 0 +_08120CC4: .4byte 0x03005AEC +_08120CC8: .4byte 0x00002E28 +_08120CCC: .4byte 0x02021C7C +_08120CD0: .4byte 0x02039DF4 +_08120CD4: + adds r1, #1 + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldrb r0, [r1] +_08120CDE: + cmp r0, #0 + beq _08120CEE + cmp r0, #0xfe + beq _08120CEE + cmp r0, #0xfc + beq _08120CEE + cmp r0, #0xff + bne _08120CD4 +_08120CEE: + cmp r2, #0 + bne _08120CFC + movs r2, #0x10 + ldrsh r1, [r4, r2] + lsls r1, r1, #1 + adds r0, r5, #2 + b _08120D06 +_08120CFC: + movs r0, #0x10 + ldrsh r1, [r4, r0] + lsls r1, r1, #1 + adds r0, r5, #0 + adds r0, #0xe +_08120D06: + adds r0, r0, r1 + ldrh r0, [r0] + movs r1, #3 + ands r1, r0 + lsrs r0, r0, #3 + movs r2, #1 + ands r0, r2 + adds r1, r1, r0 + strh r1, [r7] + ldrh r2, [r7] + adds r0, r6, #0 + adds r1, r3, #0 + bl CalcWordPitch + ldrh r0, [r4, #0x10] + adds r0, #1 + movs r1, #0 + strh r0, [r4, #0x10] + movs r2, #0xc + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _08120D36 + movs r0, #3 + b _08120D38 +_08120D36: + movs r0, #5 +_08120D38: + strh r0, [r4, #8] + strh r1, [r4, #0xa] + b _08120E0C +_08120D3E: + ldrh r1, [r4, #0xc] + movs r2, #0xc + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _08120E08 + subs r0, r1, #1 + strh r0, [r4, #0xc] + b _08120E0C +_08120D4E: + ldr r1, _08120D70 + movs r2, #0xe + ldrsh r0, [r4, r2] + adds r1, r0, r1 + ldrb r5, [r1] + cmp r5, #0xff + bne _08120D74 + movs r0, #6 + bl FadeOutBGM + bl EnableBothScriptContexts + adds r0, r6, #0 + bl DestroyTask + b _08120E0C + .align 2, 0 +_08120D70: .4byte 0x02021C7C +_08120D74: + cmp r5, #0 + bne _08120D8A + bl sub_08120BD0 + ldrh r0, [r4, #0xe] + adds r0, #1 + strh r0, [r4, #0xe] + movs r0, #2 + strh r0, [r4, #8] + strh r5, [r4, #0xc] + b _08120E0C +_08120D8A: + cmp r5, #0xfe + bne _08120D9E + ldrh r0, [r4, #0xe] + adds r0, #1 + movs r1, #0 + strh r0, [r4, #0xe] + movs r0, #2 + strh r0, [r4, #8] + strh r1, [r4, #0xc] + b _08120E0C +_08120D9E: + cmp r5, #0xfc + bne _08120DB2 + ldrh r0, [r4, #0xe] + adds r0, #2 + strh r0, [r4, #0xe] + movs r0, #2 + strh r0, [r4, #8] + movs r0, #8 + strh r0, [r4, #0xc] + b _08120E0C +_08120DB2: + movs r2, #0xa + ldrsh r0, [r4, r2] + cmp r0, #1 + beq _08120DD0 + cmp r0, #1 + bgt _08120DC4 + cmp r0, #0 + beq _08120DCA + b _08120E0C +_08120DC4: + cmp r0, #2 + beq _08120DE2 + b _08120E0C +_08120DCA: + bl sub_08120BD0 + b _08120DDA +_08120DD0: + adds r0, r4, #0 + adds r0, #8 + ldrb r1, [r1] + bl GetWordPhonemes +_08120DDA: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + b _08120E0C +_08120DE2: + adds r0, r4, #0 + adds r0, #8 + bl GetWordSounds + ldrh r0, [r4, #0xe] + adds r0, #1 + movs r1, #0 + strh r0, [r4, #0xe] + strh r1, [r4, #0xa] + movs r0, #0x10 + strh r0, [r4, #0xc] + movs r0, #4 + b _08120E0A +_08120DFC: + ldrh r0, [r4, #0xc] + subs r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08120E0C +_08120E08: + movs r0, #3 +_08120E0A: + strh r0, [r4, #8] +_08120E0C: + bl RunTextPrintersAndIsPrinter0Active + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Task_BardSong + + thumb_func_start ScrSpecial_SetMauvilleOldManEventObjGfx +ScrSpecial_SetMauvilleOldManEventObjGfx: @ 0x08120E18 + push {lr} + ldr r0, _08120E28 + movs r1, #0x45 + bl VarSet + pop {r0} + bx r0 + .align 2, 0 +_08120E28: .4byte 0x00004010 + thumb_func_end ScrSpecial_SetMauvilleOldManEventObjGfx + + thumb_func_start StorytellerDisplayStory +StorytellerDisplayStory: @ 0x08120E2C + push {r4, r5, r6, lr} + ldrb r1, [r0] + cmp r1, #2 + beq _08120E3A + cmp r1, #3 + beq _08120E64 + b _08120E86 +_08120E3A: + adds r6, r0, #0 + movs r5, #0 +_08120E3E: + movs r0, #0xb + muls r0, r5, r0 + adds r0, #5 + adds r4, r6, r0 + adds r0, r4, #0 + bl IsStringJapanese + cmp r0, #0 + beq _08120E58 + adds r0, r4, #0 + ldr r1, _08120E60 + bl StringCopy +_08120E58: + adds r5, #1 + cmp r5, #3 + ble _08120E3E + b _08120E86 + .align 2, 0 +_08120E60: .4byte 0x085CCEC5 +_08120E64: + adds r4, r0, #0 + adds r4, #8 + movs r5, #3 +_08120E6A: + adds r0, r4, #0 + bl IsStringJapanese + cmp r0, #0 + beq _08120E7E + adds r0, r4, #0 + ldr r1, _08120E8C + movs r2, #7 + bl StringCopyN +_08120E7E: + adds r4, #7 + subs r5, #1 + cmp r5, #0 + bge _08120E6A +_08120E86: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08120E8C: .4byte 0x085CCEC5 + thumb_func_end StorytellerDisplayStory + + thumb_func_start sub_08120E90 +sub_08120E90: @ 0x08120E90 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + mov r8, r1 + adds r7, r2, #0 + ldrb r0, [r5] + cmp r0, #4 + bhi _08120F48 + lsls r0, r0, #2 + ldr r1, _08120EAC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08120EAC: .4byte 0x08120EB0 +_08120EB0: @ jump table + .4byte _08120F16 @ case 0 + .4byte _08120F26 @ case 1 + .4byte _08120EC4 @ case 2 + .4byte _08120EEE @ case 3 + .4byte _08120F34 @ case 4 +_08120EC4: + adds r6, r5, #0 + movs r5, #0 + adds r4, r6, #0 + adds r4, #0x32 +_08120ECC: + movs r0, #0xb + muls r0, r5, r0 + adds r0, #5 + adds r0, r6, r0 + bl IsStringJapanese + cmp r0, #0 + beq _08120EE2 + mov r0, r8 + strb r0, [r4] + b _08120EE4 +_08120EE2: + strb r7, [r4] +_08120EE4: + adds r4, #1 + adds r5, #1 + cmp r5, #3 + ble _08120ECC + b _08120F48 +_08120EEE: + adds r4, r5, #0 + adds r4, #0x34 + adds r6, r5, #0 + adds r6, #8 + movs r5, #3 +_08120EF8: + adds r0, r6, #0 + bl IsStringJapanese + cmp r0, #0 + beq _08120F08 + mov r1, r8 + strb r1, [r4] + b _08120F0A +_08120F08: + strb r7, [r4] +_08120F0A: + adds r4, #1 + adds r6, #7 + subs r5, #1 + cmp r5, #0 + bge _08120EF8 + b _08120F48 +_08120F16: + cmp r3, #1 + bne _08120F20 + adds r0, r5, #0 + adds r0, #0x2a + b _08120F3C +_08120F20: + adds r0, r5, #0 + adds r0, #0x2a + b _08120F46 +_08120F26: + cmp r3, #1 + bne _08120F30 + mov r0, r8 + strb r0, [r5, #2] + b _08120F48 +_08120F30: + strb r7, [r5, #2] + b _08120F48 +_08120F34: + cmp r3, #1 + bne _08120F42 + adds r0, r5, #0 + adds r0, #0x20 +_08120F3C: + mov r1, r8 + strb r1, [r0] + b _08120F48 +_08120F42: + adds r0, r5, #0 + adds r0, #0x20 +_08120F46: + strb r7, [r0] +_08120F48: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08120E90 + + thumb_func_start StorytellerSetup +StorytellerSetup: @ 0x08120F54 + push {r4, r5, lr} + ldr r2, _08120F90 + ldr r0, _08120F94 + ldr r0, [r0] + ldr r1, _08120F98 + adds r0, r0, r1 + str r0, [r2] + movs r3, #0 + movs r1, #3 + strb r1, [r0] + ldr r0, [r2] + strb r3, [r0, #1] + movs r5, #0 + movs r4, #0xff +_08120F70: + ldr r0, [r2] + adds r0, #4 + adds r0, r0, r3 + strb r5, [r0] + ldr r1, [r2] + adds r1, #8 + adds r1, r1, r3 + ldrb r0, [r1] + orrs r0, r4 + strb r0, [r1] + adds r3, #1 + cmp r3, #3 + ble _08120F70 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08120F90: .4byte 0x02039DF8 +_08120F94: .4byte 0x03005AEC +_08120F98: .4byte 0x00002E28 + thumb_func_end StorytellerSetup + + thumb_func_start Storyteller_ResetFlag +Storyteller_ResetFlag: @ 0x08120F9C + ldr r3, _08120FB4 + ldr r0, _08120FB8 + ldr r0, [r0] + ldr r1, _08120FBC + adds r0, r0, r1 + str r0, [r3] + movs r2, #0 + movs r1, #3 + strb r1, [r0] + ldr r0, [r3] + strb r2, [r0, #1] + bx lr + .align 2, 0 +_08120FB4: .4byte 0x02039DF8 +_08120FB8: .4byte 0x03005AEC +_08120FBC: .4byte 0x00002E28 + thumb_func_end Storyteller_ResetFlag + + thumb_func_start StorytellerGetGameStat +StorytellerGetGameStat: @ 0x08120FC0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x32 + bne _08120FCC + movs r0, #0 +_08120FCC: + bl GetGameStat + pop {r1} + bx r1 + thumb_func_end StorytellerGetGameStat + + thumb_func_start GetStoryByStat +GetStoryByStat: @ 0x08120FD4 + push {lr} + adds r3, r0, #0 + movs r2, #0 + ldr r1, _08120FE8 +_08120FDC: + ldrb r0, [r1] + cmp r0, r3 + bne _08120FEC + adds r0, r1, #0 + b _08120FF6 + .align 2, 0 +_08120FE8: .4byte 0x0857AC6C +_08120FEC: + adds r1, #0x10 + adds r2, #1 + cmp r2, #0x23 + ble _08120FDC + ldr r0, _08120FFC +_08120FF6: + pop {r1} + bx r1 + .align 2, 0 +_08120FFC: .4byte 0x0857AE9C + thumb_func_end GetStoryByStat + + thumb_func_start GetStoryTitleByStat +GetStoryTitleByStat: @ 0x08121000 + push {lr} + bl GetStoryByStat + ldr r0, [r0, #4] + pop {r1} + bx r1 + thumb_func_end GetStoryTitleByStat + + thumb_func_start GetStoryTextByStat +GetStoryTextByStat: @ 0x0812100C + push {lr} + bl GetStoryByStat + ldr r0, [r0, #0xc] + pop {r1} + bx r1 + thumb_func_end GetStoryTextByStat + + thumb_func_start GetStoryActionByStat +GetStoryActionByStat: @ 0x08121018 + push {lr} + bl GetStoryByStat + ldr r0, [r0, #8] + pop {r1} + bx r1 + thumb_func_end GetStoryActionByStat + + thumb_func_start GetFreeStorySlot +GetFreeStorySlot: @ 0x08121024 + push {lr} + movs r1, #0 + ldr r2, _08121050 + ldr r0, [r2] + ldrb r0, [r0, #4] + cmp r0, #0 + beq _08121048 +_08121032: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #3 + bhi _08121048 + ldr r0, [r2] + adds r0, #4 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _08121032 +_08121048: + adds r0, r1, #0 + pop {r1} + bx r1 + .align 2, 0 +_08121050: .4byte 0x02039DF8 + thumb_func_end GetFreeStorySlot + + thumb_func_start StorytellerGetRecordedTrainerStat +StorytellerGetRecordedTrainerStat: @ 0x08121054 + ldr r1, _08121074 + lsls r0, r0, #2 + adds r0, #0x24 + ldr r2, [r1] + adds r2, r2, r0 + ldrb r0, [r2] + ldrb r1, [r2, #1] + lsls r1, r1, #8 + orrs r0, r1 + ldrb r1, [r2, #2] + lsls r1, r1, #0x10 + orrs r0, r1 + ldrb r1, [r2, #3] + lsls r1, r1, #0x18 + orrs r0, r1 + bx lr + .align 2, 0 +_08121074: .4byte 0x02039DF8 + thumb_func_end StorytellerGetRecordedTrainerStat + + thumb_func_start StorytellerSetRecordedTrainerStat +StorytellerSetRecordedTrainerStat: @ 0x08121078 + ldr r2, _08121094 + lsls r0, r0, #2 + adds r0, #0x24 + ldr r2, [r2] + adds r2, r2, r0 + strb r1, [r2] + lsrs r0, r1, #8 + strb r0, [r2, #1] + lsrs r0, r1, #0x10 + strb r0, [r2, #2] + lsrs r1, r1, #0x18 + strb r1, [r2, #3] + bx lr + .align 2, 0 +_08121094: .4byte 0x02039DF8 + thumb_func_end StorytellerSetRecordedTrainerStat + + thumb_func_start HasTrainerStatIncreased +HasTrainerStatIncreased: @ 0x08121098 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _081210BC + ldr r0, [r0] + adds r0, #4 + adds r0, r0, r5 + ldrb r0, [r0] + bl StorytellerGetGameStat + adds r4, r0, #0 + adds r0, r5, #0 + bl StorytellerGetRecordedTrainerStat + cmp r4, r0 + bhi _081210C0 + movs r0, #0 + b _081210C2 + .align 2, 0 +_081210BC: .4byte 0x02039DF8 +_081210C0: + movs r0, #1 +_081210C2: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end HasTrainerStatIncreased + + thumb_func_start GetStoryByStattellerPlayerName +GetStoryByStattellerPlayerName: @ 0x081210C8 + push {r4, r5, lr} + adds r5, r1, #0 + ldr r2, _081210F4 + lsls r1, r0, #3 + subs r1, r1, r0 + adds r1, #8 + ldr r4, [r2] + adds r4, r4, r1 + adds r0, r5, #0 + movs r1, #0xff + movs r2, #8 + bl memset + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #7 + bl memcpy + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081210F4: .4byte 0x02039DF8 + thumb_func_end GetStoryByStattellerPlayerName + + thumb_func_start StorytellerSetPlayerName +StorytellerSetPlayerName: @ 0x081210F8 + push {r4, r5, lr} + adds r5, r1, #0 + ldr r2, _08121124 + lsls r1, r0, #3 + subs r1, r1, r0 + adds r1, #8 + ldr r4, [r2] + adds r4, r4, r1 + adds r0, r4, #0 + movs r1, #0xff + movs r2, #7 + bl memset + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #7 + bl memcpy + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08121124: .4byte 0x02039DF8 + thumb_func_end StorytellerSetPlayerName + + thumb_func_start StorytellerRecordNewStat +StorytellerRecordNewStat: @ 0x08121128 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + mov r8, r0 + adds r6, r1, #0 + ldr r0, _0812119C + mov sb, r0 + ldr r0, [r0] + adds r0, #4 + add r0, r8 + strb r6, [r0] + ldr r0, _081211A0 + ldr r1, [r0] + mov r0, r8 + bl StorytellerSetPlayerName + lsls r4, r6, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl StorytellerGetGameStat + adds r1, r0, #0 + mov r0, r8 + bl StorytellerSetRecordedTrainerStat + ldr r5, _081211A4 + adds r0, r4, #0 + bl StorytellerGetGameStat + adds r1, r0, #0 + adds r0, r5, #0 + movs r2, #0 + movs r3, #0xa + bl ConvertIntToDecimalStringN + ldr r4, _081211A8 + adds r0, r6, #0 + bl GetStoryActionByStat + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCopy + mov r1, sb + ldr r0, [r1] + adds r0, #0x34 + add r0, r8 + ldr r1, _081211AC + ldrb r1, [r1] + strb r1, [r0] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0812119C: .4byte 0x02039DF8 +_081211A0: .4byte 0x03005AF0 +_081211A4: .4byte 0x02021C40 +_081211A8: .4byte 0x02021C54 +_081211AC: .4byte 0x0829BDA5 + thumb_func_end StorytellerRecordNewStat + + thumb_func_start ScrambleStatList +ScrambleStatList: @ 0x081211B0 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r6, r1, #0 + movs r5, #0 + cmp r5, r6 + bge _081211C6 +_081211BC: + adds r0, r7, r5 + strb r5, [r0] + adds r5, #1 + cmp r5, r6 + blt _081211BC +_081211C6: + cmp r6, #0 + ble _081211FC + adds r5, r6, #0 +_081211CC: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r6, #0 + bl __modsi3 + adds r4, r0, #0 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + 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, #1 + cmp r5, #0 + bne _081211CC +_081211FC: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ScrambleStatList + + thumb_func_start StorytellerInitializeRandomStat +StorytellerInitializeRandomStat: @ 0x08121204 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov r7, sp + mov r8, sp + ldr r0, _0812128C + ldr r0, [r0] + lsls r0, r0, #3 + lsrs r0, r0, #3 + adds r0, #3 + lsrs r0, r0, #2 + lsls r0, r0, #2 + mov r1, sp + subs r1, r1, r0 + mov sp, r1 + mov sb, sp + mov r0, sp + movs r1, #0x24 + bl ScrambleStatList + movs r5, #0 +_08121230: + ldr r1, _08121290 + mov r2, sb + adds r0, r2, r5 + ldrb r0, [r0] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrb r4, [r0] + ldrb r6, [r0, #1] + movs r1, #0 + ldr r2, _08121294 + ldr r0, [r2] + ldrb r0, [r0, #4] + cmp r0, r4 + beq _0812125E +_0812124C: + adds r1, #1 + cmp r1, #3 + bgt _0812125E + ldr r0, [r2] + adds r0, #4 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, r4 + bne _0812124C +_0812125E: + cmp r1, #4 + bne _081212AE + adds r0, r4, #0 + bl StorytellerGetGameStat + cmp r0, r6 + blo _081212AE + ldr r0, _08121294 + ldr r1, [r0] + movs r0, #1 + strb r0, [r1, #1] + bl GetFreeStorySlot + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bne _0812129C + ldr r0, _08121298 + ldrb r0, [r0] + adds r1, r4, #0 + bl StorytellerRecordNewStat + b _081212AA + .align 2, 0 +_0812128C: .4byte 0x0857AEAC +_08121290: .4byte 0x0857AC6C +_08121294: .4byte 0x02039DF8 +_08121298: .4byte 0x03001178 +_0812129C: + bl GetFreeStorySlot + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r4, #0 + bl StorytellerRecordNewStat +_081212AA: + movs r0, #1 + b _081212B6 +_081212AE: + adds r5, #1 + cmp r5, #0x23 + ble _08121230 + movs r0, #0 +_081212B6: + mov sp, r8 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end StorytellerInitializeRandomStat + + thumb_func_start ScrSpecial_StorytellerGetFreeStorySlot +ScrSpecial_StorytellerGetFreeStorySlot: @ 0x081212C4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r0, _08121310 + ldr r0, [r0] + adds r0, #4 + adds r0, r0, r5 + ldrb r6, [r0] + ldr r4, _08121314 + adds r0, r5, #0 + bl StorytellerGetRecordedTrainerStat + adds r1, r0, #0 + adds r0, r4, #0 + movs r2, #0 + movs r3, #0xa + bl ConvertIntToDecimalStringN + ldr r4, _08121318 + adds r0, r6, #0 + bl GetStoryActionByStat + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCopy + ldr r1, _0812131C + adds r0, r5, #0 + bl GetStoryByStattellerPlayerName + adds r0, r6, #0 + bl GetStoryTextByStat + bl ShowFieldMessage + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08121310: .4byte 0x02039DF8 +_08121314: .4byte 0x02021C40 +_08121318: .4byte 0x02021C54 +_0812131C: .4byte 0x02021C68 + thumb_func_end ScrSpecial_StorytellerGetFreeStorySlot + + thumb_func_start PrintStoryList +PrintStoryList: @ 0x08121320 + push {r4, r5, lr} + sub sp, #0xc + bl GetFreeStorySlot + adds r3, r0, #0 + lsls r3, r3, #0x19 + movs r0, #0x80 + lsls r0, r0, #0x12 + adds r3, r3, r0 + lsrs r3, r3, #0x18 + movs r0, #0 + movs r1, #0 + movs r2, #0x17 + bl CreateWindowFromRect + ldr r1, _081213E0 + strb r0, [r1] + ldrb r0, [r1] + movs r1, #0 + bl SetStandardWindowBorderStyle + movs r5, #0 + ldr r0, _081213E4 + ldr r0, [r0] + ldrb r0, [r0, #4] + cmp r0, #0 + beq _08121392 + movs r4, #0x80 + lsls r4, r4, #0x12 +_0812135A: + bl GetStoryTitleByStat + adds r2, r0, #0 + ldr r0, _081213E0 + ldrb r0, [r0] + lsrs r1, r4, #0x18 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + movs r3, #0xa + bl AddTextPrinterParameterized + movs r0, #0x80 + lsls r0, r0, #0x15 + adds r4, r4, r0 + adds r5, #1 + cmp r5, #3 + bgt _08121392 + ldr r0, _081213E4 + ldr r0, [r0] + adds r0, #4 + adds r0, r0, r5 + ldrb r0, [r0] + cmp r0, #0 + bne _0812135A +_08121392: + ldr r4, _081213E0 + ldrb r0, [r4] + ldr r2, _081213E8 + lsls r1, r5, #4 + adds r1, #2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r5, #0 + str r5, [sp, #8] + movs r1, #1 + movs r3, #0xa + bl AddTextPrinterParameterized + bl GetFreeStorySlot + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r4] + str r0, [sp] + str r5, [sp, #4] + adds r0, r1, #0 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl sub_081984F0 + ldrb r0, [r4] + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081213E0: .4byte 0x02039DFC +_081213E4: .4byte 0x02039DF8 +_081213E8: .4byte 0x085CB1B9 + thumb_func_end PrintStoryList + + thumb_func_start Task_StoryListMenu +Task_StoryListMenu: @ 0x081213EC + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _0812140C + adds r4, r0, r1 + movs r0, #8 + ldrsh r5, [r4, r0] + cmp r5, #0 + beq _08121410 + cmp r5, #1 + beq _0812141C + b _08121466 + .align 2, 0 +_0812140C: .4byte 0x03005B60 +_08121410: + bl PrintStoryList + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _08121466 +_0812141C: + bl Menu_ProcessInput + lsls r0, r0, #0x18 + asrs r4, r0, #0x18 + movs r0, #2 + rsbs r0, r0, #0 + cmp r4, r0 + beq _08121466 + adds r0, #1 + cmp r4, r0 + beq _0812143E + bl GetFreeStorySlot + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + bne _0812144C +_0812143E: + ldr r1, _08121448 + movs r0, #0 + strh r0, [r1] + b _08121454 + .align 2, 0 +_08121448: .4byte 0x02037290 +_0812144C: + ldr r0, _0812146C + strh r5, [r0] + ldr r0, _08121470 + strb r4, [r0] +_08121454: + ldr r0, _08121474 + ldrb r0, [r0] + bl ClearToTransparentAndRemoveWindow + adds r0, r6, #0 + bl DestroyTask + bl EnableBothScriptContexts +_08121466: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0812146C: .4byte 0x02037290 +_08121470: .4byte 0x03001178 +_08121474: .4byte 0x02039DFC + thumb_func_end Task_StoryListMenu + + thumb_func_start ScrSpecial_StorytellerStoryListMenu +ScrSpecial_StorytellerStoryListMenu: @ 0x08121478 + push {lr} + ldr r0, _08121488 + movs r1, #0x50 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_08121488: .4byte 0x081213ED + thumb_func_end ScrSpecial_StorytellerStoryListMenu + + thumb_func_start sub_0812148C +sub_0812148C: @ 0x0812148C + push {lr} + ldr r0, _0812149C + ldrb r0, [r0] + bl ScrSpecial_StorytellerGetFreeStorySlot + pop {r0} + bx r0 + .align 2, 0 +_0812149C: .4byte 0x03001178 + thumb_func_end sub_0812148C + + thumb_func_start ScrSpecial_StorytellerInitializeRandomStat +ScrSpecial_StorytellerInitializeRandomStat: @ 0x081214A0 + push {lr} + ldr r1, _081214BC + ldr r0, _081214C0 + ldr r0, [r0] + ldr r2, _081214C4 + adds r0, r0, r2 + str r0, [r1] + bl GetFreeStorySlot + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_081214BC: .4byte 0x02039DF8 +_081214C0: .4byte 0x03005AEC +_081214C4: .4byte 0x00002E28 + thumb_func_end ScrSpecial_StorytellerInitializeRandomStat + + thumb_func_start ScrSpecial_StorytellerUpdateStat +ScrSpecial_StorytellerUpdateStat: @ 0x081214C8 + push {r4, r5, lr} + ldr r2, _081214F0 + ldr r0, _081214F4 + ldr r1, [r0] + ldr r3, _081214F8 + adds r0, r1, r3 + str r0, [r2] + ldr r5, _081214FC + ldrb r0, [r5] + ldr r2, _08121500 + adds r1, r1, r2 + adds r1, r1, r0 + ldrb r4, [r1] + bl HasTrainerStatIncreased + cmp r0, #1 + beq _08121504 + movs r0, #0 + b _0812150E + .align 2, 0 +_081214F0: .4byte 0x02039DF8 +_081214F4: .4byte 0x03005AEC +_081214F8: .4byte 0x00002E28 +_081214FC: .4byte 0x03001178 +_08121500: .4byte 0x00002E2C +_08121504: + ldrb r0, [r5] + adds r1, r4, #0 + bl StorytellerRecordNewStat + movs r0, #1 +_0812150E: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end ScrSpecial_StorytellerUpdateStat + + thumb_func_start ScrSpecial_HasStorytellerAlreadyRecorded +ScrSpecial_HasStorytellerAlreadyRecorded: @ 0x08121514 + push {lr} + ldr r1, _0812152C + ldr r0, _08121530 + ldr r0, [r0] + ldr r2, _08121534 + adds r0, r0, r2 + str r0, [r1] + ldrb r0, [r0, #1] + cmp r0, #0 + beq _08121538 + movs r0, #1 + b _0812153A + .align 2, 0 +_0812152C: .4byte 0x02039DF8 +_08121530: .4byte 0x03005AEC +_08121534: .4byte 0x00002E28 +_08121538: + movs r0, #0 +_0812153A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrSpecial_HasStorytellerAlreadyRecorded + + thumb_func_start SanitizeReceivedEmeraldOldMan +SanitizeReceivedEmeraldOldMan: @ 0x08121540 + push {lr} + ldr r1, _0812155C + ldr r0, _08121560 + ldr r0, [r0] + ldr r2, _08121564 + adds r0, r0, r2 + str r0, [r1] + bl StorytellerInitializeRandomStat + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0812155C: .4byte 0x02039DF8 +_08121560: .4byte 0x03005AEC +_08121564: .4byte 0x00002E28 + thumb_func_end SanitizeReceivedEmeraldOldMan + diff --git a/asm/menu.s b/asm/menu.s new file mode 100644 index 0000000..7811677 --- /dev/null +++ b/asm/menu.s @@ -0,0 +1,6741 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start InitStandardTextBoxWindows +InitStandardTextBoxWindows: @ 0x08196DC4 + push {lr} + ldr r0, _08196DDC + bl InitWindows + ldr r0, _08196DE0 + movs r1, #0xff + strb r1, [r0] + ldr r0, _08196DE4 + strb r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_08196DDC: .4byte 0x085D7B28 +_08196DE0: .4byte 0x0203CA58 +_08196DE4: .4byte 0x0203CA59 + thumb_func_end InitStandardTextBoxWindows + + thumb_func_start FreeAllOverworldWindowBuffers +FreeAllOverworldWindowBuffers: @ 0x08196DE8 + push {lr} + bl FreeAllWindowBuffers + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end FreeAllOverworldWindowBuffers + + thumb_func_start sub_08196DF4 +sub_08196DF4: @ 0x08196DF4 + push {lr} + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + bl DeactivateAllTextPrinters + bl sub_08196F98 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08196DF4 + + thumb_func_start RunTextPrintersAndIsPrinter0Active +RunTextPrintersAndIsPrinter0Active: @ 0x08196E18 + push {lr} + bl RunTextPrinters + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + thumb_func_end RunTextPrintersAndIsPrinter0Active + + thumb_func_start AddTextPrinterParameterized2 +AddTextPrinterParameterized2: @ 0x08196E2C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x10 + ldr r7, [sp, #0x28] + ldr r4, [sp, #0x2c] + mov r8, r4 + ldr r5, [sp, #0x30] + ldr r6, [sp, #0x34] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x18 + str r2, [sp] + mov r2, sp + movs r4, #0 + strb r0, [r2, #4] + mov r0, sp + strb r1, [r0, #5] + strb r4, [r0, #6] + movs r1, #2 + strb r1, [r0, #7] + strb r4, [r0, #8] + strb r1, [r0, #9] + strb r4, [r0, #0xa] + strb r4, [r0, #0xb] + mov r4, sp + ldrb r2, [r4, #0xc] + subs r1, #0x12 + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4, #0xc] + mov r0, sp + mov r2, r8 + lsls r2, r2, #4 + movs r4, #0xf + strb r2, [r0, #0xc] + mov r2, sp + ands r5, r4 + ldrb r0, [r2, #0xd] + ands r1, r0 + orrs r1, r5 + strb r1, [r2, #0xd] + mov r0, sp + lsrs r6, r6, #0x14 + ands r1, r4 + orrs r1, r6 + strb r1, [r0, #0xd] + ldr r2, _08196EB4 + ldrb r1, [r2] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + mov r0, sp + adds r1, r3, #0 + adds r2, r7, #0 + bl AddTextPrinter + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08196EB4: .4byte 0x030030B4 + thumb_func_end AddTextPrinterParameterized2 + + thumb_func_start AddTextPrinterForMessage +AddTextPrinterForMessage: @ 0x08196EB8 + push {r4, r5, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r5, #0 + ldr r3, _08196EFC + movs r4, #1 + ands r0, r4 + ldrb r2, [r3] + movs r1, #2 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3] + bl GetPlayerTextSpeedDelay + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r2, _08196F00 + str r5, [sp] + movs r0, #2 + str r0, [sp, #4] + str r4, [sp, #8] + movs r0, #3 + str r0, [sp, #0xc] + movs r0, #0 + movs r1, #1 + bl AddTextPrinterParameterized2 + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08196EFC: .4byte 0x030030B4 +_08196F00: .4byte 0x02021C7C + thumb_func_end AddTextPrinterForMessage + + thumb_func_start AddTextPrinterForMessage_2 +AddTextPrinterForMessage_2: @ 0x08196F04 + push {r4, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _08196F48 + movs r4, #1 + ands r0, r4 + ldrb r2, [r3] + movs r1, #2 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3] + bl GetPlayerTextSpeedDelay + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r2, _08196F4C + movs r0, #0 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + str r4, [sp, #8] + movs r0, #3 + str r0, [sp, #0xc] + movs r0, #0 + movs r1, #1 + bl AddTextPrinterParameterized2 + add sp, #0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08196F48: .4byte 0x030030B4 +_08196F4C: .4byte 0x02021C7C + thumb_func_end AddTextPrinterForMessage_2 + + thumb_func_start AddTextPrinterWithCustomSpeedForMessage +AddTextPrinterWithCustomSpeedForMessage: @ 0x08196F50 + push {r4, r5, lr} + sub sp, #0x10 + adds r3, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r4, _08196F90 + movs r5, #1 + ands r0, r5 + ldrb r2, [r4] + movs r1, #2 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r4] + ldr r2, _08196F94 + movs r0, #0 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + str r5, [sp, #8] + movs r0, #3 + str r0, [sp, #0xc] + movs r0, #0 + movs r1, #1 + bl AddTextPrinterParameterized2 + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08196F90: .4byte 0x030030B4 +_08196F94: .4byte 0x02021C7C + thumb_func_end AddTextPrinterWithCustomSpeedForMessage + + thumb_func_start sub_08196F98 +sub_08196F98: @ 0x08196F98 + push {lr} + movs r1, #0x80 + lsls r1, r1, #2 + movs r0, #0 + movs r2, #0xf0 + bl LoadMessageBoxGfx + movs r1, #0x85 + lsls r1, r1, #2 + movs r0, #0 + movs r2, #0xe0 + bl LoadUserWindowBorderGfx + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08196F98 + + thumb_func_start ClearDialogWindowAndFrame +ClearDialogWindowAndFrame: @ 0x08196FB8 + push {r4, r5, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _08196FEC + adds r0, r5, #0 + bl CallWindowFunction + adds r0, r5, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + adds r0, r5, #0 + bl PutWindowTilemap + cmp r4, #1 + bne _08196FE6 + adds r0, r5, #0 + movs r1, #3 + bl CopyWindowToVram +_08196FE6: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08196FEC: .4byte 0x081971E9 + thumb_func_end ClearDialogWindowAndFrame + + thumb_func_start ClearStdWindowAndFrame +ClearStdWindowAndFrame: @ 0x08196FF0 + push {r4, r5, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _08197024 + adds r0, r5, #0 + bl CallWindowFunction + adds r0, r5, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + adds r0, r5, #0 + bl PutWindowTilemap + cmp r4, #1 + bne _0819701E + adds r0, r5, #0 + movs r1, #3 + bl CopyWindowToVram +_0819701E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08197024: .4byte 0x08197099 + thumb_func_end ClearStdWindowAndFrame + + thumb_func_start DrawDialogueFrame +DrawDialogueFrame: @ 0x08197028 + push {r4, r5, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _0819705C + adds r0, r5, #0 + bl CallWindowFunction + adds r0, r5, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + adds r0, r5, #0 + bl ClearWindowTilemap + cmp r4, #1 + bne _08197056 + adds r0, r5, #0 + movs r1, #3 + bl CopyWindowToVram +_08197056: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0819705C: .4byte 0x081975E9 + thumb_func_end DrawDialogueFrame + + thumb_func_start DrawStdWindowFrame +DrawStdWindowFrame: @ 0x08197060 + push {r4, r5, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _08197094 + adds r0, r5, #0 + bl CallWindowFunction + adds r0, r5, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + adds r0, r5, #0 + bl ClearWindowTilemap + cmp r4, #1 + bne _0819708E + adds r0, r5, #0 + movs r1, #3 + bl CopyWindowToVram +_0819708E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08197094: .4byte 0x081975A1 + thumb_func_end DrawStdWindowFrame + + thumb_func_start WindowFunc_DrawStandardFrame +WindowFunc_DrawStandardFrame: @ 0x08197098 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + adds r4, r2, #0 + ldr r2, [sp, #0x3c] + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r1, r1, #0x18 + lsls r4, r4, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r3, [sp, #0x10] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x14] + movs r3, #0x85 + lsls r3, r3, #2 + lsrs r0, r1, #0x18 + str r0, [sp, #0xc] + movs r2, #0xff + lsls r2, r2, #0x18 + adds r2, r2, r1 + mov r8, r2 + lsrs r2, r2, #0x18 + lsrs r0, r4, #0x18 + mov sb, r0 + movs r0, #0xff + lsls r0, r0, #0x18 + adds r4, r4, r0 + lsrs r4, r4, #0x18 + movs r5, #1 + str r5, [sp] + str r5, [sp, #4] + movs r6, #0xe + str r6, [sp, #8] + adds r0, r7, #0 + adds r1, r3, #0 + adds r3, r4, #0 + bl FillBgTilemapBufferRect + ldr r1, _081971D0 + ldr r2, [sp, #0x10] + str r2, [sp] + str r5, [sp, #4] + str r6, [sp, #8] + adds r0, r7, #0 + ldr r2, [sp, #0xc] + adds r3, r4, #0 + bl FillBgTilemapBufferRect + ldr r1, _081971D4 + ldr r3, [sp, #0xc] + ldr r2, [sp, #0x10] + adds r0, r3, r2 + lsls r0, r0, #0x18 + mov sl, r0 + lsrs r2, r0, #0x18 + str r5, [sp] + str r5, [sp, #4] + str r6, [sp, #8] + adds r0, r7, #0 + adds r3, r4, #0 + bl FillBgTilemapBufferRect + mov r5, sb + ldr r0, [sp, #0x14] + add r0, sb + cmp sb, r0 + bge _0819716C + mov r3, r8 + str r3, [sp, #0x18] + movs r6, #1 + movs r0, #0xe + mov r8, r0 +_08197132: + lsls r4, r5, #0x18 + lsrs r4, r4, #0x18 + str r6, [sp] + str r6, [sp, #4] + mov r2, r8 + str r2, [sp, #8] + adds r0, r7, #0 + ldr r1, _081971D8 + ldr r3, [sp, #0x18] + lsrs r2, r3, #0x18 + adds r3, r4, #0 + bl FillBgTilemapBufferRect + str r6, [sp] + str r6, [sp, #4] + mov r0, r8 + str r0, [sp, #8] + adds r0, r7, #0 + ldr r1, _081971DC + mov r3, sl + lsrs r2, r3, #0x18 + adds r3, r4, #0 + bl FillBgTilemapBufferRect + adds r5, #1 + ldr r0, [sp, #0x14] + add r0, sb + cmp r5, r0 + blt _08197132 +_0819716C: + ldr r1, _081971E0 + ldr r2, [sp, #0xc] + subs r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r4, [sp, #0x14] + add r4, sb + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r5, #1 + str r5, [sp] + str r5, [sp, #4] + movs r6, #0xe + str r6, [sp, #8] + adds r0, r7, #0 + adds r3, r4, #0 + bl FillBgTilemapBufferRect + ldr r1, _081971E4 + ldr r0, [sp, #0x10] + str r0, [sp] + str r5, [sp, #4] + str r6, [sp, #8] + adds r0, r7, #0 + ldr r2, [sp, #0xc] + adds r3, r4, #0 + bl FillBgTilemapBufferRect + movs r1, #0x87 + lsls r1, r1, #2 + ldr r3, [sp, #0xc] + ldr r0, [sp, #0x10] + adds r2, r3, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r5, [sp] + str r5, [sp, #4] + str r6, [sp, #8] + adds r0, r7, #0 + adds r3, r4, #0 + bl FillBgTilemapBufferRect + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081971D0: .4byte 0x00000215 +_081971D4: .4byte 0x00000216 +_081971D8: .4byte 0x00000217 +_081971DC: .4byte 0x00000219 +_081971E0: .4byte 0x0000021A +_081971E4: .4byte 0x0000021B + thumb_func_end WindowFunc_DrawStandardFrame + + thumb_func_start WindowFunc_DrawDialogueFrame +WindowFunc_DrawDialogueFrame: @ 0x081971E8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x30 + adds r6, r0, #0 + adds r5, r2, #0 + ldr r4, [sp, #0x50] + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r2, r1, #0x18 + lsls r5, r5, #0x18 + lsls r0, r3, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x10] + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x14] + ldr r1, _08197544 + lsrs r0, r2, #0x18 + str r0, [sp, #0xc] + movs r0, #0xfd + lsls r0, r0, #0x18 + adds r2, r2, r0 + lsrs r2, r2, #0x18 + str r2, [sp, #0x18] + lsrs r2, r5, #0x18 + mov sl, r2 + movs r0, #0xff + lsls r0, r0, #0x18 + adds r5, r5, r0 + lsrs r5, r5, #0x18 + movs r4, #1 + str r4, [sp] + str r4, [sp, #4] + movs r2, #0xf + mov r8, r2 + str r2, [sp, #8] + adds r0, r6, #0 + ldr r2, [sp, #0x18] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + ldr r0, _08197548 + mov sb, r0 + ldr r0, [sp, #0xc] + subs r0, #2 + lsls r2, r0, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x1c] + str r4, [sp] + str r4, [sp, #4] + mov r2, r8 + str r2, [sp, #8] + adds r0, r6, #0 + mov r1, sb + ldr r2, [sp, #0x1c] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + ldr r1, _0819754C + ldr r0, [sp, #0xc] + subs r0, #1 + lsls r2, r0, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x20] + str r4, [sp] + str r4, [sp, #4] + mov r0, r8 + str r0, [sp, #8] + adds r0, r6, #0 + adds r3, r5, #0 + bl FillBgTilemapBufferRect + movs r1, #0x81 + lsls r1, r1, #2 + ldr r2, [sp, #0x10] + str r2, [sp] + str r4, [sp, #4] + mov r0, r8 + str r0, [sp, #8] + adds r0, r6, #0 + ldr r2, [sp, #0xc] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + ldr r1, _08197550 + ldr r2, [sp, #0xc] + ldr r0, [sp, #0x10] + adds r7, r2, r0 + lsls r2, r7, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x24] + str r4, [sp] + str r4, [sp, #4] + mov r2, r8 + str r2, [sp, #8] + adds r0, r6, #0 + ldr r2, [sp, #0x24] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + adds r0, r7, #1 + lsls r2, r0, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x28] + str r4, [sp] + str r4, [sp, #4] + mov r0, r8 + str r0, [sp, #8] + adds r0, r6, #0 + mov r1, sb + adds r3, r5, #0 + bl FillBgTilemapBufferRect + ldr r1, _08197554 + adds r0, r7, #2 + lsls r2, r0, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x2c] + str r4, [sp] + str r4, [sp, #4] + mov r2, r8 + str r2, [sp, #8] + adds r0, r6, #0 + ldr r2, [sp, #0x2c] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + ldr r7, _08197558 + str r4, [sp] + str r4, [sp, #4] + mov r0, r8 + str r0, [sp, #8] + adds r0, r6, #0 + adds r1, r7, #0 + ldr r2, [sp, #0x18] + mov r3, sl + bl FillBgTilemapBufferRect + ldr r5, _0819755C + str r4, [sp] + str r4, [sp, #4] + mov r2, r8 + str r2, [sp, #8] + adds r0, r6, #0 + adds r1, r5, #0 + ldr r2, [sp, #0x1c] + mov r3, sl + bl FillBgTilemapBufferRect + ldr r1, _08197560 + str r4, [sp] + str r4, [sp, #4] + mov r0, r8 + str r0, [sp, #8] + adds r0, r6, #0 + ldr r2, [sp, #0x20] + mov r3, sl + bl FillBgTilemapBufferRect + ldr r2, [sp, #0x10] + str r2, [sp] + str r4, [sp, #4] + mov r0, r8 + str r0, [sp, #8] + adds r0, r6, #0 + ldr r1, _08197564 + ldr r2, [sp, #0xc] + mov r3, sl + bl FillBgTilemapBufferRect + ldr r1, _08197568 + str r4, [sp] + str r4, [sp, #4] + mov r2, r8 + str r2, [sp, #8] + adds r0, r6, #0 + ldr r2, [sp, #0x24] + mov r3, sl + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + mov r0, r8 + str r0, [sp, #8] + adds r0, r6, #0 + adds r1, r5, #0 + ldr r2, [sp, #0x28] + mov r3, sl + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + mov r2, r8 + str r2, [sp, #8] + adds r0, r6, #0 + ldr r1, _0819756C + ldr r2, [sp, #0x2c] + mov r3, sl + bl FillBgTilemapBufferRect + mov r5, sl + adds r5, #1 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + str r4, [sp] + movs r0, #2 + mov sb, r0 + str r0, [sp, #4] + mov r2, r8 + str r2, [sp, #8] + adds r0, r6, #0 + adds r1, r7, #0 + ldr r2, [sp, #0x18] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + adds r7, #1 + str r4, [sp] + mov r0, sb + str r0, [sp, #4] + mov r2, r8 + str r2, [sp, #8] + adds r0, r6, #0 + adds r1, r7, #0 + ldr r2, [sp, #0x1c] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + ldr r0, [sp, #0x10] + adds r0, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + mov r0, sb + str r0, [sp, #4] + mov r2, r8 + str r2, [sp, #8] + adds r0, r6, #0 + ldr r1, _08197564 + ldr r2, [sp, #0x20] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + str r4, [sp] + mov r0, sb + str r0, [sp, #4] + mov r2, r8 + str r2, [sp, #8] + adds r0, r6, #0 + adds r1, r7, #0 + ldr r2, [sp, #0x28] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + str r4, [sp] + mov r0, sb + str r0, [sp, #4] + mov r2, r8 + str r2, [sp, #8] + adds r0, r6, #0 + ldr r1, _0819756C + ldr r2, [sp, #0x2c] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + ldr r1, _08197570 + ldr r0, [sp, #0x14] + add sl, r0 + mov r5, sl + subs r5, #1 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + str r4, [sp] + str r4, [sp, #4] + mov r2, r8 + str r2, [sp, #8] + adds r0, r6, #0 + ldr r2, [sp, #0x18] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + ldr r0, _08197574 + mov sb, r0 + str r4, [sp] + str r4, [sp, #4] + mov r2, r8 + str r2, [sp, #8] + adds r0, r6, #0 + mov r1, sb + ldr r2, [sp, #0x1c] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + ldr r1, _08197578 + str r4, [sp] + str r4, [sp, #4] + mov r0, r8 + str r0, [sp, #8] + adds r0, r6, #0 + ldr r2, [sp, #0x20] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + ldr r1, _0819757C + str r4, [sp] + str r4, [sp, #4] + mov r2, r8 + str r2, [sp, #8] + adds r0, r6, #0 + ldr r2, [sp, #0xc] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + ldr r1, _08197580 + str r4, [sp] + str r4, [sp, #4] + mov r0, r8 + str r0, [sp, #8] + adds r0, r6, #0 + ldr r2, [sp, #0x24] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + mov r2, r8 + str r2, [sp, #8] + adds r0, r6, #0 + mov r1, sb + ldr r2, [sp, #0x28] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + ldr r1, _08197584 + str r4, [sp] + str r4, [sp, #4] + mov r0, r8 + str r0, [sp, #8] + adds r0, r6, #0 + ldr r2, [sp, #0x2c] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + ldr r1, _08197588 + mov r2, sl + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sl, r2 + str r4, [sp] + str r4, [sp, #4] + mov r0, r8 + str r0, [sp, #8] + adds r0, r6, #0 + ldr r2, [sp, #0x18] + mov r3, sl + bl FillBgTilemapBufferRect + ldr r5, _0819758C + str r4, [sp] + str r4, [sp, #4] + mov r2, r8 + str r2, [sp, #8] + adds r0, r6, #0 + adds r1, r5, #0 + ldr r2, [sp, #0x1c] + mov r3, sl + bl FillBgTilemapBufferRect + ldr r1, _08197590 + str r4, [sp] + str r4, [sp, #4] + mov r0, r8 + str r0, [sp, #8] + adds r0, r6, #0 + ldr r2, [sp, #0x20] + mov r3, sl + bl FillBgTilemapBufferRect + ldr r1, _08197594 + ldr r2, [sp, #0x10] + str r2, [sp] + str r4, [sp, #4] + mov r0, r8 + str r0, [sp, #8] + adds r0, r6, #0 + ldr r2, [sp, #0xc] + mov r3, sl + bl FillBgTilemapBufferRect + ldr r1, _08197598 + str r4, [sp] + str r4, [sp, #4] + mov r2, r8 + str r2, [sp, #8] + adds r0, r6, #0 + ldr r2, [sp, #0x24] + mov r3, sl + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + mov r0, r8 + str r0, [sp, #8] + adds r0, r6, #0 + adds r1, r5, #0 + ldr r2, [sp, #0x28] + mov r3, sl + bl FillBgTilemapBufferRect + ldr r1, _0819759C + str r4, [sp] + str r4, [sp, #4] + mov r2, r8 + str r2, [sp, #8] + adds r0, r6, #0 + ldr r2, [sp, #0x2c] + mov r3, sl + bl FillBgTilemapBufferRect + add sp, #0x30 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08197544: .4byte 0x00000201 +_08197548: .4byte 0x00000202 +_0819754C: .4byte 0x00000203 +_08197550: .4byte 0x00000205 +_08197554: .4byte 0x00000206 +_08197558: .4byte 0x00000207 +_0819755C: .4byte 0x0000020D +_08197560: .4byte 0x0000020B +_08197564: .4byte 0x00000209 +_08197568: .4byte 0x0000060B +_0819756C: .4byte 0x0000020A +_08197570: .4byte 0x00000A07 +_08197574: .4byte 0x00000A0D +_08197578: .4byte 0x00000A0B +_0819757C: .4byte 0x00000A09 +_08197580: .4byte 0x00000E0B +_08197584: .4byte 0x00000A0A +_08197588: .4byte 0x00000A01 +_0819758C: .4byte 0x00000A02 +_08197590: .4byte 0x00000A03 +_08197594: .4byte 0x00000A04 +_08197598: .4byte 0x00000A05 +_0819759C: .4byte 0x00000A06 + thumb_func_end WindowFunc_DrawDialogueFrame + + thumb_func_start WindowFunc_ClearStdWindowAndFrame +WindowFunc_ClearStdWindowAndFrame: @ 0x081975A0 + push {r4, r5, lr} + sub sp, #0xc + adds r4, r1, #0 + adds r5, r2, #0 + ldr r1, [sp, #0x18] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r4, #0x18 + lsls r5, r5, #0x18 + lsls r3, r3, #0x18 + lsls r1, r1, #0x18 + movs r2, #0xff + lsls r2, r2, #0x18 + adds r4, r4, r2 + lsrs r4, r4, #0x18 + adds r5, r5, r2 + lsrs r5, r5, #0x18 + movs r2, #0x80 + lsls r2, r2, #0x12 + adds r3, r3, r2 + lsrs r3, r3, #0x18 + str r3, [sp] + adds r1, r1, r2 + lsrs r1, r1, #0x18 + str r1, [sp, #4] + movs r1, #0xe + str r1, [sp, #8] + movs r1, #0 + adds r2, r4, #0 + adds r3, r5, #0 + bl FillBgTilemapBufferRect + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end WindowFunc_ClearStdWindowAndFrame + + thumb_func_start WindowFunc_ClearDialogWindowAndFrame +WindowFunc_ClearDialogWindowAndFrame: @ 0x081975E8 + push {r4, r5, lr} + sub sp, #0xc + adds r4, r1, #0 + adds r5, r2, #0 + ldr r1, [sp, #0x18] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r4, #0x18 + lsls r5, r5, #0x18 + lsls r3, r3, #0x18 + lsls r1, r1, #0x18 + movs r2, #0xfd + lsls r2, r2, #0x18 + adds r4, r4, r2 + lsrs r4, r4, #0x18 + movs r2, #0xff + lsls r2, r2, #0x18 + adds r5, r5, r2 + lsrs r5, r5, #0x18 + movs r2, #0xc0 + lsls r2, r2, #0x13 + adds r3, r3, r2 + lsrs r3, r3, #0x18 + str r3, [sp] + movs r2, #0x80 + lsls r2, r2, #0x12 + adds r1, r1, r2 + lsrs r1, r1, #0x18 + str r1, [sp, #4] + movs r1, #0xe + str r1, [sp, #8] + movs r1, #0 + adds r2, r4, #0 + adds r3, r5, #0 + bl FillBgTilemapBufferRect + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end WindowFunc_ClearDialogWindowAndFrame + + thumb_func_start SetStandardWindowBorderStyle +SetStandardWindowBorderStyle: @ 0x08197638 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r2, #0x85 + lsls r2, r2, #2 + movs r3, #0xe + bl DrawStdFrameWithCustomTileAndPalette + pop {r0} + bx r0 + thumb_func_end SetStandardWindowBorderStyle + + thumb_func_start sub_08197650 +sub_08197650: @ 0x08197650 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r6, #0x80 + lsls r6, r6, #2 + adds r0, r4, #0 + adds r1, r6, #0 + movs r2, #0xf0 + bl LoadMessageBoxGfx + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + movs r3, #0xf + bl DrawDialogFrameWithCustomTileAndPalette + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08197650 + + thumb_func_start sub_08197680 +sub_08197680: @ 0x08197680 + push {lr} + ldr r0, _08197690 + movs r1, #0xe0 + movs r2, #0x14 + bl LoadPalette + pop {r0} + bx r0 + .align 2, 0 +_08197690: .4byte 0x085D7B04 + thumb_func_end sub_08197680 + + thumb_func_start Menu_LoadStdPalAt +Menu_LoadStdPalAt: @ 0x08197694 + push {lr} + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, _081976A8 + movs r2, #0x14 + bl LoadPalette + pop {r0} + bx r0 + .align 2, 0 +_081976A8: .4byte 0x085D7B04 + thumb_func_end Menu_LoadStdPalAt + + thumb_func_start sub_081976AC +sub_081976AC: @ 0x081976AC + ldr r0, _081976B0 + bx lr + .align 2, 0 +_081976B0: .4byte 0x085D7B04 + thumb_func_end sub_081976AC + + thumb_func_start sub_081976B4 +sub_081976B4: @ 0x081976B4 + push {lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xf + bls _081976C0 + movs r1, #0 +_081976C0: + ldr r0, _081976CC + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + pop {r1} + bx r1 + .align 2, 0 +_081976CC: .4byte 0x085D7B04 + thumb_func_end sub_081976B4 + + thumb_func_start DisplayItemMessageOnField +DisplayItemMessageOnField: @ 0x081976D0 + push {r4, r5, r6, lr} + sub sp, #0x10 + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl sub_08196F98 + bl GetPlayerTextSpeedDelay + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0x80 + lsls r2, r2, #2 + movs r1, #1 + str r1, [sp] + str r0, [sp, #4] + str r5, [sp, #8] + str r6, [sp, #0xc] + adds r0, r4, #0 + movs r1, #0 + movs r3, #0xf + bl DisplayMessageAndContinueTask + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + add sp, #0x10 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end DisplayItemMessageOnField + + thumb_func_start DisplayYesNoMenuDefaultYes +DisplayYesNoMenuDefaultYes: @ 0x08197714 + push {lr} + sub sp, #0xc + ldr r0, _08197738 + movs r1, #0x85 + lsls r1, r1, #2 + str r1, [sp] + movs r1, #0xe + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl sub_08198C08 + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_08197738: .4byte 0x085D7B38 + thumb_func_end DisplayYesNoMenuDefaultYes + + thumb_func_start DisplayYesNoMenuWithDefault +DisplayYesNoMenuWithDefault: @ 0x0819773C + push {lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08197764 + movs r1, #0x85 + lsls r1, r1, #2 + str r1, [sp] + movs r1, #0xe + str r1, [sp, #4] + str r0, [sp, #8] + adds r0, r2, #0 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl sub_08198C08 + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_08197764: .4byte 0x085D7B38 + thumb_func_end DisplayYesNoMenuWithDefault + + thumb_func_start GetPlayerTextSpeed +GetPlayerTextSpeed: @ 0x08197768 + push {lr} + ldr r0, _08197784 + ldrb r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + bne _0819778C + ldr r0, _08197788 + ldr r0, [r0] + ldrb r0, [r0, #0x14] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1d + b _0819778E + .align 2, 0 +_08197784: .4byte 0x030030B4 +_08197788: .4byte 0x03005AF0 +_0819778C: + movs r0, #1 +_0819778E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetPlayerTextSpeed + + thumb_func_start GetPlayerTextSpeedDelay +GetPlayerTextSpeedDelay: @ 0x08197794 + push {lr} + ldr r0, _081977C0 + ldr r2, [r0] + ldrb r1, [r2, #0x14] + lsls r0, r1, #0x1d + lsrs r0, r0, #0x1d + cmp r0, #2 + bls _081977B0 + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x14] +_081977B0: + bl GetPlayerTextSpeed + ldr r1, _081977C4 + adds r0, r0, r1 + ldrb r0, [r0] + pop {r1} + bx r1 + .align 2, 0 +_081977C0: .4byte 0x03005AF0 +_081977C4: .4byte 0x085D7B24 + thumb_func_end GetPlayerTextSpeedDelay + + thumb_func_start sub_081977C8 +sub_081977C8: @ 0x081977C8 + push {r4, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r4, _08197808 + ldrb r0, [r4] + cmp r0, #0xff + bne _081977FC + lsls r0, r1, #0x19 + movs r1, #0x80 + lsls r1, r1, #0x12 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + str r0, [sp] + movs r0, #0xf + str r0, [sp, #4] + movs r0, #0xad + lsls r0, r0, #1 + str r0, [sp, #8] + movs r0, #0 + movs r1, #0x17 + movs r2, #1 + movs r3, #6 + bl sub_08198BB4 + strb r0, [r4] +_081977FC: + ldrb r0, [r4] + add sp, #0xc + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08197808: .4byte 0x0203CA58 + thumb_func_end sub_081977C8 + + thumb_func_start GetStartMenuWindowId +GetStartMenuWindowId: @ 0x0819780C + ldr r0, _08197814 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08197814: .4byte 0x0203CA58 + thumb_func_end GetStartMenuWindowId + + thumb_func_start RemoveMapNamePopUpWindow +RemoveMapNamePopUpWindow: @ 0x08197818 + push {r4, lr} + ldr r4, _08197830 + ldrb r0, [r4] + cmp r0, #0xff + beq _0819782A + bl RemoveWindow + movs r0, #0xff + strb r0, [r4] +_0819782A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08197830: .4byte 0x0203CA58 + thumb_func_end RemoveMapNamePopUpWindow + + thumb_func_start sub_08197834 +sub_08197834: @ 0x08197834 + movs r0, #0x80 + lsls r0, r0, #2 + bx lr + .align 2, 0 + thumb_func_end sub_08197834 + + thumb_func_start sub_0819783C +sub_0819783C: @ 0x0819783C + movs r0, #0x85 + lsls r0, r0, #2 + bx lr + .align 2, 0 + thumb_func_end sub_0819783C + + thumb_func_start AddMapNamePopUpWindow +AddMapNamePopUpWindow: @ 0x08197844 + push {r4, lr} + sub sp, #0xc + ldr r4, _08197878 + ldrb r0, [r4] + cmp r0, #0xff + bne _0819786C + movs r0, #3 + str r0, [sp] + movs r0, #0xe + str r0, [sp, #4] + movs r0, #0x94 + lsls r0, r0, #1 + str r0, [sp, #8] + movs r0, #0 + movs r1, #1 + movs r2, #1 + movs r3, #0xa + bl sub_08198BB4 + strb r0, [r4] +_0819786C: + ldrb r0, [r4] + add sp, #0xc + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08197878: .4byte 0x0203CA59 + thumb_func_end AddMapNamePopUpWindow + + thumb_func_start GetMapNamePopUpWindowId +GetMapNamePopUpWindowId: @ 0x0819787C + ldr r0, _08197884 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08197884: .4byte 0x0203CA59 + thumb_func_end GetMapNamePopUpWindowId + + thumb_func_start RemoveStartMenuWindow +RemoveStartMenuWindow: @ 0x08197888 + push {r4, lr} + ldr r4, _081978A0 + ldrb r0, [r4] + cmp r0, #0xff + beq _0819789A + bl RemoveWindow + movs r0, #0xff + strb r0, [r4] +_0819789A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081978A0: .4byte 0x0203CA59 + thumb_func_end RemoveStartMenuWindow + + thumb_func_start AddTextPrinterWithCallbackForMessage +AddTextPrinterWithCallbackForMessage: @ 0x081978A4 + push {r4, r5, lr} + sub sp, #0x10 + adds r5, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _081978E8 + movs r4, #1 + ands r0, r4 + ldrb r2, [r3] + movs r1, #2 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3] + bl GetPlayerTextSpeedDelay + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r2, _081978EC + str r5, [sp] + movs r0, #2 + str r0, [sp, #4] + str r4, [sp, #8] + movs r0, #3 + str r0, [sp, #0xc] + movs r0, #0 + movs r1, #1 + bl AddTextPrinterParameterized2 + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081978E8: .4byte 0x030030B4 +_081978EC: .4byte 0x02021C7C + thumb_func_end AddTextPrinterWithCallbackForMessage + + thumb_func_start sub_081978F0 +sub_081978F0: @ 0x081978F0 + push {r4, lr} + sub sp, #0xc + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0x20 + str r0, [sp] + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect + cmp r4, #1 + bne _0819791A + movs r0, #0 + bl CopyBgTilemapBufferToVram +_0819791A: + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081978F0 + + thumb_func_start DrawDialogFrameWithCustomTileAndPalette +DrawDialogFrameWithCustomTileAndPalette: @ 0x08197924 + push {r4, r5, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _08197960 + strh r2, [r0] + ldr r0, _08197964 + strb r3, [r0] + ldr r1, _08197968 + adds r0, r5, #0 + bl CallWindowFunction + adds r0, r5, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + adds r0, r5, #0 + bl PutWindowTilemap + cmp r4, #1 + bne _0819795A + adds r0, r5, #0 + movs r1, #3 + bl CopyWindowToVram +_0819795A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08197960: .4byte 0x0203CA68 +_08197964: .4byte 0x0203CA6A +_08197968: .4byte 0x081979BD + thumb_func_end DrawDialogFrameWithCustomTileAndPalette + + thumb_func_start DrawDialogFrameWithCustomTile +DrawDialogFrameWithCustomTile: @ 0x0819796C + push {r4, r5, r6, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081979B0 + strh r2, [r0] + ldr r5, _081979B4 + adds r0, r6, #0 + movs r1, #5 + bl GetWindowAttribute + strb r0, [r5] + ldr r1, _081979B8 + adds r0, r6, #0 + bl CallWindowFunction + adds r0, r6, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + adds r0, r6, #0 + bl PutWindowTilemap + cmp r4, #1 + bne _081979AA + adds r0, r6, #0 + movs r1, #3 + bl CopyWindowToVram +_081979AA: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081979B0: .4byte 0x0203CA68 +_081979B4: .4byte 0x0203CA6A +_081979B8: .4byte 0x081979BD + thumb_func_end DrawDialogFrameWithCustomTile + + thumb_func_start WindowFunc_DrawDialogFrameWithCustomTileAndPalette +WindowFunc_DrawDialogFrameWithCustomTileAndPalette: @ 0x081979BC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x30 + mov r8, r0 + adds r5, r2, #0 + ldr r4, [sp, #0x50] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r2, r1, #0x18 + lsls r5, r5, #0x18 + lsls r0, r3, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x10] + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x14] + ldr r1, _08197DD0 + mov sl, r1 + ldrh r1, [r1] + adds r1, #1 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsrs r0, r2, #0x18 + str r0, [sp, #0xc] + movs r0, #0xfd + lsls r0, r0, #0x18 + adds r2, r2, r0 + lsrs r2, r2, #0x18 + str r2, [sp, #0x18] + lsrs r7, r5, #0x18 + movs r2, #0xff + lsls r2, r2, #0x18 + adds r5, r5, r2 + lsrs r5, r5, #0x18 + movs r4, #1 + str r4, [sp] + str r4, [sp, #4] + ldr r0, _08197DD4 + mov sb, r0 + ldrb r0, [r0] + str r0, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x18] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + mov r2, sl + ldrh r1, [r2] + adds r1, #2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, [sp, #0xc] + subs r0, #2 + lsls r2, r0, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x1c] + str r4, [sp] + str r4, [sp, #4] + mov r2, sb + ldrb r0, [r2] + str r0, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x1c] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + mov r0, sl + ldrh r1, [r0] + adds r1, #3 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, [sp, #0xc] + subs r0, #1 + lsls r2, r0, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x20] + str r4, [sp] + str r4, [sp, #4] + mov r2, sb + ldrb r0, [r2] + str r0, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x20] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + mov r0, sl + ldrh r1, [r0] + adds r1, #4 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r2, [sp, #0x10] + str r2, [sp] + str r4, [sp, #4] + mov r2, sb + ldrb r0, [r2] + str r0, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0xc] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + mov r0, sl + ldrh r1, [r0] + adds r1, #5 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r2, [sp, #0xc] + ldr r0, [sp, #0x10] + adds r6, r2, r0 + lsls r2, r6, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x24] + str r4, [sp] + str r4, [sp, #4] + mov r2, sb + ldrb r0, [r2] + str r0, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x24] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + mov r0, sl + ldrh r1, [r0] + adds r1, #2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r6, #1 + lsls r2, r0, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x28] + str r4, [sp] + str r4, [sp, #4] + mov r2, sb + ldrb r0, [r2] + str r0, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x28] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + mov r0, sl + ldrh r1, [r0] + adds r1, #6 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r6, #2 + lsls r2, r0, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x2c] + str r4, [sp] + str r4, [sp, #4] + mov r2, sb + ldrb r0, [r2] + str r0, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x2c] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + mov r0, sl + ldrh r1, [r0] + adds r1, #7 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r4, [sp] + str r4, [sp, #4] + mov r2, sb + ldrb r0, [r2] + str r0, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x18] + adds r3, r7, #0 + bl FillBgTilemapBufferRect + mov r0, sl + ldrh r1, [r0] + adds r1, #0xd + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r4, [sp] + str r4, [sp, #4] + mov r2, sb + ldrb r0, [r2] + str r0, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x1c] + adds r3, r7, #0 + bl FillBgTilemapBufferRect + mov r0, sl + ldrh r1, [r0] + adds r1, #0xb + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r4, [sp] + str r4, [sp, #4] + mov r2, sb + ldrb r0, [r2] + str r0, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x20] + adds r3, r7, #0 + bl FillBgTilemapBufferRect + mov r0, sl + ldrh r1, [r0] + adds r1, #9 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r2, [sp, #0x10] + str r2, [sp] + str r4, [sp, #4] + mov r2, sb + ldrb r0, [r2] + str r0, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0xc] + adds r3, r7, #0 + bl FillBgTilemapBufferRect + ldr r0, _08197DD8 + adds r1, r0, #0 + mov r2, sl + ldrh r2, [r2] + adds r1, r1, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r4, [sp] + str r4, [sp, #4] + mov r2, sb + ldrb r0, [r2] + str r0, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x24] + adds r3, r7, #0 + bl FillBgTilemapBufferRect + mov r0, sl + ldrh r1, [r0] + adds r1, #0xd + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r4, [sp] + str r4, [sp, #4] + mov r2, sb + ldrb r0, [r2] + str r0, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x28] + adds r3, r7, #0 + bl FillBgTilemapBufferRect + mov r0, sl + ldrh r1, [r0] + adds r1, #0xa + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r4, [sp] + str r4, [sp, #4] + mov r2, sb + ldrb r0, [r2] + str r0, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x2c] + adds r3, r7, #0 + bl FillBgTilemapBufferRect + mov r0, sl + ldrh r1, [r0] + adds r1, #7 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r5, r7, #1 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + str r4, [sp] + movs r6, #2 + str r6, [sp, #4] + mov r2, sb + ldrb r0, [r2] + str r0, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x18] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + mov r0, sl + ldrh r1, [r0] + adds r1, #8 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r4, [sp] + str r6, [sp, #4] + mov r2, sb + ldrb r0, [r2] + str r0, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x1c] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + mov r0, sl + ldrh r1, [r0] + adds r1, #9 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, [sp, #0x10] + adds r0, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + str r6, [sp, #4] + mov r2, sb + ldrb r0, [r2] + str r0, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x20] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + mov r0, sl + ldrh r1, [r0] + adds r1, #8 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r4, [sp] + str r6, [sp, #4] + mov r2, sb + ldrb r0, [r2] + str r0, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x28] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + mov r0, sl + ldrh r1, [r0] + adds r1, #0xa + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r4, [sp] + str r6, [sp, #4] + mov r2, sb + ldrb r0, [r2] + str r0, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x2c] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + ldr r0, _08197DDC + adds r1, r0, #0 + mov r2, sl + ldrh r2, [r2] + adds r1, r1, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, [sp, #0x14] + adds r7, r7, r0 + subs r6, r7, #1 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + str r4, [sp] + str r4, [sp, #4] + mov r2, sb + ldrb r0, [r2] + str r0, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x18] + adds r3, r6, #0 + bl FillBgTilemapBufferRect + ldr r0, _08197DE0 + adds r5, r0, #0 + mov r2, sl + ldrh r2, [r2] + adds r1, r5, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r4, [sp] + str r4, [sp, #4] + mov r2, sb + ldrb r0, [r2] + str r0, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x1c] + adds r3, r6, #0 + bl FillBgTilemapBufferRect + ldr r0, _08197DE4 + adds r1, r0, #0 + mov r2, sl + ldrh r2, [r2] + adds r1, r1, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r4, [sp] + str r4, [sp, #4] + mov r2, sb + ldrb r0, [r2] + str r0, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x20] + adds r3, r6, #0 + bl FillBgTilemapBufferRect + ldr r0, _08197DE8 + adds r1, r0, #0 + mov r2, sl + ldrh r2, [r2] + adds r1, r1, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r4, [sp] + str r4, [sp, #4] + mov r2, sb + ldrb r0, [r2] + str r0, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0xc] + adds r3, r6, #0 + bl FillBgTilemapBufferRect + ldr r0, _08197DEC + adds r1, r0, #0 + mov r2, sl + ldrh r2, [r2] + adds r1, r1, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r4, [sp] + str r4, [sp, #4] + mov r2, sb + ldrb r0, [r2] + str r0, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x24] + adds r3, r6, #0 + bl FillBgTilemapBufferRect + mov r0, sl + ldrh r0, [r0] + adds r5, r5, r0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + str r4, [sp] + str r4, [sp, #4] + mov r1, sb + ldrb r0, [r1] + str r0, [sp, #8] + mov r0, r8 + adds r1, r5, #0 + ldr r2, [sp, #0x28] + adds r3, r6, #0 + bl FillBgTilemapBufferRect + ldr r2, _08197DF0 + adds r1, r2, #0 + mov r0, sl + ldrh r0, [r0] + adds r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r4, [sp] + str r4, [sp, #4] + mov r2, sb + ldrb r0, [r2] + str r0, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x2c] + adds r3, r6, #0 + bl FillBgTilemapBufferRect + ldr r0, _08197DF4 + adds r1, r0, #0 + mov r2, sl + ldrh r2, [r2] + adds r1, r1, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r3, r7, #0x18 + lsrs r6, r3, #0x18 + str r4, [sp] + str r4, [sp, #4] + mov r2, sb + ldrb r0, [r2] + str r0, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x18] + adds r3, r6, #0 + bl FillBgTilemapBufferRect + ldr r0, _08197DF8 + adds r5, r0, #0 + mov r2, sl + ldrh r2, [r2] + adds r1, r5, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r4, [sp] + str r4, [sp, #4] + mov r2, sb + ldrb r0, [r2] + str r0, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x1c] + adds r3, r6, #0 + bl FillBgTilemapBufferRect + ldr r0, _08197DFC + adds r1, r0, #0 + mov r2, sl + ldrh r2, [r2] + adds r1, r1, r2 + b _08197E00 + .align 2, 0 +_08197DD0: .4byte 0x0203CA68 +_08197DD4: .4byte 0x0203CA6A +_08197DD8: .4byte 0x0000040B +_08197DDC: .4byte 0x00000807 +_08197DE0: .4byte 0x0000080D +_08197DE4: .4byte 0x0000080B +_08197DE8: .4byte 0x00000809 +_08197DEC: .4byte 0x00000C0B +_08197DF0: .4byte 0x0000080A +_08197DF4: .4byte 0x00000801 +_08197DF8: .4byte 0x00000802 +_08197DFC: .4byte 0x00000803 +_08197E00: + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r4, [sp] + str r4, [sp, #4] + mov r2, sb + ldrb r0, [r2] + str r0, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x20] + adds r3, r6, #0 + bl FillBgTilemapBufferRect + ldr r0, _08197EB0 + adds r1, r0, #0 + mov r2, sl + ldrh r2, [r2] + adds r1, r1, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, [sp, #0x10] + str r0, [sp] + str r4, [sp, #4] + mov r2, sb + ldrb r0, [r2] + str r0, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0xc] + adds r3, r6, #0 + bl FillBgTilemapBufferRect + ldr r0, _08197EB4 + adds r1, r0, #0 + mov r2, sl + ldrh r2, [r2] + adds r1, r1, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r4, [sp] + str r4, [sp, #4] + mov r2, sb + ldrb r0, [r2] + str r0, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x24] + adds r3, r6, #0 + bl FillBgTilemapBufferRect + mov r0, sl + ldrh r0, [r0] + adds r5, r5, r0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + str r4, [sp] + str r4, [sp, #4] + mov r1, sb + ldrb r0, [r1] + str r0, [sp, #8] + mov r0, r8 + adds r1, r5, #0 + ldr r2, [sp, #0x28] + adds r3, r6, #0 + bl FillBgTilemapBufferRect + ldr r2, _08197EB8 + adds r1, r2, #0 + mov r0, sl + ldrh r0, [r0] + adds r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r4, [sp] + str r4, [sp, #4] + mov r2, sb + ldrb r0, [r2] + str r0, [sp, #8] + mov r0, r8 + ldr r2, [sp, #0x2c] + adds r3, r6, #0 + bl FillBgTilemapBufferRect + add sp, #0x30 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08197EB0: .4byte 0x00000804 +_08197EB4: .4byte 0x00000805 +_08197EB8: .4byte 0x00000806 + thumb_func_end WindowFunc_DrawDialogFrameWithCustomTileAndPalette + + thumb_func_start ClearDialogWindowAndFrameToTransparent +ClearDialogWindowAndFrameToTransparent: @ 0x08197EBC + push {r4, r5, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _08197EF0 + adds r0, r5, #0 + bl CallWindowFunction + adds r0, r5, #0 + movs r1, #0 + bl FillWindowPixelBuffer + adds r0, r5, #0 + bl ClearWindowTilemap + cmp r4, #1 + bne _08197EEA + adds r0, r5, #0 + movs r1, #3 + bl CopyWindowToVram +_08197EEA: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08197EF0: .4byte 0x08197EF5 + thumb_func_end ClearDialogWindowAndFrameToTransparent + + thumb_func_start WindowFunc_ClearDialogWindowAndFrameNullPalette +WindowFunc_ClearDialogWindowAndFrameNullPalette: @ 0x08197EF4 + push {r4, r5, lr} + sub sp, #0xc + adds r4, r1, #0 + adds r5, r2, #0 + ldr r1, [sp, #0x18] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r4, #0x18 + lsls r5, r5, #0x18 + lsls r3, r3, #0x18 + lsls r1, r1, #0x18 + movs r2, #0xfd + lsls r2, r2, #0x18 + adds r4, r4, r2 + lsrs r4, r4, #0x18 + movs r2, #0xff + lsls r2, r2, #0x18 + adds r5, r5, r2 + lsrs r5, r5, #0x18 + movs r2, #0xc0 + lsls r2, r2, #0x13 + adds r3, r3, r2 + lsrs r3, r3, #0x18 + str r3, [sp] + movs r2, #0x80 + lsls r2, r2, #0x12 + adds r1, r1, r2 + lsrs r1, r1, #0x18 + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + adds r2, r4, #0 + adds r3, r5, #0 + bl FillBgTilemapBufferRect + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WindowFunc_ClearDialogWindowAndFrameNullPalette + + thumb_func_start DrawStdFrameWithCustomTileAndPalette +DrawStdFrameWithCustomTileAndPalette: @ 0x08197F44 + push {r4, r5, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _08197F80 + strh r2, [r0] + ldr r0, _08197F84 + strb r3, [r0] + ldr r1, _08197F88 + adds r0, r5, #0 + bl CallWindowFunction + adds r0, r5, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + adds r0, r5, #0 + bl PutWindowTilemap + cmp r4, #1 + bne _08197F7A + adds r0, r5, #0 + movs r1, #3 + bl CopyWindowToVram +_08197F7A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08197F80: .4byte 0x0203CA68 +_08197F84: .4byte 0x0203CA6A +_08197F88: .4byte 0x08197FDD + thumb_func_end DrawStdFrameWithCustomTileAndPalette + + thumb_func_start DrawStdFrameWithCustomTile +DrawStdFrameWithCustomTile: @ 0x08197F8C + push {r4, r5, r6, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _08197FD0 + strh r2, [r0] + ldr r5, _08197FD4 + adds r0, r6, #0 + movs r1, #5 + bl GetWindowAttribute + strb r0, [r5] + ldr r1, _08197FD8 + adds r0, r6, #0 + bl CallWindowFunction + adds r0, r6, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + adds r0, r6, #0 + bl PutWindowTilemap + cmp r4, #1 + bne _08197FCA + adds r0, r6, #0 + movs r1, #3 + bl CopyWindowToVram +_08197FCA: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08197FD0: .4byte 0x0203CA68 +_08197FD4: .4byte 0x0203CA6A +_08197FD8: .4byte 0x08197FDD + thumb_func_end DrawStdFrameWithCustomTile + + thumb_func_start WindowFunc_DrawStdFrameWithCustomTileAndPalette +WindowFunc_DrawStdFrameWithCustomTileAndPalette: @ 0x08197FDC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + mov sb, r0 + adds r6, r1, #0 + adds r4, r2, #0 + ldr r0, [sp, #0x38] + mov r1, sb + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sb, r1 + lsls r6, r6, #0x18 + lsls r4, r4, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r3, [sp, #0x10] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x14] + ldr r2, _0819812C + ldrh r1, [r2] + lsrs r0, r6, #0x18 + str r0, [sp, #0xc] + movs r2, #0xff + lsls r2, r2, #0x18 + adds r6, r6, r2 + lsrs r6, r6, #0x18 + lsrs r0, r4, #0x18 + mov r8, r0 + adds r4, r4, r2 + lsrs r4, r4, #0x18 + movs r5, #1 + str r5, [sp] + str r5, [sp, #4] + ldr r7, _08198130 + ldrb r0, [r7] + str r0, [sp, #8] + mov r0, sb + adds r2, r6, #0 + adds r3, r4, #0 + bl FillBgTilemapBufferRect + ldr r2, _0819812C + ldrh r1, [r2] + adds r1, #1 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, [sp, #0x10] + str r0, [sp] + str r5, [sp, #4] + ldrb r0, [r7] + str r0, [sp, #8] + mov r0, sb + ldr r2, [sp, #0xc] + adds r3, r4, #0 + bl FillBgTilemapBufferRect + ldr r2, _0819812C + ldrh r1, [r2] + adds r1, #2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, [sp, #0xc] + ldr r2, [sp, #0x10] + adds r0, r0, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + str r5, [sp] + str r5, [sp, #4] + ldrb r0, [r7] + str r0, [sp, #8] + mov r0, sb + mov r2, sl + adds r3, r4, #0 + bl FillBgTilemapBufferRect + ldr r0, _0819812C + ldrh r1, [r0] + adds r1, #3 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r5, [sp] + ldr r2, [sp, #0x14] + str r2, [sp, #4] + ldrb r0, [r7] + str r0, [sp, #8] + mov r0, sb + adds r2, r6, #0 + mov r3, r8 + bl FillBgTilemapBufferRect + ldr r0, _0819812C + ldrh r1, [r0] + adds r1, #5 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r5, [sp] + ldr r2, [sp, #0x14] + str r2, [sp, #4] + ldrb r0, [r7] + str r0, [sp, #8] + mov r0, sb + mov r2, sl + mov r3, r8 + bl FillBgTilemapBufferRect + ldr r0, _0819812C + ldrh r1, [r0] + adds r1, #6 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r2, [sp, #0x14] + add r8, r2 + mov r0, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + str r5, [sp] + str r5, [sp, #4] + ldrb r0, [r7] + str r0, [sp, #8] + mov r0, sb + adds r2, r6, #0 + mov r3, r8 + bl FillBgTilemapBufferRect + ldr r2, _0819812C + ldrh r1, [r2] + adds r1, #7 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, [sp, #0x10] + str r0, [sp] + str r5, [sp, #4] + ldrb r0, [r7] + str r0, [sp, #8] + mov r0, sb + ldr r2, [sp, #0xc] + mov r3, r8 + bl FillBgTilemapBufferRect + ldr r2, _0819812C + ldrh r1, [r2] + adds r1, #8 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r5, [sp] + str r5, [sp, #4] + ldrb r0, [r7] + str r0, [sp, #8] + mov r0, sb + mov r2, sl + mov r3, r8 + bl FillBgTilemapBufferRect + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0819812C: .4byte 0x0203CA68 +_08198130: .4byte 0x0203CA6A + thumb_func_end WindowFunc_DrawStdFrameWithCustomTileAndPalette + + thumb_func_start ClearStdWindowAndFrameToTransparent +ClearStdWindowAndFrameToTransparent: @ 0x08198134 + push {r4, r5, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _08198168 + adds r0, r5, #0 + bl CallWindowFunction + adds r0, r5, #0 + movs r1, #0 + bl FillWindowPixelBuffer + adds r0, r5, #0 + bl ClearWindowTilemap + cmp r4, #1 + bne _08198162 + adds r0, r5, #0 + movs r1, #3 + bl CopyWindowToVram +_08198162: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08198168: .4byte 0x0819816D + thumb_func_end ClearStdWindowAndFrameToTransparent + + thumb_func_start WindowFunc_ClearStdWindowAndFrameToTransparent +WindowFunc_ClearStdWindowAndFrameToTransparent: @ 0x0819816C + push {r4, r5, lr} + sub sp, #0xc + adds r4, r1, #0 + adds r5, r2, #0 + ldr r1, [sp, #0x18] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r4, #0x18 + lsls r5, r5, #0x18 + lsls r3, r3, #0x18 + lsls r1, r1, #0x18 + movs r2, #0xff + lsls r2, r2, #0x18 + adds r4, r4, r2 + lsrs r4, r4, #0x18 + adds r5, r5, r2 + lsrs r5, r5, #0x18 + movs r2, #0x80 + lsls r2, r2, #0x12 + adds r3, r3, r2 + lsrs r3, r3, #0x18 + str r3, [sp] + adds r1, r1, r2 + lsrs r1, r1, #0x18 + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + adds r2, r4, #0 + adds r3, r5, #0 + bl FillBgTilemapBufferRect + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WindowFunc_ClearStdWindowAndFrameToTransparent + + thumb_func_start sub_081981B4 +sub_081981B4: @ 0x081981B4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + ldr r4, [sp, #0x20] + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + lsls r3, r3, #0x18 + lsrs r5, r3, #0x18 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + mov r0, sp + movs r1, #0 + movs r2, #8 + bl memset + cmp r6, #3 + bls _081981EA + movs r1, #0 + mov r0, sp + strb r1, [r0] + b _081981EE +_081981EA: + mov r0, sp + strb r6, [r0] +_081981EE: + mov r1, sp + mov r0, r8 + strb r0, [r1, #2] + movs r0, #2 + strb r0, [r1, #4] + movs r0, #0x1e + subs r0, r0, r7 + strb r0, [r1, #1] + strb r7, [r1, #3] + strb r5, [r1, #5] + strh r4, [r1, #6] + ldr r4, _08198218 + mov r0, sp + bl AddWindow + strb r0, [r4] + cmp r5, #0xf + bls _0819821C + movs r5, #0xf0 + b _08198220 + .align 2, 0 +_08198218: .4byte 0x0203CA6C +_0819821C: + lsls r0, r5, #0x1c + lsrs r5, r0, #0x18 +_08198220: + ldr r0, _0819823C + adds r1, r5, #0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _08198240 + ldrb r0, [r0] + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0819823C: .4byte 0x085D7B48 +_08198240: .4byte 0x0203CA6C + thumb_func_end sub_081981B4 + + thumb_func_start sub_08198244 +sub_08198244: @ 0x08198244 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + adds r6, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + movs r5, #0 + ldr r4, _081982E0 + ldrb r0, [r4] + cmp r0, #0xff + beq _081982D4 + bl PutWindowTilemap + ldrb r0, [r4] + movs r1, #0xff + bl FillWindowPixelBuffer + adds r0, r6, #0 + bl StringLength + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r1, r4, #0 + lsls r7, r7, #0x18 + cmp r5, r4 + bhs _08198298 +_08198280: + adds r0, r6, r5 + ldrb r0, [r0] + cmp r0, #0xf8 + bne _0819828E + subs r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_0819828E: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, r1 + blo _08198280 +_08198298: + lsls r0, r4, #0x13 + lsrs r4, r0, #0x10 + ldr r5, _081982E0 + ldrb r0, [r5] + movs r1, #1 + bl GetWindowAttribute + movs r2, #0xec + mov r1, r8 + subs r2, r2, r1 + lsls r0, r0, #3 + subs r2, r2, r0 + subs r2, r2, r4 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r0, [r5] + ldr r1, _081982E4 + str r1, [sp] + movs r1, #0 + str r1, [sp, #4] + str r6, [sp, #8] + movs r3, #1 + bl AddTextPrinterParameterized3 + cmp r7, #0 + beq _081982D4 + ldrb r0, [r5] + movs r1, #3 + bl CopyWindowToVram +_081982D4: + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081982E0: .4byte 0x0203CA6C +_081982E4: .4byte 0x085D7B68 + thumb_func_end sub_08198244 + + thumb_func_start sub_081982E8 +sub_081982E8: @ 0x081982E8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x18 + mov sb, r0 + adds r6, r1, #0 + ldr r0, [sp, #0x34] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r8, r3 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r5, #0 + ldr r0, _0819831C + ldrb r0, [r0] + cmp r0, #0xff + beq _081983C8 + cmp r2, #0 + beq _08198320 + add r0, sp, #0x14 + strb r5, [r0] + adds r1, r0, #0 + b _08198326 + .align 2, 0 +_0819831C: .4byte 0x0203CA6C +_08198320: + add r1, sp, #0x14 + movs r0, #0xf + strb r0, [r1] +_08198326: + movs r0, #1 + strb r0, [r1, #1] + movs r0, #2 + strb r0, [r1, #2] + ldr r4, _081983D8 + ldrb r0, [r4] + bl PutWindowTilemap + ldrb r0, [r4] + movs r1, #0xff + bl FillWindowPixelBuffer + lsls r7, r7, #0x18 + cmp r6, #0 + beq _0819839E + adds r0, r6, #0 + bl StringLength + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r2, r5, #0 + movs r1, #0 + cmp r1, r5 + bhs _0819836E +_08198356: + adds r0, r6, r1 + ldrb r0, [r0] + cmp r0, #0xf8 + bne _08198364 + subs r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_08198364: + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, r2 + blo _08198356 +_0819836E: + lsls r0, r5, #0x13 + lsrs r5, r0, #0x10 + ldr r4, _081983D8 + ldrb r0, [r4] + movs r1, #1 + bl GetWindowAttribute + movs r2, #0xec + mov r1, r8 + subs r2, r2, r1 + lsls r0, r0, #3 + subs r2, r2, r0 + subs r2, r2, r5 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r0, [r4] + add r1, sp, #0x14 + str r1, [sp] + movs r1, #0 + str r1, [sp, #4] + str r6, [sp, #8] + movs r3, #1 + bl AddTextPrinterParameterized3 +_0819839E: + ldr r4, _081983D8 + ldrb r0, [r4] + movs r1, #0 + str r1, [sp] + str r1, [sp, #4] + add r2, sp, #0x14 + str r2, [sp, #8] + str r1, [sp, #0xc] + mov r1, sb + str r1, [sp, #0x10] + movs r1, #1 + movs r2, #4 + movs r3, #1 + bl AddTextPrinterParameterized4 + cmp r7, #0 + beq _081983C8 + ldrb r0, [r4] + movs r1, #3 + bl CopyWindowToVram +_081983C8: + add sp, #0x18 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081983D8: .4byte 0x0203CA6C + thumb_func_end sub_081982E8 + + thumb_func_start sub_081983DC +sub_081983DC: @ 0x081983DC + push {lr} + ldr r1, _081983F0 + ldrb r0, [r1] + cmp r0, #0xff + beq _081983EC + movs r1, #3 + bl CopyWindowToVram +_081983EC: + pop {r0} + bx r0 + .align 2, 0 +_081983F0: .4byte 0x0203CA6C + thumb_func_end sub_081983DC + + thumb_func_start sub_081983F4 +sub_081983F4: @ 0x081983F4 + push {r4, lr} + ldr r4, _08198414 + ldrb r0, [r4] + cmp r0, #0xff + beq _0819840C + movs r1, #0xff + bl FillWindowPixelBuffer + ldrb r0, [r4] + movs r1, #3 + bl CopyWindowToVram +_0819840C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08198414: .4byte 0x0203CA6C + thumb_func_end sub_081983F4 + + thumb_func_start sub_08198418 +sub_08198418: @ 0x08198418 + push {r4, lr} + ldr r4, _08198448 + ldrb r0, [r4] + cmp r0, #0xff + beq _08198440 + movs r1, #0 + bl FillWindowPixelBuffer + ldrb r0, [r4] + bl ClearWindowTilemap + ldrb r0, [r4] + movs r1, #3 + bl CopyWindowToVram + ldrb r0, [r4] + bl RemoveWindow + movs r0, #0xff + strb r0, [r4] +_08198440: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08198448: .4byte 0x0203CA6C + thumb_func_end sub_08198418 + + thumb_func_start sub_0819844C +sub_0819844C: @ 0x0819844C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r4, [sp, #0x18] + mov r8, r4 + ldr r4, [sp, #0x1c] + ldr r5, [sp, #0x20] + ldr r6, [sp, #0x24] + mov ip, r6 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r7, r5, #0x18 + ldr r5, _08198490 + movs r6, #0 + strb r2, [r5] + strb r3, [r5, #1] + strb r6, [r5, #3] + subs r4, #1 + strb r4, [r5, #4] + strb r0, [r5, #5] + strb r1, [r5, #6] + mov r0, r8 + strb r0, [r5, #8] + mov r4, ip + strb r4, [r5, #0xb] + cmp r7, #0 + blt _0819848C + movs r0, #4 + ldrsb r0, [r5, r0] + cmp r7, r0 + ble _08198494 +_0819848C: + strb r6, [r5, #2] + b _08198496 + .align 2, 0 +_08198490: .4byte 0x0203CA5C +_08198494: + strb r7, [r5, #2] +_08198496: + movs r0, #0 + bl Menu_MoveCursor + ldr r0, _081984AC + ldrb r0, [r0, #2] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081984AC: .4byte 0x0203CA5C + thumb_func_end sub_0819844C + + thumb_func_start sub_081984B0 +sub_081984B0: @ 0x081984B0 + push {r4, r5, r6, lr} + sub sp, #0x10 + ldr r4, [sp, #0x20] + ldr r5, [sp, #0x24] + ldr r6, [sp, #0x28] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + str r4, [sp] + str r5, [sp, #4] + str r6, [sp, #8] + movs r4, #0 + str r4, [sp, #0xc] + bl sub_0819844C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #0x10 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_081984B0 + + thumb_func_start sub_081984F0 +sub_081984F0: @ 0x081984F0 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0x14 + mov r8, r0 + adds r6, r1, #0 + ldr r4, [sp, #0x28] + ldr r5, [sp, #0x2c] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + adds r0, r6, #0 + movs r1, #1 + str r2, [sp, #0xc] + str r3, [sp, #0x10] + bl GetMenuCursorDimensionByFont + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + mov r0, r8 + adds r1, r6, #0 + ldr r2, [sp, #0xc] + ldr r3, [sp, #0x10] + bl sub_081984B0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_081984F0 + + thumb_func_start RedrawMenuCursor +RedrawMenuCursor: @ 0x0819854C + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #0x10 + adds r6, r0, #0 + mov r8, r1 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov r0, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r1, _081985E0 + add r0, sp, #0xc + movs r2, #2 + bl memcpy + ldr r4, _081985E4 + ldrb r0, [r4, #6] + movs r1, #0 + bl GetMenuCursorDimensionByFont + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldrb r0, [r4, #6] + movs r1, #1 + bl GetMenuCursorDimensionByFont + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r4, #5] + mov sb, r1 + ldrb r2, [r4] + ldrb r1, [r4, #8] + adds r3, r1, #0 + muls r3, r6, r3 + ldrb r1, [r4, #1] + adds r3, r3, r1 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + str r5, [sp] + str r0, [sp, #4] + mov r0, sb + movs r1, #0x11 + bl FillWindowPixelRect + ldrb r0, [r4, #5] + ldrb r1, [r4, #6] + ldrb r3, [r4] + ldrb r2, [r4, #8] + mov r5, r8 + muls r5, r2, r5 + adds r2, r5, #0 + ldrb r4, [r4, #1] + adds r2, r2, r4 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp] + movs r2, #0 + str r2, [sp, #4] + str r2, [sp, #8] + add r2, sp, #0xc + bl AddTextPrinterParameterized + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081985E0: .4byte 0x085D7B6C +_081985E4: .4byte 0x0203CA5C + thumb_func_end RedrawMenuCursor + + thumb_func_start Menu_MoveCursor +Menu_MoveCursor: @ 0x081985E8 + push {r4, r5, lr} + ldr r1, _08198608 + ldrb r5, [r1, #2] + movs r2, #2 + ldrsb r2, [r1, r2] + lsls r0, r0, #0x18 + asrs r3, r0, #0x18 + adds r2, r2, r3 + movs r0, #3 + ldrsb r0, [r1, r0] + adds r4, r1, #0 + cmp r2, r0 + bge _0819860C + ldrb r0, [r4, #4] + b _0819861A + .align 2, 0 +_08198608: .4byte 0x0203CA5C +_0819860C: + movs r0, #4 + ldrsb r0, [r4, r0] + cmp r2, r0 + ble _08198618 + ldrb r0, [r4, #3] + b _0819861A +_08198618: + adds r0, r3, r5 +_0819861A: + strb r0, [r4, #2] + ldrb r1, [r4, #2] + adds r0, r5, #0 + bl RedrawMenuCursor + ldrb r0, [r4, #2] + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end Menu_MoveCursor + + thumb_func_start Menu_MoveCursorNoWrapAround +Menu_MoveCursorNoWrapAround: @ 0x0819862C + push {r4, r5, lr} + ldr r1, _0819864C + ldrb r5, [r1, #2] + movs r2, #2 + ldrsb r2, [r1, r2] + lsls r0, r0, #0x18 + asrs r3, r0, #0x18 + adds r2, r2, r3 + movs r0, #3 + ldrsb r0, [r1, r0] + adds r4, r1, #0 + cmp r2, r0 + bge _08198650 + ldrb r0, [r4, #3] + b _0819865E + .align 2, 0 +_0819864C: .4byte 0x0203CA5C +_08198650: + movs r0, #4 + ldrsb r0, [r4, r0] + cmp r2, r0 + ble _0819865C + ldrb r0, [r4, #4] + b _0819865E +_0819865C: + adds r0, r3, r5 +_0819865E: + strb r0, [r4, #2] + ldrb r1, [r4, #2] + adds r0, r5, #0 + bl RedrawMenuCursor + ldrb r0, [r4, #2] + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end Menu_MoveCursorNoWrapAround + + thumb_func_start Menu_GetCursorPos +Menu_GetCursorPos: @ 0x08198670 + ldr r0, _08198678 + ldrb r0, [r0, #2] + bx lr + .align 2, 0 +_08198678: .4byte 0x0203CA5C + thumb_func_end Menu_GetCursorPos + + thumb_func_start Menu_ProcessInput +Menu_ProcessInput: @ 0x0819867C + push {r4, lr} + ldr r0, _081986A0 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081986A8 + ldr r4, _081986A4 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _08198698 + movs r0, #5 + bl PlaySE +_08198698: + movs r0, #2 + ldrsb r0, [r4, r0] + b _081986E2 + .align 2, 0 +_081986A0: .4byte 0x03002360 +_081986A4: .4byte 0x0203CA5C +_081986A8: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081986B6 + movs r0, #1 + rsbs r0, r0, #0 + b _081986E2 +_081986B6: + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _081986CA + movs r0, #5 + bl PlaySE + movs r0, #1 + rsbs r0, r0, #0 + b _081986DA +_081986CA: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _081986DE + movs r0, #5 + bl PlaySE + movs r0, #1 +_081986DA: + bl Menu_MoveCursor +_081986DE: + movs r0, #2 + rsbs r0, r0, #0 +_081986E2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end Menu_ProcessInput + + thumb_func_start Menu_ProcessInputNoWrap +Menu_ProcessInputNoWrap: @ 0x081986E8 + push {r4, r5, r6, lr} + ldr r4, _08198710 + ldrb r5, [r4, #2] + adds r6, r5, #0 + ldr r0, _08198714 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08198718 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _08198708 + movs r0, #5 + bl PlaySE +_08198708: + movs r0, #2 + ldrsb r0, [r4, r0] + b _08198760 + .align 2, 0 +_08198710: .4byte 0x0203CA5C +_08198714: .4byte 0x03002360 +_08198718: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08198726 + movs r0, #1 + rsbs r0, r0, #0 + b _08198760 +_08198726: + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08198740 + movs r0, #1 + rsbs r0, r0, #0 + bl Menu_MoveCursorNoWrapAround + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r5, r0 + beq _0819875C + b _08198756 +_08198740: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0819875C + movs r0, #1 + bl Menu_MoveCursorNoWrapAround + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r6, r0 + beq _0819875C +_08198756: + movs r0, #5 + bl PlaySE +_0819875C: + movs r0, #2 + rsbs r0, r0, #0 +_08198760: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end Menu_ProcessInputNoWrap + + thumb_func_start ProcessMenuInput_other +ProcessMenuInput_other: @ 0x08198768 + push {r4, lr} + ldr r2, _0819878C + ldrh r1, [r2, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08198794 + ldr r4, _08198790 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _08198784 + movs r0, #5 + bl PlaySE +_08198784: + movs r0, #2 + ldrsb r0, [r4, r0] + b _081987CC + .align 2, 0 +_0819878C: .4byte 0x03002360 +_08198790: .4byte 0x0203CA5C +_08198794: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081987A2 + movs r0, #1 + rsbs r0, r0, #0 + b _081987CC +_081987A2: + ldrh r0, [r2, #0x30] + movs r1, #0xf0 + ands r1, r0 + cmp r1, #0x40 + bne _081987B8 + movs r0, #5 + bl PlaySE + movs r0, #1 + rsbs r0, r0, #0 + b _081987C4 +_081987B8: + cmp r1, #0x80 + bne _081987C8 + movs r0, #5 + bl PlaySE + movs r0, #1 +_081987C4: + bl Menu_MoveCursor +_081987C8: + movs r0, #2 + rsbs r0, r0, #0 +_081987CC: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ProcessMenuInput_other + + thumb_func_start Menu_ProcessInputNoWrapAround_other +Menu_ProcessInputNoWrapAround_other: @ 0x081987D4 + push {r4, r5, r6, lr} + ldr r4, _081987FC + ldrb r5, [r4, #2] + adds r6, r5, #0 + ldr r2, _08198800 + ldrh r1, [r2, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08198804 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _081987F4 + movs r0, #5 + bl PlaySE +_081987F4: + movs r0, #2 + ldrsb r0, [r4, r0] + b _0819884A + .align 2, 0 +_081987FC: .4byte 0x0203CA5C +_08198800: .4byte 0x03002360 +_08198804: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08198812 + movs r0, #1 + rsbs r0, r0, #0 + b _0819884A +_08198812: + ldrh r0, [r2, #0x30] + movs r1, #0xf0 + ands r1, r0 + cmp r1, #0x40 + bne _0819882E + movs r0, #1 + rsbs r0, r0, #0 + bl Menu_MoveCursorNoWrapAround + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r5, r0 + beq _08198846 + b _08198840 +_0819882E: + cmp r1, #0x80 + bne _08198846 + movs r0, #1 + bl Menu_MoveCursorNoWrapAround + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r6, r0 + beq _08198846 +_08198840: + movs r0, #5 + bl PlaySE +_08198846: + movs r0, #2 + rsbs r0, r0, #0 +_0819884A: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end Menu_ProcessInputNoWrapAround_other + + thumb_func_start PrintTextArray +PrintTextArray: @ 0x08198850 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + ldr r4, [sp, #0x2c] + ldr r5, [sp, #0x30] + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sl, r1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sb, r2 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r8, r3 + lsls r4, r4, #0x18 + lsrs r7, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r4, #0 + cmp r4, r5 + bhs _081988B4 +_08198884: + lsls r0, r4, #3 + ldr r1, [sp, #0x34] + adds r0, r0, r1 + ldr r2, [r0] + adds r0, r7, #0 + muls r0, r4, r0 + add r0, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + adds r0, r6, #0 + mov r1, sl + mov r3, sb + bl AddTextPrinterParameterized + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r5 + blo _08198884 +_081988B4: + adds r0, r6, #0 + movs r1, #2 + bl CopyWindowToVram + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end PrintTextArray + + thumb_func_start sub_081988CC +sub_081988CC: @ 0x081988CC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + ldr r4, [sp, #0x40] + ldr r5, [sp, #0x44] + ldr r6, [sp, #0x4c] + ldr r7, [sp, #0x50] + mov r8, r7 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp, #0x14] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x18] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r3, [sp, #0x1c] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov sl, r4 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov sb, r6 + mov r0, r8 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r4, #0 + cmp r4, r5 + bhs _0819894C +_08198914: + lsls r0, r4, #3 + ldr r1, [sp, #0x48] + adds r0, r0, r1 + ldr r2, [r0] + mov r0, sl + muls r0, r4, r0 + ldr r1, [sp, #0x1c] + adds r0, r1, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + mov r0, sb + str r0, [sp, #0xc] + str r6, [sp, #0x10] + adds r0, r7, #0 + ldr r1, [sp, #0x14] + ldr r3, [sp, #0x18] + bl AddTextPrinterParameterized5 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r5 + blo _08198914 +_0819894C: + adds r0, r7, #0 + movs r1, #2 + bl CopyWindowToVram + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_081988CC + + thumb_func_start sub_08198964 +sub_08198964: @ 0x08198964 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + mov r8, r0 + adds r6, r1, #0 + adds r4, r2, #0 + adds r5, r3, #0 + ldr r7, [sp, #0x24] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + adds r0, r6, #0 + movs r1, #0 + bl GetFontAttribute + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r4, [sp] + str r5, [sp, #4] + str r7, [sp, #8] + mov r0, r8 + adds r1, r6, #0 + movs r3, #2 + bl PrintTextArray + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08198964 + + thumb_func_start AddItemMenuActionTextPrinters +AddItemMenuActionTextPrinters: @ 0x081989B4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + adds r6, r1, #0 + mov r8, r2 + ldr r1, [sp, #0x38] + mov sb, r1 + ldr r1, [sp, #0x3c] + ldr r2, [sp, #0x40] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x10] + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov r4, r8 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r8, r4 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r3, [sp, #0x14] + mov r0, sb + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sl, r1 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + mov r0, sp + ldrb r1, [r0, #0x10] + strb r1, [r0, #4] + strb r6, [r0, #5] + adds r0, r6, #0 + movs r1, #5 + bl GetFontAttribute + mov r3, sp + lsls r0, r0, #4 + ldrb r2, [r3, #0xc] + movs r5, #0xf + adds r1, r5, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0xc] + adds r0, r6, #0 + movs r1, #6 + bl GetFontAttribute + mov r3, sp + adds r1, r5, #0 + ands r1, r0 + ldrb r2, [r3, #0xd] + movs r4, #0x10 + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0xd] + adds r0, r6, #0 + movs r1, #7 + bl GetFontAttribute + mov r3, sp + lsls r0, r0, #4 + ldrb r2, [r3, #0xd] + adds r1, r5, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0xd] + adds r0, r6, #0 + movs r1, #4 + bl GetFontAttribute + mov r1, sp + ands r5, r0 + ldrb r0, [r1, #0xc] + ands r4, r0 + orrs r4, r5 + strb r4, [r1, #0xc] + mov r0, sp + mov r2, sb + strb r2, [r0, #0xa] + adds r0, r6, #0 + movs r1, #3 + bl GetFontAttribute + mov r1, sp + strb r0, [r1, #0xb] + mov r0, sp + mov r4, r8 + strb r4, [r0, #6] + strb r4, [r0, #8] + movs r4, #0 + cmp r4, r7 + bhs _08198AAE + mov r5, sp +_08198A7E: + ldr r1, [sp, #0x48] + adds r0, r1, r4 + ldrb r0, [r0] + lsls r0, r0, #3 + ldr r2, [sp, #0x44] + adds r0, r0, r2 + ldr r0, [r0] + str r0, [sp] + mov r0, sl + muls r0, r4, r0 + ldr r1, [sp, #0x14] + adds r0, r1, r0 + strb r0, [r5, #7] + strb r0, [r5, #9] + mov r0, sp + movs r1, #0xff + movs r2, #0 + bl AddTextPrinter + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r7 + blo _08198A7E +_08198AAE: + ldr r0, [sp, #0x10] + movs r1, #2 + bl CopyWindowToVram + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AddItemMenuActionTextPrinters + + thumb_func_start sub_08198AC8 +sub_08198AC8: @ 0x08198AC8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x14 + mov sb, r0 + adds r4, r1, #0 + adds r6, r2, #0 + mov r8, r3 + ldr r7, [sp, #0x30] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov r0, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + adds r0, r4, #0 + movs r1, #0 + bl GetFontAttribute + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + adds r0, r4, #0 + movs r1, #2 + bl GetFontAttribute + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + str r6, [sp, #4] + mov r0, r8 + str r0, [sp, #8] + str r7, [sp, #0xc] + ldr r0, [sp, #0x34] + str r0, [sp, #0x10] + mov r0, sb + adds r1, r4, #0 + adds r2, r5, #0 + movs r3, #2 + bl AddItemMenuActionTextPrinters + add sp, #0x14 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08198AC8 + + thumb_func_start SetWindowTemplateFields +SetWindowTemplateFields: @ 0x08198B34 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r4, [sp, #0x18] + ldr r5, [sp, #0x1c] + ldr r6, [sp, #0x20] + ldr r7, [sp, #0x24] + mov r8, r7 + strb r1, [r0] + strb r2, [r0, #1] + strb r3, [r0, #2] + strb r4, [r0, #3] + strb r5, [r0, #4] + strb r6, [r0, #5] + mov r1, r8 + strh r1, [r0, #6] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetWindowTemplateFields + + thumb_func_start CreateWindowTemplate +CreateWindowTemplate: @ 0x08198B60 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0x18 + mov r8, r0 + ldr r0, [sp, #0x2c] + ldr r4, [sp, #0x30] + ldr r5, [sp, #0x34] + ldr r6, [sp, #0x38] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + str r0, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + str r6, [sp, #0xc] + add r0, sp, #0x10 + bl SetWindowTemplateFields + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + mov r2, r8 + str r0, [r2] + str r1, [r2, #4] + mov r0, r8 + add sp, #0x18 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r2} + bx r2 + thumb_func_end CreateWindowTemplate + + thumb_func_start sub_08198BB4 +sub_08198BB4: @ 0x08198BB4 + push {r4, r5, r6, lr} + sub sp, #0x18 + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + ldr r0, [sp, #0x28] + ldr r1, [sp, #0x2c] + ldr r2, [sp, #0x30] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + str r3, [sp] + str r0, [sp, #4] + str r1, [sp, #8] + str r2, [sp, #0xc] + add r0, sp, #0x10 + adds r1, r4, #0 + adds r2, r5, #0 + adds r3, r6, #0 + bl SetWindowTemplateFields + add r0, sp, #0x10 + bl AddWindow + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + add sp, #0x18 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08198BB4 + + thumb_func_start sub_08198C08 +sub_08198C08: @ 0x08198C08 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + adds r6, r1, #0 + mov r8, r2 + mov sb, r3 + ldr r4, [sp, #0x3c] + ldr r5, [sp, #0x40] + ldr r1, [sp, #0x44] + mov sl, r1 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov r1, r8 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + mov r1, sb + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sb, r1 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + mov r1, sl + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sl, r1 + ldr r7, _08198D3C + bl AddWindow + strb r0, [r7] + ldrb r0, [r7] + movs r1, #1 + adds r2, r4, #0 + adds r3, r5, #0 + bl DrawStdFrameWithCustomTileAndPalette + ldr r0, _08198D40 + str r0, [sp, #0xc] + add r1, sp, #0xc + ldrb r0, [r7] + strb r0, [r1, #4] + adds r0, r1, #0 + strb r6, [r0, #5] + adds r0, r6, #0 + movs r1, #0 + bl GetFontAttribute + add r1, sp, #0xc + add r0, r8 + strb r0, [r1, #6] + adds r0, r1, #0 + mov r1, sb + strb r1, [r0, #7] + adds r1, r0, #0 + ldrb r0, [r0, #6] + strb r0, [r1, #8] + adds r0, r1, #0 + ldrb r0, [r0, #7] + strb r0, [r1, #9] + adds r0, r6, #0 + movs r1, #5 + bl GetFontAttribute + add r3, sp, #0xc + lsls r0, r0, #4 + ldrb r2, [r3, #0xc] + movs r5, #0xf + adds r1, r5, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0xc] + adds r0, r6, #0 + movs r1, #6 + bl GetFontAttribute + add r3, sp, #0xc + adds r1, r5, #0 + ands r1, r0 + ldrb r2, [r3, #0xd] + movs r4, #0x10 + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0xd] + adds r0, r6, #0 + movs r1, #7 + bl GetFontAttribute + add r3, sp, #0xc + lsls r0, r0, #4 + ldrb r2, [r3, #0xd] + adds r1, r5, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0xd] + adds r0, r6, #0 + movs r1, #4 + bl GetFontAttribute + add r1, sp, #0xc + ands r5, r0 + ldrb r0, [r1, #0xc] + ands r4, r0 + orrs r4, r5 + strb r4, [r1, #0xc] + adds r0, r6, #0 + movs r1, #2 + bl GetFontAttribute + add r1, sp, #0xc + strb r0, [r1, #0xa] + adds r0, r6, #0 + movs r1, #3 + bl GetFontAttribute + add r1, sp, #0xc + strb r0, [r1, #0xb] + adds r0, r1, #0 + movs r1, #0xff + movs r2, #0 + bl AddTextPrinter + adds r0, r6, #0 + movs r1, #1 + bl GetFontAttribute + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r7] + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + mov r0, sl + str r0, [sp, #8] + adds r0, r1, #0 + adds r1, r6, #0 + mov r2, r8 + mov r3, sb + bl sub_081984B0 + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08198D3C: .4byte 0x0203CA6B +_08198D40: .4byte 0x085D7B40 + thumb_func_end sub_08198C08 + + thumb_func_start sub_08198D44 +sub_08198D44: @ 0x08198D44 + push {lr} + sub sp, #0xc + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r2, [sp] + str r3, [sp, #4] + movs r2, #0 + str r2, [sp, #8] + movs r3, #2 + bl sub_08198C08 + add sp, #0xc + pop {r0} + bx r0 + thumb_func_end sub_08198D44 + + thumb_func_start Menu_ProcessInputNoWrapClearOnChoose +Menu_ProcessInputNoWrapClearOnChoose: @ 0x08198D68 + push {r4, lr} + bl Menu_ProcessInputNoWrap + lsls r0, r0, #0x18 + asrs r4, r0, #0x18 + movs r0, #2 + rsbs r0, r0, #0 + cmp r4, r0 + beq _08198D7E + bl sub_08198D88 +_08198D7E: + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end Menu_ProcessInputNoWrapClearOnChoose + + thumb_func_start sub_08198D88 +sub_08198D88: @ 0x08198D88 + push {r4, lr} + ldr r4, _08198DA0 + ldrb r0, [r4] + movs r1, #1 + bl ClearStdWindowAndFrameToTransparent + ldrb r0, [r4] + bl RemoveWindow + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08198DA0: .4byte 0x0203CA6B + thumb_func_end sub_08198D88 + + thumb_func_start sub_08198DA4 +sub_08198DA4: @ 0x08198DA4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + ldr r4, [sp, #0x40] + ldr r5, [sp, #0x44] + ldr r6, [sp, #0x48] + ldr r7, [sp, #0x4c] + mov r8, r7 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp, #0xc] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x10] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r3, [sp, #0x14] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r4, [sp, #0x18] + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + str r5, [sp, #0x1c] + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov r0, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + movs r5, #0 + cmp r5, sb + bhs _08198E4A +_08198DF0: + movs r4, #0 + adds r1, r5, #1 + mov r8, r1 + cmp r4, r6 + bhs _08198E40 + ldr r7, [sp, #0x1c] + adds r0, r7, #0 + muls r0, r5, r0 + ldr r1, [sp, #0x14] + adds r0, r1, r0 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 +_08198E08: + adds r0, r5, #0 + muls r0, r6, r0 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, [sp, #0x50] + adds r0, r0, r1 + ldr r2, [r0] + ldr r0, [sp, #0x18] + adds r3, r0, #0 + muls r3, r4, r3 + ldr r1, [sp, #0x10] + adds r3, r1, r3 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r7, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + mov r0, sl + ldr r1, [sp, #0xc] + bl AddTextPrinterParameterized + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r6 + blo _08198E08 +_08198E40: + mov r7, r8 + lsls r0, r7, #0x18 + lsrs r5, r0, #0x18 + cmp r5, sb + blo _08198DF0 +_08198E4A: + mov r0, sl + movs r1, #2 + bl CopyWindowToVram + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08198DA4 + + thumb_func_start sub_08198E64 +sub_08198E64: @ 0x08198E64 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x18 + mov sb, r0 + mov r8, r1 + adds r4, r2, #0 + adds r5, r3, #0 + ldr r6, [sp, #0x34] + ldr r3, [sp, #0x38] + ldr r7, [sp, #0x3c] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + mov r0, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r1, #0 + str r3, [sp, #0x14] + bl GetFontAttribute + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r4, [sp] + str r5, [sp, #4] + str r6, [sp, #8] + ldr r3, [sp, #0x14] + str r3, [sp, #0xc] + str r7, [sp, #0x10] + mov r0, sb + mov r1, r8 + movs r3, #0 + bl sub_08198DA4 + add sp, #0x18 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08198E64 + + thumb_func_start sub_08198ECC +sub_08198ECC: @ 0x08198ECC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + ldr r4, [sp, #0x40] + ldr r5, [sp, #0x44] + ldr r6, [sp, #0x48] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x10] + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x14] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r3, [sp, #0x18] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r4, [sp, #0x1c] + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + mov r8, r5 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov sl, r6 + mov r0, sp + ldrb r1, [r0, #0x10] + strb r1, [r0, #4] + strb r7, [r0, #5] + adds r0, r7, #0 + movs r1, #5 + bl GetFontAttribute + mov r3, sp + lsls r0, r0, #4 + ldrb r2, [r3, #0xc] + movs r5, #0xf + adds r1, r5, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0xc] + adds r0, r7, #0 + movs r1, #6 + bl GetFontAttribute + mov r3, sp + adds r1, r5, #0 + ands r1, r0 + ldrb r2, [r3, #0xd] + movs r4, #0x10 + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0xd] + adds r0, r7, #0 + movs r1, #7 + bl GetFontAttribute + mov r3, sp + lsls r0, r0, #4 + ldrb r2, [r3, #0xd] + adds r1, r5, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0xd] + adds r0, r7, #0 + movs r1, #4 + bl GetFontAttribute + mov r1, sp + ands r5, r0 + ldrb r0, [r1, #0xc] + ands r4, r0 + orrs r4, r5 + strb r4, [r1, #0xc] + adds r0, r7, #0 + movs r1, #2 + bl GetFontAttribute + mov r1, sp + strb r0, [r1, #0xa] + adds r0, r7, #0 + movs r1, #3 + bl GetFontAttribute + mov r1, sp + strb r0, [r1, #0xb] + movs r6, #0 + cmp r6, sl + bhs _08198FEE +_08198F8A: + movs r5, #0 + adds r2, r6, #1 + mov sb, r2 + cmp r5, r8 + bhs _08198FE4 + mov r4, sp +_08198F96: + mov r0, r8 + muls r0, r6, r0 + adds r0, r0, r5 + ldr r1, [sp, #0x50] + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, r0, #3 + ldr r2, [sp, #0x4c] + adds r0, r0, r2 + ldr r0, [r0] + str r0, [sp] + ldr r1, [sp, #0x1c] + adds r0, r1, #0 + muls r0, r5, r0 + ldr r2, [sp, #0x14] + adds r0, r2, r0 + strb r0, [r4, #6] + adds r0, r7, #0 + movs r1, #1 + bl GetFontAttribute + adds r1, r6, #0 + muls r1, r0, r1 + ldr r0, [sp, #0x18] + adds r1, r0, r1 + strb r1, [r4, #7] + ldrb r0, [r4, #6] + strb r0, [r4, #8] + strb r1, [r4, #9] + mov r0, sp + movs r1, #0xff + movs r2, #0 + bl AddTextPrinter + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, r8 + blo _08198F96 +_08198FE4: + mov r1, sb + lsls r0, r1, #0x18 + lsrs r6, r0, #0x18 + cmp r6, sl + blo _08198F8A +_08198FEE: + ldr r0, [sp, #0x10] + movs r1, #2 + bl CopyWindowToVram + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08198ECC + + thumb_func_start sub_08199008 +sub_08199008: @ 0x08199008 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x18 + mov r8, r0 + adds r3, r1, #0 + adds r4, r2, #0 + ldr r5, [sp, #0x30] + ldr r6, [sp, #0x34] + ldr r7, [sp, #0x38] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + adds r0, r3, #0 + movs r1, #0 + str r3, [sp, #0x14] + bl GetFontAttribute + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r4, [sp] + str r5, [sp, #4] + str r6, [sp, #8] + str r7, [sp, #0xc] + ldr r0, [sp, #0x3c] + str r0, [sp, #0x10] + mov r0, r8 + ldr r3, [sp, #0x14] + adds r1, r3, #0 + movs r3, #0 + bl sub_08198ECC + add sp, #0x18 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08199008 + + thumb_func_start sub_08199068 +sub_08199068: @ 0x08199068 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r4, [sp, #0x20] + mov ip, r4 + ldr r4, [sp, #0x24] + mov r8, r4 + ldr r4, [sp, #0x28] + mov sb, r4 + ldr r4, [sp, #0x2c] + mov sl, r4 + ldr r4, [sp, #0x30] + ldr r5, [sp, #0x34] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r7, r5, #0x18 + ldr r5, _081990C0 + movs r6, #0 + strb r2, [r5] + strb r3, [r5, #1] + strb r6, [r5, #3] + subs r4, #1 + strb r4, [r5, #4] + strb r0, [r5, #5] + strb r1, [r5, #6] + mov r0, ip + strb r0, [r5, #7] + mov r4, r8 + strb r4, [r5, #8] + mov r0, sb + strb r0, [r5, #9] + mov r4, sl + strb r4, [r5, #0xa] + cmp r7, #0 + blt _081990BC + movs r0, #4 + ldrsb r0, [r5, r0] + cmp r7, r0 + ble _081990C4 +_081990BC: + strb r6, [r5, #2] + b _081990C6 + .align 2, 0 +_081990C0: .4byte 0x0203CA5C +_081990C4: + strb r7, [r5, #2] +_081990C6: + movs r0, #0 + movs r1, #0 + bl sub_08199250 + ldr r0, _081990E0 + ldrb r0, [r0, #2] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081990E0: .4byte 0x0203CA5C + thumb_func_end sub_08199068 + + thumb_func_start sub_081990E4 +sub_081990E4: @ 0x081990E4 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + sub sp, #0x20 + mov sb, r0 + mov r8, r1 + mov sl, r2 + ldr r6, [sp, #0x3c] + ldr r4, [sp, #0x40] + ldr r5, [sp, #0x44] + ldr r2, [sp, #0x48] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + mov r0, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + mov r0, sl + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r0, r8 + movs r1, #1 + str r2, [sp, #0x18] + str r3, [sp, #0x1c] + bl GetMenuCursorDimensionByFont + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r4, #0 + muls r1, r5, r1 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r6, [sp] + str r0, [sp, #4] + str r4, [sp, #8] + str r5, [sp, #0xc] + str r1, [sp, #0x10] + ldr r2, [sp, #0x18] + str r2, [sp, #0x14] + mov r0, sb + mov r1, r8 + mov r2, sl + ldr r3, [sp, #0x1c] + bl sub_08199068 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081990E4 + + thumb_func_start sub_08199170 +sub_08199170: @ 0x08199170 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + mov sb, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + lsls r0, r1, #0x18 + lsrs r7, r0, #0x18 + ldr r1, _08199248 + add r0, sp, #0xc + movs r2, #2 + bl memcpy + ldr r5, _0819924C + ldrb r0, [r5, #6] + movs r1, #0 + bl GetMenuCursorDimensionByFont + mov r8, r0 + mov r1, r8 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + ldrb r0, [r5, #6] + movs r1, #1 + bl GetMenuCursorDimensionByFont + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + ldrb r0, [r5, #9] + mov sl, r0 + mov r0, sb + mov r1, sl + bl __umodsi3 + ldrb r1, [r5, #7] + adds r4, r1, #0 + muls r4, r0, r4 + ldrb r1, [r5] + adds r4, r4, r1 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r0, sb + mov r1, sl + bl __udivsi3 + ldrb r1, [r5, #8] + adds r3, r1, #0 + muls r3, r0, r3 + ldrb r0, [r5, #1] + adds r3, r3, r0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldrb r0, [r5, #5] + mov r1, r8 + str r1, [sp] + str r6, [sp, #4] + movs r1, #0x11 + adds r2, r4, #0 + bl FillWindowPixelRect + ldrb r6, [r5, #9] + adds r0, r7, #0 + adds r1, r6, #0 + bl __umodsi3 + ldrb r1, [r5, #7] + adds r4, r1, #0 + muls r4, r0, r4 + ldrb r0, [r5] + adds r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r7, #0 + adds r1, r6, #0 + bl __udivsi3 + ldrb r1, [r5, #8] + adds r2, r1, #0 + muls r2, r0, r2 + ldrb r1, [r5, #1] + adds r2, r2, r1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r0, [r5, #5] + ldrb r1, [r5, #6] + str r2, [sp] + movs r2, #0 + str r2, [sp, #4] + str r2, [sp, #8] + add r2, sp, #0xc + adds r3, r4, #0 + bl AddTextPrinterParameterized + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08199248: .4byte 0x085D7B6C +_0819924C: .4byte 0x0203CA5C + thumb_func_end sub_08199170 + + thumb_func_start sub_08199250 +sub_08199250: @ 0x08199250 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sb, r1 + ldr r1, _0819928C + ldrb r2, [r1, #2] + mov r8, r2 + lsls r0, r0, #0x18 + asrs r6, r0, #0x18 + adds r5, r1, #0 + cmp r6, #0 + beq _081992A6 + movs r7, #2 + ldrsb r7, [r5, r7] + ldrb r4, [r5, #9] + adds r0, r7, #0 + adds r1, r4, #0 + bl __modsi3 + adds r0, r0, r6 + cmp r0, #0 + bge _08199290 + adds r0, r4, #0 + adds r0, #0xff + add r0, r8 + b _081992A4 + .align 2, 0 +_0819928C: .4byte 0x0203CA5C +_08199290: + cmp r0, r4 + blt _081992A0 + adds r0, r7, #0 + adds r1, r4, #0 + bl __divsi3 + muls r0, r4, r0 + b _081992A4 +_081992A0: + mov r1, r8 + adds r0, r6, r1 +_081992A4: + strb r0, [r5, #2] +_081992A6: + mov r2, sb + lsls r0, r2, #0x18 + asrs r6, r0, #0x18 + cmp r6, #0 + beq _081992EA + movs r0, #2 + ldrsb r0, [r5, r0] + ldrb r4, [r5, #9] + adds r1, r4, #0 + bl __divsi3 + adds r1, r0, r6 + cmp r1, #0 + bge _081992CE + ldrb r0, [r5, #0xa] + subs r0, #1 + muls r0, r4, r0 + ldrb r1, [r5, #2] + adds r0, r0, r1 + b _081992E8 +_081992CE: + ldrb r0, [r5, #0xa] + cmp r1, r0 + blt _081992E0 + subs r0, #1 + adds r1, r4, #0 + muls r1, r0, r1 + ldrb r0, [r5, #2] + subs r0, r0, r1 + b _081992E8 +_081992E0: + adds r0, r4, #0 + muls r0, r6, r0 + ldrb r2, [r5, #2] + adds r0, r0, r2 +_081992E8: + strb r0, [r5, #2] +_081992EA: + movs r1, #2 + ldrsb r1, [r5, r1] + movs r0, #4 + ldrsb r0, [r5, r0] + cmp r1, r0 + bgt _08199300 + ldrb r1, [r5, #2] + mov r0, r8 + bl sub_08199170 + b _08199304 +_08199300: + mov r0, r8 + strb r0, [r5, #2] +_08199304: + ldrb r0, [r5, #2] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08199250 + + thumb_func_start sub_08199314 +sub_08199314: @ 0x08199314 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + ldr r1, _0819938C + ldrb r7, [r1, #2] + lsls r0, r0, #0x18 + asrs r4, r0, #0x18 + adds r5, r1, #0 + cmp r4, #0 + beq _08199348 + movs r0, #2 + ldrsb r0, [r5, r0] + ldrb r6, [r5, #9] + adds r1, r6, #0 + bl __modsi3 + adds r0, r0, r4 + cmp r0, #0 + blt _08199348 + cmp r0, r6 + bge _08199348 + adds r0, r4, r7 + strb r0, [r5, #2] +_08199348: + mov r1, r8 + lsls r0, r1, #0x18 + asrs r4, r0, #0x18 + cmp r4, #0 + beq _08199374 + movs r0, #2 + ldrsb r0, [r5, r0] + ldrb r6, [r5, #9] + adds r1, r6, #0 + bl __divsi3 + adds r0, r0, r4 + cmp r0, #0 + blt _08199374 + ldrb r1, [r5, #0xa] + cmp r0, r1 + bge _08199374 + adds r0, r6, #0 + muls r0, r4, r0 + ldrb r1, [r5, #2] + adds r0, r0, r1 + strb r0, [r5, #2] +_08199374: + movs r1, #2 + ldrsb r1, [r5, r1] + movs r0, #4 + ldrsb r0, [r5, r0] + cmp r1, r0 + bgt _08199390 + ldrb r1, [r5, #2] + adds r0, r7, #0 + bl sub_08199170 + b _08199392 + .align 2, 0 +_0819938C: .4byte 0x0203CA5C +_08199390: + strb r7, [r5, #2] +_08199392: + ldrb r0, [r5, #2] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08199314 + + thumb_func_start sub_081993A0 +sub_081993A0: @ 0x081993A0 + push {r4, lr} + ldr r4, _081993C0 + ldrh r1, [r4, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081993C8 + movs r0, #5 + bl PlaySE + ldr r0, _081993C4 + ldrb r0, [r0, #2] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + b _08199448 + .align 2, 0 +_081993C0: .4byte 0x03002360 +_081993C4: .4byte 0x0203CA5C +_081993C8: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081993D6 + movs r0, #1 + rsbs r0, r0, #0 + b _08199448 +_081993D6: + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _081993EC + movs r0, #5 + bl PlaySE + movs r1, #1 + rsbs r1, r1, #0 + movs r0, #0 + b _08199440 +_081993EC: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08199400 + movs r0, #5 + bl PlaySE + movs r0, #0 + movs r1, #1 + b _08199440 +_08199400: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _08199414 + bl GetLRKeysState + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08199420 +_08199414: + movs r0, #5 + bl PlaySE + movs r0, #1 + rsbs r0, r0, #0 + b _0819943E +_08199420: + ldrh r1, [r4, #0x2e] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _08199436 + bl GetLRKeysState + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _08199444 +_08199436: + movs r0, #5 + bl PlaySE + movs r0, #1 +_0819943E: + movs r1, #0 +_08199440: + bl sub_08199250 +_08199444: + movs r0, #2 + rsbs r0, r0, #0 +_08199448: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081993A0 + + thumb_func_start Menu_ProcessInputGridLayout +Menu_ProcessInputGridLayout: @ 0x08199450 + push {r4, r5, r6, lr} + ldr r5, _08199470 + ldrb r4, [r5, #2] + ldr r6, _08199474 + ldrh r1, [r6, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08199478 + movs r0, #5 + bl PlaySE + movs r0, #2 + ldrsb r0, [r5, r0] + b _081994EE + .align 2, 0 +_08199470: .4byte 0x0203CA5C +_08199474: .4byte 0x03002360 +_08199478: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08199486 + movs r0, #1 + rsbs r0, r0, #0 + b _081994EE +_08199486: + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08199496 + movs r1, #1 + rsbs r1, r1, #0 + movs r0, #0 + b _081994D8 +_08199496: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _081994A4 + movs r0, #0 + movs r1, #1 + b _081994D8 +_081994A4: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _081994B8 + bl GetLRKeysState + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081994BE +_081994B8: + movs r0, #1 + rsbs r0, r0, #0 + b _081994D6 +_081994BE: + ldrh r1, [r6, #0x2e] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _081994D4 + bl GetLRKeysState + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _081994EA +_081994D4: + movs r0, #1 +_081994D6: + movs r1, #0 +_081994D8: + bl sub_08199314 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + beq _081994EA + movs r0, #5 + bl PlaySE +_081994EA: + movs r0, #2 + rsbs r0, r0, #0 +_081994EE: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end Menu_ProcessInputGridLayout + + thumb_func_start sub_081994F4 +sub_081994F4: @ 0x081994F4 + push {r4, r5, lr} + ldr r4, _08199514 + ldrh r1, [r4, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0819951C + movs r0, #5 + bl PlaySE + ldr r0, _08199518 + ldrb r0, [r0, #2] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + b _08199598 + .align 2, 0 +_08199514: .4byte 0x03002360 +_08199518: .4byte 0x0203CA5C +_0819951C: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0819952A + movs r0, #1 + rsbs r0, r0, #0 + b _08199598 +_0819952A: + ldrh r0, [r4, #0x30] + movs r5, #0xf0 + adds r1, r5, #0 + ands r1, r0 + cmp r1, #0x40 + bne _08199544 + movs r0, #5 + bl PlaySE + movs r1, #1 + rsbs r1, r1, #0 + movs r0, #0 + b _08199590 +_08199544: + cmp r1, #0x80 + bne _08199554 + movs r0, #5 + bl PlaySE + movs r0, #0 + movs r1, #1 + b _08199590 +_08199554: + cmp r1, #0x20 + beq _08199564 + bl sub_08122118 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08199570 +_08199564: + movs r0, #5 + bl PlaySE + movs r0, #1 + rsbs r0, r0, #0 + b _0819958E +_08199570: + ldrh r1, [r4, #0x30] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0x10 + beq _08199586 + bl sub_08122118 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _08199594 +_08199586: + movs r0, #5 + bl PlaySE + movs r0, #1 +_0819958E: + movs r1, #0 +_08199590: + bl sub_08199250 +_08199594: + movs r0, #2 + rsbs r0, r0, #0 +_08199598: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081994F4 + + thumb_func_start sub_081995A0 +sub_081995A0: @ 0x081995A0 + push {r4, r5, r6, lr} + ldr r6, _081995C0 + ldrb r4, [r6, #2] + ldr r5, _081995C4 + ldrh r1, [r5, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081995C8 + movs r0, #5 + bl PlaySE + movs r0, #2 + ldrsb r0, [r6, r0] + b _0819963A + .align 2, 0 +_081995C0: .4byte 0x0203CA5C +_081995C4: .4byte 0x03002360 +_081995C8: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081995D6 + movs r0, #1 + rsbs r0, r0, #0 + b _0819963A +_081995D6: + ldrh r0, [r5, #0x30] + movs r6, #0xf0 + adds r1, r6, #0 + ands r1, r0 + cmp r1, #0x40 + bne _081995EA + movs r1, #1 + rsbs r1, r1, #0 + movs r0, #0 + b _08199624 +_081995EA: + cmp r1, #0x80 + bne _081995F4 + movs r0, #0 + movs r1, #1 + b _08199624 +_081995F4: + cmp r1, #0x20 + beq _08199604 + bl sub_08122118 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0819960A +_08199604: + movs r0, #1 + rsbs r0, r0, #0 + b _08199622 +_0819960A: + ldrh r1, [r5, #0x30] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0x10 + beq _08199620 + bl sub_08122118 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _08199636 +_08199620: + movs r0, #1 +_08199622: + movs r1, #0 +_08199624: + bl sub_08199314 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + beq _08199636 + movs r0, #5 + bl PlaySE +_08199636: + movs r0, #2 + rsbs r0, r0, #0 +_0819963A: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_081995A0 + + thumb_func_start clear_scheduled_bg_copies_to_vram +clear_scheduled_bg_copies_to_vram: @ 0x08199640 + push {lr} + ldr r0, _08199650 + movs r1, #0 + movs r2, #4 + bl memset + pop {r0} + bx r0 + .align 2, 0 +_08199650: .4byte 0x0203CA70 + thumb_func_end clear_scheduled_bg_copies_to_vram + + thumb_func_start schedule_bg_copy_tilemap_to_vram +schedule_bg_copy_tilemap_to_vram: @ 0x08199654 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08199664 + adds r0, r0, r1 + movs r1, #1 + strb r1, [r0] + bx lr + .align 2, 0 +_08199664: .4byte 0x0203CA70 + thumb_func_end schedule_bg_copy_tilemap_to_vram + + thumb_func_start do_scheduled_bg_tilemap_copies_to_vram +do_scheduled_bg_tilemap_copies_to_vram: @ 0x08199668 + push {r4, lr} + ldr r4, _081996B4 + ldrb r0, [r4] + cmp r0, #1 + bne _0819967C + movs r0, #0 + bl CopyBgTilemapBufferToVram + movs r0, #0 + strb r0, [r4] +_0819967C: + ldrb r0, [r4, #1] + cmp r0, #1 + bne _0819968C + movs r0, #1 + bl CopyBgTilemapBufferToVram + movs r0, #0 + strb r0, [r4, #1] +_0819968C: + ldrb r0, [r4, #2] + cmp r0, #1 + bne _0819969C + movs r0, #2 + bl CopyBgTilemapBufferToVram + movs r0, #0 + strb r0, [r4, #2] +_0819969C: + ldrb r0, [r4, #3] + cmp r0, #1 + bne _081996AC + movs r0, #3 + bl CopyBgTilemapBufferToVram + movs r0, #0 + strb r0, [r4, #3] +_081996AC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081996B4: .4byte 0x0203CA70 + thumb_func_end do_scheduled_bg_tilemap_copies_to_vram + + thumb_func_start reset_temp_tile_data_buffers +reset_temp_tile_data_buffers: @ 0x081996B8 + push {lr} + ldr r3, _081996D4 + ldr r1, _081996D8 + movs r2, #0 + adds r0, r1, #0 + adds r0, #0x7c +_081996C4: + str r2, [r0] + subs r0, #4 + cmp r0, r1 + bge _081996C4 + movs r0, #0 + strh r0, [r3] + pop {r0} + bx r0 + .align 2, 0 +_081996D4: .4byte 0x0203CA74 +_081996D8: .4byte 0x0203CA78 + thumb_func_end reset_temp_tile_data_buffers + + thumb_func_start free_temp_tile_data_buffers_if_possible +free_temp_tile_data_buffers_if_possible: @ 0x081996DC + push {r4, r5, r6, lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08199720 + ldr r1, _08199718 + ldrh r0, [r1] + cmp r0, #0 + beq _08199714 + movs r4, #0 + ldrh r1, [r1] + cmp r4, r1 + bge _0819970E + ldr r5, _0819971C + movs r6, #0 +_081996FC: + ldr r0, [r5] + bl Free + stm r5!, {r6} + adds r4, #1 + ldr r0, _08199718 + ldrh r0, [r0] + cmp r4, r0 + blt _081996FC +_0819970E: + ldr r1, _08199718 + movs r0, #0 + strh r0, [r1] +_08199714: + movs r0, #0 + b _08199722 + .align 2, 0 +_08199718: .4byte 0x0203CA74 +_0819971C: .4byte 0x0203CA78 +_08199720: + movs r0, #1 +_08199722: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end free_temp_tile_data_buffers_if_possible + + thumb_func_start decompress_and_copy_tile_data_to_vram +decompress_and_copy_tile_data_to_vram: @ 0x08199728 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #8 + adds r4, r1, #0 + adds r5, r2, #0 + ldr r1, [sp, #0x24] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + mov sb, r3 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + ldr r6, _08199788 + ldrh r0, [r6] + cmp r0, #0x1f + bhi _08199790 + adds r0, r4, #0 + add r1, sp, #4 + bl malloc_and_decompress + adds r4, r0, #0 + cmp r5, #0 + bne _08199760 + ldr r5, [sp, #4] +_08199760: + cmp r4, #0 + beq _08199784 + lsls r2, r5, #0x10 + lsrs r2, r2, #0x10 + str r7, [sp] + mov r0, r8 + adds r1, r4, #0 + mov r3, sb + bl copy_decompressed_tile_data_to_vram + ldr r2, _0819978C + ldrh r0, [r6] + adds r1, r0, #1 + strh r1, [r6] + lsls r0, r0, #0x10 + lsrs r0, r0, #0xe + adds r0, r0, r2 + str r4, [r0] +_08199784: + adds r0, r4, #0 + b _08199792 + .align 2, 0 +_08199788: .4byte 0x0203CA74 +_0819978C: .4byte 0x0203CA78 +_08199790: + movs r0, #0 +_08199792: + add sp, #8 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end decompress_and_copy_tile_data_to_vram + + thumb_func_start DecompressAndLoadBgGfxUsingHeap +DecompressAndLoadBgGfxUsingHeap: @ 0x081997A0 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #8 + adds r5, r2, #0 + ldr r2, [sp, #0x24] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + mov sb, r3 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + adds r0, r1, #0 + add r1, sp, #4 + bl malloc_and_decompress + adds r6, r0, #0 + cmp r5, #0 + bne _081997CE + ldr r5, [sp, #4] +_081997CE: + cmp r6, #0 + beq _08199806 + ldr r0, _08199814 + movs r1, #0 + bl CreateTask + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r2, r5, #0x10 + lsrs r2, r2, #0x10 + str r7, [sp] + mov r0, r8 + adds r1, r6, #0 + mov r3, sb + bl copy_decompressed_tile_data_to_vram + ldr r2, _08199818 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r0, [r1, #8] + adds r0, r4, #0 + movs r1, #1 + adds r2, r6, #0 + bl SetWordTaskArg +_08199806: + add sp, #8 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08199814: .4byte 0x0819981D +_08199818: .4byte 0x03005B60 + thumb_func_end DecompressAndLoadBgGfxUsingHeap + + thumb_func_start task_free_buf_after_copying_tile_data_to_vram +task_free_buf_after_copying_tile_data_to_vram: @ 0x0819981C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08199854 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #8 + ldrsh r0, [r0, r1] + bl CheckForSpaceForDma3Request + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0819984C + adds r0, r4, #0 + movs r1, #1 + bl GetWordTaskArg + bl Free + adds r0, r4, #0 + bl DestroyTask +_0819984C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08199854: .4byte 0x03005B60 + thumb_func_end task_free_buf_after_copying_tile_data_to_vram + + thumb_func_start malloc_and_decompress +malloc_and_decompress: @ 0x08199858 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #1] + strb r0, [r1] + ldrb r0, [r5, #2] + strb r0, [r1, #1] + ldrb r0, [r5, #3] + strb r0, [r1, #2] + movs r0, #0 + strb r0, [r1, #3] + ldr r0, [r1] + bl Alloc + adds r4, r0, #0 + cmp r4, #0 + beq _08199880 + adds r0, r5, #0 + adds r1, r4, #0 + bl LZ77UnCompWram +_08199880: + adds r0, r4, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end malloc_and_decompress + + thumb_func_start copy_decompressed_tile_data_to_vram +copy_decompressed_tile_data_to_vram: @ 0x08199888 + push {r4, lr} + adds r4, r1, #0 + ldr r1, [sp, #8] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0 + beq _081998B0 + cmp r1, #1 + beq _081998B8 + ldr r0, _081998AC + b _081998C2 + .align 2, 0 +_081998AC: .4byte 0x0000FFFF +_081998B0: + adds r1, r4, #0 + bl LoadBgTiles + b _081998BE +_081998B8: + adds r1, r4, #0 + bl LoadBgTilemap +_081998BE: + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_081998C2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end copy_decompressed_tile_data_to_vram + + thumb_func_start sub_081998C8 +sub_081998C8: @ 0x081998C8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r5, r2, #0 + ldr r4, [sp, #0x28] + ldr r2, [sp, #0x2c] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp] + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r3, [sp, #4] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sl, r2 + bl GetBgTilemapBuffer + mov r8, r0 + adds r0, r5, r4 + cmp r5, r0 + bge _08199940 + mov sb, r0 +_08199906: + ldr r3, [sp] + ldr r1, [sp, #4] + adds r0, r3, r1 + adds r7, r5, #1 + cmp r3, r0 + bge _08199938 + lsls r6, r5, #5 + ldr r1, _08199950 + mov ip, r1 + mov r1, sl + lsls r5, r1, #0xc + adds r4, r0, #0 +_0819991E: + adds r1, r6, r3 + lsls r1, r1, #1 + add r1, r8 + ldrh r2, [r1] + mov r0, ip + ands r0, r2 + orrs r0, r5 + strh r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, r4 + blt _0819991E +_08199938: + lsls r0, r7, #0x18 + lsrs r5, r0, #0x18 + cmp r5, sb + blt _08199906 +_08199940: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08199950: .4byte 0x00000FFF + thumb_func_end sub_081998C8 + + thumb_func_start sub_08199954 +sub_08199954: @ 0x08199954 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov sl, r1 + ldr r1, [sp, #0x24] + ldr r4, [sp, #0x28] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sb, r2 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r3, [sp] + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r8, r4 + bl GetBgTilemapBuffer + adds r7, r0, #0 + movs r0, #0 + cmp r0, r8 + bhs _081999C2 +_0819998C: + movs r2, #0 + adds r6, r0, #1 + cmp r2, r5 + bhs _081999BA + adds r4, r0, #0 + muls r4, r5, r4 + ldr r1, [sp] + adds r0, r0, r1 + lsls r3, r0, #5 +_0819999E: + adds r1, r4, r2 + lsls r1, r1, #1 + add r1, sl + adds r0, r3, r2 + add r0, sb + lsls r0, r0, #1 + adds r0, r0, r7 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, r5 + blo _0819999E +_081999BA: + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r8 + blo _0819998C +_081999C2: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08199954 + + thumb_func_start sub_081999D4 +sub_081999D4: @ 0x081999D4 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r5, r1, #0 + ldr r0, [sp, #0x14] + adds r4, r2, #0 + muls r4, r3, r4 + cmp r0, #1 + bne _081999FC + adds r3, r6, #0 + movs r2, #0 + cmp r2, r4 + bge _08199A24 +_081999EC: + adds r1, r3, r2 + ldrb r0, [r1] + adds r0, r0, r5 + strb r0, [r1] + adds r2, #1 + cmp r2, r4 + blt _081999EC + b _08199A24 +_081999FC: + cmp r4, #0 + ble _08199A24 + movs r0, #0xfc + lsls r0, r0, #8 + mov ip, r0 + ldr r0, _08199A2C + adds r7, r0, #0 + adds r3, r6, #0 + adds r2, r4, #0 +_08199A0E: + ldrh r0, [r3] + mov r1, ip + ands r1, r0 + adds r0, r0, r5 + ands r0, r7 + orrs r1, r0 + strh r1, [r3] + adds r3, #2 + subs r2, #1 + cmp r2, #0 + bne _08199A0E +_08199A24: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08199A2C: .4byte 0x000003FF + thumb_func_end sub_081999D4 + + thumb_func_start ResetBgPositions +ResetBgPositions: @ 0x08199A30 + push {lr} + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ResetBgPositions + + thumb_func_start sub_08199A88 +sub_08199A88: @ 0x08199A88 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov r8, r2 + mov sb, r3 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r5, #0 + movs r1, #4 + bl GetBgAttribute + lsls r0, r0, #0x10 + movs r7, #0x40 + cmp r0, #0 + bne _08199AAE + movs r7, #0x20 +_08199AAE: + adds r0, r5, #0 + movs r1, #1 + bl GetBgAttribute + adds r4, r0, #0 + adds r0, r5, #0 + movs r1, #0xa + bl GetBgAttribute + lsls r4, r4, #0x10 + lsrs r4, r4, #2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + add r0, r8 + muls r0, r7, r0 + adds r4, r4, r0 + lsls r0, r6, #0x18 + lsls r1, r6, #0x10 + orrs r0, r1 + lsls r1, r6, #8 + orrs r0, r1 + orrs r0, r6 + movs r1, #0xc0 + lsls r1, r1, #0x13 + adds r4, r4, r1 + mov r2, sb + muls r2, r7, r2 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + adds r1, r4, #0 + movs r3, #1 + bl RequestDma3Fill + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08199A88 + + thumb_func_start AddTextPrinterParameterized3 +AddTextPrinterParameterized3: @ 0x08199AFC + push {r4, r5, r6, lr} + sub sp, #0x10 + adds r4, r1, #0 + ldr r6, [sp, #0x20] + ldr r5, [sp, #0x24] + ldr r1, [sp, #0x28] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + str r1, [sp] + mov r1, sp + strb r0, [r1, #4] + mov r0, sp + strb r4, [r0, #5] + strb r2, [r0, #6] + strb r3, [r0, #7] + ldrb r0, [r0, #6] + strb r0, [r1, #8] + mov r0, sp + ldrb r0, [r0, #7] + strb r0, [r1, #9] + adds r0, r4, #0 + movs r1, #2 + bl GetFontAttribute + mov r1, sp + strb r0, [r1, #0xa] + adds r0, r4, #0 + movs r1, #3 + bl GetFontAttribute + mov r1, sp + strb r0, [r1, #0xb] + mov r3, sp + ldrb r2, [r3, #0xc] + movs r1, #0x10 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3, #0xc] + mov r2, sp + ldrb r0, [r6, #1] + lsls r0, r0, #4 + movs r4, #0xf + strb r0, [r2, #0xc] + ldrb r2, [r6] + adds r0, r4, #0 + ands r0, r2 + ldrb r2, [r3, #0xd] + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0xd] + mov r2, sp + ldrb r0, [r6, #2] + lsls r0, r0, #4 + ands r1, r4 + orrs r1, r0 + strb r1, [r2, #0xd] + mov r0, sp + adds r1, r5, #0 + movs r2, #0 + bl AddTextPrinter + add sp, #0x10 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end AddTextPrinterParameterized3 + + thumb_func_start AddTextPrinterParameterized4 +AddTextPrinterParameterized4: @ 0x08199B84 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #0x10 + adds r5, r1, #0 + ldr r1, [sp, #0x28] + mov r8, r1 + ldr r1, [sp, #0x2c] + mov sb, r1 + ldr r6, [sp, #0x30] + ldr r1, [sp, #0x34] + ldr r4, [sp, #0x38] + str r4, [sp] + mov r4, sp + strb r0, [r4, #4] + mov r0, sp + strb r5, [r0, #5] + strb r2, [r0, #6] + strb r3, [r0, #7] + mov r2, sp + ldrb r0, [r0, #6] + strb r0, [r2, #8] + mov r0, sp + ldrb r0, [r0, #7] + strb r0, [r2, #9] + mov r0, sp + mov r2, r8 + strb r2, [r0, #0xa] + mov r2, sb + strb r2, [r0, #0xb] + ldrb r3, [r4, #0xc] + movs r2, #0x10 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r3 + strb r0, [r4, #0xc] + mov r3, sp + ldrb r0, [r6, #1] + lsls r0, r0, #4 + movs r5, #0xf + strb r0, [r3, #0xc] + ldrb r3, [r6] + adds r0, r5, #0 + ands r0, r3 + ldrb r3, [r4, #0xd] + ands r2, r3 + orrs r2, r0 + strb r2, [r4, #0xd] + mov r3, sp + ldrb r0, [r6, #2] + lsls r0, r0, #4 + ands r2, r5 + orrs r2, r0 + strb r2, [r3, #0xd] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r0, sp + movs r2, #0 + bl AddTextPrinter + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end AddTextPrinterParameterized4 + + thumb_func_start AddTextPrinterParameterized5 +AddTextPrinterParameterized5: @ 0x08199C0C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x10 + adds r6, r1, #0 + ldr r4, [sp, #0x2c] + ldr r1, [sp, #0x30] + mov r8, r1 + ldr r7, [sp, #0x34] + ldr r5, [sp, #0x38] + ldr r1, [sp, #0x3c] + mov sb, r1 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r1, r8 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + str r2, [sp] + mov r1, sp + strb r0, [r1, #4] + mov r0, sp + strb r6, [r0, #5] + strb r3, [r0, #6] + strb r4, [r0, #7] + strb r3, [r0, #8] + strb r4, [r0, #9] + strb r5, [r0, #0xa] + mov r1, sb + strb r1, [r0, #0xb] + mov r2, sp + ldrb r1, [r2, #0xc] + movs r5, #0x10 + rsbs r5, r5, #0 + adds r0, r5, #0 + ands r0, r1 + strb r0, [r2, #0xc] + adds r0, r6, #0 + movs r1, #5 + bl GetFontAttribute + mov r3, sp + lsls r0, r0, #4 + ldrb r2, [r3, #0xc] + movs r4, #0xf + adds r1, r4, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0xc] + adds r0, r6, #0 + movs r1, #6 + bl GetFontAttribute + mov r2, sp + adds r1, r4, #0 + ands r1, r0 + ldrb r0, [r2, #0xd] + ands r5, r0 + orrs r5, r1 + strb r5, [r2, #0xd] + adds r0, r6, #0 + movs r1, #7 + bl GetFontAttribute + mov r2, sp + lsls r0, r0, #4 + ldrb r1, [r2, #0xd] + ands r4, r1 + orrs r4, r0 + strb r4, [r2, #0xd] + mov r0, sp + mov r1, r8 + adds r2, r7, #0 + bl AddTextPrinter + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AddTextPrinterParameterized5 + + thumb_func_start PrintPlayerNameOnWindow +PrintPlayerNameOnWindow: @ 0x08199CBC + push {r4, r5, r6, r7, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r2, r2, #0x10 + lsrs r4, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r5, r3, #0x10 + movs r2, #0 + ldr r0, _08199D10 + ldr r3, [r0] + ldrb r0, [r3] + ldr r6, _08199D14 + cmp r0, #0xff + beq _08199CE4 +_08199CDA: + adds r2, #1 + adds r0, r3, r2 + ldrb r0, [r0] + cmp r0, #0xff + bne _08199CDA +_08199CE4: + adds r0, r6, #0 + bl StringExpandPlaceholders + lsls r3, r4, #0x18 + lsrs r3, r3, #0x18 + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + adds r0, r7, #0 + movs r1, #1 + adds r2, r6, #0 + bl AddTextPrinterParameterized + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08199D10: .4byte 0x03005AF0 +_08199D14: .4byte 0x02021C7C + thumb_func_end PrintPlayerNameOnWindow + + thumb_func_start sub_08199D18 +sub_08199D18: @ 0x08199D18 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x28 + str r0, [sp] + str r1, [sp, #4] + ldr r0, [sp, #0x48] + ldr r4, [sp, #0x4c] + ldr r1, [sp, #0x50] + ldr r5, [sp, #0x54] + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + str r2, [sp, #8] + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0xc] + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + ldr r2, [sp, #4] + ldrh r0, [r2, #4] + ldr r2, [sp, #0xc] + subs r0, r0, r2 + ldr r2, [sp, #8] + adds r2, r1, r2 + str r2, [sp, #0x10] + cmp r0, r1 + bge _08199D64 + ldr r1, [sp, #8] + adds r0, r0, r1 + str r0, [sp, #0x10] +_08199D64: + ldr r2, [sp, #4] + ldrh r1, [r2, #6] + subs r0, r1, r4 + cmp r0, r5 + bge _08199D76 + adds r0, r3, r1 + subs r0, r0, r4 + str r0, [sp, #0x14] + b _08199D7A +_08199D76: + adds r5, r3, r5 + str r5, [sp, #0x14] +_08199D7A: + ldr r0, [sp] + ldrh r1, [r0, #4] + movs r2, #7 + adds r0, r1, #0 + ands r0, r2 + adds r1, r1, r0 + asrs r1, r1, #3 + str r1, [sp, #0x18] + ldr r0, [sp, #4] + ldrh r1, [r0, #4] + adds r0, r1, #0 + ands r0, r2 + adds r1, r1, r0 + asrs r1, r1, #3 + str r1, [sp, #0x1c] + mov ip, r3 + mov r8, r4 + ldr r1, [sp, #0x14] + cmp ip, r1 + blt _08199DA4 + b _08199EE2 +_08199DA4: + ldr r5, [sp, #8] + ldr r6, [sp, #0xc] + mov r2, ip + adds r2, #1 + str r2, [sp, #0x20] + mov r0, r8 + adds r0, #1 + str r0, [sp, #0x24] + ldr r1, [sp, #0x10] + cmp r5, r1 + blt _08199DBC + b _08199ED2 +_08199DBC: + movs r7, #1 + movs r2, #0xf0 + mov sl, r2 + movs r0, #0xf + mov sb, r0 +_08199DC6: + asrs r0, r5, #1 + movs r1, #3 + ands r0, r1 + ldr r2, [sp] + ldr r1, [r2] + adds r1, r1, r0 + asrs r0, r5, #3 + lsls r0, r0, #5 + adds r1, r1, r0 + mov r2, ip + asrs r0, r2, #3 + ldr r2, [sp, #0x18] + muls r0, r2, r0 + lsls r0, r0, #5 + adds r1, r1, r0 + mov r2, ip + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1b + adds r3, r1, r0 + asrs r0, r6, #1 + movs r1, #3 + ands r0, r1 + ldr r2, [sp, #4] + ldr r1, [r2] + adds r1, r1, r0 + asrs r0, r6, #3 + lsls r0, r0, #5 + adds r1, r1, r0 + mov r2, r8 + asrs r0, r2, #3 + ldr r2, [sp, #0x1c] + muls r0, r2, r0 + lsls r0, r0, #5 + adds r1, r1, r0 + mov r2, r8 + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1b + adds r4, r1, r0 + adds r0, r4, #0 + ands r0, r7 + cmp r0, #0 + beq _08199E72 + subs r4, #1 + adds r0, r6, #0 + ands r0, r7 + cmp r0, #0 + beq _08199E4A + ldrh r0, [r4] + ldr r2, _08199E3C + ands r2, r0 + adds r0, r5, #0 + ands r0, r7 + cmp r0, #0 + beq _08199E40 + ldrb r1, [r3] + mov r0, sl + ands r0, r1 + lsls r0, r0, #8 + b _08199EC2 + .align 2, 0 +_08199E3C: .4byte 0x00000FFF +_08199E40: + ldrb r1, [r3] + mov r0, sb + ands r0, r1 + lsls r0, r0, #0xc + b _08199EC2 +_08199E4A: + ldrh r0, [r4] + ldr r2, _08199E64 + ands r2, r0 + adds r0, r5, #0 + ands r0, r7 + cmp r0, #0 + beq _08199E68 + ldrb r1, [r3] + mov r0, sl + ands r0, r1 + lsls r0, r0, #4 + b _08199EC2 + .align 2, 0 +_08199E64: .4byte 0x0000F0FF +_08199E68: + ldrb r1, [r3] + mov r0, sb + ands r0, r1 + lsls r0, r0, #8 + b _08199EC2 +_08199E72: + adds r0, r6, #0 + ands r0, r7 + cmp r0, #0 + beq _08199E9E + ldrh r0, [r4] + ldr r2, _08199E90 + ands r2, r0 + adds r0, r5, #0 + ands r0, r7 + cmp r0, #0 + beq _08199E94 + ldrb r1, [r3] + mov r0, sl + b _08199EC0 + .align 2, 0 +_08199E90: .4byte 0x0000FF0F +_08199E94: + ldrb r1, [r3] + mov r0, sb + ands r0, r1 + lsls r0, r0, #4 + b _08199EC2 +_08199E9E: + ldrh r0, [r4] + ldr r2, _08199EB8 + ands r2, r0 + adds r0, r5, #0 + ands r0, r7 + cmp r0, #0 + beq _08199EBC + ldrb r1, [r3] + mov r0, sl + ands r0, r1 + lsrs r0, r0, #4 + b _08199EC2 + .align 2, 0 +_08199EB8: .4byte 0x0000FFF0 +_08199EBC: + ldrb r1, [r3] + mov r0, sb +_08199EC0: + ands r0, r1 +_08199EC2: + orrs r2, r0 + strh r2, [r4] + adds r5, #1 + adds r6, #1 + ldr r0, [sp, #0x10] + cmp r5, r0 + bge _08199ED2 + b _08199DC6 +_08199ED2: + ldr r1, [sp, #0x20] + mov ip, r1 + ldr r2, [sp, #0x24] + mov r8, r2 + ldr r0, [sp, #0x14] + cmp ip, r0 + bge _08199EE2 + b _08199DA4 +_08199EE2: + add sp, #0x28 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08199D18 + + thumb_func_start sub_08199EF4 +sub_08199EF4: @ 0x08199EF4 + push {r4, lr} + adds r4, r0, #0 + adds r0, r1, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetValidMonIconPalettePtr + adds r1, r4, #0 + movs r2, #0x20 + bl LoadPalette + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08199EF4 + + thumb_func_start sub_08199F14 +sub_08199F14: @ 0x08199F14 + push {r4, r5, r6, lr} + sub sp, #8 + adds r6, r0, #0 + adds r0, r1, #0 + adds r1, r2, #0 + adds r4, r3, #0 + ldr r5, [sp, #0x18] + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + movs r2, #1 + bl GetMonIconPtr + adds r1, r0, #0 + movs r0, #0x20 + str r0, [sp] + str r0, [sp, #4] + adds r0, r6, #0 + adds r2, r4, #0 + adds r3, r5, #0 + bl BlitBitmapToWindow + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08199F14 + + thumb_func_start sub_08199F54 +sub_08199F54: @ 0x08199F54 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #1 + beq _08199F74 + cmp r1, #1 + ble _08199F6A + cmp r1, #2 + beq _08199F7C +_08199F6A: + ldr r0, _08199F70 + b _08199F7E + .align 2, 0 +_08199F70: .4byte 0x085D7BD8 +_08199F74: + ldr r0, _08199F78 + b _08199F7E + .align 2, 0 +_08199F78: .4byte 0x085D7BF8 +_08199F7C: + ldr r0, _08199F8C +_08199F7E: + adds r1, r2, #0 + movs r2, #0x20 + bl LoadPalette + pop {r0} + bx r0 + .align 2, 0 +_08199F8C: .4byte 0x085D7C18 + thumb_func_end sub_08199F54 + + thumb_func_start blit_move_info_icon +blit_move_info_icon: @ 0x08199F90 + push {r4, r5, lr} + sub sp, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + ldr r4, _08199FD4 + lsrs r1, r1, #0x16 + adds r1, r1, r4 + ldrh r5, [r1, #2] + lsls r5, r5, #5 + ldr r4, _08199FD8 + adds r5, r5, r4 + movs r4, #0x80 + str r4, [sp] + str r4, [sp, #4] + str r2, [sp, #8] + str r3, [sp, #0xc] + ldrb r2, [r1] + str r2, [sp, #0x10] + ldrb r1, [r1, #1] + str r1, [sp, #0x14] + adds r1, r5, #0 + movs r2, #0 + movs r3, #0 + bl BlitBitmapRectToWindow + add sp, #0x18 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08199FD4: .4byte 0x085D7B70 +_08199FD8: .4byte 0x085D7C38 + thumb_func_end blit_move_info_icon + + thumb_func_start sub_08199FDC +sub_08199FDC: @ 0x08199FDC + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r5, r1, #0 + movs r1, #0xfc + strb r1, [r5] + adds r5, #1 + movs r0, #1 + strb r0, [r5] + adds r5, #1 + strb r2, [r5] + adds r5, #1 + strb r1, [r5] + adds r5, #1 + movs r0, #3 + strb r0, [r5] + adds r5, #1 + adds r2, #1 + strb r2, [r5] + adds r5, #1 + cmp r3, #4 + bhi _0819A0DE + lsls r0, r3, #2 + ldr r1, _0819A018 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0819A018: .4byte 0x0819A01C +_0819A01C: @ jump table + .4byte _0819A030 @ case 0 + .4byte _0819A040 @ case 1 + .4byte _0819A072 @ case 2 + .4byte _0819A0A0 @ case 3 + .4byte _0819A0B0 @ case 4 +_0819A030: + ldr r0, _0819A03C + ldr r1, [r0] + adds r0, r5, #0 + bl StringCopy + b _0819A0DE + .align 2, 0 +_0819A03C: .4byte 0x03005AF0 +_0819A040: + bl IsNationalPokedexEnabled + cmp r0, #0 + beq _0819A050 + movs r0, #1 + bl GetNationalPokedexCount + b _0819A056 +_0819A050: + movs r0, #1 + bl GetHoennPokedexCount +_0819A056: + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r5, #0 + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + adds r5, r0, #0 + movs r0, #0x1b + strb r0, [r5] + adds r5, #1 + movs r0, #7 + b _0819A0D8 +_0819A072: + ldr r4, _0819A09C + ldr r0, [r4] + ldrh r1, [r0, #0xe] + adds r0, r5, #0 + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + adds r5, r0, #0 + movs r0, #0xf0 + strb r0, [r5] + adds r5, #1 + ldr r0, [r4] + ldrb r1, [r0, #0x10] + adds r0, r5, #0 + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + b _0819A0DE + .align 2, 0 +_0819A09C: .4byte 0x03005AF0 +_0819A0A0: + ldr r0, _0819A0AC + ldrb r1, [r0, #0x14] + adds r0, r5, #0 + bl sub_081245E8 + b _0819A0DE + .align 2, 0 +_0819A0AC: .4byte 0x02036FB8 +_0819A0B0: + ldr r4, _0819A0E4 + movs r6, #0 + adds r7, r5, #1 +_0819A0B6: + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0819A0C6 + adds r6, #1 +_0819A0C6: + adds r4, #1 + ldr r0, _0819A0E8 + cmp r4, r0 + ble _0819A0B6 + adds r0, r6, #0 + subs r0, #0x5f + strb r0, [r5] + adds r5, r7, #0 + movs r0, #0xa +_0819A0D8: + strb r0, [r5] + movs r0, #0xff + strb r0, [r5, #1] +_0819A0DE: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0819A0E4: .4byte 0x00000867 +_0819A0E8: .4byte 0x0000086E + thumb_func_end sub_08199FDC + diff --git a/asm/menu_helpers.s b/asm/menu_helpers.s new file mode 100644 index 0000000..28f8f57 --- /dev/null +++ b/asm/menu_helpers.s @@ -0,0 +1,1031 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ResetVramOamAndBgCntRegs +ResetVramOamAndBgCntRegs: @ 0x08121D90 + push {r4, lr} + sub sp, #0xc + movs r0, #0 + movs r1, #0 + bl SetGpuReg + movs r0, #0xe + movs r1, #0 + bl SetGpuReg + movs r0, #0xc + movs r1, #0 + bl SetGpuReg + movs r0, #0xa + movs r1, #0 + bl SetGpuReg + movs r0, #8 + movs r1, #0 + bl SetGpuReg + mov r1, sp + movs r0, #0 + strh r0, [r1] + movs r1, #0xc0 + lsls r1, r1, #0x13 + ldr r2, _08121DF4 + mov r0, sp + bl CpuSet + movs r4, #0 + str r4, [sp, #4] + add r0, sp, #4 + movs r1, #0xe0 + lsls r1, r1, #0x13 + ldr r2, _08121DF8 + bl CpuSet + add r0, sp, #8 + strh r4, [r0] + movs r1, #0xa0 + lsls r1, r1, #0x13 + ldr r2, _08121DFC + bl CpuSet + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08121DF4: .4byte 0x0100C000 +_08121DF8: .4byte 0x05000100 +_08121DFC: .4byte 0x01000200 + thumb_func_end ResetVramOamAndBgCntRegs + + thumb_func_start ResetAllBgsCoordinates +ResetAllBgsCoordinates: @ 0x08121E00 + push {lr} + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ResetAllBgsCoordinates + + thumb_func_start SetVBlankHBlankCallbacksToNull +SetVBlankHBlankCallbacksToNull: @ 0x08121E58 + push {lr} + movs r0, #0 + bl SetVBlankCallback + movs r0, #0 + bl SetHBlankCallback + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetVBlankHBlankCallbacksToNull + + thumb_func_start DisplayMessageAndContinueTask +DisplayMessageAndContinueTask: @ 0x08121E6C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x10 + ldr r4, [sp, #0x28] + ldr r5, [sp, #0x2c] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r6, r1, #0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r4, r4, #0x18 + lsrs r7, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _08121EF8 + strb r6, [r0] + adds r0, r6, #0 + movs r1, #1 + bl DrawDialogFrameWithCustomTileAndPalette + ldr r4, _08121EFC + ldr r0, [sp, #0x30] + cmp r0, r4 + beq _08121EB0 + adds r0, r4, #0 + ldr r1, [sp, #0x30] + bl StringExpandPlaceholders +_08121EB0: + ldr r2, _08121F00 + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + movs r0, #0 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + movs r0, #3 + str r0, [sp, #0xc] + adds r0, r6, #0 + adds r1, r7, #0 + adds r2, r4, #0 + adds r3, r5, #0 + bl AddTextPrinterParameterized2 + ldr r1, _08121F04 + ldr r0, [sp, #0x34] + str r0, [r1] + ldr r1, _08121F08 + mov r2, r8 + lsls r0, r2, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08121F0C + str r1, [r0] + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08121EF8: .4byte 0x02039E0C +_08121EFC: .4byte 0x02021C7C +_08121F00: .4byte 0x030030B4 +_08121F04: .4byte 0x0300117C +_08121F08: .4byte 0x03005B60 +_08121F0C: .4byte 0x08121F2D + thumb_func_end DisplayMessageAndContinueTask + + thumb_func_start RunTextPrintersRetIsActive +RunTextPrintersRetIsActive: @ 0x08121F10 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl RunTextPrinters + adds r0, r4, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r4} + pop {r1} + bx r1 + thumb_func_end RunTextPrintersRetIsActive + + thumb_func_start Task_ContinueTaskAfterMessagePrints +Task_ContinueTaskAfterMessagePrints: @ 0x08121F2C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _08121F50 + ldrb r0, [r0] + bl RunTextPrintersRetIsActive + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08121F4A + ldr r0, _08121F54 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 +_08121F4A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08121F50: .4byte 0x02039E0C +_08121F54: .4byte 0x0300117C + thumb_func_end Task_ContinueTaskAfterMessagePrints + + thumb_func_start DoYesNoFuncWithChoice +DoYesNoFuncWithChoice: @ 0x08121F58 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _08121F78 + ldr r2, [r1, #4] + ldr r1, [r1] + str r1, [r3] + str r2, [r3, #4] + ldr r2, _08121F7C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r0, _08121F80 + str r0, [r1] + bx lr + .align 2, 0 +_08121F78: .4byte 0x02039E04 +_08121F7C: .4byte 0x03005B60 +_08121F80: .4byte 0x08121FE9 + thumb_func_end DoYesNoFuncWithChoice + + thumb_func_start CreateYesNoMenuWithCallbacks +CreateYesNoMenuWithCallbacks: @ 0x08121F84 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + adds r6, r0, #0 + adds r0, r1, #0 + adds r1, r2, #0 + adds r2, r3, #0 + ldr r3, [sp, #0x20] + ldr r4, [sp, #0x24] + ldr r5, [sp, #0x28] + ldr r7, [sp, #0x2c] + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + str r4, [sp] + str r5, [sp, #4] + movs r4, #0 + str r4, [sp, #8] + bl sub_08198C08 + ldr r2, _08121FDC + ldr r0, [r7] + ldr r1, [r7, #4] + str r0, [r2] + str r1, [r2, #4] + ldr r1, _08121FE0 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08121FE4 + str r1, [r0] + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08121FDC: .4byte 0x02039E04 +_08121FE0: .4byte 0x03005B60 +_08121FE4: .4byte 0x08121FE9 + thumb_func_end CreateYesNoMenuWithCallbacks + + thumb_func_start Task_CallYesOrNoCallback +Task_CallYesOrNoCallback: @ 0x08121FE8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _0812200E + cmp r1, #0 + bgt _08122008 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _08122024 + b _08122034 +_08122008: + cmp r1, #1 + beq _08122024 + b _08122034 +_0812200E: + movs r0, #5 + bl PlaySE + ldr r0, _08122020 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + b _08122034 + .align 2, 0 +_08122020: .4byte 0x02039E04 +_08122024: + movs r0, #5 + bl PlaySE + ldr r0, _0812203C + ldr r1, [r0, #4] + adds r0, r4, #0 + bl _call_via_r1 +_08122034: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812203C: .4byte 0x02039E04 + thumb_func_end Task_CallYesOrNoCallback + + thumb_func_start AdjustQuantityAccordingToDPadInput +AdjustQuantityAccordingToDPadInput: @ 0x08122040 + push {r4, r5, r6, lr} + adds r2, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r5, r1, #0 + ldrh r4, [r2] + adds r6, r4, #0 + ldr r0, _08122074 + ldrh r0, [r0, #0x30] + movs r3, #0xf0 + ands r3, r0 + cmp r3, #0x40 + bne _08122078 + adds r0, r4, #1 + strh r0, [r2] + movs r3, #0 + ldrsh r0, [r2, r3] + cmp r0, r1 + ble _0812206A + movs r0, #1 + strh r0, [r2] +_0812206A: + movs r0, #0 + ldrsh r1, [r2, r0] +_0812206E: + lsls r0, r4, #0x10 + b _081220C2 + .align 2, 0 +_08122074: .4byte 0x03002360 +_08122078: + cmp r3, #0x80 + bne _0812208E + subs r0, r4, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _08122088 + strh r1, [r2] +_08122088: + movs r3, #0 + ldrsh r1, [r2, r3] + b _0812206E +_0812208E: + cmp r3, #0x10 + bne _081220A8 + adds r0, r4, #0 + adds r0, #0xa + strh r0, [r2] + movs r1, #0 + ldrsh r0, [r2, r1] + cmp r0, r5 + ble _081220A2 + strh r5, [r2] +_081220A2: + movs r3, #0 + ldrsh r1, [r2, r3] + b _0812206E +_081220A8: + cmp r3, #0x20 + bne _081220D2 + adds r0, r4, #0 + subs r0, #0xa + strh r0, [r2] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _081220BC + movs r0, #1 + strh r0, [r2] +_081220BC: + movs r0, #0 + ldrsh r1, [r2, r0] + lsls r0, r6, #0x10 +_081220C2: + asrs r0, r0, #0x10 + cmp r1, r0 + beq _081220D2 + movs r0, #5 + bl PlaySE + movs r0, #1 + b _081220D4 +_081220D2: + movs r0, #0 +_081220D4: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end AdjustQuantityAccordingToDPadInput + + thumb_func_start GetLRKeysState +GetLRKeysState: @ 0x081220DC + push {lr} + ldr r0, _081220FC + ldr r0, [r0] + ldrb r0, [r0, #0x13] + cmp r0, #1 + bne _08122112 + ldr r0, _08122100 + ldrh r1, [r0, #0x2e] + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08122104 + movs r0, #1 + b _08122114 + .align 2, 0 +_081220FC: .4byte 0x03005AF0 +_08122100: .4byte 0x03002360 +_08122104: + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08122112 + movs r0, #2 + b _08122114 +_08122112: + movs r0, #0 +_08122114: + pop {r1} + bx r1 + thumb_func_end GetLRKeysState + + thumb_func_start sub_08122118 +sub_08122118: @ 0x08122118 + push {lr} + ldr r0, _08122138 + ldr r0, [r0] + ldrb r0, [r0, #0x13] + cmp r0, #1 + bne _0812214E + ldr r0, _0812213C + ldrh r1, [r0, #0x30] + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08122140 + movs r0, #1 + b _08122150 + .align 2, 0 +_08122138: .4byte 0x03005AF0 +_0812213C: .4byte 0x03002360 +_08122140: + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0812214E + movs r0, #2 + b _08122150 +_0812214E: + movs r0, #0 +_08122150: + pop {r1} + bx r1 + thumb_func_end sub_08122118 + + thumb_func_start sub_08122154 +sub_08122154: @ 0x08122154 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xaf + bne _08122180 + ldr r0, _08122178 + ldr r0, [r0] + ldrh r1, [r0, #4] + ldr r0, _0812217C + cmp r1, r0 + beq _08122172 + bl InUnionRoom + cmp r0, #1 + bne _08122180 +_08122172: + movs r0, #0 + b _08122182 + .align 2, 0 +_08122178: .4byte 0x03005AEC +_0812217C: .4byte 0x00001919 +_08122180: + movs r0, #1 +_08122182: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08122154 + + thumb_func_start itemid_80BF6D8_mail_related +itemid_80BF6D8_mail_related: @ 0x08122188 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + bl IsUpdateLinkStateCBActive + cmp r0, #1 + beq _0812219E + bl InUnionRoom + cmp r0, #1 + bne _081221B0 +_0812219E: + adds r0, r4, #0 + bl ItemIsMail + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081221B0 + movs r0, #0 + b _081221B2 +_081221B0: + movs r0, #1 +_081221B2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end itemid_80BF6D8_mail_related + + thumb_func_start sub_081221B8 +sub_081221B8: @ 0x081221B8 + push {lr} + bl IsUpdateLinkStateCBActive + cmp r0, #1 + beq _081221CA + ldr r0, _081221D0 + ldrb r0, [r0] + cmp r0, #1 + bne _081221D4 +_081221CA: + movs r0, #1 + b _081221D6 + .align 2, 0 +_081221D0: .4byte 0x030031C4 +_081221D4: + movs r0, #0 +_081221D6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081221B8 + + thumb_func_start sub_081221DC +sub_081221DC: @ 0x081221DC + push {lr} + bl sub_081221B8 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081221F2 + bl sub_08086EFC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _081221F4 +_081221F2: + movs r0, #0 +_081221F4: + pop {r1} + bx r1 + thumb_func_end sub_081221DC + + thumb_func_start sub_081221F8 +sub_081221F8: @ 0x081221F8 + push {lr} + bl sub_081221DC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0812220E + bl sub_0800AFD8 + cmp r0, #1 + bne _08122212 +_0812220E: + movs r0, #1 + b _08122214 +_08122212: + movs r0, #0 +_08122214: + pop {r1} + bx r1 + thumb_func_end sub_081221F8 + + thumb_func_start sub_08122218 +sub_08122218: @ 0x08122218 + push {r4, r5, r6, lr} + adds r6, r2, #0 + ldr r2, [sp, #0x10] + lsls r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + adds r4, r0, #0 + movs r0, #0 + strb r0, [r3] + movs r2, #0 + lsrs r1, r1, #0x18 + cmp r2, r1 + bhs _0812224C +_08122232: + lsls r0, r2, #2 + adds r0, r0, r4 + ldrh r0, [r0] + cmp r0, #0 + beq _08122242 + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] +_08122242: + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, r1 + blo _08122232 +_0812224C: + ldrb r0, [r3] + adds r1, r0, #1 + strb r1, [r3] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r5 + bls _0812225E + strb r5, [r6] + b _08122260 +_0812225E: + strb r1, [r6] +_08122260: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08122218 + + thumb_func_start sub_08122268 +sub_08122268: @ 0x08122268 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldrh r0, [r4] + cmp r0, #0 + beq _08122286 + adds r0, r0, r2 + cmp r0, r3 + ble _08122286 + subs r0, r3, r2 + strh r0, [r4] +_08122286: + ldrh r0, [r4] + ldrh r1, [r5] + adds r0, r0, r1 + cmp r0, r3 + blt _0812229C + cmp r3, #0 + bne _08122298 + strh r3, [r5] + b _0812229C +_08122298: + subs r0, r3, #1 + strh r0, [r5] +_0812229C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08122268 + + thumb_func_start sub_081222A4 +sub_081222A4: @ 0x081222A4 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r4, r1, #0 + ldr r0, [sp, #0x14] + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r6, r3, #0x18 + lsls r2, r0, #0x18 + lsrs r0, r2, #0x18 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _081222FC + lsrs r2, r2, #0x19 + ldrh r0, [r4] + cmp r0, r2 + blo _0812232E + movs r1, #0 + subs r0, r0, r2 + cmp r1, r0 + bge _0812232E + ldrh r0, [r5] + adds r0, r0, r7 + cmp r0, r6 + beq _0812232E +_081222D8: + ldrh r0, [r4] + subs r0, #1 + strh r0, [r4] + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldrh r0, [r4] + subs r0, r0, r2 + cmp r1, r0 + bge _0812232E + ldrh r0, [r5] + adds r0, r0, r7 + cmp r0, r6 + bne _081222D8 + b _0812232E +_081222FC: + ldrh r3, [r4] + lsrs r2, r2, #0x19 + adds r0, r2, #1 + cmp r3, r0 + blt _0812232E + movs r1, #0 + subs r0, r3, r2 + b _08122322 +_0812230C: + ldrh r0, [r4] + subs r0, #1 + strh r0, [r4] + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldrh r0, [r4] + subs r0, r0, r2 +_08122322: + cmp r1, r0 + bgt _0812232E + ldrh r0, [r5] + adds r0, r0, r7 + cmp r0, r6 + bne _0812230C +_0812232E: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_081222A4 + + thumb_func_start LoadListMenuArrowsGfx +LoadListMenuArrowsGfx: @ 0x08122334 + push {lr} + ldr r0, _08122348 + bl LoadCompressedSpriteSheet + ldr r0, _0812234C + bl LoadCompressedSpritePalette + pop {r0} + bx r0 + .align 2, 0 +_08122348: .4byte 0x0857B0E4 +_0812234C: .4byte 0x0857B0EC + thumb_func_end LoadListMenuArrowsGfx + + thumb_func_start sub_08122350 +sub_08122350: @ 0x08122350 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + movs r5, #0 + cmp r5, r6 + bhs _081223A8 + ldr r7, _081223B4 +_08122364: + lsls r1, r5, #4 + ldr r0, _081223B8 + movs r2, #0 + movs r3, #0 + bl CreateSprite + mov r1, r8 + adds r4, r1, r5 + strb r0, [r4] + cmp r5, #0 + beq _0812238A + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + movs r1, #1 + bl StartSpriteAnim +_0812238A: + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, r6 + blo _08122364 +_081223A8: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081223B4: .4byte 0x020205AC +_081223B8: .4byte 0x0857B0F4 + thumb_func_end sub_08122350 + + thumb_func_start sub_081223BC +sub_081223BC: @ 0x081223BC + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + movs r4, #0 + cmp r4, r5 + bhs _08122402 + ldr r7, _081223E4 +_081223CC: + subs r0, r5, #1 + cmp r4, r0 + bne _081223E8 + adds r0, r6, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + bl DestroySpriteAndFreeResources + b _081223F8 + .align 2, 0 +_081223E4: .4byte 0x020205AC +_081223E8: + adds r0, r6, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + bl DestroySprite +_081223F8: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r5 + blo _081223CC +_08122402: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_081223BC + + thumb_func_start sub_08122408 +sub_08122408: @ 0x08122408 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r0, r2, #0x18 + movs r3, #0 + cmp r3, r4 + bhs _0812244A + ldr r1, _08122450 + mov ip, r1 + movs r1, #1 + ands r0, r1 + lsls r5, r0, #2 + movs r7, #5 + rsbs r7, r7, #0 +_08122428: + adds r0, r6, r3 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + add r1, ip + adds r1, #0x3e + ldrb r2, [r1] + adds r0, r7, #0 + ands r0, r2 + orrs r0, r5 + strb r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, r4 + blo _08122428 +_0812244A: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08122450: .4byte 0x020205AC + thumb_func_end sub_08122408 + + thumb_func_start sub_08122454 +sub_08122454: @ 0x08122454 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + lsls r2, r2, #0x10 + lsrs r7, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + mov sb, r3 + movs r0, #0x80 + ands r0, r4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r0, #0x7f + ands r4, r0 + movs r3, #0 + cmp r3, r4 + bhs _081224D4 + ldr r5, _081224A8 + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + subs r0, #8 + mov ip, r0 +_0812248A: + subs r0, r4, #1 + cmp r3, r0 + bne _081224AC + mov r0, r8 + cmp r0, #0 + beq _081224AC + adds r2, r6, r3 + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + mov r1, ip + strh r1, [r0, #0x24] + b _081224BA + .align 2, 0 +_081224A8: .4byte 0x020205AC +_081224AC: + adds r2, r6, r3 + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r7, [r0, #0x24] +_081224BA: + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + mov r1, sb + adds r1, #1 + strh r1, [r0, #0x22] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, r4 + blo _0812248A +_081224D4: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08122454 + diff --git a/asm/menu_specialized.s b/asm/menu_specialized.s new file mode 100644 index 0000000..a9f428b --- /dev/null +++ b/asm/menu_specialized.s @@ -0,0 +1,3711 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_081D1340 +sub_081D1340: @ 0x081D1340 + push {r4, lr} + lsls r0, r0, #0x18 + ldr r4, _081D1358 + lsrs r0, r0, #0x15 + adds r0, #8 + bl Alloc + str r0, [r4] + cmp r0, #0 + bne _081D135C + movs r0, #0 + b _081D1376 + .align 2, 0 +_081D1358: .4byte 0x0203CC18 +_081D135C: + movs r2, #0 + ldr r4, _081D137C + movs r3, #0xff +_081D1362: + adds r0, r2, r4 + ldrb r1, [r0] + orrs r1, r3 + strb r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #2 + bls _081D1362 + movs r0, #1 +_081D1376: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081D137C: .4byte 0x0203CC14 + thumb_func_end sub_081D1340 + + thumb_func_start sub_081D1380 +sub_081D1380: @ 0x081D1380 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r0, _081D13AC + adds r4, r1, r0 + ldrb r0, [r4] + cmp r0, #0xff + bne _081D13A4 + lsls r0, r1, #3 + ldr r1, _081D13B0 + adds r0, r0, r1 + bl AddWindow + strb r0, [r4] + ldrb r0, [r4] + movs r1, #0 + bl SetStandardWindowBorderStyle +_081D13A4: + ldrb r0, [r4] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081D13AC: .4byte 0x0203CC14 +_081D13B0: .4byte 0x085F7AF4 + thumb_func_end sub_081D1380 + + thumb_func_start MoveRelearnerCursorCallback +MoveRelearnerCursorCallback: @ 0x081D13B4 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081D13E0 + adds r4, r4, r0 + ldrb r0, [r4] + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + ldrb r0, [r4] + bl ClearWindowTilemap + ldrb r0, [r4] + bl RemoveWindow + movs r0, #0xff + strb r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D13E0: .4byte 0x0203CC14 + thumb_func_end MoveRelearnerCursorCallback + + thumb_func_start sub_081D13E4 +sub_081D13E4: @ 0x081D13E4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081D13F0 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_081D13F0: .4byte 0x0203CC14 + thumb_func_end sub_081D13E4 + + thumb_func_start sub_081D13F4 +sub_081D13F4: @ 0x081D13F4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r7, r0, #0 + movs r3, #0 + ldr r0, _081D14A8 + mov r8, r0 + ldr r1, _081D14AC + mov sb, r1 + ldr r6, _081D14B0 + ldr r0, _081D14B4 + mov sl, r0 + ldrb r1, [r7, #5] + cmp r3, r1 + bhs _081D1440 + mov ip, r8 + ldr r5, _081D14B8 + ldr r4, _081D14BC +_081D141C: + mov r0, ip + ldr r2, [r0] + lsls r0, r3, #3 + adds r2, r0, r2 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r5] + adds r1, r1, r0 + adds r1, #0x12 + str r1, [r2] + str r3, [r2, #4] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldrb r1, [r7, #5] + cmp r3, r1 + blo _081D141C +_081D1440: + mov r0, r8 + ldr r2, [r0] + lsls r0, r3, #3 + adds r0, r0, r2 + mov r1, sb + str r1, [r0] + movs r1, #2 + rsbs r1, r1, #0 + str r1, [r0, #4] + str r2, [r6] + ldrb r0, [r7, #5] + adds r0, #1 + movs r4, #0 + movs r5, #0 + strh r0, [r6, #0xc] + mov r1, sl + ldrb r0, [r1, #1] + strb r0, [r6, #0x10] + strb r4, [r6, #0x11] + movs r0, #1 + movs r1, #0 + bl GetFontAttribute + strb r0, [r6, #0x12] + strb r4, [r6, #0x13] + movs r0, #8 + strh r0, [r6, #0xe] + movs r0, #0x2a + strb r0, [r6, #0x14] + movs r0, #0x31 + strb r0, [r6, #0x15] + ldr r0, _081D14C0 + str r0, [r6, #4] + str r5, [r6, #8] + movs r0, #1 + strb r0, [r6, #0x17] + movs r0, #0 + strb r0, [r6, #0x16] + ldrh r1, [r7, #2] + ldrh r2, [r7] + adds r0, r6, #0 + bl ListMenuInit + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081D14A8: .4byte 0x0203CC18 +_081D14AC: .4byte 0x085C93C8 +_081D14B0: .4byte 0x03006050 +_081D14B4: .4byte 0x0203CC14 +_081D14B8: .4byte 0x03005AEC +_081D14BC: .4byte 0x00002CB8 +_081D14C0: .4byte 0x081D14C5 + thumb_func_end sub_081D13F4 + + thumb_func_start sub_081D14C4 +sub_081D14C4: @ 0x081D14C4 + push {lr} + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #1 + beq _081D14D4 + movs r0, #5 + bl PlaySE +_081D14D4: + pop {r0} + bx r0 + thumb_func_end sub_081D14C4 + + thumb_func_start sub_081D14D8 +sub_081D14D8: @ 0x081D14D8 + push {r4, lr} + sub sp, #0x10 + adds r4, r0, #0 + ldrb r0, [r4, #5] + ldrb r1, [r4, #4] + subs r0, r0, r1 + adds r0, #1 + str r0, [sp] + movs r0, #0x6e + str r0, [sp, #4] + str r0, [sp, #8] + adds r0, r4, #2 + str r0, [sp, #0xc] + movs r0, #2 + movs r1, #0xc8 + movs r2, #0xc + movs r3, #0x94 + bl AddScrollIndicatorArrowPairParameterized + strb r0, [r4, #9] + add sp, #0x10 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_081D14D8 + + thumb_func_start sub_081D1508 +sub_081D1508: @ 0x081D1508 + push {lr} + ldr r0, _081D1518 + ldr r0, [r0] + bl Free + pop {r0} + bx r0 + .align 2, 0 +_081D1518: .4byte 0x0203CC18 + thumb_func_end sub_081D1508 + + thumb_func_start sub_081D151C +sub_081D151C: @ 0x081D151C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r3, r0, #0 + movs r6, #0 + movs r7, #0 +_081D152E: + movs r2, #0 + lsls r5, r6, #2 + adds r0, r6, #1 + mov sl, r0 + adds r4, r5, #0 +_081D1538: + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r4, r0 + adds r0, r3, r0 + adds r1, r0, #0 + adds r1, #0x64 + strh r7, [r1] + adds r0, #0x66 + strh r7, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #9 + bls _081D1538 + movs r2, #0 + mov sb, r2 + str r5, [sp] + movs r1, #0x9b + mov r8, r1 + movs r4, #0x5b + mov ip, r4 +_081D1564: + lsls r0, r2, #2 + adds r0, r0, r2 + adds r1, r6, r0 + adds r1, r3, r1 + mov r4, sb + strb r4, [r1] + lsls r0, r0, #2 + ldr r1, [sp] + adds r0, r1, r0 + adds r0, r3, r0 + mov r4, r8 + strh r4, [r0, #0x14] + mov r1, ip + strh r1, [r0, #0x16] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #3 + bls _081D1564 + adds r1, r3, r5 + movs r2, #0x96 + lsls r2, r2, #1 + adds r0, r1, r2 + strh r7, [r0] + movs r4, #0x97 + lsls r4, r4, #1 + adds r0, r1, r4 + strh r7, [r0] + mov r1, sl + lsls r0, r1, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #4 + bls _081D152E + movs r2, #0xd5 + lsls r2, r2, #2 + adds r0, r3, r2 + movs r1, #0 + strb r1, [r0] + ldr r4, _081D15C8 + adds r0, r3, r4 + strh r1, [r0] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D15C8: .4byte 0x00000352 + thumb_func_end sub_081D151C + + thumb_func_start sub_081D15CC +sub_081D15CC: @ 0x081D15CC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + mov r8, r0 + str r1, [sp] + mov sb, r2 + movs r7, #0 +_081D15E0: + lsls r4, r7, #2 + ldr r1, [sp] + adds r0, r4, r1 + ldrh r1, [r0] + lsls r5, r1, #8 + mov r2, sb + adds r0, r4, r2 + ldrh r0, [r0] + subs r0, r0, r1 + lsls r0, r0, #8 + movs r1, #0xa + bl __divsi3 + adds r6, r0, #0 + movs r3, #0 + adds r7, #1 + mov sl, r7 + mov ip, r4 +_081D1604: + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #2 + add r0, ip + add r0, r8 + asrs r2, r5, #8 + asrs r1, r5, #7 + movs r7, #1 + ands r1, r7 + adds r2, r2, r1 + adds r0, #0x64 + strh r2, [r0] + adds r5, r5, r6 + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #8 + bls _081D1604 + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r4, r0 + add r0, r8 + mov r1, sb + adds r2, r4, r1 + ldrh r1, [r2] + adds r0, #0x64 + strh r1, [r0] + ldr r7, [sp] + adds r0, r4, r7 + ldrh r1, [r0, #2] + lsls r5, r1, #8 + ldrh r0, [r2, #2] + subs r0, r0, r1 + lsls r0, r0, #8 + movs r1, #0xa + bl __divsi3 + adds r6, r0, #0 + movs r3, #0 + str r4, [sp, #4] + movs r0, #1 + mov ip, r0 +_081D165A: + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #2 + ldr r1, [sp, #4] + adds r0, r1, r0 + add r0, r8 + asrs r2, r5, #8 + asrs r1, r5, #7 + mov r7, ip + ands r1, r7 + adds r2, r2, r1 + adds r0, #0x66 + strh r2, [r0] + adds r5, r5, r6 + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #8 + bls _081D165A + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r4, r0 + add r0, r8 + mov r2, sb + adds r1, r4, r2 + ldrh r1, [r1, #2] + adds r0, #0x66 + strh r1, [r0] + mov r7, sl + lsls r0, r7, #0x10 + lsrs r7, r0, #0x10 + cmp r7, #4 + bls _081D15E0 + ldr r1, _081D16B8 + add r1, r8 + movs r0, #0 + strh r0, [r1] + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D16B8: .4byte 0x00000352 + thumb_func_end sub_081D15CC + + thumb_func_start sub_081D16BC +sub_081D16BC: @ 0x081D16BC + push {r4, lr} + adds r1, r0, #0 + ldr r0, _081D16D0 + adds r4, r1, r0 + ldrh r0, [r4] + cmp r0, #9 + bls _081D16D4 + movs r0, #0 + b _081D16EE + .align 2, 0 +_081D16D0: .4byte 0x00000352 +_081D16D4: + adds r0, r1, #0 + bl sub_081D1878 + ldrh r1, [r4] + adds r1, #1 + strh r1, [r4] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0xa + eors r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f +_081D16EE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081D16BC + + thumb_func_start sub_081D16F4 +sub_081D16F4: @ 0x081D16F4 + ldr r1, _081D1700 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + bx lr + .align 2, 0 +_081D1700: .4byte 0x00000355 + thumb_func_end sub_081D16F4 + + thumb_func_start sub_081D1704 +sub_081D1704: @ 0x081D1704 + push {r4, r5, lr} + sub sp, #0xc + ldr r1, _081D1718 + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, #0 + beq _081D171C + cmp r0, #1 + beq _081D172A + b _081D1742 + .align 2, 0 +_081D1718: .4byte 0x00000355 +_081D171C: + bl ScanlineEffect_Clear + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + movs r0, #1 + b _081D1744 +_081D172A: + mov r0, sp + ldr r1, _081D174C + ldm r1!, {r2, r3, r5} + stm r0!, {r2, r3, r5} + ldr r0, [sp] + ldr r1, [sp, #4] + ldr r2, [sp, #8] + bl ScanlineEffect_SetParams + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] +_081D1742: + movs r0, #0 +_081D1744: + add sp, #0xc + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081D174C: .4byte 0x085F7B0C + thumb_func_end sub_081D1704 + + thumb_func_start sub_081D1750 +sub_081D1750: @ 0x081D1750 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + adds r6, r0, #0 + movs r1, #0xd5 + lsls r1, r1, #2 + adds r0, r6, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _081D1806 + adds r0, r6, #0 + bl sub_081D1AEC + adds r0, r6, #0 + bl sub_081D1C48 + movs r7, #0 + ldr r5, _081D1818 + mov ip, r5 + movs r0, #0xf0 + lsls r0, r0, #3 + add r0, ip + mov sb, r0 + movs r1, #0xa0 + lsls r1, r1, #1 + adds r1, r6, r1 + str r1, [sp] + ldr r5, _081D181C + mov r8, r5 + movs r0, #0xa1 + lsls r0, r0, #1 + adds r0, r6, r0 + str r0, [sp, #4] + movs r1, #0x92 + lsls r1, r1, #2 + adds r1, r6, r1 + str r1, [sp, #8] + ldr r5, _081D1820 + adds r5, r5, r6 + mov sl, r5 +_081D17A6: + adds r2, r7, #0 + adds r2, #0x37 + lsls r3, r2, #2 + mov r0, sb + adds r0, r3, r0 + str r0, [sp, #0xc] + add r3, ip + lsls r4, r7, #2 + ldr r1, [sp] + adds r0, r1, r4 + ldrh r0, [r0] + lsls r0, r0, #8 + ldr r5, [sp, #4] + adds r1, r5, r4 + ldrh r1, [r1] + orrs r0, r1 + strh r0, [r3] + mov r1, r8 + ands r0, r1 + ldr r5, [sp, #0xc] + strh r0, [r5] + lsls r2, r2, #1 + adds r2, #1 + lsls r2, r2, #1 + mov r0, sb + adds r3, r2, r0 + add r2, ip + ldr r1, [sp, #8] + adds r0, r1, r4 + ldrh r0, [r0] + lsls r0, r0, #8 + add r4, sl + ldrh r1, [r4] + orrs r0, r1 + strh r0, [r2] + mov r5, r8 + ands r0, r5 + strh r0, [r3] + adds r0, r7, #1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + cmp r7, #0x41 + bls _081D17A6 + movs r0, #0xd5 + lsls r0, r0, #2 + adds r1, r6, r0 + movs r0, #0 + strb r0, [r1] +_081D1806: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D1818: .4byte 0x020388C8 +_081D181C: .4byte 0x0000FFFF +_081D1820: .4byte 0x0000024A + thumb_func_end sub_081D1750 + + thumb_func_start sub_081D1824 +sub_081D1824: @ 0x081D1824 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #3 + bls _081D1830 + movs r1, #0 +_081D1830: + movs r0, #1 + lsls r0, r1 + movs r5, #0x1f + bics r5, r0 + movs r0, #0x40 + movs r1, #0xf0 + bl SetGpuReg + movs r0, #0x42 + movs r1, #0x9b + bl SetGpuReg + ldr r4, _081D1870 + movs r0, #0x44 + adds r1, r4, #0 + bl SetGpuReg + movs r0, #0x46 + adds r1, r4, #0 + bl SetGpuReg + ldr r1, _081D1874 + movs r0, #0x48 + bl SetGpuReg + movs r0, #0x4a + adds r1, r5, #0 + bl SetGpuReg + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081D1870: .4byte 0x00003879 +_081D1874: .4byte 0x00003F3F + thumb_func_end sub_081D1824 + + thumb_func_start sub_081D1878 +sub_081D1878: @ 0x081D1878 + push {r4, r5, r6, r7, lr} + mov ip, r0 + movs r4, #0 + movs r7, #0x96 + lsls r7, r7, #1 + add r7, ip + ldr r6, _081D18BC + add r6, ip + mov r5, ip + adds r5, #0x64 +_081D188C: + lsls r2, r4, #2 + adds r3, r7, r2 + ldrh r1, [r6] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, r2, r0 + adds r2, r5, r2 + ldr r0, [r2] + str r0, [r3] + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #4 + bls _081D188C + movs r1, #0xd5 + lsls r1, r1, #2 + add r1, ip + movs r0, #1 + strb r0, [r1] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D18BC: .4byte 0x00000352 + thumb_func_end sub_081D1878 + + thumb_func_start sub_081D18C0 +sub_081D18C0: @ 0x081D18C0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + str r0, [sp] + adds r6, r1, #0 + adds r5, r2, #0 + str r3, [sp, #4] + ldr r0, [sp, #0x38] + ldr r7, [sp, #0x3c] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + movs r0, #0 + str r0, [sp, #0xc] + ldrh r0, [r5, #2] + ldrh r1, [r3, #2] + cmp r0, r1 + bhs _081D18FA + adds r2, r0, #0 + mov sl, r2 + ldrh r0, [r3, #2] + ldrh r1, [r5] + lsls r4, r1, #0xa + ldrh r3, [r3] + str r3, [sp, #8] + b _081D190E +_081D18FA: + ldrh r0, [r5, #2] + ldr r1, [sp, #4] + ldrh r1, [r1, #2] + mov sl, r1 + ldr r2, [sp, #4] + ldrh r1, [r2] + lsls r4, r1, #0xa + ldrh r3, [r5] + str r3, [sp, #8] + mov r2, sl +_081D190E: + subs r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + cmp r0, #0 + beq _081D1926 + subs r0, r3, r1 + lsls r0, r0, #0xa + mov r1, r8 + bl __divsi3 + str r0, [sp, #0xc] +_081D1926: + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + cmp r7, #0 + bne _081D1970 + mov r0, sl + subs r0, #0x38 + lsls r0, r0, #2 + adds r6, r6, r0 + movs r5, #0 + mov r3, sb + lsls r3, r3, #1 + mov ip, r3 + ldr r0, [sp, #8] + add r0, sb + str r0, [sp, #0x10] + cmp r7, r8 + bhs _081D19FE + movs r7, #1 +_081D1950: + adds r2, r3, r6 + asrs r1, r4, #0xa + asrs r0, r4, #9 + ands r0, r7 + adds r1, r1, r0 + add r1, sb + strh r1, [r2] + ldr r1, [sp, #0xc] + adds r4, r4, r1 + adds r6, #4 + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, r8 + blo _081D1950 + b _081D19FE +_081D1970: + ldr r2, [sp, #0xc] + cmp r2, #0 + ble _081D1A08 + mov r0, sl + subs r0, #0x38 + lsls r0, r0, #2 + adds r7, r7, r0 + movs r5, #0 + mov r3, sb + lsls r3, r3, #1 + mov ip, r3 + ldr r0, [sp, #8] + add r0, sb + str r0, [sp, #0x10] + cmp r5, r8 + bhs _081D19C2 + ldr r0, _081D1A04 + cmp r4, r0 + bgt _081D19C2 + mov r1, ip + str r1, [sp, #0x14] +_081D199A: + ldr r3, [sp, #0x14] + adds r2, r3, r7 + asrs r1, r4, #0xa + asrs r0, r4, #9 + movs r3, #1 + ands r0, r3 + adds r1, r1, r0 + add r1, sb + strh r1, [r2] + ldr r0, [sp, #0xc] + adds r4, r4, r0 + adds r7, #4 + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, r8 + bhs _081D19C2 + ldr r1, _081D1A04 + cmp r4, r1 + ble _081D199A +_081D19C2: + mov r2, sl + adds r1, r2, r5 + ldr r3, [sp] + movs r2, #0xd4 + lsls r2, r2, #2 + adds r0, r3, r2 + strh r1, [r0] + ldrh r0, [r0] + subs r0, #0x38 + lsls r0, r0, #2 + adds r6, r6, r0 + cmp r5, r8 + bhs _081D19FE + mov r3, ip + movs r7, #1 +_081D19E0: + adds r2, r3, r6 + asrs r1, r4, #0xa + asrs r0, r4, #9 + ands r0, r7 + adds r1, r1, r0 + add r1, sb + strh r1, [r2] + ldr r0, [sp, #0xc] + adds r4, r4, r0 + adds r6, #4 + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, r8 + blo _081D19E0 +_081D19FE: + subs r0, r6, #4 + b _081D1AD4 + .align 2, 0 +_081D1A04: .4byte 0x00026BFF +_081D1A08: + ldr r1, [sp, #0xc] + cmp r1, #0 + bge _081D1AAC + mov r0, sl + subs r0, #0x38 + lsls r0, r0, #2 + adds r6, r6, r0 + movs r5, #0 + mov r2, sb + lsls r2, r2, #1 + mov ip, r2 + ldr r3, [sp, #8] + add r3, sb + str r3, [sp, #0x10] + cmp r5, r8 + bhs _081D1A66 + adds r3, r2, r6 + asrs r1, r4, #0xa + asrs r0, r4, #9 + movs r2, #1 + ands r0, r2 + adds r1, r1, r0 + add r1, sb + strh r1, [r3] + b _081D1A5C +_081D1A3A: + ldr r0, [sp, #0xc] + adds r4, r4, r0 + adds r6, #4 + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, r8 + bhs _081D1A66 + mov r1, ip + adds r3, r1, r6 + asrs r2, r4, #0xa + asrs r0, r4, #9 + movs r1, #1 + ands r0, r1 + adds r2, r2, r0 + add r2, sb + strh r2, [r3] +_081D1A5C: + ldr r0, _081D1AA8 + cmp r4, r0 + bgt _081D1A3A + movs r0, #0x9b + strh r0, [r3] +_081D1A66: + mov r2, sl + adds r1, r2, r5 + ldr r3, [sp] + movs r2, #0xd4 + lsls r2, r2, #2 + adds r0, r3, r2 + strh r1, [r0] + ldrh r0, [r0] + subs r0, #0x38 + lsls r0, r0, #2 + adds r7, r7, r0 + cmp r5, r8 + bhs _081D1AA2 + mov r3, ip + movs r6, #1 +_081D1A84: + adds r2, r3, r7 + asrs r1, r4, #0xa + asrs r0, r4, #9 + ands r0, r6 + adds r1, r1, r0 + add r1, sb + strh r1, [r2] + ldr r0, [sp, #0xc] + adds r4, r4, r0 + adds r7, #4 + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, r8 + blo _081D1A84 +_081D1AA2: + subs r0, r7, #4 + b _081D1AD4 + .align 2, 0 +_081D1AA8: .4byte 0x00026BFF +_081D1AAC: + ldr r1, [sp] + movs r2, #0xd4 + lsls r2, r2, #2 + adds r0, r1, r2 + mov r3, sl + strh r3, [r0] + mov r0, sl + subs r0, #0x38 + lsls r0, r0, #2 + adds r6, r6, r0 + adds r7, r7, r0 + ldrh r0, [r5] + adds r0, #1 + strh r0, [r6, #2] + ldr r1, [sp, #4] + ldrh r0, [r1] + strh r0, [r7] + movs r0, #0x9b + strh r0, [r7, #2] + b _081D1ADC +_081D1AD4: + add r0, ip + mov r2, sp + ldrh r2, [r2, #0x10] + strh r2, [r0] +_081D1ADC: + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_081D18C0 + + thumb_func_start sub_081D1AEC +sub_081D1AEC: @ 0x081D1AEC + push {r4, r5, r6, r7, lr} + sub sp, #8 + adds r4, r0, #0 + movs r0, #0x97 + lsls r0, r0, #1 + adds r2, r4, r0 + movs r3, #0x99 + lsls r3, r3, #1 + adds r1, r4, r3 + ldrh r0, [r2] + ldrh r3, [r1] + cmp r0, r3 + bhs _081D1B28 + adds r7, r0, #0 + movs r0, #0xa0 + lsls r0, r0, #1 + adds r1, r4, r0 + movs r3, #0x96 + lsls r3, r3, #1 + adds r2, r4, r3 + subs r0, #0x10 + adds r3, r4, r0 + movs r0, #1 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + adds r0, r4, #0 + bl sub_081D18C0 + b _081D1B48 +_081D1B28: + ldrh r7, [r1] + movs r2, #0xa0 + lsls r2, r2, #1 + adds r1, r4, r2 + movs r3, #0x98 + lsls r3, r3, #1 + adds r2, r4, r3 + movs r0, #0x96 + lsls r0, r0, #1 + adds r3, r4, r0 + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + adds r0, r4, #0 + bl sub_081D18C0 +_081D1B48: + movs r1, #0xa0 + lsls r1, r1, #1 + adds r5, r4, r1 + movs r3, #0x98 + lsls r3, r3, #1 + adds r2, r4, r3 + movs r0, #0x9a + lsls r0, r0, #1 + adds r6, r4, r0 + movs r0, #1 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + adds r0, r4, #0 + adds r1, r5, #0 + adds r3, r6, #0 + bl sub_081D18C0 + movs r2, #0 + movs r1, #0x9b + lsls r1, r1, #1 + adds r0, r4, r1 + movs r3, #0x9d + lsls r3, r3, #1 + adds r1, r4, r3 + ldrh r0, [r0] + ldrh r1, [r1] + cmp r0, r1 + bhi _081D1B84 + movs r2, #1 +_081D1B84: + movs r0, #0x9c + lsls r0, r0, #1 + adds r3, r4, r0 + str r2, [sp] + movs r1, #0x92 + lsls r1, r1, #2 + adds r0, r4, r1 + str r0, [sp, #4] + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_081D18C0 + movs r2, #0x38 + cmp r2, r7 + bhs _081D1BC6 + adds r6, r5, #0 + movs r3, #0 + movs r0, #0xa1 + lsls r0, r0, #1 + adds r5, r4, r0 +_081D1BAE: + adds r0, r2, #0 + subs r0, #0x38 + lsls r0, r0, #2 + adds r1, r6, r0 + strh r3, [r1] + adds r0, r5, r0 + strh r3, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, r7 + blo _081D1BAE +_081D1BC6: + movs r1, #0x97 + lsls r1, r1, #1 + adds r0, r4, r1 + ldrh r2, [r0] + movs r3, #0xd4 + lsls r3, r3, #2 + adds r0, r4, r3 + ldrh r1, [r0] + cmp r2, r1 + bhi _081D1BFA + movs r1, #0xa0 + lsls r1, r1, #1 + adds r3, r4, r1 + movs r5, #0x9b + adds r1, r0, #0 +_081D1BE4: + adds r0, r2, #0 + subs r0, #0x38 + lsls r0, r0, #2 + adds r0, r3, r0 + strh r5, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldrh r0, [r1] + cmp r2, r0 + bls _081D1BE4 +_081D1BFA: + movs r2, #0x9b + lsls r2, r2, #1 + adds r1, r4, r2 + movs r3, #0xd4 + lsls r3, r3, #2 + adds r0, r4, r3 + ldrh r0, [r0] + ldrh r1, [r1] + cmp r0, r1 + bhs _081D1C10 + adds r0, r1, #0 +_081D1C10: + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0x79 + bhi _081D1C40 + movs r0, #0xa0 + lsls r0, r0, #1 + adds r5, r4, r0 + movs r3, #0 + movs r1, #0xa1 + lsls r1, r1, #1 + adds r4, r4, r1 +_081D1C28: + adds r0, r2, #0 + subs r0, #0x38 + lsls r0, r0, #2 + adds r1, r5, r0 + strh r3, [r1] + adds r0, r4, r0 + strh r3, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0x79 + bls _081D1C28 +_081D1C40: + add sp, #8 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_081D1AEC + + thumb_func_start sub_081D1C48 +sub_081D1C48: @ 0x081D1C48 + push {r4, r5, r6, r7, lr} + sub sp, #8 + adds r4, r0, #0 + movs r0, #0x97 + lsls r0, r0, #1 + adds r2, r4, r0 + movs r3, #0x9f + lsls r3, r3, #1 + adds r1, r4, r3 + ldrh r0, [r2] + ldrh r3, [r1] + cmp r0, r3 + bhs _081D1C84 + adds r7, r0, #0 + movs r0, #0x92 + lsls r0, r0, #2 + adds r1, r4, r0 + movs r3, #0x96 + lsls r3, r3, #1 + adds r2, r4, r3 + movs r0, #0x9e + lsls r0, r0, #1 + adds r3, r4, r0 + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + adds r0, r4, #0 + bl sub_081D18C0 + b _081D1CA6 +_081D1C84: + ldrh r7, [r1] + movs r2, #0x92 + lsls r2, r2, #2 + adds r1, r4, r2 + movs r3, #0x9e + lsls r3, r3, #1 + adds r2, r4, r3 + movs r0, #0x96 + lsls r0, r0, #1 + adds r3, r4, r0 + movs r0, #1 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + adds r0, r4, #0 + bl sub_081D18C0 +_081D1CA6: + movs r1, #0x92 + lsls r1, r1, #2 + adds r5, r4, r1 + movs r3, #0x9e + lsls r3, r3, #1 + adds r2, r4, r3 + movs r0, #0x9c + lsls r0, r0, #1 + adds r3, r4, r0 + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_081D18C0 + movs r2, #0x38 + cmp r2, r7 + bhs _081D1CEC + adds r6, r5, #0 + movs r3, #0 + ldr r1, _081D1D6C + adds r5, r4, r1 +_081D1CD4: + adds r0, r2, #0 + subs r0, #0x38 + lsls r0, r0, #2 + adds r1, r6, r0 + strh r3, [r1] + adds r0, r5, r0 + strh r3, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, r7 + blo _081D1CD4 +_081D1CEC: + movs r2, #0x97 + lsls r2, r2, #1 + adds r0, r4, r2 + ldrh r2, [r0] + movs r3, #0xd4 + lsls r3, r3, #2 + adds r0, r4, r3 + ldrh r1, [r0] + cmp r2, r1 + bhi _081D1D1E + ldr r1, _081D1D6C + adds r3, r4, r1 + movs r5, #0x9b + adds r1, r0, #0 +_081D1D08: + adds r0, r2, #0 + subs r0, #0x38 + lsls r0, r0, #2 + adds r0, r3, r0 + strh r5, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldrh r0, [r1] + cmp r2, r0 + bls _081D1D08 +_081D1D1E: + movs r1, #0x9d + lsls r1, r1, #1 + adds r0, r4, r1 + ldrh r0, [r0] + adds r1, r0, #1 + movs r2, #0xd4 + lsls r2, r2, #2 + adds r0, r4, r2 + ldrh r0, [r0] + cmp r0, r1 + bge _081D1D36 + adds r0, r1, #0 +_081D1D36: + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0x79 + bhi _081D1D62 + movs r3, #0x92 + lsls r3, r3, #2 + adds r5, r4, r3 + movs r3, #0 + ldr r0, _081D1D6C + adds r4, r4, r0 +_081D1D4A: + adds r0, r2, #0 + subs r0, #0x38 + lsls r0, r0, #2 + adds r1, r5, r0 + strh r3, [r1] + adds r0, r4, r0 + strh r3, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0x79 + bls _081D1D4A +_081D1D62: + add sp, #8 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D1D6C: .4byte 0x0000024A + thumb_func_end sub_081D1C48 + + thumb_func_start sub_081D1D70 +sub_081D1D70: @ 0x081D1D70 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r6, r0, #0 + mov r8, r1 + ldr r1, _081D1E38 + ldrb r0, [r6] + adds r0, r0, r1 + ldrb r2, [r0] + adds r6, #1 + movs r0, #0x9b + mov r3, r8 + strh r0, [r3] + movs r0, #0x5b + subs r0, r0, r2 + strh r0, [r3, #2] + movs r7, #0x40 + movs r0, #0 + mov ip, r0 + movs r2, #1 + mov sb, r2 + ldr r3, _081D1E3C + mov sl, r3 +_081D1DA2: + adds r0, r7, #0 + adds r0, #0x33 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + mov r1, ip + lsls r0, r1, #0x18 + movs r2, #0xff + lsls r2, r2, #0x18 + adds r0, r0, r2 + lsrs r3, r0, #0x18 + mov ip, r3 + cmp r0, #0 + bge _081D1DC0 + movs r0, #4 + mov ip, r0 +_081D1DC0: + mov r1, ip + lsls r0, r1, #0x18 + asrs r4, r0, #0x18 + cmp r4, #2 + bne _081D1DD0 + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 +_081D1DD0: + ldrb r0, [r6] + ldr r2, _081D1E38 + adds r0, r0, r2 + ldrb r2, [r0] + adds r6, #1 + lsls r0, r4, #2 + mov r1, r8 + adds r3, r0, r1 + adds r0, r7, #0 + adds r0, #0x40 + lsls r0, r0, #1 + add r0, sl + movs r1, #0 + ldrsh r0, [r0, r1] + muls r0, r2, r0 + asrs r5, r0, #8 + adds r0, r5, #0 + adds r0, #0x9b + strh r0, [r3] + lsls r0, r7, #1 + add r0, sl + movs r1, #0 + ldrsh r0, [r0, r1] + adds r1, r2, #0 + muls r1, r0, r1 + asrs r1, r1, #8 + movs r0, #0x5b + subs r0, r0, r1 + strh r0, [r3, #2] + cmp r4, #2 + bgt _081D1E1C + cmp r2, #0x20 + bne _081D1E16 + cmp r4, #2 + beq _081D1E1C +_081D1E16: + adds r0, r5, #0 + adds r0, #0x9c + strh r0, [r3] +_081D1E1C: + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + cmp r0, #4 + bls _081D1DA2 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D1E38: .4byte 0x085F7B18 +_081D1E3C: .4byte 0x082FA8CC + thumb_func_end sub_081D1D70 + + thumb_func_start InitMoveRelearnerWindows +InitMoveRelearnerWindows: @ 0x081D1E40 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _081D1E90 + bl InitWindows + bl DeactivateAllTextPrinters + movs r0, #0 + movs r1, #1 + movs r2, #0xe0 + bl LoadUserWindowBorderGfx + ldr r0, _081D1E94 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + movs r4, #0 +_081D1E66: + adds r0, r4, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #4 + bls _081D1E66 + cmp r5, #0 + bne _081D1E98 + movs r0, #0 + bl PutWindowTilemap + movs r0, #0 + movs r1, #0 + movs r2, #1 + movs r3, #0xe + bl DrawStdFrameWithCustomTileAndPalette + b _081D1EAA + .align 2, 0 +_081D1E90: .4byte 0x085F7C18 +_081D1E94: .4byte 0x085D7B04 +_081D1E98: + movs r0, #1 + bl PutWindowTilemap + movs r0, #1 + movs r1, #0 + movs r2, #1 + movs r3, #0xe + bl DrawStdFrameWithCustomTileAndPalette +_081D1EAA: + movs r0, #2 + bl PutWindowTilemap + movs r0, #3 + bl PutWindowTilemap + movs r0, #2 + movs r1, #0 + movs r2, #1 + movs r3, #0xe + bl DrawStdFrameWithCustomTileAndPalette + movs r0, #3 + movs r1, #0 + movs r2, #1 + movs r3, #0xe + bl DrawStdFrameWithCustomTileAndPalette + bl sub_081D1EE0 + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end InitMoveRelearnerWindows + + thumb_func_start sub_081D1EE0 +sub_081D1EE0: @ 0x081D1EE0 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + sub sp, #0xc + ldr r2, _081D1FB8 + movs r0, #2 + mov sb, r0 + str r0, [sp] + movs r5, #0xff + str r5, [sp, #4] + movs r4, #0 + str r4, [sp, #8] + movs r0, #0 + movs r1, #1 + movs r3, #0x30 + bl AddTextPrinterParameterized + ldr r0, _081D1FBC + mov sl, r0 + movs r0, #0x1a + mov r8, r0 + str r0, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #0 + movs r1, #1 + mov r2, sl + movs r3, #0 + bl AddTextPrinterParameterized + ldr r2, _081D1FC0 + mov r0, r8 + str r0, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #0 + movs r1, #1 + movs r3, #0x50 + bl AddTextPrinterParameterized + ldr r2, _081D1FC4 + movs r6, #0x2a + str r6, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #0 + movs r1, #1 + movs r3, #8 + bl AddTextPrinterParameterized + ldr r2, _081D1FC8 + str r6, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #0 + movs r1, #1 + movs r3, #0x48 + bl AddTextPrinterParameterized + ldr r2, _081D1FCC + mov r0, sb + str r0, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r3, #0x2c + bl AddTextPrinterParameterized + mov r0, r8 + str r0, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #1 + movs r1, #1 + mov r2, sl + movs r3, #0 + bl AddTextPrinterParameterized + ldr r2, _081D1FD0 + str r6, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + ldr r2, _081D1FD4 + str r6, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r3, #0x50 + bl AddTextPrinterParameterized + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081D1FB8: .4byte 0x085F7C50 +_081D1FBC: .4byte 0x085F7C5F +_081D1FC0: .4byte 0x085F7C68 +_081D1FC4: .4byte 0x085F7C64 +_081D1FC8: .4byte 0x085F7C6E +_081D1FCC: .4byte 0x085F7C57 +_081D1FD0: .4byte 0x085F7C75 +_081D1FD4: .4byte 0x085F7C7A + thumb_func_end sub_081D1EE0 + + thumb_func_start LoadMoveRelearnerMovesList +LoadMoveRelearnerMovesList: @ 0x081D1FD8 + push {r4, r5, r6, r7, lr} + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + ldr r3, _081D1FF8 + adds r2, r3, #0 + ldr r1, _081D1FFC + ldm r1!, {r5, r6, r7} + stm r2!, {r5, r6, r7} + ldm r1!, {r5, r6, r7} + stm r2!, {r5, r6, r7} + strh r4, [r3, #0xc] + str r0, [r3] + cmp r4, #5 + bhi _081D2000 + strh r4, [r3, #0xe] + b _081D2004 + .align 2, 0 +_081D1FF8: .4byte 0x03006050 +_081D1FFC: .4byte 0x085F7C80 +_081D2000: + movs r0, #6 + strh r0, [r3, #0xe] +_081D2004: + ldrb r0, [r3, #0xe] + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end LoadMoveRelearnerMovesList + + thumb_func_start MoveRelearnerMenuLoadContestMoveDescription +MoveRelearnerMenuLoadContestMoveDescription: @ 0x081D200C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x14 + adds r7, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #1 + beq _081D2024 + movs r0, #5 + bl PlaySE +_081D2024: + movs r6, #0x20 + str r6, [sp] + movs r4, #0x10 + str r4, [sp, #4] + movs r0, #0 + movs r1, #0x11 + movs r2, #0x20 + movs r3, #0x1a + bl FillWindowPixelRect + movs r5, #0x18 + str r5, [sp] + str r4, [sp, #4] + movs r0, #0 + movs r1, #0x11 + movs r2, #0x78 + movs r3, #0x1a + bl FillWindowPixelRect + str r4, [sp] + str r4, [sp, #4] + movs r0, #0 + movs r1, #0x11 + movs r2, #0x20 + movs r3, #0x2a + bl FillWindowPixelRect + str r5, [sp] + str r4, [sp, #4] + movs r0, #0 + movs r1, #0x11 + movs r2, #0x78 + movs r3, #0x2a + bl FillWindowPixelRect + movs r5, #0x90 + str r5, [sp] + str r6, [sp, #4] + movs r0, #0 + movs r1, #0x11 + movs r2, #0 + movs r3, #0x42 + bl FillWindowPixelRect + movs r0, #0x28 + str r0, [sp] + str r4, [sp, #4] + movs r0, #1 + movs r1, #0x11 + movs r2, #0x20 + movs r3, #0x1a + bl FillWindowPixelRect + str r5, [sp] + str r6, [sp, #4] + movs r0, #1 + movs r1, #0x11 + movs r2, #0 + movs r3, #0x42 + bl FillWindowPixelRect + movs r0, #2 + rsbs r0, r0, #0 + cmp r7, r0 + bne _081D20B8 + movs r0, #0 + movs r1, #2 + bl CopyWindowToVram + movs r0, #1 + movs r1, #2 + bl CopyWindowToVram + b _081D21E4 +_081D20B8: + ldr r1, _081D20F4 + lsls r4, r7, #1 + adds r0, r4, r7 + lsls r0, r0, #2 + adds r5, r0, r1 + ldrb r0, [r5, #2] + lsls r2, r0, #2 + adds r2, r2, r0 + ldr r0, _081D20F8 + adds r2, r2, r0 + movs r0, #0x1a + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + movs r1, #1 + movs r3, #0x20 + bl AddTextPrinterParameterized + ldrb r0, [r5, #1] + adds r6, r4, #0 + cmp r0, #1 + bhi _081D2100 + ldr r1, _081D20FC + add r0, sp, #0xc + bl StringCopy + b _081D210C + .align 2, 0 +_081D20F4: .4byte 0x082ED220 +_081D20F8: .4byte 0x082EBC88 +_081D20FC: .4byte 0x085C9406 +_081D2100: + ldrb r1, [r5, #1] + add r0, sp, #0xc + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN +_081D210C: + movs r0, #0x1a + str r0, [sp] + movs r5, #0xff + str r5, [sp, #4] + movs r4, #0 + str r4, [sp, #8] + movs r0, #0 + movs r1, #1 + add r2, sp, #0xc + movs r3, #0x78 + bl AddTextPrinterParameterized + ldr r1, _081D215C + adds r0, r6, r7 + lsls r0, r0, #2 + adds r6, r0, r1 + ldrb r1, [r6, #4] + add r0, sp, #0xc + movs r2, #0 + movs r3, #2 + bl ConvertIntToDecimalStringN + movs r0, #0x2a + str r0, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #0 + movs r1, #1 + add r2, sp, #0xc + movs r3, #0x20 + bl AddTextPrinterParameterized + ldrb r0, [r6, #3] + cmp r0, #0 + bne _081D2164 + ldr r1, _081D2160 + add r0, sp, #0xc + bl StringCopy + b _081D2170 + .align 2, 0 +_081D215C: .4byte 0x082ED220 +_081D2160: .4byte 0x085C9406 +_081D2164: + ldrb r1, [r6, #3] + add r0, sp, #0xc + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN +_081D2170: + movs r0, #0x2a + str r0, [sp] + movs r0, #0xff + mov r8, r0 + str r0, [sp, #4] + movs r5, #0 + str r5, [sp, #8] + movs r0, #0 + movs r1, #1 + add r2, sp, #0xc + movs r3, #0x78 + bl AddTextPrinterParameterized + lsls r4, r7, #3 + subs r2, r4, r7 + lsls r2, r2, #3 + ldr r0, _081D21F8 + adds r2, r2, r0 + movs r6, #0x42 + str r6, [sp] + str r5, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + ldr r1, _081D21FC + ldr r0, _081D2200 + adds r4, r4, r0 + ldrb r0, [r4, #1] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1b + adds r0, r0, r1 + ldr r2, [r0] + movs r0, #0x1a + str r0, [sp] + mov r0, r8 + str r0, [sp, #4] + str r5, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r3, #0x20 + bl AddTextPrinterParameterized + ldr r1, _081D2204 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r2, [r0] + str r6, [sp] + str r5, [sp, #4] + str r5, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized +_081D21E4: + adds r0, r7, #0 + bl MoveRelearnerShowHideHearts + add sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D21F8: .4byte 0x085E7FFC +_081D21FC: .4byte 0x08560CAC +_081D2200: .4byte 0x08565FCC +_081D2204: .4byte 0x08560BB4 + thumb_func_end MoveRelearnerMenuLoadContestMoveDescription + + thumb_func_start MoveRelearnerPrintText +MoveRelearnerPrintText: @ 0x081D2208 + push {r4, lr} + sub sp, #0x10 + adds r4, r0, #0 + movs r0, #3 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r2, _081D224C + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + bl GetPlayerTextSpeedDelay + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #0 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + movs r0, #3 + str r0, [sp, #0xc] + movs r1, #1 + adds r2, r4, #0 + bl AddTextPrinterParameterized2 + add sp, #0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D224C: .4byte 0x030030B4 + thumb_func_end MoveRelearnerPrintText + + thumb_func_start MoveRelearnerRunTextPrinters +MoveRelearnerRunTextPrinters: @ 0x081D2250 + push {lr} + bl RunTextPrinters + movs r0, #3 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + thumb_func_end MoveRelearnerRunTextPrinters + + thumb_func_start MoveRelearnerCreateYesNoMenu +MoveRelearnerCreateYesNoMenu: @ 0x081D2264 + push {lr} + ldr r0, _081D2278 + movs r1, #1 + movs r2, #1 + movs r3, #0xe + bl sub_08198D44 + pop {r0} + bx r0 + .align 2, 0 +_081D2278: .4byte 0x085F7C48 + thumb_func_end MoveRelearnerCreateYesNoMenu + + thumb_func_start GetBoxOrPartyMonData +GetBoxOrPartyMonData: @ 0x081D227C + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + cmp r0, #0xe + bne _081D22BC + cmp r2, #2 + beq _081D2292 + cmp r2, #7 + bne _081D22A8 +_081D2292: + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081D22A4 + adds r0, r0, r1 + adds r1, r2, #0 + adds r2, r3, #0 + bl GetMonData + b _081D22DE + .align 2, 0 +_081D22A4: .4byte 0x02024190 +_081D22A8: + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081D22B8 + adds r0, r0, r1 + adds r1, r2, #0 + bl GetMonData + b _081D22DE + .align 2, 0 +_081D22B8: .4byte 0x02024190 +_081D22BC: + cmp r2, #2 + beq _081D22C4 + cmp r2, #7 + bne _081D22D2 +_081D22C4: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl GetAndCopyBoxMonDataAt + b _081D22DE +_081D22D2: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl GetBoxMonDataAt +_081D22DE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetBoxOrPartyMonData + + thumb_func_start sub_081D22E4 +sub_081D22E4: @ 0x081D22E4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r6, r2, #0x10 + movs r0, #0xfc + strb r0, [r5] + adds r5, #1 + movs r0, #4 + strb r0, [r5] + adds r5, #1 + movs r0, #8 + strb r0, [r5] + adds r5, #1 + movs r0, #0 + strb r0, [r5] + adds r5, #1 + movs r0, #9 + strb r0, [r5] + adds r5, #1 + adds r0, r4, #0 + adds r1, r6, #0 + movs r2, #0x2d + movs r3, #0 + bl GetBoxOrPartyMonData + cmp r0, #0 + beq _081D2334 + ldr r1, _081D2330 + adds r0, r5, #0 + movs r2, #0 + movs r3, #0xc + bl StringCopyPadded + b _081D24A2 + .align 2, 0 +_081D2330: .4byte 0x085C8C62 +_081D2334: + adds r0, r4, #0 + adds r1, r6, #0 + movs r2, #2 + adds r3, r5, #0 + bl GetBoxOrPartyMonData + adds r0, r5, #0 + bl StringGetEnd10 + adds r0, r4, #0 + adds r1, r6, #0 + movs r2, #0xb + movs r3, #0 + bl GetBoxOrPartyMonData + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + cmp r4, #0xe + bne _081D2384 + movs r0, #0x64 + adds r4, r6, #0 + muls r4, r0, r4 + ldr r0, _081D2380 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x38 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + adds r0, r4, #0 + bl GetMonGender + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + b _081D23A6 + .align 2, 0 +_081D2380: .4byte 0x02024190 +_081D2384: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r6, #0x18 + lsrs r1, r1, #0x18 + bl GetBoxedMonPtr + adds r4, r0, #0 + bl GetBoxMonGender + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r0, r4, #0 + bl GetLevelFromBoxMonExp + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 +_081D23A6: + cmp r7, #0x1d + beq _081D23AE + cmp r7, #0x20 + bne _081D23C4 +_081D23AE: + lsls r1, r7, #1 + adds r1, r1, r7 + lsls r1, r1, #1 + ldr r0, _081D23CC + adds r1, r1, r0 + adds r0, r5, #0 + bl StringCompare + cmp r0, #0 + bne _081D23C4 + movs r6, #0xff +_081D23C4: + adds r3, r5, #0 + movs r2, #0 + b _081D23D8 + .align 2, 0 +_081D23CC: .4byte 0x082EA31C +_081D23D0: + adds r3, #1 + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 +_081D23D8: + ldrb r0, [r3] + cmp r0, #0xff + bne _081D23D0 + adds r1, r2, #0 + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r1, #4 + bhi _081D23FC + movs r4, #0 +_081D23EC: + strb r4, [r3] + adds r3, #1 + adds r1, r2, #0 + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r1, #4 + bls _081D23EC +_081D23FC: + movs r0, #0 + strb r0, [r3] + adds r3, #1 + cmp r6, #0 + beq _081D240C + cmp r6, #0xfe + beq _081D2432 + b _081D2456 +_081D240C: + movs r1, #0xfc + strb r1, [r3] + adds r3, #1 + movs r0, #1 + strb r0, [r3] + adds r3, #1 + movs r0, #4 + strb r0, [r3] + adds r3, #1 + strb r1, [r3] + adds r3, #1 + movs r0, #3 + strb r0, [r3] + adds r3, #1 + movs r0, #5 + strb r0, [r3] + adds r3, #1 + movs r0, #0xb5 + b _081D2456 +_081D2432: + movs r1, #0xfc + strb r1, [r3] + adds r3, #1 + movs r0, #1 + strb r0, [r3] + adds r3, #1 + movs r0, #6 + strb r0, [r3] + adds r3, #1 + strb r1, [r3] + adds r3, #1 + movs r0, #3 + strb r0, [r3] + adds r3, #1 + movs r0, #7 + strb r0, [r3] + adds r3, #1 + movs r0, #0xb6 +_081D2456: + strb r0, [r3] + adds r3, #1 + movs r0, #0xfc + strb r0, [r3] + adds r3, #1 + movs r0, #4 + strb r0, [r3] + adds r3, #1 + movs r0, #8 + strb r0, [r3] + adds r3, #1 + movs r4, #0 + strb r4, [r3] + adds r3, #1 + movs r0, #9 + strb r0, [r3] + adds r3, #1 + movs r0, #0xba + strb r0, [r3] + adds r3, #1 + movs r0, #0xf9 + strb r0, [r3] + adds r3, #1 + movs r0, #5 + strb r0, [r3] + adds r3, #1 + adds r0, r3, #0 + mov r1, r8 + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + adds r3, r0, #0 + strb r4, [r3] + adds r3, #1 + movs r0, #0xff + strb r0, [r3] + adds r0, r3, #0 +_081D24A2: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_081D22E4 + + thumb_func_start sub_081D24AC +sub_081D24AC: @ 0x081D24AC + push {r4, lr} + adds r4, r0, #0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + b _081D24C4 +_081D24B6: + strb r3, [r4] + adds r1, #1 + adds r4, #1 + lsls r0, r2, #0x10 + ldr r2, _081D2500 + adds r0, r0, r2 + lsrs r2, r0, #0x10 +_081D24C4: + ldrb r3, [r1] + adds r0, r3, #0 + cmp r0, #0xff + bne _081D24B6 + adds r1, r2, #0 + lsls r0, r1, #0x10 + ldr r2, _081D2500 + adds r0, r0, r2 + lsrs r2, r0, #0x10 + lsls r1, r1, #0x10 + cmp r1, #0 + ble _081D24F2 + movs r3, #0 +_081D24DE: + strb r3, [r4] + adds r4, #1 + adds r1, r2, #0 + lsls r0, r1, #0x10 + ldr r2, _081D2500 + adds r0, r0, r2 + lsrs r2, r0, #0x10 + lsls r1, r1, #0x10 + cmp r1, #0 + bgt _081D24DE +_081D24F2: + movs r0, #0xff + strb r0, [r4] + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081D2500: .4byte 0xFFFF0000 + thumb_func_end sub_081D24AC + + thumb_func_start sub_081D2504 +sub_081D2504: @ 0x081D2504 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + ldr r0, [sp, #0x14] + ldr r1, [sp, #0x18] + ldr r4, [sp, #0x1c] + lsls r2, r2, #0x10 + lsrs r7, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r0, r1, #0x10 + lsls r4, r4, #0x18 + cmp r4, #0 + bne _081D252C + subs r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_081D252C: + cmp r2, r0 + beq _081D2572 + adds r0, r6, #0 + adds r1, r7, #0 + adds r2, r3, #0 + bl sub_081D22E4 + movs r0, #0xfc + strb r0, [r5] + movs r0, #4 + strb r0, [r5, #1] + movs r0, #8 + strb r0, [r5, #2] + movs r0, #0 + strb r0, [r5, #3] + movs r0, #9 + strb r0, [r5, #4] + cmp r7, #0xe + bne _081D255C + adds r0, r5, #5 + ldr r1, _081D2558 + b _081D256A + .align 2, 0 +_081D2558: .4byte 0x085CB7C6 +_081D255C: + adds r4, r5, #5 + lsls r0, r7, #0x18 + lsrs r0, r0, #0x18 + bl GetBoxNamePtr + adds r1, r0, #0 + adds r0, r4, #0 +_081D256A: + movs r2, #8 + bl sub_081D24AC + b _081D25A2 +_081D2572: + movs r1, #0 + movs r2, #0 +_081D2576: + adds r0, r6, r1 + strb r2, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0xb + bls _081D2576 + adds r1, r6, r1 + movs r0, #0xff + strb r0, [r1] + movs r1, #0 + movs r2, #0 +_081D258E: + adds r0, r5, r1 + strb r2, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #7 + bls _081D258E + adds r1, r5, r1 + movs r0, #0xff + strb r0, [r1] +_081D25A2: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_081D2504 + + thumb_func_start sub_081D25A8 +sub_081D25A8: @ 0x081D25A8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov r8, r0 + mov sl, r1 + ldr r0, [sp, #0x20] + ldr r1, [sp, #0x24] + ldr r4, [sp, #0x28] + ldr r5, [sp, #0x2c] + lsls r2, r2, #0x10 + lsrs r7, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r6, r3, #0x10 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sb, r1 + lsls r4, r4, #0x10 + lsrs r0, r4, #0x10 + lsls r5, r5, #0x18 + cmp r5, #0 + bne _081D25E0 + subs r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_081D25E0: + cmp r2, r0 + beq _081D268C + adds r0, r7, #0 + adds r1, r6, #0 + movs r2, #0x16 + movs r3, #0 + bl GetBoxOrPartyMonData + mov r1, sb + lsls r5, r1, #2 + adds r4, r5, r1 + mov r2, r8 + adds r1, r2, r4 + strb r0, [r1] + adds r0, r7, #0 + adds r1, r6, #0 + movs r2, #0x2f + movs r3, #0 + bl GetBoxOrPartyMonData + mov r1, r8 + adds r1, #1 + adds r1, r1, r4 + strb r0, [r1] + adds r0, r7, #0 + adds r1, r6, #0 + movs r2, #0x21 + movs r3, #0 + bl GetBoxOrPartyMonData + mov r1, r8 + adds r1, #2 + adds r1, r1, r4 + strb r0, [r1] + adds r0, r7, #0 + adds r1, r6, #0 + movs r2, #0x18 + movs r3, #0 + bl GetBoxOrPartyMonData + mov r1, r8 + adds r1, #3 + adds r1, r1, r4 + strb r0, [r1] + adds r0, r7, #0 + adds r1, r6, #0 + movs r2, #0x17 + movs r3, #0 + bl GetBoxOrPartyMonData + mov r1, r8 + adds r1, #4 + adds r1, r1, r4 + strb r0, [r1] + mov r4, sl + add r4, sb + adds r0, r7, #0 + adds r1, r6, #0 + movs r2, #0x30 + movs r3, #0 + bl GetBoxOrPartyMonData + cmp r0, #0xff + beq _081D2674 + adds r0, r7, #0 + adds r1, r6, #0 + movs r2, #0x30 + movs r3, #0 + bl GetBoxOrPartyMonData + movs r1, #0x1d + bl __udivsi3 + b _081D2676 +_081D2674: + movs r0, #9 +_081D2676: + strb r0, [r4] + mov r0, sb + adds r1, r5, r0 + mov r2, r8 + adds r0, r2, r1 + lsls r1, r1, #2 + adds r1, #0x14 + add r1, r8 + bl sub_081D1D70 + b _081D26B6 +_081D268C: + movs r2, #0 + mov r0, sb + lsls r5, r0, #2 + adds r1, r5, r0 + movs r6, #0 + lsls r3, r1, #2 + movs r5, #0x9b + movs r4, #0x5b +_081D269C: + adds r0, r2, r1 + add r0, r8 + strb r6, [r0] + lsls r0, r2, #2 + adds r0, r0, r3 + add r0, r8 + strh r5, [r0, #0x14] + strh r4, [r0, #0x16] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #4 + bls _081D269C +_081D26B6: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_081D25A8 + + thumb_func_start sub_081D26C4 +sub_081D26C4: @ 0x081D26C4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + mov r8, r0 + mov sb, r1 + ldr r0, [sp, #0x20] + ldr r1, [sp, #0x24] + ldr r4, [sp, #0x28] + lsls r2, r2, #0x10 + lsrs r7, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r5, r3, #0x10 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r0, r1, #0x10 + lsls r4, r4, #0x18 + cmp r4, #0 + bne _081D26F4 + subs r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_081D26F4: + cmp r2, r0 + beq _081D274A + adds r0, r7, #0 + adds r1, r5, #0 + movs r2, #0x41 + movs r3, #0 + bl GetBoxOrPartyMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r7, #0 + adds r1, r5, #0 + movs r2, #1 + movs r3, #0 + bl GetBoxOrPartyMonData + adds r6, r0, #0 + adds r0, r7, #0 + adds r1, r5, #0 + movs r2, #0 + movs r3, #0 + bl GetBoxOrPartyMonData + adds r5, r0, #0 + lsls r0, r4, #3 + ldr r1, _081D2758 + adds r0, r0, r1 + movs r1, #1 + str r1, [sp] + mov r1, r8 + adds r2, r4, #0 + adds r3, r5, #0 + bl LoadSpecialPokePic + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r5, #0 + bl GetMonSpritePalFromSpeciesAndPersonality + mov r1, sb + bl LZ77UnCompWram +_081D274A: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D2758: .4byte 0x082DDA1C + thumb_func_end sub_081D26C4 + + thumb_func_start sub_081D275C +sub_081D275C: @ 0x081D275C + push {lr} + adds r1, r0, #0 + ldrh r0, [r1] + adds r0, #0x18 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + ble _081D2770 + movs r0, #0 + strh r0, [r1] +_081D2770: + movs r0, #0 + ldrsh r1, [r1, r0] + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081D275C + + thumb_func_start sub_081D2780 +sub_081D2780: @ 0x081D2780 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1] + subs r0, #0x18 + strh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x50 + rsbs r2, r2, #0 + cmp r0, r2 + bge _081D2798 + strh r2, [r1] +_081D2798: + movs r0, #0 + ldrsh r1, [r1, r0] + eors r1, r2 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + pop {r1} + bx r1 + thumb_func_end sub_081D2780 + + thumb_func_start sub_081D27A8 +sub_081D27A8: @ 0x081D27A8 + push {r4, r5, lr} + adds r5, r1, #0 + bl sub_081D16BC + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + bl sub_081D275C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + cmp r4, #0 + bne _081D27CA + cmp r0, #0 + beq _081D27CC +_081D27CA: + movs r1, #1 +_081D27CC: + adds r0, r1, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_081D27A8 + + thumb_func_start sub_081D27D4 +sub_081D27D4: @ 0x081D27D4 + push {r4, r5, lr} + adds r5, r1, #0 + bl sub_081D16BC + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + bl sub_081D2780 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + cmp r4, #0 + bne _081D27F6 + cmp r0, #0 + beq _081D27F8 +_081D27F6: + movs r1, #1 +_081D27F8: + adds r0, r1, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_081D27D4 + + thumb_func_start sub_081D2800 +sub_081D2800: @ 0x081D2800 + push {r4, r5, r6, r7, lr} + sub sp, #0x20 + ldr r3, _081D2840 + ldr r4, [r3] + ldr r5, [r3, #4] + str r4, [sp, #0x18] + str r5, [sp, #0x1c] + mov r4, sp + ldr r3, _081D2844 + ldm r3!, {r5, r6, r7} + stm r4!, {r5, r6, r7} + ldm r3!, {r5, r6, r7} + stm r4!, {r5, r6, r7} + ldr r3, _081D2848 + ldr r4, [r3, #4] + ldr r3, [r3] + ldr r5, [sp, #0x18] + ldr r6, [sp, #0x1c] + str r5, [r0] + str r6, [r0, #4] + mov r0, sp + ldm r0!, {r5, r6, r7} + stm r1!, {r5, r6, r7} + ldm r0!, {r5, r6, r7} + stm r1!, {r5, r6, r7} + str r3, [r2] + str r4, [r2, #4] + add sp, #0x20 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D2840: .4byte 0x085FA898 +_081D2844: .4byte 0x085FA8A0 +_081D2848: .4byte 0x085FA8B8 + thumb_func_end sub_081D2800 + + thumb_func_start sub_081D284C +sub_081D284C: @ 0x081D284C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x50 + adds r5, r0, #0 + mov ip, r1 + mov r8, r2 + mov r1, sp + ldr r0, _081D28D4 + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldm r0!, {r2, r6, r7} + stm r1!, {r2, r6, r7} + ldm r0!, {r3, r4} + stm r1!, {r3, r4} + add r3, sp, #0x20 + adds r1, r3, #0 + ldr r0, _081D28D8 + ldm r0!, {r2, r6, r7} + stm r1!, {r2, r6, r7} + ldm r0!, {r4, r6, r7} + stm r1!, {r4, r6, r7} + add r2, sp, #0x38 + adds r1, r2, #0 + ldr r0, _081D28DC + ldm r0!, {r4, r6, r7} + stm r1!, {r4, r6, r7} + ldm r0!, {r4, r6, r7} + stm r1!, {r4, r6, r7} + movs r4, #0 +_081D2888: + lsls r0, r4, #3 + add r0, sp + ldr r1, [r0, #4] + ldr r0, [r0] + stm r5!, {r0, r1} + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _081D2888 + mov r1, ip + adds r0, r2, #0 + ldm r0!, {r2, r4, r5} + stm r1!, {r2, r4, r5} + ldm r0!, {r2, r6, r7} + stm r1!, {r2, r6, r7} + movs r4, #0 +_081D28AA: + lsls r0, r4, #3 + adds r0, r3, r0 + ldr r1, [r0, #4] + ldr r0, [r0] + mov r5, r8 + adds r5, #8 + mov r8, r5 + subs r5, #8 + stm r5!, {r0, r1} + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #2 + bls _081D28AA + add sp, #0x50 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D28D4: .4byte 0x085FA8C0 +_081D28D8: .4byte 0x085FA8E0 +_081D28DC: .4byte 0x085FA8F8 + thumb_func_end sub_081D284C + + thumb_func_start sub_081D28E0 +sub_081D28E0: @ 0x081D28E0 + push {r4, r5, lr} + ldr r2, _081D28FC + ldr r4, [r2] + ldr r5, [r2, #4] + ldr r2, _081D2900 + ldr r3, [r2, #4] + ldr r2, [r2] + str r4, [r0] + str r5, [r0, #4] + str r2, [r1] + str r3, [r1, #4] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081D28FC: .4byte 0x085FA910 +_081D2900: .4byte 0x085FA918 + thumb_func_end sub_081D28E0 + + thumb_func_start sub_081D2904 +sub_081D2904: @ 0x081D2904 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0x30] + adds r0, #1 + strh r0, [r1, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x3c + ble _081D2920 + movs r0, #0 + strh r0, [r1, #0x30] + adds r0, r1, #0 + bl sub_081D2A38 +_081D2920: + pop {r0} + bx r0 + thumb_func_end sub_081D2904 + + thumb_func_start sub_081D2924 +sub_081D2924: @ 0x081D2924 + push {lr} + adds r2, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _081D293C + movs r0, #0 + strh r0, [r2, #0x30] + ldr r0, _081D2940 + str r0, [r2, #0x1c] +_081D293C: + pop {r0} + bx r0 + .align 2, 0 +_081D2940: .4byte 0x081D2905 + thumb_func_end sub_081D2924 + + thumb_func_start sub_081D2944 +sub_081D2944: @ 0x081D2944 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x36 + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _081D2988 + adds r3, r1, r0 + cmp r3, #0 + beq _081D2990 + ldrh r1, [r3, #0x24] + ldrh r2, [r3, #0x20] + adds r1, r1, r2 + ldr r2, _081D298C + movs r5, #0x2e + ldrsh r0, [r4, r5] + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0] + adds r0, r0, r1 + strh r0, [r4, #0x20] + ldrh r1, [r3, #0x26] + ldrh r3, [r3, #0x22] + adds r1, r1, r3 + movs r3, #0x2e + ldrsh r0, [r4, r3] + lsls r0, r0, #2 + adds r2, #2 + adds r0, r0, r2 + ldrh r0, [r0] + adds r0, r0, r1 + b _081D29AE + .align 2, 0 +_081D2988: .4byte 0x020205AC +_081D298C: .4byte 0x085FA97C +_081D2990: + ldr r1, _081D29B8 + movs r5, #0x2e + ldrsh r0, [r4, r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0] + adds r0, #0x28 + strh r0, [r4, #0x20] + movs r2, #0x2e + ldrsh r0, [r4, r2] + lsls r0, r0, #2 + adds r1, #2 + adds r0, r0, r1 + ldrh r0, [r0] + adds r0, #0x68 +_081D29AE: + strh r0, [r4, #0x22] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081D29B8: .4byte 0x085FA97C + thumb_func_end sub_081D2944 + + thumb_func_start sub_081D29BC +sub_081D29BC: @ 0x081D29BC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r2 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + movs r5, #0 +_081D29CE: + lsls r0, r5, #2 + mov r1, r8 + adds r4, r0, r1 + ldr r0, [r4] + cmp r0, #0 + beq _081D2A20 + strh r5, [r0, #0x2e] + ldr r1, [r4] + lsls r0, r5, #4 + adds r0, #1 + strh r0, [r1, #0x30] + ldr r0, [r4] + strh r6, [r0, #0x32] + ldr r0, [r4] + strh r5, [r0, #0x34] + cmp r7, #0 + beq _081D29F4 + cmp r6, #9 + beq _081D2A00 +_081D29F4: + ldr r1, [r4] + ldr r0, _081D29FC + str r0, [r1, #0x1c] + b _081D2A20 + .align 2, 0 +_081D29FC: .4byte 0x081D2B95 +_081D2A00: + ldr r0, [r4] + bl sub_081D2944 + ldr r0, [r4] + bl sub_081D2C18 + ldr r2, [r4] + ldr r0, _081D2A34 + str r0, [r2, #0x1c] + adds r2, #0x3e + ldrb r0, [r2] + movs r3, #5 + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r0, r1 + strb r0, [r2] +_081D2A20: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #9 + bls _081D29CE + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D2A34: .4byte 0x081D2925 + thumb_func_end sub_081D29BC + + thumb_func_start sub_081D2A38 +sub_081D2A38: @ 0x081D2A38 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x38] + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + movs r3, #0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + adds r0, #1 + cmp r3, r0 + bge _081D2A84 + ldr r5, _081D2A8C + movs r7, #0x1c + adds r7, r7, r5 + mov ip, r7 + ldr r6, _081D2A90 +_081D2A58: + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r2, r1, r5 + movs r7, #0x2e + ldrsh r0, [r2, r7] + lsls r0, r0, #4 + adds r0, #1 + strh r0, [r2, #0x30] + add r1, ip + str r6, [r1] + ldrh r0, [r2, #0x38] + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + movs r1, #0x32 + ldrsh r0, [r4, r1] + adds r0, #1 + cmp r3, r0 + blt _081D2A58 +_081D2A84: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D2A8C: .4byte 0x020205AC +_081D2A90: .4byte 0x081D2B95 + thumb_func_end sub_081D2A38 + + thumb_func_start sub_081D2A94 +sub_081D2A94: @ 0x081D2A94 + push {lr} + adds r2, r0, #0 + movs r1, #0 + movs r3, #0 +_081D2A9C: + lsls r0, r1, #2 + adds r0, r0, r2 + str r3, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #9 + bls _081D2A9C + pop {r0} + bx r0 + thumb_func_end sub_081D2A94 + + thumb_func_start sub_081D2AB0 +sub_081D2AB0: @ 0x081D2AB0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov r8, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sl, r1 + lsls r2, r2, #0x18 + movs r0, #0 + mov sb, r0 + lsrs r7, r2, #0x18 + movs r5, #0 + adds r0, r7, #1 + cmp sb, r0 + bge _081D2B2E +_081D2AD2: + ldr r0, _081D2B18 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + adds r6, r3, #0 + cmp r3, #0x40 + beq _081D2B2E + lsls r0, r5, #2 + mov r1, r8 + adds r4, r0, r1 + lsls r0, r3, #4 + adds r0, r0, r3 + lsls r0, r0, #2 + ldr r1, _081D2B1C + adds r0, r0, r1 + str r0, [r4] + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + ldr r0, [r4] + mov r1, sl + strh r1, [r0, #0x36] + cmp r5, #0 + beq _081D2B20 + subs r0, r4, #4 + ldr r0, [r0] + strh r3, [r0, #0x38] + b _081D2B22 + .align 2, 0 +_081D2B18: .4byte 0x085FA964 +_081D2B1C: .4byte 0x020205AC +_081D2B20: + mov sb, r6 +_081D2B22: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r7, #1 + cmp r5, r0 + blt _081D2AD2 +_081D2B2E: + lsls r0, r7, #2 + add r0, r8 + ldr r0, [r0] + mov r1, sb + strh r1, [r0, #0x38] + adds r0, r7, #0 + movs r1, #1 + mov r2, r8 + bl sub_081D29BC + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_081D2AB0 + + thumb_func_start sub_081D2B50 +sub_081D2B50: @ 0x081D2B50 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r5, #0 +_081D2B56: + cmp r5, #9 + bhi _081D2B74 + lsls r0, r5, #2 + adds r4, r0, r6 + ldr r0, [r4] + cmp r0, #0 + beq _081D2B74 + bl DestroySprite + movs r0, #0 + str r0, [r4] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + b _081D2B56 +_081D2B74: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081D2B50 + + thumb_func_start nullsub_79 +nullsub_79: @ 0x081D2B7C + push {lr} + bl sub_081D2B50 + movs r0, #0x68 + bl FreeSpriteTilesByTag + movs r0, #0x68 + bl FreeSpritePaletteByTag + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end nullsub_79 + + thumb_func_start sub_081D2B94 +sub_081D2B94: @ 0x081D2B94 + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x30] + movs r2, #0x30 + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _081D2BC2 + subs r0, r1, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _081D2C0C + adds r0, r4, #0 + movs r1, #0 + bl SeekSpriteAnim + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_081D2BC2: + adds r0, r4, #0 + bl sub_081D2944 + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _081D2C0C + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x34 + ldrsh r1, [r4, r0] + movs r2, #0x32 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _081D2C08 + cmp r1, #9 + bne _081D2C00 + adds r0, r4, #0 + bl sub_081D2C18 + ldr r0, _081D2BFC + b _081D2C0A + .align 2, 0 +_081D2BFC: .4byte 0x081D2925 +_081D2C00: + ldr r0, _081D2C04 + b _081D2C0A + .align 2, 0 +_081D2C04: .4byte 0x081D2905 +_081D2C08: + ldr r0, _081D2C14 +_081D2C0A: + str r0, [r4, #0x1c] +_081D2C0C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D2C14: .4byte 0x08007141 + thumb_func_end sub_081D2B94 + + thumb_func_start sub_081D2C18 +sub_081D2C18: @ 0x081D2C18 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldrh r0, [r6, #0x38] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r5, #0 + movs r2, #0x32 + ldrsh r0, [r6, r2] + adds r0, #1 + cmp r5, r0 + bge _081D2C66 + movs r0, #5 + rsbs r0, r0, #0 + adds r7, r0, #0 +_081D2C34: + lsls r4, r1, #4 + adds r4, r4, r1 + lsls r4, r4, #2 + ldr r0, _081D2C6C + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0 + bl SeekSpriteAnim + adds r1, r4, #0 + adds r1, #0x3e + ldrb r0, [r1] + ands r0, r7 + strb r0, [r1] + ldrh r0, [r4, #0x38] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r2, #0x32 + ldrsh r0, [r6, r2] + adds r0, #1 + cmp r5, r0 + blt _081D2C34 +_081D2C66: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D2C6C: .4byte 0x020205AC + thumb_func_end sub_081D2C18 + + thumb_func_start DrawLevelUpWindowPg1 +DrawLevelUpWindowPg1: @ 0x081D2C70 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x2c + mov r8, r0 + adds r6, r1, #0 + adds r5, r2, #0 + adds r4, r3, #0 + ldr r3, [sp, #0x4c] + ldr r0, [sp, #0x50] + mov sb, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r1, sb + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sb, r1 + mov r0, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r1, r4, #4 + orrs r1, r4 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r3, [sp, #0x28] + bl FillWindowPixelBuffer + add r2, sp, #0xc + ldrh r0, [r5] + ldrh r1, [r6] + subs r0, r0, r1 + strh r0, [r2] + ldrh r0, [r5, #2] + ldrh r1, [r6, #2] + subs r0, r0, r1 + strh r0, [r2, #2] + ldrh r0, [r5, #4] + ldrh r1, [r6, #4] + subs r0, r0, r1 + strh r0, [r2, #4] + ldrh r0, [r5, #8] + ldrh r1, [r6, #8] + subs r0, r0, r1 + strh r0, [r2, #6] + ldrh r0, [r5, #0xa] + ldrh r1, [r6, #0xa] + subs r0, r0, r1 + strh r0, [r2, #8] + ldrh r0, [r5, #6] + ldrh r1, [r6, #6] + subs r0, r0, r1 + strh r0, [r2, #0xa] + add r0, sp, #0x24 + strb r4, [r0] + ldr r3, [sp, #0x28] + strb r3, [r0, #1] + mov r1, sb + strb r1, [r0, #2] + movs r7, #0 + mov sl, r0 + movs r0, #1 + rsbs r0, r0, #0 + mov sb, r0 + add r6, sp, #0x18 +_081D2CFA: + lsls r0, r7, #4 + subs r0, r0, r7 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + mov r1, sl + str r1, [sp] + mov r0, sb + str r0, [sp, #4] + ldr r1, _081D2DA8 + lsls r0, r7, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [sp, #8] + mov r0, r8 + movs r1, #1 + movs r2, #0 + adds r3, r5, #0 + bl AddTextPrinterParameterized3 + lsls r0, r7, #1 + mov r4, sp + adds r4, r4, r0 + adds r4, #0xc + movs r1, #0 + ldrsh r0, [r4, r1] + ldr r1, _081D2DAC + cmp r0, #0 + blt _081D2D34 + ldr r1, _081D2DB0 +_081D2D34: + adds r0, r6, #0 + bl StringCopy + mov r0, sl + str r0, [sp] + mov r1, sb + str r1, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + movs r1, #1 + movs r2, #0x36 + adds r3, r5, #0 + bl AddTextPrinterParameterized3 + movs r0, #0 + ldrsh r1, [r4, r0] + adds r0, r1, #0 + cmp r1, #0 + bge _081D2D5C + rsbs r0, r1, #0 +_081D2D5C: + movs r4, #8 + cmp r0, #9 + bgt _081D2D64 + movs r4, #0x10 +_081D2D64: + cmp r1, #0 + bge _081D2D6A + rsbs r1, r1, #0 +_081D2D6A: + adds r0, r6, #0 + movs r2, #0 + movs r3, #2 + bl ConvertIntToDecimalStringN + adds r2, r4, #0 + adds r2, #0x36 + mov r1, sl + str r1, [sp] + mov r0, sb + str r0, [sp, #4] + str r6, [sp, #8] + mov r0, r8 + movs r1, #1 + adds r3, r5, #0 + bl AddTextPrinterParameterized3 + adds r0, r7, #1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + cmp r7, #5 + bls _081D2CFA + add sp, #0x2c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D2DA8: .4byte 0x085FA9CC +_081D2DAC: .4byte 0x085FA9C7 +_081D2DB0: .4byte 0x085FA9C4 + thumb_func_end DrawLevelUpWindowPg1 + + thumb_func_start DrawLevelUpWindowPg2 +DrawLevelUpWindowPg2: @ 0x081D2DB4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x2c + mov r8, r0 + adds r5, r1, #0 + adds r4, r2, #0 + adds r6, r3, #0 + ldr r2, [sp, #0x4c] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r1, r4, #4 + orrs r1, r4 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r2, [sp, #0x28] + bl FillWindowPixelBuffer + add r1, sp, #0xc + ldrh r0, [r5] + strh r0, [r1] + ldrh r0, [r5, #2] + strh r0, [r1, #2] + ldrh r0, [r5, #4] + strh r0, [r1, #4] + ldrh r0, [r5, #8] + strh r0, [r1, #6] + ldrh r0, [r5, #0xa] + strh r0, [r1, #8] + ldrh r0, [r5, #6] + strh r0, [r1, #0xa] + add r0, sp, #0x24 + strb r4, [r0] + strb r6, [r0, #1] + ldr r2, [sp, #0x28] + strb r2, [r0, #2] + movs r6, #0 + add r1, sp, #0x18 + mov sb, r1 + mov r7, r8 + mov sl, r0 + movs r2, #1 + rsbs r2, r2, #0 + mov r8, r2 +_081D2E1E: + lsls r1, r6, #1 + mov r0, sp + adds r0, r0, r1 + adds r0, #0xc + movs r2, #0 + ldrsh r0, [r0, r2] + movs r5, #3 + cmp r0, #0x63 + bgt _081D2E38 + movs r5, #1 + cmp r0, #9 + ble _081D2E38 + movs r5, #2 +_081D2E38: + mov r0, sp + adds r0, r0, r1 + adds r0, #0xc + movs r2, #0 + ldrsh r1, [r0, r2] + mov r0, sb + movs r2, #0 + adds r3, r5, #0 + bl ConvertIntToDecimalStringN + movs r4, #3 + subs r4, r4, r5 + lsls r4, r4, #0x13 + lsrs r4, r4, #0x10 + lsls r5, r6, #4 + subs r5, r5, r6 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + mov r0, sl + str r0, [sp] + mov r1, r8 + str r1, [sp, #4] + ldr r1, _081D2EB4 + lsls r0, r6, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [sp, #8] + adds r0, r7, #0 + movs r1, #1 + movs r2, #0 + adds r3, r5, #0 + bl AddTextPrinterParameterized3 + adds r4, #0x36 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r2, sl + str r2, [sp] + mov r0, r8 + str r0, [sp, #4] + mov r1, sb + str r1, [sp, #8] + adds r0, r7, #0 + movs r1, #1 + adds r2, r4, #0 + adds r3, r5, #0 + bl AddTextPrinterParameterized3 + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #5 + bls _081D2E1E + add sp, #0x2c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D2EB4: .4byte 0x085FA9CC + thumb_func_end DrawLevelUpWindowPg2 + + thumb_func_start GetMonLevelUpWindowStats +GetMonLevelUpWindowStats: @ 0x081D2EB8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r1, #0x3a + bl GetMonData + strh r0, [r5] + adds r0, r4, #0 + movs r1, #0x3b + bl GetMonData + strh r0, [r5, #2] + adds r0, r4, #0 + movs r1, #0x3c + bl GetMonData + strh r0, [r5, #4] + adds r0, r4, #0 + movs r1, #0x3d + bl GetMonData + strh r0, [r5, #6] + adds r0, r4, #0 + movs r1, #0x3e + bl GetMonData + strh r0, [r5, #8] + adds r0, r4, #0 + movs r1, #0x3f + bl GetMonData + strh r0, [r5, #0xa] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end GetMonLevelUpWindowStats + diff --git a/asm/metatile_behavior.s b/asm/metatile_behavior.s new file mode 100644 index 0000000..9ff3edd --- /dev/null +++ b/asm/metatile_behavior.s @@ -0,0 +1,2603 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start MetatileBehavior_IsATile +MetatileBehavior_IsATile: @ 0x08088750 + movs r0, #1 + bx lr + thumb_func_end MetatileBehavior_IsATile + + thumb_func_start MetatileBehavior_IsEncounterTile +MetatileBehavior_IsEncounterTile: @ 0x08088754 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0808876C + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08088770 + movs r0, #0 + b _08088772 + .align 2, 0 +_0808876C: .4byte 0x0845F31C +_08088770: + movs r0, #1 +_08088772: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MetatileBehavior_IsEncounterTile + + thumb_func_start MetatileBehavior_IsJumpEast +MetatileBehavior_IsJumpEast: @ 0x08088778 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x38 + beq _08088786 + movs r0, #0 + b _08088788 +_08088786: + movs r0, #1 +_08088788: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsJumpEast + + thumb_func_start MetatileBehavior_IsJumpWest +MetatileBehavior_IsJumpWest: @ 0x0808878C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x39 + beq _0808879A + movs r0, #0 + b _0808879C +_0808879A: + movs r0, #1 +_0808879C: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsJumpWest + + thumb_func_start MetatileBehavior_IsJumpNorth +MetatileBehavior_IsJumpNorth: @ 0x080887A0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3a + beq _080887AE + movs r0, #0 + b _080887B0 +_080887AE: + movs r0, #1 +_080887B0: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsJumpNorth + + thumb_func_start MetatileBehavior_IsJumpSouth +MetatileBehavior_IsJumpSouth: @ 0x080887B4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3b + beq _080887C2 + movs r0, #0 + b _080887C4 +_080887C2: + movs r0, #1 +_080887C4: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsJumpSouth + + thumb_func_start MetatileBehavior_IsPokeGrass +MetatileBehavior_IsPokeGrass: @ 0x080887C8 + push {lr} + lsls r0, r0, #0x18 + movs r1, #0xfe + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _080887DC + movs r0, #0 + b _080887DE +_080887DC: + movs r0, #1 +_080887DE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MetatileBehavior_IsPokeGrass + + thumb_func_start MetatileBehavior_IsSandOrDeepSand +MetatileBehavior_IsSandOrDeepSand: @ 0x080887E4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x21 + beq _080887F2 + cmp r0, #6 + bne _080887F6 +_080887F2: + movs r0, #1 + b _080887F8 +_080887F6: + movs r0, #0 +_080887F8: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsSandOrDeepSand + + thumb_func_start MetatileBehavior_IsDeepSand +MetatileBehavior_IsDeepSand: @ 0x080887FC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #6 + beq _0808880A + movs r0, #0 + b _0808880C +_0808880A: + movs r0, #1 +_0808880C: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsDeepSand + + thumb_func_start MetatileBehavior_IsReflective +MetatileBehavior_IsReflective: @ 0x08088810 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + beq _0808882E + cmp r0, #0x16 + beq _0808882E + cmp r0, #0x1a + beq _0808882E + cmp r0, #0x20 + beq _0808882E + cmp r0, #0x14 + beq _0808882E + cmp r0, #0x2b + bne _08088832 +_0808882E: + movs r0, #1 + b _08088834 +_08088832: + movs r0, #0 +_08088834: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsReflective + + thumb_func_start MetatileBehavior_IsIce_2 +MetatileBehavior_IsIce_2: @ 0x08088838 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x20 + beq _08088846 + movs r0, #0 + b _08088848 +_08088846: + movs r0, #1 +_08088848: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsIce_2 + + thumb_func_start MetatileBehavior_IsWarpDoor +MetatileBehavior_IsWarpDoor: @ 0x0808884C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x69 + beq _0808885A + movs r0, #0 + b _0808885C +_0808885A: + movs r0, #1 +_0808885C: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsWarpDoor + + thumb_func_start MetatileBehavior_IsDoor +MetatileBehavior_IsDoor: @ 0x08088860 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x8d + beq _0808886E + cmp r0, #0x69 + bne _08088872 +_0808886E: + movs r0, #1 + b _08088874 +_08088872: + movs r0, #0 +_08088874: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsDoor + + thumb_func_start MetatileBehavior_IsEscalator +MetatileBehavior_IsEscalator: @ 0x08088878 + push {lr} + lsls r0, r0, #0x18 + movs r1, #0x96 + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _0808888C + movs r0, #0 + b _0808888E +_0808888C: + movs r0, #1 +_0808888E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MetatileBehavior_IsEscalator + + thumb_func_start Unref_MetatileBehavior_IsUnused04 +Unref_MetatileBehavior_IsUnused04: @ 0x08088894 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + beq _080888A2 + movs r0, #0 + b _080888A4 +_080888A2: + movs r0, #1 +_080888A4: + pop {r1} + bx r1 + thumb_func_end Unref_MetatileBehavior_IsUnused04 + + thumb_func_start MetatileBehavior_IsLadder +MetatileBehavior_IsLadder: @ 0x080888A8 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x61 + beq _080888B6 + movs r0, #0 + b _080888B8 +_080888B6: + movs r0, #1 +_080888B8: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsLadder + + thumb_func_start MetatileBehavior_IsNonAnimDoor +MetatileBehavior_IsNonAnimDoor: @ 0x080888BC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x60 + beq _080888CE + cmp r0, #0x6c + beq _080888CE + cmp r0, #0x6e + bne _080888D2 +_080888CE: + movs r0, #1 + b _080888D4 +_080888D2: + movs r0, #0 +_080888D4: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsNonAnimDoor + + thumb_func_start MetatileBehavior_IsDeepSouthWarp +MetatileBehavior_IsDeepSouthWarp: @ 0x080888D8 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x6e + beq _080888E6 + movs r0, #0 + b _080888E8 +_080888E6: + movs r0, #1 +_080888E8: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsDeepSouthWarp + + thumb_func_start MetatileBehavior_IsSurfableWaterOrUnderwater +MetatileBehavior_IsSurfableWaterOrUnderwater: @ 0x080888EC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08088904 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08088908 + movs r0, #0 + b _0808890A + .align 2, 0 +_08088904: .4byte 0x0845F31C +_08088908: + movs r0, #1 +_0808890A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MetatileBehavior_IsSurfableWaterOrUnderwater + + thumb_func_start MetatileBehavior_IsEastArrowWarp +MetatileBehavior_IsEastArrowWarp: @ 0x08088910 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x62 + beq _0808891E + movs r0, #0 + b _08088920 +_0808891E: + movs r0, #1 +_08088920: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsEastArrowWarp + + thumb_func_start MetatileBehavior_IsWestArrowWarp +MetatileBehavior_IsWestArrowWarp: @ 0x08088924 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x63 + beq _08088932 + movs r0, #0 + b _08088934 +_08088932: + movs r0, #1 +_08088934: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsWestArrowWarp + + thumb_func_start MetatileBehavior_IsNorthArrowWarp +MetatileBehavior_IsNorthArrowWarp: @ 0x08088938 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x64 + beq _08088946 + cmp r0, #0x1b + bne _0808894A +_08088946: + movs r0, #1 + b _0808894C +_0808894A: + movs r0, #0 +_0808894C: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsNorthArrowWarp + + thumb_func_start MetatileBehavior_IsSouthArrowWarp +MetatileBehavior_IsSouthArrowWarp: @ 0x08088950 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x65 + beq _08088962 + cmp r0, #0x6d + beq _08088962 + cmp r0, #0x1c + bne _08088966 +_08088962: + movs r0, #1 + b _08088968 +_08088966: + movs r0, #0 +_08088968: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsSouthArrowWarp + + thumb_func_start Unref_MetatileBehavior_IsArrowWarp +Unref_MetatileBehavior_IsArrowWarp: @ 0x0808896C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r5, #0 + adds r0, r4, #0 + bl MetatileBehavior_IsEastArrowWarp + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080889A4 + adds r0, r4, #0 + bl MetatileBehavior_IsWestArrowWarp + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080889A4 + adds r0, r4, #0 + bl MetatileBehavior_IsNorthArrowWarp + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080889A4 + adds r0, r4, #0 + bl MetatileBehavior_IsSouthArrowWarp + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080889A6 +_080889A4: + movs r5, #1 +_080889A6: + adds r0, r5, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end Unref_MetatileBehavior_IsArrowWarp + + thumb_func_start MetatileBehavior_IsForcedMovementTile +MetatileBehavior_IsForcedMovementTile: @ 0x080889B0 + push {lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r2, #0xc0 + lsls r2, r2, #0x18 + adds r0, r0, r2 + lsrs r0, r0, #0x18 + cmp r0, #8 + bls _080889E6 + adds r0, r1, #0 + subs r0, #0x50 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _080889E6 + cmp r1, #0xd0 + beq _080889E6 + cmp r1, #0xd2 + beq _080889E6 + cmp r1, #0x13 + beq _080889E6 + cmp r1, #0x20 + beq _080889E6 + cmp r1, #0xbb + beq _080889E6 + cmp r1, #0xbc + bne _080889EA +_080889E6: + movs r0, #1 + b _080889EC +_080889EA: + movs r0, #0 +_080889EC: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsForcedMovementTile + + thumb_func_start MetatileBehavior_IsIce +MetatileBehavior_IsIce: @ 0x080889F0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x20 + beq _080889FE + movs r0, #0 + b _08088A00 +_080889FE: + movs r0, #1 +_08088A00: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsIce + + thumb_func_start MetatileBehavior_IsTrickHouseSlipperyFloor +MetatileBehavior_IsTrickHouseSlipperyFloor: @ 0x08088A04 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x48 + beq _08088A12 + movs r0, #0 + b _08088A14 +_08088A12: + movs r0, #1 +_08088A14: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsTrickHouseSlipperyFloor + + thumb_func_start Unref_MetatileBehavior_IsUnused05 +Unref_MetatileBehavior_IsUnused05: @ 0x08088A18 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + beq _08088A26 + movs r0, #0 + b _08088A28 +_08088A26: + movs r0, #1 +_08088A28: + pop {r1} + bx r1 + thumb_func_end Unref_MetatileBehavior_IsUnused05 + + thumb_func_start MetatileBehavior_IsWalkNorth +MetatileBehavior_IsWalkNorth: @ 0x08088A2C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x42 + beq _08088A3A + movs r0, #0 + b _08088A3C +_08088A3A: + movs r0, #1 +_08088A3C: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsWalkNorth + + thumb_func_start MetatileBehavior_IsWalkSouth +MetatileBehavior_IsWalkSouth: @ 0x08088A40 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x43 + beq _08088A4E + movs r0, #0 + b _08088A50 +_08088A4E: + movs r0, #1 +_08088A50: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsWalkSouth + + thumb_func_start MetatileBehavior_IsWalkWest +MetatileBehavior_IsWalkWest: @ 0x08088A54 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x41 + beq _08088A62 + movs r0, #0 + b _08088A64 +_08088A62: + movs r0, #1 +_08088A64: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsWalkWest + + thumb_func_start MetatileBehavior_IsWalkEast +MetatileBehavior_IsWalkEast: @ 0x08088A68 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _08088A76 + movs r0, #0 + b _08088A78 +_08088A76: + movs r0, #1 +_08088A78: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsWalkEast + + thumb_func_start MetatileBehavior_IsNorthwardCurrent +MetatileBehavior_IsNorthwardCurrent: @ 0x08088A7C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x52 + beq _08088A8A + movs r0, #0 + b _08088A8C +_08088A8A: + movs r0, #1 +_08088A8C: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsNorthwardCurrent + + thumb_func_start MetatileBehavior_IsSouthwardCurrent +MetatileBehavior_IsSouthwardCurrent: @ 0x08088A90 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x53 + beq _08088A9E + movs r0, #0 + b _08088AA0 +_08088A9E: + movs r0, #1 +_08088AA0: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsSouthwardCurrent + + thumb_func_start MetatileBehavior_IsWestwardCurrent +MetatileBehavior_IsWestwardCurrent: @ 0x08088AA4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x51 + beq _08088AB2 + movs r0, #0 + b _08088AB4 +_08088AB2: + movs r0, #1 +_08088AB4: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsWestwardCurrent + + thumb_func_start MetatileBehavior_IsEastwardCurrent +MetatileBehavior_IsEastwardCurrent: @ 0x08088AB8 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x50 + beq _08088AC6 + movs r0, #0 + b _08088AC8 +_08088AC6: + movs r0, #1 +_08088AC8: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsEastwardCurrent + + thumb_func_start MetatileBehavior_IsSlideNorth +MetatileBehavior_IsSlideNorth: @ 0x08088ACC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x46 + beq _08088ADA + movs r0, #0 + b _08088ADC +_08088ADA: + movs r0, #1 +_08088ADC: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsSlideNorth + + thumb_func_start MetatileBehavior_IsSlideSouth +MetatileBehavior_IsSlideSouth: @ 0x08088AE0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x47 + beq _08088AEE + movs r0, #0 + b _08088AF0 +_08088AEE: + movs r0, #1 +_08088AF0: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsSlideSouth + + thumb_func_start MetatileBehavior_IsSlideWest +MetatileBehavior_IsSlideWest: @ 0x08088AF4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x45 + beq _08088B02 + movs r0, #0 + b _08088B04 +_08088B02: + movs r0, #1 +_08088B04: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsSlideWest + + thumb_func_start MetatileBehavior_IsSlideEast +MetatileBehavior_IsSlideEast: @ 0x08088B08 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x44 + beq _08088B16 + movs r0, #0 + b _08088B18 +_08088B16: + movs r0, #1 +_08088B18: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsSlideEast + + thumb_func_start MetatileBehavior_IsCounter +MetatileBehavior_IsCounter: @ 0x08088B1C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x80 + beq _08088B2A + movs r0, #0 + b _08088B2C +_08088B2A: + movs r0, #1 +_08088B2C: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsCounter + + thumb_func_start MetatileBehavior_IsPlayerFacingTVScreen +MetatileBehavior_IsPlayerFacingTVScreen: @ 0x08088B30 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #2 + bne _08088B42 + cmp r0, #0x86 + beq _08088B46 +_08088B42: + movs r0, #0 + b _08088B48 +_08088B46: + movs r0, #1 +_08088B48: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsPlayerFacingTVScreen + + thumb_func_start MetatileBehavior_IsPC +MetatileBehavior_IsPC: @ 0x08088B4C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x83 + beq _08088B5A + movs r0, #0 + b _08088B5C +_08088B5A: + movs r0, #1 +_08088B5C: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsPC + + thumb_func_start MetatileBehavior_IsCableBoxResults1 +MetatileBehavior_IsCableBoxResults1: @ 0x08088B60 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x84 + beq _08088B6E + movs r0, #0 + b _08088B70 +_08088B6E: + movs r0, #1 +_08088B70: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsCableBoxResults1 + + thumb_func_start MetatileBehavior_IsOpenSecretBaseDoor +MetatileBehavior_IsOpenSecretBaseDoor: @ 0x08088B74 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x91 + beq _08088B96 + cmp r0, #0x93 + beq _08088B96 + cmp r0, #0x95 + beq _08088B96 + cmp r0, #0x97 + beq _08088B96 + cmp r0, #0x99 + beq _08088B96 + cmp r0, #0x9b + beq _08088B96 + cmp r0, #0x9d + bne _08088B9A +_08088B96: + movs r0, #1 + b _08088B9C +_08088B9A: + movs r0, #0 +_08088B9C: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsOpenSecretBaseDoor + + thumb_func_start MetatileBehavior_IsSecretBaseCave +MetatileBehavior_IsSecretBaseCave: @ 0x08088BA0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x90 + beq _08088BB6 + cmp r0, #0x92 + beq _08088BB6 + cmp r0, #0x94 + beq _08088BB6 + cmp r0, #0x9a + bne _08088BBA +_08088BB6: + movs r0, #1 + b _08088BBC +_08088BBA: + movs r0, #0 +_08088BBC: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsSecretBaseCave + + thumb_func_start MetatileBehavior_IsSecretBaseTree +MetatileBehavior_IsSecretBaseTree: @ 0x08088BC0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x96 + beq _08088BCE + cmp r0, #0x9c + bne _08088BD2 +_08088BCE: + movs r0, #1 + b _08088BD4 +_08088BD2: + movs r0, #0 +_08088BD4: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsSecretBaseTree + + thumb_func_start MetatileBehavior_IsSecretBaseShrub +MetatileBehavior_IsSecretBaseShrub: @ 0x08088BD8 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x98 + beq _08088BE6 + movs r0, #0 + b _08088BE8 +_08088BE6: + movs r0, #1 +_08088BE8: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsSecretBaseShrub + + thumb_func_start MetatileBehavior_IsSecretBasePC +MetatileBehavior_IsSecretBasePC: @ 0x08088BEC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xb0 + beq _08088BFA + movs r0, #0 + b _08088BFC +_08088BFA: + movs r0, #1 +_08088BFC: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsSecretBasePC + + thumb_func_start MetatileBehavior_IsRecordMixingSecretBasePC +MetatileBehavior_IsRecordMixingSecretBasePC: @ 0x08088C00 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xb1 + beq _08088C0E + movs r0, #0 + b _08088C10 +_08088C0E: + movs r0, #1 +_08088C10: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsRecordMixingSecretBasePC + + thumb_func_start Unref_MetatileBehavior_IsSecretBaseUnused_B2_2 +Unref_MetatileBehavior_IsSecretBaseUnused_B2_2: @ 0x08088C14 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xb2 + beq _08088C22 + movs r0, #0 + b _08088C24 +_08088C22: + movs r0, #1 +_08088C24: + pop {r1} + bx r1 + thumb_func_end Unref_MetatileBehavior_IsSecretBaseUnused_B2_2 + + thumb_func_start MetatileBehavior_IsBlockDecoration +MetatileBehavior_IsBlockDecoration: @ 0x08088C28 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xb3 + beq _08088C36 + movs r0, #0 + b _08088C38 +_08088C36: + movs r0, #1 +_08088C38: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsBlockDecoration + + thumb_func_start MetatileBehavior_IsSecretBaseImpassable +MetatileBehavior_IsSecretBaseImpassable: @ 0x08088C3C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xb9 + beq _08088C4A + movs r0, #0 + b _08088C4C +_08088C4A: + movs r0, #1 +_08088C4C: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsSecretBaseImpassable + + thumb_func_start MetatileBehavior_IsMB_C6 +MetatileBehavior_IsMB_C6: @ 0x08088C50 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xc6 + beq _08088C5E + movs r0, #0 + b _08088C60 +_08088C5E: + movs r0, #1 +_08088C60: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsMB_C6 + + thumb_func_start MetatileBehavior_IsSecretBasePoster +MetatileBehavior_IsSecretBasePoster: @ 0x08088C64 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xc7 + beq _08088C72 + movs r0, #0 + b _08088C74 +_08088C72: + movs r0, #1 +_08088C74: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsSecretBasePoster + + thumb_func_start MetatileBehavior_IsNormal +MetatileBehavior_IsNormal: @ 0x08088C78 + push {lr} + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08088C84 + movs r0, #0 + b _08088C86 +_08088C84: + movs r0, #1 +_08088C86: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MetatileBehavior_IsNormal + + thumb_func_start MetatileBehavior_IsSecretBaseNorthWall +MetatileBehavior_IsSecretBaseNorthWall: @ 0x08088C8C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xb7 + beq _08088C9A + movs r0, #0 + b _08088C9C +_08088C9A: + movs r0, #1 +_08088C9C: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsSecretBaseNorthWall + + thumb_func_start Unref_MetatileBehavior_IsSecretBaseUnused_B2 +Unref_MetatileBehavior_IsSecretBaseUnused_B2: @ 0x08088CA0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xb2 + beq _08088CAE + movs r0, #0 + b _08088CB0 +_08088CAE: + movs r0, #1 +_08088CB0: + pop {r1} + bx r1 + thumb_func_end Unref_MetatileBehavior_IsSecretBaseUnused_B2 + + thumb_func_start MetatileBehavior_HoldsSmallDecoration +MetatileBehavior_HoldsSmallDecoration: @ 0x08088CB4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xb5 + beq _08088CC2 + movs r0, #0 + b _08088CC4 +_08088CC2: + movs r0, #1 +_08088CC4: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_HoldsSmallDecoration + + thumb_func_start MetatileBehavior_HoldsLargeDecoration +MetatileBehavior_HoldsLargeDecoration: @ 0x08088CC8 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xc3 + beq _08088CD6 + movs r0, #0 + b _08088CD8 +_08088CD6: + movs r0, #1 +_08088CD8: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_HoldsLargeDecoration + + thumb_func_start MetatileBehavior_IsSecretBaseHole +MetatileBehavior_IsSecretBaseHole: @ 0x08088CDC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xc2 + beq _08088CEA + movs r0, #0 + b _08088CEC +_08088CEA: + movs r0, #1 +_08088CEC: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsSecretBaseHole + + thumb_func_start MetatileBehavior_IsSecretBaseBalloon +MetatileBehavior_IsSecretBaseBalloon: @ 0x08088CF0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xb8 + beq _08088CFE + movs r0, #0 + b _08088D00 +_08088CFE: + movs r0, #1 +_08088D00: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsSecretBaseBalloon + + thumb_func_start MetatileBehavior_IsSecretBaseBreakableDoor +MetatileBehavior_IsSecretBaseBreakableDoor: @ 0x08088D04 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xbe + beq _08088D12 + movs r0, #0 + b _08088D14 +_08088D12: + movs r0, #1 +_08088D14: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsSecretBaseBreakableDoor + + thumb_func_start MetatileBehavior_IsSecretBaseSoundMat +MetatileBehavior_IsSecretBaseSoundMat: @ 0x08088D18 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xbd + beq _08088D26 + movs r0, #0 + b _08088D28 +_08088D26: + movs r0, #1 +_08088D28: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsSecretBaseSoundMat + + thumb_func_start MetatileBehavior_IsSecretBaseGlitterMat +MetatileBehavior_IsSecretBaseGlitterMat: @ 0x08088D2C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xba + beq _08088D3A + movs r0, #0 + b _08088D3C +_08088D3A: + movs r0, #1 +_08088D3C: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsSecretBaseGlitterMat + + thumb_func_start MetatileBehavior_IsSecretBaseSandOrnament +MetatileBehavior_IsSecretBaseSandOrnament: @ 0x08088D40 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xbf + beq _08088D4E + movs r0, #0 + b _08088D50 +_08088D4E: + movs r0, #1 +_08088D50: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsSecretBaseSandOrnament + + thumb_func_start MetatileBehavior_IsSecretBaseShieldOrToyTV +MetatileBehavior_IsSecretBaseShieldOrToyTV: @ 0x08088D54 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xc4 + beq _08088D62 + movs r0, #0 + b _08088D64 +_08088D62: + movs r0, #1 +_08088D64: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsSecretBaseShieldOrToyTV + + thumb_func_start MetatileBehavior_IsPlayerRoomPCOn +MetatileBehavior_IsPlayerRoomPCOn: @ 0x08088D68 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xc5 + beq _08088D76 + movs r0, #0 + b _08088D78 +_08088D76: + movs r0, #1 +_08088D78: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsPlayerRoomPCOn + + thumb_func_start MetatileBehavior_HasRipples +MetatileBehavior_HasRipples: @ 0x08088D7C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + beq _08088D8E + cmp r0, #0x16 + beq _08088D8E + cmp r0, #0x14 + bne _08088D92 +_08088D8E: + movs r0, #1 + b _08088D94 +_08088D92: + movs r0, #0 +_08088D94: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_HasRipples + + thumb_func_start MetatileBehavior_IsPuddle +MetatileBehavior_IsPuddle: @ 0x08088D98 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x16 + beq _08088DA6 + movs r0, #0 + b _08088DA8 +_08088DA6: + movs r0, #1 +_08088DA8: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsPuddle + + thumb_func_start MetatileBehavior_IsTallGrass +MetatileBehavior_IsTallGrass: @ 0x08088DAC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + beq _08088DBA + movs r0, #0 + b _08088DBC +_08088DBA: + movs r0, #1 +_08088DBC: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsTallGrass + + thumb_func_start MetatileBehavior_IsLongGrass_Duplicate +MetatileBehavior_IsLongGrass_Duplicate: @ 0x08088DC0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + beq _08088DCE + movs r0, #0 + b _08088DD0 +_08088DCE: + movs r0, #1 +_08088DD0: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsLongGrass_Duplicate + + thumb_func_start MetatileBehavior_IsBerryTreeSoil +MetatileBehavior_IsBerryTreeSoil: @ 0x08088DD4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xa0 + beq _08088DE2 + movs r0, #0 + b _08088DE4 +_08088DE2: + movs r0, #1 +_08088DE4: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsBerryTreeSoil + + thumb_func_start MetatileBehavior_IsAshGrass +MetatileBehavior_IsAshGrass: @ 0x08088DE8 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x24 + beq _08088DF6 + movs r0, #0 + b _08088DF8 +_08088DF6: + movs r0, #1 +_08088DF8: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsAshGrass + + thumb_func_start MetatileBehavior_IsFootprints +MetatileBehavior_IsFootprints: @ 0x08088DFC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x25 + beq _08088E0A + movs r0, #0 + b _08088E0C +_08088E0A: + movs r0, #1 +_08088E0C: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsFootprints + + thumb_func_start MetatileBehavior_IsBridge +MetatileBehavior_IsBridge: @ 0x08088E10 + push {lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r2, #0x90 + lsls r2, r2, #0x18 + adds r0, r0, r2 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _08088E2E + adds r0, r1, #0 + subs r0, #0x7c + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bhi _08088E32 +_08088E2E: + movs r0, #1 + b _08088E34 +_08088E32: + movs r0, #0 +_08088E34: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsBridge + + thumb_func_start MetatileBehavior_GetBridgeType +MetatileBehavior_GetBridgeType: @ 0x08088E38 + push {lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r2, r1, #0 + adds r0, r1, #0 + subs r0, #0x70 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _08088E6E + adds r0, r1, #0 + subs r0, #0x7a + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _08088E5C + movs r0, #2 + b _08088E6E +_08088E5C: + adds r0, r2, #0 + subs r0, #0x7c + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _08088E6C + movs r0, #0 + b _08088E6E +_08088E6C: + movs r0, #3 +_08088E6E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MetatileBehavior_GetBridgeType + + thumb_func_start MetatileBehavior_8089510 +MetatileBehavior_8089510: @ 0x08088E74 + push {lr} + lsls r0, r0, #0x18 + movs r1, #0x90 + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _08088E88 + movs r0, #0 + b _08088E8A +_08088E88: + movs r0, #1 +_08088E8A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MetatileBehavior_8089510 + + thumb_func_start MetatileBehavior_IsLandWildEncounter +MetatileBehavior_IsLandWildEncounter: @ 0x08088E90 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl MetatileBehavior_IsSurfableWaterOrUnderwater + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08088EB4 + adds r0, r4, #0 + bl MetatileBehavior_IsEncounterTile + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08088EB4 + movs r0, #1 + b _08088EB6 +_08088EB4: + movs r0, #0 +_08088EB6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsLandWildEncounter + + thumb_func_start MetatileBehavior_IsWaterWildEncounter +MetatileBehavior_IsWaterWildEncounter: @ 0x08088EBC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl MetatileBehavior_IsSurfableWaterOrUnderwater + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08088EE2 + adds r0, r4, #0 + bl MetatileBehavior_IsEncounterTile + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08088EE2 + movs r0, #1 + b _08088EE4 +_08088EE2: + movs r0, #0 +_08088EE4: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MetatileBehavior_IsWaterWildEncounter + + thumb_func_start MetatileBehavior_IsIndoorEncounter +MetatileBehavior_IsIndoorEncounter: @ 0x08088EEC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xb + beq _08088EFA + movs r0, #0 + b _08088EFC +_08088EFA: + movs r0, #1 +_08088EFC: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsIndoorEncounter + + thumb_func_start MetatileBehavior_IsMountain +MetatileBehavior_IsMountain: @ 0x08088F00 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xc + beq _08088F0E + movs r0, #0 + b _08088F10 +_08088F0E: + movs r0, #1 +_08088F10: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsMountain + + thumb_func_start MetatileBehavior_IsDiveable +MetatileBehavior_IsDiveable: @ 0x08088F14 + push {lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r2, #0xef + lsls r2, r2, #0x18 + adds r0, r0, r2 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _08088F2A + cmp r1, #0x14 + bne _08088F2E +_08088F2A: + movs r0, #1 + b _08088F30 +_08088F2E: + movs r0, #0 +_08088F30: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsDiveable + + thumb_func_start MetatileBehavior_IsUnableToEmerge +MetatileBehavior_IsUnableToEmerge: @ 0x08088F34 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x19 + beq _08088F42 + cmp r0, #0x2a + bne _08088F46 +_08088F42: + movs r0, #1 + b _08088F48 +_08088F46: + movs r0, #0 +_08088F48: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsUnableToEmerge + + thumb_func_start MetatileBehavior_IsShallowFlowingWater +MetatileBehavior_IsShallowFlowingWater: @ 0x08088F4C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x17 + beq _08088F5E + cmp r0, #0x1b + beq _08088F5E + cmp r0, #0x1c + bne _08088F62 +_08088F5E: + movs r0, #1 + b _08088F64 +_08088F62: + movs r0, #0 +_08088F64: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsShallowFlowingWater + + thumb_func_start MetatileBehavior_IsThinIce +MetatileBehavior_IsThinIce: @ 0x08088F68 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x26 + beq _08088F76 + movs r0, #0 + b _08088F78 +_08088F76: + movs r0, #1 +_08088F78: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsThinIce + + thumb_func_start MetatileBehavior_IsCrackedIce +MetatileBehavior_IsCrackedIce: @ 0x08088F7C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x27 + beq _08088F8A + movs r0, #0 + b _08088F8C +_08088F8A: + movs r0, #1 +_08088F8C: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsCrackedIce + + thumb_func_start MetatileBehavior_IsDeepOrOceanWater +MetatileBehavior_IsDeepOrOceanWater: @ 0x08088F90 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x15 + beq _08088FA2 + cmp r0, #0x11 + beq _08088FA2 + cmp r0, #0x12 + bne _08088FA6 +_08088FA2: + movs r0, #1 + b _08088FA8 +_08088FA6: + movs r0, #0 +_08088FA8: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsDeepOrOceanWater + + thumb_func_start Unref_MetatileBehavior_IsUnusedSootopolisWater +Unref_MetatileBehavior_IsUnusedSootopolisWater: @ 0x08088FAC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x18 + beq _08088FBA + cmp r0, #0x1a + bne _08088FBE +_08088FBA: + movs r0, #1 + b _08088FC0 +_08088FBE: + movs r0, #0 +_08088FC0: + pop {r1} + bx r1 + thumb_func_end Unref_MetatileBehavior_IsUnusedSootopolisWater + + thumb_func_start MetatileBehavior_IsSurfableAndNotWaterfall +MetatileBehavior_IsSurfableAndNotWaterfall: @ 0x08088FC4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl MetatileBehavior_IsSurfableWaterOrUnderwater + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08088FE6 + adds r0, r4, #0 + bl MetatileBehavior_IsWaterfall + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08088FE6 + movs r0, #1 + b _08088FE8 +_08088FE6: + movs r0, #0 +_08088FE8: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MetatileBehavior_IsSurfableAndNotWaterfall + + thumb_func_start MetatileBehavior_IsEastBlocked +MetatileBehavior_IsEastBlocked: @ 0x08088FF0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x30 + beq _0808900A + cmp r0, #0x34 + beq _0808900A + cmp r0, #0x36 + beq _0808900A + cmp r0, #0xc1 + beq _0808900A + cmp r0, #0xbe + bne _0808900E +_0808900A: + movs r0, #1 + b _08089010 +_0808900E: + movs r0, #0 +_08089010: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsEastBlocked + + thumb_func_start MetatileBehavior_IsWestBlocked +MetatileBehavior_IsWestBlocked: @ 0x08089014 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x31 + beq _0808902E + cmp r0, #0x35 + beq _0808902E + cmp r0, #0x37 + beq _0808902E + cmp r0, #0xc1 + beq _0808902E + cmp r0, #0xbe + bne _08089032 +_0808902E: + movs r0, #1 + b _08089034 +_08089032: + movs r0, #0 +_08089034: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsWestBlocked + + thumb_func_start MetatileBehavior_IsNorthBlocked +MetatileBehavior_IsNorthBlocked: @ 0x08089038 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x32 + beq _0808904E + cmp r0, #0x34 + beq _0808904E + cmp r0, #0x35 + beq _0808904E + cmp r0, #0xc0 + bne _08089052 +_0808904E: + movs r0, #1 + b _08089054 +_08089052: + movs r0, #0 +_08089054: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsNorthBlocked + + thumb_func_start MetatileBehavior_IsSouthBlocked +MetatileBehavior_IsSouthBlocked: @ 0x08089058 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x33 + beq _0808906E + cmp r0, #0x36 + beq _0808906E + cmp r0, #0x37 + beq _0808906E + cmp r0, #0xc0 + bne _08089072 +_0808906E: + movs r0, #1 + b _08089074 +_08089072: + movs r0, #0 +_08089074: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsSouthBlocked + + thumb_func_start MetatileBehavior_IsShortGrass +MetatileBehavior_IsShortGrass: @ 0x08089078 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #7 + beq _08089086 + movs r0, #0 + b _08089088 +_08089086: + movs r0, #1 +_08089088: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsShortGrass + + thumb_func_start MetatileBehavior_IsHotSprings +MetatileBehavior_IsHotSprings: @ 0x0808908C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x28 + beq _0808909A + movs r0, #0 + b _0808909C +_0808909A: + movs r0, #1 +_0808909C: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsHotSprings + + thumb_func_start MetatileBehavior_IsWaterfall +MetatileBehavior_IsWaterfall: @ 0x080890A0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x13 + beq _080890AE + movs r0, #0 + b _080890B0 +_080890AE: + movs r0, #1 +_080890B0: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsWaterfall + + thumb_func_start MetatileBehavior_IsFortreeBridge +MetatileBehavior_IsFortreeBridge: @ 0x080890B4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x78 + beq _080890C2 + movs r0, #0 + b _080890C4 +_080890C2: + movs r0, #1 +_080890C4: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsFortreeBridge + + thumb_func_start MetatileBehavior_IsPacifilogVerticalLog1 +MetatileBehavior_IsPacifilogVerticalLog1: @ 0x080890C8 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x74 + beq _080890D6 + movs r0, #0 + b _080890D8 +_080890D6: + movs r0, #1 +_080890D8: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsPacifilogVerticalLog1 + + thumb_func_start MetatileBehavior_IsPacifilogVerticalLog2 +MetatileBehavior_IsPacifilogVerticalLog2: @ 0x080890DC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x75 + beq _080890EA + movs r0, #0 + b _080890EC +_080890EA: + movs r0, #1 +_080890EC: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsPacifilogVerticalLog2 + + thumb_func_start MetatileBehavior_IsPacifilogHorizontalLog1 +MetatileBehavior_IsPacifilogHorizontalLog1: @ 0x080890F0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x76 + beq _080890FE + movs r0, #0 + b _08089100 +_080890FE: + movs r0, #1 +_08089100: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsPacifilogHorizontalLog1 + + thumb_func_start MetatileBehavior_IsPacifilogHorizontalLog2 +MetatileBehavior_IsPacifilogHorizontalLog2: @ 0x08089104 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x77 + beq _08089112 + movs r0, #0 + b _08089114 +_08089112: + movs r0, #1 +_08089114: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsPacifilogHorizontalLog2 + + thumb_func_start MetatileBehavior_IsPacifidlogLog +MetatileBehavior_IsPacifidlogLog: @ 0x08089118 + push {lr} + lsls r0, r0, #0x18 + movs r1, #0x8c + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _0808912C + movs r0, #0 + b _0808912E +_0808912C: + movs r0, #1 +_0808912E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MetatileBehavior_IsPacifidlogLog + + thumb_func_start MetatileBehavior_IsTrickHousePuzzleDoor +MetatileBehavior_IsTrickHousePuzzleDoor: @ 0x08089134 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x8c + beq _08089142 + movs r0, #0 + b _08089144 +_08089142: + movs r0, #1 +_08089144: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsTrickHousePuzzleDoor + + thumb_func_start MetatileBehavior_IsRegionMap +MetatileBehavior_IsRegionMap: @ 0x08089148 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x85 + beq _08089156 + movs r0, #0 + b _08089158 +_08089156: + movs r0, #1 +_08089158: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsRegionMap + + thumb_func_start MetatileBehavior_IsClosedSootopolisDoor +MetatileBehavior_IsClosedSootopolisDoor: @ 0x0808915C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x8b + beq _0808916A + movs r0, #0 + b _0808916C +_0808916A: + movs r0, #1 +_0808916C: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsClosedSootopolisDoor + + thumb_func_start MetatileBehavior_IsUnknownClosedDoor +MetatileBehavior_IsUnknownClosedDoor: @ 0x08089170 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xea + beq _0808917E + movs r0, #0 + b _08089180 +_0808917E: + movs r0, #1 +_08089180: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsUnknownClosedDoor + + thumb_func_start MetatileBehavior_IsRoulette +MetatileBehavior_IsRoulette: @ 0x08089184 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x8a + beq _08089192 + movs r0, #0 + b _08089194 +_08089192: + movs r0, #1 +_08089194: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsRoulette + + thumb_func_start MetatileBehavior_IsPokeblockFeeder +MetatileBehavior_IsPokeblockFeeder: @ 0x08089198 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x87 + beq _080891A6 + movs r0, #0 + b _080891A8 +_080891A6: + movs r0, #1 +_080891A8: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsPokeblockFeeder + + thumb_func_start MetatileBehavior_IsSecretBaseJumpMat +MetatileBehavior_IsSecretBaseJumpMat: @ 0x080891AC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xbb + beq _080891BA + movs r0, #0 + b _080891BC +_080891BA: + movs r0, #1 +_080891BC: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsSecretBaseJumpMat + + thumb_func_start MetatileBehavior_IsSecretBaseSpinMat +MetatileBehavior_IsSecretBaseSpinMat: @ 0x080891C0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xbc + beq _080891CE + movs r0, #0 + b _080891D0 +_080891CE: + movs r0, #1 +_080891D0: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsSecretBaseSpinMat + + thumb_func_start MetatileBehavior_IsLavaridgeB1FWarp +MetatileBehavior_IsLavaridgeB1FWarp: @ 0x080891D4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x29 + beq _080891E2 + movs r0, #0 + b _080891E4 +_080891E2: + movs r0, #1 +_080891E4: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsLavaridgeB1FWarp + + thumb_func_start MetatileBehavior_IsLavaridge1FWarp +MetatileBehavior_IsLavaridge1FWarp: @ 0x080891E8 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x68 + beq _080891F6 + movs r0, #0 + b _080891F8 +_080891F6: + movs r0, #1 +_080891F8: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsLavaridge1FWarp + + thumb_func_start MetatileBehavior_IsAquaHideoutWarp +MetatileBehavior_IsAquaHideoutWarp: @ 0x080891FC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x67 + beq _0808920A + movs r0, #0 + b _0808920C +_0808920A: + movs r0, #1 +_0808920C: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsAquaHideoutWarp + + thumb_func_start MetatileBehavior_IsWarpOrBridge +MetatileBehavior_IsWarpOrBridge: @ 0x08089210 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x70 + beq _0808921E + movs r0, #0 + b _08089220 +_0808921E: + movs r0, #1 +_08089220: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsWarpOrBridge + + thumb_func_start MetatileBehavior_IsMossdeepGymWarp +MetatileBehavior_IsMossdeepGymWarp: @ 0x08089224 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xe + beq _08089232 + movs r0, #0 + b _08089234 +_08089232: + movs r0, #1 +_08089234: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsMossdeepGymWarp + + thumb_func_start MetatileBehavior_IsSurfableFishableWater +MetatileBehavior_IsSurfableFishableWater: @ 0x08089238 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + beq _0808925C + cmp r0, #0x15 + beq _0808925C + cmp r0, #0x11 + beq _0808925C + cmp r0, #0x12 + beq _0808925C + cmp r0, #0x14 + beq _0808925C + subs r0, #0x50 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bhi _08089260 +_0808925C: + movs r0, #1 + b _08089262 +_08089260: + movs r0, #0 +_08089262: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MetatileBehavior_IsSurfableFishableWater + + thumb_func_start MetatileBehavior_IsMtPyreHole +MetatileBehavior_IsMtPyreHole: @ 0x08089268 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xf + beq _08089276 + movs r0, #0 + b _08089278 +_08089276: + movs r0, #1 +_08089278: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsMtPyreHole + + thumb_func_start MetatileBehavior_IsCrackedFloorHole +MetatileBehavior_IsCrackedFloorHole: @ 0x0808927C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x66 + beq _0808928A + movs r0, #0 + b _0808928C +_0808928A: + movs r0, #1 +_0808928C: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsCrackedFloorHole + + thumb_func_start MetatileBehavior_IsCrackedFloor +MetatileBehavior_IsCrackedFloor: @ 0x08089290 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xd2 + beq _0808929E + movs r0, #0 + b _080892A0 +_0808929E: + movs r0, #1 +_080892A0: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsCrackedFloor + + thumb_func_start MetatileBehavior_IsMuddySlope +MetatileBehavior_IsMuddySlope: @ 0x080892A4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xd0 + beq _080892B2 + movs r0, #0 + b _080892B4 +_080892B2: + movs r0, #1 +_080892B4: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsMuddySlope + + thumb_func_start MetatileBehavior_IsBumpySlope +MetatileBehavior_IsBumpySlope: @ 0x080892B8 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xd1 + beq _080892C6 + movs r0, #0 + b _080892C8 +_080892C6: + movs r0, #1 +_080892C8: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsBumpySlope + + thumb_func_start MetatileBehavior_IsIsolatedVerticalRail +MetatileBehavior_IsIsolatedVerticalRail: @ 0x080892CC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xd3 + beq _080892DA + movs r0, #0 + b _080892DC +_080892DA: + movs r0, #1 +_080892DC: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsIsolatedVerticalRail + + thumb_func_start MetatileBehavior_IsIsolatedHorizontalRail +MetatileBehavior_IsIsolatedHorizontalRail: @ 0x080892E0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xd4 + beq _080892EE + movs r0, #0 + b _080892F0 +_080892EE: + movs r0, #1 +_080892F0: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsIsolatedHorizontalRail + + thumb_func_start MetatileBehavior_IsVerticalRail +MetatileBehavior_IsVerticalRail: @ 0x080892F4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xd5 + beq _08089302 + movs r0, #0 + b _08089304 +_08089302: + movs r0, #1 +_08089304: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsVerticalRail + + thumb_func_start MetatileBehavior_IsHorizontalRail +MetatileBehavior_IsHorizontalRail: @ 0x08089308 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xd6 + beq _08089316 + movs r0, #0 + b _08089318 +_08089316: + movs r0, #1 +_08089318: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsHorizontalRail + + thumb_func_start MetatileBehavior_IsSeaweed +MetatileBehavior_IsSeaweed: @ 0x0808931C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x22 + beq _0808932A + cmp r0, #0x2a + bne _0808932E +_0808932A: + movs r0, #1 + b _08089330 +_0808932E: + movs r0, #0 +_08089330: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsSeaweed + + thumb_func_start MetatileBehavior_IsRunningDisallowed +MetatileBehavior_IsRunningDisallowed: @ 0x08089334 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xa + beq _08089350 + cmp r0, #3 + beq _08089350 + cmp r0, #0x28 + beq _08089350 + bl MetatileBehavior_IsPacifidlogLog + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08089354 +_08089350: + movs r0, #1 + b _08089356 +_08089354: + movs r0, #0 +_08089356: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MetatileBehavior_IsRunningDisallowed + + thumb_func_start MetatileBehavior_IsCuttableGrass +MetatileBehavior_IsCuttableGrass: @ 0x0808935C + push {lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r2, #0xfe + lsls r2, r2, #0x18 + adds r0, r0, r2 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _08089376 + cmp r1, #0x24 + beq _08089376 + cmp r1, #9 + bne _0808937A +_08089376: + movs r0, #1 + b _0808937C +_0808937A: + movs r0, #0 +_0808937C: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsCuttableGrass + + thumb_func_start MetatileBehavior_IsRunningShoesManual +MetatileBehavior_IsRunningShoesManual: @ 0x08089380 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x8e + beq _0808938E + movs r0, #0 + b _08089390 +_0808938E: + movs r0, #1 +_08089390: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsRunningShoesManual + + thumb_func_start MetatileBehavior_IsPictureBookShelf +MetatileBehavior_IsPictureBookShelf: @ 0x08089394 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xe0 + beq _080893A2 + movs r0, #0 + b _080893A4 +_080893A2: + movs r0, #1 +_080893A4: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsPictureBookShelf + + thumb_func_start MetatileBehavior_IsBookShelf +MetatileBehavior_IsBookShelf: @ 0x080893A8 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xe1 + beq _080893B6 + movs r0, #0 + b _080893B8 +_080893B6: + movs r0, #1 +_080893B8: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsBookShelf + + thumb_func_start MetatileBehavior_IsPokeCenterBookShelf +MetatileBehavior_IsPokeCenterBookShelf: @ 0x080893BC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xe2 + beq _080893CA + movs r0, #0 + b _080893CC +_080893CA: + movs r0, #1 +_080893CC: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsPokeCenterBookShelf + + thumb_func_start MetatileBehavior_IsVase +MetatileBehavior_IsVase: @ 0x080893D0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xe3 + beq _080893DE + movs r0, #0 + b _080893E0 +_080893DE: + movs r0, #1 +_080893E0: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsVase + + thumb_func_start MetatileBehavior_IsTrashCan +MetatileBehavior_IsTrashCan: @ 0x080893E4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xe4 + beq _080893F2 + movs r0, #0 + b _080893F4 +_080893F2: + movs r0, #1 +_080893F4: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsTrashCan + + thumb_func_start MetatileBehavior_IsShopShelf +MetatileBehavior_IsShopShelf: @ 0x080893F8 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xe5 + beq _08089406 + movs r0, #0 + b _08089408 +_08089406: + movs r0, #1 +_08089408: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsShopShelf + + thumb_func_start MetatileBehavior_IsBlueprint +MetatileBehavior_IsBlueprint: @ 0x0808940C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xe6 + beq _0808941A + movs r0, #0 + b _0808941C +_0808941A: + movs r0, #1 +_0808941C: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsBlueprint + + thumb_func_start MetatileBehavior_IsBattlePyramidWarp +MetatileBehavior_IsBattlePyramidWarp: @ 0x08089420 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xd + beq _0808942E + movs r0, #0 + b _08089430 +_0808942E: + movs r0, #1 +_08089430: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsBattlePyramidWarp + + thumb_func_start MetatileBehavior_IsPlayerFacingWirelessBoxResults +MetatileBehavior_IsPlayerFacingWirelessBoxResults: @ 0x08089434 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #2 + bne _08089446 + cmp r0, #0xe8 + beq _0808944A +_08089446: + movs r0, #0 + b _0808944C +_0808944A: + movs r0, #1 +_0808944C: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsPlayerFacingWirelessBoxResults + + thumb_func_start MetatileBehavior_IsCableBoxResults2 +MetatileBehavior_IsCableBoxResults2: @ 0x08089450 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #2 + bne _08089462 + cmp r0, #0xe7 + beq _08089466 +_08089462: + movs r0, #0 + b _08089468 +_08089466: + movs r0, #1 +_08089468: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsCableBoxResults2 + + thumb_func_start MetatileBehavior_IsQuestionnaire +MetatileBehavior_IsQuestionnaire: @ 0x0808946C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x8f + beq _0808947A + movs r0, #0 + b _0808947C +_0808947A: + movs r0, #1 +_0808947C: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsQuestionnaire + + thumb_func_start MetatileBehavior_IsLongGrass +MetatileBehavior_IsLongGrass: @ 0x08089480 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + beq _0808948E + movs r0, #0 + b _08089490 +_0808948E: + movs r0, #1 +_08089490: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsLongGrass + + thumb_func_start MetatileBehavior_IsLongGrassSouthEdge +MetatileBehavior_IsLongGrassSouthEdge: @ 0x08089494 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #9 + beq _080894A2 + movs r0, #0 + b _080894A4 +_080894A2: + movs r0, #1 +_080894A4: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsLongGrassSouthEdge + + thumb_func_start MetatileBehavior_IsTrainerHillTimer +MetatileBehavior_IsTrainerHillTimer: @ 0x080894A8 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xe9 + beq _080894B6 + movs r0, #0 + b _080894B8 +_080894B6: + movs r0, #1 +_080894B8: + pop {r1} + bx r1 + thumb_func_end MetatileBehavior_IsTrainerHillTimer + diff --git a/asm/mevent2.s b/asm/mevent2.s new file mode 100644 index 0000000..a65a8f1 --- /dev/null +++ b/asm/mevent2.s @@ -0,0 +1,1528 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start GetSavedWonderNews +GetSavedWonderNews: @ 0x0801AAE0 + ldr r0, _0801AAEC + ldr r0, [r0] + ldr r1, _0801AAF0 + adds r0, r0, r1 + bx lr + .align 2, 0 +_0801AAEC: .4byte 0x03005AEC +_0801AAF0: .4byte 0x00003230 + thumb_func_end GetSavedWonderNews + + thumb_func_start GetSavedWonderCard +GetSavedWonderCard: @ 0x0801AAF4 + ldr r0, _0801AB00 + ldr r0, [r0] + ldr r1, _0801AB04 + adds r0, r0, r1 + bx lr + .align 2, 0 +_0801AB00: .4byte 0x03005AEC +_0801AB04: .4byte 0x00003314 + thumb_func_end GetSavedWonderCard + + thumb_func_start sav1_get_mevent_buffer_2 +sav1_get_mevent_buffer_2: @ 0x0801AB08 + ldr r0, _0801AB14 + ldr r0, [r0] + ldr r1, _0801AB18 + adds r0, r0, r1 + bx lr + .align 2, 0 +_0801AB14: .4byte 0x03005AEC +_0801AB18: .4byte 0x000033BC + thumb_func_end sav1_get_mevent_buffer_2 + + thumb_func_start sub_0801AB1C +sub_0801AB1C: @ 0x0801AB1C + ldr r0, _0801AB28 + ldr r0, [r0] + ldr r1, _0801AB2C + adds r0, r0, r1 + bx lr + .align 2, 0 +_0801AB28: .4byte 0x03005AEC +_0801AB2C: .4byte 0x000033E8 + thumb_func_end sub_0801AB1C + + thumb_func_start sub_0801AB30 +sub_0801AB30: @ 0x0801AB30 + ldr r0, _0801AB3C + ldr r0, [r0] + ldr r1, _0801AB40 + adds r0, r0, r1 + bx lr + .align 2, 0 +_0801AB3C: .4byte 0x03005AEC +_0801AB40: .4byte 0x000033E0 + thumb_func_end sub_0801AB30 + + thumb_func_start DestroyWonderNews +DestroyWonderNews: @ 0x0801AB44 + push {lr} + bl s_DestroyWonderNews + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end DestroyWonderNews + + thumb_func_start sub_0801AB50 +sub_0801AB50: @ 0x0801AB50 + push {r4, r5, r6, lr} + adds r6, r0, #0 + bl sub_0801ABE4 + cmp r0, #0 + beq _0801AB98 + bl s_DestroyWonderNews + ldr r4, _0801AB8C + ldr r0, [r4] + ldr r5, _0801AB90 + adds r0, r0, r5 + adds r1, r6, #0 + movs r2, #0xe0 + bl memcpy + ldr r0, [r4] + adds r0, r0, r5 + movs r1, #0xe0 + bl CalcCRC16WithTable + ldr r1, [r4] + ldr r2, _0801AB94 + adds r1, r1, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [r1] + movs r0, #1 + b _0801AB9A + .align 2, 0 +_0801AB8C: .4byte 0x03005AEC +_0801AB90: .4byte 0x00003230 +_0801AB94: .4byte 0x0000322C +_0801AB98: + movs r0, #0 +_0801AB9A: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_0801AB50 + + thumb_func_start ValidateReceivedWonderNews +ValidateReceivedWonderNews: @ 0x0801ABA0 + push {r4, lr} + ldr r4, _0801ABD0 + ldr r0, [r4] + ldr r1, _0801ABD4 + adds r0, r0, r1 + movs r1, #0xe0 + bl CalcCRC16WithTable + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, [r4] + ldr r2, _0801ABD8 + adds r1, r4, r2 + ldr r1, [r1] + cmp r0, r1 + bne _0801ABDC + ldr r1, _0801ABD4 + adds r0, r4, r1 + bl sub_0801ABE4 + cmp r0, #0 + beq _0801ABDC + movs r0, #1 + b _0801ABDE + .align 2, 0 +_0801ABD0: .4byte 0x03005AEC +_0801ABD4: .4byte 0x00003230 +_0801ABD8: .4byte 0x0000322C +_0801ABDC: + movs r0, #0 +_0801ABDE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end ValidateReceivedWonderNews + + thumb_func_start sub_0801ABE4 +sub_0801ABE4: @ 0x0801ABE4 + push {lr} + ldrh r0, [r0] + cmp r0, #0 + beq _0801ABF0 + movs r0, #1 + b _0801ABF2 +_0801ABF0: + movs r0, #0 +_0801ABF2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0801ABE4 + + thumb_func_start WonderNews_Test_Unk_02 +WonderNews_Test_Unk_02: @ 0x0801ABF8 + push {lr} + ldr r0, _0801AC0C + ldr r0, [r0] + ldr r1, _0801AC10 + adds r0, r0, r1 + ldrb r0, [r0, #2] + cmp r0, #0 + beq _0801AC14 + movs r0, #1 + b _0801AC16 + .align 2, 0 +_0801AC0C: .4byte 0x03005AEC +_0801AC10: .4byte 0x00003230 +_0801AC14: + movs r0, #0 +_0801AC16: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end WonderNews_Test_Unk_02 + + thumb_func_start s_DestroyWonderNews +s_DestroyWonderNews: @ 0x0801AC1C + push {r4, lr} + sub sp, #4 + movs r4, #0 + str r4, [sp] + bl GetSavedWonderNews + adds r1, r0, #0 + ldr r2, _0801AC44 + mov r0, sp + bl CpuSet + ldr r0, _0801AC48 + ldr r0, [r0] + ldr r1, _0801AC4C + adds r0, r0, r1 + str r4, [r0] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801AC44: .4byte 0x05000038 +_0801AC48: .4byte 0x03005AEC +_0801AC4C: .4byte 0x0000322C + thumb_func_end s_DestroyWonderNews + + thumb_func_start sub_0801AC50 +sub_0801AC50: @ 0x0801AC50 + push {lr} + sub sp, #4 + movs r0, #0 + str r0, [sp] + bl sub_0801AB1C + adds r1, r0, #0 + ldr r2, _0801AC70 + mov r0, sp + bl CpuSet + bl sub_0801D9D0 + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_0801AC70: .4byte 0x05000001 + thumb_func_end sub_0801AC50 + + thumb_func_start sub_0801AC74 +sub_0801AC74: @ 0x0801AC74 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0801AC8C + ldr r0, [r0] + ldr r1, _0801AC90 + adds r4, r0, r1 + bl ValidateReceivedWonderNews + cmp r0, #0 + bne _0801AC94 +_0801AC88: + movs r0, #0 + b _0801ACAA + .align 2, 0 +_0801AC8C: .4byte 0x03005AEC +_0801AC90: .4byte 0x00003230 +_0801AC94: + movs r2, #0 +_0801AC96: + adds r0, r4, r2 + adds r1, r5, r2 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bne _0801AC88 + adds r2, #1 + cmp r2, #0xdf + bls _0801AC96 + movs r0, #1 +_0801ACAA: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_0801AC74 + + thumb_func_start DestroyWonderCard +DestroyWonderCard: @ 0x0801ACB0 + push {lr} + bl sub_0801ADF0 + bl sub_0801AE28 + bl sub_0801B524 + bl ClearRamScript + bl sub_0809CDB0 + bl sub_0809CE48 + ldr r0, _0801ACDC + ldr r0, [r0] + ldr r1, _0801ACE0 + adds r0, r0, r1 + bl ClearEReaderTrainer + pop {r0} + bx r0 + .align 2, 0 +_0801ACDC: .4byte 0x03005AF0 +_0801ACE0: .4byte 0x00000BEC + thumb_func_end DestroyWonderCard + + thumb_func_start sub_0801ACE4 +sub_0801ACE4: @ 0x0801ACE4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + bl sub_0801AD8C + cmp r0, #0 + beq _0801AD38 + bl DestroyWonderCard + ldr r4, _0801AD28 + ldr r0, [r4] + ldr r5, _0801AD2C + adds r0, r0, r5 + adds r1, r6, #0 + movs r2, #0xa4 + bl memcpy + ldr r0, [r4] + adds r0, r0, r5 + movs r1, #0xa4 + bl CalcCRC16WithTable + ldr r1, [r4] + ldr r3, _0801AD30 + adds r2, r1, r3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [r2] + ldr r0, _0801AD34 + adds r2, r1, r0 + adds r1, r1, r5 + ldrh r0, [r1, #2] + strh r0, [r2, #6] + movs r0, #1 + b _0801AD3A + .align 2, 0 +_0801AD28: .4byte 0x03005AEC +_0801AD2C: .4byte 0x00003314 +_0801AD30: .4byte 0x00003310 +_0801AD34: .4byte 0x000033BC +_0801AD38: + movs r0, #0 +_0801AD3A: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_0801ACE4 + + thumb_func_start ValidateReceivedWonderCard +ValidateReceivedWonderCard: @ 0x0801AD40 + push {r4, r5, lr} + ldr r5, _0801AD78 + ldr r0, [r5] + ldr r1, _0801AD7C + adds r4, r0, r1 + adds r1, #4 + adds r0, r0, r1 + movs r1, #0xa4 + bl CalcCRC16WithTable + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, [r4] + cmp r1, r0 + bne _0801AD84 + ldr r0, [r5] + ldr r1, _0801AD80 + adds r0, r0, r1 + bl sub_0801AD8C + cmp r0, #0 + beq _0801AD84 + bl ValidateSavedRamScript + cmp r0, #0 + beq _0801AD84 + movs r0, #1 + b _0801AD86 + .align 2, 0 +_0801AD78: .4byte 0x03005AEC +_0801AD7C: .4byte 0x00003310 +_0801AD80: .4byte 0x00003314 +_0801AD84: + movs r0, #0 +_0801AD86: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end ValidateReceivedWonderCard + + thumb_func_start sub_0801AD8C +sub_0801AD8C: @ 0x0801AD8C + push {lr} + adds r2, r0, #0 + ldrh r0, [r2] + cmp r0, #0 + beq _0801ADC2 + ldrb r1, [r2, #8] + lsls r0, r1, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #2 + bhi _0801ADC2 + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0 + beq _0801ADB0 + cmp r0, #0x40 + beq _0801ADB0 + cmp r0, #0x80 + bne _0801ADC2 +_0801ADB0: + lsls r0, r1, #0x1a + lsrs r0, r0, #0x1c + cmp r0, #7 + bhi _0801ADC2 + ldrb r0, [r2, #9] + cmp r0, #7 + bhi _0801ADC2 + movs r0, #1 + b _0801ADC4 +_0801ADC2: + movs r0, #0 +_0801ADC4: + pop {r1} + bx r1 + thumb_func_end sub_0801AD8C + + thumb_func_start WonderCard_Test_Unk_08_6 +WonderCard_Test_Unk_08_6: @ 0x0801ADC8 + push {lr} + ldr r0, _0801ADE0 + ldr r0, [r0] + ldr r1, _0801ADE4 + adds r0, r0, r1 + ldrb r1, [r0, #8] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0 + beq _0801ADE8 + movs r0, #1 + b _0801ADEA + .align 2, 0 +_0801ADE0: .4byte 0x03005AEC +_0801ADE4: .4byte 0x00003314 +_0801ADE8: + movs r0, #0 +_0801ADEA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end WonderCard_Test_Unk_08_6 + + thumb_func_start sub_0801ADF0 +sub_0801ADF0: @ 0x0801ADF0 + push {r4, r5, lr} + sub sp, #4 + movs r5, #0 + str r5, [sp] + ldr r4, _0801AE18 + ldr r1, [r4] + ldr r0, _0801AE1C + adds r1, r1, r0 + ldr r2, _0801AE20 + mov r0, sp + bl CpuSet + ldr r0, [r4] + ldr r1, _0801AE24 + adds r0, r0, r1 + str r5, [r0] + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0801AE18: .4byte 0x03005AEC +_0801AE1C: .4byte 0x00003314 +_0801AE20: .4byte 0x05000029 +_0801AE24: .4byte 0x00003310 + thumb_func_end sub_0801ADF0 + + thumb_func_start sub_0801AE28 +sub_0801AE28: @ 0x0801AE28 + push {r4, lr} + sub sp, #4 + movs r4, #0 + str r4, [sp] + bl sav1_get_mevent_buffer_2 + adds r1, r0, #0 + ldr r2, _0801AE50 + mov r0, sp + bl CpuSet + ldr r0, _0801AE54 + ldr r0, [r0] + ldr r1, _0801AE58 + adds r0, r0, r1 + str r4, [r0] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801AE50: .4byte 0x05000009 +_0801AE54: .4byte 0x03005AEC +_0801AE58: .4byte 0x000033B8 + thumb_func_end sub_0801AE28 + + thumb_func_start GetWonderCardFlagID +GetWonderCardFlagID: @ 0x0801AE5C + push {lr} + bl ValidateReceivedWonderCard + cmp r0, #0 + bne _0801AE6A + movs r0, #0 + b _0801AE74 +_0801AE6A: + ldr r0, _0801AE78 + ldr r0, [r0] + ldr r1, _0801AE7C + adds r0, r0, r1 + ldrh r0, [r0] +_0801AE74: + pop {r1} + bx r1 + .align 2, 0 +_0801AE78: .4byte 0x03005AEC +_0801AE7C: .4byte 0x00003314 + thumb_func_end GetWonderCardFlagID + + thumb_func_start WonderCard_ResetInternalReceivedFlag +WonderCard_ResetInternalReceivedFlag: @ 0x0801AE80 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #8] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0x40 + bne _0801AE94 + movs r0, #0x3f + ands r0, r1 + strb r0, [r2, #8] +_0801AE94: + pop {r0} + bx r0 + thumb_func_end WonderCard_ResetInternalReceivedFlag + + thumb_func_start IsWonderCardFlagIDInValidRange +IsWonderCardFlagIDInValidRange: @ 0x0801AE98 + push {lr} + lsls r0, r0, #0x10 + ldr r1, _0801AEAC + adds r0, r0, r1 + lsrs r0, r0, #0x10 + cmp r0, #0x13 + bls _0801AEB0 + movs r0, #0 + b _0801AEB2 + .align 2, 0 +_0801AEAC: .4byte 0xFC180000 +_0801AEB0: + movs r0, #1 +_0801AEB2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsWonderCardFlagIDInValidRange + + thumb_func_start CheckReceivedGiftFromWonderCard +CheckReceivedGiftFromWonderCard: @ 0x0801AEB8 + push {r4, lr} + bl GetWonderCardFlagID + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r4, #0 + bl IsWonderCardFlagIDInValidRange + cmp r0, #0 + beq _0801AEF0 + ldr r1, _0801AEE8 + ldr r2, _0801AEEC + adds r0, r4, r2 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0801AEF0 + movs r0, #1 + b _0801AEF2 + .align 2, 0 +_0801AEE8: .4byte 0x082C3304 +_0801AEEC: .4byte 0xFFFFFC18 +_0801AEF0: + movs r0, #0 +_0801AEF2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end CheckReceivedGiftFromWonderCard + + thumb_func_start sub_0801AEF8 +sub_0801AEF8: @ 0x0801AEF8 + push {lr} + movs r3, #0 + cmp r3, r1 + bge _0801AF1A + adds r2, r0, #0 + adds r2, #8 +_0801AF04: + ldrh r0, [r2, #0xe] + cmp r0, #0 + beq _0801AF12 + ldrh r0, [r2] + cmp r0, #0 + beq _0801AF12 + adds r3, #1 +_0801AF12: + adds r2, #2 + subs r1, #1 + cmp r1, #0 + bne _0801AF04 +_0801AF1A: + adds r0, r3, #0 + pop {r1} + bx r1 + thumb_func_end sub_0801AEF8 + + thumb_func_start sub_0801AF20 +sub_0801AF20: @ 0x0801AF20 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r4, r1, #0 + movs r1, #0 + cmp r1, r2 + bge _0801AF5A + ldrh r6, [r4, #2] + movs r0, #0x16 + adds r0, r0, r5 + mov ip, r0 +_0801AF34: + lsls r3, r1, #1 + mov r7, ip + ldrh r0, [r7] + cmp r0, r6 + beq _0801AF4C + adds r0, r5, #0 + adds r0, #8 + adds r0, r0, r3 + ldrh r0, [r0] + ldrh r3, [r4] + cmp r0, r3 + bne _0801AF50 +_0801AF4C: + movs r0, #1 + b _0801AF5C +_0801AF50: + movs r7, #2 + add ip, r7 + adds r1, #1 + cmp r1, r2 + blt _0801AF34 +_0801AF5A: + movs r0, #0 +_0801AF5C: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0801AF20 + + thumb_func_start sub_0801AF64 +sub_0801AF64: @ 0x0801AF64 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #2] + cmp r0, #0 + beq _0801AF84 + ldrh r1, [r1] + cmp r1, #0 + beq _0801AF84 + ldr r0, _0801AF80 + cmp r1, r0 + bhi _0801AF84 + movs r0, #1 + b _0801AF86 + .align 2, 0 +_0801AF80: .4byte 0x0000019B +_0801AF84: + movs r0, #0 +_0801AF86: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0801AF64 + + thumb_func_start sub_0801AF8C +sub_0801AF8C: @ 0x0801AF8C + push {lr} + bl ValidateReceivedWonderCard + cmp r0, #0 + beq _0801AFC0 + ldr r0, _0801AFB4 + ldr r3, [r0] + ldr r0, _0801AFB8 + adds r2, r3, r0 + ldrb r1, [r2, #8] + movs r0, #3 + ands r0, r1 + cmp r0, #1 + bne _0801AFC0 + ldr r1, _0801AFBC + adds r0, r3, r1 + ldrb r1, [r2, #9] + bl sub_0801AEF8 + b _0801AFC2 + .align 2, 0 +_0801AFB4: .4byte 0x03005AEC +_0801AFB8: .4byte 0x00003314 +_0801AFBC: .4byte 0x000033BC +_0801AFC0: + movs r0, #0 +_0801AFC2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0801AF8C + + thumb_func_start sub_0801AFC8 +sub_0801AFC8: @ 0x0801AFC8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, _0801AFF4 + ldr r0, [r6] + ldr r1, _0801AFF8 + adds r0, r0, r1 + ldrb r4, [r0, #9] + adds r0, r5, #0 + bl sub_0801AF64 + cmp r0, #0 + beq _0801B032 + ldr r0, [r6] + ldr r1, _0801AFFC + adds r0, r0, r1 + adds r1, r5, #0 + adds r2, r4, #0 + bl sub_0801AF20 + cmp r0, #0 + beq _0801B00C + b _0801B032 + .align 2, 0 +_0801AFF4: .4byte 0x03005AEC +_0801AFF8: .4byte 0x00003314 +_0801AFFC: .4byte 0x000033BC +_0801B000: + ldrh r0, [r5, #2] + strh r0, [r1] + ldrh r0, [r5] + strh r0, [r2] + movs r0, #1 + b _0801B034 +_0801B00C: + movs r3, #0 + cmp r3, r4 + bge _0801B032 + ldr r0, [r6] + ldr r6, _0801B03C + adds r2, r0, r6 + adds r6, #0xe + adds r1, r0, r6 +_0801B01C: + ldrh r0, [r2, #0xe] + cmp r0, #0 + bne _0801B028 + ldrh r0, [r2] + cmp r0, #0 + beq _0801B000 +_0801B028: + adds r2, #2 + adds r1, #2 + adds r3, #1 + cmp r3, r4 + blt _0801B01C +_0801B032: + movs r0, #0 +_0801B034: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0801B03C: .4byte 0x000033C4 + thumb_func_end sub_0801AFC8 + + thumb_func_start sub_0801B040 +sub_0801B040: @ 0x0801B040 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r5, r0, #0 + adds r4, r1, #0 + movs r0, #0 + str r0, [sp] + ldr r2, _0801B074 + mov r0, sp + adds r1, r5, #0 + bl CpuSet + ldr r0, _0801B078 + str r0, [r5] + movs r0, #1 + strh r0, [r5, #4] + str r0, [r5, #8] + cmp r4, #0 + beq _0801B080 + movs r0, #5 + strh r0, [r5, #0xc] + ldr r0, _0801B07C + b _0801B088 + .align 2, 0 +_0801B074: .4byte 0x05000019 +_0801B078: .4byte 0x00000101 +_0801B07C: .4byte 0x00000201 +_0801B080: + movs r0, #4 + strh r0, [r5, #0xc] + movs r0, #0x80 + lsls r0, r0, #2 +_0801B088: + str r0, [r5, #0x10] + bl ValidateReceivedWonderCard + cmp r0, #0 + beq _0801B0BC + bl GetSavedWonderCard + ldrh r0, [r0] + strh r0, [r5, #0x14] + bl sav1_get_mevent_buffer_2 + adds r1, r5, #0 + adds r1, #0x20 + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + bl GetSavedWonderCard + ldrb r1, [r0, #9] + adds r0, r5, #0 + adds r0, #0x44 + strb r1, [r0] + b _0801B0BE +_0801B0BC: + strh r0, [r5, #0x14] +_0801B0BE: + adds r4, r5, #0 + adds r4, #0x4c + ldr r0, _0801B148 + mov r8, r0 + adds r6, r5, #0 + adds r6, #0x45 + adds r7, r5, #0 + adds r7, #0x50 + movs r1, #0x5c + adds r1, r1, r5 + mov sb, r1 + movs r2, #0x60 + adds r2, r2, r5 + mov sl, r2 + ldr r0, _0801B14C + ldr r0, [r0] + ldr r3, _0801B150 + adds r2, r0, r3 + adds r1, r5, #0 + adds r1, #0x16 + movs r3, #3 +_0801B0E8: + ldrh r0, [r2] + strh r0, [r1] + adds r2, #2 + adds r1, #2 + subs r3, #1 + cmp r3, #0 + bge _0801B0E8 + mov r0, r8 + ldr r1, [r0] + adds r1, #0xa + adds r0, r4, #0 + bl CopyTrainerId + mov r2, r8 + ldr r1, [r2] + adds r0, r6, #0 + bl StringCopy + ldr r0, _0801B14C + ldr r0, [r0] + ldr r3, _0801B154 + adds r2, r0, r3 + adds r1, r7, #0 + movs r3, #5 +_0801B118: + ldrh r0, [r2] + strh r0, [r1] + adds r2, #2 + adds r1, #2 + subs r3, #1 + cmp r3, #0 + bge _0801B118 + ldr r1, _0801B158 + mov r0, sb + movs r2, #4 + bl memcpy + ldr r0, _0801B15C + ldrb r0, [r0] + mov r4, sl + strb r0, [r4] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0801B148: .4byte 0x03005AF0 +_0801B14C: .4byte 0x03005AEC +_0801B150: .4byte 0x000033E0 +_0801B154: .4byte 0x00002BB0 +_0801B158: .4byte 0x080000AC +_0801B15C: .4byte 0x080000BC + thumb_func_end sub_0801B040 + + thumb_func_start sub_0801B160 +sub_0801B160: @ 0x0801B160 + push {r4, lr} + adds r2, r0, #0 + adds r4, r1, #0 + ldr r1, [r2] + ldr r0, _0801B1A0 + cmp r1, r0 + bne _0801B19C + ldrh r1, [r2, #4] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _0801B19C + ldr r0, [r2, #8] + ands r0, r3 + cmp r0, #0 + beq _0801B19C + cmp r4, #0 + bne _0801B1A4 + ldrh r1, [r2, #0xc] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0801B19C + ldr r0, [r2, #0x10] + movs r1, #0xe0 + lsls r1, r1, #2 + ands r0, r1 + cmp r0, #0 + bne _0801B1A4 +_0801B19C: + movs r0, #0 + b _0801B1A6 + .align 2, 0 +_0801B1A0: .4byte 0x00000101 +_0801B1A4: + movs r0, #1 +_0801B1A6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0801B160 + + thumb_func_start sub_0801B1AC +sub_0801B1AC: @ 0x0801B1AC + push {lr} + ldrh r1, [r1, #0x14] + cmp r1, #0 + bne _0801B1B8 + movs r0, #0 + b _0801B1C4 +_0801B1B8: + ldrh r0, [r0] + cmp r0, r1 + beq _0801B1C2 + movs r0, #2 + b _0801B1C4 +_0801B1C2: + movs r0, #1 +_0801B1C4: + pop {r1} + bx r1 + thumb_func_end sub_0801B1AC + + thumb_func_start sub_0801B1C8 +sub_0801B1C8: @ 0x0801B1C8 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r4, r1, #0 + adds r5, r4, #0 + adds r5, #0x20 + adds r4, #0x44 + ldrb r1, [r4] + adds r0, r5, #0 + bl sub_0801AEF8 + ldrb r2, [r4] + subs r4, r2, r0 + cmp r4, #0 + bne _0801B1E8 + movs r0, #1 + b _0801B202 +_0801B1E8: + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0801AF20 + cmp r0, #0 + beq _0801B1F8 + movs r0, #3 + b _0801B202 +_0801B1F8: + cmp r4, #1 + beq _0801B200 + movs r0, #2 + b _0801B202 +_0801B200: + movs r0, #4 +_0801B202: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_0801B1C8 + + thumb_func_start MEventStruct_Unk1442CC_CompareField_unk_16 +MEventStruct_Unk1442CC_CompareField_unk_16: @ 0x0801B208 + push {r4, lr} + movs r3, #0 + adds r2, r0, #0 + adds r2, #0x16 +_0801B210: + ldrh r0, [r2] + ldrh r4, [r1] + cmp r0, r4 + beq _0801B21C + movs r0, #0 + b _0801B228 +_0801B21C: + adds r1, #2 + adds r2, #2 + adds r3, #1 + cmp r3, #3 + ble _0801B210 + movs r0, #1 +_0801B228: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MEventStruct_Unk1442CC_CompareField_unk_16 + + thumb_func_start sub_0801B230 +sub_0801B230: @ 0x0801B230 + push {lr} + adds r2, r0, #0 + adds r2, #0x20 + adds r0, #0x44 + ldrb r1, [r0] + adds r0, r2, #0 + bl sub_0801AEF8 + pop {r1} + bx r1 + thumb_func_end sub_0801B230 + + thumb_func_start MEventStruct_Unk1442CC_GetValueNFrom_unk_20 +MEventStruct_Unk1442CC_GetValueNFrom_unk_20: @ 0x0801B244 + push {lr} + adds r2, r0, #0 + cmp r1, #4 + bhi _0801B290 + lsls r0, r1, #2 + ldr r1, _0801B258 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801B258: .4byte 0x0801B25C +_0801B25C: @ jump table + .4byte _0801B270 @ case 0 + .4byte _0801B274 @ case 1 + .4byte _0801B278 @ case 2 + .4byte _0801B27C @ case 3 + .4byte _0801B288 @ case 4 +_0801B270: + ldrh r0, [r2, #0x20] + b _0801B29E +_0801B274: + ldrh r0, [r2, #0x22] + b _0801B29E +_0801B278: + ldrh r0, [r2, #0x24] + b _0801B29E +_0801B27C: + adds r0, r2, #0 + bl sub_0801B230 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _0801B29E +_0801B288: + adds r0, r2, #0 + adds r0, #0x44 + ldrb r0, [r0] + b _0801B29E +_0801B290: + ldr r0, _0801B2A4 + ldr r1, _0801B2A8 + ldr r2, _0801B2AC + movs r3, #1 + bl AGBAssert + movs r0, #0 +_0801B29E: + pop {r1} + bx r1 + .align 2, 0 +_0801B2A4: .4byte 0x082C332C +_0801B2A8: .4byte 0x0000034F +_0801B2AC: .4byte 0x082C3338 + thumb_func_end MEventStruct_Unk1442CC_GetValueNFrom_unk_20 + + thumb_func_start sub_0801B2B0 +sub_0801B2B0: @ 0x0801B2B0 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0801B2D8 + ldr r0, [r2] + ldr r1, _0801B2DC + adds r0, r0, r1 + ldrb r1, [r0, #8] + movs r0, #3 + ands r0, r1 + adds r3, r2, #0 + cmp r0, #2 + bne _0801B34A + movs r2, #0 + cmp r4, #4 + bhi _0801B318 + lsls r0, r4, #2 + ldr r1, _0801B2E0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801B2D8: .4byte 0x03005AEC +_0801B2DC: .4byte 0x00003314 +_0801B2E0: .4byte 0x0801B2E4 +_0801B2E4: @ jump table + .4byte _0801B2F8 @ case 0 + .4byte _0801B304 @ case 1 + .4byte _0801B310 @ case 2 + .4byte _0801B318 @ case 3 + .4byte _0801B318 @ case 4 +_0801B2F8: + ldr r0, [r3] + ldr r1, _0801B300 + b _0801B316 + .align 2, 0 +_0801B300: .4byte 0x000033BC +_0801B304: + ldr r0, [r3] + ldr r1, _0801B30C + b _0801B316 + .align 2, 0 +_0801B30C: .4byte 0x000033BE +_0801B310: + ldr r0, [r3] + movs r1, #0xcf + lsls r1, r1, #6 +_0801B316: + adds r2, r0, r1 +_0801B318: + cmp r2, #0 + bne _0801B338 + ldr r0, _0801B32C + ldr r1, _0801B330 + ldr r2, _0801B334 + movs r3, #1 + bl AGBAssert + b _0801B34A + .align 2, 0 +_0801B32C: .4byte 0x082C332C +_0801B330: .4byte 0x0000037A +_0801B334: .4byte 0x082C3338 +_0801B338: + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _0801B350 + cmp r0, r1 + bls _0801B34A + strh r1, [r2] +_0801B34A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801B350: .4byte 0x000003E7 + thumb_func_end sub_0801B2B0 + + thumb_func_start mevent_081445C0 +mevent_081445C0: @ 0x0801B354 + push {lr} + cmp r0, #4 + bhi _0801B438 + lsls r0, r0, #2 + ldr r1, _0801B364 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801B364: .4byte 0x0801B368 +_0801B368: @ jump table + .4byte _0801B37C @ case 0 + .4byte _0801B3A4 @ case 1 + .4byte _0801B3CC @ case 2 + .4byte _0801B3F4 @ case 3 + .4byte _0801B418 @ case 4 +_0801B37C: + ldr r0, _0801B398 + ldr r2, [r0] + ldr r1, _0801B39C + adds r0, r2, r1 + ldrb r1, [r0, #8] + movs r0, #3 + ands r0, r1 + cmp r0, #2 + bne _0801B438 + ldr r1, _0801B3A0 + adds r0, r2, r1 + ldrh r0, [r0] + b _0801B446 + .align 2, 0 +_0801B398: .4byte 0x03005AEC +_0801B39C: .4byte 0x00003314 +_0801B3A0: .4byte 0x000033BC +_0801B3A4: + ldr r0, _0801B3C0 + ldr r2, [r0] + ldr r1, _0801B3C4 + adds r0, r2, r1 + ldrb r1, [r0, #8] + movs r0, #3 + ands r0, r1 + cmp r0, #2 + bne _0801B438 + ldr r1, _0801B3C8 + adds r0, r2, r1 + ldrh r0, [r0, #2] + b _0801B446 + .align 2, 0 +_0801B3C0: .4byte 0x03005AEC +_0801B3C4: .4byte 0x00003314 +_0801B3C8: .4byte 0x000033BC +_0801B3CC: + ldr r0, _0801B3E8 + ldr r2, [r0] + ldr r1, _0801B3EC + adds r0, r2, r1 + ldrb r1, [r0, #8] + movs r0, #3 + ands r0, r1 + cmp r0, #2 + bne _0801B438 + ldr r1, _0801B3F0 + adds r0, r2, r1 + ldrh r0, [r0, #4] + b _0801B446 + .align 2, 0 +_0801B3E8: .4byte 0x03005AEC +_0801B3EC: .4byte 0x00003314 +_0801B3F0: .4byte 0x000033BC +_0801B3F4: + ldr r0, _0801B410 + ldr r0, [r0] + ldr r1, _0801B414 + adds r0, r0, r1 + ldrb r1, [r0, #8] + movs r0, #3 + ands r0, r1 + cmp r0, #1 + bne _0801B438 + bl sub_0801AF8C + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _0801B446 + .align 2, 0 +_0801B410: .4byte 0x03005AEC +_0801B414: .4byte 0x00003314 +_0801B418: + ldr r0, _0801B430 + ldr r0, [r0] + ldr r1, _0801B434 + adds r2, r0, r1 + ldrb r1, [r2, #8] + movs r0, #3 + ands r0, r1 + cmp r0, #1 + bne _0801B438 + ldrb r0, [r2, #9] + b _0801B446 + .align 2, 0 +_0801B430: .4byte 0x03005AEC +_0801B434: .4byte 0x00003314 +_0801B438: + ldr r0, _0801B44C + ldr r1, _0801B450 + ldr r2, _0801B454 + movs r3, #1 + bl AGBAssert + movs r0, #0 +_0801B446: + pop {r1} + bx r1 + .align 2, 0 +_0801B44C: .4byte 0x082C332C +_0801B450: .4byte 0x000003A7 +_0801B454: .4byte 0x082C3338 + thumb_func_end mevent_081445C0 + + thumb_func_start sub_0801B458 +sub_0801B458: @ 0x0801B458 + ldr r1, _0801B460 + movs r0, #0 + str r0, [r1] + bx lr + .align 2, 0 +_0801B460: .4byte 0x02022924 + thumb_func_end sub_0801B458 + + thumb_func_start sub_0801B464 +sub_0801B464: @ 0x0801B464 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r4, r0, #0 + ldr r5, _0801B494 + movs r0, #0 + str r0, [r5] + cmp r4, #0 + beq _0801B4A2 + bl ValidateReceivedWonderCard + cmp r0, #0 + beq _0801B4A0 + ldr r0, _0801B498 + ldr r0, [r0] + ldr r1, _0801B49C + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, r4 + bne _0801B4A0 + movs r0, #1 + str r0, [r5] + b _0801B4A2 + .align 2, 0 +_0801B494: .4byte 0x02022924 +_0801B498: .4byte 0x03005AEC +_0801B49C: .4byte 0x00003314 +_0801B4A0: + movs r0, #0 +_0801B4A2: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_0801B464 + + thumb_func_start sub_0801B4A8 +sub_0801B4A8: @ 0x0801B4A8 + push {lr} + adds r2, r0, #0 + ldr r0, _0801B4D0 + ldr r0, [r0] + cmp r0, #0 + beq _0801B514 + cmp r2, #1 + beq _0801B4EC + cmp r2, #1 + blo _0801B4D8 + cmp r2, #2 + bne _0801B508 + ldr r0, _0801B4D4 + ldr r2, [r0] + movs r0, #0xd0 + lsls r0, r0, #6 + adds r2, r2, r0 + movs r0, #2 + b _0801B4F6 + .align 2, 0 +_0801B4D0: .4byte 0x02022924 +_0801B4D4: .4byte 0x03005AEC +_0801B4D8: + ldr r0, _0801B4E4 + ldr r2, [r0] + ldr r0, _0801B4E8 + adds r2, r2, r0 + movs r0, #0 + b _0801B4F6 + .align 2, 0 +_0801B4E4: .4byte 0x03005AEC +_0801B4E8: .4byte 0x000033EC +_0801B4EC: + ldr r0, _0801B500 + ldr r2, [r0] + ldr r0, _0801B504 + adds r2, r2, r0 + movs r0, #1 +_0801B4F6: + movs r3, #5 + bl sub_0801B5B8 + b _0801B514 + .align 2, 0 +_0801B500: .4byte 0x03005AEC +_0801B504: .4byte 0x000033EC +_0801B508: + ldr r0, _0801B518 + ldr r1, _0801B51C + ldr r2, _0801B520 + movs r3, #1 + bl AGBAssert +_0801B514: + pop {r0} + bx r0 + .align 2, 0 +_0801B518: .4byte 0x082C332C +_0801B51C: .4byte 0x000003F2 +_0801B520: .4byte 0x082C3338 + thumb_func_end sub_0801B4A8 + + thumb_func_start sub_0801B524 +sub_0801B524: @ 0x0801B524 + push {lr} + sub sp, #4 + movs r0, #0 + str r0, [sp] + ldr r0, _0801B544 + ldr r1, [r0] + ldr r0, _0801B548 + adds r1, r1, r0 + ldr r2, _0801B54C + mov r0, sp + bl CpuSet + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_0801B544: .4byte 0x03005AEC +_0801B548: .4byte 0x000033EC +_0801B54C: .4byte 0x0500000A + thumb_func_end sub_0801B524 + + thumb_func_start sub_0801B550 +sub_0801B550: @ 0x0801B550 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + movs r1, #0 + cmp r1, r2 + bge _0801B572 + ldr r0, [r4] + cmp r0, r5 + beq _0801B572 + adds r3, r4, #0 +_0801B564: + adds r3, #4 + adds r1, #1 + cmp r1, r2 + bge _0801B572 + ldr r0, [r3] + cmp r0, r5 + bne _0801B564 +_0801B572: + cmp r1, r2 + bne _0801B594 + subs r3, r1, #1 + cmp r3, #0 + ble _0801B58E + lsls r0, r3, #2 + subs r0, #4 + adds r2, r0, r4 +_0801B582: + ldr r0, [r2] + str r0, [r2, #4] + subs r2, #4 + subs r3, #1 + cmp r3, #0 + bgt _0801B582 +_0801B58E: + str r5, [r4] + movs r0, #1 + b _0801B5B0 +_0801B594: + adds r3, r1, #0 + cmp r3, #0 + ble _0801B5AC + lsls r0, r3, #2 + subs r0, #4 + adds r2, r0, r4 +_0801B5A0: + ldr r0, [r2] + str r0, [r2, #4] + subs r2, #4 + subs r3, #1 + cmp r3, #0 + bgt _0801B5A0 +_0801B5AC: + str r5, [r4] + movs r0, #0 +_0801B5B0: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0801B550 + + thumb_func_start sub_0801B5B8 +sub_0801B5B8: @ 0x0801B5B8 + push {r4, lr} + adds r4, r0, #0 + adds r0, r1, #0 + adds r1, r2, #0 + adds r2, r3, #0 + bl sub_0801B550 + cmp r0, #0 + beq _0801B5D0 + adds r0, r4, #0 + bl sub_0801B2B0 +_0801B5D0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0801B5B8 + diff --git a/asm/mevent_801BAAC.s b/asm/mevent_801BAAC.s new file mode 100644 index 0000000..a195a7c --- /dev/null +++ b/asm/mevent_801BAAC.s @@ -0,0 +1,2649 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start InitWonderCardResources +InitWonderCardResources: @ 0x0801B5D8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + cmp r4, #0 + beq _0801B5F4 + cmp r5, #0 + beq _0801B5F4 + ldr r6, _0801B5F8 + ldr r0, _0801B5FC + bl AllocZeroed + str r0, [r6] + cmp r0, #0 + bne _0801B600 +_0801B5F4: + movs r0, #0 + b _0801B664 + .align 2, 0 +_0801B5F8: .4byte 0x02022928 +_0801B5FC: .4byte 0x0000126C +_0801B600: + adds r1, r4, #0 + movs r2, #0xa4 + bl memcpy + ldr r0, [r6] + adds r0, #0xa4 + adds r1, r5, #0 + ldm r1!, {r2, r3, r4} + stm r0!, {r2, r3, r4} + ldm r1!, {r2, r3, r4} + stm r0!, {r2, r3, r4} + ldm r1!, {r2, r3, r4} + stm r0!, {r2, r3, r4} + ldr r2, [r6] + ldrb r1, [r2, #8] + lsls r0, r1, #0x1a + lsrs r0, r0, #0x1c + cmp r0, #7 + bls _0801B62E + movs r0, #0x3d + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #8] +_0801B62E: + ldr r2, [r6] + ldrb r1, [r2, #8] + lsls r0, r1, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #2 + bls _0801B642 + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #8] +_0801B642: + ldr r1, [r6] + ldrb r0, [r1, #9] + cmp r0, #7 + bls _0801B64E + movs r0, #0 + strb r0, [r1, #9] +_0801B64E: + ldr r0, [r6] + adds r2, r0, #0 + adds r2, #0xc8 + ldrb r0, [r0, #8] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1c + lsls r0, r0, #4 + ldr r1, _0801B66C + adds r0, r0, r1 + str r0, [r2] + movs r0, #1 +_0801B664: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0801B66C: .4byte 0x082C428C + thumb_func_end InitWonderCardResources + + thumb_func_start DestroyWonderCardResources +DestroyWonderCardResources: @ 0x0801B670 + push {r4, lr} + ldr r4, _0801B694 + ldr r0, [r4] + cmp r0, #0 + beq _0801B68C + ldr r2, _0801B698 + movs r1, #0 + bl memset + ldr r0, [r4] + bl Free + movs r0, #0 + str r0, [r4] +_0801B68C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801B694: .4byte 0x02022928 +_0801B698: .4byte 0x0000126C + thumb_func_end DestroyWonderCardResources + + thumb_func_start FadeToWonderCardMenu +FadeToWonderCardMenu: @ 0x0801B69C + push {r4, r5, r6, lr} + sub sp, #0x24 + ldr r4, _0801B6B0 + ldr r0, [r4] + cmp r0, #0 + bne _0801B6B4 + movs r0, #1 + rsbs r0, r0, #0 + b _0801B8A4 + .align 2, 0 +_0801B6B0: .4byte 0x02022928 +_0801B6B4: + adds r0, #0xcc + ldrb r0, [r0] + cmp r0, #7 + bls _0801B6BE + b _0801B880 +_0801B6BE: + lsls r0, r0, #2 + ldr r1, _0801B6C8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801B6C8: .4byte 0x0801B6CC +_0801B6CC: @ jump table + .4byte _0801B6EC @ case 0 + .4byte _0801B6FE @ case 1 + .4byte _0801B70C @ case 2 + .4byte _0801B7A0 @ case 3 + .4byte _0801B824 @ case 4 + .4byte _0801B82A @ case 5 + .4byte _0801B844 @ case 6 + .4byte _0801B84A @ case 7 +_0801B6EC: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + b _0801B896 +_0801B6FE: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801B70A + b _0801B896 +_0801B70A: + b _0801B8A2 +_0801B70C: + movs r5, #0x1e + str r5, [sp] + movs r4, #0x14 + str r4, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + str r5, [sp] + str r4, [sp, #4] + movs r0, #1 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + str r5, [sp] + str r4, [sp, #4] + movs r0, #2 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, #0 + bl CopyBgTilemapBufferToVram + movs r0, #1 + bl CopyBgTilemapBufferToVram + movs r0, #2 + bl CopyBgTilemapBufferToVram + ldr r5, _0801B798 + ldr r0, [r5] + adds r0, #0xc8 + ldr r0, [r0] + ldr r1, [r0, #4] + movs r0, #0 + str r0, [sp] + movs r0, #2 + movs r2, #0 + movs r3, #8 + bl decompress_and_copy_tile_data_to_vram + ldr r4, _0801B79C + adds r0, r4, #0 + bl AddWindow + ldr r1, [r5] + adds r1, #0xce + strh r0, [r1] + adds r0, r4, #0 + adds r0, #8 + bl AddWindow + ldr r1, [r5] + adds r1, #0xd0 + strh r0, [r1] + adds r4, #0x10 + adds r0, r4, #0 + bl AddWindow + ldr r1, [r5] + adds r1, #0xd2 + strh r0, [r1] + b _0801B896 + .align 2, 0 +_0801B798: .4byte 0x02022928 +_0801B79C: .4byte 0x082C3348 +_0801B7A0: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + bne _0801B8A2 + movs r0, #1 + bl stdpal_get + movs r1, #0x20 + movs r2, #0x20 + bl LoadPalette + ldr r2, _0801B81C + ldrb r0, [r2, #8] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #8] + ldr r5, _0801B820 + ldr r0, [r5] + adds r0, #0xc8 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x10 + movs r2, #0x20 + bl LoadPalette + ldr r1, [r5] + adds r0, r1, #0 + adds r0, #0xc8 + ldr r0, [r0] + ldr r0, [r0, #8] + movs r4, #0x9b + lsls r4, r4, #2 + adds r1, r1, r4 + bl LZ77UnCompWram + ldr r1, [r5] + adds r1, r1, r4 + movs r2, #0x1e + str r2, [sp] + movs r0, #0x14 + str r0, [sp, #4] + str r6, [sp, #8] + str r6, [sp, #0xc] + str r2, [sp, #0x10] + str r0, [sp, #0x14] + movs r0, #1 + str r0, [sp, #0x18] + movs r0, #8 + str r0, [sp, #0x1c] + str r6, [sp, #0x20] + movs r0, #2 + movs r2, #0 + movs r3, #0 + bl CopyRectToBgTilemapBufferRect + movs r0, #2 + bl CopyBgTilemapBufferToVram + b _0801B896 + .align 2, 0 +_0801B81C: .4byte 0x02037C74 +_0801B820: .4byte 0x02022928 +_0801B824: + bl sub_0801B9F0 + b _0801B896 +_0801B82A: + movs r0, #0 + bl sub_0801BCA4 + movs r0, #1 + bl sub_0801BCA4 + movs r0, #2 + bl sub_0801BCA4 + movs r0, #1 + bl CopyBgTilemapBufferToVram + b _0801B896 +_0801B844: + bl LoadMonIconPalettes + b _0801B896 +_0801B84A: + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + ldr r2, _0801B87C + ldrb r1, [r2, #8] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #8] + bl sub_0801C04C + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + bl UpdatePaletteFade + b _0801B896 + .align 2, 0 +_0801B87C: .4byte 0x02037C74 +_0801B880: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0801B8A2 + ldr r0, [r4] + adds r0, #0xcc + strb r1, [r0] + movs r0, #1 + b _0801B8A4 +_0801B896: + ldr r0, _0801B8AC + ldr r1, [r0] + adds r1, #0xcc + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0801B8A2: + movs r0, #0 +_0801B8A4: + add sp, #0x24 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0801B8AC: .4byte 0x02022928 + thumb_func_end FadeToWonderCardMenu + + thumb_func_start FadeOutFromWonderCard +FadeOutFromWonderCard: @ 0x0801B8B0 + push {r4, r5, lr} + sub sp, #8 + ldr r4, _0801B8C4 + ldr r0, [r4] + cmp r0, #0 + bne _0801B8C8 + movs r0, #1 + rsbs r0, r0, #0 + b _0801B9E4 + .align 2, 0 +_0801B8C4: .4byte 0x02022928 +_0801B8C8: + adds r0, #0xcc + ldrb r0, [r0] + cmp r0, #5 + bhi _0801B9C0 + lsls r0, r0, #2 + ldr r1, _0801B8DC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801B8DC: .4byte 0x0801B8E0 +_0801B8E0: @ jump table + .4byte _0801B8F8 @ case 0 + .4byte _0801B90A @ case 1 + .4byte _0801B916 @ case 2 + .4byte _0801B95E @ case 3 + .4byte _0801B990 @ case 4 + .4byte _0801B99A @ case 5 +_0801B8F8: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + b _0801B9D6 +_0801B90A: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801B9D6 + b _0801B9E2 +_0801B916: + movs r5, #0x1e + str r5, [sp] + movs r4, #0x14 + str r4, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + str r5, [sp] + str r4, [sp, #4] + movs r0, #1 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + str r5, [sp] + str r4, [sp, #4] + movs r0, #2 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, #0 + bl CopyBgTilemapBufferToVram + movs r0, #1 + bl CopyBgTilemapBufferToVram + movs r0, #2 + bl CopyBgTilemapBufferToVram + b _0801B9D6 +_0801B95E: + movs r0, #1 + bl HideBg + movs r0, #2 + bl HideBg + ldr r4, _0801B98C + ldr r0, [r4] + adds r0, #0xd2 + ldrb r0, [r0] + bl RemoveWindow + ldr r0, [r4] + adds r0, #0xd0 + ldrb r0, [r0] + bl RemoveWindow + ldr r0, [r4] + adds r0, #0xce + ldrb r0, [r0] + bl RemoveWindow + b _0801B9D6 + .align 2, 0 +_0801B98C: .4byte 0x02022928 +_0801B990: + bl sub_0801C17C + bl FreeMonIconPalettes + b _0801B9D6 +_0801B99A: + ldr r0, _0801B9BC + ldrb r0, [r0] + bl PrintMysteryGiftOrEReaderTopMenu + movs r0, #0 + bl CopyBgTilemapBufferToVram + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + b _0801B9D6 + .align 2, 0 +_0801B9BC: .4byte 0x02022914 +_0801B9C0: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0801B9E2 + ldr r0, [r4] + adds r0, #0xcc + strb r1, [r0] + movs r0, #1 + b _0801B9E4 +_0801B9D6: + ldr r0, _0801B9EC + ldr r1, [r0] + adds r1, #0xcc + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0801B9E2: + movs r0, #0 +_0801B9E4: + add sp, #8 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0801B9EC: .4byte 0x02022928 + thumb_func_end FadeOutFromWonderCard + + thumb_func_start sub_0801B9F0 +sub_0801B9F0: @ 0x0801B9F0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + movs r5, #0 + mov r0, sp + movs r1, #0 + movs r2, #6 + bl memset + ldr r4, _0801BAC4 + ldr r1, [r4] + adds r0, r1, #0 + adds r0, #0xe3 + adds r1, #0xa + movs r2, #0x12 + bl memcpy + ldr r0, [r4] + adds r0, #0xf5 + movs r1, #0xff + strb r1, [r0] + ldr r1, [r4] + adds r0, r1, #0 + adds r0, #0xf6 + adds r1, #0x1c + movs r2, #0xd + bl memcpy + ldr r0, [r4] + ldr r2, _0801BAC8 + adds r1, r0, r2 + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1] + ldr r1, [r4] + ldr r0, [r1, #4] + ldr r2, _0801BACC + cmp r0, r2 + bls _0801BA42 + str r2, [r1, #4] +_0801BA42: + ldr r1, [r4] + movs r3, #0x82 + lsls r3, r3, #1 + adds r0, r1, r3 + ldr r1, [r1, #4] + movs r2, #0 + movs r3, #6 + bl ConvertIntToDecimalStringN + adds r6, r4, #0 +_0801BA56: + ldr r2, [r6] + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #2 + adds r4, r1, r5 + adds r0, r4, r2 + ldr r3, _0801BAD0 + adds r0, r0, r3 + adds r1, r1, r2 + adds r1, #0x29 + movs r2, #0x14 + bl memcpy + ldr r1, [r6] + ldr r0, _0801BAD4 + adds r1, r1, r0 + adds r1, r1, r4 + movs r2, #1 + rsbs r2, r2, #0 + adds r7, r2, #0 + movs r0, #0xff + strb r0, [r1] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #3 + bls _0801BA56 + ldr r6, _0801BAC4 + ldr r1, [r6] + ldr r3, _0801BAD8 + adds r0, r1, r3 + adds r1, #0x79 + movs r2, #0x14 + bl memcpy + ldr r0, [r6] + ldr r2, _0801BADC + adds r1, r0, r2 + movs r3, #1 + rsbs r3, r3, #0 + adds r4, r3, #0 + movs r0, #0xff + strb r0, [r1] + ldr r1, [r6] + ldrb r0, [r1, #8] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + beq _0801BAFE + cmp r0, #1 + bgt _0801BAE0 + cmp r0, #0 + beq _0801BAE6 + b _0801BC96 + .align 2, 0 +_0801BAC4: .4byte 0x02022928 +_0801BAC8: .4byte 0x00000103 +_0801BACC: .4byte 0x000F423F +_0801BAD0: .4byte 0x0000010B +_0801BAD4: .4byte 0x0000011F +_0801BAD8: .4byte 0x0000015F +_0801BADC: .4byte 0x00000173 +_0801BAE0: + cmp r0, #2 + beq _0801BB0C + b _0801BC96 +_0801BAE6: + movs r2, #0xba + lsls r2, r2, #1 + adds r0, r1, r2 + adds r1, #0x8d + movs r2, #0x14 + bl memcpy + ldr r1, [r6] + movs r3, #0xc4 + lsls r3, r3, #1 + adds r1, r1, r3 + b _0801BB04 +_0801BAFE: + movs r6, #0xba + lsls r6, r6, #1 + adds r1, r1, r6 +_0801BB04: + ldrb r0, [r1] + orrs r0, r4 + strb r0, [r1] + b _0801BC96 +_0801BB0C: + movs r2, #0xba + lsls r2, r2, #1 + adds r0, r1, r2 + ldrb r1, [r0] + orrs r1, r7 + strb r1, [r0] + mov r3, sp + ldr r1, [r6] + adds r0, r1, #0 + adds r0, #0xa4 + ldrh r0, [r0] + ldr r2, _0801BBB8 + cmp r0, r2 + bls _0801BB2A + adds r0, r2, #0 +_0801BB2A: + strh r0, [r3] + mov r3, sp + adds r0, r1, #0 + adds r0, #0xa6 + ldrh r0, [r0] + cmp r0, r2 + bls _0801BB3A + adds r0, r2, #0 +_0801BB3A: + strh r0, [r3, #2] + mov r3, sp + adds r0, r1, #0 + adds r0, #0xa8 + ldrh r0, [r0] + cmp r0, r2 + bls _0801BB4A + adds r0, r2, #0 +_0801BB4A: + strh r0, [r3, #4] + movs r5, #0 +_0801BB4E: + lsls r4, r5, #3 + subs r4, r4, r5 + lsls r4, r4, #2 + movs r3, #0xc6 + lsls r3, r3, #1 + adds r4, r4, r3 + ldr r0, [r6] + adds r0, r0, r4 + adds r0, #0x16 + movs r1, #0xff + movs r2, #4 + bl memset + ldr r0, [r6] + adds r0, r0, r4 + adds r0, #1 + movs r1, #0xff + movs r2, #0x15 + bl memset + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #7 + bls _0801BB4E + movs r5, #0 + movs r4, #0 + ldr r7, _0801BBBC + movs r6, #0xc6 + lsls r6, r6, #1 + mov r8, r6 +_0801BB8C: + ldr r2, [r7] + adds r1, r2, #0 + adds r1, #0x8d + adds r0, r1, r5 + ldrb r3, [r0] + cmp r3, #0xf7 + beq _0801BBC4 + adds r0, r2, #0 + adds r0, #0xcd + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r4, r0 + ldr r6, _0801BBC0 + adds r1, r2, r6 + adds r1, r1, r0 + strb r3, [r1] + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + b _0801BC8A + .align 2, 0 +_0801BBB8: .4byte 0x000003E7 +_0801BBBC: .4byte 0x02022928 +_0801BBC0: .4byte 0x0000018D +_0801BBC4: + adds r0, r5, #1 + adds r0, r1, r0 + ldrb r3, [r0] + cmp r3, #2 + bls _0801BBD4 + adds r0, r5, #2 + lsls r0, r0, #0x10 + b _0801BC88 +_0801BBD4: + adds r0, r2, #0 + adds r0, #0xcd + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + adds r0, r2, r0 + adds r0, #0x16 + lsls r1, r3, #1 + add r1, sp + ldrh r1, [r1] + movs r2, #2 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r1, [r7] + adds r0, r1, #0 + adds r0, #0xcd + ldrb r2, [r0] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r1, r0 + adds r6, r5, #2 + adds r1, #0x8d + adds r1, r1, r6 + ldrb r1, [r1] + add r0, r8 + strb r1, [r0] + ldr r2, [r7] + adds r0, r2, #0 + adds r0, #0xcd + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r2, r2, r0 + add r2, r8 + ldrb r5, [r2] + movs r0, #3 + movs r1, #2 + bl GetFontAttribute + adds r4, r0, #0 + movs r0, #3 + movs r1, #0 + bl GetFontAttribute + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r4, r4, r0 + cmp r5, r4 + ble _0801BC70 + movs r0, #3 + movs r1, #2 + bl GetFontAttribute + adds r4, r0, #0 + movs r0, #3 + movs r1, #0 + bl GetFontAttribute + ldr r3, [r7] + adds r1, r3, #0 + adds r1, #0xcd + ldrb r2, [r1] + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r3, r3, r1 + adds r4, r4, r0 + movs r0, #0xc6 + lsls r0, r0, #1 + adds r3, r3, r0 + strb r4, [r3] +_0801BC70: + ldr r1, [r7] + adds r1, #0xcd + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r0, [r7] + adds r0, #0xcd + ldrb r0, [r0] + cmp r0, #7 + bhi _0801BC96 + movs r4, #0 + lsls r0, r6, #0x10 +_0801BC88: + lsrs r5, r0, #0x10 +_0801BC8A: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0x13 + bhi _0801BC96 + b _0801BB8C +_0801BC96: + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0801B9F0 + + thumb_func_start sub_0801BCA4 +sub_0801BCA4: @ 0x0801BCA4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r5, r4, #0 + movs r0, #0 + str r0, [sp, #0xc] + ldr r1, _0801BCF0 + mov sl, r1 + ldr r0, [r1] + lsls r1, r4, #1 + adds r0, #0xce + adds r0, r0, r1 + ldrh r0, [r0] + lsls r7, r0, #0x18 + lsrs r3, r7, #0x18 + mov sb, r3 + mov r0, sb + bl PutWindowTilemap + mov r0, sb + movs r1, #0 + bl FillWindowPixelBuffer + cmp r4, #1 + bne _0801BCE2 + b _0801BE20 +_0801BCE2: + cmp r4, #1 + bgt _0801BCF4 + cmp r4, #0 + beq _0801BCFE + mov r8, r7 + b _0801C02A + .align 2, 0 +_0801BCF0: .4byte 0x02022928 +_0801BCF4: + cmp r5, #2 + bne _0801BCFA + b _0801BE84 +_0801BCFA: + mov r8, r7 + b _0801C02A +_0801BCFE: + mov r0, sl + ldr r2, [r0] + adds r0, r2, #0 + adds r0, #0xc8 + ldr r0, [r0] + ldrb r0, [r0] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + lsls r1, r0, #1 + adds r1, r1, r0 + ldr r3, _0801BE1C + adds r1, r1, r3 + str r1, [sp] + ldr r0, [sp, #0xc] + str r0, [sp, #4] + adds r2, #0xe3 + str r2, [sp, #8] + mov r0, sb + movs r1, #3 + movs r2, #0 + movs r3, #1 + bl AddTextPrinterParameterized3 + movs r0, #3 + movs r1, #2 + bl GetFontAttribute + adds r5, r0, #0 + movs r0, #3 + movs r1, #0 + bl GetFontAttribute + adds r6, r0, #0 + mov r1, sl + ldr r0, [r1] + adds r0, #0xf6 + bl StringLength + mov r8, r0 + movs r0, #3 + movs r1, #2 + bl GetFontAttribute + adds r4, r0, #0 + movs r0, #3 + movs r1, #0 + bl GetFontAttribute + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + adds r5, r5, r6 + movs r6, #0xd + adds r2, r5, #0 + muls r2, r6, r2 + mov r3, r8 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + mov r8, r3 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r4, r4, r0 + mov r0, r8 + muls r0, r4, r0 + subs r2, r2, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r0, sl + ldr r3, [r0] + adds r0, r3, #0 + adds r0, #0xc8 + ldr r0, [r0] + ldrb r1, [r0] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + lsls r0, r1, #1 + adds r0, r0, r1 + ldr r1, _0801BE1C + adds r0, r0, r1 + str r0, [sp] + ldr r0, [sp, #0xc] + str r0, [sp, #4] + adds r3, #0xf6 + str r3, [sp, #8] + mov r0, sb + movs r1, #3 + movs r3, #0x11 + bl AddTextPrinterParameterized3 + mov r1, sl + ldr r0, [r1] + ldr r0, [r0, #4] + mov r8, r7 + cmp r0, #0 + bne _0801BDC4 + b _0801C02A +_0801BDC4: + movs r0, #3 + movs r1, #2 + bl GetFontAttribute + adds r4, r0, #0 + movs r0, #3 + movs r1, #0 + bl GetFontAttribute + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r4, r4, r0 + adds r2, r4, #0 + muls r2, r6, r2 + adds r2, #6 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r0, sl + ldr r3, [r0] + adds r0, r3, #0 + adds r0, #0xc8 + ldr r0, [r0] + ldrb r1, [r0] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + lsls r0, r1, #1 + adds r0, r0, r1 + ldr r1, _0801BE1C + adds r0, r0, r1 + str r0, [sp] + ldr r0, [sp, #0xc] + str r0, [sp, #4] + movs r1, #0x82 + lsls r1, r1, #1 + adds r0, r3, r1 + str r0, [sp, #8] + mov r0, sb + movs r1, #0 + movs r3, #0x11 + bl AddTextPrinterParameterized3 + b _0801C02A + .align 2, 0 +_0801BE1C: .4byte 0x082C333C +_0801BE20: + mov r8, r7 +_0801BE22: + ldr r3, [sp, #0xc] + lsls r4, r3, #0x18 + asrs r4, r4, #0x18 + lsls r3, r4, #4 + adds r3, #2 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r0, _0801BE78 + ldr r2, [r0] + adds r0, r2, #0 + adds r0, #0xc8 + ldr r0, [r0] + ldrb r0, [r0] + lsrs r0, r0, #4 + lsls r1, r0, #1 + adds r1, r1, r0 + ldr r0, _0801BE7C + adds r1, r1, r0 + str r1, [sp] + movs r0, #0 + str r0, [sp, #4] + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _0801BE80 + adds r0, r0, r1 + adds r2, r2, r0 + str r2, [sp, #8] + mov r1, r8 + lsrs r0, r1, #0x18 + movs r1, #3 + movs r2, #2 + bl AddTextPrinterParameterized3 + adds r4, #1 + lsls r4, r4, #0x18 + lsrs r3, r4, #0x18 + str r3, [sp, #0xc] + asrs r4, r4, #0x18 + cmp r4, #3 + ble _0801BE22 + b _0801C02A + .align 2, 0 +_0801BE78: .4byte 0x02022928 +_0801BE7C: .4byte 0x082C333C +_0801BE80: .4byte 0x0000010B +_0801BE84: + ldr r4, _0801BF08 + mov r0, sl + ldr r2, [r0] + ldrb r0, [r2, #8] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + adds r0, r0, r4 + ldrb r3, [r0] + adds r0, r2, #0 + adds r0, #0xc8 + ldr r0, [r0] + ldrb r0, [r0, #1] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + lsls r1, r0, #1 + adds r1, r1, r0 + ldr r5, _0801BF0C + adds r1, r1, r5 + str r1, [sp] + ldr r1, [sp, #0xc] + str r1, [sp, #4] + ldr r1, _0801BF10 + adds r0, r2, r1 + str r0, [sp, #8] + mov r0, sb + movs r1, #3 + movs r2, #2 + bl AddTextPrinterParameterized3 + mov r3, sl + ldr r2, [r3] + ldrb r1, [r2, #8] + movs r0, #3 + ands r0, r1 + cmp r0, #2 + beq _0801BF14 + lsls r0, r1, #0x1e + lsrs r0, r0, #0x1e + adds r0, r0, r4 + ldrb r3, [r0] + adds r3, #0x10 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r2, #0 + adds r0, #0xc8 + ldr r0, [r0] + ldrb r1, [r0, #1] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + lsls r0, r1, #1 + adds r0, r0, r1 + adds r0, r0, r5 + str r0, [sp] + ldr r0, [sp, #0xc] + str r0, [sp, #4] + movs r1, #0xba + lsls r1, r1, #1 + adds r0, r2, r1 + str r0, [sp, #8] + mov r0, sb + movs r1, #3 + movs r2, #2 + bl AddTextPrinterParameterized3 + mov r8, r7 + b _0801C02A + .align 2, 0 +_0801BF08: .4byte 0x082C3344 +_0801BF0C: .4byte 0x082C333C +_0801BF10: .4byte 0x0000015F +_0801BF14: + movs r3, #0xde + mov sb, r3 + adds r0, r2, #0 + adds r0, #0xcd + ldrb r0, [r0] + lsls r0, r0, #0x18 + mov r8, r7 + cmp r0, #0 + bge _0801BF28 + b _0801C02A +_0801BF28: + mov r1, sl + ldr r4, [r1] + asrs r7, r0, #0x18 + lsls r0, r7, #3 + subs r0, r0, r7 + lsls r6, r0, #2 + adds r2, r4, r6 + movs r3, #0xd1 + lsls r3, r3, #1 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r0, #0xff + beq _0801BF9A + mov r1, sb + subs r1, #0x18 + subs r3, #0x16 + adds r0, r2, r3 + ldrb r0, [r0] + subs r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sb, r1 + lsls r2, r1, #0x18 + lsrs r2, r2, #0x18 + ldrb r0, [r4, #8] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + ldr r1, _0801C044 + adds r0, r0, r1 + ldrb r3, [r0] + adds r3, #0x10 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r4, #0 + adds r0, #0xc8 + ldr r0, [r0] + ldrb r0, [r0, #1] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + lsls r1, r0, #1 + adds r1, r1, r0 + ldr r0, _0801C048 + adds r1, r1, r0 + str r1, [sp] + movs r0, #0 + str r0, [sp, #4] + movs r1, #0xc6 + lsls r1, r1, #1 + adds r0, r6, r1 + adds r0, r4, r0 + adds r0, #0x16 + str r0, [sp, #8] + mov r1, r8 + lsrs r0, r1, #0x18 + movs r1, #0 + bl AddTextPrinterParameterized3 +_0801BF9A: + movs r3, #0xc6 + lsls r3, r3, #1 + adds r6, r6, r3 + mov r1, sl + ldr r0, [r1] + adds r0, r0, r6 + adds r0, #1 + bl StringLength + adds r5, r0, #0 + movs r0, #3 + movs r1, #2 + bl GetFontAttribute + adds r4, r0, #0 + movs r0, #3 + movs r1, #0 + bl GetFontAttribute + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r4, r4, r0 + adds r0, r5, #0 + muls r0, r4, r0 + mov r3, sb + subs r0, r3, r0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + lsls r2, r0, #0x18 + lsrs r2, r2, #0x18 + mov r0, sl + ldr r4, [r0] + ldrb r0, [r4, #8] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + ldr r1, _0801C044 + adds r0, r0, r1 + ldrb r3, [r0] + adds r3, #0x10 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r4, #0 + adds r0, #0xc8 + ldr r0, [r0] + ldrb r0, [r0, #1] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + lsls r1, r0, #1 + adds r1, r1, r0 + ldr r0, _0801C048 + adds r1, r1, r0 + str r1, [sp] + movs r0, #0 + str r0, [sp, #4] + adds r4, r4, r6 + adds r4, #1 + str r4, [sp, #8] + mov r1, r8 + lsrs r0, r1, #0x18 + movs r1, #3 + bl AddTextPrinterParameterized3 + subs r0, r7, #1 + lsls r0, r0, #0x18 + cmp r0, #0 + blt _0801C02A + b _0801BF28 +_0801C02A: + mov r3, r8 + lsrs r0, r3, #0x18 + movs r1, #3 + bl CopyWindowToVram + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0801C044: .4byte 0x082C3344 +_0801C048: .4byte 0x082C333C + thumb_func_end sub_0801BCA4 + + thumb_func_start sub_0801C04C +sub_0801C04C: @ 0x0801C04C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #8 + movs r7, #0 + ldr r4, _0801C164 + ldr r0, [r4] + adds r0, #0xd4 + movs r1, #0xff + strb r1, [r0] + ldr r0, [r4] + adds r1, r0, #0 + adds r1, #0xaa + ldrh r0, [r1] + cmp r0, #0 + beq _0801C0A8 + bl sub_080D2724 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _0801C168 + str r7, [sp] + str r7, [sp, #4] + movs r2, #0xdc + movs r3, #0x14 + bl sub_080D2618 + ldr r1, [r4] + adds r1, #0xd4 + strb r0, [r1] + ldr r2, _0801C16C + ldr r0, [r4] + adds r0, #0xd4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r2, [r0, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #8 + orrs r1, r2 + strb r1, [r0, #5] +_0801C0A8: + ldr r1, [r4] + ldrb r0, [r1, #9] + cmp r0, #0 + beq _0801C156 + ldrb r1, [r1, #8] + movs r0, #3 + ands r0, r1 + cmp r0, #1 + bne _0801C156 + ldr r0, _0801C170 + bl LoadCompressedSpriteSheetUsingHeap + ldr r0, [r4] + adds r0, #0xc8 + ldr r0, [r0] + ldrb r0, [r0, #1] + lsrs r0, r0, #4 + lsls r0, r0, #3 + ldr r1, _0801C174 + adds r0, r0, r1 + bl LoadSpritePalette + ldr r0, [r4] + ldrb r0, [r0, #9] + cmp r7, r0 + bhs _0801C156 + adds r6, r4, #0 + movs r0, #0xff + mov sb, r0 + movs r1, #0 + mov r8, r1 +_0801C0E6: + ldr r1, [r6] + lsls r4, r7, #1 + adds r1, #0xd5 + adds r1, r1, r4 + ldrb r0, [r1] + mov r2, sb + orrs r0, r2 + strb r0, [r1] + ldr r1, [r6] + adds r1, #0xd6 + adds r1, r1, r4 + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] + lsls r1, r7, #5 + movs r0, #0xd8 + subs r5, r0, r1 + ldr r0, _0801C178 + adds r1, r5, #0 + movs r2, #0x90 + movs r3, #8 + bl CreateSprite + ldr r1, [r6] + adds r1, #0xd5 + adds r1, r1, r4 + strb r0, [r1] + ldr r0, [r6] + adds r0, #0xac + adds r1, r0, r4 + ldrh r0, [r1] + cmp r0, #0 + beq _0801C148 + bl sub_080D2724 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r1, r8 + str r1, [sp] + str r1, [sp, #4] + ldr r1, _0801C168 + adds r2, r5, #0 + movs r3, #0x88 + bl sub_080D2618 + ldr r1, [r6] + adds r1, #0xd6 + adds r1, r1, r4 + strb r0, [r1] +_0801C148: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, [r6] + ldrb r0, [r0, #9] + cmp r7, r0 + blo _0801C0E6 +_0801C156: + add sp, #8 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0801C164: .4byte 0x02022928 +_0801C168: .4byte 0x08007141 +_0801C16C: .4byte 0x020205AC +_0801C170: .4byte 0x082C422C +_0801C174: .4byte 0x082C4234 +_0801C178: .4byte 0x082C4274 + thumb_func_end sub_0801C04C + + thumb_func_start sub_0801C17C +sub_0801C17C: @ 0x0801C17C + push {r4, r5, r6, r7, lr} + movs r6, #0 + ldr r4, _0801C21C + ldr r0, [r4] + adds r1, r0, #0 + adds r1, #0xd4 + ldrb r0, [r1] + cmp r0, #0xff + beq _0801C19E + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0801C220 + adds r0, r0, r1 + bl sub_080D2798 +_0801C19E: + ldr r0, [r4] + ldrb r2, [r0, #9] + cmp r2, #0 + beq _0801C214 + ldrb r1, [r0, #8] + movs r0, #3 + ands r0, r1 + cmp r0, #1 + bne _0801C214 + cmp r6, r2 + bhs _0801C204 + adds r7, r4, #0 +_0801C1B6: + ldr r0, [r7] + lsls r4, r6, #1 + adds r0, #0xd5 + adds r1, r0, r4 + ldrb r0, [r1] + cmp r0, #0xff + beq _0801C1F6 + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r5, _0801C220 + adds r0, r0, r5 + bl DestroySprite + ldr r1, [r7] + adds r0, r1, #0 + adds r0, #0xd5 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0xff + beq _0801C1F6 + adds r0, r1, #0 + adds r0, #0xd6 + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + bl sub_080D2798 +_0801C1F6: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, [r7] + ldrb r0, [r0, #9] + cmp r6, r0 + blo _0801C1B6 +_0801C204: + movs r4, #0x80 + lsls r4, r4, #8 + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl FreeSpritePaletteByTag +_0801C214: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0801C21C: .4byte 0x02022928 +_0801C220: .4byte 0x020205AC + thumb_func_end sub_0801C17C + + thumb_func_start InitWonderNewsResources +InitWonderNewsResources: @ 0x0801C224 + push {r4, r5, lr} + adds r4, r0, #0 + cmp r4, #0 + beq _0801C23A + ldr r5, _0801C240 + ldr r0, _0801C244 + bl AllocZeroed + str r0, [r5] + cmp r0, #0 + bne _0801C248 +_0801C23A: + movs r0, #0 + b _0801C274 + .align 2, 0 +_0801C240: .4byte 0x0202292C +_0801C244: .4byte 0x000011EC +_0801C248: + adds r1, r4, #0 + movs r2, #0xe0 + bl memcpy + ldr r1, [r5] + ldrb r0, [r1, #3] + cmp r0, #7 + bls _0801C25C + movs r0, #0 + strb r0, [r1, #3] +_0801C25C: + ldr r2, [r5] + adds r3, r2, #0 + adds r3, #0xe0 + ldrb r0, [r2, #3] + lsls r0, r0, #4 + ldr r1, _0801C27C + adds r0, r0, r1 + str r0, [r3] + adds r2, #0xe5 + movs r0, #0xff + strb r0, [r2] + movs r0, #1 +_0801C274: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0801C27C: .4byte 0x082C49F4 + thumb_func_end InitWonderNewsResources + + thumb_func_start DestroyWonderNewsResources +DestroyWonderNewsResources: @ 0x0801C280 + push {r4, lr} + ldr r4, _0801C2A4 + ldr r0, [r4] + cmp r0, #0 + beq _0801C29C + ldr r2, _0801C2A8 + movs r1, #0 + bl memset + ldr r0, [r4] + bl Free + movs r0, #0 + str r0, [r4] +_0801C29C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801C2A4: .4byte 0x0202292C +_0801C2A8: .4byte 0x000011EC + thumb_func_end DestroyWonderNewsResources + + thumb_func_start FadeToWonderNewsMenu +FadeToWonderNewsMenu: @ 0x0801C2AC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x24 + ldr r4, _0801C2C8 + ldr r0, [r4] + cmp r0, #0 + bne _0801C2CC + movs r0, #1 + rsbs r0, r0, #0 + b _0801C572 + .align 2, 0 +_0801C2C8: .4byte 0x0202292C +_0801C2CC: + adds r0, #0xe4 + ldrb r0, [r0] + lsrs r0, r0, #1 + cmp r0, #6 + bls _0801C2D8 + b _0801C540 +_0801C2D8: + lsls r0, r0, #2 + ldr r1, _0801C2E4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801C2E4: .4byte 0x0801C2E8 +_0801C2E8: @ jump table + .4byte _0801C304 @ case 0 + .4byte _0801C316 @ case 1 + .4byte _0801C37C @ case 2 + .4byte _0801C418 @ case 3 + .4byte _0801C4D4 @ case 4 + .4byte _0801C4DA @ case 5 + .4byte _0801C4EC @ case 6 +_0801C304: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + b _0801C55A +_0801C316: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801C322 + b _0801C570 +_0801C322: + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #0x40 + movs r1, #0xf0 + bl SetGpuReg + ldr r1, _0801C378 + movs r0, #0x44 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0x1f + bl SetGpuReg + movs r0, #0x4a + movs r1, #0x1b + bl SetGpuReg + movs r1, #0x80 + lsls r1, r1, #6 + movs r0, #0 + bl SetGpuRegBits + b _0801C55A + .align 2, 0 +_0801C378: .4byte 0x00001C98 +_0801C37C: + movs r5, #0x1e + str r5, [sp] + movs r4, #0x14 + str r4, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + str r5, [sp] + str r4, [sp, #4] + movs r0, #1 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + str r5, [sp] + str r4, [sp, #4] + movs r0, #2 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + str r5, [sp] + str r4, [sp, #4] + movs r0, #3 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, #0 + bl CopyBgTilemapBufferToVram + movs r0, #1 + bl CopyBgTilemapBufferToVram + movs r0, #2 + bl CopyBgTilemapBufferToVram + movs r0, #3 + bl CopyBgTilemapBufferToVram + ldr r5, _0801C410 + ldr r0, [r5] + adds r0, #0xe0 + ldr r0, [r0] + ldr r1, [r0, #4] + movs r0, #0 + str r0, [sp] + movs r0, #3 + movs r2, #0 + movs r3, #8 + bl decompress_and_copy_tile_data_to_vram + ldr r4, _0801C414 + adds r0, r4, #0 + bl AddWindow + ldr r1, [r5] + adds r1, #0xec + strh r0, [r1] + adds r4, #8 + adds r0, r4, #0 + bl AddWindow + ldr r1, [r5] + adds r1, #0xee + strh r0, [r1] + b _0801C55A + .align 2, 0 +_0801C410: .4byte 0x0202292C +_0801C414: .4byte 0x082C4314 +_0801C418: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #0 + beq _0801C426 + b _0801C570 +_0801C426: + movs r0, #1 + bl stdpal_get + movs r1, #0x20 + movs r2, #0x20 + bl LoadPalette + ldr r2, _0801C4CC + ldrb r0, [r2, #8] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #8] + ldr r0, _0801C4D0 + mov r8, r0 + ldr r0, [r0] + adds r0, #0xe0 + ldr r0, [r0] + ldr r0, [r0, #0xc] + movs r1, #0x10 + movs r2, #0x20 + bl LoadPalette + mov r2, r8 + ldr r1, [r2] + adds r0, r1, #0 + adds r0, #0xe0 + ldr r0, [r0] + ldr r0, [r0, #8] + movs r6, #0xf6 + lsls r6, r6, #1 + adds r1, r1, r6 + bl LZ77UnCompWram + mov r0, r8 + ldr r1, [r0] + adds r1, r1, r6 + movs r4, #0x1e + str r4, [sp] + movs r5, #3 + str r5, [sp, #4] + str r7, [sp, #8] + str r7, [sp, #0xc] + str r4, [sp, #0x10] + str r5, [sp, #0x14] + movs r2, #1 + mov sl, r2 + str r2, [sp, #0x18] + movs r0, #8 + mov sb, r0 + str r0, [sp, #0x1c] + str r7, [sp, #0x20] + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl CopyRectToBgTilemapBufferRect + mov r2, r8 + ldr r1, [r2] + adds r1, r1, r6 + str r4, [sp] + movs r0, #0x17 + str r0, [sp, #4] + str r7, [sp, #8] + str r5, [sp, #0xc] + str r4, [sp, #0x10] + str r0, [sp, #0x14] + mov r0, sl + str r0, [sp, #0x18] + mov r2, sb + str r2, [sp, #0x1c] + str r7, [sp, #0x20] + movs r0, #3 + movs r2, #0 + movs r3, #3 + bl CopyRectToBgTilemapBufferRect + movs r0, #1 + bl CopyBgTilemapBufferToVram + movs r0, #3 + bl CopyBgTilemapBufferToVram + b _0801C55A + .align 2, 0 +_0801C4CC: .4byte 0x02037C74 +_0801C4D0: .4byte 0x0202292C +_0801C4D4: + bl sub_0801C8B4 + b _0801C55A +_0801C4DA: + bl sub_0801C95C + movs r0, #0 + bl CopyBgTilemapBufferToVram + movs r0, #2 + bl CopyBgTilemapBufferToVram + b _0801C55A +_0801C4EC: + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg + ldr r2, _0801C538 + ldrb r1, [r2, #8] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #8] + ldr r4, _0801C53C + ldr r1, [r4] + movs r2, #0xee + lsls r2, r2, #1 + adds r0, r1, r2 + adds r1, #0xea + bl AddScrollIndicatorArrowPair + ldr r1, [r4] + adds r1, #0xe5 + movs r2, #0 + strb r0, [r1] + movs r0, #1 + rsbs r0, r0, #0 + str r2, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + bl UpdatePaletteFade + b _0801C55A + .align 2, 0 +_0801C538: .4byte 0x02037C74 +_0801C53C: .4byte 0x0202292C +_0801C540: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801C570 + ldr r0, [r4] + adds r0, #0xe4 + ldrb r2, [r0] + movs r1, #1 + ands r1, r2 + strb r1, [r0] + movs r0, #1 + b _0801C572 +_0801C55A: + ldr r0, _0801C584 + ldr r2, [r0] + adds r2, #0xe4 + ldrb r3, [r2] + lsrs r1, r3, #1 + adds r1, #1 + lsls r1, r1, #1 + movs r0, #1 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] +_0801C570: + movs r0, #0 +_0801C572: + add sp, #0x24 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0801C584: .4byte 0x0202292C + thumb_func_end FadeToWonderNewsMenu + + thumb_func_start FadeOutFromWonderNews +FadeOutFromWonderNews: @ 0x0801C588 + push {r4, r5, lr} + sub sp, #8 + ldr r4, _0801C59C + ldr r0, [r4] + cmp r0, #0 + bne _0801C5A0 + movs r0, #1 + rsbs r0, r0, #0 + b _0801C746 + .align 2, 0 +_0801C59C: .4byte 0x0202292C +_0801C5A0: + adds r0, #0xe4 + ldrb r0, [r0] + lsrs r0, r0, #1 + cmp r0, #5 + bls _0801C5AC + b _0801C714 +_0801C5AC: + lsls r0, r0, #2 + ldr r1, _0801C5B8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801C5B8: .4byte 0x0801C5BC +_0801C5BC: @ jump table + .4byte _0801C5D4 @ case 0 + .4byte _0801C5E6 @ case 1 + .4byte _0801C628 @ case 2 + .4byte _0801C688 @ case 3 + .4byte _0801C6B0 @ case 4 + .4byte _0801C6E4 @ case 5 +_0801C5D4: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + b _0801C72E +_0801C5E6: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801C5F2 + b _0801C744 +_0801C5F2: + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #0x40 + movs r1, #0 + bl SetGpuReg + movs r0, #0x44 + movs r1, #0 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0 + bl SetGpuReg + movs r0, #0x4a + movs r1, #0 + bl SetGpuReg + movs r1, #0x80 + lsls r1, r1, #6 + movs r0, #0 + bl ClearGpuRegBits + b _0801C72E +_0801C628: + movs r4, #0x1e + str r4, [sp] + movs r5, #0x14 + str r5, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + str r4, [sp] + str r5, [sp, #4] + movs r0, #1 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + str r4, [sp] + movs r5, #0x18 + str r5, [sp, #4] + movs r0, #2 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + str r4, [sp] + str r5, [sp, #4] + movs r0, #3 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, #0 + bl CopyBgTilemapBufferToVram + movs r0, #1 + bl CopyBgTilemapBufferToVram + movs r0, #2 + bl CopyBgTilemapBufferToVram + movs r0, #3 + bl CopyBgTilemapBufferToVram + b _0801C72E +_0801C688: + movs r0, #1 + bl HideBg + movs r0, #2 + bl HideBg + ldr r4, _0801C6AC + ldr r0, [r4] + adds r0, #0xee + ldrb r0, [r0] + bl RemoveWindow + ldr r0, [r4] + adds r0, #0xec + ldrb r0, [r0] + bl RemoveWindow + b _0801C72E + .align 2, 0 +_0801C6AC: .4byte 0x0202292C +_0801C6B0: + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + ldr r4, _0801C6E0 + ldr r0, [r4] + adds r1, r0, #0 + adds r1, #0xe5 + ldrb r0, [r1] + cmp r0, #0xff + beq _0801C72E + bl RemoveScrollIndicatorArrowPair + ldr r0, [r4] + adds r0, #0xe5 + movs r1, #0xff + strb r1, [r0] + b _0801C72E + .align 2, 0 +_0801C6E0: .4byte 0x0202292C +_0801C6E4: + ldr r0, _0801C710 + ldrb r0, [r0] + bl PrintMysteryGiftOrEReaderTopMenu + movs r0, #3 + bl MG_DrawCheckerboardPattern + movs r0, #0 + bl CopyBgTilemapBufferToVram + movs r0, #3 + bl CopyBgTilemapBufferToVram + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + b _0801C72E + .align 2, 0 +_0801C710: .4byte 0x02022914 +_0801C714: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801C744 + ldr r0, [r4] + adds r0, #0xe4 + ldrb r2, [r0] + movs r1, #1 + ands r1, r2 + strb r1, [r0] + movs r0, #1 + b _0801C746 +_0801C72E: + ldr r0, _0801C750 + ldr r2, [r0] + adds r2, #0xe4 + ldrb r3, [r2] + lsrs r1, r3, #1 + adds r1, #1 + lsls r1, r1, #1 + movs r0, #1 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] +_0801C744: + movs r0, #0 +_0801C746: + add sp, #8 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0801C750: .4byte 0x0202292C + thumb_func_end FadeOutFromWonderNews + + thumb_func_start MENews_RemoveScrollIndicatorArrowPair +MENews_RemoveScrollIndicatorArrowPair: @ 0x0801C754 + push {r4, lr} + ldr r4, _0801C790 + ldr r2, [r4] + adds r0, r2, #0 + adds r0, #0xe4 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0801C78A + adds r1, r2, #0 + adds r1, #0xe5 + ldrb r0, [r1] + cmp r0, #0xff + beq _0801C78A + bl RemoveScrollIndicatorArrowPair + ldr r0, [r4] + adds r0, #0xe5 + movs r1, #0xff + strb r1, [r0] + ldr r1, [r4] + adds r1, #0xe4 + ldrb r0, [r1] + movs r2, #1 + orrs r0, r2 + strb r0, [r1] +_0801C78A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801C790: .4byte 0x0202292C + thumb_func_end MENews_RemoveScrollIndicatorArrowPair + + thumb_func_start MENews_AddScrollIndicatorArrowPair +MENews_AddScrollIndicatorArrowPair: @ 0x0801C794 + push {r4, lr} + ldr r4, _0801C7D0 + ldr r2, [r4] + adds r0, r2, #0 + adds r0, #0xe4 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0801C7CA + movs r1, #0xee + lsls r1, r1, #1 + adds r0, r2, r1 + adds r1, r2, #0 + adds r1, #0xea + bl AddScrollIndicatorArrowPair + ldr r1, [r4] + adds r1, #0xe5 + strb r0, [r1] + ldr r1, [r4] + adds r1, #0xe4 + ldrb r2, [r1] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] +_0801C7CA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801C7D0: .4byte 0x0202292C + thumb_func_end MENews_AddScrollIndicatorArrowPair + + thumb_func_start MENews_GetInput +MENews_GetInput: @ 0x0801C7D4 + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + adds r4, r3, #0 + ldr r2, _0801C7FC + ldr r0, [r2] + mov ip, r0 + adds r0, #0xe6 + ldrb r1, [r0] + movs r5, #1 + adds r0, r5, #0 + ands r0, r1 + adds r6, r2, #0 + cmp r0, #0 + beq _0801C800 + bl sub_0801CA6C +_0801C7F6: + movs r0, #0xff + b _0801C8AE + .align 2, 0 +_0801C7FC: .4byte 0x0202292C +_0801C800: + cmp r3, #2 + beq _0801C81C + cmp r3, #2 + bgt _0801C80E + cmp r3, #1 + beq _0801C818 + b _0801C7F6 +_0801C80E: + cmp r4, #0x40 + beq _0801C820 + cmp r4, #0x80 + beq _0801C848 + b _0801C7F6 +_0801C818: + movs r0, #0 + b _0801C8AE +_0801C81C: + movs r0, #1 + b _0801C8AE +_0801C820: + mov r0, ip + adds r0, #0xea + ldrh r0, [r0] + cmp r0, #0 + beq _0801C7F6 + mov r0, ip + adds r0, #0xe4 + ldrb r1, [r0] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + bne _0801C7F6 + mov r2, ip + adds r2, #0xe7 + ldrb r1, [r2] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + b _0801C872 +_0801C848: + mov r0, ip + adds r0, #0xea + mov r1, ip + adds r1, #0xe8 + ldrh r0, [r0] + ldrh r1, [r1] + cmp r0, r1 + beq _0801C7F6 + mov r0, ip + adds r0, #0xe4 + ldrb r1, [r0] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + bne _0801C7F6 + mov r0, ip + adds r0, #0xe7 + ldrb r1, [r0] + movs r2, #1 + orrs r1, r2 + strb r1, [r0] +_0801C872: + ldr r1, [r6] + adds r1, #0xe6 + ldrb r0, [r1] + movs r2, #1 + orrs r0, r2 + strb r0, [r1] + ldr r3, [r6] + adds r3, #0xe6 + ldrb r1, [r3] + movs r2, #1 + adds r0, r2, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r3] + ldr r1, [r6] + adds r1, #0xe7 + ldrb r3, [r1] + adds r0, r2, #0 + ands r0, r3 + strb r0, [r1] + ldr r0, [r6] + adds r0, #0xe7 + ldrb r0, [r0] + ands r2, r0 + cmp r2, #0 + beq _0801C8AC + movs r0, #3 + b _0801C8AE +_0801C8AC: + movs r0, #2 +_0801C8AE: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end MENews_GetInput + + thumb_func_start sub_0801C8B4 +sub_0801C8B4: @ 0x0801C8B4 + push {r4, r5, r6, lr} + movs r5, #0 + ldr r4, _0801C94C + ldr r1, [r4] + adds r0, r1, #0 + adds r0, #0xf2 + adds r1, #4 + movs r2, #0x14 + bl memcpy + ldr r0, [r4] + movs r2, #0x83 + lsls r2, r2, #1 + adds r1, r0, r2 + movs r0, #0xff + strb r0, [r1] + adds r6, r4, #0 +_0801C8D6: + ldr r2, [r6] + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #2 + adds r4, r1, r5 + adds r0, r4, r2 + ldr r3, _0801C950 + adds r0, r0, r3 + adds r1, r1, r2 + adds r1, #0x18 + movs r2, #0x14 + bl memcpy + ldr r0, [r6] + ldr r1, _0801C954 + adds r0, r0, r1 + adds r0, r0, r4 + movs r1, #0xff + strb r1, [r0] + cmp r5, #7 + bls _0801C916 + ldr r1, [r6] + ldr r2, _0801C950 + adds r0, r1, r2 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0xff + beq _0801C916 + adds r1, #0xe8 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_0801C916: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #9 + bls _0801C8D6 + ldr r2, _0801C94C + ldr r1, [r2] + movs r3, #0xee + lsls r3, r3, #1 + adds r1, r1, r3 + ldr r0, _0801C958 + ldm r0!, {r3, r4, r5} + stm r1!, {r3, r4, r5} + ldr r0, [r0] + str r0, [r1] + ldr r2, [r2] + adds r0, r2, #0 + adds r0, #0xe8 + ldrh r1, [r0] + movs r4, #0xf2 + lsls r4, r4, #1 + adds r0, r2, r4 + strh r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0801C94C: .4byte 0x0202292C +_0801C950: .4byte 0x00000107 +_0801C954: .4byte 0x0000011B +_0801C958: .4byte 0x082C4324 + thumb_func_end sub_0801C8B4 + + thumb_func_start sub_0801C95C +sub_0801C95C: @ 0x0801C95C + push {r4, r5, r6, r7, lr} + sub sp, #0xc + movs r7, #0 + ldr r6, _0801CA60 + ldr r0, [r6] + adds r0, #0xec + ldrb r0, [r0] + bl PutWindowTilemap + ldr r0, [r6] + adds r0, #0xee + ldrb r0, [r0] + bl PutWindowTilemap + ldr r0, [r6] + adds r0, #0xec + ldrb r0, [r0] + movs r1, #0 + bl FillWindowPixelBuffer + ldr r0, [r6] + adds r0, #0xee + ldrb r0, [r0] + movs r1, #0 + bl FillWindowPixelBuffer + ldr r0, [r6] + adds r0, #0xf2 + bl StringLength + adds r5, r0, #0 + movs r0, #3 + movs r1, #2 + bl GetFontAttribute + adds r4, r0, #0 + movs r0, #3 + movs r1, #0 + bl GetFontAttribute + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r4, r4, r0 + adds r0, r5, #0 + muls r0, r4, r0 + asrs r0, r0, #1 + movs r2, #0x71 + subs r2, r2, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r4, [r6] + adds r0, r4, #0 + adds r0, #0xec + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0xe0 + ldr r1, [r1] + ldrb r1, [r1] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + lsls r3, r1, #1 + adds r3, r3, r1 + ldr r1, _0801CA64 + adds r3, r3, r1 + str r3, [sp] + str r7, [sp, #4] + adds r4, #0xf2 + str r4, [sp, #8] + movs r1, #3 + movs r3, #6 + bl AddTextPrinterParameterized3 +_0801C9F4: + ldr r5, _0801CA60 + ldr r4, [r5] + adds r0, r4, #0 + adds r0, #0xee + ldrb r0, [r0] + lsls r3, r7, #4 + adds r3, #4 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r1, r4, #0 + adds r1, #0xe0 + ldr r1, [r1] + ldrb r1, [r1] + lsrs r1, r1, #4 + lsls r2, r1, #1 + adds r2, r2, r1 + ldr r1, _0801CA64 + adds r2, r2, r1 + str r2, [sp] + movs r1, #0 + str r1, [sp, #4] + lsls r1, r7, #2 + adds r1, r1, r7 + lsls r1, r1, #2 + adds r1, r1, r7 + ldr r2, _0801CA68 + adds r1, r1, r2 + adds r4, r4, r1 + str r4, [sp, #8] + movs r1, #3 + movs r2, #3 + bl AddTextPrinterParameterized3 + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #9 + bls _0801C9F4 + ldr r0, [r5] + adds r0, #0xec + ldrb r0, [r0] + movs r1, #3 + bl CopyWindowToVram + ldr r0, [r5] + adds r0, #0xee + ldrb r0, [r0] + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0801CA60: .4byte 0x0202292C +_0801CA64: .4byte 0x082C430C +_0801CA68: .4byte 0x00000107 + thumb_func_end sub_0801C95C + + thumb_func_start sub_0801CA6C +sub_0801CA6C: @ 0x0801CA6C + push {r4, r5, lr} + ldr r0, _0801CAA0 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0xe6 + ldrb r0, [r0] + lsrs r4, r0, #1 + lsls r4, r4, #8 + adds r1, #0xe7 + ldrb r1, [r1] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0801CAA4 + movs r0, #2 + adds r1, r4, #0 + movs r2, #1 + bl ChangeBgY + movs r0, #3 + adds r1, r4, #0 + movs r2, #1 + bl ChangeBgY + b _0801CAB8 + .align 2, 0 +_0801CAA0: .4byte 0x0202292C +_0801CAA4: + movs r0, #2 + adds r1, r4, #0 + movs r2, #2 + bl ChangeBgY + movs r0, #3 + adds r1, r4, #0 + movs r2, #2 + bl ChangeBgY +_0801CAB8: + ldr r2, _0801CAF8 + ldr r0, [r2] + adds r4, r0, #0 + adds r4, #0xe7 + ldrb r3, [r4] + lsrs r1, r3, #1 + adds r0, #0xe6 + ldrb r0, [r0] + lsrs r0, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + movs r5, #1 + adds r0, r5, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4] + ldr r1, [r2] + adds r0, r1, #0 + adds r0, #0xe7 + ldrb r3, [r0] + lsrs r0, r3, #1 + adds r4, r2, #0 + cmp r0, #0xf + bls _0801CB1E + adds r0, r5, #0 + ands r0, r3 + cmp r0, #0 + beq _0801CAFC + adds r1, #0xea + ldrh r0, [r1] + adds r0, #1 + b _0801CB02 + .align 2, 0 +_0801CAF8: .4byte 0x0202292C +_0801CAFC: + adds r1, #0xea + ldrh r0, [r1] + subs r0, #1 +_0801CB02: + strh r0, [r1] + ldr r1, [r4] + adds r1, #0xe6 + ldrb r2, [r1] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r4] + adds r1, #0xe7 + ldrb r2, [r1] + movs r0, #1 + ands r0, r2 + strb r0, [r1] +_0801CB1E: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_0801CA6C + diff --git a/asm/mevent_client.s b/asm/mevent_client.s new file mode 100644 index 0000000..4b5c23f --- /dev/null +++ b/asm/mevent_client.s @@ -0,0 +1,584 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start mevent_client_do_init +mevent_client_do_init: @ 0x0801D294 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0801D2B4 + movs r0, #0x50 + bl AllocZeroed + str r0, [r4] + movs r1, #1 + movs r2, #0 + bl mevent_client_init + ldr r0, [r4] + str r5, [r0, #0x4c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0801D2B4: .4byte 0x02022934 + thumb_func_end mevent_client_do_init + + thumb_func_start mevent_client_do_exec +mevent_client_do_exec: @ 0x0801D2B8 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r4, _0801D2C8 + ldr r0, [r4] + cmp r0, #0 + bne _0801D2CC + movs r0, #6 + b _0801D2EC + .align 2, 0 +_0801D2C8: .4byte 0x02022934 +_0801D2CC: + bl mevent_client_exec + adds r5, r0, #0 + cmp r5, #6 + bne _0801D2EA + ldr r0, [r4] + ldr r1, [r0, #4] + strh r1, [r6] + bl mevent_client_free_resources + ldr r0, [r4] + bl Free + movs r0, #0 + str r0, [r4] +_0801D2EA: + adds r0, r5, #0 +_0801D2EC: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end mevent_client_do_exec + + thumb_func_start mevent_client_inc_flag +mevent_client_inc_flag: @ 0x0801D2F4 + ldr r0, _0801D300 + ldr r1, [r0] + ldr r0, [r1, #0xc] + adds r0, #1 + str r0, [r1, #0xc] + bx lr + .align 2, 0 +_0801D300: .4byte 0x02022934 + thumb_func_end mevent_client_inc_flag + + thumb_func_start mevent_client_get_buffer +mevent_client_get_buffer: @ 0x0801D304 + ldr r0, _0801D30C + ldr r0, [r0] + ldr r0, [r0, #0x20] + bx lr + .align 2, 0 +_0801D30C: .4byte 0x02022934 + thumb_func_end mevent_client_get_buffer + + thumb_func_start mevent_client_set_param +mevent_client_set_param: @ 0x0801D310 + ldr r1, _0801D318 + ldr r1, [r1] + str r0, [r1, #4] + bx lr + .align 2, 0 +_0801D318: .4byte 0x02022934 + thumb_func_end mevent_client_set_param + + thumb_func_start mevent_client_init +mevent_client_init: @ 0x0801D31C + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r4, r0, #0 + adds r6, r1, #0 + mov r8, r2 + movs r0, #0 + str r0, [r4] + str r0, [r4, #8] + str r0, [r4, #0xc] + movs r5, #0x80 + lsls r5, r5, #3 + adds r0, r5, #0 + bl AllocZeroed + str r0, [r4, #0x14] + adds r0, r5, #0 + bl AllocZeroed + str r0, [r4, #0x18] + adds r0, r5, #0 + bl AllocZeroed + str r0, [r4, #0x1c] + movs r0, #0x40 + bl AllocZeroed + str r0, [r4, #0x20] + adds r4, #0x24 + adds r0, r4, #0 + adds r1, r6, #0 + mov r2, r8 + bl mevent_srv_sub_init + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end mevent_client_init + + thumb_func_start mevent_client_free_resources +mevent_client_free_resources: @ 0x0801D36C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x14] + bl Free + ldr r0, [r4, #0x18] + bl Free + ldr r0, [r4, #0x1c] + bl Free + ldr r0, [r4, #0x20] + bl Free + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end mevent_client_free_resources + + thumb_func_start mevent_client_jmp_buffer +mevent_client_jmp_buffer: @ 0x0801D390 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x1c] + ldr r1, [r4, #0x18] + movs r2, #0x80 + lsls r2, r2, #3 + bl memcpy + movs r0, #0 + str r0, [r4, #0x10] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end mevent_client_jmp_buffer + + thumb_func_start mevent_client_send_word +mevent_client_send_word: @ 0x0801D3AC + push {r4, r5, r6, lr} + sub sp, #4 + adds r4, r0, #0 + adds r6, r1, #0 + adds r5, r2, #0 + movs r0, #0 + str r0, [sp] + ldr r1, [r4, #0x14] + ldr r2, _0801D3DC + mov r0, sp + bl CpuSet + ldr r2, [r4, #0x14] + str r5, [r2] + adds r4, #0x24 + adds r0, r4, #0 + adds r1, r6, #0 + movs r3, #4 + bl mevent_srv_sub_init_send + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0801D3DC: .4byte 0x05000100 + thumb_func_end mevent_client_send_word + + thumb_func_start mainseq_0 +mainseq_0: @ 0x0801D3E0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x1c] + ldr r1, _0801D404 + movs r2, #0x80 + lsls r2, r2, #3 + bl memcpy + movs r1, #0 + str r1, [r4, #0x10] + movs r0, #4 + str r0, [r4, #8] + str r1, [r4, #0xc] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0801D404: .4byte 0x082C4B6C + thumb_func_end mainseq_0 + + thumb_func_start mainseq_1 +mainseq_1: @ 0x0801D408 + movs r0, #6 + bx lr + thumb_func_end mainseq_1 + + thumb_func_start mainseq_2 +mainseq_2: @ 0x0801D40C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x24 + bl mevent_srv_sub_recv + cmp r0, #0 + beq _0801D422 + movs r0, #4 + str r0, [r4, #8] + movs r0, #0 + str r0, [r4, #0xc] +_0801D422: + movs r0, #1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end mainseq_2 + + thumb_func_start mainseq_3 +mainseq_3: @ 0x0801D42C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x24 + bl mevent_srv_sub_send + cmp r0, #0 + beq _0801D442 + movs r0, #4 + str r0, [r4, #8] + movs r0, #0 + str r0, [r4, #0xc] +_0801D442: + movs r0, #1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end mainseq_3 + + thumb_func_start mainseq_4 +mainseq_4: @ 0x0801D44C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x10] + lsls r2, r0, #3 + ldr r1, [r4, #0x1c] + adds r2, r1, r2 + adds r0, #1 + str r0, [r4, #0x10] + ldr r0, [r2] + cmp r0, #0x15 + bls _0801D464 + b _0801D614 +_0801D464: + lsls r0, r0, #2 + ldr r1, _0801D470 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801D470: .4byte 0x0801D474 +_0801D474: @ jump table + .4byte _0801D614 @ case 0 + .4byte _0801D4CC @ case 1 + .4byte _0801D4D4 @ case 2 + .4byte _0801D4E4 @ case 3 + .4byte _0801D51E @ case 4 + .4byte _0801D526 @ case 5 + .4byte _0801D50E @ case 6 + .4byte _0801D518 @ case 7 + .4byte _0801D574 @ case 8 + .4byte _0801D5A0 @ case 9 + .4byte _0801D598 @ case 10 + .4byte _0801D53C @ case 11 + .4byte _0801D552 @ case 12 + .4byte _0801D568 @ case 13 + .4byte _0801D58C @ case 14 + .4byte _0801D5C8 @ case 15 + .4byte _0801D5CC @ case 16 + .4byte _0801D5D4 @ case 17 + .4byte _0801D5E0 @ case 18 + .4byte _0801D4FA @ case 19 + .4byte _0801D4E8 @ case 20 + .4byte _0801D600 @ case 21 +_0801D4CC: + ldr r0, [r2, #4] + str r0, [r4, #4] + movs r0, #1 + b _0801D60E +_0801D4D4: + adds r0, r4, #0 + adds r0, #0x24 + ldr r1, [r2, #4] + ldr r2, [r4, #0x18] + bl mevent_srv_sub_init_recv + movs r0, #2 + b _0801D60E +_0801D4E4: + movs r0, #3 + b _0801D60E +_0801D4E8: + adds r0, r4, #0 + adds r0, #0x24 + ldr r2, [r4, #0x14] + movs r1, #0x14 + movs r3, #0 + bl mevent_srv_sub_init_send + movs r0, #3 + b _0801D60E +_0801D4FA: + ldrb r0, [r2, #4] + bl GetGameStat + adds r2, r0, #0 + adds r0, r4, #0 + movs r1, #0x12 + bl mevent_client_send_word + movs r0, #3 + b _0801D60E +_0801D50E: + ldr r0, [r4, #4] + cmp r0, #0 + beq _0801D516 + b _0801D614 +_0801D516: + b _0801D51E +_0801D518: + ldr r0, [r4, #4] + cmp r0, #1 + bne _0801D614 +_0801D51E: + adds r0, r4, #0 + bl mevent_client_jmp_buffer + b _0801D614 +_0801D526: + ldr r0, [r4, #0x20] + ldr r1, [r4, #0x18] + movs r2, #0x40 + bl memcpy + movs r0, #5 + str r0, [r4, #8] + movs r0, #0 + str r0, [r4, #0xc] + movs r0, #2 + b _0801D616 +_0801D53C: + ldr r0, [r4, #0x20] + ldr r1, [r4, #0x18] + movs r2, #0x40 + bl memcpy + movs r0, #5 + str r0, [r4, #8] + movs r0, #0 + str r0, [r4, #0xc] + movs r0, #3 + b _0801D616 +_0801D552: + ldr r0, [r4, #0x20] + ldr r1, [r4, #0x18] + movs r2, #0x40 + bl memcpy + movs r0, #5 + str r0, [r4, #8] + movs r0, #0 + str r0, [r4, #0xc] + movs r0, #5 + b _0801D616 +_0801D568: + movs r0, #5 + str r0, [r4, #8] + movs r0, #0 + str r0, [r4, #0xc] + movs r0, #4 + b _0801D616 +_0801D574: + ldr r0, [r4, #0x14] + ldr r1, [r4, #0x4c] + bl sub_0801B040 + adds r0, r4, #0 + adds r0, #0x24 + ldr r2, [r4, #0x14] + movs r1, #0x11 + movs r3, #0x64 + bl mevent_srv_sub_init_send + b _0801D614 +_0801D58C: + ldr r2, [r4, #4] + adds r0, r4, #0 + movs r1, #0x13 + bl mevent_client_send_word + b _0801D614 +_0801D598: + ldr r0, [r4, #0x18] + bl sub_0801ACE4 + b _0801D614 +_0801D5A0: + ldr r0, [r4, #0x18] + bl sub_0801AC74 + cmp r0, #0 + bne _0801D5BC + ldr r0, [r4, #0x18] + bl sub_0801AB50 + adds r0, r4, #0 + movs r1, #0x13 + movs r2, #0 + bl mevent_client_send_word + b _0801D614 +_0801D5BC: + adds r0, r4, #0 + movs r1, #0x13 + movs r2, #1 + bl mevent_client_send_word + b _0801D614 +_0801D5C8: + movs r0, #6 + b _0801D60E +_0801D5CC: + ldr r0, [r4, #0x18] + bl sub_0801AFC8 + b _0801D614 +_0801D5D4: + ldr r0, [r4, #0x18] + movs r1, #0xfa + lsls r1, r1, #2 + bl InitRamScript_NoEventObject + b _0801D614 +_0801D5E0: + ldr r0, _0801D5F8 + ldr r0, [r0] + ldr r1, _0801D5FC + adds r0, r0, r1 + ldr r1, [r4, #0x18] + movs r2, #0xbc + bl memcpy + bl ValidateEReaderTrainer + b _0801D614 + .align 2, 0 +_0801D5F8: .4byte 0x03005AF0 +_0801D5FC: .4byte 0x00000BEC +_0801D600: + ldr r0, _0801D61C + ldr r1, [r4, #0x18] + movs r2, #0x80 + lsls r2, r2, #3 + bl memcpy + movs r0, #7 +_0801D60E: + str r0, [r4, #8] + movs r0, #0 + str r0, [r4, #0xc] +_0801D614: + movs r0, #1 +_0801D616: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0801D61C: .4byte 0x0201C000 + thumb_func_end mainseq_4 + + thumb_func_start mainseq_5 +mainseq_5: @ 0x0801D620 + push {lr} + adds r1, r0, #0 + ldr r0, [r1, #0xc] + cmp r0, #0 + beq _0801D632 + movs r0, #4 + str r0, [r1, #8] + movs r0, #0 + str r0, [r1, #0xc] +_0801D632: + movs r0, #1 + pop {r1} + bx r1 + thumb_func_end mainseq_5 + + thumb_func_start mainseq_6 +mainseq_6: @ 0x0801D638 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0xc] + cmp r0, #0 + beq _0801D648 + cmp r0, #1 + beq _0801D656 + b _0801D668 +_0801D648: + ldr r0, [r4, #0x18] + bl sub_081537AC + ldr r0, [r4, #0xc] + adds r0, #1 + str r0, [r4, #0xc] + b _0801D668 +_0801D656: + adds r0, r4, #4 + bl sub_081537C0 + adds r1, r0, #0 + cmp r1, #0 + bne _0801D668 + movs r0, #4 + str r0, [r4, #8] + str r1, [r4, #0xc] +_0801D668: + movs r0, #1 + pop {r4} + pop {r1} + bx r1 + thumb_func_end mainseq_6 + + thumb_func_start mainseq_7 +mainseq_7: @ 0x0801D670 + push {r4, lr} + adds r4, r0, #0 + ldr r3, _0801D698 + adds r0, r4, #4 + ldr r1, _0801D69C + ldr r1, [r1] + ldr r2, _0801D6A0 + ldr r2, [r2] + bl _call_via_r3 + cmp r0, #1 + bne _0801D690 + movs r0, #4 + str r0, [r4, #8] + movs r0, #0 + str r0, [r4, #0xc] +_0801D690: + movs r0, #1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0801D698: .4byte 0x0201C000 +_0801D69C: .4byte 0x03005AF0 +_0801D6A0: .4byte 0x03005AEC + thumb_func_end mainseq_7 + + thumb_func_start mevent_client_exec +mevent_client_exec: @ 0x0801D6A4 + push {r4, r5, lr} + sub sp, #0x20 + mov r2, sp + ldr r1, _0801D6CC + ldm r1!, {r3, r4, r5} + stm r2!, {r3, r4, r5} + ldm r1!, {r3, r4, r5} + stm r2!, {r3, r4, r5} + ldm r1!, {r3, r4} + stm r2!, {r3, r4} + ldr r1, [r0, #8] + lsls r1, r1, #2 + add r1, sp + ldr r1, [r1] + bl _call_via_r1 + add sp, #0x20 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0801D6CC: .4byte 0x082C4B34 + thumb_func_end mevent_client_exec + diff --git a/asm/mevent_news.s b/asm/mevent_news.s new file mode 100644 index 0000000..9a7fadc --- /dev/null +++ b/asm/mevent_news.s @@ -0,0 +1,324 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start GenerateRandomNews +GenerateRandomNews: @ 0x0801D978 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0801AB1C + adds r5, r0, #0 + movs r0, #3 + adds r1, r4, #0 + ands r1, r0 + ldrb r2, [r5] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5] + cmp r4, #2 + bhi _0801D99E + cmp r4, #1 + bhs _0801D9A4 + b _0801D9C8 +_0801D99E: + cmp r4, #3 + beq _0801D9B6 + b _0801D9C8 +_0801D9A4: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xf + bl __umodsi3 + adds r0, #0x10 + b _0801D9C6 +_0801D9B6: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xf + bl __umodsi3 + adds r0, #1 +_0801D9C6: + strb r0, [r5, #1] +_0801D9C8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end GenerateRandomNews + + thumb_func_start sub_0801D9D0 +sub_0801D9D0: @ 0x0801D9D0 + push {lr} + bl sub_0801AB1C + movs r1, #0 + strb r1, [r0] + strb r1, [r0, #1] + ldr r0, _0801D9E8 + bl VarSet + pop {r0} + bx r0 + .align 2, 0 +_0801D9E8: .4byte 0x0000402E + thumb_func_end sub_0801D9D0 + + thumb_func_start sub_0801D9EC +sub_0801D9EC: @ 0x0801D9EC + push {r4, lr} + ldr r0, _0801DA28 + bl GetVarPointer + adds r4, r0, #0 + bl sub_0801AB1C + adds r2, r0, #0 + ldr r0, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1d + cmp r0, #4 + bls _0801DA20 + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + lsls r0, r0, #0x10 + ldr r1, _0801DA2C + cmp r0, r1 + bls _0801DA20 + ldrb r0, [r2] + movs r1, #0x1f + ands r1, r0 + strb r1, [r2] + movs r0, #0 + strh r0, [r4] +_0801DA20: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801DA28: .4byte 0x0000402E +_0801DA2C: .4byte 0x01F30000 + thumb_func_end sub_0801D9EC + + thumb_func_start sub_0801DA30 +sub_0801DA30: @ 0x0801DA30 + push {r4, r5, r6, lr} + ldr r6, _0801DA50 + bl sub_0801AB1C + adds r4, r0, #0 + bl IsMysteryEventEnabled + cmp r0, #0 + beq _0801DA4A + bl ValidateReceivedWonderNews + cmp r0, #0 + bne _0801DA54 +_0801DA4A: + movs r0, #0 + b _0801DAB6 + .align 2, 0 +_0801DA50: .4byte 0x02037290 +_0801DA54: + adds r0, r4, #0 + bl sub_0801DB54 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #6 + bhi _0801DAB4 + lsls r0, r5, #2 + ldr r1, _0801DA6C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801DA6C: .4byte 0x0801DA70 +_0801DA70: @ jump table + .4byte _0801DAB4 @ case 0 + .4byte _0801DA8C @ case 1 + .4byte _0801DA8C @ case 2 + .4byte _0801DAB4 @ case 3 + .4byte _0801DA96 @ case 4 + .4byte _0801DAA6 @ case 5 + .4byte _0801DAB4 @ case 6 +_0801DA8C: + adds r0, r4, #0 + bl sub_0801DABC + strh r0, [r6] + b _0801DAB4 +_0801DA96: + adds r0, r4, #0 + bl sub_0801DABC + strh r0, [r6] + adds r0, r4, #0 + bl sub_0801DAE8 + b _0801DAB4 +_0801DAA6: + adds r0, r4, #0 + bl sub_0801DABC + strh r0, [r6] + adds r0, r4, #0 + bl sub_0801DADC +_0801DAB4: + adds r0, r5, #0 +_0801DAB6: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_0801DA30 + + thumb_func_start sub_0801DABC +sub_0801DABC: @ 0x0801DABC + push {r4, lr} + ldrb r2, [r0] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + ldrb r4, [r0, #1] + adds r4, #0x84 + movs r1, #0 + strb r1, [r0, #1] + bl sub_0801DB20 + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0801DABC + + thumb_func_start sub_0801DADC +sub_0801DADC: @ 0x0801DADC + ldrb r2, [r0] + movs r1, #0x1d + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + bx lr + thumb_func_end sub_0801DADC + + thumb_func_start sub_0801DAE8 +sub_0801DAE8: @ 0x0801DAE8 + push {r4, lr} + adds r3, r0, #0 + ldr r0, [r3] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1d + adds r0, #1 + movs r1, #7 + ands r0, r1 + lsls r0, r0, #2 + ldrb r1, [r3] + movs r4, #0x1d + rsbs r4, r4, #0 + adds r2, r4, #0 + ands r2, r1 + orrs r2, r0 + strb r2, [r3] + ldr r0, [r3] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1d + cmp r0, #4 + bls _0801DB1A + ands r2, r4 + movs r0, #0x10 + orrs r2, r0 + strb r2, [r3] +_0801DB1A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0801DAE8 + + thumb_func_start sub_0801DB20 +sub_0801DB20: @ 0x0801DB20 + push {r4, lr} + adds r3, r0, #0 + ldr r0, [r3] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1d + adds r0, #1 + lsls r0, r0, #5 + ldrb r1, [r3] + movs r4, #0x1f + adds r2, r4, #0 + ands r2, r1 + orrs r2, r0 + strb r2, [r3] + ldr r0, [r3] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1d + cmp r0, #5 + bls _0801DB4C + ands r2, r4 + movs r0, #0xa0 + orrs r2, r0 + strb r2, [r3] +_0801DB4C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0801DB20 + + thumb_func_start sub_0801DB54 +sub_0801DB54: @ 0x0801DB54 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2] + movs r0, #0xe0 + ands r0, r1 + cmp r0, #0xa0 + bne _0801DB66 + movs r0, #6 + b _0801DBB0 +_0801DB66: + ldr r1, [r2] + lsls r0, r1, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + beq _0801DB88 + cmp r0, #1 + bgt _0801DB7A + cmp r0, #0 + beq _0801DB84 + b _0801DBA0 +_0801DB7A: + cmp r0, #2 + beq _0801DB8C + cmp r0, #3 + beq _0801DB90 + b _0801DBA0 +_0801DB84: + movs r0, #3 + b _0801DBB0 +_0801DB88: + movs r0, #1 + b _0801DBB0 +_0801DB8C: + movs r0, #2 + b _0801DBB0 +_0801DB90: + lsls r0, r1, #0x1b + lsrs r0, r0, #0x1d + cmp r0, #2 + bhi _0801DB9C + movs r0, #4 + b _0801DBB0 +_0801DB9C: + movs r0, #5 + b _0801DBB0 +_0801DBA0: + ldr r0, _0801DBB4 + movs r1, #0xc0 + lsls r1, r1, #1 + ldr r2, _0801DBB8 + movs r3, #1 + bl AGBAssert + movs r0, #0 +_0801DBB0: + pop {r1} + bx r1 + .align 2, 0 +_0801DBB4: .4byte 0x082C5050 +_0801DBB8: .4byte 0x082C5060 + thumb_func_end sub_0801DB54 + diff --git a/asm/mevent_server.s b/asm/mevent_server.s new file mode 100644 index 0000000..fd6dda7 --- /dev/null +++ b/asm/mevent_server.s @@ -0,0 +1,925 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start mevent_srv_init_wnews +mevent_srv_init_wnews: @ 0x0801CB24 + push {r4, lr} + ldr r4, _0801CB40 + movs r0, #0x60 + bl AllocZeroed + str r0, [r4] + ldr r1, _0801CB44 + movs r2, #0 + movs r3, #1 + bl mevent_srv_init_common + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801CB40: .4byte 0x02022930 +_0801CB44: .4byte 0x082C4F60 + thumb_func_end mevent_srv_init_wnews + + thumb_func_start mevent_srv_new_wcard +mevent_srv_new_wcard: @ 0x0801CB48 + push {r4, lr} + ldr r4, _0801CB64 + movs r0, #0x60 + bl AllocZeroed + str r0, [r4] + ldr r1, _0801CB68 + movs r2, #0 + movs r3, #1 + bl mevent_srv_init_common + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801CB64: .4byte 0x02022930 +_0801CB68: .4byte 0x082C4FC0 + thumb_func_end mevent_srv_new_wcard + + thumb_func_start mevent_srv_common_do_exec +mevent_srv_common_do_exec: @ 0x0801CB6C + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r4, _0801CB7C + ldr r0, [r4] + cmp r0, #0 + bne _0801CB80 + movs r0, #3 + b _0801CBA0 + .align 2, 0 +_0801CB7C: .4byte 0x02022930 +_0801CB80: + bl mevent_srv_exec_common + adds r5, r0, #0 + cmp r5, #3 + bne _0801CB9E + ldr r0, [r4] + ldr r1, [r0, #4] + strh r1, [r6] + bl mevent_srv_free_resources + ldr r0, [r4] + bl Free + movs r0, #0 + str r0, [r4] +_0801CB9E: + adds r0, r5, #0 +_0801CBA0: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end mevent_srv_common_do_exec + + thumb_func_start mevent_srv_init_common +mevent_srv_init_common: @ 0x0801CBA8 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + adds r4, r0, #0 + adds r6, r1, #0 + mov r8, r2 + mov sb, r3 + movs r5, #0 + str r5, [r4] + str r5, [r4, #8] + movs r0, #0xa4 + bl AllocZeroed + str r0, [r4, #0x18] + movs r0, #0xe0 + bl AllocZeroed + str r0, [r4, #0x1c] + movs r0, #0x80 + lsls r0, r0, #3 + bl AllocZeroed + str r0, [r4, #0x14] + movs r0, #0x64 + bl AllocZeroed + str r0, [r4, #0x20] + str r6, [r4, #0x10] + str r5, [r4, #0xc] + adds r4, #0x38 + adds r0, r4, #0 + mov r1, r8 + mov r2, sb + bl mevent_srv_sub_init + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end mevent_srv_init_common + + thumb_func_start mevent_srv_free_resources +mevent_srv_free_resources: @ 0x0801CBFC + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x18] + bl Free + ldr r0, [r4, #0x1c] + bl Free + ldr r0, [r4, #0x14] + bl Free + ldr r0, [r4, #0x20] + bl Free + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end mevent_srv_free_resources + + thumb_func_start mevent_srv_common_init_send +mevent_srv_common_init_send: @ 0x0801CC20 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + adds r7, r2, #0 + adds r4, r3, #0 + movs r0, #0x80 + lsls r0, r0, #3 + cmp r4, r0 + bls _0801CC3E + ldr r0, _0801CC54 + ldr r1, _0801CC58 + ldr r2, _0801CC5C + movs r3, #1 + bl AGBAssert +_0801CC3E: + adds r0, r5, #0 + adds r0, #0x38 + adds r1, r6, #0 + adds r2, r7, #0 + adds r3, r4, #0 + bl mevent_srv_sub_init_send + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0801CC54: .4byte 0x082C4A74 +_0801CC58: .4byte 0x00000101 +_0801CC5C: .4byte 0x082C4A84 + thumb_func_end mevent_srv_common_init_send + + thumb_func_start mevent_first_if_not_null_else_second +mevent_first_if_not_null_else_second: @ 0x0801CC60 + push {lr} + cmp r0, #0 + bne _0801CC68 + adds r0, r1, #0 +_0801CC68: + pop {r1} + bx r1 + thumb_func_end mevent_first_if_not_null_else_second + + thumb_func_start mevent_compare_pointers +mevent_compare_pointers: @ 0x0801CC6C + push {lr} + cmp r1, r0 + bhs _0801CC76 + movs r0, #0 + b _0801CC80 +_0801CC76: + cmp r1, r0 + beq _0801CC7E + movs r0, #2 + b _0801CC80 +_0801CC7E: + movs r0, #1 +_0801CC80: + pop {r1} + bx r1 + thumb_func_end mevent_compare_pointers + + thumb_func_start common_mainseq_0 +common_mainseq_0: @ 0x0801CC84 + movs r1, #4 + str r1, [r0, #8] + movs r0, #0 + bx lr + thumb_func_end common_mainseq_0 + + thumb_func_start common_mainseq_1 +common_mainseq_1: @ 0x0801CC8C + movs r0, #3 + bx lr + thumb_func_end common_mainseq_1 + + thumb_func_start common_mainseq_2 +common_mainseq_2: @ 0x0801CC90 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x38 + bl mevent_srv_sub_recv + cmp r0, #0 + beq _0801CCA2 + movs r0, #4 + str r0, [r4, #8] +_0801CCA2: + movs r0, #1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end common_mainseq_2 + + thumb_func_start common_mainseq_3 +common_mainseq_3: @ 0x0801CCAC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x38 + bl mevent_srv_sub_send + cmp r0, #0 + beq _0801CCBE + movs r0, #4 + str r0, [r4, #8] +_0801CCBE: + movs r0, #1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end common_mainseq_3 + + thumb_func_start common_mainseq_4 +common_mainseq_4: @ 0x0801CCC8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #0xc] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r2, [r5, #0x10] + adds r4, r2, r1 + adds r0, #1 + str r0, [r5, #0xc] + ldr r0, [r4] + cmp r0, #0x1e + bls _0801CCE4 + b _0801D238 +_0801CCE4: + lsls r0, r0, #2 + ldr r1, _0801CCF0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801CCF0: .4byte 0x0801CCF4 +_0801CCF4: @ jump table + .4byte _0801CD70 @ case 0 + .4byte _0801CD98 @ case 1 + .4byte _0801CD9E @ case 2 + .4byte _0801CDCC @ case 3 + .4byte _0801CEB0 @ case 4 + .4byte _0801CDEC @ case 5 + .4byte _0801CE30 @ case 6 + .4byte _0801CEC4 @ case 7 + .4byte _0801CEF4 @ case 8 + .4byte _0801CF34 @ case 9 + .4byte _0801CF68 @ case 10 + .4byte _0801CF98 @ case 11 + .4byte _0801CFC0 @ case 12 + .4byte _0801D020 @ case 13 + .4byte _0801CFEC @ case 14 + .4byte _0801D088 @ case 15 + .4byte _0801D054 @ case 16 + .4byte _0801D0F2 @ case 17 + .4byte _0801D0A0 @ case 18 + .4byte _0801D0B8 @ case 19 + .4byte _0801D0E4 @ case 20 + .4byte _0801D150 @ case 21 + .4byte _0801D100 @ case 22 + .4byte _0801D12C @ case 23 + .4byte _0801D178 @ case 24 + .4byte _0801D182 @ case 25 + .4byte _0801D18C @ case 26 + .4byte _0801D1C8 @ case 27 + .4byte _0801D200 @ case 28 + .4byte _0801D22C @ case 29 + .4byte _0801CE6C @ case 30 +_0801CD70: + ldr r0, [r4, #8] + cmp r0, #0 + beq _0801CD84 + ldr r0, _0801CD90 + movs r1, #0xb1 + lsls r1, r1, #1 + ldr r2, _0801CD94 + movs r3, #1 + bl AGBAssert +_0801CD84: + movs r0, #1 + str r0, [r5, #8] + ldr r0, [r4, #4] + str r0, [r5, #4] + b _0801D238 + .align 2, 0 +_0801CD90: .4byte 0x082C4A74 +_0801CD94: .4byte 0x082C4AA0 +_0801CD98: + movs r0, #3 + str r0, [r5, #8] + b _0801D238 +_0801CD9E: + ldr r0, [r4, #8] + cmp r0, #0 + beq _0801CDB2 + ldr r0, _0801CDC4 + movs r1, #0xb6 + lsls r1, r1, #1 + ldr r2, _0801CDC8 + movs r3, #1 + bl AGBAssert +_0801CDB2: + adds r0, r5, #0 + adds r0, #0x38 + ldr r1, [r4, #4] + ldr r2, [r5, #0x14] + bl mevent_srv_sub_init_recv + movs r0, #2 + str r0, [r5, #8] + b _0801D238 + .align 2, 0 +_0801CDC4: .4byte 0x082C4A74 +_0801CDC8: .4byte 0x082C4AA0 +_0801CDCC: + ldr r0, [r4, #4] + cmp r0, #0 + beq _0801CEBA + ldr r0, _0801CDE4 + movs r1, #0xb9 + lsls r1, r1, #1 + ldr r2, _0801CDE8 + movs r3, #1 + bl AGBAssert + b _0801CEBA + .align 2, 0 +_0801CDE4: .4byte 0x082C4A74 +_0801CDE8: .4byte 0x082C4AB8 +_0801CDEC: + ldr r0, [r4, #4] + cmp r0, #0 + beq _0801CE00 + ldr r0, _0801CE20 + movs r1, #0xbc + lsls r1, r1, #1 + ldr r2, _0801CE24 + movs r3, #1 + bl AGBAssert +_0801CE00: + ldr r0, [r4, #8] + cmp r0, #0 + beq _0801CE12 + ldr r0, _0801CE20 + ldr r1, _0801CE28 + ldr r2, _0801CE2C + movs r3, #1 + bl AGBAssert +_0801CE12: + ldr r0, [r5, #0x20] + ldr r1, [r5, #0x14] + movs r2, #0x64 + bl memcpy + b _0801D238 + .align 2, 0 +_0801CE20: .4byte 0x082C4A74 +_0801CE24: .4byte 0x082C4AB8 +_0801CE28: .4byte 0x00000179 +_0801CE2C: .4byte 0x082C4AA0 +_0801CE30: + ldr r0, [r4, #4] + cmp r0, #0 + beq _0801CE44 + ldr r0, _0801CE5C + movs r1, #0xbf + lsls r1, r1, #1 + ldr r2, _0801CE60 + movs r3, #1 + bl AGBAssert +_0801CE44: + ldr r0, [r4, #8] + cmp r0, #0 + beq _0801CE56 + ldr r0, _0801CE5C + ldr r1, _0801CE64 + ldr r2, _0801CE68 + movs r3, #1 + bl AGBAssert +_0801CE56: + ldr r0, [r5, #0x20] + movs r1, #0 + b _0801CE96 + .align 2, 0 +_0801CE5C: .4byte 0x082C4A74 +_0801CE60: .4byte 0x082C4AB8 +_0801CE64: .4byte 0x0000017F +_0801CE68: .4byte 0x082C4AA0 +_0801CE6C: + ldr r0, [r4, #4] + cmp r0, #0 + beq _0801CE80 + ldr r0, _0801CEA0 + movs r1, #0xc2 + lsls r1, r1, #1 + ldr r2, _0801CEA4 + movs r3, #1 + bl AGBAssert +_0801CE80: + ldr r0, [r4, #8] + cmp r0, #0 + beq _0801CE92 + ldr r0, _0801CEA0 + ldr r1, _0801CEA8 + ldr r2, _0801CEAC + movs r3, #1 + bl AGBAssert +_0801CE92: + ldr r0, [r5, #0x20] + movs r1, #1 +_0801CE96: + bl sub_0801B160 + str r0, [r5, #4] + b _0801D238 + .align 2, 0 +_0801CEA0: .4byte 0x082C4A74 +_0801CEA4: .4byte 0x082C4AB8 +_0801CEA8: .4byte 0x00000185 +_0801CEAC: .4byte 0x082C4AA0 +_0801CEB0: + ldr r1, [r5, #4] + ldr r0, [r4, #4] + cmp r1, r0 + beq _0801CEBA + b _0801D238 +_0801CEBA: + movs r0, #0 + str r0, [r5, #0xc] + ldr r0, [r4, #8] + str r0, [r5, #0x10] + b _0801D238 +_0801CEC4: + ldr r0, [r4, #4] + cmp r0, #0 + beq _0801CED8 + ldr r0, _0801CEEC + movs r1, #0xc9 + lsls r1, r1, #1 + ldr r2, _0801CEF0 + movs r3, #1 + bl AGBAssert +_0801CED8: + ldr r0, [r4, #8] + ldr r1, [r5, #0x18] + bl mevent_first_if_not_null_else_second + adds r2, r0, #0 + ldr r1, [r5, #0x20] + bl sub_0801B1AC + str r0, [r5, #4] + b _0801D238 + .align 2, 0 +_0801CEEC: .4byte 0x082C4A74 +_0801CEF0: .4byte 0x082C4AB8 +_0801CEF4: + ldr r0, [r4, #4] + cmp r0, #0 + beq _0801CF08 + ldr r0, _0801CF24 + movs r1, #0xcc + lsls r1, r1, #1 + ldr r2, _0801CF28 + movs r3, #1 + bl AGBAssert +_0801CF08: + ldr r0, [r4, #8] + cmp r0, #0 + beq _0801CF1A + ldr r0, _0801CF24 + ldr r1, _0801CF2C + ldr r2, _0801CF30 + movs r3, #1 + bl AGBAssert +_0801CF1A: + ldr r0, [r5, #0x14] + ldr r0, [r0] + str r0, [r5, #4] + b _0801D238 + .align 2, 0 +_0801CF24: .4byte 0x082C4A74 +_0801CF28: .4byte 0x082C4AB8 +_0801CF2C: .4byte 0x00000199 +_0801CF30: .4byte 0x082C4AA0 +_0801CF34: + ldr r0, [r4, #4] + cmp r0, #0 + beq _0801CF48 + ldr r0, _0801CF60 + movs r1, #0xcf + lsls r1, r1, #1 + ldr r2, _0801CF64 + movs r3, #1 + bl AGBAssert +_0801CF48: + ldr r0, [r4, #8] + adds r1, r5, #0 + adds r1, #0x34 + bl mevent_first_if_not_null_else_second + adds r2, r0, #0 + ldr r1, [r5, #0x20] + bl sub_0801B1C8 + str r0, [r5, #4] + b _0801D238 + .align 2, 0 +_0801CF60: .4byte 0x082C4A74 +_0801CF64: .4byte 0x082C4AB8 +_0801CF68: + ldr r0, [r4, #8] + cmp r0, #0 + beq _0801CF7A + ldr r0, _0801CF8C + ldr r1, _0801CF90 + ldr r2, _0801CF94 + movs r3, #1 + bl AGBAssert +_0801CF7A: + ldr r0, [r5, #0x20] + ldr r1, [r4, #4] + bl MEventStruct_Unk1442CC_GetValueNFrom_unk_20 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [r5, #4] + b _0801D238 + .align 2, 0 +_0801CF8C: .4byte 0x082C4A74 +_0801CF90: .4byte 0x000001A5 +_0801CF94: .4byte 0x082C4AA0 +_0801CF98: + ldr r0, [r4, #4] + cmp r0, #0 + beq _0801CFAC + ldr r0, _0801CFB8 + movs r1, #0xd5 + lsls r1, r1, #1 + ldr r2, _0801CFBC + movs r3, #1 + bl AGBAssert +_0801CFAC: + ldr r0, [r5, #0x20] + ldr r1, [r4, #8] + bl MEventStruct_Unk1442CC_CompareField_unk_16 + str r0, [r5, #4] + b _0801D238 + .align 2, 0 +_0801CFB8: .4byte 0x082C4A74 +_0801CFBC: .4byte 0x082C4AB8 +_0801CFC0: + ldr r0, [r4, #4] + cmp r0, #0 + beq _0801CFD4 + ldr r0, _0801CFE4 + movs r1, #0xd8 + lsls r1, r1, #1 + ldr r2, _0801CFE8 + movs r3, #1 + bl AGBAssert +_0801CFD4: + ldr r0, [r4, #8] + ldr r1, [r5, #0x14] + ldr r1, [r1] + bl mevent_compare_pointers + str r0, [r5, #4] + b _0801D238 + .align 2, 0 +_0801CFE4: .4byte 0x082C4A74 +_0801CFE8: .4byte 0x082C4AB8 +_0801CFEC: + ldr r0, [r4, #4] + cmp r0, #0 + beq _0801D000 + ldr r0, _0801D018 + movs r1, #0xdb + lsls r1, r1, #1 + ldr r2, _0801D01C + movs r3, #1 + bl AGBAssert +_0801D000: + ldr r0, [r4, #8] + ldr r1, [r5, #0x1c] + bl mevent_first_if_not_null_else_second + adds r2, r0, #0 + adds r0, r5, #0 + movs r1, #0x17 + movs r3, #0xe0 + bl mevent_srv_common_init_send + b _0801D238 + .align 2, 0 +_0801D018: .4byte 0x082C4A74 +_0801D01C: .4byte 0x082C4AB8 +_0801D020: + ldr r0, [r4, #4] + cmp r0, #0 + beq _0801D034 + ldr r0, _0801D04C + movs r1, #0xde + lsls r1, r1, #1 + ldr r2, _0801D050 + movs r3, #1 + bl AGBAssert +_0801D034: + ldr r0, [r4, #8] + ldr r1, [r5, #0x18] + bl mevent_first_if_not_null_else_second + adds r2, r0, #0 + adds r0, r5, #0 + movs r1, #0x16 + movs r3, #0xa4 + bl mevent_srv_common_init_send + b _0801D238 + .align 2, 0 +_0801D04C: .4byte 0x082C4A74 +_0801D050: .4byte 0x082C4AB8 +_0801D054: + ldr r0, [r4, #4] + cmp r0, #0 + beq _0801D068 + ldr r0, _0801D080 + movs r1, #0xe1 + lsls r1, r1, #1 + ldr r2, _0801D084 + movs r3, #1 + bl AGBAssert +_0801D068: + ldr r0, [r4, #8] + adds r1, r5, #0 + adds r1, #0x34 + bl mevent_first_if_not_null_else_second + adds r2, r0, #0 + adds r0, r5, #0 + movs r1, #0x18 + movs r3, #4 + bl mevent_srv_common_init_send + b _0801D238 + .align 2, 0 +_0801D080: .4byte 0x082C4A74 +_0801D084: .4byte 0x082C4AB8 +_0801D088: + ldr r2, [r4, #8] + cmp r2, #0 + bne _0801D094 + ldr r2, [r5, #0x24] + ldr r3, [r5, #0x28] + b _0801D096 +_0801D094: + ldr r3, [r4, #4] +_0801D096: + adds r0, r5, #0 + movs r1, #0x19 + bl mevent_srv_common_init_send + b _0801D238 +_0801D0A0: + ldr r2, [r4, #8] + cmp r2, #0 + bne _0801D0AC + ldr r2, [r5, #0x2c] + ldr r3, [r5, #0x30] + b _0801D0AE +_0801D0AC: + ldr r3, [r4, #4] +_0801D0AE: + adds r0, r5, #0 + movs r1, #0x10 + bl mevent_srv_common_init_send + b _0801D238 +_0801D0B8: + ldr r0, [r4, #4] + cmp r0, #0 + beq _0801D0CC + ldr r0, _0801D0DC + movs r1, #0xec + lsls r1, r1, #1 + ldr r2, _0801D0E0 + movs r3, #1 + bl AGBAssert +_0801D0CC: + ldr r2, [r4, #8] + adds r0, r5, #0 + movs r1, #0x1a + movs r3, #0xbc + bl mevent_srv_common_init_send + b _0801D238 + .align 2, 0 +_0801D0DC: .4byte 0x082C4A74 +_0801D0E0: .4byte 0x082C4AB8 +_0801D0E4: + ldr r2, [r4, #8] + ldr r3, [r4, #4] + adds r0, r5, #0 + movs r1, #0x15 + bl mevent_srv_common_init_send + b _0801D238 +_0801D0F2: + ldr r2, [r4, #8] + ldr r3, [r4, #4] + adds r0, r5, #0 + movs r1, #0x1c + bl mevent_srv_common_init_send + b _0801D238 +_0801D100: + ldr r0, [r4, #4] + cmp r0, #0 + beq _0801D112 + ldr r0, _0801D120 + ldr r1, _0801D124 + ldr r2, _0801D128 + movs r3, #1 + bl AGBAssert +_0801D112: + ldr r0, [r5, #0x18] + ldr r1, [r4, #8] + movs r2, #0xa4 + bl memcpy + b _0801D238 + .align 2, 0 +_0801D120: .4byte 0x082C4A74 +_0801D124: .4byte 0x000001E7 +_0801D128: .4byte 0x082C4AB8 +_0801D12C: + ldr r0, [r4, #4] + cmp r0, #0 + beq _0801D140 + ldr r0, _0801D148 + movs r1, #0xf6 + lsls r1, r1, #1 + ldr r2, _0801D14C + movs r3, #1 + bl AGBAssert +_0801D140: + ldr r0, [r5, #0x1c] + ldr r1, [r4, #8] + b _0801D1EA + .align 2, 0 +_0801D148: .4byte 0x082C4A74 +_0801D14C: .4byte 0x082C4AB8 +_0801D150: + ldr r0, [r4, #4] + cmp r0, #0 + beq _0801D162 + ldr r0, _0801D16C + ldr r1, _0801D170 + ldr r2, _0801D174 + movs r3, #1 + bl AGBAssert +_0801D162: + ldr r0, [r4, #8] + ldr r0, [r0] + str r0, [r5, #0x34] + b _0801D238 + .align 2, 0 +_0801D16C: .4byte 0x082C4A74 +_0801D170: .4byte 0x000001F1 +_0801D174: .4byte 0x082C4AB8 +_0801D178: + ldr r0, [r4, #8] + str r0, [r5, #0x24] + ldr r0, [r4, #4] + str r0, [r5, #0x28] + b _0801D238 +_0801D182: + ldr r0, [r4, #8] + str r0, [r5, #0x2c] + ldr r0, [r4, #4] + str r0, [r5, #0x30] + b _0801D238 +_0801D18C: + ldr r0, [r4, #4] + cmp r0, #0 + bne _0801D198 + ldr r0, [r4, #8] + cmp r0, #0 + beq _0801D1A6 +_0801D198: + ldr r0, _0801D1C0 + movs r1, #0x80 + lsls r1, r1, #2 + ldr r2, _0801D1C4 + movs r3, #1 + bl AGBAssert +_0801D1A6: + ldr r4, [r5, #0x18] + bl GetSavedWonderCard + adds r1, r0, #0 + adds r0, r4, #0 + movs r2, #0xa4 + bl memcpy + ldr r0, [r5, #0x18] + bl WonderCard_ResetInternalReceivedFlag + b _0801D238 + .align 2, 0 +_0801D1C0: .4byte 0x082C4A74 +_0801D1C4: .4byte 0x082C4ACC +_0801D1C8: + ldr r0, [r4, #4] + cmp r0, #0 + bne _0801D1D4 + ldr r0, [r4, #8] + cmp r0, #0 + beq _0801D1E0 +_0801D1D4: + ldr r0, _0801D1F4 + ldr r1, _0801D1F8 + ldr r2, _0801D1FC + movs r3, #1 + bl AGBAssert +_0801D1E0: + ldr r4, [r5, #0x1c] + bl GetSavedWonderNews + adds r1, r0, #0 + adds r0, r4, #0 +_0801D1EA: + movs r2, #0xe0 + bl memcpy + b _0801D238 + .align 2, 0 +_0801D1F4: .4byte 0x082C4A74 +_0801D1F8: .4byte 0x00000206 +_0801D1FC: .4byte 0x082C4ACC +_0801D200: + ldr r0, [r4, #4] + cmp r0, #0 + bne _0801D20C + ldr r0, [r4, #8] + cmp r0, #0 + beq _0801D218 +_0801D20C: + ldr r0, _0801D220 + ldr r1, _0801D224 + ldr r2, _0801D228 + movs r3, #1 + bl AGBAssert +_0801D218: + bl GetSavedRamScriptIfValid + str r0, [r5, #0x24] + b _0801D238 + .align 2, 0 +_0801D220: .4byte 0x082C4A74 +_0801D224: .4byte 0x0000020B +_0801D228: .4byte 0x082C4ACC +_0801D22C: + ldr r2, [r4, #8] + ldr r3, [r4, #4] + adds r0, r5, #0 + movs r1, #0x1b + bl mevent_srv_common_init_send +_0801D238: + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end common_mainseq_4 + + thumb_func_start mevent_srv_exec_common +mevent_srv_exec_common: @ 0x0801D240 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #8] + cmp r0, #4 + bls _0801D258 + ldr r0, _0801D284 + movs r1, #0x8a + lsls r1, r1, #2 + ldr r2, _0801D288 + movs r3, #1 + bl AGBAssert +_0801D258: + ldr r1, _0801D28C + ldr r0, [r4, #8] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r5, r0, #0 + ldr r0, [r4, #8] + cmp r0, #4 + bls _0801D27C + ldr r0, _0801D284 + ldr r1, _0801D290 + ldr r2, _0801D288 + movs r3, #1 + bl AGBAssert +_0801D27C: + adds r0, r5, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0801D284: .4byte 0x082C4A74 +_0801D288: .4byte 0x082C4B10 +_0801D28C: .4byte 0x082C4AFC +_0801D290: .4byte 0x0000022A + thumb_func_end mevent_srv_exec_common + diff --git a/asm/mevent_server_helpers.s b/asm/mevent_server_helpers.s new file mode 100644 index 0000000..77c8ccd --- /dev/null +++ b/asm/mevent_server_helpers.s @@ -0,0 +1,377 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start mevent_srv_sub_recv +mevent_srv_sub_recv: @ 0x0801D6D0 + push {lr} + ldr r1, [r0, #0x20] + bl _call_via_r1 + pop {r1} + bx r1 + thumb_func_end mevent_srv_sub_recv + + thumb_func_start mevent_srv_sub_send +mevent_srv_sub_send: @ 0x0801D6DC + push {lr} + ldr r1, [r0, #0x24] + bl _call_via_r1 + pop {r1} + bx r1 + thumb_func_end mevent_srv_sub_send + + thumb_func_start mevent_srv_sub_init +mevent_srv_sub_init: @ 0x0801D6E8 + movs r3, #0 + strb r1, [r0, #4] + strb r2, [r0, #5] + str r3, [r0] + strh r3, [r0, #0x12] + strh r3, [r0, #0x14] + strh r3, [r0, #0x10] + strh r3, [r0, #0xa] + strh r3, [r0, #0xc] + strh r3, [r0, #8] + str r3, [r0, #0x1c] + str r3, [r0, #0x18] + ldr r1, _0801D70C + str r1, [r0, #0x24] + ldr r1, _0801D710 + str r1, [r0, #0x20] + bx lr + .align 2, 0 +_0801D70C: .4byte 0x0801D86D +_0801D710: .4byte 0x0801D799 + thumb_func_end mevent_srv_sub_init + + thumb_func_start mevent_srv_sub_init_send +mevent_srv_sub_init_send: @ 0x0801D714 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + str r0, [r4] + strh r1, [r4, #0xe] + strh r0, [r4, #0x10] + strh r0, [r4, #0x12] + cmp r3, #0 + beq _0801D72A + strh r3, [r4, #0x14] + b _0801D730 +_0801D72A: + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r4, #0x14] +_0801D730: + str r2, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + thumb_func_end mevent_srv_sub_init_send + + thumb_func_start mevent_srv_sub_init_recv +mevent_srv_sub_init_recv: @ 0x0801D738 + movs r3, #0 + str r3, [r0] + strh r1, [r0, #6] + strh r3, [r0, #8] + strh r3, [r0, #0xa] + strh r3, [r0, #0xc] + str r2, [r0, #0x18] + bx lr + thumb_func_end mevent_srv_sub_init_recv + + thumb_func_start mevent_recv_block +mevent_recv_block: @ 0x0801D748 + push {lr} + adds r3, r0, #0 + adds r0, r1, #0 + lsls r3, r3, #8 + ldr r1, _0801D760 + adds r3, r3, r1 + adds r1, r3, #0 + bl memcpy + pop {r0} + bx r0 + .align 2, 0 +_0801D760: .4byte 0x0202207C + thumb_func_end mevent_recv_block + + thumb_func_start mevent_has_received +mevent_has_received: @ 0x0801D764 + push {r4, lr} + adds r4, r0, #0 + bl GetBlockReceivedStatus + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + asrs r0, r4 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0801D77E + movs r0, #0 + b _0801D780 +_0801D77E: + movs r0, #1 +_0801D780: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end mevent_has_received + + thumb_func_start mevent_reset_recv +mevent_reset_recv: @ 0x0801D788 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl ResetBlockReceivedFlag + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end mevent_reset_recv + + thumb_func_start mevent_receive_func +mevent_receive_func: @ 0x0801D798 + push {r4, r5, r6, lr} + sub sp, #8 + adds r5, r0, #0 + ldr r6, [r5] + cmp r6, #1 + beq _0801D7FC + cmp r6, #1 + bgt _0801D7AE + cmp r6, #0 + beq _0801D7B4 + b _0801D862 +_0801D7AE: + cmp r6, #2 + beq _0801D848 + b _0801D862 +_0801D7B4: + ldrb r0, [r5, #5] + bl mevent_has_received + cmp r0, #0 + beq _0801D862 + ldrb r0, [r5, #5] + mov r4, sp + mov r1, sp + movs r2, #8 + bl mevent_recv_block + ldrh r1, [r4, #4] + strh r1, [r5, #0xc] + ldrh r0, [r4, #2] + strh r0, [r5, #0xa] + lsls r1, r1, #0x10 + movs r0, #0x80 + lsls r0, r0, #0x13 + cmp r1, r0 + bls _0801D7E2 +_0801D7DC: + bl LinkRfu_FatalError + b _0801D862 +_0801D7E2: + mov r1, sp + ldrh r0, [r5, #6] + ldrh r1, [r1] + cmp r0, r1 + bne _0801D7DC + strh r6, [r5, #8] + ldrb r0, [r5, #5] + bl mevent_reset_recv + ldr r0, [r5] + adds r0, #1 + str r0, [r5] + b _0801D862 +_0801D7FC: + ldrb r0, [r5, #5] + bl mevent_has_received + cmp r0, #0 + beq _0801D862 + ldrh r0, [r5, #8] + lsls r1, r0, #6 + subs r1, r1, r0 + lsls r3, r1, #2 + ldrh r0, [r5, #0xc] + subs r2, r0, r3 + cmp r2, #0xfc + bhi _0801D82E + ldrb r0, [r5, #5] + ldr r1, [r5, #0x18] + adds r1, r1, r3 + bl mevent_recv_block + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + ldr r0, [r5] + adds r0, #1 + str r0, [r5] + b _0801D840 +_0801D82E: + ldrb r0, [r5, #5] + ldr r1, [r5, #0x18] + adds r1, r1, r3 + movs r2, #0xfc + bl mevent_recv_block + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] +_0801D840: + ldrb r0, [r5, #5] + bl mevent_reset_recv + b _0801D862 +_0801D848: + ldr r0, [r5, #0x18] + ldrh r1, [r5, #0xc] + bl CalcCRC16WithTable + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrh r1, [r5, #0xa] + cmp r0, r1 + bne _0801D7DC + movs r0, #0 + str r0, [r5] + movs r0, #1 + b _0801D864 +_0801D862: + movs r0, #0 +_0801D864: + add sp, #8 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end mevent_receive_func + + thumb_func_start mevent_send_func +mevent_send_func: @ 0x0801D86C + push {r4, r5, lr} + sub sp, #8 + adds r4, r0, #0 + ldr r5, [r4] + cmp r5, #1 + beq _0801D8D8 + cmp r5, #1 + bgt _0801D882 + cmp r5, #0 + beq _0801D88C + b _0801D96E +_0801D882: + cmp r5, #2 + beq _0801D92C + cmp r5, #3 + beq _0801D956 + b _0801D96E +_0801D88C: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801D96E + ldrh r1, [r4, #0xe] + ldr r2, _0801D8D0 + ldr r0, [sp] + ands r0, r2 + orrs r0, r1 + str r0, [sp] + ldrh r1, [r4, #0x14] + ldr r0, [sp, #4] + ands r0, r2 + orrs r0, r1 + str r0, [sp, #4] + ldr r0, [r4, #0x1c] + bl CalcCRC16WithTable + lsls r0, r0, #0x10 + ldr r2, _0801D8D4 + ldr r1, [sp] + ands r1, r2 + orrs r1, r0 + str r1, [sp] + lsrs r1, r1, #0x10 + strh r1, [r4, #0x12] + strh r5, [r4, #0x10] + movs r0, #0 + mov r1, sp + movs r2, #8 + bl SendBlock + b _0801D94E + .align 2, 0 +_0801D8D0: .4byte 0xFFFF0000 +_0801D8D4: .4byte 0x0000FFFF +_0801D8D8: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801D96E + ldrb r0, [r4, #4] + bl mevent_has_received + cmp r0, #0 + beq _0801D96E + ldrb r0, [r4, #4] + bl mevent_reset_recv + ldrh r1, [r4, #0x10] + lsls r0, r1, #6 + subs r0, r0, r1 + lsls r3, r0, #2 + ldrh r0, [r4, #0x14] + subs r0, r0, r3 + cmp r0, #0xfc + bhi _0801D918 + ldr r1, [r4, #0x1c] + adds r1, r1, r3 + lsls r2, r0, #0x10 + lsrs r2, r2, #0x10 + movs r0, #0 + bl SendBlock + ldrh r0, [r4, #0x10] + adds r0, #1 + strh r0, [r4, #0x10] + b _0801D94E +_0801D918: + ldr r1, [r4, #0x1c] + adds r1, r1, r3 + movs r0, #0 + movs r2, #0xfc + bl SendBlock + ldrh r0, [r4, #0x10] + adds r0, #1 + strh r0, [r4, #0x10] + b _0801D96E +_0801D92C: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801D96E + ldr r0, [r4, #0x1c] + ldrh r1, [r4, #0x14] + bl CalcCRC16WithTable + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrh r1, [r4, #0x12] + cmp r0, r1 + beq _0801D94E + bl LinkRfu_FatalError + b _0801D96E +_0801D94E: + ldr r0, [r4] + adds r0, #1 + str r0, [r4] + b _0801D96E +_0801D956: + ldrb r0, [r4, #4] + bl mevent_has_received + cmp r0, #0 + beq _0801D96E + ldrb r0, [r4, #4] + bl mevent_reset_recv + movs r0, #0 + str r0, [r4] + movs r0, #1 + b _0801D970 +_0801D96E: + movs r0, #0 +_0801D970: + add sp, #8 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end mevent_send_func + diff --git a/asm/mirage_tower.s b/asm/mirage_tower.s new file mode 100644 index 0000000..b3198f3 --- /dev/null +++ b/asm/mirage_tower.s @@ -0,0 +1,1501 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start IsMirageTowerVisible +IsMirageTowerVisible: @ 0x081BE308 + push {lr} + ldr r0, _081BE328 + ldr r0, [r0] + ldrh r1, [r0, #4] + movs r0, #0xd0 + lsls r0, r0, #5 + cmp r1, r0 + bne _081BE32C + movs r0, #0xa7 + lsls r0, r0, #1 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _081BE32E + .align 2, 0 +_081BE328: .4byte 0x03005AEC +_081BE32C: + movs r0, #0 +_081BE32E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsMirageTowerVisible + + thumb_func_start UpdateMirageTowerPulseBlend +UpdateMirageTowerPulseBlend: @ 0x081BE334 + push {lr} + ldr r0, _081BE344 + ldr r0, [r0] + adds r0, #4 + bl UpdatePulseBlend + pop {r0} + bx r0 + .align 2, 0 +_081BE344: .4byte 0x0203CBE4 + thumb_func_end UpdateMirageTowerPulseBlend + + thumb_func_start ClearMirageTowerPulseBlend +ClearMirageTowerPulseBlend: @ 0x081BE348 + ldr r1, _081BE350 + movs r0, #0 + str r0, [r1] + bx lr + .align 2, 0 +_081BE350: .4byte 0x0203CBE4 + thumb_func_end ClearMirageTowerPulseBlend + + thumb_func_start TryStartMirageTowerPulseBlendEffect +TryStartMirageTowerPulseBlendEffect: @ 0x081BE354 + push {r4, lr} + ldr r4, _081BE364 + ldr r0, [r4] + cmp r0, #0 + beq _081BE368 + movs r0, #0 + str r0, [r4] + b _081BE3B4 + .align 2, 0 +_081BE364: .4byte 0x0203CBE4 +_081BE368: + ldr r0, _081BE3BC + ldr r0, [r0] + ldrh r1, [r0, #4] + movs r0, #0xd0 + lsls r0, r0, #5 + cmp r1, r0 + bne _081BE3B4 + movs r0, #0xa7 + lsls r0, r0, #1 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081BE3B4 + movs r0, #0xc8 + bl AllocZeroed + str r0, [r4] + adds r0, #4 + bl InitPulseBlend + ldr r0, [r4] + adds r0, #4 + ldr r1, _081BE3C0 + bl InitPulseBlendPaletteSettings + ldr r0, [r4] + adds r0, #4 + movs r1, #1 + movs r2, #1 + bl MarkUsedPulseBlendPalettes + ldr r0, _081BE3C4 + movs r1, #0xff + bl CreateTask + ldr r1, [r4] + strb r0, [r1] +_081BE3B4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081BE3BC: .4byte 0x03005AEC +_081BE3C0: .4byte 0x085E7FD4 +_081BE3C4: .4byte 0x081BE335 + thumb_func_end TryStartMirageTowerPulseBlendEffect + + thumb_func_start ClearMirageTowerPulseBlendEffect +ClearMirageTowerPulseBlendEffect: @ 0x081BE3C8 + push {r4, lr} + ldr r0, _081BE42C + ldr r0, [r0] + ldrh r1, [r0, #4] + movs r0, #0xd0 + lsls r0, r0, #5 + cmp r1, r0 + bne _081BE424 + movs r0, #0xa7 + lsls r0, r0, #1 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081BE424 + ldr r4, _081BE430 + ldr r0, [r4] + cmp r0, #0 + beq _081BE424 + ldr r0, _081BE434 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081BE402 + ldr r0, [r4] + ldrb r0, [r0] + bl DestroyTask +_081BE402: + ldr r0, [r4] + adds r0, #4 + movs r1, #1 + movs r2, #1 + bl UnmarkUsedPulseBlendPalettes + ldr r0, [r4] + adds r0, #4 + movs r1, #1 + movs r2, #1 + bl UnloadUsedPulseBlendPalettes + ldr r0, [r4] + bl Free + movs r0, #0 + str r0, [r4] +_081BE424: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081BE42C: .4byte 0x03005AEC +_081BE430: .4byte 0x0203CBE4 +_081BE434: .4byte 0x081BE335 + thumb_func_end ClearMirageTowerPulseBlendEffect + + thumb_func_start SetMirageTowerVisibility +SetMirageTowerVisibility: @ 0x081BE438 + push {r4, lr} + ldr r0, _081BE450 + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + beq _081BE454 + movs r0, #0xa7 + lsls r0, r0, #1 + bl FlagClear + b _081BE48A + .align 2, 0 +_081BE450: .4byte 0x000040CB +_081BE454: + bl Random + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r0, #1 + ands r4, r0 + movs r0, #0x9d + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081BE470 + movs r4, #1 +_081BE470: + cmp r4, #0 + beq _081BE482 + movs r0, #0xa7 + lsls r0, r0, #1 + bl FlagSet + bl TryStartMirageTowerPulseBlendEffect + b _081BE48A +_081BE482: + movs r0, #0xa7 + lsls r0, r0, #1 + bl FlagClear +_081BE48A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end SetMirageTowerVisibility + + thumb_func_start StartPlayerDescendMirageTower +StartPlayerDescendMirageTower: @ 0x081BE490 + push {lr} + ldr r0, _081BE4A0 + movs r1, #8 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_081BE4A0: .4byte 0x081BE4A5 + thumb_func_end StartPlayerDescendMirageTower + + thumb_func_start PlayerDescendMirageTower +PlayerDescendMirageTower: @ 0x081BE4A4 + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _081BE528 + ldr r0, [r0] + ldrb r1, [r0, #5] + ldrb r2, [r0, #4] + movs r0, #0x2d + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + mov r0, sp + ldrb r0, [r0] + lsls r2, r0, #3 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r4, _081BE52C + adds r2, r2, r4 + ldr r3, _081BE530 + ldrb r1, [r2, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r0, #0x26] + adds r1, #4 + strh r1, [r0, #0x26] + ldr r0, _081BE534 + ldrb r0, [r0, #5] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r2, [r2, #4] + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r4, #0x22 + ldrsh r2, [r0, r4] + movs r4, #0x26 + ldrsh r0, [r0, r4] + adds r2, r2, r0 + ldrb r1, [r1, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r3, #0x22 + ldrsh r1, [r0, r3] + movs r4, #0x26 + ldrsh r0, [r0, r4] + adds r1, r1, r0 + cmp r2, r1 + blt _081BE51E + adds r0, r5, #0 + bl DestroyTask + bl EnableBothScriptContexts +_081BE51E: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081BE528: .4byte 0x03005AEC +_081BE52C: .4byte 0x02036FF0 +_081BE530: .4byte 0x020205AC +_081BE534: .4byte 0x02037230 + thumb_func_end PlayerDescendMirageTower + + thumb_func_start StartScreenShake +StartScreenShake: @ 0x081BE538 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + mov r8, r0 + adds r4, r1, #0 + adds r5, r2, #0 + adds r6, r3, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + ldr r0, _081BE594 + movs r1, #9 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _081BE598 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r0, #0 + strh r4, [r1, #8] + strh r0, [r1, #0xa] + strh r5, [r1, #0xc] + strh r6, [r1, #0xe] + mov r0, r8 + strh r0, [r1, #0x10] + movs r0, #0 + bl SetCameraPanningCallback + movs r0, #0xd6 + bl PlaySE + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081BE594: .4byte 0x081BE59D +_081BE598: .4byte 0x03005B60 + thumb_func_end StartScreenShake + + thumb_func_start DoScreenShake +DoScreenShake: @ 0x081BE59C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _081BE600 + adds r4, r0, r1 + ldrh r0, [r4, #2] + adds r0, #1 + strh r0, [r4, #2] + movs r1, #2 + ldrsh r0, [r4, r1] + movs r2, #6 + ldrsh r1, [r4, r2] + bl __modsi3 + cmp r0, #0 + bne _081BE5F8 + strh r0, [r4, #2] + ldrh r0, [r4, #4] + subs r0, #1 + strh r0, [r4, #4] + ldrh r0, [r4] + rsbs r0, r0, #0 + strh r0, [r4] + ldrh r0, [r4, #8] + rsbs r0, r0, #0 + strh r0, [r4, #8] + movs r1, #0 + ldrsh r0, [r4, r1] + movs r2, #8 + ldrsh r1, [r4, r2] + bl SetCameraPanning + movs r1, #4 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _081BE5F8 + bl IncrementCeilingCrumbleFinishedCount + adds r0, r5, #0 + bl DestroyTask + bl InstallCameraPanAheadCallback +_081BE5F8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081BE600: .4byte 0x03005B68 + thumb_func_end DoScreenShake + + thumb_func_start IncrementCeilingCrumbleFinishedCount +IncrementCeilingCrumbleFinishedCount: @ 0x081BE604 + push {lr} + ldr r0, _081BE628 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xff + beq _081BE624 + ldr r0, _081BE62C + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] +_081BE624: + pop {r0} + bx r0 + .align 2, 0 +_081BE628: .4byte 0x081BE65D +_081BE62C: .4byte 0x03005B60 + thumb_func_end IncrementCeilingCrumbleFinishedCount + + thumb_func_start DoMirageTowerCeilingCrumble +DoMirageTowerCeilingCrumble: @ 0x081BE630 + push {lr} + ldr r0, _081BE654 + bl LoadSpriteSheets + bl CreateCeilingCrumbleSprites + ldr r0, _081BE658 + movs r1, #8 + bl CreateTask + movs r0, #2 + movs r1, #1 + movs r2, #0x10 + movs r3, #3 + bl StartScreenShake + pop {r0} + bx r0 + .align 2, 0 +_081BE654: .4byte 0x085E7F50 +_081BE658: .4byte 0x081BE65D + thumb_func_end DoMirageTowerCeilingCrumble + + thumb_func_start WaitCeilingCrumble +WaitCeilingCrumble: @ 0x081BE65C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r3, r1, #3 + ldr r4, _081BE694 + adds r2, r3, r4 + ldrh r0, [r2, #2] + adds r0, #1 + strh r0, [r2, #2] + lsls r0, r0, #0x10 + movs r1, #0xfa + lsls r1, r1, #0x12 + cmp r0, r1 + beq _081BE682 + ldrh r0, [r2] + cmp r0, #0x11 + bne _081BE68C +_081BE682: + adds r0, r4, #0 + subs r0, #8 + adds r0, r3, r0 + ldr r1, _081BE698 + str r1, [r0] +_081BE68C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081BE694: .4byte 0x03005B68 +_081BE698: .4byte 0x081BE69D + thumb_func_end WaitCeilingCrumble + + thumb_func_start FinishCeilingCrumbleTask +FinishCeilingCrumbleTask: @ 0x081BE69C + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0xfa + lsls r0, r0, #4 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl DestroyTask + bl EnableBothScriptContexts + pop {r4} + pop {r0} + bx r0 + thumb_func_end FinishCeilingCrumbleTask + + thumb_func_start CreateCeilingCrumbleSprites +CreateCeilingCrumbleSprites: @ 0x081BE6BC + push {r4, r5, r6, r7, lr} + movs r4, #0 + ldr r5, _081BE764 + adds r7, r5, #2 + ldr r6, _081BE768 +_081BE6C6: + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #1 + adds r1, r0, r5 + ldrh r1, [r1] + adds r1, #0x78 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r0, r0, r7 + movs r3, #0 + ldrsh r2, [r0, r3] + ldr r0, _081BE76C + movs r3, #8 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r2, [r0, #5] + movs r3, #0xd + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r2, r1 + movs r1, #0xf + ands r2, r1 + strb r2, [r0, #5] + strh r4, [r0, #0x2e] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #7 + bls _081BE6C6 + movs r4, #0 + ldr r5, _081BE764 + adds r7, r5, #2 + ldr r6, _081BE768 +_081BE714: + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #1 + adds r1, r0, r5 + ldrh r1, [r1] + adds r1, #0x73 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r0, r0, r7 + ldrh r2, [r0] + subs r2, #3 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + ldr r0, _081BE770 + movs r3, #8 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r2, [r0, #5] + movs r3, #0xd + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r2, r1 + movs r1, #0xf + ands r2, r1 + strb r2, [r0, #5] + strh r4, [r0, #0x2e] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #7 + bls _081BE714 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081BE764: .4byte 0x085E7F20 +_081BE768: .4byte 0x020205AC +_081BE76C: .4byte 0x085E801C +_081BE770: .4byte 0x085E7FF0 + thumb_func_end CreateCeilingCrumbleSprites + + thumb_func_start MoveCeilingCrumbleSprite +MoveCeilingCrumbleSprite: @ 0x081BE774 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x30] + adds r0, #2 + strh r0, [r4, #0x30] + movs r1, #0x30 + ldrsh r0, [r4, r1] + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + strh r0, [r4, #0x26] + movs r0, #0x22 + ldrsh r3, [r4, r0] + movs r1, #0x26 + ldrsh r0, [r4, r1] + adds r3, r3, r0 + ldr r2, _081BE7BC + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r2, #4 + adds r0, r0, r2 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r3, r0 + ble _081BE7B6 + adds r0, r4, #0 + bl DestroySprite + bl IncrementCeilingCrumbleFinishedCount +_081BE7B6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081BE7BC: .4byte 0x085E7F20 + thumb_func_end MoveCeilingCrumbleSprite + + thumb_func_start SetInvisibleMirageTowerMetatiles +SetInvisibleMirageTowerMetatiles: @ 0x081BE7C0 + push {r4, r5, lr} + movs r4, #0 + ldr r5, _081BE7EC +_081BE7C6: + lsls r2, r4, #2 + adds r2, r2, r5 + ldrb r0, [r2] + adds r0, #7 + ldrb r1, [r2, #1] + adds r1, #7 + ldrh r2, [r2, #2] + bl MapGridSetMetatileIdAt + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x11 + bls _081BE7C6 + bl DrawWholeMapView + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081BE7EC: .4byte 0x085E7F60 + thumb_func_end SetInvisibleMirageTowerMetatiles + + thumb_func_start StartMirageTowerDisintegration +StartMirageTowerDisintegration: @ 0x081BE7F0 + push {lr} + ldr r0, _081BE800 + movs r1, #9 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_081BE800: .4byte 0x081BE9ED + thumb_func_end StartMirageTowerDisintegration + + thumb_func_start StartMirageTowerFossilFallAndSink +StartMirageTowerFossilFallAndSink: @ 0x081BE804 + push {lr} + ldr r0, _081BE814 + movs r1, #9 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_081BE814: .4byte 0x081BE891 + thumb_func_end StartMirageTowerFossilFallAndSink + + thumb_func_start StartMirageTowerShake +StartMirageTowerShake: @ 0x081BE818 + push {lr} + ldr r0, _081BE828 + movs r1, #9 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_081BE828: .4byte 0x081BECC5 + thumb_func_end StartMirageTowerShake + + thumb_func_start SetBgShakeOffsets +SetBgShakeOffsets: @ 0x081BE82C + push {r4, lr} + ldr r4, _081BE84C + ldr r0, [r4] + ldrh r1, [r0] + movs r0, #0x10 + bl SetGpuReg + ldr r0, [r4] + ldrh r1, [r0, #2] + movs r0, #0x12 + bl SetGpuReg + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081BE84C: .4byte 0x0203CBE0 + thumb_func_end SetBgShakeOffsets + + thumb_func_start UpdateBgShake +UpdateBgShake: @ 0x081BE850 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _081BE880 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r2, r1, r2 + ldrh r1, [r2, #8] + movs r3, #8 + ldrsh r0, [r2, r3] + cmp r0, #0 + bne _081BE888 + ldr r0, _081BE884 + ldr r1, [r0] + ldrh r0, [r1] + rsbs r0, r0, #0 + strh r0, [r1] + movs r0, #2 + strh r0, [r2, #8] + bl SetBgShakeOffsets + b _081BE88C + .align 2, 0 +_081BE880: .4byte 0x03005B60 +_081BE884: .4byte 0x0203CBE0 +_081BE888: + subs r0, r1, #1 + strh r0, [r2, #8] +_081BE88C: + pop {r0} + bx r0 + thumb_func_end UpdateBgShake + + thumb_func_start InitMirageTowerShake +InitMirageTowerShake: @ 0x081BE890 + push {r4, r5, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _081BE8B8 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #8 + ldrsh r0, [r0, r1] + cmp r0, #6 + bls _081BE8AC + b _081BE9DC +_081BE8AC: + lsls r0, r0, #2 + ldr r1, _081BE8BC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081BE8B8: .4byte 0x03005B60 +_081BE8BC: .4byte 0x081BE8C0 +_081BE8C0: @ jump table + .4byte _081BE8DC @ case 0 + .4byte _081BE8EC @ case 1 + .4byte _081BE924 @ case 2 + .4byte _081BE94C @ case 3 + .4byte _081BE994 @ case 4 + .4byte _081BE99C @ case 5 + .4byte _081BE9B8 @ case 6 +_081BE8DC: + bl FreeAllWindowBuffers + movs r0, #0 + movs r1, #7 + movs r2, #2 + bl SetBgAttribute + b _081BE9A0 +_081BE8EC: + ldr r4, _081BE91C + movs r0, #0x92 + lsls r0, r0, #4 + bl AllocZeroed + str r0, [r4] + ldr r4, _081BE920 + movs r0, #0x80 + lsls r0, r0, #4 + bl AllocZeroed + str r0, [r4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + b _081BE974 + .align 2, 0 +_081BE91C: .4byte 0x0203CBD0 +_081BE920: .4byte 0x0203CBD4 +_081BE924: + ldr r0, _081BE944 + ldr r4, _081BE948 + ldr r1, [r4] + movs r2, #0x92 + lsls r2, r2, #3 + bl CpuSet + ldr r1, [r4] + movs r2, #0x92 + lsls r2, r2, #4 + movs r0, #0 + movs r3, #0 + bl LoadBgTiles + b _081BE974 + .align 2, 0 +_081BE944: .4byte 0x085E7430 +_081BE948: .4byte 0x0203CBD0 +_081BE94C: + ldr r0, _081BE988 + ldr r1, [r0] + movs r0, #0 + bl SetBgTilemapBuffer + ldr r1, _081BE98C + movs r0, #6 + str r0, [sp] + movs r0, #0xc + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #0 + movs r2, #0xc + movs r3, #0x1d + bl CopyToBgTilemapBufferRect_ChangePalette + movs r0, #0 + bl CopyBgTilemapBufferToVram +_081BE974: + ldr r1, _081BE990 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #8] + adds r1, #1 + strh r1, [r0, #8] + b _081BE9DC + .align 2, 0 +_081BE988: .4byte 0x0203CBD4 +_081BE98C: .4byte 0x085E7D50 +_081BE990: .4byte 0x03005B60 +_081BE994: + movs r0, #0 + bl ShowBg + b _081BE9A0 +_081BE99C: + bl SetInvisibleMirageTowerMetatiles +_081BE9A0: + ldr r0, _081BE9B4 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _081BE9DC + .align 2, 0 +_081BE9B4: .4byte 0x03005B60 +_081BE9B8: + ldr r4, _081BE9E4 + movs r0, #4 + bl Alloc + str r0, [r4] + movs r2, #0 + movs r1, #2 + strh r1, [r0] + strh r2, [r0, #2] + ldr r0, _081BE9E8 + movs r1, #0xa + bl CreateTask + adds r0, r5, #0 + bl DestroyTask + bl EnableBothScriptContexts +_081BE9DC: + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081BE9E4: .4byte 0x0203CBE0 +_081BE9E8: .4byte 0x081BE851 + thumb_func_end InitMirageTowerShake + + thumb_func_start DoMirageTowerDisintegration +DoMirageTowerDisintegration: @ 0x081BE9EC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + ldr r1, _081BEA24 + lsls r0, r0, #2 + add r0, sl + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r0, [r0, #8] + subs r0, #1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r6, r1, #0 + cmp r0, #7 + bls _081BEA18 + b _081BEC9E +_081BEA18: + lsls r0, r0, #2 + ldr r1, _081BEA28 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081BEA24: .4byte 0x03005B60 +_081BEA28: .4byte 0x081BEA2C +_081BEA2C: @ jump table + .4byte _081BEA4C @ case 0 + .4byte _081BEC9E @ case 1 + .4byte _081BEA60 @ case 2 + .4byte _081BEC00 @ case 3 + .4byte _081BEC30 @ case 4 + .4byte _081BEC6C @ case 5 + .4byte _081BEC8C @ case 6 + .4byte _081BEC94 @ case 7 +_081BEA4C: + ldr r4, _081BEA5C + movs r0, #0xc0 + lsls r0, r0, #2 + bl AllocZeroed + str r0, [r4] + b _081BEC9E + .align 2, 0 +_081BEA5C: .4byte 0x0203CBDC +_081BEA60: + mov r1, sl + lsls r0, r1, #2 + adds r1, r0, r1 + lsls r1, r1, #3 + adds r2, r1, r6 + ldrh r3, [r2, #0xe] + movs r4, #0xe + ldrsh r1, [r2, r4] + str r0, [sp, #8] + cmp r1, #0x5f + bgt _081BEB26 + movs r1, #0xa + ldrsh r0, [r2, r1] + cmp r0, #1 + ble _081BEB18 + lsls r0, r3, #0x18 + lsrs r4, r0, #0x18 + movs r0, #0x30 + bl Alloc + ldr r3, _081BEBF0 + ldr r1, [r3] + lsls r2, r4, #3 + adds r1, r2, r1 + str r0, [r1] + movs r5, #0 + adds r4, r2, #0 +_081BEA96: + ldr r0, [r3] + adds r0, r4, r0 + ldr r0, [r0] + adds r0, r0, r5 + strb r5, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0x2f + bls _081BEA96 + movs r5, #0 + ldr r7, _081BEBF0 + adds r6, r2, #0 +_081BEAB0: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x30 + bl __umodsi3 + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x30 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, [r7] + adds r1, r6, r1 + ldr r1, [r1] + adds r0, r1, r0 + ldrb r2, [r0] + adds r1, r1, r4 + ldrb r1, [r1] + strb r1, [r0] + ldr r0, [r7] + adds r0, r6, r0 + ldr r0, [r0] + adds r0, r0, r4 + strb r2, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0x2f + bls _081BEAB0 + ldr r0, _081BEBF4 + ldr r1, [sp, #8] + add r1, sl + lsls r1, r1, #3 + adds r2, r1, r0 + ldrh r3, [r2, #0xe] + movs r4, #0xe + ldrsh r1, [r2, r4] + adds r6, r0, #0 + cmp r1, #0x5f + bgt _081BEB14 + adds r0, r3, #1 + strh r0, [r2, #0xe] +_081BEB14: + movs r0, #0 + strh r0, [r2, #0xa] +_081BEB18: + ldr r1, [sp, #8] + add r1, sl + lsls r1, r1, #3 + adds r1, r1, r6 + ldrh r0, [r1, #0xa] + adds r0, #1 + strh r0, [r1, #0xa] +_081BEB26: + ldr r0, [sp, #8] + add r0, sl + lsls r0, r0, #3 + adds r0, r0, r6 + ldrb r4, [r0, #0xe] + ldrb r5, [r0, #0xc] + lsls r0, r4, #0x10 + cmp r5, r4 + bhs _081BEBCE + str r0, [sp, #0xc] +_081BEB3A: + movs r6, #0 + adds r0, r5, #1 + str r0, [sp, #4] + lsls r4, r5, #3 + movs r2, #0x5f + subs r1, r2, r5 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #4 + mov sb, r0 +_081BEB4E: + ldr r0, _081BEBF8 + ldr r0, [r0] + ldr r7, _081BEBF0 + ldr r3, [r7] + adds r3, r4, r3 + ldrb r2, [r3, #4] + adds r1, r2, #1 + strb r1, [r3, #4] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r1, [r3] + adds r1, r1, r2 + ldrb r1, [r1] + add r1, sb + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r2, #1 + mov r8, r2 + str r2, [sp] + movs r2, #0 + movs r3, #0x30 + bl CB2_InitBerryFixProgram + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + beq _081BEB4E + ldr r0, [r7] + adds r1, r4, r0 + ldrb r0, [r1, #4] + cmp r0, #0x2f + bls _081BEBC0 + ldr r0, [r1] + bl Free + ldr r0, [r7] + adds r0, r4, r0 + movs r1, #0 + str r1, [r0] + ldr r1, [sp, #8] + add r1, sl + lsls r1, r1, #3 + ldr r4, _081BEBF4 + adds r1, r1, r4 + ldrh r0, [r1, #0xc] + adds r0, #1 + strh r0, [r1, #0xc] + mov r0, r8 + ands r5, r0 + cmp r5, #1 + bne _081BEBC0 + ldr r0, _081BEBFC + ldr r1, [r0] + ldrh r0, [r1, #2] + subs r0, #1 + strh r0, [r1, #2] +_081BEBC0: + ldr r1, [sp, #4] + lsls r0, r1, #0x10 + lsrs r5, r0, #0x10 + ldr r2, [sp, #0xc] + lsrs r0, r2, #0x10 + cmp r5, r0 + blo _081BEB3A +_081BEBCE: + ldr r0, _081BEBF8 + ldr r1, [r0] + movs r2, #0x92 + lsls r2, r2, #4 + movs r0, #0 + movs r3, #0 + bl LoadBgTiles + ldr r0, _081BEBF0 + ldr r0, [r0] + movs r4, #0xbe + lsls r4, r4, #2 + adds r0, r0, r4 + ldrb r0, [r0, #4] + cmp r0, #0x2f + bhi _081BEC9E + b _081BECB0 + .align 2, 0 +_081BEBF0: .4byte 0x0203CBDC +_081BEBF4: .4byte 0x03005B60 +_081BEBF8: .4byte 0x0203CBD0 +_081BEBFC: .4byte 0x0203CBE0 +_081BEC00: + movs r0, #0 + bl UnsetBgTilemapBuffer + ldr r0, _081BEC28 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _081BEC18 + bl DestroyTask +_081BEC18: + ldr r0, _081BEC2C + ldr r1, [r0] + movs r0, #0 + strh r0, [r1] + strh r0, [r1, #2] + bl SetBgShakeOffsets + b _081BEC9E + .align 2, 0 +_081BEC28: .4byte 0x081BE851 +_081BEC2C: .4byte 0x0203CBE0 +_081BEC30: + ldr r4, _081BEC5C + ldr r0, [r4] + bl Free + movs r5, #0 + str r5, [r4] + ldr r4, _081BEC60 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _081BEC64 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _081BEC68 + ldr r0, [r4] + bl Free + str r5, [r4] + b _081BEC9E + .align 2, 0 +_081BEC5C: .4byte 0x0203CBE0 +_081BEC60: .4byte 0x0203CBDC +_081BEC64: .4byte 0x0203CBD0 +_081BEC68: .4byte 0x0203CBD4 +_081BEC6C: + movs r0, #0xc + movs r1, #2 + bl SetGpuRegBits + movs r0, #8 + movs r1, #0 + bl SetGpuRegBits + movs r0, #0 + movs r1, #7 + movs r2, #0 + bl SetBgAttribute + bl InitStandardTextBoxWindows + b _081BEC9E +_081BEC8C: + movs r0, #0 + bl ShowBg + b _081BEC9E +_081BEC94: + mov r0, sl + bl DestroyTask + bl EnableBothScriptContexts +_081BEC9E: + ldr r0, _081BECC0 + mov r2, sl + lsls r1, r2, #2 + add r1, sl + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] +_081BECB0: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081BECC0: .4byte 0x03005B60 + thumb_func_end DoMirageTowerDisintegration + + thumb_func_start DoFossilFallAndSink +DoFossilFallAndSink: @ 0x081BECC4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x18 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r1, _081BECF4 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r0, [r0, #8] + subs r0, #1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + bls _081BECE8 + b _081BEEC4 +_081BECE8: + lsls r0, r0, #2 + ldr r1, _081BECF8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081BECF4: .4byte 0x03005B60 +_081BECF8: .4byte 0x081BECFC +_081BECFC: @ jump table + .4byte _081BED1C @ case 0 + .4byte _081BED50 @ case 1 + .4byte _081BED78 @ case 2 + .4byte _081BED8C @ case 3 + .4byte _081BEDE4 @ case 4 + .4byte _081BEE0C @ case 5 + .4byte _081BEE68 @ case 6 + .4byte _081BEEC0 @ case 7 +_081BED1C: + ldr r4, _081BED4C + movs r0, #0x14 + bl AllocZeroed + str r0, [r4] + movs r0, #0x80 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1] + movs r0, #8 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1, #4] + movs r0, #0x80 + lsls r0, r0, #2 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1, #0xc] + movs r0, #0 + strh r0, [r1, #0x10] + b _081BEEC4 + .align 2, 0 +_081BED4C: .4byte 0x0203CBD8 +_081BED50: + ldr r0, _081BED70 + ldr r0, [r0] + ldr r1, [r0] + movs r5, #0 + ldr r2, _081BED74 +_081BED5A: + adds r0, r5, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r1, #1 + cmp r5, #0x7f + bls _081BED5A + b _081BEEC4 + .align 2, 0 +_081BED70: .4byte 0x0203CBD8 +_081BED74: .4byte 0x085E7E00 +_081BED78: + ldr r0, _081BED88 + ldr r0, [r0] + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [r1] + movs r0, #0x80 + strh r0, [r1, #4] + b _081BEEC4 + .align 2, 0 +_081BED88: .4byte 0x0203CBD8 +_081BED8C: + mov r1, sp + ldr r0, _081BEE00 + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldr r4, _081BEE04 + ldr r0, [r4] + ldr r0, [r0, #4] + str r0, [sp, #0xc] + movs r2, #0x10 + rsbs r2, r2, #0 + mov r0, sp + movs r1, #0x80 + movs r3, #1 + bl CreateSprite + ldr r1, [r4] + movs r3, #0 + strb r0, [r1, #8] + ldr r2, _081BEE08 + ldr r0, [r4] + ldrb r1, [r0, #8] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x28 + strb r3, [r0] + ldr r3, [r4] + ldrb r1, [r3, #8] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x20] + strh r1, [r0, #0x2e] + ldrb r1, [r3, #8] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #1 + strh r1, [r0, #0x30] +_081BEDE4: + movs r5, #0 + ldr r2, _081BEE04 +_081BEDE8: + ldr r0, [r2] + ldr r1, [r0, #0xc] + lsls r0, r5, #1 + adds r0, r0, r1 + strh r5, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0xff + bls _081BEDE8 + b _081BEEC4 + .align 2, 0 +_081BEE00: .4byte 0x085E7FBC +_081BEE04: .4byte 0x0203CBD8 +_081BEE08: .4byte 0x020205AC +_081BEE0C: + movs r5, #0 + movs r6, #0xff + ldr r0, _081BEE58 + mov r8, r0 +_081BEE14: + bl Random + adds r4, r6, #0 + ands r4, r0 + bl Random + adds r1, r6, #0 + ands r1, r0 + ldr r0, _081BEE5C + ldr r3, [r0] + ldr r0, [r3, #0xc] + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r2, [r1] + lsls r4, r4, #1 + adds r4, r4, r0 + ldrh r0, [r4] + strh r0, [r1] + strh r2, [r4] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, r8 + bls _081BEE14 + ldr r2, _081BEE60 + ldrb r1, [r3, #8] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, _081BEE64 + str r1, [r0] + b _081BEEC4 + .align 2, 0 +_081BEE58: .4byte 0x000001FF +_081BEE5C: .4byte 0x0203CBD8 +_081BEE60: .4byte 0x020205AC +_081BEE64: .4byte 0x081BEEE5 +_081BEE68: + ldr r3, _081BEEB4 + ldr r5, _081BEEB8 + ldr r0, [r5] + ldrb r1, [r0, #8] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r2, r0, #2 + adds r0, r3, #0 + adds r0, #0x1c + adds r0, r2, r0 + ldr r1, [r0] + ldr r0, _081BEEBC + cmp r1, r0 + bne _081BEED4 + adds r0, r2, r3 + bl DestroySprite + ldr r0, [r5] + ldr r0, [r0, #0xc] + bl Free + ldr r0, [r5] + movs r4, #0 + str r4, [r0, #0xc] + ldr r0, [r0, #4] + bl Free + ldr r0, [r5] + str r4, [r0, #4] + ldr r0, [r0] + bl Free + ldr r0, [r5] + str r4, [r0] + bl Free + str r4, [r5] + b _081BEEC4 + .align 2, 0 +_081BEEB4: .4byte 0x020205AC +_081BEEB8: .4byte 0x0203CBD8 +_081BEEBC: .4byte 0x08007141 +_081BEEC0: + bl EnableBothScriptContexts +_081BEEC4: + ldr r0, _081BEEE0 + lsls r1, r7, #2 + adds r1, r1, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] +_081BEED4: + add sp, #0x18 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081BEEE0: .4byte 0x03005B60 + thumb_func_end DoFossilFallAndSink + diff --git a/asm/mon_markings.s b/asm/mon_markings.s new file mode 100644 index 0000000..a483d91 --- /dev/null +++ b/asm/mon_markings.s @@ -0,0 +1,986 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_0811FE38 +sub_0811FE38: @ 0x0811FE38 + push {lr} + sub sp, #4 + ldr r0, _0811FE70 + ldr r0, [r0] + ldrb r0, [r0, #0x14] + lsrs r0, r0, #3 + bl GetWindowFrameTilesPal + ldr r3, _0811FE74 + ldr r2, [r3] + ldr r1, [r0] + str r1, [r2, #0x2c] + ldr r0, [r0, #4] + str r0, [r2, #0x30] + ldr r0, _0811FE78 + adds r2, r2, r0 + movs r1, #0 + strb r1, [r2] + mov r0, sp + strh r1, [r0] + ldr r1, [r3] + adds r1, #0x34 + ldr r2, _0811FE7C + bl CpuSet + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_0811FE70: .4byte 0x03005AF0 +_0811FE74: .4byte 0x02039DF0 +_0811FE78: .4byte 0x000010B4 +_0811FE7C: .4byte 0x01000800 + thumb_func_end sub_0811FE38 + + thumb_func_start sub_0811FE80 +sub_0811FE80: @ 0x0811FE80 + push {r4, r5, r6, r7, lr} + ldr r0, _0811FEA0 + ldr r1, [r0] + ldr r2, _0811FEA4 + adds r0, r1, r2 + ldrb r2, [r0] + lsls r0, r2, #8 + adds r0, #0x34 + adds r5, r1, r0 + cmp r2, #0xd + beq _0811FF50 + cmp r2, #0xd + bgt _0811FEA8 + cmp r2, #0 + beq _0811FEAE + b _0811FEF8 + .align 2, 0 +_0811FEA0: .4byte 0x02039DF0 +_0811FEA4: .4byte 0x000010B4 +_0811FEA8: + cmp r2, #0xe + beq _0811FF9C + b _0811FEF8 +_0811FEAE: + ldr r0, [r1, #0x2c] + adds r1, r5, #0 + movs r2, #8 + bl CpuFastSet + movs r4, #0 + adds r7, r5, #0 + adds r7, #0xe0 +_0811FEBE: + ldr r6, _0811FEF0 + ldr r0, [r6] + ldr r0, [r0, #0x2c] + adds r0, #0x20 + adds r4, #1 + lsls r1, r4, #5 + adds r1, r5, r1 + movs r2, #8 + bl CpuFastSet + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + cmp r4, #5 + bls _0811FEBE + ldr r0, [r6] + ldr r0, [r0, #0x2c] + adds r0, #0x40 + adds r1, r7, #0 + movs r2, #8 + bl CpuFastSet + ldr r1, [r6] + ldr r0, _0811FEF4 + adds r1, r1, r0 + b _0811FF3E + .align 2, 0 +_0811FEF0: .4byte 0x02039DF0 +_0811FEF4: .4byte 0x000010B4 +_0811FEF8: + ldr r0, _0811FF48 + ldr r0, [r0] + ldr r0, [r0, #0x2c] + adds r0, #0x60 + adds r1, r5, #0 + movs r2, #8 + bl CpuFastSet + movs r4, #0 + adds r7, r5, #0 + adds r7, #0xe0 +_0811FF0E: + ldr r6, _0811FF48 + ldr r0, [r6] + ldr r0, [r0, #0x2c] + adds r0, #0x80 + adds r4, #1 + lsls r1, r4, #5 + adds r1, r5, r1 + movs r2, #8 + bl CpuFastSet + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + cmp r4, #5 + bls _0811FF0E + ldr r0, [r6] + ldr r0, [r0, #0x2c] + adds r0, #0xa0 + adds r1, r7, #0 + movs r2, #8 + bl CpuFastSet + ldr r1, [r6] + ldr r2, _0811FF4C + adds r1, r1, r2 +_0811FF3E: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0811FFA8 + .align 2, 0 +_0811FF48: .4byte 0x02039DF0 +_0811FF4C: .4byte 0x000010B4 +_0811FF50: + ldr r0, [r1, #0x2c] + adds r0, #0xc0 + adds r1, r5, #0 + movs r2, #8 + bl CpuFastSet + movs r4, #0 + adds r7, r5, #0 + adds r7, #0xe0 +_0811FF62: + ldr r6, _0811FFA0 + ldr r0, [r6] + ldr r0, [r0, #0x2c] + adds r0, #0xe0 + adds r4, #1 + lsls r1, r4, #5 + adds r1, r5, r1 + movs r2, #8 + bl CpuFastSet + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + cmp r4, #5 + bls _0811FF62 + ldr r0, [r6] + ldr r0, [r0, #0x2c] + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r0, r1 + adds r1, r7, #0 + movs r2, #8 + bl CpuFastSet + ldr r1, [r6] + ldr r2, _0811FFA4 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0811FF9C: + movs r0, #0 + b _0811FFAA + .align 2, 0 +_0811FFA0: .4byte 0x02039DF0 +_0811FFA4: .4byte 0x000010B4 +_0811FFA8: + movs r0, #1 +_0811FFAA: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_0811FE80 + + thumb_func_start sub_0811FFB0 +sub_0811FFB0: @ 0x0811FFB0 + push {lr} + bl sub_0811FE38 +_0811FFB6: + bl sub_0811FE80 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0811FFB6 + pop {r0} + bx r0 + thumb_func_end sub_0811FFB0 + + thumb_func_start sub_0811FFC4 +sub_0811FFC4: @ 0x0811FFC4 + push {r4, r5, r6, r7, lr} + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r6, r2, #0x10 + ldr r2, _08120014 + ldr r3, [r2] + movs r1, #0 + strb r1, [r3, #5] + ldr r1, [r2] + strb r0, [r1, #4] + movs r3, #0 + adds r7, r2, #0 + adds r4, r7, #0 + movs r2, #1 +_0811FFE2: + ldr r0, [r4] + adds r1, r0, #6 + adds r1, r1, r3 + ldrb r0, [r0, #4] + asrs r0, r3 + ands r0, r2 + strb r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #3 + bls _0811FFE2 + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + lsls r1, r6, #0x10 + asrs r1, r1, #0x10 + ldr r3, [r7] + ldrh r2, [r3] + ldrh r3, [r3, #2] + bl sub_081201A0 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08120014: .4byte 0x02039DF0 + thumb_func_end sub_0811FFC4 + + thumb_func_start sub_08120018 +sub_08120018: @ 0x08120018 + push {r4, r5, r6, r7, lr} + movs r5, #0 + ldr r4, _081200C0 +_0812001E: + ldr r0, [r4] + ldrh r0, [r0] + adds r0, r5, r0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl FreeSpriteTilesByTag + ldr r0, [r4] + ldrh r0, [r0, #2] + adds r0, r5, r0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl FreeSpritePaletteByTag + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #1 + bls _0812001E + movs r5, #0 + ldr r6, _081200C0 +_08120048: + ldr r0, [r6] + lsls r4, r5, #2 + adds r0, #0xc + adds r0, r0, r4 + ldr r0, [r0] + cmp r0, #0 + beq _081200BA + bl DestroySprite + ldr r0, [r6] + adds r0, #0xc + adds r0, r0, r4 + movs r1, #0 + str r1, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #1 + bls _08120048 + movs r5, #0 + ldr r6, _081200C0 +_08120072: + ldr r0, [r6] + lsls r4, r5, #2 + adds r0, #0x14 + adds r0, r0, r4 + ldr r0, [r0] + cmp r0, #0 + beq _081200BA + bl DestroySprite + ldr r0, [r6] + adds r0, #0x14 + adds r0, r0, r4 + movs r7, #0 + str r7, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #3 + bls _08120072 + ldr r4, _081200C0 + ldr r0, [r4] + ldr r0, [r0, #0x24] + cmp r0, #0 + beq _081200AA + bl DestroySprite + ldr r0, [r4] + str r7, [r0, #0x24] +_081200AA: + ldr r0, [r4] + ldr r0, [r0, #0x28] + cmp r0, #0 + beq _081200BA + bl DestroySprite + ldr r0, [r4] + str r7, [r0, #0x28] +_081200BA: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081200C0: .4byte 0x02039DF0 + thumb_func_end sub_08120018 + + thumb_func_start sub_081200C4 +sub_081200C4: @ 0x081200C4 + push {r4, r5, lr} + ldr r0, _081200F4 + ldrh r1, [r0, #0x2e] + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0 + beq _081200FC + movs r0, #5 + bl PlaySE + ldr r2, _081200F8 + ldr r1, [r2] + ldrb r0, [r1, #5] + subs r0, #1 + strb r0, [r1, #5] + lsls r0, r0, #0x18 + cmp r0, #0 + bge _08120184 + ldr r1, [r2] + movs r0, #5 + strb r0, [r1, #5] + b _08120184 + .align 2, 0 +_081200F4: .4byte 0x03002360 +_081200F8: .4byte 0x02039DF0 +_081200FC: + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0 + beq _0812012C + movs r0, #5 + bl PlaySE + ldr r2, _08120128 + ldr r1, [r2] + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #5 + ble _08120184 + ldr r0, [r2] + strb r5, [r0, #5] + b _08120184 + .align 2, 0 +_08120128: .4byte 0x02039DF0 +_0812012C: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08120188 + movs r0, #5 + bl PlaySE + ldr r2, _0812015C + ldr r0, [r2] + movs r1, #5 + ldrsb r1, [r0, r1] + cmp r1, #4 + beq _08120160 + cmp r1, #5 + beq _08120196 + adds r0, #6 + adds r1, r0, r1 + movs r2, #0 + ldrb r0, [r1] + cmp r0, #0 + bne _08120182 + movs r2, #1 + b _08120182 + .align 2, 0 +_0812015C: .4byte 0x02039DF0 +_08120160: + strb r4, [r0, #4] + movs r3, #0 + adds r4, r2, #0 +_08120166: + ldr r2, [r4] + adds r0, r2, #6 + adds r0, r0, r3 + ldrb r0, [r0] + lsls r0, r3 + ldrb r1, [r2, #4] + orrs r0, r1 + strb r0, [r2, #4] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #3 + bls _08120166 + b _08120196 +_08120182: + strb r2, [r1] +_08120184: + movs r0, #1 + b _08120198 +_08120188: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08120184 + movs r0, #5 + bl PlaySE +_08120196: + movs r0, #0 +_08120198: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081200C4 + + thumb_func_start sub_081201A0 +sub_081201A0: @ 0x081201A0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x50 + mov r8, r0 + mov sb, r1 + adds r5, r2, #0 + adds r6, r3, #0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sb, r1 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + ldr r4, _08120398 + ldr r0, [r4] + adds r0, #0x34 + str r0, [sp, #0x18] + add r1, sp, #0x1c + movs r7, #0 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r1] + mov r0, sp + adds r0, #0x1e + strh r5, [r0] + add r1, sp, #0x20 + ldr r0, _0812039C + str r0, [sp, #0x20] + movs r0, #0xc8 + lsls r0, r0, #2 + strh r0, [r1, #4] + adds r0, r5, #1 + strh r0, [r1, #6] + add r0, sp, #0x28 + movs r1, #0 + movs r2, #8 + bl memset + add r2, sp, #0x18 + mov sl, r2 + mov r0, sp + mov r1, sl + movs r2, #0x18 + bl memcpy + ldr r0, [r4] + ldr r0, [r0, #0x30] + str r0, [sp, #0x30] + add r0, sp, #0x34 + strh r6, [r0] + add r1, sp, #0x38 + ldr r0, _081203A0 + str r0, [sp, #0x38] + adds r0, r6, #1 + strh r0, [r1, #4] + add r0, sp, #0x40 + movs r1, #0 + movs r2, #8 + bl memset + add r4, sp, #0x30 + mov r0, sl + adds r1, r4, #0 + movs r2, #0x18 + bl memcpy + strh r5, [r4] + strh r6, [r4, #2] + ldr r0, _081203A4 + str r0, [r4, #4] + ldr r0, _081203A8 + str r0, [r4, #8] + str r7, [r4, #0xc] + ldr r0, _081203AC + str r0, [r4, #0x10] + ldr r0, _081203B0 + str r0, [r4, #0x14] + mov r0, sp + bl LoadSpriteSheets + mov r0, sl + bl LoadSpritePalettes + movs r5, #0 + mov r3, r8 + lsls r3, r3, #0x10 + mov r8, r3 + movs r0, #0x80 + lsls r0, r0, #0xe + add r0, r8 + mov sl, r0 + mov r1, r8 + str r1, [sp, #0x48] + mov r2, sb + lsls r2, r2, #0x10 + mov sb, r2 + movs r7, #0x80 + lsls r7, r7, #0xe + add r7, sb + mov r3, sb + str r3, [sp, #0x4c] +_08120278: + adds r0, r4, #0 + mov r2, sl + asrs r1, r2, #0x10 + asrs r2, r7, #0x10 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0x40 + bne _08120290 + b _0812041C +_08120290: + ldr r6, _08120398 + ldr r2, [r6] + lsls r0, r5, #2 + adds r2, #0xc + adds r2, r2, r0 + lsls r0, r3, #4 + adds r0, r0, r3 + lsls r0, r0, #2 + ldr r1, _081203B4 + adds r0, r0, r1 + str r0, [r2] + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + bl StartSpriteAnim + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #1 + bls _08120278 + ldr r0, [r6] + ldr r1, [r0, #0x10] + ldr r3, [sp, #0x4c] + asrs r0, r3, #0x10 + adds r0, #0x60 + strh r0, [r1, #0x22] + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + ldrh r0, [r4, #2] + adds r0, #1 + strh r0, [r4, #2] + ldr r0, _081203B8 + str r0, [r4, #8] + ldr r0, _081203BC + str r0, [r4, #0x14] + ldr r0, _081203C0 + str r0, [r4, #4] + movs r5, #0 + ldr r0, [sp, #0x48] + movs r1, #0x80 + lsls r1, r1, #0xe + adds r0, r0, r1 + mov sb, r0 +_081202E8: + lsls r2, r5, #4 + adds r2, #0x10 + ldr r3, [sp, #0x4c] + asrs r3, r3, #0x10 + mov r8, r3 + add r2, r8 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r0, r4, #0 + mov r3, sb + asrs r1, r3, #0x10 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0x40 + bne _0812030E + b _0812042C +_0812030E: + ldr r6, _08120398 + ldr r1, [r6] + lsls r0, r5, #2 + adds r1, #0x14 + adds r1, r1, r0 + lsls r0, r3, #4 + adds r0, r0, r3 + lsls r0, r0, #2 + ldr r7, _081203B4 + adds r0, r0, r7 + str r0, [r1] + strh r5, [r0, #0x2e] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #3 + bls _081202E8 + ldr r0, _081203C4 + str r0, [r4, #0x14] + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0x40 + beq _081203C8 + ldr r0, [r6] + lsls r1, r3, #4 + adds r1, r1, r3 + lsls r1, r1, #2 + adds r1, r1, r7 + str r1, [r0, #0x28] + ldrb r3, [r1, #1] + movs r2, #0x3f + adds r0, r2, #0 + ands r0, r3 + strb r0, [r1, #1] + ldr r0, [r6] + ldr r1, [r0, #0x28] + ldrb r0, [r1, #3] + ands r2, r0 + movs r0, #0x80 + orrs r2, r0 + strb r2, [r1, #3] + ldr r0, [r6] + ldr r0, [r0, #0x28] + movs r1, #9 + bl StartSpriteAnim + ldr r1, [r6] + ldr r2, [r1, #0x28] + ldr r3, [sp, #0x48] + asrs r0, r3, #0x10 + adds r0, #0x20 + strh r0, [r2, #0x20] + ldr r2, [r1, #0x28] + mov r0, r8 + adds r0, #0x50 + strh r0, [r2, #0x22] + ldr r0, [r1, #0x28] + movs r1, #1 + movs r2, #2 + movs r3, #0 + bl CalcCenterToCornerVec + b _081203CE + .align 2, 0 +_08120398: .4byte 0x02039DF0 +_0812039C: .4byte 0x08579F58 +_081203A0: .4byte 0x08579F38 +_081203A4: .4byte 0x0857AAA0 +_081203A8: .4byte 0x0857AB38 +_081203AC: .4byte 0x082BF310 +_081203B0: .4byte 0x0812045D +_081203B4: .4byte 0x020205AC +_081203B8: .4byte 0x0857AB00 +_081203BC: .4byte 0x08120461 +_081203C0: .4byte 0x0857AAA8 +_081203C4: .4byte 0x08007141 +_081203C8: + ldr r1, [r6] + movs r0, #0 + str r0, [r1, #0x28] +_081203CE: + ldr r0, _08120410 + str r0, [r4, #0x14] + ldr r0, [sp, #0x48] + movs r2, #0xc0 + lsls r2, r2, #0xc + adds r1, r0, r2 + asrs r1, r1, #0x10 + adds r0, r4, #0 + movs r2, #0 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0x40 + beq _08120440 + ldr r0, _08120414 + ldr r2, [r0] + lsls r1, r3, #4 + adds r1, r1, r3 + lsls r1, r1, #2 + ldr r0, _08120418 + adds r1, r1, r0 + str r1, [r2, #0x24] + ldr r3, [sp, #0x4c] + asrs r0, r3, #0x10 + adds r0, #0x10 + strh r0, [r1, #0x2e] + ldr r0, [r2, #0x24] + movs r1, #8 + bl StartSpriteAnim + b _08120448 + .align 2, 0 +_08120410: .4byte 0x0812049D +_08120414: .4byte 0x02039DF0 +_08120418: .4byte 0x020205AC +_0812041C: + ldr r0, _08120428 + ldr r0, [r0] + lsls r1, r5, #2 + adds r0, #0xc + b _08120434 + .align 2, 0 +_08120428: .4byte 0x02039DF0 +_0812042C: + ldr r0, _0812043C + ldr r0, [r0] + lsls r1, r5, #2 + adds r0, #0x14 +_08120434: + adds r0, r0, r1 + movs r1, #0 + str r1, [r0] + b _08120448 + .align 2, 0 +_0812043C: .4byte 0x02039DF0 +_08120440: + ldr r0, _08120458 + ldr r1, [r0] + movs r0, #0 + str r0, [r1, #0x24] +_08120448: + add sp, #0x50 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08120458: .4byte 0x02039DF0 + thumb_func_end sub_081201A0 + + thumb_func_start TaskDummy7 +TaskDummy7: @ 0x0812045C + bx lr + .align 2, 0 + thumb_func_end TaskDummy7 + + thumb_func_start sub_08120460 +sub_08120460: @ 0x08120460 + push {lr} + adds r2, r0, #0 + ldr r0, _08120488 + ldr r0, [r0] + movs r3, #0x2e + ldrsh r1, [r2, r3] + adds r0, #6 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _0812048C + lsls r1, r1, #1 + adds r1, #1 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r2, #0 + bl StartSpriteAnim + b _08120496 + .align 2, 0 +_08120488: .4byte 0x02039DF0 +_0812048C: + lsls r1, r1, #0x19 + lsrs r1, r1, #0x18 + adds r0, r2, #0 + bl StartSpriteAnim +_08120496: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08120460 + + thumb_func_start sub_0812049C +sub_0812049C: @ 0x0812049C + ldr r1, _081204B0 + ldr r1, [r1] + ldrb r1, [r1, #5] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + lsls r1, r1, #4 + ldrh r2, [r0, #0x2e] + adds r1, r1, r2 + strh r1, [r0, #0x22] + bx lr + .align 2, 0 +_081204B0: .4byte 0x02039DF0 + thumb_func_end sub_0812049C + + thumb_func_start sub_081204B4 +sub_081204B4: @ 0x081204B4 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + cmp r2, #0 + bne _081204C4 + ldr r2, _081204D0 +_081204C4: + movs r3, #0x10 + bl sub_081204F4 + pop {r1} + bx r1 + .align 2, 0 +_081204D0: .4byte 0x0857A278 + thumb_func_end sub_081204B4 + + thumb_func_start sub_081204D4 +sub_081204D4: @ 0x081204D4 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + cmp r2, #0 + bne _081204E4 + ldr r2, _081204F0 +_081204E4: + movs r3, #1 + bl sub_081204F4 + pop {r1} + bx r1 + .align 2, 0 +_081204F0: .4byte 0x0857A278 + thumb_func_end sub_081204D4 + + thumb_func_start sub_081204F4 +sub_081204F4: @ 0x081204F4 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0x28 + lsls r0, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r4, _08120570 + str r4, [sp, #0x18] + movs r4, #0x80 + add r5, sp, #0x18 + lsrs r6, r0, #0x10 + orrs r0, r4 + str r0, [r5, #4] + str r2, [sp, #0x20] + ldr r0, _08120574 + mov r8, r0 + add r4, sp, #0x20 + ldr r0, [r4, #4] + mov r2, r8 + ands r0, r2 + orrs r0, r1 + str r0, [r4, #4] + mov r0, sp + movs r2, #0 + strh r6, [r0] + strh r1, [r0, #2] + ldr r0, _08120578 + str r0, [sp, #4] + ldr r0, _0812057C + str r0, [sp, #8] + str r2, [sp, #0xc] + ldr r0, _08120580 + str r0, [sp, #0x10] + ldr r0, _08120584 + str r0, [sp, #0x14] + lsls r3, r3, #0x17 + lsrs r3, r3, #0x10 + ldr r0, [r5, #4] + mov r1, r8 + ands r0, r1 + orrs r0, r3 + str r0, [r5, #4] + 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, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x40 + bne _08120588 + movs r0, #0 + b _08120592 + .align 2, 0 +_08120570: .4byte 0x0857A298 +_08120574: .4byte 0xFFFF0000 +_08120578: .4byte 0x0857AB40 +_0812057C: .4byte 0x0857ABC8 +_08120580: .4byte 0x082BF310 +_08120584: .4byte 0x0812045D +_08120588: + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _081205A0 + adds r0, r0, r1 +_08120592: + add sp, #0x28 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_081205A0: .4byte 0x020205AC + thumb_func_end sub_081204F4 + + thumb_func_start sub_081205A4 +sub_081205A4: @ 0x081205A4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x11 + ldr r2, _081205BC + adds r0, r0, r2 + movs r2, #0x80 + movs r3, #0x10 + bl RequestDma3Copy + pop {r0} + bx r0 + .align 2, 0 +_081205BC: .4byte 0x0857A298 + thumb_func_end sub_081205A4 + diff --git a/asm/money.s b/asm/money.s new file mode 100644 index 0000000..37f8946 --- /dev/null +++ b/asm/money.s @@ -0,0 +1,398 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start GetMoney +GetMoney: @ 0x080E4908 + ldr r1, _080E4918 + ldr r1, [r1] + adds r1, #0xac + ldr r0, [r0] + ldr r1, [r1] + eors r0, r1 + bx lr + .align 2, 0 +_080E4918: .4byte 0x03005AF0 + thumb_func_end GetMoney + + thumb_func_start SetMoney +SetMoney: @ 0x080E491C + ldr r2, _080E492C + ldr r2, [r2] + adds r2, #0xac + ldr r2, [r2] + eors r2, r1 + str r2, [r0] + bx lr + .align 2, 0 +_080E492C: .4byte 0x03005AF0 + thumb_func_end SetMoney + + thumb_func_start IsEnoughMoney +IsEnoughMoney: @ 0x080E4930 + push {r4, lr} + adds r4, r1, #0 + bl GetMoney + cmp r0, r4 + bhs _080E4940 + movs r0, #0 + b _080E4942 +_080E4940: + movs r0, #1 +_080E4942: + pop {r4} + pop {r1} + bx r1 + thumb_func_end IsEnoughMoney + + thumb_func_start AddMoney +AddMoney: @ 0x080E4948 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r4, r1, #0 + bl GetMoney + adds r5, r0, #0 + adds r0, r5, r4 + ldr r5, _080E497C + adds r4, r5, #0 + cmp r0, r5 + bhi _080E496C + adds r5, r0, #0 + adds r0, r6, #0 + bl GetMoney + cmp r5, r0 + bhs _080E496C + adds r5, r4, #0 +_080E496C: + adds r0, r6, #0 + adds r1, r5, #0 + bl SetMoney + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080E497C: .4byte 0x000F423F + thumb_func_end AddMoney + + thumb_func_start RemoveMoney +RemoveMoney: @ 0x080E4980 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl GetMoney + adds r1, r0, #0 + cmp r1, r4 + bhs _080E4994 + movs r1, #0 + b _080E4996 +_080E4994: + subs r1, r1, r4 +_080E4996: + adds r0, r5, #0 + bl SetMoney + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RemoveMoney + + thumb_func_start IsEnoughForCostInVar0x8005 +IsEnoughForCostInVar0x8005: @ 0x080E49A4 + push {lr} + ldr r0, _080E49C0 + ldr r0, [r0] + movs r1, #0x92 + lsls r1, r1, #3 + adds r0, r0, r1 + ldr r1, _080E49C4 + ldrh r1, [r1] + bl IsEnoughMoney + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_080E49C0: .4byte 0x03005AEC +_080E49C4: .4byte 0x02037282 + thumb_func_end IsEnoughForCostInVar0x8005 + + thumb_func_start SubtractMoneyFromVar0x8005 +SubtractMoneyFromVar0x8005: @ 0x080E49C8 + push {lr} + ldr r0, _080E49E0 + ldr r0, [r0] + movs r1, #0x92 + lsls r1, r1, #3 + adds r0, r0, r1 + ldr r1, _080E49E4 + ldrh r1, [r1] + bl RemoveMoney + pop {r0} + bx r0 + .align 2, 0 +_080E49E0: .4byte 0x03005AEC +_080E49E4: .4byte 0x02037282 + thumb_func_end SubtractMoneyFromVar0x8005 + + thumb_func_start PrintMoneyAmountInMoneyBox +PrintMoneyAmountInMoneyBox: @ 0x080E49E8 + push {lr} + sub sp, #4 + adds r3, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp] + movs r1, #0x28 + movs r2, #2 + bl PrintMoneyAmountInMoneyBoxWithBorder + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PrintMoneyAmountInMoneyBox + + thumb_func_start PrintMoneyAmountInMoneyBoxWithBorder +PrintMoneyAmountInMoneyBoxWithBorder: @ 0x080E4A08 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #0xc + adds r6, r0, #0 + mov r8, r1 + adds r5, r2, #0 + adds r1, r3, #0 + ldr r4, [sp, #0x24] + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov r0, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _080E4A68 + movs r2, #1 + movs r3, #6 + bl ConvertIntToDecimalStringN + ldr r0, _080E4A6C + mov sb, r0 + ldr r1, _080E4A70 + bl StringExpandPlaceholders + str r5, [sp] + str r4, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + adds r0, r6, #0 + movs r1, #1 + mov r2, sb + mov r3, r8 + bl AddTextPrinterParameterized + add sp, #0xc + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080E4A68: .4byte 0x02021C40 +_080E4A6C: .4byte 0x02021C7C +_080E4A70: .4byte 0x085C9A9D + thumb_func_end PrintMoneyAmountInMoneyBoxWithBorder + + thumb_func_start PrintMoneyAmount +PrintMoneyAmount: @ 0x080E4A74 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r6, r0, #0 + adds r4, r1, #0 + adds r5, r2, #0 + mov r8, r3 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + adds r0, r6, #0 + movs r1, #0 + adds r2, r4, #0 + adds r3, r5, #0 + bl DrawStdFrameWithCustomTileAndPalette + adds r0, r6, #0 + mov r1, r8 + movs r2, #0 + bl PrintMoneyAmountInMoneyBox + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PrintMoneyAmount + + thumb_func_start ChangeAmountInMoneyBox +ChangeAmountInMoneyBox: @ 0x080E4AB0 + push {lr} + adds r1, r0, #0 + ldr r0, _080E4AC4 + ldrb r0, [r0] + movs r2, #0 + bl PrintMoneyAmountInMoneyBox + pop {r0} + bx r0 + .align 2, 0 +_080E4AC4: .4byte 0x02039C38 + thumb_func_end ChangeAmountInMoneyBox + + thumb_func_start DrawMoneyBox +DrawMoneyBox: @ 0x080E4AC8 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0x18 + mov r8, r0 + adds r4, r1, #0 + adds r3, r2, #0 + lsls r4, r4, #0x18 + lsls r3, r3, #0x18 + lsrs r6, r4, #0x18 + movs r0, #0x80 + lsls r0, r0, #0x11 + adds r4, r4, r0 + lsrs r4, r4, #0x18 + lsrs r5, r3, #0x18 + adds r3, r3, r0 + lsrs r3, r3, #0x18 + movs r0, #0xc + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #0xf + str r0, [sp, #8] + movs r0, #8 + str r0, [sp, #0xc] + add r0, sp, #0x10 + movs r1, #0 + adds r2, r4, #0 + bl SetWindowTemplateFields + ldr r4, _080E4B5C + add r0, sp, #0x10 + bl AddWindow + strb r0, [r4] + ldrb r0, [r4] + movs r1, #0 + bl FillWindowPixelBuffer + ldrb r0, [r4] + bl PutWindowTilemap + ldrb r0, [r4] + movs r1, #1 + bl CopyWindowToVram + ldrb r0, [r4] + movs r1, #0x85 + lsls r1, r1, #2 + movs r2, #0xe + mov r3, r8 + bl PrintMoneyAmount + lsls r6, r6, #0x13 + movs r0, #0x98 + lsls r0, r0, #0xd + adds r6, r6, r0 + lsrs r6, r6, #0x10 + lsls r5, r5, #0x13 + movs r0, #0xb0 + lsls r0, r0, #0xc + adds r5, r5, r0 + lsrs r5, r5, #0x10 + adds r0, r6, #0 + adds r1, r5, #0 + bl AddMoneyLabelObject + add sp, #0x18 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080E4B5C: .4byte 0x02039C38 + thumb_func_end DrawMoneyBox + + thumb_func_start HideMoneyBox +HideMoneyBox: @ 0x080E4B60 + push {r4, lr} + bl RemoveMoneyLabelObject + ldr r4, _080E4B84 + ldrb r0, [r4] + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + ldrb r0, [r4] + movs r1, #2 + bl CopyWindowToVram + ldrb r0, [r4] + bl RemoveWindow + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E4B84: .4byte 0x02039C38 + thumb_func_end HideMoneyBox + + thumb_func_start AddMoneyLabelObject +AddMoneyLabelObject: @ 0x080E4B88 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + ldr r0, _080E4BC0 + bl LoadCompressedSpriteSheet + ldr r0, _080E4BC4 + bl LoadCompressedSpritePalette + ldr r0, _080E4BC8 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + adds r1, r4, #0 + adds r2, r5, #0 + movs r3, #0 + bl CreateSprite + ldr r1, _080E4BCC + strb r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080E4BC0: .4byte 0x08565FBC +_080E4BC4: .4byte 0x08565FC4 +_080E4BC8: .4byte 0x08565FA4 +_080E4BCC: .4byte 0x02039C39 + thumb_func_end AddMoneyLabelObject + + thumb_func_start RemoveMoneyLabelObject +RemoveMoneyLabelObject: @ 0x080E4BD0 + push {lr} + ldr r0, _080E4BE8 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080E4BEC + adds r0, r0, r1 + bl DestroySpriteAndFreeResources + pop {r0} + bx r0 + .align 2, 0 +_080E4BE8: .4byte 0x02039C39 +_080E4BEC: .4byte 0x020205AC + thumb_func_end RemoveMoneyLabelObject + diff --git a/asm/mossdeep_gym.s b/asm/mossdeep_gym.s new file mode 100644 index 0000000..38c0ba9 --- /dev/null +++ b/asm/mossdeep_gym.s @@ -0,0 +1,727 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start InitMossdeepGymTiles +InitMossdeepGymTiles: @ 0x081A86B4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r4, _081A86D8 + ldr r0, [r4] + cmp r0, #0 + bne _081A86CA + movs r0, #0x44 + bl AllocZeroed + str r0, [r4] +_081A86CA: + ldr r0, [r4] + adds r0, #0x41 + strb r5, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081A86D8: .4byte 0x0203CB1C + thumb_func_end InitMossdeepGymTiles + + thumb_func_start FinishMossdeepGymTiles +FinishMossdeepGymTiles: @ 0x081A86DC + push {r4, lr} + ldr r4, _081A8718 + ldr r0, [r4] + cmp r0, #0 + beq _081A86EE + bl Free + movs r0, #0 + str r0, [r4] +_081A86EE: + movs r0, #0xff + movs r1, #0 + movs r2, #0 + bl GetEventObjectIdByLocalIdAndMap + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _081A871C + adds r0, r0, r1 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + bl sub_080D2C2C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081A8718: .4byte 0x0203CB1C +_081A871C: .4byte 0x02036FF0 + thumb_func_end FinishMossdeepGymTiles + + thumb_func_start MossdeepGym_MoveEvents +MossdeepGym_MoveEvents: @ 0x081A8720 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + ldr r0, _081A87B8 + ldr r0, [r0] + movs r1, #0xc7 + lsls r1, r1, #4 + adds r1, r1, r0 + mov sb, r1 + movs r3, #0 + mov sl, r3 + mov r8, r3 +_081A8744: + mov r0, r8 + lsls r4, r0, #1 + adds r1, r4, r0 + lsls r1, r1, #3 + add r1, sb + ldrh r0, [r1, #4] + adds r0, #7 + ldrh r1, [r1, #6] + adds r1, #7 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl MapGridGetMetatileIdAt + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r0, _081A87BC + ldr r0, [r0] + adds r0, #0x41 + ldrb r0, [r0] + movs r2, #0xa6 + lsls r2, r2, #2 + cmp r0, #0 + bne _081A8778 + subs r2, #0x48 +_081A8778: + ldr r0, _081A87C0 + cmp r1, r0 + bls _081A8854 + subs r1, r1, r2 + adds r0, r1, #0 + cmp r1, #0 + bge _081A8788 + adds r0, r1, #7 +_081A8788: + asrs r2, r0, #3 + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _081A8854 + ldr r3, [sp] + cmp r0, r3 + bne _081A8854 + lsls r0, r2, #3 + subs r0, r1, r0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #3 + bhi _081A8854 + movs r1, #0 + movs r2, #0 + cmp r5, #1 + beq _081A87D8 + cmp r5, #1 + bgt _081A87C4 + cmp r5, #0 + beq _081A87CE + b _081A8854 + .align 2, 0 +_081A87B8: .4byte 0x03005AEC +_081A87BC: .4byte 0x0203CB1C +_081A87C0: .4byte 0x0000024F +_081A87C4: + cmp r5, #2 + beq _081A87E4 + cmp r5, #3 + beq _081A87F0 + b _081A8854 +_081A87CE: + ldr r7, _081A87D4 + movs r1, #1 + b _081A87F4 + .align 2, 0 +_081A87D4: .4byte 0x085DDED0 +_081A87D8: + ldr r7, _081A87E0 + movs r2, #1 + b _081A87F4 + .align 2, 0 +_081A87E0: .4byte 0x085DDED4 +_081A87E4: + ldr r7, _081A87EC + movs r1, #0xff + b _081A87F4 + .align 2, 0 +_081A87EC: .4byte 0x085DDED8 +_081A87F0: + ldr r7, _081A8844 + movs r2, #0xff +_081A87F4: + mov r3, r8 + adds r0, r4, r3 + lsls r0, r0, #3 + mov r3, sb + adds r4, r0, r3 + lsls r0, r1, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #4] + adds r0, r0, r1 + strh r0, [r4, #4] + lsls r0, r2, #0x18 + asrs r0, r0, #0x18 + ldrh r3, [r4, #6] + adds r0, r0, r3 + strh r0, [r4, #6] + ldrb r0, [r4] + ldr r6, _081A8848 + ldr r2, [r6] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + bl GetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + beq _081A884C + mov r0, r8 + adds r1, r5, #0 + bl AddEventObject + ldrb r4, [r4] + mov sl, r4 + mov r0, sl + ldr r2, [r6] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + adds r3, r7, #0 + bl ScriptMovement_StartObjectMovementScript + b _081A8854 + .align 2, 0 +_081A8844: .4byte 0x085DDEDC +_081A8848: .4byte 0x03005AEC +_081A884C: + mov r0, r8 + adds r1, r5, #0 + bl sub_081A8B14 +_081A8854: + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + cmp r0, #0x3f + bhi _081A8864 + b _081A8744 +_081A8864: + mov r0, sl + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MossdeepGym_MoveEvents + + thumb_func_start MossdeepGym_TurnEvents +MossdeepGym_TurnEvents: @ 0x081A8878 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r1, _081A8924 + ldr r2, [r1] + cmp r2, #0 + bne _081A888C + b _081A8ACA +_081A888C: + adds r0, r2, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r3, #0xa6 + lsls r3, r3, #2 + mov sl, r3 + cmp r0, #0 + bne _081A88A2 + movs r0, #0x94 + lsls r0, r0, #2 + mov sl, r0 +_081A88A2: + ldr r0, _081A8928 + ldr r0, [r0] + movs r3, #0xc7 + lsls r3, r3, #4 + adds r7, r0, r3 + movs r0, #0 + mov sb, r0 + adds r0, r2, #0 + adds r0, #0x40 + ldrb r0, [r0] + cmp sb, r0 + blo _081A88BC + b _081A8ACA +_081A88BC: + mov r8, r1 +_081A88BE: + mov r1, r8 + ldr r0, [r1] + mov r2, sb + lsls r4, r2, #2 + adds r0, r0, r4 + ldrb r0, [r0, #1] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r7 + ldrh r0, [r1, #4] + adds r0, #7 + ldrh r1, [r1, #6] + adds r1, #7 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl MapGridGetMetatileIdAt + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r3, sl + subs r1, r0, r3 + adds r0, r1, #0 + cmp r1, #0 + bge _081A88F6 + adds r0, r1, #7 +_081A88F6: + asrs r0, r0, #3 + lsls r0, r0, #3 + subs r0, r1, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r2, r8 + ldr r1, [r2] + adds r1, r1, r4 + ldrb r1, [r1] + subs r0, r0, r1 + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + blt _081A8916 + cmp r1, #3 + bne _081A892C +_081A8916: + movs r0, #3 + rsbs r0, r0, #0 + movs r6, #0 + cmp r1, r0 + bne _081A8934 + b _081A8932 + .align 2, 0 +_081A8924: .4byte 0x0203CB1C +_081A8928: .4byte 0x03005AEC +_081A892C: + movs r6, #2 + cmp r1, #0 + ble _081A8934 +_081A8932: + movs r6, #1 +_081A8934: + ldr r5, _081A8980 + ldr r0, [r5] + adds r0, r0, r4 + ldrb r1, [r0, #1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r7 + ldrb r0, [r0] + ldr r1, _081A8984 + ldr r2, [r1] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + bl GetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x10 + bne _081A895C + b _081A8AB2 +_081A895C: + ldr r0, _081A8988 + lsls r1, r2, #3 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + adds r1, r0, #0 + cmp r6, #0 + bne _081A8A1C + cmp r0, #2 + beq _081A89E0 + cmp r0, #2 + bgt _081A898C + cmp r0, #1 + beq _081A89B0 + b _081A8AB2 + .align 2, 0 +_081A8980: .4byte 0x0203CB1C +_081A8984: .4byte 0x03005AEC +_081A8988: .4byte 0x02036FF0 +_081A898C: + cmp r0, #3 + beq _081A89C8 + cmp r0, #4 + beq _081A8996 + b _081A8AB2 +_081A8996: + ldr r3, _081A89AC + ldr r0, [r5] + adds r0, r0, r4 + ldrb r1, [r0, #1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r7 + movs r1, #7 + b _081A89F2 + .align 2, 0 +_081A89AC: .4byte 0x085DDEE6 +_081A89B0: + ldr r3, _081A89C4 + ldr r0, [r5] + adds r0, r0, r4 + ldrb r1, [r0, #1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r7 + movs r1, #0xa + b _081A89F2 + .align 2, 0 +_081A89C4: .4byte 0x085DDEE0 +_081A89C8: + ldr r3, _081A89DC + ldr r0, [r5] + adds r0, r0, r4 + ldrb r1, [r0, #1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r7 + movs r1, #8 + b _081A89F2 + .align 2, 0 +_081A89DC: .4byte 0x085DDEE2 +_081A89E0: + ldr r3, _081A8A14 + ldr r0, [r5] + adds r0, r0, r4 + ldrb r1, [r0, #1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r7 + movs r1, #9 +_081A89F2: + strb r1, [r0, #9] + mov r1, r8 + ldr r0, [r1] + adds r0, r0, r4 + ldrb r1, [r0, #1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r7 + ldrb r0, [r0] + ldr r1, _081A8A18 + ldr r2, [r1] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + bl ScriptMovement_StartObjectMovementScript + b _081A8AB2 + .align 2, 0 +_081A8A14: .4byte 0x085DDEE4 +_081A8A18: .4byte 0x03005AEC +_081A8A1C: + cmp r6, #1 + bne _081A8AB2 + cmp r0, #2 + beq _081A8A80 + cmp r0, #2 + bgt _081A8A2E + cmp r0, #1 + beq _081A8A50 + b _081A8AB2 +_081A8A2E: + cmp r1, #3 + beq _081A8A68 + cmp r1, #4 + bne _081A8AB2 + ldr r3, _081A8A4C + ldr r0, [r5] + adds r0, r0, r4 + ldrb r1, [r0, #1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r7 + movs r1, #8 + b _081A8A92 + .align 2, 0 +_081A8A4C: .4byte 0x085DDEE2 +_081A8A50: + ldr r3, _081A8A64 + ldr r0, [r5] + adds r0, r0, r4 + ldrb r1, [r0, #1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r7 + movs r1, #9 + b _081A8A92 + .align 2, 0 +_081A8A64: .4byte 0x085DDEE4 +_081A8A68: + ldr r3, _081A8A7C + ldr r0, [r5] + adds r0, r0, r4 + ldrb r1, [r0, #1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r7 + movs r1, #7 + b _081A8A92 + .align 2, 0 +_081A8A7C: .4byte 0x085DDEE6 +_081A8A80: + ldr r3, _081A8AD8 + ldr r0, [r5] + adds r0, r0, r4 + ldrb r1, [r0, #1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r7 + movs r1, #0xa +_081A8A92: + strb r1, [r0, #9] + mov r2, r8 + ldr r0, [r2] + adds r0, r0, r4 + ldrb r1, [r0, #1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r7 + ldrb r0, [r0] + ldr r1, _081A8ADC + ldr r2, [r1] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + bl ScriptMovement_StartObjectMovementScript +_081A8AB2: + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + mov r3, r8 + ldr r0, [r3] + adds r0, #0x40 + ldrb r0, [r0] + cmp sb, r0 + bhs _081A8ACA + b _081A88BE +_081A8ACA: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081A8AD8: .4byte 0x085DDEE0 +_081A8ADC: .4byte 0x03005AEC + thumb_func_end MossdeepGym_TurnEvents + + thumb_func_start AddEventObject +AddEventObject: @ 0x081A8AE0 + push {r4, lr} + ldr r4, _081A8B10 + ldr r3, [r4] + adds r2, r3, #0 + adds r2, #0x40 + ldrb r2, [r2] + lsls r2, r2, #2 + adds r3, r3, r2 + strb r0, [r3, #1] + ldr r2, [r4] + adds r0, r2, #0 + adds r0, #0x40 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r2, r2, r0 + strb r1, [r2] + ldr r1, [r4] + adds r1, #0x40 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081A8B10: .4byte 0x0203CB1C + thumb_func_end AddEventObject + + thumb_func_start sub_081A8B14 +sub_081A8B14: @ 0x081A8B14 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + ldr r0, _081A8B80 + ldr r0, [r0] + movs r1, #0xc7 + lsls r1, r1, #4 + adds r5, r0, r1 + lsls r1, r4, #1 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r5 + ldrh r0, [r1, #4] + adds r0, #7 + ldrh r1, [r1, #6] + adds r1, #7 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl MapGridGetMetatileIdAt + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _081A8B84 + ldr r0, [r0] + adds r0, #0x41 + ldrb r0, [r0] + movs r1, #0xa6 + lsls r1, r1, #2 + cmp r0, #0 + bne _081A8B5A + subs r1, #0x48 +_081A8B5A: + subs r1, r2, r1 + adds r0, r1, #0 + cmp r1, #0 + bge _081A8B64 + adds r0, r1, #7 +_081A8B64: + asrs r0, r0, #3 + lsls r0, r0, #3 + subs r0, r1, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, r0, r6 + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + blt _081A8B7C + cmp r1, #3 + bne _081A8B88 +_081A8B7C: + movs r2, #0 + b _081A8B9A + .align 2, 0 +_081A8B80: .4byte 0x03005AEC +_081A8B84: .4byte 0x0203CB1C +_081A8B88: + cmp r1, #0 + bgt _081A8B94 + movs r0, #3 + rsbs r0, r0, #0 + cmp r1, r0 + bne _081A8B98 +_081A8B94: + movs r2, #1 + b _081A8B9A +_081A8B98: + movs r2, #2 +_081A8B9A: + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r1, r0, r5 + ldrb r0, [r1, #9] + adds r3, r0, #0 + cmp r2, #0 + bne _081A8BCC + cmp r0, #8 + beq _081A8BF2 + cmp r0, #8 + bgt _081A8BB8 + cmp r0, #7 + beq _081A8BC8 + b _081A8BF6 +_081A8BB8: + cmp r0, #9 + beq _081A8BC4 + cmp r0, #0xa + bne _081A8BF6 + movs r0, #7 + b _081A8BF4 +_081A8BC4: + movs r0, #8 + b _081A8BF4 +_081A8BC8: + movs r0, #9 + b _081A8BF4 +_081A8BCC: + cmp r2, #1 + bne _081A8BF6 + cmp r0, #8 + beq _081A8BEA + cmp r0, #8 + bgt _081A8BDE + cmp r0, #7 + beq _081A8BF2 + b _081A8BF6 +_081A8BDE: + cmp r3, #9 + beq _081A8BEE + cmp r3, #0xa + bne _081A8BF6 + movs r0, #8 + b _081A8BF4 +_081A8BEA: + movs r0, #9 + b _081A8BF4 +_081A8BEE: + movs r0, #7 + b _081A8BF4 +_081A8BF2: + movs r0, #0xa +_081A8BF4: + strb r0, [r1, #9] +_081A8BF6: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_081A8B14 + diff --git a/asm/move_relearner.s b/asm/move_relearner.s new file mode 100644 index 0000000..f2d6641 --- /dev/null +++ b/asm/move_relearner.s @@ -0,0 +1,1753 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start VBlankCB_MoveRelearner +VBlankCB_MoveRelearner: @ 0x0816055C + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end VBlankCB_MoveRelearner + + thumb_func_start TeachMoveRelearnerMove +TeachMoveRelearnerMove: @ 0x08160570 + push {lr} + sub sp, #4 + bl ScriptContext2_Enable + ldr r0, _08160598 + movs r1, #0xa + bl CreateTask + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_08160598: .4byte 0x0816059D + thumb_func_end TeachMoveRelearnerMove + + thumb_func_start Task_WaitForFadeOut +Task_WaitForFadeOut: @ 0x0816059C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _081605C8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081605C0 + ldr r0, _081605CC + bl SetMainCallback2 + ldr r1, _081605D0 + ldr r0, _081605D4 + str r0, [r1] + adds r0, r4, #0 + bl DestroyTask +_081605C0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081605C8: .4byte 0x02037C74 +_081605CC: .4byte 0x081605D9 +_081605D0: .4byte 0x03005B0C +_081605D4: .4byte 0x080AEA65 + thumb_func_end Task_WaitForFadeOut + + thumb_func_start CB2_InitLearnMove +CB2_InitLearnMove: @ 0x081605D8 + push {r4, r5, r6, lr} + bl ResetSpriteData + bl FreeAllSpritePalettes + bl ResetTasks + bl clear_scheduled_bg_copies_to_vram + ldr r6, _08160658 + movs r0, #0x8c + lsls r0, r0, #1 + bl AllocZeroed + str r0, [r6] + ldr r1, _0816065C + ldrh r1, [r1] + adds r0, #0x44 + movs r5, #0 + strb r1, [r0] + ldr r0, _08160660 + bl SetVBlankCallback + bl InitMoveRelearnerBackgroundLayers + movs r0, #0 + bl InitMoveRelearnerWindows + ldr r4, _08160664 + movs r0, #0 + strh r5, [r4] + strh r5, [r4, #2] + strb r0, [r4, #4] + bl CreateLearnableMovesList + ldr r0, _08160668 + bl LoadSpriteSheet + ldr r0, _0816066C + bl LoadSpritePalette + bl CreateUISprites + ldr r0, _08160670 + ldrh r1, [r4] + ldrh r2, [r4, #2] + bl ListMenuInit + ldr r1, [r6] + movs r2, #0x89 + lsls r2, r2, #1 + adds r1, r1, r2 + strb r0, [r1] + movs r0, #0 + movs r1, #0 + movs r2, #2 + bl FillPalette + ldr r0, _08160674 + bl SetMainCallback2 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08160658: .4byte 0x0203B900 +_0816065C: .4byte 0x02037280 +_08160660: .4byte 0x0816055D +_08160664: .4byte 0x0203B904 +_08160668: .4byte 0x085ADAF4 +_0816066C: .4byte 0x085ADAFC +_08160670: .4byte 0x03006050 +_08160674: .4byte 0x08160765 + thumb_func_end CB2_InitLearnMove + + thumb_func_start CB2_InitLearnMoveReturnFromSelectMove +CB2_InitLearnMoveReturnFromSelectMove: @ 0x08160678 + push {r4, r5, lr} + bl ResetSpriteData + bl FreeAllSpritePalettes + bl ResetTasks + bl clear_scheduled_bg_copies_to_vram + ldr r5, _08160700 + movs r0, #0x8c + lsls r0, r0, #1 + bl AllocZeroed + str r0, [r5] + movs r1, #0x1c + strb r1, [r0] + ldr r0, [r5] + ldr r1, _08160704 + ldrh r1, [r1] + adds r0, #0x44 + strb r1, [r0] + ldr r0, [r5] + ldr r1, _08160708 + ldrh r1, [r1] + adds r0, #0x45 + strb r1, [r0] + ldr r0, _0816070C + bl SetVBlankCallback + bl InitMoveRelearnerBackgroundLayers + ldr r4, _08160710 + ldrb r0, [r4, #4] + bl InitMoveRelearnerWindows + bl CreateLearnableMovesList + ldr r0, _08160714 + bl LoadSpriteSheet + ldr r0, _08160718 + bl LoadSpritePalette + bl CreateUISprites + ldr r0, _0816071C + ldrh r1, [r4] + ldrh r2, [r4, #2] + bl ListMenuInit + ldr r1, [r5] + movs r2, #0x89 + lsls r2, r2, #1 + adds r1, r1, r2 + strb r0, [r1] + movs r0, #0 + movs r1, #0 + movs r2, #2 + bl FillPalette + ldr r0, _08160720 + bl SetMainCallback2 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08160700: .4byte 0x0203B900 +_08160704: .4byte 0x02037280 +_08160708: .4byte 0x02037282 +_0816070C: .4byte 0x0816055D +_08160710: .4byte 0x0203B904 +_08160714: .4byte 0x085ADAF4 +_08160718: .4byte 0x085ADAFC +_0816071C: .4byte 0x03006050 +_08160720: .4byte 0x08160765 + thumb_func_end CB2_InitLearnMoveReturnFromSelectMove + + thumb_func_start InitMoveRelearnerBackgroundLayers +InitMoveRelearnerBackgroundLayers: @ 0x08160724 + push {lr} + bl ResetVramOamAndBgCntRegs + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _08160760 + movs r0, #0 + movs r2, #2 + bl InitBgsFromTemplates + bl ResetAllBgsCoordinates + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 +_08160760: .4byte 0x085ADB6C + thumb_func_end InitMoveRelearnerBackgroundLayers + + thumb_func_start CB2_MoveRelearnerMain +CB2_MoveRelearnerMain: @ 0x08160764 + push {lr} + bl DoMoveRelearnerMain + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl do_scheduled_bg_tilemap_copies_to_vram + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CB2_MoveRelearnerMain + + thumb_func_start FormatAndPrintText +FormatAndPrintText: @ 0x08160784 + push {r4, lr} + adds r1, r0, #0 + ldr r4, _0816079C + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + bl MoveRelearnerPrintText + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816079C: .4byte 0x02021C7C + thumb_func_end FormatAndPrintText + + thumb_func_start DoMoveRelearnerMain +DoMoveRelearnerMain: @ 0x081607A0 + push {r4, r5, r6, r7, lr} + sub sp, #4 + ldr r1, _081607BC + ldr r0, [r1] + ldrb r0, [r0] + adds r7, r1, #0 + cmp r0, #0x21 + bls _081607B2 + b _08160DB6 +_081607B2: + lsls r0, r0, #2 + ldr r1, _081607C0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081607BC: .4byte 0x0203B900 +_081607C0: .4byte 0x081607C4 +_081607C4: @ jump table + .4byte _0816084C @ case 0 + .4byte _08160866 @ case 1 + .4byte _08160880 @ case 2 + .4byte _08160888 @ case 3 + .4byte _08160890 @ case 4 + .4byte _08160898 @ case 5 + .4byte _081608B4 @ case 6 + .4byte _08160DB6 @ case 7 + .4byte _081608BC @ case 8 + .4byte _081608DC @ case 9 + .4byte _08160DB6 @ case 10 + .4byte _08160DB6 @ case 11 + .4byte _08160978 @ case 12 + .4byte _08160998 @ case 13 + .4byte _08160BEC @ case 14 + .4byte _08160C0C @ case 15 + .4byte _081609EC @ case 16 + .4byte _08160A04 @ case 17 + .4byte _08160A20 @ case 18 + .4byte _08160B50 @ case 19 + .4byte _08160B7C @ case 20 + .4byte _08160BCC @ case 21 + .4byte _08160BDA @ case 22 + .4byte _08160DB6 @ case 23 + .4byte _08160A60 @ case 24 + .4byte _08160A94 @ case 25 + .4byte _08160AB4 @ case 26 + .4byte _08160B10 @ case 27 + .4byte _08160C30 @ case 28 + .4byte _08160C7C @ case 29 + .4byte _08160D38 @ case 30 + .4byte _08160D64 @ case 31 + .4byte _08160D84 @ case 32 + .4byte _08160D9C @ case 33 +_0816084C: + ldr r1, [r7] + ldrb r0, [r1] + adds r0, #1 + movs r4, #0 + strb r0, [r1] + movs r0, #0 + bl HideHeartSpritesAndShowTeachMoveText + movs r0, #1 + rsbs r0, r0, #0 + str r4, [sp] + movs r1, #0 + b _08160BE2 +_08160866: + ldr r0, _0816087C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08160874 + b _08160DB6 +_08160874: + ldr r1, [r7] + movs r0, #4 + b _08160DB4 + .align 2, 0 +_0816087C: .4byte 0x02037C74 +_08160880: + ldr r1, [r7] + ldrb r0, [r1] + adds r0, #1 + b _08160DB4 +_08160888: + movs r0, #0 + bl HideHeartSpritesAndShowTeachMoveText + b _0816089E +_08160890: + movs r0, #0 + bl sub_08160E70 + b _08160DB6 +_08160898: + movs r0, #0 + bl ShowTeachMoveText +_0816089E: + ldr r0, _081608B0 + ldr r1, [r0] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + bl AddScrollArrows + b _08160DB6 + .align 2, 0 +_081608B0: .4byte 0x0203B900 +_081608B4: + movs r0, #1 + bl sub_08160E70 + b _08160DB6 +_081608BC: + bl MoveRelearnerRunTextPrinters + lsls r0, r0, #0x10 + cmp r0, #0 + beq _081608C8 + b _08160DB6 +_081608C8: + bl MoveRelearnerCreateYesNoMenu + ldr r0, _081608D8 + ldr r1, [r0] + ldrb r0, [r1] + adds r0, #1 + b _08160DB4 + .align 2, 0 +_081608D8: .4byte 0x0203B900 +_081608DC: + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + bne _0816093E + ldr r5, _08160924 + ldr r0, [r5] + adds r0, #0x44 + ldrb r1, [r0] + movs r0, #0x64 + adds r4, r1, #0 + muls r4, r0, r4 + ldr r0, _08160928 + adds r4, r4, r0 + bl GetCurrentSelectedMove + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl GiveMoveToMon + lsls r0, r0, #0x10 + ldr r1, _0816092C + cmp r0, r1 + beq _08160938 + ldr r0, _08160930 + bl FormatAndPrintText + ldr r1, _08160934 + movs r0, #1 + strh r0, [r1] + ldr r1, [r5] + movs r0, #0x1f + b _08160DB4 + .align 2, 0 +_08160924: .4byte 0x0203B900 +_08160928: .4byte 0x02024190 +_0816092C: .4byte 0xFFFF0000 +_08160930: .4byte 0x085AD9C0 +_08160934: .4byte 0x02037280 +_08160938: + ldr r1, [r5] + movs r0, #0x10 + b _08160DB4 +_0816093E: + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0816094C + cmp r1, #1 + beq _0816094C + b _08160DB6 +_0816094C: + ldr r0, _0816095C + ldrb r0, [r0, #4] + cmp r0, #0 + bne _08160964 + ldr r0, _08160960 + ldr r1, [r0] + movs r0, #3 + b _08160DB4 + .align 2, 0 +_0816095C: .4byte 0x0203B904 +_08160960: .4byte 0x0203B900 +_08160964: + cmp r0, #1 + beq _0816096A + b _08160DB6 +_0816096A: + ldr r0, _08160974 + ldr r1, [r0] + movs r0, #5 + b _08160DB4 + .align 2, 0 +_08160974: .4byte 0x0203B900 +_08160978: + bl MoveRelearnerRunTextPrinters + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08160984 + b _08160DB6 +_08160984: + bl MoveRelearnerCreateYesNoMenu + ldr r0, _08160994 + ldr r1, [r0] + ldrb r0, [r1] + adds r0, #1 + b _08160DB4 + .align 2, 0 +_08160994: .4byte 0x0203B900 +_08160998: + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + bne _081609B0 + ldr r0, _081609AC + strh r1, [r0] + b _08160DAE + .align 2, 0 +_081609AC: .4byte 0x02037280 +_081609B0: + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _081609BE + cmp r1, #1 + beq _081609BE + b _08160DB6 +_081609BE: + ldr r0, _081609D0 + ldrb r0, [r0, #4] + cmp r0, #0 + bne _081609D8 + ldr r0, _081609D4 + ldr r1, [r0] + movs r0, #3 + b _08160DB4 + .align 2, 0 +_081609D0: .4byte 0x0203B904 +_081609D4: .4byte 0x0203B900 +_081609D8: + cmp r0, #1 + beq _081609DE + b _08160DB6 +_081609DE: + ldr r0, _081609E8 + ldr r1, [r0] + movs r0, #5 + b _08160DB4 + .align 2, 0 +_081609E8: .4byte 0x0203B900 +_081609EC: + ldr r0, _081609FC + bl FormatAndPrintText + ldr r0, _08160A00 + ldr r1, [r0] + ldrb r0, [r1] + adds r0, #1 + b _08160DB4 + .align 2, 0 +_081609FC: .4byte 0x085AD9D4 +_08160A00: .4byte 0x0203B900 +_08160A04: + bl MoveRelearnerRunTextPrinters + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08160A10 + b _08160DB6 +_08160A10: + bl MoveRelearnerCreateYesNoMenu + ldr r0, _08160A1C + ldr r1, [r0] + movs r0, #0x12 + b _08160DB4 + .align 2, 0 +_08160A1C: .4byte 0x0203B900 +_08160A20: + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + bne _08160A44 + ldr r0, _08160A3C + bl FormatAndPrintText + ldr r0, _08160A40 + ldr r1, [r0] + movs r0, #0x13 + b _08160DB4 + .align 2, 0 +_08160A3C: .4byte 0x085ADAC9 +_08160A40: .4byte 0x0203B900 +_08160A44: + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _08160A52 + cmp r1, #1 + beq _08160A52 + b _08160DB6 +_08160A52: + ldr r0, _08160A5C + ldr r1, [r0] + movs r0, #0x18 + b _08160DB4 + .align 2, 0 +_08160A5C: .4byte 0x0203B900 +_08160A60: + ldr r4, _08160A84 + bl GetCurrentSelectedMove + adds r1, r0, #0 + lsls r1, r1, #3 + ldr r0, _08160A88 + adds r1, r1, r0 + adds r0, r4, #0 + bl StringCopy + ldr r0, _08160A8C + bl FormatAndPrintText + ldr r0, _08160A90 + ldr r1, [r0] + ldrb r0, [r1] + adds r0, #1 + b _08160DB4 + .align 2, 0 +_08160A84: .4byte 0x02021C54 +_08160A88: .4byte 0x082EACC4 +_08160A8C: .4byte 0x085ADA27 +_08160A90: .4byte 0x0203B900 +_08160A94: + bl MoveRelearnerRunTextPrinters + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08160AA0 + b _08160DB6 +_08160AA0: + bl MoveRelearnerCreateYesNoMenu + ldr r0, _08160AB0 + ldr r1, [r0] + ldrb r0, [r1] + adds r0, #1 + b _08160DB4 + .align 2, 0 +_08160AB0: .4byte 0x0203B900 +_08160AB4: + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + bne _08160ACC + ldr r0, _08160AC8 + ldr r1, [r0] + movs r0, #0x1b + b _08160DB4 + .align 2, 0 +_08160AC8: .4byte 0x0203B900 +_08160ACC: + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _08160ADA + cmp r1, #1 + beq _08160ADA + b _08160DB6 +_08160ADA: + ldr r0, _08160AF0 + ldrb r0, [r0, #4] + cmp r0, #0 + bne _08160AF8 + ldr r2, _08160AF4 + ldr r1, [r2] + movs r0, #3 + strb r0, [r1] + adds r7, r2, #0 + b _08160B04 + .align 2, 0 +_08160AF0: .4byte 0x0203B904 +_08160AF4: .4byte 0x0203B900 +_08160AF8: + ldr r7, _08160B0C + cmp r0, #1 + bne _08160B04 + ldr r1, [r7] + movs r0, #5 + strb r0, [r1] +_08160B04: + ldr r1, [r7] + movs r0, #0x10 + b _08160DB4 + .align 2, 0 +_08160B0C: .4byte 0x0203B900 +_08160B10: + bl MoveRelearnerRunTextPrinters + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08160B1C + b _08160DB6 +_08160B1C: + movs r0, #3 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r0, _08160B34 + ldrb r0, [r0, #4] + cmp r0, #0 + bne _08160B3C + ldr r0, _08160B38 + ldr r1, [r0] + movs r0, #3 + b _08160DB4 + .align 2, 0 +_08160B34: .4byte 0x0203B904 +_08160B38: .4byte 0x0203B900 +_08160B3C: + cmp r0, #1 + beq _08160B42 + b _08160DB6 +_08160B42: + ldr r0, _08160B4C + ldr r1, [r0] + movs r0, #5 + b _08160DB4 + .align 2, 0 +_08160B4C: .4byte 0x0203B900 +_08160B50: + bl MoveRelearnerRunTextPrinters + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0 + beq _08160B5E + b _08160DB6 +_08160B5E: + ldr r0, _08160B78 + ldr r1, [r0] + movs r0, #0x14 + strb r0, [r1] + subs r0, #0x15 + str r2, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + b _08160DB6 + .align 2, 0 +_08160B78: .4byte 0x0203B900 +_08160B7C: + ldr r0, _08160BB8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08160B8A + b _08160DB6 +_08160B8A: + bl GetCurrentSelectedMove + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _08160BBC + ldr r1, _08160BC0 + ldr r1, [r1] + adds r1, #0x44 + ldrb r1, [r1] + ldr r2, _08160BC4 + ldrb r2, [r2] + subs r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r3, _08160BC8 + str r0, [sp] + adds r0, r4, #0 + bl ShowSelectMovePokemonSummaryScreen + bl FreeMoveRelearnerResources + b _08160DB6 + .align 2, 0 +_08160BB8: .4byte 0x02037C74 +_08160BBC: .4byte 0x02024190 +_08160BC0: .4byte 0x0203B900 +_08160BC4: .4byte 0x0202418D +_08160BC8: .4byte 0x08160679 +_08160BCC: + bl MoveRelearnerRunTextPrinters + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08160BD8 + b _08160DB6 +_08160BD8: + b _08160DAE +_08160BDA: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] +_08160BE2: + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + b _08160DB6 +_08160BEC: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _08160C08 + ldr r1, [r0] + ldrb r0, [r1] + adds r0, #1 + b _08160DB4 + .align 2, 0 +_08160C08: .4byte 0x0203B900 +_08160C0C: + ldr r0, _08160C28 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08160C1A + b _08160DB6 +_08160C1A: + bl FreeMoveRelearnerResources + ldr r0, _08160C2C + bl SetMainCallback2 + b _08160DB6 + .align 2, 0 +_08160C28: .4byte 0x02037C74 +_08160C2C: .4byte 0x08085A31 +_08160C30: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r0, _08160C5C + ldr r1, [r0] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r0, _08160C60 + ldrb r0, [r0, #4] + cmp r0, #0 + bne _08160C64 + movs r0, #1 + bl HideHeartSpritesAndShowTeachMoveText + b _08160C6E + .align 2, 0 +_08160C5C: .4byte 0x0203B900 +_08160C60: .4byte 0x0203B904 +_08160C64: + cmp r0, #1 + bne _08160C6E + movs r0, #1 + bl ShowTeachMoveText +_08160C6E: + bl RemoveScrollArrows + movs r0, #3 + movs r1, #2 + bl CopyWindowToVram + b _08160DB6 +_08160C7C: + ldr r0, _08160C9C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08160C8A + b _08160DB6 +_08160C8A: + ldr r1, [r7] + adds r2, r1, #0 + adds r2, #0x45 + ldrb r0, [r2] + cmp r0, #4 + bne _08160CA0 + movs r0, #0x18 + b _08160DB4 + .align 2, 0 +_08160C9C: .4byte 0x02037C74 +_08160CA0: + adds r0, r1, #0 + adds r0, #0x44 + ldrb r0, [r0] + movs r4, #0x64 + muls r0, r4, r0 + ldr r5, _08160D20 + adds r0, r0, r5 + ldrb r1, [r2] + adds r1, #0xd + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x10 + ldr r0, _08160D24 + lsrs r1, r1, #0xd + ldr r6, _08160D28 + adds r1, r1, r6 + bl StringCopy + ldr r1, [r7] + adds r0, r1, #0 + adds r0, #0x44 + ldrb r0, [r0] + muls r0, r4, r0 + adds r0, r0, r5 + adds r1, #0x45 + ldrb r1, [r1] + bl RemoveMonPPBonus + ldr r0, [r7] + adds r0, #0x44 + ldrb r0, [r0] + muls r4, r0, r4 + adds r4, r4, r5 + bl GetCurrentSelectedMove + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, [r7] + adds r0, #0x45 + ldrb r2, [r0] + adds r0, r4, #0 + bl SetMonMoveSlot + ldr r4, _08160D2C + bl GetCurrentSelectedMove + adds r1, r0, #0 + lsls r1, r1, #3 + adds r1, r1, r6 + adds r0, r4, #0 + bl StringCopy + ldr r0, _08160D30 + bl FormatAndPrintText + ldr r1, [r7] + movs r0, #0x1e + strb r0, [r1] + ldr r1, _08160D34 + movs r0, #1 + strh r0, [r1] + b _08160DB6 + .align 2, 0 +_08160D20: .4byte 0x02024190 +_08160D24: .4byte 0x02021C68 +_08160D28: .4byte 0x082EACC4 +_08160D2C: .4byte 0x02021C54 +_08160D30: .4byte 0x085ADA42 +_08160D34: .4byte 0x02037280 +_08160D38: + bl MoveRelearnerRunTextPrinters + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08160DB6 + ldr r0, _08160D58 + bl FormatAndPrintText + ldr r0, _08160D5C + ldr r1, [r0] + movs r0, #0x1f + strb r0, [r1] + ldr r0, _08160D60 + bl PlayFanfare + b _08160DB6 + .align 2, 0 +_08160D58: .4byte 0x085ADA67 +_08160D5C: .4byte 0x0203B900 +_08160D60: .4byte 0x0000016F +_08160D64: + bl MoveRelearnerRunTextPrinters + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08160DB6 + ldr r0, _08160D7C + bl PlayFanfare + ldr r0, _08160D80 + ldr r1, [r0] + movs r0, #0x20 + b _08160DB4 + .align 2, 0 +_08160D7C: .4byte 0x0000016F +_08160D80: .4byte 0x0203B900 +_08160D84: + bl IsFanfareTaskInactive + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08160DB6 + ldr r0, _08160D98 + ldr r1, [r0] + movs r0, #0x21 + b _08160DB4 + .align 2, 0 +_08160D98: .4byte 0x0203B900 +_08160D9C: + ldr r0, _08160DC0 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08160DB6 + movs r0, #5 + bl PlaySE +_08160DAE: + ldr r0, _08160DC4 + ldr r1, [r0] + movs r0, #0xe +_08160DB4: + strb r0, [r1] +_08160DB6: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08160DC0: .4byte 0x03002360 +_08160DC4: .4byte 0x0203B900 + thumb_func_end DoMoveRelearnerMain + + thumb_func_start FreeMoveRelearnerResources +FreeMoveRelearnerResources: @ 0x08160DC8 + push {r4, lr} + bl RemoveScrollArrows + ldr r4, _08160E00 + ldr r0, [r4] + movs r1, #0x89 + lsls r1, r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + ldr r1, _08160E04 + adds r2, r1, #2 + bl DestroyListMenuTask + bl FreeAllWindowBuffers + ldr r0, [r4] + bl Free + movs r0, #0 + str r0, [r4] + bl ResetSpriteData + bl FreeAllSpritePalettes + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08160E00: .4byte 0x0203B900 +_08160E04: .4byte 0x0203B904 + thumb_func_end FreeMoveRelearnerResources + + thumb_func_start HideHeartSpritesAndShowTeachMoveText +HideHeartSpritesAndShowTeachMoveText: @ 0x08160E08 + push {r4, r5, r6, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r2, #0 + ldr r6, _08160E60 + ldr r4, _08160E64 + movs r3, #4 +_08160E18: + ldr r0, [r4] + adds r0, #1 + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r3 + strb r1, [r0] + adds r2, #1 + cmp r2, #0xf + ble _08160E18 + cmp r5, #0 + bne _08160E58 + ldr r4, _08160E68 + ldr r1, _08160E6C + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #2 + str r0, [sp] + str r5, [sp, #4] + str r5, [sp, #8] + movs r0, #3 + movs r1, #1 + adds r2, r4, #0 + movs r3, #0 + bl AddTextPrinterParameterized +_08160E58: + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08160E60: .4byte 0x020205AC +_08160E64: .4byte 0x0203B900 +_08160E68: .4byte 0x02021C7C +_08160E6C: .4byte 0x085AD9A0 + thumb_func_end HideHeartSpritesAndShowTeachMoveText + + thumb_func_start sub_08160E70 +sub_08160E70: @ 0x08160E70 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r6, _08160ED8 + ldr r0, [r6] + movs r4, #0x89 + lsls r4, r4, #1 + adds r0, r0, r4 + ldrb r0, [r0] + bl ListMenu_ProcessInput + adds r5, r0, #0 + ldr r0, [r6] + adds r0, r0, r4 + ldrb r0, [r0] + ldr r4, _08160EDC + adds r2, r4, #2 + adds r1, r4, #0 + bl ListMenuGetScrollAndRow + movs r0, #2 + rsbs r0, r0, #0 + cmp r5, r0 + beq _08160F04 + adds r0, #1 + cmp r5, r0 + bne _08160F30 + ldr r0, _08160EE0 + ldrh r1, [r0, #0x2e] + movs r0, #0x30 + ands r0, r1 + cmp r0, #0 + bne _08160EBC + bl GetLRKeysState + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08160F5C +_08160EBC: + movs r0, #5 + bl PlaySE + cmp r7, #0 + bne _08160EE4 + movs r0, #1 + bl PutWindowTilemap + ldr r0, [r6] + movs r1, #5 + strb r1, [r0] + movs r0, #1 + strb r0, [r4, #4] + b _08160EF4 + .align 2, 0 +_08160ED8: .4byte 0x0203B900 +_08160EDC: .4byte 0x0203B904 +_08160EE0: .4byte 0x03002360 +_08160EE4: + movs r0, #0 + bl PutWindowTilemap + ldr r0, [r6] + movs r2, #0 + movs r1, #3 + strb r1, [r0] + strb r2, [r4, #4] +_08160EF4: + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + bl GetCurrentSelectedMove + bl MoveRelearnerShowHideHearts + b _08160F5C +_08160F04: + movs r0, #5 + bl PlaySE + bl RemoveScrollArrows + ldr r1, [r6] + movs r0, #0xc + strb r0, [r1] + ldr r4, _08160F28 + ldr r1, _08160F2C + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + bl MoveRelearnerPrintText + b _08160F5C + .align 2, 0 +_08160F28: .4byte 0x02021C7C +_08160F2C: .4byte 0x085ADAAF +_08160F30: + movs r0, #5 + bl PlaySE + bl RemoveScrollArrows + ldr r1, [r6] + movs r0, #8 + strb r0, [r1] + ldr r0, _08160F64 + lsls r1, r5, #3 + ldr r2, _08160F68 + adds r1, r1, r2 + bl StringCopy + ldr r4, _08160F6C + ldr r1, _08160F70 + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + bl MoveRelearnerPrintText +_08160F5C: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08160F64: .4byte 0x02021C54 +_08160F68: .4byte 0x082EACC4 +_08160F6C: .4byte 0x02021C7C +_08160F70: .4byte 0x085AD9B2 + thumb_func_end sub_08160E70 + + thumb_func_start GetCurrentSelectedMove +GetCurrentSelectedMove: @ 0x08160F74 + ldr r0, _08160F8C + ldr r2, [r0] + ldr r1, _08160F90 + ldrh r0, [r1, #2] + ldrh r1, [r1] + adds r0, r0, r1 + lsls r0, r0, #3 + adds r2, #0x4c + adds r2, r2, r0 + ldr r0, [r2] + bx lr + .align 2, 0 +_08160F8C: .4byte 0x0203B900 +_08160F90: .4byte 0x0203B904 + thumb_func_end GetCurrentSelectedMove + + thumb_func_start ShowTeachMoveText +ShowTeachMoveText: @ 0x08160F94 + push {r4, r5, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _08160FBE + ldr r4, _08160FC8 + ldr r1, _08160FCC + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #2 + str r0, [sp] + str r5, [sp, #4] + str r5, [sp, #8] + movs r0, #3 + movs r1, #1 + adds r2, r4, #0 + movs r3, #0 + bl AddTextPrinterParameterized +_08160FBE: + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08160FC8: .4byte 0x02021C7C +_08160FCC: .4byte 0x085AD9A0 + thumb_func_end ShowTeachMoveText + + thumb_func_start CreateUISprites +CreateUISprites: @ 0x08160FD0 + push {r4, r5, r6, r7, lr} + ldr r2, _081610B4 + ldr r0, [r2] + movs r1, #0x8a + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] + ldr r0, [r2] + ldr r2, _081610B8 + adds r1, r0, r2 + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1] + bl AddScrollArrows + movs r4, #0 + ldr r5, _081610BC +_08160FF4: + adds r2, r4, #0 + cmp r4, #0 + bge _08160FFC + adds r2, r4, #3 +_08160FFC: + asrs r2, r2, #2 + lsls r1, r2, #2 + subs r1, r4, r1 + lsls r1, r1, #0x13 + movs r0, #0xb0 + lsls r0, r0, #0xe + adds r1, r1, r0 + asrs r1, r1, #0x10 + lsls r2, r2, #0x13 + movs r0, #0xd0 + lsls r0, r0, #0xe + adds r2, r2, r0 + asrs r2, r2, #0x10 + adds r0, r5, #0 + movs r3, #0 + bl CreateSprite + ldr r2, _081610B4 + ldr r1, [r2] + adds r1, #1 + adds r1, r1, r4 + strb r0, [r1] + adds r4, #1 + cmp r4, #7 + ble _08160FF4 + movs r4, #0 + ldr r7, _081610BC + adds r6, r2, #0 +_08161034: + adds r2, r4, #0 + cmp r4, #0 + bge _0816103C + adds r2, r4, #3 +_0816103C: + asrs r2, r2, #2 + lsls r1, r2, #2 + subs r1, r4, r1 + lsls r1, r1, #0x13 + movs r0, #0xf8 + lsls r0, r0, #0xf + adds r1, r1, r0 + asrs r1, r1, #0x10 + lsls r2, r2, #0x13 + movs r0, #0xd0 + lsls r0, r0, #0xe + adds r2, r2, r0 + asrs r2, r2, #0x10 + adds r0, r7, #0 + movs r3, #0 + bl CreateSprite + ldr r1, [r6] + adds r2, r4, #0 + adds r2, #8 + adds r1, #1 + adds r1, r1, r2 + strb r0, [r1] + ldr r0, [r6] + adds r0, #1 + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r5, _081610C0 + adds r0, r0, r5 + movs r1, #2 + bl StartSpriteAnim + adds r4, #1 + cmp r4, #7 + ble _08161034 + movs r4, #0 + ldr r3, _081610B4 + movs r2, #4 +_0816108E: + ldr r0, [r3] + adds r0, #1 + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + adds r4, #1 + cmp r4, #0xf + ble _0816108E + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081610B4: .4byte 0x0203B900 +_081610B8: .4byte 0x00000113 +_081610BC: .4byte 0x085ADB54 +_081610C0: .4byte 0x020205AC + thumb_func_end CreateUISprites + + thumb_func_start AddScrollArrows +AddScrollArrows: @ 0x081610C4 + push {r4, r5, r6, lr} + ldr r4, _08161130 + ldr r1, [r4] + movs r2, #0x8a + lsls r2, r2, #1 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0xff + bne _081610EC + ldr r0, _08161134 + movs r3, #0x8b + lsls r3, r3, #1 + adds r1, r1, r3 + bl AddScrollIndicatorArrowPair + ldr r1, [r4] + movs r5, #0x8a + lsls r5, r5, #1 + adds r1, r1, r5 + strb r0, [r1] +_081610EC: + ldr r0, [r4] + ldr r6, _08161138 + adds r0, r0, r6 + ldrb r0, [r0] + cmp r0, #0xff + bne _08161128 + ldr r0, _0816113C + adds r2, r0, #0 + ldr r1, _08161140 + ldm r1!, {r3, r5, r6} + stm r2!, {r3, r5, r6} + ldr r1, [r1] + str r1, [r2] + ldr r2, [r4] + movs r3, #0x88 + lsls r3, r3, #1 + adds r1, r2, r3 + ldrb r1, [r1] + ldr r5, _08161144 + adds r2, r2, r5 + ldrb r2, [r2] + subs r1, r1, r2 + strh r1, [r0, #8] + ldr r1, _08161148 + bl AddScrollIndicatorArrowPair + ldr r1, [r4] + ldr r6, _08161138 + adds r1, r1, r6 + strb r0, [r1] +_08161128: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08161130: .4byte 0x0203B900 +_08161134: .4byte 0x085ADB04 +_08161138: .4byte 0x00000113 +_0816113C: .4byte 0x0203CB58 +_08161140: .4byte 0x085ADB14 +_08161144: .4byte 0x00000111 +_08161148: .4byte 0x0203B904 + thumb_func_end AddScrollArrows + + thumb_func_start RemoveScrollArrows +RemoveScrollArrows: @ 0x0816114C + push {r4, lr} + ldr r4, _08161190 + ldr r0, [r4] + movs r2, #0x8a + lsls r2, r2, #1 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, #0xff + beq _0816116E + bl RemoveScrollIndicatorArrowPair + ldr r0, [r4] + movs r1, #0x8a + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] +_0816116E: + ldr r0, [r4] + ldr r2, _08161194 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, #0xff + beq _08161188 + bl RemoveScrollIndicatorArrowPair + ldr r0, [r4] + ldr r2, _08161194 + adds r1, r0, r2 + movs r0, #0xff + strb r0, [r1] +_08161188: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08161190: .4byte 0x0203B900 +_08161194: .4byte 0x00000113 + thumb_func_end RemoveScrollArrows + + thumb_func_start CreateLearnableMovesList +CreateLearnableMovesList: @ 0x08161198 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + ldr r4, _08161268 + ldr r1, [r4] + adds r0, r1, #0 + adds r0, #0x44 + ldrb r2, [r0] + movs r0, #0x64 + muls r0, r2, r0 + ldr r2, _0816126C + adds r0, r0, r2 + adds r1, #0x12 + bl GetMoveRelearnerMoves + ldr r1, [r4] + movs r6, #0x88 + lsls r6, r6, #1 + adds r1, r1, r6 + strb r0, [r1] + movs r5, #0 + ldr r0, [r4] + adds r0, r0, r6 + ldrb r0, [r0] + cmp r5, r0 + bge _081611FE + mov ip, r4 + ldr r7, _08161270 +_081611CE: + mov r0, ip + ldr r4, [r0] + lsls r3, r5, #3 + adds r2, r4, #0 + adds r2, #0x48 + adds r2, r2, r3 + lsls r0, r5, #1 + adds r1, r4, #0 + adds r1, #0x12 + adds r1, r1, r0 + ldrh r0, [r1] + lsls r0, r0, #3 + adds r0, r0, r7 + str r0, [r2] + adds r0, r4, #0 + adds r0, #0x4c + adds r0, r0, r3 + ldrh r1, [r1] + str r1, [r0] + adds r5, #1 + adds r0, r4, r6 + ldrb r0, [r0] + cmp r5, r0 + blt _081611CE +_081611FE: + ldr r4, _08161268 + ldr r0, [r4] + adds r0, #0x44 + ldrb r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0816126C + adds r0, r0, r1 + movs r1, #2 + mov r2, sp + bl GetMonData + ldr r0, _08161274 + mov r1, sp + bl StringCopy10 + ldr r2, [r4] + movs r5, #0x88 + lsls r5, r5, #1 + adds r3, r2, r5 + ldrb r0, [r3] + lsls r0, r0, #3 + adds r1, r2, #0 + adds r1, #0x48 + adds r1, r1, r0 + ldr r0, _08161278 + str r0, [r1] + ldrb r0, [r3] + lsls r0, r0, #3 + adds r2, #0x4c + adds r2, r2, r0 + movs r0, #2 + rsbs r0, r0, #0 + str r0, [r2] + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + ldr r1, [r4] + adds r0, r1, #0 + adds r0, #0x48 + adds r1, r1, r5 + ldrb r1, [r1] + bl LoadMoveRelearnerMovesList + ldr r1, [r4] + ldr r2, _0816127C + adds r1, r1, r2 + strb r0, [r1] + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08161268: .4byte 0x0203B900 +_0816126C: .4byte 0x02024190 +_08161270: .4byte 0x082EACC4 +_08161274: .4byte 0x02021C40 +_08161278: .4byte 0x085C93C4 +_0816127C: .4byte 0x00000111 + thumb_func_end CreateLearnableMovesList + + thumb_func_start MoveRelearnerShowHideHearts +MoveRelearnerShowHideHearts: @ 0x08161280 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldr r0, _081612C4 + ldrb r0, [r0, #4] + cmp r0, #0 + beq _08161298 + movs r0, #2 + rsbs r0, r0, #0 + cmp r4, r0 + bne _081612D0 +_08161298: + movs r5, #0 + ldr r4, _081612C8 + ldr r3, _081612CC + movs r2, #4 +_081612A0: + ldr r0, [r3] + adds r0, #1 + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0xf + bls _081612A0 + b _08161402 + .align 2, 0 +_081612C4: .4byte 0x0203B904 +_081612C8: .4byte 0x020205AC +_081612CC: .4byte 0x0203B900 +_081612D0: + ldr r1, _08161314 + ldr r0, _08161318 + lsls r4, r4, #3 + adds r0, r4, r0 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #1] + movs r1, #0xa + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + mov r8, r4 + cmp r6, #0xff + bne _081612F2 + movs r6, #0 +_081612F2: + movs r5, #0 + ldr r7, _0816131C + ldr r4, _08161320 +_081612F8: + cmp r5, r6 + bhs _08161324 + ldr r0, [r7] + adds r0, #1 + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #1 + bl StartSpriteAnim + b _0816133A + .align 2, 0 +_08161314: .4byte 0x08566AE4 +_08161318: .4byte 0x08565FCC +_0816131C: .4byte 0x0203B900 +_08161320: .4byte 0x020205AC +_08161324: + ldr r0, [r7] + adds r0, #1 + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0 + bl StartSpriteAnim +_0816133A: + ldr r0, [r7] + adds r0, #1 + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r1, [r0] + movs r3, #5 + rsbs r3, r3, #0 + adds r2, r3, #0 + ands r1, r2 + strb r1, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #7 + bls _081612F8 + ldr r1, _081613AC + ldr r0, _081613B0 + add r0, r8 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #2] + movs r1, #0xa + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0xff + bne _08161380 + movs r6, #0 +_08161380: + movs r5, #0 + ldr r0, _081613B4 + mov r8, r0 + ldr r7, _081613B8 +_08161388: + cmp r5, r6 + bhs _081613BC + mov r1, r8 + ldr r0, [r1] + adds r4, r5, #0 + adds r4, #8 + adds r0, #1 + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + movs r1, #3 + bl StartSpriteAnim + b _081613D8 + .align 2, 0 +_081613AC: .4byte 0x08566AE4 +_081613B0: .4byte 0x08565FCC +_081613B4: .4byte 0x0203B900 +_081613B8: .4byte 0x020205AC +_081613BC: + mov r3, r8 + ldr r0, [r3] + adds r4, r5, #0 + adds r4, #8 + adds r0, #1 + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + movs r1, #2 + bl StartSpriteAnim +_081613D8: + mov r1, r8 + ldr r0, [r1] + adds r0, #1 + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + adds r0, #0x3e + ldrb r1, [r0] + movs r3, #5 + rsbs r3, r3, #0 + adds r2, r3, #0 + ands r1, r2 + strb r1, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #7 + bls _08161388 +_08161402: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end MoveRelearnerShowHideHearts + diff --git a/asm/multiboot.s b/asm/multiboot.s new file mode 100644 index 0000000..204ad62 --- /dev/null +++ b/asm/multiboot.s @@ -0,0 +1,895 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_081BA3A8 +sub_081BA3A8: @ 0x081BA3A8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r7, r0, #0 + bl sub_081BA8CC + cmp r0, #0 + beq _081BA3BE + b _081BA786 +_081BA3BE: + adds r0, r7, #0 + adds r0, #0x4a + ldrb r1, [r0] + mov sl, r0 + cmp r1, #0xf + bls _081BA3D2 + subs r0, r1, #1 + mov r1, sl + strb r0, [r1] + b _081BA786 +_081BA3D2: + adds r1, r7, #0 + adds r1, #0x48 + ldrb r0, [r1] + cmp r0, #0 + beq _081BA3FC + movs r0, #0 + strb r0, [r1] + ldr r0, _081BA3F8 + ldrh r0, [r0] + movs r5, #0xfc + ands r5, r0 + cmp r5, #8 + beq _081BA3FC + adds r0, r7, #0 + bl GetGlyphWidthFont6 + movs r0, #8 + eors r0, r5 + b _081BA788 + .align 2, 0 +_081BA3F8: .4byte 0x04000128 +_081BA3FC: + ldrb r0, [r7, #0x18] + cmp r0, #0xdf + bls _081BA44E + adds r0, r7, #0 + bl sub_081BA8E0 + adds r5, r0, #0 + cmp r5, #0 + beq _081BA410 + b _081BA788 +_081BA410: + adds r0, r7, #0 + adds r0, #0x4b + ldrb r0, [r0] + cmp r0, #1 + bne _081BA42C + ldrb r0, [r7, #0x18] + cmp r0, #0xe1 + bls _081BA42C + adds r0, r7, #0 + bl sub_081BA8CC + cmp r0, #0 + bne _081BA42C + b _081BA776 +_081BA42C: + adds r0, r7, #0 + bl sub_081BA8CC + cmp r0, #0 + beq _081BA438 + b _081BA786 +_081BA438: + ldrh r0, [r7, #0x16] + cmp r0, #0 + bne _081BA448 + adds r0, r7, #0 + bl GetGlyphWidthFont6 + movs r0, #0x71 + b _081BA788 +_081BA448: + subs r0, #1 + strh r0, [r7, #0x16] + b _081BA786 +_081BA44E: + ldrb r0, [r7, #0x18] + cmp r0, #2 + bne _081BA456 + b _081BA58C +_081BA456: + cmp r0, #2 + bgt _081BA464 + cmp r0, #0 + beq _081BA472 + cmp r0, #1 + beq _081BA52E + b _081BA6C4 +_081BA464: + cmp r0, #0xd0 + bne _081BA46A + b _081BA5D8 +_081BA46A: + cmp r0, #0xd1 + bne _081BA470 + b _081BA672 +_081BA470: + b _081BA6C4 +_081BA472: + movs r3, #0xe + movs r5, #3 + ldr r0, _081BA4B8 + ldrh r0, [r0, #6] + adds r1, r0, #0 + ldr r0, _081BA4BC + ldrb r2, [r7, #0x1e] + adds r6, r2, #0 + cmp r1, r0 + bne _081BA49A + adds r4, r1, #0 + ldr r1, _081BA4C0 +_081BA48A: + asrs r3, r3, #1 + subs r1, #2 + subs r5, #1 + cmp r5, #0 + beq _081BA49A + ldrh r0, [r1] + cmp r0, r4 + beq _081BA48A +_081BA49A: + movs r0, #0xe + ands r3, r0 + strb r3, [r7, #0x1d] + movs r5, #3 + ldr r0, _081BA4B8 + ldrh r0, [r0, #6] + adds r4, r0, #0 + asrs r0, r2, #3 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _081BA4C8 + ldr r0, _081BA4C4 + b _081BA4EE + .align 2, 0 +_081BA4B8: .4byte 0x04000120 +_081BA4BC: .4byte 0x0000FFFF +_081BA4C0: .4byte 0x04000126 +_081BA4C4: .4byte 0x00007208 +_081BA4C8: + subs r5, #1 + cmp r5, #0 + beq _081BA4F4 + lsls r0, r5, #1 + ldr r1, _081BA51C + adds r0, r0, r1 + ldrh r0, [r0] + adds r4, r0, #0 + adds r0, r2, #0 + asrs r0, r5 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _081BA4C8 + adds r0, r1, #0 + lsls r0, r5 + movs r1, #0xe4 + lsls r1, r1, #7 + orrs r0, r1 +_081BA4EE: + cmp r4, r0 + beq _081BA4C8 + movs r3, #0 +_081BA4F4: + adds r0, r3, #0 + ands r0, r6 + strb r0, [r7, #0x1e] + cmp r3, #0 + bne _081BA504 + movs r0, #0xf + mov r2, sl + strb r0, [r2] +_081BA504: + mov r1, sl + ldrb r0, [r1] + cmp r0, #0 + bne _081BA520 + ldrb r0, [r7, #0x1d] + ldrb r2, [r7, #0x1e] + cmp r0, r2 + beq _081BA526 + adds r0, r7, #0 + bl sub_081BA7E4 + b _081BA52E + .align 2, 0 +_081BA51C: .4byte 0x04000120 +_081BA520: + subs r0, #1 + mov r1, sl + strb r0, [r1] +_081BA526: + ldrb r1, [r7, #0x1e] + movs r2, #0xc4 + lsls r2, r2, #7 + b _081BA62E +_081BA52E: + adds r1, r7, #0 + adds r1, #0x49 + movs r0, #0 + strb r0, [r1] + movs r5, #3 + mov ip, r1 + ldr r3, _081BA584 +_081BA53C: + lsls r0, r5, #1 + ldr r2, _081BA588 + adds r0, r0, r2 + ldrh r0, [r0] + adds r4, r0, #0 + asrs r0, r4, #8 + subs r2, r5, #1 + cmp r0, #0x72 + bne _081BA566 + lsls r0, r2, #1 + adds r0, r0, r3 + strh r4, [r0] + movs r0, #0xff + ands r4, r0 + movs r0, #1 + lsls r0, r5 + cmp r4, r0 + bne _081BA566 + ldrb r0, [r1] + orrs r4, r0 + strb r4, [r1] +_081BA566: + adds r5, r2, #0 + cmp r5, #0 + bne _081BA53C + ldrb r0, [r7, #0x1d] + mov r1, ip + ldrb r1, [r1] + cmp r0, r1 + bne _081BA526 + movs r0, #2 + strb r0, [r7, #0x18] + mov r2, ip + ldrb r1, [r2] + movs r2, #0xc2 + lsls r2, r2, #7 + b _081BA62E + .align 2, 0 +_081BA584: .4byte 0x03001298 +_081BA588: .4byte 0x04000120 +_081BA58C: + movs r5, #3 + movs r0, #0x49 + adds r0, r0, r7 + mov ip, r0 + mov r4, ip + movs r6, #1 + ldr r1, _081BA5D0 + mov sb, r1 + ldr r2, _081BA5D4 + mov r8, r2 +_081BA5A0: + ldrb r3, [r4] + adds r0, r3, #0 + asrs r0, r5 + ands r0, r6 + subs r2, r5, #1 + cmp r0, #0 + beq _081BA5C6 + lsls r0, r5, #1 + add r0, r8 + ldrh r1, [r0] + lsls r0, r2, #1 + add r0, sb + ldrh r0, [r0] + cmp r1, r0 + beq _081BA5C6 + adds r0, r6, #0 + lsls r0, r5 + eors r3, r0 + strb r3, [r4] +_081BA5C6: + adds r5, r2, #0 + cmp r5, #0 + bne _081BA5A0 + b _081BA72C + .align 2, 0 +_081BA5D0: .4byte 0x03001298 +_081BA5D4: .4byte 0x04000120 +_081BA5D8: + movs r3, #1 + movs r5, #3 + movs r0, #0x49 + adds r0, r0, r7 + mov ip, r0 + adds r6, r7, #0 + adds r6, #0x19 + ldr r1, _081BA63C + mov r8, r1 +_081BA5EA: + lsls r0, r5, #1 + ldr r2, _081BA640 + adds r0, r0, r2 + ldrh r0, [r0] + adds r4, r0, #0 + subs r2, r5, #1 + adds r0, r6, r2 + strb r4, [r0] + mov r0, ip + ldrb r1, [r0] + asrs r1, r5 + movs r0, #1 + ands r1, r0 + cmp r1, #0 + beq _081BA61E + asrs r0, r4, #8 + subs r0, #0x72 + cmp r0, #1 + bls _081BA612 + b _081BA77C +_081BA612: + lsls r0, r2, #1 + add r0, r8 + ldrh r0, [r0] + cmp r4, r0 + bne _081BA61E + movs r3, #0 +_081BA61E: + adds r5, r2, #0 + cmp r5, #0 + bne _081BA5EA + cmp r3, #0 + bne _081BA644 + ldrb r1, [r7, #0x1c] + movs r2, #0xc6 + lsls r2, r2, #7 +_081BA62E: + adds r0, r2, #0 + orrs r1, r0 + adds r0, r7, #0 + bl sub_081BA798 + b _081BA788 + .align 2, 0 +_081BA63C: .4byte 0x03001298 +_081BA640: .4byte 0x04000120 +_081BA644: + movs r0, #0xd1 + strb r0, [r7, #0x18] + movs r3, #0x11 + movs r5, #3 + adds r1, r6, #2 +_081BA64E: + ldrb r0, [r1] + adds r3, r3, r0 + subs r1, #1 + subs r5, #1 + cmp r5, #0 + bne _081BA64E + strb r3, [r7, #0x14] + movs r0, #0xff + ands r3, r0 + movs r1, #0xc8 + lsls r1, r1, #7 + adds r0, r1, #0 + orrs r3, r0 + adds r0, r7, #0 + adds r1, r3, #0 + bl sub_081BA798 + b _081BA788 +_081BA672: + movs r5, #3 + movs r2, #0x49 + ldrb r1, [r2, r7] + ldr r2, _081BA6B0 + movs r3, #1 +_081BA67C: + ldrh r0, [r2] + adds r4, r0, #0 + adds r0, r1, #0 + asrs r0, r5 + ands r0, r3 + cmp r0, #0 + beq _081BA690 + asrs r0, r4, #8 + cmp r0, #0x73 + bne _081BA77C +_081BA690: + subs r2, #2 + subs r5, #1 + cmp r5, #0 + bne _081BA67C + adds r0, r7, #0 + bl MultiBoot + adds r5, r0, #0 + cmp r5, #0 + bne _081BA6B4 + movs r0, #0xe0 + strb r0, [r7, #0x18] + adds r0, #0xb0 + strh r0, [r7, #0x16] + b _081BA786 + .align 2, 0 +_081BA6B0: .4byte 0x04000126 +_081BA6B4: + adds r0, r7, #0 + bl GetGlyphWidthFont6 + movs r0, #0x1e + mov r1, sl + strb r0, [r1] + movs r0, #0x70 + b _081BA788 +_081BA6C4: + movs r5, #3 + movs r2, #0x49 + adds r2, r2, r7 + mov ip, r2 + mov r8, ip + movs r0, #1 + mov sb, r0 +_081BA6D2: + mov r1, r8 + ldrb r6, [r1] + adds r0, r6, #0 + asrs r0, r5 + mov r2, sb + ands r0, r2 + cmp r0, #0 + beq _081BA70C + lsls r0, r5, #1 + ldr r1, _081BA728 + adds r0, r0, r1 + ldrh r0, [r0] + adds r4, r0, #0 + asrs r2, r4, #8 + ldrb r0, [r7, #0x18] + lsrs r0, r0, #1 + movs r1, #0x62 + subs r1, r1, r0 + mov r3, sb + lsls r3, r5 + cmp r2, r1 + bne _081BA706 + movs r0, #0xff + ands r4, r0 + cmp r4, r3 + beq _081BA70C +_081BA706: + eors r6, r3 + mov r2, r8 + strb r6, [r2] +_081BA70C: + subs r5, #1 + cmp r5, #0 + bne _081BA6D2 + ldrb r0, [r7, #0x18] + cmp r0, #0xc4 + bne _081BA72C + mov r0, ip + ldrb r1, [r0] + movs r0, #0xe + ands r0, r1 + strb r0, [r7, #0x1e] + strb r5, [r7, #0x18] + b _081BA526 + .align 2, 0 +_081BA728: .4byte 0x04000120 +_081BA72C: + mov r1, ip + ldrb r0, [r1] + cmp r0, #0 + bne _081BA73E + adds r0, r7, #0 + bl GetGlyphWidthFont6 + movs r0, #0x50 + b _081BA788 +_081BA73E: + ldrb r0, [r7, #0x18] + adds r0, #2 + strb r0, [r7, #0x18] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xc4 + bne _081BA74E + b _081BA526 +_081BA74E: + ldrb r0, [r7, #0x18] + ldr r1, [r7, #0x28] + adds r0, r0, r1 + subs r1, r0, #3 + ldrb r2, [r1] + lsls r2, r2, #8 + subs r0, #4 + ldrb r1, [r0] + orrs r1, r2 + adds r0, r7, #0 + bl sub_081BA798 + adds r5, r0, #0 + cmp r5, #0 + bne _081BA788 + adds r0, r7, #0 + adds r0, #0x4b + ldrb r0, [r0] + cmp r0, #1 + bne _081BA786 +_081BA776: + bl sub_081BA9E4 + b _081BA3D2 +_081BA77C: + adds r0, r7, #0 + bl GetGlyphWidthFont6 + movs r0, #0x60 + b _081BA788 +_081BA786: + movs r0, #0 +_081BA788: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081BA3A8 + + thumb_func_start sub_081BA798 +sub_081BA798: @ 0x081BA798 + push {r4, lr} + adds r2, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r3, _081BA7C4 + ldrh r0, [r3] + movs r4, #0x8c + ands r4, r0 + cmp r4, #8 + bne _081BA7D0 + ldr r0, _081BA7C8 + strh r1, [r0] + ldr r1, _081BA7CC + adds r0, r1, #0 + strh r0, [r3] + adds r1, r2, #0 + adds r1, #0x48 + movs r0, #1 + strb r0, [r1] + movs r0, #0 + b _081BA7DC + .align 2, 0 +_081BA7C4: .4byte 0x04000128 +_081BA7C8: .4byte 0x0400012A +_081BA7CC: .4byte 0x00002083 +_081BA7D0: + adds r0, r2, #0 + bl GetGlyphWidthFont6 + movs r0, #8 + eors r4, r0 + adds r0, r4, #0 +_081BA7DC: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081BA798 + + thumb_func_start sub_081BA7E4 +sub_081BA7E4: @ 0x081BA7E4 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0x18] + cmp r0, #0 + beq _081BA7F6 + adds r0, r1, #0 + bl GetGlyphWidthFont6 + b _081BA802 +_081BA7F6: + adds r2, r1, #0 + adds r2, #0x4a + strb r0, [r2] + strb r0, [r1, #0x1e] + movs r0, #1 + strb r0, [r1, #0x18] +_081BA802: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081BA7E4 + + thumb_func_start sub_081BA808 +sub_081BA808: @ 0x081BA808 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r0, [sp, #0x14] + lsls r3, r3, #0x18 + lsrs r5, r3, #0x18 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r3, #0 + ldrb r0, [r4, #0x18] + cmp r0, #0 + bne _081BA844 + ldrb r0, [r4, #0x1e] + cmp r0, #0 + beq _081BA844 + adds r0, r4, #0 + adds r0, #0x4a + ldrb r0, [r0] + cmp r0, #0 + bne _081BA844 + str r6, [r4, #0x20] + adds r2, #0xf + movs r0, #0x10 + rsbs r0, r0, #0 + ands r2, r0 + subs r0, #0xf0 + adds r1, r2, r0 + ldr r0, _081BA84C + cmp r1, r0 + bls _081BA850 +_081BA844: + adds r0, r4, #0 + bl GetGlyphWidthFont6 + b _081BA8C4 + .align 2, 0 +_081BA84C: .4byte 0x0003FF00 +_081BA850: + adds r0, r6, r2 + str r0, [r4, #0x24] + lsls r1, r7, #0x18 + movs r2, #0x80 + lsls r2, r2, #0x13 + adds r0, r1, r2 + asrs r0, r0, #0x18 + adds r2, r1, #0 + cmp r0, #8 + bhi _081BA8B0 + lsls r0, r0, #2 + ldr r1, _081BA870 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081BA870: .4byte 0x081BA874 +_081BA874: @ jump table + .4byte _081BA898 @ case 0 + .4byte _081BA898 @ case 1 + .4byte _081BA898 @ case 2 + .4byte _081BA898 @ case 3 + .4byte _081BA8A2 @ case 4 + .4byte _081BA8A8 @ case 5 + .4byte _081BA8A8 @ case 6 + .4byte _081BA8A8 @ case 7 + .4byte _081BA8A8 @ case 8 +_081BA898: + lsls r3, r5, #3 + asrs r1, r2, #0x18 + movs r0, #3 + subs r0, r0, r1 + b _081BA8AE +_081BA8A2: + movs r0, #0x38 + adds r3, r5, #0 + b _081BA8AE +_081BA8A8: + lsls r3, r5, #3 + asrs r0, r2, #0x18 + subs r0, #1 +_081BA8AE: + orrs r3, r0 +_081BA8B0: + movs r0, #0x3f + ands r3, r0 + lsls r0, r3, #1 + movs r2, #0x7f + rsbs r2, r2, #0 + adds r1, r2, #0 + orrs r0, r1 + strb r0, [r4, #0x1c] + movs r0, #0xd0 + strb r0, [r4, #0x18] +_081BA8C4: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081BA808 + + thumb_func_start sub_081BA8CC +sub_081BA8CC: @ 0x081BA8CC + push {lr} + ldrb r0, [r0, #0x18] + cmp r0, #0xe9 + beq _081BA8D8 + movs r0, #0 + b _081BA8DA +_081BA8D8: + movs r0, #1 +_081BA8DA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081BA8CC + + thumb_func_start sub_081BA8E0 +sub_081BA8E0: @ 0x081BA8E0 + push {r4, r5, r6, lr} + adds r3, r0, #0 + ldrb r0, [r3, #0x18] + cmp r0, #0xe0 + beq _081BA8FC + cmp r0, #0xe0 + blt _081BA90C + cmp r0, #0xe8 + bgt _081BA90C + cmp r0, #0xe7 + blt _081BA90C + movs r4, #3 + ldrb r5, [r3, #0x1e] + b _081BA96C +_081BA8FC: + movs r1, #0 + movs r0, #0xe1 + strb r0, [r3, #0x18] + str r1, [r3, #4] + movs r0, #0x80 + lsls r0, r0, #0xd + str r0, [r3] + b _081BA95E +_081BA90C: + movs r4, #3 + ldrb r5, [r3, #0x1e] + movs r6, #1 + ldr r1, _081BA968 +_081BA914: + ldrh r0, [r1] + adds r2, r0, #0 + adds r0, r5, #0 + asrs r0, r4 + ands r0, r6 + cmp r0, #0 + beq _081BA928 + ldr r0, [r3, #4] + cmp r2, r0 + bne _081BA8FC +_081BA928: + subs r1, #2 + subs r4, #1 + cmp r4, #0 + bne _081BA914 + ldrb r0, [r3, #0x18] + adds r0, #1 + strb r0, [r3, #0x18] + ldr r1, [r3] + ldrh r0, [r3] + str r0, [r3, #4] + cmp r1, #0 + bne _081BA956 + ldr r0, [r3, #0x28] + adds r1, r0, #0 + adds r1, #0xac + ldrb r1, [r1] + adds r0, #0xad + ldrb r0, [r0] + lsls r0, r0, #8 + orrs r1, r0 + str r1, [r3, #4] + lsls r1, r1, #5 + str r1, [r3] +_081BA956: + ldr r0, [r3] + lsrs r0, r0, #5 + str r0, [r3] +_081BA95C: + ldrh r1, [r3] +_081BA95E: + adds r0, r3, #0 + bl sub_081BA798 + b _081BA9C4 + .align 2, 0 +_081BA968: .4byte 0x04000126 +_081BA96C: + lsls r0, r4, #1 + ldr r1, _081BA9B4 + adds r0, r0, r1 + ldrh r0, [r0] + adds r2, r0, #0 + adds r0, r5, #0 + asrs r0, r4 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _081BA988 + ldr r0, [r3, #4] + cmp r2, r0 + bne _081BA9B8 +_081BA988: + subs r4, #1 + cmp r4, #0 + bne _081BA96C + ldrb r0, [r3, #0x18] + adds r0, #1 + strb r0, [r3, #0x18] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xe9 + beq _081BA9C2 + ldr r0, [r3, #0x28] + adds r1, r0, #0 + adds r1, #0xae + ldrb r1, [r1] + adds r0, #0xaf + ldrb r0, [r0] + lsls r0, r0, #8 + orrs r1, r0 + str r1, [r3] + str r1, [r3, #4] + b _081BA95C + .align 2, 0 +_081BA9B4: .4byte 0x04000120 +_081BA9B8: + adds r0, r3, #0 + bl GetGlyphWidthFont6 + movs r0, #0x71 + b _081BA9C4 +_081BA9C2: + movs r0, #0 +_081BA9C4: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081BA8E0 + + thumb_func_start sub_081BA9CC +sub_081BA9CC: @ 0x081BA9CC + mov r2, pc + lsrs r2, r2, #0x18 + movs r1, #0xc + cmp r2, #2 + beq _081BA9DE + movs r1, #0xd + cmp r2, #8 + beq _081BA9DE + movs r1, #4 +_081BA9DE: + subs r0, r0, r1 + bgt _081BA9DE + bx lr + thumb_func_end sub_081BA9CC + + thumb_func_start sub_081BA9E4 +sub_081BA9E4: @ 0x081BA9E4 + push {r4, r5, lr} + movs r2, #0 + ldr r3, _081BAA18 + ldrh r1, [r3] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _081BAA08 + ldr r5, _081BAA1C + movs r4, #0x80 +_081BA9F8: + adds r2, #1 + cmp r2, r5 + bgt _081BAA08 + ldrh r1, [r3] + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + bne _081BA9F8 +_081BAA08: + movs r0, #0x96 + lsls r0, r0, #2 + bl sub_081BA9CC + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081BAA18: .4byte 0x04000128 +_081BAA1C: .4byte 0x0000795C + thumb_func_end sub_081BA9E4 + diff --git a/asm/mystery_event_script.s b/asm/mystery_event_script.s new file mode 100644 index 0000000..9231c86 --- /dev/null +++ b/asm/mystery_event_script.s @@ -0,0 +1,930 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start CheckCompatibility +CheckCompatibility: @ 0x08153708 + push {r4, lr} + adds r4, r3, #0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + movs r3, #1 + ands r0, r3 + cmp r0, #0 + beq _08153738 + ands r1, r3 + cmp r1, #0 + beq _08153738 + movs r0, #4 + ands r2, r0 + cmp r2, #0 + beq _08153738 + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r4 + cmp r0, #0 + beq _08153738 + movs r0, #1 + b _0815373A +_08153738: + movs r0, #0 +_0815373A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end CheckCompatibility + + thumb_func_start SetIncompatible +SetIncompatible: @ 0x08153740 + push {lr} + ldr r0, _08153754 + ldr r1, _08153758 + bl StringExpandPlaceholders + movs r0, #3 + bl SetMysteryEventScriptStatus + pop {r0} + bx r0 + .align 2, 0 +_08153754: .4byte 0x02021C7C +_08153758: .4byte 0x085FCBDE + thumb_func_end SetIncompatible + + thumb_func_start InitMysteryEventScript +InitMysteryEventScript: @ 0x0815375C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _08153784 + ldr r2, _08153788 + bl InitScriptContext + adds r0, r4, #0 + adds r1, r5, #0 + bl SetupBytecodeScript + str r5, [r4, #0x64] + movs r0, #0 + str r0, [r4, #0x68] + str r0, [r4, #0x6c] + str r0, [r4, #0x70] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08153784: .4byte 0x0828D2B4 +_08153788: .4byte 0x0828D2F8 + thumb_func_end InitMysteryEventScript + + thumb_func_start RunMysteryEventScriptCommand +RunMysteryEventScriptCommand: @ 0x0815378C + push {r4, lr} + adds r4, r0, #0 + bl RunScriptCommand + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081537A4 + ldr r0, [r4, #0x70] + cmp r0, #0 + beq _081537A4 + movs r0, #1 + b _081537A6 +_081537A4: + movs r0, #0 +_081537A6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end RunMysteryEventScriptCommand + + thumb_func_start sub_081537AC +sub_081537AC: @ 0x081537AC + push {lr} + adds r1, r0, #0 + ldr r0, _081537BC + bl InitMysteryEventScript + pop {r0} + bx r0 + .align 2, 0 +_081537BC: .4byte 0x0203B88C + thumb_func_end sub_081537AC + + thumb_func_start sub_081537C0 +sub_081537C0: @ 0x081537C0 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _081537D8 + adds r0, r4, #0 + bl RunMysteryEventScriptCommand + ldr r1, [r4, #0x6c] + str r1, [r5] + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081537D8: .4byte 0x0203B88C + thumb_func_end sub_081537C0 + + thumb_func_start RunMysteryEventScript +RunMysteryEventScript: @ 0x081537DC + push {r4, lr} + adds r1, r0, #0 + ldr r4, _081537FC + adds r0, r4, #0 + bl InitMysteryEventScript +_081537E8: + adds r0, r4, #0 + bl RunMysteryEventScriptCommand + cmp r0, #0 + bne _081537E8 + ldr r0, [r4, #0x6c] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081537FC: .4byte 0x0203B88C + thumb_func_end RunMysteryEventScript + + thumb_func_start SetMysteryEventScriptStatus +SetMysteryEventScriptStatus: @ 0x08153800 + ldr r1, _08153808 + str r0, [r1, #0x6c] + bx lr + .align 2, 0 +_08153808: .4byte 0x0203B88C + thumb_func_end SetMysteryEventScriptStatus + + thumb_func_start CalcRecordMixingGiftChecksum +CalcRecordMixingGiftChecksum: @ 0x0815380C + push {lr} + movs r2, #0 + ldr r0, _0815382C + ldr r0, [r0] + ldr r1, _08153830 + adds r3, r0, r1 + movs r1, #0 +_0815381A: + adds r0, r3, r1 + ldrb r0, [r0] + adds r2, r2, r0 + adds r1, #1 + cmp r1, #0xb + bls _0815381A + adds r0, r2, #0 + pop {r1} + bx r1 + .align 2, 0 +_0815382C: .4byte 0x03005AEC +_08153830: .4byte 0x00003B18 + thumb_func_end CalcRecordMixingGiftChecksum + + thumb_func_start IsRecordMixingGiftValid +IsRecordMixingGiftValid: @ 0x08153834 + push {r4, r5, lr} + ldr r5, _0815386C + ldr r0, [r5] + ldr r1, _08153870 + adds r4, r0, r1 + bl CalcRecordMixingGiftChecksum + adds r1, r0, #0 + ldrb r0, [r4] + cmp r0, #0 + beq _08153866 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _08153866 + ldrh r0, [r4, #2] + cmp r0, #0 + beq _08153866 + cmp r1, #0 + beq _08153866 + ldr r0, [r5] + ldr r2, _08153874 + adds r0, r0, r2 + ldr r0, [r0] + cmp r1, r0 + beq _08153878 +_08153866: + movs r0, #0 + b _0815387A + .align 2, 0 +_0815386C: .4byte 0x03005AEC +_08153870: .4byte 0x00003B18 +_08153874: .4byte 0x00003B14 +_08153878: + movs r0, #1 +_0815387A: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end IsRecordMixingGiftValid + + thumb_func_start ClearRecordMixingGift +ClearRecordMixingGift: @ 0x08153880 + push {lr} + sub sp, #4 + mov r1, sp + movs r0, #0 + strh r0, [r1] + ldr r0, _081538A0 + ldr r1, [r0] + ldr r0, _081538A4 + adds r1, r1, r0 + ldr r2, _081538A8 + mov r0, sp + bl CpuSet + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_081538A0: .4byte 0x03005AEC +_081538A4: .4byte 0x00003B14 +_081538A8: .4byte 0x01000008 + thumb_func_end ClearRecordMixingGift + + thumb_func_start SetRecordMixingGift +SetRecordMixingGift: @ 0x081538AC + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r3, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r5, r1, #0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + adds r6, r2, #0 + cmp r3, #0 + beq _081538CC + cmp r1, #0 + beq _081538CC + cmp r2, #0 + bne _081538D2 +_081538CC: + bl ClearRecordMixingGift + b _081538F8 +_081538D2: + ldr r4, _08153900 + ldr r0, [r4] + ldr r1, _08153904 + adds r0, r0, r1 + strb r3, [r0] + ldr r0, [r4] + ldr r2, _08153908 + adds r0, r0, r2 + strb r5, [r0] + ldr r0, [r4] + adds r1, #2 + adds r0, r0, r1 + strh r6, [r0] + bl CalcRecordMixingGiftChecksum + ldr r1, [r4] + ldr r2, _0815390C + adds r1, r1, r2 + str r0, [r1] +_081538F8: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08153900: .4byte 0x03005AEC +_08153904: .4byte 0x00003B18 +_08153908: .4byte 0x00003B19 +_0815390C: .4byte 0x00003B14 + thumb_func_end SetRecordMixingGift + + thumb_func_start GetRecordMixingGift +GetRecordMixingGift: @ 0x08153910 + push {r4, r5, r6, lr} + ldr r6, _0815392C + ldr r0, [r6] + ldr r1, _08153930 + adds r4, r0, r1 + bl IsRecordMixingGiftValid + cmp r0, #0 + bne _08153934 + bl ClearRecordMixingGift + movs r0, #0 + b _08153956 + .align 2, 0 +_0815392C: .4byte 0x03005AEC +_08153930: .4byte 0x00003B18 +_08153934: + ldrh r5, [r4, #2] + ldrb r0, [r4, #1] + subs r0, #1 + strb r0, [r4, #1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08153948 + bl ClearRecordMixingGift + b _08153954 +_08153948: + bl CalcRecordMixingGiftChecksum + ldr r1, [r6] + ldr r2, _0815395C + adds r1, r1, r2 + str r0, [r1] +_08153954: + adds r0, r5, #0 +_08153956: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0815395C: .4byte 0x00003B14 + thumb_func_end GetRecordMixingGift + + thumb_func_start MEScrCmd_end +MEScrCmd_end: @ 0x08153960 + push {lr} + bl StopScript + movs r0, #1 + pop {r1} + bx r1 + thumb_func_end MEScrCmd_end + + thumb_func_start MEScrCmd_checkcompat +MEScrCmd_checkcompat: @ 0x0815396C + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + bl ScriptReadWord + str r0, [r7, #0x68] + adds r0, r7, #0 + bl ScriptReadHalfword + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + adds r0, r7, #0 + bl ScriptReadWord + adds r6, r0, #0 + adds r0, r7, #0 + bl ScriptReadHalfword + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r7, #0 + bl ScriptReadWord + adds r3, r0, #0 + adds r0, r5, #0 + adds r1, r6, #0 + adds r2, r4, #0 + bl CheckCompatibility + cmp r0, #1 + bne _081539B0 + str r0, [r7, #0x70] + b _081539B4 +_081539B0: + bl SetIncompatible +_081539B4: + movs r0, #1 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end MEScrCmd_checkcompat + + thumb_func_start MEScrCmd_nop +MEScrCmd_nop: @ 0x081539BC + movs r0, #0 + bx lr + thumb_func_end MEScrCmd_nop + + thumb_func_start MEScrCmd_setstatus +MEScrCmd_setstatus: @ 0x081539C0 + ldr r1, [r0, #8] + ldrb r2, [r1] + adds r1, #1 + str r1, [r0, #8] + str r2, [r0, #0x6c] + movs r0, #0 + bx lr + .align 2, 0 + thumb_func_end MEScrCmd_setstatus + + thumb_func_start MEScrCmd_setmsg +MEScrCmd_setmsg: @ 0x081539D0 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #8] + ldrb r5, [r0] + adds r0, #1 + str r0, [r4, #8] + adds r0, r4, #0 + bl ScriptReadWord + ldr r1, [r4, #0x68] + subs r0, r0, r1 + ldr r1, [r4, #0x64] + adds r1, r0, r1 + cmp r5, #0xff + beq _081539F4 + ldr r0, [r4, #0x6c] + cmp r5, r0 + bne _081539FA +_081539F4: + ldr r0, _08153A04 + bl StringExpandPlaceholders +_081539FA: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08153A04: .4byte 0x02021C7C + thumb_func_end MEScrCmd_setmsg + + thumb_func_start MEScrCmd_runscript +MEScrCmd_runscript: @ 0x08153A08 + push {r4, lr} + adds r4, r0, #0 + bl ScriptReadWord + ldr r1, [r4, #0x68] + subs r0, r0, r1 + ldr r1, [r4, #0x64] + adds r0, r0, r1 + bl ScriptContext2_RunNewScript + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end MEScrCmd_runscript + + thumb_func_start MEScrCmd_setenigmaberry +MEScrCmd_setenigmaberry: @ 0x08153A24 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + bl IsEnigmaBerryValid + mov r8, r0 + adds r0, r7, #0 + bl ScriptReadWord + adds r4, r0, #0 + ldr r0, [r7, #0x68] + subs r4, r4, r0 + ldr r0, [r7, #0x64] + adds r4, r4, r0 + ldr r0, _08153A78 + mov sb, r0 + ldr r6, _08153A7C + ldr r1, [r6] + ldr r5, _08153A80 + adds r1, r1, r5 + movs r2, #7 + bl StringCopyN + adds r0, r4, #0 + bl SetEnigmaBerry + ldr r4, _08153A84 + ldr r1, [r6] + adds r1, r1, r5 + adds r0, r4, #0 + movs r2, #7 + bl StringCopyN + mov r0, r8 + cmp r0, #0 + bne _08153A90 + ldr r0, _08153A88 + ldr r1, _08153A8C + b _08153AB0 + .align 2, 0 +_08153A78: .4byte 0x02021C40 +_08153A7C: .4byte 0x03005AEC +_08153A80: .4byte 0x000031F8 +_08153A84: .4byte 0x02021C54 +_08153A88: .4byte 0x02021C7C +_08153A8C: .4byte 0x085FCAF8 +_08153A90: + mov r0, sb + adds r1, r4, #0 + bl StringCompare + cmp r0, #0 + beq _08153AAC + ldr r0, _08153AA4 + ldr r1, _08153AA8 + b _08153AB0 + .align 2, 0 +_08153AA4: .4byte 0x02021C7C +_08153AA8: .4byte 0x085FCB19 +_08153AAC: + ldr r0, _08153ACC + ldr r1, _08153AD0 +_08153AB0: + bl StringExpandPlaceholders + movs r0, #2 + str r0, [r7, #0x6c] + bl IsEnigmaBerryValid + cmp r0, #1 + bne _08153AD8 + ldr r0, _08153AD4 + movs r1, #1 + bl VarSet + b _08153ADC + .align 2, 0 +_08153ACC: .4byte 0x02021C7C +_08153AD0: .4byte 0x085FCB2C +_08153AD4: .4byte 0x0000402D +_08153AD8: + movs r0, #1 + str r0, [r7, #0x6c] +_08153ADC: + movs r0, #0 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MEScrCmd_setenigmaberry + + thumb_func_start MEScrCmd_giveribbon +MEScrCmd_giveribbon: @ 0x08153AEC + push {r4, lr} + adds r4, r0, #0 + ldr r2, [r4, #8] + ldrb r0, [r2] + adds r2, #1 + str r2, [r4, #8] + ldrb r1, [r2] + adds r2, #1 + str r2, [r4, #8] + bl sub_080FA3A0 + ldr r0, _08153B18 + ldr r1, _08153B1C + bl StringExpandPlaceholders + movs r0, #2 + str r0, [r4, #0x6c] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08153B18: .4byte 0x02021C7C +_08153B1C: .4byte 0x085FCB3D + thumb_func_end MEScrCmd_giveribbon + + thumb_func_start MEScrCmd_initramscript +MEScrCmd_initramscript: @ 0x08153B20 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #4 + adds r4, r0, #0 + ldr r0, [r4, #8] + ldrb r1, [r0] + mov sb, r1 + adds r0, #1 + str r0, [r4, #8] + ldrb r1, [r0] + mov r8, r1 + adds r1, r0, #1 + str r1, [r4, #8] + ldrb r6, [r0, #1] + adds r1, #1 + str r1, [r4, #8] + adds r0, r4, #0 + bl ScriptReadWord + adds r5, r0, #0 + ldr r0, [r4, #0x68] + subs r5, r5, r0 + ldr r0, [r4, #0x64] + adds r5, r5, r0 + adds r0, r4, #0 + bl ScriptReadWord + adds r1, r0, #0 + ldr r0, [r4, #0x68] + subs r1, r1, r0 + ldr r0, [r4, #0x64] + adds r1, r1, r0 + subs r1, r1, r5 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r6, [sp] + adds r0, r5, #0 + mov r2, sb + mov r3, r8 + bl InitRamScript + movs r0, #0 + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MEScrCmd_initramscript + + thumb_func_start MEScrCmd_enableresetrtc +MEScrCmd_enableresetrtc: @ 0x08153B88 + push {r4, lr} + adds r4, r0, #0 + bl EnableNationalPokedex + ldr r0, _08153BA4 + ldr r1, _08153BA8 + bl StringExpandPlaceholders + movs r0, #2 + str r0, [r4, #0x6c] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08153BA4: .4byte 0x02021C7C +_08153BA8: .4byte 0x085FCB59 + thumb_func_end MEScrCmd_enableresetrtc + + thumb_func_start MEScrCmd_addrareword +MEScrCmd_addrareword: @ 0x08153BAC + push {r4, lr} + adds r4, r0, #0 + ldr r1, [r4, #8] + ldrb r0, [r1] + adds r1, #1 + str r1, [r4, #8] + bl sub_0811F4A0 + ldr r0, _08153BD0 + ldr r1, _08153BD4 + bl StringExpandPlaceholders + movs r0, #2 + str r0, [r4, #0x6c] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08153BD0: .4byte 0x02021C7C +_08153BD4: .4byte 0x085FCB70 + thumb_func_end MEScrCmd_addrareword + + thumb_func_start MEScrCmd_setrecordmixinggift +MEScrCmd_setrecordmixinggift: @ 0x08153BD8 + push {r4, r5, lr} + ldr r1, [r0, #8] + ldrb r5, [r1] + adds r1, #1 + str r1, [r0, #8] + ldrb r4, [r1] + adds r1, #1 + str r1, [r0, #8] + bl ScriptReadHalfword + adds r2, r0, #0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl SetRecordMixingGift + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MEScrCmd_setrecordmixinggift + + thumb_func_start MEScrCmd_givepokemon +MEScrCmd_givepokemon: @ 0x08153C04 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x88 + adds r6, r0, #0 + bl ScriptReadWord + ldr r1, [r6, #0x68] + subs r0, r0, r1 + ldr r1, [r6, #0x64] + adds r5, r0, r1 + movs r0, #0x64 + adds r0, r0, r5 + mov r8, r0 + add r4, sp, #0x24 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0x64 + bl memcpy + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r0, #0xce + lsls r0, r0, #1 + cmp r4, r0 + bne _08153C54 + ldr r0, _08153C4C + ldr r1, _08153C50 + movs r2, #0xb + bl StringCopyN + b _08153C5E + .align 2, 0 +_08153C4C: .4byte 0x02021C40 +_08153C50: .4byte 0x085C8C62 +_08153C54: + ldr r0, _08153C74 + ldr r1, _08153C78 + movs r2, #0xb + bl StringCopyN +_08153C5E: + ldr r0, _08153C7C + ldrb r0, [r0] + cmp r0, #6 + bne _08153C88 + ldr r0, _08153C80 + ldr r1, _08153C84 + bl StringExpandPlaceholders + movs r0, #3 + b _08153CF2 + .align 2, 0 +_08153C74: .4byte 0x02021C40 +_08153C78: .4byte 0x085C8C66 +_08153C7C: .4byte 0x0202418D +_08153C80: .4byte 0x02021C7C +_08153C84: .4byte 0x085FCB90 +_08153C88: + ldr r7, _08153D04 + adds r0, r7, #0 + adds r1, r5, #0 + movs r2, #0x64 + bl memcpy + mov r0, sp + mov r1, r8 + movs r2, #0x24 + bl memcpy + movs r0, #0xce + lsls r0, r0, #1 + cmp r4, r0 + beq _08153CC2 + adds r0, r4, #0 + bl HoennToNationalOrder + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r4, #0 + movs r1, #2 + bl GetSetPokedexFlag + adds r0, r4, #0 + movs r1, #3 + bl GetSetPokedexFlag +_08153CC2: + adds r0, r7, #0 + movs r1, #0xc + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl ItemIsMail + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08153CE0 + adds r0, r7, #0 + mov r1, sp + bl GiveMailToMon2 +_08153CE0: + bl CompactPartySlots + bl CalculatePlayerPartyCount + ldr r0, _08153D08 + ldr r1, _08153D0C + bl StringExpandPlaceholders + movs r0, #2 +_08153CF2: + str r0, [r6, #0x6c] + movs r0, #0 + add sp, #0x88 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08153D04: .4byte 0x02024384 +_08153D08: .4byte 0x02021C7C +_08153D0C: .4byte 0x085FCB83 + thumb_func_end MEScrCmd_givepokemon + + thumb_func_start MEScrCmd_addtrainer +MEScrCmd_addtrainer: @ 0x08153D10 + push {r4, lr} + adds r4, r0, #0 + bl ScriptReadWord + adds r1, r0, #0 + ldr r0, [r4, #0x68] + subs r1, r1, r0 + ldr r0, [r4, #0x64] + adds r1, r1, r0 + ldr r0, _08153D48 + ldr r0, [r0] + ldr r2, _08153D4C + adds r0, r0, r2 + movs r2, #0xbc + bl memcpy + bl ValidateEReaderTrainer + ldr r0, _08153D50 + ldr r1, _08153D54 + bl StringExpandPlaceholders + movs r0, #2 + str r0, [r4, #0x6c] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08153D48: .4byte 0x03005AF0 +_08153D4C: .4byte 0x00000BEC +_08153D50: .4byte 0x02021C7C +_08153D54: .4byte 0x085FCBAA + thumb_func_end MEScrCmd_addtrainer + + thumb_func_start MEScrCmd_givenationaldex +MEScrCmd_givenationaldex: @ 0x08153D58 + push {r4, lr} + adds r4, r0, #0 + bl EnableResetRTC + ldr r0, _08153D74 + ldr r1, _08153D78 + bl StringExpandPlaceholders + movs r0, #2 + str r0, [r4, #0x6c] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08153D74: .4byte 0x02021C7C +_08153D78: .4byte 0x085CBF86 + thumb_func_end MEScrCmd_givenationaldex + + thumb_func_start MEScrCmd_checksum +MEScrCmd_checksum: @ 0x08153D7C + push {r4, r5, r6, lr} + adds r6, r0, #0 + bl ScriptReadWord + adds r5, r0, #0 + adds r0, r6, #0 + bl ScriptReadWord + adds r4, r0, #0 + ldr r0, [r6, #0x68] + subs r4, r4, r0 + ldr r0, [r6, #0x64] + adds r4, r4, r0 + adds r0, r6, #0 + bl ScriptReadWord + adds r1, r0, #0 + ldr r0, [r6, #0x68] + subs r1, r1, r0 + ldr r0, [r6, #0x64] + adds r1, r1, r0 + subs r1, r1, r4 + adds r0, r4, #0 + bl CalcByteArraySum + cmp r5, r0 + beq _08153DBA + movs r0, #0 + str r0, [r6, #0x70] + movs r0, #1 + str r0, [r6, #0x6c] +_08153DBA: + movs r0, #1 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MEScrCmd_checksum + + thumb_func_start MEScrCmd_crc +MEScrCmd_crc: @ 0x08153DC4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + bl ScriptReadWord + adds r5, r0, #0 + adds r0, r6, #0 + bl ScriptReadWord + adds r4, r0, #0 + ldr r0, [r6, #0x68] + subs r4, r4, r0 + ldr r0, [r6, #0x64] + adds r4, r4, r0 + adds r0, r6, #0 + bl ScriptReadWord + adds r1, r0, #0 + ldr r0, [r6, #0x68] + subs r1, r1, r0 + ldr r0, [r6, #0x64] + adds r1, r1, r0 + subs r1, r1, r4 + adds r0, r4, #0 + bl CalcCRC16 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r5, r0 + beq _08153E06 + movs r0, #0 + str r0, [r6, #0x70] + movs r0, #1 + str r0, [r6, #0x6c] +_08153E06: + movs r0, #1 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MEScrCmd_crc + diff --git a/asm/mystery_gift.s b/asm/mystery_gift.s new file mode 100644 index 0000000..757c047 --- /dev/null +++ b/asm/mystery_gift.s @@ -0,0 +1,2628 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start vblankcb_mystery_gift_e_reader_run +vblankcb_mystery_gift_e_reader_run: @ 0x08017EBC + push {lr} + bl ProcessSpriteCopyRequests + bl LoadOam + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end vblankcb_mystery_gift_e_reader_run + + thumb_func_start c2_mystery_gift_e_reader_run +c2_mystery_gift_e_reader_run: @ 0x08017ED0 + push {lr} + bl RunTasks + bl RunTextPrinters + bl AnimateSprites + bl BuildOamBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end c2_mystery_gift_e_reader_run + + thumb_func_start HandleMysteryGiftOrEReaderSetup +HandleMysteryGiftOrEReaderSetup: @ 0x08017EE8 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + adds r7, r0, #0 + ldr r0, _08017F08 + movs r1, #0x87 + lsls r1, r1, #3 + adds r6, r0, r1 + ldrb r0, [r6] + cmp r0, #1 + bne _08017EFE + b _0801800C +_08017EFE: + cmp r0, #1 + bgt _08017F0C + cmp r0, #0 + beq _08017F1A + b _080180D8 + .align 2, 0 +_08017F08: .4byte 0x03002360 +_08017F0C: + cmp r0, #2 + bne _08017F12 + b _0801808C +_08017F12: + cmp r0, #3 + bne _08017F18 + b _080180AC +_08017F18: + b _080180D8 +_08017F1A: + movs r0, #0 + bl SetVBlankCallback + bl ResetPaletteFade + bl ResetSpriteData + bl FreeAllSpritePalettes + bl ResetTasks + bl ScanlineEffect_Stop + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _08018004 + movs r0, #0 + movs r2, #4 + bl InitBgsFromTemplates + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r4, #0x80 + lsls r4, r4, #4 + adds r0, r4, #0 + bl Alloc + adds r1, r0, #0 + movs r0, #3 + bl SetBgTilemapBuffer + adds r0, r4, #0 + bl Alloc + adds r1, r0, #0 + movs r0, #2 + bl SetBgTilemapBuffer + adds r0, r4, #0 + bl Alloc + adds r1, r0, #0 + movs r0, #1 + bl SetBgTilemapBuffer + adds r0, r4, #0 + bl Alloc + adds r1, r0, #0 + movs r0, #0 + bl SetBgTilemapBuffer + movs r0, #3 + bl bgid_upload_textbox_1 + ldr r0, _08018008 + bl InitWindows + bl DeactivateAllTextPrinters + movs r1, #0xc0 + lsls r1, r1, #7 + movs r0, #0 + bl ClearGpuRegBits + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + b _080180A4 + .align 2, 0 +_08018004: .4byte 0x082C24A4 +_08018008: .4byte 0x082C24B4 +_0801800C: + ldr r0, _08018088 + movs r1, #0 + movs r2, #0x20 + bl LoadPalette + movs r0, #2 + bl stdpal_get + movs r1, #0xd0 + movs r2, #0x20 + bl LoadPalette + movs r0, #0xc0 + bl Menu_LoadStdPalAt + movs r0, #0 + movs r1, #0xa + movs r2, #0xe0 + bl LoadUserWindowBorderGfx + movs r0, #0 + movs r1, #1 + movs r2, #0xf0 + bl LoadUserWindowBorderGfx_ + movs r4, #0x20 + str r4, [sp] + str r4, [sp, #4] + movs r5, #0x11 + str r5, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #1 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #2 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect + movs r0, #3 + bl MG_DrawCheckerboardPattern + lsls r0, r7, #0x18 + lsrs r0, r0, #0x18 + bl PrintMysteryGiftOrEReaderTopMenu + b _080180A4 + .align 2, 0 +_08018088: .4byte 0x082C2454 +_0801808C: + movs r0, #3 + bl CopyBgTilemapBufferToVram + movs r0, #2 + bl CopyBgTilemapBufferToVram + movs r0, #1 + bl CopyBgTilemapBufferToVram + movs r0, #0 + bl CopyBgTilemapBufferToVram +_080180A4: + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] + b _080180D8 +_080180AC: + movs r0, #0 + bl ShowBg + movs r0, #3 + bl ShowBg + ldr r0, _080180D0 + bl PlayBGM + ldr r0, _080180D4 + bl SetVBlankCallback + movs r0, #0xc5 + bl EnableInterrupts + movs r0, #1 + b _080180DA + .align 2, 0 +_080180D0: .4byte 0x0000021D +_080180D4: .4byte 0x08017EBD +_080180D8: + movs r0, #0 +_080180DA: + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end HandleMysteryGiftOrEReaderSetup + + thumb_func_start c2_mystery_gift +c2_mystery_gift: @ 0x080180E4 + push {lr} + movs r0, #0 + bl HandleMysteryGiftOrEReaderSetup + cmp r0, #0 + beq _08018100 + ldr r0, _08018108 + bl SetMainCallback2 + ldr r1, _0801810C + movs r0, #0 + strb r0, [r1] + bl task_add_00_mystery_gift +_08018100: + bl RunTasks + pop {r0} + bx r0 + .align 2, 0 +_08018108: .4byte 0x08017ED1 +_0801810C: .4byte 0x02022914 + thumb_func_end c2_mystery_gift + + thumb_func_start c2_ereader +c2_ereader: @ 0x08018110 + push {lr} + movs r0, #1 + bl HandleMysteryGiftOrEReaderSetup + cmp r0, #0 + beq _0801812C + ldr r0, _08018130 + bl SetMainCallback2 + ldr r1, _08018134 + movs r0, #1 + strb r0, [r1] + bl task_add_00_ereader +_0801812C: + pop {r0} + bx r0 + .align 2, 0 +_08018130: .4byte 0x08017ED1 +_08018134: .4byte 0x02022914 + thumb_func_end c2_ereader + + thumb_func_start MainCB_FreeAllBuffersAndReturnToInitTitleScreen +MainCB_FreeAllBuffersAndReturnToInitTitleScreen: @ 0x08018138 + push {lr} + ldr r1, _08018178 + movs r0, #0 + strb r0, [r1] + bl FreeAllWindowBuffers + movs r0, #0 + bl GetBgTilemapBuffer + bl Free + movs r0, #1 + bl GetBgTilemapBuffer + bl Free + movs r0, #2 + bl GetBgTilemapBuffer + bl Free + movs r0, #3 + bl GetBgTilemapBuffer + bl Free + ldr r0, _0801817C + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_08018178: .4byte 0x02022914 +_0801817C: .4byte 0x080AA06D + thumb_func_end MainCB_FreeAllBuffersAndReturnToInitTitleScreen + + thumb_func_start PrintMysteryGiftOrEReaderTopMenu +PrintMysteryGiftOrEReaderTopMenu: @ 0x08018180 + push {r4, r5, lr} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r0, #0 + movs r1, #0 + bl FillWindowPixelBuffer + cmp r5, #0 + bne _080181D4 + str r5, [sp] + str r5, [sp, #4] + ldr r4, _080181C8 + str r4, [sp, #8] + str r5, [sp, #0xc] + ldr r0, _080181CC + str r0, [sp, #0x10] + movs r0, #0 + movs r1, #1 + movs r2, #2 + movs r3, #2 + bl AddTextPrinterParameterized4 + str r5, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + str r5, [sp, #0xc] + ldr r0, _080181D0 + str r0, [sp, #0x10] + movs r0, #0 + movs r1, #0 + movs r2, #0x64 + movs r3, #2 + bl AddTextPrinterParameterized4 + b _08018208 + .align 2, 0 +_080181C8: .4byte 0x082C2B64 +_080181CC: .4byte 0x082C2B44 +_080181D0: .4byte 0x082C2B50 +_080181D4: + movs r4, #0 + str r4, [sp] + str r4, [sp, #4] + ldr r5, _08018220 + str r5, [sp, #8] + str r4, [sp, #0xc] + ldr r0, _08018224 + str r0, [sp, #0x10] + movs r0, #0 + movs r1, #1 + movs r2, #2 + movs r3, #2 + bl AddTextPrinterParameterized4 + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + str r4, [sp, #0xc] + ldr r0, _08018228 + str r0, [sp, #0x10] + movs r0, #0 + movs r1, #0 + movs r2, #0x78 + movs r3, #2 + bl AddTextPrinterParameterized4 +_08018208: + movs r0, #0 + movs r1, #2 + bl CopyWindowToVram + movs r0, #0 + bl PutWindowTilemap + add sp, #0x14 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08018220: .4byte 0x082C2B64 +_08018224: .4byte 0x085CCED5 +_08018228: .4byte 0x085CCEDF + thumb_func_end PrintMysteryGiftOrEReaderTopMenu + + thumb_func_start MG_DrawTextBorder +MG_DrawTextBorder: @ 0x0801822C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + movs r2, #0xf + bl DrawTextBorderOuter + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end MG_DrawTextBorder + + thumb_func_start MG_DrawCheckerboardPattern +MG_DrawCheckerboardPattern: @ 0x08018240 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + adds r4, r0, #0 + movs r0, #0 + mov sb, r0 + lsls r4, r4, #0x18 + lsrs r0, r4, #0x18 + movs r1, #0x20 + str r1, [sp] + movs r1, #2 + str r1, [sp, #4] + movs r1, #0x11 + str r1, [sp, #8] + movs r1, #3 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect + mov r8, r4 + movs r4, #1 +_08018270: + movs r7, #0 + mov r0, sb + adds r0, #2 + movs r1, #1 + add r1, sb + mov sl, r1 + lsls r5, r0, #0x18 + movs r6, #0 +_08018280: + mov r1, sb + ands r1, r4 + adds r0, r7, #0 + ands r0, r4 + cmp r1, r0 + beq _080182A4 + lsrs r2, r6, #0x18 + str r4, [sp] + str r4, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + mov r1, r8 + lsrs r0, r1, #0x18 + movs r1, #1 + lsrs r3, r5, #0x18 + bl FillBgTilemapBufferRect + b _080182BA +_080182A4: + lsrs r2, r6, #0x18 + str r4, [sp] + str r4, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + mov r1, r8 + lsrs r0, r1, #0x18 + movs r1, #2 + lsrs r3, r5, #0x18 + bl FillBgTilemapBufferRect +_080182BA: + movs r0, #0x80 + lsls r0, r0, #0x11 + adds r6, r6, r0 + adds r7, #1 + cmp r7, #0x1f + ble _08018280 + mov sb, sl + mov r1, sb + cmp r1, #0x11 + ble _08018270 + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end MG_DrawCheckerboardPattern + + thumb_func_start ClearScreenInBg0 +ClearScreenInBg0: @ 0x080182E0 + push {lr} + sub sp, #0xc + cmp r0, #0 + beq _080182EE + cmp r0, #1 + beq _08018306 + b _0801831E +_080182EE: + movs r0, #0x20 + str r0, [sp] + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect + b _0801831E +_08018306: + movs r0, #0x20 + str r0, [sp] + movs r0, #0x1e + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #2 + bl FillBgTilemapBufferRect +_0801831E: + movs r0, #0 + bl CopyBgTilemapBufferToVram + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ClearScreenInBg0 + + thumb_func_start AddTextPrinterToWindow1 +AddTextPrinterToWindow1: @ 0x0801832C + push {r4, lr} + sub sp, #0x14 + adds r1, r0, #0 + ldr r4, _08018380 + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #1 + movs r1, #0x11 + bl FillWindowPixelBuffer + movs r1, #0 + str r1, [sp] + movs r0, #1 + str r0, [sp, #4] + ldr r0, _08018384 + str r0, [sp, #8] + str r1, [sp, #0xc] + str r4, [sp, #0x10] + movs r0, #1 + movs r1, #1 + movs r2, #2 + movs r3, #2 + bl AddTextPrinterParameterized4 + movs r0, #1 + movs r1, #1 + movs r2, #0xf + bl DrawTextBorderOuter + movs r0, #1 + bl PutWindowTilemap + movs r0, #1 + movs r1, #3 + bl CopyWindowToVram + add sp, #0x14 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08018380: .4byte 0x02021C7C +_08018384: .4byte 0x082C2B6C + thumb_func_end AddTextPrinterToWindow1 + + thumb_func_start ClearTextWindow +ClearTextWindow: @ 0x08018388 + push {lr} + movs r0, #1 + bl rbox_fill_rectangle + movs r0, #1 + bl ClearWindowTilemap + movs r0, #1 + movs r1, #1 + bl CopyWindowToVram + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ClearTextWindow + + thumb_func_start MG_PrintTextOnWindow1AndWaitButton +MG_PrintTextOnWindow1AndWaitButton: @ 0x080183A4 + push {r4, lr} + sub sp, #0xc + adds r4, r0, #0 + adds r0, r1, #0 + ldrb r2, [r4] + cmp r2, #1 + beq _080183CC + cmp r2, #1 + bgt _080183BC + cmp r2, #0 + beq _080183C6 + b _0801842C +_080183BC: + cmp r2, #2 + beq _08018400 + cmp r2, #0xff + beq _08018428 + b _0801842C +_080183C6: + bl AddTextPrinterToWindow1 + b _080183F0 +_080183CC: + movs r0, #0 + str r0, [sp] + ldr r0, _080183F8 + str r0, [sp, #4] + adds r0, #1 + str r0, [sp, #8] + movs r0, #1 + movs r1, #0xd0 + movs r2, #0x14 + movs r3, #1 + bl DrawDownArrow + ldr r0, _080183FC + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _0801842C +_080183F0: + ldrb r0, [r4] + adds r0, #1 + b _0801842A + .align 2, 0 +_080183F8: .4byte 0x0202290C +_080183FC: .4byte 0x03002360 +_08018400: + movs r0, #1 + str r0, [sp] + ldr r0, _08018424 + str r0, [sp, #4] + adds r0, #1 + str r0, [sp, #8] + movs r0, #1 + movs r1, #0xd0 + movs r2, #0x14 + movs r3, #1 + bl DrawDownArrow + movs r0, #0 + strb r0, [r4] + bl ClearTextWindow + movs r0, #1 + b _0801842E + .align 2, 0 +_08018424: .4byte 0x0202290C +_08018428: + movs r0, #2 +_0801842A: + strb r0, [r4] +_0801842C: + movs r0, #0 +_0801842E: + add sp, #0xc + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MG_PrintTextOnWindow1AndWaitButton + + thumb_func_start HideDownArrow +HideDownArrow: @ 0x08018438 + push {lr} + sub sp, #0xc + movs r0, #0 + str r0, [sp] + ldr r0, _0801845C + str r0, [sp, #4] + adds r0, #1 + str r0, [sp, #8] + movs r0, #1 + movs r1, #0xd0 + movs r2, #0x14 + movs r3, #1 + bl DrawDownArrow + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_0801845C: .4byte 0x0202290C + thumb_func_end HideDownArrow + + thumb_func_start ShowDownArrow +ShowDownArrow: @ 0x08018460 + push {lr} + sub sp, #0xc + movs r0, #1 + str r0, [sp] + ldr r0, _08018484 + str r0, [sp, #4] + adds r0, #1 + str r0, [sp, #8] + movs r0, #1 + movs r1, #0xd0 + movs r2, #0x14 + movs r3, #1 + bl DrawDownArrow + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_08018484: .4byte 0x0202290C + thumb_func_end ShowDownArrow + + thumb_func_start unref_HideDownArrowAndWaitButton +unref_HideDownArrowAndWaitButton: @ 0x08018488 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4] + cmp r0, #0 + beq _08018498 + cmp r0, #1 + beq _080184B4 + b _080184C0 +_08018498: + bl HideDownArrow + ldr r0, _080184B0 + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _080184C0 + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + b _080184C0 + .align 2, 0 +_080184B0: .4byte 0x03002360 +_080184B4: + bl ShowDownArrow + movs r0, #0 + strb r0, [r4] + movs r0, #1 + b _080184C2 +_080184C0: + movs r0, #0 +_080184C2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end unref_HideDownArrowAndWaitButton + + thumb_func_start PrintStringAndWait2Seconds +PrintStringAndWait2Seconds: @ 0x080184C8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4] + cmp r0, #0 + bne _080184D8 + adds r0, r1, #0 + bl AddTextPrinterToWindow1 +_080184D8: + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x78 + bhi _080184EA + movs r0, #0 + b _080184F4 +_080184EA: + movs r0, #0 + strb r0, [r4] + bl ClearTextWindow + movs r0, #1 +_080184F4: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end PrintStringAndWait2Seconds + + thumb_func_start MysteryGift_HandleThreeOptionMenu +MysteryGift_HandleThreeOptionMenu: @ 0x080184FC + push {r4, r5, lr} + sub sp, #0x1c + lsls r2, r2, #0x18 + add r1, sp, #4 + ldr r0, _08018518 + ldm r0!, {r3, r4, r5} + stm r1!, {r3, r4, r5} + ldm r0!, {r3, r4, r5} + stm r1!, {r3, r4, r5} + cmp r2, #0 + bne _08018520 + ldr r0, _0801851C + b _08018522 + .align 2, 0 +_08018518: .4byte 0x082C256C +_0801851C: .4byte 0x082C253C +_08018520: + ldr r0, _08018558 +_08018522: + str r0, [sp, #4] + ldr r0, _0801855C + movs r1, #0xe0 + str r1, [sp] + add r1, sp, #4 + movs r2, #1 + movs r3, #0xa + bl DoMysteryGiftListMenu + adds r4, r0, #0 + movs r0, #1 + rsbs r0, r0, #0 + cmp r4, r0 + beq _0801854C + movs r0, #2 + bl ClearWindowTilemap + movs r0, #2 + movs r1, #1 + bl CopyWindowToVram +_0801854C: + adds r0, r4, #0 + add sp, #0x1c + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08018558: .4byte 0x082C2554 +_0801855C: .4byte 0x082C24EC + thumb_func_end MysteryGift_HandleThreeOptionMenu + + thumb_func_start mevent_message_print_and_prompt_yes_no +mevent_message_print_and_prompt_yes_no: @ 0x08018560 + push {r4, r5, r6, lr} + sub sp, #0x1c + adds r5, r0, #0 + adds r4, r1, #0 + adds r1, r3, #0 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + ldrb r0, [r5] + cmp r0, #1 + beq _080185F4 + cmp r0, #1 + bgt _0801857E + cmp r0, #0 + beq _0801858A + b _080186A6 +_0801857E: + cmp r0, #2 + beq _0801864C + cmp r0, #0xff + bne _08018588 + b _08018682 +_08018588: + b _080186A6 +_0801858A: + ldr r0, _08018598 + bl StringExpandPlaceholders + cmp r6, #0 + bne _080185A0 + ldr r0, _0801859C + b _080185A2 + .align 2, 0 +_08018598: .4byte 0x02021C7C +_0801859C: .4byte 0x082C24D4 +_080185A0: + ldr r0, _080185E8 +_080185A2: + bl AddWindow + strh r0, [r4] + ldrb r0, [r4] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldrb r0, [r4] + movs r2, #0 + str r2, [sp] + movs r1, #1 + str r1, [sp, #4] + ldr r1, _080185EC + str r1, [sp, #8] + str r2, [sp, #0xc] + ldr r1, _080185F0 + str r1, [sp, #0x10] + movs r1, #1 + movs r2, #2 + movs r3, #2 + bl AddTextPrinterParameterized4 + ldrb r0, [r4] + movs r1, #1 + movs r2, #0xf + bl DrawTextBorderOuter + ldrb r0, [r4] + movs r1, #2 + bl CopyWindowToVram + ldrb r0, [r4] + bl PutWindowTilemap + b _0801863E + .align 2, 0 +_080185E8: .4byte 0x082C24DC +_080185EC: .4byte 0x082C2B6C +_080185F0: .4byte 0x02021C7C +_080185F4: + ldr r0, _08018610 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [sp, #0x14] + str r1, [sp, #0x18] + cmp r6, #0 + bne _08018618 + ldr r0, _08018614 + ldr r1, [sp, #0x14] + ands r1, r0 + movs r0, #0x90 + lsls r0, r0, #0xc + b _08018622 + .align 2, 0 +_08018610: .4byte 0x082C24F4 +_08018614: .4byte 0xFF00FFFF +_08018618: + ldr r0, _08018648 + ldr r1, [sp, #0x14] + ands r1, r0 + movs r0, #0xf0 + lsls r0, r0, #0xc +_08018622: + orrs r1, r0 + str r1, [sp, #0x14] + movs r0, #0xa + str r0, [sp] + movs r0, #0xe + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + add r0, sp, #0x14 + movs r1, #1 + movs r2, #2 + movs r3, #2 + bl sub_08198C08 +_0801863E: + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + b _080186A6 + .align 2, 0 +_08018648: .4byte 0xFF00FFFF +_0801864C: + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r6, r0, #0x18 + movs r1, #0x80 + lsls r1, r1, #0x11 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + cmp r0, #2 + bhi _080186A6 + movs r0, #0 + strb r0, [r5] + ldrb r0, [r4] + bl rbox_fill_rectangle + ldrb r0, [r4] + bl ClearWindowTilemap + ldrb r0, [r4] + movs r1, #1 + bl CopyWindowToVram + ldrb r0, [r4] + bl RemoveWindow + adds r0, r6, #0 + b _080186AA +_08018682: + movs r0, #0 + strb r0, [r5] + ldrb r0, [r4] + bl rbox_fill_rectangle + ldrb r0, [r4] + bl ClearWindowTilemap + ldrb r0, [r4] + movs r1, #1 + bl CopyWindowToVram + ldrb r0, [r4] + bl RemoveWindow + movs r0, #1 + rsbs r0, r0, #0 + b _080186AA +_080186A6: + movs r0, #2 + rsbs r0, r0, #0 +_080186AA: + add sp, #0x1c + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end mevent_message_print_and_prompt_yes_no + + thumb_func_start HandleMysteryGiftListMenu +HandleMysteryGiftListMenu: @ 0x080186B4 + push {r4, r5, r6, lr} + sub sp, #0x14 + adds r6, r0, #0 + adds r5, r1, #0 + ldrb r0, [r6] + cmp r0, #1 + beq _08018754 + cmp r0, #1 + bgt _080186CC + cmp r0, #0 + beq _080186D4 + b _080187F8 +_080186CC: + cmp r0, #0xff + bne _080186D2 + b _080187D4 +_080186D2: + b _080187F8 +_080186D4: + cmp r2, #0 + bne _080186EC + ldr r0, _080186E4 + ldr r1, _080186E8 + bl StringExpandPlaceholders + b _080186F4 + .align 2, 0 +_080186E4: .4byte 0x02021C7C +_080186E8: .4byte 0x082C2974 +_080186EC: + ldr r0, _08018744 + ldr r1, _08018748 + bl StringExpandPlaceholders +_080186F4: + ldr r0, _0801874C + bl AddWindow + strh r0, [r5] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldrb r0, [r5] + movs r2, #0 + str r2, [sp] + movs r1, #1 + str r1, [sp, #4] + ldr r1, _08018750 + str r1, [sp, #8] + str r2, [sp, #0xc] + ldr r1, _08018744 + str r1, [sp, #0x10] + movs r1, #1 + movs r2, #2 + movs r3, #2 + bl AddTextPrinterParameterized4 + ldrb r0, [r5] + movs r1, #1 + movs r2, #0xf + bl DrawTextBorderOuter + ldrb r0, [r5] + movs r1, #2 + bl CopyWindowToVram + ldrb r0, [r5] + bl PutWindowTilemap + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] + b _080187F8 + .align 2, 0 +_08018744: .4byte 0x02021C7C +_08018748: .4byte 0x082C2984 +_0801874C: .4byte 0x082C24E4 +_08018750: .4byte 0x082C2B6C +_08018754: + cmp r3, #0 + beq _0801877C + cmp r2, #0 + bne _0801876C + ldr r0, _08018764 + ldr r1, _08018768 + b _08018794 + .align 2, 0 +_08018764: .4byte 0x082C2504 +_08018768: .4byte 0x082C260C +_0801876C: + ldr r0, _08018774 + ldr r1, _08018778 + b _08018794 + .align 2, 0 +_08018774: .4byte 0x082C250C +_08018778: .4byte 0x082C263C +_0801877C: + cmp r2, #0 + bne _08018790 + ldr r0, _08018788 + ldr r1, _0801878C + b _08018794 + .align 2, 0 +_08018788: .4byte 0x082C24FC +_0801878C: .4byte 0x082C25F4 +_08018790: + ldr r0, _080187CC + ldr r1, _080187D0 +_08018794: + movs r2, #0xe0 + str r2, [sp] + movs r2, #1 + movs r3, #0xa + bl DoMysteryGiftListMenu + adds r4, r0, #0 + movs r0, #1 + rsbs r0, r0, #0 + cmp r4, r0 + beq _080187F8 + movs r0, #0 + strb r0, [r6] + ldrb r0, [r5] + bl rbox_fill_rectangle + ldrb r0, [r5] + bl ClearWindowTilemap + ldrb r0, [r5] + movs r1, #1 + bl CopyWindowToVram + ldrb r0, [r5] + bl RemoveWindow + adds r0, r4, #0 + b _080187FC + .align 2, 0 +_080187CC: .4byte 0x082C2504 +_080187D0: .4byte 0x082C2624 +_080187D4: + movs r0, #0 + strb r0, [r6] + ldrb r0, [r5] + bl rbox_fill_rectangle + ldrb r0, [r5] + bl ClearWindowTilemap + ldrb r0, [r5] + movs r1, #1 + bl CopyWindowToVram + ldrb r0, [r5] + bl RemoveWindow + movs r0, #2 + rsbs r0, r0, #0 + b _080187FC +_080187F8: + movs r0, #1 + rsbs r0, r0, #0 +_080187FC: + add sp, #0x14 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end HandleMysteryGiftListMenu + + thumb_func_start ValidateCardOrNews +ValidateCardOrNews: @ 0x08018804 + push {lr} + cmp r0, #0 + beq _08018810 + bl ValidateReceivedWonderNews + b _08018814 +_08018810: + bl ValidateReceivedWonderCard +_08018814: + pop {r1} + bx r1 + thumb_func_end ValidateCardOrNews + + thumb_func_start HandleLoadWonderCardOrNews +HandleLoadWonderCardOrNews: @ 0x08018818 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5] + cmp r0, #0 + beq _08018828 + cmp r0, #1 + beq _08018850 + b _0801886C +_08018828: + cmp r1, #0 + bne _08018840 + bl GetSavedWonderCard + adds r4, r0, #0 + bl sav1_get_mevent_buffer_2 + adds r1, r0, #0 + adds r0, r4, #0 + bl InitWonderCardResources + b _08018848 +_08018840: + bl GetSavedWonderNews + bl InitWonderNewsResources +_08018848: + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + b _0801886C +_08018850: + cmp r1, #0 + bne _0801885E + bl FadeToWonderCardMenu +_08018858: + cmp r0, #0 + bne _08018864 + b _0801886C +_0801885E: + bl FadeToWonderNewsMenu + b _08018858 +_08018864: + movs r0, #0 + strb r0, [r5] + movs r0, #1 + b _0801886E +_0801886C: + movs r0, #0 +_0801886E: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end HandleLoadWonderCardOrNews + + thumb_func_start DestroyNewsOrCard +DestroyNewsOrCard: @ 0x08018874 + push {lr} + cmp r0, #0 + bne _08018880 + bl DestroyWonderCard + b _08018884 +_08018880: + bl DestroyWonderNews +_08018884: + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end DestroyNewsOrCard + + thumb_func_start TearDownCardOrNews_ReturnToTopMenu +TearDownCardOrNews_ReturnToTopMenu: @ 0x0801888C + push {lr} + cmp r0, #0 + bne _080188A0 + bl FadeOutFromWonderCard + cmp r0, #0 + beq _080188A8 + bl DestroyWonderCardResources + b _080188B0 +_080188A0: + bl FadeOutFromWonderNews + cmp r0, #0 + bne _080188AC +_080188A8: + movs r0, #0 + b _080188B2 +_080188AC: + bl DestroyWonderNewsResources +_080188B0: + movs r0, #1 +_080188B2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TearDownCardOrNews_ReturnToTopMenu + + thumb_func_start mevent_message_prompt_discard +mevent_message_prompt_discard: @ 0x080188B8 + push {lr} + cmp r2, #0 + beq _080188C8 + ldr r3, _080188C4 + b _080188CA + .align 2, 0 +_080188C4: .4byte 0x082C2AB4 +_080188C8: + ldr r3, _080188D8 +_080188CA: + movs r2, #1 + bl mevent_message_print_and_prompt_yes_no + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_080188D8: .4byte 0x082C2A94 + thumb_func_end mevent_message_prompt_discard + + thumb_func_start mevent_message_was_thrown_away +mevent_message_was_thrown_away: @ 0x080188DC + push {lr} + cmp r1, #0 + beq _080188EC + ldr r1, _080188E8 + b _080188EE + .align 2, 0 +_080188E8: .4byte 0x082C2B38 +_080188EC: + ldr r1, _080188F8 +_080188EE: + bl MG_PrintTextOnWindow1AndWaitButton + pop {r1} + bx r1 + .align 2, 0 +_080188F8: .4byte 0x082C2B28 + thumb_func_end mevent_message_was_thrown_away + + thumb_func_start mevent_save_game +mevent_save_game: @ 0x080188FC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4] + cmp r0, #4 + bhi _0801896C + lsls r0, r0, #2 + ldr r1, _08018910 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08018910: .4byte 0x08018914 +_08018914: @ jump table + .4byte _08018928 @ case 0 + .4byte _08018934 @ case 1 + .4byte _0801893C @ case 2 + .4byte _08018948 @ case 3 + .4byte _08018960 @ case 4 +_08018928: + ldr r0, _08018930 + bl AddTextPrinterToWindow1 + b _08018954 + .align 2, 0 +_08018930: .4byte 0x082C2AEC +_08018934: + movs r0, #0 + bl TrySavingData + b _08018954 +_0801893C: + ldr r0, _08018944 + bl AddTextPrinterToWindow1 + b _08018954 + .align 2, 0 +_08018944: .4byte 0x082C2B08 +_08018948: + ldr r0, _0801895C + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _0801896C +_08018954: + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + b _0801896C + .align 2, 0 +_0801895C: .4byte 0x03002360 +_08018960: + movs r0, #0 + strb r0, [r4] + bl ClearTextWindow + movs r0, #1 + b _0801896E +_0801896C: + movs r0, #0 +_0801896E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end mevent_save_game + + thumb_func_start mevent_message +mevent_message: @ 0x08018974 + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + movs r2, #0 + str r2, [r4] + cmp r3, #0xe + bls _0801898A + b _08018A9C +_0801898A: + lsls r0, r3, #2 + ldr r1, _08018994 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08018994: .4byte 0x08018998 +_08018998: @ jump table + .4byte _080189D4 @ case 0 + .4byte _080189E0 @ case 1 + .4byte _080189EC @ case 2 + .4byte _08018A04 @ case 3 + .4byte _08018A1C @ case 4 + .4byte _08018A28 @ case 5 + .4byte _08018A34 @ case 6 + .4byte _08018A40 @ case 7 + .4byte _08018A4C @ case 8 + .4byte _08018A58 @ case 9 + .4byte _08018A64 @ case 10 + .4byte _08018A7C @ case 11 + .4byte _08018A88 @ case 12 + .4byte _08018A94 @ case 13 + .4byte _08018A98 @ case 14 +_080189D4: + movs r0, #0 + str r0, [r4] + ldr r2, _080189DC + b _08018A9C + .align 2, 0 +_080189DC: .4byte 0x082C2960 +_080189E0: + movs r0, #0 + str r0, [r4] + ldr r2, _080189E8 + b _08018A9C + .align 2, 0 +_080189E8: .4byte 0x082C2904 +_080189EC: + movs r0, #1 + str r0, [r4] + ldr r2, _080189FC + cmp r5, #0 + bne _08018A9C + ldr r2, _08018A00 + b _08018A9C + .align 2, 0 +_080189FC: .4byte 0x082C2804 +_08018A00: .4byte 0x082C2838 +_08018A04: + movs r0, #1 + str r0, [r4] + ldr r2, _08018A14 + cmp r5, #0 + bne _08018A9C + ldr r2, _08018A18 + b _08018A9C + .align 2, 0 +_08018A14: .4byte 0x082C2820 +_08018A18: .4byte 0x082C2854 +_08018A1C: + movs r0, #1 + str r0, [r4] + ldr r2, _08018A24 + b _08018A9C + .align 2, 0 +_08018A24: .4byte 0x082C286C +_08018A28: + movs r0, #0 + str r0, [r4] + ldr r2, _08018A30 + b _08018A9C + .align 2, 0 +_08018A30: .4byte 0x082C28A0 +_08018A34: + movs r0, #0 + str r0, [r4] + ldr r2, _08018A3C + b _08018A9C + .align 2, 0 +_08018A3C: .4byte 0x082C28D0 +_08018A40: + movs r0, #0 + str r0, [r4] + ldr r2, _08018A48 + b _08018A9C + .align 2, 0 +_08018A48: .4byte 0x082C28B8 +_08018A4C: + movs r0, #0 + str r0, [r4] + ldr r2, _08018A54 + b _08018A9C + .align 2, 0 +_08018A54: .4byte 0x082C28E8 +_08018A58: + movs r0, #0 + str r0, [r4] + ldr r2, _08018A60 + b _08018A9C + .align 2, 0 +_08018A60: .4byte 0x082C27A0 +_08018A64: + movs r0, #0 + str r0, [r4] + ldr r2, _08018A74 + cmp r6, #0 + bne _08018A9C + ldr r2, _08018A78 + b _08018A9C + .align 2, 0 +_08018A74: .4byte 0x082C2944 +_08018A78: .4byte 0x082C2924 +_08018A7C: + movs r0, #0 + str r0, [r4] + ldr r2, _08018A84 + b _08018A9C + .align 2, 0 +_08018A84: .4byte 0x082C2790 +_08018A88: + movs r0, #1 + str r0, [r4] + ldr r2, _08018A90 + b _08018A9C + .align 2, 0 +_08018A90: .4byte 0x082C2884 +_08018A94: + movs r0, #1 + b _08018A9A +_08018A98: + movs r0, #0 +_08018A9A: + str r0, [r4] +_08018A9C: + adds r0, r2, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end mevent_message + + thumb_func_start PrintMGSuccessMessage +PrintMGSuccessMessage: @ 0x08018AA4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r0, r1, #0 + adds r5, r2, #0 + ldrb r4, [r6] + cmp r4, #1 + beq _08018AD6 + cmp r4, #1 + bgt _08018ABC + cmp r4, #0 + beq _08018AC2 + b _08018B02 +_08018ABC: + cmp r4, #2 + beq _08018AEC + b _08018B02 +_08018AC2: + cmp r0, #0 + beq _08018ACA + bl AddTextPrinterToWindow1 +_08018ACA: + movs r0, #0xb9 + lsls r0, r0, #1 + bl PlayFanfare + strh r4, [r5] + b _08018AE4 +_08018AD6: + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xf0 + bls _08018B02 +_08018AE4: + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] + b _08018B02 +_08018AEC: + bl IsFanfareTaskInactive + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08018B02 + movs r0, #0 + strb r0, [r6] + bl ClearTextWindow + movs r0, #1 + b _08018B04 +_08018B02: + movs r0, #0 +_08018B04: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end PrintMGSuccessMessage + + thumb_func_start mevent_message_stamp_card_etc_send_status +mevent_message_stamp_card_etc_send_status: @ 0x08018B0C + push {r4, lr} + adds r3, r0, #0 + ldr r1, _08018B28 + movs r0, #0 + str r0, [r3] + adds r4, r1, #0 + cmp r2, #0xe + bhi _08018BCE + lsls r0, r2, #2 + ldr r1, _08018B2C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08018B28: .4byte 0x082C2790 +_08018B2C: .4byte 0x08018B30 +_08018B30: @ jump table + .4byte _08018B6C @ case 0 + .4byte _08018B74 @ case 1 + .4byte _08018B7C @ case 2 + .4byte _08018B84 @ case 3 + .4byte _08018B90 @ case 4 + .4byte _08018B98 @ case 5 + .4byte _08018BA0 @ case 6 + .4byte _08018BA8 @ case 7 + .4byte _08018BB0 @ case 8 + .4byte _08018BB8 @ case 9 + .4byte _08018BCC @ case 10 + .4byte _08018BC0 @ case 11 + .4byte _08018BC4 @ case 12 + .4byte _08018BC4 @ case 13 + .4byte _08018BCC @ case 14 +_08018B6C: + ldr r1, _08018B70 + b _08018BCE + .align 2, 0 +_08018B70: .4byte 0x082C2960 +_08018B74: + ldr r1, _08018B78 + b _08018BCE + .align 2, 0 +_08018B78: .4byte 0x082C2904 +_08018B7C: + ldr r1, _08018B80 + b _08018B86 + .align 2, 0 +_08018B80: .4byte 0x082C29C0 +_08018B84: + ldr r1, _08018B8C +_08018B86: + movs r0, #1 + str r0, [r3] + b _08018BCE + .align 2, 0 +_08018B8C: .4byte 0x082C29D8 +_08018B90: + ldr r1, _08018B94 + b _08018BCE + .align 2, 0 +_08018B94: .4byte 0x082C29EC +_08018B98: + ldr r1, _08018B9C + b _08018BCE + .align 2, 0 +_08018B9C: .4byte 0x082C2A14 +_08018BA0: + ldr r1, _08018BA4 + b _08018BCE + .align 2, 0 +_08018BA4: .4byte 0x082C2A48 +_08018BA8: + ldr r1, _08018BAC + b _08018BCE + .align 2, 0 +_08018BAC: .4byte 0x082C2A30 +_08018BB0: + ldr r1, _08018BB4 + b _08018BCE + .align 2, 0 +_08018BB4: .4byte 0x082C28E8 +_08018BB8: + ldr r1, _08018BBC + b _08018BCE + .align 2, 0 +_08018BBC: .4byte 0x082C2A60 +_08018BC0: + adds r1, r4, #0 + b _08018BCE +_08018BC4: + ldr r1, _08018BC8 + b _08018BCE + .align 2, 0 +_08018BC8: .4byte 0x082C2A00 +_08018BCC: + ldr r1, _08018BD8 +_08018BCE: + adds r0, r1, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08018BD8: .4byte 0x082C2A78 + thumb_func_end mevent_message_stamp_card_etc_send_status + + thumb_func_start PrintMGSendStatus +PrintMGSendStatus: @ 0x08018BDC + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + adds r1, r2, #0 + adds r2, r3, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r0, sp + bl mevent_message_stamp_card_etc_send_status + adds r1, r0, #0 + ldr r0, [sp] + cmp r0, #0 + bne _08018C02 + adds r0, r4, #0 + bl MG_PrintTextOnWindow1AndWaitButton + b _08018C0A +_08018C02: + adds r0, r4, #0 + adds r2, r5, #0 + bl PrintMGSuccessMessage +_08018C0A: + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end PrintMGSendStatus + + thumb_func_start task_add_00_mystery_gift +task_add_00_mystery_gift: @ 0x08018C14 + push {r4, lr} + ldr r0, _08018C54 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _08018C58 + adds r4, r4, r0 + movs r0, #0 + strb r0, [r4, #8] + strb r0, [r4, #9] + strb r0, [r4, #0xa] + strb r0, [r4, #0xb] + strb r0, [r4, #0xc] + strb r0, [r4, #0xd] + movs r1, #0 + strh r0, [r4] + strh r0, [r4, #2] + strh r0, [r4, #4] + strh r0, [r4, #6] + strb r1, [r4, #0xe] + movs r0, #0x40 + bl AllocZeroed + str r0, [r4, #0x10] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08018C54: .4byte 0x08018C5D +_08018C58: .4byte 0x03005B68 + thumb_func_end task_add_00_mystery_gift + + thumb_func_start task00_mystery_gift +task00_mystery_gift: @ 0x08018C5C + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _08018C80 + adds r5, r0, r1 + ldrb r0, [r5, #8] + cmp r0, #0x25 + bls _08018C76 + b _0801931A +_08018C76: + lsls r0, r0, #2 + ldr r1, _08018C84 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08018C80: .4byte 0x03005B68 +_08018C84: .4byte 0x08018C88 +_08018C88: @ jump table + .4byte _08018D20 @ case 0 + .4byte _08018D26 @ case 1 + .4byte _08018D64 @ case 2 + .4byte _08018D8C @ case 3 + .4byte _08018DB0 @ case 4 + .4byte _08018DFC @ case 5 + .4byte _08018E5A @ case 6 + .4byte _08018E90 @ case 7 + .4byte _08018EA0 @ case 8 + .4byte _08018F10 @ case 9 + .4byte _08018F34 @ case 10 + .4byte _08018F4C @ case 11 + .4byte _08018F7C @ case 12 + .4byte _08018FB6 @ case 13 + .4byte _08018FCC @ case 14 + .4byte _08018FFC @ case 15 + .4byte _080192EC @ case 16 + .4byte _08019056 @ case 17 + .4byte _08019066 @ case 18 + .4byte _0801931A @ case 19 + .4byte _08019078 @ case 20 + .4byte _080190C2 @ case 21 + .4byte _08019130 @ case 22 + .4byte _0801915E @ case 23 + .4byte _08019190 @ case 24 + .4byte _080191A6 @ case 25 + .4byte _080191B8 @ case 26 + .4byte _080191C4 @ case 27 + .4byte _080191CC @ case 28 + .4byte _080191DC @ case 29 + .4byte _0801920A @ case 30 + .4byte _08019238 @ case 31 + .4byte _0801927C @ case 32 + .4byte _0801928E @ case 33 + .4byte _080192A8 @ case 34 + .4byte _080192BC @ case 35 + .4byte _080192EC @ case 36 + .4byte _08019304 @ case 37 +_08018D20: + movs r0, #1 +_08018D22: + strb r0, [r5, #8] + b _0801931A +_08018D26: + adds r0, r5, #0 + adds r0, #9 + adds r1, r5, #0 + movs r2, #0 + bl MysteryGift_HandleThreeOptionMenu + adds r1, r0, #0 + cmp r1, #1 + beq _08018D50 + cmp r1, #1 + blo _08018D46 + movs r0, #2 + rsbs r0, r0, #0 + cmp r1, r0 + beq _08018D60 + b _0801931A +_08018D46: + movs r0, #0 + strb r0, [r5, #0xc] + bl ValidateReceivedWonderCard + b _08018D56 +_08018D50: + strb r1, [r5, #0xc] + bl ValidateReceivedWonderNews +_08018D56: + cmp r0, #1 + bne _08018D5C + b _08019230 +_08018D5C: + movs r0, #2 + b _08018D22 +_08018D60: + movs r0, #0x25 + b _08018D22 +_08018D64: + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _08018D7C + adds r0, r5, #0 + adds r0, #9 + ldr r1, _08018D78 + bl MG_PrintTextOnWindow1AndWaitButton + b _080191D2 + .align 2, 0 +_08018D78: .4byte 0x082C26C4 +_08018D7C: + adds r0, r5, #0 + adds r0, #9 + ldr r1, _08018D88 + bl MG_PrintTextOnWindow1AndWaitButton + b _080191D2 + .align 2, 0 +_08018D88: .4byte 0x082C26E8 +_08018D8C: + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _08018DA0 + ldr r0, _08018D9C + bl AddTextPrinterToWindow1 + b _08018DA6 + .align 2, 0 +_08018D9C: .4byte 0x082C2710 +_08018DA0: + ldr r0, _08018DAC + bl AddTextPrinterToWindow1 +_08018DA6: + movs r0, #4 + b _08018D22 + .align 2, 0 +_08018DAC: .4byte 0x082C272C +_08018DB0: + adds r0, r5, #0 + adds r0, #9 + adds r1, r5, #0 + movs r2, #1 + bl MysteryGift_HandleThreeOptionMenu + adds r4, r0, #0 + cmp r4, #1 + beq _08018DDE + cmp r4, #1 + blo _08018DD0 + movs r0, #2 + rsbs r0, r0, #0 + cmp r4, r0 + beq _08018DEA + b _0801931A +_08018DD0: + bl ClearTextWindow + movs r1, #0 + movs r0, #5 + strb r0, [r5, #8] + strb r1, [r5, #0xd] + b _0801931A +_08018DDE: + bl ClearTextWindow + movs r0, #5 + strb r0, [r5, #8] + strb r4, [r5, #0xd] + b _0801931A +_08018DEA: + bl ClearTextWindow + ldrb r0, [r5, #0xc] + bl ValidateCardOrNews + cmp r0, #0 + beq _08018DFA + b _08019230 +_08018DFA: + b _08018D22 +_08018DFC: + ldr r0, _08018E18 + movs r1, #0xff + strb r1, [r0] + ldr r0, _08018E1C + strb r1, [r0] + ldr r0, _08018E20 + strb r1, [r0] + ldrb r0, [r5, #0xc] + cmp r0, #0 + beq _08018E24 + cmp r0, #1 + beq _08018E3E + b _08018E56 + .align 2, 0 +_08018E18: .4byte 0x02021C40 +_08018E1C: .4byte 0x02021C54 +_08018E20: .4byte 0x02021C68 +_08018E24: + ldrb r0, [r5, #0xd] + cmp r0, #1 + bne _08018E32 + movs r0, #6 + bl MEvent_CreateTask_CardOrNewsWithFriend + b _08018E56 +_08018E32: + cmp r0, #0 + bne _08018E56 + movs r0, #6 + bl MEvent_CreateTask_CardOrNewsOverWireless + b _08018E56 +_08018E3E: + ldrb r0, [r5, #0xd] + cmp r0, #1 + bne _08018E4C + movs r0, #7 + bl MEvent_CreateTask_CardOrNewsWithFriend + b _08018E56 +_08018E4C: + cmp r0, #0 + bne _08018E56 + movs r0, #7 + bl MEvent_CreateTask_CardOrNewsOverWireless +_08018E56: + movs r0, #6 + b _08018D22 +_08018E5A: + ldr r0, _08018E74 + ldrb r0, [r0] + cmp r0, #0 + beq _08018E78 + movs r0, #1 + bl ClearScreenInBg0 + movs r0, #7 + strb r0, [r5, #8] + ldrb r0, [r5, #0xc] + bl mevent_client_do_init + b _0801931A + .align 2, 0 +_08018E74: .4byte 0x030031C4 +_08018E78: + ldr r0, _08018E8C + ldrh r0, [r0] + cmp r0, #5 + beq _08018E82 + b _0801931A +_08018E82: + movs r0, #1 + bl ClearScreenInBg0 + b _080191D8 + .align 2, 0 +_08018E8C: .4byte 0x02037290 +_08018E90: + ldr r0, _08018E9C + bl AddTextPrinterToWindow1 + movs r0, #8 + b _08018D22 + .align 2, 0 +_08018E9C: .4byte 0x082C276C +_08018EA0: + adds r0, r5, #0 + bl mevent_client_do_exec + subs r0, #2 + cmp r0, #4 + bls _08018EAE + b _0801931A +_08018EAE: + lsls r0, r0, #2 + ldr r1, _08018EB8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08018EB8: .4byte 0x08018EBC +_08018EBC: @ jump table + .4byte _08018EF6 @ case 0 + .4byte _08018EF2 @ case 1 + .4byte _08018EFA @ case 2 + .4byte _08018EDC @ case 3 + .4byte _08018ED0 @ case 4 +_08018ED0: + bl task_add_05_task_del_08FA224_when_no_RfuFunc + ldrh r0, [r5] + strb r0, [r5, #0xe] + movs r0, #0xd + b _08018D22 +_08018EDC: + ldr r4, [r5, #0x10] + bl mevent_client_get_buffer + adds r1, r0, #0 + adds r0, r4, #0 + movs r2, #0x40 + bl memcpy + bl mevent_client_inc_flag + b _0801931A +_08018EF2: + movs r0, #0xa + b _08018D22 +_08018EF6: + movs r0, #9 + b _08018D22 +_08018EFA: + movs r0, #0xb + strb r0, [r5, #8] + ldr r0, _08018F08 + ldr r1, _08018F0C + bl StringCopy + b _0801931A + .align 2, 0 +_08018F08: .4byte 0x02021C40 +_08018F0C: .4byte 0x020226A8 +_08018F10: + adds r4, r5, #0 + adds r4, #9 + bl mevent_client_get_buffer + adds r3, r0, #0 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl mevent_message_print_and_prompt_yes_no + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #1 + beq _08018FA8 + cmp r1, #1 + bhs _08018F96 + movs r0, #0 + b _08018FAA +_08018F34: + adds r4, r5, #0 + adds r4, #9 + bl mevent_client_get_buffer + adds r1, r0, #0 + adds r0, r4, #0 + bl MG_PrintTextOnWindow1AndWaitButton + cmp r0, #0 + bne _08018F4A + b _0801931A +_08018F4A: + b _08018FAE +_08018F4C: + adds r0, r5, #0 + adds r0, #9 + ldr r3, _08018F74 + adds r1, r5, #0 + movs r2, #0 + bl mevent_message_print_and_prompt_yes_no + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #1 + beq _08018FA8 + cmp r1, #1 + bhs _08018F96 + bl CheckReceivedGiftFromWonderCard + cmp r0, #1 + bne _08018F78 + movs r0, #0xc + b _08018D22 + .align 2, 0 +_08018F74: .4byte 0x082C27B4 +_08018F78: + movs r0, #0 + b _08018FAA +_08018F7C: + adds r0, r5, #0 + adds r0, #9 + ldr r3, _08018FA0 + adds r1, r5, #0 + movs r2, #0 + bl mevent_message_print_and_prompt_yes_no + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #1 + beq _08018FA8 + cmp r1, #1 + blo _08018FA4 +_08018F96: + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _08018FA8 + b _0801931A + .align 2, 0 +_08018FA0: .4byte 0x082C27DC +_08018FA4: + movs r0, #0 + b _08018FAA +_08018FA8: + movs r0, #1 +_08018FAA: + bl mevent_client_set_param +_08018FAE: + bl mevent_client_inc_flag + movs r0, #7 + b _08018D22 +_08018FB6: + ldr r0, _08018FC8 + ldrb r0, [r0] + cmp r0, #0 + beq _08018FC0 + b _0801931A +_08018FC0: + bl DestroyWirelessStatusIndicatorSprite + movs r0, #0xe + b _08018D22 + .align 2, 0 +_08018FC8: .4byte 0x030031C4 +_08018FCC: + adds r0, r5, #0 + adds r0, #9 + ldr r1, _08018FF0 + bl PrintStringAndWait2Seconds + cmp r0, #0 + bne _08018FDC + b _0801931A +_08018FDC: + ldrb r0, [r5, #0xd] + cmp r0, #1 + bne _08018FEA + ldr r0, _08018FF4 + ldr r1, _08018FF8 + bl StringCopy +_08018FEA: + movs r0, #0xf + b _08018D22 + .align 2, 0 +_08018FF0: .4byte 0x082C277C +_08018FF4: .4byte 0x02021C40 +_08018FF8: .4byte 0x020226A8 +_08018FFC: + ldrb r1, [r5, #0xc] + ldrb r2, [r5, #0xd] + ldrb r3, [r5, #0xe] + mov r0, sp + bl mevent_message + adds r1, r0, #0 + cmp r1, #0 + bne _08019010 + ldr r1, [r5, #0x10] +_08019010: + ldr r0, [sp] + cmp r0, #0 + beq _08019022 + adds r0, r5, #0 + adds r0, #9 + adds r2, r5, #0 + bl PrintMGSuccessMessage + b _0801902A +_08019022: + adds r0, r5, #0 + adds r0, #9 + bl MG_PrintTextOnWindow1AndWaitButton +_0801902A: + adds r1, r0, #0 + cmp r1, #0 + bne _08019032 + b _0801931A +_08019032: + ldrb r0, [r5, #0xe] + cmp r0, #3 + bne _0801904C + ldrb r0, [r5, #0xd] + cmp r0, #1 + bne _08019046 + movs r0, #1 + bl GenerateRandomNews + b _0801904C +_08019046: + movs r0, #2 + bl GenerateRandomNews +_0801904C: + ldr r0, [sp] + cmp r0, #0 + beq _08019054 + b _080192E0 +_08019054: + b _08018D22 +_08019056: + adds r0, r5, #0 + adds r0, #9 + bl mevent_save_game + cmp r0, #0 + bne _08019064 + b _0801931A +_08019064: + b _08019230 +_08019066: + adds r0, r5, #0 + adds r0, #9 + ldrb r1, [r5, #0xc] + bl HandleLoadWonderCardOrNews + cmp r0, #0 + bne _08019076 + b _0801931A +_08019076: + b _0801912C +_08019078: + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _080190A0 + ldr r2, _0801909C + ldrh r1, [r2, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0801908E + movs r0, #0x15 + strb r0, [r5, #8] +_0801908E: + ldrh r1, [r2, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0801909A + b _0801931A +_0801909A: + b _080190BE + .align 2, 0 +_0801909C: .4byte 0x03002360 +_080190A0: + ldr r0, _080190B4 + ldrh r0, [r0, #0x2e] + bl MENews_GetInput + cmp r0, #0 + beq _080190B8 + cmp r0, #1 + beq _080190BE + b _0801931A + .align 2, 0 +_080190B4: .4byte 0x03002360 +_080190B8: + bl MENews_RemoveScrollIndicatorArrowPair + b _0801918C +_080190BE: + movs r0, #0x1b + b _08018D22 +_080190C2: + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _080190DC + bl WonderCard_Test_Unk_08_6 + cmp r0, #0 + beq _080190F0 + adds r0, r5, #0 + adds r0, #9 + ldrb r2, [r5, #0xc] + adds r1, r5, #0 + movs r3, #0 + b _080190FA +_080190DC: + bl WonderNews_Test_Unk_02 + cmp r0, #0 + beq _080190F0 + adds r0, r5, #0 + adds r0, #9 + ldrb r2, [r5, #0xc] + adds r1, r5, #0 + movs r3, #0 + b _080190FA +_080190F0: + adds r0, r5, #0 + adds r0, #9 + ldrb r2, [r5, #0xc] + adds r1, r5, #0 + movs r3, #1 +_080190FA: + bl HandleMysteryGiftListMenu + adds r1, r0, #0 + cmp r1, #1 + beq _0801911A + cmp r1, #1 + blo _08019116 + cmp r1, #2 + beq _0801911E + movs r0, #2 + rsbs r0, r0, #0 + cmp r1, r0 + beq _08019122 + b _0801931A +_08019116: + movs r0, #0x1c + b _08018D22 +_0801911A: + movs r0, #0x1d + b _08018D22 +_0801911E: + movs r0, #0x16 + b _08018D22 +_08019122: + ldrb r0, [r5, #0xc] + cmp r0, #1 + bne _0801912C + bl MENews_AddScrollIndicatorArrowPair +_0801912C: + movs r0, #0x14 + b _08018D22 +_08019130: + adds r0, r5, #0 + adds r0, #9 + ldrb r2, [r5, #0xc] + adds r1, r5, #0 + bl mevent_message_prompt_discard + adds r1, r0, #0 + cmp r1, #0 + beq _0801914C + cmp r1, #0 + ble _08019178 + cmp r1, #1 + beq _0801918C + b _0801931A +_0801914C: + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _08019188 + bl CheckReceivedGiftFromWonderCard + cmp r0, #1 + bne _08019188 + movs r0, #0x17 + b _08018D22 +_0801915E: + adds r0, r5, #0 + adds r0, #9 + ldr r3, _08019184 + adds r1, r5, #0 + movs r2, #1 + bl mevent_message_print_and_prompt_yes_no + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #1 + beq _0801918C + cmp r1, #1 + blo _08019188 +_08019178: + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0801918C + b _0801931A + .align 2, 0 +_08019184: .4byte 0x082C2ACC +_08019188: + movs r0, #0x18 + b _08018D22 +_0801918C: + movs r0, #0x15 + b _08018D22 +_08019190: + ldrb r0, [r5, #0xc] + bl TearDownCardOrNews_ReturnToTopMenu + cmp r0, #0 + bne _0801919C + b _0801931A +_0801919C: + ldrb r0, [r5, #0xc] + bl DestroyNewsOrCard + movs r0, #0x19 + b _08018D22 +_080191A6: + adds r0, r5, #0 + adds r0, #9 + bl mevent_save_game + cmp r0, #0 + bne _080191B4 + b _0801931A +_080191B4: + movs r0, #0x1a + b _08018D22 +_080191B8: + adds r0, r5, #0 + adds r0, #9 + ldrb r1, [r5, #0xc] + bl mevent_message_was_thrown_away + b _080192F6 +_080191C4: + ldrb r0, [r5, #0xc] + bl TearDownCardOrNews_ReturnToTopMenu + b _080192F6 +_080191CC: + ldrb r0, [r5, #0xc] + bl TearDownCardOrNews_ReturnToTopMenu +_080191D2: + cmp r0, #0 + bne _080191D8 + b _0801931A +_080191D8: + movs r0, #3 + b _08018D22 +_080191DC: + ldrb r0, [r5, #0xc] + bl TearDownCardOrNews_ReturnToTopMenu + cmp r0, #0 + bne _080191E8 + b _0801931A +_080191E8: + ldrb r0, [r5, #0xc] + cmp r0, #0 + beq _080191F4 + cmp r0, #1 + beq _080191FC + b _08019202 +_080191F4: + movs r0, #6 + bl MEvent_CreateTask_Leader + b _08019202 +_080191FC: + movs r0, #7 + bl MEvent_CreateTask_Leader +_08019202: + movs r0, #1 + strb r0, [r5, #0xd] + movs r0, #0x1e + b _08018D22 +_0801920A: + ldr r0, _0801921C + ldrb r0, [r0] + cmp r0, #0 + beq _08019220 + movs r0, #1 + bl ClearScreenInBg0 + movs r0, #0x1f + b _08018D22 + .align 2, 0 +_0801921C: .4byte 0x030031C4 +_08019220: + ldr r0, _08019234 + ldrh r0, [r0] + cmp r0, #5 + beq _0801922A + b _0801931A +_0801922A: + movs r0, #1 + bl ClearScreenInBg0 +_08019230: + movs r0, #0x12 + b _08018D22 + .align 2, 0 +_08019234: .4byte 0x02037290 +_08019238: + ldr r0, _08019258 + movs r1, #0xff + strb r1, [r0] + ldr r0, _0801925C + strb r1, [r0] + ldr r0, _08019260 + strb r1, [r0] + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _08019268 + ldr r0, _08019264 + bl AddTextPrinterToWindow1 + bl mevent_srv_new_wcard + b _08019272 + .align 2, 0 +_08019258: .4byte 0x02021C40 +_0801925C: .4byte 0x02021C54 +_08019260: .4byte 0x02021C68 +_08019264: .4byte 0x082C2994 +_08019268: + ldr r0, _08019278 + bl AddTextPrinterToWindow1 + bl mevent_srv_init_wnews +_08019272: + movs r0, #0x20 + b _08018D22 + .align 2, 0 +_08019278: .4byte 0x082C29AC +_0801927C: + adds r0, r5, #0 + bl mevent_srv_common_do_exec + cmp r0, #3 + bne _0801931A + ldrh r0, [r5] + strb r0, [r5, #0xe] + movs r0, #0x21 + b _08018D22 +_0801928E: + bl task_add_05_task_del_08FA224_when_no_RfuFunc + ldr r0, _080192A0 + ldr r1, _080192A4 + bl StringCopy + movs r0, #0x22 + b _08018D22 + .align 2, 0 +_080192A0: .4byte 0x02021C40 +_080192A4: .4byte 0x020226C4 +_080192A8: + ldr r0, _080192B8 + ldrb r0, [r0] + cmp r0, #0 + bne _0801931A + bl DestroyWirelessStatusIndicatorSprite + movs r0, #0x23 + b _08018D22 + .align 2, 0 +_080192B8: .4byte 0x030031C4 +_080192BC: + adds r0, r5, #0 + adds r0, #9 + ldrb r2, [r5, #0xd] + ldrb r3, [r5, #0xe] + adds r1, r5, #0 + bl PrintMGSendStatus + cmp r0, #0 + beq _0801931A + ldr r0, [r5, #0xc] + ldr r1, _080192E4 + ands r0, r1 + ldr r1, _080192E8 + cmp r0, r1 + bne _080192FA + movs r0, #3 + bl GenerateRandomNews +_080192E0: + movs r0, #0x11 + b _08018D22 + .align 2, 0 +_080192E4: .4byte 0x00FFFF00 +_080192E8: .4byte 0x00030100 +_080192EC: + adds r0, r5, #0 + adds r0, #9 + ldr r1, _08019300 + bl MG_PrintTextOnWindow1AndWaitButton +_080192F6: + cmp r0, #0 + beq _0801931A +_080192FA: + movs r0, #0 + b _08018D22 + .align 2, 0 +_08019300: .4byte 0x082C2790 +_08019304: + bl CloseLink + ldr r0, [r5, #0x10] + bl Free + adds r0, r4, #0 + bl DestroyTask + ldr r0, _08019324 + bl SetMainCallback2 +_0801931A: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08019324: .4byte 0x08018139 + thumb_func_end task00_mystery_gift + + thumb_func_start GetMysteryGiftBaseBlock +GetMysteryGiftBaseBlock: @ 0x08019328 + ldr r0, _0801932C + bx lr + .align 2, 0 +_0801932C: .4byte 0x000001A9 + thumb_func_end GetMysteryGiftBaseBlock + + thumb_func_start bgid_upload_textbox_1 +bgid_upload_textbox_1: @ 0x08019330 + push {lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0801934C + movs r2, #0x80 + lsls r2, r2, #1 + movs r3, #0 + str r3, [sp] + bl DecompressAndLoadBgGfxUsingHeap + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_0801934C: .4byte 0x082C2474 + thumb_func_end bgid_upload_textbox_1 + diff --git a/asm/naming_screen.s b/asm/naming_screen.s new file mode 100644 index 0000000..44437c0 --- /dev/null +++ b/asm/naming_screen.s @@ -0,0 +1,5023 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start DoNamingScreen +DoNamingScreen: @ 0x080E2244 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r2, r2, #0x10 + lsrs r5, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r6, r3, #0x10 + ldr r4, _080E2270 + movs r0, #0xf2 + lsls r0, r0, #5 + bl Alloc + str r0, [r4] + cmp r0, #0 + bne _080E2274 + ldr r0, [sp, #0x1c] + bl SetMainCallback2 + b _080E22AE + .align 2, 0 +_080E2270: .4byte 0x02039C34 +_080E2274: + ldr r1, _080E22B8 + adds r0, r0, r1 + strb r7, [r0] + ldr r0, [r4] + ldr r2, _080E22BC + adds r1, r0, r2 + strh r5, [r1] + adds r2, #2 + adds r1, r0, r2 + strh r6, [r1] + ldr r1, _080E22C0 + adds r2, r0, r1 + ldr r1, [sp, #0x18] + str r1, [r2] + ldr r2, _080E22C4 + adds r1, r0, r2 + mov r2, r8 + str r2, [r1] + ldr r1, _080E22C8 + adds r0, r0, r1 + ldr r2, [sp, #0x1c] + str r2, [r0] + cmp r7, #0 + bne _080E22A8 + bl StartTimer1 +_080E22A8: + ldr r0, _080E22CC + bl SetMainCallback2 +_080E22AE: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E22B8: .4byte 0x00001E2C +_080E22BC: .4byte 0x00001E34 +_080E22C0: .4byte 0x00001E38 +_080E22C4: .4byte 0x00001E30 +_080E22C8: .4byte 0x00001E3C +_080E22CC: .4byte 0x080E22D1 + thumb_func_end DoNamingScreen + + thumb_func_start C2_NamingScreen +C2_NamingScreen: @ 0x080E22D0 + push {lr} + ldr r0, _080E22EC + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #7 + bhi _080E2368 + lsls r0, r0, #2 + ldr r1, _080E22F0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E22EC: .4byte 0x03002360 +_080E22F0: .4byte 0x080E22F4 +_080E22F4: @ jump table + .4byte _080E2314 @ case 0 + .4byte _080E231E @ case 1 + .4byte _080E2324 @ case 2 + .4byte _080E232A @ case 3 + .4byte _080E2334 @ case 4 + .4byte _080E233A @ case 5 + .4byte _080E2340 @ case 6 + .4byte _080E2346 @ case 7 +_080E2314: + bl NamingScreen_TurnOffScreen + bl NamingScreen_Init + b _080E2352 +_080E231E: + bl NamingScreen_InitBGs + b _080E2352 +_080E2324: + bl ResetPaletteFade + b _080E2352 +_080E232A: + bl ResetSpriteData + bl FreeAllSpritePalettes + b _080E2352 +_080E2334: + bl ResetTasks + b _080E2352 +_080E233A: + bl choose_name_or_words_screen_apply_bg_pals + b _080E2352 +_080E2340: + bl choose_name_or_words_screen_load_bg_tile_patterns + b _080E2352 +_080E2346: + bl sub_080E31EC + bl UpdatePaletteFade + bl SetCursorPos +_080E2352: + ldr r1, _080E2364 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080E2370 + .align 2, 0 +_080E2364: .4byte 0x03002360 +_080E2368: + bl sub_080E4450 + bl sub_080E265C +_080E2370: + pop {r0} + bx r0 + thumb_func_end C2_NamingScreen + + thumb_func_start NamingScreen_Init +NamingScreen_Init: @ 0x080E2374 + push {r4, r5, r6, lr} + ldr r5, _080E2434 + ldr r0, [r5] + ldr r1, _080E2438 + adds r0, r0, r1 + movs r2, #0 + strb r2, [r0] + ldr r1, [r5] + ldr r3, _080E243C + adds r0, r1, r3 + movs r4, #0 + strh r2, [r0] + adds r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldr r0, _080E2440 + adds r2, r1, r0 + movs r3, #1 + movs r0, #1 + strh r0, [r2] + ldr r0, _080E2444 + adds r2, r1, r0 + movs r0, #2 + strh r0, [r2] + movs r2, #0xf1 + lsls r2, r2, #5 + adds r1, r1, r2 + strb r4, [r1] + ldr r0, [r5] + ldr r1, _080E2448 + adds r0, r0, r1 + strb r3, [r0] + ldr r1, [r5] + ldr r6, _080E244C + adds r3, r1, r6 + ldr r2, _080E2450 + ldr r4, _080E2454 + adds r0, r1, r4 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r3] + ldrb r0, [r0, #4] + ldr r2, _080E2458 + adds r1, r1, r2 + strb r0, [r1] + ldr r2, [r5] + adds r0, r2, r6 + ldr r0, [r0] + ldrb r0, [r0, #1] + lsrs r0, r0, #1 + movs r1, #0xe + subs r1, r1, r0 + ldr r0, _080E245C + adds r3, r2, r0 + strh r1, [r3] + adds r2, r2, r4 + ldrb r0, [r2] + cmp r0, #4 + bne _080E23F2 + adds r0, r1, #1 + strh r0, [r3] +_080E23F2: + ldr r0, [r5] + ldr r4, _080E2460 + ldrh r1, [r4] + ldr r2, _080E2464 + adds r0, r0, r2 + strb r1, [r0] + ldr r0, [r5] + movs r3, #0xc0 + lsls r3, r3, #5 + adds r0, r0, r3 + movs r1, #0xff + movs r2, #0x10 + bl memset + ldr r1, [r5] + adds r0, r1, r6 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #0 + beq _080E242A + movs r2, #0xc0 + lsls r2, r2, #5 + adds r0, r1, r2 + ldr r3, _080E2468 + adds r1, r1, r3 + ldr r1, [r1] + bl StringCopy +_080E242A: + movs r0, #0x10 + strh r0, [r4] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080E2434: .4byte 0x02039C34 +_080E2438: .4byte 0x00001E10 +_080E243C: .4byte 0x00001E18 +_080E2440: .4byte 0x00001E1C +_080E2444: .4byte 0x00001E1E +_080E2448: .4byte 0x00001E21 +_080E244C: .4byte 0x00001E28 +_080E2450: .4byte 0x08565CE8 +_080E2454: .4byte 0x00001E2C +_080E2458: .4byte 0x00001E22 +_080E245C: .4byte 0x00001E16 +_080E2460: .4byte 0x03002350 +_080E2464: .4byte 0x00001E25 +_080E2468: .4byte 0x00001E30 + thumb_func_end NamingScreen_Init + + thumb_func_start sub_080E246C +sub_080E246C: @ 0x080E246C + push {r4, r5, lr} + movs r3, #0 + ldr r4, _080E24A8 + movs r5, #5 + rsbs r5, r5, #0 +_080E2476: + lsls r0, r3, #4 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r2, r0, #0 + adds r2, #0x3e + ldrb r1, [r2] + lsls r0, r1, #0x1f + cmp r0, #0 + beq _080E2490 + adds r0, r5, #0 + ands r0, r1 + strb r0, [r2] +_080E2490: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0x3f + bls _080E2476 + movs r0, #0 + bl sub_080E3320 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080E24A8: .4byte 0x020205AC + thumb_func_end sub_080E246C + + thumb_func_start NamingScreen_InitBGs +NamingScreen_InitBGs: @ 0x080E24AC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x10 + movs r3, #0xc0 + lsls r3, r3, #0x13 + movs r4, #0xc0 + lsls r4, r4, #9 + add r0, sp, #0xc + mov r8, r0 + add r2, sp, #8 + movs r6, #0 + ldr r1, _080E2640 + movs r5, #0x80 + lsls r5, r5, #5 + ldr r7, _080E2644 + movs r0, #0x81 + lsls r0, r0, #0x18 + mov ip, r0 +_080E24D2: + strh r6, [r2] + add r0, sp, #8 + str r0, [r1] + str r3, [r1, #4] + str r7, [r1, #8] + ldr r0, [r1, #8] + adds r3, r3, r5 + subs r4, r4, r5 + cmp r4, r5 + bhi _080E24D2 + strh r6, [r2] + add r2, sp, #8 + str r2, [r1] + str r3, [r1, #4] + lsrs r0, r4, #1 + mov r2, ip + orrs r0, r2 + str r0, [r1, #8] + ldr r0, [r1, #8] + movs r0, #0xe0 + lsls r0, r0, #0x13 + movs r3, #0x80 + lsls r3, r3, #3 + movs r4, #0 + str r4, [sp, #0xc] + ldr r2, _080E2640 + mov r1, r8 + str r1, [r2] + str r0, [r2, #4] + lsrs r0, r3, #2 + movs r1, #0x85 + lsls r1, r1, #0x18 + orrs r0, r1 + str r0, [r2, #8] + ldr r0, [r2, #8] + movs r1, #0xa0 + lsls r1, r1, #0x13 + add r0, sp, #8 + strh r4, [r0] + str r0, [r2] + str r1, [r2, #4] + lsrs r3, r3, #1 + movs r0, #0x81 + lsls r0, r0, #0x18 + orrs r3, r0 + str r3, [r2, #8] + ldr r0, [r2, #8] + movs r0, #0 + movs r1, #0 + bl SetGpuReg + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _080E2648 + movs r0, #0 + movs r2, #4 + bl InitBgsFromTemplates + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + bl InitStandardTextBoxWindows + bl sub_08196DF4 +_080E25A0: + lsls r0, r4, #3 + ldr r1, _080E264C + adds r0, r0, r1 + bl AddWindow + ldr r5, _080E2650 + ldr r1, [r5] + ldr r2, _080E2654 + adds r1, r1, r2 + adds r1, r1, r4 + strb r0, [r1] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #4 + bls _080E25A0 + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r1, #0xc8 + lsls r1, r1, #3 + movs r0, #0x50 + bl SetGpuReg + ldr r1, _080E2658 + movs r0, #0x52 + bl SetGpuReg + ldr r1, [r5] + movs r0, #1 + bl SetBgTilemapBuffer + ldr r1, [r5] + movs r0, #0x80 + lsls r0, r0, #4 + adds r1, r1, r0 + movs r0, #2 + bl SetBgTilemapBuffer + ldr r1, [r5] + movs r2, #0x80 + lsls r2, r2, #5 + adds r1, r1, r2 + movs r0, #3 + bl SetBgTilemapBuffer + movs r4, #0x20 + str r4, [sp] + str r4, [sp, #4] + movs r0, #1 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + str r4, [sp] + str r4, [sp, #4] + movs r0, #2 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + str r4, [sp] + str r4, [sp, #4] + movs r0, #3 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E2640: .4byte 0x040000D4 +_080E2644: .4byte 0x81000800 +_080E2648: .4byte 0x085659FC +_080E264C: .4byte 0x08565A0C +_080E2650: .4byte 0x02039C34 +_080E2654: .4byte 0x00001E11 +_080E2658: .4byte 0x0000080C + thumb_func_end NamingScreen_InitBGs + + thumb_func_start sub_080E265C +sub_080E265C: @ 0x080E265C + push {lr} + ldr r0, _080E2670 + movs r1, #2 + bl CreateTask + ldr r0, _080E2674 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080E2670: .4byte 0x080E2679 +_080E2674: .4byte 0x080E474D + thumb_func_end sub_080E265C + + thumb_func_start sub_080E2678 +sub_080E2678: @ 0x080E2678 + push {lr} + ldr r0, _080E2694 + ldr r0, [r0] + ldr r1, _080E2698 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #9 + bhi _080E2708 + lsls r0, r0, #2 + ldr r1, _080E269C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E2694: .4byte 0x02039C34 +_080E2698: .4byte 0x00001E10 +_080E269C: .4byte 0x080E26A0 +_080E26A0: @ jump table + .4byte _080E26C8 @ case 0 + .4byte _080E26D6 @ case 1 + .4byte _080E26E0 @ case 2 + .4byte _080E26DC @ case 3 + .4byte _080E26E6 @ case 4 + .4byte _080E26EC @ case 5 + .4byte _080E26F2 @ case 6 + .4byte _080E26F8 @ case 7 + .4byte _080E26FE @ case 8 + .4byte _080E2704 @ case 9 +_080E26C8: + bl MainState_BeginFadeIn + bl sub_080E246C + bl NamingScreen_InitDisplayMode + b _080E2708 +_080E26D6: + bl MainState_WaitFadeIn + b _080E2708 +_080E26DC: + bl MainState_MoveToOKButton +_080E26E0: + bl MainState_HandleInput + b _080E2708 +_080E26E6: + bl MainState_StartPageSwap + b _080E2708 +_080E26EC: + bl sub_080E2C14 + b _080E2708 +_080E26F2: + bl MainState_6 + b _080E2708 +_080E26F8: + bl sub_080E2B98 + b _080E2708 +_080E26FE: + bl MainState_BeginFadeInOut + b _080E2708 +_080E2704: + bl MainState_WaitFadeOutAndExit +_080E2708: + pop {r0} + bx r0 + thumb_func_end sub_080E2678 + + thumb_func_start sub_080E270C +sub_080E270C: @ 0x080E270C + push {lr} + ldr r0, _080E2724 + ldr r0, [r0] + ldr r1, _080E2728 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _080E2720 + cmp r0, #4 + bne _080E272C +_080E2720: + movs r0, #1 + b _080E272E + .align 2, 0 +_080E2724: .4byte 0x02039C34 +_080E2728: .4byte 0x00001E2C +_080E272C: + movs r0, #0 +_080E272E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080E270C + + thumb_func_start GetCurrentPageColumnCount +GetCurrentPageColumnCount: @ 0x080E2734 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r5, _080E2754 + bl sub_080E270C + lsls r1, r0, #1 + adds r1, r1, r0 + adds r4, r4, r1 + adds r4, r4, r5 + ldrb r0, [r4] + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080E2754: .4byte 0x08565A3C + thumb_func_end GetCurrentPageColumnCount + + thumb_func_start sub_080E2758 +sub_080E2758: @ 0x080E2758 + push {r4, lr} + ldr r4, _080E277C + bl sub_080E270C + ldr r1, _080E2780 + ldr r2, [r1] + ldr r1, _080E2784 + adds r2, r2, r1 + lsls r1, r0, #1 + adds r1, r1, r0 + ldrb r2, [r2] + adds r1, r1, r2 + adds r1, r1, r4 + ldrb r0, [r1] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080E277C: .4byte 0x08565A42 +_080E2780: .4byte 0x02039C34 +_080E2784: .4byte 0x00001E22 + thumb_func_end sub_080E2758 + + thumb_func_start sub_080E2788 +sub_080E2788: @ 0x080E2788 + push {r4, lr} + ldr r4, _080E27AC + bl sub_080E270C + ldr r1, _080E27B0 + ldr r2, [r1] + ldr r1, _080E27B4 + adds r2, r2, r1 + lsls r1, r0, #1 + adds r1, r1, r0 + ldrb r2, [r2] + adds r1, r1, r2 + adds r1, r1, r4 + ldrb r0, [r1] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080E27AC: .4byte 0x08565A48 +_080E27B0: .4byte 0x02039C34 +_080E27B4: .4byte 0x00001E22 + thumb_func_end sub_080E2788 + + thumb_func_start MainState_BeginFadeIn +MainState_BeginFadeIn: @ 0x080E27B8 + push {r4, lr} + sub sp, #4 + ldr r1, _080E2818 + movs r0, #3 + bl sub_080E4490 + bl sub_080E270C + adds r1, r0, #0 + cmp r1, #0 + beq _080E2834 + ldr r4, _080E281C + ldr r0, [r4] + ldr r1, _080E2820 + adds r0, r0, r1 + movs r1, #1 + strb r1, [r0] + ldr r1, _080E2824 + movs r0, #2 + bl sub_080E4490 + ldr r1, _080E2828 + movs r0, #1 + bl sub_080E4490 + ldr r0, [r4] + ldr r2, _080E282C + adds r0, r0, r2 + ldrb r0, [r0] + movs r1, #0 + bl sub_080E45D0 + ldr r0, [r4] + ldr r1, _080E2830 + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #1 + bl sub_080E45D0 + movs r0, #2 + movs r1, #0 + bl sub_080E44A4 + movs r0, #1 + movs r1, #1 + bl sub_080E44A4 + b _080E287A + .align 2, 0 +_080E2818: .4byte 0x08565524 +_080E281C: .4byte 0x02039C34 +_080E2820: .4byte 0x00001E22 +_080E2824: .4byte 0x085656C8 +_080E2828: .4byte 0x08565600 +_080E282C: .4byte 0x00001E12 +_080E2830: .4byte 0x00001E11 +_080E2834: + ldr r4, _080E28D4 + ldr r0, [r4] + ldr r2, _080E28D8 + adds r0, r0, r2 + strb r1, [r0] + ldr r1, _080E28DC + movs r0, #1 + bl sub_080E4490 + ldr r1, _080E28E0 + movs r0, #2 + bl sub_080E4490 + ldr r0, [r4] + ldr r1, _080E28E4 + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0 + bl sub_080E45D0 + ldr r0, [r4] + ldr r2, _080E28E8 + adds r0, r0, r2 + ldrb r0, [r0] + movs r1, #1 + bl sub_080E45D0 + movs r0, #1 + movs r1, #0 + bl sub_080E44A4 + movs r0, #2 + movs r1, #1 + bl sub_080E44A4 +_080E287A: + bl sub_080E4510 + bl sub_080E3E4C + bl sub_080E3E24 + bl sub_080E46E4 + movs r0, #1 + bl CopyBgTilemapBufferToVram + movs r0, #2 + bl CopyBgTilemapBufferToVram + movs r0, #3 + bl CopyBgTilemapBufferToVram + movs r4, #1 + rsbs r4, r4, #0 + adds r0, r4, #0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + movs r0, #0 + str r0, [sp] + adds r0, r4, #0 + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r0, _080E28D4 + ldr r1, [r0] + ldr r0, _080E28EC + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0 + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080E28D4: .4byte 0x02039C34 +_080E28D8: .4byte 0x00001E22 +_080E28DC: .4byte 0x085656C8 +_080E28E0: .4byte 0x08565600 +_080E28E4: .4byte 0x00001E11 +_080E28E8: .4byte 0x00001E12 +_080E28EC: .4byte 0x00001E10 + thumb_func_end MainState_BeginFadeIn + + thumb_func_start MainState_WaitFadeIn +MainState_WaitFadeIn: @ 0x080E28F0 + push {lr} + ldr r0, _080E2920 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080E2918 + movs r0, #1 + bl SetInputState + movs r0, #1 + bl sub_080E3378 + ldr r0, _080E2924 + ldr r1, [r0] + ldr r0, _080E2928 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_080E2918: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_080E2920: .4byte 0x02037C74 +_080E2924: .4byte 0x02039C34 +_080E2928: .4byte 0x00001E10 + thumb_func_end MainState_WaitFadeIn + + thumb_func_start MainState_HandleInput +MainState_HandleInput: @ 0x080E292C + push {lr} + bl HandleKeyboardEvent + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MainState_HandleInput + + thumb_func_start MainState_MoveToOKButton +MainState_MoveToOKButton: @ 0x080E293C + push {lr} + bl IsCursorAnimFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080E295E + movs r0, #1 + bl SetInputState + bl sub_080E3310 + ldr r0, _080E2964 + ldr r0, [r0] + ldr r1, _080E2968 + adds r0, r0, r1 + movs r1, #2 + strb r1, [r0] +_080E295E: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_080E2964: .4byte 0x02039C34 +_080E2968: .4byte 0x00001E10 + thumb_func_end MainState_MoveToOKButton + + thumb_func_start MainState_6 +MainState_6: @ 0x080E296C + push {r4, lr} + bl sub_080E437C + movs r0, #0 + bl SetInputState + movs r0, #0 + bl sub_080E3378 + movs r0, #3 + movs r1, #0 + movs r2, #1 + bl sub_080E2E78 + ldr r4, _080E29B4 + ldr r0, [r4] + ldr r1, _080E29B8 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #2 + bne _080E29C0 + bl CalculatePlayerPartyCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + bls _080E29C0 + bl DisplaySentToPCMessage + ldr r0, [r4] + ldr r1, _080E29BC + adds r0, r0, r1 + movs r1, #7 + strb r1, [r0] + movs r0, #0 + b _080E29CE + .align 2, 0 +_080E29B4: .4byte 0x02039C34 +_080E29B8: .4byte 0x00001E2C +_080E29BC: .4byte 0x00001E10 +_080E29C0: + ldr r0, _080E29D4 + ldr r0, [r0] + ldr r1, _080E29D8 + adds r0, r0, r1 + movs r1, #8 + strb r1, [r0] + movs r0, #1 +_080E29CE: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080E29D4: .4byte 0x02039C34 +_080E29D8: .4byte 0x00001E10 + thumb_func_end MainState_6 + + thumb_func_start MainState_BeginFadeInOut +MainState_BeginFadeInOut: @ 0x080E29DC + push {lr} + sub sp, #4 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _080E2A08 + ldr r1, [r0] + ldr r0, _080E2A0C + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0 + add sp, #4 + pop {r1} + bx r1 + .align 2, 0 +_080E2A08: .4byte 0x02039C34 +_080E2A0C: .4byte 0x00001E10 + thumb_func_end MainState_BeginFadeInOut + + thumb_func_start MainState_WaitFadeOutAndExit +MainState_WaitFadeOutAndExit: @ 0x080E2A10 + push {r4, r5, lr} + ldr r0, _080E2A64 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _080E2A5A + ldr r4, _080E2A68 + ldr r0, [r4] + ldr r1, _080E2A6C + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080E2A34 + bl SeedRngAndSetTrainerId +_080E2A34: + ldr r0, [r4] + ldr r1, _080E2A70 + adds r0, r0, r1 + ldr r0, [r0] + bl SetMainCallback2 + ldr r0, _080E2A74 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + bl FreeAllWindowBuffers + ldr r0, [r4] + bl Free + str r5, [r4] +_080E2A5A: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080E2A64: .4byte 0x02037C74 +_080E2A68: .4byte 0x02039C34 +_080E2A6C: .4byte 0x00001E2C +_080E2A70: .4byte 0x00001E3C +_080E2A74: .4byte 0x080E2679 + thumb_func_end MainState_WaitFadeOutAndExit + + thumb_func_start DisplaySentToPCMessage +DisplaySentToPCMessage: @ 0x080E2A78 + push {r4, r5, lr} + sub sp, #0x10 + movs r5, #0 + bl sub_0813B298 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080E2AC8 + ldr r4, _080E2AB4 + ldr r0, _080E2AB8 + bl VarGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBoxNamePtr + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCopy + ldr r0, _080E2ABC + ldr r1, _080E2AC0 + ldr r1, [r1] + ldr r2, _080E2AC4 + adds r1, r1, r2 + ldr r1, [r1] + bl StringCopy + b _080E2B08 + .align 2, 0 +_080E2AB4: .4byte 0x02021C40 +_080E2AB8: .4byte 0x00004036 +_080E2ABC: .4byte 0x02021C54 +_080E2AC0: .4byte 0x02039C34 +_080E2AC4: .4byte 0x00001E30 +_080E2AC8: + ldr r4, _080E2B70 + ldr r0, _080E2B74 + bl VarGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBoxNamePtr + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCopy + ldr r0, _080E2B78 + ldr r1, _080E2B7C + ldr r1, [r1] + ldr r2, _080E2B80 + adds r1, r1, r2 + ldr r1, [r1] + bl StringCopy + ldr r4, _080E2B84 + bl get_unknown_box_id + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBoxNamePtr + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCopy + movs r5, #2 +_080E2B08: + ldr r0, _080E2B88 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080E2B1A + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_080E2B1A: + ldr r4, _080E2B8C + ldr r1, _080E2B90 + lsls r0, r5, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #0 + movs r1, #0 + bl ClearDialogWindowAndFrame + ldr r2, _080E2B94 + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + bl GetPlayerTextSpeedDelay + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #0 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + movs r0, #3 + str r0, [sp, #0xc] + movs r0, #0 + movs r1, #1 + adds r2, r4, #0 + bl AddTextPrinterParameterized2 + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080E2B70: .4byte 0x02021C40 +_080E2B74: .4byte 0x00004036 +_080E2B78: .4byte 0x02021C54 +_080E2B7C: .4byte 0x02039C34 +_080E2B80: .4byte 0x00001E30 +_080E2B84: .4byte 0x02021C68 +_080E2B88: .4byte 0x000008AB +_080E2B8C: .4byte 0x02021C7C +_080E2B90: .4byte 0x08565858 +_080E2B94: .4byte 0x030030B4 + thumb_func_end DisplaySentToPCMessage + + thumb_func_start sub_080E2B98 +sub_080E2B98: @ 0x080E2B98 + push {lr} + bl RunTextPrinters + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080E2BC2 + ldr r0, _080E2BC8 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080E2BC2 + ldr r0, _080E2BCC + ldr r0, [r0] + ldr r1, _080E2BD0 + adds r0, r0, r1 + movs r1, #8 + strb r1, [r0] +_080E2BC2: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_080E2BC8: .4byte 0x03002360 +_080E2BCC: .4byte 0x02039C34 +_080E2BD0: .4byte 0x00001E10 + thumb_func_end sub_080E2B98 + + thumb_func_start MainState_StartPageSwap +MainState_StartPageSwap: @ 0x080E2BD4 + push {lr} + movs r0, #0 + bl SetInputState + bl sub_080E3510 + bl StartPageSwapAnim + movs r0, #1 + bl sub_080E3320 + movs r0, #0 + movs r1, #0 + movs r2, #1 + bl sub_080E2E78 + movs r0, #6 + bl PlaySE + ldr r0, _080E2C0C + ldr r0, [r0] + ldr r1, _080E2C10 + adds r0, r0, r1 + movs r1, #5 + strb r1, [r0] + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_080E2C0C: .4byte 0x02039C34 +_080E2C10: .4byte 0x00001E10 + thumb_func_end MainState_StartPageSwap + + thumb_func_start sub_080E2C14 +sub_080E2C14: @ 0x080E2C14 + push {r4, lr} + bl IsPageSwapAnimNotInProgress + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080E2C56 + ldr r2, _080E2C60 + ldr r0, [r2] + ldr r1, _080E2C64 + adds r0, r0, r1 + movs r1, #2 + strb r1, [r0] + ldr r1, [r2] + ldr r3, _080E2C68 + adds r1, r1, r3 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r4, [r2] + adds r4, r4, r3 + ldrb r0, [r4] + movs r1, #3 + bl __umodsi3 + strb r0, [r4] + bl sub_080E4648 + movs r0, #1 + bl SetInputState + movs r0, #0 + bl sub_080E3320 +_080E2C56: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080E2C60: .4byte 0x02039C34 +_080E2C64: .4byte 0x00001E10 +_080E2C68: .4byte 0x00001E22 + thumb_func_end sub_080E2C14 + + thumb_func_start StartPageSwapAnim +StartPageSwapAnim: @ 0x080E2C6C + push {r4, lr} + ldr r4, _080E2C88 + adds r0, r4, #0 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl _call_via_r4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E2C88: .4byte 0x080E2C8D + thumb_func_end StartPageSwapAnim + + thumb_func_start Task_HandlePageSwapAnim +Task_HandlePageSwapAnim: @ 0x080E2C8C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _080E2CBC + ldr r2, _080E2CC0 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_080E2C9E: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080E2C9E + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080E2CBC: .4byte 0x08565A50 +_080E2CC0: .4byte 0x03005B60 + thumb_func_end Task_HandlePageSwapAnim + + thumb_func_start IsPageSwapAnimNotInProgress +IsPageSwapAnimNotInProgress: @ 0x080E2CC4 + push {lr} + ldr r0, _080E2CD8 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _080E2CDC + movs r0, #0 + b _080E2CDE + .align 2, 0 +_080E2CD8: .4byte 0x080E2C8D +_080E2CDC: + movs r0, #1 +_080E2CDE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsPageSwapAnimNotInProgress + + thumb_func_start PageSwapAnimState_Init +PageSwapAnimState_Init: @ 0x080E2CE4 + ldr r1, _080E2D00 + ldr r1, [r1] + ldr r3, _080E2D04 + adds r2, r1, r3 + movs r3, #0 + strh r3, [r2] + ldr r2, _080E2D08 + adds r1, r1, r2 + strh r3, [r1] + ldrh r1, [r0, #8] + adds r1, #1 + strh r1, [r0, #8] + movs r0, #0 + bx lr + .align 2, 0 +_080E2D00: .4byte 0x02039C34 +_080E2D04: .4byte 0x00001E18 +_080E2D08: .4byte 0x00001E1A + thumb_func_end PageSwapAnimState_Init + + thumb_func_start PageSwapAnimState_1 +PageSwapAnimState_1: @ 0x080E2D0C + push {r4, r5, lr} + sub sp, #8 + adds r4, r0, #0 + ldr r5, _080E2D8C + ldr r0, [r5] + ldr r2, _080E2D90 + adds r1, r0, r2 + str r1, [sp] + ldr r1, _080E2D94 + adds r0, r0, r1 + str r0, [sp, #4] + ldrh r0, [r4, #0xa] + adds r0, #4 + strh r0, [r4, #0xa] + movs r2, #0xa + ldrsh r0, [r4, r2] + movs r1, #0x28 + bl Sin + ldr r1, [r5] + movs r2, #0xf1 + lsls r2, r2, #5 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #2 + add r1, sp + ldr r1, [r1] + strh r0, [r1] + ldrh r0, [r4, #0xa] + adds r0, #0x80 + movs r1, #0xff + ands r0, r1 + movs r1, #0x28 + bl Sin + ldr r1, [r5] + ldr r2, _080E2D98 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #2 + add r1, sp + ldr r1, [r1] + strh r0, [r1] + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0x3f + ble _080E2D82 + ldr r0, [r5] + ldr r1, _080E2D9C + adds r2, r0, r1 + ldrb r3, [r2] + adds r1, #2 + adds r0, r0, r1 + ldrh r1, [r0] + strh r1, [r2] + strh r3, [r0] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080E2D82: + movs r0, #0 + add sp, #8 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080E2D8C: .4byte 0x02039C34 +_080E2D90: .4byte 0x00001E1A +_080E2D94: .4byte 0x00001E18 +_080E2D98: .4byte 0x00001E21 +_080E2D9C: .4byte 0x00001E1C + thumb_func_end PageSwapAnimState_1 + + thumb_func_start PageSwapAnimState_2 +PageSwapAnimState_2: @ 0x080E2DA0 + push {r4, r5, lr} + sub sp, #8 + adds r4, r0, #0 + ldr r5, _080E2E24 + ldr r0, [r5] + ldr r2, _080E2E28 + adds r1, r0, r2 + str r1, [sp] + ldr r3, _080E2E2C + adds r0, r0, r3 + str r0, [sp, #4] + ldrh r0, [r4, #0xa] + adds r0, #4 + strh r0, [r4, #0xa] + movs r1, #0xa + ldrsh r0, [r4, r1] + movs r1, #0x28 + bl Sin + ldr r1, [r5] + movs r2, #0xf1 + lsls r2, r2, #5 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #2 + add r1, sp + ldr r1, [r1] + strh r0, [r1] + ldrh r0, [r4, #0xa] + adds r0, #0x80 + movs r1, #0xff + ands r0, r1 + movs r1, #0x28 + bl Sin + ldr r1, [r5] + ldr r3, _080E2E30 + adds r1, r1, r3 + ldrb r1, [r1] + lsls r1, r1, #2 + add r1, sp + ldr r1, [r1] + strh r0, [r1] + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0x7f + ble _080E2E1A + ldr r0, [r5] + movs r2, #0xf1 + lsls r2, r2, #5 + adds r1, r0, r2 + ldrb r2, [r1] + adds r0, r0, r3 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, [r5] + adds r0, r0, r3 + strb r2, [r0] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080E2E1A: + movs r0, #0 + add sp, #8 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080E2E24: .4byte 0x02039C34 +_080E2E28: .4byte 0x00001E1A +_080E2E2C: .4byte 0x00001E18 +_080E2E30: .4byte 0x00001E21 + thumb_func_end PageSwapAnimState_2 + + thumb_func_start PageSwapAnimState_Done +PageSwapAnimState_Done: @ 0x080E2E34 + push {lr} + ldr r0, _080E2E4C + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_080E2E4C: .4byte 0x080E2C8D + thumb_func_end PageSwapAnimState_Done + + thumb_func_start MoveCursorToOKButton +MoveCursorToOKButton: @ 0x080E2E50 + push {lr} + ldr r0, _080E2E70 + movs r1, #3 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080E2E74 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r0, #3 + strh r0, [r1, #8] + pop {r0} + bx r0 + .align 2, 0 +_080E2E70: .4byte 0x080E2EED +_080E2E74: .4byte 0x03005B60 + thumb_func_end MoveCursorToOKButton + + thumb_func_start sub_080E2E78 +sub_080E2E78: @ 0x080E2E78 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + ldr r0, _080E2EB0 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080E2EB4 + adds r4, r1, r0 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r5, r0 + bne _080E2EB8 + cmp r6, #0 + bne _080E2EB8 + strh r7, [r4, #0xa] + movs r0, #1 + strh r0, [r4, #0xc] + b _080E2EE4 + .align 2, 0 +_080E2EB0: .4byte 0x080E2EED +_080E2EB4: .4byte 0x03005B60 +_080E2EB8: + cmp r5, #3 + bne _080E2EC8 + movs r2, #0xa + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _080E2EC8 + cmp r6, #0 + beq _080E2EE4 +_080E2EC8: + ldrh r1, [r4, #8] + movs r2, #8 + ldrsh r0, [r4, r2] + cmp r0, #3 + beq _080E2EDA + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + bl sub_080E3018 +_080E2EDA: + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r7, #0 + bl sub_080E3040 +_080E2EE4: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080E2E78 + + thumb_func_start Task_80E39BC +Task_80E39BC: @ 0x080E2EEC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080E2F54 + adds r4, r1, r0 + ldrh r1, [r4, #8] + movs r2, #8 + ldrsh r0, [r4, r2] + cmp r0, #3 + beq _080E2F9E + movs r3, #0xc + ldrsh r0, [r4, r3] + cmp r0, #0 + beq _080E2F9E + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + bl sub_080E2FA4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrb r3, [r4, #0xe] + adds r1, r3, #0 + adds r2, r3, #0 + bl MultiplyInvertedPaletteRGBComponents + ldrh r1, [r4, #0x12] + movs r2, #0x12 + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _080E2F38 + subs r0, r1, #1 + strh r0, [r4, #0x12] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080E2F9E +_080E2F38: + movs r0, #2 + strh r0, [r4, #0x12] + ldrh r1, [r4, #0x10] + movs r3, #0x10 + ldrsh r0, [r4, r3] + cmp r0, #0 + blt _080E2F62 + ldrh r2, [r4, #0xe] + movs r3, #0xe + ldrsh r0, [r4, r3] + cmp r0, #0xd + bgt _080E2F58 + adds r0, r2, r1 + b _080E2F66 + .align 2, 0 +_080E2F54: .4byte 0x03005B60 +_080E2F58: + movs r0, #0x10 + strh r0, [r4, #0xe] + ldrh r0, [r4, #0x14] + adds r0, #1 + b _080E2F6C +_080E2F62: + ldrh r3, [r4, #0xe] + adds r0, r1, r3 +_080E2F66: + strh r0, [r4, #0xe] + ldrh r2, [r4, #0x14] + adds r0, r1, r2 +_080E2F6C: + strh r0, [r4, #0x14] + movs r3, #0xe + ldrsh r0, [r4, r3] + ldrh r1, [r4, #0xe] + cmp r0, #0x10 + bne _080E2F8C + movs r2, #0x14 + ldrsh r0, [r4, r2] + cmp r0, #0x16 + bne _080E2F8C + ldr r0, _080E2F88 + strh r0, [r4, #0x10] + b _080E2F9E + .align 2, 0 +_080E2F88: .4byte 0x0000FFFC +_080E2F8C: + lsls r0, r1, #0x10 + asrs r1, r0, #0x10 + cmp r1, #0 + bne _080E2F9E + ldrh r0, [r4, #0xa] + strh r0, [r4, #0xc] + movs r0, #2 + strh r0, [r4, #0x10] + strh r1, [r4, #0x14] +_080E2F9E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end Task_80E39BC + + thumb_func_start sub_080E2FA4 +sub_080E2FA4: @ 0x080E2FA4 + push {r4, r5, r6, lr} + sub sp, #0x10 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #4 + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x14 + movs r1, #0x87 + lsls r1, r1, #1 + adds r5, r1, #0 + adds r0, r0, r5 + add r6, sp, #8 + strh r0, [r6] + movs r0, #6 + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x14 + adds r0, r0, r5 + mov r1, sp + adds r1, #0xa + strh r0, [r1] + movs r0, #7 + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x14 + adds r0, r0, r5 + add r1, sp, #0xc + strh r0, [r1] + movs r0, #7 + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x14 + ldr r1, _080E3014 + adds r0, r0, r1 + mov r1, sp + adds r1, #0xe + strh r0, [r1] + mov r0, sp + adds r1, r6, #0 + movs r2, #8 + bl memcpy + lsls r4, r4, #1 + mov r1, sp + adds r0, r1, r4 + ldrh r0, [r0] + add sp, #0x10 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080E3014: .4byte 0x00000101 + thumb_func_end sub_080E2FA4 + + thumb_func_start sub_080E3018 +sub_080E3018: @ 0x080E3018 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_080E2FA4 + lsls r0, r0, #0x10 + ldr r2, _080E3038 + lsrs r0, r0, #0xf + adds r2, r0, r2 + ldr r1, _080E303C + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2] + pop {r0} + bx r0 + .align 2, 0 +_080E3038: .4byte 0x020377B4 +_080E303C: .4byte 0x020373B4 + thumb_func_end sub_080E3018 + + thumb_func_start sub_080E3040 +sub_080E3040: @ 0x080E3040 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r3, #0 + strh r1, [r0, #8] + strh r2, [r0, #0xa] + movs r1, #1 + strh r1, [r0, #0xc] + movs r2, #4 + strh r2, [r0, #0xe] + movs r1, #2 + strh r1, [r0, #0x10] + strh r3, [r0, #0x12] + strh r2, [r0, #0x14] + bx lr + thumb_func_end sub_080E3040 + + thumb_func_start sub_080E3060 +sub_080E3060: @ 0x080E3060 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080E3078 + adds r0, r4, #0 + movs r1, #0 + bl StartSpriteAnim +_080E3078: + ldrh r1, [r4, #0x36] + movs r0, #0xff + ands r0, r1 + adds r3, r4, #0 + adds r3, #0x3e + movs r1, #1 + ands r0, r1 + lsls r0, r0, #2 + ldrb r1, [r3] + movs r2, #5 + rsbs r2, r2, #0 + ands r2, r1 + orrs r2, r0 + strb r2, [r3] + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0x13 + bne _080E30A2 + movs r0, #4 + orrs r2, r0 + strb r2, [r3] +_080E30A2: + ldrb r1, [r3] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _080E30D2 + movs r2, #0x36 + ldrsh r0, [r4, r2] + movs r1, #0xff + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + beq _080E30D2 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r2, #0x32 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080E30D2 + movs r0, #0x30 + ldrsh r1, [r4, r0] + movs r2, #0x34 + ldrsh r0, [r4, r2] + cmp r1, r0 + beq _080E30DC +_080E30D2: + movs r0, #0 + strh r0, [r4, #0x38] + movs r0, #2 + strh r0, [r4, #0x3a] + strh r0, [r4, #0x3c] +_080E30DC: + ldrh r0, [r4, #0x3c] + subs r0, #1 + strh r0, [r4, #0x3c] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080E3104 + ldrh r1, [r4, #0x3a] + ldrh r2, [r4, #0x38] + adds r0, r1, r2 + strh r0, [r4, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x10 + beq _080E30FC + cmp r0, #0 + bne _080E3100 +_080E30FC: + rsbs r0, r1, #0 + strh r0, [r4, #0x3a] +_080E3100: + movs r0, #2 + strh r0, [r4, #0x3c] +_080E3104: + movs r1, #0x36 + ldrsh r0, [r4, r1] + movs r1, #0xff + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + beq _080E313A + ldrh r4, [r4, #0x38] + lsls r5, r4, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r4, #0x10 + asrs r4, r4, #0x11 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #5 + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #4 + ldr r2, _080E3140 + adds r0, r0, r2 + lsrs r0, r0, #0x10 + adds r1, r4, #0 + adds r2, r5, #0 + adds r3, r5, #0 + bl MultiplyInvertedPaletteRGBComponents +_080E313A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080E3140: .4byte 0x01010000 + thumb_func_end sub_080E3060 + + thumb_func_start sub_080E3144 +sub_080E3144: @ 0x080E3144 + push {r4, lr} + sub sp, #8 + adds r4, r0, #0 + ldr r1, _080E318C + mov r0, sp + movs r2, #8 + bl memcpy + ldrh r1, [r4, #0x2e] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _080E3168 + subs r0, r1, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080E3176 +_080E3168: + movs r0, #8 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x30] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strh r0, [r4, #0x30] +_080E3176: + movs r1, #0x30 + ldrsh r0, [r4, r1] + lsls r0, r0, #1 + add r0, sp + ldrh r0, [r0] + strh r0, [r4, #0x24] + add sp, #8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E318C: .4byte 0x08565A60 + thumb_func_end sub_080E3144 + + thumb_func_start sub_080E3190 +sub_080E3190: @ 0x080E3190 + push {r4, lr} + sub sp, #8 + adds r4, r0, #0 + ldr r1, _080E31B8 + mov r0, sp + movs r2, #8 + bl memcpy + bl GetTextCaretPosition + lsls r0, r0, #0x18 + ldrh r1, [r4, #0x2e] + lsls r1, r1, #0x18 + cmp r0, r1 + beq _080E31BC + movs r0, #0 + strh r0, [r4, #0x26] + strh r0, [r4, #0x30] + b _080E31E2 + .align 2, 0 +_080E31B8: .4byte 0x08565A68 +_080E31BC: + movs r1, #0x30 + ldrsh r0, [r4, r1] + lsls r0, r0, #1 + add r0, sp + ldrh r0, [r0] + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #8 + ble _080E31E4 + ldrh r0, [r4, #0x30] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strh r0, [r4, #0x30] + movs r0, #0 +_080E31E2: + strh r0, [r4, #0x32] +_080E31E4: + add sp, #8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_080E3190 + + thumb_func_start sub_080E31EC +sub_080E31EC: @ 0x080E31EC + push {lr} + bl CursorInit + bl CreatePageSwitcherSprites + bl CreateBackOkSprites + bl CreateUnderscoreSprites + bl CreateInputTargetIcon + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080E31EC + + thumb_func_start CursorInit +CursorInit: @ 0x080E3208 + push {r4, r5, r6, lr} + ldr r0, _080E328C + movs r1, #0x1b + movs r2, #0x57 + movs r3, #1 + bl CreateSprite + ldr r5, _080E3290 + ldr r1, [r5] + ldr r4, _080E3294 + adds r1, r1, r4 + strb r0, [r1] + movs r0, #1 + bl sub_080E3320 + ldr r6, _080E3298 + ldr r0, [r5] + adds r0, r0, r4 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrb r3, [r1, #5] + movs r2, #0xd + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r3 + movs r3, #4 + orrs r0, r3 + strb r0, [r1, #5] + ldr r0, [r5] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r1, [r0, #1] + ands r2, r1 + orrs r2, r3 + strb r2, [r0, #1] + ldr r2, [r5] + adds r2, r2, r4 + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #1 + strh r1, [r0, #0x3a] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #2 + strh r1, [r0, #0x3a] + movs r0, #0 + movs r1, #0 + bl sub_080E329C + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080E328C: .4byte 0x08565E50 +_080E3290: .4byte 0x02039C34 +_080E3294: .4byte 0x00001E23 +_080E3298: .4byte 0x020205AC + thumb_func_end CursorInit + + thumb_func_start sub_080E329C +sub_080E329C: @ 0x080E329C + push {r4, lr} + lsls r0, r0, #0x10 + lsls r1, r1, #0x10 + ldr r2, _080E32D8 + ldr r2, [r2] + ldr r3, _080E32DC + adds r2, r2, r3 + ldrb r3, [r2] + lsls r2, r3, #4 + adds r2, r2, r3 + lsls r2, r2, #2 + ldr r3, _080E32E0 + adds r2, r2, r3 + lsrs r4, r0, #0x10 + asrs r0, r0, #0xd + adds r0, #0x1b + strh r0, [r2, #0x20] + lsrs r3, r1, #0x10 + asrs r1, r1, #0xc + adds r1, #0x57 + strh r1, [r2, #0x22] + ldrh r0, [r2, #0x2e] + strh r0, [r2, #0x32] + ldrh r0, [r2, #0x30] + strh r0, [r2, #0x34] + strh r4, [r2, #0x2e] + strh r3, [r2, #0x30] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E32D8: .4byte 0x02039C34 +_080E32DC: .4byte 0x00001E23 +_080E32E0: .4byte 0x020205AC + thumb_func_end sub_080E329C + + thumb_func_start GetCursorPos +GetCursorPos: @ 0x080E32E4 + ldr r2, _080E3304 + ldr r2, [r2] + ldr r3, _080E3308 + adds r2, r2, r3 + ldrb r3, [r2] + lsls r2, r3, #4 + adds r2, r2, r3 + lsls r2, r2, #2 + ldr r3, _080E330C + adds r2, r2, r3 + ldrh r3, [r2, #0x2e] + strh r3, [r0] + ldrh r0, [r2, #0x30] + strh r0, [r1] + bx lr + .align 2, 0 +_080E3304: .4byte 0x02039C34 +_080E3308: .4byte 0x00001E23 +_080E330C: .4byte 0x020205AC + thumb_func_end GetCursorPos + + thumb_func_start sub_080E3310 +sub_080E3310: @ 0x080E3310 + push {lr} + movs r0, #0x13 + movs r1, #2 + bl sub_080E329C + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080E3310 + + thumb_func_start sub_080E3320 +sub_080E3320: @ 0x080E3320 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _080E3368 + ldr r1, _080E336C + ldr r4, [r1] + ldr r1, _080E3370 + adds r4, r4, r1 + ldrb r1, [r4] + lsls r2, r1, #4 + adds r2, r2, r1 + lsls r2, r2, #2 + adds r2, r2, r5 + ldrh r3, [r2, #0x36] + ldr r1, _080E3374 + ands r1, r3 + strh r1, [r2, #0x36] + ldrb r2, [r4] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrh r2, [r1, #0x36] + orrs r0, r2 + strh r0, [r1, #0x36] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0 + bl StartSpriteAnim + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080E3368: .4byte 0x020205AC +_080E336C: .4byte 0x02039C34 +_080E3370: .4byte 0x00001E23 +_080E3374: .4byte 0xFFFFFF00 + thumb_func_end sub_080E3320 + + thumb_func_start sub_080E3378 +sub_080E3378: @ 0x080E3378 + push {r4, r5, lr} + lsls r0, r0, #0x18 + ldr r5, _080E33B0 + ldr r1, _080E33B4 + ldr r4, [r1] + ldr r1, _080E33B8 + adds r4, r4, r1 + ldrb r1, [r4] + lsls r2, r1, #4 + adds r2, r2, r1 + lsls r2, r2, #2 + adds r2, r2, r5 + ldrh r3, [r2, #0x36] + movs r1, #0xff + ands r1, r3 + strh r1, [r2, #0x36] + ldrb r2, [r4] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r5 + lsrs r0, r0, #0x10 + ldrh r2, [r1, #0x36] + orrs r0, r2 + strh r0, [r1, #0x36] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080E33B0: .4byte 0x020205AC +_080E33B4: .4byte 0x02039C34 +_080E33B8: .4byte 0x00001E23 + thumb_func_end sub_080E3378 + + thumb_func_start sub_080E33BC +sub_080E33BC: @ 0x080E33BC + push {lr} + ldr r0, _080E33DC + ldr r0, [r0] + ldr r1, _080E33E0 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080E33E4 + adds r0, r0, r1 + movs r1, #1 + bl StartSpriteAnim + pop {r0} + bx r0 + .align 2, 0 +_080E33DC: .4byte 0x02039C34 +_080E33E0: .4byte 0x00001E23 +_080E33E4: .4byte 0x020205AC + thumb_func_end sub_080E33BC + + thumb_func_start IsCursorAnimFinished +IsCursorAnimFinished: @ 0x080E33E8 + ldr r2, _080E3408 + ldr r0, _080E340C + ldr r0, [r0] + ldr r1, _080E3410 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3f + ldrb r0, [r0] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1f + bx lr + .align 2, 0 +_080E3408: .4byte 0x020205AC +_080E340C: .4byte 0x02039C34 +_080E3410: .4byte 0x00001E23 + thumb_func_end IsCursorAnimFinished + + thumb_func_start GetKeyRoleAtCursorPos +GetKeyRoleAtCursorPos: @ 0x080E3414 + push {r4, lr} + sub sp, #4 + mov r4, sp + adds r4, #2 + mov r0, sp + adds r1, r4, #0 + bl GetCursorPos + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0x12 + ble _080E3440 + ldr r0, _080E343C + movs r2, #0 + ldrsh r1, [r4, r2] + adds r1, r1, r0 + ldrb r0, [r1] + b _080E3442 + .align 2, 0 +_080E343C: .4byte 0x08565A70 +_080E3440: + movs r0, #0 +_080E3442: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetKeyRoleAtCursorPos + + thumb_func_start CreatePageSwitcherSprites +CreatePageSwitcherSprites: @ 0x080E344C + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + ldr r0, _080E34F0 + movs r1, #0xcc + movs r2, #0x58 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080E34F4 + ldr r1, [r1] + ldr r2, _080E34F8 + adds r1, r1, r2 + strb r0, [r1] + lsls r5, r0, #4 + adds r5, r5, r0 + lsls r5, r5, #2 + ldr r0, _080E34FC + mov r8, r0 + add r5, r8 + ldr r1, _080E3500 + adds r0, r5, #0 + bl SetSubspriteTables + adds r1, r5, #0 + adds r1, #0x3e + ldrb r0, [r1] + movs r6, #4 + orrs r0, r6 + strb r0, [r1] + ldr r0, _080E3504 + movs r1, #0xcc + movs r2, #0x54 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x3a] + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + add r4, r8 + ldr r1, _080E3508 + adds r0, r4, #0 + bl SetSubspriteTables + adds r4, #0x3e + ldrb r0, [r4] + orrs r0, r6 + strb r0, [r4] + ldr r0, _080E350C + movs r1, #0xcc + movs r2, #0x53 + movs r3, #2 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + add r2, r8 + ldrb r3, [r2, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r6 + strb r1, [r2, #5] + strh r0, [r5, #0x3c] + adds r2, #0x3e + ldrb r0, [r2] + orrs r0, r6 + strb r0, [r2] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080E34F0: .4byte 0x08565DD8 +_080E34F4: .4byte 0x02039C34 +_080E34F8: .4byte 0x00001E24 +_080E34FC: .4byte 0x020205AC +_080E3500: .4byte 0x08565D68 +_080E3504: .4byte 0x08565E08 +_080E3508: .4byte 0x08565D70 +_080E350C: .4byte 0x08565DF0 + thumb_func_end CreatePageSwitcherSprites + + thumb_func_start sub_080E3510 +sub_080E3510: @ 0x080E3510 + ldr r0, _080E3534 + ldr r2, [r0] + ldr r1, _080E3538 + adds r0, r2, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080E353C + adds r0, r0, r1 + movs r1, #2 + strh r1, [r0, #0x2e] + ldr r1, _080E3540 + adds r2, r2, r1 + ldrb r1, [r2] + strh r1, [r0, #0x30] + bx lr + .align 2, 0 +_080E3534: .4byte 0x02039C34 +_080E3538: .4byte 0x00001E24 +_080E353C: .4byte 0x020205AC +_080E3540: .4byte 0x00001E22 + thumb_func_end sub_080E3510 + + thumb_func_start sub_080E3544 +sub_080E3544: @ 0x080E3544 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _080E3568 +_080E354A: + movs r1, #0x2e + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080E354A + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080E3568: .4byte 0x08565A74 + thumb_func_end sub_080E3544 + + thumb_func_start sub_080E356C +sub_080E356C: @ 0x080E356C + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r1, #0x3a + ldrsh r0, [r6, r1] + lsls r5, r0, #4 + adds r5, r5, r0 + lsls r5, r5, #2 + ldr r1, _080E35B4 + adds r5, r5, r1 + movs r2, #0x3c + ldrsh r0, [r6, r2] + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + adds r4, r4, r1 + ldr r0, _080E35B8 + ldr r0, [r0] + ldr r1, _080E35BC + adds r0, r0, r1 + ldrb r0, [r0] + bl GetCurrentPageColumnCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r5, #0 + adds r2, r4, #0 + bl sub_080E3678 + ldrh r0, [r6, #0x2e] + adds r0, #1 + strh r0, [r6, #0x2e] + movs r0, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080E35B4: .4byte 0x020205AC +_080E35B8: .4byte 0x02039C34 +_080E35BC: .4byte 0x00001E22 + thumb_func_end sub_080E356C + + thumb_func_start sub_080E35C0 +sub_080E35C0: @ 0x080E35C0 + movs r0, #0 + bx lr + thumb_func_end sub_080E35C0 + + thumb_func_start sub_080E35C4 +sub_080E35C4: @ 0x080E35C4 + push {r4, r5, lr} + adds r3, r0, #0 + movs r0, #0x3a + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r2, _080E3630 + adds r4, r0, r2 + movs r0, #0x3c + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r5, r0, r2 + ldrh r0, [r4, #0x26] + adds r0, #1 + strh r0, [r4, #0x26] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + ble _080E3628 + ldrh r0, [r3, #0x2e] + adds r0, #1 + strh r0, [r3, #0x2e] + ldr r0, _080E3634 + strh r0, [r4, #0x26] + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r3, #0x30] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #1 + movs r1, #3 + bl __modsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetCurrentPageColumnCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_080E3678 +_080E3628: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080E3630: .4byte 0x020205AC +_080E3634: .4byte 0x0000FFFC + thumb_func_end sub_080E35C4 + + thumb_func_start sub_080E3638 +sub_080E3638: @ 0x080E3638 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x3a + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080E3674 + adds r2, r0, r1 + adds r3, r2, #0 + adds r3, #0x3e + ldrb r1, [r3] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3] + ldrh r0, [r2, #0x26] + adds r0, #1 + strh r0, [r2, #0x26] + lsls r0, r0, #0x10 + cmp r0, #0 + blt _080E366C + movs r0, #0 + strh r0, [r2, #0x26] + movs r0, #1 + strh r0, [r4, #0x2e] +_080E366C: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080E3674: .4byte 0x020205AC + thumb_func_end sub_080E3638 + + thumb_func_start sub_080E3678 +sub_080E3678: @ 0x080E3678 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r5, r0, #0 + adds r6, r1, #0 + mov r8, r2 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _080E36D0 + lsls r4, r5, #1 + adds r0, r4, r0 + ldrh r0, [r0] + bl IndexOfSpritePaletteTag + lsls r0, r0, #4 + mov r1, r8 + ldrb r2, [r1, #5] + movs r1, #0xf + ands r1, r2 + orrs r1, r0 + mov r0, r8 + strb r1, [r0, #5] + ldr r0, _080E36D4 + adds r4, r4, r0 + ldrh r0, [r4] + bl GetSpriteTileStartByTag + adds r1, r6, #0 + adds r1, #0x40 + strh r0, [r1] + adds r6, #0x42 + movs r1, #0x3f + ands r1, r5 + ldrb r2, [r6] + movs r0, #0x40 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r6] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080E36D0: .4byte 0x08565A84 +_080E36D4: .4byte 0x08565A8A + thumb_func_end sub_080E3678 + + thumb_func_start CreateBackOkSprites +CreateBackOkSprites: @ 0x080E36D8 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + ldr r0, _080E3740 + movs r1, #0xcc + movs r2, #0x74 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r6, _080E3744 + adds r4, r4, r6 + ldr r0, _080E3748 + mov r8, r0 + adds r0, r4, #0 + mov r1, r8 + bl SetSubspriteTables + adds r4, #0x3e + ldrb r0, [r4] + movs r5, #4 + orrs r0, r5 + strb r0, [r4] + ldr r0, _080E374C + movs r1, #0xcc + movs r2, #0x8c + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + adds r4, r4, r6 + adds r0, r4, #0 + mov r1, r8 + bl SetSubspriteTables + adds r4, #0x3e + ldrb r0, [r4] + orrs r0, r5 + strb r0, [r4] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080E3740: .4byte 0x08565E20 +_080E3744: .4byte 0x020205AC +_080E3748: .4byte 0x08565D88 +_080E374C: .4byte 0x08565E38 + thumb_func_end CreateBackOkSprites + + thumb_func_start CreateUnderscoreSprites +CreateUnderscoreSprites: @ 0x080E3750 + push {r4, r5, r6, lr} + ldr r5, _080E3808 + ldr r0, [r5] + ldr r4, _080E380C + adds r0, r0, r4 + ldrh r1, [r0] + subs r1, #1 + lsls r1, r1, #3 + adds r1, #4 + ldr r0, _080E3810 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r2, #0x38 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r3, _080E3814 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #5] + movs r2, #0xc + orrs r1, r2 + strb r1, [r0, #5] + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + ldr r1, [r5] + adds r4, r1, r4 + ldrh r0, [r4] + lsls r0, r0, #3 + adds r0, #4 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r5, #0 + ldr r0, _080E3818 + adds r1, r1, r0 + ldr r0, [r1] + ldrb r0, [r0, #1] + cmp r5, r0 + bhs _080E3800 + adds r6, r3, #0 +_080E37AE: + lsls r1, r4, #0x10 + asrs r4, r1, #0x10 + movs r0, #0xc0 + lsls r0, r0, #0xa + adds r1, r1, r0 + asrs r1, r1, #0x10 + ldr r0, _080E381C + movs r2, #0x3c + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r1, [r0, #5] + movs r2, #0xc + orrs r1, r2 + strb r1, [r0, #5] + strh r5, [r0, #0x2e] + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r4, #0xa + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r0, _080E3808 + ldr r0, [r0] + ldr r1, _080E3818 + adds r0, r0, r1 + ldr r0, [r0] + ldrb r0, [r0, #1] + cmp r5, r0 + blo _080E37AE +_080E3800: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080E3808: .4byte 0x02039C34 +_080E380C: .4byte 0x00001E16 +_080E3810: .4byte 0x08565E68 +_080E3814: .4byte 0x020205AC +_080E3818: .4byte 0x00001E28 +_080E381C: .4byte 0x08565E80 + thumb_func_end CreateUnderscoreSprites + + thumb_func_start CreateInputTargetIcon +CreateInputTargetIcon: @ 0x080E3820 + push {lr} + ldr r1, _080E3840 + ldr r0, _080E3844 + ldr r0, [r0] + ldr r2, _080E3848 + adds r0, r0, r2 + ldr r0, [r0] + ldrb r0, [r0, #2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + thumb_func_end CreateInputTargetIcon + + thumb_func_start TaskDummy3 +TaskDummy3: @ 0x080E383C + bx r0 + .align 2, 0 +_080E3840: .4byte 0x08565A90 +_080E3844: .4byte 0x02039C34 +_080E3848: .4byte 0x00001E28 + thumb_func_end TaskDummy3 + + thumb_func_start TaskDummy2 +TaskDummy2: @ 0x080E384C + bx lr + .align 2, 0 + thumb_func_end TaskDummy2 + + thumb_func_start NamingScreen_CreatePlayerIcon +NamingScreen_CreatePlayerIcon: @ 0x080E3850 + push {lr} + sub sp, #4 + ldr r0, _080E389C + ldr r0, [r0] + ldr r1, _080E38A0 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0 + bl GetPlayerAvatarGraphicsIdByStateIdAndGender + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080E38A4 + movs r2, #0 + str r2, [sp] + movs r2, #0x38 + movs r3, #0x25 + bl AddPseudoEventObject + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _080E38A8 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #5] + movs r2, #0xc + orrs r1, r2 + strb r1, [r0, #5] + movs r1, #4 + bl StartSpriteAnim + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_080E389C: .4byte 0x02039C34 +_080E38A0: .4byte 0x00001E34 +_080E38A4: .4byte 0x08007141 +_080E38A8: .4byte 0x020205AC + thumb_func_end NamingScreen_CreatePlayerIcon + + thumb_func_start NamingScreen_CreatePCIcon +NamingScreen_CreatePCIcon: @ 0x080E38AC + push {r4, lr} + ldr r0, _080E38E0 + movs r1, #0x38 + movs r2, #0x29 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _080E38E4 + adds r4, r4, r0 + ldr r1, _080E38E8 + adds r0, r4, #0 + bl SetSubspriteTables + ldrb r0, [r4, #5] + movs r1, #0xc + orrs r0, r1 + strb r0, [r4, #5] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E38E0: .4byte 0x08565E98 +_080E38E4: .4byte 0x020205AC +_080E38E8: .4byte 0x08565D90 + thumb_func_end NamingScreen_CreatePCIcon + + thumb_func_start NamingScreen_CreateMonIcon +NamingScreen_CreateMonIcon: @ 0x080E38EC + push {lr} + sub sp, #0xc + bl LoadMonIconPalettes + ldr r0, _080E3934 + ldr r3, [r0] + ldr r1, _080E3938 + adds r0, r3, r1 + ldrh r0, [r0] + ldr r1, _080E393C + movs r2, #0 + str r2, [sp] + ldr r2, _080E3940 + adds r3, r3, r2 + ldr r2, [r3] + str r2, [sp, #4] + movs r2, #1 + str r2, [sp, #8] + movs r2, #0x38 + movs r3, #0x28 + bl CreateMonIcon + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080E3944 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r0, [r1, #5] + movs r2, #0xc + orrs r0, r2 + strb r0, [r1, #5] + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_080E3934: .4byte 0x02039C34 +_080E3938: .4byte 0x00001E34 +_080E393C: .4byte 0x08007141 +_080E3940: .4byte 0x00001E38 +_080E3944: .4byte 0x020205AC + thumb_func_end NamingScreen_CreateMonIcon + + thumb_func_start NamingScreen_CreateWandaDadIcon +NamingScreen_CreateWandaDadIcon: @ 0x080E3948 + push {lr} + sub sp, #4 + ldr r1, _080E3980 + movs r0, #0 + str r0, [sp] + movs r0, #0x13 + movs r2, #0x38 + movs r3, #0x25 + bl AddPseudoEventObject + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _080E3984 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #5] + movs r2, #0xc + orrs r1, r2 + strb r1, [r0, #5] + movs r1, #4 + bl StartSpriteAnim + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_080E3980: .4byte 0x08007141 +_080E3984: .4byte 0x020205AC + thumb_func_end NamingScreen_CreateWandaDadIcon + + thumb_func_start HandleKeyboardEvent +HandleKeyboardEvent: @ 0x080E3988 + push {r4, r5, lr} + bl GetInputEvent + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r5, r4, #0 + bl GetKeyRoleAtCursorPos + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, #8 + bne _080E39A6 + bl sub_080E3AB8 + b _080E39CC +_080E39A6: + cmp r4, #6 + bne _080E39B0 + bl DeleteTextCharacter + b _080E39DC +_080E39B0: + cmp r4, #7 + bne _080E39BA + bl sub_080E40A8 + b _080E39DC +_080E39BA: + cmp r5, #9 + beq _080E39D8 + ldr r1, _080E39D4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 +_080E39CC: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _080E39DE + .align 2, 0 +_080E39D4: .4byte 0x08565AA4 +_080E39D8: + bl sub_080E3310 +_080E39DC: + movs r0, #0 +_080E39DE: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end HandleKeyboardEvent + + thumb_func_start KeyboardKeyHandler_Character +KeyboardKeyHandler_Character: @ 0x080E39E4 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl sub_080E2E78 + cmp r4, #5 + bne _080E3A1E + bl sub_080E4018 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl sub_080E33BC + cmp r4, #0 + beq _080E3A1E + movs r0, #2 + bl SetInputState + ldr r0, _080E3A28 + ldr r0, [r0] + ldr r1, _080E3A2C + adds r0, r0, r1 + movs r1, #3 + strb r1, [r0] +_080E3A1E: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080E3A28: .4byte 0x02039C34 +_080E3A2C: .4byte 0x00001E10 + thumb_func_end KeyboardKeyHandler_Character + + thumb_func_start KeyboardKeyHandler_Page +KeyboardKeyHandler_Page: @ 0x080E3A30 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + movs r1, #1 + movs r2, #0 + bl sub_080E2E78 + cmp r4, #5 + beq _080E3A4A + movs r0, #0 + b _080E3A52 +_080E3A4A: + bl sub_080E3AB8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_080E3A52: + pop {r4} + pop {r1} + bx r1 + thumb_func_end KeyboardKeyHandler_Page + + thumb_func_start KeyboardKeyHandler_Backspace +KeyboardKeyHandler_Backspace: @ 0x080E3A58 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + movs r1, #1 + movs r2, #0 + bl sub_080E2E78 + cmp r4, #5 + bne _080E3A72 + bl DeleteTextCharacter +_080E3A72: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end KeyboardKeyHandler_Backspace + + thumb_func_start KeyboardKeyHandler_OK +KeyboardKeyHandler_OK: @ 0x080E3A7C + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #2 + movs r1, #1 + movs r2, #0 + bl sub_080E2E78 + cmp r4, #5 + beq _080E3A96 + movs r0, #0 + b _080E3AAA +_080E3A96: + movs r0, #5 + bl PlaySE + ldr r0, _080E3AB0 + ldr r0, [r0] + ldr r1, _080E3AB4 + adds r0, r0, r1 + movs r1, #6 + strb r1, [r0] + movs r0, #1 +_080E3AAA: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080E3AB0: .4byte 0x02039C34 +_080E3AB4: .4byte 0x00001E10 + thumb_func_end KeyboardKeyHandler_OK + + thumb_func_start sub_080E3AB8 +sub_080E3AB8: @ 0x080E3AB8 + ldr r0, _080E3AC8 + ldr r0, [r0] + ldr r1, _080E3ACC + adds r0, r0, r1 + movs r1, #4 + strb r1, [r0] + movs r0, #1 + bx lr + .align 2, 0 +_080E3AC8: .4byte 0x02039C34 +_080E3ACC: .4byte 0x00001E10 + thumb_func_end sub_080E3AB8 + + thumb_func_start InputInit +InputInit: @ 0x080E3AD0 + push {lr} + ldr r0, _080E3AE0 + movs r1, #1 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080E3AE0: .4byte 0x080E3B35 + thumb_func_end InputInit + + thumb_func_start GetInputEvent +GetInputEvent: @ 0x080E3AE4 + push {lr} + ldr r0, _080E3B00 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080E3B04 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldrb r0, [r1, #0xa] + pop {r1} + bx r1 + .align 2, 0 +_080E3B00: .4byte 0x080E3B35 +_080E3B04: .4byte 0x03005B60 + thumb_func_end GetInputEvent + + thumb_func_start SetInputState +SetInputState: @ 0x080E3B08 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _080E3B2C + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080E3B30 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E3B2C: .4byte 0x080E3B35 +_080E3B30: .4byte 0x03005B60 + thumb_func_end SetInputState + + thumb_func_start sub_080E3B34 +sub_080E3B34: @ 0x080E3B34 + push {lr} + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r3, _080E3B5C + ldr r2, _080E3B60 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r2, #8 + ldrsh r1, [r0, r2] + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080E3B5C: .4byte 0x08565AB4 +_080E3B60: .4byte 0x03005B60 + thumb_func_end sub_080E3B34 + + thumb_func_start InputState_2 +InputState_2: @ 0x080E3B64 + movs r1, #0 + strh r1, [r0, #0xa] + bx lr + .align 2, 0 + thumb_func_end InputState_2 + + thumb_func_start InputState_Enabled +InputState_Enabled: @ 0x080E3B6C + push {lr} + adds r1, r0, #0 + movs r0, #0 + strh r0, [r1, #0xa] + ldr r0, _080E3B88 + ldrh r2, [r0, #0x2e] + movs r0, #1 + ands r0, r2 + cmp r0, #0 + beq _080E3B8C + movs r0, #5 + strh r0, [r1, #0xa] + b _080E3BCC + .align 2, 0 +_080E3B88: .4byte 0x03002360 +_080E3B8C: + movs r0, #2 + ands r0, r2 + cmp r0, #0 + beq _080E3B9A + movs r0, #6 + strh r0, [r1, #0xa] + b _080E3BCC +_080E3B9A: + movs r0, #4 + ands r0, r2 + cmp r0, #0 + beq _080E3BA8 + movs r0, #8 + strh r0, [r1, #0xa] + b _080E3BCC +_080E3BA8: + movs r0, #8 + ands r0, r2 + cmp r0, #0 + beq _080E3BB6 + movs r0, #9 + strh r0, [r1, #0xa] + b _080E3BCC +_080E3BB6: + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r2 + cmp r0, #0 + beq _080E3BC6 + movs r0, #7 + strh r0, [r1, #0xa] + b _080E3BCC +_080E3BC6: + adds r0, r1, #0 + bl HandleDpadMovement +_080E3BCC: + pop {r0} + bx r0 + thumb_func_end InputState_Enabled + + thumb_func_start sub_080E3BD0 +sub_080E3BD0: @ 0x080E3BD0 + push {lr} + adds r2, r0, #0 + movs r0, #0 + strh r0, [r2, #0xa] + ldr r0, _080E3BF0 + ldrh r1, [r0, #0x2e] + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080E3BEA + movs r0, #7 + strh r0, [r2, #0xa] +_080E3BEA: + pop {r0} + bx r0 + .align 2, 0 +_080E3BF0: .4byte 0x03002360 + thumb_func_end sub_080E3BD0 + + thumb_func_start HandleDpadMovement +HandleDpadMovement: @ 0x080E3BF4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x2c + adds r6, r0, #0 + ldr r1, _080E3CB8 + mov r0, sp + movs r2, #0xa + bl memcpy + add r7, sp, #0xc + ldr r1, _080E3CBC + adds r0, r7, #0 + movs r2, #0xa + bl memcpy + add r0, sp, #0x18 + mov r8, r0 + ldr r1, _080E3CC0 + movs r2, #8 + bl memcpy + add r1, sp, #0x20 + mov sb, r1 + ldr r1, _080E3CC4 + mov r0, sb + movs r2, #6 + bl memcpy + add r4, sp, #0x28 + mov r5, sp + adds r5, #0x2a + adds r0, r4, #0 + adds r1, r5, #0 + bl GetCursorPos + ldr r0, _080E3CC8 + ldrh r2, [r0, #0x30] + movs r0, #0x40 + ands r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + rsbs r0, r0, #0 + lsrs r1, r0, #0x1f + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _080E3C58 + movs r1, #2 +_080E3C58: + movs r0, #0x20 + ands r0, r2 + cmp r0, #0 + beq _080E3C62 + movs r1, #3 +_080E3C62: + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + beq _080E3C6C + movs r1, #4 +_080E3C6C: + ldrh r3, [r4] + lsls r1, r1, #1 + mov r2, sp + adds r0, r2, r1 + ldrh r2, [r0] + adds r0, r3, r2 + strh r0, [r4] + adds r1, r7, r1 + ldrh r0, [r1] + ldrh r1, [r5] + adds r0, r0, r1 + strh r0, [r5] + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #0 + bge _080E3C90 + movs r0, #0x13 + strh r0, [r4] +_080E3C90: + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #0x13 + ble _080E3C9C + movs r0, #0 + strh r0, [r4] +_080E3C9C: + lsls r0, r2, #0x10 + cmp r0, #0 + beq _080E3CE8 + movs r2, #0 + ldrsh r0, [r4, r2] + cmp r0, #0x13 + bne _080E3CCC + ldrh r0, [r5] + strh r0, [r6, #0xc] + movs r1, #0 + ldrsh r0, [r5, r1] + lsls r0, r0, #1 + add r0, r8 + b _080E3CE4 + .align 2, 0 +_080E3CB8: .4byte 0x08565AC0 +_080E3CBC: .4byte 0x08565ACA +_080E3CC0: .4byte 0x08565AD4 +_080E3CC4: .4byte 0x08565ADC +_080E3CC8: .4byte 0x03002360 +_080E3CCC: + cmp r3, #0x13 + bne _080E3CE8 + movs r2, #0 + ldrsh r0, [r5, r2] + cmp r0, #1 + bne _080E3CDC + ldrh r0, [r6, #0xc] + b _080E3CE6 +_080E3CDC: + movs r1, #0 + ldrsh r0, [r5, r1] + lsls r0, r0, #1 + add r0, sb +_080E3CE4: + ldrh r0, [r0] +_080E3CE6: + strh r0, [r5] +_080E3CE8: + movs r2, #0 + ldrsh r0, [r4, r2] + cmp r0, #0x13 + bne _080E3D1E + movs r1, #0 + ldrsh r0, [r5, r1] + cmp r0, #0 + bge _080E3CFC + movs r0, #2 + strh r0, [r5] +_080E3CFC: + movs r2, #0 + ldrsh r0, [r5, r2] + cmp r0, #2 + ble _080E3D08 + movs r0, #0 + strh r0, [r5] +_080E3D08: + movs r1, #0 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _080E3D16 + movs r0, #1 + strh r0, [r6, #0xc] + b _080E3D36 +_080E3D16: + cmp r0, #2 + bne _080E3D36 + strh r0, [r6, #0xc] + b _080E3D36 +_080E3D1E: + movs r2, #0 + ldrsh r0, [r5, r2] + cmp r0, #0 + bge _080E3D2A + movs r0, #3 + strh r0, [r5] +_080E3D2A: + movs r1, #0 + ldrsh r0, [r5, r1] + cmp r0, #3 + ble _080E3D36 + movs r0, #0 + strh r0, [r5] +_080E3D36: + movs r2, #0 + ldrsh r0, [r4, r2] + movs r2, #0 + ldrsh r1, [r5, r2] + bl sub_080E329C + add sp, #0x2c + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end HandleDpadMovement + + thumb_func_start sub_080E3D50 +sub_080E3D50: @ 0x080E3D50 + push {r4, r5, lr} + sub sp, #0xc + ldr r5, _080E3D98 + ldr r0, [r5] + ldr r4, _080E3D9C + adds r0, r0, r4 + ldrb r0, [r0] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r1, [r5] + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, _080E3DA0 + adds r1, r1, r2 + ldr r1, [r1] + ldr r2, [r1, #8] + movs r1, #1 + str r1, [sp] + movs r1, #0 + str r1, [sp, #4] + str r1, [sp, #8] + movs r1, #1 + movs r3, #5 + bl AddTextPrinterParameterized + ldr r0, [r5] + adds r0, r0, r4 + ldrb r0, [r0] + bl PutWindowTilemap + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080E3D98: .4byte 0x02039C34 +_080E3D9C: .4byte 0x00001E14 +_080E3DA0: .4byte 0x00001E28 + thumb_func_end sub_080E3D50 + + thumb_func_start sub_080E3DA4 +sub_080E3DA4: @ 0x080E3DA4 + push {r4, r5, lr} + sub sp, #0x2c + ldr r5, _080E3E10 + ldr r0, [r5] + ldr r1, _080E3E14 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + ldr r0, _080E3E18 + adds r1, r1, r0 + add r0, sp, #0xc + bl StringCopy + ldr r0, [r5] + ldr r1, _080E3E1C + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, [r0, #8] + add r0, sp, #0xc + movs r2, #0xf + bl StringAppendN + ldr r0, [r5] + ldr r4, _080E3E20 + adds r0, r0, r4 + ldrb r0, [r0] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r0, [r5] + adds r0, r0, r4 + ldrb r0, [r0] + movs r1, #1 + str r1, [sp] + movs r1, #0 + str r1, [sp, #4] + str r1, [sp, #8] + movs r1, #1 + add r2, sp, #0xc + movs r3, #9 + bl AddTextPrinterParameterized + ldr r0, [r5] + adds r0, r0, r4 + ldrb r0, [r0] + bl PutWindowTilemap + add sp, #0x2c + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080E3E10: .4byte 0x02039C34 +_080E3E14: .4byte 0x00001E34 +_080E3E18: .4byte 0x082EA31C +_080E3E1C: .4byte 0x00001E28 +_080E3E20: .4byte 0x00001E14 + thumb_func_end sub_080E3DA4 + + thumb_func_start sub_080E3E24 +sub_080E3E24: @ 0x080E3E24 + push {lr} + ldr r1, _080E3E40 + ldr r0, _080E3E44 + ldr r0, [r0] + ldr r2, _080E3E48 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + thumb_func_end sub_080E3E24 + + thumb_func_start nullsub_10 +nullsub_10: @ 0x080E3E3C + pop {r0} + bx r0 + .align 2, 0 +_080E3E40: .4byte 0x08565AE4 +_080E3E44: .4byte 0x02039C34 +_080E3E48: .4byte 0x00001E2C + thumb_func_end nullsub_10 + + thumb_func_start sub_080E3E4C +sub_080E3E4C: @ 0x080E3E4C + push {lr} + ldr r1, _080E3E6C + ldr r0, _080E3E70 + ldr r0, [r0] + ldr r2, _080E3E74 + adds r0, r0, r2 + ldr r0, [r0] + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + thumb_func_end sub_080E3E4C + + thumb_func_start InputState_Disabled +InputState_Disabled: @ 0x080E3E68 + bx r0 + .align 2, 0 +_080E3E6C: .4byte 0x08565AF8 +_080E3E70: .4byte 0x02039C34 +_080E3E74: .4byte 0x00001E28 + thumb_func_end InputState_Disabled + + thumb_func_start sub_080E3E78 +sub_080E3E78: @ 0x080E3E78 + bx lr + .align 2, 0 + thumb_func_end sub_080E3E78 + + thumb_func_start sub_080E3E7C +sub_080E3E7C: @ 0x080E3E7C + push {r4, r5, lr} + sub sp, #0x10 + movs r4, #0 + ldr r1, _080E3ED4 + add r0, sp, #0xc + bl StringCopy + ldr r5, _080E3ED8 + ldr r0, [r5] + ldr r1, _080E3EDC + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0xff + beq _080E3ECA + cmp r0, #0xfe + bne _080E3EA6 + ldr r1, _080E3EE0 + add r0, sp, #0xc + bl StringCopy + movs r4, #1 +_080E3EA6: + ldr r0, [r5] + ldr r1, _080E3EE4 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r1, r4, #1 + adds r1, r1, r4 + ldr r2, _080E3EE8 + adds r1, r1, r2 + str r1, [sp] + movs r1, #0 + str r1, [sp, #4] + add r1, sp, #0xc + str r1, [sp, #8] + movs r1, #1 + movs r2, #0x5b + movs r3, #1 + bl AddTextPrinterParameterized3 +_080E3ECA: + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080E3ED4: .4byte 0x085C940A +_080E3ED8: .4byte 0x02039C34 +_080E3EDC: .4byte 0x00001E36 +_080E3EE0: .4byte 0x085C940C +_080E3EE4: .4byte 0x00001E13 +_080E3EE8: .4byte 0x08565B00 + thumb_func_end sub_080E3E7C + + thumb_func_start GetCharAtKeyboardPos +GetCharAtKeyboardPos: @ 0x080E3EEC + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + bl sub_080E2788 + ldr r1, _080E3F1C + lsls r4, r4, #0x10 + asrs r4, r4, #0xe + lsls r0, r0, #0x18 + lsrs r0, r0, #0x14 + adds r4, r4, r0 + adds r4, r4, r1 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + ldr r0, [r4] + adds r0, r0, r5 + ldrb r0, [r0] + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080E3F1C: .4byte 0x08565EB0 + thumb_func_end GetCharAtKeyboardPos + + thumb_func_start GetTextCaretPosition +GetTextCaretPosition: @ 0x080E3F20 + push {r4, r5, lr} + movs r2, #0 + ldr r0, _080E3F48 + ldr r4, [r0] + ldr r3, _080E3F4C + adds r1, r4, r3 + ldr r1, [r1] + ldrb r3, [r1, #1] + adds r5, r0, #0 + cmp r2, r3 + bhs _080E3F5A + movs r0, #0xc0 + lsls r0, r0, #5 + adds r1, r4, r0 +_080E3F3C: + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0xff + bne _080E3F50 + adds r0, r2, #0 + b _080E3F6A + .align 2, 0 +_080E3F48: .4byte 0x02039C34 +_080E3F4C: .4byte 0x00001E28 +_080E3F50: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, r3 + blo _080E3F3C +_080E3F5A: + ldr r0, [r5] + ldr r1, _080E3F70 + adds r0, r0, r1 + ldr r0, [r0] + ldrb r0, [r0, #1] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_080E3F6A: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080E3F70: .4byte 0x00001E28 + thumb_func_end GetTextCaretPosition + + thumb_func_start GetPreviousTextCaretPosition +GetPreviousTextCaretPosition: @ 0x080E3F74 + push {lr} + ldr r0, _080E3FA0 + ldr r2, [r0] + ldr r1, _080E3FA4 + adds r0, r2, r1 + ldr r0, [r0] + ldrb r0, [r0, #1] + subs r0, #1 + lsls r1, r0, #0x18 + cmp r1, #0 + ble _080E3FB0 + movs r0, #0xc0 + lsls r0, r0, #5 + adds r3, r2, r0 +_080E3F90: + asrs r2, r1, #0x18 + adds r0, r3, r2 + ldrb r0, [r0] + cmp r0, #0xff + beq _080E3FA8 + lsrs r0, r1, #0x18 + b _080E3FB2 + .align 2, 0 +_080E3FA0: .4byte 0x02039C34 +_080E3FA4: .4byte 0x00001E28 +_080E3FA8: + subs r0, r2, #1 + lsls r1, r0, #0x18 + cmp r1, #0 + bgt _080E3F90 +_080E3FB0: + movs r0, #0 +_080E3FB2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetPreviousTextCaretPosition + + thumb_func_start DeleteTextCharacter +DeleteTextCharacter: @ 0x080E3FB8 + push {r4, r5, r6, lr} + bl GetPreviousTextCaretPosition + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r6, _080E4014 + ldr r0, [r6] + movs r5, #0xc0 + lsls r5, r5, #5 + adds r0, r0, r5 + adds r0, r0, r4 + movs r1, #0 + strb r1, [r0] + bl sub_080E4510 + bl sub_080E3E4C + movs r0, #3 + bl CopyBgTilemapBufferToVram + ldr r0, [r6] + adds r0, r0, r5 + adds r0, r0, r4 + movs r1, #0xff + strb r1, [r0] + bl GetKeyRoleAtCursorPos + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _080E3FFC + cmp r0, #2 + bne _080E4006 +_080E3FFC: + movs r0, #1 + movs r1, #0 + movs r2, #1 + bl sub_080E2E78 +_080E4006: + movs r0, #0x17 + bl PlaySE + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080E4014: .4byte 0x02039C34 + thumb_func_end DeleteTextCharacter + + thumb_func_start sub_080E4018 +sub_080E4018: @ 0x080E4018 + push {r4, lr} + sub sp, #4 + mov r4, sp + adds r4, #2 + mov r0, sp + adds r1, r4, #0 + bl GetCursorPos + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0 + ldrsh r1, [r4, r2] + bl GetCharAtKeyboardPos + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + movs r4, #1 + cmp r0, #0xff + bne _080E4048 + bl sub_080E4110 + b _080E4050 +_080E4048: + cmp r0, #0xfe + bne _080E4056 + bl sub_080E414C +_080E4050: + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + b _080E405C +_080E4056: + adds r0, r1, #0 + bl AddTextCharacter +_080E405C: + bl sub_080E4510 + bl sub_080E3E4C + movs r0, #3 + bl CopyBgTilemapBufferToVram + movs r0, #5 + bl PlaySE + cmp r4, #0 + beq _080E409C + bl GetPreviousTextCaretPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080E4094 + ldr r1, [r1] + ldr r2, _080E4098 + adds r1, r1, r2 + ldr r1, [r1] + ldrb r1, [r1, #1] + subs r1, #1 + cmp r0, r1 + bne _080E409C + movs r0, #1 + b _080E409E + .align 2, 0 +_080E4094: .4byte 0x02039C34 +_080E4098: .4byte 0x00001E28 +_080E409C: + movs r0, #0 +_080E409E: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080E4018 + + thumb_func_start sub_080E40A8 +sub_080E40A8: @ 0x080E40A8 + push {r4, r5, r6, r7, lr} + movs r4, #0 + bl GetPreviousTextCaretPosition + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r6, _080E40E0 + ldr r0, [r6] + movs r5, #0xc0 + lsls r5, r5, #5 + adds r0, r0, r5 + adds r0, r0, r3 + ldrb r1, [r0] + ldr r2, _080E40E4 + ldrb r0, [r2] + cmp r0, #0xff + beq _080E40F6 + ldr r7, _080E40E8 +_080E40CC: + ldrb r0, [r2] + cmp r1, r0 + bne _080E40EC + ldr r0, [r6] + adds r0, r0, r5 + adds r0, r0, r3 + adds r1, r4, r7 + ldrb r1, [r1] + strb r1, [r0] + b _080E40F6 + .align 2, 0 +_080E40E0: .4byte 0x02039C34 +_080E40E4: .4byte 0x08565B06 +_080E40E8: .4byte 0x08565BC1 +_080E40EC: + adds r2, #1 + adds r4, #1 + ldrb r0, [r2] + cmp r0, #0xff + bne _080E40CC +_080E40F6: + bl sub_080E4510 + bl sub_080E3E4C + movs r0, #3 + bl CopyBgTilemapBufferToVram + movs r0, #5 + bl PlaySE + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_080E40A8 + + thumb_func_start sub_080E4110 +sub_080E4110: @ 0x080E4110 + push {r4, r5, lr} + bl GetPreviousTextCaretPosition + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _080E4138 + ldr r0, [r0] + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r0, r1 + adds r0, r0, r5 + ldrb r4, [r0] + adds r0, r4, #0 + bl sub_080E41B0 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080E413C + movs r0, #0 + b _080E4146 + .align 2, 0 +_080E4138: .4byte 0x02039C34 +_080E413C: + adds r0, r4, #0 + adds r1, r5, #0 + bl MainState_WaitPageSwap + movs r0, #1 +_080E4146: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_080E4110 + + thumb_func_start sub_080E414C +sub_080E414C: @ 0x080E414C + push {r4, r5, lr} + bl GetPreviousTextCaretPosition + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _080E4174 + ldr r0, [r0] + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r0, r1 + adds r0, r0, r5 + ldrb r4, [r0] + adds r0, r4, #0 + bl sub_080E4208 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080E4178 + movs r0, #0 + b _080E4182 + .align 2, 0 +_080E4174: .4byte 0x02039C34 +_080E4178: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080E4318 + movs r0, #1 +_080E4182: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_080E414C + + thumb_func_start AddTextCharacter +AddTextCharacter: @ 0x080E4188 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl GetTextCaretPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080E41AC + ldr r1, [r1] + movs r2, #0xc0 + lsls r2, r2, #5 + adds r1, r1, r2 + adds r1, r1, r0 + strb r4, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E41AC: .4byte 0x02039C34 + thumb_func_end AddTextCharacter + + thumb_func_start sub_080E41B0 +sub_080E41B0: @ 0x080E41B0 + push {lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r2, #0xfa + lsls r2, r2, #0x18 + adds r0, r0, r2 + lsrs r0, r0, #0x18 + cmp r0, #0xe + bls _080E41FE + adds r0, r1, #0 + subs r0, #0x1a + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bls _080E41FE + adds r0, r1, #0 + subs r0, #0x4b + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bls _080E41FE + adds r0, r1, #0 + subs r0, #0x56 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xe + bls _080E41FE + adds r0, r1, #0 + subs r0, #0x6a + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bls _080E41FE + adds r0, r1, #0 + adds r0, #0x65 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _080E4202 +_080E41FE: + movs r0, #1 + b _080E4204 +_080E4202: + movs r0, #0 +_080E4204: + pop {r1} + bx r1 + thumb_func_end sub_080E41B0 + + thumb_func_start sub_080E4208 +sub_080E4208: @ 0x080E4208 + push {lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r2, #0xe6 + lsls r2, r2, #0x18 + adds r0, r0, r2 + lsrs r0, r0, #0x18 + cmp r0, #4 + bls _080E423E + adds r0, r1, #0 + subs r0, #0x46 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bls _080E423E + adds r0, r1, #0 + subs r0, #0x6a + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bls _080E423E + adds r0, r1, #0 + adds r0, #0x6a + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _080E4242 +_080E423E: + movs r0, #1 + b _080E4244 +_080E4242: + movs r0, #0 +_080E4244: + pop {r1} + bx r1 + thumb_func_end sub_080E4208 + + thumb_func_start MainState_WaitPageSwap +MainState_WaitPageSwap: @ 0x080E4248 + push {lr} + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsrs r2, r0, #0x18 + movs r3, #0xfa + lsls r3, r3, #0x18 + adds r0, r0, r3 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _080E4264 + adds r0, r2, #0 + adds r0, #0x31 + b _080E42FE +_080E4264: + adds r0, r2, #0 + subs r0, #0xb + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _080E4276 + adds r0, r2, #0 + adds r0, #0x31 + b _080E42FE +_080E4276: + adds r0, r2, #0 + subs r0, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _080E4288 + adds r0, r2, #0 + adds r0, #0x31 + b _080E42FE +_080E4288: + adds r0, r2, #0 + subs r0, #0x1a + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _080E429A + adds r0, r2, #0 + adds r0, #0x2c + b _080E42FE +_080E429A: + adds r0, r2, #0 + subs r0, #0x4b + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bls _080E42FA + adds r0, r2, #0 + subs r0, #0x56 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _080E42B8 + adds r0, r2, #0 + adds r0, #0x31 + b _080E42FE +_080E42B8: + adds r0, r2, #0 + subs r0, #0x5b + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _080E42CA + adds r0, r2, #0 + adds r0, #0x31 + b _080E42FE +_080E42CA: + adds r0, r2, #0 + subs r0, #0x60 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _080E42DC + adds r0, r2, #0 + adds r0, #0x31 + b _080E42FE +_080E42DC: + adds r0, r2, #0 + subs r0, #0x6a + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _080E42EE + adds r0, r2, #0 + adds r0, #0x2c + b _080E42FE +_080E42EE: + adds r0, r2, #0 + adds r0, #0x65 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _080E4302 +_080E42FA: + adds r0, r2, #0 + adds r0, #0xfb +_080E42FE: + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 +_080E4302: + ldr r0, _080E4314 + ldr r0, [r0] + movs r3, #0xc0 + lsls r3, r3, #5 + adds r0, r0, r3 + adds r0, r0, r1 + strb r2, [r0] + pop {r0} + bx r0 + .align 2, 0 +_080E4314: .4byte 0x02039C34 + thumb_func_end MainState_WaitPageSwap + + thumb_func_start sub_080E4318 +sub_080E4318: @ 0x080E4318 + push {lr} + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsrs r2, r0, #0x18 + movs r3, #0xe6 + lsls r3, r3, #0x18 + adds r0, r0, r3 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _080E4334 + adds r0, r2, #0 + adds r0, #0x31 + b _080E4360 +_080E4334: + adds r0, r2, #0 + subs r0, #0x46 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bls _080E435E + adds r0, r2, #0 + subs r0, #0x6a + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _080E4352 + adds r0, r2, #0 + adds r0, #0x31 + b _080E4360 +_080E4352: + adds r0, r2, #0 + adds r0, #0x6a + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _080E4364 +_080E435E: + adds r0, r2, #5 +_080E4360: + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 +_080E4364: + ldr r0, _080E4378 + ldr r0, [r0] + movs r3, #0xc0 + lsls r3, r3, #5 + adds r0, r0, r3 + adds r0, r0, r1 + strb r2, [r0] + pop {r0} + bx r0 + .align 2, 0 +_080E4378: .4byte 0x02039C34 + thumb_func_end sub_080E4318 + + thumb_func_start sub_080E437C +sub_080E437C: @ 0x080E437C + push {r4, r5, lr} + movs r2, #0 + ldr r1, _080E4390 + ldr r0, [r1] + ldr r4, _080E4394 + adds r0, r0, r4 + ldr r0, [r0] + adds r5, r1, #0 + b _080E43DC + .align 2, 0 +_080E4390: .4byte 0x02039C34 +_080E4394: .4byte 0x00001E28 +_080E4398: + ldr r1, [r1] + movs r0, #0xc0 + lsls r0, r0, #5 + adds r3, r1, r0 + adds r0, r3, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080E43CC + cmp r0, #0xff + beq _080E43CC + ldr r2, _080E43C8 + adds r0, r1, r2 + ldr r0, [r0] + adds r1, r1, r4 + ldr r1, [r1] + ldrb r2, [r1, #1] + adds r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r1, r3, #0 + bl StringCopyN + b _080E43E2 + .align 2, 0 +_080E43C8: .4byte 0x00001E30 +_080E43CC: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r1, r5, #0 + ldr r0, [r1] + ldr r4, _080E43E8 + adds r0, r0, r4 + ldr r0, [r0] +_080E43DC: + ldrb r0, [r0, #1] + cmp r2, r0 + blo _080E4398 +_080E43E2: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080E43E8: .4byte 0x00001E28 + thumb_func_end sub_080E437C + + thumb_func_start choose_name_or_words_screen_load_bg_tile_patterns +choose_name_or_words_screen_load_bg_tile_patterns: @ 0x080E43EC + push {r4, r5, r6, lr} + ldr r0, _080E443C + ldr r6, _080E4440 + ldr r1, [r6] + ldr r4, _080E4444 + adds r1, r1, r4 + bl LZ77UnCompWram + ldr r1, [r6] + adds r1, r1, r4 + movs r5, #0xc0 + lsls r5, r5, #3 + movs r0, #1 + adds r2, r5, #0 + movs r3, #0 + bl LoadBgTiles + ldr r1, [r6] + adds r1, r1, r4 + movs r0, #2 + adds r2, r5, #0 + movs r3, #0 + bl LoadBgTiles + ldr r1, [r6] + adds r1, r1, r4 + movs r0, #3 + adds r2, r5, #0 + movs r3, #0 + bl LoadBgTiles + ldr r0, _080E4448 + bl LoadSpriteSheets + ldr r0, _080E444C + bl LoadSpritePalettes + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080E443C: .4byte 0x08565318 +_080E4440: .4byte 0x02039C34 +_080E4444: .4byte 0x00001810 +_080E4448: .4byte 0x08565EE0 +_080E444C: .4byte 0x08565F48 + thumb_func_end choose_name_or_words_screen_load_bg_tile_patterns + + thumb_func_start sub_080E4450 +sub_080E4450: @ 0x080E4450 + push {lr} + bl InputInit + bl MoveCursorToOKButton + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080E4450 + + thumb_func_start choose_name_or_words_screen_apply_bg_pals +choose_name_or_words_screen_apply_bg_pals: @ 0x080E4460 + push {lr} + ldr r0, _080E4488 + movs r1, #0 + movs r2, #0xc0 + bl LoadPalette + ldr r0, _080E448C + movs r1, #0xa0 + movs r2, #0x20 + bl LoadPalette + movs r0, #2 + bl stdpal_get + movs r1, #0xb0 + movs r2, #0x20 + bl LoadPalette + pop {r0} + bx r0 + .align 2, 0 +_080E4488: .4byte 0x08565258 +_080E448C: .4byte 0x08565218 + thumb_func_end choose_name_or_words_screen_apply_bg_pals + + thumb_func_start sub_080E4490 +sub_080E4490: @ 0x080E4490 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080E4490 + + thumb_func_start sub_080E44A4 +sub_080E44A4: @ 0x080E44A4 + push {r4, r5, r6, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #2 + beq _080E4504 + movs r4, #1 + str r4, [sp] + str r4, [sp, #4] + ldr r0, _080E450C + adds r0, r1, r0 + ldrb r5, [r0] + str r5, [sp, #8] + adds r0, r6, #0 + movs r1, #0x20 + movs r2, #0x13 + movs r3, #0xc + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + adds r0, r6, #0 + movs r1, #0x21 + movs r2, #0x14 + movs r3, #0xc + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + adds r0, r6, #0 + movs r1, #0x1e + movs r2, #0x14 + movs r3, #0xa + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + adds r0, r6, #0 + movs r1, #0x1f + movs r2, #0x14 + movs r3, #0xb + bl FillBgTilemapBufferRect +_080E4504: + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080E450C: .4byte 0x08565C7B + thumb_func_end sub_080E44A4 + + thumb_func_start sub_080E4510 +sub_080E4510: @ 0x080E4510 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + ldr r7, _080E45C0 + ldr r1, [r7] + ldr r2, _080E45C4 + adds r0, r1, r2 + ldr r0, [r0] + ldrb r6, [r0, #1] + ldrb r0, [r0, #5] + mov sl, r0 + ldr r0, _080E45C8 + adds r1, r1, r0 + ldrb r0, [r1] + movs r1, #0x11 + bl FillWindowPixelBuffer + movs r4, #0 + cmp r4, r6 + bhs _080E45A0 + add r5, sp, #0xc + mov r8, r7 + movs r7, #0 + ldr r0, _080E45CC + ldrb r0, [r0] + mov sb, r0 +_080E454A: + mov r1, r8 + ldr r0, [r1] + movs r2, #0xc0 + lsls r2, r2, #5 + adds r0, r0, r2 + adds r0, r0, r4 + ldrb r0, [r0] + strb r0, [r5] + mov r0, sb + strb r0, [r5, #1] + ldrb r0, [r5] + bl sub_080E4830 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + cmp r0, #1 + bne _080E4570 + movs r1, #2 +_080E4570: + mov r2, r8 + ldr r0, [r2] + ldr r2, _080E45C8 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r3, r4, #2 + adds r3, r3, r4 + lsls r3, r3, #1 + add r3, sl + adds r3, r3, r1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r1, #1 + str r1, [sp] + str r7, [sp, #4] + str r7, [sp, #8] + add r2, sp, #0xc + bl AddTextPrinterParameterized + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r6 + blo _080E454A +_080E45A0: + ldr r0, _080E45C0 + ldr r0, [r0] + ldr r1, _080E45C8 + adds r0, r0, r1 + ldrb r0, [r0] + bl PutWindowTilemap + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E45C0: .4byte 0x02039C34 +_080E45C4: .4byte 0x00001E28 +_080E45C8: .4byte 0x00001E13 +_080E45CC: .4byte 0x085C8C24 + thumb_func_end sub_080E4510 + + thumb_func_start sub_080E45D0 +sub_080E45D0: @ 0x080E45D0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + ldr r0, _080E463C + adds r0, r5, r0 + ldrb r1, [r0] + adds r0, r6, #0 + bl FillWindowPixelBuffer + movs r4, #0 + ldr r1, _080E4640 + lsls r0, r5, #2 + adds r0, r0, r1 + ldr r7, [r0] + ldr r0, _080E4644 + mov r8, r0 +_080E45FA: + lsls r3, r4, #4 + adds r3, #1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r7, [sp] + movs r0, #0 + str r0, [sp, #4] + lsls r0, r4, #2 + lsls r1, r5, #4 + adds r0, r0, r1 + add r0, r8 + ldr r0, [r0] + str r0, [sp, #8] + adds r0, r6, #0 + movs r1, #1 + movs r2, #0 + bl AddTextPrinterParameterized3 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _080E45FA + adds r0, r6, #0 + bl PutWindowTilemap + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E463C: .4byte 0x08565C8C +_080E4640: .4byte 0x08565C90 +_080E4644: .4byte 0x08565EB0 + thumb_func_end sub_080E45D0 + + thumb_func_start sub_080E4648 +sub_080E4648: @ 0x080E4648 + push {r4, r5, r6, r7, lr} + movs r0, #0xa + bl GetGpuReg + adds r4, r0, #0 + movs r5, #3 + ands r4, r5 + movs r0, #0xc + bl GetGpuReg + ands r0, r5 + cmp r4, r0 + bls _080E4678 + movs r6, #1 + movs r7, #1 + ldr r0, _080E4670 + ldr r0, [r0] + ldr r1, _080E4674 + b _080E4682 + .align 2, 0 +_080E4670: .4byte 0x02039C34 +_080E4674: .4byte 0x00001E11 +_080E4678: + movs r6, #2 + movs r7, #2 + ldr r0, _080E46D4 + ldr r0, [r0] + ldr r1, _080E46D8 +_080E4682: + adds r0, r0, r1 + ldrb r5, [r0] + ldr r4, _080E46DC + bl sub_080E270C + ldr r1, _080E46D4 + ldr r2, [r1] + ldr r1, _080E46E0 + adds r2, r2, r1 + lsls r1, r0, #1 + adds r1, r1, r0 + ldrb r2, [r2] + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r4 + ldr r1, [r1] + adds r0, r6, #0 + bl sub_080E4490 + bl sub_080E2758 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl sub_080E45D0 + bl sub_080E2758 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r6, #0 + bl sub_080E44A4 + adds r0, r7, #0 + bl CopyBgTilemapBufferToVram + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E46D4: .4byte 0x02039C34 +_080E46D8: .4byte 0x00001E12 +_080E46DC: .4byte 0x08565C9C +_080E46E0: .4byte 0x00001E22 + thumb_func_end sub_080E4648 + + thumb_func_start sub_080E46E4 +sub_080E46E4: @ 0x080E46E4 + push {r4, r5, lr} + sub sp, #0x10 + ldr r1, _080E473C + add r0, sp, #0xc + movs r2, #3 + bl memcpy + ldr r5, _080E4740 + ldr r0, [r5] + ldr r4, _080E4744 + adds r0, r0, r4 + ldrb r0, [r0] + movs r1, #0xff + bl FillWindowPixelBuffer + ldr r0, [r5] + adds r0, r0, r4 + ldrb r0, [r0] + add r1, sp, #0xc + str r1, [sp] + movs r1, #0 + str r1, [sp, #4] + ldr r1, _080E4748 + str r1, [sp, #8] + movs r1, #0 + movs r2, #0x18 + movs r3, #0 + bl AddTextPrinterParameterized3 + ldr r0, [r5] + adds r0, r0, r4 + ldrb r0, [r0] + bl PutWindowTilemap + ldr r0, [r5] + adds r0, r0, r4 + ldrb r0, [r0] + movs r1, #3 + bl CopyWindowToVram + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080E473C: .4byte 0x08565CB4 +_080E4740: .4byte 0x02039C34 +_080E4744: .4byte 0x00001E15 +_080E4748: .4byte 0x085658A0 + thumb_func_end sub_080E46E4 + + thumb_func_start sub_080E474C +sub_080E474C: @ 0x080E474C + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080E474C + + thumb_func_start NamingScreen_TurnOffScreen +NamingScreen_TurnOffScreen: @ 0x080E4764 + push {lr} + movs r0, #0 + bl SetVBlankCallback + movs r0, #0 + bl SetHBlankCallback + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end NamingScreen_TurnOffScreen + + thumb_func_start NamingScreen_InitDisplayMode +NamingScreen_InitDisplayMode: @ 0x080E4778 + push {lr} + ldr r0, _080E4784 + bl SetVBlankCallback + pop {r0} + bx r0 + .align 2, 0 +_080E4784: .4byte 0x080E4789 + thumb_func_end NamingScreen_InitDisplayMode + + thumb_func_start VBlankCB_NamingScreen +VBlankCB_NamingScreen: @ 0x080E4788 + push {r4, r5, lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + ldr r5, _080E47F8 + ldr r0, [r5] + ldr r1, _080E47FC + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x16 + bl SetGpuReg + ldr r0, [r5] + ldr r1, _080E4800 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x1a + bl SetGpuReg + movs r0, #0xa + bl GetGpuReg + ldr r4, _080E4804 + adds r1, r4, #0 + ands r1, r0 + movs r0, #0xa + bl SetGpuReg + ldr r0, [r5] + ldr r1, _080E4808 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0xa + bl SetGpuRegBits + movs r0, #0xc + bl GetGpuReg + ands r4, r0 + movs r0, #0xc + adds r1, r4, #0 + bl SetGpuReg + ldr r0, [r5] + ldr r1, _080E480C + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0xc + bl SetGpuRegBits + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080E47F8: .4byte 0x02039C34 +_080E47FC: .4byte 0x00001E18 +_080E4800: .4byte 0x00001E1A +_080E4804: .4byte 0x0000FFFC +_080E4808: .4byte 0x00001E1C +_080E480C: .4byte 0x00001E1E + thumb_func_end VBlankCB_NamingScreen + + thumb_func_start SetCursorPos +SetCursorPos: @ 0x080E4810 + push {lr} + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetCursorPos + + thumb_func_start sub_080E4830 +sub_080E4830: @ 0x080E4830 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r2, #0 + ldr r0, _080E4864 + ldrb r1, [r0] + adds r3, r0, #0 + cmp r1, #0xff + beq _080E485A + adds r1, r3, #0 +_080E4844: + adds r0, r2, r1 + ldrb r0, [r0] + cmp r4, r0 + beq _080E485A + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r0, #0xff + bne _080E4844 +_080E485A: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080E4864: .4byte 0x085658C1 + thumb_func_end sub_080E4830 + + thumb_func_start sub_080E4868 +sub_080E4868: @ 0x080E4868 + push {lr} + sub sp, #8 + ldr r0, _080E4888 + ldr r1, [r0] + ldrb r2, [r1, #8] + movs r0, #0 + str r0, [sp] + ldr r0, _080E488C + str r0, [sp, #4] + movs r0, #0 + movs r3, #0 + bl DoNamingScreen + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 +_080E4888: .4byte 0x03005AF0 +_080E488C: .4byte 0x08085AFD + thumb_func_end sub_080E4868 + + thumb_func_start sub_080E4890 +sub_080E4890: @ 0x080E4890 + push {lr} + sub sp, #8 + ldr r0, _080E48B0 + ldr r1, [r0] + ldrb r2, [r1, #8] + movs r0, #0 + str r0, [sp] + ldr r0, _080E48B4 + str r0, [sp, #4] + movs r0, #1 + movs r3, #0 + bl DoNamingScreen + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 +_080E48B0: .4byte 0x03005AF0 +_080E48B4: .4byte 0x08085AFD + thumb_func_end sub_080E4890 + + thumb_func_start sub_080E48B8 +sub_080E48B8: @ 0x080E48B8 + push {lr} + sub sp, #8 + ldr r0, _080E48D8 + ldr r1, [r0] + ldrb r2, [r1, #8] + movs r0, #0 + str r0, [sp] + ldr r0, _080E48DC + str r0, [sp, #4] + movs r0, #2 + movs r3, #0 + bl DoNamingScreen + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 +_080E48D8: .4byte 0x03005AF0 +_080E48DC: .4byte 0x08085AFD + thumb_func_end sub_080E48B8 + + thumb_func_start sub_080E48E0 +sub_080E48E0: @ 0x080E48E0 + push {lr} + sub sp, #8 + ldr r0, _080E4900 + ldr r1, [r0] + ldrb r2, [r1, #8] + movs r0, #0 + str r0, [sp] + ldr r0, _080E4904 + str r0, [sp, #4] + movs r0, #3 + movs r3, #0 + bl DoNamingScreen + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 +_080E4900: .4byte 0x03005AF0 +_080E4904: .4byte 0x08085AFD + thumb_func_end sub_080E48E0 + diff --git a/asm/new_game.s b/asm/new_game.s new file mode 100644 index 0000000..a7c93c2 --- /dev/null +++ b/asm/new_game.s @@ -0,0 +1,400 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start SetTrainerId +SetTrainerId: @ 0x08083C54 + strb r0, [r1] + lsrs r2, r0, #8 + strb r2, [r1, #1] + lsrs r2, r0, #0x10 + strb r2, [r1, #2] + lsrs r0, r0, #0x18 + strb r0, [r1, #3] + bx lr + thumb_func_end SetTrainerId + + thumb_func_start GetTrainerId +GetTrainerId: @ 0x08083C64 + adds r2, r0, #0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x18 + ldrb r1, [r2, #2] + lsls r1, r1, #0x10 + orrs r0, r1 + ldrb r1, [r2, #1] + lsls r1, r1, #8 + orrs r0, r1 + ldrb r1, [r2] + orrs r0, r1 + bx lr + thumb_func_end GetTrainerId + + thumb_func_start CopyTrainerId +CopyTrainerId: @ 0x08083C7C + push {r4, lr} + adds r4, r0, #0 + adds r3, r1, #0 + movs r2, #0 +_08083C84: + adds r0, r4, r2 + adds r1, r3, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, #3 + ble _08083C84 + pop {r4} + pop {r0} + bx r0 + thumb_func_end CopyTrainerId + + thumb_func_start InitPlayerTrainerId +InitPlayerTrainerId: @ 0x08083C98 + push {r4, lr} + bl Random + adds r4, r0, #0 + bl GetGeneratedTrainerIdLower + lsls r4, r4, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + orrs r4, r0 + ldr r0, _08083CC0 + ldr r1, [r0] + adds r1, #0xa + adds r0, r4, #0 + bl SetTrainerId + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08083CC0: .4byte 0x03005AF0 + thumb_func_end InitPlayerTrainerId + + thumb_func_start SetDefaultOptions +SetDefaultOptions: @ 0x08083CC4 + ldr r3, _08083D14 + ldr r2, [r3] + ldrb r1, [r2, #0x14] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x14] + ldr r2, [r3] + ldrb r1, [r2, #0x14] + movs r0, #7 + ands r0, r1 + strb r0, [r2, #0x14] + ldr r2, [r3] + ldrb r1, [r2, #0x15] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x15] + ldr r2, [r3] + ldrb r1, [r2, #0x15] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x15] + ldr r2, [r3] + ldrb r1, [r2, #0x15] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x15] + ldr r2, [r3] + ldrb r1, [r2, #0x15] + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x15] + bx lr + .align 2, 0 +_08083D14: .4byte 0x03005AF0 + thumb_func_end SetDefaultOptions + + thumb_func_start ClearPokedexFlags +ClearPokedexFlags: @ 0x08083D18 + push {r4, lr} + ldr r1, _08083D40 + movs r0, #0 + strb r0, [r1] + ldr r4, _08083D44 + ldr r0, [r4] + adds r0, #0x28 + movs r1, #0 + movs r2, #0x34 + bl memset + ldr r0, [r4] + adds r0, #0x5c + movs r1, #0 + movs r2, #0x34 + bl memset + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08083D40: .4byte 0x03005E10 +_08083D44: .4byte 0x03005AF0 + thumb_func_end ClearPokedexFlags + + thumb_func_start ClearAllContestWinnerPics +ClearAllContestWinnerPics: @ 0x08083D48 + push {r4, r5, r6, r7, lr} + bl ClearContestWinnerPicsInContestHall + movs r2, #8 + ldr r0, _08083D7C + mov ip, r0 + ldr r4, _08083D80 + ldr r3, _08083D84 +_08083D58: + mov r1, ip + ldr r0, [r1] + lsls r1, r2, #5 + adds r0, r0, r1 + adds r0, r0, r4 + adds r1, r3, #0 + ldm r1!, {r5, r6, r7} + stm r0!, {r5, r6, r7} + ldm r1!, {r5, r6, r7} + stm r0!, {r5, r6, r7} + ldm r1!, {r5, r6} + stm r0!, {r5, r6} + adds r2, #1 + cmp r2, #0xc + ble _08083D58 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08083D7C: .4byte 0x03005AEC +_08083D80: .4byte 0x00002E90 +_08083D84: .4byte 0x0830FC68 + thumb_func_end ClearAllContestWinnerPics + + thumb_func_start ClearFrontierRecord +ClearFrontierRecord: @ 0x08083D88 + push {r4, lr} + sub sp, #4 + movs r0, #0 + str r0, [sp] + ldr r4, _08083DC0 + ldr r1, [r4] + ldr r0, _08083DC4 + adds r1, r1, r0 + ldr r2, _08083DC8 + mov r0, sp + bl CpuSet + ldr r0, [r4] + ldr r1, _08083DCC + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] + ldr r0, [r4] + ldr r1, _08083DD0 + adds r0, r0, r1 + movs r1, #1 + rsbs r1, r1, #0 + strb r1, [r0] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08083DC0: .4byte 0x03005AF0 +_08083DC4: .4byte 0x0000064C +_08083DC8: .4byte 0x05000238 +_08083DCC: .4byte 0x00000EE1 +_08083DD0: .4byte 0x00000EE9 + thumb_func_end ClearFrontierRecord + + thumb_func_start WarpToTruck +WarpToTruck: @ 0x08083DD4 + push {lr} + sub sp, #4 + movs r3, #1 + rsbs r3, r3, #0 + str r3, [sp] + movs r0, #0x19 + movs r1, #0x28 + adds r2, r3, #0 + bl SetWarpDestination + bl WarpIntoMap + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WarpToTruck + + thumb_func_start Sav2_ClearSetDefault +Sav2_ClearSetDefault: @ 0x08083DF4 + push {lr} + bl ClearSav1 + bl SetDefaultOptions + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Sav2_ClearSetDefault + + thumb_func_start ResetMenuAndMonGlobals +ResetMenuAndMonGlobals: @ 0x08083E04 + push {lr} + ldr r1, _08083E24 + movs r0, #0 + strb r0, [r1] + bl ResetPokedexScrollPositions + bl ZeroPlayerPartyMons + bl ZeroEnemyPartyMons + bl ResetBagScrollPositions + bl sub_0813628C + pop {r0} + bx r0 + .align 2, 0 +_08083E24: .4byte 0x02031F74 + thumb_func_end ResetMenuAndMonGlobals + + thumb_func_start NewGameInitData +NewGameInitData: @ 0x08083E28 + push {r4, r5, lr} + ldr r0, _08083F34 + ldrh r0, [r0] + cmp r0, #0 + beq _08083E36 + cmp r0, #2 + bne _08083E3A +_08083E36: + bl RtcReset +_08083E3A: + ldr r1, _08083F38 + movs r0, #1 + strb r0, [r1] + ldr r4, _08083F3C + ldr r0, [r4] + adds r0, #0xac + movs r5, #0 + str r5, [r0] + bl ZeroPlayerPartyMons + bl ZeroEnemyPartyMons + bl ResetPokedex + bl ClearFrontierRecord + bl ClearSav2 + bl ClearMailData + ldr r0, [r4] + strb r5, [r0, #9] + ldr r0, [r4] + adds r0, #0xa8 + str r5, [r0] + bl InitPlayerTrainerId + bl PlayTimeCounter_Reset + bl ClearPokedexFlags + bl InitEventData + bl ClearTVShowData + bl ResetGabbyAndTy + bl ClearSecretBases + bl ClearBerryTrees + ldr r4, _08083F40 + ldr r0, [r4] + movs r1, #0x92 + lsls r1, r1, #3 + adds r0, r0, r1 + ldr r1, _08083F44 + bl SetMoney + movs r0, #0 + bl SetCoins + bl ResetLinkContestBoolean + bl ResetGameStats + bl ClearAllContestWinnerPics + bl ClearPlayerLinkBattleRecords + bl sub_080FA2EC + bl sub_080FA344 + ldr r0, _08083F48 + strb r5, [r0] + bl ZeroPlayerPartyMons + bl ResetPokemonStorageSystem + bl ClearRoamerData + bl ClearRoamerLocationData + ldr r0, [r4] + ldr r1, _08083F4C + adds r0, r0, r1 + strh r5, [r0] + bl ClearBag + bl NewGameInitPCItems + bl sub_08136EF8 + bl ClearDecorationInventories + bl InitEasyChatPhrases + bl SetMauvilleOldMan + bl InitDewfordTrend + bl ResetFanClub + bl ResetLotteryCorner + bl WarpToTruck + ldr r0, _08083F50 + bl ScriptContext2_RunNewScript + bl ResetMiniGamesResults + bl copy_strings_to_sav1 + bl SetLilycoveLady + bl ResetAllApprenticeData + bl ClearRankingHallRecords + bl InitMatchCallCounters + bl sub_0801AAAC + bl WipeTrainerNameRecords + bl ResetTrainerHillResults + bl ResetContestLinkResults + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08083F34: .4byte 0x03005F50 +_08083F38: .4byte 0x02031F74 +_08083F3C: .4byte 0x03005AF0 +_08083F40: .4byte 0x03005AEC +_08083F44: .4byte 0x00000BB8 +_08083F48: .4byte 0x0202418D +_08083F4C: .4byte 0x00000496 +_08083F50: .4byte 0x08242678 + thumb_func_end NewGameInitData + + thumb_func_start ResetMiniGamesResults +ResetMiniGamesResults: @ 0x08083F54 + push {r4, r5, r6, lr} + sub sp, #4 + mov r0, sp + movs r5, #0 + strh r5, [r0] + ldr r4, _08083FA0 + ldr r1, [r4] + movs r0, #0xf6 + lsls r0, r0, #1 + adds r1, r1, r0 + ldr r6, _08083FA4 + mov r0, sp + adds r2, r6, #0 + bl CpuSet + ldr r0, [r4] + movs r1, #0xfa + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #0 + bl SetBerryPowder + bl ResetPokeJumpResults + mov r0, sp + adds r0, #2 + strh r5, [r0] + ldr r1, [r4] + movs r2, #0x83 + lsls r2, r2, #2 + adds r1, r1, r2 + adds r2, r6, #0 + bl CpuSet + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08083FA0: .4byte 0x03005AF0 +_08083FA4: .4byte 0x01000008 + thumb_func_end ResetMiniGamesResults + diff --git a/asm/normal.s b/asm/normal.s new file mode 100644 index 0000000..6d8a1c6 --- /dev/null +++ b/asm/normal.s @@ -0,0 +1,1978 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start AnimConfusionDuck +AnimConfusionDuck: @ 0x08115F7C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08115FB4 + ldrh r0, [r5] + ldrh r1, [r4, #0x20] + adds r0, r0, r1 + strh r0, [r4, #0x20] + ldrh r0, [r5, #2] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] + ldrh r0, [r5, #4] + strh r0, [r4, #0x2e] + ldr r0, _08115FB8 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _08115FBC + ldrh r0, [r5, #6] + rsbs r0, r0, #0 + strh r0, [r4, #0x30] + movs r0, #1 + strh r0, [r4, #0x36] + b _08115FCA + .align 2, 0 +_08115FB4: .4byte 0x020380BE +_08115FB8: .4byte 0x020380D6 +_08115FBC: + ldrh r0, [r5, #6] + strh r0, [r4, #0x30] + strh r1, [r4, #0x36] + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAnim +_08115FCA: + ldr r0, _08115FE0 + ldrh r0, [r0, #8] + strh r0, [r4, #0x34] + ldr r1, _08115FE4 + str r1, [r4, #0x1c] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08115FE0: .4byte 0x020380BE +_08115FE4: .4byte 0x08115FE9 + thumb_func_end AnimConfusionDuck + + thumb_func_start AnimConfusionDuckStep +AnimConfusionDuckStep: @ 0x08115FE8 + 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 _0811601A + ldrb r0, [r4, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #4 + orrs r1, r0 + strb r1, [r4, #5] + b _08116022 +_0811601A: + ldrb r0, [r4, #5] + movs r1, #0xc + orrs r0, r1 + strb r0, [r4, #5] +_08116022: + ldrh r0, [r4, #0x30] + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x34 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _08116046 + adds r0, r4, #0 + bl DestroyAnimSprite +_08116046: + pop {r4} + pop {r0} + bx r0 + thumb_func_end AnimConfusionDuckStep + + thumb_func_start AnimSimplePaletteBlend +AnimSimplePaletteBlend: @ 0x0811604C + push {r4, r5, lr} + sub sp, #4 + adds r5, r0, #0 + ldr r4, _08116084 + movs r1, #0 + ldrsh r0, [r4, r1] + bl UnpackSelectedBattleAnimPalettes + movs r1, #2 + ldrsb r1, [r4, r1] + ldrb r2, [r4, #4] + ldrb r3, [r4, #6] + ldrh r4, [r4, #8] + str r4, [sp] + bl BeginNormalPaletteFade + adds r2, r5, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08116088 + str r0, [r5, #0x1c] + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08116084: .4byte 0x020380BE +_08116088: .4byte 0x081160D5 + thumb_func_end AnimSimplePaletteBlend + + thumb_func_start UnpackSelectedBattleAnimPalettes +UnpackSelectedBattleAnimPalettes: @ 0x0811608C + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0xc + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r4, #1 + mov r8, r0 + mov r1, r8 + ands r1, r4 + mov r8, r1 + lsls r0, r0, #0x10 + asrs r1, r0, #0x11 + ands r1, r4 + asrs r2, r0, #0x12 + ands r2, r4 + asrs r3, r0, #0x13 + ands r3, r4 + asrs r6, r0, #0x14 + ands r6, r4 + asrs r5, r0, #0x15 + ands r5, r4 + asrs r0, r0, #0x16 + ands r0, r4 + str r6, [sp] + str r5, [sp, #4] + str r0, [sp, #8] + mov r0, r8 + bl sub_080A6E74 + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end UnpackSelectedBattleAnimPalettes + + thumb_func_start AnimSimplePaletteBlendStep +AnimSimplePaletteBlendStep: @ 0x081160D4 + push {lr} + adds r2, r0, #0 + ldr r0, _081160F0 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081160EA + adds r0, r2, #0 + bl DestroyAnimSprite +_081160EA: + pop {r0} + bx r0 + .align 2, 0 +_081160F0: .4byte 0x02037C74 + thumb_func_end AnimSimplePaletteBlendStep + + thumb_func_start sub_081160F4 +sub_081160F4: @ 0x081160F4 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08116140 + ldrh r0, [r4, #2] + strh r0, [r5, #0x2e] + strh r0, [r5, #0x30] + ldrh r0, [r4, #4] + strh r0, [r5, #0x32] + ldrh r0, [r4, #6] + strh r0, [r5, #0x34] + ldrh r0, [r4, #8] + 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 UnpackSelectedBattleAnimPalettes + ldrb r1, [r4, #8] + ldrh r2, [r4, #6] + bl BlendPalettes + adds r2, r5, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08116144 + str r0, [r5, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08116140: .4byte 0x020380BE +_08116144: .4byte 0x08116149 + thumb_func_end sub_081160F4 + + thumb_func_start sub_08116148 +sub_08116148: @ 0x08116148 + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x2e] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r0, #0 + ble _0811615C + subs r0, r1, #1 + strh r0, [r4, #0x2e] + b _081161CC +_0811615C: + ldr r0, _08116178 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081161CC + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08116180 + ldr r0, _0811617C + str r0, [r4, #0x1c] + b _081161CC + .align 2, 0 +_08116178: .4byte 0x02037C74 +_0811617C: .4byte 0x081161D5 +_08116180: + movs r2, #0x3c + ldrsh r0, [r4, r2] + bl UnpackSelectedBattleAnimPalettes + adds r3, r0, #0 + ldrh r1, [r4, #0x30] + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081161A6 + ldrh r1, [r4, #0x36] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrh r2, [r4, #0x34] + adds r0, r3, #0 + bl BlendPalettes + b _081161B4 +_081161A6: + ldrh r1, [r4, #0x3a] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrh r2, [r4, #0x38] + adds r0, r3, #0 + bl BlendPalettes +_081161B4: + ldrh r0, [r4, #0x30] + movs r2, #0x80 + lsls r2, 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, #1 + strh r0, [r4, #0x32] +_081161CC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08116148 + + thumb_func_start sub_081161D4 +sub_081161D4: @ 0x081161D4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08116200 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081161FA + movs r1, #0x3c + ldrsh r0, [r4, r1] + bl UnpackSelectedBattleAnimPalettes + movs r1, #0 + movs r2, #0 + bl BlendPalettes + adds r0, r4, #0 + bl DestroyAnimSprite +_081161FA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08116200: .4byte 0x02037C74 + thumb_func_end sub_081161D4 + + thumb_func_start sub_08116204 +sub_08116204: @ 0x08116204 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08116248 + ldrh r0, [r1] + ldrh r2, [r4, #0x20] + adds r0, r0, r2 + movs r2, #0 + strh r0, [r4, #0x20] + ldrh r0, [r1, #2] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] + strh r2, [r4, #0x2e] + movs r0, #0xa + strh r0, [r4, #0x30] + movs r0, #8 + strh r0, [r4, #0x32] + movs r0, #0x28 + strh r0, [r4, #0x34] + movs r0, #0x70 + strh r0, [r4, #0x36] + strh r2, [r4, #0x38] + ldr r1, _0811624C + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + ldr r1, _08116250 + str r1, [r4, #0x1c] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08116248: .4byte 0x020380BE +_0811624C: .4byte 0x080A6015 +_08116250: .4byte 0x080A5C15 + thumb_func_end sub_08116204 + + thumb_func_start sub_08116254 +sub_08116254: @ 0x08116254 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08116298 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + adds r4, r4, r1 + ldr r3, _0811629C + ldrh r1, [r3] + movs r5, #0 + strh r1, [r4, #8] + ldrh r1, [r3, #2] + strh r1, [r4, #0xa] + ldrh r1, [r3, #4] + strh r1, [r4, #0xc] + ldrh r1, [r3, #6] + strh r1, [r4, #0xe] + ldrh r2, [r3, #8] + strh r2, [r4, #0x10] + ldrh r1, [r3, #0xa] + strh r1, [r4, #0x12] + strh r5, [r4, #0x18] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r1, #0 + bl sub_081162A4 + ldr r0, _081162A0 + str r0, [r4] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08116298: .4byte 0x03005B60 +_0811629C: .4byte 0x020380BE +_081162A0: .4byte 0x081162F5 + thumb_func_end sub_08116254 + + thumb_func_start sub_081162A4 +sub_081162A4: @ 0x081162A4 + push {r4, r5, r6, lr} + sub sp, #4 + adds r5, r1, #0 + adds r6, r2, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + ldr r1, _081162F0 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + adds r4, r4, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + bl UnpackSelectedBattleAnimPalettes + 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, #1 + strh r0, [r4, #0xc] + ldrh r0, [r4, #0x18] + movs r1, #1 + eors r0, r1 + strh r0, [r4, #0x18] + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081162F0: .4byte 0x03005B60 + thumb_func_end sub_081162A4 + + thumb_func_start sub_081162F4 +sub_081162F4: @ 0x081162F4 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + adds r4, r3, #0 + ldr r0, _0811632C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08116356 + ldr r1, _08116330 + lsls r2, r3, #2 + adds r0, r2, r3 + lsls r0, 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 _08116350 + movs r1, #0x18 + ldrsh r0, [r3, r1] + cmp r0, #0 + bne _08116334 + ldrb r1, [r3, #0xe] + ldrb r2, [r3, #0x10] + b _08116338 + .align 2, 0 +_0811632C: .4byte 0x02037C74 +_08116330: .4byte 0x03005B60 +_08116334: + ldrb r1, [r3, #0x10] + ldrb r2, [r3, #0xe] +_08116338: + adds r0, r5, r4 + lsls r0, r0, #3 + adds r0, r0, r6 + movs r3, #0xc + ldrsh r0, [r0, r3] + cmp r0, #1 + bne _08116348 + movs r2, #0 +_08116348: + adds r0, r4, #0 + bl sub_081162A4 + b _08116356 +_08116350: + adds r0, r4, #0 + bl DestroyAnimVisualTask +_08116356: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_081162F4 + + thumb_func_start sub_0811635C +sub_0811635C: @ 0x0811635C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r5, #0 + ldr r3, _08116400 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r3 + ldr r2, _08116404 + ldrh r1, [r2] + strh r1, [r0, #8] + ldrh r1, [r2, #2] + strh r1, [r0, #0xa] + ldrh r1, [r2, #4] + strh r1, [r0, #0xc] + ldrh r1, [r2, #6] + strh r1, [r0, #0xe] + ldrh r1, [r2, #8] + strh r1, [r0, #0x10] + ldrh r1, [r2, #0xa] + strh r1, [r0, #0x12] + strh r5, [r0, #0x18] + movs r4, #0 + ldr r0, _08116408 + ldrb r1, [r0] + mov sb, r3 + mov r8, r2 + cmp r5, r1 + bge _081163C4 + ldr r0, _0811640C + ldrb r3, [r0] + ldr r7, _08116410 + movs r0, #1 + mov ip, r0 + adds r2, r1, #0 +_081163AA: + cmp r4, r3 + beq _081163BE + ldrb r1, [r7] + cmp r4, r1 + beq _081163BE + adds r1, r4, #0 + adds r1, #0x10 + mov r0, ip + lsls r0, r1 + orrs r5, r0 +_081163BE: + adds r4, #1 + cmp r4, r2 + blt _081163AA +_081163C4: + mov r2, r8 + movs r1, #0 + ldrsh r0, [r2, r1] + cmp r0, #1 + bne _081163D2 + movs r0, #0xe + orrs r5, r0 +_081163D2: + lsls r4, r6, #2 + adds r4, r4, r6 + lsls r4, r4, #3 + add r4, sb + lsrs r0, r5, #0x10 + strh r0, [r4, #0x1a] + movs r0, #0xff + ands r5, r0 + strh r5, [r4, #0x1c] + ldrb r2, [r4, #0x10] + adds r0, r6, #0 + movs r1, #0 + bl sub_08116418 + ldr r0, _08116414 + str r0, [r4] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08116400: .4byte 0x03005B60 +_08116404: .4byte 0x020380BE +_08116408: .4byte 0x02023D10 +_0811640C: .4byte 0x020380D6 +_08116410: .4byte 0x020380D7 +_08116414: .4byte 0x08116469 + thumb_func_end sub_0811635C + + thumb_func_start sub_08116418 +sub_08116418: @ 0x08116418 + push {r4, r5, lr} + sub sp, #4 + adds r5, r1, #0 + adds r3, r2, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r1, _08116464 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + adds r4, r4, r1 + ldrh r0, [r4, #0x1a] + lsls r0, r0, #0x10 + ldrh r1, [r4, #0x1c] + orrs r0, r1 + movs r1, #0xa + ldrsb r1, [r4, r1] + ldrh r2, [r4, #0x12] + str r2, [sp] + adds r2, r5, #0 + bl BeginNormalPaletteFade + ldrh r0, [r4, #0xc] + subs r0, #1 + strh r0, [r4, #0xc] + ldrh r0, [r4, #0x18] + movs r1, #1 + eors r0, r1 + strh r0, [r4, #0x18] + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08116464: .4byte 0x03005B60 + thumb_func_end sub_08116418 + + thumb_func_start sub_08116468 +sub_08116468: @ 0x08116468 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + adds r4, r3, #0 + ldr r0, _081164A0 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081164CA + ldr r1, _081164A4 + lsls r2, r3, #2 + adds r0, r2, r3 + lsls r0, 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 _081164C4 + movs r1, #0x18 + ldrsh r0, [r3, r1] + cmp r0, #0 + bne _081164A8 + ldrb r1, [r3, #0xe] + ldrb r2, [r3, #0x10] + b _081164AC + .align 2, 0 +_081164A0: .4byte 0x02037C74 +_081164A4: .4byte 0x03005B60 +_081164A8: + ldrb r1, [r3, #0x10] + ldrb r2, [r3, #0xe] +_081164AC: + adds r0, r5, r4 + lsls r0, r0, #3 + adds r0, r0, r6 + movs r3, #0xc + ldrsh r0, [r0, r3] + cmp r0, #1 + bne _081164BC + movs r2, #0 +_081164BC: + adds r0, r4, #0 + bl sub_08116418 + b _081164CA +_081164C4: + adds r0, r4, #0 + bl DestroyAnimVisualTask +_081164CA: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_08116468 + + thumb_func_start sub_081164D0 +sub_081164D0: @ 0x081164D0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08116514 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + adds r4, r4, r1 + ldr r3, _08116518 + ldrh r1, [r3] + movs r5, #0 + strh r1, [r4, #8] + ldrh r1, [r3, #2] + strh r1, [r4, #0xa] + ldrh r1, [r3, #4] + strh r1, [r4, #0xc] + ldrh r1, [r3, #6] + strh r1, [r4, #0xe] + ldrh r2, [r3, #8] + strh r2, [r4, #0x10] + ldrh r1, [r3, #0xa] + strh r1, [r4, #0x12] + strh r5, [r4, #0x18] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r1, #0 + bl sub_08116520 + ldr r0, _0811651C + str r0, [r4] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08116514: .4byte 0x03005B60 +_08116518: .4byte 0x020380BE +_0811651C: .4byte 0x0811657D + thumb_func_end sub_081164D0 + + thumb_func_start sub_08116520 +sub_08116520: @ 0x08116520 + push {r4, r5, r6, lr} + sub sp, #4 + adds r5, r1, #0 + adds r6, r2, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + ldr r1, _08116578 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + adds r4, r4, r1 + ldrh r0, [r4, #8] + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #0x10 + movs r2, #1 + 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, #1 + strh r0, [r4, #0xc] + ldrh r0, [r4, #0x18] + movs r1, #1 + eors r0, r1 + strh r0, [r4, #0x18] + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08116578: .4byte 0x03005B60 + thumb_func_end sub_08116520 + + thumb_func_start sub_0811657C +sub_0811657C: @ 0x0811657C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + adds r4, r3, #0 + ldr r0, _081165B4 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081165DE + ldr r1, _081165B8 + lsls r2, r3, #2 + adds r0, r2, r3 + lsls r0, 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 _081165D8 + movs r1, #0x18 + ldrsh r0, [r3, r1] + cmp r0, #0 + bne _081165BC + ldrb r1, [r3, #0xe] + ldrb r2, [r3, #0x10] + b _081165C0 + .align 2, 0 +_081165B4: .4byte 0x02037C74 +_081165B8: .4byte 0x03005B60 +_081165BC: + ldrb r1, [r3, #0x10] + ldrb r2, [r3, #0xe] +_081165C0: + adds r0, r5, r4 + lsls r0, r0, #3 + adds r0, r0, r6 + movs r3, #0xc + ldrsh r0, [r0, r3] + cmp r0, #1 + bne _081165D0 + movs r2, #0 +_081165D0: + adds r0, r4, #0 + bl sub_08116520 + b _081165DE +_081165D8: + adds r0, r4, #0 + bl DestroyAnimVisualTask +_081165DE: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_0811657C + + thumb_func_start sub_081165E4 +sub_081165E4: @ 0x081165E4 + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08116644 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + adds r4, r4, r1 + ldr r5, _08116648 + ldrh r0, [r5, #2] + strh r0, [r4, #8] + ldrh r0, [r5, #2] + strh r0, [r4, #0xa] + ldrh r0, [r5, #4] + strh r0, [r4, #0xc] + ldrh r0, [r5, #6] + strh r0, [r4, #0xe] + ldrh r0, [r5, #8] + 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, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #0x10 + movs r1, #1 + lsls r1, r0 + ldrb r3, [r5, #8] + ldrh r0, [r5, #6] + str r0, [sp] + adds r0, r1, #0 + movs r1, #0 + adds r2, r3, #0 + bl BeginNormalPaletteFade + ldr r0, _0811664C + str r0, [r4] + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08116644: .4byte 0x03005B60 +_08116648: .4byte 0x020380BE +_0811664C: .4byte 0x08116651 + thumb_func_end sub_081165E4 + + thumb_func_start sub_08116650 +sub_08116650: @ 0x08116650 + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _08116674 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrh r1, [r4, #8] + movs r2, #8 + ldrsh r0, [r4, r2] + cmp r0, #0 + ble _08116678 + subs r0, r1, #1 + strh r0, [r4, #8] + b _081166FC + .align 2, 0 +_08116674: .4byte 0x03005B60 +_08116678: + ldr r0, _08116694 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081166FC + movs r3, #0xc + ldrsh r0, [r4, r3] + cmp r0, #0 + bne _0811669C + ldr r0, _08116698 + str r0, [r4] + b _081166FC + .align 2, 0 +_08116694: .4byte 0x02037C74 +_08116698: .4byte 0x08116709 +_0811669C: + ldrh r0, [r4, #0x16] + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #0x10 + movs r2, #1 + lsls r2, r0 + ldrh r1, [r4, #0xa] + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081166CA + 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 _081166DA +_081166CA: + ldrb r3, [r4, #0x14] + ldrh r0, [r4, #0x12] + str r0, [sp] + adds r0, r2, #0 + movs r1, #0 + adds r2, r3, #0 + bl BeginNormalPaletteFade +_081166DA: + ldr r0, _08116704 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0xa] + movs r3, #0x80 + lsls r3, r3, #1 + adds r2, r3, #0 + eors r0, r2 + strh r0, [r1, #0xa] + movs r2, #0xff + ands r0, r2 + strh r0, [r1, #8] + ldrh r0, [r1, #0xc] + subs r0, #1 + strh r0, [r1, #0xc] +_081166FC: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08116704: .4byte 0x03005B60 + thumb_func_end sub_08116650 + + thumb_func_start sub_08116708 +sub_08116708: @ 0x08116708 + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _08116758 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _0811674E + ldr r1, _0811675C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r0, [r0, #0x16] + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #0x10 + movs r1, #1 + 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 DestroyAnimVisualTask +_0811674E: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08116758: .4byte 0x02037C74 +_0811675C: .4byte 0x03005B60 + thumb_func_end sub_08116708 + + thumb_func_start sub_08116760 +sub_08116760: @ 0x08116760 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r2, #0 + ldr r0, _081167D8 + ldrb r6, [r0] + ldr r0, _081167DC + ldrb r7, [r0] + ldr r4, _081167E0 + ldrh r1, [r4] + movs r5, #0x80 + lsls r5, r5, #1 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _0811679A + str r2, [sp] + str r2, [sp, #4] + str r2, [sp, #8] + movs r0, #1 + movs r1, #0 + movs r3, #0 + bl sub_080A6E74 + adds r2, r0, #0 +_0811679A: + ldrh r1, [r4, #2] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _081167AC + movs r0, #0x80 + lsls r0, r0, #9 + lsls r0, r6 + orrs r2, r0 +_081167AC: + ldrh r1, [r4, #4] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _081167BE + movs r0, #0x80 + lsls r0, r0, #9 + lsls r0, r7 + orrs r2, r0 +_081167BE: + adds r0, r2, #0 + bl InvertPlttBuffer + mov r0, r8 + bl DestroyAnimVisualTask + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081167D8: .4byte 0x020380D6 +_081167DC: .4byte 0x020380D7 +_081167E0: .4byte 0x020380BE + thumb_func_end sub_08116760 + + thumb_func_start sub_081167E4 +sub_081167E4: @ 0x081167E4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r5, #0 + ldr r1, _081168D8 + lsls r0, r0, #2 + add r0, r8 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08116826 + ldr r1, _081168DC + ldrh r0, [r1] + strh r0, [r4, #0xc] + ldrh r0, [r1, #2] + strh r0, [r4, #0xe] + ldrh r0, [r1, #4] + strh r0, [r4, #0x10] + ldrh r0, [r1, #6] + strh r0, [r4, #0xa] + ldrh r0, [r1, #8] + strh r0, [r4, #0x12] + ldrh r0, [r1, #0xa] + strh r0, [r4, #0x14] + ldrh r0, [r1, #0xc] + strh r0, [r4, #0x16] +_08116826: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + ldr r0, _081168E0 + ldrb r0, [r0] + mov sb, r0 + ldr r0, _081168E4 + ldrb r0, [r0] + mov sl, r0 + ldrh r1, [r4, #0xc] + movs r7, #0x80 + lsls r7, r7, #1 + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0 + beq _08116848 + ldr r5, _081168E8 +_08116848: + movs r6, #1 + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _08116878 + ldr r2, _081168EC + ldr r0, _081168F0 + add r0, sb + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x14 + adds r0, r0, r2 + ldr r0, [r0] + ldrh r0, [r0, #2] + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r6, #0 + lsls r1, r0 + lsls r1, r1, #0x10 + orrs r5, r1 +_08116878: + ldrh r1, [r4, #0xe] + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0 + beq _0811688C + adds r0, r6, #0 + mov r2, sb + lsls r0, r2 + lsls r0, r0, #0x10 + orrs r5, r0 +_0811688C: + ldrh r1, [r4, #0x10] + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0 + beq _081168A0 + adds r0, r6, #0 + mov r1, sl + lsls r0, r1 + lsls r0, r0, #0x10 + orrs r5, r0 +_081168A0: + 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, #8 + ldrsh r1, [r4, r2] + movs r2, #0xa + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _081168CA + adds r0, r5, #0 + bl UnfadePlttBuffer + mov r0, r8 + bl DestroyAnimVisualTask +_081168CA: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081168D8: .4byte 0x03005B60 +_081168DC: .4byte 0x020380BE +_081168E0: .4byte 0x020380D6 +_081168E4: .4byte 0x020380D7 +_081168E8: .4byte 0x0000FFFF +_081168EC: .4byte 0x020205AC +_081168F0: .4byte 0x03005AD0 + thumb_func_end sub_081167E4 + + thumb_func_start sub_081168F4 +sub_081168F4: @ 0x081168F4 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08116928 + ldrh r0, [r1] + rsbs r0, r0, #0 + strh r0, [r4, #0x2e] + ldrh r0, [r1, #2] + strh r0, [r4, #0x30] + strh r0, [r4, #0x32] + ldrh r0, [r1, #4] + strh r0, [r4, #0x34] + movs r2, #6 + ldrsh r0, [r1, r2] + cmp r0, #1 + beq _0811693C + cmp r0, #1 + bgt _0811692C + cmp r0, #0 + beq _08116932 + b _08116954 + .align 2, 0 +_08116928: .4byte 0x020380BE +_0811692C: + cmp r0, #2 + beq _08116944 + b _08116954 +_08116932: + ldr r1, _08116938 + b _08116946 + .align 2, 0 +_08116938: .4byte 0x02022AD4 +_0811693C: + ldr r1, _08116940 + b _08116946 + .align 2, 0 +_08116940: .4byte 0x02022AD6 +_08116944: + ldr r1, _08116950 +_08116946: + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + b _0811695C + .align 2, 0 +_08116950: .4byte 0x02021B38 +_08116954: + ldr r1, _0811698C + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 +_0811695C: + movs r0, #0x3a + ldrsh r1, [r4, r0] + movs r2, #0x3c + ldrsh r0, [r4, r2] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrh r0, [r1] + strh r0, [r4, #0x36] + ldr r0, _08116990 + ldrh r0, [r0, #6] + strh r0, [r4, #0x38] + subs r0, #2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bhi _08116980 + bl sub_08116A44 +_08116980: + ldr r0, _08116994 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811698C: .4byte 0x02021B3A +_08116990: .4byte 0x020380BE +_08116994: .4byte 0x08116999 + thumb_func_end sub_081168F4 + + thumb_func_start sub_08116998 +sub_08116998: @ 0x08116998 + push {r4, r5, r6, r7, lr} + adds r3, r0, #0 + ldrh r1, [r3, #0x34] + movs r2, #0x34 + ldrsh r0, [r3, r2] + cmp r0, #0 + ble _081169DA + subs r0, r1, #1 + strh r0, [r3, #0x34] + ldrh r1, [r3, #0x30] + movs r2, #0x30 + ldrsh r0, [r3, r2] + cmp r0, #0 + ble _081169BA + subs r0, r1, #1 + strh r0, [r3, #0x30] + b _08116A32 +_081169BA: + ldrh r0, [r3, #0x32] + strh r0, [r3, #0x30] + movs r0, #0x3a + ldrsh r1, [r3, r0] + movs r2, #0x3c + ldrsh r0, [r3, r2] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrh r0, [r3, #0x2e] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + ldrh r0, [r3, #0x2e] + rsbs r0, r0, #0 + strh r0, [r3, #0x2e] + b _08116A32 +_081169DA: + movs r0, #0x3a + ldrsh r1, [r3, r0] + movs r2, #0x3c + ldrsh r0, [r3, r2] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrh r0, [r3, #0x36] + strh r0, [r1] + ldrh r0, [r3, #0x38] + subs r0, #2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bhi _08116A2C + movs r4, #0 + ldr r5, _08116A38 + ldrb r0, [r5] + cmp r4, r0 + bhs _08116A2C + ldr r2, _08116A3C + mov ip, r2 + ldr r6, _08116A40 + movs r7, #3 + rsbs r7, r7, #0 +_08116A0A: + adds r0, r4, r6 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + add r1, ip + adds r1, #0x3e + ldrb r2, [r1] + adds r0, r7, #0 + ands r0, r2 + strb r0, [r1] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldrb r0, [r5] + cmp r4, r0 + blo _08116A0A +_08116A2C: + adds r0, r3, #0 + bl DestroyAnimSprite +_08116A32: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08116A38: .4byte 0x02023D10 +_08116A3C: .4byte 0x020205AC +_08116A40: .4byte 0x02023E88 + thumb_func_end sub_08116998 + + thumb_func_start sub_08116A44 +sub_08116A44: @ 0x08116A44 + push {r4, r5, r6, lr} + ldr r6, _08116AB8 + ldr r4, _08116ABC + ldr r5, _08116AC0 + ldrb r0, [r5] + adds r0, r0, r4 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + adds r1, #0x3e + ldrb r3, [r1] + movs r2, #3 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r3 + strb r0, [r1] + ldr r3, _08116AC4 + ldrb r0, [r3] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x3e + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + ldr r0, _08116AC8 + movs r1, #8 + ldrsh r0, [r0, r1] + cmp r0, #2 + bne _08116ACC + ldrb r0, [r5] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #2 + orrs r1, r2 + strb r1, [r0] + ldrb r0, [r3] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x3e + ldrb r1, [r0] + b _08116AE8 + .align 2, 0 +_08116AB8: .4byte 0x020205AC +_08116ABC: .4byte 0x02023E88 +_08116AC0: .4byte 0x020380D6 +_08116AC4: .4byte 0x020380D7 +_08116AC8: .4byte 0x020380BE +_08116ACC: + cmp r0, #0 + bne _08116AD4 + ldrb r0, [r5] + b _08116AD6 +_08116AD4: + ldrb r0, [r3] +_08116AD6: + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #2 +_08116AE8: + orrs r1, r2 + strb r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08116A44 + + thumb_func_start sub_08116AF4 +sub_08116AF4: @ 0x08116AF4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08116B34 + lsls r2, r0, #2 + adds r2, r2, r0 + lsls r2, r2, #3 + adds r2, r2, r1 + ldr r3, _08116B38 + ldrh r1, [r3] + strh r1, [r2, #8] + ldrh r1, [r3, #2] + strh r1, [r2, #0xa] + ldrh r1, [r3, #4] + strh r1, [r2, #0xc] + ldrh r1, [r3, #6] + strh r1, [r2, #0xe] + ldrh r1, [r3, #6] + strh r1, [r2, #0x18] + ldr r4, _08116B3C + ldrh r1, [r3] + strh r1, [r4] + ldr r4, _08116B40 + ldrh r1, [r3, #2] + strh r1, [r4] + ldr r1, _08116B44 + str r1, [r2] + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08116B34: .4byte 0x03005B60 +_08116B38: .4byte 0x020380BE +_08116B3C: .4byte 0x02022AD4 +_08116B40: .4byte 0x02022AD6 +_08116B44: .4byte 0x08116B49 + thumb_func_end sub_08116AF4 + + thumb_func_start sub_08116B48 +sub_08116B48: @ 0x08116B48 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _08116B78 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r3, r0, r1 + ldrh r2, [r3, #0xe] + movs r4, #0xe + ldrsh r0, [r3, r4] + mov ip, r1 + cmp r0, #0 + bne _08116BCE + ldr r0, _08116B7C + ldrh r2, [r0] + movs r7, #8 + ldrsh r1, [r3, r7] + adds r6, r0, #0 + cmp r2, r1 + bne _08116B80 + ldrh r0, [r3, #8] + rsbs r0, r0, #0 + b _08116B82 + .align 2, 0 +_08116B78: .4byte 0x03005B60 +_08116B7C: .4byte 0x02022AD4 +_08116B80: + ldrh r0, [r3, #8] +_08116B82: + strh r0, [r6] + ldr r2, _08116BA0 + ldrh r3, [r2] + lsls r1, r5, #2 + adds r0, r1, r5 + lsls r0, r0, #3 + mov r7, ip + adds r4, r0, r7 + movs r7, #0xa + ldrsh r0, [r4, r7] + cmn r3, r0 + bne _08116BA4 + movs r0, #0 + b _08116BA8 + .align 2, 0 +_08116BA0: .4byte 0x02022AD6 +_08116BA4: + ldrh r0, [r4, #0xa] + rsbs r0, r0, #0 +_08116BA8: + strh r0, [r2] + adds r0, r1, r5 + lsls r0, r0, #3 + add r0, ip + ldrh r1, [r0, #0x18] + strh r1, [r0, #0xe] + ldrh r1, [r0, #0xc] + subs r1, #1 + strh r1, [r0, #0xc] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #0 + bne _08116BD2 + strh r1, [r6] + strh r1, [r2] + adds r0, r5, #0 + bl DestroyAnimVisualTask + b _08116BD2 +_08116BCE: + subs r0, r2, #1 + strh r0, [r3, #0xe] +_08116BD2: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08116B48 + + thumb_func_start sub_08116BD8 +sub_08116BD8: @ 0x08116BD8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08116BF8 + ldrb r1, [r4, #6] + bl StartSpriteAffineAnim + movs r1, #4 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08116BFC + adds r0, r5, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + b _08116C04 + .align 2, 0 +_08116BF8: .4byte 0x020380BE +_08116BFC: + adds r0, r5, #0 + movs r1, #1 + bl InitSpritePosToAnimTarget +_08116C04: + ldr r0, _08116C18 + str r0, [r5, #0x1c] + ldr r1, _08116C1C + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08116C18: .4byte 0x080A6085 +_08116C1C: .4byte 0x080A34C5 + thumb_func_end sub_08116BD8 + + thumb_func_start sub_08116C20 +sub_08116C20: @ 0x08116C20 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08116C40 + ldrb r1, [r4, #6] + bl StartSpriteAffineAnim + movs r1, #4 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08116C44 + adds r0, r5, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + b _08116C4C + .align 2, 0 +_08116C40: .4byte 0x020380BE +_08116C44: + adds r0, r5, #0 + movs r1, #1 + bl InitSpritePosToAnimTarget +_08116C4C: + ldr r0, _08116C64 + ldrh r0, [r0, #8] + strh r0, [r5, #0x2e] + ldr r0, _08116C68 + str r0, [r5, #0x1c] + ldr r1, _08116C6C + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08116C64: .4byte 0x020380BE +_08116C68: .4byte 0x080A6085 +_08116C6C: .4byte 0x0810EB19 + thumb_func_end sub_08116C20 + + thumb_func_start sub_08116C70 +sub_08116C70: @ 0x08116C70 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08116CA0 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08116C94 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08116C94 + ldr r1, _08116CA4 + ldrh r0, [r1, #2] + rsbs r0, r0, #0 + strh r0, [r1, #2] +_08116C94: + adds r0, r4, #0 + bl sub_08116BD8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08116CA0: .4byte 0x020380D6 +_08116CA4: .4byte 0x020380BE + thumb_func_end sub_08116C70 + + thumb_func_start sub_08116CA8 +sub_08116CA8: @ 0x08116CA8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08116CE0 + movs r0, #2 + ldrsh r1, [r5, r0] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _08116CC4 + bl Random2 + movs r1, #3 + ands r1, r0 + strh r1, [r5, #2] +_08116CC4: + ldrb r1, [r5, #2] + adds r0, r4, #0 + bl StartSpriteAffineAnim + movs r1, #0 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _08116CE4 + adds r0, r4, #0 + movs r1, #0 + bl InitSpritePosToAnimAttacker + b _08116CEC + .align 2, 0 +_08116CE0: .4byte 0x020380BE +_08116CE4: + adds r0, r4, #0 + movs r1, #0 + bl InitSpritePosToAnimTarget +_08116CEC: + bl Random2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x30 + bl __umodsi3 + ldr r1, _08116D30 + adds r0, r0, r1 + ldrh r1, [r4, #0x24] + adds r0, r0, r1 + strh r0, [r4, #0x24] + bl Random2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x18 + bl __umodsi3 + ldr r1, _08116D34 + adds r0, r0, r1 + ldrh r1, [r4, #0x26] + adds r0, r0, r1 + strh r0, [r4, #0x26] + ldr r1, _08116D38 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _08116D3C + str r0, [r4, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08116D30: .4byte 0x0000FFE8 +_08116D34: .4byte 0x0000FFF4 +_08116D38: .4byte 0x080A6015 +_08116D3C: .4byte 0x080A6085 + thumb_func_end sub_08116CA8 + + thumb_func_start sub_08116D40 +sub_08116D40: @ 0x08116D40 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08116DA0 + ldrb r0, [r5] + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x2e] + ldr r2, _08116DA4 + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x24] + ldrh r0, [r0, #0x20] + adds r1, r1, r0 + strh r1, [r4, #0x20] + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x26] + ldrh r0, [r0, #0x22] + adds r1, r1, r0 + strh r1, [r4, #0x22] + ldrh r0, [r5, #2] + strh r0, [r4, #0x24] + ldrh r0, [r5, #4] + strh r0, [r4, #0x26] + ldrb r1, [r5, #6] + adds r0, r4, #0 + bl StartSpriteAffineAnim + ldr r1, _08116DA8 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _08116DAC + str r0, [r4, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08116DA0: .4byte 0x020380BE +_08116DA4: .4byte 0x020205AC +_08116DA8: .4byte 0x080A6015 +_08116DAC: .4byte 0x080A6085 + thumb_func_end sub_08116D40 + + thumb_func_start sub_08116DB0 +sub_08116DB0: @ 0x08116DB0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08116DC8 + movs r1, #4 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08116DCC + adds r0, r4, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + b _08116DD4 + .align 2, 0 +_08116DC8: .4byte 0x020380BE +_08116DCC: + adds r0, r4, #0 + movs r1, #1 + bl InitSpritePosToAnimTarget +_08116DD4: + ldr r0, _08116DEC + ldrh r0, [r0, #6] + strh r0, [r4, #0x2e] + ldr r1, _08116DF0 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _08116DF4 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08116DEC: .4byte 0x020380BE +_08116DF0: .4byte 0x080A34C5 +_08116DF4: .4byte 0x080A5D79 + thumb_func_end sub_08116DB0 + + thumb_func_start sub_08116DF8 +sub_08116DF8: @ 0x08116DF8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08116E18 + ldrb r1, [r4, #6] + bl StartSpriteAffineAnim + movs r1, #4 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08116E1C + adds r0, r5, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + b _08116E24 + .align 2, 0 +_08116E18: .4byte 0x020380BE +_08116E1C: + adds r0, r5, #0 + movs r1, #1 + bl InitSpritePosToAnimTarget +_08116E24: + ldr r0, _08116E30 + str r0, [r5, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08116E30: .4byte 0x08116E35 + thumb_func_end sub_08116DF8 + + thumb_func_start sub_08116E34 +sub_08116E34: @ 0x08116E34 + push {lr} + adds r3, r0, #0 + movs r0, #0x3e + adds r0, r0, r3 + mov ip, r0 + ldrb r2, [r0] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrh r0, [r3, #0x2e] + adds r1, r0, #1 + strh r1, [r3, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xc + ble _08116E6A + adds r0, r3, #0 + bl DestroyAnimSprite +_08116E6A: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08116E34 + diff --git a/asm/option_menu.s b/asm/option_menu.s new file mode 100644 index 0000000..c67f151 --- /dev/null +++ b/asm/option_menu.s @@ -0,0 +1,295 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start MainCB2 +MainCB2: @ 0x08177894 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end MainCB2 + + thumb_func_start Task_DiplomaFadeIn +Task_DiplomaFadeIn: @ 0x081778AC + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _081778D0 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081778CC + ldr r0, _081778D4 + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081778D8 + str r0, [r1] +_081778CC: + pop {r0} + bx r0 + .align 2, 0 +_081778D0: .4byte 0x02037C74 +_081778D4: .4byte 0x03005B60 +_081778D8: .4byte 0x081778DD + thumb_func_end Task_DiplomaFadeIn + + thumb_func_start Task_DiplomaWaitForKeyPress +Task_DiplomaWaitForKeyPress: @ 0x081778DC + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _08177918 + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _0817790E + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _0817791C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08177920 + str r1, [r0] +_0817790E: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08177918: .4byte 0x03002360 +_0817791C: .4byte 0x03005B60 +_08177920: .4byte 0x08177925 + thumb_func_end Task_DiplomaWaitForKeyPress + + thumb_func_start Task_DiplomaFadeOut +Task_DiplomaFadeOut: @ 0x08177924 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _08177954 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0817794E + ldr r0, _08177958 + ldr r0, [r0] + bl Free + bl FreeAllWindowBuffers + adds r0, r4, #0 + bl DestroyTask + ldr r0, _0817795C + bl SetMainCallback2 +_0817794E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08177954: .4byte 0x02037C74 +_08177958: .4byte 0x0203B9BC +_0817795C: .4byte 0x08085B51 + thumb_func_end Task_DiplomaFadeOut + + thumb_func_start DisplayDiplomaText +DisplayDiplomaText: @ 0x08177960 + push {r4, lr} + sub sp, #0xc + ldr r0, _081779D8 + movs r1, #0 + movs r2, #2 + bl PrintDiplomaText + ldr r1, _081779DC + mov r0, sp + bl StringCopy + movs r2, #0 + ldr r0, _081779E0 + ldr r3, [r0] +_0817797C: + adds r0, r2, #6 + mov r4, sp + adds r1, r4, r0 + adds r0, r3, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #4 + bls _0817797C + adds r0, r2, #6 + adds r1, r4, r0 + movs r0, #0xff + strb r0, [r1] + mov r0, sp + movs r1, #0x30 + movs r2, #2 + bl PrintDiplomaText + ldr r0, _081779E4 + movs r1, #0x58 + movs r2, #2 + bl PrintDiplomaText + ldr r0, _081779E8 + movs r1, #0 + movs r2, #0x22 + bl PrintDiplomaText + bl sub_080BFE9C + lsls r0, r0, #0x10 + cmp r0, #0 + beq _081779F0 + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #0x14 + bl SetGpuReg + ldr r0, _081779EC + movs r1, #0 + movs r2, #0x22 + bl PrintDiplomaText + b _08177A02 + .align 2, 0 +_081779D8: .4byte 0x085C8BA8 +_081779DC: .4byte 0x085C8C00 +_081779E0: .4byte 0x03005AF0 +_081779E4: .4byte 0x085C8BAE +_081779E8: .4byte 0x085C8BBB +_081779EC: .4byte 0x085C8BB6 +_081779F0: + movs r0, #0x14 + movs r1, #0 + bl SetGpuReg + ldr r0, _08177A24 + movs r1, #0 + movs r2, #0x22 + bl PrintDiplomaText +_08177A02: + ldr r0, _08177A28 + movs r1, #0x30 + movs r2, #0x72 + bl PrintDiplomaText + movs r0, #0 + bl PutWindowTilemap + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08177A24: .4byte 0x085C8BB1 +_08177A28: .4byte 0x085C8BF2 + thumb_func_end DisplayDiplomaText + + thumb_func_start InitDiplomaBg +InitDiplomaBg: @ 0x08177A2C + push {lr} + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _08177A7C + movs r0, #0 + movs r2, #2 + bl InitBgsFromTemplates + ldr r0, _08177A80 + ldr r1, [r0] + movs r0, #1 + bl SetBgTilemapBuffer + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 +_08177A7C: .4byte 0x085C8C08 +_08177A80: .4byte 0x0203B9BC + thumb_func_end InitDiplomaBg + + thumb_func_start InitDiplomaWindow +InitDiplomaWindow: @ 0x08177A84 + push {lr} + ldr r0, _08177AAC + bl InitWindows + bl DeactivateAllTextPrinters + ldr r0, _08177AB0 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + movs r0, #0 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #0 + bl PutWindowTilemap + pop {r0} + bx r0 + .align 2, 0 +_08177AAC: .4byte 0x085C8C10 +_08177AB0: .4byte 0x085D7B04 + thumb_func_end InitDiplomaWindow + + thumb_func_start PrintDiplomaText +PrintDiplomaText: @ 0x08177AB4 + push {r4, r5, r6, lr} + sub sp, #0x18 + adds r6, r0, #0 + adds r4, r1, #0 + adds r5, r2, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r1, _08177AF8 + add r0, sp, #0x14 + movs r2, #3 + bl memcpy + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + add r0, sp, #0x14 + str r0, [sp, #8] + movs r0, #1 + rsbs r0, r0, #0 + str r0, [sp, #0xc] + str r6, [sp, #0x10] + movs r0, #0 + movs r1, #1 + adds r2, r4, #0 + adds r3, r5, #0 + bl AddTextPrinterParameterized4 + add sp, #0x18 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08177AF8: .4byte 0x085C8C20 + thumb_func_end PrintDiplomaText + diff --git a/asm/overworld.s b/asm/overworld.s new file mode 100644 index 0000000..282323f --- /dev/null +++ b/asm/overworld.s @@ -0,0 +1,7254 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start DoWhiteOut +DoWhiteOut: @ 0x08083FA8 + push {r4, lr} + ldr r0, _08083FE0 + bl ScriptContext2_RunNewScript + ldr r0, _08083FE4 + ldr r4, [r0] + movs r0, #0x92 + lsls r0, r0, #3 + adds r4, r4, r0 + adds r0, r4, #0 + bl GetMoney + adds r1, r0, #0 + lsrs r1, r1, #1 + adds r0, r4, #0 + bl SetMoney + bl HealPlayerParty + bl Overworld_ResetStateAfterWhiteOut + bl SetWarpDestinationToLastHealLocation + bl WarpIntoMap + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08083FE0: .4byte 0x082428F1 +_08083FE4: .4byte 0x03005AEC + thumb_func_end DoWhiteOut + + thumb_func_start Overworld_ResetStateAfterDigEscRope +Overworld_ResetStateAfterDigEscRope: @ 0x08083FE8 + push {lr} + bl ResetInitialPlayerAvatarState + ldr r0, _08084010 + bl FlagClear + ldr r0, _08084014 + bl FlagClear + ldr r0, _08084018 + bl FlagClear + ldr r0, _0808401C + bl FlagClear + ldr r0, _08084020 + bl FlagClear + pop {r0} + bx r0 + .align 2, 0 +_08084010: .4byte 0x0000088B +_08084014: .4byte 0x0000088D +_08084018: .4byte 0x0000088C +_0808401C: .4byte 0x00000889 +_08084020: .4byte 0x00000888 + thumb_func_end Overworld_ResetStateAfterDigEscRope + + thumb_func_start Overworld_ResetStateAfterTeleport +Overworld_ResetStateAfterTeleport: @ 0x08084024 + push {lr} + bl ResetInitialPlayerAvatarState + ldr r0, _08084054 + bl FlagClear + ldr r0, _08084058 + bl FlagClear + ldr r0, _0808405C + bl FlagClear + ldr r0, _08084060 + bl FlagClear + ldr r0, _08084064 + bl FlagClear + ldr r0, _08084068 + bl ScriptContext2_RunNewScript + pop {r0} + bx r0 + .align 2, 0 +_08084054: .4byte 0x0000088B +_08084058: .4byte 0x0000088D +_0808405C: .4byte 0x0000088C +_08084060: .4byte 0x00000889 +_08084064: .4byte 0x00000888 +_08084068: .4byte 0x082428FC + thumb_func_end Overworld_ResetStateAfterTeleport + + thumb_func_start Overworld_ResetStateAfterFly +Overworld_ResetStateAfterFly: @ 0x0808406C + push {lr} + bl ResetInitialPlayerAvatarState + ldr r0, _08084094 + bl FlagClear + ldr r0, _08084098 + bl FlagClear + ldr r0, _0808409C + bl FlagClear + ldr r0, _080840A0 + bl FlagClear + ldr r0, _080840A4 + bl FlagClear + pop {r0} + bx r0 + .align 2, 0 +_08084094: .4byte 0x0000088B +_08084098: .4byte 0x0000088D +_0808409C: .4byte 0x0000088C +_080840A0: .4byte 0x00000889 +_080840A4: .4byte 0x00000888 + thumb_func_end Overworld_ResetStateAfterFly + + thumb_func_start Overworld_ResetStateAfterWhiteOut +Overworld_ResetStateAfterWhiteOut: @ 0x080840A8 + push {r4, lr} + bl ResetInitialPlayerAvatarState + ldr r0, _080840F4 + bl FlagClear + ldr r0, _080840F8 + bl FlagClear + ldr r0, _080840FC + bl FlagClear + ldr r0, _08084100 + bl FlagClear + ldr r0, _08084104 + bl FlagClear + ldr r4, _08084108 + adds r0, r4, #0 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bne _080840EC + adds r0, r4, #0 + movs r1, #0 + bl VarSet + ldr r0, _0808410C + movs r1, #0 + bl VarSet +_080840EC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080840F4: .4byte 0x0000088B +_080840F8: .4byte 0x0000088D +_080840FC: .4byte 0x0000088C +_08084100: .4byte 0x00000889 +_08084104: .4byte 0x00000888 +_08084108: .4byte 0x00004039 +_0808410C: .4byte 0x00004037 + thumb_func_end Overworld_ResetStateAfterWhiteOut + + thumb_func_start sub_08084110 +sub_08084110: @ 0x08084110 + push {lr} + ldr r0, _0808412C + bl FlagClear + bl ChooseAmbientCrySpecies + bl ResetCyclingRoadChallengeData + bl UpdateLocationHistoryForRoamer + bl RoamerMoveToOtherLocationSet + pop {r0} + bx r0 + .align 2, 0 +_0808412C: .4byte 0x0000088C + thumb_func_end sub_08084110 + + thumb_func_start ResetGameStats +ResetGameStats: @ 0x08084130 + push {r4, lr} + movs r4, #0 +_08084134: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl SetGameStat + adds r4, #1 + cmp r4, #0x3f + ble _08084134 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ResetGameStats + + thumb_func_start IncrementGameStat +IncrementGameStat: @ 0x0808414C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x33 + bhi _08084174 + adds r0, r4, #0 + bl GetGameStat + adds r1, r0, #0 + ldr r0, _08084168 + cmp r1, r0 + bhi _0808416C + adds r1, #1 + b _0808416E + .align 2, 0 +_08084168: .4byte 0x00FFFFFE +_0808416C: + ldr r1, _0808417C +_0808416E: + adds r0, r4, #0 + bl SetGameStat +_08084174: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808417C: .4byte 0x00FFFFFF + thumb_func_end IncrementGameStat + + thumb_func_start GetGameStat +GetGameStat: @ 0x08084180 + push {lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x33 + bhi _080841B0 + ldr r0, _080841A4 + ldr r2, [r0] + lsls r0, r1, #2 + ldr r1, _080841A8 + adds r2, r2, r1 + adds r2, r2, r0 + ldr r0, _080841AC + ldr r1, [r0] + adds r1, #0xac + ldr r0, [r2] + ldr r1, [r1] + eors r0, r1 + b _080841B2 + .align 2, 0 +_080841A4: .4byte 0x03005AEC +_080841A8: .4byte 0x0000159C +_080841AC: .4byte 0x03005AF0 +_080841B0: + movs r0, #0 +_080841B2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetGameStat + + thumb_func_start SetGameStat +SetGameStat: @ 0x080841B8 + push {lr} + adds r3, r1, #0 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x33 + bhi _080841DC + ldr r0, _080841E0 + ldr r1, [r0] + lsls r0, r2, #2 + ldr r2, _080841E4 + adds r1, r1, r2 + adds r1, r1, r0 + ldr r0, _080841E8 + ldr r0, [r0] + adds r0, #0xac + ldr r0, [r0] + eors r0, r3 + str r0, [r1] +_080841DC: + pop {r0} + bx r0 + .align 2, 0 +_080841E0: .4byte 0x03005AEC +_080841E4: .4byte 0x0000159C +_080841E8: .4byte 0x03005AF0 + thumb_func_end SetGameStat + + thumb_func_start ApplyNewEncryptionKeyToGameStats +ApplyNewEncryptionKeyToGameStats: @ 0x080841EC + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r4, #0 + ldr r6, _08084214 +_080841F4: + lsls r1, r4, #2 + ldr r0, _08084218 + adds r1, r1, r0 + ldr r0, [r6] + adds r0, r0, r1 + adds r1, r5, #0 + bl ApplyNewEncryptionKeyToWord + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x3f + bls _080841F4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08084214: .4byte 0x03005AEC +_08084218: .4byte 0x0000159C + thumb_func_end ApplyNewEncryptionKeyToGameStats + + thumb_func_start LoadEventObjTemplatesFromHeader +LoadEventObjTemplatesFromHeader: @ 0x0808421C + push {r4, r5, lr} + sub sp, #4 + movs r0, #0 + str r0, [sp] + ldr r5, _0808425C + ldr r1, [r5] + movs r4, #0xc7 + lsls r4, r4, #4 + adds r1, r1, r4 + ldr r2, _08084260 + mov r0, sp + bl CpuSet + ldr r0, _08084264 + ldr r2, [r0, #4] + ldr r0, [r2, #4] + ldr r1, [r5] + adds r1, r1, r4 + ldrb r3, [r2] + lsls r2, r3, #1 + adds r2, r2, r3 + lsls r2, r2, #1 + movs r3, #0x80 + lsls r3, r3, #0x13 + orrs r2, r3 + bl CpuSet + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0808425C: .4byte 0x03005AEC +_08084260: .4byte 0x05000180 +_08084264: .4byte 0x02036FB8 + thumb_func_end LoadEventObjTemplatesFromHeader + + thumb_func_start LoadSaveblockEventObjScripts +LoadSaveblockEventObjScripts: @ 0x08084268 + push {lr} + ldr r0, _08084290 + ldr r1, [r0, #4] + ldr r0, _08084294 + ldr r0, [r0] + ldr r2, [r1, #4] + movs r3, #0xc7 + lsls r3, r3, #4 + adds r1, r0, r3 + movs r3, #0x3f +_0808427C: + ldr r0, [r2, #0x10] + str r0, [r1, #0x10] + adds r2, #0x18 + adds r1, #0x18 + subs r3, #1 + cmp r3, #0 + bge _0808427C + pop {r0} + bx r0 + .align 2, 0 +_08084290: .4byte 0x02036FB8 +_08084294: .4byte 0x03005AEC + thumb_func_end LoadSaveblockEventObjScripts + + thumb_func_start Overworld_SetEventObjTemplateCoords +Overworld_SetEventObjTemplateCoords: @ 0x08084298 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldr r0, _080842C0 + ldr r0, [r0] + movs r1, #0 + movs r6, #0xc7 + lsls r6, r6, #4 + adds r3, r0, r6 +_080842B2: + ldrb r0, [r3] + cmp r0, r5 + bne _080842C4 + strh r4, [r3, #4] + strh r2, [r3, #6] + b _080842CC + .align 2, 0 +_080842C0: .4byte 0x03005AEC +_080842C4: + adds r3, #0x18 + adds r1, #1 + cmp r1, #0x3f + ble _080842B2 +_080842CC: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Overworld_SetEventObjTemplateCoords + + thumb_func_start Overworld_SetEventObjTemplateMovementType +Overworld_SetEventObjTemplateMovementType: @ 0x080842D4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, _080842F4 + ldr r0, [r0] + movs r3, #0 + movs r5, #0xc7 + lsls r5, r5, #4 + adds r2, r0, r5 +_080842EA: + ldrb r0, [r2] + cmp r0, r4 + bne _080842F8 + strb r1, [r2, #9] + b _08084300 + .align 2, 0 +_080842F4: .4byte 0x03005AEC +_080842F8: + adds r2, #0x18 + adds r3, #1 + cmp r3, #0x3f + ble _080842EA +_08084300: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Overworld_SetEventObjTemplateMovementType + + thumb_func_start mapdata_load_assets_to_gpu_and_full_redraw +mapdata_load_assets_to_gpu_and_full_redraw: @ 0x08084308 + push {r4, lr} + bl move_tilemap_camera_to_upper_left_corner + ldr r4, _0808432C + ldr r0, [r4] + bl copy_map_tileset1_tileset2_to_vram + ldr r0, [r4] + bl apply_map_tileset1_tileset2_palette + bl DrawWholeMapView + bl InitTilesetAnimations + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808432C: .4byte 0x02036FB8 + thumb_func_end mapdata_load_assets_to_gpu_and_full_redraw + + thumb_func_start GetMapLayout +GetMapLayout: @ 0x08084330 + push {lr} + ldr r0, _08084340 + ldr r0, [r0] + ldrh r1, [r0, #0x32] + cmp r1, #0 + bne _08084344 + movs r0, #0 + b _0808434E + .align 2, 0 +_08084340: .4byte 0x03005AEC +_08084344: + ldr r0, _08084354 + subs r1, #1 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] +_0808434E: + pop {r1} + bx r1 + .align 2, 0 +_08084354: .4byte 0x0845A1F4 + thumb_func_end GetMapLayout + + thumb_func_start ApplyCurrentWarp +ApplyCurrentWarp: @ 0x08084358 + ldr r3, _08084384 + ldr r0, _08084388 + ldr r2, [r0] + ldr r0, [r2, #4] + ldr r1, [r2, #8] + str r0, [r3] + str r1, [r3, #4] + ldr r0, _0808438C + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [r2, #4] + str r1, [r2, #8] + ldr r2, _08084390 + ldr r0, _08084394 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [r2] + str r1, [r2, #4] + ldr r2, _08084398 + str r0, [r2] + str r1, [r2, #4] + bx lr + .align 2, 0 +_08084384: .4byte 0x02031F7C +_08084388: .4byte 0x03005AEC +_0808438C: .4byte 0x02031F84 +_08084390: .4byte 0x02031F8C +_08084394: .4byte 0x0830FC88 +_08084398: .4byte 0x02031F94 + thumb_func_end ApplyCurrentWarp + + thumb_func_start SetWarpData +SetWarpData: @ 0x0808439C + push {r4, r5, lr} + ldr r4, [sp, #0xc] + ldr r5, [sp, #0x10] + strb r1, [r0] + strb r2, [r0, #1] + strb r3, [r0, #2] + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + strh r4, [r0, #4] + lsls r5, r5, #0x18 + asrs r5, r5, #0x18 + strh r5, [r0, #6] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetWarpData + + thumb_func_start IsDummyWarp +IsDummyWarp: @ 0x080843BC + push {lr} + adds r1, r0, #0 + movs r2, #0 + ldrsb r2, [r1, r2] + movs r0, #1 + rsbs r0, r0, #0 + cmp r2, r0 + bne _080843F0 + movs r0, #1 + ldrsb r0, [r1, r0] + cmp r0, r2 + bne _080843F0 + movs r2, #2 + ldrsb r2, [r1, r2] + cmp r2, r0 + bne _080843F0 + movs r0, #4 + ldrsh r3, [r1, r0] + cmp r3, r2 + bne _080843F0 + movs r2, #6 + ldrsh r0, [r1, r2] + cmp r0, r3 + bne _080843F0 + movs r0, #1 + b _080843F2 +_080843F0: + movs r0, #0 +_080843F2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsDummyWarp + + thumb_func_start Overworld_GetMapHeaderByGroupAndId +Overworld_GetMapHeaderByGroupAndId: @ 0x080843F8 + lsls r0, r0, #0x10 + lsls r1, r1, #0x10 + ldr r2, _0808440C + lsrs r0, r0, #0xe + adds r0, r0, r2 + ldr r0, [r0] + lsrs r1, r1, #0xe + adds r1, r1, r0 + ldr r0, [r1] + bx lr + .align 2, 0 +_0808440C: .4byte 0x0845E998 + thumb_func_end Overworld_GetMapHeaderByGroupAndId + + thumb_func_start GetDestinationWarpMapHeader +GetDestinationWarpMapHeader: @ 0x08084410 + push {lr} + ldr r1, _08084430 + movs r0, #0 + ldrsb r0, [r1, r0] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r1, #1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl Overworld_GetMapHeaderByGroupAndId + pop {r1} + bx r1 + .align 2, 0 +_08084430: .4byte 0x02031F84 + thumb_func_end GetDestinationWarpMapHeader + + thumb_func_start LoadCurrentMapData +LoadCurrentMapData: @ 0x08084434 + push {r4, r5, r6, lr} + ldr r1, _08084478 + ldr r4, _0808447C + ldrb r0, [r4, #0x14] + strh r0, [r1] + ldr r5, _08084480 + ldr r1, [r5] + movs r0, #4 + ldrsb r0, [r1, r0] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r1, #5] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl Overworld_GetMapHeaderByGroupAndId + adds r1, r4, #0 + ldm r0!, {r2, r3, r6} + stm r1!, {r2, r3, r6} + ldm r0!, {r2, r3, r6} + stm r1!, {r2, r3, r6} + ldr r0, [r0] + str r0, [r1] + ldr r1, [r5] + ldrh r0, [r4, #0x12] + strh r0, [r1, #0x32] + bl GetMapLayout + str r0, [r4] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08084478: .4byte 0x02031F9C +_0808447C: .4byte 0x02036FB8 +_08084480: .4byte 0x03005AEC + thumb_func_end LoadCurrentMapData + + thumb_func_start LoadSaveblockMapHeader +LoadSaveblockMapHeader: @ 0x08084484 + push {r4, r5, lr} + ldr r4, _080844BC + ldr r0, _080844C0 + ldr r1, [r0] + movs r0, #4 + ldrsb r0, [r1, r0] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r1, #5] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl Overworld_GetMapHeaderByGroupAndId + adds r1, r4, #0 + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} + ldr r0, [r0] + str r0, [r1] + bl GetMapLayout + str r0, [r4] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080844BC: .4byte 0x02036FB8 +_080844C0: .4byte 0x03005AEC + thumb_func_end LoadSaveblockMapHeader + + thumb_func_start SetPlayerCoordsFromWarp +SetPlayerCoordsFromWarp: @ 0x080844C4 + push {r4, r5, lr} + ldr r0, _080844F4 + ldr r2, [r0] + movs r1, #6 + ldrsb r1, [r2, r1] + adds r4, r0, #0 + cmp r1, #0 + blt _080844FC + ldr r3, _080844F8 + ldr r0, [r3, #4] + ldrb r5, [r0, #1] + cmp r1, r5 + bge _080844FC + ldr r0, [r0, #8] + lsls r1, r1, #3 + adds r0, r1, r0 + ldrh r0, [r0] + strh r0, [r2] + ldr r0, [r3, #4] + ldr r0, [r0, #8] + adds r1, r1, r0 + ldrh r0, [r1, #2] + strh r0, [r2, #2] + b _08084534 + .align 2, 0 +_080844F4: .4byte 0x03005AEC +_080844F8: .4byte 0x02036FB8 +_080844FC: + ldr r1, [r4] + ldrh r3, [r1, #8] + movs r2, #8 + ldrsh r0, [r1, r2] + cmp r0, #0 + blt _08084518 + ldrh r2, [r1, #0xa] + movs r5, #0xa + ldrsh r0, [r1, r5] + cmp r0, #0 + blt _08084518 + strh r3, [r1] + strh r2, [r1, #2] + b _08084534 +_08084518: + ldr r3, [r4] + ldr r2, _0808453C + ldr r0, [r2] + ldr r0, [r0] + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + strh r0, [r3] + ldr r0, [r2] + ldr r0, [r0, #4] + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + strh r0, [r3, #2] +_08084534: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0808453C: .4byte 0x02036FB8 + thumb_func_end SetPlayerCoordsFromWarp + + thumb_func_start WarpIntoMap +WarpIntoMap: @ 0x08084540 + push {lr} + bl ApplyCurrentWarp + bl LoadCurrentMapData + bl SetPlayerCoordsFromWarp + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WarpIntoMap + + thumb_func_start SetWarpDestination +SetWarpDestination: @ 0x08084554 + push {r4, r5, r6, lr} + sub sp, #8 + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + ldr r1, [sp, #0x18] + ldr r0, _0808458C + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + lsls r5, r5, #0x18 + asrs r5, r5, #0x18 + lsls r6, r6, #0x18 + asrs r6, r6, #0x18 + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + str r3, [sp] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + str r1, [sp, #4] + adds r1, r4, #0 + adds r2, r5, #0 + adds r3, r6, #0 + bl SetWarpData + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0808458C: .4byte 0x02031F84 + thumb_func_end SetWarpDestination + + thumb_func_start SetWarpDestinationToMapWarp +SetWarpDestinationToMapWarp: @ 0x08084590 + push {lr} + sub sp, #4 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + movs r3, #1 + rsbs r3, r3, #0 + str r3, [sp] + bl SetWarpDestination + add sp, #4 + pop {r0} + bx r0 + thumb_func_end SetWarpDestinationToMapWarp + + thumb_func_start SetDynamicWarp +SetDynamicWarp: @ 0x080845B0 + push {r4, r5, lr} + sub sp, #8 + ldr r0, _080845E0 + ldr r5, [r0] + adds r0, r5, #0 + adds r0, #0x14 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + movs r4, #0 + ldrsb r4, [r5, r4] + str r4, [sp] + movs r4, #2 + ldrsb r4, [r5, r4] + str r4, [sp, #4] + bl SetWarpData + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080845E0: .4byte 0x03005AEC + thumb_func_end SetDynamicWarp + + thumb_func_start SetDynamicWarpWithCoords +SetDynamicWarpWithCoords: @ 0x080845E4 + push {r4, r5, lr} + sub sp, #8 + ldr r4, [sp, #0x14] + ldr r5, [sp, #0x18] + ldr r0, _08084618 + ldr r0, [r0] + adds r0, #0x14 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + str r4, [sp] + lsls r5, r5, #0x18 + asrs r5, r5, #0x18 + str r5, [sp, #4] + bl SetWarpData + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08084618: .4byte 0x03005AEC + thumb_func_end SetDynamicWarpWithCoords + + thumb_func_start SetWarpDestinationToDynamicWarp +SetWarpDestinationToDynamicWarp: @ 0x0808461C + ldr r2, _0808462C + ldr r0, _08084630 + ldr r0, [r0] + ldr r1, [r0, #0x18] + ldr r0, [r0, #0x14] + str r0, [r2] + str r1, [r2, #4] + bx lr + .align 2, 0 +_0808462C: .4byte 0x02031F84 +_08084630: .4byte 0x03005AEC + thumb_func_end SetWarpDestinationToDynamicWarp + + thumb_func_start SetWarpDestinationToHealLocation +SetWarpDestinationToHealLocation: @ 0x08084634 + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetHealLocation + adds r4, r0, #0 + cmp r4, #0 + beq _08084662 + movs r0, #0 + ldrsb r0, [r4, r0] + movs r1, #1 + ldrsb r1, [r4, r1] + movs r2, #1 + rsbs r2, r2, #0 + movs r3, #2 + ldrsb r3, [r4, r3] + ldrb r4, [r4, #4] + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + str r4, [sp] + bl SetWarpDestination +_08084662: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetWarpDestinationToHealLocation + + thumb_func_start SetWarpDestinationToLastHealLocation +SetWarpDestinationToLastHealLocation: @ 0x0808466C + ldr r2, _0808467C + ldr r0, _08084680 + ldr r0, [r0] + ldr r1, [r0, #0x20] + ldr r0, [r0, #0x1c] + str r0, [r2] + str r1, [r2, #4] + bx lr + .align 2, 0 +_0808467C: .4byte 0x02031F84 +_08084680: .4byte 0x03005AEC + thumb_func_end SetWarpDestinationToLastHealLocation + + thumb_func_start SetLastHealLocationWarp +SetLastHealLocationWarp: @ 0x08084684 + push {r4, r5, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetHealLocation + adds r5, r0, #0 + cmp r5, #0 + beq _080846B8 + ldr r0, _080846C0 + ldr r0, [r0] + adds r0, #0x1c + movs r1, #0 + ldrsb r1, [r5, r1] + movs r2, #1 + ldrsb r2, [r5, r2] + movs r3, #1 + rsbs r3, r3, #0 + movs r4, #2 + ldrsb r4, [r5, r4] + str r4, [sp] + movs r4, #4 + ldrsb r4, [r5, r4] + str r4, [sp, #4] + bl SetWarpData +_080846B8: + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080846C0: .4byte 0x03005AEC + thumb_func_end SetLastHealLocationWarp + + thumb_func_start UpdateEscapeWarp +UpdateEscapeWarp: @ 0x080846C4 + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + bl GetCurrentMapType + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _08084734 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrb r1, [r1, #1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + bl GetMapTypeByGroupAndId + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r4, #0 + bl IsMapTypeOutdoors + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808472C + adds r0, r5, #0 + bl IsMapTypeOutdoors + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0808472C + ldr r0, _08084738 + ldr r1, [r0] + movs r0, #4 + ldrsb r0, [r1, r0] + ldrb r1, [r1, #5] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r2, #1 + rsbs r2, r2, #0 + subs r3, r6, #7 + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + subs r4, r7, #6 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + str r4, [sp] + bl SetEscapeWarp +_0808472C: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08084734: .4byte 0x02031F84 +_08084738: .4byte 0x03005AEC + thumb_func_end UpdateEscapeWarp + + thumb_func_start SetEscapeWarp +SetEscapeWarp: @ 0x0808473C + push {r4, r5, r6, lr} + sub sp, #8 + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + ldr r1, [sp, #0x18] + ldr r0, _08084778 + ldr r0, [r0] + adds r0, #0x24 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + lsls r5, r5, #0x18 + asrs r5, r5, #0x18 + lsls r6, r6, #0x18 + asrs r6, r6, #0x18 + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + str r3, [sp] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + str r1, [sp, #4] + adds r1, r4, #0 + adds r2, r5, #0 + adds r3, r6, #0 + bl SetWarpData + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08084778: .4byte 0x03005AEC + thumb_func_end SetEscapeWarp + + thumb_func_start SetWarpDestinationToEscapeWarp +SetWarpDestinationToEscapeWarp: @ 0x0808477C + ldr r2, _0808478C + ldr r0, _08084790 + ldr r0, [r0] + ldr r1, [r0, #0x28] + ldr r0, [r0, #0x24] + str r0, [r2] + str r1, [r2, #4] + bx lr + .align 2, 0 +_0808478C: .4byte 0x02031F84 +_08084790: .4byte 0x03005AEC + thumb_func_end SetWarpDestinationToEscapeWarp + + thumb_func_start SetFixedDiveWarp +SetFixedDiveWarp: @ 0x08084794 + push {r4, r5, r6, lr} + sub sp, #8 + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + ldr r1, [sp, #0x18] + ldr r0, _080847CC + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + lsls r5, r5, #0x18 + asrs r5, r5, #0x18 + lsls r6, r6, #0x18 + asrs r6, r6, #0x18 + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + str r3, [sp] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + str r1, [sp, #4] + adds r1, r4, #0 + adds r2, r5, #0 + adds r3, r6, #0 + bl SetWarpData + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080847CC: .4byte 0x02031F8C + thumb_func_end SetFixedDiveWarp + + thumb_func_start SetWarpDestinationToDiveWarp +SetWarpDestinationToDiveWarp: @ 0x080847D0 + ldr r2, _080847E0 + ldr r0, _080847E4 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [r2] + str r1, [r2, #4] + bx lr + .align 2, 0 +_080847E0: .4byte 0x02031F84 +_080847E4: .4byte 0x02031F8C + thumb_func_end SetWarpDestinationToDiveWarp + + thumb_func_start SetFixedHoleWarp +SetFixedHoleWarp: @ 0x080847E8 + push {r4, r5, r6, lr} + sub sp, #8 + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + ldr r1, [sp, #0x18] + ldr r0, _08084820 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + lsls r5, r5, #0x18 + asrs r5, r5, #0x18 + lsls r6, r6, #0x18 + asrs r6, r6, #0x18 + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + str r3, [sp] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + str r1, [sp, #4] + adds r1, r4, #0 + adds r2, r5, #0 + adds r3, r6, #0 + bl SetWarpData + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08084820: .4byte 0x02031F94 + thumb_func_end SetFixedHoleWarp + + thumb_func_start SetWarpDestinationToFixedHoleWarp +SetWarpDestinationToFixedHoleWarp: @ 0x08084824 + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + ldr r4, _0808484C + adds r0, r4, #0 + bl IsDummyWarp + cmp r0, #1 + bne _08084858 + ldr r2, _08084850 + ldr r0, _08084854 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [r2] + str r1, [r2, #4] + b _08084872 + .align 2, 0 +_0808484C: .4byte 0x02031F94 +_08084850: .4byte 0x02031F84 +_08084854: .4byte 0x02031F7C +_08084858: + movs r0, #0 + ldrsb r0, [r4, r0] + movs r1, #1 + ldrsb r1, [r4, r1] + movs r2, #1 + rsbs r2, r2, #0 + lsls r3, r5, #0x18 + asrs r3, r3, #0x18 + lsls r4, r6, #0x18 + asrs r4, r4, #0x18 + str r4, [sp] + bl SetWarpDestination +_08084872: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetWarpDestinationToFixedHoleWarp + + thumb_func_start SetWarpDestinationToContinueGameWarp +SetWarpDestinationToContinueGameWarp: @ 0x0808487C + ldr r2, _0808488C + ldr r0, _08084890 + ldr r0, [r0] + ldr r1, [r0, #0x10] + ldr r0, [r0, #0xc] + str r0, [r2] + str r1, [r2, #4] + bx lr + .align 2, 0 +_0808488C: .4byte 0x02031F84 +_08084890: .4byte 0x03005AEC + thumb_func_end SetWarpDestinationToContinueGameWarp + + thumb_func_start SetContinueGameWarp +SetContinueGameWarp: @ 0x08084894 + push {r4, r5, r6, lr} + sub sp, #8 + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + ldr r1, [sp, #0x18] + ldr r0, _080848D0 + ldr r0, [r0] + adds r0, #0xc + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + lsls r5, r5, #0x18 + asrs r5, r5, #0x18 + lsls r6, r6, #0x18 + asrs r6, r6, #0x18 + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + str r3, [sp] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + str r1, [sp, #4] + adds r1, r4, #0 + adds r2, r5, #0 + adds r3, r6, #0 + bl SetWarpData + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080848D0: .4byte 0x03005AEC + thumb_func_end SetContinueGameWarp + + thumb_func_start SetContinueGameWarpToHealLocation +SetContinueGameWarpToHealLocation: @ 0x080848D4 + push {r4, r5, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetHealLocation + adds r5, r0, #0 + cmp r5, #0 + beq _08084908 + ldr r0, _08084910 + ldr r0, [r0] + adds r0, #0xc + movs r1, #0 + ldrsb r1, [r5, r1] + movs r2, #1 + ldrsb r2, [r5, r2] + movs r3, #1 + rsbs r3, r3, #0 + movs r4, #2 + ldrsb r4, [r5, r4] + str r4, [sp] + movs r4, #4 + ldrsb r4, [r5, r4] + str r4, [sp, #4] + bl SetWarpData +_08084908: + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08084910: .4byte 0x03005AEC + thumb_func_end SetContinueGameWarpToHealLocation + + thumb_func_start SetContinueGameWarpToDynamicWarp +SetContinueGameWarpToDynamicWarp: @ 0x08084914 + ldr r0, _08084924 + ldr r2, [r0] + ldr r0, [r2, #0x14] + ldr r1, [r2, #0x18] + str r0, [r2, #0xc] + str r1, [r2, #0x10] + bx lr + .align 2, 0 +_08084924: .4byte 0x03005AEC + thumb_func_end SetContinueGameWarpToDynamicWarp + + thumb_func_start GetMapConnection +GetMapConnection: @ 0x08084928 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0808493C + ldr r0, [r0, #0xc] + ldr r3, [r0] + ldr r1, [r0, #4] + cmp r1, #0 + bne _08084944 + b _08084958 + .align 2, 0 +_0808493C: .4byte 0x02036FB8 +_08084940: + adds r0, r1, #0 + b _0808495A +_08084944: + movs r2, #0 + cmp r2, r3 + bge _08084958 +_0808494A: + ldrb r0, [r1] + cmp r0, r4 + beq _08084940 + adds r2, #1 + adds r1, #0xc + cmp r2, r3 + blt _0808494A +_08084958: + movs r0, #0 +_0808495A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetMapConnection + + thumb_func_start SetDiveWarp +SetDiveWarp: @ 0x08084960 + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r5, r2, #0x10 + bl GetMapConnection + adds r1, r0, #0 + cmp r1, #0 + beq _08084998 + movs r0, #8 + ldrsb r0, [r1, r0] + ldrb r1, [r1, #9] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r2, #1 + rsbs r2, r2, #0 + lsls r3, r4, #0x18 + asrs r3, r3, #0x18 + lsls r4, r5, #0x18 + asrs r4, r4, #0x18 + str r4, [sp] + bl SetWarpDestination + b _080849B4 +_08084998: + bl RunOnDiveWarpMapScript + ldr r0, _080849AC + bl IsDummyWarp + cmp r0, #0 + beq _080849B0 + movs r0, #0 + b _080849B6 + .align 2, 0 +_080849AC: .4byte 0x02031F8C +_080849B0: + bl SetWarpDestinationToDiveWarp +_080849B4: + movs r0, #1 +_080849B6: + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SetDiveWarp + + thumb_func_start SetDiveWarpEmerge +SetDiveWarpEmerge: @ 0x080849C0 + push {lr} + adds r3, r0, #0 + adds r2, r1, #0 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + movs r0, #6 + adds r1, r3, #0 + bl SetDiveWarp + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SetDiveWarpEmerge + + thumb_func_start SetDiveWarpDive +SetDiveWarpDive: @ 0x080849E0 + push {lr} + adds r3, r0, #0 + adds r2, r1, #0 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + movs r0, #5 + adds r1, r3, #0 + bl SetDiveWarp + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SetDiveWarpDive + + thumb_func_start LoadMapFromCameraTransition +LoadMapFromCameraTransition: @ 0x08084A00 + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r5, r1, #0 + lsls r0, r6, #0x18 + asrs r0, r0, #0x18 + lsls r1, r5, #0x18 + asrs r1, r1, #0x18 + movs r3, #1 + rsbs r3, r3, #0 + str r3, [sp] + adds r2, r3, #0 + bl SetWarpDestination + ldr r4, _08084AC0 + ldrb r0, [r4, #0x14] + cmp r0, #0x3a + beq _08084A30 + bl sub_08085178 +_08084A30: + bl ApplyCurrentWarp + bl LoadCurrentMapData + bl LoadEventObjTemplatesFromHeader + bl TrySetMapSaveWarpStatus + bl ClearTempFieldEventData + bl ResetCyclingRoadChallengeData + bl RestartWildEncounterImmunitySteps + adds r0, r6, #0 + adds r1, r5, #0 + bl TryUpdateRandomTrainerRematches + bl DoTimeBasedEvents + bl SetSav1WeatherFromCurrMapHeader + bl ChooseAmbientCrySpecies + bl SetDefaultFlashLevel + bl Overworld_ClearSavedMusic + bl RunOnTransitionMapScript + bl InitMap + ldr r0, [r4] + bl copy_map_tileset2_to_vram_2 + ldr r0, [r4] + bl apply_map_tileset2_palette + movs r4, #6 +_08084A7E: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl ApplyWeatherGammaShiftToPal + adds r4, #1 + cmp r4, #0xc + ble _08084A7E + bl InitSecondaryTilesetAnimation + bl UpdateLocationHistoryForRoamer + bl RoamerMove + bl DoCurrentWeather + bl ResetFieldTasksArgs + bl RunOnResumeMapScript + ldr r2, _08084AC0 + ldrb r0, [r2, #0x14] + cmp r0, #0x3a + bne _08084AB4 + ldr r1, _08084AC4 + ldrh r1, [r1] + cmp r0, r1 + beq _08084AB8 +_08084AB4: + bl ShowMapNamePopup +_08084AB8: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08084AC0: .4byte 0x02036FB8 +_08084AC4: .4byte 0x02031F9C + thumb_func_end LoadMapFromCameraTransition + + thumb_func_start mli0_load_map +mli0_load_map: @ 0x08084AC8 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + bl LoadCurrentMapData + ldr r0, _08084AEC + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08084B0A + ldr r0, _08084AF0 + ldrh r1, [r0, #0x12] + ldr r0, _08084AF4 + cmp r1, r0 + bne _08084AF8 + bl LoadBattlePyramidEventObjectTemplates + b _08084B0A + .align 2, 0 +_08084AEC: .4byte 0x02031F78 +_08084AF0: .4byte 0x02036FB8 +_08084AF4: .4byte 0x00000169 +_08084AF8: + bl InTrainerHill + cmp r0, #0 + beq _08084B06 + bl sub_081D56F0 + b _08084B0A +_08084B06: + bl LoadEventObjTemplatesFromHeader +_08084B0A: + ldr r4, _08084B8C + ldrb r0, [r4, #0x17] + bl IsMapTypeOutdoors + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldrb r0, [r4, #0x17] + bl IsMapTypeIndoors + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + bl sub_080EBDB8 + bl TrySetMapSaveWarpStatus + bl ClearTempFieldEventData + bl ResetCyclingRoadChallengeData + bl RestartWildEncounterImmunitySteps + ldr r0, _08084B90 + ldr r1, [r0] + movs r0, #4 + ldrsb r0, [r1, r0] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r1, #5] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl TryUpdateRandomTrainerRematches + cmp r7, #1 + beq _08084B56 + bl DoTimeBasedEvents +_08084B56: + bl SetSav1WeatherFromCurrMapHeader + bl ChooseAmbientCrySpecies + cmp r5, #0 + beq _08084B68 + ldr r0, _08084B94 + bl FlagClear +_08084B68: + bl SetDefaultFlashLevel + bl Overworld_ClearSavedMusic + bl RunOnTransitionMapScript + bl UpdateLocationHistoryForRoamer + bl RoamerMoveToOtherLocationSet + ldrh r1, [r4, #0x12] + ldr r0, _08084B98 + cmp r1, r0 + bne _08084B9C + movs r0, #0 + bl InitBattlePyramidMap + b _08084BAE + .align 2, 0 +_08084B8C: .4byte 0x02036FB8 +_08084B90: .4byte 0x03005AEC +_08084B94: .4byte 0x00000888 +_08084B98: .4byte 0x00000169 +_08084B9C: + bl InTrainerHill + cmp r0, #0 + beq _08084BAA + bl InitTrainerHillMap + b _08084BAE +_08084BAA: + bl InitMap +_08084BAE: + cmp r7, #1 + beq _08084BC6 + cmp r6, #0 + beq _08084BC6 + ldr r1, _08084BCC + ldr r0, [r1] + ldr r1, [r1, #4] + bl UpdateTVScreensOnMap + movs r0, #1 + bl InitSecretBaseAppearance +_08084BC6: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08084BCC: .4byte 0x03005B20 + thumb_func_end mli0_load_map + + thumb_func_start ResetInitialPlayerAvatarState +ResetInitialPlayerAvatarState: @ 0x08084BD0 + ldr r1, _08084BDC + movs r0, #1 + strb r0, [r1, #1] + strb r0, [r1] + bx lr + .align 2, 0 +_08084BDC: .4byte 0x02031FA0 + thumb_func_end ResetInitialPlayerAvatarState + + thumb_func_start StoreInitialPlayerAvatarState +StoreInitialPlayerAvatarState: @ 0x08084BE0 + push {r4, lr} + bl GetPlayerFacingDirection + ldr r4, _08084BFC + strb r0, [r4, #1] + movs r0, #2 + bl TestPlayerAvatarFlags + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08084C00 + movs r0, #2 + b _08084C32 + .align 2, 0 +_08084BFC: .4byte 0x02031FA0 +_08084C00: + movs r0, #4 + bl TestPlayerAvatarFlags + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08084C10 + movs r0, #4 + b _08084C32 +_08084C10: + movs r0, #8 + bl TestPlayerAvatarFlags + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08084C20 + movs r0, #8 + b _08084C32 +_08084C20: + movs r0, #0x10 + bl TestPlayerAvatarFlags + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08084C30 + movs r0, #0x10 + b _08084C32 +_08084C30: + movs r0, #1 +_08084C32: + strb r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end StoreInitialPlayerAvatarState + + thumb_func_start GetInitialPlayerAvatarState +GetInitialPlayerAvatarState: @ 0x08084C3C + push {r4, r5, r6, r7, lr} + bl GetCurrentMapType + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + bl GetCenterScreenMetatileBehavior + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r6, _08084C88 + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl GetAdjustedInitialTransitionFlags + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, _08084C8C + ands r7, r0 + orrs r7, r1 + adds r0, r6, #0 + adds r2, r4, #0 + adds r3, r5, #0 + bl GetAdjustedInitialDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x10 + ldr r1, _08084C90 + ands r7, r1 + orrs r7, r0 + str r7, [r6] + adds r0, r6, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08084C88: .4byte 0x02031FA0 +_08084C8C: .4byte 0xFFFFFF00 +_08084C90: .4byte 0xFFFF00FF + thumb_func_end GetInitialPlayerAvatarState + + thumb_func_start GetAdjustedInitialTransitionFlags +GetAdjustedInitialTransitionFlags: @ 0x08084C94 + push {r4, r5, r6, lr} + adds r6, r0, #0 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r4, r2, #0x18 + cmp r4, #8 + beq _08084CB0 + ldr r0, _08084CB8 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08084CEA +_08084CB0: + cmp r4, #5 + bne _08084CBC + movs r0, #0x10 + b _08084CEC + .align 2, 0 +_08084CB8: .4byte 0x0000088D +_08084CBC: + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsSurfableWaterOrUnderwater + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08084CD0 + movs r0, #8 + b _08084CEC +_08084CD0: + bl Overworld_IsBikingAllowed + cmp r0, #1 + bne _08084CEA + ldrb r0, [r6] + cmp r0, #2 + bne _08084CE2 + movs r0, #2 + b _08084CEC +_08084CE2: + cmp r0, #4 + bne _08084CEA + movs r0, #4 + b _08084CEC +_08084CEA: + movs r0, #1 +_08084CEC: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetAdjustedInitialTransitionFlags + + thumb_func_start GetAdjustedInitialDirection +GetAdjustedInitialDirection: @ 0x08084CF4 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + lsls r2, r2, #0x10 + lsrs r4, r2, #0x10 + lsls r3, r3, #0x18 + lsrs r5, r3, #0x18 + ldr r0, _08084D54 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08084D14 + cmp r5, #6 + beq _08084D74 +_08084D14: + lsls r4, r4, #0x18 + lsrs r5, r4, #0x18 + adds r0, r5, #0 + bl MetatileBehavior_IsDeepSouthWarp + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08084D50 + adds r0, r5, #0 + bl MetatileBehavior_IsNonAnimDoor + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08084DAA + adds r0, r5, #0 + bl MetatileBehavior_IsDoor + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08084DAA + adds r0, r5, #0 + bl MetatileBehavior_IsSouthArrowWarp + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08084D58 +_08084D50: + movs r0, #2 + b _08084DB0 + .align 2, 0 +_08084D54: .4byte 0x0000088D +_08084D58: + adds r0, r5, #0 + bl MetatileBehavior_IsNorthArrowWarp + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08084DAA + adds r0, r5, #0 + bl MetatileBehavior_IsWestArrowWarp + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08084D78 +_08084D74: + movs r0, #4 + b _08084DB0 +_08084D78: + adds r0, r5, #0 + bl MetatileBehavior_IsEastArrowWarp + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08084D8A + movs r0, #3 + b _08084DB0 +_08084D8A: + ldrb r0, [r6] + cmp r0, #0x10 + bne _08084D94 + cmp r7, #8 + beq _08084DAE +_08084D94: + cmp r0, #8 + bne _08084D9C + cmp r7, #0x10 + beq _08084DAE +_08084D9C: + lsrs r0, r4, #0x18 + bl MetatileBehavior_IsLadder + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08084DAE +_08084DAA: + movs r0, #1 + b _08084DB0 +_08084DAE: + ldrb r0, [r6, #1] +_08084DB0: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetAdjustedInitialDirection + + thumb_func_start GetCenterScreenMetatileBehavior +GetCenterScreenMetatileBehavior: @ 0x08084DB8 + push {lr} + ldr r0, _08084DD8 + ldr r1, [r0] + movs r2, #0 + ldrsh r0, [r1, r2] + adds r0, #7 + movs r2, #2 + ldrsh r1, [r1, r2] + adds r1, #7 + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 +_08084DD8: .4byte 0x03005AEC + thumb_func_end GetCenterScreenMetatileBehavior + + thumb_func_start Overworld_IsBikingAllowed +Overworld_IsBikingAllowed: @ 0x08084DDC + push {lr} + ldr r0, _08084DF0 + ldrb r1, [r0, #0x1a] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08084DF4 + movs r0, #1 + b _08084DF6 + .align 2, 0 +_08084DF0: .4byte 0x02036FB8 +_08084DF4: + movs r0, #0 +_08084DF6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end Overworld_IsBikingAllowed + + thumb_func_start SetDefaultFlashLevel +SetDefaultFlashLevel: @ 0x08084DFC + push {lr} + ldr r0, _08084E10 + ldrb r1, [r0, #0x15] + cmp r1, #0 + bne _08084E18 + ldr r0, _08084E14 + ldr r0, [r0] + adds r0, #0x30 + strb r1, [r0] + b _08084E46 + .align 2, 0 +_08084E10: .4byte 0x02036FB8 +_08084E14: .4byte 0x03005AEC +_08084E18: + ldr r0, _08084E30 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08084E38 + ldr r0, _08084E34 + ldr r0, [r0] + adds r0, #0x30 + movs r1, #1 + strb r1, [r0] + b _08084E46 + .align 2, 0 +_08084E30: .4byte 0x00000888 +_08084E34: .4byte 0x03005AEC +_08084E38: + ldr r0, _08084E4C + ldr r1, [r0] + ldr r0, _08084E50 + ldr r0, [r0] + subs r0, #1 + adds r1, #0x30 + strb r0, [r1] +_08084E46: + pop {r0} + bx r0 + .align 2, 0 +_08084E4C: .4byte 0x03005AEC +_08084E50: .4byte 0x0852AB14 + thumb_func_end SetDefaultFlashLevel + + thumb_func_start Overworld_SetFlashLevel +Overworld_SetFlashLevel: @ 0x08084E54 + push {lr} + adds r1, r0, #0 + cmp r1, #0 + blt _08084E64 + ldr r0, _08084E74 + ldr r0, [r0] + cmp r1, r0 + ble _08084E66 +_08084E64: + movs r1, #0 +_08084E66: + ldr r0, _08084E78 + ldr r0, [r0] + adds r0, #0x30 + strb r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_08084E74: .4byte 0x0852AB14 +_08084E78: .4byte 0x03005AEC + thumb_func_end Overworld_SetFlashLevel + + thumb_func_start Overworld_GetFlashLevel +Overworld_GetFlashLevel: @ 0x08084E7C + ldr r0, _08084E88 + ldr r0, [r0] + adds r0, #0x30 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08084E88: .4byte 0x03005AEC + thumb_func_end Overworld_GetFlashLevel + + thumb_func_start SetCurrentMapLayout +SetCurrentMapLayout: @ 0x08084E8C + push {lr} + ldr r1, _08084EA0 + ldr r1, [r1] + strh r0, [r1, #0x32] + bl GetMapLayout + ldr r1, _08084EA4 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08084EA0: .4byte 0x03005AEC +_08084EA4: .4byte 0x02036FB8 + thumb_func_end SetCurrentMapLayout + + thumb_func_start sub_08084EA8 +sub_08084EA8: @ 0x08084EA8 + ldr r1, _08084EB0 + strb r0, [r1] + bx lr + .align 2, 0 +_08084EB0: .4byte 0x02031F78 + thumb_func_end sub_08084EA8 + + thumb_func_start sub_08084EB4 +sub_08084EB4: @ 0x08084EB4 + ldr r0, _08084EBC + ldrb r0, [r0] + bx lr + .align 2, 0 +_08084EBC: .4byte 0x02031F78 + thumb_func_end sub_08084EB4 + + thumb_func_start ShouldLegendaryMusicPlayAtLocation +ShouldLegendaryMusicPlayAtLocation: @ 0x08084EC0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08084F0C + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08084F14 + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + bne _08084F14 + movs r0, #1 + ldrsb r0, [r4, r0] + cmp r0, #5 + blt _08084EEC + cmp r0, #8 + ble _08084F06 + cmp r0, #0x2b + bgt _08084EEC + cmp r0, #0x27 + bge _08084F06 +_08084EEC: + ldr r0, _08084F10 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #3 + bls _08084F14 + movs r0, #1 + ldrsb r0, [r4, r0] + cmp r0, #0x2e + bgt _08084F14 + cmp r0, #0x2c + blt _08084F14 +_08084F06: + movs r0, #1 + b _08084F16 + .align 2, 0 +_08084F0C: .4byte 0x0000088A +_08084F10: .4byte 0x0000405E +_08084F14: + movs r0, #0 +_08084F16: + pop {r4} + pop {r1} + bx r1 + thumb_func_end ShouldLegendaryMusicPlayAtLocation + + thumb_func_start NoMusicInSotopolisWithLegendaries +NoMusicInSotopolisWithLegendaries: @ 0x08084F1C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08084F44 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bne _08084F3E + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + bne _08084F3E + movs r0, #1 + ldrsb r0, [r4, r0] + cmp r0, #7 + beq _08084F48 +_08084F3E: + movs r0, #0 + b _08084F4A + .align 2, 0 +_08084F44: .4byte 0x000040CA +_08084F48: + movs r0, #1 +_08084F4A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end NoMusicInSotopolisWithLegendaries + + thumb_func_start IsInfiltratedWeatherInstitute +IsInfiltratedWeatherInstitute: @ 0x08084F50 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08084F74 + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08084F6E + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0x20 + bne _08084F6E + ldrb r0, [r4, #1] + cmp r0, #1 + bls _08084F78 +_08084F6E: + movs r0, #0 + b _08084F7A + .align 2, 0 +_08084F74: .4byte 0x000040B3 +_08084F78: + movs r0, #1 +_08084F7A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end IsInfiltratedWeatherInstitute + + thumb_func_start IsInflitratedSpaceCenter +IsInflitratedSpaceCenter: @ 0x08084F80 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08084FB8 + adds r0, r4, #0 + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08084FB4 + adds r0, r4, #0 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #2 + bhi _08084FB4 + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #0xe + bne _08084FB4 + ldrb r0, [r5, #1] + subs r0, #9 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _08084FBC +_08084FB4: + movs r0, #0 + b _08084FBE + .align 2, 0 +_08084FB8: .4byte 0x0000405D +_08084FBC: + movs r0, #1 +_08084FBE: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end IsInflitratedSpaceCenter + + thumb_func_start GetLocationMusic +GetLocationMusic: @ 0x08084FC4 + push {r4, lr} + adds r4, r0, #0 + bl NoMusicInSotopolisWithLegendaries + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bne _08084FDC + ldr r0, _08084FD8 + b _08085036 + .align 2, 0 +_08084FD8: .4byte 0x0000FFFF +_08084FDC: + adds r0, r4, #0 + bl ShouldLegendaryMusicPlayAtLocation + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bne _08084FF4 + ldr r0, _08084FF0 + b _08085036 + .align 2, 0 +_08084FF0: .4byte 0x000001BB +_08084FF4: + adds r0, r4, #0 + bl IsInflitratedSpaceCenter + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bne _0808500C + ldr r0, _08085008 + b _08085036 + .align 2, 0 +_08085008: .4byte 0x000001B9 +_0808500C: + adds r0, r4, #0 + bl IsInfiltratedWeatherInstitute + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + beq _08085032 + movs r0, #0 + ldrsb r0, [r4, r0] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + ldrsb r1, [r4, r1] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl Overworld_GetMapHeaderByGroupAndId + ldrh r0, [r0, #0x10] + b _08085036 +_08085032: + movs r0, #0xcb + lsls r0, r0, #1 +_08085036: + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetLocationMusic + + thumb_func_start GetCurrLocationDefaultMusic +GetCurrLocationDefaultMusic: @ 0x0808503C + push {r4, lr} + ldr r0, _0808505C + ldr r0, [r0] + ldrh r1, [r0, #4] + movs r0, #0xd0 + lsls r0, r0, #5 + cmp r1, r0 + bne _08085064 + bl GetSav1Weather + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #8 + bne _08085064 + ldr r0, _08085060 + b _08085098 + .align 2, 0 +_0808505C: .4byte 0x03005AEC +_08085060: .4byte 0x00000199 +_08085064: + ldr r4, _0808507C + ldr r0, [r4] + adds r0, #4 + bl GetLocationMusic + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r0, _08085080 + cmp r1, r0 + beq _08085084 + adds r0, r1, #0 + b _08085098 + .align 2, 0 +_0808507C: .4byte 0x03005AEC +_08085080: .4byte 0x00007FFF +_08085084: + ldr r0, [r4] + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0x17 + ble _08085094 + movs r0, #0xc9 + lsls r0, r0, #1 + b _08085098 +_08085094: + movs r0, #0xb4 + lsls r0, r0, #1 +_08085098: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetCurrLocationDefaultMusic + + thumb_func_start GetWarpDestinationMusic +GetWarpDestinationMusic: @ 0x080850A0 + push {lr} + ldr r0, _080850B8 + bl GetLocationMusic + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r0, _080850BC + cmp r1, r0 + beq _080850C0 + adds r0, r1, #0 + b _080850DC + .align 2, 0 +_080850B8: .4byte 0x02031F84 +_080850BC: .4byte 0x00007FFF +_080850C0: + ldr r0, _080850D4 + ldr r0, [r0] + ldrh r1, [r0, #4] + movs r0, #0x80 + lsls r0, r0, #2 + cmp r1, r0 + beq _080850D8 + subs r0, #0x6e + b _080850DC + .align 2, 0 +_080850D4: .4byte 0x03005AEC +_080850D8: + movs r0, #0xb4 + lsls r0, r0, #1 +_080850DC: + pop {r1} + bx r1 + thumb_func_end GetWarpDestinationMusic + + thumb_func_start Overworld_ResetMapMusic +Overworld_ResetMapMusic: @ 0x080850E0 + push {lr} + bl ResetMapMusic + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Overworld_ResetMapMusic + + thumb_func_start Overworld_PlaySpecialMapMusic +Overworld_PlaySpecialMapMusic: @ 0x080850EC + push {r4, lr} + bl GetCurrLocationDefaultMusic + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, _08085110 + cmp r4, r0 + beq _0808513E + ldr r0, _08085114 + cmp r4, r0 + beq _0808513E + ldr r0, _08085118 + ldr r1, [r0] + ldrh r0, [r1, #0x2c] + cmp r0, #0 + beq _0808511C + adds r4, r0, #0 + b _0808513E + .align 2, 0 +_08085110: .4byte 0x000001BB +_08085114: .4byte 0x0000FFFF +_08085118: .4byte 0x03005AEC +_0808511C: + bl GetCurrentMapType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + bne _08085130 + ldr r4, _0808512C + b _0808513E + .align 2, 0 +_0808512C: .4byte 0x0000019B +_08085130: + movs r0, #8 + bl TestPlayerAvatarFlags + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808513E + ldr r4, _08085158 +_0808513E: + bl GetCurrentMapMusic + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r4, r0 + beq _08085150 + adds r0, r4, #0 + bl PlayNewMapMusic +_08085150: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08085158: .4byte 0x0000016D + thumb_func_end Overworld_PlaySpecialMapMusic + + thumb_func_start Overworld_SetSavedMusic +Overworld_SetSavedMusic: @ 0x0808515C + ldr r1, _08085164 + ldr r1, [r1] + strh r0, [r1, #0x2c] + bx lr + .align 2, 0 +_08085164: .4byte 0x03005AEC + thumb_func_end Overworld_SetSavedMusic + + thumb_func_start Overworld_ClearSavedMusic +Overworld_ClearSavedMusic: @ 0x08085168 + ldr r0, _08085174 + ldr r1, [r0] + movs r0, #0 + strh r0, [r1, #0x2c] + bx lr + .align 2, 0 +_08085174: .4byte 0x03005AEC + thumb_func_end Overworld_ClearSavedMusic + + thumb_func_start sub_08085178 +sub_08085178: @ 0x08085178 + push {r4, r5, r6, lr} + ldr r0, _080851DC + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080851F8 + bl GetWarpDestinationMusic + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + bl GetCurrentMapMusic + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, _080851E0 + cmp r4, r0 + beq _080851BE + ldr r0, _080851E4 + cmp r4, r0 + beq _080851BE + ldr r0, _080851E8 + cmp r5, r0 + beq _080851F8 + ldr r6, _080851EC + cmp r5, r6 + beq _080851F8 + movs r0, #8 + bl TestPlayerAvatarFlags + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080851BE + adds r4, r6, #0 +_080851BE: + cmp r4, r5 + beq _080851F8 + movs r0, #6 + bl TestPlayerAvatarFlags + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080851F0 + adds r0, r4, #0 + movs r1, #4 + movs r2, #4 + bl FadeOutAndFadeInNewMapMusic + b _080851F8 + .align 2, 0 +_080851DC: .4byte 0x00004001 +_080851E0: .4byte 0x000001BB +_080851E4: .4byte 0x0000FFFF +_080851E8: .4byte 0x0000019B +_080851EC: .4byte 0x0000016D +_080851F0: + adds r0, r4, #0 + movs r1, #8 + bl FadeOutAndPlayNewMapMusic +_080851F8: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08085178 + + thumb_func_start Overworld_ChangeMusicToDefault +Overworld_ChangeMusicToDefault: @ 0x08085200 + push {r4, lr} + bl GetCurrentMapMusic + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + bl GetCurrLocationDefaultMusic + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r4, r0 + beq _08085226 + bl GetCurrLocationDefaultMusic + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #8 + bl FadeOutAndPlayNewMapMusic +_08085226: + pop {r4} + pop {r0} + bx r0 + thumb_func_end Overworld_ChangeMusicToDefault + + thumb_func_start Overworld_ChangeMusicTo +Overworld_ChangeMusicTo: @ 0x0808522C + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + bl GetCurrentMapMusic + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, r4 + beq _0808524C + ldr r0, _08085254 + cmp r1, r0 + beq _0808524C + adds r0, r4, #0 + movs r1, #8 + bl FadeOutAndPlayNewMapMusic +_0808524C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08085254: .4byte 0x000001BB + thumb_func_end Overworld_ChangeMusicTo + + thumb_func_start GetMapMusicFadeoutSpeed +GetMapMusicFadeoutSpeed: @ 0x08085258 + push {lr} + bl GetDestinationWarpMapHeader + ldrb r0, [r0, #0x17] + bl IsMapTypeIndoors + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08085270 + movs r0, #4 + b _08085272 +_08085270: + movs r0, #2 +_08085272: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetMapMusicFadeoutSpeed + + thumb_func_start TryFadeOutOldMapMusic +TryFadeOutOldMapMusic: @ 0x08085278 + push {r4, r5, lr} + bl GetCurrentMapMusic + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + bl GetWarpDestinationMusic + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, _080852EC + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080852E6 + bl GetCurrentMapMusic + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r4, r0 + beq _080852E6 + ldr r0, _080852F0 + cmp r5, r0 + bne _080852DA + ldr r0, _080852F4 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #2 + bne _080852DA + ldr r0, _080852F8 + ldr r0, [r0] + ldr r1, _080852FC + ldrh r2, [r0, #4] + movs r0, #0xe0 + lsls r0, r0, #3 + cmp r2, r0 + bne _080852DA + ldr r3, _08085300 + ldrh r0, [r3] + ands r1, r0 + cmp r1, r2 + bne _080852DA + ldr r1, [r3, #4] + ldr r0, _08085304 + cmp r1, r0 + beq _080852E6 +_080852DA: + bl GetMapMusicFadeoutSpeed + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl FadeOutMapMusic +_080852E6: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080852EC: .4byte 0x00004001 +_080852F0: .4byte 0x0000016D +_080852F4: .4byte 0x000040CA +_080852F8: .4byte 0x03005AEC +_080852FC: .4byte 0x0000FFFF +_08085300: .4byte 0x02031F84 +_08085304: .4byte 0x0035001D + thumb_func_end TryFadeOutOldMapMusic + + thumb_func_start BGMusicStopped +BGMusicStopped: @ 0x08085308 + push {lr} + bl IsNotWaitingForBGMStop + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end BGMusicStopped + + thumb_func_start Overworld_FadeOutMapMusic +Overworld_FadeOutMapMusic: @ 0x08085318 + push {lr} + movs r0, #4 + bl FadeOutMapMusic + pop {r0} + bx r0 + thumb_func_end Overworld_FadeOutMapMusic + + thumb_func_start PlayAmbientCry +PlayAmbientCry: @ 0x08085324 + push {r4, lr} + sub sp, #4 + mov r4, sp + adds r4, #2 + mov r0, sp + adds r1, r4, #0 + bl PlayerGetDestCoords + ldr r0, _0808539C + ldrb r0, [r0] + cmp r0, #1 + bne _08085358 + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsSurfableWaterOrUnderwater + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08085394 +_08085358: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x58 + bl __umodsi3 + adds r4, r0, #0 + adds r4, #0xd4 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x1e + bl __umodsi3 + adds r2, r0, #0 + adds r2, #0x32 + ldr r0, _080853A0 + ldrh r0, [r0] + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r1, r4, #0 + movs r3, #1 + bl PlayCry2 +_08085394: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808539C: .4byte 0x02031FA6 +_080853A0: .4byte 0x02031FA4 + thumb_func_end PlayAmbientCry + + thumb_func_start UpdateAmbientCry +UpdateAmbientCry: @ 0x080853A4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + adds r7, r1, #0 + movs r1, #0 + ldrsh r0, [r6, r1] + cmp r0, #4 + bhi _08085488 + lsls r0, r0, #2 + ldr r1, _080853C4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080853C4: .4byte 0x080853C8 +_080853C8: @ jump table + .4byte _080853DC @ case 0 + .4byte _080853F0 @ case 1 + .4byte _0808540C @ case 2 + .4byte _08085474 @ case 3 + .4byte _08085488 @ case 4 +_080853DC: + ldr r0, _080853E8 + ldrh r0, [r0] + cmp r0, #0 + bne _080853EC + movs r0, #4 + b _08085486 + .align 2, 0 +_080853E8: .4byte 0x02031FA4 +_080853EC: + movs r0, #1 + b _08085486 +_080853F0: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x96 + lsls r1, r1, #4 + bl __umodsi3 + movs r1, #0x96 + lsls r1, r1, #3 + adds r0, r0, r1 + strh r0, [r7] + movs r0, #3 + b _08085486 +_0808540C: + movs r0, #1 + mov sb, r0 + bl CalculatePlayerPartyCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r5, #0 + b _08085424 +_0808541E: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_08085424: + cmp r5, r8 + bhs _0808544C + movs r0, #0x64 + muls r0, r5, r0 + ldr r4, _08085470 + adds r0, r0, r4 + movs r1, #6 + bl GetMonData + cmp r0, #0 + bne _0808541E + adds r0, r4, #0 + bl GetMonAbility + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x44 + bne _0808541E + movs r1, #2 + mov sb, r1 +_0808544C: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r4, #0x96 + lsls r4, r4, #3 + adds r1, r4, #0 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r0, r0, r4 + mov r1, sb + bl __divsi3 + strh r0, [r7] + movs r0, #3 + b _08085486 + .align 2, 0 +_08085470: .4byte 0x02024190 +_08085474: + ldrh r0, [r7] + subs r0, #1 + strh r0, [r7] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08085488 + bl PlayAmbientCry + movs r0, #2 +_08085486: + strh r0, [r6] +_08085488: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end UpdateAmbientCry + + thumb_func_start ChooseAmbientCrySpecies +ChooseAmbientCrySpecies: @ 0x08085494 + push {lr} + ldr r0, _080854BC + ldr r0, [r0] + ldrh r1, [r0, #4] + movs r0, #0xb4 + lsls r0, r0, #6 + cmp r1, r0 + bne _080854C4 + bl IsMirageIslandPresent + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080854C4 + ldr r1, _080854C0 + movs r0, #1 + strb r0, [r1] + bl GetLocalWaterMon + b _080854CA + .align 2, 0 +_080854BC: .4byte 0x03005AEC +_080854C0: .4byte 0x02031FA6 +_080854C4: + ldr r0, _080854D4 + bl GetLocalWildMon +_080854CA: + ldr r1, _080854D8 + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080854D4: .4byte 0x02031FA6 +_080854D8: .4byte 0x02031FA4 + thumb_func_end ChooseAmbientCrySpecies + + thumb_func_start GetMapTypeByGroupAndId +GetMapTypeByGroupAndId: @ 0x080854DC + push {lr} + lsls r0, r0, #0x18 + asrs r0, r0, #8 + lsrs r0, r0, #0x10 + lsls r1, r1, #0x18 + asrs r1, r1, #8 + lsrs r1, r1, #0x10 + bl Overworld_GetMapHeaderByGroupAndId + ldrb r0, [r0, #0x17] + pop {r1} + bx r1 + thumb_func_end GetMapTypeByGroupAndId + + thumb_func_start GetMapTypeByWarpData +GetMapTypeByWarpData: @ 0x080854F4 + push {lr} + movs r2, #0 + ldrsb r2, [r0, r2] + movs r1, #1 + ldrsb r1, [r0, r1] + adds r0, r2, #0 + bl GetMapTypeByGroupAndId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + thumb_func_end GetMapTypeByWarpData + + thumb_func_start GetCurrentMapType +GetCurrentMapType: @ 0x0808550C + push {lr} + ldr r0, _08085520 + ldr r0, [r0] + adds r0, #4 + bl GetMapTypeByWarpData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_08085520: .4byte 0x03005AEC + thumb_func_end GetCurrentMapType + + thumb_func_start GetLastUsedWarpMapType +GetLastUsedWarpMapType: @ 0x08085524 + push {lr} + ldr r0, _08085534 + bl GetMapTypeByWarpData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_08085534: .4byte 0x02031F7C + thumb_func_end GetLastUsedWarpMapType + + thumb_func_start IsMapTypeOutdoors +IsMapTypeOutdoors: @ 0x08085538 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + beq _08085552 + cmp r0, #1 + beq _08085552 + cmp r0, #5 + beq _08085552 + cmp r0, #2 + beq _08085552 + cmp r0, #6 + bne _08085556 +_08085552: + movs r0, #1 + b _08085558 +_08085556: + movs r0, #0 +_08085558: + pop {r1} + bx r1 + thumb_func_end IsMapTypeOutdoors + + thumb_func_start Overworld_MapTypeAllowsTeleportAndFly +Overworld_MapTypeAllowsTeleportAndFly: @ 0x0808555C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + beq _08085572 + cmp r0, #1 + beq _08085572 + cmp r0, #6 + beq _08085572 + cmp r0, #2 + bne _08085576 +_08085572: + movs r0, #1 + b _08085578 +_08085576: + movs r0, #0 +_08085578: + pop {r1} + bx r1 + thumb_func_end Overworld_MapTypeAllowsTeleportAndFly + + thumb_func_start IsMapTypeIndoors +IsMapTypeIndoors: @ 0x0808557C + push {lr} + lsls r0, r0, #0x18 + movs r1, #0xf8 + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _08085590 + movs r0, #0 + b _08085592 +_08085590: + movs r0, #1 +_08085592: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsMapTypeIndoors + + thumb_func_start GetSavedWarpRegionMapSectionId +GetSavedWarpRegionMapSectionId: @ 0x08085598 + push {lr} + ldr r0, _080855BC + ldr r1, [r0] + movs r0, #0x14 + ldrsb r0, [r1, r0] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r1, #0x15] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl Overworld_GetMapHeaderByGroupAndId + ldrb r0, [r0, #0x14] + pop {r1} + bx r1 + .align 2, 0 +_080855BC: .4byte 0x03005AEC + thumb_func_end GetSavedWarpRegionMapSectionId + + thumb_func_start GetCurrentRegionMapSectionId +GetCurrentRegionMapSectionId: @ 0x080855C0 + push {lr} + ldr r0, _080855E4 + ldr r1, [r0] + movs r0, #4 + ldrsb r0, [r1, r0] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r1, #5] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl Overworld_GetMapHeaderByGroupAndId + ldrb r0, [r0, #0x14] + pop {r1} + bx r1 + .align 2, 0 +_080855E4: .4byte 0x03005AEC + thumb_func_end GetCurrentRegionMapSectionId + + thumb_func_start GetCurrentMapBattleScene +GetCurrentMapBattleScene: @ 0x080855E8 + push {lr} + ldr r0, _0808560C + ldr r1, [r0] + movs r0, #4 + ldrsb r0, [r1, r0] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r1, #5] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl Overworld_GetMapHeaderByGroupAndId + ldrb r0, [r0, #0x1b] + pop {r1} + bx r1 + .align 2, 0 +_0808560C: .4byte 0x03005AEC + thumb_func_end GetCurrentMapBattleScene + + thumb_func_start InitOverworldBgs +InitOverworldBgs: @ 0x08085610 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + ldr r1, _0808568C + movs r0, #0 + movs r2, #4 + bl InitBgsFromTemplates + movs r0, #1 + movs r1, #5 + movs r2, #1 + bl SetBgAttribute + movs r0, #2 + movs r1, #5 + movs r2, #1 + bl SetBgAttribute + movs r0, #3 + movs r1, #5 + movs r2, #1 + bl SetBgAttribute + ldr r0, _08085690 + mov r8, r0 + movs r4, #0x80 + lsls r4, r4, #4 + adds r0, r4, #0 + bl AllocZeroed + mov r1, r8 + str r0, [r1] + ldr r6, _08085694 + adds r0, r4, #0 + bl AllocZeroed + str r0, [r6] + ldr r5, _08085698 + adds r0, r4, #0 + bl AllocZeroed + str r0, [r5] + mov r0, r8 + ldr r1, [r0] + movs r0, #1 + bl SetBgTilemapBuffer + ldr r1, [r6] + movs r0, #2 + bl SetBgTilemapBuffer + ldr r1, [r5] + movs r0, #3 + bl SetBgTilemapBuffer + bl InitStandardTextBoxWindows + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0808568C: .4byte 0x0830FCF8 +_08085690: .4byte 0x03005B00 +_08085694: .4byte 0x03005AFC +_08085698: .4byte 0x03005B04 + thumb_func_end InitOverworldBgs + + thumb_func_start CleanupOverworldWindowsAndTilemaps +CleanupOverworldWindowsAndTilemaps: @ 0x0808569C + push {r4, lr} + bl ClearMirageTowerPulseBlendEffect + bl FreeAllOverworldWindowBuffers + ldr r4, _080856DC + ldr r0, [r4] + cmp r0, #0 + beq _080856B6 + bl Free + movs r0, #0 + str r0, [r4] +_080856B6: + ldr r4, _080856E0 + ldr r0, [r4] + cmp r0, #0 + beq _080856C6 + bl Free + movs r0, #0 + str r0, [r4] +_080856C6: + ldr r4, _080856E4 + ldr r0, [r4] + cmp r0, #0 + beq _080856D6 + bl Free + movs r0, #0 + str r0, [r4] +_080856D6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080856DC: .4byte 0x03005B04 +_080856E0: .4byte 0x03005AFC +_080856E4: .4byte 0x03005B00 + thumb_func_end CleanupOverworldWindowsAndTilemaps + + thumb_func_start CB2_OverworldBasic +CB2_OverworldBasic: @ 0x080856E8 + push {lr} + bl SafariZoneRetirePrompt + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CB2_OverworldBasic + + thumb_func_start IsUpdateLinkStateCBActive +IsUpdateLinkStateCBActive: @ 0x080856F4 + push {lr} + ldr r0, _08085704 + ldr r1, [r0] + ldr r0, _08085708 + cmp r1, r0 + beq _0808570C + movs r0, #0 + b _0808570E + .align 2, 0 +_08085704: .4byte 0x03002360 +_08085708: .4byte 0x0808653D +_0808570C: + movs r0, #1 +_0808570E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsUpdateLinkStateCBActive + + thumb_func_start DoCB1_Overworld +DoCB1_Overworld: @ 0x08085714 + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r5, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r4, r1, #0 + bl sub_0808AEDC + mov r6, sp + mov r0, sp + bl FieldClearPlayerInput + mov r0, sp + adds r1, r5, #0 + adds r2, r4, #0 + bl FieldGetPlayerInput + bl ScriptContext2_IsEnabled + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08085762 + mov r0, sp + bl ProcessPlayerFieldInput + cmp r0, #1 + bne _08085758 + bl ScriptContext2_Enable + bl HideMapNamePopUpWindow + b _08085762 +_08085758: + ldrb r0, [r6, #2] + adds r1, r5, #0 + adds r2, r4, #0 + bl player_step +_08085762: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end DoCB1_Overworld + + thumb_func_start CB1_Overworld +CB1_Overworld: @ 0x0808576C + push {lr} + ldr r2, _08085784 + ldr r1, [r2, #4] + ldr r0, _08085788 + cmp r1, r0 + bne _08085780 + ldrh r0, [r2, #0x2e] + ldrh r1, [r2, #0x2c] + bl DoCB1_Overworld +_08085780: + pop {r0} + bx r0 + .align 2, 0 +_08085784: .4byte 0x03002360 +_08085788: .4byte 0x080857C5 + thumb_func_end CB1_Overworld + + thumb_func_start OverworldBasic +OverworldBasic: @ 0x0808578C + push {lr} + bl ScriptContext2_RunScript + bl RunTasks + bl AnimateSprites + bl CameraUpdate + bl UpdateCameraPanning + bl BuildOamBuffer + bl UpdatePaletteFade + bl UpdateTilesetAnimations + bl do_scheduled_bg_tilemap_copies_to_vram + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end OverworldBasic + + thumb_func_start ResetSafariZoneFlag_ +ResetSafariZoneFlag_: @ 0x080857B8 + push {lr} + bl OverworldBasic + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ResetSafariZoneFlag_ + + thumb_func_start CB2_Overworld +CB2_Overworld: @ 0x080857C4 + push {r4, lr} + ldr r0, _080857EC + ldrb r0, [r0, #7] + lsrs r0, r0, #7 + adds r4, r0, #0 + cmp r4, #0 + beq _080857D8 + movs r0, #0 + bl SetVBlankCallback +_080857D8: + bl OverworldBasic + cmp r4, #0 + beq _080857E4 + bl SetFieldVBlankCallback +_080857E4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080857EC: .4byte 0x02037C74 + thumb_func_end CB2_Overworld + + thumb_func_start SetMainCallback1 +SetMainCallback1: @ 0x080857F0 + ldr r1, _080857F8 + str r0, [r1] + bx lr + .align 2, 0 +_080857F8: .4byte 0x03002360 + thumb_func_end SetMainCallback1 + + thumb_func_start SetUnusedCallback +SetUnusedCallback: @ 0x080857FC + ldr r1, _08085804 + str r0, [r1] + bx lr + .align 2, 0 +_08085804: .4byte 0x03000E0C + thumb_func_end SetUnusedCallback + + thumb_func_start map_post_load_hook_exec +map_post_load_hook_exec: @ 0x08085808 + push {r4, lr} + ldr r4, _08085820 + ldr r0, [r4] + cmp r0, #0 + beq _08085834 + bl _call_via_r0 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08085824 + movs r0, #0 + b _08085854 + .align 2, 0 +_08085820: .4byte 0x03005B10 +_08085824: + movs r1, #0 + str r1, [r4] + ldr r0, _08085830 + str r1, [r0] + b _08085852 + .align 2, 0 +_08085830: .4byte 0x03005B0C +_08085834: + ldr r0, _08085844 + ldr r0, [r0] + cmp r0, #0 + beq _08085848 + bl _call_via_r0 + b _0808584C + .align 2, 0 +_08085844: .4byte 0x03005B0C +_08085848: + bl mapldr_default +_0808584C: + ldr r1, _0808585C + movs r0, #0 + str r0, [r1] +_08085852: + movs r0, #1 +_08085854: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0808585C: .4byte 0x03005B0C + thumb_func_end map_post_load_hook_exec + + thumb_func_start CB2_NewGame +CB2_NewGame: @ 0x08085860 + push {lr} + bl FieldClearVBlankHBlankCallbacks + bl StopMapMusic + bl CB2_OverworldBasic + bl NewGameInitData + bl ResetInitialPlayerAvatarState + bl PlayTimeCounter_Start + bl ScriptContext1_Init + bl ScriptContext2_Disable + ldr r1, _080858A8 + ldr r0, _080858AC + str r0, [r1] + ldr r1, _080858B0 + movs r0, #0 + str r0, [r1] + ldr r0, _080858B4 + bl do_load_map_stuff_loop + bl SetFieldVBlankCallback + ldr r0, _080858B8 + bl SetMainCallback1 + ldr r0, _080858BC + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080858A8: .4byte 0x03005B0C +_080858AC: .4byte 0x080FBD51 +_080858B0: .4byte 0x03005B10 +_080858B4: .4byte 0x03002798 +_080858B8: .4byte 0x0808576D +_080858BC: .4byte 0x080857C5 + thumb_func_end CB2_NewGame + + thumb_func_start CB2_WhiteOut +CB2_WhiteOut: @ 0x080858C0 + push {lr} + sub sp, #4 + ldr r1, _08085920 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x77 + bls _08085918 + bl FieldClearVBlankHBlankCallbacks + bl StopMapMusic + bl CB2_OverworldBasic + bl DoWhiteOut + bl ResetInitialPlayerAvatarState + bl ScriptContext1_Init + bl ScriptContext2_Disable + ldr r1, _08085924 + ldr r0, _08085928 + str r0, [r1] + mov r1, sp + movs r0, #0 + strb r0, [r1] + mov r0, sp + bl do_load_map_stuff_loop + bl SetFieldVBlankCallback + ldr r0, _0808592C + bl SetMainCallback1 + ldr r0, _08085930 + bl SetMainCallback2 +_08085918: + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_08085920: .4byte 0x03002360 +_08085924: .4byte 0x03005B0C +_08085928: .4byte 0x080AECC5 +_0808592C: .4byte 0x0808576D +_08085930: .4byte 0x080857C5 + thumb_func_end CB2_WhiteOut + + thumb_func_start CB2_LoadMap +CB2_LoadMap: @ 0x08085934 + push {lr} + bl FieldClearVBlankHBlankCallbacks + bl ScriptContext1_Init + bl ScriptContext2_Disable + movs r0, #0 + bl SetMainCallback1 + ldr r0, _08085958 + bl SetMainCallback2 + ldr r1, _0808595C + ldr r0, _08085960 + str r0, [r1, #8] + pop {r0} + bx r0 + .align 2, 0 +_08085958: .4byte 0x08137271 +_0808595C: .4byte 0x03002360 +_08085960: .4byte 0x08085965 + thumb_func_end CB2_LoadMap + + thumb_func_start CB2_LoadMap2 +CB2_LoadMap2: @ 0x08085964 + push {lr} + ldr r0, _08085980 + bl do_load_map_stuff_loop + bl SetFieldVBlankCallback + ldr r0, _08085984 + bl SetMainCallback1 + ldr r0, _08085988 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_08085980: .4byte 0x03002798 +_08085984: .4byte 0x0808576D +_08085988: .4byte 0x080857C5 + thumb_func_end CB2_LoadMap2 + + thumb_func_start sub_0808598C +sub_0808598C: @ 0x0808598C + push {r4, lr} + ldr r0, _080859D0 + movs r1, #0x87 + lsls r1, r1, #3 + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, #0 + bne _080859AE + bl FieldClearVBlankHBlankCallbacks + bl ScriptContext1_Init + bl ScriptContext2_Disable + movs r0, #0 + bl SetMainCallback1 +_080859AE: + adds r0, r4, #0 + movs r1, #1 + bl load_map_stuff + cmp r0, #0 + beq _080859CA + bl SetFieldVBlankCallback + ldr r0, _080859D4 + bl SetMainCallback1 + ldr r0, _080859D8 + bl SetMainCallback2 +_080859CA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080859D0: .4byte 0x03002360 +_080859D4: .4byte 0x0808576D +_080859D8: .4byte 0x080857C5 + thumb_func_end sub_0808598C + + thumb_func_start sub_080859DC +sub_080859DC: @ 0x080859DC + push {lr} + bl FieldClearVBlankHBlankCallbacks + ldr r0, _080859F4 + ldr r1, _080859F8 + str r1, [r0] + ldr r0, _080859FC + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080859F4: .4byte 0x03005B0C +_080859F8: .4byte 0x080AEC11 +_080859FC: .4byte 0x08085A01 + thumb_func_end sub_080859DC + + thumb_func_start c2_80567AC +c2_80567AC: @ 0x08085A00 + push {lr} + ldr r0, _08085A24 + bl map_loading_iteration_3 + cmp r0, #0 + beq _08085A20 + bl SetFieldVBlankCallback + ldr r0, _08085A28 + bl SetMainCallback1 + bl ResetAllMultiplayerState + ldr r0, _08085A2C + bl SetMainCallback2 +_08085A20: + pop {r0} + bx r0 + .align 2, 0 +_08085A24: .4byte 0x03002798 +_08085A28: .4byte 0x0808653D +_08085A2C: .4byte 0x080857C5 + thumb_func_end c2_80567AC + + thumb_func_start CB2_ReturnToField +CB2_ReturnToField: @ 0x08085A30 + push {lr} + bl IsUpdateLinkStateCBActive + cmp r0, #1 + bne _08085A48 + ldr r0, _08085A44 + bl SetMainCallback2 + b _08085A52 + .align 2, 0 +_08085A44: .4byte 0x08085A81 +_08085A48: + bl FieldClearVBlankHBlankCallbacks + ldr r0, _08085A58 + bl SetMainCallback2 +_08085A52: + pop {r0} + bx r0 + .align 2, 0 +_08085A58: .4byte 0x08085A5D + thumb_func_end CB2_ReturnToField + + thumb_func_start CB2_ReturnToFieldLocal +CB2_ReturnToFieldLocal: @ 0x08085A5C + push {lr} + ldr r0, _08085A78 + bl sub_08085F9C + cmp r0, #0 + beq _08085A72 + bl SetFieldVBlankCallback + ldr r0, _08085A7C + bl SetMainCallback2 +_08085A72: + pop {r0} + bx r0 + .align 2, 0 +_08085A78: .4byte 0x03002798 +_08085A7C: .4byte 0x080857C5 + thumb_func_end CB2_ReturnToFieldLocal + + thumb_func_start CB2_ReturnToFieldLink +CB2_ReturnToFieldLink: @ 0x08085A80 + push {lr} + bl sub_08086EFC + cmp r0, #0 + bne _08085A9A + ldr r0, _08085AA0 + bl map_loading_iteration_2_link + cmp r0, #0 + beq _08085A9A + ldr r0, _08085AA4 + bl SetMainCallback2 +_08085A9A: + pop {r0} + bx r0 + .align 2, 0 +_08085AA0: .4byte 0x03002798 +_08085AA4: .4byte 0x080857C5 + thumb_func_end CB2_ReturnToFieldLink + + thumb_func_start CB2_ReturnToFieldFromMultiplayer +CB2_ReturnToFieldFromMultiplayer: @ 0x08085AA8 + push {lr} + bl FieldClearVBlankHBlankCallbacks + bl StopMapMusic + ldr r0, _08085ACC + bl SetMainCallback1 + bl ResetAllMultiplayerState + ldr r0, _08085AD0 + ldrb r0, [r0] + cmp r0, #0 + beq _08085ADC + ldr r1, _08085AD4 + ldr r0, _08085AD8 + b _08085AE0 + .align 2, 0 +_08085ACC: .4byte 0x0808653D +_08085AD0: .4byte 0x0300319C +_08085AD4: .4byte 0x03005B0C +_08085AD8: .4byte 0x080AEC11 +_08085ADC: + ldr r1, _08085AF4 + ldr r0, _08085AF8 +_08085AE0: + str r0, [r1] + bl ScriptContext1_Init + bl ScriptContext2_Disable + bl CB2_ReturnToField + pop {r0} + bx r0 + .align 2, 0 +_08085AF4: .4byte 0x03005B0C +_08085AF8: .4byte 0x080AEB11 + thumb_func_end CB2_ReturnToFieldFromMultiplayer + + thumb_func_start CB2_ReturnToFieldWithOpenMenu +CB2_ReturnToFieldWithOpenMenu: @ 0x08085AFC + push {lr} + bl FieldClearVBlankHBlankCallbacks + ldr r1, _08085B10 + ldr r0, _08085B14 + str r0, [r1] + bl CB2_ReturnToField + pop {r0} + bx r0 + .align 2, 0 +_08085B10: .4byte 0x03005B10 +_08085B14: .4byte 0x080AEFA1 + thumb_func_end CB2_ReturnToFieldWithOpenMenu + + thumb_func_start CB2_ReturnToFieldContinueScript +CB2_ReturnToFieldContinueScript: @ 0x08085B18 + push {lr} + bl FieldClearVBlankHBlankCallbacks + ldr r1, _08085B2C + ldr r0, _08085B30 + str r0, [r1] + bl CB2_ReturnToField + pop {r0} + bx r0 + .align 2, 0 +_08085B2C: .4byte 0x03005B0C +_08085B30: .4byte 0x080AEA85 + thumb_func_end CB2_ReturnToFieldContinueScript + + thumb_func_start CB2_ReturnToFieldContinueScriptPlayMapMusic +CB2_ReturnToFieldContinueScriptPlayMapMusic: @ 0x08085B34 + push {lr} + bl FieldClearVBlankHBlankCallbacks + ldr r1, _08085B48 + ldr r0, _08085B4C + str r0, [r1] + bl CB2_ReturnToField + pop {r0} + bx r0 + .align 2, 0 +_08085B48: .4byte 0x03005B0C +_08085B4C: .4byte 0x080AEA65 + thumb_func_end CB2_ReturnToFieldContinueScriptPlayMapMusic + + thumb_func_start sub_08085B50 +sub_08085B50: @ 0x08085B50 + push {lr} + bl FieldClearVBlankHBlankCallbacks + ldr r1, _08085B64 + ldr r0, _08085B68 + str r0, [r1] + bl CB2_ReturnToField + pop {r0} + bx r0 + .align 2, 0 +_08085B64: .4byte 0x03005B0C +_08085B68: .4byte 0x080AECC5 + thumb_func_end sub_08085B50 + + thumb_func_start sub_08085B6C +sub_08085B6C: @ 0x08085B6C + push {lr} + ldr r0, _08085B94 + ldrb r1, [r0, #0x1a] + movs r0, #0xf8 + ands r0, r1 + cmp r0, #8 + bne _08085B8A + bl SecretBaseMapPopupEnabled + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08085B8A + bl ShowMapNamePopup +_08085B8A: + bl sub_080AECC4 + pop {r0} + bx r0 + .align 2, 0 +_08085B94: .4byte 0x02036FB8 + thumb_func_end sub_08085B6C + + thumb_func_start CB2_ContinueSavedGame +CB2_ContinueSavedGame: @ 0x08085B98 + push {r4, lr} + bl FieldClearVBlankHBlankCallbacks + bl StopMapMusic + bl CB2_OverworldBasic + ldr r0, _08085BD0 + ldrh r0, [r0] + cmp r0, #0xff + bne _08085BB2 + bl sub_081A36A0 +_08085BB2: + bl LoadSaveblockMapHeader + bl GetCurrentTrainerHillMapId + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _08085BD4 + ldrh r1, [r0, #0x12] + ldr r0, _08085BD8 + cmp r1, r0 + bne _08085BDC + bl LoadBattlePyramidFloorEventObjectScripts + b _08085BEE + .align 2, 0 +_08085BD0: .4byte 0x03005F50 +_08085BD4: .4byte 0x02036FB8 +_08085BD8: .4byte 0x00000169 +_08085BDC: + cmp r4, #0 + beq _08085BEA + cmp r4, #6 + beq _08085BEA + bl sub_081D5840 + b _08085BEE +_08085BEA: + bl LoadSaveblockEventObjScripts +_08085BEE: + bl UnfreezeEventObjects + bl DoTimeBasedEvents + bl sub_08084110 + ldr r0, _08085C0C + ldrh r1, [r0, #0x12] + ldr r0, _08085C10 + cmp r1, r0 + bne _08085C14 + movs r0, #1 + bl InitBattlePyramidMap + b _08085C22 + .align 2, 0 +_08085C0C: .4byte 0x02036FB8 +_08085C10: .4byte 0x00000169 +_08085C14: + cmp r4, #0 + beq _08085C1E + bl InitTrainerHillMap + b _08085C22 +_08085C1E: + bl InitMapFromSavedGame +_08085C22: + bl PlayTimeCounter_Start + bl ScriptContext1_Init + bl ScriptContext2_Disable + bl InitMatchCallCounters + bl UseContinueGameWarp + cmp r0, #1 + bne _08085C58 + bl ClearContinueGameWarpStatus2 + bl SetWarpDestinationToContinueGameWarp + bl WarpIntoMap + bl sub_080EE664 + ldr r0, _08085C54 + bl SetMainCallback2 + b _08085C6C + .align 2, 0 +_08085C54: .4byte 0x08085935 +_08085C58: + bl sub_080EE664 + ldr r0, _08085C74 + ldr r1, _08085C78 + str r1, [r0] + ldr r0, _08085C7C + bl SetMainCallback1 + bl CB2_ReturnToField +_08085C6C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08085C74: .4byte 0x03005B0C +_08085C78: .4byte 0x08085B6D +_08085C7C: .4byte 0x0808576D + thumb_func_end CB2_ContinueSavedGame + + thumb_func_start FieldClearVBlankHBlankCallbacks +FieldClearVBlankHBlankCallbacks: @ 0x08085C80 + push {r4, lr} + bl warp0_in_pokecenter + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08085C92 + bl CloseLink +_08085C92: + ldr r0, _08085CA8 + ldrb r0, [r0] + cmp r0, #0 + beq _08085CAC + movs r0, #0xc5 + bl EnableInterrupts + movs r0, #2 + bl DisableInterrupts + b _08085CC6 + .align 2, 0 +_08085CA8: .4byte 0x0300319C +_08085CAC: + ldr r4, _08085CD8 + ldrh r3, [r4] + strh r0, [r4] + ldr r2, _08085CDC + ldrh r1, [r2] + ldr r0, _08085CE0 + ands r0, r1 + strh r0, [r2] + ldrh r0, [r2] + movs r1, #1 + orrs r0, r1 + strh r0, [r2] + strh r3, [r4] +_08085CC6: + movs r0, #0 + bl SetVBlankCallback + movs r0, #0 + bl SetHBlankCallback + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08085CD8: .4byte 0x04000208 +_08085CDC: .4byte 0x04000200 +_08085CE0: .4byte 0x0000FFFD + thumb_func_end FieldClearVBlankHBlankCallbacks + + thumb_func_start SetFieldVBlankCallback +SetFieldVBlankCallback: @ 0x08085CE4 + push {lr} + ldr r0, _08085CF0 + bl SetVBlankCallback + pop {r0} + bx r0 + .align 2, 0 +_08085CF0: .4byte 0x08085CF5 + thumb_func_end SetFieldVBlankCallback + + thumb_func_start VBlankCB_Field +VBlankCB_Field: @ 0x08085CF4 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl ScanlineEffect_InitHBlankDmaTransfer + bl FieldUpdateBgTilemapScroll + bl TransferPlttBuffer + bl TransferTilesetAnimsBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end VBlankCB_Field + + thumb_func_start InitCurrentFlashLevelScanlineEffect +InitCurrentFlashLevelScanlineEffect: @ 0x08085D14 + push {lr} + bl InBattlePyramid_ + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08085D38 + bl WriteBattlePyramidViewScanlineEffectBuffer + ldr r2, _08085D34 + ldr r0, [r2] + ldr r1, [r2, #4] + ldr r2, [r2, #8] + bl ScanlineEffect_SetParams + b _08085D54 + .align 2, 0 +_08085D34: .4byte 0x0830FD08 +_08085D38: + bl Overworld_GetFlashLevel + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _08085D54 + bl WriteFlashScanlineEffectBuffer + ldr r2, _08085D58 + ldr r0, [r2] + ldr r1, [r2, #4] + ldr r2, [r2, #8] + bl ScanlineEffect_SetParams +_08085D54: + pop {r0} + bx r0 + .align 2, 0 +_08085D58: .4byte 0x0830FD08 + thumb_func_end InitCurrentFlashLevelScanlineEffect + + thumb_func_start map_loading_iteration_3 +map_loading_iteration_3: @ 0x08085D5C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4] + cmp r0, #0xd + bls _08085D68 + b _08085E76 +_08085D68: + lsls r0, r0, #2 + ldr r1, _08085D74 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08085D74: .4byte 0x08085D78 +_08085D78: @ jump table + .4byte _08085DB0 @ case 0 + .4byte _08085DC6 @ case 1 + .4byte _08085DCE @ case 2 + .4byte _08085DD6 @ case 3 + .4byte _08085DE8 @ case 4 + .4byte _08085DF6 @ case 5 + .4byte _08085DFC @ case 6 + .4byte _08085E0C @ case 7 + .4byte _08085E1C @ case 8 + .4byte _08085E38 @ case 9 + .4byte _08085E3E @ case 10 + .4byte _08085E44 @ case 11 + .4byte _08085E60 @ case 12 + .4byte _08085E72 @ case 13 +_08085DB0: + bl InitOverworldBgs + bl ScriptContext1_Init + bl ScriptContext2_Disable + bl sub_0808612C + bl sub_0808613C + b _08085E6A +_08085DC6: + movs r0, #1 + bl mli0_load_map + b _08085E6A +_08085DCE: + movs r0, #1 + bl sub_080862EC + b _08085E6A +_08085DD6: + bl sub_08086448 + bl sub_08086340 + bl sub_08086478 + bl SetCameraToTrackGuestPlayer + b _08085E6A +_08085DE8: + bl InitCurrentFlashLevelScanlineEffect + bl InitOverworldGraphicsRegisters + bl sub_08196DF4 + b _08085E6A +_08085DF6: + bl move_tilemap_camera_to_upper_left_corner + b _08085E6A +_08085DFC: + ldr r0, _08085E08 + ldr r0, [r0] + bl copy_map_tileset1_to_vram + b _08085E6A + .align 2, 0 +_08085E08: .4byte 0x02036FB8 +_08085E0C: + ldr r0, _08085E18 + ldr r0, [r0] + bl copy_map_tileset2_to_vram + b _08085E6A + .align 2, 0 +_08085E18: .4byte 0x02036FB8 +_08085E1C: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08085E76 + ldr r0, _08085E34 + ldr r0, [r0] + bl apply_map_tileset1_tileset2_palette + b _08085E6A + .align 2, 0 +_08085E34: .4byte 0x02036FB8 +_08085E38: + bl DrawWholeMapView + b _08085E6A +_08085E3E: + bl InitTilesetAnimations + b _08085E6A +_08085E44: + ldr r0, _08085E5C + ldrb r0, [r0] + cmp r0, #0 + beq _08085E6A + bl LoadWirelessStatusIndicatorSpriteGfx + movs r0, #0 + movs r1, #0 + bl CreateWirelessStatusIndicatorSprite + b _08085E6A + .align 2, 0 +_08085E5C: .4byte 0x0300319C +_08085E60: + bl map_post_load_hook_exec + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08085E76 +_08085E6A: + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + b _08085E76 +_08085E72: + movs r0, #1 + b _08085E78 +_08085E76: + movs r0, #0 +_08085E78: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end map_loading_iteration_3 + + thumb_func_start load_map_stuff +load_map_stuff: @ 0x08085E80 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4] + cmp r0, #0xd + bls _08085E8E + b _08085F92 +_08085E8E: + lsls r0, r0, #2 + ldr r1, _08085E98 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08085E98: .4byte 0x08085E9C +_08085E9C: @ jump table + .4byte _08085ED4 @ case 0 + .4byte _08085EE0 @ case 1 + .4byte _08085EEA @ case 2 + .4byte _08085EF2 @ case 3 + .4byte _08085EFC @ case 4 + .4byte _08085F0A @ case 5 + .4byte _08085F10 @ case 6 + .4byte _08085F20 @ case 7 + .4byte _08085F30 @ case 8 + .4byte _08085F4C @ case 9 + .4byte _08085F52 @ case 10 + .4byte _08085F58 @ case 11 + .4byte _08085F7C @ case 12 + .4byte _08085F8E @ case 13 +_08085ED4: + bl FieldClearVBlankHBlankCallbacks + adds r0, r5, #0 + bl mli0_load_map + b _08085F86 +_08085EE0: + bl sub_0808612C + bl sub_0808613C + b _08085F86 +_08085EEA: + adds r0, r5, #0 + bl sub_080862EC + b _08085F86 +_08085EF2: + bl mli4_mapscripts_and_other + bl sub_080863E4 + b _08085F86 +_08085EFC: + bl InitCurrentFlashLevelScanlineEffect + bl InitOverworldGraphicsRegisters + bl sub_08196DF4 + b _08085F86 +_08085F0A: + bl move_tilemap_camera_to_upper_left_corner + b _08085F86 +_08085F10: + ldr r0, _08085F1C + ldr r0, [r0] + bl copy_map_tileset1_to_vram + b _08085F86 + .align 2, 0 +_08085F1C: .4byte 0x02036FB8 +_08085F20: + ldr r0, _08085F2C + ldr r0, [r0] + bl copy_map_tileset2_to_vram + b _08085F86 + .align 2, 0 +_08085F2C: .4byte 0x02036FB8 +_08085F30: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08085F92 + ldr r0, _08085F48 + ldr r0, [r0] + bl apply_map_tileset1_tileset2_palette + b _08085F86 + .align 2, 0 +_08085F48: .4byte 0x02036FB8 +_08085F4C: + bl DrawWholeMapView + b _08085F86 +_08085F52: + bl InitTilesetAnimations + b _08085F86 +_08085F58: + ldr r0, _08085F78 + ldrb r1, [r0, #0x1a] + movs r0, #0xf8 + ands r0, r1 + cmp r0, #8 + bne _08085F86 + bl SecretBaseMapPopupEnabled + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08085F86 + bl ShowMapNamePopup + b _08085F86 + .align 2, 0 +_08085F78: .4byte 0x02036FB8 +_08085F7C: + bl map_post_load_hook_exec + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08085F92 +_08085F86: + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + b _08085F92 +_08085F8E: + movs r0, #1 + b _08085F94 +_08085F92: + movs r0, #0 +_08085F94: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end load_map_stuff + + thumb_func_start sub_08085F9C +sub_08085F9C: @ 0x08085F9C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4] + cmp r0, #1 + beq _08085FD2 + cmp r0, #1 + bgt _08085FB0 + cmp r0, #0 + beq _08085FBA + b _08085FF2 +_08085FB0: + cmp r0, #2 + beq _08085FDC + cmp r0, #3 + beq _08085FEE + b _08085FF2 +_08085FBA: + bl sub_0808612C + bl sub_0808613C + movs r0, #0 + bl sub_080862EC + bl sub_080863CC + bl sub_080863E4 + b _08085FE6 +_08085FD2: + bl sub_080861C4 + bl sub_081D5E60 + b _08085FE6 +_08085FDC: + bl map_post_load_hook_exec + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08085FF2 +_08085FE6: + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + b _08085FF2 +_08085FEE: + movs r0, #1 + b _08085FF4 +_08085FF2: + movs r0, #0 +_08085FF4: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08085F9C + + thumb_func_start map_loading_iteration_2_link +map_loading_iteration_2_link: @ 0x08085FFC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4] + cmp r0, #0xd + bls _08086008 + b _0808610C +_08086008: + lsls r0, r0, #2 + ldr r1, _08086014 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08086014: .4byte 0x08086018 +_08086018: @ jump table + .4byte _08086050 @ case 0 + .4byte _0808605E @ case 1 + .4byte _08086066 @ case 2 + .4byte _08086074 @ case 3 + .4byte _08086082 @ case 4 + .4byte _08086088 @ case 5 + .4byte _08086098 @ case 6 + .4byte _080860A8 @ case 7 + .4byte _080860C4 @ case 8 + .4byte _080860CA @ case 9 + .4byte _080860F6 @ case 10 + .4byte _080860D0 @ case 11 + .4byte _080860EC @ case 12 + .4byte _080860FE @ case 13 +_08086050: + bl FieldClearVBlankHBlankCallbacks + bl sub_0808612C + bl sub_0808613C + b _080860F6 +_0808605E: + movs r0, #1 + bl sub_080862EC + b _080860F6 +_08086066: + bl CreateLinkPlayerSprites + bl sub_080863CC + bl SetCameraToTrackGuestPlayer_2 + b _080860F6 +_08086074: + bl InitCurrentFlashLevelScanlineEffect + bl InitOverworldGraphicsRegisters + bl sub_08196DF4 + b _080860F6 +_08086082: + bl move_tilemap_camera_to_upper_left_corner + b _080860F6 +_08086088: + ldr r0, _08086094 + ldr r0, [r0] + bl copy_map_tileset1_to_vram + b _080860F6 + .align 2, 0 +_08086094: .4byte 0x02036FB8 +_08086098: + ldr r0, _080860A4 + ldr r0, [r0] + bl copy_map_tileset2_to_vram + b _080860F6 + .align 2, 0 +_080860A4: .4byte 0x02036FB8 +_080860A8: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0808610C + ldr r0, _080860C0 + ldr r0, [r0] + bl apply_map_tileset1_tileset2_palette + b _080860F6 + .align 2, 0 +_080860C0: .4byte 0x02036FB8 +_080860C4: + bl DrawWholeMapView + b _080860F6 +_080860CA: + bl InitTilesetAnimations + b _080860F6 +_080860D0: + ldr r0, _080860E8 + ldrb r0, [r0] + cmp r0, #0 + beq _080860F6 + bl LoadWirelessStatusIndicatorSpriteGfx + movs r0, #0 + movs r1, #0 + bl CreateWirelessStatusIndicatorSprite + b _080860F6 + .align 2, 0 +_080860E8: .4byte 0x0300319C +_080860EC: + bl map_post_load_hook_exec + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808610C +_080860F6: + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + b _0808610C +_080860FE: + bl SetFieldVBlankCallback + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + movs r0, #1 + b _0808610E +_0808610C: + movs r0, #0 +_0808610E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end map_loading_iteration_2_link + + thumb_func_start do_load_map_stuff_loop +do_load_map_stuff_loop: @ 0x08086114 + push {r4, lr} + adds r4, r0, #0 +_08086118: + adds r0, r4, #0 + movs r1, #0 + bl load_map_stuff + cmp r0, #0 + beq _08086118 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end do_load_map_stuff_loop + + thumb_func_start sub_0808612C +sub_0808612C: @ 0x0808612C + push {lr} + bl ClearMirageTowerPulseBlend + bl MoveSaveBlocks_ResetHeap + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0808612C + + thumb_func_start sub_0808613C +sub_0808613C: @ 0x0808613C + push {r4, r5, r6, r7, lr} + sub sp, #4 + movs r0, #0 + movs r1, #0 + bl SetGpuReg + bl ScanlineEffect_Stop + ldr r2, _080861B4 + mov r1, sp + movs r0, #0 + strh r0, [r1] + ldr r1, _080861B8 + mov r0, sp + str r0, [r1] + str r2, [r1, #4] + ldr r0, _080861BC + str r0, [r1, #8] + ldr r0, [r1, #8] + movs r2, #0xc0 + lsls r2, r2, #0x13 + movs r3, #0xc0 + lsls r3, r3, #9 + mov r4, sp + movs r6, #0 + movs r5, #0x80 + lsls r5, r5, #5 + ldr r7, _080861C0 + movs r0, #0x81 + lsls r0, r0, #0x18 + mov ip, r0 +_0808617A: + strh r6, [r4] + mov r0, sp + str r0, [r1] + str r2, [r1, #4] + str r7, [r1, #8] + ldr r0, [r1, #8] + adds r2, r2, r5 + subs r3, r3, r5 + cmp r3, r5 + bhi _0808617A + strh r6, [r4] + mov r0, sp + str r0, [r1] + str r2, [r1, #4] + lsrs r0, r3, #1 + mov r2, ip + orrs r0, r2 + str r0, [r1, #8] + ldr r0, [r1, #8] + movs r0, #0 + movs r1, #0x80 + bl ResetOamRange + bl LoadOam + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080861B4: .4byte 0x05000002 +_080861B8: .4byte 0x040000D4 +_080861BC: .4byte 0x810001FF +_080861C0: .4byte 0x81000800 + thumb_func_end sub_0808613C + + thumb_func_start sub_080861C4 +sub_080861C4: @ 0x080861C4 + push {lr} + bl InitCurrentFlashLevelScanlineEffect + bl InitOverworldGraphicsRegisters + bl sub_08196DF4 + bl mapdata_load_assets_to_gpu_and_full_redraw + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080861C4 + + thumb_func_start InitOverworldGraphicsRegisters +InitOverworldGraphicsRegisters: @ 0x080861DC + push {r4, lr} + bl clear_scheduled_bg_copies_to_vram + bl reset_temp_tile_data_buffers + movs r0, #0x4c + movs r1, #0 + bl SetGpuReg + ldr r1, _080862D4 + movs r0, #0x48 + bl SetGpuReg + ldr r1, _080862D8 + movs r0, #0x4a + bl SetGpuReg + movs r0, #0x40 + movs r1, #0xff + bl SetGpuReg + movs r0, #0x44 + movs r1, #0xff + bl SetGpuReg + ldr r4, _080862DC + movs r0, #0x42 + adds r1, r4, #0 + bl SetGpuReg + movs r0, #0x46 + adds r1, r4, #0 + bl SetGpuReg + ldr r0, _080862E0 + ldrh r1, [r0, #2] + ldrh r2, [r0, #4] + orrs r1, r2 + ldrh r0, [r0, #6] + orrs r1, r0 + movs r2, #0x82 + lsls r2, r2, #5 + adds r0, r2, #0 + orrs r1, r0 + movs r0, #0x50 + bl SetGpuReg + ldr r1, _080862E4 + movs r0, #0x52 + bl SetGpuReg + bl InitOverworldBgs + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #3 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + ldr r1, _080862E8 + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg + bl InitFieldMessageBox + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080862D4: .4byte 0x00001F1F +_080862D8: .4byte 0x00000101 +_080862DC: .4byte 0x0000FFFF +_080862E0: .4byte 0x082BF42C +_080862E4: .4byte 0x0000070D +_080862E8: .4byte 0x00007060 + thumb_func_end InitOverworldGraphicsRegisters + + thumb_func_start sub_080862EC +sub_080862EC: @ 0x080862EC + push {r4, lr} + adds r4, r0, #0 + bl ResetTasks + bl ResetSpriteData + bl ResetPaletteFade + bl ScanlineEffect_Clear + bl ResetAllPicSprites + bl ResetCameraUpdateInfo + bl InstallCameraPanAheadCallback + cmp r4, #0 + bne _08086318 + movs r0, #0 + bl InitEventObjectPalettes + b _0808631E +_08086318: + movs r0, #1 + bl InitEventObjectPalettes +_0808631E: + bl FieldEffectActiveListClear + bl StartWeather + bl ResumePausedWeather + cmp r4, #0 + bne _08086332 + bl SetUpFieldTasks +_08086332: + bl RunOnResumeMapScript + bl TryStartMirageTowerPulseBlendEffect + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_080862EC + + thumb_func_start sub_08086340 +sub_08086340: @ 0x08086340 + push {lr} + ldr r0, _08086360 + movs r1, #0 + strh r1, [r0] + ldr r0, _08086364 + strh r1, [r0] + bl ResetEventObjects + movs r0, #0 + movs r1, #0 + bl TrySpawnEventObjects + bl TryRunOnWarpIntoMapScript + pop {r0} + bx r0 + .align 2, 0 +_08086360: .4byte 0x03005B4C +_08086364: .4byte 0x03005B48 + thumb_func_end sub_08086340 + + thumb_func_start mli4_mapscripts_and_other +mli4_mapscripts_and_other: @ 0x08086368 + push {r4, r5, lr} + sub sp, #4 + ldr r0, _080863C0 + movs r1, #0 + strh r1, [r0] + ldr r0, _080863C4 + strh r1, [r0] + bl ResetEventObjects + mov r4, sp + adds r4, #2 + mov r0, sp + adds r1, r4, #0 + bl GetCameraFocusCoords + bl GetInitialPlayerAvatarState + adds r5, r0, #0 + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0 + ldrsh r1, [r4, r2] + ldrb r2, [r5, #1] + ldr r3, _080863C8 + ldr r3, [r3] + ldrb r3, [r3, #8] + bl InitPlayerAvatar + ldrb r0, [r5] + bl SetPlayerAvatarTransitionFlags + bl ResetInitialPlayerAvatarState + movs r0, #0 + movs r1, #0 + bl TrySpawnEventObjects + bl TryRunOnWarpIntoMapScript + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080863C0: .4byte 0x03005B4C +_080863C4: .4byte 0x03005B48 +_080863C8: .4byte 0x03005AF0 + thumb_func_end mli4_mapscripts_and_other + + thumb_func_start sub_080863CC +sub_080863CC: @ 0x080863CC + push {lr} + movs r0, #0 + movs r1, #0 + bl sub_0808DADC + bl RotatingGate_InitPuzzleAndGraphics + bl RunOnReturnToFieldMapScript + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080863CC + + thumb_func_start sub_080863E4 +sub_080863E4: @ 0x080863E4 + push {lr} + ldr r2, _08086408 + ldr r3, _0808640C + ldrb r1, [r3, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #1] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0, #1] + ldrb r0, [r3, #4] + bl InitCameraUpdateCallback + pop {r0} + bx r0 + .align 2, 0 +_08086408: .4byte 0x02036FF0 +_0808640C: .4byte 0x02037230 + thumb_func_end sub_080863E4 + + thumb_func_start SetCameraToTrackGuestPlayer +SetCameraToTrackGuestPlayer: @ 0x08086410 + push {lr} + ldr r0, _08086428 + ldrb r0, [r0] + bl GetSpriteForLinkedPlayer + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl InitCameraUpdateCallback + pop {r0} + bx r0 + .align 2, 0 +_08086428: .4byte 0x03005B14 + thumb_func_end SetCameraToTrackGuestPlayer + + thumb_func_start SetCameraToTrackGuestPlayer_2 +SetCameraToTrackGuestPlayer_2: @ 0x0808642C + push {lr} + ldr r0, _08086444 + ldrb r0, [r0] + bl GetSpriteForLinkedPlayer + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl InitCameraUpdateCallback + pop {r0} + bx r0 + .align 2, 0 +_08086444: .4byte 0x03005B14 + thumb_func_end SetCameraToTrackGuestPlayer_2 + + thumb_func_start sub_08086448 +sub_08086448: @ 0x08086448 + push {r4, lr} + sub sp, #4 + mov r4, sp + adds r4, #2 + mov r0, sp + adds r1, r4, #0 + bl GetCameraFocusCoords + mov r2, sp + ldr r0, _08086474 + ldrb r1, [r0] + ldrh r0, [r2] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrh r1, [r4] + bl sub_080884A0 + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08086474: .4byte 0x03005B14 + thumb_func_end sub_08086448 + + thumb_func_start sub_08086478 +sub_08086478: @ 0x08086478 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + mov r4, sp + adds r4, #2 + mov r0, sp + adds r1, r4, #0 + bl GetCameraFocusCoords + mov r3, sp + mov r2, sp + ldr r0, _080864F4 + ldrb r1, [r0] + ldrh r0, [r2] + subs r0, r0, r1 + strh r0, [r3] + movs r6, #0 + ldr r0, _080864F8 + mov r8, r4 + ldrb r0, [r0] + cmp r6, r0 + bhs _080864E2 + ldr r7, _080864FC +_080864A8: + lsls r5, r6, #0x18 + lsrs r5, r5, #0x18 + mov r0, sp + ldrh r1, [r0] + adds r1, r6, r1 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + mov r0, r8 + movs r3, #0 + ldrsh r2, [r0, r3] + lsls r4, r6, #3 + subs r4, r4, r6 + lsls r4, r4, #2 + adds r4, r4, r7 + ldrb r3, [r4, #0x13] + adds r0, r5, #0 + bl SpawnLinkPlayerEventObject + ldrb r1, [r4] + adds r0, r5, #0 + bl CreateLinkPlayerSprite + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r0, _080864F8 + ldrb r0, [r0] + cmp r6, r0 + blo _080864A8 +_080864E2: + bl ClearAllPlayerKeys + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080864F4: .4byte 0x03005B14 +_080864F8: .4byte 0x03005B18 +_080864FC: .4byte 0x020226A0 + thumb_func_end sub_08086478 + + thumb_func_start CreateLinkPlayerSprites +CreateLinkPlayerSprites: @ 0x08086500 + push {r4, r5, lr} + movs r4, #0 + ldr r0, _08086534 + ldrb r0, [r0] + cmp r4, r0 + bhs _0808652E + ldr r5, _08086538 +_0808650E: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r4, #3 + subs r1, r1, r4 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrb r1, [r1] + bl CreateLinkPlayerSprite + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, _08086534 + ldrb r0, [r0] + cmp r4, r0 + blo _0808650E +_0808652E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08086534: .4byte 0x03005B18 +_08086538: .4byte 0x020226A0 + thumb_func_end CreateLinkPlayerSprites + + thumb_func_start CB1_UpdateLinkState +CB1_UpdateLinkState: @ 0x0808653C + push {r4, lr} + ldr r0, _08086580 + ldrb r0, [r0] + cmp r0, #0 + beq _08086556 + bl IsRfuRecvQueueEmpty + cmp r0, #0 + beq _08086556 + bl IsSendingKeysToLink + cmp r0, #0 + bne _08086578 +_08086556: + ldr r0, _08086584 + ldrb r4, [r0] + ldr r0, _08086588 + adds r1, r4, #0 + bl UpdateAllLinkPlayers + ldr r0, _0808658C + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl UpdateHeldKeyCode + bl ClearAllPlayerKeys +_08086578: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08086580: .4byte 0x0300319C +_08086584: .4byte 0x03005B14 +_08086588: .4byte 0x030030C0 +_0808658C: .4byte 0x03000E14 + thumb_func_end CB1_UpdateLinkState + + thumb_func_start ResetAllMultiplayerState +ResetAllMultiplayerState: @ 0x08086590 + push {lr} + bl ResetAllTradingStates + ldr r0, _080865A0 + bl SetKeyInterceptCallback + pop {r0} + bx r0 + .align 2, 0 +_080865A0: .4byte 0x08086A15 + thumb_func_end ResetAllMultiplayerState + + thumb_func_start ClearAllPlayerKeys +ClearAllPlayerKeys: @ 0x080865A4 + push {lr} + ldr r0, _080865B0 + bl ResetPlayerHeldKeys + pop {r0} + bx r0 + .align 2, 0 +_080865B0: .4byte 0x030030C0 + thumb_func_end ClearAllPlayerKeys + + thumb_func_start SetKeyInterceptCallback +SetKeyInterceptCallback: @ 0x080865B4 + ldr r2, _080865C0 + movs r1, #0 + strb r1, [r2] + ldr r1, _080865C4 + str r0, [r1] + bx lr + .align 2, 0 +_080865C0: .4byte 0x03000E19 +_080865C4: .4byte 0x03000E14 + thumb_func_end SetKeyInterceptCallback + + thumb_func_start CheckRfuKeepAliveTimer +CheckRfuKeepAliveTimer: @ 0x080865C8 + push {lr} + ldr r0, _080865EC + ldrb r0, [r0] + cmp r0, #0 + beq _080865E6 + ldr r1, _080865F0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3c + bls _080865E6 + bl LinkRfu_FatalError +_080865E6: + pop {r0} + bx r0 + .align 2, 0 +_080865EC: .4byte 0x0300319C +_080865F0: .4byte 0x03000E19 + thumb_func_end CheckRfuKeepAliveTimer + + thumb_func_start ResetAllTradingStates +ResetAllTradingStates: @ 0x080865F4 + push {lr} + ldr r1, _08086608 + movs r2, #0x80 + adds r0, r1, #3 +_080865FC: + strb r2, [r0] + subs r0, #1 + cmp r0, r1 + bge _080865FC + pop {r0} + bx r0 + .align 2, 0 +_08086608: .4byte 0x03000E10 + thumb_func_end ResetAllTradingStates + + thumb_func_start AreAllPlayersInTradingState +AreAllPlayersInTradingState: @ 0x0808660C + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldr r0, _0808662C + ldrb r2, [r0] + movs r1, #0 + cmp r1, r2 + bge _0808663A + ldr r4, _08086630 +_0808661E: + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, r3 + beq _08086634 + movs r0, #0 + b _0808663C + .align 2, 0 +_0808662C: .4byte 0x03005B18 +_08086630: .4byte 0x03000E10 +_08086634: + adds r1, #1 + cmp r1, r2 + blt _0808661E +_0808663A: + movs r0, #1 +_0808663C: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end AreAllPlayersInTradingState + + thumb_func_start IsAnyPlayerInTradingState +IsAnyPlayerInTradingState: @ 0x08086644 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldr r0, _08086664 + ldrb r2, [r0] + movs r1, #0 + cmp r1, r2 + bge _08086672 + ldr r4, _08086668 +_08086656: + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, r3 + bne _0808666C + movs r0, #1 + b _08086674 + .align 2, 0 +_08086664: .4byte 0x03005B18 +_08086668: .4byte 0x03000E10 +_0808666C: + adds r1, #1 + cmp r1, r2 + blt _08086656 +_08086672: + movs r0, #0 +_08086674: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsAnyPlayerInTradingState + + thumb_func_start HandleLinkPlayerKeyInput +HandleLinkPlayerKeyInput: @ 0x0808667C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + adds r6, r2, #0 + mov sb, r3 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r8, r1 + ldr r0, _080866CC + adds r5, r7, r0 + ldrb r0, [r5] + cmp r0, #0x80 + beq _0808669C + b _08086816 +_0808669C: + adds r0, r6, #0 + bl TryGetTileEventScript + adds r4, r0, #0 + cmp r4, #0 + beq _080866D4 + bl GetDirectionForEventScript + mov r1, sb + strh r0, [r1] + movs r0, #0x81 + strb r0, [r5] + ldrb r0, [r6, #1] + cmp r0, #0 + bne _080866BC + b _0808688A +_080866BC: + ldr r0, _080866D0 + bl SetKeyInterceptCallback + adds r0, r4, #0 + bl InitMenuBasedScript + b _0808688A + .align 2, 0 +_080866CC: .4byte 0x03000E10 +_080866D0: .4byte 0x08086A5D +_080866D4: + movs r0, #0x83 + bl IsAnyPlayerInTradingState + cmp r0, #1 + bne _080866FC + movs r0, #0x81 + strb r0, [r5] + ldrb r0, [r6, #1] + cmp r0, #0 + bne _080866EA + b _0808688A +_080866EA: + ldr r0, _080866F8 + bl SetKeyInterceptCallback + bl sub_08086EE8 + b _0808688A + .align 2, 0 +_080866F8: .4byte 0x08086A5D +_080866FC: + mov r0, r8 + subs r0, #0x12 + cmp r0, #0xa + bls _08086706 + b _08086816 +_08086706: + lsls r0, r0, #2 + ldr r1, _08086710 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08086710: .4byte 0x08086714 +_08086714: @ jump table + .4byte _0808676C @ case 0 + .4byte _08086816 @ case 1 + .4byte _08086816 @ case 2 + .4byte _08086816 @ case 3 + .4byte _08086816 @ case 4 + .4byte _08086816 @ case 5 + .4byte _08086740 @ case 6 + .4byte _08086798 @ case 7 + .4byte _08086816 @ case 8 + .4byte _080867C8 @ case 9 + .4byte _080867F4 @ case 10 +_08086740: + adds r0, r6, #0 + bl sub_08086CBC + cmp r0, #0 + beq _08086816 + ldr r0, _08086764 + adds r0, r7, r0 + movs r1, #0x81 + strb r1, [r0] + ldrb r0, [r6, #1] + cmp r0, #0 + beq _08086816 + ldr r0, _08086768 + bl SetKeyInterceptCallback + bl InitLinkRoomStartMenuScript + b _08086816 + .align 2, 0 +_08086764: .4byte 0x03000E10 +_08086768: .4byte 0x08086A5D +_0808676C: + adds r0, r6, #0 + bl PlayerIsAtSouthExit + cmp r0, #1 + bne _08086816 + ldr r0, _08086790 + adds r0, r7, r0 + movs r1, #0x81 + strb r1, [r0] + ldrb r0, [r6, #1] + cmp r0, #0 + beq _08086816 + ldr r0, _08086794 + bl SetKeyInterceptCallback + bl CreateConfirmLeaveTradeRoomPrompt + b _08086816 + .align 2, 0 +_08086790: .4byte 0x03000E10 +_08086794: .4byte 0x08086A5D +_08086798: + adds r0, r6, #0 + bl TryInteractWithPlayer + adds r4, r0, #0 + cmp r4, #0 + beq _08086816 + ldr r0, _080867C0 + adds r0, r7, r0 + movs r1, #0x81 + strb r1, [r0] + ldrb r0, [r6, #1] + cmp r0, #0 + beq _08086816 + ldr r0, _080867C4 + bl SetKeyInterceptCallback + adds r0, r4, #0 + bl sub_08086ECC + b _08086816 + .align 2, 0 +_080867C0: .4byte 0x03000E10 +_080867C4: .4byte 0x08086A5D +_080867C8: + adds r0, r6, #0 + bl sub_08086CA4 + cmp r0, #0 + beq _08086816 + ldr r0, _080867EC + adds r0, r7, r0 + movs r1, #0x81 + strb r1, [r0] + ldrb r0, [r6, #1] + cmp r0, #0 + beq _08086816 + ldr r0, _080867F0 + bl SetKeyInterceptCallback + bl sub_08086E74 + b _08086816 + .align 2, 0 +_080867EC: .4byte 0x03000E10 +_080867F0: .4byte 0x08086A81 +_080867F4: + adds r0, r6, #0 + bl sub_08086CA4 + cmp r0, #0 + beq _08086816 + ldr r0, _08086828 + adds r0, r7, r0 + movs r1, #0x81 + strb r1, [r0] + ldrb r0, [r6, #1] + cmp r0, #0 + beq _08086816 + ldr r0, _0808682C + bl SetKeyInterceptCallback + bl sub_08086E74 +_08086816: + mov r0, r8 + cmp r0, #0x17 + beq _0808683C + cmp r0, #0x17 + bgt _08086830 + cmp r0, #0x16 + beq _0808684C + b _0808688A + .align 2, 0 +_08086828: .4byte 0x03000E10 +_0808682C: .4byte 0x08086AA5 +_08086830: + mov r1, r8 + cmp r1, #0x1a + beq _0808685C + cmp r1, #0x1d + beq _0808687C + b _0808688A +_0808683C: + ldr r0, _08086848 + adds r0, r7, r0 + movs r1, #0x83 + strb r1, [r0] + b _0808688A + .align 2, 0 +_08086848: .4byte 0x03000E10 +_0808684C: + ldr r0, _08086858 + adds r0, r7, r0 + movs r1, #0x82 + strb r1, [r0] + b _0808688A + .align 2, 0 +_08086858: .4byte 0x03000E10 +_0808685C: + ldr r0, _08086874 + adds r0, r7, r0 + movs r1, #0x80 + strb r1, [r0] + ldrb r0, [r6, #1] + cmp r0, #0 + beq _0808688A + ldr r0, _08086878 + bl SetKeyInterceptCallback + b _0808688A + .align 2, 0 +_08086874: .4byte 0x03000E10 +_08086878: .4byte 0x08086A15 +_0808687C: + ldr r0, _08086898 + adds r1, r7, r0 + ldrb r0, [r1] + cmp r0, #0x82 + bne _0808688A + movs r0, #0x81 + strb r0, [r1] +_0808688A: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08086898: .4byte 0x03000E10 + thumb_func_end HandleLinkPlayerKeyInput + + thumb_func_start UpdateAllLinkPlayers +UpdateAllLinkPlayers: @ 0x0808689C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x14 + mov r8, r1 + movs r6, #0 + add r5, sp, #0x10 + mov sb, r5 + adds r7, r0, #0 +_080868B0: + ldrb r4, [r7] + movs r0, #0 + strh r0, [r5] + adds r0, r6, #0 + mov r1, r8 + mov r2, sp + bl LoadTradeRoomPlayer + adds r0, r6, #0 + adds r1, r4, #0 + mov r2, sp + adds r3, r5, #0 + bl HandleLinkPlayerKeyInput + ldr r0, _08086900 + adds r0, r6, r0 + ldrb r0, [r0] + cmp r0, #0x80 + bne _080868E0 + adds r0, r4, #0 + bl GetDirectionForDpadKey + mov r1, sb + strh r0, [r1] +_080868E0: + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r5] + bl SetPlayerFacingDirection + adds r7, #2 + adds r6, #1 + cmp r6, #3 + ble _080868B0 + add sp, #0x14 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08086900: .4byte 0x03000E10 + thumb_func_end UpdateAllLinkPlayers + + thumb_func_start UpdateHeldKeyCode +UpdateHeldKeyCode: @ 0x08086904 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r1, _0808691C + adds r0, r0, r1 + lsrs r0, r0, #0x10 + cmp r0, #0xc + bhi _08086924 + ldr r0, _08086920 + strh r4, [r0] + b _0808692A + .align 2, 0 +_0808691C: .4byte 0xFFEF0000 +_08086920: .4byte 0x03005B08 +_08086924: + ldr r1, _08086968 + movs r0, #0x11 + strh r0, [r1] +_0808692A: + ldr r0, _0808696C + ldrb r0, [r0] + cmp r0, #0 + beq _08086960 + bl GetLinkSendQueueLength + cmp r0, #1 + bls _08086960 + bl IsUpdateLinkStateCBActive + cmp r0, #1 + bne _08086960 + bl IsSendingKeysToLink + cmp r0, #1 + bne _08086960 + cmp r4, #0x11 + blt _08086960 + cmp r4, #0x15 + ble _0808695A + cmp r4, #0x19 + bgt _08086960 + cmp r4, #0x18 + blt _08086960 +_0808695A: + ldr r1, _08086968 + movs r0, #0 + strh r0, [r1] +_08086960: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08086968: .4byte 0x03005B08 +_0808696C: .4byte 0x0300319C + thumb_func_end UpdateHeldKeyCode + + thumb_func_start KeyInterCB_ReadButtons +KeyInterCB_ReadButtons: @ 0x08086970 + push {lr} + ldr r2, _08086984 + ldrh r1, [r2, #0x2c] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08086988 + movs r0, #0x13 + b _080869C8 + .align 2, 0 +_08086984: .4byte 0x03002360 +_08086988: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08086994 + movs r0, #0x12 + b _080869C8 +_08086994: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080869A0 + movs r0, #0x14 + b _080869C8 +_080869A0: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080869AC + movs r0, #0x15 + b _080869C8 +_080869AC: + ldrh r1, [r2, #0x2e] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080869BA + movs r0, #0x18 + b _080869C8 +_080869BA: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080869C6 + movs r0, #0x11 + b _080869C8 +_080869C6: + movs r0, #0x19 +_080869C8: + pop {r1} + bx r1 + thumb_func_end KeyInterCB_ReadButtons + + thumb_func_start GetDirectionForDpadKey +GetDirectionForDpadKey: @ 0x080869CC + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r0, #0 + cmp r0, #0x13 + beq _080869F2 + cmp r0, #0x13 + bgt _080869E2 + cmp r0, #0x12 + beq _080869F6 + b _080869FA +_080869E2: + cmp r1, #0x14 + beq _080869EE + cmp r1, #0x15 + bne _080869FA + movs r0, #4 + b _080869FC +_080869EE: + movs r0, #3 + b _080869FC +_080869F2: + movs r0, #1 + b _080869FC +_080869F6: + movs r0, #2 + b _080869FC +_080869FA: + movs r0, #0 +_080869FC: + pop {r1} + bx r1 + thumb_func_end GetDirectionForDpadKey + + thumb_func_start ResetPlayerHeldKeys +ResetPlayerHeldKeys: @ 0x08086A00 + push {lr} + movs r2, #0x11 + adds r1, r0, #6 +_08086A06: + strh r2, [r1] + subs r1, #2 + cmp r1, r0 + bge _08086A06 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ResetPlayerHeldKeys + + thumb_func_start KeyInterCB_SelfIdle +KeyInterCB_SelfIdle: @ 0x08086A14 + push {r4, lr} + adds r4, r0, #0 + bl ScriptContext2_IsEnabled + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08086A28 + movs r0, #0x11 + b _08086A4A +_08086A28: + bl GetLinkRecvQueueLength + cmp r0, #4 + bls _08086A34 + movs r0, #0x1b + b _08086A4A +_08086A34: + bl GetLinkSendQueueLength + cmp r0, #4 + bls _08086A40 + movs r0, #0x1c + b _08086A4A +_08086A40: + adds r0, r4, #0 + bl KeyInterCB_ReadButtons + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_08086A4A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end KeyInterCB_SelfIdle + + thumb_func_start sub_08086A50 +sub_08086A50: @ 0x08086A50 + push {lr} + bl CheckRfuKeepAliveTimer + movs r0, #0x11 + pop {r1} + bx r1 + thumb_func_end sub_08086A50 + + thumb_func_start KeyInterCB_DeferToEventScript +KeyInterCB_DeferToEventScript: @ 0x08086A5C + push {r4, lr} + bl ScriptContext2_IsEnabled + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r4, #0x11 + cmp r0, #1 + beq _08086A74 + movs r4, #0x1a + ldr r0, _08086A7C + bl SetKeyInterceptCallback +_08086A74: + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08086A7C: .4byte 0x08086A51 + thumb_func_end KeyInterCB_DeferToEventScript + + thumb_func_start KeyInterCB_DeferToRecvQueue +KeyInterCB_DeferToRecvQueue: @ 0x08086A80 + push {r4, lr} + bl GetLinkRecvQueueLength + movs r4, #0x11 + cmp r0, #2 + bhi _08086A98 + movs r4, #0x1a + bl ScriptContext2_Disable + ldr r0, _08086AA0 + bl SetKeyInterceptCallback +_08086A98: + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08086AA0: .4byte 0x08086A51 + thumb_func_end KeyInterCB_DeferToRecvQueue + + thumb_func_start KeyInterCB_DeferToSendQueue +KeyInterCB_DeferToSendQueue: @ 0x08086AA4 + push {r4, lr} + bl GetLinkSendQueueLength + movs r4, #0x11 + cmp r0, #2 + bhi _08086ABC + movs r4, #0x1a + bl ScriptContext2_Disable + ldr r0, _08086AC4 + bl SetKeyInterceptCallback +_08086ABC: + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08086AC4: .4byte 0x08086A51 + thumb_func_end KeyInterCB_DeferToSendQueue + + thumb_func_start KeyInterCB_DoNothingAndKeepAlive +KeyInterCB_DoNothingAndKeepAlive: @ 0x08086AC8 + push {lr} + bl CheckRfuKeepAliveTimer + movs r0, #0x11 + pop {r1} + bx r1 + thumb_func_end KeyInterCB_DoNothingAndKeepAlive + + thumb_func_start sub_08086AD4 +sub_08086AD4: @ 0x08086AD4 + push {lr} + ldr r1, _08086AF8 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0x82 + bne _08086B04 + ldr r0, _08086AFC + ldrh r1, [r0, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08086B08 + ldr r0, _08086B00 + bl SetKeyInterceptCallback + movs r0, #0x1d + b _08086B0A + .align 2, 0 +_08086AF8: .4byte 0x03000E10 +_08086AFC: .4byte 0x03002360 +_08086B00: .4byte 0x08086AC9 +_08086B04: + bl CheckRfuKeepAliveTimer +_08086B08: + movs r0, #0x11 +_08086B0A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08086AD4 + + thumb_func_start sub_08086B10 +sub_08086B10: @ 0x08086B10 + push {lr} + ldr r0, _08086B20 + bl SetKeyInterceptCallback + movs r0, #0x16 + pop {r1} + bx r1 + .align 2, 0 +_08086B20: .4byte 0x08086AD5 + thumb_func_end sub_08086B10 + + thumb_func_start KeyInterCB_SendNothing_2 +KeyInterCB_SendNothing_2: @ 0x08086B24 + movs r0, #0x11 + bx lr + thumb_func_end KeyInterCB_SendNothing_2 + + thumb_func_start KeyInterCB_WaitForPlayersToExit +KeyInterCB_WaitForPlayersToExit: @ 0x08086B28 + push {lr} + ldr r1, _08086B54 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0x83 + beq _08086B38 + bl CheckRfuKeepAliveTimer +_08086B38: + movs r0, #0x83 + bl AreAllPlayersInTradingState + cmp r0, #1 + bne _08086B4E + ldr r0, _08086B58 + bl ScriptContext1_SetupScript + ldr r0, _08086B5C + bl SetKeyInterceptCallback +_08086B4E: + movs r0, #0x11 + pop {r1} + bx r1 + .align 2, 0 +_08086B54: .4byte 0x03000E10 +_08086B58: .4byte 0x082471F2 +_08086B5C: .4byte 0x08086B25 + thumb_func_end KeyInterCB_WaitForPlayersToExit + + thumb_func_start KeyInterCB_SendExitRoomKey +KeyInterCB_SendExitRoomKey: @ 0x08086B60 + push {lr} + ldr r0, _08086B70 + bl SetKeyInterceptCallback + movs r0, #0x17 + pop {r1} + bx r1 + .align 2, 0 +_08086B70: .4byte 0x08086B29 + thumb_func_end KeyInterCB_SendExitRoomKey + + thumb_func_start KeyInterCB_SendNothing +KeyInterCB_SendNothing: @ 0x08086B74 + movs r0, #0x11 + bx lr + thumb_func_end KeyInterCB_SendNothing + + thumb_func_start sub_08086B78 +sub_08086B78: @ 0x08086B78 + push {lr} + movs r0, #0x83 + bl IsAnyPlayerInTradingState + cmp r0, #1 + beq _08086BB4 + ldr r0, _08086BB8 + ldr r2, [r0] + ldr r1, _08086BBC + adds r3, r0, #0 + cmp r2, r1 + bne _08086B9E + ldr r1, _08086BC0 + ldr r0, _08086BC4 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0x82 + bne _08086BD6 +_08086B9E: + ldr r1, [r3] + ldr r0, _08086BC8 + cmp r1, r0 + bne _08086BCC + ldr r1, _08086BC0 + ldr r0, _08086BC4 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0x81 + bne _08086BCC +_08086BB4: + movs r0, #2 + b _08086BDC + .align 2, 0 +_08086BB8: .4byte 0x03000E14 +_08086BBC: .4byte 0x08086AD5 +_08086BC0: .4byte 0x03000E10 +_08086BC4: .4byte 0x03005B14 +_08086BC8: .4byte 0x08086AC9 +_08086BCC: + movs r0, #0x82 + bl AreAllPlayersInTradingState + cmp r0, #0 + bne _08086BDA +_08086BD6: + movs r0, #0 + b _08086BDC +_08086BDA: + movs r0, #1 +_08086BDC: + pop {r1} + bx r1 + thumb_func_end sub_08086B78 + + thumb_func_start sub_08086BE0 +sub_08086BE0: @ 0x08086BE0 + push {lr} + movs r0, #0x83 + bl IsAnyPlayerInTradingState + pop {r1} + bx r1 + thumb_func_end sub_08086BE0 + + thumb_func_start sub_08086BEC +sub_08086BEC: @ 0x08086BEC + push {lr} + ldr r0, _08086BFC + bl SetKeyInterceptCallback + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_08086BFC: .4byte 0x08086B11 + thumb_func_end sub_08086BEC + + thumb_func_start sub_08086C00 +sub_08086C00: @ 0x08086C00 + push {lr} + ldr r0, _08086C10 + bl SetKeyInterceptCallback + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_08086C10: .4byte 0x08086A5D + thumb_func_end sub_08086C00 + + thumb_func_start QueueExitLinkRoomKey +QueueExitLinkRoomKey: @ 0x08086C14 + push {lr} + ldr r0, _08086C24 + bl SetKeyInterceptCallback + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_08086C24: .4byte 0x08086B61 + thumb_func_end QueueExitLinkRoomKey + + thumb_func_start sub_08086C28 +sub_08086C28: @ 0x08086C28 + push {lr} + ldr r0, _08086C38 + bl SetKeyInterceptCallback + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_08086C38: .4byte 0x08086B75 + thumb_func_end sub_08086C28 + + thumb_func_start LoadTradeRoomPlayer +LoadTradeRoomPlayer: @ 0x08086C3C + push {r4, r5, r6, lr} + sub sp, #4 + adds r4, r0, #0 + adds r6, r2, #0 + strb r4, [r6] + movs r0, #0 + cmp r4, r1 + bne _08086C4E + movs r0, #1 +_08086C4E: + strb r0, [r6, #1] + ldr r1, _08086CA0 + lsls r0, r4, #2 + adds r0, r0, r1 + ldrb r0, [r0, #3] + strb r0, [r6, #2] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl GetLinkPlayerFacingDirection + strb r0, [r6, #3] + mov r5, sp + adds r5, #2 + adds r0, r4, #0 + mov r1, sp + adds r2, r5, #0 + bl GetLinkPlayerCoords + mov r0, sp + ldrh r0, [r0] + strh r0, [r6, #4] + ldrh r0, [r5] + strh r0, [r6, #6] + adds r0, r4, #0 + bl GetLinkPlayerElevation + strb r0, [r6, #8] + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0 + ldrsh r1, [r5, r2] + bl MapGridGetMetatileBehaviorAt + strh r0, [r6, #0xc] + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08086CA0: .4byte 0x02031FA8 + thumb_func_end LoadTradeRoomPlayer + + thumb_func_start sub_08086CA4 +sub_08086CA4: @ 0x08086CA4 + push {lr} + ldrb r0, [r0, #2] + cmp r0, #2 + beq _08086CB0 + cmp r0, #0 + bne _08086CB4 +_08086CB0: + movs r0, #1 + b _08086CB6 +_08086CB4: + movs r0, #0 +_08086CB6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08086CA4 + + thumb_func_start sub_08086CBC +sub_08086CBC: @ 0x08086CBC + push {lr} + ldrb r0, [r0, #2] + cmp r0, #2 + beq _08086CC8 + cmp r0, #0 + bne _08086CCC +_08086CC8: + movs r0, #1 + b _08086CCE +_08086CCC: + movs r0, #0 +_08086CCE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08086CBC + + thumb_func_start TryGetTileEventScript +TryGetTileEventScript: @ 0x08086CD4 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #2] + cmp r0, #2 + bne _08086CE6 + adds r0, r1, #4 + bl GetCoordEventScriptAtMapPosition + b _08086CE8 +_08086CE6: + movs r0, #0 +_08086CE8: + pop {r1} + bx r1 + thumb_func_end TryGetTileEventScript + + thumb_func_start PlayerIsAtSouthExit +PlayerIsAtSouthExit: @ 0x08086CEC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #2] + cmp r0, #2 + beq _08086CFA + cmp r0, #0 + bne _08086D10 +_08086CFA: + ldrb r0, [r4, #0xc] + bl MetatileBehavior_IsSouthArrowWarp + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08086D10 + ldrb r0, [r4, #3] + cmp r0, #1 + bne _08086D10 + movs r0, #1 + b _08086D12 +_08086D10: + movs r0, #0 +_08086D12: + pop {r4} + pop {r1} + bx r1 + thumb_func_end PlayerIsAtSouthExit + + thumb_func_start TryInteractWithPlayer +TryInteractWithPlayer: @ 0x08086D18 + push {r4, lr} + sub sp, #8 + adds r4, r0, #0 + ldrb r0, [r4, #2] + cmp r0, #0 + beq _08086D2C + cmp r0, #2 + beq _08086D2C + movs r0, #0 + b _08086DDA +_08086D2C: + ldr r0, [r4, #4] + ldr r1, [r4, #8] + str r0, [sp] + str r1, [sp, #4] + ldr r3, _08086D9C + ldrb r0, [r4, #3] + lsls r0, r0, #3 + adds r0, r0, r3 + ldr r0, [r0] + mov r1, sp + ldrh r1, [r1] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _08086DA0 + ldr r2, [sp] + ands r2, r1 + orrs r2, r0 + str r2, [sp] + asrs r1, r2, #0x10 + ldrb r0, [r4, #3] + lsls r0, r0, #3 + adds r3, #4 + adds r0, r0, r3 + ldr r0, [r0] + adds r0, r0, r1 + lsls r0, r0, #0x10 + ldr r1, _08086DA4 + ands r1, r2 + orrs r1, r0 + str r1, [sp] + ldr r2, _08086DA8 + ldr r0, [sp, #4] + ands r0, r2 + str r0, [sp, #4] + mov r0, sp + movs r2, #0 + ldrsh r0, [r0, r2] + asrs r1, r1, #0x10 + bl GetLinkPlayerIdAt + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r2, r1, #0 + cmp r1, #4 + beq _08086DD0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _08086D98 + ldr r0, _08086DAC + adds r0, r1, r0 + ldrb r0, [r0] + cmp r0, #0x80 + beq _08086DB4 +_08086D98: + ldr r0, _08086DB0 + b _08086DDA + .align 2, 0 +_08086D9C: .4byte 0x0830FCB0 +_08086DA0: .4byte 0xFFFF0000 +_08086DA4: .4byte 0x0000FFFF +_08086DA8: .4byte 0xFFFFFF00 +_08086DAC: .4byte 0x03000E10 +_08086DB0: .4byte 0x0824717B +_08086DB4: + adds r0, r2, #0 + bl GetLinkTrainerCardColor + cmp r0, #0 + bne _08086DC8 + ldr r0, _08086DC4 + b _08086DDA + .align 2, 0 +_08086DC4: .4byte 0x0824715D +_08086DC8: + ldr r0, _08086DCC + b _08086DDA + .align 2, 0 +_08086DCC: .4byte 0x0824716C +_08086DD0: + ldrb r1, [r4, #0xc] + ldrb r2, [r4, #3] + mov r0, sp + bl GetInteractedLinkPlayerScript +_08086DDA: + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TryInteractWithPlayer + + thumb_func_start GetDirectionForEventScript +GetDirectionForEventScript: @ 0x08086DE4 + push {lr} + adds r1, r0, #0 + ldr r0, _08086E30 + cmp r1, r0 + beq _08086E2A + ldr r0, _08086E34 + cmp r1, r0 + beq _08086E6C + ldr r0, _08086E38 + cmp r1, r0 + beq _08086E2A + ldr r0, _08086E3C + cmp r1, r0 + beq _08086E6C + ldr r0, _08086E40 + cmp r1, r0 + beq _08086E2A + ldr r0, _08086E44 + cmp r1, r0 + beq _08086E6C + ldr r0, _08086E48 + cmp r1, r0 + beq _08086E2A + ldr r0, _08086E4C + cmp r1, r0 + beq _08086E6C + ldr r0, _08086E50 + cmp r1, r0 + beq _08086E2A + ldr r0, _08086E54 + cmp r1, r0 + beq _08086E6C + ldr r0, _08086E58 + cmp r1, r0 + bne _08086E5C +_08086E2A: + movs r0, #0xa + b _08086E6E + .align 2, 0 +_08086E30: .4byte 0x08247067 +_08086E34: .4byte 0x08247082 +_08086E38: .4byte 0x0824709D +_08086E3C: .4byte 0x082470B8 +_08086E40: .4byte 0x082470FC +_08086E44: .4byte 0x08247111 +_08086E48: .4byte 0x08247126 +_08086E4C: .4byte 0x0824713B +_08086E50: .4byte 0x08247053 +_08086E54: .4byte 0x0824705D +_08086E58: .4byte 0x082470D4 +_08086E5C: + ldr r0, _08086E68 + cmp r1, r0 + beq _08086E6C + movs r0, #0 + b _08086E6E + .align 2, 0 +_08086E68: .4byte 0x082470DE +_08086E6C: + movs r0, #9 +_08086E6E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetDirectionForEventScript + + thumb_func_start sub_08086E74 +sub_08086E74: @ 0x08086E74 + push {lr} + bl ScriptContext2_Enable + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08086E74 + + thumb_func_start InitLinkRoomStartMenuScript +InitLinkRoomStartMenuScript: @ 0x08086E80 + push {lr} + movs r0, #6 + bl PlaySE + bl ShowStartMenu + bl ScriptContext2_Enable + pop {r0} + bx r0 + thumb_func_end InitLinkRoomStartMenuScript + + thumb_func_start InitMenuBasedScript +InitMenuBasedScript: @ 0x08086E94 + push {r4, lr} + adds r4, r0, #0 + movs r0, #5 + bl PlaySE + adds r0, r4, #0 + bl ScriptContext1_SetupScript + bl ScriptContext2_Enable + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end InitMenuBasedScript + + thumb_func_start CreateConfirmLeaveTradeRoomPrompt +CreateConfirmLeaveTradeRoomPrompt: @ 0x08086EB0 + push {lr} + movs r0, #6 + bl PlaySE + ldr r0, _08086EC8 + bl ScriptContext1_SetupScript + bl ScriptContext2_Enable + pop {r0} + bx r0 + .align 2, 0 +_08086EC8: .4byte 0x082471CE + thumb_func_end CreateConfirmLeaveTradeRoomPrompt + + thumb_func_start sub_08086ECC +sub_08086ECC: @ 0x08086ECC + push {r4, lr} + adds r4, r0, #0 + movs r0, #5 + bl PlaySE + adds r0, r4, #0 + bl ScriptContext1_SetupScript + bl ScriptContext2_Enable + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08086ECC + + thumb_func_start sub_08086EE8 +sub_08086EE8: @ 0x08086EE8 + push {lr} + ldr r0, _08086EF8 + bl ScriptContext1_SetupScript + bl ScriptContext2_Enable + pop {r0} + bx r0 + .align 2, 0 +_08086EF8: .4byte 0x082471E8 + thumb_func_end sub_08086EE8 + + thumb_func_start sub_08086EFC +sub_08086EFC: @ 0x08086EFC + push {lr} + bl IsUpdateLinkStateCBActive + cmp r0, #0 + bne _08086F0A + movs r0, #0 + b _08086F24 +_08086F0A: + bl GetLinkRecvQueueLength + cmp r0, #2 + bls _08086F1C + ldr r1, _08086F18 + movs r0, #1 + b _08086F20 + .align 2, 0 +_08086F18: .4byte 0x03000E18 +_08086F1C: + ldr r1, _08086F28 + movs r0, #0 +_08086F20: + strb r0, [r1] + ldrb r0, [r1] +_08086F24: + pop {r1} + bx r1 + .align 2, 0 +_08086F28: .4byte 0x03000E18 + thumb_func_end sub_08086EFC + + thumb_func_start sub_08086F2C +sub_08086F2C: @ 0x08086F2C + push {lr} + bl GetLinkRecvQueueLength + cmp r0, #1 + bls _08086F90 + bl IsUpdateLinkStateCBActive + cmp r0, #1 + bne _08086F90 + bl IsSendingKeysToLink + cmp r0, #1 + bne _08086F90 + ldr r0, _08086F7C + ldr r1, [r0] + ldr r0, _08086F80 + cmp r1, r0 + beq _08086F78 + ldr r0, _08086F84 + cmp r1, r0 + bne _08086F90 + ldr r0, _08086F88 + ldrb r2, [r0] + movs r1, #0 + strb r1, [r0] + cmp r2, #1 + beq _08086F78 + ldr r2, _08086F8C + ldrb r1, [r2, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08086F90 + ldrb r1, [r2, #0xa] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08086F90 +_08086F78: + movs r0, #1 + b _08086F92 + .align 2, 0 +_08086F7C: .4byte 0x03000E14 +_08086F80: .4byte 0x08086A81 +_08086F84: .4byte 0x08086A5D +_08086F88: .4byte 0x03000E18 +_08086F8C: .4byte 0x02037C74 +_08086F90: + movs r0, #0 +_08086F92: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08086F2C + + thumb_func_start sub_08086F98 +sub_08086F98: @ 0x08086F98 + push {lr} + bl GetLinkSendQueueLength + cmp r0, #1 + bls _08086FBC + bl IsUpdateLinkStateCBActive + cmp r0, #1 + bne _08086FBC + bl IsSendingKeysToLink + cmp r0, #1 + bne _08086FBC + ldr r0, _08086FC0 + ldr r1, [r0] + ldr r0, _08086FC4 + cmp r1, r0 + beq _08086FC8 +_08086FBC: + movs r0, #0 + b _08086FCA + .align 2, 0 +_08086FC0: .4byte 0x03000E14 +_08086FC4: .4byte 0x08086AA5 +_08086FC8: + movs r0, #1 +_08086FCA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08086F98 + + thumb_func_start sub_08086FD0 +sub_08086FD0: @ 0x08086FD0 + push {lr} + ldr r0, _08086FE8 + ldrb r0, [r0] + cmp r0, #0 + bne _08086FEC + bl IsSendingKeysToLink + cmp r0, #0 + beq _08086FEC + movs r0, #1 + b _08086FEE + .align 2, 0 +_08086FE8: .4byte 0x0300319C +_08086FEC: + movs r0, #0 +_08086FEE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08086FD0 + + thumb_func_start GetLinkSendQueueLength +GetLinkSendQueueLength: @ 0x08086FF4 + push {lr} + ldr r0, _08087008 + ldrb r0, [r0] + cmp r0, #0 + bne _08087014 + ldr r0, _0808700C + ldr r1, _08087010 + adds r0, r0, r1 + ldrb r0, [r0] + b _0808701C + .align 2, 0 +_08087008: .4byte 0x0300319C +_0808700C: .4byte 0x03003210 +_08087010: .4byte 0x00000339 +_08087014: + ldr r0, _08087020 + ldr r1, _08087024 + adds r0, r0, r1 + ldrb r0, [r0] +_0808701C: + pop {r1} + bx r1 + .align 2, 0 +_08087020: .4byte 0x030050A0 +_08087024: .4byte 0x000008D2 + thumb_func_end GetLinkSendQueueLength + + thumb_func_start ZeroLinkPlayerEventObject +ZeroLinkPlayerEventObject: @ 0x08087028 + movs r1, #0 + str r1, [r0] + bx lr + .align 2, 0 + thumb_func_end ZeroLinkPlayerEventObject + + thumb_func_start ClearLinkPlayerEventObjects +ClearLinkPlayerEventObjects: @ 0x08087030 + push {lr} + ldr r0, _08087040 + movs r1, #0 + movs r2, #0x10 + bl memset + pop {r0} + bx r0 + .align 2, 0 +_08087040: .4byte 0x02031FA8 + thumb_func_end ClearLinkPlayerEventObjects + + thumb_func_start ZeroEventObject +ZeroEventObject: @ 0x08087044 + push {lr} + movs r1, #0 + movs r2, #0x24 + bl memset + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ZeroEventObject + + thumb_func_start SpawnLinkPlayerEventObject +SpawnLinkPlayerEventObject: @ 0x08087054 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sb, r1 + mov sl, r2 + mov r8, r3 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + mov r0, sb + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + mov r1, sl + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sl, r1 + mov r2, r8 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + bl GetFirstInactiveEventObjectId + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r4, r7, #2 + ldr r0, _080870F8 + adds r4, r4, r0 + lsls r5, r6, #3 + adds r5, r5, r6 + lsls r5, r5, #2 + ldr r0, _080870FC + adds r5, r5, r0 + adds r0, r4, #0 + bl ZeroLinkPlayerEventObject + adds r0, r5, #0 + bl ZeroEventObject + movs r2, #0 + movs r1, #1 + movs r0, #1 + strb r0, [r4] + strb r7, [r4, #1] + strb r6, [r4, #2] + strb r2, [r4, #3] + ldrb r0, [r5] + orrs r0, r1 + mov r2, r8 + ands r2, r1 + lsls r2, r2, #1 + movs r1, #3 + rsbs r1, r1, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5] + movs r0, #2 + strb r0, [r5, #0x19] + movs r0, #0x40 + strb r0, [r5, #4] + mov r0, sb + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov sb, r0 + mov r1, sl + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + mov sl, r1 + adds r0, r5, #0 + mov r1, sb + mov r2, sl + bl InitLinkPlayerEventObjectPos + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080870F8: .4byte 0x02031FA8 +_080870FC: .4byte 0x02036FF0 + thumb_func_end SpawnLinkPlayerEventObject + + thumb_func_start InitLinkPlayerEventObjectPos +InitLinkPlayerEventObjectPos: @ 0x08087100 + push {r4, lr} + adds r4, r0, #0 + adds r0, r1, #0 + adds r1, r2, #0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + strh r0, [r4, #0x10] + strh r1, [r4, #0x12] + strh r0, [r4, #0x14] + strh r1, [r4, #0x16] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r2, r4, #0 + adds r2, #0xc + adds r3, r4, #0 + adds r3, #0xe + bl SetSpritePosToMapCoords + ldrh r0, [r4, #0xc] + adds r0, #8 + strh r0, [r4, #0xc] + adds r0, r4, #0 + bl EventObjectUpdateZCoord + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end InitLinkPlayerEventObjectPos + + thumb_func_start sub_08087140 +sub_08087140: @ 0x08087140 + push {lr} + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r2, r1, #0x18 + ldr r1, _08087168 + lsrs r0, r0, #0x16 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, #0 + beq _08087162 + ldrb r0, [r1, #2] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _0808716C + adds r1, r1, r0 + strb r2, [r1, #0x19] +_08087162: + pop {r0} + bx r0 + .align 2, 0 +_08087168: .4byte 0x02031FA8 +_0808716C: .4byte 0x02036FF0 + thumb_func_end sub_08087140 + + thumb_func_start sub_08087170 +sub_08087170: @ 0x08087170 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + ldr r1, _080871B0 + adds r5, r0, r1 + ldrb r1, [r5, #2] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080871B4 + adds r4, r0, r1 + ldrb r0, [r4, #4] + cmp r0, #0x40 + beq _0808719C + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080871B8 + adds r0, r0, r1 + bl DestroySprite +_0808719C: + movs r0, #0 + strb r0, [r5] + ldrb r1, [r4] + subs r0, #2 + ands r0, r1 + strb r0, [r4] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080871B0: .4byte 0x02031FA8 +_080871B4: .4byte 0x02036FF0 +_080871B8: .4byte 0x020205AC + thumb_func_end sub_08087170 + + thumb_func_start GetSpriteForLinkedPlayer +GetSpriteForLinkedPlayer: @ 0x080871BC + lsls r0, r0, #0x18 + ldr r1, _080871D4 + lsrs r0, r0, #0x16 + adds r0, r0, r1 + ldrb r1, [r0, #2] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080871D8 + adds r0, r0, r1 + ldrb r0, [r0, #4] + bx lr + .align 2, 0 +_080871D4: .4byte 0x02031FA8 +_080871D8: .4byte 0x02036FF0 + thumb_func_end GetSpriteForLinkedPlayer + + thumb_func_start GetLinkPlayerCoords +GetLinkPlayerCoords: @ 0x080871DC + lsls r0, r0, #0x18 + ldr r3, _080871FC + lsrs r0, r0, #0x16 + adds r0, r0, r3 + ldrb r3, [r0, #2] + lsls r0, r3, #3 + adds r0, r0, r3 + lsls r0, r0, #2 + ldr r3, _08087200 + adds r0, r0, r3 + ldrh r3, [r0, #0x10] + strh r3, [r1] + ldrh r0, [r0, #0x12] + strh r0, [r2] + bx lr + .align 2, 0 +_080871FC: .4byte 0x02031FA8 +_08087200: .4byte 0x02036FF0 + thumb_func_end GetLinkPlayerCoords + + thumb_func_start GetLinkPlayerFacingDirection +GetLinkPlayerFacingDirection: @ 0x08087204 + lsls r0, r0, #0x18 + ldr r1, _0808721C + lsrs r0, r0, #0x16 + adds r0, r0, r1 + ldrb r1, [r0, #2] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08087220 + adds r0, r0, r1 + ldrb r0, [r0, #0x19] + bx lr + .align 2, 0 +_0808721C: .4byte 0x02031FA8 +_08087220: .4byte 0x02036FF0 + thumb_func_end GetLinkPlayerFacingDirection + + thumb_func_start GetLinkPlayerElevation +GetLinkPlayerElevation: @ 0x08087224 + lsls r0, r0, #0x18 + ldr r1, _08087240 + lsrs r0, r0, #0x16 + adds r0, r0, r1 + ldrb r1, [r0, #2] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08087244 + adds r0, r0, r1 + ldrb r0, [r0, #0xb] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bx lr + .align 2, 0 +_08087240: .4byte 0x02031FA8 +_08087244: .4byte 0x02036FF0 + thumb_func_end GetLinkPlayerElevation + + thumb_func_start sub_08087248 +sub_08087248: @ 0x08087248 + lsls r0, r0, #0x18 + ldr r1, _08087268 + lsrs r0, r0, #0x16 + adds r0, r0, r1 + ldrb r1, [r0, #2] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808726C + adds r0, r0, r1 + adds r0, #0x21 + movs r1, #0 + ldrsb r1, [r0, r1] + movs r0, #0x10 + subs r0, r0, r1 + bx lr + .align 2, 0 +_08087268: .4byte 0x02031FA8 +_0808726C: .4byte 0x02036FF0 + thumb_func_end sub_08087248 + + thumb_func_start GetLinkPlayerIdAt +GetLinkPlayerIdAt: @ 0x08087270 + push {r4, r5, r6, lr} + movs r2, #0 + ldr r5, _080872B4 + lsls r0, r0, #0x10 + asrs r4, r0, #0x10 + lsls r1, r1, #0x10 + asrs r3, r1, #0x10 +_0808727E: + lsls r0, r2, #2 + adds r1, r0, r5 + ldrb r0, [r1] + cmp r0, #0 + beq _080872BC + ldrb r0, [r1, #3] + cmp r0, #0 + beq _08087292 + cmp r0, #2 + bne _080872BC +_08087292: + ldrb r1, [r1, #2] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080872B8 + adds r1, r0, r1 + movs r6, #0x10 + ldrsh r0, [r1, r6] + cmp r0, r4 + bne _080872BC + movs r6, #0x12 + ldrsh r0, [r1, r6] + cmp r0, r3 + bne _080872BC + adds r0, r2, #0 + b _080872C8 + .align 2, 0 +_080872B4: .4byte 0x02031FA8 +_080872B8: .4byte 0x02036FF0 +_080872BC: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #3 + bls _0808727E + movs r0, #4 +_080872C8: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetLinkPlayerIdAt + + thumb_func_start SetPlayerFacingDirection +SetPlayerFacingDirection: @ 0x080872D0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + adds r2, r3, #0 + lsrs r0, r0, #0x16 + ldr r1, _08087300 + adds r5, r0, r1 + ldrb r1, [r5, #2] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08087304 + adds r6, r0, r1 + ldrb r0, [r5] + cmp r0, #0 + beq _0808732C + cmp r3, #0xa + bls _08087308 + ldrb r0, [r6] + movs r1, #4 + orrs r0, r1 + strb r0, [r6] + b _0808732C + .align 2, 0 +_08087300: .4byte 0x02031FA8 +_08087304: .4byte 0x02036FF0 +_08087308: + ldr r4, _08087334 + ldr r1, _08087338 + ldrb r0, [r5, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r3, [r0] + adds r0, r5, #0 + adds r1, r6, #0 + bl _call_via_r3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r0, r0, r4 + ldr r2, [r0] + adds r0, r5, #0 + adds r1, r6, #0 + bl _call_via_r2 +_0808732C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08087334: .4byte 0x0830FD4C +_08087338: .4byte 0x0830FD14 + thumb_func_end SetPlayerFacingDirection + + thumb_func_start MovementEventModeCB_Normal +MovementEventModeCB_Normal: @ 0x0808733C + push {r4, lr} + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r4, _08087358 + lsls r3, r2, #2 + adds r3, r3, r4 + ldr r3, [r3] + bl _call_via_r3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08087358: .4byte 0x0830FD20 + thumb_func_end MovementEventModeCB_Normal + + thumb_func_start MovementEventModeCB_Ignored +MovementEventModeCB_Ignored: @ 0x0808735C + movs r0, #1 + bx lr + thumb_func_end MovementEventModeCB_Ignored + + thumb_func_start MovementEventModeCB_Normal_2 +MovementEventModeCB_Normal_2: @ 0x08087360 + push {r4, lr} + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r4, _0808737C + lsls r3, r2, #2 + adds r3, r3, r4 + ldr r3, [r3] + bl _call_via_r3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0808737C: .4byte 0x0830FD20 + thumb_func_end MovementEventModeCB_Normal_2 + + thumb_func_start FacingHandler_DoNothing +FacingHandler_DoNothing: @ 0x08087380 + movs r0, #0 + bx lr + thumb_func_end FacingHandler_DoNothing + + thumb_func_start FacingHandler_DpadMovement +FacingHandler_DpadMovement: @ 0x08087384 + push {r4, r5, r6, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r5, #0x19] + bl FlipVerticalAndClearForced + strb r0, [r5, #0x19] + ldrb r1, [r5, #0x19] + mov r6, sp + adds r6, #2 + adds r0, r5, #0 + mov r2, sp + adds r3, r6, #0 + bl EventObjectMoveDestCoords + ldrb r0, [r4, #2] + ldrb r1, [r5, #0x19] + mov r2, sp + movs r3, #0 + ldrsh r2, [r2, r3] + movs r4, #0 + ldrsh r3, [r6, r4] + bl LinkPlayerDetectCollision + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080873E2 + adds r1, r5, #0 + adds r1, #0x21 + movs r0, #0x10 + strb r0, [r1] + mov r0, sp + movs r2, #0 + ldrsh r1, [r0, r2] + movs r3, #0 + ldrsh r2, [r6, r3] + adds r0, r5, #0 + bl ShiftEventObjectCoords + adds r0, r5, #0 + bl EventObjectUpdateZCoord + movs r0, #1 + b _080873E4 +_080873E2: + movs r0, #0 +_080873E4: + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end FacingHandler_DpadMovement + + thumb_func_start FacingHandler_ForcedFacingChange +FacingHandler_ForcedFacingChange: @ 0x080873EC + push {r4, lr} + adds r4, r1, #0 + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r4, #0x19] + bl FlipVerticalAndClearForced + strb r0, [r4, #0x19] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end FacingHandler_ForcedFacingChange + + thumb_func_start MovementStatusHandler_EnterFreeMode +MovementStatusHandler_EnterFreeMode: @ 0x08087404 + movs r1, #0 + strb r1, [r0, #3] + bx lr + .align 2, 0 + thumb_func_end MovementStatusHandler_EnterFreeMode + + thumb_func_start MovementStatusHandler_TryAdvanceScript +MovementStatusHandler_TryAdvanceScript: @ 0x0808740C + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r4, r1, #0 + adds r5, r4, #0 + adds r5, #0x21 + ldrb r0, [r5] + subs r0, #1 + strb r0, [r5] + movs r0, #1 + strb r0, [r6, #3] + ldrb r0, [r4, #0x19] + adds r1, #0xc + adds r2, r4, #0 + adds r2, #0xe + bl MoveCoords + ldrb r0, [r5] + cmp r0, #0 + bne _0808743C + adds r0, r4, #0 + bl ShiftStillEventObjectCoords + movs r0, #2 + strb r0, [r6, #3] +_0808743C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end MovementStatusHandler_TryAdvanceScript + + thumb_func_start FlipVerticalAndClearForced +FlipVerticalAndClearForced: @ 0x08087444 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r2, r1, #0x18 + subs r0, #1 + cmp r0, #9 + bhi _0808749C + lsls r0, r0, #2 + ldr r1, _08087460 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08087460: .4byte 0x08087464 +_08087464: @ jump table + .4byte _0808748C @ case 0 + .4byte _08087490 @ case 1 + .4byte _08087494 @ case 2 + .4byte _08087498 @ case 3 + .4byte _0808749C @ case 4 + .4byte _0808749C @ case 5 + .4byte _0808748C @ case 6 + .4byte _08087490 @ case 7 + .4byte _08087494 @ case 8 + .4byte _08087498 @ case 9 +_0808748C: + movs r0, #2 + b _0808749E +_08087490: + movs r0, #1 + b _0808749E +_08087494: + movs r0, #3 + b _0808749E +_08087498: + movs r0, #4 + b _0808749E +_0808749C: + adds r0, r2, #0 +_0808749E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end FlipVerticalAndClearForced + + thumb_func_start LinkPlayerDetectCollision +LinkPlayerDetectCollision: @ 0x080874A4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + mov ip, r2 + lsls r3, r3, #0x10 + movs r4, #0 + ldr r0, _08087508 + mov sb, r0 + lsrs r2, r3, #0x10 + mov sl, r2 + asrs r6, r3, #0x10 +_080874C8: + mov r7, ip + lsls r3, r7, #0x10 + mov r0, sl + lsls r5, r0, #0x10 + cmp r4, r8 + beq _0808750C + lsls r0, r4, #3 + adds r0, r0, r4 + lsls r0, r0, #2 + mov r2, sb + adds r1, r0, r2 + movs r7, #0x10 + ldrsh r0, [r1, r7] + asrs r2, r3, #0x10 + cmp r0, r2 + bne _080874F0 + movs r7, #0x12 + ldrsh r0, [r1, r7] + cmp r0, r6 + beq _08087502 +_080874F0: + movs r7, #0x14 + ldrsh r0, [r1, r7] + cmp r0, r2 + bne _0808750C + movs r0, #0x16 + ldrsh r1, [r1, r0] + asrs r0, r5, #0x10 + cmp r1, r0 + bne _0808750C +_08087502: + movs r0, #1 + b _08087522 + .align 2, 0 +_08087508: .4byte 0x02036FF0 +_0808750C: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xf + bls _080874C8 + asrs r0, r3, #0x10 + asrs r1, r5, #0x10 + bl MapGridIsImpassableAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_08087522: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end LinkPlayerDetectCollision + + thumb_func_start CreateLinkPlayerSprite +CreateLinkPlayerSprite: @ 0x08087530 + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + lsls r2, r5, #2 + ldr r0, _08087564 + adds r2, r2, r0 + ldrb r1, [r2, #2] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08087568 + adds r4, r0, r1 + ldrb r0, [r2] + cmp r0, #0 + beq _080875DE + subs r0, r3, #1 + cmp r0, #4 + bhi _080875BA + lsls r0, r0, #2 + ldr r1, _0808756C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08087564: .4byte 0x02031FA8 +_08087568: .4byte 0x02036FF0 +_0808756C: .4byte 0x08087570 +_08087570: @ jump table + .4byte _08087590 @ case 0 + .4byte _08087590 @ case 1 + .4byte _0808759C @ case 2 + .4byte _08087584 @ case 3 + .4byte _08087584 @ case 4 +_08087584: + ldrb r0, [r4] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1f + bl sub_0808B6D0 + b _080875A8 +_08087590: + ldrb r0, [r4] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1f + bl GetFRLGAvatarGraphicsIdByGender + b _080875A8 +_0808759C: + ldrb r1, [r4] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1f + movs r0, #0 + bl GetPlayerAvatarGraphicsIdByStateIdAndGender +_080875A8: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080875E8 + movs r2, #0 + str r2, [sp] + movs r3, #0 + bl AddPseudoEventObject + strb r0, [r4, #4] +_080875BA: + ldrb r1, [r4, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080875EC + adds r0, r0, r1 + adds r3, r0, #0 + adds r3, #0x3e + ldrb r1, [r3] + movs r2, #2 + orrs r1, r2 + strb r1, [r3] + strh r5, [r0, #0x2e] + ldrb r1, [r4] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4] +_080875DE: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080875E8: .4byte 0x080875F1 +_080875EC: .4byte 0x020205AC + thumb_func_end CreateLinkPlayerSprite + + thumb_func_start SpriteCB_LinkPlayer +SpriteCB_LinkPlayer: @ 0x080875F0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #0x2e + ldrsh r4, [r5, r0] + lsls r4, r4, #2 + ldr r0, _08087654 + adds r4, r4, r0 + ldrb r1, [r4, #2] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08087658 + adds r6, r0, r1 + ldrh r0, [r6, #0xc] + strh r0, [r5, #0x20] + ldrh r0, [r6, #0xe] + strh r0, [r5, #0x22] + ldrb r0, [r6, #0xb] + lsrs r0, r0, #4 + adds r1, r5, #0 + movs r2, #1 + bl SetObjectSubpriorityByZCoord + ldrb r0, [r6, #0xb] + lsrs r0, r0, #4 + bl sub_08096718 + movs r1, #3 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r5, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #5] + ldrb r0, [r4, #3] + cmp r0, #0 + bne _0808765C + ldrb r0, [r6, #0x19] + bl GetJumpInPlaceMovementAction + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl StartSpriteAnim + b _0808766E + .align 2, 0 +_08087654: .4byte 0x02031FA8 +_08087658: .4byte 0x02036FF0 +_0808765C: + ldrb r0, [r6, #0x19] + bl GetJumpInPlaceTurnAroundMovementAction + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl StartSpriteAnimIfDifferent +_0808766E: + adds r0, r5, #0 + movs r1, #0 + bl UpdateEventObjectSpriteVisibility + ldrb r0, [r6] + lsls r0, r0, #0x1d + cmp r0, #0 + bge _080876A0 + ldrh r0, [r5, #0x3c] + movs r1, #4 + ands r1, r0 + lsls r1, r1, #0x10 + adds r3, r5, #0 + adds r3, #0x3e + lsrs r1, r1, #0x12 + lsls r1, r1, #2 + ldrb r2, [r3] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r5, #0x3c] + adds r0, #1 + strh r0, [r5, #0x3c] +_080876A0: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SpriteCB_LinkPlayer + diff --git a/asm/palette.s b/asm/palette.s new file mode 100644 index 0000000..a7b11c4 --- /dev/null +++ b/asm/palette.s @@ -0,0 +1,2851 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start LoadCompressedPalette +LoadCompressedPalette: @ 0x080A11BC + push {r4, r5, r6, lr} + adds r4, r1, #0 + adds r5, r2, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + ldr r6, _080A11F4 + adds r1, r6, #0 + bl LZDecompressVram + lsls r4, r4, #1 + ldr r1, _080A11F8 + adds r1, r4, r1 + lsrs r5, r5, #0x11 + adds r0, r6, #0 + adds r2, r5, #0 + bl CpuSet + ldr r0, _080A11FC + adds r4, r4, r0 + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl CpuSet + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080A11F4: .4byte 0x02037C88 +_080A11F8: .4byte 0x020373B4 +_080A11FC: .4byte 0x020377B4 + thumb_func_end LoadCompressedPalette + + thumb_func_start LoadPalette +LoadPalette: @ 0x080A1200 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r4, r1, #0 + adds r5, r2, #0 + lsls r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r4, r4, #0xf + ldr r1, _080A1230 + adds r1, r4, r1 + lsrs r5, r5, #0x11 + adds r2, r5, #0 + bl CpuSet + ldr r0, _080A1234 + adds r4, r4, r0 + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl CpuSet + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080A1230: .4byte 0x020373B4 +_080A1234: .4byte 0x020377B4 + thumb_func_end LoadPalette + + thumb_func_start FillPalette +FillPalette: @ 0x080A1238 + push {r4, r5, r6, lr} + sub sp, #4 + adds r6, r0, #0 + adds r4, r1, #0 + adds r5, r2, #0 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + lsls r4, r4, #0x10 + lsls r5, r5, #0x10 + mov r0, sp + strh r6, [r0] + lsrs r4, r4, #0xf + ldr r1, _080A1280 + adds r1, r4, r1 + lsrs r5, r5, #0x11 + movs r0, #0x80 + lsls r0, r0, #0x11 + orrs r5, r0 + mov r0, sp + adds r2, r5, #0 + bl CpuSet + mov r0, sp + adds r0, #2 + strh r6, [r0] + ldr r1, _080A1284 + adds r4, r4, r1 + adds r1, r4, #0 + adds r2, r5, #0 + bl CpuSet + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080A1280: .4byte 0x020373B4 +_080A1284: .4byte 0x020377B4 + thumb_func_end FillPalette + + thumb_func_start TransferPlttBuffer +TransferPlttBuffer: @ 0x080A1288 + push {r4, r5, lr} + ldr r4, _080A12D0 + ldrb r1, [r4, #8] + movs r5, #0x80 + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _080A12CA + ldr r1, _080A12D4 + movs r2, #0xa0 + lsls r2, r2, #0x13 + ldr r0, _080A12D8 + str r1, [r0] + str r2, [r0, #4] + ldr r1, _080A12DC + str r1, [r0, #8] + ldr r0, [r0, #8] + ldr r0, _080A12E0 + str r3, [r0] + ldrb r1, [r4, #9] + movs r0, #3 + ands r0, r1 + cmp r0, #2 + bne _080A12CA + ldrb r1, [r4, #7] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _080A12CA + bl UpdateBlendRegisters +_080A12CA: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A12D0: .4byte 0x02037C74 +_080A12D4: .4byte 0x020377B4 +_080A12D8: .4byte 0x040000D4 +_080A12DC: .4byte 0x80000200 +_080A12E0: .4byte 0x02037C84 + thumb_func_end TransferPlttBuffer + + thumb_func_start UpdatePaletteFade +UpdatePaletteFade: @ 0x080A12E4 + push {lr} + ldr r0, _080A12F4 + ldr r0, [r0] + cmp r0, #0 + beq _080A12F8 + movs r0, #0xff + b _080A1330 + .align 2, 0 +_080A12F4: .4byte 0x02037C84 +_080A12F8: + ldr r0, _080A130C + ldrb r0, [r0, #9] + movs r1, #3 + ands r1, r0 + cmp r1, #0 + bne _080A1310 + bl UpdateNormalPaletteFade + b _080A131E + .align 2, 0 +_080A130C: .4byte 0x02037C74 +_080A1310: + cmp r1, #1 + bne _080A131A + bl UpdateFastPaletteFade + b _080A131E +_080A131A: + bl UpdateHardwarePaletteFade +_080A131E: + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r2, _080A1334 + ldr r0, _080A1338 + ldr r0, [r0] + movs r1, #0 + orrs r0, r1 + str r0, [r2] + adds r0, r3, #0 +_080A1330: + pop {r1} + bx r1 + .align 2, 0 +_080A1334: .4byte 0x02037C84 +_080A1338: .4byte 0x02037C74 + thumb_func_end UpdatePaletteFade + + thumb_func_start ResetPaletteFade +ResetPaletteFade: @ 0x080A133C + push {r4, lr} + movs r4, #0 +_080A1340: + adds r0, r4, #0 + bl ResetPaletteStruct + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xf + bls _080A1340 + bl ResetPaletteFadeControl + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ResetPaletteFade + + thumb_func_start ReadPlttIntoBuffers +ReadPlttIntoBuffers: @ 0x080A135C + push {r4, r5, r6, r7, lr} + movs r0, #0xa0 + lsls r0, r0, #0x13 + mov ip, r0 + movs r4, #0 + ldr r7, _080A1390 + ldr r6, _080A1394 + ldr r5, _080A1398 +_080A136C: + lsls r1, r4, #1 + adds r3, r1, r7 + mov r0, ip + adds r2, r1, r0 + ldrh r0, [r2] + strh r0, [r3] + adds r1, r1, r6 + ldrh r0, [r2] + strh r0, [r1] + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, r5 + bls _080A136C + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A1390: .4byte 0x020373B4 +_080A1394: .4byte 0x020377B4 +_080A1398: .4byte 0x000001FF + thumb_func_end ReadPlttIntoBuffers + + thumb_func_start BeginNormalPaletteFade +BeginNormalPaletteFade: @ 0x080A139C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldr r0, [sp, #0x18] + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov ip, r2 + lsls r3, r3, #0x18 + lsrs r7, r3, #0x18 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + ldr r5, _080A13CC + ldrb r1, [r5, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A13D0 + movs r0, #0 + b _080A14C8 + .align 2, 0 +_080A13CC: .4byte 0x02037C74 +_080A13D0: + ldrb r0, [r5, #0xa] + movs r3, #0x79 + rsbs r3, r3, #0 + adds r2, r3, #0 + ands r2, r0 + movs r0, #0x10 + orrs r2, r0 + strb r2, [r5, #0xa] + lsls r0, r6, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + bge _080A13FE + lsls r0, r2, #0x19 + lsrs r0, r0, #0x1c + rsbs r1, r1, #0 + adds r0, r0, r1 + movs r1, #0xf + ands r0, r1 + lsls r0, r0, #3 + ands r2, r3 + orrs r2, r0 + strb r2, [r5, #0xa] + movs r6, #0 +_080A13FE: + str r4, [r5] + movs r4, #0x3f + adds r1, r6, #0 + ands r1, r4 + ldrb r2, [r5, #4] + movs r3, #0x40 + rsbs r3, r3, #0 + adds r0, r3, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #4] + ands r6, r4 + ldrb r0, [r5, #8] + ands r3, r0 + orrs r3, r6 + strb r3, [r5, #8] + movs r0, #0x1f + mov r1, ip + ands r1, r0 + lsls r1, r1, #6 + ldrh r2, [r5, #4] + ldr r0, _080A146C + ands r0, r2 + orrs r0, r1 + strh r0, [r5, #4] + lsls r2, r7, #3 + ldrb r1, [r5, #5] + movs r0, #7 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #5] + ldr r1, _080A1470 + mov r0, r8 + ands r1, r0 + ldrh r2, [r5, #6] + ldr r0, _080A1474 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, #6] + ldrb r0, [r5, #7] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #7] + ldrb r1, [r5, #9] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r5, #9] + cmp ip, r7 + bhs _080A1478 + movs r0, #0x41 + rsbs r0, r0, #0 + ands r3, r0 + b _080A147C + .align 2, 0 +_080A146C: .4byte 0xFFFFF83F +_080A1470: .4byte 0x00007FFF +_080A1474: .4byte 0xFFFF8000 +_080A1478: + movs r0, #0x40 + orrs r3, r0 +_080A147C: + strb r3, [r5, #8] + bl UpdatePaletteFade + ldr r4, _080A14D4 + ldrb r1, [r4, #8] + lsrs r5, r1, #7 + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #8] + ldr r0, _080A14D8 + movs r1, #0xa0 + lsls r1, r1, #0x13 + ldr r2, _080A14DC + bl CpuSet + ldr r1, _080A14E0 + movs r0, #0 + str r0, [r1] + ldrb r1, [r4, #9] + movs r0, #3 + ands r0, r1 + cmp r0, #2 + bne _080A14B8 + ldrb r1, [r4, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A14B8 + bl UpdateBlendRegisters +_080A14B8: + ldr r2, _080A14D4 + lsls r3, r5, #7 + ldrb r1, [r2, #8] + movs r0, #0x7f + ands r0, r1 + orrs r0, r3 + strb r0, [r2, #8] + movs r0, #1 +_080A14C8: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080A14D4: .4byte 0x02037C74 +_080A14D8: .4byte 0x020377B4 +_080A14DC: .4byte 0x04000100 +_080A14E0: .4byte 0x02037C84 + thumb_func_end BeginNormalPaletteFade + + thumb_func_start unref_sub_80A1C1C +unref_sub_80A1C1C: @ 0x080A14E4 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #8 + mov r8, r0 + adds r4, r1, #0 + adds r6, r2, #0 + ldr r5, [sp, #0x1c] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + str r3, [sp, #4] + bl ReadPlttIntoBuffers + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + str r5, [sp] + mov r0, r8 + adds r1, r4, #0 + adds r2, r6, #0 + ldr r3, [sp, #4] + bl BeginNormalPaletteFade + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end unref_sub_80A1C1C + + thumb_func_start unref_sub_80A1C64 +unref_sub_80A1C64: @ 0x080A152C + push {r4, r5, r6, r7, lr} + adds r6, r1, #0 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r5, #0 +_080A1536: + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #2 + ldr r1, _080A1584 + adds r4, r0, r1 + ldrb r0, [r4, #4] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _080A1594 + ldr r2, [r4] + ldrb r0, [r2, #8] + lsls r0, r0, #0x1f + lsrs r0, r0, #0x1f + cmp r0, r7 + bne _080A1594 + ldrh r1, [r4, #6] + lsls r1, r1, #0x14 + lsrs r1, r1, #0x19 + ldrb r0, [r2, #0xb] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1b + cmp r1, r0 + bne _080A1572 + adds r0, r4, #0 + bl unused_sub_80A1F00 + ldrb r0, [r4, #4] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _080A1594 +_080A1572: + ldrb r0, [r4, #8] + cmp r0, #0 + bne _080A1588 + adds r0, r4, #0 + adds r1, r6, #0 + bl unused_sub_80A1CDC + b _080A158C + .align 2, 0 +_080A1584: .4byte 0x02037BB4 +_080A1588: + subs r0, #1 + strb r0, [r4, #8] +_080A158C: + adds r0, r4, #0 + adds r1, r6, #0 + bl unused_sub_80A1E40 +_080A1594: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0xf + bls _080A1536 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end unref_sub_80A1C64 + + thumb_func_start unused_sub_80A1CDC +unused_sub_80A1CDC: @ 0x080A15A4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + mov r8, r1 + movs r6, #0 + ldrh r1, [r4, #6] + lsls r1, r1, #0x14 + lsrs r1, r1, #0x19 + ldr r3, [r4] + ldrb r0, [r3, #9] + lsls r2, r0, #0x19 + lsrs r0, r2, #0x1b + adds r5, r1, #0 + muls r5, r0, r5 + ldrb r1, [r3, #8] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080A1640 + lsrs r0, r2, #0x1b + cmp r6, r0 + bhs _080A168C + ldr r0, _080A1630 + mov ip, r0 + ldr r7, _080A1634 +_080A15D8: + ldr r0, [r4, #4] + lsls r0, r0, #0xb + lsrs r0, r0, #0x16 + lsls r0, r0, #1 + add r0, ip + ldr r1, [r3, #4] + lsls r2, r5, #1 + adds r1, r2, r1 + ldrh r1, [r1] + strh r1, [r0] + ldr r0, [r4, #4] + lsls r0, r0, #0xb + lsrs r0, r0, #0x16 + lsls r0, r0, #1 + adds r0, r0, r7 + ldr r1, [r4] + ldr r1, [r1, #4] + adds r2, r2, r1 + ldrh r1, [r2] + strh r1, [r0] + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r2, [r4, #4] + lsls r1, r2, #0xb + lsrs r1, r1, #0x16 + adds r1, #1 + ldr r0, _080A1638 + ands r1, r0 + lsls r1, r1, #0xb + ldr r0, _080A163C + ands r0, r2 + orrs r0, r1 + str r0, [r4, #4] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r3, [r4] + ldrb r0, [r3, #9] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1b + cmp r6, r0 + blo _080A15D8 + b _080A168C + .align 2, 0 +_080A1630: .4byte 0x020373B4 +_080A1634: .4byte 0x020377B4 +_080A1638: .4byte 0x000003FF +_080A163C: .4byte 0xFFE007FF +_080A1640: + lsrs r0, r2, #0x1b + cmp r6, r0 + bhs _080A168C + ldr r3, _080A16F8 +_080A1648: + ldr r1, [r4, #4] + lsls r1, r1, #0xb + lsrs r1, r1, #0x16 + lsls r1, r1, #1 + adds r1, r1, r3 + ldr r0, [r4] + ldr r2, [r0, #4] + lsls r0, r5, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r2, [r4, #4] + lsls r1, r2, #0xb + lsrs r1, r1, #0x16 + adds r1, #1 + ldr r0, _080A16FC + ands r1, r0 + lsls r1, r1, #0xb + ldr r0, _080A1700 + ands r0, r2 + orrs r0, r1 + str r0, [r4, #4] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, [r4] + ldrb r0, [r0, #9] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1b + cmp r6, r0 + blo _080A1648 +_080A168C: + ldrh r0, [r4, #4] + lsls r0, r0, #0x15 + lsrs r0, r0, #0x17 + lsls r0, r0, #0xb + ldr r1, [r4, #4] + ldr r2, _080A1700 + ands r1, r2 + orrs r1, r0 + str r1, [r4, #4] + ldr r3, [r4] + ldrb r0, [r3, #0xa] + strb r0, [r4, #8] + ldrh r2, [r4, #6] + lsls r0, r2, #0x14 + lsrs r0, r0, #0x19 + adds r0, #1 + movs r1, #0x7f + ands r0, r1 + lsls r0, r0, #5 + ldr r5, _080A1704 + adds r1, r5, #0 + ands r1, r2 + orrs r1, r0 + strh r1, [r4, #6] + lsls r1, r1, #0x14 + lsrs r1, r1, #0x19 + ldrb r0, [r3, #0xb] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1b + cmp r1, r0 + blt _080A16DC + ldrb r0, [r4, #9] + cmp r0, #0 + beq _080A16D4 + subs r0, #1 + strb r0, [r4, #9] +_080A16D4: + ldrh r1, [r4, #6] + adds r0, r5, #0 + ands r0, r1 + strh r0, [r4, #6] +_080A16DC: + ldrh r0, [r4, #4] + lsls r0, r0, #0x15 + lsrs r0, r0, #0x1b + movs r1, #1 + lsls r1, r0 + mov r2, r8 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A16F8: .4byte 0x020377B4 +_080A16FC: .4byte 0x000003FF +_080A1700: .4byte 0xFFE007FF +_080A1704: .4byte 0xFFFFF01F + thumb_func_end unused_sub_80A1CDC + + thumb_func_start unused_sub_80A1E40 +unused_sub_80A1E40: @ 0x080A1708 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r3, _080A1760 + ldrb r1, [r3, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A17BC + ldrh r0, [r4, #4] + lsls r0, r0, #0x15 + lsrs r6, r0, #0x17 + asrs r1, r6, #4 + movs r5, #1 + adds r0, r5, #0 + lsls r0, r1 + ldr r1, [r3] + ands r0, r1 + cmp r0, #0 + beq _080A17BC + ldr r2, [r4] + ldrb r1, [r2, #8] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + bne _080A1764 + ldrb r1, [r3, #4] + lsls r1, r1, #0x1a + ldrb r0, [r3, #8] + lsls r0, r0, #0x1a + cmp r1, r0 + beq _080A17BC + adds r0, r6, #0 + ldrb r1, [r2, #9] + lsls r1, r1, #0x19 + lsrs r1, r1, #0x1b + ldrh r2, [r3, #4] + lsls r2, r2, #0x15 + lsrs r2, r2, #0x1b + ldrh r3, [r3, #6] + lsls r3, r3, #0x11 + lsrs r3, r3, #0x11 + bl BlendPalette + b _080A17BC + .align 2, 0 +_080A1760: .4byte 0x02037C74 +_080A1764: + ldrb r1, [r3, #4] + movs r0, #0x3f + ands r0, r1 + cmp r0, #0 + bne _080A17BC + ldrb r0, [r4, #8] + ldrb r1, [r2, #0xa] + cmp r0, r1 + beq _080A17BC + ldrh r0, [r4, #6] + lsls r0, r0, #0x14 + lsrs r0, r0, #0x19 + ldrb r1, [r2, #9] + lsls r1, r1, #0x19 + lsrs r2, r1, #0x1b + adds r5, r0, #0 + muls r5, r2, r5 + movs r3, #0 + adds r1, r2, #0 + cmp r3, r1 + bhs _080A17BC + ldr r6, _080A17C4 +_080A1790: + ldrh r1, [r4, #4] + lsls r1, r1, #0x15 + lsrs r1, r1, #0x17 + adds r1, r1, r3 + lsls r1, r1, #1 + adds r1, r1, r6 + ldr r2, [r4] + adds r0, r5, r3 + ldr r2, [r2, #4] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r0, [r4] + ldrb r0, [r0, #9] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1b + cmp r3, r0 + blo _080A1790 +_080A17BC: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080A17C4: .4byte 0x020377B4 + thumb_func_end unused_sub_80A1E40 + + thumb_func_start unused_sub_80A1F00 +unused_sub_80A1F00: @ 0x080A17C8 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #9] + cmp r0, #0 + bne _080A1818 + ldr r2, [r3] + ldrb r0, [r2, #0xb] + lsrs r0, r0, #5 + cmp r0, #0 + bne _080A1808 + ldrh r1, [r3, #6] + ldr r0, _080A1800 + ands r0, r1 + strh r0, [r3, #6] + ldrb r0, [r2, #0xa] + strb r0, [r3, #8] + ldrb r0, [r2, #0xc] + strb r0, [r3, #9] + ldrh r0, [r3, #4] + lsls r0, r0, #0x15 + lsrs r0, r0, #0x17 + lsls r0, r0, #0xb + ldr r1, [r3, #4] + ldr r2, _080A1804 + ands r1, r2 + orrs r1, r0 + str r1, [r3, #4] + b _080A181C + .align 2, 0 +_080A1800: .4byte 0xFFFFF01F +_080A1804: .4byte 0xFFE007FF +_080A1808: + cmp r0, #0 + blt _080A181C + cmp r0, #2 + bgt _080A181C + ldrh r0, [r2] + bl ResetPaletteStructByUid + b _080A181C +_080A1818: + subs r0, #1 + strb r0, [r3, #9] +_080A181C: + pop {r0} + bx r0 + thumb_func_end unused_sub_80A1F00 + + thumb_func_start ResetPaletteStructByUid +ResetPaletteStructByUid: @ 0x080A1820 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetPaletteNumByUid + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + beq _080A1836 + bl ResetPaletteStruct +_080A1836: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ResetPaletteStructByUid + + thumb_func_start ResetPaletteStruct +ResetPaletteStruct: @ 0x080A183C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080A1884 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r0, _080A1888 + str r0, [r1] + ldrb r2, [r1, #4] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #4] + ldrh r2, [r1, #4] + ldr r0, _080A188C + ands r0, r2 + strh r0, [r1, #4] + ldr r0, [r1, #4] + ldr r2, _080A1890 + ands r0, r2 + str r0, [r1, #4] + ldrh r2, [r1, #6] + ldr r0, _080A1894 + ands r0, r2 + strh r0, [r1, #6] + ldrb r2, [r1, #4] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #4] + movs r0, #0 + strb r0, [r1, #8] + strb r0, [r1, #9] + bx lr + .align 2, 0 +_080A1884: .4byte 0x02037BB4 +_080A1888: .4byte 0x084FCF98 +_080A188C: .4byte 0xFFFFF803 +_080A1890: .4byte 0xFFE007FF +_080A1894: .4byte 0xFFFFF01F + thumb_func_end ResetPaletteStruct + + thumb_func_start ResetPaletteFadeControl +ResetPaletteFadeControl: @ 0x080A1898 + ldr r2, _080A1900 + movs r0, #0 + str r0, [r2] + subs r0, #0x40 + ldrb r1, [r2, #4] + ands r0, r1 + strb r0, [r2, #4] + ldrh r1, [r2, #4] + ldr r0, _080A1904 + ands r0, r1 + strh r0, [r2, #4] + ldrb r1, [r2, #5] + movs r0, #7 + ands r0, r1 + strb r0, [r2, #5] + ldrh r1, [r2, #6] + ldr r0, _080A1908 + ands r0, r1 + strh r0, [r2, #6] + ldrb r1, [r2, #7] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #7] + movs r0, #0 + strb r0, [r2, #8] + ldrb r1, [r2, #9] + movs r3, #5 + rsbs r3, r3, #0 + adds r0, r3, #0 + ands r0, r1 + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r2, #9] + ldrb r1, [r2, #0xa] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0xa] + ldr r0, [r2, #8] + ldr r1, _080A190C + ands r0, r1 + str r0, [r2, #8] + ldrb r0, [r2, #0xa] + ands r3, r0 + movs r0, #0x79 + rsbs r0, r0, #0 + ands r3, r0 + movs r0, #0x10 + orrs r3, r0 + strb r3, [r2, #0xa] + bx lr + .align 2, 0 +_080A1900: .4byte 0x02037C74 +_080A1904: .4byte 0xFFFFF83F +_080A1908: .4byte 0xFFFF8000 +_080A190C: .4byte 0xFFFE0FFF + thumb_func_end ResetPaletteFadeControl + + thumb_func_start unref_sub_80A2048 +unref_sub_80A2048: @ 0x080A1910 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetPaletteNumByUid + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x10 + beq _080A1934 + ldr r1, _080A1938 + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #4] + movs r2, #2 + orrs r1, r2 + strb r1, [r0, #4] +_080A1934: + pop {r0} + bx r0 + .align 2, 0 +_080A1938: .4byte 0x02037BB4 + thumb_func_end unref_sub_80A2048 + + thumb_func_start unref_sub_80A2074 +unref_sub_80A2074: @ 0x080A193C + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetPaletteNumByUid + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x10 + beq _080A1962 + ldr r0, _080A1968 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #4] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #4] +_080A1962: + pop {r0} + bx r0 + .align 2, 0 +_080A1968: .4byte 0x02037BB4 + thumb_func_end unref_sub_80A2074 + + thumb_func_start GetPaletteNumByUid +GetPaletteNumByUid: @ 0x080A196C + push {lr} + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + movs r1, #0 + ldr r3, _080A198C +_080A1976: + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldr r0, [r0] + ldrh r0, [r0] + cmp r0, r2 + bne _080A1990 + adds r0, r1, #0 + b _080A199C + .align 2, 0 +_080A198C: .4byte 0x02037BB4 +_080A1990: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xf + bls _080A1976 + movs r0, #0x10 +_080A199C: + pop {r1} + bx r1 + thumb_func_end GetPaletteNumByUid + + thumb_func_start UpdateNormalPaletteFade +UpdateNormalPaletteFade: @ 0x080A19A0 + push {r4, r5, r6, r7, lr} + ldr r4, _080A19B4 + ldrb r1, [r4, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080A19B8 + movs r0, #0 + b _080A1AD4 + .align 2, 0 +_080A19B4: .4byte 0x02037C74 +_080A19B8: + bl IsSoftwarePaletteFadeFinishing + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A19C6 + ldrb r0, [r4, #7] + b _080A1AD2 +_080A19C6: + ldrb r1, [r4, #0xa] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _080A19FA + ldrb r2, [r4, #4] + lsls r1, r2, #0x1a + ldrb r0, [r4, #8] + lsls r0, r0, #0x1a + cmp r1, r0 + bhs _080A19F2 + lsrs r0, r1, #0x1a + adds r0, #1 + movs r1, #0x3f + ands r0, r1 + movs r1, #0x40 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #4] + movs r0, #2 + b _080A1AD4 +_080A19F2: + movs r0, #0x40 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r4, #4] +_080A19FA: + movs r5, #0 + ldr r2, _080A1A10 + ldrb r1, [r2, #0xa] + movs r0, #4 + ands r0, r1 + adds r7, r2, #0 + cmp r0, #0 + bne _080A1A14 + ldrh r4, [r7] + b _080A1A1A + .align 2, 0 +_080A1A10: .4byte 0x02037C74 +_080A1A14: + ldrh r4, [r7, #2] + movs r5, #0x80 + lsls r5, r5, #1 +_080A1A1A: + cmp r4, #0 + beq _080A1A4C + ldr r7, _080A1A88 + adds r6, r7, #0 +_080A1A22: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _080A1A3E + ldrh r2, [r6, #4] + lsls r2, r2, #0x15 + lsrs r2, r2, #0x1b + ldrh r3, [r6, #6] + lsls r3, r3, #0x11 + lsrs r3, r3, #0x11 + adds r0, r5, #0 + movs r1, #0x10 + bl BlendPalette +_080A1A3E: + lsrs r4, r4, #1 + adds r0, r5, #0 + adds r0, #0x10 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r4, #0 + bne _080A1A22 +_080A1A4C: + ldrb r2, [r7, #0xa] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r4, #5 + rsbs r4, r4, #0 + ands r4, r2 + orrs r4, r1 + strb r4, [r7, #0xa] + movs r0, #4 + ands r0, r4 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _080A1AD0 + ldrh r6, [r7, #4] + lsls r2, r6, #0x15 + ldrb r0, [r7, #5] + lsls r5, r0, #0x18 + lsrs r1, r2, #0x1b + lsrs r0, r5, #0x1b + cmp r1, r0 + bne _080A1A8C + str r3, [r7] + movs r0, #2 + orrs r4, r0 + strb r4, [r7, #0xa] + b _080A1AD0 + .align 2, 0 +_080A1A88: .4byte 0x02037C74 +_080A1A8C: + ldrb r1, [r7, #8] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _080A1AA8 + lsrs r3, r2, #0x1b + lsls r0, r4, #0x19 + lsrs r0, r0, #0x1c + adds r3, r0, r3 + lsrs r0, r5, #0x1b + cmp r3, r0 + ble _080A1ABE + adds r3, r0, #0 + b _080A1ABE +_080A1AA8: + lsrs r3, r2, #0x1b + lsls r0, r4, #0x19 + lsrs r0, r0, #0x1c + subs r0, r3, r0 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + asrs r0, r0, #0x18 + lsrs r1, r5, #0x1b + cmp r0, r1 + bge _080A1ABE + adds r3, r1, #0 +_080A1ABE: + lsls r0, r3, #0x18 + asrs r0, r0, #0x18 + movs r1, #0x1f + ands r0, r1 + lsls r0, r0, #6 + ldr r1, _080A1ADC + ands r1, r6 + orrs r1, r0 + strh r1, [r7, #4] +_080A1AD0: + ldrb r0, [r7, #7] +_080A1AD2: + lsrs r0, r0, #7 +_080A1AD4: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080A1ADC: .4byte 0xFFFFF83F + thumb_func_end UpdateNormalPaletteFade + + thumb_func_start InvertPlttBuffer +InvertPlttBuffer: @ 0x080A1AE0 + push {r4, r5, r6, r7, lr} + adds r1, r0, #0 + movs r3, #0 + cmp r1, #0 + beq _080A1B1E + ldr r7, _080A1B24 +_080A1AEC: + movs r0, #1 + ands r0, r1 + lsrs r4, r1, #1 + adds r5, r3, #0 + adds r5, #0x10 + cmp r0, #0 + beq _080A1B14 + movs r2, #0 + adds r6, r7, #0 +_080A1AFE: + adds r0, r3, r2 + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r1, [r0] + mvns r1, r1 + strh r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xf + bls _080A1AFE +_080A1B14: + adds r1, r4, #0 + lsls r0, r5, #0x10 + lsrs r3, r0, #0x10 + cmp r1, #0 + bne _080A1AEC +_080A1B1E: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A1B24: .4byte 0x020377B4 + thumb_func_end InvertPlttBuffer + + thumb_func_start TintPlttBuffer +TintPlttBuffer: @ 0x080A1B28 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r3, [sp, #4] + movs r0, #0 + mov sb, r0 + cmp r4, #0 + beq _080A1BE4 + lsls r1, r1, #0x18 + str r1, [sp, #8] +_080A1B52: + movs r0, #1 + ands r0, r4 + lsrs r4, r4, #1 + str r4, [sp, #0xc] + movs r1, #0x10 + add r1, sb + mov sl, r1 + cmp r0, #0 + beq _080A1BD6 + movs r4, #0 + ldr r2, _080A1BF4 + mov r8, r2 + ldr r1, [sp] + lsls r0, r1, #0x18 + ldr r2, [sp, #4] + lsls r1, r2, #0x18 + ldr r2, [sp, #8] + asrs r2, r2, #0x18 + mov ip, r2 + movs r5, #0x1f + asrs r7, r0, #0x18 + asrs r6, r1, #0x18 +_080A1B7E: + mov r0, sb + adds r2, r0, r4 + lsls r2, r2, #1 + add r2, r8 + ldr r1, [r2] + lsls r1, r1, #0x1b + lsrs r1, r1, #0x1b + add r1, ip + ands r1, r5 + ldrb r3, [r2] + movs r0, #0x20 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldr r1, [r2] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x1b + adds r1, r1, r7 + movs r0, #0x1f + ands r1, r0 + lsls r1, r1, #5 + ldrh r3, [r2] + ldr r0, _080A1BF8 + ands r0, r3 + orrs r0, r1 + strh r0, [r2] + ldr r1, [r2] + lsls r1, r1, #0x11 + lsrs r1, r1, #0x1b + adds r1, r1, r6 + ands r1, r5 + lsls r1, r1, #2 + ldrb r3, [r2, #1] + movs r0, #0x7d + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #1] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xf + bls _080A1B7E +_080A1BD6: + ldr r4, [sp, #0xc] + mov r1, sl + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + cmp r4, #0 + bne _080A1B52 +_080A1BE4: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A1BF4: .4byte 0x020377B4 +_080A1BF8: .4byte 0xFFFFFC1F + thumb_func_end TintPlttBuffer + + thumb_func_start UnfadePlttBuffer +UnfadePlttBuffer: @ 0x080A1BFC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r1, r0, #0 + movs r3, #0 + cmp r1, #0 + beq _080A1C46 + ldr r0, _080A1C50 + mov r8, r0 + ldr r0, _080A1C54 + mov ip, r0 +_080A1C12: + movs r0, #1 + ands r0, r1 + lsrs r4, r1, #1 + adds r5, r3, #0 + adds r5, #0x10 + cmp r0, #0 + beq _080A1C3C + movs r2, #0 + mov r7, r8 + mov r6, ip +_080A1C26: + adds r0, r3, r2 + lsls r0, r0, #1 + adds r1, r0, r7 + adds r0, r0, r6 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xf + bls _080A1C26 +_080A1C3C: + adds r1, r4, #0 + lsls r0, r5, #0x10 + lsrs r3, r0, #0x10 + cmp r1, #0 + bne _080A1C12 +_080A1C46: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A1C50: .4byte 0x020377B4 +_080A1C54: .4byte 0x020373B4 + thumb_func_end UnfadePlttBuffer + + thumb_func_start BeginFastPaletteFade +BeginFastPaletteFade: @ 0x080A1C58 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _080A1C78 + ldrb r2, [r3, #0xa] + movs r1, #0x79 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #0x10 + orrs r1, r2 + strb r1, [r3, #0xa] + bl BeginFastPaletteFadeInternal + pop {r0} + bx r0 + .align 2, 0 +_080A1C78: .4byte 0x02037C74 + thumb_func_end BeginFastPaletteFade + + thumb_func_start BeginFastPaletteFadeInternal +BeginFastPaletteFadeInternal: @ 0x080A1C7C + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r4, r0, #0 + ldr r2, _080A1CF0 + ldrh r0, [r2, #4] + movs r3, #0xf8 + lsls r3, r3, #3 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2, #4] + movs r1, #0x3f + ands r1, r4 + ldrb r3, [r2, #8] + movs r0, #0x40 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #8] + ldrb r0, [r2, #7] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #7] + ldrb r1, [r2, #9] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #9] + cmp r4, #2 + bne _080A1CCE + mov r1, sp + movs r0, #0 + strh r0, [r1] + ldr r1, _080A1CF4 + ldr r2, _080A1CF8 + mov r0, sp + bl CpuSet +_080A1CCE: + cmp r4, #0 + bne _080A1CE4 + mov r0, sp + adds r0, #2 + ldr r2, _080A1CFC + adds r1, r2, #0 + strh r1, [r0] + ldr r1, _080A1CF4 + ldr r2, _080A1CF8 + bl CpuSet +_080A1CE4: + bl UpdatePaletteFade + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A1CF0: .4byte 0x02037C74 +_080A1CF4: .4byte 0x020377B4 +_080A1CF8: .4byte 0x01000200 +_080A1CFC: .4byte 0x00007FFF + thumb_func_end BeginFastPaletteFadeInternal + + thumb_func_start UpdateFastPaletteFade +UpdateFastPaletteFade: @ 0x080A1D00 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r4, _080A1D1C + ldrb r1, [r4, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080A1D20 + movs r0, #0 + b _080A205A + .align 2, 0 +_080A1D1C: .4byte 0x02037C74 +_080A1D20: + bl IsSoftwarePaletteFadeFinishing + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A1D2E + ldrb r0, [r4, #7] + b _080A2058 +_080A1D2E: + ldrb r1, [r4, #0xa] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080A1D44 + movs r2, #0x80 + lsls r2, r2, #1 + movs r0, #0x80 + lsls r0, r0, #2 + mov sl, r0 + b _080A1D4C +_080A1D44: + movs r2, #0 + movs r1, #0x80 + lsls r1, r1, #1 + mov sl, r1 +_080A1D4C: + ldr r1, _080A1D64 + ldrb r0, [r1, #8] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1a + cmp r0, #1 + beq _080A1E0C + cmp r0, #1 + bgt _080A1D68 + cmp r0, #0 + beq _080A1D76 + b _080A1F5C + .align 2, 0 +_080A1D64: .4byte 0x02037C74 +_080A1D68: + cmp r0, #2 + bne _080A1D6E + b _080A1E70 +_080A1D6E: + cmp r0, #3 + bne _080A1D74 + b _080A1EF8 +_080A1D74: + b _080A1F5C +_080A1D76: + adds r7, r2, #0 + cmp r7, sl + blo _080A1D7E + b _080A1F5C +_080A1D7E: + lsls r2, r7, #1 + ldr r0, _080A1E04 + adds r0, r2, r0 + ldr r1, [r0] + lsls r3, r1, #0x1b + lsls r0, r1, #0x16 + lsrs r0, r0, #0x1b + mov ip, r0 + lsls r1, r1, #0x11 + lsrs r1, r1, #0x1b + mov r8, r1 + ldr r0, _080A1E08 + adds r2, r2, r0 + mov sb, r2 + ldr r1, [r2] + lsls r2, r1, #0x1b + lsrs r2, r2, #3 + movs r4, #0xfe + lsls r4, r4, #0x18 + adds r2, r2, r4 + lsls r0, r1, #0x16 + lsrs r0, r0, #0x1b + subs r0, #2 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x11 + lsrs r1, r1, #0x1b + subs r1, #2 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + lsrs r6, r2, #0x18 + asrs r2, r2, #0x18 + lsrs r3, r3, #3 + asrs r0, r3, #0x18 + cmp r2, r0 + bge _080A1DC8 + lsrs r6, r3, #0x18 +_080A1DC8: + lsls r0, r5, #0x18 + asrs r0, r0, #0x18 + mov r2, ip + lsls r1, r2, #0x18 + cmp r0, ip + bge _080A1DD6 + lsrs r5, r1, #0x18 +_080A1DD6: + lsls r0, r4, #0x18 + asrs r0, r0, #0x18 + mov r3, r8 + lsls r1, r3, #0x18 + cmp r0, r8 + bge _080A1DE4 + lsrs r4, r1, #0x18 +_080A1DE4: + lsls r1, r6, #0x18 + asrs r1, r1, #0x18 + lsls r0, r5, #0x18 + asrs r0, r0, #0x13 + orrs r1, r0 + lsls r0, r4, #0x18 + asrs r0, r0, #0xe + orrs r1, r0 + mov r4, sb + strh r1, [r4] + adds r0, r7, #1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + cmp r7, sl + blo _080A1D7E + b _080A1F5C + .align 2, 0 +_080A1E04: .4byte 0x020373B4 +_080A1E08: .4byte 0x020377B4 +_080A1E0C: + adds r7, r2, #0 + cmp r7, sl + blo _080A1E14 + b _080A1F5C +_080A1E14: + lsls r1, r7, #1 + ldr r0, _080A1E6C + adds r2, r1, r0 + ldr r1, [r2] + lsls r0, r1, #0x1b + lsrs r0, r0, #3 + movs r3, #0x80 + lsls r3, r3, #0x12 + adds r0, r0, r3 + lsrs r6, r0, #0x18 + lsls r0, r1, #0x16 + lsrs r0, r0, #0x1b + adds r5, r0, #2 + lsls r1, r1, #0x11 + lsrs r1, r1, #0x1b + adds r4, r1, #2 + cmp r6, #0x1f + ble _080A1E3A + movs r6, #0x1f +_080A1E3A: + lsls r0, r5, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0x1f + ble _080A1E44 + movs r5, #0x1f +_080A1E44: + lsls r0, r4, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0x1f + ble _080A1E4E + movs r4, #0x1f +_080A1E4E: + lsls r1, r6, #0x18 + asrs r1, r1, #0x18 + lsls r0, r5, #0x18 + asrs r0, r0, #0x13 + orrs r1, r0 + lsls r0, r4, #0x18 + asrs r0, r0, #0xe + orrs r1, r0 + strh r1, [r2] + adds r0, r7, #1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + cmp r7, sl + blo _080A1E14 + b _080A1F5C + .align 2, 0 +_080A1E6C: .4byte 0x020377B4 +_080A1E70: + adds r7, r2, #0 + cmp r7, sl + bhs _080A1F5C +_080A1E76: + lsls r2, r7, #1 + ldr r0, _080A1EF0 + adds r0, r2, r0 + ldr r1, [r0] + lsls r3, r1, #0x1b + lsls r0, r1, #0x16 + lsrs r0, r0, #0x1b + mov ip, r0 + lsls r1, r1, #0x11 + lsrs r1, r1, #0x1b + mov r8, r1 + ldr r0, _080A1EF4 + adds r2, r2, r0 + ldr r1, [r2] + lsls r0, r1, #0x1b + lsrs r0, r0, #3 + movs r4, #0x80 + lsls r4, r4, #0x12 + adds r0, r0, r4 + lsrs r6, r0, #0x18 + lsls r0, r1, #0x16 + lsrs r0, r0, #0x1b + adds r5, r0, #2 + lsls r1, r1, #0x11 + lsrs r1, r1, #0x1b + adds r4, r1, #2 + lsrs r3, r3, #3 + asrs r0, r3, #0x18 + cmp r6, r0 + ble _080A1EB4 + lsrs r6, r3, #0x18 +_080A1EB4: + lsls r0, r5, #0x18 + asrs r0, r0, #0x18 + mov r3, ip + lsls r1, r3, #0x18 + cmp r0, ip + ble _080A1EC2 + lsrs r5, r1, #0x18 +_080A1EC2: + lsls r0, r4, #0x18 + asrs r0, r0, #0x18 + mov r3, r8 + lsls r1, r3, #0x18 + cmp r0, r8 + ble _080A1ED0 + lsrs r4, r1, #0x18 +_080A1ED0: + lsls r1, r6, #0x18 + asrs r1, r1, #0x18 + lsls r0, r5, #0x18 + asrs r0, r0, #0x13 + orrs r1, r0 + lsls r0, r4, #0x18 + asrs r0, r0, #0xe + orrs r1, r0 + strh r1, [r2] + adds r0, r7, #1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + cmp r7, sl + blo _080A1E76 + b _080A1F5C + .align 2, 0 +_080A1EF0: .4byte 0x020373B4 +_080A1EF4: .4byte 0x020377B4 +_080A1EF8: + adds r7, r2, #0 + cmp r7, sl + bhs _080A1F5C + ldr r4, _080A1F84 + mov r8, r4 +_080A1F02: + lsls r0, r7, #1 + mov r1, r8 + adds r3, r0, r1 + ldr r1, [r3] + lsls r2, r1, #0x1b + lsrs r2, r2, #3 + movs r4, #0xfe + lsls r4, r4, #0x18 + adds r2, r2, r4 + lsls r0, r1, #0x16 + lsrs r0, r0, #0x1b + subs r0, #2 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x11 + lsrs r1, r1, #0x1b + subs r1, #2 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + lsrs r6, r2, #0x18 + cmp r2, #0 + bge _080A1F30 + movs r6, #0 +_080A1F30: + lsls r0, r5, #0x18 + cmp r0, #0 + bge _080A1F38 + movs r5, #0 +_080A1F38: + lsls r0, r4, #0x18 + cmp r0, #0 + bge _080A1F40 + movs r4, #0 +_080A1F40: + lsls r1, r6, #0x18 + asrs r1, r1, #0x18 + lsls r0, r5, #0x18 + asrs r0, r0, #0x13 + orrs r1, r0 + lsls r0, r4, #0x18 + asrs r0, r0, #0xe + orrs r1, r0 + strh r1, [r3] + adds r0, r7, #1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + cmp r7, sl + blo _080A1F02 +_080A1F5C: + ldr r0, _080A1F88 + ldrb r2, [r0, #0xa] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r3, #5 + rsbs r3, r3, #0 + ands r3, r2 + orrs r3, r1 + ldr r1, _080A1F88 + strb r3, [r1, #0xa] + movs r0, #4 + ands r0, r3 + cmp r0, #0 + beq _080A1F8C + ldrb r0, [r1, #7] + b _080A2058 + .align 2, 0 +_080A1F84: .4byte 0x020377B4 +_080A1F88: .4byte 0x02037C74 +_080A1F8C: + ldr r2, _080A1FA8 + ldrh r4, [r2, #4] + lsls r5, r4, #0x15 + lsrs r0, r5, #0x1b + lsls r2, r3, #0x19 + lsrs r1, r2, #0x1c + subs r0, r0, r1 + cmp r0, #0 + bge _080A1FB0 + ldr r0, _080A1FAC + ands r0, r4 + ldr r3, _080A1FA8 + strh r0, [r3, #4] + b _080A1FC6 + .align 2, 0 +_080A1FA8: .4byte 0x02037C74 +_080A1FAC: .4byte 0xFFFFF83F +_080A1FB0: + lsrs r1, r5, #0x1b + lsrs r0, r2, #0x1c + subs r1, r1, r0 + movs r0, #0x1f + ands r1, r0 + lsls r1, r1, #6 + ldr r0, _080A1FEC + ands r0, r4 + orrs r0, r1 + ldr r4, _080A1FF0 + strh r0, [r4, #4] +_080A1FC6: + ldr r1, _080A1FF0 + ldrh r0, [r1, #4] + movs r1, #0xf8 + lsls r1, r1, #3 + ands r1, r0 + cmp r1, #0 + bne _080A2054 + ldr r2, _080A1FF0 + ldrb r0, [r2, #8] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1a + cmp r0, #1 + beq _080A2018 + cmp r0, #1 + bgt _080A1FF4 + cmp r0, #0 + beq _080A1FFE + b _080A2040 + .align 2, 0 +_080A1FEC: .4byte 0xFFFFF83F +_080A1FF0: .4byte 0x02037C74 +_080A1FF4: + cmp r0, #2 + beq _080A1FFE + cmp r0, #3 + beq _080A2034 + b _080A2040 +_080A1FFE: + ldr r0, _080A200C + ldr r1, _080A2010 + ldr r2, _080A2014 + bl CpuSet + b _080A2040 + .align 2, 0 +_080A200C: .4byte 0x020373B4 +_080A2010: .4byte 0x020377B4 +_080A2014: .4byte 0x04000100 +_080A2018: + movs r0, #1 + rsbs r0, r0, #0 + str r0, [sp] + ldr r1, _080A202C + ldr r2, _080A2030 + mov r0, sp + bl CpuSet + b _080A2040 + .align 2, 0 +_080A202C: .4byte 0x020377B4 +_080A2030: .4byte 0x05000100 +_080A2034: + str r1, [sp, #4] + add r0, sp, #4 + ldr r1, _080A206C + ldr r2, _080A2070 + bl CpuSet +_080A2040: + ldr r2, _080A2074 + ldrb r1, [r2, #9] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #9] + ldrb r0, [r2, #0xa] + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #0xa] +_080A2054: + ldr r3, _080A2074 + ldrb r0, [r3, #7] +_080A2058: + lsrs r0, r0, #7 +_080A205A: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080A206C: .4byte 0x020377B4 +_080A2070: .4byte 0x05000100 +_080A2074: .4byte 0x02037C74 + thumb_func_end UpdateFastPaletteFade + + thumb_func_start BeginHardwarePaletteFade +BeginHardwarePaletteFade: @ 0x080A2078 + push {r4, r5, r6, r7, lr} + ldr r5, [sp, #0x14] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r7, _080A2100 + str r0, [r7] + movs r0, #0x3f + ands r1, r0 + ldrb r4, [r7, #4] + movs r6, #0x40 + rsbs r6, r6, #0 + adds r0, r6, #0 + ands r0, r4 + orrs r0, r1 + strb r0, [r7, #4] + ldrb r0, [r7, #8] + ands r6, r0 + orrs r6, r1 + strb r6, [r7, #8] + movs r0, #0x1f + adds r1, r2, #0 + ands r1, r0 + lsls r1, r1, #6 + ldrh r4, [r7, #4] + ldr r0, _080A2104 + ands r0, r4 + orrs r0, r1 + strh r0, [r7, #4] + lsls r4, r3, #3 + ldrb r1, [r7, #5] + movs r0, #7 + ands r0, r1 + orrs r0, r4 + strb r0, [r7, #5] + ldrb r0, [r7, #7] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r7, #7] + ldrb r1, [r7, #9] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + movs r1, #1 + ands r5, r1 + lsls r5, r5, #2 + subs r1, #6 + ands r0, r1 + orrs r0, r5 + subs r1, #4 + ands r0, r1 + strb r0, [r7, #9] + cmp r2, r3 + bhs _080A2108 + movs r0, #0x41 + rsbs r0, r0, #0 + ands r6, r0 + b _080A210C + .align 2, 0 +_080A2100: .4byte 0x02037C74 +_080A2104: .4byte 0xFFFFF83F +_080A2108: + movs r0, #0x40 + orrs r6, r0 +_080A210C: + strb r6, [r7, #8] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end BeginHardwarePaletteFade + + thumb_func_start UpdateHardwarePaletteFade +UpdateHardwarePaletteFade: @ 0x080A2114 + push {r4, r5, r6, r7, lr} + ldr r2, _080A2128 + ldrb r1, [r2, #7] + movs r0, #0x80 + ands r0, r1 + adds r4, r2, #0 + cmp r0, #0 + bne _080A212C + movs r0, #0 + b _080A2224 + .align 2, 0 +_080A2128: .4byte 0x02037C74 +_080A212C: + ldrb r2, [r4, #4] + lsls r1, r2, #0x1a + ldrb r3, [r4, #8] + lsls r0, r3, #0x1a + cmp r1, r0 + bhs _080A214E + lsrs r0, r1, #0x1a + adds r0, #1 + movs r1, #0x3f + ands r0, r1 + movs r1, #0x40 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #4] + movs r0, #2 + b _080A2224 +_080A214E: + movs r0, #0x40 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r4, #4] + movs r0, #0x40 + ands r0, r3 + cmp r0, #0 + bne _080A21AC + ldrh r1, [r4, #4] + lsls r0, r1, #0x15 + lsrs r0, r0, #0x1b + adds r0, #1 + movs r7, #0x1f + ands r0, r7 + lsls r0, r0, #6 + ldr r6, _080A21A8 + adds r3, r6, #0 + ands r3, r1 + orrs r3, r0 + strh r3, [r4, #4] + lsls r5, r3, #0x15 + ldrb r0, [r4, #5] + lsrs r1, r5, #0x1b + lsrs r0, r0, #3 + cmp r1, r0 + bls _080A21F8 + ldrb r2, [r4, #9] + lsls r1, r2, #0x1c + lsrs r1, r1, #0x1f + adds r1, #1 + movs r0, #1 + ands r1, r0 + lsls r1, r1, #3 + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #9] + lsrs r0, r5, #0x1b + subs r0, #1 + ands r0, r7 + lsls r0, r0, #6 + ands r3, r6 + b _080A21F4 + .align 2, 0 +_080A21A8: .4byte 0xFFFFF83F +_080A21AC: + ldrh r2, [r4, #4] + lsls r1, r2, #0x15 + lsrs r0, r1, #0x1b + subs r0, #1 + movs r6, #0x1f + ands r0, r6 + lsls r0, r0, #6 + ldr r5, _080A222C + adds r3, r5, #0 + ands r3, r2 + orrs r3, r0 + strh r3, [r4, #4] + lsrs r1, r1, #0x1b + subs r1, #1 + ldrb r0, [r4, #5] + lsrs r0, r0, #3 + cmp r1, r0 + bge _080A21F8 + ldrb r2, [r4, #9] + lsls r1, r2, #0x1c + lsrs r1, r1, #0x1f + adds r1, #1 + movs r0, #1 + ands r1, r0 + lsls r1, r1, #3 + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #9] + lsls r0, r3, #0x15 + lsrs r0, r0, #0x1b + adds r0, #1 + ands r0, r6 + lsls r0, r0, #6 + ands r3, r5 +_080A21F4: + orrs r3, r0 + strh r3, [r4, #4] +_080A21F8: + ldrb r1, [r4, #9] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080A2220 + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080A2216 + movs r0, #0 + str r0, [r4] + ldrh r1, [r4, #4] + ldr r0, _080A222C + ands r0, r1 + strh r0, [r4, #4] +_080A2216: + ldrb r1, [r4, #9] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #9] +_080A2220: + ldrb r0, [r4, #7] + lsrs r0, r0, #7 +_080A2224: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080A222C: .4byte 0xFFFFF83F + thumb_func_end UpdateHardwarePaletteFade + + thumb_func_start UpdateBlendRegisters +UpdateBlendRegisters: @ 0x080A2230 + push {r4, lr} + ldr r4, _080A227C + ldrh r1, [r4] + movs r0, #0x50 + bl SetGpuReg + ldrh r1, [r4, #4] + lsls r1, r1, #0x15 + lsrs r1, r1, #0x1b + movs r0, #0x54 + bl SetGpuReg + ldrb r1, [r4, #9] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080A2274 + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r4, #9] + movs r0, #0 + str r0, [r4] + ldrh r1, [r4, #4] + ldr r0, _080A2280 + ands r0, r1 + strh r0, [r4, #4] + ldrb r1, [r4, #7] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #7] +_080A2274: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A227C: .4byte 0x02037C74 +_080A2280: .4byte 0xFFFFF83F + thumb_func_end UpdateBlendRegisters + + thumb_func_start IsSoftwarePaletteFadeFinishing +IsSoftwarePaletteFadeFinishing: @ 0x080A2284 + push {r4, lr} + ldr r3, _080A22BC + ldrb r4, [r3, #0xa] + movs r0, #2 + ands r0, r4 + cmp r0, #0 + beq _080A22E0 + ldr r2, [r3, #8] + movs r0, #0xf8 + lsls r0, r0, #9 + ands r0, r2 + movs r1, #0x80 + lsls r1, r1, #7 + cmp r0, r1 + bne _080A22C4 + ldrb r1, [r3, #7] + movs r0, #0x7f + ands r0, r1 + strb r0, [r3, #7] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r4 + strb r0, [r3, #0xa] + ldr r0, [r3, #8] + ldr r1, _080A22C0 + ands r0, r1 + str r0, [r3, #8] + b _080A22D8 + .align 2, 0 +_080A22BC: .4byte 0x02037C74 +_080A22C0: .4byte 0xFFFE0FFF +_080A22C4: + lsls r0, r2, #0xf + lsrs r0, r0, #0x1b + adds r0, #1 + movs r1, #0x1f + ands r0, r1 + lsls r0, r0, #0xc + ldr r1, _080A22DC + ands r1, r2 + orrs r1, r0 + str r1, [r3, #8] +_080A22D8: + movs r0, #1 + b _080A22E2 + .align 2, 0 +_080A22DC: .4byte 0xFFFE0FFF +_080A22E0: + movs r0, #0 +_080A22E2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end IsSoftwarePaletteFadeFinishing + + thumb_func_start BlendPalettes +BlendPalettes: @ 0x080A22E8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + lsls r2, r2, #0x10 + lsrs r6, r2, #0x10 + movs r5, #0 + cmp r4, #0 + beq _080A231C +_080A22FA: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _080A230E + adds r0, r5, #0 + movs r1, #0x10 + adds r2, r7, #0 + adds r3, r6, #0 + bl BlendPalette +_080A230E: + lsrs r4, r4, #1 + adds r0, r5, #0 + adds r0, #0x10 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r4, #0 + bne _080A22FA +_080A231C: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BlendPalettes + + thumb_func_start BlendPalettesUnfaded +BlendPalettesUnfaded: @ 0x080A2324 + push {r4, r5, lr} + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldr r4, _080A2348 + ldr r5, _080A234C + ldr r3, _080A2350 + str r4, [r3] + str r5, [r3, #4] + ldr r4, _080A2354 + str r4, [r3, #8] + ldr r3, [r3, #8] + bl BlendPalettes + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A2348: .4byte 0x020373B4 +_080A234C: .4byte 0x020377B4 +_080A2350: .4byte 0x040000D4 +_080A2354: .4byte 0x84000100 + thumb_func_end BlendPalettesUnfaded + + thumb_func_start TintPalette_GrayScale +TintPalette_GrayScale: @ 0x080A2358 + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + cmp r1, #0 + beq _080A23A0 + movs r6, #0x1f + adds r5, r1, #0 +_080A2368: + ldrh r1, [r4] + movs r2, #0x1f + ands r2, r1 + lsls r1, r1, #0x10 + lsrs r3, r1, #0x15 + ands r3, r6 + lsrs r1, r1, #0x1a + ands r1, r6 + movs r0, #0x4c + muls r2, r0, r2 + movs r0, #0x97 + muls r0, r3, r0 + adds r2, r2, r0 + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r1 + adds r2, r2, r0 + asrs r2, r2, #8 + lsls r0, r2, #0xa + lsls r1, r2, #5 + orrs r0, r1 + orrs r0, r2 + strh r0, [r4] + adds r4, #2 + subs r5, #1 + cmp r5, #0 + bne _080A2368 +_080A23A0: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end TintPalette_GrayScale + + thumb_func_start TintPalette_GrayScale2 +TintPalette_GrayScale2: @ 0x080A23A8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + cmp r1, #0 + beq _080A23FC + movs r6, #0x1f + ldr r7, _080A2404 + adds r5, r1, #0 +_080A23BA: + ldrh r1, [r4] + movs r2, #0x1f + ands r2, r1 + lsls r1, r1, #0x10 + lsrs r3, r1, #0x15 + ands r3, r6 + lsrs r1, r1, #0x1a + ands r1, r6 + movs r0, #0x4c + muls r2, r0, r2 + movs r0, #0x97 + muls r0, r3, r0 + adds r2, r2, r0 + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r1 + adds r2, r2, r0 + asrs r2, r2, #8 + cmp r2, #0x1f + bls _080A23E6 + movs r2, #0x1f +_080A23E6: + adds r0, r2, r7 + ldrb r2, [r0] + lsls r0, r2, #0xa + lsls r1, r2, #5 + orrs r0, r1 + orrs r0, r2 + strh r0, [r4] + adds r4, #2 + subs r5, #1 + cmp r5, #0 + bne _080A23BA +_080A23FC: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A2404: .4byte 0x084FCFA8 + thumb_func_end TintPalette_GrayScale2 + + thumb_func_start TintPalette_SepiaTone +TintPalette_SepiaTone: @ 0x080A2408 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + cmp r1, #0 + beq _080A246A + movs r7, #0x1f + adds r6, r1, #0 +_080A2418: + ldrh r0, [r5] + movs r1, #0x1f + ands r1, r0 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x15 + ands r2, r7 + lsrs r3, r0, #0x1a + ands r3, r7 + movs r0, #0x4c + muls r1, r0, r1 + movs r0, #0x97 + muls r0, r2, r0 + adds r1, r1, r0 + lsls r0, r3, #3 + subs r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r1, r1, r0 + asrs r1, r1, #8 + ldr r0, _080A2470 + muls r0, r1, r0 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x18 + lsls r0, r1, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #0x14 + lsrs r3, r0, #0x18 + cmp r2, #0x1f + ble _080A2458 + movs r2, #0x1f +_080A2458: + lsls r0, r3, #0xa + lsls r1, r4, #5 + orrs r0, r1 + orrs r0, r2 + strh r0, [r5] + adds r5, #2 + subs r6, #1 + cmp r6, #0 + bne _080A2418 +_080A246A: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A2470: .4byte 0x00000133 + thumb_func_end TintPalette_SepiaTone + + thumb_func_start TintPalette_CustomTone +TintPalette_CustomTone: @ 0x080A2474 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + ldr r0, [sp, #0x1c] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + mov sb, r2 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + mov r8, r3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov ip, r0 + cmp r1, #0 + beq _080A2500 + movs r7, #0x1f + adds r6, r1, #0 +_080A249E: + ldrh r0, [r5] + movs r1, #0x1f + ands r1, r0 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x15 + ands r2, r7 + lsrs r3, r0, #0x1a + ands r3, r7 + movs r0, #0x4c + muls r1, r0, r1 + movs r0, #0x97 + muls r0, r2, r0 + adds r1, r1, r0 + lsls r0, r3, #3 + subs r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r1, r1, r0 + asrs r1, r1, #8 + mov r0, sb + muls r0, r1, r0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x18 + mov r0, r8 + muls r0, r1, r0 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x18 + mov r0, ip + muls r0, r1, r0 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x18 + cmp r4, #0x1f + ble _080A24E2 + movs r4, #0x1f +_080A24E2: + cmp r2, #0x1f + ble _080A24E8 + movs r2, #0x1f +_080A24E8: + cmp r3, #0x1f + ble _080A24EE + movs r3, #0x1f +_080A24EE: + lsls r0, r3, #0xa + lsls r1, r2, #5 + orrs r0, r1 + orrs r0, r4 + strh r0, [r5] + adds r5, #2 + subs r6, #1 + cmp r6, #0 + bne _080A249E +_080A2500: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end TintPalette_CustomTone + + thumb_func_start sub_080A250C +sub_080A250C: @ 0x080A250C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sl, r0 + adds r4, r1, #0 + ldr r0, [sp, #0x20] + ldr r1, [sp, #0x24] + ldr r5, [sp, #0x28] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r6, r3, #0x18 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + mov r8, r5 + ldr r0, _080A2564 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _080A2568 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r1, r0, r1 + strh r7, [r1, #8] + strh r6, [r1, #0xa] + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + cmp r4, #0 + blt _080A256C + strh r4, [r1, #0xe] + movs r0, #1 + b _080A2574 + .align 2, 0 +_080A2564: .4byte 0x080A261D +_080A2568: .4byte 0x03005B60 +_080A256C: + movs r0, #0 + strh r0, [r1, #0xe] + rsbs r0, r4, #0 + adds r0, #1 +_080A2574: + strh r0, [r1, #0xc] + lsls r4, r5, #2 + cmp r6, r7 + bhs _080A258C + ldr r0, _080A25BC + adds r1, r4, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r2, #0xc + ldrsh r0, [r1, r2] + rsbs r0, r0, #0 + strh r0, [r1, #0xc] +_080A258C: + adds r0, r5, #0 + movs r1, #5 + mov r2, sl + bl SetWordTaskArg + ldr r0, _080A25BC + adds r1, r4, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + mov r0, sb + strh r0, [r1, #0x16] + mov r2, r8 + strh r2, [r1, #0x18] + ldr r1, [r1] + adds r0, r5, #0 + bl _call_via_r1 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A25BC: .4byte 0x03005B60 + thumb_func_end sub_080A250C + + thumb_func_start sub_080A25C0 +sub_080A25C0: @ 0x080A25C0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + movs r2, #0 + ldr r4, _080A25E4 + ldr r1, _080A25E8 +_080A25CC: + ldrb r0, [r1, #4] + cmp r0, #1 + bne _080A25EC + ldr r0, [r1] + cmp r0, r4 + bne _080A25EC + movs r5, #0x18 + ldrsh r0, [r1, r5] + cmp r0, r3 + bne _080A25EC + movs r0, #1 + b _080A25F6 + .align 2, 0 +_080A25E4: .4byte 0x080A261D +_080A25E8: .4byte 0x03005B60 +_080A25EC: + adds r1, #0x28 + adds r2, #1 + cmp r2, #0xf + ble _080A25CC + movs r0, #0 +_080A25F6: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_080A25C0 + + thumb_func_start sub_080A25FC +sub_080A25FC: @ 0x080A25FC + push {lr} + b _080A2604 +_080A2600: + bl DestroyTask +_080A2604: + ldr r0, _080A2618 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080A2600 + pop {r0} + bx r0 + .align 2, 0 +_080A2618: .4byte 0x080A261D + thumb_func_end sub_080A25FC + + thumb_func_start sub_080A261C +sub_080A261C: @ 0x080A261C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080A2670 + adds r4, r0, r1 + adds r0, r5, #0 + movs r1, #5 + bl GetWordTaskArg + adds r3, r0, #0 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #6 + ldrsh r1, [r4, r2] + cmp r0, r1 + ble _080A2694 + movs r0, #0 + strh r0, [r4, #8] + ldrb r1, [r4] + ldrh r2, [r4, #0xe] + adds r0, r3, #0 + bl BlendPalettes + ldrh r1, [r4] + movs r6, #0 + ldrsh r0, [r4, r6] + ldrh r3, [r4, #2] + movs r6, #2 + ldrsh r2, [r4, r6] + cmp r0, r2 + bne _080A2674 + adds r0, r5, #0 + bl DestroyTask + b _080A2694 + .align 2, 0 +_080A2670: .4byte 0x03005B68 +_080A2674: + ldrh r0, [r4, #4] + adds r1, r1, r0 + strh r1, [r4] + lsls r0, r0, #0x10 + cmp r0, #0 + blt _080A268A + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, r2 + blt _080A2694 + b _080A2692 +_080A268A: + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, r2 + bgt _080A2694 +_080A2692: + strh r3, [r4] +_080A2694: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080A261C + diff --git a/asm/party_menu.s b/asm/party_menu.s new file mode 100644 index 0000000..54c2923 --- /dev/null +++ b/asm/party_menu.s @@ -0,0 +1,19359 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start InitPartyMenu +InitPartyMenu: @ 0x081AFD10 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r4, [sp, #0x24] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sb, r1 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r3, [sp] + lsls r4, r4, #0x18 + lsrs r6, r4, #0x18 + bl reset_brm + ldr r0, _081AFD5C + mov sl, r0 + movs r0, #0x8e + lsls r0, r0, #2 + bl Alloc + adds r5, r0, #0 + mov r1, sl + str r5, [r1] + cmp r5, #0 + bne _081AFD60 + ldr r0, [sp, #0x2c] + bl SetMainCallback2 + b _081AFE6C + .align 2, 0 +_081AFD5C: .4byte 0x0203CB90 +_081AFD60: + ldr r3, _081AFDC4 + movs r1, #0xf + mov r4, r8 + ands r1, r4 + ldrb r2, [r3, #8] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #8] + ldr r0, [sp, #0x2c] + str r0, [r3] + movs r4, #0 + strb r7, [r3, #0xb] + lsls r2, r6, #2 + ldrh r1, [r5, #0xa] + movs r0, #3 + ands r0, r1 + orrs r0, r2 + strh r0, [r5, #0xa] + ldr r0, [sp, #0x28] + str r0, [r5] + str r4, [r5, #4] + ldrb r1, [r5, #8] + movs r0, #0xf + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r5, #8] + mov r1, sl + ldr r2, [r1] + ldrh r0, [r2, #8] + movs r4, #0xfe + lsls r4, r4, #3 + adds r1, r4, #0 + orrs r0, r1 + strh r0, [r2, #8] + ldr r0, [r2, #8] + movs r1, #0xfe + lsls r1, r1, #0xa + orrs r0, r1 + str r0, [r2, #8] + adds r6, r3, #0 + mov r5, r8 + cmp r5, #4 + bne _081AFDC8 + ldrb r0, [r2, #8] + movs r1, #1 + orrs r0, r1 + b _081AFDD0 + .align 2, 0 +_081AFDC4: .4byte 0x0203CB94 +_081AFDC8: + ldrb r1, [r2, #8] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r1 +_081AFDD0: + strb r0, [r2, #8] + mov r0, sb + cmp r0, #0xff + beq _081AFDEC + movs r0, #3 + mov r1, sb + ands r0, r1 + lsls r0, r0, #4 + ldrb r2, [r6, #8] + movs r1, #0x31 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r6, #8] +_081AFDEC: + movs r2, #0 + ldr r5, _081AFE30 + movs r4, #0x86 + lsls r4, r4, #2 + movs r3, #0 +_081AFDF6: + ldr r0, [r5] + lsls r1, r2, #1 + adds r0, r0, r4 + adds r0, r0, r1 + strh r3, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0xf + bls _081AFDF6 + movs r2, #0 + ldr r4, _081AFE30 + movs r3, #0xff +_081AFE10: + ldr r0, [r4] + adds r0, #0xc + adds r0, r0, r2 + ldrb r1, [r0] + orrs r1, r3 + strb r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #2 + bls _081AFE10 + ldr r4, [sp] + cmp r4, #0 + bne _081AFE34 + strb r4, [r6, #9] + b _081AFE56 + .align 2, 0 +_081AFE30: .4byte 0x0203CB90 +_081AFE34: + adds r1, r6, #0 + movs r0, #9 + ldrsb r0, [r1, r0] + cmp r0, #5 + bgt _081AFE52 + adds r1, r0, #0 + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081AFE7C + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + bne _081AFE56 +_081AFE52: + movs r0, #0 + strb r0, [r6, #9] +_081AFE56: + ldr r2, _081AFE80 + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + bl CalculatePlayerPartyCount + ldr r0, _081AFE84 + bl SetMainCallback2 +_081AFE6C: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081AFE7C: .4byte 0x02024190 +_081AFE80: .4byte 0x030030B4 +_081AFE84: .4byte 0x081AFEB9 + thumb_func_end InitPartyMenu + + thumb_func_start PartyMenuCallback +PartyMenuCallback: @ 0x081AFE88 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl do_scheduled_bg_tilemap_copies_to_vram + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PartyMenuCallback + + thumb_func_start PartyMenuVBlankCallback +PartyMenuVBlankCallback: @ 0x081AFEA4 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PartyMenuVBlankCallback + + thumb_func_start PartyMenuInitCallback +PartyMenuInitCallback: @ 0x081AFEB8 + push {lr} +_081AFEBA: + bl sub_081221F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081AFEDE + bl PartyMenuSetup + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081AFEDE + bl sub_081221B8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081AFEBA +_081AFEDE: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PartyMenuInitCallback + + thumb_func_start PartyMenuSetup +PartyMenuSetup: @ 0x081AFEE4 + push {r4, lr} + sub sp, #4 + ldr r1, _081AFF04 + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, r1, #0 + cmp r0, #0x16 + bls _081AFEFA + b _081B0170 +_081AFEFA: + lsls r0, r0, #2 + ldr r1, _081AFF08 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081AFF04: .4byte 0x03002360 +_081AFF08: .4byte 0x081AFF0C +_081AFF0C: @ jump table + .4byte _081AFF68 @ case 0 + .4byte _081AFF84 @ case 1 + .4byte _081AFF8A @ case 2 + .4byte _081AFFAC @ case 3 + .4byte _081AFFB2 @ case 4 + .4byte _081AFFC4 @ case 5 + .4byte _081AFFD6 @ case 6 + .4byte _081AFFE8 @ case 7 + .4byte _081B0010 @ case 8 + .4byte _081B002C @ case 9 + .4byte _081B0040 @ case 10 + .4byte _081B0064 @ case 11 + .4byte _081B0078 @ case 12 + .4byte _081B007E @ case 13 + .4byte _081B0090 @ case 14 + .4byte _081B0096 @ case 15 + .4byte _081B00B8 @ case 16 + .4byte _081B00D8 @ case 17 + .4byte _081B00EC @ case 18 + .4byte _081B0100 @ case 19 + .4byte _081B0108 @ case 20 + .4byte _081B0124 @ case 21 + .4byte _081B014C @ case 22 +_081AFF68: + bl SetVBlankHBlankCallbacksToNull + bl ResetVramOamAndBgCntRegs + bl clear_scheduled_bg_copies_to_vram + ldr r1, _081AFF80 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _081B0164 + .align 2, 0 +_081AFF80: .4byte 0x03002360 +_081AFF84: + bl ScanlineEffect_Stop + b _081B015C +_081AFF8A: + bl ResetPaletteFade + ldr r2, _081AFFA4 + ldrb r0, [r2, #8] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #8] + ldr r1, _081AFFA8 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _081B0164 + .align 2, 0 +_081AFFA4: .4byte 0x02037C74 +_081AFFA8: .4byte 0x03002360 +_081AFFAC: + bl ResetSpriteData + b _081B015C +_081AFFB2: + bl FreeAllSpritePalettes + ldr r1, _081AFFC0 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _081B0164 + .align 2, 0 +_081AFFC0: .4byte 0x03002360 +_081AFFC4: + bl sub_081221B8 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081AFFD0 + b _081B015C +_081AFFD0: + bl ResetTasks + b _081B015C +_081AFFD6: + bl sub_081B1D6C + ldr r1, _081AFFE4 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _081B0164 + .align 2, 0 +_081AFFE4: .4byte 0x03002360 +_081AFFE8: + bl AllocPartyMenuBg + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081AFFFA + bl PartyMenuExit + movs r0, #1 + b _081B018A +_081AFFFA: + ldr r0, _081B000C + ldr r0, [r0] + movs r1, #0x86 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0] + b _081B015C + .align 2, 0 +_081B000C: .4byte 0x0203CB90 +_081B0010: + bl AllocPartyMiscGfx + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081B001C + b _081B0188 +_081B001C: + ldr r1, _081B0028 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _081B0164 + .align 2, 0 +_081B0028: .4byte 0x03002360 +_081B002C: + ldr r0, _081B003C + ldrb r0, [r0, #8] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + bl sub_081B206C + b _081B015C + .align 2, 0 +_081B003C: .4byte 0x0203CB94 +_081B0040: + ldr r0, _081B005C + ldrb r0, [r0, #8] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + bl PartyMenuInitHelperStructs + ldr r0, _081B0060 + ldr r0, [r0] + movs r1, #0x86 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0] + b _081B015C + .align 2, 0 +_081B005C: .4byte 0x0203CB94 +_081B0060: .4byte 0x0203CB90 +_081B0064: + bl LoadHeldItemIcons + ldr r1, _081B0074 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _081B0164 + .align 2, 0 +_081B0074: .4byte 0x03002360 +_081B0078: + bl LoadPartyMenuPokeballGfx + b _081B015C +_081B007E: + bl LoadPartyMenuAilmentGfx + ldr r1, _081B008C + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _081B0164 + .align 2, 0 +_081B008C: .4byte 0x03002360 +_081B0090: + bl LoadMonIconPalettes + b _081B015C +_081B0096: + bl party_menu_add_per_mon_objects + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081B00A2 + b _081B0188 +_081B00A2: + ldr r0, _081B00B4 + ldr r0, [r0] + movs r1, #0x86 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0] + b _081B015C + .align 2, 0 +_081B00B4: .4byte 0x0203CB90 +_081B00B8: + bl RenderPartyMenuBoxes + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081B0188 + ldr r0, _081B00D4 + ldr r0, [r0] + movs r1, #0x86 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0] + b _081B015C + .align 2, 0 +_081B00D4: .4byte 0x0203CB90 +_081B00D8: + bl sub_081B0BF8 + ldr r1, _081B00E8 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _081B0164 + .align 2, 0 +_081B00E8: .4byte 0x03002360 +_081B00EC: + ldr r0, _081B00FC + ldr r0, [r0] + ldrb r0, [r0, #8] + lsls r0, r0, #0x1f + lsrs r0, r0, #0x1f + bl sub_081B20F8 + b _081B015C + .align 2, 0 +_081B00FC: .4byte 0x0203CB90 +_081B0100: + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r2, r0 + b _081B0164 +_081B0108: + ldr r4, _081B0120 + ldr r0, [r4] + ldr r0, [r0] + movs r1, #0 + bl CreateTask + ldr r0, [r4] + ldrh r0, [r0, #0xa] + lsrs r0, r0, #2 + bl display_pokemon_menu_message + b _081B015C + .align 2, 0 +_081B0120: .4byte 0x0203CB90 +_081B0124: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + ldr r2, _081B0144 + ldrb r1, [r2, #8] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #8] + ldr r1, _081B0148 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _081B0164 + .align 2, 0 +_081B0144: .4byte 0x02037C74 +_081B0148: .4byte 0x03002360 +_081B014C: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade +_081B015C: + ldr r1, _081B016C + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 +_081B0164: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _081B0188 + .align 2, 0 +_081B016C: .4byte 0x03002360 +_081B0170: + ldr r0, _081B0180 + bl SetVBlankCallback + ldr r0, _081B0184 + bl SetMainCallback2 + movs r0, #1 + b _081B018A + .align 2, 0 +_081B0180: .4byte 0x081AFEA5 +_081B0184: .4byte 0x081AFE89 +_081B0188: + movs r0, #0 +_081B018A: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end PartyMenuSetup + + thumb_func_start PartyMenuExit +PartyMenuExit: @ 0x081B0194 + push {lr} + sub sp, #4 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _081B01C4 + movs r1, #0 + bl CreateTask + ldr r0, _081B01C8 + bl SetVBlankCallback + ldr r0, _081B01CC + bl SetMainCallback2 + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_081B01C4: .4byte 0x081B01D1 +_081B01C8: .4byte 0x081AFEA5 +_081B01CC: .4byte 0x081AFE89 + thumb_func_end PartyMenuExit + + thumb_func_start PartyMenuExitTask +PartyMenuExitTask: @ 0x081B01D0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _081B01FC + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081B01F4 + ldr r0, _081B0200 + ldr r0, [r0] + bl SetMainCallback2 + bl FreePartyPointers + adds r0, r4, #0 + bl DestroyTask +_081B01F4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B01FC: .4byte 0x02037C74 +_081B0200: .4byte 0x0203CB94 + thumb_func_end PartyMenuExitTask + + thumb_func_start reset_brm +reset_brm: @ 0x081B0204 + ldr r0, _081B0218 + movs r1, #0 + str r1, [r0] + ldr r0, _081B021C + str r1, [r0] + ldr r0, _081B0220 + str r1, [r0] + ldr r0, _081B0224 + str r1, [r0] + bx lr + .align 2, 0 +_081B0218: .4byte 0x0203CB90 +_081B021C: .4byte 0x0203CBB0 +_081B0220: .4byte 0x0203CBA8 +_081B0224: .4byte 0x0203CBAC + thumb_func_end reset_brm + + thumb_func_start AllocPartyMenuBg +AllocPartyMenuBg: @ 0x081B0228 + push {r4, r5, lr} + ldr r5, _081B0290 + movs r4, #0x80 + lsls r4, r4, #4 + adds r0, r4, #0 + bl Alloc + str r0, [r5] + cmp r0, #0 + beq _081B0298 + movs r1, #0 + adds r2, r4, #0 + bl memset + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _081B0294 + movs r0, #0 + movs r2, #3 + bl InitBgsFromTemplates + ldr r1, [r5] + movs r0, #1 + bl SetBgTilemapBuffer + bl ResetAllBgsCoordinates + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #1 + b _081B029A + .align 2, 0 +_081B0290: .4byte 0x0203CBB0 +_081B0294: .4byte 0x085E0F70 +_081B0298: + movs r0, #0 +_081B029A: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end AllocPartyMenuBg + + thumb_func_start AllocPartyMiscGfx +AllocPartyMiscGfx: @ 0x081B02A0 + push {r4, lr} + sub sp, #4 + ldr r0, _081B02C0 + ldr r0, [r0] + movs r1, #0x86 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #7 + bhi _081B0388 + lsls r0, r0, #2 + ldr r1, _081B02C4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081B02C0: .4byte 0x0203CB90 +_081B02C4: .4byte 0x081B02C8 +_081B02C8: @ jump table + .4byte _081B02E8 @ case 0 + .4byte _081B0310 @ case 1 + .4byte _081B0330 @ case 2 + .4byte _081B035C @ case 3 + .4byte _081B0360 @ case 4 + .4byte _081B0364 @ case 5 + .4byte _081B0368 @ case 6 + .4byte _081B036C @ case 7 +_081B02E8: + ldr r4, _081B0308 + ldr r0, _081B030C + mov r1, sp + bl malloc_and_decompress + adds r1, r0, #0 + str r1, [r4] + ldr r2, [sp] + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + movs r0, #1 + movs r3, #0 + bl LoadBgTiles + b _081B0372 + .align 2, 0 +_081B0308: .4byte 0x0203CBAC +_081B030C: .4byte 0x08D967A0 +_081B0310: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081B038C + ldr r0, _081B0328 + ldr r1, _081B032C + ldr r1, [r1] + bl LZDecompressVram + b _081B0372 + .align 2, 0 +_081B0328: .4byte 0x08D96B54 +_081B032C: .4byte 0x0203CBB0 +_081B0330: + ldr r0, _081B0350 + movs r2, #0xb0 + lsls r2, r2, #1 + movs r1, #0 + bl LoadCompressedPalette + ldr r0, _081B0354 + ldr r4, _081B0358 + ldr r1, [r4] + adds r1, #0x18 + movs r2, #0xb0 + bl CpuSet + ldr r1, [r4] + b _081B0376 + .align 2, 0 +_081B0350: .4byte 0x08D96A68 +_081B0354: .4byte 0x020373B4 +_081B0358: .4byte 0x0203CB90 +_081B035C: + movs r0, #4 + b _081B036E +_081B0360: + movs r0, #5 + b _081B036E +_081B0364: + movs r0, #6 + b _081B036E +_081B0368: + movs r0, #7 + b _081B036E +_081B036C: + movs r0, #8 +_081B036E: + bl PartyPaletteBufferCopy +_081B0372: + ldr r0, _081B0384 + ldr r1, [r0] +_081B0376: + movs r0, #0x86 + lsls r0, r0, #2 + adds r1, r1, r0 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _081B038C + .align 2, 0 +_081B0384: .4byte 0x0203CB90 +_081B0388: + movs r0, #1 + b _081B038E +_081B038C: + movs r0, #0 +_081B038E: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end AllocPartyMiscGfx + + thumb_func_start PartyPaletteBufferCopy +PartyPaletteBufferCopy: @ 0x081B0398 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x1c + ldr r5, _081B03C4 + lsrs r4, r4, #0x17 + adds r1, r5, #0 + subs r1, #0x60 + adds r1, r4, r1 + adds r0, r5, #0 + movs r2, #0x10 + bl CpuSet + ldr r0, _081B03C8 + adds r4, r4, r0 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x10 + bl CpuSet + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B03C4: .4byte 0x02037414 +_081B03C8: .4byte 0x020377B4 + thumb_func_end PartyPaletteBufferCopy + + thumb_func_start FreePartyPointers +FreePartyPointers: @ 0x081B03CC + push {lr} + ldr r0, _081B0408 + ldr r0, [r0] + cmp r0, #0 + beq _081B03DA + bl Free +_081B03DA: + ldr r0, _081B040C + ldr r0, [r0] + cmp r0, #0 + beq _081B03E6 + bl Free +_081B03E6: + ldr r0, _081B0410 + ldr r0, [r0] + cmp r0, #0 + beq _081B03F2 + bl Free +_081B03F2: + ldr r0, _081B0414 + ldr r0, [r0] + cmp r0, #0 + beq _081B03FE + bl Free +_081B03FE: + bl FreeAllWindowBuffers + pop {r0} + bx r0 + .align 2, 0 +_081B0408: .4byte 0x0203CB90 +_081B040C: .4byte 0x0203CBB0 +_081B0410: .4byte 0x0203CBAC +_081B0414: .4byte 0x0203CBA8 + thumb_func_end FreePartyPointers + + thumb_func_start PartyMenuInitHelperStructs +PartyMenuInitHelperStructs: @ 0x081B0418 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r4, _081B0498 + movs r0, #0x60 + bl Alloc + str r0, [r4] + movs r5, #0 + lsls r0, r7, #1 + adds r0, r0, r7 + lsls r0, r0, #4 + mov r8, r0 + movs r6, #0xff + mov sb, r4 +_081B043C: + ldr r2, [r4] + lsls r3, r5, #4 + adds r2, r3, r2 + ldr r0, _081B049C + mov ip, r0 + str r0, [r2] + lsls r0, r5, #3 + ldr r1, _081B04A0 + adds r0, r0, r1 + add r0, r8 + str r0, [r2, #4] + strb r5, [r2, #8] + ldr r1, [r4] + adds r1, r3, r1 + ldrb r0, [r1, #9] + orrs r0, r6 + strb r0, [r1, #9] + ldr r1, [r4] + adds r1, r3, r1 + ldrb r0, [r1, #0xa] + orrs r0, r6 + strb r0, [r1, #0xa] + ldr r1, [r4] + adds r1, r3, r1 + ldrb r0, [r1, #0xb] + orrs r0, r6 + strb r0, [r1, #0xb] + ldr r0, [r4] + adds r3, r3, r0 + ldrb r0, [r3, #0xc] + orrs r0, r6 + strb r0, [r3, #0xc] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #5 + bls _081B043C + mov r1, sb + ldr r0, [r1] + mov r1, ip + subs r1, #0x20 + str r1, [r0] + cmp r7, #3 + bne _081B04A4 + str r1, [r0, #0x30] + b _081B04AA + .align 2, 0 +_081B0498: .4byte 0x0203CBA8 +_081B049C: .4byte 0x085E0F9C +_081B04A0: .4byte 0x085E0FBC +_081B04A4: + cmp r7, #0 + beq _081B04AA + str r1, [r0, #0x10] +_081B04AA: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PartyMenuInitHelperStructs + + thumb_func_start RenderPartyMenuBox +RenderPartyMenuBox: @ 0x081B04B8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _081B04F4 + ldrb r1, [r0, #8] + movs r0, #0xf + ands r0, r1 + cmp r0, #5 + bne _081B0534 + cmp r5, #2 + bls _081B0534 + adds r0, r5, #0 + bl sub_081B09C4 + ldr r0, _081B04F8 + subs r1, r5, #3 + lsls r1, r1, #5 + adds r1, r1, r0 + ldrh r0, [r1] + cmp r0, #0 + bne _081B0500 + ldr r0, _081B04FC + lsls r4, r5, #4 + ldr r0, [r0] + adds r0, r0, r4 + movs r1, #0x40 + bl UpdateSelectedPartyBox + b _081B050E + .align 2, 0 +_081B04F4: .4byte 0x0203CB94 +_081B04F8: .4byte 0x02022C9C +_081B04FC: .4byte 0x0203CBA8 +_081B0500: + ldr r0, _081B0530 + lsls r4, r5, #4 + ldr r0, [r0] + adds r0, r0, r4 + movs r1, #8 + bl UpdateSelectedPartyBox +_081B050E: + adds r5, r4, #0 + ldr r4, _081B0530 + ldr r0, [r4] + adds r0, r5, r0 + ldrb r0, [r0, #8] + movs r1, #2 + bl CopyWindowToVram + ldr r0, [r4] + adds r0, r5, r0 + ldrb r0, [r0, #8] + bl PutWindowTilemap + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + b _081B0616 + .align 2, 0 +_081B0530: .4byte 0x0203CBA8 +_081B0534: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081B056C + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + bne _081B0574 + ldr r4, _081B0570 + ldr r0, [r4] + lsls r5, r5, #4 + adds r0, r5, r0 + ldrb r0, [r0, #8] + bl DrawEmptySlot + ldr r0, [r4] + adds r0, r0, r5 + movs r1, #0x40 + bl UpdateSelectedPartyBox + ldr r0, [r4] + adds r0, r5, r0 + ldrb r0, [r0, #8] + movs r1, #2 + bl CopyWindowToVram + b _081B0604 + .align 2, 0 +_081B056C: .4byte 0x02024190 +_081B0570: .4byte 0x0203CBA8 +_081B0574: + ldr r0, _081B0588 + ldrb r0, [r0, #8] + movs r1, #0xf + ands r1, r0 + cmp r1, #7 + bne _081B058C + adds r0, r5, #0 + bl DisplayPartyPokemonSelectForRelearner + b _081B05CE + .align 2, 0 +_081B0588: .4byte 0x0203CB94 +_081B058C: + cmp r1, #2 + bne _081B0598 + adds r0, r5, #0 + bl DisplayPartyPokemonSelectForContest + b _081B05CE +_081B0598: + cmp r1, #4 + bne _081B05A4 + adds r0, r5, #0 + bl DisplayPartyPokemonSelectForBattle + b _081B05CE +_081B05A4: + cmp r1, #0xb + bne _081B05B0 + adds r0, r5, #0 + bl sub_081B0870 + b _081B05CE +_081B05B0: + cmp r1, #0xc + bne _081B05BC + adds r0, r5, #0 + bl DisplayPartyPokemonSelectHeldItemRelated + b _081B05CE +_081B05BC: + adds r0, r5, #0 + bl sub_081B08D4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081B05CE + adds r0, r5, #0 + bl DisplayPartyPokemonData +_081B05CE: + ldr r2, _081B05E4 + ldrb r1, [r2, #8] + movs r0, #0xf + ands r0, r1 + cmp r0, #5 + bne _081B05E8 + adds r0, r5, #0 + movs r1, #0 + bl sub_081B0C9C + b _081B0602 + .align 2, 0 +_081B05E4: .4byte 0x0203CB94 +_081B05E8: + movs r0, #9 + ldrsb r0, [r2, r0] + cmp r0, r5 + bne _081B05FA + adds r0, r5, #0 + movs r1, #1 + bl sub_081B0C9C + b _081B0602 +_081B05FA: + adds r0, r5, #0 + movs r1, #0 + bl sub_081B0C9C +_081B0602: + lsls r5, r5, #4 +_081B0604: + ldr r0, _081B061C + ldr r0, [r0] + adds r0, r5, r0 + ldrb r0, [r0, #8] + bl PutWindowTilemap + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram +_081B0616: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B061C: .4byte 0x0203CBA8 + thumb_func_end RenderPartyMenuBox + + thumb_func_start DisplayPartyPokemonData +DisplayPartyPokemonData: @ 0x081B0620 + push {r4, r5, r6, r7, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #0x64 + adds r1, r4, #0 + muls r1, r0, r1 + ldr r0, _081B0670 + adds r7, r1, r0 + adds r0, r7, #0 + movs r1, #0x2d + bl GetMonData + adds r2, r0, #0 + cmp r2, #0 + beq _081B0678 + ldr r6, _081B0674 + ldr r0, [r6] + lsls r5, r4, #4 + adds r0, r5, r0 + ldr r2, [r0] + ldrb r0, [r0, #8] + movs r1, #0 + str r1, [sp] + movs r1, #1 + str r1, [sp, #4] + ldr r4, [r2] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl _call_via_r4 + ldr r1, [r6] + adds r1, r1, r5 + adds r0, r7, #0 + movs r2, #0 + bl DisplayPartyPokemonNickname + b _081B06DA + .align 2, 0 +_081B0670: .4byte 0x02024190 +_081B0674: .4byte 0x0203CBA8 +_081B0678: + ldr r5, _081B06E4 + ldr r0, [r5] + lsls r4, r4, #4 + adds r0, r4, r0 + ldr r1, [r0] + ldrb r0, [r0, #8] + str r2, [sp] + str r2, [sp, #4] + ldr r6, [r1] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl _call_via_r6 + ldr r1, [r5] + adds r1, r1, r4 + adds r0, r7, #0 + movs r2, #0 + bl DisplayPartyPokemonNickname + ldr r1, [r5] + adds r1, r1, r4 + adds r0, r7, #0 + movs r2, #0 + bl DisplayPartyPokemonLevelCheck + ldr r1, [r5] + adds r1, r1, r4 + adds r0, r7, #0 + movs r2, #0 + bl DisplayPartyPokemonGenderNidoranCheck + ldr r1, [r5] + adds r1, r1, r4 + adds r0, r7, #0 + movs r2, #0 + bl DisplayPartyPokemonHPCheck + ldr r1, [r5] + adds r1, r1, r4 + adds r0, r7, #0 + movs r2, #0 + bl DisplayPartyPokemonMaxHPCheck + ldr r1, [r5] + adds r1, r1, r4 + adds r0, r7, #0 + bl DisplayPartyPokemonHPBarCheck +_081B06DA: + add sp, #8 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B06E4: .4byte 0x0203CBA8 + thumb_func_end DisplayPartyPokemonData + + thumb_func_start DisplayPartyPokemonSelectData +DisplayPartyPokemonSelectData: @ 0x081B06E8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + movs r1, #0x64 + adds r2, r0, #0 + muls r2, r1, r2 + ldr r1, _081B076C + adds r6, r2, r1 + ldr r7, _081B0770 + ldr r1, [r7] + lsls r5, r0, #4 + adds r1, r5, r1 + ldr r2, [r1] + ldrb r0, [r1, #8] + movs r1, #0 + str r1, [sp] + movs r1, #1 + str r1, [sp, #4] + ldr r4, [r2] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl _call_via_r4 + ldr r1, [r7] + adds r1, r1, r5 + adds r0, r6, #0 + movs r2, #0 + bl DisplayPartyPokemonNickname + adds r0, r6, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + bne _081B0754 + ldr r1, [r7] + adds r1, r1, r5 + adds r0, r6, #0 + movs r2, #0 + bl DisplayPartyPokemonLevelCheck + ldr r1, [r7] + adds r1, r1, r5 + adds r0, r6, #0 + movs r2, #0 + bl DisplayPartyPokemonGenderNidoranCheck +_081B0754: + ldr r1, [r7] + adds r1, r1, r5 + mov r0, r8 + movs r2, #0 + bl DisplayPartyPokemonOtherText + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B076C: .4byte 0x02024190 +_081B0770: .4byte 0x0203CBA8 + thumb_func_end DisplayPartyPokemonSelectData + + thumb_func_start DisplayPartyPokemonSelectForBattle +DisplayPartyPokemonSelectForBattle: @ 0x081B0774 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081B0798 + adds r0, r0, r1 + ldr r6, _081B079C + bl GetBattleEntryEligibility + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081B07AE + adds r0, r5, #0 + movs r1, #7 + bl DisplayPartyPokemonSelectData + b _081B07DA + .align 2, 0 +_081B0798: .4byte 0x02024190 +_081B079C: .4byte 0x0203CBC4 +_081B07A0: + adds r1, r4, #2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl DisplayPartyPokemonSelectData + b _081B07DA +_081B07AE: + movs r4, #0 + b _081B07C6 +_081B07B2: + adds r1, r6, r4 + ldrb r0, [r1] + cmp r0, #0 + beq _081B07C0 + subs r0, #1 + cmp r0, r5 + beq _081B07A0 +_081B07C0: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_081B07C6: + bl sub_081B84D0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + blo _081B07B2 + adds r0, r5, #0 + movs r1, #1 + bl DisplayPartyPokemonSelectData +_081B07DA: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end DisplayPartyPokemonSelectForBattle + + thumb_func_start DisplayPartyPokemonSelectForContest +DisplayPartyPokemonSelectForContest: @ 0x081B07E0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #0x64 + muls r0, r4, r0 + ldr r1, _081B0804 + adds r0, r0, r1 + bl sub_080DA58C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _081B0832 + lsls r0, r0, #2 + ldr r1, _081B0808 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081B0804: .4byte 0x02024190 +_081B0808: .4byte 0x081B080C +_081B080C: @ jump table + .4byte _081B0820 @ case 0 + .4byte _081B082A @ case 1 + .4byte _081B082A @ case 2 + .4byte _081B0820 @ case 3 + .4byte _081B0820 @ case 4 +_081B0820: + adds r0, r4, #0 + movs r1, #7 + bl DisplayPartyPokemonSelectData + b _081B0832 +_081B082A: + adds r0, r4, #0 + movs r1, #6 + bl DisplayPartyPokemonSelectData +_081B0832: + pop {r4} + pop {r0} + bx r0 + thumb_func_end DisplayPartyPokemonSelectForContest + + thumb_func_start DisplayPartyPokemonSelectForRelearner +DisplayPartyPokemonSelectForRelearner: @ 0x081B0838 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #0x64 + muls r0, r4, r0 + ldr r1, _081B085C + adds r0, r0, r1 + bl GetNumberOfRelearnableMoves + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081B0860 + adds r0, r4, #0 + movs r1, #9 + bl DisplayPartyPokemonSelectData + b _081B0868 + .align 2, 0 +_081B085C: .4byte 0x02024190 +_081B0860: + adds r0, r4, #0 + movs r1, #8 + bl DisplayPartyPokemonSelectData +_081B0868: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end DisplayPartyPokemonSelectForRelearner + + thumb_func_start sub_081B0870 +sub_081B0870: @ 0x081B0870 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl sub_081B1E5C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081B088E + adds r0, r4, #0 + movs r1, #6 + bl DisplayPartyPokemonSelectData + b _081B0896 +_081B088E: + adds r0, r4, #0 + movs r1, #7 + bl DisplayPartyPokemonSelectData +_081B0896: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_081B0870 + + thumb_func_start DisplayPartyPokemonSelectHeldItemRelated +DisplayPartyPokemonSelectHeldItemRelated: @ 0x081B089C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #0x64 + muls r0, r4, r0 + ldr r1, _081B08C0 + adds r0, r0, r1 + movs r1, #0xc + bl GetMonData + cmp r0, #0 + beq _081B08C4 + adds r0, r4, #0 + movs r1, #0xb + bl DisplayPartyPokemonSelectData + b _081B08CC + .align 2, 0 +_081B08C0: .4byte 0x02024190 +_081B08C4: + adds r0, r4, #0 + movs r1, #0xc + bl DisplayPartyPokemonSelectData +_081B08CC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end DisplayPartyPokemonSelectHeldItemRelated + + thumb_func_start sub_081B08D4 +sub_081B08D4: @ 0x081B08D4 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _081B0904 + adds r6, r1, r0 + ldr r0, _081B0908 + ldrh r4, [r0] + ldr r0, _081B090C + ldrb r0, [r0, #0xb] + cmp r0, #0xc + bne _081B0918 + ldr r1, _081B0910 + movs r0, #0 + strh r0, [r1] + ldr r0, _081B0914 + ldrb r2, [r0] + adds r0, r5, #0 + movs r1, #0 + bl DisplayPartyPokemonSelectToTeachMove + b _081B0962 + .align 2, 0 +_081B0904: .4byte 0x02024190 +_081B0908: .4byte 0x0203CB48 +_081B090C: .4byte 0x0203CB94 +_081B0910: .4byte 0x02037290 +_081B0914: .4byte 0x02037282 +_081B0918: + cmp r0, #3 + bne _081B092E + adds r0, r4, #0 + bl CheckIfItemIsTMHMOrEvolutionStone + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B0932 + cmp r0, #2 + beq _081B093E +_081B092E: + movs r0, #0 + b _081B0964 +_081B0932: + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl DisplayPartyPokemonSelectToTeachMove + b _081B0962 +_081B093E: + adds r0, r6, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + bne _081B095A + adds r0, r6, #0 + movs r1, #3 + adds r2, r4, #0 + bl GetEvolutionTargetSpecies + lsls r0, r0, #0x10 + cmp r0, #0 + bne _081B092E +_081B095A: + adds r0, r5, #0 + movs r1, #0 + bl DisplayPartyPokemonSelectData +_081B0962: + movs r0, #1 +_081B0964: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081B08D4 + + thumb_func_start DisplayPartyPokemonSelectToTeachMove +DisplayPartyPokemonSelectToTeachMove: @ 0x081B096C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r0, #0x64 + muls r0, r4, r0 + ldr r3, _081B0998 + adds r0, r0, r3 + bl CanMonLearnTMTutor + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + beq _081B09AA + cmp r0, #2 + bgt _081B099C + cmp r0, #1 + beq _081B09A0 + b _081B09B4 + .align 2, 0 +_081B0998: .4byte 0x02024190 +_081B099C: + cmp r0, #3 + bne _081B09B4 +_081B09A0: + adds r0, r4, #0 + movs r1, #9 + bl DisplayPartyPokemonSelectData + b _081B09BC +_081B09AA: + adds r0, r4, #0 + movs r1, #0xa + bl DisplayPartyPokemonSelectData + b _081B09BC +_081B09B4: + adds r0, r4, #0 + movs r1, #8 + bl DisplayPartyPokemonSelectData +_081B09BC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end DisplayPartyPokemonSelectToTeachMove + + thumb_func_start sub_081B09C4 +sub_081B09C4: @ 0x081B09C4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081B09F4 + lsls r2, r0, #4 + ldr r1, [r1] + adds r6, r1, r2 + subs r0, #3 + lsls r0, r0, #0x18 + ldr r5, _081B09F8 + lsrs r0, r0, #0x13 + mov r8, r0 + adds r7, r0, r5 + ldrh r0, [r7] + cmp r0, #0 + bne _081B09FC + ldrb r0, [r6, #8] + bl DrawEmptySlot + b _081B0A60 + .align 2, 0 +_081B09F4: .4byte 0x0203CBA8 +_081B09F8: .4byte 0x02022C9C +_081B09FC: + ldr r2, [r6] + ldrb r0, [r6, #8] + movs r1, #0 + str r1, [sp] + str r1, [sp, #4] + ldr r4, [r2] + movs r2, #0 + movs r3, #0 + bl _call_via_r4 + ldr r4, _081B0A6C + adds r5, #4 + add r5, r8 + adds r0, r4, #0 + adds r1, r5, #0 + bl StringCopy + adds r0, r4, #0 + bl StringGetEnd10 + ldrb r0, [r6, #8] + ldr r3, [r6] + adds r3, #4 + adds r1, r4, #0 + movs r2, #0 + bl DisplayPartyPokemonBarDetail + ldrb r0, [r7, #0xf] + adds r1, r6, #0 + bl DisplayPartyPokemonLevel + ldrb r0, [r7, #0x1c] + ldrh r1, [r7] + adds r2, r5, #0 + adds r3, r6, #0 + bl DisplayPartyPokemonGender + ldrh r0, [r7, #0x10] + adds r1, r6, #0 + bl DisplayPartyPokemonHP + ldrh r0, [r7, #0x12] + adds r1, r6, #0 + bl DisplayPartyPokemonMaxHP + ldrh r0, [r7, #0x10] + ldrh r1, [r7, #0x12] + adds r2, r6, #0 + bl DisplayPartyPokemonHPBar +_081B0A60: + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B0A6C: .4byte 0x02021C40 + thumb_func_end sub_081B09C4 + + thumb_func_start RenderPartyMenuBoxes +RenderPartyMenuBoxes: @ 0x081B0A70 + push {r4, r5, lr} + ldr r5, _081B0A98 + ldr r0, [r5] + movs r4, #0x86 + lsls r4, r4, #2 + adds r0, r0, r4 + ldrb r0, [r0] + bl RenderPartyMenuBox + ldr r1, [r5] + adds r1, r1, r4 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #6 + beq _081B0A9C + movs r0, #0 + b _081B0A9E + .align 2, 0 +_081B0A98: .4byte 0x0203CB90 +_081B0A9C: + movs r0, #1 +_081B0A9E: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end RenderPartyMenuBoxes + + thumb_func_start GetPartyMiscGraphicsTile +GetPartyMiscGraphicsTile: @ 0x081B0AA4 + lsls r0, r0, #0x10 + ldr r1, _081B0AB4 + lsrs r0, r0, #0xb + ldr r1, [r1] + adds r1, r1, r0 + adds r0, r1, #0 + bx lr + .align 2, 0 +_081B0AB4: .4byte 0x0203CBAC + thumb_func_end GetPartyMiscGraphicsTile + + thumb_func_start party_menu_add_per_mon_objects_internal +party_menu_add_per_mon_objects_internal: @ 0x081B0AB8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _081B0B2C + ldrb r1, [r0, #8] + movs r0, #0xf + ands r0, r1 + cmp r0, #5 + bne _081B0B68 + cmp r7, #2 + bls _081B0B68 + subs r0, r7, #3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + ldr r0, _081B0B30 + mov sb, r0 + mov r2, sl + lsls r2, r2, #5 + mov r8, r2 + mov r6, r8 + add r6, sb + ldrh r0, [r6] + cmp r0, #0 + beq _081B0BAC + mov r1, sb + adds r1, #0x18 + add r1, r8 + ldr r1, [r1] + ldr r4, _081B0B34 + lsls r5, r7, #4 + ldr r2, [r4] + adds r2, r2, r5 + movs r3, #0 + str r3, [sp] + bl party_menu_link_mon_icon_anim + ldrh r0, [r6] + ldrh r1, [r6, #2] + ldr r2, [r4] + adds r2, r2, r5 + bl party_menu_link_mon_held_item_object + ldrh r0, [r6] + ldr r1, [r4] + adds r1, r1, r5 + bl party_menu_link_mon_pokeball_object + ldrh r0, [r6, #0x10] + cmp r0, #0 + bne _081B0B38 + movs r3, #7 + b _081B0B48 + .align 2, 0 +_081B0B2C: .4byte 0x0203CB94 +_081B0B30: .4byte 0x02022C9C +_081B0B34: .4byte 0x0203CBA8 +_081B0B38: + mov r0, sb + adds r0, #0x14 + add r0, r8 + ldr r0, [r0] + bl pokemon_ailments_get_primary + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 +_081B0B48: + ldr r1, _081B0B60 + mov r2, sl + lsls r0, r2, #5 + adds r0, r0, r1 + ldrh r0, [r0] + ldr r1, _081B0B64 + ldr r2, [r1] + adds r2, r2, r5 + adds r1, r3, #0 + bl party_menu_link_mon_status_condition_object + b _081B0BAC + .align 2, 0 +_081B0B60: .4byte 0x02022C9C +_081B0B64: .4byte 0x0203CBA8 +_081B0B68: + movs r0, #0x64 + adds r1, r7, #0 + muls r1, r0, r1 + ldr r0, _081B0BBC + adds r6, r1, r0 + adds r0, r6, #0 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _081B0BAC + ldr r4, _081B0BC0 + lsls r5, r7, #4 + ldr r1, [r4] + adds r1, r1, r5 + adds r0, r6, #0 + adds r2, r7, #0 + bl party_menu_icon_anim + ldr r1, [r4] + adds r1, r1, r5 + adds r0, r6, #0 + bl party_menu_held_item_object + ldr r1, [r4] + adds r1, r1, r5 + adds r0, r6, #0 + bl party_menu_pokeball_object + ldr r1, [r4] + adds r1, r1, r5 + adds r0, r6, #0 + bl party_menu_status_condition_object +_081B0BAC: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B0BBC: .4byte 0x02024190 +_081B0BC0: .4byte 0x0203CBA8 + thumb_func_end party_menu_add_per_mon_objects_internal + + thumb_func_start party_menu_add_per_mon_objects +party_menu_add_per_mon_objects: @ 0x081B0BC4 + push {r4, r5, lr} + ldr r5, _081B0BEC + ldr r0, [r5] + movs r4, #0x86 + lsls r4, r4, #2 + adds r0, r0, r4 + ldrb r0, [r0] + bl party_menu_add_per_mon_objects_internal + ldr r1, [r5] + adds r1, r1, r4 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #6 + beq _081B0BF0 + movs r0, #0 + b _081B0BF2 + .align 2, 0 +_081B0BEC: .4byte 0x0203CB90 +_081B0BF0: + movs r0, #1 +_081B0BF2: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end party_menu_add_per_mon_objects + + thumb_func_start sub_081B0BF8 +sub_081B0BF8: @ 0x081B0BF8 + push {r4, lr} + sub sp, #0xc + ldr r0, _081B0C20 + ldrb r1, [r0, #8] + movs r0, #0xf + ands r0, r1 + cmp r0, #5 + bne _081B0C24 + movs r0, #7 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + movs r1, #0xe + movs r2, #0x17 + movs r3, #0x11 + bl FillBgTilemapBufferRect + b _081B0C8C + .align 2, 0 +_081B0C20: .4byte 0x0203CB94 +_081B0C24: + ldr r4, _081B0C5C + ldr r0, [r4] + ldrb r0, [r0, #8] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _081B0C64 + movs r0, #0xbf + movs r1, #0x88 + bl sub_081B5C14 + ldr r3, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x7f + ands r0, r1 + lsls r0, r0, #4 + ldrh r2, [r3, #8] + ldr r1, _081B0C60 + ands r1, r2 + orrs r1, r0 + strh r1, [r3, #8] + bl sub_081B0EDC + movs r0, #0xbf + movs r1, #0x98 + bl sub_081B5C14 + b _081B0C6C + .align 2, 0 +_081B0C5C: .4byte 0x0203CB90 +_081B0C60: .4byte 0xFFFFF80F +_081B0C64: + movs r0, #0xc6 + movs r1, #0x94 + bl sub_081B5BD4 +_081B0C6C: + ldr r3, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x7f + ands r0, r1 + lsls r0, r0, #0xb + ldr r1, [r3, #8] + ldr r2, _081B0C94 + ands r1, r2 + orrs r1, r0 + str r1, [r3, #8] + ldr r0, _081B0C98 + ldrb r0, [r0, #9] + movs r1, #1 + bl sub_081B0C9C +_081B0C8C: + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B0C94: .4byte 0xFFFC07FF +_081B0C98: .4byte 0x0203CB94 + thumb_func_end sub_081B0BF8 + + thumb_func_start sub_081B0C9C +sub_081B0C9C: @ 0x081B0C9C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + cmp r7, #6 + beq _081B0D08 + cmp r7, #7 + beq _081B0D44 + movs r0, #0x64 + muls r0, r7, r0 + ldr r1, _081B0D00 + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _081B0DB8 + ldr r6, _081B0D04 + lsls r5, r7, #4 + ldr r4, [r6] + adds r4, r4, r5 + adds r0, r7, #0 + mov r1, r8 + bl GetPartyBoxPalBitfield + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl UpdateSelectedPartyBox + ldr r0, [r6] + adds r0, r5, r0 + ldrb r0, [r0, #9] + mov r1, r8 + bl AnimateSelectedPartyIcon + ldr r0, [r6] + adds r5, r5, r0 + ldrb r0, [r5, #0xb] + mov r1, r8 + bl sub_081B5C38 + b _081B0DB8 + .align 2, 0 +_081B0D00: .4byte 0x02024190 +_081B0D04: .4byte 0x0203CBA8 +_081B0D08: + mov r0, r8 + cmp r0, #0 + bne _081B0D22 + movs r0, #2 + str r0, [sp] + movs r0, #1 + str r0, [sp, #4] + movs r1, #0x17 + movs r2, #0x10 + movs r3, #7 + bl sub_081998C8 + b _081B0D34 +_081B0D22: + movs r0, #2 + str r0, [sp] + str r0, [sp, #4] + movs r0, #1 + movs r1, #0x17 + movs r2, #0x10 + movs r3, #7 + bl sub_081998C8 +_081B0D34: + ldr r0, _081B0D40 + ldr r0, [r0] + ldrh r0, [r0, #8] + lsls r0, r0, #0x15 + b _081B0DAA + .align 2, 0 +_081B0D40: .4byte 0x0203CB90 +_081B0D44: + ldr r0, _081B0D64 + ldr r0, [r0] + ldrb r0, [r0, #8] + lsls r0, r0, #0x1f + cmp r0, #0 + bne _081B0D76 + mov r0, r8 + cmp r0, #0 + bne _081B0D68 + movs r0, #2 + str r0, [sp] + movs r0, #1 + str r0, [sp, #4] + movs r1, #0x17 + movs r2, #0x11 + b _081B0D88 + .align 2, 0 +_081B0D64: .4byte 0x0203CB90 +_081B0D68: + movs r0, #2 + str r0, [sp] + str r0, [sp, #4] + movs r0, #1 + movs r1, #0x17 + movs r2, #0x11 + b _081B0D88 +_081B0D76: + mov r0, r8 + cmp r0, #0 + bne _081B0D90 + movs r0, #2 + str r0, [sp] + movs r0, #1 + str r0, [sp, #4] + movs r1, #0x17 + movs r2, #0x12 +_081B0D88: + movs r3, #7 + bl sub_081998C8 + b _081B0DA2 +_081B0D90: + movs r0, #2 + str r0, [sp] + str r0, [sp, #4] + movs r0, #1 + movs r1, #0x17 + movs r2, #0x12 + movs r3, #7 + bl sub_081998C8 +_081B0DA2: + ldr r0, _081B0DC4 + ldr r0, [r0] + ldr r0, [r0, #8] + lsls r0, r0, #0xe +_081B0DAA: + lsrs r0, r0, #0x19 + mov r1, r8 + bl sub_081B5C38 + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram +_081B0DB8: + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B0DC4: .4byte 0x0203CB90 + thumb_func_end sub_081B0C9C + + thumb_func_start GetPartyBoxPalBitfield +GetPartyBoxPalBitfield: @ 0x081B0DC8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r4, #0 + cmp r1, #1 + bne _081B0DDA + movs r4, #1 +_081B0DDA: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081B0E54 + adds r0, r0, r1 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + bne _081B0DF0 + movs r0, #2 + orrs r4, r0 +_081B0DF0: + adds r0, r5, #0 + bl PartyBoxPal_ParnterOrDisqualifiedInArena + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081B0E06 + movs r0, #8 + orrs r4, r0 + lsls r0, r4, #0x18 + lsrs r4, r0, #0x18 +_081B0E06: + ldr r0, _081B0E58 + ldrb r1, [r0, #0xb] + adds r2, r0, #0 + cmp r1, #9 + bne _081B0E18 + movs r0, #0x10 + orrs r4, r0 + lsls r0, r4, #0x18 + lsrs r4, r0, #0x18 +_081B0E18: + cmp r1, #8 + bne _081B0E34 + movs r0, #9 + ldrsb r0, [r2, r0] + cmp r5, r0 + beq _081B0E2C + movs r0, #0xa + ldrsb r0, [r2, r0] + cmp r5, r0 + bne _081B0E34 +_081B0E2C: + movs r0, #4 + orrs r4, r0 + lsls r0, r4, #0x18 + lsrs r4, r0, #0x18 +_081B0E34: + ldrb r0, [r2, #0xb] + cmp r0, #0xa + bne _081B0E4A + movs r0, #9 + ldrsb r0, [r2, r0] + cmp r5, r0 + bne _081B0E4A + movs r0, #0x20 + orrs r4, r0 + lsls r0, r4, #0x18 + lsrs r4, r0, #0x18 +_081B0E4A: + adds r0, r4, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081B0E54: .4byte 0x02024190 +_081B0E58: .4byte 0x0203CB94 + thumb_func_end GetPartyBoxPalBitfield + + thumb_func_start PartyBoxPal_ParnterOrDisqualifiedInArena +PartyBoxPal_ParnterOrDisqualifiedInArena: @ 0x081B0E5C + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _081B0E80 + ldrb r1, [r0, #8] + movs r0, #0x30 + ands r0, r1 + cmp r0, #0x20 + bne _081B0E84 + cmp r2, #1 + beq _081B0E7A + cmp r2, #4 + beq _081B0E7A + cmp r2, #5 + bne _081B0E84 +_081B0E7A: + movs r0, #1 + b _081B0EC8 + .align 2, 0 +_081B0E80: .4byte 0x0203CB94 +_081B0E84: + cmp r2, #2 + bhi _081B0EC6 + ldr r0, _081B0ECC + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xb + ands r0, r1 + cmp r0, #0 + beq _081B0EC6 + ldr r0, _081B0ED0 + ldr r1, _081B0ED4 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081B0EC6 + adds r0, r2, #0 + bl sub_081B8BD8 + ldr r1, _081B0ED8 + ldr r1, [r1] + movs r2, #0xa8 + lsls r2, r2, #2 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + asrs r1, r0 + movs r0, #1 + ands r1, r0 + cmp r1, #0 + bne _081B0EC8 +_081B0EC6: + movs r0, #0 +_081B0EC8: + pop {r1} + bx r1 + .align 2, 0 +_081B0ECC: .4byte 0x02022C90 +_081B0ED0: .4byte 0x03002360 +_081B0ED4: .4byte 0x00000439 +_081B0ED8: .4byte 0x02024140 + thumb_func_end PartyBoxPal_ParnterOrDisqualifiedInArena + + thumb_func_start sub_081B0EDC +sub_081B0EDC: @ 0x081B0EDC + push {r4, r5, r6, lr} + sub sp, #0xc + ldr r1, _081B0F18 + movs r6, #7 + str r6, [sp] + movs r5, #2 + str r5, [sp, #4] + movs r4, #0x11 + str r4, [sp, #8] + movs r0, #1 + movs r2, #0x17 + movs r3, #0x10 + bl CopyToBgTilemapBufferRect_ChangePalette + ldr r1, _081B0F1C + str r6, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #1 + movs r2, #0x17 + movs r3, #0x12 + bl CopyToBgTilemapBufferRect_ChangePalette + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081B0F18: .4byte 0x085E107C +_081B0F1C: .4byte 0x085E1098 + thumb_func_end sub_081B0EDC + + thumb_func_start IsMultiBattle +IsMultiBattle: @ 0x081B0F20 + push {lr} + ldr r0, _081B0F44 + ldr r0, [r0] + movs r1, #0x49 + ands r0, r1 + cmp r0, #0x49 + bne _081B0F50 + ldr r0, _081B0F48 + ldr r1, _081B0F4C + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081B0F50 + movs r0, #1 + b _081B0F52 + .align 2, 0 +_081B0F44: .4byte 0x02022C90 +_081B0F48: .4byte 0x03002360 +_081B0F4C: .4byte 0x00000439 +_081B0F50: + movs r0, #0 +_081B0F52: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsMultiBattle + + thumb_func_start sub_081B0F58 +sub_081B0F58: @ 0x081B0F58 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + movs r0, #0x64 + bl Alloc + adds r5, r0, #0 + adds r1, r4, #0 + movs r2, #0x64 + bl memcpy + adds r0, r4, #0 + adds r1, r6, #0 + movs r2, #0x64 + bl memcpy + adds r0, r6, #0 + adds r1, r5, #0 + movs r2, #0x64 + bl memcpy + adds r0, r5, #0 + bl Free + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081B0F58 + + thumb_func_start sub_081B0F90 +sub_081B0F90: @ 0x081B0F90 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _081B0FC0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B0FC4 + str r1, [r0] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B0FC0: .4byte 0x03005B60 +_081B0FC4: .4byte 0x081B0FC9 + thumb_func_end sub_081B0F90 + + thumb_func_start c3_0811FAB4 +c3_0811FAB4: @ 0x081B0FC8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _081B0FFC + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081B101C + ldr r4, _081B1000 + ldrb r1, [r4, #8] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _081B0FEA + bl sub_081B8D20 +_081B0FEA: + ldr r0, _081B1004 + ldr r0, [r0] + ldr r0, [r0, #4] + cmp r0, #0 + beq _081B1008 + bl SetMainCallback2 + b _081B100E + .align 2, 0 +_081B0FFC: .4byte 0x02037C74 +_081B1000: .4byte 0x0203CB94 +_081B1004: .4byte 0x0203CB90 +_081B1008: + ldr r0, [r4] + bl SetMainCallback2 +_081B100E: + bl ResetSpriteData + bl FreePartyPointers + adds r0, r5, #0 + bl DestroyTask +_081B101C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end c3_0811FAB4 + + thumb_func_start GetCursorSelectionMonId +GetCursorSelectionMonId: @ 0x081B1024 + ldr r0, _081B102C + ldrb r0, [r0, #9] + bx lr + .align 2, 0 +_081B102C: .4byte 0x0203CB94 + thumb_func_end GetCursorSelectionMonId + + thumb_func_start sub_081B1030 +sub_081B1030: @ 0x081B1030 + ldr r0, _081B103C + ldrb r0, [r0, #8] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bx lr + .align 2, 0 +_081B103C: .4byte 0x0203CB94 + thumb_func_end sub_081B1030 + + thumb_func_start sub_081B1040 +sub_081B1040: @ 0x081B1040 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r6, r5, #0 + ldr r0, _081B107C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081B10B0 + bl sub_081221F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B10B0 + bl sub_081B10BC + adds r4, r0, #0 + bl PartyMenuButtonHandler + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #2 + beq _081B1090 + cmp r0, #2 + bgt _081B1080 + cmp r0, #1 + beq _081B1086 + b _081B10B0 + .align 2, 0 +_081B107C: .4byte 0x02037C74 +_081B1080: + cmp r0, #8 + beq _081B109A + b _081B10B0 +_081B1086: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_081B10DC + b _081B10B0 +_081B1090: + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_081B12A0 + b _081B10B0 +_081B109A: + ldr r0, _081B10B8 + ldr r0, [r0] + ldrb r0, [r0, #8] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _081B10B0 + movs r0, #5 + bl PlaySE + bl sub_081B4C28 +_081B10B0: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081B10B8: .4byte 0x0203CB90 + thumb_func_end sub_081B1040 + + thumb_func_start sub_081B10BC +sub_081B10BC: @ 0x081B10BC + push {lr} + ldr r0, _081B10D0 + ldrb r1, [r0, #0xb] + cmp r1, #8 + beq _081B10CA + cmp r1, #0xa + bne _081B10D4 +_081B10CA: + adds r0, #0xa + b _081B10D6 + .align 2, 0 +_081B10D0: .4byte 0x0203CB94 +_081B10D4: + adds r0, #9 +_081B10D6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081B10BC + + thumb_func_start sub_081B10DC +sub_081B10DC: @ 0x081B10DC + push {r4, r5, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #6 + bne _081B10FC + ldr r0, _081B10F8 + ldr r1, [r0, #4] + adds r0, r5, #0 + bl _call_via_r1 + b _081B126E + .align 2, 0 +_081B10F8: .4byte 0x0203CB94 +_081B10FC: + ldr r0, _081B1114 + ldrb r0, [r0, #0xb] + subs r0, #3 + cmp r0, #0xa + bls _081B1108 + b _081B1262 +_081B1108: + lsls r0, r0, #2 + ldr r1, _081B1118 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081B1114: .4byte 0x0203CB94 +_081B1118: .4byte 0x081B111C +_081B111C: @ jump table + .4byte _081B116C @ case 0 + .4byte _081B1262 @ case 1 + .4byte _081B1208 @ case 2 + .4byte _081B1208 @ case 3 + .4byte _081B11E0 @ case 4 + .4byte _081B1230 @ case 5 + .4byte _081B1262 @ case 6 + .4byte _081B1148 @ case 7 + .4byte _081B123E @ case 8 + .4byte _081B11B8 @ case 9 + .4byte _081B124C @ case 10 +_081B1148: + adds r0, r4, #0 + bl sub_081B1274 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081B1156 + b _081B126E +_081B1156: + ldr r0, _081B1168 + ldr r0, [r0] + adds r0, #0xd + bl sub_081B2CB0 + adds r0, r5, #0 + bl sub_081614AC + b _081B126E + .align 2, 0 +_081B1168: .4byte 0x0203CB90 +_081B116C: + adds r0, r4, #0 + bl sub_081B1274 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081B117A + b _081B126E +_081B117A: + ldr r0, _081B11A4 + ldrb r1, [r0, #8] + movs r0, #0xf + ands r0, r1 + ldr r2, _081B11A8 + cmp r0, #1 + bne _081B118E + ldr r1, [r2] + ldr r0, _081B11AC + str r0, [r1, #4] +_081B118E: + ldr r0, [r2] + adds r0, #0xd + bl sub_081B2CB0 + ldr r0, _081B11B0 + ldr r1, _081B11B4 + ldr r2, [r0] + adds r0, r5, #0 + bl _call_via_r2 + b _081B126E + .align 2, 0 +_081B11A4: .4byte 0x0203CB94 +_081B11A8: .4byte 0x0203CB90 +_081B11AC: .4byte 0x081B8DE1 +_081B11B0: .4byte 0x03006068 +_081B11B4: .4byte 0x081B6435 +_081B11B8: + adds r0, r4, #0 + bl sub_081B1274 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081B126E + movs r0, #5 + bl PlaySE + ldr r0, _081B11DC + ldr r0, [r0] + adds r0, #0xd + bl sub_081B2CB0 + adds r0, r5, #0 + bl sub_081B7AF0 + b _081B126E + .align 2, 0 +_081B11DC: .4byte 0x0203CB90 +_081B11E0: + adds r0, r4, #0 + bl sub_081B1274 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081B126E + movs r0, #5 + bl PlaySE + ldr r0, _081B1204 + ldr r0, [r0] + adds r0, #0xd + bl sub_081B2CB0 + adds r0, r5, #0 + bl sub_081B8114 + b _081B126E + .align 2, 0 +_081B1204: .4byte 0x0203CB90 +_081B1208: + adds r0, r4, #0 + bl sub_081B1274 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081B126E + movs r0, #5 + bl PlaySE + ldr r0, _081B122C + ldr r0, [r0] + adds r0, #0xd + bl sub_081B2CB0 + adds r0, r5, #0 + bl sub_081B7C4C + b _081B126E + .align 2, 0 +_081B122C: .4byte 0x0203CB90 +_081B1230: + movs r0, #5 + bl PlaySE + adds r0, r5, #0 + bl sub_081B35D8 + b _081B126E +_081B123E: + movs r0, #5 + bl PlaySE + adds r0, r5, #0 + bl sub_081B0F90 + b _081B126E +_081B124C: + adds r0, r4, #0 + bl sub_081B1274 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081B126E + ldrb r1, [r4] + adds r0, r5, #0 + bl sub_081B1E7C + b _081B126E +_081B1262: + movs r0, #5 + bl PlaySE + adds r0, r5, #0 + bl sub_081B339C +_081B126E: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_081B10DC + + thumb_func_start sub_081B1274 +sub_081B1274: @ 0x081B1274 + push {lr} + ldrb r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081B1290 + adds r0, r0, r1 + movs r1, #0x2d + bl GetMonData + cmp r0, #1 + beq _081B1294 + movs r0, #1 + b _081B129C + .align 2, 0 +_081B1290: .4byte 0x02024190 +_081B1294: + movs r0, #0x20 + bl PlaySE + movs r0, #0 +_081B129C: + pop {r1} + bx r1 + thumb_func_end sub_081B1274 + + thumb_func_start sub_081B12A0 +sub_081B12A0: @ 0x081B12A0 + push {r4, r5, lr} + adds r5, r1, #0 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _081B12BC + ldrb r0, [r0, #0xb] + cmp r0, #8 + beq _081B12D2 + cmp r0, #8 + bgt _081B12C0 + cmp r0, #1 + beq _081B12CA + b _081B12EE + .align 2, 0 +_081B12BC: .4byte 0x0203CB94 +_081B12C0: + cmp r0, #0xa + beq _081B12D2 + cmp r0, #0xd + beq _081B12E0 + b _081B12EE +_081B12CA: + movs r0, #0x20 + bl PlaySE + b _081B1322 +_081B12D2: + movs r0, #5 + bl PlaySE + adds r0, r4, #0 + bl sub_081B3D1C + b _081B1322 +_081B12E0: + movs r0, #5 + bl PlaySE + adds r0, r4, #0 + bl sub_081B1EE0 + b _081B1322 +_081B12EE: + movs r0, #5 + bl PlaySE + adds r0, r4, #0 + bl sub_081B1330 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B1322 + bl sub_081221B8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081B1312 + ldr r1, _081B1328 + movs r0, #7 + strh r0, [r1] +_081B1312: + ldr r0, _081B132C + movs r1, #0 + strb r1, [r0] + movs r0, #7 + strb r0, [r5] + adds r0, r4, #0 + bl sub_081B0F90 +_081B1322: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B1328: .4byte 0x02037280 +_081B132C: .4byte 0x0203CBB4 + thumb_func_end sub_081B12A0 + + thumb_func_start sub_081B1330 +sub_081B1330: @ 0x081B1330 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r5, #0 + ldr r0, _081B1348 + ldrb r0, [r0, #8] + movs r1, #0xf + ands r1, r0 + cmp r1, #2 + bne _081B1350 + ldr r5, _081B134C + b _081B135A + .align 2, 0 +_081B1348: .4byte 0x0203CB94 +_081B134C: .4byte 0x085CA210 +_081B1350: + cmp r1, #4 + bne _081B135A + bl sub_081B855C + adds r5, r0, #0 +_081B135A: + cmp r5, #0 + beq _081B139C + ldr r0, _081B138C + ldr r0, [r0] + adds r0, #0xd + bl sub_081B2CB0 + ldr r4, _081B1390 + adds r0, r4, #0 + adds r1, r5, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + movs r1, #1 + bl sub_081B182C + ldr r1, _081B1394 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B1398 + str r1, [r0] + movs r0, #1 + b _081B139E + .align 2, 0 +_081B138C: .4byte 0x0203CB90 +_081B1390: .4byte 0x02021C7C +_081B1394: .4byte 0x03005B60 +_081B1398: .4byte 0x081B13A5 +_081B139C: + movs r0, #0 +_081B139E: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_081B1330 + + thumb_func_start sub_081B13A4 +sub_081B13A4: @ 0x081B13A4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl sub_081B18A4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B13C8 + bl sub_081B2FDC + ldr r0, _081B13D0 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B13D4 + str r0, [r1] +_081B13C8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B13D0: .4byte 0x03005B60 +_081B13D4: .4byte 0x081B13D9 + thumb_func_end sub_081B13A4 + + thumb_func_start sub_081B13D8 +sub_081B13D8: @ 0x081B13D8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _081B13FE + cmp r1, #0 + bgt _081B13F8 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _081B141C + b _081B1428 +_081B13F8: + cmp r1, #1 + beq _081B1422 + b _081B1428 +_081B13FE: + ldr r0, _081B1414 + strb r1, [r0] + ldr r1, _081B1418 + movs r0, #7 + strb r0, [r1, #9] + bl sub_081B81F8 + adds r0, r4, #0 + bl sub_081B0F90 + b _081B1428 + .align 2, 0 +_081B1414: .4byte 0x0203CBB4 +_081B1418: .4byte 0x0203CB94 +_081B141C: + movs r0, #5 + bl PlaySE +_081B1422: + adds r0, r4, #0 + bl sub_081B18EC +_081B1428: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081B13D8 + + thumb_func_start PartyMenuButtonHandler +PartyMenuButtonHandler: @ 0x081B1430 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _081B1448 + ldrh r1, [r0, #0x30] + adds r3, r0, #0 + cmp r1, #0x20 + beq _081B145E + cmp r1, #0x20 + bgt _081B144C + cmp r1, #0x10 + beq _081B1462 + b _081B1466 + .align 2, 0 +_081B1448: .4byte 0x03002360 +_081B144C: + cmp r1, #0x40 + beq _081B1456 + cmp r1, #0x80 + beq _081B145A + b _081B1466 +_081B1456: + movs r1, #0xff + b _081B1482 +_081B145A: + movs r1, #1 + b _081B1482 +_081B145E: + movs r1, #0xfe + b _081B1482 +_081B1462: + movs r1, #2 + b _081B1482 +_081B1466: + bl sub_08122118 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B147A + cmp r0, #2 + beq _081B147E + movs r1, #0 + b _081B1480 +_081B147A: + movs r1, #0xff + b _081B1480 +_081B147E: + movs r1, #1 +_081B1480: + ldr r3, _081B1490 +_081B1482: + ldrh r2, [r3, #0x2e] + movs r0, #8 + ands r0, r2 + cmp r0, #0 + beq _081B1494 + movs r0, #8 + b _081B14C0 + .align 2, 0 +_081B1490: .4byte 0x03002360 +_081B1494: + lsls r0, r1, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _081B14A6 + adds r0, r4, #0 + bl UpdateCurrentPartySelection + movs r0, #0 + b _081B14C0 +_081B14A6: + movs r0, #1 + ands r0, r2 + cmp r0, #0 + beq _081B14BA + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #7 + bne _081B14BA + movs r0, #2 + b _081B14C0 +_081B14BA: + ldrh r1, [r3, #0x2e] + movs r0, #3 + ands r0, r1 +_081B14C0: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end PartyMenuButtonHandler + + thumb_func_start UpdateCurrentPartySelection +UpdateCurrentPartySelection: @ 0x081B14C8 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrb r4, [r5] + ldr r0, _081B14EC + ldrb r0, [r0, #8] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + cmp r0, #0 + bne _081B14F0 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r5, #0 + bl SetNewPartySelectTarget1 + b _081B14FA + .align 2, 0 +_081B14EC: .4byte 0x0203CB94 +_081B14F0: + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r5, #0 + bl SetNewPartySelectTarget2 +_081B14FA: + movs r1, #0 + ldrsb r1, [r5, r1] + lsls r4, r4, #0x18 + asrs r0, r4, #0x18 + cmp r1, r0 + beq _081B151C + movs r0, #5 + bl PlaySE + lsrs r0, r4, #0x18 + movs r1, #0 + bl sub_081B0C9C + ldrb r0, [r5] + movs r1, #1 + bl sub_081B0C9C +_081B151C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end UpdateCurrentPartySelection + + thumb_func_start SetNewPartySelectTarget1 +SetNewPartySelectTarget1: @ 0x081B1524 + push {r4, lr} + adds r4, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _081B154A + cmp r1, r0 + bgt _081B1540 + subs r0, #1 + cmp r1, r0 + beq _081B15F4 + b _081B1622 +_081B1540: + cmp r1, #1 + beq _081B1590 + cmp r1, #2 + beq _081B15C8 + b _081B1622 +_081B154A: + ldrb r0, [r4] + movs r1, #0 + ldrsb r1, [r4, r1] + cmp r1, #0 + bne _081B1558 + movs r0, #7 + b _081B1620 +_081B1558: + cmp r1, #6 + bne _081B1568 + ldr r0, _081B1564 + ldrb r0, [r0] + subs r0, #1 + b _081B1620 + .align 2, 0 +_081B1564: .4byte 0x0202418D +_081B1568: + cmp r1, #7 + bne _081B158C + ldr r0, _081B157C + ldr r0, [r0] + ldrb r0, [r0, #8] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _081B1580 + movs r0, #6 + b _081B1620 + .align 2, 0 +_081B157C: .4byte 0x0203CB90 +_081B1580: + ldr r0, _081B1588 + ldrb r0, [r0] + subs r0, #1 + b _081B1620 + .align 2, 0 +_081B1588: .4byte 0x0202418D +_081B158C: + subs r0, #1 + b _081B1620 +_081B1590: + ldrb r2, [r4] + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #7 + beq _081B161E + movs r1, #0 + ldrsb r1, [r4, r1] + ldr r0, _081B15B8 + ldrb r0, [r0] + subs r0, #1 + cmp r1, r0 + bne _081B15C4 + ldr r0, _081B15BC + ldr r0, [r0] + ldrb r0, [r0, #8] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _081B15C0 + movs r0, #6 + b _081B1620 + .align 2, 0 +_081B15B8: .4byte 0x0202418D +_081B15BC: .4byte 0x0203CB90 +_081B15C0: + movs r0, #7 + b _081B1620 +_081B15C4: + adds r0, r2, #1 + b _081B1620 +_081B15C8: + ldr r0, _081B15EC + ldrb r0, [r0] + cmp r0, #1 + beq _081B1622 + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + bne _081B1622 + ldr r0, _081B15F0 + ldr r0, [r0] + ldrb r0, [r0, #8] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1d + cmp r0, #0 + bne _081B1620 + movs r0, #1 + b _081B1620 + .align 2, 0 +_081B15EC: .4byte 0x0202418D +_081B15F0: .4byte 0x0203CB90 +_081B15F4: + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + beq _081B1622 + cmp r0, #6 + beq _081B1622 + cmp r0, #7 + beq _081B1622 + ldr r0, _081B1628 + ldr r3, [r0] + movs r1, #0 + ldrsb r1, [r4, r1] + movs r0, #7 + ands r1, r0 + lsls r1, r1, #1 + ldrb r2, [r3, #8] + movs r0, #0xf + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #8] +_081B161E: + movs r0, #0 +_081B1620: + strb r0, [r4] +_081B1622: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B1628: .4byte 0x0203CB90 + thumb_func_end SetNewPartySelectTarget1 + + thumb_func_start SetNewPartySelectTarget2 +SetNewPartySelectTarget2: @ 0x081B162C + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r2, r1, #0x18 + asrs r5, r1, #0x18 + movs r6, #1 + rsbs r6, r6, #0 + cmp r5, r6 + beq _081B1658 + cmp r5, r6 + bgt _081B164E + movs r0, #2 + rsbs r0, r0, #0 + cmp r5, r0 + bne _081B164C + b _081B176C +_081B164C: + b _081B17C4 +_081B164E: + cmp r5, #1 + beq _081B16B4 + cmp r5, #2 + beq _081B16F4 + b _081B17C4 +_081B1658: + ldrb r1, [r4] + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + bne _081B1666 + movs r0, #7 + b _081B17C2 +_081B1666: + cmp r0, #6 + bne _081B1678 + ldr r0, _081B1674 + ldrb r0, [r0] + subs r0, #1 + b _081B17C2 + .align 2, 0 +_081B1674: .4byte 0x0202418D +_081B1678: + cmp r0, #7 + bne _081B1694 + ldr r0, _081B168C + ldr r0, [r0] + ldrb r0, [r0, #8] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _081B1690 + movs r0, #6 + b _081B17C2 + .align 2, 0 +_081B168C: .4byte 0x0203CB90 +_081B1690: + subs r0, r1, #1 + strb r0, [r4] +_081B1694: + movs r0, #0 + ldrsb r0, [r4, r0] + lsls r1, r2, #0x18 + asrs r1, r1, #0x18 + bl sub_081B17D0 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _081B16B0 + b _081B17C4 +_081B16B0: + strb r2, [r4] + b _081B17C4 +_081B16B4: + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #6 + bne _081B16C0 + movs r0, #7 + b _081B17C2 +_081B16C0: + cmp r0, #7 + bne _081B16C8 + movs r0, #0 + b _081B17C2 +_081B16C8: + movs r0, #0 + ldrsb r0, [r4, r0] + movs r1, #1 + bl sub_081B17D0 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, r6 + bne _081B16B0 + ldr r0, _081B16EC + ldr r0, [r0] + ldrb r0, [r0, #8] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _081B16F0 + movs r0, #6 + b _081B17C2 + .align 2, 0 +_081B16EC: .4byte 0x0203CB90 +_081B16F0: + movs r0, #7 + b _081B17C2 +_081B16F4: + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + bne _081B172C + ldr r0, _081B171C + ldr r0, [r0] + ldrb r0, [r0, #8] + lsls r0, r0, #0x1c + lsrs r6, r0, #0x1d + cmp r6, #3 + bne _081B1724 + ldr r0, _081B1720 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _081B17C4 + strb r6, [r4] + b _081B17C4 + .align 2, 0 +_081B171C: .4byte 0x0203CB90 +_081B1720: .4byte 0x020242BC +_081B1724: + ldr r0, _081B1728 + b _081B1740 + .align 2, 0 +_081B1728: .4byte 0x02024258 +_081B172C: + cmp r0, #1 + bne _081B17C4 + ldr r0, _081B1750 + ldr r0, [r0] + ldrb r0, [r0, #8] + lsls r0, r0, #0x1c + lsrs r5, r0, #0x1d + cmp r5, #5 + bne _081B1758 + ldr r0, _081B1754 +_081B1740: + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _081B17C4 + strb r5, [r4] + b _081B17C4 + .align 2, 0 +_081B1750: .4byte 0x0203CB90 +_081B1754: .4byte 0x02024384 +_081B1758: + ldr r0, _081B1768 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _081B17C4 + movs r0, #4 + b _081B17C2 + .align 2, 0 +_081B1768: .4byte 0x02024320 +_081B176C: + ldrb r1, [r4] + subs r0, r1, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _081B179C + ldr r0, _081B1798 + ldr r3, [r0] + movs r1, #0 + ldrsb r1, [r4, r1] + movs r0, #7 + ands r1, r0 + lsls r1, r1, #1 + ldrb r2, [r3, #8] + movs r0, #0xf + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #8] + movs r0, #0 + b _081B17C2 + .align 2, 0 +_081B1798: .4byte 0x0203CB90 +_081B179C: + subs r0, r1, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _081B17C4 + ldr r0, _081B17CC + ldr r3, [r0] + movs r1, #0 + ldrsb r1, [r4, r1] + movs r0, #7 + ands r1, r0 + lsls r1, r1, #1 + ldrb r2, [r3, #8] + movs r0, #0xf + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #8] + movs r0, #1 +_081B17C2: + strb r0, [r4] +_081B17C4: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081B17CC: .4byte 0x0203CB90 + thumb_func_end SetNewPartySelectTarget2 + + thumb_func_start sub_081B17D0 +sub_081B17D0: @ 0x081B17D0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x18 + asrs r6, r1, #0x18 +_081B17DA: + lsls r0, r5, #0x18 + asrs r0, r0, #0x18 + adds r0, r0, r6 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r5, #0x18 + lsrs r0, r1, #0x18 + cmp r0, #5 + bhi _081B1808 + asrs r4, r1, #0x18 + movs r0, #0x64 + muls r0, r4, r0 + ldr r1, _081B1804 + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _081B17DA + adds r0, r4, #0 + b _081B180C + .align 2, 0 +_081B1804: .4byte 0x02024190 +_081B1808: + movs r0, #1 + rsbs r0, r0, #0 +_081B180C: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081B17D0 + + thumb_func_start GetMonNickname +GetMonNickname: @ 0x081B1814 + push {r4, lr} + adds r4, r1, #0 + movs r1, #2 + adds r2, r4, #0 + bl GetMonData + adds r0, r4, #0 + bl StringGetEnd10 + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetMonNickname + + thumb_func_start sub_081B182C +sub_081B182C: @ 0x081B182C + push {r4, lr} + lsls r4, r1, #0x18 + lsrs r4, r4, #0x18 + bl sub_081B2F90 + ldr r0, _081B1854 + movs r1, #1 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _081B1858 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #8] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081B1854: .4byte 0x081B185D +_081B1858: .4byte 0x03005B60 + thumb_func_end sub_081B182C + + thumb_func_start sub_081B185C +sub_081B185C: @ 0x081B185C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r5, r4, #0 + movs r0, #6 + bl RunTextPrintersRetIsActive + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + beq _081B1898 + ldr r0, _081B18A0 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r2, #8 + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _081B1892 + movs r0, #6 + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + movs r0, #6 + bl ClearWindowTilemap +_081B1892: + adds r0, r5, #0 + bl DestroyTask +_081B1898: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B18A0: .4byte 0x03005B60 + thumb_func_end sub_081B185C + + thumb_func_start sub_081B18A4 +sub_081B18A4: @ 0x081B18A4 + push {lr} + ldr r0, _081B18B4 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_081B18B4: .4byte 0x081B185D + thumb_func_end sub_081B18A4 + + thumb_func_start sub_081B18B8 +sub_081B18B8: @ 0x081B18B8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl sub_081221F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B18DE + movs r0, #0 + bl display_pokemon_menu_message + ldr r0, _081B18E4 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B18E8 + str r0, [r1] +_081B18DE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B18E4: .4byte 0x03005B60 +_081B18E8: .4byte 0x081B1041 + thumb_func_end sub_081B18B8 + + thumb_func_start sub_081B18EC +sub_081B18EC: @ 0x081B18EC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r5, r4, #0 + bl sub_081B18A4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B1944 + movs r0, #6 + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + movs r0, #6 + bl ClearWindowTilemap + bl sub_081221B8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081B1930 + ldr r0, _081B1928 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B192C + b _081B1942 + .align 2, 0 +_081B1928: .4byte 0x03005B60 +_081B192C: .4byte 0x081B18B9 +_081B1930: + movs r0, #0 + bl display_pokemon_menu_message + ldr r0, _081B194C + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B1950 +_081B1942: + str r0, [r1] +_081B1944: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B194C: .4byte 0x03005B60 +_081B1950: .4byte 0x081B1041 + thumb_func_end sub_081B18EC + + thumb_func_start sub_081B1954 +sub_081B1954: @ 0x081B1954 + push {r4, r5, lr} + adds r4, r1, #0 + adds r5, r2, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r1, _081B1990 + bl GetMonNickname + ldr r1, _081B1994 + adds r0, r4, #0 + bl CopyItemName + ldr r4, _081B1998 + ldr r1, _081B199C + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_081B182C + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B1990: .4byte 0x02021C40 +_081B1994: .4byte 0x02021C54 +_081B1998: .4byte 0x02021C7C +_081B199C: .4byte 0x085C9C76 + thumb_func_end sub_081B1954 + + thumb_func_start sub_081B19A0 +sub_081B19A0: @ 0x081B19A0 + push {r4, r5, lr} + adds r4, r1, #0 + adds r5, r2, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r1, _081B19DC + bl GetMonNickname + ldr r1, _081B19E0 + adds r0, r4, #0 + bl CopyItemName + ldr r4, _081B19E4 + ldr r1, _081B19E8 + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_081B182C + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B19DC: .4byte 0x02021C40 +_081B19E0: .4byte 0x02021C54 +_081B19E4: .4byte 0x02021C7C +_081B19E8: .4byte 0x085C9CC6 + thumb_func_end sub_081B19A0 + + thumb_func_start sub_081B19EC +sub_081B19EC: @ 0x081B19EC + push {r4, r5, lr} + adds r4, r1, #0 + adds r5, r2, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r1, _081B1A28 + bl GetMonNickname + ldr r1, _081B1A2C + adds r0, r4, #0 + bl CopyItemName + ldr r4, _081B1A30 + ldr r1, _081B1A34 + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_081B182C + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B1A28: .4byte 0x02021C40 +_081B1A2C: .4byte 0x02021C54 +_081B1A30: .4byte 0x02021C7C +_081B1A34: .4byte 0x085C9C86 + thumb_func_end sub_081B19EC + + thumb_func_start sub_081B1A38 +sub_081B1A38: @ 0x081B1A38 + push {r4, r5, lr} + adds r4, r1, #0 + adds r5, r2, #0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r1, _081B1A78 + bl CopyItemName + ldr r1, _081B1A7C + adds r0, r4, #0 + bl CopyItemName + ldr r4, _081B1A80 + ldr r1, _081B1A84 + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_081B182C + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B1A78: .4byte 0x02021C40 +_081B1A7C: .4byte 0x02021C54 +_081B1A80: .4byte 0x02021C7C +_081B1A84: .4byte 0x085C9CEF + thumb_func_end sub_081B1A38 + + thumb_func_start sub_081B1A88 +sub_081B1A88: @ 0x081B1A88 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r6, r0, #0 + lsls r5, r1, #0x10 + lsrs r4, r5, #0x10 + adds r7, r4, #0 + adds r0, r4, #0 + bl ItemIsMail + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081B1AB2 + adds r0, r6, #0 + adds r1, r4, #0 + bl GiveMailToMon + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _081B1AC6 +_081B1AB2: + mov r0, sp + strb r7, [r0] + mov r1, sp + lsrs r0, r5, #0x18 + strb r0, [r1, #1] + adds r0, r6, #0 + movs r1, #0xc + mov r2, sp + bl SetMonData +_081B1AC6: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081B1A88 + + thumb_func_start TryTakeMonItem +TryTakeMonItem: @ 0x081B1AD0 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + movs r1, #0xc + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r1, sp + strh r0, [r1] + cmp r0, #0 + bne _081B1AEC + movs r0, #0 + b _081B1B0E +_081B1AEC: + movs r1, #1 + bl AddBagItem + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081B1B0C + movs r1, #0 + mov r0, sp + strh r1, [r0] + adds r0, r4, #0 + movs r1, #0xc + mov r2, sp + bl SetMonData + movs r0, #2 + b _081B1B0E +_081B1B0C: + movs r0, #1 +_081B1B0E: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TryTakeMonItem + + thumb_func_start pokemon_item_not_removed +pokemon_item_not_removed: @ 0x081B1B18 + push {lr} + ldr r0, _081B1B28 + ldr r1, _081B1B2C + bl StringExpandPlaceholders + pop {r0} + bx r0 + .align 2, 0 +_081B1B28: .4byte 0x02021C7C +_081B1B2C: .4byte 0x085C9D47 + thumb_func_end pokemon_item_not_removed + + thumb_func_start sub_081B1B30 +sub_081B1B30: @ 0x081B1B30 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r0, r0, #2 + add r0, r8 + lsls r0, r0, #3 + ldr r1, _081B1BD8 + adds r7, r0, r1 + ldrh r0, [r7, #4] + ldrh r1, [r7] + adds r0, r0, r1 + strh r0, [r7] + ldrh r0, [r7, #6] + subs r0, #1 + strh r0, [r7, #6] + movs r2, #8 + ldrsh r0, [r7, r2] + movs r5, #0x64 + muls r0, r5, r0 + ldr r4, _081B1BDC + adds r0, r0, r4 + movs r1, #0x39 + adds r2, r7, #0 + bl SetMonData + movs r3, #8 + ldrsh r2, [r7, r3] + adds r0, r2, #0 + muls r0, r5, r0 + adds r0, r0, r4 + ldr r6, _081B1BE0 + lsls r2, r2, #4 + ldr r1, [r6] + adds r1, r1, r2 + movs r2, #1 + bl DisplayPartyPokemonHPCheck + movs r0, #8 + ldrsh r2, [r7, r0] + adds r0, r2, #0 + muls r0, r5, r0 + adds r0, r0, r4 + lsls r2, r2, #4 + ldr r1, [r6] + adds r1, r1, r2 + bl DisplayPartyPokemonHPBarCheck + movs r1, #6 + ldrsh r0, [r7, r1] + cmp r0, #0 + beq _081B1BAC + movs r2, #0 + ldrsh r1, [r7, r2] + cmp r1, #0 + beq _081B1BAC + movs r3, #2 + ldrsh r0, [r7, r3] + cmp r1, r0 + bne _081B1BCE +_081B1BAC: + movs r0, #0 + ldrsh r1, [r7, r0] + movs r2, #0xa + ldrsh r0, [r7, r2] + cmp r1, r0 + ble _081B1BC8 + ldr r0, _081B1BE4 + movs r3, #0xa + ldrsh r2, [r7, r3] + subs r1, r1, r2 + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN +_081B1BC8: + mov r0, r8 + bl SwitchTaskToFollowupFunc +_081B1BCE: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B1BD8: .4byte 0x03005B68 +_081B1BDC: .4byte 0x02024190 +_081B1BE0: .4byte 0x0203CBA8 +_081B1BE4: .4byte 0x02021C54 + thumb_func_end sub_081B1B30 + + thumb_func_start sub_081B1BE8 +sub_081B1BE8: @ 0x081B1BE8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov r8, r0 + mov sb, r1 + adds r5, r2, #0 + mov sl, r3 + ldr r7, [sp, #0x20] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + mov r0, sb + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + mov r0, sl + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 + movs r0, #0x64 + mov r6, sb + muls r6, r0, r6 + ldr r0, _081B1C6C + adds r6, r6, r0 + mov r0, r8 + lsls r4, r0, #2 + add r4, r8 + lsls r4, r4, #3 + ldr r0, _081B1C70 + adds r4, r4, r0 + adds r0, r6, #0 + movs r1, #0x39 + bl GetMonData + strh r0, [r4] + adds r0, r6, #0 + movs r1, #0x3a + bl GetMonData + strh r0, [r4, #2] + lsls r5, r5, #0x18 + asrs r5, r5, #0x18 + strh r5, [r4, #4] + mov r0, sl + strh r0, [r4, #6] + mov r0, sb + strh r0, [r4, #8] + ldrh r0, [r4] + strh r0, [r4, #0xa] + ldr r1, _081B1C74 + mov r0, r8 + adds r2, r7, #0 + bl SetTaskFuncWithFollowupFunc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B1C6C: .4byte 0x02024190 +_081B1C70: .4byte 0x03005B68 +_081B1C74: .4byte 0x081B1B31 + thumb_func_end sub_081B1BE8 + + thumb_func_start sub_081B1C78 +sub_081B1C78: @ 0x081B1C78 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _081B1C9C + adds r3, r0, r1 + cmp r5, #5 + bhi _081B1CDA + lsls r0, r5, #2 + ldr r1, _081B1CA0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081B1C9C: .4byte 0x03005B68 +_081B1CA0: .4byte 0x081B1CA4 +_081B1CA4: @ jump table + .4byte _081B1CBC @ case 0 + .4byte _081B1CC2 @ case 1 + .4byte _081B1CC6 @ case 2 + .4byte _081B1CCA @ case 3 + .4byte _081B1CCE @ case 4 + .4byte _081B1CD2 @ case 5 +_081B1CBC: + strh r2, [r3] + strh r2, [r3, #0xa] + b _081B1CDA +_081B1CC2: + strh r2, [r3, #2] + b _081B1CDA +_081B1CC6: + strh r2, [r3, #4] + b _081B1CDA +_081B1CCA: + strh r2, [r3, #6] + b _081B1CDA +_081B1CCE: + strh r2, [r3, #8] + b _081B1CDA +_081B1CD2: + ldr r1, _081B1CE0 + adds r0, r4, #0 + bl SetTaskFuncWithFollowupFunc +_081B1CDA: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B1CE0: .4byte 0x081B1B31 + thumb_func_end sub_081B1C78 + + thumb_func_start pokemon_ailments_get_primary +pokemon_ailments_get_primary: @ 0x081B1CE4 + push {lr} + adds r1, r0, #0 + movs r0, #0x88 + ands r0, r1 + cmp r0, #0 + beq _081B1CF4 + movs r0, #1 + b _081B1D26 +_081B1CF4: + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _081B1D00 + movs r0, #2 + b _081B1D26 +_081B1D00: + movs r0, #7 + ands r0, r1 + cmp r0, #0 + beq _081B1D0C + movs r0, #3 + b _081B1D26 +_081B1D0C: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _081B1D18 + movs r0, #4 + b _081B1D26 +_081B1D18: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _081B1D24 + movs r0, #0 + b _081B1D26 +_081B1D24: + movs r0, #5 +_081B1D26: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end pokemon_ailments_get_primary + + thumb_func_start GetMonAilment +GetMonAilment: @ 0x081B1D2C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + bne _081B1D3E + movs r0, #7 + b _081B1D66 +_081B1D3E: + adds r0, r4, #0 + movs r1, #0x37 + bl GetMonData + bl pokemon_ailments_get_primary + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _081B1D66 + adds r0, r4, #0 + movs r1, #0 + bl CheckPartyPokerus + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081B1D64 + movs r0, #0 + b _081B1D66 +_081B1D64: + movs r0, #6 +_081B1D66: + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetMonAilment + + thumb_func_start sub_081B1D6C +sub_081B1D6C: @ 0x081B1D6C + push {r4, r5, lr} + ldr r2, _081B1DBC + ldrb r1, [r2, #8] + movs r0, #0xf + ands r0, r1 + cmp r0, #0xb + bne _081B1DF6 + adds r5, r2, #0 + adds r5, #0xe + movs r0, #0 + strh r0, [r2, #0xe] + ldr r0, _081B1DC0 + ldrh r0, [r0] + cmp r0, #0 + bne _081B1DCC + movs r4, #0 + ldr r0, _081B1DC4 + ldrb r0, [r0] + cmp r4, r0 + bhs _081B1DF6 +_081B1D94: + movs r0, #0x64 + muls r0, r4, r0 + ldr r1, _081B1DC8 + adds r0, r0, r1 + bl sub_081B1E04 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r0, r4 + ldrh r1, [r5] + adds r0, r0, r1 + strh r0, [r5] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _081B1DC4 + ldrb r0, [r0] + cmp r4, r0 + blo _081B1D94 + b _081B1DF6 + .align 2, 0 +_081B1DBC: .4byte 0x0203CB94 +_081B1DC0: .4byte 0x02037282 +_081B1DC4: .4byte 0x0202418D +_081B1DC8: .4byte 0x02024190 +_081B1DCC: + movs r4, #0 + b _081B1DEE +_081B1DD0: + movs r0, #0x64 + muls r0, r4, r0 + ldr r1, _081B1DFC + adds r0, r0, r1 + bl sub_081B1E34 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r0, r4 + ldrh r1, [r5] + adds r0, r0, r1 + strh r0, [r5] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_081B1DEE: + ldr r0, _081B1E00 + ldrb r0, [r0] + cmp r4, r0 + blo _081B1DD0 +_081B1DF6: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B1DFC: .4byte 0x02024190 +_081B1E00: .4byte 0x0202418D + thumb_func_end sub_081B1D6C + + thumb_func_start sub_081B1E04 +sub_081B1E04: @ 0x081B1E04 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #1 + beq _081B1E2A + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl sub_0802C5FC + cmp r0, #0 + beq _081B1E2A + movs r0, #1 + b _081B1E2C +_081B1E2A: + movs r0, #0 +_081B1E2C: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081B1E04 + + thumb_func_start sub_081B1E34 +sub_081B1E34: @ 0x081B1E34 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #1 + beq _081B1E52 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + cmp r0, #0x55 + bne _081B1E52 + movs r0, #1 + b _081B1E54 +_081B1E52: + movs r0, #0 +_081B1E54: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081B1E34 + + thumb_func_start sub_081B1E5C +sub_081B1E5C: @ 0x081B1E5C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081B1E78 + movs r2, #0xe + ldrsh r1, [r1, r2] + asrs r1, r0 + movs r0, #1 + ands r1, r0 + cmp r1, #0 + bne _081B1E74 + movs r0, #0 +_081B1E74: + pop {r1} + bx r1 + .align 2, 0 +_081B1E78: .4byte 0x0203CB94 + thumb_func_end sub_081B1E5C + + thumb_func_start sub_081B1E7C +sub_081B1E7C: @ 0x081B1E7C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + adds r0, r5, #0 + bl sub_081B1E5C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081B1EAC + movs r0, #5 + bl PlaySE + ldr r0, _081B1EA8 + strh r5, [r0] + adds r0, r4, #0 + bl sub_081B0F90 + b _081B1ECE + .align 2, 0 +_081B1EA8: .4byte 0x02037280 +_081B1EAC: + movs r0, #0x20 + bl PlaySE + ldr r0, _081B1ED4 + movs r1, #0 + bl sub_081B182C + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, _081B1ED8 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B1EDC + str r1, [r0] +_081B1ECE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B1ED4: .4byte 0x085CA1FB +_081B1ED8: .4byte 0x03005B60 +_081B1EDC: .4byte 0x081B18ED + thumb_func_end sub_081B1E7C + + thumb_func_start sub_081B1EE0 +sub_081B1EE0: @ 0x081B1EE0 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081B1F0C + movs r1, #1 + bl sub_081B182C + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, _081B1F10 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B1F14 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B1F0C: .4byte 0x085CA210 +_081B1F10: .4byte 0x03005B60 +_081B1F14: .4byte 0x081B1F19 + thumb_func_end sub_081B1EE0 + + thumb_func_start sub_081B1F18 +sub_081B1F18: @ 0x081B1F18 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl sub_081B18A4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B1F3C + bl sub_081B2FDC + ldr r0, _081B1F44 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B1F48 + str r0, [r1] +_081B1F3C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B1F44: .4byte 0x03005B60 +_081B1F48: .4byte 0x081B1F4D + thumb_func_end sub_081B1F18 + + thumb_func_start sub_081B1F4C +sub_081B1F4C: @ 0x081B1F4C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _081B1F72 + cmp r1, #0 + bgt _081B1F6C + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _081B1F84 + b _081B1F98 +_081B1F6C: + cmp r1, #1 + beq _081B1F8A + b _081B1F98 +_081B1F72: + ldr r1, _081B1F80 + movs r0, #7 + strh r0, [r1] + adds r0, r4, #0 + bl sub_081B0F90 + b _081B1F98 + .align 2, 0 +_081B1F80: .4byte 0x02037280 +_081B1F84: + movs r0, #5 + bl PlaySE +_081B1F8A: + ldr r0, _081B1FA0 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B1FA4 + str r0, [r1] +_081B1F98: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B1FA0: .4byte 0x03005B60 +_081B1FA4: .4byte 0x081B18ED + thumb_func_end sub_081B1F4C + + thumb_func_start CanMonLearnTMTutor +CanMonLearnTMTutor: @ 0x081B1FA8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + adds r7, r4, #0 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + mov r8, r6 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + beq _081B1FCA + movs r0, #3 + b _081B2026 +_081B1FCA: + movs r0, #0x90 + lsls r0, r0, #1 + cmp r4, r0 + bls _081B1FEC + adds r1, r4, #0 + subs r1, #0x21 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl CanMonLearnTMHM + cmp r0, #0 + beq _081B2004 + adds r0, r7, #0 + bl ItemIdToBattleMoveId + b _081B200E +_081B1FEC: + adds r0, r5, #0 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r6, #0 + bl CanLearnTutorMove + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081B2008 +_081B2004: + movs r0, #1 + b _081B2026 +_081B2008: + mov r0, r8 + bl GetTutorMove +_081B200E: + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + adds r0, r5, #0 + bl MonKnowsMove + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B2024 + movs r0, #0 + b _081B2026 +_081B2024: + movs r0, #2 +_081B2026: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end CanMonLearnTMTutor + + thumb_func_start GetTutorMove +GetTutorMove: @ 0x081B2030 + lsls r0, r0, #0x18 + ldr r1, _081B203C + lsrs r0, r0, #0x17 + adds r0, r0, r1 + ldrh r0, [r0] + bx lr + .align 2, 0 +_081B203C: .4byte 0x085E08C4 + thumb_func_end GetTutorMove + + thumb_func_start CanLearnTutorMove +CanLearnTutorMove: @ 0x081B2040 + push {lr} + lsls r0, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _081B2060 + lsrs r0, r0, #0xe + adds r0, r0, r2 + movs r2, #1 + lsls r2, r1 + ldr r0, [r0] + ands r0, r2 + cmp r0, #0 + bne _081B2064 + movs r0, #0 + b _081B2066 + .align 2, 0 +_081B2060: .4byte 0x085E0900 +_081B2064: + movs r0, #1 +_081B2066: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CanLearnTutorMove + + thumb_func_start sub_081B206C +sub_081B206C: @ 0x081B206C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + cmp r0, #1 + beq _081B2094 + cmp r0, #1 + bgt _081B2082 + cmp r0, #0 + beq _081B2088 + b _081B20AC +_081B2082: + cmp r1, #2 + beq _081B20A0 + b _081B20AC +_081B2088: + ldr r0, _081B2090 + bl InitWindows + b _081B20B2 + .align 2, 0 +_081B2090: .4byte 0x085E10C8 +_081B2094: + ldr r0, _081B209C + bl InitWindows + b _081B20B2 + .align 2, 0 +_081B209C: .4byte 0x085E1108 +_081B20A0: + ldr r0, _081B20A8 + bl InitWindows + b _081B20B2 + .align 2, 0 +_081B20A8: .4byte 0x085E1148 +_081B20AC: + ldr r0, _081B20F0 + bl InitWindows +_081B20B2: + bl DeactivateAllTextPrinters + movs r4, #0 +_081B20B8: + adds r0, r4, #0 + movs r1, #0 + bl FillWindowPixelBuffer + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #5 + bls _081B20B8 + movs r0, #0 + movs r1, #0x4f + movs r2, #0xd0 + bl LoadUserWindowBorderGfx + bl GetOverworldTextboxPalettePtr + movs r1, #0xe0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _081B20F4 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B20F0: .4byte 0x085E1188 +_081B20F4: .4byte 0x085D7B04 + thumb_func_end sub_081B206C + + thumb_func_start sub_081B20F8 +sub_081B20F8: @ 0x081B20F8 + push {r4, r5, lr} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _081B2160 + ldrb r1, [r0, #8] + movs r0, #0xf + ands r0, r1 + cmp r0, #5 + beq _081B21EE + cmp r2, #1 + bne _081B2174 + ldr r0, _081B2164 + bl AddWindow + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + ldr r0, _081B2168 + str r0, [sp, #8] + movs r0, #1 + rsbs r0, r0, #0 + str r0, [sp, #0xc] + ldr r0, _081B216C + str r0, [sp, #0x10] + adds r0, r4, #0 + movs r1, #1 + movs r2, #8 + movs r3, #2 + bl AddTextPrinterParameterized4 + adds r0, r4, #0 + bl PutWindowTilemap + adds r0, r4, #0 + movs r1, #2 + bl CopyWindowToVram + ldr r0, _081B2170 + bl AddWindow + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r5, #0xa + b _081B2180 + .align 2, 0 +_081B2160: .4byte 0x0203CB94 +_081B2164: .4byte 0x085E11D0 +_081B2168: .4byte 0x085E10B4 +_081B216C: .4byte 0x085C93BB +_081B2170: .4byte 0x085E11C8 +_081B2174: + ldr r0, _081B21B0 + bl AddWindow + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r5, #0xc +_081B2180: + adds r0, r4, #0 + movs r1, #0 + bl FillWindowPixelBuffer + ldr r0, _081B21B4 + ldrb r1, [r0, #8] + movs r0, #0xf + ands r0, r1 + cmp r0, #0xa + beq _081B21C0 + ldr r0, _081B21B8 + str r0, [sp] + movs r0, #1 + rsbs r0, r0, #0 + str r0, [sp, #4] + ldr r0, _081B21BC + str r0, [sp, #8] + adds r0, r4, #0 + movs r1, #1 + adds r2, r5, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 + b _081B21DA + .align 2, 0 +_081B21B0: .4byte 0x085E11C0 +_081B21B4: .4byte 0x0203CB94 +_081B21B8: .4byte 0x085E10B4 +_081B21BC: .4byte 0x085C93C4 +_081B21C0: + ldr r0, _081B21F8 + str r0, [sp] + movs r0, #1 + rsbs r0, r0, #0 + str r0, [sp, #4] + ldr r0, _081B21FC + str r0, [sp, #8] + adds r0, r4, #0 + movs r1, #1 + adds r2, r5, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 +_081B21DA: + adds r0, r4, #0 + bl PutWindowTilemap + adds r0, r4, #0 + movs r1, #2 + bl CopyWindowToVram + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram +_081B21EE: + add sp, #0x14 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B21F8: .4byte 0x085E10B4 +_081B21FC: .4byte 0x085C93C8 + thumb_func_end sub_081B20F8 + + thumb_func_start GetPartyMenuPaletteFromBuffer +GetPartyMenuPaletteFromBuffer: @ 0x081B2200 + lsls r0, r0, #0x18 + ldr r1, _081B2210 + lsrs r0, r0, #0x17 + adds r0, #0x18 + ldr r1, [r1] + adds r1, r1, r0 + adds r0, r1, #0 + bx lr + .align 2, 0 +_081B2210: .4byte 0x0203CB90 + thumb_func_end GetPartyMenuPaletteFromBuffer + + thumb_func_start BlitBitmapToPartyWindow +BlitBitmapToPartyWindow: @ 0x081B2214 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x2c + str r1, [sp, #0xc] + ldr r1, [sp, #0x4c] + ldr r4, [sp, #0x50] + ldr r5, [sp, #0x54] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #8] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x10] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r3, [sp, #0x14] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp, #0x18] + lsls r4, r4, #0x18 + lsrs r6, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + mov sl, r5 + mov r0, sl + muls r0, r6, r0 + lsls r0, r0, #5 + bl AllocZeroed + mov sb, r0 + cmp r0, #0 + beq _081B22E2 + movs r5, #0 + ldr r0, [sp, #0x14] + lsls r0, r0, #0x13 + str r0, [sp, #0x1c] + ldr r1, [sp, #0x18] + lsls r1, r1, #0x13 + str r1, [sp, #0x20] + lsls r2, r6, #0x13 + str r2, [sp, #0x24] + mov r0, sl + lsls r0, r0, #0x13 + str r0, [sp, #0x28] + cmp r5, sl + bhs _081B22C0 +_081B2276: + movs r4, #0 + adds r1, r5, #1 + mov r8, r1 + cmp r4, r6 + bhs _081B22B6 + ldr r2, [sp, #0x18] + adds r0, r2, r5 + ldr r2, [sp, #0x10] + adds r1, r0, #0 + muls r1, r2, r1 + adds r7, r1, #0 +_081B228C: + ldr r1, [sp, #0x14] + adds r0, r1, r4 + adds r0, r0, r7 + ldr r2, [sp, #0xc] + adds r0, r2, r0 + ldrb r0, [r0] + bl GetPartyMiscGraphicsTile + adds r1, r5, #0 + muls r1, r6, r1 + adds r1, r1, r4 + lsls r1, r1, #5 + add r1, sb + movs r2, #0x10 + bl CpuSet + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r6 + blo _081B228C +_081B22B6: + mov r1, r8 + lsls r0, r1, #0x18 + lsrs r5, r0, #0x18 + cmp r5, sl + blo _081B2276 +_081B22C0: + ldr r0, [sp, #0x1c] + lsrs r2, r0, #0x10 + ldr r1, [sp, #0x20] + lsrs r3, r1, #0x10 + ldr r1, [sp, #0x24] + lsrs r0, r1, #0x10 + str r0, [sp] + ldr r1, [sp, #0x28] + lsrs r0, r1, #0x10 + str r0, [sp, #4] + ldr r0, [sp, #8] + mov r1, sb + bl BlitBitmapToWindow + mov r0, sb + bl Free +_081B22E2: + add sp, #0x2c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BlitBitmapToPartyWindow + + thumb_func_start BlitBitmapToPartyWindow_Default1 +BlitBitmapToPartyWindow_Default1: @ 0x081B22F4 + push {r4, r5, r6, lr} + sub sp, #0xc + ldr r4, [sp, #0x1c] + ldr r5, [sp, #0x20] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + cmp r3, #0 + bne _081B2320 + cmp r4, #0 + bne _081B2320 + movs r3, #0xa + movs r4, #7 +_081B2320: + cmp r5, #0 + bne _081B233C + ldr r1, _081B2338 + str r2, [sp] + str r3, [sp, #4] + str r4, [sp, #8] + movs r2, #0xa + adds r3, r6, #0 + bl BlitBitmapToPartyWindow + b _081B234C + .align 2, 0 +_081B2338: .4byte 0x085E1240 +_081B233C: + ldr r1, _081B2354 + str r2, [sp] + str r3, [sp, #4] + str r4, [sp, #8] + movs r2, #0xa + adds r3, r6, #0 + bl BlitBitmapToPartyWindow +_081B234C: + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081B2354: .4byte 0x085E1286 + thumb_func_end BlitBitmapToPartyWindow_Default1 + + thumb_func_start BlitBitmapToPartyWindow_Default2 +BlitBitmapToPartyWindow_Default2: @ 0x081B2358 + push {r4, r5, r6, lr} + sub sp, #0xc + ldr r4, [sp, #0x1c] + ldr r5, [sp, #0x20] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + cmp r3, #0 + bne _081B2384 + cmp r4, #0 + bne _081B2384 + movs r3, #0x12 + movs r4, #3 +_081B2384: + cmp r5, #0 + bne _081B23A0 + ldr r1, _081B239C + str r2, [sp] + str r3, [sp, #4] + str r4, [sp, #8] + movs r2, #0x12 + adds r3, r6, #0 + bl BlitBitmapToPartyWindow + b _081B23B0 + .align 2, 0 +_081B239C: .4byte 0x085E12CC +_081B23A0: + ldr r1, _081B23B8 + str r2, [sp] + str r3, [sp, #4] + str r4, [sp, #8] + movs r2, #0x12 + adds r3, r6, #0 + bl BlitBitmapToPartyWindow +_081B23B0: + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081B23B8: .4byte 0x085E1302 + thumb_func_end BlitBitmapToPartyWindow_Default2 + + thumb_func_start DrawEmptySlot +DrawEmptySlot: @ 0x081B23BC + push {lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081B23E0 + movs r2, #0 + str r2, [sp] + movs r2, #0x12 + str r2, [sp, #4] + movs r2, #3 + str r2, [sp, #8] + movs r2, #0x12 + movs r3, #0 + bl BlitBitmapToPartyWindow + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_081B23E0: .4byte 0x085E1338 + thumb_func_end DrawEmptySlot + + thumb_func_start UpdateSelectedPartyBox +UpdateSelectedPartyBox: @ 0x081B23E4 + push {r4, r5, r6, r7, lr} + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + adds r5, r4, #0 + ldrb r0, [r0, #8] + movs r1, #5 + bl GetWindowAttribute + lsls r0, r0, #0x1c + lsrs r6, r0, #0x18 + adds r7, r6, #0 + movs r0, #0x40 + ands r0, r4 + cmp r0, #0 + beq _081B2418 + ldr r5, _081B2410 + ldrb r0, [r5] + bl GetPartyMenuPaletteFromBuffer + ldr r4, _081B2414 + b _081B261A + .align 2, 0 +_081B2410: .4byte 0x085E13A9 +_081B2414: .4byte 0x085E1378 +_081B2418: + movs r0, #0x20 + ands r0, r4 + cmp r0, #0 + beq _081B2474 + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _081B2430 + ldr r5, _081B242C + b _081B25DE + .align 2, 0 +_081B242C: .4byte 0x085E1397 +_081B2430: + ldr r5, _081B2468 + ldrb r0, [r5] + bl GetPartyMenuPaletteFromBuffer + ldr r4, _081B246C + ldrb r1, [r4] + adds r1, r1, r6 + movs r2, #2 + bl LoadPalette + ldrb r0, [r5, #1] + bl GetPartyMenuPaletteFromBuffer + ldrb r1, [r4, #1] + adds r1, r1, r6 + movs r2, #2 + bl LoadPalette + ldrb r0, [r5, #2] + bl GetPartyMenuPaletteFromBuffer + ldrb r1, [r4, #2] + adds r1, r1, r6 + movs r2, #2 + bl LoadPalette + ldr r5, _081B2470 + b _081B2612 + .align 2, 0 +_081B2468: .4byte 0x085E1397 +_081B246C: .4byte 0x085E1372 +_081B2470: .4byte 0x085E13A6 +_081B2474: + movs r0, #0x10 + ands r0, r4 + cmp r0, #0 + beq _081B24C0 + ldr r5, _081B24B4 + ldrb r0, [r5] + bl GetPartyMenuPaletteFromBuffer + ldr r4, _081B24B8 + ldrb r1, [r4] + adds r1, r1, r6 + movs r2, #2 + bl LoadPalette + ldrb r0, [r5, #1] + bl GetPartyMenuPaletteFromBuffer + ldrb r1, [r4, #1] + adds r1, r1, r6 + movs r2, #2 + bl LoadPalette + ldrb r0, [r5, #2] + bl GetPartyMenuPaletteFromBuffer + ldrb r1, [r4, #2] + adds r1, r1, r6 + movs r2, #2 + bl LoadPalette + ldr r5, _081B24BC + b _081B2612 + .align 2, 0 +_081B24B4: .4byte 0x085E1397 +_081B24B8: .4byte 0x085E1372 +_081B24BC: .4byte 0x085E13A6 +_081B24C0: + movs r0, #4 + ands r0, r4 + cmp r0, #0 + beq _081B251C + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _081B24D8 + ldr r5, _081B24D4 + b _081B25DE + .align 2, 0 +_081B24D4: .4byte 0x085E1397 +_081B24D8: + ldr r5, _081B2510 + ldrb r0, [r5] + bl GetPartyMenuPaletteFromBuffer + ldr r4, _081B2514 + ldrb r1, [r4] + adds r1, r1, r6 + movs r2, #2 + bl LoadPalette + ldrb r0, [r5, #1] + bl GetPartyMenuPaletteFromBuffer + ldrb r1, [r4, #1] + adds r1, r1, r6 + movs r2, #2 + bl LoadPalette + ldrb r0, [r5, #2] + bl GetPartyMenuPaletteFromBuffer + ldrb r1, [r4, #2] + adds r1, r1, r6 + movs r2, #2 + bl LoadPalette + ldr r5, _081B2518 + b _081B2612 + .align 2, 0 +_081B2510: .4byte 0x085E1397 +_081B2514: .4byte 0x085E1372 +_081B2518: .4byte 0x085E13A6 +_081B251C: + movs r0, #2 + ands r0, r4 + cmp r0, #0 + beq _081B2578 + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _081B2534 + ldr r5, _081B2530 + b _081B25DE + .align 2, 0 +_081B2530: .4byte 0x085E1394 +_081B2534: + ldr r5, _081B256C + ldrb r0, [r5] + bl GetPartyMenuPaletteFromBuffer + ldr r4, _081B2570 + ldrb r1, [r4] + adds r1, r1, r6 + movs r2, #2 + bl LoadPalette + ldrb r0, [r5, #1] + bl GetPartyMenuPaletteFromBuffer + ldrb r1, [r4, #1] + adds r1, r1, r6 + movs r2, #2 + bl LoadPalette + ldrb r0, [r5, #2] + bl GetPartyMenuPaletteFromBuffer + ldrb r1, [r4, #2] + adds r1, r1, r6 + movs r2, #2 + bl LoadPalette + ldr r5, _081B2574 + b _081B2612 + .align 2, 0 +_081B256C: .4byte 0x085E138B +_081B2570: .4byte 0x085E1372 +_081B2574: .4byte 0x085E13A0 +_081B2578: + movs r0, #8 + ands r0, r4 + cmp r0, #0 + beq _081B25D4 + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _081B2590 + ldr r5, _081B258C + b _081B25DE + .align 2, 0 +_081B258C: .4byte 0x085E1391 +_081B2590: + ldr r5, _081B25C8 + ldrb r0, [r5] + bl GetPartyMenuPaletteFromBuffer + ldr r4, _081B25CC + ldrb r1, [r4] + adds r1, r1, r6 + movs r2, #2 + bl LoadPalette + ldrb r0, [r5, #1] + bl GetPartyMenuPaletteFromBuffer + ldrb r1, [r4, #1] + adds r1, r1, r6 + movs r2, #2 + bl LoadPalette + ldrb r0, [r5, #2] + bl GetPartyMenuPaletteFromBuffer + ldrb r1, [r4, #2] + adds r1, r1, r6 + movs r2, #2 + bl LoadPalette + ldr r5, _081B25D0 + b _081B2612 + .align 2, 0 +_081B25C8: .4byte 0x085E1388 +_081B25CC: .4byte 0x085E1372 +_081B25D0: .4byte 0x085E139D +_081B25D4: + movs r0, #1 + ands r5, r0 + cmp r5, #0 + beq _081B2658 + ldr r5, _081B2648 +_081B25DE: + ldrb r0, [r5] + bl GetPartyMenuPaletteFromBuffer + ldr r4, _081B264C + ldrb r1, [r4] + adds r1, r1, r6 + movs r2, #2 + bl LoadPalette + ldrb r0, [r5, #1] + bl GetPartyMenuPaletteFromBuffer + ldrb r1, [r4, #1] + adds r1, r1, r6 + movs r2, #2 + bl LoadPalette + ldrb r0, [r5, #2] + bl GetPartyMenuPaletteFromBuffer + ldrb r1, [r4, #2] + adds r1, r1, r6 + movs r2, #2 + bl LoadPalette + ldr r5, _081B2650 +_081B2612: + ldrb r0, [r5] + bl GetPartyMenuPaletteFromBuffer + ldr r4, _081B2654 +_081B261A: + ldrb r1, [r4] + adds r1, r1, r6 + movs r2, #2 + bl LoadPalette + ldrb r0, [r5, #1] + bl GetPartyMenuPaletteFromBuffer + ldrb r1, [r4, #1] + adds r1, r1, r6 + movs r2, #2 + bl LoadPalette + ldrb r0, [r5, #2] + bl GetPartyMenuPaletteFromBuffer + ldrb r1, [r4, #2] + adds r1, r1, r6 + movs r2, #2 + bl LoadPalette + b _081B26C0 + .align 2, 0 +_081B2648: .4byte 0x085E138E +_081B264C: .4byte 0x085E1372 +_081B2650: .4byte 0x085E13A3 +_081B2654: .4byte 0x085E1375 +_081B2658: + ldr r5, _081B26C8 + ldrb r0, [r5] + bl GetPartyMenuPaletteFromBuffer + ldr r4, _081B26CC + ldrb r1, [r4] + adds r1, r1, r7 + movs r2, #2 + bl LoadPalette + ldrb r0, [r5, #1] + bl GetPartyMenuPaletteFromBuffer + ldrb r1, [r4, #1] + adds r1, r1, r7 + movs r2, #2 + bl LoadPalette + ldrb r0, [r5, #2] + bl GetPartyMenuPaletteFromBuffer + ldrb r1, [r4, #2] + adds r1, r1, r7 + movs r2, #2 + bl LoadPalette + ldr r5, _081B26D0 + ldrb r0, [r5] + bl GetPartyMenuPaletteFromBuffer + ldr r4, _081B26D4 + ldrb r1, [r4] + adds r1, r1, r7 + movs r2, #2 + bl LoadPalette + ldrb r0, [r5, #1] + bl GetPartyMenuPaletteFromBuffer + ldrb r1, [r4, #1] + adds r1, r1, r7 + movs r2, #2 + bl LoadPalette + ldrb r0, [r5, #2] + bl GetPartyMenuPaletteFromBuffer + ldrb r1, [r4, #2] + adds r1, r1, r7 + movs r2, #2 + bl LoadPalette +_081B26C0: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B26C8: .4byte 0x085E1385 +_081B26CC: .4byte 0x085E1372 +_081B26D0: .4byte 0x085E139A +_081B26D4: .4byte 0x085E1375 + thumb_func_end UpdateSelectedPartyBox + + thumb_func_start DisplayPartyPokemonBarDetail +DisplayPartyPokemonBarDetail: @ 0x081B26D8 + push {r4, r5, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r5, [r3] + ldrb r3, [r3, #1] + lsls r4, r2, #1 + adds r4, r4, r2 + ldr r2, _081B2708 + adds r4, r4, r2 + str r4, [sp] + movs r2, #0 + str r2, [sp, #4] + str r1, [sp, #8] + movs r1, #0 + adds r2, r5, #0 + bl AddTextPrinterParameterized3 + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B2708: .4byte 0x085E10B4 + thumb_func_end DisplayPartyPokemonBarDetail + + thumb_func_start DisplayPartyPokemonNickname +DisplayPartyPokemonNickname: @ 0x081B270C + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + adds r7, r0, #0 + adds r6, r1, #0 + lsls r2, r2, #0x18 + lsrs r4, r2, #0x18 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _081B275C + cmp r4, #1 + bne _081B2746 + ldr r5, [r6] + ldrb r0, [r6, #8] + ldrb r1, [r5, #4] + lsrs r1, r1, #3 + ldrb r2, [r5, #5] + lsrs r2, r2, #3 + ldrb r3, [r5, #6] + lsrs r3, r3, #3 + ldrb r4, [r5, #7] + lsrs r4, r4, #3 + str r4, [sp] + movs r4, #0 + str r4, [sp, #4] + ldr r4, [r5] + bl _call_via_r4 +_081B2746: + adds r0, r7, #0 + add r1, sp, #8 + bl GetMonNickname + ldrb r0, [r6, #8] + ldr r3, [r6] + adds r3, #4 + add r1, sp, #8 + movs r2, #0 + bl DisplayPartyPokemonBarDetail +_081B275C: + add sp, #0x14 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end DisplayPartyPokemonNickname + + thumb_func_start DisplayPartyPokemonLevelCheck +DisplayPartyPokemonLevelCheck: @ 0x081B2764 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + adds r6, r0, #0 + adds r7, r1, #0 + lsls r2, r2, #0x18 + lsrs r4, r2, #0x18 + mov r8, r4 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _081B27D0 + adds r0, r6, #0 + bl GetMonAilment + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _081B2792 + cmp r0, #6 + bne _081B27D0 +_081B2792: + cmp r4, #0 + beq _081B27B8 + ldr r5, [r7] + ldrb r0, [r7, #8] + ldrb r1, [r5, #8] + lsrs r1, r1, #3 + ldrb r2, [r5, #9] + lsrs r2, r2, #3 + adds r2, #1 + ldrb r3, [r5, #0xa] + lsrs r3, r3, #3 + ldrb r4, [r5, #0xb] + lsrs r4, r4, #3 + str r4, [sp] + movs r4, #0 + str r4, [sp, #4] + ldr r4, [r5] + bl _call_via_r4 +_081B27B8: + mov r0, r8 + cmp r0, #2 + beq _081B27D0 + adds r0, r6, #0 + movs r1, #0x38 + bl GetMonData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r7, #0 + bl DisplayPartyPokemonLevel +_081B27D0: + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end DisplayPartyPokemonLevelCheck + + thumb_func_start DisplayPartyPokemonLevel +DisplayPartyPokemonLevel: @ 0x081B27DC + push {r4, r5, r6, lr} + adds r2, r0, #0 + adds r6, r1, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r5, _081B281C + adds r0, r5, #0 + adds r1, r2, #0 + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r4, _081B2820 + ldr r1, _081B2824 + adds r0, r4, #0 + bl StringCopy + adds r0, r4, #0 + adds r1, r5, #0 + bl StringAppend + ldrb r0, [r6, #8] + ldr r3, [r6] + adds r3, #8 + adds r1, r4, #0 + movs r2, #0 + bl DisplayPartyPokemonBarDetail + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081B281C: .4byte 0x02021C54 +_081B2820: .4byte 0x02021C40 +_081B2824: .4byte 0x085C940E + thumb_func_end DisplayPartyPokemonLevel + + thumb_func_start DisplayPartyPokemonGenderNidoranCheck +DisplayPartyPokemonGenderNidoranCheck: @ 0x081B2828 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + adds r6, r0, #0 + adds r7, r1, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + cmp r2, #1 + bne _081B285A + ldr r5, [r7] + ldrb r0, [r7, #8] + ldrb r1, [r5, #0xc] + lsrs r1, r1, #3 + ldrb r2, [r5, #0xd] + lsrs r2, r2, #3 + adds r2, #1 + ldrb r3, [r5, #0xe] + lsrs r3, r3, #3 + ldrb r4, [r5, #0xf] + lsrs r4, r4, #3 + str r4, [sp] + movs r4, #0 + str r4, [sp, #4] + ldr r4, [r5] + bl _call_via_r4 +_081B285A: + adds r0, r6, #0 + add r1, sp, #8 + bl GetMonNickname + adds r0, r6, #0 + bl GetMonGender + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r6, #0 + movs r1, #0xb + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + add r2, sp, #8 + adds r3, r7, #0 + bl DisplayPartyPokemonGender + add sp, #0x14 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end DisplayPartyPokemonGenderNidoranCheck + + thumb_func_start DisplayPartyPokemonGender +DisplayPartyPokemonGender: @ 0x081B2890 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov sb, r2 + adds r7, r3, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + adds r5, r4, #0 + ldrb r0, [r7, #8] + movs r1, #5 + bl GetWindowAttribute + lsls r0, r0, #0x1c + lsrs r6, r0, #0x18 + cmp r4, #0 + beq _081B2956 + cmp r4, #0x20 + beq _081B28C0 + cmp r4, #0x1d + bne _081B28D4 +_081B28C0: + lsls r1, r5, #1 + adds r1, r1, r5 + lsls r1, r1, #1 + ldr r0, _081B28E0 + adds r1, r1, r0 + mov r0, sb + bl StringCompare + cmp r0, #0 + beq _081B2956 +_081B28D4: + mov r0, r8 + cmp r0, #0 + beq _081B28E4 + cmp r0, #0xfe + beq _081B2924 + b _081B2956 + .align 2, 0 +_081B28E0: .4byte 0x082EA31C +_081B28E4: + ldr r5, _081B2918 + ldrb r0, [r5] + bl GetPartyMenuPaletteFromBuffer + ldr r4, _081B291C + ldrb r1, [r4] + adds r1, r1, r6 + movs r2, #2 + bl LoadPalette + ldrb r0, [r5, #1] + bl GetPartyMenuPaletteFromBuffer + ldrb r1, [r4, #1] + adds r1, r1, r6 + movs r2, #2 + bl LoadPalette + ldrb r0, [r7, #8] + ldr r1, _081B2920 + ldr r3, [r7] + adds r3, #0xc + movs r2, #2 + bl DisplayPartyPokemonBarDetail + b _081B2956 + .align 2, 0 +_081B2918: .4byte 0x085E137B +_081B291C: .4byte 0x085E136E +_081B2920: .4byte 0x085C940A +_081B2924: + ldr r5, _081B2964 + ldrb r0, [r5] + bl GetPartyMenuPaletteFromBuffer + ldr r4, _081B2968 + ldrb r1, [r4] + adds r1, r1, r6 + movs r2, #2 + bl LoadPalette + ldrb r0, [r5, #1] + bl GetPartyMenuPaletteFromBuffer + ldrb r1, [r4, #1] + adds r1, r1, r6 + movs r2, #2 + bl LoadPalette + ldrb r0, [r7, #8] + ldr r1, _081B296C + ldr r3, [r7] + adds r3, #0xc + movs r2, #2 + bl DisplayPartyPokemonBarDetail +_081B2956: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B2964: .4byte 0x085E137D +_081B2968: .4byte 0x085E136E +_081B296C: .4byte 0x085C940C + thumb_func_end DisplayPartyPokemonGender + + thumb_func_start DisplayPartyPokemonHPCheck +DisplayPartyPokemonHPCheck: @ 0x081B2970 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + adds r7, r0, #0 + adds r6, r1, #0 + lsls r2, r2, #0x18 + lsrs r4, r2, #0x18 + mov r8, r4 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _081B29CA + cmp r4, #0 + beq _081B29B2 + ldr r5, [r6] + ldrb r0, [r6, #8] + ldrb r1, [r5, #0x10] + lsrs r1, r1, #3 + ldrb r2, [r5, #0x11] + lsrs r2, r2, #3 + adds r2, #1 + ldrb r3, [r5, #0x12] + lsrs r3, r3, #3 + ldrb r4, [r5, #0x13] + lsrs r4, r4, #3 + str r4, [sp] + movs r4, #0 + str r4, [sp, #4] + ldr r4, [r5] + bl _call_via_r4 +_081B29B2: + mov r0, r8 + cmp r0, #2 + beq _081B29CA + adds r0, r7, #0 + movs r1, #0x39 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r6, #0 + bl DisplayPartyPokemonHP +_081B29CA: + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end DisplayPartyPokemonHPCheck + + thumb_func_start DisplayPartyPokemonHP +DisplayPartyPokemonHP: @ 0x081B29D8 + push {r4, r5, lr} + adds r2, r0, #0 + adds r4, r1, #0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldr r5, _081B2A04 + adds r0, r5, #0 + adds r1, r2, #0 + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldrb r0, [r4, #8] + ldr r3, [r4] + adds r3, #0x10 + adds r1, r5, #0 + movs r2, #0 + bl DisplayPartyPokemonBarDetail + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B2A04: .4byte 0x02021C40 + thumb_func_end DisplayPartyPokemonHP + + thumb_func_start DisplayPartyPokemonMaxHPCheck +DisplayPartyPokemonMaxHPCheck: @ 0x081B2A08 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + adds r7, r0, #0 + adds r6, r1, #0 + lsls r2, r2, #0x18 + lsrs r4, r2, #0x18 + mov r8, r4 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _081B2A64 + cmp r4, #0 + beq _081B2A4C + ldr r5, [r6] + ldrb r0, [r6, #8] + ldrb r1, [r5, #0x14] + lsrs r1, r1, #3 + adds r1, #1 + ldrb r2, [r5, #0x15] + lsrs r2, r2, #3 + adds r2, #1 + ldrb r3, [r5, #0x16] + lsrs r3, r3, #3 + ldrb r4, [r5, #0x17] + lsrs r4, r4, #3 + str r4, [sp] + movs r4, #0 + str r4, [sp, #4] + ldr r4, [r5] + bl _call_via_r4 +_081B2A4C: + mov r0, r8 + cmp r0, #2 + beq _081B2A64 + adds r0, r7, #0 + movs r1, #0x3a + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r6, #0 + bl DisplayPartyPokemonMaxHP +_081B2A64: + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end DisplayPartyPokemonMaxHPCheck + + thumb_func_start DisplayPartyPokemonMaxHP +DisplayPartyPokemonMaxHP: @ 0x081B2A70 + push {r4, r5, r6, lr} + adds r2, r0, #0 + adds r6, r1, #0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldr r5, _081B2AB0 + adds r0, r5, #0 + adds r1, r2, #0 + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r4, _081B2AB4 + ldr r1, _081B2AB8 + adds r0, r4, #0 + bl StringCopy + adds r0, r4, #0 + adds r1, r5, #0 + bl StringAppend + ldrb r0, [r6, #8] + ldr r3, [r6] + adds r3, #0x14 + adds r1, r4, #0 + movs r2, #0 + bl DisplayPartyPokemonBarDetail + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081B2AB0: .4byte 0x02021C54 +_081B2AB4: .4byte 0x02021C40 +_081B2AB8: .4byte 0x085C93FF + thumb_func_end DisplayPartyPokemonMaxHP + + thumb_func_start DisplayPartyPokemonHPBarCheck +DisplayPartyPokemonHPBarCheck: @ 0x081B2ABC + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _081B2AF0 + adds r0, r5, #0 + movs r1, #0x39 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + movs r1, #0x3a + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + adds r2, r6, #0 + bl DisplayPartyPokemonHPBar +_081B2AF0: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end DisplayPartyPokemonHPBarCheck + + thumb_func_start DisplayPartyPokemonHPBar +DisplayPartyPokemonHPBar: @ 0x081B2AF8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #8 + adds r6, r2, #0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sb, r1 + ldrb r0, [r6, #8] + movs r1, #5 + bl GetWindowAttribute + lsls r0, r0, #0x1c + lsrs r7, r0, #0x18 + mov r1, r8 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + mov r2, sb + lsls r1, r2, #0x10 + asrs r1, r1, #0x10 + bl GetHPBarLevel + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + beq _081B2B44 + cmp r0, #2 + blt _081B2B74 + cmp r0, #4 + bgt _081B2B74 + ldr r5, _081B2B40 + b _081B2B46 + .align 2, 0 +_081B2B40: .4byte 0x085E137F +_081B2B44: + ldr r5, _081B2B6C +_081B2B46: + ldrb r0, [r5] + bl GetPartyMenuPaletteFromBuffer + ldr r4, _081B2B70 + ldrb r1, [r4] + adds r1, r1, r7 + movs r2, #2 + bl LoadPalette + ldrb r0, [r5, #1] + bl GetPartyMenuPaletteFromBuffer + ldrb r1, [r4, #1] + adds r1, r1, r7 + movs r2, #2 + bl LoadPalette + b _081B2B98 + .align 2, 0 +_081B2B6C: .4byte 0x085E1381 +_081B2B70: .4byte 0x085E1370 +_081B2B74: + ldr r5, _081B2C34 + ldrb r0, [r5] + bl GetPartyMenuPaletteFromBuffer + ldr r4, _081B2C38 + ldrb r1, [r4] + adds r1, r1, r7 + movs r2, #2 + bl LoadPalette + ldrb r0, [r5, #1] + bl GetPartyMenuPaletteFromBuffer + ldrb r1, [r4, #1] + adds r1, r1, r7 + movs r2, #2 + bl LoadPalette +_081B2B98: + mov r1, r8 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + mov r2, sb + lsls r1, r2, #0x10 + asrs r1, r1, #0x10 + ldr r2, [r6] + ldrb r2, [r2, #0x1a] + bl GetScaledHPFraction + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldrb r0, [r6, #8] + ldr r4, _081B2C38 + ldrb r1, [r4, #1] + ldr r3, [r6] + ldrb r2, [r3, #0x18] + ldrb r3, [r3, #0x19] + str r5, [sp] + movs r7, #1 + str r7, [sp, #4] + bl FillWindowPixelRect + ldrb r0, [r6, #8] + ldrb r1, [r4] + ldr r3, [r6] + ldrb r2, [r3, #0x18] + ldrb r3, [r3, #0x19] + adds r3, #1 + str r5, [sp] + movs r4, #2 + str r4, [sp, #4] + bl FillWindowPixelRect + ldr r1, [r6] + ldrb r0, [r1, #0x1a] + cmp r5, r0 + beq _081B2C1C + ldrb r0, [r6, #8] + ldrb r2, [r1, #0x18] + adds r2, r2, r5 + ldrb r3, [r1, #0x19] + ldrb r1, [r1, #0x1a] + subs r1, r1, r5 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp] + str r7, [sp, #4] + movs r1, #0xd + bl FillWindowPixelRect + ldrb r0, [r6, #8] + ldr r1, [r6] + ldrb r2, [r1, #0x18] + adds r2, r2, r5 + ldrb r3, [r1, #0x19] + adds r3, #1 + ldrb r1, [r1, #0x1a] + subs r1, r1, r5 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp] + str r4, [sp, #4] + movs r1, #2 + bl FillWindowPixelRect +_081B2C1C: + ldrb r0, [r6, #8] + movs r1, #2 + bl CopyWindowToVram + add sp, #8 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B2C34: .4byte 0x085E1383 +_081B2C38: .4byte 0x085E1370 + thumb_func_end DisplayPartyPokemonHPBar + + thumb_func_start DisplayPartyPokemonOtherText +DisplayPartyPokemonOtherText: @ 0x081B2C3C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + adds r6, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r7, r2, #0 + cmp r7, #0 + beq _081B2C76 + ldr r5, [r6] + ldrb r0, [r6, #8] + ldrb r1, [r5, #0x1c] + lsrs r1, r1, #3 + ldrb r2, [r5, #0x1d] + lsrs r2, r2, #3 + ldrb r3, [r5, #0x1e] + lsrs r3, r3, #3 + ldrb r4, [r5, #0x1f] + lsrs r4, r4, #3 + str r4, [sp] + movs r4, #1 + str r4, [sp, #4] + ldr r4, [r5] + bl _call_via_r4 +_081B2C76: + cmp r7, #2 + beq _081B2C9C + ldrb r0, [r6, #8] + ldr r1, [r6] + ldrb r2, [r1, #0x1c] + ldrb r3, [r1, #0x1d] + ldr r1, _081B2CA8 + str r1, [sp] + movs r1, #0 + str r1, [sp, #4] + ldr r4, _081B2CAC + mov r5, r8 + lsls r1, r5, #2 + adds r1, r1, r4 + ldr r1, [r1] + str r1, [sp, #8] + movs r1, #1 + bl AddTextPrinterParameterized3 +_081B2C9C: + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B2CA8: .4byte 0x085E10B4 +_081B2CAC: .4byte 0x085E1418 + thumb_func_end DisplayPartyPokemonOtherText + + thumb_func_start sub_081B2CB0 +sub_081B2CB0: @ 0x081B2CB0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4] + cmp r0, #0xff + beq _081B2CD0 + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + ldrb r0, [r4] + bl RemoveWindow + movs r0, #0xff + strb r0, [r4] + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram +_081B2CD0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081B2CB0 + + thumb_func_start display_pokemon_menu_message +display_pokemon_menu_message: @ 0x081B2CD8 + push {r4, r5, r6, lr} + sub sp, #0xc + adds r6, r0, #0 + ldr r0, _081B2D08 + ldr r4, [r0] + adds r5, r4, #0 + adds r5, #0xd + ldrb r0, [r4, #0xd] + cmp r0, #0xff + beq _081B2CF2 + adds r0, r5, #0 + bl sub_081B2CB0 +_081B2CF2: + cmp r6, #0x7f + beq _081B2DC0 + adds r0, r6, #0 + subs r0, #0x15 + cmp r0, #5 + bhi _081B2D58 + lsls r0, r0, #2 + ldr r1, _081B2D0C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081B2D08: .4byte 0x0203CB90 +_081B2D0C: .4byte 0x081B2D10 +_081B2D10: @ jump table + .4byte _081B2D28 @ case 0 + .4byte _081B2D40 @ case 1 + .4byte _081B2D40 @ case 2 + .4byte _081B2D30 @ case 3 + .4byte _081B2D38 @ case 4 + .4byte _081B2D48 @ case 5 +_081B2D28: + ldr r0, _081B2D2C + b _081B2D4A + .align 2, 0 +_081B2D2C: .4byte 0x085E11E0 +_081B2D30: + ldr r0, _081B2D34 + b _081B2D4A + .align 2, 0 +_081B2D34: .4byte 0x085E11E8 +_081B2D38: + ldr r0, _081B2D3C + b _081B2D4A + .align 2, 0 +_081B2D3C: .4byte 0x085E11F0 +_081B2D40: + ldr r0, _081B2D44 + b _081B2D4A + .align 2, 0 +_081B2D44: .4byte 0x085E11F8 +_081B2D48: + ldr r0, _081B2D54 +_081B2D4A: + bl AddWindow + strb r0, [r5] + b _081B2D60 + .align 2, 0 +_081B2D54: .4byte 0x085E1200 +_081B2D58: + ldr r0, _081B2D74 + bl AddWindow + strb r0, [r4, #0xd] +_081B2D60: + cmp r6, #0 + bne _081B2D88 + ldr r0, _081B2D78 + ldr r0, [r0] + ldrb r0, [r0, #8] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _081B2D7C + movs r6, #2 + b _081B2D88 + .align 2, 0 +_081B2D74: .4byte 0x085E11D8 +_081B2D78: .4byte 0x0203CB90 +_081B2D7C: + bl sub_081B2DD0 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081B2D88 + movs r6, #1 +_081B2D88: + ldrb r0, [r5] + movs r1, #0 + movs r2, #0x4f + movs r3, #0xd + bl DrawStdFrameWithCustomTileAndPalette + ldr r4, _081B2DC8 + ldr r1, _081B2DCC + lsls r0, r6, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl StringExpandPlaceholders + ldrb r0, [r5] + movs r1, #2 + str r1, [sp] + movs r1, #0 + str r1, [sp, #4] + str r1, [sp, #8] + movs r1, #1 + adds r2, r4, #0 + movs r3, #0 + bl AddTextPrinterParameterized + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram +_081B2DC0: + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081B2DC8: .4byte 0x02021C7C +_081B2DCC: .4byte 0x085E13AC + thumb_func_end display_pokemon_menu_message + + thumb_func_start sub_081B2DD0 +sub_081B2DD0: @ 0x081B2DD0 + push {r4, r5, r6, r7, lr} + ldr r7, _081B2DE4 + movs r6, #0 + ldr r0, _081B2DE8 + ldrb r0, [r0, #0xb] + cmp r0, #1 + bne _081B2DEC +_081B2DDE: + movs r0, #1 + b _081B2E2E + .align 2, 0 +_081B2DE4: .4byte 0x02024190 +_081B2DE8: .4byte 0x0203CB94 +_081B2DEC: + movs r5, #0 +_081B2DEE: + movs r0, #0x64 + muls r0, r5, r0 + adds r4, r7, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _081B2E1E + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + bne _081B2E18 + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + beq _081B2E1E +_081B2E18: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_081B2E1E: + cmp r6, #1 + bhi _081B2DDE + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #5 + bls _081B2DEE + movs r0, #0 +_081B2E2E: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_081B2DD0 + + thumb_func_start sub_081B2E34 +sub_081B2E34: @ 0x081B2E34 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x1c + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #1 + beq _081B2E90 + cmp r4, #1 + bgt _081B2E50 + cmp r4, #0 + beq _081B2E56 + b _081B2EA0 +_081B2E50: + cmp r4, #2 + beq _081B2E98 + b _081B2EA0 +_081B2E56: + ldr r0, _081B2E88 + ldr r1, [r0] + ldrb r0, [r1, #0x17] + lsls r0, r0, #1 + movs r3, #0x13 + subs r3, r3, r0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #8 + str r0, [sp] + ldrb r0, [r1, #0x17] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + movs r0, #0xe + str r0, [sp, #8] + ldr r0, _081B2E8C + str r0, [sp, #0xc] + add r0, sp, #0x14 + movs r1, #2 + movs r2, #0x15 + bl SetWindowTemplateFields + b _081B2EAA + .align 2, 0 +_081B2E88: .4byte 0x0203CB90 +_081B2E8C: .4byte 0x000002D3 +_081B2E90: + ldr r0, _081B2E94 + b _081B2EA2 + .align 2, 0 +_081B2E94: .4byte 0x085E1208 +_081B2E98: + ldr r0, _081B2E9C + b _081B2EA2 + .align 2, 0 +_081B2E9C: .4byte 0x085E1210 +_081B2EA0: + ldr r0, _081B2ECC +_081B2EA2: + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [sp, #0x14] + str r1, [sp, #0x18] +_081B2EAA: + add r0, sp, #0x14 + bl AddWindow + ldr r6, _081B2ED0 + ldr r1, [r6] + strb r0, [r1, #0xc] + ldr r0, [r6] + ldrb r0, [r0, #0xc] + movs r1, #0 + movs r2, #0x4f + movs r3, #0xd + bl DrawStdFrameWithCustomTileAndPalette + cmp r4, #3 + bne _081B2ED4 + ldr r0, [r6] + b _081B2F74 + .align 2, 0 +_081B2ECC: .4byte 0x085E1218 +_081B2ED0: .4byte 0x0203CB90 +_081B2ED4: + movs r0, #1 + movs r1, #0 + bl GetMenuCursorDimensionByFont + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + movs r0, #1 + movs r1, #2 + bl GetFontAttribute + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r5, #0 + ldr r0, [r6] + ldrb r0, [r0, #0x17] + cmp r5, r0 + bhs _081B2F4E + adds r7, r6, #0 + movs r6, #0 +_081B2EFE: + ldr r1, [r7] + adds r0, r1, #0 + adds r0, #0xf + adds r4, r0, r5 + ldrb r0, [r4] + movs r2, #3 + cmp r0, #0x12 + bls _081B2F10 + movs r2, #4 +_081B2F10: + ldrb r0, [r1, #0xc] + lsls r3, r5, #4 + adds r3, #2 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r1, r8 + str r1, [sp] + str r6, [sp, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + ldr r2, _081B2F84 + adds r1, r1, r2 + str r1, [sp, #8] + str r6, [sp, #0xc] + ldr r2, _081B2F88 + ldrb r1, [r4] + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r1, [r1] + str r1, [sp, #0x10] + movs r1, #1 + mov r2, sb + bl AddTextPrinterParameterized4 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, [r7] + ldrb r0, [r0, #0x17] + cmp r5, r0 + blo _081B2EFE +_081B2F4E: + ldr r4, _081B2F8C + ldr r2, [r4] + ldrb r0, [r2, #0xc] + movs r1, #0x10 + str r1, [sp] + ldrb r1, [r2, #0x17] + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + str r1, [sp, #0xc] + movs r2, #0 + movs r3, #2 + bl sub_0819844C + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + ldr r0, [r4] +_081B2F74: + ldrb r0, [r0, #0xc] + add sp, #0x1c + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081B2F84: .4byte 0x085E10B4 +_081B2F88: .4byte 0x085E14C0 +_081B2F8C: .4byte 0x0203CB90 + thumb_func_end sub_081B2E34 + + thumb_func_start sub_081B2F90 +sub_081B2F90: @ 0x081B2F90 + push {r4, lr} + sub sp, #0x10 + adds r4, r0, #0 + movs r0, #6 + movs r1, #0 + movs r2, #0x4f + movs r3, #0xd + bl DrawStdFrameWithCustomTileAndPalette + ldr r2, _081B2FD8 + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + bl GetPlayerTextSpeedDelay + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #0 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + movs r0, #3 + str r0, [sp, #0xc] + movs r0, #6 + movs r1, #1 + adds r2, r4, #0 + bl AddTextPrinterParameterized2 + add sp, #0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B2FD8: .4byte 0x030030B4 + thumb_func_end sub_081B2F90 + + thumb_func_start sub_081B2FDC +sub_081B2FDC: @ 0x081B2FDC + push {lr} + sub sp, #0xc + ldr r0, _081B3000 + movs r1, #0x4f + str r1, [sp] + movs r1, #0xd + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + movs r2, #2 + movs r3, #2 + bl sub_08198C08 + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_081B3000: .4byte 0x085E1220 + thumb_func_end sub_081B2FDC + + thumb_func_start sub_081B3004 +sub_081B3004: @ 0x081B3004 + push {r4, lr} + ldr r0, _081B302C + bl AddWindow + ldr r4, _081B3030 + ldr r1, [r4] + strb r0, [r1, #0xc] + ldr r0, [r4] + ldrb r0, [r0, #0xc] + movs r1, #0 + movs r2, #0x4f + movs r3, #0xd + bl DrawStdFrameWithCustomTileAndPalette + ldr r0, [r4] + ldrb r0, [r0, #0xc] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081B302C: .4byte 0x085E1228 +_081B3030: .4byte 0x0203CB90 + thumb_func_end sub_081B3004 + + thumb_func_start sub_081B3034 +sub_081B3034: @ 0x081B3034 + push {r4, lr} + ldr r4, _081B3050 + ldr r0, [r4] + ldrb r0, [r0, #0xc] + bl ClearWindowTilemap + ldr r0, [r4] + adds r0, #0xc + bl sub_081B2CB0 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B3050: .4byte 0x0203CB90 + thumb_func_end sub_081B3034 + + thumb_func_start sub_081B3054 +sub_081B3054: @ 0x081B3054 + push {r4, lr} + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + cmp r2, #0 + bne _081B3068 + bl CreateActionList + b _081B30A0 +_081B3068: + ldr r4, _081B30A8 + ldr r1, [r4] + ldr r0, _081B30AC + adds r0, r2, r0 + ldrb r0, [r0] + strb r0, [r1, #0x17] + movs r3, #0 + ldr r0, [r4] + ldrb r0, [r0, #0x17] + cmp r3, r0 + bhs _081B30A0 + ldr r1, _081B30B0 + lsls r0, r2, #2 + adds r2, r0, r1 +_081B3084: + ldr r1, [r4] + adds r1, #0xf + adds r1, r1, r3 + ldr r0, [r2] + adds r0, r0, r3 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r0, [r4] + ldrb r0, [r0, #0x17] + cmp r3, r0 + blo _081B3084 +_081B30A0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B30A8: .4byte 0x0203CB90 +_081B30AC: .4byte 0x085E1628 +_081B30B0: .4byte 0x085E15F0 + thumb_func_end sub_081B3054 + + thumb_func_start CreateActionList +CreateActionList: @ 0x081B30B4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov sb, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sl, r1 + ldr r2, _081B3128 + ldr r1, [r2] + movs r0, #0 + strb r0, [r1, #0x17] + ldr r1, [r2] + adds r0, r1, #0 + adds r0, #0xf + adds r1, #0x17 + movs r2, #0 + bl AppendToList + movs r7, #0 + ldr r0, _081B312C + ldrh r0, [r0] + str r0, [sp] +_081B30E6: + movs r4, #0 + adds r0, r7, #1 + mov r8, r0 + ldr r1, [sp] + cmp r1, #0xe + beq _081B3140 + movs r0, #0x64 + mov r6, sl + muls r6, r0, r6 + ldr r5, _081B312C +_081B30FA: + mov r1, sb + adds r0, r1, r6 + adds r1, r7, #0 + adds r1, #0xd + bl GetMonData + lsls r1, r4, #1 + adds r1, r1, r5 + ldrh r1, [r1] + cmp r0, r1 + bne _081B3130 + ldr r0, _081B3128 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0xf + adds r1, #0x17 + adds r2, r4, #0 + adds r2, #0x13 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + bl AppendToList + b _081B3140 + .align 2, 0 +_081B3128: .4byte 0x0203CB90 +_081B312C: .4byte 0x085E1636 +_081B3130: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #1 + adds r0, r0, r5 + ldrh r0, [r0] + cmp r0, #0xe + bne _081B30FA +_081B3140: + mov r1, r8 + lsls r0, r1, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #3 + bls _081B30E6 + bl InBattlePike + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081B31B8 + mov r0, sb + adds r0, #0x64 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _081B3172 + ldr r0, _081B31A4 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0xf + adds r1, #0x17 + movs r2, #1 + bl AppendToList +_081B3172: + movs r0, #0x64 + mov r1, sl + muls r1, r0, r1 + adds r0, r1, #0 + add r0, sb + movs r1, #0xc + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl ItemIsMail + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081B31A8 + ldr r0, _081B31A4 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0xf + adds r1, #0x17 + movs r2, #6 + bl AppendToList + b _081B31B8 + .align 2, 0 +_081B31A4: .4byte 0x0203CB90 +_081B31A8: + ldr r0, _081B31D8 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0xf + adds r1, #0x17 + movs r2, #3 + bl AppendToList +_081B31B8: + ldr r0, _081B31D8 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0xf + adds r1, #0x17 + movs r2, #2 + bl AppendToList + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B31D8: .4byte 0x0203CB90 + thumb_func_end CreateActionList + + thumb_func_start sub_081B31DC +sub_081B31DC: @ 0x081B31DC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _081B31F8 + ldrb r0, [r1, #8] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + adds r2, r1, #0 + cmp r0, #0xc + bhi _081B329E + lsls r0, r0, #2 + ldr r1, _081B31FC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081B31F8: .4byte 0x0203CB94 +_081B31FC: .4byte 0x081B3200 +_081B3200: @ jump table + .4byte _081B3234 @ case 0 + .4byte _081B3250 @ case 1 + .4byte _081B329E @ case 2 + .4byte _081B329E @ case 3 + .4byte _081B325C @ case 4 + .4byte _081B329E @ case 5 + .4byte _081B327C @ case 6 + .4byte _081B329E @ case 7 + .4byte _081B328E @ case 8 + .4byte _081B3292 @ case 9 + .4byte _081B3296 @ case 10 + .4byte _081B329E @ case 11 + .4byte _081B329A @ case 12 +_081B3234: + bl InMultiBattleRoom + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B324C + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + beq _081B329E +_081B324C: + movs r1, #1 + b _081B32A0 +_081B3250: + adds r0, r4, #0 + bl sub_081B86CC + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + b _081B32A0 +_081B325C: + movs r0, #9 + ldrsb r0, [r2, r0] + bl sub_081B820C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _081B3274 + cmp r0, #1 + beq _081B3278 + movs r1, #7 + b _081B32A0 +_081B3274: + movs r1, #4 + b _081B32A0 +_081B3278: + movs r1, #5 + b _081B32A0 +_081B327C: + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + movs r1, #6 + cmp r0, #0 + beq _081B32A0 + movs r1, #7 + b _081B32A0 +_081B328E: + movs r1, #0xa + b _081B32A0 +_081B3292: + movs r1, #0xb + b _081B32A0 +_081B3296: + movs r1, #0xc + b _081B32A0 +_081B329A: + movs r1, #0xd + b _081B32A0 +_081B329E: + movs r1, #0 +_081B32A0: + adds r0, r1, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081B31DC + + thumb_func_start sub_081B32A8 +sub_081B32A8: @ 0x081B32A8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r4, _081B3304 + movs r1, #9 + ldrsb r1, [r4, r1] + movs r0, #0x64 + muls r0, r1, r0 + ldr r7, _081B3308 + adds r5, r0, r7 + ldr r1, _081B330C + adds r0, r5, #0 + bl GetMonNickname + ldr r0, _081B3310 + ldr r0, [r0] + adds r0, #0xd + bl sub_081B2CB0 + ldrb r1, [r4, #8] + movs r0, #0xf + ands r0, r1 + cmp r0, #0xc + beq _081B3314 + ldrb r4, [r4, #9] + adds r0, r5, #0 + bl sub_081B31DC + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r7, #0 + adds r1, r4, #0 + bl sub_081B3054 + movs r0, #0 + bl sub_081B2E34 + movs r0, #0x15 + bl display_pokemon_menu_message + b _081B338A + .align 2, 0 +_081B3304: .4byte 0x0203CB94 +_081B3308: .4byte 0x02024190 +_081B330C: .4byte 0x02021C40 +_081B3310: .4byte 0x0203CB90 +_081B3314: + adds r0, r5, #0 + movs r1, #0xc + bl GetMonData + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #0 + bne _081B3360 + ldr r4, _081B3350 + ldr r1, _081B3354 + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + movs r1, #1 + bl sub_081B182C + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, _081B3358 + mov r2, r8 + lsls r0, r2, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B335C + str r1, [r0] + movs r0, #0 + b _081B338C + .align 2, 0 +_081B3350: .4byte 0x02021C7C +_081B3354: .4byte 0x085C9CAD +_081B3358: .4byte 0x03005B60 +_081B335C: .4byte 0x081B433D +_081B3360: + ldrb r4, [r4, #9] + adds r0, r5, #0 + bl sub_081B31DC + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r7, #0 + adds r1, r4, #0 + bl sub_081B3054 + movs r0, #1 + bl sub_081B2E34 + ldr r1, _081B3398 + adds r0, r6, #0 + bl CopyItemName + movs r0, #0x1a + bl display_pokemon_menu_message +_081B338A: + movs r0, #1 +_081B338C: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081B3398: .4byte 0x02021C54 + thumb_func_end sub_081B32A8 + + thumb_func_start sub_081B339C +sub_081B339C: @ 0x081B339C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl sub_081B32A8 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081B33C0 + ldr r1, _081B33C8 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0xff + strh r1, [r0, #8] + ldr r1, _081B33CC + str r1, [r0] +_081B33C0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B33C8: .4byte 0x03005B60 +_081B33CC: .4byte 0x081B33D1 + thumb_func_end sub_081B339C + + thumb_func_start HandleMenuInput +HandleMenuInput: @ 0x081B33D0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _081B3408 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081B348E + bl sub_081221F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B348E + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _081B340C + adds r5, r0, r1 + ldr r0, _081B3410 + ldr r0, [r0] + ldrb r0, [r0, #0x17] + cmp r0, #3 + bhi _081B3414 + bl Menu_ProcessInputNoWrapAround_other + b _081B3418 + .align 2, 0 +_081B3408: .4byte 0x02037C74 +_081B340C: .4byte 0x03005B68 +_081B3410: .4byte 0x0203CB90 +_081B3414: + bl ProcessMenuInput_other +_081B3418: + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl Menu_GetCursorPos + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5] + lsls r0, r4, #0x18 + asrs r5, r0, #0x18 + movs r0, #2 + rsbs r0, r0, #0 + cmp r5, r0 + beq _081B348E + adds r0, #1 + cmp r5, r0 + bne _081B346C + movs r0, #5 + bl PlaySE + ldr r4, _081B3464 + ldr r0, [r4] + adds r0, #0xe + bl sub_081B2CB0 + ldr r2, _081B3468 + ldr r0, [r4] + ldrb r1, [r0, #0x17] + adds r0, r0, r1 + ldrb r0, [r0, #0xe] + lsls r0, r0, #3 + adds r2, #4 + adds r0, r0, r2 + ldr r1, [r0] + adds r0, r6, #0 + bl _call_via_r1 + b _081B348E + .align 2, 0 +_081B3464: .4byte 0x0203CB90 +_081B3468: .4byte 0x085E14C0 +_081B346C: + ldr r4, _081B3494 + ldr r0, [r4] + adds r0, #0xe + bl sub_081B2CB0 + ldr r1, _081B3498 + ldr r0, [r4] + adds r0, #0xf + adds r0, r0, r5 + ldrb r0, [r0] + lsls r0, r0, #3 + adds r1, #4 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r6, #0 + bl _call_via_r1 +_081B348E: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081B3494: .4byte 0x0203CB90 +_081B3498: .4byte 0x085E14C0 + thumb_func_end HandleMenuInput + + thumb_func_start CursorCb_Give +CursorCb_Give: @ 0x081B349C + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #5 + bl PlaySE + ldr r0, _081B34C0 + ldr r1, [r0] + ldr r0, _081B34C4 + str r0, [r1, #4] + adds r0, r4, #0 + bl sub_081B0F90 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B34C0: .4byte 0x0203CB90 +_081B34C4: .4byte 0x081B34C9 + thumb_func_end CursorCb_Give + + thumb_func_start sub_081B34C8 +sub_081B34C8: @ 0x081B34C8 + push {r4, lr} + sub sp, #4 + ldr r4, _081B34F8 + ldrb r1, [r4, #8] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _081B3508 + bl pokemon_change_order + ldr r1, _081B34FC + ldrb r2, [r4, #9] + ldr r0, _081B3500 + ldrb r3, [r0] + subs r3, #1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r0, _081B3504 + str r0, [sp] + movs r0, #1 + bl ShowPokemonSummaryScreen + b _081B3520 + .align 2, 0 +_081B34F8: .4byte 0x0203CB94 +_081B34FC: .4byte 0x02024190 +_081B3500: .4byte 0x0202418D +_081B3504: .4byte 0x081B3535 +_081B3508: + ldr r1, _081B3528 + ldrb r2, [r4, #9] + ldr r0, _081B352C + ldrb r3, [r0] + subs r3, #1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r0, _081B3530 + str r0, [sp] + movs r0, #0 + bl ShowPokemonSummaryScreen +_081B3520: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B3528: .4byte 0x02024190 +_081B352C: .4byte 0x0202418D +_081B3530: .4byte 0x081B3535 + thumb_func_end sub_081B34C8 + + thumb_func_start sub_081B3534 +sub_081B3534: @ 0x081B3534 + push {lr} + sub sp, #0xc + ldr r2, _081B356C + ldrb r0, [r2, #8] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #8] + ldr r3, _081B3570 + ldr r0, _081B3574 + ldrb r0, [r0] + strb r0, [r3, #9] + ldrb r0, [r3, #8] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + ldrb r2, [r3, #0xb] + movs r1, #0x15 + str r1, [sp] + ldr r1, _081B3578 + str r1, [sp, #4] + ldr r1, [r3] + str r1, [sp, #8] + movs r1, #0xff + movs r3, #1 + bl InitPartyMenu + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_081B356C: .4byte 0x02037C74 +_081B3570: .4byte 0x0203CB94 +_081B3574: .4byte 0x0203CBEC +_081B3578: .4byte 0x081B339D + thumb_func_end sub_081B3534 + + thumb_func_start CursorCb_Switch +CursorCb_Switch: @ 0x081B357C + push {r4, r5, r6, lr} + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + movs r0, #5 + bl PlaySE + ldr r5, _081B35C8 + movs r0, #8 + strb r0, [r5, #0xb] + ldr r4, _081B35CC + ldr r0, [r4] + adds r0, #0xd + bl sub_081B2CB0 + ldr r0, [r4] + adds r0, #0xc + bl sub_081B2CB0 + movs r0, #3 + bl display_pokemon_menu_message + ldrb r0, [r5, #9] + movs r1, #1 + bl sub_081B0C9C + ldrb r0, [r5, #9] + strb r0, [r5, #0xa] + ldr r1, _081B35D0 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B35D4 + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081B35C8: .4byte 0x0203CB94 +_081B35CC: .4byte 0x0203CB90 +_081B35D0: .4byte 0x03005B60 +_081B35D4: .4byte 0x081B1041 + thumb_func_end CursorCb_Switch + + thumb_func_start sub_081B35D8 +sub_081B35D8: @ 0x081B35D8 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + ldr r1, _081B3600 + adds r6, r0, r1 + ldr r3, _081B3604 + movs r1, #0xa + ldrsb r1, [r3, r1] + movs r0, #9 + ldrsb r0, [r3, r0] + cmp r1, r0 + bne _081B3608 + adds r0, r7, #0 + bl sub_081B3D1C + b _081B375A + .align 2, 0 +_081B3600: .4byte 0x03005B68 +_081B3604: .4byte 0x0203CB94 +_081B3608: + add r2, sp, #8 + movs r0, #9 + ldrsb r0, [r3, r0] + ldr r1, _081B3660 + ldr r1, [r1] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrb r0, [r0, #8] + movs r4, #0 + strb r0, [r2] + adds r0, r2, #0 + ldrb r0, [r0] + movs r1, #1 + bl GetWindowAttribute + strh r0, [r6] + add r0, sp, #8 + ldrb r0, [r0] + movs r1, #2 + bl GetWindowAttribute + strh r0, [r6, #2] + add r0, sp, #8 + ldrb r0, [r0] + movs r1, #3 + bl GetWindowAttribute + strh r0, [r6, #4] + add r0, sp, #8 + ldrb r0, [r0] + movs r1, #4 + bl GetWindowAttribute + strh r0, [r6, #6] + strh r4, [r6, #0x10] + movs r1, #4 + ldrsh r0, [r6, r1] + cmp r0, #0xa + bne _081B3664 + movs r2, #1 + rsbs r2, r2, #0 + adds r0, r2, #0 + b _081B3666 + .align 2, 0 +_081B3660: .4byte 0x0203CBA8 +_081B3664: + movs r0, #1 +_081B3666: + strh r0, [r6, #0x14] + add r2, sp, #8 + ldr r0, _081B36C4 + ldrb r0, [r0, #0xa] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldr r1, _081B36C8 + ldr r1, [r1] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrb r0, [r0, #8] + movs r4, #0 + strb r0, [r2, #1] + adds r0, r2, #0 + ldrb r0, [r0, #1] + movs r1, #1 + bl GetWindowAttribute + strh r0, [r6, #8] + add r0, sp, #8 + ldrb r0, [r0, #1] + movs r1, #2 + bl GetWindowAttribute + strh r0, [r6, #0xa] + add r0, sp, #8 + ldrb r0, [r0, #1] + movs r1, #3 + bl GetWindowAttribute + strh r0, [r6, #0xc] + add r0, sp, #8 + ldrb r0, [r0, #1] + movs r1, #4 + bl GetWindowAttribute + strh r0, [r6, #0xe] + strh r4, [r6, #0x12] + movs r1, #0xc + ldrsh r0, [r6, r1] + cmp r0, #0xa + bne _081B36CC + movs r2, #1 + rsbs r2, r2, #0 + adds r0, r2, #0 + b _081B36CE + .align 2, 0 +_081B36C4: .4byte 0x0203CB94 +_081B36C8: .4byte 0x0203CBA8 +_081B36CC: + movs r0, #1 +_081B36CE: + strh r0, [r6, #0x16] + ldr r4, _081B3764 + movs r0, #4 + ldrsh r1, [r6, r0] + movs r2, #6 + ldrsh r0, [r6, r2] + lsls r0, r0, #1 + muls r0, r1, r0 + bl Alloc + str r0, [r4] + ldr r5, _081B3768 + movs r0, #0xc + ldrsh r1, [r6, r0] + movs r2, #0xe + ldrsh r0, [r6, r2] + lsls r0, r0, #1 + muls r0, r1, r0 + bl Alloc + str r0, [r5] + ldr r1, [r4] + ldrb r2, [r6] + ldrb r3, [r6, #2] + ldrb r0, [r6, #4] + str r0, [sp] + ldrb r0, [r6, #6] + str r0, [sp, #4] + movs r0, #0 + bl sub_08199954 + ldr r1, [r5] + ldrb r2, [r6, #8] + ldrb r3, [r6, #0xa] + ldrb r0, [r6, #0xc] + str r0, [sp] + ldrb r0, [r6, #0xe] + str r0, [sp, #4] + movs r0, #0 + bl sub_08199954 + add r0, sp, #8 + ldrb r0, [r0] + bl ClearWindowTilemap + add r0, sp, #8 + ldrb r0, [r0, #1] + bl ClearWindowTilemap + ldr r4, _081B376C + movs r0, #9 + strb r0, [r4, #0xb] + ldrb r0, [r4, #9] + movs r1, #1 + bl sub_081B0C9C + ldrb r0, [r4, #0xa] + movs r1, #1 + bl sub_081B0C9C + adds r0, r7, #0 + bl sub_081B3960 + ldr r1, _081B3770 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B3774 + str r1, [r0] +_081B375A: + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B3764: .4byte 0x0203CBBC +_081B3768: .4byte 0x0203CBC0 +_081B376C: .4byte 0x0203CB94 +_081B3770: .4byte 0x03005B60 +_081B3774: .4byte 0x081B39E9 + thumb_func_end sub_081B35D8 + + thumb_func_start sub_081B3778 +sub_081B3778: @ 0x081B3778 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r2, #0 + mov ip, r3 + ldr r7, [sp, #0x18] + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + adds r5, r3, #0 + lsls r1, r1, #0x10 + lsrs r2, r1, #0x10 + mov r8, r2 + lsls r0, r3, #0x10 + asrs r1, r0, #0x10 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + adds r4, r1, r0 + cmp r4, #0 + blt _081B37A2 + cmp r1, #0x1f + ble _081B37A6 +_081B37A2: + movs r0, #0 + b _081B37D4 +_081B37A6: + cmp r1, #0 + bge _081B37BA + rsbs r0, r1, #0 + strb r0, [r6] + movs r0, #0 + mov r1, ip + strb r0, [r1] + adds r0, r2, r3 + strb r0, [r7] + b _081B37D2 +_081B37BA: + movs r0, #0 + strb r0, [r6] + mov r0, ip + strb r5, [r0] + cmp r4, #0x1f + ble _081B37CE + movs r0, #0x20 + subs r0, r0, r5 + strb r0, [r7] + b _081B37D2 +_081B37CE: + mov r1, r8 + strb r1, [r7] +_081B37D2: + movs r0, #1 +_081B37D4: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081B3778 + + thumb_func_start sub_081B37E0 +sub_081B37E0: @ 0x081B37E0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x34 + str r0, [sp, #0x28] + ldr r0, [sp, #0x54] + ldr r4, [sp, #0x58] + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + mov sb, r2 + lsls r3, r3, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + str r4, [sp, #0x30] + lsls r1, r1, #0x10 + asrs r7, r1, #0x10 + lsrs r0, r3, #0x10 + str r0, [sp, #0x2c] + asrs r3, r3, #0x10 + mov r8, r3 + mov r5, sp + adds r5, #0x25 + mov r6, sp + adds r6, #0x26 + str r6, [sp] + adds r0, r7, #0 + mov r1, r8 + add r2, sp, #0x24 + adds r3, r5, #0 + bl sub_081B3778 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081B389A + ldrb r2, [r5] + mov r1, sb + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldrb r0, [r6] + str r0, [sp] + mov r1, sl + lsls r0, r1, #0x18 + lsrs r4, r0, #0x18 + str r4, [sp, #4] + movs r0, #0 + movs r1, #0 + mov r3, sb + bl FillBgTilemapBufferRect_Palette0 + ldr r1, [sp, #0x30] + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + adds r0, r7, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + str r6, [sp] + mov r1, r8 + add r2, sp, #0x24 + adds r3, r5, #0 + bl sub_081B3778 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081B389A + add r0, sp, #0x24 + ldrb r2, [r0] + ldr r1, [sp, #0x2c] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + str r4, [sp, #4] + ldrb r0, [r5] + str r0, [sp, #8] + mov r0, sb + str r0, [sp, #0xc] + ldrb r0, [r6] + str r0, [sp, #0x10] + str r4, [sp, #0x14] + movs r0, #0x11 + str r0, [sp, #0x18] + movs r0, #0 + str r0, [sp, #0x1c] + str r0, [sp, #0x20] + ldr r1, [sp, #0x28] + movs r3, #0 + bl CopyRectToBgTilemapBufferRect +_081B389A: + add sp, #0x34 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081B37E0 + + thumb_func_start sub_081B38AC +sub_081B38AC: @ 0x081B38AC + push {r4, lr} + ldr r4, _081B38FC + ldrb r2, [r0, #0xb] + lsls r3, r2, #4 + adds r3, r3, r2 + lsls r3, r3, #2 + adds r3, r3, r4 + lsls r1, r1, #0x10 + asrs r1, r1, #0xd + ldrh r2, [r3, #0x24] + adds r2, r2, r1 + strh r2, [r3, #0x24] + ldrb r3, [r0, #0xa] + lsls r2, r3, #4 + adds r2, r2, r3 + lsls r2, r2, #2 + adds r2, r2, r4 + ldrh r3, [r2, #0x24] + adds r3, r3, r1 + strh r3, [r2, #0x24] + ldrb r3, [r0, #9] + lsls r2, r3, #4 + adds r2, r2, r3 + lsls r2, r2, #2 + adds r2, r2, r4 + ldrh r3, [r2, #0x24] + adds r3, r3, r1 + strh r3, [r2, #0x24] + ldrb r2, [r0, #0xc] + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r2, [r0, #0x24] + adds r2, r2, r1 + strh r2, [r0, #0x24] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B38FC: .4byte 0x020205AC + thumb_func_end sub_081B38AC + + thumb_func_start sub_081B3900 +sub_081B3900: @ 0x081B3900 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _081B3954 + adds r4, r1, r0 + movs r1, #0x14 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _081B392E + ldr r2, _081B3958 + ldr r0, _081B395C + movs r1, #9 + ldrsb r1, [r0, r1] + lsls r1, r1, #4 + ldr r0, [r2] + adds r0, r0, r1 + movs r2, #0x14 + ldrsh r1, [r4, r2] + bl sub_081B38AC +_081B392E: + movs r1, #0x16 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _081B394C + ldr r2, _081B3958 + ldr r0, _081B395C + movs r1, #0xa + ldrsb r1, [r0, r1] + lsls r1, r1, #4 + ldr r0, [r2] + adds r0, r0, r1 + movs r2, #0x16 + ldrsh r1, [r4, r2] + bl sub_081B38AC +_081B394C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B3954: .4byte 0x03005B68 +_081B3958: .4byte 0x0203CBA8 +_081B395C: .4byte 0x0203CB94 + thumb_func_end sub_081B3900 + + thumb_func_start sub_081B3960 +sub_081B3960: @ 0x081B3960 + push {r4, r5, r6, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _081B39DC + adds r5, r1, r0 + movs r1, #0x14 + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _081B39A0 + ldr r0, _081B39E0 + ldr r0, [r0] + ldrh r1, [r5, #0x10] + ldrh r2, [r5] + adds r1, r1, r2 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r3, #2 + ldrsh r2, [r5, r3] + movs r4, #4 + ldrsh r3, [r5, r4] + movs r6, #6 + ldrsh r4, [r5, r6] + str r4, [sp] + movs r6, #0x14 + ldrsh r4, [r5, r6] + str r4, [sp, #4] + bl sub_081B37E0 +_081B39A0: + movs r1, #0x16 + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _081B39CE + ldr r0, _081B39E4 + ldr r0, [r0] + ldrh r1, [r5, #0x12] + ldrh r2, [r5, #8] + adds r1, r1, r2 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r3, #0xa + ldrsh r2, [r5, r3] + movs r4, #0xc + ldrsh r3, [r5, r4] + movs r6, #0xe + ldrsh r4, [r5, r6] + str r4, [sp] + movs r6, #0x16 + ldrsh r4, [r5, r6] + str r4, [sp, #4] + bl sub_081B37E0 +_081B39CE: + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081B39DC: .4byte 0x03005B68 +_081B39E0: .4byte 0x0203CBBC +_081B39E4: .4byte 0x0203CBC0 + thumb_func_end sub_081B3960 + + thumb_func_start sub_081B39E8 +sub_081B39E8: @ 0x081B39E8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r7, r0, #3 + ldr r0, _081B3AE8 + mov r8, r0 + adds r6, r7, r0 + adds r0, r4, #0 + bl sub_081B3960 + adds r0, r4, #0 + bl sub_081B3900 + ldrh r1, [r6, #0x14] + ldrh r2, [r6, #0x10] + adds r1, r1, r2 + strh r1, [r6, #0x10] + ldrh r0, [r6, #0x16] + ldrh r3, [r6, #0x12] + adds r0, r0, r3 + strh r0, [r6, #0x12] + add r2, sp, #8 + ldrh r0, [r6] + adds r0, r0, r1 + strh r0, [r2] + adds r1, r2, #0 + ldrh r0, [r6, #0x12] + ldrh r3, [r6, #8] + adds r2, r0, r3 + strh r2, [r1, #2] + adds r0, r1, #0 + ldrh r0, [r0] + cmp r0, #0x21 + bls _081B3ADA + lsls r0, r2, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x21 + bls _081B3ADA + movs r1, #0x14 + ldrsh r0, [r6, r1] + rsbs r0, r0, #0 + strh r0, [r6, #0x14] + movs r2, #0x16 + ldrsh r0, [r6, r2] + rsbs r0, r0, #0 + strh r0, [r6, #0x16] + bl swap_pokemon_and_oams + ldr r4, _081B3AEC + ldrb r0, [r4, #9] + bl DisplayPartyPokemonData + ldrb r0, [r4, #0xa] + bl DisplayPartyPokemonData + movs r0, #9 + ldrsb r0, [r4, r0] + ldr r5, _081B3AF0 + ldr r1, [r5] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrb r0, [r0, #8] + bl PutWindowTilemap + movs r0, #0xa + ldrsb r0, [r4, r0] + ldr r1, [r5] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrb r0, [r0, #8] + bl PutWindowTilemap + ldr r0, _081B3AF4 + ldr r1, [r0] + ldrb r2, [r6] + ldrb r3, [r6, #2] + ldrb r0, [r6, #4] + str r0, [sp] + ldrb r0, [r6, #6] + str r0, [sp, #4] + movs r0, #0 + bl sub_08199954 + ldr r0, _081B3AF8 + ldr r1, [r0] + ldrb r2, [r6, #8] + ldrb r3, [r6, #0xa] + ldrb r0, [r6, #0xc] + str r0, [sp] + ldrb r0, [r6, #0xe] + str r0, [sp, #4] + movs r0, #0 + bl sub_08199954 + movs r0, #9 + ldrsb r0, [r4, r0] + ldr r1, [r5] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrb r0, [r0, #8] + bl ClearWindowTilemap + movs r0, #0xa + ldrsb r0, [r4, r0] + ldr r1, [r5] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrb r0, [r0, #8] + bl ClearWindowTilemap + mov r0, r8 + subs r0, #8 + adds r0, r7, r0 + ldr r1, _081B3AFC + str r1, [r0] +_081B3ADA: + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B3AE8: .4byte 0x03005B68 +_081B3AEC: .4byte 0x0203CB94 +_081B3AF0: .4byte 0x0203CBA8 +_081B3AF4: .4byte 0x0203CBBC +_081B3AF8: .4byte 0x0203CBC0 +_081B3AFC: .4byte 0x081B3B01 + thumb_func_end sub_081B39E8 + + thumb_func_start sub_081B3B00 +sub_081B3B00: @ 0x081B3B00 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _081B3B70 + adds r4, r0, r1 + adds r0, r6, #0 + bl sub_081B3960 + adds r0, r6, #0 + bl sub_081B3900 + movs r1, #0x14 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _081B3B84 + movs r2, #0x16 + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _081B3B84 + ldr r5, _081B3B74 + movs r0, #9 + ldrsb r0, [r5, r0] + ldr r4, _081B3B78 + ldr r1, [r4] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrb r0, [r0, #8] + bl PutWindowTilemap + movs r0, #0xa + ldrsb r0, [r5, r0] + ldr r1, [r4] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrb r0, [r0, #8] + bl PutWindowTilemap + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + ldr r0, _081B3B7C + ldr r0, [r0] + bl Free + ldr r0, _081B3B80 + ldr r0, [r0] + bl Free + adds r0, r6, #0 + bl sub_081B3D1C + b _081B3BA8 + .align 2, 0 +_081B3B70: .4byte 0x03005B68 +_081B3B74: .4byte 0x0203CB94 +_081B3B78: .4byte 0x0203CBA8 +_081B3B7C: .4byte 0x0203CBBC +_081B3B80: .4byte 0x0203CBC0 +_081B3B84: + ldrh r1, [r4, #0x14] + ldrh r0, [r4, #0x10] + adds r1, r1, r0 + strh r1, [r4, #0x10] + ldrh r0, [r4, #0x16] + ldrh r2, [r4, #0x12] + adds r0, r0, r2 + strh r0, [r4, #0x12] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #0 + bne _081B3B9E + strh r1, [r4, #0x14] +_081B3B9E: + movs r1, #0x12 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _081B3BA8 + strh r0, [r4, #0x16] +_081B3BA8: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081B3B00 + + thumb_func_start oamt_swap_pos +oamt_swap_pos: @ 0x081B3BB0 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + ldrb r3, [r0] + ldrb r2, [r1] + strb r2, [r0] + strb r3, [r1] + ldr r5, _081B3C78 + ldrb r2, [r0] + lsls r3, r2, #4 + adds r3, r3, r2 + lsls r3, r3, #2 + adds r3, r3, r5 + ldrh r6, [r3, #0x20] + ldrh r2, [r3, #0x22] + mov r8, r2 + ldrh r2, [r3, #0x24] + mov sb, r2 + ldrh r2, [r3, #0x26] + mov sl, r2 + ldrb r4, [r1] + lsls r2, r4, #4 + adds r2, r2, r4 + lsls r2, r2, #2 + adds r2, r2, r5 + ldrh r2, [r2, #0x20] + strh r2, [r3, #0x20] + ldrb r2, [r0] + lsls r3, r2, #4 + adds r3, r3, r2 + lsls r3, r3, #2 + adds r3, r3, r5 + ldrb r4, [r1] + lsls r2, r4, #4 + adds r2, r2, r4 + lsls r2, r2, #2 + adds r2, r2, r5 + ldrh r2, [r2, #0x22] + strh r2, [r3, #0x22] + ldrb r2, [r0] + lsls r3, r2, #4 + adds r3, r3, r2 + lsls r3, r3, #2 + adds r3, r3, r5 + ldrb r4, [r1] + lsls r2, r4, #4 + adds r2, r2, r4 + lsls r2, r2, #2 + adds r2, r2, r5 + ldrh r2, [r2, #0x24] + strh r2, [r3, #0x24] + ldrb r0, [r0] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r5 + ldrb r3, [r1] + lsls r0, r3, #4 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrh r0, [r0, #0x26] + strh r0, [r2, #0x26] + ldrb r2, [r1] + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r6, [r0, #0x20] + ldrb r2, [r1] + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r5 + mov r2, r8 + strh r2, [r0, #0x22] + ldrb r2, [r1] + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r5 + mov r2, sb + strh r2, [r0, #0x24] + ldrb r1, [r1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + mov r1, sl + strh r1, [r0, #0x26] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081B3C78: .4byte 0x020205AC + thumb_func_end oamt_swap_pos + + thumb_func_start swap_pokemon_and_oams +swap_pokemon_and_oams: @ 0x081B3C7C + push {r4, r5, r6, lr} + sub sp, #8 + ldr r1, _081B3D10 + ldr r2, _081B3D14 + movs r3, #9 + ldrsb r3, [r2, r3] + lsls r0, r3, #4 + ldr r1, [r1] + adds r0, r1, r0 + str r0, [sp] + ldrb r2, [r2, #0xa] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + lsls r0, r2, #4 + adds r0, r1, r0 + str r0, [sp, #4] + movs r1, #0x64 + adds r4, r3, #0 + muls r4, r1, r4 + ldr r0, _081B3D18 + adds r4, r4, r0 + adds r5, r2, #0 + muls r5, r1, r5 + adds r5, r5, r0 + movs r0, #0x64 + bl Alloc + adds r6, r0, #0 + adds r1, r4, #0 + movs r2, #0x64 + bl memcpy + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0x64 + bl memcpy + adds r0, r5, #0 + adds r1, r6, #0 + movs r2, #0x64 + bl memcpy + adds r0, r6, #0 + bl Free + ldr r0, [sp] + adds r0, #0xb + ldr r1, [sp, #4] + adds r1, #0xb + bl oamt_swap_pos + ldr r0, [sp] + adds r0, #0xa + ldr r1, [sp, #4] + adds r1, #0xa + bl oamt_swap_pos + ldr r0, [sp] + adds r0, #9 + ldr r1, [sp, #4] + adds r1, #9 + bl oamt_swap_pos + ldr r0, [sp] + adds r0, #0xc + ldr r1, [sp, #4] + adds r1, #0xc + bl oamt_swap_pos + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081B3D10: .4byte 0x0203CBA8 +_081B3D14: .4byte 0x0203CB94 +_081B3D18: .4byte 0x02024190 + thumb_func_end swap_pokemon_and_oams + + thumb_func_start sub_081B3D1C +sub_081B3D1C: @ 0x081B3D1C + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _081B3D64 + ldr r0, [r0] + adds r0, #0xd + bl sub_081B2CB0 + ldr r4, _081B3D68 + movs r0, #0 + strb r0, [r4, #0xb] + ldrb r0, [r4, #9] + movs r1, #0 + bl sub_081B0C9C + ldrb r0, [r4, #0xa] + strb r0, [r4, #9] + ldrb r0, [r4, #0xa] + movs r1, #1 + bl sub_081B0C9C + movs r0, #0 + bl display_pokemon_menu_message + ldr r1, _081B3D6C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B3D70 + str r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B3D64: .4byte 0x0203CB90 +_081B3D68: .4byte 0x0203CB94 +_081B3D6C: .4byte 0x03005B60 +_081B3D70: .4byte 0x081B1041 + thumb_func_end sub_081B3D1C + + thumb_func_start CursorCb_Cancel1 +CursorCb_Cancel1: @ 0x081B3D74 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r0, #5 + bl PlaySE + ldr r4, _081B3DA8 + ldr r0, [r4] + adds r0, #0xc + bl sub_081B2CB0 + ldr r0, [r4] + adds r0, #0xd + bl sub_081B2CB0 + ldr r0, _081B3DAC + ldrb r1, [r0, #8] + movs r0, #0xf + ands r0, r1 + cmp r0, #6 + bne _081B3DB0 + movs r0, #0xf + bl display_pokemon_menu_message + b _081B3DB6 + .align 2, 0 +_081B3DA8: .4byte 0x0203CB90 +_081B3DAC: .4byte 0x0203CB94 +_081B3DB0: + movs r0, #0 + bl display_pokemon_menu_message +_081B3DB6: + ldr r0, _081B3DCC + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B3DD0 + str r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B3DCC: .4byte 0x03005B60 +_081B3DD0: .4byte 0x081B1041 + thumb_func_end CursorCb_Cancel1 + + thumb_func_start CursorCb_Item +CursorCb_Item: @ 0x081B3DD4 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r0, #5 + bl PlaySE + ldr r4, _081B3E24 + ldr r0, [r4] + adds r0, #0xc + bl sub_081B2CB0 + ldr r0, [r4] + adds r0, #0xd + bl sub_081B2CB0 + ldr r0, _081B3E28 + ldr r1, _081B3E2C + ldrb r1, [r1, #9] + movs r2, #8 + bl sub_081B3054 + movs r0, #1 + bl sub_081B2E34 + movs r0, #0x18 + bl display_pokemon_menu_message + ldr r1, _081B3E30 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0xff + strh r1, [r0, #8] + ldr r1, _081B3E34 + str r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B3E24: .4byte 0x0203CB90 +_081B3E28: .4byte 0x02024190 +_081B3E2C: .4byte 0x0203CB94 +_081B3E30: .4byte 0x03005B60 +_081B3E34: .4byte 0x081B33D1 + thumb_func_end CursorCb_Item + + thumb_func_start CursorCb_Summary +CursorCb_Summary: @ 0x081B3E38 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #5 + bl PlaySE + ldr r0, _081B3E5C + ldr r1, [r0] + ldr r0, _081B3E60 + str r0, [r1, #4] + adds r0, r4, #0 + bl sub_081B0F90 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B3E5C: .4byte 0x0203CB90 +_081B3E60: .4byte 0x081B3E65 + thumb_func_end CursorCb_Summary + + thumb_func_start sub_081B3E64 +sub_081B3E64: @ 0x081B3E64 + push {lr} + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081B3E80 + ldr r2, _081B3E7C + movs r0, #2 + movs r1, #5 + bl GoToBagMenu + b _081B3E88 + .align 2, 0 +_081B3E7C: .4byte 0x081B3E91 +_081B3E80: + ldr r1, _081B3E8C + movs r0, #2 + bl sub_081C47A0 +_081B3E88: + pop {r0} + bx r0 + .align 2, 0 +_081B3E8C: .4byte 0x081B3E91 + thumb_func_end sub_081B3E64 + + thumb_func_start c2_8123744 +c2_8123744: @ 0x081B3E90 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + ldr r6, _081B3EB8 + ldrh r0, [r6] + cmp r0, #0 + bne _081B3EC4 + ldr r3, _081B3EBC + ldrb r0, [r3, #8] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + ldrb r2, [r3, #0xb] + movs r1, #0x7f + str r1, [sp] + ldr r1, _081B3EC0 + str r1, [sp, #4] + ldr r1, [r3] + b _081B3EFA + .align 2, 0 +_081B3EB8: .4byte 0x0203CB48 +_081B3EBC: .4byte 0x0203CB94 +_081B3EC0: .4byte 0x081B339D +_081B3EC4: + ldr r4, _081B3F08 + ldr r5, _081B3F0C + movs r0, #9 + ldrsb r0, [r5, r0] + movs r1, #0x64 + mov r8, r1 + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + ldr r7, _081B3F10 + adds r0, r0, r7 + movs r1, #0xc + bl GetMonData + strh r0, [r4] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _081B3F18 + ldrb r0, [r5, #8] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + ldrb r2, [r5, #0xb] + movs r1, #0x7f + str r1, [sp] + ldr r1, _081B3F14 + str r1, [sp, #4] + ldr r1, [r5] +_081B3EFA: + str r1, [sp, #8] + movs r1, #0xff + movs r3, #1 + bl InitPartyMenu + b _081B3F60 + .align 2, 0 +_081B3F08: .4byte 0x0203CBC8 +_081B3F0C: .4byte 0x0203CB94 +_081B3F10: .4byte 0x02024190 +_081B3F14: .4byte 0x081B3FF1 +_081B3F18: + ldrh r0, [r6] + bl ItemIsMail + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081B3F44 + ldrh r0, [r6] + movs r1, #1 + bl RemoveBagItem + movs r0, #9 + ldrsb r0, [r5, r0] + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + adds r0, r0, r7 + ldrh r1, [r6] + bl sub_081B1A88 + bl sub_081B41CC + b _081B3F60 +_081B3F44: + ldrb r0, [r5, #8] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + ldrb r2, [r5, #0xb] + movs r1, #0x7f + str r1, [sp] + ldr r1, _081B3F6C + str r1, [sp, #4] + ldr r1, [r5] + str r1, [sp, #8] + movs r1, #0xff + movs r3, #1 + bl InitPartyMenu +_081B3F60: + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B3F6C: .4byte 0x081B3F71 + thumb_func_end c2_8123744 + + thumb_func_start sub_081B3F70 +sub_081B3F70: @ 0x081B3F70 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _081B3FD8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081B3FCC + ldr r0, _081B3FDC + ldrh r4, [r0] + ldr r0, _081B3FE0 + mov r8, r0 + ldrb r0, [r0, #9] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r6, #0x64 + muls r0, r6, r0 + ldr r5, _081B3FE4 + adds r0, r0, r5 + adds r1, r4, #0 + movs r2, #0 + movs r3, #0 + bl sub_081B1954 + mov r1, r8 + movs r0, #9 + ldrsb r0, [r1, r0] + muls r0, r6, r0 + adds r0, r0, r5 + adds r1, r4, #0 + bl sub_081B1A88 + adds r0, r4, #0 + movs r1, #1 + bl RemoveBagItem + ldr r1, _081B3FE8 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B3FEC + str r1, [r0] +_081B3FCC: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B3FD8: .4byte 0x02037C74 +_081B3FDC: .4byte 0x0203CB48 +_081B3FE0: .4byte 0x0203CB94 +_081B3FE4: .4byte 0x02024190 +_081B3FE8: .4byte 0x03005B60 +_081B3FEC: .4byte 0x081B433D + thumb_func_end sub_081B3F70 + + thumb_func_start sub_081B3FF0 +sub_081B3FF0: @ 0x081B3FF0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _081B4030 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081B4028 + ldr r0, _081B4034 + movs r1, #9 + ldrsb r1, [r0, r1] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081B4038 + adds r0, r0, r1 + ldr r1, _081B403C + ldrh r1, [r1] + movs r2, #1 + bl sub_081B19EC + ldr r1, _081B4040 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B4044 + str r1, [r0] +_081B4028: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B4030: .4byte 0x02037C74 +_081B4034: .4byte 0x0203CB94 +_081B4038: .4byte 0x02024190 +_081B403C: .4byte 0x0203CBC8 +_081B4040: .4byte 0x03005B60 +_081B4044: .4byte 0x081B4049 + thumb_func_end sub_081B3FF0 + + thumb_func_start sub_081B4048 +sub_081B4048: @ 0x081B4048 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl sub_081B18A4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B406C + bl sub_081B2FDC + ldr r0, _081B4074 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B4078 + str r0, [r1] +_081B406C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B4074: .4byte 0x03005B60 +_081B4078: .4byte 0x081B407D + thumb_func_end sub_081B4048 + + thumb_func_start sub_081B407C +sub_081B407C: @ 0x081B407C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _081B40A2 + cmp r1, #0 + bgt _081B409C + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _081B4178 + b _081B418C +_081B409C: + cmp r1, #1 + beq _081B417E + b _081B418C +_081B40A2: + ldr r5, _081B40E4 + ldrh r0, [r5] + movs r1, #1 + bl RemoveBagItem + ldr r6, _081B40E8 + ldrh r0, [r6] + movs r1, #1 + bl AddBagItem + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081B40F8 + ldrh r0, [r5] + movs r1, #1 + bl AddBagItem + ldrh r0, [r6] + bl pokemon_item_not_removed + ldr r0, _081B40EC + movs r1, #0 + bl sub_081B182C + ldr r1, _081B40F0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B40F4 + str r1, [r0] + b _081B418C + .align 2, 0 +_081B40E4: .4byte 0x0203CB48 +_081B40E8: .4byte 0x0203CBC8 +_081B40EC: .4byte 0x02021C7C +_081B40F0: .4byte 0x03005B60 +_081B40F4: .4byte 0x081B18ED +_081B40F8: + ldrh r0, [r5] + bl ItemIsMail + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081B4138 + ldr r0, _081B4128 + movs r1, #9 + ldrsb r1, [r0, r1] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081B412C + adds r0, r0, r1 + ldrh r1, [r5] + bl sub_081B1A88 + ldr r1, _081B4130 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B4134 + str r1, [r0] + b _081B418C + .align 2, 0 +_081B4128: .4byte 0x0203CB94 +_081B412C: .4byte 0x02024190 +_081B4130: .4byte 0x03005B60 +_081B4134: .4byte 0x081B419D +_081B4138: + ldr r0, _081B4168 + movs r1, #9 + ldrsb r1, [r0, r1] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081B416C + adds r0, r0, r1 + ldrh r1, [r5] + bl sub_081B1A88 + ldrh r0, [r5] + ldrh r1, [r6] + movs r2, #1 + bl sub_081B1A38 + ldr r1, _081B4170 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B4174 + str r1, [r0] + b _081B418C + .align 2, 0 +_081B4168: .4byte 0x0203CB94 +_081B416C: .4byte 0x02024190 +_081B4170: .4byte 0x03005B60 +_081B4174: .4byte 0x081B433D +_081B4178: + movs r0, #5 + bl PlaySE +_081B417E: + ldr r0, _081B4194 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B4198 + str r0, [r1] +_081B418C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081B4194: .4byte 0x03005B60 +_081B4198: .4byte 0x081B18ED + thumb_func_end sub_081B407C + + thumb_func_start sub_081B419C +sub_081B419C: @ 0x081B419C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl sub_081B18A4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B41BC + ldr r0, _081B41C4 + ldr r1, [r0] + ldr r0, _081B41C8 + str r0, [r1, #4] + adds r0, r4, #0 + bl sub_081B0F90 +_081B41BC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B41C4: .4byte 0x0203CB90 +_081B41C8: .4byte 0x081B41CD + thumb_func_end sub_081B419C + + thumb_func_start sub_081B41CC +sub_081B41CC: @ 0x081B41CC + push {lr} + ldr r0, _081B4204 + movs r1, #9 + ldrsb r1, [r0, r1] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081B4208 + adds r0, r0, r1 + movs r1, #0x40 + bl GetMonData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081B420C + lsls r2, r0, #3 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r0, _081B4210 + adds r2, r2, r0 + ldr r1, [r1] + adds r1, r1, r2 + ldr r2, _081B4214 + movs r0, #4 + movs r3, #3 + bl DoEasyChatScreen + pop {r0} + bx r0 + .align 2, 0 +_081B4204: .4byte 0x0203CB94 +_081B4208: .4byte 0x02024190 +_081B420C: .4byte 0x03005AEC +_081B4210: .4byte 0x00002BE0 +_081B4214: .4byte 0x081B4219 + thumb_func_end sub_081B41CC + + thumb_func_start sub_081B4218 +sub_081B4218: @ 0x081B4218 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + ldr r6, _081B4284 + movs r1, #9 + ldrsb r1, [r6, r1] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _081B4288 + adds r5, r1, r0 + adds r0, r5, #0 + movs r1, #0xc + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + ldr r0, _081B428C + ldrh r7, [r0] + cmp r7, #0 + bne _081B4298 + adds r0, r5, #0 + bl TakeMailFromMon + ldr r4, _081B4290 + adds r0, r5, #0 + movs r1, #0xc + adds r2, r4, #0 + bl SetMonData + ldrh r0, [r4] + movs r1, #1 + bl RemoveBagItem + mov r0, r8 + movs r1, #1 + bl AddBagItem + ldrb r0, [r6, #8] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + ldrb r2, [r6, #0xb] + str r7, [sp] + ldr r1, _081B4294 + str r1, [sp, #4] + ldr r1, [r6] + str r1, [sp, #8] + movs r1, #0xff + movs r3, #1 + bl InitPartyMenu + b _081B42B4 + .align 2, 0 +_081B4284: .4byte 0x0203CB94 +_081B4288: .4byte 0x02024190 +_081B428C: .4byte 0x02037290 +_081B4290: .4byte 0x0203CBC8 +_081B4294: .4byte 0x081B339D +_081B4298: + ldrb r0, [r6, #8] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + ldrb r2, [r6, #0xb] + movs r1, #0x7f + str r1, [sp] + ldr r1, _081B42C0 + str r1, [sp, #4] + ldr r1, [r6] + str r1, [sp, #8] + movs r1, #0xff + movs r3, #1 + bl InitPartyMenu +_081B42B4: + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B42C0: .4byte 0x081B42C5 + thumb_func_end sub_081B4218 + + thumb_func_start sub_081B42C4 +sub_081B42C4: @ 0x081B42C4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _081B42FC + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081B432A + ldr r1, _081B4300 + ldrh r0, [r1] + cmp r0, #0 + bne _081B4310 + ldr r0, _081B4304 + movs r1, #9 + ldrsb r1, [r0, r1] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081B4308 + adds r0, r0, r1 + ldr r1, _081B430C + ldrh r1, [r1] + movs r2, #0 + movs r3, #0 + bl sub_081B1954 + b _081B431C + .align 2, 0 +_081B42FC: .4byte 0x02037C74 +_081B4300: .4byte 0x0203CBC8 +_081B4304: .4byte 0x0203CB94 +_081B4308: .4byte 0x02024190 +_081B430C: .4byte 0x0203CB48 +_081B4310: + ldr r0, _081B4330 + ldrh r0, [r0] + ldrh r1, [r1] + movs r2, #0 + bl sub_081B1A38 +_081B431C: + ldr r0, _081B4334 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B4338 + str r0, [r1] +_081B432A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B4330: .4byte 0x0203CB48 +_081B4334: .4byte 0x03005B60 +_081B4338: .4byte 0x081B433D + thumb_func_end sub_081B42C4 + + thumb_func_start sub_081B433C +sub_081B433C: @ 0x081B433C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r4, _081B4398 + movs r1, #9 + ldrsb r1, [r4, r1] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _081B439C + adds r6, r1, r0 + bl sub_081B18A4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B43BC + ldr r5, _081B43A0 + movs r0, #9 + ldrsb r0, [r4, r0] + lsls r0, r0, #4 + ldr r1, [r5] + adds r1, r1, r0 + adds r0, r6, #0 + bl sub_081B5934 + ldrb r1, [r4, #8] + movs r0, #0xf + ands r0, r1 + cmp r0, #0xc + bne _081B43B6 + adds r0, r6, #0 + movs r1, #0xc + bl GetMonData + cmp r0, #0 + beq _081B43A4 + movs r0, #9 + ldrsb r0, [r4, r0] + lsls r0, r0, #4 + ldr r1, [r5] + adds r1, r1, r0 + movs r0, #0xb + movs r2, #1 + bl DisplayPartyPokemonOtherText + b _081B43B6 + .align 2, 0 +_081B4398: .4byte 0x0203CB94 +_081B439C: .4byte 0x02024190 +_081B43A0: .4byte 0x0203CBA8 +_081B43A4: + movs r0, #9 + ldrsb r0, [r4, r0] + lsls r0, r0, #4 + ldr r1, [r5] + adds r1, r1, r0 + movs r0, #0xc + movs r2, #1 + bl DisplayPartyPokemonOtherText +_081B43B6: + adds r0, r7, #0 + bl sub_081B18EC +_081B43BC: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081B433C + + thumb_func_start CursorCb_TakeItem +CursorCb_TakeItem: @ 0x081B43C4 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _081B441C + movs r1, #9 + ldrsb r1, [r0, r1] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _081B4420 + adds r5, r1, r0 + adds r0, r5, #0 + movs r1, #0xc + bl GetMonData + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + movs r0, #5 + bl PlaySE + ldr r4, _081B4424 + ldr r0, [r4] + adds r0, #0xc + bl sub_081B2CB0 + ldr r0, [r4] + adds r0, #0xd + bl sub_081B2CB0 + adds r0, r5, #0 + bl TryTakeMonItem + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _081B4428 + cmp r0, #1 + beq _081B444C + adds r0, r5, #0 + adds r1, r6, #0 + movs r2, #1 + bl sub_081B19A0 + b _081B445A + .align 2, 0 +_081B441C: .4byte 0x0203CB94 +_081B4420: .4byte 0x02024190 +_081B4424: .4byte 0x0203CB90 +_081B4428: + ldr r1, _081B4440 + adds r0, r5, #0 + bl GetMonNickname + ldr r4, _081B4444 + ldr r1, _081B4448 + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + b _081B4454 + .align 2, 0 +_081B4440: .4byte 0x02021C40 +_081B4444: .4byte 0x02021C7C +_081B4448: .4byte 0x085C9CAD +_081B444C: + adds r0, r6, #0 + bl pokemon_item_not_removed + ldr r0, _081B4474 +_081B4454: + movs r1, #1 + bl sub_081B182C +_081B445A: + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + ldr r0, _081B4478 + lsls r1, r7, #2 + adds r1, r1, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B447C + str r0, [r1] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B4474: .4byte 0x02021C7C +_081B4478: .4byte 0x03005B60 +_081B447C: .4byte 0x081B433D + thumb_func_end CursorCb_TakeItem + + thumb_func_start CursorCb_Toss +CursorCb_Toss: @ 0x081B4480 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _081B44E4 + movs r1, #9 + ldrsb r1, [r0, r1] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _081B44E8 + adds r7, r1, r0 + adds r0, r7, #0 + movs r1, #0xc + bl GetMonData + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + movs r0, #5 + bl PlaySE + ldr r4, _081B44EC + ldr r0, [r4] + adds r0, #0xc + bl sub_081B2CB0 + ldr r0, [r4] + adds r0, #0xd + bl sub_081B2CB0 + cmp r5, #0 + bne _081B4504 + ldr r1, _081B44F0 + adds r0, r7, #0 + bl GetMonNickname + ldr r4, _081B44F4 + ldr r1, _081B44F8 + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + movs r1, #1 + bl sub_081B182C + ldr r1, _081B44FC + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B4500 + b _081B452A + .align 2, 0 +_081B44E4: .4byte 0x0203CB94 +_081B44E8: .4byte 0x02024190 +_081B44EC: .4byte 0x0203CB90 +_081B44F0: .4byte 0x02021C40 +_081B44F4: .4byte 0x02021C7C +_081B44F8: .4byte 0x085C9CAD +_081B44FC: .4byte 0x03005B60 +_081B4500: .4byte 0x081B433D +_081B4504: + ldr r1, _081B4534 + adds r0, r5, #0 + bl CopyItemName + ldr r4, _081B4538 + ldr r1, _081B453C + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + movs r1, #1 + bl sub_081B182C + ldr r1, _081B4540 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B4544 +_081B452A: + str r1, [r0] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B4534: .4byte 0x02021C40 +_081B4538: .4byte 0x02021C7C +_081B453C: .4byte 0x085CA007 +_081B4540: .4byte 0x03005B60 +_081B4544: .4byte 0x081B4549 + thumb_func_end CursorCb_Toss + + thumb_func_start sub_081B4548 +sub_081B4548: @ 0x081B4548 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl sub_081B18A4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B456C + bl sub_081B2FDC + ldr r0, _081B4574 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B4578 + str r0, [r1] +_081B456C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B4574: .4byte 0x03005B60 +_081B4578: .4byte 0x081B457D + thumb_func_end sub_081B4548 + + thumb_func_start sub_081B457C +sub_081B457C: @ 0x081B457C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _081B45AC + movs r1, #9 + ldrsb r1, [r0, r1] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _081B45B0 + adds r4, r1, r0 + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _081B45BA + cmp r1, #0 + bgt _081B45B4 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _081B4604 + b _081B4618 + .align 2, 0 +_081B45AC: .4byte 0x0203CB94 +_081B45B0: .4byte 0x02024190 +_081B45B4: + cmp r1, #1 + beq _081B460A + b _081B4618 +_081B45BA: + adds r0, r4, #0 + movs r1, #0xc + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _081B45F0 + bl CopyItemName + ldr r4, _081B45F4 + ldr r1, _081B45F8 + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + movs r1, #0 + bl sub_081B182C + ldr r1, _081B45FC + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B4600 + str r1, [r0] + b _081B4618 + .align 2, 0 +_081B45F0: .4byte 0x02021C40 +_081B45F4: .4byte 0x02021C7C +_081B45F8: .4byte 0x085CA018 +_081B45FC: .4byte 0x03005B60 +_081B4600: .4byte 0x081B4629 +_081B4604: + movs r0, #5 + bl PlaySE +_081B460A: + ldr r0, _081B4620 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B4624 + str r0, [r1] +_081B4618: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B4620: .4byte 0x03005B60 +_081B4624: .4byte 0x081B18ED + thumb_func_end sub_081B457C + + thumb_func_start sub_081B4628 +sub_081B4628: @ 0x081B4628 + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r6, _081B4694 + movs r1, #9 + ldrsb r1, [r6, r1] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _081B4698 + adds r5, r1, r0 + bl sub_081B18A4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B468C + movs r1, #0 + mov r0, sp + strh r1, [r0] + adds r0, r5, #0 + movs r1, #0xc + mov r2, sp + bl SetMonData + ldr r4, _081B469C + movs r0, #9 + ldrsb r0, [r6, r0] + lsls r0, r0, #4 + ldr r1, [r4] + adds r1, r1, r0 + adds r0, r5, #0 + bl sub_081B5934 + movs r0, #9 + ldrsb r0, [r6, r0] + lsls r0, r0, #4 + ldr r1, [r4] + adds r1, r1, r0 + movs r0, #0xc + movs r2, #1 + bl DisplayPartyPokemonOtherText + ldr r1, _081B46A0 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B46A4 + str r1, [r0] +_081B468C: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B4694: .4byte 0x0203CB94 +_081B4698: .4byte 0x02024190 +_081B469C: .4byte 0x0203CBA8 +_081B46A0: .4byte 0x03005B60 +_081B46A4: .4byte 0x081B18ED + thumb_func_end sub_081B4628 + + thumb_func_start CursorCb_Mail +CursorCb_Mail: @ 0x081B46A8 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r0, #5 + bl PlaySE + ldr r4, _081B46F8 + ldr r0, [r4] + adds r0, #0xc + bl sub_081B2CB0 + ldr r0, [r4] + adds r0, #0xd + bl sub_081B2CB0 + ldr r0, _081B46FC + ldr r1, _081B4700 + ldrb r1, [r1, #9] + movs r2, #9 + bl sub_081B3054 + movs r0, #2 + bl sub_081B2E34 + movs r0, #0x19 + bl display_pokemon_menu_message + ldr r1, _081B4704 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0xff + strh r1, [r0, #8] + ldr r1, _081B4708 + str r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B46F8: .4byte 0x0203CB90 +_081B46FC: .4byte 0x02024190 +_081B4700: .4byte 0x0203CB94 +_081B4704: .4byte 0x03005B60 +_081B4708: .4byte 0x081B33D1 + thumb_func_end CursorCb_Mail + + thumb_func_start CursorCb_Read +CursorCb_Read: @ 0x081B470C + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #5 + bl PlaySE + ldr r0, _081B4730 + ldr r1, [r0] + ldr r0, _081B4734 + str r0, [r1, #4] + adds r0, r4, #0 + bl sub_081B0F90 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B4730: .4byte 0x0203CB90 +_081B4734: .4byte 0x081B4739 + thumb_func_end CursorCb_Read + + thumb_func_start sub_081B4738 +sub_081B4738: @ 0x081B4738 + push {lr} + ldr r0, _081B476C + movs r1, #9 + ldrsb r1, [r0, r1] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081B4770 + adds r0, r0, r1 + movs r1, #0x40 + bl GetMonData + ldr r2, _081B4774 + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _081B4778 + adds r1, r1, r0 + ldr r0, [r2] + adds r0, r0, r1 + ldr r1, _081B477C + movs r2, #1 + bl ReadMail + pop {r0} + bx r0 + .align 2, 0 +_081B476C: .4byte 0x0203CB94 +_081B4770: .4byte 0x02024190 +_081B4774: .4byte 0x03005AEC +_081B4778: .4byte 0x00002BE0 +_081B477C: .4byte 0x081B4781 + thumb_func_end sub_081B4738 + + thumb_func_start sub_081B4780 +sub_081B4780: @ 0x081B4780 + push {lr} + sub sp, #0xc + ldr r2, _081B47B4 + ldrb r0, [r2, #8] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #8] + ldr r3, _081B47B8 + ldrb r0, [r3, #8] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + ldrb r2, [r3, #0xb] + movs r1, #0x15 + str r1, [sp] + ldr r1, _081B47BC + str r1, [sp, #4] + ldr r1, [r3] + str r1, [sp, #8] + movs r1, #0xff + movs r3, #1 + bl InitPartyMenu + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_081B47B4: .4byte 0x02037C74 +_081B47B8: .4byte 0x0203CB94 +_081B47BC: .4byte 0x081B339D + thumb_func_end sub_081B4780 + + thumb_func_start CursorCb_TakeMail +CursorCb_TakeMail: @ 0x081B47C0 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #5 + bl PlaySE + ldr r5, _081B47FC + ldr r0, [r5] + adds r0, #0xd + bl sub_081B2CB0 + ldr r0, [r5] + adds r0, #0xc + bl sub_081B2CB0 + ldr r0, _081B4800 + movs r1, #1 + bl sub_081B182C + ldr r1, _081B4804 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B4808 + str r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B47FC: .4byte 0x0203CB90 +_081B4800: .4byte 0x085C9BF1 +_081B4804: .4byte 0x03005B60 +_081B4808: .4byte 0x081B480D + thumb_func_end CursorCb_TakeMail + + thumb_func_start sub_081B480C +sub_081B480C: @ 0x081B480C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl sub_081B18A4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B4830 + bl sub_081B2FDC + ldr r0, _081B4838 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B483C + str r0, [r1] +_081B4830: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B4838: .4byte 0x03005B60 +_081B483C: .4byte 0x081B4841 + thumb_func_end sub_081B480C + + thumb_func_start sub_081B4840 +sub_081B4840: @ 0x081B4840 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _081B4866 + cmp r1, #0 + bgt _081B4860 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _081B48D0 + b _081B48EC +_081B4860: + cmp r1, #1 + beq _081B48D6 + b _081B48EC +_081B4866: + ldr r0, _081B4898 + movs r1, #9 + ldrsb r1, [r0, r1] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081B489C + adds r0, r0, r1 + bl TakeMailFromMon2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _081B48AC + ldr r0, _081B48A0 + movs r1, #0 + bl sub_081B182C + ldr r1, _081B48A4 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B48A8 + b _081B48EA + .align 2, 0 +_081B4898: .4byte 0x0203CB94 +_081B489C: .4byte 0x02024190 +_081B48A0: .4byte 0x085C9C0A +_081B48A4: .4byte 0x03005B60 +_081B48A8: .4byte 0x081B433D +_081B48AC: + ldr r0, _081B48C4 + movs r1, #0 + bl sub_081B182C + ldr r1, _081B48C8 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B48CC + b _081B48EA + .align 2, 0 +_081B48C4: .4byte 0x085C9C20 +_081B48C8: .4byte 0x03005B60 +_081B48CC: .4byte 0x081B18ED +_081B48D0: + movs r0, #5 + bl PlaySE +_081B48D6: + ldr r0, _081B48F4 + movs r1, #1 + bl sub_081B182C + ldr r1, _081B48F8 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B48FC +_081B48EA: + str r1, [r0] +_081B48EC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B48F4: .4byte 0x085C9C39 +_081B48F8: .4byte 0x03005B60 +_081B48FC: .4byte 0x081B4901 + thumb_func_end sub_081B4840 + + thumb_func_start sub_081B4900 +sub_081B4900: @ 0x081B4900 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl sub_081B18A4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B4924 + bl sub_081B2FDC + ldr r0, _081B492C + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B4930 + str r0, [r1] +_081B4924: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B492C: .4byte 0x03005B60 +_081B4930: .4byte 0x081B4935 + thumb_func_end sub_081B4900 + + thumb_func_start sub_081B4934 +sub_081B4934: @ 0x081B4934 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _081B495E + cmp r1, #0 + bgt _081B4958 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _081B49F0 + b _081B4A04 +_081B4958: + cmp r1, #1 + beq _081B49F6 + b _081B4A04 +_081B495E: + ldr r0, _081B49B0 + mov r8, r0 + ldrb r0, [r0, #9] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r7, #0x64 + muls r0, r7, r0 + ldr r6, _081B49B4 + adds r0, r0, r6 + movs r1, #0xc + bl GetMonData + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r4, #0 + movs r1, #1 + bl AddBagItem + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081B49C4 + mov r1, r8 + movs r0, #9 + ldrsb r0, [r1, r0] + muls r0, r7, r0 + adds r0, r0, r6 + bl TakeMailFromMon + ldr r0, _081B49B8 + movs r1, #0 + bl sub_081B182C + ldr r1, _081B49BC + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B49C0 + str r1, [r0] + b _081B4A04 + .align 2, 0 +_081B49B0: .4byte 0x0203CB94 +_081B49B4: .4byte 0x02024190 +_081B49B8: .4byte 0x085C9CDA +_081B49BC: .4byte 0x03005B60 +_081B49C0: .4byte 0x081B433D +_081B49C4: + adds r0, r4, #0 + bl pokemon_item_not_removed + ldr r0, _081B49E4 + movs r1, #0 + bl sub_081B182C + ldr r1, _081B49E8 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B49EC + str r1, [r0] + b _081B4A04 + .align 2, 0 +_081B49E4: .4byte 0x02021C7C +_081B49E8: .4byte 0x03005B60 +_081B49EC: .4byte 0x081B18ED +_081B49F0: + movs r0, #5 + bl PlaySE +_081B49F6: + ldr r0, _081B4A10 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B4A14 + str r0, [r1] +_081B4A04: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B4A10: .4byte 0x03005B60 +_081B4A14: .4byte 0x081B18ED + thumb_func_end sub_081B4934 + + thumb_func_start CursorCb_Cancel2 +CursorCb_Cancel2: @ 0x081B4A18 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r5, _081B4A78 + movs r1, #9 + ldrsb r1, [r5, r1] + movs r0, #0x64 + muls r0, r1, r0 + ldr r6, _081B4A7C + adds r7, r0, r6 + movs r0, #5 + bl PlaySE + ldr r4, _081B4A80 + ldr r0, [r4] + adds r0, #0xc + bl sub_081B2CB0 + ldr r0, [r4] + adds r0, #0xd + bl sub_081B2CB0 + ldrb r4, [r5, #9] + adds r0, r7, #0 + bl sub_081B31DC + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_081B3054 + ldrb r1, [r5, #8] + movs r0, #0xf + ands r0, r1 + cmp r0, #0xc + beq _081B4A84 + movs r0, #0 + bl sub_081B2E34 + movs r0, #0x15 + bl display_pokemon_menu_message + b _081B4AA2 + .align 2, 0 +_081B4A78: .4byte 0x0203CB94 +_081B4A7C: .4byte 0x02024190 +_081B4A80: .4byte 0x0203CB90 +_081B4A84: + movs r0, #1 + bl sub_081B2E34 + adds r0, r7, #0 + movs r1, #0xc + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _081B4AC0 + bl CopyItemName + movs r0, #0x1a + bl display_pokemon_menu_message +_081B4AA2: + ldr r1, _081B4AC4 + mov r2, r8 + lsls r0, r2, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0xff + strh r1, [r0, #8] + ldr r1, _081B4AC8 + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B4AC0: .4byte 0x02021C54 +_081B4AC4: .4byte 0x03005B60 +_081B4AC8: .4byte 0x081B33D1 + thumb_func_end CursorCb_Cancel2 + + thumb_func_start CursorCb_SendMon +CursorCb_SendMon: @ 0x081B4ACC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #5 + bl PlaySE + ldr r5, _081B4AF8 + ldr r0, [r5] + adds r0, #0xc + bl sub_081B2CB0 + bl sub_081B871C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081B4AFC + adds r0, r4, #0 + bl sub_081B0F90 + b _081B4B1A + .align 2, 0 +_081B4AF8: .4byte 0x0203CB90 +_081B4AFC: + ldr r0, [r5] + adds r0, #0xd + bl sub_081B2CB0 + ldr r0, _081B4B20 + movs r1, #1 + bl sub_081B182C + ldr r1, _081B4B24 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B4B28 + str r1, [r0] +_081B4B1A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B4B20: .4byte 0x02021C7C +_081B4B24: .4byte 0x03005B60 +_081B4B28: .4byte 0x081B18ED + thumb_func_end CursorCb_SendMon + + thumb_func_start CursorCb_Enter +CursorCb_Enter: @ 0x081B4B2C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r4, _081B4BB4 + ldr r0, [r4] + adds r0, #0xc + bl sub_081B2CB0 + ldr r0, [r4] + adds r0, #0xd + bl sub_081B2CB0 + bl sub_081B84D0 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r5, #0 + cmp r5, r6 + bhs _081B4BD6 + ldr r2, _081B4BB8 + ldr r1, _081B4BBC + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + mov r8, r0 +_081B4B66: + ldr r0, _081B4BC0 + adds r4, r5, r0 + ldrb r0, [r4] + cmp r0, #0 + bne _081B4BCC + movs r0, #5 + str r2, [sp] + bl PlaySE + ldr r2, [sp] + ldrb r0, [r2, #9] + adds r0, #1 + strb r0, [r4] + adds r0, r5, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081B4BC4 + ldrb r2, [r2, #9] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + lsls r2, r2, #4 + ldr r1, [r1] + adds r1, r1, r2 + movs r2, #1 + bl DisplayPartyPokemonOtherText + subs r0, r6, #1 + cmp r5, r0 + bne _081B4BA4 + bl sub_081B4C28 +_081B4BA4: + movs r0, #0 + bl display_pokemon_menu_message + ldr r0, _081B4BC8 + mov r1, r8 + str r0, [r1] + b _081B4C08 + .align 2, 0 +_081B4BB4: .4byte 0x0203CB90 +_081B4BB8: .4byte 0x0203CB94 +_081B4BBC: .4byte 0x03005B60 +_081B4BC0: .4byte 0x0203CBC4 +_081B4BC4: .4byte 0x0203CBA8 +_081B4BC8: .4byte 0x081B1041 +_081B4BCC: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, r6 + blo _081B4B66 +_081B4BD6: + ldr r0, _081B4C14 + adds r1, r6, #0 + movs r2, #0 + movs r3, #1 + bl ConvertIntToDecimalStringN + ldr r4, _081B4C18 + ldr r1, _081B4C1C + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #0x20 + bl PlaySE + adds r0, r4, #0 + movs r1, #1 + bl sub_081B182C + ldr r1, _081B4C20 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B4C24 + str r1, [r0] +_081B4C08: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B4C14: .4byte 0x02021C40 +_081B4C18: .4byte 0x02021C7C +_081B4C1C: .4byte 0x085C9BD5 +_081B4C20: .4byte 0x03005B60 +_081B4C24: .4byte 0x081B18ED + thumb_func_end CursorCb_Enter + + thumb_func_start sub_081B4C28 +sub_081B4C28: @ 0x081B4C28 + push {r4, lr} + ldr r4, _081B4C44 + ldrb r0, [r4, #9] + movs r1, #0 + bl sub_081B0C9C + movs r0, #6 + strb r0, [r4, #9] + movs r1, #1 + bl sub_081B0C9C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B4C44: .4byte 0x0203CB94 + thumb_func_end sub_081B4C28 + + thumb_func_start CursorCb_NoEntry +CursorCb_NoEntry: @ 0x081B4C48 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r0, #5 + bl PlaySE + ldr r4, _081B4CB4 + ldr r0, [r4] + adds r0, #0xc + bl sub_081B2CB0 + ldr r0, [r4] + adds r0, #0xd + bl sub_081B2CB0 + bl sub_081B84D0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r4, #0 + cmp r4, r5 + bhs _081B4CCA + ldr r6, _081B4CB8 + subs r2, r5, #1 + adds r7, r6, #0 + ldr r3, _081B4CBC +_081B4C82: + adds r0, r4, r6 + ldrb r1, [r0] + movs r0, #9 + ldrsb r0, [r3, r0] + adds r0, #1 + cmp r1, r0 + bne _081B4CC0 + adds r0, r4, #0 + adds r4, r2, #0 + cmp r0, r4 + bge _081B4CAC + adds r3, r7, #0 +_081B4C9A: + adds r2, r0, r3 + adds r1, r0, #1 + adds r0, r1, r3 + ldrb r0, [r0] + strb r0, [r2] + lsls r1, r1, #0x18 + lsrs r0, r1, #0x18 + cmp r0, r4 + blt _081B4C9A +_081B4CAC: + adds r1, r0, r6 + movs r0, #0 + strb r0, [r1] + b _081B4CCA + .align 2, 0 +_081B4CB4: .4byte 0x0203CB90 +_081B4CB8: .4byte 0x0203CBC4 +_081B4CBC: .4byte 0x0203CB94 +_081B4CC0: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r5 + blo _081B4C82 +_081B4CCA: + ldr r6, _081B4D38 + ldr r0, _081B4D3C + ldrb r0, [r0, #9] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #4 + ldr r1, [r6] + adds r1, r1, r0 + movs r0, #1 + movs r2, #1 + bl DisplayPartyPokemonOtherText + movs r4, #0 + subs r5, #1 + mov r0, r8 + lsls r7, r0, #2 + cmp r4, r5 + bge _081B4D18 +_081B4CEE: + ldr r0, _081B4D40 + adds r1, r4, r0 + ldrb r0, [r1] + cmp r0, #0 + beq _081B4D0E + adds r0, r4, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r2, [r1] + lsls r2, r2, #4 + subs r2, #0x10 + ldr r1, [r6] + adds r1, r1, r2 + movs r2, #1 + bl DisplayPartyPokemonOtherText +_081B4D0E: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r5 + blt _081B4CEE +_081B4D18: + movs r0, #0 + bl display_pokemon_menu_message + ldr r0, _081B4D44 + mov r2, r8 + adds r1, r7, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B4D48 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B4D38: .4byte 0x0203CBA8 +_081B4D3C: .4byte 0x0203CB94 +_081B4D40: .4byte 0x0203CBC4 +_081B4D44: .4byte 0x03005B60 +_081B4D48: .4byte 0x081B1041 + thumb_func_end CursorCb_NoEntry + + thumb_func_start CursorCb_Store +CursorCb_Store: @ 0x081B4D4C + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #5 + bl PlaySE + adds r0, r4, #0 + bl sub_081B0F90 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CursorCb_Store + + thumb_func_start CursorCb_Register +CursorCb_Register: @ 0x081B4D68 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _081B4DF4 + mov sb, r0 + ldrb r0, [r0, #9] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #0x64 + mov r8, r1 + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + ldr r4, _081B4DF8 + adds r0, r0, r4 + movs r1, #0x41 + bl GetMonData + adds r6, r0, #0 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + mov r1, sb + movs r0, #9 + ldrsb r0, [r1, r0] + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + adds r0, r0, r4 + movs r1, #0xb + bl GetMonData + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + mov r1, sb + movs r0, #9 + ldrsb r0, [r1, r0] + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + adds r0, r0, r4 + movs r1, #0x50 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl sub_0800F29C + ldr r0, [r0] + adds r1, r6, #0 + adds r2, r5, #0 + adds r3, r4, #0 + bl sub_0807A340 + cmp r0, #1 + beq _081B4DFC + cmp r0, #2 + beq _081B4E10 + movs r0, #5 + bl PlaySE + adds r0, r7, #0 + bl sub_081B0F90 + b _081B4E50 + .align 2, 0 +_081B4DF4: .4byte 0x0203CB94 +_081B4DF8: .4byte 0x02024190 +_081B4DFC: + ldr r0, _081B4E08 + ldr r1, _081B4E0C + bl StringExpandPlaceholders + b _081B4E18 + .align 2, 0 +_081B4E08: .4byte 0x02021C7C +_081B4E0C: .4byte 0x085CA2B4 +_081B4E10: + ldr r0, _081B4E5C + ldr r1, _081B4E60 + bl StringExpandPlaceholders +_081B4E18: + movs r0, #0x20 + bl PlaySE + ldr r4, _081B4E64 + ldr r0, [r4] + adds r0, #0xc + bl sub_081B2CB0 + ldr r0, [r4] + adds r0, #0xd + bl sub_081B2CB0 + ldr r4, _081B4E5C + ldr r1, _081B4E68 + adds r0, r4, #0 + bl StringAppend + adds r0, r4, #0 + movs r1, #1 + bl sub_081B182C + ldr r1, _081B4E6C + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B4E70 + str r1, [r0] +_081B4E50: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B4E5C: .4byte 0x02021C7C +_081B4E60: .4byte 0x085CA2CC +_081B4E64: .4byte 0x0203CB90 +_081B4E68: .4byte 0x085CA273 +_081B4E6C: .4byte 0x03005B60 +_081B4E70: .4byte 0x081B18ED + thumb_func_end CursorCb_Register + + thumb_func_start CursorCb_Trade1 +CursorCb_Trade1: @ 0x081B4E74 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _081B4F3C + mov r8, r0 + ldrb r0, [r0, #9] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r6, #0x64 + muls r0, r6, r0 + ldr r4, _081B4F40 + adds r0, r0, r4 + movs r1, #0x41 + bl GetMonData + mov sb, r0 + mov r1, sb + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sb, r1 + mov r1, r8 + movs r0, #9 + ldrsb r0, [r1, r0] + muls r0, r6, r0 + adds r0, r0, r4 + movs r1, #0xb + bl GetMonData + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + mov r1, r8 + movs r0, #9 + ldrsb r0, [r1, r0] + muls r0, r6, r0 + adds r0, r0, r4 + movs r1, #0x50 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl sub_0800F29C + ldr r0, [r0] + ldr r1, _081B4F44 + ldr r1, [r1] + ldr r2, _081B4F48 + ldrh r3, [r2] + ldr r2, _081B4F4C + ldrb r2, [r2] + str r2, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + mov r2, sb + bl sub_0807A250 + cmp r0, #0 + beq _081B4F68 + ldr r5, _081B4F50 + ldr r1, _081B4F54 + subs r0, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r5, #0 + bl StringExpandPlaceholders + movs r0, #0x20 + bl PlaySE + ldr r4, _081B4F58 + ldr r0, [r4] + adds r0, #0xc + bl sub_081B2CB0 + ldr r0, [r4] + adds r0, #0xd + bl sub_081B2CB0 + ldr r1, _081B4F5C + adds r0, r5, #0 + bl StringAppend + adds r0, r5, #0 + movs r1, #1 + bl sub_081B182C + ldr r1, _081B4F60 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B4F64 + str r1, [r0] + b _081B4F74 + .align 2, 0 +_081B4F3C: .4byte 0x0203CB94 +_081B4F40: .4byte 0x02024190 +_081B4F44: .4byte 0x020228EC +_081B4F48: .4byte 0x020228F0 +_081B4F4C: .4byte 0x020228F2 +_081B4F50: .4byte 0x02021C7C +_081B4F54: .4byte 0x085E16C4 +_081B4F58: .4byte 0x0203CB90 +_081B4F5C: .4byte 0x085CA273 +_081B4F60: .4byte 0x03005B60 +_081B4F64: .4byte 0x081B18ED +_081B4F68: + movs r0, #5 + bl PlaySE + adds r0, r7, #0 + bl sub_081B0F90 +_081B4F74: + add sp, #0xc + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CursorCb_Trade1 + + thumb_func_start CursorCb_Trade2 +CursorCb_Trade2: @ 0x081B4F84 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r4, _081B4FBC + ldr r0, [r4] + adds r0, #0xc + bl sub_081B2CB0 + ldr r0, [r4] + adds r0, #0xd + bl sub_081B2CB0 + ldr r0, _081B4FC0 + ldr r1, _081B4FC4 + ldrb r1, [r1, #9] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl sub_0807A388 + cmp r0, #2 + beq _081B4FE0 + cmp r0, #2 + bgt _081B4FC8 + cmp r0, #1 + beq _081B4FCE + b _081B5008 + .align 2, 0 +_081B4FBC: .4byte 0x0203CB90 +_081B4FC0: .4byte 0x02024190 +_081B4FC4: .4byte 0x0203CB94 +_081B4FC8: + cmp r0, #3 + beq _081B4FF4 + b _081B5008 +_081B4FCE: + ldr r0, _081B4FD8 + ldr r1, _081B4FDC + bl StringExpandPlaceholders + b _081B5060 + .align 2, 0 +_081B4FD8: .4byte 0x02021C7C +_081B4FDC: .4byte 0x085CA294 +_081B4FE0: + ldr r0, _081B4FEC + ldr r1, _081B4FF0 + bl StringExpandPlaceholders + b _081B5060 + .align 2, 0 +_081B4FEC: .4byte 0x02021C7C +_081B4FF0: .4byte 0x085CA2B4 +_081B4FF4: + ldr r0, _081B5000 + ldr r1, _081B5004 + bl StringExpandPlaceholders + b _081B5060 + .align 2, 0 +_081B5000: .4byte 0x02021C7C +_081B5004: .4byte 0x085CA2CC +_081B5008: + movs r0, #5 + bl PlaySE + ldr r0, _081B5044 + movs r1, #9 + ldrsb r1, [r0, r1] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081B5048 + adds r0, r0, r1 + ldr r1, _081B504C + bl GetMonNickname + ldr r4, _081B5050 + ldr r1, _081B5054 + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + movs r1, #1 + bl sub_081B182C + ldr r1, _081B5058 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B505C + b _081B5084 + .align 2, 0 +_081B5044: .4byte 0x0203CB94 +_081B5048: .4byte 0x02024190 +_081B504C: .4byte 0x02021C40 +_081B5050: .4byte 0x02021C7C +_081B5054: .4byte 0x085CA276 +_081B5058: .4byte 0x03005B60 +_081B505C: .4byte 0x081B509D +_081B5060: + movs r0, #0x20 + bl PlaySE + ldr r4, _081B508C + ldr r1, _081B5090 + adds r0, r4, #0 + bl StringAppend + adds r0, r4, #0 + movs r1, #1 + bl sub_081B182C + ldr r1, _081B5094 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B5098 +_081B5084: + str r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B508C: .4byte 0x02021C7C +_081B5090: .4byte 0x085CA273 +_081B5094: .4byte 0x03005B60 +_081B5098: .4byte 0x081B18ED + thumb_func_end CursorCb_Trade2 + + thumb_func_start sub_081B509C +sub_081B509C: @ 0x081B509C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl sub_081B18A4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B50C0 + bl sub_081B2FDC + ldr r0, _081B50C8 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B50CC + str r0, [r1] +_081B50C0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B50C8: .4byte 0x03005B60 +_081B50CC: .4byte 0x081B50D1 + thumb_func_end sub_081B509C + + thumb_func_start sub_081B50D0 +sub_081B50D0: @ 0x081B50D0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _081B50F6 + cmp r1, #0 + bgt _081B50F0 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _081B50FE + b _081B510A +_081B50F0: + cmp r1, #1 + beq _081B5104 + b _081B510A +_081B50F6: + adds r0, r4, #0 + bl sub_081B0F90 + b _081B510A +_081B50FE: + movs r0, #5 + bl PlaySE +_081B5104: + adds r0, r4, #0 + bl sub_081B18EC +_081B510A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_081B50D0 + + thumb_func_start CursorCb_FieldMove +CursorCb_FieldMove: @ 0x081B5110 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + bl Menu_GetCursorPos + ldr r5, _081B517C + ldr r1, [r5] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, #0xf + adds r1, r1, r0 + ldrb r0, [r1] + subs r0, #0x13 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #5 + bl PlaySE + ldr r1, _081B5180 + lsls r0, r4, #3 + adds r7, r0, r1 + ldr r0, [r7] + cmp r0, #0 + bne _081B5142 + b _081B5304 +_081B5142: + ldr r0, [r5] + adds r0, #0xc + bl sub_081B2CB0 + ldr r0, [r5] + adds r0, #0xd + bl sub_081B2CB0 + bl sub_081221B8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B5166 + bl InUnionRoom + cmp r0, #1 + bne _081B5188 +_081B5166: + adds r0, r4, #0 + subs r0, #0xb + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _081B5184 + movs r0, #0xd + bl display_pokemon_menu_message + b _081B52F6 + .align 2, 0 +_081B517C: .4byte 0x0203CB90 +_081B5180: .4byte 0x085E1654 +_081B5184: + ldrb r0, [r7, #4] + b _081B52F2 +_081B5188: + cmp r4, #7 + bhi _081B51C4 + ldr r1, _081B51B4 + adds r0, r4, r1 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B51C4 + ldr r0, _081B51B8 + movs r1, #1 + bl sub_081B182C + ldr r1, _081B51BC + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B51C0 + str r1, [r0] + b _081B5304 + .align 2, 0 +_081B51B4: .4byte 0x00000867 +_081B51B8: .4byte 0x085C9BB7 +_081B51BC: .4byte 0x03005B60 +_081B51C0: .4byte 0x081B18ED +_081B51C4: + ldr r1, _081B51EC + lsls r0, r4, #3 + adds r5, r0, r1 + ldr r0, [r5] + bl _call_via_r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B51DA + b _081B52DC +_081B51DA: + subs r0, r4, #5 + cmp r0, #7 + bhi _081B52C4 + lsls r0, r0, #2 + ldr r1, _081B51F0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081B51EC: .4byte 0x085E1654 +_081B51F0: .4byte 0x081B51F4 +_081B51F4: @ jump table + .4byte _081B52B4 @ case 0 + .4byte _081B52C4 @ case 1 + .4byte _081B52C4 @ case 2 + .4byte _081B521C @ case 3 + .4byte _081B5258 @ case 4 + .4byte _081B52C4 @ case 5 + .4byte _081B5214 @ case 6 + .4byte _081B5214 @ case 7 +_081B5214: + adds r0, r6, #0 + bl sub_08161464 + b _081B5304 +_081B521C: + ldr r0, _081B5248 + ldr r1, [r0] + movs r0, #0x1c + ldrsb r0, [r1, r0] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r1, #0x1d] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl Overworld_GetMapHeaderByGroupAndId + adds r1, r0, #0 + ldr r0, _081B524C + ldrb r1, [r1, #0x14] + bl sub_081245E8 + ldr r0, _081B5250 + ldr r1, _081B5254 + b _081B5288 + .align 2, 0 +_081B5248: .4byte 0x03005AEC +_081B524C: .4byte 0x02021C40 +_081B5250: .4byte 0x02021C7C +_081B5254: .4byte 0x085CA25C +_081B5258: + ldr r0, _081B52A0 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0x24 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, #0x25 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl Overworld_GetMapHeaderByGroupAndId + adds r1, r0, #0 + ldr r0, _081B52A4 + ldrb r1, [r1, #0x14] + bl sub_081245E8 + ldr r0, _081B52A8 + ldr r1, _081B52AC +_081B5288: + bl StringExpandPlaceholders + adds r0, r6, #0 + bl sub_081B5314 + ldr r0, _081B52B0 + ldr r0, [r0] + movs r1, #0x86 + lsls r1, r1, #2 + adds r0, r0, r1 + strh r4, [r0] + b _081B5304 + .align 2, 0 +_081B52A0: .4byte 0x03005AEC +_081B52A4: .4byte 0x02021C40 +_081B52A8: .4byte 0x02021C7C +_081B52AC: .4byte 0x085CA246 +_081B52B0: .4byte 0x0203CB90 +_081B52B4: + ldr r1, _081B52BC + ldr r0, _081B52C0 + b _081B52C8 + .align 2, 0 +_081B52BC: .4byte 0x0203CB94 +_081B52C0: .4byte 0x0812469D +_081B52C4: + ldr r1, _081B52D4 + ldr r0, _081B52D8 +_081B52C8: + str r0, [r1] + adds r0, r6, #0 + bl sub_081B0F90 + b _081B5304 + .align 2, 0 +_081B52D4: .4byte 0x0203CB94 +_081B52D8: .4byte 0x08085A31 +_081B52DC: + cmp r4, #1 + beq _081B52EA + cmp r4, #4 + bne _081B52F0 + bl sub_081B5504 + b _081B52F6 +_081B52EA: + bl sub_081B547C + b _081B52F6 +_081B52F0: + ldrb r0, [r5, #4] +_081B52F2: + bl display_pokemon_menu_message +_081B52F6: + ldr r0, _081B530C + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B5310 + str r0, [r1] +_081B5304: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B530C: .4byte 0x03005B60 +_081B5310: .4byte 0x081B5455 + thumb_func_end CursorCb_FieldMove + + thumb_func_start sub_081B5314 +sub_081B5314: @ 0x081B5314 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081B5338 + movs r1, #1 + bl sub_081B182C + ldr r1, _081B533C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B5340 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B5338: .4byte 0x02021C7C +_081B533C: .4byte 0x03005B60 +_081B5340: .4byte 0x081B5345 + thumb_func_end sub_081B5314 + + thumb_func_start sub_081B5344 +sub_081B5344: @ 0x081B5344 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl sub_081B18A4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B5368 + bl sub_081B2FDC + ldr r0, _081B5370 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B5374 + str r0, [r1] +_081B5368: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B5370: .4byte 0x03005B60 +_081B5374: .4byte 0x081B5379 + thumb_func_end sub_081B5344 + + thumb_func_start sub_081B5378 +sub_081B5378: @ 0x081B5378 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _081B539E + cmp r1, #0 + bgt _081B5398 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _081B53B4 + b _081B53CA +_081B5398: + cmp r1, #1 + beq _081B53BA + b _081B53CA +_081B539E: + ldr r1, _081B53AC + ldr r0, _081B53B0 + str r0, [r1] + adds r0, r4, #0 + bl sub_081B0F90 + b _081B53CA + .align 2, 0 +_081B53AC: .4byte 0x0203CB94 +_081B53B0: .4byte 0x08085A31 +_081B53B4: + movs r0, #5 + bl PlaySE +_081B53BA: + ldr r0, _081B53D0 + movs r1, #0 + str r1, [r0] + ldr r0, _081B53D4 + str r1, [r0] + adds r0, r4, #0 + bl sub_081B18EC +_081B53CA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B53D0: .4byte 0x03005B10 +_081B53D4: .4byte 0x0203CBB8 + thumb_func_end sub_081B5378 + + thumb_func_start FieldCallback_PrepareFadeInFromMenu +FieldCallback_PrepareFadeInFromMenu: @ 0x081B53D8 + push {lr} + bl pal_fill_black + ldr r0, _081B53EC + movs r1, #8 + bl CreateTask + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 +_081B53EC: .4byte 0x081B53F1 + thumb_func_end FieldCallback_PrepareFadeInFromMenu + + thumb_func_start task_launch_hm_phase_2 +task_launch_hm_phase_2: @ 0x081B53F0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl IsWeatherNotFadingIn + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081B541C + bl brm_get_selected_species + ldr r1, _081B5424 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [r1] + ldr r0, _081B5428 + ldr r0, [r0] + bl _call_via_r0 + adds r0, r4, #0 + bl DestroyTask +_081B541C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B5424: .4byte 0x020388A8 +_081B5428: .4byte 0x0203CBB8 + thumb_func_end task_launch_hm_phase_2 + + thumb_func_start brm_get_selected_species +brm_get_selected_species: @ 0x081B542C + push {lr} + ldr r0, _081B544C + movs r1, #9 + ldrsb r1, [r0, r1] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081B5450 + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 +_081B544C: .4byte 0x0203CB94 +_081B5450: .4byte 0x02024190 + thumb_func_end brm_get_selected_species + + thumb_func_start task_brm_cancel_1_on_keypad_a_or_b +task_brm_cancel_1_on_keypad_a_or_b: @ 0x081B5454 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _081B5478 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _081B546E + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081B5474 +_081B546E: + adds r0, r2, #0 + bl CursorCb_Cancel1 +_081B5474: + pop {r0} + bx r0 + .align 2, 0 +_081B5478: .4byte 0x03002360 + thumb_func_end task_brm_cancel_1_on_keypad_a_or_b + + thumb_func_start sub_081B547C +sub_081B547C: @ 0x081B547C + push {lr} + ldr r0, _081B5494 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081B5498 + movs r0, #0xc + bl display_pokemon_menu_message + b _081B549E + .align 2, 0 +_081B5494: .4byte 0x00000888 +_081B5498: + movs r0, #0xd + bl display_pokemon_menu_message +_081B549E: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081B547C + + thumb_func_start hm_surf_run_dp02scr +hm_surf_run_dp02scr: @ 0x081B54A4 + push {lr} + bl GetCursorSelectionMonId + ldr r1, _081B54BC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [r1] + movs r0, #9 + bl FieldEffectStart + pop {r0} + bx r0 + .align 2, 0 +_081B54BC: .4byte 0x020388A8 + thumb_func_end hm_surf_run_dp02scr + + thumb_func_start SetUpFieldMove_Surf +SetUpFieldMove_Surf: @ 0x081B54C0 + push {lr} + bl PartyHasMonWithSurf + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081B54FC + bl IsPlayerFacingSurfableFishableWater + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081B54FC + ldr r1, _081B54EC + ldr r0, _081B54F0 + str r0, [r1] + ldr r1, _081B54F4 + ldr r0, _081B54F8 + str r0, [r1] + movs r0, #1 + b _081B54FE + .align 2, 0 +_081B54EC: .4byte 0x03005B10 +_081B54F0: .4byte 0x081B53D9 +_081B54F4: .4byte 0x0203CBB8 +_081B54F8: .4byte 0x081B54A5 +_081B54FC: + movs r0, #0 +_081B54FE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SetUpFieldMove_Surf + + thumb_func_start sub_081B5504 +sub_081B5504: @ 0x081B5504 + push {lr} + movs r0, #8 + bl TestPlayerAvatarFlags + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081B551A + movs r0, #9 + bl display_pokemon_menu_message + b _081B5520 +_081B551A: + movs r0, #8 + bl display_pokemon_menu_message +_081B5520: + pop {r0} + bx r0 + thumb_func_end sub_081B5504 + + thumb_func_start SetUpFieldMove_Fly +SetUpFieldMove_Fly: @ 0x081B5524 + push {lr} + ldr r0, _081B553C + ldrb r0, [r0, #0x17] + bl Overworld_MapTypeAllowsTeleportAndFly + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B5540 + movs r0, #0 + b _081B5542 + .align 2, 0 +_081B553C: .4byte 0x02036FB8 +_081B5540: + movs r0, #1 +_081B5542: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SetUpFieldMove_Fly + + thumb_func_start sub_081B5548 +sub_081B5548: @ 0x081B5548 + push {lr} + sub sp, #0xc + movs r0, #0 + str r0, [sp] + ldr r0, _081B556C + str r0, [sp, #4] + ldr r0, _081B5570 + str r0, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #1 + bl InitPartyMenu + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_081B556C: .4byte 0x081B1041 +_081B5570: .4byte 0x08085AFD + thumb_func_end sub_081B5548 + + thumb_func_start hm2_waterfall +hm2_waterfall: @ 0x081B5574 + push {lr} + bl GetCursorSelectionMonId + ldr r1, _081B558C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [r1] + movs r0, #0x2b + bl FieldEffectStart + pop {r0} + bx r0 + .align 2, 0 +_081B558C: .4byte 0x020388A8 + thumb_func_end hm2_waterfall + + thumb_func_start SetUpFieldMove_Waterfall +SetUpFieldMove_Waterfall: @ 0x081B5590 + push {r4, lr} + sub sp, #4 + mov r4, sp + adds r4, #2 + 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, r0, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsWaterfall + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081B55EC + bl IsPlayerSurfingNorth + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081B55EC + ldr r1, _081B55DC + ldr r0, _081B55E0 + str r0, [r1] + ldr r1, _081B55E4 + ldr r0, _081B55E8 + str r0, [r1] + movs r0, #1 + b _081B55EE + .align 2, 0 +_081B55DC: .4byte 0x03005B10 +_081B55E0: .4byte 0x081B53D9 +_081B55E4: .4byte 0x0203CBB8 +_081B55E8: .4byte 0x081B5575 +_081B55EC: + movs r0, #0 +_081B55EE: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SetUpFieldMove_Waterfall + + thumb_func_start sub_081B55F8 +sub_081B55F8: @ 0x081B55F8 + push {lr} + bl GetCursorSelectionMonId + ldr r1, _081B5610 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [r1] + movs r0, #0x2c + bl FieldEffectStart + pop {r0} + bx r0 + .align 2, 0 +_081B5610: .4byte 0x020388A8 + thumb_func_end sub_081B55F8 + + thumb_func_start SetUpFieldMove_Dive +SetUpFieldMove_Dive: @ 0x081B5614 + push {lr} + bl TrySetDiveWarp + ldr r1, _081B562C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [r1, #4] + cmp r0, #0 + bne _081B5630 + movs r0, #0 + b _081B563E + .align 2, 0 +_081B562C: .4byte 0x020388A8 +_081B5630: + ldr r1, _081B5644 + ldr r0, _081B5648 + str r0, [r1] + ldr r1, _081B564C + ldr r0, _081B5650 + str r0, [r1] + movs r0, #1 +_081B563E: + pop {r1} + bx r1 + .align 2, 0 +_081B5644: .4byte 0x03005B10 +_081B5648: .4byte 0x081B53D9 +_081B564C: .4byte 0x0203CBB8 +_081B5650: .4byte 0x081B55F9 + thumb_func_end SetUpFieldMove_Dive + + thumb_func_start party_menu_icon_anim +party_menu_icon_anim: @ 0x081B5654 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r5, r0, #0 + adds r7, r1, #0 + adds r4, r2, #0 + movs r6, #1 + bl IsMultiBattle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081B568A + ldr r0, _081B56C0 + ldr r1, _081B56C4 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081B568A + ldr r0, _081B56C8 + adds r0, r4, r0 + ldrb r1, [r0] + eors r1, r6 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r6, r0, #0x1f +_081B568A: + adds r0, r5, #0 + movs r1, #0x41 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + movs r1, #0 + bl GetMonData + adds r1, r0, #0 + str r6, [sp] + adds r0, r4, #0 + adds r2, r7, #0 + movs r3, #1 + bl party_menu_link_mon_icon_anim + ldrb r0, [r7, #9] + adds r1, r5, #0 + bl sub_081B57D8 + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B56C0: .4byte 0x03002360 +_081B56C4: .4byte 0x00000439 +_081B56C8: .4byte 0x085E18D8 + thumb_func_end party_menu_icon_anim + + thumb_func_start party_menu_link_mon_icon_anim +party_menu_link_mon_icon_anim: @ 0x081B56CC + push {r4, r5, r6, r7, lr} + sub sp, #0xc + adds r6, r1, #0 + adds r4, r2, #0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r3, r3, #0x18 + lsrs r7, r3, #0x18 + cmp r5, #0 + beq _081B571A + ldr r1, _081B5724 + ldr r0, [r4, #4] + ldrb r2, [r0] + ldrb r3, [r0, #1] + movs r0, #4 + str r0, [sp] + str r6, [sp, #4] + ldr r0, [sp, #0x20] + str r0, [sp, #8] + adds r0, r5, #0 + bl CreateMonIcon + strb r0, [r4, #9] + ldr r2, _081B5728 + ldrb r0, [r4, #9] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #3 + adds r2, r7, #0 + ands r2, r0 + lsls r2, r2, #2 + ldrb r3, [r1, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1, #5] +_081B571A: + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B5724: .4byte 0x080D28B5 +_081B5728: .4byte 0x020205AC + thumb_func_end party_menu_link_mon_icon_anim + + thumb_func_start sub_081B572C +sub_081B572C: @ 0x081B572C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r0, r1, #0 + adds r1, r2, #0 + bl GetHPBarLevel + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + beq _081B578C + cmp r0, #2 + bgt _081B5754 + cmp r0, #1 + beq _081B57A4 + b _081B57BC +_081B5754: + cmp r0, #3 + beq _081B5774 + cmp r0, #4 + bne _081B57BC + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + ldr r1, _081B5770 + adds r0, r0, r1 + movs r1, #0 + bl sub_080D2B68 + b _081B57CC + .align 2, 0 +_081B5770: .4byte 0x020205AC +_081B5774: + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + ldr r1, _081B5788 + adds r0, r0, r1 + movs r1, #1 + bl sub_080D2B68 + b _081B57CC + .align 2, 0 +_081B5788: .4byte 0x020205AC +_081B578C: + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + ldr r1, _081B57A0 + adds r0, r0, r1 + movs r1, #2 + bl sub_080D2B68 + b _081B57CC + .align 2, 0 +_081B57A0: .4byte 0x020205AC +_081B57A4: + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + ldr r1, _081B57B8 + adds r0, r0, r1 + movs r1, #3 + bl sub_080D2B68 + b _081B57CC + .align 2, 0 +_081B57B8: .4byte 0x020205AC +_081B57BC: + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + ldr r1, _081B57D4 + adds r0, r0, r1 + movs r1, #4 + bl sub_080D2B68 +_081B57CC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B57D4: .4byte 0x020205AC + thumb_func_end sub_081B572C + + thumb_func_start sub_081B57D8 +sub_081B57D8: @ 0x081B57D8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + adds r0, r6, #0 + movs r1, #0x39 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r6, #0 + movs r1, #0x3a + bl GetMonData + adds r2, r0, #0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_081B572C + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_081B57D8 + + thumb_func_start AnimateSelectedPartyIcon +AnimateSelectedPartyIcon: @ 0x081B580C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + ldr r5, _081B583C + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r6, r0, #2 + adds r2, r6, r5 + movs r7, #0 + movs r3, #0 + strh r3, [r2, #0x2e] + mov ip, r5 + cmp r1, #0 + bne _081B5864 + movs r1, #0x20 + ldrsh r0, [r2, r1] + cmp r0, #0x18 + bne _081B5844 + strh r3, [r2, #0x24] + ldr r0, _081B5840 + strh r0, [r2, #0x26] + b _081B584A + .align 2, 0 +_081B583C: .4byte 0x020205AC +_081B5840: .4byte 0x0000FFFC +_081B5844: + ldr r0, _081B585C + strh r0, [r2, #0x24] + strh r3, [r2, #0x26] +_081B584A: + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + mov r1, ip + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _081B5860 + b _081B5870 + .align 2, 0 +_081B585C: .4byte 0x0000FFFC +_081B5860: .4byte 0x081B58A9 +_081B5864: + strh r3, [r2, #0x24] + strh r3, [r2, #0x26] + adds r0, r5, #0 + adds r0, #0x1c + adds r0, r6, r0 + ldr r1, _081B5878 +_081B5870: + str r1, [r0] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B5878: .4byte 0x081B587D + thumb_func_end AnimateSelectedPartyIcon + + thumb_func_start UpdatePartyMonIconFrameAndBounce +UpdatePartyMonIconFrameAndBounce: @ 0x081B587C + push {r4, lr} + adds r4, r0, #0 + bl UpdateMonIconFrame + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _081B58A2 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _081B58A0 + ldr r0, _081B589C + strh r0, [r4, #0x26] + b _081B58A2 + .align 2, 0 +_081B589C: .4byte 0x0000FFFD +_081B58A0: + strh r1, [r4, #0x26] +_081B58A2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end UpdatePartyMonIconFrameAndBounce + + thumb_func_start UpdatePartyMonIconFrame +UpdatePartyMonIconFrame: @ 0x081B58A8 + push {lr} + bl UpdateMonIconFrame + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end UpdatePartyMonIconFrame + + thumb_func_start party_menu_held_item_object +party_menu_held_item_object: @ 0x081B58B4 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _081B58DC + ldr r0, _081B58E4 + ldr r2, [r4, #4] + ldrb r1, [r2, #2] + ldrb r2, [r2, #3] + movs r3, #0 + bl CreateSprite + strb r0, [r4, #0xa] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_081B5934 +_081B58DC: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B58E4: .4byte 0x085E1778 + thumb_func_end party_menu_held_item_object + + thumb_func_start party_menu_link_mon_held_item_object +party_menu_link_mon_held_item_object: @ 0x081B58E8 + push {r4, r5, lr} + adds r4, r2, #0 + lsls r0, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + cmp r0, #0 + beq _081B5924 + ldr r0, _081B592C + ldr r2, [r4, #4] + ldrb r1, [r2, #2] + ldrb r2, [r2, #3] + movs r3, #0 + bl CreateSprite + strb r0, [r4, #0xa] + ldr r2, _081B5930 + ldrb r0, [r4, #0xa] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r2, [r1, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #5] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_081B5950 +_081B5924: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B592C: .4byte 0x085E1778 +_081B5930: .4byte 0x020205AC + thumb_func_end party_menu_link_mon_held_item_object + + thumb_func_start sub_081B5934 +sub_081B5934: @ 0x081B5934 + push {r4, lr} + adds r4, r1, #0 + movs r1, #0xc + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r4, #0 + bl sub_081B5950 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081B5934 + + thumb_func_start sub_081B5950 +sub_081B5950: @ 0x081B5950 + push {r4, lr} + adds r4, r1, #0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + bne _081B5978 + ldr r2, _081B5974 + ldrb r1, [r4, #0xa] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + b _081B59C4 + .align 2, 0 +_081B5974: .4byte 0x020205AC +_081B5978: + bl ItemIsMail + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081B599C + ldrb r1, [r4, #0xa] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _081B5998 + adds r0, r0, r1 + movs r1, #1 + bl StartSpriteAnim + b _081B59AE + .align 2, 0 +_081B5998: .4byte 0x020205AC +_081B599C: + ldrb r1, [r4, #0xa] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _081B59CC + adds r0, r0, r1 + movs r1, #0 + bl StartSpriteAnim +_081B59AE: + ldr r2, _081B59CC + ldrb r1, [r4, #0xa] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 +_081B59C4: + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B59CC: .4byte 0x020205AC + thumb_func_end sub_081B5950 + + thumb_func_start LoadHeldItemIcons +LoadHeldItemIcons: @ 0x081B59D0 + push {lr} + ldr r0, _081B59E4 + bl LoadSpriteSheet + ldr r0, _081B59E8 + bl LoadSpritePalette + pop {r0} + bx r0 + .align 2, 0 +_081B59E4: .4byte 0x085E1768 +_081B59E8: .4byte 0x085E1770 + thumb_func_end LoadHeldItemIcons + + thumb_func_start sub_081B59EC +sub_081B59EC: @ 0x081B59EC + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r7, r1, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + cmp r2, #0 + beq _081B5A00 + cmp r2, #1 + beq _081B5A48 + b _081B5A84 +_081B5A00: + movs r5, #0 + ldrb r0, [r6] + cmp r5, r0 + bhs _081B5A84 +_081B5A08: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081B5A44 + adds r0, r0, r1 + movs r1, #0xc + bl GetMonData + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + beq _081B5A34 + adds r0, r7, r5 + ldrb r4, [r0] + adds r0, r1, #0 + bl ItemIsMail + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl sub_081B5A90 +_081B5A34: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldrb r0, [r6] + cmp r5, r0 + blo _081B5A08 + b _081B5A84 + .align 2, 0 +_081B5A44: .4byte 0x02024190 +_081B5A48: + movs r5, #0 + b _081B5A7E +_081B5A4C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081B5A8C + adds r0, r0, r1 + movs r1, #0xc + bl GetMonData + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + beq _081B5A78 + adds r0, r5, r7 + ldrb r4, [r0, #6] + adds r0, r1, #0 + bl ItemIsMail + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl sub_081B5A90 +_081B5A78: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_081B5A7E: + ldrb r0, [r6, #1] + cmp r5, r0 + blo _081B5A4C +_081B5A84: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B5A8C: .4byte 0x020243E8 + thumb_func_end sub_081B59EC + + thumb_func_start sub_081B5A90 +sub_081B5A90: @ 0x081B5A90 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + adds r6, r0, #0 + mov sb, r1 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov r0, sb + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldr r0, _081B5B08 + mov r8, r0 + lsls r0, r6, #4 + adds r0, r0, r6 + lsls r0, r0, #2 + add r0, r8 + adds r0, #0x43 + ldrb r3, [r0] + ldr r0, _081B5B0C + subs r3, #1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r1, #0xfa + movs r2, #0xaa + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + mov r0, r8 + adds r5, r4, r0 + movs r0, #4 + strh r0, [r5, #0x24] + movs r0, #0xa + strh r0, [r5, #0x26] + movs r0, #0x1c + add r8, r0 + add r4, r8 + ldr r0, _081B5B10 + str r0, [r4] + strh r6, [r5, #0x3c] + adds r0, r5, #0 + mov r1, sb + bl StartSpriteAnim + ldr r1, [r4] + adds r0, r5, #0 + bl _call_via_r1 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081B5B08: .4byte 0x020205AC +_081B5B0C: .4byte 0x085E1778 +_081B5B10: .4byte 0x081B5B15 + thumb_func_end sub_081B5A90 + + thumb_func_start SpriteCB_HeldItem +SpriteCB_HeldItem: @ 0x081B5B14 + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x3c] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _081B5B44 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, r0, r2 + adds r0, r2, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + bge _081B5B48 + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + b _081B5B66 + .align 2, 0 +_081B5B44: .4byte 0x020205AC +_081B5B48: + adds r3, r4, #0 + adds r3, #0x3e + ldrb r1, [r3] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3] + ldrh r0, [r2, #0x24] + ldrh r1, [r2, #0x20] + adds r0, r0, r1 + strh r0, [r4, #0x20] + ldrh r0, [r2, #0x26] + ldrh r2, [r2, #0x22] + adds r0, r0, r2 + strh r0, [r4, #0x22] +_081B5B66: + pop {r4} + pop {r0} + bx r0 + thumb_func_end SpriteCB_HeldItem + + thumb_func_start party_menu_pokeball_object +party_menu_pokeball_object: @ 0x081B5B6C + push {r4, lr} + adds r4, r1, #0 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _081B5B8A + ldr r0, _081B5B90 + ldr r2, [r4, #4] + ldrb r1, [r2, #6] + ldrb r2, [r2, #7] + movs r3, #8 + bl CreateSprite + strb r0, [r4, #0xb] +_081B5B8A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B5B90: .4byte 0x085E17C0 + thumb_func_end party_menu_pokeball_object + + thumb_func_start party_menu_link_mon_pokeball_object +party_menu_link_mon_pokeball_object: @ 0x081B5B94 + push {r4, lr} + adds r4, r1, #0 + lsls r0, r0, #0x10 + cmp r0, #0 + beq _081B5BC4 + ldr r0, _081B5BCC + ldr r2, [r4, #4] + ldrb r1, [r2, #6] + ldrb r2, [r2, #7] + movs r3, #8 + bl CreateSprite + strb r0, [r4, #0xb] + ldr r2, _081B5BD0 + ldrb r0, [r4, #0xb] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r2, [r1, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #5] +_081B5BC4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B5BCC: .4byte 0x085E17C0 +_081B5BD0: .4byte 0x020205AC + thumb_func_end party_menu_link_mon_pokeball_object + + thumb_func_start sub_081B5BD4 +sub_081B5BD4: @ 0x081B5BD4 + push {lr} + adds r3, r0, #0 + adds r2, r1, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r0, _081B5C0C + adds r1, r3, #0 + movs r3, #8 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _081B5C10 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r3, [r1, #5] + movs r2, #0xd + rsbs r2, r2, #0 + ands r2, r3 + movs r3, #8 + orrs r2, r3 + strb r2, [r1, #5] + pop {r1} + bx r1 + .align 2, 0 +_081B5C0C: .4byte 0x085E17C0 +_081B5C10: .4byte 0x020205AC + thumb_func_end sub_081B5BD4 + + thumb_func_start sub_081B5C14 +sub_081B5C14: @ 0x081B5C14 + push {lr} + adds r3, r0, #0 + adds r2, r1, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r0, _081B5C34 + adds r1, r3, #0 + movs r3, #8 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_081B5C34: .4byte 0x085E1830 + thumb_func_end sub_081B5C14 + + thumb_func_start sub_081B5C38 +sub_081B5C38: @ 0x081B5C38 + push {lr} + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _081B5C58 + adds r0, r0, r2 + bl StartSpriteAnim + pop {r0} + bx r0 + .align 2, 0 +_081B5C58: .4byte 0x020205AC + thumb_func_end sub_081B5C38 + + thumb_func_start sub_081B5C5C +sub_081B5C5C: @ 0x081B5C5C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + cmp r6, #0 + bne _081B5CA0 + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _081B5C9C + mov r8, r0 + add r4, r8 + adds r0, r4, #0 + movs r1, #2 + bl StartSpriteAnim + lsls r5, r7, #4 + adds r5, r5, r7 + lsls r5, r5, #2 + add r5, r8 + adds r0, r5, #0 + movs r1, #4 + bl StartSpriteAnim + strh r6, [r4, #0x26] + strh r6, [r5, #0x26] + b _081B5CCC + .align 2, 0 +_081B5C9C: .4byte 0x020205AC +_081B5CA0: + lsls r5, r0, #4 + adds r5, r5, r0 + lsls r5, r5, #2 + ldr r0, _081B5CD8 + mov r8, r0 + add r5, r8 + adds r0, r5, #0 + movs r1, #3 + bl StartSpriteAnim + lsls r4, r7, #4 + adds r4, r4, r7 + lsls r4, r4, #2 + add r4, r8 + adds r0, r4, #0 + movs r1, #5 + bl StartSpriteAnim + ldr r0, _081B5CDC + strh r0, [r5, #0x26] + movs r0, #4 + strh r0, [r4, #0x26] +_081B5CCC: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B5CD8: .4byte 0x020205AC +_081B5CDC: .4byte 0x0000FFFC + thumb_func_end sub_081B5C5C + + thumb_func_start LoadPartyMenuPokeballGfx +LoadPartyMenuPokeballGfx: @ 0x081B5CE0 + push {lr} + ldr r0, _081B5CF8 + bl LoadCompressedSpriteSheet + ldr r0, _081B5CFC + bl LoadCompressedSpriteSheet + ldr r0, _081B5D00 + bl LoadCompressedSpritePalette + pop {r0} + bx r0 + .align 2, 0 +_081B5CF8: .4byte 0x085E17B0 +_081B5CFC: .4byte 0x085E1828 +_081B5D00: .4byte 0x085E17B8 + thumb_func_end LoadPartyMenuPokeballGfx + + thumb_func_start party_menu_status_condition_object +party_menu_status_condition_object: @ 0x081B5D04 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _081B5D2C + ldr r0, _081B5D34 + ldr r2, [r4, #4] + ldrb r1, [r2, #4] + ldrb r2, [r2, #5] + movs r3, #0 + bl CreateSprite + strb r0, [r4, #0xc] + adds r0, r5, #0 + adds r1, r4, #0 + bl party_menu_get_status_condition_and_update_object +_081B5D2C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B5D34: .4byte 0x085E18C0 + thumb_func_end party_menu_status_condition_object + + thumb_func_start party_menu_link_mon_status_condition_object +party_menu_link_mon_status_condition_object: @ 0x081B5D38 + push {r4, r5, lr} + adds r4, r2, #0 + lsls r0, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + cmp r0, #0 + beq _081B5D74 + ldr r0, _081B5D7C + ldr r2, [r4, #4] + ldrb r1, [r2, #4] + ldrb r2, [r2, #5] + movs r3, #0 + bl CreateSprite + strb r0, [r4, #0xc] + adds r0, r5, #0 + adds r1, r4, #0 + bl party_menu_update_status_condition_object + ldr r2, _081B5D80 + ldrb r0, [r4, #0xc] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r2, [r1, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #5] +_081B5D74: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B5D7C: .4byte 0x085E18C0 +_081B5D80: .4byte 0x020205AC + thumb_func_end party_menu_link_mon_status_condition_object + + thumb_func_start party_menu_get_status_condition_and_update_object +party_menu_get_status_condition_and_update_object: @ 0x081B5D84 + push {r4, lr} + adds r4, r1, #0 + bl GetMonAilment + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r4, #0 + bl party_menu_update_status_condition_object + pop {r4} + pop {r0} + bx r0 + thumb_func_end party_menu_get_status_condition_and_update_object + + thumb_func_start party_menu_update_status_condition_object +party_menu_update_status_condition_object: @ 0x081B5D9C + push {r4, r5, lr} + adds r5, r1, #0 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _081B5DAC + cmp r2, #6 + bne _081B5DC8 +_081B5DAC: + ldr r2, _081B5DC4 + ldrb r1, [r5, #0xc] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + b _081B5DF2 + .align 2, 0 +_081B5DC4: .4byte 0x020205AC +_081B5DC8: + ldrb r1, [r5, #0xc] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _081B5DFC + adds r0, r0, r4 + subs r1, r2, #1 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl StartSpriteAnim + ldrb r1, [r5, #0xc] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 +_081B5DF2: + strb r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B5DFC: .4byte 0x020205AC + thumb_func_end party_menu_update_status_condition_object + + thumb_func_start LoadPartyMenuAilmentGfx +LoadPartyMenuAilmentGfx: @ 0x081B5E00 + push {lr} + ldr r0, _081B5E14 + bl LoadCompressedSpriteSheet + ldr r0, _081B5E18 + bl LoadCompressedSpritePalette + pop {r0} + bx r0 + .align 2, 0 +_081B5E14: .4byte 0x085E18B0 +_081B5E18: .4byte 0x085E18B8 + thumb_func_end LoadPartyMenuAilmentGfx + + thumb_func_start sub_081B5E1C +sub_081B5E1C: @ 0x081B5E1C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + ldr r0, _081B5E44 + mov r8, r0 + ldr r0, _081B5E48 + ldr r1, _081B5E4C + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081B5E5C + movs r7, #1 + bl sub_081B8624 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + b _081B5E60 + .align 2, 0 +_081B5E44: .4byte 0x081B5EF5 +_081B5E48: .4byte 0x03002360 +_081B5E4C: .4byte 0x00000439 +_081B5E50: + ldr r0, _081B5E58 + strb r5, [r0, #9] + b _081B5EA4 + .align 2, 0 +_081B5E58: .4byte 0x0203CB94 +_081B5E5C: + movs r7, #0 + movs r6, #0 +_081B5E60: + ldr r4, _081B5EAC + ldrh r0, [r4] + bl GetItemEffectType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xa + bne _081B5EBC + ldr r1, _081B5EB0 + movs r0, #0 + strb r0, [r1, #9] + movs r5, #0 +_081B5E78: + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _081B5EB4 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _081B5E9A + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _081B5E50 +_081B5E9A: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #5 + bls _081B5E78 +_081B5EA4: + ldr r0, _081B5EB8 + movs r1, #0x7f + b _081B5ED0 + .align 2, 0 +_081B5EAC: .4byte 0x0203CB48 +_081B5EB0: .4byte 0x0203CB94 +_081B5EB4: .4byte 0x02024190 +_081B5EB8: .4byte 0x081B5F21 +_081B5EBC: + ldrh r0, [r4] + bl GetPocketByItemId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #5 + cmp r0, #3 + bne _081B5ECE + movs r1, #4 +_081B5ECE: + ldr r0, _081B5EF0 +_081B5ED0: + str r1, [sp] + str r0, [sp, #4] + mov r0, r8 + str r0, [sp, #8] + adds r0, r7, #0 + adds r1, r6, #0 + movs r2, #3 + movs r3, #1 + bl InitPartyMenu + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B5EF0: .4byte 0x081B1041 + thumb_func_end sub_081B5E1C + + thumb_func_start c2_815ABFC +c2_815ABFC: @ 0x081B5EF4 + push {lr} + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081B5F0C + movs r0, #0xc + movs r1, #5 + movs r2, #0 + bl GoToBagMenu + b _081B5F16 +_081B5F0C: + ldr r0, _081B5F1C + ldr r1, [r0] + movs r0, #4 + bl sub_081C47A0 +_081B5F16: + pop {r0} + bx r0 + .align 2, 0 +_081B5F1C: .4byte 0x0203CBFC + thumb_func_end c2_815ABFC + + thumb_func_start sub_081B5F20 +sub_081B5F20: @ 0x081B5F20 + push {lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r0, _081B5F58 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081B5F52 + ldr r0, _081B5F5C + ldrb r1, [r0, #8] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _081B5F46 + ldr r0, _081B5F60 + ldr r1, [r0] + ldr r0, _081B5F64 + str r0, [r1, #4] +_081B5F46: + ldr r0, _081B5F68 + ldr r1, _081B5F6C + ldr r2, [r0] + adds r0, r3, #0 + bl _call_via_r2 +_081B5F52: + pop {r0} + bx r0 + .align 2, 0 +_081B5F58: .4byte 0x02037C74 +_081B5F5C: .4byte 0x0203CB94 +_081B5F60: .4byte 0x0203CB90 +_081B5F64: .4byte 0x081B8DE1 +_081B5F68: .4byte 0x03006068 +_081B5F6C: .4byte 0x081B6435 + thumb_func_end sub_081B5F20 + + thumb_func_start IsHPRecoveryItem +IsHPRecoveryItem: @ 0x081B5F70 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xaf + bne _081B5F8C + ldr r0, _081B5F84 + ldr r0, [r0] + ldr r1, _081B5F88 + adds r0, r0, r1 + b _081B5F96 + .align 2, 0 +_081B5F84: .4byte 0x03005AEC +_081B5F88: .4byte 0x00003214 +_081B5F8C: + ldr r1, _081B5FA4 + subs r0, #0xd + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] +_081B5F96: + ldrb r1, [r0, #4] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _081B5FA8 + movs r0, #0 + b _081B5FAA + .align 2, 0 +_081B5FA4: .4byte 0x082EEF14 +_081B5FA8: + movs r0, #1 +_081B5FAA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsHPRecoveryItem + + thumb_func_start GetMedicineItemEffectMessage +GetMedicineItemEffectMessage: @ 0x081B5FB0 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetItemEffectType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, #3 + cmp r0, #0x12 + bls _081B5FC6 + b _081B615C +_081B5FC6: + lsls r0, r0, #2 + ldr r1, _081B5FD0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081B5FD0: .4byte 0x081B5FD4 +_081B5FD4: @ jump table + .4byte _081B6020 @ case 0 + .4byte _081B6034 @ case 1 + .4byte _081B6048 @ case 2 + .4byte _081B605C @ case 3 + .4byte _081B6070 @ case 4 + .4byte _081B6084 @ case 5 + .4byte _081B6098 @ case 6 + .4byte _081B615C @ case 7 + .4byte _081B60AC @ case 8 + .4byte _081B60D0 @ case 9 + .4byte _081B60C0 @ case 10 + .4byte _081B6100 @ case 11 + .4byte _081B6110 @ case 12 + .4byte _081B60F0 @ case 13 + .4byte _081B60E0 @ case 14 + .4byte _081B615C @ case 15 + .4byte _081B6134 @ case 16 + .4byte _081B6134 @ case 17 + .4byte _081B6148 @ case 18 +_081B6020: + ldr r0, _081B602C + ldr r1, _081B6030 + bl StringExpandPlaceholders + b _081B6164 + .align 2, 0 +_081B602C: .4byte 0x02021C7C +_081B6030: .4byte 0x085C9EA6 +_081B6034: + ldr r0, _081B6040 + ldr r1, _081B6044 + bl StringExpandPlaceholders + b _081B6164 + .align 2, 0 +_081B6040: .4byte 0x02021C7C +_081B6044: .4byte 0x085C9ED4 +_081B6048: + ldr r0, _081B6054 + ldr r1, _081B6058 + bl StringExpandPlaceholders + b _081B6164 + .align 2, 0 +_081B6054: .4byte 0x02021C7C +_081B6058: .4byte 0x085C9EE2 +_081B605C: + ldr r0, _081B6068 + ldr r1, _081B606C + bl StringExpandPlaceholders + b _081B6164 + .align 2, 0 +_081B6068: .4byte 0x02021C7C +_081B606C: .4byte 0x085C9EF2 +_081B6070: + ldr r0, _081B607C + ldr r1, _081B6080 + bl StringExpandPlaceholders + b _081B6164 + .align 2, 0 +_081B607C: .4byte 0x02021C7C +_081B6080: .4byte 0x085C9EC0 +_081B6084: + ldr r0, _081B6090 + ldr r1, _081B6094 + bl StringExpandPlaceholders + b _081B6164 + .align 2, 0 +_081B6090: .4byte 0x02021C7C +_081B6094: .4byte 0x085C9FE7 +_081B6098: + ldr r0, _081B60A4 + ldr r1, _081B60A8 + bl StringExpandPlaceholders + b _081B6164 + .align 2, 0 +_081B60A4: .4byte 0x02021C7C +_081B60A8: .4byte 0x085C9FF7 +_081B60AC: + ldr r0, _081B60B8 + ldr r1, _081B60BC + bl StringExpandPlaceholders + b _081B6164 + .align 2, 0 +_081B60B8: .4byte 0x02021C7C +_081B60BC: .4byte 0x085C9F2B +_081B60C0: + ldr r0, _081B60C8 + ldr r1, _081B60CC + b _081B6114 + .align 2, 0 +_081B60C8: .4byte 0x02021C54 +_081B60CC: .4byte 0x085C9AE7 +_081B60D0: + ldr r0, _081B60D8 + ldr r1, _081B60DC + b _081B6114 + .align 2, 0 +_081B60D8: .4byte 0x02021C54 +_081B60DC: .4byte 0x085CA36F +_081B60E0: + ldr r0, _081B60E8 + ldr r1, _081B60EC + b _081B6114 + .align 2, 0 +_081B60E8: .4byte 0x02021C54 +_081B60EC: .4byte 0x085CA374 +_081B60F0: + ldr r0, _081B60F8 + ldr r1, _081B60FC + b _081B6114 + .align 2, 0 +_081B60F8: .4byte 0x02021C54 +_081B60FC: .4byte 0x085CA383 +_081B6100: + ldr r0, _081B6108 + ldr r1, _081B610C + b _081B6114 + .align 2, 0 +_081B6108: .4byte 0x02021C54 +_081B610C: .4byte 0x085C9AED +_081B6110: + ldr r0, _081B6124 + ldr r1, _081B6128 +_081B6114: + bl StringCopy + ldr r0, _081B612C + ldr r1, _081B6130 + bl StringExpandPlaceholders + b _081B6164 + .align 2, 0 +_081B6124: .4byte 0x02021C54 +_081B6128: .4byte 0x085C9AF2 +_081B612C: .4byte 0x02021C7C +_081B6130: .4byte 0x085C9F5F +_081B6134: + ldr r0, _081B6140 + ldr r1, _081B6144 + bl StringExpandPlaceholders + b _081B6164 + .align 2, 0 +_081B6140: .4byte 0x02021C7C +_081B6144: .4byte 0x085C9F3B +_081B6148: + ldr r0, _081B6154 + ldr r1, _081B6158 + bl StringExpandPlaceholders + b _081B6164 + .align 2, 0 +_081B6154: .4byte 0x02021C7C +_081B6158: .4byte 0x085C9F06 +_081B615C: + ldr r0, _081B6168 + ldr r1, _081B616C + bl StringExpandPlaceholders +_081B6164: + pop {r0} + bx r0 + .align 2, 0 +_081B6168: .4byte 0x02021C7C +_081B616C: .4byte 0x085C9AF7 + thumb_func_end GetMedicineItemEffectMessage + + thumb_func_start UsingHPEVItemOnShedinja +UsingHPEVItemOnShedinja: @ 0x081B6170 + push {r4, lr} + adds r4, r0, #0 + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + bl GetItemEffectType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xd + bne _081B619C + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + ldr r1, _081B6198 + cmp r0, r1 + bne _081B619C + movs r0, #0 + b _081B619E + .align 2, 0 +_081B6198: .4byte 0x0000012F +_081B619C: + movs r0, #1 +_081B619E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end UsingHPEVItemOnShedinja + + thumb_func_start IsItemFlute +IsItemFlute: @ 0x081B61A4 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x27 + beq _081B61B6 + cmp r0, #0x29 + beq _081B61B6 + cmp r0, #0x28 + bne _081B61BA +_081B61B6: + movs r0, #1 + b _081B61BC +_081B61BA: + movs r0, #0 +_081B61BC: + pop {r1} + bx r1 + thumb_func_end IsItemFlute + + thumb_func_start ExecuteTableBasedItemEffect__ +ExecuteTableBasedItemEffect__: @ 0x081B61C0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + ldr r0, _081B61EC + ldr r1, _081B61F0 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _081B61F8 + movs r0, #0x64 + muls r0, r3, r0 + ldr r1, _081B61F4 + adds r0, r0, r1 + adds r1, r5, #0 + adds r2, r3, #0 + b _081B6212 + .align 2, 0 +_081B61EC: .4byte 0x03002360 +_081B61F0: .4byte 0x00000439 +_081B61F4: .4byte 0x02024190 +_081B61F8: + movs r0, #0x64 + adds r4, r3, #0 + muls r4, r0, r4 + ldr r0, _081B6224 + adds r4, r4, r0 + adds r0, r3, #0 + bl sub_081B8BD8 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 +_081B6212: + adds r3, r6, #0 + bl ExecuteTableBasedItemEffect + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_081B6224: .4byte 0x02024190 + thumb_func_end ExecuteTableBasedItemEffect__ + + thumb_func_start ItemUseCB_Medicine +ItemUseCB_Medicine: @ 0x081B6228 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + str r1, [sp, #4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + movs r0, #0 + mov sl, r0 + ldr r0, _081B62B0 + movs r1, #9 + ldrsb r1, [r0, r1] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _081B62B4 + adds r5, r1, r0 + ldr r0, _081B62B8 + ldrh r6, [r0] + adds r0, r5, #0 + adds r1, r6, #0 + bl UsingHPEVItemOnShedinja + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081B62A0 + adds r0, r6, #0 + bl IsHPRecoveryItem + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + cmp r0, #1 + bne _081B628E + adds r0, r5, #0 + movs r1, #0x39 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 + adds r0, r5, #0 + movs r1, #0x3a + bl GetMonData + cmp sl, r0 + bne _081B628E + movs r1, #0 + mov r8, r1 +_081B628E: + ldr r4, _081B62B0 + ldrb r0, [r4, #9] + adds r1, r6, #0 + movs r2, #0 + bl ExecuteTableBasedItemEffect__ + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081B62C4 +_081B62A0: + ldr r1, _081B62BC + movs r0, #0 + strb r0, [r1] + movs r0, #5 + bl PlaySE + ldr r0, _081B62C0 + b _081B6394 + .align 2, 0 +_081B62B0: .4byte 0x0203CB94 +_081B62B4: .4byte 0x02024190 +_081B62B8: .4byte 0x0203CB48 +_081B62BC: .4byte 0x0203CBB4 +_081B62C0: .4byte 0x085C9AF7 +_081B62C4: + ldr r1, _081B62EC + movs r0, #1 + strb r0, [r1] + adds r0, r6, #0 + bl IsItemFlute + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081B62F0 + movs r0, #1 + bl PlaySE + ldrb r0, [r4, #0xb] + cmp r0, #0xe + beq _081B62F6 + adds r0, r6, #0 + movs r1, #1 + bl RemoveBagItem + b _081B62F6 + .align 2, 0 +_081B62EC: .4byte 0x0203CBB4 +_081B62F0: + movs r0, #0x75 + bl PlaySE +_081B62F6: + ldr r4, _081B6374 + ldr r7, _081B6378 + movs r0, #9 + ldrsb r0, [r7, r0] + lsls r0, r0, #4 + ldr r1, [r4] + adds r1, r1, r0 + adds r0, r5, #0 + bl party_menu_get_status_condition_and_update_object + ldr r2, _081B637C + movs r0, #9 + ldrsb r0, [r7, r0] + ldr r1, [r4] + lsls r0, r0, #4 + adds r3, r0, r1 + ldrb r1, [r3, #0xc] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + bge _081B6334 + adds r0, r5, #0 + adds r1, r3, #0 + movs r2, #1 + bl DisplayPartyPokemonLevelCheck +_081B6334: + mov r2, r8 + cmp r2, #1 + bne _081B6384 + mov r0, sl + cmp r0, #0 + bne _081B6348 + ldrb r0, [r7, #9] + movs r1, #1 + bl sub_081B0C9C +_081B6348: + adds r0, r5, #0 + movs r1, #0x39 + bl GetMonData + adds r3, r0, #0 + mov r1, sl + subs r3, r3, r1 + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + ldrb r1, [r7, #9] + ldr r0, _081B6380 + str r0, [sp] + mov r0, sb + movs r2, #1 + bl sub_081B1BE8 + mov r0, sb + movs r1, #0 + mov r2, sl + bl sub_081B1C78 + b _081B63B0 + .align 2, 0 +_081B6374: .4byte 0x0203CBA8 +_081B6378: .4byte 0x0203CB94 +_081B637C: .4byte 0x020205AC +_081B6380: .4byte 0x081B63CD +_081B6384: + ldr r1, _081B63C0 + adds r0, r5, #0 + bl GetMonNickname + adds r0, r6, #0 + bl GetMedicineItemEffectMessage + ldr r0, _081B63C4 +_081B6394: + movs r1, #1 + bl sub_081B182C + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, _081B63C8 + mov r2, sb + lsls r0, r2, #2 + add r0, sb + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, [sp, #4] + str r1, [r0] +_081B63B0: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B63C0: .4byte 0x02021C40 +_081B63C4: .4byte 0x02021C7C +_081B63C8: .4byte 0x03005B60 + thumb_func_end ItemUseCB_Medicine + + thumb_func_start sub_081B63CC +sub_081B63CC: @ 0x081B63CC + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _081B6418 + movs r1, #9 + ldrsb r1, [r0, r1] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081B641C + adds r0, r0, r1 + ldr r1, _081B6420 + bl GetMonNickname + ldr r4, _081B6424 + ldr r1, _081B6428 + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + movs r1, #0 + bl sub_081B182C + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + bl HandleBattleLowHpMusicChange + ldr r1, _081B642C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B6430 + str r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B6418: .4byte 0x0203CB94 +_081B641C: .4byte 0x02024190 +_081B6420: .4byte 0x02021C40 +_081B6424: .4byte 0x02021C7C +_081B6428: .4byte 0x085C9E8F +_081B642C: .4byte 0x03005B60 +_081B6430: .4byte 0x081B6435 + thumb_func_end sub_081B63CC + + thumb_func_start sub_081B6434 +sub_081B6434: @ 0x081B6434 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl sub_081B18A4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B645A + ldr r0, _081B6460 + ldrb r1, [r0] + cmp r1, #0 + bne _081B6454 + ldr r0, _081B6464 + ldr r0, [r0] + str r1, [r0, #4] +_081B6454: + adds r0, r4, #0 + bl sub_081B0F90 +_081B645A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B6460: .4byte 0x0203CBB4 +_081B6464: .4byte 0x0203CB90 + thumb_func_end sub_081B6434 + + thumb_func_start sub_081B6468 +sub_081B6468: @ 0x081B6468 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + str r1, [sp] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + ldr r4, _081B6500 + movs r1, #9 + ldrsb r1, [r4, r1] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _081B6504 + adds r5, r1, r0 + ldr r0, _081B6508 + ldrh r6, [r0] + adds r0, r6, #0 + bl GetItemEffectType + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + adds r0, r5, #0 + movs r1, #0x20 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #4] + adds r0, r5, #0 + adds r1, r7, #0 + bl ItemEffectToMonEv + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #8] + ldrb r0, [r4, #9] + adds r1, r6, #0 + movs r2, #0 + bl ExecuteTableBasedItemEffect__ + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + movs r1, #0x20 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + adds r0, r5, #0 + adds r1, r7, #0 + bl ItemEffectToMonEv + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + cmp r4, #0 + bne _081B64F0 + ldr r0, [sp, #4] + cmp r0, sb + bne _081B6514 + ldr r1, [sp, #8] + cmp r1, r8 + bne _081B6514 +_081B64F0: + ldr r1, _081B650C + movs r0, #0 + strb r0, [r1] + movs r0, #5 + bl PlaySE + ldr r0, _081B6510 + b _081B6582 + .align 2, 0 +_081B6500: .4byte 0x0203CB94 +_081B6504: .4byte 0x02024190 +_081B6508: .4byte 0x0203CB48 +_081B650C: .4byte 0x0203CBB4 +_081B6510: .4byte 0x085C9AF7 +_081B6514: + ldr r1, _081B6550 + movs r0, #1 + strb r0, [r1] + movs r0, #1 + bl PlaySE + adds r0, r6, #0 + movs r1, #1 + bl RemoveBagItem + ldr r1, _081B6554 + adds r0, r5, #0 + bl GetMonNickname + ldr r1, _081B6558 + adds r0, r7, #0 + bl ItemEffectToStatString + ldr r2, [sp, #4] + cmp r2, sb + beq _081B6578 + ldr r0, [sp, #8] + cmp r0, r8 + beq _081B6564 + ldr r0, _081B655C + ldr r1, _081B6560 + bl StringExpandPlaceholders + b _081B6580 + .align 2, 0 +_081B6550: .4byte 0x0203CBB4 +_081B6554: .4byte 0x02021C40 +_081B6558: .4byte 0x02021C54 +_081B655C: .4byte 0x02021C7C +_081B6560: .4byte 0x085C9F78 +_081B6564: + ldr r0, _081B6570 + ldr r1, _081B6574 + bl StringExpandPlaceholders + b _081B6580 + .align 2, 0 +_081B6570: .4byte 0x02021C7C +_081B6574: .4byte 0x085C9FC1 +_081B6578: + ldr r0, _081B65B0 + ldr r1, _081B65B4 + bl StringExpandPlaceholders +_081B6580: + ldr r0, _081B65B0 +_081B6582: + movs r1, #1 + bl sub_081B182C + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, _081B65B8 + mov r2, sl + lsls r0, r2, #2 + add r0, sl + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, [sp] + str r1, [r0] + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B65B0: .4byte 0x02021C7C +_081B65B4: .4byte 0x085C9F9B +_081B65B8: .4byte 0x03005B60 + thumb_func_end sub_081B6468 + + thumb_func_start ItemEffectToMonEv +ItemEffectToMonEv: @ 0x081B65BC + push {r4, lr} + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r1, #0 + subs r0, #0xc + cmp r0, #5 + bhi _081B6632 + lsls r0, r0, #2 + ldr r1, _081B65D8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081B65D8: .4byte 0x081B65DC +_081B65DC: @ jump table + .4byte _081B660C @ case 0 + .4byte _081B65F4 @ case 1 + .4byte _081B661E @ case 2 + .4byte _081B6624 @ case 3 + .4byte _081B6618 @ case 4 + .4byte _081B6612 @ case 5 +_081B65F4: + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + ldr r1, _081B6608 + cmp r0, r1 + beq _081B6632 + adds r0, r4, #0 + movs r1, #0x1a + b _081B6628 + .align 2, 0 +_081B6608: .4byte 0x0000012F +_081B660C: + adds r0, r4, #0 + movs r1, #0x1b + b _081B6628 +_081B6612: + adds r0, r4, #0 + movs r1, #0x1c + b _081B6628 +_081B6618: + adds r0, r4, #0 + movs r1, #0x1d + b _081B6628 +_081B661E: + adds r0, r4, #0 + movs r1, #0x1e + b _081B6628 +_081B6624: + adds r0, r4, #0 + movs r1, #0x1f +_081B6628: + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _081B6634 +_081B6632: + movs r0, #0 +_081B6634: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ItemEffectToMonEv + + thumb_func_start ItemEffectToStatString +ItemEffectToStatString: @ 0x081B663C + push {lr} + adds r2, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, #0xc + cmp r0, #5 + bhi _081B66A8 + lsls r0, r0, #2 + ldr r1, _081B6654 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081B6654: .4byte 0x081B6658 +_081B6658: @ jump table + .4byte _081B6678 @ case 0 + .4byte _081B6670 @ case 1 + .4byte _081B6690 @ case 2 + .4byte _081B66A0 @ case 3 + .4byte _081B6688 @ case 4 + .4byte _081B6680 @ case 5 +_081B6670: + ldr r1, _081B6674 + b _081B6692 + .align 2, 0 +_081B6674: .4byte 0x085C9AE7 +_081B6678: + ldr r1, _081B667C + b _081B6692 + .align 2, 0 +_081B667C: .4byte 0x085CA36F +_081B6680: + ldr r1, _081B6684 + b _081B6692 + .align 2, 0 +_081B6684: .4byte 0x085CA374 +_081B6688: + ldr r1, _081B668C + b _081B6692 + .align 2, 0 +_081B668C: .4byte 0x085CA383 +_081B6690: + ldr r1, _081B669C +_081B6692: + adds r0, r2, #0 + bl StringCopy + b _081B66A8 + .align 2, 0 +_081B669C: .4byte 0x085C9AED +_081B66A0: + ldr r1, _081B66AC + adds r0, r2, #0 + bl StringCopy +_081B66A8: + pop {r0} + bx r0 + .align 2, 0 +_081B66AC: .4byte 0x085C9AF2 + thumb_func_end ItemEffectToStatString + + thumb_func_start sub_081B66B0 +sub_081B66B0: @ 0x081B66B0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + mov sl, r0 + movs r1, #1 + mov r8, r1 + movs r0, #3 + bl sub_081B2E34 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + movs r6, #0 + movs r0, #0x64 + adds r2, r4, #0 + muls r2, r0, r2 + str r2, [sp, #0xc] +_081B66E0: + ldr r0, _081B6774 + adds r1, r6, #0 + adds r1, #0xd + ldr r2, [sp, #0xc] + adds r0, r2, r0 + bl GetMonData + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + mov r0, r8 + movs r1, #0 + bl GetFontAttribute + adds r4, r0, #0 + mov r0, r8 + movs r1, #2 + bl GetFontAttribute + adds r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r2, r5, #3 + ldr r0, _081B6778 + adds r2, r2, r0 + lsls r0, r6, #4 + adds r0, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r7, #0 + str r7, [sp, #8] + mov r0, sb + mov r1, r8 + adds r3, r4, #0 + bl AddTextPrinterParameterized + cmp r5, #0 + beq _081B673C + mov r0, sl + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 +_081B673C: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #3 + bls _081B66E0 + movs r0, #0x10 + str r0, [sp] + mov r0, sl + str r0, [sp, #4] + str r7, [sp, #8] + mov r0, sb + mov r1, r8 + movs r2, #0 + movs r3, #2 + bl sub_081984B0 + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B6774: .4byte 0x02024190 +_081B6778: .4byte 0x082EACC4 + thumb_func_end sub_081B66B0 + + thumb_func_start ether_effect_related_3 +ether_effect_related_3: @ 0x081B677C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r5, r4, #0 + bl Menu_ProcessInput + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + movs r0, #2 + rsbs r0, r0, #0 + cmp r1, r0 + beq _081B67B8 + adds r0, #1 + cmp r1, r0 + bne _081B67A8 + movs r0, #5 + bl PlaySE + adds r0, r4, #0 + bl sub_081B687C + b _081B67B8 +_081B67A8: + ldr r0, _081B67C0 + ldr r0, [r0] + adds r0, #0xd + bl sub_081B2CB0 + adds r0, r5, #0 + bl ether_effect_related_2 +_081B67B8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B67C0: .4byte 0x0203CB90 + thumb_func_end ether_effect_related_3 + + thumb_func_start dp05_ether +dp05_ether: @ 0x081B67C4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _081B67DC + ldrh r0, [r0] + cmp r0, #0xaf + bne _081B67E8 + ldr r0, _081B67E0 + ldr r0, [r0] + ldr r1, _081B67E4 + adds r0, r0, r1 + b _081B67F2 + .align 2, 0 +_081B67DC: .4byte 0x0203CB48 +_081B67E0: .4byte 0x03005AEC +_081B67E4: .4byte 0x00003214 +_081B67E8: + ldr r1, _081B680C + subs r0, #0xd + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] +_081B67F2: + ldrb r1, [r0, #4] + movs r0, #0x10 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _081B6814 + ldr r0, _081B6810 + strh r1, [r0, #0xe] + adds r0, r4, #0 + bl ether_effect_related + b _081B6836 + .align 2, 0 +_081B680C: .4byte 0x082EEF14 +_081B6810: .4byte 0x0203CB94 +_081B6814: + movs r0, #5 + bl PlaySE + movs r0, #0x16 + bl display_pokemon_menu_message + ldr r0, _081B683C + ldrb r0, [r0, #9] + bl sub_081B66B0 + ldr r1, _081B6840 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B6844 + str r1, [r0] +_081B6836: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B683C: .4byte 0x0203CB94 +_081B6840: .4byte 0x03005B60 +_081B6844: .4byte 0x081B677D + thumb_func_end dp05_ether + + thumb_func_start ether_effect_related_2 +ether_effect_related_2: @ 0x081B6848 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081B6874 + ldr r0, [r0] + adds r0, #0xc + bl sub_081B2CB0 + bl Menu_GetCursorPos + ldr r1, _081B6878 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r1, #0xe] + adds r0, r4, #0 + bl ether_effect_related + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B6874: .4byte 0x0203CB90 +_081B6878: .4byte 0x0203CB94 + thumb_func_end ether_effect_related_2 + + thumb_func_start sub_081B687C +sub_081B687C: @ 0x081B687C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _081B68A8 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r0, _081B68AC + str r0, [r1] + ldr r0, _081B68B0 + ldr r0, [r0] + movs r1, #0 + str r1, [r0, #4] + adds r0, #0xc + bl sub_081B2CB0 + movs r0, #5 + bl display_pokemon_menu_message + pop {r0} + bx r0 + .align 2, 0 +_081B68A8: .4byte 0x03005B60 +_081B68AC: .4byte 0x081B1041 +_081B68B0: .4byte 0x0203CB90 + thumb_func_end sub_081B687C + + thumb_func_start ether_effect_related +ether_effect_related: @ 0x081B68B4 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r7, _081B68E4 + ldr r0, _081B68E8 + ldrh r5, [r0] + adds r4, r7, #0 + subs r4, #0xe + ldrb r0, [r4, #9] + ldrb r2, [r7] + adds r1, r5, #0 + bl ExecuteTableBasedItemEffect__ + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081B68F4 + ldr r1, _081B68EC + movs r0, #0 + strb r0, [r1] + movs r0, #5 + bl PlaySE + ldr r0, _081B68F0 + b _081B693A + .align 2, 0 +_081B68E4: .4byte 0x0203CBA2 +_081B68E8: .4byte 0x0203CB48 +_081B68EC: .4byte 0x0203CBB4 +_081B68F0: .4byte 0x085C9AF7 +_081B68F4: + ldr r1, _081B695C + movs r0, #1 + strb r0, [r1] + movs r1, #9 + ldrsb r1, [r4, r1] + movs r0, #0x64 + adds r4, r1, #0 + muls r4, r0, r4 + ldr r0, _081B6960 + adds r4, r4, r0 + movs r0, #1 + bl PlaySE + adds r0, r5, #0 + movs r1, #1 + bl RemoveBagItem + movs r0, #0 + ldrsh r1, [r7, r0] + adds r1, #0xd + adds r0, r4, #0 + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x10 + ldr r0, _081B6964 + lsrs r1, r1, #0xd + ldr r2, _081B6968 + adds r1, r1, r2 + bl StringCopy + adds r0, r5, #0 + bl GetMedicineItemEffectMessage + ldr r0, _081B696C +_081B693A: + movs r1, #1 + bl sub_081B182C + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, _081B6970 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B6974 + str r1, [r0] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B695C: .4byte 0x0203CBB4 +_081B6960: .4byte 0x02024190 +_081B6964: .4byte 0x02021C40 +_081B6968: .4byte 0x082EACC4 +_081B696C: .4byte 0x02021C7C +_081B6970: .4byte 0x03005B60 +_081B6974: .4byte 0x081B6435 + thumb_func_end ether_effect_related + + thumb_func_start dp05_pp_up +dp05_pp_up: @ 0x081B6978 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #5 + bl PlaySE + movs r0, #0x17 + bl display_pokemon_menu_message + ldr r0, _081B69A8 + ldrb r0, [r0, #9] + bl sub_081B66B0 + ldr r1, _081B69AC + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B69B0 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B69A8: .4byte 0x0203CB94 +_081B69AC: .4byte 0x03005B60 +_081B69B0: .4byte 0x081B677D + thumb_func_end dp05_pp_up + + thumb_func_start ItemIdToBattleMoveId +ItemIdToBattleMoveId: @ 0x081B69B4 + lsls r0, r0, #0x10 + ldr r1, _081B69C4 + adds r0, r0, r1 + ldr r1, _081B69C8 + lsrs r0, r0, #0xf + adds r0, r0, r1 + ldrh r0, [r0] + bx lr + .align 2, 0 +_081B69C4: .4byte 0xFEDF0000 +_081B69C8: .4byte 0x085E18F8 + thumb_func_end ItemIdToBattleMoveId + + thumb_func_start IsMoveHm +IsMoveHm: @ 0x081B69CC + push {lr} + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + movs r1, #0 + ldr r3, _081B69E8 +_081B69D6: + adds r0, r1, #0 + adds r0, #0x32 + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + cmp r0, r2 + bne _081B69EC + movs r0, #1 + b _081B69F8 + .align 2, 0 +_081B69E8: .4byte 0x085E18F8 +_081B69EC: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #7 + bls _081B69D6 + movs r0, #0 +_081B69F8: + pop {r1} + bx r1 + thumb_func_end IsMoveHm + + thumb_func_start MonKnowsMove +MonKnowsMove: @ 0x081B69FC + push {r4, r5, r6, lr} + adds r6, r0, #0 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + movs r4, #0 +_081B6A06: + adds r1, r4, #0 + adds r1, #0xd + adds r0, r6, #0 + bl GetMonData + cmp r0, r5 + bne _081B6A18 + movs r0, #1 + b _081B6A24 +_081B6A18: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _081B6A06 + movs r0, #0 +_081B6A24: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MonKnowsMove + + thumb_func_start sub_081B6A2C +sub_081B6A2C: @ 0x081B6A2C + push {r4, lr} + adds r1, r0, #0 + ldr r4, _081B6A4C + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + movs r1, #1 + bl sub_081B182C + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B6A4C: .4byte 0x02021C7C + thumb_func_end sub_081B6A2C + + thumb_func_start sub_081B6A50 +sub_081B6A50: @ 0x081B6A50 + push {r4, lr} + adds r4, r0, #0 + adds r0, r1, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl sub_081B6A2C + ldr r1, _081B6A74 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B6A78 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B6A74: .4byte 0x03005B60 +_081B6A78: .4byte 0x081B6435 + thumb_func_end sub_081B6A50 + + thumb_func_start sub_081B6A7C +sub_081B6A7C: @ 0x081B6A7C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r0, #5 + bl PlaySE + ldr r7, _081B6B00 + movs r1, #9 + ldrsb r1, [r7, r1] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _081B6B04 + adds r5, r1, r0 + movs r0, #0xe + adds r0, r0, r7 + mov r8, r0 + ldr r0, _081B6B08 + ldrh r4, [r0] + ldr r1, _081B6B0C + adds r0, r5, #0 + bl GetMonNickname + adds r0, r4, #0 + bl ItemIdToBattleMoveId + strh r0, [r7, #0xe] + ldr r0, _081B6B10 + movs r2, #0xe + ldrsh r1, [r7, r2] + lsls r1, r1, #3 + ldr r2, _081B6B14 + adds r1, r1, r2 + bl StringCopy + movs r0, #0 + mov r1, r8 + strh r0, [r1, #2] + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl CanMonLearnTMTutor + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B6B24 + cmp r0, #2 + beq _081B6B2C + ldrh r1, [r7, #0xe] + adds r0, r5, #0 + bl GiveMoveToMon + lsls r0, r0, #0x10 + ldr r1, _081B6B18 + cmp r0, r1 + beq _081B6B3C + ldr r0, _081B6B1C + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B6B20 + str r0, [r1] + b _081B6B50 + .align 2, 0 +_081B6B00: .4byte 0x0203CB94 +_081B6B04: .4byte 0x02024190 +_081B6B08: .4byte 0x0203CB48 +_081B6B0C: .4byte 0x02021C40 +_081B6B10: .4byte 0x02021C54 +_081B6B14: .4byte 0x082EACC4 +_081B6B18: .4byte 0xFFFF0000 +_081B6B1C: .4byte 0x03005B60 +_081B6B20: .4byte 0x081B6B69 +_081B6B24: + ldr r1, _081B6B28 + b _081B6B2E + .align 2, 0 +_081B6B28: .4byte 0x085C9D7C +_081B6B2C: + ldr r1, _081B6B38 +_081B6B2E: + adds r0, r6, #0 + bl sub_081B6A50 + b _081B6B50 + .align 2, 0 +_081B6B38: .4byte 0x085C9E79 +_081B6B3C: + ldr r0, _081B6B5C + bl sub_081B6A2C + ldr r1, _081B6B60 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B6B64 + str r1, [r0] +_081B6B50: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B6B5C: .4byte 0x085C9DA1 +_081B6B60: .4byte 0x03005B60 +_081B6B64: .4byte 0x081B6CA5 + thumb_func_end sub_081B6A7C + + thumb_func_start sub_081B6B68 +sub_081B6B68: @ 0x081B6B68 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r2, _081B6BE8 + movs r1, #9 + ldrsb r1, [r2, r1] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _081B6BEC + adds r5, r1, r0 + adds r7, r2, #0 + adds r7, #0xe + ldr r0, _081B6BF0 + ldrh r4, [r0] + movs r1, #2 + ldrsh r0, [r7, r1] + cmp r0, #0 + bne _081B6BA4 + adds r0, r5, #0 + movs r1, #4 + bl AdjustFriendship + movs r0, #0xa9 + lsls r0, r0, #1 + cmp r4, r0 + bhi _081B6BA4 + adds r0, r4, #0 + movs r1, #1 + bl RemoveBagItem +_081B6BA4: + ldr r1, _081B6BF4 + adds r0, r5, #0 + bl GetMonNickname + ldr r0, _081B6BF8 + movs r2, #0 + ldrsh r1, [r7, r2] + lsls r1, r1, #3 + ldr r2, _081B6BFC + adds r1, r1, r2 + bl StringCopy + ldr r4, _081B6C00 + ldr r1, _081B6C04 + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + movs r1, #1 + bl sub_081B182C + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, _081B6C08 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B6C0C + str r1, [r0] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B6BE8: .4byte 0x0203CB94 +_081B6BEC: .4byte 0x02024190 +_081B6BF0: .4byte 0x0203CB48 +_081B6BF4: .4byte 0x02021C40 +_081B6BF8: .4byte 0x02021C54 +_081B6BFC: .4byte 0x082EACC4 +_081B6C00: .4byte 0x02021C7C +_081B6C04: .4byte 0x085C9D68 +_081B6C08: .4byte 0x03005B60 +_081B6C0C: .4byte 0x081B6C11 + thumb_func_end sub_081B6B68 + + thumb_func_start sub_081B6C10 +sub_081B6C10: @ 0x081B6C10 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl sub_081B18A4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B6C36 + ldr r0, _081B6C3C + bl PlayFanfare + ldr r1, _081B6C40 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B6C44 + str r1, [r0] +_081B6C36: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B6C3C: .4byte 0x0000016F +_081B6C40: .4byte 0x03005B60 +_081B6C44: .4byte 0x081B6C49 + thumb_func_end sub_081B6C10 + + thumb_func_start sub_081B6C48 +sub_081B6C48: @ 0x081B6C48 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r5, r4, #0 + bl IsFanfareTaskInactive + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081B6C9A + ldr r0, _081B6C84 + ldrh r1, [r0, #0x2e] + movs r2, #1 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _081B6C70 + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081B6C9A +_081B6C70: + ldr r0, _081B6C88 + movs r1, #0x10 + ldrsh r0, [r0, r1] + cmp r0, #1 + bne _081B6C8C + adds r0, r4, #0 + bl sub_081B7458 + b _081B6C9A + .align 2, 0 +_081B6C84: .4byte 0x03002360 +_081B6C88: .4byte 0x0203CB94 +_081B6C8C: + cmp r0, #2 + bne _081B6C94 + ldr r0, _081B6CA0 + strh r2, [r0] +_081B6C94: + adds r0, r5, #0 + bl sub_081B0F90 +_081B6C9A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B6CA0: .4byte 0x02037290 + thumb_func_end sub_081B6C48 + + thumb_func_start sub_081B6CA4 +sub_081B6CA4: @ 0x081B6CA4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl sub_081B18A4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B6CC8 + bl sub_081B2FDC + ldr r0, _081B6CD0 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B6CD4 + str r0, [r1] +_081B6CC8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B6CD0: .4byte 0x03005B60 +_081B6CD4: .4byte 0x081B6CD9 + thumb_func_end sub_081B6CA4 + + thumb_func_start sub_081B6CD8 +sub_081B6CD8: @ 0x081B6CD8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _081B6CFE + cmp r1, #0 + bgt _081B6CF8 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _081B6D24 + b _081B6D30 +_081B6CF8: + cmp r1, #1 + beq _081B6D2A + b _081B6D30 +_081B6CFE: + ldr r0, _081B6D18 + movs r1, #1 + bl sub_081B182C + ldr r1, _081B6D1C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B6D20 + str r1, [r0] + b _081B6D30 + .align 2, 0 +_081B6D18: .4byte 0x085C9E23 +_081B6D1C: .4byte 0x03005B60 +_081B6D20: .4byte 0x081B6D39 +_081B6D24: + movs r0, #5 + bl PlaySE +_081B6D2A: + adds r0, r4, #0 + bl sub_081B6EE0 +_081B6D30: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081B6CD8 + + thumb_func_start sub_081B6D38 +sub_081B6D38: @ 0x081B6D38 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl sub_081B18A4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B6D58 + ldr r0, _081B6D60 + ldr r1, [r0] + ldr r0, _081B6D64 + str r0, [r1, #4] + adds r0, r4, #0 + bl sub_081B0F90 +_081B6D58: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B6D60: .4byte 0x0203CB90 +_081B6D64: .4byte 0x081B6D69 + thumb_func_end sub_081B6D38 + + thumb_func_start sub_081B6D68 +sub_081B6D68: @ 0x081B6D68 + push {r4, lr} + sub sp, #4 + ldr r0, _081B6D90 + ldr r4, _081B6D94 + ldrb r1, [r4, #9] + ldr r2, _081B6D98 + ldrb r2, [r2] + subs r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r3, _081B6D9C + ldrh r4, [r4, #0xe] + str r4, [sp] + bl ShowSelectMovePokemonSummaryScreen + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B6D90: .4byte 0x02024190 +_081B6D94: .4byte 0x0203CB94 +_081B6D98: .4byte 0x0202418D +_081B6D9C: .4byte 0x081B6DA1 + thumb_func_end sub_081B6D68 + + thumb_func_start sub_081B6DA0 +sub_081B6DA0: @ 0x081B6DA0 + push {lr} + sub sp, #0xc + movs r0, #0x7f + str r0, [sp] + ldr r0, _081B6DC4 + str r0, [sp, #4] + ldr r0, _081B6DC8 + ldr r0, [r0] + str r0, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #1 + bl InitPartyMenu + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_081B6DC4: .4byte 0x081B6DCD +_081B6DC8: .4byte 0x0203CB94 + thumb_func_end sub_081B6DA0 + + thumb_func_start sub_081B6DCC +sub_081B6DCC: @ 0x081B6DCC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r5, r4, #0 + ldr r0, _081B6DF4 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081B6DFE + bl sub_081C14C8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + beq _081B6DF8 + adds r0, r4, #0 + bl sub_081B6E04 + b _081B6DFE + .align 2, 0 +_081B6DF4: .4byte 0x02037C74 +_081B6DF8: + adds r0, r5, #0 + bl sub_081B6EE0 +_081B6DFE: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_081B6DCC + + thumb_func_start sub_081B6E04 +sub_081B6E04: @ 0x081B6E04 + push {r4, r5, r6, lr} + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + ldr r0, _081B6E64 + movs r1, #9 + ldrsb r1, [r0, r1] + movs r0, #0x64 + adds r5, r1, #0 + muls r5, r0, r5 + ldr r0, _081B6E68 + adds r5, r5, r0 + bl sub_081C14C8 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r1, #0xd + adds r0, r5, #0 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r1, _081B6E6C + adds r0, r5, #0 + bl GetMonNickname + ldr r0, _081B6E70 + lsls r4, r4, #3 + ldr r1, _081B6E74 + adds r4, r4, r1 + adds r1, r4, #0 + bl StringCopy + ldr r0, _081B6E78 + bl sub_081B6A2C + ldr r1, _081B6E7C + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B6E80 + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081B6E64: .4byte 0x0203CB94 +_081B6E68: .4byte 0x02024190 +_081B6E6C: .4byte 0x02021C40 +_081B6E70: .4byte 0x02021C54 +_081B6E74: .4byte 0x082EACC4 +_081B6E78: .4byte 0x085C9E35 +_081B6E7C: .4byte 0x03005B60 +_081B6E80: .4byte 0x081B6E85 + thumb_func_end sub_081B6E04 + + thumb_func_start sub_081B6E84 +sub_081B6E84: @ 0x081B6E84 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + bl sub_081B18A4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B6ED0 + ldr r5, _081B6ED8 + movs r1, #9 + ldrsb r1, [r5, r1] + movs r0, #0x64 + adds r4, r1, #0 + muls r4, r0, r4 + ldr r0, _081B6EDC + adds r4, r4, r0 + bl sub_081C14C8 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl RemoveMonPPBonus + ldrh r5, [r5, #0xe] + bl sub_081C14C8 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl SetMonMoveSlot + adds r0, r6, #0 + bl sub_081B6B68 +_081B6ED0: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081B6ED8: .4byte 0x0203CB94 +_081B6EDC: .4byte 0x02024190 + thumb_func_end sub_081B6E84 + + thumb_func_start sub_081B6EE0 +sub_081B6EE0: @ 0x081B6EE0 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _081B6F28 + ldr r1, _081B6F2C + movs r2, #0xe + ldrsh r1, [r1, r2] + lsls r1, r1, #3 + ldr r2, _081B6F30 + adds r1, r1, r2 + bl StringCopy + ldr r4, _081B6F34 + ldr r1, _081B6F38 + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + movs r1, #1 + bl sub_081B182C + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, _081B6F3C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B6F40 + str r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B6F28: .4byte 0x02021C54 +_081B6F2C: .4byte 0x0203CB94 +_081B6F30: .4byte 0x082EACC4 +_081B6F34: .4byte 0x02021C7C +_081B6F38: .4byte 0x085C9DF2 +_081B6F3C: .4byte 0x03005B60 +_081B6F40: .4byte 0x081B6F45 + thumb_func_end sub_081B6EE0 + + thumb_func_start sub_081B6F44 +sub_081B6F44: @ 0x081B6F44 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl sub_081B18A4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B6F68 + bl sub_081B2FDC + ldr r0, _081B6F70 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B6F74 + str r0, [r1] +_081B6F68: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B6F70: .4byte 0x03005B60 +_081B6F74: .4byte 0x081B6F79 + thumb_func_end sub_081B6F44 + + thumb_func_start sub_081B6F78 +sub_081B6F78: @ 0x081B6F78 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r7, _081B6FA8 + movs r1, #9 + ldrsb r1, [r7, r1] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _081B6FAC + adds r4, r1, r0 + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r5, r0, #0x18 + cmp r5, #0 + beq _081B6FB6 + cmp r5, #0 + bgt _081B6FB0 + movs r0, #1 + rsbs r0, r0, #0 + cmp r5, r0 + beq _081B7038 + b _081B706C + .align 2, 0 +_081B6FA8: .4byte 0x0203CB94 +_081B6FAC: .4byte 0x02024190 +_081B6FB0: + cmp r5, #1 + beq _081B703E + b _081B706C +_081B6FB6: + ldr r1, _081B6FF8 + adds r0, r4, #0 + bl GetMonNickname + ldr r0, _081B6FFC + movs r2, #0xe + ldrsh r1, [r7, r2] + lsls r1, r1, #3 + ldr r2, _081B7000 + adds r1, r1, r2 + bl StringCopy + ldr r4, _081B7004 + ldr r1, _081B7008 + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + movs r1, #1 + bl sub_081B182C + movs r1, #0x10 + ldrsh r0, [r7, r1] + cmp r0, #1 + bne _081B7014 + ldr r0, _081B700C + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B7010 + str r0, [r1] + b _081B706C + .align 2, 0 +_081B6FF8: .4byte 0x02021C40 +_081B6FFC: .4byte 0x02021C54 +_081B7000: .4byte 0x082EACC4 +_081B7004: .4byte 0x02021C7C +_081B7008: .4byte 0x085C9E0D +_081B700C: .4byte 0x03005B60 +_081B7010: .4byte 0x081B7091 +_081B7014: + cmp r0, #2 + bne _081B701C + ldr r0, _081B702C + strh r5, [r0] +_081B701C: + ldr r0, _081B7030 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B7034 + str r0, [r1] + b _081B706C + .align 2, 0 +_081B702C: .4byte 0x02037290 +_081B7030: .4byte 0x03005B60 +_081B7034: .4byte 0x081B6435 +_081B7038: + movs r0, #5 + bl PlaySE +_081B703E: + ldr r1, _081B7074 + adds r0, r4, #0 + bl GetMonNickname + ldr r0, _081B7078 + ldr r1, _081B707C + movs r2, #0xe + ldrsh r1, [r1, r2] + lsls r1, r1, #3 + ldr r2, _081B7080 + adds r1, r1, r2 + bl StringCopy + ldr r0, _081B7084 + bl sub_081B6A2C + ldr r1, _081B7088 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B708C + str r1, [r0] +_081B706C: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B7074: .4byte 0x02021C40 +_081B7078: .4byte 0x02021C54 +_081B707C: .4byte 0x0203CB94 +_081B7080: .4byte 0x082EACC4 +_081B7084: .4byte 0x085C9DA1 +_081B7088: .4byte 0x03005B60 +_081B708C: .4byte 0x081B6CA5 + thumb_func_end sub_081B6F78 + + thumb_func_start sub_081B7090 +sub_081B7090: @ 0x081B7090 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl sub_081B18A4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B70A8 + adds r0, r4, #0 + bl sub_081B7458 +_081B70A8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081B7090 + + thumb_func_start dp05_rare_candy +dp05_rare_candy: @ 0x081B70B0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sl, r1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _081B7114 + mov sb, r0 + movs r1, #9 + ldrsb r1, [r0, r1] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _081B7118 + adds r5, r1, r0 + ldr r0, _081B711C + ldr r6, [r0] + movs r1, #0x86 + lsls r1, r1, #2 + adds r4, r6, r1 + ldr r2, _081B7120 + mov r8, r2 + adds r0, r5, #0 + movs r1, #0x38 + bl GetMonData + cmp r0, #0x64 + beq _081B7124 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_081B7644 + mov r1, sb + ldrb r0, [r1, #9] + mov r2, r8 + ldrh r1, [r2] + movs r2, #0 + bl ExecuteTableBasedItemEffect__ + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #0x89 + lsls r0, r0, #2 + adds r1, r6, r0 + adds r0, r5, #0 + bl sub_081B7644 + b _081B7126 + .align 2, 0 +_081B7114: .4byte 0x0203CB94 +_081B7118: .4byte 0x02024190 +_081B711C: .4byte 0x0203CB90 +_081B7120: .4byte 0x0203CB48 +_081B7124: + movs r4, #1 +_081B7126: + movs r0, #5 + bl PlaySE + cmp r4, #0 + beq _081B7160 + ldr r1, _081B7154 + movs r0, #0 + strb r0, [r1] + ldr r0, _081B7158 + movs r1, #1 + bl sub_081B182C + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, _081B715C + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + mov r1, sl + b _081B71C2 + .align 2, 0 +_081B7154: .4byte 0x0203CBB4 +_081B7158: .4byte 0x085C9AF7 +_081B715C: .4byte 0x03005B60 +_081B7160: + ldr r1, _081B71D4 + movs r0, #1 + strb r0, [r1] + movs r0, #0 + bl PlayFanfareByFanfareNum + ldr r0, _081B71D8 + ldrb r0, [r0, #9] + adds r1, r5, #0 + bl sub_081B71F8 + ldr r0, _081B71DC + ldrh r0, [r0] + movs r1, #1 + bl RemoveBagItem + ldr r1, _081B71E0 + adds r0, r5, #0 + bl GetMonNickname + ldr r4, _081B71E4 + adds r0, r5, #0 + movs r1, #0x38 + bl GetMonData + adds r1, r0, #0 + adds r0, r4, #0 + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r4, _081B71E8 + ldr r1, _081B71EC + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + movs r1, #1 + bl sub_081B182C + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, _081B71F0 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B71F4 +_081B71C2: + str r1, [r0] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B71D4: .4byte 0x0203CBB4 +_081B71D8: .4byte 0x0203CB94 +_081B71DC: .4byte 0x0203CB48 +_081B71E0: .4byte 0x02021C40 +_081B71E4: .4byte 0x02021C54 +_081B71E8: .4byte 0x02021C7C +_081B71EC: .4byte 0x085C9F4E +_081B71F0: .4byte 0x03005B60 +_081B71F4: .4byte 0x081B7281 + thumb_func_end dp05_rare_candy + + thumb_func_start sub_081B71F8 +sub_081B71F8: @ 0x081B71F8 + push {r4, r5, r6, r7, lr} + adds r5, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r7, r0, #0 + ldr r6, _081B7278 + lsls r4, r7, #4 + ldr r1, [r6] + adds r1, r1, r4 + adds r0, r5, #0 + bl party_menu_get_status_condition_and_update_object + ldr r2, _081B727C + ldr r0, [r6] + adds r3, r4, r0 + ldrb r1, [r3, #0xc] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + bge _081B7234 + adds r0, r5, #0 + adds r1, r3, #0 + movs r2, #1 + bl DisplayPartyPokemonLevelCheck +_081B7234: + ldr r1, [r6] + adds r1, r1, r4 + adds r0, r5, #0 + movs r2, #1 + bl DisplayPartyPokemonHPCheck + ldr r1, [r6] + adds r1, r1, r4 + adds r0, r5, #0 + movs r2, #1 + bl DisplayPartyPokemonMaxHPCheck + ldr r1, [r6] + adds r1, r1, r4 + adds r0, r5, #0 + bl DisplayPartyPokemonHPBarCheck + ldr r0, [r6] + adds r0, r4, r0 + ldrb r0, [r0, #9] + adds r1, r5, #0 + bl sub_081B57D8 + adds r0, r7, #0 + movs r1, #1 + bl sub_081B0C9C + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B7278: .4byte 0x0203CBA8 +_081B727C: .4byte 0x020205AC + thumb_func_end sub_081B71F8 + + thumb_func_start sub_081B7280 +sub_081B7280: @ 0x081B7280 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #0 + bl WaitFanfare + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081B72CC + bl sub_081B18A4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B72CC + ldr r0, _081B72D4 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _081B72B2 + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081B72CC +_081B72B2: + movs r0, #5 + bl PlaySE + adds r0, r4, #0 + bl sub_081B7328 + ldr r0, _081B72D8 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B72DC + str r0, [r1] +_081B72CC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B72D4: .4byte 0x03002360 +_081B72D8: .4byte 0x03005B60 +_081B72DC: .4byte 0x081B72E1 + thumb_func_end sub_081B7280 + + thumb_func_start sub_081B72E0 +sub_081B72E0: @ 0x081B72E0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _081B731C + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _081B72FA + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081B7314 +_081B72FA: + movs r0, #5 + bl PlaySE + adds r0, r4, #0 + bl sub_081B7374 + ldr r0, _081B7320 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B7324 + str r0, [r1] +_081B7314: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B731C: .4byte 0x03002360 +_081B7320: .4byte 0x03005B60 +_081B7324: .4byte 0x081B73B1 + thumb_func_end sub_081B72E0 + + thumb_func_start sub_081B7328 +sub_081B7328: @ 0x081B7328 + push {r4, r5, lr} + sub sp, #8 + ldr r0, _081B7370 + ldr r5, [r0] + movs r0, #0x86 + lsls r0, r0, #2 + adds r4, r5, r0 + bl sub_081B3004 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x18] + ldrh r0, [r4, #0x18] + movs r1, #0x89 + lsls r1, r1, #2 + adds r2, r5, r1 + movs r1, #2 + str r1, [sp] + movs r1, #3 + str r1, [sp, #4] + adds r1, r4, #0 + movs r3, #1 + bl DrawLevelUpWindowPg1 + ldrb r0, [r4, #0x18] + movs r1, #2 + bl CopyWindowToVram + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B7370: .4byte 0x0203CB90 + thumb_func_end sub_081B7328 + + thumb_func_start sub_081B7374 +sub_081B7374: @ 0x081B7374 + push {r4, lr} + sub sp, #4 + ldr r0, _081B73AC + ldr r1, [r0] + movs r0, #0x86 + lsls r0, r0, #2 + adds r4, r1, r0 + ldrh r0, [r4, #0x18] + movs r2, #0x89 + lsls r2, r2, #2 + adds r1, r1, r2 + movs r2, #3 + str r2, [sp] + movs r2, #1 + movs r3, #2 + bl DrawLevelUpWindowPg2 + ldrb r0, [r4, #0x18] + movs r1, #2 + bl CopyWindowToVram + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B73AC: .4byte 0x0203CB90 + thumb_func_end sub_081B7374 + + thumb_func_start sub_081B73B0 +sub_081B73B0: @ 0x081B73B0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r0, #0 + bl WaitFanfare + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081B7452 + ldr r0, _081B7408 + ldrh r1, [r0, #0x2e] + movs r6, #1 + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + bne _081B73D8 + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081B7452 +_081B73D8: + bl sub_081B3034 + ldr r4, _081B740C + movs r1, #9 + ldrsb r1, [r4, r1] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081B7410 + adds r0, r0, r1 + movs r1, #1 + bl MonTryLearningNewMove + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + strh r6, [r4, #0x10] + ldr r0, _081B7414 + cmp r1, r0 + beq _081B7434 + cmp r1, r0 + bgt _081B7418 + cmp r1, #0 + beq _081B7424 + b _081B744C + .align 2, 0 +_081B7408: .4byte 0x03002360 +_081B740C: .4byte 0x0203CB94 +_081B7410: .4byte 0x02024190 +_081B7414: .4byte 0x0000FFFE +_081B7418: + ldr r0, _081B7420 + cmp r1, r0 + beq _081B742C + b _081B744C + .align 2, 0 +_081B7420: .4byte 0x0000FFFF +_081B7424: + adds r0, r5, #0 + bl sub_081B74BC + b _081B7452 +_081B742C: + adds r0, r5, #0 + bl sub_081B7528 + b _081B7452 +_081B7434: + ldr r0, _081B7444 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B7448 + str r0, [r1] + b _081B7452 + .align 2, 0 +_081B7444: .4byte 0x03005B60 +_081B7448: .4byte 0x081B7459 +_081B744C: + adds r0, r5, #0 + bl sub_081B75B8 +_081B7452: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_081B73B0 + + thumb_func_start sub_081B7458 +sub_081B7458: @ 0x081B7458 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _081B7488 + movs r1, #9 + ldrsb r1, [r0, r1] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081B748C + adds r0, r0, r1 + movs r1, #0 + bl MonTryLearningNewMove + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r0, _081B7490 + cmp r1, r0 + beq _081B74B6 + cmp r1, r0 + bgt _081B7494 + cmp r1, #0 + beq _081B74A0 + b _081B74B0 + .align 2, 0 +_081B7488: .4byte 0x0203CB94 +_081B748C: .4byte 0x02024190 +_081B7490: .4byte 0x0000FFFE +_081B7494: + ldr r0, _081B749C + cmp r1, r0 + beq _081B74A8 + b _081B74B0 + .align 2, 0 +_081B749C: .4byte 0x0000FFFF +_081B74A0: + adds r0, r4, #0 + bl sub_081B74BC + b _081B74B6 +_081B74A8: + adds r0, r4, #0 + bl sub_081B7528 + b _081B74B6 +_081B74B0: + adds r0, r4, #0 + bl sub_081B75B8 +_081B74B6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_081B7458 + + thumb_func_start sub_081B74BC +sub_081B74BC: @ 0x081B74BC + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r6, _081B7500 + movs r1, #9 + ldrsb r1, [r6, r1] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _081B7504 + adds r7, r1, r0 + adds r0, r7, #0 + movs r1, #0 + movs r2, #0 + bl GetEvolutionTargetSpecies + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0 + beq _081B750C + bl FreePartyPointers + ldr r0, _081B7508 + ldr r1, [r6] + str r1, [r0] + ldrb r3, [r6, #9] + adds r0, r7, #0 + adds r1, r4, #0 + movs r2, #1 + bl BeginEvolutionScene + adds r0, r5, #0 + bl DestroyTask + b _081B751A + .align 2, 0 +_081B7500: .4byte 0x0203CB94 +_081B7504: .4byte 0x02024190 +_081B7508: .4byte 0x03005F28 +_081B750C: + ldr r0, _081B7520 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B7524 + str r0, [r1] +_081B751A: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B7520: .4byte 0x03005B60 +_081B7524: .4byte 0x081B6435 + thumb_func_end sub_081B74BC + + thumb_func_start sub_081B7528 +sub_081B7528: @ 0x081B7528 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _081B7590 + mov r8, r0 + movs r1, #9 + ldrsb r1, [r0, r1] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081B7594 + adds r0, r0, r1 + ldr r1, _081B7598 + bl GetMonNickname + ldr r0, _081B759C + ldr r6, _081B75A0 + ldrh r1, [r6] + lsls r1, r1, #3 + ldr r2, _081B75A4 + adds r1, r1, r2 + bl StringCopy + ldr r4, _081B75A8 + ldr r1, _081B75AC + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + movs r1, #1 + bl sub_081B182C + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + ldrh r0, [r6] + mov r1, r8 + strh r0, [r1, #0xe] + ldr r1, _081B75B0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B75B4 + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081B7590: .4byte 0x0203CB94 +_081B7594: .4byte 0x02024190 +_081B7598: .4byte 0x02021C40 +_081B759C: .4byte 0x02021C54 +_081B75A0: .4byte 0x02024186 +_081B75A4: .4byte 0x082EACC4 +_081B75A8: .4byte 0x02021C7C +_081B75AC: .4byte 0x085C9DA1 +_081B75B0: .4byte 0x03005B60 +_081B75B4: .4byte 0x081B6CA5 + thumb_func_end sub_081B7528 + + thumb_func_start sub_081B75B8 +sub_081B75B8: @ 0x081B75B8 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r6, r0, #0 + adds r5, r1, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + ldr r0, _081B7620 + mov r8, r0 + movs r1, #9 + ldrsb r1, [r0, r1] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081B7624 + adds r0, r0, r1 + ldr r1, _081B7628 + bl GetMonNickname + ldr r0, _081B762C + lsls r1, r5, #3 + ldr r2, _081B7630 + adds r1, r1, r2 + bl StringCopy + ldr r4, _081B7634 + ldr r1, _081B7638 + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + movs r1, #1 + bl sub_081B182C + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + mov r0, r8 + strh r5, [r0, #0xe] + ldr r1, _081B763C + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B7640 + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081B7620: .4byte 0x0203CB94 +_081B7624: .4byte 0x02024190 +_081B7628: .4byte 0x02021C40 +_081B762C: .4byte 0x02021C54 +_081B7630: .4byte 0x082EACC4 +_081B7634: .4byte 0x02021C7C +_081B7638: .4byte 0x085C9D68 +_081B763C: .4byte 0x03005B60 +_081B7640: .4byte 0x081B6C11 + thumb_func_end sub_081B75B8 + + thumb_func_start sub_081B7644 +sub_081B7644: @ 0x081B7644 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r1, #0x3a + bl GetMonData + strh r0, [r5] + adds r0, r4, #0 + movs r1, #0x3b + bl GetMonData + strh r0, [r5, #2] + adds r0, r4, #0 + movs r1, #0x3c + bl GetMonData + strh r0, [r5, #4] + adds r0, r4, #0 + movs r1, #0x3e + bl GetMonData + strh r0, [r5, #8] + adds r0, r4, #0 + movs r1, #0x3f + bl GetMonData + strh r0, [r5, #0xa] + adds r0, r4, #0 + movs r1, #0x3d + bl GetMonData + strh r0, [r5, #6] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081B7644 + + thumb_func_start sub_081B768C +sub_081B768C: @ 0x081B768C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081B76C0 + ldr r2, [r1] + movs r3, #0x86 + lsls r3, r3, #2 + adds r1, r2, r3 + movs r3, #0 + strh r3, [r1] + ldr r4, _081B76C4 + adds r1, r2, r4 + strh r3, [r1] + ldr r1, _081B76C8 + ldrb r1, [r1, #9] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r3, #0x87 + lsls r3, r3, #2 + adds r2, r2, r3 + strh r1, [r2] + bl sub_081B76CC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B76C0: .4byte 0x0203CB90 +_081B76C4: .4byte 0x0000021A +_081B76C8: .4byte 0x0203CB94 + thumb_func_end sub_081B768C + + thumb_func_start sub_081B76CC +sub_081B76CC: @ 0x081B76CC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + mov r8, r4 + ldr r6, _081B7724 + movs r1, #9 + ldrsb r1, [r6, r1] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _081B7728 + adds r5, r1, r0 + adds r0, r5, #0 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _081B7712 + adds r0, r5, #0 + movs r1, #0x39 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + ldrb r0, [r6, #9] + ldr r1, _081B772C + ldrh r1, [r1] + movs r2, #0 + bl ExecuteTableBasedItemEffect__ + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081B7738 +_081B7712: + ldr r0, _081B7730 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B7734 + str r0, [r1] + b _081B77CE + .align 2, 0 +_081B7724: .4byte 0x0203CB94 +_081B7728: .4byte 0x02024190 +_081B772C: .4byte 0x0203CB48 +_081B7730: .4byte 0x03005B60 +_081B7734: .4byte 0x081B77F1 +_081B7738: + movs r0, #1 + bl PlaySE + ldr r4, _081B77DC + movs r0, #9 + ldrsb r0, [r6, r0] + lsls r0, r0, #4 + ldr r1, [r4] + adds r1, r1, r0 + adds r0, r5, #0 + bl party_menu_get_status_condition_and_update_object + ldr r2, _081B77E0 + movs r0, #9 + ldrsb r0, [r6, r0] + ldr r1, [r4] + lsls r0, r0, #4 + adds r3, r0, r1 + ldrb r1, [r3, #0xc] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + bge _081B777A + adds r0, r5, #0 + adds r1, r3, #0 + movs r2, #1 + bl DisplayPartyPokemonLevelCheck +_081B777A: + ldr r4, _081B77E4 + ldr r0, [r4] + movs r1, #0x87 + lsls r1, r1, #2 + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0 + bl sub_081B0C9C + ldrb r0, [r6, #9] + movs r1, #1 + bl sub_081B0C9C + adds r0, r5, #0 + movs r1, #0x39 + bl GetMonData + adds r3, r0, #0 + subs r3, r3, r7 + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + ldrb r1, [r6, #9] + ldr r0, _081B77E8 + str r0, [sp] + mov r0, r8 + movs r2, #1 + bl sub_081B1BE8 + mov r0, r8 + movs r1, #0 + adds r2, r7, #0 + bl sub_081B1C78 + ldr r0, [r4] + movs r2, #0x86 + lsls r2, r2, #2 + adds r1, r0, r2 + movs r2, #1 + strh r2, [r1] + ldr r1, _081B77EC + adds r0, r0, r1 + strh r2, [r0] +_081B77CE: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B77DC: .4byte 0x0203CBA8 +_081B77E0: .4byte 0x020205AC +_081B77E4: .4byte 0x0203CB90 +_081B77E8: .4byte 0x081B78B5 +_081B77EC: .4byte 0x0000021A + thumb_func_end sub_081B76CC + + thumb_func_start task_sacred_ash_party_loop +task_sacred_ash_party_loop: @ 0x081B77F0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl sub_081B18A4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B78AE + ldr r5, _081B7858 + ldr r2, [r5] + movs r0, #0x86 + lsls r0, r0, #2 + adds r1, r2, r0 + movs r3, #0 + ldrsh r0, [r1, r3] + ldr r3, _081B785C + cmp r0, #1 + bne _081B7826 + movs r0, #0 + strh r0, [r1] + movs r1, #9 + ldrsb r1, [r3, r1] + movs r6, #0x87 + lsls r6, r6, #2 + adds r0, r2, r6 + strh r1, [r0] +_081B7826: + ldrb r0, [r3, #9] + adds r0, #1 + strb r0, [r3, #9] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #6 + bne _081B78A8 + ldr r0, [r5] + ldr r1, _081B7860 + adds r0, r0, r1 + movs r2, #0 + ldrsh r1, [r0, r2] + cmp r1, #0 + bne _081B786C + ldr r0, _081B7864 + strb r1, [r0] + ldr r0, _081B7868 + movs r1, #1 + bl sub_081B182C + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + b _081B787C + .align 2, 0 +_081B7858: .4byte 0x0203CB90 +_081B785C: .4byte 0x0203CB94 +_081B7860: .4byte 0x0000021A +_081B7864: .4byte 0x0203CBB4 +_081B7868: .4byte 0x085C9AF7 +_081B786C: + ldr r1, _081B7894 + movs r0, #1 + strb r0, [r1] + ldr r0, _081B7898 + ldrh r0, [r0] + movs r1, #1 + bl RemoveBagItem +_081B787C: + ldr r1, _081B789C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B78A0 + str r1, [r0] + ldr r1, _081B78A4 + movs r0, #0 + strb r0, [r1, #9] + b _081B78AE + .align 2, 0 +_081B7894: .4byte 0x0203CBB4 +_081B7898: .4byte 0x0203CB48 +_081B789C: .4byte 0x03005B60 +_081B78A0: .4byte 0x081B6435 +_081B78A4: .4byte 0x0203CB94 +_081B78A8: + adds r0, r4, #0 + bl sub_081B76CC +_081B78AE: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end task_sacred_ash_party_loop + + thumb_func_start sub_081B78B4 +sub_081B78B4: @ 0x081B78B4 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _081B78FC + movs r1, #9 + ldrsb r1, [r0, r1] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081B7900 + adds r0, r0, r1 + ldr r1, _081B7904 + bl GetMonNickname + ldr r4, _081B7908 + ldr r1, _081B790C + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r4, #0 + movs r1, #0 + bl sub_081B182C + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, _081B7910 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B7914 + str r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B78FC: .4byte 0x0203CB94 +_081B7900: .4byte 0x02024190 +_081B7904: .4byte 0x02021C40 +_081B7908: .4byte 0x02021C7C +_081B790C: .4byte 0x085C9E8F +_081B7910: .4byte 0x03005B60 +_081B7914: .4byte 0x081B77F1 + thumb_func_end sub_081B78B4 + + thumb_func_start sub_081B7918 +sub_081B7918: @ 0x081B7918 + push {r4, r5, r6, lr} + adds r6, r1, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r0, #5 + bl PlaySE + ldr r2, _081B7964 + ldr r1, _081B7968 + ldr r0, [r1] + str r0, [r2] + ldrb r0, [r1, #9] + ldr r4, _081B796C + ldrh r1, [r4] + movs r2, #0 + bl ExecuteTableBasedItemEffect__ + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081B797C + ldr r1, _081B7970 + movs r0, #0 + strb r0, [r1] + ldr r0, _081B7974 + movs r1, #1 + bl sub_081B182C + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, _081B7978 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + str r6, [r0] + b _081B7988 + .align 2, 0 +_081B7964: .4byte 0x03005F28 +_081B7968: .4byte 0x0203CB94 +_081B796C: .4byte 0x0203CB48 +_081B7970: .4byte 0x0203CBB4 +_081B7974: .4byte 0x085C9AF7 +_081B7978: .4byte 0x03005B60 +_081B797C: + ldrh r0, [r4] + movs r1, #1 + bl RemoveBagItem + bl FreePartyPointers +_081B7988: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081B7918 + + thumb_func_start GetItemEffectType +GetItemEffectType: @ 0x081B7990 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + adds r2, r1, #0 + subs r2, #0xd + lsls r0, r2, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xa5 + bls _081B79A4 + b _081B7AE4 +_081B79A4: + cmp r1, #0xaf + bne _081B79BC + ldr r0, _081B79B4 + ldr r0, [r0] + ldr r1, _081B79B8 + adds r4, r0, r1 + b _081B79C4 + .align 2, 0 +_081B79B4: .4byte 0x03005AEC +_081B79B8: .4byte 0x00003214 +_081B79BC: + ldr r1, _081B79EC + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r4, [r0] +_081B79C4: + ldrb r1, [r4] + movs r5, #0x3f + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + bne _081B79E6 + ldrb r0, [r4, #1] + cmp r0, #0 + bne _081B79E6 + ldrb r0, [r4, #2] + cmp r0, #0 + bne _081B79E6 + ldrb r3, [r4, #3] + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + beq _081B79F0 +_081B79E6: + movs r0, #0 + b _081B7AEA + .align 2, 0 +_081B79EC: .4byte 0x082EEF14 +_081B79F0: + movs r2, #0x40 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _081B79FE + movs r0, #0xa + b _081B7AEA +_081B79FE: + adds r0, r2, #0 + ands r0, r3 + cmp r0, #0 + beq _081B7A0A + movs r0, #1 + b _081B7AEA +_081B7A0A: + adds r2, r5, #0 + ands r2, r3 + cmp r2, #0 + bne _081B7A18 + lsrs r0, r1, #7 + cmp r0, #0 + beq _081B7A5A +_081B7A18: + cmp r2, #0x20 + bne _081B7A20 + movs r0, #4 + b _081B7AEA +_081B7A20: + cmp r2, #0x10 + bne _081B7A28 + movs r0, #3 + b _081B7AEA +_081B7A28: + cmp r2, #8 + bne _081B7A30 + movs r0, #5 + b _081B7AEA +_081B7A30: + cmp r2, #4 + bne _081B7A38 + movs r0, #6 + b _081B7AEA +_081B7A38: + cmp r2, #2 + bne _081B7A40 + movs r0, #7 + b _081B7AEA +_081B7A40: + cmp r2, #1 + bne _081B7A48 + movs r0, #8 + b _081B7AEA +_081B7A48: + lsrs r0, r1, #7 + cmp r0, #0 + beq _081B7A56 + cmp r2, #0 + bne _081B7A56 + movs r0, #9 + b _081B7AEA +_081B7A56: + movs r0, #0xb + b _081B7AEA +_081B7A5A: + ldrb r1, [r4, #4] + movs r0, #0x44 + ands r0, r1 + adds r2, r1, #0 + cmp r0, #0 + beq _081B7A6A + movs r0, #2 + b _081B7AEA +_081B7A6A: + movs r5, #2 + adds r0, r5, #0 + ands r0, r2 + cmp r0, #0 + beq _081B7A78 + movs r0, #0xc + b _081B7AEA +_081B7A78: + movs r3, #1 + adds r0, r3, #0 + ands r0, r2 + cmp r0, #0 + beq _081B7A86 + movs r0, #0xd + b _081B7AEA +_081B7A86: + ldrb r1, [r4, #5] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _081B7A94 + movs r0, #0xe + b _081B7AEA +_081B7A94: + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _081B7AA0 + movs r0, #0xf + b _081B7AEA +_081B7AA0: + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _081B7AAC + movs r0, #0x10 + b _081B7AEA +_081B7AAC: + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _081B7AB8 + movs r0, #0x11 + b _081B7AEA +_081B7AB8: + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _081B7AC4 + movs r0, #0x12 + b _081B7AEA +_081B7AC4: + movs r0, #0x20 + ands r0, r2 + cmp r0, #0 + beq _081B7AD0 + movs r0, #0x13 + b _081B7AEA +_081B7AD0: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _081B7ADC + movs r0, #0x14 + b _081B7AEA +_081B7ADC: + movs r0, #0x18 + ands r0, r2 + cmp r0, #0 + bne _081B7AE8 +_081B7AE4: + movs r0, #0x16 + b _081B7AEA +_081B7AE8: + movs r0, #0x15 +_081B7AEA: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end GetItemEffectType + + thumb_func_start sub_081B7AF0 +sub_081B7AF0: @ 0x081B7AF0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _081B7B70 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081B7BBC + ldr r7, _081B7B74 + movs r1, #9 + ldrsb r1, [r7, r1] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _081B7B78 + adds r5, r1, r0 + movs r0, #0xe + adds r0, r0, r7 + mov r8, r0 + ldr r1, _081B7B7C + adds r0, r5, #0 + bl GetMonNickname + ldr r4, _081B7B80 + ldrb r0, [r4] + bl GetTutorMove + strh r0, [r7, #0xe] + ldr r0, _081B7B84 + movs r2, #0xe + ldrsh r1, [r7, r2] + lsls r1, r1, #3 + ldr r2, _081B7B88 + adds r1, r1, r2 + bl StringCopy + movs r0, #2 + mov r1, r8 + strh r0, [r1, #2] + ldrb r2, [r4] + adds r0, r5, #0 + movs r1, #0 + bl CanMonLearnTMTutor + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B7B90 + cmp r0, #2 + beq _081B7B98 + ldrh r1, [r7, #0xe] + adds r0, r5, #0 + bl GiveMoveToMon + lsls r0, r0, #0x10 + ldr r1, _081B7B8C + cmp r0, r1 + beq _081B7BA8 + adds r0, r6, #0 + bl sub_081B6B68 + b _081B7BBC + .align 2, 0 +_081B7B70: .4byte 0x02037C74 +_081B7B74: .4byte 0x0203CB94 +_081B7B78: .4byte 0x02024190 +_081B7B7C: .4byte 0x02021C40 +_081B7B80: .4byte 0x02037282 +_081B7B84: .4byte 0x02021C54 +_081B7B88: .4byte 0x082EACC4 +_081B7B8C: .4byte 0xFFFF0000 +_081B7B90: + ldr r1, _081B7B94 + b _081B7B9A + .align 2, 0 +_081B7B94: .4byte 0x085C9D7C +_081B7B98: + ldr r1, _081B7BA4 +_081B7B9A: + adds r0, r6, #0 + bl sub_081B6A50 + b _081B7BBC + .align 2, 0 +_081B7BA4: .4byte 0x085C9E79 +_081B7BA8: + ldr r0, _081B7BC8 + bl sub_081B6A2C + ldr r1, _081B7BCC + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B7BD0 + str r1, [r0] +_081B7BBC: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B7BC8: .4byte 0x085C9DA1 +_081B7BCC: .4byte 0x03005B60 +_081B7BD0: .4byte 0x081B6CA5 + thumb_func_end sub_081B7AF0 + + thumb_func_start CB2_PartyMenuFromStartMenu +CB2_PartyMenuFromStartMenu: @ 0x081B7BD4 + push {lr} + sub sp, #0xc + movs r0, #0 + str r0, [sp] + ldr r0, _081B7BF8 + str r0, [sp, #4] + ldr r0, _081B7BFC + str r0, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl InitPartyMenu + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_081B7BF8: .4byte 0x081B1041 +_081B7BFC: .4byte 0x08085AFD + thumb_func_end CB2_PartyMenuFromStartMenu + + thumb_func_start sub_081B7C00 +sub_081B7C00: @ 0x081B7C00 + push {lr} + sub sp, #0xc + bl InBattlePyramid + lsls r0, r0, #0x18 + ldr r1, _081B7C38 + cmp r0, #0 + bne _081B7C12 + ldr r1, _081B7C3C +_081B7C12: + movs r0, #6 + str r0, [sp] + ldr r0, _081B7C40 + str r0, [sp, #4] + str r1, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #5 + movs r3, #0 + bl InitPartyMenu + ldr r1, _081B7C44 + ldr r0, _081B7C48 + ldrh r0, [r0] + strh r0, [r1, #0xc] + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_081B7C38: .4byte 0x081C478D +_081B7C3C: .4byte 0x081B5EF5 +_081B7C40: .4byte 0x081B1041 +_081B7C44: .4byte 0x0203CB94 +_081B7C48: .4byte 0x0203CB48 + thumb_func_end sub_081B7C00 + + thumb_func_start sub_081B7C4C +sub_081B7C4C: @ 0x081B7C4C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r6, r4, #0 + ldr r5, _081B7C8C + ldr r0, _081B7C90 + mov sb, r0 + ldrb r0, [r0, #9] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #0x64 + mov r8, r1 + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + ldr r7, _081B7C94 + adds r0, r0, r7 + movs r1, #0xc + bl GetMonData + strh r0, [r5] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _081B7C98 + adds r0, r4, #0 + bl sub_081B7CE4 + b _081B7CD0 + .align 2, 0 +_081B7C8C: .4byte 0x0203CBC8 +_081B7C90: .4byte 0x0203CB94 +_081B7C94: .4byte 0x02024190 +_081B7C98: + ldrh r0, [r5] + bl ItemIsMail + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081B7CAC + adds r0, r4, #0 + bl sub_081B8058 + b _081B7CD0 +_081B7CAC: + mov r1, sb + movs r0, #9 + ldrsb r0, [r1, r0] + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + adds r0, r0, r7 + ldrh r1, [r5] + movs r2, #1 + bl sub_081B19EC + ldr r1, _081B7CDC + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B7CE0 + str r1, [r0] +_081B7CD0: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B7CDC: .4byte 0x03005B60 +_081B7CE0: .4byte 0x081B7F41 + thumb_func_end sub_081B7C4C + + thumb_func_start sub_081B7CE4 +sub_081B7CE4: @ 0x081B7CE4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r5, _081B7D10 + ldrh r0, [r5, #0xc] + bl ItemIsMail + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081B7D1C + ldrh r0, [r5, #0xc] + bl sub_081B8090 + ldr r0, _081B7D14 + ldr r1, [r0] + ldr r0, _081B7D18 + str r0, [r1, #4] + adds r0, r4, #0 + bl sub_081B0F90 + b _081B7D22 + .align 2, 0 +_081B7D10: .4byte 0x0203CB94 +_081B7D14: .4byte 0x0203CB90 +_081B7D18: .4byte 0x081B7DED +_081B7D1C: + adds r0, r4, #0 + bl sub_081B7D28 +_081B7D22: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_081B7CE4 + + thumb_func_start sub_081B7D28 +sub_081B7D28: @ 0x081B7D28 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _081B7D90 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081B7D84 + ldr r4, _081B7D94 + ldrh r5, [r4, #0xc] + movs r0, #9 + ldrsb r0, [r4, r0] + movs r1, #0x64 + mov r8, r1 + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + ldr r6, _081B7D98 + adds r0, r0, r6 + adds r1, r5, #0 + movs r2, #0 + movs r3, #1 + bl sub_081B1954 + movs r0, #9 + ldrsb r0, [r4, r0] + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + adds r0, r0, r6 + adds r1, r5, #0 + bl sub_081B1A88 + adds r0, r5, #0 + bl sub_081B8090 + ldr r1, _081B7D9C + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B7DA0 + str r1, [r0] +_081B7D84: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B7D90: .4byte 0x02037C74 +_081B7D94: .4byte 0x0203CB94 +_081B7D98: .4byte 0x02024190 +_081B7D9C: .4byte 0x03005B60 +_081B7DA0: .4byte 0x081B7DA5 + thumb_func_end sub_081B7D28 + + thumb_func_start sub_081B7DA4 +sub_081B7DA4: @ 0x081B7DA4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _081B7DE0 + ldrb r4, [r0, #9] + bl sub_081B18A4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B7DD8 + lsls r2, r4, #0x18 + asrs r2, r2, #0x18 + movs r0, #0x64 + muls r0, r2, r0 + ldr r1, _081B7DE4 + adds r0, r0, r1 + ldr r1, _081B7DE8 + lsls r2, r2, #4 + ldr r1, [r1] + adds r1, r1, r2 + bl sub_081B5934 + adds r0, r5, #0 + bl sub_081B0F90 +_081B7DD8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B7DE0: .4byte 0x0203CB94 +_081B7DE4: .4byte 0x02024190 +_081B7DE8: .4byte 0x0203CBA8 + thumb_func_end sub_081B7DA4 + + thumb_func_start sub_081B7DEC +sub_081B7DEC: @ 0x081B7DEC + push {r4, r5, r6, lr} + ldr r4, _081B7E34 + movs r0, #9 + ldrsb r0, [r4, r0] + movs r6, #0x64 + muls r0, r6, r0 + ldr r5, _081B7E38 + adds r0, r0, r5 + ldrh r1, [r4, #0xc] + bl sub_081B1A88 + movs r0, #9 + ldrsb r0, [r4, r0] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #0x40 + bl GetMonData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081B7E3C + lsls r2, r0, #3 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r0, _081B7E40 + adds r2, r2, r0 + ldr r1, [r1] + adds r1, r1, r2 + ldr r2, _081B7E44 + movs r0, #4 + movs r3, #3 + bl DoEasyChatScreen + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081B7E34: .4byte 0x0203CB94 +_081B7E38: .4byte 0x02024190 +_081B7E3C: .4byte 0x03005AEC +_081B7E40: .4byte 0x00002BE0 +_081B7E44: .4byte 0x081B7E49 + thumb_func_end sub_081B7DEC + + thumb_func_start sub_081B7E48 +sub_081B7E48: @ 0x081B7E48 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + ldr r6, _081B7E98 + movs r1, #9 + ldrsb r1, [r6, r1] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _081B7E9C + adds r5, r1, r0 + adds r0, r5, #0 + movs r1, #0xc + bl GetMonData + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + ldr r0, _081B7EA0 + ldrh r0, [r0] + cmp r0, #0 + bne _081B7EA8 + adds r0, r5, #0 + bl TakeMailFromMon + ldr r4, _081B7EA4 + adds r0, r5, #0 + movs r1, #0xc + adds r2, r4, #0 + bl SetMonData + ldrh r0, [r4] + movs r1, #1 + bl RemoveBagItem + adds r0, r7, #0 + bl sub_081B80BC + ldr r0, [r6] + bl SetMainCallback2 + b _081B7EC4 + .align 2, 0 +_081B7E98: .4byte 0x0203CB94 +_081B7E9C: .4byte 0x02024190 +_081B7EA0: .4byte 0x02037290 +_081B7EA4: .4byte 0x0203CBC8 +_081B7EA8: + ldrb r0, [r6, #8] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + ldrb r2, [r6, #0xb] + movs r1, #0x7f + str r1, [sp] + ldr r1, _081B7ECC + str r1, [sp, #4] + ldr r1, [r6] + str r1, [sp, #8] + movs r1, #0xff + movs r3, #1 + bl InitPartyMenu +_081B7EC4: + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B7ECC: .4byte 0x081B7ED1 + thumb_func_end sub_081B7E48 + + thumb_func_start sub_081B7ED0 +sub_081B7ED0: @ 0x081B7ED0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _081B7EF8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081B7F2A + ldr r1, _081B7EFC + ldrh r0, [r1] + cmp r0, #0 + beq _081B7F04 + ldr r0, _081B7F00 + ldrh r0, [r0, #0xc] + ldrh r1, [r1] + movs r2, #0 + bl sub_081B1A38 + b _081B7F1C + .align 2, 0 +_081B7EF8: .4byte 0x02037C74 +_081B7EFC: .4byte 0x0203CBC8 +_081B7F00: .4byte 0x0203CB94 +_081B7F04: + ldr r2, _081B7F30 + movs r1, #9 + ldrsb r1, [r2, r1] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081B7F34 + adds r0, r0, r1 + ldrh r1, [r2, #0xc] + movs r2, #0 + movs r3, #1 + bl sub_081B1954 +_081B7F1C: + ldr r0, _081B7F38 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B7F3C + str r0, [r1] +_081B7F2A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B7F30: .4byte 0x0203CB94 +_081B7F34: .4byte 0x02024190 +_081B7F38: .4byte 0x03005B60 +_081B7F3C: .4byte 0x081B7DA5 + thumb_func_end sub_081B7ED0 + + thumb_func_start sub_081B7F40 +sub_081B7F40: @ 0x081B7F40 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl sub_081B18A4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B7F64 + bl sub_081B2FDC + ldr r0, _081B7F6C + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B7F70 + str r0, [r1] +_081B7F64: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B7F6C: .4byte 0x03005B60 +_081B7F70: .4byte 0x081B7F75 + thumb_func_end sub_081B7F40 + + thumb_func_start sub_081B7F74 +sub_081B7F74: @ 0x081B7F74 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _081B7F9A + cmp r1, #0 + bgt _081B7F94 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _081B8034 + b _081B8048 +_081B7F94: + cmp r1, #1 + beq _081B803A + b _081B8048 +_081B7F9A: + ldr r7, _081B7FCC + ldrh r4, [r7, #0xc] + adds r0, r4, #0 + bl sub_081B8090 + ldr r6, _081B7FD0 + ldrh r0, [r6] + movs r1, #1 + bl AddBagItem + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081B7FD8 + adds r0, r4, #0 + bl sub_081B80BC + ldrh r0, [r6] + bl pokemon_item_not_removed + ldr r0, _081B7FD4 + movs r1, #0 + bl sub_081B182C + b _081B8018 + .align 2, 0 +_081B7FCC: .4byte 0x0203CB94 +_081B7FD0: .4byte 0x0203CBC8 +_081B7FD4: .4byte 0x02021C7C +_081B7FD8: + adds r0, r4, #0 + bl ItemIsMail + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081B7FFC + ldr r0, _081B7FF4 + ldr r1, [r0] + ldr r0, _081B7FF8 + str r0, [r1, #4] + adds r0, r5, #0 + bl sub_081B0F90 + b _081B8048 + .align 2, 0 +_081B7FF4: .4byte 0x0203CB90 +_081B7FF8: .4byte 0x081B7DED +_081B7FFC: + movs r1, #9 + ldrsb r1, [r7, r1] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081B8028 + adds r0, r0, r1 + adds r1, r4, #0 + bl sub_081B1A88 + ldrh r1, [r6] + adds r0, r4, #0 + movs r2, #1 + bl sub_081B1A38 +_081B8018: + ldr r1, _081B802C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B8030 + str r1, [r0] + b _081B8048 + .align 2, 0 +_081B8028: .4byte 0x02024190 +_081B802C: .4byte 0x03005B60 +_081B8030: .4byte 0x081B7DA5 +_081B8034: + movs r0, #5 + bl PlaySE +_081B803A: + ldr r0, _081B8050 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B8054 + str r0, [r1] +_081B8048: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B8050: .4byte 0x03005B60 +_081B8054: .4byte 0x081B7DA5 + thumb_func_end sub_081B7F74 + + thumb_func_start sub_081B8058 +sub_081B8058: @ 0x081B8058 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081B8084 + movs r1, #1 + bl sub_081B182C + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, _081B8088 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081B808C + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B8084: .4byte 0x085C9C5C +_081B8088: .4byte 0x03005B60 +_081B808C: .4byte 0x081B7DA5 + thumb_func_end sub_081B8058 + + thumb_func_start sub_081B8090 +sub_081B8090: @ 0x081B8090 + push {lr} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r0, _081B80AC + ldrb r0, [r0, #0xb] + cmp r0, #6 + bne _081B80B0 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + bl RemovePCItem + b _081B80B8 + .align 2, 0 +_081B80AC: .4byte 0x0203CB94 +_081B80B0: + adds r0, r1, #0 + movs r1, #1 + bl RemoveBagItem +_081B80B8: + pop {r0} + bx r0 + thumb_func_end sub_081B8090 + + thumb_func_start sub_081B80BC +sub_081B80BC: @ 0x081B80BC + push {lr} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r0, _081B80D4 + ldrb r0, [r0, #0xb] + cmp r0, #5 + beq _081B80D8 + adds r0, r1, #0 + movs r1, #1 + bl AddPCItem + b _081B80E0 + .align 2, 0 +_081B80D4: .4byte 0x0203CB94 +_081B80D8: + adds r0, r1, #0 + movs r1, #1 + bl AddBagItem +_081B80E0: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + thumb_func_end sub_081B80BC + + thumb_func_start sub_081B80E8 +sub_081B80E8: @ 0x081B80E8 + push {lr} + sub sp, #0xc + movs r0, #6 + str r0, [sp] + ldr r0, _081B810C + str r0, [sp, #4] + ldr r0, _081B8110 + str r0, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #7 + movs r3, #0 + bl InitPartyMenu + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_081B810C: .4byte 0x081B1041 +_081B8110: .4byte 0x0816B969 + thumb_func_end sub_081B80E8 + + thumb_func_start sub_081B8114 +sub_081B8114: @ 0x081B8114 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _081B8160 + movs r1, #9 + ldrsb r1, [r0, r1] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _081B8164 + adds r5, r1, r0 + ldr r1, _081B8168 + movs r0, #0 + strb r0, [r1] + ldr r2, _081B816C + ldr r0, _081B8170 + ldrh r1, [r0] + adds r1, #6 + ldrh r0, [r0, #2] + adds r1, r1, r0 + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _081B8174 + adds r0, r0, r1 + ldr r1, [r2] + adds r4, r1, r0 + adds r0, r5, #0 + movs r1, #0xc + bl GetMonData + cmp r0, #0 + beq _081B817C + ldr r0, _081B8178 + movs r1, #1 + bl sub_081B182C + b _081B8192 + .align 2, 0 +_081B8160: .4byte 0x0203CB94 +_081B8164: .4byte 0x02024190 +_081B8168: .4byte 0x0203CBB4 +_081B816C: .4byte 0x03005AEC +_081B8170: .4byte 0x0203B984 +_081B8174: .4byte 0x00002BE0 +_081B8178: .4byte 0x085C9D0C +_081B817C: + adds r0, r5, #0 + adds r1, r4, #0 + bl GiveMailToMon2 + adds r0, r4, #0 + bl ClearMailStruct + ldr r0, _081B81AC + movs r1, #1 + bl sub_081B182C +_081B8192: + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + ldr r0, _081B81B0 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B81B4 + str r0, [r1] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081B81AC: .4byte 0x085C9D32 +_081B81B0: .4byte 0x03005B60 +_081B81B4: .4byte 0x081B7DA5 + thumb_func_end sub_081B8114 + + thumb_func_start InitChooseHalfPartyForBattle +InitChooseHalfPartyForBattle: @ 0x081B81B8 + push {lr} + sub sp, #0xc + bl sub_081B81F8 + movs r0, #0 + str r0, [sp] + ldr r0, _081B81E8 + str r0, [sp, #4] + ldr r0, _081B81EC + ldr r0, [r0, #8] + str r0, [sp, #8] + movs r0, #4 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl InitPartyMenu + ldr r1, _081B81F0 + ldr r0, _081B81F4 + str r0, [r1, #4] + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_081B81E8: .4byte 0x081B1041 +_081B81EC: .4byte 0x03002360 +_081B81F0: .4byte 0x0203CB94 +_081B81F4: .4byte 0x081B843D + thumb_func_end InitChooseHalfPartyForBattle + + thumb_func_start sub_081B81F8 +sub_081B81F8: @ 0x081B81F8 + push {lr} + ldr r0, _081B8208 + movs r1, #0 + movs r2, #4 + bl memset + pop {r0} + bx r0 + .align 2, 0 +_081B8208: .4byte 0x0203CBC4 + thumb_func_end sub_081B81F8 + + thumb_func_start sub_081B820C +sub_081B820C: @ 0x081B820C + push {r4, lr} + lsls r0, r0, #0x18 + asrs r4, r0, #0x18 + movs r0, #0x64 + muls r0, r4, r0 + ldr r1, _081B8228 + adds r0, r0, r1 + bl GetBattleEntryEligibility + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081B822C + movs r0, #2 + b _081B8244 + .align 2, 0 +_081B8228: .4byte 0x02024190 +_081B822C: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_081B8410 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B8242 + movs r0, #0 + b _081B8244 +_081B8242: + movs r0, #1 +_081B8244: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081B820C + + thumb_func_start GetBattleEntryEligibility +GetBattleEntryEligibility: @ 0x081B824C + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r6, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + bne _081B82A8 + adds r0, r5, #0 + movs r1, #0x38 + bl GetMonData + adds r4, r0, #0 + bl sub_081B8528 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + bhi _081B82A8 + ldr r0, _081B82AC + ldr r0, [r0] + ldrh r1, [r0, #4] + ldr r0, _081B82B0 + cmp r1, r0 + bne _081B828A + adds r0, r5, #0 + movs r1, #0xc + bl GetMonData + cmp r0, #0 + bne _081B82A8 +_081B828A: + ldr r0, _081B82B4 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #8 + beq _081B82EA + cmp r0, #9 + bne _081B82B8 + adds r0, r5, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + bne _081B82EA +_081B82A8: + movs r0, #0 + b _081B82EC + .align 2, 0 +_081B82AC: .4byte 0x03005AEC +_081B82B0: .4byte 0x0000191A +_081B82B4: .4byte 0x000040CF +_081B82B8: + adds r0, r5, #0 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r3, _081B82F4 + lsls r1, r6, #1 + adds r0, r1, r3 + ldrh r0, [r0] + ldr r2, _081B82F8 + cmp r0, r2 + beq _081B82EA +_081B82D2: + adds r0, r1, r3 + ldrh r0, [r0] + cmp r0, r4 + beq _081B82A8 + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + lsls r1, r6, #1 + adds r0, r1, r3 + ldrh r0, [r0] + cmp r0, r2 + bne _081B82D2 +_081B82EA: + movs r0, #1 +_081B82EC: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_081B82F4: .4byte 0x085DD48E +_081B82F8: .4byte 0x0000FFFF + thumb_func_end GetBattleEntryEligibility + + thumb_func_start sub_081B82FC +sub_081B82FC: @ 0x081B82FC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + bl sub_081B84FC + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r1, r2, #0 + ldr r3, _081B8324 + adds r0, r2, r3 + subs r0, #1 + ldrb r0, [r0] + cmp r0, #0 + bne _081B833C + cmp r2, #1 + bne _081B8328 + movs r0, #0xe + b _081B83F8 + .align 2, 0 +_081B8324: .4byte 0x0203CBC4 +_081B8328: + ldr r0, _081B8338 + movs r2, #0 + movs r3, #1 + bl ConvertIntToDecimalStringN + movs r0, #0x11 + b _081B83F8 + .align 2, 0 +_081B8338: .4byte 0x02021C40 +_081B833C: + ldr r0, _081B8354 + bl VarGet + lsls r0, r0, #0x18 + movs r1, #0xf8 + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _081B8360 + b _081B83F6 + .align 2, 0 +_081B8354: .4byte 0x000040CF +_081B8358: + movs r0, #0x12 + b _081B83F8 +_081B835C: + movs r0, #0x13 + b _081B83F8 +_081B8360: + bl sub_081B84D0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r5, #0 + b _081B83F0 +_081B836E: + ldr r3, _081B8408 + adds r4, r3, r5 + ldrb r0, [r4] + movs r1, #0x64 + muls r0, r1, r0 + subs r0, #0x64 + ldr r3, _081B840C + adds r0, r3, r0 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 + ldrb r0, [r4] + movs r1, #0x64 + muls r0, r1, r0 + subs r0, #0x64 + ldr r3, _081B840C + adds r0, r3, r0 + movs r1, #0xc + bl GetMonData + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r1, r5, #1 + lsls r0, r1, #0x18 + lsrs r4, r0, #0x18 + mov sb, r1 + cmp r4, r8 + bhs _081B83E8 + movs r7, #0x64 +_081B83AE: + ldr r0, _081B8408 + adds r5, r0, r4 + ldrb r0, [r5] + muls r0, r7, r0 + subs r0, #0x64 + ldr r1, _081B840C + adds r0, r1, r0 + movs r1, #0xb + bl GetMonData + cmp sl, r0 + beq _081B8358 + cmp r6, #0 + beq _081B83DE + ldrb r0, [r5] + muls r0, r7, r0 + subs r0, #0x64 + ldr r3, _081B840C + adds r0, r3, r0 + movs r1, #0xc + bl GetMonData + cmp r6, r0 + beq _081B835C +_081B83DE: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r8 + blo _081B83AE +_081B83E8: + mov r1, sb + lsls r0, r1, #0x18 + lsrs r5, r0, #0x18 + mov r0, r8 +_081B83F0: + subs r0, #1 + cmp r5, r0 + blt _081B836E +_081B83F6: + movs r0, #0xff +_081B83F8: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081B8408: .4byte 0x0203CBC4 +_081B840C: .4byte 0x02024190 + thumb_func_end sub_081B82FC + + thumb_func_start sub_081B8410 +sub_081B8410: @ 0x081B8410 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + movs r1, #0 + ldr r3, _081B8428 +_081B841A: + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _081B842C + movs r0, #1 + b _081B8438 + .align 2, 0 +_081B8428: .4byte 0x0203CBC4 +_081B842C: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #3 + bls _081B841A + movs r0, #0 +_081B8438: + pop {r1} + bx r1 + thumb_func_end sub_081B8410 + + thumb_func_start sub_081B843C +sub_081B843C: @ 0x081B843C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + bl sub_081B82FC + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xff + beq _081B8474 + movs r0, #0x20 + bl PlaySE + adds r0, r4, #0 + bl display_pokemon_menu_message + ldr r0, _081B846C + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B8470 + str r0, [r1] + b _081B8480 + .align 2, 0 +_081B846C: .4byte 0x03005B60 +_081B8470: .4byte 0x081B8489 +_081B8474: + movs r0, #5 + bl PlaySE + adds r0, r5, #0 + bl sub_081B0F90 +_081B8480: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081B843C + + thumb_func_start sub_081B8488 +sub_081B8488: @ 0x081B8488 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _081B84C4 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _081B84A2 + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081B84BC +_081B84A2: + movs r0, #5 + bl PlaySE + movs r0, #0 + bl display_pokemon_menu_message + ldr r0, _081B84C8 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B84CC + str r0, [r1] +_081B84BC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B84C4: .4byte 0x03002360 +_081B84C8: .4byte 0x03005B60 +_081B84CC: .4byte 0x081B1041 + thumb_func_end sub_081B8488 + + thumb_func_start sub_081B84D0 +sub_081B84D0: @ 0x081B84D0 + push {lr} + ldr r0, _081B84E8 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #8 + beq _081B84EC + cmp r0, #9 + bne _081B84F0 + movs r0, #3 + b _081B84F4 + .align 2, 0 +_081B84E8: .4byte 0x000040CF +_081B84EC: + movs r0, #2 + b _081B84F4 +_081B84F0: + ldr r0, _081B84F8 + ldrb r0, [r0] +_081B84F4: + pop {r1} + bx r1 + .align 2, 0 +_081B84F8: .4byte 0x02037282 + thumb_func_end sub_081B84D0 + + thumb_func_start sub_081B84FC +sub_081B84FC: @ 0x081B84FC + push {lr} + ldr r0, _081B8514 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #8 + beq _081B8518 + cmp r0, #9 + bne _081B851C + movs r0, #1 + b _081B8520 + .align 2, 0 +_081B8514: .4byte 0x000040CF +_081B8518: + movs r0, #2 + b _081B8520 +_081B851C: + ldr r0, _081B8524 + ldrb r0, [r0] +_081B8520: + pop {r1} + bx r1 + .align 2, 0 +_081B8524: .4byte 0x02037282 + thumb_func_end sub_081B84FC + + thumb_func_start sub_081B8528 +sub_081B8528: @ 0x081B8528 + push {lr} + ldr r0, _081B8540 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #8 + beq _081B8544 + cmp r0, #9 + bne _081B8548 +_081B853C: + movs r0, #0x64 + b _081B8552 + .align 2, 0 +_081B8540: .4byte 0x000040CF +_081B8544: + movs r0, #0x1e + b _081B8552 +_081B8548: + ldr r0, _081B8558 + ldrh r0, [r0] + cmp r0, #0 + bne _081B853C + movs r0, #0x32 +_081B8552: + pop {r1} + bx r1 + .align 2, 0 +_081B8558: .4byte 0x02037280 + thumb_func_end sub_081B8528 + + thumb_func_start sub_081B855C +sub_081B855C: @ 0x081B855C + push {lr} + ldr r0, _081B8578 + bl VarGet + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r2, #0xf8 + lsls r2, r2, #0x18 + adds r0, r0, r2 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _081B8580 + ldr r0, _081B857C + b _081B859A + .align 2, 0 +_081B8578: .4byte 0x000040CF +_081B857C: .4byte 0x085CA21C +_081B8580: + cmp r1, #1 + bne _081B8598 + ldr r0, _081B8590 + ldrh r0, [r0] + cmp r0, #2 + bne _081B8598 + ldr r0, _081B8594 + b _081B859A + .align 2, 0 +_081B8590: .4byte 0x02037282 +_081B8594: .4byte 0x085CA229 +_081B8598: + ldr r0, _081B85A0 +_081B859A: + pop {r1} + bx r1 + .align 2, 0 +_081B85A0: .4byte 0x085CA238 + thumb_func_end sub_081B855C + + thumb_func_start sub_081B85A4 +sub_081B85A4: @ 0x081B85A4 + push {lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0 + str r2, [sp] + ldr r2, _081B85C8 + str r2, [sp, #4] + str r1, [sp, #8] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl InitPartyMenu + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_081B85C8: .4byte 0x081B1041 + thumb_func_end sub_081B85A4 + + thumb_func_start sub_081B85CC +sub_081B85CC: @ 0x081B85CC + push {lr} + sub sp, #0xc + movs r0, #4 + str r0, [sp] + ldr r0, _081B85F0 + str r0, [sp, #4] + ldr r0, _081B85F4 + str r0, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #0xc + movs r3, #0 + bl InitPartyMenu + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_081B85F0: .4byte 0x081B1041 +_081B85F4: .4byte 0x08085B35 + thumb_func_end sub_081B85CC + + thumb_func_start sub_081B85F8 +sub_081B85F8: @ 0x081B85F8 + push {lr} + sub sp, #0xc + movs r0, #1 + str r0, [sp] + ldr r0, _081B861C + str r0, [sp, #4] + ldr r0, _081B8620 + str r0, [sp, #8] + movs r0, #0xb + movs r1, #0 + movs r2, #0xd + movs r3, #0 + bl InitPartyMenu + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_081B861C: .4byte 0x081B1041 +_081B8620: .4byte 0x08085B35 + thumb_func_end sub_081B85F8 + + thumb_func_start sub_081B8624 +sub_081B8624: @ 0x081B8624 + push {lr} + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081B8634 + movs r0, #0 + b _081B8646 +_081B8634: + bl IsMultiBattle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081B8644 + movs r0, #1 + b _081B8646 +_081B8644: + movs r0, #2 +_081B8646: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081B8624 + + thumb_func_start OpenPartyMenuInBattle +OpenPartyMenuInBattle: @ 0x081B864C + push {r4, lr} + sub sp, #0xc + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl sub_081B8624 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0 + str r0, [sp] + ldr r0, _081B8688 + str r0, [sp, #4] + ldr r0, _081B868C + str r0, [sp, #8] + movs r0, #1 + adds r2, r4, #0 + movs r3, #0 + bl InitPartyMenu + bl nullsub_35 + bl pokemon_change_order + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B8688: .4byte 0x081B1041 +_081B868C: .4byte 0x0805995D + thumb_func_end OpenPartyMenuInBattle + + thumb_func_start sub_081B8690 +sub_081B8690: @ 0x081B8690 + push {lr} + sub sp, #0xc + bl sub_081B8624 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #5 + str r0, [sp] + ldr r0, _081B86C4 + str r0, [sp, #4] + ldr r0, _081B86C8 + str r0, [sp, #8] + movs r0, #1 + movs r2, #3 + movs r3, #0 + bl InitPartyMenu + bl nullsub_35 + bl pokemon_change_order + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_081B86C4: .4byte 0x081B1041 +_081B86C8: .4byte 0x081B5EF5 + thumb_func_end sub_081B8690 + + thumb_func_start sub_081B86CC +sub_081B86CC: @ 0x081B86CC + push {r4, lr} + adds r4, r0, #0 + ldr r0, _081B86F4 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _081B8714 + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + bne _081B8714 + ldr r0, _081B86F8 + ldrb r0, [r0, #0xb] + cmp r0, #1 + bne _081B86FC + movs r0, #3 + b _081B8716 + .align 2, 0 +_081B86F4: .4byte 0x020241F4 +_081B86F8: .4byte 0x0203CB94 +_081B86FC: + ldr r0, _081B8710 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xb + ands r0, r1 + cmp r0, #0 + bne _081B8714 + movs r0, #2 + b _081B8716 + .align 2, 0 +_081B8710: .4byte 0x02022C90 +_081B8714: + movs r0, #7 +_081B8716: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081B86CC + + thumb_func_start sub_081B871C +sub_081B871C: @ 0x081B871C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + bl GetCursorSelectionMonId + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + bl IsMultiBattle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081B8764 + cmp r5, #1 + beq _081B8742 + cmp r5, #4 + beq _081B8742 + cmp r5, #5 + bne _081B8764 +_081B8742: + ldr r4, _081B8758 + bl GetTrainerPartnerName + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCopy + ldr r0, _081B875C + ldr r1, _081B8760 + b _081B88E2 + .align 2, 0 +_081B8758: .4byte 0x02021C40 +_081B875C: .4byte 0x02021C7C +_081B8760: .4byte 0x085C9B76 +_081B8764: + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _081B8788 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + bne _081B8798 + ldr r1, _081B878C + adds r0, r4, #0 + bl GetMonNickname + ldr r0, _081B8790 + ldr r1, _081B8794 + b _081B88E2 + .align 2, 0 +_081B8788: .4byte 0x02024190 +_081B878C: .4byte 0x02021C40 +_081B8790: .4byte 0x02021C7C +_081B8794: .4byte 0x085C9B59 +_081B8798: + movs r4, #0 + b _081B87C4 +_081B879C: + adds r0, r4, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081B87BE + adds r0, r5, #0 + bl sub_081B8BD8 + lsls r0, r0, #0x18 + ldr r2, _081B87EC + lsls r1, r4, #1 + adds r1, r1, r2 + lsrs r0, r0, #0x18 + ldrh r1, [r1] + cmp r0, r1 + beq _081B889C +_081B87BE: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_081B87C4: + ldr r0, _081B87F0 + ldrb r0, [r0] + cmp r4, r0 + blo _081B879C + movs r7, #0x64 + adds r0, r5, #0 + muls r0, r7, r0 + ldr r1, _081B87F4 + mov r8, r1 + adds r6, r0, r1 + adds r0, r6, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + beq _081B8800 + ldr r0, _081B87F8 + ldr r1, _081B87FC + b _081B88E2 + .align 2, 0 +_081B87EC: .4byte 0x02023D12 +_081B87F0: .4byte 0x02023D10 +_081B87F4: .4byte 0x02024190 +_081B87F8: .4byte 0x02021C7C +_081B87FC: .4byte 0x085C9B9D +_081B8800: + adds r0, r5, #0 + bl sub_081B8BD8 + ldr r1, _081B8824 + ldr r1, [r1] + adds r1, #0x8b + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + bne _081B8834 + ldr r1, _081B8828 + adds r0, r6, #0 + bl GetMonNickname + ldr r0, _081B882C + ldr r1, _081B8830 + b _081B88E2 + .align 2, 0 +_081B8824: .4byte 0x02024140 +_081B8828: .4byte 0x02021C40 +_081B882C: .4byte 0x02021C7C +_081B8830: .4byte 0x085C9B43 +_081B8834: + ldr r0, _081B8844 + ldrb r0, [r0, #0xb] + cmp r0, #4 + bne _081B8848 + bl SetMonPreventsSwitchingString + b _081B88E6 + .align 2, 0 +_081B8844: .4byte 0x0203CB94 +_081B8848: + cmp r0, #2 + beq _081B88C0 + adds r0, r5, #0 + bl sub_081B8BD8 + ldr r1, _081B888C + strb r0, [r1] + ldr r1, _081B8890 + movs r0, #1 + strb r0, [r1] + ldr r1, _081B8894 + ldr r0, _081B8898 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + bl pokemon_order_func + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_081B8C50 + adds r0, r4, #0 + muls r0, r7, r0 + add r0, r8 + adds r1, r6, #0 + bl sub_081B0F58 + movs r0, #1 + b _081B88E8 + .align 2, 0 +_081B888C: .4byte 0x0203CBB5 +_081B8890: .4byte 0x0203CBB4 +_081B8894: .4byte 0x02023D12 +_081B8898: .4byte 0x0202415C +_081B889C: + movs r0, #0x64 + muls r0, r5, r0 + ldr r1, _081B88B0 + adds r0, r0, r1 + ldr r1, _081B88B4 + bl GetMonNickname + ldr r0, _081B88B8 + ldr r1, _081B88BC + b _081B88E2 + .align 2, 0 +_081B88B0: .4byte 0x02024190 +_081B88B4: .4byte 0x02021C40 +_081B88B8: .4byte 0x02021C7C +_081B88BC: .4byte 0x085C9B2D +_081B88C0: + ldr r0, _081B88F4 + ldrb r0, [r0] + ldr r1, _081B88F8 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + bl pokemon_order_func + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + muls r0, r7, r0 + add r0, r8 + ldr r1, _081B88FC + bl GetMonNickname + ldr r0, _081B8900 + ldr r1, _081B8904 +_081B88E2: + bl StringExpandPlaceholders +_081B88E6: + movs r0, #0 +_081B88E8: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081B88F4: .4byte 0x0202415C +_081B88F8: .4byte 0x02023D12 +_081B88FC: .4byte 0x02021C40 +_081B8900: .4byte 0x02021C7C +_081B8904: .4byte 0x085C9B1A + thumb_func_end sub_081B871C + + thumb_func_start sub_081B8908 +sub_081B8908: @ 0x081B8908 + push {r4, lr} + ldr r4, _081B8924 + bl sub_0806D288 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl sub_081B8928 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B8924: .4byte 0x0203CBCC + thumb_func_end sub_081B8908 + + thumb_func_start sub_081B8928 +sub_081B8928: @ 0x081B8928 + push {r4, r5, r6, lr} + sub sp, #8 + adds r6, r0, #0 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + bl IsMultiBattle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081B895E + cmp r4, #0 + beq _081B8950 + movs r0, #0x30 + strb r0, [r6] + movs r0, #0x45 + strb r0, [r6, #1] + movs r0, #0x12 + strb r0, [r6, #2] + b _081B89F8 +_081B8950: + movs r0, #3 + strb r0, [r6] + movs r0, #0x12 + strb r0, [r6, #1] + movs r0, #0x45 + strb r0, [r6, #2] + b _081B89F8 +_081B895E: + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081B899C + movs r5, #1 + movs r0, #0 + bl GetBattlerAtPosition + mov r2, sp + ldr r1, _081B8998 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r1 + ldrh r0, [r0] + strb r0, [r2] + movs r4, #0 + mov r1, sp +_081B8982: + ldrb r0, [r1] + cmp r4, r0 + beq _081B8990 + mov r2, sp + adds r0, r2, r5 + strb r4, [r0] + adds r5, #1 +_081B8990: + adds r4, #1 + cmp r4, #5 + ble _081B8982 + b _081B89E0 + .align 2, 0 +_081B8998: .4byte 0x02023D12 +_081B899C: + movs r5, #2 + movs r0, #0 + bl GetBattlerAtPosition + mov r1, sp + ldr r4, _081B8A00 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r4 + ldrh r0, [r0] + strb r0, [r1] + movs r0, #2 + bl GetBattlerAtPosition + mov r1, sp + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r4 + ldrh r0, [r0] + strb r0, [r1, #1] + movs r4, #0 +_081B89C6: + ldrb r0, [r1] + cmp r4, r0 + beq _081B89DA + ldrb r0, [r1, #1] + cmp r4, r0 + beq _081B89DA + mov r2, sp + adds r0, r2, r5 + strb r4, [r0] + adds r5, #1 +_081B89DA: + adds r4, #1 + cmp r4, #5 + ble _081B89C6 +_081B89E0: + movs r4, #0 + mov r3, sp +_081B89E4: + adds r0, r6, r4 + ldrb r1, [r3] + lsls r1, r1, #4 + ldrb r2, [r3, #1] + orrs r1, r2 + strb r1, [r0] + adds r3, #2 + adds r4, #1 + cmp r4, #2 + ble _081B89E4 +_081B89F8: + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081B8A00: .4byte 0x02023D12 + thumb_func_end sub_081B8928 + + thumb_func_start sub_081B8A04 +sub_081B8A04: @ 0x081B8A04 + push {lr} + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, _081B8A24 + lsls r3, r2, #1 + adds r3, r3, r2 + adds r3, #0x60 + ldr r0, [r0] + adds r0, r0, r3 + bl sub_081B8A28 + pop {r0} + bx r0 + .align 2, 0 +_081B8A24: .4byte 0x02024140 + thumb_func_end sub_081B8A04 + + thumb_func_start sub_081B8A28 +sub_081B8A28: @ 0x081B8A28 + push {r4, r5, r6, r7, lr} + sub sp, #8 + adds r5, r0, #0 + adds r0, r2, #0 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081B8A50 + movs r0, #0 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #2 + b _081B8A5C +_081B8A50: + movs r0, #1 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #3 +_081B8A5C: + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + bl IsMultiBattle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081B8A90 + cmp r7, #0 + beq _081B8A82 + movs r0, #0x30 + strb r0, [r5] + movs r0, #0x45 + strb r0, [r5, #1] + movs r0, #0x12 + strb r0, [r5, #2] + b _081B8B12 +_081B8A82: + movs r0, #3 + strb r0, [r5] + movs r0, #0x12 + strb r0, [r5, #1] + movs r0, #0x45 + strb r0, [r5, #2] + b _081B8B12 +_081B8A90: + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081B8AC8 + movs r3, #1 + mov r2, sp + ldr r1, _081B8AC4 + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strb r0, [r2] + movs r4, #0 + mov r1, sp +_081B8AAC: + ldrb r0, [r1] + cmp r4, r0 + beq _081B8ABA + mov r2, sp + adds r0, r2, r3 + strb r4, [r0] + adds r3, #1 +_081B8ABA: + adds r4, #1 + cmp r4, #5 + ble _081B8AAC + b _081B8AFA + .align 2, 0 +_081B8AC4: .4byte 0x02023D12 +_081B8AC8: + movs r3, #2 + mov r1, sp + ldr r2, _081B8B1C + lsls r0, r4, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strb r0, [r1] + lsls r0, r6, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strb r0, [r1, #1] + movs r4, #0 +_081B8AE0: + ldrb r0, [r1] + cmp r4, r0 + beq _081B8AF4 + ldrb r0, [r1, #1] + cmp r4, r0 + beq _081B8AF4 + mov r2, sp + adds r0, r2, r3 + strb r4, [r0] + adds r3, #1 +_081B8AF4: + adds r4, #1 + cmp r4, #5 + ble _081B8AE0 +_081B8AFA: + movs r4, #0 + mov r3, sp +_081B8AFE: + adds r0, r5, r4 + ldrb r1, [r3] + lsls r1, r1, #4 + ldrb r2, [r3, #1] + orrs r1, r2 + strb r1, [r0] + adds r3, #2 + adds r4, #1 + cmp r4, #2 + ble _081B8AFE +_081B8B12: + add sp, #8 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B8B1C: .4byte 0x02023D12 + thumb_func_end sub_081B8A28 + + thumb_func_start sub_081B8B20 +sub_081B8B20: @ 0x081B8B20 + push {r4, r5, r6, r7, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + movs r7, #0 + bl IsMultiBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081B8BCE + ldr r0, _081B8B84 + lsls r1, r4, #1 + adds r1, r1, r4 + adds r1, #0x60 + ldr r0, [r0] + adds r4, r0, r1 + movs r2, #0 + add r6, sp + mov ip, r6 + movs r6, #0xf + mov r3, sp +_081B8B52: + adds r1, r4, r2 + ldrb r0, [r1] + lsrs r0, r0, #4 + strb r0, [r3] + adds r3, #1 + ldrb r1, [r1] + adds r0, r6, #0 + ands r0, r1 + strb r0, [r3] + adds r3, #1 + adds r2, #1 + cmp r2, #2 + ble _081B8B52 + mov r0, ip + ldrb r3, [r0] + movs r2, #0 + mov r0, sp + ldrb r0, [r0] + cmp r0, r5 + bne _081B8B88 + mov r0, sp + ldrb r7, [r0] + strb r3, [r0] + b _081B8B9C + .align 2, 0 +_081B8B84: .4byte 0x02024140 +_081B8B88: + adds r2, #1 + cmp r2, #5 + bgt _081B8B9C + mov r0, sp + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, r5 + bne _081B8B88 + adds r7, r0, #0 + strb r3, [r1] +_081B8B9C: + cmp r2, #6 + beq _081B8BCE + mov r0, ip + strb r7, [r0] + mov r0, sp + ldrb r0, [r0] + lsls r0, r0, #4 + mov r1, sp + ldrb r1, [r1, #1] + orrs r0, r1 + strb r0, [r4] + mov r0, sp + ldrb r0, [r0, #2] + lsls r0, r0, #4 + mov r1, sp + ldrb r1, [r1, #3] + orrs r0, r1 + strb r0, [r4, #1] + mov r0, sp + ldrb r0, [r0, #4] + lsls r0, r0, #4 + mov r1, sp + ldrb r1, [r1, #5] + orrs r0, r1 + strb r0, [r4, #2] +_081B8BCE: + add sp, #8 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081B8B20 + + thumb_func_start sub_081B8BD8 +sub_081B8BD8: @ 0x081B8BD8 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + movs r1, #1 + ands r1, r2 + lsrs r2, r0, #0x19 + cmp r1, #0 + beq _081B8BF8 + ldr r0, _081B8BF4 + adds r0, r2, r0 + ldrb r0, [r0] + movs r1, #0xf + ands r1, r0 + b _081B8C00 + .align 2, 0 +_081B8BF4: .4byte 0x0203CBCC +_081B8BF8: + ldr r0, _081B8C08 + adds r0, r2, r0 + ldrb r0, [r0] + lsrs r1, r0, #4 +_081B8C00: + adds r0, r1, #0 + pop {r1} + bx r1 + .align 2, 0 +_081B8C08: .4byte 0x0203CBCC + thumb_func_end sub_081B8BD8 + + thumb_func_start sub_081B8C0C +sub_081B8C0C: @ 0x081B8C0C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + movs r1, #1 + ands r1, r3 + lsrs r3, r0, #0x19 + cmp r1, #0 + beq _081B8C34 + ldr r0, _081B8C30 + adds r0, r3, r0 + ldrb r2, [r0] + movs r1, #0xf0 + ands r1, r2 + orrs r1, r4 + strb r1, [r0] + b _081B8C44 + .align 2, 0 +_081B8C30: .4byte 0x0203CBCC +_081B8C34: + ldr r2, _081B8C4C + adds r2, r3, r2 + ldrb r1, [r2] + movs r0, #0xf + ands r0, r1 + lsls r1, r4, #4 + orrs r0, r1 + strb r0, [r2] +_081B8C44: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B8C4C: .4byte 0x0203CBCC + thumb_func_end sub_081B8C0C + + thumb_func_start sub_081B8C50 +sub_081B8C50: @ 0x081B8C50 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + adds r0, r5, #0 + bl sub_081B8BD8 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r6, #0 + bl sub_081B8BD8 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl sub_081B8C0C + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_081B8C0C + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081B8C50 + + thumb_func_start pokemon_order_func +pokemon_order_func: @ 0x081B8C8C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r3, #0 + movs r2, #0 + ldr r5, _081B8CB4 +_081B8C98: + adds r0, r3, r5 + ldrb r1, [r0] + lsrs r0, r1, #4 + cmp r0, r4 + beq _081B8CB0 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + movs r0, #0xf + ands r0, r1 + cmp r0, r4 + bne _081B8CB8 +_081B8CB0: + adds r0, r2, #0 + b _081B8CCA + .align 2, 0 +_081B8CB4: .4byte 0x0203CBCC +_081B8CB8: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #2 + bls _081B8C98 + movs r0, #0 +_081B8CCA: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end pokemon_order_func + + thumb_func_start pokemon_change_order +pokemon_change_order: @ 0x081B8CD0 + push {r4, r5, r6, lr} + movs r4, #0x96 + lsls r4, r4, #2 + adds r0, r4, #0 + bl Alloc + adds r5, r0, #0 + ldr r1, _081B8D1C + adds r2, r4, #0 + bl memcpy + movs r4, #0 + movs r6, #0x64 +_081B8CEA: + adds r0, r4, #0 + bl pokemon_order_func + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + muls r0, r6, r0 + ldr r1, _081B8D1C + adds r0, r0, r1 + adds r1, r4, #0 + muls r1, r6, r1 + adds r1, r1, r5 + movs r2, #0x64 + bl memcpy + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #5 + bls _081B8CEA + adds r0, r5, #0 + bl Free + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081B8D1C: .4byte 0x02024190 + thumb_func_end pokemon_change_order + + thumb_func_start sub_081B8D20 +sub_081B8D20: @ 0x081B8D20 + push {r4, r5, r6, lr} + movs r4, #0x96 + lsls r4, r4, #2 + adds r0, r4, #0 + bl Alloc + adds r5, r0, #0 + ldr r1, _081B8D6C + adds r2, r4, #0 + bl memcpy + movs r4, #0 + movs r6, #0x64 +_081B8D3A: + adds r0, r4, #0 + bl sub_081B8BD8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + muls r0, r6, r0 + ldr r1, _081B8D6C + adds r0, r0, r1 + adds r1, r4, #0 + muls r1, r6, r1 + adds r1, r1, r5 + movs r2, #0x64 + bl memcpy + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #5 + bls _081B8D3A + adds r0, r5, #0 + bl Free + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081B8D6C: .4byte 0x02024190 + thumb_func_end sub_081B8D20 + + thumb_func_start sub_081B8D70 +sub_081B8D70: @ 0x081B8D70 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r6, #1 + movs r7, #0x64 + ldr r0, _081B8DC8 + mov r8, r0 +_081B8D7E: + adds r0, r6, #0 + bl sub_081B8BD8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + muls r0, r7, r0 + mov r1, r8 + adds r5, r0, r1 + adds r0, r5, #0 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _081B8DCC + adds r0, r5, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _081B8DCC + movs r0, #0 + bl sub_081B8BD8 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + adds r1, r6, #0 + bl sub_081B8C50 + adds r0, r4, #0 + muls r0, r7, r0 + add r0, r8 + adds r1, r5, #0 + bl sub_081B0F58 + b _081B8DD6 + .align 2, 0 +_081B8DC8: .4byte 0x02024190 +_081B8DCC: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #5 + bls _081B8D7E +_081B8DD6: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_081B8D70 + + thumb_func_start sub_081B8DE0 +sub_081B8DE0: @ 0x081B8DE0 + push {lr} + ldr r0, _081B8DEC + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_081B8DEC: .4byte 0x0805995D + thumb_func_end sub_081B8DE0 + + thumb_func_start sub_081B8DF0 +sub_081B8DF0: @ 0x081B8DF0 + push {lr} + sub sp, #0xc + movs r0, #0x7f + str r0, [sp] + ldr r0, _081B8E14 + str r0, [sp, #4] + ldr r0, _081B8E18 + ldr r0, [r0, #8] + str r0, [sp, #8] + movs r0, #5 + movs r1, #3 + movs r2, #0 + movs r3, #0 + bl InitPartyMenu + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_081B8E14: .4byte 0x081B8E1D +_081B8E18: .4byte 0x03002360 + thumb_func_end sub_081B8DF0 + + thumb_func_start sub_081B8E1C +sub_081B8E1C: @ 0x081B8E1C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081B8E4C + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + adds r4, r4, r1 + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r4, #8] + bl sub_081B8F34 + movs r1, #0x80 + lsls r1, r1, #9 + movs r0, #2 + movs r2, #0 + bl ChangeBgX + ldr r0, _081B8E50 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B8E4C: .4byte 0x03005B60 +_081B8E50: .4byte 0x081B8E55 + thumb_func_end sub_081B8E1C + + thumb_func_start sub_081B8E54 +sub_081B8E54: @ 0x081B8E54 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r6, r5, #2 + adds r0, r6, r5 + lsls r0, r0, #3 + ldr r1, _081B8EC8 + adds r4, r0, r1 + ldr r0, _081B8ECC + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081B8EC0 + ldrh r0, [r4] + subs r0, #8 + strh r0, [r4] + adds r0, r5, #0 + bl sub_081B8F34 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _081B8EC0 + movs r4, #3 + ldr r7, _081B8ED0 +_081B8E88: + subs r0, r4, #3 + lsls r0, r0, #5 + adds r0, r0, r7 + ldrh r0, [r0] + cmp r0, #0 + beq _081B8EA4 + ldr r0, _081B8ED4 + ldr r1, [r0] + lsls r0, r4, #4 + adds r0, r0, r1 + ldrb r0, [r0, #9] + movs r1, #0 + bl AnimateSelectedPartyIcon +_081B8EA4: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #5 + bls _081B8E88 + movs r0, #0x78 + bl PlaySE + ldr r0, _081B8ED8 + adds r1, r6, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081B8EDC + str r0, [r1] +_081B8EC0: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B8EC8: .4byte 0x03005B68 +_081B8ECC: .4byte 0x02037C74 +_081B8ED0: .4byte 0x02022C9C +_081B8ED4: .4byte 0x0203CBA8 +_081B8ED8: .4byte 0x03005B60 +_081B8EDC: .4byte 0x081B8EE1 + thumb_func_end sub_081B8E54 + + thumb_func_start sub_081B8EE0 +sub_081B8EE0: @ 0x081B8EE0 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _081B8F0C + adds r0, r0, r1 + ldrh r1, [r0] + adds r1, #1 + strh r1, [r0] + lsls r1, r1, #0x10 + movs r0, #0x80 + lsls r0, r0, #0x11 + cmp r1, r0 + bne _081B8F06 + adds r0, r2, #0 + bl sub_081B0F90 +_081B8F06: + pop {r0} + bx r0 + .align 2, 0 +_081B8F0C: .4byte 0x03005B68 + thumb_func_end sub_081B8EE0 + + thumb_func_start sub_081B8F10 +sub_081B8F10: @ 0x081B8F10 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r3, r1, #0x10 + cmp r1, #0 + blt _081B8F2A + ldr r1, _081B8F30 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + strh r3, [r0, #0x24] +_081B8F2A: + pop {r0} + bx r0 + .align 2, 0 +_081B8F30: .4byte 0x020205AC + thumb_func_end sub_081B8F10 + + thumb_func_start sub_081B8F34 +sub_081B8F34: @ 0x081B8F34 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _081B8FBC + adds r5, r1, r0 + movs r6, #3 + ldr r7, _081B8FC0 +_081B8F48: + ldr r0, _081B8FC4 + subs r1, r6, #3 + lsls r1, r1, #5 + adds r1, r1, r0 + ldrh r0, [r1] + cmp r0, #0 + beq _081B8FA0 + ldr r0, [r7] + lsls r4, r6, #4 + adds r0, r4, r0 + ldrb r0, [r0, #9] + ldrh r1, [r5] + subs r1, #8 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl sub_081B8F10 + ldr r0, [r7] + adds r0, r4, r0 + ldrb r0, [r0, #0xa] + ldrh r1, [r5] + subs r1, #8 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl sub_081B8F10 + ldr r0, [r7] + adds r0, r4, r0 + ldrb r0, [r0, #0xb] + ldrh r1, [r5] + subs r1, #8 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl sub_081B8F10 + ldr r0, [r7] + adds r4, r4, r0 + ldrb r0, [r4, #0xc] + ldrh r1, [r5] + subs r1, #8 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl sub_081B8F10 +_081B8FA0: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #5 + bls _081B8F48 + movs r1, #0x80 + lsls r1, r1, #4 + movs r0, #2 + movs r2, #1 + bl ChangeBgX + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B8FBC: .4byte 0x03005B68 +_081B8FC0: .4byte 0x0203CBA8 +_081B8FC4: .4byte 0x02022C9C + thumb_func_end sub_081B8F34 + + thumb_func_start sub_081B8FC8 +sub_081B8FC8: @ 0x081B8FC8 + push {lr} + sub sp, #0xc + movs r0, #0xf + str r0, [sp] + ldr r0, _081B8FEC + str r0, [sp, #4] + ldr r0, _081B8FF0 + str r0, [sp, #8] + movs r0, #6 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl InitPartyMenu + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_081B8FEC: .4byte 0x081B1041 +_081B8FF0: .4byte 0x081B9031 + thumb_func_end sub_081B8FC8 + + thumb_func_start sub_081B8FF4 +sub_081B8FF4: @ 0x081B8FF4 + push {lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _081B9020 + ldr r1, _081B9024 + str r1, [r2] + movs r1, #0 + str r1, [sp] + ldr r1, _081B9028 + str r1, [sp, #4] + ldr r1, _081B902C + str r1, [sp, #8] + movs r1, #0 + movs r2, #0xb + movs r3, #0 + bl InitPartyMenu + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_081B9020: .4byte 0x03005B10 +_081B9024: .4byte 0x081B9069 +_081B9028: .4byte 0x081B1041 +_081B902C: .4byte 0x08085A31 + thumb_func_end sub_081B8FF4 + + thumb_func_start sub_081B9030 +sub_081B9030: @ 0x081B9030 + push {r4, lr} + ldr r4, _081B9058 + bl GetCursorSelectionMonId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + cmp r0, #5 + bls _081B9046 + movs r0, #0xff + strh r0, [r4] +_081B9046: + ldr r0, _081B905C + ldr r1, _081B9060 + str r1, [r0] + ldr r0, _081B9064 + bl SetMainCallback2 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081B9058: .4byte 0x02037280 +_081B905C: .4byte 0x03005B10 +_081B9060: .4byte 0x081B9069 +_081B9064: .4byte 0x08085A31 + thumb_func_end sub_081B9030 + + thumb_func_start hm_add_c3_without_phase_2 +hm_add_c3_without_phase_2: @ 0x081B9068 + push {lr} + bl pal_fill_black + ldr r0, _081B907C + movs r1, #0xa + bl CreateTask + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 +_081B907C: .4byte 0x081B9081 + thumb_func_end hm_add_c3_without_phase_2 + + thumb_func_start task_hm_without_phase_2 +task_hm_without_phase_2: @ 0x081B9080 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl IsWeatherNotFadingIn + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081B909E + adds r0, r4, #0 + bl DestroyTask + bl ScriptContext2_Disable + bl EnableBothScriptContexts +_081B909E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end task_hm_without_phase_2 + + thumb_func_start sub_081B90A4 +sub_081B90A4: @ 0x081B90A4 + push {lr} + bl ScriptContext2_Enable + movs r0, #1 + movs r1, #0 + bl FadeScreen + ldr r0, _081B90C0 + movs r1, #0xa + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_081B90C0: .4byte 0x081B90C5 + thumb_func_end sub_081B90A4 + + thumb_func_start sub_081B90C4 +sub_081B90C4: @ 0x081B90C4 + push {r4, r5, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _081B9104 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _081B90FC + bl CleanupOverworldWindowsAndTilemaps + str r4, [sp] + ldr r0, _081B9108 + str r0, [sp, #4] + ldr r0, _081B910C + str r0, [sp, #8] + movs r0, #2 + movs r1, #0 + movs r2, #0xb + movs r3, #0 + bl InitPartyMenu + adds r0, r5, #0 + bl DestroyTask +_081B90FC: + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B9104: .4byte 0x02037C74 +_081B9108: .4byte 0x081B1041 +_081B910C: .4byte 0x081B9111 + thumb_func_end sub_081B90C4 + + thumb_func_start sub_081B9110 +sub_081B9110: @ 0x081B9110 + push {lr} + bl GetCursorSelectionMonId + ldr r2, _081B913C + strb r0, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + bls _081B9126 + movs r0, #0xff + strb r0, [r2] +_081B9126: + ldr r1, _081B9140 + ldrb r0, [r2] + strh r0, [r1] + ldr r1, _081B9144 + ldr r0, _081B9148 + str r0, [r1] + ldr r0, _081B914C + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_081B913C: .4byte 0x02039BC4 +_081B9140: .4byte 0x02037280 +_081B9144: .4byte 0x03005B10 +_081B9148: .4byte 0x081B9069 +_081B914C: .4byte 0x08085A31 + thumb_func_end sub_081B9110 + + thumb_func_start sub_081B9150 +sub_081B9150: @ 0x081B9150 + push {lr} + bl ScriptContext2_Enable + movs r0, #1 + movs r1, #0 + bl FadeScreen + ldr r0, _081B916C + movs r1, #0xa + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_081B916C: .4byte 0x081B9171 + thumb_func_end sub_081B9150 + + thumb_func_start sub_081B9170 +sub_081B9170: @ 0x081B9170 + push {r4, r5, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _081B91B0 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _081B91A8 + bl CleanupOverworldWindowsAndTilemaps + str r4, [sp] + ldr r0, _081B91B4 + str r0, [sp, #4] + ldr r0, _081B91B8 + str r0, [sp, #8] + movs r0, #3 + movs r1, #0 + movs r2, #0xb + movs r3, #0 + bl InitPartyMenu + adds r0, r5, #0 + bl DestroyTask +_081B91A8: + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B91B0: .4byte 0x02037C74 +_081B91B4: .4byte 0x081B1041 +_081B91B8: .4byte 0x081B9031 + thumb_func_end sub_081B9170 + + thumb_func_start sub_081B91BC +sub_081B91BC: @ 0x081B91BC + push {lr} + bl ScriptContext2_Enable + movs r0, #1 + movs r1, #0 + bl FadeScreen + ldr r0, _081B91D8 + movs r1, #0xa + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_081B91D8: .4byte 0x081B91DD + thumb_func_end sub_081B91BC + + thumb_func_start sub_081B91DC +sub_081B91DC: @ 0x081B91DC + push {r4, r5, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _081B921C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _081B9214 + bl CleanupOverworldWindowsAndTilemaps + str r4, [sp] + ldr r0, _081B9220 + str r0, [sp, #4] + ldr r0, _081B9224 + str r0, [sp, #8] + movs r0, #7 + movs r1, #0 + movs r2, #0xb + movs r3, #0 + bl InitPartyMenu + adds r0, r5, #0 + bl DestroyTask +_081B9214: + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B921C: .4byte 0x02037C74 +_081B9220: .4byte 0x081B1041 +_081B9224: .4byte 0x081B9229 + thumb_func_end sub_081B91DC + + thumb_func_start sub_081B9228 +sub_081B9228: @ 0x081B9228 + push {r4, r5, lr} + ldr r5, _081B9240 + bl GetCursorSelectionMonId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5] + cmp r0, #5 + bls _081B9244 + movs r0, #0xff + strh r0, [r5] + b _081B925A + .align 2, 0 +_081B9240: .4byte 0x02037280 +_081B9244: + ldr r4, _081B926C + ldrh r1, [r5] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081B9270 + adds r0, r0, r1 + bl GetNumberOfRelearnableMoves + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] +_081B925A: + ldr r0, _081B9274 + ldr r1, _081B9278 + str r1, [r0] + ldr r0, _081B927C + bl SetMainCallback2 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B926C: .4byte 0x02037282 +_081B9270: .4byte 0x02024190 +_081B9274: .4byte 0x03005B10 +_081B9278: .4byte 0x081B9069 +_081B927C: .4byte 0x08085A31 + thumb_func_end sub_081B9228 + + thumb_func_start sub_081B9280 +sub_081B9280: @ 0x081B9280 + push {r4, r5, lr} + ldr r1, _081B9290 + movs r0, #0 + strh r0, [r1] + movs r4, #0 + adds r5, r1, #0 + b _081B929A + .align 2, 0 +_081B9290: .4byte 0x02037290 +_081B9294: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_081B929A: + cmp r4, #2 + bhi _081B92B4 + movs r0, #0x64 + muls r0, r4, r0 + ldr r1, _081B92BC + adds r0, r0, r1 + movs r1, #0xc + bl GetMonData + cmp r0, #0 + beq _081B9294 + movs r0, #1 + strh r0, [r5] +_081B92B4: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B92BC: .4byte 0x02024190 + thumb_func_end sub_081B9280 + + thumb_func_start sub_081B92C0 +sub_081B92C0: @ 0x081B92C0 + push {lr} + bl ScriptContext2_Enable + movs r0, #1 + movs r1, #0 + bl FadeScreen + ldr r0, _081B92DC + movs r1, #0xa + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_081B92DC: .4byte 0x081B92E1 + thumb_func_end sub_081B92C0 + + thumb_func_start sub_081B92E0 +sub_081B92E0: @ 0x081B92E0 + push {r4, r5, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _081B9320 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _081B9318 + bl CleanupOverworldWindowsAndTilemaps + str r4, [sp] + ldr r0, _081B9324 + str r0, [sp, #4] + ldr r0, _081B9328 + str r0, [sp, #8] + movs r0, #0xc + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl InitPartyMenu + adds r0, r5, #0 + bl DestroyTask +_081B9318: + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B9320: .4byte 0x02037C74 +_081B9324: .4byte 0x081B1041 +_081B9328: .4byte 0x081B9031 + thumb_func_end sub_081B92E0 + + thumb_func_start sub_081B932C +sub_081B932C: @ 0x081B932C + push {lr} + sub sp, #4 + ldr r1, _081B9358 + ldr r0, _081B935C + ldrb r2, [r0] + ldr r0, _081B9360 + ldrb r3, [r0] + subs r3, #1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r0, _081B9364 + str r0, [sp] + movs r0, #3 + bl ShowPokemonSummaryScreen + ldr r1, _081B9368 + ldr r0, _081B936C + str r0, [r1] + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_081B9358: .4byte 0x02024190 +_081B935C: .4byte 0x02037280 +_081B9360: .4byte 0x0202418D +_081B9364: .4byte 0x08085A31 +_081B9368: .4byte 0x03005B0C +_081B936C: .4byte 0x080AEA65 + thumb_func_end sub_081B932C + + thumb_func_start sub_081B9370 +sub_081B9370: @ 0x081B9370 + push {r4, r5, lr} + ldr r1, _081B93AC + movs r0, #0 + strh r0, [r1] + movs r4, #0 + adds r5, r1, #0 +_081B937C: + ldr r0, _081B93B0 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081B93B4 + adds r0, r0, r1 + adds r1, r4, #0 + adds r1, #0xd + bl GetMonData + cmp r0, #0 + beq _081B939A + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] +_081B939A: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _081B937C + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B93AC: .4byte 0x02037290 +_081B93B0: .4byte 0x02037280 +_081B93B4: .4byte 0x02024190 + thumb_func_end sub_081B9370 + + thumb_func_start sub_081B93B8 +sub_081B93B8: @ 0x081B93B8 + push {r4, r5, lr} + ldr r0, _081B93F8 + ldrh r1, [r0] + movs r0, #0x64 + adds r5, r1, #0 + muls r5, r0, r5 + ldr r0, _081B93FC + adds r5, r5, r0 + ldr r0, _081B9400 + ldrh r1, [r0] + adds r1, #0xd + adds r0, r5, #0 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r1, _081B9404 + adds r0, r5, #0 + bl GetMonNickname + ldr r0, _081B9408 + lsls r4, r4, #3 + ldr r1, _081B940C + adds r4, r4, r1 + adds r1, r4, #0 + bl StringCopy + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081B93F8: .4byte 0x02037280 +_081B93FC: .4byte 0x02024190 +_081B9400: .4byte 0x02037282 +_081B9404: .4byte 0x02021C40 +_081B9408: .4byte 0x02021C54 +_081B940C: .4byte 0x082EACC4 + thumb_func_end sub_081B93B8 + + thumb_func_start sub_081B9410 +sub_081B9410: @ 0x081B9410 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + ldr r0, _081B9470 + mov r8, r0 + ldrh r0, [r0] + movs r6, #0x64 + muls r0, r6, r0 + ldr r5, _081B9474 + adds r0, r0, r5 + ldr r4, _081B9478 + ldrb r2, [r4] + movs r1, #0 + bl SetMonMoveSlot + mov r1, r8 + ldrh r0, [r1] + muls r0, r6, r0 + adds r0, r0, r5 + ldrb r1, [r4] + bl RemoveMonPPBonus + ldrh r4, [r4] + cmp r4, #2 + bhi _081B9464 +_081B9442: + ldr r0, _081B9470 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081B9474 + adds r0, r0, r1 + lsls r1, r4, #0x18 + lsrs r1, r1, #0x18 + adds r4, #1 + lsls r2, r4, #0x18 + lsrs r2, r2, #0x18 + bl sub_081B947C + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + cmp r4, #2 + bls _081B9442 +_081B9464: + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081B9470: .4byte 0x02037280 +_081B9474: .4byte 0x02024190 +_081B9478: .4byte 0x02037282 + thumb_func_end sub_081B9410 + + thumb_func_start sub_081B947C +sub_081B947C: @ 0x081B947C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + mov r8, r0 + adds r5, r1, #0 + adds r4, r2, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + adds r0, #0xd + str r0, [sp, #8] + mov r0, r8 + ldr r1, [sp, #8] + bl GetMonData + mov r1, sp + adds r1, #2 + 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, #5 + 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, #4 + mov sl, r7 + strb r0, [r7] + mov r0, r8 + movs r1, #0x15 + bl GetMonData + mov r6, sp + adds r6, #6 + strb r0, [r6] + ldr r1, _081B9578 + adds r0, r5, r1 + ldrb r0, [r0] + mov sb, r0 + ldrb r0, [r6] + adds r2, r0, #0 + mov r3, sb + ands r2, r3 + lsls r5, r5, #1 + asrs r2, r5 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r1, r4, r1 + ldrb r3, [r1] + adds r1, r0, #0 + ands r1, r3 + lsls r4, r4, #1 + asrs r1, r4 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r7, sb + bics r0, r7 + strb r0, [r6] + ldrb r0, [r6] + bics r0, r3 + strb r0, [r6] + lsls r2, r4 + lsls r1, r5 + adds r2, r2, r1 + ldrb r0, [r6] + orrs r0, r2 + strb r0, [r6] + mov r0, r8 + ldr r1, [sp, #8] + 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, sl + 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, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B9578: .4byte 0x082FA6AA + thumb_func_end sub_081B947C + + thumb_func_start sub_081B957C +sub_081B957C: @ 0x081B957C + push {lr} + ldr r0, _081B95A0 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081B95A4 + adds r0, r0, r1 + movs r1, #0x2d + bl GetMonData + adds r1, r0, #0 + cmp r1, #0 + beq _081B95AC + ldr r1, _081B95A8 + movs r0, #1 + strh r0, [r1] + b _081B95B0 + .align 2, 0 +_081B95A0: .4byte 0x02037280 +_081B95A4: .4byte 0x02024190 +_081B95A8: .4byte 0x02037290 +_081B95AC: + ldr r0, _081B95B4 + strh r1, [r0] +_081B95B0: + pop {r0} + bx r0 + .align 2, 0 +_081B95B4: .4byte 0x02037290 + thumb_func_end sub_081B957C + + thumb_func_start sub_081B95B8 +sub_081B95B8: @ 0x081B95B8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r1, _081B95E8 + movs r0, #0 + strh r0, [r1] + ldr r0, _081B95EC + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081B95F0 + adds r0, r0, r1 + ldr r1, _081B95F4 + ldrh r1, [r1] + adds r1, #0xd + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + cmp r0, #0x39 + bne _081B963C + movs r6, #0 + b _081B9620 + .align 2, 0 +_081B95E8: .4byte 0x02037290 +_081B95EC: .4byte 0x02037280 +_081B95F0: .4byte 0x02024190 +_081B95F4: .4byte 0x02037282 +_081B95F8: + ldr r0, _081B9648 + ldrh r0, [r0] + cmp r6, r0 + beq _081B961E + movs r4, #0 + movs r0, #0x64 + adds r5, r6, #0 + muls r5, r0, r5 + ldr r7, _081B964C +_081B960A: + adds r1, r4, #0 + adds r1, #0xd + adds r0, r5, r7 + bl GetMonData + cmp r0, #0x39 + beq _081B963C + adds r4, #1 + cmp r4, #3 + bls _081B960A +_081B961E: + adds r6, #1 +_081B9620: + bl CalculatePlayerPartyCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r6, r0 + blo _081B95F8 + mov r0, r8 + bl AnyStorageMonWithMove + cmp r0, #1 + beq _081B963C + ldr r1, _081B9650 + movs r0, #1 + strh r0, [r1] +_081B963C: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081B9648: .4byte 0x02037280 +_081B964C: .4byte 0x02024190 +_081B9650: .4byte 0x02037290 + thumb_func_end sub_081B95B8 + diff --git a/asm/play_time.s b/asm/play_time.s new file mode 100644 index 0000000..3ca8168 --- /dev/null +++ b/asm/play_time.s @@ -0,0 +1,134 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start PlayTimeCounter_Reset +PlayTimeCounter_Reset: @ 0x08083B6C + ldr r1, _08083B88 + movs r0, #0 + strb r0, [r1] + ldr r2, _08083B8C + ldr r3, [r2] + movs r1, #0 + movs r0, #0 + strh r0, [r3, #0xe] + strb r1, [r3, #0x10] + ldr r0, [r2] + strb r1, [r0, #0x11] + ldr r0, [r2] + strb r1, [r0, #0x12] + bx lr + .align 2, 0 +_08083B88: .4byte 0x03000E08 +_08083B8C: .4byte 0x03005AF0 + thumb_func_end PlayTimeCounter_Reset + + thumb_func_start PlayTimeCounter_Start +PlayTimeCounter_Start: @ 0x08083B90 + push {lr} + ldr r1, _08083BAC + movs r0, #1 + strb r0, [r1] + ldr r0, _08083BB0 + ldr r0, [r0] + ldrh r1, [r0, #0xe] + ldr r0, _08083BB4 + cmp r1, r0 + bls _08083BA8 + bl PlayTimeCounter_SetToMax +_08083BA8: + pop {r0} + bx r0 + .align 2, 0 +_08083BAC: .4byte 0x03000E08 +_08083BB0: .4byte 0x03005AF0 +_08083BB4: .4byte 0x000003E7 + thumb_func_end PlayTimeCounter_Start + + thumb_func_start PlayTimeCounter_Stop +PlayTimeCounter_Stop: @ 0x08083BB8 + ldr r1, _08083BC0 + movs r0, #0 + strb r0, [r1] + bx lr + .align 2, 0 +_08083BC0: .4byte 0x03000E08 + thumb_func_end PlayTimeCounter_Stop + + thumb_func_start PlayTimeCounter_Update +PlayTimeCounter_Update: @ 0x08083BC4 + push {lr} + ldr r0, _08083C20 + ldrb r0, [r0] + cmp r0, #1 + bne _08083C1C + ldr r2, _08083C24 + ldr r0, [r2] + ldrb r1, [r0, #0x12] + adds r1, #1 + movs r3, #0 + strb r1, [r0, #0x12] + ldr r1, [r2] + ldrb r0, [r1, #0x12] + cmp r0, #0x3b + bls _08083C1C + strb r3, [r1, #0x12] + ldr r0, [r2] + ldrb r1, [r0, #0x11] + adds r1, #1 + strb r1, [r0, #0x11] + ldr r1, [r2] + ldrb r0, [r1, #0x11] + cmp r0, #0x3b + bls _08083C1C + strb r3, [r1, #0x11] + ldr r0, [r2] + ldrb r1, [r0, #0x10] + adds r1, #1 + strb r1, [r0, #0x10] + ldr r1, [r2] + ldrb r0, [r1, #0x10] + cmp r0, #0x3b + bls _08083C1C + strb r3, [r1, #0x10] + ldr r0, [r2] + ldrh r1, [r0, #0xe] + adds r1, #1 + strh r1, [r0, #0xe] + lsls r1, r1, #0x10 + ldr r0, _08083C28 + cmp r1, r0 + bls _08083C1C + bl PlayTimeCounter_SetToMax +_08083C1C: + pop {r0} + bx r0 + .align 2, 0 +_08083C20: .4byte 0x03000E08 +_08083C24: .4byte 0x03005AF0 +_08083C28: .4byte 0x03E70000 + thumb_func_end PlayTimeCounter_Update + + thumb_func_start PlayTimeCounter_SetToMax +PlayTimeCounter_SetToMax: @ 0x08083C2C + ldr r1, _08083C48 + movs r0, #2 + strb r0, [r1] + ldr r2, _08083C4C + ldr r3, [r2] + ldr r0, _08083C50 + strh r0, [r3, #0xe] + movs r1, #0x3b + strb r1, [r3, #0x10] + ldr r0, [r2] + strb r1, [r0, #0x11] + ldr r0, [r2] + strb r1, [r0, #0x12] + bx lr + .align 2, 0 +_08083C48: .4byte 0x03000E08 +_08083C4C: .4byte 0x03005AF0 +_08083C50: .4byte 0x000003E7 + thumb_func_end PlayTimeCounter_SetToMax + diff --git a/asm/player_pc.s b/asm/player_pc.s new file mode 100644 index 0000000..b5dbc98 --- /dev/null +++ b/asm/player_pc.s @@ -0,0 +1,3730 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start NewGameInitPCItems +NewGameInitPCItems: @ 0x0816ABFC + push {r4, r5, r6, lr} + movs r4, #0 + ldr r0, _0816AC58 + ldr r0, [r0] + movs r1, #0x93 + lsls r1, r1, #3 + adds r0, r0, r1 + movs r1, #0x32 + bl ClearItemSlots + ldr r1, _0816AC5C + ldrh r0, [r1] + cmp r0, #0 + beq _0816AC50 + ldrh r0, [r1, #2] + cmp r0, #0 + beq _0816AC50 + adds r5, r1, #0 + adds r6, r5, #2 +_0816AC22: + lsls r1, r4, #2 + adds r0, r1, r5 + ldrh r0, [r0] + adds r1, r1, r6 + ldrh r1, [r1] + bl AddPCItem + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0816AC50 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r4, #2 + adds r0, r1, r5 + ldrh r0, [r0] + cmp r0, #0 + beq _0816AC50 + adds r0, r1, r6 + ldrh r0, [r0] + cmp r0, #0 + bne _0816AC22 +_0816AC50: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0816AC58: .4byte 0x03005AEC +_0816AC5C: .4byte 0x085C0BE0 + thumb_func_end NewGameInitPCItems + + thumb_func_start BedroomPC +BedroomPC: @ 0x0816AC60 + push {lr} + ldr r1, _0816AC88 + ldr r0, _0816AC8C + str r0, [r1] + ldr r1, _0816AC90 + movs r0, #4 + strb r0, [r1] + ldr r0, _0816AC94 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0816AC98 + ldr r2, _0816AC9C + bl DisplayItemMessageOnField + pop {r0} + bx r0 + .align 2, 0 +_0816AC88: .4byte 0x0203B97C +_0816AC8C: .4byte 0x085C0BB8 +_0816AC90: .4byte 0x0203B980 +_0816AC94: .4byte 0x080A8A41 +_0816AC98: .4byte 0x085C942E +_0816AC9C: .4byte 0x0816ACE1 + thumb_func_end BedroomPC + + thumb_func_start PlayerPC +PlayerPC: @ 0x0816ACA0 + push {lr} + ldr r1, _0816ACC8 + ldr r0, _0816ACCC + str r0, [r1] + ldr r1, _0816ACD0 + movs r0, #3 + strb r0, [r1] + ldr r0, _0816ACD4 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0816ACD8 + ldr r2, _0816ACDC + bl DisplayItemMessageOnField + pop {r0} + bx r0 + .align 2, 0 +_0816ACC8: .4byte 0x0203B97C +_0816ACCC: .4byte 0x085C0BBC +_0816ACD0: .4byte 0x0203B980 +_0816ACD4: .4byte 0x080A8A41 +_0816ACD8: .4byte 0x085C942E +_0816ACDC: .4byte 0x0816ACE1 + thumb_func_end PlayerPC + + thumb_func_start InitPlayerPCMenu +InitPlayerPCMenu: @ 0x0816ACE0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r0, r0, #2 + add r0, r8 + lsls r0, r0, #3 + ldr r1, _0816AD04 + adds r7, r0, r1 + ldr r0, _0816AD08 + ldrb r0, [r0] + cmp r0, #3 + bne _0816AD10 + ldr r0, _0816AD0C + b _0816AD12 + .align 2, 0 +_0816AD04: .4byte 0x03005B68 +_0816AD08: .4byte 0x0203B980 +_0816AD0C: .4byte 0x085C0C08 +_0816AD10: + ldr r0, _0816AD98 +_0816AD12: + bl AddWindow + strh r0, [r7, #8] + ldrb r0, [r7, #8] + movs r1, #0 + bl SetStandardWindowBorderStyle + movs r0, #1 + movs r1, #0 + bl GetFontAttribute + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + movs r1, #2 + bl GetFontAttribute + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r7, #8] + str r0, [sp] + movs r6, #0x10 + str r6, [sp, #4] + ldr r5, _0816AD9C + ldrb r0, [r5] + str r0, [sp, #8] + ldr r0, _0816ADA0 + str r0, [sp, #0xc] + ldr r0, _0816ADA4 + ldr r0, [r0] + str r0, [sp, #0x10] + adds r0, r1, #0 + movs r1, #1 + adds r2, r4, #0 + movs r3, #2 + bl AddItemMenuActionTextPrinters + ldrb r0, [r7, #8] + str r6, [sp] + ldrb r1, [r5] + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl sub_081984B0 + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, _0816ADA8 + mov r2, r8 + lsls r0, r2, #2 + add r0, r8 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0816ADAC + str r1, [r0] + add sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0816AD98: .4byte 0x085C0C10 +_0816AD9C: .4byte 0x0203B980 +_0816ADA0: .4byte 0x085C0B98 +_0816ADA4: .4byte 0x0203B97C +_0816ADA8: .4byte 0x03005B60 +_0816ADAC: .4byte 0x0816ADB1 + thumb_func_end InitPlayerPCMenu + + thumb_func_start PlayerPCProcessMenuInput +PlayerPCProcessMenuInput: @ 0x0816ADB0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _0816ADD0 + adds r4, r0, r1 + ldr r0, _0816ADD4 + ldrb r0, [r0] + cmp r0, #3 + bls _0816ADD8 + bl Menu_ProcessInput + b _0816ADDC + .align 2, 0 +_0816ADD0: .4byte 0x03005B68 +_0816ADD4: .4byte 0x0203B980 +_0816ADD8: + bl Menu_ProcessInputNoWrap +_0816ADDC: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r0, r0, #0x18 + asrs r5, r0, #0x18 + movs r0, #2 + rsbs r0, r0, #0 + cmp r5, r0 + beq _0816AE64 + adds r0, #1 + cmp r5, r0 + bne _0816AE2C + movs r0, #5 + bl PlaySE + ldrb r0, [r4, #8] + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + ldrb r0, [r4, #8] + bl ClearWindowTilemap + ldrb r0, [r4, #8] + bl RemoveWindow + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, _0816AE24 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0816AE28 + str r1, [r0] + b _0816AE64 + .align 2, 0 +_0816AE24: .4byte 0x03005B60 +_0816AE28: .4byte 0x0816AF61 +_0816AE2C: + ldrb r0, [r4, #8] + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + ldrb r0, [r4, #8] + bl ClearWindowTilemap + ldrb r0, [r4, #8] + bl RemoveWindow + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + ldr r0, _0816AE6C + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r2, _0816AE70 + ldr r0, _0816AE74 + ldr r0, [r0] + adds r0, r0, r5 + ldrb r0, [r0] + lsls r0, r0, #3 + adds r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] +_0816AE64: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0816AE6C: .4byte 0x03005B60 +_0816AE70: .4byte 0x085C0B98 +_0816AE74: .4byte 0x0203B97C + thumb_func_end PlayerPCProcessMenuInput + + thumb_func_start ReshowPlayerPC +ReshowPlayerPC: @ 0x0816AE78 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0816AE8C + ldr r2, _0816AE90 + bl DisplayItemMessageOnField + pop {r0} + bx r0 + .align 2, 0 +_0816AE8C: .4byte 0x085C942E +_0816AE90: .4byte 0x0816ACE1 + thumb_func_end ReshowPlayerPC + + thumb_func_start PlayerPC_ItemStorage +PlayerPC_ItemStorage: @ 0x0816AE94 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #0 + bl InitItemStorageMenu + ldr r1, _0816AEB8 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0816AEBC + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816AEB8: .4byte 0x03005B60 +_0816AEBC: .4byte 0x0816B06D + thumb_func_end PlayerPC_ItemStorage + + thumb_func_start PlayerPC_Mailbox +PlayerPC_Mailbox: @ 0x0816AEC0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r6, r4, #0 + bl GetMailboxMailCount + ldr r5, _0816AEE4 + movs r1, #0 + strb r0, [r5, #5] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0816AEF0 + ldr r1, _0816AEE8 + ldr r2, _0816AEEC + adds r0, r4, #0 + bl DisplayItemMessageOnField + b _0816AF42 + .align 2, 0 +_0816AEE4: .4byte 0x0203B984 +_0816AEE8: .4byte 0x085CA976 +_0816AEEC: .4byte 0x0816AE79 +_0816AEF0: + strh r1, [r5] + strh r1, [r5, #2] + movs r0, #0xff + strb r0, [r5, #9] + bl Mailbox_UpdateMailList + adds r0, r4, #0 + bl ItemStorage_SetItemAndMailCount + ldrb r0, [r5, #5] + bl sub_081D1340 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0816AF38 + movs r0, #0 + movs r1, #0 + bl DrawDialogueFrame + adds r0, r4, #0 + bl Mailbox_DrawMailboxMenu + ldr r0, _0816AF30 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _0816AF34 + str r0, [r1] + b _0816AF42 + .align 2, 0 +_0816AF30: .4byte 0x03005B60 +_0816AF34: .4byte 0x0816B489 +_0816AF38: + ldr r1, _0816AF48 + ldr r2, _0816AF4C + adds r0, r6, #0 + bl DisplayItemMessageOnField +_0816AF42: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0816AF48: .4byte 0x085CA976 +_0816AF4C: .4byte 0x0816AE79 + thumb_func_end PlayerPC_Mailbox + + thumb_func_start PlayerPC_Decoration +PlayerPC_Decoration: @ 0x0816AF50 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DoPlayerRoomDecorationMenu + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayerPC_Decoration + + thumb_func_start PlayerPC_TurnOff +PlayerPC_TurnOff: @ 0x0816AF60 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0816AF80 + ldrb r0, [r0] + cmp r0, #4 + bne _0816AF98 + ldr r0, _0816AF84 + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #0 + bne _0816AF8C + ldr r0, _0816AF88 + bl ScriptContext1_SetupScript + b _0816AF9C + .align 2, 0 +_0816AF80: .4byte 0x0203B980 +_0816AF84: .4byte 0x03005AF0 +_0816AF88: .4byte 0x081F01EE +_0816AF8C: + ldr r0, _0816AF94 + bl ScriptContext1_SetupScript + b _0816AF9C + .align 2, 0 +_0816AF94: .4byte 0x081F0DDB +_0816AF98: + bl EnableBothScriptContexts +_0816AF9C: + adds r0, r4, #0 + bl DestroyTask + pop {r4} + pop {r0} + bx r0 + thumb_func_end PlayerPC_TurnOff + + thumb_func_start InitItemStorageMenu +InitItemStorageMenu: @ 0x0816AFA8 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0xc + adds r5, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _0816B030 + adds r4, r4, r0 + ldr r0, _0816B034 + bl AddWindow + strh r0, [r4, #8] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl SetStandardWindowBorderStyle + movs r0, #1 + movs r1, #0 + bl GetFontAttribute + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r0, [r4, #8] + movs r1, #0x10 + mov r8, r1 + str r1, [sp] + movs r6, #4 + str r6, [sp, #4] + ldr r1, _0816B038 + str r1, [sp, #8] + movs r1, #1 + movs r3, #2 + bl PrintTextArray + ldrb r0, [r4, #8] + mov r1, r8 + str r1, [sp] + str r6, [sp, #4] + str r5, [sp, #8] + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl sub_081984B0 + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + ldr r0, _0816B03C + lsls r5, r5, #2 + adds r5, r5, r0 + ldr r0, [r5] + bl ItemStorageMenuPrint + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0816B030: .4byte 0x03005B68 +_0816B034: .4byte 0x085C0C18 +_0816B038: .4byte 0x085C0BC0 +_0816B03C: .4byte 0x085C0B88 + thumb_func_end InitItemStorageMenu + + thumb_func_start ItemStorageMenuPrint +ItemStorageMenuPrint: @ 0x0816B040 + push {r4, lr} + sub sp, #0xc + adds r4, r0, #0 + movs r0, #0 + movs r1, #0 + bl ClearDialogWindowAndFrame + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + movs r1, #1 + adds r2, r4, #0 + movs r3, #0 + bl AddTextPrinterParameterized + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ItemStorageMenuPrint + + thumb_func_start ItemStorageMenuProcessInput +ItemStorageMenuProcessInput: @ 0x0816B06C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + bl Menu_GetCursorPos + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + bl Menu_ProcessInput + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl Menu_GetCursorPos + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + movs r0, #2 + rsbs r0, r0, #0 + cmp r4, r0 + beq _0816B0BC + adds r0, #1 + cmp r4, r0 + beq _0816B0D8 + movs r0, #5 + bl PlaySE + ldr r0, _0816B0B8 + lsls r1, r4, #3 + adds r0, #4 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r6, #0 + bl _call_via_r1 + b _0816B0E4 + .align 2, 0 +_0816B0B8: .4byte 0x085C0BC0 +_0816B0BC: + lsls r1, r5, #0x18 + lsls r0, r2, #0x18 + asrs r2, r0, #0x18 + cmp r1, r0 + beq _0816B0E4 + ldr r0, _0816B0D4 + lsls r1, r2, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl ItemStorageMenuPrint + b _0816B0E4 + .align 2, 0 +_0816B0D4: .4byte 0x085C0B88 +_0816B0D8: + movs r0, #5 + bl PlaySE + adds r0, r6, #0 + bl ItemStorage_Exit +_0816B0E4: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ItemStorageMenuProcessInput + + thumb_func_start ItemStorage_Deposit +ItemStorage_Deposit: @ 0x0816B0EC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0816B10C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r0, _0816B110 + str r0, [r1] + movs r0, #1 + movs r1, #0 + bl FadeScreen + pop {r0} + bx r0 + .align 2, 0 +_0816B10C: .4byte 0x03005B60 +_0816B110: .4byte 0x0816B115 + thumb_func_end ItemStorage_Deposit + + thumb_func_start Task_ItemStorage_Deposit +Task_ItemStorage_Deposit: @ 0x0816B114 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0816B13C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0816B134 + bl CleanupOverworldWindowsAndTilemaps + bl sub_081AA98C + adds r0, r4, #0 + bl DestroyTask +_0816B134: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816B13C: .4byte 0x02037C74 + thumb_func_end Task_ItemStorage_Deposit + + thumb_func_start sub_0816B140 +sub_0816B140: @ 0x0816B140 + push {lr} + ldr r0, _0816B154 + ldr r1, _0816B158 + str r1, [r0] + ldr r0, _0816B15C + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_0816B154: .4byte 0x03005B0C +_0816B158: .4byte 0x0816B161 +_0816B15C: .4byte 0x08085A31 + thumb_func_end sub_0816B140 + + thumb_func_start Mailbox_DoRedrawMailboxMenuAfterReturn +Mailbox_DoRedrawMailboxMenuAfterReturn: @ 0x0816B160 + push {lr} + bl sub_08196F98 + movs r0, #0 + movs r1, #1 + bl ClearDialogWindowAndFrame + ldr r0, _0816B188 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + bl InitItemStorageMenu + bl pal_fill_black + pop {r0} + bx r0 + .align 2, 0 +_0816B188: .4byte 0x0816B18D + thumb_func_end Mailbox_DoRedrawMailboxMenuAfterReturn + + thumb_func_start ItemStorage_HandleReturnToProcessInput +ItemStorage_HandleReturnToProcessInput: @ 0x0816B18C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl IsWeatherNotFadingIn + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0816B1AC + ldr r0, _0816B1B4 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _0816B1B8 + str r0, [r1] +_0816B1AC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816B1B4: .4byte 0x03005B60 +_0816B1B8: .4byte 0x0816B06D + thumb_func_end ItemStorage_HandleReturnToProcessInput + + thumb_func_start ItemStorage_Withdraw +ItemStorage_Withdraw: @ 0x0816B1BC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + ldr r0, _0816B1E4 + adds r4, r4, r0 + bl CountUsedPCItemSlots + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #2] + cmp r0, #0 + beq _0816B1E8 + adds r0, r5, #0 + movs r1, #0 + bl ItemStorage_WithdrawToss_Helper + b _0816B1F8 + .align 2, 0 +_0816B1E4: .4byte 0x03005B68 +_0816B1E8: + adds r0, r5, #0 + bl sub_0816B300 + ldr r1, _0816B200 + ldr r2, _0816B204 + adds r0, r5, #0 + bl DisplayItemMessageOnField +_0816B1F8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0816B200: .4byte 0x085CA918 +_0816B204: .4byte 0x0816AE95 + thumb_func_end ItemStorage_Withdraw + + thumb_func_start ItemStorage_Toss +ItemStorage_Toss: @ 0x0816B208 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + ldr r0, _0816B230 + adds r4, r4, r0 + bl CountUsedPCItemSlots + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #2] + cmp r0, #0 + beq _0816B234 + adds r0, r5, #0 + movs r1, #1 + bl ItemStorage_WithdrawToss_Helper + b _0816B244 + .align 2, 0 +_0816B230: .4byte 0x03005B68 +_0816B234: + adds r0, r5, #0 + bl sub_0816B300 + ldr r1, _0816B24C + ldr r2, _0816B250 + adds r0, r5, #0 + bl DisplayItemMessageOnField +_0816B244: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0816B24C: .4byte 0x085CA918 +_0816B250: .4byte 0x0816AE95 + thumb_func_end ItemStorage_Toss + + thumb_func_start ItemStorage_WithdrawToss_Helper +ItemStorage_WithdrawToss_Helper: @ 0x0816B254 + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r5, r4, #2 + adds r5, r5, r4 + lsls r5, r5, #3 + ldr r6, _0816B2B8 + adds r0, r5, r6 + strh r1, [r0, #6] + adds r0, r4, #0 + bl sub_0816B300 + ldr r1, _0816B2BC + movs r0, #0 + strh r0, [r1] + strh r0, [r1, #2] + movs r0, #0xff + strb r0, [r1, #9] + adds r0, r4, #0 + bl ItemStorage_SetItemAndMailCount + bl sub_0816BA54 + bl FreeAndReserveObjectSpritePalettes + bl LoadListMenuArrowsGfx + ldr r0, _0816B2C0 + ldr r0, [r0] + movs r1, #0xcd + lsls r1, r1, #3 + adds r0, r0, r1 + movs r1, #7 + bl sub_08122350 + movs r0, #0 + movs r1, #0 + bl DrawDialogueFrame + subs r6, #8 + adds r5, r5, r6 + ldr r0, _0816B2C4 + str r0, [r5] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0816B2B8: .4byte 0x03005B68 +_0816B2BC: .4byte 0x0203B984 +_0816B2C0: .4byte 0x0203B990 +_0816B2C4: .4byte 0x0816BF8D + thumb_func_end ItemStorage_WithdrawToss_Helper + + thumb_func_start ItemStorage_Exit +ItemStorage_Exit: @ 0x0816B2C8 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl sub_0816B300 + adds r0, r4, #0 + bl ReshowPlayerPC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ItemStorage_Exit + + thumb_func_start ItemStorage_SetItemAndMailCount +ItemStorage_SetItemAndMailCount: @ 0x0816B2E4 + push {lr} + ldr r1, _0816B2F4 + ldrb r0, [r1, #5] + cmp r0, #7 + bls _0816B2F8 + movs r0, #8 + b _0816B2FA + .align 2, 0 +_0816B2F4: .4byte 0x0203B984 +_0816B2F8: + adds r0, #1 +_0816B2FA: + strb r0, [r1, #4] + pop {r0} + bx r0 + thumb_func_end ItemStorage_SetItemAndMailCount + + thumb_func_start sub_0816B300 +sub_0816B300: @ 0x0816B300 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _0816B330 + adds r4, r4, r0 + ldrb r0, [r4, #8] + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + ldrb r0, [r4, #8] + bl ClearWindowTilemap + ldrb r0, [r4, #8] + bl RemoveWindow + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816B330: .4byte 0x03005B68 + thumb_func_end sub_0816B300 + + thumb_func_start GetMailboxMailCount +GetMailboxMailCount: @ 0x0816B334 + push {r4, lr} + movs r2, #0 + movs r1, #6 + ldr r0, _0816B36C + ldr r3, [r0] + movs r4, #0xb0 + lsls r4, r4, #6 +_0816B342: + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r3, r0 + adds r0, r0, r4 + ldrh r0, [r0] + cmp r0, #0 + beq _0816B358 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 +_0816B358: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xf + bls _0816B342 + adds r0, r2, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0816B36C: .4byte 0x03005AEC + thumb_func_end GetMailboxMailCount + + thumb_func_start Mailbox_UpdateMailList +Mailbox_UpdateMailList: @ 0x0816B370 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x24 + movs r2, #6 +_0816B37E: + adds r1, r2, #1 + lsls r0, r1, #0x18 + lsrs r4, r0, #0x18 + mov r8, r1 + cmp r4, #0xf + bhi _0816B3F8 + ldr r0, _0816B414 + mov sl, r0 + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + mov ip, r0 + ldr r6, _0816B418 +_0816B398: + mov r1, sl + ldr r1, [r1] + mov sb, r1 + mov r2, sb + add r2, ip + movs r3, #0xb0 + lsls r3, r3, #6 + adds r0, r2, r3 + ldrh r0, [r0] + cmp r0, #0 + bne _0816B3EE + adds r2, r2, r6 + mov r1, sp + adds r0, r2, #0 + ldm r0!, {r3, r5, r7} + stm r1!, {r3, r5, r7} + ldm r0!, {r3, r5, r7} + stm r1!, {r3, r5, r7} + ldm r0!, {r3, r5, r7} + stm r1!, {r3, r5, r7} + lsls r3, r4, #3 + adds r3, r3, r4 + lsls r3, r3, #2 + mov r5, sb + adds r0, r5, r3 + adds r0, r0, r6 + ldm r0!, {r1, r5, r7} + stm r2!, {r1, r5, r7} + ldm r0!, {r1, r5, r7} + stm r2!, {r1, r5, r7} + ldm r0!, {r1, r5, r7} + stm r2!, {r1, r5, r7} + mov r7, sl + ldr r1, [r7] + adds r1, r1, r3 + adds r1, r1, r6 + mov r0, sp + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} + ldm r0!, {r2, r3, r7} + stm r1!, {r2, r3, r7} + ldm r0!, {r2, r5, r7} + stm r1!, {r2, r5, r7} +_0816B3EE: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xf + bls _0816B398 +_0816B3F8: + mov r3, r8 + lsls r0, r3, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xe + bls _0816B37E + add sp, #0x24 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0816B414: .4byte 0x03005AEC +_0816B418: .4byte 0x00002BE0 + thumb_func_end Mailbox_UpdateMailList + + thumb_func_start Mailbox_DrawMailboxMenu +Mailbox_DrawMailboxMenu: @ 0x0816B41C + push {r4, r5, lr} + sub sp, #0xc + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r0, #0 + bl sub_081D1380 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + bl sub_081D1380 + ldr r2, _0816B47C + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + adds r0, r4, #0 + movs r1, #1 + movs r3, #2 + bl AddTextPrinterParameterized + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + ldr r4, _0816B480 + adds r0, r4, #0 + bl sub_081D13F4 + ldr r2, _0816B484 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r1, #0x12] + adds r0, r4, #0 + bl sub_081D14D8 + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0816B47C: .4byte 0x085CA8B5 +_0816B480: .4byte 0x0203B984 +_0816B484: .4byte 0x03005B60 + thumb_func_end Mailbox_DrawMailboxMenu + + thumb_func_start Mailbox_ProcessInput +Mailbox_ProcessInput: @ 0x0816B488 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + mov sb, r0 + ldr r0, _0816B4DC + mov sl, r0 + mov r4, sb + add r4, sl + ldr r0, _0816B4E0 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0816B532 + ldrb r0, [r4, #0xa] + bl ListMenu_ProcessInput + adds r6, r0, #0 + ldrb r0, [r4, #0xa] + ldr r7, _0816B4E4 + subs r1, r7, #2 + mov r8, r1 + adds r1, r7, #0 + mov r2, r8 + bl ListMenuGetScrollAndRow + movs r0, #2 + rsbs r0, r0, #0 + cmp r6, r0 + beq _0816B4E8 + adds r0, #1 + cmp r6, r0 + bne _0816B4FE + b _0816B532 + .align 2, 0 +_0816B4DC: .4byte 0x03005B68 +_0816B4E0: .4byte 0x02037C74 +_0816B4E4: .4byte 0x0203B986 +_0816B4E8: + movs r0, #5 + bl PlaySE + mov r1, r8 + ldrb r0, [r1, #9] + bl RemoveScrollIndicatorArrowPair + adds r0, r5, #0 + bl Mailbox_ReturnToPlayerPC + b _0816B532 +_0816B4FE: + movs r0, #5 + bl PlaySE + movs r0, #0 + bl MoveRelearnerCursorCallback + movs r0, #1 + bl MoveRelearnerCursorCallback + ldrb r0, [r4, #0xa] + adds r1, r7, #0 + mov r2, r8 + bl DestroyListMenuTask + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + mov r1, r8 + ldrb r0, [r1, #9] + bl RemoveScrollIndicatorArrowPair + mov r0, sl + subs r0, #8 + add r0, sb + ldr r1, _0816B540 + str r1, [r0] +_0816B532: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0816B540: .4byte 0x0816B545 + thumb_func_end Mailbox_ProcessInput + + thumb_func_start Mailbox_PrintWhatToDoWithPlayerMailText +Mailbox_PrintWhatToDoWithPlayerMailText: @ 0x0816B544 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _0816B588 + ldr r3, _0816B58C + ldr r1, _0816B590 + ldrh r2, [r1] + adds r2, #6 + ldrh r1, [r1, #2] + adds r2, r2, r1 + lsls r1, r2, #3 + adds r1, r1, r2 + lsls r1, r1, #2 + ldr r2, [r3] + adds r1, r1, r2 + ldr r2, _0816B594 + adds r1, r1, r2 + bl StringCopy + ldr r5, _0816B598 + ldr r1, _0816B59C + adds r0, r5, #0 + bl StringExpandPlaceholders + ldr r2, _0816B5A0 + adds r0, r4, #0 + adds r1, r5, #0 + bl DisplayItemMessageOnField + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0816B588: .4byte 0x02021C40 +_0816B58C: .4byte 0x03005AEC +_0816B590: .4byte 0x0203B984 +_0816B594: .4byte 0x00002BF2 +_0816B598: .4byte 0x02021C7C +_0816B59C: .4byte 0x085CA988 +_0816B5A0: .4byte 0x0816B5E9 + thumb_func_end Mailbox_PrintWhatToDoWithPlayerMailText + + thumb_func_start Mailbox_ReturnToPlayerPC +Mailbox_ReturnToPlayerPC: @ 0x0816B5A4 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + ldr r0, _0816B5E4 + adds r4, r4, r0 + movs r0, #0 + bl MoveRelearnerCursorCallback + movs r0, #1 + bl MoveRelearnerCursorCallback + ldrb r0, [r4, #0xa] + movs r1, #0 + movs r2, #0 + bl DestroyListMenuTask + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + bl sub_081D1508 + adds r0, r5, #0 + bl ReshowPlayerPC + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0816B5E4: .4byte 0x03005B68 + thumb_func_end Mailbox_ReturnToPlayerPC + + thumb_func_start Mailbox_PrintMailOptions +Mailbox_PrintMailOptions: @ 0x0816B5E8 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0xc + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r0, #2 + bl sub_081D1380 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + movs r1, #0 + bl GetFontAttribute + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r0, #0x10 + mov r8, r0 + str r0, [sp] + movs r6, #4 + str r6, [sp, #4] + ldr r0, _0816B660 + str r0, [sp, #8] + adds r0, r4, #0 + movs r1, #1 + movs r3, #2 + bl PrintTextArray + mov r0, r8 + str r0, [sp] + str r6, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl sub_081984B0 + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, _0816B664 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0816B668 + str r1, [r0] + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0816B660: .4byte 0x085C0BE8 +_0816B664: .4byte 0x03005B60 +_0816B668: .4byte 0x0816B66D + thumb_func_end Mailbox_PrintMailOptions + + thumb_func_start Mailbox_MailOptionsProcessInput +Mailbox_MailOptionsProcessInput: @ 0x0816B66C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r6, r5, #0 + bl ProcessMenuInput_other + lsls r0, r0, #0x18 + asrs r4, r0, #0x18 + movs r0, #2 + rsbs r0, r0, #0 + cmp r4, r0 + beq _0816B6AE + adds r0, #1 + cmp r4, r0 + bne _0816B698 + movs r0, #5 + bl PlaySE + adds r0, r5, #0 + bl Mailbox_Cancel + b _0816B6AE +_0816B698: + movs r0, #5 + bl PlaySE + ldr r0, _0816B6B4 + lsls r1, r4, #3 + adds r0, #4 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r6, #0 + bl _call_via_r1 +_0816B6AE: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0816B6B4: .4byte 0x085C0BE8 + thumb_func_end Mailbox_MailOptionsProcessInput + + thumb_func_start Mailbox_DoMailRead +Mailbox_DoMailRead: @ 0x0816B6B8 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + movs r1, #0 + bl FadeScreen + ldr r1, _0816B6DC + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0816B6E0 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816B6DC: .4byte 0x03005B60 +_0816B6E0: .4byte 0x0816B6E5 + thumb_func_end Mailbox_DoMailRead + + thumb_func_start Mailbox_FadeAndReadMail +Mailbox_FadeAndReadMail: @ 0x0816B6E4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0816B72C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0816B726 + bl sub_081D1508 + bl CleanupOverworldWindowsAndTilemaps + ldr r2, _0816B730 + ldr r1, _0816B734 + ldrh r0, [r1] + adds r0, #6 + ldrh r1, [r1, #2] + adds r0, r0, r1 + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _0816B738 + adds r1, r1, r0 + ldr r0, [r2] + adds r0, r0, r1 + ldr r1, _0816B73C + movs r2, #1 + bl ReadMail + adds r0, r4, #0 + bl DestroyTask +_0816B726: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816B72C: .4byte 0x02037C74 +_0816B730: .4byte 0x03005AEC +_0816B734: .4byte 0x0203B984 +_0816B738: .4byte 0x00002BE0 +_0816B73C: .4byte 0x0816B741 + thumb_func_end Mailbox_FadeAndReadMail + + thumb_func_start Mailbox_ReturnToFieldFromReadMail +Mailbox_ReturnToFieldFromReadMail: @ 0x0816B740 + push {lr} + ldr r0, _0816B754 + ldr r1, _0816B758 + str r1, [r0] + ldr r0, _0816B75C + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_0816B754: .4byte 0x03005B0C +_0816B758: .4byte 0x0816B761 +_0816B75C: .4byte 0x08085A31 + thumb_func_end Mailbox_ReturnToFieldFromReadMail + + thumb_func_start pal_fill_for_maplights_or_black +pal_fill_for_maplights_or_black: @ 0x0816B760 + push {r4, lr} + bl sub_08196F98 + ldr r0, _0816B78C + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0816B790 + ldrb r0, [r0, #5] + bl sub_081D1340 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0816B794 + adds r0, r4, #0 + bl Mailbox_DrawMailboxMenu + b _0816B79A + .align 2, 0 +_0816B78C: .4byte 0x0816B7A5 +_0816B790: .4byte 0x0203B984 +_0816B794: + adds r0, r4, #0 + bl DestroyTask +_0816B79A: + bl pal_fill_black + pop {r4} + pop {r0} + bx r0 + thumb_func_end pal_fill_for_maplights_or_black + + thumb_func_start Mailbox_HandleReturnToProcessInput +Mailbox_HandleReturnToProcessInput: @ 0x0816B7A4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl IsWeatherNotFadingIn + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0816B7C4 + ldr r0, _0816B7CC + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _0816B7D0 + str r0, [r1] +_0816B7C4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816B7CC: .4byte 0x03005B60 +_0816B7D0: .4byte 0x0816B489 + thumb_func_end Mailbox_HandleReturnToProcessInput + + thumb_func_start Mailbox_MoveToBag +Mailbox_MoveToBag: @ 0x0816B7D4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0816B7E8 + ldr r2, _0816B7EC + bl DisplayItemMessageOnField + pop {r0} + bx r0 + .align 2, 0 +_0816B7E8: .4byte 0x085CA99A +_0816B7EC: .4byte 0x0816B7F1 + thumb_func_end Mailbox_MoveToBag + + thumb_func_start Mailbox_DrawYesNoBeforeMove +Mailbox_DrawYesNoBeforeMove: @ 0x0816B7F0 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl DisplayYesNoMenuDefaultYes + ldr r1, _0816B810 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0816B814 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816B810: .4byte 0x03005B60 +_0816B814: .4byte 0x0816B819 + thumb_func_end Mailbox_DrawYesNoBeforeMove + + thumb_func_start Mailbox_MoveToBagYesNoPrompt +Mailbox_MoveToBagYesNoPrompt: @ 0x0816B818 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _0816B844 + cmp r0, r1 + ble _0816B850 + cmp r0, #0 + beq _0816B83C + cmp r0, #1 + beq _0816B84A + b _0816B850 +_0816B83C: + adds r0, r4, #0 + bl Mailbox_DoMailMoveToBag + b _0816B850 +_0816B844: + movs r0, #5 + bl PlaySE +_0816B84A: + adds r0, r4, #0 + bl Mailbox_CancelMoveToBag +_0816B850: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Mailbox_MoveToBagYesNoPrompt + + thumb_func_start Mailbox_DoMailMoveToBag +Mailbox_DoMailMoveToBag: @ 0x0816B858 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r2, _0816B894 + ldr r4, _0816B898 + ldrh r1, [r4] + adds r1, #6 + ldrh r0, [r4, #2] + adds r1, r1, r0 + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0816B89C + adds r0, r0, r1 + ldr r1, [r2] + adds r5, r1, r0 + ldrh r0, [r5, #0x20] + movs r1, #1 + bl AddBagItem + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0816B8A8 + ldr r1, _0816B8A0 + ldr r2, _0816B8A4 + adds r0, r6, #0 + bl DisplayItemMessageOnField + b _0816B8DC + .align 2, 0 +_0816B894: .4byte 0x03005AEC +_0816B898: .4byte 0x0203B984 +_0816B89C: .4byte 0x00002BE0 +_0816B8A0: .4byte 0x085CA9B3 +_0816B8A4: .4byte 0x0816BA15 +_0816B8A8: + ldr r1, _0816B8E4 + ldr r2, _0816B8E8 + adds r0, r6, #0 + bl DisplayItemMessageOnField + adds r0, r5, #0 + bl ClearMailStruct + bl Mailbox_UpdateMailList + ldrb r0, [r4, #5] + subs r0, #1 + strb r0, [r4, #5] + ldrb r1, [r4, #5] + ldrb r0, [r4, #4] + ldrh r2, [r4, #2] + adds r0, r0, r2 + cmp r1, r0 + bge _0816B8D6 + cmp r2, #0 + beq _0816B8D6 + subs r0, r2, #1 + strh r0, [r4, #2] +_0816B8D6: + adds r0, r6, #0 + bl ItemStorage_SetItemAndMailCount +_0816B8DC: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0816B8E4: .4byte 0x085CA9C2 +_0816B8E8: .4byte 0x0816BA15 + thumb_func_end Mailbox_DoMailMoveToBag + + thumb_func_start Mailbox_CancelMoveToBag +Mailbox_CancelMoveToBag: @ 0x0816B8EC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl Mailbox_Cancel + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Mailbox_CancelMoveToBag + + thumb_func_start Mailbox_Give +Mailbox_Give: @ 0x0816B8FC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl CalculatePlayerPartyCount + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0816B914 + adds r0, r4, #0 + bl Mailbox_NoPokemonForMail + b _0816B92A +_0816B914: + movs r0, #1 + movs r1, #0 + bl FadeScreen + ldr r0, _0816B930 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _0816B934 + str r0, [r1] +_0816B92A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816B930: .4byte 0x03005B60 +_0816B934: .4byte 0x0816B939 + thumb_func_end Mailbox_Give + + thumb_func_start Mailbox_DoGiveMailPokeMenu +Mailbox_DoGiveMailPokeMenu: @ 0x0816B938 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0816B964 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0816B95C + bl sub_081D1508 + bl CleanupOverworldWindowsAndTilemaps + bl sub_081B80E8 + adds r0, r4, #0 + bl DestroyTask +_0816B95C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816B964: .4byte 0x02037C74 + thumb_func_end Mailbox_DoGiveMailPokeMenu + + thumb_func_start Mailbox_ReturnToMailListAfterDeposit +Mailbox_ReturnToMailListAfterDeposit: @ 0x0816B968 + push {lr} + ldr r0, _0816B97C + ldr r1, _0816B980 + str r1, [r0] + ldr r0, _0816B984 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_0816B97C: .4byte 0x03005B0C +_0816B980: .4byte 0x0816B989 +_0816B984: .4byte 0x08085A31 + thumb_func_end Mailbox_ReturnToMailListAfterDeposit + + thumb_func_start Mailbox_UpdateMailListAfterDeposit +Mailbox_UpdateMailListAfterDeposit: @ 0x0816B988 + push {r4, r5, r6, lr} + ldr r0, _0816B9E0 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r5, _0816B9E4 + ldrb r4, [r5, #5] + bl GetMailboxMailCount + strb r0, [r5, #5] + bl Mailbox_UpdateMailList + ldrb r0, [r5, #5] + cmp r4, r0 + beq _0816B9BE + ldrb r1, [r5, #5] + ldrb r0, [r5, #4] + ldrh r2, [r5, #2] + adds r0, r0, r2 + cmp r1, r0 + bge _0816B9BE + cmp r2, #0 + beq _0816B9BE + subs r0, r2, #1 + strh r0, [r5, #2] +_0816B9BE: + adds r0, r6, #0 + bl ItemStorage_SetItemAndMailCount + bl sub_08196F98 + ldr r0, _0816B9E4 + ldrb r0, [r0, #5] + bl sub_081D1340 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0816B9E8 + adds r0, r6, #0 + bl Mailbox_DrawMailboxMenu + b _0816B9EE + .align 2, 0 +_0816B9E0: .4byte 0x0816B7A5 +_0816B9E4: .4byte 0x0203B984 +_0816B9E8: + adds r0, r6, #0 + bl DestroyTask +_0816B9EE: + bl pal_fill_black + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end Mailbox_UpdateMailListAfterDeposit + + thumb_func_start Mailbox_NoPokemonForMail +Mailbox_NoPokemonForMail: @ 0x0816B9F8 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0816BA0C + ldr r2, _0816BA10 + bl DisplayItemMessageOnField + pop {r0} + bx r0 + .align 2, 0 +_0816BA0C: .4byte 0x085C9472 +_0816BA10: .4byte 0x0816BA15 + thumb_func_end Mailbox_NoPokemonForMail + + thumb_func_start Mailbox_Cancel +Mailbox_Cancel: @ 0x0816BA14 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #2 + bl MoveRelearnerCursorCallback + movs r0, #0 + movs r1, #0 + bl DrawDialogueFrame + adds r0, r4, #0 + bl Mailbox_DrawMailboxMenu + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, _0816BA4C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0816BA50 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816BA4C: .4byte 0x03005B60 +_0816BA50: .4byte 0x0816B489 + thumb_func_end Mailbox_Cancel + + thumb_func_start sub_0816BA54 +sub_0816BA54: @ 0x0816BA54 + push {r4, lr} + ldr r4, _0816BA8C + movs r0, #0xce + lsls r0, r0, #3 + bl AllocZeroed + str r0, [r4] + movs r1, #0xcc + lsls r1, r1, #3 + adds r0, r0, r1 + movs r1, #0xff + movs r2, #6 + bl memset + ldr r0, [r4] + ldr r1, _0816BA90 + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] + ldr r0, [r4] + ldr r1, _0816BA94 + adds r0, r0, r1 + movs r1, #1 + rsbs r1, r1, #0 + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816BA8C: .4byte 0x0203B990 +_0816BA90: .4byte 0x00000666 +_0816BA94: .4byte 0x00000667 + thumb_func_end sub_0816BA54 + + thumb_func_start sub_0816BA98 +sub_0816BA98: @ 0x0816BA98 + push {r4, lr} + movs r4, #0 +_0816BA9C: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl sub_0816BB04 + adds r4, #1 + cmp r4, #5 + bls _0816BA9C + ldr r0, _0816BAB8 + ldr r0, [r0] + bl Free + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816BAB8: .4byte 0x0203B990 + thumb_func_end sub_0816BA98 + + thumb_func_start sub_0816BABC +sub_0816BABC: @ 0x0816BABC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _0816BAFC + movs r3, #0xcc + lsls r3, r3, #3 + adds r1, r2, r3 + ldr r0, [r0] + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, #0xff + bne _0816BAF4 + lsls r0, r2, #3 + ldr r1, _0816BB00 + adds r0, r0, r1 + bl AddWindow + strb r0, [r4] + ldrb r0, [r4] + movs r2, #0x85 + lsls r2, r2, #2 + movs r1, #0 + movs r3, #0xe + bl DrawStdFrameWithCustomTileAndPalette + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram +_0816BAF4: + ldrb r0, [r4] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0816BAFC: .4byte 0x0203B990 +_0816BB00: .4byte 0x085C0C40 + thumb_func_end sub_0816BABC + + thumb_func_start sub_0816BB04 +sub_0816BB04: @ 0x0816BB04 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0816BB40 + movs r2, #0xcc + lsls r2, r2, #3 + adds r0, r0, r2 + ldr r1, [r1] + adds r4, r1, r0 + ldrb r0, [r4] + cmp r0, #0xff + beq _0816BB38 + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + ldrb r0, [r4] + bl ClearWindowTilemap + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + ldrb r0, [r4] + bl RemoveWindow + movs r0, #0xff + strb r0, [r4] +_0816BB38: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816BB40: .4byte 0x0203B990 + thumb_func_end sub_0816BB04 + + thumb_func_start ItemStorage_RefreshListMenu +ItemStorage_RefreshListMenu: @ 0x0816BB44 + push {r4, r5, r6, lr} + movs r6, #0 + ldr r0, _0816BBF0 + ldrb r0, [r0, #5] + subs r0, #1 + cmp r6, r0 + bge _0816BB98 + ldr r5, _0816BBF4 +_0816BB54: + lsls r4, r6, #1 + adds r4, r4, r6 + lsls r4, r4, #3 + movs r0, #0xcc + lsls r0, r0, #1 + adds r4, r4, r0 + ldr r0, [r5] + adds r0, r0, r4 + ldr r1, _0816BBF8 + ldr r1, [r1] + lsls r2, r6, #2 + adds r1, r1, r2 + movs r2, #0x93 + lsls r2, r2, #3 + adds r1, r1, r2 + ldrh r1, [r1] + bl CopyItemName_PlayerPC + ldr r0, [r5] + lsls r2, r6, #3 + adds r1, r0, r2 + adds r4, r0, r4 + str r4, [r1] + adds r0, #4 + adds r0, r0, r2 + str r6, [r0] + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r0, _0816BBF0 + ldrb r0, [r0, #5] + subs r0, #1 + cmp r6, r0 + blt _0816BB54 +_0816BB98: + ldr r5, _0816BBF4 + lsls r4, r6, #1 + adds r4, r4, r6 + lsls r4, r4, #3 + movs r3, #0xcc + lsls r3, r3, #1 + adds r4, r4, r3 + ldr r0, [r5] + adds r0, r0, r4 + ldr r1, _0816BBFC + bl StringCopy + ldr r0, [r5] + lsls r2, r6, #3 + adds r1, r0, r2 + adds r4, r0, r4 + str r4, [r1] + adds r0, #4 + adds r0, r0, r2 + movs r1, #2 + rsbs r1, r1, #0 + str r1, [r0] + ldr r4, _0816BC00 + adds r1, r4, #0 + ldr r0, _0816BC04 + ldm r0!, {r2, r3, r6} + stm r1!, {r2, r3, r6} + ldm r0!, {r2, r3, r6} + stm r1!, {r2, r3, r6} + movs r0, #0 + bl sub_0816BABC + strb r0, [r4, #0x10] + ldr r1, _0816BBF0 + ldrb r0, [r1, #5] + strh r0, [r4, #0xc] + ldr r0, [r5] + str r0, [r4] + ldrb r0, [r1, #4] + strh r0, [r4, #0xe] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0816BBF0: .4byte 0x0203B984 +_0816BBF4: .4byte 0x0203B990 +_0816BBF8: .4byte 0x03005AEC +_0816BBFC: .4byte 0x085C93C8 +_0816BC00: .4byte 0x03006050 +_0816BC04: .4byte 0x085C0C28 + thumb_func_end ItemStorage_RefreshListMenu + + thumb_func_start CopyItemName_PlayerPC +CopyItemName_PlayerPC: @ 0x0816BC08 + push {lr} + adds r2, r0, #0 + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + adds r1, r2, #0 + bl CopyItemName + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CopyItemName_PlayerPC + + thumb_func_start ItemStorage_MoveCursor +ItemStorage_MoveCursor: @ 0x0816BC1C + push {r4, lr} + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #1 + beq _0816BC2E + movs r0, #5 + bl PlaySE +_0816BC2E: + ldr r0, _0816BC60 + ldr r0, [r0] + ldr r1, _0816BC64 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0xff + bne _0816BC78 + bl sub_0816BEFC + movs r0, #2 + rsbs r0, r0, #0 + cmp r4, r0 + beq _0816BC6C + ldr r0, _0816BC68 + ldr r0, [r0] + lsls r1, r4, #2 + adds r0, r0, r1 + movs r1, #0x93 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrh r0, [r0] + bl sub_0816BE94 + b _0816BC72 + .align 2, 0 +_0816BC60: .4byte 0x0203B990 +_0816BC64: .4byte 0x00000666 +_0816BC68: .4byte 0x03005AEC +_0816BC6C: + ldr r0, _0816BC80 + bl sub_0816BE94 +_0816BC72: + adds r0, r4, #0 + bl sub_0816BD24 +_0816BC78: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816BC80: .4byte 0x0000FFFF + thumb_func_end ItemStorage_MoveCursor + + thumb_func_start fish4_goto_x5_or_x6 +fish4_goto_x5_or_x6: @ 0x0816BC84 + push {r4, r5, r6, lr} + sub sp, #0xc + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + movs r0, #2 + rsbs r0, r0, #0 + cmp r4, r0 + beq _0816BD06 + ldr r0, _0816BCBC + ldr r0, [r0] + ldr r1, _0816BCC0 + adds r0, r0, r1 + ldrb r1, [r0] + cmp r1, #0xff + beq _0816BCCE + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + cmp r1, r0 + bne _0816BCC4 + adds r0, r5, #0 + movs r1, #0 + movs r2, #0xff + bl sub_0816BE14 + b _0816BCCE + .align 2, 0 +_0816BCBC: .4byte 0x0203B990 +_0816BCC0: .4byte 0x00000666 +_0816BCC4: + adds r0, r5, #0 + movs r1, #0xff + movs r2, #0xff + bl sub_0816BE14 +_0816BCCE: + ldr r0, _0816BD10 + ldr r1, _0816BD14 + ldr r1, [r1] + lsls r2, r4, #2 + adds r1, r1, r2 + ldr r2, _0816BD18 + adds r1, r1, r2 + ldrh r1, [r1] + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r4, _0816BD1C + ldr r1, _0816BD20 + adds r0, r4, #0 + bl StringExpandPlaceholders + str r5, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + adds r0, r6, #0 + movs r1, #1 + adds r2, r4, #0 + movs r3, #0x50 + bl AddTextPrinterParameterized +_0816BD06: + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0816BD10: .4byte 0x02021C40 +_0816BD14: .4byte 0x03005AEC +_0816BD18: .4byte 0x0000049A +_0816BD1C: .4byte 0x02021C7C +_0816BD20: .4byte 0x085C943C + thumb_func_end fish4_goto_x5_or_x6 + + thumb_func_start sub_0816BD24 +sub_0816BD24: @ 0x0816BD24 + push {r4, r5, lr} + sub sp, #0xc + adds r1, r0, #0 + ldr r0, _0816BD54 + ldr r0, [r0] + ldr r2, _0816BD58 + adds r0, r0, r2 + ldrb r5, [r0] + movs r0, #2 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0816BD60 + ldr r0, _0816BD5C + ldr r0, [r0] + lsls r1, r1, #2 + adds r0, r0, r1 + movs r1, #0x93 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrh r0, [r0] + bl ItemId_GetHoldEffect + b _0816BD66 + .align 2, 0 +_0816BD54: .4byte 0x0203B990 +_0816BD58: .4byte 0x00000661 +_0816BD5C: .4byte 0x03005AEC +_0816BD60: + ldr r0, _0816BD90 + bl ItemStorage_GetItemPcResponse +_0816BD66: + adds r4, r0, #0 + adds r0, r5, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + adds r0, r5, #0 + movs r1, #1 + adds r2, r4, #0 + movs r3, #0 + bl AddTextPrinterParameterized + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0816BD90: .4byte 0x0000FFFF + thumb_func_end sub_0816BD24 + + thumb_func_start ItemStorage_StartScrollIndicator +ItemStorage_StartScrollIndicator: @ 0x0816BD94 + push {r4, lr} + sub sp, #0x10 + ldr r4, _0816BDC8 + ldrb r0, [r4, #9] + cmp r0, #0xff + bne _0816BDC0 + ldrb r0, [r4, #5] + ldrb r1, [r4, #4] + subs r0, r0, r1 + str r0, [sp] + ldr r0, _0816BDCC + str r0, [sp, #4] + str r0, [sp, #8] + adds r0, r4, #2 + str r0, [sp, #0xc] + movs r0, #2 + movs r1, #0xb0 + movs r2, #0xc + movs r3, #0x94 + bl AddScrollIndicatorArrowPairParameterized + strb r0, [r4, #9] +_0816BDC0: + add sp, #0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816BDC8: .4byte 0x0203B984 +_0816BDCC: .4byte 0x000013F8 + thumb_func_end ItemStorage_StartScrollIndicator + + thumb_func_start ItemStorage_RemoveScrollIndicator +ItemStorage_RemoveScrollIndicator: @ 0x0816BDD0 + push {r4, lr} + ldr r4, _0816BDE8 + ldrb r0, [r4, #9] + cmp r0, #0xff + beq _0816BDE2 + bl RemoveScrollIndicatorArrowPair + movs r0, #0xff + strb r0, [r4, #9] +_0816BDE2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816BDE8: .4byte 0x0203B984 + thumb_func_end ItemStorage_RemoveScrollIndicator + + thumb_func_start sub_0816BDEC +sub_0816BDEC: @ 0x0816BDEC + push {r4, r5, lr} + adds r4, r1, #0 + adds r5, r2, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + bl ListMenuGetYCoordForPrintingArrowCursor + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_0816BE14 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_0816BDEC + + thumb_func_start sub_0816BE14 +sub_0816BE14: @ 0x0816BE14 + push {r4, r5, r6, lr} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r0, _0816BE60 + ldr r0, [r0] + movs r3, #0xcc + lsls r3, r3, #3 + adds r0, r0, r3 + ldrb r5, [r0] + cmp r1, #0xff + bne _0816BE64 + movs r0, #1 + movs r1, #0 + bl GetMenuCursorDimensionByFont + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + movs r1, #1 + bl GetMenuCursorDimensionByFont + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r4, [sp] + str r0, [sp, #4] + adds r0, r5, #0 + movs r1, #0x11 + movs r2, #0 + adds r3, r6, #0 + bl FillWindowPixelRect + b _0816BE84 + .align 2, 0 +_0816BE60: .4byte 0x0203B990 +_0816BE64: + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + ldr r0, _0816BE8C + str r0, [sp, #8] + lsls r0, r2, #0x18 + asrs r0, r0, #0x18 + str r0, [sp, #0xc] + ldr r0, _0816BE90 + str r0, [sp, #0x10] + adds r0, r5, #0 + movs r1, #1 + movs r2, #0 + adds r3, r6, #0 + bl AddTextPrinterParameterized4 +_0816BE84: + add sp, #0x14 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0816BE8C: .4byte 0x085C0C70 +_0816BE90: .4byte 0x085C9421 + thumb_func_end sub_0816BE14 + + thumb_func_start sub_0816BE94 +sub_0816BE94: @ 0x0816BE94 + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r0, _0816BEEC + ldr r0, [r0] + ldr r1, _0816BEF0 + adds r5, r0, r1 + ldrb r0, [r5] + cmp r0, #0xff + bne _0816BEE6 + ldr r4, _0816BEF4 + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl FreeSpritePaletteByTag + adds r0, r4, #0 + adds r1, r4, #0 + adds r2, r6, #0 + bl AddItemIconSprite + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x40 + beq _0816BEE6 + strb r2, [r5] + ldr r0, _0816BEF8 + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #5] + movs r0, #0x18 + strh r0, [r1, #0x24] + movs r0, #0x50 + strh r0, [r1, #0x26] +_0816BEE6: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0816BEEC: .4byte 0x0203B990 +_0816BEF0: .4byte 0x00000667 +_0816BEF4: .4byte 0x000013F6 +_0816BEF8: .4byte 0x020205AC + thumb_func_end sub_0816BE94 + + thumb_func_start sub_0816BEFC +sub_0816BEFC: @ 0x0816BEFC + push {r4, r5, lr} + ldr r0, _0816BF34 + ldr r0, [r0] + ldr r1, _0816BF38 + adds r5, r0, r1 + ldrb r0, [r5] + cmp r0, #0xff + beq _0816BF2E + ldr r4, _0816BF3C + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl FreeSpritePaletteByTag + ldrb r1, [r5] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0816BF40 + adds r0, r0, r1 + bl DestroySprite + movs r0, #0xff + strb r0, [r5] +_0816BF2E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0816BF34: .4byte 0x0203B990 +_0816BF38: .4byte 0x00000667 +_0816BF3C: .4byte 0x000013F6 +_0816BF40: .4byte 0x020205AC + thumb_func_end sub_0816BEFC + + thumb_func_start sub_0816BF44 +sub_0816BF44: @ 0x0816BF44 + push {lr} + sub sp, #4 + bl CompactPCItems + ldr r0, _0816BF6C + ldr r0, [r0] + movs r1, #0x93 + lsls r1, r1, #3 + adds r0, r0, r1 + ldr r2, _0816BF70 + adds r3, r2, #1 + movs r1, #8 + str r1, [sp] + movs r1, #0x32 + bl sub_08122218 + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_0816BF6C: .4byte 0x03005AEC +_0816BF70: .4byte 0x0203B988 + thumb_func_end sub_0816BF44 + + thumb_func_start sub_0816BF74 +sub_0816BF74: @ 0x0816BF74 + push {lr} + ldr r0, _0816BF88 + subs r1, r0, #2 + ldrb r2, [r1, #4] + ldrb r3, [r1, #5] + bl sub_08122268 + pop {r0} + bx r0 + .align 2, 0 +_0816BF88: .4byte 0x0203B986 + thumb_func_end sub_0816BF74 + + thumb_func_start ItemStorage_ProcessWithdrawTossInput +ItemStorage_ProcessWithdrawTossInput: @ 0x0816BF8C + push {r4, r5, r6, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _0816BFD4 + adds r6, r0, r1 + movs r4, #0 +_0816BFA0: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl sub_0816BABC + adds r4, #1 + cmp r4, #3 + bls _0816BFA0 + movs r0, #6 + ldrsh r3, [r6, r0] + cmp r3, #0 + bne _0816BFE4 + ldr r0, _0816BFD8 + ldr r0, [r0] + ldr r1, _0816BFDC + adds r0, r0, r1 + ldrb r0, [r0] + ldr r2, _0816BFE0 + movs r1, #2 + str r1, [sp] + str r3, [sp, #4] + str r3, [sp, #8] + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + b _0816C002 + .align 2, 0 +_0816BFD4: .4byte 0x03005B68 +_0816BFD8: .4byte 0x0203B990 +_0816BFDC: .4byte 0x00000663 +_0816BFE0: .4byte 0x085CA8C7 +_0816BFE4: + ldr r0, _0816C050 + ldr r0, [r0] + ldr r1, _0816C054 + adds r0, r0, r1 + ldrb r0, [r0] + ldr r2, _0816C058 + movs r1, #2 + str r1, [sp] + movs r1, #0 + str r1, [sp, #4] + str r1, [sp, #8] + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized +_0816C002: + ldr r0, _0816C050 + ldr r0, [r0] + ldr r1, _0816C05C + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #2 + bl CopyWindowToVram + bl sub_0816BF44 + bl sub_0816BF74 + bl ItemStorage_RefreshListMenu + ldr r0, _0816C060 + ldr r2, _0816C064 + ldrh r1, [r2, #2] + ldrh r2, [r2] + bl ListMenuInit + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r6, #0xa] + bl ItemStorage_StartScrollIndicator + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, _0816C068 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0816C06C + str r1, [r0] + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0816C050: .4byte 0x0203B990 +_0816C054: .4byte 0x00000663 +_0816C058: .4byte 0x085CA8D1 +_0816C05C: .4byte 0x00000662 +_0816C060: .4byte 0x03006050 +_0816C064: .4byte 0x0203B984 +_0816C068: .4byte 0x03005B60 +_0816C06C: .4byte 0x0816C155 + thumb_func_end ItemStorage_ProcessWithdrawTossInput + + thumb_func_start ItemStorage_GetItemPcResponse +ItemStorage_GetItemPcResponse: @ 0x0816C070 + push {lr} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r2, _0816C088 + adds r0, r1, r2 + cmp r0, #8 + bhi _0816C0FC + lsls r0, r0, #2 + ldr r1, _0816C08C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0816C088: .4byte 0xFFFF0009 +_0816C08C: .4byte 0x0816C090 +_0816C090: @ jump table + .4byte _0816C0F4 @ case 0 + .4byte _0816C0EC @ case 1 + .4byte _0816C0E4 @ case 2 + .4byte _0816C0DC @ case 3 + .4byte _0816C0D4 @ case 4 + .4byte _0816C0CC @ case 5 + .4byte _0816C0C4 @ case 6 + .4byte _0816C0BC @ case 7 + .4byte _0816C0B4 @ case 8 +_0816C0B4: + ldr r0, _0816C0B8 + b _0816C102 + .align 2, 0 +_0816C0B8: .4byte 0x085C9423 +_0816C0BC: + ldr r0, _0816C0C0 + b _0816C102 + .align 2, 0 +_0816C0C0: .4byte 0x085CA938 +_0816C0C4: + ldr r0, _0816C0C8 + b _0816C102 + .align 2, 0 +_0816C0C8: .4byte 0x085CA949 +_0816C0CC: + ldr r0, _0816C0D0 + b _0816C102 + .align 2, 0 +_0816C0D0: .4byte 0x085C9523 +_0816C0D4: + ldr r0, _0816C0D8 + b _0816C102 + .align 2, 0 +_0816C0D8: .4byte 0x085C9532 +_0816C0DC: + ldr r0, _0816C0E0 + b _0816C102 + .align 2, 0 +_0816C0E0: .4byte 0x085CA925 +_0816C0E4: + ldr r0, _0816C0E8 + b _0816C102 + .align 2, 0 +_0816C0E8: .4byte 0x085C9506 +_0816C0EC: + ldr r0, _0816C0F0 + b _0816C102 + .align 2, 0 +_0816C0F0: .4byte 0x085C9540 +_0816C0F4: + ldr r0, _0816C0F8 + b _0816C102 + .align 2, 0 +_0816C0F8: .4byte 0x085C947F +_0816C0FC: + adds r0, r1, #0 + bl ItemId_GetHoldEffect +_0816C102: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ItemStorage_GetItemPcResponse + + thumb_func_start ItemStorage_PrintItemPcResponse +ItemStorage_PrintItemPcResponse: @ 0x0816C108 + push {r4, r5, r6, lr} + sub sp, #0xc + adds r6, r0, #0 + ldr r0, _0816C148 + ldr r0, [r0] + ldr r1, _0816C14C + adds r0, r0, r1 + ldrb r5, [r0] + adds r0, r5, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r4, _0816C150 + adds r0, r4, #0 + adds r1, r6, #0 + bl StringExpandPlaceholders + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + adds r0, r5, #0 + movs r1, #1 + adds r2, r4, #0 + movs r3, #0 + bl AddTextPrinterParameterized + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0816C148: .4byte 0x0203B990 +_0816C14C: .4byte 0x00000661 +_0816C150: .4byte 0x02021C7C + thumb_func_end ItemStorage_PrintItemPcResponse + + thumb_func_start ItemStorage_ProcessInput +ItemStorage_ProcessInput: @ 0x0816C154 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _0816C198 + adds r4, r0, r1 + ldr r0, _0816C19C + ldrh r1, [r0, #0x2e] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0816C1A4 + ldrb r0, [r4, #0xa] + ldr r1, _0816C1A0 + subs r4, r1, #2 + adds r2, r4, #0 + bl ListMenuGetScrollAndRow + ldrh r1, [r4, #2] + ldrh r0, [r4] + adds r1, r1, r0 + ldrb r0, [r4, #5] + subs r0, #1 + cmp r1, r0 + beq _0816C1E6 + movs r0, #5 + bl PlaySE + adds r0, r5, #0 + bl ItemStorage_ItemSwapChoosePrompt + b _0816C1E6 + .align 2, 0 +_0816C198: .4byte 0x03005B68 +_0816C19C: .4byte 0x03002360 +_0816C1A0: .4byte 0x0203B986 +_0816C1A4: + ldrb r0, [r4, #0xa] + bl ListMenu_ProcessInput + adds r6, r0, #0 + ldrb r0, [r4, #0xa] + ldr r1, _0816C1C8 + subs r2, r1, #2 + bl ListMenuGetScrollAndRow + movs r0, #2 + rsbs r0, r0, #0 + cmp r6, r0 + beq _0816C1CC + adds r0, #1 + cmp r6, r0 + bne _0816C1DA + b _0816C1E6 + .align 2, 0 +_0816C1C8: .4byte 0x0203B986 +_0816C1CC: + movs r0, #5 + bl PlaySE + adds r0, r5, #0 + bl ItemStorage_GoBackToPlayerPCMenu_InitStorage + b _0816C1E6 +_0816C1DA: + movs r0, #5 + bl PlaySE + adds r0, r5, #0 + bl ItemStorage_DoItemAction +_0816C1E6: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end ItemStorage_ProcessInput + + thumb_func_start ItemStorage_GoBackToPlayerPCMenu_InitStorage +ItemStorage_GoBackToPlayerPCMenu_InitStorage: @ 0x0816C1EC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + ldr r0, _0816C23C + adds r4, r4, r0 + bl sub_0816BEFC + bl ItemStorage_RemoveScrollIndicator + ldrb r0, [r4, #0xa] + movs r1, #0 + movs r2, #0 + bl DestroyListMenuTask + ldr r0, _0816C240 + ldr r0, [r0] + movs r1, #0xcd + lsls r1, r1, #3 + adds r0, r0, r1 + movs r1, #7 + bl sub_081223BC + bl sub_0816BA98 + movs r0, #0 + movs r1, #0 + bl ClearDialogWindowAndFrame + movs r1, #6 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0816C244 + adds r0, r5, #0 + movs r1, #0 + bl InitItemStorageMenu + b _0816C24C + .align 2, 0 +_0816C23C: .4byte 0x03005B68 +_0816C240: .4byte 0x0203B990 +_0816C244: + adds r0, r5, #0 + movs r1, #2 + bl InitItemStorageMenu +_0816C24C: + ldr r0, _0816C260 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _0816C264 + str r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0816C260: .4byte 0x03005B60 +_0816C264: .4byte 0x0816B06D + thumb_func_end ItemStorage_GoBackToPlayerPCMenu_InitStorage + + thumb_func_start ItemStorage_ItemSwapChoosePrompt +ItemStorage_ItemSwapChoosePrompt: @ 0x0816C268 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _0816C2F4 + mov r8, r0 + adds r1, r4, #0 + add r1, r8 + mov sb, r1 + ldrb r0, [r1, #0xa] + movs r1, #0x10 + movs r2, #1 + bl ListMenuSetUnkIndicatorsStructField + ldr r6, _0816C2F8 + ldr r2, [r6] + ldr r1, _0816C2FC + ldrb r0, [r1] + ldrb r1, [r1, #2] + adds r0, r0, r1 + ldr r5, _0816C300 + adds r2, r2, r5 + strb r0, [r2] + mov r1, sb + ldrb r0, [r1, #0xa] + movs r1, #0 + movs r2, #0 + bl sub_0816BDEC + ldr r0, [r6] + adds r0, r0, r5 + ldrb r0, [r0] + bl sub_0816C4A8 + ldr r0, _0816C304 + ldr r1, [r0] + ldr r0, [r6] + adds r0, r0, r5 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r1, r1, r0 + movs r0, #0x93 + lsls r0, r0, #3 + adds r1, r1, r0 + ldrh r0, [r1] + ldr r1, _0816C308 + bl CopyItemName + ldr r0, _0816C30C + bl ItemStorage_GetItemPcResponse + bl ItemStorage_PrintItemPcResponse + movs r1, #8 + rsbs r1, r1, #0 + add r8, r1 + add r4, r8 + ldr r0, _0816C310 + str r0, [r4] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0816C2F4: .4byte 0x03005B68 +_0816C2F8: .4byte 0x0203B990 +_0816C2FC: .4byte 0x0203B984 +_0816C300: .4byte 0x00000666 +_0816C304: .4byte 0x03005AEC +_0816C308: .4byte 0x02021C40 +_0816C30C: .4byte 0x0000FFF7 +_0816C310: .4byte 0x0816C315 + thumb_func_end ItemStorage_ItemSwapChoosePrompt + + thumb_func_start sub_0816C314 +sub_0816C314: @ 0x0816C314 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _0816C33C + adds r4, r0, r1 + ldr r7, _0816C340 + ldrh r1, [r7, #0x2e] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0816C348 + ldrb r0, [r4, #0xa] + ldr r1, _0816C344 + subs r2, r1, #2 + bl ListMenuGetScrollAndRow + b _0816C396 + .align 2, 0 +_0816C33C: .4byte 0x03005B68 +_0816C340: .4byte 0x03002360 +_0816C344: .4byte 0x0203B986 +_0816C348: + ldrb r0, [r4, #0xa] + bl ListMenu_ProcessInput + adds r6, r0, #0 + ldrb r0, [r4, #0xa] + ldr r1, _0816C384 + subs r4, r1, #2 + adds r2, r4, #0 + bl ListMenuGetScrollAndRow + ldr r0, _0816C388 + ldr r0, [r0] + movs r1, #0xcd + lsls r1, r1, #3 + adds r0, r0, r1 + movs r1, #7 + movs r2, #0 + bl sub_08122408 + ldrb r0, [r4] + bl sub_0816C4A8 + movs r0, #2 + rsbs r0, r0, #0 + cmp r6, r0 + beq _0816C38C + adds r0, #1 + cmp r6, r0 + bne _0816C3AA + b _0816C3B2 + .align 2, 0 +_0816C384: .4byte 0x0203B986 +_0816C388: .4byte 0x0203B990 +_0816C38C: + ldrh r1, [r7, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0816C3A0 +_0816C396: + adds r0, r5, #0 + movs r1, #0 + bl ItemStorage_DoItemSwap + b _0816C3B2 +_0816C3A0: + adds r0, r5, #0 + movs r1, #1 + bl ItemStorage_DoItemSwap + b _0816C3B2 +_0816C3AA: + adds r0, r5, #0 + movs r1, #0 + bl ItemStorage_DoItemSwap +_0816C3B2: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_0816C314 + + thumb_func_start ItemStorage_DoItemSwap +ItemStorage_DoItemSwap: @ 0x0816C3B8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r1, #0 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + ldr r1, _0816C488 + adds r0, r0, r1 + mov r8, r0 + ldr r4, _0816C48C + ldrh r0, [r4] + ldrh r1, [r4, #2] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + movs r0, #5 + bl PlaySE + mov r2, r8 + ldrb r0, [r2, #0xa] + adds r1, r4, #2 + adds r2, r4, #0 + bl DestroyListMenuTask + cmp r5, #0 + bne _0816C422 + ldr r1, _0816C490 + ldr r0, [r1] + ldr r2, _0816C494 + adds r0, r0, r2 + ldrb r2, [r0] + adds r4, r1, #0 + cmp r2, r6 + beq _0816C43A + subs r0, r6, #1 + cmp r2, r0 + beq _0816C422 + ldr r0, _0816C498 + ldr r0, [r0] + movs r1, #0x93 + lsls r1, r1, #3 + adds r0, r0, r1 + adds r1, r2, #0 + adds r2, r6, #0 + bl MoveItemSlotInList + bl ItemStorage_RefreshListMenu +_0816C422: + ldr r0, _0816C490 + ldr r1, [r0] + ldr r2, _0816C494 + adds r1, r1, r2 + ldrb r1, [r1] + adds r4, r0, #0 + cmp r1, r6 + bhs _0816C43A + ldr r1, _0816C48C + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] +_0816C43A: + ldr r0, [r4] + movs r1, #0xcd + lsls r1, r1, #3 + adds r0, r0, r1 + movs r1, #7 + movs r2, #1 + bl sub_08122408 + ldr r0, [r4] + ldr r2, _0816C494 + adds r0, r0, r2 + movs r1, #0xff + strb r1, [r0] + ldr r0, _0816C49C + ldr r2, _0816C48C + ldrh r1, [r2, #2] + ldrh r2, [r2] + bl ListMenuInit + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, r8 + strh r0, [r1, #0xa] + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, _0816C4A0 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0816C4A4 + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0816C488: .4byte 0x03005B68 +_0816C48C: .4byte 0x0203B984 +_0816C490: .4byte 0x0203B990 +_0816C494: .4byte 0x00000666 +_0816C498: .4byte 0x03005AEC +_0816C49C: .4byte 0x03006050 +_0816C4A0: .4byte 0x03005B60 +_0816C4A4: .4byte 0x0816C155 + thumb_func_end ItemStorage_DoItemSwap + + thumb_func_start sub_0816C4A8 +sub_0816C4A8: @ 0x0816C4A8 + push {lr} + adds r3, r0, #0 + lsls r3, r3, #0x18 + ldr r0, _0816C4D0 + ldr r0, [r0] + movs r1, #0xcd + lsls r1, r1, #3 + adds r0, r0, r1 + lsrs r3, r3, #4 + movs r1, #0x80 + lsls r1, r1, #0xd + adds r3, r3, r1 + lsrs r3, r3, #0x10 + movs r1, #7 + movs r2, #0x80 + bl sub_08122454 + pop {r0} + bx r0 + .align 2, 0 +_0816C4D0: .4byte 0x0203B990 + thumb_func_end sub_0816C4A8 + + thumb_func_start sub_0816C4D4 +sub_0816C4D4: @ 0x0816C4D4 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0xc + adds r5, r0, #0 + adds r6, r3, #0 + ldr r4, [sp, #0x20] + ldr r3, [sp, #0x24] + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r0, _0816C528 + bl ConvertIntToDecimalStringN + ldr r0, _0816C52C + mov r8, r0 + ldr r1, _0816C530 + bl StringExpandPlaceholders + str r4, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + adds r0, r5, #0 + movs r1, #1 + mov r2, r8 + adds r3, r6, #0 + bl AddTextPrinterParameterized + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0816C528: .4byte 0x02021C40 +_0816C52C: .4byte 0x02021C7C +_0816C530: .4byte 0x085C943C + thumb_func_end sub_0816C4D4 + + thumb_func_start ItemStorage_DoItemAction +ItemStorage_DoItemAction: @ 0x0816C534 + push {r4, r5, r6, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _0816C57C + adds r6, r0, r1 + ldr r1, _0816C580 + ldrh r0, [r1, #2] + ldrh r1, [r1] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + bl ItemStorage_RemoveScrollIndicator + movs r0, #1 + strh r0, [r6, #4] + movs r1, #6 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _0816C5B0 + ldr r0, _0816C584 + ldr r1, [r0] + lsls r0, r4, #2 + adds r1, r1, r0 + ldr r2, _0816C588 + adds r0, r1, r2 + ldrh r0, [r0] + cmp r0, #1 + bne _0816C58C + adds r0, r5, #0 + bl ItemStorage_DoItemWithdraw + b _0816C616 + .align 2, 0 +_0816C57C: .4byte 0x03005B68 +_0816C580: .4byte 0x0203B984 +_0816C584: .4byte 0x03005AEC +_0816C588: .4byte 0x0000049A +_0816C58C: + movs r2, #0x93 + lsls r2, r2, #3 + adds r0, r1, r2 + ldrh r0, [r0] + ldr r1, _0816C5A8 + bl CopyItemName + ldr r0, _0816C5AC + bl ItemStorage_GetItemPcResponse + bl ItemStorage_PrintItemPcResponse + b _0816C5EC + .align 2, 0 +_0816C5A8: .4byte 0x02021C40 +_0816C5AC: .4byte 0x0000FFFE +_0816C5B0: + ldr r0, _0816C5CC + ldr r1, [r0] + lsls r0, r4, #2 + adds r1, r1, r0 + ldr r2, _0816C5D0 + adds r0, r1, r2 + ldrh r0, [r0] + cmp r0, #1 + bne _0816C5D4 + adds r0, r5, #0 + bl ItemStorage_DoItemToss + b _0816C616 + .align 2, 0 +_0816C5CC: .4byte 0x03005AEC +_0816C5D0: .4byte 0x0000049A +_0816C5D4: + movs r2, #0x93 + lsls r2, r2, #3 + adds r0, r1, r2 + ldrh r0, [r0] + ldr r1, _0816C620 + bl CopyItemName + ldr r0, _0816C624 + bl ItemStorage_GetItemPcResponse + bl ItemStorage_PrintItemPcResponse +_0816C5EC: + movs r0, #4 + bl sub_0816BABC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r6, #4] + movs r2, #2 + str r2, [sp] + movs r2, #3 + str r2, [sp, #4] + movs r2, #2 + movs r3, #8 + bl sub_0816C4D4 + ldr r1, _0816C628 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0816C62C + str r1, [r0] +_0816C616: + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0816C620: .4byte 0x02021C40 +_0816C624: .4byte 0x0000FFFC +_0816C628: .4byte 0x03005B60 +_0816C62C: .4byte 0x0816C631 + thumb_func_end ItemStorage_DoItemAction + + thumb_func_start ItemStorage_HandleQuantityRolling +ItemStorage_HandleQuantityRolling: @ 0x0816C630 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + mov r8, r4 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _0816C68C + adds r5, r0, r1 + ldr r0, _0816C690 + ldrh r2, [r0, #2] + ldrh r0, [r0] + adds r2, r2, r0 + lsls r2, r2, #0x10 + adds r0, r5, #4 + ldr r7, _0816C694 + ldr r1, [r7] + lsrs r6, r2, #0xe + adds r1, r1, r6 + ldr r2, _0816C698 + adds r1, r1, r2 + ldrh r1, [r1] + bl AdjustQuantityAccordingToDPadInput + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0816C69C + movs r0, #4 + bl sub_0816BABC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r5, #4] + movs r2, #2 + str r2, [sp] + movs r2, #3 + str r2, [sp, #4] + movs r2, #2 + movs r3, #8 + bl sub_0816C4D4 + b _0816C6FE + .align 2, 0 +_0816C68C: .4byte 0x03005B68 +_0816C690: .4byte 0x0203B984 +_0816C694: .4byte 0x03005AEC +_0816C698: .4byte 0x0000049A +_0816C69C: + ldr r0, _0816C6C4 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0816C6D0 + movs r0, #5 + bl PlaySE + movs r0, #4 + bl sub_0816BB04 + movs r1, #6 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _0816C6C8 + adds r0, r4, #0 + bl ItemStorage_DoItemWithdraw + b _0816C6FE + .align 2, 0 +_0816C6C4: .4byte 0x03002360 +_0816C6C8: + adds r0, r4, #0 + bl ItemStorage_DoItemToss + b _0816C6FE +_0816C6D0: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0816C6FE + movs r0, #5 + bl PlaySE + movs r0, #4 + bl sub_0816BB04 + ldr r0, [r7] + adds r0, r0, r6 + movs r2, #0x93 + lsls r2, r2, #3 + adds r0, r0, r2 + ldrh r0, [r0] + bl ItemStorage_GetItemPcResponse + bl ItemStorage_PrintItemPcResponse + mov r0, r8 + bl ItemStorage_StartScrollIndicatorAndProcessInput +_0816C6FE: + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ItemStorage_HandleQuantityRolling + + thumb_func_start ItemStorage_DoItemWithdraw +ItemStorage_DoItemWithdraw: @ 0x0816C70C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r6, r1, #3 + ldr r0, _0816C780 + mov r8, r0 + adds r4, r6, r0 + ldr r0, _0816C784 + ldrh r1, [r0, #2] + ldrh r0, [r0] + adds r1, r1, r0 + lsls r1, r1, #0x10 + ldr r7, _0816C788 + ldr r0, [r7] + lsrs r5, r1, #0xe + adds r0, r0, r5 + movs r1, #0x93 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrh r0, [r0] + ldrh r1, [r4, #4] + bl AddBagItem + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0816C79C + ldr r0, [r7] + adds r0, r0, r5 + movs r2, #0x93 + lsls r2, r2, #3 + adds r0, r0, r2 + ldrh r0, [r0] + ldr r1, _0816C78C + bl CopyItemName + ldr r0, _0816C790 + movs r2, #4 + ldrsh r1, [r4, r2] + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r0, _0816C794 + bl ItemStorage_GetItemPcResponse + bl ItemStorage_PrintItemPcResponse + mov r0, r8 + subs r0, #8 + adds r0, r6, r0 + ldr r1, _0816C798 + b _0816C7B2 + .align 2, 0 +_0816C780: .4byte 0x03005B68 +_0816C784: .4byte 0x0203B984 +_0816C788: .4byte 0x03005AEC +_0816C78C: .4byte 0x02021C40 +_0816C790: .4byte 0x02021C54 +_0816C794: .4byte 0x0000FFFD +_0816C798: .4byte 0x0816C915 +_0816C79C: + movs r0, #0 + strh r0, [r4, #4] + ldr r0, _0816C7C0 + bl ItemStorage_GetItemPcResponse + bl ItemStorage_PrintItemPcResponse + mov r0, r8 + subs r0, #8 + adds r0, r6, r0 + ldr r1, _0816C7C4 +_0816C7B2: + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0816C7C0: .4byte 0x0000FFFA +_0816C7C4: .4byte 0x0816C985 + thumb_func_end ItemStorage_DoItemWithdraw + + thumb_func_start ItemStorage_DoItemToss +ItemStorage_DoItemToss: @ 0x0816C7C8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + mov r8, r0 + ldr r0, _0816C854 + mov sb, r0 + mov r7, r8 + add r7, sb + ldr r0, _0816C858 + ldrh r1, [r0, #2] + ldrh r0, [r0] + adds r1, r1, r0 + lsls r1, r1, #0x10 + ldr r6, _0816C85C + ldr r0, [r6] + lsrs r4, r1, #0xe + adds r0, r0, r4 + movs r1, #0x93 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrh r0, [r0] + bl ItemId_GetHoldEffectParam + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0816C874 + ldr r0, [r6] + adds r0, r0, r4 + movs r2, #0x93 + lsls r2, r2, #3 + adds r0, r0, r2 + ldrh r0, [r0] + ldr r1, _0816C860 + bl CopyItemName + ldr r0, _0816C864 + movs r2, #4 + ldrsh r1, [r7, r2] + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r0, _0816C868 + bl ItemStorage_GetItemPcResponse + bl ItemStorage_PrintItemPcResponse + ldr r1, _0816C86C + movs r0, #2 + str r0, [sp] + movs r0, #0x85 + lsls r0, r0, #2 + str r0, [sp, #4] + movs r0, #0xe + str r0, [sp, #8] + ldr r0, _0816C870 + str r0, [sp, #0xc] + adds r0, r5, #0 + movs r2, #1 + movs r3, #0 + bl CreateYesNoMenuWithCallbacks + b _0816C88C + .align 2, 0 +_0816C854: .4byte 0x03005B68 +_0816C858: .4byte 0x0203B984 +_0816C85C: .4byte 0x03005AEC +_0816C860: .4byte 0x02021C40 +_0816C864: .4byte 0x02021C54 +_0816C868: .4byte 0x0000FFF8 +_0816C86C: .4byte 0x085C0C68 +_0816C870: .4byte 0x085C0C20 +_0816C874: + movs r0, #0 + strh r0, [r7, #4] + ldr r0, _0816C89C + bl ItemStorage_GetItemPcResponse + bl ItemStorage_PrintItemPcResponse + mov r0, sb + subs r0, #8 + add r0, r8 + ldr r1, _0816C8A0 + str r1, [r0] +_0816C88C: + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0816C89C: .4byte 0x0000FFF9 +_0816C8A0: .4byte 0x0816C985 + thumb_func_end ItemStorage_DoItemToss + + thumb_func_start ItemStorage_ResumeInputFromYesToss +ItemStorage_ResumeInputFromYesToss: @ 0x0816C8A4 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _0816C8CC + bl ItemStorage_GetItemPcResponse + bl ItemStorage_PrintItemPcResponse + ldr r1, _0816C8D0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0816C8D4 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816C8CC: .4byte 0x0000FFFB +_0816C8D0: .4byte 0x03005B60 +_0816C8D4: .4byte 0x0816C915 + thumb_func_end ItemStorage_ResumeInputFromYesToss + + thumb_func_start ItemStorage_ResumeInputFromNoToss +ItemStorage_ResumeInputFromNoToss: @ 0x0816C8D8 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _0816C90C + ldr r2, [r0] + ldr r1, _0816C910 + ldrh r0, [r1, #2] + ldrh r1, [r1] + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, r2, r0 + movs r0, #0x93 + lsls r0, r0, #3 + adds r2, r2, r0 + ldrh r0, [r2] + bl ItemStorage_GetItemPcResponse + bl ItemStorage_PrintItemPcResponse + adds r0, r4, #0 + bl ItemStorage_StartScrollIndicatorAndProcessInput + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816C90C: .4byte 0x03005AEC +_0816C910: .4byte 0x0203B984 + thumb_func_end ItemStorage_ResumeInputFromNoToss + + thumb_func_start ItemStorage_HandleRemoveItem +ItemStorage_HandleRemoveItem: @ 0x0816C914 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _0816C974 + adds r5, r0, r1 + ldr r0, _0816C978 + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _0816C96E + ldr r4, _0816C97C + ldrb r0, [r4, #2] + ldrb r1, [r4] + adds r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r5, #4] + bl RemovePCItem + ldrb r0, [r5, #0xa] + adds r1, r4, #2 + adds r2, r4, #0 + bl DestroyListMenuTask + bl sub_0816BF44 + bl sub_0816BF74 + bl ItemStorage_RefreshListMenu + ldr r0, _0816C980 + ldrh r1, [r4, #2] + ldrh r2, [r4] + bl ListMenuInit + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0xa] + adds r0, r6, #0 + bl ItemStorage_StartScrollIndicatorAndProcessInput +_0816C96E: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0816C974: .4byte 0x03005B68 +_0816C978: .4byte 0x03002360 +_0816C97C: .4byte 0x0203B984 +_0816C980: .4byte 0x03006050 + thumb_func_end ItemStorage_HandleRemoveItem + + thumb_func_start ItemStorage_WaitPressHandleResumeProcessInput +ItemStorage_WaitPressHandleResumeProcessInput: @ 0x0816C984 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0816C9C4 + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _0816C9BC + ldr r0, _0816C9C8 + ldr r2, [r0] + ldr r1, _0816C9CC + ldrh r0, [r1, #2] + ldrh r1, [r1] + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, r2, r0 + movs r0, #0x93 + lsls r0, r0, #3 + adds r2, r2, r0 + ldrh r0, [r2] + bl ItemStorage_GetItemPcResponse + bl ItemStorage_PrintItemPcResponse + adds r0, r4, #0 + bl ItemStorage_StartScrollIndicatorAndProcessInput +_0816C9BC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816C9C4: .4byte 0x03002360 +_0816C9C8: .4byte 0x03005AEC +_0816C9CC: .4byte 0x0203B984 + thumb_func_end ItemStorage_WaitPressHandleResumeProcessInput + + thumb_func_start ItemStorage_StartScrollIndicatorAndProcessInput +ItemStorage_StartScrollIndicatorAndProcessInput: @ 0x0816C9D0 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl ItemStorage_StartScrollIndicator + ldr r1, _0816C9F0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0816C9F4 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816C9F0: .4byte 0x03005B60 +_0816C9F4: .4byte 0x0816C155 + thumb_func_end ItemStorage_StartScrollIndicatorAndProcessInput + diff --git a/asm/poison.s b/asm/poison.s new file mode 100644 index 0000000..09b7ee9 --- /dev/null +++ b/asm/poison.s @@ -0,0 +1,362 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_0810E3FC +sub_0810E3FC: @ 0x0810E3FC + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0810E450 + movs r1, #6 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0810E412 + adds r0, r5, #0 + movs r1, #2 + bl StartSpriteAnim +_0810E412: + adds r0, r5, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldrh r0, [r4, #4] + strh r0, [r5, #0x2e] + ldr r4, _0810E454 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x32] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x36] + ldr r0, _0810E458 + strh r0, [r5, #0x38] + adds r0, r5, #0 + bl InitAnimArcTranslation + ldr r0, _0810E45C + str r0, [r5, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810E450: .4byte 0x020380BE +_0810E454: .4byte 0x020380D7 +_0810E458: .4byte 0x0000FFE2 +_0810E45C: .4byte 0x0810E461 + thumb_func_end sub_0810E3FC + + thumb_func_start sub_0810E460 +sub_0810E460: @ 0x0810E460 + push {r4, lr} + adds r4, r0, #0 + bl TranslateAnimHorizontalArc + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810E474 + adds r0, r4, #0 + bl DestroyAnimSprite +_0810E474: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0810E460 + + thumb_func_start sub_0810E47C +sub_0810E47C: @ 0x0810E47C + push {r4, r5, r6, lr} + sub sp, #4 + adds r4, r0, #0 + ldr r5, _0810E4F0 + movs r1, #6 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _0810E494 + adds r0, r4, #0 + movs r1, #2 + bl StartSpriteAnim +_0810E494: + adds r0, r4, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldr r0, _0810E4F4 + ldrb r0, [r0] + mov r6, sp + adds r6, #2 + movs r1, #1 + mov r2, sp + adds r3, r6, #0 + bl SetAverageBattlerPositions + ldr r0, _0810E4F8 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810E4C2 + ldrh r0, [r5, #8] + rsbs r0, r0, #0 + strh r0, [r5, #8] +_0810E4C2: + ldrh r0, [r5, #4] + strh r0, [r4, #0x2e] + mov r1, sp + ldrh r0, [r5, #8] + ldrh r1, [r1] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldrh r0, [r5, #0xa] + ldrh r6, [r6] + adds r0, r0, r6 + strh r0, [r4, #0x36] + ldr r0, _0810E4FC + strh r0, [r4, #0x38] + adds r0, r4, #0 + bl InitAnimArcTranslation + ldr r0, _0810E500 + str r0, [r4, #0x1c] + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0810E4F0: .4byte 0x020380BE +_0810E4F4: .4byte 0x020380D7 +_0810E4F8: .4byte 0x020380D6 +_0810E4FC: .4byte 0x0000FFE2 +_0810E500: .4byte 0x0810E505 + thumb_func_end sub_0810E47C + + thumb_func_start sub_0810E504 +sub_0810E504: @ 0x0810E504 + push {r4, lr} + adds r4, r0, #0 + bl TranslateAnimHorizontalArc + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810E518 + adds r0, r4, #0 + bl DestroyAnimSprite +_0810E518: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0810E504 + + thumb_func_start sub_0810E520 +sub_0810E520: @ 0x0810E520 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0810E56C + ldrh r0, [r5, #4] + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x20] + strh r0, [r4, #0x30] + ldrh r1, [r5] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x22] + strh r0, [r4, #0x34] + ldrh r1, [r5, #2] + adds r0, r0, r1 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl InitSpriteDataForLinearTranslation + movs r1, #0x30 + ldrsh r0, [r4, r1] + movs r2, #4 + ldrsh r1, [r5, r2] + bl __divsi3 + strh r0, [r4, #0x38] + movs r1, #0x32 + ldrsh r0, [r4, r1] + movs r2, #4 + ldrsh r1, [r5, r2] + bl __divsi3 + strh r0, [r4, #0x3a] + ldr r0, _0810E570 + str r0, [r4, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810E56C: .4byte 0x020380BE +_0810E570: .4byte 0x0810E575 + thumb_func_end sub_0810E520 + + thumb_func_start sub_0810E574 +sub_0810E574: @ 0x0810E574 + push {r4, lr} + adds r4, r0, #0 + bl TranslateSpriteLinearFixedPoint + ldrh r0, [r4, #0x30] + ldrh r1, [r4, #0x38] + subs r0, r0, r1 + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x32] + ldrh r1, [r4, #0x3a] + subs r0, r0, r1 + strh r0, [r4, #0x32] + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0810E59A + adds r0, r4, #0 + bl DestroyAnimSprite +_0810E59A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0810E574 + + thumb_func_start sub_0810E5A0 +sub_0810E5A0: @ 0x0810E5A0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0810E600 + ldrb r0, [r0] + adds r2, r4, #0 + adds r2, #0x20 + adds r3, r4, #0 + adds r3, #0x22 + movs r1, #1 + bl SetAverageBattlerPositions + ldr r0, _0810E604 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810E5CC + ldr r1, _0810E608 + ldrh r0, [r1] + rsbs r0, r0, #0 + strh r0, [r1] +_0810E5CC: + ldr r0, _0810E608 + ldrh r2, [r0] + ldrh r1, [r4, #0x20] + adds r2, r2, r1 + strh r2, [r4, #0x20] + ldrh r1, [r0, #2] + ldrh r3, [r4, #0x22] + adds r1, r1, r3 + strh r1, [r4, #0x22] + ldrh r3, [r0, #8] + strh r3, [r4, #0x2e] + ldrh r0, [r0, #4] + adds r2, r2, r0 + strh r2, [r4, #0x32] + adds r1, r1, r3 + strh r1, [r4, #0x36] + ldr r0, _0810E60C + str r0, [r4, #0x1c] + ldr r1, _0810E610 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810E600: .4byte 0x020380D7 +_0810E604: .4byte 0x020380D6 +_0810E608: .4byte 0x020380BE +_0810E60C: .4byte 0x080A67B5 +_0810E610: .4byte 0x080A34C5 + thumb_func_end sub_0810E5A0 + + thumb_func_start AnimBubbleEffect +AnimBubbleEffect: @ 0x0810E614 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0810E62C + movs r1, #4 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _0810E630 + adds r0, r4, #0 + movs r1, #1 + bl InitSpritePosToAnimTarget + b _0810E666 + .align 2, 0 +_0810E62C: .4byte 0x020380BE +_0810E630: + ldr r0, _0810E670 + ldrb r0, [r0] + adds r2, r4, #0 + adds r2, #0x20 + adds r3, r4, #0 + adds r3, #0x22 + movs r1, #1 + bl SetAverageBattlerPositions + ldr r0, _0810E674 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810E656 + ldrh r0, [r5] + rsbs r0, r0, #0 + strh r0, [r5] +_0810E656: + ldrh r0, [r5] + ldrh r1, [r4, #0x20] + adds r0, r0, r1 + strh r0, [r4, #0x20] + ldrh r0, [r5, #2] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] +_0810E666: + ldr r0, _0810E678 + str r0, [r4, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810E670: .4byte 0x020380D7 +_0810E674: .4byte 0x020380D6 +_0810E678: .4byte 0x0810E67D + thumb_func_end AnimBubbleEffect + + thumb_func_start AnimBubbleEffectStep +AnimBubbleEffectStep: @ 0x0810E67C + 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, #4 + bl Sin + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x30] + adds r0, #0x30 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0810E6B8 + adds r0, r4, #0 + bl DestroyAnimSprite +_0810E6B8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AnimBubbleEffectStep + diff --git a/asm/pokeball.s b/asm/pokeball.s new file mode 100644 index 0000000..ab49786 --- /dev/null +++ b/asm/pokeball.s @@ -0,0 +1,2997 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start DoPokeballSendOutAnimation +DoPokeballSendOutAnimation: @ 0x08074DF0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r1, _08074E44 + movs r0, #1 + strb r0, [r1] + ldr r0, _08074E48 + ldr r0, [r0] + ldr r6, _08074E4C + ldrb r1, [r6] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r2, #8 + orrs r1, r2 + strb r1, [r0] + ldr r0, _08074E50 + movs r1, #5 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08074E54 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #0xa] + strh r5, [r1, #0xc] + ldrb r0, [r6] + strh r0, [r1, #0xe] + movs r0, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08074E44: .4byte 0x0202415D +_08074E48: .4byte 0x02024174 +_08074E4C: .4byte 0x02023D08 +_08074E50: .4byte 0x08074E59 +_08074E54: .4byte 0x03005B60 + thumb_func_end DoPokeballSendOutAnimation + + thumb_func_start Task_DoPokeballSendOutAnim +Task_DoPokeballSendOutAnim: @ 0x08074E58 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + movs r0, #0 + str r0, [sp] + ldr r1, _08074E8C + mov r2, sl + lsls r0, r2, #2 + add r0, sl + lsls r0, r0, #3 + adds r1, r0, r1 + ldrh r2, [r1, #8] + movs r3, #8 + ldrsh r0, [r1, r3] + cmp r0, #0 + bne _08074E90 + adds r0, r2, #1 + strh r0, [r1, #8] + b _0807500A + .align 2, 0 +_08074E8C: .4byte 0x03005B60 +_08074E90: + ldrh r0, [r1, #0xc] + mov r8, r0 + ldrb r5, [r1, #0xe] + adds r0, r5, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08074EBC + ldr r1, _08074EB4 + lsls r0, r5, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08074EB8 + b _08074ECA + .align 2, 0 +_08074EB4: .4byte 0x02023D12 +_08074EB8: .4byte 0x020243E8 +_08074EBC: + ldr r1, _08074F38 + lsls r0, r5, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08074F3C +_08074ECA: + adds r0, r0, r1 + movs r1, #0x26 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl ItemIdToBallId + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl LoadBallGfx + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _08074F40 + adds r0, r0, r1 + movs r1, #0x20 + movs r2, #0x50 + movs r3, #0x1d + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r2, _08074F44 + mov sb, r2 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r6, r0, #2 + adds r4, r6, r2 + movs r0, #0x80 + strh r0, [r4, #0x2e] + movs r3, #0 + strh r3, [r4, #0x30] + mov r0, r8 + strh r0, [r4, #0x3c] + mov r2, r8 + cmp r2, #0xfe + beq _08074F50 + cmp r2, #0xff + bne _08074F8C + ldr r0, _08074F48 + strb r5, [r0] + movs r0, #0x18 + strh r0, [r4, #0x20] + movs r0, #0x44 + strh r0, [r4, #0x22] + mov r0, sb + adds r0, #0x1c + adds r0, r6, r0 + ldr r1, _08074F4C + str r1, [r0] + b _08074F9A + .align 2, 0 +_08074F38: .4byte 0x02023D12 +_08074F3C: .4byte 0x02024190 +_08074F40: .4byte 0x082FCF94 +_08074F44: .4byte 0x020205AC +_08074F48: .4byte 0x02023EB0 +_08074F4C: .4byte 0x08075BBD +_08074F50: + adds r0, r5, #0 + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x20] + adds r0, r5, #0 + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #0x18 + strh r0, [r4, #0x22] + ldr r0, _08074F84 + strb r5, [r0] + movs r3, #0 + strh r3, [r4, #0x2e] + mov r0, sb + adds r0, #0x1c + adds r0, r6, r0 + ldr r1, _08074F88 + str r1, [r0] + b _08074F9A + .align 2, 0 +_08074F84: .4byte 0x02023EB0 +_08074F88: .4byte 0x08075DA1 +_08074F8C: + movs r0, #1 + bl GetBattlerAtPosition + ldr r1, _08074FB8 + strb r0, [r1] + movs r0, #1 + str r0, [sp] +_08074F9A: + ldr r0, _08074FBC + lsls r1, r7, #4 + adds r1, r1, r7 + lsls r1, r1, #2 + adds r4, r1, r0 + ldr r5, _08074FB8 + ldrb r0, [r5] + strh r0, [r4, #0x3a] + ldr r2, [sp] + cmp r2, #0 + bne _08074FC0 + mov r0, sl + bl DestroyTask + b _0807500A + .align 2, 0 +_08074FB8: .4byte 0x02023EB0 +_08074FBC: .4byte 0x020205AC +_08074FC0: + movs r0, #0x22 + strh r0, [r4, #0x2e] + ldrb r0, [r5] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x32] + ldrb r0, [r5] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, #0x10 + strh r0, [r4, #0x36] + ldr r0, _0807501C + strh r0, [r4, #0x38] + adds r0, r4, #0 + bl InitAnimArcTranslation + mov r3, sl + strh r3, [r4, #6] + ldr r1, _08075020 + mov r2, sl + lsls r0, r2, #2 + add r0, sl + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r1, [r5] + strh r1, [r0, #0x10] + ldr r1, _08075024 + str r1, [r0] + movs r0, #0x3d + bl PlaySE +_0807500A: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0807501C: .4byte 0x0000FFD8 +_08075020: .4byte 0x03005B60 +_08075024: .4byte 0x080A8A41 + thumb_func_end Task_DoPokeballSendOutAnim + + thumb_func_start SpriteCB_TestBallThrow +SpriteCB_TestBallThrow: @ 0x08075028 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r7, r0, #0 + bl TranslateAnimHorizontalArc + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080750C8 + ldrb r6, [r7, #6] + ldr r1, _080750D4 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r5, [r0, #0x10] + ldrb r0, [r0, #0xc] + mov r8, r0 + adds r0, r7, #0 + movs r1, #1 + bl StartSpriteAnim + adds r2, r7, #0 + adds r2, #0x2c + ldrb r0, [r2] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r7, #0x24] + ldrh r1, [r7, #0x20] + adds r0, r0, r1 + movs r1, #0 + strh r0, [r7, #0x20] + ldrh r0, [r7, #0x26] + ldrh r2, [r7, #0x22] + adds r0, r0, r2 + strh r0, [r7, #0x22] + strh r1, [r7, #0x24] + strh r1, [r7, #0x26] + strh r1, [r7, #0x38] + adds r0, r5, #0 + bl GetBattlerPokeballItemId + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl ItemIdToBallId + adds r4, r0, #0 + ldrh r0, [r7, #0x20] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r7, #0x22] + subs r1, #5 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r4, [sp] + movs r2, #1 + movs r3, #0x1c + bl AnimateBallOpenParticles + movs r0, #0 + adds r1, r5, #0 + movs r2, #0xe + adds r3, r4, #0 + bl LaunchBallFadeMonTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r7, #0x2e] + strh r5, [r7, #0x3a] + mov r0, r8 + strh r0, [r7, #0x3c] + adds r0, r6, #0 + bl DestroyTask + ldr r0, _080750D8 + str r0, [r7, #0x1c] +_080750C8: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080750D4: .4byte 0x03005B60 +_080750D8: .4byte 0x080750DD + thumb_func_end SpriteCB_TestBallThrow + + thumb_func_start sub_080750DC +sub_080750DC: @ 0x080750DC + ldr r1, _080750E4 + str r1, [r0, #0x1c] + bx lr + .align 2, 0 +_080750E4: .4byte 0x080750E9 + thumb_func_end sub_080750DC + + thumb_func_start sub_080750E8 +sub_080750E8: @ 0x080750E8 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldrh r0, [r6, #0x38] + adds r0, #1 + movs r7, #0 + strh r0, [r6, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xa + bne _08075142 + strh r7, [r6, #0x38] + ldr r0, _08075148 + str r0, [r6, #0x1c] + ldr r5, _0807514C + movs r1, #0x3a + ldrsh r0, [r6, r1] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _08075150 + adds r0, r0, r4 + movs r1, #2 + bl StartSpriteAffineAnim + movs r1, #0x3a + ldrsh r0, [r6, r1] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl AnimateSprite + movs r1, #0x3a + ldrsh r0, [r6, r1] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + strh r7, [r0, #0x30] +_08075142: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08075148: .4byte 0x08075155 +_0807514C: .4byte 0x02023E88 +_08075150: .4byte 0x020205AC + thumb_func_end sub_080750E8 + + thumb_func_start sub_08075154 +sub_08075154: @ 0x08075154 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x38] + adds r0, #1 + strh r0, [r4, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xb + bne _0807516C + movs r0, #0x3c + bl PlaySE +_0807516C: + ldr r6, _080751B8 + ldr r5, _080751BC + movs r1, #0x3a + ldrsh r0, [r4, r1] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r6 + adds r0, r1, #0 + adds r0, #0x3f + ldrb r0, [r0] + lsls r0, r0, #0x1a + cmp r0, #0 + bge _080751C4 + adds r0, r4, #0 + movs r1, #2 + bl StartSpriteAnim + movs r2, #0x3a + ldrsh r0, [r4, r2] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + movs r0, #0 + strh r0, [r4, #0x38] + ldr r0, _080751C0 + str r0, [r4, #0x1c] + b _080751E4 + .align 2, 0 +_080751B8: .4byte 0x020205AC +_080751BC: .4byte 0x02023E88 +_080751C0: .4byte 0x080751ED +_080751C4: + ldrh r0, [r1, #0x30] + adds r0, #0x60 + strh r0, [r1, #0x30] + movs r1, #0x3a + ldrsh r0, [r4, r1] + adds r0, r0, r5 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + movs r2, #0x30 + ldrsh r0, [r1, r2] + rsbs r0, r0, #0 + asrs r0, r0, #8 + strh r0, [r1, #0x26] +_080751E4: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08075154 + + thumb_func_start sub_080751EC +sub_080751EC: @ 0x080751EC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08075234 + ldrh r0, [r4, #0x38] + adds r0, #1 + movs r1, #0 + strh r0, [r4, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + bne _08075234 + strh r1, [r4, #0x34] + movs r0, #0x20 + strh r0, [r4, #0x36] + strh r1, [r4, #0x38] + movs r0, #0 + movs r1, #0x20 + bl Cos + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0 + bl Cos + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + ldr r0, _0807523C + str r0, [r4, #0x1c] +_08075234: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807523C: .4byte 0x08075241 + thumb_func_end sub_080751EC + + thumb_func_start sub_08075240 +sub_08075240: @ 0x08075240 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #0 + ldrh r0, [r4, #0x34] + movs r1, #0xff + ands r1, r0 + cmp r1, #0 + beq _08075256 + cmp r1, #1 + beq _080752CA + b _080752F6 +_08075256: + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r2, #0x36 + ldrsh r1, [r4, r2] + bl Cos + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + ldrh r1, [r4, #0x38] + adds r1, #4 + ldrh r2, [r4, #0x34] + lsls r0, r2, #0x10 + asrs r0, r0, #0x18 + adds r1, r1, r0 + strh r1, [r4, #0x38] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #0x3f + ble _080752F6 + ldrh r0, [r4, #0x36] + subs r0, #0xa + strh r0, [r4, #0x36] + ldr r1, _080752A0 + adds r0, r2, r1 + strh r0, [r4, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + cmp r0, #4 + bne _08075292 + movs r5, #1 +_08075292: + cmp r0, #2 + beq _080752B2 + cmp r0, #2 + bgt _080752A4 + cmp r0, #1 + beq _080752AA + b _080752C2 + .align 2, 0 +_080752A0: .4byte 0x00000101 +_080752A4: + cmp r0, #3 + beq _080752BA + b _080752C2 +_080752AA: + movs r0, #0x38 + bl PlaySE + b _080752F6 +_080752B2: + movs r0, #0x39 + bl PlaySE + b _080752F6 +_080752BA: + movs r0, #0x3a + bl PlaySE + b _080752F6 +_080752C2: + movs r0, #0x3b + bl PlaySE + b _080752F6 +_080752CA: + movs r2, #0x38 + ldrsh r0, [r4, r2] + movs r2, #0x36 + ldrsh r1, [r4, r2] + bl Cos + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + ldrh r1, [r4, #0x38] + subs r1, #4 + ldrh r2, [r4, #0x34] + lsls r0, r2, #0x10 + asrs r0, r0, #0x18 + subs r1, r1, r0 + strh r1, [r4, #0x38] + lsls r1, r1, #0x10 + cmp r1, #0 + bgt _080752F6 + strh r5, [r4, #0x38] + ldr r0, _0807531C + ands r0, r2 + strh r0, [r4, #0x34] +_080752F6: + cmp r5, #0 + beq _0807532E + movs r5, #0 + strh r5, [r4, #0x34] + movs r0, #0x40 + movs r1, #0x20 + bl Cos + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] + strh r5, [r4, #0x26] + movs r2, #0x3c + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _08075324 + ldr r0, _08075320 + str r0, [r4, #0x1c] + b _0807532E + .align 2, 0 +_0807531C: .4byte 0xFFFFFF00 +_08075320: .4byte 0x0807571D +_08075324: + ldr r0, _08075334 + str r0, [r4, #0x1c] + movs r0, #1 + strh r0, [r4, #0x36] + strh r5, [r4, #0x38] +_0807532E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08075334: .4byte 0x08075339 + thumb_func_end sub_08075240 + + thumb_func_start sub_08075338 +sub_08075338: @ 0x08075338 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x34] + adds r0, #1 + strh r0, [r4, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1f + bne _0807536C + movs r0, #0 + strh r0, [r4, #0x34] + adds r2, r4, #0 + adds r2, #0x2c + ldrb r0, [r2] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAffineAnim + ldr r0, _08075374 + str r0, [r4, #0x1c] + movs r0, #0x17 + bl PlaySE +_0807536C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08075374: .4byte 0x08075379 + thumb_func_end sub_08075338 + + thumb_func_start sub_08075378 +sub_08075378: @ 0x08075378 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x34] + movs r1, #0xff + ands r1, r0 + cmp r1, #4 + bhi _08075478 + lsls r0, r1, #2 + ldr r1, _08075390 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08075390: .4byte 0x08075394 +_08075394: @ jump table + .4byte _080753A8 @ case 0 + .4byte _080753DA @ case 1 + .4byte _080753A8 @ case 2 + .4byte _0807542E @ case 3 + .4byte _08075478 @ case 4 +_080753A8: + ldrh r0, [r4, #0x36] + ldrh r2, [r4, #0x24] + adds r1, r0, r2 + strh r1, [r4, #0x24] + ldrh r1, [r4, #0x38] + adds r0, r0, r1 + strh r0, [r4, #0x38] + adds r2, r4, #0 + adds r2, #0x2c + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + ldrh r0, [r4, #0x38] + adds r0, #3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #6 + bls _080754BE + ldrh r0, [r4, #0x34] + adds r0, #1 + strh r0, [r4, #0x34] + movs r0, #0 + strh r0, [r4, #0x38] + b _080754BE +_080753DA: + ldrh r0, [r4, #0x38] + adds r0, #1 + strh r0, [r4, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + bne _08075420 + movs r0, #0 + strh r0, [r4, #0x38] + ldrh r0, [r4, #0x36] + rsbs r0, r0, #0 + strh r0, [r4, #0x36] + ldrh r0, [r4, #0x34] + adds r0, #1 + strh r0, [r4, #0x34] + adds r2, r4, #0 + adds r2, #0x2c + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + movs r2, #0x36 + ldrsh r0, [r4, r2] + cmp r0, #0 + bge _08075416 + adds r0, r4, #0 + movs r1, #2 + bl ChangeSpriteAffineAnim + b _080754BE +_08075416: + adds r0, r4, #0 + movs r1, #1 + bl ChangeSpriteAffineAnim + b _080754BE +_08075420: + adds r0, r4, #0 + adds r0, #0x2c + ldrb r1, [r0] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0] + b _080754BE +_0807542E: + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r2, [r4, #0x34] + adds r0, r0, r2 + strh r0, [r4, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + movs r2, #0x3c + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _08075450 + ldr r0, _0807544C + str r0, [r4, #0x1c] + b _080754BE + .align 2, 0 +_0807544C: .4byte 0x0807571D +_08075450: + cmp r1, #4 + bne _08075464 + cmp r0, #3 + bne _08075464 + ldr r0, _08075460 + str r0, [r4, #0x1c] + b _0807546A + .align 2, 0 +_08075460: .4byte 0x080759BD +_08075464: + ldrh r0, [r4, #0x34] + adds r0, #1 + strh r0, [r4, #0x34] +_0807546A: + adds r2, r4, #0 + adds r2, #0x2c + ldrb r0, [r2] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2] + b _080754BE +_08075478: + ldrh r0, [r4, #0x38] + adds r0, #1 + strh r0, [r4, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1f + bne _080754BE + movs r0, #0 + strh r0, [r4, #0x38] + ldrh r1, [r4, #0x34] + ldr r0, _080754AC + ands r0, r1 + strh r0, [r4, #0x34] + adds r0, r4, #0 + movs r1, #3 + bl StartSpriteAffineAnim + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bge _080754B0 + adds r0, r4, #0 + movs r1, #2 + bl StartSpriteAffineAnim + b _080754B8 + .align 2, 0 +_080754AC: .4byte 0xFFFFFF00 +_080754B0: + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAffineAnim +_080754B8: + movs r0, #0x17 + bl PlaySE +_080754BE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08075378 + + thumb_func_start Task_PlayCryWhenReleasedFromBall +Task_PlayCryWhenReleasedFromBall: @ 0x080754C4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r2, _08075504 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrb r1, [r0, #0xc] + mov ip, r1 + ldrb r5, [r0, #0xa] + ldrh r6, [r0, #8] + ldrb r3, [r0, #0xe] + mov r8, r3 + ldrb r7, [r0, #0x10] + movs r3, #0x12 + ldrsh r1, [r0, r3] + lsls r3, r1, #0x10 + ldrh r1, [r0, #0x14] + orrs r3, r1 + movs r1, #0x26 + ldrsh r0, [r0, r1] + cmp r0, #0x20 + bhi _08075590 + lsls r0, r0, #2 + ldr r1, _08075508 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08075504: .4byte 0x03005B60 +_08075508: .4byte 0x0807550C +_0807550C: @ jump table + .4byte _08075590 @ case 0 + .4byte _080755BC @ case 1 + .4byte _080755E2 @ case 2 + .4byte _0807565C @ case 3 + .4byte _08075590 @ case 4 + .4byte _08075590 @ case 5 + .4byte _08075590 @ case 6 + .4byte _08075590 @ case 7 + .4byte _08075590 @ case 8 + .4byte _08075590 @ case 9 + .4byte _08075590 @ case 10 + .4byte _08075590 @ case 11 + .4byte _08075590 @ case 12 + .4byte _08075590 @ case 13 + .4byte _08075590 @ case 14 + .4byte _08075590 @ case 15 + .4byte _08075590 @ case 16 + .4byte _08075590 @ case 17 + .4byte _08075590 @ case 18 + .4byte _08075590 @ case 19 + .4byte _08075600 @ case 20 + .4byte _08075590 @ case 21 + .4byte _08075590 @ case 22 + .4byte _08075590 @ case 23 + .4byte _08075590 @ case 24 + .4byte _08075590 @ case 25 + .4byte _08075590 @ case 26 + .4byte _08075590 @ case 27 + .4byte _08075590 @ case 28 + .4byte _08075590 @ case 29 + .4byte _0807566E @ case 30 + .4byte _08075686 @ case 31 + .4byte _080756B0 @ case 32 +_08075590: + ldr r0, _080755B8 + lsls r1, r7, #4 + adds r1, r1, r7 + lsls r1, r1, #2 + adds r1, r1, r0 + adds r1, #0x3f + ldrb r0, [r1] + lsls r0, r0, #0x1a + cmp r0, #0 + blt _080755A6 + b _0807570C +_080755A6: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r2 + mov r1, ip + adds r1, #1 + strh r1, [r0, #0x26] + b _0807570C + .align 2, 0 +_080755B8: .4byte 0x020205AC +_080755BC: + adds r0, r3, #0 + bl ShouldPlayNormalMonCry + cmp r0, #1 + bne _080755D4 + lsls r1, r5, #0x18 + asrs r1, r1, #0x18 + adds r0, r6, #0 + movs r2, #0 + bl PlayCry3 + b _08075636 +_080755D4: + lsls r1, r5, #0x18 + asrs r1, r1, #0x18 + adds r0, r6, #0 + movs r2, #0xb + bl PlayCry3 + b _08075636 +_080755E2: + bl StopCryAndClearCrySongs + ldr r1, _080755FC + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #3 + strh r1, [r0, #0x1c] + movs r1, #0x14 + strh r1, [r0, #0x26] + b _0807570C + .align 2, 0 +_080755FC: .4byte 0x03005B60 +_08075600: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r1, r0, r2 + ldrh r2, [r1, #0x1c] + movs r7, #0x1c + ldrsh r0, [r1, r7] + cmp r0, #0 + bne _080756C2 + adds r0, r3, #0 + bl ShouldPlayNormalMonCry + cmp r0, #1 + bne _0807562A + lsls r1, r5, #0x18 + asrs r1, r1, #0x18 + adds r0, r6, #0 + movs r2, #1 + bl PlayCry4 + b _08075636 +_0807562A: + lsls r1, r5, #0x18 + asrs r1, r1, #0x18 + adds r0, r6, #0 + movs r2, #0xc + bl PlayCry4 +_08075636: + ldr r0, _08075658 + ldr r0, [r0] + ldr r0, [r0, #4] + mov r2, r8 + lsls r1, r2, #1 + add r1, r8 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #1] + adds r0, r4, #0 + bl DestroyTask + b _0807570C + .align 2, 0 +_08075658: .4byte 0x02024174 +_0807565C: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r1, #6 + strh r1, [r0, #0x1c] + movs r1, #0x1e + strh r1, [r0, #0x26] + b _0807570C +_0807566E: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r1, r0, r2 + ldrh r2, [r1, #0x1c] + movs r3, #0x1c + ldrsh r0, [r1, r3] + cmp r0, #0 + bne _080756C2 + ldrh r0, [r1, #0x26] + adds r0, #1 + strh r0, [r1, #0x26] +_08075686: + bl IsCryPlayingOrClearCrySongs + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807570C + bl StopCryAndClearCrySongs + ldr r0, _080756AC + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #3 + strh r0, [r1, #0x1c] + ldrh r0, [r1, #0x26] + adds r0, #1 + strh r0, [r1, #0x26] + b _0807570C + .align 2, 0 +_080756AC: .4byte 0x03005B60 +_080756B0: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r1, r0, r2 + ldrh r2, [r1, #0x1c] + movs r7, #0x1c + ldrsh r0, [r1, r7] + cmp r0, #0 + beq _080756C8 +_080756C2: + subs r0, r2, #1 + strh r0, [r1, #0x1c] + b _0807570C +_080756C8: + adds r0, r3, #0 + bl ShouldPlayNormalMonCry + cmp r0, #1 + bne _080756E0 + lsls r1, r5, #0x18 + asrs r1, r1, #0x18 + adds r0, r6, #0 + movs r2, #0 + bl PlayCry4 + b _080756EC +_080756E0: + lsls r1, r5, #0x18 + asrs r1, r1, #0x18 + adds r0, r6, #0 + movs r2, #0xb + bl PlayCry4 +_080756EC: + ldr r0, _08075718 + ldr r0, [r0] + ldr r0, [r0, #4] + mov r2, r8 + lsls r1, r2, #1 + add r1, r8 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #1] + adds r0, r4, #0 + bl DestroyTask +_0807570C: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08075718: .4byte 0x02024174 + thumb_func_end Task_PlayCryWhenReleasedFromBall + + thumb_func_start SpriteCB_ReleaseMonFromBall +SpriteCB_ReleaseMonFromBall: @ 0x0807571C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r6, r0, #0 + ldrh r0, [r6, #0x3a] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r6, #0 + movs r1, #1 + bl StartSpriteAnim + adds r0, r5, #0 + bl GetBattlerPokeballItemId + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl ItemIdToBallId + adds r4, r0, #0 + ldrh r0, [r6, #0x20] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r6, #0x22] + subs r1, #5 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r4, [sp] + movs r2, #1 + movs r3, #0x1c + bl AnimateBallOpenParticles + ldrh r1, [r6, #0x3a] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #1 + movs r2, #0xe + adds r3, r4, #0 + bl LaunchBallFadeMonTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r6, #0x2e] + ldr r0, _080757B4 + str r0, [r6, #0x1c] + ldr r0, _080757B8 + ldr r1, _080757BC + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08075790 + b _080758FC +_08075790: + adds r0, r5, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080757C8 + ldr r0, _080757C0 + lsls r2, r5, #1 + adds r0, r2, r0 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _080757C4 + adds r7, r1, r0 + movs r4, #0x19 + mov sl, r4 + b _080757DC + .align 2, 0 +_080757B4: .4byte 0x080759DD +_080757B8: .4byte 0x03002360 +_080757BC: .4byte 0x00000439 +_080757C0: .4byte 0x02023D12 +_080757C4: .4byte 0x020243E8 +_080757C8: + ldr r0, _08075840 + lsls r2, r5, #1 + adds r0, r2, r0 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _08075844 + adds r7, r1, r0 + movs r0, #0xe7 + mov sl, r0 +_080757DC: + mov r8, r2 + adds r0, r7, #0 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + movs r0, #0 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r5, r0 + beq _08075808 + movs r0, #1 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r5, r0 + bne _0807585E +_08075808: + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0807585E + ldr r0, _08075848 + ldr r0, [r0] + ldr r0, [r0, #8] + ldrb r1, [r0, #9] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0807585E + ldr r0, _0807584C + ldr r0, [r0] + movs r1, #0x42 + ands r0, r1 + cmp r0, #0x42 + bne _08075854 + bl IsBGMPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0807585E + ldr r0, _08075850 + bl m4aMPlayStop + b _0807585E + .align 2, 0 +_08075840: .4byte 0x02023D12 +_08075844: .4byte 0x02024190 +_08075848: .4byte 0x02024174 +_0807584C: .4byte 0x02022C90 +_08075850: .4byte 0x030074D0 +_08075854: + ldr r0, _0807587C + ldr r1, _08075880 + movs r2, #0x80 + bl m4aMPlayVolumeControl +_0807585E: + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08075878 + ldr r0, _08075884 + ldr r0, [r0] + ldr r0, [r0, #8] + ldrb r1, [r0, #9] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08075888 +_08075878: + movs r4, #0 + b _080758AA + .align 2, 0 +_0807587C: .4byte 0x030074D0 +_08075880: .4byte 0x0000FFFF +_08075884: .4byte 0x02024174 +_08075888: + movs r0, #0 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r5, r0 + beq _080758A4 + movs r0, #1 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r5, r0 + bne _080758A8 +_080758A4: + movs r4, #1 + b _080758AA +_080758A8: + movs r4, #2 +_080758AA: + ldr r0, _08075940 + ldr r0, [r0] + ldr r0, [r0, #4] + mov r2, r8 + adds r1, r2, r5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #1] + movs r2, #0x40 + orrs r0, r2 + strb r0, [r1, #1] + ldr r0, _08075944 + movs r1, #3 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08075948 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r3, #0 + mov r0, sb + strh r0, [r1, #8] + mov r2, sl + lsls r0, r2, #0x18 + asrs r0, r0, #0x18 + strh r0, [r1, #0xa] + strh r4, [r1, #0xc] + strh r5, [r1, #0xe] + ldr r2, _0807594C + movs r4, #0x3a + ldrsh r0, [r6, r4] + adds r0, r0, r2 + ldrb r0, [r0] + strh r0, [r1, #0x10] + lsrs r0, r7, #0x10 + strh r0, [r1, #0x12] + strh r7, [r1, #0x14] + strh r3, [r1, #0x26] +_080758FC: + ldr r4, _0807594C + movs r1, #0x3a + ldrsh r0, [r6, r1] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r5, _08075950 + adds r0, r0, r5 + movs r1, #1 + bl StartSpriteAffineAnim + ldrh r0, [r6, #0x3a] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08075958 + movs r2, #0x3a + ldrsh r0, [r6, r2] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r5, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _08075954 + b _0807596E + .align 2, 0 +_08075940: .4byte 0x02024174 +_08075944: .4byte 0x080754C5 +_08075948: .4byte 0x03005B60 +_0807594C: .4byte 0x02023E88 +_08075950: .4byte 0x020205AC +_08075954: .4byte 0x0803979D +_08075958: + movs r1, #0x3a + ldrsh r0, [r6, r1] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r5, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _080759B0 +_0807596E: + str r1, [r0] + ldr r5, _080759B4 + movs r2, #0x3a + ldrsh r0, [r6, r2] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _080759B8 + adds r0, r0, r4 + bl AnimateSprite + movs r1, #0x3a + ldrsh r0, [r6, r1] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0x80 + lsls r1, r1, #5 + strh r1, [r0, #0x30] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080759B0: .4byte 0x08039A89 +_080759B4: .4byte 0x02023E88 +_080759B8: .4byte 0x020205AC + thumb_func_end SpriteCB_ReleaseMonFromBall + + thumb_func_start sub_080759BC +sub_080759BC: @ 0x080759BC + adds r3, r0, #0 + adds r3, #0x2c + ldrb r1, [r3] + movs r2, #0x40 + orrs r1, r2 + strb r1, [r3] + ldr r1, _080759D8 + str r1, [r0, #0x1c] + movs r1, #0 + strh r1, [r0, #0x34] + strh r1, [r0, #0x36] + strh r1, [r0, #0x38] + bx lr + .align 2, 0 +_080759D8: .4byte 0x08075B01 + thumb_func_end sub_080759BC + + thumb_func_start HandleBallAnimEnd +HandleBallAnimEnd: @ 0x080759DC + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r7, #0 + ldrh r0, [r5, #0x3a] + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r4, _08075A40 + ldr r0, _08075A44 + adds r3, r6, r0 + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + adds r0, r5, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08075A1E + adds r2, r5, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] +_08075A1E: + ldrb r0, [r3] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + adds r0, r1, #0 + adds r0, #0x3f + ldrb r0, [r0] + lsls r0, r0, #0x1a + cmp r0, #0 + bge _08075A48 + adds r0, r1, #0 + movs r1, #0 + bl StartSpriteAffineAnim + movs r7, #1 + b _08075A64 + .align 2, 0 +_08075A40: .4byte 0x020205AC +_08075A44: .4byte 0x02023E88 +_08075A48: + ldr r2, _08075AEC + adds r0, r2, #0 + ldrh r2, [r1, #0x30] + adds r0, r0, r2 + strh r0, [r1, #0x30] + ldrb r0, [r3] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrh r0, [r1, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + strh r0, [r1, #0x26] +_08075A64: + adds r0, r5, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08075AE6 + cmp r7, #0 + beq _08075AE6 + ldr r2, _08075AF0 + ldr r0, _08075AF4 + adds r0, r6, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r2, #0 + movs r1, #0 + strh r1, [r0, #0x26] + ldr r0, _08075AF8 + strb r2, [r0] + ldr r4, _08075AFC + ldr r0, [r4] + ldr r0, [r0, #4] + lsls r1, r6, #1 + adds r1, r1, r6 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + adds r0, r5, #0 + bl FreeSpriteOamMatrix + adds r0, r5, #0 + bl DestroySprite + movs r3, #0 + ldr r0, [r4] + ldr r2, [r0, #4] + movs r5, #8 + movs r4, #3 +_08075ABE: + ldrb r1, [r2] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + bne _08075ACA + adds r3, #1 +_08075ACA: + adds r2, #0xc + subs r4, #1 + cmp r4, #0 + bge _08075ABE + cmp r3, #4 + bne _08075AE6 + movs r4, #0 +_08075AD8: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl FreeBallGfx + adds r4, #1 + cmp r4, #0xb + ble _08075AD8 +_08075AE6: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08075AEC: .4byte 0xFFFFFEE0 +_08075AF0: .4byte 0x020205AC +_08075AF4: .4byte 0x02023E88 +_08075AF8: .4byte 0x0202415D +_08075AFC: .4byte 0x02024174 + thumb_func_end HandleBallAnimEnd + + thumb_func_start sub_08075B00 +sub_08075B00: @ 0x08075B00 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldrh r0, [r6, #0x3a] + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldrh r0, [r6, #0x36] + adds r0, #1 + strh r0, [r6, #0x36] + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + cmp r1, #0x28 + beq _08075B9E + cmp r1, #0x5f + bne _08075B38 + ldr r0, _08075B30 + movs r1, #0 + strb r1, [r0] + bl m4aMPlayAllStop + ldr r0, _08075B34 + bl PlaySE + b _08075B9E + .align 2, 0 +_08075B30: .4byte 0x0202415D +_08075B34: .4byte 0x00000173 +_08075B38: + ldr r0, _08075BA4 + cmp r1, r0 + bne _08075B9E + ldr r5, _08075BA8 + ldr r4, _08075BAC + movs r1, #0x3a + ldrsh r0, [r6, r1] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r0, [r0, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + movs r1, #0x3a + ldrsh r0, [r6, r1] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + bl DestroySprite + adds r0, r6, #0 + bl DestroySpriteAndFreeResources + ldr r0, _08075BB0 + ldr r1, _08075BB4 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08075B9E + ldr r0, _08075BB8 + ldr r0, [r0] + ldr r0, [r0, #4] + lsls r1, r7, #1 + adds r1, r1, r7 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] +_08075B9E: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08075BA4: .4byte 0x0000013B +_08075BA8: .4byte 0x020205AC +_08075BAC: .4byte 0x02023E88 +_08075BB0: .4byte 0x03002360 +_08075BB4: .4byte 0x00000439 +_08075BB8: .4byte 0x02024174 + thumb_func_end sub_08075B00 + + thumb_func_start SpriteCB_PlayerMonSendOut_1 +SpriteCB_PlayerMonSendOut_1: @ 0x08075BBC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x19 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x3a] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x3a] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #0x18 + strh r0, [r4, #0x36] + ldr r0, _08075C04 + strh r0, [r4, #0x38] + ldrh r0, [r4, #0x3a] + strh r0, [r4, #6] + adds r0, r4, #0 + bl InitAnimArcTranslation + ldr r0, _08075C08 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08075C04: .4byte 0x0000FFE2 +_08075C08: .4byte 0x08075C0D + thumb_func_end SpriteCB_PlayerMonSendOut_1 + + thumb_func_start SpriteCB_PlayerMonSendOut_2 +SpriteCB_PlayerMonSendOut_2: @ 0x08075C0C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + ldrh r0, [r5, #0x3c] + movs r1, #0xff + mov r8, r1 + lsrs r0, r0, #8 + subs r0, #0x23 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x2c + bhi _08075D00 + ldrh r1, [r5, #6] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + bne _08075C6E + ldrh r0, [r5, #0x30] + movs r1, #1 + adds r6, r1, #0 + ands r6, r0 + ldrh r0, [r5, #0x32] + adds r7, r1, #0 + ands r7, r0 + movs r2, #0x30 + ldrsh r0, [r5, r2] + movs r1, #3 + bl __divsi3 + movs r1, #2 + rsbs r1, r1, #0 + adds r4, r1, #0 + ands r0, r4 + orrs r6, r0 + strh r6, [r5, #0x30] + movs r2, #0x32 + ldrsh r0, [r5, r2] + movs r1, #3 + bl __divsi3 + ands r0, r4 + orrs r7, r0 + strh r7, [r5, #0x32] + adds r0, r5, #0 + movs r1, #4 + bl StartSpriteAffineAnim +_08075C6E: + ldrh r4, [r5, #0x2e] + adds r0, r5, #0 + bl AnimTranslateLinear + movs r1, #0x3a + ldrsh r0, [r5, r1] + movs r1, #3 + bl __divsi3 + adds r1, r0, #0 + ldrh r0, [r5, #0x3c] + adds r0, r0, r1 + strh r0, [r5, #0x3c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + mov r2, r8 + ands r0, r2 + movs r2, #0x38 + ldrsh r1, [r5, r2] + bl Sin + ldrh r1, [r5, #0x26] + adds r0, r0, r1 + strh r0, [r5, #0x26] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r2, #0 + ldrh r1, [r5, #6] + adds r0, r0, r1 + strh r0, [r5, #6] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + movs r1, #3 + bl __umodsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08075CBE + strh r4, [r5, #0x2e] + b _08075CC6 +_08075CBE: + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + subs r0, #1 + strh r0, [r5, #0x2e] +_08075CC6: + ldrh r0, [r5, #0x3c] + lsrs r0, r0, #8 + cmp r0, #0x4f + ble _08075D6C + ldrh r0, [r5, #0x30] + movs r1, #1 + adds r6, r1, #0 + ands r6, r0 + ldrh r0, [r5, #0x32] + adds r7, r1, #0 + ands r7, r0 + movs r2, #0x30 + ldrsh r1, [r5, r2] + lsls r0, r1, #1 + adds r0, r0, r1 + movs r1, #2 + rsbs r1, r1, #0 + adds r2, r1, #0 + ands r0, r2 + orrs r0, r6 + strh r0, [r5, #0x30] + movs r0, #0x32 + ldrsh r1, [r5, r0] + lsls r0, r1, #1 + adds r0, r0, r1 + ands r0, r2 + orrs r0, r7 + strh r0, [r5, #0x32] + b _08075D6C +_08075D00: + adds r0, r5, #0 + bl TranslateAnimHorizontalArc + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08075D6C + ldrh r0, [r5, #0x24] + ldrh r1, [r5, #0x20] + adds r0, r0, r1 + movs r1, #0 + strh r0, [r5, #0x20] + ldrh r0, [r5, #0x26] + ldrh r2, [r5, #0x22] + adds r0, r0, r2 + strh r0, [r5, #0x22] + strh r1, [r5, #0x26] + strh r1, [r5, #0x24] + ldrb r0, [r5, #6] + strh r0, [r5, #0x3a] + strh r1, [r5, #0x2e] + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08075D60 + ldr r0, _08075D58 + ldr r0, [r0] + ldr r0, [r0, #8] + ldrb r1, [r0, #9] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08075D60 + movs r0, #0x3a + ldrsh r4, [r5, r0] + movs r0, #2 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + bne _08075D60 + ldr r0, _08075D5C + b _08075D62 + .align 2, 0 +_08075D58: .4byte 0x02024174 +_08075D5C: .4byte 0x08075D7D +_08075D60: + ldr r0, _08075D78 +_08075D62: + str r0, [r5, #0x1c] + adds r0, r5, #0 + movs r1, #0 + bl StartSpriteAffineAnim +_08075D6C: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08075D78: .4byte 0x0807571D + thumb_func_end SpriteCB_PlayerMonSendOut_2 + + thumb_func_start SpriteCB_ReleaseMon2FromBall +SpriteCB_ReleaseMon2FromBall: @ 0x08075D7C + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x2e] + adds r1, r0, #1 + strh r1, [r2, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x18 + ble _08075D96 + movs r0, #0 + strh r0, [r2, #0x2e] + ldr r0, _08075D9C + str r0, [r2, #0x1c] +_08075D96: + pop {r0} + bx r0 + .align 2, 0 +_08075D9C: .4byte 0x0807571D + thumb_func_end SpriteCB_ReleaseMon2FromBall + + thumb_func_start SpriteCB_OpponentMonSendOut +SpriteCB_OpponentMonSendOut: @ 0x08075DA0 + push {r4, r5, lr} + adds r5, r0, #0 + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xf + ble _08075DF4 + movs r0, #0 + strh r0, [r5, #0x2e] + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08075DF0 + ldr r0, _08075DE8 + ldr r0, [r0] + ldr r0, [r0, #8] + ldrb r1, [r0, #9] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08075DF0 + movs r0, #0x3a + ldrsh r4, [r5, r0] + movs r0, #3 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + bne _08075DF0 + ldr r0, _08075DEC + b _08075DF2 + .align 2, 0 +_08075DE8: .4byte 0x02024174 +_08075DEC: .4byte 0x08075D7D +_08075DF0: + ldr r0, _08075DFC +_08075DF2: + str r0, [r5, #0x1c] +_08075DF4: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08075DFC: .4byte 0x0807571D + thumb_func_end SpriteCB_OpponentMonSendOut + + thumb_func_start AnimateBallOpenParticlesForPokeball +AnimateBallOpenParticlesForPokeball: @ 0x08075E00 + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r4, #0 + str r4, [sp] + bl AnimateBallOpenParticles + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end AnimateBallOpenParticlesForPokeball + + thumb_func_start LaunchBallFadeMonTaskForPokeball +LaunchBallFadeMonTaskForPokeball: @ 0x08075E28 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r3, #0 + bl LaunchBallFadeMonTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + thumb_func_end LaunchBallFadeMonTaskForPokeball + + thumb_func_start CreatePokeballSpriteToReleaseMon +CreatePokeballSpriteToReleaseMon: @ 0x08075E40 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r5, r0, #0 + mov sb, r2 + mov sl, r3 + ldr r6, [sp, #0x28] + ldr r4, [sp, #0x2c] + ldr r0, [sp, #0x30] + ldr r2, [sp, #0x38] + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp] + mov r1, sb + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sb, r1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov sl, r3 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + lsls r0, r2, #0x10 + lsrs r7, r0, #0x10 + ldr r0, _08075F18 + bl LoadCompressedSpriteSheetUsingHeap + ldr r0, _08075F1C + bl LoadCompressedSpritePaletteUsingHeap + ldr r0, _08075F20 + mov r1, sb + mov r2, sl + adds r3, r4, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08075F24 + mov r8, r1 + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + adds r2, r4, r1 + strh r5, [r2, #0x2e] + lsls r1, r5, #4 + adds r1, r1, r5 + lsls r1, r1, #2 + add r1, r8 + ldrh r0, [r1, #0x20] + strh r0, [r2, #0x38] + ldrh r0, [r1, #0x22] + strh r0, [r2, #0x3a] + mov r3, sb + strh r3, [r1, #0x20] + mov r0, sl + strh r0, [r1, #0x22] + strh r7, [r1, #0x3c] + mov r3, sp + ldrh r3, [r3, #4] + strh r3, [r2, #0x30] + mov r0, sp + ldrh r0, [r0] + strh r0, [r2, #0x32] + mov r3, sp + ldrh r3, [r3, #0x34] + strh r3, [r2, #0x34] + ldr r3, [sp, #0x34] + lsrs r0, r3, #0x10 + strh r0, [r2, #0x36] + movs r0, #3 + ands r6, r0 + lsls r6, r6, #2 + ldrb r3, [r2, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r6 + strb r0, [r2, #5] + movs r0, #0x1c + add r8, r0 + add r4, r8 + ldr r0, _08075F28 + str r0, [r4] + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08075F18: .4byte 0x082FCE0C +_08075F1C: .4byte 0x082FCE6C +_08075F20: .4byte 0x082FCF94 +_08075F24: .4byte 0x020205AC +_08075F28: .4byte 0x08075F2D + thumb_func_end CreatePokeballSpriteToReleaseMon + + thumb_func_start sub_08075F2C +sub_08075F2C: @ 0x08075F2C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + ldrh r1, [r6, #0x30] + movs r2, #0x30 + ldrsh r0, [r6, r2] + cmp r0, #0 + bne _08075FD8 + ldrh r0, [r6, #0x2e] + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldrh r0, [r6, #0x32] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldrh r4, [r6, #0x34] + ldrh r0, [r6, #0x36] + lsls r0, r0, #0x10 + orrs r4, r0 + adds r0, r6, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08075F66 + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + b _08075F68 +_08075F66: + movs r5, #0 +_08075F68: + adds r0, r6, #0 + movs r1, #1 + bl StartSpriteAnim + ldrh r0, [r6, #0x20] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r6, #0x22] + subs r1, #5 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrb r2, [r6, #5] + lsls r2, r2, #0x1c + lsrs r2, r2, #0x1e + adds r3, r5, #0 + bl AnimateBallOpenParticlesForPokeball + movs r0, #1 + mov r1, r8 + adds r2, r4, #0 + bl LaunchBallFadeMonTaskForPokeball + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r5, #0 + strh r0, [r6, #0x30] + ldr r0, _08075FD0 + str r0, [r6, #0x1c] + ldr r0, _08075FD4 + lsls r4, r7, #4 + adds r4, r4, r7 + lsls r4, r4, #2 + adds r4, r4, r0 + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAffineAnim + adds r0, r4, #0 + bl AnimateSprite + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r4, #0x30] + strh r5, [r6, #0x3c] + b _08075FDC + .align 2, 0 +_08075FD0: .4byte 0x08075FE9 +_08075FD4: .4byte 0x020205AC +_08075FD8: + subs r0, r1, #1 + strh r0, [r6, #0x30] +_08075FDC: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08075F2C + + thumb_func_start sub_08075FE8 +sub_08075FE8: @ 0x08075FE8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + movs r0, #0 + mov ip, r0 + movs r7, #0 + ldrh r0, [r4, #0x2e] + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08076018 + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] +_08076018: + ldr r1, _080760AC + lsls r2, r6, #4 + adds r0, r2, r6 + lsls r0, r0, #2 + adds r5, r0, r1 + adds r0, r5, #0 + adds r0, #0x3f + ldrb r0, [r0] + lsls r0, r0, #0x1a + mov r8, r2 + cmp r0, #0 + bge _0807603C + adds r0, r5, #0 + movs r1, #0 + bl StartSpriteAffineAnim + movs r1, #1 + mov ip, r1 +_0807603C: + movs r2, #0x38 + ldrsh r0, [r4, r2] + movs r3, #0x20 + ldrsh r1, [r4, r3] + subs r0, r0, r1 + movs r1, #0x3c + ldrsh r2, [r4, r1] + muls r0, r2, r0 + cmp r0, #0 + bge _08076052 + adds r0, #0x7f +_08076052: + asrs r0, r0, #7 + ldrh r3, [r4, #0x20] + adds r0, r0, r3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + movs r1, #0x3a + ldrsh r0, [r4, r1] + movs r3, #0x22 + ldrsh r1, [r4, r3] + subs r0, r0, r1 + muls r0, r2, r0 + cmp r0, #0 + bge _08076070 + adds r0, #0x7f +_08076070: + asrs r0, r0, #7 + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + mov r2, sb + strh r2, [r5, #0x20] + strh r0, [r5, #0x22] + ldrh r2, [r4, #0x3c] + movs r3, #0x3c + ldrsh r0, [r4, r3] + cmp r0, #0x7f + bgt _080760B4 + ldr r1, _080760B0 + lsls r0, r2, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bge _08076098 + adds r0, #7 +_08076098: + asrs r0, r0, #3 + rsbs r0, r0, #0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r2, #4 + strh r1, [r4, #0x3c] + strh r0, [r5, #0x24] + strh r0, [r5, #0x26] + b _080760C2 + .align 2, 0 +_080760AC: .4byte 0x020205AC +_080760B0: .4byte 0x082FA8CC +_080760B4: + ldrh r0, [r4, #0x38] + strh r0, [r5, #0x20] + ldrh r0, [r4, #0x3a] + strh r0, [r5, #0x22] + strh r7, [r5, #0x24] + strh r7, [r5, #0x26] + movs r7, #1 +_080760C2: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08076116 + mov r2, ip + cmp r2, #0 + beq _08076116 + cmp r7, #0 + beq _08076116 + ldr r1, _08076100 + mov r3, r8 + adds r0, r3, r6 + lsls r0, r0, #2 + adds r2, r0, r1 + movs r0, #0x3c + ldrsh r1, [r2, r0] + movs r0, #0xce + lsls r0, r0, #1 + cmp r1, r0 + bne _08076104 + ldrh r1, [r2, #0x3c] + adds r0, r2, #0 + movs r2, #1 + movs r3, #0 + bl DoMonFrontSpriteAnimation + b _08076110 + .align 2, 0 +_08076100: .4byte 0x020205AC +_08076104: + ldrh r1, [r2, #0x3c] + adds r0, r2, #0 + movs r2, #0 + movs r3, #0 + bl DoMonFrontSpriteAnimation +_08076110: + adds r0, r4, #0 + bl DestroySpriteAndFreeResources +_08076116: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08075FE8 + + thumb_func_start sub_08076124 +sub_08076124: @ 0x08076124 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sl, r0 + adds r6, r2, #0 + mov r8, r3 + ldr r5, [sp, #0x20] + ldr r4, [sp, #0x24] + ldr r0, [sp, #0x28] + mov sb, r0 + mov r0, sl + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov r1, r8 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r0, sb + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldr r0, _080761C8 + bl LoadCompressedSpriteSheetUsingHeap + ldr r0, _080761CC + bl LoadCompressedSpritePaletteUsingHeap + ldr r0, _080761D0 + adds r1, r6, #0 + mov r2, r8 + adds r3, r4, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r6, _080761D4 + lsls r3, r0, #4 + adds r3, r3, r0 + lsls r3, r3, #2 + adds r2, r3, r6 + mov r1, sl + strh r1, [r2, #0x2e] + mov r4, sb + strh r4, [r2, #0x30] + strh r7, [r2, #0x32] + mov r1, sp + ldrh r1, [r1, #0x2c] + strh r1, [r2, #0x34] + ldr r4, [sp, #0x2c] + lsrs r1, r4, #0x10 + strh r1, [r2, #0x36] + movs r1, #3 + ands r5, r1 + lsls r5, r5, #2 + ldrb r4, [r2, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r4 + orrs r1, r5 + strb r1, [r2, #5] + adds r6, #0x1c + adds r3, r3, r6 + ldr r1, _080761D8 + str r1, [r3] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080761C8: .4byte 0x082FCE0C +_080761CC: .4byte 0x082FCE6C +_080761D0: .4byte 0x082FCF94 +_080761D4: .4byte 0x020205AC +_080761D8: .4byte 0x080761DD + thumb_func_end sub_08076124 + + thumb_func_start sub_080761DC +sub_080761DC: @ 0x080761DC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldrh r1, [r4, #0x30] + movs r2, #0x30 + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _08076274 + ldrh r0, [r4, #0x2e] + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldrh r0, [r4, #0x32] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldrh r5, [r4, #0x34] + ldrh r0, [r4, #0x36] + lsls r0, r0, #0x10 + orrs r5, r0 + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08076216 + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + b _08076218 +_08076216: + movs r6, #0 +_08076218: + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAnim + ldrh r0, [r4, #0x20] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #0x22] + subs r1, #5 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrb r2, [r4, #5] + lsls r2, r2, #0x1c + lsrs r2, r2, #0x1e + adds r3, r6, #0 + bl AnimateBallOpenParticlesForPokeball + movs r0, #1 + mov r1, r8 + adds r2, r5, #0 + bl LaunchBallFadeMonTaskForPokeball + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r5, #0 + strh r0, [r4, #0x30] + ldr r0, _0807626C + str r0, [r4, #0x1c] + lsls r4, r7, #4 + adds r4, r4, r7 + lsls r4, r4, #2 + ldr r0, _08076270 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #2 + bl StartSpriteAffineAnim + adds r0, r4, #0 + bl AnimateSprite + strh r5, [r4, #0x30] + b _08076278 + .align 2, 0 +_0807626C: .4byte 0x08076285 +_08076270: .4byte 0x020205AC +_08076274: + subs r0, r1, #1 + strh r0, [r4, #0x30] +_08076278: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080761DC + + thumb_func_start sub_08076284 +sub_08076284: @ 0x08076284 + push {r4, r5, lr} + adds r5, r0, #0 + ldrh r0, [r5, #0x38] + adds r0, #1 + strh r0, [r5, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xb + bne _0807629C + movs r0, #0x3c + bl PlaySE +_0807629C: + ldrh r1, [r5, #0x2e] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _080762D8 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, r0, r2 + adds r0, r4, #0 + adds r0, #0x3f + ldrb r0, [r0] + lsls r0, r0, #0x1a + cmp r0, #0 + bge _080762E0 + adds r0, r5, #0 + movs r1, #2 + bl StartSpriteAnim + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + movs r0, #0 + strh r0, [r5, #0x38] + ldr r0, _080762DC + str r0, [r5, #0x1c] + b _080762F0 + .align 2, 0 +_080762D8: .4byte 0x020205AC +_080762DC: .4byte 0x080762F9 +_080762E0: + ldrh r0, [r4, #0x30] + adds r0, #0x60 + strh r0, [r4, #0x30] + movs r1, #0x30 + ldrsh r0, [r4, r1] + rsbs r0, r0, #0 + asrs r0, r0, #8 + strh r0, [r4, #0x26] +_080762F0: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08076284 + + thumb_func_start sub_080762F8 +sub_080762F8: @ 0x080762F8 + push {lr} + adds r2, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0807630C + ldr r0, _08076310 + str r0, [r2, #0x1c] +_0807630C: + pop {r0} + bx r0 + .align 2, 0 +_08076310: .4byte 0x08007141 + thumb_func_end sub_080762F8 + + thumb_func_start Unref_DestroySpriteAndFreeResources +Unref_DestroySpriteAndFreeResources: @ 0x08076314 + push {lr} + bl DestroySpriteAndFreeResources + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Unref_DestroySpriteAndFreeResources + + thumb_func_start sub_08076320 +sub_08076320: @ 0x08076320 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + ldr r0, _080763A0 + adds r0, r5, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r6, _080763A4 + adds r4, r0, r6 + movs r1, #0 + movs r0, #5 + strh r0, [r4, #0x2e] + strh r1, [r4, #0x30] + movs r0, #0x73 + strh r0, [r4, #0x24] + strh r1, [r4, #0x26] + ldr r0, _080763A8 + str r0, [r4, #0x1c] + adds r0, r5, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0807636E + ldrh r0, [r4, #0x2e] + rsbs r0, r0, #0 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x30] + rsbs r0, r0, #0 + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x24] + rsbs r0, r0, #0 + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x26] + rsbs r0, r0, #0 + strh r0, [r4, #0x26] +_0807636E: + movs r0, #0x38 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r6, #0 + adds r1, #0x1c + adds r1, r0, r1 + adds r0, r0, r6 + ldr r1, [r1] + bl _call_via_r1 + adds r0, r5, #0 + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _08076398 + ldr r0, _080763AC + str r0, [r4, #0x1c] +_08076398: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080763A0: .4byte 0x03005AD0 +_080763A4: .4byte 0x020205AC +_080763A8: .4byte 0x080763D5 +_080763AC: .4byte 0x080763B1 + thumb_func_end sub_08076320 + + thumb_func_start sub_080763B0 +sub_080763B0: @ 0x080763B0 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0x30] + adds r0, #1 + strh r0, [r1, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x14 + bne _080763CA + movs r0, #0 + strh r0, [r1, #0x30] + ldr r0, _080763D0 + str r0, [r1, #0x1c] +_080763CA: + pop {r0} + bx r0 + .align 2, 0 +_080763D0: .4byte 0x080763D5 + thumb_func_end sub_080763B0 + + thumb_func_start sub_080763D4 +sub_080763D4: @ 0x080763D4 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x24] + ldrh r1, [r2, #0x2e] + subs r0, r0, r1 + strh r0, [r2, #0x24] + ldrh r0, [r2, #0x26] + ldrh r1, [r2, #0x30] + subs r0, r0, r1 + strh r0, [r2, #0x26] + ldr r0, [r2, #0x24] + cmp r0, #0 + bne _080763F2 + ldr r0, _080763F8 + str r0, [r2, #0x1c] +_080763F2: + pop {r0} + bx r0 + .align 2, 0 +_080763F8: .4byte 0x08007141 + thumb_func_end sub_080763D4 + + thumb_func_start DoHitAnimHealthboxEffect +DoHitAnimHealthboxEffect: @ 0x080763FC + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r5, _08076434 + adds r0, r5, #0 + bl CreateInvisibleSpriteWithCallback + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08076438 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r3, r1, r2 + movs r0, #1 + strh r0, [r3, #0x2e] + ldr r0, _0807643C + adds r4, r4, r0 + ldrb r0, [r4] + strh r0, [r3, #0x30] + adds r2, #0x1c + adds r1, r1, r2 + str r5, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08076434: .4byte 0x08076441 +_08076438: .4byte 0x020205AC +_0807643C: .4byte 0x03005AD0 + thumb_func_end DoHitAnimHealthboxEffect + + thumb_func_start SpriteCB_HitAnimHealthoxEffect +SpriteCB_HitAnimHealthoxEffect: @ 0x08076440 + push {lr} + adds r3, r0, #0 + ldrh r1, [r3, #0x30] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _0807647C + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r2 + ldrh r0, [r3, #0x2e] + movs r2, #0 + strh r0, [r1, #0x26] + ldrh r0, [r3, #0x2e] + rsbs r0, r0, #0 + strh r0, [r3, #0x2e] + ldrh r0, [r3, #0x32] + adds r0, #1 + strh r0, [r3, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x15 + bne _08076478 + strh r2, [r1, #0x24] + strh r2, [r1, #0x26] + adds r0, r3, #0 + bl DestroySprite +_08076478: + pop {r0} + bx r0 + .align 2, 0 +_0807647C: .4byte 0x020205AC + thumb_func_end SpriteCB_HitAnimHealthoxEffect + + thumb_func_start LoadBallGfx +LoadBallGfx: @ 0x08076480 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080764DC + lsls r6, r4, #3 + adds r5, r6, r0 + ldrh r0, [r5, #6] + bl GetSpriteTileStartByTag + lsls r0, r0, #0x10 + ldr r1, _080764E0 + cmp r0, r1 + bne _080764A8 + adds r0, r5, #0 + bl LoadCompressedSpriteSheetUsingHeap + ldr r0, _080764E4 + adds r0, r6, r0 + bl LoadCompressedSpritePaletteUsingHeap +_080764A8: + cmp r4, #6 + beq _080764D4 + cmp r4, #6 + blt _080764B8 + cmp r4, #0xb + bgt _080764B8 + cmp r4, #0xa + bge _080764D4 +_080764B8: + ldr r1, _080764DC + lsls r0, r4, #3 + adds r0, r0, r1 + ldrh r0, [r0, #6] + bl GetSpriteTileStartByTag + adds r1, r0, #0 + lsls r1, r1, #0x10 + ldr r0, _080764E8 + lsrs r1, r1, #0xb + ldr r2, _080764EC + adds r1, r1, r2 + bl LZDecompressWram +_080764D4: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080764DC: .4byte 0x082FCE0C +_080764E0: .4byte 0xFFFF0000 +_080764E4: .4byte 0x082FCE6C +_080764E8: .4byte 0x08C02308 +_080764EC: .4byte 0x06010100 + thumb_func_end LoadBallGfx + + thumb_func_start FreeBallGfx +FreeBallGfx: @ 0x080764F0 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + ldr r0, _08076514 + lsrs r4, r4, #0x15 + adds r0, r4, r0 + ldrh r0, [r0, #6] + bl FreeSpriteTilesByTag + ldr r0, _08076518 + adds r4, r4, r0 + ldrh r0, [r4, #4] + bl FreeSpritePaletteByTag + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08076514: .4byte 0x082FCE0C +_08076518: .4byte 0x082FCE6C + thumb_func_end FreeBallGfx + + thumb_func_start GetBattlerPokeballItemId +GetBattlerPokeballItemId: @ 0x0807651C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08076548 + ldr r1, _08076540 + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08076544 + b _08076556 + .align 2, 0 +_08076540: .4byte 0x02023D12 +_08076544: .4byte 0x020243E8 +_08076548: + ldr r1, _08076568 + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0807656C +_08076556: + adds r0, r0, r1 + movs r1, #0x26 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08076568: .4byte 0x02023D12 +_0807656C: .4byte 0x02024190 + thumb_func_end GetBattlerPokeballItemId + diff --git a/asm/pokeblock.spokeblock.s b/asm/pokeblock.spokeblock.s new file mode 100644 index 0000000..0f9d6cd --- /dev/null +++ b/asm/pokeblock.spokeblock.s @@ -0,0 +1,3156 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_08135850 +sub_08135850: @ 0x08135850 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r5, _081358A0 + movs r0, #0xd4 + lsls r0, r0, #4 + bl Alloc + str r0, [r5] + ldr r2, _081358A4 + adds r0, r0, r2 + movs r3, #0 + strb r4, [r0] + ldr r0, [r5] + movs r4, #0x80 + lsls r4, r4, #4 + adds r1, r0, r4 + str r3, [r1] + ldr r1, _081358A8 + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] + ldr r0, [r5] + ldr r4, _081358AC + adds r0, r0, r4 + strb r3, [r0] + ldr r0, _081358B0 + str r6, [r0] + ldr r5, [r5] + adds r2, r5, r2 + ldrb r2, [r2] + cmp r2, #2 + beq _081358D8 + cmp r2, #2 + bgt _081358B4 + cmp r2, #1 + beq _081358BA + b _08135910 + .align 2, 0 +_081358A0: .4byte 0x0203A81C +_081358A4: .4byte 0x00000809 +_081358A8: .4byte 0x00000D34 +_081358AC: .4byte 0x00000D35 +_081358B0: .4byte 0x0203A814 +_081358B4: + cmp r2, #3 + beq _081358F4 + b _08135910 +_081358BA: + ldr r0, _081358CC + adds r1, r5, r0 + ldr r0, _081358D0 + str r0, [r1] + ldr r4, _081358D4 + adds r1, r5, r4 + movs r0, #2 + b _08135922 + .align 2, 0 +_081358CC: .4byte 0x00000804 +_081358D0: .4byte 0x085920E7 +_081358D4: .4byte 0x00000808 +_081358D8: + ldr r1, _081358E8 + adds r0, r5, r1 + ldr r1, _081358EC + str r1, [r0] + ldr r4, _081358F0 + adds r0, r5, r4 + strb r2, [r0] + b _08135924 + .align 2, 0 +_081358E8: .4byte 0x00000804 +_081358EC: .4byte 0x085920E9 +_081358F0: .4byte 0x00000808 +_081358F4: + ldr r0, _08135904 + adds r1, r5, r0 + ldr r0, _08135908 + str r0, [r1] + ldr r4, _0813590C + adds r1, r5, r4 + movs r0, #2 + b _08135922 + .align 2, 0 +_08135904: .4byte 0x00000804 +_08135908: .4byte 0x085920EB +_0813590C: .4byte 0x00000808 +_08135910: + ldr r0, _08135930 + ldr r1, [r0] + ldr r0, _08135934 + adds r2, r1, r0 + ldr r0, _08135938 + str r0, [r2] + ldr r4, _0813593C + adds r1, r1, r4 + movs r0, #3 +_08135922: + strb r0, [r1] +_08135924: + ldr r0, _08135940 + bl SetMainCallback2 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08135930: .4byte 0x0203A81C +_08135934: .4byte 0x00000804 +_08135938: .4byte 0x085920E4 +_0813593C: .4byte 0x00000808 +_08135940: .4byte 0x0813599D + thumb_func_end sub_08135850 + + thumb_func_start sub_08135944 +sub_08135944: @ 0x08135944 + push {lr} + ldr r1, _08135954 + movs r0, #1 + bl sub_08135850 + pop {r0} + bx r0 + .align 2, 0 +_08135954: .4byte 0x0805996D + thumb_func_end sub_08135944 + + thumb_func_start sub_08135958 +sub_08135958: @ 0x08135958 + push {lr} + ldr r1, _08135968 + movs r0, #2 + bl sub_08135850 + pop {r0} + bx r0 + .align 2, 0 +_08135968: .4byte 0x08085A31 + thumb_func_end sub_08135958 + + thumb_func_start sub_0813596C +sub_0813596C: @ 0x0813596C + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl do_scheduled_bg_tilemap_copies_to_vram + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0813596C + + thumb_func_start sub_08135988 +sub_08135988: @ 0x08135988 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08135988 + + thumb_func_start sub_0813599C +sub_0813599C: @ 0x0813599C + push {lr} +_0813599E: + bl sub_081221F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081359C2 + bl sub_081359C8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081359C2 + bl sub_081221B8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0813599E +_081359C2: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0813599C + + thumb_func_start sub_081359C8 +sub_081359C8: @ 0x081359C8 + push {r4, lr} + sub sp, #4 + ldr r0, _081359E8 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0x12 + bls _081359DC + b _08135C08 +_081359DC: + lsls r0, r0, #2 + ldr r1, _081359EC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081359E8: .4byte 0x03002360 +_081359EC: .4byte 0x081359F0 +_081359F0: @ jump table + .4byte _08135A3C @ case 0 + .4byte _08135A46 @ case 1 + .4byte _08135A58 @ case 2 + .4byte _08135A5E @ case 3 + .4byte _08135A80 @ case 4 + .4byte _08135A86 @ case 5 + .4byte _08135AA4 @ case 6 + .4byte _08135AC0 @ case 7 + .4byte _08135ADC @ case 8 + .4byte _08135AEA @ case 9 + .4byte _08135B14 @ case 10 + .4byte _08135B2C @ case 11 + .4byte _08135B4C @ case 12 + .4byte _08135B52 @ case 13 + .4byte _08135B64 @ case 14 + .4byte _08135B6A @ case 15 + .4byte _08135BB4 @ case 16 + .4byte _08135BBA @ case 17 + .4byte _08135BD4 @ case 18 +_08135A3C: + bl SetVBlankHBlankCallbacksToNull + bl clear_scheduled_bg_copies_to_vram + b _08135BEE +_08135A46: + bl ScanlineEffect_Stop + ldr r1, _08135A54 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _08135BF6 + .align 2, 0 +_08135A54: .4byte 0x03002360 +_08135A58: + bl FreeAllSpritePalettes + b _08135BEE +_08135A5E: + bl ResetPaletteFade + ldr r2, _08135A78 + ldrb r0, [r2, #8] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #8] + ldr r1, _08135A7C + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _08135BF6 + .align 2, 0 +_08135A78: .4byte 0x02037C74 +_08135A7C: .4byte 0x03002360 +_08135A80: + bl ResetSpriteData + b _08135BEE +_08135A86: + ldr r0, _08135A9C + ldr r0, [r0] + ldr r1, _08135AA0 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + bne _08135A96 + b _08135BEE +_08135A96: + bl ResetTasks + b _08135BEE + .align 2, 0 +_08135A9C: .4byte 0x0203A81C +_08135AA0: .4byte 0x00000809 +_08135AA4: + bl sub_08135C2C + ldr r0, _08135AB8 + ldr r0, [r0] + ldr r1, _08135ABC + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0] + b _08135BEE + .align 2, 0 +_08135AB8: .4byte 0x0203A81C +_08135ABC: .4byte 0x00000D36 +_08135AC0: + bl sub_08135C88 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08135ACC + b _08135C20 +_08135ACC: + ldr r1, _08135AD8 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _08135BF6 + .align 2, 0 +_08135AD8: .4byte 0x03002360 +_08135ADC: + bl sub_0813629C + bl sub_08136320 + bl sub_08136384 + b _08135BEE +_08135AEA: + movs r0, #0x38 + movs r1, #0x40 + movs r2, #0 + bl sub_08136484 + ldr r1, _08135B08 + ldr r1, [r1] + ldr r2, _08135B0C + adds r1, r1, r2 + strb r0, [r1] + ldr r1, _08135B10 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _08135BF6 + .align 2, 0 +_08135B08: .4byte 0x0203A81C +_08135B0C: .4byte 0x00000D2C +_08135B10: .4byte 0x03002360 +_08135B14: + ldr r0, _08135B24 + ldr r0, [r0] + ldr r1, _08135B28 + adds r0, r0, r1 + movs r1, #7 + bl sub_08122350 + b _08135BEE + .align 2, 0 +_08135B24: .4byte 0x0203A81C +_08135B28: .4byte 0x00000D2D +_08135B2C: + ldr r0, _08135B40 + ldrh r0, [r0, #4] + ldr r1, _08135B44 + bl sub_08136150 + ldr r1, _08135B48 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _08135BF6 + .align 2, 0 +_08135B40: .4byte 0x0203A814 +_08135B44: .4byte 0x00001005 +_08135B48: .4byte 0x03002360 +_08135B4C: + bl sub_08135D74 + b _08135BEE +_08135B52: + bl sub_08135E60 + ldr r1, _08135B60 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _08135BF6 + .align 2, 0 +_08135B60: .4byte 0x03002360 +_08135B64: + bl sub_081363FC + b _08135BEE +_08135B6A: + ldr r0, _08135BA0 + movs r1, #0 + bl CreateTask + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _08135BA4 + ldr r2, _08135BA8 + ldrh r1, [r2, #6] + ldrh r2, [r2, #4] + bl ListMenuInit + ldr r2, _08135BAC + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r1, #8] + ldr r1, _08135BB0 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _08135BF6 + .align 2, 0 +_08135BA0: .4byte 0x08136609 +_08135BA4: .4byte 0x03006050 +_08135BA8: .4byte 0x0203A814 +_08135BAC: .4byte 0x03005B60 +_08135BB0: .4byte 0x03002360 +_08135BB4: + bl sub_08135DF8 + b _08135BEE +_08135BBA: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + ldr r1, _08135BD0 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _08135BF6 + .align 2, 0 +_08135BD0: .4byte 0x03002360 +_08135BD4: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r2, _08135C00 + ldrb r1, [r2, #8] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #8] +_08135BEE: + ldr r1, _08135C04 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 +_08135BF6: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _08135C20 + .align 2, 0 +_08135C00: .4byte 0x02037C74 +_08135C04: .4byte 0x03002360 +_08135C08: + ldr r0, _08135C18 + bl SetVBlankCallback + ldr r0, _08135C1C + bl SetMainCallback2 + movs r0, #1 + b _08135C22 + .align 2, 0 +_08135C18: .4byte 0x08135989 +_08135C1C: .4byte 0x0813596D +_08135C20: + movs r0, #0 +_08135C22: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081359C8 + + thumb_func_start sub_08135C2C +sub_08135C2C: @ 0x08135C2C + push {lr} + bl ResetVramOamAndBgCntRegs + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _08135C80 + movs r0, #0 + movs r2, #3 + bl InitBgsFromTemplates + ldr r0, _08135C84 + ldr r1, [r0] + movs r0, #2 + bl SetBgTilemapBuffer + bl ResetAllBgsCoordinates + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 +_08135C80: .4byte 0x0859206C +_08135C84: .4byte 0x0203A81C + thumb_func_end sub_08135C2C + + thumb_func_start sub_08135C88 +sub_08135C88: @ 0x08135C88 + push {r4, lr} + sub sp, #4 + ldr r0, _08135CA8 + ldr r0, [r0] + ldr r1, _08135CAC + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #5 + bhi _08135D68 + lsls r0, r0, #2 + ldr r1, _08135CB0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08135CA8: .4byte 0x0203A81C +_08135CAC: .4byte 0x00000D36 +_08135CB0: .4byte 0x08135CB4 +_08135CB4: @ jump table + .4byte _08135CCC @ case 0 + .4byte _08135CE8 @ case 1 + .4byte _08135D0C @ case 2 + .4byte _08135D1C @ case 3 + .4byte _08135D28 @ case 4 + .4byte _08135D4C @ case 5 +_08135CCC: + bl reset_temp_tile_data_buffers + ldr r1, _08135CE4 + movs r0, #0 + str r0, [sp] + movs r0, #2 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + b _08135D2E + .align 2, 0 +_08135CE4: .4byte 0x08D9B4B4 +_08135CE8: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08135D68 + ldr r0, _08135D04 + ldr r4, _08135D08 + ldr r1, [r4] + bl LZDecompressVram + ldr r1, [r4] + b _08135D32 + .align 2, 0 +_08135D04: .4byte 0x08D9BA14 +_08135D08: .4byte 0x0203A81C +_08135D0C: + ldr r0, _08135D18 + movs r1, #0 + movs r2, #0xc0 + bl LoadCompressedPalette + b _08135D2E + .align 2, 0 +_08135D18: .4byte 0x08D9B6BC +_08135D1C: + ldr r0, _08135D24 + bl LoadCompressedSpriteSheet + b _08135D2E + .align 2, 0 +_08135D24: .4byte 0x08592140 +_08135D28: + ldr r0, _08135D40 + bl LoadCompressedSpritePalette +_08135D2E: + ldr r0, _08135D44 + ldr r1, [r0] +_08135D32: + ldr r0, _08135D48 + adds r1, r1, r0 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _08135D68 + .align 2, 0 +_08135D40: .4byte 0x08592148 +_08135D44: .4byte 0x0203A81C +_08135D48: .4byte 0x00000D36 +_08135D4C: + bl LoadListMenuArrowsGfx + ldr r0, _08135D60 + ldr r0, [r0] + ldr r1, _08135D64 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0] + movs r0, #1 + b _08135D6A + .align 2, 0 +_08135D60: .4byte 0x0203A81C +_08135D64: .4byte 0x00000D36 +_08135D68: + movs r0, #0 +_08135D6A: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08135C88 + + thumb_func_start sub_08135D74 +sub_08135D74: @ 0x08135D74 + push {r4, lr} + ldr r0, _08135DC4 + bl InitWindows + bl DeactivateAllTextPrinters + movs r0, #0 + movs r1, #1 + movs r2, #0xe0 + bl LoadUserWindowBorderGfx + movs r0, #0 + movs r1, #0xa + movs r2, #0xd0 + bl LoadMessageBoxGfx + ldr r0, _08135DC8 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + movs r4, #0 +_08135DA0: + adds r0, r4, #0 + movs r1, #0 + bl FillWindowPixelBuffer + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xa + bls _08135DA0 + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08135DC4: .4byte 0x08592194 +_08135DC8: .4byte 0x085D7B04 + thumb_func_end sub_08135D74 + + thumb_func_start sub_08135DCC +sub_08135DCC: @ 0x08135DCC + push {lr} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r3, #0 + str r3, [sp] + str r3, [sp, #4] + ldr r2, _08135DF4 + str r2, [sp, #8] + str r3, [sp, #0xc] + str r1, [sp, #0x10] + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized4 + add sp, #0x14 + pop {r0} + bx r0 + .align 2, 0 +_08135DF4: .4byte 0x08592168 + thumb_func_end sub_08135DCC + + thumb_func_start sub_08135DF8 +sub_08135DF8: @ 0x08135DF8 + push {r4, lr} + ldr r0, _08135E48 + bl ItemId_GetName + adds r1, r0, #0 + movs r0, #0 + bl sub_08135DCC + ldr r1, _08135E4C + movs r0, #2 + bl sub_08135DCC + ldr r1, _08135E50 + movs r0, #3 + bl sub_08135DCC + ldr r1, _08135E54 + movs r0, #4 + bl sub_08135DCC + ldr r1, _08135E58 + movs r0, #5 + bl sub_08135DCC + ldr r1, _08135E5C + movs r0, #6 + bl sub_08135DCC + movs r4, #0 +_08135E32: + adds r0, r4, #0 + bl PutWindowTilemap + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #7 + bls _08135E32 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08135E48: .4byte 0x00000111 +_08135E4C: .4byte 0x085C983E +_08135E50: .4byte 0x085C9842 +_08135E54: .4byte 0x085C9846 +_08135E58: .4byte 0x085C984A +_08135E5C: .4byte 0x085C984E + thumb_func_end sub_08135DF8 + + thumb_func_start sub_08135E60 +sub_08135E60: @ 0x08135E60 + push {r4, r5, r6, r7, lr} + movs r6, #0 + ldr r1, _08135F10 + ldr r0, [r1] + ldr r2, _08135F14 + adds r0, r0, r2 + ldrb r0, [r0] + subs r0, #1 + cmp r6, r0 + bge _08135EB4 + adds r5, r1, #0 +_08135E76: + lsls r4, r6, #1 + adds r4, r4, r6 + lsls r4, r4, #3 + ldr r3, _08135F18 + adds r4, r4, r3 + ldr r0, [r5] + adds r0, r0, r4 + adds r1, r6, #0 + bl sub_08135F30 + ldr r1, [r5] + lsls r2, r6, #3 + ldr r7, _08135F1C + adds r0, r1, r7 + adds r0, r0, r2 + adds r4, r1, r4 + str r4, [r0] + movs r3, #0x81 + lsls r3, r3, #4 + adds r0, r1, r3 + adds r0, r0, r2 + str r6, [r0] + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r4, _08135F14 + adds r1, r1, r4 + ldrb r0, [r1] + subs r0, #1 + cmp r6, r0 + blt _08135E76 +_08135EB4: + ldr r5, _08135F10 + lsls r4, r6, #1 + adds r4, r4, r6 + lsls r4, r4, #3 + ldr r7, _08135F18 + adds r4, r4, r7 + ldr r0, [r5] + adds r0, r0, r4 + ldr r1, _08135F20 + bl StringCopy + ldr r1, [r5] + lsls r2, r6, #3 + ldr r3, _08135F1C + adds r0, r1, r3 + adds r0, r0, r2 + adds r4, r1, r4 + str r4, [r0] + movs r0, #0x81 + lsls r0, r0, #4 + adds r1, r1, r0 + adds r1, r1, r2 + movs r0, #2 + rsbs r0, r0, #0 + str r0, [r1] + ldr r2, _08135F24 + adds r1, r2, #0 + ldr r0, _08135F28 + ldm r0!, {r4, r6, r7} + stm r1!, {r4, r6, r7} + ldm r0!, {r4, r6, r7} + stm r1!, {r4, r6, r7} + ldr r1, [r5] + ldr r4, _08135F14 + adds r0, r1, r4 + ldrb r0, [r0] + strh r0, [r2, #0xc] + adds r3, r1, r3 + str r3, [r2] + ldr r6, _08135F2C + adds r1, r1, r6 + ldrb r0, [r1] + strh r0, [r2, #0xe] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08135F10: .4byte 0x0203A81C +_08135F14: .4byte 0x0000080A +_08135F18: .4byte 0x00000954 +_08135F1C: .4byte 0x0000080C +_08135F20: .4byte 0x085C985C +_08135F24: .4byte 0x03006050 +_08135F28: .4byte 0x085921FC +_08135F2C: .4byte 0x0000080B + thumb_func_end sub_08135E60 + + thumb_func_start sub_08135F30 +sub_08135F30: @ 0x08135F30 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + adds r5, r0, #0 + lsls r4, r1, #0x10 + lsrs r4, r4, #0x10 + movs r1, #0 + movs r2, #0x18 + bl memset + ldr r1, _08135FA0 + ldr r0, _08135FA4 + mov sb, r0 + ldr r0, [r0] + lsls r4, r4, #3 + adds r0, r0, r4 + ldr r6, _08135FA8 + adds r0, r0, r6 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r5, #0 + bl StringCopy + movs r1, #0 + strb r1, [r0] + ldr r1, _08135FAC + mov r8, r1 + adds r4, r4, r6 + mov r2, sb + ldr r0, [r2] + adds r0, r0, r4 + bl sub_08136F14 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r0, r8 + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + adds r5, #9 + ldr r1, _08135FB0 + adds r0, r5, #0 + bl StringExpandPlaceholders + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08135FA0: .4byte 0x08592078 +_08135FA4: .4byte 0x03005AEC +_08135FA8: .4byte 0x00000848 +_08135FAC: .4byte 0x02021C40 +_08135FB0: .4byte 0x085C9864 + thumb_func_end sub_08135F30 + + thumb_func_start sub_08135FB4 +sub_08135FB4: @ 0x08135FB4 + push {r4, lr} + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #1 + beq _08135FE0 + movs r0, #5 + bl PlaySE + ldr r2, _08135FFC + ldr r0, _08136000 + ldr r0, [r0] + ldr r1, _08136004 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, _08136008 + str r1, [r0] +_08135FE0: + ldr r0, _08136000 + ldr r0, [r0] + ldr r1, _0813600C + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _08135FF4 + adds r0, r4, #0 + bl sub_08136010 +_08135FF4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08135FFC: .4byte 0x020205AC +_08136000: .4byte 0x0203A81C +_08136004: .4byte 0x00000D2C +_08136008: .4byte 0x081364B1 +_0813600C: .4byte 0x00000D35 + thumb_func_end sub_08135FB4 + + thumb_func_start sub_08136010 +sub_08136010: @ 0x08136010 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + adds r4, r0, #0 + movs r0, #7 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #2 + rsbs r0, r0, #0 + cmp r4, r0 + beq _081360E0 + ldr r1, _08136068 + lsls r0, r4, #3 + ldr r2, _0813606C + adds r0, r0, r2 + ldr r1, [r1] + adds r1, r1, r0 + mov r8, r1 + add r1, sp, #8 + movs r0, #0x17 + strh r0, [r1] + movs r0, #0x18 + strh r0, [r1, #2] + movs r5, #0 + adds r6, r1, #0 +_08136046: + adds r4, r5, #1 + lsls r1, r4, #0x18 + lsrs r1, r1, #0x18 + mov r0, r8 + bl sub_0813700C + lsls r0, r0, #0x10 + adds r7, r4, #0 + cmp r0, #0 + ble _08136070 + lsls r1, r5, #0xc + adds r0, r1, #0 + adds r0, #0x17 + strh r0, [r6] + adds r1, #0x18 + strh r1, [r6, #2] + b _08136076 + .align 2, 0 +_08136068: .4byte 0x03005AEC +_0813606C: .4byte 0x00000848 +_08136070: + movs r0, #0xf + strh r0, [r6] + strh r0, [r6, #2] +_08136076: + adds r0, r5, #0 + movs r1, #3 + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #1 + adds r4, r4, r0 + lsls r4, r4, #1 + adds r4, #1 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + movs r1, #3 + bl __umodsi3 + adds r3, r0, #0 + lsls r3, r3, #0x19 + movs r0, #0xd0 + lsls r0, r0, #0x14 + adds r3, r3, r0 + lsrs r3, r3, #0x18 + movs r0, #1 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + add r1, sp, #8 + adds r2, r4, #0 + bl CopyToBgTilemapBufferRect + lsls r0, r7, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #4 + bls _08136046 + ldr r4, _081360DC + mov r0, r8 + bl sub_08136F4C + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + movs r2, #1 + movs r3, #2 + bl ConvertIntToDecimalStringN + movs r0, #7 + adds r1, r4, #0 + bl sub_08135DCC + b _08136138 + .align 2, 0 +_081360DC: .4byte 0x02021C40 +_081360E0: + add r0, sp, #8 + movs r1, #0xf + strh r1, [r0] + strh r1, [r0, #2] + movs r5, #0 +_081360EA: + adds r0, r5, #0 + movs r1, #3 + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #1 + adds r4, r4, r0 + lsls r4, r4, #1 + adds r4, #1 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + movs r1, #3 + bl __umodsi3 + adds r3, r0, #0 + lsls r3, r3, #0x19 + movs r2, #0xd0 + lsls r2, r2, #0x14 + adds r3, r3, r2 + lsrs r3, r3, #0x18 + movs r0, #1 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + add r1, sp, #8 + adds r2, r4, #0 + bl CopyToBgTilemapBufferRect + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #4 + bls _081360EA + movs r0, #7 + movs r1, #2 + bl CopyWindowToVram +_08136138: + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08136010 + + thumb_func_start sub_08136150 +sub_08136150: @ 0x08136150 + push {lr} + sub sp, #8 + adds r3, r0, #0 + lsls r3, r3, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsrs r3, r3, #0xf + adds r3, #1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #0xe + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r2, #0xf + bl FillBgTilemapBufferRect_Palette0 + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08136150 + + thumb_func_start sub_08136180 +sub_08136180: @ 0x08136180 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + movs r2, #0 +_0813618A: + adds r1, r2, #1 + lsls r0, r1, #0x10 + lsrs r6, r0, #0x10 + mov ip, r1 + cmp r6, #0x27 + bhi _081361D2 + ldr r0, _081361E8 + mov sb, r0 + lsls r7, r2, #3 + ldr r1, _081361EC + mov r8, r1 +_081361A0: + mov r0, sb + ldr r2, [r0] + adds r0, r2, r7 + add r0, r8 + ldrb r0, [r0] + cmp r0, #0 + bne _081361C8 + ldr r1, _081361EC + adds r2, r2, r1 + adds r3, r2, r7 + ldr r4, [r3] + ldr r5, [r3, #4] + lsls r0, r6, #3 + adds r2, r2, r0 + ldr r0, [r2] + ldr r1, [r2, #4] + str r0, [r3] + str r1, [r3, #4] + str r4, [r2] + str r5, [r2, #4] +_081361C8: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #0x27 + bls _081361A0 +_081361D2: + mov r1, ip + lsls r0, r1, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0x26 + bls _0813618A + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081361E8: .4byte 0x03005AEC +_081361EC: .4byte 0x00000848 + thumb_func_end sub_08136180 + + thumb_func_start sub_081361F0 +sub_081361F0: @ 0x081361F0 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r0, _08136244 + ldr r0, [r0] + ldr r1, _08136248 + adds r6, r0, r1 + cmp r4, r5 + beq _08136286 + movs r0, #8 + bl Alloc + adds r7, r0, #0 + lsls r0, r4, #3 + adds r0, r0, r6 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [r7] + str r1, [r7, #4] + cmp r5, r4 + bls _0813624C + subs r5, #1 + lsls r3, r4, #0x10 + lsls r0, r5, #0x10 + asrs r1, r0, #0x10 + cmp r3, r0 + bge _08136274 + adds r4, r1, #0 +_08136228: + asrs r3, r3, #0x10 + lsls r2, r3, #3 + adds r2, r2, r6 + ldr r0, [r2, #8] + ldr r1, [r2, #0xc] + str r0, [r2] + str r1, [r2, #4] + adds r3, #1 + lsls r3, r3, #0x10 + asrs r0, r3, #0x10 + cmp r0, r4 + blt _08136228 + b _08136274 + .align 2, 0 +_08136244: .4byte 0x03005AEC +_08136248: .4byte 0x00000848 +_0813624C: + lsls r3, r4, #0x10 + lsls r0, r5, #0x10 + asrs r1, r0, #0x10 + cmp r3, r0 + ble _08136274 + adds r4, r1, #0 +_08136258: + asrs r3, r3, #0x10 + lsls r2, r3, #3 + adds r2, r2, r6 + adds r0, r2, #0 + subs r0, #8 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [r2] + str r1, [r2, #4] + subs r3, #1 + lsls r3, r3, #0x10 + asrs r0, r3, #0x10 + cmp r0, r4 + bgt _08136258 +_08136274: + lsls r2, r5, #3 + adds r2, r2, r6 + ldr r0, [r7] + ldr r1, [r7, #4] + str r0, [r2] + str r1, [r2, #4] + adds r0, r7, #0 + bl Free +_08136286: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_081361F0 + + thumb_func_start sub_0813628C +sub_0813628C: @ 0x0813628C + ldr r1, _08136298 + movs r0, #0 + strh r0, [r1, #4] + strh r0, [r1, #6] + bx lr + .align 2, 0 +_08136298: .4byte 0x0203A814 + thumb_func_end sub_0813628C + + thumb_func_start sub_0813629C +sub_0813629C: @ 0x0813629C + push {r4, r5, lr} + bl sub_08136180 + ldr r0, _081362FC + ldr r0, [r0] + ldr r1, _08136300 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + movs r2, #0 + ldr r5, _08136304 + ldr r4, _08136308 +_081362B4: + ldr r0, [r5] + lsls r1, r2, #3 + adds r0, r0, r1 + adds r0, r0, r4 + ldrb r0, [r0] + ldr r3, _081362FC + cmp r0, #0 + beq _081362D0 + ldr r1, [r3] + ldr r0, _08136300 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_081362D0: + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0x27 + bls _081362B4 + ldr r0, [r3] + ldr r2, _08136300 + adds r0, r0, r2 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + ldr r0, [r3] + adds r2, r0, r2 + ldrb r2, [r2] + cmp r2, #9 + bls _08136310 + ldr r2, _0813630C + adds r1, r0, r2 + movs r0, #9 + strb r0, [r1] + b _08136316 + .align 2, 0 +_081362FC: .4byte 0x0203A81C +_08136300: .4byte 0x0000080A +_08136304: .4byte 0x03005AEC +_08136308: .4byte 0x00000848 +_0813630C: .4byte 0x0000080B +_08136310: + ldr r1, _0813631C + adds r0, r0, r1 + strb r2, [r0] +_08136316: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0813631C: .4byte 0x0000080B + thumb_func_end sub_0813629C + + thumb_func_start sub_08136320 +sub_08136320: @ 0x08136320 + push {r4, r5, lr} + ldr r0, _08136368 + ldrh r1, [r0, #6] + adds r3, r0, #0 + ldr r4, _0813636C + cmp r1, #0 + beq _08136348 + ldrh r0, [r3, #6] + ldr r1, [r4] + ldr r5, _08136370 + adds r2, r1, r5 + ldrb r2, [r2] + adds r0, r0, r2 + subs r5, #1 + adds r1, r1, r5 + ldrb r1, [r1] + cmp r0, r1 + ble _08136348 + subs r0, r1, r2 + strh r0, [r3, #6] +_08136348: + adds r2, r3, #0 + ldrh r1, [r2, #6] + ldrh r0, [r2, #4] + adds r1, r1, r0 + ldr r0, [r4] + ldr r4, _08136374 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r1, r0 + blt _0813637C + adds r1, r0, #0 + cmp r1, #0 + bne _08136378 + strh r1, [r2, #4] + b _0813637C + .align 2, 0 +_08136368: .4byte 0x0203A814 +_0813636C: .4byte 0x0203A81C +_08136370: .4byte 0x0000080B +_08136374: .4byte 0x0000080A +_08136378: + subs r0, #1 + strh r0, [r3, #4] +_0813637C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08136320 + + thumb_func_start sub_08136384 +sub_08136384: @ 0x08136384 + push {r4, r5, r6, r7, lr} + ldr r0, _081363EC + ldrh r1, [r0, #4] + adds r5, r0, #0 + cmp r1, #4 + bls _081363E4 + movs r4, #0 + ldrh r0, [r5, #4] + subs r0, #4 + cmp r4, r0 + bge _081363E4 + ldrh r2, [r5, #6] + ldr r6, _081363F0 + ldr r0, [r6] + ldr r3, _081363F4 + adds r1, r0, r3 + ldrb r1, [r1] + adds r2, r2, r1 + ldr r7, _081363F8 + adds r0, r0, r7 + ldrb r0, [r0] + cmp r2, r0 + beq _081363E4 + adds r3, r5, #0 +_081363B4: + ldrh r0, [r3, #4] + subs r0, #1 + strh r0, [r3, #4] + ldrh r0, [r3, #6] + adds r0, #1 + strh r0, [r3, #6] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldrh r0, [r3, #4] + subs r0, #4 + cmp r4, r0 + bge _081363E4 + ldrh r2, [r5, #6] + ldr r1, [r6] + ldr r7, _081363F4 + adds r0, r1, r7 + ldrb r0, [r0] + adds r2, r2, r0 + ldr r0, _081363F8 + adds r1, r1, r0 + ldrb r1, [r1] + cmp r2, r1 + bne _081363B4 +_081363E4: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081363EC: .4byte 0x0203A814 +_081363F0: .4byte 0x0203A81C +_081363F4: .4byte 0x0000080B +_081363F8: .4byte 0x0000080A + thumb_func_end sub_08136384 + + thumb_func_start sub_081363FC +sub_081363FC: @ 0x081363FC + push {r4, lr} + sub sp, #0x10 + ldr r4, _08136444 + ldr r1, [r4] + ldr r2, _08136448 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0xff + bne _0813643C + ldr r2, _0813644C + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, #1 + adds r1, r1, r2 + ldrb r1, [r1] + subs r0, r0, r1 + str r0, [sp] + ldr r0, _08136450 + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, _08136454 + str r0, [sp, #0xc] + movs r0, #2 + movs r1, #0xb0 + movs r2, #8 + movs r3, #0x98 + bl AddScrollIndicatorArrowPairParameterized + ldr r1, [r4] + ldr r2, _08136448 + adds r1, r1, r2 + strb r0, [r1] +_0813643C: + add sp, #0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08136444: .4byte 0x0203A81C +_08136448: .4byte 0x00000D34 +_0813644C: .4byte 0x0000080A +_08136450: .4byte 0x00000456 +_08136454: .4byte 0x0203A81A + thumb_func_end sub_081363FC + + thumb_func_start sub_08136458 +sub_08136458: @ 0x08136458 + push {r4, lr} + ldr r4, _0813647C + ldr r0, [r4] + ldr r2, _08136480 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, #0xff + beq _08136476 + bl RemoveScrollIndicatorArrowPair + ldr r0, [r4] + ldr r1, _08136480 + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] +_08136476: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813647C: .4byte 0x0203A81C +_08136480: .4byte 0x00000D34 + thumb_func_end sub_08136458 + + thumb_func_start sub_08136484 +sub_08136484: @ 0x08136484 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r3, r2, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r0, _081364AC + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + adds r1, r4, #0 + adds r2, r5, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081364AC: .4byte 0x08592150 + thumb_func_end sub_08136484 + + thumb_func_start sub_081364B0 +sub_081364B0: @ 0x081364B0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #1 + ble _081364C0 + movs r0, #0 + strh r0, [r4, #0x2e] +_081364C0: + movs r0, #0x2e + ldrsh r5, [r4, r0] + cmp r5, #0 + beq _081364CE + cmp r5, #1 + beq _081364F4 + b _08136520 +_081364CE: + ldrb r1, [r4, #1] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #1] + ldr r0, _081364F0 + str r0, [r4, #0x10] + adds r0, r4, #0 + bl InitSpriteAffineAnim + movs r0, #1 + strh r0, [r4, #0x2e] + strh r5, [r4, #0x30] + b _08136520 + .align 2, 0 +_081364F0: .4byte 0x0859213C +_081364F4: + ldrh r0, [r4, #0x30] + adds r0, #1 + movs r2, #0 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xb + ble _08136520 + ldrb r1, [r4, #1] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #1] + strh r2, [r4, #0x2e] + strh r2, [r4, #0x30] + ldrb r0, [r4, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + ldr r0, _08136528 + str r0, [r4, #0x1c] +_08136520: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08136528: .4byte 0x08007141 + thumb_func_end sub_081364B0 + + thumb_func_start sub_0813652C +sub_0813652C: @ 0x0813652C + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _0813655C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08136560 + str r1, [r0] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813655C: .4byte 0x03005B60 +_08136560: .4byte 0x08136565 + thumb_func_end sub_0813652C + + thumb_func_start sub_08136564 +sub_08136564: @ 0x08136564 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _081365C8 + adds r2, r0, r1 + ldr r0, _081365CC + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081365FE + ldr r6, _081365D0 + ldr r0, [r6] + ldr r1, _081365D4 + adds r0, r0, r1 + ldrb r0, [r0] + subs r0, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0813659A + ldr r1, _081365D8 + ldr r0, _081365DC + str r0, [r1] +_0813659A: + ldrb r0, [r2] + ldr r4, _081365E0 + subs r2, r4, #2 + adds r1, r4, #0 + bl DestroyListMenuTask + bl sub_08136458 + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r0, [r6] + movs r1, #0x80 + lsls r1, r1, #4 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #0 + beq _081365E4 + bl SetMainCallback2 + b _081365EC + .align 2, 0 +_081365C8: .4byte 0x03005B68 +_081365CC: .4byte 0x02037C74 +_081365D0: .4byte 0x0203A81C +_081365D4: .4byte 0x00000809 +_081365D8: .4byte 0x03005B0C +_081365DC: .4byte 0x080AEA65 +_081365E0: .4byte 0x0203A81A +_081365E4: + subs r0, r4, #6 + ldr r0, [r0] + bl SetMainCallback2 +_081365EC: + bl FreeAllWindowBuffers + ldr r0, _08136604 + ldr r0, [r0] + bl Free + adds r0, r5, #0 + bl DestroyTask +_081365FE: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08136604: .4byte 0x0203A81C + thumb_func_end sub_08136564 + + thumb_func_start sub_08136608 +sub_08136608: @ 0x08136608 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + mov r8, r0 + ldr r0, _081366A4 + mov sl, r0 + mov r6, r8 + add r6, sl + ldr r0, _081366A8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08136634 + b _08136748 +_08136634: + bl sub_081221F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08136642 + b _08136748 +_08136642: + ldr r0, _081366AC + ldrh r1, [r0, #0x2e] + movs r0, #4 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + cmp r0, #0 + beq _081366C8 + ldrb r0, [r6] + ldr r4, _081366B0 + subs r2, r4, #2 + adds r1, r4, #0 + bl ListMenuGetScrollAndRow + subs r4, #6 + ldrh r1, [r4, #6] + ldrh r0, [r4, #4] + adds r1, r1, r0 + ldr r5, _081366B4 + ldr r0, [r5] + ldr r2, _081366B8 + adds r0, r0, r2 + ldrb r0, [r0] + subs r0, #1 + cmp r1, r0 + beq _08136748 + movs r0, #5 + bl PlaySE + ldrh r0, [r4, #4] + ldr r1, _081366BC + bl sub_08136150 + ldrh r0, [r4, #4] + ldrh r4, [r4, #6] + adds r0, r0, r4 + strh r0, [r6, #4] + ldr r0, [r5] + ldr r1, _081366C0 + adds r0, r0, r1 + movs r1, #1 + strb r1, [r0] + mov r0, sl + subs r0, #8 + add r0, r8 + ldr r1, _081366C4 + str r1, [r0] + b _08136748 + .align 2, 0 +_081366A4: .4byte 0x03005B68 +_081366A8: .4byte 0x02037C74 +_081366AC: .4byte 0x03002360 +_081366B0: .4byte 0x0203A81A +_081366B4: .4byte 0x0203A81C +_081366B8: .4byte 0x0000080A +_081366BC: .4byte 0x00002005 +_081366C0: .4byte 0x00000D35 +_081366C4: .4byte 0x0813675D +_081366C8: + ldr r5, _08136708 + ldrh r2, [r5, #4] + mov r8, r2 + ldrb r0, [r6] + bl ListMenu_ProcessInput + adds r4, r0, #0 + ldrb r0, [r6] + adds r1, r5, #6 + adds r2, r5, #4 + bl ListMenuGetScrollAndRow + ldrh r0, [r5, #4] + cmp r8, r0 + beq _081366F6 + mov r0, r8 + movs r1, #5 + bl sub_08136150 + ldrh r0, [r5, #4] + ldr r1, _0813670C + bl sub_08136150 +_081366F6: + movs r0, #2 + rsbs r0, r0, #0 + cmp r4, r0 + beq _08136710 + adds r0, #1 + cmp r4, r0 + bne _08136738 + b _08136748 + .align 2, 0 +_08136708: .4byte 0x0203A814 +_0813670C: .4byte 0x00001005 +_08136710: + movs r0, #5 + bl PlaySE + ldr r0, _0813672C + ldr r2, _08136730 + adds r1, r2, #0 + strh r1, [r0] + ldr r0, _08136734 + mov r1, sb + strh r1, [r0] + adds r0, r7, #0 + bl sub_0813652C + b _08136748 + .align 2, 0 +_0813672C: .4byte 0x02037290 +_08136730: .4byte 0x0000FFFF +_08136734: .4byte 0x0203CB48 +_08136738: + movs r0, #5 + bl PlaySE + ldr r0, _08136758 + strh r4, [r0] + adds r0, r7, #0 + bl sub_08136978 +_08136748: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08136758: .4byte 0x0203CB48 + thumb_func_end sub_08136608 + + thumb_func_start sub_0813675C +sub_0813675C: @ 0x0813675C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r0, r0, #2 + add r0, r8 + lsls r0, r0, #3 + ldr r1, _081367A0 + adds r7, r0, r1 + bl sub_081221F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08136782 + b _08136888 +_08136782: + ldr r0, _081367A4 + ldrh r1, [r0, #0x2e] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _081367AC + movs r0, #5 + bl PlaySE + ldrb r0, [r7] + ldr r1, _081367A8 + subs r2, r1, #2 + bl ListMenuGetScrollAndRow + b _08136862 + .align 2, 0 +_081367A0: .4byte 0x03005B68 +_081367A4: .4byte 0x03002360 +_081367A8: .4byte 0x0203A81A +_081367AC: + ldr r6, _081367F0 + ldrh r4, [r6, #6] + ldrh r5, [r6, #4] + ldrb r0, [r7] + bl ListMenu_ProcessInput + mov sb, r0 + ldrb r0, [r7] + adds r1, r6, #6 + adds r2, r6, #4 + bl ListMenuGetScrollAndRow + ldrh r0, [r6, #6] + cmp r4, r0 + bne _081367D0 + ldrh r6, [r6, #4] + cmp r5, r6 + beq _0813680A +_081367D0: + movs r4, #0 +_081367D2: + ldr r0, _081367F0 + ldrh r0, [r0, #6] + adds r0, r4, r0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + movs r1, #4 + ldrsh r0, [r7, r1] + cmp r5, r0 + bne _081367F8 + adds r0, r4, #0 + ldr r1, _081367F4 + bl sub_08136150 + b _08136800 + .align 2, 0 +_081367F0: .4byte 0x0203A814 +_081367F4: .4byte 0x00002005 +_081367F8: + adds r0, r4, #0 + movs r1, #5 + bl sub_08136150 +_08136800: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #8 + bls _081367D2 +_0813680A: + ldr r5, _08136844 + ldr r0, [r5] + ldr r4, _08136848 + adds r0, r0, r4 + movs r1, #7 + movs r2, #0 + bl sub_08122408 + ldr r0, [r5] + adds r0, r0, r4 + ldr r1, _0813684C + ldrh r3, [r1, #4] + lsls r3, r3, #4 + adds r3, #8 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + movs r1, #7 + movs r2, #0x80 + bl sub_08122454 + movs r0, #2 + rsbs r0, r0, #0 + cmp sb, r0 + beq _08136850 + adds r0, #1 + cmp sb, r0 + bne _0813687A + b _08136888 + .align 2, 0 +_08136844: .4byte 0x0203A81C +_08136848: .4byte 0x00000D2D +_0813684C: .4byte 0x0203A814 +_08136850: + movs r0, #5 + bl PlaySE + ldr r0, _0813686C + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08136870 +_08136862: + mov r0, r8 + movs r1, #0 + bl sub_08136894 + b _08136888 + .align 2, 0 +_0813686C: .4byte 0x03002360 +_08136870: + mov r0, r8 + movs r1, #1 + bl sub_08136894 + b _08136888 +_0813687A: + movs r0, #5 + bl PlaySE + mov r0, r8 + movs r1, #0 + bl sub_08136894 +_08136888: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_0813675C + + thumb_func_start sub_08136894 +sub_08136894: @ 0x08136894 + push {r4, r5, r6, r7, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + ldr r1, _08136954 + adds r6, r0, r1 + ldr r2, _08136958 + ldrh r0, [r2, #4] + ldrh r1, [r2, #6] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, _0813695C + ldr r0, [r0] + ldr r1, _08136960 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + ldrb r0, [r6] + adds r1, r2, #6 + adds r2, #4 + bl DestroyListMenuTask + cmp r4, #0 + bne _081368EA + movs r0, #4 + ldrsh r1, [r6, r0] + cmp r1, r5 + beq _081368FA + subs r0, r5, #1 + cmp r1, r0 + beq _081368EA + adds r0, r1, #0 + adds r1, r5, #0 + bl sub_081361F0 + bl sub_08135E60 +_081368EA: + movs r1, #4 + ldrsh r0, [r6, r1] + cmp r0, r5 + bge _081368FA + ldr r1, _08136958 + ldrh r0, [r1, #4] + subs r0, #1 + strh r0, [r1, #4] +_081368FA: + ldr r0, _08136964 + ldr r2, _08136958 + ldrh r1, [r2, #6] + ldrh r2, [r2, #4] + bl ListMenuInit + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r6] + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + ldr r0, _0813695C + ldr r0, [r0] + ldr r1, _08136968 + adds r0, r0, r1 + movs r1, #7 + movs r2, #1 + bl sub_08122408 + movs r4, #0 + lsls r5, r7, #2 +_08136926: + adds r0, r4, #0 + movs r1, #5 + bl sub_08136150 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #8 + bls _08136926 + ldr r0, _08136958 + ldrh r0, [r0, #4] + ldr r1, _0813696C + bl sub_08136150 + ldr r1, _08136970 + adds r0, r5, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08136974 + str r1, [r0] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08136954: .4byte 0x03005B68 +_08136958: .4byte 0x0203A814 +_0813695C: .4byte 0x0203A81C +_08136960: .4byte 0x00000D35 +_08136964: .4byte 0x03006050 +_08136968: .4byte 0x00000D2D +_0813696C: .4byte 0x00001005 +_08136970: .4byte 0x03005B60 +_08136974: .4byte 0x08136609 + thumb_func_end sub_08136894 + + thumb_func_start sub_08136978 +sub_08136978: @ 0x08136978 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + lsls r0, r0, #2 + add r0, sb + lsls r0, r0, #3 + ldr r1, _081369A4 + adds r7, r0, r1 + ldr r0, _081369A8 + ldr r0, [r0] + ldr r1, _081369AC + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #3 + bne _081369B0 + movs r0, #8 + b _081369B2 + .align 2, 0 +_081369A4: .4byte 0x03005B68 +_081369A8: .4byte 0x0203A81C +_081369AC: .4byte 0x00000808 +_081369B0: + movs r0, #9 +_081369B2: + strh r0, [r7, #2] + bl sub_08136458 + ldrb r0, [r7, #2] + movs r1, #0 + movs r2, #1 + movs r3, #0xe + bl DrawStdFrameWithCustomTileAndPalette + ldrb r0, [r7, #2] + movs r2, #0 + mov r8, r2 + str r2, [sp] + movs r6, #0x10 + str r6, [sp, #4] + ldr r5, _08136A38 + ldr r2, [r5] + ldr r4, _08136A3C + adds r1, r2, r4 + ldrb r1, [r1] + str r1, [sp, #8] + ldr r1, _08136A40 + str r1, [sp, #0xc] + ldr r1, _08136A44 + adds r2, r2, r1 + ldr r1, [r2] + str r1, [sp, #0x10] + movs r1, #1 + movs r2, #8 + movs r3, #2 + bl AddItemMenuActionTextPrinters + ldrb r0, [r7, #2] + str r6, [sp] + ldr r1, [r5] + adds r1, r1, r4 + ldrb r1, [r1] + str r1, [sp, #4] + mov r2, r8 + str r2, [sp, #8] + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl sub_081984B0 + ldrb r0, [r7, #2] + bl PutWindowTilemap + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, _08136A48 + mov r2, sb + lsls r0, r2, #2 + add r0, sb + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08136A4C + str r1, [r0] + add sp, #0x14 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08136A38: .4byte 0x0203A81C +_08136A3C: .4byte 0x00000808 +_08136A40: .4byte 0x085920B4 +_08136A44: .4byte 0x00000804 +_08136A48: .4byte 0x03005B60 +_08136A4C: .4byte 0x08136A51 + thumb_func_end sub_08136978 + + thumb_func_start sub_08136A50 +sub_08136A50: @ 0x08136A50 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r6, r5, #0 + bl sub_081221F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08136AAC + bl Menu_ProcessInputNoWrap + lsls r0, r0, #0x18 + asrs r4, r0, #0x18 + movs r0, #2 + rsbs r0, r0, #0 + cmp r4, r0 + beq _08136AAC + adds r0, #1 + cmp r4, r0 + bne _08136A88 + movs r0, #5 + bl PlaySE + adds r0, r5, #0 + bl sub_08136E58 + b _08136AAC +_08136A88: + movs r0, #5 + bl PlaySE + ldr r1, _08136AB4 + ldr r0, _08136AB8 + ldr r0, [r0] + ldr r2, _08136ABC + adds r0, r0, r2 + ldr r0, [r0] + adds r0, r0, r4 + ldrb r0, [r0] + lsls r0, r0, #3 + adds r1, #4 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r6, #0 + bl _call_via_r1 +_08136AAC: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08136AB4: .4byte 0x085920B4 +_08136AB8: .4byte 0x0203A81C +_08136ABC: .4byte 0x00000804 + thumb_func_end sub_08136A50 + + thumb_func_start sub_08136AC0 +sub_08136AC0: @ 0x08136AC0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08136ADC + ldr r1, [r1] + movs r2, #0x80 + lsls r2, r2, #4 + adds r1, r1, r2 + ldr r2, _08136AE0 + str r2, [r1] + bl sub_0813652C + pop {r0} + bx r0 + .align 2, 0 +_08136ADC: .4byte 0x0203A81C +_08136AE0: .4byte 0x08136AE5 + thumb_func_end sub_08136AC0 + + thumb_func_start sub_08136AE4 +sub_08136AE4: @ 0x08136AE4 + push {lr} + ldr r2, _08136B00 + ldr r0, _08136B04 + ldrh r1, [r0] + lsls r1, r1, #3 + ldr r0, _08136B08 + adds r1, r1, r0 + ldr r0, [r2] + adds r0, r0, r1 + ldr r1, _08136B0C + bl ChooseMonToGivePokeblock + pop {r0} + bx r0 + .align 2, 0 +_08136B00: .4byte 0x03005AEC +_08136B04: .4byte 0x0203CB48 +_08136B08: .4byte 0x00000848 +_08136B0C: .4byte 0x08136B11 + thumb_func_end sub_08136AE4 + + thumb_func_start sub_08136B10 +sub_08136B10: @ 0x08136B10 + push {lr} + ldr r0, _08136B20 + ldr r1, [r0] + movs r0, #0 + bl sub_08135850 + pop {r0} + bx r0 + .align 2, 0 +_08136B20: .4byte 0x0203A814 + thumb_func_end sub_08136B10 + + thumb_func_start sub_08136B24 +sub_08136B24: @ 0x08136B24 + push {r4, r5, lr} + sub sp, #0x10 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _08136B94 + adds r0, r0, r1 + ldrb r0, [r0, #2] + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + ldr r0, _08136B98 + ldr r3, _08136B9C + ldr r1, _08136BA0 + ldr r2, [r1] + ldr r1, _08136BA4 + ldrh r1, [r1] + lsls r1, r1, #3 + adds r2, r2, r1 + ldr r1, _08136BA8 + adds r2, r2, r1 + ldrb r1, [r2] + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r1, [r1] + bl StringCopy + ldr r5, _08136BAC + ldr r1, _08136BB0 + adds r0, r5, #0 + bl StringExpandPlaceholders + bl GetPlayerTextSpeedDelay + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + str r1, [sp] + str r0, [sp, #4] + str r5, [sp, #8] + ldr r0, _08136BB4 + str r0, [sp, #0xc] + adds r0, r4, #0 + movs r1, #0xa + movs r2, #0xa + movs r3, #0xd + bl DisplayMessageAndContinueTask + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08136B94: .4byte 0x03005B68 +_08136B98: .4byte 0x02021C40 +_08136B9C: .4byte 0x08592078 +_08136BA0: .4byte 0x03005AEC +_08136BA4: .4byte 0x0203CB48 +_08136BA8: .4byte 0x00000848 +_08136BAC: .4byte 0x02021C7C +_08136BB0: .4byte 0x085C9869 +_08136BB4: .4byte 0x08136BB9 + thumb_func_end sub_08136B24 + + thumb_func_start sub_08136BB8 +sub_08136BB8: @ 0x08136BB8 + push {lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08136BE0 + movs r2, #2 + str r2, [sp] + movs r2, #1 + str r2, [sp, #4] + movs r2, #0xe + str r2, [sp, #8] + ldr r2, _08136BE4 + str r2, [sp, #0xc] + movs r2, #1 + movs r3, #0 + bl CreateYesNoMenuWithCallbacks + add sp, #0x10 + pop {r0} + bx r0 + .align 2, 0 +_08136BE0: .4byte 0x085921F4 +_08136BE4: .4byte 0x085920F0 + thumb_func_end sub_08136BB8 + + thumb_func_start sub_08136BE8 +sub_08136BE8: @ 0x08136BE8 + push {r4, r5, lr} + sub sp, #0x10 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r5, _08136C24 + ldr r1, _08136C28 + adds r0, r5, #0 + bl StringExpandPlaceholders + bl GetPlayerTextSpeedDelay + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + str r1, [sp] + str r0, [sp, #4] + str r5, [sp, #8] + ldr r0, _08136C2C + str r0, [sp, #0xc] + adds r0, r4, #0 + movs r1, #0xa + movs r2, #0xa + movs r3, #0xd + bl DisplayMessageAndContinueTask + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08136C24: .4byte 0x02021C7C +_08136C28: .4byte 0x085C987B +_08136C2C: .4byte 0x08136C31 + thumb_func_end sub_08136BE8 + + thumb_func_start sub_08136C30 +sub_08136C30: @ 0x08136C30 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _08136CAC + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _08136CA6 + ldr r0, _08136CB0 + ldrb r0, [r0] + bl sub_08136FD8 + movs r0, #5 + bl PlaySE + ldr r5, _08136CB4 + subs r6, r5, #2 + lsls r4, r7, #2 + adds r4, r4, r7 + lsls r4, r4, #3 + ldr r0, _08136CB8 + adds r4, r4, r0 + ldrb r0, [r4] + adds r1, r5, #0 + adds r2, r6, #0 + bl DestroyListMenuTask + ldrh r0, [r6] + movs r1, #5 + bl sub_08136150 + bl sub_0813629C + bl sub_08136320 + bl sub_08135E60 + ldr r0, _08136CBC + ldrh r1, [r5] + ldrh r2, [r6] + bl ListMenuInit + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + ldrh r0, [r6] + ldr r1, _08136CC0 + bl sub_08136150 + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + adds r0, r7, #0 + bl sub_08136CC4 +_08136CA6: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08136CAC: .4byte 0x03002360 +_08136CB0: .4byte 0x0203CB48 +_08136CB4: .4byte 0x0203A81A +_08136CB8: .4byte 0x03005B68 +_08136CBC: .4byte 0x03006050 +_08136CC0: .4byte 0x00001005 + thumb_func_end sub_08136C30 + + thumb_func_start sub_08136CC4 +sub_08136CC4: @ 0x08136CC4 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0xa + movs r1, #0 + bl ClearDialogWindowAndFrameToTransparent + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + bl sub_081363FC + ldr r1, _08136CF4 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08136CF8 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08136CF4: .4byte 0x03005B60 +_08136CF8: .4byte 0x08136609 + thumb_func_end sub_08136CC4 + + thumb_func_start sub_08136CFC +sub_08136CFC: @ 0x08136CFC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r0, _08136D68 + bl GetNature + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _08136D6C + ldr r7, _08136D70 + ldrh r2, [r7] + lsls r2, r2, #3 + ldr r6, _08136D74 + adds r2, r2, r6 + ldr r1, [r5] + adds r1, r1, r2 + bl sub_08137054 + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r0, _08136D78 + ldr r3, _08136D7C + ldr r2, [r5] + ldrh r1, [r7] + lsls r1, r1, #3 + adds r2, r2, r1 + adds r2, r2, r6 + ldrb r1, [r2] + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r1, [r1] + bl StringCopy + ldrb r0, [r7] + bl sub_08136FD8 + ldr r1, [r5] + ldrh r0, [r7] + lsls r0, r0, #3 + adds r1, r1, r0 + adds r1, r1, r6 + ldrb r0, [r1] + lsls r0, r0, #8 + strh r0, [r7] + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + cmp r4, #0 + bne _08136D80 + adds r0, #1 + b _08136D8A + .align 2, 0 +_08136D68: .4byte 0x020243E8 +_08136D6C: .4byte 0x03005AEC +_08136D70: .4byte 0x0203CB48 +_08136D74: .4byte 0x00000848 +_08136D78: .4byte 0x02022C0C +_08136D7C: .4byte 0x08592078 +_08136D80: + cmp r4, #0 + ble _08136D88 + adds r0, #2 + b _08136D8A +_08136D88: + adds r0, #3 +_08136D8A: + strh r0, [r7] + mov r0, r8 + bl sub_0813652C + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08136CFC + + thumb_func_start sub_08136D9C +sub_08136D9C: @ 0x08136D9C + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r5, _08136DE8 + ldrb r0, [r5] + bl SafariZoneActivatePokeblockFeeder + ldr r0, _08136DEC + ldr r3, _08136DF0 + ldr r1, _08136DF4 + ldr r2, [r1] + ldrh r1, [r5] + lsls r1, r1, #3 + adds r2, r2, r1 + ldr r1, _08136DF8 + adds r2, r2, r1 + ldrb r1, [r2] + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r1, [r1] + bl StringCopy + ldr r1, _08136DFC + ldrh r0, [r5] + strh r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_08136FD8 + movs r0, #0 + strh r0, [r5] + adds r0, r4, #0 + bl sub_0813652C + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08136DE8: .4byte 0x0203CB48 +_08136DEC: .4byte 0x02021C40 +_08136DF0: .4byte 0x08592078 +_08136DF4: .4byte 0x03005AEC +_08136DF8: .4byte 0x00000848 +_08136DFC: .4byte 0x02037290 + thumb_func_end sub_08136D9C + + thumb_func_start sub_08136E00 +sub_08136E00: @ 0x08136E00 + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r6, _08136E44 + ldr r0, _08136E48 + ldr r5, _08136E4C + ldrh r1, [r5] + lsls r1, r1, #3 + ldr r2, _08136E50 + adds r1, r1, r2 + ldr r0, [r0] + adds r0, r0, r1 + bl GivePokeblockToContestLady + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r6] + ldr r1, _08136E54 + ldrh r0, [r5] + strh r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_08136FD8 + movs r0, #0 + strh r0, [r5] + adds r0, r4, #0 + bl sub_0813652C + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08136E44: .4byte 0x02037280 +_08136E48: .4byte 0x03005AEC +_08136E4C: .4byte 0x0203CB48 +_08136E50: .4byte 0x00000848 +_08136E54: .4byte 0x02037290 + thumb_func_end sub_08136E00 + + thumb_func_start sub_08136E58 +sub_08136E58: @ 0x08136E58 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r5, _08136E88 + adds r0, r4, r5 + ldrb r0, [r0, #2] + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + bl sub_081363FC + subs r5, #8 + adds r4, r4, r5 + ldr r0, _08136E8C + str r0, [r4] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08136E88: .4byte 0x03005B68 +_08136E8C: .4byte 0x08136609 + thumb_func_end sub_08136E58 + + thumb_func_start sub_08136E90 +sub_08136E90: @ 0x08136E90 + push {r4, lr} + lsls r0, r0, #0x18 + ldr r3, _08136EE8 + ldr r1, [r3] + lsrs r0, r0, #0x15 + adds r1, r1, r0 + ldr r2, _08136EEC + adds r1, r1, r2 + movs r2, #0 + strb r2, [r1] + ldr r1, [r3] + adds r1, r1, r0 + ldr r4, _08136EF0 + adds r1, r1, r4 + strb r2, [r1] + ldr r1, [r3] + adds r1, r1, r0 + adds r4, #1 + adds r1, r1, r4 + strb r2, [r1] + ldr r1, [r3] + adds r1, r1, r0 + adds r4, #1 + adds r1, r1, r4 + strb r2, [r1] + ldr r1, [r3] + adds r1, r1, r0 + adds r4, #1 + adds r1, r1, r4 + strb r2, [r1] + ldr r1, [r3] + adds r1, r1, r0 + adds r4, #1 + adds r1, r1, r4 + strb r2, [r1] + ldr r1, [r3] + adds r1, r1, r0 + ldr r0, _08136EF4 + adds r1, r1, r0 + strb r2, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08136EE8: .4byte 0x03005AEC +_08136EEC: .4byte 0x00000848 +_08136EF0: .4byte 0x00000849 +_08136EF4: .4byte 0x0000084E + thumb_func_end sub_08136E90 + + thumb_func_start sub_08136EF8 +sub_08136EF8: @ 0x08136EF8 + push {r4, lr} + movs r4, #0 +_08136EFC: + adds r0, r4, #0 + bl sub_08136E90 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x27 + bls _08136EFC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08136EF8 + + thumb_func_start sub_08136F14 +sub_08136F14: @ 0x08136F14 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r1, #1 + bl sub_0813700C + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r1, #1 +_08136F24: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0813700C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r5, r0 + bhs _08136F3C + adds r5, r0, #0 +_08136F3C: + adds r1, r4, #0 + cmp r1, #4 + bls _08136F24 + adds r0, r5, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08136F14 + + thumb_func_start sub_08136F4C +sub_08136F4C: @ 0x08136F4C + push {lr} + movs r1, #6 + bl sub_0813700C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x63 + bls _08136F5E + movs r0, #0x63 +_08136F5E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08136F4C + + thumb_func_start sub_08136F64 +sub_08136F64: @ 0x08136F64 + push {lr} + movs r1, #0 + ldr r0, _08136F80 + ldr r2, [r0] + ldr r3, _08136F84 +_08136F6E: + lsls r0, r1, #3 + adds r0, r2, r0 + adds r0, r0, r3 + ldrb r0, [r0] + cmp r0, #0 + bne _08136F88 + lsls r0, r1, #0x18 + asrs r0, r0, #0x18 + b _08136F96 + .align 2, 0 +_08136F80: .4byte 0x03005AEC +_08136F84: .4byte 0x00000848 +_08136F88: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x27 + bls _08136F6E + movs r0, #1 + rsbs r0, r0, #0 +_08136F96: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08136F64 + + thumb_func_start sub_08136F9C +sub_08136F9C: @ 0x08136F9C + push {r4, lr} + adds r4, r0, #0 + bl sub_08136F64 + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _08136FD0 + ldr r0, _08136FC8 + ldr r2, [r0] + lsls r0, r1, #3 + ldr r1, _08136FCC + adds r2, r2, r1 + adds r2, r2, r0 + ldr r0, [r4] + ldr r1, [r4, #4] + str r0, [r2] + str r1, [r2, #4] + movs r0, #1 + b _08136FD2 + .align 2, 0 +_08136FC8: .4byte 0x03005AEC +_08136FCC: .4byte 0x00000848 +_08136FD0: + movs r0, #0 +_08136FD2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_08136F9C + + thumb_func_start sub_08136FD8 +sub_08136FD8: @ 0x08136FD8 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _08136FFC + ldr r0, [r0] + lsls r1, r2, #3 + adds r0, r0, r1 + ldr r1, _08137000 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _08137004 + adds r0, r2, #0 + bl sub_08136E90 + movs r0, #1 + b _08137006 + .align 2, 0 +_08136FFC: .4byte 0x03005AEC +_08137000: .4byte 0x00000848 +_08137004: + movs r0, #0 +_08137006: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08136FD8 + + thumb_func_start sub_0813700C +sub_0813700C: @ 0x0813700C + push {lr} + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r2, r1, #0 + cmp r1, #0 + bne _0813701C + ldrb r0, [r0] + b _0813704E +_0813701C: + cmp r1, #1 + bne _08137024 + ldrb r0, [r0, #1] + b _0813704E +_08137024: + cmp r1, #2 + bne _0813702C + ldrb r0, [r0, #2] + b _0813704E +_0813702C: + cmp r1, #3 + bne _08137034 + ldrb r0, [r0, #3] + b _0813704E +_08137034: + cmp r1, #4 + bne _0813703C + ldrb r0, [r0, #4] + b _0813704E +_0813703C: + cmp r1, #5 + bne _08137044 + ldrb r0, [r0, #5] + b _0813704E +_08137044: + cmp r2, #6 + beq _0813704C + movs r0, #0 + b _0813704E +_0813704C: + ldrb r0, [r0, #6] +_0813704E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0813700C + + thumb_func_start sub_08137054 +sub_08137054: @ 0x08137054 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov r8, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r6, #0 + movs r4, #0 + ldr r1, _081370B0 + mov sb, r1 + lsls r1, r0, #2 + adds r7, r1, r0 +_0813706E: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + mov r0, r8 + adds r1, r5, #0 + bl sub_0813700C + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + cmp r1, #0 + ble _0813709A + adds r0, r7, r4 + add r0, sb + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + muls r1, r0, r1 + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 +_0813709A: + adds r4, r5, #0 + cmp r4, #4 + bls _0813706E + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081370B0: .4byte 0x08591FEC + thumb_func_end sub_08137054 + + thumb_func_start sub_081370B4 +sub_081370B4: @ 0x081370B4 + push {r4, lr} + adds r4, r1, #0 + movs r1, #0 + bl sub_0813700C + lsls r0, r0, #0x18 + ldr r1, _081370D4 + lsrs r0, r0, #0x16 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl StringCopy + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081370D4: .4byte 0x08592078 + thumb_func_end sub_081370B4 + + thumb_func_start sub_081370D8 +sub_081370D8: @ 0x081370D8 + push {r4, r5, r6, r7, lr} + adds r6, r1, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r4, #0 + ldr r7, _08137108 +_081370E4: + lsls r1, r4, #3 + ldr r0, _0813710C + adds r1, r1, r0 + adds r0, r5, #0 + bl sub_08137054 + lsls r0, r0, #0x10 + cmp r0, #0 + ble _08137110 + adds r0, r4, #1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r1, [r0] + adds r0, r6, #0 + bl StringCopy + movs r0, #1 + b _0813711C + .align 2, 0 +_08137108: .4byte 0x08592078 +_0813710C: .4byte 0x0859216C +_08137110: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #4 + bls _081370E4 + movs r0, #0 +_0813711C: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081370D8 + + thumb_func_start sub_08137124 +sub_08137124: @ 0x08137124 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r7, #0 + movs r6, #0 +_0813712C: + adds r1, r7, #1 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl sub_0813700C + adds r4, r0, #0 + adds r1, r6, #1 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl sub_0813700C + lsls r4, r4, #0x10 + lsls r0, r0, #0x10 + lsls r1, r6, #0x10 + cmp r4, r0 + bge _08137152 + lsrs r7, r1, #0x10 +_08137152: + movs r2, #0x80 + lsls r2, r2, #9 + adds r0, r1, r2 + lsrs r6, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _0813712C + lsls r0, r7, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08137124 + diff --git a/asm/pokeblock_feed.s b/asm/pokeblock_feed.s new file mode 100644 index 0000000..807849e --- /dev/null +++ b/asm/pokeblock_feed.s @@ -0,0 +1,2051 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start CB2_PokeblockFeed +CB2_PokeblockFeed: @ 0x08179A20 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl do_scheduled_bg_tilemap_copies_to_vram + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CB2_PokeblockFeed + + thumb_func_start VBlankCB_PokeblockFeed +VBlankCB_PokeblockFeed: @ 0x08179A3C + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end VBlankCB_PokeblockFeed + + thumb_func_start TransitionToPokeblockFeedScene +TransitionToPokeblockFeedScene: @ 0x08179A50 + push {r4, lr} + sub sp, #4 + ldr r0, _08179A70 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0xd + bls _08179A64 + b _08179C04 +_08179A64: + lsls r0, r0, #2 + ldr r1, _08179A74 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08179A70: .4byte 0x03002360 +_08179A74: .4byte 0x08179A78 +_08179A78: @ jump table + .4byte _08179AB0 @ case 0 + .4byte _08179AD8 @ case 1 + .4byte _08179AEC @ case 2 + .4byte _08179B00 @ case 3 + .4byte _08179B06 @ case 4 + .4byte _08179B18 @ case 5 + .4byte _08179B1E @ case 6 + .4byte _08179B30 @ case 7 + .4byte _08179B50 @ case 8 + .4byte _08179B68 @ case 9 + .4byte _08179B94 @ case 10 + .4byte _08179BB0 @ case 11 + .4byte _08179BB6 @ case 12 + .4byte _08179BD0 @ case 13 +_08179AB0: + ldr r4, _08179ACC + ldr r0, _08179AD0 + bl AllocZeroed + str r0, [r4] + bl SetVBlankHBlankCallbacksToNull + bl clear_scheduled_bg_copies_to_vram + ldr r1, _08179AD4 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _08179BF2 + .align 2, 0 +_08179ACC: .4byte 0x0203B9E4 +_08179AD0: .4byte 0x00001084 +_08179AD4: .4byte 0x03002360 +_08179AD8: + bl ResetPaletteFade + ldr r2, _08179AE8 + ldrb r0, [r2, #8] + movs r1, #0x80 + orrs r0, r1 + b _08179BE8 + .align 2, 0 +_08179AE8: .4byte 0x02037C74 +_08179AEC: + bl ResetSpriteData + ldr r1, _08179AFC + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _08179BF2 + .align 2, 0 +_08179AFC: .4byte 0x03002360 +_08179B00: + bl FreeAllSpritePalettes + b _08179BEA +_08179B06: + bl AllocateMonSpritesGfx + ldr r1, _08179B14 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _08179BF2 + .align 2, 0 +_08179B14: .4byte 0x03002360 +_08179B18: + bl HandleInitBackgrounds + b _08179BEA +_08179B1E: + bl HandleInitWindows + ldr r1, _08179B2C + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _08179BF2 + .align 2, 0 +_08179B2C: .4byte 0x03002360 +_08179B30: + ldr r0, _08179B48 + ldrb r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08179B4C + adds r0, r0, r1 + bl LoadMonAndSceneGfx + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08179C1C + b _08179BEA + .align 2, 0 +_08179B48: .4byte 0x0203B968 +_08179B4C: .4byte 0x02024190 +_08179B50: + bl CreatePokeblockCaseSpriteForFeeding + ldr r1, _08179B60 + ldr r1, [r1] + ldr r2, _08179B64 + adds r1, r1, r2 + strb r0, [r1] + b _08179BEA + .align 2, 0 +_08179B60: .4byte 0x0203B9E4 +_08179B64: .4byte 0x0000105E +_08179B68: + ldr r0, _08179B84 + ldrb r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08179B88 + adds r0, r0, r1 + bl CreateMonSprite + ldr r1, _08179B8C + ldr r1, [r1] + ldr r2, _08179B90 + adds r1, r1, r2 + strb r0, [r1] + b _08179BEA + .align 2, 0 +_08179B84: .4byte 0x0203B968 +_08179B88: .4byte 0x02024190 +_08179B8C: .4byte 0x0203B9E4 +_08179B90: .4byte 0x0000105D +_08179B94: + movs r0, #0 + movs r1, #1 + movs r2, #1 + movs r3, #0xe + bl DrawStdFrameWithCustomTileAndPalette + ldr r1, _08179BAC + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _08179BF2 + .align 2, 0 +_08179BAC: .4byte 0x03002360 +_08179BB0: + bl LaunchPokeblockFeedTask + b _08179BEA +_08179BB6: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + ldr r1, _08179BCC + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _08179BF2 + .align 2, 0 +_08179BCC: .4byte 0x03002360 +_08179BD0: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r2, _08179BFC + ldrb r1, [r2, #8] + movs r0, #0x7f + ands r0, r1 +_08179BE8: + strb r0, [r2, #8] +_08179BEA: + ldr r1, _08179C00 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 +_08179BF2: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _08179C1C + .align 2, 0 +_08179BFC: .4byte 0x02037C74 +_08179C00: .4byte 0x03002360 +_08179C04: + ldr r0, _08179C14 + bl SetVBlankCallback + ldr r0, _08179C18 + bl SetMainCallback2 + movs r0, #1 + b _08179C1E + .align 2, 0 +_08179C14: .4byte 0x08179A3D +_08179C18: .4byte 0x08179A21 +_08179C1C: + movs r0, #0 +_08179C1E: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TransitionToPokeblockFeedScene + + thumb_func_start CB2_PreparePokeblockFeedScene +CB2_PreparePokeblockFeedScene: @ 0x08179C28 + push {lr} +_08179C2A: + bl sub_081221F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08179C4E + bl TransitionToPokeblockFeedScene + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08179C4E + bl sub_081221B8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08179C2A +_08179C4E: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CB2_PreparePokeblockFeedScene + + thumb_func_start HandleInitBackgrounds +HandleInitBackgrounds: @ 0x08179C54 + push {lr} + bl ResetVramOamAndBgCntRegs + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _08179CA4 + movs r0, #0 + movs r2, #2 + bl InitBgsFromTemplates + ldr r0, _08179CA8 + ldr r1, [r0] + adds r1, #0x48 + movs r0, #1 + bl SetBgTilemapBuffer + bl ResetAllBgsCoordinates + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 +_08179CA4: .4byte 0x085CD9F0 +_08179CA8: .4byte 0x0203B9E4 + thumb_func_end HandleInitBackgrounds + + thumb_func_start LoadMonAndSceneGfx +LoadMonAndSceneGfx: @ 0x08179CAC + push {r4, r5, r6, lr} + sub sp, #4 + adds r6, r0, #0 + ldr r0, _08179CD0 + ldr r0, [r0] + ldr r1, _08179CD4 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #8 + bls _08179CC4 + b _08179E58 +_08179CC4: + lsls r0, r0, #2 + ldr r1, _08179CD8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08179CD0: .4byte 0x0203B9E4 +_08179CD4: .4byte 0x0000107E +_08179CD8: .4byte 0x08179CDC +_08179CDC: @ jump table + .4byte _08179D00 @ case 0 + .4byte _08179D3C @ case 1 + .4byte _08179D7C @ case 2 + .4byte _08179D90 @ case 3 + .4byte _08179DA4 @ case 4 + .4byte _08179DB8 @ case 5 + .4byte _08179DD8 @ case 6 + .4byte _08179DFC @ case 7 + .4byte _08179E30 @ case 8 +_08179D00: + adds r0, r6, #0 + movs r1, #0x41 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r6, #0 + movs r1, #0 + bl GetMonData + adds r4, r0, #0 + lsls r0, r5, #3 + ldr r1, _08179D30 + adds r0, r0, r1 + ldr r1, _08179D34 + ldr r1, [r1] + ldr r1, [r1, #8] + adds r2, r5, #0 + adds r3, r4, #0 + bl HandleLoadSpecialPokePic_2 + ldr r0, _08179D38 + ldr r1, [r0] + b _08179E16 + .align 2, 0 +_08179D30: .4byte 0x082DDA1C +_08179D34: .4byte 0x02024178 +_08179D38: .4byte 0x0203B9E4 +_08179D3C: + adds r0, r6, #0 + movs r1, #0x41 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r6, #0 + movs r1, #0 + bl GetMonData + adds r4, r0, #0 + adds r0, r6, #0 + movs r1, #1 + bl GetMonData + adds r1, r0, #0 + adds r0, r5, #0 + adds r2, r4, #0 + bl GetMonSpritePalStructFromOtIdPersonality + adds r4, r0, #0 + bl LoadCompressedSpritePalette + ldrh r0, [r4, #4] + movs r1, #1 + bl SetMultiuseSpriteTemplateToPokemon + ldr r0, _08179D78 + ldr r1, [r0] + b _08179E16 + .align 2, 0 +_08179D78: .4byte 0x0203B9E4 +_08179D7C: + ldr r0, _08179D88 + bl LoadCompressedSpriteSheet + ldr r0, _08179D8C + ldr r1, [r0] + b _08179E16 + .align 2, 0 +_08179D88: .4byte 0x08592140 +_08179D8C: .4byte 0x0203B9E4 +_08179D90: + ldr r0, _08179D9C + bl LoadCompressedSpritePalette + ldr r0, _08179DA0 + ldr r1, [r0] + b _08179E16 + .align 2, 0 +_08179D9C: .4byte 0x08592148 +_08179DA0: .4byte 0x0203B9E4 +_08179DA4: + ldr r0, _08179DB0 + bl LoadCompressedSpriteSheet + ldr r0, _08179DB4 + ldr r1, [r0] + b _08179E16 + .align 2, 0 +_08179DB0: .4byte 0x085CDB40 +_08179DB4: .4byte 0x0203B9E4 +_08179DB8: + ldr r0, _08179DCC + ldrb r0, [r0] + bl SetPokeblockSpritePal + ldr r0, _08179DD0 + bl LoadCompressedSpritePalette + ldr r0, _08179DD4 + ldr r1, [r0] + b _08179E16 + .align 2, 0 +_08179DCC: .4byte 0x0203CB48 +_08179DD0: .4byte 0x0203B9E8 +_08179DD4: .4byte 0x0203B9E4 +_08179DD8: + bl reset_temp_tile_data_buffers + ldr r1, _08179DF4 + movs r0, #0 + str r0, [sp] + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + ldr r0, _08179DF8 + ldr r1, [r0] + b _08179E16 + .align 2, 0 +_08179DF4: .4byte 0x08D7C4E4 +_08179DF8: .4byte 0x0203B9E4 +_08179DFC: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08179E58 + ldr r0, _08179E24 + ldr r4, _08179E28 + ldr r1, [r4] + adds r1, #0x48 + bl LZDecompressVram + ldr r1, [r4] +_08179E16: + ldr r0, _08179E2C + adds r1, r1, r0 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _08179E58 + .align 2, 0 +_08179E24: .4byte 0x08D9BC90 +_08179E28: .4byte 0x0203B9E4 +_08179E2C: .4byte 0x0000107E +_08179E30: + ldr r0, _08179E4C + movs r1, #0x20 + movs r2, #0x60 + bl LoadCompressedPalette + ldr r0, _08179E50 + ldr r0, [r0] + ldr r1, _08179E54 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0] + movs r0, #1 + b _08179E5A + .align 2, 0 +_08179E4C: .4byte 0x08D7CA90 +_08179E50: .4byte 0x0203B9E4 +_08179E54: .4byte 0x0000107E +_08179E58: + movs r0, #0 +_08179E5A: + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end LoadMonAndSceneGfx + + thumb_func_start HandleInitWindows +HandleInitWindows: @ 0x08179E64 + push {lr} + ldr r0, _08179E9C + bl InitWindows + bl DeactivateAllTextPrinters + movs r0, #0 + movs r1, #1 + movs r2, #0xe0 + bl LoadUserWindowBorderGfx + ldr r0, _08179EA0 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + movs r0, #0 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #0 + bl PutWindowTilemap + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + pop {r0} + bx r0 + .align 2, 0 +_08179E9C: .4byte 0x085CD9F8 +_08179EA0: .4byte 0x085D7B04 + thumb_func_end HandleInitWindows + + thumb_func_start SetPokeblockSpritePal +SetPokeblockSpritePal: @ 0x08179EA4 + push {lr} + lsls r0, r0, #0x18 + ldr r1, _08179ED4 + lsrs r0, r0, #0x15 + ldr r2, _08179ED8 + adds r0, r0, r2 + ldr r1, [r1] + adds r1, r1, r0 + adds r0, r1, #0 + movs r1, #0 + bl sub_0813700C + lsls r0, r0, #0x18 + ldr r2, _08179EDC + ldr r1, _08179EE0 + lsrs r0, r0, #0x16 + subs r0, #4 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r2] + ldr r0, _08179EE4 + strh r0, [r2, #4] + pop {r0} + bx r0 + .align 2, 0 +_08179ED4: .4byte 0x03005AEC +_08179ED8: .4byte 0x00000848 +_08179EDC: .4byte 0x0203B9E8 +_08179EE0: .4byte 0x085CDA08 +_08179EE4: .4byte 0x000039E2 + thumb_func_end SetPokeblockSpritePal + + thumb_func_start Task_HandlePokeblockFeed +Task_HandlePokeblockFeed: @ 0x08179EE8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _08179F20 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08179EFC + b _0817A00C +_08179EFC: + ldr r0, _08179F24 + lsls r2, r4, #2 + adds r1, r2, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #8 + ldrsh r3, [r1, r0] + ldr r0, _08179F28 + adds r5, r2, #0 + cmp r3, r0 + beq _08179F80 + cmp r3, r0 + bgt _08179F2C + cmp r3, #0 + beq _08179F40 + cmp r3, #0xff + beq _08179F64 + b _08179FBC + .align 2, 0 +_08179F20: .4byte 0x02037C74 +_08179F24: .4byte 0x03005B60 +_08179F28: .4byte 0x0000010D +_08179F2C: + ldr r0, _08179F3C + cmp r3, r0 + beq _08179F98 + adds r0, #0x10 + cmp r3, r0 + beq _08179FB0 + b _08179FBC + .align 2, 0 +_08179F3C: .4byte 0x00000119 +_08179F40: + ldr r0, _08179F58 + ldr r1, [r0] + ldr r2, _08179F5C + adds r1, r1, r2 + strb r3, [r1] + ldr r0, [r0] + ldr r1, _08179F60 + adds r0, r0, r1 + strh r3, [r0] + bl sub_0817A484 + b _08179FBC + .align 2, 0 +_08179F58: .4byte 0x0203B9E4 +_08179F5C: .4byte 0x00001050 +_08179F60: .4byte 0x00001058 +_08179F64: + ldr r0, _08179F78 + ldr r0, [r0] + ldr r2, _08179F7C + adds r0, r0, r2 + ldrb r0, [r0] + ldrb r1, [r1, #0xa] + bl DoPokeblockCaseThrowEffect + b _08179FBC + .align 2, 0 +_08179F78: .4byte 0x0203B9E4 +_08179F7C: .4byte 0x0000105E +_08179F80: + bl CreatePokeblockSprite + ldr r1, _08179F90 + ldr r1, [r1] + ldr r2, _08179F94 + adds r1, r1, r2 + strb r0, [r1] + b _08179FBC + .align 2, 0 +_08179F90: .4byte 0x0203B9E4 +_08179F94: .4byte 0x0000105F +_08179F98: + ldr r0, _08179FA8 + ldr r0, [r0] + ldr r1, _08179FAC + adds r0, r0, r1 + ldrb r0, [r0] + bl PrepareMonToMoveToPokeblock + b _08179FBC + .align 2, 0 +_08179FA8: .4byte 0x0203B9E4 +_08179FAC: .4byte 0x0000105D +_08179FB0: + ldr r0, _08179FB8 + str r0, [r1] + b _0817A00C + .align 2, 0 +_08179FB8: .4byte 0x0817A07D +_08179FBC: + ldr r0, _08179FD8 + ldr r0, [r0] + ldr r2, _08179FDC + adds r1, r0, r2 + subs r2, #2 + adds r0, r0, r2 + ldrh r1, [r1] + ldrh r0, [r0] + cmp r1, r0 + bhs _08179FE0 + bl sub_0817A4EC + b _08179FF0 + .align 2, 0 +_08179FD8: .4byte 0x0203B9E4 +_08179FDC: .4byte 0x00001058 +_08179FE0: + cmp r1, r0 + bne _08179FF0 + ldr r0, _0817A014 + adds r1, r5, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0xfe + strh r0, [r1, #8] +_08179FF0: + ldr r0, _0817A018 + ldr r1, [r0] + ldr r0, _0817A01C + adds r1, r1, r0 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + ldr r0, _0817A014 + adds r1, r5, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] +_0817A00C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0817A014: .4byte 0x03005B60 +_0817A018: .4byte 0x0203B9E4 +_0817A01C: .4byte 0x00001058 + thumb_func_end Task_HandlePokeblockFeed + + thumb_func_start LaunchPokeblockFeedTask +LaunchPokeblockFeedTask: @ 0x0817A020 + push {lr} + ldr r0, _0817A044 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0817A048 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r0, #0 + strh r0, [r1, #8] + movs r0, #1 + strh r0, [r1, #0xa] + pop {r0} + bx r0 + .align 2, 0 +_0817A044: .4byte 0x08179EE9 +_0817A048: .4byte 0x03005B60 + thumb_func_end LaunchPokeblockFeedTask + + thumb_func_start Task_WaitForAtePokeblockText +Task_WaitForAtePokeblockText: @ 0x0817A04C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #0 + bl RunTextPrintersRetIsActive + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + beq _0817A06E + ldr r0, _0817A074 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _0817A078 + str r0, [r1] +_0817A06E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0817A074: .4byte 0x03005B60 +_0817A078: .4byte 0x0817A1D9 + thumb_func_end Task_WaitForAtePokeblockText + + thumb_func_start Task_HandleMonAtePokeblock +Task_HandleMonAtePokeblock: @ 0x0817A07C + push {r4, r5, r6, r7, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _0817A0D8 + ldrb r1, [r0] + movs r0, #0x64 + adds r5, r1, #0 + muls r5, r0, r5 + ldr r0, _0817A0DC + adds r5, r5, r0 + ldr r1, _0817A0E0 + ldr r0, _0817A0E4 + ldrh r0, [r0] + lsls r0, r0, #3 + ldr r2, _0817A0E8 + adds r0, r0, r2 + ldr r4, [r1] + adds r4, r4, r0 + adds r0, r5, #0 + bl GetNature + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r4, #0 + bl sub_08137054 + ldr r6, _0817A0EC + strh r0, [r6] + ldr r1, _0817A0F0 + adds r0, r5, #0 + bl GetMonNickname + ldr r1, _0817A0F4 + adds r0, r4, #0 + bl sub_081370B4 + movs r1, #0 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _0817A100 + ldr r0, _0817A0F8 + ldr r1, _0817A0FC + bl StringExpandPlaceholders + b _0817A120 + .align 2, 0 +_0817A0D8: .4byte 0x0203B968 +_0817A0DC: .4byte 0x02024190 +_0817A0E0: .4byte 0x03005AEC +_0817A0E4: .4byte 0x0203CB48 +_0817A0E8: .4byte 0x00000848 +_0817A0EC: .4byte 0x0203B96A +_0817A0F0: .4byte 0x02021C40 +_0817A0F4: .4byte 0x02021C54 +_0817A0F8: .4byte 0x02021C7C +_0817A0FC: .4byte 0x085C9885 +_0817A100: + cmp r0, #0 + ble _0817A118 + ldr r0, _0817A110 + ldr r1, _0817A114 + bl StringExpandPlaceholders + b _0817A120 + .align 2, 0 +_0817A110: .4byte 0x02021C7C +_0817A114: .4byte 0x085C9894 +_0817A118: + ldr r0, _0817A164 + ldr r1, _0817A168 + bl StringExpandPlaceholders +_0817A120: + ldr r2, _0817A16C + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + bl GetPlayerTextSpeedDelay + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r2, _0817A164 + movs r0, #0 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + movs r0, #3 + str r0, [sp, #0xc] + movs r0, #0 + movs r1, #1 + bl AddTextPrinterParameterized2 + ldr r1, _0817A170 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0817A174 + str r1, [r0] + add sp, #0x10 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0817A164: .4byte 0x02021C7C +_0817A168: .4byte 0x085C98A9 +_0817A16C: .4byte 0x030030B4 +_0817A170: .4byte 0x03005B60 +_0817A174: .4byte 0x0817A04D + thumb_func_end Task_HandleMonAtePokeblock + + thumb_func_start Task_ReturnAfterPaletteFade +Task_ReturnAfterPaletteFade: @ 0x0817A178 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0817A1C4 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0817A1BC + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r0, _0817A1C8 + ldr r1, _0817A1CC + movs r2, #0x80 + lsls r2, r2, #1 + bl m4aMPlayVolumeControl + ldr r0, _0817A1D0 + ldr r0, [r0, #8] + bl SetMainCallback2 + adds r0, r4, #0 + bl DestroyTask + bl FreeAllWindowBuffers + ldr r0, _0817A1D4 + ldr r0, [r0] + bl Free + bl FreeMonSpritesGfx +_0817A1BC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0817A1C4: .4byte 0x02037C74 +_0817A1C8: .4byte 0x030074D0 +_0817A1CC: .4byte 0x0000FFFF +_0817A1D0: .4byte 0x03002360 +_0817A1D4: .4byte 0x0203B9E4 + thumb_func_end Task_ReturnAfterPaletteFade + + thumb_func_start Task_PaletteFadeToReturn +Task_PaletteFadeToReturn: @ 0x0817A1D8 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _0817A208 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0817A20C + str r1, [r0] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0817A208: .4byte 0x03005B60 +_0817A20C: .4byte 0x0817A179 + thumb_func_end Task_PaletteFadeToReturn + + thumb_func_start CreateMonSprite +CreateMonSprite: @ 0x0817A210 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + movs r1, #0x41 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r0, _0817A2C8 + movs r1, #0x30 + movs r2, #0x50 + movs r3, #2 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r0, _0817A2CC + mov sb, r0 + ldr r0, [r0] + ldr r2, _0817A2D0 + adds r1, r0, r2 + strh r4, [r1] + ldr r1, _0817A2D4 + adds r0, r0, r1 + mov r2, r8 + strb r2, [r0] + adds r0, r5, #0 + bl GetNature + mov r2, sb + ldr r1, [r2] + ldr r2, _0817A2D8 + adds r1, r1, r2 + strb r0, [r1] + ldr r7, _0817A2DC + mov r1, r8 + lsls r0, r1, #4 + add r0, r8 + lsls r5, r0, #2 + adds r6, r5, r7 + strh r4, [r6, #0x32] + adds r0, r7, #0 + adds r0, #0x1c + adds r0, r5, r0 + ldr r1, _0817A2E0 + str r1, [r0] + mov r2, sb + ldr r0, [r2] + ldr r1, _0817A2E4 + adds r0, r0, r1 + movs r1, #1 + strb r1, [r0] + adds r0, r4, #0 + bl IsMonSpriteNotFlipped + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0817A2BA + adds r0, r7, #0 + adds r0, #0x10 + adds r0, r5, r0 + ldr r1, _0817A2E8 + str r1, [r0] + ldrb r3, [r6, #1] + movs r0, #3 + orrs r3, r0 + strb r3, [r6, #1] + lsrs r1, r3, #6 + ldrb r2, [r6, #3] + lsrs r2, r2, #6 + lsls r3, r3, #0x1e + lsrs r3, r3, #0x1e + adds r0, r6, #0 + bl CalcCenterToCornerVec + mov r2, sb + ldr r0, [r2] + ldr r1, _0817A2E4 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] +_0817A2BA: + mov r0, r8 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0817A2C8: .4byte 0x02024640 +_0817A2CC: .4byte 0x0203B9E4 +_0817A2D0: .4byte 0x00001054 +_0817A2D4: .4byte 0x0000105B +_0817A2D8: .4byte 0x0000105A +_0817A2DC: .4byte 0x020205AC +_0817A2E0: .4byte 0x08007141 +_0817A2E4: .4byte 0x00001053 +_0817A2E8: .4byte 0x085CDA50 + thumb_func_end CreateMonSprite + + thumb_func_start PrepareMonToMoveToPokeblock +PrepareMonToMoveToPokeblock: @ 0x0817A2EC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _0817A314 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r2, r1, r3 + movs r0, #0x30 + strh r0, [r2, #0x20] + movs r0, #0x50 + strh r0, [r2, #0x22] + ldr r0, _0817A318 + strh r0, [r2, #0x2e] + movs r0, #1 + strh r0, [r2, #0x30] + adds r3, #0x1c + adds r1, r1, r3 + ldr r0, _0817A31C + str r0, [r1] + bx lr + .align 2, 0 +_0817A314: .4byte 0x020205AC +_0817A318: .4byte 0x0000FFF8 +_0817A31C: .4byte 0x0817A321 + thumb_func_end PrepareMonToMoveToPokeblock + + thumb_func_start sub_0817A320 +sub_0817A320: @ 0x0817A320 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x20] + adds r0, #4 + strh r0, [r4, #0x20] + ldrh r0, [r4, #0x2e] + ldrh r2, [r4, #0x22] + adds r1, r0, r2 + strh r1, [r4, #0x22] + ldrh r1, [r4, #0x30] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0817A346 + ldrh r0, [r4, #0x32] + movs r1, #0 + bl PlayCry1 +_0817A346: + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #9 + bne _0817A352 + ldr r0, _0817A358 + str r0, [r4, #0x1c] +_0817A352: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0817A358: .4byte 0x08007141 + thumb_func_end sub_0817A320 + + thumb_func_start CreatePokeblockCaseSpriteForFeeding +CreatePokeblockCaseSpriteForFeeding: @ 0x0817A35C + push {r4, r5, lr} + movs r0, #0xbc + movs r1, #0x64 + movs r2, #2 + bl sub_08136484 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r5, _0817A3A4 + lsls r3, r4, #4 + adds r3, r3, r4 + lsls r3, r3, #2 + adds r0, r3, r5 + ldrb r2, [r0, #1] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #1 + orrs r1, r2 + strb r1, [r0, #1] + adds r1, r5, #0 + adds r1, #0x10 + adds r1, r3, r1 + ldr r2, _0817A3A8 + str r2, [r1] + adds r5, #0x1c + adds r3, r3, r5 + ldr r1, _0817A3AC + str r1, [r3] + bl InitSpriteAffineAnim + adds r0, r4, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0817A3A4: .4byte 0x020205AC +_0817A3A8: .4byte 0x085CDB04 +_0817A3AC: .4byte 0x08007141 + thumb_func_end CreatePokeblockCaseSpriteForFeeding + + thumb_func_start DoPokeblockCaseThrowEffect +DoPokeblockCaseThrowEffect: @ 0x0817A3B0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r1, #0 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _0817A3F0 + mov r8, r0 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r6, r0, #2 + mov r0, r8 + adds r4, r6, r0 + ldrb r0, [r4, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + ldrb r0, [r4, #1] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #1] + cmp r5, #0 + bne _0817A3F8 + mov r0, r8 + adds r0, #0x10 + adds r0, r6, r0 + ldr r1, _0817A3F4 + b _0817A400 + .align 2, 0 +_0817A3F0: .4byte 0x020205AC +_0817A3F4: .4byte 0x085CDB08 +_0817A3F8: + mov r0, r8 + adds r0, #0x10 + adds r0, r6, r0 + ldr r1, _0817A41C +_0817A400: + str r1, [r0] + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + ldr r1, _0817A420 + adds r0, r0, r1 + bl InitSpriteAffineAnim + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0817A41C: .4byte 0x085CDB0C +_0817A420: .4byte 0x020205AC + thumb_func_end DoPokeblockCaseThrowEffect + + thumb_func_start CreatePokeblockSprite +CreatePokeblockSprite: @ 0x0817A424 + push {lr} + ldr r0, _0817A44C + movs r1, #0xae + movs r2, #0x54 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0817A450 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r2, _0817A454 + strh r2, [r1, #0x2e] + movs r2, #1 + strh r2, [r1, #0x30] + pop {r1} + bx r1 + .align 2, 0 +_0817A44C: .4byte 0x085CDB48 +_0817A450: .4byte 0x020205AC +_0817A454: .4byte 0x0000FFF4 + thumb_func_end CreatePokeblockSprite + + thumb_func_start SpriteCB_ThrownPokeblock +SpriteCB_ThrownPokeblock: @ 0x0817A458 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x20] + subs r0, #4 + strh r0, [r2, #0x20] + ldrh r0, [r2, #0x2e] + ldrh r3, [r2, #0x22] + adds r1, r0, r3 + strh r1, [r2, #0x22] + ldrh r1, [r2, #0x30] + adds r0, r0, r1 + strh r0, [r2, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xa + bne _0817A47E + adds r0, r2, #0 + bl DestroySprite +_0817A47E: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SpriteCB_ThrownPokeblock + + thumb_func_start sub_0817A484 +sub_0817A484: @ 0x0817A484 + push {r4, r5, r6, r7, lr} + ldr r0, _0817A4D8 + ldr r1, [r0] + ldr r0, _0817A4DC + adds r3, r1, r0 + movs r0, #1 + strh r0, [r3] + ldr r2, _0817A4E0 + ldr r7, _0817A4E4 + adds r1, r1, r7 + ldrb r0, [r1] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrb r2, [r0] + movs r4, #0 + ldr r5, _0817A4E8 + adds r6, r5, #0 + subs r6, #0xa +_0817A4A8: + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r0, r1, r6 + ldrh r0, [r0] + ldrh r7, [r3] + adds r0, r0, r7 + strh r0, [r3] + adds r1, r1, r5 + movs r7, #0 + ldrsh r0, [r1, r7] + cmp r0, #1 + beq _0817A4D2 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r4, #7 + bls _0817A4A8 +_0817A4D2: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0817A4D8: .4byte 0x0203B9E4 +_0817A4DC: .4byte 0x00001056 +_0817A4E0: .4byte 0x085CD35C +_0817A4E4: .4byte 0x0000105A +_0817A4E8: .4byte 0x085CD3A0 + thumb_func_end sub_0817A484 + + thumb_func_start sub_0817A4EC +sub_0817A4EC: @ 0x0817A4EC + push {r4, lr} + ldr r0, _0817A508 + ldr r4, [r0] + ldr r1, _0817A50C + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #0x5a + bls _0817A4FE + b _0817A7C6 +_0817A4FE: + lsls r0, r0, #2 + ldr r1, _0817A510 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0817A508: .4byte 0x0203B9E4 +_0817A50C: .4byte 0x00001050 +_0817A510: .4byte 0x0817A514 +_0817A514: @ jump table + .4byte _0817A680 @ case 0 + .4byte _0817A7C6 @ case 1 + .4byte _0817A7C6 @ case 2 + .4byte _0817A7C6 @ case 3 + .4byte _0817A7C6 @ case 4 + .4byte _0817A7C6 @ case 5 + .4byte _0817A7C6 @ case 6 + .4byte _0817A7C6 @ case 7 + .4byte _0817A7C6 @ case 8 + .4byte _0817A7C6 @ case 9 + .4byte _0817A6D0 @ case 10 + .4byte _0817A7C6 @ case 11 + .4byte _0817A7C6 @ case 12 + .4byte _0817A7C6 @ case 13 + .4byte _0817A7C6 @ case 14 + .4byte _0817A7C6 @ case 15 + .4byte _0817A7C6 @ case 16 + .4byte _0817A7C6 @ case 17 + .4byte _0817A7C6 @ case 18 + .4byte _0817A7C6 @ case 19 + .4byte _0817A7C6 @ case 20 + .4byte _0817A7C6 @ case 21 + .4byte _0817A7C6 @ case 22 + .4byte _0817A7C6 @ case 23 + .4byte _0817A7C6 @ case 24 + .4byte _0817A7C6 @ case 25 + .4byte _0817A7C6 @ case 26 + .4byte _0817A7C6 @ case 27 + .4byte _0817A7C6 @ case 28 + .4byte _0817A7C6 @ case 29 + .4byte _0817A7C6 @ case 30 + .4byte _0817A7C6 @ case 31 + .4byte _0817A7C6 @ case 32 + .4byte _0817A7C6 @ case 33 + .4byte _0817A7C6 @ case 34 + .4byte _0817A7C6 @ case 35 + .4byte _0817A7C6 @ case 36 + .4byte _0817A7C6 @ case 37 + .4byte _0817A7C6 @ case 38 + .4byte _0817A7C6 @ case 39 + .4byte _0817A7C6 @ case 40 + .4byte _0817A7C6 @ case 41 + .4byte _0817A7C6 @ case 42 + .4byte _0817A7C6 @ case 43 + .4byte _0817A7C6 @ case 44 + .4byte _0817A7C6 @ case 45 + .4byte _0817A7C6 @ case 46 + .4byte _0817A7C6 @ case 47 + .4byte _0817A7C6 @ case 48 + .4byte _0817A7C6 @ case 49 + .4byte _0817A710 @ case 50 + .4byte _0817A7C6 @ case 51 + .4byte _0817A7C6 @ case 52 + .4byte _0817A7C6 @ case 53 + .4byte _0817A7C6 @ case 54 + .4byte _0817A7C6 @ case 55 + .4byte _0817A7C6 @ case 56 + .4byte _0817A7C6 @ case 57 + .4byte _0817A7C6 @ case 58 + .4byte _0817A7C6 @ case 59 + .4byte _0817A75A @ case 60 + .4byte _0817A7C6 @ case 61 + .4byte _0817A7C6 @ case 62 + .4byte _0817A7C6 @ case 63 + .4byte _0817A7C6 @ case 64 + .4byte _0817A7C6 @ case 65 + .4byte _0817A7C6 @ case 66 + .4byte _0817A7C6 @ case 67 + .4byte _0817A7C6 @ case 68 + .4byte _0817A7C6 @ case 69 + .4byte _0817A7B4 @ case 70 + .4byte _0817A7C6 @ case 71 + .4byte _0817A7C6 @ case 72 + .4byte _0817A7C6 @ case 73 + .4byte _0817A7C6 @ case 74 + .4byte _0817A7C6 @ case 75 + .4byte _0817A7C6 @ case 76 + .4byte _0817A7C6 @ case 77 + .4byte _0817A7C6 @ case 78 + .4byte _0817A7C6 @ case 79 + .4byte _0817A7C6 @ case 80 + .4byte _0817A7C6 @ case 81 + .4byte _0817A7C6 @ case 82 + .4byte _0817A7C6 @ case 83 + .4byte _0817A7C6 @ case 84 + .4byte _0817A7C6 @ case 85 + .4byte _0817A7C6 @ case 86 + .4byte _0817A7C6 @ case 87 + .4byte _0817A7C6 @ case 88 + .4byte _0817A7C6 @ case 89 + .4byte _0817A7C6 @ case 90 +_0817A680: + ldr r1, _0817A6B8 + ldr r2, _0817A6BC + adds r0, r4, r2 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrb r1, [r0] + ldr r3, _0817A6C0 + adds r0, r4, r3 + strb r1, [r0] + ldr r1, _0817A6C4 + adds r0, r4, r1 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _0817A6C8 + adds r1, r1, r0 + adds r0, r4, #0 + stm r0!, {r1} + movs r2, #0x44 + bl memcpy + ldr r2, _0817A6CC + adds r1, r4, r2 + movs r0, #0xa + strb r0, [r1] + b _0817A7C6 + .align 2, 0 +_0817A6B8: .4byte 0x085CD35C +_0817A6BC: .4byte 0x0000105A +_0817A6C0: .4byte 0x00001051 +_0817A6C4: .4byte 0x0000105B +_0817A6C8: .4byte 0x020205AC +_0817A6CC: .4byte 0x00001050 +_0817A6D0: + bl sub_0817A7D4 + ldr r1, _0817A73C + ldr r3, _0817A740 + adds r0, r4, r3 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _0817A708 + ldr r2, [r4] + ldrb r0, [r2, #1] + movs r1, #3 + orrs r0, r1 + strb r0, [r2, #1] + ldr r2, [r4] + ldrb r1, [r2, #3] + movs r0, #0x3f + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #3] + ldr r0, [r4] + ldr r1, _0817A744 + str r1, [r0, #0x10] + bl InitSpriteAffineAnim +_0817A708: + ldr r0, _0817A748 + adds r1, r4, r0 + movs r0, #0x32 + strb r0, [r1] +_0817A710: + ldr r1, _0817A73C + ldr r2, _0817A740 + adds r0, r4, r2 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r1, #1 + adds r2, r0, r1 + ldrb r1, [r2] + cmp r1, #0 + beq _0817A780 + ldr r3, _0817A74C + adds r0, r4, r3 + ldrb r0, [r0] + cmp r0, #0 + bne _0817A750 + ldr r0, [r4] + adds r1, #0xa + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl StartSpriteAffineAnim + b _0817A780 + .align 2, 0 +_0817A73C: .4byte 0x085CD35C +_0817A740: .4byte 0x0000105A +_0817A744: .4byte 0x085CD99C +_0817A748: .4byte 0x00001050 +_0817A74C: .4byte 0x00001053 +_0817A750: + ldr r0, [r4] + ldrb r1, [r2] + bl StartSpriteAffineAnim + b _0817A780 +_0817A75A: + bl sub_0817A89C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0817A7C6 + ldr r1, _0817A78C + adds r0, r4, r1 + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r0, #0 + bne _0817A798 + ldr r3, _0817A790 + adds r1, r4, r3 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + bl sub_0817A7D4 +_0817A780: + ldr r0, _0817A794 + adds r1, r4, r0 + movs r0, #0x3c + strb r0, [r1] + b _0817A7C6 + .align 2, 0 +_0817A78C: .4byte 0x00001072 +_0817A790: .4byte 0x00001051 +_0817A794: .4byte 0x00001050 +_0817A798: + ldr r0, [r4] + ldrb r0, [r0, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + ldr r2, _0817A7B0 + adds r1, r4, r2 + movs r0, #0x46 + strb r0, [r1] + b _0817A7C6 + .align 2, 0 +_0817A7B0: .4byte 0x00001050 +_0817A7B4: + bl FreeMonSpriteOamMatrix + ldr r3, _0817A7CC + adds r0, r4, r3 + movs r1, #0 + strb r1, [r0] + ldr r2, _0817A7D0 + adds r0, r4, r2 + strb r1, [r0] +_0817A7C6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0817A7CC: .4byte 0x00001051 +_0817A7D0: .4byte 0x00001050 + thumb_func_end sub_0817A4EC + + thumb_func_start sub_0817A7D4 +sub_0817A7D4: @ 0x0817A7D4 + push {r4, r5, r6, r7, lr} + ldr r0, _0817A878 + ldr r5, [r0] + movs r4, #0 + movs r0, #0x83 + lsls r0, r0, #5 + adds r7, r5, r0 + ldr r1, _0817A87C + mov ip, r1 + ldr r2, _0817A880 + adds r6, r5, r2 +_0817A7EA: + lsls r2, r4, #1 + adds r3, r7, r2 + ldrb r1, [r6] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, r2, r0 + add r2, ip + ldrh r0, [r2] + strh r0, [r3] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #9 + bls _0817A7EA + ldr r0, _0817A884 + adds r6, r5, r0 + movs r1, #0 + ldrsh r0, [r6, r1] + cmp r0, #0 + beq _0817A894 + movs r2, #0x83 + lsls r2, r2, #5 + adds r4, r5, r2 + movs r1, #0 + ldrsh r0, [r4, r1] + adds r2, #4 + adds r1, r5, r2 + movs r2, #0 + ldrsh r1, [r1, r2] + bl Sin + ldr r2, _0817A888 + adds r1, r5, r2 + strh r0, [r1] + movs r1, #0 + ldrsh r0, [r4, r1] + subs r2, #0xe + adds r1, r5, r2 + movs r2, #0 + ldrsh r1, [r1, r2] + bl Cos + ldr r2, _0817A88C + adds r1, r5, r2 + strh r0, [r1] + ldrh r0, [r6] + ldr r1, _0817A890 + adds r4, r5, r1 + strh r0, [r4] + ldr r0, [r5] + ldrh r1, [r0, #0x24] + adds r2, #4 + adds r0, r5, r2 + strh r1, [r0] + ldr r0, [r5] + ldrh r1, [r0, #0x26] + adds r2, #2 + adds r0, r5, r2 + strh r1, [r0] + bl sub_0817AA20 + ldrh r0, [r4] + strh r0, [r6] + bl sub_0817A90C + ldrh r0, [r4] + strh r0, [r6] + movs r0, #0 + b _0817A896 + .align 2, 0 +_0817A878: .4byte 0x0203B9E4 +_0817A87C: .4byte 0x085CD38E +_0817A880: .4byte 0x00001051 +_0817A884: .4byte 0x00001068 +_0817A888: .4byte 0x00001074 +_0817A88C: .4byte 0x00001076 +_0817A890: .4byte 0x00001078 +_0817A894: + movs r0, #1 +_0817A896: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_0817A7D4 + + thumb_func_start sub_0817A89C +sub_0817A89C: @ 0x0817A89C + push {r4, r5, lr} + ldr r0, _0817A8E0 + ldr r2, [r0] + ldr r1, _0817A8E4 + adds r0, r2, r1 + ldr r5, _0817A8E8 + adds r4, r2, r5 + ldrh r1, [r0] + ldrh r0, [r4] + subs r1, r1, r0 + lsls r1, r1, #0x10 + ldr r3, [r2] + lsrs r1, r1, #0xf + movs r5, #0x85 + lsls r5, r5, #4 + adds r0, r2, r5 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r3, #0x24] + ldr r3, [r2] + movs r0, #0xc5 + lsls r0, r0, #4 + adds r2, r2, r0 + adds r2, r2, r1 + ldrh r0, [r2] + strh r0, [r3, #0x26] + ldrh r0, [r4] + subs r0, #1 + strh r0, [r4] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0817A8EC + movs r0, #0 + b _0817A8EE + .align 2, 0 +_0817A8E0: .4byte 0x0203B9E4 +_0817A8E4: .4byte 0x00001078 +_0817A8E8: .4byte 0x00001068 +_0817A8EC: + movs r0, #1 +_0817A8EE: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_0817A89C + + thumb_func_start FreeMonSpriteOamMatrix +FreeMonSpriteOamMatrix: @ 0x0817A8F4 + push {lr} + ldr r0, _0817A908 + ldr r0, [r0] + ldr r0, [r0] + bl FreeSpriteOamMatrix + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0817A908: .4byte 0x0203B9E4 + thumb_func_end FreeMonSpriteOamMatrix + + thumb_func_start sub_0817A90C +sub_0817A90C: @ 0x0817A90C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + ldr r0, _0817AA0C + ldr r7, [r0] + ldr r1, _0817AA10 + adds r0, r7, r1 + ldrh r0, [r0] + mov sb, r0 + ldr r2, _0817AA14 + adds r0, r7, r2 + ldrh r0, [r0] + mov r3, sb + subs r0, r0, r3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + ldr r4, _0817AA18 + adds r1, r7, r4 + subs r2, #0xc + adds r0, r7, r2 + ldrh r0, [r0] + ldrh r1, [r1] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp] + ldr r3, _0817AA1C + adds r1, r7, r3 + subs r4, #0xc + adds r0, r7, r4 + ldrh r0, [r0] + ldrh r1, [r1] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #4] + movs r5, #0 + mov r0, r8 + subs r0, #1 + cmp r5, r0 + bge _0817A9D8 + ldr r1, [sp] + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + str r0, [sp, #8] + ldr r2, [sp, #4] + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + mov sl, r0 +_0817A976: + mov r3, sb + adds r0, r3, r5 + lsls r0, r0, #1 + movs r4, #0x85 + lsls r4, r4, #4 + adds r2, r7, r4 + adds r2, r2, r0 + ldrh r6, [r2] + ldr r3, [sp, #8] + subs r1, r6, r3 + movs r4, #0xc5 + lsls r4, r4, #4 + adds r3, r7, r4 + adds r3, r3, r0 + ldrh r4, [r3] + mov r0, sl + subs r4, r4, r0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r5, #1 + adds r0, r1, #0 + muls r0, r5, r0 + mov r1, r8 + str r2, [sp, #0xc] + str r3, [sp, #0x10] + bl __divsi3 + subs r6, r6, r0 + ldr r2, [sp, #0xc] + strh r6, [r2] + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + adds r0, r4, #0 + muls r0, r5, r0 + mov r1, r8 + bl __divsi3 + ldr r3, [sp, #0x10] + ldrh r1, [r3] + subs r1, r1, r0 + strh r1, [r3] + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + mov r0, r8 + subs r0, #1 + cmp r5, r0 + blt _0817A976 +_0817A9D8: + mov r0, sb + add r0, r8 + subs r0, #1 + lsls r0, r0, #1 + movs r2, #0x85 + lsls r2, r2, #4 + adds r1, r7, r2 + adds r1, r1, r0 + mov r3, sp + ldrh r3, [r3] + strh r3, [r1] + movs r4, #0xc5 + lsls r4, r4, #4 + adds r1, r7, r4 + adds r1, r1, r0 + mov r0, sp + ldrh r0, [r0, #4] + strh r0, [r1] + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0817AA0C: .4byte 0x0203B9E4 +_0817AA10: .4byte 0x00001070 +_0817AA14: .4byte 0x00001078 +_0817AA18: .4byte 0x0000107A +_0817AA1C: .4byte 0x0000107C + thumb_func_end sub_0817A90C + + thumb_func_start sub_0817AA20 +sub_0817AA20: @ 0x0817AA20 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r0, _0817AAE4 + ldr r6, [r0] + movs r0, #0 + str r0, [sp] + ldr r1, _0817AAE8 + adds r0, r6, r1 + ldr r2, _0817AAEC + adds r1, r6, r2 + ldrh r2, [r0] + ldrh r0, [r1] + subs r2, r2, r0 + ldr r3, _0817AAF0 + adds r0, r6, r3 + ldr r1, _0817AAF4 + adds r3, r6, r1 + ldrh r1, [r0] + ldrh r0, [r3] + subs r1, r1, r0 + ldr r3, _0817AAF8 + adds r3, r3, r6 + mov sb, r3 + movs r0, #0x83 + lsls r0, r0, #5 + adds r0, r0, r6 + mov r8, r0 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + str r2, [sp, #4] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + mov sl, r1 +_0817AA6A: + ldr r1, _0817AAFC + adds r0, r6, r1 + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r0, #0 + bge _0817AA78 + rsbs r0, r0, #0 +_0817AA78: + lsls r0, r0, #0x10 + ldr r3, _0817AB00 + adds r7, r6, r3 + lsrs r0, r0, #0x10 + ldrh r1, [r7] + adds r0, r0, r1 + lsls r4, r0, #0x10 + strh r0, [r7] + ldr r2, _0817AB04 + adds r0, r6, r2 + ldrh r2, [r0] + movs r3, #0 + ldrsh r0, [r0, r3] + cmp r0, #0 + bge _0817AA9A + movs r0, #1 + str r0, [sp] +_0817AA9A: + ldr r1, _0817AB08 + adds r0, r6, r1 + ldrh r0, [r0] + mov r3, sb + ldrh r1, [r3] + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r1, #0 + beq _0817AB70 + ldr r0, [sp] + cmp r0, #0 + bne _0817AB0C + mov r1, r8 + movs r3, #0 + ldrsh r0, [r1, r3] + lsrs r4, r4, #0x18 + adds r1, r2, r4 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl Sin + lsls r5, r5, #1 + movs r2, #0x85 + lsls r2, r2, #4 + adds r1, r6, r2 + adds r1, r1, r5 + ldr r3, [sp, #4] + adds r0, r3, r0 + strh r0, [r1] + mov r1, r8 + movs r2, #0 + ldrsh r0, [r1, r2] + ldrh r1, [r7] + adds r1, r1, r4 + b _0817AB38 + .align 2, 0 +_0817AAE4: .4byte 0x0203B9E4 +_0817AAE8: .4byte 0x0000107A +_0817AAEC: .4byte 0x00001074 +_0817AAF0: .4byte 0x0000107C +_0817AAF4: .4byte 0x00001076 +_0817AAF8: .4byte 0x00001068 +_0817AAFC: .4byte 0x0000106A +_0817AB00: .4byte 0x00001066 +_0817AB04: .4byte 0x00001064 +_0817AB08: .4byte 0x00001078 +_0817AB0C: + mov r1, r8 + movs r3, #0 + ldrsh r0, [r1, r3] + lsrs r4, r4, #0x18 + subs r1, r2, r4 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl Sin + lsls r5, r5, #1 + movs r2, #0x85 + lsls r2, r2, #4 + adds r1, r6, r2 + adds r1, r1, r5 + ldr r3, [sp, #4] + adds r0, r3, r0 + strh r0, [r1] + mov r1, r8 + movs r2, #0 + ldrsh r0, [r1, r2] + ldrh r1, [r7] + subs r1, r1, r4 +_0817AB38: + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl Cos + movs r3, #0xc5 + lsls r3, r3, #4 + adds r1, r6, r3 + adds r1, r1, r5 + add r0, sl + strh r0, [r1] + ldr r1, _0817AB6C + adds r0, r6, r1 + ldrh r0, [r0] + mov r2, r8 + ldrh r2, [r2] + adds r0, r0, r2 + movs r1, #0xff + ands r0, r1 + mov r3, r8 + strh r0, [r3] + mov r1, sb + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + b _0817AA6A + .align 2, 0 +_0817AB6C: .4byte 0x00001062 +_0817AB70: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_0817AA20 + diff --git a/asm/pokedex.s b/asm/pokedex.s new file mode 100644 index 0000000..aa3ebd5 --- /dev/null +++ b/asm/pokedex.s @@ -0,0 +1,14131 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ResetPokedex +ResetPokedex: @ 0x080BAA0C + push {r4, r5, r6, lr} + ldr r0, _080BAA78 + movs r2, #0 + strh r2, [r0] + ldr r1, _080BAA7C + movs r0, #0x40 + strb r0, [r1] + ldr r0, _080BAA80 + strb r2, [r0] + ldr r4, _080BAA84 + ldr r0, [r4] + movs r1, #0 + strb r2, [r0, #0x19] + ldr r0, [r4] + strb r2, [r0, #0x18] + ldr r0, [r4] + strb r2, [r0, #0x1a] + ldr r0, [r4] + strb r2, [r0, #0x1b] + ldr r0, [r4] + str r1, [r0, #0x1c] + str r1, [r0, #0x20] + str r1, [r0, #0x24] + bl DisableNationalPokedex + movs r1, #0 + movs r2, #0 + ldr r3, _080BAA88 + ldr r6, _080BAA8C + ldr r5, _080BAA90 +_080BAA48: + ldr r0, [r4] + adds r0, #0x28 + adds r0, r0, r1 + strb r2, [r0] + ldr r0, [r4] + adds r0, #0x5c + adds r0, r0, r1 + strb r2, [r0] + ldr r0, [r3] + adds r0, r0, r6 + adds r0, r0, r1 + strb r2, [r0] + ldr r0, [r3] + adds r0, r0, r5 + adds r0, r0, r1 + strb r2, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0x33 + bls _080BAA48 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080BAA78: .4byte 0x020397F0 +_080BAA7C: .4byte 0x020397F2 +_080BAA80: .4byte 0x03005E10 +_080BAA84: .4byte 0x03005AF0 +_080BAA88: .4byte 0x03005AEC +_080BAA8C: .4byte 0x00000988 +_080BAA90: .4byte 0x00003B24 + thumb_func_end ResetPokedex + + thumb_func_start ResetPokedexScrollPositions +ResetPokedexScrollPositions: @ 0x080BAA94 + ldr r1, _080BAAA4 + movs r0, #0 + strh r0, [r1] + ldr r1, _080BAAA8 + movs r0, #0x40 + strb r0, [r1] + bx lr + .align 2, 0 +_080BAAA4: .4byte 0x020397F0 +_080BAAA8: .4byte 0x020397F2 + thumb_func_end ResetPokedexScrollPositions + + thumb_func_start sub_080BAAAC +sub_080BAAAC: @ 0x080BAAAC + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080BAAAC + + thumb_func_start ResetPokedexView +ResetPokedexView: @ 0x080BAAC0 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + movs r3, #0 + ldr r0, _080BAC34 + adds r7, r0, #0 + movs r1, #2 + rsbs r1, r1, #0 + mov ip, r1 + movs r6, #3 + rsbs r6, r6, #0 + ldr r5, _080BAC38 +_080BAAD6: + lsls r1, r3, #2 + adds r1, r4, r1 + ldrh r0, [r1] + orrs r0, r7 + strh r0, [r1] + ldrb r2, [r1, #2] + mov r0, ip + ands r0, r2 + ands r0, r6 + strb r0, [r1, #2] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, r5 + bls _080BAAD6 + movs r2, #0xc1 + lsls r2, r2, #3 + adds r0, r4, r2 + movs r2, #0 + strh r2, [r0] + ldr r0, _080BAC3C + adds r3, r4, r0 + ldrb r1, [r3] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r3] + ldr r1, _080BAC40 + adds r0, r4, r1 + strh r2, [r0] + ldr r3, _080BAC44 + adds r0, r4, r3 + strh r2, [r0] + adds r1, #4 + adds r0, r4, r1 + strh r2, [r0] + adds r3, #4 + adds r0, r4, r3 + strh r2, [r0] + adds r1, #4 + adds r0, r4, r1 + strh r2, [r0] + adds r3, #4 + adds r0, r4, r3 + strh r2, [r0] + adds r1, #4 + adds r0, r4, r1 + strh r2, [r0] + adds r3, #4 + adds r0, r4, r3 + strh r2, [r0] + adds r1, #4 + adds r0, r4, r1 + strh r2, [r0] + movs r3, #0 + ldr r0, _080BAC48 + adds r2, r4, r0 + ldr r1, _080BAC34 + adds r5, r1, #0 +_080BAB52: + lsls r0, r3, #1 + adds r0, r2, r0 + ldrh r1, [r0] + orrs r1, r5 + strh r1, [r0] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #3 + bls _080BAB52 + movs r2, #0xc5 + lsls r2, r2, #3 + adds r0, r4, r2 + movs r2, #0 + movs r1, #0 + strh r1, [r0] + ldr r3, _080BAC4C + adds r0, r4, r3 + strh r1, [r0] + adds r3, #2 + adds r0, r4, r3 + strb r2, [r0] + adds r3, #1 + adds r0, r4, r3 + strb r2, [r0] + adds r3, #1 + adds r0, r4, r3 + strb r2, [r0] + adds r3, #1 + adds r0, r4, r3 + strb r2, [r0] + movs r2, #0xc6 + lsls r2, r2, #3 + adds r0, r4, r2 + strh r1, [r0] + adds r3, #3 + adds r0, r4, r3 + strh r1, [r0] + adds r2, #4 + adds r0, r4, r2 + strh r1, [r0] + adds r3, #4 + adds r0, r4, r3 + strh r1, [r0] + adds r2, #4 + adds r0, r4, r2 + strh r1, [r0] + movs r3, #0 + ldr r0, _080BAC50 + adds r1, r4, r0 + movs r2, #0 +_080BABB8: + lsls r0, r3, #1 + adds r0, r1, r0 + strh r2, [r0] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #3 + bls _080BABB8 + ldr r1, _080BAC54 + adds r0, r4, r1 + movs r1, #0 + strb r1, [r0] + ldr r2, _080BAC58 + adds r0, r4, r2 + strb r1, [r0] + ldr r0, _080BAC5C + adds r3, r4, r0 + ldrb r2, [r3] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r3] + ldr r2, _080BAC60 + adds r0, r4, r2 + strb r1, [r0] + ldr r3, _080BAC64 + adds r0, r4, r3 + strb r1, [r0] + adds r2, #2 + adds r0, r4, r2 + strb r1, [r0] + adds r3, #2 + adds r0, r4, r3 + strh r1, [r0] + adds r2, #3 + adds r0, r4, r2 + strh r1, [r0] + movs r3, #0 + ldr r0, _080BAC68 + adds r1, r4, r0 + movs r2, #0 +_080BAC0A: + adds r0, r1, r3 + strb r2, [r0] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #7 + bls _080BAC0A + movs r3, #0 + ldr r2, _080BAC6C + adds r1, r4, r2 + movs r2, #0 +_080BAC20: + adds r0, r1, r3 + strb r2, [r0] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #7 + bls _080BAC20 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080BAC34: .4byte 0x0000FFFF +_080BAC38: .4byte 0x00000181 +_080BAC3C: .4byte 0x0000060A +_080BAC40: .4byte 0x0000060C +_080BAC44: .4byte 0x0000060E +_080BAC48: .4byte 0x0000061E +_080BAC4C: .4byte 0x0000062A +_080BAC50: .4byte 0x0000063A +_080BAC54: .4byte 0x0000064A +_080BAC58: .4byte 0x0000064B +_080BAC5C: .4byte 0x0000064C +_080BAC60: .4byte 0x0000064D +_080BAC64: .4byte 0x0000064E +_080BAC68: .4byte 0x00000654 +_080BAC6C: .4byte 0x0000065C + thumb_func_end ResetPokedexView + + thumb_func_start CB2_Pokedex +CB2_Pokedex: @ 0x080BAC70 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + ldr r0, _080BAD2C + movs r1, #0x87 + lsls r1, r1, #3 + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, #1 + beq _080BAD38 + cmp r0, #1 + ble _080BAC94 + cmp r0, #2 + beq _080BAD64 + cmp r0, #3 + bne _080BAC94 + b _080BAE58 +_080BAC94: + movs r0, #0 + bl SetVBlankCallback + movs r0, #0 + bl sub_080BFF08 + movs r3, #0xc0 + lsls r3, r3, #0x13 + movs r4, #0xc0 + lsls r4, r4, #9 + add r2, sp, #4 + mov r8, r2 + mov r2, sp + movs r6, #0 + ldr r1, _080BAD30 + movs r5, #0x80 + lsls r5, r5, #5 + ldr r7, _080BAD34 + movs r0, #0x81 + lsls r0, r0, #0x18 + mov ip, r0 +_080BACBE: + strh r6, [r2] + mov r0, sp + str r0, [r1] + str r3, [r1, #4] + str r7, [r1, #8] + ldr r0, [r1, #8] + adds r3, r3, r5 + subs r4, r4, r5 + cmp r4, r5 + bhi _080BACBE + strh r6, [r2] + mov r2, sp + str r2, [r1] + str r3, [r1, #4] + lsrs r0, r4, #1 + mov r3, ip + orrs r0, r3 + str r0, [r1, #8] + ldr r0, [r1, #8] + movs r0, #0xe0 + lsls r0, r0, #0x13 + movs r3, #0x80 + lsls r3, r3, #3 + movs r4, #0 + str r4, [sp, #4] + ldr r2, _080BAD30 + mov r1, r8 + str r1, [r2] + str r0, [r2, #4] + lsrs r0, r3, #2 + movs r1, #0x85 + lsls r1, r1, #0x18 + orrs r0, r1 + str r0, [r2, #8] + ldr r0, [r2, #8] + movs r1, #0xa0 + lsls r1, r1, #0x13 + mov r0, sp + strh r4, [r0] + str r0, [r2] + str r1, [r2, #4] + lsrs r3, r3, #1 + movs r0, #0x81 + lsls r0, r0, #0x18 + orrs r3, r0 + str r3, [r2, #8] + ldr r0, [r2, #8] + ldr r0, _080BAD2C + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r0, r2 + movs r1, #1 + strb r1, [r0] + b _080BAE88 + .align 2, 0 +_080BAD2C: .4byte 0x03002360 +_080BAD30: .4byte 0x040000D4 +_080BAD34: .4byte 0x81000800 +_080BAD38: + bl ScanlineEffect_Stop + bl ResetTasks + bl ResetSpriteData + bl ResetPaletteFade + bl FreeAllSpritePalettes + ldr r1, _080BAD60 + movs r0, #8 + strb r0, [r1] + bl ResetAllPicSprites + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + b _080BAE88 + .align 2, 0 +_080BAD60: .4byte 0x030030BC +_080BAD64: + ldr r4, _080BADE4 + ldr r0, _080BADE8 + bl AllocZeroed + str r0, [r4] + bl ResetPokedexView + ldr r0, _080BADEC + movs r1, #0 + bl CreateTask + ldr r1, [r4] + ldr r5, _080BADF0 + ldr r0, [r5] + ldrb r0, [r0, #0x19] + ldr r3, _080BADF4 + adds r1, r1, r3 + strh r0, [r1] + bl IsNationalPokedexEnabled + adds r1, r0, #0 + cmp r1, #0 + bne _080BAD9A + ldr r0, [r4] + ldr r2, _080BADF4 + adds r0, r0, r2 + strh r1, [r0] +_080BAD9A: + ldr r1, [r4] + ldr r0, [r5] + ldrb r2, [r0, #0x18] + ldr r3, _080BADF8 + adds r0, r1, r3 + strh r2, [r0] + ldr r0, _080BADFC + ldrh r2, [r0] + subs r3, #8 + adds r0, r1, r3 + strh r2, [r0] + ldr r0, _080BAE00 + ldrb r0, [r0] + ldr r2, _080BAE04 + adds r1, r1, r2 + strb r0, [r1] + ldr r0, [r4] + adds r3, #0x3f + adds r0, r0, r3 + movs r1, #0 + strb r1, [r0] + bl IsNationalPokedexEnabled + cmp r0, #0 + bne _080BAE0C + movs r0, #0 + bl GetHoennPokedexCount + ldr r1, [r4] + ldr r2, _080BAE08 + adds r1, r1, r2 + strh r0, [r1] + movs r0, #1 + bl GetHoennPokedexCount + b _080BAE20 + .align 2, 0 +_080BADE4: .4byte 0x020397EC +_080BADE8: .4byte 0x00000664 +_080BADEC: .4byte 0x080BAEC9 +_080BADF0: .4byte 0x03005AF0 +_080BADF4: .4byte 0x00000612 +_080BADF8: .4byte 0x00000616 +_080BADFC: .4byte 0x020397F0 +_080BAE00: .4byte 0x020397F2 +_080BAE04: .4byte 0x0000062C +_080BAE08: .4byte 0x0000061A +_080BAE0C: + movs r0, #0 + bl GetNationalPokedexCount + ldr r1, [r4] + ldr r2, _080BAE44 + adds r1, r1, r2 + strh r0, [r1] + movs r0, #1 + bl GetNationalPokedexCount +_080BAE20: + ldr r1, [r4] + ldr r3, _080BAE48 + adds r1, r1, r3 + strh r0, [r1] + ldr r0, _080BAE4C + ldr r0, [r0] + ldr r1, _080BAE50 + adds r0, r0, r1 + movs r1, #8 + strb r1, [r0] + ldr r1, _080BAE54 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080BAE88 + .align 2, 0 +_080BAE44: .4byte 0x0000061A +_080BAE48: .4byte 0x0000061C +_080BAE4C: .4byte 0x020397EC +_080BAE50: .4byte 0x0000062D +_080BAE54: .4byte 0x03002360 +_080BAE58: + movs r0, #1 + bl EnableInterrupts + ldr r0, _080BAE94 + bl SetVBlankCallback + ldr r0, _080BAE98 + bl SetMainCallback2 + ldr r0, _080BAE9C + ldr r1, [r0] + ldr r3, _080BAEA0 + adds r0, r1, r3 + ldrb r0, [r0] + ldr r2, _080BAEA4 + adds r1, r1, r2 + ldrb r1, [r1] + bl sub_080BC010 + ldr r0, _080BAEA8 + ldr r1, _080BAEAC + movs r2, #0x80 + bl m4aMPlayVolumeControl +_080BAE88: + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080BAE94: .4byte 0x080BAAAD +_080BAE98: .4byte 0x080BAEB1 +_080BAE9C: .4byte 0x020397EC +_080BAEA0: .4byte 0x00000612 +_080BAEA4: .4byte 0x00000616 +_080BAEA8: .4byte 0x030074D0 +_080BAEAC: .4byte 0x0000FFFF + thumb_func_end CB2_Pokedex + + thumb_func_start sub_080BAEB0 +sub_080BAEB0: @ 0x080BAEB0 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080BAEB0 + + thumb_func_start sub_080BAEC8 +sub_080BAEC8: @ 0x080BAEC8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080BAF00 + ldr r1, [r0] + ldr r0, _080BAF04 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + movs r0, #0 + bl sub_080BBC50 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080BAEFA + ldr r0, _080BAF08 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080BAF0C + str r0, [r1] +_080BAEFA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BAF00: .4byte 0x020397EC +_080BAF04: .4byte 0x0000064C +_080BAF08: .4byte 0x03005B60 +_080BAF0C: .4byte 0x080BAF11 + thumb_func_end sub_080BAEC8 + + thumb_func_start sub_080BAF10 +sub_080BAF10: @ 0x080BAF10 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r7, _080BAF44 + ldr r0, [r7] + ldr r4, _080BAF48 + adds r0, r0, r4 + ldrh r1, [r0] + movs r0, #0x12 + bl SetGpuReg + ldr r3, [r7] + adds r1, r3, r4 + ldrh r0, [r1] + movs r4, #0 + ldrsh r2, [r1, r4] + mov r8, r2 + cmp r2, #0 + beq _080BAF4C + subs r0, #8 + strh r0, [r1] + b _080BB142 + .align 2, 0 +_080BAF44: .4byte 0x020397EC +_080BAF48: .4byte 0x00000652 +_080BAF4C: + ldr r2, _080BAFC4 + ldrh r1, [r2, #0x2e] + movs r0, #1 + mov sb, r0 + ands r0, r1 + cmp r0, #0 + beq _080BAFE0 + ldr r1, _080BAFC8 + adds r0, r3, r1 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r3, r0 + ldrb r0, [r0, #2] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _080BAFE0 + bl sub_080BD070 + ldr r4, _080BAFCC + ldr r0, [r7] + ldr r5, _080BAFD0 + adds r0, r0, r5 + ldrh r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r1, [r0, #5] + lsrs r1, r1, #4 + adds r1, #0x10 + mov r0, sb + lsls r0, r1 + mvns r0, r0 + mov r2, r8 + str r2, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, [r7] + adds r0, r0, r5 + ldrh r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, #0x1c + adds r0, r0, r4 + ldr r1, _080BAFD4 + str r1, [r0] + ldr r1, _080BAFD8 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080BAFDC + str r1, [r0] + movs r0, #0x15 + b _080BB0B2 + .align 2, 0 +_080BAFC4: .4byte 0x03002360 +_080BAFC8: .4byte 0x0000060E +_080BAFCC: .4byte 0x020205AC +_080BAFD0: .4byte 0x00000626 +_080BAFD4: .4byte 0x080BDC11 +_080BAFD8: .4byte 0x03005B60 +_080BAFDC: .4byte 0x080BB331 +_080BAFE0: + ldrh r2, [r2, #0x2e] + movs r0, #8 + ands r0, r2 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0 + beq _080BB038 + ldr r3, _080BB024 + ldr r1, [r3] + ldr r4, _080BB028 + adds r0, r1, r4 + movs r2, #0 + strh r2, [r0] + ldr r0, _080BB02C + adds r1, r1, r0 + movs r0, #1 + strb r0, [r1] + ldr r0, [r3] + movs r1, #0xca + lsls r1, r1, #3 + adds r0, r0, r1 + strh r2, [r0] + ldr r1, _080BB030 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080BB034 + str r1, [r0] + movs r0, #5 + bl PlaySE + b _080BB142 + .align 2, 0 +_080BB024: .4byte 0x020397EC +_080BB028: .4byte 0x00000652 +_080BB02C: .4byte 0x0000064F +_080BB030: .4byte 0x03005B60 +_080BB034: .4byte 0x080BB1B5 +_080BB038: + movs r0, #4 + ands r0, r2 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + beq _080BB0DC + movs r0, #5 + bl PlaySE + movs r0, #1 + rsbs r0, r0, #0 + str r4, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + bl sub_080C07B4 + ldr r1, _080BB0BC + lsls r3, r6, #2 + adds r3, r3, r6 + lsls r3, r3, #3 + adds r3, r3, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0 + strh r0, [r3, #8] + ldr r1, _080BB0C0 + ldr r0, [r1] + ldr r4, _080BB0C4 + adds r0, r0, r4 + strb r2, [r0] + ldr r0, [r1] + ldr r2, _080BB0C8 + adds r1, r0, r2 + ldrb r2, [r1] + subs r4, #0x24 + adds r1, r0, r4 + strh r2, [r1] + ldr r2, _080BB0CC + adds r1, r0, r2 + ldrh r2, [r1] + subs r4, #0x1a + adds r1, r0, r4 + strh r2, [r1] + ldr r2, _080BB0D0 + adds r1, r0, r2 + ldrh r2, [r1] + adds r4, #4 + adds r1, r0, r4 + strh r2, [r1] + ldr r2, _080BB0D4 + adds r1, r0, r2 + ldrh r1, [r1] + adds r4, #4 + adds r0, r0, r4 + strh r1, [r0] + ldr r0, _080BB0D8 + str r0, [r3] + movs r0, #2 +_080BB0B2: + bl PlaySE + bl sub_080BBFCC + b _080BB142 + .align 2, 0 +_080BB0BC: .4byte 0x03005B60 +_080BB0C0: .4byte 0x020397EC +_080BB0C4: .4byte 0x0000064E +_080BB0C8: .4byte 0x0000062C +_080BB0CC: .4byte 0x0000060E +_080BB0D0: .4byte 0x00000612 +_080BB0D4: .4byte 0x00000616 +_080BB0D8: .4byte 0x080BB459 +_080BB0DC: + movs r0, #2 + ands r0, r2 + cmp r0, #0 + beq _080BB114 + movs r0, #1 + rsbs r0, r0, #0 + str r1, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _080BB10C + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080BB110 + str r1, [r0] + movs r0, #3 + bl PlaySE + b _080BB142 + .align 2, 0 +_080BB10C: .4byte 0x03005B60 +_080BB110: .4byte 0x080BB525 +_080BB114: + ldr r5, _080BB150 + ldr r0, [r5] + ldr r4, _080BB154 + adds r0, r0, r4 + ldrh r0, [r0] + movs r1, #0xe + bl sub_080BCE3C + ldr r1, [r5] + adds r4, r1, r4 + strh r0, [r4] + ldr r0, _080BB158 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0 + beq _080BB142 + ldr r0, _080BB15C + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080BB160 + str r0, [r1] +_080BB142: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080BB150: .4byte 0x020397EC +_080BB154: .4byte 0x0000060E +_080BB158: .4byte 0x0000062E +_080BB15C: .4byte 0x03005B60 +_080BB160: .4byte 0x080BB165 + thumb_func_end sub_080BAF10 + + thumb_func_start sub_080BB164 +sub_080BB164: @ 0x080BB164 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080BB1A0 + ldr r2, [r0] + ldr r1, _080BB1A4 + adds r0, r2, r1 + ldrb r0, [r0] + ldr r3, _080BB1A8 + adds r1, r2, r3 + ldrb r1, [r1] + adds r3, #2 + adds r2, r2, r3 + ldrb r2, [r2] + bl sub_080BCBA4 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080BB198 + ldr r0, _080BB1AC + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080BB1B0 + str r0, [r1] +_080BB198: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BB1A0: .4byte 0x020397EC +_080BB1A4: .4byte 0x0000062F +_080BB1A8: .4byte 0x00000634 +_080BB1AC: .4byte 0x03005B60 +_080BB1B0: .4byte 0x080BAF11 + thumb_func_end sub_080BB164 + + thumb_func_start sub_080BB1B4 +sub_080BB1B4: @ 0x080BB1B4 + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r6, _080BB1E4 + ldr r0, [r6] + ldr r4, _080BB1E8 + adds r0, r0, r4 + ldrh r1, [r0] + movs r0, #0x12 + bl SetGpuReg + ldr r3, [r6] + adds r1, r3, r4 + ldrh r2, [r1] + movs r4, #0 + ldrsh r0, [r1, r4] + cmp r0, #0x50 + beq _080BB1EC + adds r0, r2, #0 + adds r0, #8 + strh r0, [r1] + b _080BB324 + .align 2, 0 +_080BB1E4: .4byte 0x020397EC +_080BB1E8: .4byte 0x00000652 +_080BB1EC: + ldr r5, _080BB214 + ldrh r1, [r5, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080BB294 + movs r2, #0xca + lsls r2, r2, #3 + adds r0, r3, r2 + ldrh r0, [r0] + cmp r0, #1 + beq _080BB218 + cmp r0, #1 + ble _080BB25C + cmp r0, #2 + beq _080BB230 + cmp r0, #3 + beq _080BB270 + b _080BB25C + .align 2, 0 +_080BB214: .4byte 0x03002360 +_080BB218: + ldr r4, _080BB228 + adds r1, r3, r4 + movs r0, #0 + strh r0, [r1] + ldr r0, _080BB22C + adds r1, r3, r0 + movs r0, #0x40 + b _080BB248 + .align 2, 0 +_080BB228: .4byte 0x0000060E +_080BB22C: .4byte 0x0000062C +_080BB230: + ldr r1, _080BB264 + adds r2, r3, r1 + ldrh r0, [r2] + subs r0, #1 + ldr r4, _080BB268 + adds r1, r3, r4 + strh r0, [r1] + ldrh r0, [r2] + lsls r0, r0, #4 + adds r0, #0x30 + ldr r2, _080BB26C + adds r1, r3, r2 +_080BB248: + strb r0, [r1] + bl sub_080BD1E0 + ldr r0, [r6] + adds r0, r0, r4 + ldrh r0, [r0] + movs r1, #0xe + bl CreateInitialPokemonSprites + ldrh r1, [r5, #0x2e] +_080BB25C: + movs r0, #8 + orrs r0, r1 + strh r0, [r5, #0x2e] + b _080BB294 + .align 2, 0 +_080BB264: .4byte 0x0000060C +_080BB268: .4byte 0x0000060E +_080BB26C: .4byte 0x0000062C +_080BB270: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _080BB2BC + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080BB2C0 + str r1, [r0] + movs r0, #3 + bl PlaySE +_080BB294: + ldr r2, _080BB2C4 + ldrh r1, [r2, #0x2e] + movs r0, #0xa + ands r0, r1 + cmp r0, #0 + beq _080BB2D4 + ldr r0, _080BB2C8 + ldr r0, [r0] + ldr r3, _080BB2CC + adds r0, r0, r3 + movs r1, #0 + strb r1, [r0] + ldr r1, _080BB2BC + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080BB2D0 + str r1, [r0] + b _080BB2F2 + .align 2, 0 +_080BB2BC: .4byte 0x03005B60 +_080BB2C0: .4byte 0x080BB525 +_080BB2C4: .4byte 0x03002360 +_080BB2C8: .4byte 0x020397EC +_080BB2CC: .4byte 0x0000064F +_080BB2D0: .4byte 0x080BAF11 +_080BB2D4: + ldrh r1, [r2, #0x30] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080BB300 + ldr r0, _080BB2FC + ldr r0, [r0] + movs r4, #0xca + lsls r4, r4, #3 + adds r1, r0, r4 + ldrh r0, [r1] + cmp r0, #0 + beq _080BB300 + subs r0, #1 + strh r0, [r1] +_080BB2F2: + movs r0, #5 + bl PlaySE + b _080BB324 + .align 2, 0 +_080BB2FC: .4byte 0x020397EC +_080BB300: + ldrh r1, [r2, #0x30] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080BB324 + ldr r0, _080BB32C + ldr r0, [r0] + movs r2, #0xca + lsls r2, r2, #3 + adds r1, r0, r2 + ldrh r0, [r1] + cmp r0, #2 + bhi _080BB324 + adds r0, #1 + strh r0, [r1] + movs r0, #5 + bl PlaySE +_080BB324: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080BB32C: .4byte 0x020397EC + thumb_func_end sub_080BB1B4 + + thumb_func_start sub_080BB330 +sub_080BB330: @ 0x080BB330 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r2, _080BB394 + ldr r5, _080BB398 + ldr r3, [r5] + ldr r6, _080BB39C + adds r0, r3, r6 + ldrh r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r2 + movs r2, #0x20 + ldrsh r0, [r1, r2] + cmp r0, #0x30 + bne _080BB38E + movs r2, #0x22 + ldrsh r0, [r1, r2] + cmp r0, #0x38 + bne _080BB38E + ldr r1, _080BB3A0 + adds r0, r3, r1 + ldrb r1, [r0] + ldr r2, _080BB3A4 + adds r0, r3, r2 + strb r1, [r0] + ldr r1, [r5] + subs r2, #0x3d + adds r0, r1, r2 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r1, r0 + adds r1, r1, r6 + ldrb r1, [r1] + bl sub_080BE0C0 + ldr r2, _080BB3A8 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r1, #8] + ldr r0, _080BB3AC + str r0, [r1] +_080BB38E: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080BB394: .4byte 0x020205AC +_080BB398: .4byte 0x020397EC +_080BB39C: .4byte 0x00000626 +_080BB3A0: .4byte 0x0000064A +_080BB3A4: .4byte 0x0000064B +_080BB3A8: .4byte 0x03005B60 +_080BB3AC: .4byte 0x080BB3B1 + thumb_func_end sub_080BB330 + + thumb_func_start sub_080BB3B0 +sub_080BB3B0: @ 0x080BB3B0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080BB40C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 + movs r0, #8 + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrb r0, [r0, #4] + cmp r0, #0 + beq _080BB41C + ldr r5, _080BB410 + ldr r0, [r5] + ldr r1, _080BB414 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + bne _080BB438 + ldrb r0, [r4, #8] + bl sub_080BE168 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080BB438 + bl sub_080BD0D0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080BB438 + ldr r0, [r5] + ldr r2, _080BB418 + adds r1, r0, r2 + ldrh r1, [r1] + lsls r1, r1, #2 + adds r0, r0, r1 + ldrb r1, [r4, #8] + bl sub_080BE19C + b _080BB438 + .align 2, 0 +_080BB40C: .4byte 0x03005B60 +_080BB410: .4byte 0x020397EC +_080BB414: .4byte 0x0000064A +_080BB418: .4byte 0x0000060E +_080BB41C: + ldr r2, _080BB440 + ldr r0, _080BB444 + ldr r1, [r0] + ldr r3, _080BB448 + adds r0, r1, r3 + ldrh r0, [r0] + strh r0, [r2] + ldr r2, _080BB44C + ldr r0, _080BB450 + adds r1, r1, r0 + ldrb r0, [r1] + strb r0, [r2] + ldr r0, _080BB454 + str r0, [r4] +_080BB438: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080BB440: .4byte 0x020397F0 +_080BB444: .4byte 0x020397EC +_080BB448: .4byte 0x0000060E +_080BB44C: .4byte 0x020397F2 +_080BB450: .4byte 0x0000062C +_080BB454: .4byte 0x080BAEC9 + thumb_func_end sub_080BB3B0 + + thumb_func_start sub_080BB458 +sub_080BB458: @ 0x080BB458 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080BB4A0 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r6, r1, r2 + movs r0, #8 + ldrsh r1, [r6, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrb r4, [r0, #4] + cmp r4, #0 + bne _080BB506 + bl sub_080BD1E0 + ldr r5, _080BB4A4 + ldr r2, [r5] + ldr r1, _080BB4A8 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _080BB4B8 + ldr r3, _080BB4AC + adds r0, r2, r3 + strh r4, [r0] + ldr r0, _080BB4B0 + adds r1, r2, r0 + movs r0, #0x40 + strb r0, [r1] + ldr r0, _080BB4B4 + b _080BB504 + .align 2, 0 +_080BB4A0: .4byte 0x03005B60 +_080BB4A4: .4byte 0x020397EC +_080BB4A8: .4byte 0x0000064E +_080BB4AC: .4byte 0x0000060E +_080BB4B0: .4byte 0x0000062C +_080BB4B4: .4byte 0x080BB5AD +_080BB4B8: + ldr r1, _080BB50C + adds r0, r2, r1 + ldrh r1, [r0] + ldr r3, _080BB510 + adds r0, r2, r3 + strb r1, [r0] + ldr r1, [r5] + movs r2, #0xc2 + lsls r2, r2, #3 + adds r0, r1, r2 + ldrh r2, [r0] + subs r3, #0x1e + adds r0, r1, r3 + strh r2, [r0] + ldr r2, _080BB514 + adds r0, r1, r2 + ldrh r0, [r0] + adds r3, #4 + adds r1, r1, r3 + strh r0, [r1] + bl IsNationalPokedexEnabled + adds r1, r0, #0 + cmp r1, #0 + bne _080BB4F2 + ldr r0, [r5] + ldr r2, _080BB518 + adds r0, r0, r2 + strh r1, [r0] +_080BB4F2: + ldr r0, [r5] + movs r3, #0xc3 + lsls r3, r3, #3 + adds r1, r0, r3 + ldrh r1, [r1] + ldr r2, _080BB51C + adds r0, r0, r2 + strh r1, [r0] + ldr r0, _080BB520 +_080BB504: + str r0, [r6] +_080BB506: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080BB50C: .4byte 0x0000062A +_080BB510: .4byte 0x0000062C +_080BB514: .4byte 0x00000614 +_080BB518: .4byte 0x00000612 +_080BB51C: .4byte 0x00000616 +_080BB520: .4byte 0x080BAEC9 + thumb_func_end sub_080BB458 + + thumb_func_start sub_080BB524 +sub_080BB524: @ 0x080BB524 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _080BB58C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080BB586 + ldr r4, _080BB590 + ldr r0, [r4] + ldr r5, _080BB594 + ldr r1, [r5] + ldr r2, _080BB598 + adds r1, r1, r2 + ldrh r1, [r1] + strb r1, [r0, #0x19] + bl IsNationalPokedexEnabled + adds r1, r0, #0 + cmp r1, #0 + bne _080BB554 + ldr r0, [r4] + strb r1, [r0, #0x19] +_080BB554: + ldr r1, [r4] + ldr r0, [r5] + ldr r2, _080BB59C + adds r0, r0, r2 + ldrh r0, [r0] + strb r0, [r1, #0x18] + bl sub_080BD1E0 + bl sub_080BBFCC + adds r0, r6, #0 + bl DestroyTask + ldr r0, _080BB5A0 + bl SetMainCallback2 + ldr r0, _080BB5A4 + ldr r1, _080BB5A8 + movs r2, #0x80 + lsls r2, r2, #1 + bl m4aMPlayVolumeControl + ldr r0, [r5] + bl Free +_080BB586: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080BB58C: .4byte 0x02037C74 +_080BB590: .4byte 0x03005AF0 +_080BB594: .4byte 0x020397EC +_080BB598: .4byte 0x00000612 +_080BB59C: .4byte 0x00000616 +_080BB5A0: .4byte 0x08085AFD +_080BB5A4: .4byte 0x030074D0 +_080BB5A8: .4byte 0x0000FFFF + thumb_func_end sub_080BB524 + + thumb_func_start sub_080BB5AC +sub_080BB5AC: @ 0x080BB5AC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080BB5E4 + ldr r1, [r0] + ldr r0, _080BB5E8 + adds r1, r1, r0 + ldrb r0, [r1] + movs r2, #1 + orrs r0, r2 + strb r0, [r1] + movs r0, #3 + bl sub_080BBC50 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080BB5DC + ldr r0, _080BB5EC + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080BB5F0 + str r0, [r1] +_080BB5DC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BB5E4: .4byte 0x020397EC +_080BB5E8: .4byte 0x0000064C +_080BB5EC: .4byte 0x03005B60 +_080BB5F0: .4byte 0x080BB5F5 + thumb_func_end sub_080BB5AC + + thumb_func_start sub_080BB5F4 +sub_080BB5F4: @ 0x080BB5F4 + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r5, _080BB620 + ldr r0, [r5] + ldr r4, _080BB624 + adds r0, r0, r4 + ldrh r1, [r0] + movs r0, #0x12 + bl SetGpuReg + ldr r3, [r5] + adds r1, r3, r4 + ldrh r0, [r1] + movs r2, #0 + ldrsh r4, [r1, r2] + cmp r4, #0 + beq _080BB628 + subs r0, #8 + strh r0, [r1] + b _080BB7C6 + .align 2, 0 +_080BB620: .4byte 0x020397EC +_080BB624: .4byte 0x00000652 +_080BB628: + ldr r2, _080BB690 + ldrh r1, [r2, #0x2e] + movs r7, #1 + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0 + beq _080BB6AC + ldr r1, _080BB694 + adds r0, r3, r1 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r3, r0 + ldrb r0, [r0, #2] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _080BB6AC + bl sub_080BD070 + ldr r3, _080BB698 + ldr r0, [r5] + ldr r2, _080BB69C + adds r0, r0, r2 + ldrh r0, [r0] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r0, r2, r3 + ldrb r1, [r0, #5] + lsrs r1, r1, #4 + adds r1, #0x10 + adds r0, r7, #0 + lsls r0, r1 + adds r3, #0x1c + adds r2, r2, r3 + ldr r1, _080BB6A0 + str r1, [r2] + mvns r0, r0 + str r4, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _080BB6A4 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080BB6A8 + str r1, [r0] + movs r0, #0x15 + b _080BB746 + .align 2, 0 +_080BB690: .4byte 0x03002360 +_080BB694: .4byte 0x0000060E +_080BB698: .4byte 0x020205AC +_080BB69C: .4byte 0x00000626 +_080BB6A0: .4byte 0x080BDC11 +_080BB6A4: .4byte 0x03005B60 +_080BB6A8: .4byte 0x080BBA11 +_080BB6AC: + ldrh r2, [r2, #0x2e] + movs r0, #8 + ands r0, r2 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + beq _080BB704 + ldr r3, _080BB6F0 + ldr r1, [r3] + ldr r2, _080BB6F4 + adds r0, r1, r2 + movs r2, #0 + strh r2, [r0] + ldr r0, _080BB6F8 + adds r1, r1, r0 + movs r0, #1 + strb r0, [r1] + ldr r0, [r3] + movs r1, #0xca + lsls r1, r1, #3 + adds r0, r0, r1 + strh r2, [r0] + ldr r1, _080BB6FC + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080BB700 + str r1, [r0] + movs r0, #5 + bl PlaySE + b _080BB7C6 + .align 2, 0 +_080BB6F0: .4byte 0x020397EC +_080BB6F4: .4byte 0x00000652 +_080BB6F8: .4byte 0x0000064F +_080BB6FC: .4byte 0x03005B60 +_080BB700: .4byte 0x080BB835 +_080BB704: + movs r0, #4 + ands r0, r2 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0 + beq _080BB760 + movs r0, #1 + rsbs r0, r0, #0 + str r1, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + bl sub_080C07B4 + ldr r2, _080BB750 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0 + strh r0, [r1, #8] + ldr r0, _080BB754 + ldr r0, [r0] + ldr r3, _080BB758 + adds r0, r0, r3 + strb r2, [r0] + ldr r0, _080BB75C + str r0, [r1] + movs r0, #2 +_080BB746: + bl PlaySE + bl sub_080BBFCC + b _080BB7C6 + .align 2, 0 +_080BB750: .4byte 0x03005B60 +_080BB754: .4byte 0x020397EC +_080BB758: .4byte 0x0000064E +_080BB75C: .4byte 0x080BB459 +_080BB760: + movs r0, #2 + ands r0, r2 + cmp r0, #0 + beq _080BB798 + movs r0, #1 + rsbs r0, r0, #0 + str r3, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _080BB790 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080BB794 + str r1, [r0] + movs r0, #3 + bl PlaySE + b _080BB7C6 + .align 2, 0 +_080BB790: .4byte 0x03005B60 +_080BB794: .4byte 0x080BBB19 +_080BB798: + ldr r5, _080BB7D0 + ldr r0, [r5] + ldr r4, _080BB7D4 + adds r0, r0, r4 + ldrh r0, [r0] + movs r1, #0xe + bl sub_080BCE3C + ldr r1, [r5] + adds r4, r1, r4 + strh r0, [r4] + ldr r0, _080BB7D8 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0 + beq _080BB7C6 + ldr r0, _080BB7DC + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080BB7E0 + str r0, [r1] +_080BB7C6: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080BB7D0: .4byte 0x020397EC +_080BB7D4: .4byte 0x0000060E +_080BB7D8: .4byte 0x0000062E +_080BB7DC: .4byte 0x03005B60 +_080BB7E0: .4byte 0x080BB7E5 + thumb_func_end sub_080BB5F4 + + thumb_func_start sub_080BB7E4 +sub_080BB7E4: @ 0x080BB7E4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080BB820 + ldr r2, [r0] + ldr r1, _080BB824 + adds r0, r2, r1 + ldrb r0, [r0] + ldr r3, _080BB828 + adds r1, r2, r3 + ldrb r1, [r1] + adds r3, #2 + adds r2, r2, r3 + ldrb r2, [r2] + bl sub_080BCBA4 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080BB818 + ldr r0, _080BB82C + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080BB830 + str r0, [r1] +_080BB818: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BB820: .4byte 0x020397EC +_080BB824: .4byte 0x0000062F +_080BB828: .4byte 0x00000634 +_080BB82C: .4byte 0x03005B60 +_080BB830: .4byte 0x080BB5F5 + thumb_func_end sub_080BB7E4 + + thumb_func_start HandleButtonPress_StartMenu +HandleButtonPress_StartMenu: @ 0x080BB834 + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r5, _080BB864 + ldr r0, [r5] + ldr r4, _080BB868 + adds r0, r0, r4 + ldrh r1, [r0] + movs r0, #0x12 + bl SetGpuReg + ldr r5, [r5] + adds r1, r5, r4 + ldrh r2, [r1] + movs r3, #0 + ldrsh r0, [r1, r3] + cmp r0, #0x60 + beq _080BB86C + adds r0, r2, #0 + adds r0, #8 + strh r0, [r1] + b _080BBA04 + .align 2, 0 +_080BB864: .4byte 0x020397EC +_080BB868: .4byte 0x00000652 +_080BB86C: + ldr r0, _080BB890 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080BB87A + b _080BB974 +_080BB87A: + movs r1, #0xca + lsls r1, r1, #3 + adds r0, r5, r1 + ldrh r0, [r0] + cmp r0, #4 + bhi _080BB8FE + lsls r0, r0, #2 + ldr r1, _080BB894 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BB890: .4byte 0x03002360 +_080BB894: .4byte 0x080BB898 +_080BB898: @ jump table + .4byte _080BB8FE @ case 0 + .4byte _080BB8AC @ case 1 + .4byte _080BB8D0 @ case 2 + .4byte _080BB920 @ case 3 + .4byte _080BB950 @ case 4 +_080BB8AC: + ldr r5, _080BB8C4 + ldr r1, [r5] + ldr r4, _080BB8C8 + adds r2, r1, r4 + movs r0, #0 + strh r0, [r2] + ldr r2, _080BB8CC + adds r1, r1, r2 + movs r0, #0x40 + strb r0, [r1] + b _080BB8EE + .align 2, 0 +_080BB8C4: .4byte 0x020397EC +_080BB8C8: .4byte 0x0000060E +_080BB8CC: .4byte 0x0000062C +_080BB8D0: + ldr r5, _080BB90C + ldr r2, [r5] + ldr r0, _080BB910 + adds r3, r2, r0 + ldrh r0, [r3] + subs r0, #1 + ldr r4, _080BB914 + adds r1, r2, r4 + strh r0, [r1] + ldrh r0, [r3] + lsls r0, r0, #4 + adds r0, #0x30 + ldr r1, _080BB918 + adds r2, r2, r1 + strb r0, [r2] +_080BB8EE: + bl sub_080BD1E0 + ldr r0, [r5] + adds r0, r0, r4 + ldrh r0, [r0] + movs r1, #0xe + bl CreateInitialPokemonSprites +_080BB8FE: + ldr r2, _080BB91C + ldrh r1, [r2, #0x2e] + movs r0, #8 + orrs r0, r1 + strh r0, [r2, #0x2e] + b _080BB974 + .align 2, 0 +_080BB90C: .4byte 0x020397EC +_080BB910: .4byte 0x0000060C +_080BB914: .4byte 0x0000060E +_080BB918: .4byte 0x0000062C +_080BB91C: .4byte 0x03002360 +_080BB920: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _080BB948 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080BB94C + str r1, [r0] + movs r0, #0x34 + bl PlaySE + b _080BB974 + .align 2, 0 +_080BB948: .4byte 0x03005B60 +_080BB94C: .4byte 0x080BBB19 +_080BB950: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _080BB99C + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080BB9A0 + str r1, [r0] + movs r0, #3 + bl PlaySE +_080BB974: + ldr r2, _080BB9A4 + ldrh r1, [r2, #0x2e] + movs r0, #0xa + ands r0, r1 + cmp r0, #0 + beq _080BB9B4 + ldr r0, _080BB9A8 + ldr r0, [r0] + ldr r2, _080BB9AC + adds r0, r0, r2 + movs r1, #0 + strb r1, [r0] + ldr r1, _080BB99C + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080BB9B0 + str r1, [r0] + b _080BB9D2 + .align 2, 0 +_080BB99C: .4byte 0x03005B60 +_080BB9A0: .4byte 0x080BBBB9 +_080BB9A4: .4byte 0x03002360 +_080BB9A8: .4byte 0x020397EC +_080BB9AC: .4byte 0x0000064F +_080BB9B0: .4byte 0x080BB5F5 +_080BB9B4: + ldrh r1, [r2, #0x30] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080BB9E0 + ldr r0, _080BB9DC + ldr r0, [r0] + movs r3, #0xca + lsls r3, r3, #3 + adds r1, r0, r3 + ldrh r0, [r1] + cmp r0, #0 + beq _080BB9E0 + subs r0, #1 + strh r0, [r1] +_080BB9D2: + movs r0, #5 + bl PlaySE + b _080BBA04 + .align 2, 0 +_080BB9DC: .4byte 0x020397EC +_080BB9E0: + ldrh r1, [r2, #0x30] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080BBA04 + ldr r0, _080BBA0C + ldr r0, [r0] + movs r2, #0xca + lsls r2, r2, #3 + adds r1, r0, r2 + ldrh r0, [r1] + cmp r0, #3 + bhi _080BBA04 + adds r0, #1 + strh r0, [r1] + movs r0, #5 + bl PlaySE +_080BBA04: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080BBA0C: .4byte 0x020397EC + thumb_func_end HandleButtonPress_StartMenu + + thumb_func_start sub_080BBA10 +sub_080BBA10: @ 0x080BBA10 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r2, _080BBA7C + ldr r5, _080BBA80 + ldr r3, [r5] + ldr r4, _080BBA84 + adds r0, r3, r4 + ldrh r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r2 + movs r2, #0x20 + ldrsh r0, [r1, r2] + cmp r0, #0x30 + bne _080BBA76 + movs r2, #0x22 + ldrsh r0, [r1, r2] + cmp r0, #0x38 + bne _080BBA76 + ldr r1, _080BBA88 + adds r0, r3, r1 + ldrb r1, [r0] + ldr r2, _080BBA8C + adds r0, r3, r2 + strb r1, [r0] + ldr r1, [r5] + subs r2, #0x3d + adds r0, r1, r2 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r1, r0 + adds r1, r1, r4 + ldrb r1, [r1] + bl sub_080BE0C0 + ldr r2, _080BBA90 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r1, #8] + ldr r0, [r5] + adds r0, r0, r4 + ldr r2, _080BBA94 + strh r2, [r0] + ldr r0, _080BBA98 + str r0, [r1] +_080BBA76: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080BBA7C: .4byte 0x020205AC +_080BBA80: .4byte 0x020397EC +_080BBA84: .4byte 0x00000626 +_080BBA88: .4byte 0x0000064A +_080BBA8C: .4byte 0x0000064B +_080BBA90: .4byte 0x03005B60 +_080BBA94: .4byte 0x0000FFFF +_080BBA98: .4byte 0x080BBA9D + thumb_func_end sub_080BBA10 + + thumb_func_start sub_080BBA9C +sub_080BBA9C: @ 0x080BBA9C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080BBAF8 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 + movs r0, #8 + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrb r0, [r0, #4] + cmp r0, #0 + beq _080BBB08 + ldr r5, _080BBAFC + ldr r0, [r5] + ldr r1, _080BBB00 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + bne _080BBB0C + ldrb r0, [r4, #8] + bl sub_080BE168 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080BBB0C + bl sub_080BD0D0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080BBB0C + ldr r0, [r5] + ldr r2, _080BBB04 + adds r1, r0, r2 + ldrh r1, [r1] + lsls r1, r1, #2 + adds r0, r0, r1 + ldrb r1, [r4, #8] + bl sub_080BE19C + b _080BBB0C + .align 2, 0 +_080BBAF8: .4byte 0x03005B60 +_080BBAFC: .4byte 0x020397EC +_080BBB00: .4byte 0x0000064A +_080BBB04: .4byte 0x0000060E +_080BBB08: + ldr r0, _080BBB14 + str r0, [r4] +_080BBB0C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080BBB14: .4byte 0x080BB5AD + thumb_func_end sub_080BBA9C + + thumb_func_start sub_080BBB18 +sub_080BBB18: @ 0x080BBB18 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _080BBB94 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080BBB8C + ldr r4, _080BBB98 + ldr r0, [r4] + ldr r2, _080BBB9C + adds r1, r0, r2 + ldrh r1, [r1] + ldr r3, _080BBBA0 + adds r0, r0, r3 + strb r1, [r0] + ldr r1, [r4] + subs r2, #0x1a + adds r0, r1, r2 + ldrh r2, [r0] + subs r3, #0x1e + adds r0, r1, r3 + strh r2, [r0] + ldr r2, _080BBBA4 + adds r0, r1, r2 + ldrh r0, [r0] + adds r3, #4 + adds r1, r1, r3 + strh r0, [r1] + bl IsNationalPokedexEnabled + adds r1, r0, #0 + cmp r1, #0 + bne _080BBB66 + ldr r0, [r4] + ldr r2, _080BBBA8 + adds r0, r0, r2 + strh r1, [r0] +_080BBB66: + ldr r0, [r4] + movs r3, #0xc3 + lsls r3, r3, #3 + adds r1, r0, r3 + ldrh r1, [r1] + ldr r2, _080BBBAC + adds r0, r0, r2 + strh r1, [r0] + ldr r1, _080BBBB0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080BBBB4 + str r1, [r0] + bl sub_080BD1E0 + bl sub_080BBFCC +_080BBB8C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080BBB94: .4byte 0x02037C74 +_080BBB98: .4byte 0x020397EC +_080BBB9C: .4byte 0x0000062A +_080BBBA0: .4byte 0x0000062C +_080BBBA4: .4byte 0x00000614 +_080BBBA8: .4byte 0x00000612 +_080BBBAC: .4byte 0x00000616 +_080BBBB0: .4byte 0x03005B60 +_080BBBB4: .4byte 0x080BAEC9 + thumb_func_end sub_080BBB18 + + thumb_func_start sub_080BBBB8 +sub_080BBBB8: @ 0x080BBBB8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _080BBC2C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080BBC24 + ldr r4, _080BBC30 + ldr r0, [r4] + ldr r2, _080BBC34 + adds r1, r0, r2 + ldrh r1, [r1] + ldr r3, _080BBC38 + adds r0, r0, r3 + strb r1, [r0] + ldr r1, [r4] + subs r2, #0x1a + adds r0, r1, r2 + ldrh r2, [r0] + subs r3, #0x1e + adds r0, r1, r3 + strh r2, [r0] + ldr r2, _080BBC3C + adds r0, r1, r2 + ldrh r0, [r0] + adds r3, #4 + adds r1, r1, r3 + strh r0, [r1] + bl IsNationalPokedexEnabled + adds r1, r0, #0 + cmp r1, #0 + bne _080BBC06 + ldr r0, [r4] + ldr r2, _080BBC40 + adds r0, r0, r2 + strh r1, [r0] +_080BBC06: + ldr r0, [r4] + movs r3, #0xc3 + lsls r3, r3, #3 + adds r1, r0, r3 + ldrh r1, [r1] + ldr r2, _080BBC44 + adds r0, r0, r2 + strh r1, [r0] + ldr r1, _080BBC48 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080BBC4C + str r1, [r0] +_080BBC24: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080BBC2C: .4byte 0x02037C74 +_080BBC30: .4byte 0x020397EC +_080BBC34: .4byte 0x0000062A +_080BBC38: .4byte 0x0000062C +_080BBC3C: .4byte 0x00000614 +_080BBC40: .4byte 0x00000612 +_080BBC44: .4byte 0x00000616 +_080BBC48: .4byte 0x03005B60 +_080BBC4C: .4byte 0x080BB525 + thumb_func_end sub_080BBBB8 + + thumb_func_start sub_080BBC50 +sub_080BBC50: @ 0x080BBC50 + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _080BBC74 + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r1, r2 + ldrb r0, [r0] + adds r3, r1, #0 + cmp r0, #6 + bhi _080BBC98 + lsls r0, r0, #2 + ldr r1, _080BBC78 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BBC74: .4byte 0x03002360 +_080BBC78: .4byte 0x080BBC7C +_080BBC7C: @ jump table + .4byte _080BBC98 @ case 0 + .4byte _080BBE08 @ case 1 + .4byte _080BBE38 @ case 2 + .4byte _080BBE40 @ case 3 + .4byte _080BBEA4 @ case 4 + .4byte _080BBECC @ case 5 + .4byte _080BBF54 @ case 6 +_080BBC98: + ldr r0, _080BBD58 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + beq _080BBCAA + b _080BBF74 +_080BBCAA: + movs r0, #0 + bl SetVBlankCallback + ldr r4, _080BBD5C + ldr r0, [r4] + ldr r1, _080BBD60 + adds r0, r0, r1 + strb r5, [r0] + movs r0, #0 + bl sub_080BFF08 + ldr r0, [r4] + ldr r2, _080BBD64 + adds r0, r0, r2 + ldrb r1, [r0] + movs r0, #0x1a + bl SetGpuReg + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _080BBD68 + movs r0, #0 + movs r2, #4 + bl InitBgsFromTemplates + movs r4, #0x80 + lsls r4, r4, #4 + adds r0, r4, #0 + bl AllocZeroed + adds r1, r0, #0 + movs r0, #3 + bl SetBgTilemapBuffer + adds r0, r4, #0 + bl AllocZeroed + adds r1, r0, #0 + movs r0, #2 + bl SetBgTilemapBuffer + adds r0, r4, #0 + bl AllocZeroed + adds r1, r0, #0 + movs r0, #1 + bl SetBgTilemapBuffer + adds r0, r4, #0 + bl AllocZeroed + adds r1, r0, #0 + movs r0, #0 + bl SetBgTilemapBuffer + ldr r1, _080BBD6C + movs r2, #0x80 + lsls r2, r2, #6 + str r6, [sp] + movs r0, #3 + movs r3, #0 + bl DecompressAndLoadBgGfxUsingHeap + ldr r1, _080BBD70 + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + ldr r1, _080BBD74 + movs r0, #3 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + cmp r5, #0 + bne _080BBD7C + ldr r1, _080BBD78 + movs r3, #0xa0 + lsls r3, r3, #2 + movs r0, #0 + movs r2, #0 + bl CopyToBgTilemapBuffer + b _080BBD8A + .align 2, 0 +_080BBD58: .4byte 0x02037C74 +_080BBD5C: .4byte 0x020397EC +_080BBD60: .4byte 0x0000064A +_080BBD64: .4byte 0x0000062D +_080BBD68: .4byte 0x08539BE8 +_080BBD6C: .4byte 0x08537E8C +_080BBD70: .4byte 0x08537804 +_080BBD74: .4byte 0x08537954 +_080BBD78: .4byte 0x08537660 +_080BBD7C: + ldr r1, _080BBDA4 + movs r3, #0xa0 + lsls r3, r3, #2 + movs r0, #0 + movs r2, #0 + bl CopyToBgTilemapBuffer +_080BBD8A: + bl ResetPaletteFade + cmp r5, #0 + bne _080BBDB0 + ldr r3, _080BBDA8 + ldr r1, [r3] + ldr r0, _080BBDAC + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + b _080BBDBE + .align 2, 0 +_080BBDA4: .4byte 0x08537730 +_080BBDA8: .4byte 0x020397EC +_080BBDAC: .4byte 0x0000064C +_080BBDB0: + ldr r3, _080BBDF8 + ldr r1, [r3] + ldr r2, _080BBDFC + adds r1, r1, r2 + ldrb r0, [r1] + movs r2, #1 + orrs r0, r2 +_080BBDBE: + strb r0, [r1] + ldr r0, [r3] + ldr r1, _080BBDFC + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1f + lsrs r0, r0, #0x1f + bl LoadPokedexBgPalette + ldr r0, _080BBE00 + bl InitWindows + bl DeactivateAllTextPrinters + movs r0, #0 + bl PutWindowTilemap + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + ldr r0, _080BBE04 + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r0, r2 + movs r1, #1 + strb r1, [r0] + b _080BBF74 + .align 2, 0 +_080BBDF8: .4byte 0x020397EC +_080BBDFC: .4byte 0x0000064C +_080BBE00: .4byte 0x08539BF8 +_080BBE04: .4byte 0x03002360 +_080BBE08: + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r1, _080BBE2C + movs r0, #8 + strb r0, [r1] + ldr r0, _080BBE30 + bl LoadCompressedSpriteSheet + ldr r0, _080BBE34 + bl LoadSpritePalettes + adds r0, r5, #0 + bl CreateInterfaceSprites + b _080BBF34 + .align 2, 0 +_080BBE2C: .4byte 0x030030BC +_080BBE30: .4byte 0x08539BBC +_080BBE34: .4byte 0x08539BCC +_080BBE38: + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r3, r2 + b _080BBF3C +_080BBE40: + cmp r5, #0 + bne _080BBE58 + ldr r0, _080BBE94 + ldr r1, [r0] + ldr r2, _080BBE98 + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, #4 + adds r1, r1, r2 + ldrb r1, [r1] + bl sub_080BC010 +_080BBE58: + ldr r4, _080BBE94 + ldr r0, [r4] + ldr r1, _080BBE9C + adds r0, r0, r1 + ldrh r0, [r0] + movs r1, #0xe + bl CreateInitialPokemonSprites + ldr r0, [r4] + ldr r2, _080BBEA0 + adds r0, r0, r2 + movs r1, #0 + strb r1, [r0] + ldr r0, [r4] + adds r2, #3 + adds r0, r0, r2 + strh r1, [r0] + movs r0, #0 + bl CopyBgTilemapBufferToVram + movs r0, #1 + bl CopyBgTilemapBufferToVram + movs r0, #2 + bl CopyBgTilemapBufferToVram + movs r0, #3 + bl CopyBgTilemapBufferToVram + b _080BBF34 + .align 2, 0 +_080BBE94: .4byte 0x020397EC +_080BBE98: .4byte 0x00000612 +_080BBE9C: .4byte 0x0000060E +_080BBEA0: .4byte 0x0000064F +_080BBEA4: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r0, _080BBEC4 + bl SetVBlankCallback + ldr r1, _080BBEC8 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _080BBF3C + .align 2, 0 +_080BBEC4: .4byte 0x080BAAAD +_080BBEC8: .4byte 0x03002360 +_080BBECC: + ldr r1, _080BBF44 + movs r0, #0x48 + bl SetGpuReg + ldr r1, _080BBF48 + movs r0, #0x4a + bl SetGpuReg + movs r0, #0x40 + movs r1, #0 + bl SetGpuReg + movs r0, #0x44 + movs r1, #0 + bl SetGpuReg + movs r0, #0x42 + movs r1, #0 + bl SetGpuReg + movs r0, #0x46 + movs r1, #0 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + ldr r1, _080BBF4C + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg +_080BBF34: + ldr r1, _080BBF50 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 +_080BBF3C: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080BBF74 + .align 2, 0 +_080BBF44: .4byte 0x00003F3F +_080BBF48: .4byte 0x00001D3F +_080BBF4C: .4byte 0x00009040 +_080BBF50: .4byte 0x03002360 +_080BBF54: + ldr r0, _080BBF70 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _080BBF74 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r3, r1 + strb r2, [r0] + movs r0, #1 + b _080BBF76 + .align 2, 0 +_080BBF70: .4byte 0x02037C74 +_080BBF74: + movs r0, #0 +_080BBF76: + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080BBC50 + + thumb_func_start LoadPokedexBgPalette +LoadPokedexBgPalette: @ 0x080BBF80 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080BBF94 + ldr r0, _080BBF90 + b _080BBF9E + .align 2, 0 +_080BBF90: .4byte 0x085374E2 +_080BBF94: + bl IsNationalPokedexEnabled + cmp r0, #0 + bne _080BBFAC + ldr r0, _080BBFA8 +_080BBF9E: + movs r1, #1 + movs r2, #0xbe + bl LoadPalette + b _080BBFB6 + .align 2, 0 +_080BBFA8: .4byte 0x08537422 +_080BBFAC: + ldr r0, _080BBFC8 + movs r1, #1 + movs r2, #0xbe + bl LoadPalette +_080BBFB6: + bl GetOverworldTextboxPalettePtr + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + pop {r0} + bx r0 + .align 2, 0 +_080BBFC8: .4byte 0x085375A2 + thumb_func_end LoadPokedexBgPalette + + thumb_func_start sub_080BBFCC +sub_080BBFCC: @ 0x080BBFCC + push {lr} + bl FreeAllWindowBuffers + movs r0, #0 + bl GetBgTilemapBuffer + cmp r0, #0 + beq _080BBFE0 + bl Free +_080BBFE0: + movs r0, #1 + bl GetBgTilemapBuffer + cmp r0, #0 + beq _080BBFEE + bl Free +_080BBFEE: + movs r0, #2 + bl GetBgTilemapBuffer + cmp r0, #0 + beq _080BBFFC + bl Free +_080BBFFC: + movs r0, #3 + bl GetBgTilemapBuffer + cmp r0, #0 + beq _080BC00A + bl Free +_080BC00A: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080BBFCC + + thumb_func_start sub_080BC010 +sub_080BC010: @ 0x080BC010 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + ldr r0, _080BC044 + ldr r0, [r0] + ldr r1, _080BC048 + adds r0, r0, r1 + movs r5, #0 + strh r5, [r0] + cmp r4, #0 + beq _080BC038 + cmp r4, #1 + beq _080BC04C +_080BC038: + mov r1, sp + movs r0, #0xca + strh r0, [r1] + movs r0, #1 + strh r0, [r1, #2] + b _080BC068 + .align 2, 0 +_080BC044: .4byte 0x020397EC +_080BC048: .4byte 0x0000060C +_080BC04C: + bl IsNationalPokedexEnabled + cmp r0, #0 + beq _080BC060 + mov r0, sp + movs r1, #0xc1 + lsls r1, r1, #1 + strh r1, [r0] + strh r5, [r0, #2] + b _080BC068 +_080BC060: + mov r0, sp + movs r1, #0xca + strh r1, [r0] + strh r4, [r0, #2] +_080BC068: + cmp r6, #5 + bls _080BC06E + b _080BC4F0 +_080BC06E: + lsls r0, r6, #2 + ldr r1, _080BC078 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BC078: .4byte 0x080BC07C +_080BC07C: @ jump table + .4byte _080BC094 @ case 0 + .4byte _080BC208 @ case 1 + .4byte _080BC2B4 @ case 2 + .4byte _080BC344 @ case 3 + .4byte _080BC3DC @ case 4 + .4byte _080BC46C @ case 5 +_080BC094: + mov r0, sp + ldrh r0, [r0, #2] + cmp r0, #0 + beq _080BC13C + movs r4, #0 + mov r0, sp + ldrh r0, [r0] + cmp r4, r0 + blt _080BC0A8 + b _080BC4F0 +_080BC0A8: + mov r5, sp + ldr r2, _080BC134 + mov r8, r2 + movs r3, #1 + mov sb, r3 +_080BC0B2: + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + adds r7, r4, #1 + mov sl, r7 + lsls r0, r7, #0x10 + lsrs r6, r0, #0x10 + adds r0, r6, #0 + bl SpeciesToNationalPokedexNum + strh r0, [r5, #4] + mov r2, r8 + ldr r1, [r2] + lsls r4, r4, #2 + adds r1, r1, r4 + strh r0, [r1] + ldrh r0, [r5, #4] + movs r1, #0 + bl GetSetPokedexFlag + mov r3, r8 + ldr r2, [r3] + adds r2, r2, r4 + mov r3, sb + ands r3, r0 + ldrb r0, [r2, #2] + movs r7, #2 + rsbs r7, r7, #0 + adds r1, r7, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2, #2] + ldrh r0, [r5, #4] + movs r1, #1 + bl GetSetPokedexFlag + mov r1, r8 + ldr r3, [r1] + adds r3, r3, r4 + mov r2, sb + ands r2, r0 + lsls r2, r2, #1 + ldrb r0, [r3, #2] + subs r7, #1 + adds r1, r7, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #2] + mov r0, r8 + ldr r1, [r0] + adds r4, r1, r4 + ldrb r0, [r4, #2] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _080BC126 + ldr r2, _080BC138 + adds r0, r1, r2 + mov r3, sl + strh r3, [r0] +_080BC126: + adds r4, r6, #0 + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + ldrh r7, [r5] + cmp r0, r7 + blt _080BC0B2 + b _080BC4F0 + .align 2, 0 +_080BC134: .4byte 0x020397EC +_080BC138: .4byte 0x0000060C +_080BC13C: + movs r4, #0 + movs r5, #0 + mov sl, r5 + mov r0, sp + ldrh r0, [r0] + cmp r4, r0 + blt _080BC14C + b _080BC4F0 +_080BC14C: + mov r6, sp + ldr r0, _080BC200 + mov r8, r0 + movs r1, #1 + mov sb, r1 +_080BC156: + lsls r4, r4, #0x10 + asrs r0, r4, #0x10 + adds r0, #1 + strh r0, [r6, #4] + ldrh r0, [r6, #4] + movs r1, #0 + bl GetSetPokedexFlag + lsls r0, r0, #0x18 + adds r7, r4, #0 + cmp r0, #0 + beq _080BC172 + movs r2, #1 + mov sl, r2 +_080BC172: + mov r3, sl + cmp r3, #0 + beq _080BC1EE + mov r4, r8 + ldr r1, [r4] + lsls r0, r5, #0x10 + asrs r5, r0, #0x10 + lsls r4, r5, #2 + adds r1, r1, r4 + ldrh r0, [r6, #4] + strh r0, [r1] + ldrh r0, [r6, #4] + movs r1, #0 + bl GetSetPokedexFlag + mov r1, r8 + ldr r2, [r1] + adds r2, r2, r4 + mov r3, sb + ands r3, r0 + mov ip, r3 + ldrb r0, [r2, #2] + movs r3, #2 + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r0, r1 + mov r1, ip + orrs r0, r1 + strb r0, [r2, #2] + ldrh r0, [r6, #4] + movs r1, #1 + bl GetSetPokedexFlag + mov r2, r8 + ldr r3, [r2] + adds r3, r3, r4 + mov r2, sb + ands r2, r0 + lsls r2, r2, #1 + mov ip, r2 + ldrb r0, [r3, #2] + movs r2, #3 + rsbs r2, r2, #0 + adds r1, r2, #0 + ands r0, r1 + mov r1, ip + orrs r0, r1 + strb r0, [r3, #2] + mov r3, r8 + ldr r2, [r3] + adds r4, r2, r4 + ldrb r0, [r4, #2] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _080BC1E8 + adds r1, r5, #1 + ldr r4, _080BC204 + adds r0, r2, r4 + strh r1, [r0] +_080BC1E8: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_080BC1EE: + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r7, r1 + lsrs r4, r0, #0x10 + asrs r0, r0, #0x10 + ldrh r2, [r6] + cmp r0, r2 + blt _080BC156 + b _080BC4F0 + .align 2, 0 +_080BC200: .4byte 0x020397EC +_080BC204: .4byte 0x0000060C +_080BC208: + movs r4, #0 + mov r5, sp + ldr r3, _080BC2A8 + mov r8, r3 + ldr r6, _080BC2AC + movs r7, #1 + mov sb, r7 +_080BC216: + ldr r1, _080BC2B0 + lsls r4, r4, #0x10 + asrs r0, r4, #0xf + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r5, #4] + ldrh r0, [r5, #4] + bl NationalToHoennOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r7, r4, #0 + ldrh r1, [r5] + cmp r0, r1 + bhi _080BC294 + ldrh r0, [r5, #4] + movs r1, #0 + bl GetSetPokedexFlag + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080BC294 + mov r3, r8 + ldr r2, [r3] + adds r3, r2, r6 + ldrh r0, [r3] + lsls r0, r0, #2 + adds r0, r2, r0 + ldrh r1, [r5, #4] + strh r1, [r0] + ldrh r0, [r3] + lsls r0, r0, #2 + adds r2, r2, r0 + ldrb r0, [r2, #2] + mov r4, sb + orrs r0, r4 + strb r0, [r2, #2] + ldrh r0, [r5, #4] + movs r1, #1 + bl GetSetPokedexFlag + mov r1, r8 + ldr r3, [r1] + adds r1, r3, r6 + ldrh r1, [r1] + lsls r1, r1, #2 + adds r3, r3, r1 + mov r2, sb + ands r2, r0 + lsls r2, r2, #1 + ldrb r0, [r3, #2] + movs r4, #3 + rsbs r4, r4, #0 + adds r1, r4, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #2] + mov r0, r8 + ldr r1, [r0] + adds r1, r1, r6 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_080BC294: + movs r2, #0x80 + lsls r2, r2, #9 + adds r1, r7, r2 + lsrs r4, r1, #0x10 + movs r0, #0xcd + lsls r0, r0, #0x11 + cmp r1, r0 + ble _080BC216 + b _080BC4F0 + .align 2, 0 +_080BC2A8: .4byte 0x020397EC +_080BC2AC: .4byte 0x0000060C +_080BC2B0: .4byte 0x08538FF4 +_080BC2B4: + ldr r4, _080BC330 + lsls r0, r4, #0x10 + mov r5, sp + ldr r7, _080BC334 + ldr r6, _080BC338 +_080BC2BE: + ldr r1, _080BC33C + asrs r0, r0, #0xf + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r5, #4] + ldrh r0, [r5, #4] + bl NationalToHoennOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrh r3, [r5] + cmp r0, r3 + bhi _080BC31E + ldrh r0, [r5, #4] + movs r1, #1 + bl GetSetPokedexFlag + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080BC31E + ldr r2, [r7] + adds r3, r2, r6 + ldrh r0, [r3] + lsls r0, r0, #2 + adds r0, r2, r0 + ldrh r1, [r5, #4] + strh r1, [r0] + ldrh r0, [r3] + lsls r0, r0, #2 + adds r2, r2, r0 + ldrb r0, [r2, #2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #2] + ldr r2, [r7] + adds r0, r2, r6 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r2, r2, r0 + ldrb r0, [r2, #2] + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #2] + ldr r1, [r7] + adds r1, r1, r6 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_080BC31E: + lsls r0, r4, #0x10 + ldr r4, _080BC340 + adds r0, r0, r4 + lsrs r4, r0, #0x10 + lsls r0, r4, #0x10 + cmp r0, #0 + bge _080BC2BE + b _080BC4F0 + .align 2, 0 +_080BC330: .4byte 0x00000181 +_080BC334: .4byte 0x020397EC +_080BC338: .4byte 0x0000060C +_080BC33C: .4byte 0x0853932A +_080BC340: .4byte 0xFFFF0000 +_080BC344: + movs r4, #0 + mov r5, sp + ldr r7, _080BC3CC + mov r8, r7 + ldr r6, _080BC3D0 + ldr r0, _080BC3D4 + mov sb, r0 +_080BC352: + ldr r1, _080BC3D8 + lsls r4, r4, #0x10 + asrs r0, r4, #0xf + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r5, #4] + ldrh r0, [r5, #4] + bl NationalToHoennOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r7, r4, #0 + ldrh r1, [r5] + cmp r0, r1 + bhi _080BC3BA + ldrh r0, [r5, #4] + movs r1, #1 + bl GetSetPokedexFlag + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080BC3BA + mov r3, r8 + ldr r2, [r3] + adds r3, r2, r6 + ldrh r0, [r3] + lsls r0, r0, #2 + adds r0, r2, r0 + ldrh r1, [r5, #4] + strh r1, [r0] + ldrh r0, [r3] + lsls r0, r0, #2 + adds r2, r2, r0 + ldrb r0, [r2, #2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #2] + mov r4, r8 + ldr r2, [r4] + adds r0, r2, r6 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r2, r2, r0 + ldrb r0, [r2, #2] + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #2] + ldr r1, [r4] + adds r1, r1, r6 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_080BC3BA: + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r7, r1 + lsrs r4, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, sb + ble _080BC352 + b _080BC4F0 + .align 2, 0 +_080BC3CC: .4byte 0x020397EC +_080BC3D0: .4byte 0x0000060C +_080BC3D4: .4byte 0x00000181 +_080BC3D8: .4byte 0x0853932A +_080BC3DC: + ldr r4, _080BC458 + lsls r0, r4, #0x10 + mov r5, sp + ldr r7, _080BC45C + ldr r6, _080BC460 +_080BC3E6: + ldr r1, _080BC464 + asrs r0, r0, #0xf + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r5, #4] + ldrh r0, [r5, #4] + bl NationalToHoennOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrh r2, [r5] + cmp r0, r2 + bhi _080BC446 + ldrh r0, [r5, #4] + movs r1, #1 + bl GetSetPokedexFlag + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080BC446 + ldr r2, [r7] + adds r3, r2, r6 + ldrh r0, [r3] + lsls r0, r0, #2 + adds r0, r2, r0 + ldrh r1, [r5, #4] + strh r1, [r0] + ldrh r0, [r3] + lsls r0, r0, #2 + adds r2, r2, r0 + ldrb r0, [r2, #2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #2] + ldr r2, [r7] + adds r0, r2, r6 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r2, r2, r0 + ldrb r0, [r2, #2] + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #2] + ldr r1, [r7] + adds r1, r1, r6 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_080BC446: + lsls r0, r4, #0x10 + ldr r3, _080BC468 + adds r0, r0, r3 + lsrs r4, r0, #0x10 + lsls r0, r4, #0x10 + cmp r0, #0 + bge _080BC3E6 + b _080BC4F0 + .align 2, 0 +_080BC458: .4byte 0x00000181 +_080BC45C: .4byte 0x020397EC +_080BC460: .4byte 0x0000060C +_080BC464: .4byte 0x0853962E +_080BC468: .4byte 0xFFFF0000 +_080BC46C: + movs r4, #0 + mov r5, sp + ldr r7, _080BC554 + mov r8, r7 + ldr r6, _080BC558 + ldr r0, _080BC55C + mov sb, r0 +_080BC47A: + ldr r1, _080BC560 + lsls r4, r4, #0x10 + asrs r0, r4, #0xf + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r5, #4] + ldrh r0, [r5, #4] + bl NationalToHoennOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r7, r4, #0 + ldrh r1, [r5] + cmp r0, r1 + bhi _080BC4E2 + ldrh r0, [r5, #4] + movs r1, #1 + bl GetSetPokedexFlag + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080BC4E2 + mov r3, r8 + ldr r2, [r3] + adds r3, r2, r6 + ldrh r0, [r3] + lsls r0, r0, #2 + adds r0, r2, r0 + ldrh r1, [r5, #4] + strh r1, [r0] + ldrh r0, [r3] + lsls r0, r0, #2 + adds r2, r2, r0 + ldrb r0, [r2, #2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #2] + mov r4, r8 + ldr r2, [r4] + adds r0, r2, r6 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r2, r2, r0 + ldrb r0, [r2, #2] + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #2] + ldr r1, [r4] + adds r1, r1, r6 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_080BC4E2: + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r7, r1 + lsrs r4, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, sb + ble _080BC47A +_080BC4F0: + ldr r1, _080BC554 + ldr r0, [r1] + ldr r2, _080BC558 + adds r0, r0, r2 + ldrh r4, [r0] + lsls r3, r4, #0x10 + asrs r0, r3, #0x10 + ldr r2, _080BC55C + cmp r0, r2 + bgt _080BC544 + adds r5, r1, #0 + movs r4, #2 + rsbs r4, r4, #0 + mov sb, r4 + movs r7, #3 + rsbs r7, r7, #0 + mov r8, r7 + adds r7, r2, #0 + ldr r0, _080BC564 + adds r6, r0, #0 +_080BC518: + ldr r1, [r5] + asrs r3, r3, #0x10 + lsls r4, r3, #2 + adds r1, r1, r4 + ldrh r0, [r1] + orrs r0, r6 + strh r0, [r1] + ldrb r2, [r1, #2] + mov r0, sb + ands r0, r2 + strb r0, [r1, #2] + ldr r1, [r5] + adds r1, r1, r4 + ldrb r2, [r1, #2] + mov r0, r8 + ands r0, r2 + strb r0, [r1, #2] + adds r3, #1 + lsls r3, r3, #0x10 + asrs r0, r3, #0x10 + cmp r0, r7 + ble _080BC518 +_080BC544: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080BC554: .4byte 0x020397EC +_080BC558: .4byte 0x0000060C +_080BC55C: .4byte 0x00000181 +_080BC560: .4byte 0x0853962E +_080BC564: .4byte 0x0000FFFF + thumb_func_end sub_080BC010 + + thumb_func_start PrintMonDexNumAndName +PrintMonDexNumAndName: @ 0x080BC568 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0x18 + mov r8, r3 + ldr r3, [sp, #0x2c] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r3, r3, #0x18 + add r4, sp, #0x14 + movs r6, #0 + strb r6, [r4] + adds r5, r4, #0 + movs r4, #0xf + strb r4, [r5, #1] + movs r4, #3 + strb r4, [r5, #2] + mov r4, r8 + lsls r4, r4, #0x1b + lsrs r4, r4, #0x18 + mov r8, r4 + lsrs r3, r3, #0x15 + adds r3, #2 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r6, [sp] + str r6, [sp, #4] + str r5, [sp, #8] + movs r4, #1 + rsbs r4, r4, #0 + str r4, [sp, #0xc] + str r2, [sp, #0x10] + mov r2, r8 + bl AddTextPrinterParameterized4 + add sp, #0x18 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PrintMonDexNumAndName + + thumb_func_start CreateMonListEntry +CreateMonListEntry: @ 0x080BC5C0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r7, r2, #0x10 + cmp r0, #1 + beq _080BC6B8 + cmp r0, #1 + ble _080BC5E4 + cmp r0, #2 + bne _080BC5E4 + b _080BC7B0 +_080BC5E4: + subs r0, r1, #5 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + movs r0, #0 + mov sb, r0 +_080BC5EE: + lsls r0, r1, #0x10 + lsrs r5, r0, #0x10 + mov sl, r0 + ldr r1, _080BC620 + cmp r5, r1 + bhi _080BC60E + ldr r2, _080BC624 + mov r8, r2 + ldr r0, [r2] + mov r3, sl + asrs r6, r3, #0xe + adds r0, r0, r6 + ldrh r0, [r0] + ldr r1, _080BC628 + cmp r0, r1 + bne _080BC62C +_080BC60E: + mov r2, sb + lsls r1, r2, #0x19 + lsrs r1, r1, #0x18 + movs r0, #0x11 + adds r2, r7, #0 + bl sub_080BCA2C + b _080BC6A0 + .align 2, 0 +_080BC620: .4byte 0x00000181 +_080BC624: .4byte 0x020397EC +_080BC628: .4byte 0x0000FFFF +_080BC62C: + mov r3, sb + lsls r0, r3, #0x19 + lsrs r4, r0, #0x18 + movs r0, #0x11 + adds r1, r4, #0 + adds r2, r7, #0 + bl sub_080BCA2C + mov r1, r8 + ldr r0, [r1] + adds r0, r0, r6 + ldrb r0, [r0, #2] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _080BC67E + adds r0, r5, #0 + movs r1, #0x12 + adds r2, r4, #0 + adds r3, r7, #0 + bl CreateMonDexNum + mov r2, r8 + ldr r0, [r2] + adds r0, r0, r6 + ldrb r0, [r0, #2] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1f + movs r1, #0x11 + adds r2, r4, #0 + adds r3, r7, #0 + bl CreateCaughtBall + mov r3, r8 + ldr r0, [r3] + adds r0, r0, r6 + ldrh r0, [r0] + movs r1, #0x17 + adds r2, r4, #0 + bl sub_080BC978 + b _080BC6A0 +_080BC67E: + adds r0, r5, #0 + movs r1, #0x12 + adds r2, r4, #0 + adds r3, r7, #0 + bl CreateMonDexNum + movs r0, #0 + movs r1, #0x11 + adds r2, r4, #0 + adds r3, r7, #0 + bl CreateCaughtBall + movs r0, #0 + movs r1, #0x17 + adds r2, r4, #0 + bl sub_080BC978 +_080BC6A0: + movs r0, #0x80 + lsls r0, r0, #9 + add r0, sl + lsrs r1, r0, #0x10 + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + cmp r0, #0xa + bls _080BC5EE + b _080BC87A +_080BC6B8: + subs r0, r1, #5 + lsls r1, r0, #0x10 + lsrs r5, r1, #0x10 + ldr r0, _080BC6E8 + ldr r2, _080BC6EC + cmp r5, r0 + bhi _080BC6D6 + adds r6, r2, #0 + ldr r3, [r6] + asrs r4, r1, #0xe + adds r0, r3, r4 + ldrh r1, [r0] + ldr r0, _080BC6F0 + cmp r1, r0 + bne _080BC6F4 +_080BC6D6: + ldr r0, [r2] + movs r1, #0xc6 + lsls r1, r1, #3 + adds r0, r0, r1 + movs r2, #0 + ldrsh r1, [r0, r2] + lsls r1, r1, #0x19 + b _080BC7EE + .align 2, 0 +_080BC6E8: .4byte 0x00000181 +_080BC6EC: .4byte 0x020397EC +_080BC6F0: .4byte 0x0000FFFF +_080BC6F4: + movs r1, #0xc6 + lsls r1, r1, #3 + adds r0, r3, r1 + movs r2, #0 + ldrsh r1, [r0, r2] + lsls r1, r1, #0x19 + lsrs r1, r1, #0x18 + movs r0, #0x11 + adds r2, r7, #0 + bl sub_080BCA2C + ldr r1, [r6] + adds r0, r1, r4 + ldrb r0, [r0, #2] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _080BC764 + movs r3, #0xc6 + lsls r3, r3, #3 + adds r0, r1, r3 + movs r1, #0 + ldrsh r2, [r0, r1] + lsls r2, r2, #0x19 + lsrs r2, r2, #0x18 + adds r0, r5, #0 + movs r1, #0x12 + adds r3, r7, #0 + bl CreateMonDexNum + ldr r1, [r6] + adds r0, r1, r4 + ldrb r0, [r0, #2] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1f + movs r2, #0xc6 + lsls r2, r2, #3 + adds r1, r1, r2 + movs r3, #0 + ldrsh r2, [r1, r3] + lsls r2, r2, #0x19 + lsrs r2, r2, #0x18 + movs r1, #0x11 + adds r3, r7, #0 + bl CreateCaughtBall + ldr r1, [r6] + adds r0, r1, r4 + ldrh r0, [r0] + movs r2, #0xc6 + lsls r2, r2, #3 + adds r1, r1, r2 + movs r3, #0 + ldrsh r2, [r1, r3] + lsls r2, r2, #0x19 + lsrs r2, r2, #0x18 + b _080BC7A8 +_080BC764: + movs r2, #0xc6 + lsls r2, r2, #3 + adds r0, r1, r2 + movs r3, #0 + ldrsh r2, [r0, r3] + lsls r2, r2, #0x19 + lsrs r2, r2, #0x18 + adds r0, r5, #0 + movs r1, #0x12 + adds r3, r7, #0 + bl CreateMonDexNum + ldr r0, [r6] + movs r1, #0xc6 + lsls r1, r1, #3 + adds r0, r0, r1 + movs r3, #0 + ldrsh r2, [r0, r3] + lsls r2, r2, #0x19 + lsrs r2, r2, #0x18 + movs r0, #0 + movs r1, #0x11 + adds r3, r7, #0 + bl CreateCaughtBall + ldr r0, [r6] + movs r1, #0xc6 + lsls r1, r1, #3 + adds r0, r0, r1 + movs r3, #0 + ldrsh r2, [r0, r3] + lsls r2, r2, #0x19 + lsrs r2, r2, #0x18 + movs r0, #0 +_080BC7A8: + movs r1, #0x17 + bl sub_080BC978 + b _080BC87A +_080BC7B0: + adds r0, r1, #5 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r0, _080BC7FC + mov r8, r0 + ldr r3, [r0] + movs r2, #0xc6 + lsls r2, r2, #3 + adds r0, r3, r2 + ldrh r0, [r0] + adds r0, #0xa + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0xf + bls _080BC7D6 + adds r0, r2, #0 + subs r0, #0x10 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 +_080BC7D6: + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + ldr r0, _080BC800 + cmp r5, r0 + bhi _080BC7EC + asrs r6, r1, #0xe + adds r0, r3, r6 + ldrh r1, [r0] + ldr r0, _080BC804 + cmp r1, r0 + bne _080BC808 +_080BC7EC: + lsls r1, r2, #0x19 +_080BC7EE: + lsrs r1, r1, #0x18 + movs r0, #0x11 + adds r2, r7, #0 + bl sub_080BCA2C + b _080BC87A + .align 2, 0 +_080BC7FC: .4byte 0x020397EC +_080BC800: .4byte 0x00000181 +_080BC804: .4byte 0x0000FFFF +_080BC808: + lsls r0, r2, #0x19 + lsrs r4, r0, #0x18 + movs r0, #0x11 + adds r1, r4, #0 + adds r2, r7, #0 + bl sub_080BCA2C + mov r3, r8 + ldr r0, [r3] + adds r0, r0, r6 + ldrb r0, [r0, #2] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _080BC858 + adds r0, r5, #0 + movs r1, #0x12 + adds r2, r4, #0 + adds r3, r7, #0 + bl CreateMonDexNum + mov r1, r8 + ldr r0, [r1] + adds r0, r0, r6 + ldrb r0, [r0, #2] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1f + movs r1, #0x11 + adds r2, r4, #0 + adds r3, r7, #0 + bl CreateCaughtBall + mov r2, r8 + ldr r0, [r2] + adds r0, r0, r6 + ldrh r0, [r0] + movs r1, #0x17 + adds r2, r4, #0 + bl sub_080BC978 + b _080BC87A +_080BC858: + adds r0, r5, #0 + movs r1, #0x12 + adds r2, r4, #0 + adds r3, r7, #0 + bl CreateMonDexNum + movs r0, #0 + movs r1, #0x11 + adds r2, r4, #0 + adds r3, r7, #0 + bl CreateCaughtBall + movs r0, #0 + movs r1, #0x17 + adds r2, r4, #0 + bl sub_080BC978 +_080BC87A: + movs r0, #0 + movs r1, #2 + bl CopyWindowToVram + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end CreateMonListEntry + + thumb_func_start CreateMonDexNum +CreateMonDexNum: @ 0x080BC890 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + ldr r1, _080BC924 + add r0, sp, #4 + movs r2, #6 + bl memcpy + ldr r0, _080BC928 + ldr r0, [r0] + lsls r4, r4, #2 + adds r4, r0, r4 + ldrh r6, [r4] + ldr r1, _080BC92C + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0 + bne _080BC8D0 + adds r0, r6, #0 + bl NationalToHoennOrder + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 +_080BC8D0: + add r4, sp, #4 + adds r0, r6, #0 + movs r1, #0x64 + bl __udivsi3 + adds r0, #0xa1 + strb r0, [r4, #2] + add r5, sp, #4 + adds r0, r6, #0 + movs r1, #0x64 + bl __umodsi3 + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r4, #0 + movs r1, #0xa + bl __udivsi3 + adds r0, #0xa1 + strb r0, [r5, #3] + add r5, sp, #4 + adds r0, r4, #0 + movs r1, #0xa + bl __umodsi3 + adds r0, #0xa1 + strb r0, [r5, #4] + str r7, [sp] + movs r0, #0 + movs r1, #1 + add r2, sp, #4 + mov r3, r8 + bl PrintMonDexNumAndName + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080BC924: .4byte 0x08539C08 +_080BC928: .4byte 0x020397EC +_080BC92C: .4byte 0x00000612 + thumb_func_end CreateMonDexNum + + thumb_func_start CreateCaughtBall +CreateCaughtBall: @ 0x080BC930 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r4, r2, #0x18 + cmp r0, #0 + beq _080BC95C + ldr r1, _080BC958 + lsls r2, r3, #3 + lsls r3, r4, #3 + movs r0, #8 + str r0, [sp] + movs r0, #0x10 + str r0, [sp, #4] + movs r0, #0 + bl BlitBitmapToWindow + b _080BC970 + .align 2, 0 +_080BC958: .4byte 0x08539C0E +_080BC95C: + lsls r2, r3, #3 + lsls r3, r4, #3 + movs r0, #8 + str r0, [sp] + movs r0, #0x10 + str r0, [sp, #4] + movs r0, #0 + movs r1, #0 + bl FillWindowPixelRect +_080BC970: + add sp, #8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end CreateCaughtBall + + thumb_func_start sub_080BC978 +sub_080BC978: @ 0x080BC978 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x10 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + movs r4, #0 + movs r1, #0 +_080BC992: + mov r0, sp + adds r0, r0, r4 + adds r0, #4 + strb r1, [r0] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #4 + bls _080BC992 + add r0, sp, #4 + movs r1, #0xff + strb r1, [r0, #5] + adds r0, r5, #0 + bl NationalPokedexNumToSpecies + adds r5, r0, #0 + cmp r5, #0 + beq _080BC9F8 + movs r4, #0 + ldr r1, _080BC9F4 + lsls r3, r5, #1 + adds r0, r3, r5 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0xff + beq _080BCA0E + adds r6, r1, #0 +_080BC9CA: + mov r2, sp + adds r2, r2, r4 + adds r2, #4 + adds r1, r3, r5 + lsls r1, r1, #1 + adds r0, r4, r1 + adds r0, r0, r6 + ldrb r0, [r0] + strb r0, [r2] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r1, r4, r1 + adds r1, r1, r6 + ldrb r0, [r1] + cmp r0, #0xff + beq _080BCA0E + cmp r4, #9 + bls _080BC9CA + b _080BCA0E + .align 2, 0 +_080BC9F4: .4byte 0x082EA31C +_080BC9F8: + movs r4, #0 + movs r1, #0xae +_080BC9FC: + mov r0, sp + adds r0, r0, r4 + adds r0, #4 + strb r1, [r0] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #4 + bls _080BC9FC +_080BCA0E: + str r7, [sp] + movs r0, #0 + movs r1, #1 + add r2, sp, #4 + mov r3, r8 + bl PrintMonDexNumAndName + adds r0, r4, #0 + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080BC978 + + thumb_func_start sub_080BCA2C +sub_080BCA2C: @ 0x080BCA2C + push {lr} + sub sp, #8 + adds r2, r0, #0 + adds r3, r1, #0 + lsls r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r2, r2, #0x15 + lsrs r3, r3, #0x15 + movs r0, #0x60 + str r0, [sp] + movs r0, #0x10 + str r0, [sp, #4] + movs r0, #0 + movs r1, #0 + bl FillWindowPixelRect + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080BCA2C + + thumb_func_start CreateInitialPokemonSprites +CreateInitialPokemonSprites: @ 0x080BCA54 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r8, r1 + ldr r2, _080BCB7C + ldrb r0, [r2, #8] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #8] + movs r2, #0 + ldr r7, _080BCB80 + adds r5, r7, #0 + ldr r4, _080BCB84 + ldr r0, _080BCB88 + adds r3, r0, #0 +_080BCA7A: + ldr r1, [r5] + lsls r0, r2, #1 + adds r1, r1, r4 + adds r1, r1, r0 + ldrh r0, [r1] + orrs r0, r3 + strh r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #3 + bls _080BCA7A + ldr r0, [r7] + ldr r1, _080BCB8C + adds r0, r0, r1 + ldr r1, _080BCB88 + strh r1, [r0] + subs r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetPokemonSpriteToDisplay + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _080BCB88 + cmp r0, r4 + beq _080BCAD4 + movs r1, #0x60 + movs r2, #0x50 + bl sub_080BD26C + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r3, _080BCB90 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r3, #0 + adds r1, #0x1c + adds r1, r0, r1 + ldr r2, _080BCB94 + str r2, [r1] + adds r0, r0, r3 + ldr r1, _080BCB98 + strh r1, [r0, #0x38] +_080BCAD4: + adds r0, r6, #0 + bl GetPokemonSpriteToDisplay + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r4 + beq _080BCB06 + movs r1, #0x60 + movs r2, #0x50 + bl sub_080BD26C + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r3, _080BCB90 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r3, #0 + adds r1, #0x1c + adds r1, r0, r1 + ldr r2, _080BCB94 + str r2, [r1] + adds r0, r0, r3 + movs r1, #0 + strh r1, [r0, #0x38] +_080BCB06: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetPokemonSpriteToDisplay + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r4 + beq _080BCB3C + movs r1, #0x60 + movs r2, #0x50 + bl sub_080BD26C + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r3, _080BCB90 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r3, #0 + adds r1, #0x1c + adds r1, r0, r1 + ldr r2, _080BCB94 + str r2, [r1] + adds r0, r0, r3 + movs r1, #0x20 + strh r1, [r0, #0x38] +_080BCB3C: + movs r0, #0 + adds r1, r6, #0 + mov r2, r8 + bl CreateMonListEntry + ldr r0, [r7] + ldr r2, _080BCB9C + adds r0, r0, r2 + ldrb r1, [r0] + movs r0, #0x1a + bl SetGpuReg + ldr r0, [r7] + movs r2, #0xc6 + lsls r2, r2, #3 + adds r1, r0, r2 + movs r2, #0 + strh r2, [r1] + ldr r1, _080BCBA0 + adds r0, r0, r1 + strh r2, [r0] + ldr r2, _080BCB7C + ldrb r1, [r2, #8] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #8] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080BCB7C: .4byte 0x02037C74 +_080BCB80: .4byte 0x020397EC +_080BCB84: .4byte 0x0000061E +_080BCB88: .4byte 0x0000FFFF +_080BCB8C: .4byte 0x00000626 +_080BCB90: .4byte 0x020205AC +_080BCB94: .4byte 0x080BDC81 +_080BCB98: .4byte 0x0000FFE0 +_080BCB9C: .4byte 0x0000062D +_080BCBA0: .4byte 0x00000632 + thumb_func_end CreateInitialPokemonSprites + + thumb_func_start sub_080BCBA4 +sub_080BCBA4: @ 0x080BCBA4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + ldr r0, _080BCBD8 + ldr r1, [r0] + ldr r3, _080BCBDC + adds r2, r1, r3 + ldrb r3, [r2] + adds r7, r0, #0 + cmp r3, #0 + bne _080BCBC8 + b _080BCD18 +_080BCBC8: + subs r0, r3, #1 + strb r0, [r2] + cmp r4, #1 + beq _080BCBE0 + cmp r4, #2 + beq _080BCC7C + b _080BCCF8 + .align 2, 0 +_080BCBD8: .4byte 0x020397EC +_080BCBDC: .4byte 0x0000062E +_080BCBE0: + movs r3, #0 + ldr r4, _080BCC60 + mov ip, r4 + ldr r0, _080BCC64 + mov r8, r0 + adds r2, r7, #0 +_080BCBEC: + ldr r0, [r2] + lsls r1, r3, #1 + ldr r4, _080BCC68 + adds r0, r0, r4 + adds r1, r0, r1 + ldrh r0, [r1] + cmp r0, ip + beq _080BCC0A + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + add r1, r8 + ldrh r0, [r1, #0x38] + adds r0, r0, r5 + strh r0, [r1, #0x38] +_080BCC0A: + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #3 + bls _080BCBEC + ldr r4, [r7] + ldr r1, _080BCC6C + adds r0, r4, r1 + ldrb r0, [r0] + subs r0, r6, r0 + lsls r0, r0, #4 + adds r1, r6, #0 + bl __divsi3 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r3, _080BCC70 + adds r0, r4, r3 + ldr r1, _080BCC74 + adds r4, r4, r1 + movs r3, #0 + ldrsh r1, [r4, r3] + lsls r1, r1, #4 + ldrb r0, [r0] + adds r1, r1, r0 + subs r1, r1, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x1a + bl SetGpuReg + ldr r0, [r7] + ldr r4, _080BCC78 + adds r2, r0, r4 + movs r1, #0xc5 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrb r1, [r0] + ldrb r0, [r2] + subs r0, r0, r1 + strb r0, [r2] + b _080BCCF8 + .align 2, 0 +_080BCC60: .4byte 0x0000FFFF +_080BCC64: .4byte 0x020205AC +_080BCC68: .4byte 0x0000061E +_080BCC6C: .4byte 0x0000062E +_080BCC70: .4byte 0x0000062D +_080BCC74: .4byte 0x00000632 +_080BCC78: .4byte 0x0000062C +_080BCC7C: + movs r3, #0 + ldr r2, _080BCCFC + mov ip, r2 + ldr r4, _080BCD00 + mov r8, r4 + adds r2, r7, #0 +_080BCC88: + ldr r0, [r2] + lsls r1, r3, #1 + ldr r4, _080BCD04 + adds r0, r0, r4 + adds r1, r0, r1 + ldrh r0, [r1] + cmp r0, ip + beq _080BCCA6 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + add r1, r8 + ldrh r0, [r1, #0x38] + subs r0, r0, r5 + strh r0, [r1, #0x38] +_080BCCA6: + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #3 + bls _080BCC88 + ldr r4, [r7] + ldr r1, _080BCD08 + adds r0, r4, r1 + ldrb r0, [r0] + subs r0, r6, r0 + lsls r0, r0, #4 + adds r1, r6, #0 + bl __divsi3 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r3, _080BCD0C + adds r0, r4, r3 + ldr r1, _080BCD10 + adds r4, r4, r1 + movs r3, #0 + ldrsh r1, [r4, r3] + lsls r1, r1, #4 + ldrb r0, [r0] + adds r1, r1, r0 + adds r1, r1, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x1a + bl SetGpuReg + ldr r0, [r7] + ldr r4, _080BCD14 + adds r1, r0, r4 + movs r2, #0xc5 + lsls r2, r2, #3 + adds r0, r0, r2 + ldrb r0, [r0] + ldrb r3, [r1] + adds r0, r0, r3 + strb r0, [r1] +_080BCCF8: + movs r0, #0 + b _080BCD38 + .align 2, 0 +_080BCCFC: .4byte 0x0000FFFF +_080BCD00: .4byte 0x020205AC +_080BCD04: .4byte 0x0000061E +_080BCD08: .4byte 0x0000062E +_080BCD0C: .4byte 0x0000062D +_080BCD10: .4byte 0x00000632 +_080BCD14: .4byte 0x0000062C +_080BCD18: + ldr r4, _080BCD44 + adds r2, r1, r4 + movs r3, #0xc6 + lsls r3, r3, #3 + adds r0, r1, r3 + movs r4, #0 + ldrsh r1, [r0, r4] + lsls r1, r1, #4 + ldrb r2, [r2] + adds r1, r1, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x1a + bl SetGpuReg + movs r0, #1 +_080BCD38: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080BCD44: .4byte 0x0000062D + thumb_func_end sub_080BCBA4 + + thumb_func_start CreateNewPokemonSprite +CreateNewPokemonSprite: @ 0x080BCD48 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r3, r1, #0x10 + ldr r4, _080BCD70 + ldr r0, [r4] + movs r5, #0xc6 + lsls r5, r5, #3 + adds r1, r0, r5 + ldrh r1, [r1] + ldr r6, _080BCD74 + adds r0, r0, r6 + strh r1, [r0] + cmp r2, #1 + beq _080BCD78 + cmp r2, #2 + beq _080BCDD8 + b _080BCE34 + .align 2, 0 +_080BCD70: .4byte 0x020397EC +_080BCD74: .4byte 0x00000632 +_080BCD78: + subs r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetPokemonSpriteToDisplay + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r0, _080BCDC4 + cmp r1, r0 + beq _080BCDB2 + adds r0, r1, #0 + movs r1, #0x60 + movs r2, #0x50 + bl sub_080BD26C + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r3, _080BCDC8 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r3, #0 + adds r1, #0x1c + adds r1, r0, r1 + ldr r2, _080BCDCC + str r2, [r1] + adds r0, r0, r3 + ldr r1, _080BCDD0 + strh r1, [r0, #0x38] +_080BCDB2: + ldr r0, [r4] + adds r1, r0, r5 + ldrh r2, [r1] + movs r3, #0 + ldrsh r0, [r1, r3] + cmp r0, #0 + ble _080BCDD4 + subs r0, r2, #1 + b _080BCE32 + .align 2, 0 +_080BCDC4: .4byte 0x0000FFFF +_080BCDC8: .4byte 0x020205AC +_080BCDCC: .4byte 0x080BDC81 +_080BCDD0: .4byte 0x0000FFC0 +_080BCDD4: + movs r0, #0xf + b _080BCE32 +_080BCDD8: + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetPokemonSpriteToDisplay + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r0, _080BCE24 + cmp r1, r0 + beq _080BCE12 + adds r0, r1, #0 + movs r1, #0x60 + movs r2, #0x50 + bl sub_080BD26C + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r3, _080BCE28 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r3, #0 + adds r1, #0x1c + adds r1, r0, r1 + ldr r2, _080BCE2C + str r2, [r1] + adds r0, r0, r3 + movs r1, #0x40 + strh r1, [r0, #0x38] +_080BCE12: + ldr r0, [r4] + adds r1, r0, r5 + ldrh r2, [r1] + movs r6, #0 + ldrsh r0, [r1, r6] + cmp r0, #0xe + bgt _080BCE30 + adds r0, r2, #1 + b _080BCE32 + .align 2, 0 +_080BCE24: .4byte 0x0000FFFF +_080BCE28: .4byte 0x020205AC +_080BCE2C: .4byte 0x080BDC81 +_080BCE30: + movs r0, #0 +_080BCE32: + strh r0, [r1] +_080BCE34: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CreateNewPokemonSprite + + thumb_func_start sub_080BCE3C +sub_080BCE3C: @ 0x080BCE3C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + movs r0, #0 + mov sl, r0 + ldr r2, _080BCE90 + ldrh r1, [r2, #0x2c] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080BCE9C + cmp r7, #0 + beq _080BCE9C + movs r1, #1 + mov sl, r1 + ldr r0, _080BCE94 + ldr r0, [r0] + ldr r2, _080BCE98 + adds r0, r0, r2 + ldrh r3, [r0] + subs r3, #1 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + movs r0, #1 + adds r1, r7, #0 + movs r2, #0 + bl sub_080C0364 + adds r7, r0, #0 + movs r0, #1 + adds r1, r7, #0 + bl CreateNewPokemonSprite + movs r0, #1 + b _080BCED4 + .align 2, 0 +_080BCE90: .4byte 0x03002360 +_080BCE94: .4byte 0x020397EC +_080BCE98: .4byte 0x0000060C +_080BCE9C: + ldrh r1, [r2, #0x2c] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080BCEEC + ldr r0, _080BCEE4 + ldr r0, [r0] + ldr r3, _080BCEE8 + adds r0, r0, r3 + ldrh r0, [r0] + subs r0, #1 + cmp r7, r0 + bge _080BCEEC + movs r1, #2 + mov sl, r1 + lsls r3, r0, #0x10 + lsrs r3, r3, #0x10 + movs r0, #0 + adds r1, r7, #0 + movs r2, #0 + bl sub_080C0364 + adds r7, r0, #0 + movs r0, #2 + adds r1, r7, #0 + bl CreateNewPokemonSprite + movs r0, #2 +_080BCED4: + adds r1, r7, #0 + adds r2, r4, #0 + bl CreateMonListEntry + movs r0, #0x6c + bl PlaySE + b _080BCFBA + .align 2, 0 +_080BCEE4: .4byte 0x020397EC +_080BCEE8: .4byte 0x0000060C +_080BCEEC: + ldrh r1, [r2, #0x2e] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080BCF54 + cmp r7, #0 + beq _080BCF54 + adds r6, r7, #0 + movs r4, #0 +_080BCEFE: + ldr r5, _080BCF48 + ldr r0, [r5] + ldr r2, _080BCF4C + adds r0, r0, r2 + ldrh r3, [r0] + subs r3, #1 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + movs r0, #1 + adds r1, r7, #0 + movs r2, #0 + bl sub_080C0364 + adds r7, r0, #0 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #6 + bls _080BCEFE + ldr r1, [r5] + ldr r3, _080BCF50 + adds r1, r1, r3 + subs r0, r7, r6 + lsls r0, r0, #4 + ldrb r2, [r1] + adds r0, r0, r2 + strb r0, [r1] + bl sub_080BD1E0 + adds r0, r7, #0 + movs r1, #0xe + bl CreateInitialPokemonSprites + movs r0, #0x6d + bl PlaySE + b _080BCFBA + .align 2, 0 +_080BCF48: .4byte 0x020397EC +_080BCF4C: .4byte 0x0000060C +_080BCF50: .4byte 0x0000062C +_080BCF54: + ldrh r1, [r2, #0x2e] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080BCFBA + ldr r0, _080BCFD0 + ldr r0, [r0] + ldr r3, _080BCFD4 + adds r0, r0, r3 + ldrh r0, [r0] + subs r0, #1 + cmp r7, r0 + bge _080BCFBA + adds r6, r7, #0 + movs r4, #0 +_080BCF72: + ldr r5, _080BCFD0 + ldr r0, [r5] + ldr r1, _080BCFD4 + adds r0, r0, r1 + ldrh r3, [r0] + subs r3, #1 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + movs r0, #0 + adds r1, r7, #0 + movs r2, #0 + bl sub_080C0364 + adds r7, r0, #0 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #6 + bls _080BCF72 + ldr r1, [r5] + ldr r2, _080BCFD8 + adds r1, r1, r2 + subs r0, r7, r6 + lsls r0, r0, #4 + ldrb r3, [r1] + adds r0, r0, r3 + strb r0, [r1] + bl sub_080BD1E0 + adds r0, r7, #0 + movs r1, #0xe + bl CreateInitialPokemonSprites + movs r0, #0x6d + bl PlaySE +_080BCFBA: + mov r0, sl + cmp r0, #0 + bne _080BCFDC + ldr r0, _080BCFD0 + ldr r0, [r0] + movs r1, #0xc7 + lsls r1, r1, #3 + adds r0, r0, r1 + mov r2, sl + strh r2, [r0] + b _080BD042 + .align 2, 0 +_080BCFD0: .4byte 0x020397EC +_080BCFD4: .4byte 0x0000060C +_080BCFD8: .4byte 0x0000062C +_080BCFDC: + ldr r1, _080BD054 + ldr r6, _080BD058 + ldr r2, [r6] + movs r3, #0xc7 + lsls r3, r3, #3 + mov sb, r3 + adds r0, r2, r3 + ldrh r0, [r0] + lsrs r0, r0, #2 + adds r1, r0, r1 + ldrb r5, [r1] + ldr r1, _080BD05C + adds r0, r0, r1 + ldrb r3, [r0] + ldr r0, _080BD060 + adds r2, r2, r0 + strb r3, [r2] + ldr r1, [r6] + ldr r2, _080BD064 + mov r8, r2 + adds r0, r1, r2 + strh r3, [r0] + ldr r4, _080BD068 + adds r0, r1, r4 + strh r5, [r0] + ldr r3, _080BD06C + adds r1, r1, r3 + mov r0, sl + strb r0, [r1] + ldr r2, [r6] + lsrs r5, r5, #1 + movs r1, #0xc5 + lsls r1, r1, #3 + adds r0, r2, r1 + strh r5, [r0] + adds r3, r2, r3 + ldrb r0, [r3] + adds r4, r2, r4 + ldrb r1, [r4] + add r2, r8 + ldrb r2, [r2] + bl sub_080BCBA4 + ldr r0, [r6] + mov r2, sb + adds r1, r0, r2 + ldrh r0, [r1] + cmp r0, #0xb + bhi _080BD042 + adds r0, #1 + strh r0, [r1] +_080BD042: + adds r0, r7, #0 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080BD054: .4byte 0x08539BDC +_080BD058: .4byte 0x020397EC +_080BD05C: .4byte 0x08539BE1 +_080BD060: .4byte 0x0000062E +_080BD064: .4byte 0x00000636 +_080BD068: .4byte 0x00000634 +_080BD06C: .4byte 0x0000062F + thumb_func_end sub_080BCE3C + + thumb_func_start sub_080BD070 +sub_080BD070: @ 0x080BD070 + push {r4, r5, r6, r7, lr} + movs r4, #0 + ldr r0, _080BD0BC + mov ip, r0 + ldr r6, _080BD0C0 + ldr r5, _080BD0C4 +_080BD07C: + mov r1, ip + ldr r3, [r1] + lsls r1, r4, #1 + ldr r2, _080BD0C8 + adds r0, r3, r2 + adds r0, r0, r1 + ldrh r2, [r0] + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r1, r0, r6 + movs r7, #0x24 + ldrsh r0, [r1, r7] + cmp r0, #0 + bne _080BD0AC + movs r7, #0x26 + ldrsh r0, [r1, r7] + cmp r0, #0 + bne _080BD0AC + cmp r2, r5 + beq _080BD0AC + ldr r1, _080BD0CC + adds r0, r3, r1 + strh r2, [r0] +_080BD0AC: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #3 + bls _080BD07C + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080BD0BC: .4byte 0x020397EC +_080BD0C0: .4byte 0x020205AC +_080BD0C4: .4byte 0x0000FFFF +_080BD0C8: .4byte 0x0000061E +_080BD0CC: .4byte 0x00000626 + thumb_func_end sub_080BD070 + + thumb_func_start sub_080BD0D0 +sub_080BD0D0: @ 0x080BD0D0 + push {r4, r5, r6, lr} + ldr r3, _080BD130 + ldr r0, [r3] + ldr r1, _080BD134 + adds r0, r0, r1 + ldrh r4, [r0] + ldr r2, _080BD138 + ldrh r1, [r2, #0x2e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080BD158 + cmp r4, #0 + beq _080BD158 + adds r2, r4, #0 + adds r5, r3, #0 +_080BD0F0: + ldr r0, [r5] + ldr r1, _080BD13C + adds r0, r0, r1 + ldrh r3, [r0] + subs r3, #1 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + movs r0, #1 + adds r1, r2, #0 + movs r2, #0 + bl sub_080C0364 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, [r5] + lsls r1, r2, #2 + adds r0, r0, r1 + ldrb r0, [r0, #2] + lsls r0, r0, #0x1f + cmp r0, #0 + bne _080BD140 + cmp r2, #0 + bne _080BD0F0 +_080BD11E: + ldr r0, _080BD130 + ldr r1, [r0] + ldr r0, _080BD134 + adds r2, r1, r0 + ldrh r0, [r2] + cmp r0, r4 + bne _080BD144 + b _080BD1D8 + .align 2, 0 +_080BD130: .4byte 0x020397EC +_080BD134: .4byte 0x0000060E +_080BD138: .4byte 0x03002360 +_080BD13C: .4byte 0x0000060C +_080BD140: + adds r4, r2, #0 + b _080BD11E +_080BD144: + strh r4, [r2] + ldr r0, _080BD150 + adds r1, r1, r0 + ldrb r0, [r1] + subs r0, #0x10 + b _080BD1C0 + .align 2, 0 +_080BD150: .4byte 0x0000062C +_080BD154: + adds r4, r2, #0 + b _080BD1A8 +_080BD158: + ldrh r1, [r2, #0x2e] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080BD1D8 + ldr r0, [r3] + ldr r1, _080BD1C8 + adds r0, r0, r1 + ldrh r0, [r0] + subs r0, #1 + cmp r4, r0 + bge _080BD1D8 + adds r2, r4, #0 + adds r6, r3, #0 + adds r5, r1, #0 +_080BD176: + ldr r0, [r6] + adds r0, r0, r5 + ldrh r3, [r0] + subs r3, #1 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + movs r0, #0 + adds r1, r2, #0 + movs r2, #0 + bl sub_080C0364 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r1, [r6] + lsls r0, r2, #2 + adds r0, r1, r0 + ldrb r0, [r0, #2] + lsls r0, r0, #0x1f + cmp r0, #0 + bne _080BD154 + adds r0, r1, r5 + ldrh r0, [r0] + subs r0, #1 + cmp r2, r0 + blt _080BD176 +_080BD1A8: + ldr r0, _080BD1CC + ldr r1, [r0] + ldr r0, _080BD1D0 + adds r2, r1, r0 + ldrh r0, [r2] + cmp r0, r4 + beq _080BD1D8 + strh r4, [r2] + ldr r0, _080BD1D4 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #0x10 +_080BD1C0: + strb r0, [r1] + movs r0, #1 + b _080BD1DA + .align 2, 0 +_080BD1C8: .4byte 0x0000060C +_080BD1CC: .4byte 0x020397EC +_080BD1D0: .4byte 0x0000060E +_080BD1D4: .4byte 0x0000062C +_080BD1D8: + movs r0, #0 +_080BD1DA: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_080BD0D0 + + thumb_func_start sub_080BD1E0 +sub_080BD1E0: @ 0x080BD1E0 + push {r4, r5, r6, r7, lr} + movs r5, #0 + ldr r6, _080BD220 + ldr r7, _080BD224 +_080BD1E8: + ldr r0, [r6] + lsls r4, r5, #1 + ldr r1, _080BD228 + adds r0, r0, r1 + adds r1, r0, r4 + ldrh r0, [r1] + cmp r0, r7 + beq _080BD20C + bl FreeAndDestroyMonPicSprite + ldr r1, [r6] + ldr r0, _080BD228 + adds r1, r1, r0 + adds r1, r1, r4 + ldrh r2, [r1] + adds r0, r7, #0 + orrs r0, r2 + strh r0, [r1] +_080BD20C: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #3 + bls _080BD1E8 + movs r0, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080BD220: .4byte 0x020397EC +_080BD224: .4byte 0x0000FFFF +_080BD228: .4byte 0x0000061E + thumb_func_end sub_080BD1E0 + + thumb_func_start GetPokemonSpriteToDisplay +GetPokemonSpriteToDisplay: @ 0x080BD22C + push {lr} + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _080BD24C + cmp r2, r0 + bhi _080BD248 + ldr r0, _080BD250 + ldr r1, [r0] + lsls r0, r2, #2 + adds r2, r1, r0 + ldrh r1, [r2] + ldr r0, _080BD254 + cmp r1, r0 + bne _080BD258 +_080BD248: + ldr r0, _080BD254 + b _080BD266 + .align 2, 0 +_080BD24C: .4byte 0x00000181 +_080BD250: .4byte 0x020397EC +_080BD254: .4byte 0x0000FFFF +_080BD258: + ldrb r0, [r2, #2] + lsls r0, r0, #0x1f + cmp r0, #0 + bne _080BD264 + movs r0, #0 + b _080BD266 +_080BD264: + ldrh r0, [r2] +_080BD266: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetPokemonSpriteToDisplay + + thumb_func_start sub_080BD26C +sub_080BD26C: @ 0x080BD26C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + movs r6, #0 + ldr r0, _080BD2F0 + mov sb, r0 + ldr r3, _080BD2F4 + lsls r1, r1, #0x10 +_080BD288: + mov r4, sb + ldr r0, [r4] + lsls r7, r6, #1 + ldr r4, _080BD2F8 + adds r0, r0, r4 + adds r0, r0, r7 + ldrh r0, [r0] + cmp r0, r3 + bne _080BD300 + lsls r2, r2, #0x10 + mov r0, r8 + asrs r1, r1, #0x10 + asrs r2, r2, #0x10 + adds r3, r6, #0 + bl CreateMonSpriteFromNationalDexNumber + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _080BD2FC + lsls r4, r5, #4 + adds r4, r4, r5 + lsls r4, r4, #2 + adds r4, r4, r0 + ldrb r1, [r4, #1] + movs r2, #4 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #1] + ldrb r0, [r4, #5] + movs r1, #0xc + orrs r0, r1 + strb r0, [r4, #5] + movs r0, #0 + strh r0, [r4, #0x2e] + strh r6, [r4, #0x30] + mov r0, r8 + bl NationalPokedexNumToSpecies + strh r0, [r4, #0x32] + mov r4, sb + ldr r0, [r4] + ldr r1, _080BD2F8 + adds r0, r0, r1 + adds r0, r0, r7 + strh r5, [r0] + adds r0, r5, #0 + b _080BD30C + .align 2, 0 +_080BD2F0: .4byte 0x020397EC +_080BD2F4: .4byte 0x0000FFFF +_080BD2F8: .4byte 0x0000061E +_080BD2FC: .4byte 0x020205AC +_080BD300: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #3 + bls _080BD288 + ldr r0, _080BD318 +_080BD30C: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080BD318: .4byte 0x0000FFFF + thumb_func_end sub_080BD26C + + thumb_func_start CreateInterfaceSprites +CreateInterfaceSprites: @ 0x080BD31C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov r8, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r4, _080BD4E8 + adds r0, r4, #0 + movs r1, #0xb8 + movs r2, #4 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r1, _080BD4EC + mov sl, r1 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + add r0, sl + movs r1, #0 + strh r1, [r0, #0x30] + adds r0, r4, #0 + movs r1, #0xb8 + movs r2, #0x9c + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + add r0, sl + movs r1, #1 + strh r1, [r0, #0x30] + adds r0, #0x3f + ldrb r1, [r0] + movs r2, #2 + orrs r1, r2 + strb r1, [r0] + ldr r0, _080BD4F0 + movs r1, #0xe4 + movs r2, #0x14 + movs r3, #0 + bl CreateSprite + ldr r5, _080BD4F4 + adds r0, r5, #0 + movs r1, #0x10 + movs r2, #0x78 + movs r3, #0 + bl CreateSprite + adds r0, r5, #0 + movs r1, #0x30 + movs r2, #0x78 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + add r0, sl + movs r1, #3 + bl StartSpriteAnim + adds r0, r5, #0 + movs r1, #0x10 + movs r2, #0x90 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r4, r7, #4 + adds r4, r4, r7 + lsls r4, r4, #2 + add r4, sl + adds r0, r4, #0 + movs r1, #2 + bl StartSpriteAnim + movs r0, #0x80 + mov sb, r0 + mov r1, sb + strh r1, [r4, #0x32] + adds r0, r5, #0 + movs r1, #0x30 + movs r2, #0x90 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + add r0, sl + movs r1, #1 + bl StartSpriteAnim + ldr r6, _080BD4F8 + adds r0, r6, #0 + movs r1, #0 + movs r2, #0x50 + movs r3, #2 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r1, r7, #4 + adds r1, r1, r7 + lsls r1, r1, #2 + add r1, sl + ldrb r2, [r1, #1] + movs r4, #4 + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r2 + movs r5, #1 + orrs r0, r5 + strb r0, [r1, #1] + ldrb r2, [r1, #3] + movs r0, #0x3f + rsbs r0, r0, #0 + ands r0, r2 + movs r2, #0x3c + orrs r0, r2 + strb r0, [r1, #3] + movs r0, #0x1e + strh r0, [r1, #0x2e] + movs r0, #0 + strh r0, [r1, #0x30] + adds r0, r6, #0 + movs r1, #0 + movs r2, #0x50 + movs r3, #2 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r1, r7, #4 + adds r1, r1, r7 + lsls r1, r1, #2 + add r1, sl + ldrb r0, [r1, #1] + ands r4, r0 + orrs r4, r5 + strb r4, [r1, #1] + ldrb r0, [r1, #3] + movs r2, #0x3e + orrs r0, r2 + strb r0, [r1, #3] + movs r0, #0x1f + strh r0, [r1, #0x2e] + mov r0, sb + strh r0, [r1, #0x30] + mov r1, r8 + cmp r1, #0 + beq _080BD46C + b _080BDBB4 +_080BD46C: + bl IsNationalPokedexEnabled + cmp r0, #0 + beq _080BD476 + b _080BD6EC +_080BD476: + ldr r4, _080BD4FC + adds r0, r4, #0 + movs r1, #0x20 + movs r2, #0x28 + movs r3, #1 + bl CreateSprite + adds r0, r4, #0 + movs r1, #0x20 + movs r2, #0x48 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + add r0, sl + movs r1, #1 + bl StartSpriteAnim + movs r0, #0 + mov r8, r0 + ldr r0, _080BD500 + movs r1, #0x18 + movs r2, #0x30 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _080BD504 + ldr r0, [r0] + ldr r1, _080BD508 + adds r0, r0, r1 + ldrh r0, [r0] + movs r1, #0x64 + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + mov r1, sl + adds r4, r0, r1 + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim + cmp r5, #0 + beq _080BD50C + movs r0, #1 + mov r8, r0 + b _080BD518 + .align 2, 0 +_080BD4E8: .4byte 0x08539AFC +_080BD4EC: .4byte 0x020205AC +_080BD4F0: .4byte 0x08539AE4 +_080BD4F4: .4byte 0x08539B14 +_080BD4F8: .4byte 0x08539B2C +_080BD4FC: .4byte 0x08539B44 +_080BD500: .4byte 0x08539B74 +_080BD504: .4byte 0x020397EC +_080BD508: .4byte 0x0000061A +_080BD50C: + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_080BD518: + ldr r0, _080BD564 + movs r1, #0x20 + movs r2, #0x30 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _080BD568 + ldr r0, [r0] + ldr r1, _080BD56C + adds r0, r0, r1 + ldrh r0, [r0] + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0 + bne _080BD550 + mov r0, r8 + cmp r0, #0 + beq _080BD574 +_080BD550: + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + ldr r1, _080BD570 + adds r0, r0, r1 + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + bl StartSpriteAnim + b _080BD588 + .align 2, 0 +_080BD564: .4byte 0x08539B74 +_080BD568: .4byte 0x020397EC +_080BD56C: .4byte 0x0000061A +_080BD570: .4byte 0x020205AC +_080BD574: + ldr r1, _080BD60C + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + adds r0, r0, r1 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_080BD588: + ldr r6, _080BD610 + adds r0, r6, #0 + movs r1, #0x28 + movs r2, #0x30 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r5, _080BD614 + ldr r0, [r5] + ldr r1, _080BD618 + adds r0, r0, r1 + ldrh r0, [r0] + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __umodsi3 + adds r1, r0, #0 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + ldr r4, _080BD60C + adds r0, r0, r4 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl StartSpriteAnim + movs r0, #0 + mov r8, r0 + adds r0, r6, #0 + movs r1, #0x18 + movs r2, #0x50 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, [r5] + ldr r1, _080BD61C + adds r0, r0, r1 + ldrh r0, [r0] + movs r1, #0x64 + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + adds r4, r0, r4 + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim + cmp r5, #0 + beq _080BD620 + movs r0, #1 + mov r8, r0 + b _080BD62C + .align 2, 0 +_080BD60C: .4byte 0x020205AC +_080BD610: .4byte 0x08539B74 +_080BD614: .4byte 0x020397EC +_080BD618: .4byte 0x0000061A +_080BD61C: .4byte 0x0000061C +_080BD620: + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_080BD62C: + ldr r0, _080BD678 + movs r1, #0x20 + movs r2, #0x50 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _080BD67C + ldr r0, [r0] + ldr r1, _080BD680 + adds r0, r0, r1 + ldrh r0, [r0] + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0 + bne _080BD664 + mov r0, r8 + cmp r0, #0 + beq _080BD688 +_080BD664: + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + ldr r1, _080BD684 + adds r0, r0, r1 + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + bl StartSpriteAnim + b _080BD69C + .align 2, 0 +_080BD678: .4byte 0x08539B74 +_080BD67C: .4byte 0x020397EC +_080BD680: .4byte 0x0000061C +_080BD684: .4byte 0x020205AC +_080BD688: + ldr r1, _080BD6DC + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + adds r0, r0, r1 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_080BD69C: + ldr r0, _080BD6E0 + movs r1, #0x28 + movs r2, #0x50 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _080BD6E4 + ldr r0, [r0] + ldr r1, _080BD6E8 + adds r0, r0, r1 + ldrh r0, [r0] + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __umodsi3 + adds r1, r0, #0 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + ldr r2, _080BD6DC + adds r0, r0, r2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl StartSpriteAnim + b _080BDB82 + .align 2, 0 +_080BD6DC: .4byte 0x020205AC +_080BD6E0: .4byte 0x08539B74 +_080BD6E4: .4byte 0x020397EC +_080BD6E8: .4byte 0x0000061C +_080BD6EC: + ldr r4, _080BD7B8 + adds r0, r4, #0 + movs r1, #0x20 + movs r2, #0x28 + movs r3, #1 + bl CreateSprite + adds r0, r4, #0 + movs r1, #0x20 + movs r2, #0x4c + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + add r0, sl + movs r1, #1 + bl StartSpriteAnim + ldr r4, _080BD7BC + adds r0, r4, #0 + movs r1, #0x11 + movs r2, #0x2d + movs r3, #1 + bl CreateSprite + adds r0, r4, #0 + movs r1, #0x11 + movs r2, #0x37 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + add r0, sl + movs r1, #1 + bl StartSpriteAnim + adds r0, r4, #0 + movs r1, #0x11 + movs r2, #0x51 + movs r3, #1 + bl CreateSprite + adds r0, r4, #0 + movs r1, #0x11 + movs r2, #0x5b + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + add r0, sl + movs r1, #1 + bl StartSpriteAnim + movs r0, #0 + bl GetHoennPokedexCount + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + movs r0, #0 + mov r8, r0 + ldr r0, _080BD7C0 + movs r1, #0x28 + movs r2, #0x2d + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + adds r0, r6, #0 + movs r1, #0x64 + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + mov r1, sl + adds r4, r0, r1 + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim + cmp r5, #0 + beq _080BD7C4 + movs r0, #1 + mov r8, r0 + b _080BD7D0 + .align 2, 0 +_080BD7B8: .4byte 0x08539B44 +_080BD7BC: .4byte 0x08539B5C +_080BD7C0: .4byte 0x08539B8C +_080BD7C4: + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_080BD7D0: + ldr r0, _080BD814 + movs r1, #0x30 + movs r2, #0x2d + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + adds r0, r6, #0 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0 + bne _080BD800 + mov r1, r8 + cmp r1, #0 + beq _080BD81C +_080BD800: + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + ldr r1, _080BD818 + adds r0, r0, r1 + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + bl StartSpriteAnim + b _080BD830 + .align 2, 0 +_080BD814: .4byte 0x08539B8C +_080BD818: .4byte 0x020205AC +_080BD81C: + ldr r1, _080BD8AC + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + adds r0, r0, r1 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_080BD830: + ldr r5, _080BD8B0 + adds r0, r5, #0 + movs r1, #0x38 + movs r2, #0x2d + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + adds r0, r6, #0 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __umodsi3 + adds r1, r0, #0 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + ldr r4, _080BD8AC + adds r0, r0, r4 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl StartSpriteAnim + movs r0, #0 + mov r8, r0 + adds r0, r5, #0 + movs r1, #0x28 + movs r2, #0x37 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _080BD8B4 + ldr r0, [r0] + ldr r1, _080BD8B8 + adds r0, r0, r1 + ldrh r0, [r0] + movs r1, #0x64 + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + adds r4, r0, r4 + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim + cmp r5, #0 + beq _080BD8BC + movs r0, #1 + mov r8, r0 + b _080BD8C8 + .align 2, 0 +_080BD8AC: .4byte 0x020205AC +_080BD8B0: .4byte 0x08539B8C +_080BD8B4: .4byte 0x020397EC +_080BD8B8: .4byte 0x0000061A +_080BD8BC: + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_080BD8C8: + ldr r0, _080BD914 + movs r1, #0x30 + movs r2, #0x37 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _080BD918 + ldr r0, [r0] + ldr r1, _080BD91C + adds r0, r0, r1 + ldrh r0, [r0] + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0 + bne _080BD900 + mov r0, r8 + cmp r0, #0 + beq _080BD924 +_080BD900: + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + ldr r1, _080BD920 + adds r0, r0, r1 + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + bl StartSpriteAnim + b _080BD938 + .align 2, 0 +_080BD914: .4byte 0x08539B8C +_080BD918: .4byte 0x020397EC +_080BD91C: .4byte 0x0000061A +_080BD920: .4byte 0x020205AC +_080BD924: + ldr r1, _080BD9C0 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + adds r0, r0, r1 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_080BD938: + ldr r5, _080BD9C4 + adds r0, r5, #0 + movs r1, #0x38 + movs r2, #0x37 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _080BD9C8 + ldr r0, [r0] + ldr r1, _080BD9CC + adds r0, r0, r1 + ldrh r0, [r0] + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __umodsi3 + adds r1, r0, #0 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + ldr r4, _080BD9C0 + adds r0, r0, r4 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl StartSpriteAnim + movs r0, #1 + bl GetHoennPokedexCount + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + movs r0, #0 + mov r8, r0 + adds r0, r5, #0 + movs r1, #0x28 + movs r2, #0x51 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + adds r0, r6, #0 + movs r1, #0x64 + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + adds r4, r0, r4 + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim + cmp r5, #0 + beq _080BD9D0 + movs r1, #1 + mov r8, r1 + b _080BD9DC + .align 2, 0 +_080BD9C0: .4byte 0x020205AC +_080BD9C4: .4byte 0x08539B8C +_080BD9C8: .4byte 0x020397EC +_080BD9CC: .4byte 0x0000061A +_080BD9D0: + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_080BD9DC: + ldr r0, _080BDA20 + movs r1, #0x30 + movs r2, #0x51 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + adds r0, r6, #0 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0 + bne _080BDA0C + mov r0, r8 + cmp r0, #0 + beq _080BDA28 +_080BDA0C: + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + ldr r1, _080BDA24 + adds r0, r0, r1 + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + bl StartSpriteAnim + b _080BDA3C + .align 2, 0 +_080BDA20: .4byte 0x08539B8C +_080BDA24: .4byte 0x020205AC +_080BDA28: + ldr r1, _080BDAB8 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + adds r0, r0, r1 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_080BDA3C: + ldr r5, _080BDABC + adds r0, r5, #0 + movs r1, #0x38 + movs r2, #0x51 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + adds r0, r6, #0 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __umodsi3 + adds r1, r0, #0 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + ldr r4, _080BDAB8 + adds r0, r0, r4 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl StartSpriteAnim + movs r1, #0 + mov r8, r1 + adds r0, r5, #0 + movs r1, #0x28 + movs r2, #0x5b + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _080BDAC0 + ldr r0, [r0] + ldr r1, _080BDAC4 + adds r0, r0, r1 + ldrh r0, [r0] + movs r1, #0x64 + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + adds r4, r0, r4 + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim + cmp r5, #0 + beq _080BDAC8 + movs r0, #1 + mov r8, r0 + b _080BDAD4 + .align 2, 0 +_080BDAB8: .4byte 0x020205AC +_080BDABC: .4byte 0x08539B8C +_080BDAC0: .4byte 0x020397EC +_080BDAC4: .4byte 0x0000061C +_080BDAC8: + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_080BDAD4: + ldr r0, _080BDB20 + movs r1, #0x30 + movs r2, #0x5b + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _080BDB24 + ldr r0, [r0] + ldr r1, _080BDB28 + adds r0, r0, r1 + ldrh r0, [r0] + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0 + bne _080BDB0C + mov r0, r8 + cmp r0, #0 + beq _080BDB30 +_080BDB0C: + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + ldr r1, _080BDB2C + adds r0, r0, r1 + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + bl StartSpriteAnim + b _080BDB44 + .align 2, 0 +_080BDB20: .4byte 0x08539B8C +_080BDB24: .4byte 0x020397EC +_080BDB28: .4byte 0x0000061C +_080BDB2C: .4byte 0x020205AC +_080BDB30: + ldr r1, _080BDBA0 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + adds r0, r0, r1 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_080BDB44: + ldr r0, _080BDBA4 + movs r1, #0x38 + movs r2, #0x5b + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _080BDBA8 + ldr r0, [r0] + ldr r1, _080BDBAC + adds r0, r0, r1 + ldrh r0, [r0] + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __umodsi3 + adds r1, r0, #0 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + ldr r2, _080BDBA0 + adds r0, r0, r2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl StartSpriteAnim +_080BDB82: + ldr r0, _080BDBB0 + movs r1, #0x90 + movs r2, #0x60 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r1, _080BDBA0 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + adds r0, r0, r1 + b _080BDBCC + .align 2, 0 +_080BDBA0: .4byte 0x020205AC +_080BDBA4: .4byte 0x08539B8C +_080BDBA8: .4byte 0x020397EC +_080BDBAC: .4byte 0x0000061C +_080BDBB0: .4byte 0x08539BA4 +_080BDBB4: + ldr r0, _080BDBE4 + movs r1, #0x90 + movs r2, #0x50 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + add r0, sl +_080BDBCC: + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080BDBE4: .4byte 0x08539BA4 + thumb_func_end CreateInterfaceSprites + + thumb_func_start nullsub_38 +nullsub_38: @ 0x080BDBE8 + bx lr + .align 2, 0 + thumb_func_end nullsub_38 + + thumb_func_start sub_080BDBEC +sub_080BDBEC: @ 0x080BDBEC + push {lr} + adds r1, r0, #0 + ldr r0, _080BDC08 + ldr r0, [r0] + ldr r2, _080BDC0C + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080BDC04 + adds r0, r1, #0 + bl DestroySprite +_080BDC04: + pop {r0} + bx r0 + .align 2, 0 +_080BDC08: .4byte 0x020397EC +_080BDC0C: .4byte 0x0000064A + thumb_func_end sub_080BDBEC + + thumb_func_start sub_080BDC10 +sub_080BDC10: @ 0x080BDC10 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #5] + ldrb r1, [r2, #1] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #1] + movs r0, #0 + strh r0, [r2, #0x24] + strh r0, [r2, #0x26] + ldr r1, [r2, #0x20] + ldr r0, _080BDC70 + cmp r1, r0 + beq _080BDC74 + ldrh r1, [r2, #0x20] + movs r3, #0x20 + ldrsh r0, [r2, r3] + cmp r0, #0x30 + ble _080BDC44 + subs r0, r1, #1 + strh r0, [r2, #0x20] +_080BDC44: + ldrh r1, [r2, #0x20] + movs r3, #0x20 + ldrsh r0, [r2, r3] + cmp r0, #0x2f + bgt _080BDC52 + adds r0, r1, #1 + strh r0, [r2, #0x20] +_080BDC52: + ldrh r1, [r2, #0x22] + movs r3, #0x22 + ldrsh r0, [r2, r3] + cmp r0, #0x38 + ble _080BDC60 + subs r0, r1, #1 + strh r0, [r2, #0x22] +_080BDC60: + ldrh r1, [r2, #0x22] + movs r3, #0x22 + ldrsh r0, [r2, r3] + cmp r0, #0x37 + bgt _080BDC78 + adds r0, r1, #1 + strh r0, [r2, #0x22] + b _080BDC78 + .align 2, 0 +_080BDC70: .4byte 0x00380030 +_080BDC74: + ldr r0, _080BDC7C + str r0, [r2, #0x1c] +_080BDC78: + pop {r0} + bx r0 + .align 2, 0 +_080BDC7C: .4byte 0x080BDBE9 + thumb_func_end sub_080BDC10 + + thumb_func_start sub_080BDC80 +sub_080BDC80: @ 0x080BDC80 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r4, r0, #0 + ldrh r0, [r4, #0x30] + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r7, _080BDCB4 + ldr r1, [r7] + ldr r2, _080BDCB8 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080BDCC0 + cmp r0, #3 + beq _080BDCC0 + lsls r5, r6, #1 + ldr r4, _080BDCBC + adds r0, r1, r4 + adds r0, r0, r5 + ldrh r0, [r0] + bl FreeAndDestroyMonPicSprite + ldr r0, [r7] + adds r0, r0, r4 + adds r0, r0, r5 + b _080BDD8C + .align 2, 0 +_080BDCB4: .4byte 0x020397EC +_080BDCB8: .4byte 0x0000064A +_080BDCBC: .4byte 0x0000061E +_080BDCC0: + ldr r2, _080BDD4C + ldrh r0, [r4, #0x38] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r2 + movs r3, #0 + ldrsh r1, [r0, r3] + movs r0, #0x4c + muls r0, r1, r0 + cmp r0, #0 + bge _080BDCD8 + adds r0, #0xff +_080BDCD8: + asrs r0, r0, #8 + strh r0, [r4, #0x26] + movs r1, #0x38 + ldrsh r0, [r4, r1] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r2 + movs r2, #0 + ldrsh r1, [r0, r2] + movs r0, #0x80 + lsls r0, r0, #9 + bl __divsi3 + adds r2, r0, #0 + ldr r0, _080BDD50 + cmp r2, r0 + bls _080BDCFC + adds r2, r0, #0 +_080BDCFC: + ldrh r0, [r4, #0x30] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x80 + lsls r1, r1, #1 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + str r2, [sp] + movs r2, #0 + movs r3, #0 + bl SetOamMatrix + adds r1, r6, #1 + movs r0, #0x1f + ands r1, r0 + lsls r1, r1, #1 + ldrb r2, [r4, #3] + movs r0, #0x3f + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #3] + ldrh r0, [r4, #0x38] + adds r0, #0x3f + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x7e + bhi _080BDD54 + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r2] + movs r0, #1 + strh r0, [r4, #0x2e] + b _080BDD60 + .align 2, 0 +_080BDD4C: .4byte 0x082FA8CC +_080BDD50: .4byte 0x0000FFFF +_080BDD54: + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] +_080BDD60: + ldrh r0, [r4, #0x38] + adds r0, #0x3f + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x7e + bls _080BDD90 + movs r3, #0x2e + ldrsh r0, [r4, r3] + cmp r0, #0 + beq _080BDD90 + ldr r5, _080BDD98 + ldr r0, [r5] + lsls r6, r6, #1 + ldr r4, _080BDD9C + adds r0, r0, r4 + adds r0, r0, r6 + ldrh r0, [r0] + bl FreeAndDestroyMonPicSprite + ldr r0, [r5] + adds r0, r0, r4 + adds r0, r0, r6 +_080BDD8C: + ldr r1, _080BDDA0 + strh r1, [r0] +_080BDD90: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080BDD98: .4byte 0x020397EC +_080BDD9C: .4byte 0x0000061E +_080BDDA0: .4byte 0x0000FFFF + thumb_func_end sub_080BDC80 + + thumb_func_start SpriteCB_Scrollbar +SpriteCB_Scrollbar: @ 0x080BDDA4 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080BDDC4 + ldr r0, [r1] + ldr r2, _080BDDC8 + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080BDDCC + cmp r0, #3 + beq _080BDDCC + adds r0, r4, #0 + bl DestroySprite + b _080BDDE8 + .align 2, 0 +_080BDDC4: .4byte 0x020397EC +_080BDDC8: .4byte 0x0000064A +_080BDDCC: + ldr r2, [r1] + ldr r1, _080BDDF0 + adds r0, r2, r1 + ldrh r1, [r0] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #3 + ldr r1, _080BDDF4 + adds r2, r2, r1 + ldrh r1, [r2] + subs r1, #1 + bl __divsi3 + strh r0, [r4, #0x26] +_080BDDE8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BDDF0: .4byte 0x0000060E +_080BDDF4: .4byte 0x0000060C + thumb_func_end SpriteCB_Scrollbar + + thumb_func_start sub_080BDDF8 +sub_080BDDF8: @ 0x080BDDF8 + push {r4, r5, lr} + adds r3, r0, #0 + ldr r1, _080BDE18 + ldr r0, [r1] + ldr r2, _080BDE1C + adds r0, r0, r2 + ldrb r0, [r0] + adds r5, r1, #0 + cmp r0, #0 + beq _080BDE20 + cmp r0, #3 + beq _080BDE20 + adds r0, r3, #0 + bl DestroySprite + b _080BDEF0 + .align 2, 0 +_080BDE18: .4byte 0x020397EC +_080BDE1C: .4byte 0x0000064A +_080BDE20: + movs r1, #0x30 + ldrsh r0, [r3, r1] + cmp r0, #0 + beq _080BDE62 + ldr r0, [r5] + ldr r2, _080BDE48 + adds r1, r0, r2 + ldrh r1, [r1] + subs r2, #2 + adds r0, r0, r2 + ldrh r0, [r0] + subs r0, #1 + cmp r1, r0 + bne _080BDE4C + adds r0, r3, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + b _080BDE58 + .align 2, 0 +_080BDE48: .4byte 0x0000060E +_080BDE4C: + adds r0, r3, #0 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 +_080BDE58: + strb r1, [r0] + adds r2, r0, #0 + ldrh r1, [r3, #0x32] + lsls r0, r1, #0x18 + b _080BDE98 +_080BDE62: + ldr r0, [r5] + ldr r1, _080BDE7C + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0 + bne _080BDE80 + adds r0, r3, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + b _080BDE8C + .align 2, 0 +_080BDE7C: .4byte 0x0000060E +_080BDE80: + adds r0, r3, #0 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 +_080BDE8C: + strb r1, [r0] + adds r2, r0, #0 + ldrh r1, [r3, #0x32] + adds r0, r1, #0 + subs r0, #0x80 + lsls r0, r0, #0x18 +_080BDE98: + lsrs r0, r0, #0x18 + adds r4, r1, #0 + ldr r1, _080BDEE0 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bge _080BDEAC + adds r0, #0x3f +_080BDEAC: + asrs r0, r0, #6 + strh r0, [r3, #0x26] + adds r0, r4, #0 + adds r0, #8 + strh r0, [r3, #0x32] + ldr r1, [r5] + ldr r3, _080BDEE4 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, #0 + bne _080BDEE8 + adds r3, #3 + adds r0, r1, r3 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _080BDEE8 + ldrb r1, [r2] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _080BDEE8 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + b _080BDEEE + .align 2, 0 +_080BDEE0: .4byte 0x082FA8CC +_080BDEE4: .4byte 0x0000064F +_080BDEE8: + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 +_080BDEEE: + strb r0, [r2] +_080BDEF0: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080BDDF8 + + thumb_func_start sub_080BDEF8 +sub_080BDEF8: @ 0x080BDEF8 + push {lr} + adds r1, r0, #0 + ldr r0, _080BDF18 + ldr r0, [r0] + ldr r2, _080BDF1C + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080BDF14 + cmp r0, #3 + beq _080BDF14 + adds r0, r1, #0 + bl DestroySprite +_080BDF14: + pop {r0} + bx r0 + .align 2, 0 +_080BDF18: .4byte 0x020397EC +_080BDF1C: .4byte 0x0000064A + thumb_func_end sub_080BDEF8 + + thumb_func_start sub_080BDF20 +sub_080BDF20: @ 0x080BDF20 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r6, r0, #0 + ldr r1, _080BDF44 + ldr r0, [r1] + ldr r2, _080BDF48 + adds r0, r0, r2 + ldrb r0, [r0] + adds r7, r1, #0 + cmp r0, #0 + beq _080BDF4C + cmp r0, #3 + beq _080BDF4C + adds r0, r6, #0 + bl DestroySprite + b _080BDFC4 + .align 2, 0 +_080BDF44: .4byte 0x020397EC +_080BDF48: .4byte 0x0000064A +_080BDF4C: + ldr r0, [r7] + ldr r5, _080BDFCC + adds r0, r0, r5 + ldrb r1, [r0] + ldrh r0, [r6, #0x30] + adds r1, r1, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r4, _080BDFD0 + lsls r0, r1, #1 + adds r0, r0, r4 + ldrh r3, [r0] + adds r1, #0x40 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r0, [r6, #0x2e] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r1] + lsls r3, r3, #0x10 + lsrs r2, r3, #0x10 + rsbs r3, r3, #0 + lsrs r3, r3, #0x10 + str r1, [sp] + bl SetOamMatrix + ldr r1, [r7] + adds r1, r1, r5 + ldrh r0, [r6, #0x30] + adds r0, #0x40 + ldrb r1, [r1] + adds r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #1 + adds r1, r1, r4 + ldrh r3, [r1] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r4 + movs r2, #0 + ldrsh r1, [r0, r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + cmp r0, #0 + bge _080BDFAC + adds r0, #0xff +_080BDFAC: + asrs r0, r0, #8 + strh r0, [r6, #0x24] + lsls r1, r3, #0x10 + asrs r1, r1, #0x10 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + cmp r0, #0 + bge _080BDFC0 + adds r0, #0xff +_080BDFC0: + asrs r0, r0, #8 + strh r0, [r6, #0x26] +_080BDFC4: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080BDFCC: .4byte 0x0000062C +_080BDFD0: .4byte 0x082FA8CC + thumb_func_end sub_080BDF20 + + thumb_func_start sub_080BDFD4 +sub_080BDFD4: @ 0x080BDFD4 + push {r4, lr} + adds r3, r0, #0 + ldr r1, _080BDFF4 + ldr r0, [r1] + ldr r2, _080BDFF8 + adds r0, r0, r2 + ldrb r2, [r0] + cmp r2, #0 + beq _080BDFFC + cmp r2, #3 + beq _080BDFFC + adds r0, r3, #0 + bl DestroySprite + b _080BE074 + .align 2, 0 +_080BDFF4: .4byte 0x020397EC +_080BDFF8: .4byte 0x0000064A +_080BDFFC: + ldr r4, [r1] + ldr r1, _080BE05C + adds r0, r4, r1 + ldrb r0, [r0] + movs r1, #0x60 + cmp r0, #0 + bne _080BE00C + movs r1, #0x50 +_080BE00C: + ldr r2, _080BE060 + adds r0, r4, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080BE068 + adds r2, #3 + adds r0, r4, r2 + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r0, r1 + bne _080BE068 + adds r2, r3, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + movs r1, #0xca + lsls r1, r1, #3 + adds r0, r4, r1 + ldrh r0, [r0] + lsls r0, r0, #4 + strh r0, [r3, #0x26] + ldr r1, _080BE064 + ldrh r2, [r3, #0x32] + lsls r0, r2, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bge _080BE050 + adds r0, #0x3f +_080BE050: + asrs r0, r0, #6 + strh r0, [r3, #0x24] + adds r0, r2, #0 + adds r0, #8 + strh r0, [r3, #0x32] + b _080BE074 + .align 2, 0 +_080BE05C: .4byte 0x0000064A +_080BE060: .4byte 0x0000064F +_080BE064: .4byte 0x082FA8CC +_080BE068: + adds r0, r3, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_080BE074: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080BDFD4 + + thumb_func_start sub_080BE07C +sub_080BE07C: @ 0x080BE07C + push {r4, r5, lr} + sub sp, #0x18 + adds r5, r1, #0 + adds r3, r2, #0 + lsls r3, r3, #0x18 + add r1, sp, #0x14 + movs r4, #0 + strb r4, [r1] + adds r2, r1, #0 + movs r1, #0xf + strb r1, [r2, #1] + movs r1, #3 + strb r1, [r2, #2] + lsls r5, r5, #0x1b + lsrs r5, r5, #0x18 + lsrs r3, r3, #0x15 + adds r3, #2 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r4, [sp] + str r4, [sp, #4] + str r2, [sp, #8] + subs r1, #4 + str r1, [sp, #0xc] + str r0, [sp, #0x10] + movs r0, #0 + movs r1, #1 + adds r2, r5, #0 + bl AddTextPrinterParameterized4 + add sp, #0x18 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_080BE07C + + thumb_func_start sub_080BE0C0 +sub_080BE0C0: @ 0x080BE0C0 + push {r4, r5, lr} + lsls r4, r1, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _080BE154 + str r0, [r1] + ldr r0, _080BE158 + movs r1, #0 + bl CreateTask + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r1, _080BE15C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #0 + strh r2, [r0, #8] + movs r1, #1 + strh r1, [r0, #0xa] + strh r2, [r0, #0xc] + strh r2, [r0, #0xe] + strh r4, [r0, #0x10] + movs r1, #0xff + strh r1, [r0, #0x12] + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _080BE160 + movs r0, #0 + movs r2, #4 + bl InitBgsFromTemplates + movs r4, #0x80 + lsls r4, r4, #4 + adds r0, r4, #0 + bl AllocZeroed + adds r1, r0, #0 + movs r0, #3 + bl SetBgTilemapBuffer + adds r0, r4, #0 + bl AllocZeroed + adds r1, r0, #0 + movs r0, #2 + bl SetBgTilemapBuffer + adds r0, r4, #0 + bl AllocZeroed + adds r1, r0, #0 + movs r0, #1 + bl SetBgTilemapBuffer + adds r0, r4, #0 + bl AllocZeroed + adds r1, r0, #0 + movs r0, #0 + bl SetBgTilemapBuffer + ldr r0, _080BE164 + bl InitWindows + bl DeactivateAllTextPrinters + adds r0, r5, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080BE154: .4byte 0x020397F4 +_080BE158: .4byte 0x080BE1C9 +_080BE15C: .4byte 0x03005B60 +_080BE160: .4byte 0x08543110 +_080BE164: .4byte 0x08543120 + thumb_func_end sub_080BE0C0 + + thumb_func_start sub_080BE168 +sub_080BE168: @ 0x080BE168 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080BE18C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r2, #8 + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _080BE194 + ldr r1, [r1] + ldr r0, _080BE190 + cmp r1, r0 + bne _080BE194 + movs r0, #0 + b _080BE196 + .align 2, 0 +_080BE18C: .4byte 0x03005B60 +_080BE190: .4byte 0x080BE679 +_080BE194: + movs r0, #1 +_080BE196: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080BE168 + + thumb_func_start sub_080BE19C +sub_080BE19C: @ 0x080BE19C + adds r2, r0, #0 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080BE1C0 + str r2, [r1] + ldr r2, _080BE1C4 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r3, #0 + movs r2, #1 + strh r2, [r1, #8] + strh r3, [r1, #0xa] + strh r3, [r1, #0xc] + strh r3, [r1, #0xe] + bx lr + .align 2, 0 +_080BE1C0: .4byte 0x020397F4 +_080BE1C4: .4byte 0x03005B60 + thumb_func_end sub_080BE19C + + thumb_func_start sub_080BE1C8 +sub_080BE1C8: @ 0x080BE1C8 + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _080BE1EC + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r1, r2 + ldrb r0, [r0] + adds r5, r1, #0 + cmp r0, #0xa + bhi _080BE220 + lsls r0, r0, #2 + ldr r1, _080BE1F0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BE1EC: .4byte 0x03002360 +_080BE1F0: .4byte 0x080BE1F4 +_080BE1F4: @ jump table + .4byte _080BE220 @ case 0 + .4byte _080BE294 @ case 1 + .4byte _080BE2F4 @ case 2 + .4byte _080BE334 @ case 3 + .4byte _080BE33C @ case 4 + .4byte _080BE498 @ case 5 + .4byte _080BE4E4 @ case 6 + .4byte _080BE540 @ case 7 + .4byte _080BE588 @ case 8 + .4byte _080BE5E2 @ case 9 + .4byte _080BE600 @ case 10 +_080BE220: + ldr r0, _080BE280 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080BE22E + b _080BE624 +_080BE22E: + ldr r0, _080BE284 + ldr r0, [r0] + ldr r3, _080BE288 + adds r0, r0, r3 + movs r6, #1 + strb r6, [r0] + ldr r1, _080BE28C + ldr r0, [r5, #0xc] + str r0, [r1] + movs r0, #0 + bl SetVBlankCallback + movs r2, #0 + ldr r1, _080BE290 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r1, r0, r1 + movs r3, #0xa + ldrsh r0, [r1, r3] + cmp r0, #0 + beq _080BE25E + movs r2, #0x80 + lsls r2, r2, #5 +_080BE25E: + movs r3, #0xc + ldrsh r0, [r1, r3] + cmp r0, #0 + beq _080BE26E + movs r1, #0x80 + lsls r1, r1, #2 + adds r0, r1, #0 + orrs r2, r0 +_080BE26E: + adds r0, r2, #0 + bl sub_080BFF08 + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r5, r2 + strb r6, [r0] + b _080BE624 + .align 2, 0 +_080BE280: .4byte 0x02037C74 +_080BE284: .4byte 0x020397EC +_080BE288: .4byte 0x0000064A +_080BE28C: .4byte 0x03005E14 +_080BE290: .4byte 0x03005B60 +_080BE294: + ldr r1, _080BE2E4 + movs r2, #0x80 + lsls r2, r2, #6 + movs r0, #0 + str r0, [sp] + movs r0, #3 + movs r3, #0 + bl DecompressAndLoadBgGfxUsingHeap + ldr r1, _080BE2E8 + movs r0, #3 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + movs r0, #0 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #0 + bl PutWindowTilemap + movs r0, #1 + bl PutWindowTilemap + ldr r0, _080BE2EC + ldr r0, [r0] + ldrh r1, [r0] + movs r0, #1 + bl sub_080C0288 + movs r0, #1 + movs r1, #2 + bl CopyWindowToVram + ldr r1, _080BE2F0 + movs r3, #0x87 + lsls r3, r3, #3 + adds r1, r1, r3 + b _080BE5F4 + .align 2, 0 +_080BE2E4: .4byte 0x08537E8C +_080BE2E8: .4byte 0x08537A10 +_080BE2EC: .4byte 0x020397F4 +_080BE2F0: .4byte 0x03002360 +_080BE2F4: + movs r0, #0xd + bl sub_080BF598 + ldr r4, _080BE324 + ldr r0, [r4] + ldr r1, _080BE328 + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0xd + bl sub_080BF5C8 + ldr r0, [r4] + ldr r2, _080BE32C + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1f + lsrs r0, r0, #0x1f + bl LoadPokedexBgPalette + ldr r1, _080BE330 + movs r3, #0x87 + lsls r3, r3, #3 + adds r1, r1, r3 + b _080BE5F4 + .align 2, 0 +_080BE324: .4byte 0x020397EC +_080BE328: .4byte 0x0000064D +_080BE32C: .4byte 0x0000064C +_080BE330: .4byte 0x03002360 +_080BE334: + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r5, r0 + b _080BE5F4 +_080BE33C: + ldr r0, _080BE368 + ldr r0, [r0] + ldr r1, _080BE36C + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0 + bne _080BE374 + ldr r0, _080BE370 + ldr r0, [r0] + ldrh r0, [r0] + bl NationalToHoennOrder + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0 + movs r2, #0xd + movs r3, #3 + bl sub_080C0020 + b _080BE384 + .align 2, 0 +_080BE368: .4byte 0x020397EC +_080BE36C: .4byte 0x00000612 +_080BE370: .4byte 0x020397F4 +_080BE374: + ldr r0, _080BE420 + ldr r0, [r0] + ldrh r1, [r0] + movs r0, #0 + movs r2, #0xd + movs r3, #3 + bl sub_080C0020 +_080BE384: + ldr r5, _080BE420 + ldr r0, [r5] + ldrh r1, [r0] + movs r0, #0 + movs r2, #0x11 + movs r3, #3 + bl sub_080C00A0 + ldr r0, [r5] + ldrb r1, [r0, #2] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080BE434 + ldr r0, _080BE424 + movs r1, #0xd + movs r2, #5 + bl sub_080BE07C + ldr r0, _080BE428 + movs r1, #0x10 + movs r2, #7 + bl sub_080BE07C + ldr r0, _080BE42C + movs r1, #0x10 + movs r2, #9 + bl sub_080BE07C + ldr r0, [r5] + ldrh r0, [r0] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + ldr r4, _080BE430 + adds r1, r1, r4 + movs r0, #0 + movs r2, #0xd + movs r3, #5 + bl sub_080C0150 + ldr r0, [r5] + ldrh r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r0, #6] + movs r0, #0 + movs r2, #0x10 + movs r3, #7 + bl sub_080C01C8 + ldr r0, [r5] + ldrh r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r0, #8] + movs r0, #0 + movs r2, #0x10 + movs r3, #9 + bl sub_080C01C8 + ldr r0, [r5] + ldrh r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r4, #0xc + adds r0, r0, r4 + ldr r0, [r0] + movs r1, #3 + movs r2, #0xd + bl sub_080BE07C + b _080BE466 + .align 2, 0 +_080BE420: .4byte 0x020397F4 +_080BE424: .4byte 0x085C8FBB +_080BE428: .4byte 0x085C8FC5 +_080BE42C: .4byte 0x085C8FCC +_080BE430: .4byte 0x0854069C +_080BE434: + ldr r0, _080BE484 + movs r1, #0xd + movs r2, #5 + bl sub_080BE07C + ldr r0, _080BE488 + movs r1, #0x10 + movs r2, #7 + bl sub_080BE07C + ldr r0, _080BE48C + movs r1, #0x10 + movs r2, #9 + bl sub_080BE07C + ldr r0, _080BE490 + movs r1, #3 + movs r2, #0xd + bl sub_080BE07C + ldr r0, _080BE494 + movs r1, #0x31 + movs r2, #0x1e + bl LoadPalette +_080BE466: + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + movs r0, #1 + bl CopyBgTilemapBufferToVram + movs r0, #2 + bl CopyBgTilemapBufferToVram + movs r0, #3 + bl CopyBgTilemapBufferToVram + b _080BE5EC + .align 2, 0 +_080BE484: .4byte 0x085C8FA2 +_080BE488: .4byte 0x085C8FAC +_080BE48C: .4byte 0x085C8FB3 +_080BE490: .4byte 0x08539C50 +_080BE494: .4byte 0x020373B6 +_080BE498: + ldr r0, _080BE4D8 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r4, r1, r0 + movs r3, #0xa + ldrsh r0, [r4, r3] + cmp r0, #0 + beq _080BE4AC + b _080BE5EC +_080BE4AC: + ldr r0, _080BE4DC + ldr r0, [r0] + ldrh r0, [r0] + movs r1, #0x30 + movs r2, #0x38 + movs r3, #0 + bl CreateMonSpriteFromNationalDexNumber + strh r0, [r4, #0x10] + ldr r2, _080BE4E0 + movs r1, #0x10 + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r2, [r1, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #5] + b _080BE5EC + .align 2, 0 +_080BE4D8: .4byte 0x03005B60 +_080BE4DC: .4byte 0x020397F4 +_080BE4E0: .4byte 0x020205AC +_080BE4E4: + movs r3, #0 + ldr r0, _080BE534 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r2, #0xc + ldrsh r0, [r1, r2] + cmp r0, #0 + beq _080BE4FA + movs r3, #0x14 +_080BE4FA: + movs r2, #0xa + ldrsh r0, [r1, r2] + cmp r0, #0 + beq _080BE51C + ldr r2, _080BE538 + movs r0, #0x10 + ldrsh r1, [r1, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #5] + lsrs r1, r1, #4 + adds r1, #0x10 + movs r0, #1 + lsls r0, r1 + orrs r3, r0 +_080BE51C: + mvns r0, r3 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r0, _080BE53C + ldr r0, [r0] + bl SetVBlankCallback + b _080BE5EC + .align 2, 0 +_080BE534: .4byte 0x03005B60 +_080BE538: .4byte 0x020205AC +_080BE53C: .4byte 0x03005E14 +_080BE540: + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl HideBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg + ldr r1, _080BE584 + movs r3, #0x87 + lsls r3, r3, #3 + adds r1, r1, r3 + b _080BE5F4 + .align 2, 0 +_080BE584: .4byte 0x03002360 +_080BE588: + ldr r0, _080BE5D0 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080BE624 + movs r0, #0x87 + lsls r0, r0, #3 + adds r2, r5, r0 + ldrb r0, [r2] + adds r3, r0, #1 + strb r3, [r2] + ldr r1, _080BE5D4 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0xe + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _080BE5DC + bl StopCryAndClearCrySongs + ldr r0, _080BE5D8 + ldr r0, [r0] + ldrh r0, [r0] + bl NationalPokedexNumToSpecies + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0 + movs r2, #0x7d + movs r3, #0xa + bl PlayCry2 + b _080BE624 + .align 2, 0 +_080BE5D0: .4byte 0x02037C74 +_080BE5D4: .4byte 0x03005B60 +_080BE5D8: .4byte 0x020397F4 +_080BE5DC: + adds r0, r3, #1 + strb r0, [r2] + b _080BE624 +_080BE5E2: + bl IsCryPlayingOrClearCrySongs + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080BE624 +_080BE5EC: + ldr r1, _080BE5FC + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 +_080BE5F4: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080BE624 + .align 2, 0 +_080BE5FC: .4byte 0x03002360 +_080BE600: + ldr r1, _080BE62C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #0 + movs r1, #0 + strh r1, [r0, #8] + strh r1, [r0, #0xa] + movs r1, #1 + strh r1, [r0, #0xc] + strh r1, [r0, #0xe] + ldr r1, _080BE630 + str r1, [r0] + movs r3, #0x87 + lsls r3, r3, #3 + adds r0, r5, r3 + strb r2, [r0] +_080BE624: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080BE62C: .4byte 0x03005B60 +_080BE630: .4byte 0x080BE679 + thumb_func_end sub_080BE1C8 + + thumb_func_start sub_080BE634 +sub_080BE634: @ 0x080BE634 + push {lr} + bl FreeAllWindowBuffers + movs r0, #0 + bl GetBgTilemapBuffer + cmp r0, #0 + beq _080BE648 + bl Free +_080BE648: + movs r0, #1 + bl GetBgTilemapBuffer + cmp r0, #0 + beq _080BE656 + bl Free +_080BE656: + movs r0, #2 + bl GetBgTilemapBuffer + cmp r0, #0 + beq _080BE664 + bl Free +_080BE664: + movs r0, #3 + bl GetBgTilemapBuffer + cmp r0, #0 + beq _080BE672 + bl Free +_080BE672: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080BE634 + + thumb_func_start sub_080BE678 +sub_080BE678: @ 0x080BE678 + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080BE6B0 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 + movs r0, #8 + ldrsh r5, [r4, r0] + cmp r5, #0 + beq _080BE6B8 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _080BE6B4 + str r0, [r4] + movs r0, #0x6c + bl PlaySE + b _080BE83E + .align 2, 0 +_080BE6B0: .4byte 0x03005B60 +_080BE6B4: .4byte 0x080BE8BD +_080BE6B8: + ldr r1, _080BE6D0 + ldrh r2, [r1, #0x2e] + movs r0, #2 + ands r0, r2 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0 + beq _080BE6D4 + movs r0, #1 + rsbs r0, r0, #0 + str r5, [sp] + b _080BE792 + .align 2, 0 +_080BE6D0: .4byte 0x03002360 +_080BE6D4: + movs r0, #1 + ands r0, r2 + cmp r0, #0 + beq _080BE7AC + ldr r5, _080BE6F4 + ldr r0, [r5] + ldr r1, _080BE6F8 + adds r0, r0, r1 + ldrb r1, [r0] + cmp r1, #1 + beq _080BE724 + cmp r1, #1 + bgt _080BE6FC + cmp r1, #0 + beq _080BE706 + b _080BE83E + .align 2, 0 +_080BE6F4: .4byte 0x020397EC +_080BE6F8: .4byte 0x0000064D +_080BE6FC: + cmp r1, #2 + beq _080BE744 + cmp r1, #3 + beq _080BE78C + b _080BE83E +_080BE706: + movs r0, #0x15 + rsbs r0, r0, #0 + str r3, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, [r5] + ldr r3, _080BE720 + adds r0, r0, r3 + movs r1, #1 + b _080BE774 + .align 2, 0 +_080BE720: .4byte 0x0000064E +_080BE724: + movs r0, #0x15 + rsbs r0, r0, #0 + str r3, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, [r5] + ldr r1, _080BE740 + adds r0, r0, r1 + movs r1, #2 + b _080BE774 + .align 2, 0 +_080BE740: .4byte 0x0000064E +_080BE744: + ldr r0, _080BE758 + ldr r0, [r0] + ldrb r0, [r0, #2] + ands r1, r0 + cmp r1, #0 + bne _080BE75C + movs r0, #0x20 + bl PlaySE + b _080BE83E + .align 2, 0 +_080BE758: .4byte 0x020397F4 +_080BE75C: + movs r0, #0x15 + rsbs r0, r0, #0 + str r3, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, [r5] + ldr r3, _080BE784 + adds r0, r0, r3 + movs r1, #3 +_080BE774: + strb r1, [r0] + ldr r0, _080BE788 + str r0, [r4] + movs r0, #0x15 + bl PlaySE + b _080BE83E + .align 2, 0 +_080BE784: .4byte 0x0000064E +_080BE788: .4byte 0x080BE855 +_080BE78C: + movs r0, #1 + rsbs r0, r0, #0 + str r3, [sp] +_080BE792: + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _080BE7A8 + str r0, [r4] + movs r0, #3 + bl PlaySE + b _080BE83E + .align 2, 0 +_080BE7A8: .4byte 0x080BE8F5 +_080BE7AC: + movs r0, #0x20 + ands r0, r2 + cmp r0, #0 + bne _080BE7C8 + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r2 + cmp r0, #0 + beq _080BE7FC + ldr r0, _080BE7F0 + ldr r0, [r0] + ldrb r0, [r0, #0x13] + cmp r0, #1 + bne _080BE7FC +_080BE7C8: + ldr r3, _080BE7F4 + ldr r0, [r3] + ldr r4, _080BE7F8 + adds r2, r0, r4 + ldrb r0, [r2] + cmp r0, #0 + beq _080BE7FC + subs r0, #1 + strb r0, [r2] + ldr r0, [r3] + adds r0, r0, r4 + ldrb r0, [r0] + movs r1, #0xd + bl sub_080BF5C8 + movs r0, #0x6d + bl PlaySE + b _080BE83E + .align 2, 0 +_080BE7F0: .4byte 0x03005AF0 +_080BE7F4: .4byte 0x020397EC +_080BE7F8: .4byte 0x0000064D +_080BE7FC: + ldrh r1, [r1, #0x2e] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _080BE81A + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080BE83E + ldr r0, _080BE848 + ldr r0, [r0] + ldrb r0, [r0, #0x13] + cmp r0, #1 + bne _080BE83E +_080BE81A: + ldr r2, _080BE84C + ldr r0, [r2] + ldr r3, _080BE850 + adds r1, r0, r3 + ldrb r0, [r1] + cmp r0, #2 + bhi _080BE83E + adds r0, #1 + strb r0, [r1] + ldr r0, [r2] + adds r0, r0, r3 + ldrb r0, [r0] + movs r1, #0xd + bl sub_080BF5C8 + movs r0, #0x6d + bl PlaySE +_080BE83E: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080BE848: .4byte 0x03005AF0 +_080BE84C: .4byte 0x020397EC +_080BE850: .4byte 0x0000064D + thumb_func_end sub_080BE678 + + thumb_func_start sub_080BE854 +sub_080BE854: @ 0x080BE854 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _080BE890 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080BE8B0 + ldr r1, _080BE894 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrh r0, [r4, #0x10] + bl FreeAndDestroyMonPicSprite + ldr r0, _080BE898 + ldr r0, [r0] + ldr r1, _080BE89C + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #2 + beq _080BE8A4 + cmp r0, #2 + ble _080BE88C + cmp r0, #3 + beq _080BE8AC +_080BE88C: + ldr r0, _080BE8A0 + b _080BE8AE + .align 2, 0 +_080BE890: .4byte 0x02037C74 +_080BE894: .4byte 0x03005B60 +_080BE898: .4byte 0x020397EC +_080BE89C: .4byte 0x0000064E +_080BE8A0: .4byte 0x080BE931 +_080BE8A4: + ldr r0, _080BE8A8 + b _080BE8AE + .align 2, 0 +_080BE8A8: .4byte 0x080BEAD5 +_080BE8AC: + ldr r0, _080BE8B8 +_080BE8AE: + str r0, [r4] +_080BE8B0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BE8B8: .4byte 0x080BF0C9 + thumb_func_end sub_080BE854 + + thumb_func_start sub_080BE8BC +sub_080BE8BC: @ 0x080BE8BC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _080BE8E8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080BE8E2 + ldr r0, _080BE8EC + lsls r4, r2, #2 + adds r4, r4, r2 + lsls r4, r4, #3 + adds r4, r4, r0 + ldrh r0, [r4, #0x10] + bl FreeAndDestroyMonPicSprite + ldr r0, _080BE8F0 + str r0, [r4] +_080BE8E2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BE8E8: .4byte 0x02037C74 +_080BE8EC: .4byte 0x03005B60 +_080BE8F0: .4byte 0x080BE1C9 + thumb_func_end sub_080BE8BC + + thumb_func_start sub_080BE8F4 +sub_080BE8F4: @ 0x080BE8F4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080BE928 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080BE920 + ldr r0, _080BE92C + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x10] + bl FreeAndDestroyMonPicSprite + bl sub_080BE634 + adds r0, r4, #0 + bl DestroyTask +_080BE920: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BE928: .4byte 0x02037C74 +_080BE92C: .4byte 0x03005B60 + thumb_func_end sub_080BE8F4 + + thumb_func_start sub_080BE930 +sub_080BE930: @ 0x080BE930 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r2, _080BE98C + movs r0, #0x87 + lsls r0, r0, #3 + adds r7, r2, r0 + ldrb r0, [r7] + cmp r0, #1 + beq _080BE9A4 + cmp r0, #1 + ble _080BE94C + cmp r0, #2 + beq _080BE9E0 +_080BE94C: + ldr r0, _080BE990 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _080BEA1A + ldr r4, _080BE994 + ldr r0, [r4] + ldr r1, _080BE998 + adds r0, r0, r1 + movs r1, #5 + strb r1, [r0] + ldr r1, _080BE99C + ldr r0, [r2, #0xc] + str r0, [r1] + movs r0, #0 + bl SetVBlankCallback + movs r0, #0x80 + lsls r0, r0, #2 + bl sub_080BFF08 + ldr r0, [r4] + ldr r1, _080BE9A0 + adds r0, r0, r1 + strb r5, [r0] + movs r0, #1 + strb r0, [r7] + b _080BEA1A + .align 2, 0 +_080BE98C: .4byte 0x03002360 +_080BE990: .4byte 0x02037C74 +_080BE994: .4byte 0x020397EC +_080BE998: .4byte 0x0000064A +_080BE99C: .4byte 0x03005E14 +_080BE9A0: .4byte 0x0000064D +_080BE9A4: + movs r0, #0xd + bl sub_080BF5B0 + movs r0, #0 + movs r1, #0xd + bl sub_080BF638 + ldr r0, _080BE9D8 + ldr r0, [r0] + ldr r1, _080BE9DC + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1f + lsrs r0, r0, #0x1f + bl LoadPokedexBgPalette + movs r1, #0xd0 + lsls r1, r1, #4 + movs r0, #0xa + bl SetGpuReg + ldrb r0, [r7] + adds r0, #1 + strb r0, [r7] + b _080BEA1A + .align 2, 0 +_080BE9D8: .4byte 0x020397EC +_080BE9DC: .4byte 0x0000064C +_080BE9E0: + ldr r0, _080BEA20 + ldr r0, [r0] + ldrh r0, [r0] + bl NationalPokedexNumToSpecies + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r5, _080BEA24 + ldr r1, [r5] + ldr r4, _080BEA28 + adds r1, r1, r4 + bl ShowPokedexAreaScreen + ldr r0, _080BEA2C + ldr r0, [r0] + bl SetVBlankCallback + ldr r0, [r5] + adds r0, r0, r4 + movs r1, #0 + strb r1, [r0] + strb r1, [r7] + ldr r1, _080BEA30 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080BEA34 + str r1, [r0] +_080BEA1A: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080BEA20: .4byte 0x020397F4 +_080BEA24: .4byte 0x020397EC +_080BEA28: .4byte 0x0000064E +_080BEA2C: .4byte 0x03005E14 +_080BEA30: .4byte 0x03005B60 +_080BEA34: .4byte 0x080BEA39 + thumb_func_end sub_080BE930 + + thumb_func_start sub_080BEA38 +sub_080BEA38: @ 0x080BEA38 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _080BEA60 + ldr r0, [r0] + ldr r1, _080BEA64 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _080BEA5A + ldr r0, _080BEA68 + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080BEA6C + str r0, [r1] +_080BEA5A: + pop {r0} + bx r0 + .align 2, 0 +_080BEA60: .4byte 0x020397EC +_080BEA64: .4byte 0x0000064E +_080BEA68: .4byte 0x03005B60 +_080BEA6C: .4byte 0x080BEA71 + thumb_func_end sub_080BEA38 + + thumb_func_start sub_080BEA70 +sub_080BEA70: @ 0x080BEA70 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _080BEAA4 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080BEAC6 + ldr r0, _080BEAA8 + ldr r0, [r0] + ldr r1, _080BEAAC + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + beq _080BEA94 + cmp r0, #2 + beq _080BEAB8 +_080BEA94: + ldr r0, _080BEAB0 + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080BEAB4 + b _080BEAC4 + .align 2, 0 +_080BEAA4: .4byte 0x02037C74 +_080BEAA8: .4byte 0x020397EC +_080BEAAC: .4byte 0x0000064E +_080BEAB0: .4byte 0x03005B60 +_080BEAB4: .4byte 0x080BE1C9 +_080BEAB8: + ldr r0, _080BEACC + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080BEAD0 +_080BEAC4: + str r0, [r1] +_080BEAC6: + pop {r0} + bx r0 + .align 2, 0 +_080BEACC: .4byte 0x03005B60 +_080BEAD0: .4byte 0x080BEAD5 + thumb_func_end sub_080BEA70 + + thumb_func_start sub_080BEAD4 +sub_080BEAD4: @ 0x080BEAD4 + push {r4, r5, lr} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _080BEAF8 + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, r1, #0 + cmp r0, #0xa + bhi _080BEB2C + lsls r0, r0, #2 + ldr r1, _080BEAFC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BEAF8: .4byte 0x03002360 +_080BEAFC: .4byte 0x080BEB00 +_080BEB00: @ jump table + .4byte _080BEB2C @ case 0 + .4byte _080BEB94 @ case 1 + .4byte _080BEBE4 @ case 2 + .4byte _080BEC10 @ case 3 + .4byte _080BEC24 @ case 4 + .4byte _080BEC6C @ case 5 + .4byte _080BECB8 @ case 6 + .4byte _080BED34 @ case 7 + .4byte _080BEDB0 @ case 8 + .4byte _080BEDDC @ case 9 + .4byte _080BEE2C @ case 10 +_080BEB2C: + ldr r0, _080BEB78 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080BEB3A + b _080BEE4E +_080BEB3A: + ldr r0, _080BEB7C + bl m4aMPlayStop + ldr r5, _080BEB80 + ldr r0, [r5] + ldr r3, _080BEB84 + adds r0, r0, r3 + movs r1, #6 + strb r1, [r0] + ldr r1, _080BEB88 + ldr r4, _080BEB8C + ldr r0, [r4, #0xc] + str r0, [r1] + movs r0, #0 + bl SetVBlankCallback + movs r0, #0x80 + lsls r0, r0, #2 + bl sub_080BFF08 + ldr r0, [r5] + ldr r1, _080BEB90 + adds r0, r0, r1 + movs r1, #1 + strb r1, [r0] + movs r2, #0x87 + lsls r2, r2, #3 + adds r4, r4, r2 + strb r1, [r4] + b _080BEE4E + .align 2, 0 +_080BEB78: .4byte 0x02037C74 +_080BEB7C: .4byte 0x030074D0 +_080BEB80: .4byte 0x020397EC +_080BEB84: .4byte 0x0000064A +_080BEB88: .4byte 0x03005E14 +_080BEB8C: .4byte 0x03002360 +_080BEB90: .4byte 0x0000064D +_080BEB94: + ldr r1, _080BEBD8 + movs r2, #0x80 + lsls r2, r2, #6 + movs r0, #0 + str r0, [sp] + movs r0, #3 + movs r3, #0 + bl DecompressAndLoadBgGfxUsingHeap + ldr r1, _080BEBDC + movs r0, #3 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + movs r0, #0 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #0 + bl PutWindowTilemap + movs r0, #3 + bl PutWindowTilemap + movs r0, #2 + bl PutWindowTilemap + ldr r1, _080BEBE0 + movs r3, #0x87 + lsls r3, r3, #3 + adds r1, r1, r3 + b _080BEE1E + .align 2, 0 +_080BEBD8: .4byte 0x08537E8C +_080BEBDC: .4byte 0x08537B44 +_080BEBE0: .4byte 0x03002360 +_080BEBE4: + movs r0, #0xd + bl sub_080BF5B0 + movs r0, #1 + movs r1, #0xd + bl sub_080BF638 + ldr r0, _080BEC08 + ldr r0, [r0] + ldr r4, _080BEC0C + adds r0, r0, r4 + ldrb r0, [r0] + lsls r0, r0, #0x1f + lsrs r0, r0, #0x1f + bl LoadPokedexBgPalette + b _080BEE16 + .align 2, 0 +_080BEC08: .4byte 0x020397EC +_080BEC0C: .4byte 0x0000064C +_080BEC10: + bl ResetPaletteFade + ldr r1, _080BEC20 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _080BEE1E + .align 2, 0 +_080BEC20: .4byte 0x03002360 +_080BEC24: + ldr r0, _080BEC5C + ldr r0, [r0] + ldrh r1, [r0] + movs r0, #0 + movs r2, #0xb + movs r3, #4 + bl sub_080C00A0 + adds r1, r0, #0 + lsls r1, r1, #0x18 + ldr r0, _080BEC60 + movs r3, #0xb0 + lsls r3, r3, #0x14 + adds r1, r1, r3 + lsrs r1, r1, #0x18 + movs r2, #4 + bl sub_080BE07C + ldr r0, _080BEC64 + movs r1, #0xb + movs r2, #6 + bl sub_080BE07C + ldr r1, _080BEC68 + movs r4, #0x87 + lsls r4, r4, #3 + adds r1, r1, r4 + b _080BEE1E + .align 2, 0 +_080BEC5C: .4byte 0x020397F4 +_080BEC60: .4byte 0x085C8FD4 +_080BEC64: .4byte 0x085C8FD6 +_080BEC68: .4byte 0x03002360 +_080BEC6C: + ldr r0, _080BECA8 + ldr r0, [r0] + ldrh r0, [r0] + movs r1, #0x30 + movs r2, #0x38 + movs r3, #0 + bl CreateMonSpriteFromNationalDexNumber + ldr r2, _080BECAC + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r3, #0 + strh r0, [r1, #0x10] + ldr r2, _080BECB0 + movs r4, #0x10 + ldrsh r0, [r1, r4] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r2, [r1, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #5] + ldr r0, _080BECB4 + strb r3, [r0] + b _080BEE16 + .align 2, 0 +_080BECA8: .4byte 0x020397F4 +_080BECAC: .4byte 0x03005B60 +_080BECB0: .4byte 0x020205AC +_080BECB4: .4byte 0x03005F2C +_080BECB8: + ldr r1, _080BED14 + ldr r0, [sp, #4] + ands r0, r1 + ldr r1, _080BED18 + orrs r0, r1 + ldr r1, _080BED1C + ands r0, r1 + movs r1, #0xf8 + lsls r1, r1, #0xd + orrs r0, r1 + ldr r1, _080BED20 + ands r0, r1 + movs r1, #0x80 + lsls r1, r1, #0x14 + orrs r0, r1 + str r0, [sp, #4] + ldr r1, _080BED24 + ldr r0, [sp, #8] + ands r0, r1 + movs r1, #0xf0 + lsls r1, r1, #5 + orrs r0, r1 + ldr r1, _080BED28 + ands r0, r1 + movs r1, #0xc + orrs r0, r1 + str r0, [sp, #8] + add r0, sp, #4 + movs r1, #2 + bl sub_08145420 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080BECFE + b _080BEE4E +_080BECFE: + ldr r1, _080BED2C + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, #1 + movs r2, #0 + strb r0, [r1] + ldr r0, _080BED30 + strb r2, [r0] + b _080BEE4E + .align 2, 0 +_080BED14: .4byte 0xFFFF0000 +_080BED18: .4byte 0x00004020 +_080BED1C: .4byte 0xFF00FFFF +_080BED20: .4byte 0x00FFFFFF +_080BED24: .4byte 0xFFFF00FF +_080BED28: .4byte 0xFFFFFF00 +_080BED2C: .4byte 0x03002360 +_080BED30: .4byte 0x03005F2C +_080BED34: + ldr r1, _080BEDA0 + ldr r0, [sp, #0xc] + ands r0, r1 + movs r1, #0x90 + lsls r1, r1, #0x14 + orrs r0, r1 + str r0, [sp, #0xc] + ldr r2, _080BEDA4 + add r0, sp, #0xc + ldr r1, [r0, #4] + ands r1, r2 + movs r2, #0x12 + orrs r1, r2 + ldr r2, _080BEDA8 + ands r1, r2 + movs r2, #0xc0 + lsls r2, r2, #2 + orrs r1, r2 + str r1, [r0, #4] + movs r1, #3 + bl sub_0814591C + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080BED74 + ldr r1, _080BEDAC + movs r3, #0x87 + lsls r3, r3, #3 + adds r1, r1, r3 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_080BED74: + movs r0, #3 + movs r1, #2 + bl CopyWindowToVram + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + movs r0, #0 + bl CopyBgTilemapBufferToVram + movs r0, #1 + bl CopyBgTilemapBufferToVram + movs r0, #2 + bl CopyBgTilemapBufferToVram + movs r0, #3 + bl CopyBgTilemapBufferToVram + b _080BEE4E + .align 2, 0 +_080BEDA0: .4byte 0x00FFFFFF +_080BEDA4: .4byte 0xFFFFFF00 +_080BEDA8: .4byte 0xFFFF00FF +_080BEDAC: .4byte 0x03002360 +_080BEDB0: + movs r0, #0x15 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r0, _080BEDD4 + ldr r0, [r0] + bl SetVBlankCallback + ldr r1, _080BEDD8 + movs r4, #0x87 + lsls r4, r4, #3 + adds r1, r1, r4 + b _080BEE1E + .align 2, 0 +_080BEDD4: .4byte 0x03005E14 +_080BEDD8: .4byte 0x03002360 +_080BEDDC: + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg +_080BEE16: + ldr r1, _080BEE28 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 +_080BEE1E: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080BEE4E + .align 2, 0 +_080BEE28: .4byte 0x03002360 +_080BEE2C: + ldr r0, _080BEE58 + ldr r0, [r0] + ldr r1, _080BEE5C + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + movs r3, #0x87 + lsls r3, r3, #3 + adds r0, r2, r3 + strb r1, [r0] + ldr r1, _080BEE60 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080BEE64 + str r1, [r0] +_080BEE4E: + add sp, #0x14 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080BEE58: .4byte 0x020397EC +_080BEE5C: .4byte 0x0000064E +_080BEE60: .4byte 0x03005B60 +_080BEE64: .4byte 0x080BEE69 + thumb_func_end sub_080BEAD4 + + thumb_func_start sub_080BEE68 +sub_080BEE68: @ 0x080BEE68 + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #2 + bl sub_08145528 + bl IsCryPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080BEE88 + movs r0, #1 + bl sub_080BF098 + b _080BEE8E +_080BEE88: + movs r0, #0 + bl sub_080BF098 +_080BEE8E: + ldr r1, _080BEEB8 + ldrh r2, [r1, #0x2e] + movs r0, #1 + ands r0, r2 + adds r5, r1, #0 + cmp r0, #0 + beq _080BEEC0 + movs r0, #1 + bl sub_080BF098 + ldr r0, _080BEEBC + ldr r0, [r0] + ldrh r0, [r0] + bl NationalPokedexNumToSpecies + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl sub_08145600 + b _080BF00E + .align 2, 0 +_080BEEB8: .4byte 0x03002360 +_080BEEBC: .4byte 0x020397F4 +_080BEEC0: + ldr r0, _080BEF18 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _080BEED2 + b _080BF00E +_080BEED2: + movs r0, #2 + ands r0, r2 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0 + beq _080BEF30 + movs r0, #0x15 + rsbs r0, r0, #0 + str r1, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _080BEF1C + bl m4aMPlayContinue + ldr r0, _080BEF20 + ldr r0, [r0] + ldr r1, _080BEF24 + adds r0, r0, r1 + movs r1, #1 + strb r1, [r0] + ldr r1, _080BEF28 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080BEF2C + str r1, [r0] + movs r0, #3 + bl PlaySE + b _080BF00E + .align 2, 0 +_080BEF18: .4byte 0x02037C74 +_080BEF1C: .4byte 0x030074D0 +_080BEF20: .4byte 0x020397EC +_080BEF24: .4byte 0x0000064E +_080BEF28: .4byte 0x03005B60 +_080BEF2C: .4byte 0x080BF02D +_080BEF30: + movs r0, #0x20 + ands r0, r2 + cmp r0, #0 + bne _080BEF4C + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r2 + cmp r0, #0 + beq _080BEF9C + ldr r0, _080BEF84 + ldr r0, [r0] + ldrb r0, [r0, #0x13] + cmp r0, #1 + bne _080BEF9C +_080BEF4C: + movs r0, #0x15 + rsbs r0, r0, #0 + str r3, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _080BEF88 + bl m4aMPlayContinue + ldr r0, _080BEF8C + ldr r0, [r0] + ldr r1, _080BEF90 + adds r0, r0, r1 + movs r1, #2 + strb r1, [r0] + ldr r1, _080BEF94 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080BEF98 + str r1, [r0] + movs r0, #0x6d + bl PlaySE + b _080BF00E + .align 2, 0 +_080BEF84: .4byte 0x03005AF0 +_080BEF88: .4byte 0x030074D0 +_080BEF8C: .4byte 0x020397EC +_080BEF90: .4byte 0x0000064E +_080BEF94: .4byte 0x03005B60 +_080BEF98: .4byte 0x080BF02D +_080BEF9C: + ldrh r1, [r5, #0x2e] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _080BEFBA + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080BF00E + ldr r0, _080BEFD0 + ldr r0, [r0] + ldrb r0, [r0, #0x13] + cmp r0, #1 + bne _080BF00E +_080BEFBA: + ldr r0, _080BEFD4 + ldr r0, [r0] + ldrb r1, [r0, #2] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _080BEFD8 + movs r0, #0x20 + bl PlaySE + b _080BF00E + .align 2, 0 +_080BEFD0: .4byte 0x03005AF0 +_080BEFD4: .4byte 0x020397F4 +_080BEFD8: + movs r0, #0x15 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _080BF018 + bl m4aMPlayContinue + ldr r0, _080BF01C + ldr r0, [r0] + ldr r1, _080BF020 + adds r0, r0, r1 + movs r1, #3 + strb r1, [r0] + ldr r1, _080BF024 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080BF028 + str r1, [r0] + movs r0, #0x6d + bl PlaySE +_080BF00E: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080BF018: .4byte 0x030074D0 +_080BF01C: .4byte 0x020397EC +_080BF020: .4byte 0x0000064E +_080BF024: .4byte 0x03005B60 +_080BF028: .4byte 0x080BF02D + thumb_func_end sub_080BEE68 + + thumb_func_start sub_080BF02C +sub_080BF02C: @ 0x080BF02C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080BF06C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080BF08C + bl sub_081459E0 + ldr r1, _080BF070 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrh r0, [r4, #0x10] + bl FreeAndDestroyMonPicSprite + ldr r0, _080BF074 + ldr r0, [r0] + ldr r1, _080BF078 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #2 + beq _080BF080 + cmp r0, #2 + ble _080BF068 + cmp r0, #3 + beq _080BF088 +_080BF068: + ldr r0, _080BF07C + b _080BF08A + .align 2, 0 +_080BF06C: .4byte 0x02037C74 +_080BF070: .4byte 0x03005B60 +_080BF074: .4byte 0x020397EC +_080BF078: .4byte 0x0000064E +_080BF07C: .4byte 0x080BE1C9 +_080BF080: + ldr r0, _080BF084 + b _080BF08A + .align 2, 0 +_080BF084: .4byte 0x080BE931 +_080BF088: + ldr r0, _080BF094 +_080BF08A: + str r0, [r4] +_080BF08C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BF094: .4byte 0x080BF0C9 + thumb_func_end sub_080BF02C + + thumb_func_start sub_080BF098 +sub_080BF098: @ 0x080BF098 + push {lr} + sub sp, #4 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080BF0AC + ldr r1, _080BF0A8 + b _080BF0AE + .align 2, 0 +_080BF0A8: .4byte 0x00000392 +_080BF0AC: + ldr r1, _080BF0C4 +_080BF0AE: + mov r0, sp + strh r1, [r0] + mov r0, sp + movs r1, #0x5d + movs r2, #2 + bl LoadPalette + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_080BF0C4: .4byte 0x000002AF + thumb_func_end sub_080BF098 + + thumb_func_start sub_080BF0C8 +sub_080BF0C8: @ 0x080BF0C8 + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r1, _080BF0EC + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r1, r2 + ldrb r0, [r0] + adds r5, r1, #0 + cmp r0, #9 + bhi _080BF11C + lsls r0, r0, #2 + ldr r1, _080BF0F0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BF0EC: .4byte 0x03002360 +_080BF0F0: .4byte 0x080BF0F4 +_080BF0F4: @ jump table + .4byte _080BF11C @ case 0 + .4byte _080BF174 @ case 1 + .4byte _080BF1AC @ case 2 + .4byte _080BF1D8 @ case 3 + .4byte _080BF228 @ case 4 + .4byte _080BF22E @ case 5 + .4byte _080BF2E8 @ case 6 + .4byte _080BF3A4 @ case 7 + .4byte _080BF3D0 @ case 8 + .4byte _080BF420 @ case 9 +_080BF11C: + ldr r0, _080BF160 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080BF12A + b _080BF450 +_080BF12A: + ldr r4, _080BF164 + ldr r0, [r4] + ldr r1, _080BF168 + adds r0, r0, r1 + movs r1, #7 + strb r1, [r0] + ldr r1, _080BF16C + ldr r0, [r5, #0xc] + str r0, [r1] + movs r0, #0 + bl SetVBlankCallback + movs r0, #0x80 + lsls r0, r0, #2 + bl sub_080BFF08 + ldr r0, [r4] + ldr r2, _080BF170 + adds r0, r0, r2 + movs r1, #2 + strb r1, [r0] + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r5, r0 + movs r0, #1 + strb r0, [r1] + b _080BF450 + .align 2, 0 +_080BF160: .4byte 0x02037C74 +_080BF164: .4byte 0x020397EC +_080BF168: .4byte 0x0000064A +_080BF16C: .4byte 0x03005E14 +_080BF170: .4byte 0x0000064D +_080BF174: + ldr r1, _080BF1A4 + movs r2, #0x80 + lsls r2, r2, #6 + movs r0, #0 + str r0, [sp] + movs r0, #3 + movs r3, #0 + bl DecompressAndLoadBgGfxUsingHeap + ldr r1, _080BF1A8 + movs r0, #3 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + movs r0, #0 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #0 + bl PutWindowTilemap + b _080BF40A + .align 2, 0 +_080BF1A4: .4byte 0x08537E8C +_080BF1A8: .4byte 0x08537C30 +_080BF1AC: + movs r0, #0xd + bl sub_080BF5B0 + movs r0, #2 + movs r1, #0xd + bl sub_080BF638 + ldr r0, _080BF1D0 + ldr r0, [r0] + ldr r1, _080BF1D4 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1f + lsrs r0, r0, #0x1f + bl LoadPokedexBgPalette + b _080BF40A + .align 2, 0 +_080BF1D0: .4byte 0x020397EC +_080BF1D4: .4byte 0x0000064C +_080BF1D8: + ldr r0, _080BF214 + ldr r0, [r0] + ldrh r1, [r0] + movs r0, #0 + movs r2, #4 + movs r3, #0xf + bl sub_080C00A0 + ldr r0, _080BF218 + movs r1, #9 + movs r2, #0xf + bl sub_080BE07C + ldr r0, _080BF21C + ldr r0, [r0] + movs r1, #0xb + movs r2, #0xf + bl sub_080BE07C + ldr r0, _080BF220 + movs r1, #0x10 + movs r2, #0xf + bl sub_080BE07C + ldr r1, _080BF224 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _080BF412 + .align 2, 0 +_080BF214: .4byte 0x020397F4 +_080BF218: .4byte 0x085C8FDB +_080BF21C: .4byte 0x03005AF0 +_080BF220: .4byte 0x085C8FDD +_080BF224: .4byte 0x03002360 +_080BF228: + bl ResetPaletteFade + b _080BF40A +_080BF22E: + ldr r0, _080BF2CC + ldr r0, [r0] + ldrb r0, [r0, #8] + bl PlayerGenderToFrontTrainerPicId + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x98 + movs r2, #0x38 + movs r3, #0 + bl sub_080C0450 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _080BF2D0 + lsls r4, r6, #4 + adds r4, r4, r6 + lsls r4, r4, #2 + adds r4, r4, r0 + ldrb r1, [r4, #1] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #1] + ldrb r1, [r4, #3] + movs r0, #0x3f + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r4, #3] + ldrb r1, [r4, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #5] + ldr r3, _080BF2D4 + ldr r0, _080BF2D8 + ldr r2, [r0] + ldrh r1, [r2] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r0, [r0, #0x18] + strh r0, [r4, #0x26] + ldrh r1, [r2] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r0, #0x16] + str r1, [sp] + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl SetOamMatrix + ldr r0, _080BF2DC + ldrb r1, [r4, #5] + lsrs r1, r1, #4 + adds r1, #0x10 + lsls r1, r1, #4 + movs r2, #0x20 + bl LoadPalette + ldr r1, _080BF2E0 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r6, [r0, #0x12] + ldr r1, _080BF2E4 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _080BF412 + .align 2, 0 +_080BF2CC: .4byte 0x03005AF0 +_080BF2D0: .4byte 0x020205AC +_080BF2D4: .4byte 0x0854069C +_080BF2D8: .4byte 0x020397F4 +_080BF2DC: .4byte 0x085430F0 +_080BF2E0: .4byte 0x03005B60 +_080BF2E4: .4byte 0x03002360 +_080BF2E8: + ldr r5, _080BF390 + ldr r0, [r5] + ldrh r0, [r0] + movs r1, #0x58 + movs r2, #0x38 + movs r3, #1 + bl CreateMonSpriteFromNationalDexNumber + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _080BF394 + lsls r4, r6, #4 + adds r4, r4, r6 + lsls r4, r4, #2 + adds r4, r4, r0 + ldrb r1, [r4, #1] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #1] + ldrb r1, [r4, #3] + movs r0, #0x3f + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r4, #3] + ldrb r1, [r4, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #5] + ldr r3, _080BF398 + ldr r2, [r5] + ldrh r1, [r2] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r0, [r0, #0x14] + strh r0, [r4, #0x26] + ldrh r1, [r2] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r0, #0x12] + str r1, [sp] + movs r0, #2 + movs r2, #0 + movs r3, #0 + bl SetOamMatrix + ldr r0, _080BF39C + ldrb r1, [r4, #5] + lsrs r1, r1, #4 + adds r1, #0x10 + lsls r1, r1, #4 + movs r2, #0x20 + bl LoadPalette + ldr r1, _080BF3A0 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r6, [r0, #0x10] + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + movs r0, #1 + bl CopyBgTilemapBufferToVram + movs r0, #2 + bl CopyBgTilemapBufferToVram + movs r0, #3 + bl CopyBgTilemapBufferToVram + b _080BF40A + .align 2, 0 +_080BF390: .4byte 0x020397F4 +_080BF394: .4byte 0x020205AC +_080BF398: .4byte 0x0854069C +_080BF39C: .4byte 0x085430F0 +_080BF3A0: .4byte 0x03005B60 +_080BF3A4: + movs r0, #0x15 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r0, _080BF3C8 + ldr r0, [r0] + bl SetVBlankCallback + ldr r1, _080BF3CC + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _080BF412 + .align 2, 0 +_080BF3C8: .4byte 0x03005E14 +_080BF3CC: .4byte 0x03002360 +_080BF3D0: + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl HideBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg +_080BF40A: + ldr r1, _080BF41C + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 +_080BF412: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080BF450 + .align 2, 0 +_080BF41C: .4byte 0x03002360 +_080BF420: + ldr r0, _080BF458 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _080BF450 + ldr r0, _080BF45C + ldr r0, [r0] + ldr r1, _080BF460 + adds r0, r0, r1 + strb r2, [r0] + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r5, r1 + strb r2, [r0] + ldr r1, _080BF464 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080BF468 + str r1, [r0] +_080BF450: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080BF458: .4byte 0x02037C74 +_080BF45C: .4byte 0x020397EC +_080BF460: .4byte 0x0000064E +_080BF464: .4byte 0x03005B60 +_080BF468: .4byte 0x080BF46D + thumb_func_end sub_080BF0C8 + + thumb_func_start sub_080BF46C +sub_080BF46C: @ 0x080BF46C + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r5, r4, #0 + ldr r0, _080BF4B8 + ldrh r1, [r0, #0x2e] + movs r0, #2 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0 + beq _080BF4CC + movs r0, #0x15 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _080BF4BC + ldr r0, [r0] + ldr r1, _080BF4C0 + adds r0, r0, r1 + movs r1, #1 + strb r1, [r0] + ldr r1, _080BF4C4 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080BF4C8 + str r1, [r0] + movs r0, #3 + bl PlaySE + b _080BF518 + .align 2, 0 +_080BF4B8: .4byte 0x03002360 +_080BF4BC: .4byte 0x020397EC +_080BF4C0: .4byte 0x0000064E +_080BF4C4: .4byte 0x03005B60 +_080BF4C8: .4byte 0x080BF535 +_080BF4CC: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _080BF4E8 + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080BF518 + ldr r0, _080BF520 + ldr r0, [r0] + ldrb r0, [r0, #0x13] + cmp r0, #1 + bne _080BF518 +_080BF4E8: + movs r0, #0x15 + rsbs r0, r0, #0 + str r2, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _080BF524 + ldr r0, [r0] + ldr r1, _080BF528 + adds r0, r0, r1 + movs r1, #2 + strb r1, [r0] + ldr r1, _080BF52C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080BF530 + str r1, [r0] + movs r0, #0x6d + bl PlaySE +_080BF518: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080BF520: .4byte 0x03005AF0 +_080BF524: .4byte 0x020397EC +_080BF528: .4byte 0x0000064E +_080BF52C: .4byte 0x03005B60 +_080BF530: .4byte 0x080BF535 + thumb_func_end sub_080BF46C + + thumb_func_start sub_080BF534 +sub_080BF534: @ 0x080BF534 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _080BF574 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080BF58C + ldr r1, _080BF578 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrh r0, [r4, #0x10] + bl FreeAndDestroyMonPicSprite + ldrh r0, [r4, #0x12] + bl FreeAndDestroyTrainerPicSprite + ldr r0, _080BF57C + ldr r0, [r0] + ldr r1, _080BF580 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + beq _080BF56E + cmp r0, #2 + beq _080BF588 +_080BF56E: + ldr r0, _080BF584 + b _080BF58A + .align 2, 0 +_080BF574: .4byte 0x02037C74 +_080BF578: .4byte 0x03005B60 +_080BF57C: .4byte 0x020397EC +_080BF580: .4byte 0x0000064E +_080BF584: .4byte 0x080BE1C9 +_080BF588: + ldr r0, _080BF594 +_080BF58A: + str r0, [r4] +_080BF58C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BF594: .4byte 0x080BEAD5 + thumb_func_end sub_080BF534 + + thumb_func_start sub_080BF598 +sub_080BF598: @ 0x080BF598 + push {lr} + ldr r1, _080BF5AC + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + pop {r0} + bx r0 + .align 2, 0 +_080BF5AC: .4byte 0x08537D24 + thumb_func_end sub_080BF598 + + thumb_func_start sub_080BF5B0 +sub_080BF5B0: @ 0x080BF5B0 + push {lr} + ldr r1, _080BF5C4 + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + pop {r0} + bx r0 + .align 2, 0 +_080BF5C4: .4byte 0x08537DB4 + thumb_func_end sub_080BF5B0 + + thumb_func_start sub_080BF5C8 +sub_080BF5C8: @ 0x080BF5C8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r0, #1 + bl GetBgTilemapBuffer + adds r7, r0, #0 + movs r1, #0 +_080BF5DE: + lsls r0, r1, #3 + subs r0, r0, r1 + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r3, #0x80 + lsls r3, r3, #7 + cmp r1, r8 + bne _080BF5F4 + movs r3, #0x80 + lsls r3, r3, #6 +_080BF5F4: + movs r2, #0 + adds r6, r1, #1 + ldr r4, _080BF634 +_080BF5FA: + adds r1, r5, r2 + lsls r1, r1, #1 + adds r1, r1, r7 + ldrh r0, [r1] + ands r0, r4 + orrs r0, r3 + strh r0, [r1] + adds r1, #0x40 + ldrh r0, [r1] + ands r0, r4 + orrs r0, r3 + strh r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #6 + bls _080BF5FA + lsls r0, r6, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #3 + bls _080BF5DE + movs r0, #1 + bl CopyBgTilemapBufferToVram + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080BF634: .4byte 0x00000FFF + thumb_func_end sub_080BF5C8 + + thumb_func_start sub_080BF638 +sub_080BF638: @ 0x080BF638 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r0, #1 + bl GetBgTilemapBuffer + adds r7, r0, #0 + movs r1, #0 +_080BF64E: + lsls r0, r1, #3 + subs r0, r0, r1 + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r1, r8 + beq _080BF660 + cmp r1, #3 + bne _080BF666 +_080BF660: + movs r3, #0x80 + lsls r3, r3, #6 + b _080BF66A +_080BF666: + movs r3, #0x80 + lsls r3, r3, #7 +_080BF66A: + movs r2, #0 + adds r5, r1, #1 + ldr r4, _080BF6AC +_080BF670: + adds r1, r6, r2 + lsls r1, r1, #1 + adds r1, r1, r7 + ldrh r0, [r1] + ands r0, r4 + orrs r0, r3 + strh r0, [r1] + adds r1, #0x40 + ldrh r0, [r1] + ands r0, r4 + orrs r0, r3 + strh r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #6 + bls _080BF670 + lsls r0, r5, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #3 + bls _080BF64E + movs r0, #1 + bl CopyBgTilemapBufferToVram + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080BF6AC: .4byte 0x00000FFF + thumb_func_end sub_080BF638 + + thumb_func_start CreateDexDisplayMonDataTask +CreateDexDisplayMonDataTask: @ 0x080BF6B0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r0, _080BF6EC + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080BF6F0 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r2, #0 + strh r2, [r1, #8] + strh r4, [r1, #0xa] + strh r5, [r1, #0x20] + lsrs r5, r5, #0x10 + strh r5, [r1, #0x22] + strh r6, [r1, #0x24] + lsrs r6, r6, #0x10 + strh r6, [r1, #0x26] + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080BF6EC: .4byte 0x080BF6F5 +_080BF6F0: .4byte 0x03005B60 + thumb_func_end CreateDexDisplayMonDataTask + + thumb_func_start sub_080BF6F4 +sub_080BF6F4: @ 0x080BF6F4 + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r1, _080BF71C + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r5, [r0, #0xa] + movs r2, #8 + ldrsh r0, [r0, r2] + adds r4, r1, #0 + cmp r0, #6 + bhi _080BF740 + lsls r0, r0, #2 + ldr r1, _080BF720 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BF71C: .4byte 0x03005B60 +_080BF720: .4byte 0x080BF724 +_080BF724: @ jump table + .4byte _080BF740 @ case 0 + .4byte _080BF7C8 @ case 1 + .4byte _080BF834 @ case 2 + .4byte _080BF83E @ case 3 + .4byte _080BF904 @ case 4 + .4byte _080BF95C @ case 5 + .4byte _080BF9A0 @ case 6 +_080BF740: + ldr r0, _080BF7B0 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080BF74E + b _080BF9D0 +_080BF74E: + ldr r1, _080BF7B4 + ldr r0, _080BF7B8 + ldr r0, [r0, #0xc] + str r0, [r1] + movs r0, #0 + bl SetVBlankCallback + movs r0, #0x80 + lsls r0, r0, #1 + bl sub_080BFF08 + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _080BF7BC + movs r0, #0 + movs r2, #2 + bl InitBgsFromTemplates + movs r4, #0x80 + lsls r4, r4, #4 + adds r0, r4, #0 + bl AllocZeroed + adds r1, r0, #0 + movs r0, #3 + bl SetBgTilemapBuffer + adds r0, r4, #0 + bl AllocZeroed + adds r1, r0, #0 + movs r0, #2 + bl SetBgTilemapBuffer + ldr r0, _080BF7C0 + bl InitWindows + bl DeactivateAllTextPrinters + ldr r1, _080BF7C4 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #1 + strh r1, [r0, #8] + b _080BF9D0 + .align 2, 0 +_080BF7B0: .4byte 0x02037C74 +_080BF7B4: .4byte 0x03005E14 +_080BF7B8: .4byte 0x03002360 +_080BF7BC: .4byte 0x08543148 +_080BF7C0: .4byte 0x08543150 +_080BF7C4: .4byte 0x03005B60 +_080BF7C8: + ldr r1, _080BF828 + movs r2, #0x80 + lsls r2, r2, #6 + movs r0, #0 + str r0, [sp] + movs r0, #3 + movs r3, #0 + bl DecompressAndLoadBgGfxUsingHeap + ldr r1, _080BF82C + movs r0, #3 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + movs r0, #0 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #0 + bl PutWindowTilemap + movs r0, #1 + bl PutWindowTilemap + ldr r0, _080BF830 + lsls r4, r7, #2 + adds r4, r4, r7 + lsls r4, r4, #3 + adds r4, r4, r0 + ldrh r1, [r4, #0xa] + movs r0, #1 + bl sub_080C0288 + movs r0, #1 + movs r1, #2 + bl CopyWindowToVram + bl ResetPaletteFade + movs r0, #0 + bl LoadPokedexBgPalette + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _080BF9D0 + .align 2, 0 +_080BF828: .4byte 0x08537E8C +_080BF82C: .4byte 0x08537A10 +_080BF830: .4byte 0x03005B60 +_080BF834: + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r4 + b _080BF994 +_080BF83E: + ldr r0, _080BF868 + movs r1, #3 + movs r2, #0 + bl sub_080BE07C + bl IsNationalPokedexEnabled + cmp r0, #0 + bne _080BF86C + adds r0, r5, #0 + bl NationalToHoennOrder + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0 + movs r2, #0xd + movs r3, #3 + bl sub_080C0020 + b _080BF878 + .align 2, 0 +_080BF868: .4byte 0x085C8FE7 +_080BF86C: + movs r0, #0 + adds r1, r5, #0 + movs r2, #0xd + movs r3, #3 + bl sub_080C0020 +_080BF878: + movs r0, #0 + adds r1, r5, #0 + movs r2, #0x11 + movs r3, #3 + bl sub_080C00A0 + ldr r0, _080BF8F4 + movs r1, #0xd + movs r2, #5 + bl sub_080BE07C + ldr r0, _080BF8F8 + movs r1, #0x10 + movs r2, #7 + bl sub_080BE07C + ldr r0, _080BF8FC + movs r1, #0x10 + movs r2, #9 + bl sub_080BE07C + lsls r4, r5, #3 + subs r4, r4, r5 + lsls r4, r4, #2 + ldr r6, _080BF900 + adds r5, r4, r6 + movs r0, #0 + adds r1, r5, #0 + movs r2, #0xd + movs r3, #5 + bl sub_080C0150 + ldrh r1, [r5, #6] + movs r0, #0 + movs r2, #0x10 + movs r3, #7 + bl sub_080C01C8 + ldrh r1, [r5, #8] + movs r0, #0 + movs r2, #0x10 + movs r3, #9 + bl sub_080C01C8 + adds r6, #0xc + adds r4, r4, r6 + ldr r0, [r4] + movs r1, #3 + movs r2, #0xd + bl sub_080BE07C + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + movs r0, #2 + bl CopyBgTilemapBufferToVram + movs r0, #3 + bl CopyBgTilemapBufferToVram + b _080BF98A + .align 2, 0 +_080BF8F4: .4byte 0x085C8FBB +_080BF8F8: .4byte 0x085C8FC5 +_080BF8FC: .4byte 0x085C8FCC +_080BF900: .4byte 0x0854069C +_080BF904: + adds r0, r5, #0 + movs r1, #0x30 + movs r2, #0x38 + movs r3, #0 + bl CreateMonSpriteFromNationalDexNumber + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _080BF950 + lsls r1, r4, #4 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #5] + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r0, _080BF954 + ldr r0, [r0] + bl SetVBlankCallback + ldr r1, _080BF958 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r4, [r0, #0xe] + b _080BF994 + .align 2, 0 +_080BF950: .4byte 0x020205AC +_080BF954: .4byte 0x03005E14 +_080BF958: .4byte 0x03005B60 +_080BF95C: + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg +_080BF98A: + ldr r1, _080BF99C + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 +_080BF994: + ldrh r1, [r0, #8] + adds r1, #1 + strh r1, [r0, #8] + b _080BF9D0 + .align 2, 0 +_080BF99C: .4byte 0x03005B60 +_080BF9A0: + ldr r0, _080BF9D8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _080BF9D0 + adds r0, r5, #0 + bl NationalPokedexNumToSpecies + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0 + bl PlayCry1 + ldr r1, _080BF9DC + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r4, [r0, #0xc] + ldr r1, _080BF9E0 + str r1, [r0] +_080BF9D0: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080BF9D8: .4byte 0x02037C74 +_080BF9DC: .4byte 0x03005B60 +_080BF9E0: .4byte 0x080BF9E5 + thumb_func_end sub_080BF6F4 + + thumb_func_start sub_080BF9E4 +sub_080BF9E4: @ 0x080BF9E4 + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080BFA2C + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _080BFA44 + ldr r0, _080BFA30 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r3, _080BFA34 + ldr r0, _080BFA38 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0xe + ldrsh r2, [r1, r0] + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r3, #0x1c + adds r0, r0, r3 + ldr r2, _080BFA3C + str r2, [r0] + ldr r0, _080BFA40 + str r0, [r1] + b _080BFA7A + .align 2, 0 +_080BFA2C: .4byte 0x03002360 +_080BFA30: .4byte 0x0000FFFF +_080BFA34: .4byte 0x020205AC +_080BFA38: .4byte 0x03005B60 +_080BFA3C: .4byte 0x080BFB29 +_080BFA40: .4byte 0x080BFA89 +_080BFA44: + ldr r1, _080BFA68 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #0xc] + adds r1, #1 + strh r1, [r0, #0xc] + movs r0, #0x10 + ands r1, r0 + cmp r1, #0 + beq _080BFA70 + ldr r0, _080BFA6C + movs r1, #0x31 + movs r2, #0xe + bl LoadPalette + b _080BFA7A + .align 2, 0 +_080BFA68: .4byte 0x03005B60 +_080BFA6C: .4byte 0x08537422 +_080BFA70: + ldr r0, _080BFA84 + movs r1, #0x31 + movs r2, #0xe + bl LoadPalette +_080BFA7A: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BFA84: .4byte 0x08537482 + thumb_func_end sub_080BF9E4 + + thumb_func_start blockset_load_palette_to_gpu +blockset_load_palette_to_gpu: @ 0x080BFA88 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _080BFB1C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080BFB16 + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + bl FreeAllWindowBuffers + movs r0, #2 + bl GetBgTilemapBuffer + cmp r0, #0 + beq _080BFAB6 + bl Free +_080BFAB6: + movs r0, #3 + bl GetBgTilemapBuffer + cmp r0, #0 + beq _080BFAC4 + bl Free +_080BFAC4: + ldr r0, _080BFB20 + lsls r4, r6, #2 + adds r4, r4, r6 + lsls r4, r4, #3 + adds r4, r4, r0 + ldrh r0, [r4, #0xa] + bl NationalPokedexNumToSpecies + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrh r1, [r4, #0x22] + lsls r1, r1, #0x10 + ldrh r2, [r4, #0x20] + orrs r1, r2 + ldrh r2, [r4, #0x26] + lsls r2, r2, #0x10 + ldrh r3, [r4, #0x24] + orrs r2, r3 + ldr r5, _080BFB24 + movs r3, #0xe + ldrsh r4, [r4, r3] + lsls r3, r4, #4 + adds r3, r3, r4 + lsls r3, r3, #2 + adds r3, r3, r5 + ldrb r4, [r3, #5] + lsrs r4, r4, #4 + bl GetMonSpritePalFromSpeciesAndPersonality + lsls r4, r4, #4 + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + orrs r4, r1 + adds r1, r4, #0 + movs r2, #0x20 + bl LoadCompressedPalette + adds r0, r6, #0 + bl DestroyTask +_080BFB16: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080BFB1C: .4byte 0x02037C74 +_080BFB20: .4byte 0x03005B60 +_080BFB24: .4byte 0x020205AC + thumb_func_end blockset_load_palette_to_gpu + + thumb_func_start sub_080BFB28 +sub_080BFB28: @ 0x080BFB28 + push {lr} + adds r1, r0, #0 + ldrh r2, [r1, #0x20] + movs r3, #0x20 + ldrsh r0, [r1, r3] + cmp r0, #0x77 + bgt _080BFB3A + adds r0, r2, #2 + strh r0, [r1, #0x20] +_080BFB3A: + ldrh r2, [r1, #0x20] + movs r3, #0x20 + ldrsh r0, [r1, r3] + cmp r0, #0x78 + ble _080BFB48 + subs r0, r2, #2 + strh r0, [r1, #0x20] +_080BFB48: + ldrh r2, [r1, #0x22] + movs r3, #0x22 + ldrsh r0, [r1, r3] + cmp r0, #0x4f + bgt _080BFB56 + adds r0, r2, #1 + strh r0, [r1, #0x22] +_080BFB56: + ldrh r2, [r1, #0x22] + movs r3, #0x22 + ldrsh r0, [r1, r3] + cmp r0, #0x50 + ble _080BFB64 + subs r0, r2, #1 + strh r0, [r1, #0x22] +_080BFB64: + pop {r0} + bx r0 + thumb_func_end sub_080BFB28 + + thumb_func_start sub_080BFB68 +sub_080BFB68: @ 0x080BFB68 + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080BFB7C + adds r0, r0, r1 + bx lr + .align 2, 0 +_080BFB7C: .4byte 0x0854069C + thumb_func_end sub_080BFB68 + + thumb_func_start GetPokedexHeightWeight +GetPokedexHeightWeight: @ 0x080BFB80 + push {lr} + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0 + beq _080BFB96 + cmp r1, #1 + beq _080BFBA8 + movs r0, #1 + b _080BFBB4 +_080BFB96: + ldr r0, _080BFBA4 + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r0, [r1, #6] + b _080BFBB4 + .align 2, 0 +_080BFBA4: .4byte 0x0854069C +_080BFBA8: + ldr r0, _080BFBB8 + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r0, [r1, #8] +_080BFBB4: + pop {r1} + bx r1 + .align 2, 0 +_080BFBB8: .4byte 0x0854069C + thumb_func_end GetPokedexHeightWeight + + thumb_func_start GetSetPokedexFlag +GetSetPokedexFlag: @ 0x080BFBBC + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r2, r1, #0x18 + adds r3, r2, #0 + ldr r1, _080BFBF0 + adds r0, r0, r1 + lsrs r1, r0, #0x10 + lsrs r0, r0, #0x13 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #7 + ands r1, r0 + movs r0, #0x80 + lsls r0, r0, #0x11 + lsls r0, r1 + lsrs r5, r0, #0x18 + movs r6, #0 + cmp r2, #1 + beq _080BFC54 + cmp r2, #1 + bgt _080BFBF4 + cmp r2, #0 + beq _080BFC02 + b _080BFD40 + .align 2, 0 +_080BFBF0: .4byte 0xFFFF0000 +_080BFBF4: + cmp r3, #2 + bne _080BFBFA + b _080BFCF4 +_080BFBFA: + cmp r3, #3 + bne _080BFC00 + b _080BFD30 +_080BFC00: + b _080BFD40 +_080BFC02: + ldr r1, _080BFC44 + ldr r0, [r1] + adds r0, #0x5c + adds r0, r0, r4 + ldrb r2, [r0] + ands r2, r5 + adds r7, r1, #0 + cmp r2, #0 + bne _080BFC16 + b _080BFD40 +_080BFC16: + ldr r0, _080BFC48 + ldr r3, [r0] + ldr r6, _080BFC4C + adds r1, r3, r6 + adds r1, r1, r4 + ldrb r1, [r1] + ands r1, r5 + adds r6, r0, #0 + cmp r2, r1 + bne _080BFC38 + ldr r1, _080BFC50 + adds r0, r3, r1 + adds r0, r0, r4 + ldrb r0, [r0] + ands r0, r5 + cmp r2, r0 + beq _080BFC96 +_080BFC38: + ldr r1, [r7] + adds r1, #0x5c + adds r1, r1, r4 + mvns r3, r5 + b _080BFCC2 + .align 2, 0 +_080BFC44: .4byte 0x03005AF0 +_080BFC48: .4byte 0x03005AEC +_080BFC4C: .4byte 0x00000988 +_080BFC50: .4byte 0x00003B24 +_080BFC54: + ldr r1, _080BFC9C + ldr r3, [r1] + adds r0, r3, #0 + adds r0, #0x28 + adds r0, r0, r4 + ldrb r2, [r0] + ands r2, r5 + adds r7, r1, #0 + cmp r2, #0 + beq _080BFD40 + adds r0, r3, #0 + adds r0, #0x5c + adds r0, r0, r4 + ldrb r0, [r0] + ands r0, r5 + ldr r6, _080BFCA0 + cmp r2, r0 + bne _080BFCAC + ldr r1, [r6] + ldr r3, _080BFCA4 + adds r0, r1, r3 + adds r0, r0, r4 + ldrb r0, [r0] + ands r0, r5 + cmp r2, r0 + bne _080BFCAC + ldr r3, _080BFCA8 + adds r0, r1, r3 + adds r0, r0, r4 + ldrb r0, [r0] + ands r0, r5 + cmp r2, r0 + bne _080BFCAC +_080BFC96: + movs r6, #1 + b _080BFD40 + .align 2, 0 +_080BFC9C: .4byte 0x03005AF0 +_080BFCA0: .4byte 0x03005AEC +_080BFCA4: .4byte 0x00000988 +_080BFCA8: .4byte 0x00003B24 +_080BFCAC: + ldr r1, [r7] + adds r1, #0x28 + adds r1, r1, r4 + mvns r3, r5 + ldrb r2, [r1] + adds r0, r3, #0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r7] + adds r1, #0x5c + adds r1, r1, r4 +_080BFCC2: + ldrb r2, [r1] + adds r0, r3, #0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r6] + ldr r0, _080BFCEC + adds r1, r1, r0 + adds r1, r1, r4 + ldrb r2, [r1] + adds r0, r3, #0 + ands r0, r2 + strb r0, [r1] + ldr r0, [r6] + ldr r1, _080BFCF0 + adds r0, r0, r1 + adds r0, r0, r4 + ldrb r1, [r0] + ands r3, r1 + strb r3, [r0] + movs r6, #0 + b _080BFD40 + .align 2, 0 +_080BFCEC: .4byte 0x00000988 +_080BFCF0: .4byte 0x00003B24 +_080BFCF4: + ldr r0, _080BFD20 + ldr r1, [r0] + adds r1, #0x5c + adds r1, r1, r4 + ldrb r2, [r1] + adds r0, r5, #0 + orrs r0, r2 + strb r0, [r1] + ldr r3, _080BFD24 + ldr r1, [r3] + ldr r0, _080BFD28 + adds r1, r1, r0 + adds r1, r1, r4 + ldrb r2, [r1] + adds r0, r5, #0 + orrs r0, r2 + strb r0, [r1] + ldr r1, [r3] + ldr r3, _080BFD2C + adds r1, r1, r3 + b _080BFD36 + .align 2, 0 +_080BFD20: .4byte 0x03005AF0 +_080BFD24: .4byte 0x03005AEC +_080BFD28: .4byte 0x00000988 +_080BFD2C: .4byte 0x00003B24 +_080BFD30: + ldr r0, _080BFD48 + ldr r1, [r0] + adds r1, #0x28 +_080BFD36: + adds r1, r1, r4 + ldrb r2, [r1] + adds r0, r5, #0 + orrs r0, r2 + strb r0, [r1] +_080BFD40: + adds r0, r6, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080BFD48: .4byte 0x03005AF0 + thumb_func_end GetSetPokedexFlag + + thumb_func_start GetNationalPokedexCount +GetNationalPokedexCount: @ 0x080BFD4C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r5, #0 + movs r0, #0 + ldr r7, _080BFD64 +_080BFD58: + cmp r6, #0 + beq _080BFD68 + cmp r6, #1 + beq _080BFD72 + adds r4, r0, #1 + b _080BFD8A + .align 2, 0 +_080BFD64: .4byte 0x00000181 +_080BFD68: + adds r4, r0, #1 + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0 + b _080BFD7A +_080BFD72: + adds r4, r0, #1 + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 +_080BFD7A: + bl GetSetPokedexFlag + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080BFD8A + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_080BFD8A: + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r7 + bls _080BFD58 + adds r0, r5, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetNationalPokedexCount + + thumb_func_start GetHoennPokedexCount +GetHoennPokedexCount: @ 0x080BFD9C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r5, #0 + movs r0, #0 +_080BFDA6: + cmp r6, #0 + beq _080BFDB2 + cmp r6, #1 + beq _080BFDC4 + adds r4, r0, #1 + b _080BFDE4 +_080BFDB2: + adds r4, r0, #1 + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + bl SpeciesToNationalPokedexNum + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0 + b _080BFDD4 +_080BFDC4: + adds r4, r0, #1 + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + bl SpeciesToNationalPokedexNum + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 +_080BFDD4: + bl GetSetPokedexFlag + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080BFDE4 + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_080BFDE4: + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xc9 + bls _080BFDA6 + adds r0, r5, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end GetHoennPokedexCount + + thumb_func_start sub_080BFDF4 +sub_080BFDF4: @ 0x080BFDF4 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r5, #0 + movs r0, #0 +_080BFDFE: + cmp r6, #0 + beq _080BFE0A + cmp r6, #1 + beq _080BFE14 + adds r4, r0, #1 + b _080BFE2C +_080BFE0A: + adds r4, r0, #1 + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0 + b _080BFE1C +_080BFE14: + adds r4, r0, #1 + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 +_080BFE1C: + bl GetSetPokedexFlag + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080BFE2C + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_080BFE2C: + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x96 + bls _080BFDFE + adds r0, r5, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_080BFDF4 + + thumb_func_start HasAllHoennMons +HasAllHoennMons: @ 0x080BFE3C + push {r4, lr} + movs r0, #0 +_080BFE40: + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r4, #0 + bl SpeciesToNationalPokedexNum + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + bl GetSetPokedexFlag + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080BFE60 + movs r0, #0 + b _080BFE68 +_080BFE60: + adds r0, r4, #0 + cmp r0, #0xc7 + bls _080BFE40 + movs r0, #1 +_080BFE68: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end HasAllHoennMons + + thumb_func_start sub_080BFE70 +sub_080BFE70: @ 0x080BFE70 + push {r4, lr} + movs r0, #0 +_080BFE74: + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r4, #0 + movs r1, #1 + bl GetSetPokedexFlag + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080BFE8C + movs r0, #0 + b _080BFE94 +_080BFE8C: + adds r0, r4, #0 + cmp r0, #0x95 + bls _080BFE74 + movs r0, #1 +_080BFE94: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080BFE70 + + thumb_func_start sub_080BFE9C +sub_080BFE9C: @ 0x080BFE9C + push {r4, r5, lr} + movs r0, #0 +_080BFEA0: + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r4, #0 + movs r1, #1 + bl GetSetPokedexFlag + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080BFEEE + adds r0, r4, #0 + cmp r0, #0x95 + bls _080BFEA0 + movs r0, #0x97 +_080BFEBC: + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r4, #0 + movs r1, #1 + bl GetSetPokedexFlag + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080BFEEE + adds r0, r4, #0 + cmp r0, #0xf7 + bls _080BFEBC + movs r0, #0xfb + ldr r5, _080BFEF4 +_080BFEDA: + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r4, #0 + movs r1, #1 + bl GetSetPokedexFlag + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080BFEF8 +_080BFEEE: + movs r0, #0 + b _080BFF00 + .align 2, 0 +_080BFEF4: .4byte 0x0000017F +_080BFEF8: + adds r0, r4, #0 + cmp r0, r5 + bls _080BFEDA + movs r0, #1 +_080BFF00: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080BFE9C + + thumb_func_start sub_080BFF08 +sub_080BFF08: @ 0x080BFF08 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r5, r4, #0 + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + bne _080BFF3A + movs r0, #0 + bl ClearGpuRegBits + movs r0, #8 + movs r1, #0 + bl SetGpuReg + movs r0, #0x10 + movs r1, #0 + bl SetGpuReg + movs r0, #0x12 + movs r1, #0 + bl SetGpuReg +_080BFF3A: + movs r1, #0x80 + lsls r1, r1, #2 + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + bne _080BFF64 + movs r0, #0 + bl ClearGpuRegBits + movs r0, #0xa + movs r1, #0 + bl SetGpuReg + movs r0, #0x14 + movs r1, #0 + bl SetGpuReg + movs r0, #0x16 + movs r1, #0 + bl SetGpuReg +_080BFF64: + movs r1, #0x80 + lsls r1, r1, #3 + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + bne _080BFF8E + movs r0, #0 + bl ClearGpuRegBits + movs r0, #0xc + movs r1, #0 + bl SetGpuReg + movs r0, #0x18 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1a + movs r1, #0 + bl SetGpuReg +_080BFF8E: + movs r1, #0x80 + lsls r1, r1, #4 + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + bne _080BFFB8 + movs r0, #0 + bl ClearGpuRegBits + movs r0, #0xe + movs r1, #0 + bl SetGpuReg + movs r0, #0x1c + movs r1, #0 + bl SetGpuReg + movs r0, #0x1e + movs r1, #0 + bl SetGpuReg +_080BFFB8: + movs r1, #0x80 + lsls r1, r1, #5 + ands r5, r1 + cmp r5, #0 + bne _080BFFD6 + movs r0, #0 + bl ClearGpuRegBits + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r1, _080BFFDC + movs r0, #8 + strb r0, [r1] +_080BFFD6: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080BFFDC: .4byte 0x030030BC + thumb_func_end sub_080BFF08 + + thumb_func_start sub_080BFFE0 +sub_080BFFE0: @ 0x080BFFE0 + push {r4, r5, r6, lr} + sub sp, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r3, r3, #0x18 + add r4, sp, #0x14 + movs r6, #0 + strb r6, [r4] + adds r5, r4, #0 + movs r4, #0xf + strb r4, [r5, #1] + movs r4, #3 + strb r4, [r5, #2] + lsls r2, r2, #0x1b + lsrs r2, r2, #0x18 + lsrs r3, r3, #0x15 + adds r3, #2 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r6, [sp] + str r6, [sp, #4] + str r5, [sp, #8] + subs r4, #4 + str r4, [sp, #0xc] + str r1, [sp, #0x10] + movs r1, #1 + bl AddTextPrinterParameterized4 + add sp, #0x18 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_080BFFE0 + + thumb_func_start sub_080C0020 +sub_080C0020: @ 0x080C0020 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #4 + adds r6, r0, #0 + adds r4, r1, #0 + mov r8, r2 + mov sb, r3 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + mov r0, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + mov r0, sb + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + mov r5, sp + adds r0, r4, #0 + movs r1, #0x64 + bl __udivsi3 + adds r0, #0xa1 + strb r0, [r5] + mov r5, sp + adds r0, r4, #0 + movs r1, #0x64 + bl __umodsi3 + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r4, #0 + movs r1, #0xa + bl __udivsi3 + adds r0, #0xa1 + strb r0, [r5, #1] + mov r5, sp + adds r0, r4, #0 + movs r1, #0xa + bl __umodsi3 + adds r0, #0xa1 + strb r0, [r5, #2] + mov r1, sp + movs r0, #0xff + strb r0, [r1, #3] + adds r0, r6, #0 + mov r2, r8 + mov r3, sb + bl sub_080BFFE0 + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_080C0020 + + thumb_func_start sub_080C00A0 +sub_080C00A0: @ 0x080C00A0 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + lsls r3, r3, #0x18 + lsrs r7, r3, #0x18 + movs r4, #0 + movs r2, #0xff +_080C00C2: + mov r1, sp + adds r0, r1, r4 + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xa + bls _080C00C2 + adds r0, r5, #0 + bl NationalPokedexNumToSpecies + adds r5, r0, #0 + cmp r5, #0 + beq _080C0120 + movs r4, #0 + ldr r1, _080C011C + lsls r3, r5, #1 + adds r0, r3, r5 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0xff + beq _080C0134 + adds r6, r1, #0 +_080C00F6: + mov r0, sp + adds r2, r0, r4 + adds r1, r3, r5 + lsls r1, r1, #1 + adds r0, r4, r1 + adds r0, r0, r6 + ldrb r0, [r0] + strb r0, [r2] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r1, r4, r1 + adds r1, r1, r6 + ldrb r0, [r1] + cmp r0, #0xff + beq _080C0134 + cmp r4, #9 + bls _080C00F6 + b _080C0134 + .align 2, 0 +_080C011C: .4byte 0x082EA31C +_080C0120: + movs r4, #0 + movs r1, #0xae +_080C0124: + mov r2, sp + adds r0, r2, r4 + strb r1, [r0] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #4 + bls _080C0124 +_080C0134: + mov r0, sb + mov r1, sp + mov r2, r8 + adds r3, r7, #0 + bl sub_080BFFE0 + adds r0, r4, #0 + add sp, #0xc + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_080C00A0 + + thumb_func_start sub_080C0150 +sub_080C0150: @ 0x080C0150 + push {r4, r5, r6, r7, lr} + sub sp, #8 + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov ip, r2 + lsls r3, r3, #0x18 + lsrs r5, r3, #0x18 + movs r2, #0 + movs r1, #0 +_080C0168: + mov r3, sp + adds r0, r3, r2 + strb r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #4 + bls _080C0168 + movs r3, #0 + ldrb r0, [r4] + cmp r0, #0 + beq _080C0192 +_080C0180: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + adds r0, r4, r3 + ldrb r0, [r0] + cmp r0, #0 + beq _080C0192 + cmp r3, #4 + bls _080C0180 +_080C0192: + movs r2, #0 + cmp r2, r3 + bhs _080C01B0 +_080C0198: + adds r0, r2, #5 + subs r0, r0, r3 + mov r7, sp + adds r1, r7, r0 + adds r0, r4, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, r3 + blo _080C0198 +_080C01B0: + mov r1, sp + movs r0, #0xff + strb r0, [r1, #5] + adds r0, r6, #0 + mov r2, ip + adds r3, r5, #0 + bl sub_080BFFE0 + add sp, #8 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_080C0150 + + thumb_func_start sub_080C01C8 +sub_080C01C8: @ 0x080C01C8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r6, r3, #0x18 + movs r5, #0 + movs r1, #0xfa + lsls r1, r1, #2 + adds r0, r4, #0 + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _080C01FC + mov r0, sp + strb r5, [r0] + b _080C0204 +_080C01FC: + mov r1, sp + adds r0, #0xa1 + strb r0, [r1] + movs r5, #1 +_080C0204: + movs r1, #0xfa + lsls r1, r1, #2 + adds r0, r4, #0 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _080C022A + cmp r5, #0 + bne _080C022A + mov r0, sp + strb r5, [r0, #1] + b _080C0230 +_080C022A: + mov r1, sp + adds r0, #0xa1 + strb r0, [r1, #1] +_080C0230: + mov r5, sp + movs r1, #0xfa + lsls r1, r1, #2 + adds r0, r4, #0 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r4, #0 + movs r1, #0xa + bl __udivsi3 + adds r0, #0xa1 + strb r0, [r5, #2] + mov r1, sp + movs r0, #0xb8 + strb r0, [r1, #3] + mov r5, sp + adds r0, r4, #0 + movs r1, #0xa + bl __umodsi3 + adds r0, #0xa1 + strb r0, [r5, #4] + mov r1, sp + movs r0, #0xff + strb r0, [r1, #5] + mov r0, r8 + adds r2, r7, #0 + adds r3, r6, #0 + bl sub_080BFFE0 + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_080C01C8 + + thumb_func_start sub_080C0288 +sub_080C0288: @ 0x080C0288 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x80 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r4, _080C0314 + adds r0, r1, #0 + bl NationalPokedexNumToSpecies + lsls r0, r0, #0x10 + lsrs r0, r0, #0xe + adds r0, r0, r4 + ldr r0, [r0] + mov ip, r0 + movs r5, #0 + movs r1, #0 + movs r7, #2 +_080C02B2: + mov r2, ip + adds r0, r2, r1 + ldrb r3, [r0] + movs r4, #0 + adds r6, r1, #1 +_080C02BC: + lsls r2, r4, #1 + adds r1, r3, #0 + asrs r1, r2 + movs r0, #1 + ands r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + asrs r1, r0, #0x1f + ands r1, r7 + adds r0, r7, #0 + lsls r0, r2 + ands r0, r3 + cmp r0, #0 + beq _080C02DC + movs r0, #0x20 + orrs r1, r0 +_080C02DC: + mov r2, sp + adds r0, r2, r5 + strb r1, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #3 + bls _080C02BC + lsls r0, r6, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0x1f + bls _080C02B2 + mov r0, r8 + mov r1, sp + movs r2, #0x80 + movs r3, #0 + bl CopyToWindowPixelBuffer + add sp, #0x80 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080C0314: .4byte 0x08543168 + thumb_func_end sub_080C0288 + + thumb_func_start sub_080C0318 +sub_080C0318: @ 0x080C0318 + push {r4, lr} + lsls r0, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsrs r0, r0, #5 + ldr r2, _080C0354 + adds r3, r0, r2 + movs r4, #0xf0 + lsls r4, r4, #8 + adds r2, r1, r4 + strh r2, [r3] + ldr r2, _080C0358 + adds r3, r0, r2 + adds r4, #1 + adds r2, r1, r4 + strh r2, [r3] + ldr r2, _080C035C + adds r3, r0, r2 + adds r4, #1 + adds r2, r1, r4 + strh r2, [r3] + ldr r2, _080C0360 + adds r0, r0, r2 + adds r4, #1 + adds r1, r1, r4 + strh r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C0354: .4byte 0x06000232 +_080C0358: .4byte 0x06000234 +_080C035C: .4byte 0x06000272 +_080C0360: .4byte 0x06000274 + thumb_func_end sub_080C0318 + + thumb_func_start sub_080C0364 +sub_080C0364: @ 0x080C0364 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r5, r4, #0 + lsls r1, r1, #0x10 + lsrs r0, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + cmp r4, #1 + beq _080C0390 + cmp r4, #1 + bgt _080C0386 + cmp r4, #0 + beq _080C0398 + b _080C03B8 +_080C0386: + cmp r5, #2 + beq _080C03AA + cmp r5, #3 + beq _080C039E + b _080C03B8 +_080C0390: + cmp r0, r2 + bls _080C03B8 + subs r0, #1 + b _080C03B0 +_080C0398: + cmp r0, r3 + bhs _080C03B8 + b _080C03AE +_080C039E: + cmp r0, r2 + bls _080C03A6 + subs r0, #1 + b _080C03B0 +_080C03A6: + adds r0, r3, #0 + b _080C03B8 +_080C03AA: + cmp r0, r3 + bhs _080C03B6 +_080C03AE: + adds r0, #1 +_080C03B0: + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _080C03B8 +_080C03B6: + adds r0, r2, #0 +_080C03B8: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080C0364 + + thumb_func_start sub_080C03C0 +sub_080C03C0: @ 0x080C03C0 + push {lr} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0xc9 + beq _080C03E0 + movs r0, #0x9a + lsls r0, r0, #1 + cmp r1, r0 + bne _080C03EC + ldr r0, _080C03DC + ldr r0, [r0] + ldr r0, [r0, #0x20] + b _080C03EE + .align 2, 0 +_080C03DC: .4byte 0x03005AF0 +_080C03E0: + ldr r0, _080C03E8 + ldr r0, [r0] + ldr r0, [r0, #0x1c] + b _080C03EE + .align 2, 0 +_080C03E8: .4byte 0x03005AF0 +_080C03EC: + movs r0, #0 +_080C03EE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080C03C0 + + thumb_func_start CreateMonSpriteFromNationalDexNumber +CreateMonSpriteFromNationalDexNumber: @ 0x080C03F4 + push {r4, r5, r6, lr} + sub sp, #0x14 + adds r4, r1, #0 + adds r5, r2, #0 + adds r6, r3, #0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + bl NationalPokedexNumToSpecies + adds r1, r0, #0 + adds r0, r1, #0 + str r1, [sp, #0x10] + bl sub_080C03C0 + adds r2, r0, #0 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + str r4, [sp] + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + str r5, [sp, #4] + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + str r6, [sp, #8] + ldr r0, _080C044C + str r0, [sp, #0xc] + ldr r1, [sp, #0x10] + adds r0, r1, #0 + movs r1, #8 + movs r3, #1 + bl CreateMonPicSprite_HandleDeoxys + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + add sp, #0x14 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080C044C: .4byte 0x0000FFFF + thumb_func_end CreateMonSpriteFromNationalDexNumber + + thumb_func_start sub_080C0450 +sub_080C0450: @ 0x080C0450 + push {r4, r5, lr} + sub sp, #8 + adds r4, r1, #0 + adds r5, r2, #0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r3, [sp] + ldr r1, _080C0484 + str r1, [sp, #4] + movs r1, #1 + adds r2, r4, #0 + adds r3, r5, #0 + bl CreateTrainerPicSprite + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + add sp, #8 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080C0484: .4byte 0x0000FFFF + thumb_func_end sub_080C0450 + + thumb_func_start sub_080C0488 +sub_080C0488: @ 0x080C0488 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + ldr r4, [sp, #0x34] + ldr r5, [sp, #0x38] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r3, [sp, #4] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r4, [sp, #8] + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + mov sl, r5 + bl sub_080BC010 + movs r5, #0 + movs r6, #0 + ldr r4, _080C069C + ldr r3, _080C06A0 +_080C04C2: + ldr r2, [r3] + lsls r0, r5, #2 + adds r1, r2, r0 + ldrb r0, [r1, #2] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _080C04DE + lsls r0, r6, #2 + adds r0, r2, r0 + ldr r1, [r1] + str r1, [r0] + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 +_080C04DE: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, r4 + bls _080C04C2 + ldr r1, _080C06A0 + ldr r0, [r1] + ldr r2, _080C06A4 + adds r0, r0, r2 + adds r1, r6, #0 + strh r6, [r0] + cmp r7, #0xff + beq _080C0596 + movs r5, #0 + lsls r0, r1, #0x10 + movs r6, #0 + cmp r0, #0 + beq _080C058C + lsls r7, r7, #2 + ldr r0, _080C06A8 + adds r0, #3 + adds r0, r7, r0 + str r0, [sp, #0xc] + ldr r0, _080C06A8 + adds r0, r0, r7 + mov sb, r0 +_080C0512: + ldr r1, _080C06A0 + ldr r0, [r1] + lsls r4, r5, #2 + adds r0, r0, r4 + ldrh r0, [r0] + bl NationalPokedexNumToSpecies + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r1, _080C06AC + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrb r2, [r0] + adds r3, r2, #0 + mov r0, sb + ldrb r0, [r0] + cmp r2, r0 + blo _080C054C + mov r1, sb + ldrb r0, [r1] + ldr r1, _080C06A8 + adds r1, #1 + adds r1, r7, r1 + ldrb r1, [r1] + adds r0, r0, r1 + cmp r2, r0 + blt _080C0564 +_080C054C: + ldr r0, _080C06A8 + adds r0, #2 + adds r0, r7, r0 + ldrb r2, [r0] + cmp r3, r2 + blo _080C0578 + ldrb r1, [r0] + ldr r2, [sp, #0xc] + ldrb r0, [r2] + adds r1, r1, r0 + cmp r3, r1 + bge _080C0578 +_080C0564: + ldr r2, _080C06A0 + ldr r0, [r2] + lsls r1, r6, #2 + adds r1, r0, r1 + adds r0, r0, r4 + ldr r0, [r0] + str r0, [r1] + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 +_080C0578: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r1, _080C06A0 + ldr r0, [r1] + ldr r2, _080C06A4 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r5, r0 + blo _080C0512 +_080C058C: + ldr r1, _080C06A0 + ldr r0, [r1] + ldr r2, _080C06A4 + adds r0, r0, r2 + strh r6, [r0] +_080C0596: + ldr r0, [sp, #4] + cmp r0, #0xff + beq _080C0606 + movs r5, #0 + movs r6, #0 + ldr r1, _080C06A0 + ldr r0, [r1] + ldr r2, _080C06A4 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r6, r0 + bhs _080C05FC + adds r7, r1, #0 + ldr r0, _080C06B0 + mov r8, r0 +_080C05B4: + ldr r0, [r7] + lsls r4, r5, #2 + adds r0, r0, r4 + ldrh r0, [r0] + bl NationalPokedexNumToSpecies + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + add r0, r8 + ldrb r0, [r0, #0x19] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x19 + ldr r1, [sp, #4] + cmp r1, r0 + bne _080C05EA + ldr r0, [r7] + lsls r1, r6, #2 + adds r1, r0, r1 + adds r0, r0, r4 + ldr r0, [r0] + str r0, [r1] + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 +_080C05EA: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, [r7] + ldr r2, _080C06A4 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r5, r0 + blo _080C05B4 +_080C05FC: + ldr r1, _080C06A0 + ldr r0, [r1] + ldr r2, _080C06A4 + adds r0, r0, r2 + strh r6, [r0] +_080C0606: + ldr r0, [sp, #8] + cmp r0, #0xff + bne _080C061C + mov r1, sl + cmp r1, #0xff + bne _080C0614 + b _080C073A +_080C0614: + mov r2, sl + str r2, [sp, #8] + movs r0, #0xff + mov sl, r0 +_080C061C: + mov r1, sl + cmp r1, #0xff + bne _080C06B4 + movs r5, #0 + movs r6, #0 + ldr r2, _080C06A0 + ldr r0, [r2] + ldr r1, _080C06A4 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r6, r0 + bhs _080C0730 + adds r3, r2, #0 + mov r7, sp + mov r8, r2 +_080C063A: + ldr r0, [r3] + lsls r4, r5, #2 + adds r1, r0, r4 + ldrb r0, [r1, #2] + lsls r0, r0, #0x1e + cmp r0, #0 + bge _080C0684 + ldrh r0, [r1] + str r3, [sp, #0x10] + bl NationalPokedexNumToSpecies + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r1, _080C06B0 + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #6] + strb r1, [r7] + ldrb r0, [r0, #7] + strb r0, [r7, #1] + ldr r3, [sp, #0x10] + ldr r2, [sp, #8] + cmp r1, r2 + beq _080C0672 + cmp r0, r2 + bne _080C0684 +_080C0672: + ldr r0, [r3] + lsls r1, r6, #2 + adds r1, r0, r1 + adds r0, r0, r4 + ldr r0, [r0] + str r0, [r1] + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 +_080C0684: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + mov r1, r8 + ldr r0, [r1] + ldr r2, _080C06A4 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r5, r0 + blo _080C063A + b _080C0730 + .align 2, 0 +_080C069C: .4byte 0x00000181 +_080C06A0: .4byte 0x020397EC +_080C06A4: .4byte 0x0000060C +_080C06A8: .4byte 0x0854410C +_080C06AC: .4byte 0x082EA31C +_080C06B0: .4byte 0x082F0D54 +_080C06B4: + movs r5, #0 + movs r6, #0 + ldr r1, _080C07A0 + ldr r0, [r1] + ldr r2, _080C07A4 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r6, r0 + bhs _080C0730 + mov r7, sp +_080C06C8: + ldr r0, [r1] + lsls r1, r5, #2 + adds r2, r0, r1 + ldrb r0, [r2, #2] + lsls r0, r0, #0x1e + adds r4, r1, #0 + cmp r0, #0 + bge _080C071C + ldrh r0, [r2] + bl NationalPokedexNumToSpecies + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r1, _080C07A8 + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #6] + strb r1, [r7] + ldrb r0, [r0, #7] + strb r0, [r7, #1] + ldr r2, [sp, #8] + cmp r1, r2 + bne _080C06FE + cmp r0, sl + beq _080C0708 +_080C06FE: + cmp r1, sl + bne _080C071C + ldr r1, [sp, #8] + cmp r0, r1 + bne _080C071C +_080C0708: + ldr r2, _080C07A0 + ldr r0, [r2] + lsls r1, r6, #2 + adds r1, r0, r1 + adds r0, r0, r4 + ldr r0, [r0] + str r0, [r1] + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 +_080C071C: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r1, _080C07A0 + ldr r0, [r1] + ldr r2, _080C07A4 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r5, r0 + blo _080C06C8 +_080C0730: + ldr r1, _080C07A0 + ldr r0, [r1] + ldr r2, _080C07A4 + adds r0, r0, r2 + strh r6, [r0] +_080C073A: + ldr r1, _080C07A0 + ldr r0, [r1] + ldr r2, _080C07A4 + adds r1, r0, r2 + ldrh r0, [r1] + cmp r0, #0 + beq _080C078E + adds r5, r0, #0 + ldr r0, _080C07AC + cmp r5, r0 + bhi _080C078E + ldr r4, _080C07A0 + movs r1, #2 + rsbs r1, r1, #0 + mov sl, r1 + movs r2, #3 + rsbs r2, r2, #0 + mov sb, r2 + mov r8, r0 + ldr r0, _080C07B0 + adds r7, r0, #0 +_080C0764: + ldr r1, [r4] + lsls r3, r5, #2 + adds r1, r1, r3 + ldrh r0, [r1] + orrs r0, r7 + strh r0, [r1] + ldrb r2, [r1, #2] + mov r0, sl + ands r0, r2 + strb r0, [r1, #2] + ldr r1, [r4] + adds r1, r1, r3 + ldrb r2, [r1, #2] + mov r0, sb + ands r0, r2 + strb r0, [r1, #2] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, r8 + bls _080C0764 +_080C078E: + adds r0, r6, #0 + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080C07A0: .4byte 0x020397EC +_080C07A4: .4byte 0x0000060C +_080C07A8: .4byte 0x082F0D54 +_080C07AC: .4byte 0x00000181 +_080C07B0: .4byte 0x0000FFFF + thumb_func_end sub_080C0488 + + thumb_func_start sub_080C07B4 +sub_080C07B4: @ 0x080C07B4 + push {lr} + ldr r0, _080C07C8 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_080C07C8: .4byte 0x080C0851 + thumb_func_end sub_080C07B4 + + thumb_func_start sub_080C07CC +sub_080C07CC: @ 0x080C07CC + push {r4, r5, lr} + sub sp, #0x18 + adds r5, r1, #0 + adds r3, r2, #0 + lsls r3, r3, #0x18 + add r1, sp, #0x14 + movs r4, #0 + strb r4, [r1] + adds r2, r1, #0 + movs r1, #0xf + strb r1, [r2, #1] + movs r1, #2 + strb r1, [r2, #2] + lsls r5, r5, #0x1b + lsrs r5, r5, #0x18 + lsrs r3, r3, #0x15 + adds r3, #2 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r4, [sp] + str r4, [sp, #4] + str r2, [sp, #8] + subs r1, #3 + str r1, [sp, #0xc] + str r0, [sp, #0x10] + movs r0, #0 + movs r1, #1 + adds r2, r5, #0 + bl AddTextPrinterParameterized4 + add sp, #0x18 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_080C07CC + + thumb_func_start sub_080C0810 +sub_080C0810: @ 0x080C0810 + push {r4, r5, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r4, r0, #3 + lsls r5, r1, #3 + subs r0, #1 + subs r2, r2, r0 + lsls r2, r2, #0x13 + lsrs r2, r2, #0x10 + str r2, [sp] + subs r1, #1 + subs r3, r3, r1 + lsls r3, r3, #0x13 + lsrs r3, r3, #0x10 + str r3, [sp, #4] + movs r0, #0 + movs r1, #0 + adds r2, r4, #0 + adds r3, r5, #0 + bl FillWindowPixelRect + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_080C0810 + + thumb_func_start sub_080C0850 +sub_080C0850: @ 0x080C0850 + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _080C0874 + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r1, r2 + ldrb r0, [r0] + adds r3, r1, #0 + cmp r0, #4 + bhi _080C0890 + lsls r0, r0, #2 + ldr r1, _080C0878 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C0874: .4byte 0x03002360 +_080C0878: .4byte 0x080C087C +_080C087C: @ jump table + .4byte _080C0890 @ case 0 + .4byte _080C0984 @ case 1 + .4byte _080C09F0 @ case 2 + .4byte _080C0A10 @ case 3 + .4byte _080C0A60 @ case 4 +_080C0890: + ldr r0, _080C0938 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + beq _080C08A2 + b _080C0A86 +_080C08A2: + ldr r0, _080C093C + ldr r0, [r0] + ldr r1, _080C0940 + adds r0, r0, r1 + movs r1, #2 + strb r1, [r0] + movs r0, #0 + bl sub_080BFF08 + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _080C0944 + movs r0, #0 + movs r2, #4 + bl InitBgsFromTemplates + movs r4, #0x80 + lsls r4, r4, #4 + adds r0, r4, #0 + bl AllocZeroed + adds r1, r0, #0 + movs r0, #3 + bl SetBgTilemapBuffer + adds r0, r4, #0 + bl AllocZeroed + adds r1, r0, #0 + movs r0, #2 + bl SetBgTilemapBuffer + adds r0, r4, #0 + bl AllocZeroed + adds r1, r0, #0 + movs r0, #1 + bl SetBgTilemapBuffer + adds r0, r4, #0 + bl AllocZeroed + adds r1, r0, #0 + movs r0, #0 + bl SetBgTilemapBuffer + ldr r0, _080C0948 + bl InitWindows + bl DeactivateAllTextPrinters + movs r0, #0 + bl PutWindowTilemap + ldr r1, _080C094C + movs r2, #0x80 + lsls r2, r2, #6 + str r5, [sp] + movs r0, #3 + movs r3, #0 + bl DecompressAndLoadBgGfxUsingHeap + bl IsNationalPokedexEnabled + cmp r0, #0 + bne _080C0954 + ldr r1, _080C0950 + movs r0, #3 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + b _080C0960 + .align 2, 0 +_080C0938: .4byte 0x02037C74 +_080C093C: .4byte 0x020397EC +_080C0940: .4byte 0x0000064A +_080C0944: .4byte 0x085443FC +_080C0948: .4byte 0x0854440C +_080C094C: .4byte 0x0854385C +_080C0950: .4byte 0x08543F84 +_080C0954: + ldr r1, _080C0978 + movs r0, #3 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer +_080C0960: + ldr r0, _080C097C + movs r1, #1 + movs r2, #0x7e + bl LoadPalette + ldr r0, _080C0980 + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r0, r2 + movs r1, #1 + strb r1, [r0] + b _080C0A86 + .align 2, 0 +_080C0978: .4byte 0x08543DE8 +_080C097C: .4byte 0x085437DE +_080C0980: .4byte 0x03002360 +_080C0984: + ldr r0, _080C09E4 + bl LoadCompressedSpriteSheet + ldr r0, _080C09E8 + bl LoadSpritePalettes + adds r0, r4, #0 + bl sub_080C1C38 + movs r1, #0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r2, r0, #3 + ldr r5, _080C09EC + movs r3, #0 +_080C09A2: + lsls r0, r1, #1 + adds r0, r0, r2 + adds r0, r0, r5 + strh r3, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0xf + bls _080C09A2 + adds r0, r4, #0 + bl sub_080C1A5C + movs r0, #0 + bl sub_080C1684 + adds r0, r4, #0 + bl sub_080C175C + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + movs r0, #1 + bl CopyBgTilemapBufferToVram + movs r0, #2 + bl CopyBgTilemapBufferToVram + movs r0, #3 + bl CopyBgTilemapBufferToVram + b _080C0A4A + .align 2, 0 +_080C09E4: .4byte 0x08539BBC +_080C09E8: .4byte 0x08539BCC +_080C09EC: .4byte 0x03005B68 +_080C09F0: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r1, _080C0A0C + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _080C0A52 + .align 2, 0 +_080C0A0C: .4byte 0x03002360 +_080C0A10: + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl HideBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg +_080C0A4A: + ldr r1, _080C0A5C + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 +_080C0A52: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080C0A86 + .align 2, 0 +_080C0A5C: .4byte 0x03002360 +_080C0A60: + ldr r0, _080C0A90 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _080C0A86 + ldr r1, _080C0A94 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080C0A98 + str r1, [r0] + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r3, r1 + strb r2, [r0] +_080C0A86: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080C0A90: .4byte 0x02037C74 +_080C0A94: .4byte 0x03005B60 +_080C0A98: .4byte 0x080C0AE1 + thumb_func_end sub_080C0850 + + thumb_func_start sub_080C0A9C +sub_080C0A9C: @ 0x080C0A9C + push {lr} + bl FreeAllWindowBuffers + movs r0, #0 + bl GetBgTilemapBuffer + cmp r0, #0 + beq _080C0AB0 + bl Free +_080C0AB0: + movs r0, #1 + bl GetBgTilemapBuffer + cmp r0, #0 + beq _080C0ABE + bl Free +_080C0ABE: + movs r0, #2 + bl GetBgTilemapBuffer + cmp r0, #0 + beq _080C0ACC + bl Free +_080C0ACC: + movs r0, #3 + bl GetBgTilemapBuffer + cmp r0, #0 + beq _080C0ADA + bl Free +_080C0ADA: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080C0A9C + + thumb_func_start sub_080C0AE0 +sub_080C0AE0: @ 0x080C0AE0 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _080C0B18 + lsls r5, r4, #2 + adds r5, r5, r4 + lsls r5, r5, #3 + adds r5, r5, r0 + ldrb r0, [r5, #8] + bl sub_080C1684 + adds r0, r4, #0 + bl sub_080C175C + movs r0, #0 + movs r1, #2 + bl CopyWindowToVram + movs r0, #3 + bl CopyBgTilemapBufferToVram + ldr r0, _080C0B1C + str r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080C0B18: .4byte 0x03005B60 +_080C0B1C: .4byte 0x080C0B21 + thumb_func_end sub_080C0AE0 + + thumb_func_start sub_080C0B20 +sub_080C0B20: @ 0x080C0B20 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _080C0B48 + ldrh r1, [r0, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080C0B54 + movs r0, #3 + bl PlaySE + ldr r0, _080C0B4C + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080C0B50 + str r0, [r1] + b _080C0C2C + .align 2, 0 +_080C0B48: .4byte 0x03002360 +_080C0B4C: .4byte 0x03005B60 +_080C0B50: .4byte 0x080C137D +_080C0B54: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080C0BB0 + ldr r1, _080C0B78 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r5, r0, r1 + movs r0, #8 + ldrsh r4, [r5, r0] + cmp r4, #1 + beq _080C0B8C + cmp r4, #1 + bgt _080C0B7C + cmp r4, #0 + beq _080C0B82 + b _080C0C2C + .align 2, 0 +_080C0B78: .4byte 0x03005B60 +_080C0B7C: + cmp r4, #2 + beq _080C0BA0 + b _080C0C2C +_080C0B82: + movs r0, #0x15 + bl PlaySE + strh r4, [r5, #0xa] + b _080C0B96 +_080C0B8C: + movs r0, #0x15 + bl PlaySE + movs r0, #4 + strh r0, [r5, #0xa] +_080C0B96: + ldr r0, _080C0B9C + str r0, [r5] + b _080C0C2C + .align 2, 0 +_080C0B9C: .4byte 0x080C0C3D +_080C0BA0: + movs r0, #3 + bl PlaySE + ldr r0, _080C0BAC + str r0, [r5] + b _080C0C2C + .align 2, 0 +_080C0BAC: .4byte 0x080C137D +_080C0BB0: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080C0BEC + ldr r0, _080C0C34 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r4, r1, r0 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + ble _080C0BEC + movs r0, #0x6d + bl PlaySE + ldrh r0, [r4, #8] + subs r0, #1 + strh r0, [r4, #8] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_080C1684 + movs r0, #0 + movs r1, #2 + bl CopyWindowToVram + movs r0, #3 + bl CopyBgTilemapBufferToVram +_080C0BEC: + ldr r0, _080C0C38 + ldrh r1, [r0, #0x2e] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080C0C2C + ldr r0, _080C0C34 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r4, r1, r0 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #1 + bgt _080C0C2C + movs r0, #0x6d + bl PlaySE + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_080C1684 + movs r0, #0 + movs r1, #2 + bl CopyWindowToVram + movs r0, #3 + bl CopyBgTilemapBufferToVram +_080C0C2C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080C0C34: .4byte 0x03005B60 +_080C0C38: .4byte 0x03002360 + thumb_func_end sub_080C0B20 + + thumb_func_start sub_080C0C3C +sub_080C0C3C: @ 0x080C0C3C + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _080C0C74 + lsls r5, r4, #2 + adds r5, r5, r4 + lsls r5, r5, #3 + adds r5, r5, r0 + ldrb r0, [r5, #8] + ldrb r1, [r5, #0xa] + bl sub_080C16B8 + adds r0, r4, #0 + bl sub_080C175C + movs r0, #0 + movs r1, #2 + bl CopyWindowToVram + movs r0, #3 + bl CopyBgTilemapBufferToVram + ldr r0, _080C0C78 + str r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080C0C74: .4byte 0x03005B60 +_080C0C78: .4byte 0x080C0C7D + thumb_func_end sub_080C0C3C + + thumb_func_start sub_080C0C7C +sub_080C0C7C: @ 0x080C0C7C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _080C0CA4 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #8 + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _080C0CB0 + bl IsNationalPokedexEnabled + ldr r6, _080C0CA8 + cmp r0, #0 + bne _080C0CBC + ldr r6, _080C0CAC + b _080C0CBC + .align 2, 0 +_080C0CA4: .4byte 0x03005B60 +_080C0CA8: .4byte 0x085441BC +_080C0CAC: .4byte 0x085441F4 +_080C0CB0: + bl IsNationalPokedexEnabled + ldr r6, _080C0CE8 + cmp r0, #0 + bne _080C0CBC + ldr r6, _080C0CEC +_080C0CBC: + ldr r0, _080C0CF0 + ldrh r1, [r0, #0x2e] + movs r0, #2 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0 + beq _080C0CFC + movs r0, #0x17 + bl PlaySE + adds r0, r5, #0 + bl sub_080C1A5C + ldr r0, _080C0CF4 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080C0CF8 + str r0, [r1] + b _080C0F14 + .align 2, 0 +_080C0CE8: .4byte 0x085441A0 +_080C0CEC: .4byte 0x085441D8 +_080C0CF0: .4byte 0x03002360 +_080C0CF4: .4byte 0x03005B60 +_080C0CF8: .4byte 0x080C0AE1 +_080C0CFC: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080C0DF0 + ldr r0, _080C0D8C + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r6, r1, r0 + movs r2, #0xa + ldrsh r0, [r6, r2] + cmp r0, #6 + bne _080C0DE0 + movs r1, #8 + ldrsh r0, [r6, r1] + cmp r0, #0 + beq _080C0DAC + ldr r1, _080C0D90 + movs r0, #0x40 + strb r0, [r1] + ldr r7, _080C0D94 + ldr r1, [r7] + ldr r0, _080C0D98 + adds r2, r1, r0 + movs r0, #0x40 + strh r0, [r2] + ldr r0, _080C0D9C + strh r3, [r0] + movs r2, #0xc2 + lsls r2, r2, #3 + adds r1, r1, r2 + strh r3, [r1] + adds r0, r5, #0 + movs r1, #5 + bl sub_080C19BC + ldr r4, _080C0DA0 + ldr r1, [r4] + strb r0, [r1, #0x19] + bl IsNationalPokedexEnabled + cmp r0, #0 + bne _080C0D58 + ldr r1, [r4] + movs r0, #0 + strb r0, [r1, #0x19] +_080C0D58: + ldr r0, [r7] + ldr r1, [r4] + ldrb r1, [r1, #0x19] + ldr r2, _080C0DA4 + adds r0, r0, r2 + strh r1, [r0] + adds r0, r5, #0 + movs r1, #4 + bl sub_080C19BC + ldr r1, [r4] + strb r0, [r1, #0x18] + ldr r0, [r7] + ldr r1, [r4] + ldrb r1, [r1, #0x18] + movs r2, #0xc3 + lsls r2, r2, #3 + adds r0, r0, r2 + strh r1, [r0] + movs r0, #3 + bl PlaySE + ldr r0, _080C0DA8 + str r0, [r6] + b _080C0F14 + .align 2, 0 +_080C0D8C: .4byte 0x03005B60 +_080C0D90: .4byte 0x020397F2 +_080C0D94: .4byte 0x020397EC +_080C0D98: .4byte 0x0000062A +_080C0D9C: .4byte 0x020397F0 +_080C0DA0: .4byte 0x03005AF0 +_080C0DA4: .4byte 0x00000614 +_080C0DA8: .4byte 0x080C137D +_080C0DAC: + movs r0, #0 + movs r1, #0xe + movs r2, #0x1d + movs r3, #0x13 + bl sub_080C0810 + ldr r0, _080C0DD8 + movs r1, #2 + movs r2, #0xf + bl sub_080C07CC + ldr r0, _080C0DDC + str r0, [r6] + movs r0, #0x70 + bl PlaySE + movs r0, #0 + movs r1, #2 + bl CopyWindowToVram + b _080C0F14 + .align 2, 0 +_080C0DD8: .4byte 0x085C8FFC +_080C0DDC: .4byte 0x080C0F25 +_080C0DE0: + movs r0, #0x15 + bl PlaySE + ldr r0, _080C0DEC + str r0, [r6] + b _080C0F14 + .align 2, 0 +_080C0DEC: .4byte 0x080C1105 +_080C0DF0: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080C0E36 + ldr r1, _080C0F1C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #0xa + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r0, [r0] + cmp r0, #0xff + beq _080C0E36 + movs r0, #5 + bl PlaySE + movs r2, #0xa + ldrsh r0, [r4, r2] + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r1, [r0] + strh r1, [r4, #0xa] + ldrb r0, [r4, #8] + bl sub_080C16B8 + movs r0, #0 + movs r1, #2 + bl CopyWindowToVram + movs r0, #3 + bl CopyBgTilemapBufferToVram +_080C0E36: + ldr r0, _080C0F20 + ldrh r1, [r0, #0x2e] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080C0E80 + ldr r1, _080C0F1C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #0xa + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r0, [r0, #1] + cmp r0, #0xff + beq _080C0E80 + movs r0, #5 + bl PlaySE + movs r2, #0xa + ldrsh r0, [r4, r2] + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r1, [r0, #1] + strh r1, [r4, #0xa] + ldrb r0, [r4, #8] + bl sub_080C16B8 + movs r0, #0 + movs r1, #2 + bl CopyWindowToVram + movs r0, #3 + bl CopyBgTilemapBufferToVram +_080C0E80: + ldr r0, _080C0F20 + ldrh r1, [r0, #0x2e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080C0ECA + ldr r1, _080C0F1C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #0xa + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r0, [r0, #2] + cmp r0, #0xff + beq _080C0ECA + movs r0, #5 + bl PlaySE + movs r2, #0xa + ldrsh r0, [r4, r2] + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r1, [r0, #2] + strh r1, [r4, #0xa] + ldrb r0, [r4, #8] + bl sub_080C16B8 + movs r0, #0 + movs r1, #2 + bl CopyWindowToVram + movs r0, #3 + bl CopyBgTilemapBufferToVram +_080C0ECA: + ldr r0, _080C0F20 + ldrh r1, [r0, #0x2e] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080C0F14 + ldr r1, _080C0F1C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #0xa + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r0, [r0, #3] + cmp r0, #0xff + beq _080C0F14 + movs r0, #5 + bl PlaySE + movs r2, #0xa + ldrsh r0, [r4, r2] + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r1, [r0, #3] + strh r1, [r4, #0xa] + ldrb r0, [r4, #8] + bl sub_080C16B8 + movs r0, #0 + movs r1, #2 + bl CopyWindowToVram + movs r0, #3 + bl CopyBgTilemapBufferToVram +_080C0F14: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080C0F1C: .4byte 0x03005B60 +_080C0F20: .4byte 0x03002360 + thumb_func_end sub_080C0C7C + + thumb_func_start sub_080C0F24 +sub_080C0F24: @ 0x080C0F24 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + sub sp, #8 + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + adds r0, r5, #0 + movs r1, #5 + bl sub_080C19BC + mov sl, r0 + mov r0, sl + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + adds r0, r5, #0 + movs r1, #4 + bl sub_080C19BC + mov sb, r0 + mov r0, sb + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + adds r0, r5, #0 + movs r1, #0 + bl sub_080C19BC + mov r8, r0 + mov r0, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + adds r0, r5, #0 + movs r1, #1 + bl sub_080C19BC + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + adds r0, r5, #0 + movs r1, #2 + bl sub_080C19BC + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + movs r1, #3 + bl sub_080C19BC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r4, [sp] + str r0, [sp, #4] + mov r0, sl + mov r1, sb + mov r2, r8 + adds r3, r6, #0 + bl sub_080C0488 + ldr r1, _080C0FC4 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080C0FC8 + str r1, [r0] + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080C0FC4: .4byte 0x03005B60 +_080C0FC8: .4byte 0x080C0FCD + thumb_func_end sub_080C0F24 + + thumb_func_start sub_080C0FCC +sub_080C0FCC: @ 0x080C0FCC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl IsSEPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C1046 + ldr r0, _080C1008 + ldr r0, [r0] + ldr r1, _080C100C + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0 + beq _080C1014 + movs r0, #0x1f + bl PlaySE + movs r0, #0 + movs r1, #0xe + movs r2, #0x1d + movs r3, #0x13 + bl sub_080C0810 + ldr r0, _080C1010 + movs r1, #2 + movs r2, #0xf + bl sub_080C07CC + b _080C1030 + .align 2, 0 +_080C1008: .4byte 0x020397EC +_080C100C: .4byte 0x0000060C +_080C1010: .4byte 0x085C900A +_080C1014: + movs r0, #0x20 + bl PlaySE + movs r0, #0 + movs r1, #0xe + movs r2, #0x1d + movs r3, #0x13 + bl sub_080C0810 + ldr r0, _080C104C + movs r1, #2 + movs r2, #0xf + bl sub_080C07CC +_080C1030: + ldr r0, _080C1050 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080C1054 + str r0, [r1] + movs r0, #0 + movs r1, #2 + bl CopyWindowToVram +_080C1046: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C104C: .4byte 0x085C901D +_080C1050: .4byte 0x03005B60 +_080C1054: .4byte 0x080C1059 + thumb_func_end sub_080C0FCC + + thumb_func_start sub_080C1058 +sub_080C1058: @ 0x080C1058 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r2, r4, #0 + ldr r0, _080C10C0 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080C10F4 + ldr r5, _080C10C4 + ldr r1, [r5] + ldr r3, _080C10C8 + adds r0, r1, r3 + ldrh r0, [r0] + cmp r0, #0 + beq _080C10E0 + ldr r0, _080C10CC + adds r1, r1, r0 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #5 + bl sub_080C19BC + ldr r1, [r5] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080C10D0 + adds r1, r1, r2 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #4 + bl sub_080C19BC + ldr r1, [r5] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _080C10D4 + adds r1, r1, r3 + strh r0, [r1] + ldr r1, _080C10D8 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080C10DC + str r1, [r0] + movs r0, #3 + bl PlaySE + b _080C10F4 + .align 2, 0 +_080C10C0: .4byte 0x03002360 +_080C10C4: .4byte 0x020397EC +_080C10C8: .4byte 0x0000060C +_080C10CC: .4byte 0x0000064E +_080C10D0: .4byte 0x00000612 +_080C10D4: .4byte 0x00000616 +_080C10D8: .4byte 0x03005B60 +_080C10DC: .4byte 0x080C137D +_080C10E0: + ldr r0, _080C10FC + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080C1100 + str r0, [r1] + movs r0, #0x17 + bl PlaySE +_080C10F4: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080C10FC: .4byte 0x03005B60 +_080C1100: .4byte 0x080C0C3D + thumb_func_end sub_080C1058 + + thumb_func_start sub_080C1104 +sub_080C1104: @ 0x080C1104 + push {r4, r5, r6, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r0, #0 + bl sub_080C1838 + ldr r2, _080C116C + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r6, r1, r2 + ldrb r0, [r6, #0xa] + adds r2, #8 + adds r1, r1, r2 + ldr r2, _080C1170 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrb r4, [r0, #4] + lsls r4, r4, #1 + adds r4, r1, r4 + ldrb r0, [r0, #5] + lsls r0, r0, #1 + adds r1, r1, r0 + ldrh r0, [r4] + strh r0, [r6, #0x24] + ldrh r0, [r1] + strh r0, [r6, #0x26] + adds r0, r5, #0 + bl sub_080C1918 + ldr r0, _080C1174 + ldrh r2, [r4] + lsls r2, r2, #1 + adds r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r1, #0x12 + bl sub_080C07CC + ldr r0, _080C1178 + str r0, [r6] + movs r0, #0 + movs r1, #2 + bl CopyWindowToVram + movs r0, #3 + bl CopyBgTilemapBufferToVram + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080C116C: .4byte 0x03005B60 +_080C1170: .4byte 0x085443CC +_080C1174: .4byte 0x085C9299 +_080C1178: .4byte 0x080C117D + thumb_func_end sub_080C1104 + + thumb_func_start sub_080C117C +sub_080C117C: @ 0x080C117C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r3, _080C11DC + lsls r2, r7, #2 + adds r2, r2, r7 + lsls r2, r2, #3 + adds r5, r2, r3 + ldrb r1, [r5, #0xa] + ldr r0, _080C11E0 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, [r1] + mov r8, r0 + adds r3, #8 + adds r2, r2, r3 + ldrb r0, [r1, #4] + lsls r0, r0, #1 + adds r4, r2, r0 + ldrb r0, [r1, #5] + lsls r0, r0, #1 + adds r6, r2, r0 + ldrh r0, [r1, #6] + subs r0, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _080C11E4 + mov ip, r0 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080C11E8 + movs r0, #0x15 + bl PlaySE + movs r0, #0x12 + movs r1, #1 + movs r2, #0x1c + movs r3, #0xc + bl sub_080C0810 + movs r0, #1 + bl sub_080C1838 + b _080C1210 + .align 2, 0 +_080C11DC: .4byte 0x03005B60 +_080C11E0: .4byte 0x085443CC +_080C11E4: .4byte 0x03002360 +_080C11E8: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080C1228 + movs r0, #0x17 + bl PlaySE + movs r0, #0x12 + movs r1, #1 + movs r2, #0x1c + movs r3, #0xc + bl sub_080C0810 + movs r0, #1 + bl sub_080C1838 + ldrh r0, [r5, #0x24] + strh r0, [r4] + ldrh r0, [r5, #0x26] + strh r0, [r6] +_080C1210: + ldr r0, _080C1224 + str r0, [r5] + movs r0, #0 + movs r1, #2 + bl CopyWindowToVram + movs r0, #3 + bl CopyBgTilemapBufferToVram + b _080C136C + .align 2, 0 +_080C1224: .4byte 0x080C0C3D +_080C1228: + movs r3, #0 + mov r0, ip + ldrh r1, [r0, #0x30] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080C12D0 + ldrh r0, [r4] + cmp r0, #0 + beq _080C1274 + adds r3, r0, #0 + lsls r3, r3, #1 + adds r1, r3, #1 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r3, #2 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #0x12 + movs r2, #0x12 + bl sub_080C0810 + ldrh r0, [r4] + subs r0, #1 + strh r0, [r4] + ldr r0, _080C1270 + ldrh r2, [r4] + lsls r2, r2, #1 + adds r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r1, #0x12 + bl sub_080C07CC + b _080C129C + .align 2, 0 +_080C1270: .4byte 0x085C9299 +_080C1274: + ldrh r0, [r6] + cmp r0, #0 + beq _080C1298 + subs r0, #1 + strh r0, [r6] + adds r0, r7, #0 + bl sub_080C1918 + ldr r0, _080C12CC + ldrh r2, [r4] + lsls r2, r2, #1 + adds r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r1, #0x12 + bl sub_080C07CC + movs r3, #1 +_080C1298: + cmp r3, #0 + beq _080C136C +_080C129C: + movs r0, #5 + bl PlaySE + movs r0, #0 + movs r1, #0xe + movs r2, #0x1d + movs r3, #0x13 + bl sub_080C0810 + ldrh r0, [r4] + ldrh r1, [r6] + adds r0, r0, r1 + lsls r0, r0, #3 + add r0, r8 + ldr r0, [r0] + movs r1, #2 + movs r2, #0xf + bl sub_080C07CC + movs r0, #0 + movs r1, #2 + bl CopyWindowToVram + b _080C136C + .align 2, 0 +_080C12CC: .4byte 0x085C9299 +_080C12D0: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080C136C + ldrh r0, [r4] + cmp r0, #4 + bhi _080C1318 + cmp r0, r2 + bhs _080C1318 + adds r3, r0, #0 + lsls r3, r3, #1 + adds r1, r3, #1 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r3, #2 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #0x12 + movs r2, #0x12 + bl sub_080C0810 + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + ldr r0, _080C1314 + ldrh r2, [r4] + lsls r2, r2, #1 + adds r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r1, #0x12 + bl sub_080C07CC + b _080C133E + .align 2, 0 +_080C1314: .4byte 0x085C9299 +_080C1318: + cmp r2, #5 + bls _080C133A + ldrh r1, [r6] + subs r0, r2, #5 + cmp r1, r0 + bge _080C133A + adds r0, r1, #1 + strh r0, [r6] + adds r0, r7, #0 + bl sub_080C1918 + ldr r0, _080C1378 + movs r1, #0x12 + movs r2, #0xb + bl sub_080C07CC + movs r3, #1 +_080C133A: + cmp r3, #0 + beq _080C136C +_080C133E: + movs r0, #5 + bl PlaySE + movs r0, #0 + movs r1, #0xe + movs r2, #0x1d + movs r3, #0x13 + bl sub_080C0810 + ldrh r0, [r4] + ldrh r1, [r6] + adds r0, r0, r1 + lsls r0, r0, #3 + add r0, r8 + ldr r0, [r0] + movs r1, #2 + movs r2, #0xf + bl sub_080C07CC + movs r0, #0 + movs r1, #2 + bl CopyWindowToVram +_080C136C: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080C1378: .4byte 0x085C9299 + thumb_func_end sub_080C117C + + thumb_func_start sub_080C137C +sub_080C137C: @ 0x080C137C + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _080C13AC + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080C13B0 + str r1, [r0] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C13AC: .4byte 0x03005B60 +_080C13B0: .4byte 0x080C13B5 + thumb_func_end sub_080C137C + + thumb_func_start sub_080C13B4 +sub_080C13B4: @ 0x080C13B4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080C13D8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080C13D0 + bl sub_080C0A9C + adds r0, r4, #0 + bl DestroyTask +_080C13D0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C13D8: .4byte 0x02037C74 + thumb_func_end sub_080C13B4 + + thumb_func_start sub_080C13DC +sub_080C13DC: @ 0x080C13DC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r3, #0 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #3 + bl GetBgTilemapBuffer + adds r2, r0, #0 + movs r3, #0 + cmp r3, r4 + bhs _080C1430 + lsls r0, r5, #6 + adds r7, r0, r2 + ldr r5, _080C143C + lsls r2, r6, #0xc +_080C140C: + mov r0, r8 + adds r1, r0, r3 + lsls r1, r1, #1 + adds r1, r1, r7 + ldrh r0, [r1] + ands r0, r5 + orrs r0, r2 + strh r0, [r1] + adds r1, #0x40 + ldrh r0, [r1] + ands r0, r5 + orrs r0, r2 + strh r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, r4 + blo _080C140C +_080C1430: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080C143C: .4byte 0x00000FFF + thumb_func_end sub_080C13DC + + thumb_func_start sub_080C1440 +sub_080C1440: @ 0x080C1440 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r0, #1 + ands r5, r0 + ands r2, r0 + lsls r2, r2, #1 + orrs r5, r2 + cmp r4, #0xa + bhi _080C152C + lsls r0, r4, #2 + ldr r1, _080C1468 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C1468: .4byte 0x080C146C +_080C146C: @ jump table + .4byte _080C1498 @ case 0 + .4byte _080C1498 @ case 1 + .4byte _080C1498 @ case 2 + .4byte _080C14A8 @ case 3 + .4byte _080C14A8 @ case 4 + .4byte _080C14C0 @ case 5 + .4byte _080C14C0 @ case 6 + .4byte _080C14A8 @ case 7 + .4byte _080C14A8 @ case 8 + .4byte _080C14E8 @ case 9 + .4byte _080C14D8 @ case 10 +_080C1498: + ldr r1, _080C14A4 + lsls r0, r4, #3 + adds r0, r0, r1 + ldrb r1, [r0, #4] + ldrb r2, [r0, #5] + b _080C1506 + .align 2, 0 +_080C14A4: .4byte 0x08544134 +_080C14A8: + ldr r2, _080C14D4 + subs r1, r4, #3 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #4] + ldrb r2, [r0, #5] + ldrb r3, [r0, #6] + adds r0, r5, #0 + bl sub_080C13DC +_080C14C0: + ldr r2, _080C14D4 + subs r1, r4, #3 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #7] + ldrb r2, [r0, #8] + ldrb r3, [r0, #9] + b _080C1508 + .align 2, 0 +_080C14D4: .4byte 0x0854414C +_080C14D8: + ldr r0, _080C14E4 + ldrb r1, [r0, #0x1c] + ldrb r2, [r0, #0x1d] + ldrb r3, [r0, #0x1e] + b _080C1508 + .align 2, 0 +_080C14E4: .4byte 0x0854414C +_080C14E8: + bl IsNationalPokedexEnabled + cmp r0, #0 + bne _080C1514 + ldr r2, _080C1510 + subs r1, r4, #3 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #4] + ldrb r2, [r0, #5] + subs r2, #2 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 +_080C1506: + ldrb r3, [r0, #6] +_080C1508: + adds r0, r5, #0 + bl sub_080C13DC + b _080C152C + .align 2, 0 +_080C1510: .4byte 0x0854414C +_080C1514: + ldr r2, _080C1534 + subs r1, r4, #3 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #4] + ldrb r2, [r0, #5] + ldrb r3, [r0, #6] + adds r0, r5, #0 + bl sub_080C13DC +_080C152C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080C1534: .4byte 0x0854414C + thumb_func_end sub_080C1440 + + thumb_func_start sub_080C1538 +sub_080C1538: @ 0x080C1538 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + cmp r0, #1 + beq _080C15A2 + cmp r0, #1 + bgt _080C154E + cmp r0, #0 + beq _080C1554 + b _080C1680 +_080C154E: + cmp r1, #2 + beq _080C1612 + b _080C1680 +_080C1554: + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl sub_080C1440 + movs r0, #1 + movs r1, #1 + movs r2, #0 + bl sub_080C1440 + movs r0, #2 + movs r1, #1 + movs r2, #0 + bl sub_080C1440 + movs r0, #3 + movs r1, #1 + movs r2, #0 + bl sub_080C1440 + movs r0, #4 + movs r1, #1 + movs r2, #0 + bl sub_080C1440 + movs r0, #0xa + movs r1, #1 + movs r2, #0 + bl sub_080C1440 + movs r0, #5 + movs r1, #1 + movs r2, #0 + bl sub_080C1440 + movs r0, #6 + movs r1, #1 + movs r2, #0 + b _080C15EE +_080C15A2: + movs r0, #0 + movs r1, #1 + movs r2, #0 + bl sub_080C1440 + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl sub_080C1440 + movs r0, #2 + movs r1, #1 + movs r2, #0 + bl sub_080C1440 + movs r0, #3 + movs r1, #1 + movs r2, #1 + bl sub_080C1440 + movs r0, #4 + movs r1, #1 + movs r2, #1 + bl sub_080C1440 + movs r0, #0xa + movs r1, #1 + movs r2, #1 + bl sub_080C1440 + movs r0, #5 + movs r1, #1 + movs r2, #1 + bl sub_080C1440 + movs r0, #6 + movs r1, #1 + movs r2, #1 +_080C15EE: + bl sub_080C1440 + movs r0, #7 + movs r1, #1 + movs r2, #0 + bl sub_080C1440 + movs r0, #8 + movs r1, #1 + movs r2, #0 + bl sub_080C1440 + movs r0, #9 + movs r1, #1 + movs r2, #0 + bl sub_080C1440 + b _080C1680 +_080C1612: + movs r0, #0 + movs r1, #1 + movs r2, #0 + bl sub_080C1440 + movs r0, #1 + movs r1, #1 + movs r2, #0 + bl sub_080C1440 + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl sub_080C1440 + movs r0, #3 + movs r1, #1 + movs r2, #1 + bl sub_080C1440 + movs r0, #4 + movs r1, #1 + movs r2, #1 + bl sub_080C1440 + movs r0, #0xa + movs r1, #1 + movs r2, #1 + bl sub_080C1440 + movs r0, #5 + movs r1, #1 + movs r2, #1 + bl sub_080C1440 + movs r0, #6 + movs r1, #1 + movs r2, #1 + bl sub_080C1440 + movs r0, #7 + movs r1, #1 + movs r2, #1 + bl sub_080C1440 + movs r0, #8 + movs r1, #1 + movs r2, #1 + bl sub_080C1440 + movs r0, #9 + movs r1, #1 + movs r2, #1 + bl sub_080C1440 +_080C1680: + pop {r0} + bx r0 + thumb_func_end sub_080C1538 + + thumb_func_start sub_080C1684 +sub_080C1684: @ 0x080C1684 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl sub_080C1538 + movs r0, #0 + movs r1, #0xe + movs r2, #0x1d + movs r3, #0x13 + bl sub_080C0810 + ldr r0, _080C16B4 + lsls r4, r4, #3 + adds r4, r4, r0 + ldr r0, [r4] + movs r1, #2 + movs r2, #0xf + bl sub_080C07CC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C16B4: .4byte 0x08544134 + thumb_func_end sub_080C1684 + + thumb_func_start sub_080C16B8 +sub_080C16B8: @ 0x080C16B8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + bl sub_080C1538 + cmp r4, #6 + bhi _080C1732 + lsls r0, r4, #2 + ldr r1, _080C16D4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C16D4: .4byte 0x080C16D8 +_080C16D8: @ jump table + .4byte _080C16F4 @ case 0 + .4byte _080C16F8 @ case 1 + .4byte _080C16FC @ case 2 + .4byte _080C170A @ case 3 + .4byte _080C1718 @ case 4 + .4byte _080C171C @ case 5 + .4byte _080C1728 @ case 6 +_080C16F4: + movs r0, #3 + b _080C171E +_080C16F8: + movs r0, #4 + b _080C171E +_080C16FC: + movs r0, #0xa + movs r1, #0 + movs r2, #0 + bl sub_080C1440 + movs r0, #5 + b _080C171E +_080C170A: + movs r0, #0xa + movs r1, #0 + movs r2, #0 + bl sub_080C1440 + movs r0, #6 + b _080C171E +_080C1718: + movs r0, #7 + b _080C171E +_080C171C: + movs r0, #8 +_080C171E: + movs r1, #0 + movs r2, #0 + bl sub_080C1440 + b _080C1732 +_080C1728: + movs r0, #9 + movs r1, #0 + movs r2, #0 + bl sub_080C1440 +_080C1732: + movs r0, #0 + movs r1, #0xe + movs r2, #0x1d + movs r3, #0x13 + bl sub_080C0810 + ldr r0, _080C1758 + lsls r1, r4, #1 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + movs r1, #2 + movs r2, #0xf + bl sub_080C07CC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C1758: .4byte 0x0854414C + thumb_func_end sub_080C16B8 + + thumb_func_start sub_080C175C +sub_080C175C: @ 0x080C175C + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #6 + movs r1, #2 + movs r2, #0xf + movs r3, #0xb + bl sub_080C0810 + ldr r1, _080C1820 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r5, r0, r1 + ldrh r0, [r5, #0x16] + ldrh r1, [r5, #0x14] + adds r0, r0, r1 + lsls r0, r0, #0x10 + ldr r1, _080C1824 + lsrs r0, r0, #0xd + adds r1, #4 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #6 + movs r2, #2 + bl sub_080C07CC + ldrh r0, [r5, #0x1a] + ldrh r1, [r5, #0x18] + adds r0, r0, r1 + lsls r0, r0, #0x10 + ldr r1, _080C1828 + lsrs r0, r0, #0xd + adds r1, #4 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #6 + movs r2, #4 + bl sub_080C07CC + ldrh r0, [r5, #0x1e] + ldrh r1, [r5, #0x1c] + adds r0, r0, r1 + lsls r0, r0, #0x10 + ldr r4, _080C182C + lsrs r0, r0, #0xd + adds r4, #4 + adds r0, r0, r4 + ldr r0, [r0] + movs r1, #6 + movs r2, #6 + bl sub_080C07CC + ldrh r0, [r5, #0x22] + ldrh r1, [r5, #0x20] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0xd + adds r0, r0, r4 + ldr r0, [r0] + movs r1, #0xc + movs r2, #6 + bl sub_080C07CC + ldrh r0, [r5, #0x12] + ldrh r1, [r5, #0x10] + adds r0, r0, r1 + lsls r0, r0, #0x10 + ldr r1, _080C1830 + lsrs r0, r0, #0xd + adds r1, #4 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #6 + movs r2, #8 + bl sub_080C07CC + bl IsNationalPokedexEnabled + cmp r0, #0 + beq _080C181A + ldrh r0, [r5, #0xe] + ldrh r5, [r5, #0xc] + adds r0, r0, r5 + lsls r0, r0, #0x10 + ldr r1, _080C1834 + lsrs r0, r0, #0xd + adds r1, #4 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #6 + movs r2, #0xa + bl sub_080C07CC +_080C181A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080C1820: .4byte 0x03005B60 +_080C1824: .4byte 0x08544260 +_080C1828: .4byte 0x085442B8 +_080C182C: .4byte 0x08544318 +_080C1830: .4byte 0x08544228 +_080C1834: .4byte 0x08544210 + thumb_func_end sub_080C175C + + thumb_func_start sub_080C1838 +sub_080C1838: @ 0x080C1838 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #3 + bl GetBgTilemapBuffer + adds r5, r0, #0 + cmp r4, #0 + bne _080C18EC + ldr r1, _080C18D0 + adds r0, r1, #0 + strh r0, [r5, #0x22] + movs r2, #0x12 + ldr r0, _080C18D4 + adds r1, r0, #0 +_080C1858: + lsls r0, r2, #1 + adds r0, r0, r5 + strh r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0x1c + bls _080C1858 + ldr r1, _080C18D8 + adds r0, r1, #0 + strh r0, [r5, #0x3a] + movs r3, #1 + movs r6, #2 + ldr r2, _080C18DC + adds r7, r2, #0 +_080C1876: + lsls r0, r3, #6 + adds r1, r0, r5 + strh r7, [r1, #0x22] + movs r2, #0x12 + adds r4, r0, #0 + adds r3, #1 +_080C1882: + lsls r0, r2, #1 + adds r0, r0, r1 + strh r6, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0x1c + bls _080C1882 + adds r0, r4, r5 + movs r1, #0xa + strh r1, [r0, #0x3a] + lsls r0, r3, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0xc + bls _080C1876 + ldr r0, _080C18E0 + adds r1, r5, r0 + ldr r2, _080C18E4 + adds r0, r2, #0 + strh r0, [r1] + movs r2, #0x12 + movs r3, #0xd0 + lsls r3, r3, #2 + movs r1, #0xd +_080C18B2: + lsls r0, r2, #1 + adds r0, r0, r5 + adds r0, r0, r3 + strh r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0x1c + bls _080C18B2 + ldr r0, _080C18E8 + adds r1, r5, r0 + movs r0, #0xb + strh r0, [r1] + b _080C1910 + .align 2, 0 +_080C18D0: .4byte 0x00000C0B +_080C18D4: .4byte 0x0000080D +_080C18D8: .4byte 0x0000080B +_080C18DC: .4byte 0x0000040A +_080C18E0: .4byte 0x00000362 +_080C18E4: .4byte 0x0000040B +_080C18E8: .4byte 0x0000037A +_080C18EC: + movs r3, #0 + movs r6, #0x4f +_080C18F0: + movs r2, #0x11 + lsls r4, r3, #6 + adds r3, #1 + adds r1, r4, r5 +_080C18F8: + lsls r0, r2, #1 + adds r0, r0, r1 + strh r6, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0x1d + bls _080C18F8 + lsls r0, r3, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0xd + bls _080C18F0 +_080C1910: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080C1838 + + thumb_func_start sub_080C1918 +sub_080C1918: @ 0x080C1918 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _080C195C + ldr r3, _080C1960 + lsls r2, r0, #2 + adds r2, r2, r0 + lsls r2, r2, #3 + adds r0, r2, r3 + movs r5, #0xa + ldrsh r1, [r0, r5] + lsls r1, r1, #3 + adds r1, r1, r4 + ldr r6, [r1] + adds r3, #8 + adds r2, r2, r3 + ldrb r0, [r1, #4] + lsls r0, r0, #1 + adds r0, r0, r2 + mov r8, r0 + ldrb r0, [r1, #5] + lsls r0, r0, #1 + adds r7, r2, r0 + movs r0, #0x12 + movs r1, #1 + movs r2, #0x1c + movs r3, #0xc + bl sub_080C0810 + movs r5, #0 + ldrh r4, [r7] + b _080C1986 + .align 2, 0 +_080C195C: .4byte 0x085443CC +_080C1960: .4byte 0x03005B60 +_080C1964: + adds r0, r1, r6 + ldr r0, [r0, #4] + lsls r2, r5, #1 + adds r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r1, #0x13 + bl sub_080C07CC + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r5, #5 + bhi _080C1990 +_080C1986: + lsls r1, r4, #3 + adds r0, r1, r6 + ldr r0, [r0, #4] + cmp r0, #0 + bne _080C1964 +_080C1990: + movs r0, #0 + movs r1, #0xe + movs r2, #0x1d + movs r3, #0x13 + bl sub_080C0810 + mov r1, r8 + ldrh r0, [r1] + ldrh r1, [r7] + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r6 + ldr r0, [r0] + movs r1, #2 + movs r2, #0xf + bl sub_080C07CC + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_080C1918 + + thumb_func_start sub_080C19BC +sub_080C19BC: @ 0x080C19BC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080C19FC + adds r1, r1, r0 + ldr r2, _080C1A00 + lsls r0, r3, #3 + adds r0, r0, r2 + ldrb r2, [r0, #4] + lsls r2, r2, #1 + adds r2, r1, r2 + ldrb r0, [r0, #5] + lsls r0, r0, #1 + adds r1, r1, r0 + ldrh r0, [r1] + ldrh r2, [r2] + adds r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r3, #5 + bhi _080C1A20 + lsls r0, r3, #2 + ldr r1, _080C1A04 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C19FC: .4byte 0x03005B68 +_080C1A00: .4byte 0x085443CC +_080C1A04: .4byte 0x080C1A08 +_080C1A08: @ jump table + .4byte _080C1A34 @ case 0 + .4byte _080C1A3E @ case 1 + .4byte _080C1A4E @ case 2 + .4byte _080C1A4E @ case 3 + .4byte _080C1A2C @ case 4 + .4byte _080C1A24 @ case 5 +_080C1A20: + movs r0, #0 + b _080C1A54 +_080C1A24: + ldr r0, _080C1A28 + b _080C1A50 + .align 2, 0 +_080C1A28: .4byte 0x085443B0 +_080C1A2C: + ldr r0, _080C1A30 + b _080C1A50 + .align 2, 0 +_080C1A30: .4byte 0x085443B2 +_080C1A34: + cmp r2, #0 + beq _080C1A42 + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + b _080C1A54 +_080C1A3E: + cmp r2, #0 + bne _080C1A46 +_080C1A42: + movs r0, #0xff + b _080C1A54 +_080C1A46: + subs r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _080C1A54 +_080C1A4E: + ldr r0, _080C1A58 +_080C1A50: + adds r0, r2, r0 + ldrb r0, [r0] +_080C1A54: + pop {r1} + bx r1 + .align 2, 0 +_080C1A58: .4byte 0x085443B8 + thumb_func_end sub_080C19BC + + thumb_func_start sub_080C1A5C +sub_080C1A5C: @ 0x080C1A5C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _080C1A7C + ldr r0, [r1] + ldr r2, _080C1A80 + adds r0, r0, r2 + ldrh r0, [r0] + adds r5, r1, #0 + cmp r0, #0 + beq _080C1A76 + cmp r0, #1 + beq _080C1A84 +_080C1A76: + movs r3, #0 + b _080C1A86 + .align 2, 0 +_080C1A7C: .4byte 0x020397EC +_080C1A80: .4byte 0x00000614 +_080C1A84: + movs r3, #1 +_080C1A86: + ldr r1, _080C1AAC + lsls r2, r4, #2 + adds r0, r2, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r3, [r0, #0xc] + ldr r0, [r5] + movs r3, #0xc3 + lsls r3, r3, #3 + adds r0, r0, r3 + ldrh r0, [r0] + adds r5, r1, #0 + cmp r0, #5 + bhi _080C1ACC + lsls r0, r0, #2 + ldr r1, _080C1AB0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C1AAC: .4byte 0x03005B60 +_080C1AB0: .4byte 0x080C1AB4 +_080C1AB4: @ jump table + .4byte _080C1ACC @ case 0 + .4byte _080C1AD0 @ case 1 + .4byte _080C1AD4 @ case 2 + .4byte _080C1AD8 @ case 3 + .4byte _080C1ADC @ case 4 + .4byte _080C1AE0 @ case 5 +_080C1ACC: + movs r3, #0 + b _080C1AE2 +_080C1AD0: + movs r3, #1 + b _080C1AE2 +_080C1AD4: + movs r3, #2 + b _080C1AE2 +_080C1AD8: + movs r3, #3 + b _080C1AE2 +_080C1ADC: + movs r3, #4 + b _080C1AE2 +_080C1AE0: + movs r3, #5 +_080C1AE2: + adds r0, r2, r4 + lsls r0, r0, #3 + adds r0, r0, r5 + strh r3, [r0, #0x10] + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_080C1A5C + + thumb_func_start sub_080C1AF0 +sub_080C1AF0: @ 0x080C1AF0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _080C1B28 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r0, r1, r3 + ldrb r2, [r0, #0xa] + adds r3, #8 + adds r1, r1, r3 + ldr r0, _080C1B2C + lsls r2, r2, #3 + adds r2, r2, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #1 + adds r1, r1, r0 + ldrh r0, [r2, #6] + subs r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #5 + bls _080C1B30 + ldrh r0, [r1] + cmp r0, #0 + beq _080C1B30 + movs r0, #0 + b _080C1B32 + .align 2, 0 +_080C1B28: .4byte 0x03005B60 +_080C1B2C: .4byte 0x085443CC +_080C1B30: + movs r0, #1 +_080C1B32: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080C1AF0 + + thumb_func_start sub_080C1B38 +sub_080C1B38: @ 0x080C1B38 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _080C1B74 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r0, r1, r3 + ldrb r2, [r0, #0xa] + adds r3, #8 + adds r1, r1, r3 + ldr r0, _080C1B78 + lsls r2, r2, #3 + adds r2, r2, r0 + ldrb r0, [r2, #5] + lsls r0, r0, #1 + adds r1, r1, r0 + ldrh r0, [r2, #6] + subs r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #5 + bls _080C1B7C + ldrh r1, [r1] + subs r0, #5 + cmp r1, r0 + bge _080C1B7C + movs r0, #0 + b _080C1B7E + .align 2, 0 +_080C1B74: .4byte 0x03005B60 +_080C1B78: .4byte 0x085443CC +_080C1B7C: + movs r0, #1 +_080C1B7E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080C1B38 + + thumb_func_start sub_080C1B84 +sub_080C1B84: @ 0x080C1B84 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _080C1BC4 + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _080C1BC8 + cmp r1, r0 + bne _080C1C24 + movs r1, #0x30 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _080C1BCC + ldrh r0, [r4, #0x2e] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_080C1B38 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C1BE8 + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + b _080C1BF4 + .align 2, 0 +_080C1BC4: .4byte 0x03005B60 +_080C1BC8: .4byte 0x080C117D +_080C1BCC: + ldrh r0, [r4, #0x2e] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_080C1AF0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C1BE8 + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + b _080C1BF4 +_080C1BE8: + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 +_080C1BF4: + strb r0, [r2] + ldrh r2, [r4, #0x32] + movs r1, #0x30 + ldrsh r0, [r4, r1] + lsls r0, r0, #7 + adds r0, r2, r0 + lsls r0, r0, #0x18 + ldr r1, _080C1C20 + lsrs r0, r0, #0x17 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bge _080C1C12 + adds r0, #0x7f +_080C1C12: + asrs r0, r0, #7 + strh r0, [r4, #0x26] + adds r0, r2, #0 + adds r0, #8 + strh r0, [r4, #0x32] + b _080C1C30 + .align 2, 0 +_080C1C20: .4byte 0x082FA8CC +_080C1C24: + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_080C1C30: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080C1B84 + + thumb_func_start sub_080C1C38 +sub_080C1C38: @ 0x080C1C38 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r6, _080C1CB0 + adds r0, r6, #0 + movs r1, #0xb8 + movs r2, #4 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _080C1CB4 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r0, r1, r4 + movs r2, #0 + strh r5, [r0, #0x2e] + strh r2, [r0, #0x30] + movs r0, #0x1c + adds r0, r0, r4 + mov sb, r0 + add r1, sb + ldr r0, _080C1CB8 + mov r8, r0 + str r0, [r1] + adds r0, r6, #0 + movs r1, #0xb8 + movs r2, #0x6c + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r4, r1, r4 + strh r5, [r4, #0x2e] + movs r0, #1 + strh r0, [r4, #0x30] + adds r4, #0x3f + ldrb r0, [r4] + movs r2, #2 + orrs r0, r2 + strb r0, [r4] + add r1, sb + mov r0, r8 + str r0, [r1] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080C1CB0: .4byte 0x08539AFC +_080C1CB4: .4byte 0x020205AC +_080C1CB8: .4byte 0x080C1B85 + thumb_func_end sub_080C1C38 + diff --git a/asm/pokedex_area_screen.s b/asm/pokedex_area_screen.s new file mode 100644 index 0000000..57e45a2 --- /dev/null +++ b/asm/pokedex_area_screen.s @@ -0,0 +1,2218 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ResetDrawAreaGlowState +ResetDrawAreaGlowState: @ 0x0813CA30 + ldr r0, _0813CA40 + ldr r0, [r0] + movs r1, #0x8a + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0] + bx lr + .align 2, 0 +_0813CA40: .4byte 0x0203A848 + thumb_func_end ResetDrawAreaGlowState + + thumb_func_start DrawAreaGlow +DrawAreaGlow: @ 0x0813CA44 + push {lr} + sub sp, #4 + ldr r0, _0813CA64 + ldr r0, [r0] + movs r1, #0x8a + lsls r1, r1, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #4 + bhi _0813CAFC + lsls r0, r0, #2 + ldr r1, _0813CA68 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0813CA64: .4byte 0x0203A848 +_0813CA68: .4byte 0x0813CA6C +_0813CA6C: @ jump table + .4byte _0813CA80 @ case 0 + .4byte _0813CA90 @ case 1 + .4byte _0813CA96 @ case 2 + .4byte _0813CAC8 @ case 3 + .4byte _0813CAEC @ case 4 +_0813CA80: + ldr r0, _0813CA8C + ldr r0, [r0] + ldrh r0, [r0, #0xe] + bl FindMapsWithMon + b _0813CB00 + .align 2, 0 +_0813CA8C: .4byte 0x0203A848 +_0813CA90: + bl BuildAreaGlowTilemap + b _0813CB00 +_0813CA96: + ldr r1, _0813CAC0 + movs r0, #0 + str r0, [sp] + movs r0, #2 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + ldr r0, _0813CAC4 + ldr r1, [r0] + movs r0, #0x8b + lsls r0, r0, #1 + adds r1, r1, r0 + movs r2, #0xa0 + lsls r2, r2, #3 + movs r0, #2 + movs r3, #0 + bl LoadBgTilemap + b _0813CB00 + .align 2, 0 +_0813CAC0: .4byte 0x0859383C +_0813CAC4: .4byte 0x0203A848 +_0813CAC8: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0813CB10 + ldr r0, _0813CAE0 + ldr r1, _0813CAE4 + ldr r2, _0813CAE8 + bl CpuSet + b _0813CB00 + .align 2, 0 +_0813CAE0: .4byte 0x0859381C +_0813CAE4: .4byte 0x020374F4 +_0813CAE8: .4byte 0x04000008 +_0813CAEC: + ldr r1, _0813CAF8 + movs r0, #2 + movs r2, #0 + bl ChangeBgY + b _0813CB00 + .align 2, 0 +_0813CAF8: .4byte 0xFFFFF800 +_0813CAFC: + movs r0, #0 + b _0813CB12 +_0813CB00: + ldr r0, _0813CB18 + ldr r1, [r0] + movs r0, #0x8a + lsls r0, r0, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_0813CB10: + movs r0, #1 +_0813CB12: + add sp, #4 + pop {r1} + bx r1 + .align 2, 0 +_0813CB18: .4byte 0x0203A848 + thumb_func_end DrawAreaGlow + + thumb_func_start FindMapsWithMon +FindMapsWithMon: @ 0x0813CB1C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + ldr r5, _0813CBC4 + ldr r0, [r5] + ldr r1, _0813CBC8 + adds r0, r0, r1 + movs r4, #0 + strh r4, [r0] + ldr r0, _0813CBCC + bl VarGet + ldr r1, [r5] + ldr r2, _0813CBD0 + adds r1, r1, r2 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #8 + bls _0813CB4C + strh r4, [r1] +_0813CB4C: + ldr r0, _0813CBD4 + ldr r0, [r0] + ldr r3, _0813CBD8 + adds r0, r0, r3 + ldrh r1, [r0, #8] + cmp r7, r1 + bne _0813CB5C + b _0813CC94 +_0813CB5C: + ldr r1, [r5] + movs r2, #0x88 + lsls r2, r2, #1 + adds r0, r1, r2 + strh r4, [r0] + movs r3, #0x89 + lsls r3, r3, #1 + adds r0, r1, r3 + strh r4, [r0] + movs r6, #0 + ldr r1, _0813CBDC +_0813CB72: + lsls r0, r6, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, r7 + bne _0813CB7E + b _0813CCD4 +_0813CB7E: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #0 + beq _0813CB72 + movs r6, #0 + ldr r4, _0813CBE0 + ldrh r0, [r4] + movs r1, #0xce + lsls r1, r1, #1 + cmp r0, r1 + beq _0813CC20 + mov r8, r4 + adds r5, r4, #4 + mov sb, r1 +_0813CB9C: + lsls r0, r6, #1 + adds r1, r0, r6 + lsls r2, r1, #1 + mov r3, r8 + adds r1, r2, r3 + adds r3, r0, #0 + ldrh r1, [r1] + cmp r7, r1 + bne _0813CC0A + adds r0, r4, #2 + adds r0, r2, r0 + ldrh r0, [r0] + cmp r0, #0x18 + beq _0813CBF6 + cmp r0, #0x18 + bgt _0813CBE4 + cmp r0, #0 + beq _0813CBEA + b _0813CC0A + .align 2, 0 +_0813CBC4: .4byte 0x0203A848 +_0813CBC8: .4byte 0x000006E2 +_0813CBCC: .4byte 0x0000403E +_0813CBD0: .4byte 0x000006E4 +_0813CBD4: .4byte 0x03005AEC +_0813CBD8: .4byte 0x000031DC +_0813CBDC: .4byte 0x08593970 +_0813CBE0: .4byte 0x08593978 +_0813CBE4: + cmp r0, #0x1a + beq _0813CBF6 + b _0813CC0A +_0813CBEA: + adds r0, r2, r5 + ldrh r1, [r0] + movs r0, #0 + bl SetAreaHasMon + b _0813CC0A +_0813CBF6: + adds r1, r3, r6 + lsls r1, r1, #1 + mov r0, r8 + adds r0, #2 + adds r0, r1, r0 + ldrh r0, [r0] + adds r1, r1, r5 + ldrh r1, [r1] + bl SetSpecialMapHasMon +_0813CC0A: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r4, _0813CC50 + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + cmp r0, sb + bne _0813CB9C +_0813CC20: + movs r6, #0 + ldr r1, _0813CC54 + ldrb r0, [r1] + cmp r0, #0xff + beq _0813CCD4 +_0813CC2A: + lsls r4, r6, #2 + adds r0, r4, r6 + lsls r0, r0, #2 + adds r5, r0, r1 + adds r0, r5, #0 + adds r1, r7, #0 + bl MapHasMon + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0813CC78 + ldrb r0, [r5] + cmp r0, #0x18 + beq _0813CC68 + cmp r0, #0x18 + bgt _0813CC58 + cmp r0, #0 + beq _0813CC5E + b _0813CC78 + .align 2, 0 +_0813CC50: .4byte 0x08593978 +_0813CC54: .4byte 0x0852D9F4 +_0813CC58: + cmp r0, #0x1a + beq _0813CC68 + b _0813CC78 +_0813CC5E: + ldrb r1, [r5, #1] + movs r0, #0 + bl SetAreaHasMon + b _0813CC78 +_0813CC68: + ldr r0, _0813CC90 + adds r1, r4, r6 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1] + ldrb r1, [r1, #1] + bl SetSpecialMapHasMon +_0813CC78: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r1, _0813CC90 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0xff + bne _0813CC2A + b _0813CCD4 + .align 2, 0 +_0813CC90: .4byte 0x0852D9F4 +_0813CC94: + ldr r2, [r5] + movs r3, #0x89 + lsls r3, r3, #1 + adds r1, r2, r3 + strh r4, [r1] + ldrb r1, [r0, #0x13] + cmp r1, #0 + beq _0813CCCC + adds r0, r2, #0 + adds r0, #0x10 + adds r1, r2, #0 + adds r1, #0x11 + bl GetRoamerLocation + ldr r1, [r5] + ldrb r0, [r1, #0x10] + ldrb r1, [r1, #0x11] + bl Overworld_GetMapHeaderByGroupAndId + ldr r1, [r5] + ldrb r0, [r0, #0x14] + strh r0, [r1, #0x12] + movs r0, #0x88 + lsls r0, r0, #1 + adds r1, r1, r0 + movs r0, #1 + strh r0, [r1] + b _0813CCD4 +_0813CCCC: + movs r3, #0x88 + lsls r3, r3, #1 + adds r0, r2, r3 + strh r1, [r0] +_0813CCD4: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end FindMapsWithMon + + thumb_func_start SetAreaHasMon +SetAreaHasMon: @ 0x0813CCE0 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r3, r1, #0x10 + ldr r4, _0813CD3C + ldr r2, [r4] + movs r0, #0x88 + lsls r0, r0, #1 + adds r1, r2, r0 + ldrh r0, [r1] + cmp r0, #0x3f + bhi _0813CD34 + lsls r0, r0, #2 + adds r0, r2, r0 + strb r5, [r0, #0x10] + ldr r1, [r4] + movs r2, #0x88 + lsls r2, r2, #1 + adds r0, r1, r2 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r1, r1, r0 + strb r3, [r1, #0x11] + adds r0, r5, #0 + adds r1, r3, #0 + bl Overworld_GetMapHeaderByGroupAndId + ldrb r0, [r0, #0x14] + bl CorrectSpecialMapSecId + ldr r2, [r4] + movs r1, #0x88 + lsls r1, r1, #1 + adds r3, r2, r1 + ldrh r1, [r3] + lsls r1, r1, #2 + adds r2, r2, r1 + strh r0, [r2, #0x12] + ldrh r0, [r3] + adds r0, #1 + strh r0, [r3] +_0813CD34: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0813CD3C: .4byte 0x0203A848 + thumb_func_end SetAreaHasMon + + thumb_func_start SetSpecialMapHasMon +SetSpecialMapHasMon: @ 0x0813CD40 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, _0813CE04 + ldr r0, [r0] + movs r3, #0x89 + lsls r3, r3, #1 + adds r0, r0, r3 + ldrh r0, [r0] + cmp r0, #0x1f + bhi _0813CDFE + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl GetRegionMapSectionId + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0xd4 + bhi _0813CDFE + movs r3, #0 + ldr r0, _0813CE08 +_0813CD72: + ldrh r4, [r0] + cmp r5, r4 + beq _0813CDFE + adds r0, #2 + adds r3, #1 + cmp r3, #2 + bls _0813CD72 + ldr r1, _0813CE0C + ldrh r0, [r1] + cmp r0, #0xd5 + beq _0813CDAE + adds r4, r1, #0 + adds r7, r4, #0 + movs r6, #0 +_0813CD8E: + ldrh r0, [r4] + cmp r5, r0 + bne _0813CDA4 + adds r0, r7, #2 + adds r0, r6, r0 + ldrh r0, [r0] + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0813CDFE +_0813CDA4: + adds r4, #4 + adds r6, #4 + ldrh r0, [r4] + cmp r0, #0xd5 + bne _0813CD8E +_0813CDAE: + movs r3, #0 + ldr r0, _0813CE04 + ldr r2, [r0] + movs r4, #0x89 + lsls r4, r4, #1 + adds r1, r2, r4 + ldrh r4, [r1] + adds r1, r0, #0 + cmp r3, r4 + bge _0813CDDE + movs r6, #0xc4 + lsls r6, r6, #3 + adds r0, r2, r6 + ldrh r0, [r0] + cmp r0, r5 + beq _0813CDDE + adds r2, r2, r6 +_0813CDD0: + adds r2, #2 + adds r3, #1 + cmp r3, r4 + bge _0813CDDE + ldrh r0, [r2] + cmp r0, r5 + bne _0813CDD0 +_0813CDDE: + ldr r1, [r1] + movs r0, #0x89 + lsls r0, r0, #1 + adds r2, r1, r0 + ldrh r4, [r2] + cmp r3, r4 + bne _0813CDFE + lsls r0, r3, #1 + movs r6, #0xc4 + lsls r6, r6, #3 + adds r1, r1, r6 + adds r1, r1, r0 + strh r5, [r1] + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] +_0813CDFE: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0813CE04: .4byte 0x0203A848 +_0813CE08: .4byte 0x08593972 +_0813CE0C: .4byte 0x08593984 + thumb_func_end SetSpecialMapHasMon + + thumb_func_start GetRegionMapSectionId +GetRegionMapSectionId: @ 0x0813CE10 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl Overworld_GetMapHeaderByGroupAndId + ldrb r0, [r0, #0x14] + pop {r1} + bx r1 + thumb_func_end GetRegionMapSectionId + + thumb_func_start MapHasMon +MapHasMon: @ 0x0813CE24 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + ldrb r0, [r4] + ldrb r1, [r4, #1] + bl GetRegionMapSectionId + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xd2 + bne _0813CE58 + ldr r0, _0813CE9C + ldr r2, [r0] + ldr r0, _0813CEA0 + adds r1, r2, r0 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + ldrh r1, [r1] + ldr r0, _0813CEA4 + adds r2, r2, r0 + ldrh r0, [r2] + adds r0, #1 + cmp r1, r0 + bne _0813CE98 +_0813CE58: + ldr r0, [r4, #4] + adds r1, r5, #0 + movs r2, #0xc + bl MonListHasMon + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0813CEA8 + ldr r0, [r4, #8] + adds r1, r5, #0 + movs r2, #5 + bl MonListHasMon + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0813CEA8 + ldr r0, [r4, #0x10] + adds r1, r5, #0 + movs r2, #0xc + bl MonListHasMon + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0813CEA8 + ldr r0, [r4, #0xc] + adds r1, r5, #0 + movs r2, #5 + bl MonListHasMon + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0813CEA8 +_0813CE98: + movs r0, #0 + b _0813CEAA + .align 2, 0 +_0813CE9C: .4byte 0x0203A848 +_0813CEA0: .4byte 0x000006E2 +_0813CEA4: .4byte 0x000006E4 +_0813CEA8: + movs r0, #1 +_0813CEAA: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MapHasMon + + thumb_func_start MonListHasMon +MonListHasMon: @ 0x0813CEB0 + push {r4, lr} + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + cmp r0, #0 + beq _0813CEDE + movs r3, #0 + cmp r3, r2 + bhs _0813CEDE + ldr r1, [r0, #4] +_0813CEC6: + lsls r0, r3, #2 + adds r0, r0, r1 + ldrh r0, [r0, #2] + cmp r0, r4 + bne _0813CED4 + movs r0, #1 + b _0813CEE0 +_0813CED4: + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, r2 + blo _0813CEC6 +_0813CEDE: + movs r0, #0 +_0813CEE0: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MonListHasMon + + thumb_func_start BuildAreaGlowTilemap +BuildAreaGlowTilemap: @ 0x0813CEE8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + movs r7, #0 + ldr r0, _0813D0F4 + mov sb, r0 + mov r5, sb + movs r4, #0x8b + lsls r4, r4, #1 + movs r3, #0 + ldr r2, _0813D0F8 +_0813CF04: + ldr r0, [r5] + lsls r1, r7, #1 + adds r0, r0, r4 + adds r0, r0, r1 + strh r3, [r0] + adds r0, r7, #1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + cmp r7, r2 + bls _0813CF04 + movs r7, #0 + mov r1, sb + ldr r0, [r1] + movs r2, #0x88 + lsls r2, r2, #1 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r7, r0 + bhs _0813CF92 + mov r3, sb +_0813CF2C: + movs r5, #0 + movs r6, #0 + adds r0, r7, #1 + mov r8, r0 + lsls r7, r7, #2 + mov sl, r7 +_0813CF38: + movs r4, #0 +_0813CF3A: + adds r0, r4, #0 + adds r1, r6, #0 + str r3, [sp] + bl GetRegionMapSectionIdAt + ldr r3, [sp] + ldr r2, [r3] + mov r7, sl + adds r1, r2, r7 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrh r1, [r1, #0x12] + cmp r0, r1 + bne _0813CF64 + lsls r0, r5, #1 + movs r7, #0x8b + lsls r7, r7, #1 + adds r1, r2, r7 + adds r1, r1, r0 + ldr r0, _0813D0FC + strh r0, [r1] +_0813CF64: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x1f + bls _0813CF3A + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #0x13 + bls _0813CF38 + mov r1, r8 + lsls r0, r1, #0x10 + lsrs r7, r0, #0x10 + ldr r0, [r3] + movs r2, #0x88 + lsls r2, r2, #1 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r7, r0 + blo _0813CF2C +_0813CF92: + movs r5, #0 + movs r6, #0 + ldr r7, _0813D0F4 + mov ip, r7 + movs r7, #0x8b + lsls r7, r7, #1 + ldr r3, _0813D0FC +_0813CFA0: + movs r4, #0 + adds r0, r6, #1 + mov sl, r0 +_0813CFA6: + mov r1, ip + ldr r0, [r1] + lsls r1, r5, #1 + adds r2, r0, r7 + adds r1, r2, r1 + ldrh r0, [r1] + adds r1, r5, #1 + mov r8, r1 + cmp r0, r3 + bne _0813D0B2 + cmp r4, #0 + beq _0813CFD0 + subs r0, r5, #1 + lsls r0, r0, #1 + adds r1, r2, r0 + ldrh r2, [r1] + cmp r2, r3 + beq _0813CFD0 + movs r0, #2 + orrs r0, r2 + strh r0, [r1] +_0813CFD0: + adds r2, r5, #1 + mov r8, r2 + cmp r4, #0x1f + beq _0813CFEE + mov r1, ip + ldr r0, [r1] + lsls r1, r2, #1 + adds r0, r0, r7 + adds r2, r0, r1 + ldrh r1, [r2] + cmp r1, r3 + beq _0813CFEE + movs r0, #1 + orrs r0, r1 + strh r0, [r2] +_0813CFEE: + cmp r6, #0 + beq _0813D00C + mov r2, ip + ldr r1, [r2] + adds r0, r5, #0 + subs r0, #0x20 + lsls r0, r0, #1 + adds r1, r1, r7 + adds r1, r1, r0 + ldrh r2, [r1] + cmp r2, r3 + beq _0813D00C + movs r0, #8 + orrs r0, r2 + strh r0, [r1] +_0813D00C: + cmp r6, #0x13 + beq _0813D02A + mov r0, ip + ldr r1, [r0] + adds r0, r5, #0 + adds r0, #0x20 + lsls r0, r0, #1 + adds r1, r1, r7 + adds r1, r1, r0 + ldrh r2, [r1] + cmp r2, r3 + beq _0813D02A + movs r0, #4 + orrs r0, r2 + strh r0, [r1] +_0813D02A: + cmp r4, #0 + beq _0813D04C + cmp r6, #0 + beq _0813D04C + mov r2, ip + ldr r1, [r2] + adds r0, r5, #0 + subs r0, #0x21 + lsls r0, r0, #1 + adds r1, r1, r7 + adds r1, r1, r0 + ldrh r2, [r1] + cmp r2, r3 + beq _0813D04C + movs r0, #0x10 + orrs r0, r2 + strh r0, [r1] +_0813D04C: + cmp r4, #0x1f + beq _0813D06E + cmp r6, #0 + beq _0813D06E + mov r0, ip + ldr r1, [r0] + adds r0, r5, #0 + subs r0, #0x1f + lsls r0, r0, #1 + adds r1, r1, r7 + adds r1, r1, r0 + ldrh r2, [r1] + cmp r2, r3 + beq _0813D06E + movs r0, #0x40 + orrs r0, r2 + strh r0, [r1] +_0813D06E: + cmp r4, #0 + beq _0813D090 + cmp r6, #0x13 + beq _0813D090 + mov r2, ip + ldr r1, [r2] + adds r0, r5, #0 + adds r0, #0x1f + lsls r0, r0, #1 + adds r1, r1, r7 + adds r1, r1, r0 + ldrh r2, [r1] + cmp r2, r3 + beq _0813D090 + movs r0, #0x20 + orrs r0, r2 + strh r0, [r1] +_0813D090: + cmp r4, #0x1f + beq _0813D0B2 + cmp r6, #0x13 + beq _0813D0B2 + mov r0, ip + ldr r1, [r0] + adds r0, r5, #0 + adds r0, #0x21 + lsls r0, r0, #1 + adds r1, r1, r7 + adds r1, r1, r0 + ldrh r2, [r1] + cmp r2, r3 + beq _0813D0B2 + movs r0, #0x80 + orrs r0, r2 + strh r0, [r1] +_0813D0B2: + mov r1, r8 + lsls r0, r1, #0x10 + lsrs r5, r0, #0x10 + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x1f + bhi _0813D0C4 + b _0813CFA6 +_0813D0C4: + mov r2, sl + lsls r0, r2, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #0x13 + bhi _0813D0D0 + b _0813CFA0 +_0813D0D0: + movs r7, #0 +_0813D0D2: + mov r1, sb + ldr r0, [r1] + lsls r1, r7, #1 + movs r6, #0x8b + lsls r6, r6, #1 + adds r0, r0, r6 + adds r3, r0, r1 + ldrh r4, [r3] + adds r2, r4, #0 + ldr r0, _0813D0FC + adds r5, r1, #0 + cmp r2, r0 + bne _0813D104 + ldr r0, _0813D100 + strh r0, [r3] + b _0813D2A8 + .align 2, 0 +_0813D0F4: .4byte 0x0203A848 +_0813D0F8: .4byte 0x0000027F +_0813D0FC: .4byte 0x0000FFFF +_0813D100: .4byte 0x0000A010 +_0813D104: + cmp r2, #0 + bne _0813D10A + b _0813D2A8 +_0813D10A: + movs r2, #0xa0 + lsls r2, r2, #8 + adds r0, r2, #0 + adds r1, r0, #0 + orrs r1, r4 + strh r1, [r3] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0813D124 + ldr r0, _0813D198 + ands r1, r0 + strh r1, [r3] +_0813D124: + mov r1, sb + ldr r0, [r1] + adds r0, r0, r6 + adds r2, r0, r5 + ldrh r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0813D13C + ldr r0, _0813D19C + ands r0, r1 + strh r0, [r2] +_0813D13C: + mov r2, sb + ldr r0, [r2] + adds r0, r0, r6 + adds r2, r0, r5 + ldrh r1, [r2] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0813D154 + ldr r0, _0813D1A0 + ands r0, r1 + strh r0, [r2] +_0813D154: + mov r1, sb + ldr r0, [r1] + adds r0, r0, r6 + adds r2, r0, r5 + ldrh r1, [r2] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0813D16C + ldr r0, _0813D1A4 + ands r0, r1 + strh r0, [r2] +_0813D16C: + mov r2, sb + ldr r0, [r2] + adds r0, r0, r6 + adds r4, r0, r5 + ldrh r0, [r4] + movs r1, #0xf + ands r1, r0 + adds r3, r1, #0 + movs r2, #0xf0 + ands r2, r0 + cmp r2, #0 + bne _0813D186 + b _0813D2A8 +_0813D186: + strh r1, [r4] + cmp r3, #0xa + bls _0813D18E + b _0813D2A8 +_0813D18E: + lsls r0, r3, #2 + ldr r1, _0813D1A8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0813D198: .4byte 0x0000FFCF +_0813D19C: .4byte 0x0000FF3F +_0813D1A0: .4byte 0x0000FFAF +_0813D1A4: .4byte 0x0000FF5F +_0813D1A8: .4byte 0x0813D1AC +_0813D1AC: @ jump table + .4byte _0813D1D8 @ case 0 + .4byte _0813D208 @ case 1 + .4byte _0813D1F0 @ case 2 + .4byte _0813D2A8 @ case 3 + .4byte _0813D254 @ case 4 + .4byte _0813D284 @ case 5 + .4byte _0813D284 @ case 6 + .4byte _0813D2A8 @ case 7 + .4byte _0813D224 @ case 8 + .4byte _0813D296 @ case 9 + .4byte _0813D296 @ case 10 +_0813D1D8: + cmp r2, #0 + beq _0813D2A8 + mov r1, sb + ldr r0, [r1] + movs r1, #0x8b + lsls r1, r1, #1 + adds r0, r0, r1 + adds r0, r0, r5 + ldrh r1, [r0] + adds r1, #0x10 + lsrs r2, r2, #4 + b _0813D21E +_0813D1F0: + cmp r2, #0 + beq _0813D2A8 + mov r1, sb + ldr r0, [r1] + movs r1, #0x8b + lsls r1, r1, #1 + adds r0, r0, r1 + adds r0, r0, r5 + ldrh r1, [r0] + adds r1, #0x1e + lsrs r2, r2, #4 + b _0813D21E +_0813D208: + cmp r2, #0 + beq _0813D2A8 + mov r1, sb + ldr r0, [r1] + movs r1, #0x8b + lsls r1, r1, #1 + adds r0, r0, r1 + adds r0, r0, r5 + ldrh r1, [r0] + adds r1, #0x20 + lsrs r2, r2, #6 +_0813D21E: + adds r1, r1, r2 + strh r1, [r0] + b _0813D2A8 +_0813D224: + cmp r2, #0 + beq _0813D2A8 + movs r0, #0x80 + ands r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + rsbs r0, r0, #0 + lsrs r3, r0, #0x1f + movs r0, #0x20 + ands r2, r0 + cmp r2, #0 + beq _0813D240 + movs r0, #2 + orrs r3, r0 +_0813D240: + mov r2, sb + ldr r1, [r2] + movs r0, #0x8b + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r5 + ldrh r0, [r1] + adds r0, #0x20 + adds r0, r0, r3 + b _0813D2A6 +_0813D254: + cmp r2, #0 + beq _0813D2A8 + movs r0, #0x40 + ands r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + rsbs r0, r0, #0 + lsrs r3, r0, #0x1f + movs r0, #0x10 + ands r2, r0 + cmp r2, #0 + beq _0813D270 + movs r0, #2 + orrs r3, r0 +_0813D270: + mov r2, sb + ldr r1, [r2] + movs r0, #0x8b + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r5 + ldrh r0, [r1] + adds r0, #0x21 + adds r0, r0, r3 + b _0813D2A6 +_0813D284: + mov r2, sb + ldr r1, [r2] + movs r0, #0x8b + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r5 + ldrh r0, [r1] + adds r0, #0x27 + b _0813D2A6 +_0813D296: + mov r2, sb + ldr r1, [r2] + movs r0, #0x8b + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r5 + ldrh r0, [r1] + adds r0, #0x25 +_0813D2A6: + strh r0, [r1] +_0813D2A8: + adds r0, r7, #1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + ldr r0, _0813D2C8 + cmp r7, r0 + bhi _0813D2B6 + b _0813D0D2 +_0813D2B6: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0813D2C8: .4byte 0x0000027F + thumb_func_end BuildAreaGlowTilemap + + thumb_func_start StartAreaGlow +StartAreaGlow: @ 0x0813D2CC + push {lr} + ldr r1, _0813D2F8 + ldr r2, [r1] + movs r3, #0x89 + lsls r3, r3, #1 + adds r0, r2, r3 + ldrh r0, [r0] + adds r3, r1, #0 + cmp r0, #0 + beq _0813D300 + movs r1, #0x88 + lsls r1, r1, #1 + adds r0, r2, r1 + ldrh r0, [r0] + cmp r0, #0 + bne _0813D300 + ldr r0, _0813D2FC + adds r1, r2, r0 + movs r0, #1 + strb r0, [r1] + b _0813D30A + .align 2, 0 +_0813D2F8: .4byte 0x0203A848 +_0813D2FC: .4byte 0x0000061E +_0813D300: + ldr r0, [r3] + ldr r1, _0813D34C + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] +_0813D30A: + ldr r1, [r3] + ldr r2, _0813D350 + adds r0, r1, r2 + movs r2, #0 + strh r2, [r0] + movs r3, #0xc3 + lsls r3, r3, #3 + adds r0, r1, r3 + strh r2, [r0] + adds r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldr r0, _0813D354 + adds r2, r1, r0 + movs r0, #0x40 + strh r0, [r2] + ldr r2, _0813D358 + adds r1, r1, r2 + movs r0, #1 + strb r0, [r1] + ldr r1, _0813D35C + movs r0, #0x50 + bl SetGpuReg + movs r1, #0x80 + lsls r1, r1, #5 + movs r0, #0x52 + bl SetGpuReg + bl DoAreaGlow + pop {r0} + bx r0 + .align 2, 0 +_0813D34C: .4byte 0x0000061E +_0813D350: .4byte 0x00000616 +_0813D354: .4byte 0x0000061C +_0813D358: .4byte 0x0000061F +_0813D35C: .4byte 0x00003F44 + thumb_func_end StartAreaGlow + + thumb_func_start DoAreaGlow +DoAreaGlow: @ 0x0813D360 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _0813D39C + ldr r2, [r0] + ldr r3, _0813D3A0 + adds r1, r2, r3 + ldrb r1, [r1] + adds r7, r0, #0 + cmp r1, #0 + bne _0813D42E + ldr r0, _0813D3A4 + adds r1, r2, r0 + ldrh r0, [r1] + cmp r0, #0 + bne _0813D428 + movs r1, #0xc3 + lsls r1, r1, #3 + adds r0, r2, r1 + ldrh r1, [r0] + adds r1, #1 + strh r1, [r0] + movs r0, #1 + ands r1, r0 + cmp r1, #0 + beq _0813D3A8 + subs r3, #4 + adds r0, r2, r3 + b _0813D3AC + .align 2, 0 +_0813D39C: .4byte 0x0203A848 +_0813D3A0: .4byte 0x0000061E +_0813D3A4: .4byte 0x00000616 +_0813D3A8: + ldr r1, _0813D414 + adds r0, r2, r1 +_0813D3AC: + ldrh r1, [r0] + adds r1, #4 + movs r2, #0x7f + ands r1, r2 + strh r1, [r0] + ldr r3, _0813D418 + ldr r1, [r7] + ldr r2, _0813D41C + adds r0, r1, r2 + ldrh r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r2, [r0] + lsls r2, r2, #0x10 + asrs r2, r2, #0x14 + lsls r2, r2, #0x10 + ldr r0, _0813D414 + adds r1, r1, r0 + ldrh r0, [r1] + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r1, [r0] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + lsls r1, r1, #0x18 + orrs r1, r2 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + ldr r1, [r7] + ldr r2, _0813D420 + adds r0, r1, r2 + movs r3, #0 + strh r3, [r0] + movs r0, #0xc3 + lsls r0, r0, #3 + adds r2, r1, r0 + ldrh r0, [r2] + cmp r0, #0x40 + bne _0813D4CA + strh r3, [r2] + movs r2, #0x89 + lsls r2, r2, #1 + adds r0, r1, r2 + ldrh r0, [r0] + cmp r0, #0 + beq _0813D4CA + ldr r3, _0813D424 + adds r1, r1, r3 + movs r0, #1 + b _0813D4C8 + .align 2, 0 +_0813D414: .4byte 0x0000061C +_0813D418: .4byte 0x082FA8CC +_0813D41C: .4byte 0x0000061A +_0813D420: .4byte 0x00000616 +_0813D424: .4byte 0x0000061E +_0813D428: + subs r0, #1 + strh r0, [r1] + b _0813D4CA +_0813D42E: + ldr r0, _0813D4D4 + adds r1, r2, r0 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xc + bls _0813D4CA + movs r0, #0 + strh r0, [r1] + ldr r3, _0813D4D8 + adds r1, r2, r3 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r4, #0 + ldr r0, [r7] + movs r6, #0x89 + lsls r6, r6, #1 + adds r0, r0, r6 + ldrh r0, [r0] + cmp r4, r0 + bhs _0813D4A4 + adds r5, r7, #0 + movs r0, #1 + mov ip, r0 + movs r1, #5 + rsbs r1, r1, #0 + mov r8, r1 +_0813D46A: + ldr r1, [r5] + lsls r2, r4, #2 + movs r3, #0xcc + lsls r3, r3, #3 + adds r0, r1, r3 + adds r0, r0, r2 + ldr r3, [r0] + ldr r0, _0813D4D8 + adds r1, r1, r0 + ldrb r0, [r1] + movs r1, #1 + adds r3, #0x3e + ands r1, r0 + mov r2, ip + ands r1, r2 + lsls r1, r1, #2 + ldrb r2, [r3] + mov r0, r8 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, [r5] + adds r0, r0, r6 + ldrh r0, [r0] + cmp r4, r0 + blo _0813D46A +_0813D4A4: + ldr r0, [r7] + ldr r3, _0813D4D8 + adds r1, r0, r3 + ldrb r0, [r1] + cmp r0, #4 + bls _0813D4CA + movs r0, #1 + strb r0, [r1] + ldr r1, [r7] + movs r2, #0x88 + lsls r2, r2, #1 + adds r0, r1, r2 + ldrh r0, [r0] + cmp r0, #0 + beq _0813D4CA + subs r3, #1 + adds r1, r1, r3 + movs r0, #0 +_0813D4C8: + strb r0, [r1] +_0813D4CA: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0813D4D4: .4byte 0x00000616 +_0813D4D8: .4byte 0x0000061F + thumb_func_end DoAreaGlow + + thumb_func_start ShowPokedexAreaScreen +ShowPokedexAreaScreen: @ 0x0813D4DC + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r5, _0813D520 + ldr r0, _0813D524 + bl AllocZeroed + str r0, [r5] + movs r1, #0 + movs r5, #0 + strh r4, [r0, #0xe] + movs r2, #0xdd + lsls r2, r2, #3 + adds r0, r0, r2 + str r6, [r0] + strb r1, [r6] + ldr r0, _0813D528 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0813D52C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r5, [r1, #8] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0813D520: .4byte 0x0203A848 +_0813D524: .4byte 0x000015BC +_0813D528: .4byte 0x0813D531 +_0813D52C: .4byte 0x03005B60 + thumb_func_end ShowPokedexAreaScreen + + thumb_func_start Task_PokedexAreaScreen_0 +Task_PokedexAreaScreen_0: @ 0x0813D530 + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _0813D558 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #8 + ldrsh r0, [r0, r2] + adds r2, r1, #0 + cmp r0, #0xb + bls _0813D54E + b _0813D688 +_0813D54E: + lsls r0, r0, #2 + ldr r1, _0813D55C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0813D558: .4byte 0x03005B60 +_0813D55C: .4byte 0x0813D560 +_0813D560: @ jump table + .4byte _0813D590 @ case 0 + .4byte _0813D5AC @ case 1 + .4byte _0813D5D8 @ case 2 + .4byte _0813D5EA @ case 3 + .4byte _0813D5F0 @ case 4 + .4byte _0813D5FC @ case 5 + .4byte _0813D624 @ case 6 + .4byte _0813D62A @ case 7 + .4byte _0813D630 @ case 8 + .4byte _0813D636 @ case 9 + .4byte _0813D648 @ case 10 + .4byte _0813D670 @ case 11 +_0813D590: + bl ResetSpriteData + bl FreeAllSpritePalettes + movs r0, #3 + bl HideBg + movs r0, #2 + bl HideBg + movs r0, #0 + bl HideBg + b _0813D688 +_0813D5AC: + movs r0, #3 + movs r1, #1 + movs r2, #3 + bl SetBgAttribute + ldr r0, _0813D5D0 + bl sub_081C4578 + ldr r0, _0813D5D4 + ldr r0, [r0] + movs r1, #0xf7 + lsls r1, r1, #4 + adds r0, r0, r1 + movs r1, #0 + movs r2, #0xa + bl StringFill + b _0813D688 + .align 2, 0 +_0813D5D0: .4byte 0x085939A0 +_0813D5D4: .4byte 0x0203A848 +_0813D5D8: + bl sub_081C4698 + cmp r0, #1 + beq _0813D698 + movs r0, #8 + rsbs r0, r0, #0 + bl sub_081C46D8 + b _0813D688 +_0813D5EA: + bl ResetDrawAreaGlowState + b _0813D688 +_0813D5F0: + bl DrawAreaGlow + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0813D698 + b _0813D688 +_0813D5FC: + ldr r0, _0813D61C + ldr r0, [r0] + ldr r2, _0813D620 + adds r0, r0, r2 + bl sub_08122D94 + movs r0, #1 + movs r1, #1 + bl CreateRegionMapPlayerIcon + movs r1, #8 + rsbs r1, r1, #0 + movs r0, #0 + bl PokedexAreaScreen_UpdateRegionMapVariablesAndVideoRegs + b _0813D688 + .align 2, 0 +_0813D61C: .4byte 0x0203A848 +_0813D620: .4byte 0x000006EC +_0813D624: + bl CreateAreaMarkerSprites + b _0813D688 +_0813D62A: + bl LoadAreaUnknownGraphics + b _0813D688 +_0813D630: + bl CreateAreaUnknownSprites + b _0813D688 +_0813D636: + movs r0, #0x15 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + b _0813D688 +_0813D648: + ldr r1, _0813D66C + movs r0, #0x50 + bl SetGpuReg + bl StartAreaGlow + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg + movs r1, #0x80 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuRegBits + b _0813D688 + .align 2, 0 +_0813D66C: .4byte 0x00003F41 +_0813D670: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r2 + ldr r1, _0813D684 + str r1, [r0] + movs r1, #0 + strh r1, [r0, #8] + b _0813D698 + .align 2, 0 +_0813D684: .4byte 0x0813D6A5 +_0813D688: + ldr r0, _0813D6A0 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] +_0813D698: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813D6A0: .4byte 0x03005B60 + thumb_func_end Task_PokedexAreaScreen_0 + + thumb_func_start Task_PokedexAreaScreen_1 +Task_PokedexAreaScreen_1: @ 0x0813D6A4 + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + bl DoAreaGlow + ldr r1, _0813D6CC + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r6, r0, r1 + movs r0, #8 + ldrsh r1, [r6, r0] + cmp r1, #1 + beq _0813D6FC + cmp r1, #1 + bgt _0813D6D0 + cmp r1, #0 + beq _0813D6E6 + b _0813D6D8 + .align 2, 0 +_0813D6CC: .4byte 0x03005B60 +_0813D6D0: + cmp r1, #2 + beq _0813D744 + cmp r1, #3 + beq _0813D756 +_0813D6D8: + ldr r0, _0813D6F4 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #0 + strh r0, [r1, #8] +_0813D6E6: + ldr r0, _0813D6F8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0813D7AC + b _0813D79C + .align 2, 0 +_0813D6F4: .4byte 0x03005B60 +_0813D6F8: .4byte 0x02037C74 +_0813D6FC: + ldr r0, _0813D714 + ldrh r2, [r0, #0x2e] + movs r3, #2 + adds r0, r3, #0 + ands r0, r2 + cmp r0, #0 + beq _0813D718 + strh r1, [r6, #0xa] + movs r0, #3 + bl PlaySE + b _0813D79C + .align 2, 0 +_0813D714: .4byte 0x03002360 +_0813D718: + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + bne _0813D734 + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r2 + cmp r0, #0 + beq _0813D7AC + ldr r0, _0813D740 + ldr r0, [r0] + ldrb r0, [r0, #0x13] + cmp r0, #1 + bne _0813D7AC +_0813D734: + strh r3, [r6, #0xa] + movs r0, #0x6d + bl PlaySE + b _0813D79C + .align 2, 0 +_0813D740: .4byte 0x03005AF0 +_0813D744: + movs r0, #0x15 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + b _0813D79C +_0813D756: + ldr r0, _0813D794 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #0 + bne _0813D7AC + bl DestroyAreaMarkerSprites + ldr r4, _0813D798 + ldr r0, [r4] + movs r1, #0xdd + lsls r1, r1, #3 + adds r0, r0, r1 + ldr r1, [r0] + ldrh r0, [r6, #0xa] + strb r0, [r1] + bl sub_0813D7B8 + adds r0, r5, #0 + bl DestroyTask + bl sub_081C46BC + ldr r0, [r4] + bl Free + str r7, [r4] + b _0813D7AC + .align 2, 0 +_0813D794: .4byte 0x02037C74 +_0813D798: .4byte 0x0203A848 +_0813D79C: + ldr r0, _0813D7B4 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] +_0813D7AC: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0813D7B4: .4byte 0x03005B60 + thumb_func_end Task_PokedexAreaScreen_1 + + thumb_func_start sub_0813D7B8 +sub_0813D7B8: @ 0x0813D7B8 + push {lr} + movs r0, #3 + movs r1, #1 + movs r2, #0 + bl SetBgAttribute + movs r0, #3 + movs r1, #4 + movs r2, #0 + bl SetBgAttribute + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0813D7B8 + + thumb_func_start CreateAreaMarkerSprites +CreateAreaMarkerSprites: @ 0x0813D7D4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _0813D8FC + bl LoadSpriteSheet + ldr r0, _0813D900 + bl LoadSpritePalette + ldr r0, _0813D904 + movs r1, #0 + strh r1, [r0] + ldr r2, _0813D908 + strh r1, [r2] + ldr r1, _0813D90C + ldr r0, [r1] + movs r3, #0x89 + lsls r3, r3, #1 + adds r0, r0, r3 + ldrh r0, [r0] + cmp r0, #0 + beq _0813D8DC + ldr r5, _0813D910 + mov sl, r1 + adds r7, r2, #0 + ldr r0, _0813D914 + mov sb, r0 + ldr r6, _0813D918 + ldr r1, _0813D91C + mov r8, r1 +_0813D814: + mov r2, sl + ldr r1, [r2] + movs r3, #0 + ldrsh r0, [r7, r3] + lsls r0, r0, #1 + movs r2, #0xc4 + lsls r2, r2, #3 + adds r1, r1, r2 + adds r1, r1, r0 + ldrh r0, [r1] + strh r0, [r5] + movs r3, #0 + ldrsh r0, [r5, r3] + lsls r0, r0, #3 + adds r0, r0, r6 + ldrb r1, [r0] + adds r1, #1 + lsls r1, r1, #3 + adds r1, #4 + mov r0, sb + strh r1, [r0] + movs r2, #0 + ldrsh r0, [r5, r2] + lsls r0, r0, #3 + adds r0, r0, r6 + ldrb r2, [r0, #1] + lsls r2, r2, #3 + adds r2, #0x1c + mov r3, r8 + strh r2, [r3] + movs r3, #0 + ldrsh r0, [r5, r3] + lsls r0, r0, #3 + adds r0, r0, r6 + ldrb r0, [r0, #2] + subs r0, #1 + lsls r0, r0, #2 + adds r1, r1, r0 + mov r0, sb + strh r1, [r0] + movs r1, #0 + ldrsh r0, [r5, r1] + lsls r0, r0, #3 + adds r0, r0, r6 + ldrb r0, [r0, #3] + subs r0, #1 + lsls r0, r0, #2 + adds r2, r2, r0 + mov r3, r8 + strh r2, [r3] + mov r0, sb + movs r2, #0 + ldrsh r1, [r0, r2] + movs r0, #0 + ldrsh r2, [r3, r0] + ldr r0, _0813D920 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x40 + beq _0813D8C2 + ldr r0, _0813D924 + lsls r2, r1, #4 + adds r2, r2, r1 + lsls r2, r2, #2 + adds r2, r2, r0 + adds r3, r2, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r1, #4 + orrs r0, r1 + strb r0, [r3] + mov r1, sl + ldr r3, [r1] + ldr r4, _0813D904 + ldrh r1, [r4] + adds r0, r1, #1 + strh r0, [r4] + lsls r1, r1, #0x10 + asrs r1, r1, #0xe + movs r0, #0xcc + lsls r0, r0, #3 + adds r3, r3, r0 + adds r3, r3, r1 + str r2, [r3] +_0813D8C2: + ldrh r0, [r7] + adds r0, #1 + strh r0, [r7] + movs r2, #0 + ldrsh r1, [r7, r2] + mov r3, sl + ldr r0, [r3] + movs r2, #0x89 + lsls r2, r2, #1 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r1, r0 + blt _0813D814 +_0813D8DC: + ldr r0, _0813D90C + ldr r0, [r0] + ldr r1, _0813D904 + ldrh r1, [r1] + movs r3, #0xdc + lsls r3, r3, #3 + adds r0, r0, r3 + strh r1, [r0] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0813D8FC: .4byte 0x085939A4 +_0813D900: .4byte 0x085939AC +_0813D904: .4byte 0x03001204 +_0813D908: .4byte 0x03001200 +_0813D90C: .4byte 0x0203A848 +_0813D910: .4byte 0x03001202 +_0813D914: .4byte 0x030011FC +_0813D918: .4byte 0x0857CD6C +_0813D91C: .4byte 0x030011FE +_0813D920: .4byte 0x085939BC +_0813D924: .4byte 0x020205AC + thumb_func_end CreateAreaMarkerSprites + + thumb_func_start DestroyAreaMarkerSprites +DestroyAreaMarkerSprites: @ 0x0813D928 + push {r4, r5, lr} + movs r0, #2 + bl FreeSpriteTilesByTag + movs r0, #2 + bl FreeSpritePaletteByTag + movs r4, #0 + ldr r1, _0813D9A8 + ldr r0, [r1] + movs r2, #0xdc + lsls r2, r2, #3 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r4, r0 + bhs _0813D970 + adds r5, r1, #0 +_0813D94A: + ldr r0, [r5] + lsls r1, r4, #2 + movs r2, #0xcc + lsls r2, r2, #3 + adds r0, r0, r2 + adds r0, r0, r1 + ldr r0, [r0] + bl DestroySprite + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, [r5] + movs r1, #0xdc + lsls r1, r1, #3 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r4, r0 + blo _0813D94A +_0813D970: + movs r0, #3 + bl FreeSpriteTilesByTag + movs r0, #3 + bl FreeSpritePaletteByTag + movs r4, #0 +_0813D97E: + ldr r0, _0813D9A8 + ldr r0, [r0] + lsls r1, r4, #2 + movs r2, #0xfb + lsls r2, r2, #4 + adds r0, r0, r2 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #0 + beq _0813D996 + bl DestroySprite +_0813D996: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #2 + bls _0813D97E + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0813D9A8: .4byte 0x0203A848 + thumb_func_end DestroyAreaMarkerSprites + + thumb_func_start LoadAreaUnknownGraphics +LoadAreaUnknownGraphics: @ 0x0813D9AC + push {lr} + sub sp, #8 + ldr r0, _0813D9D8 + ldr r1, [r0] + ldr r0, _0813D9DC + adds r1, r1, r0 + str r1, [sp] + ldr r0, _0813D9E0 + str r0, [sp, #4] + ldr r0, _0813D9E4 + bl LZ77UnCompWram + mov r0, sp + bl LoadSpriteSheet + ldr r0, _0813D9E8 + bl LoadSpritePalette + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 +_0813D9D8: .4byte 0x0203A848 +_0813D9DC: .4byte 0x00000FBC +_0813D9E0: .4byte 0x00030600 +_0813D9E4: .4byte 0x08593ABC +_0813D9E8: .4byte 0x08593A74 + thumb_func_end LoadAreaUnknownGraphics + + thumb_func_start CreateAreaUnknownSprites +CreateAreaUnknownSprites: @ 0x0813D9EC + push {r4, r5, r6, lr} + ldr r1, _0813DA20 + ldr r0, [r1] + movs r2, #0x88 + lsls r2, r2, #1 + adds r0, r0, r2 + ldr r0, [r0] + cmp r0, #0 + beq _0813DA24 + movs r4, #0 + adds r5, r1, #0 + movs r3, #0xfb + lsls r3, r3, #4 + movs r2, #0 +_0813DA08: + ldr r0, [r5] + lsls r1, r4, #2 + adds r0, r0, r3 + adds r0, r0, r1 + str r2, [r0] + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #2 + bls _0813DA08 + b _0813DAA8 + .align 2, 0 +_0813DA20: .4byte 0x0203A848 +_0813DA24: + movs r4, #0 + ldr r5, _0813DA78 +_0813DA28: + lsls r1, r4, #0x15 + movs r6, #0xa0 + lsls r6, r6, #0x10 + adds r1, r1, r6 + asrs r1, r1, #0x10 + ldr r0, _0813DA7C + movs r2, #0x8c + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _0813DA8C + lsls r3, r0, #4 + adds r3, r3, r0 + lsls r3, r3, #2 + adds r3, r3, r5 + ldrh r2, [r3, #4] + lsls r0, r2, #0x16 + lsrs r0, r0, #0x16 + lsls r1, r4, #4 + adds r0, r0, r1 + ldr r6, _0813DA80 + adds r1, r6, #0 + ands r0, r1 + ldr r6, _0813DA84 + adds r1, r6, #0 + ands r2, r1 + orrs r2, r0 + strh r2, [r3, #4] + ldr r0, _0813DA88 + ldr r0, [r0] + lsls r1, r4, #2 + movs r2, #0xfb + lsls r2, r2, #4 + adds r0, r0, r2 + adds r0, r0, r1 + str r3, [r0] + b _0813DA9E + .align 2, 0 +_0813DA78: .4byte 0x020205AC +_0813DA7C: .4byte 0x08593A84 +_0813DA80: .4byte 0x000003FF +_0813DA84: .4byte 0xFFFFFC00 +_0813DA88: .4byte 0x0203A848 +_0813DA8C: + ldr r0, _0813DAB0 + ldr r1, [r0] + lsls r0, r4, #2 + movs r6, #0xfb + lsls r6, r6, #4 + adds r1, r1, r6 + adds r1, r1, r0 + movs r0, #0 + str r0, [r1] +_0813DA9E: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #2 + bls _0813DA28 +_0813DAA8: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0813DAB0: .4byte 0x0203A848 + thumb_func_end CreateAreaUnknownSprites + + thumb_func_start sub_0813DAB4 +sub_0813DAB4: @ 0x0813DAB4 + push {lr} + bl UpdatePaletteFade + bl RunTasks + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0813DAB4 + + thumb_func_start sub_0813DAC4 +sub_0813DAC4: @ 0x0813DAC4 + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + movs r7, #0 + ldr r1, _0813DAE8 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r6, r0, r1 + movs r1, #8 + ldrsh r0, [r6, r1] + cmp r0, #0 + beq _0813DAEC + cmp r0, #1 + beq _0813DB04 + b _0813DB34 + .align 2, 0 +_0813DAE8: .4byte 0x03005B60 +_0813DAEC: + movs r0, #1 + rsbs r0, r0, #0 + str r7, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldrh r0, [r6, #8] + adds r0, #1 + strh r0, [r6, #8] + b _0813DB34 +_0813DB04: + ldr r0, _0813DB3C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0813DB34 + movs r0, #0x1c + ldrsh r1, [r6, r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _0813DB40 + adds r7, r1, r0 + ldrh r4, [r6, #0xc] + ldrb r5, [r6, #0xe] + ldrb r6, [r6, #0x1c] + adds r0, r2, #0 + bl DestroyTask + adds r0, r7, #0 + adds r1, r4, #0 + adds r2, r5, #0 + adds r3, r6, #0 + bl EvolutionScene +_0813DB34: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0813DB3C: .4byte 0x02037C74 +_0813DB40: .4byte 0x02024190 + thumb_func_end sub_0813DAC4 + diff --git a/asm/pokedex_cry_screen.s b/asm/pokedex_cry_screen.s new file mode 100644 index 0000000..61bb7b1 --- /dev/null +++ b/asm/pokedex_cry_screen.s @@ -0,0 +1,1047 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_08145420 +sub_08145420: @ 0x08145420 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + movs r0, #0 + mov r8, r0 + ldr r0, _08145444 + ldrb r0, [r0] + cmp r0, #1 + beq _081454C4 + cmp r0, #1 + bgt _08145448 + cmp r0, #0 + beq _0814544E + b _08145516 + .align 2, 0 +_08145444: .4byte 0x03005F2C +_08145448: + cmp r0, #2 + beq _08145500 + b _08145516 +_0814544E: + ldr r5, _081454B8 + ldr r0, [r5] + cmp r0, #0 + bne _0814546A + movs r0, #0x1c + bl AllocZeroed + str r0, [r5] + ldr r4, _081454BC + adds r0, r7, #0 + movs r1, #7 + bl GetWindowAttribute + str r0, [r4] +_0814546A: + ldr r1, [r5] + ldrh r0, [r6] + movs r2, #0 + strh r0, [r1, #0x14] + ldrb r0, [r6, #5] + strb r0, [r1, #0x16] + ldr r0, [r5] + strb r2, [r0, #0x1a] + ldr r0, [r5] + strb r2, [r0, #0x1b] + ldr r0, [r5] + strb r2, [r0, #0x10] + ldr r1, [r5] + movs r0, #0x1c + strb r0, [r1, #0x12] + ldr r0, [r5] + strb r2, [r0, #0x11] + ldrb r1, [r6, #4] + lsls r1, r1, #0x13 + rsbs r1, r1, #0 + asrs r1, r1, #0x10 + adds r0, r7, #0 + movs r2, #1 + bl sub_081458F0 + movs r4, #0 +_0814549E: + adds r0, r7, #0 + ldr r1, _081454C0 + movs r2, #0x20 + adds r3, r4, #0 + bl CopyToWindowPixelBuffer + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xdf + bls _0814549E + b _081454EC + .align 2, 0 +_081454B8: .4byte 0x0203A85C +_081454BC: .4byte 0x0203A860 +_081454C0: .4byte 0x085987C4 +_081454C4: + movs r4, #0 + ldr r1, _081454F8 + ldr r0, [r1] + ldrb r0, [r0, #0x16] + lsls r0, r0, #3 + cmp r8, r0 + bge _081454EC + adds r5, r1, #0 +_081454D4: + adds r0, r4, #0 + movs r1, #0 + bl sub_08145774 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, [r5] + ldrb r0, [r0, #0x16] + lsls r0, r0, #3 + cmp r4, r0 + blt _081454D4 +_081454EC: + ldr r1, _081454FC + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _08145516 + .align 2, 0 +_081454F8: .4byte 0x0203A85C +_081454FC: .4byte 0x03005F2C +_08145500: + adds r0, r7, #0 + bl sub_081458E0 + ldr r0, _08145524 + ldrb r1, [r6, #3] + lsls r1, r1, #4 + movs r2, #0x20 + bl LoadPalette + movs r0, #1 + mov r8, r0 +_08145516: + mov r0, r8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08145524: .4byte 0x085987A4 + thumb_func_end sub_08145420 + + thumb_func_start sub_08145528 +sub_08145528: @ 0x08145528 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl sub_081458E0 + adds r0, r4, #0 + bl sub_08145714 + ldr r2, _0814556C + ldr r1, [r2] + ldrb r0, [r1, #0x1b] + cmp r0, #0 + beq _0814554A + subs r0, #1 + strb r0, [r1, #0x1b] +_0814554A: + ldr r1, [r2] + ldrb r0, [r1, #0x1a] + cmp r0, #0 + beq _08145570 + subs r0, #1 + strb r0, [r1, #0x1a] + ldr r1, [r2] + ldrb r0, [r1, #0x1a] + cmp r0, #0 + bne _08145570 + ldrh r0, [r1, #0x18] + bl sub_08145654 + bl sub_081456D8 + b _081455F6 + .align 2, 0 +_0814556C: .4byte 0x0203A85C +_08145570: + ldr r5, _08145580 + ldr r0, [r5] + ldrb r0, [r0, #0x10] + cmp r0, #0 + bne _08145584 + bl sub_081456D8 + b _081455F6 + .align 2, 0 +_08145580: .4byte 0x0203A85C +_08145584: + cmp r0, #1 + bne _0814558E + bl sub_08145674 + b _081455B2 +_0814558E: + cmp r0, #8 + bls _081455B2 + bl IsCryPlaying + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _081455A8 + bl sub_081456D8 + ldr r0, [r5] + strb r4, [r0, #0x10] + b _081455F6 +_081455A8: + bl sub_08145674 + ldr r1, [r5] + movs r0, #1 + strb r0, [r1, #0x10] +_081455B2: + ldr r5, _081455FC + ldr r1, [r5] + ldrb r4, [r1, #0x10] + subs r4, #1 + lsls r4, r4, #0x19 + lsrs r4, r4, #0x18 + ldrb r0, [r1, #0x16] + lsls r0, r0, #3 + ldrb r2, [r1, #0x11] + adds r0, r0, r2 + subs r0, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r1, r4 + ldrb r1, [r1] + bl sub_08145774 + ldr r1, [r5] + ldrb r0, [r1, #0x16] + lsls r0, r0, #3 + ldrb r2, [r1, #0x11] + adds r0, r0, r2 + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r4, #1 + adds r1, r1, r4 + ldrb r1, [r1] + bl sub_08145774 + ldr r1, [r5] + ldrb r0, [r1, #0x10] + adds r0, #1 + strb r0, [r1, #0x10] +_081455F6: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081455FC: .4byte 0x0203A85C + thumb_func_end sub_08145528 + + thumb_func_start sub_08145600 +sub_08145600: @ 0x08145600 + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r5, r4, #0 + ldr r0, _08145640 + ldr r0, [r0, #4] + cmp r0, #0 + bge _0814564E + ldr r6, _08145644 + ldr r1, [r6] + ldrb r0, [r1, #0x1a] + cmp r0, #0 + bne _0814564E + ldrb r0, [r1, #0x1b] + cmp r0, #0 + bne _0814564E + movs r0, #4 + strb r0, [r1, #0x1b] + bl IsCryPlaying + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08145648 + bl StopCry + ldr r1, [r6] + strh r4, [r1, #0x18] + movs r0, #2 + strb r0, [r1, #0x1a] + b _0814564E + .align 2, 0 +_08145640: .4byte 0x030074D0 +_08145644: .4byte 0x0203A85C +_08145648: + adds r0, r5, #0 + bl sub_08145654 +_0814564E: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_08145600 + + thumb_func_start sub_08145654 +sub_08145654: @ 0x08145654 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0 + movs r2, #0x7d + movs r3, #0xa + bl PlayCry2 + ldr r0, _08145670 + ldr r1, [r0] + movs r0, #1 + strb r0, [r1, #0x10] + pop {r0} + bx r0 + .align 2, 0 +_08145670: .4byte 0x0203A85C + thumb_func_end sub_08145654 + + thumb_func_start sub_08145674 +sub_08145674: @ 0x08145674 + push {r4, lr} + ldr r3, _08145684 + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #1 + bgt _0814568C + ldr r0, _08145688 + b _081456A4 + .align 2, 0 +_08145684: .4byte 0x03002FF0 +_08145688: .4byte 0x03006470 +_0814568C: + ldr r2, _081456D0 + ldrb r1, [r2, #0xb] + movs r0, #0 + ldrsb r0, [r3, r0] + subs r0, #1 + subs r1, r1, r0 + ldr r0, [r2, #0x10] + muls r0, r1, r0 + movs r1, #0xd4 + lsls r1, r1, #2 + adds r2, r2, r1 + adds r0, r0, r2 +_081456A4: + movs r1, #0xc6 + lsls r1, r1, #3 + adds r3, r0, r1 + movs r2, #0 + ldr r4, _081456D4 +_081456AE: + ldr r1, [r4] + adds r1, r1, r2 + lsls r0, r2, #1 + adds r0, r0, r3 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #1 + strb r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xf + bls _081456AE + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081456D0: .4byte 0x03006120 +_081456D4: .4byte 0x0203A85C + thumb_func_end sub_08145674 + + thumb_func_start sub_081456D8 +sub_081456D8: @ 0x081456D8 + push {r4, lr} + ldr r4, _08145710 + ldr r1, [r4] + ldrb r0, [r1, #0x16] + lsls r0, r0, #3 + ldrb r1, [r1, #0x11] + adds r0, r0, r1 + subs r0, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl sub_08145774 + ldr r1, [r4] + ldrb r0, [r1, #0x16] + lsls r0, r0, #3 + ldrb r1, [r1, #0x11] + adds r0, r0, r1 + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl sub_08145774 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08145710: .4byte 0x0203A85C + thumb_func_end sub_081456D8 + + thumb_func_start sub_08145714 +sub_08145714: @ 0x08145714 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r4, _0814576C + ldr r0, [r4] + ldrb r1, [r0, #0x11] + adds r0, r6, #0 + movs r2, #0 + bl sub_081458F0 + ldr r1, [r4] + ldrb r0, [r1, #0x11] + adds r0, #2 + strb r0, [r1, #0x11] + ldr r1, [r4] + ldrb r0, [r1, #0x11] + lsrs r0, r0, #3 + ldrb r1, [r1, #0x16] + adds r1, r0, r1 + adds r2, r1, #1 + adds r0, r2, #0 + asrs r0, r0, #5 + lsls r0, r0, #5 + subs r0, r2, r0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + movs r4, #0 +_0814574A: + lsls r3, r4, #5 + adds r3, r5, r3 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + adds r0, r6, #0 + ldr r1, _08145770 + movs r2, #0x20 + bl CopyToWindowPixelBuffer + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #6 + bls _0814574A + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0814576C: .4byte 0x0203A85C +_08145770: .4byte 0x085987C4 + thumb_func_end sub_08145714 + + thumb_func_start sub_08145774 +sub_08145774: @ 0x08145774 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + lsls r7, r0, #0x18 + lsrs r4, r7, #0x18 + lsls r1, r1, #0x18 + movs r0, #0xfe + lsls r0, r0, #0x17 + adds r1, r1, r0 + lsrs r1, r1, #0x10 + adds r0, r1, #0 + bl __floatsidf + ldr r3, _08145834 + ldr r2, _08145830 + bl __divdf3 + bl __fixunsdfsi + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x37 + bls _081457AA + movs r5, #0x37 +_081457AA: + str r5, [sp] + movs r6, #1 + ands r6, r4 + ldr r0, _08145838 + ldr r1, [r0] + lsrs r7, r7, #0x1b + mov r8, r7 + ldr r0, _0814583C + ldrb r1, [r1, #0x12] + cmp r5, r1 + bls _0814584C + ldr r3, _08145840 + adds r0, r6, r0 + ldrb r0, [r0] + mov sb, r0 + movs r7, #7 + ands r7, r4 +_081457CC: + lsls r1, r5, #1 + lsls r0, r7, #3 + adds r0, r0, r7 + lsls r0, r0, #4 + adds r1, r1, r0 + ldr r2, _08145844 + adds r1, r1, r2 + mov r4, r8 + lsls r0, r4, #5 + ldrh r1, [r1] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r1, [r3] + adds r1, r1, r2 + ldrb r0, [r1] + mov r4, sb + ands r0, r4 + strb r0, [r1] + ldr r4, [r3] + adds r4, r4, r2 + adds r0, r5, #0 + movs r1, #3 + str r3, [sp, #4] + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, #1 + movs r1, #0xf + ands r0, r1 + lsls r1, r6, #4 + adds r0, r0, r1 + ldr r1, _08145848 + adds r0, r0, r1 + ldrb r1, [r4] + ldrb r0, [r0] + orrs r1, r0 + strb r1, [r4] + subs r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r2, _08145838 + ldr r0, [r2] + ldr r3, [sp, #4] + ldrb r0, [r0, #0x12] + cmp r5, r0 + bhi _081457CC + b _081458B6 + .align 2, 0 +_08145830: .4byte 0x40920000 +_08145834: .4byte 0x00000000 +_08145838: .4byte 0x0203A85C +_0814583C: .4byte 0x085987E4 +_08145840: .4byte 0x0203A860 +_08145844: .4byte 0x08598324 +_08145848: .4byte 0x085987E6 +_0814584C: + lsls r3, r6, #4 + mov sl, r3 + ldr r7, _081458D0 + adds r0, r6, r0 + ldrb r0, [r0] + mov sb, r0 + movs r6, #7 + ands r6, r4 +_0814585C: + lsls r1, r5, #1 + lsls r0, r6, #3 + adds r0, r0, r6 + lsls r0, r0, #4 + adds r1, r1, r0 + ldr r4, _081458D4 + adds r1, r1, r4 + mov r2, r8 + lsls r0, r2, #5 + ldrh r1, [r1] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r1, [r7] + adds r1, r1, r2 + ldrb r0, [r1] + mov r3, sb + ands r0, r3 + strb r0, [r1] + ldr r4, [r7] + adds r4, r4, r2 + adds r0, r5, #0 + movs r1, #3 + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, #1 + movs r1, #0xf + ands r0, r1 + add r0, sl + ldr r1, _081458D8 + adds r0, r0, r1 + ldrb r1, [r4] + ldrb r0, [r0] + orrs r1, r0 + strb r1, [r4] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r2, _081458DC + ldr r0, [r2] + ldrb r0, [r0, #0x12] + cmp r5, r0 + blo _0814585C +_081458B6: + ldr r3, _081458DC + ldr r0, [r3] + mov r4, sp + ldrb r4, [r4] + strb r4, [r0, #0x12] + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081458D0: .4byte 0x0203A860 +_081458D4: .4byte 0x08598324 +_081458D8: .4byte 0x085987E6 +_081458DC: .4byte 0x0203A85C + thumb_func_end sub_08145774 + + thumb_func_start sub_081458E0 +sub_081458E0: @ 0x081458E0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl CopyWindowToVram + pop {r0} + bx r0 + thumb_func_end sub_081458E0 + + thumb_func_start sub_081458F0 +sub_081458F0: @ 0x081458F0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + lsls r2, r2, #0x18 + cmp r2, #0 + bne _08145914 + movs r1, #0 + bl GetWindowAttribute + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r4, #0x10 + asrs r1, r1, #8 + movs r2, #0 + bl ChangeBgX +_08145914: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081458F0 + + thumb_func_start sub_0814591C +sub_0814591C: @ 0x0814591C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + movs r0, #0 + mov r8, r0 + ldr r6, _0814593C + ldrb r0, [r6] + cmp r0, #0 + beq _08145940 + cmp r0, #1 + beq _0814597C + b _081459C4 + .align 2, 0 +_0814593C: .4byte 0x03005F2C +_08145940: + ldr r5, _08145970 + ldr r0, [r5] + cmp r0, #0 + bne _08145950 + movs r0, #8 + bl AllocZeroed + str r0, [r5] +_08145950: + ldr r1, _08145974 + adds r0, r7, #0 + movs r2, #0 + movs r3, #0 + bl CopyToWindowPixelBuffer + ldr r0, _08145978 + ldrb r1, [r4, #3] + lsls r1, r1, #4 + movs r2, #0x20 + bl LoadPalette + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] + b _081459C4 + .align 2, 0 +_08145970: .4byte 0x0203A864 +_08145974: .4byte 0x08597FEC +_08145978: .4byte 0x08597FCC +_0814597C: + ldr r0, _081459D0 + bl LoadSpriteSheets + ldr r0, _081459D4 + bl LoadSpritePalettes + ldr r0, _081459D8 + ldrb r1, [r4, #4] + lsls r1, r1, #0x13 + movs r2, #0xa0 + lsls r2, r2, #0xe + adds r1, r1, r2 + asrs r1, r1, #0x10 + ldrb r2, [r4, #5] + lsls r2, r2, #0x13 + movs r3, #0xe0 + lsls r3, r3, #0xe + adds r2, r2, r3 + asrs r2, r2, #0x10 + movs r3, #1 + bl CreateSprite + ldr r2, _081459DC + ldr r3, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r4, #0 + strh r0, [r3, #4] + movs r1, #0x20 + strb r1, [r3] + ldr r0, [r2] + strb r1, [r0, #1] + ldr r0, [r2] + strb r4, [r0, #2] + movs r0, #1 + mov r8, r0 +_081459C4: + mov r0, r8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081459D0: .4byte 0x08598834 +_081459D4: .4byte 0x08598844 +_081459D8: .4byte 0x0859881C +_081459DC: .4byte 0x0203A864 + thumb_func_end sub_0814591C + + thumb_func_start sub_081459E0 +sub_081459E0: @ 0x081459E0 + push {r4, r5, r6, lr} + ldr r4, _08145A2C + ldr r6, _08145A30 + ldr r0, [r6] + ldrh r1, [r0, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r0, [r0, #5] + lsrs r0, r0, #4 + bl GetSpritePaletteTagByPaletteNum + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl FreeSpritePaletteByTag + ldr r0, [r6] + ldrh r1, [r0, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + ldr r4, _08145A34 + ldr r0, [r4] + bl Free + movs r5, #0 + str r5, [r4] + ldr r0, [r6] + bl Free + str r5, [r6] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08145A2C: .4byte 0x020205AC +_08145A30: .4byte 0x0203A864 +_08145A34: .4byte 0x0203A85C + thumb_func_end sub_081459E0 + + thumb_func_start sub_08145A38 +sub_08145A38: @ 0x08145A38 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + adds r7, r0, #0 + ldr r3, _08145A80 + ldr r4, _08145A84 + ldr r0, [r4] + ldrh r1, [r0, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r2, [r0, #1] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #1 + orrs r1, r2 + strb r1, [r0, #1] + ldr r2, [r4] + ldrh r1, [r2, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r1, #0 + strh r1, [r0, #6] + ldr r0, _08145A88 + ldr r0, [r0] + ldrb r1, [r0, #0x10] + cmp r1, #2 + beq _08145AB4 + cmp r1, #2 + bgt _08145A8C + cmp r1, #0 + beq _08145A92 + b _08145AFA + .align 2, 0 +_08145A80: .4byte 0x020205AC +_08145A84: .4byte 0x0203A864 +_08145A88: .4byte 0x0203A85C +_08145A8C: + cmp r1, #6 + beq _08145AEC + b _08145AFA +_08145A92: + movs r0, #0x20 + strb r0, [r2, #1] + ldr r1, [r4] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + ble _08145AAE + ldrb r0, [r1, #2] + add r4, sp, #0xc + cmp r0, #1 + beq _08145AFC + subs r0, #1 + strb r0, [r1, #2] + b _08145AFC +_08145AAE: + movs r0, #5 + strb r0, [r1, #2] + b _08145AFA +_08145AB4: + movs r3, #0 + movs r2, #0 + add r4, sp, #0xc + adds r5, r0, #0 +_08145ABC: + lsls r1, r3, #0x18 + asrs r1, r1, #0x18 + adds r0, r5, r2 + ldrb r0, [r0] + cmp r1, r0 + bge _08145ACA + adds r3, r0, #0 +_08145ACA: + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0xf + bls _08145ABC + lsls r0, r3, #0x18 + asrs r0, r0, #0x18 + movs r1, #0xd0 + muls r0, r1, r0 + cmp r0, #0 + bge _08145AE2 + adds r0, #0xff +_08145AE2: + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + bl sub_08145BF0 + b _08145AFC +_08145AEC: + ldrb r1, [r0, #0xa] + movs r0, #0xd0 + muls r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + bl sub_08145BF0 +_08145AFA: + add r4, sp, #0xc +_08145AFC: + ldr r0, _08145B2C + ldr r2, [r0] + ldrb r5, [r2] + movs r1, #0 + ldrsb r1, [r2, r1] + movs r3, #1 + ldrsb r3, [r2, r3] + adds r6, r0, #0 + cmp r1, r3 + beq _08145B4E + cmp r1, r3 + bge _08145B30 + ldrb r0, [r2, #2] + adds r0, r5, r0 + strb r0, [r2] + ldr r2, [r6] + movs r1, #0 + ldrsb r1, [r2, r1] + ldrb r3, [r2, #1] + movs r0, #1 + ldrsb r0, [r2, r0] + cmp r1, r0 + ble _08145B4E + b _08145B46 + .align 2, 0 +_08145B2C: .4byte 0x0203A864 +_08145B30: + ldrb r0, [r2, #2] + subs r0, r5, r0 + strb r0, [r2] + ldr r2, [r6] + movs r1, #0 + ldrsb r1, [r2, r1] + ldrb r3, [r2, #1] + movs r0, #1 + ldrsb r0, [r2, r0] + cmp r1, r0 + bge _08145B4E +_08145B46: + strb r3, [r2] + ldr r1, [r6] + movs r0, #0 + strb r0, [r1, #1] +_08145B4E: + ldr r2, _08145BE4 + ldr r0, [sp, #4] + ands r0, r2 + movs r1, #0x80 + lsls r1, r1, #1 + orrs r0, r1 + ldr r1, _08145BE8 + ands r0, r1 + movs r1, #0x80 + lsls r1, r1, #0x11 + orrs r0, r1 + str r0, [sp, #4] + ldr r0, [r6] + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x10 + ldr r0, [sp, #8] + ands r0, r2 + orrs r0, r1 + str r0, [sp, #8] + add r0, sp, #4 + adds r1, r4, #0 + movs r2, #1 + movs r3, #2 + bl ObjAffineSet + add r0, sp, #0xc + ldrh r1, [r0] + ldrh r2, [r4, #2] + ldrh r3, [r4, #4] + ldrh r0, [r4, #6] + str r0, [sp] + movs r0, #0 + bl SetOamMatrix + ldr r2, _08145BEC + ldr r0, [r6] + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #0x7f + movs r1, #0xff + ands r0, r1 + lsls r1, r0, #1 + adds r1, r1, r2 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r2, [r0] + movs r0, #0 + ldrsh r1, [r1, r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + cmp r0, #0 + bge _08145BC2 + adds r0, #0xff +_08145BC2: + asrs r0, r0, #8 + strh r0, [r7, #0x24] + lsls r1, r2, #0x10 + asrs r1, r1, #0x10 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + cmp r0, #0 + bge _08145BD6 + adds r0, #0xff +_08145BD6: + asrs r0, r0, #8 + strh r0, [r7, #0x26] + add sp, #0x14 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08145BE4: .4byte 0xFFFF0000 +_08145BE8: .4byte 0x0000FFFF +_08145BEC: .4byte 0x082FA8CC + thumb_func_end sub_08145A38 + + thumb_func_start sub_08145BF0 +sub_08145BF0: @ 0x08145BF0 + push {lr} + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #0x20 + subs r2, r1, r0 + movs r0, #0xff + ands r2, r0 + adds r0, r2, #0 + subs r0, #0x21 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xbe + bhi _08145C0C + movs r2, #0xe0 +_08145C0C: + ldr r1, _08145C1C + ldr r0, [r1] + strb r2, [r0, #1] + ldr r1, [r1] + movs r0, #5 + strb r0, [r1, #2] + pop {r0} + bx r0 + .align 2, 0 +_08145C1C: .4byte 0x0203A864 + thumb_func_end sub_08145BF0 + diff --git a/asm/pokemon.s b/asm/pokemon.s new file mode 100644 index 0000000..ea8c4aa --- /dev/null +++ b/asm/pokemon.s @@ -0,0 +1,15735 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ZeroBoxMonData +ZeroBoxMonData: @ 0x08067658 + push {lr} + adds r2, r0, #0 + movs r1, #0 + movs r3, #0 +_08067660: + adds r0, r2, r1 + strb r3, [r0] + adds r1, #1 + cmp r1, #0x4f + bls _08067660 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ZeroBoxMonData + + thumb_func_start ZeroMonData +ZeroMonData: @ 0x08067670 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + bl ZeroBoxMonData + movs r0, #0 + str r0, [sp] + adds r0, r4, #0 + movs r1, #0x37 + mov r2, sp + bl SetMonData + adds r0, r4, #0 + movs r1, #0x38 + mov r2, sp + bl SetMonData + adds r0, r4, #0 + movs r1, #0x39 + mov r2, sp + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3a + mov r2, sp + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3b + mov r2, sp + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3c + mov r2, sp + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3d + mov r2, sp + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3e + mov r2, sp + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3f + mov r2, sp + bl SetMonData + movs r0, #0xff + str r0, [sp] + adds r0, r4, #0 + movs r1, #0x40 + mov r2, sp + bl SetMonData + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ZeroMonData + + thumb_func_start ZeroPlayerPartyMons +ZeroPlayerPartyMons: @ 0x080676F0 + push {r4, r5, lr} + ldr r4, _0806770C + movs r0, #0xfa + lsls r0, r0, #1 + adds r5, r4, r0 +_080676FA: + adds r0, r4, #0 + bl ZeroMonData + adds r4, #0x64 + cmp r4, r5 + ble _080676FA + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0806770C: .4byte 0x02024190 + thumb_func_end ZeroPlayerPartyMons + + thumb_func_start ZeroEnemyPartyMons +ZeroEnemyPartyMons: @ 0x08067710 + push {r4, r5, lr} + ldr r4, _0806772C + movs r0, #0xfa + lsls r0, r0, #1 + adds r5, r4, r0 +_0806771A: + adds r0, r4, #0 + bl ZeroMonData + adds r4, #0x64 + cmp r4, r5 + ble _0806771A + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0806772C: .4byte 0x020243E8 + thumb_func_end ZeroEnemyPartyMons + + thumb_func_start CreateMon +CreateMon: @ 0x08067730 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x1c + mov r8, r0 + adds r6, r1, #0 + ldr r4, [sp, #0x34] + ldr r7, [sp, #0x38] + ldr r5, [sp, #0x3c] + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + add r0, sp, #0x10 + strb r2, [r0] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + mov r0, r8 + str r3, [sp, #0x18] + bl ZeroMonData + str r4, [sp] + str r7, [sp, #4] + str r5, [sp, #8] + ldr r0, [sp, #0x40] + str r0, [sp, #0xc] + mov r0, r8 + adds r1, r6, #0 + add r2, sp, #0x10 + ldrb r2, [r2] + ldr r3, [sp, #0x18] + bl CreateBoxMon + mov r0, r8 + movs r1, #0x38 + add r2, sp, #0x10 + bl SetMonData + movs r0, #0xff + str r0, [sp, #0x14] + add r2, sp, #0x14 + mov r0, r8 + movs r1, #0x40 + bl SetMonData + mov r0, r8 + bl CalculateMonStats + add sp, #0x1c + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end CreateMon + + thumb_func_start CreateBoxMon +CreateBoxMon: @ 0x080677A0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + adds r7, r0, #0 + ldr r4, [sp, #0x40] + ldr r0, [sp, #0x48] + movs r5, #0xe + add r5, sp + strh r1, [r5] + add r6, sp, #0x10 + strb r2, [r6] + mov r5, sp + adds r5, #0x11 + strb r3, [r5] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + adds r0, r7, #0 + bl ZeroBoxMonData + cmp r4, #0 + beq _080677DC + ldr r0, [sp, #0x44] + str r0, [sp, #0x14] + b _080677F0 +_080677DC: + bl Random + adds r4, r0, #0 + bl Random + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r0, r0, #0x10 + orrs r4, r0 + str r4, [sp, #0x14] +_080677F0: + add r2, sp, #0x14 + adds r0, r7, #0 + movs r1, #0 + bl SetBoxMonData + add r0, sp, #0x18 + mov sb, r0 + add r5, sp, #0xc + mov r1, sl + cmp r1, #2 + bne _08067848 + ldr r2, _08067840 + mov r8, r2 + ldr r6, _08067844 +_0806780C: + bl Random + adds r4, r0, #0 + bl Random + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r0, r0, #0x10 + orrs r4, r0 + str r4, [sp, #0x18] + adds r1, r4, #0 + mov r3, r8 + ands r1, r3 + lsrs r1, r1, #0x10 + ands r4, r6 + eors r1, r4 + ldr r2, [sp, #0x14] + adds r0, r2, #0 + ands r0, r3 + lsrs r0, r0, #0x10 + eors r1, r0 + ands r2, r6 + eors r1, r2 + cmp r1, #7 + bls _0806780C + b _0806786E + .align 2, 0 +_08067840: .4byte 0xFFFF0000 +_08067844: .4byte 0x0000FFFF +_08067848: + mov r0, sl + cmp r0, #1 + bne _08067854 + ldr r0, [sp, #0x4c] + str r0, [sp, #0x18] + b _0806786E +_08067854: + ldr r0, _08067998 + ldr r2, [r0] + ldrb r1, [r2, #0xa] + ldrb r0, [r2, #0xb] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #0xc] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #0xd] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [sp, #0x18] +_0806786E: + adds r0, r7, #0 + movs r1, #1 + mov r2, sb + bl SetBoxMonData + adds r0, r7, #0 + bl CalculateBoxMonChecksum + strh r0, [r5] + adds r0, r7, #0 + movs r1, #9 + adds r2, r5, #0 + bl SetBoxMonData + adds r0, r7, #0 + bl EncryptBoxMon + mov r0, sp + ldrh r1, [r0, #0xe] + bl GetSpeciesName + adds r0, r7, #0 + movs r1, #2 + mov r2, sp + bl SetBoxMonData + ldr r2, _0806799C + adds r0, r7, #0 + movs r1, #3 + bl SetBoxMonData + ldr r5, _08067998 + ldr r2, [r5] + adds r0, r7, #0 + movs r1, #7 + bl SetBoxMonData + adds r0, r7, #0 + movs r1, #0xb + mov r2, sp + adds r2, #0xe + bl SetBoxMonData + ldr r4, _080679A0 + mov r2, sp + ldrh r1, [r2, #0xe] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r1, [r0, #0x13] + movs r0, #0xca + lsls r0, r0, #1 + adds r2, r1, #0 + muls r2, r0, r2 + mov r3, sp + ldrb r0, [r3, #0x10] + lsls r0, r0, #2 + ldr r1, _080679A4 + adds r0, r0, r1 + adds r2, r2, r0 + adds r0, r7, #0 + movs r1, #0x19 + bl SetBoxMonData + mov r1, sp + ldrh r0, [r1, #0xe] + lsls r2, r0, #3 + subs r2, r2, r0 + lsls r2, r2, #2 + adds r4, #0x12 + adds r2, r2, r4 + adds r0, r7, #0 + movs r1, #0x20 + bl SetBoxMonData + bl GetCurrentRegionMapSectionId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x18] + adds r0, r7, #0 + movs r1, #0x23 + mov r2, sb + bl SetBoxMonData + adds r0, r7, #0 + movs r1, #0x24 + add r2, sp, #0x10 + bl SetBoxMonData + ldr r2, _080679A8 + adds r0, r7, #0 + movs r1, #0x25 + bl SetBoxMonData + movs r0, #4 + str r0, [sp, #0x18] + adds r0, r7, #0 + movs r1, #0x26 + mov r2, sb + bl SetBoxMonData + ldr r2, [r5] + adds r2, #8 + adds r0, r7, #0 + movs r1, #0x31 + bl SetBoxMonData + mov r2, sp + ldrb r0, [r2, #0x11] + cmp r0, #0x1f + bhi _080679AC + adds r0, r7, #0 + movs r1, #0x27 + adds r2, #0x11 + bl SetBoxMonData + adds r0, r7, #0 + movs r1, #0x28 + mov r2, sp + adds r2, #0x11 + bl SetBoxMonData + adds r0, r7, #0 + movs r1, #0x29 + mov r2, sp + adds r2, #0x11 + bl SetBoxMonData + adds r0, r7, #0 + movs r1, #0x2a + mov r2, sp + adds r2, #0x11 + bl SetBoxMonData + adds r0, r7, #0 + movs r1, #0x2b + mov r2, sp + adds r2, #0x11 + bl SetBoxMonData + adds r0, r7, #0 + movs r1, #0x2c + mov r2, sp + adds r2, #0x11 + bl SetBoxMonData + b _08067A34 + .align 2, 0 +_08067998: .4byte 0x03005AF0 +_0806799C: .4byte 0x0829BDA5 +_080679A0: .4byte 0x082F0D54 +_080679A4: .4byte 0x082F00B4 +_080679A8: .4byte 0x0829BDA4 +_080679AC: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x18] + movs r3, #0x1f + mov r8, r3 + ands r0, r3 + str r0, [sp, #0x1c] + add r4, sp, #0x1c + adds r0, r7, #0 + movs r1, #0x27 + adds r2, r4, #0 + bl SetBoxMonData + ldr r0, [sp, #0x18] + movs r6, #0xf8 + lsls r6, r6, #2 + ands r0, r6 + lsrs r0, r0, #5 + str r0, [sp, #0x1c] + adds r0, r7, #0 + movs r1, #0x28 + adds r2, r4, #0 + bl SetBoxMonData + ldr r0, [sp, #0x18] + movs r5, #0xf8 + lsls r5, r5, #7 + ands r0, r5 + lsrs r0, r0, #0xa + str r0, [sp, #0x1c] + adds r0, r7, #0 + movs r1, #0x29 + adds r2, r4, #0 + bl SetBoxMonData + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x18] + mov r1, r8 + ands r0, r1 + str r0, [sp, #0x1c] + adds r0, r7, #0 + movs r1, #0x2a + adds r2, r4, #0 + bl SetBoxMonData + ldr r0, [sp, #0x18] + ands r0, r6 + lsrs r0, r0, #5 + str r0, [sp, #0x1c] + adds r0, r7, #0 + movs r1, #0x2b + adds r2, r4, #0 + bl SetBoxMonData + ldr r0, [sp, #0x18] + ands r0, r5 + lsrs r0, r0, #0xa + str r0, [sp, #0x1c] + adds r0, r7, #0 + movs r1, #0x2c + adds r2, r4, #0 + bl SetBoxMonData +_08067A34: + ldr r2, _08067A70 + mov r3, sp + ldrh r1, [r3, #0xe] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #0x17] + cmp r0, #0 + beq _08067A5A + ldr r0, [sp, #0x14] + movs r1, #1 + ands r0, r1 + str r0, [sp, #0x18] + adds r0, r7, #0 + movs r1, #0x2e + mov r2, sb + bl SetBoxMonData +_08067A5A: + adds r0, r7, #0 + bl GiveBoxMonInitialMoveset + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08067A70: .4byte 0x082F0D54 + thumb_func_end CreateBoxMon + + thumb_func_start CreateMonWithNature +CreateMonWithNature: @ 0x08067A74 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x10 + mov sb, r0 + ldr r0, [sp, #0x2c] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r8, r1 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r6, r3, #0x18 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_08067A94: + bl Random + adds r4, r0, #0 + bl Random + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r0, r0, #0x10 + orrs r4, r0 + adds r0, r4, #0 + bl GetNatureFromPersonality + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r5, r0 + bne _08067A94 + movs r0, #1 + str r0, [sp] + str r4, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + str r0, [sp, #0xc] + mov r0, sb + mov r1, r8 + adds r2, r7, #0 + adds r3, r6, #0 + bl CreateMon + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CreateMonWithNature + + thumb_func_start CreateMonWithGenderNatureLetter +CreateMonWithGenderNatureLetter: @ 0x08067ADC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + str r0, [sp, #0x10] + ldr r4, [sp, #0x38] + ldr r5, [sp, #0x3c] + ldr r0, [sp, #0x40] + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x14] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov sl, r3 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r8, r4 + lsls r5, r5, #0x18 + lsrs r6, r5, #0x18 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + mov sb, r1 + movs r1, #0xff + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + cmp r0, #0x1b + bhi _08067B82 +_08067B1C: + bl Random + adds r4, r0, #0 + bl Random + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r0, r0, #0x10 + orrs r4, r0 + movs r0, #0xc0 + lsls r0, r0, #0x12 + ands r0, r4 + lsrs r0, r0, #0x12 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r4 + lsrs r1, r1, #0xc + orrs r0, r1 + movs r1, #0xc0 + lsls r1, r1, #2 + ands r1, r4 + lsrs r1, r1, #6 + orrs r0, r1 + movs r1, #3 + ands r1, r4 + orrs r0, r1 + movs r1, #0x1c + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r4, #0 + bl GetNatureFromPersonality + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r6, r0 + bne _08067B1C + adds r0, r7, #0 + adds r1, r4, #0 + bl GetGenderFromSpeciesAndPersonality + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r8, r0 + bne _08067B1C + mov r0, sb + subs r0, #1 + cmp r5, r0 + bne _08067B1C + b _08067BB2 +_08067B82: + bl Random + adds r4, r0, #0 + bl Random + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r0, r0, #0x10 + orrs r4, r0 + adds r0, r4, #0 + bl GetNatureFromPersonality + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r6, r0 + bne _08067B82 + adds r0, r7, #0 + adds r1, r4, #0 + bl GetGenderFromSpeciesAndPersonality + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r8, r0 + bne _08067B82 +_08067BB2: + movs r0, #1 + str r0, [sp] + str r4, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + str r0, [sp, #0xc] + ldr r0, [sp, #0x10] + adds r1, r7, #0 + ldr r2, [sp, #0x14] + mov r3, sl + bl CreateMon + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CreateMonWithGenderNatureLetter + + thumb_func_start CreateMaleMon +CreateMaleMon: @ 0x08067BDC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x10 + mov r8, r0 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 +_08067BEE: + bl Random + adds r4, r0, #0 + bl Random + lsls r4, r4, #0x10 + lsrs r5, r4, #0x10 + lsls r0, r0, #0x10 + orrs r5, r0 + bl Random + adds r4, r0, #0 + bl Random + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r0, r0, #0x10 + orrs r4, r0 + adds r0, r6, #0 + adds r1, r4, #0 + bl GetGenderFromSpeciesAndPersonality + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08067BEE + movs r0, #1 + str r0, [sp] + str r4, [sp, #4] + str r0, [sp, #8] + str r5, [sp, #0xc] + mov r0, r8 + adds r1, r6, #0 + adds r2, r7, #0 + movs r3, #0x20 + bl CreateMon + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CreateMaleMon + + thumb_func_start CreateMonWithIVsPersonality +CreateMonWithIVsPersonality: @ 0x08067C44 + push {r4, lr} + sub sp, #0x14 + adds r4, r0, #0 + str r3, [sp, #0x10] + ldr r3, [sp, #0x1c] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r0, #1 + str r0, [sp] + str r3, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + str r0, [sp, #0xc] + adds r0, r4, #0 + movs r3, #0 + bl CreateMon + adds r0, r4, #0 + movs r1, #0x42 + add r2, sp, #0x10 + bl SetMonData + adds r0, r4, #0 + bl CalculateMonStats + add sp, #0x14 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CreateMonWithIVsPersonality + + thumb_func_start CreateMonWithIVsOTID +CreateMonWithIVsOTID: @ 0x08067C84 + push {r4, r5, lr} + sub sp, #0x10 + adds r5, r0, #0 + adds r4, r3, #0 + ldr r3, [sp, #0x1c] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + str r3, [sp, #0xc] + adds r0, r5, #0 + movs r3, #0 + bl CreateMon + adds r0, r5, #0 + movs r1, #0x27 + adds r2, r4, #0 + bl SetMonData + adds r2, r4, #1 + adds r0, r5, #0 + movs r1, #0x28 + bl SetMonData + adds r2, r4, #2 + adds r0, r5, #0 + movs r1, #0x29 + bl SetMonData + adds r2, r4, #3 + adds r0, r5, #0 + movs r1, #0x2a + bl SetMonData + adds r2, r4, #4 + adds r0, r5, #0 + movs r1, #0x2b + bl SetMonData + adds r4, #5 + adds r0, r5, #0 + movs r1, #0x2c + adds r2, r4, #0 + bl SetMonData + adds r0, r5, #0 + bl CalculateMonStats + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CreateMonWithIVsOTID + + thumb_func_start CreateMonWithEVSpread +CreateMonWithEVSpread: @ 0x08067CF8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x14 + adds r7, r0, #0 + ldr r0, [sp, #0x2c] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r6, #0 + str r6, [sp] + str r6, [sp, #4] + str r6, [sp, #8] + str r6, [sp, #0xc] + adds r0, r7, #0 + bl CreateMon + mov r4, r8 + movs r1, #1 + movs r5, #5 +_08067D2C: + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + beq _08067D36 + adds r6, #1 +_08067D36: + lsrs r4, r4, #1 + subs r5, #1 + cmp r5, #0 + bge _08067D2C + movs r0, #0xff + lsls r0, r0, #1 + adds r1, r6, #0 + bl __divsi3 + add r1, sp, #0x10 + strh r0, [r1] + movs r4, #1 + movs r5, #0 +_08067D50: + mov r0, r8 + ands r0, r4 + cmp r0, #0 + beq _08067D64 + adds r1, r5, #0 + adds r1, #0x1a + adds r0, r7, #0 + add r2, sp, #0x10 + bl SetMonData +_08067D64: + lsls r0, r4, #0x19 + lsrs r4, r0, #0x18 + adds r5, #1 + cmp r5, #5 + ble _08067D50 + adds r0, r7, #0 + bl CalculateMonStats + add sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end CreateMonWithEVSpread + + thumb_func_start CreateBattleTowerMon +CreateBattleTowerMon: @ 0x08067D80 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + adds r7, r0, #0 + adds r6, r1, #0 + ldrh r1, [r6] + ldrb r2, [r6, #0xc] + movs r3, #1 + str r3, [sp] + ldr r0, [r6, #0x1c] + str r0, [sp, #4] + str r3, [sp, #8] + ldr r0, [r6, #0x14] + str r0, [sp, #0xc] + adds r0, r7, #0 + movs r3, #0 + bl CreateMon + movs r5, #0 + adds r4, r6, #4 +_08067DA6: + ldrh r1, [r4] + lsls r2, r5, #0x18 + lsrs r2, r2, #0x18 + adds r0, r7, #0 + bl SetMonMoveSlot + adds r4, #2 + adds r5, #1 + cmp r5, #3 + ble _08067DA6 + adds r2, r6, #0 + adds r2, #0xd + adds r0, r7, #0 + movs r1, #0x15 + bl SetMonData + adds r2, r6, #2 + adds r0, r7, #0 + movs r1, #0xc + bl SetMonData + adds r2, r6, #0 + adds r2, #0x20 + adds r0, r7, #0 + movs r1, #2 + bl SetMonData + adds r2, r6, #0 + adds r2, #0x2b + adds r0, r7, #0 + movs r1, #0x20 + bl SetMonData + adds r2, r6, #0 + adds r2, #0xe + adds r0, r7, #0 + movs r1, #0x1a + bl SetMonData + adds r2, r6, #0 + adds r2, #0xf + adds r0, r7, #0 + movs r1, #0x1b + bl SetMonData + adds r2, r6, #0 + adds r2, #0x10 + adds r0, r7, #0 + movs r1, #0x1c + bl SetMonData + adds r2, r6, #0 + adds r2, #0x11 + adds r0, r7, #0 + movs r1, #0x1d + bl SetMonData + adds r2, r6, #0 + adds r2, #0x12 + adds r0, r7, #0 + movs r1, #0x1e + bl SetMonData + adds r2, r6, #0 + adds r2, #0x13 + adds r0, r7, #0 + movs r1, #0x1f + bl SetMonData + ldrb r0, [r6, #0x1b] + lsrs r0, r0, #7 + add r1, sp, #0x10 + strb r0, [r1] + adds r0, r7, #0 + movs r1, #0x2e + add r2, sp, #0x10 + bl SetMonData + add r1, sp, #0x10 + ldrb r0, [r6, #0x18] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r7, #0 + movs r1, #0x27 + add r2, sp, #0x10 + bl SetMonData + add r1, sp, #0x10 + ldrh r0, [r6, #0x18] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r7, #0 + movs r1, #0x28 + add r2, sp, #0x10 + bl SetMonData + add r1, sp, #0x10 + ldrb r0, [r6, #0x19] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r7, #0 + movs r1, #0x29 + add r2, sp, #0x10 + bl SetMonData + add r1, sp, #0x10 + ldr r0, [r6, #0x18] + lsls r0, r0, #0xc + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r7, #0 + movs r1, #0x2a + add r2, sp, #0x10 + bl SetMonData + add r1, sp, #0x10 + ldrh r0, [r6, #0x1a] + lsls r0, r0, #0x17 + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r7, #0 + movs r1, #0x2b + add r2, sp, #0x10 + bl SetMonData + add r1, sp, #0x10 + ldrb r0, [r6, #0x1b] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r7, #0 + movs r1, #0x2c + add r2, sp, #0x10 + bl SetMonData + adds r0, r7, #0 + bl GiveMonInitialMoveset + adds r0, r7, #0 + bl CalculateMonStats + add sp, #0x14 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CreateBattleTowerMon + + thumb_func_start CreateBattleTowerMon2 +CreateBattleTowerMon2: @ 0x08067ED0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x30 + adds r7, r0, #0 + adds r5, r1, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r0, _08067F04 + ldr r0, [r0] + ldr r1, _08067F08 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _08067F0C + lsls r0, r1, #0x1e + lsrs r0, r0, #0x1e + bl GetFrontierEnemyMonLevel + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + b _08067F14 + .align 2, 0 +_08067F04: .4byte 0x03005AF0 +_08067F08: .4byte 0x00000CA9 +_08067F0C: + movs r3, #0x32 + cmp r2, #0 + bne _08067F14 + ldrb r3, [r5, #0xc] +_08067F14: + ldrh r1, [r5] + movs r2, #1 + str r2, [sp] + ldr r0, [r5, #0x1c] + str r0, [sp, #4] + str r2, [sp, #8] + ldr r0, [r5, #0x14] + str r0, [sp, #0xc] + adds r0, r7, #0 + adds r2, r3, #0 + movs r3, #0 + bl CreateMon + movs r6, #0 + movs r0, #0xd + adds r0, r0, r5 + mov r8, r0 + adds r1, r5, #2 + mov sb, r1 + movs r0, #0x20 + adds r0, r0, r5 + mov sl, r0 + adds r1, #0x29 + str r1, [sp, #0x2c] + adds r0, r5, #0 + adds r0, #0xe + str r0, [sp, #0x14] + subs r1, #0x1c + str r1, [sp, #0x18] + adds r0, #2 + str r0, [sp, #0x1c] + adds r1, #2 + str r1, [sp, #0x20] + adds r0, #2 + str r0, [sp, #0x24] + adds r1, #2 + str r1, [sp, #0x28] + adds r4, r5, #4 +_08067F60: + ldrh r1, [r4] + lsls r2, r6, #0x18 + lsrs r2, r2, #0x18 + adds r0, r7, #0 + bl SetMonMoveSlot + adds r4, #2 + adds r6, #1 + cmp r6, #3 + ble _08067F60 + adds r0, r7, #0 + movs r1, #0x15 + mov r2, r8 + bl SetMonData + adds r0, r7, #0 + movs r1, #0xc + mov r2, sb + bl SetMonData + adds r0, r7, #0 + movs r1, #2 + mov r2, sl + bl SetMonData + adds r0, r7, #0 + movs r1, #0x20 + ldr r2, [sp, #0x2c] + bl SetMonData + adds r0, r7, #0 + movs r1, #0x1a + ldr r2, [sp, #0x14] + bl SetMonData + adds r0, r7, #0 + movs r1, #0x1b + ldr r2, [sp, #0x18] + bl SetMonData + adds r0, r7, #0 + movs r1, #0x1c + ldr r2, [sp, #0x1c] + bl SetMonData + adds r0, r7, #0 + movs r1, #0x1d + ldr r2, [sp, #0x20] + bl SetMonData + adds r0, r7, #0 + movs r1, #0x1e + ldr r2, [sp, #0x24] + bl SetMonData + adds r0, r7, #0 + movs r1, #0x1f + ldr r2, [sp, #0x28] + bl SetMonData + ldrb r0, [r5, #0x1b] + lsrs r0, r0, #7 + add r1, sp, #0x10 + strb r0, [r1] + adds r0, r7, #0 + movs r1, #0x2e + add r2, sp, #0x10 + bl SetMonData + add r1, sp, #0x10 + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r7, #0 + movs r1, #0x27 + add r2, sp, #0x10 + bl SetMonData + add r1, sp, #0x10 + ldrh r0, [r5, #0x18] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r7, #0 + movs r1, #0x28 + add r2, sp, #0x10 + bl SetMonData + add r1, sp, #0x10 + ldrb r0, [r5, #0x19] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r7, #0 + movs r1, #0x29 + add r2, sp, #0x10 + bl SetMonData + add r1, sp, #0x10 + ldr r0, [r5, #0x18] + lsls r0, r0, #0xc + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r7, #0 + movs r1, #0x2a + add r2, sp, #0x10 + bl SetMonData + add r1, sp, #0x10 + ldrh r0, [r5, #0x1a] + lsls r0, r0, #0x17 + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r7, #0 + movs r1, #0x2b + add r2, sp, #0x10 + bl SetMonData + add r1, sp, #0x10 + ldrb r0, [r5, #0x1b] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + strb r0, [r1] + adds r0, r7, #0 + movs r1, #0x2c + add r2, sp, #0x10 + bl SetMonData + adds r0, r7, #0 + bl GiveMonInitialMoveset + adds r0, r7, #0 + bl CalculateMonStats + add sp, #0x30 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CreateBattleTowerMon2 + + thumb_func_start CreateApprenticeMon +CreateApprenticeMon: @ 0x08068080 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x14 + adds r7, r0, #0 + mov sb, r1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r6, _08068170 + ldrb r0, [r1] + lsls r5, r0, #0x1b + lsrs r3, r5, #0x1b + lsls r1, r3, #1 + adds r1, r1, r3 + lsls r1, r1, #4 + adds r1, r1, r6 + ldrh r1, [r1, #8] + mov r8, r1 + lsls r1, r3, #1 + adds r1, r1, r3 + lsls r1, r1, #4 + adds r1, r1, r6 + ldrh r4, [r1, #8] + lsrs r4, r4, #8 + adds r5, r3, #0 + lsls r1, r5, #1 + adds r1, r1, r5 + lsls r1, r1, #4 + adds r1, r1, r6 + ldrb r1, [r1, #8] + lsls r1, r1, #8 + lsls r5, r2, #1 + adds r5, r5, r2 + lsls r5, r5, #2 + mov r2, sb + adds r6, r2, r5 + orrs r4, r1 + ldrh r1, [r6, #4] + adds r4, r4, r1 + ldrb r1, [r2, #2] + adds r4, r4, r1 + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1e + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetFrontierEnemyMonLevel + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrh r1, [r6, #4] + movs r0, #1 + str r0, [sp] + str r4, [sp, #4] + str r0, [sp, #8] + mov r0, r8 + str r0, [sp, #0xc] + adds r0, r7, #0 + movs r3, #0x1f + bl CreateMon + mov r1, sb + adds r2, r5, r1 + adds r2, #0xe + adds r0, r7, #0 + movs r1, #0xc + bl SetMonData + movs r4, #0 + mov r6, sb + adds r6, #6 +_08068112: + adds r0, r6, r5 + ldrh r1, [r0] + lsls r2, r4, #0x18 + lsrs r2, r2, #0x18 + adds r0, r7, #0 + bl SetMonMoveSlot + adds r5, #2 + adds r4, #1 + cmp r4, #3 + ble _08068112 + movs r1, #0x55 + add r0, sp, #0x10 + strh r1, [r0] + movs r4, #0 +_08068130: + adds r1, r4, #0 + adds r1, #0x1a + adds r0, r7, #0 + add r2, sp, #0x10 + bl SetMonData + adds r4, #1 + cmp r4, #5 + ble _08068130 + mov r2, sb + ldrb r0, [r2] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1b + lsls r2, r0, #1 + adds r2, r2, r0 + lsls r2, r2, #4 + ldr r0, _08068170 + adds r2, r2, r0 + adds r0, r7, #0 + movs r1, #7 + bl SetMonData + adds r0, r7, #0 + bl CalculateMonStats + add sp, #0x14 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08068170: .4byte 0x085DC21C + thumb_func_end CreateApprenticeMon + + thumb_func_start CreateMonWithEVSpreadNatureOTID +CreateMonWithEVSpreadNatureOTID: @ 0x08068174 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + adds r7, r0, #0 + ldr r0, [sp, #0x38] + ldr r4, [sp, #0x3c] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp, #0x14] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sl, r2 + lsls r3, r3, #0x18 + lsrs r5, r3, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r8, r4 + movs r6, #0 +_080681A4: + bl Random + adds r4, r0, #0 + bl Random + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r0, r0, #0x10 + orrs r4, r0 + adds r0, r4, #0 + bl GetNatureFromPersonality + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r5, r0 + bne _080681A4 + movs r0, #1 + str r0, [sp] + str r4, [sp, #4] + str r0, [sp, #8] + ldr r0, [sp, #0x40] + str r0, [sp, #0xc] + adds r0, r7, #0 + ldr r1, [sp, #0x14] + mov r2, sl + mov r3, sb + bl CreateMon + mov r5, r8 + movs r1, #1 + movs r4, #5 +_080681E2: + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _080681EC + adds r6, #1 +_080681EC: + lsrs r5, r5, #1 + subs r4, #1 + cmp r4, #0 + bge _080681E2 + movs r0, #0xff + lsls r0, r0, #1 + adds r1, r6, #0 + bl __divsi3 + add r1, sp, #0x10 + strh r0, [r1] + movs r5, #1 + movs r4, #0 +_08068206: + mov r0, r8 + ands r0, r5 + cmp r0, #0 + beq _0806821A + adds r1, r4, #0 + adds r1, #0x1a + adds r0, r7, #0 + add r2, sp, #0x10 + bl SetMonData +_0806821A: + lsls r0, r5, #0x19 + lsrs r5, r0, #0x18 + adds r4, #1 + cmp r4, #5 + ble _08068206 + adds r0, r7, #0 + bl CalculateMonStats + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CreateMonWithEVSpreadNatureOTID + + thumb_func_start sub_0806823C +sub_0806823C: @ 0x0806823C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + adds r6, r1, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + strh r0, [r6] + adds r0, r7, #0 + movs r1, #0xc + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xaf + bne _08068266 + movs r0, #0 +_08068266: + strh r0, [r6, #2] + movs r5, #0 + movs r0, #0x2b + adds r0, r0, r6 + mov r8, r0 + movs r1, #0x20 + adds r1, r1, r6 + mov sb, r1 + adds r4, r6, #4 +_08068278: + adds r1, r5, #0 + adds r1, #0xd + adds r0, r7, #0 + movs r2, #0 + bl GetMonData + strh r0, [r4] + adds r4, #2 + adds r5, #1 + cmp r5, #3 + ble _08068278 + adds r0, r7, #0 + movs r1, #0x38 + movs r2, #0 + bl GetMonData + strb r0, [r6, #0xc] + adds r0, r7, #0 + movs r1, #0x15 + movs r2, #0 + bl GetMonData + strb r0, [r6, #0xd] + adds r0, r7, #0 + movs r1, #1 + movs r2, #0 + bl GetMonData + str r0, [r6, #0x14] + adds r0, r7, #0 + movs r1, #0x1a + movs r2, #0 + bl GetMonData + strb r0, [r6, #0xe] + adds r0, r7, #0 + movs r1, #0x1b + movs r2, #0 + bl GetMonData + strb r0, [r6, #0xf] + adds r0, r7, #0 + movs r1, #0x1c + movs r2, #0 + bl GetMonData + strb r0, [r6, #0x10] + adds r0, r7, #0 + movs r1, #0x1d + movs r2, #0 + bl GetMonData + strb r0, [r6, #0x11] + adds r0, r7, #0 + movs r1, #0x1e + movs r2, #0 + bl GetMonData + strb r0, [r6, #0x12] + adds r0, r7, #0 + movs r1, #0x1f + movs r2, #0 + bl GetMonData + strb r0, [r6, #0x13] + adds r0, r7, #0 + movs r1, #0x20 + movs r2, #0 + bl GetMonData + mov r1, r8 + strb r0, [r1] + adds r0, r7, #0 + movs r1, #0x27 + movs r2, #0 + bl GetMonData + movs r4, #0x1f + ands r0, r4 + ldrb r2, [r6, #0x18] + movs r1, #0x20 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r6, #0x18] + adds r0, r7, #0 + movs r1, #0x28 + movs r2, #0 + bl GetMonData + movs r5, #0x1f + ands r0, r5 + lsls r0, r0, #5 + ldrh r2, [r6, #0x18] + ldr r1, _080683DC + ands r1, r2 + orrs r1, r0 + strh r1, [r6, #0x18] + adds r0, r7, #0 + movs r1, #0x29 + movs r2, #0 + bl GetMonData + ands r0, r4 + lsls r0, r0, #2 + ldrb r2, [r6, #0x19] + movs r1, #0x7d + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r6, #0x19] + adds r0, r7, #0 + movs r1, #0x2a + movs r2, #0 + bl GetMonData + movs r1, #0x1f + ands r1, r0 + lsls r1, r1, #0xf + ldr r0, [r6, #0x18] + ldr r2, _080683E0 + ands r0, r2 + orrs r0, r1 + str r0, [r6, #0x18] + adds r0, r7, #0 + movs r1, #0x2b + movs r2, #0 + bl GetMonData + ands r0, r5 + lsls r0, r0, #4 + ldrh r2, [r6, #0x1a] + ldr r1, _080683E4 + ands r1, r2 + orrs r1, r0 + strh r1, [r6, #0x1a] + adds r0, r7, #0 + movs r1, #0x2c + movs r2, #0 + bl GetMonData + ands r0, r4 + lsls r0, r0, #1 + ldrb r2, [r6, #0x1b] + movs r1, #0x3f + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r6, #0x1b] + adds r0, r7, #0 + movs r1, #0x2e + movs r2, #0 + bl GetMonData + lsls r0, r0, #7 + ldrb r2, [r6, #0x1b] + movs r1, #0x7f + ands r1, r2 + orrs r1, r0 + strb r1, [r6, #0x1b] + adds r0, r7, #0 + movs r1, #0 + movs r2, #0 + bl GetMonData + str r0, [r6, #0x1c] + adds r0, r7, #0 + movs r1, #2 + mov r2, sb + bl GetMonData + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080683DC: .4byte 0xFFFFFC1F +_080683E0: .4byte 0xFFF07FFF +_080683E4: .4byte 0xFFFFFE0F + thumb_func_end sub_0806823C + + thumb_func_start CreateObedientMon +CreateObedientMon: @ 0x080683E8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x14 + mov r8, r0 + ldr r4, [sp, #0x2c] + ldr r6, [sp, #0x30] + ldr r5, [sp, #0x34] + ldr r7, [sp, #0x38] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r0, #1 + str r0, [sp, #0x10] + str r4, [sp] + str r6, [sp, #4] + str r5, [sp, #8] + str r7, [sp, #0xc] + mov r0, r8 + bl CreateMon + mov r0, r8 + movs r1, #0x50 + add r2, sp, #0x10 + bl SetMonData + add sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CreateObedientMon + + thumb_func_start sub_08068438 +sub_08068438: @ 0x08068438 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + cmp r0, #5 + bhi _0806850E + lsls r0, r0, #2 + ldr r1, _08068450 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08068450: .4byte 0x08068454 +_08068454: @ jump table + .4byte _0806850E @ case 0 + .4byte _0806846C @ case 1 + .4byte _08068540 @ case 2 + .4byte _08068498 @ case 3 + .4byte _08068540 @ case 4 + .4byte _080684D0 @ case 5 +_0806846C: + ldr r0, _0806848C + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0806850E + ldr r0, _08068490 + ldr r1, _08068494 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806850E + b _080684F6 + .align 2, 0 +_0806848C: .4byte 0x02022C90 +_08068490: .4byte 0x03002360 +_08068494: .4byte 0x00000439 +_08068498: + ldr r0, _080684C4 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0806850E + ldr r0, _080684C8 + ldr r1, _080684CC + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806850E + cmp r5, #1 + beq _08068540 + cmp r5, #4 + beq _08068540 + cmp r5, #5 + beq _08068540 + b _0806850E + .align 2, 0 +_080684C4: .4byte 0x02022C90 +_080684C8: .4byte 0x03002360 +_080684CC: .4byte 0x00000439 +_080684D0: + ldr r0, _08068514 + ldr r2, [r0] + movs r3, #2 + adds r0, r2, #0 + ands r0, r3 + cmp r0, #0 + beq _08068524 + ldr r0, _08068518 + ldr r1, _0806851C + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _0806850E + movs r0, #0x40 + ands r2, r0 + cmp r2, #0 + beq _08068534 +_080684F6: + ldr r4, _08068520 + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrh r0, [r1, #0x18] + cmp r0, r5 + bne _08068540 +_0806850E: + movs r0, #0 + b _08068542 + .align 2, 0 +_08068514: .4byte 0x02022C90 +_08068518: .4byte 0x03002360 +_0806851C: .4byte 0x00000439 +_08068520: .4byte 0x020226A0 +_08068524: + ldr r0, _08068548 + ldr r1, _0806854C + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _0806850E +_08068534: + adds r0, r5, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0806850E +_08068540: + movs r0, #1 +_08068542: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08068548: .4byte 0x03002360 +_0806854C: .4byte 0x00000439 + thumb_func_end sub_08068438 + + thumb_func_start GetDeoxysStat +GetDeoxysStat: @ 0x08068550 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + ldr r0, _08068578 + ldr r0, [r0] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + bne _08068574 + adds r0, r5, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + movs r1, #0xcd + lsls r1, r1, #1 + cmp r0, r1 + beq _0806857C +_08068574: + movs r0, #0 + b _080685DA + .align 2, 0 +_08068578: .4byte 0x02022C90 +_0806857C: + adds r1, r6, #0 + adds r1, #0x27 + adds r0, r5, #0 + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + adds r1, r6, #0 + adds r1, #0x1a + adds r0, r5, #0 + movs r2, #0 + bl GetMonData + ldr r2, _080685E0 + lsls r1, r6, #1 + adds r1, r1, r2 + ldrh r1, [r1] + lsls r1, r1, #1 + adds r1, r1, r4 + cmp r0, #0 + bge _080685A8 + adds r0, #3 +_080685A8: + asrs r0, r0, #2 + adds r0, r1, r0 + adds r1, r5, #0 + adds r1, #0x54 + ldrb r1, [r1] + muls r0, r1, r0 + movs r1, #0x64 + bl __divsi3 + adds r0, #5 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r5, #0 + bl GetNature + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r6, #0x18 + lsrs r2, r2, #0x18 + adds r1, r4, #0 + bl ModifyStatByNature + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r4, #0 +_080685DA: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080685E0: .4byte 0x082FA6D6 + thumb_func_end GetDeoxysStat + + thumb_func_start SetDeoxysStats +SetDeoxysStats: @ 0x080685E4 + push {r4, r5, lr} + sub sp, #4 + movs r5, #0 +_080685EA: + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _08068684 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + movs r1, #0xcd + lsls r1, r1, #1 + cmp r0, r1 + bne _08068674 + adds r0, r4, #0 + movs r1, #0x3b + movs r2, #0 + bl GetMonData + str r0, [sp] + adds r0, r4, #0 + movs r1, #0x3b + mov r2, sp + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3c + movs r2, #0 + bl GetMonData + str r0, [sp] + adds r0, r4, #0 + movs r1, #0x3c + mov r2, sp + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3d + movs r2, #0 + bl GetMonData + str r0, [sp] + adds r0, r4, #0 + movs r1, #0x3d + mov r2, sp + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3e + movs r2, #0 + bl GetMonData + str r0, [sp] + adds r0, r4, #0 + movs r1, #0x3e + mov r2, sp + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3f + movs r2, #0 + bl GetMonData + str r0, [sp] + adds r0, r4, #0 + movs r1, #0x3f + mov r2, sp + bl SetMonData +_08068674: + adds r5, #1 + cmp r5, #5 + ble _080685EA + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08068684: .4byte 0x02024190 + thumb_func_end SetDeoxysStats + + thumb_func_start sub_08068688 +sub_08068688: @ 0x08068688 + push {lr} + ldr r0, _080686A4 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x12 + ands r0, r1 + cmp r0, #0 + beq _080686AC + ldr r0, _080686A8 + ldrb r1, [r0] + movs r0, #1 + eors r0, r1 + b _080686B8 + .align 2, 0 +_080686A4: .4byte 0x02022C90 +_080686A8: .4byte 0x0203C480 +_080686AC: + bl GetMultiplayerId + movs r1, #1 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_080686B8: + ldr r3, _080686E8 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r0, r3, #4 + adds r0, r1, r0 + ldr r2, [r0] + movs r0, #7 + ands r2, r0 + adds r1, r1, r3 + ldrb r0, [r1, #0x13] + lsls r0, r0, #3 + orrs r2, r0 + ldr r0, _080686EC + lsls r2, r2, #1 + adds r2, r2, r0 + ldrh r0, [r2] + bl FacilityClassToPicIndex + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 +_080686E8: .4byte 0x020226A0 +_080686EC: .4byte 0x082FA6E2 + thumb_func_end sub_08068688 + + thumb_func_start sub_080686F0 +sub_080686F0: @ 0x080686F0 + push {lr} + ldr r0, _0806870C + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x12 + ands r0, r1 + cmp r0, #0 + beq _08068714 + ldr r0, _08068710 + ldrb r1, [r0] + movs r0, #1 + eors r0, r1 + b _08068720 + .align 2, 0 +_0806870C: .4byte 0x02022C90 +_08068710: .4byte 0x0203C480 +_08068714: + bl GetMultiplayerId + movs r1, #1 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_08068720: + ldr r3, _0806874C + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r0, r3, #4 + adds r0, r1, r0 + ldr r2, [r0] + movs r0, #7 + ands r2, r0 + adds r1, r1, r3 + ldrb r0, [r1, #0x13] + lsls r0, r0, #3 + orrs r2, r0 + ldr r1, _08068750 + ldr r0, _08068754 + lsls r2, r2, #1 + adds r2, r2, r0 + ldrh r0, [r2] + adds r0, r0, r1 + ldrb r0, [r0] + pop {r1} + bx r1 + .align 2, 0 +_0806874C: .4byte 0x020226A0 +_08068750: .4byte 0x082EFF52 +_08068754: .4byte 0x082FA6E2 + thumb_func_end sub_080686F0 + + thumb_func_start CreateObedientEnemyMon +CreateObedientEnemyMon: @ 0x08068758 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + ldr r0, _080687A8 + ldrh r5, [r0] + ldr r0, _080687AC + ldrh r4, [r0] + ldr r0, _080687B0 + ldrh r6, [r0] + bl ZeroEnemyPartyMons + ldr r7, _080687B4 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + adds r0, r7, #0 + adds r1, r5, #0 + adds r2, r4, #0 + movs r3, #0x20 + bl CreateObedientMon + cmp r6, #0 + beq _080687A0 + add r0, sp, #0x10 + strb r6, [r0] + adds r1, r0, #0 + asrs r0, r6, #8 + strb r0, [r1, #1] + adds r0, r7, #0 + movs r1, #0xc + add r2, sp, #0x10 + bl SetMonData +_080687A0: + add sp, #0x14 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080687A8: .4byte 0x02037280 +_080687AC: .4byte 0x02037282 +_080687B0: .4byte 0x02037284 +_080687B4: .4byte 0x020243E8 + thumb_func_end CreateObedientEnemyMon + + thumb_func_start CalculateBoxMonChecksum +CalculateBoxMonChecksum: @ 0x080687B8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + movs r6, #0 + ldr r1, [r4] + movs r2, #0 + bl GetSubstruct + adds r5, r0, #0 + ldr r1, [r4] + adds r0, r4, #0 + movs r2, #1 + bl GetSubstruct + adds r7, r0, #0 + ldr r1, [r4] + adds r0, r4, #0 + movs r2, #2 + bl GetSubstruct + mov r8, r0 + ldr r1, [r4] + adds r0, r4, #0 + movs r2, #3 + bl GetSubstruct + adds r3, r0, #0 + movs r1, #5 +_080687F2: + ldrh r0, [r5] + adds r0, r6, r0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r5, #2 + subs r1, #1 + cmp r1, #0 + bge _080687F2 + adds r2, r7, #0 + movs r1, #5 +_08068806: + ldrh r0, [r2] + adds r0, r6, r0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r2, #2 + subs r1, #1 + cmp r1, #0 + bge _08068806 + mov r2, r8 + movs r1, #5 +_0806881A: + ldrh r0, [r2] + adds r0, r6, r0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r2, #2 + subs r1, #1 + cmp r1, #0 + bge _0806881A + adds r2, r3, #0 + movs r1, #5 +_0806882E: + ldrh r0, [r2] + adds r0, r6, r0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r2, #2 + subs r1, #1 + cmp r1, #0 + bge _0806882E + adds r0, r6, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CalculateBoxMonChecksum + + thumb_func_start CalculateMonStats +CalculateMonStats: @ 0x0806884C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x40 + adds r5, r0, #0 + movs r1, #0x3a + movs r2, #0 + bl GetMonData + mov r8, r0 + adds r0, r5, #0 + movs r1, #0x39 + movs r2, #0 + bl GetMonData + str r0, [sp, #0x1c] + adds r0, r5, #0 + movs r1, #0x27 + movs r2, #0 + bl GetMonData + adds r6, r0, #0 + adds r0, r5, #0 + movs r1, #0x1a + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + adds r0, r5, #0 + movs r1, #0x28 + movs r2, #0 + bl GetMonData + mov sl, r0 + adds r0, r5, #0 + movs r1, #0x1b + movs r2, #0 + bl GetMonData + mov sb, r0 + adds r0, r5, #0 + movs r1, #0x29 + movs r2, #0 + bl GetMonData + str r0, [sp, #0x20] + adds r0, r5, #0 + movs r1, #0x1c + movs r2, #0 + bl GetMonData + str r0, [sp, #0x24] + adds r0, r5, #0 + movs r1, #0x2a + movs r2, #0 + bl GetMonData + str r0, [sp, #0x28] + adds r0, r5, #0 + movs r1, #0x1d + movs r2, #0 + bl GetMonData + str r0, [sp, #0x2c] + adds r0, r5, #0 + movs r1, #0x2b + movs r2, #0 + bl GetMonData + str r0, [sp, #0x30] + adds r0, r5, #0 + movs r1, #0x1e + movs r2, #0 + bl GetMonData + str r0, [sp, #0x34] + adds r0, r5, #0 + movs r1, #0x2c + movs r2, #0 + bl GetMonData + str r0, [sp, #0x38] + adds r0, r5, #0 + movs r1, #0x1f + movs r2, #0 + bl GetMonData + str r0, [sp, #0x3c] + adds r0, r5, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + adds r0, r5, #0 + bl GetLevelFromMonExp + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + adds r0, r5, #0 + movs r1, #0x38 + mov r2, sp + bl SetMonData + ldr r0, _08068934 + cmp r7, r0 + bne _08068938 + movs r0, #1 + str r0, [sp, #4] + lsls r6, r7, #3 + b _08068966 + .align 2, 0 +_08068934: .4byte 0x0000012F +_08068938: + ldr r1, _08068B04 + lsls r2, r7, #3 + subs r0, r2, r7 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r1, r0, r6 + adds r0, r4, #0 + adds r6, r2, #0 + cmp r0, #0 + bge _08068952 + adds r0, #3 +_08068952: + asrs r0, r0, #2 + adds r0, r1, r0 + ldr r4, [sp] + muls r0, r4, r0 + movs r1, #0x64 + bl __divsi3 + adds r0, r0, r4 + adds r0, #0xa + str r0, [sp, #4] +_08068966: + ldr r1, _08068B08 + add r2, sp, #4 + ldrb r0, [r2] + mov r3, r8 + subs r0, r0, r3 + adds r1, #0x23 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806897E + movs r0, #1 + strb r0, [r1] +_0806897E: + adds r0, r5, #0 + movs r1, #0x3a + bl SetMonData + ldr r0, _08068B04 + subs r1, r6, r7 + lsls r1, r1, #2 + adds r6, r1, r0 + ldrb r0, [r6, #1] + lsls r0, r0, #1 + mov r2, sl + adds r1, r0, r2 + mov r0, sb + cmp r0, #0 + bge _0806899E + adds r0, #3 +_0806899E: + asrs r0, r0, #2 + adds r0, r1, r0 + ldr r1, [sp] + muls r0, r1, r0 + movs r1, #0x64 + bl __divsi3 + adds r0, #5 + str r0, [sp, #8] + adds r0, r5, #0 + bl GetNature + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add r4, sp, #8 + ldrh r1, [r4] + movs r2, #1 + bl ModifyStatByNature + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #8] + adds r0, r5, #0 + movs r1, #0x3b + adds r2, r4, #0 + bl SetMonData + ldrb r0, [r6, #2] + lsls r0, r0, #1 + ldr r3, [sp, #0x20] + adds r1, r0, r3 + ldr r0, [sp, #0x24] + cmp r0, #0 + bge _080689E4 + adds r0, #3 +_080689E4: + asrs r0, r0, #2 + adds r0, r1, r0 + ldr r1, [sp] + muls r0, r1, r0 + movs r1, #0x64 + bl __divsi3 + adds r0, #5 + str r0, [sp, #0xc] + adds r0, r5, #0 + bl GetNature + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add r4, sp, #0xc + ldrh r1, [r4] + movs r2, #2 + bl ModifyStatByNature + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0xc] + adds r0, r5, #0 + movs r1, #0x3c + adds r2, r4, #0 + bl SetMonData + ldrb r0, [r6, #3] + lsls r0, r0, #1 + ldr r2, [sp, #0x28] + adds r1, r0, r2 + ldr r0, [sp, #0x2c] + cmp r0, #0 + bge _08068A2A + adds r0, #3 +_08068A2A: + asrs r0, r0, #2 + adds r0, r1, r0 + ldr r1, [sp] + muls r0, r1, r0 + movs r1, #0x64 + bl __divsi3 + adds r0, #5 + str r0, [sp, #0x10] + adds r0, r5, #0 + bl GetNature + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add r4, sp, #0x10 + ldrh r1, [r4] + movs r2, #3 + bl ModifyStatByNature + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x10] + adds r0, r5, #0 + movs r1, #0x3d + adds r2, r4, #0 + bl SetMonData + ldrb r0, [r6, #4] + lsls r0, r0, #1 + ldr r3, [sp, #0x30] + adds r1, r0, r3 + ldr r0, [sp, #0x34] + cmp r0, #0 + bge _08068A70 + adds r0, #3 +_08068A70: + asrs r0, r0, #2 + adds r0, r1, r0 + ldr r1, [sp] + muls r0, r1, r0 + movs r1, #0x64 + bl __divsi3 + adds r0, #5 + str r0, [sp, #0x14] + adds r0, r5, #0 + bl GetNature + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add r4, sp, #0x14 + ldrh r1, [r4] + movs r2, #4 + bl ModifyStatByNature + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x14] + adds r0, r5, #0 + movs r1, #0x3e + adds r2, r4, #0 + bl SetMonData + ldrb r0, [r6, #5] + lsls r0, r0, #1 + ldr r2, [sp, #0x38] + adds r1, r0, r2 + ldr r0, [sp, #0x3c] + cmp r0, #0 + bge _08068AB6 + adds r0, #3 +_08068AB6: + asrs r0, r0, #2 + adds r0, r1, r0 + ldr r1, [sp] + muls r0, r1, r0 + movs r1, #0x64 + bl __divsi3 + adds r0, #5 + str r0, [sp, #0x18] + adds r0, r5, #0 + bl GetNature + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add r4, sp, #0x18 + ldrh r1, [r4] + movs r2, #5 + bl ModifyStatByNature + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x18] + adds r0, r5, #0 + movs r1, #0x3f + adds r2, r4, #0 + bl SetMonData + ldr r0, _08068B0C + cmp r7, r0 + bne _08068B10 + ldr r0, [sp, #0x1c] + cmp r0, #0 + bne _08068AFE + mov r3, r8 + cmp r3, #0 + bne _08068B34 +_08068AFE: + movs r0, #1 + b _08068B28 + .align 2, 0 +_08068B04: .4byte 0x082F0D54 +_08068B08: .4byte 0x02024118 +_08068B0C: .4byte 0x0000012F +_08068B10: + ldr r1, [sp, #0x1c] + cmp r1, #0 + bne _08068B20 + mov r0, r8 + cmp r0, #0 + bne _08068B34 + ldr r0, [sp, #4] + b _08068B28 +_08068B20: + ldr r0, [sp, #4] + mov r2, r8 + subs r0, r0, r2 + adds r0, r1, r0 +_08068B28: + str r0, [sp, #0x1c] + add r2, sp, #0x1c + adds r0, r5, #0 + movs r1, #0x39 + bl SetMonData +_08068B34: + add sp, #0x40 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end CalculateMonStats + + thumb_func_start BoxMonToMon +BoxMonToMon: @ 0x08068B44 + push {r4, lr} + sub sp, #4 + adds r2, r0, #0 + adds r4, r1, #0 + movs r0, #0 + str r0, [sp] + adds r0, r4, #0 + adds r1, r2, #0 + movs r2, #0x50 + bl memcpy + adds r0, r4, #0 + movs r1, #0x37 + mov r2, sp + bl SetMonData + adds r0, r4, #0 + movs r1, #0x39 + mov r2, sp + bl SetMonData + adds r0, r4, #0 + movs r1, #0x3a + mov r2, sp + bl SetMonData + movs r0, #0xff + str r0, [sp] + adds r0, r4, #0 + movs r1, #0x40 + mov r2, sp + bl SetMonData + adds r0, r4, #0 + bl CalculateMonStats + add sp, #4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end BoxMonToMon + + thumb_func_start GetLevelFromMonExp +GetLevelFromMonExp: @ 0x08068B94 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + movs r1, #0x19 + movs r2, #0 + bl GetMonData + adds r3, r0, #0 + movs r2, #1 + ldr r6, _08068BF8 + ldr r1, _08068BFC + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + adds r1, r0, r1 + ldrb r0, [r1, #0x13] + movs r5, #0xca + lsls r5, r5, #1 + muls r0, r5, r0 + adds r0, #4 + adds r0, r0, r6 + ldr r0, [r0] + cmp r0, r3 + bhi _08068BEA + adds r4, r1, #0 +_08068BD4: + adds r2, #1 + cmp r2, #0x64 + bgt _08068BEA + lsls r1, r2, #2 + ldrb r0, [r4, #0x13] + muls r0, r5, r0 + adds r1, r1, r0 + adds r1, r1, r6 + ldr r0, [r1] + cmp r0, r3 + bls _08068BD4 +_08068BEA: + subs r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08068BF8: .4byte 0x082F00B4 +_08068BFC: .4byte 0x082F0D54 + thumb_func_end GetLevelFromMonExp + + thumb_func_start GetLevelFromBoxMonExp +GetLevelFromBoxMonExp: @ 0x08068C00 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r1, #0xb + movs r2, #0 + bl GetBoxMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + movs r1, #0x19 + movs r2, #0 + bl GetBoxMonData + adds r3, r0, #0 + movs r2, #1 + ldr r6, _08068C64 + ldr r1, _08068C68 + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + adds r1, r0, r1 + ldrb r0, [r1, #0x13] + movs r5, #0xca + lsls r5, r5, #1 + muls r0, r5, r0 + adds r0, #4 + adds r0, r0, r6 + ldr r0, [r0] + cmp r0, r3 + bhi _08068C56 + adds r4, r1, #0 +_08068C40: + adds r2, #1 + cmp r2, #0x64 + bgt _08068C56 + lsls r1, r2, #2 + ldrb r0, [r4, #0x13] + muls r0, r5, r0 + adds r1, r1, r0 + adds r1, r1, r6 + ldr r0, [r1] + cmp r0, r3 + bls _08068C40 +_08068C56: + subs r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08068C64: .4byte 0x082F00B4 +_08068C68: .4byte 0x082F0D54 + thumb_func_end GetLevelFromBoxMonExp + + thumb_func_start GiveMoveToMon +GiveMoveToMon: @ 0x08068C6C + push {lr} + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl GiveMoveToBoxMon + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GiveMoveToMon + + thumb_func_start GiveMoveToBoxMon +GiveMoveToBoxMon: @ 0x08068C80 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r7, r0, #0 + mov r0, sp + strh r1, [r0] + movs r5, #0 + mov r6, sp +_08068C8E: + adds r4, r5, #0 + adds r4, #0xd + adds r0, r7, #0 + adds r1, r4, #0 + movs r2, #0 + bl GetBoxMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + bne _08068CCC + adds r0, r7, #0 + adds r1, r4, #0 + mov r2, sp + bl SetBoxMonData + adds r1, r5, #0 + adds r1, #0x11 + ldrh r0, [r6] + lsls r2, r0, #1 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r0, _08068CC8 + adds r2, r2, r0 + adds r0, r7, #0 + bl SetBoxMonData + ldrh r0, [r6] + b _08068CE4 + .align 2, 0 +_08068CC8: .4byte 0x082ED224 +_08068CCC: + ldrh r1, [r6] + cmp r0, r1 + bne _08068CDC + ldr r0, _08068CD8 + b _08068CE4 + .align 2, 0 +_08068CD8: .4byte 0x0000FFFE +_08068CDC: + adds r5, #1 + cmp r5, #3 + ble _08068C8E + ldr r0, _08068CEC +_08068CE4: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08068CEC: .4byte 0x0000FFFF + thumb_func_end GiveMoveToBoxMon + + thumb_func_start GiveMoveToBattleMon +GiveMoveToBattleMon: @ 0x08068CF0 + push {r4, r5, lr} + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + movs r3, #0 + adds r5, r0, #0 + adds r5, #0x24 + ldr r2, _08068D1C + lsls r1, r4, #1 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r2, r1, r2 + adds r1, r0, #0 + adds r1, #0xc +_08068D0A: + ldrh r0, [r1] + cmp r0, #0 + bne _08068D20 + strh r4, [r1] + adds r1, r5, r3 + ldrb r0, [r2, #4] + strb r0, [r1] + adds r0, r4, #0 + b _08068D2A + .align 2, 0 +_08068D1C: .4byte 0x082ED220 +_08068D20: + adds r1, #2 + adds r3, #1 + cmp r3, #3 + ble _08068D0A + ldr r0, _08068D30 +_08068D2A: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08068D30: .4byte 0x0000FFFF + thumb_func_end GiveMoveToBattleMon + + thumb_func_start SetMonMoveSlot +SetMonMoveSlot: @ 0x08068D34 + push {r4, r5, lr} + sub sp, #4 + adds r5, r0, #0 + adds r4, r2, #0 + mov r0, sp + strh r1, [r0] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r1, r4, #0 + adds r1, #0xd + adds r0, r5, #0 + mov r2, sp + bl SetMonData + adds r4, #0x11 + mov r0, sp + ldrh r0, [r0] + lsls r2, r0, #1 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r0, _08068D70 + adds r2, r2, r0 + adds r0, r5, #0 + adds r1, r4, #0 + bl SetMonData + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08068D70: .4byte 0x082ED224 + thumb_func_end SetMonMoveSlot + + thumb_func_start SetBattleMonMoveSlot +SetBattleMonMoveSlot: @ 0x08068D74 + push {r4, lr} + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r4, r2, #1 + adds r3, r0, #0 + adds r3, #0xc + adds r3, r3, r4 + strh r1, [r3] + adds r0, #0x24 + adds r0, r0, r2 + ldr r3, _08068DA0 + lsls r2, r1, #1 + adds r2, r2, r1 + lsls r2, r2, #2 + adds r2, r2, r3 + ldrb r1, [r2, #4] + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08068DA0: .4byte 0x082ED220 + thumb_func_end SetBattleMonMoveSlot + + thumb_func_start MonRestorePP +MonRestorePP: @ 0x08068DA4 + push {lr} + bl GiveBoxMonInitialMoveset + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end MonRestorePP + + thumb_func_start GiveBoxMonInitialMoveset +GiveBoxMonInitialMoveset: @ 0x08068DB0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov r8, r0 + movs r1, #0xb + movs r2, #0 + bl GetBoxMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + mov r0, r8 + bl GetLevelFromBoxMonExp + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + ldr r0, _08068E4C + lsls r6, r4, #2 + adds r0, r6, r0 + ldr r0, [r0] + ldrh r1, [r0] + ldr r2, _08068E50 + lsrs r0, r2, #0x10 + cmp r1, r0 + beq _08068E3C + mov sb, r2 + movs r3, #0 +_08068DEE: + ldr r0, _08068E4C + adds r7, r6, r0 + ldr r0, [r7] + adds r0, r3, r0 + ldrh r2, [r0] + movs r1, #0xfe + lsls r1, r1, #8 + adds r0, r1, #0 + ands r0, r2 + mov r4, sl + lsls r1, r4, #9 + cmp r0, r1 + bgt _08068E3C + ldr r1, _08068E54 + adds r0, r1, #0 + adds r4, r0, #0 + ands r4, r2 + mov r0, r8 + adds r1, r4, #0 + str r3, [sp] + bl GiveMoveToBoxMon + lsls r0, r0, #0x10 + mov r1, sb + lsrs r5, r1, #0x10 + ldr r3, [sp] + cmp r0, sb + bne _08068E30 + mov r0, r8 + adds r1, r4, #0 + bl DeleteFirstMoveAndGiveMoveToBoxMon + ldr r3, [sp] +_08068E30: + adds r3, #2 + ldr r0, [r7] + adds r0, r3, r0 + ldrh r0, [r0] + cmp r0, r5 + bne _08068DEE +_08068E3C: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08068E4C: .4byte 0x082F9D04 +_08068E50: .4byte 0xFFFF0000 +_08068E54: .4byte 0x000001FF + thumb_func_end GiveBoxMonInitialMoveset + + thumb_func_start MonTryLearningNewMove +MonTryLearningNewMove: @ 0x08068E58 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov r8, r0 + lsls r4, r1, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + str r0, [sp] + mov r0, r8 + movs r1, #0xb + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + mov r0, r8 + movs r1, #0x38 + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + cmp r4, #0 + beq _08068EF0 + ldr r4, _08068EDC + mov r1, sp + ldrb r1, [r1] + strb r1, [r4] + ldr r2, _08068EE0 + mov r5, sb + lsls r3, r5, #2 + adds r5, r3, r2 + ldr r0, [r5] + ldrh r1, [r0] + movs r7, #0xfe + lsls r7, r7, #8 + adds r0, r7, #0 + ands r0, r1 + adds r6, r4, #0 + mov ip, r2 + mov r1, sl + lsls r4, r1, #9 + cmp r0, r4 + beq _08068F18 + adds r2, r6, #0 + ldr r0, _08068EE4 + mov ip, r0 + adds r6, r7, #0 + adds r3, r5, #0 +_08068EC4: + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + ldrb r0, [r2] + ldr r1, [r3] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + cmp r1, ip + bne _08068EE8 + movs r0, #0 + b _08068F44 + .align 2, 0 +_08068EDC: .4byte 0x0202418C +_08068EE0: .4byte 0x082F9D04 +_08068EE4: .4byte 0x0000FFFF +_08068EE8: + adds r0, r6, #0 + ands r0, r1 + cmp r0, r4 + bne _08068EC4 +_08068EF0: + ldr r3, _08068F54 + mov r1, sb + lsls r4, r1, #2 + adds r1, r4, r3 + ldr r2, _08068F58 + ldrb r0, [r2] + ldr r1, [r1] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0xfe + lsls r0, r0, #8 + ands r0, r1 + mov r5, sl + lsls r1, r5, #9 + adds r6, r2, #0 + mov ip, r3 + adds r3, r4, #0 + cmp r0, r1 + bne _08068F42 +_08068F18: + ldr r2, _08068F5C + mov r0, ip + adds r1, r3, r0 + ldrb r0, [r6] + ldr r1, [r1] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + ldr r0, _08068F60 + ands r0, r1 + strh r0, [r2] + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] + ldrh r1, [r2] + mov r0, r8 + bl GiveMoveToMon + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp] +_08068F42: + ldr r0, [sp] +_08068F44: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08068F54: .4byte 0x082F9D04 +_08068F58: .4byte 0x0202418C +_08068F5C: .4byte 0x02024186 +_08068F60: .4byte 0x000001FF + thumb_func_end MonTryLearningNewMove + + thumb_func_start DeleteFirstMoveAndGiveMoveToMon +DeleteFirstMoveAndGiveMoveToMon: @ 0x08068F64 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x10 + adds r6, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r8, r1 + movs r4, #0 + add r7, sp, #8 + add r0, sp, #0xc + mov sb, r0 + mov r5, sp +_08068F80: + adds r1, r4, #0 + adds r1, #0xe + adds r0, r6, #0 + movs r2, #0 + bl GetMonData + strh r0, [r5] + adds r1, r4, #0 + adds r1, #0x12 + adds r0, r6, #0 + movs r2, #0 + bl GetMonData + adds r1, r7, r4 + strb r0, [r1] + adds r5, #2 + adds r4, #1 + cmp r4, #2 + ble _08068F80 + adds r0, r6, #0 + movs r1, #0x15 + movs r2, #0 + bl GetMonData + mov r1, sb + strb r0, [r1] + ldrb r0, [r1] + lsrs r0, r0, #2 + strb r0, [r1] + mov r0, sp + mov r2, r8 + strh r2, [r0, #6] + ldr r1, _0806900C + mov r2, r8 + lsls r0, r2, #1 + add r0, r8 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #4] + strb r0, [r7, #3] + movs r4, #0 + mov r5, sp +_08068FD4: + adds r1, r4, #0 + adds r1, #0xd + adds r0, r6, #0 + adds r2, r5, #0 + bl SetMonData + adds r1, r4, #0 + adds r1, #0x11 + adds r2, r7, r4 + adds r0, r6, #0 + bl SetMonData + adds r5, #2 + adds r4, #1 + cmp r4, #3 + ble _08068FD4 + adds r0, r6, #0 + movs r1, #0x15 + mov r2, sb + bl SetMonData + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0806900C: .4byte 0x082ED220 + thumb_func_end DeleteFirstMoveAndGiveMoveToMon + + thumb_func_start DeleteFirstMoveAndGiveMoveToBoxMon +DeleteFirstMoveAndGiveMoveToBoxMon: @ 0x08069010 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x10 + adds r6, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r8, r1 + movs r4, #0 + add r7, sp, #8 + add r0, sp, #0xc + mov sb, r0 + mov r5, sp +_0806902C: + adds r1, r4, #0 + adds r1, #0xe + adds r0, r6, #0 + movs r2, #0 + bl GetBoxMonData + strh r0, [r5] + adds r1, r4, #0 + adds r1, #0x12 + adds r0, r6, #0 + movs r2, #0 + bl GetBoxMonData + adds r1, r7, r4 + strb r0, [r1] + adds r5, #2 + adds r4, #1 + cmp r4, #2 + ble _0806902C + adds r0, r6, #0 + movs r1, #0x15 + movs r2, #0 + bl GetBoxMonData + mov r1, sb + strb r0, [r1] + ldrb r0, [r1] + lsrs r0, r0, #2 + strb r0, [r1] + mov r0, sp + mov r2, r8 + strh r2, [r0, #6] + ldr r1, _080690B8 + mov r2, r8 + lsls r0, r2, #1 + add r0, r8 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #4] + strb r0, [r7, #3] + movs r4, #0 + mov r5, sp +_08069080: + adds r1, r4, #0 + adds r1, #0xd + adds r0, r6, #0 + adds r2, r5, #0 + bl SetBoxMonData + adds r1, r4, #0 + adds r1, #0x11 + adds r2, r7, r4 + adds r0, r6, #0 + bl SetBoxMonData + adds r5, #2 + adds r4, #1 + cmp r4, #3 + ble _08069080 + adds r0, r6, #0 + movs r1, #0x15 + mov r2, sb + bl SetBoxMonData + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080690B8: .4byte 0x082ED220 + thumb_func_end DeleteFirstMoveAndGiveMoveToBoxMon + + thumb_func_start CalculateBaseDamage +CalculateBaseDamage: @ 0x080690BC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x30 + adds r6, r0, #0 + str r1, [sp, #4] + str r2, [sp, #8] + ldr r0, [sp, #0x50] + ldr r1, [sp, #0x54] + ldr r2, [sp, #0x58] + ldr r4, [sp, #0x5c] + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + str r3, [sp, #0xc] + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x10] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r4, [sp, #0x14] + movs r5, #0 + cmp r3, #0 + bne _08069114 + ldr r2, _0806910C + ldr r1, _08069110 + ldr r3, [sp, #8] + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #1] + strh r0, [r2] + b _08069118 + .align 2, 0 +_0806910C: .4byte 0x02024184 +_08069110: .4byte 0x082ED220 +_08069114: + ldr r0, _08069130 + strh r3, [r0] +_08069118: + cmp r7, #0 + bne _08069138 + ldr r1, _08069134 + ldr r7, [sp, #8] + lsls r0, r7, #1 + adds r0, r0, r7 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #2] + mov sl, r0 + b _08069142 + .align 2, 0 +_08069130: .4byte 0x02024184 +_08069134: .4byte 0x082ED220 +_08069138: + movs r0, #0x3f + mov sl, r0 + mov r1, sl + ands r1, r7 + mov sl, r1 +_08069142: + ldrh r7, [r6, #2] + ldr r2, [sp, #4] + ldrh r2, [r2, #4] + str r2, [sp, #0x18] + ldrh r3, [r6, #8] + mov r8, r3 + ldr r0, [sp, #4] + ldrh r0, [r0, #0xa] + str r0, [sp, #0x1c] + ldrh r0, [r6, #0x2e] + cmp r0, #0xaf + bne _08069174 + ldr r1, _08069170 + ldr r2, [sp, #0x10] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r3, [r0, #7] + mov sb, r3 + ldrb r0, [r0, #0x1a] + b _0806918A + .align 2, 0 +_08069170: .4byte 0x020240A8 +_08069174: + ldrh r0, [r6, #0x2e] + bl sub_080D6CF8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldrh r0, [r6, #0x2e] + bl sub_080D6D1C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_0806918A: + str r0, [sp, #0x24] + ldr r1, [sp, #4] + ldrh r0, [r1, #0x2e] + cmp r0, #0xaf + bne _080691BE + ldr r1, _080691A8 + ldr r2, [sp, #0x14] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #7] + str r0, [sp, #0x20] + b _080691D4 + .align 2, 0 +_080691A8: .4byte 0x020240A8 +_080691AC: + ldr r0, [sp, #0x24] + adds r0, #0x64 + muls r0, r7, r0 + movs r1, #0x64 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + b _080692BC +_080691BE: + ldr r3, [sp, #4] + ldrh r0, [r3, #0x2e] + bl sub_080D6CF8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x20] + ldr r1, [sp, #4] + ldrh r0, [r1, #0x2e] + bl sub_080D6D1C +_080691D4: + adds r0, r6, #0 + adds r0, #0x20 + ldrb r1, [r0] + str r0, [sp, #0x28] + cmp r1, #0x25 + beq _080691E4 + cmp r1, #0x4a + bne _080691E8 +_080691E4: + lsls r0, r7, #0x11 + lsrs r7, r0, #0x10 +_080691E8: + ldr r0, _080692A4 + ldr r1, [sp, #0x10] + bl ShouldGetStatBadgeBoost + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08069204 + movs r0, #0x6e + muls r0, r7, r0 + movs r1, #0x64 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 +_08069204: + ldr r0, _080692A8 + ldr r1, [sp, #0x14] + bl ShouldGetStatBadgeBoost + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08069224 + movs r0, #0x6e + ldr r2, [sp, #0x18] + muls r0, r2, r0 + movs r1, #0x64 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x18] +_08069224: + ldr r4, _080692AC + adds r0, r4, #0 + ldr r1, [sp, #0x10] + bl ShouldGetStatBadgeBoost + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08069248 + movs r0, #0x6e + mov r3, r8 + muls r3, r0, r3 + adds r0, r3, #0 + movs r1, #0x64 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 +_08069248: + adds r0, r4, #0 + ldr r1, [sp, #0x14] + bl ShouldGetStatBadgeBoost + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08069268 + movs r0, #0x6e + ldr r1, [sp, #0x1c] + muls r0, r1, r0 + movs r1, #0x64 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x1c] +_08069268: + movs r2, #0 + ldr r4, _080692B0 + ldr r3, [sp, #4] + adds r3, #0x20 + str r3, [sp, #0x2c] + adds r3, r4, #0 +_08069274: + lsls r1, r2, #1 + ldrb r0, [r3] + cmp sb, r0 + bne _080692B4 + adds r0, r4, #1 + adds r0, r1, r0 + ldrb r0, [r0] + cmp sl, r0 + bne _080692B4 + mov r1, sl + cmp r1, #8 + bls _080691AC + ldr r0, [sp, #0x24] + adds r0, #0x64 + mov r2, r8 + muls r2, r0, r2 + adds r0, r2, #0 + movs r1, #0x64 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + b _080692BC + .align 2, 0 +_080692A4: .4byte 0x00000867 +_080692A8: .4byte 0x0000086B +_080692AC: .4byte 0x0000086D +_080692B0: .4byte 0x082FA702 +_080692B4: + adds r3, #2 + adds r2, #1 + cmp r2, #0x10 + bls _08069274 +_080692BC: + mov r3, sb + cmp r3, #0x1d + bne _080692D0 + movs r0, #0x96 + muls r0, r7, r0 + movs r1, #0x64 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 +_080692D0: + mov r0, sb + cmp r0, #0x22 + bne _08069306 + ldr r0, _080695B8 + ldr r0, [r0] + ldr r1, _080695BC + ands r0, r1 + cmp r0, #0 + bne _08069306 + ldr r1, _080695C0 + adds r0, r1, #0 + ldrh r2, [r6] + adds r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bhi _08069306 + movs r0, #0x96 + mov r3, r8 + muls r3, r0, r3 + adds r0, r3, #0 + movs r1, #0x64 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 +_08069306: + ldr r0, [sp, #0x20] + cmp r0, #0x22 + bne _0806933C + ldr r0, _080695B8 + ldr r0, [r0] + ldr r1, _080695BC + ands r0, r1 + cmp r0, #0 + bne _0806933C + ldr r1, _080695C0 + adds r0, r1, #0 + ldr r2, [sp, #4] + ldrh r2, [r2] + adds r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bhi _0806933C + movs r0, #0x96 + ldr r3, [sp, #0x1c] + muls r0, r3, r0 + movs r1, #0x64 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x1c] +_0806933C: + mov r0, sb + cmp r0, #0x23 + bne _08069352 + ldrh r1, [r6] + ldr r0, _080695C4 + cmp r1, r0 + bne _08069352 + mov r1, r8 + lsls r0, r1, #0x11 + lsrs r0, r0, #0x10 + mov r8, r0 +_08069352: + ldr r2, [sp, #0x20] + cmp r2, #0x24 + bne _0806936A + ldr r3, [sp, #4] + ldrh r1, [r3] + ldr r0, _080695C4 + cmp r1, r0 + bne _0806936A + ldr r1, [sp, #0x1c] + lsls r0, r1, #0x11 + lsrs r0, r0, #0x10 + str r0, [sp, #0x1c] +_0806936A: + mov r2, sb + cmp r2, #0x2d + bne _0806937E + ldrh r0, [r6] + cmp r0, #0x19 + bne _0806937E + mov r3, r8 + lsls r0, r3, #0x11 + lsrs r0, r0, #0x10 + mov r8, r0 +_0806937E: + ldr r0, [sp, #0x20] + cmp r0, #0x40 + bne _08069394 + ldr r1, [sp, #4] + ldrh r0, [r1] + cmp r0, #0x84 + bne _08069394 + ldr r2, [sp, #0x18] + lsls r0, r2, #0x11 + lsrs r0, r0, #0x10 + str r0, [sp, #0x18] +_08069394: + mov r3, sb + cmp r3, #0x41 + bne _080693AA + ldrh r0, [r6] + subs r0, #0x68 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bhi _080693AA + lsls r0, r7, #0x11 + lsrs r7, r0, #0x10 +_080693AA: + ldr r1, [sp, #0x2c] + ldrb r0, [r1] + cmp r0, #0x2f + bne _080693C2 + mov r2, sl + cmp r2, #0xa + beq _080693BC + cmp r2, #0xf + bne _080693C2 +_080693BC: + mov r3, r8 + lsrs r3, r3, #1 + mov r8, r3 +_080693C2: + ldr r0, [sp, #0x28] + ldrb r4, [r0] + cmp r4, #0x37 + bne _080693D8 + movs r0, #0x96 + muls r0, r7, r0 + movs r1, #0x64 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 +_080693D8: + cmp r4, #0x39 + bne _08069406 + movs r0, #0 + str r0, [sp] + movs r0, #0xe + movs r1, #0 + movs r2, #0x3a + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08069406 + movs r0, #0x96 + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + movs r1, #0x64 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 +_08069406: + ldr r2, [sp, #0x28] + ldrb r0, [r2] + cmp r0, #0x3a + bne _08069438 + movs r0, #0 + str r0, [sp] + movs r0, #0xe + movs r1, #0 + movs r2, #0x39 + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08069438 + movs r0, #0x96 + mov r3, r8 + muls r3, r0, r3 + adds r0, r3, #0 + movs r1, #0x64 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 +_08069438: + ldr r1, [sp, #0x28] + ldrb r0, [r1] + cmp r0, #0x3e + bne _08069454 + ldr r0, [r6, #0x4c] + cmp r0, #0 + beq _08069454 + movs r0, #0x96 + muls r0, r7, r0 + movs r1, #0x64 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 +_08069454: + ldr r2, [sp, #0x2c] + ldrb r0, [r2] + cmp r0, #0x3f + bne _08069476 + ldr r3, [sp, #4] + ldr r0, [r3, #0x4c] + cmp r0, #0 + beq _08069476 + movs r0, #0x96 + ldr r1, [sp, #0x18] + muls r0, r1, r0 + movs r1, #0x64 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x18] +_08069476: + mov r2, sl + cmp r2, #0xd + bne _0806949A + movs r0, #0 + str r0, [sp] + movs r0, #0xe + movs r1, #0 + movs r2, #0 + movs r3, #0xfd + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0806949A + ldr r1, _080695C8 + ldrh r0, [r1] + lsrs r0, r0, #1 + strh r0, [r1] +_0806949A: + mov r3, sl + cmp r3, #0xa + bne _080694BE + movs r0, #0 + str r0, [sp] + movs r0, #0xe + movs r1, #0 + movs r2, #0 + movs r3, #0xfe + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080694BE + ldr r1, _080695C8 + ldrh r0, [r1] + lsrs r0, r0, #1 + strh r0, [r1] +_080694BE: + mov r0, sl + cmp r0, #0xc + bne _080694EE + ldr r1, [sp, #0x28] + ldrb r0, [r1] + cmp r0, #0x41 + bne _080694EE + ldrh r0, [r6, #0x2c] + movs r1, #3 + bl __udivsi3 + ldrh r1, [r6, #0x28] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r1, r0 + bhi _080694EE + ldr r4, _080695C8 + ldrh r1, [r4] + movs r0, #0x96 + muls r0, r1, r0 + movs r1, #0x64 + bl __divsi3 + strh r0, [r4] +_080694EE: + mov r2, sl + cmp r2, #0xa + bne _0806951E + ldr r3, [sp, #0x28] + ldrb r0, [r3] + cmp r0, #0x42 + bne _0806951E + ldrh r0, [r6, #0x2c] + movs r1, #3 + bl __udivsi3 + ldrh r1, [r6, #0x28] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r1, r0 + bhi _0806951E + ldr r4, _080695C8 + ldrh r1, [r4] + movs r0, #0x96 + muls r0, r1, r0 + movs r1, #0x64 + bl __divsi3 + strh r0, [r4] +_0806951E: + mov r0, sl + cmp r0, #0xb + bne _0806954E + ldr r1, [sp, #0x28] + ldrb r0, [r1] + cmp r0, #0x43 + bne _0806954E + ldrh r0, [r6, #0x2c] + movs r1, #3 + bl __udivsi3 + ldrh r1, [r6, #0x28] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r1, r0 + bhi _0806954E + ldr r4, _080695C8 + ldrh r1, [r4] + movs r0, #0x96 + muls r0, r1, r0 + movs r1, #0x64 + bl __divsi3 + strh r0, [r4] +_0806954E: + mov r2, sl + cmp r2, #6 + bne _0806957E + ldr r3, [sp, #0x28] + ldrb r0, [r3] + cmp r0, #0x44 + bne _0806957E + ldrh r0, [r6, #0x2c] + movs r1, #3 + bl __udivsi3 + ldrh r1, [r6, #0x28] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r1, r0 + bhi _0806957E + ldr r4, _080695C8 + ldrh r1, [r4] + movs r0, #0x96 + muls r0, r1, r0 + movs r1, #0x64 + bl __divsi3 + strh r0, [r4] +_0806957E: + ldr r2, _080695CC + ldr r0, _080695D0 + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #7 + bne _08069598 + ldr r0, [sp, #0x18] + lsrs r0, r0, #1 + str r0, [sp, #0x18] +_08069598: + mov r1, sl + cmp r1, #8 + bls _080695A0 + b _08069702 +_080695A0: + ldr r0, _080695D4 + ldrb r1, [r0] + adds r4, r0, #0 + cmp r1, #2 + bne _080695E0 + movs r0, #0x19 + ldrsb r0, [r6, r0] + cmp r0, #6 + ble _080695DC + ldr r2, _080695D8 + b _080695E6 + .align 2, 0 +_080695B8: .4byte 0x02022C90 +_080695BC: .4byte 0x003F0100 +_080695C0: .4byte 0xFFFFFE69 +_080695C4: .4byte 0x00000175 +_080695C8: .4byte 0x02024184 +_080695CC: .4byte 0x082ED220 +_080695D0: .4byte 0x02023E8E +_080695D4: .4byte 0x02023EB5 +_080695D8: .4byte 0x082FA6B6 +_080695DC: + adds r5, r7, #0 + b _080695FE +_080695E0: + ldr r2, _08069630 + movs r0, #0x19 + ldrsb r0, [r6, r0] +_080695E6: + lsls r0, r0, #1 + adds r1, r0, r2 + ldrb r1, [r1] + adds r5, r7, #0 + muls r5, r1, r5 + adds r2, #1 + adds r0, r0, r2 + ldrb r1, [r0] + adds r0, r5, #0 + bl __divsi3 + adds r5, r0, #0 +_080695FE: + ldr r0, _08069634 + ldrh r0, [r0] + muls r5, r0, r5 + adds r0, r6, #0 + adds r0, #0x2a + ldrb r0, [r0] + lsls r0, r0, #1 + movs r1, #5 + bl __divsi3 + adds r0, #2 + muls r5, r0, r5 + ldrb r0, [r4] + cmp r0, #2 + bne _0806963C + ldr r2, [sp, #4] + movs r0, #0x1a + ldrsb r0, [r2, r0] + cmp r0, #5 + bgt _08069638 + ldr r2, _08069630 + ldr r3, [sp, #4] + movs r0, #0x1a + ldrsb r0, [r3, r0] + b _08069644 + .align 2, 0 +_08069630: .4byte 0x082FA6B6 +_08069634: .4byte 0x02024184 +_08069638: + ldr r3, [sp, #0x18] + b _0806965E +_0806963C: + ldr r2, _080696BC + ldr r1, [sp, #4] + movs r0, #0x1a + ldrsb r0, [r1, r0] +_08069644: + lsls r0, r0, #1 + adds r1, r0, r2 + ldrb r1, [r1] + ldr r7, [sp, #0x18] + adds r3, r7, #0 + muls r3, r1, r3 + adds r2, #1 + adds r0, r0, r2 + ldrb r1, [r0] + adds r0, r3, #0 + bl __divsi3 + adds r3, r0, #0 +_0806965E: + adds r0, r5, #0 + adds r1, r3, #0 + bl __divsi3 + adds r5, r0, #0 + movs r1, #0x32 + bl __divsi3 + adds r5, r0, #0 + ldr r0, [r6, #0x4c] + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08069688 + ldr r1, [sp, #0x28] + ldrb r0, [r1] + cmp r0, #0x3e + beq _08069688 + lsrs r0, r5, #0x1f + adds r0, r5, r0 + asrs r5, r0, #1 +_08069688: + movs r0, #1 + ldr r2, [sp, #0xc] + ands r0, r2 + cmp r0, #0 + beq _080696CA + ldrb r1, [r4] + cmp r1, #1 + bne _080696CA + ldr r0, _080696C0 + ldr r0, [r0] + ands r0, r1 + cmp r0, #0 + beq _080696C4 + movs r0, #2 + bl CountAliveMonsInBattle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _080696C4 + adds r0, r5, #0 + movs r1, #3 + bl __divsi3 + lsls r5, r0, #1 + b _080696CA + .align 2, 0 +_080696BC: .4byte 0x082FA6B6 +_080696C0: .4byte 0x02022C90 +_080696C4: + lsrs r0, r5, #0x1f + adds r0, r5, r0 + asrs r5, r0, #1 +_080696CA: + ldr r0, _08069728 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _080696FC + ldr r0, _0806972C + ldr r3, [sp, #8] + lsls r1, r3, #1 + adds r1, r1, r3 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #6] + cmp r0, #8 + bne _080696FC + movs r0, #2 + bl CountAliveMonsInBattle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _080696FC + lsrs r0, r5, #0x1f + adds r0, r5, r0 + asrs r5, r0, #1 +_080696FC: + cmp r5, #0 + bne _08069702 + movs r5, #1 +_08069702: + mov r7, sl + cmp r7, #9 + bne _0806970A + movs r5, #0 +_0806970A: + mov r0, sl + cmp r0, #9 + bhi _08069712 + b _08069914 +_08069712: + ldr r0, _08069730 + ldrb r1, [r0] + adds r4, r0, #0 + cmp r1, #2 + bne _0806973C + movs r0, #0x1c + ldrsb r0, [r6, r0] + cmp r0, #6 + ble _08069738 + ldr r2, _08069734 + b _08069742 + .align 2, 0 +_08069728: .4byte 0x02022C90 +_0806972C: .4byte 0x082ED220 +_08069730: .4byte 0x02023EB5 +_08069734: .4byte 0x082FA6B6 +_08069738: + mov r5, r8 + b _0806975A +_0806973C: + ldr r2, _08069788 + movs r0, #0x1c + ldrsb r0, [r6, r0] +_08069742: + lsls r0, r0, #1 + adds r1, r0, r2 + ldrb r1, [r1] + mov r5, r8 + muls r5, r1, r5 + adds r2, #1 + adds r0, r0, r2 + ldrb r1, [r0] + adds r0, r5, #0 + bl __divsi3 + adds r5, r0, #0 +_0806975A: + ldr r0, _0806978C + ldrh r0, [r0] + muls r5, r0, r5 + adds r0, r6, #0 + adds r0, #0x2a + ldrb r0, [r0] + lsls r0, r0, #1 + movs r1, #5 + bl __divsi3 + adds r0, #2 + muls r5, r0, r5 + ldrb r0, [r4] + cmp r0, #2 + bne _08069794 + ldr r1, [sp, #4] + movs r0, #0x1d + ldrsb r0, [r1, r0] + cmp r0, #5 + bgt _08069790 + ldr r2, _08069788 + b _0806979C + .align 2, 0 +_08069788: .4byte 0x082FA6B6 +_0806978C: .4byte 0x02024184 +_08069790: + ldr r3, [sp, #0x1c] + b _080697B6 +_08069794: + ldr r2, _080697FC + ldr r7, [sp, #4] + movs r0, #0x1d + ldrsb r0, [r7, r0] +_0806979C: + lsls r0, r0, #1 + adds r1, r0, r2 + ldrb r1, [r1] + ldr r6, [sp, #0x1c] + adds r3, r6, #0 + muls r3, r1, r3 + adds r2, #1 + adds r0, r0, r2 + ldrb r1, [r0] + adds r0, r3, #0 + bl __divsi3 + adds r3, r0, #0 +_080697B6: + adds r0, r5, #0 + adds r1, r3, #0 + bl __divsi3 + adds r5, r0, #0 + movs r1, #0x32 + bl __divsi3 + adds r5, r0, #0 + movs r0, #2 + ldr r7, [sp, #0xc] + ands r0, r7 + cmp r0, #0 + beq _0806980A + ldrb r1, [r4] + cmp r1, #1 + bne _0806980A + ldr r0, _08069800 + ldr r0, [r0] + ands r0, r1 + cmp r0, #0 + beq _08069804 + movs r0, #2 + bl CountAliveMonsInBattle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _08069804 + adds r0, r5, #0 + movs r1, #3 + bl __divsi3 + lsls r5, r0, #1 + b _0806980A + .align 2, 0 +_080697FC: .4byte 0x082FA6B6 +_08069800: .4byte 0x02022C90 +_08069804: + lsrs r0, r5, #0x1f + adds r0, r5, r0 + asrs r5, r0, #1 +_0806980A: + ldr r0, _08069884 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0806983C + ldr r0, _08069888 + ldr r2, [sp, #8] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #6] + cmp r0, #8 + bne _0806983C + movs r0, #2 + bl CountAliveMonsInBattle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _0806983C + lsrs r0, r5, #0x1f + adds r0, r5, r0 + asrs r5, r0, #1 +_0806983C: + movs r0, #0 + str r0, [sp] + movs r0, #0xe + movs r1, #0 + movs r2, #0xd + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _080698EC + str r0, [sp] + movs r0, #0xe + movs r1, #0 + movs r2, #0x4d + movs r3, #0 + bl AbilityBattleEffects + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080698EC + ldr r2, _0806988C + ldrh r1, [r2] + movs r0, #1 + ands r0, r1 + adds r4, r2, #0 + cmp r0, #0 + beq _080698A4 + mov r3, sl + cmp r3, #0xa + beq _08069890 + cmp r3, #0xb + beq _08069898 + b _080698A4 + .align 2, 0 +_08069884: .4byte 0x02022C90 +_08069888: .4byte 0x082ED220 +_0806988C: .4byte 0x02024070 +_08069890: + lsrs r0, r5, #0x1f + adds r0, r5, r0 + asrs r5, r0, #1 + b _080698A4 +_08069898: + lsls r0, r5, #4 + subs r0, r0, r5 + movs r1, #0xa + bl __divsi3 + adds r5, r0, #0 +_080698A4: + ldrh r1, [r4] + movs r0, #0x9f + ands r0, r1 + cmp r0, #0 + beq _080698BC + ldr r0, _080698D4 + ldrh r0, [r0] + cmp r0, #0x4c + bne _080698BC + lsrs r0, r5, #0x1f + adds r0, r5, r0 + asrs r5, r0, #1 +_080698BC: + ldrh r1, [r4] + movs r0, #0x60 + ands r0, r1 + cmp r0, #0 + beq _080698EC + mov r6, sl + cmp r6, #0xa + beq _080698D8 + cmp r6, #0xb + beq _080698E6 + b _080698EC + .align 2, 0 +_080698D4: .4byte 0x02023E8E +_080698D8: + lsls r0, r5, #4 + subs r0, r0, r5 + movs r1, #0xa + bl __divsi3 + adds r5, r0, #0 + b _080698EC +_080698E6: + lsrs r0, r5, #0x1f + adds r0, r5, r0 + asrs r5, r0, #1 +_080698EC: + ldr r0, _08069928 + ldr r0, [r0] + ldr r0, [r0, #4] + ldr r7, [sp, #0x10] + lsls r1, r7, #2 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08069914 + mov r0, sl + cmp r0, #0xa + bne _08069914 + lsls r0, r5, #4 + subs r0, r0, r5 + movs r1, #0xa + bl __divsi3 + adds r5, r0, #0 +_08069914: + adds r0, r5, #2 + add sp, #0x30 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08069928: .4byte 0x0202414C + thumb_func_end CalculateBaseDamage + + thumb_func_start CountAliveMonsInBattle +CountAliveMonsInBattle: @ 0x0806992C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + movs r6, #0 + cmp r0, #1 + beq _08069980 + cmp r0, #1 + bgt _08069944 + cmp r0, #0 + beq _0806994A + b _08069A02 +_08069944: + cmp r1, #2 + beq _080699C8 + b _08069A02 +_0806994A: + movs r5, #0 + ldr r0, _08069974 + ldrb r3, [r0] + ldr r4, _08069978 + ldr r2, _0806997C +_08069954: + cmp r5, r3 + beq _08069968 + ldrb r0, [r4] + ldr r1, [r2] + ands r0, r1 + cmp r0, #0 + bne _08069968 + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_08069968: + adds r2, #4 + adds r5, #1 + cmp r5, #3 + ble _08069954 + b _08069A02 + .align 2, 0 +_08069974: .4byte 0x02023D08 +_08069978: .4byte 0x02023EB4 +_0806997C: .4byte 0x082FACB4 +_08069980: + movs r5, #0 +_08069982: + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerSide + adds r4, r0, #0 + ldr r0, _080699BC + ldrb r0, [r0] + bl GetBattlerSide + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + bne _080699B4 + ldr r0, _080699C0 + ldrb r1, [r0] + ldr r2, _080699C4 + lsls r0, r5, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _080699B4 + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_080699B4: + adds r5, #1 + cmp r5, #3 + ble _08069982 + b _08069A02 + .align 2, 0 +_080699BC: .4byte 0x02023EAF +_080699C0: .4byte 0x02023EB4 +_080699C4: .4byte 0x082FACB4 +_080699C8: + movs r5, #0 +_080699CA: + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerSide + adds r4, r0, #0 + ldr r0, _08069A0C + ldrb r0, [r0] + bl GetBattlerSide + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + bne _080699FC + ldr r0, _08069A10 + ldrb r1, [r0] + ldr r2, _08069A14 + lsls r0, r5, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _080699FC + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_080699FC: + adds r5, #1 + cmp r5, #3 + ble _080699CA +_08069A02: + adds r0, r6, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08069A0C: .4byte 0x02023EB0 +_08069A10: .4byte 0x02023EB4 +_08069A14: .4byte 0x082FACB4 + thumb_func_end CountAliveMonsInBattle + + thumb_func_start ShouldGetStatBadgeBoost +ShouldGetStatBadgeBoost: @ 0x08069A18 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r2, r1, #0x18 + ldr r4, _08069A60 + ldr r0, [r4] + ldr r1, _08069A64 + ands r0, r1 + cmp r0, #0 + bne _08069A5C + adds r0, r2, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08069A5C + ldr r0, [r4] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08069A50 + ldr r0, _08069A68 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #3 + cmp r1, r0 + beq _08069A5C +_08069A50: + adds r0, r5, #0 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08069A6C +_08069A5C: + movs r0, #0 + b _08069A6E + .align 2, 0 +_08069A60: .4byte 0x02022C90 +_08069A64: .4byte 0x023F0902 +_08069A68: .4byte 0x0203886A +_08069A6C: + movs r0, #1 +_08069A6E: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end ShouldGetStatBadgeBoost + + thumb_func_start GetDefaultMoveTarget +GetDefaultMoveTarget: @ 0x08069A74 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBattlerPosition + movs r1, #1 + movs r6, #1 + adds r4, r6, #0 + ands r4, r0 + eors r4, r1 + adds r5, r4, #0 + ldr r0, _08069A98 + ldr r0, [r0] + ands r0, r6 + cmp r0, #0 + bne _08069A9C + adds r0, r4, #0 + b _08069AE6 + .align 2, 0 +_08069A98: .4byte 0x02022C90 +_08069A9C: + movs r0, #0 + bl CountAliveMonsInBattle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _08069AC0 + bl Random + adds r1, r6, #0 + ands r1, r0 + cmp r1, #0 + bne _08069ABC + movs r0, #2 + eors r0, r4 + b _08069AE6 +_08069ABC: + adds r0, r4, #0 + b _08069AE6 +_08069AC0: + ldr r0, _08069AD8 + ldrb r1, [r0] + ldr r2, _08069ADC + lsls r0, r4, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _08069AE0 + adds r0, r4, #0 + b _08069AE6 + .align 2, 0 +_08069AD8: .4byte 0x02023EB4 +_08069ADC: .4byte 0x082FACB4 +_08069AE0: + movs r0, #2 + eors r5, r0 + adds r0, r5, #0 +_08069AE6: + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end GetDefaultMoveTarget + + thumb_func_start GetMonGender +GetMonGender: @ 0x08069AF4 + push {lr} + bl GetBoxMonGender + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetMonGender + + thumb_func_start GetBoxMonGender +GetBoxMonGender: @ 0x08069B04 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0xb + movs r2, #0 + bl GetBoxMonData + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + bl GetBoxMonData + adds r2, r0, #0 + ldr r1, _08069B54 + lsls r0, r5, #3 + subs r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #0x10] + cmp r0, #0 + beq _08069B5A + cmp r0, #0 + blt _08069B3C + cmp r0, #0xff + bgt _08069B3C + cmp r0, #0xfe + bge _08069B5A +_08069B3C: + ldr r1, _08069B54 + lsls r0, r5, #3 + subs r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #0x10] + movs r0, #0xff + ands r0, r2 + cmp r1, r0 + bhi _08069B58 + movs r0, #0 + b _08069B5A + .align 2, 0 +_08069B54: .4byte 0x082F0D54 +_08069B58: + movs r0, #0xfe +_08069B5A: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end GetBoxMonGender + + thumb_func_start GetGenderFromSpeciesAndPersonality +GetGenderFromSpeciesAndPersonality: @ 0x08069B60 + push {lr} + adds r3, r1, #0 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r1, _08069B9C + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #0x10] + cmp r0, #0 + beq _08069BA2 + cmp r0, #0 + blt _08069B84 + cmp r0, #0xff + bgt _08069B84 + cmp r0, #0xfe + bge _08069BA2 +_08069B84: + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #0x10] + movs r0, #0xff + ands r0, r3 + cmp r1, r0 + bhi _08069BA0 + movs r0, #0 + b _08069BA2 + .align 2, 0 +_08069B9C: .4byte 0x082F0D54 +_08069BA0: + movs r0, #0xfe +_08069BA2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetGenderFromSpeciesAndPersonality + + thumb_func_start SetMultiuseSpriteTemplateToPokemon +SetMultiuseSpriteTemplateToPokemon: @ 0x08069BA8 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + ldr r0, _08069BD4 + ldr r2, [r0] + cmp r2, #0 + beq _08069BDC + ldr r0, _08069BD8 + lsls r1, r4, #1 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r2, r1 + adds r2, r0, #0 + adds r1, #0x14 + ldm r1!, {r3, r6, r7} + stm r2!, {r3, r6, r7} + ldm r1!, {r3, r6, r7} + stm r2!, {r3, r6, r7} + adds r3, r0, #0 + b _08069C1A + .align 2, 0 +_08069BD4: .4byte 0x02024178 +_08069BD8: .4byte 0x02024640 +_08069BDC: + ldr r1, _08069BEC + ldr r0, [r1] + cmp r0, #0 + beq _08069BF4 + ldr r3, _08069BF0 + ldr r2, [r0, #0xc] + b _08069C08 + .align 2, 0 +_08069BEC: .4byte 0x02024658 +_08069BF0: .4byte 0x02024640 +_08069BF4: + ldr r0, [r1, #4] + cmp r0, #0 + beq _08069C04 + ldr r3, _08069C00 + ldr r2, [r0, #0xc] + b _08069C08 + .align 2, 0 +_08069C00: .4byte 0x02024640 +_08069C04: + ldr r3, _08069C2C + ldr r2, _08069C30 +_08069C08: + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r1, r3, #0 + adds r0, r0, r2 + ldm r0!, {r2, r6, r7} + stm r1!, {r2, r6, r7} + ldm r0!, {r2, r6, r7} + stm r1!, {r2, r6, r7} +_08069C1A: + adds r2, r3, #0 + strh r5, [r2, #2] + cmp r4, #0 + beq _08069C26 + cmp r4, #2 + bne _08069C38 +_08069C26: + ldr r0, _08069C34 + str r0, [r2, #8] + b _08069C62 + .align 2, 0 +_08069C2C: .4byte 0x02024640 +_08069C30: .4byte 0x082FA724 +_08069C34: .4byte 0x082D2F9C +_08069C38: + movs r0, #0xfa + lsls r0, r0, #1 + cmp r5, r0 + bls _08069C58 + ldr r0, _08069C50 + ldr r3, _08069C54 + adds r1, r5, r3 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r2, #8] + b _08069C62 + .align 2, 0 +_08069C50: .4byte 0x082DD33C +_08069C54: .4byte 0xFFFFFE0C +_08069C58: + ldr r0, _08069C68 + lsls r1, r5, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r3, #8] +_08069C62: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08069C68: .4byte 0x082DD33C + thumb_func_end SetMultiuseSpriteTemplateToPokemon + + thumb_func_start SetMultiuseSpriteTemplateToTrainerBack +SetMultiuseSpriteTemplateToTrainerBack: @ 0x08069C6C + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + ldr r0, _08069CA4 + strh r4, [r0, #2] + adds r5, r0, #0 + cmp r3, #0 + beq _08069C84 + cmp r3, #2 + bne _08069CB0 +_08069C84: + ldr r2, _08069CA8 + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r1, r5, #0 + adds r0, r0, r2 + ldm r0!, {r2, r3, r6} + stm r1!, {r2, r3, r6} + ldm r0!, {r2, r3, r6} + stm r1!, {r2, r3, r6} + ldr r1, _08069CAC + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r0, [r0] + b _08069CF0 + .align 2, 0 +_08069CA4: .4byte 0x02024640 +_08069CA8: .4byte 0x082FA784 +_08069CAC: .4byte 0x082D959C +_08069CB0: + ldr r0, _08069CD0 + ldr r1, [r0] + cmp r1, #0 + beq _08069CD4 + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #3 + adds r0, r1, r0 + adds r1, r5, #0 + adds r0, #0x14 + ldm r0!, {r2, r3, r6} + stm r1!, {r2, r3, r6} + ldm r0!, {r2, r3, r6} + stm r1!, {r2, r3, r6} + b _08069CE8 + .align 2, 0 +_08069CD0: .4byte 0x02024178 +_08069CD4: + ldr r0, _08069CF8 + lsls r1, r3, #1 + adds r1, r1, r3 + lsls r1, r1, #3 + adds r2, r5, #0 + adds r1, r1, r0 + ldm r1!, {r0, r3, r6} + stm r2!, {r0, r3, r6} + ldm r1!, {r0, r3, r6} + stm r2!, {r0, r3, r6} +_08069CE8: + ldr r0, _08069CFC + lsls r1, r4, #2 + adds r1, r1, r0 + ldr r0, [r1] +_08069CF0: + str r0, [r5, #8] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08069CF8: .4byte 0x082FA724 +_08069CFC: .4byte 0x082D8BFC + thumb_func_end SetMultiuseSpriteTemplateToTrainerBack + + thumb_func_start SetMultiuseSpriteTemplateToTrainerFront +SetMultiuseSpriteTemplateToTrainerFront: @ 0x08069D00 + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + ldr r0, _08069D2C + ldr r2, [r0] + cmp r2, #0 + beq _08069D34 + ldr r0, _08069D30 + lsls r1, r4, #1 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r2, r1 + adds r2, r0, #0 + adds r1, #0x14 + ldm r1!, {r3, r4, r6} + stm r2!, {r3, r4, r6} + ldm r1!, {r3, r4, r6} + stm r2!, {r3, r4, r6} + adds r3, r0, #0 + b _08069D4A + .align 2, 0 +_08069D2C: .4byte 0x02024178 +_08069D30: .4byte 0x02024640 +_08069D34: + ldr r3, _08069D5C + ldr r2, _08069D60 + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r1, r3, #0 + adds r0, r0, r2 + ldm r0!, {r2, r4, r6} + stm r1!, {r2, r4, r6} + ldm r0!, {r2, r4, r6} + stm r1!, {r2, r4, r6} +_08069D4A: + strh r5, [r3, #2] + ldr r0, _08069D64 + lsls r1, r5, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r3, #8] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08069D5C: .4byte 0x02024640 +_08069D60: .4byte 0x082FA724 +_08069D64: .4byte 0x082D8BFC + thumb_func_end SetMultiuseSpriteTemplateToTrainerFront + + thumb_func_start EncryptBoxMon +EncryptBoxMon: @ 0x08069D68 + push {r4, lr} + adds r3, r0, #0 + movs r4, #0 + adds r2, r3, #0 + adds r2, #0x20 +_08069D72: + ldr r0, [r2] + ldr r1, [r3] + eors r0, r1 + str r0, [r2] + ldr r1, [r3, #4] + eors r0, r1 + stm r2!, {r0} + adds r4, #1 + cmp r4, #0xb + bls _08069D72 + pop {r4} + pop {r0} + bx r0 + thumb_func_end EncryptBoxMon + + thumb_func_start DecryptBoxMon +DecryptBoxMon: @ 0x08069D8C + push {r4, lr} + adds r3, r0, #0 + movs r4, #0 + adds r2, r3, #0 + adds r2, #0x20 +_08069D96: + ldr r0, [r2] + ldr r1, [r3, #4] + eors r0, r1 + str r0, [r2] + ldr r1, [r3] + eors r0, r1 + stm r2!, {r0} + adds r4, #1 + cmp r4, #0xb + bls _08069D96 + pop {r4} + pop {r0} + bx r0 + thumb_func_end DecryptBoxMon + + thumb_func_start GetSubstruct +GetSubstruct: @ 0x08069DB0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r0, r1, #0 + lsls r2, r2, #0x18 + lsrs r4, r2, #0x18 + movs r6, #0 + movs r1, #0x18 + bl __umodsi3 + cmp r0, #0x17 + bls _08069DC8 + b _0806A050 +_08069DC8: + lsls r0, r0, #2 + ldr r1, _08069DD4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08069DD4: .4byte 0x08069DD8 +_08069DD8: @ jump table + .4byte _08069E38 @ case 0 + .4byte _08069E5C @ case 1 + .4byte _08069E78 @ case 2 + .4byte _08069E8E @ case 3 + .4byte _08069EA4 @ case 4 + .4byte _08069EC0 @ case 5 + .4byte _08069ED6 @ case 6 + .4byte _08069EEC @ case 7 + .4byte _08069EFC @ case 8 + .4byte _08069F1A @ case 9 + .4byte _08069F32 @ case 10 + .4byte _08069F42 @ case 11 + .4byte _08069F56 @ case 12 + .4byte _08069F68 @ case 13 + .4byte _08069F7A @ case 14 + .4byte _08069F8C @ case 15 + .4byte _08069F9E @ case 16 + .4byte _08069FB0 @ case 17 + .4byte _08069FC2 @ case 18 + .4byte _08069FD8 @ case 19 + .4byte _08069FEC @ case 20 + .4byte _08069FFA @ case 21 + .4byte _0806A00C @ case 22 + .4byte _0806A020 @ case 23 +_08069E38: + adds r0, r5, #0 + adds r0, #0x20 + cmp r4, #1 + bne _08069E42 + b _0806A048 +_08069E42: + cmp r4, #1 + bgt _08069E4E +_08069E46: + cmp r4, #0 + bne _08069E4C + b _0806A04E +_08069E4C: + b _0806A050 +_08069E4E: + cmp r4, #2 + bne _08069E54 + b _0806A042 +_08069E54: + cmp r4, #3 + beq _08069E5A + b _0806A050 +_08069E5A: + b _0806A03C +_08069E5C: + adds r0, r5, #0 + adds r0, #0x20 + cmp r4, #1 + bne _08069E66 + b _0806A048 +_08069E66: + cmp r4, #1 + ble _08069E46 +_08069E6A: + cmp r4, #2 + bne _08069E70 + b _0806A03C +_08069E70: + cmp r4, #3 + beq _08069E76 + b _0806A050 +_08069E76: + b _0806A042 +_08069E78: + adds r0, r5, #0 + adds r0, #0x20 + cmp r4, #1 + bne _08069E82 + b _0806A042 +_08069E82: + cmp r4, #1 + ble _08069E46 + cmp r4, #2 + bne _08069E8C + b _0806A048 +_08069E8C: + b _08069E54 +_08069E8E: + adds r0, r5, #0 + adds r0, #0x20 + cmp r4, #1 + bne _08069E98 + b _0806A03C +_08069E98: + cmp r4, #1 + ble _08069E46 + cmp r4, #2 + bne _08069EA2 + b _0806A048 +_08069EA2: + b _08069E70 +_08069EA4: + adds r0, r5, #0 + adds r0, #0x20 + cmp r4, #1 + bne _08069EAE + b _0806A042 +_08069EAE: + cmp r4, #1 + ble _08069E46 +_08069EB2: + cmp r4, #2 + bne _08069EB8 + b _0806A03C +_08069EB8: + cmp r4, #3 + beq _08069EBE + b _0806A050 +_08069EBE: + b _0806A048 +_08069EC0: + adds r0, r5, #0 + adds r0, #0x20 + cmp r4, #1 + bne _08069ECA + b _0806A03C +_08069ECA: + cmp r4, #1 + ble _08069E46 + cmp r4, #2 + bne _08069ED4 + b _0806A042 +_08069ED4: + b _08069EB8 +_08069ED6: + adds r0, r5, #0 + adds r0, #0x20 + cmp r4, #1 + bne _08069EE0 + b _0806A04E +_08069EE0: + cmp r4, #1 + bgt _08069E4E +_08069EE4: + cmp r4, #0 + bne _08069EEA + b _0806A048 +_08069EEA: + b _0806A050 +_08069EEC: + adds r0, r5, #0 + adds r0, #0x20 + cmp r4, #1 + bne _08069EF6 + b _0806A04E +_08069EF6: + cmp r4, #1 + ble _08069EE4 + b _08069E6A +_08069EFC: + adds r0, r5, #0 + adds r0, #0x20 + cmp r4, #1 + bne _08069F06 + b _0806A04E +_08069F06: + cmp r4, #1 + bgt _08069F12 +_08069F0A: + cmp r4, #0 + bne _08069F10 + b _0806A042 +_08069F10: + b _0806A050 +_08069F12: + cmp r4, #2 + bne _08069F18 + b _0806A048 +_08069F18: + b _08069E54 +_08069F1A: + adds r0, r5, #0 + adds r0, #0x20 + cmp r4, #1 + bne _08069F24 + b _0806A04E +_08069F24: + cmp r4, #1 + bgt _08069F2A + b _0806A02C +_08069F2A: + cmp r4, #2 + bne _08069F30 + b _0806A048 +_08069F30: + b _08069E70 +_08069F32: + adds r0, r5, #0 + adds r0, #0x20 + cmp r4, #1 + bne _08069F3C + b _0806A04E +_08069F3C: + cmp r4, #1 + ble _08069F0A + b _08069EB2 +_08069F42: + adds r0, r5, #0 + adds r0, #0x20 + cmp r4, #1 + bne _08069F4C + b _0806A04E +_08069F4C: + cmp r4, #1 + ble _0806A02C + cmp r4, #2 + beq _0806A042 + b _08069EB8 +_08069F56: + adds r0, r5, #0 + adds r0, #0x20 + cmp r4, #1 + beq _0806A042 + cmp r4, #1 + ble _08069EE4 + cmp r4, #2 + beq _0806A04E + b _08069E54 +_08069F68: + adds r0, r5, #0 + adds r0, #0x20 + cmp r4, #1 + beq _0806A03C + cmp r4, #1 + ble _08069EE4 + cmp r4, #2 + beq _0806A04E + b _08069E70 +_08069F7A: + adds r0, r5, #0 + adds r0, #0x20 + cmp r4, #1 + beq _0806A048 + cmp r4, #1 + ble _08069F0A + cmp r4, #2 + beq _0806A04E + b _08069E54 +_08069F8C: + adds r0, r5, #0 + adds r0, #0x20 + cmp r4, #1 + beq _0806A048 + cmp r4, #1 + ble _0806A02C + cmp r4, #2 + beq _0806A04E + b _08069E70 +_08069F9E: + adds r0, r5, #0 + adds r0, #0x20 + cmp r4, #1 + beq _0806A03C + cmp r4, #1 + ble _08069F0A + cmp r4, #2 + beq _0806A04E + b _08069EB8 +_08069FB0: + adds r0, r5, #0 + adds r0, #0x20 + cmp r4, #1 + beq _0806A042 + cmp r4, #1 + ble _0806A02C + cmp r4, #2 + beq _0806A04E + b _08069EB8 +_08069FC2: + adds r0, r5, #0 + adds r0, #0x20 + cmp r4, #1 + beq _0806A042 + cmp r4, #1 + ble _08069EE4 +_08069FCE: + cmp r4, #2 + beq _0806A03C +_08069FD2: + cmp r4, #3 + bne _0806A050 + b _0806A04E +_08069FD8: + adds r0, r5, #0 + adds r0, #0x20 + cmp r4, #1 + beq _0806A03C + cmp r4, #1 + bgt _08069FE6 + b _08069EE4 +_08069FE6: + cmp r4, #2 + beq _0806A042 + b _08069FD2 +_08069FEC: + adds r0, r5, #0 + adds r0, #0x20 + cmp r4, #1 + beq _0806A048 + cmp r4, #1 + ble _08069F0A + b _08069FCE +_08069FFA: + adds r0, r5, #0 + adds r0, #0x20 + cmp r4, #1 + beq _0806A048 + cmp r4, #1 + ble _0806A02C + cmp r4, #2 + beq _0806A042 + b _08069FD2 +_0806A00C: + adds r0, r5, #0 + adds r0, #0x20 + cmp r4, #1 + beq _0806A03C + cmp r4, #1 + bgt _0806A01A + b _08069F0A +_0806A01A: + cmp r4, #2 + beq _0806A048 + b _08069FD2 +_0806A020: + adds r0, r5, #0 + adds r0, #0x20 + cmp r4, #1 + beq _0806A042 + cmp r4, #1 + bgt _0806A032 +_0806A02C: + cmp r4, #0 + beq _0806A03C + b _0806A050 +_0806A032: + cmp r4, #2 + beq _0806A048 + cmp r4, #3 + beq _0806A04E + b _0806A050 +_0806A03C: + adds r6, r5, #0 + adds r6, #0x44 + b _0806A050 +_0806A042: + adds r6, r5, #0 + adds r6, #0x38 + b _0806A050 +_0806A048: + adds r6, r5, #0 + adds r6, #0x2c + b _0806A050 +_0806A04E: + adds r6, r0, #0 +_0806A050: + adds r0, r6, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end GetSubstruct + + thumb_func_start GetMonData +GetMonData: @ 0x0806A058 + push {r4, lr} + adds r4, r0, #0 + adds r3, r1, #0 + adds r0, r3, #0 + subs r0, #0x37 + cmp r0, #0x21 + bls _0806A068 + b _0806A1A6 +_0806A068: + lsls r0, r0, #2 + ldr r1, _0806A074 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806A074: .4byte 0x0806A078 +_0806A078: @ jump table + .4byte _0806A100 @ case 0 + .4byte _0806A104 @ case 1 + .4byte _0806A10C @ case 2 + .4byte _0806A114 @ case 3 + .4byte _0806A11C @ case 4 + .4byte _0806A12E @ case 5 + .4byte _0806A140 @ case 6 + .4byte _0806A152 @ case 7 + .4byte _0806A164 @ case 8 + .4byte _0806A19E @ case 9 + .4byte _0806A1A6 @ case 10 + .4byte _0806A1A6 @ case 11 + .4byte _0806A1A6 @ case 12 + .4byte _0806A1A6 @ case 13 + .4byte _0806A1A6 @ case 14 + .4byte _0806A1A6 @ case 15 + .4byte _0806A1A6 @ case 16 + .4byte _0806A1A6 @ case 17 + .4byte _0806A1A6 @ case 18 + .4byte _0806A1A6 @ case 19 + .4byte _0806A1A6 @ case 20 + .4byte _0806A1A6 @ case 21 + .4byte _0806A1A6 @ case 22 + .4byte _0806A1A6 @ case 23 + .4byte _0806A1A6 @ case 24 + .4byte _0806A1A6 @ case 25 + .4byte _0806A1A6 @ case 26 + .4byte _0806A1A6 @ case 27 + .4byte _0806A1A6 @ case 28 + .4byte _0806A176 @ case 29 + .4byte _0806A17E @ case 30 + .4byte _0806A186 @ case 31 + .4byte _0806A18E @ case 32 + .4byte _0806A196 @ case 33 +_0806A100: + ldr r0, [r4, #0x50] + b _0806A1AE +_0806A104: + adds r0, r4, #0 + adds r0, #0x54 + ldrb r0, [r0] + b _0806A1AE +_0806A10C: + adds r0, r4, #0 + adds r0, #0x56 + ldrh r0, [r0] + b _0806A1AE +_0806A114: + adds r0, r4, #0 + adds r0, #0x58 + ldrh r0, [r0] + b _0806A1AE +_0806A11C: + adds r0, r4, #0 + movs r1, #1 + bl GetDeoxysStat + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + bne _0806A1AE + b _0806A176 +_0806A12E: + adds r0, r4, #0 + movs r1, #2 + bl GetDeoxysStat + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + bne _0806A1AE + b _0806A17E +_0806A140: + adds r0, r4, #0 + movs r1, #3 + bl GetDeoxysStat + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + bne _0806A1AE + b _0806A186 +_0806A152: + adds r0, r4, #0 + movs r1, #4 + bl GetDeoxysStat + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + bne _0806A1AE + b _0806A18E +_0806A164: + adds r0, r4, #0 + movs r1, #5 + bl GetDeoxysStat + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + bne _0806A1AE + b _0806A196 +_0806A176: + adds r0, r4, #0 + adds r0, #0x5a + ldrh r0, [r0] + b _0806A1AE +_0806A17E: + adds r0, r4, #0 + adds r0, #0x5c + ldrh r0, [r0] + b _0806A1AE +_0806A186: + adds r0, r4, #0 + adds r0, #0x5e + ldrh r0, [r0] + b _0806A1AE +_0806A18E: + adds r0, r4, #0 + adds r0, #0x60 + ldrh r0, [r0] + b _0806A1AE +_0806A196: + adds r0, r4, #0 + adds r0, #0x62 + ldrh r0, [r0] + b _0806A1AE +_0806A19E: + adds r0, r4, #0 + adds r0, #0x55 + ldrb r0, [r0] + b _0806A1AE +_0806A1A6: + adds r0, r4, #0 + adds r1, r3, #0 + bl GetBoxMonData +_0806A1AE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetMonData + + thumb_func_start GetBoxMonData +GetBoxMonData: @ 0x0806A1B4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov sb, r0 + str r1, [sp] + adds r7, r2, #0 + movs r4, #0 + mov r8, r4 + mov sl, r4 + movs r6, #0 + movs r5, #0 + cmp r1, #0xa + ble _0806A232 + ldr r1, [r0] + movs r2, #0 + bl GetSubstruct + mov r8, r0 + mov r0, sb + ldr r1, [r0] + movs r2, #1 + bl GetSubstruct + mov sl, r0 + mov r2, sb + ldr r1, [r2] + mov r0, sb + movs r2, #2 + bl GetSubstruct + adds r6, r0, #0 + mov r0, sb + ldr r1, [r0] + movs r2, #3 + bl GetSubstruct + adds r5, r0, #0 + mov r0, sb + bl DecryptBoxMon + mov r0, sb + bl CalculateBoxMonChecksum + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r1, sb + ldrh r1, [r1, #0x1c] + cmp r0, r1 + beq _0806A232 + mov r2, sb + ldrb r0, [r2, #0x13] + movs r1, #1 + orrs r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #0x13] + ldrb r0, [r5, #7] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r5, #7] +_0806A232: + ldr r0, [sp] + cmp r0, #0x53 + bls _0806A23A + b _0806A754 +_0806A23A: + lsls r0, r0, #2 + ldr r1, _0806A244 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806A244: .4byte 0x0806A248 +_0806A248: @ jump table + .4byte _0806A398 @ case 0 + .4byte _0806A39E @ case 1 + .4byte _0806A3A4 @ case 2 + .4byte _0806A3DE @ case 3 + .4byte _0806A3E4 @ case 4 + .4byte _0806A3EA @ case 5 + .4byte _0806A3F0 @ case 6 + .4byte _0806A3F6 @ case 7 + .4byte _0806A412 @ case 8 + .4byte _0806A418 @ case 9 + .4byte _0806A41E @ case 10 + .4byte _0806A424 @ case 11 + .4byte _0806A43C @ case 12 + .4byte _0806A454 @ case 13 + .4byte _0806A454 @ case 14 + .4byte _0806A454 @ case 15 + .4byte _0806A454 @ case 16 + .4byte _0806A460 @ case 17 + .4byte _0806A460 @ case 18 + .4byte _0806A460 @ case 19 + .4byte _0806A460 @ case 20 + .4byte _0806A448 @ case 21 + .4byte _0806A482 @ case 22 + .4byte _0806A486 @ case 23 + .4byte _0806A48A @ case 24 + .4byte _0806A442 @ case 25 + .4byte _0806A46A @ case 26 + .4byte _0806A46E @ case 27 + .4byte _0806A472 @ case 28 + .4byte _0806A476 @ case 29 + .4byte _0806A47A @ case 30 + .4byte _0806A47E @ case 31 + .4byte _0806A44E @ case 32 + .4byte _0806A48E @ case 33 + .4byte _0806A49A @ case 34 + .4byte _0806A49E @ case 35 + .4byte _0806A4A2 @ case 36 + .4byte _0806A4AA @ case 37 + .4byte _0806A4B2 @ case 38 + .4byte _0806A4BC @ case 39 + .4byte _0806A4C4 @ case 40 + .4byte _0806A4CC @ case 41 + .4byte _0806A4D4 @ case 42 + .4byte _0806A4DC @ case 43 + .4byte _0806A4E4 @ case 44 + .4byte _0806A4EC @ case 45 + .4byte _0806A4F0 @ case 46 + .4byte _0806A492 @ case 47 + .4byte _0806A496 @ case 48 + .4byte _0806A4B6 @ case 49 + .4byte _0806A4F6 @ case 50 + .4byte _0806A4FE @ case 51 + .4byte _0806A506 @ case 52 + .4byte _0806A50E @ case 53 + .4byte _0806A516 @ case 54 + .4byte _0806A754 @ case 55 + .4byte _0806A754 @ case 56 + .4byte _0806A754 @ case 57 + .4byte _0806A754 @ case 58 + .4byte _0806A754 @ case 59 + .4byte _0806A754 @ case 60 + .4byte _0806A754 @ case 61 + .4byte _0806A754 @ case 62 + .4byte _0806A754 @ case 63 + .4byte _0806A754 @ case 64 + .4byte _0806A57C @ case 65 + .4byte _0806A5A2 @ case 66 + .4byte _0806A51E @ case 67 + .4byte _0806A524 @ case 68 + .4byte _0806A528 @ case 69 + .4byte _0806A52C @ case 70 + .4byte _0806A530 @ case 71 + .4byte _0806A538 @ case 72 + .4byte _0806A540 @ case 73 + .4byte _0806A548 @ case 74 + .4byte _0806A550 @ case 75 + .4byte _0806A556 @ case 76 + .4byte _0806A55E @ case 77 + .4byte _0806A566 @ case 78 + .4byte _0806A56E @ case 79 + .4byte _0806A576 @ case 80 + .4byte _0806A5DC @ case 81 + .4byte _0806A638 @ case 82 + .4byte _0806A6BA @ case 83 +_0806A398: + mov r1, sb + ldr r4, [r1] + b _0806A754 +_0806A39E: + mov r2, sb + ldr r4, [r2, #4] + b _0806A754 +_0806A3A4: + mov r0, sb + ldrb r1, [r0, #0x13] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0806A3C8 + movs r4, #0 + ldr r2, _0806A3C4 +_0806A3B4: + adds r0, r7, r4 + adds r1, r4, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r4, #1 + cmp r4, #4 + bls _0806A3B4 + b _0806A40A + .align 2, 0 +_0806A3C4: .4byte 0x085ABC78 +_0806A3C8: + movs r4, #0 + mov r2, sb + adds r2, #8 +_0806A3CE: + adds r0, r7, r4 + adds r1, r2, r4 + ldrb r1, [r1] + strb r1, [r0] + adds r4, #1 + cmp r4, #9 + bls _0806A3CE + b _0806A40A +_0806A3DE: + mov r1, sb + ldrb r4, [r1, #0x12] + b _0806A754 +_0806A3E4: + mov r2, sb + ldrb r0, [r2, #0x13] + b _0806A558 +_0806A3EA: + mov r7, sb + ldrb r0, [r7, #0x13] + b _0806A560 +_0806A3F0: + mov r1, sb + ldrb r0, [r1, #0x13] + b _0806A568 +_0806A3F6: + movs r4, #0 + mov r2, sb + adds r2, #0x14 +_0806A3FC: + adds r0, r7, r4 + adds r1, r2, r4 + ldrb r1, [r1] + strb r1, [r0] + adds r4, #1 + cmp r4, #6 + bls _0806A3FC +_0806A40A: + adds r1, r7, r4 + movs r0, #0xff + strb r0, [r1] + b _0806A754 +_0806A412: + mov r2, sb + ldrb r4, [r2, #0x1b] + b _0806A754 +_0806A418: + mov r7, sb + ldrh r4, [r7, #0x1c] + b _0806A754 +_0806A41E: + mov r0, sb + ldrh r4, [r0, #0x1e] + b _0806A754 +_0806A424: + mov r2, sb + ldrb r1, [r2, #0x13] + movs r0, #1 + ands r0, r1 + movs r4, #0xce + lsls r4, r4, #1 + cmp r0, #0 + beq _0806A436 + b _0806A754 +_0806A436: + mov r7, r8 + ldrh r4, [r7] + b _0806A754 +_0806A43C: + mov r0, r8 + ldrh r4, [r0, #2] + b _0806A754 +_0806A442: + mov r1, r8 + ldr r4, [r1, #4] + b _0806A754 +_0806A448: + mov r2, r8 + ldrb r4, [r2, #8] + b _0806A754 +_0806A44E: + mov r7, r8 + ldrb r4, [r7, #9] + b _0806A754 +_0806A454: + ldr r0, [sp] + subs r0, #0xd + lsls r0, r0, #1 + add r0, sl + ldrh r4, [r0] + b _0806A754 +_0806A460: + ldr r0, [sp] + add r0, sl + subs r0, #9 + ldrb r4, [r0] + b _0806A754 +_0806A46A: + ldrb r4, [r6] + b _0806A754 +_0806A46E: + ldrb r4, [r6, #1] + b _0806A754 +_0806A472: + ldrb r4, [r6, #2] + b _0806A754 +_0806A476: + ldrb r4, [r6, #3] + b _0806A754 +_0806A47A: + ldrb r4, [r6, #4] + b _0806A754 +_0806A47E: + ldrb r4, [r6, #5] + b _0806A754 +_0806A482: + ldrb r4, [r6, #6] + b _0806A754 +_0806A486: + ldrb r4, [r6, #7] + b _0806A754 +_0806A48A: + ldrb r4, [r6, #8] + b _0806A754 +_0806A48E: + ldrb r4, [r6, #9] + b _0806A754 +_0806A492: + ldrb r4, [r6, #0xa] + b _0806A754 +_0806A496: + ldrb r4, [r6, #0xb] + b _0806A754 +_0806A49A: + ldrb r4, [r5] + b _0806A754 +_0806A49E: + ldrb r4, [r5, #1] + b _0806A754 +_0806A4A2: + ldrb r0, [r5, #2] + lsls r0, r0, #0x19 + lsrs r4, r0, #0x19 + b _0806A754 +_0806A4AA: + ldrh r0, [r5, #2] + lsls r0, r0, #0x15 + lsrs r4, r0, #0x1c + b _0806A754 +_0806A4B2: + ldrb r0, [r5, #3] + b _0806A570 +_0806A4B6: + ldrb r0, [r5, #3] + lsrs r4, r0, #7 + b _0806A754 +_0806A4BC: + ldrb r0, [r5, #4] + lsls r0, r0, #0x1b + lsrs r4, r0, #0x1b + b _0806A754 +_0806A4C4: + ldrh r0, [r5, #4] + lsls r0, r0, #0x16 + lsrs r4, r0, #0x1b + b _0806A754 +_0806A4CC: + ldrb r0, [r5, #5] + lsls r0, r0, #0x19 + lsrs r4, r0, #0x1b + b _0806A754 +_0806A4D4: + ldr r0, [r5, #4] + lsls r0, r0, #0xc + lsrs r4, r0, #0x1b + b _0806A754 +_0806A4DC: + ldrh r0, [r5, #6] + lsls r0, r0, #0x17 + lsrs r4, r0, #0x1b + b _0806A754 +_0806A4E4: + ldrb r0, [r5, #7] + lsls r0, r0, #0x1a + lsrs r4, r0, #0x1b + b _0806A754 +_0806A4EC: + ldrb r0, [r5, #7] + b _0806A54A +_0806A4F0: + ldrb r0, [r5, #7] + lsrs r4, r0, #7 + b _0806A754 +_0806A4F6: + ldrb r0, [r5, #8] + lsls r0, r0, #0x1d + lsrs r4, r0, #0x1d + b _0806A754 +_0806A4FE: + ldrb r0, [r5, #8] + lsls r0, r0, #0x1a + lsrs r4, r0, #0x1d + b _0806A754 +_0806A506: + ldrh r0, [r5, #8] + lsls r0, r0, #0x17 + lsrs r4, r0, #0x1d + b _0806A754 +_0806A50E: + ldrb r0, [r5, #9] + lsls r0, r0, #0x1c + lsrs r4, r0, #0x1d + b _0806A754 +_0806A516: + ldrb r0, [r5, #9] + lsls r0, r0, #0x19 + lsrs r4, r0, #0x1d + b _0806A754 +_0806A51E: + ldrb r0, [r5, #9] + lsrs r4, r0, #7 + b _0806A754 +_0806A524: + ldrb r0, [r5, #0xa] + b _0806A558 +_0806A528: + ldrb r0, [r5, #0xa] + b _0806A560 +_0806A52C: + ldrb r0, [r5, #0xa] + b _0806A568 +_0806A530: + ldrb r0, [r5, #0xa] + lsls r0, r0, #0x1c + lsrs r4, r0, #0x1f + b _0806A754 +_0806A538: + ldrb r0, [r5, #0xa] + lsls r0, r0, #0x1b + lsrs r4, r0, #0x1f + b _0806A754 +_0806A540: + ldrb r0, [r5, #0xa] + lsls r0, r0, #0x1a + lsrs r4, r0, #0x1f + b _0806A754 +_0806A548: + ldrb r0, [r5, #0xa] +_0806A54A: + lsls r0, r0, #0x19 + lsrs r4, r0, #0x1f + b _0806A754 +_0806A550: + ldrb r0, [r5, #0xa] + lsrs r4, r0, #7 + b _0806A754 +_0806A556: + ldrb r0, [r5, #0xb] +_0806A558: + lsls r0, r0, #0x1f + lsrs r4, r0, #0x1f + b _0806A754 +_0806A55E: + ldrb r0, [r5, #0xb] +_0806A560: + lsls r0, r0, #0x1e + lsrs r4, r0, #0x1f + b _0806A754 +_0806A566: + ldrb r0, [r5, #0xb] +_0806A568: + lsls r0, r0, #0x1d + lsrs r4, r0, #0x1f + b _0806A754 +_0806A56E: + ldrb r0, [r5, #0xb] +_0806A570: + lsls r0, r0, #0x19 + lsrs r4, r0, #0x1c + b _0806A754 +_0806A576: + ldrb r0, [r5, #0xb] + lsrs r4, r0, #7 + b _0806A754 +_0806A57C: + mov r0, r8 + ldrh r4, [r0] + cmp r4, #0 + bne _0806A586 + b _0806A754 +_0806A586: + ldrb r0, [r5, #7] + lsls r0, r0, #0x19 + cmp r0, #0 + blt _0806A59C + mov r2, sb + ldrb r1, [r2, #0x13] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0806A59C + b _0806A754 +_0806A59C: + movs r4, #0xce + lsls r4, r4, #1 + b _0806A754 +_0806A5A2: + ldrb r0, [r5, #4] + lsls r0, r0, #0x1b + lsrs r4, r0, #0x1b + ldrh r1, [r5, #4] + movs r0, #0xf8 + lsls r0, r0, #2 + ands r0, r1 + orrs r4, r0 + ldrb r0, [r5, #5] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1b + lsls r0, r0, #0xa + orrs r4, r0 + ldr r0, [r5, #4] + movs r1, #0xf8 + lsls r1, r1, #0xc + ands r0, r1 + orrs r4, r0 + ldrh r0, [r5, #6] + lsls r0, r0, #0x17 + lsrs r0, r0, #0x1b + lsls r0, r0, #0x14 + orrs r4, r0 + ldrb r0, [r5, #7] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + lsls r0, r0, #0x19 + orrs r4, r0 + b _0806A754 +_0806A5DC: + mov r1, r8 + ldrh r0, [r1] + cmp r0, #0 + bne _0806A5E6 + b _0806A754 +_0806A5E6: + ldrb r0, [r5, #7] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _0806A5F0 + b _0806A754 +_0806A5F0: + ldrh r0, [r7] + ldr r1, _0806A630 + cmp r0, r1 + bne _0806A5FA + b _0806A754 +_0806A5FA: + mov r2, sl + ldrh r5, [r2] + adds r6, r1, #0 + adds r2, r7, #0 + ldr r1, _0806A634 +_0806A604: + ldrh r3, [r2] + cmp r5, r3 + beq _0806A61E + mov r7, sl + ldrh r0, [r7, #2] + cmp r0, r3 + beq _0806A61E + ldrh r0, [r7, #4] + cmp r0, r3 + beq _0806A61E + ldrh r0, [r7, #6] + cmp r0, r3 + bne _0806A622 +_0806A61E: + ldr r0, [r1] + orrs r4, r0 +_0806A622: + adds r2, #2 + adds r1, #4 + ldrh r0, [r2] + cmp r0, r6 + bne _0806A604 + b _0806A754 + .align 2, 0 +_0806A630: .4byte 0x00000163 +_0806A634: .4byte 0x082FACB4 +_0806A638: + movs r4, #0 + mov r1, r8 + ldrh r0, [r1] + cmp r0, #0 + bne _0806A644 + b _0806A754 +_0806A644: + ldrb r0, [r5, #7] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _0806A64E + b _0806A754 +_0806A64E: + ldrb r0, [r5, #8] + lsls r1, r0, #0x1d + lsrs r4, r1, #0x1d + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1d + adds r4, r4, r0 + ldrh r0, [r5, #8] + lsls r0, r0, #0x17 + lsrs r0, r0, #0x1d + adds r4, r4, r0 + ldrb r1, [r5, #9] + lsls r0, r1, #0x1c + lsrs r0, r0, #0x1d + adds r4, r4, r0 + lsls r0, r1, #0x19 + lsrs r0, r0, #0x1d + adds r4, r4, r0 + lsrs r1, r1, #7 + adds r4, r4, r1 + ldrb r1, [r5, #0xa] + lsls r0, r1, #0x1f + lsrs r0, r0, #0x1f + adds r4, r4, r0 + lsls r0, r1, #0x1e + lsrs r0, r0, #0x1f + adds r4, r4, r0 + lsls r0, r1, #0x1d + lsrs r0, r0, #0x1f + adds r4, r4, r0 + lsls r0, r1, #0x1c + lsrs r0, r0, #0x1f + adds r4, r4, r0 + lsls r0, r1, #0x1b + lsrs r0, r0, #0x1f + adds r4, r4, r0 + lsls r0, r1, #0x1a + lsrs r0, r0, #0x1f + adds r4, r4, r0 + lsls r0, r1, #0x19 + lsrs r0, r0, #0x1f + adds r4, r4, r0 + lsrs r1, r1, #7 + adds r4, r4, r1 + ldrb r1, [r5, #0xb] + lsls r0, r1, #0x1f + lsrs r0, r0, #0x1f + adds r4, r4, r0 + lsls r0, r1, #0x1e + lsrs r0, r0, #0x1f + adds r4, r4, r0 + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1f + adds r4, r4, r1 + b _0806A754 +_0806A6BA: + movs r4, #0 + mov r2, r8 + ldrh r0, [r2] + cmp r0, #0 + beq _0806A754 + ldrb r0, [r5, #7] + lsls r0, r0, #0x19 + cmp r0, #0 + blt _0806A754 + ldrb r2, [r5, #9] + lsrs r4, r2, #7 + ldrb r1, [r5, #8] + lsls r0, r1, #0x1d + lsrs r0, r0, #0x1c + orrs r4, r0 + lsls r1, r1, #0x1a + lsrs r1, r1, #0x1d + lsls r1, r1, #4 + orrs r4, r1 + ldrh r0, [r5, #8] + lsls r0, r0, #0x17 + lsrs r0, r0, #0x1d + lsls r0, r0, #7 + orrs r4, r0 + lsls r0, r2, #0x1c + lsrs r0, r0, #0x1d + lsls r0, r0, #0xa + orrs r4, r0 + lsls r2, r2, #0x19 + lsrs r2, r2, #0x1d + lsls r2, r2, #0xd + orrs r4, r2 + ldrb r1, [r5, #0xa] + lsls r0, r1, #0x1f + lsrs r0, r0, #0x1f + lsls r0, r0, #0x10 + orrs r4, r0 + lsls r0, r1, #0x1e + lsrs r0, r0, #0x1f + lsls r0, r0, #0x11 + orrs r4, r0 + lsls r0, r1, #0x1d + lsrs r0, r0, #0x1f + lsls r0, r0, #0x12 + orrs r4, r0 + lsls r0, r1, #0x1c + lsrs r0, r0, #0x1f + lsls r0, r0, #0x13 + orrs r4, r0 + lsls r0, r1, #0x1b + lsrs r0, r0, #0x1f + lsls r0, r0, #0x14 + orrs r4, r0 + lsls r0, r1, #0x1a + lsrs r0, r0, #0x1f + lsls r0, r0, #0x15 + orrs r4, r0 + lsls r0, r1, #0x19 + lsrs r0, r0, #0x1f + lsls r0, r0, #0x16 + orrs r4, r0 + lsrs r1, r1, #7 + lsls r1, r1, #0x17 + orrs r4, r1 + ldrb r1, [r5, #0xb] + lsls r0, r1, #0x1f + lsrs r0, r0, #0x1f + lsls r0, r0, #0x18 + orrs r4, r0 + lsls r0, r1, #0x1e + lsrs r0, r0, #0x1f + lsls r0, r0, #0x19 + orrs r4, r0 + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1f + lsls r1, r1, #0x1a + orrs r4, r1 +_0806A754: + ldr r7, [sp] + cmp r7, #0xa + ble _0806A760 + mov r0, sb + bl EncryptBoxMon +_0806A760: + adds r0, r4, #0 + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetBoxMonData + + thumb_func_start SetMonData +SetMonData: @ 0x0806A774 + push {lr} + adds r3, r0, #0 + adds r0, r1, #0 + subs r0, #0x37 + cmp r0, #0xa + bhi _0806A858 + lsls r0, r0, #2 + ldr r1, _0806A78C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806A78C: .4byte 0x0806A790 +_0806A790: @ jump table + .4byte _0806A7BC @ case 0 + .4byte _0806A7D4 @ case 1 + .4byte _0806A7DE @ case 2 + .4byte _0806A7EE @ case 3 + .4byte _0806A7FE @ case 4 + .4byte _0806A80E @ case 5 + .4byte _0806A81E @ case 6 + .4byte _0806A82E @ case 7 + .4byte _0806A83E @ case 8 + .4byte _0806A84E @ case 9 + .4byte _0806A85E @ case 10 +_0806A7BC: + ldrb r1, [r2] + ldrb r0, [r2, #1] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r2, #2] + lsls r0, r0, #0x10 + adds r1, r1, r0 + ldrb r0, [r2, #3] + lsls r0, r0, #0x18 + adds r1, r1, r0 + str r1, [r3, #0x50] + b _0806A85E +_0806A7D4: + ldrb r1, [r2] + adds r0, r3, #0 + adds r0, #0x54 + strb r1, [r0] + b _0806A85E +_0806A7DE: + ldrb r0, [r2] + ldrb r1, [r2, #1] + lsls r1, r1, #8 + adds r0, r0, r1 + adds r1, r3, #0 + adds r1, #0x56 + strh r0, [r1] + b _0806A85E +_0806A7EE: + ldrb r0, [r2] + ldrb r1, [r2, #1] + lsls r1, r1, #8 + adds r0, r0, r1 + adds r1, r3, #0 + adds r1, #0x58 + strh r0, [r1] + b _0806A85E +_0806A7FE: + ldrb r0, [r2] + ldrb r1, [r2, #1] + lsls r1, r1, #8 + adds r0, r0, r1 + adds r1, r3, #0 + adds r1, #0x5a + strh r0, [r1] + b _0806A85E +_0806A80E: + ldrb r0, [r2] + ldrb r1, [r2, #1] + lsls r1, r1, #8 + adds r0, r0, r1 + adds r1, r3, #0 + adds r1, #0x5c + strh r0, [r1] + b _0806A85E +_0806A81E: + ldrb r0, [r2] + ldrb r1, [r2, #1] + lsls r1, r1, #8 + adds r0, r0, r1 + adds r1, r3, #0 + adds r1, #0x5e + strh r0, [r1] + b _0806A85E +_0806A82E: + ldrb r0, [r2] + ldrb r1, [r2, #1] + lsls r1, r1, #8 + adds r0, r0, r1 + adds r1, r3, #0 + adds r1, #0x60 + strh r0, [r1] + b _0806A85E +_0806A83E: + ldrb r0, [r2] + ldrb r1, [r2, #1] + lsls r1, r1, #8 + adds r0, r0, r1 + adds r1, r3, #0 + adds r1, #0x62 + strh r0, [r1] + b _0806A85E +_0806A84E: + ldrb r1, [r2] + adds r0, r3, #0 + adds r0, #0x55 + strb r1, [r0] + b _0806A85E +_0806A858: + adds r0, r3, #0 + bl SetBoxMonData +_0806A85E: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetMonData + + thumb_func_start SetBoxMonData +SetBoxMonData: @ 0x0806A864 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r7, r0, #0 + mov sl, r1 + adds r4, r2, #0 + movs r0, #0 + mov r8, r0 + mov sb, r0 + movs r6, #0 + movs r5, #0 + cmp r1, #0xa + ble _0806A8E4 + ldr r1, [r7] + adds r0, r7, #0 + movs r2, #0 + bl GetSubstruct + mov r8, r0 + ldr r1, [r7] + adds r0, r7, #0 + movs r2, #1 + bl GetSubstruct + mov sb, r0 + ldr r1, [r7] + adds r0, r7, #0 + movs r2, #2 + bl GetSubstruct + adds r6, r0, #0 + ldr r1, [r7] + adds r0, r7, #0 + movs r2, #3 + bl GetSubstruct + adds r5, r0, #0 + adds r0, r7, #0 + bl DecryptBoxMon + adds r0, r7, #0 + bl CalculateBoxMonChecksum + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrh r1, [r7, #0x1c] + cmp r0, r1 + beq _0806A8E4 + ldrb r0, [r7, #0x13] + movs r1, #1 + orrs r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r7, #0x13] + ldrb r0, [r5, #7] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r5, #7] + adds r0, r7, #0 + bl EncryptBoxMon + b _0806AEB4 +_0806A8E4: + mov r0, sl + cmp r0, #0x50 + bls _0806A8EC + b _0806AEA0 +_0806A8EC: + lsls r0, r0, #2 + ldr r1, _0806A8F8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806A8F8: .4byte 0x0806A8FC +_0806A8FC: @ jump table + .4byte _0806AA40 @ case 0 + .4byte _0806AA58 @ case 1 + .4byte _0806AA70 @ case 2 + .4byte _0806AA86 @ case 3 + .4byte _0806AA8C @ case 4 + .4byte _0806AA9C @ case 5 + .4byte _0806AAAE @ case 6 + .4byte _0806AAC0 @ case 7 + .4byte _0806AAD6 @ case 8 + .4byte _0806AADC @ case 9 + .4byte _0806AAE8 @ case 10 + .4byte _0806AAF4 @ case 11 + .4byte _0806AB14 @ case 12 + .4byte _0806AB4C @ case 13 + .4byte _0806AB4C @ case 14 + .4byte _0806AB4C @ case 15 + .4byte _0806AB4C @ case 16 + .4byte _0806AB60 @ case 17 + .4byte _0806AB60 @ case 18 + .4byte _0806AB60 @ case 19 + .4byte _0806AB60 @ case 20 + .4byte _0806AB3C @ case 21 + .4byte _0806AB90 @ case 22 + .4byte _0806AB96 @ case 23 + .4byte _0806AB9C @ case 24 + .4byte _0806AB22 @ case 25 + .4byte _0806AB6C @ case 26 + .4byte _0806AB72 @ case 27 + .4byte _0806AB78 @ case 28 + .4byte _0806AB7E @ case 29 + .4byte _0806AB84 @ case 30 + .4byte _0806AB8A @ case 31 + .4byte _0806AB44 @ case 32 + .4byte _0806ABA2 @ case 33 + .4byte _0806ABB4 @ case 34 + .4byte _0806ABBA @ case 35 + .4byte _0806ABC0 @ case 36 + .4byte _0806ABD4 @ case 37 + .4byte _0806ABEC @ case 38 + .4byte _0806AC12 @ case 39 + .4byte _0806AC26 @ case 40 + .4byte _0806AC40 @ case 41 + .4byte _0806AC56 @ case 42 + .4byte _0806AC70 @ case 43 + .4byte _0806AC88 @ case 44 + .4byte _0806AC9C @ case 45 + .4byte _0806ACCC @ case 46 + .4byte _0806ABA8 @ case 47 + .4byte _0806ABAE @ case 48 + .4byte _0806AC02 @ case 49 + .4byte _0806ACDC @ case 50 + .4byte _0806ACEA @ case 51 + .4byte _0806AD00 @ case 52 + .4byte _0806AD18 @ case 53 + .4byte _0806AD28 @ case 54 + .4byte _0806AEA0 @ case 55 + .4byte _0806AEA0 @ case 56 + .4byte _0806AEA0 @ case 57 + .4byte _0806AEA0 @ case 58 + .4byte _0806AEA0 @ case 59 + .4byte _0806AEA0 @ case 60 + .4byte _0806AEA0 @ case 61 + .4byte _0806AEA0 @ case 62 + .4byte _0806AEA0 @ case 63 + .4byte _0806AEA0 @ case 64 + .4byte _0806AEA0 @ case 65 + .4byte _0806AE26 @ case 66 + .4byte _0806AD3E @ case 67 + .4byte _0806AD4E @ case 68 + .4byte _0806AD5C @ case 69 + .4byte _0806AD6C @ case 70 + .4byte _0806AD7C @ case 71 + .4byte _0806AD8C @ case 72 + .4byte _0806AD9C @ case 73 + .4byte _0806ADAC @ case 74 + .4byte _0806ADC2 @ case 75 + .4byte _0806ADD2 @ case 76 + .4byte _0806ADE0 @ case 77 + .4byte _0806ADF0 @ case 78 + .4byte _0806AE00 @ case 79 + .4byte _0806AE16 @ case 80 +_0806AA40: + ldrb r1, [r4] + ldrb r0, [r4, #1] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r4, #2] + lsls r0, r0, #0x10 + adds r1, r1, r0 + ldrb r0, [r4, #3] + lsls r0, r0, #0x18 + adds r1, r1, r0 + str r1, [r7] + b _0806AEA0 +_0806AA58: + ldrb r1, [r4] + ldrb r0, [r4, #1] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r4, #2] + lsls r0, r0, #0x10 + adds r1, r1, r0 + ldrb r0, [r4, #3] + lsls r0, r0, #0x18 + adds r1, r1, r0 + str r1, [r7, #4] + b _0806AEA0 +_0806AA70: + movs r2, #0 + adds r3, r7, #0 + adds r3, #8 +_0806AA76: + adds r0, r3, r2 + adds r1, r4, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, #9 + ble _0806AA76 + b _0806AEA0 +_0806AA86: + ldrb r0, [r4] + strb r0, [r7, #0x12] + b _0806AEA0 +_0806AA8C: + ldrb r0, [r4] + movs r1, #1 + ands r1, r0 + ldrb r2, [r7, #0x13] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + b _0806ACBA +_0806AA9C: + ldrb r0, [r4] + movs r1, #1 + ands r1, r0 + lsls r1, r1, #1 + ldrb r2, [r7, #0x13] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r2 + b _0806ACBA +_0806AAAE: + ldrb r0, [r4] + movs r1, #1 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r7, #0x13] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + b _0806ACBA +_0806AAC0: + movs r2, #0 + adds r3, r7, #0 + adds r3, #0x14 +_0806AAC6: + adds r0, r3, r2 + adds r1, r4, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, #6 + ble _0806AAC6 + b _0806AEA0 +_0806AAD6: + ldrb r0, [r4] + strb r0, [r7, #0x1b] + b _0806AEA0 +_0806AADC: + ldrb r1, [r4] + ldrb r0, [r4, #1] + lsls r0, r0, #8 + adds r1, r1, r0 + strh r1, [r7, #0x1c] + b _0806AEA0 +_0806AAE8: + ldrb r1, [r4] + ldrb r0, [r4, #1] + lsls r0, r0, #8 + adds r1, r1, r0 + strh r1, [r7, #0x1e] + b _0806AEA0 +_0806AAF4: + ldrb r1, [r4] + ldrb r0, [r4, #1] + lsls r0, r0, #8 + adds r1, r1, r0 + mov r0, r8 + strh r1, [r0] + lsls r1, r1, #0x10 + cmp r1, #0 + beq _0806AB0C + ldrb r0, [r7, #0x13] + movs r1, #2 + b _0806ACBA +_0806AB0C: + ldrb r1, [r7, #0x13] + movs r0, #3 + rsbs r0, r0, #0 + b _0806ACC6 +_0806AB14: + ldrb r1, [r4] + ldrb r0, [r4, #1] + lsls r0, r0, #8 + adds r1, r1, r0 + mov r0, r8 + strh r1, [r0, #2] + b _0806AEA0 +_0806AB22: + ldrb r1, [r4] + ldrb r0, [r4, #1] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r4, #2] + lsls r0, r0, #0x10 + adds r1, r1, r0 + ldrb r0, [r4, #3] + lsls r0, r0, #0x18 + adds r1, r1, r0 + mov r0, r8 + str r1, [r0, #4] + b _0806AEA0 +_0806AB3C: + ldrb r0, [r4] + mov r1, r8 + strb r0, [r1, #8] + b _0806AEA0 +_0806AB44: + ldrb r0, [r4] + mov r1, r8 + strb r0, [r1, #9] + b _0806AEA0 +_0806AB4C: + mov r2, sl + subs r2, #0xd + lsls r2, r2, #1 + add r2, sb + ldrb r1, [r4] + ldrb r0, [r4, #1] + lsls r0, r0, #8 + adds r1, r1, r0 + strh r1, [r2] + b _0806AEA0 +_0806AB60: + mov r0, sb + add r0, sl + subs r0, #9 + ldrb r1, [r4] + strb r1, [r0] + b _0806AEA0 +_0806AB6C: + ldrb r0, [r4] + strb r0, [r6] + b _0806AEA0 +_0806AB72: + ldrb r0, [r4] + strb r0, [r6, #1] + b _0806AEA0 +_0806AB78: + ldrb r0, [r4] + strb r0, [r6, #2] + b _0806AEA0 +_0806AB7E: + ldrb r0, [r4] + strb r0, [r6, #3] + b _0806AEA0 +_0806AB84: + ldrb r0, [r4] + strb r0, [r6, #4] + b _0806AEA0 +_0806AB8A: + ldrb r0, [r4] + strb r0, [r6, #5] + b _0806AEA0 +_0806AB90: + ldrb r0, [r4] + strb r0, [r6, #6] + b _0806AEA0 +_0806AB96: + ldrb r0, [r4] + strb r0, [r6, #7] + b _0806AEA0 +_0806AB9C: + ldrb r0, [r4] + strb r0, [r6, #8] + b _0806AEA0 +_0806ABA2: + ldrb r0, [r4] + strb r0, [r6, #9] + b _0806AEA0 +_0806ABA8: + ldrb r0, [r4] + strb r0, [r6, #0xa] + b _0806AEA0 +_0806ABAE: + ldrb r0, [r4] + strb r0, [r6, #0xb] + b _0806AEA0 +_0806ABB4: + ldrb r0, [r4] + strb r0, [r5] + b _0806AEA0 +_0806ABBA: + ldrb r0, [r4] + strb r0, [r5, #1] + b _0806AEA0 +_0806ABC0: + ldrb r1, [r4] + movs r0, #0x7f + ands r1, r0 + ldrb r2, [r5, #2] + movs r0, #0x80 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #2] + b _0806AEA0 +_0806ABD4: + ldrb r1, [r4] + movs r0, #0xf + ands r1, r0 + lsls r1, r1, #7 + ldrh r2, [r5, #2] + ldr r0, _0806ABE8 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, #2] + b _0806AEA0 + .align 2, 0 +_0806ABE8: .4byte 0xFFFFF87F +_0806ABEC: + ldrb r1, [r4] + movs r0, #0xf + ands r1, r0 + lsls r1, r1, #3 + ldrb r2, [r5, #3] + movs r0, #0x79 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #3] + b _0806AEA0 +_0806AC02: + ldrb r0, [r4] + lsls r0, r0, #7 + ldrb r2, [r5, #3] + movs r1, #0x7f + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #3] + b _0806AEA0 +_0806AC12: + ldrb r1, [r4] + movs r0, #0x1f + ands r1, r0 + ldrb r2, [r5, #4] + movs r0, #0x20 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #4] + b _0806AEA0 +_0806AC26: + ldrb r1, [r4] + movs r0, #0x1f + ands r1, r0 + lsls r1, r1, #5 + ldrh r2, [r5, #4] + ldr r0, _0806AC3C + ands r0, r2 + orrs r0, r1 + strh r0, [r5, #4] + b _0806AEA0 + .align 2, 0 +_0806AC3C: .4byte 0xFFFFFC1F +_0806AC40: + ldrb r1, [r4] + movs r0, #0x1f + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r5, #5] + movs r0, #0x7d + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #5] + b _0806AEA0 +_0806AC56: + ldrb r2, [r4] + movs r0, #0x1f + ands r2, r0 + lsls r2, r2, #0xf + ldr r0, [r5, #4] + ldr r1, _0806AC6C + ands r0, r1 + orrs r0, r2 + str r0, [r5, #4] + b _0806AEA0 + .align 2, 0 +_0806AC6C: .4byte 0xFFF07FFF +_0806AC70: + ldrb r1, [r4] + movs r0, #0x1f + ands r1, r0 + lsls r1, r1, #4 + ldrh r2, [r5, #6] + ldr r0, _0806AC84 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, #6] + b _0806AEA0 + .align 2, 0 +_0806AC84: .4byte 0xFFFFFE0F +_0806AC88: + ldrb r1, [r4] + movs r0, #0x1f + ands r1, r0 + lsls r1, r1, #1 + ldrb r2, [r5, #7] + movs r0, #0x3f + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + b _0806AE9E +_0806AC9C: + ldrb r1, [r4] + movs r0, #1 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r5, #7] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #7] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _0806ACC0 + ldrb r0, [r7, #0x13] + movs r1, #4 +_0806ACBA: + orrs r0, r1 + strb r0, [r7, #0x13] + b _0806AEA0 +_0806ACC0: + ldrb r1, [r7, #0x13] + movs r0, #5 + rsbs r0, r0, #0 +_0806ACC6: + ands r0, r1 + strb r0, [r7, #0x13] + b _0806AEA0 +_0806ACCC: + ldrb r0, [r4] + lsls r0, r0, #7 + ldrb r2, [r5, #7] + movs r1, #0x7f + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #7] + b _0806AEA0 +_0806ACDC: + ldrb r1, [r4] + movs r0, #7 + ands r1, r0 + ldrb r2, [r5, #8] + movs r0, #8 + rsbs r0, r0, #0 + b _0806ACF8 +_0806ACEA: + ldrb r1, [r4] + movs r0, #7 + ands r1, r0 + lsls r1, r1, #3 + ldrb r2, [r5, #8] + movs r0, #0x39 + rsbs r0, r0, #0 +_0806ACF8: + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #8] + b _0806AEA0 +_0806AD00: + ldrb r1, [r4] + movs r0, #7 + ands r1, r0 + lsls r1, r1, #6 + ldrh r2, [r5, #8] + ldr r0, _0806AD14 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, #8] + b _0806AEA0 + .align 2, 0 +_0806AD14: .4byte 0xFFFFFE3F +_0806AD18: + ldrb r1, [r4] + movs r0, #7 + ands r1, r0 + lsls r1, r1, #1 + ldrb r2, [r5, #9] + movs r0, #0xf + rsbs r0, r0, #0 + b _0806AD36 +_0806AD28: + ldrb r1, [r4] + movs r0, #7 + ands r1, r0 + lsls r1, r1, #4 + ldrb r2, [r5, #9] + movs r0, #0x71 + rsbs r0, r0, #0 +_0806AD36: + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #9] + b _0806AEA0 +_0806AD3E: + ldrb r0, [r4] + lsls r0, r0, #7 + ldrb r2, [r5, #9] + movs r1, #0x7f + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #9] + b _0806AEA0 +_0806AD4E: + ldrb r1, [r4] + movs r0, #1 + ands r1, r0 + ldrb r2, [r5, #0xa] + movs r0, #2 + rsbs r0, r0, #0 + b _0806ADBA +_0806AD5C: + ldrb r1, [r4] + movs r0, #1 + ands r1, r0 + lsls r1, r1, #1 + ldrb r2, [r5, #0xa] + movs r0, #3 + rsbs r0, r0, #0 + b _0806ADBA +_0806AD6C: + ldrb r1, [r4] + movs r0, #1 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r5, #0xa] + movs r0, #5 + rsbs r0, r0, #0 + b _0806ADBA +_0806AD7C: + ldrb r1, [r4] + movs r0, #1 + ands r1, r0 + lsls r1, r1, #3 + ldrb r2, [r5, #0xa] + movs r0, #9 + rsbs r0, r0, #0 + b _0806ADBA +_0806AD8C: + ldrb r1, [r4] + movs r0, #1 + ands r1, r0 + lsls r1, r1, #4 + ldrb r2, [r5, #0xa] + movs r0, #0x11 + rsbs r0, r0, #0 + b _0806ADBA +_0806AD9C: + ldrb r1, [r4] + movs r0, #1 + ands r1, r0 + lsls r1, r1, #5 + ldrb r2, [r5, #0xa] + movs r0, #0x21 + rsbs r0, r0, #0 + b _0806ADBA +_0806ADAC: + ldrb r1, [r4] + movs r0, #1 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r5, #0xa] + movs r0, #0x41 + rsbs r0, r0, #0 +_0806ADBA: + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0xa] + b _0806AEA0 +_0806ADC2: + ldrb r0, [r4] + lsls r0, r0, #7 + ldrb r2, [r5, #0xa] + movs r1, #0x7f + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0xa] + b _0806AEA0 +_0806ADD2: + ldrb r1, [r4] + movs r0, #1 + ands r1, r0 + ldrb r2, [r5, #0xb] + movs r0, #2 + rsbs r0, r0, #0 + b _0806AE0E +_0806ADE0: + ldrb r1, [r4] + movs r0, #1 + ands r1, r0 + lsls r1, r1, #1 + ldrb r2, [r5, #0xb] + movs r0, #3 + rsbs r0, r0, #0 + b _0806AE0E +_0806ADF0: + ldrb r1, [r4] + movs r0, #1 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r5, #0xb] + movs r0, #5 + rsbs r0, r0, #0 + b _0806AE0E +_0806AE00: + ldrb r1, [r4] + movs r0, #0xf + ands r1, r0 + lsls r1, r1, #3 + ldrb r2, [r5, #0xb] + movs r0, #0x79 + rsbs r0, r0, #0 +_0806AE0E: + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0xb] + b _0806AEA0 +_0806AE16: + ldrb r0, [r4] + lsls r0, r0, #7 + ldrb r2, [r5, #0xb] + movs r1, #0x7f + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0xb] + b _0806AEA0 +_0806AE26: + ldrb r3, [r4] + ldrb r0, [r4, #1] + lsls r0, r0, #8 + orrs r3, r0 + ldrb r0, [r4, #2] + lsls r0, r0, #0x10 + orrs r3, r0 + ldrb r0, [r4, #3] + lsls r0, r0, #0x18 + orrs r3, r0 + movs r4, #0x1f + adds r1, r3, #0 + ands r1, r4 + ldrb r2, [r5, #4] + movs r0, #0x20 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #4] + lsrs r1, r3, #5 + ands r1, r4 + lsls r1, r1, #5 + ldrh r2, [r5, #4] + ldr r0, _0806AEC4 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, #4] + lsrs r1, r3, #0xa + ands r1, r4 + lsls r1, r1, #2 + ldrb r2, [r5, #5] + movs r0, #0x7d + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #5] + lsrs r1, r3, #0xf + ands r1, r4 + lsls r1, r1, #0xf + ldr r0, [r5, #4] + ldr r2, _0806AEC8 + ands r0, r2 + orrs r0, r1 + str r0, [r5, #4] + lsrs r1, r3, #0x14 + ands r1, r4 + lsls r1, r1, #4 + ldrh r2, [r5, #6] + ldr r0, _0806AECC + ands r0, r2 + orrs r0, r1 + strh r0, [r5, #6] + lsrs r3, r3, #0x19 + ands r3, r4 + lsls r3, r3, #1 + ldrb r1, [r5, #7] + movs r0, #0x3f + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r3 +_0806AE9E: + strb r0, [r5, #7] +_0806AEA0: + mov r0, sl + cmp r0, #0xa + ble _0806AEB4 + adds r0, r7, #0 + bl CalculateBoxMonChecksum + strh r0, [r7, #0x1c] + adds r0, r7, #0 + bl EncryptBoxMon +_0806AEB4: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0806AEC4: .4byte 0xFFFFFC1F +_0806AEC8: .4byte 0xFFF07FFF +_0806AECC: .4byte 0xFFFFFE0F + thumb_func_end SetBoxMonData + + thumb_func_start CopyMon +CopyMon: @ 0x0806AED0 + push {lr} + bl memcpy + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CopyMon + + thumb_func_start GiveMonToPlayer +GiveMonToPlayer: @ 0x0806AEDC + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r4, _0806AF08 + ldr r2, [r4] + movs r1, #7 + bl SetMonData + ldr r2, [r4] + adds r2, #8 + adds r0, r6, #0 + movs r1, #0x31 + bl SetMonData + ldr r2, [r4] + adds r2, #0xa + adds r0, r6, #0 + movs r1, #1 + bl SetMonData + movs r5, #0 + b _0806AF0E + .align 2, 0 +_0806AF08: .4byte 0x03005AF0 +_0806AF0C: + adds r5, #1 +_0806AF0E: + cmp r5, #5 + bgt _0806AF48 + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _0806AF40 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + cmp r0, #0 + bne _0806AF0C + adds r0, r4, #0 + adds r1, r6, #0 + movs r2, #0x64 + bl CopyMon + ldr r1, _0806AF44 + adds r0, r5, #1 + strb r0, [r1] + movs r0, #0 + b _0806AF52 + .align 2, 0 +_0806AF40: .4byte 0x02024190 +_0806AF44: .4byte 0x0202418D +_0806AF48: + adds r0, r6, #0 + bl SendMonToPC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_0806AF52: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end GiveMonToPlayer + + thumb_func_start SendMonToPC +SendMonToPC: @ 0x0806AF58 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + ldr r0, _0806AFCC + bl VarGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl set_unknown_box_id + bl StorageGetCurrentBox + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_0806AF76: + movs r6, #0 + lsls r7, r5, #0x18 +_0806AF7A: + lsls r1, r6, #0x18 + lsrs r1, r1, #0x18 + lsrs r0, r7, #0x18 + bl GetBoxedMonPtr + adds r4, r0, #0 + movs r1, #0xb + movs r2, #0 + bl GetBoxMonData + cmp r0, #0 + bne _0806AFDC + mov r0, r8 + bl GiveMonInitialMoveset + adds r0, r4, #0 + mov r1, r8 + movs r2, #0x50 + bl CopyMon + ldr r0, _0806AFD0 + strh r5, [r0] + ldr r0, _0806AFD4 + strh r6, [r0] + bl get_unknown_box_id + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r5 + beq _0806AFBC + ldr r0, _0806AFD8 + bl FlagClear +_0806AFBC: + lsls r1, r5, #0x10 + ldr r0, _0806AFCC + lsrs r1, r1, #0x10 + bl VarSet + movs r0, #1 + b _0806AFF8 + .align 2, 0 +_0806AFCC: .4byte 0x00004036 +_0806AFD0: .4byte 0x02037296 +_0806AFD4: .4byte 0x02037298 +_0806AFD8: .4byte 0x000008D7 +_0806AFDC: + adds r6, #1 + cmp r6, #0x1d + ble _0806AF7A + adds r5, #1 + cmp r5, #0xe + bne _0806AFEA + movs r5, #0 +_0806AFEA: + bl StorageGetCurrentBox + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r5, r0 + bne _0806AF76 + movs r0, #2 +_0806AFF8: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SendMonToPC + + thumb_func_start CalculatePlayerPartyCount +CalculatePlayerPartyCount: @ 0x0806B004 + push {r4, lr} + ldr r0, _0806B010 + movs r1, #0 + strb r1, [r0] + b _0806B01C + .align 2, 0 +_0806B010: .4byte 0x0202418D +_0806B014: + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + adds r0, r4, #0 +_0806B01C: + adds r4, r0, #0 + ldrb r0, [r4] + cmp r0, #5 + bhi _0806B03A + adds r1, r0, #0 + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0806B044 + adds r0, r0, r1 + movs r1, #0xb + movs r2, #0 + bl GetMonData + cmp r0, #0 + bne _0806B014 +_0806B03A: + ldrb r0, [r4] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0806B044: .4byte 0x02024190 + thumb_func_end CalculatePlayerPartyCount + + thumb_func_start CalculateEnemyPartyCount +CalculateEnemyPartyCount: @ 0x0806B048 + push {r4, lr} + ldr r0, _0806B054 + movs r1, #0 + strb r1, [r0] + b _0806B060 + .align 2, 0 +_0806B054: .4byte 0x0202418E +_0806B058: + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + adds r0, r4, #0 +_0806B060: + adds r4, r0, #0 + ldrb r0, [r4] + cmp r0, #5 + bhi _0806B07E + adds r1, r0, #0 + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0806B088 + adds r0, r0, r1 + movs r1, #0xb + movs r2, #0 + bl GetMonData + cmp r0, #0 + bne _0806B058 +_0806B07E: + ldrb r0, [r4] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0806B088: .4byte 0x020243E8 + thumb_func_end CalculateEnemyPartyCount + + thumb_func_start GetMonsStateToDoubles +GetMonsStateToDoubles: @ 0x0806B08C + push {r4, r5, r6, lr} + movs r6, #0 + bl CalculatePlayerPartyCount + ldr r1, _0806B0F8 + ldrb r0, [r1] + cmp r0, #1 + beq _0806B0F0 + movs r5, #0 + ldrb r1, [r1] + cmp r6, r1 + bge _0806B0E8 +_0806B0A4: + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _0806B0FC + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0x41 + movs r2, #0 + bl GetMonData + movs r1, #0xce + lsls r1, r1, #1 + cmp r0, r1 + beq _0806B0DE + adds r0, r4, #0 + movs r1, #0x39 + movs r2, #0 + bl GetMonData + cmp r0, #0 + beq _0806B0DE + adds r0, r4, #0 + movs r1, #0x41 + movs r2, #0 + bl GetMonData + cmp r0, #0 + beq _0806B0DE + adds r6, #1 +_0806B0DE: + adds r5, #1 + ldr r0, _0806B0F8 + ldrb r0, [r0] + cmp r5, r0 + blt _0806B0A4 +_0806B0E8: + movs r0, #0 + cmp r6, #1 + bgt _0806B0F0 + movs r0, #2 +_0806B0F0: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0806B0F8: .4byte 0x0202418D +_0806B0FC: .4byte 0x02024190 + thumb_func_end GetMonsStateToDoubles + + thumb_func_start GetMonsStateToDoubles_2 +GetMonsStateToDoubles_2: @ 0x0806B100 + push {r4, r5, r6, lr} + movs r6, #0 + movs r5, #0 +_0806B106: + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _0806B148 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0x41 + movs r2, #0 + bl GetMonData + adds r1, r0, #0 + movs r0, #0xce + lsls r0, r0, #1 + cmp r1, r0 + beq _0806B138 + cmp r1, #0 + beq _0806B138 + adds r0, r4, #0 + movs r1, #0x39 + movs r2, #0 + bl GetMonData + cmp r0, #0 + beq _0806B138 + adds r6, #1 +_0806B138: + adds r5, #1 + cmp r5, #5 + ble _0806B106 + cmp r6, #1 + bne _0806B14C + movs r0, #1 + b _0806B154 + .align 2, 0 +_0806B148: .4byte 0x02024190 +_0806B14C: + movs r0, #0 + cmp r6, #1 + bgt _0806B154 + movs r0, #2 +_0806B154: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetMonsStateToDoubles_2 + + thumb_func_start GetAbilityBySpecies +GetAbilityBySpecies: @ 0x0806B15C + push {lr} + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + lsls r1, r1, #0x18 + cmp r1, #0 + beq _0806B180 + ldr r2, _0806B178 + ldr r1, _0806B17C + lsls r0, r3, #3 + subs r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #0x17] + b _0806B18E + .align 2, 0 +_0806B178: .4byte 0x02023EAE +_0806B17C: .4byte 0x082F0D54 +_0806B180: + ldr r2, _0806B198 + ldr r1, _0806B19C + lsls r0, r3, #3 + subs r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #0x16] +_0806B18E: + strb r0, [r2] + ldrb r0, [r2] + pop {r1} + bx r1 + .align 2, 0 +_0806B198: .4byte 0x02023EAE +_0806B19C: .4byte 0x082F0D54 + thumb_func_end GetAbilityBySpecies + + thumb_func_start GetMonAbility +GetMonAbility: @ 0x0806B1A0 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + movs r1, #0x2e + movs r2, #0 + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl GetAbilityBySpecies + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetMonAbility + + thumb_func_start CreateSecretBaseEnemyParty +CreateSecretBaseEnemyParty: @ 0x0806B1D4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + adds r5, r0, #0 + bl ZeroEnemyPartyMons + ldr r4, _0806B2EC + ldr r0, [r4] + ldr r0, [r0] + adds r1, r5, #0 + movs r2, #0xa0 + bl memcpy + movs r0, #0 + mov sb, r0 +_0806B1F8: + ldr r1, _0806B2EC + ldr r3, [r1] + ldr r2, [r3] + mov r4, sb + lsls r7, r4, #1 + adds r0, r2, #0 + adds r0, #0x7c + adds r1, r0, r7 + ldrh r0, [r1] + adds r4, #1 + str r4, [sp, #0x10] + cmp r0, #0 + beq _0806B2D2 + movs r0, #0x64 + mov r6, sb + muls r6, r0, r6 + ldr r4, _0806B2F0 + mov r8, r4 + adds r5, r6, r4 + ldrh r1, [r1] + adds r0, r2, #0 + adds r0, #0x94 + add r0, sb + ldrb r2, [r0] + movs r0, #1 + str r0, [sp] + ldr r0, [r3] + mov r3, sb + lsls r4, r3, #2 + adds r0, #0x34 + adds r0, r0, r4 + ldr r0, [r0] + str r0, [sp, #4] + movs r0, #2 + str r0, [sp, #8] + movs r0, #0 + str r0, [sp, #0xc] + adds r0, r5, #0 + movs r3, #0xf + bl CreateMon + ldr r1, _0806B2EC + ldr r0, [r1] + adds r1, r7, #0 + adds r1, #0x88 + ldr r2, [r0] + adds r2, r2, r1 + adds r0, r5, #0 + movs r1, #0xc + bl SetMonData + movs r5, #0 + mov sl, r4 + mov r7, sb + adds r7, #0x9a + mov r4, r8 +_0806B268: + adds r1, r5, #0 + adds r1, #0x1a + ldr r2, _0806B2EC + ldr r0, [r2] + ldr r2, [r0] + adds r2, r2, r7 + adds r0, r6, r4 + bl SetMonData + adds r5, #1 + cmp r5, #5 + ble _0806B268 + movs r5, #0 + movs r3, #0x64 + mov r0, sb + muls r0, r3, r0 + ldr r1, _0806B2F0 + adds r7, r0, r1 + mov r4, sl + lsls r0, r4, #1 + adds r6, r0, #0 + adds r6, #0x4c + adds r4, r0, #0 +_0806B296: + adds r1, r5, #0 + adds r1, #0xd + ldr r2, _0806B2EC + ldr r0, [r2] + ldr r2, [r0] + adds r2, r2, r6 + adds r0, r7, #0 + bl SetMonData + adds r1, r5, #0 + adds r1, #0x11 + ldr r3, _0806B2EC + ldr r0, [r3] + ldr r0, [r0] + adds r0, #0x4c + adds r0, r0, r4 + ldrh r0, [r0] + lsls r2, r0, #1 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r0, _0806B2F4 + adds r2, r2, r0 + adds r0, r7, #0 + bl SetMonData + adds r6, #2 + adds r4, #2 + adds r5, #1 + cmp r5, #3 + ble _0806B296 +_0806B2D2: + ldr r4, [sp, #0x10] + mov sb, r4 + cmp r4, #5 + ble _0806B1F8 + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0806B2EC: .4byte 0x0202414C +_0806B2F0: .4byte 0x020243E8 +_0806B2F4: .4byte 0x082ED224 + thumb_func_end CreateSecretBaseEnemyParty + + thumb_func_start GetSecretBaseTrainerClass +GetSecretBaseTrainerClass: @ 0x0806B2F8 + push {r4, r5, lr} + ldr r5, _0806B32C + ldr r0, _0806B330 + ldr r0, [r0] + ldr r4, [r0] + ldrb r0, [r4, #9] + movs r1, #5 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r2, [r4, #1] + lsls r2, r2, #0x1b + lsrs r2, r2, #0x1f + lsls r1, r2, #2 + adds r1, r1, r2 + adds r0, r0, r1 + adds r0, r0, r5 + ldrb r0, [r0] + ldr r1, _0806B334 + adds r0, r0, r1 + ldrb r0, [r0] + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0806B32C: .4byte 0x082FA844 +_0806B330: .4byte 0x0202414C +_0806B334: .4byte 0x082EFF00 + thumb_func_end GetSecretBaseTrainerClass + + thumb_func_start GetSecretBaseTrainerPicIndex +GetSecretBaseTrainerPicIndex: @ 0x0806B338 + push {r4, r5, lr} + ldr r5, _0806B36C + ldr r0, _0806B370 + ldr r0, [r0] + ldr r4, [r0] + ldrb r0, [r4, #9] + movs r1, #5 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r2, [r4, #1] + lsls r2, r2, #0x1b + lsrs r2, r2, #0x1f + lsls r1, r2, #2 + adds r1, r1, r2 + adds r0, r0, r1 + adds r0, r0, r5 + ldrb r0, [r0] + ldr r1, _0806B374 + adds r0, r0, r1 + ldrb r0, [r0] + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0806B36C: .4byte 0x082FA844 +_0806B370: .4byte 0x0202414C +_0806B374: .4byte 0x082EFF52 + thumb_func_end GetSecretBaseTrainerPicIndex + + thumb_func_start IsPlayerPartyAndPokemonStorageFull +IsPlayerPartyAndPokemonStorageFull: @ 0x0806B378 + push {r4, lr} + movs r4, #0 +_0806B37C: + movs r0, #0x64 + muls r0, r4, r0 + ldr r1, _0806B394 + adds r0, r0, r1 + movs r1, #0xb + movs r2, #0 + bl GetMonData + cmp r0, #0 + bne _0806B398 + movs r0, #0 + b _0806B3A6 + .align 2, 0 +_0806B394: .4byte 0x02024190 +_0806B398: + adds r4, #1 + cmp r4, #5 + ble _0806B37C + bl IsPokemonStorageFull + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_0806B3A6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end IsPlayerPartyAndPokemonStorageFull + + thumb_func_start IsPokemonStorageFull +IsPokemonStorageFull: @ 0x0806B3AC + push {r4, r5, r6, lr} + movs r6, #0 +_0806B3B0: + movs r4, #0 + lsls r5, r6, #0x18 +_0806B3B4: + lsls r1, r4, #0x18 + lsrs r1, r1, #0x18 + lsrs r0, r5, #0x18 + movs r2, #0xb + bl GetBoxMonDataAt + cmp r0, #0 + bne _0806B3C8 + movs r0, #0 + b _0806B3D6 +_0806B3C8: + adds r4, #1 + cmp r4, #0x1d + ble _0806B3B4 + adds r6, #1 + cmp r6, #0xd + ble _0806B3B0 + movs r0, #1 +_0806B3D6: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end IsPokemonStorageFull + + thumb_func_start GetSpeciesName +GetSpeciesName: @ 0x0806B3DC + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + movs r1, #0 + movs r7, #0xce + lsls r7, r7, #1 + ldr r5, _0806B400 + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #1 + adds r2, r6, #0 + adds r3, r0, r5 +_0806B3F6: + cmp r4, r7 + bls _0806B404 + adds r0, r1, r5 + ldrb r0, [r0] + b _0806B406 + .align 2, 0 +_0806B400: .4byte 0x082EA31C +_0806B404: + ldrb r0, [r3] +_0806B406: + strb r0, [r2] + ldrb r0, [r2] + cmp r0, #0xff + beq _0806B418 + adds r2, #1 + adds r3, #1 + adds r1, #1 + cmp r1, #0xa + ble _0806B3F6 +_0806B418: + adds r1, r6, r1 + movs r0, #0xff + strb r0, [r1] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end GetSpeciesName + + thumb_func_start CalculatePPWithBonus +CalculatePPWithBonus: @ 0x0806B424 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r4, _0806B464 + lsls r3, r0, #1 + adds r3, r3, r0 + lsls r3, r3, #2 + adds r3, r3, r4 + ldrb r4, [r3, #4] + ldr r0, _0806B468 + adds r0, r2, r0 + ldrb r3, [r0] + ands r3, r1 + lsls r2, r2, #1 + asrs r3, r2 + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #2 + muls r0, r4, r0 + movs r1, #0x64 + bl __divsi3 + adds r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0806B464: .4byte 0x082ED220 +_0806B468: .4byte 0x082FA6AA + thumb_func_end CalculatePPWithBonus + + thumb_func_start RemoveMonPPBonus +RemoveMonPPBonus: @ 0x0806B46C + push {r4, r5, lr} + sub sp, #4 + adds r5, r0, #0 + lsls r4, r1, #0x18 + lsrs r4, r4, #0x18 + movs r1, #0x15 + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, sp + strb r0, [r1] + ldr r1, _0806B4A4 + adds r4, r4, r1 + ldrb r1, [r4] + ands r1, r0 + mov r0, sp + strb r1, [r0] + adds r0, r5, #0 + movs r1, #0x15 + mov r2, sp + bl SetMonData + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0806B4A4: .4byte 0x082FA6AE + thumb_func_end RemoveMonPPBonus + + thumb_func_start RemoveBattleMonPPBonus +RemoveBattleMonPPBonus: @ 0x0806B4A8 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, #0x3b + ldr r2, _0806B4BC + adds r1, r1, r2 + ldrb r2, [r0] + ldrb r1, [r1] + ands r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 +_0806B4BC: .4byte 0x082FA6AE + thumb_func_end RemoveBattleMonPPBonus + + thumb_func_start CopyPlayerPartyMonToBattleData +CopyPlayerPartyMonToBattleData: @ 0x0806B4C0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x14] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sb, r1 + movs r0, #0x64 + mov r5, sb + muls r5, r0, r5 + ldr r0, _0806B7AC + adds r5, r5, r0 + adds r0, r5, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + ldr r1, _0806B7B0 + mov r8, r1 + movs r1, #0x58 + ldr r2, [sp, #0x14] + adds r4, r2, #0 + muls r4, r1, r4 + mov r3, r8 + adds r6, r4, r3 + strh r0, [r6] + adds r0, r5, #0 + movs r1, #0xc + movs r2, #0 + bl GetMonData + strh r0, [r6, #0x2e] + movs r6, #0 + mov r0, r8 + adds r0, #0x24 + adds r7, r4, r0 +_0806B512: + adds r1, r6, #0 + adds r1, #0xd + adds r0, r5, #0 + movs r2, #0 + bl GetMonData + movs r1, #0xc + add r1, r8 + mov sl, r1 + adds r1, r4, r1 + strh r0, [r1] + adds r1, r6, #0 + adds r1, #0x11 + adds r0, r5, #0 + movs r2, #0 + bl GetMonData + strb r0, [r7] + adds r7, #1 + adds r4, #2 + adds r6, #1 + cmp r6, #3 + ble _0806B512 + movs r0, #0x64 + mov r4, sb + muls r4, r0, r4 + ldr r0, _0806B7AC + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x15 + movs r2, #0 + bl GetMonData + movs r2, #0xc + rsbs r2, r2, #0 + add r2, sl + mov sb, r2 + movs r1, #0x58 + ldr r3, [sp, #0x14] + adds r5, r3, #0 + muls r5, r1, r5 + adds r7, r5, r2 + adds r1, r7, #0 + adds r1, #0x3b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x20 + movs r2, #0 + bl GetMonData + adds r1, r7, #0 + adds r1, #0x2b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x19 + movs r2, #0 + bl GetMonData + mov r1, sl + adds r1, #0x38 + adds r1, r5, r1 + str r0, [r1] + adds r0, r4, #0 + movs r1, #0x27 + movs r2, #0 + bl GetMonData + movs r6, #0x1f + ands r0, r6 + ldrb r2, [r7, #0x14] + movs r1, #0x20 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r7, #0x14] + adds r0, r4, #0 + movs r1, #0x28 + movs r2, #0 + bl GetMonData + movs r1, #0x1f + mov r8, r1 + mov r2, r8 + ands r0, r2 + lsls r0, r0, #5 + ldrh r2, [r7, #0x14] + ldr r1, _0806B7B4 + ands r1, r2 + orrs r1, r0 + strh r1, [r7, #0x14] + adds r0, r4, #0 + movs r1, #0x29 + movs r2, #0 + bl GetMonData + ands r0, r6 + lsls r0, r0, #2 + ldrb r2, [r7, #0x15] + movs r1, #0x7d + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r7, #0x15] + adds r0, r4, #0 + movs r1, #0x2a + movs r2, #0 + bl GetMonData + movs r1, #0x1f + ands r1, r0 + lsls r1, r1, #0xf + ldr r0, [r7, #0x14] + ldr r2, _0806B7B8 + ands r0, r2 + orrs r0, r1 + str r0, [r7, #0x14] + adds r0, r4, #0 + movs r1, #0x2b + movs r2, #0 + bl GetMonData + mov r3, r8 + ands r0, r3 + lsls r0, r0, #4 + ldrh r2, [r7, #0x16] + ldr r1, _0806B7BC + ands r1, r2 + orrs r1, r0 + strh r1, [r7, #0x16] + adds r0, r4, #0 + movs r1, #0x2c + movs r2, #0 + bl GetMonData + ands r0, r6 + lsls r0, r0, #1 + ldrb r2, [r7, #0x17] + movs r1, #0x3f + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r7, #0x17] + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + bl GetMonData + mov r1, sl + adds r1, #0x3c + adds r1, r5, r1 + str r0, [r1] + adds r0, r4, #0 + movs r1, #0x37 + movs r2, #0 + bl GetMonData + mov r1, sl + adds r1, #0x40 + adds r1, r5, r1 + str r0, [r1] + adds r0, r4, #0 + movs r1, #0x38 + movs r2, #0 + bl GetMonData + adds r1, r7, #0 + adds r1, #0x2a + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x39 + movs r2, #0 + bl GetMonData + strh r0, [r7, #0x28] + adds r0, r4, #0 + movs r1, #0x3a + movs r2, #0 + bl GetMonData + strh r0, [r7, #0x2c] + adds r0, r4, #0 + movs r1, #0x3b + movs r2, #0 + bl GetMonData + strh r0, [r7, #2] + adds r0, r4, #0 + movs r1, #0x3c + movs r2, #0 + bl GetMonData + strh r0, [r7, #4] + adds r0, r4, #0 + movs r1, #0x3d + movs r2, #0 + bl GetMonData + strh r0, [r7, #6] + adds r0, r4, #0 + movs r1, #0x3e + movs r2, #0 + bl GetMonData + strh r0, [r7, #8] + adds r0, r4, #0 + movs r1, #0x3f + movs r2, #0 + bl GetMonData + strh r0, [r7, #0xa] + adds r0, r4, #0 + movs r1, #0x2d + movs r2, #0 + bl GetMonData + movs r1, #1 + ands r0, r1 + lsls r0, r0, #6 + ldrb r2, [r7, #0x17] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r7, #0x17] + adds r0, r4, #0 + movs r1, #0x2e + movs r2, #0 + bl GetMonData + lsls r0, r0, #7 + ldrb r2, [r7, #0x17] + movs r1, #0x7f + ands r1, r2 + orrs r1, r0 + strb r1, [r7, #0x17] + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl GetMonData + mov r1, sl + adds r1, #0x48 + adds r1, r5, r1 + str r0, [r1] + ldr r2, _0806B7C0 + ldrh r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #6] + adds r1, r7, #0 + adds r1, #0x21 + strb r0, [r1] + ldrh r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #7] + adds r1, r7, #0 + adds r1, #0x22 + strb r0, [r1] + ldrh r0, [r7] + ldrb r1, [r7, #0x17] + lsrs r1, r1, #7 + bl GetAbilityBySpecies + adds r1, r7, #0 + adds r1, #0x20 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #2 + mov r2, sp + bl GetMonData + mov r0, sl + adds r0, #0x24 + adds r0, r5, r0 + mov r1, sp + bl StringCopy10 + mov r2, sl + adds r2, #0x30 + adds r2, r5, r2 + adds r0, r4, #0 + movs r1, #7 + bl GetMonData + ldr r0, [sp, #0x14] + bl GetBattlerSide + ldr r1, _0806B7C4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, #0xa8 + ldr r1, [r1] + adds r1, r1, r0 + ldrh r0, [r7, #0x28] + strh r0, [r1] + movs r2, #6 + mov r1, sb + movs r6, #7 + add r5, sl + adds r0, r5, #0 + adds r0, #0x13 +_0806B776: + strb r2, [r0] + subs r0, #1 + subs r6, #1 + cmp r6, #0 + bge _0806B776 + movs r2, #0 + movs r0, #0x58 + ldr r3, [sp, #0x14] + muls r0, r3, r0 + adds r1, #0x50 + adds r0, r0, r1 + str r2, [r0] + ldr r0, [sp, #0x14] + bl sub_0803F6B0 + ldr r0, [sp, #0x14] + movs r1, #0 + bl ClearTemporarySpeciesSpriteData + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0806B7AC: .4byte 0x02024190 +_0806B7B0: .4byte 0x02023D28 +_0806B7B4: .4byte 0xFFFFFC1F +_0806B7B8: .4byte 0xFFF07FFF +_0806B7BC: .4byte 0xFFFFFE0F +_0806B7C0: .4byte 0x082F0D54 +_0806B7C4: .4byte 0x02024140 + thumb_func_end CopyPlayerPartyMonToBattleData + + thumb_func_start ExecuteTableBasedItemEffect +ExecuteTableBasedItemEffect: @ 0x0806B7C8 + push {r4, lr} + sub sp, #4 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r4, #0 + str r4, [sp] + bl sub_0806B7EC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end ExecuteTableBasedItemEffect + + thumb_func_start sub_0806B7EC +sub_0806B7EC: @ 0x0806B7EC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x44 + mov r8, r0 + ldr r0, [sp, #0x64] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp, #0xc] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x10] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r3, [sp, #0x14] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x18] + movs r0, #1 + str r0, [sp, #0x20] + movs r1, #6 + str r1, [sp, #0x28] + movs r2, #0 + str r2, [sp, #0x30] + movs r3, #4 + str r3, [sp, #0x38] + movs r5, #0 + str r5, [sp, #0x3c] + mov r0, r8 + movs r1, #0xc + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xaf + bne _0806B880 + ldr r0, _0806B85C + ldr r1, _0806B860 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806B86C + ldr r2, _0806B864 + ldr r0, _0806B868 + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #7] + b _0806B888 + .align 2, 0 +_0806B85C: .4byte 0x03002360 +_0806B860: .4byte 0x00000439 +_0806B864: .4byte 0x020240A8 +_0806B868: .4byte 0x0202415C +_0806B86C: + ldr r0, _0806B878 + ldr r0, [r0] + ldr r2, _0806B87C + adds r0, r0, r2 + ldrb r0, [r0] + b _0806B888 + .align 2, 0 +_0806B878: .4byte 0x03005AEC +_0806B87C: .4byte 0x00003226 +_0806B880: + bl sub_080D6CF8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_0806B888: + str r0, [sp, #0x34] + ldr r1, _0806B8E4 + ldr r0, _0806B8E8 + ldrb r2, [r0] + strb r2, [r1] + ldr r0, _0806B8EC + ldr r3, _0806B8F0 + adds r0, r0, r3 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _0806B928 + ldr r0, _0806B8F4 + strb r2, [r0] + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + str r1, [sp, #0x1c] + ldr r0, _0806B8F8 + ldr r4, [sp, #0xc] + subs r4, #0xd + ldrb r0, [r0] + cmp r1, r0 + bge _0806B934 + ldr r2, _0806B8FC + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r3, [r0] + ldr r5, [sp, #0x10] + lsls r0, r5, #0x10 + lsrs r1, r0, #0x10 + adds r5, r0, #0 + cmp r3, r1 + bne _0806B900 + ldr r0, [sp, #0x1c] + str r0, [sp, #0x38] + b _0806B934 + .align 2, 0 +_0806B8E4: .4byte 0x02023EB3 +_0806B8E8: .4byte 0x0202415C +_0806B8EC: .4byte 0x03002360 +_0806B8F0: .4byte 0x00000439 +_0806B8F4: .4byte 0x02023D08 +_0806B8F8: .4byte 0x02023D10 +_0806B8FC: .4byte 0x02023D12 +_0806B900: + ldr r1, [sp, #0x1c] + adds r1, #2 + str r1, [sp, #0x1c] + ldr r0, _0806B924 + ldrb r0, [r0] + cmp r1, r0 + bge _0806B934 + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r1, [r0] + lsrs r0, r5, #0x10 + cmp r1, r0 + bne _0806B900 + ldr r2, [sp, #0x1c] + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x38] + b _0806B934 + .align 2, 0 +_0806B924: .4byte 0x02023D10 +_0806B928: + ldr r0, _0806B950 + strb r1, [r0] + movs r3, #4 + str r3, [sp, #0x38] + ldr r4, [sp, #0xc] + subs r4, #0xd +_0806B934: + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xa5 + bhi _0806B9B4 + ldr r1, _0806B954 + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #0 + bne _0806B958 + ldr r5, [sp, #0xc] + cmp r5, #0xaf + beq _0806B95E + b _0806B9B4 + .align 2, 0 +_0806B950: .4byte 0x02023D08 +_0806B954: .4byte 0x082EEF14 +_0806B958: + ldr r1, [sp, #0xc] + cmp r1, #0xaf + bne _0806B9BA +_0806B95E: + ldr r0, _0806B980 + ldr r2, _0806B984 + adds r0, r0, r2 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806B990 + ldr r0, _0806B988 + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0806B98C + adds r0, r0, r1 + b _0806B9BA + .align 2, 0 +_0806B980: .4byte 0x03002360 +_0806B984: .4byte 0x00000439 +_0806B988: .4byte 0x02023D08 +_0806B98C: .4byte 0x020240B0 +_0806B990: + ldr r0, _0806B99C + ldr r0, [r0] + ldr r3, _0806B9A0 + adds r3, r0, r3 + str r3, [sp, #0x24] + b _0806B9BC + .align 2, 0 +_0806B99C: .4byte 0x03005AEC +_0806B9A0: .4byte 0x00003214 + thumb_func_end sub_0806B7EC + + thumb_func_start GetTrainerNameFromId +GetTrainerNameFromId: @ 0x0806B9A4 + mov r0, r8 + movs r2, #0 + ldr r3, [sp, #0x10] + bl BeginEvolutionScene + movs r0, #0 + bl PlayBattleBGM +_0806B9B4: + movs r0, #1 + bl PlayBattleBGM +_0806B9BA: + str r0, [sp, #0x24] +_0806B9BC: + movs r5, #0 + str r5, [sp, #0x1c] + thumb_func_end GetTrainerNameFromId + + thumb_func_start PokemonUseItemEffects +PokemonUseItemEffects: @ 0x0806B9C0 + ldr r0, [sp, #0x1c] + cmp r0, #5 + bls _0806B9CA + bl _0806C810 +_0806B9CA: + lsls r0, r0, #2 + ldr r1, _0806B9D4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806B9D4: .4byte 0x0806B9D8 +_0806B9D8: @ jump table + .4byte _0806B9F0 @ case 0 + .4byte _0806BAC0 @ case 1 + .4byte _0806BB50 @ case 2 + .4byte _0806BBE4 @ case 3 + .4byte _0806BDC4 @ case 4 + .4byte _0806C482 @ case 5 +_0806B9F0: + ldr r1, [sp, #0x24] + ldr r3, [sp, #0x1c] + adds r2, r1, r3 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + adds r6, r2, #0 + cmp r0, #0 + beq _0806BA3A + ldr r0, _0806BAAC + ldr r5, _0806BAB0 + adds r0, r0, r5 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806BA3A + ldr r0, [sp, #0x38] + cmp r0, #4 + beq _0806BA3A + ldr r1, _0806BAB4 + movs r0, #0x58 + ldr r2, [sp, #0x38] + muls r0, r2, r0 + adds r1, #0x50 + adds r2, r0, r1 + ldr r1, [r2] + movs r0, #0xf0 + lsls r0, r0, #0xc + ands r0, r1 + cmp r0, #0 + beq _0806BA3A + ldr r0, _0806BAB8 + ands r1, r0 + str r1, [r2] + movs r3, #0 + str r3, [sp, #0x20] +_0806BA3A: + ldrb r1, [r6] + movs r0, #0x30 + ands r0, r1 + cmp r0, #0 + beq _0806BA68 + ldr r1, _0806BAB4 + ldr r0, _0806BABC + ldrb r2, [r0] + movs r0, #0x58 + muls r0, r2, r0 + adds r1, #0x50 + adds r2, r0, r1 + ldr r1, [r2] + movs r3, #0x80 + lsls r3, r3, #0xd + adds r0, r1, #0 + ands r0, r3 + cmp r0, #0 + bne _0806BA68 + orrs r1, r3 + str r1, [r2] + movs r5, #0 + str r5, [sp, #0x20] +_0806BA68: + ldrb r0, [r6] + movs r3, #0xf + ands r3, r0 + cmp r3, #0 + bne _0806BA76 + bl _0806C810 +_0806BA76: + ldr r6, _0806BAB4 + ldr r5, _0806BABC + ldrb r0, [r5] + movs r4, #0x58 + muls r0, r4, r0 + adds r1, r0, r6 + ldrb r2, [r1, #0x19] + movs r0, #0x19 + ldrsb r0, [r1, r0] + cmp r0, #0xb + ble _0806BA90 + bl _0806C810 +_0806BA90: + adds r0, r2, r3 + strb r0, [r1, #0x19] + ldrb r0, [r5] + muls r0, r4, r0 + adds r1, r0, r6 + movs r0, #0x19 + ldrsb r0, [r1, r0] + cmp r0, #0xc + bgt _0806BAA4 + b _0806BBD4 +_0806BAA4: + movs r0, #0xc + strb r0, [r1, #0x19] + b _0806BBD4 + .align 2, 0 +_0806BAAC: .4byte 0x03002360 +_0806BAB0: .4byte 0x00000439 +_0806BAB4: .4byte 0x02023D28 +_0806BAB8: .4byte 0xFFF0FFFF +_0806BABC: .4byte 0x02023D08 +_0806BAC0: + ldr r1, [sp, #0x24] + ldr r3, [sp, #0x1c] + adds r2, r1, r3 + ldrb r1, [r2] + movs r0, #0xf0 + ands r0, r1 + lsls r3, r0, #0x18 + adds r6, r2, #0 + cmp r3, #0 + beq _0806BB06 + ldr r7, _0806BB48 + ldr r5, _0806BB4C + ldrb r0, [r5] + movs r4, #0x58 + muls r0, r4, r0 + adds r1, r0, r7 + ldrb r2, [r1, #0x1a] + movs r0, #0x1a + ldrsb r0, [r1, r0] + cmp r0, #0xb + bgt _0806BB06 + lsrs r0, r3, #0x1c + adds r0, r2, r0 + strb r0, [r1, #0x1a] + ldrb r0, [r5] + muls r0, r4, r0 + adds r1, r0, r7 + movs r0, #0x1a + ldrsb r0, [r1, r0] + cmp r0, #0xc + ble _0806BB02 + movs r0, #0xc + strb r0, [r1, #0x1a] +_0806BB02: + movs r5, #0 + str r5, [sp, #0x20] +_0806BB06: + ldrb r0, [r6] + movs r3, #0xf + ands r3, r0 + cmp r3, #0 + bne _0806BB14 + bl _0806C810 +_0806BB14: + ldr r6, _0806BB48 + ldr r5, _0806BB4C + ldrb r0, [r5] + movs r4, #0x58 + muls r0, r4, r0 + adds r1, r0, r6 + ldrb r2, [r1, #0x1b] + movs r0, #0x1b + ldrsb r0, [r1, r0] + cmp r0, #0xb + ble _0806BB2E + bl _0806C810 +_0806BB2E: + adds r0, r2, r3 + strb r0, [r1, #0x1b] + ldrb r0, [r5] + muls r0, r4, r0 + adds r1, r0, r6 + movs r0, #0x1b + ldrsb r0, [r1, r0] + cmp r0, #0xc + ble _0806BBD4 + movs r0, #0xc + strb r0, [r1, #0x1b] + b _0806BBD4 + .align 2, 0 +_0806BB48: .4byte 0x02023D28 +_0806BB4C: .4byte 0x02023D08 +_0806BB50: + ldr r1, [sp, #0x24] + ldr r3, [sp, #0x1c] + adds r2, r1, r3 + ldrb r1, [r2] + movs r0, #0xf0 + ands r0, r1 + lsls r3, r0, #0x18 + adds r6, r2, #0 + cmp r3, #0 + beq _0806BB96 + ldr r7, _0806BBDC + ldr r5, _0806BBE0 + ldrb r0, [r5] + movs r4, #0x58 + muls r0, r4, r0 + adds r1, r0, r7 + ldrb r2, [r1, #0x1e] + movs r0, #0x1e + ldrsb r0, [r1, r0] + cmp r0, #0xb + bgt _0806BB96 + lsrs r0, r3, #0x1c + adds r0, r2, r0 + strb r0, [r1, #0x1e] + ldrb r0, [r5] + muls r0, r4, r0 + adds r1, r0, r7 + movs r0, #0x1e + ldrsb r0, [r1, r0] + cmp r0, #0xc + ble _0806BB92 + movs r0, #0xc + strb r0, [r1, #0x1e] +_0806BB92: + movs r5, #0 + str r5, [sp, #0x20] +_0806BB96: + ldrb r0, [r6] + movs r3, #0xf + ands r3, r0 + cmp r3, #0 + bne _0806BBA4 + bl _0806C810 +_0806BBA4: + ldr r6, _0806BBDC + ldr r5, _0806BBE0 + ldrb r0, [r5] + movs r4, #0x58 + muls r0, r4, r0 + adds r1, r0, r6 + ldrb r2, [r1, #0x1c] + movs r0, #0x1c + ldrsb r0, [r1, r0] + cmp r0, #0xb + ble _0806BBBE + bl _0806C810 +_0806BBBE: + adds r0, r2, r3 + strb r0, [r1, #0x1c] + ldrb r0, [r5] + muls r0, r4, r0 + adds r1, r0, r6 + movs r0, #0x1c + ldrsb r0, [r1, r0] + cmp r0, #0xc + ble _0806BBD4 + movs r0, #0xc + strb r0, [r1, #0x1c] +_0806BBD4: + movs r0, #0 + str r0, [sp, #0x20] + bl _0806C810 + .align 2, 0 +_0806BBDC: .4byte 0x02023D28 +_0806BBE0: .4byte 0x02023D08 +_0806BBE4: + ldr r1, [sp, #0x24] + ldr r3, [sp, #0x1c] + adds r2, r1, r3 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + adds r6, r2, #0 + cmp r0, #0 + beq _0806BC2C + ldr r5, _0806BDA0 + ldr r4, _0806BDA4 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrb r0, [r1, #4] + cmp r0, #0 + bne _0806BC2C + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + movs r0, #5 + strb r0, [r1, #4] + movs r5, #0 + str r5, [sp, #0x20] +_0806BC2C: + ldrb r1, [r6] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0806BC8E + mov r0, r8 + movs r1, #0x38 + movs r2, #0 + bl GetMonData + cmp r0, #0x64 + beq _0806BC8E + ldr r5, _0806BDA8 + mov r0, r8 + movs r1, #0x38 + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + mov r0, r8 + movs r1, #0xb + movs r2, #0 + bl GetMonData + adds r4, #1 + lsls r4, r4, #2 + ldr r2, _0806BDAC + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r1, [r1, #0x13] + movs r0, #0xca + lsls r0, r0, #1 + muls r0, r1, r0 + adds r4, r4, r0 + adds r4, r4, r5 + ldr r0, [r4] + str r0, [sp] + mov r0, r8 + movs r1, #0x19 + mov r2, sp + bl SetMonData + mov r0, r8 + bl CalculateMonStats + movs r0, #0 + str r0, [sp, #0x20] +_0806BC8E: + ldrb r1, [r6] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0806BCCA + mov r0, r8 + ldr r1, [sp, #0x10] + movs r2, #7 + ldr r3, [sp, #0x38] + bl HealStatusConditions + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806BCCA + ldr r1, [sp, #0x38] + cmp r1, #4 + beq _0806BCC6 + ldr r1, _0806BDB0 + movs r0, #0x58 + ldr r3, [sp, #0x38] + adds r2, r3, #0 + muls r2, r0, r2 + adds r1, #0x50 + adds r2, r2, r1 + ldr r0, [r2] + ldr r1, _0806BDB4 + ands r0, r1 + str r0, [r2] +_0806BCC6: + movs r5, #0 + str r5, [sp, #0x20] +_0806BCCA: + ldrb r1, [r6] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0806BCEA + ldr r2, _0806BDB8 + mov r0, r8 + ldr r1, [sp, #0x10] + ldr r3, [sp, #0x38] + bl HealStatusConditions + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806BCEA + movs r0, #0 + str r0, [sp, #0x20] +_0806BCEA: + ldrb r1, [r6] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0806BD0A + mov r0, r8 + ldr r1, [sp, #0x10] + movs r2, #0x10 + ldr r3, [sp, #0x38] + bl HealStatusConditions + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806BD0A + movs r1, #0 + str r1, [sp, #0x20] +_0806BD0A: + ldrb r1, [r6] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0806BD2A + mov r0, r8 + ldr r1, [sp, #0x10] + movs r2, #0x20 + ldr r3, [sp, #0x38] + bl HealStatusConditions + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806BD2A + movs r2, #0 + str r2, [sp, #0x20] +_0806BD2A: + ldrb r1, [r6] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806BD4A + mov r0, r8 + ldr r1, [sp, #0x10] + movs r2, #0x40 + ldr r3, [sp, #0x38] + bl HealStatusConditions + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806BD4A + movs r3, #0 + str r3, [sp, #0x20] +_0806BD4A: + ldrb r1, [r6] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0806BD58 + bl _0806C810 +_0806BD58: + ldr r0, _0806BDBC + ldr r5, _0806BDC0 + adds r0, r0, r5 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0806BD6C + bl _0806C810 +_0806BD6C: + ldr r0, [sp, #0x38] + cmp r0, #4 + bne _0806BD76 + bl _0806C810 +_0806BD76: + ldr r1, _0806BDB0 + movs r0, #0x58 + ldr r2, [sp, #0x38] + muls r0, r2, r0 + adds r1, #0x50 + adds r2, r0, r1 + ldr r1, [r2] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _0806BD90 + bl _0806C810 +_0806BD90: + movs r0, #8 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r2] + movs r3, #0 + str r3, [sp, #0x20] + bl _0806C810 + .align 2, 0 +_0806BDA0: .4byte 0x02023F38 +_0806BDA4: .4byte 0x02023D08 +_0806BDA8: .4byte 0x082F00B4 +_0806BDAC: .4byte 0x082F0D54 +_0806BDB0: .4byte 0x02023D28 +_0806BDB4: .4byte 0xF7FFFFFF +_0806BDB8: .4byte 0x00000F88 +_0806BDBC: .4byte 0x03002360 +_0806BDC0: .4byte 0x00000439 +_0806BDC4: + ldr r5, [sp, #0x24] + ldr r1, [sp, #0x1c] + adds r0, r5, r1 + ldrb r0, [r0] + mov sl, r0 + movs r0, #0x20 + mov r2, sl + ands r0, r2 + cmp r0, #0 + beq _0806BE9C + movs r0, #0xdf + ands r2, r0 + mov sl, r2 + mov r0, r8 + movs r1, #0x15 + movs r2, #0 + bl GetMonData + ldr r1, _0806BEC8 + ldr r3, [sp, #0x14] + adds r1, r3, r1 + ldrb r1, [r1] + ands r0, r1 + lsls r1, r3, #1 + lsrs r0, r1 + str r0, [sp] + adds r5, r3, #0 + adds r5, #0xd + mov r0, r8 + adds r1, r5, #0 + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + mov r0, r8 + movs r1, #0x15 + movs r2, #0 + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + ldr r2, [sp, #0x14] + bl CalculatePPWithBonus + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x2c] + ldr r0, [sp] + cmp r0, #2 + bhi _0806BE9C + ldr r0, [sp, #0x2c] + cmp r0, #4 + bls _0806BE9C + mov r0, r8 + movs r1, #0x15 + movs r2, #0 + bl GetMonData + ldr r1, _0806BECC + ldr r2, [sp, #0x14] + adds r1, r2, r1 + ldrb r1, [r1] + adds r0, r0, r1 + str r0, [sp] + mov r0, r8 + movs r1, #0x15 + mov r2, sp + bl SetMonData + mov r0, r8 + adds r1, r5, #0 + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, [sp] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, [sp, #0x14] + bl CalculatePPWithBonus + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, [sp, #0x2c] + subs r0, r0, r3 + str r0, [sp] + ldr r4, [sp, #0x14] + adds r4, #0x11 + mov r0, r8 + adds r1, r4, #0 + movs r2, #0 + bl GetMonData + ldr r1, [sp] + adds r0, r0, r1 + str r0, [sp] + mov r0, r8 + adds r1, r4, #0 + mov r2, sp + bl SetMonData + movs r5, #0 + str r5, [sp, #0x20] +_0806BE9C: + movs r0, #0 + str r0, [sp, #0x2c] + mov r1, sl + cmp r1, #0 + bne _0806BEAA + bl _0806C810 +_0806BEAA: + movs r0, #1 + mov r2, sl + ands r0, r2 + cmp r0, #0 + bne _0806BEB6 + b _0806C46E +_0806BEB6: + ldr r3, [sp, #0x2c] + cmp r3, #7 + bls _0806BEBE + b _0806C46E +_0806BEBE: + lsls r0, r3, #2 + ldr r1, _0806BED0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806BEC8: .4byte 0x082FA6AA +_0806BECC: .4byte 0x082FA6B2 +_0806BED0: .4byte 0x0806BED4 +_0806BED4: @ jump table + .4byte _0806BEF4 @ case 0 + .4byte _0806BEF4 @ case 1 + .4byte _0806BFA0 @ case 2 + .4byte _0806C1C4 @ case 3 + .4byte _0806C46E @ case 4 + .4byte _0806C46E @ case 5 + .4byte _0806C46E @ case 6 + .4byte _0806C458 @ case 7 +_0806BEF4: + mov r0, r8 + bl GetMonEVCount + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r5, [sp, #0x24] + ldr r1, [sp, #0x28] + adds r0, r5, r1 + ldrb r5, [r0] + ldr r0, _0806BF40 + ldr r2, [sp, #0x2c] + adds r0, r2, r0 + ldrb r1, [r0] + mov r0, r8 + movs r2, #0 + bl GetMonData + adds r1, r0, #0 + str r1, [sp, #4] + lsls r0, r5, #0x18 + asrs r2, r0, #0x18 + cmp r2, #0 + ble _0806BF5C + ldr r0, _0806BF44 + cmp r6, r0 + bls _0806BF2A + b _0806B9B4 +_0806BF2A: + adds r3, r1, #0 + cmp r3, #0x63 + ble _0806BF32 + b _0806C46E +_0806BF32: + adds r1, r3, r2 + cmp r1, #0x64 + ble _0806BF48 + adds r0, r2, #0 + adds r0, #0x64 + subs r5, r0, r1 + b _0806BF4A + .align 2, 0 +_0806BF40: .4byte 0x082FA84E +_0806BF44: .4byte 0x000001FD +_0806BF48: + adds r5, r2, #0 +_0806BF4A: + adds r1, r6, r5 + movs r0, #0xff + lsls r0, r0, #1 + cmp r1, r0 + bls _0806BF58 + adds r0, r5, r0 + subs r5, r0, r1 +_0806BF58: + adds r0, r3, r5 + b _0806BF76 +_0806BF5C: + cmp r1, #0 + bne _0806BF6C + movs r3, #1 + str r3, [sp, #0x3c] + ldr r0, [sp, #0x28] + adds r0, #1 + lsls r0, r0, #0x18 + b _0806C302 +_0806BF6C: + adds r0, r1, r2 + str r0, [sp, #4] + cmp r0, #0 + bge _0806BF78 + movs r0, #0 +_0806BF76: + str r0, [sp, #4] +_0806BF78: + ldr r0, _0806BF9C + ldr r5, [sp, #0x2c] + adds r0, r5, r0 + ldrb r1, [r0] + add r2, sp, #4 + mov r0, r8 + bl SetMonData + mov r0, r8 + bl CalculateMonStats + ldr r0, [sp, #0x28] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x28] + b _0806C43C + .align 2, 0 +_0806BF9C: .4byte 0x082FA84E +_0806BFA0: + movs r0, #0x10 + mov r1, sl + ands r0, r1 + cmp r0, #0 + beq _0806C060 + mov r0, r8 + movs r1, #0x39 + movs r2, #0 + bl GetMonData + cmp r0, #0 + beq _0806BFC0 + ldr r0, [sp, #0x28] + adds r0, #1 + lsls r0, r0, #0x18 + b _0806C302 +_0806BFC0: + ldr r0, _0806C008 + ldr r2, _0806C00C + adds r0, r0, r2 + ldrb r1, [r0] + movs r4, #2 + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806C076 + ldr r3, [sp, #0x38] + cmp r3, #4 + beq _0806C020 + ldr r2, _0806C010 + ldr r1, _0806C014 + lsls r0, r3, #2 + adds r0, r0, r1 + ldr r1, [r0] + ldrb r0, [r2] + bics r0, r1 + strb r0, [r2] + ldr r1, _0806C018 + lsls r0, r3, #1 + adds r0, r0, r1 + ldrb r0, [r0] + bl pokemon_order_func + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, [sp, #0x38] + bl CopyPlayerPartyMonToBattleData + ldr r0, _0806C01C + ldrb r0, [r0] + b _0806C038 + .align 2, 0 +_0806C008: .4byte 0x03002360 +_0806C00C: .4byte 0x00000439 +_0806C010: .4byte 0x02023EB4 +_0806C014: .4byte 0x082FACB4 +_0806C018: .4byte 0x02023D12 +_0806C01C: .4byte 0x02023D08 +_0806C020: + ldr r3, _0806C050 + ldr r1, _0806C054 + ldr r2, _0806C058 + ldrb r0, [r2] + eors r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + ldrb r0, [r3] + bics r0, r1 + strb r0, [r3] + ldrb r0, [r2] +_0806C038: + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806C076 + ldr r1, _0806C05C + ldrb r0, [r1, #4] + cmp r0, #0xfe + bhi _0806C076 + adds r0, #1 + strb r0, [r1, #4] + b _0806C076 + .align 2, 0 +_0806C050: .4byte 0x02023EB4 +_0806C054: .4byte 0x082FACB4 +_0806C058: .4byte 0x02023D08 +_0806C05C: .4byte 0x03005A70 +_0806C060: + mov r0, r8 + movs r1, #0x39 + movs r2, #0 + bl GetMonData + cmp r0, #0 + bne _0806C076 + ldr r0, [sp, #0x28] + adds r0, #1 + lsls r0, r0, #0x18 + b _0806C302 +_0806C076: + ldr r1, [sp, #0x28] + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x28] + ldr r5, [sp, #0x24] + adds r1, r5, r1 + ldrb r1, [r1] + str r1, [sp] + adds r0, r1, #0 + cmp r0, #0xfe + beq _0806C0B8 + cmp r0, #0xfe + bhi _0806C098 + cmp r0, #0xfd + beq _0806C0CE + b _0806C0D6 +_0806C098: + cmp r1, #0xff + bne _0806C0D6 + mov r0, r8 + movs r1, #0x3a + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + mov r0, r8 + movs r1, #0x39 + movs r2, #0 + bl GetMonData + subs r4, r4, r0 + str r4, [sp] + b _0806C0D6 +_0806C0B8: + mov r0, r8 + movs r1, #0x3a + movs r2, #0 + bl GetMonData + lsrs r0, r0, #1 + str r0, [sp] + cmp r0, #0 + bne _0806C0D6 + movs r0, #1 + b _0806C0D4 +_0806C0CE: + ldr r0, _0806C190 + adds r0, #0x23 + ldrb r0, [r0] +_0806C0D4: + str r0, [sp] +_0806C0D6: + mov r0, r8 + movs r1, #0x3a + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + mov r0, r8 + movs r1, #0x39 + movs r2, #0 + bl GetMonData + cmp r4, r0 + beq _0806C1B4 + ldr r0, [sp, #0x18] + cmp r0, #0 + bne _0806C1A8 + mov r0, r8 + movs r1, #0x39 + movs r2, #0 + bl GetMonData + ldr r1, [sp] + adds r0, r0, r1 + str r0, [sp] + mov r0, r8 + movs r1, #0x3a + movs r2, #0 + bl GetMonData + ldr r1, [sp] + cmp r1, r0 + bls _0806C122 + mov r0, r8 + movs r1, #0x3a + movs r2, #0 + bl GetMonData + str r0, [sp] +_0806C122: + mov r0, r8 + movs r1, #0x39 + mov r2, sp + bl SetMonData + ldr r0, _0806C194 + ldr r1, _0806C198 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806C1B0 + ldr r2, [sp, #0x38] + cmp r2, #4 + beq _0806C1B0 + ldr r1, _0806C19C + movs r0, #0x58 + muls r0, r2, r0 + adds r0, r0, r1 + ldr r1, [sp] + strh r1, [r0, #0x28] + movs r0, #0x10 + mov r3, sl + ands r0, r3 + cmp r0, #0 + bne _0806C1B0 + ldr r4, _0806C1A0 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806C1B0 + ldr r1, _0806C1A4 + ldrb r0, [r1, #3] + cmp r0, #0xfe + bhi _0806C172 + adds r0, #1 + strb r0, [r1, #3] +_0806C172: + ldrb r5, [r4] + add r0, sp, #0x38 + ldrb r0, [r0] + strb r0, [r4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl BtlController_EmitGetMonData + ldrb r0, [r4] + bl MarkBattlerForControllerExec + strb r5, [r4] + b _0806C1B0 + .align 2, 0 +_0806C190: .4byte 0x02024118 +_0806C194: .4byte 0x03002360 +_0806C198: .4byte 0x00000439 +_0806C19C: .4byte 0x02023D28 +_0806C1A0: .4byte 0x02023D08 +_0806C1A4: .4byte 0x03005A70 +_0806C1A8: + ldr r1, _0806C1C0 + ldr r0, [sp] + rsbs r0, r0, #0 + str r0, [r1] +_0806C1B0: + movs r1, #0 + str r1, [sp, #0x20] +_0806C1B4: + movs r0, #0xef + mov r2, sl + ands r2, r0 + mov sl, r2 + b _0806C46E + .align 2, 0 +_0806C1C0: .4byte 0x02023E94 +_0806C1C4: + movs r7, #2 + mov r0, sl + ands r0, r7 + cmp r0, #0 + beq _0806C1D0 + b _0806C31C +_0806C1D0: + movs r5, #0 + ldr r3, [sp, #0x28] + adds r3, #1 + str r3, [sp, #0x40] +_0806C1D8: + movs r0, #0x11 + adds r0, r0, r5 + mov sb, r0 + mov r0, r8 + mov r1, sb + movs r2, #0 + bl GetMonData + str r0, [sp] + adds r7, r5, #0 + adds r7, #0xd + mov r0, r8 + adds r1, r7, #0 + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + mov r0, r8 + movs r1, #0x15 + movs r2, #0 + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r5, #0x18 + lsrs r6, r0, #0x18 + adds r0, r4, #0 + adds r2, r6, #0 + bl CalculatePPWithBonus + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, [sp] + cmp r1, r0 + beq _0806C2F6 + ldr r2, [sp, #0x24] + ldr r3, [sp, #0x28] + adds r0, r2, r3 + ldrb r0, [r0] + adds r0, r1, r0 + str r0, [sp] + mov r0, r8 + adds r1, r7, #0 + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + mov r0, r8 + movs r1, #0x15 + movs r2, #0 + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + adds r2, r6, #0 + bl CalculatePPWithBonus + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, [sp] + cmp r1, r0 + bls _0806C290 + mov r0, r8 + adds r1, r7, #0 + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + mov r0, r8 + movs r1, #0x15 + movs r2, #0 + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + adds r2, r6, #0 + bl CalculatePPWithBonus + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] +_0806C290: + mov r0, r8 + mov r1, sb + mov r2, sp + bl SetMonData + ldr r0, _0806C308 + ldr r1, _0806C30C + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806C2F2 + ldr r2, [sp, #0x38] + cmp r2, #4 + beq _0806C2F2 + ldr r4, _0806C310 + movs r0, #0x58 + adds r3, r2, #0 + muls r3, r0, r3 + adds r0, r4, #0 + adds r0, #0x50 + adds r0, r3, r0 + ldr r1, [r0] + movs r0, #0x80 + lsls r0, r0, #0xe + ands r1, r0 + cmp r1, #0 + bne _0806C2F2 + ldr r1, _0806C314 + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #0x18] + lsrs r1, r1, #4 + ldr r2, _0806C318 + lsls r0, r5, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _0806C2F2 + adds r0, r5, r3 + adds r1, r4, #0 + adds r1, #0x24 + adds r0, r0, r1 + ldr r1, [sp] + strb r1, [r0] +_0806C2F2: + movs r3, #0 + str r3, [sp, #0x20] +_0806C2F6: + adds r5, #1 + cmp r5, #3 + bgt _0806C2FE + b _0806C1D8 +_0806C2FE: + ldr r5, [sp, #0x40] + lsls r0, r5, #0x18 +_0806C302: + lsrs r0, r0, #0x18 + str r0, [sp, #0x28] + b _0806C46E + .align 2, 0 +_0806C308: .4byte 0x03002360 +_0806C30C: .4byte 0x00000439 +_0806C310: .4byte 0x02023D28 +_0806C314: .4byte 0x02023F60 +_0806C318: .4byte 0x082FACB4 +_0806C31C: + ldr r6, [sp, #0x14] + adds r6, #0x11 + mov r0, r8 + adds r1, r6, #0 + movs r2, #0 + bl GetMonData + str r0, [sp] + ldr r5, [sp, #0x14] + adds r5, #0xd + mov r0, r8 + adds r1, r5, #0 + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + mov r0, r8 + movs r1, #0x15 + movs r2, #0 + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + ldr r2, [sp, #0x14] + bl CalculatePPWithBonus + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, [sp] + cmp r2, r0 + bne _0806C364 + b _0806C46E +_0806C364: + ldr r1, [sp, #0x28] + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x28] + ldr r0, [sp, #0x24] + adds r1, r0, r1 + ldrb r0, [r1] + adds r0, r2, r0 + str r0, [sp] + mov r0, r8 + adds r1, r5, #0 + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + mov r0, r8 + movs r1, #0x15 + movs r2, #0 + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + ldr r2, [sp, #0x14] + bl CalculatePPWithBonus + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, [sp] + cmp r1, r0 + bls _0806C3D8 + mov r0, r8 + adds r1, r5, #0 + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + mov r0, r8 + movs r1, #0x15 + movs r2, #0 + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + ldr r2, [sp, #0x14] + bl CalculatePPWithBonus + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] +_0806C3D8: + mov r0, r8 + adds r1, r6, #0 + mov r2, sp + bl SetMonData + ldr r0, _0806C444 + ldr r1, _0806C448 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0 + beq _0806C43C + ldr r2, [sp, #0x38] + cmp r2, #4 + beq _0806C43C + ldr r4, _0806C44C + movs r0, #0x58 + adds r3, r2, #0 + muls r3, r0, r3 + adds r0, r4, #0 + adds r0, #0x50 + adds r0, r3, r0 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xe + ands r0, r1 + cmp r0, #0 + bne _0806C43C + ldr r1, _0806C450 + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #0x18] + lsrs r1, r1, #4 + ldr r2, _0806C454 + ldr r5, [sp, #0x14] + lsls r0, r5, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _0806C43C + adds r0, r5, r3 + adds r1, r4, #0 + adds r1, #0x24 + adds r0, r0, r1 + ldr r1, [sp] + strb r1, [r0] +_0806C43C: + movs r0, #0 + str r0, [sp, #0x20] + b _0806C46E + .align 2, 0 +_0806C444: .4byte 0x03002360 +_0806C448: .4byte 0x00000439 +_0806C44C: .4byte 0x02023D28 +_0806C450: .4byte 0x02023F60 +_0806C454: .4byte 0x082FACB4 +_0806C458: + mov r0, r8 + movs r1, #2 + ldr r2, [sp, #0xc] + bl GetEvolutionTargetSpecies + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + beq _0806C46E + bl GetTrainerNameFromId +_0806C46E: + ldr r1, [sp, #0x2c] + adds r1, #1 + str r1, [sp, #0x2c] + mov r2, sl + lsrs r2, r2, #1 + mov sl, r2 + cmp r2, #0 + beq _0806C480 + b _0806BEAA +_0806C480: + b _0806C810 +_0806C482: + ldr r3, [sp, #0x24] + ldr r5, [sp, #0x1c] + adds r0, r3, r5 + ldrb r0, [r0] + mov sl, r0 + movs r0, #0 + str r0, [sp, #0x2c] + mov r1, sl + cmp r1, #0 + bne _0806C498 + b _0806C810 +_0806C498: + movs r0, #1 + mov r2, sl + ands r0, r2 + cmp r0, #0 + bne _0806C4A4 + b _0806C7FE +_0806C4A4: + ldr r3, [sp, #0x2c] + cmp r3, #7 + bls _0806C4AC + b _0806C7FE +_0806C4AC: + lsls r0, r3, #2 + ldr r1, _0806C4B8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806C4B8: .4byte 0x0806C4BC +_0806C4BC: @ jump table + .4byte _0806C4DC @ case 0 + .4byte _0806C4DC @ case 1 + .4byte _0806C4DC @ case 2 + .4byte _0806C4DC @ case 3 + .4byte _0806C57C @ case 4 + .4byte _0806C658 @ case 5 + .4byte _0806C6C4 @ case 6 + .4byte _0806C72C @ case 7 +_0806C4DC: + mov r0, r8 + bl GetMonEVCount + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r5, [sp, #0x24] + ldr r1, [sp, #0x28] + adds r0, r5, r1 + ldrb r5, [r0] + ldr r0, _0806C52C + ldr r4, [sp, #0x2c] + adds r4, #2 + adds r0, r4, r0 + ldrb r1, [r0] + mov r0, r8 + movs r2, #0 + bl GetMonData + adds r1, r0, #0 + str r1, [sp, #4] + lsls r0, r5, #0x18 + asrs r2, r0, #0x18 + cmp r2, #0 + ble _0806C548 + ldr r0, _0806C530 + cmp r6, r0 + bls _0806C516 + bl _0806B9B4 +_0806C516: + adds r3, r1, #0 + cmp r3, #0x63 + ble _0806C51E + b _0806C7FE +_0806C51E: + adds r1, r3, r2 + cmp r1, #0x64 + ble _0806C534 + adds r0, r2, #0 + adds r0, #0x64 + subs r5, r0, r1 + b _0806C536 + .align 2, 0 +_0806C52C: .4byte 0x082FA84E +_0806C530: .4byte 0x000001FD +_0806C534: + adds r5, r2, #0 +_0806C536: + adds r1, r6, r5 + movs r0, #0xff + lsls r0, r0, #1 + cmp r1, r0 + bls _0806C544 + adds r0, r5, r0 + subs r5, r0, r1 +_0806C544: + adds r0, r3, r5 + b _0806C55C +_0806C548: + cmp r1, #0 + bne _0806C552 + movs r2, #1 + str r2, [sp, #0x3c] + b _0806C7F4 +_0806C552: + adds r0, r1, r2 + str r0, [sp, #4] + cmp r0, #0 + bge _0806C55E + movs r0, #0 +_0806C55C: + str r0, [sp, #4] +_0806C55E: + ldr r0, _0806C578 + adds r0, r4, r0 + ldrb r1, [r0] + add r2, sp, #4 + mov r0, r8 + bl SetMonData + mov r0, r8 + bl CalculateMonStats + movs r3, #0 + str r3, [sp, #0x20] + b _0806C7F4 + .align 2, 0 +_0806C578: .4byte 0x082FA84E +_0806C57C: + mov r0, r8 + movs r1, #0x15 + movs r2, #0 + bl GetMonData + ldr r1, _0806C64C + ldr r5, [sp, #0x14] + adds r1, r5, r1 + ldrb r1, [r1] + ands r0, r1 + lsls r1, r5, #1 + lsrs r0, r1 + str r0, [sp] + adds r6, r5, #0 + adds r6, #0xd + mov r0, r8 + adds r1, r6, #0 + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + mov r0, r8 + movs r1, #0x15 + movs r2, #0 + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + ldr r2, [sp, #0x14] + bl CalculatePPWithBonus + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, [sp] + cmp r0, #2 + bls _0806C5CE + b _0806C7FE +_0806C5CE: + cmp r5, #4 + bhi _0806C5D4 + b _0806C7FE +_0806C5D4: + mov r0, r8 + movs r1, #0x15 + movs r2, #0 + bl GetMonData + str r0, [sp] + ldr r1, _0806C650 + ldr r2, [sp, #0x14] + adds r1, r2, r1 + ldrb r2, [r1] + ands r2, r0 + str r2, [sp] + ldr r0, _0806C654 + ldr r3, [sp, #0x14] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + adds r2, r2, r0 + str r2, [sp] + mov r0, r8 + movs r1, #0x15 + mov r2, sp + bl SetMonData + mov r0, r8 + adds r1, r6, #0 + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, [sp] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, [sp, #0x14] + bl CalculatePPWithBonus + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, r0, r5 + str r0, [sp] + ldr r4, [sp, #0x14] + adds r4, #0x11 + mov r0, r8 + adds r1, r4, #0 + movs r2, #0 + bl GetMonData + ldr r1, [sp] + adds r0, r0, r1 + str r0, [sp] + mov r0, r8 + adds r1, r4, #0 + mov r2, sp + bl SetMonData + movs r5, #0 + str r5, [sp, #0x20] + b _0806C7FE + .align 2, 0 +_0806C64C: .4byte 0x082FA6AA +_0806C650: .4byte 0x082FA6AE +_0806C654: .4byte 0x082FA6B2 +_0806C658: + mov r0, r8 + movs r1, #0x20 + movs r2, #0 + bl GetMonData + cmp r0, #0x63 + bls _0806C668 + b _0806C7F4 +_0806C668: + ldr r0, [sp, #0x20] + cmp r0, #0 + beq _0806C676 + ldr r1, [sp, #0x3c] + cmp r1, #0 + bne _0806C676 + b _0806C7F4 +_0806C676: + bl sub_0806EB88 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0806C682 + b _0806C7F4 +_0806C682: + ldr r2, [sp, #0x30] + cmp r2, #0 + beq _0806C68A + b _0806C7F4 +_0806C68A: + ldr r3, [sp, #0x24] + ldr r5, [sp, #0x28] + adds r0, r3, r5 + ldrb r0, [r0] + str r0, [sp, #0x30] + mov r0, r8 + movs r1, #0x20 + movs r2, #0 + bl GetMonData + adds r5, r0, #0 + str r5, [sp, #8] + ldr r0, [sp, #0x30] + lsls r4, r0, #0x18 + asrs r1, r4, #0x18 + cmp r1, #0 + ble _0806C790 + ldr r2, [sp, #0x34] + cmp r2, #0x1b + bne _0806C790 + movs r0, #0x96 + muls r0, r1, r0 + movs r1, #0x64 + bl __divsi3 + adds r0, r5, r0 + str r0, [sp, #8] + adds r2, r4, #0 + b _0806C79C +_0806C6C4: + mov r0, r8 + movs r1, #0x20 + movs r2, #0 + bl GetMonData + cmp r0, #0x63 + bhi _0806C6D4 + b _0806C7F4 +_0806C6D4: + mov r0, r8 + movs r1, #0x20 + movs r2, #0 + bl GetMonData + cmp r0, #0xc7 + bls _0806C6E4 + b _0806C7F4 +_0806C6E4: + ldr r0, [sp, #0x20] + cmp r0, #0 + beq _0806C6F2 + ldr r1, [sp, #0x3c] + cmp r1, #0 + bne _0806C6F2 + b _0806C7F4 +_0806C6F2: + bl sub_0806EB88 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806C7F4 + ldr r2, [sp, #0x30] + cmp r2, #0 + bne _0806C7F4 + ldr r3, [sp, #0x24] + ldr r5, [sp, #0x28] + adds r0, r3, r5 + ldrb r0, [r0] + str r0, [sp, #0x30] + mov r0, r8 + movs r1, #0x20 + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + str r4, [sp, #8] + ldr r0, [sp, #0x30] + lsls r5, r0, #0x18 + asrs r1, r5, #0x18 + cmp r1, #0 + ble _0806C790 + ldr r2, [sp, #0x34] + cmp r2, #0x1b + beq _0806C77E + b _0806C790 +_0806C72C: + mov r0, r8 + movs r1, #0x20 + movs r2, #0 + bl GetMonData + cmp r0, #0xc7 + bls _0806C7F4 + ldr r0, [sp, #0x20] + cmp r0, #0 + beq _0806C746 + ldr r1, [sp, #0x3c] + cmp r1, #0 + beq _0806C7F4 +_0806C746: + bl sub_0806EB88 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806C7F4 + ldr r2, [sp, #0x30] + cmp r2, #0 + bne _0806C7F4 + ldr r3, [sp, #0x24] + ldr r5, [sp, #0x28] + adds r0, r3, r5 + ldrb r0, [r0] + str r0, [sp, #0x30] + mov r0, r8 + movs r1, #0x20 + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + str r4, [sp, #8] + ldr r0, [sp, #0x30] + lsls r5, r0, #0x18 + asrs r1, r5, #0x18 + cmp r1, #0 + ble _0806C790 + ldr r2, [sp, #0x34] + cmp r2, #0x1b + bne _0806C790 +_0806C77E: + movs r0, #0x96 + muls r0, r1, r0 + movs r1, #0x64 + bl __divsi3 + adds r0, r4, r0 + str r0, [sp, #8] + adds r2, r5, #0 + b _0806C79C +_0806C790: + ldr r3, [sp, #0x30] + lsls r2, r3, #0x18 + asrs r1, r2, #0x18 + ldr r0, [sp, #8] + adds r0, r0, r1 + str r0, [sp, #8] +_0806C79C: + cmp r2, #0 + ble _0806C7D2 + mov r0, r8 + movs r1, #0x26 + movs r2, #0 + bl GetMonData + cmp r0, #0xb + bne _0806C7B4 + ldr r0, [sp, #8] + adds r0, #1 + str r0, [sp, #8] +_0806C7B4: + mov r0, r8 + movs r1, #0x23 + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + bl GetCurrentRegionMapSectionId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + bne _0806C7D2 + ldr r0, [sp, #8] + adds r0, #1 + str r0, [sp, #8] +_0806C7D2: + ldr r0, [sp, #8] + cmp r0, #0 + bge _0806C7DC + movs r0, #0 + str r0, [sp, #8] +_0806C7DC: + ldr r0, [sp, #8] + cmp r0, #0xff + ble _0806C7E6 + movs r0, #0xff + str r0, [sp, #8] +_0806C7E6: + add r2, sp, #8 + mov r0, r8 + movs r1, #0x20 + bl SetMonData + movs r5, #0 + str r5, [sp, #0x20] +_0806C7F4: + ldr r0, [sp, #0x28] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x28] +_0806C7FE: + ldr r0, [sp, #0x2c] + adds r0, #1 + str r0, [sp, #0x2c] + mov r1, sl + lsrs r1, r1, #1 + mov sl, r1 + cmp r1, #0 + beq _0806C810 + b _0806C498 +_0806C810: + ldr r2, [sp, #0x1c] + adds r2, #1 + str r2, [sp, #0x1c] + cmp r2, #5 + bgt _0806C81E + bl PokemonUseItemEffects +_0806C81E: + ldr r0, [sp, #0x20] + thumb_func_end PokemonUseItemEffects + + thumb_func_start PlayBattleBGM +PlayBattleBGM: @ 0x0806C820 + add sp, #0x44 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end PlayBattleBGM + + thumb_func_start HealStatusConditions +HealStatusConditions: @ 0x0806C830 + push {r4, r5, r6, lr} + sub sp, #4 + adds r5, r0, #0 + adds r4, r2, #0 + lsls r3, r3, #0x18 + lsrs r6, r3, #0x18 + movs r1, #0x37 + movs r2, #0 + bl GetMonData + adds r1, r0, #0 + str r1, [sp] + ands r0, r4 + cmp r0, #0 + beq _0806C894 + mvns r4, r4 + ands r1, r4 + str r1, [sp] + adds r0, r5, #0 + movs r1, #0x37 + mov r2, sp + bl SetMonData + ldr r0, _0806C888 + ldr r1, _0806C88C + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806C882 + cmp r6, #4 + beq _0806C882 + ldr r0, _0806C890 + movs r1, #0x58 + muls r1, r6, r1 + adds r0, #0x4c + adds r1, r1, r0 + ldr r0, [r1] + ands r0, r4 + str r0, [r1] +_0806C882: + movs r0, #0 + b _0806C896 + .align 2, 0 +_0806C888: .4byte 0x03002360 +_0806C88C: .4byte 0x00000439 +_0806C890: .4byte 0x02023D28 +_0806C894: + movs r0, #1 +_0806C896: + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end HealStatusConditions + + thumb_func_start GetItemEffectParamOffset +GetItemEffectParamOffset: @ 0x0806C8A0 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + movs r7, #6 + ldr r1, _0806C8C8 + adds r0, r3, #0 + subs r0, #0xd + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #0 + bne _0806C8CC + cmp r3, #0xaf + beq _0806C8D0 +_0806C8C4: + movs r0, #0 + b _0806C9E0 + .align 2, 0 +_0806C8C8: .4byte 0x082EEF14 +_0806C8CC: + cmp r3, #0xaf + bne _0806C8DE +_0806C8D0: + ldr r0, _0806C8F0 + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0806C8F4 + adds r0, r0, r1 +_0806C8DE: + mov ip, r0 + movs r2, #0 +_0806C8E2: + cmp r2, #4 + beq _0806C902 + cmp r2, #4 + ble _0806C8F8 + cmp r2, #5 + beq _0806C98C + b _0806C9D6 + .align 2, 0 +_0806C8F0: .4byte 0x02023D08 +_0806C8F4: .4byte 0x020240B0 +_0806C8F8: + cmp r2, #0 + blt _0806C9D6 + cmp r2, r4 + bne _0806C9D6 + b _0806C8C4 +_0806C902: + mov r0, ip + ldrb r3, [r0, #4] + movs r0, #0x20 + ands r0, r3 + cmp r0, #0 + beq _0806C912 + movs r0, #0xdf + ands r3, r0 +_0806C912: + movs r6, #0 + cmp r3, #0 + beq _0806C9D6 +_0806C918: + movs r0, #1 + ands r0, r3 + cmp r0, #0 + beq _0806C978 + cmp r6, #7 + bhi _0806C978 + lsls r0, r6, #2 + ldr r1, _0806C930 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806C930: .4byte 0x0806C934 +_0806C934: @ jump table + .4byte _0806C960 @ case 0 + .4byte _0806C960 @ case 1 + .4byte _0806C954 @ case 2 + .4byte _0806C960 @ case 3 + .4byte _0806C978 @ case 4 + .4byte _0806C978 @ case 5 + .4byte _0806C978 @ case 6 + .4byte _0806C974 @ case 7 +_0806C954: + movs r0, #0x10 + ands r0, r3 + cmp r0, #0 + beq _0806C960 + movs r0, #0xef + ands r3, r0 +_0806C960: + cmp r2, r4 + bne _0806C96C + adds r0, r3, #0 + ands r0, r5 + cmp r0, #0 + bne _0806C9DE +_0806C96C: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + b _0806C978 +_0806C974: + cmp r2, r4 + beq _0806C8C4 +_0806C978: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsrs r3, r3, #1 + cmp r2, r4 + bne _0806C986 + lsrs r5, r5, #1 +_0806C986: + cmp r3, #0 + bne _0806C918 + b _0806C9D6 +_0806C98C: + mov r0, ip + ldrb r3, [r0, #5] + movs r6, #0 +_0806C992: + cmp r3, #0 + beq _0806C9D6 + movs r0, #1 + ands r0, r3 + cmp r0, #0 + beq _0806C9C6 + cmp r6, #0 + blt _0806C9C6 + cmp r6, #6 + ble _0806C9AC + cmp r6, #7 + beq _0806C9C0 + b _0806C9C6 +_0806C9AC: + cmp r2, r4 + bne _0806C9B8 + adds r0, r3, #0 + ands r0, r5 + cmp r0, #0 + bne _0806C9DE +_0806C9B8: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + b _0806C9C6 +_0806C9C0: + cmp r2, r4 + bne _0806C9C6 + b _0806C8C4 +_0806C9C6: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsrs r3, r3, #1 + cmp r2, r4 + bne _0806C992 + lsrs r5, r5, #1 + b _0806C992 +_0806C9D6: + adds r2, #1 + cmp r2, #5 + bgt _0806C9DE + b _0806C8E2 +_0806C9DE: + adds r0, r7, #0 +_0806C9E0: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetItemEffectParamOffset + + thumb_func_start sub_0806C9E8 +sub_0806C9E8: @ 0x0806C9E8 + push {lr} + ldr r2, _0806CA1C + ldr r1, _0806CA20 + ldrb r1, [r1] + strb r1, [r2] + ldr r3, _0806CA24 + ldr r2, _0806CA28 + ldr r1, _0806CA2C + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, [r0] + adds r0, r3, #0 + bl StringCopy + ldr r0, _0806CA30 + ldr r1, _0806CA34 + bl StringCopy + ldr r0, _0806CA38 + bl TryGetStatusString + pop {r0} + bx r0 + .align 2, 0 +_0806CA1C: .4byte 0x02023EB0 +_0806CA20: .4byte 0x0202415C +_0806CA24: .4byte 0x02022C0C +_0806CA28: .4byte 0x085AB08C +_0806CA2C: .4byte 0x082FA854 +_0806CA30: .4byte 0x02022C1C +_0806CA34: .4byte 0x085AA877 +_0806CA38: .4byte 0x085AA894 + thumb_func_end sub_0806C9E8 + + thumb_func_start sub_0806CA3C +sub_0806CA3C: @ 0x0806CA3C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xaf + bne _0806CA90 + ldr r0, _0806CA6C + ldr r1, _0806CA70 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806CA7C + ldr r2, _0806CA74 + ldrb r1, [r2] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0806CA78 + adds r7, r0, r1 + b _0806CA9C + .align 2, 0 +_0806CA6C: .4byte 0x03002360 +_0806CA70: .4byte 0x00000439 +_0806CA74: .4byte 0x0202415C +_0806CA78: .4byte 0x020240B0 +_0806CA7C: + ldr r0, _0806CA88 + ldr r0, [r0] + ldr r1, _0806CA8C + adds r7, r0, r1 + b _0806CA9A + .align 2, 0 +_0806CA88: .4byte 0x03005AEC +_0806CA8C: .4byte 0x00003214 +_0806CA90: + ldr r1, _0806CAD4 + subs r0, #0xd + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r7, [r0] +_0806CA9A: + ldr r2, _0806CAD8 +_0806CA9C: + ldr r1, _0806CADC + ldrb r0, [r2] + strb r0, [r1] + movs r5, #0 + ldr r0, _0806CAE0 + mov r8, r0 + movs r6, #0 +_0806CAAA: + adds r4, r7, r5 + ldrb r1, [r4] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _0806CABC + adds r0, r6, #0 + bl sub_0806C9E8 +_0806CABC: + ldrb r1, [r4] + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0 + beq _0806CAF2 + cmp r5, #0 + beq _0806CAE4 + adds r0, r6, #1 + bl sub_0806C9E8 + b _0806CAF2 + .align 2, 0 +_0806CAD4: .4byte 0x082EEF14 +_0806CAD8: .4byte 0x0202415C +_0806CADC: .4byte 0x02023EB3 +_0806CAE0: .4byte 0x02023EAF +_0806CAE4: + ldr r0, _0806CB20 + ldrb r0, [r0] + mov r1, r8 + strb r0, [r1] + ldr r0, _0806CB24 + bl TryGetStatusString +_0806CAF2: + adds r6, #2 + adds r5, #1 + cmp r5, #2 + ble _0806CAAA + ldrb r1, [r7, #3] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806CB12 + ldr r1, _0806CB28 + ldr r0, _0806CB20 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _0806CB2C + bl TryGetStatusString +_0806CB12: + ldr r0, _0806CB30 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0806CB20: .4byte 0x0202415C +_0806CB24: .4byte 0x085A9D39 +_0806CB28: .4byte 0x02023EAF +_0806CB2C: .4byte 0x085A9D15 +_0806CB30: .4byte 0x02022AE0 + thumb_func_end sub_0806CA3C + + thumb_func_start GetNature +GetNature: @ 0x0806CB34 + push {lr} + movs r1, #0 + movs r2, #0 + bl GetMonData + movs r1, #0x19 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + thumb_func_end GetNature + + thumb_func_start GetNatureFromPersonality +GetNatureFromPersonality: @ 0x0806CB4C + push {lr} + movs r1, #0x19 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + thumb_func_end GetNatureFromPersonality + + thumb_func_start GetEvolutionTargetSpecies +GetEvolutionTargetSpecies: @ 0x0806CB5C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + mov r8, r0 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + mov sb, r2 + movs r0, #0 + mov sl, r0 + mov r0, r8 + movs r1, #0xb + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + mov r0, r8 + movs r1, #0xc + movs r2, #0 + bl GetMonData + mov r1, sp + strh r0, [r1] + mov r0, r8 + movs r1, #0 + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + mov r0, r8 + movs r1, #0x17 + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0xc] + lsrs r4, r4, #0x10 + str r4, [sp, #0x10] + mov r0, sp + ldrh r0, [r0] + cmp r0, #0xaf + bne _0806CBD0 + ldr r0, _0806CBC8 + ldr r0, [r0] + ldr r1, _0806CBCC + adds r0, r0, r1 + ldrb r0, [r0] + b _0806CBD8 + .align 2, 0 +_0806CBC8: .4byte 0x03005AEC +_0806CBCC: .4byte 0x00003226 +_0806CBD0: + bl sub_080D6CF8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_0806CBD8: + cmp r0, #0x26 + bne _0806CBE4 + cmp r5, #3 + beq _0806CBE4 + movs r0, #0 + b _0806CE74 +_0806CBE4: + cmp r5, #1 + bne _0806CBEA + b _0806CE04 +_0806CBEA: + cmp r5, #1 + bgt _0806CBF4 + cmp r5, #0 + beq _0806CC08 + b _0806CE72 +_0806CBF4: + cmp r5, #3 + ble _0806CBFA + b _0806CE72 +_0806CBFA: + movs r2, #0 + str r2, [sp, #4] + ldr r3, _0806CC04 + lsls r6, r7, #2 + b _0806CE52 + .align 2, 0 +_0806CC04: .4byte 0x082F5CA4 +_0806CC08: + mov r0, r8 + movs r1, #0x38 + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + mov r0, r8 + movs r1, #0x20 + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #8] + movs r0, #0 + str r0, [sp, #4] + lsls r6, r7, #2 +_0806CC2E: + ldr r1, _0806CC54 + ldr r0, [sp, #4] + lsls r2, r0, #3 + adds r0, r6, r7 + lsls r0, r0, #3 + adds r0, r2, r0 + adds r0, r0, r1 + ldrh r0, [r0] + subs r0, #1 + adds r3, r1, #0 + adds r4, r2, #0 + cmp r0, #0xe + bls _0806CC4A + b _0806CDF6 +_0806CC4A: + lsls r0, r0, #2 + ldr r1, _0806CC58 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806CC54: .4byte 0x082F5CA4 +_0806CC58: .4byte 0x0806CC5C +_0806CC5C: @ jump table + .4byte _0806CC98 @ case 0 + .4byte _0806CCAA @ case 1 + .4byte _0806CCCC @ case 2 + .4byte _0806CCFC @ case 3 + .4byte _0806CDF6 @ case 4 + .4byte _0806CDF6 @ case 5 + .4byte _0806CDF6 @ case 6 + .4byte _0806CD0C @ case 7 + .4byte _0806CD36 @ case 8 + .4byte _0806CD60 @ case 9 + .4byte _0806CD8E @ case 10 + .4byte _0806CDAE @ case 11 + .4byte _0806CDD2 @ case 12 + .4byte _0806CDF6 @ case 13 + .4byte _0806CDE2 @ case 14 +_0806CC98: + ldr r1, [sp, #8] + cmp r1, #0xdb + bhi _0806CCA0 + b _0806CDF6 +_0806CCA0: + adds r0, r6, r7 + lsls r0, r0, #3 + adds r0, r4, r0 + adds r0, r0, r3 + b _0806CCEC +_0806CCAA: + bl RtcCalcLocalTime + ldr r0, _0806CCC8 + ldrb r0, [r0, #2] + subs r0, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xb + bls _0806CCBE + b _0806CDF6 +_0806CCBE: + ldr r2, [sp, #8] + cmp r2, #0xdb + bhi _0806CCC6 + b _0806CDF6 +_0806CCC6: + b _0806CCE2 + .align 2, 0 +_0806CCC8: .4byte 0x03005A50 +_0806CCCC: + bl RtcCalcLocalTime + ldr r0, _0806CCF4 + ldrb r0, [r0, #2] + cmp r0, #0xb + bls _0806CCDA + b _0806CDF6 +_0806CCDA: + ldr r0, [sp, #8] + cmp r0, #0xdb + bhi _0806CCE2 + b _0806CDF6 +_0806CCE2: + ldr r1, _0806CCF8 + adds r0, r6, r7 + lsls r0, r0, #3 + adds r0, r4, r0 + adds r0, r0, r1 +_0806CCEC: + ldrh r0, [r0, #4] + mov sl, r0 + b _0806CDF6 + .align 2, 0 +_0806CCF4: .4byte 0x03005A50 +_0806CCF8: .4byte 0x082F5CA4 +_0806CCFC: + adds r0, r6, r7 + lsls r0, r0, #3 + adds r0, r4, r0 + adds r1, r0, r3 + ldrh r0, [r1, #2] + cmp r0, sb + bhi _0806CDF6 + b _0806CDF2 +_0806CD0C: + adds r0, r6, r7 + lsls r0, r0, #3 + adds r0, r4, r0 + adds r5, r0, r3 + ldrh r0, [r5, #2] + cmp r0, sb + bhi _0806CDF6 + mov r0, r8 + movs r1, #0x3b + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + mov r0, r8 + movs r1, #0x3c + movs r2, #0 + bl GetMonData + cmp r4, r0 + bls _0806CDF6 + b _0806CD88 +_0806CD36: + adds r0, r6, r7 + lsls r0, r0, #3 + adds r0, r4, r0 + adds r5, r0, r3 + ldrh r0, [r5, #2] + cmp r0, sb + bhi _0806CDF6 + mov r0, r8 + movs r1, #0x3b + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + mov r0, r8 + movs r1, #0x3c + movs r2, #0 + bl GetMonData + cmp r4, r0 + bne _0806CDF6 + b _0806CD88 +_0806CD60: + adds r0, r6, r7 + lsls r0, r0, #3 + adds r0, r4, r0 + adds r5, r0, r3 + ldrh r0, [r5, #2] + cmp r0, sb + bhi _0806CDF6 + mov r0, r8 + movs r1, #0x3b + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + mov r0, r8 + movs r1, #0x3c + movs r2, #0 + bl GetMonData + cmp r4, r0 + bhs _0806CDF6 +_0806CD88: + ldrh r5, [r5, #4] + mov sl, r5 + b _0806CDF6 +_0806CD8E: + adds r0, r6, r7 + lsls r0, r0, #3 + adds r0, r4, r0 + adds r4, r0, r3 + ldrh r0, [r4, #2] + cmp r0, sb + bhi _0806CDF6 + ldr r0, [sp, #0x10] + movs r1, #0xa + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #4 + bhi _0806CDF6 + b _0806CDCC +_0806CDAE: + adds r0, r6, r7 + lsls r0, r0, #3 + adds r0, r4, r0 + adds r4, r0, r3 + ldrh r0, [r4, #2] + cmp r0, sb + bhi _0806CDF6 + ldr r0, [sp, #0x10] + movs r1, #0xa + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #4 + bls _0806CDF6 +_0806CDCC: + ldrh r4, [r4, #4] + mov sl, r4 + b _0806CDF6 +_0806CDD2: + adds r0, r6, r7 + lsls r0, r0, #3 + adds r0, r4, r0 + adds r1, r0, r3 + ldrh r0, [r1, #2] + cmp r0, sb + bhi _0806CDF6 + b _0806CDF2 +_0806CDE2: + adds r0, r6, r7 + lsls r0, r0, #3 + adds r0, r4, r0 + adds r1, r0, r3 + ldrh r0, [r1, #2] + ldr r2, [sp, #0xc] + cmp r0, r2 + bhi _0806CDF6 +_0806CDF2: + ldrh r1, [r1, #4] + mov sl, r1 +_0806CDF6: + ldr r0, [sp, #4] + adds r0, #1 + str r0, [sp, #4] + cmp r0, #4 + bgt _0806CE02 + b _0806CC2E +_0806CE02: + b _0806CE72 +_0806CE04: + lsls r6, r7, #2 + ldr r1, _0806CE48 + adds r0, r6, r7 + lsls r0, r0, #3 + adds r4, r0, r1 + mov r5, sp + movs r1, #4 + str r1, [sp, #4] +_0806CE14: + ldrh r0, [r4] + cmp r0, #5 + beq _0806CE34 + cmp r0, #6 + bne _0806CE38 + ldrh r0, [r4, #2] + ldrh r1, [r5] + cmp r0, r1 + bne _0806CE38 + movs r0, #0 + strh r0, [r5] + mov r0, r8 + movs r1, #0xc + mov r2, sp + bl SetMonData +_0806CE34: + ldrh r2, [r4, #4] + mov sl, r2 +_0806CE38: + adds r4, #8 + ldr r0, [sp, #4] + subs r0, #1 + str r0, [sp, #4] + cmp r0, #0 + bge _0806CE14 + b _0806CE72 + .align 2, 0 +_0806CE48: .4byte 0x082F5CA4 +_0806CE4C: + ldrh r1, [r1, #4] + mov sl, r1 + b _0806CE72 +_0806CE52: + adds r0, r6, r7 + ldr r1, [sp, #4] + adds r0, r0, r1 + lsls r0, r0, #3 + adds r1, r0, r3 + ldrh r0, [r1] + cmp r0, #7 + bne _0806CE68 + ldrh r0, [r1, #2] + cmp r0, sb + beq _0806CE4C +_0806CE68: + ldr r2, [sp, #4] + adds r2, #1 + str r2, [sp, #4] + cmp r2, #4 + ble _0806CE52 +_0806CE72: + mov r0, sl +_0806CE74: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end GetEvolutionTargetSpecies + + thumb_func_start HoennPokedexNumToSpecies +HoennPokedexNumToSpecies: @ 0x0806CE84 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0 + beq _0806CEC8 + movs r1, #0 + ldr r3, _0806CEC0 + ldrh r0, [r3] + cmp r0, r2 + beq _0806CEB0 + movs r4, #0xcd + lsls r4, r4, #1 +_0806CE9C: + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, r4 + bhi _0806CEB0 + lsls r0, r1, #1 + adds r0, r0, r3 + ldrh r0, [r0] + cmp r0, r2 + bne _0806CE9C +_0806CEB0: + ldr r0, _0806CEC4 + cmp r1, r0 + beq _0806CEC8 + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _0806CECA + .align 2, 0 +_0806CEC0: .4byte 0x082EE2D4 +_0806CEC4: .4byte 0x0000019B +_0806CEC8: + movs r0, #0 +_0806CECA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end HoennPokedexNumToSpecies + + thumb_func_start NationalPokedexNumToSpecies +NationalPokedexNumToSpecies: @ 0x0806CED0 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0 + beq _0806CF14 + movs r1, #0 + ldr r3, _0806CF0C + ldrh r0, [r3] + cmp r0, r2 + beq _0806CEFC + movs r4, #0xcd + lsls r4, r4, #1 +_0806CEE8: + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, r4 + bhi _0806CEFC + lsls r0, r1, #1 + adds r0, r0, r3 + ldrh r0, [r0] + cmp r0, r2 + bne _0806CEE8 +_0806CEFC: + ldr r0, _0806CF10 + cmp r1, r0 + beq _0806CF14 + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _0806CF16 + .align 2, 0 +_0806CF0C: .4byte 0x082EE60A +_0806CF10: .4byte 0x0000019B +_0806CF14: + movs r0, #0 +_0806CF16: + pop {r4} + pop {r1} + bx r1 + thumb_func_end NationalPokedexNumToSpecies + + thumb_func_start NationalToHoennOrder +NationalToHoennOrder: @ 0x0806CF1C + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0 + beq _0806CF60 + movs r1, #0 + ldr r3, _0806CF58 + ldrh r0, [r3] + cmp r0, r2 + beq _0806CF48 + movs r4, #0xcd + lsls r4, r4, #1 +_0806CF34: + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, r4 + bhi _0806CF48 + lsls r0, r1, #1 + adds r0, r0, r3 + ldrh r0, [r0] + cmp r0, r2 + bne _0806CF34 +_0806CF48: + ldr r0, _0806CF5C + cmp r1, r0 + beq _0806CF60 + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _0806CF62 + .align 2, 0 +_0806CF58: .4byte 0x082EE940 +_0806CF5C: .4byte 0x0000019B +_0806CF60: + movs r0, #0 +_0806CF62: + pop {r4} + pop {r1} + bx r1 + thumb_func_end NationalToHoennOrder + + thumb_func_start HoennToNationalOrder +HoennToNationalOrder: @ 0x0806CF68 + push {lr} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + beq _0806CF84 + ldr r0, _0806CF80 + subs r1, #1 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + b _0806CF86 + .align 2, 0 +_0806CF80: .4byte 0x082EE60A +_0806CF84: + movs r0, #0 +_0806CF86: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end HoennToNationalOrder + + thumb_func_start SpeciesToHoennPokedexNum +SpeciesToHoennPokedexNum: @ 0x0806CF8C + push {lr} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + beq _0806CFA8 + ldr r0, _0806CFA4 + subs r1, #1 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + b _0806CFAA + .align 2, 0 +_0806CFA4: .4byte 0x082EE2D4 +_0806CFA8: + movs r0, #0 +_0806CFAA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SpeciesToHoennPokedexNum + + thumb_func_start SpeciesToNationalPokedexNum +SpeciesToNationalPokedexNum: @ 0x0806CFB0 + push {lr} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + beq _0806CFCC + ldr r0, _0806CFC8 + subs r1, #1 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + b _0806CFCE + .align 2, 0 +_0806CFC8: .4byte 0x082EE940 +_0806CFCC: + movs r0, #0 +_0806CFCE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SpeciesToNationalPokedexNum + + thumb_func_start SpeciesToCryId +SpeciesToCryId: @ 0x0806CFD4 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r0, #0 + cmp r0, #0xfa + bls _0806D002 + ldr r0, _0806CFF4 + cmp r1, r0 + bls _0806D000 + ldr r0, _0806CFF8 + ldr r2, _0806CFFC + adds r1, r1, r2 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + b _0806D002 + .align 2, 0 +_0806CFF4: .4byte 0x00000113 +_0806CFF8: .4byte 0x082EFFA4 +_0806CFFC: .4byte 0xFFFFFEEC +_0806D000: + movs r0, #0xc8 +_0806D002: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SpeciesToCryId + + thumb_func_start sub_0806D008 +sub_0806D008: @ 0x0806D008 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r6, r1, #0 + mov sl, r2 + lsls r0, r0, #0x10 + movs r1, #0x9a + lsls r1, r1, #0x11 + cmp r0, r1 + bne _0806D116 + ldr r0, _0806D0D8 + ldr r1, [r0] + ldr r0, [r1, #4] + cmp sl, r0 + beq _0806D116 + ldr r0, [r1, #0xc] + cmp sl, r0 + beq _0806D116 + movs r5, #0 +_0806D034: + lsls r3, r5, #3 + adds r3, r3, r5 + lsls r3, r3, #2 + ldr r0, _0806D0DC + adds r4, r3, r0 + ldrb r1, [r4] + adds r1, #0xf8 + movs r2, #0xf + adds r0, r6, #0 + ands r0, r2 + adds r1, r1, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov ip, r1 + ldrb r1, [r4, #1] + adds r1, #0xf8 + movs r0, #0xf0 + ands r0, r6 + lsrs r0, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r2, #0 + lsrs r6, r6, #8 + str r6, [sp, #4] + adds r5, #1 + str r5, [sp] + mov sb, r3 +_0806D06C: + lsls r0, r2, #1 + add r0, sb + ldr r3, _0806D0E0 + adds r0, r0, r3 + ldrh r3, [r0] + mov r4, ip + adds r0, r4, #0 + adds r0, #0x10 + adds r7, r1, #1 + adds r2, #1 + mov r8, r2 + cmp r4, r0 + bge _0806D104 + lsrs r0, r1, #3 + lsls r6, r0, #8 + movs r0, #7 + ands r1, r0 + lsls r5, r1, #2 +_0806D090: + adds r0, r4, #0 + cmp r4, #0 + bge _0806D098 + adds r0, r4, #7 +_0806D098: + asrs r0, r0, #3 + lsls r2, r0, #5 + add r2, sl + lsls r0, r0, #3 + subs r0, r4, r0 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + adds r2, r2, r0 + adds r2, r2, r6 + adds r2, r2, r5 + movs r1, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _0806D0F8 + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + beq _0806D0E4 + ldrb r1, [r2] + movs r0, #0xf0 + ands r0, r1 + subs r0, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x20 + bhi _0806D0F8 + adds r0, r1, #0 + adds r0, #0x40 + b _0806D0F6 + .align 2, 0 +_0806D0D8: .4byte 0x02024178 +_0806D0DC: .4byte 0x082EEC78 +_0806D0E0: .4byte 0x082EEC7A +_0806D0E4: + ldrb r1, [r2] + movs r0, #0xf + ands r0, r1 + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bhi _0806D0F8 + adds r0, r1, #4 +_0806D0F6: + strb r0, [r2] +_0806D0F8: + asrs r3, r3, #1 + adds r4, #1 + mov r0, ip + adds r0, #0x10 + cmp r4, r0 + blt _0806D090 +_0806D104: + lsls r0, r7, #0x18 + lsrs r1, r0, #0x18 + mov r2, r8 + cmp r2, #0xf + ble _0806D06C + ldr r6, [sp, #4] + ldr r5, [sp] + cmp r5, #3 + ble _0806D034 +_0806D116: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0806D008 + + thumb_func_start DrawSpindaSpots +DrawSpindaSpots: @ 0x0806D128 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r5, r1, #0 + str r2, [sp] + lsls r0, r0, #0x10 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r1, #0x9a + lsls r1, r1, #0x11 + cmp r0, r1 + bne _0806D22A + cmp r3, #0 + beq _0806D22A + movs r6, #0 +_0806D14C: + lsls r3, r6, #3 + adds r3, r3, r6 + lsls r3, r3, #2 + ldr r0, _0806D1F0 + adds r4, r3, r0 + ldrb r1, [r4] + adds r1, #0xf8 + movs r2, #0xf + adds r0, r5, #0 + ands r0, r2 + adds r1, r1, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov ip, r1 + ldrb r1, [r4, #1] + adds r1, #0xf8 + movs r0, #0xf0 + ands r0, r5 + lsrs r0, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r2, #0 + lsrs r5, r5, #8 + str r5, [sp, #4] + adds r6, #1 + mov sl, r6 + mov sb, r3 +_0806D184: + lsls r0, r2, #1 + add r0, sb + ldr r3, _0806D1F4 + adds r0, r0, r3 + ldrh r3, [r0] + mov r4, ip + adds r0, r4, #0 + adds r0, #0x10 + adds r7, r1, #1 + adds r2, #1 + mov r8, r2 + cmp r4, r0 + bge _0806D218 + lsrs r0, r1, #3 + lsls r6, r0, #8 + movs r0, #7 + ands r1, r0 + lsls r5, r1, #2 +_0806D1A8: + adds r0, r4, #0 + cmp r4, #0 + bge _0806D1B0 + adds r0, r4, #7 +_0806D1B0: + asrs r0, r0, #3 + lsls r2, r0, #5 + ldr r1, [sp] + adds r2, r1, r2 + lsls r0, r0, #3 + subs r0, r4, r0 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + adds r2, r2, r0 + adds r2, r2, r6 + adds r2, r2, r5 + movs r1, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _0806D20C + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + beq _0806D1F8 + ldrb r1, [r2] + movs r0, #0xf0 + ands r0, r1 + subs r0, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x20 + bhi _0806D20C + adds r0, r1, #0 + adds r0, #0x40 + b _0806D20A + .align 2, 0 +_0806D1F0: .4byte 0x082EEC78 +_0806D1F4: .4byte 0x082EEC7A +_0806D1F8: + ldrb r1, [r2] + movs r0, #0xf + ands r0, r1 + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bhi _0806D20C + adds r0, r1, #4 +_0806D20A: + strb r0, [r2] +_0806D20C: + asrs r3, r3, #1 + adds r4, #1 + mov r0, ip + adds r0, #0x10 + cmp r4, r0 + blt _0806D1A8 +_0806D218: + lsls r0, r7, #0x18 + lsrs r1, r0, #0x18 + mov r2, r8 + cmp r2, #0xf + ble _0806D184 + ldr r5, [sp, #4] + mov r6, sl + cmp r6, #3 + ble _0806D14C +_0806D22A: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end DrawSpindaSpots + + thumb_func_start sub_0806D23C +sub_0806D23C: @ 0x0806D23C + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r4, r1, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r2, r2, #0x10 + lsrs r6, r2, #0x10 + ldr r5, _0806D280 + movs r1, #2 + adds r2, r5, #0 + bl GetMonData + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #1 + ldr r4, _0806D284 + adds r0, r0, r4 + adds r1, r5, #0 + bl StringCompare + cmp r0, #0 + bne _0806D278 + lsls r2, r6, #1 + adds r2, r2, r6 + lsls r2, r2, #1 + adds r2, r2, r4 + adds r0, r7, #0 + movs r1, #2 + bl SetMonData +_0806D278: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0806D280: .4byte 0x02021C40 +_0806D284: .4byte 0x082EA31C + thumb_func_end sub_0806D23C + + thumb_func_start sub_0806D288 +sub_0806D288: @ 0x0806D288 + push {r4, r5, lr} + movs r5, #0 + ldr r4, _0806D2B0 + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrh r0, [r1, #0x18] + cmp r0, #2 + bgt _0806D2B4 + cmp r0, #1 + bge _0806D2BC + cmp r0, #0 + beq _0806D2B8 + b _0806D2BE + .align 2, 0 +_0806D2B0: .4byte 0x020226A0 +_0806D2B4: + cmp r0, #3 + bne _0806D2BE +_0806D2B8: + movs r5, #0 + b _0806D2BE +_0806D2BC: + movs r5, #1 +_0806D2BE: + adds r0, r5, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0806D288 + + thumb_func_start GetLinkTrainerFlankId +GetLinkTrainerFlankId: @ 0x0806D2C8 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r3, #0 + ldr r2, _0806D2EC + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r0, [r1, #0x18] + cmp r0, #2 + bgt _0806D2F0 + cmp r0, #1 + bge _0806D2F8 + cmp r0, #0 + beq _0806D2F4 + b _0806D2FA + .align 2, 0 +_0806D2EC: .4byte 0x020226A0 +_0806D2F0: + cmp r0, #3 + bne _0806D2FA +_0806D2F4: + movs r3, #0 + b _0806D2FA +_0806D2F8: + movs r3, #1 +_0806D2FA: + adds r0, r3, #0 + pop {r1} + bx r1 + thumb_func_end GetLinkTrainerFlankId + + thumb_func_start GetBattlerMultiplayerId +GetBattlerMultiplayerId: @ 0x0806D300 + push {lr} + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + movs r2, #0 + ldr r1, _0806D30C + b _0806D318 + .align 2, 0 +_0806D30C: .4byte 0x020226A0 +_0806D310: + adds r1, #0x1c + adds r2, #1 + cmp r2, #3 + bgt _0806D31E +_0806D318: + ldrh r0, [r1, #0x18] + cmp r0, r3 + bne _0806D310 +_0806D31E: + adds r0, r2, #0 + pop {r1} + bx r1 + thumb_func_end GetBattlerMultiplayerId + + thumb_func_start GetTrainerEncounterMusicId +GetTrainerEncounterMusicId: @ 0x0806D324 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r5, r4, #0 + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0806D33E + adds r0, r4, #0 + bl GetBattlePyramindTrainerEncounterMusicId + b _0806D362 +_0806D33E: + bl sub_081D52F0 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806D35C + ldr r1, _0806D358 + lsls r0, r4, #5 + adds r0, r0, r1 + ldrb r1, [r0, #2] + movs r0, #0x7f + ands r0, r1 + b _0806D366 + .align 2, 0 +_0806D358: .4byte 0x082E383C +_0806D35C: + adds r0, r5, #0 + bl GetTrainerEncounterMusicIdInTrainerHill +_0806D362: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_0806D366: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end GetTrainerEncounterMusicId + + thumb_func_start ModifyStatByNature +ModifyStatByNature: @ 0x0806D36C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r3, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + movs r0, #0xff + lsls r0, r0, #0x18 + adds r2, r2, r0 + lsrs r2, r2, #0x18 + cmp r2, #4 + bls _0806D38A + adds r0, r3, #0 + b _0806D3C6 +_0806D38A: + ldr r0, _0806D3AC + lsls r1, r4, #2 + adds r1, r1, r4 + subs r1, #1 + adds r1, r5, r1 + adds r1, r1, r0 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0806D3B0 + cmp r1, #1 + bne _0806D3C4 + movs r0, #0x6e + b _0806D3B2 + .align 2, 0 +_0806D3AC: .4byte 0x082EF1A0 +_0806D3B0: + movs r0, #0x5a +_0806D3B2: + muls r0, r3, r0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _0806D3C6 +_0806D3C4: + adds r0, r3, #0 +_0806D3C6: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end ModifyStatByNature + + thumb_func_start AdjustFriendship +AdjustFriendship: @ 0x0806D3CC + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r7, r0, #0 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + bl sub_0806EB88 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0806D3E2 + b _0806D556 +_0806D3E2: + adds r0, r7, #0 + movs r1, #0x41 + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r0, r7, #0 + movs r1, #0xc + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xaf + bne _0806D438 + ldr r0, _0806D418 + ldr r1, _0806D41C + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806D424 + ldr r0, _0806D420 + ldrb r4, [r0, #7] + b _0806D440 + .align 2, 0 +_0806D418: .4byte 0x03002360 +_0806D41C: .4byte 0x00000439 +_0806D420: .4byte 0x020240A8 +_0806D424: + ldr r0, _0806D430 + ldr r0, [r0] + ldr r1, _0806D434 + adds r0, r0, r1 + ldrb r4, [r0] + b _0806D440 + .align 2, 0 +_0806D430: .4byte 0x03005AEC +_0806D434: .4byte 0x00003226 +_0806D438: + bl sub_080D6CF8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_0806D440: + cmp r6, #0 + bne _0806D446 + b _0806D556 +_0806D446: + movs r0, #0xce + lsls r0, r0, #1 + cmp r6, r0 + bne _0806D450 + b _0806D556 +_0806D450: + movs r6, #0 + adds r0, r7, #0 + movs r1, #0x20 + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r1, sp + strh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x63 + ble _0806D46E + movs r6, #1 +_0806D46E: + cmp r0, #0xc7 + ble _0806D478 + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_0806D478: + cmp r5, #5 + bne _0806D488 + bl Random + movs r1, #1 + ands r1, r0 + cmp r1, #0 + bne _0806D556 +_0806D488: + cmp r5, #3 + bne _0806D4B4 + ldr r0, _0806D560 + ldr r0, [r0] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _0806D556 + ldr r1, _0806D564 + ldr r0, _0806D568 + ldrh r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r1 + ldrb r1, [r0, #1] + adds r0, r1, #0 + subs r0, #0x1f + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _0806D4B4 + cmp r1, #0x26 + bne _0806D556 +_0806D4B4: + ldr r1, _0806D56C + lsls r0, r5, #1 + adds r0, r0, r5 + adds r0, r6, r0 + adds r0, r0, r1 + ldrb r2, [r0] + movs r1, #0 + ldrsb r1, [r0, r1] + cmp r1, #0 + ble _0806D4DA + cmp r4, #0x1b + bne _0806D4DA + movs r0, #0x96 + muls r0, r1, r0 + movs r1, #0x64 + bl __divsi3 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 +_0806D4DA: + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + adds r0, r0, r2 + mov r1, sp + strh r0, [r1] + cmp r2, #0 + ble _0806D52C + adds r0, r7, #0 + movs r1, #0x26 + movs r2, #0 + bl GetMonData + cmp r0, #0xb + bne _0806D508 + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + adds r0, #1 + mov r1, sp + strh r0, [r1] +_0806D508: + adds r0, r7, #0 + movs r1, #0x23 + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + bl GetCurrentRegionMapSectionId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + bne _0806D52C + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + adds r0, #1 + mov r1, sp + strh r0, [r1] +_0806D52C: + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bge _0806D53C + movs r1, #0 + mov r0, sp + strh r1, [r0] +_0806D53C: + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0xff + ble _0806D54C + movs r1, #0xff + mov r0, sp + strh r1, [r0] +_0806D54C: + adds r0, r7, #0 + movs r1, #0x20 + mov r2, sp + bl SetMonData +_0806D556: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0806D560: .4byte 0x02022C90 +_0806D564: .4byte 0x082E383C +_0806D568: .4byte 0x0203886A +_0806D56C: .4byte 0x082FA85A + thumb_func_end AdjustFriendship + + thumb_func_start MonGainEVs +MonGainEVs: @ 0x0806D570 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + mov r8, r0 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + movs r4, #0 + movs r7, #0 + movs r6, #0 +_0806D584: + adds r1, r6, #0 + adds r1, #0x1a + mov r0, r8 + movs r2, #0 + bl GetMonData + mov r2, sp + adds r1, r2, r6 + strb r0, [r1] + ldrb r0, [r1] + adds r0, r7, r0 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + adds r6, #1 + cmp r6, #5 + ble _0806D584 + movs r6, #0 + b _0806D706 +_0806D5A8: + mov r0, r8 + movs r1, #0 + bl CheckPartyHasHadPokerus + lsls r0, r0, #0x18 + movs r2, #1 + cmp r0, #0 + beq _0806D5BA + movs r2, #2 +_0806D5BA: + cmp r6, #5 + bhi _0806D65C + lsls r0, r6, #2 + ldr r1, _0806D5C8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806D5C8: .4byte 0x0806D5CC +_0806D5CC: @ jump table + .4byte _0806D5E4 @ case 0 + .4byte _0806D5F8 @ case 1 + .4byte _0806D60C @ case 2 + .4byte _0806D620 @ case 3 + .4byte _0806D634 @ case 4 + .4byte _0806D648 @ case 5 +_0806D5E4: + ldr r0, _0806D5F4 + lsls r1, r5, #3 + subs r1, r1, r5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #0xa] + lsls r0, r0, #0x1e + b _0806D656 + .align 2, 0 +_0806D5F4: .4byte 0x082F0D54 +_0806D5F8: + ldr r0, _0806D608 + lsls r1, r5, #3 + subs r1, r1, r5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #0xa] + b _0806D654 + .align 2, 0 +_0806D608: .4byte 0x082F0D54 +_0806D60C: + ldr r0, _0806D61C + lsls r1, r5, #3 + subs r1, r1, r5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #0xa] + lsls r0, r0, #0x1a + b _0806D656 + .align 2, 0 +_0806D61C: .4byte 0x082F0D54 +_0806D620: + ldr r0, _0806D630 + lsls r1, r5, #3 + subs r1, r1, r5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #0xa] + lsrs r0, r0, #6 + b _0806D658 + .align 2, 0 +_0806D630: .4byte 0x082F0D54 +_0806D634: + ldr r0, _0806D644 + lsls r1, r5, #3 + subs r1, r1, r5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #0xb] + lsls r0, r0, #0x1e + b _0806D656 + .align 2, 0 +_0806D644: .4byte 0x082F0D54 +_0806D648: + ldr r0, _0806D684 + lsls r1, r5, #3 + subs r1, r1, r5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #0xb] +_0806D654: + lsls r0, r0, #0x1c +_0806D656: + lsrs r0, r0, #0x1e +_0806D658: + adds r4, r0, #0 + muls r4, r2, r4 +_0806D65C: + mov r0, r8 + movs r1, #0xc + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xaf + bne _0806D6A8 + ldr r0, _0806D688 + ldr r1, _0806D68C + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806D694 + ldr r0, _0806D690 + ldrb r0, [r0, #7] + b _0806D6B0 + .align 2, 0 +_0806D684: .4byte 0x082F0D54 +_0806D688: .4byte 0x03002360 +_0806D68C: .4byte 0x00000439 +_0806D690: .4byte 0x020240A8 +_0806D694: + ldr r0, _0806D6A0 + ldr r0, [r0] + ldr r2, _0806D6A4 + adds r0, r0, r2 + ldrb r0, [r0] + b _0806D6B0 + .align 2, 0 +_0806D6A0: .4byte 0x03005AEC +_0806D6A4: .4byte 0x00003226 +_0806D6A8: + bl sub_080D6CF8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_0806D6B0: + cmp r0, #0x18 + bne _0806D6B8 + lsls r0, r4, #0x11 + lsrs r4, r0, #0x10 +_0806D6B8: + lsls r0, r4, #0x10 + asrs r2, r0, #0x10 + adds r1, r7, r2 + movs r0, #0xff + lsls r0, r0, #1 + cmp r1, r0 + ble _0806D6D0 + adds r0, r2, r0 + adds r1, r7, r4 + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_0806D6D0: + mov r0, sp + adds r2, r0, r6 + ldrb r3, [r2] + lsls r0, r4, #0x10 + asrs r1, r0, #0x10 + adds r0, r3, r1 + cmp r0, #0xff + ble _0806D6EC + adds r0, r1, #0 + adds r0, #0xff + adds r1, r3, r4 + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_0806D6EC: + adds r0, r3, r4 + strb r0, [r2] + adds r0, r7, r4 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + adds r1, r6, #0 + adds r1, #0x1a + mov r0, r8 + bl SetMonData + adds r6, #1 + cmp r6, #5 + bgt _0806D70E +_0806D706: + ldr r0, _0806D71C + cmp r7, r0 + bhi _0806D70E + b _0806D5A8 +_0806D70E: + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0806D71C: .4byte 0x000001FD + thumb_func_end MonGainEVs + + thumb_func_start GetMonEVCount +GetMonEVCount: @ 0x0806D720 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r5, #0 + movs r4, #0 +_0806D728: + adds r1, r4, #0 + adds r1, #0x1a + adds r0, r6, #0 + movs r2, #0 + bl GetMonData + adds r0, r5, r0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r4, #1 + cmp r4, #5 + ble _0806D728 + adds r0, r5, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end GetMonEVCount + + thumb_func_start RandomlyGivePartyPokerus +RandomlyGivePartyPokerus: @ 0x0806D748 + push {r4, r5, r6, lr} + sub sp, #4 + adds r6, r0, #0 + bl Random + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + movs r0, #0x80 + lsls r0, r0, #7 + cmp r5, r0 + beq _0806D76E + movs r0, #0x80 + lsls r0, r0, #8 + cmp r5, r0 + beq _0806D76E + movs r0, #0xc0 + lsls r0, r0, #8 + cmp r5, r0 + bne _0806D804 +_0806D76E: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #6 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + movs r0, #0x64 + muls r0, r5, r0 + adds r4, r6, r0 + adds r0, r4, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + cmp r0, #0 + beq _0806D76E + adds r0, r4, #0 + movs r1, #0x2d + movs r2, #0 + bl GetMonData + cmp r0, #0 + bne _0806D76E + ldr r1, _0806D80C + lsls r0, r5, #2 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r6, #0 + bl CheckPartyHasHadPokerus + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806D804 + movs r4, #7 +_0806D7B8: + bl Random + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, sp + strb r0, [r1] + adds r2, r0, #0 + adds r1, r2, #0 + ands r1, r4 + cmp r1, #0 + beq _0806D7B8 + movs r0, #0xf0 + ands r0, r2 + cmp r0, #0 + beq _0806D7DA + mov r0, sp + strb r1, [r0] +_0806D7DA: + mov r0, sp + ldrb r0, [r0] + lsls r1, r0, #4 + orrs r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, sp + strb r0, [r1] + movs r1, #0xf3 + ands r1, r0 + mov r0, sp + strb r1, [r0] + adds r1, #1 + strb r1, [r0] + movs r0, #0x64 + muls r0, r5, r0 + adds r0, r6, r0 + movs r1, #0x22 + mov r2, sp + bl SetMonData +_0806D804: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0806D80C: .4byte 0x082FACB4 + thumb_func_end RandomlyGivePartyPokerus + + thumb_func_start CheckPartyPokerus +CheckPartyPokerus: @ 0x0806D810 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r7, r0, #0 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + movs r3, #0 + movs r6, #1 + movs r5, #0 + cmp r4, #0 + beq _0806D858 +_0806D824: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _0806D84C + movs r0, #0x64 + muls r0, r3, r0 + adds r0, r7, r0 + movs r1, #0x22 + movs r2, #0 + str r3, [sp] + bl GetMonData + movs r1, #0xf + ands r1, r0 + ldr r3, [sp] + cmp r1, #0 + beq _0806D84C + orrs r5, r6 + lsls r0, r5, #0x18 + lsrs r5, r0, #0x18 +_0806D84C: + adds r3, #1 + lsls r6, r6, #1 + lsrs r4, r4, #1 + cmp r4, #0 + bne _0806D824 + b _0806D86C +_0806D858: + adds r0, r7, #0 + movs r1, #0x22 + movs r2, #0 + bl GetMonData + movs r1, #0xf + ands r1, r0 + cmp r1, #0 + beq _0806D86C + movs r5, #1 +_0806D86C: + adds r0, r5, #0 + add sp, #4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CheckPartyPokerus + + thumb_func_start CheckPartyHasHadPokerus +CheckPartyHasHadPokerus: @ 0x0806D878 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r7, r0, #0 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + movs r3, #0 + movs r6, #1 + movs r5, #0 + cmp r4, #0 + beq _0806D8BC +_0806D88C: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _0806D8B0 + movs r0, #0x64 + muls r0, r3, r0 + adds r0, r7, r0 + movs r1, #0x22 + movs r2, #0 + str r3, [sp] + bl GetMonData + ldr r3, [sp] + cmp r0, #0 + beq _0806D8B0 + orrs r5, r6 + lsls r0, r5, #0x18 + lsrs r5, r0, #0x18 +_0806D8B0: + adds r3, #1 + lsls r6, r6, #1 + lsrs r4, r4, #1 + cmp r4, #0 + bne _0806D88C + b _0806D8CC +_0806D8BC: + adds r0, r7, #0 + movs r1, #0x22 + movs r2, #0 + bl GetMonData + cmp r0, #0 + beq _0806D8CC + movs r5, #1 +_0806D8CC: + adds r0, r5, #0 + add sp, #4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CheckPartyHasHadPokerus + + thumb_func_start UpdatePartyPokerusTime +UpdatePartyPokerusTime: @ 0x0806D8D8 + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + movs r6, #0 + mov r5, sp +_0806D8E4: + movs r0, #0x64 + adds r1, r6, #0 + muls r1, r0, r1 + ldr r0, _0806D924 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + cmp r0, #0 + beq _0806D946 + adds r0, r4, #0 + movs r1, #0x22 + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strb r0, [r5] + movs r1, #0xf + adds r2, r0, #0 + ands r1, r2 + cmp r1, #0 + beq _0806D946 + cmp r1, r7 + blo _0806D91E + cmp r7, #4 + bls _0806D928 +_0806D91E: + movs r0, #0xf0 + ands r0, r2 + b _0806D92A + .align 2, 0 +_0806D924: .4byte 0x02024190 +_0806D928: + subs r0, r2, r7 +_0806D92A: + strb r0, [r5] + ldrb r0, [r5] + cmp r0, #0 + bne _0806D936 + movs r0, #0x10 + strb r0, [r5] +_0806D936: + movs r0, #0x64 + muls r0, r6, r0 + ldr r1, _0806D954 + adds r0, r0, r1 + movs r1, #0x22 + mov r2, sp + bl SetMonData +_0806D946: + adds r6, #1 + cmp r6, #5 + ble _0806D8E4 + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0806D954: .4byte 0x02024190 + thumb_func_end UpdatePartyPokerusTime + + thumb_func_start PartySpreadPokerus +PartySpreadPokerus: @ 0x0806D958 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r7, r0, #0 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0806D9FE + movs r5, #0 +_0806D974: + movs r0, #0x64 + adds r6, r5, #0 + muls r6, r0, r6 + adds r4, r7, r6 + adds r0, r4, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + cmp r0, #0 + beq _0806D9F8 + adds r0, r4, #0 + movs r1, #0x22 + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + mov r0, sp + strb r1, [r0] + cmp r1, #0 + beq _0806D9F8 + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _0806D9F8 + cmp r5, #0 + beq _0806D9CE + adds r0, r6, #0 + subs r0, #0x64 + adds r4, r7, r0 + adds r0, r4, #0 + movs r1, #0x22 + movs r2, #0 + bl GetMonData + movs r1, #0xf0 + ands r1, r0 + cmp r1, #0 + bne _0806D9CE + adds r0, r4, #0 + movs r1, #0x22 + mov r2, sp + bl SetMonData +_0806D9CE: + cmp r5, #5 + beq _0806D9F8 + movs r0, #0x64 + muls r0, r5, r0 + adds r0, #0x64 + adds r4, r7, r0 + adds r0, r4, #0 + movs r1, #0x22 + movs r2, #0 + bl GetMonData + movs r1, #0xf0 + ands r1, r0 + cmp r1, #0 + bne _0806D9F8 + adds r0, r4, #0 + movs r1, #0x22 + mov r2, sp + bl SetMonData + adds r5, #1 +_0806D9F8: + adds r5, #1 + cmp r5, #5 + ble _0806D974 +_0806D9FE: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PartySpreadPokerus + + thumb_func_start TryIncrementMonLevel +TryIncrementMonLevel: @ 0x0806DA08 + push {r4, r5, r6, lr} + sub sp, #8 + adds r5, r0, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + movs r1, #0x38 + movs r2, #0 + bl GetMonData + adds r0, #1 + mov r1, sp + strb r0, [r1] + adds r0, r5, #0 + movs r1, #0x19 + movs r2, #0 + bl GetMonData + str r0, [sp, #4] + ldr r6, _0806DA84 + ldr r2, _0806DA88 + lsls r1, r4, #3 + subs r1, r1, r4 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r2, [r1, #0x13] + movs r1, #0xca + lsls r1, r1, #1 + adds r4, r2, #0 + muls r4, r1, r4 + movs r2, #0xc8 + lsls r2, r2, #1 + adds r1, r6, r2 + adds r1, r4, r1 + ldr r1, [r1] + cmp r0, r1 + bls _0806DA68 + str r1, [sp, #4] + add r2, sp, #4 + adds r0, r5, #0 + movs r1, #0x19 + bl SetMonData +_0806DA68: + mov r0, sp + ldrb r0, [r0] + cmp r0, #0x64 + bhi _0806DA7E + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, r0, r6 + ldr r1, [sp, #4] + ldr r0, [r0] + cmp r1, r0 + bhs _0806DA8C +_0806DA7E: + movs r0, #0 + b _0806DA98 + .align 2, 0 +_0806DA84: .4byte 0x082F00B4 +_0806DA88: .4byte 0x082F0D54 +_0806DA8C: + adds r0, r5, #0 + movs r1, #0x38 + mov r2, sp + bl SetMonData + movs r0, #1 +_0806DA98: + add sp, #8 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end TryIncrementMonLevel + + thumb_func_start CanMonLearnTMHM +CanMonLearnTMHM: @ 0x0806DAA0 + push {r4, r5, lr} + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + adds r5, r4, #0 + movs r1, #0x41 + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + adds r3, r1, #0 + movs r0, #0xce + lsls r0, r0, #1 + cmp r1, r0 + bne _0806DAC2 + movs r0, #0 + b _0806DAEE +_0806DAC2: + cmp r4, #0x1f + bls _0806DAE0 + adds r0, r4, #0 + subs r0, #0x20 + movs r2, #1 + lsls r2, r0 + ldr r0, _0806DADC + lsls r1, r1, #3 + adds r0, #4 + adds r1, r1, r0 + ldr r0, [r1] + ands r0, r2 + b _0806DAEE + .align 2, 0 +_0806DADC: .4byte 0x082EF220 +_0806DAE0: + movs r1, #1 + lsls r1, r5 + ldr r2, _0806DAF4 + lsls r0, r3, #3 + adds r0, r0, r2 + ldr r0, [r0] + ands r0, r1 +_0806DAEE: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0806DAF4: .4byte 0x082EF220 + thumb_func_end CanMonLearnTMHM + + thumb_func_start CanSpeciesLearnTMHM +CanSpeciesLearnTMHM: @ 0x0806DAF8 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + adds r4, r3, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r2, r1, #0 + movs r0, #0xce + lsls r0, r0, #1 + cmp r3, r0 + bne _0806DB12 + movs r0, #0 + b _0806DB3E +_0806DB12: + cmp r1, #0x1f + bls _0806DB30 + adds r0, r1, #0 + subs r0, #0x20 + movs r2, #1 + lsls r2, r0 + ldr r0, _0806DB2C + lsls r1, r3, #3 + adds r0, #4 + adds r1, r1, r0 + ldr r0, [r1] + ands r0, r2 + b _0806DB3E + .align 2, 0 +_0806DB2C: .4byte 0x082EF220 +_0806DB30: + movs r1, #1 + lsls r1, r2 + ldr r2, _0806DB44 + lsls r0, r4, #3 + adds r0, r0, r2 + ldr r0, [r0] + ands r0, r1 +_0806DB3E: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0806DB44: .4byte 0x082EF220 + thumb_func_end CanSpeciesLearnTMHM + + thumb_func_start GetMoveRelearnerMoves +GetMoveRelearnerMoves: @ 0x0806DB48 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + adds r6, r0, #0 + str r1, [sp, #8] + movs r0, #0 + mov sl, r0 + adds r0, r6, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + adds r0, r6, #0 + movs r1, #0x38 + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0xc] + movs r5, #0 + mov r4, sp +_0806DB7E: + adds r1, r5, #0 + adds r1, #0xd + adds r0, r6, #0 + movs r2, #0 + bl GetMonData + strh r0, [r4] + adds r4, #2 + adds r5, #1 + cmp r5, #3 + ble _0806DB7E + movs r5, #0 + ldr r6, _0806DC8C + lsls r1, r7, #2 + adds r2, r1, r6 + ldr r3, [r2] + ldrh r0, [r3] + ldr r4, _0806DC90 + str r1, [sp, #0x14] + cmp r0, r4 + beq _0806DC78 + mov sb, r2 + str r3, [sp, #0x10] +_0806DBAC: + lsls r2, r5, #1 + ldr r1, [sp, #0x10] + adds r0, r2, r1 + ldrh r3, [r0] + movs r0, #0xfe + lsls r0, r0, #8 + ands r0, r3 + ldr r4, [sp, #0xc] + lsls r1, r4, #9 + adds r7, r2, #0 + adds r5, #1 + mov ip, r5 + cmp r0, r1 + bgt _0806DC62 + movs r4, #0 + mov r0, sp + ldrh r1, [r0] + ldr r0, _0806DC94 + ands r0, r3 + cmp r1, r0 + beq _0806DBFC + ldr r0, [sp, #0x14] + ldr r1, _0806DC8C + adds r6, r0, r1 + ldr r2, _0806DC94 + mov r8, r2 + mov r3, sp + adds r5, r7, #0 +_0806DBE4: + adds r3, #2 + adds r4, #1 + cmp r4, #3 + bgt _0806DBFC + ldr r0, [r6] + adds r0, r5, r0 + ldrh r1, [r0] + ldrh r2, [r3] + mov r0, r8 + ands r0, r1 + cmp r2, r0 + bne _0806DBE4 +_0806DBFC: + cmp r4, #4 + bne _0806DC62 + movs r4, #0 + cmp r4, sl + bge _0806DC40 + mov r1, sb + ldr r0, [r1] + adds r0, r7, r0 + ldrh r1, [r0] + ldr r0, [sp, #8] + ldrh r2, [r0] + ldr r0, _0806DC94 + ands r0, r1 + cmp r2, r0 + beq _0806DC40 + ldr r1, [sp, #0x14] + ldr r2, _0806DC8C + adds r6, r1, r2 + ldr r0, _0806DC94 + mov r8, r0 + ldr r3, [sp, #8] + adds r5, r7, #0 +_0806DC28: + adds r3, #2 + adds r4, #1 + cmp r4, sl + bge _0806DC40 + ldr r0, [r6] + adds r0, r5, r0 + ldrh r1, [r0] + ldrh r2, [r3] + mov r0, r8 + ands r0, r1 + cmp r2, r0 + bne _0806DC28 +_0806DC40: + cmp r4, sl + bne _0806DC62 + mov r0, sl + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + lsls r2, r4, #1 + ldr r1, [sp, #8] + adds r2, r2, r1 + mov r4, sb + ldr r0, [r4] + adds r0, r7, r0 + ldrh r1, [r0] + ldr r0, _0806DC94 + ands r0, r1 + strh r0, [r2] +_0806DC62: + mov r5, ip + cmp r5, #0x13 + bgt _0806DC78 + mov r1, sb + ldr r0, [r1] + lsls r1, r5, #1 + adds r1, r1, r0 + ldrh r0, [r1] + ldr r2, _0806DC90 + cmp r0, r2 + bne _0806DBAC +_0806DC78: + mov r0, sl + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0806DC8C: .4byte 0x082F9D04 +_0806DC90: .4byte 0x0000FFFF +_0806DC94: .4byte 0x000001FF + thumb_func_end GetMoveRelearnerMoves + + thumb_func_start GetLevelUpMovesBySpecies +GetLevelUpMovesBySpecies: @ 0x0806DC98 + push {r4, r5, r6, r7, lr} + adds r6, r1, #0 + lsls r0, r0, #0x10 + movs r5, #0 + movs r4, #0 + ldr r1, _0806DCE4 + lsrs r0, r0, #0xe + adds r0, r0, r1 + ldr r2, [r0] + ldrh r0, [r2] + ldr r1, _0806DCE8 + cmp r0, r1 + beq _0806DCDC + ldr r0, _0806DCEC + mov ip, r0 + adds r7, r1, #0 + adds r3, r2, #0 +_0806DCBA: + adds r1, r5, #0 + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #1 + adds r1, r1, r6 + ldrh r2, [r3] + mov r0, ip + ands r0, r2 + strh r0, [r1] + adds r3, #2 + adds r4, #1 + cmp r4, #0x13 + bgt _0806DCDC + ldrh r0, [r3] + cmp r0, r7 + bne _0806DCBA +_0806DCDC: + adds r0, r5, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0806DCE4: .4byte 0x082F9D04 +_0806DCE8: .4byte 0x0000FFFF +_0806DCEC: .4byte 0x000001FF + thumb_func_end GetLevelUpMovesBySpecies + + thumb_func_start GetNumberOfRelearnableMoves +GetNumberOfRelearnableMoves: @ 0x0806DCF0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x3c + adds r6, r0, #0 + movs r0, #0 + mov sl, r0 + adds r0, r6, #0 + movs r1, #0x41 + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r6, #0 + movs r1, #0x38 + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x30] + movs r0, #0xce + lsls r0, r0, #1 + cmp r4, r0 + bne _0806DD2C + movs r0, #0 + b _0806DE36 +_0806DD2C: + movs r5, #0 + lsls r4, r4, #2 + str r4, [sp, #0x38] + mov r4, sp +_0806DD34: + adds r1, r5, #0 + adds r1, #0xd + adds r0, r6, #0 + movs r2, #0 + bl GetMonData + strh r0, [r4] + adds r4, #2 + adds r5, #1 + cmp r5, #3 + ble _0806DD34 + movs r5, #0 + ldr r3, _0806DE48 + ldr r2, [sp, #0x38] + adds r1, r2, r3 + ldr r0, [r1] + ldrh r0, [r0] + ldr r2, _0806DE4C + cmp r0, r2 + beq _0806DE34 + mov sb, r1 + mov r4, sp + adds r4, #8 + str r4, [sp, #0x34] +_0806DD64: + mov r1, sb + ldr r0, [r1] + lsls r2, r5, #1 + adds r0, r2, r0 + ldrh r3, [r0] + movs r0, #0xfe + lsls r0, r0, #8 + ands r0, r3 + ldr r4, [sp, #0x30] + lsls r1, r4, #9 + adds r7, r2, #0 + adds r5, #1 + mov ip, r5 + cmp r0, r1 + bgt _0806DE1E + movs r4, #0 + mov r0, sp + ldrh r1, [r0] + ldr r0, _0806DE50 + ands r0, r3 + cmp r1, r0 + beq _0806DDB6 + ldr r0, [sp, #0x38] + ldr r1, _0806DE48 + adds r6, r0, r1 + ldr r2, _0806DE50 + mov r8, r2 + mov r3, sp + adds r5, r7, #0 +_0806DD9E: + adds r3, #2 + adds r4, #1 + cmp r4, #3 + bgt _0806DDB6 + ldr r0, [r6] + adds r0, r5, r0 + ldrh r1, [r0] + ldrh r2, [r3] + mov r0, r8 + ands r0, r1 + cmp r2, r0 + bne _0806DD9E +_0806DDB6: + cmp r4, #4 + bne _0806DE1E + movs r4, #0 + cmp r4, sl + bge _0806DDFC + mov r1, sb + ldr r0, [r1] + adds r0, r7, r0 + ldrh r1, [r0] + ldr r0, [sp, #0x34] + ldrh r2, [r0] + ldr r0, _0806DE50 + ands r0, r1 + add r1, sp, #8 + cmp r2, r0 + beq _0806DDFC + ldr r2, [sp, #0x38] + ldr r0, _0806DE48 + adds r6, r2, r0 + ldr r2, _0806DE50 + mov r8, r2 + adds r3, r1, #0 + adds r5, r7, #0 +_0806DDE4: + adds r3, #2 + adds r4, #1 + cmp r4, sl + bge _0806DDFC + ldr r0, [r6] + adds r0, r5, r0 + ldrh r1, [r0] + ldrh r2, [r3] + mov r0, r8 + ands r0, r1 + cmp r2, r0 + bne _0806DDE4 +_0806DDFC: + cmp r4, sl + bne _0806DE1E + mov r0, sl + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + lsls r2, r4, #1 + ldr r4, [sp, #0x34] + adds r2, r4, r2 + mov r1, sb + ldr r0, [r1] + adds r0, r7, r0 + ldrh r1, [r0] + ldr r0, _0806DE50 + ands r0, r1 + strh r0, [r2] +_0806DE1E: + mov r5, ip + cmp r5, #0x13 + bgt _0806DE34 + mov r2, sb + ldr r0, [r2] + lsls r1, r5, #1 + adds r1, r1, r0 + ldrh r0, [r1] + ldr r4, _0806DE4C + cmp r0, r4 + bne _0806DD64 +_0806DE34: + mov r0, sl +_0806DE36: + add sp, #0x3c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0806DE48: .4byte 0x082F9D04 +_0806DE4C: .4byte 0x0000FFFF +_0806DE50: .4byte 0x000001FF + thumb_func_end GetNumberOfRelearnableMoves + + thumb_func_start SpeciesToPokedexNum +SpeciesToPokedexNum: @ 0x0806DE54 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + bl IsNationalPokedexEnabled + cmp r0, #0 + beq _0806DE6E + adds r0, r4, #0 + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _0806DE86 +_0806DE6E: + adds r0, r4, #0 + bl SpeciesToHoennPokedexNum + adds r4, r0, #0 + cmp r4, #0xca + bls _0806DE84 + ldr r0, _0806DE80 + b _0806DE86 + .align 2, 0 +_0806DE80: .4byte 0x0000FFFF +_0806DE84: + adds r0, r4, #0 +_0806DE86: + pop {r4} + pop {r1} + bx r1 + thumb_func_end SpeciesToPokedexNum + + thumb_func_start IsSpeciesInHoennDex +IsSpeciesInHoennDex: @ 0x0806DE8C + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl SpeciesToHoennPokedexNum + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xca + bhi _0806DEA2 + movs r0, #1 + b _0806DEA4 +_0806DEA2: + movs r0, #0 +_0806DEA4: + pop {r1} + bx r1 + thumb_func_end IsSpeciesInHoennDex + + thumb_func_start ClearBattleMonForms +ClearBattleMonForms: @ 0x0806DEA8 + push {lr} + ldr r1, _0806DEBC + movs r2, #0 + adds r0, r1, #3 +_0806DEB0: + strb r2, [r0] + subs r0, #1 + cmp r0, r1 + bge _0806DEB0 + pop {r0} + bx r0 + .align 2, 0 +_0806DEBC: .4byte 0x02024188 + thumb_func_end ClearBattleMonForms + + thumb_func_start GetBattleBGM +GetBattleBGM: @ 0x0806DEC0 + push {lr} + ldr r0, _0806DED8 + ldr r1, [r0] + movs r0, #0x80 + lsls r0, r0, #5 + ands r0, r1 + cmp r0, #0 + beq _0806DEDC + movs r0, #0xf0 + lsls r0, r0, #1 + b _0806E0D2 + .align 2, 0 +_0806DED8: .4byte 0x02022C90 +_0806DEDC: + movs r0, #0x80 + lsls r0, r0, #7 + ands r0, r1 + cmp r0, #0 + beq _0806DEF0 + ldr r0, _0806DEEC + b _0806E0D2 + .align 2, 0 +_0806DEEC: .4byte 0x000001DF +_0806DEF0: + ldr r0, _0806DF1C + ands r0, r1 + cmp r0, #0 + beq _0806DEFA + b _0806E0C8 +_0806DEFA: + movs r0, #8 + ands r0, r1 + cmp r0, #0 + bne _0806DF04 + b _0806E0CE +_0806DF04: + ldr r0, _0806DF20 + ands r0, r1 + cmp r0, #0 + beq _0806DF28 + ldr r0, _0806DF24 + ldrh r0, [r0] + bl GetFrontierOpponentClass + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0806DF42 + .align 2, 0 +_0806DF1C: .4byte 0x02000002 +_0806DF20: .4byte 0x003F0100 +_0806DF24: .4byte 0x0203886A +_0806DF28: + movs r0, #0x80 + lsls r0, r0, #0x13 + ands r1, r0 + cmp r1, #0 + beq _0806DF36 + movs r0, #0xa + b _0806DF42 +_0806DF36: + ldr r1, _0806DF54 + ldr r0, _0806DF58 + ldrh r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r1 + ldrb r0, [r0, #1] +_0806DF42: + subs r0, #3 + cmp r0, #0x3d + bls _0806DF4A + b _0806E0C8 +_0806DF4A: + lsls r0, r0, #2 + ldr r1, _0806DF5C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806DF54: .4byte 0x082E383C +_0806DF58: .4byte 0x0203886A +_0806DF5C: .4byte 0x0806DF60 +_0806DF60: @ jump table + .4byte _0806E060 @ case 0 + .4byte _0806E0C8 @ case 1 + .4byte _0806E0C8 @ case 2 + .4byte _0806E0C8 @ case 3 + .4byte _0806E0C8 @ case 4 + .4byte _0806E0C8 @ case 5 + .4byte _0806E060 @ case 6 + .4byte _0806E0C8 @ case 7 + .4byte _0806E060 @ case 8 + .4byte _0806E0C8 @ case 9 + .4byte _0806E058 @ case 10 + .4byte _0806E0C8 @ case 11 + .4byte _0806E0C8 @ case 12 + .4byte _0806E0C8 @ case 13 + .4byte _0806E0C8 @ case 14 + .4byte _0806E0C8 @ case 15 + .4byte _0806E0C8 @ case 16 + .4byte _0806E0C8 @ case 17 + .4byte _0806E0C8 @ case 18 + .4byte _0806E0C8 @ case 19 + .4byte _0806E0C8 @ case 20 + .4byte _0806E0C8 @ case 21 + .4byte _0806E0C8 @ case 22 + .4byte _0806E0C8 @ case 23 + .4byte _0806E0C8 @ case 24 + .4byte _0806E0C8 @ case 25 + .4byte _0806E0C8 @ case 26 + .4byte _0806E0C8 @ case 27 + .4byte _0806E0B8 @ case 28 + .4byte _0806E068 @ case 29 + .4byte _0806E0C8 @ case 30 + .4byte _0806E0C8 @ case 31 + .4byte _0806E0C8 @ case 32 + .4byte _0806E0C8 @ case 33 + .4byte _0806E0C8 @ case 34 + .4byte _0806E070 @ case 35 + .4byte _0806E0C8 @ case 36 + .4byte _0806E0C8 @ case 37 + .4byte _0806E0C8 @ case 38 + .4byte _0806E0C8 @ case 39 + .4byte _0806E0C8 @ case 40 + .4byte _0806E0C8 @ case 41 + .4byte _0806E0C8 @ case 42 + .4byte _0806E0C8 @ case 43 + .4byte _0806E0C8 @ case 44 + .4byte _0806E0C8 @ case 45 + .4byte _0806E060 @ case 46 + .4byte _0806E076 @ case 47 + .4byte _0806E0C8 @ case 48 + .4byte _0806E0C8 @ case 49 + .4byte _0806E058 @ case 50 + .4byte _0806E0C8 @ case 51 + .4byte _0806E0C8 @ case 52 + .4byte _0806E0C8 @ case 53 + .4byte _0806E0C8 @ case 54 + .4byte _0806E0BE @ case 55 + .4byte _0806E0BE @ case 56 + .4byte _0806E0BE @ case 57 + .4byte _0806E0BE @ case 58 + .4byte _0806E0BE @ case 59 + .4byte _0806E0BE @ case 60 + .4byte _0806E0BE @ case 61 +_0806E058: + ldr r0, _0806E05C + b _0806E0D2 + .align 2, 0 +_0806E05C: .4byte 0x000001E3 +_0806E060: + ldr r0, _0806E064 + b _0806E0D2 + .align 2, 0 +_0806E064: .4byte 0x000001DB +_0806E068: + ldr r0, _0806E06C + b _0806E0D2 + .align 2, 0 +_0806E06C: .4byte 0x000001DD +_0806E070: + movs r0, #0xef + lsls r0, r0, #1 + b _0806E0D2 +_0806E076: + ldr r0, _0806E088 + ldr r0, [r0] + ldr r1, _0806E08C + ands r0, r1 + cmp r0, #0 + beq _0806E094 +_0806E082: + ldr r0, _0806E090 + b _0806E0D2 + .align 2, 0 +_0806E088: .4byte 0x02022C90 +_0806E08C: .4byte 0x003F0100 +_0806E090: .4byte 0x000001E1 +_0806E094: + ldr r0, _0806E0AC + ldrh r0, [r0] + lsls r0, r0, #5 + ldr r1, _0806E0B0 + adds r0, r0, r1 + ldr r1, _0806E0B4 + bl StringCompare + cmp r0, #0 + beq _0806E0C8 + b _0806E082 + .align 2, 0 +_0806E0AC: .4byte 0x0203886A +_0806E0B0: .4byte 0x082E3840 +_0806E0B4: .4byte 0x085ABC7E +_0806E0B8: + movs r0, #0xf1 + lsls r0, r0, #1 + b _0806E0D2 +_0806E0BE: + ldr r0, _0806E0C4 + b _0806E0D2 + .align 2, 0 +_0806E0C4: .4byte 0x000001D7 +_0806E0C8: + movs r0, #0xee + lsls r0, r0, #1 + b _0806E0D2 +_0806E0CE: + movs r0, #0xed + lsls r0, r0, #1 +_0806E0D2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetBattleBGM + + thumb_func_start GetFlavorRelationByPersonality +GetFlavorRelationByPersonality: @ 0x0806E0D8 + push {lr} + bl ResetMapMusic + bl m4aMPlayAllStop + bl GetBattleBGM + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl PlayBGM + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end GetFlavorRelationByPersonality + + thumb_func_start PlayMapChosenOrBattleBGM +PlayMapChosenOrBattleBGM: @ 0x0806E0F4 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + bl ResetMapMusic + bl m4aMPlayAllStop + cmp r4, #0 + beq _0806E10E + adds r0, r4, #0 + bl PlayNewMapMusic + b _0806E11A +_0806E10E: + bl GetBattleBGM + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl PlayNewMapMusic +_0806E11A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end PlayMapChosenOrBattleBGM + + thumb_func_start GetMonFlavorRelation +GetMonFlavorRelation: @ 0x0806E120 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + bl ResetMapMusic + bl m4aMPlayAllStop + ldr r0, _0806E150 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0806E154 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0806E150: .4byte 0x0806E159 +_0806E154: .4byte 0x03005B60 + thumb_func_end GetMonFlavorRelation + + thumb_func_start sub_0806E158 +sub_0806E158: @ 0x0806E158 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _0806E178 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r1, r0, r1 + movs r2, #8 + ldrsh r0, [r1, r2] + cmp r0, #0 + beq _0806E17C + ldrh r0, [r1, #8] + bl PlayNewMapMusic + b _0806E188 + .align 2, 0 +_0806E178: .4byte 0x03005B60 +_0806E17C: + bl GetBattleBGM + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl PlayNewMapMusic +_0806E188: + adds r0, r4, #0 + bl DestroyTask + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0806E158 + + thumb_func_start GetMonFrontSpritePal +GetMonFrontSpritePal: @ 0x0806E194 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r1, #0x41 + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + movs r1, #1 + movs r2, #0 + bl GetMonData + adds r6, r0, #0 + adds r0, r5, #0 + movs r1, #0 + movs r2, #0 + bl GetMonData + adds r2, r0, #0 + adds r0, r4, #0 + adds r1, r6, #0 + bl GetMonSpritePalFromSpeciesAndPersonality + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end GetMonFrontSpritePal + + thumb_func_start GetMonSpritePalFromSpeciesAndPersonality +GetMonSpritePalFromSpeciesAndPersonality: @ 0x0806E1CC + push {r4, r5, lr} + adds r3, r2, #0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r5, r4, #0 + movs r0, #0xce + lsls r0, r0, #1 + cmp r4, r0 + bls _0806E1E8 + ldr r0, _0806E1E4 + ldr r0, [r0] + b _0806E214 + .align 2, 0 +_0806E1E4: .4byte 0x082D6F08 +_0806E1E8: + lsrs r0, r1, #0x10 + ldr r2, _0806E204 + ands r1, r2 + eors r0, r1 + lsrs r1, r3, #0x10 + eors r0, r1 + ands r3, r2 + eors r0, r3 + cmp r0, #7 + bls _0806E20C + ldr r0, _0806E208 + lsls r1, r4, #3 + b _0806E210 + .align 2, 0 +_0806E204: .4byte 0x0000FFFF +_0806E208: .4byte 0x082D6F08 +_0806E20C: + ldr r0, _0806E21C + lsls r1, r5, #3 +_0806E210: + adds r1, r1, r0 + ldr r0, [r1] +_0806E214: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0806E21C: .4byte 0x082D7CC8 + thumb_func_end GetMonSpritePalFromSpeciesAndPersonality + + thumb_func_start GetMonSpritePalStruct +GetMonSpritePalStruct: @ 0x0806E220 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r1, #0x41 + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + movs r1, #1 + movs r2, #0 + bl GetMonData + adds r6, r0, #0 + adds r0, r5, #0 + movs r1, #0 + movs r2, #0 + bl GetMonData + adds r2, r0, #0 + adds r0, r4, #0 + adds r1, r6, #0 + bl GetMonSpritePalStructFromOtIdPersonality + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end GetMonSpritePalStruct + + thumb_func_start GetMonSpritePalStructFromOtIdPersonality +GetMonSpritePalStructFromOtIdPersonality: @ 0x0806E258 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + lsrs r0, r1, #0x10 + ldr r3, _0806E278 + ands r1, r3 + eors r0, r1 + lsrs r1, r2, #0x10 + eors r0, r1 + ands r2, r3 + eors r0, r2 + cmp r0, #7 + bls _0806E280 + lsls r0, r4, #3 + ldr r1, _0806E27C + b _0806E284 + .align 2, 0 +_0806E278: .4byte 0x0000FFFF +_0806E27C: .4byte 0x082D6F08 +_0806E280: + lsls r0, r4, #3 + ldr r1, _0806E28C +_0806E284: + adds r0, r0, r1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0806E28C: .4byte 0x082D7CC8 + thumb_func_end GetMonSpritePalStructFromOtIdPersonality + + thumb_func_start IsHMMove2 +IsHMMove2: @ 0x0806E290 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldr r2, _0806E2B4 + ldrh r0, [r2] + ldr r1, _0806E2B8 + cmp r0, r1 + beq _0806E2C2 + adds r4, r1, #0 + adds r1, r2, #0 +_0806E2A4: + ldrh r0, [r2] + adds r1, #2 + adds r2, #2 + cmp r0, r3 + bne _0806E2BC + movs r0, #1 + b _0806E2C4 + .align 2, 0 +_0806E2B4: .4byte 0x082FA876 +_0806E2B8: .4byte 0x0000FFFF +_0806E2BC: + ldrh r0, [r1] + cmp r0, r4 + bne _0806E2A4 +_0806E2C2: + movs r0, #0 +_0806E2C4: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsHMMove2 + + thumb_func_start IsMonSpriteNotFlipped +IsMonSpriteNotFlipped: @ 0x0806E2CC + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r2, _0806E2E0 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r0, [r1, #0x19] + lsrs r0, r0, #7 + bx lr + .align 2, 0 +_0806E2E0: .4byte 0x082F0D54 + thumb_func_end IsMonSpriteNotFlipped + + thumb_func_start sub_0806E2E4 +sub_0806E2E4: @ 0x0806E2E4 + push {r4, lr} + lsls r4, r1, #0x18 + lsrs r4, r4, #0x18 + bl GetNature + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0806E308 + lsls r1, r0, #2 + adds r1, r1, r0 + adds r1, r1, r4 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0806E308: .4byte 0x08591FEC + thumb_func_end sub_0806E2E4 + + thumb_func_start sub_0806E30C +sub_0806E30C: @ 0x0806E30C + push {r4, lr} + lsls r4, r1, #0x18 + lsrs r4, r4, #0x18 + bl GetNatureFromPersonality + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0806E330 + lsls r1, r0, #2 + adds r1, r1, r0 + adds r1, r1, r4 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0806E330: .4byte 0x08591FEC + thumb_func_end sub_0806E30C + + thumb_func_start IsTradedMon +IsTradedMon: @ 0x0806E334 + push {r4, lr} + sub sp, #8 + adds r4, r0, #0 + movs r1, #7 + mov r2, sp + bl GetMonData + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl GetMonData + mov r1, sp + bl IsOtherTrainer + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsTradedMon + + thumb_func_start IsOtherTrainer +IsOtherTrainer: @ 0x0806E360 + push {r4, r5, lr} + adds r5, r1, #0 + ldr r1, _0806E3A4 + ldr r3, [r1] + ldrb r2, [r3, #0xa] + ldrb r1, [r3, #0xb] + lsls r1, r1, #8 + orrs r2, r1 + ldrb r1, [r3, #0xc] + lsls r1, r1, #0x10 + orrs r2, r1 + ldrb r1, [r3, #0xd] + lsls r1, r1, #0x18 + orrs r2, r1 + cmp r0, r2 + bne _0806E3A8 + movs r4, #0 + ldrb r0, [r5] + cmp r0, #0xff + beq _0806E39E + adds r2, r5, #0 +_0806E38A: + adds r1, r3, r4 + ldrb r0, [r2] + ldrb r1, [r1] + cmp r0, r1 + bne _0806E3A8 + adds r2, #1 + adds r4, #1 + ldrb r0, [r2] + cmp r0, #0xff + bne _0806E38A +_0806E39E: + movs r0, #0 + b _0806E3AA + .align 2, 0 +_0806E3A4: .4byte 0x03005AF0 +_0806E3A8: + movs r0, #1 +_0806E3AA: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end IsOtherTrainer + + thumb_func_start GiveMonInitialMoveset +GiveMonInitialMoveset: @ 0x0806E3B0 + push {lr} + bl BoxMonRestorePP + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end GiveMonInitialMoveset + + thumb_func_start BoxMonRestorePP +BoxMonRestorePP: @ 0x0806E3BC + push {r4, r5, r6, lr} + sub sp, #4 + adds r5, r0, #0 + movs r6, #0 +_0806E3C4: + adds r4, r6, #0 + adds r4, #0xd + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl GetBoxMonData + cmp r0, #0 + beq _0806E410 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl GetBoxMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + movs r1, #0x15 + movs r2, #0 + bl GetBoxMonData + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r6, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + bl CalculatePPWithBonus + mov r1, sp + strb r0, [r1] + adds r1, r6, #0 + adds r1, #0x11 + adds r0, r5, #0 + mov r2, sp + bl SetBoxMonData +_0806E410: + adds r6, #1 + cmp r6, #3 + ble _0806E3C4 + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BoxMonRestorePP + + thumb_func_start SetMonPreventsSwitchingString +SetMonPreventsSwitchingString: @ 0x0806E420 + push {r4, r5, lr} + ldr r2, _0806E464 + ldr r5, _0806E468 + ldr r1, [r5] + adds r0, r1, #0 + adds r0, #0xb0 + ldrb r0, [r0] + strb r0, [r2] + ldr r4, _0806E46C + movs r0, #0xfd + strb r0, [r4] + movs r0, #4 + strb r0, [r4, #1] + adds r1, #0x49 + ldrb r0, [r1] + strb r0, [r4, #2] + movs r0, #0xff + strb r0, [r4, #4] + ldrb r0, [r1] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806E474 + ldr r1, _0806E470 + ldr r0, [r5] + adds r0, #0x49 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + bl pokemon_order_func + b _0806E482 + .align 2, 0 +_0806E464: .4byte 0x02023EAE +_0806E468: .4byte 0x02024140 +_0806E46C: .4byte 0x02022C0C +_0806E470: .4byte 0x02023D12 +_0806E474: + ldr r1, _0806E4B8 + ldr r0, [r5] + adds r0, #0x49 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] +_0806E482: + strb r0, [r4, #3] + ldr r4, _0806E4BC + movs r0, #0xfd + strb r0, [r4] + movs r0, #4 + strb r0, [r4, #1] + ldr r1, _0806E4C0 + ldrb r0, [r1] + strb r0, [r4, #2] + ldr r2, _0806E4B8 + ldrb r0, [r1] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + bl pokemon_order_func + strb r0, [r4, #3] + movs r0, #0xff + strb r0, [r4, #4] + ldr r0, _0806E4C4 + ldr r1, _0806E4C8 + bl BattleStringExpandPlaceholdersToDisplayedString + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0806E4B8: .4byte 0x02023D12 +_0806E4BC: .4byte 0x02022C1C +_0806E4C0: .4byte 0x0202415C +_0806E4C4: .4byte 0x085AA7DF +_0806E4C8: .4byte 0x02021C7C + thumb_func_end SetMonPreventsSwitchingString + + thumb_func_start GetWildMonTableIdInAlteringCave +GetWildMonTableIdInAlteringCave: @ 0x0806E4CC + push {lr} + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + movs r1, #0 + ldr r2, _0806E4E0 +_0806E4D6: + ldrh r0, [r2] + cmp r0, r3 + bne _0806E4E4 + adds r0, r1, #0 + b _0806E4EE + .align 2, 0 +_0806E4E0: .4byte 0x082FA888 +_0806E4E4: + adds r2, #4 + adds r1, #1 + cmp r1, #8 + ble _0806E4D6 + movs r0, #0 +_0806E4EE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetWildMonTableIdInAlteringCave + + thumb_func_start SetWildMonHeldItem +SetWildMonHeldItem: @ 0x0806E4F4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _0806E578 + ldr r0, [r0] + ldr r1, _0806E57C + ands r0, r1 + cmp r0, #0 + beq _0806E508 + b _0806E61C +_0806E508: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r0, _0806E580 + movs r1, #0xb + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r0, #0x2d + mov r8, r0 + movs r7, #0x5f + ldr r5, _0806E584 + adds r0, r5, #0 + movs r1, #6 + movs r2, #0 + bl GetMonData + cmp r0, #0 + bne _0806E552 + adds r0, r5, #0 + bl GetMonAbility + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xe + bne _0806E552 + movs r2, #0x14 + mov r8, r2 + movs r7, #0x50 +_0806E552: + ldr r0, _0806E588 + ldrh r1, [r0, #0x12] + movs r0, #0xd2 + lsls r0, r0, #1 + cmp r1, r0 + bne _0806E5B8 + adds r0, r4, #0 + bl GetWildMonTableIdInAlteringCave + adds r2, r0, #0 + cmp r2, #0 + beq _0806E590 + cmp r6, r7 + blo _0806E61C + ldr r0, _0806E580 + lsls r2, r2, #2 + ldr r1, _0806E58C + b _0806E5F8 + .align 2, 0 +_0806E578: .4byte 0x02022C90 +_0806E57C: .4byte 0x00302008 +_0806E580: .4byte 0x020243E8 +_0806E584: .4byte 0x02024190 +_0806E588: .4byte 0x02036FB8 +_0806E58C: .4byte 0x082FA88A +_0806E590: + cmp r6, r8 + blo _0806E61C + cmp r6, r7 + bhs _0806E5A4 + ldr r0, _0806E5A0 + lsls r2, r4, #3 + b _0806E5F2 + .align 2, 0 +_0806E5A0: .4byte 0x020243E8 +_0806E5A4: + ldr r0, _0806E5B0 + lsls r2, r4, #3 + subs r2, r2, r4 + lsls r2, r2, #2 + ldr r1, _0806E5B4 + b _0806E5F8 + .align 2, 0 +_0806E5B0: .4byte 0x020243E8 +_0806E5B4: .4byte 0x082F0D62 +_0806E5B8: + ldr r0, _0806E5E0 + mov ip, r0 + lsls r0, r4, #3 + subs r1, r0, r4 + lsls r5, r1, #2 + mov r2, ip + adds r1, r5, r2 + ldrh r3, [r1, #0xc] + adds r2, r0, #0 + ldrh r1, [r1, #0xe] + cmp r3, r1 + bne _0806E5E8 + cmp r3, #0 + beq _0806E5E8 + ldr r0, _0806E5E4 + mov r2, ip + adds r2, #0xc + adds r2, r5, r2 + b _0806E5FA + .align 2, 0 +_0806E5E0: .4byte 0x082F0D54 +_0806E5E4: .4byte 0x020243E8 +_0806E5E8: + cmp r6, r8 + blo _0806E61C + cmp r6, r7 + bhs _0806E60C + ldr r0, _0806E604 +_0806E5F2: + subs r2, r2, r4 + lsls r2, r2, #2 + ldr r1, _0806E608 +_0806E5F8: + adds r2, r2, r1 +_0806E5FA: + movs r1, #0xc + bl SetMonData + b _0806E61C + .align 2, 0 +_0806E604: .4byte 0x020243E8 +_0806E608: .4byte 0x082F0D60 +_0806E60C: + ldr r0, _0806E628 + subs r2, r2, r4 + lsls r2, r2, #2 + ldr r1, _0806E62C + adds r2, r2, r1 + movs r1, #0xc + bl SetMonData +_0806E61C: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0806E628: .4byte 0x020243E8 +_0806E62C: .4byte 0x082F0D62 + thumb_func_end SetWildMonHeldItem + + thumb_func_start IsMonShiny +IsMonShiny: @ 0x0806E630 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #1 + movs r2, #0 + bl GetMonData + adds r5, r0, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + bl GetMonData + adds r1, r0, #0 + adds r0, r5, #0 + bl IsShinyOtIdPersonality + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsMonShiny + + thumb_func_start IsShinyOtIdPersonality +IsShinyOtIdPersonality: @ 0x0806E65C + push {r4, lr} + movs r4, #0 + lsrs r2, r0, #0x10 + ldr r3, _0806E680 + ands r0, r3 + eors r2, r0 + lsrs r0, r1, #0x10 + eors r2, r0 + ands r1, r3 + eors r2, r1 + cmp r2, #7 + bhi _0806E676 + movs r4, #1 +_0806E676: + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0806E680: .4byte 0x0000FFFF + thumb_func_end IsShinyOtIdPersonality + + thumb_func_start GetTrainerPartnerName +GetTrainerPartnerName: @ 0x0806E684 + push {r4, lr} + ldr r0, _0806E6A4 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + beq _0806E6C8 + ldr r2, _0806E6A8 + ldrh r1, [r2] + ldr r0, _0806E6AC + cmp r1, r0 + bne _0806E6B4 + ldr r0, _0806E6B0 + b _0806E6F0 + .align 2, 0 +_0806E6A4: .4byte 0x02022C90 +_0806E6A8: .4byte 0x0203886E +_0806E6AC: .4byte 0x00000C03 +_0806E6B0: .4byte 0x082E9CC0 +_0806E6B4: + ldr r4, _0806E6C4 + ldrh r1, [r2] + adds r0, r4, #0 + bl GetFrontierTrainerName + adds r0, r4, #0 + b _0806E6F0 + .align 2, 0 +_0806E6C4: .4byte 0x02021C40 +_0806E6C8: + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _0806E6F8 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrh r1, [r1, #0x18] + movs r0, #2 + eors r0, r1 + bl GetBattlerMultiplayerId + adds r1, r0, #0 + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r4, #8 + adds r0, r0, r4 +_0806E6F0: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0806E6F8: .4byte 0x020226A0 + thumb_func_end GetTrainerPartnerName + + thumb_func_start Task_AnimateAfterDelay +Task_AnimateAfterDelay: @ 0x0806E6FC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _0806E734 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r2, r0, r1 + ldrh r0, [r2, #0xe] + subs r0, #1 + strh r0, [r2, #0xe] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0806E72C + ldrh r0, [r2, #8] + ldrh r1, [r2, #0xa] + lsls r1, r1, #0x10 + orrs r0, r1 + ldrb r1, [r2, #0xc] + bl LaunchAnimationTaskForFrontSprite + adds r0, r4, #0 + bl DestroyTask +_0806E72C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0806E734: .4byte 0x03005B60 + thumb_func_end Task_AnimateAfterDelay + + thumb_func_start Task_PokemonSummaryAnimateAfterDelay +Task_PokemonSummaryAnimateAfterDelay: @ 0x0806E738 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _0806E774 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r2, r0, r1 + ldrh r0, [r2, #0xe] + subs r0, #1 + strh r0, [r2, #0xe] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0806E76E + ldrh r0, [r2, #8] + ldrh r1, [r2, #0xa] + lsls r1, r1, #0x10 + orrs r0, r1 + ldrb r1, [r2, #0xc] + bl StartMonSummaryAnimation + movs r0, #0xff + bl SummaryScreen_SetUnknownTaskId + adds r0, r4, #0 + bl DestroyTask +_0806E76E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0806E774: .4byte 0x03005B60 + thumb_func_end Task_PokemonSummaryAnimateAfterDelay + + thumb_func_start BattleAnimateFrontSprite +BattleAnimateFrontSprite: @ 0x0806E778 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r0, _0806E7B0 + ldr r0, [r0] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806E7BC + ldr r0, _0806E7B4 + ldr r0, [r0] + ldr r1, _0806E7B8 + ands r0, r1 + cmp r0, #0 + bne _0806E7BC + movs r0, #0x80 + orrs r3, r0 + adds r0, r5, #0 + adds r1, r4, #0 + bl DoMonFrontSpriteAnimation + b _0806E7C4 + .align 2, 0 +_0806E7B0: .4byte 0x02023F24 +_0806E7B4: .4byte 0x02022C90 +_0806E7B8: .4byte 0x02000002 +_0806E7BC: + adds r0, r5, #0 + adds r1, r4, #0 + bl DoMonFrontSpriteAnimation +_0806E7C4: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BattleAnimateFrontSprite + + thumb_func_start DoMonFrontSpriteAnimation +DoMonFrontSpriteAnimation: @ 0x0806E7CC + push {r4, r5, r6, lr} + adds r5, r0, #0 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #0x7f + ands r0, r3 + cmp r0, #0 + beq _0806E7EC + cmp r0, #1 + beq _0806E7F0 + movs r1, #0 + b _0806E7F2 +_0806E7EC: + movs r1, #0xe7 + b _0806E7F2 +_0806E7F0: + movs r1, #0x19 +_0806E7F2: + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + beq _0806E810 + cmp r2, #0 + bne _0806E808 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r4, #0 + bl PlayCry1 +_0806E808: + ldr r0, _0806E80C + b _0806E886 + .align 2, 0 +_0806E80C: .4byte 0x08007141 +_0806E810: + cmp r2, #0 + bne _0806E832 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r4, #0 + bl PlayCry1 + adds r0, r4, #0 + bl HasTwoFramesAnimation + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0806E832 + adds r0, r5, #0 + movs r1, #1 + bl StartSpriteAnim +_0806E832: + ldr r0, _0806E868 + subs r4, #1 + adds r6, r4, r0 + ldrb r0, [r6] + cmp r0, #0 + beq _0806E878 + ldr r0, _0806E86C + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0806E870 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r5, [r1, #8] + lsrs r0, r5, #0x10 + strh r0, [r1, #0xa] + ldr r0, _0806E874 + adds r0, r4, r0 + ldrb r0, [r0] + strh r0, [r1, #0xc] + ldrb r0, [r6] + strh r0, [r1, #0xe] + b _0806E884 + .align 2, 0 +_0806E868: .4byte 0x082FA50F +_0806E86C: .4byte 0x0806E6FD +_0806E870: .4byte 0x03005B60 +_0806E874: .4byte 0x082FA374 +_0806E878: + ldr r0, _0806E890 + adds r0, r4, r0 + ldrb r1, [r0] + adds r0, r5, #0 + bl LaunchAnimationTaskForFrontSprite +_0806E884: + ldr r0, _0806E894 +_0806E886: + str r0, [r5, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0806E890: .4byte 0x082FA374 +_0806E894: .4byte 0x080394FD + thumb_func_end DoMonFrontSpriteAnimation + + thumb_func_start PokemonSummaryDoMonAnimation +PokemonSummaryDoMonAnimation: @ 0x0806E898 + push {r4, r5, r6, lr} + adds r5, r0, #0 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + lsls r2, r2, #0x18 + cmp r2, #0 + bne _0806E8BA + adds r0, r4, #0 + bl HasTwoFramesAnimation + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0806E8BA + adds r0, r5, #0 + movs r1, #1 + bl StartSpriteAnim +_0806E8BA: + ldr r0, _0806E8FC + subs r4, #1 + adds r6, r4, r0 + ldrb r0, [r6] + cmp r0, #0 + beq _0806E90C + ldr r0, _0806E900 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0806E904 + lsls r2, r0, #2 + adds r2, r2, r0 + lsls r2, r2, #3 + adds r2, r2, r1 + strh r5, [r2, #8] + lsrs r1, r5, #0x10 + strh r1, [r2, #0xa] + ldr r1, _0806E908 + adds r1, r4, r1 + ldrb r1, [r1] + strh r1, [r2, #0xc] + ldrb r1, [r6] + strh r1, [r2, #0xe] + bl SummaryScreen_SetUnknownTaskId + adds r0, r5, #0 + bl SetSpriteCB_MonAnimDummy + b _0806E918 + .align 2, 0 +_0806E8FC: .4byte 0x082FA50F +_0806E900: .4byte 0x0806E739 +_0806E904: .4byte 0x03005B60 +_0806E908: .4byte 0x082FA374 +_0806E90C: + ldr r0, _0806E920 + adds r0, r4, r0 + ldrb r1, [r0] + adds r0, r5, #0 + bl StartMonSummaryAnimation +_0806E918: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0806E920: .4byte 0x082FA374 + thumb_func_end PokemonSummaryDoMonAnimation + + thumb_func_start StopPokemonAnimationDelayTask +StopPokemonAnimationDelayTask: @ 0x0806E924 + push {lr} + ldr r0, _0806E93C + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _0806E938 + bl DestroyTask +_0806E938: + pop {r0} + bx r0 + .align 2, 0 +_0806E93C: .4byte 0x0806E739 + thumb_func_end StopPokemonAnimationDelayTask + + thumb_func_start BattleAnimateBackSprite +BattleAnimateBackSprite: @ 0x0806E940 + push {r4, lr} + adds r4, r0, #0 + lsls r1, r1, #0x10 + lsrs r2, r1, #0x10 + ldr r0, _0806E964 + ldr r0, [r0] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806E974 + ldr r0, _0806E968 + ldr r0, [r0] + ldr r1, _0806E96C + ands r0, r1 + cmp r0, #0 + bne _0806E974 + ldr r0, _0806E970 + b _0806E988 + .align 2, 0 +_0806E964: .4byte 0x02023F24 +_0806E968: .4byte 0x02022C90 +_0806E96C: .4byte 0x02000002 +_0806E970: .4byte 0x08007141 +_0806E974: + adds r0, r2, #0 + bl GetSpeciesBackAnimSet + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl LaunchAnimationTaskForBackSprite + ldr r0, _0806E990 +_0806E988: + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0806E990: .4byte 0x080394FD + thumb_func_end BattleAnimateBackSprite + + thumb_func_start sub_0806E994 +sub_0806E994: @ 0x0806E994 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r5, #0 + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0806E9C0 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r0, [r1, #0x18] + cmp r0, #1 + beq _0806E9D8 + cmp r0, #1 + bgt _0806E9C4 + cmp r0, #0 + beq _0806E9CE + b _0806E9E2 + .align 2, 0 +_0806E9C0: .4byte 0x020226A0 +_0806E9C4: + cmp r0, #2 + beq _0806E9CE + cmp r0, #3 + beq _0806E9D8 + b _0806E9E2 +_0806E9CE: + movs r5, #3 + cmp r4, #0 + beq _0806E9E2 + movs r5, #1 + b _0806E9E2 +_0806E9D8: + rsbs r0, r4, #0 + orrs r0, r4 + asrs r5, r0, #0x1f + movs r0, #2 + ands r5, r0 +_0806E9E2: + movs r2, #0 + ldr r4, _0806EA0C + ldrh r0, [r4, #0x18] + adds r1, r5, #0 + cmp r0, r1 + beq _0806EA00 + adds r3, r1, #0 + adds r1, r4, #0 +_0806E9F2: + adds r1, #0x1c + adds r2, #1 + cmp r2, #3 + bgt _0806EA00 + ldrh r0, [r1, #0x18] + cmp r0, r3 + bne _0806E9F2 +_0806EA00: + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0806EA0C: .4byte 0x020226A0 + thumb_func_end sub_0806E994 + + thumb_func_start sub_0806EA10 +sub_0806EA10: @ 0x0806EA10 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r4, #0 + ldr r2, _0806EA38 + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0, #0x18] + cmp r0, #1 + beq _0806EA50 + cmp r0, #1 + bgt _0806EA3C + cmp r0, #0 + beq _0806EA46 + b _0806EA5A + .align 2, 0 +_0806EA38: .4byte 0x020226A0 +_0806EA3C: + cmp r0, #2 + beq _0806EA46 + cmp r0, #3 + beq _0806EA50 + b _0806EA5A +_0806EA46: + movs r4, #3 + cmp r3, #0 + beq _0806EA5A + movs r4, #1 + b _0806EA5A +_0806EA50: + rsbs r0, r3, #0 + orrs r0, r3 + asrs r4, r0, #0x1f + movs r0, #2 + ands r4, r0 +_0806EA5A: + movs r3, #0 + ldrh r0, [r2, #0x18] + adds r1, r4, #0 + cmp r0, r1 + beq _0806EA72 +_0806EA64: + adds r2, #0x1c + adds r3, #1 + cmp r3, #3 + bgt _0806EA72 + ldrh r0, [r2, #0x18] + cmp r0, r1 + bne _0806EA64 +_0806EA72: + lsls r0, r3, #0x18 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0806EA10 + + thumb_func_start FacilityClassToPicIndex +FacilityClassToPicIndex: @ 0x0806EA7C + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _0806EA88 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0806EA88: .4byte 0x082EFF00 + thumb_func_end FacilityClassToPicIndex + + thumb_func_start PlayerGenderToFrontTrainerPicId +PlayerGenderToFrontTrainerPicId: @ 0x0806EA8C + push {lr} + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806EA98 + movs r0, #0x3c + b _0806EA9A +_0806EA98: + movs r0, #0x3f +_0806EA9A: + bl FacilityClassToPicIndex + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end PlayerGenderToFrontTrainerPicId + + thumb_func_start HandleSetPokedexFlag +HandleSetPokedexFlag: @ 0x0806EAA8 + push {r4, r5, r6, r7, lr} + adds r7, r2, #0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r6, r4, #0 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + movs r0, #2 + eors r0, r5 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + adds r0, r4, #0 + bl GetSetPokedexFlag + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806EAFE + adds r0, r4, #0 + adds r1, r5, #0 + bl GetSetPokedexFlag + adds r0, r4, #0 + bl NationalPokedexNumToSpecies + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xc9 + bne _0806EAE8 + ldr r0, _0806EB04 + ldr r0, [r0] + str r7, [r0, #0x1c] +_0806EAE8: + adds r0, r6, #0 + bl NationalPokedexNumToSpecies + lsls r0, r0, #0x10 + movs r1, #0x9a + lsls r1, r1, #0x11 + cmp r0, r1 + bne _0806EAFE + ldr r0, _0806EB04 + ldr r0, [r0] + str r7, [r0, #0x20] +_0806EAFE: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0806EB04: .4byte 0x03005AF0 + thumb_func_end HandleSetPokedexFlag + + thumb_func_start GetTrainerClassNameFromId +GetTrainerClassNameFromId: @ 0x0806EB08 + push {lr} + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _0806EB2C + cmp r2, r0 + bls _0806EB16 + movs r2, #0 +_0806EB16: + ldr r1, _0806EB30 + lsls r0, r2, #5 + adds r0, r0, r1 + ldrb r1, [r0, #1] + movs r0, #0xb + muls r0, r1, r0 + ldr r1, _0806EB34 + adds r0, r0, r1 + pop {r1} + bx r1 + .align 2, 0 +_0806EB2C: .4byte 0x00000356 +_0806EB30: .4byte 0x082E383C +_0806EB34: .4byte 0x082E3564 + thumb_func_end GetTrainerClassNameFromId + + thumb_func_start sub_0806EB38 +sub_0806EB38: @ 0x0806EB38 + push {lr} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r0, _0806EB50 + cmp r1, r0 + bls _0806EB46 + movs r1, #0 +_0806EB46: + lsls r0, r1, #5 + ldr r1, _0806EB54 + adds r0, r0, r1 + pop {r1} + bx r1 + .align 2, 0 +_0806EB50: .4byte 0x00000356 +_0806EB54: .4byte 0x082E3840 + thumb_func_end sub_0806EB38 + + thumb_func_start HasTwoFramesAnimation +HasTwoFramesAnimation: @ 0x0806EB58 + push {lr} + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + movs r1, #0 + ldr r0, _0806EB84 + cmp r2, r0 + beq _0806EB7C + adds r0, #0x19 + cmp r2, r0 + beq _0806EB7C + subs r0, #0x66 + cmp r2, r0 + beq _0806EB7C + movs r1, #0xc9 + eors r1, r2 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r1, r0, #0x1f +_0806EB7C: + adds r0, r1, #0 + pop {r1} + bx r1 + .align 2, 0 +_0806EB84: .4byte 0x00000181 + thumb_func_end HasTwoFramesAnimation + + thumb_func_start sub_0806EB88 +sub_0806EB88: @ 0x0806EB88 + push {lr} + ldr r2, _0806EBCC + ldr r1, _0806EBD0 + adds r0, r2, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806EBA6 + ldr r0, _0806EBD4 + ldr r0, [r0] + ldr r1, _0806EBD8 + ands r0, r1 + cmp r0, #0 + bne _0806EBC8 +_0806EBA6: + ldr r1, _0806EBD0 + adds r0, r2, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0806EBDC + bl InBattlePike + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806EBC8 + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0806EBDC +_0806EBC8: + movs r0, #1 + b _0806EBDE + .align 2, 0 +_0806EBCC: .4byte 0x03002360 +_0806EBD0: .4byte 0x00000439 +_0806EBD4: .4byte 0x02022C90 +_0806EBD8: .4byte 0x003F0100 +_0806EBDC: + movs r0, #0 +_0806EBDE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0806EB88 + + thumb_func_start sub_0806EBE4 +sub_0806EBE4: @ 0x0806EBE4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r6, r0, #0 + ldrb r0, [r6] + lsls r0, r0, #0x1c + movs r4, #0 + cmp r0, #0 + beq _0806EC6E +_0806EBFA: + ldr r0, [r6, #0xc] + lsls r2, r4, #1 + adds r1, r2, r4 + lsls r1, r1, #3 + adds r0, r1, r0 + ldr r3, _0806EC7C + adds r1, r1, r3 + ldm r1!, {r3, r5, r7} + stm r0!, {r3, r5, r7} + ldm r1!, {r3, r5, r7} + stm r0!, {r3, r5, r7} + movs r5, #0 + ldrb r3, [r6, #1] + ldr r7, [r6, #0xc] + mov sb, r7 + mov r8, r2 + ldr r0, [r6, #0x10] + mov ip, r0 + adds r1, r4, #1 + mov sl, r1 + cmp r5, r3 + bhs _0806EC4C + mov r7, ip + ldr r1, [r6, #8] + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r2, [r0] +_0806EC30: + adds r0, r4, #0 + muls r0, r3, r0 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r7 + lsls r1, r5, #0xb + adds r1, r2, r1 + str r1, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldrb r3, [r6, #1] + cmp r5, r3 + blo _0806EC30 +_0806EC4C: + mov r3, r8 + adds r1, r3, r4 + lsls r1, r1, #3 + add r1, sb + ldrb r0, [r6, #1] + muls r0, r4, r0 + lsls r0, r0, #3 + add r0, ip + str r0, [r1, #0xc] + mov r5, sl + lsls r0, r5, #0x10 + lsrs r4, r0, #0x10 + ldrb r0, [r6] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r4, r0 + blt _0806EBFA +_0806EC6E: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0806EC7C: .4byte 0x082FA724 + thumb_func_end sub_0806EBE4 + + thumb_func_start sub_0806EC80 +sub_0806EC80: @ 0x0806EC80 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r4, r0, #0 + ldrb r0, [r4] + lsls r0, r0, #0x1c + movs r3, #0 + cmp r0, #0 + beq _0806ED1A + ldr r0, _0806ED28 + mov sl, r0 +_0806EC9A: + ldr r0, [r4, #0xc] + lsls r2, r3, #1 + adds r1, r2, r3 + lsls r1, r1, #3 + adds r1, r1, r0 + mov r0, sl + ldm r0!, {r5, r6, r7} + stm r1!, {r5, r6, r7} + ldm r0!, {r5, r6, r7} + stm r1!, {r5, r6, r7} + movs r5, #0 + ldr r0, [r4, #0xc] + mov r8, r0 + mov ip, r2 + ldr r7, [r4, #0x10] + adds r1, r3, #1 + mov sb, r1 + ldrb r6, [r4, #1] + cmp r5, r6 + bhs _0806ECEE + adds r6, r7, #0 + ldr r1, [r4, #8] + lsls r0, r3, #2 + adds r0, r0, r1 + ldr r2, [r0] +_0806ECCC: + ldrb r0, [r4] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + adds r1, r3, #0 + muls r1, r0, r1 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r6 + lsls r0, r5, #0xb + adds r0, r2, r0 + str r0, [r1] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldrb r0, [r4, #1] + cmp r5, r0 + blo _0806ECCC +_0806ECEE: + mov r5, ip + adds r1, r5, r3 + lsls r1, r1, #3 + add r1, r8 + ldrb r0, [r4] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + muls r0, r3, r0 + lsls r0, r0, #3 + adds r0, r7, r0 + str r0, [r1, #0xc] + ldr r6, _0806ED2C + str r6, [r1, #8] + strh r3, [r1, #2] + mov r7, sb + lsls r0, r7, #0x10 + lsrs r3, r0, #0x10 + ldrb r0, [r4] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r3, r0 + blt _0806EC9A +_0806ED1A: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0806ED28: .4byte 0x082FA8B4 +_0806ED2C: .4byte 0x082D2F9C + thumb_func_end sub_0806EC80 + + thumb_func_start sub_0806ED30 +sub_0806ED30: @ 0x0806ED30 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + movs r7, #0 + movs r0, #1 + ands r6, r0 + movs r0, #0x14 + bl AllocZeroed + adds r4, r0, #0 + cmp r4, #0 + bne _0806ED54 + movs r0, #0 + b _0806EEF2 +_0806ED54: + cmp r5, #0 + beq _0806ED6A + cmp r5, #2 + bne _0806ED6A + movs r0, #0x77 + strb r0, [r4] + movs r0, #4 + strb r0, [r4, #1] + movs r0, #0x21 + strb r0, [r4, #3] + b _0806ED92 +_0806ED6A: + ldrb r1, [r4] + movs r2, #0x10 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + movs r3, #0xf + ands r0, r3 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4] + movs r0, #4 + strb r0, [r4, #1] + ldrb r0, [r4, #3] + ands r2, r0 + movs r0, #1 + orrs r2, r0 + ands r2, r3 + strb r2, [r4, #3] +_0806ED92: + ldrb r1, [r4, #3] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + ldrb r0, [r4] + lsls r0, r0, #0x1c + lsrs r0, r0, #0xf + muls r0, r1, r0 + bl AllocZeroed + str r0, [r4, #4] + ldrb r0, [r4] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x17 + bl AllocZeroed + adds r1, r0, #0 + str r1, [r4, #8] + ldr r2, [r4, #4] + cmp r2, #0 + beq _0806EDBE + cmp r1, #0 + bne _0806EDC8 +_0806EDBE: + movs r0, #1 + orrs r7, r0 + lsls r6, r6, #2 + mov r8, r6 + b _0806EDFC +_0806EDC8: + ldrb r0, [r4] + lsls r0, r0, #0x1c + movs r3, #0 + lsls r6, r6, #2 + mov r8, r6 + cmp r0, #0 + beq _0806EDFC + adds r6, r1, #0 + adds r5, r2, #0 +_0806EDDA: + lsls r2, r3, #2 + adds r2, r2, r6 + ldrb r0, [r4, #3] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + lsls r1, r3, #0xd + muls r0, r1, r0 + adds r0, r5, r0 + str r0, [r2] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldrb r0, [r4] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r3, r0 + blt _0806EDDA +_0806EDFC: + ldrb r1, [r4] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + bl AllocZeroed + str r0, [r4, #0xc] + ldrb r1, [r4] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + ldrb r0, [r4, #1] + lsls r0, r0, #3 + muls r0, r1, r0 + bl AllocZeroed + adds r1, r0, #0 + str r1, [r4, #0x10] + ldr r0, [r4, #0xc] + cmp r0, #0 + beq _0806EE2C + cmp r1, #0 + bne _0806EE36 +_0806EE2C: + movs r0, #2 + orrs r7, r0 + lsls r0, r7, #0x18 + lsrs r7, r0, #0x18 + b _0806EE84 +_0806EE36: + movs r3, #0 + ldrb r0, [r4, #1] + ldrb r1, [r4] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + muls r0, r1, r0 + cmp r3, r0 + bge _0806EE66 + movs r2, #0x80 + lsls r2, r2, #4 +_0806EE4A: + ldr r1, [r4, #0x10] + lsls r0, r3, #3 + adds r0, r0, r1 + strh r2, [r0, #4] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldrb r1, [r4, #1] + ldrb r0, [r4] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + muls r0, r1, r0 + cmp r3, r0 + blt _0806EE4A +_0806EE66: + ldrb r0, [r4, #3] + lsrs r0, r0, #4 + cmp r0, #0 + blt _0806EE7E + cmp r0, #1 + ble _0806EE7E + cmp r0, #2 + bne _0806EE7E + adds r0, r4, #0 + bl sub_0806EC80 + b _0806EE84 +_0806EE7E: + adds r0, r4, #0 + bl sub_0806EBE4 +_0806EE84: + movs r0, #2 + ands r0, r7 + cmp r0, #0 + beq _0806EEA8 + ldr r0, [r4, #0x10] + cmp r0, #0 + beq _0806EE9A + bl Free + movs r0, #0 + str r0, [r4, #0x10] +_0806EE9A: + ldr r0, [r4, #0xc] + cmp r0, #0 + beq _0806EEA8 + bl Free + movs r0, #0 + str r0, [r4, #0xc] +_0806EEA8: + movs r0, #1 + ands r0, r7 + cmp r0, #0 + beq _0806EECC + ldr r0, [r4, #8] + cmp r0, #0 + beq _0806EEBE + bl Free + movs r0, #0 + str r0, [r4, #8] +_0806EEBE: + ldr r0, [r4, #4] + cmp r0, #0 + beq _0806EECC + bl Free + movs r0, #0 + str r0, [r4, #4] +_0806EECC: + cmp r7, #0 + beq _0806EEE2 + adds r0, r4, #0 + movs r1, #0 + movs r2, #0x14 + bl memset + adds r0, r4, #0 + bl Free + b _0806EEEC +_0806EEE2: + movs r0, #0xa3 + strb r0, [r4, #2] + ldr r0, _0806EEFC + add r0, r8 + str r4, [r0] +_0806EEEC: + ldr r0, _0806EEFC + add r0, r8 + ldr r0, [r0] +_0806EEF2: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0806EEFC: .4byte 0x02024658 + thumb_func_end sub_0806ED30 + + thumb_func_start sub_0806EF00 +sub_0806EF00: @ 0x0806EF00 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + ands r0, r1 + ldr r1, _0806EF28 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r4, [r0] + cmp r4, #0 + beq _0806EF74 + ldrb r0, [r4, #2] + cmp r0, #0xa3 + beq _0806EF2C + adds r0, r4, #0 + movs r1, #0 + movs r2, #0x14 + bl memset + b _0806EF74 + .align 2, 0 +_0806EF28: .4byte 0x02024658 +_0806EF2C: + ldr r0, [r4, #0x10] + cmp r0, #0 + beq _0806EF3A + bl Free + movs r0, #0 + str r0, [r4, #0x10] +_0806EF3A: + ldr r0, [r4, #0xc] + cmp r0, #0 + beq _0806EF48 + bl Free + movs r0, #0 + str r0, [r4, #0xc] +_0806EF48: + ldr r0, [r4, #8] + cmp r0, #0 + beq _0806EF56 + bl Free + movs r0, #0 + str r0, [r4, #8] +_0806EF56: + ldr r0, [r4, #4] + cmp r0, #0 + beq _0806EF64 + bl Free + movs r0, #0 + str r0, [r4, #4] +_0806EF64: + adds r0, r4, #0 + movs r1, #0 + movs r2, #0x14 + bl memset + adds r0, r4, #0 + bl Free +_0806EF74: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0806EF00 + + thumb_func_start EvolutionRenameMon +EvolutionRenameMon: @ 0x0806EF7C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + ldr r2, _0806EF9C + movs r1, #1 + ands r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, [r0] + ldrb r0, [r1, #2] + cmp r0, #0xa3 + beq _0806EFA0 + movs r0, #0 + b _0806EFB4 + .align 2, 0 +_0806EF9C: .4byte 0x02024658 +_0806EFA0: + ldrb r0, [r1] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r3, r0 + blt _0806EFAC + movs r3, #0 +_0806EFAC: + ldr r0, [r1, #8] + lsls r1, r3, #2 + adds r1, r1, r0 + ldr r0, [r1] +_0806EFB4: + pop {r1} + bx r1 + thumb_func_end EvolutionRenameMon + diff --git a/asm/pokemon_animation.s b/asm/pokemon_animation.s new file mode 100644 index 0000000..addff51 --- /dev/null +++ b/asm/pokemon_animation.s @@ -0,0 +1,12140 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start MonAnimDummySpriteCallback +MonAnimDummySpriteCallback: @ 0x0817F298 + bx lr + .align 2, 0 + thumb_func_end MonAnimDummySpriteCallback + + thumb_func_start sub_0817F29C +sub_0817F29C: @ 0x0817F29C + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #4 + mov sb, r0 + mov r8, r1 + adds r5, r2, #0 + adds r4, r3, #0 + lsls r5, r5, #0x10 + rsbs r5, r5, #0 + lsls r4, r4, #0x10 + rsbs r4, r4, #0 + lsrs r4, r4, #0x10 + mov r0, r8 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov r8, r0 + asrs r5, r5, #0x10 + adds r1, r5, #0 + bl Cos + adds r6, r0, #0 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + mov r0, r8 + adds r1, r4, #0 + bl Sin + subs r6, r6, r0 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + mov r0, r8 + adds r1, r4, #0 + bl Cos + adds r2, r0, #0 + mov r0, r8 + adds r1, r5, #0 + str r2, [sp] + bl Sin + ldr r2, [sp] + adds r2, r2, r0 + rsbs r5, r5, #0 + rsbs r4, r4, #0 + lsls r6, r6, #0x10 + asrs r6, r6, #0x10 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + adds r6, r6, r5 + mov r0, sb + strh r6, [r0, #0x24] + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + adds r2, r2, r4 + strh r2, [r0, #0x26] + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_0817F29C + + thumb_func_start GetSpeciesBackAnimSet +GetSpeciesBackAnimSet: @ 0x0817F320 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _0817F334 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _0817F338 + movs r0, #0 + b _0817F33E + .align 2, 0 +_0817F334: .4byte 0x085D3328 +_0817F338: + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_0817F33E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetSpeciesBackAnimSet + + thumb_func_start Task_HandleMonAnimation +Task_HandleMonAnimation: @ 0x0817F344 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _0817F3E0 + lsls r6, r5, #2 + adds r0, r6, r5 + lsls r0, r0, #3 + adds r2, r0, r1 + movs r3, #0xa + ldrsh r0, [r2, r3] + lsls r3, r0, #0x10 + movs r4, #0xc + ldrsh r0, [r2, r4] + orrs r3, r0 + movs r0, #8 + ldrsh r4, [r2, r0] + mov r8, r1 + ldr r0, _0817F3E4 + mov ip, r0 + cmp r4, #0 + bne _0817F3B4 + ldrh r0, [r3, #0x2e] + strh r0, [r2, #0x10] + ldrh r0, [r3, #0x32] + strh r0, [r2, #0x12] + movs r0, #1 + strh r0, [r3, #0x30] + strh r4, [r3, #0x2e] + movs r0, #2 + adds r1, r6, #0 + ldr r6, _0817F3E8 + ldr r7, _0817F3EC + movs r4, #0 + adds r2, r3, #0 + adds r2, #0x32 +_0817F38E: + strh r4, [r2] + adds r2, #2 + adds r0, #1 + cmp r0, #7 + bls _0817F38E + adds r1, r1, r5 + lsls r1, r1, #3 + add r1, r8 + movs r2, #0xe + ldrsh r0, [r1, r2] + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r0, [r0] + str r0, [r3, #0x1c] + movs r0, #0 + str r0, [r7] + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] +_0817F3B4: + ldr r0, [r3, #0x1c] + cmp r0, ip + bne _0817F3D4 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + add r0, r8 + ldrh r1, [r0, #0x10] + movs r2, #0 + strh r1, [r3, #0x2e] + ldrh r0, [r0, #0x12] + strh r0, [r3, #0x32] + strh r2, [r3, #0x30] + adds r0, r5, #0 + bl DestroyTask +_0817F3D4: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0817F3E0: .4byte 0x03005B60 +_0817F3E4: .4byte 0x08007141 +_0817F3E8: .4byte 0x085D34E8 +_0817F3EC: .4byte 0x03001274 + thumb_func_end Task_HandleMonAnimation + + thumb_func_start LaunchAnimationTaskForFrontSprite +LaunchAnimationTaskForFrontSprite: @ 0x0817F3F0 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r4, r1, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _0817F41C + movs r1, #0x80 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0817F420 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + lsrs r0, r5, #0x10 + strh r0, [r1, #0xa] + strh r5, [r1, #0xc] + strh r4, [r1, #0xe] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0817F41C: .4byte 0x0817F345 +_0817F420: .4byte 0x03005B60 + thumb_func_end LaunchAnimationTaskForFrontSprite + + thumb_func_start StartMonSummaryAnimation +StartMonSummaryAnimation: @ 0x0817F424 + lsls r1, r1, #0x18 + ldr r3, _0817F438 + movs r2, #1 + str r2, [r3] + ldr r2, _0817F43C + lsrs r1, r1, #0x16 + adds r1, r1, r2 + ldr r1, [r1] + str r1, [r0, #0x1c] + bx lr + .align 2, 0 +_0817F438: .4byte 0x03001274 +_0817F43C: .4byte 0x085D34E8 + thumb_func_end StartMonSummaryAnimation + + thumb_func_start LaunchAnimationTaskForBackSprite +LaunchAnimationTaskForBackSprite: @ 0x0817F440 + push {r4, r5, r6, lr} + adds r5, r0, #0 + lsls r6, r1, #0x18 + lsrs r6, r6, #0x18 + ldr r0, _0817F4A0 + movs r1, #0x80 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0817F4A4 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + adds r4, r4, r1 + lsrs r0, r5, #0x10 + strh r0, [r4, #0xa] + strh r5, [r4, #0xc] + ldrh r0, [r5, #0x2e] + lsls r0, r0, #0x18 + ldr r1, _0817F4A8 + lsrs r0, r0, #0x17 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0817F4AC + adds r0, r0, r1 + bl GetNature + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r6, #1 + ldr r2, _0817F4B0 + adds r0, r0, r2 + adds r1, r1, r6 + ldrb r0, [r0] + adds r1, r1, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, _0817F4B4 + adds r1, r1, r0 + ldrb r0, [r1] + strh r0, [r4, #0xe] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0817F4A0: .4byte 0x0817F345 +_0817F4A4: .4byte 0x03005B60 +_0817F4A8: .4byte 0x02023D12 +_0817F4AC: .4byte 0x02024190 +_0817F4B0: .4byte 0x085D378F +_0817F4B4: .4byte 0x085D3744 + thumb_func_end LaunchAnimationTaskForBackSprite + + thumb_func_start SetSpriteCB_MonAnimDummy +SetSpriteCB_MonAnimDummy: @ 0x0817F4B8 + ldr r1, _0817F4C0 + str r1, [r0, #0x1c] + bx lr + .align 2, 0 +_0817F4C0: .4byte 0x0817F299 + thumb_func_end SetSpriteCB_MonAnimDummy + + thumb_func_start SetAffineData +SetAffineData: @ 0x0817F4C4 + push {r4, r5, lr} + sub sp, #0x10 + lsls r1, r1, #0x10 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + ldr r4, _0817F514 + lsls r2, r2, #0x10 + lsrs r1, r1, #0x10 + orrs r1, r2 + str r1, [sp] + ldr r1, [sp, #4] + ands r1, r4 + orrs r1, r3 + str r1, [sp, #4] + ldrb r4, [r0, #3] + lsls r4, r4, #0x1a + lsrs r4, r4, #0x1b + add r5, sp, #8 + mov r0, sp + adds r1, r5, #0 + movs r2, #1 + movs r3, #2 + bl ObjAffineSet + ldr r0, _0817F518 + lsls r4, r4, #3 + adds r4, r4, r0 + ldrh r0, [r5] + strh r0, [r4] + ldrh r0, [r5, #2] + strh r0, [r4, #2] + ldrh r0, [r5, #4] + strh r0, [r4, #4] + ldrh r0, [r5, #6] + strh r0, [r4, #6] + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0817F514: .4byte 0xFFFF0000 +_0817F518: .4byte 0x02021B3C + thumb_func_end SetAffineData + + thumb_func_start HandleStartAffineAnim +HandleStartAffineAnim: @ 0x0817F51C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #1] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #1] + ldr r0, _0817F54C + str r0, [r4, #0x10] + ldr r0, _0817F550 + ldr r0, [r0] + cmp r0, #1 + bne _0817F53A + adds r0, r4, #0 + bl InitSpriteAffineAnim +_0817F53A: + movs r1, #0x30 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0817F554 + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAffineAnim + b _0817F55C + .align 2, 0 +_0817F54C: .4byte 0x085D37C8 +_0817F550: .4byte 0x03001274 +_0817F554: + adds r0, r4, #0 + movs r1, #0 + bl StartSpriteAffineAnim +_0817F55C: + ldrb r3, [r4, #1] + lsrs r1, r3, #6 + ldrb r2, [r4, #3] + lsrs r2, r2, #6 + lsls r3, r3, #0x1e + lsrs r3, r3, #0x1e + adds r0, r4, #0 + bl CalcCenterToCornerVec + adds r2, r4, #0 + adds r2, #0x2c + ldrb r0, [r2] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2] + pop {r4} + pop {r0} + bx r0 + thumb_func_end HandleStartAffineAnim + + thumb_func_start HandleSetAffineData +HandleSetAffineData: @ 0x0817F580 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + movs r5, #0x30 + ldrsh r0, [r4, r5] + cmp r0, #0 + bne _0817F5A4 + lsls r0, r1, #0x10 + rsbs r0, r0, #0 + lsrs r1, r0, #0x10 + rsbs r0, r3, #0 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 +_0817F5A4: + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r0, r4, #0 + bl SetAffineData + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end HandleSetAffineData + + thumb_func_start sub_0817F5B8 +sub_0817F5B8: @ 0x0817F5B8 + push {lr} + adds r1, r0, #0 + movs r2, #0x30 + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _0817F5CC + movs r2, #0x24 + ldrsh r0, [r1, r2] + rsbs r0, r0, #0 + strh r0, [r1, #0x24] +_0817F5CC: + pop {r0} + bx r0 + thumb_func_end sub_0817F5B8 + + thumb_func_start sub_0817F5D0 +sub_0817F5D0: @ 0x0817F5D0 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #3 + bhi _0817F5FC + ldr r1, _0817F5F8 + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + movs r2, #0 + strh r2, [r0, #6] + strh r2, [r0] + movs r1, #1 + strh r1, [r0, #4] + strh r2, [r0, #2] + strh r2, [r0, #8] + movs r0, #1 + b _0817F5FE + .align 2, 0 +_0817F5F8: .4byte 0x03001240 +_0817F5FC: + movs r0, #0 +_0817F5FE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0817F5D0 + + thumb_func_start sub_0817F604 +sub_0817F604: @ 0x0817F604 + push {r4, lr} + ldr r4, _0817F624 + ldrb r1, [r4] + adds r2, r1, #1 + adds r0, r2, #0 + asrs r0, r0, #2 + lsls r0, r0, #2 + subs r0, r2, r0 + strb r0, [r4] + ldrb r0, [r4] + bl sub_0817F5D0 + ldrb r0, [r4] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0817F624: .4byte 0x03001270 + thumb_func_end sub_0817F604 + + thumb_func_start sub_0817F628 +sub_0817F628: @ 0x0817F628 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #1] + movs r3, #4 + rsbs r3, r3, #0 + ands r3, r0 + movs r5, #1 + orrs r3, r5 + strb r3, [r4, #1] + lsrs r1, r3, #6 + ldrb r2, [r4, #3] + lsrs r2, r2, #6 + lsls r3, r3, #0x1e + lsrs r3, r3, #0x1e + adds r0, r4, #0 + bl CalcCenterToCornerVec + ldr r0, _0817F668 + ldr r0, [r0] + cmp r0, #1 + bne _0817F6AC + movs r1, #0x30 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0817F66C + adds r1, r4, #0 + adds r1, #0x3f + ldrb r0, [r1] + orrs r0, r5 + strb r0, [r1] + adds r5, r1, #0 + b _0817F67C + .align 2, 0 +_0817F668: .4byte 0x03001274 +_0817F66C: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r2, [r0] + movs r1, #2 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + adds r5, r0, #0 +_0817F67C: + ldrb r0, [r4, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + ldrb r2, [r4, #3] + lsls r1, r2, #0x1a + lsrs r1, r1, #0x1b + ldrb r0, [r5] + lsls r0, r0, #0x1f + lsrs r0, r0, #0x1f + lsls r0, r0, #3 + orrs r1, r0 + lsls r1, r1, #1 + movs r0, #0x3f + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #3] + ldrb r1, [r4, #1] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #1] +_0817F6AC: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0817F628 + + thumb_func_start pokemonanimfunc_01 +pokemonanimfunc_01: @ 0x0817F6B4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r1, #0x32 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _0817F6C6 + adds r0, r6, #0 + bl HandleStartAffineAnim +_0817F6C6: + movs r1, #0x32 + ldrsh r0, [r6, r1] + cmp r0, #0x28 + ble _0817F6EC + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r6, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + adds r0, r6, #0 + bl sub_0817F628 + ldr r0, _0817F6E8 + str r0, [r6, #0x1c] + b _0817F738 + .align 2, 0 +_0817F6E8: .4byte 0x08184C35 +_0817F6EC: + movs r1, #0x32 + ldrsh r0, [r6, r1] + lsls r0, r0, #9 + movs r1, #0x28 + bl __divsi3 + adds r4, r0, #0 + cmp r0, #0 + bge _0817F700 + adds r4, #0xff +_0817F700: + asrs r4, r4, #8 + lsls r4, r4, #8 + subs r4, r0, r4 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + adds r0, r4, #0 + movs r1, #0x20 + bl Sin + movs r1, #0x80 + lsls r1, r1, #1 + adds r5, r1, #0 + adds r0, r0, r5 + strh r0, [r6, #0x36] + adds r0, r4, #0 + movs r1, #0x20 + bl Cos + adds r0, r0, r5 + strh r0, [r6, #0x38] + movs r0, #0x36 + ldrsh r1, [r6, r0] + movs r0, #0x38 + ldrsh r2, [r6, r0] + adds r0, r6, #0 + movs r3, #0 + bl HandleSetAffineData +_0817F738: + ldrh r0, [r6, #0x32] + adds r0, #1 + strh r0, [r6, #0x32] + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_01 + + thumb_func_start pokemonanimfunc_02 +pokemonanimfunc_02: @ 0x0817F744 + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x32] + movs r2, #0x32 + ldrsh r0, [r4, r2] + cmp r0, #0x28 + ble _0817F760 + ldr r0, _0817F75C + str r0, [r4, #0x1c] + movs r0, #0 + b _0817F79A + .align 2, 0 +_0817F75C: .4byte 0x08184C35 +_0817F760: + movs r0, #1 + ands r0, r1 + movs r5, #0xff + cmp r0, #0 + bne _0817F76C + movs r5, #1 +_0817F76C: + movs r1, #0x32 + ldrsh r0, [r4, r1] + lsls r0, r0, #7 + movs r1, #0x28 + bl __divsi3 + adds r1, r0, #0 + cmp r1, #0 + bge _0817F780 + adds r0, #0xff +_0817F780: + asrs r0, r0, #8 + lsls r0, r0, #8 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #6 + bl Sin + lsls r1, r5, #0x18 + asrs r1, r1, #0x18 + adds r2, r0, #0 + muls r2, r1, r2 + adds r0, r2, #0 +_0817F79A: + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_02 + + thumb_func_start sub_0817F7A8 +sub_0817F7A8: @ 0x0817F7A8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r1, r0 + ble _0817F7C8 + ldr r0, _0817F7C4 + str r0, [r4, #0x1c] + movs r0, #0 + b _0817F7F2 + .align 2, 0 +_0817F7C4: .4byte 0x08184C35 +_0817F7C8: + movs r0, #0x32 + ldrsh r1, [r4, r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #7 + movs r2, #0x2e + ldrsh r1, [r4, r2] + bl __divsi3 + adds r1, r0, #0 + cmp r1, #0 + bge _0817F7E2 + adds r0, #0xff +_0817F7E2: + asrs r0, r0, #8 + lsls r0, r0, #8 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #6 + bl Sin +_0817F7F2: + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0817F7A8 + + thumb_func_start pokemonanimfunc_03 +pokemonanimfunc_03: @ 0x0817F808 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x28 + strh r0, [r4, #0x2e] + adds r0, r4, #0 + bl sub_0817F7A8 + ldr r0, _0817F820 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0817F820: .4byte 0x0817F7A9 + thumb_func_end pokemonanimfunc_03 + + thumb_func_start sub_0817F824 +sub_0817F824: @ 0x0817F824 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r1, r0 + ble _0817F844 + ldr r0, _0817F840 + str r0, [r4, #0x1c] + movs r0, #0 + b _0817F870 + .align 2, 0 +_0817F840: .4byte 0x08184C35 +_0817F844: + movs r0, #0x32 + ldrsh r1, [r4, r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #7 + movs r2, #0x2e + ldrsh r1, [r4, r2] + bl __divsi3 + adds r1, r0, #0 + cmp r1, #0 + bge _0817F85E + adds r0, #0xff +_0817F85E: + asrs r0, r0, #8 + lsls r0, r0, #8 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #6 + bl Sin + rsbs r0, r0, #0 +_0817F870: + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0817F824 + + thumb_func_start pokemonanimfunc_04 +pokemonanimfunc_04: @ 0x0817F884 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x28 + strh r0, [r4, #0x2e] + adds r0, r4, #0 + bl sub_0817F824 + ldr r0, _0817F89C + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0817F89C: .4byte 0x0817F825 + thumb_func_end pokemonanimfunc_04 + + thumb_func_start sub_0817F8A0 +sub_0817F8A0: @ 0x0817F8A0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r0, #0xc0 + lsls r0, r0, #1 + cmp r1, r0 + ble _0817F8C0 + ldr r0, _0817F8BC + str r0, [r4, #0x1c] + movs r0, #0 + strh r0, [r4, #0x24] + b _0817F90A + .align 2, 0 +_0817F8BC: .4byte 0x08184C35 +_0817F8C0: + adds r0, r1, #0 + cmp r1, #0 + bge _0817F8C8 + adds r0, #0x7f +_0817F8C8: + asrs r2, r0, #7 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + blt _0817F90C + cmp r0, #1 + ble _0817F8F4 + cmp r0, #3 + bgt _0817F90C + ldr r2, _0817F8F0 + adds r1, r1, r2 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x2e + ldrsh r2, [r4, r1] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #0x10 + b _0817F902 + .align 2, 0 +_0817F8F0: .4byte 0xFFFFFF00 +_0817F8F4: + lsls r0, r2, #7 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x2e + ldrsh r1, [r4, r2] + lsls r1, r1, #0x11 +_0817F902: + asrs r1, r1, #0x10 + bl Sin + rsbs r0, r0, #0 +_0817F90A: + strh r0, [r4, #0x26] +_0817F90C: + ldrh r0, [r4, #0x32] + adds r0, #0xc + strh r0, [r4, #0x32] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0817F8A0 + + thumb_func_start pokemonanimfunc_1E +pokemonanimfunc_1E: @ 0x0817F918 + push {r4, lr} + adds r4, r0, #0 + movs r0, #4 + strh r0, [r4, #0x2e] + adds r0, r4, #0 + bl sub_0817F8A0 + ldr r0, _0817F930 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0817F930: .4byte 0x0817F8A1 + thumb_func_end pokemonanimfunc_1E + + thumb_func_start pokemonanimfunc_06 +pokemonanimfunc_06: @ 0x0817F934 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r2, [r4, r0] + movs r0, #0xc0 + lsls r0, r0, #2 + cmp r2, r0 + ble _0817F954 + ldr r0, _0817F950 + str r0, [r4, #0x1c] + movs r0, #0 + strh r0, [r4, #0x24] + b _0817FA02 + .align 2, 0 +_0817F950: .4byte 0x08184C35 +_0817F954: + adds r0, r2, #0 + cmp r2, #0 + bge _0817F95C + adds r0, #0x7f +_0817F95C: + lsls r0, r0, #9 + asrs r0, r0, #0x10 + cmp r0, #5 + bhi _0817F9E8 + lsls r0, r0, #2 + ldr r1, _0817F970 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0817F970: .4byte 0x0817F974 +_0817F974: @ jump table + .4byte _0817F98C @ case 0 + .4byte _0817F98C @ case 1 + .4byte _0817F990 @ case 2 + .4byte _0817F994 @ case 3 + .4byte _0817F9B0 @ case 4 + .4byte _0817F9CA @ case 5 +_0817F98C: + movs r0, #0 + b _0817F9E6 +_0817F990: + movs r2, #0 + b _0817F9E8 +_0817F994: + adds r0, r2, #0 + cmp r2, #0 + bge _0817F99C + adds r0, #0x7f +_0817F99C: + asrs r0, r0, #7 + lsls r0, r0, #7 + subs r0, r2, r0 + lsls r0, r0, #3 + rsbs r0, r0, #0 + cmp r0, #0 + bge _0817F9AC + adds r0, #0x7f +_0817F9AC: + asrs r0, r0, #7 + b _0817F9E6 +_0817F9B0: + adds r0, r2, #0 + cmp r2, #0 + bge _0817F9B8 + adds r0, #0x7f +_0817F9B8: + asrs r0, r0, #7 + lsls r0, r0, #7 + subs r0, r2, r0 + cmp r0, #0 + bge _0817F9C4 + adds r0, #7 +_0817F9C4: + asrs r0, r0, #3 + subs r0, #8 + b _0817F9E6 +_0817F9CA: + adds r0, r2, #0 + cmp r2, #0 + bge _0817F9D2 + adds r0, #0x7f +_0817F9D2: + asrs r0, r0, #7 + lsls r0, r0, #7 + subs r0, r2, r0 + lsls r0, r0, #3 + rsbs r0, r0, #0 + cmp r0, #0 + bge _0817F9E2 + adds r0, #0x7f +_0817F9E2: + asrs r0, r0, #7 + adds r0, #8 +_0817F9E6: + strh r0, [r4, #0x24] +_0817F9E8: + adds r0, r2, #0 + cmp r2, #0 + bge _0817F9F0 + adds r0, #0x7f +_0817F9F0: + asrs r0, r0, #7 + lsls r0, r0, #7 + subs r0, r2, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #8 + bl Sin + rsbs r0, r0, #0 +_0817FA02: + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x32] + adds r0, #0xc + strh r0, [r4, #0x32] + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_06 + + thumb_func_start pokemonanimfunc_09 +pokemonanimfunc_09: @ 0x0817FA10 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r1, #0x32 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _0817FA22 + adds r0, r6, #0 + bl HandleStartAffineAnim +_0817FA22: + movs r1, #0x32 + ldrsh r0, [r6, r1] + cmp r0, #0x28 + ble _0817FA48 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r6, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + adds r0, r6, #0 + bl sub_0817F628 + ldr r0, _0817FA44 + str r0, [r6, #0x1c] + b _0817FABE + .align 2, 0 +_0817FA44: .4byte 0x08184C35 +_0817FA48: + movs r1, #0x32 + ldrsh r0, [r6, r1] + lsls r0, r0, #8 + movs r1, #0x28 + bl __divsi3 + adds r1, r0, #0 + cmp r1, #0 + bge _0817FA5C + adds r0, #0xff +_0817FA5C: + asrs r0, r0, #8 + lsls r0, r0, #8 + subs r0, r1, r0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldrh r0, [r6, #0x32] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0817FA8C + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + adds r0, r4, #0 + movs r1, #0x20 + bl Sin + movs r1, #0x80 + lsls r1, r1, #1 + adds r5, r1, #0 + adds r0, r0, r5 + strh r0, [r6, #0x36] + adds r0, r4, #0 + movs r1, #0x20 + b _0817FAA6 +_0817FA8C: + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + adds r0, r4, #0 + movs r1, #8 + bl Sin + movs r1, #0x80 + lsls r1, r1, #1 + adds r5, r1, #0 + adds r0, r0, r5 + strh r0, [r6, #0x36] + adds r0, r4, #0 + movs r1, #8 +_0817FAA6: + bl Sin + adds r0, r0, r5 + strh r0, [r6, #0x38] + movs r0, #0x36 + ldrsh r1, [r6, r0] + movs r0, #0x38 + ldrsh r2, [r6, r0] + adds r0, r6, #0 + movs r3, #0 + bl HandleSetAffineData +_0817FABE: + ldrh r0, [r6, #0x32] + adds r0, #1 + strh r0, [r6, #0x32] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_09 + + thumb_func_start sub_0817FACC +sub_0817FACC: @ 0x0817FACC + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0817FADE + strh r0, [r4, #0x34] +_0817FADE: + ldr r2, _0817FB04 + movs r5, #0x34 + ldrsh r1, [r4, r5] + lsls r0, r1, #1 + adds r0, r0, r1 + adds r1, r2, #2 + adds r3, r0, r1 + movs r1, #0 + ldrsb r1, [r3, r1] + movs r5, #0x32 + ldrsh r0, [r4, r5] + cmp r1, r0 + bne _0817FB16 + adds r0, r1, #0 + cmp r0, #0 + bne _0817FB0C + ldr r0, _0817FB08 + str r0, [r4, #0x1c] + b _0817FB16 + .align 2, 0 +_0817FB04: .4byte 0x085D37D0 +_0817FB08: .4byte 0x08184C35 +_0817FB0C: + ldrh r0, [r4, #0x34] + adds r0, #1 + movs r1, #0 + strh r0, [r4, #0x34] + strh r1, [r4, #0x32] +_0817FB16: + movs r0, #0x34 + ldrsh r1, [r4, r0] + lsls r0, r1, #1 + adds r1, r0, r1 + adds r0, r2, #2 + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _0817FB38 + ldr r0, _0817FB34 + str r0, [r4, #0x1c] + b _0817FB6A + .align 2, 0 +_0817FB34: .4byte 0x08184C35 +_0817FB38: + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x24] + adds r0, r0, r1 + strh r0, [r4, #0x24] + movs r5, #0x34 + ldrsh r1, [r4, r5] + lsls r0, r1, #1 + adds r0, r0, r1 + adds r1, r2, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x26] + adds r0, r0, r1 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_0817F5B8 +_0817FB6A: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_0817FACC + + thumb_func_start pokemonanimfunc_0A +pokemonanimfunc_0A: @ 0x0817FB70 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817FACC + ldr r0, _0817FB84 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0817FB84: .4byte 0x0817FACD + thumb_func_end pokemonanimfunc_0A + + thumb_func_start sub_0817FB88 +sub_0817FB88: @ 0x0817FB88 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r0, #0x90 + lsls r0, r0, #4 + cmp r1, r0 + ble _0817FBA4 + ldr r0, _0817FBA0 + str r0, [r4, #0x1c] + movs r0, #0 + b _0817FBBE + .align 2, 0 +_0817FBA0: .4byte 0x08184C35 +_0817FBA4: + adds r0, r1, #0 + cmp r1, #0 + bge _0817FBAC + adds r0, #0xff +_0817FBAC: + asrs r0, r0, #8 + lsls r0, r0, #8 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x3c + ldrsh r1, [r4, r2] + bl Sin +_0817FBBE: + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x2e] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0817FB88 + + thumb_func_start pokemonanimfunc_0F +pokemonanimfunc_0F: @ 0x0817FBD0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x3c + strh r0, [r4, #0x2e] + movs r0, #3 + strh r0, [r4, #0x3c] + adds r0, r4, #0 + bl sub_0817FB88 + ldr r0, _0817FBEC + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0817FBEC: .4byte 0x0817FB89 + thumb_func_end pokemonanimfunc_0F + + thumb_func_start sub_0817FBF0 +sub_0817FBF0: @ 0x0817FBF0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r0, #0x90 + lsls r0, r0, #4 + cmp r1, r0 + ble _0817FC0C + ldr r0, _0817FC08 + str r0, [r4, #0x1c] + movs r0, #0 + b _0817FC24 + .align 2, 0 +_0817FC08: .4byte 0x08184C35 +_0817FC0C: + adds r0, r1, #0 + cmp r1, #0 + bge _0817FC14 + adds r0, #0xff +_0817FC14: + asrs r0, r0, #8 + lsls r0, r0, #8 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #3 + bl Sin +_0817FC24: + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x2e] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0817FBF0 + + thumb_func_start pokemonanimfunc_10 +pokemonanimfunc_10: @ 0x0817FC34 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x3c + strh r0, [r4, #0x2e] + adds r0, r4, #0 + bl sub_0817FBF0 + ldr r0, _0817FC4C + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0817FC4C: .4byte 0x0817FBF1 + thumb_func_end pokemonanimfunc_10 + + thumb_func_start pokemonanimfunc_11 +pokemonanimfunc_11: @ 0x0817FC50 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + ldrh r2, [r7, #0x32] + movs r0, #0x32 + ldrsh r1, [r7, r0] + movs r0, #0x80 + lsls r0, r0, #2 + cmp r1, r0 + ble _0817FC74 + ldr r0, _0817FC70 + str r0, [r7, #0x1c] + movs r0, #0 + strh r0, [r7, #0x24] + strh r0, [r7, #0x26] + b _0817FCD0 + .align 2, 0 +_0817FC70: .4byte 0x08184C35 +_0817FC74: + movs r0, #1 + ands r0, r2 + movs r5, #0xff + cmp r0, #0 + bne _0817FC80 + movs r5, #1 +_0817FC80: + movs r1, #0x32 + ldrsh r0, [r7, r1] + cmp r0, #0 + bge _0817FC8A + adds r0, #3 +_0817FC8A: + asrs r0, r0, #2 + movs r1, #8 + bl Sin + lsls r0, r0, #0x10 + asrs r6, r0, #0x10 + movs r0, #0x32 + ldrsh r1, [r7, r0] + adds r4, r1, #0 + cmp r1, #0 + bge _0817FCA2 + adds r4, #0xff +_0817FCA2: + asrs r4, r4, #8 + lsls r4, r4, #8 + subs r4, r1, r4 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + adds r0, r4, #0 + adds r1, r6, #0 + bl Sin + lsls r5, r5, #0x18 + asrs r5, r5, #0x18 + adds r1, r0, #0 + muls r1, r5, r1 + adds r0, r1, #0 + strh r0, [r7, #0x26] + adds r0, r4, #0 + adds r1, r6, #0 + bl Cos + adds r1, r0, #0 + muls r1, r5, r1 + adds r0, r1, #0 + strh r0, [r7, #0x24] +_0817FCD0: + ldrh r0, [r7, #0x32] + adds r0, #9 + strh r0, [r7, #0x32] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_11 + + thumb_func_start sub_0817FCDC +sub_0817FCDC: @ 0x0817FCDC + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r2, _0817FCFC + ldrh r6, [r4, #0x2e] + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r5, r0, r2 + ldrh r0, [r5] + cmp r0, #0 + beq _0817FD00 + subs r0, #1 + strh r0, [r5] + b _0817FDA4 + .align 2, 0 +_0817FCFC: .4byte 0x03001240 +_0817FD00: + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0817FD1C + movs r2, #8 + ldrsh r0, [r5, r2] + cmp r0, #0 + bne _0817FD1C + adds r0, r4, #0 + bl HandleStartAffineAnim + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] +_0817FD1C: + ldr r2, _0817FD5C + lsls r1, r6, #0x10 + asrs r1, r1, #0x10 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r5, r0, r2 + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r2, #6 + ldrsh r0, [r5, r2] + cmp r1, r0 + ble _0817FD70 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + ldrh r1, [r5, #4] + movs r2, #4 + ldrsh r0, [r5, r2] + cmp r0, #1 + ble _0817FD60 + subs r0, r1, #1 + movs r1, #0 + strh r0, [r5, #4] + movs r0, #0xa + strh r0, [r5] + strh r1, [r4, #0x32] + b _0817FD9E + .align 2, 0 +_0817FD5C: .4byte 0x03001240 +_0817FD60: + adds r0, r4, #0 + bl sub_0817F628 + ldr r0, _0817FD6C + str r0, [r4, #0x1c] + b _0817FD9E + .align 2, 0 +_0817FD6C: .4byte 0x08184C35 +_0817FD70: + movs r0, #0x32 + ldrsh r1, [r4, r0] + adds r0, r1, #0 + cmp r1, #0 + bge _0817FD7C + adds r0, #0xff +_0817FD7C: + asrs r0, r0, #8 + lsls r0, r0, #8 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #5 + bl Sin + strh r0, [r4, #0x3a] + movs r2, #0x80 + lsls r2, r2, #1 + ldrh r3, [r4, #0x3a] + adds r0, r4, #0 + adds r1, r2, #0 + bl HandleSetAffineData +_0817FD9E: + ldrh r0, [r4, #0x32] + adds r0, #0x10 + strh r0, [r4, #0x32] +_0817FDA4: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0817FCDC + + thumb_func_start pokemonanimfunc_12 +pokemonanimfunc_12: @ 0x0817FDAC + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F604 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r3, #0 + strh r0, [r4, #0x2e] + ldr r2, _0817FDE0 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r1, #6] + strh r3, [r1] + adds r0, r4, #0 + bl sub_0817FCDC + ldr r0, _0817FDE4 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0817FDE0: .4byte 0x03001240 +_0817FDE4: .4byte 0x0817FCDD + thumb_func_end pokemonanimfunc_12 + + thumb_func_start sub_0817FDE8 +sub_0817FDE8: @ 0x0817FDE8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0817FE00 + adds r0, r4, #0 + bl HandleStartAffineAnim +_0817FE00: + movs r2, #0x32 + ldrsh r6, [r4, r2] + ldr r1, _0817FE30 + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r1, [r0] + cmp r6, r1 + ble _0817FE38 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + adds r0, r4, #0 + bl sub_0817F628 + ldr r0, _0817FE34 + str r0, [r4, #0x1c] + b _0817FE56 + .align 2, 0 +_0817FE30: .4byte 0x03001240 +_0817FE34: .4byte 0x08184C35 +_0817FE38: + movs r2, #8 + ldrsh r1, [r0, r2] + movs r0, #0x80 + lsls r0, r0, #9 + bl __divsi3 + muls r0, r6, r0 + strh r0, [r4, #0x3a] + movs r2, #0x80 + lsls r2, r2, #1 + ldrh r3, [r4, #0x3a] + adds r0, r4, #0 + adds r1, r2, #0 + bl HandleSetAffineData +_0817FE56: + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0817FDE8 + + thumb_func_start pokemonanimfunc_1F +pokemonanimfunc_1F: @ 0x0817FE64 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F604 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x2e] + ldr r2, _0817FE94 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #0x3c + strh r0, [r1] + movs r0, #0x14 + strh r0, [r1, #8] + adds r0, r4, #0 + bl sub_0817FDE8 + ldr r0, _0817FE98 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0817FE94: .4byte 0x03001240 +_0817FE98: .4byte 0x0817FDE9 + thumb_func_end pokemonanimfunc_1F + + thumb_func_start sub_0817FE9C +sub_0817FE9C: @ 0x0817FE9C + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldrh r0, [r5, #0x2e] + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + adds r0, r5, #0 + bl sub_0817F5B8 + ldr r1, _0817FED0 + lsls r0, r7, #1 + adds r0, r0, r7 + lsls r0, r0, #2 + adds r6, r0, r1 + movs r0, #0x32 + ldrsh r1, [r5, r0] + movs r2, #6 + ldrsh r0, [r6, r2] + cmp r1, r0 + ble _0817FED8 + movs r0, #0 + strh r0, [r5, #0x24] + strh r0, [r5, #0x26] + ldr r0, _0817FED4 + str r0, [r5, #0x1c] + b _0817FF16 + .align 2, 0 +_0817FED0: .4byte 0x03001240 +_0817FED4: .4byte 0x08184C35 +_0817FED8: + movs r0, #0x32 + ldrsh r1, [r5, r0] + adds r0, r1, #0 + adds r0, #0xc0 + adds r4, r0, #0 + cmp r0, #0 + bge _0817FEEA + ldr r2, _0817FF34 + adds r4, r1, r2 +_0817FEEA: + asrs r4, r4, #8 + lsls r4, r4, #8 + subs r4, r0, r4 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + movs r0, #8 + ldrsh r1, [r6, r0] + lsls r1, r1, #0x11 + asrs r1, r1, #0x10 + adds r0, r4, #0 + bl Cos + rsbs r0, r0, #0 + strh r0, [r5, #0x24] + movs r2, #8 + ldrsh r1, [r6, r2] + adds r0, r4, #0 + bl Sin + ldrh r1, [r6, #8] + adds r0, r0, r1 + strh r0, [r5, #0x26] +_0817FF16: + ldr r0, _0817FF38 + lsls r1, r7, #1 + adds r1, r1, r7 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r0, [r1, #2] + ldrh r1, [r5, #0x32] + adds r0, r0, r1 + strh r0, [r5, #0x32] + adds r0, r5, #0 + bl sub_0817F5B8 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0817FF34: .4byte 0x000001BF +_0817FF38: .4byte 0x03001240 + thumb_func_end sub_0817FE9C + + thumb_func_start pokemonanimfunc_14 +pokemonanimfunc_14: @ 0x0817FF3C + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F604 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x2e] + ldr r2, _0817FF74 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r1, #6] + movs r0, #6 + strh r0, [r1, #8] + movs r0, #0x18 + strh r0, [r1, #2] + adds r0, r4, #0 + bl sub_0817FE9C + ldr r0, _0817FF78 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0817FF74: .4byte 0x03001240 +_0817FF78: .4byte 0x0817FE9D + thumb_func_end pokemonanimfunc_14 + + thumb_func_start pokemonanimfunc_15 +pokemonanimfunc_15: @ 0x0817FF7C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0817FF98 + ldrb r0, [r4, #5] + lsrs r0, r0, #4 + lsls r0, r0, #4 + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + adds r0, r0, r1 + strh r0, [r4, #0x3c] +_0817FF98: + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0x80 + ble _0817FFB8 + ldrh r0, [r4, #0x3c] + movs r1, #0x10 + movs r2, #0 + movs r3, #0 + bl BlendPalette + ldr r0, _0817FFB4 + str r0, [r4, #0x1c] + b _0817FFD4 + .align 2, 0 +_0817FFB4: .4byte 0x08184C35 +_0817FFB8: + movs r2, #0x32 + ldrsh r0, [r4, r2] + movs r1, #0x10 + bl Sin + adds r2, r0, #0 + strh r2, [r4, #0x3a] + ldrh r0, [r4, #0x3c] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r1, #0x10 + movs r3, #0 + bl BlendPalette +_0817FFD4: + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_15 + + thumb_func_start pokemonanimfunc_16 +pokemonanimfunc_16: @ 0x0817FFE0 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + movs r7, #0 + movs r1, #0x32 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _0817FFF4 + adds r0, r6, #0 + bl HandleStartAffineAnim +_0817FFF4: + ldrh r5, [r6, #0x32] + movs r2, #0x32 + ldrsh r0, [r6, r2] + cmp r0, #0x28 + ble _0818001C + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r6, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + adds r0, r6, #0 + bl sub_0817F628 + ldr r0, _08180018 + str r0, [r6, #0x1c] + b _081800B0 + .align 2, 0 +_08180018: .4byte 0x08184C35 +_0818001C: + movs r1, #0x32 + ldrsh r0, [r6, r1] + lsls r0, r0, #7 + movs r1, #0x28 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r5, #0 + subs r0, #0xa + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x13 + bhi _08180042 + ldrh r0, [r6, #0x3c] + adds r0, #0x33 + strh r0, [r6, #0x3c] + movs r7, #0xff + ands r7, r0 +_08180042: + movs r2, #0x30 + ldrsh r0, [r6, r2] + cmp r0, #0 + bne _08180070 + lsls r5, r4, #0x10 + asrs r0, r5, #0x10 + movs r1, #0x28 + bl Sin + adds r4, r0, #0 + adds r0, r7, #0 + movs r1, #0x10 + bl Sin + ldr r1, _0818006C + adds r0, r0, r1 + adds r4, r4, r0 + strh r4, [r6, #0x36] + adds r4, r5, #0 + b _08180090 + .align 2, 0 +_0818006C: .4byte 0xFFFFFF00 +_08180070: + adds r0, r7, #0 + movs r1, #0x10 + bl Sin + adds r5, r0, #0 + lsls r4, r4, #0x10 + asrs r0, r4, #0x10 + movs r1, #0x28 + bl Sin + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + subs r1, r1, r5 + subs r1, r1, r0 + strh r1, [r6, #0x36] +_08180090: + asrs r0, r4, #0x10 + movs r1, #0x10 + bl Sin + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r0, r1 + strh r0, [r6, #0x38] + movs r2, #0x36 + ldrsh r1, [r6, r2] + movs r0, #0x38 + ldrsh r2, [r6, r0] + adds r0, r6, #0 + movs r3, #0 + bl SetAffineData +_081800B0: + ldrh r0, [r6, #0x32] + adds r0, #1 + strh r0, [r6, #0x32] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_16 + + thumb_func_start pokemonanimfunc_17 +pokemonanimfunc_17: @ 0x081800BC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + movs r0, #0 + mov r8, r0 + movs r7, #0 + movs r1, #0x32 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _081800D8 + adds r0, r5, #0 + bl HandleStartAffineAnim +_081800D8: + ldrh r6, [r5, #0x32] + movs r2, #0x32 + ldrsh r0, [r5, r2] + cmp r0, #0x28 + ble _08180104 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r5, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + adds r0, r5, #0 + bl sub_0817F628 + ldr r0, _08180100 + str r0, [r5, #0x1c] + mov r0, r8 + strh r0, [r5, #0x26] + b _081801B6 + .align 2, 0 +_08180100: .4byte 0x08184C35 +_08180104: + movs r1, #0x32 + ldrsh r0, [r5, r1] + lsls r0, r0, #7 + movs r1, #0x28 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r6, #0 + subs r0, #0xa + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x13 + bhi _0818012A + ldrh r0, [r5, #0x3c] + adds r0, #0x33 + strh r0, [r5, #0x3c] + movs r7, #0xff + ands r7, r0 +_0818012A: + movs r2, #0x30 + ldrsh r0, [r5, r2] + cmp r0, #0 + bne _0818014C + lsls r4, r4, #0x10 + asrs r0, r4, #0x10 + movs r1, #0x10 + bl Sin + ldr r2, _08180148 + adds r1, r2, #0 + subs r1, r1, r0 + strh r1, [r5, #0x36] + b _0818015E + .align 2, 0 +_08180148: .4byte 0xFFFFFF00 +_0818014C: + lsls r4, r4, #0x10 + asrs r0, r4, #0x10 + movs r1, #0x10 + bl Sin + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r0, r1 + strh r0, [r5, #0x36] +_0818015E: + adds r6, r4, #0 + adds r0, r7, #0 + movs r1, #8 + bl Sin + adds r4, r0, #0 + asrs r0, r6, #0x10 + movs r1, #0x28 + bl Sin + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + subs r4, r1, r4 + subs r4, r4, r0 + strh r4, [r5, #0x38] + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r4, r1 + beq _0818019C + movs r2, #0x38 + ldrsh r0, [r5, r2] + subs r0, r1, r0 + cmp r0, #0 + bge _08180196 + adds r0, #7 +_08180196: + lsls r0, r0, #0xd + lsrs r0, r0, #0x10 + mov r8, r0 +_0818019C: + mov r1, r8 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + rsbs r0, r0, #0 + strh r0, [r5, #0x26] + movs r2, #0x36 + ldrsh r1, [r5, r2] + movs r0, #0x38 + ldrsh r2, [r5, r0] + adds r0, r5, #0 + movs r3, #0 + bl SetAffineData +_081801B6: + ldrh r0, [r5, #0x32] + adds r0, #1 + strh r0, [r5, #0x32] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_17 + + thumb_func_start sub_081801C8 +sub_081801C8: @ 0x081801C8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldrh r0, [r4, #0x32] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldrh r0, [r4, #0x3a] + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r2, _08180214 + movs r1, #0x38 + ldrsh r0, [r4, r1] + lsls r0, r0, #1 + adds r1, r0, r2 + ldrb r5, [r1] + adds r2, #1 + adds r0, r0, r2 + ldrb r6, [r0] + movs r1, #0 + cmp r5, #0xfe + beq _08180204 + subs r0, r6, r7 + muls r0, r5, r0 + adds r1, r6, #0 + bl __divsi3 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 +_08180204: + cmp r5, #0xff + bne _0818021C + ldr r0, _08180218 + str r0, [r4, #0x1c] + movs r0, #0 + strh r0, [r4, #0x26] + b _08180240 + .align 2, 0 +_08180214: .4byte 0x085D34E0 +_08180218: .4byte 0x08184C35 +_0818021C: + mov r0, r8 + bl Sin + strh r0, [r4, #0x26] + cmp r7, r6 + bne _08180232 + ldrh r0, [r4, #0x38] + adds r0, #1 + strh r0, [r4, #0x38] + movs r0, #0 + b _0818023E +_08180232: + ldrh r0, [r4, #0x2e] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x3a] + adds r0, #1 +_0818023E: + strh r0, [r4, #0x3a] +_08180240: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081801C8 + + thumb_func_start pokemonanimfunc_19 +pokemonanimfunc_19: @ 0x0818024C + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x30 + strh r0, [r4, #0x2e] + adds r0, r4, #0 + bl sub_081801C8 + ldr r0, _08180264 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08180264: .4byte 0x081801C9 + thumb_func_end pokemonanimfunc_19 + + thumb_func_start pokemonanimfunc_1A +pokemonanimfunc_1A: @ 0x08180268 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + bl sub_0817F5B8 + ldrh r0, [r4, #0x32] + lsls r7, r0, #0x18 + lsrs r5, r7, #0x18 + mov r8, r5 + cmp r0, #0 + bne _08180286 + adds r0, r4, #0 + bl HandleStartAffineAnim +_08180286: + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0x23 + ble _081802B0 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + adds r0, r4, #0 + bl sub_0817F628 + ldr r0, _081802AC + str r0, [r4, #0x1c] + movs r0, #0 + strh r0, [r4, #0x24] + b _0818030A + .align 2, 0 +_081802AC: .4byte 0x08184C35 +_081802B0: + adds r6, r5, #0 + subs r6, #0xa + lsls r0, r6, #7 + movs r1, #0x14 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r5, #9 + bhi _081802D6 + movs r2, #0x80 + lsls r2, r2, #1 + lsrs r3, r7, #0x19 + lsls r3, r3, #9 + adds r0, r4, #0 + adds r1, r2, #0 + bl HandleSetAffineData + b _0818030A +_081802D6: + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x13 + bhi _081802EE + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + movs r1, #5 + bl Sin + rsbs r0, r0, #0 + strh r0, [r4, #0x24] + b _0818030A +_081802EE: + movs r2, #0x80 + lsls r2, r2, #1 + movs r3, #0x23 + mov r0, r8 + subs r3, r3, r0 + lsrs r0, r3, #0x1f + adds r3, r3, r0 + asrs r3, r3, #1 + lsls r3, r3, #0x1a + lsrs r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r2, #0 + bl HandleSetAffineData +_0818030A: + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_1A + + thumb_func_start pokemonanimfunc_1B +pokemonanimfunc_1B: @ 0x08180320 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r1, #0x32 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _08180332 + adds r0, r6, #0 + bl HandleStartAffineAnim +_08180332: + movs r1, #0x32 + ldrsh r0, [r6, r1] + cmp r0, #0x64 + ble _0818035C + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r6, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + movs r0, #0 + strh r0, [r6, #0x26] + adds r0, r6, #0 + bl sub_0817F628 + ldr r0, _08180358 + str r0, [r6, #0x1c] + b _08180394 + .align 2, 0 +_08180358: .4byte 0x08184C35 +_0818035C: + movs r1, #0x32 + ldrsh r0, [r6, r1] + lsls r0, r0, #8 + movs r1, #0x64 + bl __divsi3 + adds r4, r0, #0 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + adds r0, r4, #0 + movs r1, #0xa + bl Sin + strh r0, [r6, #0x26] + movs r5, #0x80 + lsls r5, r5, #1 + ldr r1, _081803A0 + adds r0, r4, #0 + bl Sin + adds r3, r0, #0 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + adds r0, r6, #0 + adds r1, r5, #0 + adds r2, r5, #0 + bl HandleSetAffineData +_08180394: + ldrh r0, [r6, #0x32] + adds r0, #1 + strh r0, [r6, #0x32] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081803A0: .4byte 0x00000CCC + thumb_func_end pokemonanimfunc_1B + + thumb_func_start sub_081803A4 +sub_081803A4: @ 0x081803A4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r5, #0 + movs r1, #0x32 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _081803B8 + adds r0, r6, #0 + bl HandleStartAffineAnim +_081803B8: + movs r1, #0x32 + ldrsh r0, [r6, r1] + cmp r0, #0x64 + ble _081803E0 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r6, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + strh r5, [r6, #0x26] + adds r0, r6, #0 + bl sub_0817F628 + ldr r0, _081803DC + str r0, [r6, #0x1c] + b _0818042E + .align 2, 0 +_081803DC: .4byte 0x08184C35 +_081803E0: + movs r0, #0x32 + ldrsh r5, [r6, r0] + lsls r0, r5, #8 + movs r1, #0x64 + bl __divsi3 + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #9 + adds r0, r5, #0 + movs r1, #0x64 + bl __divsi3 + adds r5, r0, #0 + movs r0, #0xff + ands r5, r0 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + movs r0, #0x2e + ldrsh r1, [r6, r0] + adds r0, r4, #0 + bl Sin + strh r0, [r6, #0x26] + movs r4, #0x80 + lsls r4, r4, #1 + adds r0, r5, #0 + ldr r1, _0818043C + bl Sin + adds r3, r0, #0 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r4, #0 + bl HandleSetAffineData +_0818042E: + ldrh r0, [r6, #0x32] + adds r0, #1 + strh r0, [r6, #0x32] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0818043C: .4byte 0x00000CCC + thumb_func_end sub_081803A4 + + thumb_func_start pokemonanimfunc_1C +pokemonanimfunc_1C: @ 0x08180440 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0xa + strh r0, [r4, #0x2e] + adds r0, r4, #0 + bl sub_081803A4 + ldr r0, _08180458 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08180458: .4byte 0x081803A5 + thumb_func_end pokemonanimfunc_1C + + thumb_func_start sub_0818045C +sub_0818045C: @ 0x0818045C + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r5, #0 + movs r1, #0x32 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _08180470 + adds r0, r6, #0 + bl HandleStartAffineAnim +_08180470: + movs r2, #0x32 + ldrsh r0, [r6, r2] + cmp r0, #0x64 + ble _08180498 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r6, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + strh r5, [r6, #0x26] + adds r0, r6, #0 + bl sub_0817F628 + ldr r0, _08180494 + str r0, [r6, #0x1c] + b _081804F0 + .align 2, 0 +_08180494: .4byte 0x08184C35 +_08180498: + movs r0, #0x32 + ldrsh r5, [r6, r0] + lsls r0, r5, #8 + movs r1, #0x64 + bl __divsi3 + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #9 + adds r0, r5, #0 + movs r1, #0x64 + bl __divsi3 + adds r5, r0, #0 + movs r0, #0xff + ands r5, r0 + lsls r4, r4, #0x10 + asrs r0, r4, #0x10 + lsrs r4, r4, #0x1f + adds r0, r0, r4 + asrs r0, r0, #1 + movs r2, #0x2e + ldrsh r1, [r6, r2] + lsls r1, r1, #0x11 + asrs r1, r1, #0x10 + bl Sin + rsbs r0, r0, #0 + strh r0, [r6, #0x26] + movs r4, #0x80 + lsls r4, r4, #1 + adds r0, r5, #0 + ldr r1, _081804FC + bl Sin + adds r3, r0, #0 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r4, #0 + bl HandleSetAffineData +_081804F0: + ldrh r0, [r6, #0x32] + adds r0, #1 + strh r0, [r6, #0x32] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081804FC: .4byte 0x00000CCC + thumb_func_end sub_0818045C + + thumb_func_start pokemonanimfunc_18 +pokemonanimfunc_18: @ 0x08180500 + push {r4, lr} + adds r4, r0, #0 + movs r0, #5 + strh r0, [r4, #0x2e] + adds r0, r4, #0 + bl sub_0818045C + ldr r0, _08180518 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08180518: .4byte 0x0818045D + thumb_func_end pokemonanimfunc_18 + + thumb_func_start pokemonanimfunc_1D +pokemonanimfunc_1D: @ 0x0818051C + push {r4, r5, r6, lr} + adds r6, r0, #0 + bl sub_0817F5B8 + movs r5, #0 + movs r1, #0x32 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _08180534 + adds r0, r6, #0 + bl HandleStartAffineAnim +_08180534: + movs r1, #0x32 + ldrsh r0, [r6, r1] + cmp r0, #0x64 + ble _0818055C + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r6, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + strh r5, [r6, #0x24] + adds r0, r6, #0 + bl sub_0817F628 + ldr r0, _08180558 + str r0, [r6, #0x1c] + b _081805A8 + .align 2, 0 +_08180558: .4byte 0x08184C35 +_0818055C: + movs r0, #0x32 + ldrsh r5, [r6, r0] + lsls r0, r5, #8 + movs r1, #0x64 + bl __divsi3 + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #9 + adds r0, r5, #0 + movs r1, #0x64 + bl __divsi3 + adds r5, r0, #0 + movs r0, #0xff + ands r5, r0 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + adds r0, r4, #0 + movs r1, #8 + bl Sin + strh r0, [r6, #0x24] + movs r4, #0x80 + lsls r4, r4, #1 + adds r0, r5, #0 + ldr r1, _081805BC + bl Sin + adds r3, r0, #0 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r4, #0 + bl HandleSetAffineData +_081805A8: + ldrh r0, [r6, #0x32] + adds r0, #1 + strh r0, [r6, #0x32] + adds r0, r6, #0 + bl sub_0817F5B8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081805BC: .4byte 0x00000CCC + thumb_func_end pokemonanimfunc_1D + + thumb_func_start sub_081805C0 +sub_081805C0: @ 0x081805C0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r6, #0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _081805D6 + adds r0, r4, #0 + bl HandleStartAffineAnim + strh r6, [r4, #0x34] +_081805D6: + adds r0, r4, #0 + bl sub_0817F5B8 + movs r0, #0x32 + ldrsh r2, [r4, r0] + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #1 + adds r0, r0, r1 + cmp r2, r0 + ble _0818060C + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + strh r6, [r4, #0x26] + adds r0, r4, #0 + bl sub_0817F628 + ldr r0, _08180608 + str r0, [r4, #0x1c] + b _081806AA + .align 2, 0 +_08180608: .4byte 0x08184C35 +_0818060C: + movs r1, #0x36 + ldrsh r0, [r4, r1] + movs r1, #0x20 + bl Sin + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r1, r0 + ble _08180642 + adds r2, r0, #0 + lsls r0, r2, #1 + cmp r1, r0 + bge _08180642 + movs r0, #0x80 + adds r1, r2, #0 + bl __divsi3 + ldrh r1, [r4, #0x34] + adds r1, r1, r0 + strh r1, [r4, #0x34] +_08180642: + lsls r0, r5, #0x10 + asrs r1, r0, #0x10 + movs r2, #0x80 + lsls r2, r2, #1 + adds r5, r0, #0 + cmp r1, r2 + ble _0818065C + subs r0, r2, r1 + cmp r0, #0 + bge _08180658 + adds r0, #7 +_08180658: + lsls r0, r0, #0xd + lsrs r6, r0, #0x10 +_0818065C: + movs r1, #0x34 + ldrsh r0, [r4, r1] + movs r1, #0xa + bl Sin + rsbs r0, r0, #0 + lsls r1, r6, #0x10 + asrs r1, r1, #0x10 + subs r0, r0, r1 + strh r0, [r4, #0x26] + movs r2, #0x36 + ldrsh r0, [r4, r2] + movs r1, #0x20 + bl Sin + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + subs r1, r1, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + asrs r2, r5, #0x10 + adds r0, r4, #0 + movs r3, #0 + bl HandleSetAffineData + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r0, #0x80 + bl __divsi3 + ldrh r1, [r4, #0x36] + adds r1, r1, r0 + movs r0, #0xff + ands r1, r0 + strh r1, [r4, #0x36] +_081806AA: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081805C0 + + thumb_func_start pokemonanimfunc_00 +pokemonanimfunc_00: @ 0x081806B8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x10 + strh r0, [r4, #0x2e] + adds r0, r4, #0 + bl sub_081805C0 + ldr r0, _081806D0 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081806D0: .4byte 0x081805C1 + thumb_func_end pokemonanimfunc_00 + + thumb_func_start sub_081806D4 +sub_081806D4: @ 0x081806D4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r6, #0 + movs r0, #0x32 + ldrsh r4, [r5, r0] + movs r2, #0x3a + ldrsh r1, [r5, r2] + movs r0, #0x80 + bl __divsi3 + movs r2, #0x3c + ldrsh r1, [r5, r2] + muls r0, r1, r0 + cmp r4, r0 + ble _08180714 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r5, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + strh r6, [r5, #0x26] + adds r0, r5, #0 + bl sub_0817F628 + ldr r0, _08180710 + str r0, [r5, #0x1c] + b _0818077C + .align 2, 0 +_08180710: .4byte 0x08184C35 +_08180714: + movs r1, #0x36 + ldrsh r0, [r5, r1] + movs r1, #0x20 + bl Sin + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + asrs r0, r0, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r0, r1 + ble _08180740 + subs r0, r1, r0 + cmp r0, #0 + bge _0818073C + adds r0, #7 +_0818073C: + lsls r0, r0, #0xd + lsrs r6, r0, #0x10 +_08180740: + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + rsbs r0, r0, #0 + strh r0, [r5, #0x26] + movs r1, #0x36 + ldrsh r0, [r5, r1] + movs r1, #0x30 + bl Sin + adds r1, r0, #0 + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + lsls r2, r4, #0x10 + asrs r2, r2, #0x10 + adds r0, r5, #0 + movs r3, #0 + bl HandleSetAffineData + ldrh r0, [r5, #0x32] + adds r0, #1 + strh r0, [r5, #0x32] + ldrh r0, [r5, #0x3a] + ldrh r1, [r5, #0x36] + adds r0, r0, r1 + movs r1, #0xff + ands r0, r1 + strh r0, [r5, #0x36] +_0818077C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081806D4 + + thumb_func_start pokemonanimfunc_13 +pokemonanimfunc_13: @ 0x08180784 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0818079E + adds r0, r4, #0 + bl HandleStartAffineAnim + movs r0, #3 + strh r0, [r4, #0x3c] + movs r0, #8 + strh r0, [r4, #0x3a] +_0818079E: + adds r0, r4, #0 + bl sub_081806D4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_13 + + thumb_func_start sub_081807AC +sub_081807AC: @ 0x081807AC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r4, r0, #0 + bl sub_0817F5B8 + ldrh r1, [r4, #0x2e] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _08180850 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #6] + str r1, [sp] + ldr r5, _08180854 + movs r3, #0x36 + ldrsh r2, [r4, r3] + lsls r1, r2, #1 + adds r1, r1, r2 + movs r3, #8 + ldrsh r2, [r0, r3] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r6, r0, #3 + adds r1, r1, r6 + adds r2, r1, r5 + adds r0, r5, #1 + adds r1, r1, r0 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + mov sb, r2 + subs r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 + ldrh r7, [r4, #0x34] + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08180818 + adds r0, r4, #0 + bl HandleStartAffineAnim + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] +_08180818: + movs r2, #0x36 + ldrsh r1, [r4, r2] + lsls r0, r1, #1 + adds r0, r0, r1 + adds r0, r0, r6 + adds r5, #2 + mov r8, r5 + adds r1, r0, r5 + movs r5, #0 + ldrsb r5, [r1, r5] + cmp r5, #0 + bne _0818085C + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + strh r5, [r4, #0x24] + strh r5, [r4, #0x26] + adds r0, r4, #0 + bl sub_0817F628 + ldr r0, _08180858 + str r0, [r4, #0x1c] + b _081808E6 + .align 2, 0 +_08180850: .4byte 0x03001240 +_08180854: .4byte 0x085D37EE +_08180858: .4byte 0x08184C35 +_0818085C: + lsls r0, r7, #0x10 + asrs r5, r0, #0x10 + lsls r0, r5, #7 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + bl __divsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0xa + bl Sin + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + mov r3, sl + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + muls r0, r5, r0 + movs r1, #0x36 + ldrsh r2, [r4, r1] + lsls r1, r2, #1 + adds r1, r1, r2 + adds r1, r1, r6 + add r1, r8 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + bl __divsi3 + add r0, sb + strh r0, [r4, #0x24] + ldr r2, [sp] + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + movs r3, #0x24 + ldrsh r1, [r4, r3] + muls r0, r1, r0 + rsbs r0, r0, #0 + cmp r0, #0 + bge _081808B0 + adds r0, #7 +_081808B0: + lsls r3, r0, #0xd + lsrs r3, r3, #0x10 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + bl HandleSetAffineData + movs r0, #0x36 + ldrsh r1, [r4, r0] + lsls r0, r1, #1 + adds r0, r0, r1 + adds r0, r0, r6 + add r0, r8 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r5, r0 + bne _081808E0 + ldrh r0, [r4, #0x36] + adds r0, #1 + strh r0, [r4, #0x36] + movs r0, #0 + b _081808E4 +_081808E0: + ldrh r0, [r4, #0x34] + adds r0, #1 +_081808E4: + strh r0, [r4, #0x34] +_081808E6: + adds r0, r4, #0 + bl sub_0817F5B8 + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_081807AC + + thumb_func_start pokemonanimfunc_05 +pokemonanimfunc_05: @ 0x081808FC + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F604 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x2e] + ldr r2, _08180930 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r1, #6] + ldrh r0, [r4, #0x3a] + strh r0, [r1, #8] + adds r0, r4, #0 + bl sub_081807AC + ldr r0, _08180934 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08180930: .4byte 0x03001240 +_08180934: .4byte 0x081807AD + thumb_func_end pokemonanimfunc_05 + + thumb_func_start pokemonanimfunc_20 +pokemonanimfunc_20: @ 0x08180938 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08180954 + ldrb r0, [r4, #5] + lsrs r0, r0, #4 + lsls r0, r0, #4 + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + adds r0, r0, r1 + strh r0, [r4, #0x3c] +_08180954: + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0x80 + ble _08180978 + ldrh r0, [r4, #0x3c] + ldr r3, _08180970 + movs r1, #0x10 + movs r2, #0 + bl BlendPalette + ldr r0, _08180974 + str r0, [r4, #0x1c] + b _08180994 + .align 2, 0 +_08180970: .4byte 0x000002DF +_08180974: .4byte 0x08184C35 +_08180978: + movs r2, #0x32 + ldrsh r0, [r4, r2] + movs r1, #0xc + bl Sin + adds r2, r0, #0 + strh r2, [r4, #0x3a] + ldrh r0, [r4, #0x3c] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r3, _081809A0 + movs r1, #0x10 + bl BlendPalette +_08180994: + ldrh r0, [r4, #0x32] + adds r0, #2 + strh r0, [r4, #0x32] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081809A0: .4byte 0x000002DF + thumb_func_end pokemonanimfunc_20 + + thumb_func_start pokemonanimfunc_21 +pokemonanimfunc_21: @ 0x081809A4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _081809C0 + ldrb r0, [r4, #5] + lsrs r0, r0, #4 + lsls r0, r0, #4 + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + adds r0, r0, r1 + strh r0, [r4, #0x3c] +_081809C0: + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0x80 + ble _081809E0 + ldrh r0, [r4, #0x3c] + movs r1, #0x10 + movs r2, #0 + movs r3, #0x1f + bl BlendPalette + ldr r0, _081809DC + str r0, [r4, #0x1c] + b _081809FC + .align 2, 0 +_081809DC: .4byte 0x08184C35 +_081809E0: + movs r2, #0x32 + ldrsh r0, [r4, r2] + movs r1, #0xc + bl Sin + adds r2, r0, #0 + strh r2, [r4, #0x3a] + ldrh r0, [r4, #0x3c] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r1, #0x10 + movs r3, #0x1f + bl BlendPalette +_081809FC: + ldrh r0, [r4, #0x32] + adds r0, #2 + strh r0, [r4, #0x32] + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_21 + + thumb_func_start pokemonanimfunc_22 +pokemonanimfunc_22: @ 0x08180A08 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08180A24 + ldrb r0, [r4, #5] + lsrs r0, r0, #4 + lsls r0, r0, #4 + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + adds r0, r0, r1 + strh r0, [r4, #0x3c] +_08180A24: + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0x80 + ble _08180A44 + ldrh r0, [r4, #0x3c] + movs r3, #0xf8 + lsls r3, r3, #7 + movs r1, #0x10 + movs r2, #0 + bl BlendPalette + ldr r0, _08180A40 + str r0, [r4, #0x1c] + b _08180A62 + .align 2, 0 +_08180A40: .4byte 0x08184C35 +_08180A44: + movs r2, #0x32 + ldrsh r0, [r4, r2] + movs r1, #0xc + bl Sin + adds r2, r0, #0 + strh r2, [r4, #0x3a] + ldrh r0, [r4, #0x3c] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r3, #0xf8 + lsls r3, r3, #7 + movs r1, #0x10 + bl BlendPalette +_08180A62: + ldrh r0, [r4, #0x32] + adds r0, #2 + strh r0, [r4, #0x32] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_22 + + thumb_func_start pokemonanimfunc_23 +pokemonanimfunc_23: @ 0x08180A70 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08180A8C + ldrb r0, [r4, #5] + lsrs r0, r0, #4 + lsls r0, r0, #4 + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + adds r0, r0, r1 + strh r0, [r4, #0x3c] +_08180A8C: + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0x80 + ble _08180AB0 + ldrh r0, [r4, #0x3c] + ldr r3, _08180AA8 + movs r1, #0x10 + movs r2, #0 + bl BlendPalette + ldr r0, _08180AAC + str r0, [r4, #0x1c] + b _08180ACC + .align 2, 0 +_08180AA8: .4byte 0x000003FF +_08180AAC: .4byte 0x08184C35 +_08180AB0: + movs r2, #0x32 + ldrsh r0, [r4, r2] + movs r1, #0xc + bl Sin + adds r2, r0, #0 + strh r2, [r4, #0x3a] + ldrh r0, [r4, #0x3c] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r3, _08180AD8 + movs r1, #0x10 + bl BlendPalette +_08180ACC: + ldrh r0, [r4, #0x32] + adds r0, #2 + strh r0, [r4, #0x32] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08180AD8: .4byte 0x000003FF + thumb_func_end pokemonanimfunc_23 + + thumb_func_start pokemonanimfunc_24 +pokemonanimfunc_24: @ 0x08180ADC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08180AF8 + ldrb r0, [r4, #5] + lsrs r0, r0, #4 + lsls r0, r0, #4 + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + adds r0, r0, r1 + strh r0, [r4, #0x3c] +_08180AF8: + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0x80 + ble _08180B1C + ldrh r0, [r4, #0x3c] + ldr r3, _08180B14 + movs r1, #0x10 + movs r2, #0 + bl BlendPalette + ldr r0, _08180B18 + str r0, [r4, #0x1c] + b _08180B38 + .align 2, 0 +_08180B14: .4byte 0x00006018 +_08180B18: .4byte 0x08184C35 +_08180B1C: + movs r2, #0x32 + ldrsh r0, [r4, r2] + movs r1, #0xc + bl Sin + adds r2, r0, #0 + strh r2, [r4, #0x3a] + ldrh r0, [r4, #0x3c] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r3, _08180B44 + movs r1, #0x10 + bl BlendPalette +_08180B38: + ldrh r0, [r4, #0x32] + adds r0, #2 + strh r0, [r4, #0x32] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08180B44: .4byte 0x00006018 + thumb_func_end pokemonanimfunc_24 + + thumb_func_start pokemonanimfunc_25 +pokemonanimfunc_25: @ 0x08180B48 + push {r4, lr} + adds r4, r0, #0 + bl HandleStartAffineAnim + ldr r0, _08180B5C + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08180B5C: .4byte 0x08180B61 + thumb_func_end pokemonanimfunc_25 + + thumb_func_start sub_08180B60 +sub_08180B60: @ 0x08180B60 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + ldrh r0, [r4, #0x24] + adds r0, #1 + strh r0, [r4, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + ble _08180B82 + movs r0, #8 + strh r0, [r4, #0x24] + movs r0, #2 + strh r0, [r4, #0x3c] + ldr r0, _08180B90 + str r0, [r4, #0x1c] +_08180B82: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08180B90: .4byte 0x08180B95 + thumb_func_end sub_08180B60 + + thumb_func_start sub_08180B94 +sub_08180B94: @ 0x08180B94 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + ldrh r1, [r4, #0x24] + ldrh r0, [r4, #0x3c] + subs r1, r1, r0 + strh r1, [r4, #0x24] + adds r0, #1 + adds r2, r0, #0 + strh r0, [r4, #0x3c] + lsls r1, r1, #0x10 + cmp r1, #0 + bgt _08180BDE + lsls r0, r2, #0x18 + lsrs r2, r0, #0x18 + movs r0, #0 + strh r0, [r4, #0x3a] + ldrh r1, [r4, #0x24] + ldr r5, _08180BEC + movs r3, #8 + rsbs r3, r3, #0 +_08180BC0: + subs r0, r1, r2 + lsls r0, r0, #0x10 + ldrh r1, [r4, #0x3a] + adds r1, #1 + strh r1, [r4, #0x3a] + adds r1, r2, #1 + lsls r1, r1, #0x18 + lsrs r2, r1, #0x18 + lsrs r1, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, r3 + bgt _08180BC0 + movs r0, #1 + strh r0, [r4, #0x38] + str r5, [r4, #0x1c] +_08180BDE: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08180BEC: .4byte 0x08180BF1 + thumb_func_end sub_08180B94 + + thumb_func_start sub_08180BF0 +sub_08180BF0: @ 0x08180BF0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + ldrh r0, [r4, #0x24] + ldrh r1, [r4, #0x3c] + subs r0, r0, r1 + strh r0, [r4, #0x24] + adds r1, #1 + strh r1, [r4, #0x3c] + movs r0, #0x38 + ldrsh r1, [r4, r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + movs r2, #0x3a + ldrsh r1, [r4, r2] + bl __divsi3 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldrh r0, [r4, #0x38] + adds r0, #1 + strh r0, [r4, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrh r2, [r4, #0x3a] + movs r3, #0x3a + ldrsh r1, [r4, r3] + cmp r0, r1 + ble _08180C30 + strh r2, [r4, #0x38] +_08180C30: + movs r2, #0x80 + lsls r2, r2, #1 + lsls r3, r5, #8 + adds r0, r4, #0 + adds r1, r2, #0 + bl HandleSetAffineData + movs r1, #0x24 + ldrsh r0, [r4, r1] + movs r1, #8 + rsbs r1, r1, #0 + cmp r0, r1 + bge _08180C5A + strh r1, [r4, #0x24] + movs r0, #2 + strh r0, [r4, #0x36] + movs r0, #0 + strh r0, [r4, #0x34] + strh r5, [r4, #0x32] + ldr r0, _08180C68 + str r0, [r4, #0x1c] +_08180C5A: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08180C68: .4byte 0x08180C6D + thumb_func_end sub_08180BF0 + + thumb_func_start sub_08180C6C +sub_08180C6C: @ 0x08180C6C + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + ldrh r1, [r4, #0x34] + movs r2, #0x34 + ldrsh r0, [r4, r2] + cmp r0, #0xb + ble _08180CB4 + ldrh r0, [r4, #0x32] + subs r0, #2 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _08180C8E + movs r0, #0 + strh r0, [r4, #0x32] +_08180C8E: + movs r2, #0x80 + lsls r2, r2, #1 + ldrh r3, [r4, #0x32] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r2, #0 + bl HandleSetAffineData + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08180CC8 + ldr r0, _08180CB0 + str r0, [r4, #0x1c] + b _08180CC8 + .align 2, 0 +_08180CB0: .4byte 0x08180CD5 +_08180CB4: + ldrh r0, [r4, #0x36] + ldrh r2, [r4, #0x24] + adds r0, r0, r2 + strh r0, [r4, #0x24] + movs r2, #0x36 + ldrsh r0, [r4, r2] + rsbs r0, r0, #0 + strh r0, [r4, #0x36] + adds r0, r1, #1 + strh r0, [r4, #0x34] +_08180CC8: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08180C6C + + thumb_func_start sub_08180CD4 +sub_08180CD4: @ 0x08180CD4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + ldrh r0, [r4, #0x24] + adds r0, #2 + strh r0, [r4, #0x24] + lsls r0, r0, #0x10 + cmp r0, #0 + ble _08180CF6 + movs r0, #0 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0817F628 + ldr r0, _08180D04 + str r0, [r4, #0x1c] +_08180CF6: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08180D04: .4byte 0x08184C35 + thumb_func_end sub_08180CD4 + + thumb_func_start pokemonanimfunc_26 +pokemonanimfunc_26: @ 0x08180D08 + push {r4, lr} + adds r4, r0, #0 + bl HandleStartAffineAnim + movs r0, #0 + strh r0, [r4, #0x34] + ldr r0, _08180D20 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08180D20: .4byte 0x08180D25 + thumb_func_end pokemonanimfunc_26 + + thumb_func_start sub_08180D24 +sub_08180D24: @ 0x08180D24 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + ldrh r0, [r4, #0x24] + adds r0, #1 + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x26] + subs r0, #1 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x24] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08180D4E + movs r1, #0x34 + ldrsh r0, [r4, r1] + cmp r0, #0 + bgt _08180D4E + movs r0, #0xa + strh r0, [r4, #0x34] +_08180D4E: + movs r1, #0x24 + ldrsh r0, [r4, r1] + cmp r0, #7 + ble _08180D66 + movs r1, #0 + movs r0, #8 + strh r0, [r4, #0x24] + ldr r0, _08180D74 + strh r0, [r4, #0x26] + strh r1, [r4, #0x36] + ldr r0, _08180D78 + str r0, [r4, #0x1c] +_08180D66: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08180D74: .4byte 0x0000FFF8 +_08180D78: .4byte 0x08180D7D + thumb_func_end sub_08180D24 + + thumb_func_start sub_08180D7C +sub_08180D7C: @ 0x08180D7C + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + movs r1, #0x36 + ldrsh r0, [r4, r1] + movs r1, #0x10 + bl Cos + subs r0, #8 + strh r0, [r4, #0x24] + movs r1, #0x36 + ldrsh r0, [r4, r1] + movs r1, #0x10 + bl Sin + subs r0, #8 + strh r0, [r4, #0x26] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0x3f + ble _08180DB4 + movs r0, #0xa0 + strh r0, [r4, #0x32] + movs r0, #0xa + strh r0, [r4, #0x34] + ldr r0, _08180DD4 + str r0, [r4, #0x1c] +_08180DB4: + ldrh r0, [r4, #0x36] + adds r0, #8 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x40 + ble _08180DC6 + movs r0, #0x40 + strh r0, [r4, #0x36] +_08180DC6: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08180DD4: .4byte 0x08180DD9 + thumb_func_end sub_08180D7C + + thumb_func_start sub_08180DD8 +sub_08180DD8: @ 0x08180DD8 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + ldrh r1, [r4, #0x34] + movs r2, #0x34 + ldrsh r0, [r4, r2] + cmp r0, #0 + ble _08180DF0 + subs r0, r1, #1 + strh r0, [r4, #0x34] + b _08180E42 +_08180DF0: + movs r1, #0x32 + ldrsh r0, [r4, r1] + movs r1, #5 + bl Cos + subs r0, #4 + movs r5, #0 + strh r0, [r4, #0x24] + movs r2, #0x32 + ldrsh r0, [r4, r2] + movs r1, #5 + bl Sin + rsbs r0, r0, #0 + adds r0, #4 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x32] + subs r0, #4 + strh r0, [r4, #0x32] + movs r0, #0x32 + ldrsh r3, [r4, r0] + subs r3, #0x20 + movs r2, #0x80 + lsls r2, r2, #1 + lsls r3, r3, #0x19 + lsrs r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r2, #0 + bl HandleSetAffineData + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0x20 + bgt _08180E42 + strh r5, [r4, #0x24] + strh r5, [r4, #0x26] + adds r0, r4, #0 + bl sub_0817F628 + ldr r0, _08180E50 + str r0, [r4, #0x1c] +_08180E42: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08180E50: .4byte 0x08184C35 + thumb_func_end sub_08180DD8 + + thumb_func_start pokemonanimfunc_27 +pokemonanimfunc_27: @ 0x08180E54 + push {r4, lr} + adds r3, r0, #0 + ldrh r1, [r3, #0x34] + movs r2, #0x34 + ldrsh r0, [r3, r2] + cmp r0, #0 + ble _08180E66 + subs r0, r1, #1 + b _08180EAA +_08180E66: + movs r2, #0 + movs r1, #0x36 + ldrsh r0, [r3, r1] + cmp r0, #0 + bne _08180E72 + movs r2, #1 +_08180E72: + strh r2, [r3, #0x36] + movs r0, #0x3e + adds r0, r0, r3 + mov ip, r0 + lsls r2, r2, #2 + ldrb r1, [r0] + movs r4, #5 + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r1 + orrs r0, r2 + mov r1, ip + strb r0, [r1] + ldrh r0, [r3, #0x32] + adds r0, #1 + strh r0, [r3, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x13 + ble _08180EA8 + ldrb r0, [r1] + adds r1, r4, #0 + ands r1, r0 + mov r2, ip + strb r1, [r2] + ldr r0, _08180EB4 + str r0, [r3, #0x1c] +_08180EA8: + movs r0, #2 +_08180EAA: + strh r0, [r3, #0x34] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08180EB4: .4byte 0x08184C35 + thumb_func_end pokemonanimfunc_27 + + thumb_func_start pokemonanimfunc_28 +pokemonanimfunc_28: @ 0x08180EB8 + push {r4, lr} + adds r4, r0, #0 + bl HandleStartAffineAnim + ldr r0, _08180ECC + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08180ECC: .4byte 0x08180ED1 + thumb_func_end pokemonanimfunc_28 + + thumb_func_start sub_08180ED0 +sub_08180ED0: @ 0x08180ED0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + ldrh r0, [r4, #0x24] + subs r0, #1 + strh r0, [r4, #0x24] + ldrh r1, [r4, #0x26] + adds r1, #1 + strh r1, [r4, #0x26] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x10 + rsbs r1, r1, #0 + cmp r0, r1 + bgt _08180F00 + ldr r0, _08180F0C + strh r0, [r4, #0x24] + movs r0, #0x10 + strh r0, [r4, #0x26] + ldr r0, _08180F10 + str r0, [r4, #0x1c] + movs r0, #0xa0 + strh r0, [r4, #0x32] +_08180F00: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08180F0C: .4byte 0x0000FFF0 +_08180F10: .4byte 0x08180F15 + thumb_func_end sub_08180ED0 + + thumb_func_start sub_08180F14 +sub_08180F14: @ 0x08180F14 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + ldrh r0, [r4, #0x32] + subs r0, #4 + strh r0, [r4, #0x32] + movs r1, #0x32 + ldrsh r0, [r4, r1] + movs r1, #0x16 + bl Cos + strh r0, [r4, #0x24] + movs r1, #0x32 + ldrsh r0, [r4, r1] + movs r1, #0x16 + bl Sin + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + movs r0, #0x32 + ldrsh r3, [r4, r0] + subs r3, #0x20 + movs r2, #0x80 + lsls r2, r2, #1 + lsls r3, r3, #0x19 + lsrs r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r2, #0 + bl HandleSetAffineData + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0x20 + bgt _08180F5E + ldr r0, _08180F6C + str r0, [r4, #0x1c] +_08180F5E: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08180F6C: .4byte 0x08180F71 + thumb_func_end sub_08180F14 + + thumb_func_start sub_08180F70 +sub_08180F70: @ 0x08180F70 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + ldrh r1, [r4, #0x24] + subs r1, #1 + strh r1, [r4, #0x24] + ldrh r0, [r4, #0x26] + adds r0, #1 + strh r0, [r4, #0x26] + lsls r1, r1, #0x10 + cmp r1, #0 + bgt _08180F94 + adds r0, r4, #0 + bl sub_0817F628 + ldr r0, _08180FA0 + str r0, [r4, #0x1c] +_08180F94: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08180FA0: .4byte 0x08184C35 + thumb_func_end sub_08180F70 + + thumb_func_start pokemonanimfunc_29 +pokemonanimfunc_29: @ 0x08180FA4 + push {r4, lr} + adds r4, r0, #0 + bl HandleStartAffineAnim + ldr r0, _08180FB8 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08180FB8: .4byte 0x08180FBD + thumb_func_end pokemonanimfunc_29 + + thumb_func_start sub_08180FBC +sub_08180FBC: @ 0x08180FBC + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + ldrh r1, [r4, #0x24] + adds r1, #1 + strh r1, [r4, #0x24] + ldrh r0, [r4, #0x26] + subs r0, #1 + strh r0, [r4, #0x26] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #0xf + ble _08180FE0 + movs r0, #0 + strh r0, [r4, #0x32] + ldr r0, _08180FEC + str r0, [r4, #0x1c] +_08180FE0: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08180FEC: .4byte 0x08180FF1 + thumb_func_end sub_08180FBC + + thumb_func_start sub_08180FF0 +sub_08180FF0: @ 0x08180FF0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + ldrh r0, [r4, #0x32] + adds r0, #0x10 + strh r0, [r4, #0x32] + ldrh r2, [r4, #0x24] + movs r0, #0x24 + ldrsh r1, [r4, r0] + movs r0, #0x10 + rsbs r0, r0, #0 + cmp r1, r0 + bgt _08181028 + ldr r0, _08181020 + strh r0, [r4, #0x24] + movs r0, #0x10 + strh r0, [r4, #0x26] + movs r0, #0 + strh r0, [r4, #0x32] + ldr r0, _08181024 + str r0, [r4, #0x1c] + b _08181032 + .align 2, 0 +_08181020: .4byte 0x0000FFF0 +_08181024: .4byte 0x08181051 +_08181028: + subs r0, r2, #2 + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x26] + adds r0, #2 + strh r0, [r4, #0x26] +_08181032: + movs r2, #0x80 + lsls r2, r2, #1 + ldrh r3, [r4, #0x32] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r2, #0 + bl HandleSetAffineData + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08180FF0 + + thumb_func_start sub_08181050 +sub_08181050: @ 0x08181050 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + ldrh r1, [r4, #0x24] + adds r1, #1 + movs r2, #0 + strh r1, [r4, #0x24] + ldrh r0, [r4, #0x26] + subs r0, #1 + strh r0, [r4, #0x26] + lsls r1, r1, #0x10 + cmp r1, #0 + blt _0818107A + strh r2, [r4, #0x24] + strh r2, [r4, #0x26] + adds r0, r4, #0 + bl sub_0817F628 + ldr r0, _08181088 + str r0, [r4, #0x1c] +_0818107A: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08181088: .4byte 0x08184C35 + thumb_func_end sub_08181050 + + thumb_func_start pokemonanimfunc_2A +pokemonanimfunc_2A: @ 0x0818108C + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F604 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x2e] + ldr r2, _081810B8 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #2 + strh r0, [r1, #2] + adds r0, r4, #0 + bl sub_081810C0 + ldr r0, _081810BC + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081810B8: .4byte 0x03001240 +_081810BC: .4byte 0x081810C1 + thumb_func_end pokemonanimfunc_2A + + thumb_func_start sub_081810C0 +sub_081810C0: @ 0x081810C0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r6, _081810E0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r6 + ldrh r0, [r1] + cmp r0, #0 + beq _081810E4 + subs r0, #1 + strh r0, [r1] + b _081811F6 + .align 2, 0 +_081810E0: .4byte 0x03001240 +_081810E4: + adds r0, r4, #0 + bl sub_0817F5B8 + ldrh r0, [r4, #0x32] + movs r1, #0x32 + ldrsh r5, [r4, r1] + cmp r5, #0 + bne _0818111C + adds r0, #1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl HandleStartAffineAnim + movs r2, #0x2e + ldrsh r1, [r4, r2] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrh r0, [r0, #2] + strh r0, [r4, #0x3c] + ldr r0, _08181160 + strh r0, [r4, #0x34] + movs r0, #1 + rsbs r0, r0, #0 + strh r0, [r4, #0x36] + strh r5, [r4, #0x38] + strh r5, [r4, #0x3a] +_0818111C: + movs r3, #0x3c + ldrsh r1, [r4, r3] + movs r6, #0x34 + ldrsh r0, [r4, r6] + lsls r0, r0, #1 + muls r1, r0, r1 + ldrh r0, [r4, #0x24] + adds r1, r1, r0 + strh r1, [r4, #0x24] + ldrh r2, [r4, #0x3c] + ldrh r0, [r4, #0x36] + adds r3, r0, #0 + muls r3, r2, r3 + adds r0, r3, #0 + ldrh r6, [r4, #0x26] + adds r2, r0, r6 + strh r2, [r4, #0x26] + ldrh r0, [r4, #0x3a] + adds r0, #8 + strh r0, [r4, #0x3a] + adds r1, #0xf + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + cmp r1, #0x1e + bls _08181164 + movs r1, #0x34 + ldrsh r0, [r4, r1] + lsls r0, r0, #4 + strh r0, [r4, #0x24] + movs r2, #0x34 + ldrsh r0, [r4, r2] + rsbs r0, r0, #0 + strh r0, [r4, #0x34] + b _08181180 + .align 2, 0 +_08181160: .4byte 0x0000FFFF +_08181164: + adds r0, r2, #0 + adds r0, #0xf + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x1e + bls _08181186 + movs r3, #0x36 + ldrsh r0, [r4, r3] + lsls r0, r0, #4 + strh r0, [r4, #0x26] + movs r6, #0x36 + ldrsh r0, [r4, r6] + rsbs r0, r0, #0 + strh r0, [r4, #0x36] +_08181180: + ldrh r0, [r4, #0x38] + adds r0, #1 + strh r0, [r4, #0x38] +_08181186: + movs r1, #0x38 + ldrsh r0, [r4, r1] + cmp r0, #5 + ble _081811DE + movs r2, #0x24 + ldrsh r0, [r4, r2] + cmp r0, #0 + bgt _081811DE + movs r3, #0 + strh r3, [r4, #0x24] + strh r3, [r4, #0x26] + ldr r5, _081811D0 + movs r6, #0x2e + ldrsh r0, [r4, r6] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrh r2, [r1, #4] + movs r6, #4 + ldrsh r0, [r1, r6] + cmp r0, #1 + ble _081811D4 + subs r0, r2, #1 + strh r0, [r1, #4] + strh r3, [r4, #0x38] + strh r3, [r4, #0x3a] + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0xa + strh r1, [r0] + b _081811DE + .align 2, 0 +_081811D0: .4byte 0x03001240 +_081811D4: + adds r0, r4, #0 + bl sub_0817F628 + ldr r0, _081811FC + str r0, [r4, #0x1c] +_081811DE: + movs r2, #0x80 + lsls r2, r2, #1 + ldrh r3, [r4, #0x3a] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r2, #0 + bl HandleSetAffineData + adds r0, r4, #0 + bl sub_0817F5B8 +_081811F6: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081811FC: .4byte 0x08184C35 + thumb_func_end sub_081810C0 + + thumb_func_start pokemonanimfunc_2B +pokemonanimfunc_2B: @ 0x08181200 + push {r4, lr} + adds r4, r0, #0 + bl HandleStartAffineAnim + movs r0, #0 + strh r0, [r4, #0x3a] + strh r0, [r4, #0x3c] + ldr r0, _08181218 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08181218: .4byte 0x0818121D + thumb_func_end pokemonanimfunc_2B + + thumb_func_start sub_0818121C +sub_0818121C: @ 0x0818121C + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + ldrh r0, [r4, #0x3a] + adds r0, #4 + strh r0, [r4, #0x3a] + movs r1, #0x3a + ldrsh r0, [r4, r1] + movs r1, #0x10 + bl Sin + rsbs r0, r0, #0 + strh r0, [r4, #0x24] + movs r1, #0x3a + ldrsh r0, [r4, r1] + lsls r0, r0, #1 + movs r1, #0xff + ands r0, r1 + movs r1, #8 + bl Sin + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + movs r1, #0x3a + ldrsh r0, [r4, r1] + cmp r0, #0xc0 + ble _08181266 + movs r1, #0x3c + ldrsh r0, [r4, r1] + cmp r0, #1 + bne _08181266 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + b _0818127E +_08181266: + movs r1, #0x3a + ldrsh r0, [r4, r1] + cmp r0, #0x40 + ble _0818128A + movs r1, #0x3c + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0818128A + ldr r1, _081812BC + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 +_0818127E: + movs r3, #0 + bl HandleSetAffineData + ldrh r0, [r4, #0x3c] + adds r0, #1 + strh r0, [r4, #0x3c] +_0818128A: + movs r1, #0x3a + ldrsh r0, [r4, r1] + cmp r0, #0xff + ble _081812B0 + movs r0, #0 + strh r0, [r4, #0x24] + strh r0, [r4, #0x26] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + adds r0, r4, #0 + bl sub_0817F628 + ldr r0, _081812C0 + str r0, [r4, #0x1c] +_081812B0: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081812BC: .4byte 0xFFFFFF00 +_081812C0: .4byte 0x08184C35 + thumb_func_end sub_0818121C + + thumb_func_start pokemonanimfunc_2C +pokemonanimfunc_2C: @ 0x081812C4 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x32] + adds r0, #1 + movs r2, #0 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + bne _081812EE + ldrb r0, [r4, #5] + lsrs r0, r0, #4 + lsls r0, r0, #4 + movs r3, #0x80 + lsls r3, r3, #1 + adds r1, r3, #0 + adds r0, r0, r1 + strh r0, [r4, #0x3c] + strh r2, [r4, #0x3a] + strh r2, [r4, #0x38] + strh r2, [r4, #0x36] +_081812EE: + ldr r1, _08181308 + movs r2, #0x3a + ldrsh r0, [r4, r2] + lsls r2, r0, #1 + adds r0, r1, #1 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, #0xff + bne _08181310 + ldr r0, _0818130C + str r0, [r4, #0x1c] + b _0818137A + .align 2, 0 +_08181308: .4byte 0x085D34C4 +_0818130C: .4byte 0x08184C35 +_08181310: + movs r3, #0x36 + ldrsh r0, [r4, r3] + cmp r0, #1 + bne _08181346 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _08181334 + ldrh r0, [r4, #0x3c] + ldr r3, _08181330 + movs r1, #0x10 + movs r2, #0x10 + bl BlendPalette + b _08181340 + .align 2, 0 +_08181330: .4byte 0x000003FF +_08181334: + ldrh r0, [r4, #0x3c] + ldr r3, _0818136C + movs r1, #0x10 + movs r2, #0 + bl BlendPalette +_08181340: + movs r0, #0 + strh r0, [r4, #0x36] + ldr r1, _08181370 +_08181346: + movs r2, #0x3a + ldrsh r0, [r4, r2] + lsls r0, r0, #1 + adds r1, #1 + adds r0, r0, r1 + ldrb r1, [r0] + movs r3, #0x38 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _08181374 + movs r1, #0 + movs r0, #1 + strh r0, [r4, #0x36] + strh r1, [r4, #0x38] + ldrh r0, [r4, #0x3a] + adds r0, #1 + strh r0, [r4, #0x3a] + b _0818137A + .align 2, 0 +_0818136C: .4byte 0x000003FF +_08181370: .4byte 0x085D34C4 +_08181374: + ldrh r0, [r4, #0x38] + adds r0, #1 + strh r0, [r4, #0x38] +_0818137A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_2C + + thumb_func_start sub_08181380 +sub_08181380: @ 0x08181380 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r1, #0x32 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _08181392 + adds r0, r6, #0 + bl HandleStartAffineAnim +_08181392: + adds r0, r6, #0 + bl sub_0817F5B8 + ldr r4, _081813E4 + movs r3, #0x2e + ldrsh r1, [r6, r3] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, r0, r4 + movs r0, #0x32 + ldrsh r1, [r6, r0] + movs r3, #8 + ldrsh r0, [r2, r3] + cmp r1, r0 + ble _081813F8 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r6, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + movs r3, #0 + strh r3, [r6, #0x24] + movs r0, #0x2e + ldrsh r1, [r6, r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r4 + ldrh r2, [r1, #4] + movs r4, #4 + ldrsh r0, [r1, r4] + cmp r0, #1 + ble _081813E8 + subs r0, r2, #1 + strh r0, [r1, #4] + strh r3, [r6, #0x32] + b _08181434 + .align 2, 0 +_081813E4: .4byte 0x03001240 +_081813E8: + adds r0, r6, #0 + bl sub_0817F628 + ldr r0, _081813F4 + str r0, [r6, #0x1c] + b _08181434 + .align 2, 0 +_081813F4: .4byte 0x08184C35 +_081813F8: + movs r1, #0x32 + ldrsh r0, [r6, r1] + lsls r0, r0, #8 + movs r3, #8 + ldrsh r1, [r2, r3] + bl __divsi3 + adds r4, r0, #0 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + adds r0, r4, #0 + movs r1, #0xa + bl Sin + rsbs r0, r0, #0 + strh r0, [r6, #0x24] + movs r5, #0x80 + lsls r5, r5, #1 + ldr r1, _08181448 + adds r0, r4, #0 + bl Sin + adds r3, r0, #0 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + adds r0, r6, #0 + adds r1, r5, #0 + adds r2, r5, #0 + bl HandleSetAffineData +_08181434: + ldrh r0, [r6, #0x32] + adds r0, #1 + strh r0, [r6, #0x32] + adds r0, r6, #0 + bl sub_0817F5B8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08181448: .4byte 0x00000CCC + thumb_func_end sub_08181380 + + thumb_func_start pokemonanimfunc_2D +pokemonanimfunc_2D: @ 0x0818144C + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F604 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x2e] + ldr r2, _08181478 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #0x32 + strh r0, [r1, #8] + adds r0, r4, #0 + bl sub_08181380 + ldr r0, _0818147C + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08181478: .4byte 0x03001240 +_0818147C: .4byte 0x08181381 + thumb_func_end pokemonanimfunc_2D + + thumb_func_start sub_08181480 +sub_08181480: @ 0x08181480 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r1, #0x32 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _08181492 + adds r0, r6, #0 + bl HandleStartAffineAnim +_08181492: + adds r0, r6, #0 + bl sub_0817F5B8 + ldr r4, _081814E4 + movs r3, #0x2e + ldrsh r1, [r6, r3] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, r0, r4 + movs r0, #0x32 + ldrsh r1, [r6, r0] + movs r3, #8 + ldrsh r0, [r2, r3] + cmp r1, r0 + ble _081814F8 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r6, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + movs r3, #0 + strh r3, [r6, #0x24] + movs r0, #0x2e + ldrsh r1, [r6, r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r4 + ldrh r2, [r1, #4] + movs r4, #4 + ldrsh r0, [r1, r4] + cmp r0, #1 + ble _081814E8 + subs r0, r2, #1 + strh r0, [r1, #4] + strh r3, [r6, #0x32] + b _08181536 + .align 2, 0 +_081814E4: .4byte 0x03001240 +_081814E8: + adds r0, r6, #0 + bl sub_0817F628 + ldr r0, _081814F4 + str r0, [r6, #0x1c] + b _08181536 + .align 2, 0 +_081814F4: .4byte 0x08184C35 +_081814F8: + movs r1, #0x32 + ldrsh r0, [r6, r1] + lsls r0, r0, #8 + movs r3, #8 + ldrsh r1, [r2, r3] + bl __divsi3 + adds r4, r0, #0 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + adds r0, r4, #0 + movs r1, #0xa + bl Sin + rsbs r0, r0, #0 + strh r0, [r6, #0x24] + movs r5, #0x80 + lsls r5, r5, #1 + ldr r1, _08181548 + adds r0, r4, #0 + bl Sin + adds r3, r0, #0 + rsbs r3, r3, #0 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + adds r0, r6, #0 + adds r1, r5, #0 + adds r2, r5, #0 + bl HandleSetAffineData +_08181536: + ldrh r0, [r6, #0x32] + adds r0, #1 + strh r0, [r6, #0x32] + adds r0, r6, #0 + bl sub_0817F5B8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08181548: .4byte 0x00000CCC + thumb_func_end sub_08181480 + + thumb_func_start pokemonanimfunc_2E +pokemonanimfunc_2E: @ 0x0818154C + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F604 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x2e] + ldr r2, _08181578 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #0x32 + strh r0, [r1, #8] + adds r0, r4, #0 + bl sub_08181480 + ldr r0, _0818157C + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08181578: .4byte 0x03001240 +_0818157C: .4byte 0x08181481 + thumb_func_end pokemonanimfunc_2E + + thumb_func_start pokemonanimfunc_2F +pokemonanimfunc_2F: @ 0x08181580 + push {r4, lr} + adds r4, r0, #0 + bl HandleStartAffineAnim + adds r0, r4, #0 + adds r0, #0x28 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #1 + movs r1, #0xa + bl __divsi3 + rsbs r0, r0, #0 + strh r0, [r4, #0x3a] + movs r0, #0x80 + strh r0, [r4, #0x3c] + ldr r0, _081815B0 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081815B0: .4byte 0x081815B5 + thumb_func_end pokemonanimfunc_2F + + thumb_func_start sub_081815B4 +sub_081815B4: @ 0x081815B4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + ldrh r0, [r4, #0x3c] + subs r0, #1 + strh r0, [r4, #0x3c] + movs r1, #0x3c + ldrsh r0, [r4, r1] + movs r2, #0x3a + ldrsh r1, [r4, r2] + bl Cos + ldrh r1, [r4, #0x3a] + adds r0, r0, r1 + strh r0, [r4, #0x24] + movs r2, #0x3c + ldrsh r0, [r4, r2] + movs r2, #0x3a + ldrsh r1, [r4, r2] + bl Sin + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + movs r2, #0x80 + lsls r2, r2, #1 + ldrh r3, [r4, #0x3c] + subs r3, #0x80 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r2, #0 + bl HandleSetAffineData + movs r1, #0x3c + ldrsh r0, [r4, r1] + cmp r0, #0x78 + bgt _0818160C + movs r0, #0x78 + strh r0, [r4, #0x3c] + movs r0, #0 + strh r0, [r4, #0x34] + ldr r0, _08181618 + str r0, [r4, #0x1c] +_0818160C: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08181618: .4byte 0x0818161D + thumb_func_end sub_081815B4 + + thumb_func_start sub_0818161C +sub_0818161C: @ 0x0818161C + push {lr} + adds r1, r0, #0 + movs r2, #0x34 + ldrsh r0, [r1, r2] + cmp r0, #0x14 + bne _08181630 + ldr r0, _0818163C + str r0, [r1, #0x1c] + movs r0, #0 + strh r0, [r1, #0x34] +_08181630: + ldrh r0, [r1, #0x34] + adds r0, #1 + strh r0, [r1, #0x34] + pop {r0} + bx r0 + .align 2, 0 +_0818163C: .4byte 0x08181641 + thumb_func_end sub_0818161C + + thumb_func_start sub_08181640 +sub_08181640: @ 0x08181640 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + ldrh r0, [r4, #0x3c] + adds r0, #2 + movs r6, #0 + strh r0, [r4, #0x3c] + movs r1, #0x3c + ldrsh r0, [r4, r1] + movs r2, #0x3a + ldrsh r1, [r4, r2] + bl Cos + ldrh r1, [r4, #0x3a] + adds r0, r0, r1 + strh r0, [r4, #0x24] + movs r2, #0x3c + ldrsh r0, [r4, r2] + movs r2, #0x3a + ldrsh r1, [r4, r2] + bl Sin + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + movs r5, #0x80 + lsls r5, r5, #1 + ldrh r3, [r4, #0x3c] + subs r3, #0x80 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r5, #0 + bl HandleSetAffineData + movs r1, #0x3c + ldrsh r0, [r4, r1] + cmp r0, #0x7f + ble _081816AC + strh r6, [r4, #0x24] + strh r6, [r4, #0x26] + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r5, #0 + movs r3, #0 + bl HandleSetAffineData + strh r6, [r4, #0x32] + adds r0, r4, #0 + bl sub_0817F628 + ldr r0, _081816B8 + str r0, [r4, #0x1c] +_081816AC: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081816B8: .4byte 0x0817FC35 + thumb_func_end sub_08181640 + + thumb_func_start sub_081816BC +sub_081816BC: @ 0x081816BC + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r4, _081816DC + movs r0, #0x2e + ldrsh r1, [r5, r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r4 + ldrh r0, [r1] + adds r6, r0, #0 + cmp r6, #0 + beq _081816E0 + subs r0, #1 + strh r0, [r1] + b _081817FC + .align 2, 0 +_081816DC: .4byte 0x03001240 +_081816E0: + movs r1, #0x32 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _081816F6 + adds r0, r5, #0 + bl HandleStartAffineAnim + strh r6, [r5, #0x36] + strh r6, [r5, #0x38] + movs r0, #1 + strh r0, [r5, #0x32] +_081816F6: + movs r3, #0x38 + ldrsh r0, [r5, r3] + cmp r0, #0 + bne _0818174E + movs r1, #0x36 + ldrsh r0, [r5, r1] + movs r4, #0x80 + lsls r4, r4, #1 + adds r1, r4, #0 + bl Sin + strh r0, [r5, #0x3c] + movs r3, #0x36 + ldrsh r0, [r5, r3] + movs r1, #0x10 + bl Sin + strh r0, [r5, #0x26] + movs r1, #0x36 + ldrsh r0, [r5, r1] + movs r1, #0x20 + bl Sin + adds r1, r0, #0 + strh r1, [r5, #0x3a] + subs r1, r4, r1 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldrh r2, [r5, #0x3c] + adds r2, r2, r4 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r0, r5, #0 + movs r3, #0 + bl HandleSetAffineData + movs r3, #0x36 + ldrsh r0, [r5, r3] + cmp r0, #0x80 + bne _081817E6 + strh r6, [r5, #0x36] + movs r0, #1 + strh r0, [r5, #0x38] + b _081817E6 +_0818174E: + cmp r0, #1 + bne _081817E6 + movs r1, #0x36 + ldrsh r0, [r5, r1] + movs r1, #0x20 + bl Sin + strh r0, [r5, #0x3c] + movs r3, #0x36 + ldrsh r0, [r5, r3] + movs r1, #8 + bl Sin + rsbs r0, r0, #0 + strh r0, [r5, #0x26] + movs r1, #0x36 + ldrsh r0, [r5, r1] + movs r1, #0x80 + bl Sin + adds r1, r0, #0 + strh r1, [r5, #0x3a] + movs r3, #0x80 + lsls r3, r3, #1 + adds r2, r3, #0 + adds r1, r1, r2 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldrh r0, [r5, #0x3c] + subs r2, r2, r0 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r0, r5, #0 + movs r3, #0 + bl HandleSetAffineData + movs r1, #0x36 + ldrsh r0, [r5, r1] + cmp r0, #0x80 + bne _081817E6 + movs r3, #0x2e + ldrsh r0, [r5, r3] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrh r2, [r1, #4] + movs r3, #4 + ldrsh r0, [r1, r3] + cmp r0, #1 + ble _081817CE + subs r0, r2, #1 + strh r0, [r1, #4] + movs r0, #0x2e + ldrsh r1, [r5, r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0xa + strh r1, [r0] + strh r6, [r5, #0x36] + strh r6, [r5, #0x38] + b _081817E6 +_081817CE: + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r5, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + adds r0, r5, #0 + bl sub_0817F628 + ldr r0, _08181804 + str r0, [r5, #0x1c] +_081817E6: + ldr r2, _08181808 + movs r3, #0x2e + ldrsh r1, [r5, r3] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0, #6] + ldrh r1, [r5, #0x36] + adds r0, r0, r1 + strh r0, [r5, #0x36] +_081817FC: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08181804: .4byte 0x08184C35 +_08181808: .4byte 0x03001240 + thumb_func_end sub_081816BC + + thumb_func_start pokemonanimfunc_30 +pokemonanimfunc_30: @ 0x0818180C + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F604 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x2e] + ldr r2, _08181838 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #4 + strh r0, [r1, #6] + adds r0, r4, #0 + bl sub_081816BC + ldr r0, _0818183C + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08181838: .4byte 0x03001240 +_0818183C: .4byte 0x081816BD + thumb_func_end pokemonanimfunc_30 + + thumb_func_start pokemonanimfunc_31 +pokemonanimfunc_31: @ 0x08181840 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x32 + ldrsh r4, [r5, r0] + adds r0, r5, #0 + bl sub_0817F5B8 + movs r0, #0x80 + lsls r0, r0, #2 + cmp r4, r0 + ble _08181864 + ldr r0, _08181860 + str r0, [r5, #0x1c] + movs r0, #0 + strh r0, [r5, #0x24] + b _0818190E + .align 2, 0 +_08181860: .4byte 0x08184C35 +_08181864: + movs r1, #0x32 + ldrsh r0, [r5, r1] + cmp r0, #0 + bge _0818186E + adds r0, #0x7f +_0818186E: + asrs r0, r0, #7 + cmp r0, #1 + beq _081818A4 + cmp r0, #1 + bgt _0818187E + cmp r0, #0 + beq _08181888 + b _081818F4 +_0818187E: + cmp r0, #2 + beq _081818BE + cmp r0, #3 + beq _081818D6 + b _081818F4 +_08181888: + adds r0, r4, #0 + cmp r4, #0 + bge _08181890 + adds r0, #0x7f +_08181890: + asrs r0, r0, #7 + lsls r0, r0, #7 + subs r0, r4, r0 + lsls r0, r0, #3 + rsbs r0, r0, #0 + cmp r0, #0 + bge _081818A0 + adds r0, #0x7f +_081818A0: + asrs r0, r0, #7 + b _081818F2 +_081818A4: + adds r0, r4, #0 + cmp r4, #0 + bge _081818AC + adds r0, #0x7f +_081818AC: + asrs r0, r0, #7 + lsls r0, r0, #7 + subs r0, r4, r0 + cmp r0, #0 + bge _081818B8 + adds r0, #0xf +_081818B8: + asrs r0, r0, #4 + subs r0, #8 + b _081818F2 +_081818BE: + adds r0, r4, #0 + cmp r4, #0 + bge _081818C6 + adds r0, #0x7f +_081818C6: + asrs r0, r0, #7 + lsls r0, r0, #7 + subs r0, r4, r0 + cmp r0, #0 + bge _081818D2 + adds r0, #0xf +_081818D2: + asrs r0, r0, #4 + b _081818F2 +_081818D6: + adds r0, r4, #0 + cmp r4, #0 + bge _081818DE + adds r0, #0x7f +_081818DE: + asrs r0, r0, #7 + lsls r0, r0, #7 + subs r0, r4, r0 + lsls r0, r0, #3 + rsbs r0, r0, #0 + cmp r0, #0 + bge _081818EE + adds r0, #0x7f +_081818EE: + asrs r0, r0, #7 + adds r0, #8 +_081818F2: + strh r0, [r5, #0x24] +_081818F4: + adds r0, r4, #0 + cmp r4, #0 + bge _081818FC + adds r0, #0x7f +_081818FC: + asrs r0, r0, #7 + lsls r0, r0, #7 + subs r0, r4, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #8 + bl Sin + rsbs r0, r0, #0 +_0818190E: + strh r0, [r5, #0x26] + ldrh r0, [r5, #0x32] + adds r0, #0xc + strh r0, [r5, #0x32] + adds r0, r5, #0 + bl sub_0817F5B8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_31 + + thumb_func_start pokemonanimfunc_32 +pokemonanimfunc_32: @ 0x08181924 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0817F604 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r5, #0 + strh r0, [r4, #0x2e] + ldr r2, _0818195C + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r0, _08181960 + strh r0, [r1, #8] + adds r0, r4, #0 + bl HandleStartAffineAnim + strh r5, [r4, #0x34] + adds r0, r4, #0 + bl sub_08181968 + ldr r0, _08181964 + str r0, [r4, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0818195C: .4byte 0x03001240 +_08181960: .4byte 0x0000FFFF +_08181964: .4byte 0x08181969 + thumb_func_end pokemonanimfunc_32 + + thumb_func_start sub_08181968 +sub_08181968: @ 0x08181968 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r6, _08181988 + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r6 + ldrh r0, [r1] + adds r5, r0, #0 + cmp r5, #0 + beq _0818198C + subs r0, #1 + strh r0, [r1] + b _081819F0 + .align 2, 0 +_08181988: .4byte 0x03001240 +_0818198C: + adds r0, r4, #0 + bl sub_0817F5B8 + movs r1, #0x32 + ldrsh r2, [r4, r1] + adds r0, r2, #0 + cmp r0, #0x80 + ble _081819A8 + strh r5, [r4, #0x32] + ldr r0, _081819A4 + str r0, [r4, #0x1c] + b _081819EA + .align 2, 0 +_081819A4: .4byte 0x081819F9 +_081819A8: + movs r1, #0x2e + ldrsh r0, [r4, r1] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + movs r3, #8 + ldrsh r0, [r1, r3] + lsls r3, r0, #3 + adds r0, r2, #0 + cmp r2, #0 + bge _081819C2 + adds r0, #0x7f +_081819C2: + asrs r0, r0, #7 + lsls r0, r0, #7 + subs r1, r2, r0 + adds r0, r3, #0 + muls r0, r1, r0 + cmp r0, #0 + bge _081819D2 + adds r0, #0x7f +_081819D2: + asrs r0, r0, #7 + strh r0, [r4, #0x24] + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + movs r1, #8 + bl Sin + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x32] + adds r0, #0xc + strh r0, [r4, #0x32] +_081819EA: + adds r0, r4, #0 + bl sub_0817F5B8 +_081819F0: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08181968 + + thumb_func_start sub_081819F8 +sub_081819F8: @ 0x081819F8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0x30 + ble _08181A28 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + movs r0, #0 + strh r0, [r4, #0x26] + strh r0, [r4, #0x32] + ldr r0, _08181A24 + str r0, [r4, #0x1c] + b _08181AC6 + .align 2, 0 +_08181A24: .4byte 0x08181AD9 +_08181A28: + movs r2, #0x36 + ldrsh r0, [r4, r2] + movs r1, #0x40 + bl Sin + movs r1, #0x80 + lsls r1, r1, #1 + adds r6, r1, #0 + adds r0, r0, r6 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldrh r0, [r4, #0x32] + subs r0, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xf + bhi _08181A66 + ldrh r0, [r4, #0x34] + adds r0, #8 + strh r0, [r4, #0x34] + ldr r2, _08181AD4 + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r4, #0x24] + ldrh r0, [r0, #8] + subs r1, r1, r0 + strh r1, [r4, #0x24] +_08181A66: + movs r5, #0 + lsls r1, r3, #0x10 + asrs r2, r1, #0x10 + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + adds r6, r1, #0 + cmp r2, r0 + ble _08181A82 + subs r0, r0, r2 + cmp r0, #0 + bge _08181A7E + adds r0, #7 +_08181A7E: + lsls r0, r0, #0xd + lsrs r5, r0, #0x10 +_08181A82: + movs r1, #0x34 + ldrsh r0, [r4, r1] + movs r1, #0x14 + bl Sin + rsbs r0, r0, #0 + lsls r1, r5, #0x10 + asrs r1, r1, #0x10 + subs r0, r0, r1 + strh r0, [r4, #0x26] + movs r2, #0x36 + ldrsh r0, [r4, r2] + movs r1, #0x20 + bl Sin + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + subs r1, r1, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + asrs r2, r6, #0x10 + adds r0, r4, #0 + movs r3, #0 + bl HandleSetAffineData + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x36] + adds r0, #8 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x36] +_08181AC6: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08181AD4: .4byte 0x03001240 + thumb_func_end sub_081819F8 + + thumb_func_start sub_08181AD8 +sub_08181AD8: @ 0x08181AD8 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + movs r0, #0x32 + ldrsh r3, [r4, r0] + cmp r3, #0x80 + ble _08181B3C + ldr r3, _08181B20 + movs r1, #0x2e + ldrsh r0, [r4, r1] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrh r2, [r1, #4] + movs r5, #4 + ldrsh r0, [r1, r5] + cmp r0, #1 + ble _08181B28 + subs r0, r2, #1 + movs r2, #0 + strh r0, [r1, #4] + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r1, #0xa + strh r1, [r0] + strh r2, [r4, #0x34] + strh r2, [r4, #0x32] + strh r2, [r4, #0x36] + ldr r0, _08181B24 + b _08181B30 + .align 2, 0 +_08181B20: .4byte 0x03001240 +_08181B24: .4byte 0x08181969 +_08181B28: + adds r0, r4, #0 + bl sub_0817F628 + ldr r0, _08181B38 +_08181B30: + str r0, [r4, #0x1c] + movs r0, #0 + strh r0, [r4, #0x24] + b _08181B7C + .align 2, 0 +_08181B38: .4byte 0x08184C35 +_08181B3C: + ldr r2, _08181B90 + movs r5, #0x2e + ldrsh r1, [r4, r5] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #8 + ldrsh r5, [r0, r1] + lsls r1, r5, #3 + adds r0, r3, #0 + cmp r3, #0 + bge _08181B58 + adds r0, #0x7f +_08181B58: + asrs r0, r0, #7 + lsls r0, r0, #7 + subs r2, r3, r0 + adds r0, r1, #0 + muls r0, r2, r0 + cmp r0, #0 + bge _08181B68 + adds r0, #0x7f +_08181B68: + asrs r0, r0, #7 + lsls r1, r5, #3 + subs r0, r0, r1 + strh r0, [r4, #0x24] + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + movs r1, #8 + bl Sin + rsbs r0, r0, #0 +_08181B7C: + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x32] + adds r0, #0xc + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08181B90: .4byte 0x03001240 + thumb_func_end sub_08181AD8 + + thumb_func_start sub_08181B94 +sub_08181B94: @ 0x08181B94 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08181BAC + adds r0, r4, #0 + bl HandleStartAffineAnim + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] +_08181BAC: + adds r0, r4, #0 + bl sub_0817F5B8 + movs r3, #0x3c + ldrsh r0, [r4, r3] + cmp r0, #0xfe + ble _08181C0C + movs r5, #0 + strh r5, [r4, #0x24] + strh r5, [r4, #0x26] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + ldr r2, _08181BF0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r2 + ldrh r2, [r1, #4] + movs r3, #4 + ldrsh r0, [r1, r3] + cmp r0, #1 + ble _08181BF4 + subs r0, r2, #1 + strh r0, [r1, #4] + strh r5, [r4, #0x32] + strh r5, [r4, #0x3c] + b _08181BFE + .align 2, 0 +_08181BF0: .4byte 0x03001240 +_08181BF4: + adds r0, r4, #0 + bl sub_0817F628 + ldr r0, _08181C08 + str r0, [r4, #0x1c] +_08181BFE: + adds r0, r4, #0 + bl sub_0817F5B8 + b _08181C52 + .align 2, 0 +_08181C08: .4byte 0x08184C35 +_08181C0C: + movs r1, #0x3c + ldrsh r0, [r4, r1] + movs r1, #0x10 + bl Sin + rsbs r0, r0, #0 + strh r0, [r4, #0x24] + movs r3, #0x3c + ldrsh r0, [r4, r3] + movs r1, #0x20 + bl Sin + adds r3, r0, #0 + movs r2, #0x80 + lsls r2, r2, #1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r2, #0 + bl HandleSetAffineData + ldr r2, _08181C58 + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0, #6] + ldrh r1, [r4, #0x3c] + adds r0, r0, r1 + strh r0, [r4, #0x3c] + adds r0, r4, #0 + bl sub_0817F5B8 +_08181C52: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08181C58: .4byte 0x03001240 + thumb_func_end sub_08181B94 + + thumb_func_start pokemonanimfunc_33 +pokemonanimfunc_33: @ 0x08181C5C + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F604 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x2e] + ldr r2, _08181C88 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #4 + strh r0, [r1, #6] + adds r0, r4, #0 + bl sub_08181B94 + ldr r0, _08181C8C + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08181C88: .4byte 0x03001240 +_08181C8C: .4byte 0x08181B95 + thumb_func_end pokemonanimfunc_33 + + thumb_func_start pokemonanimfunc_34 +pokemonanimfunc_34: @ 0x08181C90 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08181CA8 + adds r0, r4, #0 + bl HandleStartAffineAnim + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] +_08181CA8: + adds r0, r4, #0 + bl sub_0817F5B8 + movs r1, #0x3c + ldrsh r0, [r4, r1] + cmp r0, #0xfe + ble _08181CE0 + movs r0, #0 + strh r0, [r4, #0x24] + strh r0, [r4, #0x26] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + adds r0, r4, #0 + bl sub_0817F628 + ldr r0, _08181CDC + str r0, [r4, #0x1c] + adds r0, r4, #0 + bl sub_0817F5B8 + b _08181D36 + .align 2, 0 +_08181CDC: .4byte 0x08184C35 +_08181CE0: + movs r1, #0x3c + ldrsh r0, [r4, r1] + movs r1, #0x10 + bl Sin + rsbs r0, r0, #0 + strh r0, [r4, #0x24] + movs r0, #0x3c + ldrsh r1, [r4, r0] + adds r0, r1, #0 + cmp r1, #0 + bge _08181CFA + adds r0, #0x7f +_08181CFA: + asrs r0, r0, #7 + lsls r0, r0, #7 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x10 + bl Sin + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + movs r1, #0x3c + ldrsh r0, [r4, r1] + movs r1, #0x20 + bl Sin + adds r3, r0, #0 + movs r2, #0x80 + lsls r2, r2, #1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r2, #0 + bl HandleSetAffineData + ldrh r0, [r4, #0x3c] + adds r0, #8 + strh r0, [r4, #0x3c] + adds r0, r4, #0 + bl sub_0817F5B8 +_08181D36: + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_34 + + thumb_func_start pokemonanimfunc_35 +pokemonanimfunc_35: @ 0x08181D3C + push {r4, r5, lr} + adds r3, r0, #0 + movs r1, #0x32 + ldrsh r0, [r3, r1] + cmp r0, #0 + bne _08181D4A + strh r0, [r3, #0x3c] +_08181D4A: + ldrh r4, [r3, #0x32] + movs r5, #0x32 + ldrsh r1, [r3, r5] + ldrh r2, [r3, #0x3c] + movs r5, #0x3c + ldrsh r0, [r3, r5] + cmp r1, r0 + bne _08181D74 + movs r0, #0 + strh r0, [r3, #0x3c] + adds r0, r4, #1 + strh r0, [r3, #0x32] + adds r1, r3, #0 + adds r1, #0x3e + ldrb r2, [r1] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + adds r2, r1, #0 + b _08181D84 +_08181D74: + adds r0, r2, #1 + strh r0, [r3, #0x3c] + adds r2, r3, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] +_08181D84: + movs r1, #0x32 + ldrsh r0, [r3, r1] + cmp r0, #0xa + ble _08181D9A + ldrb r0, [r2] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r2] + ldr r0, _08181DA0 + str r0, [r3, #0x1c] +_08181D9A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08181DA0: .4byte 0x08184C35 + thumb_func_end pokemonanimfunc_35 + + thumb_func_start pokemonanimfunc_36 +pokemonanimfunc_36: @ 0x08181DA4 + push {r4, lr} + adds r4, r0, #0 + bl HandleStartAffineAnim + movs r0, #0 + strh r0, [r4, #0x3c] + ldr r0, _08181DBC + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08181DBC: .4byte 0x08181DC1 + thumb_func_end pokemonanimfunc_36 + + thumb_func_start sub_08181DC0 +sub_08181DC0: @ 0x08181DC0 + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x3c] + movs r2, #0x3c + ldrsh r0, [r4, r2] + cmp r0, #0x1f + ble _08181DE0 + movs r0, #0 + movs r1, #0x20 + strh r1, [r4, #0x3c] + strh r0, [r4, #0x32] + ldr r0, _08181DDC + str r0, [r4, #0x1c] + b _08181DE4 + .align 2, 0 +_08181DDC: .4byte 0x08181DFD +_08181DE0: + adds r0, r1, #4 + strh r0, [r4, #0x3c] +_08181DE4: + movs r2, #0x80 + lsls r2, r2, #1 + ldrh r3, [r4, #0x3c] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r2, #0 + bl HandleSetAffineData + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08181DC0 + + thumb_func_start sub_08181DFC +sub_08181DFC: @ 0x08181DFC + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r0, #0x80 + lsls r0, r0, #2 + cmp r1, r0 + ble _08181E20 + ldr r0, _08181E1C + str r0, [r4, #0x1c] + movs r0, #0 + strh r0, [r4, #0x3a] + b _08181E5A + .align 2, 0 +_08181E1C: .4byte 0x08181E6D +_08181E20: + movs r1, #0x32 + ldrsh r0, [r4, r1] + lsls r0, r0, #4 + rsbs r0, r0, #0 + cmp r0, #0 + bge _08181E30 + ldr r1, _08181E68 + adds r0, r0, r1 +_08181E30: + asrs r0, r0, #9 + strh r0, [r4, #0x24] + movs r0, #0x32 + ldrsh r1, [r4, r0] + adds r0, r1, #0 + cmp r1, #0 + bge _08181E40 + adds r0, #0x7f +_08181E40: + asrs r0, r0, #7 + lsls r0, r0, #7 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #4 + bl Sin + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x32] + adds r0, #0xc + strh r0, [r4, #0x32] +_08181E5A: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08181E68: .4byte 0x000001FF + thumb_func_end sub_08181DFC + + thumb_func_start sub_08181E6C +sub_08181E6C: @ 0x08181E6C + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + ldrh r0, [r4, #0x3c] + subs r0, #2 + movs r1, #0 + strh r0, [r4, #0x3c] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _08181E98 + strh r1, [r4, #0x3c] + strh r1, [r4, #0x24] + adds r0, r4, #0 + bl sub_0817F628 + ldr r0, _08181E94 + str r0, [r4, #0x1c] + b _08181EAA + .align 2, 0 +_08181E94: .4byte 0x08184C35 +_08181E98: + movs r1, #0x3c + ldrsh r0, [r4, r1] + lsls r0, r0, #0x11 + asrs r0, r0, #0x10 + movs r1, #0x10 + bl Sin + rsbs r0, r0, #0 + strh r0, [r4, #0x24] +_08181EAA: + movs r2, #0x80 + lsls r2, r2, #1 + ldrh r3, [r4, #0x3c] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r2, #0 + bl HandleSetAffineData + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08181E6C + + thumb_func_start pokemonanimfunc_37 +pokemonanimfunc_37: @ 0x08181EC8 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r5, [r4, r0] + cmp r5, #0 + bne _08181EE2 + adds r0, r4, #0 + bl HandleStartAffineAnim + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + strh r5, [r4, #0x3c] +_08181EE2: + adds r0, r4, #0 + bl sub_0817F5B8 + ldrh r1, [r4, #0x3c] + movs r2, #0x3c + ldrsh r0, [r4, r2] + cmp r0, #0xff + ble _08181F0C + movs r0, #0 + strh r0, [r4, #0x24] + strh r0, [r4, #0x26] + strh r0, [r4, #0x3c] + adds r0, r4, #0 + bl sub_0817F628 + ldr r0, _08181F08 + str r0, [r4, #0x1c] + b _08181F52 + .align 2, 0 +_08181F08: .4byte 0x08184C35 +_08181F0C: + adds r0, r1, #0 + adds r0, #0x10 + strh r0, [r4, #0x3c] + movs r0, #0x3c + ldrsh r1, [r4, r0] + adds r0, r1, #0 + cmp r1, #0 + bge _08181F1E + adds r0, #0x7f +_08181F1E: + asrs r0, r0, #7 + lsls r0, r0, #7 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #8 + bl Sin + rsbs r0, r0, #0 + strh r0, [r4, #0x24] + movs r2, #0x3c + ldrsh r1, [r4, r2] + adds r0, r1, #0 + cmp r1, #0 + bge _08181F3E + adds r0, #0x7f +_08181F3E: + asrs r0, r0, #7 + lsls r0, r0, #7 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #8 + bl Sin + rsbs r0, r0, #0 + strh r0, [r4, #0x26] +_08181F52: + movs r0, #0x3c + ldrsh r1, [r4, r0] + adds r0, r1, #0 + cmp r1, #0 + bge _08181F5E + adds r0, #0x7f +_08181F5E: + asrs r0, r0, #7 + lsls r0, r0, #7 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x10 + bl Sin + adds r3, r0, #0 + movs r2, #0x80 + lsls r2, r2, #1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r2, #0 + bl HandleSetAffineData + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_37 + + thumb_func_start pokemonanimfunc_38 +pokemonanimfunc_38: @ 0x08181F8C + push {r4, lr} + adds r4, r0, #0 + bl HandleStartAffineAnim + movs r0, #0 + strh r0, [r4, #0x3c] + strh r0, [r4, #0x36] + ldr r0, _08181FA4 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08181FA4: .4byte 0x08181FA9 + thumb_func_end pokemonanimfunc_38 + + thumb_func_start sub_08181FA8 +sub_08181FA8: @ 0x08181FA8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + ldrh r1, [r4, #0x3c] + movs r2, #0x3c + ldrsh r0, [r4, r2] + cmp r0, #0x18 + ble _08181FD8 + ldrh r0, [r4, #0x36] + adds r0, #1 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _08181FF6 + movs r0, #0 + strh r0, [r4, #0x36] + ldr r0, _08181FD4 + str r0, [r4, #0x1c] + b _08181FF6 + .align 2, 0 +_08181FD4: .4byte 0x08182019 +_08181FD8: + adds r0, r1, #2 + strh r0, [r4, #0x3c] + movs r1, #0x3c + ldrsh r0, [r4, r1] + movs r1, #8 + bl Sin + strh r0, [r4, #0x24] + movs r2, #0x3c + ldrsh r0, [r4, r2] + movs r1, #8 + bl Sin + rsbs r0, r0, #0 + strh r0, [r4, #0x26] +_08181FF6: + movs r2, #0x80 + lsls r2, r2, #1 + ldrh r3, [r4, #0x3c] + rsbs r3, r3, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r2, #0 + bl HandleSetAffineData + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08181FA8 + + thumb_func_start sub_08182018 +sub_08182018: @ 0x08182018 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + ldrh r1, [r4, #0x3c] + movs r2, #0x3c + ldrsh r0, [r4, r2] + cmp r0, #0x20 + ble _08182038 + movs r0, #1 + strh r0, [r4, #0x3a] + ldr r0, _08182034 + str r0, [r4, #0x1c] + b _08182056 + .align 2, 0 +_08182034: .4byte 0x08182079 +_08182038: + adds r0, r1, #2 + strh r0, [r4, #0x3c] + movs r1, #0x3c + ldrsh r0, [r4, r1] + movs r1, #8 + bl Sin + strh r0, [r4, #0x24] + movs r2, #0x3c + ldrsh r0, [r4, r2] + movs r1, #8 + bl Sin + rsbs r0, r0, #0 + strh r0, [r4, #0x26] +_08182056: + movs r2, #0x80 + lsls r2, r2, #1 + ldrh r3, [r4, #0x3c] + rsbs r3, r3, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r2, #0 + bl HandleSetAffineData + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08182018 + + thumb_func_start sub_08182078 +sub_08182078: @ 0x08182078 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + movs r1, #0x3a + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + ldrh r1, [r4, #0x3c] + adds r0, r0, r1 + strh r0, [r4, #0x3c] + movs r1, #0x38 + ldrsh r0, [r4, r1] + cmp r0, #9 + ble _0818209C + movs r0, #0x20 + strh r0, [r4, #0x3c] + ldr r0, _081820F0 + str r0, [r4, #0x1c] +_0818209C: + movs r1, #0x3c + ldrsh r0, [r4, r1] + movs r1, #8 + bl Sin + strh r0, [r4, #0x24] + movs r1, #0x3c + ldrsh r0, [r4, r1] + movs r1, #8 + bl Sin + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x3c] + subs r0, #0x1d + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #6 + bls _081820D0 + movs r1, #0x3a + ldrsh r0, [r4, r1] + rsbs r0, r0, #0 + strh r0, [r4, #0x3a] + ldrh r0, [r4, #0x38] + adds r0, #1 + strh r0, [r4, #0x38] +_081820D0: + movs r2, #0x80 + lsls r2, r2, #1 + ldrh r3, [r4, #0x3c] + rsbs r3, r3, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r2, #0 + bl HandleSetAffineData + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081820F0: .4byte 0x081820F5 + thumb_func_end sub_08182078 + + thumb_func_start sub_081820F4 +sub_081820F4: @ 0x081820F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + ldrh r1, [r4, #0x3c] + movs r2, #0x3c + ldrsh r0, [r4, r2] + cmp r0, #0 + bgt _0818211C + movs r0, #0 + strh r0, [r4, #0x3c] + adds r0, r4, #0 + bl sub_0817F628 + ldr r0, _08182118 + str r0, [r4, #0x1c] + b _0818213A + .align 2, 0 +_08182118: .4byte 0x08184C35 +_0818211C: + subs r0, r1, #2 + strh r0, [r4, #0x3c] + movs r1, #0x3c + ldrsh r0, [r4, r1] + movs r1, #8 + bl Sin + strh r0, [r4, #0x24] + movs r2, #0x3c + ldrsh r0, [r4, r2] + movs r1, #8 + bl Sin + rsbs r0, r0, #0 + strh r0, [r4, #0x26] +_0818213A: + movs r2, #0x80 + lsls r2, r2, #1 + ldrh r3, [r4, #0x3c] + rsbs r3, r3, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r2, #0 + bl HandleSetAffineData + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081820F4 + + thumb_func_start pokemonanimfunc_39 +pokemonanimfunc_39: @ 0x0818215C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + ldrh r1, [r4, #0x32] + movs r2, #0x32 + ldrsh r0, [r4, r2] + cmp r0, #0x28 + ble _0818217C + ldr r0, _08182178 + str r0, [r4, #0x1c] + movs r0, #0 + strh r0, [r4, #0x24] + b _08182208 + .align 2, 0 +_08182178: .4byte 0x08184C35 +_0818217C: + movs r0, #1 + ands r0, r1 + movs r5, #0xff + cmp r0, #0 + bne _08182188 + movs r5, #1 +_08182188: + movs r0, #0x32 + ldrsh r2, [r4, r0] + adds r0, r2, #0 + cmp r2, #0 + bge _08182194 + adds r0, r2, #3 +_08182194: + asrs r0, r0, #2 + lsls r0, r0, #2 + subs r0, r2, r0 + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + lsrs r0, r0, #0x1f + adds r1, r1, r0 + asrs r1, r1, #1 + cmp r1, #0 + bne _081821D8 + lsls r0, r2, #7 + movs r1, #0x28 + bl __divsi3 + adds r1, r0, #0 + cmp r1, #0 + bge _081821B8 + adds r0, #0xff +_081821B8: + asrs r0, r0, #8 + lsls r0, r0, #8 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x10 + bl Sin + lsls r1, r5, #0x18 + asrs r1, r1, #0x18 + adds r2, r0, #0 + muls r2, r1, r2 + adds r0, r2, #0 + strh r0, [r4, #0x24] + rsbs r0, r0, #0 + b _08182206 +_081821D8: + lsls r0, r2, #7 + movs r1, #0x28 + bl __divsi3 + adds r1, r0, #0 + cmp r1, #0 + bge _081821E8 + adds r0, #0xff +_081821E8: + asrs r0, r0, #8 + lsls r0, r0, #8 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x10 + bl Sin + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + rsbs r0, r0, #0 + lsls r1, r5, #0x18 + asrs r1, r1, #0x18 + muls r0, r1, r0 + strh r0, [r4, #0x24] +_08182206: + strh r0, [r4, #0x26] +_08182208: + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_39 + + thumb_func_start pokemonanimfunc_3A +pokemonanimfunc_3A: @ 0x0818221C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + movs r0, #0x32 + ldrsh r5, [r4, r0] + cmp r5, #0 + bne _0818223E + adds r0, r4, #0 + bl HandleStartAffineAnim + strh r5, [r4, #0x38] + strh r5, [r4, #0x3a] + strh r5, [r4, #0x3c] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] +_0818223E: + ldrh r1, [r4, #0x3a] + movs r2, #0x3a + ldrsh r0, [r4, r2] + cmp r0, #0 + ble _08182290 + subs r0, r1, #1 + strh r0, [r4, #0x3a] + movs r1, #0x38 + ldrsh r0, [r4, r1] + cmp r0, #3 + beq _08182340 + movs r2, #0x3a + ldrsh r0, [r4, r2] + lsls r0, r0, #3 + movs r1, #0x14 + bl __divsi3 + adds r1, r0, #0 + ldrh r0, [r4, #0x3c] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + subs r0, r0, r1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x40 + bl Sin + movs r1, #0x80 + lsls r1, r1, #1 + adds r2, r1, #0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + subs r2, r2, r0 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + b _08182340 +_08182290: + movs r2, #0x38 + ldrsh r0, [r4, r2] + cmp r0, #3 + bne _081822D0 + movs r1, #0x3c + ldrsh r0, [r4, r1] + cmp r0, #0x3f + ble _081822BC + movs r0, #0x40 + strh r0, [r4, #0x3c] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + adds r0, r4, #0 + bl sub_0817F628 + ldr r0, _081822CC + str r0, [r4, #0x1c] +_081822BC: + movs r2, #0x3c + ldrsh r0, [r4, r2] + movs r1, #0x40 + bl Cos + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + b _08182320 + .align 2, 0 +_081822CC: .4byte 0x08184C35 +_081822D0: + movs r1, #0x3c + ldrsh r0, [r4, r1] + movs r1, #0x40 + bl Sin + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + movs r2, #0x3c + ldrsh r0, [r4, r2] + cmp r0, #0x3f + ble _081822F4 + movs r0, #0 + movs r1, #3 + strh r1, [r4, #0x38] + movs r1, #0xa + strh r1, [r4, #0x3a] + strh r0, [r4, #0x3c] + b _08182320 +_081822F4: + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x30 + ble _08182308 + movs r1, #0x38 + ldrsh r0, [r4, r1] + cmp r0, #1 + bne _08182308 + movs r0, #2 + b _0818231A +_08182308: + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x10 + ble _08182320 + movs r2, #0x38 + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _08182320 + movs r0, #1 +_0818231A: + strh r0, [r4, #0x38] + movs r0, #0x14 + strh r0, [r4, #0x3a] +_08182320: + ldrh r0, [r4, #0x3c] + adds r0, #2 + strh r0, [r4, #0x3c] + movs r0, #0x80 + lsls r0, r0, #1 + adds r2, r0, #0 + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + subs r2, r2, r0 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData +_08182340: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_3A + + thumb_func_start pokemonanimfunc_3B +pokemonanimfunc_3B: @ 0x0818234C + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r5, [r4, r0] + cmp r5, #0 + bne _08182366 + adds r0, r4, #0 + bl HandleStartAffineAnim + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + strh r5, [r4, #0x3c] +_08182366: + movs r0, #0x3c + ldrsh r1, [r4, r0] + movs r0, #0x80 + lsls r0, r0, #2 + cmp r1, r0 + ble _08182394 + movs r0, #0 + strh r0, [r4, #0x26] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + adds r0, r4, #0 + bl sub_0817F628 + ldr r0, _08182390 + str r0, [r4, #0x1c] + b _081823EC + .align 2, 0 +_08182390: .4byte 0x08184C35 +_08182394: + movs r0, #0x3c + ldrsh r1, [r4, r0] + adds r0, r1, #0 + cmp r1, #0 + bge _081823A0 + adds r0, #0xff +_081823A0: + asrs r0, r0, #8 + lsls r0, r0, #8 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #8 + bl Sin + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x3c] + adds r0, #8 + strh r0, [r4, #0x3c] + movs r0, #0x3c + ldrsh r1, [r4, r0] + adds r0, r1, #0 + cmp r1, #0 + bge _081823C4 + adds r0, #0x7f +_081823C4: + asrs r0, r0, #7 + lsls r0, r0, #7 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x60 + bl Sin + adds r2, r0, #0 + movs r1, #0x80 + lsls r1, r1, #1 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r2, r2, r1 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r0, r4, #0 + movs r3, #0 + bl HandleSetAffineData +_081823EC: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_3B + + thumb_func_start pokemonanimfunc_3C +pokemonanimfunc_3C: @ 0x081823F4 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r5, [r4, r0] + cmp r5, #0 + bne _0818240E + adds r0, r4, #0 + bl HandleStartAffineAnim + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + strh r5, [r4, #0x3c] +_0818240E: + movs r1, #0x3c + ldrsh r0, [r4, r1] + movs r5, #0x80 + lsls r5, r5, #1 + cmp r0, r5 + ble _0818243C + movs r0, #0 + strh r0, [r4, #0x26] + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r5, #0 + movs r3, #0 + bl HandleSetAffineData + adds r0, r4, #0 + bl sub_0817F628 + ldr r0, _08182438 + str r0, [r4, #0x1c] + b _08182480 + .align 2, 0 +_08182438: .4byte 0x08184C35 +_0818243C: + movs r1, #0x3c + ldrsh r0, [r4, r1] + movs r1, #0x10 + bl Sin + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x3c] + adds r0, #4 + strh r0, [r4, #0x3c] + movs r0, #0x3c + ldrsh r1, [r4, r0] + adds r0, r1, #0 + cmp r1, #0 + bge _0818245A + adds r0, #0x3f +_0818245A: + asrs r0, r0, #6 + lsls r0, r0, #6 + subs r0, r1, r0 + lsls r0, r0, #0x11 + asrs r0, r0, #0x10 + movs r1, #0x80 + bl Sin + adds r2, r0, #0 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r2, r2, r5 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + movs r3, #0 + bl HandleSetAffineData +_08182480: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_3C + + thumb_func_start pokemonanimfunc_3D +pokemonanimfunc_3D: @ 0x08182488 + push {r4, lr} + adds r4, r0, #0 + bl HandleStartAffineAnim + ldr r0, _081824A0 + str r0, [r4, #0x1c] + movs r0, #0 + strh r0, [r4, #0x3c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081824A0: .4byte 0x081824A5 + thumb_func_end pokemonanimfunc_3D + + thumb_func_start sub_081824A4 +sub_081824A4: @ 0x081824A4 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3c] + adds r0, #8 + movs r1, #0 + strh r0, [r4, #0x3c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x3f + ble _081824C8 + strh r1, [r4, #0x3c] + strh r1, [r4, #0x3a] + ldr r0, _081824C4 + str r0, [r4, #0x1c] + movs r0, #0x40 + b _081824CC + .align 2, 0 +_081824C4: .4byte 0x081824F5 +_081824C8: + movs r1, #0x3c + ldrsh r0, [r4, r1] +_081824CC: + movs r1, #0x80 + bl Sin + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #1 + lsls r2, r0, #0x10 + asrs r2, r2, #0x10 + adds r2, r2, r1 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r0, r4, #0 + movs r3, #0 + bl HandleSetAffineData + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081824A4 + + thumb_func_start sub_081824F4 +sub_081824F4: @ 0x081824F4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3c] + adds r0, #4 + strh r0, [r4, #0x3c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x5f + ble _0818251E + movs r0, #0 + movs r1, #0x80 + bl Cos + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + movs r0, #0 + strh r0, [r4, #0x3c] + ldrh r0, [r4, #0x3a] + adds r0, #1 + strh r0, [r4, #0x3a] + b _08182574 +_0818251E: + movs r1, #0x3c + ldrsh r0, [r4, r1] + movs r1, #8 + bl Sin + movs r2, #0x3a + ldrsh r1, [r4, r2] + lsls r1, r1, #2 + rsbs r1, r1, #0 + subs r1, r1, r0 + strh r1, [r4, #0x26] + ldrh r1, [r4, #0x3c] + movs r2, #0x3c + ldrsh r0, [r4, r2] + cmp r0, #0x3f + ble _08182550 + ldr r5, _0818254C + adds r0, r1, #0 + subs r0, #0x40 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _08182554 + .align 2, 0 +_0818254C: .4byte 0x0000FFFF +_08182550: + movs r5, #1 + movs r0, #0 +_08182554: + lsls r0, r0, #0x10 + asrs r0, r0, #0xf + ldrh r1, [r4, #0x3c] + adds r0, r0, r1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x80 + bl Cos + lsls r1, r5, #0x10 + asrs r1, r1, #0x10 + adds r2, r1, #0 + muls r2, r0, r2 + adds r0, r2, #0 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 +_08182574: + movs r1, #0x80 + lsls r1, r1, #1 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r2, r2, r1 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r0, r4, #0 + movs r3, #0 + bl HandleSetAffineData + movs r1, #0x3a + ldrsh r0, [r4, r1] + cmp r0, #3 + bne _0818259A + movs r0, #0 + strh r0, [r4, #0x3c] + ldr r0, _081825A0 + str r0, [r4, #0x1c] +_0818259A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081825A0: .4byte 0x081825A5 + thumb_func_end sub_081824F4 + + thumb_func_start sub_081825A4 +sub_081825A4: @ 0x081825A4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3c] + adds r0, #8 + strh r0, [r4, #0x3c] + movs r1, #0x3c + ldrsh r0, [r4, r1] + movs r1, #0x80 + bl Cos + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + movs r1, #0x3c + ldrsh r0, [r4, r1] + movs r1, #0xc + bl Cos + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + movs r1, #0x3c + ldrsh r0, [r4, r1] + cmp r0, #0x3f + ble _081825EE + adds r0, r4, #0 + bl sub_0817F628 + ldr r0, _0818260C + str r0, [r4, #0x1c] + movs r0, #0 + strh r0, [r4, #0x26] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData +_081825EE: + movs r1, #0x80 + lsls r1, r1, #1 + lsls r2, r5, #0x10 + asrs r2, r2, #0x10 + adds r2, r2, r1 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r0, r4, #0 + movs r3, #0 + bl HandleSetAffineData + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0818260C: .4byte 0x08184C35 + thumb_func_end sub_081825A4 + + thumb_func_start sub_08182610 +sub_08182610: @ 0x08182610 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x3c + ldrsh r1, [r4, r0] + movs r2, #0x38 + ldrsh r0, [r4, r2] + cmp r1, r0 + ble _08182644 + movs r0, #0 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0817F628 + ldr r0, _08182640 + str r0, [r4, #0x1c] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + b _081826A0 + .align 2, 0 +_08182640: .4byte 0x08184C35 +_08182644: + movs r0, #0x3c + ldrsh r1, [r4, r0] + adds r0, r1, #0 + cmp r1, #0 + bge _08182650 + adds r0, #0xff +_08182650: + asrs r0, r0, #8 + lsls r0, r0, #8 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x36 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x3a] + ldrh r1, [r4, #0x3c] + adds r0, r0, r1 + strh r0, [r4, #0x3c] + movs r2, #0x3c + ldrsh r1, [r4, r2] + adds r0, r1, #0 + cmp r1, #0 + bge _08182678 + adds r0, #0x7f +_08182678: + asrs r0, r0, #7 + lsls r0, r0, #7 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x60 + bl Sin + adds r1, r0, #0 + lsls r1, r1, #0x10 + movs r0, #0x80 + lsls r0, r0, #0x11 + adds r1, r1, r0 + asrs r1, r1, #0x10 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + movs r3, #0 + bl HandleSetAffineData +_081826A0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08182610 + + thumb_func_start pokemonanimfunc_3E +pokemonanimfunc_3E: @ 0x081826A8 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r5, [r4, r0] + cmp r5, #0 + bne _081826CE + adds r0, r4, #0 + bl HandleStartAffineAnim + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + strh r5, [r4, #0x3c] + movs r1, #8 + strh r1, [r4, #0x3a] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x38] + strh r1, [r4, #0x36] +_081826CE: + adds r0, r4, #0 + bl sub_08182610 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_3E + + thumb_func_start sub_081826DC +sub_081826DC: @ 0x081826DC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x3c + ldrsh r1, [r4, r0] + movs r2, #0x38 + ldrsh r0, [r4, r2] + cmp r1, r0 + ble _08182710 + movs r0, #0 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0817F628 + ldr r0, _0818270C + str r0, [r4, #0x1c] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + b _0818276C + .align 2, 0 +_0818270C: .4byte 0x08184C35 +_08182710: + movs r0, #0x3c + ldrsh r1, [r4, r0] + adds r0, r1, #0 + cmp r1, #0 + bge _0818271C + adds r0, #0xff +_0818271C: + asrs r0, r0, #8 + lsls r0, r0, #8 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x36 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x3a] + ldrh r1, [r4, #0x3c] + adds r0, r0, r1 + strh r0, [r4, #0x3c] + movs r2, #0x3c + ldrsh r1, [r4, r2] + adds r0, r1, #0 + cmp r1, #0 + bge _08182744 + adds r0, #0x3f +_08182744: + asrs r0, r0, #6 + lsls r0, r0, #6 + subs r0, r1, r0 + lsls r0, r0, #0x11 + asrs r0, r0, #0x10 + movs r1, #0x80 + bl Sin + adds r1, r0, #0 + lsls r1, r1, #0x10 + movs r0, #0x80 + lsls r0, r0, #0x11 + adds r1, r1, r0 + asrs r1, r1, #0x10 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + movs r3, #0 + bl HandleSetAffineData +_0818276C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081826DC + + thumb_func_start pokemonanimfunc_3F +pokemonanimfunc_3F: @ 0x08182774 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r5, [r4, r0] + cmp r5, #0 + bne _0818279A + adds r0, r4, #0 + bl HandleStartAffineAnim + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + strh r5, [r4, #0x3c] + movs r0, #4 + strh r0, [r4, #0x3a] + adds r0, #0xfc + strh r0, [r4, #0x38] + movs r0, #0x10 + strh r0, [r4, #0x36] +_0818279A: + adds r0, r4, #0 + bl sub_081826DC + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_3F + + thumb_func_start pokemonanimfunc_40 +pokemonanimfunc_40: @ 0x081827A8 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + movs r0, #0x32 + ldrsh r5, [r4, r0] + cmp r5, #0 + bne _081827C6 + adds r0, r4, #0 + bl HandleStartAffineAnim + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + strh r5, [r4, #0x3c] +_081827C6: + movs r0, #0x3c + ldrsh r1, [r4, r0] + movs r0, #0x80 + lsls r0, r0, #2 + cmp r1, r0 + ble _081827F4 + movs r0, #0 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0817F628 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + ldr r0, _081827F0 + str r0, [r4, #0x1c] + b _0818284A + .align 2, 0 +_081827F0: .4byte 0x08184C35 +_081827F4: + movs r0, #0x3c + ldrsh r1, [r4, r0] + adds r0, r1, #0 + cmp r1, #0 + bge _08182800 + adds r0, #0xff +_08182800: + asrs r0, r0, #8 + lsls r0, r0, #8 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #8 + bl Sin + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x3c] + adds r0, #8 + strh r0, [r4, #0x3c] + movs r0, #0x3c + ldrsh r1, [r4, r0] + adds r0, r1, #0 + cmp r1, #0 + bge _08182824 + adds r0, #0x7f +_08182824: + asrs r0, r0, #7 + lsls r0, r0, #7 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x60 + bl Sin + adds r2, r0, #0 + lsls r2, r2, #0x10 + movs r0, #0x80 + lsls r0, r0, #0x11 + adds r2, r2, r0 + asrs r2, r2, #0x10 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData +_0818284A: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_40 + + thumb_func_start pokemonanimfunc_41 +pokemonanimfunc_41: @ 0x08182858 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + movs r0, #0x32 + ldrsh r5, [r4, r0] + cmp r5, #0 + bne _08182876 + adds r0, r4, #0 + bl HandleStartAffineAnim + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + strh r5, [r4, #0x3c] +_08182876: + movs r0, #0x3c + ldrsh r1, [r4, r0] + movs r0, #0x80 + lsls r0, r0, #2 + cmp r1, r0 + ble _081828A4 + movs r0, #0 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0817F628 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + ldr r0, _081828A0 + str r0, [r4, #0x1c] + b _0818290A + .align 2, 0 +_081828A0: .4byte 0x08184C35 +_081828A4: + movs r1, #0x3c + ldrsh r0, [r4, r1] + adds r1, r0, #0 + cmp r0, #0 + bge _081828B0 + adds r1, #0xff +_081828B0: + asrs r1, r1, #8 + lsls r1, r1, #8 + subs r1, r0, r1 + lsls r1, r1, #0x10 + asrs r0, r1, #0x10 + lsrs r1, r1, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + movs r1, #0x10 + bl Sin + rsbs r0, r0, #0 + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x3c] + adds r0, #8 + strh r0, [r4, #0x3c] + movs r1, #0x3c + ldrsh r0, [r4, r1] + adds r1, r0, #0 + cmp r0, #0 + bge _081828DC + adds r1, #0xff +_081828DC: + asrs r1, r1, #8 + lsls r1, r1, #8 + subs r1, r0, r1 + lsls r1, r1, #0x10 + asrs r0, r1, #0x10 + lsrs r1, r1, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + movs r1, #0x40 + bl Sin + adds r2, r0, #0 + rsbs r2, r2, #0 + lsls r2, r2, #0x10 + movs r0, #0x80 + lsls r0, r0, #0x11 + adds r2, r2, r0 + asrs r2, r2, #0x10 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData +_0818290A: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_41 + + thumb_func_start pokemonanimfunc_42 +pokemonanimfunc_42: @ 0x08182918 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + movs r0, #0x32 + ldrsh r5, [r4, r0] + cmp r5, #0 + bne _08182936 + adds r0, r4, #0 + bl HandleStartAffineAnim + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + strh r5, [r4, #0x3c] +_08182936: + movs r0, #0x3c + ldrsh r1, [r4, r0] + movs r0, #0x80 + lsls r0, r0, #2 + cmp r1, r0 + ble _08182964 + movs r0, #0 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0817F628 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + ldr r0, _08182960 + str r0, [r4, #0x1c] + b _081829C2 + .align 2, 0 +_08182960: .4byte 0x08184C35 +_08182964: + movs r0, #0x3c + ldrsh r1, [r4, r0] + adds r0, r1, #0 + cmp r1, #0 + bge _08182970 + adds r0, #0xff +_08182970: + asrs r0, r0, #8 + lsls r0, r0, #8 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #8 + bl Sin + rsbs r0, r0, #0 + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x3c] + adds r0, #8 + strh r0, [r4, #0x3c] + movs r1, #0x3c + ldrsh r0, [r4, r1] + adds r1, r0, #0 + cmp r0, #0 + bge _08182996 + adds r1, #0xff +_08182996: + asrs r1, r1, #8 + lsls r1, r1, #8 + subs r1, r0, r1 + lsls r1, r1, #0x10 + asrs r0, r1, #0x10 + lsrs r1, r1, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + movs r1, #0x60 + bl Sin + adds r2, r0, #0 + lsls r2, r2, #0x10 + movs r0, #0x80 + lsls r0, r0, #0x11 + adds r2, r2, r0 + asrs r2, r2, #0x10 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData +_081829C2: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_42 + + thumb_func_start pokemonanimfunc_43 +pokemonanimfunc_43: @ 0x081829D0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r0, #0x80 + lsls r0, r0, #4 + cmp r1, r0 + ble _081829F4 + ldr r0, _081829F0 + str r0, [r4, #0x1c] + movs r0, #0 + strh r0, [r4, #0x3a] + b _08182AB4 + .align 2, 0 +_081829F0: .4byte 0x08184C35 +_081829F4: + movs r1, #0x32 + ldrsh r2, [r4, r1] + adds r0, r2, #0 + cmp r2, #0 + bge _08182A02 + ldr r1, _08182A28 + adds r0, r2, r1 +_08182A02: + asrs r3, r0, #9 + adds r1, r3, #0 + adds r0, r1, #0 + cmp r1, #0 + bge _08182A0E + adds r0, r1, #3 +_08182A0E: + asrs r0, r0, #2 + lsls r0, r0, #2 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + beq _08182A50 + cmp r0, #1 + bgt _08182A2C + cmp r0, #0 + beq _08182A36 + b _08182A8E + .align 2, 0 +_08182A28: .4byte 0x000001FF +_08182A2C: + cmp r0, #2 + beq _08182A64 + cmp r0, #3 + beq _08182A76 + b _08182A8E +_08182A36: + lsls r0, r3, #9 + subs r0, r2, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0xc + rsbs r0, r0, #0 + cmp r0, #0 + bge _08182A48 + ldr r1, _08182A4C + adds r0, r0, r1 +_08182A48: + asrs r0, r0, #9 + b _08182A8C + .align 2, 0 +_08182A4C: .4byte 0x000001FF +_08182A50: + lsls r0, r3, #9 + subs r0, r2, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _08182A5E + adds r0, #0x1f +_08182A5E: + asrs r0, r0, #5 + subs r0, #0x10 + b _08182A8C +_08182A64: + lsls r0, r3, #9 + subs r0, r2, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _08182A72 + adds r0, #0x1f +_08182A72: + asrs r0, r0, #5 + b _08182A8C +_08182A76: + lsls r0, r3, #9 + subs r0, r2, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0xc + rsbs r0, r0, #0 + cmp r0, #0 + bge _08182A88 + ldr r1, _08182AC0 + adds r0, r0, r1 +_08182A88: + asrs r0, r0, #9 + adds r0, #0x10 +_08182A8C: + strh r0, [r4, #0x24] +_08182A8E: + movs r0, #0x32 + ldrsh r1, [r4, r0] + adds r0, r1, #0 + cmp r1, #0 + bge _08182A9A + adds r0, #0x7f +_08182A9A: + asrs r0, r0, #7 + lsls r0, r0, #7 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #4 + bl Sin + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x32] + adds r0, #0x18 + strh r0, [r4, #0x32] +_08182AB4: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08182AC0: .4byte 0x000001FF + thumb_func_end pokemonanimfunc_43 + + thumb_func_start pokemonanimfunc_44 +pokemonanimfunc_44: @ 0x08182AC4 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + ldrh r1, [r4, #0x32] + movs r2, #0x32 + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _08182AE0 + strh r0, [r4, #0x3a] + movs r0, #0x40 + strh r0, [r4, #0x3c] + adds r0, r1, #1 + strh r0, [r4, #0x32] +_08182AE0: + ldrh r0, [r4, #0x3c] + adds r1, r0, #0 + adds r1, #8 + movs r3, #0 + strh r1, [r4, #0x3c] + ldrh r2, [r4, #0x3a] + movs r5, #0x3a + ldrsh r0, [r4, r5] + cmp r0, #4 + bne _08182AFE + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x3f + ble _08182B0C + b _08182B06 +_08182AFE: + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x7f + ble _08182B0C +_08182B06: + strh r3, [r4, #0x3c] + adds r0, r2, #1 + strh r0, [r4, #0x3a] +_08182B0C: + movs r1, #0x3a + ldrsh r0, [r4, r1] + cmp r0, #4 + bhi _08182BB4 + lsls r0, r0, #2 + ldr r1, _08182B20 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08182B20: .4byte 0x08182B24 +_08182B24: @ jump table + .4byte _08182B98 @ case 0 + .4byte _08182B38 @ case 1 + .4byte _08182B56 @ case 2 + .4byte _08182B78 @ case 3 + .4byte _08182B98 @ case 4 +_08182B38: + movs r2, #0x3c + ldrsh r0, [r4, r2] + movs r1, #8 + bl Cos + rsbs r0, r0, #0 + strh r0, [r4, #0x24] + movs r5, #0x3c + ldrsh r0, [r4, r5] + movs r1, #8 + bl Sin + subs r0, #8 + strh r0, [r4, #0x26] + b _08182BBE +_08182B56: + ldrh r0, [r4, #0x3c] + adds r0, #0x80 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #8 + bl Sin + adds r0, #8 + strh r0, [r4, #0x24] + movs r1, #0x3c + ldrsh r0, [r4, r1] + movs r1, #8 + bl Cos + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + b _08182BBE +_08182B78: + movs r2, #0x3c + ldrsh r0, [r4, r2] + movs r1, #8 + bl Cos + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x3c] + adds r0, #0x80 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #8 + bl Sin + adds r0, #8 + strh r0, [r4, #0x26] + b _08182BBE +_08182B98: + movs r5, #0x3c + ldrsh r0, [r4, r5] + movs r1, #8 + bl Sin + subs r0, #8 + strh r0, [r4, #0x24] + movs r1, #0x3c + ldrsh r0, [r4, r1] + movs r1, #8 + bl Cos + strh r0, [r4, #0x26] + b _08182BBE +_08182BB4: + movs r0, #0 + strh r0, [r4, #0x24] + strh r0, [r4, #0x26] + ldr r0, _08182BCC + str r0, [r4, #0x1c] +_08182BBE: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08182BCC: .4byte 0x08184C35 + thumb_func_end pokemonanimfunc_44 + + thumb_func_start pokemonanimfunc_45 +pokemonanimfunc_45: @ 0x08182BD0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x20 + strh r0, [r4, #0x2e] + adds r0, r4, #0 + bl sub_081805C0 + ldr r0, _08182BE8 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08182BE8: .4byte 0x081805C1 + thumb_func_end pokemonanimfunc_45 + + thumb_func_start pokemonanimfunc_46 +pokemonanimfunc_46: @ 0x08182BEC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x50 + strh r0, [r4, #0x2e] + adds r0, r4, #0 + bl sub_0817F7A8 + ldr r0, _08182C04 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08182C04: .4byte 0x0817F7A9 + thumb_func_end pokemonanimfunc_46 + + thumb_func_start pokemonanimfunc_47 +pokemonanimfunc_47: @ 0x08182C08 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x50 + strh r0, [r4, #0x2e] + adds r0, r4, #0 + bl sub_0817F824 + ldr r0, _08182C20 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08182C20: .4byte 0x0817F825 + thumb_func_end pokemonanimfunc_47 + + thumb_func_start pokemonanimfunc_48 +pokemonanimfunc_48: @ 0x08182C24 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F604 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x2e] + ldr r2, _08182C58 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #0x80 + lsls r0, r0, #4 + strh r0, [r1, #6] + ldrh r0, [r4, #0x3a] + strh r0, [r1, #8] + adds r0, r4, #0 + bl sub_081807AC + ldr r0, _08182C5C + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08182C58: .4byte 0x03001240 +_08182C5C: .4byte 0x081807AD + thumb_func_end pokemonanimfunc_48 + + thumb_func_start pokemonanimfunc_49 +pokemonanimfunc_49: @ 0x08182C60 + push {lr} + movs r1, #1 + strh r1, [r0, #0x3a] + bl pokemonanimfunc_05 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_49 + + thumb_func_start pokemonanimfunc_4A +pokemonanimfunc_4A: @ 0x08182C70 + push {lr} + movs r1, #1 + strh r1, [r0, #0x3a] + bl pokemonanimfunc_48 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_4A + + thumb_func_start pokemonanimfunc_4B +pokemonanimfunc_4B: @ 0x08182C80 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08182C8E + strh r0, [r4, #0x2e] +_08182C8E: + ldrh r1, [r4, #0x2e] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r0, #0 + bgt _08182CA2 + adds r0, r4, #0 + bl sub_0817FACC + movs r0, #1 + b _08182CA4 +_08182CA2: + subs r0, r1, #1 +_08182CA4: + strh r0, [r4, #0x2e] + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_4B + + thumb_func_start pokemonanimfunc_4C +pokemonanimfunc_4C: @ 0x08182CAC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x1e + strh r0, [r4, #0x2e] + movs r0, #3 + strh r0, [r4, #0x3c] + adds r0, r4, #0 + bl sub_0817FB88 + ldr r0, _08182CC8 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08182CC8: .4byte 0x0817FB89 + thumb_func_end pokemonanimfunc_4C + + thumb_func_start pokemonanimfunc_4D +pokemonanimfunc_4D: @ 0x08182CCC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x1e + strh r0, [r4, #0x2e] + adds r0, r4, #0 + bl sub_0817FBF0 + ldr r0, _08182CE4 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08182CE4: .4byte 0x0817FBF1 + thumb_func_end pokemonanimfunc_4D + + thumb_func_start pokemonanimfunc_4E +pokemonanimfunc_4E: @ 0x08182CE8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F604 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r3, #0 + strh r0, [r4, #0x2e] + ldr r2, _08182D20 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r1, #6] + strh r3, [r1] + movs r0, #2 + strh r0, [r1, #4] + adds r0, r4, #0 + bl sub_0817FCDC + ldr r0, _08182D24 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08182D20: .4byte 0x03001240 +_08182D24: .4byte 0x0817FCDD + thumb_func_end pokemonanimfunc_4E + + thumb_func_start pokemonanimfunc_4F +pokemonanimfunc_4F: @ 0x08182D28 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F604 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x2e] + ldr r2, _08182D60 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r1, #6] + movs r0, #3 + strh r0, [r1, #8] + movs r0, #0xc + strh r0, [r1, #2] + adds r0, r4, #0 + bl sub_0817FE9C + ldr r0, _08182D64 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08182D60: .4byte 0x03001240 +_08182D64: .4byte 0x0817FE9D + thumb_func_end pokemonanimfunc_4F + + thumb_func_start pokemonanimfunc_50 +pokemonanimfunc_50: @ 0x08182D68 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x18 + strh r0, [r4, #0x2e] + adds r0, r4, #0 + bl sub_081801C8 + ldr r0, _08182D80 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08182D80: .4byte 0x081801C9 + thumb_func_end pokemonanimfunc_50 + + thumb_func_start pokemonanimfunc_51 +pokemonanimfunc_51: @ 0x08182D84 + push {r4, lr} + adds r4, r0, #0 + movs r0, #5 + strh r0, [r4, #0x2e] + adds r0, r4, #0 + bl sub_081803A4 + ldr r0, _08182D9C + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08182D9C: .4byte 0x081803A5 + thumb_func_end pokemonanimfunc_51 + + thumb_func_start pokemonanimfunc_52 +pokemonanimfunc_52: @ 0x08182DA0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #3 + strh r0, [r4, #0x2e] + adds r0, r4, #0 + bl sub_0817F8A0 + ldr r0, _08182DB8 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08182DB8: .4byte 0x0817F8A1 + thumb_func_end pokemonanimfunc_52 + + thumb_func_start pokemonanimfunc_53 +pokemonanimfunc_53: @ 0x08182DBC + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F604 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x2e] + ldr r2, _08182DEC + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #0x3c + strh r0, [r1] + movs r0, #0x1e + strh r0, [r1, #8] + adds r0, r4, #0 + bl sub_0817FDE8 + ldr r0, _08182DF0 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08182DEC: .4byte 0x03001240 +_08182DF0: .4byte 0x0817FDE9 + thumb_func_end pokemonanimfunc_53 + + thumb_func_start pokemonanimfunc_54 +pokemonanimfunc_54: @ 0x08182DF4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F604 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x2e] + ldr r2, _08182E24 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #1 + strh r0, [r1, #2] + movs r0, #2 + strh r0, [r1, #4] + adds r0, r4, #0 + bl sub_081810C0 + ldr r0, _08182E28 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08182E24: .4byte 0x03001240 +_08182E28: .4byte 0x081810C1 + thumb_func_end pokemonanimfunc_54 + + thumb_func_start pokemonanimfunc_55 +pokemonanimfunc_55: @ 0x08182E2C + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F604 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x2e] + ldr r2, _08182E5C + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #4 + strh r0, [r1, #6] + movs r0, #2 + strh r0, [r1, #4] + adds r0, r4, #0 + bl sub_081816BC + ldr r0, _08182E60 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08182E5C: .4byte 0x03001240 +_08182E60: .4byte 0x081816BD + thumb_func_end pokemonanimfunc_55 + + thumb_func_start pokemonanimfunc_56 +pokemonanimfunc_56: @ 0x08182E64 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0817F604 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r5, #0 + strh r0, [r4, #0x2e] + ldr r2, _08182EA0 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #1 + strh r0, [r1, #8] + movs r0, #2 + strh r0, [r1, #4] + adds r0, r4, #0 + bl HandleStartAffineAnim + strh r5, [r4, #0x34] + adds r0, r4, #0 + bl sub_08181968 + ldr r0, _08182EA4 + str r0, [r4, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08182EA0: .4byte 0x03001240 +_08182EA4: .4byte 0x08181969 + thumb_func_end pokemonanimfunc_56 + + thumb_func_start pokemonanimfunc_07 +pokemonanimfunc_07: @ 0x08182EA8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F604 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x2e] + ldr r2, _08182ED4 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #2 + strh r0, [r1, #6] + adds r0, r4, #0 + bl sub_08181B94 + ldr r0, _08182ED8 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08182ED4: .4byte 0x03001240 +_08182ED8: .4byte 0x08181B95 + thumb_func_end pokemonanimfunc_07 + + thumb_func_start pokemonanimfunc_08 +pokemonanimfunc_08: @ 0x08182EDC + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F604 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x2e] + ldr r2, _08182F0C + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #4 + strh r0, [r1, #6] + movs r0, #2 + strh r0, [r1, #4] + adds r0, r4, #0 + bl sub_08181B94 + ldr r0, _08182F10 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08182F0C: .4byte 0x03001240 +_08182F10: .4byte 0x08181B95 + thumb_func_end pokemonanimfunc_08 + + thumb_func_start pokemonanimfunc_0B +pokemonanimfunc_0B: @ 0x08182F14 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F604 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x2e] + ldr r2, _08182F40 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #0x64 + strh r0, [r1, #8] + adds r0, r4, #0 + bl sub_08181380 + ldr r0, _08182F44 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08182F40: .4byte 0x03001240 +_08182F44: .4byte 0x08181381 + thumb_func_end pokemonanimfunc_0B + + thumb_func_start pokemonanimfunc_0C +pokemonanimfunc_0C: @ 0x08182F48 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F604 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x2e] + ldr r2, _08182F78 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #0x32 + strh r0, [r1, #8] + movs r0, #2 + strh r0, [r1, #4] + adds r0, r4, #0 + bl sub_08181380 + ldr r0, _08182F7C + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08182F78: .4byte 0x03001240 +_08182F7C: .4byte 0x08181381 + thumb_func_end pokemonanimfunc_0C + + thumb_func_start pokemonanimfunc_0D +pokemonanimfunc_0D: @ 0x08182F80 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F604 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x2e] + ldr r2, _08182FAC + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #0x64 + strh r0, [r1, #8] + adds r0, r4, #0 + bl sub_08181480 + ldr r0, _08182FB0 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08182FAC: .4byte 0x03001240 +_08182FB0: .4byte 0x08181481 + thumb_func_end pokemonanimfunc_0D + + thumb_func_start pokemonanimfunc_0E +pokemonanimfunc_0E: @ 0x08182FB4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F604 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x2e] + ldr r2, _08182FE4 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #0x32 + strh r0, [r1, #8] + movs r0, #2 + strh r0, [r1, #4] + adds r0, r4, #0 + bl sub_08181480 + ldr r0, _08182FE8 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08182FE4: .4byte 0x03001240 +_08182FE8: .4byte 0x08181481 + thumb_func_end pokemonanimfunc_0E + + thumb_func_start sub_08182FEC +sub_08182FEC: @ 0x08182FEC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r2, [r4, r0] + movs r0, #0x90 + lsls r0, r0, #4 + cmp r2, r0 + ble _08183008 + ldr r0, _08183004 + str r0, [r4, #0x1c] + movs r0, #0 + b _0818302C + .align 2, 0 +_08183004: .4byte 0x08184C35 +_08183008: + adds r1, r2, #0 + adds r1, #0xc0 + adds r0, r1, #0 + cmp r1, #0 + bge _08183016 + ldr r3, _0818303C + adds r0, r2, r3 +_08183016: + asrs r0, r0, #8 + lsls r0, r0, #8 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x3c + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, #0x3c] + adds r0, r0, r1 +_0818302C: + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x2e] + ldrh r3, [r4, #0x32] + adds r0, r0, r3 + strh r0, [r4, #0x32] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0818303C: .4byte 0x000001BF + thumb_func_end sub_08182FEC + + thumb_func_start pokemonanimfunc_57 +pokemonanimfunc_57: @ 0x08183040 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x3c + strh r0, [r4, #0x2e] + movs r0, #3 + strh r0, [r4, #0x3c] + adds r0, r4, #0 + bl sub_08182FEC + ldr r0, _0818305C + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0818305C: .4byte 0x08182FED + thumb_func_end pokemonanimfunc_57 + + thumb_func_start pokemonanimfunc_58 +pokemonanimfunc_58: @ 0x08183060 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x1e + strh r0, [r4, #0x2e] + movs r0, #3 + strh r0, [r4, #0x3c] + adds r0, r4, #0 + bl sub_08182FEC + ldr r0, _0818307C + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0818307C: .4byte 0x08182FED + thumb_func_end pokemonanimfunc_58 + + thumb_func_start pokemonanimfunc_59 +pokemonanimfunc_59: @ 0x08183080 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r0, #0x80 + lsls r0, r0, #4 + cmp r1, r0 + ble _081830A4 + ldr r0, _081830A0 + str r0, [r4, #0x1c] + movs r0, #0 + strh r0, [r4, #0x3a] + b _08183168 + .align 2, 0 +_081830A0: .4byte 0x08184C35 +_081830A4: + movs r1, #0x32 + ldrsh r2, [r4, r1] + adds r0, r2, #0 + cmp r2, #0 + bge _081830B2 + ldr r1, _081830D8 + adds r0, r2, r1 +_081830B2: + asrs r3, r0, #9 + adds r1, r3, #0 + adds r0, r1, #0 + cmp r1, #0 + bge _081830BE + adds r0, r1, #3 +_081830BE: + asrs r0, r0, #2 + lsls r0, r0, #2 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + beq _08183114 + cmp r0, #1 + bgt _081830DC + cmp r0, #0 + beq _081830E6 + b _08183144 + .align 2, 0 +_081830D8: .4byte 0x000001FF +_081830DC: + cmp r0, #2 + beq _081830F8 + cmp r0, #3 + beq _08183130 + b _08183144 +_081830E6: + lsls r0, r3, #9 + subs r0, r2, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _081830F4 + adds r0, #0x1f +_081830F4: + asrs r0, r0, #5 + b _08183142 +_081830F8: + lsls r0, r3, #9 + subs r0, r2, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0xc + rsbs r0, r0, #0 + cmp r0, #0 + bge _0818310A + ldr r1, _08183110 + adds r0, r0, r1 +_0818310A: + asrs r0, r0, #9 + b _08183142 + .align 2, 0 +_08183110: .4byte 0x000001FF +_08183114: + lsls r0, r3, #9 + subs r0, r2, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0xc + rsbs r0, r0, #0 + cmp r0, #0 + bge _08183126 + ldr r1, _0818312C + adds r0, r0, r1 +_08183126: + asrs r0, r0, #9 + adds r0, #0x10 + b _08183142 + .align 2, 0 +_0818312C: .4byte 0x000001FF +_08183130: + lsls r0, r3, #9 + subs r0, r2, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _0818313E + adds r0, #0x1f +_0818313E: + asrs r0, r0, #5 + subs r0, #0x10 +_08183142: + strh r0, [r4, #0x24] +_08183144: + movs r0, #0x32 + ldrsh r1, [r4, r0] + adds r0, r1, #0 + cmp r1, #0 + bge _08183150 + adds r0, #0x7f +_08183150: + asrs r0, r0, #7 + lsls r0, r0, #7 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #4 + bl Sin + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x32] + adds r0, #0x18 + strh r0, [r4, #0x32] +_08183168: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_59 + + thumb_func_start sub_08183174 +sub_08183174: @ 0x08183174 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + movs r0, #0 + mov r8, r0 + movs r2, #0x38 + ldrsh r1, [r6, r2] + movs r2, #0x3a + ldrsh r0, [r6, r2] + cmp r1, r0 + ble _081831C6 + mov r0, r8 + strh r0, [r6, #0x26] + strh r0, [r6, #0x38] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r6, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + ldrh r1, [r6, #0x36] + movs r2, #0x36 + ldrsh r0, [r6, r2] + cmp r0, #1 + bgt _081831BC + adds r0, r6, #0 + bl sub_0817F628 + ldr r0, _081831B8 + str r0, [r6, #0x1c] + b _08183288 + .align 2, 0 +_081831B8: .4byte 0x08184C35 +_081831BC: + subs r0, r1, #1 + strh r0, [r6, #0x36] + mov r0, r8 + strh r0, [r6, #0x3c] + b _08183288 +_081831C6: + movs r1, #0x38 + ldrsh r5, [r6, r1] + lsls r0, r5, #7 + movs r2, #0x3a + ldrsh r4, [r6, r2] + adds r1, r4, #0 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r4, #0 + bge _081831E0 + adds r4, #3 +_081831E0: + asrs r1, r4, #2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r5, r1 + blt _08183204 + cmp r5, r0 + bge _08183204 + ldrh r0, [r6, #0x3c] + adds r0, #0x33 + strh r0, [r6, #0x3c] + movs r1, #0xff + mov r8, r1 + ands r1, r0 + mov r8, r1 +_08183204: + movs r1, #0x30 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _08183228 + lsls r4, r2, #0x10 + asrs r0, r4, #0x10 + movs r1, #0x10 + bl Sin + ldr r2, _08183224 + adds r1, r2, #0 + subs r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sb, r1 + b _0818323E + .align 2, 0 +_08183224: .4byte 0xFFFFFF00 +_08183228: + lsls r4, r2, #0x10 + asrs r0, r4, #0x10 + movs r1, #0x10 + bl Sin + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 +_0818323E: + adds r7, r4, #0 + ldrh r4, [r6, #0x34] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r5, r8 + adds r0, r4, #0 + movs r1, #5 + bl __udivsi3 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl Sin + adds r5, r0, #0 + asrs r0, r7, #0x10 + adds r1, r4, #0 + bl Sin + movs r1, #0x80 + lsls r1, r1, #1 + adds r2, r1, #0 + subs r2, r2, r5 + subs r2, r2, r0 + mov r0, sb + lsls r1, r0, #0x10 + asrs r1, r1, #0x10 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r0, r6, #0 + movs r3, #0 + bl SetAffineData + ldrh r0, [r6, #0x38] + adds r0, #1 + strh r0, [r6, #0x38] +_08183288: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08183174 + + thumb_func_start pokemonanimfunc_5A +pokemonanimfunc_5A: @ 0x08183294 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #0x32 + ldrsh r6, [r5, r0] + cmp r6, #0 + bne _081832B6 + movs r4, #1 + strh r4, [r5, #0x32] + adds r0, r5, #0 + bl HandleStartAffineAnim + strh r4, [r5, #0x36] + movs r0, #0x28 + strh r0, [r5, #0x3a] + strh r0, [r5, #0x34] + strh r6, [r5, #0x38] + strh r6, [r5, #0x3c] +_081832B6: + adds r0, r5, #0 + bl sub_08183174 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_5A + + thumb_func_start sub_081832C4 +sub_081832C4: @ 0x081832C4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + movs r0, #0 + mov r8, r0 + movs r2, #0x38 + ldrsh r1, [r6, r2] + movs r2, #0x3a + ldrsh r0, [r6, r2] + cmp r1, r0 + ble _08183316 + mov r0, r8 + strh r0, [r6, #0x38] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r6, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + ldrh r1, [r6, #0x36] + movs r2, #0x36 + ldrsh r0, [r6, r2] + cmp r0, #1 + bgt _0818330C + adds r0, r6, #0 + bl sub_0817F628 + ldr r0, _08183308 + str r0, [r6, #0x1c] + b _081833E4 + .align 2, 0 +_08183308: .4byte 0x08184C35 +_0818330C: + subs r0, r1, #1 + strh r0, [r6, #0x36] + mov r0, r8 + strh r0, [r6, #0x3c] + b _081833E4 +_08183316: + movs r1, #0x38 + ldrsh r5, [r6, r1] + lsls r0, r5, #7 + movs r2, #0x3a + ldrsh r4, [r6, r2] + adds r1, r4, #0 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + cmp r4, #0 + bge _08183332 + adds r4, #3 +_08183332: + asrs r1, r4, #2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r5, r1 + blt _08183358 + cmp r5, r0 + bge _08183358 + ldrh r0, [r6, #0x3c] + adds r0, #0x33 + strh r0, [r6, #0x3c] + movs r1, #0xff + mov r8, r1 + mov r2, r8 + ands r2, r0 + mov r8, r2 +_08183358: + ldrh r0, [r6, #0x34] + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r1, #0x30 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _0818339C + mov r2, sb + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + adds r1, r7, #0 + bl Sin + adds r4, r0, #0 + mov r5, r8 + adds r0, r7, #0 + movs r1, #5 + bl __udivsi3 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x17 + adds r0, r5, #0 + bl Sin + ldr r1, _08183398 + adds r0, r0, r1 + adds r4, r4, r0 + lsls r4, r4, #0x10 + lsrs r1, r4, #0x10 + b _081833CE + .align 2, 0 +_08183398: .4byte 0xFFFFFF00 +_0818339C: + mov r4, r8 + adds r0, r7, #0 + movs r1, #5 + bl __udivsi3 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x17 + adds r0, r4, #0 + bl Sin + adds r4, r0, #0 + mov r2, sb + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + adds r1, r7, #0 + bl Sin + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + subs r1, r1, r4 + subs r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 +_081833CE: + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r6, #0 + movs r3, #0 + bl SetAffineData + ldrh r0, [r6, #0x38] + adds r0, #1 + strh r0, [r6, #0x38] +_081833E4: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_081832C4 + + thumb_func_start pokemonanimfunc_5B +pokemonanimfunc_5B: @ 0x081833F0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #0x32 + ldrsh r6, [r5, r0] + cmp r6, #0 + bne _08183412 + movs r4, #1 + strh r4, [r5, #0x32] + adds r0, r5, #0 + bl HandleStartAffineAnim + strh r4, [r5, #0x36] + movs r0, #0x28 + strh r0, [r5, #0x3a] + strh r0, [r5, #0x34] + strh r6, [r5, #0x38] + strh r6, [r5, #0x3c] +_08183412: + adds r0, r5, #0 + bl sub_081832C4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_5B + + thumb_func_start sub_08183420 +sub_08183420: @ 0x08183420 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + ldrh r0, [r4, #0x32] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldrh r0, [r4, #0x3a] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldr r3, _0818347C + movs r1, #0x38 + ldrsh r0, [r4, r1] + lsls r1, r0, #1 + adds r0, r1, r3 + ldrb r5, [r0] + adds r2, r5, #0 + cmp r5, #0xff + beq _08183452 + ldrh r0, [r4, #0x3c] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_08183452: + adds r0, r3, #1 + adds r0, r1, r0 + ldrb r6, [r0] + movs r7, #0 + cmp r2, #0xfe + beq _0818346E + mov r1, sb + subs r0, r6, r1 + muls r0, r5, r0 + adds r1, r6, #0 + bl __divsi3 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 +_0818346E: + cmp r5, #0xff + bne _08183484 + ldr r0, _08183480 + str r0, [r4, #0x1c] + movs r0, #0 + strh r0, [r4, #0x26] + b _081834B6 + .align 2, 0 +_0818347C: .4byte 0x085D34E0 +_08183480: .4byte 0x08184C35 +_08183484: + mov r1, r8 + adds r1, #0xc0 + adds r0, r1, #0 + asrs r0, r0, #8 + lsls r0, r0, #8 + subs r0, r1, r0 + adds r1, r7, #0 + bl Sin + adds r0, r0, r7 + strh r0, [r4, #0x26] + cmp sb, r6 + bne _081834A8 + ldrh r0, [r4, #0x38] + adds r0, #1 + strh r0, [r4, #0x38] + movs r0, #0 + b _081834B4 +_081834A8: + ldrh r0, [r4, #0x2e] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x3a] + adds r0, #1 +_081834B4: + strh r0, [r4, #0x3a] +_081834B6: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08183420 + + thumb_func_start pokemonanimfunc_5C +pokemonanimfunc_5C: @ 0x081834C4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x28 + strh r0, [r4, #0x2e] + movs r0, #6 + strh r0, [r4, #0x3c] + adds r0, r4, #0 + bl sub_08183420 + ldr r0, _081834E0 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081834E0: .4byte 0x08183421 + thumb_func_end pokemonanimfunc_5C + + thumb_func_start pokemonanimfunc_5D +pokemonanimfunc_5D: @ 0x081834E4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x46 + strh r0, [r4, #0x2e] + movs r0, #6 + strh r0, [r4, #0x3c] + adds r0, r4, #0 + bl sub_0817FB88 + ldr r0, _08183500 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08183500: .4byte 0x0817FB89 + thumb_func_end pokemonanimfunc_5D + + thumb_func_start pokemonanimfunc_5E +pokemonanimfunc_5E: @ 0x08183504 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x14 + strh r0, [r4, #0x2e] + adds r0, r4, #0 + bl sub_0817F7A8 + ldr r0, _0818351C + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0818351C: .4byte 0x0817F7A9 + thumb_func_end pokemonanimfunc_5E + + thumb_func_start pokemonanimfunc_5F +pokemonanimfunc_5F: @ 0x08183520 + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x32] + movs r2, #0x32 + ldrsh r0, [r4, r2] + cmp r0, #0x28 + ble _0818353C + ldr r0, _08183538 + str r0, [r4, #0x1c] + movs r0, #0 + b _08183576 + .align 2, 0 +_08183538: .4byte 0x08184C35 +_0818353C: + movs r0, #1 + ands r0, r1 + movs r5, #0xff + cmp r0, #0 + bne _08183548 + movs r5, #1 +_08183548: + movs r1, #0x32 + ldrsh r0, [r4, r1] + lsls r0, r0, #7 + movs r1, #0x28 + bl __divsi3 + adds r1, r0, #0 + cmp r1, #0 + bge _0818355C + adds r0, #0xff +_0818355C: + asrs r0, r0, #8 + lsls r0, r0, #8 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #9 + bl Sin + lsls r1, r5, #0x18 + asrs r1, r1, #0x18 + adds r2, r0, #0 + muls r2, r1, r2 + adds r0, r2, #0 +_08183576: + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_5F + + thumb_func_start pokemonanimfunc_60 +pokemonanimfunc_60: @ 0x08183584 + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x32] + movs r2, #0x32 + ldrsh r0, [r4, r2] + cmp r0, #0x28 + ble _081835A0 + ldr r0, _0818359C + str r0, [r4, #0x1c] + movs r0, #0 + b _081835DA + .align 2, 0 +_0818359C: .4byte 0x08184C35 +_081835A0: + movs r0, #1 + ands r0, r1 + movs r5, #0xff + cmp r0, #0 + bne _081835AC + movs r5, #1 +_081835AC: + movs r1, #0x32 + ldrsh r0, [r4, r1] + lsls r0, r0, #7 + movs r1, #0x28 + bl __divsi3 + adds r1, r0, #0 + cmp r1, #0 + bge _081835C0 + adds r0, #0xff +_081835C0: + asrs r0, r0, #8 + lsls r0, r0, #8 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0xc + bl Sin + lsls r1, r5, #0x18 + asrs r1, r1, #0x18 + adds r2, r0, #0 + muls r2, r1, r2 + adds r0, r2, #0 +_081835DA: + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_60 + + thumb_func_start pokemonanimfunc_61 +pokemonanimfunc_61: @ 0x081835E8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x46 + strh r0, [r4, #0x2e] + movs r0, #6 + strh r0, [r4, #0x3c] + adds r0, r4, #0 + bl sub_08182FEC + ldr r0, _08183604 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08183604: .4byte 0x08182FED + thumb_func_end pokemonanimfunc_61 + + thumb_func_start pokemonanimfunc_62 +pokemonanimfunc_62: @ 0x08183608 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x18 + strh r0, [r4, #0x2e] + movs r0, #6 + strh r0, [r4, #0x3c] + adds r0, r4, #0 + bl sub_08183420 + ldr r0, _08183624 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08183624: .4byte 0x08183421 + thumb_func_end pokemonanimfunc_62 + + thumb_func_start pokemonanimfunc_63 +pokemonanimfunc_63: @ 0x08183628 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x38 + strh r0, [r4, #0x2e] + movs r0, #9 + strh r0, [r4, #0x3c] + adds r0, r4, #0 + bl sub_08183420 + ldr r0, _08183644 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08183644: .4byte 0x08183421 + thumb_func_end pokemonanimfunc_63 + + thumb_func_start pokemonanimfunc_64 +pokemonanimfunc_64: @ 0x08183648 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F604 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x2e] + ldr r2, _08183680 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r1, #6] + movs r0, #6 + strh r0, [r1, #8] + movs r0, #0x18 + strh r0, [r1, #2] + adds r0, r4, #0 + bl sub_0817FE9C + ldr r0, _08183684 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08183680: .4byte 0x03001240 +_08183684: .4byte 0x0817FE9D + thumb_func_end pokemonanimfunc_64 + + thumb_func_start sub_08183688 +sub_08183688: @ 0x08183688 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r7, r0, #0 + movs r5, #0 + movs r0, #0x38 + ldrsh r1, [r7, r0] + movs r2, #0x3a + ldrsh r0, [r7, r2] + cmp r1, r0 + ble _081836D8 + strh r5, [r7, #0x26] + strh r5, [r7, #0x38] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r7, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + ldrh r1, [r7, #0x36] + movs r2, #0x36 + ldrsh r0, [r7, r2] + cmp r0, #1 + bgt _081836D0 + adds r0, r7, #0 + bl sub_0817F628 + ldr r0, _081836CC + str r0, [r7, #0x1c] + b _081837D8 + .align 2, 0 +_081836CC: .4byte 0x08184C35 +_081836D0: + subs r0, r1, #1 + strh r0, [r7, #0x36] + strh r5, [r7, #0x3c] + b _081837D8 +_081836D8: + movs r0, #0x38 + ldrsh r6, [r7, r0] + lsls r0, r6, #7 + movs r1, #0x3a + ldrsh r4, [r7, r1] + adds r1, r4, #0 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r4, #0 + bge _081836F2 + adds r4, #3 +_081836F2: + asrs r1, r4, #2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r6, r1 + blt _08183712 + cmp r6, r0 + bge _08183712 + ldrh r0, [r7, #0x3c] + adds r0, #0x33 + strh r0, [r7, #0x3c] + movs r5, #0xff + ands r5, r0 +_08183712: + ldrh r0, [r7, #0x34] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + movs r1, #0x30 + ldrsh r0, [r7, r1] + cmp r0, #0 + bne _0818375C + lsls r2, r2, #0x10 + mov r8, r2 + asrs r0, r2, #0x10 + mov r1, sb + bl Sin + adds r4, r0, #0 + lsls r6, r5, #0x10 + asrs r5, r6, #0x10 + mov r0, sb + movs r1, #5 + bl __udivsi3 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x17 + adds r0, r5, #0 + bl Sin + ldr r2, _08183758 + adds r4, r4, r2 + adds r0, r0, r4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 + mov r0, r8 + b _08183796 + .align 2, 0 +_08183758: .4byte 0xFFFFFF00 +_0818375C: + lsls r2, r2, #0x10 + mov r8, r2 + asrs r0, r2, #0x10 + mov r1, sb + bl Sin + adds r6, r0, #0 + lsls r5, r5, #0x10 + asrs r4, r5, #0x10 + mov r0, sb + movs r1, #5 + bl __udivsi3 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x17 + adds r0, r4, #0 + bl Sin + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + subs r1, r1, r6 + subs r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sl, r1 + mov r0, r8 + adds r6, r5, #0 +_08183796: + asrs r0, r0, #0x10 + mov r1, sb + bl Sin + adds r5, r0, #0 + asrs r4, r6, #0x10 + mov r0, sb + movs r1, #5 + bl __udivsi3 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl Sin + movs r1, #0x80 + lsls r1, r1, #1 + adds r2, r1, #0 + subs r2, r2, r5 + subs r2, r2, r0 + mov r0, sl + lsls r1, r0, #0x10 + asrs r1, r1, #0x10 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r0, r7, #0 + movs r3, #0 + bl SetAffineData + ldrh r0, [r7, #0x38] + adds r0, #1 + strh r0, [r7, #0x38] +_081837D8: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08183688 + + thumb_func_start pokemonanimfunc_65 +pokemonanimfunc_65: @ 0x081837E8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #0x32 + ldrsh r6, [r5, r0] + cmp r6, #0 + bne _0818380A + movs r4, #1 + strh r4, [r5, #0x32] + adds r0, r5, #0 + bl HandleStartAffineAnim + strh r4, [r5, #0x36] + movs r0, #0x28 + strh r0, [r5, #0x3a] + strh r0, [r5, #0x34] + strh r6, [r5, #0x38] + strh r6, [r5, #0x3c] +_0818380A: + adds r0, r5, #0 + bl sub_08183688 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_65 + + thumb_func_start pokemonanimfunc_66 +pokemonanimfunc_66: @ 0x08183818 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r0, #0x80 + lsls r0, r0, #4 + cmp r1, r0 + ble _0818383C + ldr r0, _08183838 + str r0, [r4, #0x1c] + movs r0, #0 + strh r0, [r4, #0x3a] + b _08183900 + .align 2, 0 +_08183838: .4byte 0x08184C35 +_0818383C: + movs r1, #0x32 + ldrsh r2, [r4, r1] + adds r0, r2, #0 + cmp r2, #0 + bge _0818384A + ldr r1, _08183870 + adds r0, r2, r1 +_0818384A: + asrs r3, r0, #9 + adds r1, r3, #0 + adds r0, r1, #0 + cmp r1, #0 + bge _08183856 + adds r0, r1, #3 +_08183856: + asrs r0, r0, #2 + lsls r0, r0, #2 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + beq _081838AC + cmp r0, #1 + bgt _08183874 + cmp r0, #0 + beq _0818387E + b _081838DC + .align 2, 0 +_08183870: .4byte 0x000001FF +_08183874: + cmp r0, #2 + beq _08183890 + cmp r0, #3 + beq _081838C8 + b _081838DC +_0818387E: + lsls r0, r3, #9 + subs r0, r2, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _0818388C + adds r0, #0x1f +_0818388C: + asrs r0, r0, #5 + b _081838DA +_08183890: + lsls r0, r3, #9 + subs r0, r2, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0xc + rsbs r0, r0, #0 + cmp r0, #0 + bge _081838A2 + ldr r1, _081838A8 + adds r0, r0, r1 +_081838A2: + asrs r0, r0, #9 + b _081838DA + .align 2, 0 +_081838A8: .4byte 0x000001FF +_081838AC: + lsls r0, r3, #9 + subs r0, r2, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0xc + rsbs r0, r0, #0 + cmp r0, #0 + bge _081838BE + ldr r1, _081838C4 + adds r0, r0, r1 +_081838BE: + asrs r0, r0, #9 + adds r0, #0x10 + b _081838DA + .align 2, 0 +_081838C4: .4byte 0x000001FF +_081838C8: + lsls r0, r3, #9 + subs r0, r2, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _081838D6 + adds r0, #0x1f +_081838D6: + asrs r0, r0, #5 + subs r0, #0x10 +_081838DA: + strh r0, [r4, #0x24] +_081838DC: + movs r0, #0x32 + ldrsh r1, [r4, r0] + adds r0, r1, #0 + cmp r1, #0 + bge _081838E8 + adds r0, #0x7f +_081838E8: + asrs r0, r0, #7 + lsls r0, r0, #7 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #4 + bl Sin + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x32] + adds r0, #0x30 + strh r0, [r4, #0x32] +_08183900: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_66 + + thumb_func_start pokemonanimfunc_67 +pokemonanimfunc_67: @ 0x0818390C + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r0, #0x80 + lsls r0, r0, #4 + cmp r1, r0 + ble _08183930 + ldr r0, _0818392C + str r0, [r4, #0x1c] + movs r0, #0 + strh r0, [r4, #0x3a] + b _081839EC + .align 2, 0 +_0818392C: .4byte 0x08184C35 +_08183930: + movs r1, #0x32 + ldrsh r2, [r4, r1] + adds r0, r2, #0 + cmp r2, #0 + bge _0818393E + ldr r1, _08183964 + adds r0, r2, r1 +_0818393E: + asrs r3, r0, #9 + adds r1, r3, #0 + adds r0, r1, #0 + cmp r1, #0 + bge _0818394A + adds r0, r1, #3 +_0818394A: + asrs r0, r0, #2 + lsls r0, r0, #2 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + beq _081839A0 + cmp r0, #1 + bgt _08183968 + cmp r0, #0 + beq _08183972 + b _081839D0 + .align 2, 0 +_08183964: .4byte 0x000001FF +_08183968: + cmp r0, #2 + beq _08183984 + cmp r0, #3 + beq _081839BC + b _081839D0 +_08183972: + lsls r0, r3, #9 + subs r0, r2, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _08183980 + adds r0, #0x1f +_08183980: + asrs r0, r0, #5 + b _081839CE +_08183984: + lsls r0, r3, #9 + subs r0, r2, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0xc + rsbs r0, r0, #0 + cmp r0, #0 + bge _08183996 + ldr r1, _0818399C + adds r0, r0, r1 +_08183996: + asrs r0, r0, #9 + b _081839CE + .align 2, 0 +_0818399C: .4byte 0x000001FF +_081839A0: + lsls r0, r3, #9 + subs r0, r2, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0xc + rsbs r0, r0, #0 + cmp r0, #0 + bge _081839B2 + ldr r1, _081839B8 + adds r0, r0, r1 +_081839B2: + asrs r0, r0, #9 + adds r0, #0x10 + b _081839CE + .align 2, 0 +_081839B8: .4byte 0x000001FF +_081839BC: + lsls r0, r3, #9 + subs r0, r2, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _081839CA + adds r0, #0x1f +_081839CA: + asrs r0, r0, #5 + subs r0, #0x10 +_081839CE: + strh r0, [r4, #0x24] +_081839D0: + movs r1, #0x32 + ldrsh r0, [r4, r1] + movs r1, #0x60 + bl __modsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #4 + bl Sin + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x32] + adds r0, #0x40 + strh r0, [r4, #0x32] +_081839EC: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_67 + + thumb_func_start sub_081839F8 +sub_081839F8: @ 0x081839F8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08183A0A + strh r0, [r4, #0x34] +_08183A0A: + ldr r7, _08183A6C + movs r2, #0x34 + ldrsh r1, [r4, r2] + lsls r0, r1, #1 + adds r0, r0, r1 + adds r5, r7, #2 + adds r0, r0, r5 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r2, #0x38 + ldrsh r1, [r4, r2] + bl __divsi3 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _08183A38 + ldrh r0, [r4, #0x34] + adds r0, #1 + movs r1, #0 + strh r0, [r4, #0x34] + strh r1, [r4, #0x32] +_08183A38: + movs r0, #0x34 + ldrsh r1, [r4, r0] + lsls r0, r1, #1 + adds r6, r0, r1 + adds r0, r6, r5 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #0x38 + ldrsh r5, [r4, r1] + adds r1, r5, #0 + bl __divsi3 + adds r1, r0, #0 + cmp r1, #0 + bne _08183A78 + ldrh r0, [r4, #0x3a] + subs r0, #1 + strh r0, [r4, #0x3a] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08183A74 + ldr r0, _08183A70 + str r0, [r4, #0x1c] + b _08183AB2 + .align 2, 0 +_08183A6C: .4byte 0x085D381E +_08183A70: .4byte 0x08184C35 +_08183A74: + strh r1, [r4, #0x32] + b _08183AB2 +_08183A78: + adds r0, r6, r7 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + muls r0, r5, r0 + ldrh r2, [r4, #0x24] + adds r0, r0, r2 + strh r0, [r4, #0x24] + movs r0, #0x34 + ldrsh r1, [r4, r0] + lsls r0, r1, #1 + adds r0, r0, r1 + adds r1, r7, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsb r1, [r0, r1] + ldrh r0, [r4, #0x38] + adds r2, r0, #0 + muls r2, r1, r2 + adds r0, r2, #0 + ldrh r1, [r4, #0x26] + adds r0, r0, r1 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_0817F5B8 +_08183AB2: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_081839F8 + + thumb_func_start pokemonanimfunc_68 +pokemonanimfunc_68: @ 0x08183AB8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strh r0, [r4, #0x38] + strh r0, [r4, #0x3a] + adds r0, r4, #0 + bl sub_081839F8 + ldr r0, _08183AD4 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08183AD4: .4byte 0x081839F9 + thumb_func_end pokemonanimfunc_68 + + thumb_func_start pokemonanimfunc_69 +pokemonanimfunc_69: @ 0x08183AD8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strh r0, [r4, #0x38] + movs r0, #1 + strh r0, [r4, #0x3a] + adds r0, r4, #0 + bl sub_081839F8 + ldr r0, _08183AF4 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08183AF4: .4byte 0x081839F9 + thumb_func_end pokemonanimfunc_69 + + thumb_func_start pokemonanimfunc_6A +pokemonanimfunc_6A: @ 0x08183AF8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strh r0, [r4, #0x38] + strh r0, [r4, #0x3a] + adds r0, r4, #0 + bl sub_081839F8 + ldr r0, _08183B14 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08183B14: .4byte 0x081839F9 + thumb_func_end pokemonanimfunc_6A + + thumb_func_start sub_08183B18 +sub_08183B18: @ 0x08183B18 + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x3c] + movs r2, #0x3c + ldrsh r0, [r4, r2] + cmp r0, #0xff + ble _08183B5A + ldrh r1, [r4, #0x38] + movs r2, #0x38 + ldrsh r0, [r4, r2] + cmp r0, #1 + bgt _08183B50 + adds r0, r4, #0 + bl sub_0817F628 + ldr r0, _08183B4C + str r0, [r4, #0x1c] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + b _08183B94 + .align 2, 0 +_08183B4C: .4byte 0x08184C35 +_08183B50: + subs r0, r1, #1 + movs r1, #0 + strh r0, [r4, #0x38] + strh r1, [r4, #0x3c] + b _08183B94 +_08183B5A: + ldrh r0, [r4, #0x3a] + adds r0, r1, r0 + strh r0, [r4, #0x3c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r5, #0x80 + lsls r5, r5, #1 + cmp r0, r5 + ble _08183B6E + strh r5, [r4, #0x3c] +_08183B6E: + movs r1, #0x3c + ldrsh r0, [r4, r1] + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + movs r1, #0x40 + bl Sin + adds r2, r0, #0 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + subs r2, r5, r2 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData +_08183B94: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08183B18 + + thumb_func_start pokemonanimfunc_6B +pokemonanimfunc_6B: @ 0x08183B9C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + movs r0, #0x32 + ldrsh r5, [r4, r0] + cmp r5, #0 + bne _08183BC2 + adds r0, r4, #0 + bl HandleStartAffineAnim + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + strh r5, [r4, #0x3c] + movs r0, #4 + strh r0, [r4, #0x3a] + movs r0, #1 + strh r0, [r4, #0x38] +_08183BC2: + adds r0, r4, #0 + bl sub_08183B18 + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_6B + + thumb_func_start pokemonanimfunc_6C +pokemonanimfunc_6C: @ 0x08183BD4 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + movs r0, #0x32 + ldrsh r5, [r4, r0] + cmp r5, #0 + bne _08183BFA + adds r0, r4, #0 + bl HandleStartAffineAnim + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + strh r5, [r4, #0x3c] + movs r0, #8 + strh r0, [r4, #0x3a] + movs r0, #2 + strh r0, [r4, #0x38] +_08183BFA: + adds r0, r4, #0 + bl sub_08183B18 + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_6C + + thumb_func_start pokemonanimfunc_6D +pokemonanimfunc_6D: @ 0x08183C0C + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r5, [r4, r0] + cmp r5, #0 + bne _08183C34 + adds r0, r4, #0 + bl HandleStartAffineAnim + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + strh r5, [r4, #0x3c] + movs r0, #8 + strh r0, [r4, #0x3a] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x38] + movs r0, #0x10 + strh r0, [r4, #0x36] +_08183C34: + adds r0, r4, #0 + bl sub_08182610 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_6D + + thumb_func_start pokemonanimfunc_6E +pokemonanimfunc_6E: @ 0x08183C40 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r5, [r4, r0] + cmp r5, #0 + bne _08183C66 + adds r0, r4, #0 + bl HandleStartAffineAnim + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + strh r5, [r4, #0x3c] + movs r0, #4 + strh r0, [r4, #0x3a] + adds r0, #0xfc + strh r0, [r4, #0x38] + movs r0, #0x10 + strh r0, [r4, #0x36] +_08183C66: + adds r0, r4, #0 + bl sub_08182610 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_6E + + thumb_func_start pokemonanimfunc_6F +pokemonanimfunc_6F: @ 0x08183C74 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r5, [r4, r0] + cmp r5, #0 + bne _08183C9C + adds r0, r4, #0 + bl HandleStartAffineAnim + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + strh r5, [r4, #0x3c] + movs r0, #8 + strh r0, [r4, #0x3a] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x38] + movs r0, #0x10 + strh r0, [r4, #0x36] +_08183C9C: + adds r0, r4, #0 + bl sub_081826DC + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_6F + + thumb_func_start pokemonanimfunc_70 +pokemonanimfunc_70: @ 0x08183CA8 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r5, [r4, r0] + cmp r5, #0 + bne _08183CCE + adds r0, r4, #0 + bl HandleStartAffineAnim + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + strh r5, [r4, #0x3c] + movs r1, #8 + strh r1, [r4, #0x3a] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x38] + strh r1, [r4, #0x36] +_08183CCE: + adds r0, r4, #0 + bl sub_081826DC + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_70 + + thumb_func_start pokemonanimfunc_71 +pokemonanimfunc_71: @ 0x08183CDC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08183CF6 + adds r0, r4, #0 + bl HandleStartAffineAnim + movs r0, #5 + strh r0, [r4, #0x3c] + movs r0, #8 + strh r0, [r4, #0x3a] +_08183CF6: + adds r0, r4, #0 + bl sub_081806D4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_71 + + thumb_func_start pokemonanimfunc_72 +pokemonanimfunc_72: @ 0x08183D04 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08183D1E + adds r0, r4, #0 + bl HandleStartAffineAnim + movs r0, #3 + strh r0, [r4, #0x3c] + movs r0, #4 + strh r0, [r4, #0x3a] +_08183D1E: + adds r0, r4, #0 + bl sub_081806D4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_72 + + thumb_func_start pokemonanimfunc_73 +pokemonanimfunc_73: @ 0x08183D2C + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #0x32 + ldrsh r6, [r5, r0] + cmp r6, #0 + bne _08183D4E + movs r4, #1 + strh r4, [r5, #0x32] + adds r0, r5, #0 + bl HandleStartAffineAnim + strh r4, [r5, #0x36] + movs r0, #0x1e + strh r0, [r5, #0x3a] + movs r0, #0x3c + strh r0, [r5, #0x34] + strh r6, [r5, #0x3c] +_08183D4E: + adds r0, r5, #0 + bl sub_08183174 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_73 + + thumb_func_start pokemonanimfunc_74 +pokemonanimfunc_74: @ 0x08183D5C + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r5, [r4, r0] + cmp r5, #0 + bne _08183D80 + movs r0, #1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl HandleStartAffineAnim + movs r0, #2 + strh r0, [r4, #0x36] + movs r0, #0x14 + strh r0, [r4, #0x3a] + movs r0, #0x46 + strh r0, [r4, #0x34] + strh r5, [r4, #0x3c] +_08183D80: + adds r0, r4, #0 + bl sub_08183174 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_74 + + thumb_func_start pokemonanimfunc_75 +pokemonanimfunc_75: @ 0x08183D8C + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r5, [r4, r0] + cmp r5, #0 + bne _08183DB2 + movs r0, #1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl HandleStartAffineAnim + movs r0, #2 + strh r0, [r4, #0x36] + movs r0, #0x14 + strh r0, [r4, #0x3a] + movs r0, #0x46 + strh r0, [r4, #0x34] + strh r5, [r4, #0x38] + strh r5, [r4, #0x3c] +_08183DB2: + adds r0, r4, #0 + bl sub_081832C4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_75 + + thumb_func_start pokemonanimfunc_76 +pokemonanimfunc_76: @ 0x08183DC0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #0x32 + ldrsh r6, [r5, r0] + cmp r6, #0 + bne _08183DE4 + movs r4, #1 + strh r4, [r5, #0x32] + adds r0, r5, #0 + bl HandleStartAffineAnim + strh r4, [r5, #0x36] + movs r0, #0x1e + strh r0, [r5, #0x3a] + movs r0, #0x3c + strh r0, [r5, #0x34] + strh r6, [r5, #0x38] + strh r6, [r5, #0x3c] +_08183DE4: + adds r0, r5, #0 + bl sub_081832C4 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_76 + + thumb_func_start pokemonanimfunc_77 +pokemonanimfunc_77: @ 0x08183DF0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r5, [r4, r0] + cmp r5, #0 + bne _08183E16 + movs r0, #1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl HandleStartAffineAnim + movs r0, #2 + strh r0, [r4, #0x36] + movs r0, #0x14 + strh r0, [r4, #0x3a] + movs r0, #0x46 + strh r0, [r4, #0x34] + strh r5, [r4, #0x38] + strh r5, [r4, #0x3c] +_08183E16: + adds r0, r4, #0 + bl sub_08183688 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_77 + + thumb_func_start pokemonanimfunc_78 +pokemonanimfunc_78: @ 0x08183E24 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #0x32 + ldrsh r6, [r5, r0] + cmp r6, #0 + bne _08183E48 + movs r4, #1 + strh r4, [r5, #0x32] + adds r0, r5, #0 + bl HandleStartAffineAnim + strh r4, [r5, #0x36] + movs r0, #0x1e + strh r0, [r5, #0x3a] + movs r0, #0x3c + strh r0, [r5, #0x34] + strh r6, [r5, #0x38] + strh r6, [r5, #0x3c] +_08183E48: + adds r0, r5, #0 + bl sub_08183688 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_78 + + thumb_func_start sub_08183E54 +sub_08183E54: @ 0x08183E54 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x3c + ldrsh r0, [r4, r1] + cmp r0, #0xff + ble _08183E96 + ldrh r2, [r4, #0x3a] + movs r3, #0x3a + ldrsh r0, [r4, r3] + cmp r0, #1 + bgt _08183E7C + ldr r0, _08183E78 + str r0, [r4, #0x1c] + movs r0, #0 + strh r0, [r4, #0x24] + strh r0, [r4, #0x26] + b _08183EEA + .align 2, 0 +_08183E78: .4byte 0x08184C35 +_08183E7C: + movs r0, #0x3c + ldrsh r1, [r4, r0] + adds r0, r1, #0 + cmp r1, #0 + bge _08183E88 + adds r0, #0xff +_08183E88: + asrs r0, r0, #8 + lsls r0, r0, #8 + subs r0, r1, r0 + strh r0, [r4, #0x3c] + subs r0, r2, #1 + strh r0, [r4, #0x3a] + b _08183EEA +_08183E96: + movs r1, #0x3c + ldrsh r0, [r4, r1] + movs r2, #0x38 + ldrsh r1, [r4, r2] + bl Sin + rsbs r0, r0, #0 + strh r0, [r4, #0x24] + movs r3, #0x3c + ldrsh r2, [r4, r3] + adds r1, r2, #0 + adds r1, #0xc0 + adds r0, r1, #0 + cmp r1, #0 + bge _08183EB8 + ldr r3, _08183EF0 + adds r0, r2, r3 +_08183EB8: + asrs r0, r0, #8 + lsls r0, r0, #8 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x36 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, #0x26] + lsls r0, r0, #0x10 + cmp r0, #0 + ble _08183EDA + movs r3, #0x26 + ldrsh r0, [r4, r3] + rsbs r0, r0, #0 + strh r0, [r4, #0x26] +_08183EDA: + ldrh r0, [r4, #0x36] + ldrh r1, [r4, #0x26] + adds r0, r0, r1 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x34] + ldrh r2, [r4, #0x3c] + adds r0, r0, r2 + strh r0, [r4, #0x3c] +_08183EEA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08183EF0: .4byte 0x000001BF + thumb_func_end sub_08183E54 + + thumb_func_start pokemonanimfunc_79 +pokemonanimfunc_79: @ 0x08183EF4 + push {lr} + adds r1, r0, #0 + movs r0, #0x32 + ldrsh r2, [r1, r0] + cmp r2, #0 + bne _08183F12 + movs r0, #1 + strh r0, [r1, #0x32] + strh r0, [r1, #0x3a] + strh r2, [r1, #0x3c] + movs r0, #0xc + strh r0, [r1, #0x38] + strh r0, [r1, #0x36] + movs r0, #4 + strh r0, [r1, #0x34] +_08183F12: + adds r0, r1, #0 + bl sub_08183E54 + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_79 + + thumb_func_start pokemonanimfunc_7A +pokemonanimfunc_7A: @ 0x08183F1C + push {lr} + adds r1, r0, #0 + movs r0, #0x32 + ldrsh r2, [r1, r0] + cmp r2, #0 + bne _08183F3A + movs r0, #1 + strh r0, [r1, #0x32] + strh r0, [r1, #0x3a] + strh r2, [r1, #0x3c] + movs r0, #0xc + strh r0, [r1, #0x38] + strh r0, [r1, #0x36] + movs r0, #6 + strh r0, [r1, #0x34] +_08183F3A: + adds r0, r1, #0 + bl sub_08183E54 + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_7A + + thumb_func_start pokemonanimfunc_7B +pokemonanimfunc_7B: @ 0x08183F44 + push {lr} + adds r1, r0, #0 + movs r0, #0x32 + ldrsh r2, [r1, r0] + cmp r2, #0 + bne _08183F64 + movs r0, #1 + strh r0, [r1, #0x32] + movs r0, #2 + strh r0, [r1, #0x3a] + strh r2, [r1, #0x3c] + movs r0, #0xc + strh r0, [r1, #0x38] + strh r0, [r1, #0x36] + movs r0, #8 + strh r0, [r1, #0x34] +_08183F64: + adds r0, r1, #0 + bl sub_08183E54 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_7B + + thumb_func_start sub_08183F70 +sub_08183F70: @ 0x08183F70 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0x3c + ldrsh r0, [r5, r1] + movs r1, #0x80 + lsls r1, r1, #1 + cmp r0, r1 + ble _08183FA8 + movs r2, #0x3a + ldrsh r1, [r5, r2] + ldrh r2, [r5, #0x36] + movs r3, #0x36 + ldrsh r0, [r5, r3] + cmp r1, r0 + bgt _08183F98 + ldr r0, _08183F94 + str r0, [r5, #0x1c] + b _08183FA0 + .align 2, 0 +_08183F94: .4byte 0x08184C35 +_08183F98: + adds r0, r2, #1 + movs r1, #0 + strh r0, [r5, #0x36] + strh r1, [r5, #0x3c] +_08183FA0: + movs r0, #0 + strh r0, [r5, #0x24] + strh r0, [r5, #0x26] + b _08184034 +_08183FA8: + cmp r0, #0x9f + ble _08183FD2 + cmp r0, r1 + ble _08183FB2 + strh r1, [r5, #0x3c] +_08183FB2: + movs r0, #0x3c + ldrsh r1, [r5, r0] + adds r0, r1, #0 + cmp r1, #0 + bge _08183FBE + adds r0, #0xff +_08183FBE: + asrs r0, r0, #8 + lsls r0, r0, #8 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #8 + bl Sin + rsbs r0, r0, #0 + b _08184000 +_08183FD2: + cmp r0, #0x5f + ble _08183FF6 + movs r0, #0x60 + movs r1, #6 + bl Sin + adds r4, r0, #0 + movs r1, #0x3c + ldrsh r0, [r5, r1] + subs r0, #0x60 + lsls r0, r0, #0x11 + asrs r0, r0, #0x10 + movs r1, #4 + bl Sin + subs r4, r4, r0 + strh r4, [r5, #0x26] + b _08184002 +_08183FF6: + movs r2, #0x3c + ldrsh r0, [r5, r2] + movs r1, #6 + bl Sin +_08184000: + strh r0, [r5, #0x26] +_08184002: + movs r3, #0x3c + ldrsh r0, [r5, r3] + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + movs r2, #0x38 + ldrsh r1, [r5, r2] + bl Sin + rsbs r0, r0, #0 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldrh r0, [r5, #0x36] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0818402A + lsls r0, r2, #0x10 + rsbs r0, r0, #0 + lsrs r2, r0, #0x10 +_0818402A: + strh r2, [r5, #0x24] + ldrh r0, [r5, #0x34] + ldrh r3, [r5, #0x3c] + adds r0, r0, r3 + strh r0, [r5, #0x3c] +_08184034: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08183F70 + + thumb_func_start pokemonanimfunc_7C +pokemonanimfunc_7C: @ 0x0818403C + push {lr} + adds r2, r0, #0 + movs r0, #0x32 + ldrsh r3, [r2, r0] + cmp r3, #0 + bne _0818405C + movs r1, #1 + strh r1, [r2, #0x32] + movs r0, #2 + strh r0, [r2, #0x3a] + strh r3, [r2, #0x3c] + movs r0, #0x10 + strh r0, [r2, #0x38] + strh r1, [r2, #0x36] + movs r0, #4 + strh r0, [r2, #0x34] +_0818405C: + adds r0, r2, #0 + bl sub_08183F70 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_7C + + thumb_func_start pokemonanimfunc_7D +pokemonanimfunc_7D: @ 0x08184068 + push {lr} + adds r2, r0, #0 + movs r0, #0x32 + ldrsh r3, [r2, r0] + cmp r3, #0 + bne _08184088 + movs r1, #1 + strh r1, [r2, #0x32] + movs r0, #2 + strh r0, [r2, #0x3a] + strh r3, [r2, #0x3c] + movs r0, #0x10 + strh r0, [r2, #0x38] + strh r1, [r2, #0x36] + movs r0, #6 + strh r0, [r2, #0x34] +_08184088: + adds r0, r2, #0 + bl sub_08183F70 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_7D + + thumb_func_start pokemonanimfunc_7E +pokemonanimfunc_7E: @ 0x08184094 + push {lr} + adds r2, r0, #0 + movs r0, #0x32 + ldrsh r3, [r2, r0] + cmp r3, #0 + bne _081840B4 + movs r1, #1 + strh r1, [r2, #0x32] + movs r0, #3 + strh r0, [r2, #0x3a] + strh r3, [r2, #0x3c] + movs r0, #0x10 + strh r0, [r2, #0x38] + strh r1, [r2, #0x36] + movs r0, #8 + strh r0, [r2, #0x34] +_081840B4: + adds r0, r2, #0 + bl sub_08183F70 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_7E + + thumb_func_start pokemonanimfunc_7F +pokemonanimfunc_7F: @ 0x081840C0 + push {lr} + adds r2, r0, #0 + movs r0, #0x32 + ldrsh r1, [r2, r0] + cmp r1, #0 + bne _081840DE + movs r0, #1 + strh r0, [r2, #0x32] + strh r0, [r2, #0x3a] + strh r1, [r2, #0x3c] + movs r1, #4 + strh r1, [r2, #0x38] + movs r0, #6 + strh r0, [r2, #0x36] + strh r1, [r2, #0x34] +_081840DE: + adds r0, r2, #0 + bl sub_08183E54 + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_7F + + thumb_func_start pokemonanimfunc_80 +pokemonanimfunc_80: @ 0x081840E8 + push {lr} + adds r1, r0, #0 + movs r0, #0x32 + ldrsh r2, [r1, r0] + cmp r2, #0 + bne _08184106 + movs r0, #1 + strh r0, [r1, #0x32] + strh r0, [r1, #0x3a] + strh r2, [r1, #0x3c] + movs r0, #4 + strh r0, [r1, #0x38] + movs r0, #6 + strh r0, [r1, #0x36] + strh r0, [r1, #0x34] +_08184106: + adds r0, r1, #0 + bl sub_08183E54 + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_80 + + thumb_func_start pokemonanimfunc_81 +pokemonanimfunc_81: @ 0x08184110 + push {lr} + adds r1, r0, #0 + movs r0, #0x32 + ldrsh r2, [r1, r0] + cmp r2, #0 + bne _08184132 + movs r0, #1 + strh r0, [r1, #0x32] + movs r0, #2 + strh r0, [r1, #0x3a] + strh r2, [r1, #0x3c] + movs r0, #4 + strh r0, [r1, #0x38] + movs r0, #6 + strh r0, [r1, #0x36] + movs r0, #8 + strh r0, [r1, #0x34] +_08184132: + adds r0, r1, #0 + bl sub_08183E54 + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_81 + + thumb_func_start sub_0818413C +sub_0818413C: @ 0x0818413C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + lsls r0, r0, #7 + movs r2, #0x3c + ldrsh r1, [r4, r2] + bl __divsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x38 + ldrsh r1, [r4, r2] + bl Sin + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r0, r1, #8 + rsbs r0, r0, #0 + strh r0, [r4, #0x3a] + movs r0, #0x36 + ldrsh r2, [r4, r0] + adds r0, r4, #0 + movs r3, #0 + bl sub_0817F29C + movs r2, #0x80 + lsls r2, r2, #1 + ldrh r3, [r4, #0x3a] + adds r0, r4, #0 + adds r1, r2, #0 + bl HandleSetAffineData + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0818413C + + thumb_func_start pokemonanimfunc_82 +pokemonanimfunc_82: @ 0x08184188 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r5, [r4, r0] + cmp r5, #0 + bne _081841AC + adds r0, r4, #0 + bl HandleStartAffineAnim + movs r0, #0x3c + strh r0, [r4, #0x3c] + movs r0, #8 + strh r0, [r4, #0x38] + ldr r0, _081841EC + strh r0, [r4, #0x36] + movs r0, #1 + strh r0, [r4, #0x34] + strh r5, [r4, #0x2e] +_081841AC: + movs r2, #0x32 + ldrsh r1, [r4, r2] + movs r3, #0x3c + ldrsh r0, [r4, r3] + cmp r1, r0 + ble _081841F8 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + movs r2, #0 + strh r2, [r4, #0x24] + strh r2, [r4, #0x26] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + movs r3, #0x34 + ldrsh r1, [r4, r3] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r1, r0 + bgt _081841F4 + adds r0, r4, #0 + bl sub_0817F628 + ldr r0, _081841F0 + str r0, [r4, #0x1c] + b _08184204 + .align 2, 0 +_081841EC: .4byte 0x0000FFE0 +_081841F0: .4byte 0x08184C35 +_081841F4: + strh r2, [r4, #0x32] + b _081841FE +_081841F8: + adds r0, r4, #0 + bl sub_0818413C +_081841FE: + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] +_08184204: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_82 + + thumb_func_start pokemonanimfunc_83 +pokemonanimfunc_83: @ 0x0818420C + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r5, [r4, r0] + cmp r5, #0 + bne _08184230 + adds r0, r4, #0 + bl HandleStartAffineAnim + movs r0, #0x5a + strh r0, [r4, #0x3c] + movs r0, #8 + strh r0, [r4, #0x38] + ldr r0, _08184270 + strh r0, [r4, #0x36] + movs r0, #1 + strh r0, [r4, #0x34] + strh r5, [r4, #0x2e] +_08184230: + movs r2, #0x32 + ldrsh r1, [r4, r2] + movs r3, #0x3c + ldrsh r0, [r4, r3] + cmp r1, r0 + ble _0818427C + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + movs r2, #0 + strh r2, [r4, #0x24] + strh r2, [r4, #0x26] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + movs r3, #0x34 + ldrsh r1, [r4, r3] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r1, r0 + bgt _08184278 + adds r0, r4, #0 + bl sub_0817F628 + ldr r0, _08184274 + str r0, [r4, #0x1c] + b _08184288 + .align 2, 0 +_08184270: .4byte 0x0000FFE0 +_08184274: .4byte 0x08184C35 +_08184278: + strh r2, [r4, #0x32] + b _08184282 +_0818427C: + adds r0, r4, #0 + bl sub_0818413C +_08184282: + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] +_08184288: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_83 + + thumb_func_start pokemonanimfunc_84 +pokemonanimfunc_84: @ 0x08184290 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r5, [r4, r0] + cmp r5, #0 + bne _081842B4 + adds r0, r4, #0 + bl HandleStartAffineAnim + movs r0, #0x1e + strh r0, [r4, #0x3c] + movs r0, #8 + strh r0, [r4, #0x38] + ldr r0, _081842F4 + strh r0, [r4, #0x36] + movs r0, #2 + strh r0, [r4, #0x34] + strh r5, [r4, #0x2e] +_081842B4: + movs r2, #0x32 + ldrsh r1, [r4, r2] + movs r3, #0x3c + ldrsh r0, [r4, r3] + cmp r1, r0 + ble _08184300 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + movs r2, #0 + strh r2, [r4, #0x24] + strh r2, [r4, #0x26] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + movs r3, #0x34 + ldrsh r1, [r4, r3] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r1, r0 + bgt _081842FC + adds r0, r4, #0 + bl sub_0817F628 + ldr r0, _081842F8 + str r0, [r4, #0x1c] + b _0818430C + .align 2, 0 +_081842F4: .4byte 0x0000FFE0 +_081842F8: .4byte 0x08184C35 +_081842FC: + strh r2, [r4, #0x32] + b _08184306 +_08184300: + adds r0, r4, #0 + bl sub_0818413C +_08184306: + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] +_0818430C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_84 + + thumb_func_start sub_08184314 +sub_08184314: @ 0x08184314 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r0, #0x32 + ldrsh r1, [r6, r0] + movs r2, #0x3c + ldrsh r0, [r6, r2] + cmp r1, r0 + ble _08184348 + movs r0, #0 + strh r0, [r6, #0x26] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r6, #0 + adds r1, r2, #0 + movs r3, #0 + bl HandleSetAffineData + adds r0, r6, #0 + bl sub_0817F628 + ldr r0, _08184344 + str r0, [r6, #0x1c] + b _081843F0 + .align 2, 0 +_08184344: .4byte 0x08184C35 +_08184348: + movs r1, #0x32 + ldrsh r0, [r6, r1] + movs r2, #0x3a + ldrsh r4, [r6, r2] + adds r1, r4, #0 + bl __modsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x10 + adds r1, r4, #0 + bl __divsi3 + adds r1, r0, #0 + cmp r1, #0 + bge _08184368 + adds r0, #0xff +_08184368: + asrs r0, r0, #8 + lsls r0, r0, #8 + subs r0, r1, r0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldrh r0, [r6, #0x32] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _081843A4 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + adds r0, r4, #0 + movs r1, #0x20 + bl Sin + movs r1, #0x80 + lsls r1, r1, #1 + adds r5, r1, #0 + adds r0, r0, r5 + strh r0, [r6, #0x36] + adds r0, r4, #0 + movs r1, #0x20 + bl Sin + adds r0, r0, r5 + strh r0, [r6, #0x38] + adds r0, r4, #0 + movs r1, #0x20 + b _081843CA +_081843A4: + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + adds r0, r4, #0 + movs r1, #8 + bl Sin + movs r2, #0x80 + lsls r2, r2, #1 + adds r5, r2, #0 + adds r0, r0, r5 + strh r0, [r6, #0x36] + adds r0, r4, #0 + movs r1, #8 + bl Sin + adds r0, r0, r5 + strh r0, [r6, #0x38] + adds r0, r4, #0 + movs r1, #8 +_081843CA: + bl Sin + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bge _081843DC + adds r0, #7 +_081843DC: + lsrs r0, r0, #3 + strh r0, [r6, #0x26] + movs r0, #0x36 + ldrsh r1, [r6, r0] + movs r0, #0x38 + ldrsh r2, [r6, r0] + adds r0, r6, #0 + movs r3, #0 + bl HandleSetAffineData +_081843F0: + ldrh r0, [r6, #0x32] + adds r0, #1 + strh r0, [r6, #0x32] + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_08184314 + + thumb_func_start pokemonanimfunc_85 +pokemonanimfunc_85: @ 0x081843FC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0818441C + adds r0, r4, #0 + bl HandleStartAffineAnim + ldrh r0, [r4, #0x26] + adds r0, #2 + strh r0, [r4, #0x26] + movs r0, #0x28 + strh r0, [r4, #0x3a] + movs r0, #0x50 + strh r0, [r4, #0x3c] +_0818441C: + adds r0, r4, #0 + bl sub_08184314 + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_85 + + thumb_func_start pokemonanimfunc_86 +pokemonanimfunc_86: @ 0x08184428 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08184446 + adds r0, r4, #0 + bl HandleStartAffineAnim + ldrh r0, [r4, #0x26] + adds r0, #2 + strh r0, [r4, #0x26] + movs r0, #0x28 + strh r0, [r4, #0x3a] + strh r0, [r4, #0x3c] +_08184446: + adds r0, r4, #0 + bl sub_08184314 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_86 + + thumb_func_start pokemonanimfunc_87 +pokemonanimfunc_87: @ 0x08184454 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08184472 + adds r0, r4, #0 + bl HandleStartAffineAnim + ldrh r0, [r4, #0x26] + adds r0, #2 + strh r0, [r4, #0x26] + movs r0, #0x50 + strh r0, [r4, #0x3a] + strh r0, [r4, #0x3c] +_08184472: + adds r0, r4, #0 + bl sub_08184314 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_87 + + thumb_func_start sub_08184480 +sub_08184480: @ 0x08184480 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + ldrh r0, [r4, #0x24] + ldrh r1, [r4, #0x32] + subs r0, r0, r1 + strh r0, [r4, #0x24] + movs r0, #0x24 + ldrsh r1, [r4, r0] + movs r2, #0x3a + ldrsh r0, [r4, r2] + cmn r1, r0 + bgt _081844AA + ldrh r0, [r4, #0x3a] + rsbs r0, r0, #0 + strh r0, [r4, #0x24] + movs r0, #2 + strh r0, [r4, #0x3c] + ldr r0, _081844B8 + str r0, [r4, #0x1c] +_081844AA: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081844B8: .4byte 0x081844BD + thumb_func_end sub_08184480 + + thumb_func_start sub_081844BC +sub_081844BC: @ 0x081844BC + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + ldrh r0, [r4, #0x3c] + ldrh r2, [r4, #0x24] + adds r1, r0, r2 + strh r1, [r4, #0x24] + adds r0, #1 + strh r0, [r4, #0x3c] + lsls r1, r1, #0x10 + cmp r1, #0 + blt _081844DA + ldr r0, _081844E8 + str r0, [r4, #0x1c] +_081844DA: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081844E8: .4byte 0x081844ED + thumb_func_end sub_081844BC + + thumb_func_start sub_081844EC +sub_081844EC: @ 0x081844EC + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + ldrh r0, [r4, #0x3c] + ldrh r2, [r4, #0x24] + adds r1, r0, r2 + strh r1, [r4, #0x24] + adds r0, #1 + strh r0, [r4, #0x3c] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldrh r2, [r4, #0x3a] + movs r3, #0x3a + ldrsh r0, [r4, r3] + cmp r1, r0 + ble _08184514 + strh r2, [r4, #0x24] + ldr r0, _08184520 + str r0, [r4, #0x1c] +_08184514: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08184520: .4byte 0x08184525 + thumb_func_end sub_081844EC + + thumb_func_start sub_08184524 +sub_08184524: @ 0x08184524 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + ldrh r2, [r4, #0x34] + movs r0, #0x34 + ldrsh r1, [r4, r0] + movs r3, #0x38 + ldrsh r0, [r4, r3] + cmp r1, r0 + blt _08184544 + ldr r0, _08184540 + str r0, [r4, #0x1c] + b _08184558 + .align 2, 0 +_08184540: .4byte 0x08184565 +_08184544: + ldrh r0, [r4, #0x36] + ldrh r1, [r4, #0x24] + adds r0, r0, r1 + strh r0, [r4, #0x24] + movs r3, #0x36 + ldrsh r0, [r4, r3] + rsbs r0, r0, #0 + strh r0, [r4, #0x36] + adds r0, r2, #1 + strh r0, [r4, #0x34] +_08184558: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08184524 + + thumb_func_start sub_08184564 +sub_08184564: @ 0x08184564 + push {r4, lr} + adds r4, r0, #0 + bl sub_0817F5B8 + ldrh r0, [r4, #0x24] + subs r0, #2 + strh r0, [r4, #0x24] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _08184586 + movs r0, #0 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0817F628 + ldr r0, _08184594 + str r0, [r4, #0x1c] +_08184586: + adds r0, r4, #0 + bl sub_0817F5B8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08184594: .4byte 0x08184C35 + thumb_func_end sub_08184564 + + thumb_func_start pokemonanimfunc_88 +pokemonanimfunc_88: @ 0x08184598 + push {r4, lr} + adds r4, r0, #0 + bl HandleStartAffineAnim + movs r2, #0 + movs r1, #4 + strh r1, [r4, #0x3c] + movs r0, #0xc + strh r0, [r4, #0x3a] + movs r0, #0x10 + strh r0, [r4, #0x38] + strh r1, [r4, #0x36] + strh r2, [r4, #0x34] + movs r0, #2 + strh r0, [r4, #0x32] + ldr r0, _081845C0 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081845C0: .4byte 0x08184481 + thumb_func_end pokemonanimfunc_88 + + thumb_func_start pokemonanimfunc_89 +pokemonanimfunc_89: @ 0x081845C4 + push {r4, lr} + adds r4, r0, #0 + bl HandleStartAffineAnim + movs r2, #0 + movs r1, #2 + strh r1, [r4, #0x3c] + movs r0, #8 + strh r0, [r4, #0x3a] + movs r0, #0xc + strh r0, [r4, #0x38] + strh r1, [r4, #0x36] + strh r2, [r4, #0x34] + movs r0, #1 + strh r0, [r4, #0x32] + ldr r0, _081845EC + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081845EC: .4byte 0x08184481 + thumb_func_end pokemonanimfunc_89 + + thumb_func_start pokemonanimfunc_8A +pokemonanimfunc_8A: @ 0x081845F0 + push {r4, lr} + adds r4, r0, #0 + bl HandleStartAffineAnim + movs r1, #0 + strh r1, [r4, #0x3c] + movs r0, #6 + strh r0, [r4, #0x3a] + strh r0, [r4, #0x38] + movs r0, #2 + strh r0, [r4, #0x36] + strh r1, [r4, #0x34] + movs r0, #1 + strh r0, [r4, #0x32] + ldr r0, _08184618 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08184618: .4byte 0x08184481 + thumb_func_end pokemonanimfunc_8A + + thumb_func_start sub_0818461C +sub_0818461C: @ 0x0818461C + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0x30] + strh r0, [r1, #0x24] + ldrh r2, [r1, #0x2e] + movs r3, #0x2e + ldrsh r0, [r1, r3] + cmp r0, #1 + ble _0818463A + movs r2, #0x30 + ldrsh r0, [r1, r2] + rsbs r0, r0, #0 + strh r0, [r1, #0x30] + movs r0, #0 + b _0818463C +_0818463A: + adds r0, r2, #1 +_0818463C: + strh r0, [r1, #0x2e] + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0818461C + + thumb_func_start BackAnimBlendYellow +BackAnimBlendYellow: @ 0x08184644 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _08184674 + movs r2, #0x34 + ldrsh r0, [r4, r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r5, [r0] + adds r0, r4, #0 + bl sub_0818461C + movs r1, #0x3a + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r1, r0, r5 + ldrb r0, [r1, #1] + cmp r0, #0xff + bne _0818467C + movs r0, #0 + strh r0, [r4, #0x24] + ldr r0, _08184678 + str r0, [r4, #0x1c] + b _081846DA + .align 2, 0 +_08184674: .4byte 0x085D38DC +_08184678: .4byte 0x08184C35 +_0818467C: + movs r2, #0x36 + ldrsh r0, [r4, r2] + cmp r0, #1 + bne _081846AC + ldrb r0, [r1] + cmp r0, #0 + beq _0818469C + ldrh r0, [r4, #0x3c] + ldr r3, _08184698 + movs r1, #0x10 + movs r2, #0x10 + bl BlendPalette + b _081846A8 + .align 2, 0 +_08184698: .4byte 0x000003FF +_0818469C: + ldrh r0, [r4, #0x3c] + ldr r3, _081846D0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalette +_081846A8: + movs r0, #0 + strh r0, [r4, #0x36] +_081846AC: + movs r1, #0x3a + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r1, [r0, #1] + movs r2, #0x38 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _081846D4 + movs r1, #0 + movs r0, #1 + strh r0, [r4, #0x36] + strh r1, [r4, #0x38] + ldrh r0, [r4, #0x3a] + adds r0, #1 + strh r0, [r4, #0x3a] + b _081846DA + .align 2, 0 +_081846D0: .4byte 0x000003FF +_081846D4: + ldrh r0, [r4, #0x38] + adds r0, #1 + strh r0, [r4, #0x38] +_081846DA: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end BackAnimBlendYellow + + thumb_func_start pokemonanimfunc_8B +pokemonanimfunc_8B: @ 0x081846E0 + push {r4, lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x32] + adds r0, #1 + movs r3, #0 + strh r0, [r2, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + bne _0818470C + ldrb r0, [r2, #5] + lsrs r0, r0, #4 + lsls r0, r0, #4 + movs r4, #0x80 + lsls r4, r4, #1 + adds r1, r4, #0 + adds r0, r0, r1 + strh r0, [r2, #0x3c] + strh r3, [r2, #0x3a] + strh r3, [r2, #0x38] + strh r3, [r2, #0x36] + strh r3, [r2, #0x34] +_0818470C: + adds r0, r2, #0 + bl BackAnimBlendYellow + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_8B + + thumb_func_start pokemonanimfunc_8C +pokemonanimfunc_8C: @ 0x08184718 + push {r4, r5, lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x32] + adds r0, #1 + movs r3, #0 + strh r0, [r2, #0x32] + lsls r0, r0, #0x10 + asrs r4, r0, #0x10 + cmp r4, #1 + bne _08184744 + ldrb r0, [r2, #5] + lsrs r0, r0, #4 + lsls r0, r0, #4 + movs r5, #0x80 + lsls r5, r5, #1 + adds r1, r5, #0 + adds r0, r0, r1 + strh r0, [r2, #0x3c] + strh r3, [r2, #0x3a] + strh r3, [r2, #0x38] + strh r3, [r2, #0x36] + strh r4, [r2, #0x34] +_08184744: + adds r0, r2, #0 + bl BackAnimBlendYellow + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_8C + + thumb_func_start pokemonanimfunc_8D +pokemonanimfunc_8D: @ 0x08184750 + push {r4, lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x32] + adds r0, #1 + movs r3, #0 + strh r0, [r2, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + bne _0818477E + ldrb r0, [r2, #5] + lsrs r0, r0, #4 + lsls r0, r0, #4 + movs r4, #0x80 + lsls r4, r4, #1 + adds r1, r4, #0 + adds r0, r0, r1 + strh r0, [r2, #0x3c] + strh r3, [r2, #0x3a] + strh r3, [r2, #0x38] + strh r3, [r2, #0x36] + movs r0, #2 + strh r0, [r2, #0x34] +_0818477E: + adds r0, r2, #0 + bl BackAnimBlendYellow + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_8D + + thumb_func_start BackAnimBlend +BackAnimBlend: @ 0x0818478C + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0x7f + ble _081847B0 + ldrh r0, [r4, #0x3c] + movs r1, #0x10 + movs r2, #0 + movs r3, #0x1f + bl BlendPalette + ldr r0, _081847AC + str r0, [r4, #0x1c] + b _081847D6 + .align 2, 0 +_081847AC: .4byte 0x08184C35 +_081847B0: + movs r5, #0x32 + ldrsh r0, [r4, r5] + movs r1, #0xc + bl Sin + adds r2, r0, #0 + strh r2, [r4, #0x3a] + ldrh r0, [r4, #0x3c] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r3, _081847DC + movs r5, #0x30 + ldrsh r1, [r4, r5] + lsls r1, r1, #1 + adds r1, r1, r3 + ldrh r3, [r1] + movs r1, #0x10 + bl BlendPalette +_081847D6: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081847DC: .4byte 0x085D38E8 + thumb_func_end BackAnimBlend + + thumb_func_start sub_081847E0 +sub_081847E0: @ 0x081847E0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x34 + ldrsh r1, [r4, r0] + movs r2, #0x36 + ldrsh r0, [r4, r2] + cmp r1, r0 + bge _08184878 + adds r0, r4, #0 + bl sub_0817F5B8 + movs r3, #0x38 + ldrsh r1, [r4, r3] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r1, r0 + ble _0818481C + ldrh r0, [r4, #0x34] + adds r0, #1 + movs r2, #0 + strh r0, [r4, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r3, #0x36 + ldrsh r1, [r4, r3] + cmp r0, r1 + bge _08184818 + strh r2, [r4, #0x38] +_08184818: + strh r2, [r4, #0x24] + b _08184872 +_0818481C: + movs r0, #0x34 + ldrsh r1, [r4, r0] + lsrs r0, r1, #0x1f + adds r0, r1, r0 + asrs r0, r0, #1 + lsls r0, r0, #1 + subs r1, r1, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0xf + movs r0, #1 + subs r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r2, #0x38 + ldrsh r1, [r4, r2] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #7 + movs r3, #0x2e + ldrsh r1, [r4, r3] + bl __divsi3 + adds r1, r0, #0 + cmp r1, #0 + bge _08184850 + adds r0, #0xff +_08184850: + asrs r0, r0, #8 + lsls r0, r0, #8 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #6 + bl Sin + lsls r1, r5, #0x18 + asrs r1, r1, #0x18 + adds r2, r1, #0 + muls r2, r0, r2 + adds r0, r2, #0 + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x38] + adds r0, #1 + strh r0, [r4, #0x38] +_08184872: + adds r0, r4, #0 + bl sub_0817F5B8 +_08184878: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081847E0 + + thumb_func_start pokemonanimfunc_8E +pokemonanimfunc_8E: @ 0x08184880 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r2, [r4, r0] + cmp r2, #0 + bne _081848AA + ldrb r0, [r4, #5] + lsrs r0, r0, #4 + lsls r0, r0, #4 + movs r3, #0x80 + lsls r3, r3, #1 + adds r1, r3, #0 + adds r0, r0, r1 + strh r0, [r4, #0x3c] + movs r0, #0xa + strh r0, [r4, #0x2e] + strh r2, [r4, #0x38] + movs r0, #2 + strh r0, [r4, #0x36] + strh r2, [r4, #0x34] + strh r2, [r4, #0x30] +_081848AA: + ldrh r0, [r4, #0x32] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _081848BA + adds r0, r4, #0 + bl BackAnimBlend +_081848BA: + movs r0, #0x32 + ldrsh r2, [r4, r0] + movs r3, #0x2e + ldrsh r1, [r4, r3] + movs r3, #0x36 + ldrsh r0, [r4, r3] + muls r1, r0, r1 + movs r0, #0x80 + subs r0, r0, r1 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + cmp r2, r0 + blt _081848DC + adds r0, r4, #0 + bl sub_081847E0 +_081848DC: + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_8E + + thumb_func_start pokemonanimfunc_8F +pokemonanimfunc_8F: @ 0x081848E8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r2, [r4, r0] + cmp r2, #0 + bne _08184912 + ldrb r0, [r4, #5] + lsrs r0, r0, #4 + lsls r0, r0, #4 + movs r3, #0x80 + lsls r3, r3, #1 + adds r1, r3, #0 + adds r0, r0, r1 + strh r0, [r4, #0x3c] + movs r0, #0x14 + strh r0, [r4, #0x2e] + strh r2, [r4, #0x38] + movs r0, #1 + strh r0, [r4, #0x36] + strh r2, [r4, #0x34] + strh r2, [r4, #0x30] +_08184912: + ldrh r0, [r4, #0x32] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08184922 + adds r0, r4, #0 + bl BackAnimBlend +_08184922: + movs r0, #0x32 + ldrsh r2, [r4, r0] + movs r3, #0x2e + ldrsh r1, [r4, r3] + movs r3, #0x36 + ldrsh r0, [r4, r3] + muls r1, r0, r1 + movs r0, #0x80 + subs r0, r0, r1 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + cmp r2, r0 + blt _08184944 + adds r0, r4, #0 + bl sub_081847E0 +_08184944: + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_8F + + thumb_func_start pokemonanimfunc_90 +pokemonanimfunc_90: @ 0x08184950 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r2, [r4, r0] + cmp r2, #0 + bne _0818497A + ldrb r0, [r4, #5] + lsrs r0, r0, #4 + lsls r0, r0, #4 + movs r3, #0x80 + lsls r3, r3, #1 + adds r1, r3, #0 + adds r0, r0, r1 + strh r0, [r4, #0x3c] + movs r0, #0x50 + strh r0, [r4, #0x2e] + strh r2, [r4, #0x38] + movs r0, #1 + strh r0, [r4, #0x36] + strh r2, [r4, #0x34] + strh r2, [r4, #0x30] +_0818497A: + ldrh r0, [r4, #0x32] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0818498A + adds r0, r4, #0 + bl BackAnimBlend +_0818498A: + movs r0, #0x32 + ldrsh r2, [r4, r0] + movs r3, #0x2e + ldrsh r1, [r4, r3] + movs r3, #0x36 + ldrsh r0, [r4, r3] + muls r1, r0, r1 + movs r0, #0x80 + subs r0, r0, r1 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + cmp r2, r0 + blt _081849AC + adds r0, r4, #0 + bl sub_081847E0 +_081849AC: + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_90 + + thumb_func_start pokemonanimfunc_91 +pokemonanimfunc_91: @ 0x081849B8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r2, [r4, r0] + cmp r2, #0 + bne _081849E4 + ldrb r0, [r4, #5] + lsrs r0, r0, #4 + lsls r0, r0, #4 + movs r3, #0x80 + lsls r3, r3, #1 + adds r1, r3, #0 + adds r0, r0, r1 + strh r0, [r4, #0x3c] + movs r0, #0xa + strh r0, [r4, #0x2e] + strh r2, [r4, #0x38] + movs r0, #2 + strh r0, [r4, #0x36] + strh r2, [r4, #0x34] + movs r0, #1 + strh r0, [r4, #0x30] +_081849E4: + ldrh r0, [r4, #0x32] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _081849F4 + adds r0, r4, #0 + bl BackAnimBlend +_081849F4: + movs r0, #0x32 + ldrsh r2, [r4, r0] + movs r3, #0x2e + ldrsh r1, [r4, r3] + movs r3, #0x36 + ldrsh r0, [r4, r3] + muls r1, r0, r1 + movs r0, #0x80 + subs r0, r0, r1 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + cmp r2, r0 + blt _08184A16 + adds r0, r4, #0 + bl sub_081847E0 +_08184A16: + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_91 + + thumb_func_start pokemonanimfunc_92 +pokemonanimfunc_92: @ 0x08184A24 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r2, [r4, r0] + cmp r2, #0 + bne _08184A4E + ldrb r0, [r4, #5] + lsrs r0, r0, #4 + lsls r0, r0, #4 + movs r3, #0x80 + lsls r3, r3, #1 + adds r1, r3, #0 + adds r0, r0, r1 + strh r0, [r4, #0x3c] + movs r0, #0x14 + strh r0, [r4, #0x2e] + strh r2, [r4, #0x38] + movs r0, #1 + strh r0, [r4, #0x36] + strh r2, [r4, #0x34] + strh r0, [r4, #0x30] +_08184A4E: + ldrh r0, [r4, #0x32] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08184A5E + adds r0, r4, #0 + bl BackAnimBlend +_08184A5E: + movs r0, #0x32 + ldrsh r2, [r4, r0] + movs r3, #0x2e + ldrsh r1, [r4, r3] + movs r3, #0x36 + ldrsh r0, [r4, r3] + muls r1, r0, r1 + movs r0, #0x80 + subs r0, r0, r1 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + cmp r2, r0 + blt _08184A80 + adds r0, r4, #0 + bl sub_081847E0 +_08184A80: + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_92 + + thumb_func_start pokemonanimfunc_93 +pokemonanimfunc_93: @ 0x08184A8C + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r2, [r4, r0] + cmp r2, #0 + bne _08184AB6 + ldrb r0, [r4, #5] + lsrs r0, r0, #4 + lsls r0, r0, #4 + movs r3, #0x80 + lsls r3, r3, #1 + adds r1, r3, #0 + adds r0, r0, r1 + strh r0, [r4, #0x3c] + movs r0, #0x50 + strh r0, [r4, #0x2e] + strh r2, [r4, #0x38] + movs r0, #1 + strh r0, [r4, #0x36] + strh r2, [r4, #0x34] + strh r0, [r4, #0x30] +_08184AB6: + ldrh r0, [r4, #0x32] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08184AC6 + adds r0, r4, #0 + bl BackAnimBlend +_08184AC6: + movs r0, #0x32 + ldrsh r2, [r4, r0] + movs r3, #0x2e + ldrsh r1, [r4, r3] + movs r3, #0x36 + ldrsh r0, [r4, r3] + muls r1, r0, r1 + movs r0, #0x80 + subs r0, r0, r1 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + cmp r2, r0 + blt _08184AE8 + adds r0, r4, #0 + bl sub_081847E0 +_08184AE8: + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_93 + + thumb_func_start pokemonanimfunc_94 +pokemonanimfunc_94: @ 0x08184AF4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r2, [r4, r0] + cmp r2, #0 + bne _08184B1E + ldrb r0, [r4, #5] + lsrs r0, r0, #4 + lsls r0, r0, #4 + movs r3, #0x80 + lsls r3, r3, #1 + adds r1, r3, #0 + adds r0, r0, r1 + strh r0, [r4, #0x3c] + movs r0, #0xa + strh r0, [r4, #0x2e] + strh r2, [r4, #0x38] + movs r0, #2 + strh r0, [r4, #0x36] + strh r2, [r4, #0x34] + strh r0, [r4, #0x30] +_08184B1E: + ldrh r0, [r4, #0x32] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08184B2E + adds r0, r4, #0 + bl BackAnimBlend +_08184B2E: + movs r0, #0x32 + ldrsh r2, [r4, r0] + movs r3, #0x2e + ldrsh r1, [r4, r3] + movs r3, #0x36 + ldrsh r0, [r4, r3] + muls r1, r0, r1 + movs r0, #0x80 + subs r0, r0, r1 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + cmp r2, r0 + blt _08184B50 + adds r0, r4, #0 + bl sub_081847E0 +_08184B50: + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_94 + + thumb_func_start pokemonanimfunc_95 +pokemonanimfunc_95: @ 0x08184B5C + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r2, [r4, r0] + cmp r2, #0 + bne _08184B88 + ldrb r0, [r4, #5] + lsrs r0, r0, #4 + lsls r0, r0, #4 + movs r3, #0x80 + lsls r3, r3, #1 + adds r1, r3, #0 + adds r0, r0, r1 + strh r0, [r4, #0x3c] + movs r0, #0x14 + strh r0, [r4, #0x2e] + strh r2, [r4, #0x38] + movs r0, #1 + strh r0, [r4, #0x36] + strh r2, [r4, #0x34] + movs r0, #2 + strh r0, [r4, #0x30] +_08184B88: + ldrh r0, [r4, #0x32] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08184B98 + adds r0, r4, #0 + bl BackAnimBlend +_08184B98: + movs r0, #0x32 + ldrsh r2, [r4, r0] + movs r3, #0x2e + ldrsh r1, [r4, r3] + movs r3, #0x36 + ldrsh r0, [r4, r3] + muls r1, r0, r1 + movs r0, #0x80 + subs r0, r0, r1 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + cmp r2, r0 + blt _08184BBA + adds r0, r4, #0 + bl sub_081847E0 +_08184BBA: + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_95 + + thumb_func_start pokemonanimfunc_96 +pokemonanimfunc_96: @ 0x08184BC8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r2, [r4, r0] + cmp r2, #0 + bne _08184BF4 + ldrb r0, [r4, #5] + lsrs r0, r0, #4 + lsls r0, r0, #4 + movs r3, #0x80 + lsls r3, r3, #1 + adds r1, r3, #0 + adds r0, r0, r1 + strh r0, [r4, #0x3c] + movs r0, #0x50 + strh r0, [r4, #0x2e] + strh r2, [r4, #0x38] + movs r0, #1 + strh r0, [r4, #0x36] + strh r2, [r4, #0x34] + movs r0, #2 + strh r0, [r4, #0x30] +_08184BF4: + ldrh r0, [r4, #0x32] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08184C04 + adds r0, r4, #0 + bl BackAnimBlend +_08184C04: + movs r0, #0x32 + ldrsh r2, [r4, r0] + movs r3, #0x2e + ldrsh r1, [r4, r3] + movs r3, #0x36 + ldrsh r0, [r4, r3] + muls r1, r0, r1 + movs r0, #0x80 + subs r0, r0, r1 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + cmp r2, r0 + blt _08184C26 + adds r0, r4, #0 + bl sub_081847E0 +_08184C26: + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end pokemonanimfunc_96 + + thumb_func_start SpriteCB_SetDummyOnAnimEnd +SpriteCB_SetDummyOnAnimEnd: @ 0x08184C34 + push {lr} + adds r2, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08184C48 + ldr r0, _08184C4C + str r0, [r2, #0x1c] +_08184C48: + pop {r0} + bx r0 + .align 2, 0 +_08184C4C: .4byte 0x08007141 + thumb_func_end SpriteCB_SetDummyOnAnimEnd + diff --git a/asm/pokemon_icon.s b/asm/pokemon_icon.s new file mode 100644 index 0000000..971eca1 --- /dev/null +++ b/asm/pokemon_icon.s @@ -0,0 +1,857 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start CreateMonIcon +CreateMonIcon: @ 0x080D2564 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x30 + adds r4, r0, #0 + adds r6, r1, #0 + ldr r0, [sp, #0x4c] + ldr r1, [sp, #0x50] + ldr r5, [sp, #0x54] + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + mov r8, r2 + lsls r3, r3, #0x10 + lsrs r7, r3, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldr r0, _080D2600 + str r0, [sp, #0x18] + adds r0, r4, #0 + adds r2, r5, #0 + bl GetMonIconPtr + str r0, [sp, #0x1c] + ldr r0, _080D2604 + str r0, [sp, #0x20] + ldr r0, _080D2608 + str r0, [sp, #0x24] + str r6, [sp, #0x28] + ldr r0, _080D260C + adds r0, r4, r0 + ldr r1, _080D2610 + adds r5, r1, #0 + ldrb r0, [r0] + adds r1, r5, r0 + add r0, sp, #0x2c + strh r1, [r0] + add r1, sp, #0x18 + mov r0, sp + movs r2, #0x18 + bl memcpy + movs r0, #0xce + lsls r0, r0, #1 + cmp r4, r0 + bls _080D25CA + mov r0, sp + strh r5, [r0, #0x14] +_080D25CA: + mov r0, r8 + lsls r1, r0, #0x10 + asrs r1, r1, #0x10 + lsls r2, r7, #0x10 + asrs r2, r2, #0x10 + mov r0, sp + mov r3, sb + bl CreateMonIconSprite + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + ldr r1, _080D2614 + adds r0, r0, r1 + bl UpdateMonIconFrame + adds r0, r4, #0 + add sp, #0x30 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080D2600: .4byte 0x085570CC +_080D2604: .4byte 0x08557110 +_080D2608: .4byte 0x08557144 +_080D260C: .4byte 0x08556EE4 +_080D2610: .4byte 0x0000DAC0 +_080D2614: .4byte 0x020205AC + thumb_func_end CreateMonIcon + + thumb_func_start sub_080D2618 +sub_080D2618: @ 0x080D2618 + push {r4, r5, r6, r7, lr} + sub sp, #0x18 + adds r4, r2, #0 + adds r5, r3, #0 + ldr r6, [sp, #0x2c] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov r3, sp + ldr r2, _080D2690 + str r2, [sp] + movs r2, #0 + str r2, [sp, #4] + ldr r2, _080D2694 + str r2, [sp, #8] + ldr r2, _080D2698 + str r2, [sp, #0xc] + str r1, [sp, #0x10] + ldr r2, _080D269C + adds r2, r0, r2 + ldr r7, _080D26A0 + adds r1, r7, #0 + ldrb r2, [r2] + adds r1, r1, r2 + strh r1, [r3, #0x14] + ldr r1, [sp, #0x30] + bl GetMonIconTiles + str r0, [sp, #4] + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + mov r0, sp + adds r1, r4, #0 + adds r2, r5, #0 + adds r3, r6, #0 + bl CreateMonIconSprite + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + ldr r1, _080D26A4 + adds r0, r0, r1 + bl UpdateMonIconFrame + adds r0, r4, #0 + add sp, #0x18 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080D2690: .4byte 0x085570CC +_080D2694: .4byte 0x08557110 +_080D2698: .4byte 0x08557144 +_080D269C: .4byte 0x08556EE4 +_080D26A0: .4byte 0x0000DAC0 +_080D26A4: .4byte 0x020205AC + thumb_func_end sub_080D2618 + + thumb_func_start GetIconSpecies +GetIconSpecies: @ 0x080D26A8 + push {lr} + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0xc9 + bne _080D26D2 + adds r0, r1, #0 + bl GetUnownLetterByPersonality + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + bne _080D26C4 + movs r0, #0xc9 + b _080D26CE +_080D26C4: + movs r1, #0xce + lsls r1, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_080D26CE: + adds r1, r0, #0 + b _080D26E0 +_080D26D2: + movs r0, #0xce + lsls r0, r0, #1 + adds r1, r2, #0 + cmp r1, r0 + bls _080D26E0 + movs r1, #0x82 + lsls r1, r1, #1 +_080D26E0: + adds r0, r1, #0 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetIconSpecies + + thumb_func_start GetUnownLetterByPersonality +GetUnownLetterByPersonality: @ 0x080D26E8 + push {lr} + adds r2, r0, #0 + cmp r2, #0 + beq _080D271E + movs r0, #0xc0 + lsls r0, r0, #0x12 + ands r0, r2 + lsrs r0, r0, #0x12 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r2 + lsrs r1, r1, #0xc + orrs r0, r1 + movs r1, #0xc0 + lsls r1, r1, #2 + ands r1, r2 + lsrs r1, r1, #6 + orrs r0, r1 + movs r1, #3 + ands r1, r2 + orrs r0, r1 + movs r1, #0x1c + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _080D2720 +_080D271E: + movs r0, #0 +_080D2720: + pop {r1} + bx r1 + thumb_func_end GetUnownLetterByPersonality + + thumb_func_start sub_080D2724 +sub_080D2724: @ 0x080D2724 + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r4, #0 + mov r1, sp + bl MailSpeciesToSpecies + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xc9 + bne _080D275A + mov r0, sp + ldrh r0, [r0] + cmp r0, #0 + bne _080D274A + mov r1, sp + adds r0, #0xc9 + b _080D2752 +_080D274A: + mov r1, sp + movs r2, #0xce + lsls r2, r2, #1 + adds r0, r0, r2 +_080D2752: + strh r0, [r1] + mov r0, sp + ldrh r0, [r0] + b _080D2772 +_080D275A: + movs r0, #0xce + lsls r0, r0, #1 + cmp r4, r0 + bls _080D2766 + movs r4, #0x82 + lsls r4, r4, #1 +_080D2766: + adds r0, r4, #0 + movs r1, #0 + bl GetIconSpecies + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_080D2772: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080D2724 + + thumb_func_start GetMonIconPtr +GetMonIconPtr: @ 0x080D277C + push {r4, lr} + adds r4, r2, #0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetIconSpecies + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r4, #0 + bl GetMonIconTiles + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetMonIconPtr + + thumb_func_start sub_080D2798 +sub_080D2798: @ 0x080D2798 + push {lr} + bl sub_080D2B2C + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080D2798 + + thumb_func_start LoadMonIconPalettes +LoadMonIconPalettes: @ 0x080D27A4 + push {r4, r5, lr} + movs r4, #0 + ldr r5, _080D27C4 +_080D27AA: + lsls r0, r4, #3 + adds r0, r0, r5 + bl LoadSpritePalette + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #5 + bls _080D27AA + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D27C4: .4byte 0x0855709C + thumb_func_end LoadMonIconPalettes + + thumb_func_start SafeLoadMonIconPalette +SafeLoadMonIconPalette: @ 0x080D27C8 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + movs r0, #0xce + lsls r0, r0, #1 + cmp r1, r0 + bls _080D27DA + movs r1, #0x82 + lsls r1, r1, #1 +_080D27DA: + ldr r0, _080D2800 + adds r0, r1, r0 + ldrb r0, [r0] + ldr r1, _080D2804 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrh r0, [r4, #4] + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080D27FA + adds r0, r4, #0 + bl LoadSpritePalette +_080D27FA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D2800: .4byte 0x08556EE4 +_080D2804: .4byte 0x0855709C + thumb_func_end SafeLoadMonIconPalette + + thumb_func_start LoadMonIconPalette +LoadMonIconPalette: @ 0x080D2808 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _080D2834 + adds r0, r0, r1 + ldrb r0, [r0] + ldr r1, _080D2838 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrh r0, [r4, #4] + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080D282E + adds r0, r4, #0 + bl LoadSpritePalette +_080D282E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D2834: .4byte 0x08556EE4 +_080D2838: .4byte 0x0855709C + thumb_func_end LoadMonIconPalette + + thumb_func_start FreeMonIconPalettes +FreeMonIconPalettes: @ 0x080D283C + push {r4, r5, lr} + movs r4, #0 + ldr r5, _080D285C +_080D2842: + lsls r0, r4, #3 + adds r0, r0, r5 + ldrh r0, [r0, #4] + bl FreeSpritePaletteByTag + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #5 + bls _080D2842 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D285C: .4byte 0x0855709C + thumb_func_end FreeMonIconPalettes + + thumb_func_start SafeFreeMonIconPalette +SafeFreeMonIconPalette: @ 0x080D2860 + push {lr} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + movs r0, #0xce + lsls r0, r0, #1 + cmp r1, r0 + bls _080D2872 + movs r1, #0x82 + lsls r1, r1, #1 +_080D2872: + ldr r0, _080D2888 + adds r0, r1, r0 + ldrb r0, [r0] + ldr r1, _080D288C + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r0, [r0, #4] + bl FreeSpritePaletteByTag + pop {r0} + bx r0 + .align 2, 0 +_080D2888: .4byte 0x08556EE4 +_080D288C: .4byte 0x0855709C + thumb_func_end SafeFreeMonIconPalette + + thumb_func_start FreeMonIconPalette +FreeMonIconPalette: @ 0x080D2890 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _080D28AC + adds r0, r0, r1 + ldrb r0, [r0] + ldr r1, _080D28B0 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r0, [r0, #4] + bl FreeSpritePaletteByTag + pop {r0} + bx r0 + .align 2, 0 +_080D28AC: .4byte 0x08556EE4 +_080D28B0: .4byte 0x0855709C + thumb_func_end FreeMonIconPalette + + thumb_func_start sub_080D28B4 +sub_080D28B4: @ 0x080D28B4 + push {lr} + bl UpdateMonIconFrame + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080D28B4 + + thumb_func_start GetMonIconTiles +GetMonIconTiles: @ 0x080D28C0 + push {lr} + adds r3, r1, #0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r2, _080D28E8 + lsls r1, r0, #2 + adds r1, r1, r2 + ldr r2, [r1] + movs r1, #0xcd + lsls r1, r1, #1 + cmp r0, r1 + bne _080D28E2 + cmp r3, #1 + bne _080D28E2 + movs r0, #0x80 + lsls r0, r0, #3 + adds r2, r2, r0 +_080D28E2: + adds r0, r2, #0 + pop {r1} + bx r1 + .align 2, 0 +_080D28E8: .4byte 0x08556804 + thumb_func_end GetMonIconTiles + + thumb_func_start sub_080D28EC +sub_080D28EC: @ 0x080D28EC + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0xa0 + bhi _080D2914 + ldr r6, _080D291C + movs r5, #5 +_080D28FA: + ldr r0, [r6] + adds r1, r4, #0 + movs r2, #0x20 + bl LoadPalette + adds r0, r4, #0 + adds r0, #0x10 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r6, #8 + subs r5, #1 + cmp r5, #0 + bge _080D28FA +_080D2914: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080D291C: .4byte 0x0855709C + thumb_func_end sub_080D28EC + + thumb_func_start GetValidMonIconPalIndex +GetValidMonIconPalIndex: @ 0x080D2920 + push {lr} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + movs r0, #0xce + lsls r0, r0, #1 + cmp r1, r0 + bls _080D2932 + movs r1, #0x82 + lsls r1, r1, #1 +_080D2932: + ldr r0, _080D293C + adds r0, r1, r0 + ldrb r0, [r0] + pop {r1} + bx r1 + .align 2, 0 +_080D293C: .4byte 0x08556EE4 + thumb_func_end GetValidMonIconPalIndex + + thumb_func_start GetMonIconPaletteIndexFromSpecies +GetMonIconPaletteIndexFromSpecies: @ 0x080D2940 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _080D294C + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_080D294C: .4byte 0x08556EE4 + thumb_func_end GetMonIconPaletteIndexFromSpecies + + thumb_func_start GetValidMonIconPalettePtr +GetValidMonIconPalettePtr: @ 0x080D2950 + push {lr} + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + movs r0, #0xce + lsls r0, r0, #1 + cmp r2, r0 + bls _080D2962 + movs r2, #0x82 + lsls r2, r2, #1 +_080D2962: + ldr r1, _080D2974 + ldr r0, _080D2978 + adds r0, r2, r0 + ldrb r0, [r0] + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r0, [r0] + pop {r1} + bx r1 + .align 2, 0 +_080D2974: .4byte 0x0855709C +_080D2978: .4byte 0x08556EE4 + thumb_func_end GetValidMonIconPalettePtr + + thumb_func_start UpdateMonIconFrame +UpdateMonIconFrame: @ 0x080D297C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + movs r7, #0 + adds r6, r4, #0 + adds r6, #0x2c + ldrb r2, [r6] + movs r0, #0x3f + mov sb, r0 + ands r0, r2 + cmp r0, #0 + bne _080D2A30 + movs r1, #0x2a + adds r1, r1, r4 + mov r8, r1 + ldrb r1, [r1] + ldr r0, [r4, #8] + lsls r1, r1, #2 + adds r1, r1, r0 + adds r5, r4, #0 + adds r5, #0x2b + ldrb r0, [r5] + ldr r1, [r1] + lsls r0, r0, #2 + adds r0, r0, r1 + movs r1, #0 + ldrsh r3, [r0, r1] + movs r0, #2 + rsbs r0, r0, #0 + cmp r3, r0 + beq _080D29C6 + adds r0, #1 + cmp r3, r0 + bne _080D29CA + b _080D2A44 +_080D29C6: + strb r7, [r5] + b _080D2A44 +_080D29CA: + ldr r2, _080D2A28 + ldrb r1, [r4, #3] + lsrs r1, r1, #6 + lsls r1, r1, #1 + ldrb r0, [r4, #1] + lsrs r0, r0, #6 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r1, r1, r2 + ldrh r2, [r1] + adds r1, r2, #0 + muls r1, r3, r1 + ldr r0, [r4, #0xc] + adds r0, r0, r1 + ldrh r1, [r4, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x11 + ldr r3, _080D2A2C + adds r1, r1, r3 + bl RequestSpriteCopy + mov r0, r8 + ldrb r1, [r0] + ldr r0, [r4, #8] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r5] + ldr r1, [r1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + lsls r0, r0, #0xa + lsrs r0, r0, #0x1a + mov r1, sb + ands r1, r0 + ldrb r2, [r6] + movs r0, #0x40 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r6] + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + ldrb r7, [r5] + b _080D2A44 + .align 2, 0 +_080D2A28: .4byte 0x0855714C +_080D2A2C: .4byte 0x06010000 +_080D2A30: + lsls r0, r2, #0x1a + lsrs r0, r0, #0x1a + subs r0, #1 + movs r1, #0x3f + ands r0, r1 + movs r1, #0x40 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r6] +_080D2A44: + adds r0, r7, #0 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end UpdateMonIconFrame + + thumb_func_start CreateMonIconSprite +CreateMonIconSprite: @ 0x080D2A54 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #0x38 + mov sb, r0 + adds r4, r1, #0 + adds r5, r2, #0 + mov r8, r3 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + mov r0, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r0, #0 + str r0, [sp, #0x30] + ldr r2, _080D2B1C + mov r0, sb + ldr r6, [r0] + ldrb r1, [r6, #3] + lsrs r1, r1, #6 + lsls r1, r1, #1 + ldrb r0, [r6, #1] + lsrs r0, r0, #6 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r1, r1, r2 + ldrh r2, [r1] + ldr r1, _080D2B20 + add r3, sp, #0x30 + ldr r0, [r3, #4] + ands r0, r1 + orrs r0, r2 + str r0, [r3, #4] + add r1, sp, #0x18 + ldr r0, _080D2B24 + strh r0, [r1] + mov r0, sb + ldrh r2, [r0, #0x14] + mov r0, sp + adds r0, #0x1a + strh r2, [r0] + str r6, [sp, #0x1c] + mov r2, sb + ldr r0, [r2, #8] + str r0, [sp, #0x20] + str r3, [sp, #0x24] + ldr r0, [r2, #0xc] + str r0, [sp, #0x28] + ldr r0, [r2, #0x10] + str r0, [sp, #0x2c] + mov r0, sp + movs r2, #0x18 + bl memcpy + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + mov r0, sp + adds r1, r4, #0 + adds r2, r5, #0 + mov r3, r8 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r6, _080D2B28 + lsls r3, r0, #4 + adds r3, r3, r0 + lsls r3, r3, #2 + adds r4, r3, r6 + adds r5, r4, #0 + adds r5, #0x2c + ldrb r1, [r5] + movs r2, #0x40 + orrs r1, r2 + strb r1, [r5] + adds r4, #0x3f + ldrb r2, [r4] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r4] + adds r6, #0xc + adds r3, r3, r6 + mov r2, sb + ldr r1, [r2, #4] + str r1, [r3] + add sp, #0x38 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080D2B1C: .4byte 0x0855714C +_080D2B20: .4byte 0xFFFF0000 +_080D2B24: .4byte 0x0000FFFF +_080D2B28: .4byte 0x020205AC + thumb_func_end CreateMonIconSprite + + thumb_func_start sub_080D2B2C +sub_080D2B2C: @ 0x080D2B2C + push {lr} + sub sp, #8 + movs r1, #0 + str r1, [sp] + ldr r3, _080D2B60 + ldrb r2, [r0, #3] + lsrs r2, r2, #6 + lsls r2, r2, #1 + ldrb r1, [r0, #1] + lsrs r1, r1, #6 + lsls r1, r1, #3 + adds r2, r2, r1 + adds r2, r2, r3 + ldrh r3, [r2] + ldr r2, _080D2B64 + ldr r1, [sp, #4] + ands r1, r2 + orrs r1, r3 + str r1, [sp, #4] + mov r1, sp + str r1, [r0, #0xc] + bl DestroySprite + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 +_080D2B60: .4byte 0x0855714C +_080D2B64: .4byte 0xFFFF0000 + thumb_func_end sub_080D2B2C + + thumb_func_start sub_080D2B68 +sub_080D2B68: @ 0x080D2B68 + mov ip, r0 + adds r0, #0x2a + movs r3, #0 + strb r1, [r0] + mov r2, ip + adds r2, #0x2c + ldrb r1, [r2] + movs r0, #0x40 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + mov r0, ip + adds r0, #0x2b + strb r3, [r0] + bx lr + .align 2, 0 + thumb_func_end sub_080D2B68 + diff --git a/asm/pokemon_jump.s b/asm/pokemon_jump.s new file mode 100644 index 0000000..81acb70 --- /dev/null +++ b/asm/pokemon_jump.s @@ -0,0 +1,9428 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_0802A69C +sub_0802A69C: @ 0x0802A69C + push {r4, r5, r6, r7, lr} + adds r6, r1, #0 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + ldr r0, _0802A714 + ldrb r0, [r0] + cmp r0, #0 + beq _0802A730 + ldr r5, _0802A718 + ldr r0, _0802A71C + bl Alloc + str r0, [r5] + cmp r0, #0 + beq _0802A730 + bl ResetTasks + ldr r0, _0802A720 + movs r1, #1 + bl CreateTask + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, [r5] + movs r1, #0 + strh r1, [r0, #8] + str r6, [r0] + strb r4, [r0, #4] + bl GetMultiplayerId + ldr r1, [r5] + strb r0, [r1, #6] + ldr r0, [r5] + ldrb r2, [r0, #6] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + ldr r2, _0802A724 + adds r1, r1, r2 + adds r0, r0, r1 + movs r1, #0x64 + muls r1, r7, r1 + ldr r2, _0802A728 + adds r1, r1, r2 + bl sub_0802A920 + ldr r0, [r5] + bl sub_0802A754 + ldr r2, [r5] + adds r0, r4, #0 + movs r1, #2 + bl SetWordTaskArg + ldr r0, _0802A72C + bl SetMainCallback2 + b _0802A736 + .align 2, 0 +_0802A714: .4byte 0x030031C4 +_0802A718: .4byte 0x020229B0 +_0802A71C: .4byte 0x0000839C +_0802A720: .4byte 0x0802A995 +_0802A724: .4byte 0x000082A8 +_0802A728: .4byte 0x02024190 +_0802A72C: .4byte 0x0802A961 +_0802A730: + adds r0, r6, #0 + bl SetMainCallback2 +_0802A736: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_0802A69C + + thumb_func_start sub_0802A73C +sub_0802A73C: @ 0x0802A73C + push {lr} + bl sub_0802CDA0 + ldr r0, _0802A750 + ldr r0, [r0] + bl Free + pop {r0} + bx r0 + .align 2, 0 +_0802A750: .4byte 0x020229B0 + thumb_func_end sub_0802A73C + + thumb_func_start sub_0802A754 +sub_0802A754: @ 0x0802A754 + push {r4, lr} + adds r4, r0, #0 + bl GetLinkPlayerCount + movs r2, #0 + strb r0, [r4, #5] + adds r1, r4, #0 + adds r1, #0x70 + movs r0, #5 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x72 + strh r2, [r0] + bl sub_0802A814 + adds r0, r4, #0 + bl sub_0802A788 + ldrb r0, [r4, #5] + cmp r0, #5 + bne _0802A782 + bl sub_0802E0A0 +_0802A782: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0802A754 + + thumb_func_start sub_0802A788 +sub_0802A788: @ 0x0802A788 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #6 + str r0, [r4, #0x14] + str r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x4a + movs r6, #0 + movs r5, #0 + strh r5, [r0] + str r5, [r4, #0x1c] + str r5, [r4, #0x5c] + bl GetMultiplayerId + movs r1, #0 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802A7AE + movs r1, #1 +_0802A7AE: + adds r0, r4, #0 + adds r0, #0x47 + strb r1, [r0] + strh r5, [r4, #8] + strh r5, [r4, #0xa] + strh r5, [r4, #0xc] + strh r5, [r4, #0xe] + str r5, [r4, #0x58] + strh r5, [r4, #0x3a] + subs r0, #3 + strb r6, [r0] + str r5, [r4, #0x54] + adds r0, #2 + strb r6, [r0] + adds r0, #3 + strb r6, [r0] + subs r0, #1 + movs r1, #1 + strb r1, [r0] + str r5, [r4, #0x78] + adds r0, #0x29 + strb r6, [r0] + adds r0, #3 + strh r5, [r0] + str r1, [r4, #0x60] + subs r0, #0x27 + strb r6, [r0] + str r5, [r4, #0x68] + str r5, [r4, #0x64] + str r5, [r4, #0x2c] + str r5, [r4, #0x30] + bl sub_0802A88C + bl sub_0802BDDC + movs r2, #0 + adds r5, r4, #0 + adds r5, #0x7c + movs r3, #0 + adds r1, r4, #0 + adds r1, #0x9a +_0802A800: + adds r0, r5, r2 + strb r3, [r0] + strh r3, [r1] + adds r1, #2 + adds r2, #1 + cmp r2, #4 + ble _0802A800 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_0802A788 + + thumb_func_start sub_0802A814 +sub_0802A814: @ 0x0802A814 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r7, _0802A874 + movs r6, #0 + movs r5, #0 + ldr r0, _0802A878 + mov r8, r0 + movs r4, #4 +_0802A826: + ldr r0, [r7] + adds r0, r0, r5 + ldr r1, _0802A87C + adds r0, r0, r1 + ldrh r0, [r0] + bl sub_0802A8F4 + lsls r0, r0, #0x10 + ldr r1, [r7] + adds r1, r1, r6 + asrs r0, r0, #0xe + add r0, r8 + ldrh r0, [r0, #2] + ldr r2, _0802A880 + adds r1, r1, r2 + strh r0, [r1] + adds r6, #0x24 + adds r5, #0xc + subs r4, #1 + cmp r4, #0 + bge _0802A826 + ldr r0, _0802A874 + ldr r1, [r0] + ldr r0, _0802A884 + adds r3, r1, r0 + ldrb r2, [r1, #6] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _0802A888 + adds r0, r0, r2 + adds r1, r1, r0 + str r1, [r3] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0802A874: .4byte 0x020229B0 +_0802A878: .4byte 0x082CECF0 +_0802A87C: .4byte 0x000082A8 +_0802A880: .4byte 0x000082F0 +_0802A884: .4byte 0x00008398 +_0802A888: .4byte 0x000082E4 + thumb_func_end sub_0802A814 + + thumb_func_start sub_0802A88C +sub_0802A88C: @ 0x0802A88C + push {r4, r5, r6, r7, lr} + movs r5, #0 + ldr r6, _0802A8DC + movs r4, #0 + movs r3, #0 +_0802A896: + ldr r2, [r6] + adds r1, r2, r3 + ldr r7, _0802A8E0 + adds r0, r1, r7 + strh r4, [r0] + adds r7, #2 + adds r0, r1, r7 + strh r4, [r0] + ldr r0, _0802A8E4 + adds r1, r1, r0 + strh r4, [r1] + ldr r1, _0802A8E8 + adds r0, r2, r1 + adds r0, r0, r3 + str r4, [r0] + subs r7, #0xc + adds r0, r2, r7 + adds r0, r0, r3 + ldr r1, _0802A8EC + str r1, [r0] + ldr r1, _0802A8F0 + adds r0, r2, r1 + adds r0, r0, r3 + str r4, [r0] + adds r2, #0x8b + adds r2, r2, r5 + movs r0, #9 + strb r0, [r2] + adds r3, #0x24 + adds r5, #1 + cmp r5, #4 + ble _0802A896 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0802A8DC: .4byte 0x020229B0 +_0802A8E0: .4byte 0x000082F2 +_0802A8E4: .4byte 0x000082F6 +_0802A8E8: .4byte 0x000082E4 +_0802A8EC: .4byte 0x7FFFFFFF +_0802A8F0: .4byte 0x000082F8 + thumb_func_end sub_0802A88C + + thumb_func_start sub_0802A8F4 +sub_0802A8F4: @ 0x0802A8F4 + push {lr} + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + movs r1, #0 + ldr r2, _0802A90C +_0802A8FE: + ldrh r0, [r2] + cmp r0, r3 + bne _0802A910 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + b _0802A91C + .align 2, 0 +_0802A90C: .4byte 0x082CECF0 +_0802A910: + adds r2, #4 + adds r1, #1 + cmp r1, #0x63 + bls _0802A8FE + movs r0, #1 + rsbs r0, r0, #0 +_0802A91C: + pop {r1} + bx r1 + thumb_func_end sub_0802A8F4 + + thumb_func_start sub_0802A920 +sub_0802A920: @ 0x0802A920 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + strh r0, [r5] + adds r0, r4, #0 + movs r1, #1 + bl GetMonData + str r0, [r5, #4] + adds r0, r4, #0 + movs r1, #0 + bl GetMonData + str r0, [r5, #8] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0802A920 + + thumb_func_start sub_0802A94C +sub_0802A94C: @ 0x0802A94C + push {lr} + bl TransferPlttBuffer + bl LoadOam + bl ProcessSpriteCopyRequests + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0802A94C + + thumb_func_start sub_0802A960 +sub_0802A960: @ 0x0802A960 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0802A960 + + thumb_func_start sub_0802A978 +sub_0802A978: @ 0x0802A978 + push {lr} + movs r1, #1 + bl CreateTask + ldr r2, _0802A990 + ldr r1, [r2] + movs r3, #0 + strb r0, [r1, #4] + ldr r0, [r2] + strh r3, [r0, #8] + pop {r0} + bx r0 + .align 2, 0 +_0802A990: .4byte 0x020229B0 + thumb_func_end sub_0802A978 + + thumb_func_start sub_0802A994 +sub_0802A994: @ 0x0802A994 + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _0802A9B4 + ldr r0, [r1] + ldrh r0, [r0, #8] + adds r2, r1, #0 + cmp r0, #5 + bls _0802A9AA + b _0802AAFC +_0802A9AA: + lsls r0, r0, #2 + ldr r1, _0802A9B8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802A9B4: .4byte 0x020229B0 +_0802A9B8: .4byte 0x0802A9BC +_0802A9BC: @ jump table + .4byte _0802A9D4 @ case 0 + .4byte _0802AA00 @ case 1 + .4byte _0802AA30 @ case 2 + .4byte _0802AA5C @ case 3 + .4byte _0802AA98 @ case 4 + .4byte _0802AAC4 @ case 5 +_0802A9D4: + movs r0, #0 + bl SetVBlankCallback + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r0, _0802A9F8 + movs r1, #5 + bl sub_0802BB54 + movs r0, #4 + bl FadeOutMapMusic + ldr r0, _0802A9FC + ldr r1, [r0] + b _0802AAB4 + .align 2, 0 +_0802A9F8: .4byte 0x0802BA79 +_0802A9FC: .4byte 0x020229B0 +_0802AA00: + ldr r0, _0802AA28 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802AAFC + ldr r4, _0802AA2C + ldr r0, [r4] + adds r0, #0xa4 + bl sub_0802CD68 + bl LoadWirelessStatusIndicatorSpriteGfx + movs r0, #0 + movs r1, #0 + bl CreateWirelessStatusIndicatorSprite + ldr r1, [r4] + b _0802AAB4 + .align 2, 0 +_0802AA28: .4byte 0x0802BA79 +_0802AA2C: .4byte 0x020229B0 +_0802AA30: + bl sub_0802CDE4 + cmp r0, #0 + bne _0802AAFC + bl IsNotWaitingForBGMStop + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0802AAFC + ldr r0, _0802AA54 + movs r1, #8 + bl FadeOutAndPlayNewMapMusic + ldr r0, _0802AA58 + ldr r1, [r0] + b _0802AAB4 + .align 2, 0 +_0802AA54: .4byte 0x0000021A +_0802AA58: .4byte 0x020229B0 +_0802AA5C: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0802AAFC + movs r4, #1 + rsbs r4, r4, #0 + adds r0, r4, #0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + movs r0, #0 + str r0, [sp] + adds r0, r4, #0 + adds r1, r4, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r0, _0802AA90 + bl SetVBlankCallback + ldr r0, _0802AA94 + ldr r1, [r0] + b _0802AAB4 + .align 2, 0 +_0802AA90: .4byte 0x0802A94D +_0802AA94: .4byte 0x020229B0 +_0802AA98: + bl UpdatePaletteFade + ldr r0, _0802AABC + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _0802AAFC + ldr r1, _0802AAC0 + ldr r0, [r1] + strb r2, [r0, #7] + ldr r1, [r1] +_0802AAB4: + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _0802AAFC + .align 2, 0 +_0802AABC: .4byte 0x02037C74 +_0802AAC0: .4byte 0x020229B0 +_0802AAC4: + ldr r0, [r2] + ldrb r1, [r0, #7] + adds r1, #1 + strb r1, [r0, #7] + ldr r1, [r2] + ldrb r0, [r1, #7] + cmp r0, #0x13 + bls _0802AAFC + adds r0, r1, #0 + adds r0, #0x47 + ldrb r0, [r0] + cmp r0, #0 + beq _0802AAEC + ldr r0, _0802AAE8 + bl sub_0802A978 + b _0802AAF2 + .align 2, 0 +_0802AAE8: .4byte 0x0802AC75 +_0802AAEC: + ldr r0, _0802AB04 + bl sub_0802A978 +_0802AAF2: + bl sub_0802BB74 + adds r0, r4, #0 + bl DestroyTask +_0802AAFC: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802AB04: .4byte 0x0802AE89 + thumb_func_end sub_0802A994 + + thumb_func_start sub_0802AB08 +sub_0802AB08: @ 0x0802AB08 + push {lr} + adds r1, r0, #0 + cmp r1, #0 + bne _0802AB28 + ldr r0, _0802AB20 + ldr r1, [r0] + ldr r0, _0802AB24 + str r0, [r1, #0x30] + movs r0, #1 + str r0, [r1, #0x2c] + b _0802AB3A + .align 2, 0 +_0802AB20: .4byte 0x020229B0 +_0802AB24: .4byte 0x00001111 +_0802AB28: + ldr r0, _0802AB40 + ldr r2, [r0] + subs r1, #1 + movs r0, #1 + lsls r0, r1 + subs r0, #1 + str r0, [r2, #0x30] + movs r0, #0 + str r0, [r2, #0x2c] +_0802AB3A: + pop {r0} + bx r0 + .align 2, 0 +_0802AB40: .4byte 0x020229B0 + thumb_func_end sub_0802AB08 + + thumb_func_start sub_0802AB44 +sub_0802AB44: @ 0x0802AB44 + push {r4, r5, r6, lr} + ldr r4, _0802AB90 + ldr r1, [r4] + adds r1, #0x70 + movs r2, #0 + strb r0, [r1] + ldr r0, [r4] + movs r3, #0 + strh r2, [r0, #8] + strh r2, [r0, #0xa] + adds r0, #0x48 + movs r1, #1 + strb r1, [r0] + ldr r0, [r4] + adds r0, #0x49 + strb r3, [r0] + movs r3, #1 + ldr r0, [r4] + ldrb r0, [r0, #5] + cmp r3, r0 + bge _0802AB88 + adds r6, r4, #0 + ldr r5, _0802AB94 + movs r4, #0 + movs r2, #0x24 +_0802AB76: + ldr r1, [r6] + adds r0, r1, r5 + adds r0, r0, r2 + str r4, [r0] + adds r2, #0x24 + adds r3, #1 + ldrb r1, [r1, #5] + cmp r3, r1 + blt _0802AB76 +_0802AB88: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0802AB90: .4byte 0x020229B0 +_0802AB94: .4byte 0x000082FC + thumb_func_end sub_0802AB44 + + thumb_func_start sub_0802AB98 +sub_0802AB98: @ 0x0802AB98 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + movs r4, #1 + movs r0, #0 + str r0, [sp, #4] + ldr r7, _0802AC60 + ldr r0, [r7] + ldrb r0, [r0, #5] + cmp r4, r0 + bge _0802AC3C + adds r1, r7, #0 + mov sl, r1 + movs r2, #2 + add r2, sp + mov r8, r2 + ldr r3, _0802AC64 + mov sb, r3 + movs r6, #0x24 +_0802ABC4: + mov r1, sl + ldr r0, [r1] + adds r1, r0, r6 + ldr r2, _0802AC68 + adds r1, r1, r2 + ldrh r5, [r1] + add r0, sb + adds r1, r4, #0 + mov r2, sp + mov r3, r8 + bl sub_0802DF5C + cmp r0, #0 + beq _0802AC04 + ldr r2, [r7] + lsls r1, r4, #1 + adds r0, r2, #0 + adds r0, #0x90 + adds r0, r0, r1 + mov r3, r8 + ldrh r1, [r3] + strh r1, [r0] + adds r2, #0x8b + adds r2, r2, r4 + mov r0, sp + ldrb r0, [r0] + strb r0, [r2] + ldr r0, [r7] + adds r0, r0, r6 + ldr r1, _0802AC6C + adds r0, r0, r1 + strh r5, [r0] +_0802AC04: + mov r2, sl + ldr r1, [r2] + ldr r3, _0802AC70 + adds r0, r1, r3 + adds r0, r0, r6 + ldr r0, [r0] + cmp r0, #0 + beq _0802AC2A + adds r0, r1, #0 + adds r0, #0x8b + adds r0, r0, r4 + adds r1, #0x70 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bne _0802AC2A + ldr r0, [sp, #4] + adds r0, #1 + str r0, [sp, #4] +_0802AC2A: + movs r1, #0x24 + add sb, r1 + adds r6, #0x24 + adds r4, #1 + ldr r7, _0802AC60 + ldr r0, [r7] + ldrb r0, [r0, #5] + cmp r4, r0 + blt _0802ABC4 +_0802AC3C: + ldr r2, _0802AC60 + ldr r1, [r2] + ldrb r0, [r1, #5] + subs r0, #1 + ldr r3, [sp, #4] + cmp r3, r0 + bne _0802AC50 + adds r1, #0x49 + movs r0, #1 + strb r0, [r1] +_0802AC50: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0802AC60: .4byte 0x020229B0 +_0802AC64: .4byte 0x00008308 +_0802AC68: .4byte 0x000082F4 +_0802AC6C: .4byte 0x000082F6 +_0802AC70: .4byte 0x000082FC + thumb_func_end sub_0802AB98 + + thumb_func_start sub_0802AC74 +sub_0802AC74: @ 0x0802AC74 + push {r4, r5, lr} + bl sub_0802AB98 + bl sub_0802C130 + ldr r0, _0802ACF0 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0x48 + ldrb r0, [r0] + cmp r0, #0 + bne _0802ACA6 + adds r0, r1, #0 + adds r0, #0x49 + ldrb r0, [r0] + cmp r0, #0 + beq _0802ACA6 + adds r0, r1, #0 + adds r0, #0x4c + ldrb r0, [r0] + bl sub_0802AB44 + movs r0, #3 + bl sub_0802AB08 +_0802ACA6: + ldr r4, _0802ACF0 + ldr r2, [r4] + adds r0, r2, #0 + adds r0, #0x48 + ldrb r5, [r0] + cmp r5, #1 + bne _0802ACE2 + ldr r1, _0802ACF4 + adds r0, #0x28 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + adds r1, r0, #0 + cmp r1, #0 + bne _0802ACE2 + ldr r0, [r4] + adds r0, #0x48 + strb r1, [r0] + ldr r1, [r4] + ldrb r2, [r1, #6] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _0802ACF8 + adds r1, r1, r2 + adds r1, r1, r0 + str r5, [r1] +_0802ACE2: + bl sub_0802BED0 + bl sub_0802ACFC + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0802ACF0: .4byte 0x020229B0 +_0802ACF4: .4byte 0x082CEE80 +_0802ACF8: .4byte 0x000082FC + thumb_func_end sub_0802AC74 + + thumb_func_start sub_0802ACFC +sub_0802ACFC: @ 0x0802ACFC + push {r4, lr} + ldr r4, _0802AD2C + ldr r1, [r4] + ldr r0, [r1, #0x2c] + cmp r0, #0 + bne _0802AD12 + ldr r2, _0802AD30 + adds r0, r1, r2 + adds r1, #0x70 + bl sub_0802DE30 +_0802AD12: + ldr r1, [r4] + ldr r2, [r1, #0x30] + ldr r0, _0802AD34 + cmp r2, r0 + beq _0802AD24 + ldr r0, [r1, #0x2c] + adds r0, #1 + ands r0, r2 + str r0, [r1, #0x2c] +_0802AD24: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802AD2C: .4byte 0x020229B0 +_0802AD30: .4byte 0x000082E4 +_0802AD34: .4byte 0x00001111 + thumb_func_end sub_0802ACFC + + thumb_func_start sub_0802AD38 +sub_0802AD38: @ 0x0802AD38 + ldr r2, _0802AD64 + ldr r1, [r2] + adds r1, #0x70 + movs r3, #0 + strb r0, [r1] + ldr r0, [r2] + strh r3, [r0, #8] + strh r3, [r0, #0xa] + adds r0, #0x48 + movs r1, #1 + strb r1, [r0] + ldr r1, [r2] + ldrb r2, [r1, #6] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _0802AD68 + adds r1, r1, r2 + adds r1, r1, r0 + str r3, [r1] + bx lr + .align 2, 0 +_0802AD64: .4byte 0x020229B0 +_0802AD68: .4byte 0x000082FC + thumb_func_end sub_0802AD38 + + thumb_func_start sub_0802AD6C +sub_0802AD6C: @ 0x0802AD6C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x10 + ldr r4, _0802ADE8 + ldr r0, [r4] + ldr r2, _0802ADEC + adds r1, r0, r2 + ldrh r1, [r1] + mov r8, r1 + ldr r3, _0802ADF0 + adds r0, r0, r3 + mov r1, sp + bl sub_0802DEB4 + cmp r0, #0 + beq _0802AE1C + ldr r2, [r4] + ldrb r0, [r2, #6] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r3, _0802ADF4 + adds r0, r2, r3 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #1 + bne _0802ADBA + mov r0, sp + adds r1, r2, #0 + adds r1, #0x70 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _0802ADBA + mov r0, sp + ldrb r0, [r0] + bl sub_0802AD38 +_0802ADBA: + ldr r3, _0802ADE8 + ldr r2, [r3] + ldr r0, [r2, #0x78] + ldr r1, [sp, #8] + cmp r0, r1 + beq _0802ADFC + str r1, [r2, #0x78] + movs r4, #1 + str r4, [r2, #0x5c] + mov r0, sp + ldrb r1, [r0, #1] + adds r0, r2, #0 + adds r0, #0x71 + strb r1, [r0] + ldr r0, [r3] + adds r1, r0, #0 + adds r1, #0x71 + ldrb r1, [r1] + cmp r1, #0 + beq _0802ADF8 + adds r0, #0x4d + strb r4, [r0] + b _0802ADFC + .align 2, 0 +_0802ADE8: .4byte 0x020229B0 +_0802ADEC: .4byte 0x000082F4 +_0802ADF0: .4byte 0x000082E4 +_0802ADF4: .4byte 0x000082FC +_0802ADF8: + adds r0, #0x4d + strb r1, [r0] +_0802ADFC: + ldr r0, _0802AE78 + ldr r1, [r0] + mov r0, sp + ldrh r0, [r0, #2] + adds r2, r1, #0 + adds r2, #0x72 + strh r0, [r2] + mov r0, sp + ldrh r2, [r0, #4] + adds r0, r1, #0 + adds r0, #0x74 + strh r2, [r0] + ldr r0, _0802AE7C + adds r1, r1, r0 + mov r2, r8 + strh r2, [r1] +_0802AE1C: + movs r4, #1 + ldr r2, _0802AE78 + ldr r0, [r2] + ldrb r0, [r0, #5] + cmp r4, r0 + bge _0802AE6A + adds r7, r2, #0 + ldr r6, _0802AE80 + movs r5, #0x24 +_0802AE2E: + ldr r1, [r7] + ldrb r3, [r1, #6] + cmp r4, r3 + beq _0802AE5C + adds r0, r1, r5 + ldr r3, _0802AE84 + adds r0, r0, r3 + ldrh r0, [r0] + mov r8, r0 + adds r0, r1, r6 + adds r1, r4, #0 + str r2, [sp, #0xc] + bl sub_0802DFC8 + ldr r2, [sp, #0xc] + cmp r0, #0 + beq _0802AE5C + ldr r0, [r7] + adds r0, r0, r5 + ldr r1, _0802AE7C + adds r0, r0, r1 + mov r3, r8 + strh r3, [r0] +_0802AE5C: + adds r6, #0x24 + adds r5, #0x24 + adds r4, #1 + ldr r0, [r2] + ldrb r0, [r0, #5] + cmp r4, r0 + blt _0802AE2E +_0802AE6A: + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0802AE78: .4byte 0x020229B0 +_0802AE7C: .4byte 0x000082F6 +_0802AE80: .4byte 0x00008308 +_0802AE84: .4byte 0x000082F4 + thumb_func_end sub_0802AD6C + + thumb_func_start sub_0802AE88 +sub_0802AE88: @ 0x0802AE88 + push {r4, lr} + bl sub_0802AD6C + ldr r4, _0802AEE4 + ldr r2, [r4] + adds r0, r2, #0 + adds r0, #0x48 + ldrb r0, [r0] + cmp r0, #0 + beq _0802AED4 + ldr r1, _0802AEE8 + adds r0, r2, #0 + adds r0, #0x70 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + adds r1, r0, #0 + cmp r1, #0 + bne _0802AED4 + ldr r0, [r4] + adds r0, #0x48 + strb r1, [r0] + ldr r1, [r4] + ldrb r2, [r1, #6] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r2, _0802AEEC + adds r1, r1, r2 + adds r1, r1, r0 + movs r0, #1 + str r0, [r1] + movs r0, #3 + bl sub_0802AB08 +_0802AED4: + bl sub_0802BED0 + bl sub_0802AEF0 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802AEE4: .4byte 0x020229B0 +_0802AEE8: .4byte 0x082CEEA4 +_0802AEEC: .4byte 0x000082FC + thumb_func_end sub_0802AE88 + + thumb_func_start sub_0802AEF0 +sub_0802AEF0: @ 0x0802AEF0 + push {r4, lr} + ldr r4, _0802AF30 + ldr r2, [r4] + ldr r0, [r2, #0x2c] + cmp r0, #0 + bne _0802AF18 + ldrb r1, [r2, #6] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0802AF34 + adds r0, r0, r1 + adds r0, r2, r0 + adds r1, r2, #0 + adds r1, #0x70 + ldrb r1, [r1] + adds r2, #0x42 + ldrh r2, [r2] + bl sub_0802DF2C +_0802AF18: + ldr r1, [r4] + ldr r2, [r1, #0x30] + ldr r0, _0802AF38 + cmp r2, r0 + beq _0802AF2A + ldr r0, [r1, #0x2c] + adds r0, #1 + ands r0, r2 + str r0, [r1, #0x2c] +_0802AF2A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802AF30: .4byte 0x020229B0 +_0802AF34: .4byte 0x000082E4 +_0802AF38: .4byte 0x00001111 + thumb_func_end sub_0802AEF0 + + thumb_func_start sub_0802AF3C +sub_0802AF3C: @ 0x0802AF3C + push {r4, lr} + ldr r4, _0802AF50 + ldr r0, [r4] + ldrh r0, [r0, #8] + cmp r0, #0 + beq _0802AF54 + cmp r0, #1 + beq _0802AF62 + b _0802AF88 + .align 2, 0 +_0802AF50: .4byte 0x020229B0 +_0802AF54: + movs r0, #3 + bl sub_0802AB08 + ldr r1, [r4] + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] +_0802AF62: + bl sub_0802B4D4 + cmp r0, #0 + bne _0802AF88 + ldr r0, _0802AF84 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0x4a + ldrh r0, [r0] + adds r2, r1, #0 + adds r2, #0x72 + strh r0, [r2] + adds r1, #0x4c + movs r0, #1 + strb r0, [r1] + movs r0, #0 + b _0802AF8A + .align 2, 0 +_0802AF84: .4byte 0x020229B0 +_0802AF88: + movs r0, #1 +_0802AF8A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0802AF3C + + thumb_func_start sub_0802AF90 +sub_0802AF90: @ 0x0802AF90 + push {r4, lr} + ldr r4, _0802AFA4 + ldr r0, [r4] + ldrh r0, [r0, #8] + cmp r0, #0 + beq _0802AFA8 + cmp r0, #1 + beq _0802AFBE + movs r0, #1 + b _0802AFC2 + .align 2, 0 +_0802AFA4: .4byte 0x020229B0 +_0802AFA8: + movs r0, #0 + bl sub_0802AB08 + ldr r1, [r4] + adds r0, r1, #0 + adds r0, #0x72 + ldrh r0, [r0] + str r0, [r1, #0x24] + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] +_0802AFBE: + bl sub_0802B4D4 +_0802AFC2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0802AF90 + + thumb_func_start sub_0802AFC8 +sub_0802AFC8: @ 0x0802AFC8 + push {r4, lr} + ldr r4, _0802AFDC + ldr r1, [r4] + ldrh r0, [r1, #8] + cmp r0, #0 + beq _0802AFE0 + cmp r0, #1 + beq _0802AFF4 + b _0802B008 + .align 2, 0 +_0802AFDC: .4byte 0x020229B0 +_0802AFE0: + bl sub_0802BDDC + movs r0, #5 + bl sub_0802AB08 + ldr r1, [r4] + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _0802B008 +_0802AFF4: + adds r0, r1, #0 + adds r0, #0x49 + ldrb r0, [r0] + cmp r0, #0 + beq _0802B008 + adds r1, #0x4c + movs r0, #2 + strb r0, [r1] + movs r0, #0 + b _0802B00A +_0802B008: + movs r0, #1 +_0802B00A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0802AFC8 + + thumb_func_start sub_0802B010 +sub_0802B010: @ 0x0802B010 + push {r4, lr} + ldr r4, _0802B024 + ldr r0, [r4] + ldrh r0, [r0, #8] + cmp r0, #0 + beq _0802B028 + cmp r0, #1 + beq _0802B046 + b _0802B052 + .align 2, 0 +_0802B024: .4byte 0x020229B0 +_0802B028: + bl sub_0802BDDC + movs r0, #0 + bl sub_0802AB08 + ldr r1, [r4] + adds r0, r1, #0 + adds r0, #0x72 + ldrh r0, [r0] + adds r2, r1, #0 + adds r2, #0x4a + strh r0, [r2] + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] +_0802B046: + bl sub_0802C400 + cmp r0, #0 + beq _0802B052 + movs r0, #0 + b _0802B054 +_0802B052: + movs r0, #1 +_0802B054: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0802B010 + + thumb_func_start sub_0802B05C +sub_0802B05C: @ 0x0802B05C + push {lr} + bl sub_0802B5C0 + cmp r0, #0 + bne _0802B084 + ldr r0, _0802B080 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0x4a + ldrh r0, [r0] + adds r2, r1, #0 + adds r2, #0x72 + strh r0, [r2] + adds r1, #0x4c + movs r0, #1 + strb r0, [r1] + b _0802B09E + .align 2, 0 +_0802B080: .4byte 0x020229B0 +_0802B084: + bl sub_0802C22C + cmp r0, #0 + beq _0802B090 + movs r0, #1 + b _0802B0A0 +_0802B090: + bl sub_0802BDAC + ldr r0, _0802B0A4 + ldr r0, [r0] + adds r0, #0x4c + movs r1, #3 + strb r1, [r0] +_0802B09E: + movs r0, #0 +_0802B0A0: + pop {r1} + bx r1 + .align 2, 0 +_0802B0A4: .4byte 0x020229B0 + thumb_func_end sub_0802B05C + + thumb_func_start sub_0802B0A8 +sub_0802B0A8: @ 0x0802B0A8 + push {lr} + bl sub_0802B5C0 + cmp r0, #0 + beq _0802B0C2 + bl sub_0802C22C + cmp r0, #0 + beq _0802B0BE + movs r0, #1 + b _0802B0C4 +_0802B0BE: + bl sub_0802BDAC +_0802B0C2: + movs r0, #0 +_0802B0C4: + pop {r1} + bx r1 + thumb_func_end sub_0802B0A8 + + thumb_func_start sub_0802B0C8 +sub_0802B0C8: @ 0x0802B0C8 + push {r4, lr} + ldr r4, _0802B0E0 + ldr r0, [r4] + ldrh r0, [r0, #8] + cmp r0, #1 + beq _0802B100 + cmp r0, #1 + bgt _0802B0E4 + cmp r0, #0 + beq _0802B0EA + b _0802B15C + .align 2, 0 +_0802B0E0: .4byte 0x020229B0 +_0802B0E4: + cmp r0, #2 + beq _0802B154 + b _0802B15C +_0802B0EA: + bl sub_0802C22C + bl sub_0802C2D0 + cmp r0, #0 + beq _0802B15C + ldr r1, [r4] + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _0802B15C +_0802B100: + bl sub_0802B658 + cmp r0, #0 + bne _0802B15C + bl sub_0802C4B0 + cmp r0, #0 + beq _0802B122 + bl sub_0802C4D4 + ldr r1, [r4] + adds r2, r1, #0 + adds r2, #0x72 + strh r0, [r2] + adds r1, #0x4c + movs r0, #7 + b _0802B148 +_0802B122: + ldr r1, [r4] + adds r0, r1, #0 + adds r0, #0x74 + ldrh r0, [r0] + cmp r0, #0xc7 + bls _0802B13C + ldrh r0, [r1, #0xe] + adds r2, r1, #0 + adds r2, #0x72 + strh r0, [r2] + adds r1, #0x4c + movs r0, #8 + b _0802B148 +_0802B13C: + ldrh r0, [r1, #0xe] + adds r2, r1, #0 + adds r2, #0x72 + strh r0, [r2] + adds r1, #0x4c + movs r0, #4 +_0802B148: + strb r0, [r1] + ldr r0, _0802B158 + ldr r1, [r0] + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] +_0802B154: + movs r0, #0 + b _0802B15E + .align 2, 0 +_0802B158: .4byte 0x020229B0 +_0802B15C: + movs r0, #1 +_0802B15E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0802B0C8 + + thumb_func_start sub_0802B164 +sub_0802B164: @ 0x0802B164 + push {r4, lr} + ldr r4, _0802B17C + ldr r0, [r4] + ldrh r0, [r0, #8] + cmp r0, #1 + beq _0802B1A4 + cmp r0, #1 + bgt _0802B180 + cmp r0, #0 + beq _0802B186 + b _0802B1B8 + .align 2, 0 +_0802B17C: .4byte 0x020229B0 +_0802B180: + cmp r0, #2 + beq _0802B1B4 + b _0802B1B8 +_0802B186: + bl sub_0802C22C + cmp r0, #0 + bne _0802B192 + bl sub_0802BDAC +_0802B192: + bl sub_0802C2D0 + cmp r0, #0 + beq _0802B1B8 + ldr r1, [r4] + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _0802B1B8 +_0802B1A4: + bl sub_0802B658 + cmp r0, #0 + bne _0802B1B8 + ldr r1, [r4] + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] +_0802B1B4: + movs r0, #0 + b _0802B1BA +_0802B1B8: + movs r0, #1 +_0802B1BA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0802B164 + + thumb_func_start sub_0802B1C0 +sub_0802B1C0: @ 0x0802B1C0 + push {r4, lr} + ldr r4, _0802B1D8 + ldr r0, [r4] + ldrh r1, [r0, #8] + cmp r1, #1 + beq _0802B1F4 + cmp r1, #1 + bgt _0802B1DC + cmp r1, #0 + beq _0802B1E6 + b _0802B254 + .align 2, 0 +_0802B1D8: .4byte 0x020229B0 +_0802B1DC: + cmp r1, #2 + beq _0802B220 + cmp r1, #3 + beq _0802B24A + b _0802B254 +_0802B1E6: + movs r0, #4 + bl sub_0802AB08 + ldr r1, [r4] + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] +_0802B1F4: + bl sub_0802B878 + cmp r0, #0 + bne _0802B254 + ldr r4, _0802B21C + ldr r2, [r4] + ldr r0, [r2, #0x78] + adds r1, r2, #0 + adds r1, #0x74 + ldrh r1, [r1] + adds r2, #0x72 + ldrh r2, [r2] + bl sub_0802E04C + ldr r1, [r4] + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _0802B254 + .align 2, 0 +_0802B21C: .4byte 0x020229B0 +_0802B220: + adds r0, #0x49 + ldrb r0, [r0] + cmp r0, #0 + beq _0802B254 + bl sub_0802C344 + cmp r0, #0 + beq _0802B238 + ldr r0, [r4] + adds r0, #0x4c + movs r1, #5 + b _0802B23E +_0802B238: + ldr r0, [r4] + adds r0, #0x4c + movs r1, #6 +_0802B23E: + strb r1, [r0] + ldr r0, _0802B250 + ldr r1, [r0] + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] +_0802B24A: + movs r0, #0 + b _0802B256 + .align 2, 0 +_0802B250: .4byte 0x020229B0 +_0802B254: + movs r0, #1 +_0802B256: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0802B1C0 + + thumb_func_start sub_0802B25C +sub_0802B25C: @ 0x0802B25C + push {r4, lr} + ldr r4, _0802B270 + ldr r0, [r4] + ldrh r0, [r0, #8] + cmp r0, #0 + beq _0802B274 + cmp r0, #1 + beq _0802B282 + b _0802B2B4 + .align 2, 0 +_0802B270: .4byte 0x020229B0 +_0802B274: + movs r0, #0 + bl sub_0802AB08 + ldr r1, [r4] + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] +_0802B282: + bl sub_0802B878 + cmp r0, #0 + bne _0802B2B4 + ldr r4, _0802B2B0 + ldr r2, [r4] + ldr r0, [r2, #0x78] + adds r1, r2, #0 + adds r1, #0x74 + ldrh r1, [r1] + adds r2, #0x72 + ldrh r2, [r2] + bl sub_0802E04C + ldr r0, [r4] + adds r1, r0, #0 + adds r1, #0x45 + ldrb r1, [r1] + adds r0, #0x42 + strh r1, [r0] + movs r0, #0 + b _0802B2B6 + .align 2, 0 +_0802B2B0: .4byte 0x020229B0 +_0802B2B4: + movs r0, #1 +_0802B2B6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0802B25C + + thumb_func_start sub_0802B2BC +sub_0802B2BC: @ 0x0802B2BC + push {r4, lr} + ldr r4, _0802B2D0 + ldr r1, [r4] + ldrh r0, [r1, #8] + cmp r0, #0 + beq _0802B2D4 + cmp r0, #1 + beq _0802B2E6 + b _0802B312 + .align 2, 0 +_0802B2D0: .4byte 0x020229B0 +_0802B2D4: + bl sub_0802BA24 + cmp r0, #0 + bne _0802B312 + ldr r1, [r4] + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _0802B312 +_0802B2E6: + adds r0, r1, #0 + adds r0, #0x49 + ldrb r0, [r0] + cmp r0, #0 + beq _0802B312 + adds r0, r1, #0 + bl sub_0802A788 + bl Random + ldr r1, [r4] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [r1, #0x24] + adds r3, r1, #0 + adds r3, #0x72 + movs r2, #0 + strh r0, [r3] + adds r1, #0x4c + strb r2, [r1] + movs r0, #0 + b _0802B314 +_0802B312: + movs r0, #1 +_0802B314: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0802B2BC + + thumb_func_start sub_0802B31C +sub_0802B31C: @ 0x0802B31C + push {r4, lr} + ldr r4, _0802B330 + ldr r0, [r4] + ldrh r0, [r0, #8] + cmp r0, #0 + beq _0802B334 + cmp r0, #1 + beq _0802B34A + b _0802B34E + .align 2, 0 +_0802B330: .4byte 0x020229B0 +_0802B334: + bl sub_0802BA24 + cmp r0, #0 + bne _0802B34E + ldr r0, [r4] + bl sub_0802A788 + ldr r1, [r4] + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] +_0802B34A: + movs r0, #0 + b _0802B350 +_0802B34E: + movs r0, #1 +_0802B350: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0802B31C + + thumb_func_start sub_0802B358 +sub_0802B358: @ 0x0802B358 + push {r4, lr} + ldr r4, _0802B370 + ldr r1, [r4] + ldrh r0, [r1, #8] + cmp r0, #1 + beq _0802B380 + cmp r0, #1 + bgt _0802B374 + cmp r0, #0 + beq _0802B37A + b _0802B3A4 + .align 2, 0 +_0802B370: .4byte 0x020229B0 +_0802B374: + cmp r0, #2 + beq _0802B390 + b _0802B3A4 +_0802B37A: + movs r0, #1 + strh r0, [r1, #8] + b _0802B3A4 +_0802B380: + movs r0, #0 + bl sub_0802AB08 + ldr r1, [r4] + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _0802B3A4 +_0802B390: + bl sub_0802B954 + cmp r0, #0 + bne _0802B3A4 + ldr r0, [r4] + ldr r0, [r0] + bl SetMainCallback2 + bl sub_0802A73C +_0802B3A4: + movs r0, #1 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0802B358 + + thumb_func_start sub_0802B3AC +sub_0802B3AC: @ 0x0802B3AC + push {r4, lr} + ldr r4, _0802B3C0 + ldr r0, [r4] + ldrh r0, [r0, #8] + cmp r0, #0 + beq _0802B3C4 + cmp r0, #1 + beq _0802B3D4 + b _0802B3F0 + .align 2, 0 +_0802B3C0: .4byte 0x020229B0 +_0802B3C4: + movs r0, #4 + bl sub_0802AB08 + ldr r1, [r4] + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _0802B3F0 +_0802B3D4: + bl sub_0802B74C + cmp r0, #0 + bne _0802B3F0 + ldr r0, [r4] + ldrh r1, [r0, #0xe] + adds r2, r0, #0 + adds r2, #0x72 + strh r1, [r2] + adds r0, #0x4c + movs r1, #8 + strb r1, [r0] + movs r0, #0 + b _0802B3F2 +_0802B3F0: + movs r0, #1 +_0802B3F2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0802B3AC + + thumb_func_start sub_0802B3F8 +sub_0802B3F8: @ 0x0802B3F8 + push {lr} + movs r0, #0 + bl sub_0802AB08 + bl sub_0802B74C + cmp r0, #0 + beq _0802B40C + movs r0, #1 + b _0802B40E +_0802B40C: + movs r0, #0 +_0802B40E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0802B3F8 + + thumb_func_start sub_0802B414 +sub_0802B414: @ 0x0802B414 + push {r4, lr} + ldr r1, _0802B42C + ldr r0, [r1] + ldrh r0, [r0, #8] + adds r4, r1, #0 + cmp r0, #4 + bhi _0802B4CC + lsls r0, r0, #2 + ldr r1, _0802B430 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802B42C: .4byte 0x020229B0 +_0802B430: .4byte 0x0802B434 +_0802B434: @ jump table + .4byte _0802B448 @ case 0 + .4byte _0802B464 @ case 1 + .4byte _0802B474 @ case 2 + .4byte _0802B48C @ case 3 + .4byte _0802B4B0 @ case 4 +_0802B448: + ldr r2, [r4] + ldr r0, [r2, #0x78] + adds r1, r2, #0 + adds r1, #0x74 + ldrh r1, [r1] + adds r2, #0x72 + ldrh r2, [r2] + bl sub_0802E04C + movs r0, #5 + bl sub_0802CDBC + ldr r1, [r4] + b _0802B4A0 +_0802B464: + bl sub_0802CDE4 + cmp r0, #0 + bne _0802B4CC + movs r0, #0 + bl sub_0802AB08 + b _0802B49C +_0802B474: + bl sub_0802C400 + cmp r0, #0 + beq _0802B4CC + ldr r0, _0802B488 + movs r1, #6 + bl CreateTask + b _0802B49C + .align 2, 0 +_0802B488: .4byte 0x081535C5 +_0802B48C: + ldr r0, _0802B4A8 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802B4CC + bl sub_0802D704 +_0802B49C: + ldr r0, _0802B4AC + ldr r1, [r0] +_0802B4A0: + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _0802B4CC + .align 2, 0 +_0802B4A8: .4byte 0x081535C5 +_0802B4AC: .4byte 0x020229B0 +_0802B4B0: + bl sub_0802D734 + cmp r0, #0 + bne _0802B4CC + ldr r0, _0802B4C8 + ldr r0, [r0] + adds r0, #0x4c + movs r1, #4 + strb r1, [r0] + movs r0, #0 + b _0802B4CE + .align 2, 0 +_0802B4C8: .4byte 0x020229B0 +_0802B4CC: + movs r0, #1 +_0802B4CE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0802B414 + + thumb_func_start sub_0802B4D4 +sub_0802B4D4: @ 0x0802B4D4 + push {r4, r5, lr} + ldr r1, _0802B4EC + ldr r0, [r1] + ldrh r0, [r0, #0xa] + adds r4, r1, #0 + cmp r0, #7 + bhi _0802B5B8 + lsls r0, r0, #2 + ldr r1, _0802B4F0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802B4EC: .4byte 0x020229B0 +_0802B4F0: .4byte 0x0802B4F4 +_0802B4F4: @ jump table + .4byte _0802B514 @ case 0 + .4byte _0802B520 @ case 1 + .4byte _0802B540 @ case 2 + .4byte _0802B55A @ case 3 + .4byte _0802B56C @ case 4 + .4byte _0802B574 @ case 5 + .4byte _0802B594 @ case 6 + .4byte _0802B5AE @ case 7 +_0802B514: + movs r0, #2 + bl sub_0802CDBC + bl sub_0802DAD8 + b _0802B584 +_0802B520: + bl sub_0802CDE4 + adds r5, r0, #0 + cmp r5, #0 + bne _0802B5B8 + ldr r4, _0802B53C + ldr r0, [r4] + ldrb r0, [r0, #6] + bl sub_0802DAEC + ldr r1, [r4] + strh r5, [r1, #0x3c] + b _0802B588 + .align 2, 0 +_0802B53C: .4byte 0x020229B0 +_0802B540: + ldr r1, [r4] + ldrh r0, [r1, #0x3c] + adds r0, #1 + strh r0, [r1, #0x3c] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x78 + bls _0802B5B8 + movs r0, #3 + bl sub_0802CDBC + ldr r1, [r4] + b _0802B588 +_0802B55A: + bl sub_0802CDE4 + cmp r0, #1 + beq _0802B5B8 + bl sub_0802DB00 + cmp r0, #1 + beq _0802B5B8 + b _0802B584 +_0802B56C: + movs r0, #9 + bl sub_0802CDBC + b _0802B584 +_0802B574: + bl sub_0802CDE4 + cmp r0, #0 + bne _0802B5B8 + bl sub_0802BF54 + bl sub_0802D458 +_0802B584: + ldr r0, _0802B590 + ldr r1, [r0] +_0802B588: + ldrh r0, [r1, #0xa] + adds r0, #1 + strh r0, [r1, #0xa] + b _0802B5B8 + .align 2, 0 +_0802B590: .4byte 0x020229B0 +_0802B594: + bl sub_0802D47C + cmp r0, #0 + bne _0802B5B8 + bl sub_0802BF64 + bl sub_0802BB94 + ldr r0, _0802B5B4 + ldr r1, [r0] + ldrh r0, [r1, #0xa] + adds r0, #1 + strh r0, [r1, #0xa] +_0802B5AE: + movs r0, #0 + b _0802B5BA + .align 2, 0 +_0802B5B4: .4byte 0x020229B0 +_0802B5B8: + movs r0, #1 +_0802B5BA: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_0802B4D4 + + thumb_func_start sub_0802B5C0 +sub_0802B5C0: @ 0x0802B5C0 + push {r4, r5, lr} + bl sub_0802BBD8 + ldr r5, _0802B5D8 + ldr r1, [r5] + ldrh r4, [r1, #0x36] + cmp r4, #0 + beq _0802B5DC + movs r0, #0 + strh r0, [r1, #0x36] + b _0802B650 + .align 2, 0 +_0802B5D8: .4byte 0x020229B0 +_0802B5DC: + ldrh r0, [r1, #0xa] + cmp r0, #1 + beq _0802B608 + cmp r0, #1 + bgt _0802B5EC + cmp r0, #0 + beq _0802B5F6 + b _0802B64E +_0802B5EC: + cmp r0, #2 + beq _0802B62C + cmp r0, #3 + beq _0802B640 + b _0802B64E +_0802B5F6: + movs r0, #0 + bl sub_0802BE24 + cmp r0, #0 + beq _0802B64E + ldr r1, [r5] + ldrh r0, [r1, #0xa] + adds r0, #1 + strh r0, [r1, #0xa] +_0802B608: + ldr r0, _0802B624 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0802B64E + bl sub_0802BE58 + movs r0, #3 + bl sub_0802AB08 + ldr r0, _0802B628 + ldr r1, [r0] + b _0802B638 + .align 2, 0 +_0802B624: .4byte 0x03002360 +_0802B628: .4byte 0x020229B0 +_0802B62C: + movs r0, #1 + bl sub_0802BE24 + cmp r0, #1 + bne _0802B64E + ldr r1, [r5] +_0802B638: + ldrh r0, [r1, #0xa] + adds r0, #1 + strh r0, [r1, #0xa] + b _0802B64E +_0802B640: + movs r0, #0 + bl sub_0802BE24 + cmp r0, #1 + bne _0802B64E + ldr r0, [r5] + strh r4, [r0, #0xa] +_0802B64E: + movs r0, #1 +_0802B650: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0802B5C0 + + thumb_func_start sub_0802B658 +sub_0802B658: @ 0x0802B658 + push {r4, r5, r6, lr} + ldr r1, _0802B670 + ldr r0, [r1] + ldrh r0, [r0, #0xa] + adds r5, r1, #0 + cmp r0, #4 + bhi _0802B744 + lsls r0, r0, #2 + ldr r1, _0802B674 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802B670: .4byte 0x020229B0 +_0802B674: .4byte 0x0802B678 +_0802B678: @ jump table + .4byte _0802B68C @ case 0 + .4byte _0802B6B0 @ case 1 + .4byte _0802B6F4 @ case 2 + .4byte _0802B718 @ case 3 + .4byte _0802B73A @ case 4 +_0802B68C: + movs r4, #0 + ldr r0, [r5] + ldrb r0, [r0, #5] + cmp r4, r0 + bge _0802B6AC + adds r6, r5, #0 +_0802B698: + adds r0, r4, #0 + bl sub_0802DAB0 + cmp r0, #1 + beq _0802B744 + adds r4, #1 + ldr r0, [r6] + ldrb r0, [r0, #5] + cmp r4, r0 + blt _0802B698 +_0802B6AC: + ldr r1, [r5] + b _0802B710 +_0802B6B0: + movs r4, #0 + ldr r0, [r5] + ldrb r0, [r0, #5] + cmp r4, r0 + bge _0802B6E0 + adds r6, r5, #0 + movs r5, #0 +_0802B6BE: + ldr r0, [r6] + adds r0, r0, r5 + ldr r1, _0802B6EC + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #2 + bne _0802B6D4 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl sub_0802DA98 +_0802B6D4: + adds r5, #0x24 + adds r4, #1 + ldr r0, [r6] + ldrb r0, [r0, #5] + cmp r4, r0 + blt _0802B6BE +_0802B6E0: + movs r0, #1 + bl sub_0802CDBC + ldr r0, _0802B6F0 + ldr r1, [r0] + b _0802B70C + .align 2, 0 +_0802B6EC: .4byte 0x000082F4 +_0802B6F0: .4byte 0x020229B0 +_0802B6F4: + ldr r1, [r5] + ldrh r0, [r1, #0x3c] + adds r0, #1 + strh r0, [r1, #0x3c] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x64 + bls _0802B744 + movs r0, #3 + bl sub_0802CDBC + ldr r1, [r5] +_0802B70C: + movs r0, #0 + strh r0, [r1, #0x3c] +_0802B710: + ldrh r0, [r1, #0xa] + adds r0, #1 + strh r0, [r1, #0xa] + b _0802B744 +_0802B718: + bl sub_0802CDE4 + adds r5, r0, #0 + cmp r5, #0 + bne _0802B744 + bl sub_0802DAC4 + ldr r4, _0802B740 + ldr r0, [r4] + adds r0, #0x71 + strb r5, [r0] + bl sub_0802BE08 + ldr r1, [r4] + ldrh r0, [r1, #0xa] + adds r0, #1 + strh r0, [r1, #0xa] +_0802B73A: + movs r0, #0 + b _0802B746 + .align 2, 0 +_0802B740: .4byte 0x020229B0 +_0802B744: + movs r0, #1 +_0802B746: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_0802B658 + + thumb_func_start sub_0802B74C +sub_0802B74C: @ 0x0802B74C + push {r4, lr} + ldr r1, _0802B768 + ldr r0, [r1] + ldrh r0, [r0, #0xa] + adds r4, r1, #0 + cmp r0, #6 + bls _0802B75C + b _0802B870 +_0802B75C: + lsls r0, r0, #2 + ldr r1, _0802B76C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802B768: .4byte 0x020229B0 +_0802B76C: .4byte 0x0802B770 +_0802B770: @ jump table + .4byte _0802B78C @ case 0 + .4byte _0802B7AC @ case 1 + .4byte _0802B7C4 @ case 2 + .4byte _0802B7F4 @ case 3 + .4byte _0802B7AC @ case 4 + .4byte _0802B7C4 @ case 5 + .4byte _0802B864 @ case 6 +_0802B78C: + ldr r2, [r4] + adds r0, r2, #0 + adds r0, #0x72 + ldrh r0, [r0] + adds r1, r2, #0 + adds r1, #0x3e + adds r2, #0x40 + bl sub_0802C4FC + ldr r1, [r4] + ldrh r0, [r1, #0x3e] + adds r1, #0x40 + ldrh r1, [r1] + bl sub_0802D4DC + b _0802B7E4 +_0802B7AC: + bl sub_0802D664 + adds r2, r0, #0 + cmp r2, #0 + bne _0802B870 + ldr r0, _0802B7C0 + ldr r1, [r0] + strh r2, [r1, #0x3c] + b _0802B7E6 + .align 2, 0 +_0802B7C0: .4byte 0x020229B0 +_0802B7C4: + ldr r1, [r4] + ldrh r0, [r1, #0x3c] + adds r2, r0, #1 + strh r2, [r1, #0x3c] + ldr r0, _0802B7F0 + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _0802B7E0 + lsls r0, r2, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xb4 + bls _0802B870 +_0802B7E0: + bl sub_0802D704 +_0802B7E4: + ldr r1, [r4] +_0802B7E6: + ldrh r0, [r1, #0xa] + adds r0, #1 + strh r0, [r1, #0xa] + b _0802B870 + .align 2, 0 +_0802B7F0: .4byte 0x03002360 +_0802B7F4: + bl sub_0802D734 + cmp r0, #0 + bne _0802B870 + ldr r4, _0802B840 + ldr r1, [r4] + ldrh r0, [r1, #0x3e] + adds r1, #0x40 + ldrh r1, [r1] + bl sub_0802C574 + ldr r1, [r4] + adds r2, r1, #0 + adds r2, #0x40 + strh r0, [r2] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0802B84C + ldrh r0, [r1, #0x3e] + ldrh r1, [r2] + bl AddBagItem + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0802B84C + ldr r0, [r4] + ldrh r0, [r0, #0x3e] + movs r1, #1 + bl CheckBagHasSpace + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802B844 + ldr r0, [r4] + ldrh r0, [r0, #0x3e] + bl sub_0802D574 + b _0802B856 + .align 2, 0 +_0802B840: .4byte 0x020229B0 +_0802B844: + ldr r1, [r4] + movs r0, #6 + strh r0, [r1, #0xa] + b _0802B870 +_0802B84C: + ldr r4, _0802B860 + ldr r0, [r4] + ldrh r0, [r0, #0x3e] + bl sub_0802D5EC +_0802B856: + ldr r1, [r4] + movs r0, #4 + strh r0, [r1, #0xa] + b _0802B870 + .align 2, 0 +_0802B860: .4byte 0x020229B0 +_0802B864: + bl sub_0802D734 + cmp r0, #0 + bne _0802B870 + movs r0, #0 + b _0802B872 +_0802B870: + movs r0, #1 +_0802B872: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0802B74C + + thumb_func_start sub_0802B878 +sub_0802B878: @ 0x0802B878 + push {r4, lr} + ldr r0, _0802B890 + ldr r0, [r0] + ldrh r0, [r0, #0xa] + cmp r0, #6 + bhi _0802B94C + lsls r0, r0, #2 + ldr r1, _0802B894 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802B890: .4byte 0x020229B0 +_0802B894: .4byte 0x0802B898 +_0802B898: @ jump table + .4byte _0802B8B4 @ case 0 + .4byte _0802B8B8 @ case 1 + .4byte _0802B8C2 @ case 2 + .4byte _0802B910 @ case 3 + .4byte _0802B91A @ case 4 + .4byte _0802B930 @ case 5 + .4byte _0802B942 @ case 6 +_0802B8B4: + movs r0, #4 + b _0802B91C +_0802B8B8: + bl sub_0802CDE4 + cmp r0, #0 + bne _0802B94C + b _0802B920 +_0802B8C2: + bl sub_0802D77C + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _0802B8F8 + cmp r1, #0 + bgt _0802B8DC + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0802B8E0 + b _0802B94C +_0802B8DC: + cmp r1, #1 + bne _0802B94C +_0802B8E0: + ldr r4, _0802B8F4 + ldr r0, [r4] + adds r0, #0x45 + movs r1, #1 + strb r1, [r0] + movs r0, #6 + bl sub_0802CDBC + ldr r1, [r4] + b _0802B924 + .align 2, 0 +_0802B8F4: .4byte 0x020229B0 +_0802B8F8: + ldr r4, _0802B90C + ldr r0, [r4] + adds r0, #0x45 + movs r1, #2 + strb r1, [r0] + movs r0, #6 + bl sub_0802CDBC + ldr r1, [r4] + b _0802B924 + .align 2, 0 +_0802B90C: .4byte 0x020229B0 +_0802B910: + bl sub_0802CDE4 + cmp r0, #0 + bne _0802B94C + b _0802B920 +_0802B91A: + movs r0, #8 +_0802B91C: + bl sub_0802CDBC +_0802B920: + ldr r0, _0802B92C + ldr r1, [r0] +_0802B924: + ldrh r0, [r1, #0xa] + adds r0, #1 + strh r0, [r1, #0xa] + b _0802B94C + .align 2, 0 +_0802B92C: .4byte 0x020229B0 +_0802B930: + bl sub_0802CDE4 + cmp r0, #0 + bne _0802B94C + ldr r0, _0802B948 + ldr r1, [r0] + ldrh r0, [r1, #0xa] + adds r0, #1 + strh r0, [r1, #0xa] +_0802B942: + movs r0, #0 + b _0802B94E + .align 2, 0 +_0802B948: .4byte 0x020229B0 +_0802B94C: + movs r0, #1 +_0802B94E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0802B878 + + thumb_func_start sub_0802B954 +sub_0802B954: @ 0x0802B954 + push {r4, lr} + sub sp, #4 + ldr r1, _0802B970 + ldr r0, [r1] + ldrh r0, [r0, #0xa] + adds r4, r1, #0 + cmp r0, #5 + bhi _0802BA18 + lsls r0, r0, #2 + ldr r1, _0802B974 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802B970: .4byte 0x020229B0 +_0802B974: .4byte 0x0802B978 +_0802B978: @ jump table + .4byte _0802B990 @ case 0 + .4byte _0802B996 @ case 1 + .4byte _0802B9A6 @ case 2 + .4byte _0802B9BC @ case 3 + .4byte _0802B9E2 @ case 4 + .4byte _0802BA08 @ case 5 +_0802B990: + bl sub_0802D704 + b _0802B9F2 +_0802B996: + bl sub_0802D734 + cmp r0, #0 + bne _0802BA18 + movs r0, #7 + bl sub_0802CDBC + b _0802B9F2 +_0802B9A6: + bl sub_0802CDE4 + adds r2, r0, #0 + cmp r2, #0 + bne _0802BA18 + ldr r0, _0802B9B8 + ldr r1, [r0] + strh r2, [r1, #0x3c] + b _0802B9F6 + .align 2, 0 +_0802B9B8: .4byte 0x020229B0 +_0802B9BC: + ldr r1, [r4] + ldrh r0, [r1, #0x3c] + adds r0, #1 + strh r0, [r1, #0x3c] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x78 + bls _0802BA18 + movs r1, #1 + rsbs r1, r1, #0 + movs r0, #0 + str r0, [sp] + adds r0, r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, [r4] + b _0802B9F6 +_0802B9E2: + ldr r0, _0802BA00 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0802BA18 + bl sub_0800A7F8 +_0802B9F2: + ldr r0, _0802BA04 + ldr r1, [r0] +_0802B9F6: + ldrh r0, [r1, #0xa] + adds r0, #1 + strh r0, [r1, #0xa] + b _0802BA18 + .align 2, 0 +_0802BA00: .4byte 0x02037C74 +_0802BA04: .4byte 0x020229B0 +_0802BA08: + ldr r0, _0802BA14 + ldrb r0, [r0] + cmp r0, #0 + bne _0802BA18 + movs r0, #0 + b _0802BA1A + .align 2, 0 +_0802BA14: .4byte 0x030031C4 +_0802BA18: + movs r0, #1 +_0802BA1A: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0802B954 + + thumb_func_start sub_0802BA24 +sub_0802BA24: @ 0x0802BA24 + push {r4, lr} + ldr r4, _0802BA3C + ldr r0, [r4] + ldrh r0, [r0, #0xa] + cmp r0, #1 + beq _0802BA5A + cmp r0, #1 + bgt _0802BA40 + cmp r0, #0 + beq _0802BA46 + b _0802BA6E + .align 2, 0 +_0802BA3C: .4byte 0x020229B0 +_0802BA40: + cmp r0, #2 + beq _0802BA6A + b _0802BA6E +_0802BA46: + bl sub_0802D704 + movs r0, #0 + bl sub_0802DA5C + ldr r1, [r4] + ldrh r0, [r1, #0xa] + adds r0, #1 + strh r0, [r1, #0xa] + b _0802BA6E +_0802BA5A: + bl sub_0802D734 + cmp r0, #0 + bne _0802BA6E + ldr r1, [r4] + ldrh r0, [r1, #0xa] + adds r0, #1 + strh r0, [r1, #0xa] +_0802BA6A: + movs r0, #0 + b _0802BA70 +_0802BA6E: + movs r0, #1 +_0802BA70: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0802BA24 + + thumb_func_start sub_0802BA78 +sub_0802BA78: @ 0x0802BA78 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + lsls r0, r0, #2 + add r0, sl + lsls r0, r0, #3 + ldr r1, _0802BAAC + adds r6, r0, r1 + mov r0, sl + movs r1, #0xe + bl GetWordTaskArg + mov r8, r0 + movs r1, #0 + ldrsh r0, [r6, r1] + cmp r0, #0 + beq _0802BABC + cmp r0, #1 + beq _0802BAD0 + b _0802BB3C + .align 2, 0 +_0802BAAC: .4byte 0x03005B68 +_0802BAB0: + bl sub_0802A814 + mov r0, sl + bl DestroyTask + b _0802BB3C +_0802BABC: + movs r1, #0 + adds r0, r6, #0 + adds r0, #8 +_0802BAC2: + strh r1, [r0, #4] + subs r0, #2 + cmp r0, r6 + bge _0802BAC2 + ldrh r0, [r6] + adds r0, #1 + strh r0, [r6] +_0802BAD0: + mov r3, r8 + ldrb r1, [r3, #6] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _0802BB4C + adds r0, r0, r4 + add r0, r8 + bl sub_0802DDA4 + movs r2, #0 + adds r5, r6, #4 + mov sb, r2 + movs r7, #0x83 + lsls r7, r7, #8 + add r7, r8 + add r4, r8 +_0802BAF2: + movs r1, #0 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _0802BB2C + adds r0, r2, #0 + adds r1, r4, #0 + str r2, [sp] + bl sub_0802DDC8 + ldr r2, [sp] + cmp r0, #0 + beq _0802BB2C + ldr r1, _0802BB50 + add r1, sb + adds r0, r7, #0 + bl StringCopy + movs r0, #1 + strh r0, [r5] + ldrh r0, [r6, #2] + adds r0, #1 + strh r0, [r6, #2] + movs r3, #2 + ldrsh r0, [r6, r3] + ldr r2, [sp] + mov r1, r8 + ldrb r1, [r1, #5] + cmp r0, r1 + beq _0802BAB0 +_0802BB2C: + adds r5, #2 + movs r3, #0x1c + add sb, r3 + adds r7, #0x24 + adds r4, #0xc + adds r2, #1 + cmp r2, #4 + ble _0802BAF2 +_0802BB3C: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0802BB4C: .4byte 0x000082A8 +_0802BB50: .4byte 0x020226A8 + thumb_func_end sub_0802BA78 + + thumb_func_start sub_0802BB54 +sub_0802BB54: @ 0x0802BB54 + push {lr} + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0802BB70 + ldr r2, [r1] + movs r1, #0xe + bl SetWordTaskArg + pop {r0} + bx r0 + .align 2, 0 +_0802BB70: .4byte 0x020229B0 + thumb_func_end sub_0802BB54 + + thumb_func_start sub_0802BB74 +sub_0802BB74: @ 0x0802BB74 + ldr r0, _0802BB90 + ldr r2, [r0] + adds r0, r2, #0 + adds r0, #0x4a + movs r1, #0 + strh r1, [r0] + movs r0, #6 + str r0, [r2, #0x14] + strh r1, [r2, #0x34] + str r1, [r2, #0x1c] + strh r1, [r2, #0x36] + str r1, [r2, #0x10] + bx lr + .align 2, 0 +_0802BB90: .4byte 0x020229B0 + thumb_func_end sub_0802BB74 + + thumb_func_start sub_0802BB94 +sub_0802BB94: @ 0x0802BB94 + push {r4, lr} + ldr r3, _0802BBD0 + ldr r0, [r3] + adds r1, r0, #0 + adds r1, #0x4a + movs r4, #0 + movs r2, #0 + strh r2, [r1] + ldr r1, _0802BBD4 + strh r1, [r0, #0x34] + movs r1, #7 + str r1, [r0, #0x14] + strh r2, [r0, #0x36] + str r2, [r0, #0x10] + adds r0, #0x51 + strb r4, [r0] + ldr r0, [r3] + adds r0, #0x50 + strb r4, [r0] + ldr r0, [r3] + str r2, [r0, #0x20] + adds r1, r0, #0 + adds r1, #0x4e + strh r2, [r1] + str r2, [r0, #0x6c] + bl sub_0802BC70 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802BBD0: .4byte 0x020229B0 +_0802BBD4: .4byte 0x000006FF + thumb_func_end sub_0802BB94 + + thumb_func_start sub_0802BBD8 +sub_0802BBD8: @ 0x0802BBD8 + push {r4, lr} + ldr r4, _0802BC30 + ldr r1, [r4] + adds r0, r1, #0 + adds r0, #0x46 + ldrb r0, [r0] + cmp r0, #0 + beq _0802BC28 + adds r1, #0x4a + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + bl sub_0802BC3C + ldr r3, [r4] + ldrh r1, [r3, #0x34] + adds r2, r1, r0 + strh r2, [r3, #0x34] + lsls r1, r2, #0x10 + ldr r0, _0802BC34 + cmp r1, r0 + bls _0802BC0A + ldr r1, _0802BC38 + adds r0, r2, r1 + strh r0, [r3, #0x34] +_0802BC0A: + ldr r1, [r4] + ldr r2, [r1, #0x14] + str r2, [r1, #0x18] + ldrh r0, [r1, #0x34] + lsrs r0, r0, #8 + str r0, [r1, #0x14] + cmp r0, #6 + bls _0802BC28 + cmp r2, #6 + bhi _0802BC28 + ldrh r0, [r1, #0x36] + adds r0, #1 + strh r0, [r1, #0x36] + bl sub_0802BC70 +_0802BC28: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802BC30: .4byte 0x020229B0 +_0802BC34: .4byte 0x09FE0000 +_0802BC38: .4byte 0xFFFFF601 + thumb_func_end sub_0802BBD8 + + thumb_func_start sub_0802BC3C +sub_0802BC3C: @ 0x0802BC3C + push {lr} + ldr r0, _0802BC4C + ldr r2, [r0] + ldr r0, [r2, #0x10] + cmp r0, #0 + beq _0802BC50 + movs r0, #0 + b _0802BC66 + .align 2, 0 +_0802BC4C: .4byte 0x020229B0 +_0802BC50: + ldr r3, [r2, #0x1c] + ldrh r1, [r2, #0x34] + ldr r0, _0802BC6C + cmp r1, r0 + bhi _0802BC64 + ldr r0, [r2, #0x20] + adds r0, #0x50 + str r0, [r2, #0x20] + lsrs r0, r0, #8 + adds r3, r3, r0 +_0802BC64: + adds r0, r3, #0 +_0802BC66: + pop {r1} + bx r1 + .align 2, 0 +_0802BC6C: .4byte 0x000005FF + thumb_func_end sub_0802BC3C + + thumb_func_start sub_0802BC70 +sub_0802BC70: @ 0x0802BC70 + push {r4, lr} + ldr r4, _0802BCA0 + ldr r3, [r4] + movs r0, #0 + str r0, [r3, #0x20] + adds r1, r3, #0 + adds r1, #0x4e + ldrh r0, [r1] + cmp r0, #0 + beq _0802BCB4 + subs r0, #1 + strh r0, [r1] + ldr r0, [r3, #0x6c] + cmp r0, #0 + beq _0802BD7E + bl sub_0802BD8C + movs r1, #3 + ands r1, r0 + cmp r1, #0 + beq _0802BCA4 + ldr r1, [r4] + b _0802BD7A + .align 2, 0 +_0802BCA0: .4byte 0x020229B0 +_0802BCA4: + ldr r1, [r4] + ldr r0, [r1, #0x28] + cmp r0, #0x36 + bls _0802BCB0 + movs r0, #0x1e + b _0802BD7C +_0802BCB0: + movs r0, #0x52 + b _0802BD7C +_0802BCB4: + adds r2, r3, #0 + adds r2, #0x50 + ldrb r1, [r2] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + bne _0802BD08 + ldr r0, _0802BD00 + ldrb r1, [r2] + lsls r1, r1, #1 + adds r1, r1, r0 + adds r0, r3, #0 + adds r0, #0x51 + ldrb r2, [r0] + lsls r0, r2, #3 + subs r0, r0, r2 + ldrh r1, [r1] + adds r0, r0, r1 + str r0, [r3, #0x28] + bl sub_0802BD8C + ldr r2, [r4] + ldr r3, _0802BD04 + movs r1, #3 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r3 + ldrh r0, [r1] + adds r0, #2 + adds r1, r2, #0 + adds r1, #0x4e + strh r0, [r1] + adds r2, #0x50 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + b _0802BD76 + .align 2, 0 +_0802BD00: .4byte 0x082CEEC8 +_0802BD04: .4byte 0x082CEED8 +_0802BD08: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #8 + bne _0802BD24 + adds r1, r3, #0 + adds r1, #0x51 + ldrb r0, [r1] + cmp r0, #2 + bhi _0802BD20 + adds r0, #1 + strb r0, [r1] + b _0802BD24 +_0802BD20: + movs r0, #1 + str r0, [r3, #0x6c] +_0802BD24: + ldr r2, _0802BD84 + ldr r4, _0802BD88 + ldr r0, [r4] + mov ip, r0 + mov r3, ip + adds r3, #0x50 + ldrb r0, [r3] + movs r1, #0xf + subs r1, r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + mov r0, ip + adds r0, #0x51 + ldrb r2, [r0] + lsls r0, r2, #3 + subs r0, r0, r2 + ldrh r1, [r1] + adds r0, r0, r1 + mov r1, ip + str r0, [r1, #0x28] + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xf + bls _0802BD76 + bl sub_0802BD8C + movs r1, #3 + ands r1, r0 + cmp r1, #0 + bne _0802BD6E + ldr r1, [r4] + ldr r0, [r1, #0x28] + subs r0, #5 + str r0, [r1, #0x28] +_0802BD6E: + ldr r0, [r4] + adds r0, #0x50 + movs r1, #0 + strb r1, [r0] +_0802BD76: + ldr r0, _0802BD88 + ldr r1, [r0] +_0802BD7A: + ldr r0, [r1, #0x28] +_0802BD7C: + str r0, [r1, #0x1c] +_0802BD7E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802BD84: .4byte 0x082CEEC8 +_0802BD88: .4byte 0x020229B0 + thumb_func_end sub_0802BC70 + + thumb_func_start sub_0802BD8C +sub_0802BD8C: @ 0x0802BD8C + ldr r0, _0802BDA0 + ldr r2, [r0] + ldr r1, [r2, #0x24] + ldr r0, _0802BDA4 + muls r0, r1, r0 + ldr r1, _0802BDA8 + adds r0, r0, r1 + str r0, [r2, #0x24] + lsrs r0, r0, #0x10 + bx lr + .align 2, 0 +_0802BDA0: .4byte 0x020229B0 +_0802BDA4: .4byte 0x41C64E6D +_0802BDA8: .4byte 0x00006073 + thumb_func_end sub_0802BD8C + + thumb_func_start sub_0802BDAC +sub_0802BDAC: @ 0x0802BDAC + push {lr} + ldr r0, _0802BDC8 + ldr r1, [r0] + movs r0, #1 + str r0, [r1, #0x10] + movs r0, #6 + str r0, [r1, #0x14] + ldr r0, _0802BDCC + strh r0, [r1, #0x34] + bl sub_0802BF64 + pop {r0} + bx r0 + .align 2, 0 +_0802BDC8: .4byte 0x020229B0 +_0802BDCC: .4byte 0x000005FF + thumb_func_end sub_0802BDAC + + thumb_func_start sub_0802BDD0 +sub_0802BDD0: @ 0x0802BDD0 + ldr r0, _0802BDD8 + ldr r0, [r0] + ldr r0, [r0, #0x10] + bx lr + .align 2, 0 +_0802BDD8: .4byte 0x020229B0 + thumb_func_end sub_0802BDD0 + + thumb_func_start sub_0802BDDC +sub_0802BDDC: @ 0x0802BDDC + push {r4, r5, lr} + ldr r5, _0802BE00 + ldr r4, _0802BE04 + movs r3, #0 + movs r2, #0 + movs r1, #4 +_0802BDE8: + ldr r0, [r5] + adds r0, r0, r4 + adds r0, r0, r2 + str r3, [r0] + adds r2, #0x24 + subs r1, #1 + cmp r1, #0 + bge _0802BDE8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0802BE00: .4byte 0x020229B0 +_0802BE04: .4byte 0x000082F8 + thumb_func_end sub_0802BDDC + + thumb_func_start sub_0802BE08 +sub_0802BE08: @ 0x0802BE08 + ldr r0, _0802BE1C + ldr r0, [r0] + ldr r1, _0802BE20 + adds r0, r0, r1 + ldr r1, [r0] + movs r2, #0 + strh r2, [r1, #0x10] + ldr r0, [r0] + strh r2, [r0, #0x12] + bx lr + .align 2, 0 +_0802BE1C: .4byte 0x020229B0 +_0802BE20: .4byte 0x00008398 + thumb_func_end sub_0802BE08 + + thumb_func_start sub_0802BE24 +sub_0802BE24: @ 0x0802BE24 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _0802BE48 + ldr r2, [r1] + ldrb r3, [r2, #6] + lsls r1, r3, #3 + adds r1, r1, r3 + lsls r1, r1, #2 + adds r2, r2, r1 + ldr r1, _0802BE4C + adds r2, r2, r1 + ldrh r1, [r2] + cmp r1, r0 + beq _0802BE50 + movs r0, #0 + b _0802BE52 + .align 2, 0 +_0802BE48: .4byte 0x020229B0 +_0802BE4C: .4byte 0x000082F4 +_0802BE50: + movs r0, #1 +_0802BE52: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0802BE24 + + thumb_func_start sub_0802BE58 +sub_0802BE58: @ 0x0802BE58 + ldr r0, _0802BE78 + ldr r0, [r0] + ldr r1, _0802BE7C + adds r2, r0, r1 + ldr r1, [r2] + adds r0, #0x4a + ldrh r0, [r0] + strh r0, [r1, #0xe] + ldr r1, [r2] + ldrh r0, [r1, #0x10] + strh r0, [r1, #0x12] + ldr r1, [r2] + movs r0, #1 + strh r0, [r1, #0x10] + bx lr + .align 2, 0 +_0802BE78: .4byte 0x020229B0 +_0802BE7C: .4byte 0x00008398 + thumb_func_end sub_0802BE58 + + thumb_func_start sub_0802BE80 +sub_0802BE80: @ 0x0802BE80 + push {r4, lr} + ldr r0, _0802BEA8 + ldr r2, [r0] + ldr r0, _0802BEAC + adds r3, r2, r0 + ldr r1, [r3] + ldrh r0, [r1, #0x10] + strh r0, [r1, #0x12] + ldr r0, [r3] + movs r4, #2 + strh r4, [r0, #0x10] + ldr r1, [r3] + adds r2, #0x4a + ldrh r0, [r2] + strh r0, [r1, #0xe] + ldr r0, [r3] + str r4, [r0, #0x14] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802BEA8: .4byte 0x020229B0 +_0802BEAC: .4byte 0x00008398 + thumb_func_end sub_0802BE80 + + thumb_func_start sub_0802BEB0 +sub_0802BEB0: @ 0x0802BEB0 + ldr r0, _0802BEC8 + ldr r0, [r0] + ldr r1, _0802BECC + adds r0, r0, r1 + ldr r1, [r0] + ldrh r2, [r1, #0x10] + movs r3, #0 + strh r2, [r1, #0x12] + ldr r0, [r0] + strh r3, [r0, #0x10] + bx lr + .align 2, 0 +_0802BEC8: .4byte 0x020229B0 +_0802BECC: .4byte 0x00008398 + thumb_func_end sub_0802BEB0 + + thumb_func_start sub_0802BED0 +sub_0802BED0: @ 0x0802BED0 + push {r4, r5, lr} + ldr r4, _0802BF2C + ldr r1, [r4] + ldr r0, [r1, #0x5c] + cmp r0, #0 + beq _0802BF10 + ldr r0, [r1, #0x78] + bl sub_0802DA5C + ldr r1, [r4] + movs r5, #0 + str r5, [r1, #0x5c] + adds r0, r1, #0 + adds r0, #0x4d + ldrb r0, [r0] + cmp r0, #0 + beq _0802BF10 + adds r0, r1, #0 + adds r0, #0x71 + ldrb r0, [r0] + bl sub_0802D9C4 + ldr r1, _0802BF30 + subs r0, #2 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + bl PlaySE + ldr r0, [r4] + adds r0, #0x4d + strb r5, [r0] +_0802BF10: + ldr r0, _0802BF2C + ldr r0, [r0] + adds r0, #0x74 + ldrh r0, [r0] + bl sub_0802DA6C + bl sub_0802BF74 + bl sub_0802BF34 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0802BF2C: .4byte 0x020229B0 +_0802BF30: .4byte 0x082CEEE0 + thumb_func_end sub_0802BED0 + + thumb_func_start sub_0802BF34 +sub_0802BF34: @ 0x0802BF34 + push {lr} + ldr r0, _0802BF50 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0x46 + ldrb r0, [r0] + cmp r0, #0 + beq _0802BF4A + ldr r0, [r1, #0x14] + bl sub_0802D994 +_0802BF4A: + pop {r0} + bx r0 + .align 2, 0 +_0802BF50: .4byte 0x020229B0 + thumb_func_end sub_0802BF34 + + thumb_func_start sub_0802BF54 +sub_0802BF54: @ 0x0802BF54 + ldr r0, _0802BF60 + ldr r0, [r0] + adds r0, #0x46 + movs r1, #0 + strb r1, [r0] + bx lr + .align 2, 0 +_0802BF60: .4byte 0x020229B0 + thumb_func_end sub_0802BF54 + + thumb_func_start sub_0802BF64 +sub_0802BF64: @ 0x0802BF64 + ldr r0, _0802BF70 + ldr r0, [r0] + adds r0, #0x46 + movs r1, #1 + strb r1, [r0] + bx lr + .align 2, 0 +_0802BF70: .4byte 0x020229B0 + thumb_func_end sub_0802BF64 + + thumb_func_start sub_0802BF74 +sub_0802BF74: @ 0x0802BF74 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + movs r6, #0 + ldr r2, _0802BFB0 + ldr r0, [r2] + ldrb r0, [r0, #5] + mov sb, r0 + movs r5, #0 + cmp r6, sb + bge _0802C054 + mov sl, r2 + mov r8, r5 + movs r7, #0 +_0802BF96: + mov r0, sl + ldr r3, [r0] + adds r1, r3, r7 + ldr r2, _0802BFB4 + adds r0, r1, r2 + ldrh r2, [r0] + cmp r2, #1 + beq _0802BFC8 + cmp r2, #1 + bgt _0802BFB8 + cmp r2, #0 + beq _0802BFBE + b _0802C048 + .align 2, 0 +_0802BFB0: .4byte 0x020229B0 +_0802BFB4: .4byte 0x000082F4 +_0802BFB8: + cmp r2, #2 + beq _0802C02C + b _0802C048 +_0802BFBE: + adds r0, r5, #0 + movs r1, #0 + bl sub_0802D978 + b _0802C048 +_0802BFC8: + ldr r0, _0802C01C + adds r4, r1, r0 + ldrh r0, [r4] + cmp r0, #1 + bne _0802BFEA + ldr r0, _0802C020 + adds r0, r0, r1 + adds r1, r3, #0 + adds r1, #0x9a + add r1, r8 + str r1, [sp] + ldrh r1, [r0] + mov ip, r1 + ldr r0, [sp] + ldrh r0, [r0] + cmp ip, r0 + beq _0802C012 +_0802BFEA: + ldrb r3, [r3, #6] + cmp r5, r3 + bne _0802BFF2 + strh r2, [r4] +_0802BFF2: + orrs r6, r2 + mov r1, sl + ldr r2, [r1] + ldr r1, _0802C024 + adds r0, r2, r1 + adds r0, r0, r7 + ldr r1, _0802C028 + str r1, [r0] + adds r1, r2, #0 + adds r1, #0x9a + add r1, r8 + adds r2, r2, r7 + ldr r0, _0802C020 + adds r2, r2, r0 + ldrh r0, [r2] + strh r0, [r1] +_0802C012: + adds r0, r5, #0 + bl sub_0802C08C + b _0802C048 + .align 2, 0 +_0802C01C: .4byte 0x000082F6 +_0802C020: .4byte 0x000082F2 +_0802C024: .4byte 0x000082E8 +_0802C028: .4byte 0x7FFFFFFF +_0802C02C: + ldr r0, _0802C068 + adds r1, r1, r0 + ldrh r0, [r1] + cmp r0, #2 + beq _0802C048 + ldrb r3, [r3, #6] + cmp r5, r3 + bne _0802C03E + strh r2, [r1] +_0802C03E: + orrs r6, r2 + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + bl sub_0802DA80 +_0802C048: + movs r1, #2 + add r8, r1 + adds r7, #0x24 + adds r5, #1 + cmp r5, sb + blt _0802BF96 +_0802C054: + movs r0, #2 + ands r0, r6 + cmp r0, #0 + beq _0802C06C + movs r0, #0x83 + lsls r0, r0, #1 + bl PlaySE + b _0802C07A + .align 2, 0 +_0802C068: .4byte 0x000082F6 +_0802C06C: + movs r0, #1 + ands r6, r0 + cmp r6, #0 + beq _0802C07A + movs r0, #0xa + bl PlaySE +_0802C07A: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0802BF74 + + thumb_func_start sub_0802C08C +sub_0802C08C: @ 0x0802C08C + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r0, _0802C0B8 + ldr r2, [r0] + ldr r0, [r2, #0x68] + cmp r0, #0 + bne _0802C126 + lsls r0, r6, #3 + adds r0, r0, r6 + lsls r0, r0, #2 + ldr r1, _0802C0BC + adds r0, r0, r1 + adds r5, r2, r0 + ldr r1, [r5, #4] + ldr r0, _0802C0C0 + cmp r1, r0 + beq _0802C0C4 + adds r0, r1, #1 + str r0, [r5, #4] + adds r3, r0, #0 + b _0802C0DC + .align 2, 0 +_0802C0B8: .4byte 0x020229B0 +_0802C0BC: .4byte 0x000082E4 +_0802C0C0: .4byte 0x7FFFFFFF +_0802C0C4: + adds r0, r2, #0 + adds r0, #0x4a + ldrh r1, [r0] + ldrh r0, [r5, #0xe] + subs r3, r1, r0 + ldr r0, _0802C0FC + cmp r3, r0 + ble _0802C0DA + ldr r0, _0802C100 + adds r3, r3, r0 + adds r3, r3, r1 +_0802C0DA: + str r3, [r5, #4] +_0802C0DC: + cmp r3, #3 + ble _0802C126 + subs r3, #4 + cmp r3, #0x2f + bgt _0802C108 + ldr r2, _0802C104 + ldrh r1, [r5, #0xc] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #4 + adds r0, r3, r0 + adds r0, r0, r2 + movs r4, #0 + ldrsb r4, [r0, r4] + b _0802C10A + .align 2, 0 +_0802C0FC: .4byte 0x0000FDE7 +_0802C100: .4byte 0xFFFF0218 +_0802C104: .4byte 0x082CEEE8 +_0802C108: + movs r4, #0 +_0802C10A: + adds r1, r4, #0 + adds r0, r6, #0 + bl sub_0802D978 + cmp r4, #0 + bne _0802C124 + ldr r0, _0802C12C + ldr r0, [r0] + ldrb r0, [r0, #6] + cmp r6, r0 + bne _0802C124 + bl sub_0802BEB0 +_0802C124: + str r4, [r5] +_0802C126: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0802C12C: .4byte 0x020229B0 + thumb_func_end sub_0802C08C + + thumb_func_start sub_0802C130 +sub_0802C130: @ 0x0802C130 + push {r4, r5, lr} + ldr r5, _0802C15C + ldr r1, [r5] + ldr r0, [r1, #0x14] + cmp r0, #8 + bne _0802C1C2 + ldr r0, [r1, #0x18] + cmp r0, #7 + bne _0802C1C2 + ldr r4, [r1, #0x58] + cmp r4, #0 + bne _0802C160 + bl sub_0802C474 + ldr r0, [r5] + str r4, [r0, #0x54] + movs r1, #1 + str r1, [r0, #0x58] + adds r0, #0x71 + strb r4, [r0] + b _0802C1C2 + .align 2, 0 +_0802C15C: .4byte 0x020229B0 +_0802C160: + ldr r0, [r1, #0x54] + cmp r0, #5 + bne _0802C174 + ldrh r0, [r1, #0xc] + adds r0, #1 + strh r0, [r1, #0xc] + ldrh r0, [r1, #0xc] + bl sub_0802C494 + b _0802C178 +_0802C174: + movs r0, #0 + strh r0, [r1, #0xc] +_0802C178: + ldr r4, _0802C224 + ldr r1, [r4] + ldr r0, [r1, #0x54] + cmp r0, #1 + ble _0802C192 + movs r0, #1 + str r0, [r1, #0x64] + adds r0, r1, #0 + adds r0, #0x86 + adds r1, #0x81 + movs r2, #5 + bl memcpy +_0802C192: + bl sub_0802C474 + ldr r0, [r4] + movs r2, #0 + str r2, [r0, #0x54] + movs r1, #1 + str r1, [r0, #0x58] + adds r0, #0x71 + strb r2, [r0] + ldr r0, [r4] + adds r2, r0, #0 + adds r2, #0x74 + ldrh r1, [r2] + ldr r0, _0802C228 + cmp r1, r0 + bhi _0802C1B6 + adds r0, r1, #1 + strh r0, [r2] +_0802C1B6: + movs r0, #0xa + bl sub_0802C37C + movs r0, #3 + bl sub_0802AB08 +_0802C1C2: + ldr r4, _0802C224 + ldr r0, [r4] + ldr r0, [r0, #0x64] + cmp r0, #0 + beq _0802C1F8 + bl sub_0802C30C + cmp r0, #1 + beq _0802C1DC + ldr r0, [r4] + ldr r0, [r0, #0x14] + cmp r0, #0 + bne _0802C1F8 +_0802C1DC: + ldr r0, [r4] + adds r0, #0x86 + bl sub_0802C430 + bl sub_0802C484 + bl sub_0802C37C + movs r0, #3 + bl sub_0802AB08 + ldr r1, [r4] + movs r0, #0 + str r0, [r1, #0x64] +_0802C1F8: + ldr r4, _0802C224 + ldr r0, [r4] + ldr r0, [r0, #0x58] + cmp r0, #0 + beq _0802C21E + bl sub_0802C3A4 + adds r2, r0, #0 + ldr r1, [r4] + ldr r0, [r1, #0x54] + cmp r2, r0 + ble _0802C21E + str r2, [r1, #0x54] + adds r0, r1, #0 + adds r0, #0x81 + adds r1, #0x7c + movs r2, #5 + bl memcpy +_0802C21E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0802C224: .4byte 0x020229B0 +_0802C228: .4byte 0x0000270E + thumb_func_end sub_0802C130 + + thumb_func_start sub_0802C22C +sub_0802C22C: @ 0x0802C22C + push {r4, r5, lr} + ldr r5, _0802C260 + ldr r1, [r5] + ldr r0, [r1, #0x14] + cmp r0, #6 + bne _0802C276 + ldr r4, _0802C264 + adds r0, r1, r4 + ldr r1, [r0] + ldr r0, [r1] + cmp r0, #0 + bne _0802C276 + ldrh r0, [r1, #0x12] + cmp r0, #1 + bne _0802C26C + bl sub_0802BDD0 + adds r1, r0, #0 + cmp r1, #1 + bne _0802C26C + ldr r0, [r5] + adds r0, r0, r4 + ldr r0, [r0] + str r1, [r0, #0x14] + b _0802C276 + .align 2, 0 +_0802C260: .4byte 0x020229B0 +_0802C264: .4byte 0x00008398 +_0802C268: + movs r0, #0 + b _0802C2BE +_0802C26C: + bl sub_0802BE80 + movs r0, #3 + bl sub_0802AB08 +_0802C276: + ldr r0, _0802C2C4 + ldr r1, [r0] + ldr r0, [r1, #0x14] + cmp r0, #7 + bne _0802C29C + ldr r0, [r1, #0x18] + cmp r0, #6 + bne _0802C29C + ldr r2, _0802C2C8 + adds r0, r1, r2 + ldr r1, [r0] + ldrh r0, [r1, #0x10] + cmp r0, #2 + beq _0802C29C + movs r0, #1 + str r0, [r1, #0x14] + movs r0, #3 + bl sub_0802AB08 +_0802C29C: + movs r2, #0 + ldr r0, _0802C2C4 + ldr r0, [r0] + ldrb r1, [r0, #5] + cmp r2, r1 + bge _0802C2BC + adds r3, r1, #0 + ldr r4, _0802C2CC + adds r1, r0, r4 +_0802C2AE: + ldrh r0, [r1] + cmp r0, #2 + beq _0802C268 + adds r1, #0x24 + adds r2, #1 + cmp r2, r3 + blt _0802C2AE +_0802C2BC: + movs r0, #1 +_0802C2BE: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0802C2C4: .4byte 0x020229B0 +_0802C2C8: .4byte 0x00008398 +_0802C2CC: .4byte 0x000082F4 + thumb_func_end sub_0802C22C + + thumb_func_start sub_0802C2D0 +sub_0802C2D0: @ 0x0802C2D0 + push {r4, lr} + ldr r0, _0802C304 + ldr r0, [r0] + ldrb r3, [r0, #5] + movs r4, #0 + cmp r4, r3 + bge _0802C2F4 + ldr r1, _0802C308 + adds r2, r0, r1 + adds r1, r3, #0 +_0802C2E4: + ldr r0, [r2] + cmp r0, #0 + beq _0802C2EC + adds r4, #1 +_0802C2EC: + adds r2, #0x24 + subs r1, #1 + cmp r1, #0 + bne _0802C2E4 +_0802C2F4: + movs r0, #0 + cmp r4, r3 + bne _0802C2FC + movs r0, #1 +_0802C2FC: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0802C304: .4byte 0x020229B0 +_0802C308: .4byte 0x000082F8 + thumb_func_end sub_0802C2D0 + + thumb_func_start sub_0802C30C +sub_0802C30C: @ 0x0802C30C + push {r4, lr} + movs r2, #0 + ldr r0, _0802C32C + ldr r0, [r0] + ldrb r1, [r0, #5] + cmp r2, r1 + bge _0802C33C + adds r3, r1, #0 + ldr r4, _0802C330 + adds r1, r0, r4 +_0802C320: + ldr r0, [r1] + cmp r0, #1 + beq _0802C334 + movs r0, #0 + b _0802C33E + .align 2, 0 +_0802C32C: .4byte 0x020229B0 +_0802C330: .4byte 0x000082F8 +_0802C334: + adds r1, #0x24 + adds r2, #1 + cmp r2, r3 + blt _0802C320 +_0802C33C: + movs r0, #1 +_0802C33E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0802C30C + + thumb_func_start sub_0802C344 +sub_0802C344: @ 0x0802C344 + push {lr} + ldr r0, _0802C358 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #1 + bne _0802C35C +_0802C354: + movs r0, #0 + b _0802C378 + .align 2, 0 +_0802C358: .4byte 0x020229B0 +_0802C35C: + movs r2, #1 + ldrb r0, [r1, #5] + cmp r2, r0 + bge _0802C376 + adds r3, r0, #0 + adds r1, #0x92 +_0802C368: + ldrh r0, [r1] + cmp r0, #1 + beq _0802C354 + adds r1, #2 + adds r2, #1 + cmp r2, r3 + blt _0802C368 +_0802C376: + movs r0, #1 +_0802C378: + pop {r1} + bx r1 + thumb_func_end sub_0802C344 + + thumb_func_start sub_0802C37C +sub_0802C37C: @ 0x0802C37C + push {lr} + ldr r1, _0802C39C + ldr r2, [r1] + ldr r1, [r2, #0x78] + adds r1, r1, r0 + str r1, [r2, #0x78] + movs r0, #1 + str r0, [r2, #0x5c] + ldr r0, _0802C3A0 + cmp r1, r0 + bls _0802C396 + adds r0, #1 + str r0, [r2, #0x78] +_0802C396: + pop {r0} + bx r0 + .align 2, 0 +_0802C39C: .4byte 0x020229B0 +_0802C3A0: .4byte 0x00018695 + thumb_func_end sub_0802C37C + + thumb_func_start sub_0802C3A4 +sub_0802C3A4: @ 0x0802C3A4 + push {r4, r5, r6, r7, lr} + movs r5, #0 + ldr r1, _0802C3DC + ldr r0, [r1] + ldrb r4, [r0, #5] + movs r2, #0 + cmp r5, r4 + bge _0802C3F6 + mov ip, r1 + movs r3, #0 + ldr r7, _0802C3E0 + movs r6, #0x1e + rsbs r6, r6, #0 +_0802C3BE: + mov r0, ip + ldr r1, [r0] + adds r0, r1, r7 + adds r0, r0, r3 + ldr r0, [r0] + cmp r0, r6 + bne _0802C3E4 + adds r0, r1, #0 + adds r0, #0x7c + adds r0, r0, r2 + movs r1, #1 + strb r1, [r0] + adds r5, #1 + b _0802C3EE + .align 2, 0 +_0802C3DC: .4byte 0x020229B0 +_0802C3E0: .4byte 0x000082E4 +_0802C3E4: + adds r0, r1, #0 + adds r0, #0x7c + adds r0, r0, r2 + movs r1, #0 + strb r1, [r0] +_0802C3EE: + adds r3, #0x24 + adds r2, #1 + cmp r2, r4 + blt _0802C3BE +_0802C3F6: + adds r0, r5, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0802C3A4 + + thumb_func_start sub_0802C400 +sub_0802C400: @ 0x0802C400 + push {lr} + movs r2, #0 + ldr r1, _0802C424 + ldr r3, _0802C428 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, #0 + bne _0802C41C + ldr r3, _0802C42C + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, #0 + bne _0802C41C + movs r2, #1 +_0802C41C: + adds r0, r2, #0 + pop {r1} + bx r1 + .align 2, 0 +_0802C424: .4byte 0x030050A0 +_0802C428: .4byte 0x0000069E +_0802C42C: .4byte 0x000008D2 + thumb_func_end sub_0802C400 + + thumb_func_start sub_0802C430 +sub_0802C430: @ 0x0802C430 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + ldr r6, _0802C470 + movs r5, #1 +_0802C43E: + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _0802C44E + adds r0, r5, #0 + lsls r0, r1 + orrs r2, r0 + adds r3, #1 +_0802C44E: + adds r1, #1 + cmp r1, #4 + ble _0802C43E + ldr r0, [r6] + adds r0, #0x71 + strb r2, [r0] + cmp r2, #0 + beq _0802C466 + ldr r0, [r6] + adds r0, #0x4d + movs r1, #1 + strb r1, [r0] +_0802C466: + adds r0, r3, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0802C470: .4byte 0x020229B0 + thumb_func_end sub_0802C430 + + thumb_func_start sub_0802C474 +sub_0802C474: @ 0x0802C474 + ldr r0, _0802C480 + ldr r0, [r0] + adds r0, #0x44 + movs r1, #0 + strb r1, [r0] + bx lr + .align 2, 0 +_0802C480: .4byte 0x020229B0 + thumb_func_end sub_0802C474 + + thumb_func_start sub_0802C484 +sub_0802C484: @ 0x0802C484 + ldr r1, _0802C490 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bx lr + .align 2, 0 +_0802C490: .4byte 0x082CEF78 + thumb_func_end sub_0802C484 + + thumb_func_start sub_0802C494 +sub_0802C494: @ 0x0802C494 + push {lr} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r0, _0802C4AC + ldr r0, [r0] + ldrh r2, [r0, #0xe] + cmp r1, r2 + bls _0802C4A6 + strh r1, [r0, #0xe] +_0802C4A6: + pop {r0} + bx r0 + .align 2, 0 +_0802C4AC: .4byte 0x020229B0 + thumb_func_end sub_0802C494 + + thumb_func_start sub_0802C4B0 +sub_0802C4B0: @ 0x0802C4B0 + push {lr} + ldr r0, _0802C4C4 + ldr r0, [r0] + ldr r1, _0802C4C8 + ldr r2, [r0, #0x78] + ldr r0, [r1] + cmp r2, r0 + bhs _0802C4CC + movs r0, #0 + b _0802C4CE + .align 2, 0 +_0802C4C4: .4byte 0x020229B0 +_0802C4C8: .4byte 0x082CEFA0 +_0802C4CC: + movs r0, #1 +_0802C4CE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0802C4B0 + + thumb_func_start sub_0802C4D4 +sub_0802C4D4: @ 0x0802C4D4 + push {r4, lr} + bl sub_0802C50C + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + bl sub_0802C52C + lsls r0, r0, #0x10 + lsrs r0, r0, #4 + ldr r1, _0802C4F8 + ands r4, r1 + orrs r0, r4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0802C4F8: .4byte 0x00000FFF + thumb_func_end sub_0802C4D4 + + thumb_func_start sub_0802C4FC +sub_0802C4FC: @ 0x0802C4FC + lsls r0, r0, #0x10 + lsrs r3, r0, #0x1c + strh r3, [r2] + lsls r0, r0, #4 + lsrs r0, r0, #0x14 + strh r0, [r1] + bx lr + .align 2, 0 + thumb_func_end sub_0802C4FC + + thumb_func_start sub_0802C50C +sub_0802C50C: @ 0x0802C50C + push {lr} + bl Random + lsls r0, r0, #0x10 + movs r1, #0xe0 + lsls r1, r1, #0xb + ands r1, r0 + ldr r0, _0802C528 + lsrs r1, r1, #0xf + adds r1, r1, r0 + ldrh r0, [r1] + pop {r1} + bx r1 + .align 2, 0 +_0802C528: .4byte 0x082CEF90 + thumb_func_end sub_0802C50C + + thumb_func_start sub_0802C52C +sub_0802C52C: @ 0x0802C52C + push {r4, r5, r6, lr} + movs r5, #0 + movs r4, #0 + ldr r3, _0802C560 + ldr r0, [r3] + ldr r2, _0802C564 + ldr r1, [r0, #0x78] + ldr r0, [r2] + cmp r1, r0 + blo _0802C568 + ldr r5, [r2, #4] + adds r6, r3, #0 + adds r3, r2, #4 +_0802C546: + adds r3, #8 + adds r2, #8 + adds r4, #1 + cmp r4, #4 + bhi _0802C568 + ldr r0, [r6] + ldr r1, [r0, #0x78] + ldr r0, [r2] + cmp r1, r0 + blo _0802C568 + ldr r5, [r3] + b _0802C546 + .align 2, 0 +_0802C560: .4byte 0x020229B0 +_0802C564: .4byte 0x082CEFA0 +_0802C568: + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0802C52C + + thumb_func_start sub_0802C574 +sub_0802C574: @ 0x0802C574 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + b _0802C586 +_0802C580: + subs r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_0802C586: + cmp r4, #0 + beq _0802C598 + adds r0, r5, #0 + adds r1, r4, #0 + bl CheckBagHasSpace + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0802C580 +_0802C598: + adds r0, r4, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_0802C574 + + thumb_func_start sub_0802C5A0 +sub_0802C5A0: @ 0x0802C5A0 + push {lr} + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0802C5A0 + + thumb_func_start sub_0802C5B0 +sub_0802C5B0: @ 0x0802C5B0 + ldr r0, _0802C5B8 + ldr r0, [r0] + ldrb r0, [r0, #6] + bx lr + .align 2, 0 +_0802C5B8: .4byte 0x020229B0 + thumb_func_end sub_0802C5B0 + + thumb_func_start sub_0802C5BC +sub_0802C5BC: @ 0x0802C5BC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0802C5D4 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _0802C5D8 + adds r1, r1, r0 + ldr r0, [r2] + adds r0, r0, r1 + bx lr + .align 2, 0 +_0802C5D4: .4byte 0x020229B0 +_0802C5D8: .4byte 0x000082A8 + thumb_func_end sub_0802C5BC + + thumb_func_start sub_0802C5DC +sub_0802C5DC: @ 0x0802C5DC + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _0802C5F8 + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, [r2] + adds r0, r0, r1 + movs r1, #0x83 + lsls r1, r1, #8 + adds r0, r0, r1 + bx lr + .align 2, 0 +_0802C5F8: .4byte 0x020229B0 + thumb_func_end sub_0802C5DC + + thumb_func_start sub_0802C5FC +sub_0802C5FC: @ 0x0802C5FC + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl sub_0802A8F4 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mvns r0, r0 + lsrs r0, r0, #0x1f + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0802C5FC + + thumb_func_start sub_0802C614 +sub_0802C614: @ 0x0802C614 + push {r4, r5, lr} + movs r5, #0 +_0802C618: + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _0802C648 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #5 + bl GetMonData + cmp r0, #0 + beq _0802C650 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl sub_0802C5FC + cmp r0, #0 + beq _0802C650 + ldr r1, _0802C64C + movs r0, #1 + b _0802C65A + .align 2, 0 +_0802C648: .4byte 0x02024190 +_0802C64C: .4byte 0x02037290 +_0802C650: + adds r5, #1 + cmp r5, #5 + ble _0802C618 + ldr r1, _0802C664 + movs r0, #0 +_0802C65A: + strh r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0802C664: .4byte 0x02037290 + thumb_func_end sub_0802C614 + + thumb_func_start sub_0802C668 +sub_0802C668: @ 0x0802C668 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r4, #0 + ldr r5, _0802C6A8 +_0802C670: + adds r0, r5, #0 + bl LoadCompressedSpriteSheet + adds r5, #8 + adds r4, #1 + cmp r4, #4 + bls _0802C670 + movs r4, #0 + ldr r5, _0802C6AC +_0802C682: + adds r0, r5, #0 + bl LoadSpritePalette + adds r5, #8 + adds r4, #1 + cmp r4, #1 + bls _0802C682 + movs r0, #5 + bl IndexOfSpritePaletteTag + strb r0, [r6, #0xe] + movs r0, #6 + bl IndexOfSpritePaletteTag + strb r0, [r6, #0xf] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0802C6A8: .4byte 0x082CF694 +_0802C6AC: .4byte 0x082CF6BC + thumb_func_end sub_0802C668 + + thumb_func_start sub_0802C6B0 +sub_0802C6B0: @ 0x0802C6B0 + push {lr} + movs r2, #0 + movs r1, #7 + adds r0, #0x3c +_0802C6B8: + strh r2, [r0] + subs r0, #2 + subs r1, #1 + cmp r1, #0 + bge _0802C6B8 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0802C6B0 + + thumb_func_start sub_0802C6C8 +sub_0802C6C8: @ 0x0802C6C8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x34 + mov sb, r0 + adds r7, r1, #0 + ldr r0, [sp, #0x54] + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + str r2, [sp, #0x28] + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + str r3, [sp, #0x2c] + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + mov r1, sp + ldr r0, _0802C71C + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + movs r0, #0x80 + lsls r0, r0, #6 + bl Alloc + mov r8, r0 + movs r0, #0x80 + lsls r0, r0, #4 + bl Alloc + mov sl, r0 + bl sub_0802C5B0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r6, r0 + bne _0802C720 + movs r0, #3 + b _0802C726 + .align 2, 0 +_0802C71C: .4byte 0x082CF6CC +_0802C720: + adds r0, r6, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_0802C726: + str r0, [sp, #0x30] + mov r1, r8 + cmp r1, #0 + beq _0802C7E8 + mov r2, sl + cmp r2, #0 + beq _0802C7E8 + ldrh r2, [r7] + lsls r0, r2, #3 + ldr r1, _0802C7D4 + adds r0, r0, r1 + ldr r3, [r7, #8] + mov r1, r8 + bl HandleLoadSpecialPokePic + mov r3, r8 + str r3, [sp, #0x18] + adds r4, r6, #0 + add r0, sp, #0x18 + ldr r5, _0802C7D8 + lsls r1, r4, #0x10 + movs r2, #0x80 + lsls r2, r2, #4 + orrs r1, r2 + str r1, [r0, #4] + bl LoadSpriteSheet + ldrh r0, [r7] + ldr r1, [r7, #4] + ldr r2, [r7, #8] + bl GetMonSpritePalFromSpeciesAndPersonality + str r0, [sp, #0x20] + add r0, sp, #0x20 + ldr r1, [r0, #4] + ands r1, r5 + orrs r1, r4 + str r1, [r0, #4] + bl LoadCompressedSpritePalette + mov r0, r8 + bl Free + mov r0, sl + bl Free + mov r1, sp + mov r0, sp + ldrh r0, [r0] + adds r0, r0, r6 + strh r0, [r1] + mov r0, sp + ldrh r0, [r0, #2] + adds r0, r0, r6 + strh r0, [r1, #2] + ldr r4, [sp, #0x28] + lsls r1, r4, #0x10 + asrs r1, r1, #0x10 + ldr r0, [sp, #0x2c] + lsls r2, r0, #0x10 + asrs r2, r2, #0x10 + mov r0, sp + ldr r3, [sp, #0x30] + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x40 + beq _0802C7E8 + lsls r0, r6, #2 + ldr r2, _0802C7DC + add r2, sb + adds r2, r2, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0802C7E0 + adds r0, r0, r1 + str r0, [r2] + ldr r0, _0802C7E4 + add r0, sb + adds r0, r0, r6 + add r1, sp, #0x30 + ldrb r1, [r1] + strb r1, [r0] + b _0802C7F4 + .align 2, 0 +_0802C7D4: .4byte 0x082D4CA8 +_0802C7D8: .4byte 0xFFFF0000 +_0802C7DC: .4byte 0x000081A8 +_0802C7E0: .4byte 0x020205AC +_0802C7E4: .4byte 0x000081FC +_0802C7E8: + lsls r0, r6, #2 + ldr r1, _0802C804 + add r1, sb + adds r1, r1, r0 + movs r0, #0 + str r0, [r1] +_0802C7F4: + add sp, #0x34 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0802C804: .4byte 0x000081A8 + thumb_func_end sub_0802C6C8 + + thumb_func_start sub_0802C808 +sub_0802C808: @ 0x0802C808 + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r6, r1, #2 + ldr r0, _0802C860 + adds r5, r4, r0 + adds r5, r5, r6 + ldr r0, [r5] + bl sub_0802C6B0 + ldr r2, [r5] + ldr r0, _0802C864 + adds r4, r4, r0 + adds r4, r4, r6 + ldr r1, [r4] + ldr r0, _0802C868 + subs r1, r1, r0 + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r1, r0, #8 + adds r0, r0, r1 + lsls r1, r0, #0x10 + adds r0, r0, r1 + rsbs r0, r0, #0 + asrs r0, r0, #2 + strh r0, [r2, #0x3c] + ldr r1, [r5] + adds r1, #0x3e + ldrb r2, [r1] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r5] + movs r0, #0x60 + strh r0, [r1, #0x22] + ldr r0, [r5] + ldr r1, _0802C86C + str r1, [r0, #0x1c] + movs r1, #1 + bl StartSpriteAnim + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0802C860: .4byte 0x000081BC +_0802C864: .4byte 0x000081A8 +_0802C868: .4byte 0x020205AC +_0802C86C: .4byte 0x0802C871 + thumb_func_end sub_0802C808 + + thumb_func_start sub_0802C870 +sub_0802C870: @ 0x0802C870 + push {lr} + adds r2, r0, #0 + movs r1, #0x2e + ldrsh r0, [r2, r1] + cmp r0, #1 + beq _0802C89C + cmp r0, #1 + bgt _0802C886 + cmp r0, #0 + beq _0802C88C + b _0802C8DA +_0802C886: + cmp r0, #2 + beq _0802C8BC + b _0802C8DA +_0802C88C: + adds r0, r2, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0802C8DA + b _0802C8CA +_0802C89C: + ldrh r1, [r2, #0x22] + subs r1, #1 + strh r1, [r2, #0x22] + ldrh r0, [r2, #0x30] + adds r0, #1 + strh r0, [r2, #0x30] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #0x48 + bgt _0802C8DA + movs r0, #0x48 + strh r0, [r2, #0x22] + ldrh r0, [r2, #0x2e] + adds r0, #1 + strh r0, [r2, #0x2e] + b _0802C8DA +_0802C8BC: + ldrh r0, [r2, #0x30] + adds r0, #1 + strh r0, [r2, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x2f + ble _0802C8DA +_0802C8CA: + adds r3, r2, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r1, #4 + orrs r0, r1 + strb r0, [r3] + ldr r0, _0802C8E0 + str r0, [r2, #0x1c] +_0802C8DA: + pop {r0} + bx r0 + .align 2, 0 +_0802C8E0: .4byte 0x08007141 + thumb_func_end sub_0802C870 + + thumb_func_start sub_0802C8E4 +sub_0802C8E4: @ 0x0802C8E4 + push {lr} + lsls r1, r1, #2 + ldr r2, _0802C904 + adds r0, r0, r2 + adds r0, r0, r1 + ldr r2, [r0] + ldr r1, _0802C908 + str r1, [r2, #0x1c] + movs r1, #0 + strh r1, [r2, #0x26] + ldr r0, [r0] + bl sub_0802C6B0 + pop {r0} + bx r0 + .align 2, 0 +_0802C904: .4byte 0x000081A8 +_0802C908: .4byte 0x0802C935 + thumb_func_end sub_0802C8E4 + + thumb_func_start sub_0802C90C +sub_0802C90C: @ 0x0802C90C + push {lr} + movs r2, #0 + lsls r1, r1, #2 + ldr r3, _0802C92C + adds r0, r0, r3 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, [r0, #0x1c] + ldr r0, _0802C930 + cmp r1, r0 + bne _0802C924 + movs r2, #1 +_0802C924: + adds r0, r2, #0 + pop {r1} + bx r1 + .align 2, 0 +_0802C92C: .4byte 0x000081A8 +_0802C930: .4byte 0x0802C935 + thumb_func_end sub_0802C90C + + thumb_func_start sub_0802C934 +sub_0802C934: @ 0x0802C934 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x30] + adds r0, #1 + strh r0, [r2, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _0802C960 + ldrh r0, [r2, #0x32] + adds r0, #1 + strh r0, [r2, #0x32] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0802C958 + movs r0, #2 + b _0802C95A +_0802C958: + ldr r0, _0802C974 +_0802C95A: + strh r0, [r2, #0x26] + movs r0, #0 + strh r0, [r2, #0x30] +_0802C960: + movs r1, #0x32 + ldrsh r0, [r2, r1] + cmp r0, #0xc + ble _0802C970 + movs r0, #0 + strh r0, [r2, #0x26] + ldr r0, _0802C978 + str r0, [r2, #0x1c] +_0802C970: + pop {r0} + bx r0 + .align 2, 0 +_0802C974: .4byte 0x0000FFFE +_0802C978: .4byte 0x08007141 + thumb_func_end sub_0802C934 + + thumb_func_start sub_0802C97C +sub_0802C97C: @ 0x0802C97C + push {r4, lr} + adds r4, r0, #0 + lsls r1, r1, #2 + ldr r0, _0802C99C + adds r4, r4, r0 + adds r4, r4, r1 + ldr r0, [r4] + bl sub_0802C6B0 + ldr r1, [r4] + ldr r0, _0802C9A0 + str r0, [r1, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802C99C: .4byte 0x000081A8 +_0802C9A0: .4byte 0x0802C9FD + thumb_func_end sub_0802C97C + + thumb_func_start sub_0802C9A4 +sub_0802C9A4: @ 0x0802C9A4 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + bl sub_0802C5A0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + beq _0802C9E8 + movs r1, #5 + rsbs r1, r1, #0 + mov ip, r1 + ldr r1, _0802C9F0 + adds r3, r4, r1 + ldr r7, _0802C9F4 + ldr r6, _0802C9F8 + movs r5, #0xa + adds r4, r0, #0 +_0802C9C6: + ldr r2, [r3] + ldr r0, [r2, #0x1c] + cmp r0, r7 + bne _0802C9E0 + adds r2, #0x3e + ldrb r1, [r2] + mov r0, ip + ands r0, r1 + strb r0, [r2] + ldr r0, [r3] + str r6, [r0, #0x1c] + adds r0, #0x43 + strb r5, [r0] +_0802C9E0: + adds r3, #4 + subs r4, #1 + cmp r4, #0 + bne _0802C9C6 +_0802C9E8: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0802C9F0: .4byte 0x000081A8 +_0802C9F4: .4byte 0x0802C9FD +_0802C9F8: .4byte 0x08007141 + thumb_func_end sub_0802C9A4 + + thumb_func_start sub_0802C9FC +sub_0802C9FC: @ 0x0802C9FC + push {lr} + adds r3, r0, #0 + ldrh r0, [r3, #0x2e] + adds r0, #1 + strh r0, [r3, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + ble _0802CA2A + movs r0, #0 + strh r0, [r3, #0x2e] + adds r3, #0x3e + ldrb r2, [r3] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_0802CA2A: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0802C9FC + + thumb_func_start sub_0802CA30 +sub_0802CA30: @ 0x0802CA30 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0802C5A0 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + movs r2, #0 + cmp r2, r3 + bge _0802CA5A + ldr r0, _0802CA60 + adds r5, r4, r0 + subs r0, #0x54 + adds r4, r4, r0 +_0802CA4A: + ldm r4!, {r0} + adds r1, r5, r2 + ldrb r1, [r1] + adds r0, #0x43 + strb r1, [r0] + adds r2, #1 + cmp r2, r3 + blt _0802CA4A +_0802CA5A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0802CA60: .4byte 0x000081FC + thumb_func_end sub_0802CA30 + + thumb_func_start sub_0802CA64 +sub_0802CA64: @ 0x0802CA64 + push {r4, lr} + adds r4, r0, #0 + lsls r1, r1, #2 + ldr r0, _0802CA84 + adds r4, r4, r0 + adds r4, r4, r1 + ldr r0, [r4] + bl sub_0802C6B0 + ldr r1, [r4] + ldr r0, _0802CA88 + str r0, [r1, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802CA84: .4byte 0x000081A8 +_0802CA88: .4byte 0x0802CAC9 + thumb_func_end sub_0802CA64 + + thumb_func_start sub_0802CA8C +sub_0802CA8C: @ 0x0802CA8C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0802C5A0 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + movs r2, #0 + cmp r2, r3 + bge _0802CAC0 + ldr r5, _0802CAB0 + ldr r0, _0802CAB4 + adds r1, r4, r0 +_0802CAA4: + ldr r0, [r1] + ldr r0, [r0, #0x1c] + cmp r0, r5 + bne _0802CAB8 + movs r0, #1 + b _0802CAC2 + .align 2, 0 +_0802CAB0: .4byte 0x0802CAC9 +_0802CAB4: .4byte 0x000081A8 +_0802CAB8: + adds r1, #4 + adds r2, #1 + cmp r2, r3 + blt _0802CAA4 +_0802CAC0: + movs r0, #0 +_0802CAC2: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_0802CA8C + + thumb_func_start sub_0802CAC8 +sub_0802CAC8: @ 0x0802CAC8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x2e + ldrsh r4, [r5, r0] + cmp r4, #0 + beq _0802CADA + cmp r4, #1 + beq _0802CAE8 + b _0802CB30 +_0802CADA: + movs r0, #0x22 + bl PlaySE + strh r4, [r5, #0x30] + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] +_0802CAE8: + ldrh r0, [r5, #0x30] + adds r0, #4 + strh r0, [r5, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x7f + ble _0802CAFA + movs r0, #0 + strh r0, [r5, #0x30] +_0802CAFA: + ldr r1, _0802CB28 + movs r2, #0x30 + ldrsh r0, [r5, r2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x13 + rsbs r0, r0, #0 + strh r0, [r5, #0x26] + movs r0, #0x30 + ldrsh r1, [r5, r0] + cmp r1, #0 + bne _0802CB30 + ldrh r0, [r5, #0x32] + adds r0, #1 + strh r0, [r5, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + bgt _0802CB2C + strh r1, [r5, #0x2e] + b _0802CB30 + .align 2, 0 +_0802CB28: .4byte 0x082FA8CC +_0802CB2C: + ldr r0, _0802CB38 + str r0, [r5, #0x1c] +_0802CB30: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0802CB38: .4byte 0x08007141 + thumb_func_end sub_0802CAC8 + + thumb_func_start sub_0802CB3C +sub_0802CB3C: @ 0x0802CB3C + push {r4, r5, lr} + adds r5, r0, #0 + lsls r3, r3, #0x18 + lsrs r4, r3, #0x18 + ldr r0, _0802CB84 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x40 + beq _0802CB7C + ldr r0, _0802CB88 + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + adds r3, r1, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r2, #4 + orrs r0, r2 + strb r0, [r3] + lsls r2, r4, #2 + ldr r3, _0802CB8C + adds r0, r5, r3 + adds r0, r0, r2 + str r1, [r0] +_0802CB7C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0802CB84: .4byte 0x082CF898 +_0802CB88: .4byte 0x020205AC +_0802CB8C: .4byte 0x000081BC + thumb_func_end sub_0802CB3C + + thumb_func_start sub_0802CB90 +sub_0802CB90: @ 0x0802CB90 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + movs r5, #0 + movs r4, #0 + ldr r6, _0802CC30 +_0802CB9A: + ldr r1, _0802CC34 + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r2, _0802CC38 + lsls r1, r5, #1 + adds r1, r1, r2 + movs r2, #0 + ldrsh r1, [r1, r2] + movs r3, #0 + ldrsh r2, [r6, r3] + movs r3, #2 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + lsls r0, r5, #2 + ldr r3, _0802CC3C + adds r2, r7, r3 + adds r2, r2, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0802CC40 + adds r0, r0, r1 + str r0, [r2] + adds r5, #1 + adds r6, #0x14 + adds r4, #1 + cmp r4, #3 + ble _0802CB9A + movs r4, #3 + movs r6, #0x3c +_0802CBDC: + ldr r1, _0802CC34 + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r2, _0802CC38 + lsls r1, r5, #1 + adds r1, r1, r2 + movs r2, #0 + ldrsh r1, [r1, r2] + ldr r2, _0802CC30 + adds r2, r6, r2 + movs r3, #0 + ldrsh r2, [r2, r3] + movs r3, #2 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + lsls r0, r5, #2 + ldr r3, _0802CC3C + adds r2, r7, r3 + adds r2, r2, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0802CC40 + adds r0, r0, r1 + str r0, [r2] + adds r0, #0x3f + ldrb r1, [r0] + movs r2, #1 + orrs r1, r2 + strb r1, [r0] + adds r5, #1 + subs r6, #0x14 + subs r4, #1 + cmp r4, #0 + bge _0802CBDC + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0802CC30: .4byte 0x082CF6E4 +_0802CC34: .4byte 0x082CF744 +_0802CC38: .4byte 0x082CF734 +_0802CC3C: .4byte 0x000081D0 +_0802CC40: .4byte 0x020205AC + thumb_func_end sub_0802CB90 + + thumb_func_start sub_0802CC44 +sub_0802CC44: @ 0x0802CC44 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + str r0, [sp, #8] + cmp r1, #5 + ble _0802CC64 + movs r0, #0xa + subs r1, r0, r1 + movs r0, #3 + str r0, [sp] + ldr r2, [sp, #8] + ldrb r0, [r2, #0xf] + b _0802CC6C +_0802CC64: + movs r3, #2 + str r3, [sp] + ldr r7, [sp, #8] + ldrb r0, [r7, #0xe] +_0802CC6C: + movs r6, #0 + lsls r2, r1, #1 + str r2, [sp, #4] + lsls r0, r0, #4 + mov sb, r0 + lsls r1, r1, #0x18 + mov r8, r1 + ldr r0, _0802CD30 + adds r4, r2, r0 + ldr r3, [sp] + lsls r3, r3, #2 + mov sl, r3 + movs r5, #3 +_0802CC86: + lsls r0, r6, #2 + ldr r7, [sp, #8] + ldr r1, _0802CD34 + adds r2, r7, r1 + adds r2, r2, r0 + ldr r1, [r2] + ldrh r0, [r4] + strh r0, [r1, #0x22] + ldr r3, [r2] + ldrb r0, [r3, #5] + movs r7, #0xd + rsbs r7, r7, #0 + adds r1, r7, #0 + ands r0, r1 + mov r1, sl + orrs r0, r1 + strb r0, [r3, #5] + ldr r3, [r2] + ldrb r1, [r3, #5] + movs r0, #0xf + ands r0, r1 + mov r7, sb + orrs r0, r7 + strb r0, [r3, #5] + ldr r0, [r2] + mov r2, r8 + lsrs r1, r2, #0x18 + bl StartSpriteAnim + adds r6, #1 + adds r4, #0x14 + subs r5, #1 + cmp r5, #0 + bge _0802CC86 + movs r5, #3 + ldr r0, _0802CD30 + ldr r3, [sp, #4] + adds r0, r3, r0 + adds r4, r0, #0 + adds r4, #0x3c + ldr r7, [sp] + lsls r7, r7, #2 + mov sl, r7 +_0802CCDC: + lsls r0, r6, #2 + ldr r1, [sp, #8] + ldr r3, _0802CD34 + adds r2, r1, r3 + adds r2, r2, r0 + ldr r1, [r2] + ldrh r0, [r4] + strh r0, [r1, #0x22] + ldr r3, [r2] + ldrb r0, [r3, #5] + movs r7, #0xd + rsbs r7, r7, #0 + adds r1, r7, #0 + ands r0, r1 + mov r1, sl + orrs r0, r1 + strb r0, [r3, #5] + ldr r3, [r2] + ldrb r1, [r3, #5] + movs r0, #0xf + ands r0, r1 + mov r7, sb + orrs r0, r7 + strb r0, [r3, #5] + ldr r0, [r2] + mov r2, r8 + lsrs r1, r2, #0x18 + bl StartSpriteAnim + adds r6, #1 + subs r4, #0x14 + subs r5, #1 + cmp r5, #0 + bge _0802CCDC + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0802CD30: .4byte 0x082CF6E4 +_0802CD34: .4byte 0x000081D0 + thumb_func_end sub_0802CC44 + + thumb_func_start sub_0802CD38 +sub_0802CD38: @ 0x0802CD38 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + movs r0, #0 + str r0, [sp] + movs r0, #9 + movs r1, #7 + movs r2, #0x78 + movs r3, #0x50 + bl sub_0802E788 + adds r0, r4, #0 + bl sub_0802CA30 + add sp, #4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0802CD38 + + thumb_func_start sub_0802CD5C +sub_0802CD5C: @ 0x0802CD5C + push {lr} + bl sub_0802E7E8 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0802CD5C + + thumb_func_start sub_0802CD68 +sub_0802CD68: @ 0x0802CD68 + push {r4, lr} + ldr r4, _0802CD94 + str r0, [r4] + bl sub_0802CDB0 + ldr r0, _0802CD98 + movs r1, #3 + bl CreateTask + ldr r1, [r4] + strb r0, [r1, #6] + ldr r2, [r4] + ldrb r0, [r2, #6] + movs r1, #2 + bl SetWordTaskArg + ldr r0, _0802CD9C + bl sub_0802CDFC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802CD94: .4byte 0x020229B4 +_0802CD98: .4byte 0x0802CE21 +_0802CD9C: .4byte 0x0802CE45 + thumb_func_end sub_0802CD68 + + thumb_func_start sub_0802CDA0 +sub_0802CDA0: @ 0x0802CDA0 + push {lr} + bl FreeAllWindowBuffers + bl sub_08034B20 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0802CDA0 + + thumb_func_start sub_0802CDB0 +sub_0802CDB0: @ 0x0802CDB0 + movs r1, #0 + strh r1, [r0, #4] + str r1, [r0] + movs r1, #0xff + strh r1, [r0, #0x12] + bx lr + thumb_func_end sub_0802CDB0 + + thumb_func_start sub_0802CDBC +sub_0802CDBC: @ 0x0802CDBC + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r5, #0 + ldr r4, _0802CDE0 +_0802CDC4: + ldr r0, [r4] + cmp r0, r6 + bne _0802CDD0 + ldr r0, [r4, #4] + bl sub_0802CDFC +_0802CDD0: + adds r4, #8 + adds r5, #1 + cmp r5, #9 + bls _0802CDC4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0802CDE0: .4byte 0x082D1A18 + thumb_func_end sub_0802CDBC + + thumb_func_start sub_0802CDE4 +sub_0802CDE4: @ 0x0802CDE4 + ldr r0, _0802CDF8 + ldr r0, [r0] + ldr r1, [r0] + movs r0, #1 + eors r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + bx lr + .align 2, 0 +_0802CDF8: .4byte 0x020229B4 + thumb_func_end sub_0802CDE4 + + thumb_func_start sub_0802CDFC +sub_0802CDFC: @ 0x0802CDFC + push {r4, lr} + adds r2, r0, #0 + ldr r4, _0802CE1C + ldr r0, [r4] + ldrb r0, [r0, #6] + movs r1, #0 + bl SetWordTaskArg + ldr r1, [r4] + movs r0, #0 + strh r0, [r1, #4] + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802CE1C: .4byte 0x020229B4 + thumb_func_end sub_0802CDFC + + thumb_func_start sub_0802CE20 +sub_0802CE20: @ 0x0802CE20 + push {lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r0, _0802CE40 + ldr r0, [r0] + ldr r0, [r0] + cmp r0, #0 + bne _0802CE3C + adds r0, r1, #0 + movs r1, #0 + bl GetWordTaskArg + bl _call_via_r0 +_0802CE3C: + pop {r0} + bx r0 + .align 2, 0 +_0802CE40: .4byte 0x020229B4 + thumb_func_end sub_0802CE20 + + thumb_func_start sub_0802CE44 +sub_0802CE44: @ 0x0802CE44 + push {r4, r5, r6, lr} + sub sp, #8 + ldr r6, _0802CE60 + ldr r1, [r6] + ldrh r5, [r1, #4] + cmp r5, #1 + bne _0802CE54 + b _0802CF8C +_0802CE54: + cmp r5, #1 + bgt _0802CE64 + cmp r5, #0 + beq _0802CE6C + b _0802CFCE + .align 2, 0 +_0802CE60: .4byte 0x020229B4 +_0802CE64: + cmp r5, #2 + bne _0802CE6A + b _0802CFCA +_0802CE6A: + b _0802CFCE +_0802CE6C: + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _0802CF5C + movs r0, #0 + movs r2, #4 + bl InitBgsFromTemplates + ldr r0, _0802CF60 + bl InitWindows + bl reset_temp_tile_data_buffers + ldr r0, [r6] + bl sub_0802C668 + bl sub_0802DA00 + ldr r0, _0802CF64 + movs r1, #0 + movs r2, #0x20 + bl LoadPalette + ldr r1, _0802CF68 + str r5, [sp] + movs r0, #3 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, _0802CF6C + movs r4, #1 + str r4, [sp] + movs r0, #3 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + ldr r0, _0802CF70 + movs r1, #0x30 + movs r2, #0x20 + bl LoadPalette + ldr r1, _0802CF74 + str r5, [sp] + movs r0, #2 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, _0802CF78 + str r4, [sp] + movs r0, #2 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + ldr r0, _0802CF7C + movs r1, #0x10 + movs r2, #0x20 + bl LoadPalette + ldr r1, _0802CF80 + str r5, [sp] + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, _0802CF84 + str r4, [sp] + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + ldr r0, _0802CF88 + movs r1, #0x20 + movs r2, #0x20 + bl LoadPalette + ldr r1, [r6] + movs r0, #0xd3 + lsls r0, r0, #1 + adds r1, r1, r0 + movs r0, #0 + bl SetBgTilemapBuffer + movs r0, #0x20 + str r0, [sp] + str r0, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + bl sub_0802D884 + movs r0, #0 + bl sub_0802DA5C + movs r0, #0 + movs r1, #1 + movs r2, #0xe0 + bl sub_080985F4 + movs r0, #0 + bl CopyBgTilemapBufferToVram + movs r0, #2 + bl CopyBgTilemapBufferToVram + movs r0, #1 + bl CopyBgTilemapBufferToVram + bl ResetBgPositions + b _0802CFC0 + .align 2, 0 +_0802CF5C: .4byte 0x082D19F0 +_0802CF60: .4byte 0x082D1A00 +_0802CF64: .4byte 0x082CF8D0 +_0802CF68: .4byte 0x082CF8F0 +_0802CF6C: .4byte 0x082CFB1C +_0802CF70: .4byte 0x082CFCCC +_0802CF74: .4byte 0x082CFCEC +_0802CF78: .4byte 0x082D063C +_0802CF7C: .4byte 0x082D09F4 +_0802CF80: .4byte 0x082D0A14 +_0802CF84: .4byte 0x082D14C4 +_0802CF88: .4byte 0x082CF8B0 +_0802CF8C: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802CFCE + bl sub_0802D8F0 + ldr r0, [r6] + bl sub_0802CB90 + ldr r0, [r6] + movs r1, #6 + bl sub_0802CC44 + movs r0, #3 + bl ShowBg + movs r0, #0 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #1 + bl HideBg +_0802CFC0: + ldr r1, [r6] + ldrh r0, [r1, #4] + adds r0, #1 + strh r0, [r1, #4] + b _0802CFCE +_0802CFCA: + movs r0, #1 + str r0, [r1] +_0802CFCE: + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0802CE44 + + thumb_func_start sub_0802CFD8 +sub_0802CFD8: @ 0x0802CFD8 + push {r4, lr} + ldr r4, _0802CFF0 + ldr r0, [r4] + ldrh r0, [r0, #4] + cmp r0, #1 + beq _0802D004 + cmp r0, #1 + bgt _0802CFF4 + cmp r0, #0 + beq _0802CFFE + b _0802D03E + .align 2, 0 +_0802CFF0: .4byte 0x020229B4 +_0802CFF4: + cmp r0, #2 + beq _0802D016 + cmp r0, #3 + beq _0802D02E + b _0802D03E +_0802CFFE: + bl sub_0802DB14 + b _0802D024 +_0802D004: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802D03E + movs r0, #0 + bl sub_0802DC68 + b _0802D024 +_0802D016: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802D03E + bl sub_0802DCCC +_0802D024: + ldr r1, [r4] + ldrh r0, [r1, #4] + adds r0, #1 + strh r0, [r1, #4] + b _0802D03E +_0802D02E: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802D03E + ldr r1, [r4] + movs r0, #1 + str r0, [r1] +_0802D03E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0802CFD8 + + thumb_func_start sub_0802D044 +sub_0802D044: @ 0x0802D044 + push {r4, lr} + ldr r4, _0802D05C + ldr r0, [r4] + ldrh r0, [r0, #4] + cmp r0, #1 + beq _0802D070 + cmp r0, #1 + bgt _0802D060 + cmp r0, #0 + beq _0802D06A + b _0802D0AA + .align 2, 0 +_0802D05C: .4byte 0x020229B4 +_0802D060: + cmp r0, #2 + beq _0802D082 + cmp r0, #3 + beq _0802D09A + b _0802D0AA +_0802D06A: + bl sub_0802DB14 + b _0802D090 +_0802D070: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802D0AA + movs r0, #1 + bl sub_0802DC68 + b _0802D090 +_0802D082: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802D0AA + bl sub_0802DCCC +_0802D090: + ldr r1, [r4] + ldrh r0, [r1, #4] + adds r0, #1 + strh r0, [r1, #4] + b _0802D0AA +_0802D09A: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802D0AA + ldr r1, [r4] + movs r0, #1 + str r0, [r1] +_0802D0AA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0802D044 + + thumb_func_start sub_0802D0B0 +sub_0802D0B0: @ 0x0802D0B0 + push {r4, r5, lr} + bl sub_0802C5A0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, _0802D0CC + ldr r0, [r0] + ldrh r0, [r0, #4] + cmp r0, #0 + beq _0802D0D0 + cmp r0, #1 + beq _0802D104 + b _0802D132 + .align 2, 0 +_0802D0CC: .4byte 0x020229B4 +_0802D0D0: + movs r4, #0 + cmp r4, r5 + bge _0802D0EC +_0802D0D6: + ldr r0, _0802D100 + ldr r0, [r0] + lsls r1, r4, #1 + adds r0, #0x1c + adds r0, r0, r1 + ldrb r0, [r0] + bl ClearWindowTilemap + adds r4, #1 + cmp r4, r5 + blt _0802D0D6 +_0802D0EC: + movs r0, #0 + bl CopyBgTilemapBufferToVram + ldr r0, _0802D100 + ldr r1, [r0] + ldrh r0, [r1, #4] + adds r0, #1 + strh r0, [r1, #4] + b _0802D132 + .align 2, 0 +_0802D100: .4byte 0x020229B4 +_0802D104: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802D132 + movs r4, #0 + cmp r4, r5 + bge _0802D12A +_0802D114: + ldr r0, _0802D138 + ldr r0, [r0] + lsls r1, r4, #1 + adds r0, #0x1c + adds r0, r0, r1 + ldrb r0, [r0] + bl RemoveWindow + adds r4, #1 + cmp r4, r5 + blt _0802D114 +_0802D12A: + ldr r0, _0802D138 + ldr r1, [r0] + movs r0, #1 + str r0, [r1] +_0802D132: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0802D138: .4byte 0x020229B4 + thumb_func_end sub_0802D0B0 + + thumb_func_start sub_0802D13C +sub_0802D13C: @ 0x0802D13C + push {r4, r5, lr} + sub sp, #0xc + ldr r5, _0802D154 + ldr r0, [r5] + ldrh r4, [r0, #4] + cmp r4, #1 + beq _0802D198 + cmp r4, #1 + bgt _0802D158 + cmp r4, #0 + beq _0802D15E + b _0802D1E0 + .align 2, 0 +_0802D154: .4byte 0x020229B4 +_0802D158: + cmp r4, #2 + beq _0802D1D0 + b _0802D1E0 +_0802D15E: + movs r0, #1 + movs r1, #8 + movs r2, #0x14 + movs r3, #2 + bl sub_0802D78C + ldr r1, [r5] + strh r0, [r1, #0x12] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0802D194 + movs r1, #2 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + ldr r0, [r5] + ldrb r0, [r0, #0x12] + movs r1, #2 + bl CopyWindowToVram + b _0802D1C6 + .align 2, 0 +_0802D194: .4byte 0x085CCE71 +_0802D198: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802D1E0 + ldr r0, [r5] + ldrb r0, [r0, #0x12] + bl PutWindowTilemap + ldr r0, [r5] + ldrb r0, [r0, #0x12] + movs r1, #1 + movs r2, #0xe + bl DrawTextBorderOuter + movs r0, #0x17 + movs r1, #7 + movs r2, #0 + bl sub_0802D808 + movs r0, #0 + bl CopyBgTilemapBufferToVram +_0802D1C6: + ldr r1, [r5] + ldrh r0, [r1, #4] + adds r0, #1 + strh r0, [r1, #4] + b _0802D1E0 +_0802D1D0: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802D1E0 + ldr r1, [r5] + movs r0, #1 + str r0, [r1] +_0802D1E0: + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_0802D13C + + thumb_func_start sub_0802D1E8 +sub_0802D1E8: @ 0x0802D1E8 + push {r4, r5, lr} + sub sp, #0xc + ldr r5, _0802D200 + ldr r0, [r5] + ldrh r4, [r0, #4] + cmp r4, #1 + beq _0802D244 + cmp r4, #1 + bgt _0802D204 + cmp r4, #0 + beq _0802D20A + b _0802D282 + .align 2, 0 +_0802D200: .4byte 0x020229B4 +_0802D204: + cmp r4, #2 + beq _0802D272 + b _0802D282 +_0802D20A: + movs r0, #2 + movs r1, #7 + movs r2, #0x1a + movs r3, #4 + bl sub_0802D78C + ldr r1, [r5] + strh r0, [r1, #0x12] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0802D240 + movs r1, #2 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + ldr r0, [r5] + ldrb r0, [r0, #0x12] + movs r1, #2 + bl CopyWindowToVram + b _0802D268 + .align 2, 0 +_0802D240: .4byte 0x08277071 +_0802D244: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802D282 + ldr r0, [r5] + ldrb r0, [r0, #0x12] + bl PutWindowTilemap + ldr r0, [r5] + ldrb r0, [r0, #0x12] + movs r1, #1 + movs r2, #0xe + bl DrawTextBorderOuter + movs r0, #0 + bl CopyBgTilemapBufferToVram +_0802D268: + ldr r1, [r5] + ldrh r0, [r1, #4] + adds r0, #1 + strh r0, [r1, #4] + b _0802D282 +_0802D272: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802D282 + ldr r1, [r5] + movs r0, #1 + str r0, [r1] +_0802D282: + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0802D1E8 + + thumb_func_start sub_0802D28C +sub_0802D28C: @ 0x0802D28C + push {r4, r5, lr} + ldr r5, _0802D2A0 + ldr r0, [r5] + ldrh r4, [r0, #4] + cmp r4, #0 + beq _0802D2A4 + cmp r4, #1 + beq _0802D2BC + b _0802D2D2 + .align 2, 0 +_0802D2A0: .4byte 0x020229B4 +_0802D2A4: + bl sub_0802D704 + bl sub_08198D88 + movs r0, #0 + bl CopyBgTilemapBufferToVram + ldr r1, [r5] + ldrh r0, [r1, #4] + adds r0, #1 + strh r0, [r1, #4] + b _0802D2D2 +_0802D2BC: + bl sub_0802D734 + cmp r0, #0 + bne _0802D2D2 + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802D2D2 + ldr r0, [r5] + str r4, [r0] +_0802D2D2: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_0802D28C + + thumb_func_start sub_0802D2D8 +sub_0802D2D8: @ 0x0802D2D8 + push {r4, r5, lr} + sub sp, #0xc + ldr r5, _0802D2F0 + ldr r0, [r5] + ldrh r4, [r0, #4] + cmp r4, #1 + beq _0802D334 + cmp r4, #1 + bgt _0802D2F4 + cmp r4, #0 + beq _0802D2FA + b _0802D372 + .align 2, 0 +_0802D2F0: .4byte 0x020229B4 +_0802D2F4: + cmp r4, #2 + beq _0802D362 + b _0802D372 +_0802D2FA: + movs r0, #2 + movs r1, #8 + movs r2, #0x16 + movs r3, #4 + bl sub_0802D78C + ldr r1, [r5] + strh r0, [r1, #0x12] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0802D330 + movs r1, #2 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + ldr r0, [r5] + ldrb r0, [r0, #0x12] + movs r1, #2 + bl CopyWindowToVram + b _0802D358 + .align 2, 0 +_0802D330: .4byte 0x085CCE7F +_0802D334: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802D372 + ldr r0, [r5] + ldrb r0, [r0, #0x12] + bl PutWindowTilemap + ldr r0, [r5] + ldrb r0, [r0, #0x12] + movs r1, #1 + movs r2, #0xe + bl DrawTextBorderOuter + movs r0, #0 + bl CopyBgTilemapBufferToVram +_0802D358: + ldr r1, [r5] + ldrh r0, [r1, #4] + adds r0, #1 + strh r0, [r1, #4] + b _0802D372 +_0802D362: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802D372 + ldr r1, [r5] + movs r0, #1 + str r0, [r1] +_0802D372: + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0802D2D8 + + thumb_func_start sub_0802D37C +sub_0802D37C: @ 0x0802D37C + push {r4, r5, lr} + sub sp, #0xc + ldr r5, _0802D394 + ldr r0, [r5] + ldrh r4, [r0, #4] + cmp r4, #1 + beq _0802D3D8 + cmp r4, #1 + bgt _0802D398 + cmp r4, #0 + beq _0802D39E + b _0802D416 + .align 2, 0 +_0802D394: .4byte 0x020229B4 +_0802D398: + cmp r4, #2 + beq _0802D406 + b _0802D416 +_0802D39E: + movs r0, #7 + movs r1, #0xa + movs r2, #0x10 + movs r3, #2 + bl sub_0802D78C + ldr r1, [r5] + strh r0, [r1, #0x12] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0802D3D4 + movs r1, #2 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + ldr r0, [r5] + ldrb r0, [r0, #0x12] + movs r1, #2 + bl CopyWindowToVram + b _0802D3FC + .align 2, 0 +_0802D3D4: .4byte 0x085CCE99 +_0802D3D8: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802D416 + ldr r0, [r5] + ldrb r0, [r0, #0x12] + bl PutWindowTilemap + ldr r0, [r5] + ldrb r0, [r0, #0x12] + movs r1, #1 + movs r2, #0xe + bl DrawTextBorderOuter + movs r0, #0 + bl CopyBgTilemapBufferToVram +_0802D3FC: + ldr r1, [r5] + ldrh r0, [r1, #4] + adds r0, #1 + strh r0, [r1, #4] + b _0802D416 +_0802D406: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802D416 + ldr r1, [r5] + movs r0, #1 + str r0, [r1] +_0802D416: + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0802D37C + + thumb_func_start sub_0802D420 +sub_0802D420: @ 0x0802D420 + push {r4, r5, lr} + ldr r5, _0802D434 + ldr r0, [r5] + ldrh r4, [r0, #4] + cmp r4, #0 + beq _0802D438 + cmp r4, #1 + beq _0802D446 + b _0802D452 + .align 2, 0 +_0802D434: .4byte 0x020229B4 +_0802D438: + bl sub_0802CD38 + ldr r1, [r5] + ldrh r0, [r1, #4] + adds r0, #1 + strh r0, [r1, #4] + b _0802D452 +_0802D446: + bl sub_0802CD5C + cmp r0, #0 + bne _0802D452 + ldr r0, [r5] + str r4, [r0] +_0802D452: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_0802D420 + + thumb_func_start sub_0802D458 +sub_0802D458: @ 0x0802D458 + push {lr} + ldr r1, _0802D478 + ldr r0, [r1] + movs r2, #0 + strb r2, [r0, #0xa] + ldr r0, [r1] + strb r2, [r0, #0xb] + ldr r2, [r1] + movs r0, #6 + strb r0, [r2, #0xc] + ldr r0, [r1] + ldrb r0, [r0, #0xc] + bl sub_0802D994 + pop {r0} + bx r0 + .align 2, 0 +_0802D478: .4byte 0x020229B4 + thumb_func_end sub_0802D458 + + thumb_func_start sub_0802D47C +sub_0802D47C: @ 0x0802D47C + push {r4, lr} + ldr r0, _0802D490 + ldr r2, [r0] + ldrb r3, [r2, #0xa] + adds r4, r0, #0 + cmp r3, #0 + beq _0802D494 + cmp r3, #1 + beq _0802D4CE + b _0802D4D2 + .align 2, 0 +_0802D490: .4byte 0x020229B4 +_0802D494: + ldrb r0, [r2, #0xb] + adds r0, #1 + strb r0, [r2, #0xb] + ldr r1, [r4] + ldrb r0, [r1, #0xb] + cmp r0, #0xa + bls _0802D4BE + strb r3, [r1, #0xb] + ldr r0, [r4] + ldrb r1, [r0, #0xc] + adds r1, #1 + strb r1, [r0, #0xc] + ldr r1, [r4] + ldrb r0, [r1, #0xc] + cmp r0, #9 + bls _0802D4BE + strb r3, [r1, #0xc] + ldr r1, [r4] + ldrb r0, [r1, #0xa] + adds r0, #1 + strb r0, [r1, #0xa] +_0802D4BE: + ldr r0, [r4] + ldrb r0, [r0, #0xc] + bl sub_0802D994 + ldr r0, [r4] + ldrb r0, [r0, #0xc] + cmp r0, #7 + bne _0802D4D2 +_0802D4CE: + movs r0, #0 + b _0802D4D4 +_0802D4D2: + movs r0, #1 +_0802D4D4: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0802D47C + + thumb_func_start sub_0802D4DC +sub_0802D4DC: @ 0x0802D4DC + push {r4, r5, lr} + sub sp, #0xc + adds r4, r1, #0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r5, _0802D568 + ldr r1, [r5] + adds r1, #0x26 + bl CopyItemName + ldr r0, [r5] + adds r0, #0x66 + adds r1, r4, #0 + movs r2, #0 + movs r3, #1 + bl ConvertIntToDecimalStringN + bl DynamicPlaceholderTextUtil_Reset + ldr r1, [r5] + adds r1, #0x26 + movs r0, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + ldr r1, [r5] + adds r1, #0x66 + movs r0, #1 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + ldr r0, [r5] + adds r0, #0xa6 + ldr r1, _0802D56C + bl DynamicPlaceholderTextUtil_ExpandPlaceholders + movs r0, #4 + movs r1, #8 + movs r2, #0x16 + movs r3, #4 + bl sub_0802D78C + ldr r2, [r5] + movs r4, #0 + movs r3, #0 + strh r0, [r2, #0x12] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r2, #0xa6 + movs r1, #2 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + str r3, [sp, #8] + movs r1, #1 + bl AddTextPrinterParameterized + ldr r0, [r5] + ldrb r0, [r0, #0x12] + movs r1, #2 + bl CopyWindowToVram + ldr r1, [r5] + ldr r0, _0802D570 + strh r0, [r1, #0x14] + strb r4, [r1, #0xd] + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0802D568: .4byte 0x020229B4 +_0802D56C: .4byte 0x085CCE36 +_0802D570: .4byte 0x0000016F + thumb_func_end sub_0802D4DC + + thumb_func_start sub_0802D574 +sub_0802D574: @ 0x0802D574 + push {r4, r5, r6, lr} + sub sp, #0xc + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _0802D5E4 + ldr r1, [r4] + adds r1, #0x26 + bl CopyItemName + bl DynamicPlaceholderTextUtil_Reset + ldr r1, [r4] + adds r1, #0x26 + movs r0, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + ldr r0, [r4] + adds r0, #0xa6 + ldr r1, _0802D5E8 + bl DynamicPlaceholderTextUtil_ExpandPlaceholders + movs r0, #4 + movs r1, #8 + movs r2, #0x16 + movs r3, #4 + bl sub_0802D78C + ldr r2, [r4] + movs r6, #0 + movs r5, #0 + strh r0, [r2, #0x12] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r2, #0xa6 + movs r1, #2 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + str r5, [sp, #8] + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + ldr r0, [r4] + ldrb r0, [r0, #0x12] + movs r1, #2 + bl CopyWindowToVram + ldr r0, [r4] + strh r5, [r0, #0x14] + strb r6, [r0, #0xd] + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0802D5E4: .4byte 0x020229B4 +_0802D5E8: .4byte 0x085CCE52 + thumb_func_end sub_0802D574 + + thumb_func_start sub_0802D5EC +sub_0802D5EC: @ 0x0802D5EC + push {r4, r5, r6, lr} + sub sp, #0xc + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _0802D65C + ldr r1, [r4] + adds r1, #0x26 + bl CopyItemName + bl DynamicPlaceholderTextUtil_Reset + ldr r1, [r4] + adds r1, #0x26 + movs r0, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + ldr r0, [r4] + adds r0, #0xa6 + ldr r1, _0802D660 + bl DynamicPlaceholderTextUtil_ExpandPlaceholders + movs r0, #4 + movs r1, #9 + movs r2, #0x16 + movs r3, #2 + bl sub_0802D78C + ldr r2, [r4] + movs r6, #0 + movs r5, #0 + strh r0, [r2, #0x12] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r2, #0xa6 + movs r1, #2 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + str r5, [sp, #8] + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + ldr r0, [r4] + ldrb r0, [r0, #0x12] + movs r1, #2 + bl CopyWindowToVram + ldr r0, [r4] + strh r5, [r0, #0x14] + strb r6, [r0, #0xd] + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0802D65C: .4byte 0x020229B4 +_0802D660: .4byte 0x085CCE65 + thumb_func_end sub_0802D5EC + + thumb_func_start sub_0802D664 +sub_0802D664: @ 0x0802D664 + push {r4, lr} + ldr r4, _0802D67C + ldr r0, [r4] + ldrb r0, [r0, #0xd] + cmp r0, #1 + beq _0802D6B8 + cmp r0, #1 + bgt _0802D680 + cmp r0, #0 + beq _0802D68A + b _0802D6FC + .align 2, 0 +_0802D67C: .4byte 0x020229B4 +_0802D680: + cmp r0, #2 + beq _0802D6DE + cmp r0, #3 + beq _0802D6F2 + b _0802D6FC +_0802D68A: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802D6FC + ldr r0, [r4] + ldrb r0, [r0, #0x12] + bl PutWindowTilemap + ldr r0, [r4] + ldrb r0, [r0, #0x12] + movs r1, #1 + movs r2, #0xe + bl DrawTextBorderOuter + movs r0, #0 + bl CopyBgTilemapBufferToVram + ldr r1, [r4] + ldrb r0, [r1, #0xd] + adds r0, #1 + strb r0, [r1, #0xd] + b _0802D6FC +_0802D6B8: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802D6FC + ldr r1, [r4] + ldrh r0, [r1, #0x14] + cmp r0, #0 + bne _0802D6D0 + ldrb r0, [r1, #0xd] + adds r0, #2 + b _0802D6F0 +_0802D6D0: + ldrh r0, [r1, #0x14] + bl PlayFanfare + ldr r1, [r4] + ldrb r0, [r1, #0xd] + adds r0, #1 + strb r0, [r1, #0xd] +_0802D6DE: + bl IsFanfareTaskInactive + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0802D6FC + ldr r0, _0802D6F8 + ldr r1, [r0] + ldrb r0, [r1, #0xd] + adds r0, #1 +_0802D6F0: + strb r0, [r1, #0xd] +_0802D6F2: + movs r0, #0 + b _0802D6FE + .align 2, 0 +_0802D6F8: .4byte 0x020229B4 +_0802D6FC: + movs r0, #1 +_0802D6FE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0802D664 + + thumb_func_start sub_0802D704 +sub_0802D704: @ 0x0802D704 + push {r4, lr} + ldr r4, _0802D730 + ldr r0, [r4] + ldrh r0, [r0, #0x12] + cmp r0, #0xff + beq _0802D728 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl rbox_fill_rectangle + ldr r0, [r4] + ldrb r0, [r0, #0x12] + movs r1, #1 + bl CopyWindowToVram + ldr r1, [r4] + movs r0, #0 + strb r0, [r1, #0xd] +_0802D728: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802D730: .4byte 0x020229B4 + thumb_func_end sub_0802D704 + + thumb_func_start sub_0802D734 +sub_0802D734: @ 0x0802D734 + push {r4, lr} + ldr r4, _0802D744 + ldr r1, [r4] + ldrh r0, [r1, #0x12] + cmp r0, #0xff + bne _0802D748 +_0802D740: + movs r0, #0 + b _0802D774 + .align 2, 0 +_0802D744: .4byte 0x020229B4 +_0802D748: + ldrb r0, [r1, #0xd] + cmp r0, #0 + bne _0802D76E + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802D772 + ldr r0, [r4] + ldrb r0, [r0, #0x12] + bl RemoveWindow + ldr r1, [r4] + movs r0, #0xff + strh r0, [r1, #0x12] + ldrb r0, [r1, #0xd] + adds r0, #1 + strb r0, [r1, #0xd] + b _0802D740 +_0802D76E: + cmp r0, #1 + beq _0802D740 +_0802D772: + movs r0, #1 +_0802D774: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0802D734 + + thumb_func_start sub_0802D77C +sub_0802D77C: @ 0x0802D77C + push {lr} + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0802D77C + + thumb_func_start sub_0802D78C +sub_0802D78C: @ 0x0802D78C + push {r4, r5, r6, lr} + sub sp, #8 + ldr r6, _0802D7F4 + ldr r4, [sp] + ands r4, r6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x10 + ldr r5, _0802D7F8 + ands r4, r5 + orrs r4, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #8 + ldr r0, _0802D7FC + ands r4, r0 + orrs r4, r1 + lsls r2, r2, #0x18 + ldr r0, _0802D800 + ands r4, r0 + orrs r4, r2 + str r4, [sp] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r0, [sp, #4] + ands r0, r6 + orrs r0, r3 + ands r0, r5 + movs r1, #0xf0 + lsls r1, r1, #4 + orrs r0, r1 + ldr r1, _0802D804 + ands r0, r1 + movs r1, #0xcc + lsls r1, r1, #0xe + orrs r0, r1 + str r0, [sp, #4] + mov r0, sp + bl AddWindow + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x11 + bl FillWindowPixelBuffer + adds r0, r4, #0 + add sp, #8 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0802D7F4: .4byte 0xFFFFFF00 +_0802D7F8: .4byte 0xFFFF00FF +_0802D7FC: .4byte 0xFF00FFFF +_0802D800: .4byte 0x00FFFFFF +_0802D804: .4byte 0x0000FFFF + thumb_func_end sub_0802D78C + + thumb_func_start sub_0802D808 +sub_0802D808: @ 0x0802D808 + push {r4, r5, lr} + sub sp, #0x14 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r5, _0802D870 + ldr r3, [sp, #0xc] + ands r3, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x10 + ldr r4, _0802D874 + ands r3, r4 + orrs r3, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #8 + ldr r0, _0802D878 + ands r3, r0 + orrs r3, r1 + ldr r0, _0802D87C + ands r3, r0 + movs r0, #0xc0 + lsls r0, r0, #0x13 + orrs r3, r0 + str r3, [sp, #0xc] + ldr r0, [sp, #0x10] + ands r0, r5 + movs r1, #4 + orrs r0, r1 + ands r0, r4 + movs r1, #0x80 + lsls r1, r1, #2 + orrs r0, r1 + ldr r1, _0802D880 + ands r0, r1 + movs r1, #0xd8 + lsls r1, r1, #0xd + orrs r0, r1 + str r0, [sp, #0x10] + movs r0, #1 + str r0, [sp] + movs r0, #0xd + str r0, [sp, #4] + str r2, [sp, #8] + add r0, sp, #0xc + movs r1, #1 + movs r2, #2 + movs r3, #2 + bl sub_08198C08 + add sp, #0x14 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0802D870: .4byte 0xFFFFFF00 +_0802D874: .4byte 0xFFFF00FF +_0802D878: .4byte 0xFF00FFFF +_0802D87C: .4byte 0x00FFFFFF +_0802D880: .4byte 0x0000FFFF + thumb_func_end sub_0802D808 + + thumb_func_start sub_0802D884 +sub_0802D884: @ 0x0802D884 + push {r4, lr} + sub sp, #0x10 + ldr r1, _0802D8E4 + add r0, sp, #0xc + movs r2, #3 + bl memcpy + movs r0, #0 + bl PutWindowTilemap + movs r0, #1 + bl PutWindowTilemap + movs r0, #0 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #1 + movs r1, #0 + bl FillWindowPixelBuffer + add r0, sp, #0xc + str r0, [sp] + movs r4, #0 + str r4, [sp, #4] + ldr r0, _0802D8E8 + str r0, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 + add r0, sp, #0xc + str r0, [sp] + str r4, [sp, #4] + ldr r0, _0802D8EC + str r0, [sp, #8] + movs r0, #1 + movs r1, #0 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 + add sp, #0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802D8E4: .4byte 0x082D1A68 +_0802D8E8: .4byte 0x085CCDF8 +_0802D8EC: .4byte 0x085CCDFB + thumb_func_end sub_0802D884 + + thumb_func_start sub_0802D8F0 +sub_0802D8F0: @ 0x0802D8F0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + bl sub_0802C5A0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 + ldr r1, _0802D96C + subs r0, #2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r5, [r0] + movs r6, #0 + cmp r6, sl + bge _0802D95A + ldr r0, _0802D970 + mov sb, r0 + ldr r1, _0802D974 + mov r8, r1 +_0802D91E: + lsls r4, r6, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl sub_0802C5BC + adds r1, r0, #0 + ldrh r0, [r1] + lsls r0, r0, #2 + add r0, sb + ldrb r3, [r0, #1] + mov r2, r8 + ldr r0, [r2] + movs r7, #0 + ldrsh r2, [r5, r7] + adds r3, #0x70 + str r4, [sp] + bl sub_0802C6C8 + mov r1, r8 + ldr r0, [r1] + movs r2, #0 + ldrsh r1, [r5, r2] + movs r2, #0x70 + adds r3, r4, #0 + bl sub_0802CB3C + adds r5, #2 + adds r6, #1 + cmp r6, sl + blt _0802D91E +_0802D95A: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0802D96C: .4byte 0x082D1AEC +_0802D970: .4byte 0x082D45C8 +_0802D974: .4byte 0x020229B4 + thumb_func_end sub_0802D8F0 + + thumb_func_start sub_0802D978 +sub_0802D978: @ 0x0802D978 + ldr r2, _0802D98C + ldr r2, [r2] + lsls r0, r0, #2 + ldr r3, _0802D990 + adds r2, r2, r3 + adds r2, r2, r0 + ldr r0, [r2] + strh r1, [r0, #0x26] + bx lr + .align 2, 0 +_0802D98C: .4byte 0x020229B4 +_0802D990: .4byte 0x000081A8 + thumb_func_end sub_0802D978 + + thumb_func_start sub_0802D994 +sub_0802D994: @ 0x0802D994 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0802D9BC + ldr r0, [r0] + adds r1, r4, #0 + bl sub_0802CC44 + ldr r0, _0802D9C0 + adds r4, r4, r0 + ldrb r0, [r4] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #0xd + movs r0, #2 + movs r2, #0 + bl ChangeBgY + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802D9BC: .4byte 0x020229B4 +_0802D9C0: .4byte 0x082D1A6B + thumb_func_end sub_0802D994 + + thumb_func_start sub_0802D9C4 +sub_0802D9C4: @ 0x0802D9C4 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r5, #0 + movs r6, #0 +_0802D9CE: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _0802D9E2 + ldr r0, _0802D9FC + ldr r0, [r0] + adds r1, r5, #0 + bl sub_0802C808 + adds r6, #1 +_0802D9E2: + lsrs r4, r4, #1 + adds r5, #1 + cmp r5, #4 + ble _0802D9CE + subs r0, r6, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_0802DD04 + adds r0, r6, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0802D9FC: .4byte 0x020229B4 + thumb_func_end sub_0802D9C4 + + thumb_func_start sub_0802DA00 +sub_0802DA00: @ 0x0802DA00 + push {r4, lr} + sub sp, #0x10 + mov r1, sp + movs r0, #0x40 + strb r0, [r1] + movs r0, #5 + strb r0, [r1, #1] + movs r0, #8 + strb r0, [r1, #2] + movs r0, #0x6c + strh r0, [r1, #4] + movs r4, #6 + strh r4, [r1, #6] + ldr r0, _0802DA54 + str r0, [sp, #8] + ldr r0, _0802DA58 + str r0, [sp, #0xc] + movs r0, #2 + bl sub_08034AAC + movs r0, #0 + movs r1, #0 + mov r2, sp + bl sub_08034B6C + mov r1, sp + movs r0, #4 + strb r0, [r1, #1] + movs r0, #0x1e + strh r0, [r1, #4] + mov r0, sp + strh r4, [r0, #6] + movs r0, #1 + movs r1, #0 + mov r2, sp + bl sub_08034B6C + add sp, #0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802DA54: .4byte 0x082D1A78 +_0802DA58: .4byte 0x082D1A80 + thumb_func_end sub_0802DA00 + + thumb_func_start sub_0802DA5C +sub_0802DA5C: @ 0x0802DA5C + push {lr} + adds r1, r0, #0 + movs r0, #0 + bl sub_08034E9C + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0802DA5C + + thumb_func_start sub_0802DA6C +sub_0802DA6C: @ 0x0802DA6C + push {lr} + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #1 + bl sub_08034E9C + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0802DA6C + + thumb_func_start sub_0802DA80 +sub_0802DA80: @ 0x0802DA80 + push {lr} + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, _0802DA94 + ldr r0, [r0] + bl sub_0802C8E4 + pop {r0} + bx r0 + .align 2, 0 +_0802DA94: .4byte 0x020229B4 + thumb_func_end sub_0802DA80 + + thumb_func_start sub_0802DA98 +sub_0802DA98: @ 0x0802DA98 + push {lr} + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, _0802DAAC + ldr r0, [r0] + bl sub_0802C97C + pop {r0} + bx r0 + .align 2, 0 +_0802DAAC: .4byte 0x020229B4 + thumb_func_end sub_0802DA98 + + thumb_func_start sub_0802DAB0 +sub_0802DAB0: @ 0x0802DAB0 + push {lr} + adds r1, r0, #0 + ldr r0, _0802DAC0 + ldr r0, [r0] + bl sub_0802C90C + pop {r1} + bx r1 + .align 2, 0 +_0802DAC0: .4byte 0x020229B4 + thumb_func_end sub_0802DAB0 + + thumb_func_start sub_0802DAC4 +sub_0802DAC4: @ 0x0802DAC4 + push {lr} + ldr r0, _0802DAD4 + ldr r0, [r0] + bl sub_0802C9A4 + pop {r0} + bx r0 + .align 2, 0 +_0802DAD4: .4byte 0x020229B4 + thumb_func_end sub_0802DAC4 + + thumb_func_start sub_0802DAD8 +sub_0802DAD8: @ 0x0802DAD8 + push {lr} + ldr r0, _0802DAE8 + ldr r0, [r0] + bl sub_0802CA30 + pop {r0} + bx r0 + .align 2, 0 +_0802DAE8: .4byte 0x020229B4 + thumb_func_end sub_0802DAD8 + + thumb_func_start sub_0802DAEC +sub_0802DAEC: @ 0x0802DAEC + push {lr} + adds r1, r0, #0 + ldr r0, _0802DAFC + ldr r0, [r0] + bl sub_0802CA64 + pop {r0} + bx r0 + .align 2, 0 +_0802DAFC: .4byte 0x020229B4 + thumb_func_end sub_0802DAEC + + thumb_func_start sub_0802DB00 +sub_0802DB00: @ 0x0802DB00 + push {lr} + ldr r0, _0802DB10 + ldr r0, [r0] + bl sub_0802CA8C + pop {r1} + bx r1 + .align 2, 0 +_0802DB10: .4byte 0x020229B4 + thumb_func_end sub_0802DB00 + + thumb_func_start sub_0802DB14 +sub_0802DB14: @ 0x0802DB14 + push {r4, r5, r6, r7, lr} + sub sp, #8 + bl sub_0802C5A0 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + ldr r1, _0802DBB4 + subs r0, r7, #2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r4, [r0] + ldr r2, _0802DBB8 + ldr r0, [sp] + ands r0, r2 + ldr r1, _0802DBBC + ands r0, r1 + movs r1, #0x80 + lsls r1, r1, #0x14 + orrs r0, r1 + str r0, [sp] + ldr r0, [sp, #4] + ands r0, r2 + movs r1, #2 + orrs r0, r1 + ldr r1, _0802DBC0 + ands r0, r1 + movs r1, #0x80 + lsls r1, r1, #2 + orrs r0, r1 + ldr r1, _0802DBC4 + ands r0, r1 + movs r1, #0xd8 + lsls r1, r1, #0xd + orrs r0, r1 + str r0, [sp, #4] + movs r5, #0 + cmp r5, r7 + bge _0802DBA4 + mov r6, sp +_0802DB62: + ldrb r0, [r4] + lsls r0, r0, #8 + ldr r2, _0802DBC0 + ldr r1, [sp] + ands r1, r2 + orrs r1, r0 + str r1, [sp] + ldrb r2, [r4, #2] + lsls r2, r2, #0x10 + ldr r0, _0802DBC8 + ands r0, r1 + orrs r0, r2 + str r0, [sp] + mov r0, sp + bl AddWindow + ldr r1, _0802DBCC + ldr r1, [r1] + lsls r2, r5, #1 + adds r1, #0x1c + adds r1, r1, r2 + strh r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl ClearWindowTilemap + ldrh r0, [r6, #6] + adds r0, #0x10 + strh r0, [r6, #6] + adds r4, #4 + adds r5, #1 + cmp r5, r7 + blt _0802DB62 +_0802DBA4: + movs r0, #0 + bl CopyBgTilemapBufferToVram + add sp, #8 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0802DBB4: .4byte 0x082D1AC0 +_0802DBB8: .4byte 0xFFFFFF00 +_0802DBBC: .4byte 0x00FFFFFF +_0802DBC0: .4byte 0xFFFF00FF +_0802DBC4: .4byte 0x0000FFFF +_0802DBC8: .4byte 0xFF00FFFF +_0802DBCC: .4byte 0x020229B4 + thumb_func_end sub_0802DB14 + + thumb_func_start sub_0802DBD0 +sub_0802DBD0: @ 0x0802DBD0 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #0x10 + adds r5, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + add r0, sp, #0xc + strb r1, [r0] + strb r2, [r0, #1] + strb r3, [r0, #2] + ldr r6, _0802DC64 + ldr r0, [r6] + lsls r1, r5, #1 + mov r8, r1 + adds r0, #0x1c + add r0, r8 + ldrb r0, [r0] + movs r1, #0 + bl FillWindowPixelBuffer + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + adds r0, r5, #0 + bl sub_0802C5DC + adds r1, r0, #0 + movs r2, #1 + rsbs r2, r2, #0 + mov sb, r2 + movs r0, #0 + bl GetStringWidth + movs r4, #0x40 + subs r4, r4, r0 + lsrs r4, r4, #1 + adds r0, r5, #0 + bl sub_0802C5DC + adds r1, r0, #0 + ldr r0, [r6] + adds r0, #0x1c + add r0, r8 + ldrb r0, [r0] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + add r2, sp, #0xc + str r2, [sp] + mov r2, sb + str r2, [sp, #4] + str r1, [sp, #8] + movs r1, #0 + adds r2, r4, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 + ldr r0, [r6] + adds r0, #0x1c + add r0, r8 + ldrb r0, [r0] + movs r1, #2 + bl CopyWindowToVram + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0802DC64: .4byte 0x020229B4 + thumb_func_end sub_0802DBD0 + + thumb_func_start sub_0802DC68 +sub_0802DC68: @ 0x0802DC68 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_0802C5A0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r4, #0 + bne _0802DC92 + movs r4, #0 + cmp r4, r5 + bge _0802DCC4 +_0802DC7E: + adds r0, r4, #0 + movs r1, #0 + movs r2, #2 + movs r3, #3 + bl sub_0802DBD0 + adds r4, #1 + cmp r4, r5 + blt _0802DC7E + b _0802DCC4 +_0802DC92: + bl sub_0802C5B0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + movs r4, #0 + cmp r4, r5 + bge _0802DCC4 +_0802DCA0: + cmp r6, r4 + beq _0802DCB2 + adds r0, r4, #0 + movs r1, #0 + movs r2, #2 + movs r3, #3 + bl sub_0802DBD0 + b _0802DCBE +_0802DCB2: + adds r0, r4, #0 + movs r1, #0 + movs r2, #4 + movs r3, #5 + bl sub_0802DBD0 +_0802DCBE: + adds r4, #1 + cmp r4, r5 + blt _0802DCA0 +_0802DCC4: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0802DC68 + + thumb_func_start sub_0802DCCC +sub_0802DCCC: @ 0x0802DCCC + push {r4, r5, lr} + bl sub_0802C5A0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + movs r4, #0 + cmp r4, r5 + bge _0802DCF2 +_0802DCDC: + ldr r0, _0802DD00 + ldr r0, [r0] + lsls r1, r4, #1 + adds r0, #0x1c + adds r0, r0, r1 + ldrb r0, [r0] + bl PutWindowTilemap + adds r4, #1 + cmp r4, r5 + blt _0802DCDC +_0802DCF2: + movs r0, #0 + bl CopyBgTilemapBufferToVram + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0802DD00: .4byte 0x020229B4 + thumb_func_end sub_0802DCCC + + thumb_func_start sub_0802DD04 +sub_0802DD04: @ 0x0802DD04 + push {r4, lr} + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + ldr r0, _0802DD48 + ldr r2, [r0] + movs r0, #0 + str r0, [r2, #0x18] + lsrs r1, r1, #0x19 + lsls r1, r1, #0x10 + movs r0, #1 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + ands r4, r0 + lsls r4, r4, #8 + subs r4, #0x28 + lsls r4, r4, #8 + adds r1, r4, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #1 + bl ShowBg + ldr r0, _0802DD4C + movs r1, #4 + bl CreateTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802DD48: .4byte 0x020229B4 +_0802DD4C: .4byte 0x0802DD89 + thumb_func_end sub_0802DD04 + + thumb_func_start sub_0802DD50 +sub_0802DD50: @ 0x0802DD50 + push {r4, lr} + ldr r4, _0802DD60 + ldr r0, [r4] + ldr r0, [r0, #0x18] + cmp r0, #0x1f + bls _0802DD64 + movs r0, #0 + b _0802DD82 + .align 2, 0 +_0802DD60: .4byte 0x020229B4 +_0802DD64: + movs r0, #1 + movs r1, #0x80 + movs r2, #1 + bl ChangeBgY + ldr r1, [r4] + ldr r0, [r1, #0x18] + adds r0, #1 + str r0, [r1, #0x18] + cmp r0, #0x1f + bls _0802DD80 + movs r0, #1 + bl HideBg +_0802DD80: + movs r0, #1 +_0802DD82: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0802DD50 + + thumb_func_start sub_0802DD88 +sub_0802DD88: @ 0x0802DD88 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl sub_0802DD50 + cmp r0, #0 + bne _0802DD9C + adds r0, r4, #0 + bl DestroyTask +_0802DD9C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0802DD88 + + thumb_func_start sub_0802DDA4 +sub_0802DDA4: @ 0x0802DDA4 + push {lr} + sub sp, #0xc + mov r2, sp + movs r1, #1 + strb r1, [r2] + ldrh r1, [r0] + strh r1, [r2, #2] + ldr r1, [r0, #4] + str r1, [sp, #8] + ldr r0, [r0, #8] + str r0, [sp, #4] + mov r0, sp + bl sub_0800F934 + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0802DDA4 + + thumb_func_start sub_0802DDC8 +sub_0802DDC8: @ 0x0802DDC8 + push {r4, lr} + sub sp, #0xc + adds r4, r1, #0 + ldr r3, _0802DDFC + lsls r2, r0, #4 + adds r0, r2, r3 + ldrh r1, [r0] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + movs r1, #0xbc + lsls r1, r1, #6 + cmp r0, r1 + bne _0802DDF8 + adds r1, r3, #2 + adds r1, r2, r1 + mov r0, sp + movs r2, #0xc + bl memcpy + mov r0, sp + ldrb r0, [r0] + cmp r0, #1 + beq _0802DE00 +_0802DDF8: + movs r0, #0 + b _0802DE10 + .align 2, 0 +_0802DDFC: .4byte 0x03003130 +_0802DE00: + mov r0, sp + ldrh r0, [r0, #2] + strh r0, [r4] + ldr r0, [sp, #8] + str r0, [r4, #4] + ldr r0, [sp, #4] + str r0, [r4, #8] + movs r0, #1 +_0802DE10: + add sp, #0xc + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0802DDC8 + + thumb_func_start sub_0802DE18 +sub_0802DE18: @ 0x0802DE18 + push {lr} + sub sp, #0xc + mov r2, sp + movs r1, #2 + strb r1, [r2] + str r0, [sp, #4] + mov r0, sp + bl sub_0800F934 + add sp, #0xc + pop {r0} + bx r0 + thumb_func_end sub_0802DE18 + + thumb_func_start sub_0802DE30 +sub_0802DE30: @ 0x0802DE30 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0xc + mov r3, sp + movs r2, #3 + strb r2, [r3] + ldr r3, [r1, #8] + lsls r3, r3, #0xf + ldr r2, [sp, #8] + ldr r4, _0802DEAC + mov r8, r4 + ands r2, r4 + orrs r2, r3 + str r2, [sp, #8] + mov r6, sp + ldrb r2, [r1, #1] + movs r5, #0x1f + adds r3, r5, #0 + ands r3, r2 + ldrb r4, [r6, #3] + movs r2, #0x20 + rsbs r2, r2, #0 + ands r2, r4 + orrs r2, r3 + strb r2, [r6, #3] + mov r3, sp + ldrb r2, [r1] + strb r2, [r3, #1] + ldrh r2, [r1, #2] + strh r2, [r3, #6] + mov r4, sp + ldrh r2, [r1, #4] + mov r1, r8 + ands r2, r1 + ldrh r3, [r4, #8] + ldr r1, _0802DEB0 + ands r1, r3 + orrs r1, r2 + strh r1, [r4, #8] + mov r2, sp + ldrh r1, [r0, #0x10] + strb r1, [r2, #2] + mov r3, sp + ldr r1, [r0, #0x14] + lsls r1, r1, #5 + ldrb r2, [r3, #3] + ands r5, r2 + orrs r5, r1 + strb r5, [r3, #3] + mov r1, sp + ldrh r0, [r0, #0xe] + strh r0, [r1, #4] + mov r0, sp + bl sub_0800F934 + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0802DEAC: .4byte 0x00007FFF +_0802DEB0: .4byte 0xFFFF8000 + thumb_func_end sub_0802DE30 + + thumb_func_start sub_0802DEB4 +sub_0802DEB4: @ 0x0802DEB4 + push {r4, r5, lr} + sub sp, #0xc + adds r5, r0, #0 + adds r4, r1, #0 + ldr r2, _0802DF1C + ldrh r0, [r2] + movs r1, #0xff + lsls r1, r1, #8 + ands r1, r0 + movs r0, #0xbc + lsls r0, r0, #6 + cmp r1, r0 + bne _0802DF20 + adds r1, r2, #2 + mov r0, sp + movs r2, #0xc + bl memcpy + mov r0, sp + ldrb r0, [r0] + cmp r0, #3 + bne _0802DF20 + ldr r0, [sp, #8] + lsrs r0, r0, #0xf + str r0, [r4, #8] + mov r0, sp + ldrb r1, [r0, #3] + lsls r0, r1, #0x1b + lsrs r0, r0, #0x1b + strb r0, [r4, #1] + mov r0, sp + ldrb r0, [r0, #1] + strb r0, [r4] + mov r0, sp + ldrh r0, [r0, #6] + strh r0, [r4, #2] + mov r0, sp + ldrh r0, [r0, #8] + lsls r0, r0, #0x11 + lsrs r0, r0, #0x11 + strh r0, [r4, #4] + mov r0, sp + ldrb r0, [r0, #2] + strh r0, [r5, #0x10] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1d + str r1, [r5, #0x14] + mov r0, sp + ldrh r0, [r0, #4] + strh r0, [r5, #0xe] + movs r0, #1 + b _0802DF22 + .align 2, 0 +_0802DF1C: .4byte 0x03003130 +_0802DF20: + movs r0, #0 +_0802DF22: + add sp, #0xc + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0802DEB4 + + thumb_func_start sub_0802DF2C +sub_0802DF2C: @ 0x0802DF2C + push {r4, lr} + sub sp, #0xc + mov r4, sp + movs r3, #4 + strb r3, [r4] + ldrh r3, [r0, #0x10] + strb r3, [r4, #1] + ldr r3, [r0, #0x14] + strb r3, [r4, #2] + ldr r3, [r0, #0x18] + strb r3, [r4, #3] + mov r3, sp + ldrh r0, [r0, #0xe] + strh r0, [r3, #4] + mov r0, sp + strb r1, [r0, #6] + strh r2, [r0, #8] + bl sub_0800F934 + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0802DF2C + + thumb_func_start sub_0802DF5C +sub_0802DF5C: @ 0x0802DF5C + push {r4, r5, r6, lr} + sub sp, #0xc + adds r4, r0, #0 + adds r5, r2, #0 + adds r6, r3, #0 + ldr r3, _0802DFB8 + lsls r2, r1, #4 + adds r0, r2, r3 + ldrh r1, [r0] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + movs r1, #0xbc + lsls r1, r1, #6 + cmp r0, r1 + bne _0802DFBC + adds r1, r3, #2 + adds r1, r2, r1 + mov r0, sp + movs r2, #0xc + bl memcpy + mov r0, sp + ldrb r0, [r0] + cmp r0, #4 + bne _0802DFBC + mov r0, sp + ldrb r0, [r0, #1] + strh r0, [r4, #0x10] + mov r0, sp + ldrb r0, [r0, #2] + str r0, [r4, #0x14] + mov r0, sp + ldrb r0, [r0, #3] + str r0, [r4, #0x18] + mov r0, sp + ldrh r0, [r0, #4] + strh r0, [r4, #0xe] + mov r0, sp + ldrb r0, [r0, #6] + strb r0, [r5] + mov r0, sp + ldrh r0, [r0, #8] + strh r0, [r6] + movs r0, #1 + b _0802DFBE + .align 2, 0 +_0802DFB8: .4byte 0x03003130 +_0802DFBC: + movs r0, #0 +_0802DFBE: + add sp, #0xc + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0802DF5C + + thumb_func_start sub_0802DFC8 +sub_0802DFC8: @ 0x0802DFC8 + push {r4, lr} + sub sp, #0xc + adds r4, r0, #0 + ldr r3, _0802E014 + lsls r2, r1, #4 + adds r0, r2, r3 + ldrh r1, [r0] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + movs r1, #0xbc + lsls r1, r1, #6 + cmp r0, r1 + bne _0802E018 + adds r1, r3, #2 + adds r1, r2, r1 + mov r0, sp + movs r2, #0xc + bl memcpy + mov r0, sp + ldrb r0, [r0] + cmp r0, #4 + bne _0802E018 + mov r0, sp + ldrb r0, [r0, #1] + strh r0, [r4, #0x10] + mov r0, sp + ldrb r0, [r0, #2] + str r0, [r4, #0x14] + mov r0, sp + ldrb r0, [r0, #3] + str r0, [r4, #0x18] + mov r0, sp + ldrh r0, [r0, #4] + strh r0, [r4, #0xe] + movs r0, #1 + b _0802E01A + .align 2, 0 +_0802E014: .4byte 0x03003130 +_0802E018: + movs r0, #0 +_0802E01A: + add sp, #0xc + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0802DFC8 + + thumb_func_start sub_0802E024 +sub_0802E024: @ 0x0802E024 + ldr r0, _0802E030 + ldr r0, [r0] + movs r1, #0xfe + lsls r1, r1, #1 + adds r0, r0, r1 + bx lr + .align 2, 0 +_0802E030: .4byte 0x03005AF0 + thumb_func_end sub_0802E024 + + thumb_func_start ResetPokeJumpResults +ResetPokeJumpResults: @ 0x0802E034 + push {lr} + bl sub_0802E024 + movs r1, #0 + strh r1, [r0] + str r1, [r0, #0xc] + strh r1, [r0, #4] + strh r1, [r0, #6] + str r1, [r0, #8] + strh r1, [r0, #2] + pop {r0} + bx r0 + thumb_func_end ResetPokeJumpResults + + thumb_func_start sub_0802E04C +sub_0802E04C: @ 0x0802E04C + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r6, r2, #0x10 + bl sub_0802E024 + adds r1, r0, #0 + movs r2, #0 + ldr r0, [r1, #0xc] + cmp r0, r4 + bhs _0802E070 + ldr r0, _0802E098 + cmp r4, r0 + bhi _0802E070 + str r4, [r1, #0xc] + movs r2, #1 +_0802E070: + ldrh r0, [r1] + cmp r0, r5 + bhs _0802E080 + ldr r0, _0802E09C + cmp r5, r0 + bhi _0802E080 + strh r5, [r1] + movs r2, #1 +_0802E080: + ldrh r0, [r1, #4] + cmp r0, r6 + bhs _0802E090 + ldr r0, _0802E09C + cmp r6, r0 + bhi _0802E090 + strh r6, [r1, #4] + movs r2, #1 +_0802E090: + adds r0, r2, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0802E098: .4byte 0x00018696 +_0802E09C: .4byte 0x0000270F + thumb_func_end sub_0802E04C + + thumb_func_start sub_0802E0A0 +sub_0802E0A0: @ 0x0802E0A0 + push {lr} + bl sub_0802E024 + adds r2, r0, #0 + ldrh r1, [r2, #6] + ldr r0, _0802E0B8 + cmp r1, r0 + bhi _0802E0B4 + adds r0, r1, #1 + strh r0, [r2, #6] +_0802E0B4: + pop {r0} + bx r0 + .align 2, 0 +_0802E0B8: .4byte 0x0000270E + thumb_func_end sub_0802E0A0 + + thumb_func_start sub_0802E0BC +sub_0802E0BC: @ 0x0802E0BC + push {r4, lr} + ldr r4, _0802E0D8 + adds r0, r4, #0 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl _call_via_r4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802E0D8: .4byte 0x0802E0DD + thumb_func_end sub_0802E0BC + + thumb_func_start sub_0802E0DC +sub_0802E0DC: @ 0x0802E0DC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _0802E100 + adds r4, r0, r1 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _0802E128 + cmp r0, #1 + bgt _0802E104 + cmp r0, #0 + beq _0802E10E + b _0802E176 + .align 2, 0 +_0802E100: .4byte 0x03005B68 +_0802E104: + cmp r0, #2 + beq _0802E134 + cmp r0, #3 + beq _0802E15C + b _0802E176 +_0802E10E: + ldr r0, _0802E124 + bl AddWindow + strh r0, [r4, #2] + ldrh r0, [r4, #2] + bl sub_0802E17C + ldrb r0, [r4, #2] + movs r1, #3 + b _0802E14A + .align 2, 0 +_0802E124: .4byte 0x082D1AFC +_0802E128: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802E176 + b _0802E14E +_0802E134: + ldr r0, _0802E158 + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _0802E176 + ldrb r0, [r4, #2] + bl rbox_fill_rectangle + ldrb r0, [r4, #2] + movs r1, #1 +_0802E14A: + bl CopyWindowToVram +_0802E14E: + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + b _0802E176 + .align 2, 0 +_0802E158: .4byte 0x03002360 +_0802E15C: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802E176 + ldrb r0, [r4, #2] + bl RemoveWindow + adds r0, r5, #0 + bl DestroyTask + bl EnableBothScriptContexts +_0802E176: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_0802E0DC + + thumb_func_start sub_0802E17C +sub_0802E17C: @ 0x0802E17C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x18] + bl sub_0802E024 + ldrh r1, [r0] + str r1, [sp, #0xc] + ldr r1, [r0, #0xc] + str r1, [sp, #0x10] + ldrh r0, [r0, #4] + str r0, [sp, #0x14] + ldr r0, [sp, #0x18] + lsls r4, r0, #0x18 + lsrs r4, r4, #0x18 + ldr r5, _0802E274 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0xd0 + bl LoadUserWindowBorderGfx_ + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0xd + bl DrawTextBorderOuter + adds r0, r4, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r2, _0802E278 + movs r0, #2 + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + adds r0, r4, #0 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + movs r6, #0 + adds r7, r4, #0 + movs r1, #0xff + mov sl, r1 + mov sb, r6 + mov r0, sp + adds r0, #0xc + str r0, [sp, #0x1c] + movs r1, #0xd0 + lsls r1, r1, #0x15 + mov r8, r1 + ldr r5, _0802E27C +_0802E1F2: + ldr r1, _0802E280 + lsls r0, r6, #2 + adds r0, r0, r1 + ldr r2, [r0] + mov r0, r8 + lsrs r4, r0, #0x18 + str r4, [sp] + mov r1, sl + str r1, [sp, #4] + mov r0, sb + str r0, [sp, #8] + adds r0, r7, #0 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + ldr r0, [sp, #0x1c] + ldm r0!, {r1} + str r0, [sp, #0x1c] + adds r0, r5, #0 + movs r2, #0 + movs r3, #5 + bl ConvertIntToDecimalStringN + adds r0, r5, #0 + bl TruncateToFirstWordOnly + movs r0, #1 + adds r1, r5, #0 + movs r2, #0 + bl GetStringWidth + movs r3, #0xa0 + subs r3, r3, r0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r4, [sp] + mov r1, sl + str r1, [sp, #4] + mov r0, sb + str r0, [sp, #8] + adds r0, r7, #0 + movs r1, #1 + adds r2, r5, #0 + bl AddTextPrinterParameterized + movs r1, #0x80 + lsls r1, r1, #0x15 + add r8, r1 + adds r6, #1 + ldr r1, [sp, #0x18] + lsls r0, r1, #0x18 + cmp r6, #2 + bls _0802E1F2 + lsrs r0, r0, #0x18 + bl PutWindowTilemap + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0802E274: .4byte 0x0000021D +_0802E278: .4byte 0x085CCDFE +_0802E27C: .4byte 0x02021C40 +_0802E280: .4byte 0x082D1B04 + thumb_func_end sub_0802E17C + + thumb_func_start TruncateToFirstWordOnly +TruncateToFirstWordOnly: @ 0x0802E284 + push {lr} + adds r1, r0, #0 + b _0802E28C +_0802E28A: + adds r1, #1 +_0802E28C: + ldrb r0, [r1] + cmp r0, #0xff + beq _0802E29A + cmp r0, #0 + bne _0802E28A + movs r0, #0xff + strb r0, [r1] +_0802E29A: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end TruncateToFirstWordOnly + + thumb_func_start sub_0802E2A0 +sub_0802E2A0: @ 0x0802E2A0 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, _0802E2E0 + bl CreateTask + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _0802E2E4 + adds r0, r0, r1 + movs r1, #1 + strh r1, [r0, #8] + strh r5, [r0, #0xa] + ldr r0, _0802E2E8 + lsls r5, r5, #4 + adds r5, r5, r0 + ldr r1, [r5] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0802E2E0: .4byte 0x0802E335 +_0802E2E4: .4byte 0x03005B60 +_0802E2E8: .4byte 0x082D1FD4 + thumb_func_end sub_0802E2A0 + + thumb_func_start sub_0802E2EC +sub_0802E2EC: @ 0x0802E2EC + push {lr} + ldr r0, _0802E310 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xff + beq _0802E318 + ldr r0, _0802E314 + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r0, #2 + strh r0, [r1, #8] + movs r0, #1 + b _0802E31A + .align 2, 0 +_0802E310: .4byte 0x0802E335 +_0802E314: .4byte 0x03005B60 +_0802E318: + movs r0, #0 +_0802E31A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0802E2EC + + thumb_func_start sub_0802E320 +sub_0802E320: @ 0x0802E320 + push {lr} + ldr r0, _0802E330 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0802E330: .4byte 0x0802E335 + thumb_func_end sub_0802E320 + + thumb_func_start sub_0802E334 +sub_0802E334: @ 0x0802E334 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _0802E358 + adds r4, r0, r1 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #3 + beq _0802E380 + cmp r0, #3 + bgt _0802E35C + cmp r0, #2 + beq _0802E362 + b _0802E3B6 + .align 2, 0 +_0802E358: .4byte 0x03005B68 +_0802E35C: + cmp r0, #4 + beq _0802E39C + b _0802E3B6 +_0802E362: + ldr r1, _0802E37C + movs r2, #2 + ldrsh r0, [r4, r2] + lsls r0, r0, #4 + adds r1, #8 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + movs r0, #3 + strh r0, [r4] + b _0802E3B6 + .align 2, 0 +_0802E37C: .4byte 0x082D1FD4 +_0802E380: + ldr r0, _0802E398 + movs r2, #2 + ldrsh r1, [r4, r2] + lsls r1, r1, #4 + adds r0, #0xc + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r5, #0 + bl _call_via_r1 + b _0802E3B6 + .align 2, 0 +_0802E398: .4byte 0x082D1FD4 +_0802E39C: + ldr r0, _0802E3BC + movs r2, #2 + ldrsh r1, [r4, r2] + lsls r1, r1, #4 + adds r0, #4 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r5, #0 + bl _call_via_r1 + adds r0, r5, #0 + bl DestroyTask +_0802E3B6: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0802E3BC: .4byte 0x082D1FD4 + thumb_func_end sub_0802E334 + + thumb_func_start sub_0802E3C0 +sub_0802E3C0: @ 0x0802E3C0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r1, #6 + ldrsh r0, [r4, r1] + lsls r0, r0, #3 + ldr r1, _0802E490 + adds r0, r0, r1 + bl LoadCompressedSpriteSheet + movs r2, #8 + ldrsh r0, [r4, r2] + lsls r0, r0, #3 + ldr r1, _0802E494 + adds r0, r0, r1 + bl LoadSpritePalette + movs r5, #0 + movs r3, #0x10 + ldrsh r0, [r4, r3] + cmp r5, r0 + bge _0802E428 +_0802E3F4: + movs r0, #4 + ldrsh r1, [r4, r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + ldr r1, _0802E498 + adds r0, r0, r1 + movs r2, #0x12 + ldrsh r1, [r4, r2] + movs r3, #0x14 + ldrsh r2, [r4, r3] + ldrb r3, [r4, #0xe] + bl CreateSprite + lsls r1, r5, #1 + adds r1, r1, r4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r1, #0x1a] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r1, #0x10 + ldrsh r0, [r4, r1] + cmp r5, r0 + blt _0802E3F4 +_0802E428: + movs r5, #0 + movs r2, #0x10 + ldrsh r0, [r4, r2] + cmp r5, r0 + bge _0802E484 + movs r7, #3 + movs r3, #0xd + rsbs r3, r3, #0 + mov ip, r3 + ldr r6, _0802E49C +_0802E43C: + lsls r0, r5, #1 + adds r0, r0, r4 + movs r1, #0x1a + ldrsh r0, [r0, r1] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r6 + ldrb r1, [r4, #0xc] + ands r1, r7 + lsls r1, r1, #2 + ldrb r3, [r2, #5] + mov r0, ip + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #5] + adds r3, r2, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r1, #4 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r4, #0xa] + strh r0, [r2, #0x30] + mov r3, r8 + strh r3, [r2, #0x34] + strh r5, [r2, #0x36] + ldrh r0, [r4, #0x1a] + strh r0, [r2, #0x38] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r1, #0x10 + ldrsh r0, [r4, r1] + cmp r5, r0 + blt _0802E43C +_0802E484: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0802E490: .4byte 0x082D1F54 +_0802E494: .4byte 0x082D1F64 +_0802E498: .4byte 0x082D1FBC +_0802E49C: .4byte 0x020205AC + thumb_func_end sub_0802E3C0 + + thumb_func_start sub_0802E4A0 +sub_0802E4A0: @ 0x0802E4A0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r1, _0802E520 + adds r4, r4, r1 + movs r5, #0 + strh r5, [r4, #4] + strh r5, [r4, #6] + strh r5, [r4, #8] + movs r1, #0x3c + strh r1, [r4, #0xa] + strh r5, [r4, #0xc] + strh r5, [r4, #0xe] + movs r1, #3 + strh r1, [r4, #0x10] + movs r1, #0x78 + strh r1, [r4, #0x12] + movs r1, #0x58 + strh r1, [r4, #0x14] + adds r1, r4, #0 + bl sub_0802E3C0 + movs r0, #0x1c + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r5, _0802E524 + adds r0, r0, r5 + movs r1, #4 + bl StartSpriteAnim + movs r0, #0x1c + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _0802E528 + strh r1, [r0, #0x24] + movs r0, #0x1e + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #5 + bl StartSpriteAnim + movs r0, #0x1e + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0x20 + strh r1, [r0, #0x24] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0802E520: .4byte 0x03005B68 +_0802E524: .4byte 0x020205AC +_0802E528: .4byte 0x0000FFE0 + thumb_func_end sub_0802E4A0 + + thumb_func_start sub_0802E52C +sub_0802E52C: @ 0x0802E52C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r5, #0 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _0802E540 + adds r4, r1, r0 + b _0802E560 + .align 2, 0 +_0802E540: .4byte 0x03005B68 +_0802E544: + lsls r0, r5, #1 + adds r0, r0, r4 + movs r2, #0x1a + ldrsh r1, [r0, r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0802E590 + adds r0, r0, r1 + bl DestroySprite + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_0802E560: + movs r1, #0x10 + ldrsh r0, [r4, r1] + cmp r5, r0 + blt _0802E544 + ldr r1, _0802E594 + movs r2, #6 + ldrsh r0, [r4, r2] + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r0, [r0, #6] + bl FreeSpriteTilesByTag + ldr r1, _0802E598 + movs r2, #8 + ldrsh r0, [r4, r2] + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r0, [r0, #4] + bl FreeSpritePaletteByTag + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0802E590: .4byte 0x020205AC +_0802E594: .4byte 0x082D1F54 +_0802E598: .4byte 0x082D1F64 + thumb_func_end sub_0802E52C + + thumb_func_start sub_0802E59C +sub_0802E59C: @ 0x0802E59C + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r0, #0x34 + ldrsh r1, [r6, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + ldr r1, _0802E5E0 + adds r5, r0, r1 + movs r1, #0x16 + ldrsh r0, [r5, r1] + movs r2, #0xa + ldrsh r1, [r5, r2] + bl __modsi3 + cmp r0, #0 + bne _0802E6AE + ldrh r2, [r5, #0x16] + movs r3, #0x16 + ldrsh r1, [r5, r3] + movs r3, #0x14 + ldrsh r0, [r5, r3] + cmp r1, r0 + beq _0802E6AE + strh r2, [r5, #0x14] + movs r1, #0x32 + ldrsh r0, [r6, r1] + cmp r0, #4 + bhi _0802E6A8 + lsls r0, r0, #2 + ldr r1, _0802E5E4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802E5E0: .4byte 0x03005B68 +_0802E5E4: .4byte 0x0802E5E8 +_0802E5E8: @ jump table + .4byte _0802E5FC @ case 0 + .4byte _0802E60A @ case 1 + .4byte _0802E60A @ case 2 + .4byte _0802E61E @ case 3 + .4byte _0802E668 @ case 4 +_0802E5FC: + adds r2, r6, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_0802E60A: + movs r0, #0x38 + bl PlaySE + ldrh r1, [r6, #0x32] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r6, #0 + bl StartSpriteAnim + b _0802E6A8 +_0802E61E: + movs r0, #0x15 + bl PlaySE + ldrh r1, [r6, #0x32] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r6, #0 + bl StartSpriteAnim + ldr r4, _0802E664 + movs r2, #0x1c + ldrsh r0, [r5, r2] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + adds r1, #0x3e + ldrb r3, [r1] + movs r2, #5 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r3 + strb r0, [r1] + movs r3, #0x1e + ldrsh r1, [r5, r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + b _0802E6A8 + .align 2, 0 +_0802E664: .4byte 0x020205AC +_0802E668: + adds r1, r6, #0 + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + ldr r3, _0802E6A4 + movs r0, #0x1c + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + movs r0, #0x1e + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + movs r0, #4 + strh r0, [r5] + b _0802E6AE + .align 2, 0 +_0802E6A4: .4byte 0x020205AC +_0802E6A8: + ldrh r0, [r6, #0x32] + adds r0, #1 + strh r0, [r6, #0x32] +_0802E6AE: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_0802E59C + + thumb_func_start sub_0802E6B4 +sub_0802E6B4: @ 0x0802E6B4 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r5, _0802E708 + adds r6, r4, r5 + movs r0, #0x38 + bl PlaySE + ldr r2, _0802E70C + movs r0, #0x1a + ldrsh r1, [r6, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r2, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _0802E710 + str r1, [r0] + movs r0, #0x1a + ldrsh r1, [r6, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + subs r5, #8 + adds r4, r4, r5 + movs r0, #3 + strh r0, [r4, #8] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0802E708: .4byte 0x03005B68 +_0802E70C: .4byte 0x020205AC +_0802E710: .4byte 0x0802E59D + thumb_func_end sub_0802E6B4 + + thumb_func_start sub_0802E714 +sub_0802E714: @ 0x0802E714 + push {r4, r5, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _0802E768 + adds r4, r1, r0 + ldr r0, _0802E76C + ldrb r0, [r0] + cmp r0, #0 + beq _0802E778 + ldr r1, _0802E770 + ldrh r0, [r1, #2] + ldr r5, _0802E774 + cmp r0, r5 + bne _0802E73C + ldrh r0, [r1, #4] + strh r0, [r4, #0x16] +_0802E73C: + bl GetMultiplayerId + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802E77E + ldrh r0, [r4, #0x18] + adds r0, #1 + strh r0, [r4, #0x18] + mov r0, sp + movs r1, #0 + movs r2, #0xc + bl memset + mov r0, sp + strh r5, [r0] + mov r1, sp + ldrh r0, [r4, #0x18] + strh r0, [r1, #2] + mov r0, sp + bl sub_0800F934 + b _0802E77E + .align 2, 0 +_0802E768: .4byte 0x03005B68 +_0802E76C: .4byte 0x030031C4 +_0802E770: .4byte 0x03003130 +_0802E774: .4byte 0x00007FFF +_0802E778: + ldrh r0, [r4, #0x16] + adds r0, #1 + strh r0, [r4, #0x16] +_0802E77E: + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0802E714 + + thumb_func_start sub_0802E788 +sub_0802E788: @ 0x0802E788 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + ldr r0, [sp, #0x18] + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r0, _0802E7E0 + movs r1, #0x50 + str r3, [sp] + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0802E7E4 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #0xc] + strh r5, [r1, #0xe] + strh r6, [r1, #0x10] + ldr r3, [sp] + strh r3, [r1, #0x12] + mov r0, r8 + strh r0, [r1, #0x14] + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0802E7E0: .4byte 0x0802E7FD +_0802E7E4: .4byte 0x03005B60 + thumb_func_end sub_0802E788 + + thumb_func_start sub_0802E7E8 +sub_0802E7E8: @ 0x0802E7E8 + push {lr} + ldr r0, _0802E7F8 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0802E7F8: .4byte 0x0802E7FD + thumb_func_end sub_0802E7E8 + + thumb_func_start sub_0802E7FC +sub_0802E7FC: @ 0x0802E7FC + push {r4, r5, r6, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _0802E820 + adds r5, r0, r1 + movs r1, #0 + ldrsh r0, [r5, r1] + cmp r0, #1 + beq _0802E86C + cmp r0, #1 + bgt _0802E824 + cmp r0, #0 + beq _0802E82A + b _0802E8EE + .align 2, 0 +_0802E820: .4byte 0x03005B68 +_0802E824: + cmp r0, #2 + beq _0802E8B0 + b _0802E8EE +_0802E82A: + ldrh r0, [r5, #4] + ldrh r1, [r5, #6] + bl sub_0802EBB4 + ldrh r0, [r5, #4] + ldrh r1, [r5, #6] + movs r3, #8 + ldrsh r2, [r5, r3] + movs r4, #0xa + ldrsh r3, [r5, r4] + ldrb r4, [r5, #0xc] + str r4, [sp] + bl sub_0802EC0C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0xe] + ldrh r0, [r5, #4] + ldrh r1, [r5, #6] + movs r3, #8 + ldrsh r2, [r5, r3] + movs r4, #0xa + ldrsh r3, [r5, r4] + ldrb r4, [r5, #0xc] + str r4, [sp] + adds r4, r5, #0 + adds r4, #0x10 + str r4, [sp, #4] + adds r4, #2 + str r4, [sp, #8] + bl sub_0802EC60 + b _0802E8A2 +_0802E86C: + ldrb r0, [r5, #0xe] + bl sub_0802E8FC + cmp r0, #0 + bne _0802E8EE + ldrb r0, [r5, #0xe] + ldrb r1, [r5, #0x10] + ldrb r2, [r5, #0x12] + bl sub_0802EA30 + movs r0, #0xe + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _0802E8AC + adds r0, r0, r4 + bl FreeSpriteOamMatrix + movs r3, #0xe + ldrsh r1, [r5, r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite +_0802E8A2: + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + b _0802E8EE + .align 2, 0 +_0802E8AC: .4byte 0x020205AC +_0802E8B0: + ldrb r0, [r5, #0x10] + bl sub_0802EA94 + cmp r0, #0 + bne _0802E8EE + movs r4, #0x10 + ldrsh r1, [r5, r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _0802E8F8 + adds r0, r0, r4 + bl DestroySprite + movs r0, #0x12 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + ldrh r0, [r5, #4] + bl FreeSpriteTilesByTag + ldrh r0, [r5, #6] + bl FreeSpritePaletteByTag + adds r0, r6, #0 + bl DestroyTask +_0802E8EE: + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0802E8F8: .4byte 0x020205AC + thumb_func_end sub_0802E7FC + + thumb_func_start sub_0802E8FC +sub_0802E8FC: @ 0x0802E8FC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _0802E920 + adds r4, r1, r0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #7 + bls _0802E916 + b _0802EA28 +_0802E916: + lsls r0, r0, #2 + ldr r1, _0802E924 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802E920: .4byte 0x020205AC +_0802E924: .4byte 0x0802E928 +_0802E928: @ jump table + .4byte _0802E948 @ case 0 + .4byte _0802E95A @ case 1 + .4byte _0802E980 @ case 2 + .4byte _0802E990 @ case 3 + .4byte _0802E9B2 @ case 4 + .4byte _0802E9EA @ case 5 + .4byte _0802EA10 @ case 6 + .4byte _0802E9E6 @ case 7 +_0802E948: + movs r1, #0x80 + lsls r1, r1, #4 + adds r0, r4, #0 + movs r2, #0x1a + bl sub_08007B30 + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] +_0802E95A: + movs r2, #0x32 + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _0802E968 + movs r0, #0x39 + bl PlaySE +_0802E968: + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x13 + ble _0802EA28 + movs r0, #0 + strh r0, [r4, #0x32] + adds r0, r4, #0 + movs r1, #1 + b _0802EA06 +_0802E980: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0802EA28 + b _0802EA0A +_0802E990: + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + ble _0802EA28 + movs r0, #0 + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + adds r0, r4, #0 + movs r1, #2 + bl StartSpriteAffineAnim + b _0802EA28 +_0802E9B2: + ldrh r0, [r4, #0x22] + subs r0, #4 + strh r0, [r4, #0x22] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + ble _0802EA28 + ldrh r1, [r4, #0x36] + movs r2, #0x36 + ldrsh r0, [r4, r2] + cmp r0, #1 + bgt _0802E9E2 + adds r1, #1 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim + movs r0, #0 + strh r0, [r4, #0x32] + b _0802EA0A +_0802E9E2: + movs r0, #7 + strh r0, [r4, #0x2e] +_0802E9E6: + movs r0, #0 + b _0802EA2A +_0802E9EA: + ldrh r0, [r4, #0x22] + adds r0, #4 + strh r0, [r4, #0x22] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + ble _0802EA28 + movs r0, #0 + strh r0, [r4, #0x32] + adds r0, r4, #0 + movs r1, #3 +_0802EA06: + bl StartSpriteAffineAnim +_0802EA0A: + ldrh r0, [r4, #0x2e] + adds r0, #1 + b _0802EA26 +_0802EA10: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0802EA28 + ldrh r0, [r4, #0x36] + adds r0, #1 + strh r0, [r4, #0x36] + movs r0, #1 +_0802EA26: + strh r0, [r4, #0x2e] +_0802EA28: + movs r0, #1 +_0802EA2A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0802E8FC + + thumb_func_start sub_0802EA30 +sub_0802EA30: @ 0x0802EA30 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r0, _0802EA88 + mov r8, r0 + lsls r4, r1, #4 + adds r4, r4, r1 + lsls r4, r4, #2 + adds r5, r4, r0 + ldr r0, _0802EA8C + strh r0, [r5, #0x26] + lsls r3, r2, #4 + adds r3, r3, r2 + lsls r3, r3, #2 + mov r1, r8 + adds r2, r3, r1 + strh r0, [r2, #0x26] + adds r5, #0x3e + ldrb r6, [r5] + movs r1, #5 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r6 + strb r0, [r5] + adds r2, #0x3e + ldrb r0, [r2] + ands r1, r0 + strb r1, [r2] + movs r0, #0x1c + add r8, r0 + add r4, r8 + ldr r0, _0802EA90 + str r0, [r4] + add r3, r8 + str r0, [r3] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0802EA88: .4byte 0x020205AC +_0802EA8C: .4byte 0x0000FFD8 +_0802EA90: .4byte 0x0802EAC1 + thumb_func_end sub_0802EA30 + + thumb_func_start sub_0802EA94 +sub_0802EA94: @ 0x0802EA94 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r3, #0 + ldr r2, _0802EAB8 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r2, #0x1c + adds r1, r1, r2 + ldr r1, [r1] + ldr r0, _0802EABC + cmp r1, r0 + bne _0802EAB2 + movs r3, #1 +_0802EAB2: + adds r0, r3, #0 + pop {r1} + bx r1 + .align 2, 0 +_0802EAB8: .4byte 0x020205AC +_0802EABC: .4byte 0x0802EAC1 + thumb_func_end sub_0802EA94 + + thumb_func_start sub_0802EAC0 +sub_0802EAC0: @ 0x0802EAC0 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x2e + movs r1, #0x2e + ldrsh r0, [r5, r1] + cmp r0, #4 + bhi _0802EBAA + lsls r0, r0, #2 + ldr r1, _0802EADC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802EADC: .4byte 0x0802EAE0 +_0802EAE0: @ jump table + .4byte _0802EAF4 @ case 0 + .4byte _0802EB04 @ case 1 + .4byte _0802EB2C @ case 2 + .4byte _0802EB60 @ case 3 + .4byte _0802EB98 @ case 4 +_0802EAF4: + movs r0, #0x40 + strh r0, [r4, #8] + ldrh r0, [r5, #0x26] + lsls r0, r0, #4 + strh r0, [r4, #0xa] + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] +_0802EB04: + ldrh r1, [r4, #8] + ldrh r2, [r4, #0xa] + adds r0, r1, r2 + strh r0, [r4, #0xa] + adds r1, #1 + strh r1, [r4, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + strh r0, [r5, #0x26] + cmp r0, #0 + blt _0802EBAA + movs r0, #0x39 + bl PlaySE + movs r0, #0 + strh r0, [r5, #0x26] + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + b _0802EBAA +_0802EB2C: + ldrh r0, [r4, #2] + adds r0, #0xc + strh r0, [r4, #2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x7f + ble _0802EB4A + movs r0, #0x39 + bl PlaySE + movs r0, #0 + strh r0, [r4, #2] + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] +_0802EB4A: + ldr r0, _0802EB5C + movs r2, #2 + ldrsh r1, [r4, r2] + lsls r1, r1, #1 + adds r1, r1, r0 + movs r2, #0 + ldrsh r0, [r1, r2] + asrs r0, r0, #4 + b _0802EB8E + .align 2, 0 +_0802EB5C: .4byte 0x082FA8CC +_0802EB60: + ldrh r0, [r4, #2] + adds r0, #0x10 + strh r0, [r4, #2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x7f + ble _0802EB7E + movs r0, #0x39 + bl PlaySE + movs r0, #0 + strh r0, [r4, #2] + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] +_0802EB7E: + ldr r1, _0802EB94 + movs r2, #2 + ldrsh r0, [r4, r2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x15 +_0802EB8E: + rsbs r0, r0, #0 + strh r0, [r5, #0x26] + b _0802EBAA + .align 2, 0 +_0802EB94: .4byte 0x082FA8CC +_0802EB98: + ldrh r0, [r4, #2] + adds r0, #1 + strh r0, [r4, #2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x28 + ble _0802EBAA + ldr r0, _0802EBB0 + str r0, [r5, #0x1c] +_0802EBAA: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0802EBB0: .4byte 0x08007141 + thumb_func_end sub_0802EAC0 + + thumb_func_start sub_0802EBB4 +sub_0802EBB4: @ 0x0802EBB4 + push {r4, lr} + sub sp, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r2, _0802EBFC + ldr r3, [r2, #4] + ldr r2, [r2] + str r2, [sp] + str r3, [sp, #4] + ldr r2, _0802EC00 + ldr r3, [r2, #4] + ldr r2, [r2] + str r2, [sp, #8] + str r3, [sp, #0xc] + lsls r0, r0, #0x10 + ldr r3, _0802EC04 + ldr r2, [sp, #4] + ands r2, r3 + orrs r2, r0 + str r2, [sp, #4] + ldr r2, _0802EC08 + add r4, sp, #8 + ldr r0, [r4, #4] + ands r0, r2 + orrs r0, r1 + str r0, [r4, #4] + mov r0, sp + bl LoadCompressedSpriteSheet + adds r0, r4, #0 + bl LoadSpritePalette + add sp, #0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802EBFC: .4byte 0x082D2458 +_0802EC00: .4byte 0x082D2460 +_0802EC04: .4byte 0x0000FFFF +_0802EC08: .4byte 0xFFFF0000 + thumb_func_end sub_0802EBB4 + + thumb_func_start sub_0802EC0C +sub_0802EC0C: @ 0x0802EC0C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x18 + mov ip, r3 + ldr r3, [sp, #0x30] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r8, r3 + mov r5, sp + ldr r4, _0802EC5C + ldm r4!, {r3, r6, r7} + stm r5!, {r3, r6, r7} + ldm r4!, {r3, r6, r7} + stm r5!, {r3, r6, r7} + mov r4, sp + strh r0, [r4] + mov r0, sp + strh r1, [r0, #2] + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + mov r0, ip + lsls r6, r0, #0x10 + asrs r6, r6, #0x10 + mov r0, sp + adds r1, r2, #0 + adds r2, r6, #0 + mov r3, r8 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #0x18 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0802EC5C: .4byte 0x082D251C + thumb_func_end sub_0802EC0C + + thumb_func_start sub_0802EC60 +sub_0802EC60: @ 0x0802EC60 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + mov ip, r3 + ldr r6, [sp, #0x38] + ldr r3, [sp, #0x3c] + mov sb, r3 + ldr r4, [sp, #0x40] + mov r8, r4 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov sl, r6 + mov r4, sp + ldr r3, _0802ED24 + ldm r3!, {r5, r6, r7} + stm r4!, {r5, r6, r7} + ldm r3!, {r5, r6, r7} + stm r4!, {r5, r6, r7} + mov r3, sp + strh r0, [r3] + mov r0, sp + strh r1, [r0, #2] + lsls r2, r2, #0x10 + asrs r4, r2, #0x10 + ldr r0, _0802ED28 + adds r2, r2, r0 + asrs r2, r2, #0x10 + mov r1, ip + lsls r5, r1, #0x10 + asrs r5, r5, #0x10 + mov r0, sp + adds r1, r2, #0 + adds r2, r5, #0 + mov r3, sl + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r3, sb + strh r0, [r3] + adds r4, #0x20 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + mov r0, sp + adds r1, r4, #0 + adds r2, r5, #0 + mov r3, sl + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r4, r8 + strh r0, [r4] + ldr r2, _0802ED2C + mov r5, sb + movs r6, #0 + ldrsh r1, [r5, r6] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r1, [r0] + movs r3, #4 + orrs r1, r3 + strb r1, [r0] + movs r7, #0 + ldrsh r1, [r4, r7] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r3 + strb r1, [r0] + movs r0, #0 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #1 + bl StartSpriteAnim + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0802ED24: .4byte 0x082D2534 +_0802ED28: .4byte 0xFFE00000 +_0802ED2C: .4byte 0x020205AC + thumb_func_end sub_0802EC60 + diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s new file mode 100644 index 0000000..54ffb5d --- /dev/null +++ b/asm/pokemon_storage_system.s @@ -0,0 +1,24275 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start CountMonsInBox +CountMonsInBox: @ 0x080C682C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r4, #0 + movs r5, #0 +_080C6836: + lsls r1, r4, #0x18 + lsrs r1, r1, #0x18 + adds r0, r6, #0 + movs r2, #0xb + bl GetBoxMonDataAt + cmp r0, #0 + beq _080C684C + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_080C684C: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x1d + bls _080C6836 + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end CountMonsInBox + + thumb_func_start GetFirstFreeBoxSpot +GetFirstFreeBoxSpot: @ 0x080C6860 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r4, #0 +_080C6868: + lsls r1, r4, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + movs r2, #0xb + bl GetBoxMonDataAt + cmp r0, #0 + bne _080C687E + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + b _080C688C +_080C687E: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x1d + bls _080C6868 + movs r0, #1 + rsbs r0, r0, #0 +_080C688C: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetFirstFreeBoxSpot + + thumb_func_start CountPartyNonEggMons +CountPartyNonEggMons: @ 0x080C6894 + push {r4, r5, r6, lr} + movs r5, #0 + movs r6, #0 +_080C689A: + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _080C68D8 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _080C68C2 + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + bne _080C68C2 + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 +_080C68C2: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #5 + bls _080C689A + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080C68D8: .4byte 0x02024190 + thumb_func_end CountPartyNonEggMons + + thumb_func_start CountPartyAliveNonEggMonsExcept +CountPartyAliveNonEggMonsExcept: @ 0x080C68DC + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + movs r5, #0 + movs r6, #0 + lsrs r7, r0, #0x18 +_080C68E6: + cmp r5, r7 + beq _080C691E + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _080C6934 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _080C691E + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + bne _080C691E + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _080C691E + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 +_080C691E: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #5 + bls _080C68E6 + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080C6934: .4byte 0x02024190 + thumb_func_end CountPartyAliveNonEggMonsExcept + + thumb_func_start CountPartyAliveNonEggMons_IgnoreVar0x8004Slot +CountPartyAliveNonEggMons_IgnoreVar0x8004Slot: @ 0x080C6938 + push {lr} + ldr r0, _080C694C + ldrb r0, [r0] + bl CountPartyAliveNonEggMonsExcept + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_080C694C: .4byte 0x02037280 + thumb_func_end CountPartyAliveNonEggMons_IgnoreVar0x8004Slot + + thumb_func_start CountPartyMons +CountPartyMons: @ 0x080C6950 + push {r4, r5, lr} + movs r4, #0 + movs r5, #0 +_080C6956: + movs r0, #0x64 + muls r0, r4, r0 + ldr r1, _080C6984 + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _080C696E + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_080C696E: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #5 + bls _080C6956 + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080C6984: .4byte 0x02024190 + thumb_func_end CountPartyMons + + thumb_func_start StringCopyAndFillWithSpaces +StringCopyAndFillWithSpaces: @ 0x080C6988 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r4, r2, #0x10 + lsrs r4, r4, #0x10 + bl StringCopy + adds r1, r0, #0 + adds r5, r5, r4 + cmp r1, r5 + bhs _080C69A6 + movs r0, #0 +_080C699E: + strb r0, [r1] + adds r1, #1 + cmp r1, r5 + blo _080C699E +_080C69A6: + movs r0, #0xff + strb r0, [r1] + adds r0, r1, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end StringCopyAndFillWithSpaces + + thumb_func_start sub_080C69B4 +sub_080C69B4: @ 0x080C69B4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + adds r7, r3, #0 + ldr r5, [sp, #0x1c] + ldr r4, [sp, #0x20] + ldr r0, [sp, #0x24] + mov sb, r0 + ldr r0, [sp, #0x28] + ldr r3, [sp, #0x2c] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + mov r0, sb + lsls r0, r0, #0x11 + mov sb, r0 + lsrs r2, r2, #0xb + adds r2, r2, r1 + lsls r2, r2, #1 + adds r6, r6, r2 + adds r0, r4, #0 + muls r0, r3, r0 + adds r0, r0, r5 + lsls r0, r0, #1 + adds r7, r7, r0 + movs r4, #0 + cmp r4, r8 + bhs _080C6A24 + mov r0, sb + lsrs r0, r0, #1 + mov sb, r0 + lsls r5, r3, #1 +_080C6A0A: + adds r0, r7, #0 + adds r1, r6, #0 + mov r3, sb + lsrs r2, r3, #0x10 + bl CpuSet + adds r6, #0x40 + adds r7, r7, r5 + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, r8 + blo _080C6A0A +_080C6A24: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_080C69B4 + + thumb_func_start sub_080C6A30 +sub_080C6A30: @ 0x080C6A30 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r4, r0, #0 + ldr r0, [sp, #0x28] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 + lsrs r2, r2, #0xb + adds r2, r2, r1 + lsls r2, r2, #1 + adds r4, r4, r2 + lsls r3, r3, #0x11 + lsrs r0, r3, #0x10 + str r0, [sp, #4] + movs r0, #0 + cmp r0, sl + bhs _080C6ADA + movs r6, #0x80 + lsls r6, r6, #5 + mov r5, sp + ldr r7, _080C6A9C + lsrs r3, r3, #0x11 + mov sb, r3 + mov r1, sb + movs r2, #0x81 + lsls r2, r2, #0x18 + orrs r1, r2 + mov sb, r1 +_080C6A76: + adds r3, r4, #0 + ldr r2, [sp, #4] + movs r1, #0x40 + adds r1, r1, r4 + mov r8, r1 + adds r0, #1 + mov ip, r0 + cmp r2, r6 + bhi _080C6AA0 + movs r0, #0 + strh r0, [r5] + mov r2, sp + str r2, [r7] + str r4, [r7, #4] + mov r0, sb + str r0, [r7, #8] + ldr r0, [r7, #8] + b _080C6ACE + .align 2, 0 +_080C6A9C: .4byte 0x040000D4 +_080C6AA0: + movs r4, #0 + strh r4, [r5] + ldr r1, _080C6AEC + mov r0, sp + str r0, [r1] + str r3, [r1, #4] + ldr r0, _080C6AF0 + str r0, [r1, #8] + ldr r0, [r1, #8] + adds r3, r3, r6 + subs r2, r2, r6 + cmp r2, r6 + bhi _080C6AA0 + strh r4, [r5] + mov r0, sp + str r0, [r1] + str r3, [r1, #4] + lsrs r0, r2, #1 + movs r2, #0x81 + lsls r2, r2, #0x18 + orrs r0, r2 + str r0, [r1, #8] + ldr r0, [r1, #8] +_080C6ACE: + mov r4, r8 + mov r1, ip + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + cmp r0, sl + blo _080C6A76 +_080C6ADA: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080C6AEC: .4byte 0x040000D4 +_080C6AF0: .4byte 0x81000800 + thumb_func_end sub_080C6A30 + + thumb_func_start Task_PokemonStorageSystemPC +Task_PokemonStorageSystemPC: @ 0x080C6AF4 + push {r4, r5, r6, r7, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _080C6B1C + adds r5, r0, r1 + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #4 + bls _080C6B10 + b _080C6DF6 +_080C6B10: + lsls r0, r0, #2 + ldr r1, _080C6B20 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C6B1C: .4byte 0x03005B60 +_080C6B20: .4byte 0x080C6B24 +_080C6B24: @ jump table + .4byte _080C6B38 @ case 0 + .4byte _080C6B98 @ case 1 + .4byte _080C6BAC @ case 2 + .4byte _080C6CF6 @ case 3 + .4byte _080C6DD0 @ case 4 +_080C6B38: + ldrb r0, [r5, #0xa] + adds r1, r5, #0 + adds r1, #0x26 + bl sub_080C6E88 + bl sub_08196F98 + movs r0, #0 + movs r1, #0 + bl ClearDialogWindowAndFrame + movs r0, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r1, _080C6B94 + movs r2, #0xa + ldrsh r0, [r5, r2] + lsls r0, r0, #3 + adds r1, #4 + adds r0, r0, r1 + ldr r2, [r0] + movs r0, #0 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + movs r0, #3 + str r0, [sp, #0xc] + movs r0, #0 + movs r1, #1 + movs r3, #0xff + bl AddTextPrinterParameterized2 + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + ldrh r0, [r5, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #3 + bl CopyWindowToVram + b _080C6BA4 + .align 2, 0 +_080C6B94: .4byte 0x0854B1E4 +_080C6B98: + bl IsWeatherNotFadingIn + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C6BA4 + b _080C6DF6 +_080C6BA4: + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + b _080C6DF6 +_080C6BAC: + bl Menu_ProcessInput + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r5, #0xc] + movs r3, #0xc + ldrsh r1, [r5, r3] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _080C6C5C + cmp r1, r0 + bgt _080C6BCE + subs r0, #1 + cmp r1, r0 + beq _080C6BD4 + b _080C6C82 +_080C6BCE: + cmp r1, #4 + beq _080C6C5C + b _080C6C82 +_080C6BD4: + ldrh r3, [r5, #0xa] + strh r3, [r5, #0xe] + ldr r2, _080C6C54 + ldrh r1, [r2, #0x2e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080C6BF2 + subs r0, r3, #1 + strh r0, [r5, #0xe] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _080C6BF2 + movs r0, #4 + strh r0, [r5, #0xe] +_080C6BF2: + ldrh r1, [r2, #0x2e] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080C6C0E + ldrh r0, [r5, #0xe] + adds r0, #1 + strh r0, [r5, #0xe] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _080C6C0E + movs r0, #0 + strh r0, [r5, #0xe] +_080C6C0E: + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + ldrh r2, [r5, #0xe] + movs r3, #0xe + ldrsh r1, [r5, r3] + cmp r0, r1 + bne _080C6C1E + b _080C6DF6 +_080C6C1E: + movs r4, #0 + strh r2, [r5, #0xa] + movs r0, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r1, _080C6C58 + movs r2, #0xa + ldrsh r0, [r5, r2] + lsls r0, r0, #3 + adds r1, #4 + adds r0, r0, r1 + ldr r2, [r0] + str r4, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + movs r0, #3 + str r0, [sp, #0xc] + movs r0, #0 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized2 + b _080C6DF6 + .align 2, 0 +_080C6C54: .4byte 0x03002360 +_080C6C58: .4byte 0x0854B1E4 +_080C6C5C: + ldrh r0, [r5, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + bl DrawStdWindowFrame + bl ScriptContext2_Disable + bl EnableBothScriptContexts + ldrh r0, [r5, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl RemoveWindow + adds r0, r4, #0 + bl DestroyTask + b _080C6DF6 +_080C6C82: + movs r3, #0xc + ldrsh r4, [r5, r3] + cmp r4, #0 + bne _080C6CB4 + bl CountPartyMons + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #6 + bne _080C6CB4 + movs r0, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r2, _080C6CB0 + str r4, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + movs r4, #3 + str r4, [sp, #0xc] + b _080C6DBE + .align 2, 0 +_080C6CB0: .4byte 0x085CB55C +_080C6CB4: + movs r1, #0xc + ldrsh r0, [r5, r1] + cmp r0, #1 + bne _080C6CE8 + bl CountPartyMons + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #1 + bne _080C6CE8 + movs r0, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r2, _080C6CE4 + movs r0, #0 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + str r4, [sp, #8] + movs r4, #3 + str r4, [sp, #0xc] + b _080C6DBE + .align 2, 0 +_080C6CE4: .4byte 0x085CB534 +_080C6CE8: + movs r0, #1 + movs r1, #0 + bl FadeScreen + movs r0, #4 + strh r0, [r5, #8] + b _080C6DF6 +_080C6CF6: + ldr r0, _080C6D20 + ldrh r1, [r0, #0x2e] + movs r7, #3 + adds r4, r7, #0 + ands r4, r1 + cmp r4, #0 + beq _080C6D28 + movs r0, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r1, _080C6D24 + movs r2, #0xa + ldrsh r0, [r5, r2] + lsls r0, r0, #3 + adds r1, #4 + adds r0, r0, r1 + ldr r2, [r0] + movs r0, #0 + str r0, [sp] + b _080C6DB4 + .align 2, 0 +_080C6D20: .4byte 0x03002360 +_080C6D24: .4byte 0x0854B1E4 +_080C6D28: + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #0 + beq _080C6D74 + ldrh r0, [r5, #0xa] + subs r0, #1 + strh r0, [r5, #0xa] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _080C6D44 + movs r0, #4 + strh r0, [r5, #0xa] +_080C6D44: + movs r0, #1 + rsbs r0, r0, #0 + bl Menu_MoveCursor + bl Menu_GetCursorPos + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0xa] + movs r0, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r1, _080C6D70 + movs r3, #0xa + ldrsh r0, [r5, r3] + lsls r0, r0, #3 + adds r1, #4 + adds r0, r0, r1 + ldr r2, [r0] + str r4, [sp] + b _080C6DB4 + .align 2, 0 +_080C6D70: .4byte 0x0854B1E4 +_080C6D74: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080C6DF6 + ldrh r0, [r5, #0xa] + adds r0, #1 + strh r0, [r5, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + ble _080C6D8C + strh r6, [r5, #0xa] +_080C6D8C: + movs r0, #1 + bl Menu_MoveCursor + bl Menu_GetCursorPos + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0xa] + movs r0, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r1, _080C6DCC + movs r2, #0xa + ldrsh r0, [r5, r2] + lsls r0, r0, #3 + adds r1, #4 + adds r0, r0, r1 + ldr r2, [r0] + str r6, [sp] +_080C6DB4: + movs r4, #2 + str r4, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + str r7, [sp, #0xc] +_080C6DBE: + movs r0, #0 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized2 + strh r4, [r5, #8] + b _080C6DF6 + .align 2, 0 +_080C6DCC: .4byte 0x0854B1E4 +_080C6DD0: + ldr r0, _080C6E00 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080C6DF6 + bl CleanupOverworldWindowsAndTilemaps + ldrb r0, [r5, #0xc] + bl Cb2_EnterPSS + ldrh r0, [r5, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl RemoveWindow + adds r0, r4, #0 + bl DestroyTask +_080C6DF6: + add sp, #0x10 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080C6E00: .4byte 0x02037C74 + thumb_func_end Task_PokemonStorageSystemPC + + thumb_func_start ShowPokemonStorageSystemPC +ShowPokemonStorageSystemPC: @ 0x080C6E04 + push {lr} + ldr r0, _080C6E2C + movs r1, #0x50 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080C6E30 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r0, #0 + strh r0, [r1, #8] + strh r0, [r1, #0xa] + bl ScriptContext2_Enable + pop {r0} + bx r0 + .align 2, 0 +_080C6E2C: .4byte 0x080C6AF5 +_080C6E30: .4byte 0x03005B60 + thumb_func_end ShowPokemonStorageSystemPC + + thumb_func_start FieldCb_ReturnToPcMenu +FieldCb_ReturnToPcMenu: @ 0x080C6E34 + push {r4, r5, lr} + ldr r0, _080C6E78 + ldr r5, [r0, #0xc] + movs r0, #0 + bl SetVBlankCallback + ldr r4, _080C6E7C + adds r0, r4, #0 + movs r1, #0x50 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080C6E80 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r2, #0 + strh r2, [r1, #8] + ldr r2, _080C6E84 + ldrb r2, [r2] + strh r2, [r1, #0xa] + bl _call_via_r4 + adds r0, r5, #0 + bl SetVBlankCallback + bl pal_fill_black + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080C6E78: .4byte 0x03002360 +_080C6E7C: .4byte 0x080C6AF5 +_080C6E80: .4byte 0x03005B60 +_080C6E84: .4byte 0x020399A0 + thumb_func_end FieldCb_ReturnToPcMenu + + thumb_func_start sub_080C6E88 +sub_080C6E88: @ 0x080C6E88 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + sub sp, #0xc + adds r6, r0, #0 + mov sl, r1 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + ldr r0, _080C6F08 + bl AddWindow + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r4, r5, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #0 + bl ClearStdWindowAndFrame + movs r0, #1 + movs r1, #0 + bl GetFontAttribute + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r0, #0x10 + mov sb, r0 + str r0, [sp] + movs r0, #5 + mov r8, r0 + str r0, [sp, #4] + ldr r0, _080C6F0C + str r0, [sp, #8] + adds r0, r4, #0 + movs r1, #1 + movs r3, #2 + bl PrintTextArray + mov r0, sb + str r0, [sp] + mov r0, r8 + str r0, [sp, #4] + str r6, [sp, #8] + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl sub_081984B0 + mov r0, sl + strh r5, [r0] + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080C6F08: .4byte 0x0854B20C +_080C6F0C: .4byte 0x0854B1E4 + thumb_func_end sub_080C6E88 + + thumb_func_start Cb2_ExitPSS +Cb2_ExitPSS: @ 0x080C6F10 + push {lr} + bl GetCurrentBoxOption + ldr r1, _080C6F2C + strb r0, [r1] + ldr r1, _080C6F30 + ldr r0, _080C6F34 + str r0, [r1] + ldr r0, _080C6F38 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080C6F2C: .4byte 0x020399A0 +_080C6F30: .4byte 0x03005B0C +_080C6F34: .4byte 0x080C6E35 +_080C6F38: .4byte 0x08085A31 + thumb_func_end Cb2_ExitPSS + + thumb_func_start StorageSystemGetNextMonIndex +StorageSystemGetNextMonIndex: @ 0x080C6F3C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + lsls r1, r1, #0x18 + lsrs r0, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r4, r3, #0 + ldr r2, _080C6FA0 + cmp r3, #1 + bhi _080C6F5E + movs r2, #1 + cmp r3, #1 + beq _080C6F62 +_080C6F5E: + cmp r4, #3 + bne _080C6FAC +_080C6F62: + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r2, r2, #0x10 + asrs r1, r2, #0x10 + adds r1, r1, r0 + lsls r0, r1, #0x10 + asrs r1, r0, #0x10 + adds r6, r2, #0 + cmp r1, #0 + blt _080C6FF8 + cmp r1, r7 + bgt _080C6FF8 +_080C6F7A: + asrs r4, r0, #0x10 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #4 + add r0, r8 + movs r1, #0xb + bl GetBoxMonData + cmp r0, #0 + bne _080C6FA4 + asrs r0, r6, #0x10 + adds r0, r4, r0 + lsls r0, r0, #0x10 + asrs r2, r0, #0x10 + cmp r2, #0 + blt _080C6FF8 + cmp r2, r7 + ble _080C6F7A + b _080C6FF8 + .align 2, 0 +_080C6FA0: .4byte 0x0000FFFF +_080C6FA4: + adds r0, r4, #0 + b _080C6FFC +_080C6FA8: + adds r0, r5, #0 + b _080C6FFC +_080C6FAC: + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r2, r2, #0x10 + asrs r1, r2, #0x10 + adds r1, r1, r0 + lsls r0, r1, #0x10 + asrs r1, r0, #0x10 + adds r6, r2, #0 + cmp r1, #0 + blt _080C6FF8 + cmp r1, r7 + bgt _080C6FF8 +_080C6FC4: + asrs r5, r0, #0x10 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #4 + mov r1, r8 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetBoxMonData + cmp r0, #0 + beq _080C6FE8 + adds r0, r4, #0 + movs r1, #0x2d + bl GetBoxMonData + cmp r0, #0 + beq _080C6FA8 +_080C6FE8: + asrs r0, r6, #0x10 + adds r0, r5, r0 + lsls r0, r0, #0x10 + asrs r2, r0, #0x10 + cmp r2, #0 + blt _080C6FF8 + cmp r2, r7 + ble _080C6FC4 +_080C6FF8: + movs r0, #1 + rsbs r0, r0, #0 +_080C6FFC: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end StorageSystemGetNextMonIndex + + thumb_func_start ResetPokemonStorageSystem +ResetPokemonStorageSystem: @ 0x080C7008 + push {r4, r5, r6, lr} + movs r0, #0 + bl SetCurrentBox + movs r5, #0 +_080C7012: + movs r4, #0 + lsls r6, r5, #0x18 +_080C7016: + lsls r1, r4, #0x18 + lsrs r1, r1, #0x18 + lsrs r0, r6, #0x18 + bl ZeroBoxMonAt + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x1d + bls _080C7016 + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0xd + bls _080C7012 + movs r5, #0 +_080C7036: + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + bl GetBoxNamePtr + ldr r1, _080C707C + bl StringCopy + adds r4, r5, #1 + adds r1, r4, #0 + movs r2, #0 + movs r3, #2 + bl ConvertIntToDecimalStringN + lsls r4, r4, #0x10 + lsrs r5, r4, #0x10 + cmp r5, #0xd + bls _080C7036 + movs r5, #0 +_080C705A: + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + movs r1, #3 + ands r1, r5 + bl SetBoxWallpaper + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0xd + bls _080C705A + bl ResetWaldaWallpaper + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080C707C: .4byte 0x085CB584 + thumb_func_end ResetPokemonStorageSystem + + thumb_func_start sub_080C7080 +sub_080C7080: @ 0x080C7080 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x20 + adds r5, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r6, r1, #0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + adds r7, r2, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r8, r3 + ldr r0, _080C7114 + str r0, [sp, #0x18] + ldr r1, _080C7118 + add r4, sp, #0x18 + ldr r0, [r4, #4] + ands r0, r1 + orrs r0, r7 + str r0, [r4, #4] + mov r1, sp + ldr r0, _080C711C + str r0, [sp] + movs r0, #0x80 + lsls r0, r0, #4 + strh r0, [r1, #4] + strh r6, [r1, #6] + ldr r0, _080C7120 + str r0, [sp, #8] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1, #0xc] + adds r0, r6, #1 + strh r0, [r1, #0xe] + add r0, sp, #0x10 + movs r1, #0 + movs r2, #8 + bl memset + ldr r0, [sp, #0x38] + cmp r0, #0 + beq _080C70DE + adds r0, r4, #0 + bl LoadSpritePalette +_080C70DE: + mov r0, sp + bl LoadSpriteSheets + ldr r0, _080C7124 + str r5, [r0] + movs r1, #0x90 + lsls r1, r1, #2 + adds r0, r5, r1 + strh r6, [r0] + adds r1, #2 + adds r0, r5, r1 + strh r7, [r0] + adds r1, #4 + adds r0, r5, r1 + mov r1, r8 + strb r1, [r0] + movs r1, #0x8f + lsls r1, r1, #2 + adds r0, r5, r1 + ldr r1, [sp, #0x38] + str r1, [r0] + add sp, #0x20 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080C7114: .4byte 0x0854B25C +_080C7118: .4byte 0xFFFF0000 +_080C711C: .4byte 0x0854B27C +_080C7120: .4byte 0x0854BA7C +_080C7124: .4byte 0x020399A4 + thumb_func_end sub_080C7080 + + thumb_func_start sub_080C7128 +sub_080C7128: @ 0x080C7128 + push {r4, r5, lr} + ldr r5, _080C7168 + ldr r1, [r5] + movs r2, #0x8f + lsls r2, r2, #2 + adds r0, r1, r2 + ldr r0, [r0] + cmp r0, #0 + beq _080C7144 + adds r2, #6 + adds r0, r1, r2 + ldrh r0, [r0] + bl FreeSpritePaletteByTag +_080C7144: + ldr r0, [r5] + movs r4, #0x90 + lsls r4, r4, #2 + adds r0, r0, r4 + ldrh r0, [r0] + bl FreeSpriteTilesByTag + ldr r0, [r5] + adds r0, r0, r4 + ldrh r0, [r0] + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl FreeSpriteTilesByTag + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080C7168: .4byte 0x020399A4 + thumb_func_end sub_080C7128 + + thumb_func_start sub_080C716C +sub_080C716C: @ 0x080C716C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_080C71F0 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080C716C + + thumb_func_start sub_080C717C +sub_080C717C: @ 0x080C717C + push {lr} + bl sub_080C73D0 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080C717C + + thumb_func_start HandleBoxChooseSelectionInput +HandleBoxChooseSelectionInput: @ 0x080C7188 + push {lr} + ldr r0, _080C71A0 + ldrh r1, [r0, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080C71A4 + movs r0, #5 + bl PlaySE + movs r0, #0xc9 + b _080C71EC + .align 2, 0 +_080C71A0: .4byte 0x03002360 +_080C71A4: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080C71C4 + movs r0, #5 + bl PlaySE + ldr r0, _080C71C0 + ldr r0, [r0] + movs r1, #0x91 + lsls r1, r1, #2 + adds r0, r0, r1 + ldrb r0, [r0] + b _080C71EC + .align 2, 0 +_080C71C0: .4byte 0x020399A4 +_080C71C4: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080C71D8 + movs r0, #5 + bl PlaySE + bl sub_080C7470 + b _080C71EA +_080C71D8: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080C71EA + movs r0, #5 + bl PlaySE + bl sub_080C743C +_080C71EA: + movs r0, #0xc8 +_080C71EC: + pop {r1} + bx r1 + thumb_func_end HandleBoxChooseSelectionInput + + thumb_func_start sub_080C71F0 +sub_080C71F0: @ 0x080C71F0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x3c + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r0, #0 + movs r1, #0 + str r0, [sp, #0x34] + str r1, [sp, #0x38] + movs r1, #0xc0 + lsls r1, r1, #0x18 + ldr r0, [sp, #0x34] + orrs r0, r1 + str r0, [sp, #0x34] + ldr r1, _080C73A4 + add r4, sp, #0x34 + ldr r0, [r4, #4] + ands r0, r1 + movs r1, #0x80 + lsls r1, r1, #5 + orrs r0, r1 + str r0, [r4, #4] + add r0, sp, #0x1c + mov r8, r0 + movs r1, #0 + strh r1, [r0] + mov r0, sp + adds r0, #0x1e + strh r1, [r0] + str r4, [sp, #0x20] + ldr r0, _080C73A8 + str r0, [sp, #0x24] + str r1, [sp, #0x28] + ldr r0, _080C73AC + str r0, [sp, #0x2c] + ldr r0, _080C73B0 + str r0, [sp, #0x30] + add r0, sp, #4 + mov r1, r8 + movs r2, #0x18 + bl memcpy + ldr r1, _080C73B4 + mov r0, r8 + movs r2, #4 + bl memcpy + ldr r6, _080C73B8 + ldr r0, [r6] + movs r1, #0x91 + lsls r1, r1, #2 + adds r0, r0, r1 + strb r5, [r0] + add r2, sp, #4 + ldr r1, [r6] + movs r5, #0x90 + lsls r5, r5, #2 + adds r0, r1, r5 + ldrh r0, [r0] + strh r0, [r2] + ldr r3, _080C73BC + adds r1, r1, r3 + ldrh r0, [r1] + strh r0, [r2, #2] + adds r0, r2, #0 + movs r1, #0xa0 + movs r2, #0x60 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r3, [r6] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080C73C0 + adds r0, r0, r1 + str r0, [r3] + ldrb r2, [r4, #1] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r4, #1] + ldrb r0, [r4, #3] + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r4, #3] + add r1, sp, #4 + adds r3, r3, r5 + ldrh r0, [r3] + adds r0, #1 + strh r0, [r1] + ldr r0, _080C73C4 + str r0, [sp, #0xc] + movs r4, #0 + mov r7, r8 +_080C72BC: + ldr r0, [r6] + ldr r1, _080C73C8 + adds r0, r0, r1 + ldrb r3, [r0] + add r0, sp, #4 + movs r1, #0x7c + movs r2, #0x50 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r2, [r6] + lsls r3, r4, #2 + adds r2, #4 + adds r2, r2, r3 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080C73C0 + adds r1, r0, r1 + str r1, [r2] + movs r5, #0 + movs r0, #2 + ands r0, r4 + cmp r0, #0 + beq _080C72F6 + movs r0, #0xc4 + strh r0, [r1, #0x20] + movs r5, #2 +_080C72F6: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _080C731A + ldr r1, [r6] + adds r1, #4 + adds r1, r1, r3 + ldr r2, [r1] + movs r0, #0x70 + strh r0, [r2, #0x22] + ldr r2, [r1] + ldrb r1, [r2, #3] + movs r0, #0x3f + ands r0, r1 + strb r0, [r2, #3] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_080C731A: + ldr r0, [r6] + adds r0, #4 + adds r0, r0, r3 + ldr r0, [r0] + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + bl StartSpriteAnim + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #3 + bls _080C72BC + movs r4, #0 + ldr r5, _080C73B8 +_080C7338: + lsls r0, r4, #3 + adds r0, r0, r4 + lsls r0, r0, #0x13 + movs r3, #0xf8 + lsls r3, r3, #0xf + adds r0, r0, r3 + lsrs r0, r0, #0x10 + lsls r2, r4, #0x18 + lsrs r2, r2, #0x18 + ldr r1, [r5] + ldr r3, _080C73C8 + adds r1, r1, r3 + ldrb r1, [r1] + str r1, [sp] + movs r1, #0x58 + movs r3, #0 + bl sub_080CCB64 + adds r2, r0, #0 + ldr r0, [r5] + lsls r1, r4, #2 + adds r0, #0x20 + adds r0, r0, r1 + str r2, [r0] + cmp r2, #0 + beq _080C7380 + movs r1, #1 + cmp r4, #0 + bne _080C7378 + movs r3, #1 + rsbs r3, r3, #0 + adds r1, r3, #0 +_080C7378: + strh r1, [r2, #0x2e] + ldr r1, [r0] + ldr r0, _080C73CC + str r0, [r1, #0x1c] +_080C7380: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #1 + bls _080C7338 + bl sub_080C74A0 + adds r0, r7, #0 + movs r1, #5 + movs r2, #3 + bl sub_080C7528 + add sp, #0x3c + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080C73A4: .4byte 0xFFFF0FFF +_080C73A8: .4byte 0x082BF304 +_080C73AC: .4byte 0x082BF310 +_080C73B0: .4byte 0x08007141 +_080C73B4: .4byte 0x0854B258 +_080C73B8: .4byte 0x020399A4 +_080C73BC: .4byte 0x00000242 +_080C73C0: .4byte 0x020205AC +_080C73C4: .4byte 0x0854B234 +_080C73C8: .4byte 0x00000246 +_080C73CC: .4byte 0x080C7591 + thumb_func_end sub_080C71F0 + + thumb_func_start sub_080C73D0 +sub_080C73D0: @ 0x080C73D0 + push {r4, r5, r6, lr} + ldr r4, _080C7438 + ldr r0, [r4] + ldr r0, [r0] + cmp r0, #0 + beq _080C73E6 + bl DestroySprite + ldr r1, [r4] + movs r0, #0 + str r0, [r1] +_080C73E6: + movs r5, #0 + adds r6, r4, #0 +_080C73EA: + ldr r0, [r6] + lsls r4, r5, #2 + adds r0, #4 + adds r0, r0, r4 + ldr r0, [r0] + cmp r0, #0 + beq _080C7406 + bl DestroySprite + ldr r0, [r6] + adds r0, #4 + adds r0, r0, r4 + movs r1, #0 + str r1, [r0] +_080C7406: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #3 + bls _080C73EA + movs r5, #0 +_080C7412: + ldr r0, _080C7438 + ldr r0, [r0] + lsls r1, r5, #2 + adds r0, #0x20 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #0 + beq _080C7426 + bl DestroySprite +_080C7426: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #1 + bls _080C7412 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080C7438: .4byte 0x020399A4 + thumb_func_end sub_080C73D0 + + thumb_func_start sub_080C743C +sub_080C743C: @ 0x080C743C + push {lr} + ldr r2, _080C746C + ldr r1, [r2] + movs r0, #0x91 + lsls r0, r0, #2 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xd + bls _080C7462 + ldr r0, [r2] + movs r1, #0x91 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] +_080C7462: + bl sub_080C74A0 + pop {r0} + bx r0 + .align 2, 0 +_080C746C: .4byte 0x020399A4 + thumb_func_end sub_080C743C + + thumb_func_start sub_080C7470 +sub_080C7470: @ 0x080C7470 + push {lr} + ldr r0, _080C7488 + ldr r2, [r0] + movs r1, #0x91 + lsls r1, r1, #2 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _080C748C + subs r1, r0, #1 + b _080C748E + .align 2, 0 +_080C7488: .4byte 0x020399A4 +_080C748C: + movs r1, #0xd +_080C748E: + movs r3, #0x91 + lsls r3, r3, #2 + adds r0, r2, r3 + strb r1, [r0] + bl sub_080C74A0 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080C7470 + + thumb_func_start sub_080C74A0 +sub_080C74A0: @ 0x080C74A0 + push {r4, r5, r6, r7, lr} + ldr r6, _080C7524 + ldr r0, [r6] + movs r5, #0x91 + lsls r5, r5, #2 + adds r0, r0, r5 + ldrb r0, [r0] + bl CountMonsInBox + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, [r6] + movs r1, #0x8a + lsls r1, r1, #2 + adds r4, r0, r1 + adds r0, r0, r5 + ldrb r0, [r0] + bl GetBoxNamePtr + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCopy + adds r1, r0, #0 + ldr r0, [r6] + movs r2, #0x8c + lsls r2, r2, #2 + adds r0, r0, r2 + cmp r1, r0 + bhs _080C74EC + movs r4, #0 + adds r3, r6, #0 +_080C74E0: + strb r4, [r1] + adds r1, #1 + ldr r0, [r3] + adds r0, r0, r2 + cmp r1, r0 + blo _080C74E0 +_080C74EC: + movs r0, #0xff + strb r0, [r1] + ldr r5, _080C7524 + ldr r0, [r5] + movs r4, #0x8a + lsls r4, r4, #2 + adds r0, r0, r4 + movs r1, #0 + movs r2, #1 + bl sub_080C7528 + ldr r0, [r5] + adds r0, r0, r4 + adds r1, r7, #0 + movs r2, #1 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r0, [r5] + adds r0, r0, r4 + movs r1, #3 + movs r2, #3 + bl sub_080C7528 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080C7524: .4byte 0x020399A4 + thumb_func_end sub_080C74A0 + + thumb_func_start sub_080C7528 +sub_080C7528: @ 0x080C7528 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0xc + mov r8, r0 + adds r5, r1, #0 + adds r4, r2, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r6, _080C7588 + ldr r0, [r6] + movs r1, #0x90 + lsls r1, r1, #2 + adds r0, r0, r1 + ldrh r0, [r0] + bl GetSpriteTileStartByTag + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0xb + lsls r4, r4, #8 + ldr r0, _080C758C + adds r4, r4, r0 + adds r1, r1, r4 + lsls r5, r5, #5 + adds r1, r1, r5 + movs r2, #0x80 + lsls r2, r2, #1 + movs r0, #0xf + str r0, [sp] + movs r0, #0xe + str r0, [sp, #4] + ldr r0, [r6] + adds r0, #0x28 + str r0, [sp, #8] + mov r0, r8 + movs r3, #4 + bl sub_080C6738 + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080C7588: .4byte 0x020399A4 +_080C758C: .4byte 0x06010000 + thumb_func_end sub_080C7528 + + thumb_func_start sub_080C7590 +sub_080C7590: @ 0x080C7590 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0x30] + adds r0, #1 + movs r2, #0 + strh r0, [r1, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + ble _080C75C0 + strh r2, [r1, #0x30] + ldrh r0, [r1, #0x2e] + ldrh r3, [r1, #0x24] + adds r0, r0, r3 + strh r0, [r1, #0x24] + ldrh r0, [r1, #0x32] + adds r0, #1 + strh r0, [r1, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #5 + ble _080C75C0 + strh r2, [r1, #0x32] + strh r2, [r1, #0x24] +_080C75C0: + pop {r0} + bx r0 + thumb_func_end sub_080C7590 + + thumb_func_start VblankCb_PSS +VblankCb_PSS: @ 0x080C75C4 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl sub_080D2344 + bl TransferPlttBuffer + ldr r0, _080C75EC + ldr r0, [r0] + movs r1, #0xb3 + lsls r1, r1, #2 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x18 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 +_080C75EC: .4byte 0x020399A8 + thumb_func_end VblankCb_PSS + + thumb_func_start Cb2_PSS +Cb2_PSS: @ 0x080C75F0 + push {lr} + bl RunTasks + bl do_scheduled_bg_tilemap_copies_to_vram + bl ScrollBackground + bl sub_080CA278 + bl AnimateSprites + bl BuildOamBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Cb2_PSS + + thumb_func_start Cb2_EnterPSS +Cb2_EnterPSS: @ 0x080C7610 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + bl ResetTasks + ldr r0, _080C7634 + strb r5, [r0] + ldr r4, _080C7638 + ldr r0, _080C763C + bl Alloc + str r0, [r4] + cmp r0, #0 + bne _080C7644 + ldr r0, _080C7640 + bl SetMainCallback2 + b _080C7670 + .align 2, 0 +_080C7634: .4byte 0x020399AD +_080C7638: .4byte 0x020399A8 +_080C763C: .4byte 0x000062C4 +_080C7640: .4byte 0x080C6F11 +_080C7644: + movs r2, #0 + strb r5, [r0, #1] + ldr r0, [r4] + strb r2, [r0, #3] + ldr r0, _080C7678 + movs r1, #0 + strh r2, [r0] + ldr r0, [r4] + strb r1, [r0] + ldr r0, _080C767C + movs r1, #3 + bl CreateTask + ldr r1, [r4] + strb r0, [r1, #4] + bl StorageGetCurrentBox + ldr r1, _080C7680 + strb r0, [r1] + ldr r0, _080C7684 + bl SetMainCallback2 +_080C7670: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080C7678: .4byte 0x020399B2 +_080C767C: .4byte 0x080C7845 +_080C7680: .4byte 0x020399B0 +_080C7684: .4byte 0x080C75F1 + thumb_func_end Cb2_EnterPSS + + thumb_func_start Cb2_ReturnToPSS +Cb2_ReturnToPSS: @ 0x080C7688 + push {r4, lr} + bl ResetTasks + ldr r4, _080C76A8 + ldr r0, _080C76AC + bl Alloc + adds r1, r0, #0 + str r1, [r4] + cmp r1, #0 + bne _080C76B4 + ldr r0, _080C76B0 + bl SetMainCallback2 + b _080C76D8 + .align 2, 0 +_080C76A8: .4byte 0x020399A8 +_080C76AC: .4byte 0x000062C4 +_080C76B0: .4byte 0x080C6F11 +_080C76B4: + ldr r0, _080C76E0 + ldrb r0, [r0] + movs r2, #0 + strb r0, [r1, #1] + ldr r1, [r4] + movs r0, #1 + strb r0, [r1, #3] + ldr r0, [r4] + strb r2, [r0] + ldr r0, _080C76E4 + movs r1, #3 + bl CreateTask + ldr r1, [r4] + strb r0, [r1, #4] + ldr r0, _080C76E8 + bl SetMainCallback2 +_080C76D8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C76E0: .4byte 0x020399AD +_080C76E4: .4byte 0x080C7845 +_080C76E8: .4byte 0x080C75F1 + thumb_func_end Cb2_ReturnToPSS + + thumb_func_start ResetAllBgCoords +ResetAllBgCoords: @ 0x080C76EC + push {lr} + movs r0, #0x10 + movs r1, #0 + bl SetGpuReg + movs r0, #0x12 + movs r1, #0 + bl SetGpuReg + movs r0, #0x14 + movs r1, #0 + bl SetGpuReg + movs r0, #0x16 + movs r1, #0 + bl SetGpuReg + movs r0, #0x18 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1a + movs r1, #0 + bl SetGpuReg + movs r0, #0x1c + movs r1, #0 + bl SetGpuReg + movs r0, #0x1e + movs r1, #0 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ResetAllBgCoords + + thumb_func_start sub_080C7734 +sub_080C7734: @ 0x080C7734 + push {r4, lr} + sub sp, #4 + bl ResetPaletteFade + bl ResetSpriteData + bl FreeSpriteTileRanges + bl FreeAllSpritePalettes + bl ClearDma3Requests + ldr r1, _080C77A4 + movs r2, #0xa0 + lsls r2, r2, #2 + adds r0, r2, #0 + strh r0, [r1] + ldr r4, _080C77A8 + ldr r1, [r4] + adds r0, r1, #0 + adds r0, #8 + adds r1, #0x10 + movs r2, #8 + bl sub_080D2330 + ldr r1, _080C77AC + movs r0, #0x14 + strh r0, [r1] + bl clear_scheduled_bg_copies_to_vram + movs r0, #3 + bl sub_080D1E3C + ldr r2, _080C77B0 + movs r0, #4 + str r0, [sp] + movs r0, #0 + movs r1, #1 + movs r3, #8 + bl sub_080D1EE4 + movs r0, #0 + movs r1, #1 + movs r2, #0 + bl sub_080D2010 + ldr r0, [r4] + ldr r1, _080C77B4 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C77A4: .4byte 0x02021AB6 +_080C77A8: .4byte 0x020399A8 +_080C77AC: .4byte 0x03002350 +_080C77B0: .4byte 0x0854BEBC +_080C77B4: .4byte 0x000002C7 + thumb_func_end sub_080C7734 + + thumb_func_start sub_080C77B8 +sub_080C77B8: @ 0x080C77B8 + push {lr} + bl sub_080CD488 + ldr r2, _080C77DC + movs r1, #0 + ldr r0, _080C77E0 + ldr r0, [r0] + ldrb r0, [r0, #1] + cmp r0, #1 + bne _080C77CE + movs r1, #1 +_080C77CE: + strb r1, [r2] + ldr r1, _080C77E4 + movs r0, #0 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080C77DC: .4byte 0x020399AC +_080C77E0: .4byte 0x020399A8 +_080C77E4: .4byte 0x020399AE + thumb_func_end sub_080C77B8 + + thumb_func_start sub_080C77E8 +sub_080C77E8: @ 0x080C77E8 + push {lr} + ldr r0, _080C7814 + ldr r0, [r0] + ldrb r0, [r0, #1] + cmp r0, #3 + bne _080C7806 + movs r1, #0xfc + lsls r1, r1, #6 + movs r0, #0x50 + bl SetGpuReg + ldr r1, _080C7818 + movs r0, #0x52 + bl SetGpuReg +_080C7806: + movs r1, #0xfa + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 +_080C7814: .4byte 0x020399A8 +_080C7818: .4byte 0x00000B07 + thumb_func_end sub_080C77E8 + + thumb_func_start SetPSSCallback +SetPSSCallback: @ 0x080C781C + push {r4, lr} + ldr r4, _080C783C + ldr r1, _080C7840 + ldr r3, [r1] + ldrb r2, [r3, #4] + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r4 + str r0, [r1] + movs r0, #0 + strb r0, [r3] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C783C: .4byte 0x03005B60 +_080C7840: .4byte 0x020399A8 + thumb_func_end SetPSSCallback + + thumb_func_start Cb_InitPSS +Cb_InitPSS: @ 0x080C7844 + push {lr} + sub sp, #4 + ldr r0, _080C7860 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #0xa + bls _080C7854 + b _080C7A3E +_080C7854: + lsls r0, r0, #2 + ldr r1, _080C7864 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C7860: .4byte 0x020399A8 +_080C7864: .4byte 0x080C7868 +_080C7868: @ jump table + .4byte _080C7894 @ case 0 + .4byte _080C78EC @ case 1 + .4byte _080C78FA @ case 2 + .4byte _080C7928 @ case 3 + .4byte _080C7944 @ case 4 + .4byte _080C7962 @ case 5 + .4byte _080C7982 @ case 6 + .4byte _080C7988 @ case 7 + .4byte _080C798E @ case 8 + .4byte _080C799C @ case 9 + .4byte _080C79E6 @ case 10 +_080C7894: + movs r0, #0 + bl SetVBlankCallback + movs r0, #0 + movs r1, #0 + bl SetGpuReg + bl sub_080C7734 + ldr r0, _080C78C4 + ldr r0, [r0] + ldrb r0, [r0, #3] + cmp r0, #0 + beq _080C78E2 + ldr r0, _080C78C8 + ldrb r0, [r0] + cmp r0, #1 + beq _080C78D2 + cmp r0, #1 + bgt _080C78CC + cmp r0, #0 + beq _080C78D8 + b _080C78E2 + .align 2, 0 +_080C78C4: .4byte 0x020399A8 +_080C78C8: .4byte 0x020399AF +_080C78CC: + cmp r0, #2 + beq _080C78DE + b _080C78E2 +_080C78D2: + bl sub_080CE00C + b _080C78E2 +_080C78D8: + bl sub_080CE160 + b _080C78E2 +_080C78DE: + bl GiveChosenBagItem +_080C78E2: + bl LoadPSSMenuGfx + bl LoadWaveformSpritePalette + b _080C7A34 +_080C78EC: + bl InitPSSWindows + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C78F8 + b _080C7A34 +_080C78F8: + b _080C796C +_080C78FA: + movs r0, #0 + bl PutWindowTilemap + movs r0, #1 + bl ClearWindowTilemap + movs r0, #0 + str r0, [sp] + movs r1, #0xc0 + lsls r1, r1, #0x13 + ldr r2, _080C7924 + mov r0, sp + bl CpuSet + movs r0, #1 + movs r1, #0xb + movs r2, #0xe0 + bl LoadUserWindowBorderGfx + b _080C7A34 + .align 2, 0 +_080C7924: .4byte 0x05000080 +_080C7928: + bl ResetAllBgCoords + ldr r0, _080C7940 + ldr r0, [r0] + ldrb r0, [r0, #3] + cmp r0, #0 + beq _080C7938 + b _080C7A34 +_080C7938: + bl sub_080C77B8 + b _080C7A34 + .align 2, 0 +_080C7940: .4byte 0x020399A8 +_080C7944: + bl sub_080CA778 + ldr r0, _080C7958 + ldr r0, [r0] + ldrb r0, [r0, #3] + cmp r0, #0 + bne _080C795C + bl sub_080CCBE8 + b _080C7A34 + .align 2, 0 +_080C7958: .4byte 0x020399A8 +_080C795C: + bl sub_080CCC68 + b _080C7A34 +_080C7962: + bl sub_080CFA04 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C7978 +_080C796C: + ldr r0, _080C7974 + bl SetPSSCallback + b _080C7A3E + .align 2, 0 +_080C7974: .4byte 0x080C96ED +_080C7978: + bl SetScrollingBackground + bl sub_080CA480 + b _080C7A34 +_080C7982: + bl sub_080C994C + b _080C7A34 +_080C7988: + bl sub_080C9F68 + b _080C7A34 +_080C798E: + bl StorageGetCurrentBox + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_080CBBA0 + b _080C7A34 +_080C799C: + bl sub_080CBBD0 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C7A3E + ldr r0, _080C79CC + ldr r2, [r0] + ldrb r0, [r2, #1] + cmp r0, #3 + beq _080C79DC + ldr r1, _080C79D0 + adds r0, r2, r1 + movs r1, #0xd + strh r1, [r0] + ldr r1, _080C79D4 + adds r2, r2, r1 + ldr r1, _080C79D8 + strh r1, [r2] + bl unref_sub_811BBF4 + bl sub_0811FFB0 + b _080C7A34 + .align 2, 0 +_080C79CC: .4byte 0x020399A8 +_080C79D0: .4byte 0x00000DA4 +_080C79D4: .4byte 0x00000DA6 +_080C79D8: .4byte 0x0000DACE +_080C79DC: + bl sub_080D0500 + bl sub_080CA720 + b _080C7A34 +_080C79E6: + bl sub_080C77E8 + ldr r0, _080C7A08 + ldr r0, [r0] + ldrb r0, [r0, #3] + cmp r0, #0 + bne _080C7A10 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + ldr r0, _080C7A0C + bl SetPSSCallback + b _080C7A22 + .align 2, 0 +_080C7A08: .4byte 0x020399A8 +_080C7A0C: .4byte 0x080C7A49 +_080C7A10: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + ldr r0, _080C7A2C + bl SetPSSCallback +_080C7A22: + ldr r0, _080C7A30 + bl SetVBlankCallback + b _080C7A3E + .align 2, 0 +_080C7A2C: .4byte 0x080C7A95 +_080C7A30: .4byte 0x080C75C5 +_080C7A34: + ldr r0, _080C7A44 + ldr r1, [r0] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_080C7A3E: + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_080C7A44: .4byte 0x020399A8 + thumb_func_end Cb_InitPSS + + thumb_func_start Cb_ShowPSS +Cb_ShowPSS: @ 0x080C7A48 + push {r4, lr} + ldr r4, _080C7A5C + ldr r0, [r4] + ldrb r0, [r0] + cmp r0, #0 + beq _080C7A60 + cmp r0, #1 + beq _080C7A7A + b _080C7A8A + .align 2, 0 +_080C7A5C: .4byte 0x020399A8 +_080C7A60: + movs r0, #2 + bl PlaySE + movs r0, #0x14 + movs r1, #0 + movs r2, #1 + bl sub_080FA43C + ldr r1, [r4] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080C7A8A +_080C7A7A: + bl sub_080FA48C + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C7A8A + ldr r0, _080C7A90 + bl SetPSSCallback +_080C7A8A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C7A90: .4byte 0x080C7B49 + thumb_func_end Cb_ShowPSS + + thumb_func_start Cb_ReshowPSS +Cb_ReshowPSS: @ 0x080C7A94 + push {r4, lr} + sub sp, #4 + ldr r4, _080C7AAC + ldr r0, [r4] + ldrb r0, [r0] + cmp r0, #1 + beq _080C7ACC + cmp r0, #1 + bgt _080C7AB0 + cmp r0, #0 + beq _080C7ABA + b _080C7B3C + .align 2, 0 +_080C7AAC: .4byte 0x020399A8 +_080C7AB0: + cmp r0, #2 + beq _080C7B04 + cmp r0, #3 + beq _080C7B2C + b _080C7B3C +_080C7ABA: + movs r1, #1 + rsbs r1, r1, #0 + str r0, [sp] + adds r0, r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + b _080C7B1E +_080C7ACC: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C7B3C + ldr r0, _080C7AF0 + ldrb r0, [r0] + cmp r0, #2 + bne _080C7AF8 + ldr r0, _080C7AF4 + ldrh r0, [r0] + cmp r0, #0 + beq _080C7AF8 + movs r0, #0x1c + bl PrintStorageActionText + b _080C7B1E + .align 2, 0 +_080C7AF0: .4byte 0x020399AF +_080C7AF4: .4byte 0x0203CB48 +_080C7AF8: + ldr r0, _080C7B00 + bl SetPSSCallback + b _080C7B3C + .align 2, 0 +_080C7B00: .4byte 0x080C7B49 +_080C7B04: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C7B3C + ldr r0, _080C7B28 + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _080C7B3C + bl ClearBottomWindow +_080C7B1E: + ldr r1, [r4] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080C7B3C + .align 2, 0 +_080C7B28: .4byte 0x03002360 +_080C7B2C: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C7B3C + ldr r0, _080C7B44 + bl SetPSSCallback +_080C7B3C: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C7B44: .4byte 0x080C7B49 + thumb_func_end Cb_ReshowPSS + + thumb_func_start Cb_MainPSS +Cb_MainPSS: @ 0x080C7B48 + push {r4, r5, lr} + ldr r0, _080C7B60 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #0xb + bls _080C7B56 + b _080C803A +_080C7B56: + lsls r0, r0, #2 + ldr r1, _080C7B64 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C7B60: .4byte 0x020399A8 +_080C7B64: .4byte 0x080C7B68 +_080C7B68: @ jump table + .4byte _080C7B98 @ case 0 + .4byte _080C7EB8 @ case 1 + .4byte _080C7EF8 @ case 2 + .4byte _080C7F50 @ case 3 + .4byte _080C7F74 @ case 4 + .4byte _080C7F7E @ case 5 + .4byte _080C7F98 @ case 6 + .4byte _080C7FB8 @ case 7 + .4byte _080C7FBE @ case 8 + .4byte _080C7FD4 @ case 9 + .4byte _080C8000 @ case 10 + .4byte _080C8028 @ case 11 +_080C7B98: + bl sub_080CF268 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, #1 + cmp r0, #0x19 + bls _080C7BA8 + b _080C803A +_080C7BA8: + lsls r0, r0, #2 + ldr r1, _080C7BB4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C7BB4: .4byte 0x080C7BB8 +_080C7BB8: @ jump table + .4byte _080C7C20 @ case 0 + .4byte _080C803A @ case 1 + .4byte _080C803A @ case 2 + .4byte _080C7CB0 @ case 3 + .4byte _080C7C34 @ case 4 + .4byte _080C7C68 @ case 5 + .4byte _080C7CC8 @ case 6 + .4byte _080C7CDC @ case 7 + .4byte _080C7CE8 @ case 8 + .4byte _080C7D20 @ case 9 + .4byte _080C7D64 @ case 10 + .4byte _080C7DE8 @ case 11 + .4byte _080C7DA8 @ case 12 + .4byte _080C7DBA @ case 13 + .4byte _080C7DFC @ case 14 + .4byte _080C7E10 @ case 15 + .4byte _080C7E24 @ case 16 + .4byte _080C7E38 @ case 17 + .4byte _080C7CBC @ case 18 + .4byte _080C7E4C @ case 19 + .4byte _080C7E6C @ case 20 + .4byte _080C7E56 @ case 21 + .4byte _080C7E76 @ case 22 + .4byte _080C7EB0 @ case 23 + .4byte _080C7E7A @ case 24 + .4byte _080C7E94 @ case 25 +_080C7C20: + movs r0, #5 + bl PlaySE + ldr r0, _080C7C30 + ldr r1, [r0] + movs r0, #1 + strb r0, [r1] + b _080C803A + .align 2, 0 +_080C7C30: .4byte 0x020399A8 +_080C7C34: + ldr r4, _080C7C54 + ldr r0, [r4] + ldrb r0, [r0, #1] + subs r0, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _080C7C58 + movs r0, #0x10 + bl PrintStorageActionText + ldr r1, [r4] + movs r0, #3 + strb r0, [r1] + b _080C803A + .align 2, 0 +_080C7C54: .4byte 0x020399A8 +_080C7C58: + bl sub_080CD488 + ldr r0, _080C7C64 + bl SetPSSCallback + b _080C803A + .align 2, 0 +_080C7C64: .4byte 0x080C8045 +_080C7C68: + ldr r4, _080C7C94 + ldr r0, [r4] + ldrb r0, [r0, #1] + cmp r0, #2 + bne _080C7C9C + bl GetBoxCursorPosition + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C7CA2 + ldr r0, [r4] + ldr r1, _080C7C98 + adds r0, r0, r1 + ldrh r0, [r0] + bl ItemIsMail + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C7C90 + b _080C7D82 +_080C7C90: + b _080C7CA2 + .align 2, 0 +_080C7C94: .4byte 0x020399A8 +_080C7C98: .4byte 0x00000CE6 +_080C7C9C: + cmp r0, #3 + beq _080C7CA2 + b _080C803A +_080C7CA2: + ldr r0, _080C7CAC + bl SetPSSCallback + b _080C803A + .align 2, 0 +_080C7CAC: .4byte 0x080C8085 +_080C7CB0: + ldr r0, _080C7CB8 + bl SetPSSCallback + b _080C803A + .align 2, 0 +_080C7CB8: .4byte 0x080C9485 +_080C7CBC: + ldr r0, _080C7CC4 + bl SetPSSCallback + b _080C803A + .align 2, 0 +_080C7CC4: .4byte 0x080C95B9 +_080C7CC8: + movs r0, #5 + bl PlaySE + ldr r0, _080C7CD8 + bl SetPSSCallback + b _080C803A + .align 2, 0 +_080C7CD8: .4byte 0x080C8FC9 +_080C7CDC: + ldr r0, _080C7CE4 + bl SetPSSCallback + b _080C803A + .align 2, 0 +_080C7CE4: .4byte 0x080C8101 +_080C7CE8: + movs r0, #5 + bl PlaySE + bl StorageGetCurrentBox + ldr r4, _080C7D18 + ldr r1, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #1 + ldr r2, _080C7D1C + adds r1, r1, r2 + strh r0, [r1] + cmp r0, #0xd + ble _080C7D0A + movs r0, #0 + strh r0, [r1] +_080C7D0A: + ldr r1, [r4] + ldrb r0, [r1, #1] + cmp r0, #3 + beq _080C7D58 + adds r0, r1, r2 + b _080C8012 + .align 2, 0 +_080C7D18: .4byte 0x020399A8 +_080C7D1C: .4byte 0x000002CA +_080C7D20: + movs r0, #5 + bl PlaySE + bl StorageGetCurrentBox + ldr r4, _080C7D50 + ldr r1, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, #1 + ldr r2, _080C7D54 + adds r1, r1, r2 + strh r0, [r1] + cmp r0, #0 + bge _080C7D42 + movs r0, #0xd + strh r0, [r1] +_080C7D42: + ldr r1, [r4] + ldrb r0, [r1, #1] + cmp r0, #3 + beq _080C7D58 + adds r0, r1, r2 + b _080C8012 + .align 2, 0 +_080C7D50: .4byte 0x020399A8 +_080C7D54: .4byte 0x000002CA +_080C7D58: + bl sub_080CF724 + ldr r1, [r4] + movs r0, #0xa + strb r0, [r1] + b _080C803A +_080C7D64: + bl CanMovePartyMon + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C7DC4 + ldr r4, _080C7D8C + ldr r0, [r4] + ldr r1, _080C7D90 + adds r0, r0, r1 + ldrh r0, [r0] + bl ItemIsMail + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C7D94 +_080C7D82: + ldr r1, [r4] + movs r0, #5 + strb r0, [r1] + b _080C803A + .align 2, 0 +_080C7D8C: .4byte 0x020399A8 +_080C7D90: .4byte 0x00000CE6 +_080C7D94: + movs r0, #5 + bl PlaySE + ldr r0, _080C7DA4 + bl SetPSSCallback + b _080C803A + .align 2, 0 +_080C7DA4: .4byte 0x080C8615 +_080C7DA8: + bl CanMovePartyMon + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C7DC4 + movs r0, #5 + bl PlaySE + b _080C7FC8 +_080C7DBA: + bl CanShiftMon + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C7DD4 +_080C7DC4: + ldr r0, _080C7DD0 + ldr r1, [r0] + movs r0, #4 + strb r0, [r1] + b _080C803A + .align 2, 0 +_080C7DD0: .4byte 0x020399A8 +_080C7DD4: + movs r0, #5 + bl PlaySE + ldr r0, _080C7DE4 + bl SetPSSCallback + b _080C803A + .align 2, 0 +_080C7DE4: .4byte 0x080C84E5 +_080C7DE8: + movs r0, #5 + bl PlaySE + ldr r0, _080C7DF8 + bl SetPSSCallback + b _080C803A + .align 2, 0 +_080C7DF8: .4byte 0x080C852D +_080C7DFC: + movs r0, #5 + bl PlaySE + ldr r0, _080C7E0C + bl SetPSSCallback + b _080C803A + .align 2, 0 +_080C7E0C: .4byte 0x080C8489 +_080C7E10: + movs r0, #5 + bl PlaySE + ldr r0, _080C7E20 + bl SetPSSCallback + b _080C803A + .align 2, 0 +_080C7E20: .4byte 0x080C89C5 +_080C7E24: + movs r0, #5 + bl PlaySE + ldr r0, _080C7E34 + bl SetPSSCallback + b _080C803A + .align 2, 0 +_080C7E34: .4byte 0x080C8A79 +_080C7E38: + movs r0, #5 + bl PlaySE + ldr r0, _080C7E48 + bl SetPSSCallback + b _080C803A + .align 2, 0 +_080C7E48: .4byte 0x080C8C4D +_080C7E4C: + movs r0, #5 + bl PlaySE + movs r0, #0 + b _080C7E9C +_080C7E56: + movs r0, #1 + bl sub_080CFA70 + ldr r0, _080C7E68 + ldr r1, [r0] + movs r0, #8 + strb r0, [r1] + b _080C803A + .align 2, 0 +_080C7E68: .4byte 0x020399A8 +_080C7E6C: + movs r0, #5 + bl PlaySE + movs r0, #2 + b _080C7E82 +_080C7E76: + movs r0, #3 + b _080C7E9C +_080C7E7A: + movs r0, #5 + bl PlaySE + movs r0, #4 +_080C7E82: + bl sub_080CFA70 + ldr r0, _080C7E90 + ldr r1, [r0] + movs r0, #9 + strb r0, [r1] + b _080C803A + .align 2, 0 +_080C7E90: .4byte 0x020399A8 +_080C7E94: + movs r0, #5 + bl PlaySE + movs r0, #5 +_080C7E9C: + bl sub_080CFA70 + ldr r0, _080C7EAC + ldr r1, [r0] + movs r0, #7 + strb r0, [r1] + b _080C803A + .align 2, 0 +_080C7EAC: .4byte 0x020399A8 +_080C7EB0: + movs r0, #0x20 + bl PlaySE + b _080C803A +_080C7EB8: + bl sub_080CCDD0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C7EC4 + b _080C803A +_080C7EC4: + bl IsCursorOnCloseBox + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C7ED4 + bl sub_080CA224 + b _080C7ED8 +_080C7ED4: + bl sub_080CA250 +_080C7ED8: + ldr r4, _080C7EF0 + ldr r0, [r4] + ldr r1, _080C7EF4 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _080C7EEA + bl BoxSetMosaic +_080C7EEA: + ldr r1, [r4] + b _080C7F64 + .align 2, 0 +_080C7EF0: .4byte 0x020399A8 +_080C7EF4: .4byte 0x00000CEA +_080C7EF8: + bl ScrollToBox + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C7F04 + b _080C803A +_080C7F04: + ldr r0, _080C7F44 + ldr r0, [r0] + ldr r1, _080C7F48 + adds r0, r0, r1 + ldrb r0, [r0] + bl SetCurrentBox + ldr r0, _080C7F4C + ldrb r0, [r0] + cmp r0, #0 + bne _080C7F2C + bl GetBoxCursorPosition + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C7F2C + bl sub_080CD888 + bl BoxSetMosaic +_080C7F2C: + ldr r4, _080C7F44 + ldr r1, [r4] + ldrb r0, [r1, #1] + cmp r0, #3 + bne _080C7F64 + bl sub_080CF748 + ldr r1, [r4] + movs r0, #0xb + strb r0, [r1] + b _080C803A + .align 2, 0 +_080C7F44: .4byte 0x020399A8 +_080C7F48: .4byte 0x000002CA +_080C7F4C: .4byte 0x020399AC +_080C7F50: + ldr r0, _080C7F6C + ldrh r1, [r0, #0x2e] + movs r0, #0xf3 + ands r0, r1 + cmp r0, #0 + beq _080C803A + bl ClearBottomWindow + ldr r0, _080C7F70 + ldr r1, [r0] +_080C7F64: + movs r0, #0 + strb r0, [r1] + b _080C803A + .align 2, 0 +_080C7F6C: .4byte 0x03002360 +_080C7F70: .4byte 0x020399A8 +_080C7F74: + movs r0, #0x20 + bl PlaySE + movs r0, #0xd + b _080C7F86 +_080C7F7E: + movs r0, #0x20 + bl PlaySE + movs r0, #0x16 +_080C7F86: + bl PrintStorageActionText + ldr r0, _080C7F94 + ldr r1, [r0] + movs r0, #6 + strb r0, [r1] + b _080C803A + .align 2, 0 +_080C7F94: .4byte 0x020399A8 +_080C7F98: + ldr r0, _080C7FB0 + ldrh r1, [r0, #0x2e] + movs r0, #0xf3 + ands r0, r1 + cmp r0, #0 + beq _080C803A + bl ClearBottomWindow + ldr r0, _080C7FB4 + bl SetPSSCallback + b _080C803A + .align 2, 0 +_080C7FB0: .4byte 0x03002360 +_080C7FB4: .4byte 0x080C7B49 +_080C7FB8: + bl sub_080CFA84 + b _080C802C +_080C7FBE: + bl sub_080CFA84 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C803A +_080C7FC8: + ldr r0, _080C7FD0 + bl SetPSSCallback + b _080C803A + .align 2, 0 +_080C7FD0: .4byte 0x080C842D +_080C7FD4: + bl sub_080CFA84 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _080C803A + ldr r5, _080C7FF8 + ldr r0, [r5] + ldr r1, _080C7FFC + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _080C7FF2 + bl BoxSetMosaic +_080C7FF2: + ldr r0, [r5] + strb r4, [r0] + b _080C803A + .align 2, 0 +_080C7FF8: .4byte 0x020399A8 +_080C7FFC: .4byte 0x00000CEA +_080C8000: + bl sub_080D0AB8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C803A + ldr r4, _080C8020 + ldr r0, [r4] + ldr r1, _080C8024 + adds r0, r0, r1 +_080C8012: + ldrb r0, [r0] + bl SetUpScrollToBox + ldr r1, [r4] + movs r0, #2 + strb r0, [r1] + b _080C803A + .align 2, 0 +_080C8020: .4byte 0x020399A8 +_080C8024: .4byte 0x000002CA +_080C8028: + bl sub_080D0AB8 +_080C802C: + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080C803A + ldr r0, _080C8040 + ldr r0, [r0] + strb r1, [r0] +_080C803A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080C8040: .4byte 0x020399A8 + thumb_func_end Cb_MainPSS + + thumb_func_start Cb_ShowPartyPokemon +Cb_ShowPartyPokemon: @ 0x080C8044 + push {r4, lr} + ldr r4, _080C8058 + ldr r0, [r4] + ldrb r0, [r0] + cmp r0, #0 + beq _080C805C + cmp r0, #1 + beq _080C806A + b _080C807A + .align 2, 0 +_080C8058: .4byte 0x020399A8 +_080C805C: + bl SetUpDoShowPartyMenu + ldr r1, [r4] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080C807A +_080C806A: + bl DoShowPartyMenu + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C807A + ldr r0, _080C8080 + bl SetPSSCallback +_080C807A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C8080: .4byte 0x080C7B49 + thumb_func_end Cb_ShowPartyPokemon + + thumb_func_start Cb_HidePartyPokemon +Cb_HidePartyPokemon: @ 0x080C8084 + push {r4, lr} + ldr r4, _080C809C + ldr r0, [r4] + ldrb r0, [r0] + cmp r0, #1 + beq _080C80B2 + cmp r0, #1 + bgt _080C80A0 + cmp r0, #0 + beq _080C80A6 + b _080C80F2 + .align 2, 0 +_080C809C: .4byte 0x020399A8 +_080C80A0: + cmp r0, #2 + beq _080C80D2 + b _080C80F2 +_080C80A6: + movs r0, #5 + bl PlaySE + bl SetUpHidePartyMenu + b _080C80C8 +_080C80B2: + bl HidePartyMenu + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C80F2 + bl sub_080CD4A8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_080CD474 +_080C80C8: + ldr r1, [r4] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080C80F2 +_080C80D2: + bl sub_080CCDD0 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C80F2 + ldr r0, [r4] + ldr r1, _080C80F8 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _080C80EC + bl BoxSetMosaic +_080C80EC: + ldr r0, _080C80FC + bl SetPSSCallback +_080C80F2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C80F8: .4byte 0x00000CEA +_080C80FC: .4byte 0x080C7B49 + thumb_func_end Cb_HidePartyPokemon + + thumb_func_start Cb_OnSelectedMon +Cb_OnSelectedMon: @ 0x080C8100 + push {r4, lr} + ldr r0, _080C8118 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #6 + bls _080C810E + b _080C841E +_080C810E: + lsls r0, r0, #2 + ldr r1, _080C811C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C8118: .4byte 0x020399A8 +_080C811C: .4byte 0x080C8120 +_080C8120: @ jump table + .4byte _080C813C @ case 0 + .4byte _080C81A0 @ case 1 + .4byte _080C81BC @ case 2 + .4byte _080C83D8 @ case 3 + .4byte _080C83EC @ case 4 + .4byte _080C83E2 @ case 5 + .4byte _080C8408 @ case 6 +_080C813C: + bl sub_080C9B2C + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C8148 + b _080C841E +_080C8148: + movs r0, #5 + bl PlaySE + ldr r4, _080C8160 + ldr r0, [r4] + ldrb r0, [r0, #1] + cmp r0, #3 + beq _080C8164 + movs r0, #4 + bl PrintStorageActionText + b _080C818E + .align 2, 0 +_080C8160: .4byte 0x020399A8 +_080C8164: + bl IsActiveItemMoving + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C817A + ldr r0, [r4] + ldr r1, _080C8184 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0 + beq _080C8188 +_080C817A: + movs r0, #0x17 + bl PrintStorageActionText + b _080C818E + .align 2, 0 +_080C8184: .4byte 0x00000CE6 +_080C8188: + movs r0, #0x18 + bl PrintStorageActionText +_080C818E: + bl AddMenu + ldr r0, _080C819C + ldr r1, [r0] + movs r0, #1 + strb r0, [r1] + b _080C841E + .align 2, 0 +_080C819C: .4byte 0x020399A8 +_080C81A0: + bl sub_080CF948 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C81AC + b _080C841E +_080C81AC: + ldr r0, _080C81B8 + ldr r1, [r0] + movs r0, #2 + strb r0, [r1] + b _080C841E + .align 2, 0 +_080C81B8: .4byte 0x020399A8 +_080C81BC: + bl sub_080CF94C + adds r0, #1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x12 + bls _080C81CC + b _080C841E +_080C81CC: + lsls r0, r0, #2 + ldr r1, _080C81D8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C81D8: .4byte 0x080C81DC +_080C81DC: @ jump table + .4byte _080C8228 @ case 0 + .4byte _080C8228 @ case 1 + .4byte _080C82A8 @ case 2 + .4byte _080C8290 @ case 3 + .4byte _080C8238 @ case 4 + .4byte _080C8270 @ case 5 + .4byte _080C8258 @ case 6 + .4byte _080C8348 @ case 7 + .4byte _080C82E4 @ case 8 + .4byte _080C835C @ case 9 + .4byte _080C841E @ case 10 + .4byte _080C841E @ case 11 + .4byte _080C841E @ case 12 + .4byte _080C8370 @ case 13 + .4byte _080C8384 @ case 14 + .4byte _080C83B8 @ case 15 + .4byte _080C83A4 @ case 16 + .4byte _080C8398 @ case 17 + .4byte _080C83CC @ case 18 +_080C8228: + bl ClearBottomWindow + ldr r0, _080C8234 + bl SetPSSCallback + b _080C841E + .align 2, 0 +_080C8234: .4byte 0x080C7B49 +_080C8238: + bl CanMovePartyMon + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C82EE + movs r0, #5 + bl PlaySE + bl ClearBottomWindow + ldr r0, _080C8254 + bl SetPSSCallback + b _080C841E + .align 2, 0 +_080C8254: .4byte 0x080C842D +_080C8258: + movs r0, #5 + bl PlaySE + bl ClearBottomWindow + ldr r0, _080C826C + bl SetPSSCallback + b _080C841E + .align 2, 0 +_080C826C: .4byte 0x080C8489 +_080C8270: + bl CanShiftMon + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C82EE + movs r0, #5 + bl PlaySE + bl ClearBottomWindow + ldr r0, _080C828C + bl SetPSSCallback + b _080C841E + .align 2, 0 +_080C828C: .4byte 0x080C84E5 +_080C8290: + movs r0, #5 + bl PlaySE + bl ClearBottomWindow + ldr r0, _080C82A4 + bl SetPSSCallback + b _080C841E + .align 2, 0 +_080C82A4: .4byte 0x080C852D +_080C82A8: + bl CanMovePartyMon + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C82EE + ldr r4, _080C82D8 + ldr r0, [r4] + ldr r2, _080C82DC + adds r0, r0, r2 + ldrh r0, [r0] + bl ItemIsMail + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C8328 + movs r0, #5 + bl PlaySE + bl ClearBottomWindow + ldr r0, _080C82E0 + bl SetPSSCallback + b _080C841E + .align 2, 0 +_080C82D8: .4byte 0x020399A8 +_080C82DC: .4byte 0x00000CE6 +_080C82E0: .4byte 0x080C8615 +_080C82E4: + bl CanMovePartyMon + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C82FC +_080C82EE: + ldr r0, _080C82F8 + ldr r1, [r0] + movs r0, #3 + strb r0, [r1] + b _080C841E + .align 2, 0 +_080C82F8: .4byte 0x020399A8 +_080C82FC: + ldr r4, _080C8310 + ldr r1, [r4] + ldr r2, _080C8314 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080C8318 + movs r0, #5 + strb r0, [r1] + b _080C841E + .align 2, 0 +_080C8310: .4byte 0x020399A8 +_080C8314: .4byte 0x00000CED +_080C8318: + ldr r2, _080C8330 + adds r0, r1, r2 + ldrh r0, [r0] + bl ItemIsMail + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C8334 +_080C8328: + ldr r1, [r4] + movs r0, #4 + strb r0, [r1] + b _080C841E + .align 2, 0 +_080C8330: .4byte 0x00000CE6 +_080C8334: + movs r0, #5 + bl PlaySE + ldr r0, _080C8344 + bl SetPSSCallback + b _080C841E + .align 2, 0 +_080C8344: .4byte 0x080C8751 +_080C8348: + movs r0, #5 + bl PlaySE + ldr r0, _080C8358 + bl SetPSSCallback + b _080C841E + .align 2, 0 +_080C8358: .4byte 0x080C93C5 +_080C835C: + movs r0, #5 + bl PlaySE + ldr r0, _080C836C + bl SetPSSCallback + b _080C841E + .align 2, 0 +_080C836C: .4byte 0x080C8941 +_080C8370: + movs r0, #5 + bl PlaySE + ldr r0, _080C8380 + bl SetPSSCallback + b _080C841E + .align 2, 0 +_080C8380: .4byte 0x080C89C5 +_080C8384: + movs r0, #5 + bl PlaySE + ldr r0, _080C8394 + bl SetPSSCallback + b _080C841E + .align 2, 0 +_080C8394: .4byte 0x080C8A79 +_080C8398: + ldr r0, _080C83A0 + bl SetPSSCallback + b _080C841E + .align 2, 0 +_080C83A0: .4byte 0x080C8B35 +_080C83A4: + movs r0, #5 + bl PlaySE + ldr r0, _080C83B4 + bl SetPSSCallback + b _080C841E + .align 2, 0 +_080C83B4: .4byte 0x080C8C4D +_080C83B8: + movs r0, #5 + bl PlaySE + ldr r0, _080C83C8 + bl SetPSSCallback + b _080C841E + .align 2, 0 +_080C83C8: .4byte 0x080C9425 +_080C83CC: + ldr r0, _080C83D4 + bl SetPSSCallback + b _080C841E + .align 2, 0 +_080C83D4: .4byte 0x080C8D35 +_080C83D8: + movs r0, #0x20 + bl PlaySE + movs r0, #0xd + b _080C83F4 +_080C83E2: + movs r0, #0x20 + bl PlaySE + movs r0, #0x11 + b _080C83F4 +_080C83EC: + movs r0, #0x20 + bl PlaySE + movs r0, #0x16 +_080C83F4: + bl PrintStorageActionText + ldr r0, _080C8404 + ldr r1, [r0] + movs r0, #6 + strb r0, [r1] + b _080C841E + .align 2, 0 +_080C8404: .4byte 0x020399A8 +_080C8408: + ldr r0, _080C8424 + ldrh r1, [r0, #0x2e] + movs r0, #0xf3 + ands r0, r1 + cmp r0, #0 + beq _080C841E + bl ClearBottomWindow + ldr r0, _080C8428 + bl SetPSSCallback +_080C841E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C8424: .4byte 0x03002360 +_080C8428: .4byte 0x080C7B49 + thumb_func_end Cb_OnSelectedMon + + thumb_func_start Cb_MoveMon +Cb_MoveMon: @ 0x080C842C + push {r4, lr} + ldr r4, _080C8440 + ldr r0, [r4] + ldrb r0, [r0] + cmp r0, #0 + beq _080C8444 + cmp r0, #1 + beq _080C8454 + b _080C847E + .align 2, 0 +_080C8440: .4byte 0x020399A8 +_080C8444: + movs r0, #0 + bl InitMonPlaceChange + ldr r1, [r4] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080C847E +_080C8454: + bl DoMonPlaceChange + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C847E + ldr r0, _080C8470 + ldrb r0, [r0] + cmp r0, #0 + beq _080C8478 + ldr r0, _080C8474 + bl SetPSSCallback + b _080C847E + .align 2, 0 +_080C8470: .4byte 0x020399AC +_080C8474: .4byte 0x080C8F0D +_080C8478: + ldr r0, _080C8484 + bl SetPSSCallback +_080C847E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C8484: .4byte 0x080C7B49 + thumb_func_end Cb_MoveMon + + thumb_func_start Cb_PlaceMon +Cb_PlaceMon: @ 0x080C8488 + push {r4, lr} + ldr r4, _080C849C + ldr r0, [r4] + ldrb r0, [r0] + cmp r0, #0 + beq _080C84A0 + cmp r0, #1 + beq _080C84B0 + b _080C84DA + .align 2, 0 +_080C849C: .4byte 0x020399A8 +_080C84A0: + movs r0, #1 + bl InitMonPlaceChange + ldr r1, [r4] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080C84DA +_080C84B0: + bl DoMonPlaceChange + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C84DA + ldr r0, _080C84CC + ldrb r0, [r0] + cmp r0, #0 + beq _080C84D4 + ldr r0, _080C84D0 + bl SetPSSCallback + b _080C84DA + .align 2, 0 +_080C84CC: .4byte 0x020399AC +_080C84D0: .4byte 0x080C8F0D +_080C84D4: + ldr r0, _080C84E0 + bl SetPSSCallback +_080C84DA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C84E0: .4byte 0x080C7B49 + thumb_func_end Cb_PlaceMon + + thumb_func_start Cb_ShiftMon +Cb_ShiftMon: @ 0x080C84E4 + push {r4, lr} + ldr r4, _080C84F8 + ldr r0, [r4] + ldrb r0, [r0] + cmp r0, #0 + beq _080C84FC + cmp r0, #1 + beq _080C850C + b _080C8520 + .align 2, 0 +_080C84F8: .4byte 0x020399A8 +_080C84FC: + movs r0, #2 + bl InitMonPlaceChange + ldr r1, [r4] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080C8520 +_080C850C: + bl DoMonPlaceChange + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C8520 + bl BoxSetMosaic + ldr r0, _080C8528 + bl SetPSSCallback +_080C8520: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C8528: .4byte 0x080C7B49 + thumb_func_end Cb_ShiftMon + + thumb_func_start Cb_WithdrawMon +Cb_WithdrawMon: @ 0x080C852C + push {lr} + ldr r0, _080C8544 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #5 + bhi _080C860A + lsls r0, r0, #2 + ldr r1, _080C8548 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C8544: .4byte 0x020399A8 +_080C8548: .4byte 0x080C854C +_080C854C: @ jump table + .4byte _080C8564 @ case 0 + .4byte _080C859C @ case 1 + .4byte _080C85BC @ case 2 + .4byte _080C85D2 @ case 3 + .4byte _080C85E4 @ case 4 + .4byte _080C8604 @ case 5 +_080C8564: + bl CalculatePlayerPartyCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #6 + bne _080C8584 + movs r0, #0xe + bl PrintStorageActionText + ldr r0, _080C8580 + ldr r1, [r0] + movs r0, #1 + strb r0, [r1] + b _080C860A + .align 2, 0 +_080C8580: .4byte 0x020399A8 +_080C8584: + bl sub_080CD494 + movs r0, #0 + bl InitMonPlaceChange + ldr r0, _080C8598 + ldr r1, [r0] + movs r0, #2 + strb r0, [r1] + b _080C860A + .align 2, 0 +_080C8598: .4byte 0x020399A8 +_080C859C: + ldr r0, _080C85B4 + ldrh r1, [r0, #0x2e] + movs r0, #0xf3 + ands r0, r1 + cmp r0, #0 + beq _080C860A + bl ClearBottomWindow + ldr r0, _080C85B8 + bl SetPSSCallback + b _080C860A + .align 2, 0 +_080C85B4: .4byte 0x03002360 +_080C85B8: .4byte 0x080C7B49 +_080C85BC: + bl DoMonPlaceChange + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C860A + movs r0, #1 + bl SetMovingMonPriority + bl SetUpDoShowPartyMenu + b _080C85F2 +_080C85D2: + bl DoShowPartyMenu + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C860A + movs r0, #1 + bl InitMonPlaceChange + b _080C85F2 +_080C85E4: + bl DoMonPlaceChange + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C860A + bl sub_080CA384 +_080C85F2: + ldr r0, _080C8600 + ldr r1, [r0] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080C860A + .align 2, 0 +_080C8600: .4byte 0x020399A8 +_080C8604: + ldr r0, _080C8610 + bl SetPSSCallback +_080C860A: + pop {r0} + bx r0 + .align 2, 0 +_080C8610: .4byte 0x080C8085 + thumb_func_end Cb_WithdrawMon + + thumb_func_start Cb_DepositMenu +Cb_DepositMenu: @ 0x080C8614 + push {r4, lr} + sub sp, #4 + ldr r0, _080C8630 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #4 + bls _080C8624 + b _080C873E +_080C8624: + lsls r0, r0, #2 + ldr r1, _080C8634 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C8630: .4byte 0x020399A8 +_080C8634: .4byte 0x080C8638 +_080C8638: @ jump table + .4byte _080C864C @ case 0 + .4byte _080C8688 @ case 1 + .4byte _080C86E8 @ case 2 + .4byte _080C8700 @ case 3 + .4byte _080C8724 @ case 4 +_080C864C: + movs r0, #6 + bl PrintStorageActionText + ldr r4, _080C8678 + ldr r0, [r4] + ldr r1, _080C867C + adds r0, r0, r1 + ldr r2, _080C8680 + movs r1, #0 + str r1, [sp] + movs r1, #0xa + movs r3, #3 + bl sub_080C7080 + ldr r0, _080C8684 + ldrb r0, [r0] + bl sub_080C716C + ldr r1, [r4] + ldrb r0, [r1] + adds r0, #1 + b _080C873C + .align 2, 0 +_080C8678: .4byte 0x020399A8 +_080C867C: .4byte 0x00001E5C +_080C8680: .4byte 0x0000DAC7 +_080C8684: .4byte 0x020399AE +_080C8688: + bl HandleBoxChooseSelectionInput + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r4, r0, #0 + cmp r0, #0xc8 + beq _080C873E + cmp r0, #0xc9 + bne _080C86A8 + bl ClearBottomWindow + bl sub_080C717C + bl sub_080C7128 + b _080C8716 +_080C86A8: + adds r0, r4, #0 + bl TryStorePartyMonInBox + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C86D4 + ldr r0, _080C86CC + strb r4, [r0] + bl ClearBottomWindow + bl sub_080C717C + bl sub_080C7128 + ldr r0, _080C86D0 + ldr r1, [r0] + movs r0, #2 + b _080C873C + .align 2, 0 +_080C86CC: .4byte 0x020399AE +_080C86D0: .4byte 0x020399A8 +_080C86D4: + movs r0, #8 + bl PrintStorageActionText + ldr r0, _080C86E4 + ldr r1, [r0] + movs r0, #4 + b _080C873C + .align 2, 0 +_080C86E4: .4byte 0x020399A8 +_080C86E8: + bl CompactPartySlots + bl sub_080CB1C4 + ldr r0, _080C86FC + ldr r1, [r0] + ldrb r0, [r1] + adds r0, #1 + b _080C873C + .align 2, 0 +_080C86FC: .4byte 0x020399A8 +_080C8700: + bl GetWaldaWallpaperPatternId + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C873E + bl sub_080CDAA8 + bl BoxSetMosaic + bl sub_080CA384 +_080C8716: + ldr r0, _080C8720 + bl SetPSSCallback + b _080C873E + .align 2, 0 +_080C8720: .4byte 0x080C7B49 +_080C8724: + ldr r0, _080C8748 + ldrh r1, [r0, #0x2e] + movs r0, #0xf3 + ands r0, r1 + cmp r0, #0 + beq _080C873E + movs r0, #6 + bl PrintStorageActionText + ldr r0, _080C874C + ldr r1, [r0] + movs r0, #1 +_080C873C: + strb r0, [r1] +_080C873E: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C8748: .4byte 0x03002360 +_080C874C: .4byte 0x020399A8 + thumb_func_end Cb_DepositMenu + + thumb_func_start Cb_ReleaseMon +Cb_ReleaseMon: @ 0x080C8750 + push {lr} + ldr r0, _080C8768 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #0xd + bls _080C875E + b _080C8932 +_080C875E: + lsls r0, r0, #2 + ldr r1, _080C876C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C8768: .4byte 0x020399A8 +_080C876C: .4byte 0x080C8770 +_080C8770: @ jump table + .4byte _080C87A8 @ case 0 + .4byte _080C87BE @ case 1 + .4byte _080C87F6 @ case 2 + .4byte _080C881C @ case 3 + .4byte _080C8828 @ case 4 + .4byte _080C8840 @ case 5 + .4byte _080C887C @ case 6 + .4byte _080C8894 @ case 7 + .4byte _080C88A0 @ case 8 + .4byte _080C88A4 @ case 9 + .4byte _080C88B8 @ case 10 + .4byte _080C88D4 @ case 11 + .4byte _080C88E6 @ case 12 + .4byte _080C891C @ case 13 +_080C87A8: + movs r0, #9 + bl PrintStorageActionText + movs r0, #1 + bl ShowYesNoWindow + ldr r0, _080C87D8 + ldr r1, [r0] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_080C87BE: + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _080C87E8 + cmp r1, #0 + bgt _080C87DC + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _080C87E2 + b _080C8932 + .align 2, 0 +_080C87D8: .4byte 0x020399A8 +_080C87DC: + cmp r1, #1 + beq _080C87E2 + b _080C8932 +_080C87E2: + bl ClearBottomWindow + b _080C8894 +_080C87E8: + bl ClearBottomWindow + bl InitCanRelaseMonVars + bl sub_080CDACC + b _080C88F8 +_080C87F6: + bl RunCanReleaseMon + bl sub_080CDB24 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C8806 + b _080C8932 +_080C8806: + b _080C880E +_080C8808: + cmp r0, #0 + bne _080C880E + b _080C890C +_080C880E: + bl RunCanReleaseMon + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + bne _080C8808 + b _080C88F8 +_080C881C: + bl ReleaseMon + bl RefreshCursorMonData + movs r0, #0xa + b _080C88F4 +_080C8828: + ldr r0, _080C883C + ldrh r1, [r0, #0x2e] + movs r0, #0xf3 + ands r0, r1 + cmp r0, #0 + bne _080C8836 + b _080C8932 +_080C8836: + movs r0, #0xb + b _080C88F4 + .align 2, 0 +_080C883C: .4byte 0x03002360 +_080C8840: + ldr r0, _080C8864 + ldrh r1, [r0, #0x2e] + movs r0, #0xf3 + ands r0, r1 + cmp r0, #0 + beq _080C8932 + bl ClearBottomWindow + ldr r0, _080C8868 + ldrb r0, [r0] + cmp r0, #0 + beq _080C886C + bl CompactPartySlots + bl sub_080CB1C4 + b _080C88F8 + .align 2, 0 +_080C8864: .4byte 0x03002360 +_080C8868: .4byte 0x020399AC +_080C886C: + ldr r0, _080C8878 + ldr r1, [r0] + movs r0, #7 + strb r0, [r1] + b _080C8932 + .align 2, 0 +_080C8878: .4byte 0x020399A8 +_080C887C: + bl GetWaldaWallpaperPatternId + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C8932 + bl sub_080CD888 + bl BoxSetMosaic + bl sub_080CA384 + b _080C88F8 +_080C8894: + ldr r0, _080C889C + bl SetPSSCallback + b _080C8932 + .align 2, 0 +_080C889C: .4byte 0x080C7B49 +_080C88A0: + movs r0, #0xa + b _080C88F4 +_080C88A4: + ldr r0, _080C88B4 + ldrh r1, [r0, #0x2e] + movs r0, #0xf3 + ands r0, r1 + cmp r0, #0 + beq _080C8932 + movs r0, #0x15 + b _080C88F4 + .align 2, 0 +_080C88B4: .4byte 0x03002360 +_080C88B8: + ldr r0, _080C88D0 + ldrh r1, [r0, #0x2e] + movs r0, #0xf3 + ands r0, r1 + cmp r0, #0 + beq _080C8932 + bl ClearBottomWindow + bl sub_080CB8D8 + b _080C88F8 + .align 2, 0 +_080C88D0: .4byte 0x03002360 +_080C88D4: + bl sub_080CB914 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C8932 + bl sub_080CDBA0 + movs r0, #0x13 + b _080C88F4 +_080C88E6: + ldr r0, _080C8904 + ldrh r1, [r0, #0x2e] + movs r0, #0xf3 + ands r0, r1 + cmp r0, #0 + beq _080C8932 + movs r0, #0x14 +_080C88F4: + bl PrintStorageActionText +_080C88F8: + ldr r0, _080C8908 + ldr r1, [r0] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080C8932 + .align 2, 0 +_080C8904: .4byte 0x03002360 +_080C8908: .4byte 0x020399A8 +_080C890C: + ldr r0, _080C8918 + ldr r1, [r0] + movs r0, #8 + strb r0, [r1] + b _080C8932 + .align 2, 0 +_080C8918: .4byte 0x020399A8 +_080C891C: + ldr r0, _080C8938 + ldrh r1, [r0, #0x2e] + movs r0, #0xf3 + ands r0, r1 + cmp r0, #0 + beq _080C8932 + bl ClearBottomWindow + ldr r0, _080C893C + bl SetPSSCallback +_080C8932: + pop {r0} + bx r0 + .align 2, 0 +_080C8938: .4byte 0x03002360 +_080C893C: .4byte 0x080C7B49 + thumb_func_end Cb_ReleaseMon + + thumb_func_start Cb_ShowMarkMenu +Cb_ShowMarkMenu: @ 0x080C8940 + push {r4, lr} + ldr r4, _080C8954 + ldr r0, [r4] + ldrb r0, [r0] + cmp r0, #0 + beq _080C8958 + cmp r0, #1 + beq _080C898C + b _080C89B4 + .align 2, 0 +_080C8954: .4byte 0x020399A8 +_080C8958: + movs r0, #0xc + bl PrintStorageActionText + ldr r0, [r4] + ldr r2, _080C8984 + adds r1, r0, r2 + ldrb r1, [r1] + ldr r3, _080C8988 + adds r0, r0, r3 + strb r1, [r0] + ldr r0, [r4] + adds r0, r0, r2 + ldrb r0, [r0] + movs r1, #0xb0 + movs r2, #0x10 + bl sub_0811FFC4 + ldr r1, [r4] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080C89B4 + .align 2, 0 +_080C8984: .4byte 0x00000CEB +_080C8988: .4byte 0x00000DA8 +_080C898C: + bl sub_081200C4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C89B4 + bl sub_08120018 + bl ClearBottomWindow + ldr r0, [r4] + ldr r1, _080C89BC + adds r0, r0, r1 + ldrb r0, [r0] + bl SetMonMarkings + bl RefreshCursorMonData + ldr r0, _080C89C0 + bl SetPSSCallback +_080C89B4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C89BC: .4byte 0x00000DA8 +_080C89C0: .4byte 0x080C7B49 + thumb_func_end Cb_ShowMarkMenu + + thumb_func_start Cb_TakeItemForMoving +Cb_TakeItemForMoving: @ 0x080C89C4 + push {r4, r5, lr} + ldr r5, _080C89DC + ldr r0, [r5] + ldrb r1, [r0] + cmp r1, #1 + beq _080C8A10 + cmp r1, #1 + bgt _080C89E0 + cmp r1, #0 + beq _080C89EA + b _080C8A6E + .align 2, 0 +_080C89DC: .4byte 0x020399A8 +_080C89E0: + cmp r1, #2 + beq _080C8A38 + cmp r1, #3 + beq _080C8A5E + b _080C8A6E +_080C89EA: + ldr r1, _080C8A00 + adds r0, r0, r1 + ldrh r0, [r0] + bl ItemIsMail + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C8A04 + bl ClearBottomWindow + b _080C8A54 + .align 2, 0 +_080C8A00: .4byte 0x00000CE6 +_080C8A04: + ldr r0, _080C8A0C + bl SetPSSCallback + b _080C8A6E + .align 2, 0 +_080C8A0C: .4byte 0x080C8F55 +_080C8A10: + movs r0, #2 + bl sub_080CF6D0 + ldr r0, _080C8A34 + ldrb r0, [r0] + rsbs r4, r0, #0 + orrs r4, r0 + lsrs r4, r4, #0x1f + bl sub_080CF684 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl Item_FromMonToMoving + b _080C8A54 + .align 2, 0 +_080C8A34: .4byte 0x020399AC +_080C8A38: + bl sub_080D0AB8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C8A6E + movs r0, #3 + bl sub_080CF6D0 + bl ClearBottomWindow + bl sub_080CD888 + bl PrintCursorMonInfo +_080C8A54: + ldr r1, [r5] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080C8A6E +_080C8A5E: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C8A6E + ldr r0, _080C8A74 + bl SetPSSCallback +_080C8A6E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080C8A74: .4byte 0x080C7B49 + thumb_func_end Cb_TakeItemForMoving + + thumb_func_start Cb_GiveMovingItemToMon +Cb_GiveMovingItemToMon: @ 0x080C8A78 + push {r4, lr} + ldr r0, _080C8A90 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #4 + bhi _080C8B28 + lsls r0, r0, #2 + ldr r1, _080C8A94 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C8A90: .4byte 0x020399A8 +_080C8A94: .4byte 0x080C8A98 +_080C8A98: @ jump table + .4byte _080C8B00 @ case 0 + .4byte _080C8AAC @ case 1 + .4byte _080C8AD4 @ case 2 + .4byte _080C8AF4 @ case 3 + .4byte _080C8B18 @ case 4 +_080C8AAC: + movs r0, #2 + bl sub_080CF6D0 + ldr r0, _080C8AD0 + ldrb r0, [r0] + rsbs r4, r0, #0 + orrs r4, r0 + lsrs r4, r4, #0x1f + bl sub_080CF684 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl Item_GiveMovingToMon + b _080C8B04 + .align 2, 0 +_080C8AD0: .4byte 0x020399AC +_080C8AD4: + bl sub_080D0AB8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C8B28 + movs r0, #0 + bl sub_080CF6D0 + bl sub_080CD888 + bl PrintCursorMonInfo + movs r0, #0x1c + bl PrintStorageActionText + b _080C8B04 +_080C8AF4: + ldr r0, _080C8B10 + ldrh r1, [r0, #0x2e] + movs r0, #0xf3 + ands r0, r1 + cmp r0, #0 + beq _080C8B28 +_080C8B00: + bl ClearBottomWindow +_080C8B04: + ldr r0, _080C8B14 + ldr r1, [r0] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080C8B28 + .align 2, 0 +_080C8B10: .4byte 0x03002360 +_080C8B14: .4byte 0x020399A8 +_080C8B18: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C8B28 + ldr r0, _080C8B30 + bl SetPSSCallback +_080C8B28: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C8B30: .4byte 0x080C7B49 + thumb_func_end Cb_GiveMovingItemToMon + + thumb_func_start Cb_ItemToBag +Cb_ItemToBag: @ 0x080C8B34 + push {r4, r5, lr} + ldr r1, _080C8B50 + ldr r0, [r1] + ldrb r0, [r0] + adds r5, r1, #0 + cmp r0, #4 + bls _080C8B44 + b _080C8C3E +_080C8B44: + lsls r0, r0, #2 + ldr r1, _080C8B54 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C8B50: .4byte 0x020399A8 +_080C8B54: .4byte 0x080C8B58 +_080C8B58: @ jump table + .4byte _080C8B6C @ case 0 + .4byte _080C8BC4 @ case 1 + .4byte _080C8BE4 @ case 2 + .4byte _080C8C28 @ case 3 + .4byte _080C8C10 @ case 4 +_080C8B6C: + ldr r0, [r5] + ldr r1, _080C8B94 + adds r0, r0, r1 + ldrh r0, [r0] + movs r1, #1 + bl AddBagItem + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C8B98 + movs r0, #0x20 + bl PlaySE + movs r0, #0x1a + bl PrintStorageActionText + ldr r1, [r5] + movs r0, #3 + strb r0, [r1] + b _080C8C3E + .align 2, 0 +_080C8B94: .4byte 0x00000CE6 +_080C8B98: + movs r0, #5 + bl PlaySE + ldr r0, _080C8BC0 + ldrb r0, [r0] + rsbs r4, r0, #0 + orrs r4, r0 + lsrs r4, r4, #0x1f + bl sub_080CF684 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl Item_TakeMons + ldr r1, [r5] + movs r0, #1 + strb r0, [r1] + b _080C8C3E + .align 2, 0 +_080C8BC0: .4byte 0x020399AC +_080C8BC4: + bl sub_080D0AB8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C8C3E + movs r0, #0x19 + bl PrintStorageActionText + ldr r0, _080C8BE0 + ldr r1, [r0] + movs r0, #2 + strb r0, [r1] + b _080C8C3E + .align 2, 0 +_080C8BE0: .4byte 0x020399A8 +_080C8BE4: + ldr r0, _080C8C08 + ldrh r1, [r0, #0x2e] + movs r0, #0xf3 + ands r0, r1 + cmp r0, #0 + beq _080C8C3E + bl ClearBottomWindow + bl sub_080CD888 + bl PrintCursorMonInfo + ldr r0, _080C8C0C + ldr r1, [r0] + movs r0, #4 + strb r0, [r1] + b _080C8C3E + .align 2, 0 +_080C8C08: .4byte 0x03002360 +_080C8C0C: .4byte 0x020399A8 +_080C8C10: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C8C3E + ldr r0, _080C8C24 + bl SetPSSCallback + b _080C8C3E + .align 2, 0 +_080C8C24: .4byte 0x080C7B49 +_080C8C28: + ldr r0, _080C8C44 + ldrh r1, [r0, #0x2e] + movs r0, #0xf3 + ands r0, r1 + cmp r0, #0 + beq _080C8C3E + bl ClearBottomWindow + ldr r0, _080C8C48 + bl SetPSSCallback +_080C8C3E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080C8C44: .4byte 0x03002360 +_080C8C48: .4byte 0x080C7B49 + thumb_func_end Cb_ItemToBag + + thumb_func_start Cb_SwitchSelectedItem +Cb_SwitchSelectedItem: @ 0x080C8C4C + push {r4, lr} + ldr r1, _080C8C64 + ldr r0, [r1] + ldrb r0, [r0] + adds r4, r1, #0 + cmp r0, #4 + bhi _080C8D28 + lsls r0, r0, #2 + ldr r1, _080C8C68 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C8C64: .4byte 0x020399A8 +_080C8C68: .4byte 0x080C8C6C +_080C8C6C: @ jump table + .4byte _080C8C80 @ case 0 + .4byte _080C8CAC @ case 1 + .4byte _080C8CD4 @ case 2 + .4byte _080C8CF4 @ case 3 + .4byte _080C8D18 @ case 4 +_080C8C80: + ldr r0, [r4] + ldr r1, _080C8C9C + adds r0, r0, r1 + ldrh r0, [r0] + bl ItemIsMail + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C8CA0 + bl ClearBottomWindow + ldr r1, [r4] + b _080C8D08 + .align 2, 0 +_080C8C9C: .4byte 0x00000CE6 +_080C8CA0: + ldr r0, _080C8CA8 + bl SetPSSCallback + b _080C8D28 + .align 2, 0 +_080C8CA8: .4byte 0x080C8F55 +_080C8CAC: + movs r0, #2 + bl sub_080CF6D0 + ldr r0, _080C8CD0 + ldrb r0, [r0] + rsbs r4, r0, #0 + orrs r4, r0 + lsrs r4, r4, #0x1f + bl sub_080CF684 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl Item_SwitchMonsWithMoving + b _080C8D04 + .align 2, 0 +_080C8CD0: .4byte 0x020399AC +_080C8CD4: + bl sub_080D0AB8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C8D28 + movs r0, #3 + bl sub_080CF6D0 + bl sub_080CD888 + bl PrintCursorMonInfo + movs r0, #0x1d + bl PrintStorageActionText + b _080C8D04 +_080C8CF4: + ldr r0, _080C8D10 + ldrh r1, [r0, #0x2e] + movs r0, #0xf3 + ands r0, r1 + cmp r0, #0 + beq _080C8D28 + bl ClearBottomWindow +_080C8D04: + ldr r0, _080C8D14 + ldr r1, [r0] +_080C8D08: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080C8D28 + .align 2, 0 +_080C8D10: .4byte 0x03002360 +_080C8D14: .4byte 0x020399A8 +_080C8D18: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C8D28 + ldr r0, _080C8D30 + bl SetPSSCallback +_080C8D28: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C8D30: .4byte 0x080C7B49 + thumb_func_end Cb_SwitchSelectedItem + + thumb_func_start Cb_ShowItemInfo +Cb_ShowItemInfo: @ 0x080C8D34 + push {lr} + ldr r0, _080C8D4C + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #6 + bhi _080C8DE0 + lsls r0, r0, #2 + ldr r1, _080C8D50 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C8D4C: .4byte 0x020399A8 +_080C8D50: .4byte 0x080C8D54 +_080C8D54: @ jump table + .4byte _080C8D70 @ case 0 + .4byte _080C8D76 @ case 1 + .4byte _080C8D90 @ case 2 + .4byte _080C8D96 @ case 3 + .4byte _080C8D9C @ case 4 + .4byte _080C8DB4 @ case 5 + .4byte _080C8DD0 @ case 6 +_080C8D70: + bl ClearBottomWindow + b _080C8DBE +_080C8D76: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C8DE0 + movs r0, #6 + bl PlaySE + bl Cb_HandleMovingMonFromParty + bl sub_080D10B8 + b _080C8DBE +_080C8D90: + bl sub_080D10EC + b _080C8DB8 +_080C8D96: + bl IsDma3ManagerBusyWithBgCopy + b _080C8DB8 +_080C8D9C: + ldr r0, _080C8DB0 + ldrh r1, [r0, #0x2e] + movs r0, #0xf3 + ands r0, r1 + cmp r0, #0 + beq _080C8DE0 + movs r0, #6 + bl PlaySE + b _080C8DBE + .align 2, 0 +_080C8DB0: .4byte 0x03002360 +_080C8DB4: + bl sub_080D1184 +_080C8DB8: + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C8DE0 +_080C8DBE: + ldr r0, _080C8DCC + ldr r1, [r0] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080C8DE0 + .align 2, 0 +_080C8DCC: .4byte 0x020399A8 +_080C8DD0: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C8DE0 + ldr r0, _080C8DE4 + bl SetPSSCallback +_080C8DE0: + pop {r0} + bx r0 + .align 2, 0 +_080C8DE4: .4byte 0x080C7B49 + thumb_func_end Cb_ShowItemInfo + + thumb_func_start Cb_CloseBoxWhileHoldingItem +Cb_CloseBoxWhileHoldingItem: @ 0x080C8DE8 + push {r4, lr} + ldr r0, _080C8E00 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #5 + bls _080C8DF6 + b _080C8F00 +_080C8DF6: + lsls r0, r0, #2 + ldr r1, _080C8E04 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C8E00: .4byte 0x020399A8 +_080C8E04: .4byte 0x080C8E08 +_080C8E08: @ jump table + .4byte _080C8E20 @ case 0 + .4byte _080C8E40 @ case 1 + .4byte _080C8E9E @ case 2 + .4byte _080C8EC0 @ case 3 + .4byte _080C8ED4 @ case 4 + .4byte _080C8EF0 @ case 5 +_080C8E20: + movs r0, #5 + bl PlaySE + movs r0, #0x1b + bl PrintStorageActionText + movs r0, #0 + bl ShowYesNoWindow + ldr r0, _080C8E3C + ldr r1, [r0] + movs r0, #1 + strb r0, [r1] + b _080C8F00 + .align 2, 0 +_080C8E3C: .4byte 0x020399A8 +_080C8E40: + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _080C8E64 + cmp r1, #0 + bgt _080C8E5A + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _080C8E5E + b _080C8F00 +_080C8E5A: + cmp r1, #1 + bne _080C8F00 +_080C8E5E: + bl ClearBottomWindow + b _080C8EE4 +_080C8E64: + ldr r4, _080C8E88 + ldr r0, [r4] + ldr r1, _080C8E8C + adds r0, r0, r1 + ldrh r0, [r0] + movs r1, #1 + bl AddBagItem + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080C8E90 + bl ClearBottomWindow + ldr r1, [r4] + movs r0, #3 + strb r0, [r1] + b _080C8F00 + .align 2, 0 +_080C8E88: .4byte 0x020399A8 +_080C8E8C: .4byte 0x00002234 +_080C8E90: + movs r0, #0x1a + bl PrintStorageActionText + ldr r1, [r4] + movs r0, #2 + strb r0, [r1] + b _080C8F00 +_080C8E9E: + ldr r0, _080C8EB8 + ldrh r1, [r0, #0x2e] + movs r0, #0xf3 + ands r0, r1 + cmp r0, #0 + beq _080C8F00 + bl ClearBottomWindow + ldr r0, _080C8EBC + ldr r1, [r0] + movs r0, #5 + strb r0, [r1] + b _080C8F00 + .align 2, 0 +_080C8EB8: .4byte 0x03002360 +_080C8EBC: .4byte 0x020399A8 +_080C8EC0: + bl sub_080D0A34 + ldr r0, _080C8ED0 + ldr r1, [r0] + movs r0, #4 + strb r0, [r1] + b _080C8F00 + .align 2, 0 +_080C8ED0: .4byte 0x020399A8 +_080C8ED4: + bl sub_080D0AB8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C8F00 + movs r0, #0 + bl sub_080CF6D0 +_080C8EE4: + ldr r0, _080C8EEC + bl SetPSSCallback + b _080C8F00 + .align 2, 0 +_080C8EEC: .4byte 0x080C7B49 +_080C8EF0: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C8F00 + ldr r0, _080C8F08 + bl SetPSSCallback +_080C8F00: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C8F08: .4byte 0x080C7B49 + thumb_func_end Cb_CloseBoxWhileHoldingItem + + thumb_func_start sub_080C8F0C +sub_080C8F0C: @ 0x080C8F0C + push {r4, lr} + ldr r4, _080C8F20 + ldr r0, [r4] + ldrb r0, [r0] + cmp r0, #0 + beq _080C8F24 + cmp r0, #1 + beq _080C8F36 + b _080C8F4A + .align 2, 0 +_080C8F20: .4byte 0x020399A8 +_080C8F24: + bl CompactPartySlots + bl sub_080CB1C4 + ldr r1, [r4] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080C8F4A +_080C8F36: + bl GetWaldaWallpaperPatternId + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C8F4A + bl sub_080CA384 + ldr r0, _080C8F50 + bl SetPSSCallback +_080C8F4A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C8F50: .4byte 0x080C7B49 + thumb_func_end sub_080C8F0C + + thumb_func_start Cb_PrintCantStoreMail +Cb_PrintCantStoreMail: @ 0x080C8F54 + push {r4, lr} + ldr r4, _080C8F6C + ldr r0, [r4] + ldrb r0, [r0] + cmp r0, #1 + beq _080C8F82 + cmp r0, #1 + bgt _080C8F70 + cmp r0, #0 + beq _080C8F7A + b _080C8FBC + .align 2, 0 +_080C8F6C: .4byte 0x020399A8 +_080C8F70: + cmp r0, #2 + beq _080C8F8E + cmp r0, #3 + beq _080C8FAC + b _080C8FBC +_080C8F7A: + movs r0, #0x1e + bl PrintStorageActionText + b _080C8F9E +_080C8F82: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C8FBC + b _080C8F9E +_080C8F8E: + ldr r0, _080C8FA8 + ldrh r1, [r0, #0x2e] + movs r0, #0xf3 + ands r0, r1 + cmp r0, #0 + beq _080C8FBC + bl ClearBottomWindow +_080C8F9E: + ldr r1, [r4] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080C8FBC + .align 2, 0 +_080C8FA8: .4byte 0x03002360 +_080C8FAC: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C8FBC + ldr r0, _080C8FC4 + bl SetPSSCallback +_080C8FBC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C8FC4: .4byte 0x080C7B49 + thumb_func_end Cb_PrintCantStoreMail + + thumb_func_start Cb_HandleBoxOptions +Cb_HandleBoxOptions: @ 0x080C8FC8 + push {r4, lr} + ldr r4, _080C8FE0 + ldr r0, [r4] + ldrb r0, [r0] + cmp r0, #1 + beq _080C8FFE + cmp r0, #1 + bgt _080C8FE4 + cmp r0, #0 + beq _080C8FEA + b _080C90B4 + .align 2, 0 +_080C8FE0: .4byte 0x020399A8 +_080C8FE4: + cmp r0, #2 + beq _080C9010 + b _080C90B4 +_080C8FEA: + movs r0, #1 + bl PrintStorageActionText + bl AddMenu + ldr r1, [r4] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080C90B4 +_080C8FFE: + bl sub_080CF948 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C90B4 + ldr r1, [r4] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_080C9010: + bl sub_080CF94C + adds r0, #1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xc + bhi _080C90B4 + lsls r0, r0, #2 + ldr r1, _080C9028 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C9028: .4byte 0x080C902C +_080C902C: @ jump table + .4byte _080C9060 @ case 0 + .4byte _080C9060 @ case 1 + .4byte _080C90B4 @ case 2 + .4byte _080C90B4 @ case 3 + .4byte _080C90B4 @ case 4 + .4byte _080C90B4 @ case 5 + .4byte _080C90B4 @ case 6 + .4byte _080C90B4 @ case 7 + .4byte _080C90B4 @ case 8 + .4byte _080C90B4 @ case 9 + .4byte _080C90A4 @ case 10 + .4byte _080C908C @ case 11 + .4byte _080C9078 @ case 12 +_080C9060: + movs r0, #1 + bl sub_080CCA24 + bl ClearBottomWindow + ldr r0, _080C9074 + bl SetPSSCallback + b _080C90B4 + .align 2, 0 +_080C9074: .4byte 0x080C7B49 +_080C9078: + movs r0, #5 + bl PlaySE + ldr r0, _080C9088 + bl SetPSSCallback + b _080C90B4 + .align 2, 0 +_080C9088: .4byte 0x080C9365 +_080C908C: + movs r0, #5 + bl PlaySE + bl ClearBottomWindow + ldr r0, _080C90A0 + bl SetPSSCallback + b _080C90B4 + .align 2, 0 +_080C90A0: .4byte 0x080C90C1 +_080C90A4: + movs r0, #5 + bl PlaySE + bl ClearBottomWindow + ldr r0, _080C90BC + bl SetPSSCallback +_080C90B4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C90BC: .4byte 0x080C9275 + thumb_func_end Cb_HandleBoxOptions + + thumb_func_start Cb_HandleWallpapers +Cb_HandleWallpapers: @ 0x080C90C0 + push {r4, r5, lr} + ldr r0, _080C90D8 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #6 + bls _080C90CE + b _080C9268 +_080C90CE: + lsls r0, r0, #2 + ldr r1, _080C90DC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C90D8: .4byte 0x020399A8 +_080C90DC: .4byte 0x080C90E0 +_080C90E0: @ jump table + .4byte _080C90FC @ case 0 + .4byte _080C9114 @ case 1 + .4byte _080C9130 @ case 2 + .4byte _080C91A8 @ case 3 + .4byte _080C91D8 @ case 4 + .4byte _080C922C @ case 5 + .4byte _080C9248 @ case 6 +_080C90FC: + bl AddWallpaperSetsMenu + movs r0, #2 + bl PrintStorageActionText + ldr r0, _080C9110 + ldr r1, [r0] + ldrb r0, [r1] + adds r0, #1 + b _080C9266 + .align 2, 0 +_080C9110: .4byte 0x020399A8 +_080C9114: + bl sub_080CF948 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C9120 + b _080C9268 +_080C9120: + ldr r0, _080C912C + ldr r1, [r0] + ldrb r0, [r1] + adds r0, #1 + b _080C9266 + .align 2, 0 +_080C912C: .4byte 0x020399A8 +_080C9130: + bl sub_080CF94C + ldr r4, _080C9154 + ldr r1, [r4] + ldr r5, _080C9158 + adds r1, r1, r5 + strh r0, [r1] + movs r0, #0 + ldrsh r1, [r1, r0] + cmp r1, #0x15 + bgt _080C915C + cmp r1, #0x12 + bge _080C916E + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _080C9162 + b _080C9268 + .align 2, 0 +_080C9154: .4byte 0x020399A8 +_080C9158: .4byte 0x0000078E +_080C915C: + cmp r1, #0x16 + beq _080C9188 + b _080C9268 +_080C9162: + movs r0, #1 + bl sub_080CCA24 + bl ClearBottomWindow + b _080C923C +_080C916E: + movs r0, #5 + bl PlaySE + bl sub_080CF9DC + ldr r1, [r4] + adds r2, r1, r5 + ldrh r0, [r2] + subs r0, #0x12 + strh r0, [r2] + ldrb r0, [r1] + adds r0, #1 + b _080C9266 +_080C9188: + movs r0, #5 + bl PlaySE + ldr r0, [r4] + movs r1, #0xf2 + lsls r1, r1, #3 + adds r0, r0, r1 + movs r1, #0x10 + strh r1, [r0] + bl sub_080CF9DC + bl ClearBottomWindow + ldr r1, [r4] + movs r0, #6 + b _080C9266 +_080C91A8: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C9268 + ldr r4, _080C91D0 + ldr r0, [r4] + ldr r1, _080C91D4 + adds r0, r0, r1 + ldrb r0, [r0] + bl AddWallpapersMenu + movs r0, #3 + bl PrintStorageActionText + ldr r1, [r4] + ldrb r0, [r1] + adds r0, #1 + b _080C9266 + .align 2, 0 +_080C91D0: .4byte 0x020399A8 +_080C91D4: .4byte 0x0000078E +_080C91D8: + bl sub_080CF94C + ldr r4, _080C9204 + ldr r1, [r4] + movs r5, #0xf2 + lsls r5, r5, #3 + adds r1, r1, r5 + strh r0, [r1] + movs r0, #0 + ldrsh r1, [r1, r0] + movs r0, #2 + rsbs r0, r0, #0 + cmp r1, r0 + beq _080C9268 + adds r0, #1 + cmp r1, r0 + bne _080C9208 + bl ClearBottomWindow + ldr r1, [r4] + movs r0, #0 + b _080C9266 + .align 2, 0 +_080C9204: .4byte 0x020399A8 +_080C9208: + movs r0, #5 + bl PlaySE + bl ClearBottomWindow + ldr r1, [r4] + adds r1, r1, r5 + ldrh r0, [r1] + subs r0, #0x17 + strh r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl SetWallpaperForCurrentBox + ldr r1, [r4] + ldrb r0, [r1] + adds r0, #1 + b _080C9266 +_080C922C: + bl DoWallpaperGfxChange + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C9268 + movs r0, #1 + bl sub_080CCA24 +_080C923C: + ldr r0, _080C9244 + bl SetPSSCallback + b _080C9268 + .align 2, 0 +_080C9244: .4byte 0x080C7B49 +_080C9248: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C9268 + ldr r4, _080C9270 + ldr r0, [r4] + movs r1, #0xf2 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrb r0, [r0] + bl SetWallpaperForCurrentBox + ldr r1, [r4] + movs r0, #5 +_080C9266: + strb r0, [r1] +_080C9268: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080C9270: .4byte 0x020399A8 + thumb_func_end Cb_HandleWallpapers + + thumb_func_start Cb_JumpBox +Cb_JumpBox: @ 0x080C9274 + push {r4, r5, lr} + sub sp, #4 + ldr r5, _080C928C + ldr r0, [r5] + ldrb r4, [r0] + cmp r4, #1 + beq _080C92C8 + cmp r4, #1 + bgt _080C9290 + cmp r4, #0 + beq _080C929A + b _080C9354 + .align 2, 0 +_080C928C: .4byte 0x020399A8 +_080C9290: + cmp r4, #2 + beq _080C9320 + cmp r4, #3 + beq _080C9338 + b _080C9354 +_080C929A: + movs r0, #5 + bl PrintStorageActionText + ldr r0, [r5] + ldr r1, _080C92C0 + adds r0, r0, r1 + ldr r2, _080C92C4 + str r4, [sp] + movs r1, #0xa + movs r3, #3 + bl sub_080C7080 + bl StorageGetCurrentBox + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_080C716C + b _080C932A + .align 2, 0 +_080C92C0: .4byte 0x00001E5C +_080C92C4: .4byte 0x0000DAC7 +_080C92C8: + bl HandleBoxChooseSelectionInput + ldr r1, [r5] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080C9318 + adds r1, r1, r2 + strh r0, [r1] + movs r2, #0 + ldrsh r0, [r1, r2] + cmp r0, #0xc8 + beq _080C9354 + bl ClearBottomWindow + bl sub_080C717C + bl sub_080C7128 + ldr r0, [r5] + ldr r2, _080C9318 + adds r1, r0, r2 + movs r2, #0 + ldrsh r0, [r1, r2] + cmp r0, #0xc9 + beq _080C9308 + adds r4, r0, #0 + bl StorageGetCurrentBox + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + bne _080C932A +_080C9308: + movs r0, #1 + bl sub_080CCA24 + ldr r0, _080C931C + bl SetPSSCallback + b _080C9354 + .align 2, 0 +_080C9318: .4byte 0x000002CA +_080C931C: .4byte 0x080C7B49 +_080C9320: + ldr r1, _080C9334 + adds r0, r0, r1 + ldrb r0, [r0] + bl SetUpScrollToBox +_080C932A: + ldr r1, [r5] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080C9354 + .align 2, 0 +_080C9334: .4byte 0x000002CA +_080C9338: + bl ScrollToBox + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C9354 + ldr r0, [r5] + ldr r2, _080C935C + adds r0, r0, r2 + ldrb r0, [r0] + bl SetCurrentBox + ldr r0, _080C9360 + bl SetPSSCallback +_080C9354: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080C935C: .4byte 0x000002CA +_080C9360: .4byte 0x080C7B49 + thumb_func_end Cb_JumpBox + + thumb_func_start Cb_NameBox +Cb_NameBox: @ 0x080C9364 + push {r4, r5, lr} + sub sp, #4 + ldr r5, _080C9378 + ldr r0, [r5] + ldrb r4, [r0] + cmp r4, #0 + beq _080C937C + cmp r4, #1 + beq _080C939A + b _080C93B4 + .align 2, 0 +_080C9378: .4byte 0x020399A8 +_080C937C: + bl sub_080CDFDC + movs r0, #1 + rsbs r0, r0, #0 + str r4, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, [r5] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080C93B4 +_080C939A: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C93B4 + ldr r0, _080C93BC + strb r4, [r0] + ldr r1, [r5] + movs r0, #2 + strb r0, [r1, #2] + ldr r0, _080C93C0 + bl SetPSSCallback +_080C93B4: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080C93BC: .4byte 0x020399AF +_080C93C0: .4byte 0x080C96ED + thumb_func_end Cb_NameBox + + thumb_func_start Cb_ShowMonSummary +Cb_ShowMonSummary: @ 0x080C93C4 + push {r4, r5, lr} + sub sp, #4 + ldr r5, _080C93D8 + ldr r0, [r5] + ldrb r4, [r0] + cmp r4, #0 + beq _080C93DC + cmp r4, #1 + beq _080C93FA + b _080C9414 + .align 2, 0 +_080C93D8: .4byte 0x020399A8 +_080C93DC: + bl sub_080CE064 + movs r0, #1 + rsbs r0, r0, #0 + str r4, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, [r5] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080C9414 +_080C93FA: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080C9414 + ldr r0, _080C941C + strb r1, [r0] + ldr r0, [r5] + strb r4, [r0, #2] + ldr r0, _080C9420 + bl SetPSSCallback +_080C9414: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080C941C: .4byte 0x020399AF +_080C9420: .4byte 0x080C96ED + thumb_func_end Cb_ShowMonSummary + + thumb_func_start Cb_GiveItemFromBag +Cb_GiveItemFromBag: @ 0x080C9424 + push {r4, lr} + sub sp, #4 + ldr r4, _080C9438 + ldr r0, [r4] + ldrb r1, [r0] + cmp r1, #0 + beq _080C943C + cmp r1, #1 + beq _080C9456 + b _080C9472 + .align 2, 0 +_080C9438: .4byte 0x020399A8 +_080C943C: + movs r0, #1 + rsbs r0, r0, #0 + str r1, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, [r4] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080C9472 +_080C9456: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C9472 + ldr r1, _080C947C + movs r0, #2 + strb r0, [r1] + ldr r1, [r4] + movs r0, #3 + strb r0, [r1, #2] + ldr r0, _080C9480 + bl SetPSSCallback +_080C9472: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C947C: .4byte 0x020399AF +_080C9480: .4byte 0x080C96ED + thumb_func_end Cb_GiveItemFromBag + + thumb_func_start Cb_OnCloseBoxPressed +Cb_OnCloseBoxPressed: @ 0x080C9484 + push {r4, lr} + ldr r0, _080C949C + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #4 + bls _080C9492 + b _080C95A4 +_080C9492: + lsls r0, r0, #2 + ldr r1, _080C94A0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C949C: .4byte 0x020399A8 +_080C94A0: .4byte 0x080C94A4 +_080C94A4: @ jump table + .4byte _080C94B8 @ case 0 + .4byte _080C9514 @ case 1 + .4byte _080C9528 @ case 2 + .4byte _080C9564 @ case 3 + .4byte _080C9580 @ case 4 +_080C94B8: + bl GetBoxCursorPosition + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C94DC + movs r0, #0x20 + bl PlaySE + movs r0, #0xf + bl PrintStorageActionText + ldr r0, _080C94D8 + ldr r1, [r0] + movs r0, #1 + strb r0, [r1] + b _080C95A4 + .align 2, 0 +_080C94D8: .4byte 0x020399A8 +_080C94DC: + bl IsActiveItemMoving + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C94F4 + ldr r0, _080C94F0 + bl SetPSSCallback + b _080C95A4 + .align 2, 0 +_080C94F0: .4byte 0x080C8DE9 +_080C94F4: + movs r0, #5 + bl PlaySE + movs r0, #0 + bl PrintStorageActionText + movs r0, #0 + bl ShowYesNoWindow + ldr r0, _080C9510 + ldr r1, [r0] + movs r0, #2 + strb r0, [r1] + b _080C95A4 + .align 2, 0 +_080C9510: .4byte 0x020399A8 +_080C9514: + ldr r0, _080C9524 + ldrh r1, [r0, #0x2e] + movs r0, #0xf3 + ands r0, r1 + cmp r0, #0 + beq _080C95A4 + b _080C9546 + .align 2, 0 +_080C9524: .4byte 0x03002360 +_080C9528: + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _080C9558 + cmp r1, #0 + bgt _080C9542 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _080C9546 + b _080C95A4 +_080C9542: + cmp r1, #1 + bne _080C95A4 +_080C9546: + bl ClearBottomWindow + ldr r0, _080C9554 + bl SetPSSCallback + b _080C95A4 + .align 2, 0 +_080C9554: .4byte 0x080C7B49 +_080C9558: + movs r0, #3 + bl PlaySE + bl ClearBottomWindow + b _080C956E +_080C9564: + movs r0, #0x14 + movs r1, #0 + movs r2, #1 + bl sub_080FA464 +_080C956E: + ldr r0, _080C957C + ldr r1, [r0] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080C95A4 + .align 2, 0 +_080C957C: .4byte 0x020399A8 +_080C9580: + bl FldEffPoison_IsActive + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _080C95A4 + bl sub_080CA444 + bl CalculatePlayerPartyCount + ldr r1, _080C95AC + strb r0, [r1] + ldr r0, _080C95B0 + ldr r0, [r0] + strb r4, [r0, #2] + ldr r0, _080C95B4 + bl SetPSSCallback +_080C95A4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C95AC: .4byte 0x0202418D +_080C95B0: .4byte 0x020399A8 +_080C95B4: .4byte 0x080C96ED + thumb_func_end Cb_OnCloseBoxPressed + + thumb_func_start Cb_OnBPressed +Cb_OnBPressed: @ 0x080C95B8 + push {r4, lr} + ldr r0, _080C95D0 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #4 + bls _080C95C6 + b _080C96D8 +_080C95C6: + lsls r0, r0, #2 + ldr r1, _080C95D4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C95D0: .4byte 0x020399A8 +_080C95D4: .4byte 0x080C95D8 +_080C95D8: @ jump table + .4byte _080C95EC @ case 0 + .4byte _080C9648 @ case 1 + .4byte _080C965C @ case 2 + .4byte _080C9698 @ case 3 + .4byte _080C96B4 @ case 4 +_080C95EC: + bl GetBoxCursorPosition + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C9610 + movs r0, #0x20 + bl PlaySE + movs r0, #0xf + bl PrintStorageActionText + ldr r0, _080C960C + ldr r1, [r0] + movs r0, #1 + strb r0, [r1] + b _080C96D8 + .align 2, 0 +_080C960C: .4byte 0x020399A8 +_080C9610: + bl IsActiveItemMoving + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C9628 + ldr r0, _080C9624 + bl SetPSSCallback + b _080C96D8 + .align 2, 0 +_080C9624: .4byte 0x080C8DE9 +_080C9628: + movs r0, #5 + bl PlaySE + movs r0, #0x12 + bl PrintStorageActionText + movs r0, #0 + bl ShowYesNoWindow + ldr r0, _080C9644 + ldr r1, [r0] + movs r0, #2 + strb r0, [r1] + b _080C96D8 + .align 2, 0 +_080C9644: .4byte 0x020399A8 +_080C9648: + ldr r0, _080C9658 + ldrh r1, [r0, #0x2e] + movs r0, #0xf3 + ands r0, r1 + cmp r0, #0 + beq _080C96D8 + b _080C967C + .align 2, 0 +_080C9658: .4byte 0x03002360 +_080C965C: + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _080C967C + cmp r1, #0 + bgt _080C9676 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _080C968C + b _080C96D8 +_080C9676: + cmp r1, #1 + beq _080C968C + b _080C96D8 +_080C967C: + bl ClearBottomWindow + ldr r0, _080C9688 + bl SetPSSCallback + b _080C96D8 + .align 2, 0 +_080C9688: .4byte 0x080C7B49 +_080C968C: + movs r0, #3 + bl PlaySE + bl ClearBottomWindow + b _080C96A2 +_080C9698: + movs r0, #0x14 + movs r1, #0 + movs r2, #0 + bl sub_080FA464 +_080C96A2: + ldr r0, _080C96B0 + ldr r1, [r0] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080C96D8 + .align 2, 0 +_080C96B0: .4byte 0x020399A8 +_080C96B4: + bl FldEffPoison_IsActive + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _080C96D8 + bl sub_080CA444 + bl CalculatePlayerPartyCount + ldr r1, _080C96E0 + strb r0, [r1] + ldr r0, _080C96E4 + ldr r0, [r0] + strb r4, [r0, #2] + ldr r0, _080C96E8 + bl SetPSSCallback +_080C96D8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C96E0: .4byte 0x0202418D +_080C96E4: .4byte 0x020399A8 +_080C96E8: .4byte 0x080C96ED + thumb_func_end Cb_OnBPressed + + thumb_func_start Cb_ChangeScreen +Cb_ChangeScreen: @ 0x080C96EC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _080C9718 + ldr r0, [r0] + ldrb r4, [r0, #2] + ldrb r0, [r0, #1] + cmp r0, #3 + bne _080C9720 + bl IsActiveItemMoving + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080C9720 + bl GetMovingItem + ldr r1, _080C971C + b _080C9724 + .align 2, 0 +_080C9718: .4byte 0x020399A8 +_080C971C: .4byte 0x020399B2 +_080C9720: + ldr r1, _080C9744 + movs r0, #0 +_080C9724: + strh r0, [r1] + cmp r4, #1 + beq _080C974C + cmp r4, #1 + ble _080C9736 + cmp r4, #2 + beq _080C9790 + cmp r4, #3 + beq _080C97BC +_080C9736: + bl FreePSSData + ldr r0, _080C9748 + bl SetMainCallback2 + b _080C97CA + .align 2, 0 +_080C9744: .4byte 0x020399B2 +_080C9748: .4byte 0x080C6F11 +_080C974C: + ldr r0, _080C9780 + ldr r1, [r0] + ldr r2, _080C9784 + adds r0, r1, r2 + ldr r0, [r0] + mov r8, r0 + subs r2, #5 + adds r0, r1, r2 + ldrb r6, [r0] + subs r2, #1 + adds r0, r1, r2 + ldrb r5, [r0] + ldr r0, _080C9788 + adds r1, r1, r0 + ldrb r4, [r1] + bl FreePSSData + ldr r0, _080C978C + str r0, [sp] + adds r0, r4, #0 + mov r1, r8 + adds r2, r6, #0 + adds r3, r5, #0 + bl ShowPokemonSummaryScreen + b _080C97CA + .align 2, 0 +_080C9780: .4byte 0x020399A8 +_080C9784: .4byte 0x0000218C +_080C9788: .4byte 0x00002188 +_080C978C: .4byte 0x080C7689 +_080C9790: + bl FreePSSData + bl StorageGetCurrentBox + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBoxNamePtr + adds r1, r0, #0 + movs r0, #0 + str r0, [sp] + ldr r0, _080C97B8 + str r0, [sp, #4] + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl DoNamingScreen + b _080C97CA + .align 2, 0 +_080C97B8: .4byte 0x080C7689 +_080C97BC: + bl FreePSSData + ldr r2, _080C97DC + movs r0, #0xb + movs r1, #0 + bl GoToBagMenu +_080C97CA: + adds r0, r7, #0 + bl DestroyTask + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080C97DC: .4byte 0x080C7689 + thumb_func_end Cb_ChangeScreen + + thumb_func_start GiveChosenBagItem +GiveChosenBagItem: @ 0x080C97E0 + push {lr} + sub sp, #4 + ldr r0, _080C9814 + ldrh r1, [r0] + mov r0, sp + strh r1, [r0] + cmp r1, #0 + beq _080C9834 + bl sub_080CF684 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r0, _080C9818 + ldrb r0, [r0] + cmp r0, #0 + beq _080C9820 + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080C981C + adds r0, r0, r1 + movs r1, #0xc + mov r2, sp + bl SetMonData + b _080C982A + .align 2, 0 +_080C9814: .4byte 0x0203CB48 +_080C9818: .4byte 0x020399AC +_080C981C: .4byte 0x02024190 +_080C9820: + adds r0, r1, #0 + movs r1, #0xc + mov r2, sp + bl SetCurrentBoxMonData +_080C982A: + mov r0, sp + ldrh r0, [r0] + movs r1, #1 + bl RemoveBagItem +_080C9834: + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end GiveChosenBagItem + + thumb_func_start FreePSSData +FreePSSData: @ 0x080C983C + push {r4, lr} + bl sub_080D1E90 + bl sub_080CFA58 + ldr r4, _080C985C + ldr r0, [r4] + bl Free + movs r0, #0 + str r0, [r4] + bl FreeAllWindowBuffers + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C985C: .4byte 0x020399A8 + thumb_func_end FreePSSData + + thumb_func_start SetScrollingBackground +SetScrollingBackground: @ 0x080C9860 + push {lr} + sub sp, #4 + ldr r1, _080C988C + movs r0, #0xe + bl SetGpuReg + ldr r1, _080C9890 + movs r0, #0 + str r0, [sp] + movs r0, #3 + movs r2, #0 + movs r3, #0 + bl DecompressAndLoadBgGfxUsingHeap + ldr r0, _080C9894 + ldr r1, _080C9898 + bl LZ77UnCompVram + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_080C988C: .4byte 0x00001F0F +_080C9890: .4byte 0x0854BBFC +_080C9894: .4byte 0x0854BC94 +_080C9898: .4byte 0x0600F800 + thumb_func_end SetScrollingBackground + + thumb_func_start ScrollBackground +ScrollBackground: @ 0x080C989C + push {lr} + movs r0, #3 + movs r1, #0x80 + movs r2, #1 + bl ChangeBgX + movs r0, #3 + movs r1, #0x80 + movs r2, #2 + bl ChangeBgY + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ScrollBackground + + thumb_func_start LoadPSSMenuGfx +LoadPSSMenuGfx: @ 0x080C98B8 + push {r4, r5, lr} + sub sp, #4 + ldr r1, _080C9904 + movs r0, #0 + movs r2, #4 + bl InitBgsFromTemplates + ldr r1, _080C9908 + movs r0, #0 + str r0, [sp] + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl DecompressAndLoadBgGfxUsingHeap + ldr r0, _080C990C + ldr r5, _080C9910 + ldr r1, [r5] + ldr r4, _080C9914 + adds r1, r1, r4 + bl LZ77UnCompWram + ldr r1, [r5] + adds r1, r1, r4 + movs r0, #1 + bl SetBgTilemapBuffer + movs r0, #1 + bl ShowBg + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080C9904: .4byte 0x0854C9E4 +_080C9908: .4byte 0x0854BF9C +_080C990C: .4byte 0x0854BDC0 +_080C9910: .4byte 0x020399A8 +_080C9914: .4byte 0x00005AC4 + thumb_func_end LoadPSSMenuGfx + + thumb_func_start InitPSSWindows +InitPSSWindows: @ 0x080C9918 + push {lr} + ldr r0, _080C9930 + bl InitWindows + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080C9934 + bl DeactivateAllTextPrinters + movs r0, #1 + b _080C9936 + .align 2, 0 +_080C9930: .4byte 0x0854C9C4 +_080C9934: + movs r0, #0 +_080C9936: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end InitPSSWindows + + thumb_func_start LoadWaveformSpritePalette +LoadWaveformSpritePalette: @ 0x080C993C + push {lr} + ldr r0, _080C9948 + bl LoadSpritePalette + pop {r0} + bx r0 + .align 2, 0 +_080C9948: .4byte 0x0854C9F4 + thumb_func_end LoadWaveformSpritePalette + + thumb_func_start sub_080C994C +sub_080C994C: @ 0x080C994C + push {lr} + ldr r0, _080C9984 + movs r1, #0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _080C9988 + movs r1, #0x20 + movs r2, #0x20 + bl LoadPalette + ldr r0, _080C998C + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _080C9990 + ldr r0, [r0] + ldrb r0, [r0, #1] + cmp r0, #3 + beq _080C9998 + ldr r0, _080C9994 + movs r1, #0x30 + movs r2, #0x20 + bl LoadPalette + b _080C99A2 + .align 2, 0 +_080C9984: .4byte 0x0854BEFC +_080C9988: .4byte 0x0854BF1C +_080C998C: .4byte 0x0854C9A4 +_080C9990: .4byte 0x020399A8 +_080C9994: .4byte 0x0854BF5C +_080C9998: + ldr r0, _080C99C0 + movs r1, #0x30 + movs r2, #0x20 + bl LoadPalette +_080C99A2: + ldr r1, _080C99C4 + movs r0, #0xa + bl SetGpuReg + bl LoadCursorMonSprite + bl sub_080C99C8 + bl sub_080C9A38 + bl RefreshCursorMonData + pop {r0} + bx r0 + .align 2, 0 +_080C99C0: .4byte 0x0854BF7C +_080C99C4: .4byte 0x00001E05 + thumb_func_end sub_080C994C + + thumb_func_start sub_080C99C8 +sub_080C99C8: @ 0x080C99C8 + push {r4, lr} + ldr r1, _080C9A28 + movs r0, #0x10 + movs r2, #0 + bl sub_081204D4 + ldr r4, _080C9A2C + ldr r1, [r4] + ldr r3, _080C9A30 + adds r1, r1, r3 + str r0, [r1] + ldrb r2, [r0, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #4 + orrs r1, r2 + strb r1, [r0, #5] + ldr r0, [r4] + adds r0, r0, r3 + ldr r0, [r0] + adds r0, #0x43 + movs r1, #1 + strb r1, [r0] + ldr r0, [r4] + adds r0, r0, r3 + ldr r2, [r0] + movs r1, #0x28 + strh r1, [r2, #0x20] + ldr r1, [r0] + movs r0, #0x96 + strh r0, [r1, #0x22] + movs r0, #0x10 + bl GetSpriteTileStartByTag + ldr r1, [r4] + movs r2, #0xda + lsls r2, r2, #4 + adds r1, r1, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0xb + ldr r2, _080C9A34 + adds r0, r0, r2 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C9A28: .4byte 0x0000DAC8 +_080C9A2C: .4byte 0x020399A8 +_080C9A30: .4byte 0x00000D94 +_080C9A34: .4byte 0x06010000 + thumb_func_end sub_080C99C8 + + thumb_func_start sub_080C9A38 +sub_080C9A38: @ 0x080C9A38 + push {r4, lr} + sub sp, #8 + ldr r0, _080C9A90 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [sp] + str r1, [sp, #4] + mov r0, sp + bl LoadSpriteSheet + movs r4, #0 +_080C9A4E: + lsls r1, r4, #6 + subs r1, r1, r4 + adds r1, #8 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldr r0, _080C9A94 + movs r2, #9 + movs r3, #2 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080C9A98 + ldr r2, [r1] + lsls r1, r4, #2 + ldr r3, _080C9A9C + adds r2, r2, r3 + adds r2, r2, r1 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080C9AA0 + adds r1, r1, r0 + str r1, [r2] + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #1 + bls _080C9A4E + add sp, #8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C9A90: .4byte 0x0854C9FC +_080C9A94: .4byte 0x0854CB6C +_080C9A98: .4byte 0x020399A8 +_080C9A9C: .4byte 0x00000D98 +_080C9AA0: .4byte 0x020205AC + thumb_func_end sub_080C9A38 + + thumb_func_start RefreshCursorMonData +RefreshCursorMonData: @ 0x080C9AA4 + push {lr} + ldr r0, _080C9ACC + ldr r1, [r0] + ldr r2, _080C9AD0 + adds r0, r1, r2 + ldrh r0, [r0] + subs r2, #4 + adds r1, r1, r2 + ldr r1, [r1] + bl LoadCursorMonGfx + bl PrintCursorMonInfo + bl sub_080C9EC0 + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + pop {r0} + bx r0 + .align 2, 0 +_080C9ACC: .4byte 0x020399A8 +_080C9AD0: .4byte 0x00000CE4 + thumb_func_end RefreshCursorMonData + + thumb_func_start BoxSetMosaic +BoxSetMosaic: @ 0x080C9AD4 + push {lr} + bl RefreshCursorMonData + ldr r3, _080C9B24 + ldr r0, [r3] + movs r1, #0x89 + lsls r1, r1, #6 + adds r0, r0, r1 + ldr r2, [r0] + cmp r2, #0 + beq _080C9B20 + ldrb r0, [r2, #1] + movs r1, #0x10 + orrs r0, r1 + strb r0, [r2, #1] + ldr r1, [r3] + movs r0, #0x89 + lsls r0, r0, #6 + adds r1, r1, r0 + ldr r2, [r1] + movs r0, #0xa + strh r0, [r2, #0x2e] + ldr r2, [r1] + movs r0, #1 + strh r0, [r2, #0x30] + ldr r2, [r1] + ldr r0, _080C9B28 + str r0, [r2, #0x1c] + ldr r0, [r1] + ldrh r0, [r0, #0x2e] + lsls r1, r0, #0xc + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x4c + bl SetGpuReg +_080C9B20: + pop {r0} + bx r0 + .align 2, 0 +_080C9B24: .4byte 0x020399A8 +_080C9B28: .4byte 0x080C9B45 + thumb_func_end BoxSetMosaic + + thumb_func_start sub_080C9B2C +sub_080C9B2C: @ 0x080C9B2C + ldr r0, _080C9B40 + ldr r0, [r0] + movs r1, #0x89 + lsls r1, r1, #6 + adds r0, r0, r1 + ldr r0, [r0] + ldrb r0, [r0, #1] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1f + bx lr + .align 2, 0 +_080C9B40: .4byte 0x020399A8 + thumb_func_end sub_080C9B2C + + thumb_func_start sub_080C9B44 +sub_080C9B44: @ 0x080C9B44 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + ldrh r1, [r4, #0x30] + subs r0, r0, r1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _080C9B5A + movs r0, #0 + strh r0, [r4, #0x2e] +_080C9B5A: + ldrh r0, [r4, #0x2e] + lsls r1, r0, #0xc + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x4c + bl SetGpuReg + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080C9B82 + ldrb r0, [r4, #1] + movs r1, #0x11 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #1] + ldr r0, _080C9B88 + str r0, [r4, #0x1c] +_080C9B82: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C9B88: .4byte 0x08007141 + thumb_func_end sub_080C9B44 + + thumb_func_start LoadCursorMonSprite +LoadCursorMonSprite: @ 0x080C9B8C + push {r4, r5, r6, r7, lr} + sub sp, #0x28 + ldr r0, _080C9C20 + mov ip, r0 + ldr r1, [r0] + ldr r4, _080C9C24 + adds r0, r1, r4 + str r0, [sp, #0x18] + add r3, sp, #0x18 + movs r0, #0x82 + lsls r0, r0, #0xa + str r0, [r3, #4] + ldr r5, _080C9C28 + adds r1, r1, r5 + str r1, [sp, #0x20] + ldr r0, _080C9C2C + add r2, sp, #0x20 + str r0, [r2, #4] + mov r1, sp + ldr r0, _080C9C30 + ldm r0!, {r5, r6, r7} + stm r1!, {r5, r6, r7} + ldm r0!, {r5, r6, r7} + stm r1!, {r5, r6, r7} + movs r6, #0 + adds r7, r2, #0 + mov r5, ip + movs r2, #0 + ldr r1, _080C9C34 +_080C9BC6: + ldr r0, [r5] + adds r0, r0, r4 + adds r0, r0, r6 + strb r2, [r0] + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, r1 + bls _080C9BC6 + movs r6, #0 + ldr r5, _080C9C20 + ldr r4, _080C9C28 + movs r2, #0 +_080C9BE0: + ldr r0, [r5] + lsls r1, r6, #1 + adds r0, r0, r4 + adds r0, r0, r1 + strh r2, [r0] + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #0xf + bls _080C9BE0 + ldr r0, _080C9C20 + ldr r0, [r0] + movs r6, #0x89 + lsls r6, r6, #6 + adds r0, r0, r6 + movs r1, #0 + str r1, [r0] + adds r0, r3, #0 + bl LoadSpriteSheet + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0 + beq _080C9C94 + adds r0, r7, #0 + bl LoadSpritePalette + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xff + beq _080C9C94 + b _080C9C80 + .align 2, 0 +_080C9C20: .4byte 0x020399A8 +_080C9C24: .4byte 0x000022C4 +_080C9C28: .4byte 0x00002244 +_080C9C2C: .4byte 0x0000DAC6 +_080C9C30: .4byte 0x0854CA04 +_080C9C34: .4byte 0x000007FF +_080C9C38: + ldr r0, _080C9C6C + ldr r2, [r0] + movs r7, #0x89 + lsls r7, r7, #6 + adds r3, r2, r7 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080C9C70 + adds r0, r0, r1 + str r0, [r3] + lsls r0, r4, #4 + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r0, r1 + ldr r3, _080C9C74 + adds r1, r2, r3 + strh r0, [r1] + ldr r6, _080C9C78 + adds r2, r2, r6 + lsls r0, r5, #5 + ldr r7, _080C9C7C + adds r0, r0, r7 + str r0, [r2] + b _080C9C94 + .align 2, 0 +_080C9C6C: .4byte 0x020399A8 +_080C9C70: .4byte 0x020205AC +_080C9C74: .4byte 0x0000223A +_080C9C78: .4byte 0x0000223C +_080C9C7C: .4byte 0x06010000 +_080C9C80: + mov r0, sp + movs r1, #0x28 + movs r2, #0x30 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x40 + bne _080C9C38 +_080C9C94: + ldr r0, _080C9CB8 + ldr r0, [r0] + movs r1, #0x89 + lsls r1, r1, #6 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #0 + bne _080C9CB0 + movs r0, #2 + bl FreeSpriteTilesByTag + ldr r0, _080C9CBC + bl FreeSpritePaletteByTag +_080C9CB0: + add sp, #0x28 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080C9CB8: .4byte 0x020399A8 +_080C9CBC: .4byte 0x0000DAC6 + thumb_func_end LoadCursorMonSprite + + thumb_func_start LoadCursorMonGfx +LoadCursorMonGfx: @ 0x080C9CC0 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r3, r1, #0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r6, _080C9D3C + ldr r2, [r6] + movs r7, #0x89 + lsls r7, r7, #6 + adds r0, r2, r7 + ldr r0, [r0] + cmp r0, #0 + beq _080C9D66 + cmp r4, #0 + beq _080C9D5C + lsls r0, r4, #3 + ldr r1, _080C9D40 + adds r0, r0, r1 + ldr r5, _080C9D44 + adds r1, r2, r5 + movs r2, #1 + str r2, [sp] + adds r2, r4, #0 + bl LoadSpecialPokePic + ldr r1, [r6] + ldr r2, _080C9D48 + adds r0, r1, r2 + ldr r0, [r0] + ldr r4, _080C9D4C + adds r1, r1, r4 + bl LZ77UnCompWram + ldr r0, [r6] + adds r5, r0, r5 + ldr r1, _080C9D50 + adds r0, r0, r1 + ldr r1, [r0] + ldr r2, _080C9D54 + adds r0, r5, #0 + bl CpuSet + ldr r0, [r6] + adds r4, r0, r4 + ldr r2, _080C9D58 + adds r0, r0, r2 + ldrh r1, [r0] + adds r0, r4, #0 + movs r2, #0x20 + bl LoadPalette + ldr r0, [r6] + adds r0, r0, r7 + ldr r1, [r0] + adds r1, #0x3e + ldrb r2, [r1] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + b _080C9D66 + .align 2, 0 +_080C9D3C: .4byte 0x020399A8 +_080C9D40: .4byte 0x082DDA1C +_080C9D44: .4byte 0x000022C4 +_080C9D48: .4byte 0x00000CDC +_080C9D4C: .4byte 0x00002244 +_080C9D50: .4byte 0x0000223C +_080C9D54: .4byte 0x04000200 +_080C9D58: .4byte 0x0000223A +_080C9D5C: + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_080C9D66: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LoadCursorMonGfx + + thumb_func_start PrintCursorMonInfo +PrintCursorMonInfo: @ 0x080C9D70 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + movs r0, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r6, _080C9DF0 + ldr r2, [r6] + ldrb r0, [r2, #1] + cmp r0, #3 + beq _080C9DFC + movs r4, #0 + movs r5, #0 + mov r8, r6 +_080C9D90: + lsls r0, r4, #3 + adds r0, r0, r4 + lsls r0, r0, #2 + ldr r1, _080C9DF4 + adds r0, r0, r1 + mov r2, r8 + ldr r1, [r2] + adds r2, r1, r0 + movs r3, #0 + cmp r4, #2 + bne _080C9DA8 + movs r3, #4 +_080C9DA8: + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + movs r7, #0xff + str r7, [sp, #4] + movs r6, #0 + str r6, [sp, #8] + movs r0, #0 + movs r1, #1 + bl AddTextPrinterParameterized + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r5, #0 + adds r0, #0xd + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r4, #2 + bls _080C9D90 + ldr r0, _080C9DF0 + ldr r2, [r0] + ldr r0, _080C9DF8 + adds r2, r2, r0 + adds r0, r5, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + str r7, [sp, #4] + str r6, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r3, #0 + bl AddTextPrinterParameterized + b _080C9E52 + .align 2, 0 +_080C9DF0: .4byte 0x020399A8 +_080C9DF4: .4byte 0x00000CF9 +_080C9DF8: .4byte 0x00000D65 +_080C9DFC: + ldr r1, _080C9E8C + adds r2, r2, r1 + movs r1, #0 + str r1, [sp] + movs r0, #0xff + str r0, [sp, #4] + str r1, [sp, #8] + movs r0, #0 + movs r3, #0 + bl AddTextPrinterParameterized + movs r4, #0 + movs r5, #0xf +_080C9E16: + lsls r0, r4, #3 + adds r0, r0, r4 + lsls r0, r0, #2 + ldr r2, _080C9E90 + adds r0, r0, r2 + ldr r1, [r6] + adds r2, r1, r0 + movs r3, #0 + cmp r4, #2 + bne _080C9E2C + movs r3, #4 +_080C9E2C: + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + movs r1, #1 + bl AddTextPrinterParameterized + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r5, #0 + adds r0, #0xd + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r4, #2 + bls _080C9E16 +_080C9E52: + movs r0, #0 + movs r1, #2 + bl CopyWindowToVram + ldr r4, _080C9E94 + ldr r1, [r4] + ldr r2, _080C9E98 + adds r0, r1, r2 + ldrh r0, [r0] + cmp r0, #0 + beq _080C9EA0 + adds r2, #7 + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, #0xb5 + adds r1, r1, r2 + ldr r1, [r1] + bl sub_081205A4 + ldr r0, [r4] + ldr r1, _080C9E9C + adds r0, r0, r1 + ldr r1, [r0] + adds r1, #0x3e + ldrb r2, [r1] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + b _080C9EAE + .align 2, 0 +_080C9E8C: .4byte 0x00000D65 +_080C9E90: .4byte 0x00000CF9 +_080C9E94: .4byte 0x020399A8 +_080C9E98: .4byte 0x00000CE4 +_080C9E9C: .4byte 0x00000D94 +_080C9EA0: + ldr r2, _080C9EBC + adds r0, r1, r2 + ldr r1, [r0] + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 +_080C9EAE: + strb r0, [r1] + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080C9EBC: .4byte 0x00000D94 + thumb_func_end PrintCursorMonInfo + + thumb_func_start sub_080C9EC0 +sub_080C9EC0: @ 0x080C9EC0 + push {r4, lr} + sub sp, #4 + ldr r0, _080C9F0C + ldr r0, [r0] + ldr r1, _080C9F10 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0 + beq _080C9F18 + movs r0, #2 + str r0, [sp] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #8 + bl sub_080D204C + movs r4, #0 +_080C9EE4: + ldr r0, _080C9F0C + ldr r0, [r0] + lsls r1, r4, #2 + ldr r2, _080C9F14 + adds r0, r0, r2 + adds r0, r0, r1 + ldr r0, [r0] + lsls r1, r4, #1 + adds r1, #1 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl StartSpriteAnimIfDifferent + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #1 + bls _080C9EE4 + b _080C9F4A + .align 2, 0 +_080C9F0C: .4byte 0x020399A8 +_080C9F10: .4byte 0x00000CE4 +_080C9F14: .4byte 0x00000D98 +_080C9F18: + movs r0, #2 + str r0, [sp] + movs r0, #0 + movs r1, #0 + movs r2, #2 + movs r3, #8 + bl sub_080D204C + movs r4, #0 +_080C9F2A: + ldr r0, _080C9F60 + ldr r0, [r0] + lsls r1, r4, #2 + ldr r2, _080C9F64 + adds r0, r0, r2 + adds r0, r0, r1 + ldr r0, [r0] + lsls r1, r4, #0x19 + lsrs r1, r1, #0x18 + bl StartSpriteAnim + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #1 + bls _080C9F2A +_080C9F4A: + movs r0, #0 + bl sub_080D21B8 + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C9F60: .4byte 0x020399A8 +_080C9F64: .4byte 0x00000D98 + thumb_func_end sub_080C9EC0 + + thumb_func_start sub_080C9F68 +sub_080C9F68: @ 0x080C9F68 + push {r4, lr} + sub sp, #4 + ldr r0, _080C9FE0 + ldr r4, _080C9FE4 + ldr r1, [r4] + adds r1, #0xb0 + bl LZ77UnCompWram + ldr r0, _080C9FE8 + movs r1, #0x10 + movs r2, #0x20 + bl LoadPalette + ldr r2, [r4] + adds r2, #0xb0 + movs r0, #0x16 + str r0, [sp] + movs r0, #1 + movs r1, #1 + movs r3, #0xc + bl sub_080D1EE4 + ldr r2, _080C9FEC + movs r0, #4 + str r0, [sp] + movs r0, #2 + movs r1, #1 + movs r3, #9 + bl sub_080D1EE4 + movs r0, #1 + movs r1, #0xa + movs r2, #0 + bl sub_080D2010 + movs r0, #2 + movs r1, #0x15 + movs r2, #0 + bl sub_080D2010 + bl sub_080CA2D8 + ldr r0, _080C9FF0 + ldrb r0, [r0] + cmp r0, #0 + beq _080C9FF4 + movs r0, #1 + bl sub_080CA1E8 + movs r0, #1 + bl CreatePartyMonsSprites + movs r0, #2 + bl sub_080D21B8 + movs r0, #1 + bl sub_080D21B8 + b _080CA016 + .align 2, 0 +_080C9FE0: .4byte 0x0854C65C +_080C9FE4: .4byte 0x020399A8 +_080C9FE8: .4byte 0x0854BF3C +_080C9FEC: .4byte 0x0854C70C +_080C9FF0: .4byte 0x020399AC +_080C9FF4: + movs r0, #2 + str r0, [sp] + movs r0, #1 + movs r1, #0 + movs r2, #0x14 + movs r3, #0xc + bl sub_080D204C + movs r0, #1 + bl sub_080CA1E8 + movs r0, #1 + bl sub_080D21B8 + movs r0, #2 + bl sub_080D21B8 +_080CA016: + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + ldr r0, _080CA030 + ldr r0, [r0] + ldr r1, _080CA034 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CA030: .4byte 0x020399A8 +_080CA034: .4byte 0x000002C7 + thumb_func_end sub_080C9F68 + + thumb_func_start SetUpShowPartyMenu +SetUpShowPartyMenu: @ 0x080CA038 + push {lr} + ldr r0, _080CA064 + ldr r1, [r0] + movs r0, #0xb0 + lsls r0, r0, #2 + adds r2, r1, r0 + movs r3, #0 + movs r0, #0x14 + strh r0, [r2] + ldr r0, _080CA068 + adds r2, r1, r0 + movs r0, #2 + strh r0, [r2] + ldr r0, _080CA06C + adds r1, r1, r0 + strb r3, [r1] + movs r0, #0 + bl CreatePartyMonsSprites + pop {r0} + bx r0 + .align 2, 0 +_080CA064: .4byte 0x020399A8 +_080CA068: .4byte 0x000002C2 +_080CA06C: .4byte 0x000002C5 + thumb_func_end SetUpShowPartyMenu + + thumb_func_start ShowPartyMenu +ShowPartyMenu: @ 0x080CA070 + push {r4, lr} + ldr r4, _080CA0CC + ldr r2, [r4] + ldr r1, _080CA0D0 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #0x14 + beq _080CA0DE + movs r0, #0xb0 + lsls r0, r0, #2 + adds r1, r2, r0 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + ldr r0, _080CA0D4 + adds r1, r2, r0 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + movs r0, #1 + movs r1, #3 + movs r2, #1 + bl sub_080D2094 + movs r0, #1 + bl sub_080D21B8 + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #8 + bl sub_080CB364 + ldr r1, [r4] + ldr r0, _080CA0D0 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x14 + beq _080CA0D8 + movs r0, #1 + b _080CA0E0 + .align 2, 0 +_080CA0CC: .4byte 0x020399A8 +_080CA0D0: .4byte 0x000002C5 +_080CA0D4: .4byte 0x000002C2 +_080CA0D8: + ldr r1, _080CA0E8 + movs r0, #1 + strb r0, [r1] +_080CA0DE: + movs r0, #0 +_080CA0E0: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080CA0E8: .4byte 0x020399AC + thumb_func_end ShowPartyMenu + + thumb_func_start SetUpHidePartyMenu +SetUpHidePartyMenu: @ 0x080CA0EC + push {r4, lr} + ldr r4, _080CA120 + ldr r1, [r4] + movs r0, #0xb0 + lsls r0, r0, #2 + adds r2, r1, r0 + movs r3, #0 + movs r0, #0 + strh r0, [r2] + ldr r0, _080CA124 + adds r2, r1, r0 + movs r0, #0x16 + strh r0, [r2] + ldr r0, _080CA128 + adds r1, r1, r0 + strb r3, [r1] + ldr r0, [r4] + ldrb r0, [r0, #1] + cmp r0, #3 + bne _080CA118 + bl sub_080D0A6C +_080CA118: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CA120: .4byte 0x020399A8 +_080CA124: .4byte 0x000002C2 +_080CA128: .4byte 0x000002C5 + thumb_func_end SetUpHidePartyMenu + + thumb_func_start HidePartyMenu +HidePartyMenu: @ 0x080CA12C + push {r4, r5, lr} + sub sp, #8 + ldr r5, _080CA1A4 + ldr r2, [r5] + ldr r1, _080CA1A8 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #0x14 + beq _080CA1D8 + movs r0, #0xb0 + lsls r0, r0, #2 + adds r1, r2, r0 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + ldr r4, _080CA1AC + adds r1, r2, r4 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + movs r2, #1 + rsbs r2, r2, #0 + movs r0, #1 + movs r1, #3 + bl sub_080D2094 + movs r0, #1 + bl sub_080D21B8 + movs r1, #0x80 + lsls r1, r1, #1 + ldr r0, [r5] + adds r0, r0, r4 + ldrb r3, [r0] + movs r0, #0xc + str r0, [sp] + movs r0, #1 + str r0, [sp, #4] + movs r2, #0xa + bl FillBgTilemapBufferRect_Palette0 + movs r0, #8 + rsbs r0, r0, #0 + bl sub_080CB364 + ldr r1, [r5] + ldr r0, _080CA1A8 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x14 + beq _080CA1B0 + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #1 + b _080CA1DA + .align 2, 0 +_080CA1A4: .4byte 0x020399A8 +_080CA1A8: .4byte 0x000002C5 +_080CA1AC: .4byte 0x000002C2 +_080CA1B0: + ldr r0, _080CA1E4 + movs r1, #0 + strb r1, [r0] + bl DestroyAllPartyMonIcons + bl CompactPartySlots + movs r0, #2 + str r0, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #9 + bl sub_080D204C + movs r0, #2 + bl sub_080D21B8 + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram +_080CA1D8: + movs r0, #0 +_080CA1DA: + add sp, #8 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080CA1E4: .4byte 0x020399AC + thumb_func_end HidePartyMenu + + thumb_func_start sub_080CA1E8 +sub_080CA1E8: @ 0x080CA1E8 + push {lr} + sub sp, #4 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080CA202 + movs r0, #2 + str r0, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #9 + bl sub_080D204C + b _080CA210 +_080CA202: + movs r0, #2 + str r0, [sp] + movs r1, #0 + movs r2, #2 + movs r3, #9 + bl sub_080D204C +_080CA210: + movs r0, #2 + bl sub_080D21B8 + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080CA1E8 + + thumb_func_start sub_080CA224 +sub_080CA224: @ 0x080CA224 + ldr r2, _080CA244 + ldr r0, [r2] + ldr r1, _080CA248 + adds r0, r0, r1 + movs r3, #1 + strb r3, [r0] + ldr r0, [r2] + adds r1, #1 + adds r0, r0, r1 + movs r1, #0x1e + strb r1, [r0] + ldr r0, [r2] + ldr r1, _080CA24C + adds r0, r0, r1 + strb r3, [r0] + bx lr + .align 2, 0 +_080CA244: .4byte 0x020399A8 +_080CA248: .4byte 0x000002C7 +_080CA24C: .4byte 0x000002C9 + thumb_func_end sub_080CA224 + + thumb_func_start sub_080CA250 +sub_080CA250: @ 0x080CA250 + push {lr} + ldr r0, _080CA270 + ldr r0, [r0] + ldr r2, _080CA274 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, #0 + beq _080CA26A + movs r0, #0 + strb r0, [r1] + movs r0, #1 + bl sub_080CA1E8 +_080CA26A: + pop {r0} + bx r0 + .align 2, 0 +_080CA270: .4byte 0x020399A8 +_080CA274: .4byte 0x000002C7 + thumb_func_end sub_080CA250 + + thumb_func_start sub_080CA278 +sub_080CA278: @ 0x080CA278 + push {r4, lr} + ldr r3, _080CA2CC + ldr r1, [r3] + ldr r2, _080CA2D0 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080CA2C4 + movs r0, #0xb2 + lsls r0, r0, #2 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1e + bls _080CA2C4 + ldr r0, [r3] + movs r1, #0xb2 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + ldr r0, [r3] + movs r2, #0 + ldr r4, _080CA2D4 + adds r1, r0, r4 + ldrb r0, [r1] + cmp r0, #0 + bne _080CA2B8 + movs r2, #1 +_080CA2B8: + strb r2, [r1] + ldr r0, [r3] + adds r0, r0, r4 + ldrb r0, [r0] + bl sub_080CA1E8 +_080CA2C4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CA2CC: .4byte 0x020399A8 +_080CA2D0: .4byte 0x000002C7 +_080CA2D4: .4byte 0x000002C9 + thumb_func_end sub_080CA278 + + thumb_func_start sub_080CA2D8 +sub_080CA2D8: @ 0x080CA2D8 + push {r4, lr} + movs r4, #1 +_080CA2DC: + movs r0, #0x64 + muls r0, r4, r0 + ldr r1, _080CA308 + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + adds r0, r4, #0 + bl sub_080CA30C + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #5 + bls _080CA2DC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CA308: .4byte 0x02024190 + thumb_func_end sub_080CA2D8 + + thumb_func_start sub_080CA30C +sub_080CA30C: @ 0x080CA30C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + ldr r7, _080CA378 + cmp r1, #0 + beq _080CA31C + ldr r7, _080CA37C +_080CA31C: + subs r0, #1 + lsls r1, r0, #1 + adds r1, r1, r0 + adds r1, #1 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #0x12 + movs r1, #0xe0 + lsls r1, r1, #0xb + adds r0, r0, r1 + lsrs r3, r0, #0x10 + movs r0, #0 + ldr r1, _080CA380 + mov ip, r1 +_080CA338: + movs r2, #0 + adds r4, r7, #0 + adds r4, #8 + adds r5, r3, #0 + adds r5, #0xc + adds r6, r0, #1 +_080CA344: + mov r0, ip + ldr r1, [r0] + adds r0, r3, r2 + lsls r0, r0, #1 + adds r1, #0xb0 + adds r1, r1, r0 + lsls r0, r2, #1 + adds r0, r0, r7 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #3 + bls _080CA344 + adds r7, r4, #0 + lsls r0, r5, #0x10 + lsrs r3, r0, #0x10 + lsls r0, r6, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #2 + bls _080CA338 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080CA378: .4byte 0x0854C76C +_080CA37C: .4byte 0x0854C754 +_080CA380: .4byte 0x020399A8 + thumb_func_end sub_080CA30C + + thumb_func_start sub_080CA384 +sub_080CA384: @ 0x080CA384 + push {lr} + sub sp, #4 + bl sub_080CA2D8 + movs r0, #0x16 + str r0, [sp] + movs r0, #1 + movs r1, #0 + movs r2, #0 + movs r3, #0xc + bl sub_080D204C + movs r0, #1 + bl sub_080D21B8 + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080CA384 + + thumb_func_start SetUpDoShowPartyMenu +SetUpDoShowPartyMenu: @ 0x080CA3B0 + push {lr} + ldr r0, _080CA3CC + ldr r0, [r0] + ldr r1, _080CA3D0 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + movs r0, #6 + bl PlaySE + bl SetUpShowPartyMenu + pop {r0} + bx r0 + .align 2, 0 +_080CA3CC: .4byte 0x020399A8 +_080CA3D0: .4byte 0x000002C6 + thumb_func_end SetUpDoShowPartyMenu + + thumb_func_start DoShowPartyMenu +DoShowPartyMenu: @ 0x080CA3D4 + push {r4, r5, lr} + ldr r4, _080CA3F0 + ldr r0, [r4] + ldr r5, _080CA3F4 + adds r0, r0, r5 + ldrb r0, [r0] + cmp r0, #1 + beq _080CA40E + cmp r0, #1 + bgt _080CA3F8 + cmp r0, #0 + beq _080CA3FE + b _080CA43C + .align 2, 0 +_080CA3F0: .4byte 0x020399A8 +_080CA3F4: .4byte 0x000002C6 +_080CA3F8: + cmp r0, #2 + beq _080CA438 + b _080CA43C +_080CA3FE: + bl ShowPartyMenu + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080CA43C + bl sub_080CD41C + b _080CA428 +_080CA40E: + bl sub_080CCDD0 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080CA43C + ldr r0, [r4] + ldr r1, _080CA434 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _080CA428 + bl BoxSetMosaic +_080CA428: + ldr r1, [r4] + adds r1, r1, r5 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080CA43C + .align 2, 0 +_080CA434: .4byte 0x00000CEA +_080CA438: + movs r0, #0 + b _080CA43E +_080CA43C: + movs r0, #1 +_080CA43E: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end DoShowPartyMenu + + thumb_func_start sub_080CA444 +sub_080CA444: @ 0x080CA444 + push {r4, lr} + ldr r4, _080CA474 + bl StorageGetCurrentBox + ldrb r1, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r1, r0 + beq _080CA46E + ldr r0, _080CA478 + bl FlagClear + ldr r4, _080CA47C + bl StorageGetCurrentBox + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl VarSet +_080CA46E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CA474: .4byte 0x020399B0 +_080CA478: .4byte 0x000008D7 +_080CA47C: .4byte 0x00004036 + thumb_func_end sub_080CA444 + + thumb_func_start sub_080CA480 +sub_080CA480: @ 0x080CA480 + push {lr} + sub sp, #0xc + movs r1, #0xe8 + lsls r1, r1, #5 + movs r0, #8 + bl SetGpuReg + movs r0, #1 + movs r1, #2 + movs r2, #0xd0 + bl LoadUserWindowBorderGfx + movs r0, #0x20 + str r0, [sp] + movs r0, #0x14 + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect + movs r0, #0 + bl CopyBgTilemapBufferToVram + add sp, #0xc + pop {r0} + bx r0 + thumb_func_end sub_080CA480 + + thumb_func_start PrintStorageActionText +PrintStorageActionText: @ 0x080CA4BC + push {r4, r5, r6, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + bl DynamicPlaceholderTextUtil_Reset + ldr r1, _080CA4E0 + lsls r0, r6, #3 + adds r0, r0, r1 + ldrb r0, [r0, #4] + cmp r0, #7 + bhi _080CA594 + lsls r0, r0, #2 + ldr r1, _080CA4E4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080CA4E0: .4byte 0x0854CA1C +_080CA4E4: .4byte 0x080CA4E8 +_080CA4E8: @ jump table + .4byte _080CA594 @ case 0 + .4byte _080CA508 @ case 1 + .4byte _080CA508 @ case 2 + .4byte _080CA508 @ case 3 + .4byte _080CA51C @ case 4 + .4byte _080CA51C @ case 5 + .4byte _080CA51C @ case 6 + .4byte _080CA534 @ case 7 +_080CA508: + ldr r0, _080CA514 + ldr r1, [r0] + ldr r0, _080CA518 + adds r1, r1, r0 + b _080CA524 + .align 2, 0 +_080CA514: .4byte 0x020399A8 +_080CA518: .4byte 0x00000CEE +_080CA51C: + ldr r0, _080CA52C + ldr r1, [r0] + ldr r2, _080CA530 + adds r1, r1, r2 +_080CA524: + movs r0, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + b _080CA594 + .align 2, 0 +_080CA52C: .4byte 0x020399A8 +_080CA530: .4byte 0x000021E0 +_080CA534: + bl IsActiveItemMoving + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080CA558 + ldr r0, _080CA550 + ldr r4, [r0] + ldr r0, _080CA554 + adds r4, r4, r0 + bl GetMovingItemName + adds r1, r0, #0 + adds r0, r4, #0 + b _080CA564 + .align 2, 0 +_080CA550: .4byte 0x020399A8 +_080CA554: .4byte 0x000021EB +_080CA558: + ldr r0, _080CA56C + ldr r1, [r0] + ldr r2, _080CA570 + adds r0, r1, r2 + ldr r2, _080CA574 + adds r1, r1, r2 +_080CA564: + bl StringCopy + adds r2, r0, #0 + b _080CA57A + .align 2, 0 +_080CA56C: .4byte 0x020399A8 +_080CA570: .4byte 0x000021EB +_080CA574: .4byte 0x00000D65 +_080CA578: + adds r2, r1, #0 +_080CA57A: + subs r1, r2, #1 + ldrb r0, [r1] + cmp r0, #0 + beq _080CA578 + movs r0, #0xff + strb r0, [r2] + ldr r0, _080CA5F0 + ldr r1, [r0] + ldr r0, _080CA5F4 + adds r1, r1, r0 + movs r0, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr +_080CA594: + ldr r5, _080CA5F0 + ldr r0, [r5] + ldr r4, _080CA5F8 + adds r0, r0, r4 + ldr r2, _080CA5FC + lsls r1, r6, #3 + adds r1, r1, r2 + ldr r1, [r1] + bl DynamicPlaceholderTextUtil_ExpandPlaceholders + movs r0, #1 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r2, [r5] + adds r2, r2, r4 + movs r0, #2 + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + movs r0, #1 + movs r1, #2 + movs r2, #0xe + bl DrawTextBorderOuter + movs r0, #1 + bl PutWindowTilemap + movs r0, #1 + movs r1, #2 + bl CopyWindowToVram + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080CA5F0: .4byte 0x020399A8 +_080CA5F4: .4byte 0x000021EB +_080CA5F8: .4byte 0x00002190 +_080CA5FC: .4byte 0x0854CA1C + thumb_func_end PrintStorageActionText + + thumb_func_start ShowYesNoWindow +ShowYesNoWindow: @ 0x080CA600 + push {r4, lr} + sub sp, #0xc + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _080CA634 + movs r1, #0xb + str r1, [sp] + movs r1, #0xe + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + movs r2, #2 + movs r3, #2 + bl sub_08198C08 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + adds r0, r4, #0 + bl Menu_MoveCursorNoWrapAround + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CA634: .4byte 0x0854CB14 + thumb_func_end ShowYesNoWindow + + thumb_func_start ClearBottomWindow +ClearBottomWindow: @ 0x080CA638 + push {lr} + movs r0, #1 + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + pop {r0} + bx r0 + thumb_func_end ClearBottomWindow + + thumb_func_start AddWallpaperSetsMenu +AddWallpaperSetsMenu: @ 0x080CA64C + push {lr} + bl InitMenu + movs r0, #0x12 + bl SetMenuText + movs r0, #0x13 + bl SetMenuText + movs r0, #0x14 + bl SetMenuText + movs r0, #0x15 + bl SetMenuText + bl IsWaldaWallpaperUnlocked + cmp r0, #0 + beq _080CA678 + movs r0, #0x16 + bl SetMenuText +_080CA678: + bl AddMenu + pop {r0} + bx r0 + thumb_func_end AddWallpaperSetsMenu + + thumb_func_start AddWallpapersMenu +AddWallpapersMenu: @ 0x080CA680 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r5, r4, #0 + bl InitMenu + cmp r4, #1 + beq _080CA6BE + cmp r4, #1 + bgt _080CA69A + cmp r4, #0 + beq _080CA6A4 + b _080CA70A +_080CA69A: + cmp r5, #2 + beq _080CA6D8 + cmp r5, #3 + beq _080CA6F2 + b _080CA70A +_080CA6A4: + movs r0, #0x17 + bl SetMenuText + movs r0, #0x18 + bl SetMenuText + movs r0, #0x19 + bl SetMenuText + movs r0, #0x1a + bl SetMenuText + b _080CA70A +_080CA6BE: + movs r0, #0x1b + bl SetMenuText + movs r0, #0x1c + bl SetMenuText + movs r0, #0x1d + bl SetMenuText + movs r0, #0x1e + bl SetMenuText + b _080CA70A +_080CA6D8: + movs r0, #0x1f + bl SetMenuText + movs r0, #0x20 + bl SetMenuText + movs r0, #0x21 + bl SetMenuText + movs r0, #0x22 + bl SetMenuText + b _080CA70A +_080CA6F2: + movs r0, #0x23 + bl SetMenuText + movs r0, #0x24 + bl SetMenuText + movs r0, #0x25 + bl SetMenuText + movs r0, #0x26 + bl SetMenuText +_080CA70A: + bl AddMenu + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end AddWallpapersMenu + + thumb_func_start GetCurrentBoxOption +GetCurrentBoxOption: @ 0x080CA714 + ldr r0, _080CA71C + ldrb r0, [r0] + bx lr + .align 2, 0 +_080CA71C: .4byte 0x020399AD + thumb_func_end GetCurrentBoxOption + + thumb_func_start sub_080CA720 +sub_080CA720: @ 0x080CA720 + push {lr} + bl IsCursorOnBox + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080CA75C + ldr r0, _080CA748 + ldrb r0, [r0] + cmp r0, #0 + beq _080CA74C + bl sub_080CF684 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #1 + bl sub_080D062C + b _080CA75C + .align 2, 0 +_080CA748: .4byte 0x020399AC +_080CA74C: + bl sub_080CF684 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0 + bl sub_080D062C +_080CA75C: + ldr r1, _080CA774 + ldrh r0, [r1] + cmp r0, #0 + beq _080CA76E + bl sub_080D07D8 + movs r0, #3 + bl sub_080CF6D0 +_080CA76E: + pop {r0} + bx r0 + .align 2, 0 +_080CA774: .4byte 0x020399B2 + thumb_func_end sub_080CA720 + + thumb_func_start sub_080CA778 +sub_080CA778: @ 0x080CA778 + push {r4, r5, r6, lr} + bl LoadMonIconPalettes + movs r2, #0 + ldr r3, _080CA808 + ldr r5, _080CA80C + movs r4, #0 + adds r6, r3, #0 +_080CA788: + ldr r0, [r3] + lsls r1, r2, #1 + adds r0, r0, r5 + adds r0, r0, r1 + strh r4, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0x27 + bls _080CA788 + movs r2, #0 + ldr r5, _080CA808 + ldr r4, _080CA810 + movs r3, #0 +_080CA7A4: + ldr r0, [r5] + lsls r1, r2, #1 + adds r0, r0, r4 + adds r0, r0, r1 + strh r3, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0x27 + bls _080CA7A4 + movs r2, #0 + ldr r5, _080CA808 + movs r4, #0xa7 + lsls r4, r4, #4 + movs r3, #0 +_080CA7C2: + ldr r0, [r5] + lsls r1, r2, #2 + adds r0, r0, r4 + adds r0, r0, r1 + str r3, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #5 + bls _080CA7C2 + movs r2, #0 + ldr r5, _080CA808 + ldr r4, _080CA814 + movs r3, #0 +_080CA7DE: + ldr r0, [r5] + lsls r1, r2, #2 + adds r0, r0, r4 + adds r0, r0, r1 + str r3, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0x1d + bls _080CA7DE + ldr r0, [r6] + ldr r2, _080CA818 + adds r1, r0, r2 + movs r2, #0 + str r2, [r1] + ldr r1, _080CA81C + adds r0, r0, r1 + strh r2, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080CA808: .4byte 0x020399A8 +_080CA80C: .4byte 0x00000B08 +_080CA810: .4byte 0x00000B58 +_080CA814: .4byte 0x00000A88 +_080CA818: .4byte 0x00000A6C +_080CA81C: .4byte 0x0000078C + thumb_func_end sub_080CA778 + + thumb_func_start sub_080CA820 +sub_080CA820: @ 0x080CA820 + push {lr} + bl IsCursorInBox + lsls r0, r0, #0x18 + movs r1, #1 + cmp r0, #0 + beq _080CA830 + movs r1, #2 +_080CA830: + adds r0, r1, #0 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080CA820 + + thumb_func_start CreateMovingMonIcon +CreateMovingMonIcon: @ 0x080CA838 + push {r4, r5, r6, lr} + sub sp, #8 + ldr r5, _080CA88C + ldr r0, [r5] + ldr r4, _080CA890 + adds r0, r0, r4 + movs r1, #0 + bl GetMonData + adds r6, r0, #0 + ldr r0, [r5] + adds r0, r0, r4 + movs r1, #0x41 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + bl sub_080CA820 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + movs r0, #7 + str r0, [sp, #4] + adds r0, r4, #0 + adds r1, r6, #0 + movs r2, #0 + movs r3, #0 + bl sub_080CBAA4 + ldr r1, [r5] + ldr r2, _080CA894 + adds r1, r1, r2 + str r0, [r1] + ldr r1, _080CA898 + str r1, [r0, #0x1c] + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080CA88C: .4byte 0x020399A8 +_080CA890: .4byte 0x000020A4 +_080CA894: .4byte 0x00000A6C +_080CA898: .4byte 0x080CB975 + thumb_func_end CreateMovingMonIcon + + thumb_func_start sub_080CA89C +sub_080CA89C: @ 0x080CA89C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + movs r0, #0 + mov r8, r0 + movs r6, #0 + movs r7, #0 +_080CA8B6: + movs r5, #0 + adds r1, r7, #1 + mov sl, r1 +_080CA8BC: + mov r0, sb + adds r1, r6, #0 + movs r2, #0x41 + bl GetBoxMonDataAt + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0 + beq _080CA924 + mov r0, sb + adds r1, r6, #0 + movs r2, #0 + bl GetBoxMonDataAt + adds r1, r0, #0 + lsls r2, r5, #1 + adds r2, r2, r5 + lsls r2, r2, #0x13 + movs r3, #0xc8 + lsls r3, r3, #0xf + adds r2, r2, r3 + asrs r2, r2, #0x10 + lsls r3, r7, #1 + adds r3, r3, r7 + lsls r3, r3, #0x13 + movs r0, #0xb0 + lsls r0, r0, #0xe + adds r3, r3, r0 + movs r0, #2 + str r0, [sp] + movs r0, #0x13 + subs r0, r0, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + adds r0, r4, #0 + asrs r3, r3, #0x10 + bl sub_080CBAA4 + ldr r1, _080CA91C + ldr r1, [r1] + mov r3, r8 + lsls r2, r3, #2 + ldr r3, _080CA920 + adds r1, r1, r3 + adds r1, r1, r2 + str r0, [r1] + b _080CA934 + .align 2, 0 +_080CA91C: .4byte 0x020399A8 +_080CA920: .4byte 0x00000A88 +_080CA924: + ldr r0, _080CA9AC + ldr r0, [r0] + mov r2, r8 + lsls r1, r2, #2 + ldr r3, _080CA9B0 + adds r0, r0, r3 + adds r0, r0, r1 + str r4, [r0] +_080CA934: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #5 + bls _080CA8BC + mov r1, sl + lsls r0, r1, #0x10 + lsrs r7, r0, #0x10 + cmp r7, #4 + bls _080CA8B6 + ldr r0, _080CA9AC + ldr r0, [r0] + ldrb r0, [r0, #1] + cmp r0, #3 + bne _080CA99A + movs r6, #0 + movs r2, #0xd + rsbs r2, r2, #0 + adds r4, r2, #0 +_080CA96A: + mov r0, sb + adds r1, r6, #0 + movs r2, #0xc + bl GetBoxMonDataAt + cmp r0, #0 + bne _080CA990 + ldr r0, _080CA9AC + ldr r0, [r0] + lsls r1, r6, #2 + ldr r3, _080CA9B0 + adds r0, r0, r3 + adds r0, r0, r1 + ldr r2, [r0] + ldrb r0, [r2, #1] + ands r0, r4 + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #1] +_080CA990: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0x1d + bls _080CA96A +_080CA99A: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080CA9AC: .4byte 0x020399A8 +_080CA9B0: .4byte 0x00000A88 + thumb_func_end sub_080CA89C + + thumb_func_start sub_080CA9B4 +sub_080CA9B4: @ 0x080CA9B4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + adds r0, r7, #0 + movs r1, #0x41 + bl GetCurrentBoxMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + cmp r0, #0 + beq _080CAA4E + adds r0, r7, #0 + movs r1, #6 + bl __umodsi3 + adds r6, r0, #0 + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + lsls r5, r0, #1 + adds r5, r5, r0 + lsls r5, r5, #0x13 + movs r0, #0xc8 + lsls r0, r0, #0xf + adds r5, r5, r0 + lsrs r5, r5, #0x10 + adds r0, r7, #0 + movs r1, #6 + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #1 + adds r4, r4, r0 + lsls r4, r4, #0x13 + movs r0, #0xb0 + lsls r0, r0, #0xe + adds r4, r4, r0 + lsrs r4, r4, #0x10 + adds r0, r7, #0 + movs r1, #0 + bl GetCurrentBoxMonData + adds r1, r0, #0 + movs r0, #2 + str r0, [sp] + movs r0, #0x13 + subs r0, r0, r6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + mov r0, r8 + adds r2, r5, #0 + adds r3, r4, #0 + bl sub_080CBAA4 + adds r3, r0, #0 + ldr r0, _080CAA5C + ldr r2, [r0] + lsls r1, r7, #2 + ldr r4, _080CAA60 + adds r0, r2, r4 + adds r0, r0, r1 + str r3, [r0] + ldrb r0, [r2, #1] + cmp r0, #3 + bne _080CAA4E + ldrb r0, [r3, #1] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #4 + orrs r1, r0 + strb r1, [r3, #1] +_080CAA4E: + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080CAA5C: .4byte 0x020399A8 +_080CAA60: .4byte 0x00000A88 + thumb_func_end sub_080CA9B4 + + thumb_func_start sub_080CAA64 +sub_080CAA64: @ 0x080CAA64 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + movs r2, #0 + ldr r7, _080CAA9C + ldr r6, _080CAAA0 + movs r5, #1 + ldr r4, _080CAAA4 +_080CAA74: + ldr r0, [r7] + lsls r1, r2, #2 + adds r0, r0, r6 + adds r1, r0, r1 + ldr r0, [r1] + cmp r0, #0 + beq _080CAA8C + strh r3, [r0, #0x32] + ldr r0, [r1] + strh r5, [r0, #0x36] + ldr r0, [r1] + str r4, [r0, #0x1c] +_080CAA8C: + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0x1d + bls _080CAA74 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080CAA9C: .4byte 0x020399A8 +_080CAAA0: .4byte 0x00000A88 +_080CAAA4: .4byte 0x080CAAED + thumb_func_end sub_080CAA64 + + thumb_func_start sub_080CAAA8 +sub_080CAAA8: @ 0x080CAAA8 + push {lr} + adds r2, r0, #0 + ldrh r1, [r2, #0x30] + movs r3, #0x30 + ldrsh r0, [r2, r3] + cmp r0, #0 + beq _080CAAC4 + subs r0, r1, #1 + strh r0, [r2, #0x30] + ldrh r0, [r2, #0x32] + ldrh r1, [r2, #0x20] + adds r0, r0, r1 + strh r0, [r2, #0x20] + b _080CAADA +_080CAAC4: + ldr r0, _080CAAE0 + ldr r1, [r0] + ldr r3, _080CAAE4 + adds r1, r1, r3 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + ldrh r0, [r2, #0x34] + strh r0, [r2, #0x20] + ldr r0, _080CAAE8 + str r0, [r2, #0x1c] +_080CAADA: + pop {r0} + bx r0 + .align 2, 0 +_080CAAE0: .4byte 0x020399A8 +_080CAAE4: .4byte 0x00000C66 +_080CAAE8: .4byte 0x08007141 + thumb_func_end sub_080CAAA8 + + thumb_func_start sub_080CAAEC +sub_080CAAEC: @ 0x080CAAEC + push {lr} + adds r2, r0, #0 + ldrh r1, [r2, #0x36] + movs r3, #0x36 + ldrsh r0, [r2, r3] + cmp r0, #0 + beq _080CAB00 + subs r0, r1, #1 + strh r0, [r2, #0x36] + b _080CAB1C +_080CAB00: + ldrh r0, [r2, #0x32] + ldrh r1, [r2, #0x20] + adds r0, r0, r1 + strh r0, [r2, #0x20] + ldrh r1, [r2, #0x24] + adds r0, r0, r1 + strh r0, [r2, #0x38] + subs r0, #0x45 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xb6 + bls _080CAB1C + ldr r0, _080CAB20 + str r0, [r2, #0x1c] +_080CAB1C: + pop {r0} + bx r0 + .align 2, 0 +_080CAB20: .4byte 0x08007141 + thumb_func_end sub_080CAAEC + + thumb_func_start DestroyAllIconsInRow +DestroyAllIconsInRow: @ 0x080CAB24 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r6, #0 + ldr r7, _080CAB64 +_080CAB2E: + ldr r0, [r7] + lsls r4, r5, #2 + ldr r1, _080CAB68 + adds r0, r0, r1 + adds r0, r0, r4 + ldr r0, [r0] + cmp r0, #0 + beq _080CAB4E + bl DestroyBoxMonIcon + ldr r0, [r7] + ldr r1, _080CAB68 + adds r0, r0, r1 + adds r0, r0, r4 + movs r1, #0 + str r1, [r0] +_080CAB4E: + adds r0, r5, #6 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #4 + bls _080CAB2E + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080CAB64: .4byte 0x020399A8 +_080CAB68: .4byte 0x00000A88 + thumb_func_end DestroyAllIconsInRow + + thumb_func_start sub_080CAB6C +sub_080CAB6C: @ 0x080CAB6C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp, #8] + lsls r2, r2, #0x10 + movs r1, #0x2c + mov r8, r1 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #0x13 + movs r3, #0xc8 + lsls r3, r3, #0xf + adds r1, r1, r3 + lsrs r1, r1, #0x10 + str r1, [sp, #0x10] + ldr r1, [sp, #8] + adds r1, #1 + lsrs r6, r2, #0x10 + str r6, [sp, #0xc] + asrs r2, r2, #0x10 + muls r1, r2, r1 + ldr r2, [sp, #0x10] + subs r1, r2, r1 + lsls r1, r1, #0x10 + lsrs r2, r1, #0x10 + movs r1, #0x13 + subs r1, r1, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp, #0x14] + movs r3, #0 + mov sb, r3 + adds r5, r0, #0 + ldr r1, _080CAC50 + ldr r0, [r1] + ldrb r0, [r0, #1] + cmp r0, #3 + beq _080CAC64 + movs r7, #4 + lsls r2, r2, #0x10 + mov sl, r2 +_080CABCC: + ldr r6, _080CAC50 + ldr r2, [r6] + lsls r0, r5, #1 + ldr r3, _080CAC54 + adds r1, r2, r3 + adds r1, r1, r0 + ldrh r0, [r1] + cmp r0, #0 + beq _080CAC36 + lsls r4, r5, #2 + ldr r6, _080CAC58 + adds r1, r2, r6 + adds r1, r1, r4 + ldr r1, [r1] + mov r2, r8 + lsls r3, r2, #0x10 + asrs r3, r3, #0x10 + movs r2, #2 + str r2, [sp] + ldr r6, [sp, #0x14] + str r6, [sp, #4] + mov r6, sl + asrs r2, r6, #0x10 + bl sub_080CBAA4 + adds r2, r0, #0 + ldr r1, _080CAC50 + ldr r0, [r1] + ldr r3, _080CAC5C + adds r0, r0, r3 + adds r1, r0, r4 + str r2, [r1] + cmp r2, #0 + beq _080CAC36 + mov r6, sp + ldrh r6, [r6, #8] + strh r6, [r2, #0x30] + ldr r0, [r1] + mov r2, sp + ldrh r2, [r2, #0xc] + strh r2, [r0, #0x32] + ldr r0, [r1] + mov r3, sp + ldrh r3, [r3, #0x10] + strh r3, [r0, #0x34] + ldr r1, [r1] + ldr r0, _080CAC60 + str r0, [r1, #0x1c] + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 +_080CAC36: + adds r0, r5, #6 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + mov r0, r8 + adds r0, #0x18 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + subs r7, #1 + cmp r7, #0 + bge _080CABCC + b _080CAD1A + .align 2, 0 +_080CAC50: .4byte 0x020399A8 +_080CAC54: .4byte 0x00000BA8 +_080CAC58: .4byte 0x00000BE4 +_080CAC5C: .4byte 0x00000A88 +_080CAC60: .4byte 0x080CAAA9 +_080CAC64: + mov sl, r1 + movs r7, #4 + lsls r2, r2, #0x10 + str r2, [sp, #0x18] +_080CAC6C: + mov r6, sl + ldr r2, [r6] + lsls r0, r5, #1 + ldr r3, _080CAD2C + adds r1, r2, r3 + adds r1, r1, r0 + ldrh r0, [r1] + cmp r0, #0 + beq _080CAD04 + lsls r4, r5, #2 + ldr r6, _080CAD30 + adds r1, r2, r6 + adds r1, r1, r4 + ldr r1, [r1] + mov r2, r8 + lsls r3, r2, #0x10 + asrs r3, r3, #0x10 + movs r2, #2 + str r2, [sp] + ldr r6, [sp, #0x14] + str r6, [sp, #4] + ldr r6, [sp, #0x18] + asrs r2, r6, #0x10 + bl sub_080CBAA4 + adds r2, r0, #0 + mov r0, sl + ldr r3, [r0] + ldr r1, _080CAD34 + adds r0, r3, r1 + adds r1, r0, r4 + str r2, [r1] + cmp r2, #0 + beq _080CAD04 + mov r6, sp + ldrh r6, [r6, #8] + strh r6, [r2, #0x30] + ldr r0, [r1] + mov r2, sp + ldrh r2, [r2, #0xc] + strh r2, [r0, #0x32] + ldr r0, [r1] + mov r6, sp + ldrh r6, [r6, #0x10] + strh r6, [r0, #0x34] + ldr r1, [r1] + ldr r0, _080CAD38 + str r0, [r1, #0x1c] + ldr r1, _080CAD3C + adds r0, r3, r1 + ldrb r0, [r0] + adds r1, r5, #0 + movs r2, #0xc + bl GetBoxMonDataAt + cmp r0, #0 + bne _080CACFA + mov r2, sl + ldr r0, [r2] + ldr r3, _080CAD34 + adds r0, r0, r3 + adds r0, r0, r4 + ldr r2, [r0] + ldrb r1, [r2, #1] + movs r6, #0xd + rsbs r6, r6, #0 + adds r0, r6, #0 + ands r1, r0 + movs r0, #4 + orrs r1, r0 + strb r1, [r2, #1] +_080CACFA: + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 +_080CAD04: + adds r0, r5, #6 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + mov r0, r8 + adds r0, #0x18 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + subs r7, #1 + cmp r7, #0 + bge _080CAC6C +_080CAD1A: + mov r0, sb + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080CAD2C: .4byte 0x00000BA8 +_080CAD30: .4byte 0x00000BE4 +_080CAD34: .4byte 0x00000A88 +_080CAD38: .4byte 0x080CAAA9 +_080CAD3C: .4byte 0x00000C5C + thumb_func_end sub_080CAB6C + + thumb_func_start sub_080CAD40 +sub_080CAD40: @ 0x080CAD40 + push {r4, r5, r6, r7, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r6, _080CADA0 + ldr r1, [r6] + ldr r2, _080CADA4 + adds r1, r1, r2 + movs r5, #0 + strb r5, [r1] + ldr r1, [r6] + ldr r3, _080CADA8 + adds r1, r1, r3 + strb r0, [r1] + ldr r1, [r6] + ldr r7, _080CADAC + adds r1, r1, r7 + strb r4, [r1] + ldr r3, [r6] + movs r1, #0xc6 + lsls r1, r1, #4 + adds r2, r3, r1 + movs r1, #0x20 + strh r1, [r2] + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + lsls r1, r4, #1 + adds r1, r1, r4 + lsls r1, r1, #1 + rsbs r1, r1, #0 + subs r7, #5 + adds r2, r3, r7 + strh r1, [r2] + ldr r1, _080CADB0 + adds r3, r3, r1 + strh r5, [r3] + bl SetBoxSpeciesAndPersonalities + cmp r4, #0 + ble _080CADB8 + ldr r0, [r6] + ldr r2, _080CADB4 + adds r0, r0, r2 + movs r1, #0 + b _080CADC0 + .align 2, 0 +_080CADA0: .4byte 0x020399A8 +_080CADA4: .4byte 0x00000C6A +_080CADA8: .4byte 0x00000C6B +_080CADAC: .4byte 0x00000C69 +_080CADB0: .4byte 0x00000C66 +_080CADB4: .4byte 0x00000C68 +_080CADB8: + ldr r0, [r6] + ldr r3, _080CADEC + adds r0, r0, r3 + movs r1, #5 +_080CADC0: + strb r1, [r0] + ldr r0, _080CADF0 + ldr r2, [r0] + ldr r7, _080CADEC + adds r0, r2, r7 + ldrb r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, #0x64 + ldr r3, _080CADF4 + adds r1, r2, r3 + strh r0, [r1] + subs r7, #4 + adds r2, r2, r7 + movs r1, #0 + ldrsh r0, [r2, r1] + bl sub_080CAA64 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080CADEC: .4byte 0x00000C68 +_080CADF0: .4byte 0x020399A8 +_080CADF4: .4byte 0x00000C62 + thumb_func_end sub_080CAD40 + + thumb_func_start sub_080CADF8 +sub_080CADF8: @ 0x080CADF8 + push {r4, r5, r6, lr} + ldr r5, _080CAE24 + ldr r0, [r5] + movs r4, #0xc6 + lsls r4, r4, #4 + adds r1, r0, r4 + ldrh r0, [r1] + cmp r0, #0 + beq _080CAE0E + subs r0, #1 + strh r0, [r1] +_080CAE0E: + ldr r3, [r5] + ldr r6, _080CAE28 + adds r0, r3, r6 + ldrb r0, [r0] + cmp r0, #1 + beq _080CAE90 + cmp r0, #1 + bgt _080CAE2C + cmp r0, #0 + beq _080CAE34 + b _080CAF52 + .align 2, 0 +_080CAE24: .4byte 0x020399A8 +_080CAE28: .4byte 0x00000C6A +_080CAE2C: + cmp r0, #2 + bne _080CAE32 + b _080CAF40 +_080CAE32: + b _080CAF52 +_080CAE34: + ldr r0, _080CAE80 + adds r1, r3, r0 + ldr r2, _080CAE84 + adds r0, r3, r2 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + subs r0, #0x41 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xba + bhi _080CAE50 + b _080CAF5C +_080CAE50: + ldr r1, _080CAE88 + adds r0, r3, r1 + ldrb r0, [r0] + bl DestroyAllIconsInRow + ldr r2, [r5] + ldr r0, _080CAE80 + adds r3, r2, r0 + ldr r1, _080CAE8C + adds r0, r2, r1 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + ldrh r1, [r3] + adds r0, r0, r1 + strh r0, [r3] + adds r2, r2, r6 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + b _080CAF5C + .align 2, 0 +_080CAE80: .4byte 0x00000C62 +_080CAE84: .4byte 0x00000C64 +_080CAE88: .4byte 0x00000C68 +_080CAE8C: .4byte 0x00000C69 +_080CAE90: + ldr r2, _080CAEF4 + adds r1, r3, r2 + ldr r6, _080CAEF8 + adds r2, r3, r6 + ldrh r0, [r2] + ldrh r6, [r1] + adds r0, r0, r6 + strh r0, [r1] + ldr r6, _080CAEFC + adds r0, r3, r6 + ldrb r0, [r0] + adds r1, r3, r4 + ldrh r1, [r1] + movs r3, #0 + ldrsh r2, [r2, r3] + bl sub_080CAB6C + ldr r2, [r5] + ldr r3, _080CAF00 + adds r1, r2, r3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + ldr r1, _080CAF04 + adds r0, r2, r1 + movs r1, #0 + ldrsb r1, [r0, r1] + cmp r1, #0 + ble _080CAED6 + adds r0, r2, r6 + ldrb r0, [r0] + cmp r0, #5 + beq _080CAEE2 +_080CAED6: + cmp r1, #0 + bge _080CAF10 + adds r0, r2, r6 + ldrb r0, [r0] + cmp r0, #0 + bne _080CAF10 +_080CAEE2: + ldr r0, _080CAF08 + ldr r1, [r0] + ldr r2, _080CAF0C + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080CAF5C + .align 2, 0 +_080CAEF4: .4byte 0x00000C62 +_080CAEF8: .4byte 0x00000C64 +_080CAEFC: .4byte 0x00000C68 +_080CAF00: .4byte 0x00000C66 +_080CAF04: .4byte 0x00000C69 +_080CAF08: .4byte 0x020399A8 +_080CAF0C: .4byte 0x00000C6A +_080CAF10: + ldr r3, _080CAF30 + ldr r0, [r3] + ldr r6, _080CAF34 + adds r1, r0, r6 + ldr r2, _080CAF38 + adds r0, r0, r2 + ldrb r0, [r0] + ldrb r6, [r1] + adds r0, r0, r6 + movs r2, #0 + strb r0, [r1] + ldr r0, [r3] + ldr r1, _080CAF3C + adds r0, r0, r1 + strb r2, [r0] + b _080CAF5C + .align 2, 0 +_080CAF30: .4byte 0x020399A8 +_080CAF34: .4byte 0x00000C68 +_080CAF38: .4byte 0x00000C69 +_080CAF3C: .4byte 0x00000C6A +_080CAF40: + ldr r2, _080CAF58 + adds r0, r3, r2 + ldrh r0, [r0] + cmp r0, #0 + bne _080CAF5C + adds r1, r3, r4 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_080CAF52: + movs r0, #0 + b _080CAF5E + .align 2, 0 +_080CAF58: .4byte 0x00000C66 +_080CAF5C: + movs r0, #1 +_080CAF5E: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_080CADF8 + + thumb_func_start SetBoxSpeciesAndPersonalities +SetBoxSpeciesAndPersonalities: @ 0x080CAF64 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r5, #0 + movs r0, #0 + ldr r1, _080CAFDC + mov sb, r1 +_080CAF78: + adds r0, #1 + mov r8, r0 + movs r7, #5 +_080CAF7E: + lsls r0, r5, #0x18 + lsrs r4, r0, #0x18 + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #0x41 + bl GetBoxMonDataAt + mov r2, sb + ldr r1, [r2] + lsls r2, r5, #1 + ldr r3, _080CAFE0 + adds r1, r1, r3 + adds r1, r1, r2 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080CAFB8 + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #0 + bl GetBoxMonDataAt + mov r2, sb + ldr r1, [r2] + lsls r2, r5, #2 + ldr r3, _080CAFE4 + adds r1, r1, r3 + adds r1, r1, r2 + str r0, [r1] +_080CAFB8: + adds r5, #1 + subs r7, #1 + cmp r7, #0 + bge _080CAF7E + mov r0, r8 + cmp r0, #4 + ble _080CAF78 + ldr r0, _080CAFDC + ldr r0, [r0] + ldr r1, _080CAFE8 + adds r0, r0, r1 + strb r6, [r0] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080CAFDC: .4byte 0x020399A8 +_080CAFE0: .4byte 0x00000BA8 +_080CAFE4: .4byte 0x00000BE4 +_080CAFE8: .4byte 0x00000C5C + thumb_func_end SetBoxSpeciesAndPersonalities + + thumb_func_start DestroyBoxMonIconAtPosition +DestroyBoxMonIconAtPosition: @ 0x080CAFEC + push {r4, r5, lr} + lsls r0, r0, #0x18 + ldr r5, _080CB018 + ldr r1, [r5] + lsrs r4, r0, #0x16 + ldr r0, _080CB01C + adds r1, r1, r0 + adds r1, r1, r4 + ldr r0, [r1] + cmp r0, #0 + beq _080CB012 + bl DestroyBoxMonIcon + ldr r0, [r5] + ldr r1, _080CB01C + adds r0, r0, r1 + adds r0, r0, r4 + movs r1, #0 + str r1, [r0] +_080CB012: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080CB018: .4byte 0x020399A8 +_080CB01C: .4byte 0x00000A88 + thumb_func_end DestroyBoxMonIconAtPosition + + thumb_func_start SetBoxMonIconObjMode +SetBoxMonIconObjMode: @ 0x080CB020 + push {lr} + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r2, r1, #0x18 + ldr r1, _080CB054 + ldr r1, [r1] + lsrs r0, r0, #0x16 + ldr r3, _080CB058 + adds r1, r1, r3 + adds r1, r1, r0 + ldr r3, [r1] + cmp r3, #0 + beq _080CB04E + movs r0, #3 + adds r1, r2, #0 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r3, #1] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #1] +_080CB04E: + pop {r0} + bx r0 + .align 2, 0 +_080CB054: .4byte 0x020399A8 +_080CB058: .4byte 0x00000A88 + thumb_func_end SetBoxMonIconObjMode + + thumb_func_start CreatePartyMonsSprites +CreatePartyMonsSprites: @ 0x080CB05C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r4, _080CB100 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r4, #0 + movs r1, #0 + bl GetMonData + adds r1, r0, #0 + movs r0, #1 + str r0, [sp] + movs r0, #0xc + str r0, [sp, #4] + adds r0, r5, #0 + movs r2, #0x68 + movs r3, #0x40 + bl sub_080CBAA4 + ldr r1, _080CB104 + ldr r1, [r1] + movs r2, #0xa7 + lsls r2, r2, #4 + adds r1, r1, r2 + str r0, [r1] + movs r7, #1 + movs r6, #1 +_080CB0A4: + movs r0, #0x64 + adds r1, r6, #0 + muls r1, r0, r1 + ldr r0, _080CB100 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0 + beq _080CB108 + adds r0, r4, #0 + movs r1, #0 + bl GetMonData + adds r1, r0, #0 + subs r0, r6, #1 + lsls r3, r0, #1 + adds r3, r3, r0 + lsls r3, r3, #0x13 + movs r0, #0x80 + lsls r0, r0, #0xd + adds r3, r3, r0 + asrs r3, r3, #0x10 + movs r0, #1 + str r0, [sp] + movs r0, #0xc + str r0, [sp, #4] + adds r0, r5, #0 + movs r2, #0x98 + bl sub_080CBAA4 + ldr r1, _080CB104 + ldr r1, [r1] + lsls r2, r6, #2 + movs r3, #0xa7 + lsls r3, r3, #4 + adds r1, r1, r3 + adds r1, r1, r2 + str r0, [r1] + adds r0, r7, #1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + b _080CB118 + .align 2, 0 +_080CB100: .4byte 0x02024190 +_080CB104: .4byte 0x020399A8 +_080CB108: + ldr r0, _080CB1BC + ldr r0, [r0] + lsls r1, r6, #2 + movs r2, #0xa7 + lsls r2, r2, #4 + adds r0, r0, r2 + adds r0, r0, r1 + str r5, [r0] +_080CB118: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #5 + bls _080CB0A4 + ldr r3, _080CB1BC + mov r0, r8 + cmp r0, #0 + bne _080CB15E + movs r6, #0 + cmp r6, r7 + bhs _080CB15E + mov ip, r3 + movs r5, #0xa7 + lsls r5, r5, #4 + movs r4, #4 +_080CB138: + mov r2, ip + ldr r1, [r2] + lsls r0, r6, #2 + adds r1, r1, r5 + adds r1, r1, r0 + ldr r2, [r1] + ldrh r0, [r2, #0x22] + subs r0, #0xa0 + strh r0, [r2, #0x22] + ldr r1, [r1] + adds r1, #0x3e + ldrb r0, [r1] + orrs r0, r4 + strb r0, [r1] + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, r7 + blo _080CB138 +_080CB15E: + ldr r0, [r3] + ldrb r0, [r0, #1] + cmp r0, #3 + bne _080CB1B0 + movs r6, #0 + adds r7, r3, #0 + movs r5, #0xa7 + lsls r5, r5, #4 +_080CB16E: + ldr r0, [r7] + lsls r4, r6, #2 + adds r0, r0, r5 + adds r0, r0, r4 + ldr r0, [r0] + cmp r0, #0 + beq _080CB1A6 + movs r0, #0x64 + muls r0, r6, r0 + ldr r1, _080CB1C0 + adds r0, r0, r1 + movs r1, #0xc + bl GetMonData + cmp r0, #0 + bne _080CB1A6 + ldr r0, [r7] + adds r0, r0, r5 + adds r0, r0, r4 + ldr r2, [r0] + ldrb r1, [r2, #1] + movs r3, #0xd + rsbs r3, r3, #0 + adds r0, r3, #0 + ands r1, r0 + movs r0, #4 + orrs r1, r0 + strb r1, [r2, #1] +_080CB1A6: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #5 + bls _080CB16E +_080CB1B0: + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080CB1BC: .4byte 0x020399A8 +_080CB1C0: .4byte 0x02024190 + thumb_func_end CreatePartyMonsSprites + + thumb_func_start sub_080CB1C4 +sub_080CB1C4: @ 0x080CB1C4 + push {r4, r5, r6, r7, lr} + sub sp, #4 + ldr r0, _080CB228 + ldr r1, [r0] + ldr r2, _080CB22C + adds r1, r1, r2 + movs r2, #0 + strb r2, [r1] + movs r5, #0 + movs r6, #0 + adds r3, r0, #0 + movs r7, #0xa7 + lsls r7, r7, #4 +_080CB1DE: + ldr r0, [r3] + lsls r4, r5, #2 + adds r0, r0, r7 + adds r0, r0, r4 + ldr r0, [r0] + cmp r0, #0 + beq _080CB214 + cmp r5, r6 + beq _080CB20E + adds r1, r6, #0 + str r3, [sp] + bl sub_080CB244 + ldr r3, [sp] + ldr r2, [r3] + adds r0, r2, r7 + adds r0, r0, r4 + movs r1, #0 + str r1, [r0] + ldr r0, _080CB22C + adds r2, r2, r0 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] +_080CB20E: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 +_080CB214: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #5 + bls _080CB1DE + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080CB228: .4byte 0x020399A8 +_080CB22C: .4byte 0x00000C5E + thumb_func_end sub_080CB1C4 + + thumb_func_start GetWaldaWallpaperPatternId +GetWaldaWallpaperPatternId: @ 0x080CB230 + ldr r0, _080CB23C + ldr r0, [r0] + ldr r1, _080CB240 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_080CB23C: .4byte 0x020399A8 +_080CB240: .4byte 0x00000C5E + thumb_func_end GetWaldaWallpaperPatternId + + thumb_func_start sub_080CB244 +sub_080CB244: @ 0x080CB244 + push {r4, lr} + adds r2, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + strh r1, [r2, #0x30] + cmp r1, #0 + bne _080CB258 + movs r3, #0x68 + movs r4, #0x40 + b _080CB26A +_080CB258: + movs r3, #0x98 + subs r1, #1 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #0x13 + movs r1, #0x80 + lsls r1, r1, #0xd + adds r0, r0, r1 + lsrs r4, r0, #0x10 +_080CB26A: + ldrh r0, [r2, #0x20] + lsls r0, r0, #3 + strh r0, [r2, #0x32] + ldrh r0, [r2, #0x22] + lsls r0, r0, #3 + strh r0, [r2, #0x34] + lsls r1, r3, #3 + movs r3, #0x32 + ldrsh r0, [r2, r3] + subs r0, r1, r0 + cmp r0, #0 + bge _080CB284 + adds r0, #7 +_080CB284: + asrs r0, r0, #3 + strh r0, [r2, #0x36] + lsls r0, r4, #0x10 + asrs r0, r0, #0xd + movs r3, #0x34 + ldrsh r1, [r2, r3] + subs r0, r0, r1 + cmp r0, #0 + bge _080CB298 + adds r0, #7 +_080CB298: + asrs r0, r0, #3 + strh r0, [r2, #0x38] + movs r0, #8 + strh r0, [r2, #0x3a] + ldr r0, _080CB2AC + str r0, [r2, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CB2AC: .4byte 0x080CB2B1 + thumb_func_end sub_080CB244 + + thumb_func_start sub_080CB2B0 +sub_080CB2B0: @ 0x080CB2B0 + push {r4, lr} + adds r3, r0, #0 + ldrh r2, [r3, #0x3a] + movs r1, #0x3a + ldrsh r0, [r3, r1] + cmp r0, #0 + beq _080CB2E0 + ldrh r0, [r3, #0x36] + ldrh r4, [r3, #0x32] + adds r0, r0, r4 + strh r0, [r3, #0x32] + ldrh r1, [r3, #0x38] + ldrh r4, [r3, #0x34] + adds r1, r1, r4 + strh r1, [r3, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x13 + strh r0, [r3, #0x20] + lsls r1, r1, #0x10 + asrs r1, r1, #0x13 + strh r1, [r3, #0x22] + subs r0, r2, #1 + strh r0, [r3, #0x3a] + b _080CB326 +_080CB2E0: + movs r1, #0x30 + ldrsh r0, [r3, r1] + cmp r0, #0 + bne _080CB2F0 + movs r0, #0x68 + strh r0, [r3, #0x20] + movs r0, #0x40 + b _080CB302 +_080CB2F0: + movs r0, #0x98 + strh r0, [r3, #0x20] + movs r4, #0x30 + ldrsh r1, [r3, r4] + subs r1, #1 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, #0x10 +_080CB302: + strh r0, [r3, #0x22] + ldr r0, _080CB32C + str r0, [r3, #0x1c] + ldr r0, _080CB330 + ldr r2, [r0] + movs r0, #0x30 + ldrsh r1, [r3, r0] + lsls r1, r1, #2 + movs r4, #0xa7 + lsls r4, r4, #4 + adds r0, r2, r4 + adds r0, r0, r1 + str r3, [r0] + ldr r0, _080CB334 + adds r2, r2, r0 + ldrb r0, [r2] + subs r0, #1 + strb r0, [r2] +_080CB326: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CB32C: .4byte 0x08007141 +_080CB330: .4byte 0x020399A8 +_080CB334: .4byte 0x00000C5E + thumb_func_end sub_080CB2B0 + + thumb_func_start DestroyMovingMonIcon +DestroyMovingMonIcon: @ 0x080CB338 + push {r4, lr} + ldr r4, _080CB35C + ldr r0, [r4] + ldr r1, _080CB360 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #0 + beq _080CB356 + bl DestroyBoxMonIcon + ldr r0, [r4] + ldr r1, _080CB360 + adds r0, r0, r1 + movs r1, #0 + str r1, [r0] +_080CB356: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CB35C: .4byte 0x020399A8 +_080CB360: .4byte 0x00000A6C + thumb_func_end DestroyMovingMonIcon + + thumb_func_start sub_080CB364 +sub_080CB364: @ 0x080CB364 + push {r4, r5, r6, lr} + movs r3, #0 + ldr r6, _080CB3BC + lsls r0, r0, #0x10 + asrs r4, r0, #0x10 + movs r5, #5 + rsbs r5, r5, #0 +_080CB372: + ldr r0, [r6] + lsls r1, r3, #2 + movs r2, #0xa7 + lsls r2, r2, #4 + adds r0, r0, r2 + adds r2, r0, r1 + ldr r1, [r2] + cmp r1, #0 + beq _080CB3CA + ldrh r0, [r1, #0x22] + adds r0, r4, r0 + strh r0, [r1, #0x22] + ldr r2, [r2] + ldrh r1, [r2, #0x26] + ldrh r0, [r2, #0x22] + adds r1, r1, r0 + adds r0, r2, #0 + adds r0, #0x29 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, r0, r1 + lsls r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #0xd + adds r0, r0, r1 + lsrs r0, r0, #0x10 + cmp r0, #0xc0 + bls _080CB3C0 + adds r0, r2, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + b _080CB3CA + .align 2, 0 +_080CB3BC: .4byte 0x020399A8 +_080CB3C0: + adds r2, #0x3e + ldrb r1, [r2] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r2] +_080CB3CA: + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #5 + bls _080CB372 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080CB364 + + thumb_func_start DestroyPartyMonIcon +DestroyPartyMonIcon: @ 0x080CB3DC + push {r4, r5, lr} + lsls r0, r0, #0x18 + ldr r5, _080CB40C + ldr r1, [r5] + lsrs r4, r0, #0x16 + movs r0, #0xa7 + lsls r0, r0, #4 + adds r1, r1, r0 + adds r1, r1, r4 + ldr r0, [r1] + cmp r0, #0 + beq _080CB406 + bl DestroyBoxMonIcon + ldr r0, [r5] + movs r1, #0xa7 + lsls r1, r1, #4 + adds r0, r0, r1 + adds r0, r0, r4 + movs r1, #0 + str r1, [r0] +_080CB406: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080CB40C: .4byte 0x020399A8 + thumb_func_end DestroyPartyMonIcon + + thumb_func_start DestroyAllPartyMonIcons +DestroyAllPartyMonIcons: @ 0x080CB410 + push {r4, r5, r6, lr} + movs r5, #0 + ldr r6, _080CB44C +_080CB416: + ldr r0, [r6] + lsls r4, r5, #2 + movs r1, #0xa7 + lsls r1, r1, #4 + adds r0, r0, r1 + adds r0, r0, r4 + ldr r0, [r0] + cmp r0, #0 + beq _080CB43A + bl DestroyBoxMonIcon + ldr r0, [r6] + movs r1, #0xa7 + lsls r1, r1, #4 + adds r0, r0, r1 + adds r0, r0, r4 + movs r1, #0 + str r1, [r0] +_080CB43A: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #5 + bls _080CB416 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080CB44C: .4byte 0x020399A8 + thumb_func_end DestroyAllPartyMonIcons + + thumb_func_start SetPartyMonIconObjMode +SetPartyMonIconObjMode: @ 0x080CB450 + push {lr} + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r2, r1, #0x18 + ldr r1, _080CB484 + ldr r1, [r1] + lsrs r0, r0, #0x16 + movs r3, #0xa7 + lsls r3, r3, #4 + adds r1, r1, r3 + adds r1, r1, r0 + ldr r3, [r1] + cmp r3, #0 + beq _080CB480 + movs r0, #3 + adds r1, r2, #0 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r3, #1] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #1] +_080CB480: + pop {r0} + bx r0 + .align 2, 0 +_080CB484: .4byte 0x020399A8 + thumb_func_end SetPartyMonIconObjMode + + thumb_func_start sub_080CB488 +sub_080CB488: @ 0x080CB488 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r5, r1, #0 + cmp r4, #0 + bne _080CB4B8 + ldr r3, _080CB4B0 + ldr r0, [r3] + ldr r5, _080CB4B4 + adds r2, r0, r5 + lsls r1, r1, #2 + adds r5, #4 + adds r0, r0, r5 + adds r0, r0, r1 + ldr r1, [r0] + str r1, [r2] + str r4, [r0] + b _080CB4D4 + .align 2, 0 +_080CB4B0: .4byte 0x020399A8 +_080CB4B4: .4byte 0x00000A6C +_080CB4B8: + cmp r4, #1 + bne _080CB50A + ldr r3, _080CB510 + ldr r0, [r3] + ldr r1, _080CB514 + adds r2, r0, r1 + lsls r1, r5, #2 + ldr r4, _080CB518 + adds r0, r0, r4 + adds r0, r0, r1 + ldr r1, [r0] + str r1, [r2] + movs r1, #0 + str r1, [r0] +_080CB4D4: + adds r5, r3, #0 + ldr r0, [r5] + ldr r4, _080CB514 + adds r0, r0, r4 + ldr r1, [r0] + ldr r0, _080CB51C + str r0, [r1, #0x1c] + bl sub_080CA820 + ldr r1, [r5] + adds r1, r1, r4 + ldr r3, [r1] + movs r1, #3 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r3, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #5] + ldr r0, [r5] + adds r0, r0, r4 + ldr r0, [r0] + adds r0, #0x43 + movs r1, #7 + strb r1, [r0] +_080CB50A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080CB510: .4byte 0x020399A8 +_080CB514: .4byte 0x00000A6C +_080CB518: .4byte 0x00000A88 +_080CB51C: .4byte 0x080CB975 + thumb_func_end sub_080CB488 + + thumb_func_start sub_080CB520 +sub_080CB520: @ 0x080CB520 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + cmp r0, #0xe + bne _080CB56C + ldr r3, _080CB564 + ldr r1, [r3] + lsls r5, r6, #2 + movs r4, #0xa7 + lsls r4, r4, #4 + adds r0, r1, r4 + adds r0, r0, r5 + ldr r2, _080CB568 + adds r1, r1, r2 + ldr r2, [r1] + str r2, [r0] + ldrb r1, [r2, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #5] + ldr r0, [r3] + adds r0, r0, r4 + adds r0, r0, r5 + ldr r0, [r0] + adds r0, #0x43 + movs r1, #0xc + strb r1, [r0] + b _080CB5A8 + .align 2, 0 +_080CB564: .4byte 0x020399A8 +_080CB568: .4byte 0x00000A6C +_080CB56C: + ldr r5, _080CB5C0 + ldr r1, [r5] + lsls r4, r6, #2 + ldr r3, _080CB5C4 + adds r0, r1, r3 + adds r0, r0, r4 + ldr r2, _080CB5C8 + adds r1, r1, r2 + ldr r2, [r1] + str r2, [r0] + ldrb r1, [r2, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2, #5] + ldr r0, [r5] + adds r0, r0, r3 + adds r0, r0, r4 + ldr r4, [r0] + adds r0, r6, #0 + movs r1, #6 + bl __umodsi3 + movs r1, #0x13 + subs r1, r1, r0 + adds r4, #0x43 + strb r1, [r4] + adds r3, r5, #0 +_080CB5A8: + ldr r1, [r3] + ldr r0, _080CB5C8 + adds r1, r1, r0 + ldr r2, [r1] + ldr r0, _080CB5CC + str r0, [r2, #0x1c] + movs r0, #0 + str r0, [r1] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080CB5C0: .4byte 0x020399A8 +_080CB5C4: .4byte 0x00000A88 +_080CB5C8: .4byte 0x00000A6C +_080CB5CC: .4byte 0x08007141 + thumb_func_end sub_080CB520 + + thumb_func_start sub_080CB5D0 +sub_080CB5D0: @ 0x080CB5D0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + cmp r0, #0xe + bne _080CB5F4 + ldr r3, _080CB5F0 + ldr r1, [r3] + movs r0, #0xb0 + lsls r0, r0, #4 + adds r2, r1, r0 + lsls r0, r4, #2 + movs r4, #0xa7 + lsls r4, r4, #4 + b _080CB602 + .align 2, 0 +_080CB5F0: .4byte 0x020399A8 +_080CB5F4: + ldr r3, _080CB624 + ldr r1, [r3] + movs r0, #0xb0 + lsls r0, r0, #4 + adds r2, r1, r0 + lsls r0, r4, #2 + ldr r4, _080CB628 +_080CB602: + adds r0, r0, r4 + adds r1, r1, r0 + str r1, [r2] + ldr r1, [r3] + ldr r2, _080CB62C + adds r0, r1, r2 + ldr r2, [r0] + ldr r0, _080CB630 + str r0, [r2, #0x1c] + ldr r4, _080CB634 + adds r1, r1, r4 + movs r0, #0 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CB624: .4byte 0x020399A8 +_080CB628: .4byte 0x00000A88 +_080CB62C: .4byte 0x00000A6C +_080CB630: .4byte 0x08007141 +_080CB634: .4byte 0x00000C5D + thumb_func_end sub_080CB5D0 + + thumb_func_start sub_080CB638 +sub_080CB638: @ 0x080CB638 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r6, _080CB654 + ldr r0, [r6] + ldr r1, _080CB658 + mov sb, r1 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, #0x10 + bne _080CB65C + movs r0, #0 + b _080CB768 + .align 2, 0 +_080CB654: .4byte 0x020399A8 +_080CB658: .4byte 0x00000C5D +_080CB65C: + adds r0, #1 + strb r0, [r1] + ldr r2, [r6] + ldr r5, _080CB774 + adds r0, r2, r5 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080CB68C + movs r1, #0xb0 + lsls r1, r1, #4 + adds r0, r2, r1 + ldr r0, [r0] + ldr r1, [r0] + ldrh r0, [r1, #0x22] + subs r0, #1 + strh r0, [r1, #0x22] + ldr r5, _080CB778 + adds r0, r2, r5 + ldr r1, [r0] + ldrh r0, [r1, #0x22] + adds r0, #1 + strh r0, [r1, #0x22] +_080CB68C: + ldr r3, [r6] + movs r7, #0xb0 + lsls r7, r7, #4 + adds r4, r3, r7 + ldr r0, [r4] + ldr r0, [r0] + mov r8, r0 + ldr r5, _080CB77C + mov r0, sb + adds r1, r3, r0 + ldrb r0, [r1] + lsls r0, r0, #4 + adds r0, r0, r5 + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r0, #0 + bge _080CB6B0 + adds r0, #0xf +_080CB6B0: + asrs r0, r0, #4 + mov r2, r8 + strh r0, [r2, #0x24] + ldr r0, _080CB778 + mov r8, r0 + add r3, r8 + ldr r2, [r3] + ldrb r0, [r1] + lsls r0, r0, #4 + adds r0, r0, r5 + movs r5, #0 + ldrsh r0, [r0, r5] + cmp r0, #0 + bge _080CB6CE + adds r0, #0xf +_080CB6CE: + asrs r0, r0, #4 + rsbs r0, r0, #0 + strh r0, [r2, #0x24] + ldrb r0, [r1] + cmp r0, #8 + bne _080CB732 + ldr r3, [r3] + ldr r0, [r4] + ldr r0, [r0] + ldrb r0, [r0, #5] + movs r5, #3 + movs r1, #0xc + ands r1, r0 + ldrb r2, [r3, #5] + movs r4, #0xd + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #5] + ldr r0, [r6] + mov r2, r8 + adds r1, r0, r2 + ldr r1, [r1] + adds r0, r0, r7 + ldr r0, [r0] + ldr r0, [r0] + adds r0, #0x43 + ldrb r0, [r0] + adds r1, #0x43 + strb r0, [r1] + bl sub_080CA820 + ldr r1, [r6] + adds r1, r1, r7 + ldr r1, [r1] + ldr r1, [r1] + ands r5, r0 + lsls r5, r5, #2 + ldrb r0, [r1, #5] + ands r4, r0 + orrs r4, r5 + strb r4, [r1, #5] + ldr r0, [r6] + adds r0, r0, r7 + ldr r0, [r0] + ldr r0, [r0] + adds r0, #0x43 + movs r1, #7 + strb r1, [r0] +_080CB732: + ldr r1, [r6] + mov r5, sb + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, #0x10 + bne _080CB766 + mov r0, r8 + adds r2, r1, r0 + ldr r3, [r2] + adds r1, r1, r7 + ldr r0, [r1] + ldr r0, [r0] + str r0, [r2] + ldr r0, [r1] + str r3, [r0] + ldr r1, [r6] + mov r2, r8 + adds r0, r1, r2 + ldr r2, [r0] + ldr r0, _080CB780 + str r0, [r2, #0x1c] + adds r1, r1, r7 + ldr r0, [r1] + ldr r1, [r0] + ldr r0, _080CB784 + str r0, [r1, #0x1c] +_080CB766: + movs r0, #1 +_080CB768: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080CB774: .4byte 0x00000C5D +_080CB778: .4byte 0x00000A6C +_080CB77C: .4byte 0x082FA8CC +_080CB780: .4byte 0x080CB975 +_080CB784: .4byte 0x08007141 + thumb_func_end sub_080CB638 + + thumb_func_start sub_080CB788 +sub_080CB788: @ 0x080CB788 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r2, r0, #0 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + cmp r0, #1 + beq _080CB7C0 + cmp r0, #1 + bgt _080CB7A2 + cmp r0, #0 + beq _080CB7A8 + b _080CB834 +_080CB7A2: + cmp r2, #2 + beq _080CB7E4 + b _080CB834 +_080CB7A8: + ldr r3, _080CB7B8 + ldr r1, [r3] + ldr r0, _080CB7BC + adds r2, r1, r0 + lsls r0, r4, #2 + movs r4, #0xa7 + lsls r4, r4, #4 + b _080CB7CC + .align 2, 0 +_080CB7B8: .4byte 0x020399A8 +_080CB7BC: .4byte 0x00000B04 +_080CB7C0: + ldr r3, _080CB7D8 + ldr r1, [r3] + ldr r0, _080CB7DC + adds r2, r1, r0 + lsls r0, r4, #2 + ldr r4, _080CB7E0 +_080CB7CC: + adds r0, r0, r4 + adds r1, r1, r0 + str r1, [r2] + adds r4, r3, #0 + b _080CB7F4 + .align 2, 0 +_080CB7D8: .4byte 0x020399A8 +_080CB7DC: .4byte 0x00000B04 +_080CB7E0: .4byte 0x00000A88 +_080CB7E4: + ldr r0, _080CB83C + ldr r1, [r0] + ldr r3, _080CB840 + adds r2, r1, r3 + ldr r4, _080CB844 + adds r1, r1, r4 + str r1, [r2] + adds r4, r0, #0 +_080CB7F4: + ldr r0, [r4] + ldr r1, _080CB840 + adds r0, r0, r1 + ldr r0, [r0] + ldr r0, [r0] + cmp r0, #0 + beq _080CB834 + bl InitSpriteAffineAnim + ldr r0, [r4] + ldr r3, _080CB840 + adds r0, r0, r3 + ldr r0, [r0] + ldr r2, [r0] + ldrb r1, [r2, #1] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #1] + ldr r1, [r4] + adds r1, r1, r3 + ldr r0, [r1] + ldr r2, [r0] + ldr r0, _080CB848 + str r0, [r2, #0x10] + ldr r0, [r1] + ldr r0, [r0] + movs r1, #0 + bl StartSpriteAffineAnim +_080CB834: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CB83C: .4byte 0x020399A8 +_080CB840: .4byte 0x00000B04 +_080CB844: .4byte 0x00000A6C +_080CB848: .4byte 0x0854CBCC + thumb_func_end sub_080CB788 + + thumb_func_start sub_080CB84C +sub_080CB84C: @ 0x080CB84C + push {lr} + ldr r0, _080CB870 + ldr r0, [r0] + ldr r1, _080CB874 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, [r0] + cmp r1, #0 + beq _080CB86C + adds r3, r1, #0 + adds r3, #0x3e + ldrb r2, [r3] + movs r0, #4 + ands r0, r2 + cmp r0, #0 + beq _080CB878 +_080CB86C: + movs r0, #0 + b _080CB88E + .align 2, 0 +_080CB870: .4byte 0x020399A8 +_080CB874: .4byte 0x00000B04 +_080CB878: + adds r0, r1, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080CB88C + movs r0, #4 + orrs r0, r2 + strb r0, [r3] +_080CB88C: + movs r0, #1 +_080CB88E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080CB84C + + thumb_func_start sub_080CB894 +sub_080CB894: @ 0x080CB894 + push {r4, lr} + ldr r4, _080CB8D0 + ldr r0, [r4] + ldr r1, _080CB8D4 + adds r0, r0, r1 + ldr r0, [r0] + ldr r0, [r0] + cmp r0, #0 + beq _080CB8CA + ldrb r0, [r0, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + ldr r0, [r4] + ldr r1, _080CB8D4 + adds r0, r0, r1 + ldr r0, [r0] + ldr r0, [r0] + bl DestroyBoxMonIcon + ldr r0, [r4] + ldr r1, _080CB8D4 + adds r0, r0, r1 + ldr r1, [r0] + movs r0, #0 + str r0, [r1] +_080CB8CA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CB8D0: .4byte 0x020399A8 +_080CB8D4: .4byte 0x00000B04 + thumb_func_end sub_080CB894 + + thumb_func_start sub_080CB8D8 +sub_080CB8D8: @ 0x080CB8D8 + push {lr} + ldr r3, _080CB90C + ldr r0, [r3] + ldr r1, _080CB910 + adds r0, r0, r1 + ldr r0, [r0] + ldr r0, [r0] + cmp r0, #0 + beq _080CB908 + adds r2, r0, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldr r0, [r3] + ldr r1, _080CB910 + adds r0, r0, r1 + ldr r0, [r0] + ldr r0, [r0] + movs r1, #1 + bl StartSpriteAffineAnim +_080CB908: + pop {r0} + bx r0 + .align 2, 0 +_080CB90C: .4byte 0x020399A8 +_080CB910: .4byte 0x00000B04 + thumb_func_end sub_080CB8D8 + + thumb_func_start sub_080CB914 +sub_080CB914: @ 0x080CB914 + push {lr} + ldr r0, _080CB928 + ldr r0, [r0] + ldr r1, _080CB92C + adds r2, r0, r1 + ldr r0, [r2] + cmp r0, #0 + bne _080CB930 + movs r0, #0 + b _080CB944 + .align 2, 0 +_080CB928: .4byte 0x020399A8 +_080CB92C: .4byte 0x00000B04 +_080CB930: + ldr r0, [r0] + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080CB942 + movs r0, #0 + str r0, [r2] +_080CB942: + movs r0, #1 +_080CB944: + pop {r1} + bx r1 + thumb_func_end sub_080CB914 + + thumb_func_start SetMovingMonPriority +SetMovingMonPriority: @ 0x080CB948 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080CB96C + ldr r1, [r1] + ldr r2, _080CB970 + adds r1, r1, r2 + ldr r3, [r1] + movs r1, #3 + ands r0, r1 + lsls r0, r0, #2 + ldrb r2, [r3, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #5] + bx lr + .align 2, 0 +_080CB96C: .4byte 0x020399A8 +_080CB970: .4byte 0x00000A6C + thumb_func_end SetMovingMonPriority + + thumb_func_start sub_080CB974 +sub_080CB974: @ 0x080CB974 + ldr r1, _080CB990 + ldr r1, [r1] + ldr r2, _080CB994 + adds r1, r1, r2 + ldr r2, [r1] + ldrh r2, [r2, #0x20] + strh r2, [r0, #0x20] + ldr r2, [r1] + ldrh r1, [r2, #0x26] + ldrh r2, [r2, #0x22] + adds r1, r1, r2 + adds r1, #4 + strh r1, [r0, #0x22] + bx lr + .align 2, 0 +_080CB990: .4byte 0x020399A8 +_080CB994: .4byte 0x00000CB4 + thumb_func_end sub_080CB974 + + thumb_func_start sub_080CB998 +sub_080CB998: @ 0x080CB998 + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + movs r4, #0 + ldr r1, _080CBA00 + ldr r0, [r1] + ldr r2, _080CBA04 + adds r0, r0, r2 + ldrh r0, [r0] + adds r2, r1, #0 + cmp r0, r3 + beq _080CB9CC + adds r6, r2, #0 + ldr r5, _080CBA04 +_080CB9B4: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x27 + bhi _080CB9CC + ldr r0, [r6] + lsls r1, r4, #1 + adds r0, r0, r5 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, r3 + bne _080CB9B4 +_080CB9CC: + cmp r4, #0x28 + bne _080CBA0C + movs r4, #0 + ldr r0, [r2] + ldr r5, _080CBA04 + adds r0, r0, r5 + ldrh r0, [r0] + cmp r0, #0 + beq _080CB9F8 + adds r6, r2, #0 +_080CB9E0: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x27 + bhi _080CB9F8 + ldr r0, [r6] + lsls r1, r4, #1 + adds r0, r0, r5 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0 + bne _080CB9E0 +_080CB9F8: + cmp r4, #0x28 + bne _080CBA0C + ldr r0, _080CBA08 + b _080CBA3E + .align 2, 0 +_080CBA00: .4byte 0x020399A8 +_080CBA04: .4byte 0x00000B58 +_080CBA08: .4byte 0x0000FFFF +_080CBA0C: + ldr r1, [r2] + lsls r2, r4, #1 + ldr r5, _080CBA44 + adds r0, r1, r5 + adds r0, r0, r2 + strh r3, [r0] + ldr r0, _080CBA48 + adds r1, r1, r0 + adds r1, r1, r2 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r4, r4, #0x14 + lsrs r4, r4, #0x10 + adds r0, r3, #0 + movs r1, #1 + bl GetMonIconTiles + lsls r1, r4, #5 + ldr r2, _080CBA4C + adds r1, r1, r2 + ldr r2, _080CBA50 + bl CpuSet + adds r0, r4, #0 +_080CBA3E: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080CBA44: .4byte 0x00000B58 +_080CBA48: .4byte 0x00000B08 +_080CBA4C: .4byte 0x06010000 +_080CBA50: .4byte 0x04000080 + thumb_func_end sub_080CB998 + + thumb_func_start sub_080CBA54 +sub_080CBA54: @ 0x080CBA54 + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + movs r3, #0 + ldr r6, _080CBA88 +_080CBA5E: + ldr r1, [r6] + lsls r2, r3, #1 + ldr r4, _080CBA8C + adds r0, r1, r4 + adds r4, r0, r2 + ldrh r0, [r4] + cmp r0, r5 + bne _080CBA94 + ldr r0, _080CBA90 + adds r1, r1, r0 + adds r1, r1, r2 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + bne _080CBA9E + strh r0, [r4] + b _080CBA9E + .align 2, 0 +_080CBA88: .4byte 0x020399A8 +_080CBA8C: .4byte 0x00000B58 +_080CBA90: .4byte 0x00000B08 +_080CBA94: + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0x27 + bls _080CBA5E +_080CBA9E: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_080CBA54 + + thumb_func_start sub_080CBAA4 +sub_080CBAA4: @ 0x080CBAA4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + ldr r4, [sp, #0x3c] + ldr r5, [sp, #0x40] + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + str r2, [sp, #0x18] + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + mov r8, r3 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + mov sb, r5 + mov r2, sp + ldr r0, _080CBB54 + ldm r0!, {r3, r5, r7} + stm r2!, {r3, r5, r7} + ldm r0!, {r3, r5, r7} + stm r2!, {r3, r5, r7} + adds r0, r6, #0 + bl GetIconSpecies + mov sl, r0 + mov r6, sl + mov r2, sp + ldr r1, _080CBB58 + adds r1, r6, r1 + ldr r3, _080CBB5C + adds r0, r3, #0 + ldrb r1, [r1] + adds r0, r0, r1 + strh r0, [r2, #2] + adds r0, r6, #0 + bl sub_080CB998 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r5, r0, #0 + ldr r0, _080CBB60 + cmp r5, r0 + beq _080CBB76 + ldr r7, [sp, #0x18] + lsls r1, r7, #0x10 + asrs r1, r1, #0x10 + mov r0, r8 + lsls r2, r0, #0x10 + asrs r2, r2, #0x10 + mov r0, sp + mov r3, sb + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x40 + beq _080CBB70 + ldr r1, _080CBB64 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r2, _080CBB68 + ands r2, r5 + ldrh r3, [r0, #4] + ldr r1, _080CBB6C + ands r1, r3 + orrs r1, r2 + strh r1, [r0, #4] + movs r1, #3 + ands r4, r1 + lsls r3, r4, #2 + ldrb r2, [r0, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r3 + strb r1, [r0, #5] + mov r1, sl + strh r1, [r0, #0x2e] + b _080CBB78 + .align 2, 0 +_080CBB54: .4byte 0x0854CB84 +_080CBB58: .4byte 0x08556EE4 +_080CBB5C: .4byte 0x0000DAC0 +_080CBB60: .4byte 0x0000FFFF +_080CBB64: .4byte 0x020205AC +_080CBB68: .4byte 0x000003FF +_080CBB6C: .4byte 0xFFFFFC00 +_080CBB70: + adds r0, r6, #0 + bl sub_080CBA54 +_080CBB76: + movs r0, #0 +_080CBB78: + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_080CBAA4 + + thumb_func_start DestroyBoxMonIcon +DestroyBoxMonIcon: @ 0x080CBB88 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + bl sub_080CBA54 + adds r0, r4, #0 + bl DestroySprite + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end DestroyBoxMonIcon + + thumb_func_start sub_080CBBA0 +sub_080CBBA0: @ 0x080CBBA0 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _080CBBC8 + movs r1, #2 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080CBBCC + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #0xc] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CBBC8: .4byte 0x080CBBE5 +_080CBBCC: .4byte 0x03005B60 + thumb_func_end sub_080CBBA0 + + thumb_func_start sub_080CBBD0 +sub_080CBBD0: @ 0x080CBBD0 + push {lr} + ldr r0, _080CBBE0 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_080CBBE0: .4byte 0x080CBBE5 + thumb_func_end sub_080CBBD0 + + thumb_func_start sub_080CBBE4 +sub_080CBBE4: @ 0x080CBBE4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _080CBC08 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #4 + bhi _080CBCC8 + lsls r0, r0, #2 + ldr r1, _080CBC0C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080CBC08: .4byte 0x03005B60 +_080CBC0C: .4byte 0x080CBC10 +_080CBC10: @ jump table + .4byte _080CBC24 @ case 0 + .4byte _080CBC5C @ case 1 + .4byte _080CBC90 @ case 2 + .4byte _080CBC9A @ case 3 + .4byte _080CBCC0 @ case 4 +_080CBC24: + ldr r1, _080CBC50 + ldr r0, [r1] + ldr r2, _080CBC54 + adds r0, r0, r2 + movs r2, #0 + strb r2, [r0] + ldr r1, [r1] + movs r3, #0xb3 + lsls r3, r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldr r0, _080CBC58 + adds r1, r1, r0 + movs r2, #0x80 + lsls r2, r2, #5 + movs r0, #0 + movs r3, #1 + bl RequestDma3Fill + strh r0, [r4, #0xa] + b _080CBCCC + .align 2, 0 +_080CBC50: .4byte 0x020399A8 +_080CBC54: .4byte 0x000002D2 +_080CBC58: .4byte 0x00004AC4 +_080CBC5C: + movs r1, #0xa + ldrsh r0, [r4, r1] + bl CheckForSpaceForDma3Request + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080CBCD2 + ldr r0, _080CBC88 + ldr r1, [r0] + ldr r2, _080CBC8C + adds r1, r1, r2 + movs r0, #2 + bl SetBgTilemapBuffer + movs r0, #2 + bl ShowBg + b _080CBCCC + .align 2, 0 +_080CBC88: .4byte 0x020399A8 +_080CBC8C: .4byte 0x00004AC4 +_080CBC90: + ldrb r0, [r4, #0xc] + movs r1, #0 + bl LoadWallpaperGfx + b _080CBCCC +_080CBC9A: + bl WaitForWallpaperGfxLoad + cmp r0, #0 + beq _080CBCD2 + ldrb r0, [r4, #0xc] + bl sub_080CC3C4 + bl sub_080CC8A8 + ldrb r0, [r4, #0xc] + bl sub_080CA89C + ldr r1, _080CBCBC + movs r0, #0xc + bl SetGpuReg + b _080CBCCC + .align 2, 0 +_080CBCBC: .4byte 0x00005B0A +_080CBCC0: + adds r0, r2, #0 + bl DestroyTask + b _080CBCCC +_080CBCC8: + movs r0, #0 + b _080CBCD0 +_080CBCCC: + ldrh r0, [r4, #8] + adds r0, #1 +_080CBCD0: + strh r0, [r4, #8] +_080CBCD2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_080CBBE4 + + thumb_func_start SetUpScrollToBox +SetUpScrollToBox: @ 0x080CBCD8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + mov r8, r4 + adds r0, r4, #0 + bl sub_080CBEB8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r0, #0 + ldr r5, _080CBD9C + ldr r2, [r5] + lsls r0, r6, #0x18 + asrs r3, r0, #0x18 + movs r0, #6 + rsbs r0, r0, #0 + adds r1, r0, #0 + cmp r3, #0 + ble _080CBD04 + movs r1, #6 +_080CBD04: + ldr r7, _080CBDA0 + adds r0, r2, r7 + strh r1, [r0] + movs r1, #2 + cmp r3, #0 + ble _080CBD12 + movs r1, #1 +_080CBD12: + ldr r7, _080CBDA4 + adds r0, r2, r7 + strb r1, [r0] + ldr r2, [r5] + movs r0, #0xb4 + lsls r0, r0, #2 + adds r1, r2, r0 + movs r0, #0x20 + strh r0, [r1] + movs r1, #0xb5 + lsls r1, r1, #2 + adds r0, r2, r1 + strb r4, [r0] + ldr r2, [r5] + movs r1, #0 + cmp r3, #0 + bgt _080CBD36 + movs r1, #5 +_080CBD36: + ldr r4, _080CBDA8 + adds r0, r2, r4 + strh r1, [r0] + movs r7, #0xb6 + lsls r7, r7, #2 + adds r0, r2, r7 + strh r3, [r0] + movs r1, #0x38 + cmp r3, #0 + ble _080CBD50 + movs r0, #0x84 + lsls r0, r0, #1 + adds r1, r0, #0 +_080CBD50: + ldr r4, _080CBDAC + adds r0, r2, r4 + strh r1, [r0] + movs r1, #0 + cmp r3, #0 + bgt _080CBD5E + movs r1, #5 +_080CBD5E: + movs r7, #0xb7 + lsls r7, r7, #2 + adds r0, r2, r7 + strh r1, [r0] + ldr r0, _080CBDB0 + adds r1, r2, r0 + movs r0, #0 + strh r0, [r1] + movs r3, #0xb8 + lsls r3, r3, #2 + adds r1, r2, r3 + movs r0, #2 + strh r0, [r1] + ldr r4, _080CBDB4 + adds r0, r2, r4 + mov r7, r8 + strb r7, [r0] + ldr r0, [r5] + ldr r1, _080CBDB8 + adds r0, r0, r1 + strb r6, [r0] + ldr r0, [r5] + ldr r3, _080CBDBC + adds r0, r0, r3 + movs r1, #0 + strb r1, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080CBD9C: .4byte 0x020399A8 +_080CBDA0: .4byte 0x000002CE +_080CBDA4: .4byte 0x000002D3 +_080CBDA8: .4byte 0x000002D6 +_080CBDAC: .4byte 0x000002DA +_080CBDB0: .4byte 0x000002DE +_080CBDB4: .4byte 0x00000A64 +_080CBDB8: .4byte 0x00000A65 +_080CBDBC: .4byte 0x00000A63 + thumb_func_end SetUpScrollToBox + + thumb_func_start ScrollToBox +ScrollToBox: @ 0x080CBDC0 + push {r4, r5, r6, lr} + ldr r4, _080CBDDC + ldr r1, [r4] + ldr r5, _080CBDE0 + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, #1 + beq _080CBE08 + cmp r0, #1 + bgt _080CBDE4 + cmp r0, #0 + beq _080CBDEA + b _080CBE98 + .align 2, 0 +_080CBDDC: .4byte 0x020399A8 +_080CBDE0: .4byte 0x00000A63 +_080CBDE4: + cmp r0, #2 + beq _080CBE58 + b _080CBE98 +_080CBDEA: + ldr r2, _080CBE4C + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, #1 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + bl LoadWallpaperGfx + ldr r1, [r4] + adds r1, r1, r5 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_080CBE08: + bl WaitForWallpaperGfxLoad + cmp r0, #0 + beq _080CBEA6 + ldr r6, _080CBE50 + ldr r1, [r6] + ldr r4, _080CBE4C + adds r0, r1, r4 + ldrb r0, [r0] + ldr r5, _080CBE54 + adds r1, r1, r5 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + bl sub_080CAD40 + ldr r1, [r6] + adds r4, r1, r4 + ldrb r0, [r4] + adds r1, r1, r5 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + bl sub_080CC57C + ldr r0, [r6] + adds r0, r0, r5 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + bl sub_080CC934 + b _080CBE98 + .align 2, 0 +_080CBE4C: .4byte 0x00000A64 +_080CBE50: .4byte 0x020399A8 +_080CBE54: .4byte 0x00000A65 +_080CBE58: + bl sub_080CADF8 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r2, [r4] + movs r4, #0xb4 + lsls r4, r4, #2 + adds r3, r2, r4 + ldrh r0, [r3] + cmp r0, #0 + beq _080CBE94 + movs r0, #0xb3 + lsls r0, r0, #2 + adds r1, r2, r0 + subs r4, #2 + adds r0, r2, r4 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + ldrh r0, [r3] + subs r0, #1 + strh r0, [r3] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080CBEA6 + bl sub_080CC76C + bl sub_080CC9D4 +_080CBE94: + adds r0, r5, #0 + b _080CBEA8 +_080CBE98: + ldr r0, _080CBEB0 + ldr r1, [r0] + ldr r4, _080CBEB4 + adds r1, r1, r4 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_080CBEA6: + movs r0, #1 +_080CBEA8: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080CBEB0: .4byte 0x020399A8 +_080CBEB4: .4byte 0x00000A63 + thumb_func_end ScrollToBox + + thumb_func_start sub_080CBEB8 +sub_080CBEB8: @ 0x080CBEB8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl StorageGetCurrentBox + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r2, #0 + cmp r1, r4 + beq _080CBEE2 +_080CBECC: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xd + bls _080CBED8 + movs r1, #0 +_080CBED8: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r1, r4 + bne _080CBECC +_080CBEE2: + movs r0, #1 + rsbs r0, r0, #0 + cmp r2, #6 + bhi _080CBEEC + movs r0, #1 +_080CBEEC: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080CBEB8 + + thumb_func_start SetWallpaperForCurrentBox +SetWallpaperForCurrentBox: @ 0x080CBEF4 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl StorageGetCurrentBox + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r4, #0 + bl SetBoxWallpaper + ldr r0, _080CBF1C + ldr r0, [r0] + ldr r1, _080CBF20 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CBF1C: .4byte 0x020399A8 +_080CBF20: .4byte 0x00000A62 + thumb_func_end SetWallpaperForCurrentBox + + thumb_func_start DoWallpaperGfxChange +DoWallpaperGfxChange: @ 0x080CBF24 + push {r4, lr} + sub sp, #4 + ldr r1, _080CBF44 + ldr r0, [r1] + ldr r2, _080CBF48 + adds r0, r0, r2 + ldrb r0, [r0] + adds r4, r1, #0 + cmp r0, #4 + bhi _080CC008 + lsls r0, r0, #2 + ldr r1, _080CBF4C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080CBF44: .4byte 0x020399A8 +_080CBF48: .4byte 0x00000A62 +_080CBF4C: .4byte 0x080CBF50 +_080CBF50: @ jump table + .4byte _080CBF64 @ case 0 + .4byte _080CBF8C @ case 1 + .4byte _080CBFA6 @ case 2 + .4byte _080CBFE0 @ case 3 + .4byte _080CC004 @ case 4 +_080CBF64: + ldr r0, [r4] + movs r1, #0xe7 + lsls r1, r1, #3 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _080CBF84 + str r1, [sp] + movs r1, #1 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, [r4] + ldr r2, _080CBF88 + adds r1, r1, r2 + b _080CBFF2 + .align 2, 0 +_080CBF84: .4byte 0x0000FFFF +_080CBF88: .4byte 0x00000A62 +_080CBF8C: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080CC008 + bl StorageGetCurrentBox + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl LoadWallpaperGfx + b _080CBFEA +_080CBFA6: + bl WaitForWallpaperGfxLoad + cmp r0, #1 + bne _080CC008 + bl sub_080CC828 + ldr r4, _080CBFD4 + ldr r0, [r4] + movs r1, #0xe7 + lsls r1, r1, #3 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _080CBFD8 + str r1, [sp] + movs r1, #1 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r1, [r4] + ldr r2, _080CBFDC + adds r1, r1, r2 + b _080CBFF2 + .align 2, 0 +_080CBFD4: .4byte 0x020399A8 +_080CBFD8: .4byte 0x0000FFFF +_080CBFDC: .4byte 0x00000A62 +_080CBFE0: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080CC008 +_080CBFEA: + ldr r0, _080CBFFC + ldr r1, [r0] + ldr r0, _080CC000 + adds r1, r1, r0 +_080CBFF2: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080CC008 + .align 2, 0 +_080CBFFC: .4byte 0x020399A8 +_080CC000: .4byte 0x00000A62 +_080CC004: + movs r0, #0 + b _080CC00A +_080CC008: + movs r0, #1 +_080CC00A: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end DoWallpaperGfxChange + + thumb_func_start LoadWallpaperGfx +LoadWallpaperGfx: @ 0x080CC014 + push {r4, r5, r6, r7, lr} + sub sp, #8 + ldr r4, _080CC0C8 + ldr r2, [r4] + ldr r3, _080CC0CC + adds r2, r2, r3 + movs r3, #0 + strb r3, [r2] + ldr r2, [r4] + ldr r3, _080CC0D0 + adds r2, r2, r3 + strb r0, [r2] + ldr r0, [r4] + ldr r2, _080CC0D4 + adds r0, r0, r2 + strb r1, [r0] + ldr r1, [r4] + adds r2, r1, r2 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + beq _080CC05A + movs r3, #0 + ldr r0, _080CC0D8 + adds r2, r1, r0 + ldrb r0, [r2] + cmp r0, #0 + bne _080CC04E + movs r3, #1 +_080CC04E: + strb r3, [r2] + ldr r0, [r4] + ldr r1, _080CC0DC + adds r0, r0, r1 + bl sub_080CC354 +_080CC05A: + ldr r7, _080CC0C8 + ldr r0, [r7] + ldr r2, _080CC0D0 + adds r0, r0, r2 + ldrb r0, [r0] + bl GetBoxWallpaper + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x10 + beq _080CC138 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080CC0E0 + adds r6, r0, r1 + ldr r0, [r6, #4] + ldr r1, [r7] + ldr r5, _080CC0E4 + adds r1, r1, r5 + bl LZ77UnCompWram + ldr r0, [r7] + adds r5, r0, r5 + ldr r4, _080CC0D4 + adds r1, r0, r4 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + ldr r3, _080CC0D8 + adds r0, r0, r3 + ldrb r2, [r0] + adds r0, r5, #0 + bl sub_080CC2B0 + ldr r1, [r7] + adds r4, r1, r4 + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + beq _080CC0E8 + ldr r0, [r6, #8] + ldr r2, _080CC0D8 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #0x15 + movs r3, #0x80 + lsls r3, r3, #0xf + adds r1, r1, r3 + lsrs r1, r1, #0x10 + movs r2, #0x40 + bl LoadPalette + b _080CC0FC + .align 2, 0 +_080CC0C8: .4byte 0x020399A8 +_080CC0CC: .4byte 0x000006F9 +_080CC0D0: .4byte 0x000006FA +_080CC0D4: .4byte 0x000006FB +_080CC0D8: .4byte 0x000002D2 +_080CC0DC: .4byte 0x00004AC4 +_080CC0E0: .4byte 0x08551868 +_080CC0E4: .4byte 0x00000792 +_080CC0E8: + ldr r0, [r6, #8] + ldr r2, _080CC128 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #6 + ldr r2, _080CC12C + adds r1, r1, r2 + movs r2, #0x20 + bl CpuSet +_080CC0FC: + ldr r0, [r6] + mov r1, sp + bl malloc_and_decompress + adds r1, r0, #0 + ldr r0, _080CC130 + ldr r3, [r0] + ldr r2, _080CC134 + adds r0, r3, r2 + str r1, [r0] + ldr r2, [sp] + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldr r0, _080CC128 + adds r3, r3, r0 + ldrb r3, [r3] + lsls r3, r3, #8 + movs r0, #2 + bl LoadBgTiles + b _080CC24E + .align 2, 0 +_080CC128: .4byte 0x000002D2 +_080CC12C: .4byte 0x02037434 +_080CC130: .4byte 0x020399A8 +_080CC134: .4byte 0x00000A68 +_080CC138: + bl sub_080D1D48 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080CC1BC + adds r6, r1, r0 + ldr r0, [r6, #4] + ldr r1, [r7] + ldr r4, _080CC1C0 + adds r1, r1, r4 + bl LZ77UnCompWram + ldr r2, [r7] + adds r0, r2, r4 + ldr r5, _080CC1C4 + adds r1, r2, r5 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + ldr r3, _080CC1C8 + adds r2, r2, r3 + ldrb r2, [r2] + bl sub_080CC2B0 + ldr r0, [r6, #8] + ldr r1, [r7] + adds r1, r1, r4 + movs r2, #0x20 + bl CpuSet + bl sub_080D1DB0 + ldr r1, [r7] + ldr r2, _080CC1CC + adds r1, r1, r2 + movs r2, #2 + bl CpuSet + bl sub_080D1DB0 + ldr r1, [r7] + ldr r3, _080CC1D0 + adds r1, r1, r3 + movs r2, #2 + bl CpuSet + ldr r1, [r7] + adds r5, r1, r5 + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #0 + beq _080CC1D4 + adds r0, r1, r4 + ldr r2, _080CC1C8 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #0x15 + movs r3, #0x80 + lsls r3, r3, #0xf + adds r1, r1, r3 + lsrs r1, r1, #0x10 + movs r2, #0x40 + bl LoadPalette + b _080CC1EA + .align 2, 0 +_080CC1BC: .4byte 0x08555A40 +_080CC1C0: .4byte 0x00000792 +_080CC1C4: .4byte 0x000006FB +_080CC1C8: .4byte 0x000002D2 +_080CC1CC: .4byte 0x00000794 +_080CC1D0: .4byte 0x000007B4 +_080CC1D4: + ldr r2, _080CC25C + adds r0, r1, r2 + ldr r3, _080CC260 + adds r1, r1, r3 + ldrb r1, [r1] + lsls r1, r1, #6 + ldr r2, _080CC264 + adds r1, r1, r2 + movs r2, #0x20 + bl CpuSet +_080CC1EA: + ldr r0, [r6] + mov r1, sp + bl malloc_and_decompress + ldr r6, _080CC268 + ldr r1, [r6] + ldr r5, _080CC26C + adds r1, r1, r5 + str r0, [r1] + ldr r4, _080CC270 + bl GetWaldaWallpaperIconId + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r0, [r0] + add r1, sp, #4 + bl malloc_and_decompress + adds r4, r0, #0 + ldr r0, [r6] + adds r0, r0, r5 + ldr r1, [r0] + movs r0, #0x80 + lsls r0, r0, #4 + adds r1, r1, r0 + ldr r2, [sp, #4] + lsls r2, r2, #9 + lsrs r2, r2, #0xb + movs r0, #0x80 + lsls r0, r0, #0x13 + orrs r2, r0 + adds r0, r4, #0 + bl CpuSet + adds r0, r4, #0 + bl Free + ldr r0, [r6] + adds r5, r0, r5 + ldr r1, [r5] + ldr r2, [sp] + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldr r3, _080CC260 + adds r0, r0, r3 + ldrb r3, [r0] + lsls r3, r3, #8 + movs r0, #2 + bl LoadBgTiles +_080CC24E: + movs r0, #2 + bl CopyBgTilemapBufferToVram + add sp, #8 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080CC25C: .4byte 0x00000792 +_080CC260: .4byte 0x000002D2 +_080CC264: .4byte 0x02037434 +_080CC268: .4byte 0x020399A8 +_080CC26C: .4byte 0x00000A68 +_080CC270: .4byte 0x08555B00 + thumb_func_end LoadWallpaperGfx + + thumb_func_start WaitForWallpaperGfxLoad +WaitForWallpaperGfxLoad: @ 0x080CC274 + push {r4, r5, lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + beq _080CC286 + movs r0, #0 + b _080CC2A2 +_080CC286: + ldr r5, _080CC2A8 + ldr r0, [r5] + ldr r1, _080CC2AC + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #0 + beq _080CC2A0 + bl Free + ldr r0, [r5] + ldr r1, _080CC2AC + adds r0, r0, r1 + str r4, [r0] +_080CC2A0: + movs r0, #1 +_080CC2A2: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080CC2A8: .4byte 0x020399A8 +_080CC2AC: .4byte 0x00000A68 + thumb_func_end WaitForWallpaperGfxLoad + + thumb_func_start sub_080CC2B0 +sub_080CC2B0: @ 0x080CC2B0 + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + adds r5, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r4, r2, #0x11 + ldr r0, _080CC320 + ldr r0, [r0] + movs r3, #0xb3 + lsls r3, r3, #2 + adds r0, r0, r3 + ldrh r3, [r0] + lsrs r3, r3, #3 + adds r3, #0xa + lsls r1, r1, #0x18 + asrs r7, r1, #0x18 + lsls r0, r7, #1 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r6, r3, r0 + movs r0, #0x3f + ands r6, r0 + movs r3, #0x14 + str r3, [sp] + movs r1, #0x12 + str r1, [sp, #4] + str r6, [sp, #8] + movs r0, #2 + str r0, [sp, #0xc] + str r3, [sp, #0x10] + str r1, [sp, #0x14] + movs r0, #0x11 + str r0, [sp, #0x18] + lsls r2, r2, #0x18 + asrs r2, r2, #0x10 + str r2, [sp, #0x1c] + movs r0, #0xc0 + lsls r0, r0, #0xa + adds r4, r4, r0 + asrs r4, r4, #0x10 + str r4, [sp, #0x20] + movs r0, #2 + adds r1, r5, #0 + movs r2, #0 + movs r3, #0 + bl CopyRectToBgTilemapBufferRect + cmp r7, #0 + beq _080CC346 + cmp r7, #0 + ble _080CC324 + lsls r0, r6, #0x10 + movs r1, #0xa0 + lsls r1, r1, #0xd + adds r0, r0, r1 + b _080CC32A + .align 2, 0 +_080CC320: .4byte 0x020399A8 +_080CC324: + lsls r0, r6, #0x10 + ldr r3, _080CC350 + adds r0, r0, r3 +_080CC32A: + lsrs r6, r0, #0x10 + lsls r2, r6, #0x18 + lsrs r2, r2, #0x18 + movs r0, #4 + str r0, [sp] + movs r0, #0x12 + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #2 + movs r1, #0 + movs r3, #2 + bl FillBgTilemapBufferRect +_080CC346: + add sp, #0x24 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080CC350: .4byte 0xFFFC0000 + thumb_func_end sub_080CC2B0 + + thumb_func_start sub_080CC354 +sub_080CC354: @ 0x080CC354 + push {r4, r5, r6, lr} + adds r2, r0, #0 + ldr r0, _080CC380 + ldr r0, [r0] + movs r1, #0xb3 + lsls r1, r1, #2 + adds r0, r0, r1 + ldrh r0, [r0] + lsrs r0, r0, #3 + adds r3, r0, #0 + adds r3, #0x1e + movs r0, #0x3f + ands r3, r0 + adds r0, r3, #0 + cmp r0, #0x1f + bgt _080CC384 + lsls r0, r0, #1 + movs r6, #0x98 + lsls r6, r6, #3 + adds r0, r0, r6 + b _080CC38C + .align 2, 0 +_080CC380: .4byte 0x020399A8 +_080CC384: + lsls r0, r0, #1 + movs r1, #0xc8 + lsls r1, r1, #4 + adds r0, r0, r1 +_080CC38C: + adds r2, r2, r0 + movs r0, #0 + movs r5, #0 + movs r4, #0x3f +_080CC394: + strh r5, [r2] + adds r2, #2 + adds r3, #1 + ands r3, r4 + adds r1, r3, #0 + cmp r1, #0 + bne _080CC3A6 + ldr r6, _080CC3C0 + adds r2, r2, r6 +_080CC3A6: + cmp r1, #0x20 + bne _080CC3B0 + movs r1, #0xf8 + lsls r1, r1, #3 + adds r2, r2, r1 +_080CC3B0: + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x2b + bls _080CC394 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080CC3C0: .4byte 0xFFFFF7C0 + thumb_func_end sub_080CC354 + + thumb_func_start sub_080CC3C4 +sub_080CC3C4: @ 0x080CC3C4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x30 + mov r8, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r1, _080CC550 + mov sl, r1 + ldr r1, [r1] + movs r2, #0xbe + lsls r2, r2, #2 + adds r0, r1, r2 + str r0, [sp, #0x24] + mov r3, sp + adds r3, #0x24 + str r3, [sp, #0x2c] + ldr r0, _080CC554 + str r0, [r3, #4] + ldr r4, _080CC558 + adds r1, r1, r4 + str r1, [sp, #0x14] + add r0, sp, #0x18 + ldr r7, _080CC55C + strh r7, [r0] + add r0, sp, #0x1c + movs r1, #0 + movs r2, #8 + bl memset + add r1, sp, #0x14 + add r0, sp, #4 + movs r2, #0x10 + bl memcpy + mov r0, r8 + bl GetBoxWallpaper + lsls r0, r0, #0x18 + mov r5, sl + ldr r4, [r5] + ldr r2, _080CC560 + lsrs r0, r0, #0x16 + adds r1, r0, r2 + ldrh r3, [r1] + movs r5, #0xe3 + lsls r5, r5, #3 + adds r1, r4, r5 + strh r3, [r1] + adds r2, #2 + adds r0, r0, r2 + ldrh r0, [r0] + ldr r1, _080CC564 + adds r4, r4, r1 + strh r0, [r4] + add r0, sp, #4 + bl LoadSpritePalettes + mov r2, sl + ldr r0, [r2] + movs r6, #0xe7 + lsls r6, r6, #3 + adds r0, r0, r6 + movs r1, #0xfc + lsls r1, r1, #2 + str r1, [r0] + adds r0, r7, #0 + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r4, sl + ldr r3, [r4] + lsls r1, r0, #4 + movs r5, #0x87 + lsls r5, r5, #1 + mov sb, r5 + add r1, sb + ldr r4, _080CC568 + adds r2, r3, r4 + strh r1, [r2] + adds r3, r3, r6 + movs r5, #0x80 + lsls r5, r5, #9 + adds r1, r5, #0 + lsls r1, r0 + ldr r0, [r3] + orrs r0, r1 + str r0, [r3] + adds r0, r7, #0 + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, sl + ldr r4, [r1] + lsls r1, r0, #4 + add r1, sb + ldr r3, _080CC56C + adds r2, r4, r3 + strh r1, [r2] + adds r6, r4, r6 + lsls r5, r0 + ldr r0, [r6] + orrs r0, r5 + str r0, [r6] + ldr r5, _080CC570 + adds r4, r4, r5 + mov r0, r8 + bl GetBoxNamePtr + adds r1, r0, #0 + adds r0, r4, #0 + movs r2, #0 + movs r3, #8 + bl StringCopyPadded + mov r4, sl + ldr r0, [r4] + adds r5, r0, r5 + movs r2, #0xbe + lsls r2, r2, #2 + adds r1, r0, r2 + movs r3, #0x9f + lsls r3, r3, #3 + adds r0, r0, r3 + str r0, [sp] + adds r0, r5, #0 + movs r2, #0 + movs r3, #0 + bl sub_080C66A4 + ldr r0, [sp, #0x2c] + bl LoadSpriteSheet + mov r0, r8 + bl GetBoxNamePtr + bl StringLength + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetWaldaWallpaperColorsPtr + movs r4, #0 + lsls r0, r0, #0x10 + asrs r6, r0, #0x10 +_080CC4F0: + lsls r1, r4, #5 + adds r1, r6, r1 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldr r0, _080CC574 + movs r2, #0x1c + movs r3, #0x18 + bl CreateSprite + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r5, _080CC550 + ldr r2, [r5] + lsls r0, r4, #2 + movs r3, #0xe4 + lsls r3, r3, #3 + adds r2, r2, r3 + adds r2, r2, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080CC578 + adds r0, r0, r1 + str r0, [r2] + lsls r1, r4, #0x18 + lsrs r1, r1, #0x18 + bl StartSpriteAnim + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #1 + bls _080CC4F0 + ldr r0, [r5] + movs r4, #0xdf + lsls r4, r4, #3 + adds r0, r0, r4 + movs r1, #0 + strb r1, [r0] + add sp, #0x30 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080CC550: .4byte 0x020399A8 +_080CC554: .4byte 0x00030200 +_080CC558: .4byte 0x000006FC +_080CC55C: .4byte 0x0000DAC9 +_080CC560: .4byte 0x08551824 +_080CC564: .4byte 0x0000071A +_080CC568: .4byte 0x0000071C +_080CC56C: .4byte 0x0000071E +_080CC570: .4byte 0x000021B8 +_080CC574: .4byte 0x08555BA4 +_080CC578: .4byte 0x020205AC + thumb_func_end sub_080CC3C4 + + thumb_func_start sub_080CC57C +sub_080CC57C: @ 0x080CC57C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x2c + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x28] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sl, r1 + ldr r4, _080CC5F8 + ldr r2, [r4] + movs r1, #0xbe + lsls r1, r1, #2 + adds r0, r2, r1 + str r0, [sp, #0x1c] + add r3, sp, #0x1c + ldr r5, _080CC5FC + mov ip, r5 + movs r6, #0xc0 + lsls r6, r6, #0xa + mov sb, r6 + ldr r0, _080CC600 + str r0, [r3, #4] + add r1, sp, #4 + ldr r0, _080CC604 + ldm r0!, {r5, r6, r7} + stm r1!, {r5, r6, r7} + ldm r0!, {r5, r6, r7} + stm r1!, {r5, r6, r7} + movs r1, #0 + movs r5, #0xdf + lsls r5, r5, #3 + adds r2, r2, r5 + ldrb r0, [r2] + mov r8, r4 + adds r6, r3, #0 + cmp r0, #0 + bne _080CC5D0 + movs r1, #1 +_080CC5D0: + strb r1, [r2] + mov r7, r8 + ldr r0, [r7] + adds r0, r0, r5 + ldrb r0, [r0] + cmp r0, #0 + bne _080CC60C + ldr r0, [r6, #4] + mov r1, ip + ands r0, r1 + mov r2, sb + orrs r0, r2 + str r0, [r6, #4] + ldr r0, [r7] + ldr r3, _080CC608 + adds r0, r0, r3 + ldrh r0, [r0] + mov sb, r0 + b _080CC630 + .align 2, 0 +_080CC5F8: .4byte 0x020399A8 +_080CC5FC: .4byte 0x0000FFFF +_080CC600: .4byte 0x00030200 +_080CC604: .4byte 0x08555BA4 +_080CC608: .4byte 0x0000071C +_080CC60C: + ldr r0, [r6, #4] + mov r5, ip + ands r0, r5 + movs r1, #0x80 + lsls r1, r1, #0xb + orrs r0, r1 + str r0, [r6, #4] + mov r7, r8 + ldr r0, [r7] + ldr r1, _080CC750 + adds r0, r0, r1 + ldrh r0, [r0] + mov sb, r0 + add r1, sp, #4 + movs r0, #4 + strh r0, [r1] + ldr r0, _080CC754 + strh r0, [r1, #2] +_080CC630: + mov r2, r8 + ldr r4, [r2] + ldr r5, _080CC758 + adds r4, r4, r5 + ldr r0, [sp, #0x28] + bl GetBoxNamePtr + adds r1, r0, #0 + adds r0, r4, #0 + movs r2, #0 + movs r3, #8 + bl StringCopyPadded + mov r3, r8 + ldr r0, [r3] + adds r5, r0, r5 + movs r7, #0xbe + lsls r7, r7, #2 + adds r1, r0, r7 + movs r2, #0x9f + lsls r2, r2, #3 + adds r0, r0, r2 + str r0, [sp] + adds r0, r5, #0 + movs r2, #0 + movs r3, #0 + bl sub_080C66A4 + adds r0, r6, #0 + bl LoadSpriteSheet + ldr r0, [sp, #0x28] + bl GetBoxWallpaper + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + ldr r1, _080CC75C + adds r0, r0, r1 + mov r1, sb + movs r2, #4 + bl LoadPalette + ldr r0, [sp, #0x28] + bl GetBoxNamePtr + bl StringLength + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetWaldaWallpaperColorsPtr + lsls r0, r0, #0x10 + mov r3, sl + lsls r2, r3, #0x18 + asrs r2, r2, #0x18 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #6 + lsrs r5, r0, #0x10 + str r5, [sp, #0x24] + asrs r0, r0, #0x10 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 + movs r7, #0 + mov sb, r8 + rsbs r2, r2, #0 + mov r8, r2 +_080CC6BA: + lsls r6, r7, #5 + mov r0, sl + lsls r1, r0, #0x10 + asrs r1, r1, #0x10 + adds r1, r1, r6 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + add r0, sp, #4 + movs r2, #0x1c + movs r3, #0x18 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, sb + ldr r2, [r1] + lsls r5, r7, #2 + movs r3, #0xe5 + lsls r3, r3, #3 + adds r2, r2, r3 + adds r2, r2, r5 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080CC760 + adds r1, r1, r0 + str r1, [r2] + mov r0, r8 + lsls r4, r0, #1 + add r4, r8 + lsls r4, r4, #1 + strh r4, [r1, #0x2e] + ldr r1, [r2] + ldr r3, [sp, #0x24] + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + adds r0, r0, r6 + strh r0, [r1, #0x30] + ldr r0, [r2] + movs r6, #0 + strh r6, [r0, #0x32] + ldr r0, [r2] + ldr r1, _080CC764 + str r1, [r0, #0x1c] + lsls r1, r7, #0x18 + lsrs r1, r1, #0x18 + bl StartSpriteAnim + mov r1, sb + ldr r0, [r1] + movs r2, #0xe4 + lsls r2, r2, #3 + adds r0, r0, r2 + adds r0, r0, r5 + ldr r1, [r0] + strh r4, [r1, #0x2e] + ldr r2, [r0] + movs r1, #1 + strh r1, [r2, #0x30] + ldr r1, [r0] + ldr r0, _080CC768 + str r0, [r1, #0x1c] + adds r0, r7, #1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + cmp r7, #1 + bls _080CC6BA + add sp, #0x2c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080CC750: .4byte 0x0000071C +_080CC754: .4byte 0x0000DAC9 +_080CC758: .4byte 0x000021B8 +_080CC75C: .4byte 0x08551824 +_080CC760: .4byte 0x020205AC +_080CC764: .4byte 0x080CC7BD +_080CC768: .4byte 0x080CC7F1 + thumb_func_end sub_080CC57C + + thumb_func_start sub_080CC76C +sub_080CC76C: @ 0x080CC76C + push {lr} + ldr r0, _080CC788 + ldr r0, [r0] + movs r1, #0xdf + lsls r1, r1, #3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080CC78C + movs r0, #4 + bl FreeSpriteTilesByTag + b _080CC792 + .align 2, 0 +_080CC788: .4byte 0x020399A8 +_080CC78C: + movs r0, #3 + bl FreeSpriteTilesByTag +_080CC792: + ldr r0, _080CC7B4 + ldr r0, [r0] + movs r3, #0xe4 + lsls r3, r3, #3 + adds r2, r0, r3 + adds r3, #8 + adds r1, r0, r3 + ldr r1, [r1] + str r1, [r2] + ldr r2, _080CC7B8 + adds r1, r0, r2 + adds r3, #4 + adds r0, r0, r3 + ldr r0, [r0] + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080CC7B4: .4byte 0x020399A8 +_080CC7B8: .4byte 0x00000724 + thumb_func_end sub_080CC76C + + thumb_func_start sub_080CC7BC +sub_080CC7BC: @ 0x080CC7BC + push {lr} + adds r2, r0, #0 + ldrh r1, [r2, #0x32] + movs r3, #0x32 + ldrsh r0, [r2, r3] + cmp r0, #0 + beq _080CC7D0 + subs r0, r1, #1 + strh r0, [r2, #0x32] + b _080CC7E8 +_080CC7D0: + ldrh r0, [r2, #0x2e] + ldrh r1, [r2, #0x20] + adds r0, r0, r1 + strh r0, [r2, #0x20] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r3, #0x30 + ldrsh r1, [r2, r3] + cmp r0, r1 + bne _080CC7E8 + ldr r0, _080CC7EC + str r0, [r2, #0x1c] +_080CC7E8: + pop {r0} + bx r0 + .align 2, 0 +_080CC7EC: .4byte 0x08007141 + thumb_func_end sub_080CC7BC + + thumb_func_start sub_080CC7F0 +sub_080CC7F0: @ 0x080CC7F0 + push {lr} + adds r2, r0, #0 + ldrh r1, [r2, #0x30] + movs r3, #0x30 + ldrsh r0, [r2, r3] + cmp r0, #0 + beq _080CC804 + subs r0, r1, #1 + strh r0, [r2, #0x30] + b _080CC822 +_080CC804: + ldrh r0, [r2, #0x2e] + ldrh r1, [r2, #0x20] + adds r0, r0, r1 + strh r0, [r2, #0x20] + ldrh r1, [r2, #0x24] + adds r0, r0, r1 + strh r0, [r2, #0x32] + subs r0, #0x40 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xc0 + bls _080CC822 + adds r0, r2, #0 + bl DestroySprite +_080CC822: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080CC7F0 + + thumb_func_start sub_080CC828 +sub_080CC828: @ 0x080CC828 + push {lr} + bl StorageGetCurrentBox + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBoxWallpaper + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r0, _080CC864 + ldr r2, [r0] + movs r3, #0xdf + lsls r3, r3, #3 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r0, #0 + bne _080CC870 + lsls r0, r1, #2 + ldr r1, _080CC868 + adds r0, r0, r1 + adds r3, #0x24 + adds r1, r2, r3 + ldrh r1, [r1] + lsls r1, r1, #1 + ldr r2, _080CC86C + adds r1, r1, r2 + movs r2, #2 + bl CpuSet + b _080CC888 + .align 2, 0 +_080CC864: .4byte 0x020399A8 +_080CC868: .4byte 0x08551824 +_080CC86C: .4byte 0x020373B4 +_080CC870: + lsls r0, r1, #2 + ldr r1, _080CC88C + adds r0, r0, r1 + ldr r3, _080CC890 + adds r1, r2, r3 + ldrh r1, [r1] + lsls r1, r1, #1 + ldr r2, _080CC894 + adds r1, r1, r2 + movs r2, #2 + bl CpuSet +_080CC888: + pop {r0} + bx r0 + .align 2, 0 +_080CC88C: .4byte 0x08551824 +_080CC890: .4byte 0x0000071E +_080CC894: .4byte 0x020373B4 + thumb_func_end sub_080CC828 + + thumb_func_start GetWaldaWallpaperColorsPtr +GetWaldaWallpaperColorsPtr: @ 0x080CC898 + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0xe + movs r0, #0xb0 + subs r0, r0, r1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + bx lr + thumb_func_end GetWaldaWallpaperColorsPtr + + thumb_func_start sub_080CC8A8 +sub_080CC8A8: @ 0x080CC8A8 + push {r4, r5, lr} + ldr r0, _080CC924 + bl LoadSpriteSheet + movs r5, #0 +_080CC8B2: + lsls r1, r5, #4 + adds r1, r1, r5 + lsls r1, r1, #0x13 + movs r0, #0xb8 + lsls r0, r0, #0xf + adds r1, r1, r0 + asrs r1, r1, #0x10 + ldr r0, _080CC928 + movs r2, #0x1c + movs r3, #0x16 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x40 + beq _080CC904 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080CC92C + adds r4, r0, r1 + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim + movs r0, #1 + cmp r5, #0 + bne _080CC8F2 + movs r1, #1 + rsbs r1, r1, #0 + adds r0, r1, #0 +_080CC8F2: + strh r0, [r4, #0x34] + ldr r0, _080CC930 + ldr r0, [r0] + lsls r1, r5, #2 + movs r2, #0xe6 + lsls r2, r2, #3 + adds r0, r0, r2 + adds r0, r0, r1 + str r4, [r0] +_080CC904: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #1 + bls _080CC8B2 + bl IsCursorOnBox + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080CC91E + movs r0, #1 + bl sub_080CCA24 +_080CC91E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080CC924: .4byte 0x08555B7C +_080CC928: .4byte 0x08555BDC +_080CC92C: .4byte 0x020205AC +_080CC930: .4byte 0x020399A8 + thumb_func_end sub_080CC8A8 + + thumb_func_start sub_080CC934 +sub_080CC934: @ 0x080CC934 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r2, #0 + ldr r7, _080CC988 + mov ip, r7 + movs r6, #0xe6 + lsls r6, r6, #3 + movs r4, #0 + movs r3, #2 +_080CC948: + mov r0, ip + ldr r1, [r0] + lsls r0, r2, #2 + adds r1, r1, r6 + adds r1, r1, r0 + ldr r0, [r1] + strh r4, [r0, #0x24] + ldr r0, [r1] + strh r3, [r0, #0x2e] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #1 + bls _080CC948 + lsls r0, r5, #0x18 + cmp r0, #0 + bge _080CC990 + ldr r1, [r7] + movs r2, #0xe6 + lsls r2, r2, #3 + adds r3, r1, r2 + ldr r2, [r3] + movs r0, #0x1d + strh r0, [r2, #0x30] + ldr r0, _080CC98C + adds r1, r1, r0 + ldr r2, [r1] + movs r0, #5 + strh r0, [r2, #0x30] + ldr r0, [r3] + movs r2, #0x48 + b _080CC9AC + .align 2, 0 +_080CC988: .4byte 0x020399A8 +_080CC98C: .4byte 0x00000734 +_080CC990: + ldr r1, [r7] + movs r2, #0xe6 + lsls r2, r2, #3 + adds r3, r1, r2 + ldr r2, [r3] + movs r0, #5 + strh r0, [r2, #0x30] + ldr r0, _080CC9D0 + adds r1, r1, r0 + ldr r2, [r1] + movs r0, #0x1d + strh r0, [r2, #0x30] + ldr r0, [r3] + movs r2, #0xf8 +_080CC9AC: + strh r2, [r0, #0x32] + ldr r0, [r1] + strh r2, [r0, #0x32] + ldr r1, [r7] + movs r2, #0xe6 + lsls r2, r2, #3 + adds r0, r1, r2 + ldr r2, [r0] + movs r0, #0 + strh r0, [r2, #0x3c] + ldr r0, _080CC9D0 + adds r1, r1, r0 + ldr r1, [r1] + movs r0, #1 + strh r0, [r1, #0x3c] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080CC9D0: .4byte 0x00000734 + thumb_func_end sub_080CC934 + + thumb_func_start sub_080CC9D4 +sub_080CC9D4: @ 0x080CC9D4 + push {r4, r5, r6, lr} + movs r3, #0 + movs r5, #0 + movs r6, #5 + rsbs r6, r6, #0 + ldr r4, _080CCA20 +_080CC9E0: + ldr r1, [r4] + lsls r0, r3, #2 + movs r2, #0xe6 + lsls r2, r2, #3 + adds r1, r1, r2 + adds r1, r1, r0 + ldr r2, [r1] + lsls r0, r3, #4 + adds r0, r0, r3 + lsls r0, r0, #3 + adds r0, #0x5c + strh r0, [r2, #0x20] + ldr r0, [r1] + strh r5, [r0, #0x24] + ldr r1, [r1] + adds r1, #0x3e + ldrb r2, [r1] + adds r0, r6, #0 + ands r0, r2 + strb r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #1 + bls _080CC9E0 + movs r0, #1 + bl sub_080CCA24 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080CCA20: .4byte 0x020399A8 + thumb_func_end sub_080CC9D4 + + thumb_func_start sub_080CCA24 +sub_080CCA24: @ 0x080CCA24 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080CCA60 + movs r2, #0 + ldr r6, _080CCA5C + movs r5, #0xe6 + lsls r5, r5, #3 + movs r3, #0 + movs r4, #1 +_080CCA38: + ldr r1, [r6] + lsls r0, r2, #2 + adds r1, r1, r5 + adds r1, r1, r0 + ldr r0, [r1] + strh r4, [r0, #0x2e] + ldr r0, [r1] + strh r3, [r0, #0x30] + ldr r0, [r1] + strh r3, [r0, #0x32] + ldr r0, [r1] + strh r3, [r0, #0x36] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #1 + bls _080CCA38 + b _080CCA80 + .align 2, 0 +_080CCA5C: .4byte 0x020399A8 +_080CCA60: + movs r2, #0 + ldr r5, _080CCA88 + movs r4, #0xe6 + lsls r4, r4, #3 + movs r3, #0 +_080CCA6A: + ldr r0, [r5] + lsls r1, r2, #2 + adds r0, r0, r4 + adds r0, r0, r1 + ldr r0, [r0] + strh r3, [r0, #0x2e] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #1 + bls _080CCA6A +_080CCA80: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080CCA88: .4byte 0x020399A8 + thumb_func_end sub_080CCA24 + + thumb_func_start sub_080CCA8C +sub_080CCA8C: @ 0x080CCA8C + push {lr} + adds r2, r0, #0 + movs r1, #0x2e + ldrsh r0, [r2, r1] + cmp r0, #4 + bhi _080CCB58 + lsls r0, r0, #2 + ldr r1, _080CCAA4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080CCAA4: .4byte 0x080CCAA8 +_080CCAA8: @ jump table + .4byte _080CCABC @ case 0 + .4byte _080CCAC2 @ case 1 + .4byte _080CCAF0 @ case 2 + .4byte _080CCAF6 @ case 3 + .4byte _080CCB48 @ case 4 +_080CCABC: + movs r0, #0 + strh r0, [r2, #0x24] + b _080CCB58 +_080CCAC2: + ldrh r0, [r2, #0x30] + adds r0, #1 + movs r1, #0 + strh r0, [r2, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + ble _080CCB58 + strh r1, [r2, #0x30] + ldrh r0, [r2, #0x34] + ldrh r3, [r2, #0x24] + adds r0, r0, r3 + strh r0, [r2, #0x24] + ldrh r0, [r2, #0x32] + adds r0, #1 + strh r0, [r2, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #5 + ble _080CCB58 + strh r1, [r2, #0x32] + strh r1, [r2, #0x24] + b _080CCB58 +_080CCAF0: + movs r0, #3 + strh r0, [r2, #0x2e] + b _080CCB58 +_080CCAF6: + ldr r0, _080CCB40 + ldr r1, [r0] + ldr r0, _080CCB44 + adds r1, r1, r0 + ldrh r0, [r2, #0x20] + ldrh r1, [r1] + subs r0, r0, r1 + strh r0, [r2, #0x20] + subs r0, #0x49 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xae + bls _080CCB1C + adds r3, r2, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r1, #4 + orrs r0, r1 + strb r0, [r3] +_080CCB1C: + ldrh r0, [r2, #0x30] + subs r0, #1 + strh r0, [r2, #0x30] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080CCB58 + ldrh r0, [r2, #0x32] + strh r0, [r2, #0x20] + adds r3, r2, #0 + adds r3, #0x3e + ldrb r1, [r3] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3] + movs r0, #4 + strh r0, [r2, #0x2e] + b _080CCB58 + .align 2, 0 +_080CCB40: .4byte 0x020399A8 +_080CCB44: .4byte 0x000002CE +_080CCB48: + ldr r0, _080CCB5C + ldr r0, [r0] + ldr r1, _080CCB60 + adds r0, r0, r1 + ldrh r1, [r2, #0x20] + ldrh r0, [r0] + subs r1, r1, r0 + strh r1, [r2, #0x20] +_080CCB58: + pop {r0} + bx r0 + .align 2, 0 +_080CCB5C: .4byte 0x020399A8 +_080CCB60: .4byte 0x000002CE + thumb_func_end sub_080CCA8C + + thumb_func_start sub_080CCB64 +sub_080CCB64: @ 0x080CCB64 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + adds r6, r1, #0 + ldr r4, [sp, #0x18] + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r8, r3 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _080CCBD0 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + lsls r6, r6, #0x10 + asrs r6, r6, #0x10 + adds r1, r5, #0 + adds r2, r6, #0 + adds r3, r4, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _080CCBDC + movs r1, #1 + ands r1, r7 + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r5, _080CCBD4 + adds r6, r4, r5 + adds r0, r6, #0 + bl StartSpriteAnim + movs r0, #3 + mov r1, r8 + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r6, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r6, #5] + adds r5, #0x1c + adds r4, r4, r5 + ldr r0, _080CCBD8 + str r0, [r4] + adds r0, r6, #0 + b _080CCBDE + .align 2, 0 +_080CCBD0: .4byte 0x08555BDC +_080CCBD4: .4byte 0x020205AC +_080CCBD8: .4byte 0x08007141 +_080CCBDC: + movs r0, #0 +_080CCBDE: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_080CCB64 + + thumb_func_start sub_080CCBE8 +sub_080CCBE8: @ 0x080CCBE8 + push {lr} + ldr r0, _080CCBFC + ldr r0, [r0] + ldrb r1, [r0, #1] + cmp r1, #1 + beq _080CCC04 + ldr r1, _080CCC00 + movs r0, #0 + strb r0, [r1] + b _080CCC08 + .align 2, 0 +_080CCBFC: .4byte 0x020399A8 +_080CCC00: .4byte 0x02039A18 +_080CCC04: + ldr r0, _080CCC44 + strb r1, [r0] +_080CCC08: + ldr r0, _080CCC48 + movs r1, #0 + strb r1, [r0] + ldr r0, _080CCC4C + strb r1, [r0] + ldr r0, _080CCC50 + strb r1, [r0] + ldr r0, _080CCC54 + strb r1, [r0] + ldr r0, _080CCC58 + strb r1, [r0] + bl sub_080CD488 + bl sub_080CF490 + ldr r2, _080CCC5C + ldr r0, [r2] + ldr r1, _080CCC60 + adds r0, r0, r1 + movs r3, #0 + movs r1, #1 + strb r1, [r0] + ldr r0, [r2] + ldr r1, _080CCC64 + adds r0, r0, r1 + strb r3, [r0] + bl sub_080CE3BC + pop {r0} + bx r0 + .align 2, 0 +_080CCC44: .4byte 0x02039A18 +_080CCC48: .4byte 0x02039A19 +_080CCC4C: .4byte 0x02039A1A +_080CCC50: .4byte 0x02039A1B +_080CCC54: .4byte 0x02039A1C +_080CCC58: .4byte 0x02039A1D +_080CCC5C: .4byte 0x020399A8 +_080CCC60: .4byte 0x00000CD6 +_080CCC64: .4byte 0x000021FF + thumb_func_end sub_080CCBE8 + + thumb_func_start sub_080CCC68 +sub_080CCC68: @ 0x080CCC68 + push {lr} + bl sub_080CF490 + bl sub_080CE458 + ldr r3, _080CCCA8 + ldr r0, [r3] + ldr r1, _080CCCAC + adds r0, r0, r1 + movs r2, #0 + movs r1, #1 + strb r1, [r0] + ldr r0, [r3] + ldr r1, _080CCCB0 + adds r0, r0, r1 + strb r2, [r0] + ldr r0, _080CCCB4 + ldrb r0, [r0] + cmp r0, #0 + beq _080CCCA2 + ldr r0, [r3] + ldr r1, _080CCCB8 + adds r0, r0, r1 + ldr r1, _080CCCBC + movs r2, #0x64 + bl memcpy + bl CreateMovingMonIcon +_080CCCA2: + pop {r0} + bx r0 + .align 2, 0 +_080CCCA8: .4byte 0x020399A8 +_080CCCAC: .4byte 0x00000CD6 +_080CCCB0: .4byte 0x000021FF +_080CCCB4: .4byte 0x02039A1A +_080CCCB8: .4byte 0x000020A4 +_080CCCBC: .4byte 0x020399B4 + thumb_func_end sub_080CCC68 + + thumb_func_start sub_080CCCC0 +sub_080CCCC0: @ 0x080CCCC0 + push {r4, r5, r6, lr} + adds r4, r2, #0 + adds r6, r3, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + cmp r0, #4 + bhi _080CCD78 + lsls r0, r0, #2 + ldr r1, _080CCCDC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080CCCDC: .4byte 0x080CCCE0 +_080CCCE0: @ jump table + .4byte _080CCCF4 @ case 0 + .4byte _080CCD22 @ case 1 + .4byte _080CCD4A @ case 2 + .4byte _080CCD52 @ case 3 + .4byte _080CCD70 @ case 4 +_080CCCF4: + adds r0, r5, #0 + movs r1, #6 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, #0x64 + strh r1, [r4] + adds r0, r5, #0 + movs r1, #6 + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, #0x20 + strh r1, [r6] + b _080CCD78 +_080CCD22: + cmp r5, #0 + bne _080CCD2E + movs r0, #0x68 + strh r0, [r4] + movs r0, #0x34 + b _080CCD76 +_080CCD2E: + cmp r5, #6 + bne _080CCD3A + movs r0, #0x98 + strh r0, [r4] + movs r0, #0x84 + b _080CCD76 +_080CCD3A: + movs r0, #0x98 + strh r0, [r4] + subs r1, r5, #1 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, #4 + b _080CCD76 +_080CCD4A: + movs r0, #0xa2 + strh r0, [r4] + movs r0, #0xc + b _080CCD76 +_080CCD52: + ldr r0, _080CCD6C + ldrb r0, [r0] + movs r1, #0xe + cmp r0, #0 + beq _080CCD5E + movs r1, #8 +_080CCD5E: + strh r1, [r6] + movs r0, #0x58 + muls r0, r5, r0 + adds r0, #0x78 + strh r0, [r4] + b _080CCD78 + .align 2, 0 +_080CCD6C: .4byte 0x02039A1A +_080CCD70: + movs r0, #0xa0 + strh r0, [r4] + movs r0, #0x60 +_080CCD76: + strh r0, [r6] +_080CCD78: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080CCCC0 + + thumb_func_start sub_080CCD80 +sub_080CCD80: @ 0x080CCD80 + push {lr} + ldr r0, _080CCDA8 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _080CCDB4 + cmp r0, #1 + bne _080CCDC8 + ldr r0, _080CCDAC + movs r1, #0 + ldrsb r1, [r0, r1] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080CCDB0 + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + b _080CCDBE + .align 2, 0 +_080CCDA8: .4byte 0x02039A18 +_080CCDAC: .4byte 0x02039A19 +_080CCDB0: .4byte 0x02024190 +_080CCDB4: + ldr r0, _080CCDC4 + ldrb r0, [r0] + movs r1, #0xb + bl GetCurrentBoxMonData +_080CCDBE: + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _080CCDCA + .align 2, 0 +_080CCDC4: .4byte 0x02039A19 +_080CCDC8: + movs r0, #0 +_080CCDCA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080CCD80 + + thumb_func_start sub_080CCDD0 +sub_080CCDD0: @ 0x080CCDD0 + push {r4, r5, r6, r7, lr} + ldr r7, _080CCDEC + ldr r5, [r7] + movs r0, #0xcd + lsls r0, r0, #4 + adds r1, r5, r0 + ldrh r0, [r1] + cmp r0, #0 + bne _080CCDFA + ldrb r0, [r5, #1] + cmp r0, #3 + beq _080CCDF0 + movs r0, #0 + b _080CCF16 + .align 2, 0 +_080CCDEC: .4byte 0x020399A8 +_080CCDF0: + bl sub_080D0AB8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _080CCF16 +_080CCDFA: + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080CCEF8 + ldr r1, _080CCEE4 + adds r4, r5, r1 + ldr r2, _080CCEE8 + adds r1, r5, r2 + ldr r0, [r4] + ldr r1, [r1] + adds r0, r0, r1 + str r0, [r4] + movs r0, #0xcc + lsls r0, r0, #4 + adds r3, r5, r0 + adds r2, #4 + adds r1, r5, r2 + ldr r0, [r3] + ldr r1, [r1] + adds r0, r0, r1 + str r0, [r3] + ldr r6, _080CCEEC + adds r1, r5, r6 + ldr r2, [r1] + ldr r0, [r4] + asrs r0, r0, #8 + strh r0, [r2, #0x20] + ldr r2, [r1] + ldr r0, [r3] + asrs r0, r0, #8 + strh r0, [r2, #0x22] + ldr r1, [r1] + ldrh r2, [r1, #0x20] + movs r3, #0x20 + ldrsh r0, [r1, r3] + movs r3, #0x80 + lsls r3, r3, #1 + cmp r0, r3 + ble _080CCE56 + ldr r4, _080CCEF0 + adds r0, r2, r4 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r0, #0x40 + strh r0, [r1, #0x20] +_080CCE56: + ldr r0, [r7] + adds r0, r0, r6 + ldr r1, [r0] + ldrh r2, [r1, #0x20] + movs r4, #0x20 + ldrsh r0, [r1, r4] + cmp r0, #0x3f + bgt _080CCE72 + movs r0, #0x40 + subs r0, r0, r2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + subs r0, r3, r0 + strh r0, [r1, #0x20] +_080CCE72: + ldr r0, [r7] + adds r0, r0, r6 + ldr r1, [r0] + ldrh r2, [r1, #0x22] + movs r3, #0x22 + ldrsh r0, [r1, r3] + cmp r0, #0xb0 + ble _080CCE8E + adds r0, r2, #0 + subs r0, #0xb0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + subs r0, #0x10 + strh r0, [r1, #0x22] +_080CCE8E: + ldr r0, [r7] + adds r0, r0, r6 + ldr r2, [r0] + ldrh r3, [r2, #0x22] + movs r4, #0x22 + ldrsh r0, [r2, r4] + movs r1, #0x10 + rsbs r1, r1, #0 + cmp r0, r1 + bge _080CCEAE + subs r0, r1, r3 + movs r1, #0xb0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + subs r1, r1, r0 + strh r1, [r2, #0x22] +_080CCEAE: + ldr r0, [r7] + ldr r2, _080CCEF4 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, #0 + beq _080CCF14 + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080CCF14 + ldr r0, [r7] + adds r0, r0, r6 + ldr r2, [r0] + adds r2, #0x3f + ldrb r3, [r2] + lsrs r1, r3, #1 + movs r0, #1 + eors r1, r0 + ands r1, r0 + lsls r1, r1, #1 + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + b _080CCF14 + .align 2, 0 +_080CCEE4: .4byte 0x00000CBC +_080CCEE8: .4byte 0x00000CC4 +_080CCEEC: .4byte 0x00000CB4 +_080CCEF0: .4byte 0xFFFFFF00 +_080CCEF4: .4byte 0x00000CD7 +_080CCEF8: + ldr r3, _080CCF1C + adds r2, r5, r3 + ldr r1, [r2] + ldr r4, _080CCF20 + adds r0, r5, r4 + ldrh r0, [r0] + strh r0, [r1, #0x20] + ldr r1, [r2] + ldr r2, _080CCF24 + adds r0, r5, r2 + ldrh r0, [r0] + strh r0, [r1, #0x22] + bl sub_080CD2E4 +_080CCF14: + movs r0, #1 +_080CCF16: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080CCF1C: .4byte 0x00000CB4 +_080CCF20: .4byte 0x00000CCC +_080CCF24: .4byte 0x00000CCE + thumb_func_end sub_080CCDD0 + + thumb_func_start sub_080CCF28 +sub_080CCF28: @ 0x080CCF28 + push {r4, r5, r6, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + mov r6, sp + adds r6, #2 + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sp + adds r3, r6, #0 + bl sub_080CCCC0 + ldr r1, _080CCF78 + ldr r0, [r1] + ldr r2, _080CCF7C + adds r0, r0, r2 + strb r4, [r0] + ldr r0, [r1] + ldr r3, _080CCF80 + adds r0, r0, r3 + strb r5, [r0] + ldr r1, [r1] + mov r0, sp + ldrh r2, [r0] + subs r3, #9 + adds r0, r1, r3 + strh r2, [r0] + ldrh r0, [r6] + ldr r2, _080CCF84 + adds r1, r1, r2 + strh r0, [r1] + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080CCF78: .4byte 0x020399A8 +_080CCF7C: .4byte 0x00000CD4 +_080CCF80: .4byte 0x00000CD5 +_080CCF84: .4byte 0x00000CCE + thumb_func_end sub_080CCF28 + + thumb_func_start sub_080CCF88 +sub_080CCF88: @ 0x080CCF88 + push {r4, r5, r6, r7, lr} + ldr r0, _080CCFA4 + ldr r2, [r0] + ldr r3, _080CCFA8 + adds r1, r2, r3 + ldrh r1, [r1] + adds r4, r0, #0 + cmp r1, #0 + beq _080CCFAC + movs r0, #0xcd + lsls r0, r0, #4 + adds r1, r2, r0 + movs r0, #0xc + b _080CCFB4 + .align 2, 0 +_080CCFA4: .4byte 0x020399A8 +_080CCFA8: .4byte 0x00000CD2 +_080CCFAC: + movs r3, #0xcd + lsls r3, r3, #4 + adds r1, r2, r3 + movs r0, #6 +_080CCFB4: + strh r0, [r1] + ldr r1, [r4] + ldr r0, _080CCFF8 + adds r2, r1, r0 + ldrb r0, [r2] + cmp r0, #0 + beq _080CCFCE + movs r3, #0xcd + lsls r3, r3, #4 + adds r0, r1, r3 + ldrh r0, [r0] + lsrs r0, r0, #1 + strb r0, [r2] +_080CCFCE: + ldr r2, [r4] + ldr r1, _080CCFFC + adds r0, r2, r1 + movs r1, #0 + ldrsb r1, [r0, r1] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _080CD008 + cmp r1, #1 + beq _080CD028 + ldr r3, _080CD000 + adds r0, r2, r3 + movs r3, #0 + ldrsh r1, [r0, r3] + ldr r3, _080CD004 + adds r0, r2, r3 + ldr r0, [r0] + movs r2, #0x22 + ldrsh r0, [r0, r2] + b _080CD03C + .align 2, 0 +_080CCFF8: .4byte 0x00000CD7 +_080CCFFC: .4byte 0x00000CD2 +_080CD000: .4byte 0x00000CCE +_080CD004: .4byte 0x00000CB4 +_080CD008: + ldr r3, _080CD020 + adds r0, r2, r3 + movs r3, #0 + ldrsh r1, [r0, r3] + ldr r3, _080CD024 + adds r0, r2, r3 + ldr r0, [r0] + movs r2, #0x22 + ldrsh r0, [r0, r2] + adds r0, #0xc0 + b _080CD03C + .align 2, 0 +_080CD020: .4byte 0x00000CCE +_080CD024: .4byte 0x00000CB4 +_080CD028: + ldr r3, _080CD068 + adds r0, r2, r3 + movs r3, #0 + ldrsh r1, [r0, r3] + ldr r3, _080CD06C + adds r0, r2, r3 + ldr r0, [r0] + movs r2, #0x22 + ldrsh r0, [r0, r2] + subs r0, #0xc0 +_080CD03C: + subs r7, r1, r0 + ldr r2, [r4] + ldr r3, _080CD070 + adds r0, r2, r3 + movs r1, #0 + ldrsb r1, [r0, r1] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _080CD078 + cmp r1, #1 + beq _080CD098 + ldr r1, _080CD074 + adds r0, r2, r1 + movs r3, #0 + ldrsh r1, [r0, r3] + ldr r3, _080CD06C + adds r0, r2, r3 + ldr r0, [r0] + movs r2, #0x20 + ldrsh r0, [r0, r2] + b _080CD0AC + .align 2, 0 +_080CD068: .4byte 0x00000CCE +_080CD06C: .4byte 0x00000CB4 +_080CD070: .4byte 0x00000CD3 +_080CD074: .4byte 0x00000CCC +_080CD078: + ldr r3, _080CD090 + adds r0, r2, r3 + movs r3, #0 + ldrsh r1, [r0, r3] + ldr r3, _080CD094 + adds r0, r2, r3 + ldr r0, [r0] + movs r2, #0x20 + ldrsh r0, [r0, r2] + adds r0, #0xc0 + b _080CD0AC + .align 2, 0 +_080CD090: .4byte 0x00000CCC +_080CD094: .4byte 0x00000CB4 +_080CD098: + ldr r3, _080CD0FC + adds r0, r2, r3 + movs r3, #0 + ldrsh r1, [r0, r3] + ldr r3, _080CD100 + adds r0, r2, r3 + ldr r0, [r0] + movs r2, #0x20 + ldrsh r0, [r0, r2] + subs r0, #0xc0 +_080CD0AC: + subs r0, r1, r0 + lsls r7, r7, #8 + lsls r0, r0, #8 + ldr r4, [r4] + ldr r3, _080CD104 + adds r6, r4, r3 + movs r1, #0xcd + lsls r1, r1, #4 + adds r5, r4, r1 + ldrh r1, [r5] + bl __divsi3 + str r0, [r6] + ldr r2, _080CD108 + adds r6, r4, r2 + ldrh r1, [r5] + adds r0, r7, #0 + bl __divsi3 + str r0, [r6] + ldr r3, _080CD10C + adds r2, r4, r3 + ldr r0, _080CD100 + adds r1, r4, r0 + ldr r0, [r1] + movs r3, #0x20 + ldrsh r0, [r0, r3] + lsls r0, r0, #8 + str r0, [r2] + movs r0, #0xcc + lsls r0, r0, #4 + adds r4, r4, r0 + ldr r0, [r1] + movs r1, #0x22 + ldrsh r0, [r0, r1] + lsls r0, r0, #8 + str r0, [r4] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080CD0FC: .4byte 0x00000CCC +_080CD100: .4byte 0x00000CB4 +_080CD104: .4byte 0x00000CC4 +_080CD108: .4byte 0x00000CC8 +_080CD10C: .4byte 0x00000CBC + thumb_func_end sub_080CCF88 + + thumb_func_start sub_080CD110 +sub_080CD110: @ 0x080CD110 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080CCF28 + bl sub_080CCF88 + ldr r5, _080CD150 + ldr r1, [r5] + ldrb r0, [r1, #1] + cmp r0, #3 + beq _080CD160 + ldr r2, _080CD154 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _080CD178 + ldr r0, _080CD158 + ldrb r0, [r0] + cmp r0, #0 + bne _080CD178 + ldr r2, _080CD15C + adds r0, r1, r2 + ldr r0, [r0] + movs r1, #1 + bl StartSpriteAnim + b _080CD178 + .align 2, 0 +_080CD150: .4byte 0x020399A8 +_080CD154: .4byte 0x000021FF +_080CD158: .4byte 0x02039A1A +_080CD15C: .4byte 0x00000CB4 +_080CD160: + bl IsActiveItemMoving + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080CD178 + ldr r0, [r5] + ldr r1, _080CD19C + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #1 + bl StartSpriteAnim +_080CD178: + ldr r0, _080CD1A0 + ldr r0, [r0] + ldrb r0, [r0, #1] + cmp r0, #3 + bne _080CD1D8 + ldr r0, _080CD1A4 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _080CD1AC + ldr r0, _080CD1A8 + ldrb r1, [r0] + movs r0, #0 + bl sub_080D06F0 + b _080CD1BA + .align 2, 0 +_080CD19C: .4byte 0x00000CB4 +_080CD1A0: .4byte 0x020399A8 +_080CD1A4: .4byte 0x02039A18 +_080CD1A8: .4byte 0x02039A19 +_080CD1AC: + cmp r0, #1 + bne _080CD1BA + ldr r0, _080CD1C8 + ldrb r1, [r0] + movs r0, #1 + bl sub_080D06F0 +_080CD1BA: + cmp r4, #0 + bne _080CD1CC + movs r0, #0 + adds r1, r6, #0 + bl sub_080D062C + b _080CD1D8 + .align 2, 0 +_080CD1C8: .4byte 0x02039A19 +_080CD1CC: + cmp r4, #1 + bne _080CD204 + movs r0, #1 + adds r1, r6, #0 + bl sub_080D062C +_080CD1D8: + cmp r4, #1 + bne _080CD204 + ldr r0, _080CD24C + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + beq _080CD204 + ldr r1, _080CD250 + ldr r0, [r1] + ldr r2, _080CD254 + adds r0, r0, r2 + strb r4, [r0] + ldr r0, [r1] + ldr r1, _080CD258 + adds r0, r0, r1 + ldr r1, [r0] + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] +_080CD204: + cmp r4, #0 + beq _080CD260 + cmp r4, #0 + blt _080CD2D2 + cmp r4, #3 + bgt _080CD2D2 + ldr r5, _080CD250 + ldr r0, [r5] + ldr r2, _080CD25C + adds r0, r0, r2 + ldr r4, [r0] + ldrb r1, [r4, #5] + movs r2, #0xd + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r1 + movs r3, #4 + orrs r0, r3 + strb r0, [r4, #5] + ldr r0, [r5] + ldr r4, _080CD258 + adds r0, r0, r4 + ldr r1, [r0] + adds r1, #0x3e + ldrb r0, [r1] + orrs r0, r3 + strb r0, [r1] + ldr r0, [r5] + adds r0, r0, r4 + ldr r1, [r0] + ldrb r0, [r1, #5] + ands r2, r0 + orrs r2, r3 + strb r2, [r1, #5] + b _080CD2D2 + .align 2, 0 +_080CD24C: .4byte 0x02039A18 +_080CD250: .4byte 0x020399A8 +_080CD254: .4byte 0x00000CD6 +_080CD258: .4byte 0x00000CB8 +_080CD25C: .4byte 0x00000CB4 +_080CD260: + ldr r3, _080CD294 + ldr r1, [r3] + ldr r2, _080CD298 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080CD2A4 + ldr r2, _080CD29C + adds r0, r1, r2 + ldr r2, [r0] + ldrb r1, [r2, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #5] + ldr r0, [r3] + ldr r1, _080CD2A0 + adds r0, r0, r1 + ldr r1, [r0] + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + b _080CD2D2 + .align 2, 0 +_080CD294: .4byte 0x020399A8 +_080CD298: .4byte 0x000021FF +_080CD29C: .4byte 0x00000CB4 +_080CD2A0: .4byte 0x00000CB8 +_080CD2A4: + ldr r2, _080CD2D8 + adds r0, r1, r2 + ldr r2, [r0] + ldrb r1, [r2, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2, #5] + ldr r0, _080CD2DC + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _080CD2D2 + ldr r0, _080CD2E0 + ldrb r0, [r0] + cmp r0, #0 + beq _080CD2D2 + movs r0, #2 + bl SetMovingMonPriority +_080CD2D2: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080CD2D8: .4byte 0x00000CB4 +_080CD2DC: .4byte 0x02039A18 +_080CD2E0: .4byte 0x02039A1A + thumb_func_end sub_080CD110 + + thumb_func_start sub_080CD2E4 +sub_080CD2E4: @ 0x080CD2E4 + push {r4, lr} + ldr r1, _080CD324 + ldr r4, _080CD328 + ldr r2, [r4] + ldr r3, _080CD32C + adds r0, r2, r3 + ldrb r0, [r0] + strb r0, [r1] + ldr r1, _080CD330 + adds r3, #1 + adds r0, r2, r3 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r2, #1] + cmp r0, #3 + beq _080CD33C + ldr r1, _080CD334 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080CD354 + ldr r0, _080CD338 + ldrb r0, [r0] + cmp r0, #0 + bne _080CD354 + subs r3, #0x21 + adds r0, r2, r3 + ldr r0, [r0] + movs r1, #0 + bl StartSpriteAnim + b _080CD354 + .align 2, 0 +_080CD324: .4byte 0x02039A18 +_080CD328: .4byte 0x020399A8 +_080CD32C: .4byte 0x00000CD4 +_080CD330: .4byte 0x02039A19 +_080CD334: .4byte 0x000021FF +_080CD338: .4byte 0x02039A1A +_080CD33C: + bl IsActiveItemMoving + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080CD354 + ldr r0, [r4] + ldr r1, _080CD370 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0 + bl StartSpriteAnim +_080CD354: + bl sub_080CE3BC + ldr r0, _080CD374 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + beq _080CD38A + cmp r0, #1 + bgt _080CD378 + cmp r0, #0 + beq _080CD3AC + b _080CD406 + .align 2, 0 +_080CD370: .4byte 0x00000CB4 +_080CD374: .4byte 0x02039A18 +_080CD378: + cmp r0, #2 + beq _080CD382 + cmp r0, #3 + bne _080CD406 + b _080CD39A +_080CD382: + movs r0, #1 + bl sub_080CCA24 + b _080CD406 +_080CD38A: + ldr r0, _080CD3A4 + ldr r0, [r0] + ldr r2, _080CD3A8 + adds r0, r0, r2 + ldr r0, [r0] + adds r0, #0x43 + movs r1, #0xd + strb r1, [r0] +_080CD39A: + movs r0, #1 + bl SetMovingMonPriority + b _080CD406 + .align 2, 0 +_080CD3A4: .4byte 0x020399A8 +_080CD3A8: .4byte 0x00000CB8 +_080CD3AC: + ldr r4, _080CD40C + ldr r1, [r4] + ldr r3, _080CD410 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, #0 + bne _080CD406 + ldr r2, _080CD414 + adds r0, r1, r2 + ldr r3, [r0] + ldrb r1, [r3, #5] + movs r2, #0xd + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r3, #5] + ldr r0, [r4] + ldr r3, _080CD418 + adds r0, r0, r3 + ldr r1, [r0] + ldrb r0, [r1, #5] + ands r2, r0 + movs r0, #8 + orrs r2, r0 + strb r2, [r1, #5] + ldr r0, [r4] + adds r0, r0, r3 + ldr r0, [r0] + adds r0, #0x43 + movs r1, #0x15 + strb r1, [r0] + ldr r0, [r4] + adds r0, r0, r3 + ldr r1, [r0] + adds r1, #0x3e + ldrb r2, [r1] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + movs r0, #2 + bl SetMovingMonPriority +_080CD406: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CD40C: .4byte 0x020399A8 +_080CD410: .4byte 0x000021FF +_080CD414: .4byte 0x00000CB4 +_080CD418: .4byte 0x00000CB8 + thumb_func_end sub_080CD2E4 + + thumb_func_start sub_080CD41C +sub_080CD41C: @ 0x080CD41C + push {lr} + ldr r0, _080CD42C + ldrb r0, [r0] + cmp r0, #0 + bne _080CD430 + movs r3, #0 + b _080CD43E + .align 2, 0 +_080CD42C: .4byte 0x02039A1A +_080CD430: + bl CalculatePlayerPartyCount + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #5 + bls _080CD43E + movs r3, #5 +_080CD43E: + ldr r0, _080CD468 + ldr r2, [r0] + ldr r1, _080CD46C + adds r0, r2, r1 + ldr r0, [r0] + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080CD45C + ldr r0, _080CD470 + adds r1, r2, r0 + movs r0, #1 + strb r0, [r1] +_080CD45C: + movs r0, #1 + adds r1, r3, #0 + bl sub_080CD110 + pop {r0} + bx r0 + .align 2, 0 +_080CD468: .4byte 0x020399A8 +_080CD46C: .4byte 0x00000CB4 +_080CD470: .4byte 0x00000CD7 + thumb_func_end sub_080CD41C + + thumb_func_start sub_080CD474 +sub_080CD474: @ 0x080CD474 + push {lr} + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0 + bl sub_080CD110 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080CD474 + + thumb_func_start sub_080CD488 +sub_080CD488: @ 0x080CD488 + ldr r1, _080CD490 + movs r0, #0 + strb r0, [r1] + bx lr + .align 2, 0 +_080CD490: .4byte 0x02039A1E + thumb_func_end sub_080CD488 + + thumb_func_start sub_080CD494 +sub_080CD494: @ 0x080CD494 + ldr r0, _080CD4A0 + ldr r1, _080CD4A4 + ldrb r1, [r1] + strb r1, [r0] + bx lr + .align 2, 0 +_080CD4A0: .4byte 0x02039A1E +_080CD4A4: .4byte 0x02039A19 + thumb_func_end sub_080CD494 + + thumb_func_start sub_080CD4A8 +sub_080CD4A8: @ 0x080CD4A8 + ldr r0, _080CD4B0 + ldrb r0, [r0] + bx lr + .align 2, 0 +_080CD4B0: .4byte 0x02039A1E + thumb_func_end sub_080CD4A8 + + thumb_func_start InitMonPlaceChange +InitMonPlaceChange: @ 0x080CD4B4 + lsls r0, r0, #0x18 + ldr r1, _080CD4D4 + ldr r1, [r1] + ldr r2, _080CD4D8 + adds r3, r1, r2 + ldr r2, _080CD4DC + lsrs r0, r0, #0x16 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r3] + movs r0, #0xd9 + lsls r0, r0, #4 + adds r1, r1, r0 + movs r0, #0 + strb r0, [r1] + bx lr + .align 2, 0 +_080CD4D4: .4byte 0x020399A8 +_080CD4D8: .4byte 0x00000D8C +_080CD4DC: .4byte 0x08556494 + thumb_func_end InitMonPlaceChange + + thumb_func_start sub_080CD4E0 +sub_080CD4E0: @ 0x080CD4E0 + push {lr} + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080CD500 + ldr r0, _080CD4F4 + ldr r1, [r0] + ldr r2, _080CD4F8 + adds r1, r1, r2 + ldr r2, _080CD4FC + b _080CD50A + .align 2, 0 +_080CD4F4: .4byte 0x020399A8 +_080CD4F8: .4byte 0x00000D8C +_080CD4FC: .4byte 0x080CD731 +_080CD500: + ldr r0, _080CD51C + ldr r1, [r0] + ldr r2, _080CD520 + adds r1, r1, r2 + ldr r2, _080CD524 +_080CD50A: + str r2, [r1] + ldr r0, [r0] + movs r1, #0xd9 + lsls r1, r1, #4 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_080CD51C: .4byte 0x020399A8 +_080CD520: .4byte 0x00000D8C +_080CD524: .4byte 0x080CD741 + thumb_func_end sub_080CD4E0 + + thumb_func_start DoMonPlaceChange +DoMonPlaceChange: @ 0x080CD528 + push {lr} + ldr r0, _080CD540 + ldr r0, [r0] + ldr r1, _080CD544 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + thumb_func_end DoMonPlaceChange + + thumb_func_start sub_080CD538 +sub_080CD538: @ 0x080CD538 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_080CD540: .4byte 0x020399A8 +_080CD544: .4byte 0x00000D8C + thumb_func_end sub_080CD538 + + thumb_func_start MonPlaceChange_Move +MonPlaceChange_Move: @ 0x080CD548 + push {r4, r5, lr} + ldr r4, _080CD564 + ldr r1, [r4] + movs r5, #0xd9 + lsls r5, r5, #4 + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, #1 + beq _080CD598 + cmp r0, #1 + bgt _080CD568 + cmp r0, #0 + beq _080CD572 + b _080CD5D0 + .align 2, 0 +_080CD564: .4byte 0x020399A8 +_080CD568: + cmp r0, #2 + beq _080CD5BC + cmp r0, #3 + beq _080CD57A + b _080CD5D0 +_080CD572: + ldr r0, _080CD580 + ldrb r0, [r0] + cmp r0, #0 + beq _080CD584 +_080CD57A: + movs r0, #0 + b _080CD5D2 + .align 2, 0 +_080CD580: .4byte 0x02039A1A +_080CD584: + ldr r2, _080CD594 + adds r0, r1, r2 + ldr r0, [r0] + movs r1, #2 + bl StartSpriteAnim + b _080CD5C6 + .align 2, 0 +_080CD594: .4byte 0x00000CB4 +_080CD598: + bl sub_080CD750 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080CD5D0 + ldr r0, [r4] + ldr r1, _080CD5B8 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #3 + bl StartSpriteAnim + bl MoveMon + b _080CD5C6 + .align 2, 0 +_080CD5B8: .4byte 0x00000CB4 +_080CD5BC: + bl sub_080CD784 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080CD5D0 +_080CD5C6: + ldr r1, [r4] + adds r1, r1, r5 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_080CD5D0: + movs r0, #1 +_080CD5D2: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MonPlaceChange_Move + + thumb_func_start MonPlaceChange_Place +MonPlaceChange_Place: @ 0x080CD5D8 + push {r4, r5, lr} + ldr r4, _080CD5F4 + ldr r0, [r4] + movs r5, #0xd9 + lsls r5, r5, #4 + adds r0, r0, r5 + ldrb r0, [r0] + cmp r0, #1 + beq _080CD620 + cmp r0, #1 + bgt _080CD5F8 + cmp r0, #0 + beq _080CD5FE + b _080CD64C + .align 2, 0 +_080CD5F4: .4byte 0x020399A8 +_080CD5F8: + cmp r0, #2 + beq _080CD648 + b _080CD64C +_080CD5FE: + bl sub_080CD750 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080CD64C + ldr r0, [r4] + ldr r1, _080CD61C + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #2 + bl StartSpriteAnim + bl PlaceMon + b _080CD638 + .align 2, 0 +_080CD61C: .4byte 0x00000CB4 +_080CD620: + bl sub_080CD784 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080CD64C + ldr r0, [r4] + ldr r1, _080CD644 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0 + bl StartSpriteAnim +_080CD638: + ldr r1, [r4] + adds r1, r1, r5 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080CD64C + .align 2, 0 +_080CD644: .4byte 0x00000CB4 +_080CD648: + movs r0, #0 + b _080CD64E +_080CD64C: + movs r0, #1 +_080CD64E: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MonPlaceChange_Place + + thumb_func_start MonPlaceChange_Shift +MonPlaceChange_Shift: @ 0x080CD654 + push {r4, r5, lr} + ldr r4, _080CD670 + ldr r1, [r4] + movs r5, #0xd9 + lsls r5, r5, #4 + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, #1 + beq _080CD6E4 + cmp r0, #1 + bgt _080CD674 + cmp r0, #0 + beq _080CD67A + b _080CD728 + .align 2, 0 +_080CD670: .4byte 0x020399A8 +_080CD674: + cmp r0, #2 + beq _080CD724 + b _080CD728 +_080CD67A: + ldr r0, _080CD694 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _080CD69C + cmp r0, #1 + bne _080CD724 + ldr r0, _080CD698 + adds r1, r1, r0 + movs r0, #0xe + b _080CD6A6 + .align 2, 0 +_080CD694: .4byte 0x02039A18 +_080CD698: .4byte 0x00000D91 +_080CD69C: + bl StorageGetCurrentBox + ldr r1, [r4] + ldr r2, _080CD6D4 + adds r1, r1, r2 +_080CD6A6: + strb r0, [r1] + ldr r4, _080CD6D8 + ldr r0, [r4] + ldr r1, _080CD6DC + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #2 + bl StartSpriteAnim + ldr r0, [r4] + ldr r2, _080CD6D4 + adds r0, r0, r2 + ldrb r0, [r0] + ldr r1, _080CD6E0 + ldrb r1, [r1] + bl sub_080CB5D0 + ldr r1, [r4] + movs r0, #0xd9 + lsls r0, r0, #4 + adds r1, r1, r0 + b _080CD710 + .align 2, 0 +_080CD6D4: .4byte 0x00000D91 +_080CD6D8: .4byte 0x020399A8 +_080CD6DC: .4byte 0x00000CB4 +_080CD6E0: .4byte 0x02039A19 +_080CD6E4: + bl sub_080CB638 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080CD728 + ldr r0, [r4] + ldr r1, _080CD718 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #3 + bl StartSpriteAnim + ldr r0, [r4] + ldr r2, _080CD71C + adds r0, r0, r2 + ldrb r0, [r0] + ldr r1, _080CD720 + ldrb r1, [r1] + bl SetShiftedMonData + ldr r1, [r4] + adds r1, r1, r5 +_080CD710: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080CD728 + .align 2, 0 +_080CD718: .4byte 0x00000CB4 +_080CD71C: .4byte 0x00000D91 +_080CD720: .4byte 0x02039A19 +_080CD724: + movs r0, #0 + b _080CD72A +_080CD728: + movs r0, #1 +_080CD72A: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MonPlaceChange_Shift + + thumb_func_start sub_080CD730 +sub_080CD730: @ 0x080CD730 + push {lr} + bl sub_080CD750 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080CD730 + + thumb_func_start sub_080CD740 +sub_080CD740: @ 0x080CD740 + push {lr} + bl sub_080CD784 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080CD740 + + thumb_func_start sub_080CD750 +sub_080CD750: @ 0x080CD750 + push {lr} + ldr r0, _080CD770 + ldr r0, [r0] + ldr r1, _080CD774 + adds r0, r0, r1 + ldr r1, [r0] + movs r2, #0x26 + ldrsh r0, [r1, r2] + cmp r0, #0 + beq _080CD768 + cmp r0, #8 + beq _080CD778 +_080CD768: + ldrh r0, [r1, #0x26] + adds r0, #1 + strh r0, [r1, #0x26] + b _080CD77C + .align 2, 0 +_080CD770: .4byte 0x020399A8 +_080CD774: .4byte 0x00000CB4 +_080CD778: + movs r0, #0 + b _080CD77E +_080CD77C: + movs r0, #1 +_080CD77E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080CD750 + + thumb_func_start sub_080CD784 +sub_080CD784: @ 0x080CD784 + push {lr} + ldr r0, _080CD7A4 + ldr r0, [r0] + ldr r1, _080CD7A8 + adds r0, r0, r1 + ldr r1, [r0] + movs r2, #0x26 + ldrsh r0, [r1, r2] + cmp r0, #0 + beq _080CD7AC + ldrh r0, [r1, #0x26] + subs r0, #1 + strh r0, [r1, #0x26] + movs r0, #1 + b _080CD7AE + .align 2, 0 +_080CD7A4: .4byte 0x020399A8 +_080CD7A8: .4byte 0x00000CB4 +_080CD7AC: + movs r0, #0 +_080CD7AE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080CD784 + + thumb_func_start MoveMon +MoveMon: @ 0x080CD7B4 + push {r4, lr} + ldr r0, _080CD7DC + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _080CD7E4 + cmp r0, #1 + bne _080CD810 + ldr r4, _080CD7E0 + ldrb r1, [r4] + movs r0, #0xe + bl SetMovedMonData + ldrb r1, [r4] + movs r0, #0 + bl sub_080CB488 + b _080CD80A + .align 2, 0 +_080CD7DC: .4byte 0x02039A18 +_080CD7E0: .4byte 0x02039A19 +_080CD7E4: + ldr r0, _080CD818 + ldr r0, [r0] + ldr r1, _080CD81C + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080CD80A + bl StorageGetCurrentBox + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _080CD820 + ldrb r1, [r4] + bl SetMovedMonData + ldrb r1, [r4] + movs r0, #1 + bl sub_080CB488 +_080CD80A: + ldr r1, _080CD824 + movs r0, #1 + strb r0, [r1] +_080CD810: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CD818: .4byte 0x020399A8 +_080CD81C: .4byte 0x000021FF +_080CD820: .4byte 0x02039A19 +_080CD824: .4byte 0x02039A1A + thumb_func_end MoveMon + + thumb_func_start PlaceMon +PlaceMon: @ 0x080CD828 + push {r4, r5, lr} + ldr r0, _080CD850 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _080CD858 + cmp r0, #1 + bne _080CD87A + ldr r4, _080CD854 + ldrb r1, [r4] + movs r0, #0xe + bl SetPlacedMonData + ldrb r1, [r4] + movs r0, #0xe + bl sub_080CB520 + b _080CD874 + .align 2, 0 +_080CD850: .4byte 0x02039A18 +_080CD854: .4byte 0x02039A19 +_080CD858: + bl StorageGetCurrentBox + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r5, _080CD880 + ldrb r1, [r5] + adds r0, r4, #0 + bl SetPlacedMonData + ldrb r1, [r5] + adds r0, r4, #0 + bl sub_080CB520 +_080CD874: + ldr r1, _080CD884 + movs r0, #0 + strb r0, [r1] +_080CD87A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080CD880: .4byte 0x02039A19 +_080CD884: .4byte 0x02039A1A + thumb_func_end PlaceMon + + thumb_func_start sub_080CD888 +sub_080CD888: @ 0x080CD888 + push {lr} + bl sub_080CE3BC + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080CD888 + + thumb_func_start SetMovedMonData +SetMovedMonData: @ 0x080CD894 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + cmp r4, #0xe + bne _080CD8D0 + ldr r0, _080CD8C0 + ldr r0, [r0] + ldr r1, _080CD8C4 + adds r0, r0, r1 + ldr r3, _080CD8C8 + ldr r1, _080CD8CC + movs r2, #0 + ldrsb r2, [r1, r2] + movs r1, #0x64 + muls r1, r2, r1 + adds r1, r1, r3 + movs r2, #0x64 + bl memcpy + b _080CD8E0 + .align 2, 0 +_080CD8C0: .4byte 0x020399A8 +_080CD8C4: .4byte 0x000020A4 +_080CD8C8: .4byte 0x02024190 +_080CD8CC: .4byte 0x02039A19 +_080CD8D0: + ldr r0, _080CD8F8 + ldr r2, [r0] + ldr r0, _080CD8FC + adds r2, r2, r0 + adds r0, r4, #0 + adds r1, r5, #0 + bl BoxMonAtToMon +_080CD8E0: + adds r0, r4, #0 + adds r1, r5, #0 + bl PurgeMonOrBoxMon + ldr r0, _080CD900 + strb r4, [r0] + ldr r0, _080CD904 + strb r5, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080CD8F8: .4byte 0x020399A8 +_080CD8FC: .4byte 0x000020A4 +_080CD900: .4byte 0x02039A1B +_080CD904: .4byte 0x02039A1C + thumb_func_end SetMovedMonData + + thumb_func_start SetPlacedMonData +SetPlacedMonData: @ 0x080CD908 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + cmp r6, #0xe + bne _080CD93C + ldr r1, _080CD930 + movs r0, #0x64 + muls r0, r7, r0 + adds r0, r0, r1 + ldr r1, _080CD934 + ldr r1, [r1] + ldr r2, _080CD938 + adds r1, r1, r2 + movs r2, #0x64 + bl memcpy + b _080CD954 + .align 2, 0 +_080CD930: .4byte 0x02024190 +_080CD934: .4byte 0x020399A8 +_080CD938: .4byte 0x000020A4 +_080CD93C: + ldr r5, _080CD95C + ldr r0, [r5] + ldr r4, _080CD960 + adds r0, r0, r4 + bl BoxMonRestorePP + ldr r2, [r5] + adds r2, r2, r4 + adds r0, r6, #0 + adds r1, r7, #0 + bl SetBoxMonAt +_080CD954: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080CD95C: .4byte 0x020399A8 +_080CD960: .4byte 0x000020A4 + thumb_func_end SetPlacedMonData + + thumb_func_start PurgeMonOrBoxMon +PurgeMonOrBoxMon: @ 0x080CD964 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r0, #0xe + bne _080CD984 + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080CD980 + adds r0, r0, r1 + bl ZeroMonData + b _080CD988 + .align 2, 0 +_080CD980: .4byte 0x02024190 +_080CD984: + bl ZeroBoxMonAt +_080CD988: + pop {r0} + bx r0 + thumb_func_end PurgeMonOrBoxMon + + thumb_func_start SetShiftedMonData +SetShiftedMonData: @ 0x080CD98C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + cmp r6, #0xe + bne _080CD9C0 + ldr r0, _080CD9B4 + ldr r0, [r0] + ldr r1, _080CD9B8 + adds r0, r0, r1 + ldr r2, _080CD9BC + movs r1, #0x64 + muls r1, r7, r1 + adds r1, r1, r2 + movs r2, #0x64 + bl memcpy + b _080CD9D0 + .align 2, 0 +_080CD9B4: .4byte 0x020399A8 +_080CD9B8: .4byte 0x00002108 +_080CD9BC: .4byte 0x02024190 +_080CD9C0: + ldr r0, _080CDA04 + ldr r2, [r0] + ldr r0, _080CDA08 + adds r2, r2, r0 + adds r0, r6, #0 + adds r1, r7, #0 + bl BoxMonAtToMon +_080CD9D0: + adds r0, r6, #0 + adds r1, r7, #0 + bl SetPlacedMonData + ldr r5, _080CDA04 + ldr r1, [r5] + ldr r4, _080CDA0C + adds r0, r1, r4 + ldr r2, _080CDA08 + adds r1, r1, r2 + movs r2, #0x64 + bl memcpy + ldr r0, [r5] + adds r0, r0, r4 + movs r1, #0 + bl SetCursorMonData + ldr r0, _080CDA10 + strb r6, [r0] + ldr r0, _080CDA14 + strb r7, [r0] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080CDA04: .4byte 0x020399A8 +_080CDA08: .4byte 0x00002108 +_080CDA0C: .4byte 0x000020A4 +_080CDA10: .4byte 0x02039A1B +_080CDA14: .4byte 0x02039A1C + thumb_func_end SetShiftedMonData + + thumb_func_start TryStorePartyMonInBox +TryStorePartyMonInBox: @ 0x080CDA18 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r0, r6, #0 + bl GetFirstFreeBoxSpot + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _080CDA36 + movs r0, #0 + b _080CDA96 +_080CDA36: + ldr r5, _080CDA54 + ldrb r0, [r5] + cmp r0, #0 + beq _080CDA58 + lsls r4, r4, #0x18 + lsrs r1, r4, #0x18 + adds r0, r6, #0 + bl SetPlacedMonData + bl DestroyMovingMonIcon + movs r0, #0 + strb r0, [r5] + b _080CDA72 + .align 2, 0 +_080CDA54: .4byte 0x02039A1A +_080CDA58: + ldr r5, _080CDA9C + ldrb r1, [r5] + movs r0, #0xe + bl SetMovedMonData + lsls r4, r4, #0x18 + lsrs r1, r4, #0x18 + adds r0, r6, #0 + bl SetPlacedMonData + ldrb r0, [r5] + bl DestroyPartyMonIcon +_080CDA72: + bl StorageGetCurrentBox + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r6, r0 + bne _080CDA84 + lsrs r0, r4, #0x18 + bl sub_080CA9B4 +_080CDA84: + ldr r0, _080CDAA0 + ldr r0, [r0] + ldr r1, _080CDAA4 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #1 + bl StartSpriteAnim + movs r0, #1 +_080CDA96: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080CDA9C: .4byte 0x02039A19 +_080CDAA0: .4byte 0x020399A8 +_080CDAA4: .4byte 0x00000CB4 + thumb_func_end TryStorePartyMonInBox + + thumb_func_start sub_080CDAA8 +sub_080CDAA8: @ 0x080CDAA8 + push {lr} + ldr r0, _080CDAC4 + ldr r0, [r0] + ldr r1, _080CDAC8 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0 + bl StartSpriteAnim + bl sub_080CE3BC + pop {r0} + bx r0 + .align 2, 0 +_080CDAC4: .4byte 0x020399A8 +_080CDAC8: .4byte 0x00000CB4 + thumb_func_end sub_080CDAA8 + + thumb_func_start sub_080CDACC +sub_080CDACC: @ 0x080CDACC + push {lr} + ldr r0, _080CDADC + ldrb r0, [r0] + cmp r0, #0 + beq _080CDAE0 + movs r2, #2 + b _080CDAF0 + .align 2, 0 +_080CDADC: .4byte 0x02039A1A +_080CDAE0: + ldr r0, _080CDB10 + movs r1, #0 + ldrsb r1, [r0, r1] + movs r2, #1 + eors r1, r2 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r2, r0, #0x1f +_080CDAF0: + ldr r0, _080CDB14 + ldrb r1, [r0] + adds r0, r2, #0 + bl sub_080CB788 + ldr r0, _080CDB18 + ldr r1, [r0] + ldr r2, _080CDB1C + adds r0, r1, r2 + ldr r2, _080CDB20 + adds r1, r1, r2 + bl StringCopy + pop {r0} + bx r0 + .align 2, 0 +_080CDB10: .4byte 0x02039A18 +_080CDB14: .4byte 0x02039A19 +_080CDB18: .4byte 0x020399A8 +_080CDB1C: .4byte 0x000021E0 +_080CDB20: .4byte 0x00000CEE + thumb_func_end sub_080CDACC + + thumb_func_start sub_080CDB24 +sub_080CDB24: @ 0x080CDB24 + push {lr} + bl sub_080CB84C + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080CDB34 + movs r0, #1 + b _080CDB46 +_080CDB34: + ldr r0, _080CDB4C + ldr r0, [r0] + ldr r1, _080CDB50 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0 + bl StartSpriteAnim + movs r0, #0 +_080CDB46: + pop {r1} + bx r1 + .align 2, 0 +_080CDB4C: .4byte 0x020399A8 +_080CDB50: .4byte 0x00000CB4 + thumb_func_end sub_080CDB24 + + thumb_func_start ReleaseMon +ReleaseMon: @ 0x080CDB54 + push {lr} + bl sub_080CB894 + ldr r1, _080CDB68 + ldrb r0, [r1] + cmp r0, #0 + beq _080CDB6C + movs r0, #0 + strb r0, [r1] + b _080CDB92 + .align 2, 0 +_080CDB68: .4byte 0x02039A1A +_080CDB6C: + ldr r0, _080CDB7C + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + bne _080CDB80 + movs r2, #0xe + b _080CDB88 + .align 2, 0 +_080CDB7C: .4byte 0x02039A18 +_080CDB80: + bl StorageGetCurrentBox + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 +_080CDB88: + ldr r0, _080CDB9C + ldrb r1, [r0] + adds r0, r2, #0 + bl PurgeMonOrBoxMon +_080CDB92: + bl sub_080CE3BC + pop {r0} + bx r0 + .align 2, 0 +_080CDB9C: .4byte 0x02039A19 + thumb_func_end ReleaseMon + + thumb_func_start sub_080CDBA0 +sub_080CDBA0: @ 0x080CDBA0 + push {lr} + ldr r0, _080CDBC0 + ldrb r0, [r0] + cmp r0, #0 + beq _080CDBBA + ldr r0, _080CDBC4 + ldr r0, [r0] + ldr r1, _080CDBC8 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #3 + bl StartSpriteAnim +_080CDBBA: + pop {r0} + bx r0 + .align 2, 0 +_080CDBC0: .4byte 0x02039A1A +_080CDBC4: .4byte 0x020399A8 +_080CDBC8: .4byte 0x00000CB4 + thumb_func_end sub_080CDBA0 + + thumb_func_start sub_080CDBCC +sub_080CDBCC: @ 0x080CDBCC + push {r4, r5, lr} + adds r3, r0, #0 + movs r5, #0 + ldr r4, _080CDC10 +_080CDBD4: + movs r1, #0 + ldrsb r1, [r4, r1] + cmp r1, #0x22 + beq _080CDBF4 + ldr r0, _080CDC14 + ldr r2, [r0] + movs r0, #4 + ldrsb r0, [r2, r0] + cmp r1, r0 + bne _080CDBFA + movs r1, #1 + ldrsb r1, [r4, r1] + movs r0, #5 + ldrsb r0, [r2, r0] + cmp r1, r0 + bne _080CDBFA +_080CDBF4: + ldrh r0, [r4, #2] + strh r0, [r3] + adds r3, #2 +_080CDBFA: + adds r4, #4 + adds r5, #1 + cmp r5, #5 + bls _080CDBD4 + ldr r1, _080CDC18 + adds r0, r1, #0 + strh r0, [r3] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080CDC10: .4byte 0x085564A0 +_080CDC14: .4byte 0x03005AEC +_080CDC18: .4byte 0x00000163 + thumb_func_end sub_080CDBCC + + thumb_func_start InitCanRelaseMonVars +InitCanRelaseMonVars: @ 0x080CDC1C + push {r4, r5, lr} + bl AtLeastThreeUsableMons + adds r3, r0, #0 + cmp r3, #0 + bne _080CDC4C + ldr r2, _080CDC40 + ldr r0, [r2] + ldr r1, _080CDC44 + adds r0, r0, r1 + movs r1, #1 + strb r1, [r0] + ldr r0, [r2] + ldr r2, _080CDC48 + adds r0, r0, r2 + strb r3, [r0] + b _080CDD80 + .align 2, 0 +_080CDC40: .4byte 0x020399A8 +_080CDC44: .4byte 0x0000216D +_080CDC48: .4byte 0x0000216C +_080CDC4C: + ldr r0, _080CDC7C + ldrb r0, [r0] + cmp r0, #0 + beq _080CDC94 + ldr r4, _080CDC80 + ldr r1, [r4] + ldr r3, _080CDC84 + adds r0, r1, r3 + ldr r2, _080CDC88 + adds r1, r1, r2 + movs r2, #0x64 + bl memcpy + ldr r0, [r4] + ldr r3, _080CDC8C + adds r0, r0, r3 + movs r1, #0xff + strb r1, [r0] + ldr r0, [r4] + ldr r1, _080CDC90 + adds r0, r0, r1 + movs r1, #1 + rsbs r1, r1, #0 + b _080CDD10 + .align 2, 0 +_080CDC7C: .4byte 0x02039A1A +_080CDC80: .4byte 0x020399A8 +_080CDC84: .4byte 0x00002108 +_080CDC88: .4byte 0x000020A4 +_080CDC8C: .4byte 0x00002170 +_080CDC90: .4byte 0x00002171 +_080CDC94: + ldr r0, _080CDCC8 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + bne _080CDCE0 + ldr r4, _080CDCCC + ldr r0, [r4] + ldr r2, _080CDCD0 + adds r0, r0, r2 + ldr r3, _080CDCD4 + ldr r1, _080CDCD8 + movs r2, #0 + ldrsb r2, [r1, r2] + movs r1, #0x64 + muls r1, r2, r1 + adds r1, r1, r3 + movs r2, #0x64 + bl memcpy + ldr r0, [r4] + ldr r3, _080CDCDC + adds r0, r0, r3 + movs r1, #0xe + strb r1, [r0] + b _080CDD04 + .align 2, 0 +_080CDCC8: .4byte 0x02039A18 +_080CDCCC: .4byte 0x020399A8 +_080CDCD0: .4byte 0x00002108 +_080CDCD4: .4byte 0x02024190 +_080CDCD8: .4byte 0x02039A19 +_080CDCDC: .4byte 0x00002170 +_080CDCE0: + bl StorageGetCurrentBox + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080CDD44 + ldrb r1, [r1] + ldr r4, _080CDD48 + ldr r2, [r4] + ldr r3, _080CDD4C + adds r2, r2, r3 + bl BoxMonAtToMon + bl StorageGetCurrentBox + ldr r1, [r4] + ldr r2, _080CDD50 + adds r1, r1, r2 + strb r0, [r1] +_080CDD04: + ldr r0, _080CDD48 + ldr r0, [r0] + ldr r1, _080CDD44 + ldrb r1, [r1] + ldr r3, _080CDD54 + adds r0, r0, r3 +_080CDD10: + strb r1, [r0] + ldr r5, _080CDD48 + ldr r0, [r5] + ldr r4, _080CDD58 + adds r0, r0, r4 + bl sub_080CDBCC + ldr r2, [r5] + ldr r1, _080CDD4C + adds r0, r2, r1 + adds r2, r2, r4 + movs r1, #0x51 + bl GetMonData + ldr r2, [r5] + ldr r3, _080CDD5C + adds r1, r2, r3 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080CDD64 + ldr r0, _080CDD60 + adds r1, r2, r0 + movs r0, #0 + strb r0, [r1] + b _080CDD74 + .align 2, 0 +_080CDD44: .4byte 0x02039A19 +_080CDD48: .4byte 0x020399A8 +_080CDD4C: .4byte 0x00002108 +_080CDD50: .4byte 0x00002170 +_080CDD54: .4byte 0x00002171 +_080CDD58: .4byte 0x00002176 +_080CDD5C: .4byte 0x00002174 +_080CDD60: .4byte 0x0000216D +_080CDD64: + ldr r1, _080CDD88 + adds r0, r2, r1 + movs r1, #1 + strb r1, [r0] + ldr r0, [r5] + ldr r2, _080CDD8C + adds r0, r0, r2 + strb r1, [r0] +_080CDD74: + ldr r0, _080CDD90 + ldr r0, [r0] + ldr r3, _080CDD94 + adds r0, r0, r3 + movs r1, #0 + strh r1, [r0] +_080CDD80: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080CDD88: .4byte 0x0000216D +_080CDD8C: .4byte 0x0000216C +_080CDD90: .4byte 0x020399A8 +_080CDD94: .4byte 0x00002172 + thumb_func_end InitCanRelaseMonVars + + thumb_func_start AtLeastThreeUsableMons +AtLeastThreeUsableMons: @ 0x080CDD98 + push {r4, r5, r6, lr} + ldr r0, _080CDDC8 + ldrb r1, [r0] + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r5, r0, #0x1f + movs r4, #0 +_080CDDA6: + movs r0, #0x64 + muls r0, r4, r0 + ldr r1, _080CDDCC + adds r0, r0, r1 + movs r1, #5 + bl GetMonData + cmp r0, #0 + beq _080CDDBA + adds r5, #1 +_080CDDBA: + adds r4, #1 + cmp r4, #5 + ble _080CDDA6 + cmp r5, #2 + ble _080CDDD0 +_080CDDC4: + movs r0, #1 + b _080CDDF4 + .align 2, 0 +_080CDDC8: .4byte 0x02039A1A +_080CDDCC: .4byte 0x02024190 +_080CDDD0: + movs r6, #0 +_080CDDD2: + movs r4, #0 +_080CDDD4: + adds r0, r6, #0 + adds r1, r4, #0 + bl CheckBoxMonSanityAt + cmp r0, #0 + beq _080CDDE6 + adds r5, #1 + cmp r5, #2 + bgt _080CDDC4 +_080CDDE6: + adds r4, #1 + cmp r4, #0x1d + ble _080CDDD4 + adds r6, #1 + cmp r6, #0xd + ble _080CDDD2 + movs r0, #0 +_080CDDF4: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end AtLeastThreeUsableMons + + thumb_func_start RunCanReleaseMon +RunCanReleaseMon: @ 0x080CDDFC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _080CDE20 + ldr r2, [r0] + ldr r3, _080CDE24 + adds r1, r2, r3 + ldrb r1, [r1] + adds r5, r0, #0 + cmp r1, #0 + beq _080CDE2C + ldr r1, _080CDE28 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + b _080CDFB2 + .align 2, 0 +_080CDE20: .4byte 0x020399A8 +_080CDE24: .4byte 0x0000216D +_080CDE28: .4byte 0x0000216C +_080CDE2C: + ldr r3, _080CDE3C + adds r0, r2, r3 + ldrh r0, [r0] + cmp r0, #0 + beq _080CDE40 + cmp r0, #1 + beq _080CDF0C + b _080CDFAE + .align 2, 0 +_080CDE3C: .4byte 0x00002172 +_080CDE40: + movs r6, #0 +_080CDE42: + ldr r2, [r5] + ldr r1, _080CDEAC + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0xe + bne _080CDE60 + ldr r3, _080CDEB0 + adds r0, r2, r3 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, r6 + beq _080CDE82 +_080CDE60: + movs r0, #0x64 + muls r0, r6, r0 + ldr r1, _080CDEB4 + adds r0, r0, r1 + ldr r1, _080CDEB8 + adds r2, r2, r1 + movs r1, #0x51 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r1, [r5] + ldr r2, _080CDEBC + adds r1, r1, r2 + ldrh r0, [r1] + bics r0, r4 + strh r0, [r1] +_080CDE82: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #5 + bls _080CDE42 + ldr r2, _080CDEC0 + ldr r1, [r2] + ldr r3, _080CDEBC + adds r0, r1, r3 + ldrh r0, [r0] + cmp r0, #0 + bne _080CDEC8 + subs r3, #7 + adds r0, r1, r3 + movs r1, #1 + strb r1, [r0] + ldr r0, [r2] + ldr r2, _080CDEC4 + adds r0, r0, r2 + strb r1, [r0] + b _080CDFAE + .align 2, 0 +_080CDEAC: .4byte 0x00002170 +_080CDEB0: .4byte 0x00002171 +_080CDEB4: .4byte 0x02024190 +_080CDEB8: .4byte 0x00002176 +_080CDEBC: .4byte 0x00002174 +_080CDEC0: .4byte 0x020399A8 +_080CDEC4: .4byte 0x0000216C +_080CDEC8: + ldr r3, _080CDEE8 + adds r0, r1, r3 + movs r1, #0 + strb r1, [r0] + ldr r0, [r2] + adds r3, #1 + adds r0, r0, r3 + strb r1, [r0] + ldr r1, [r2] + ldr r0, _080CDEEC + adds r1, r1, r0 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _080CDFAE + .align 2, 0 +_080CDEE8: .4byte 0x0000216E +_080CDEEC: .4byte 0x00002172 +_080CDEF0: + ldr r1, _080CDF04 + adds r0, r5, r1 + movs r1, #1 + strb r1, [r0] + mov r2, r8 + ldr r0, [r2] + ldr r3, _080CDF08 + adds r0, r0, r3 + strb r1, [r0] + b _080CDFAE + .align 2, 0 +_080CDF04: .4byte 0x0000216D +_080CDF08: .4byte 0x0000216C +_080CDF0C: + movs r6, #0 + mov r8, r5 + ldr r7, _080CDFBC +_080CDF12: + mov r0, r8 + ldr r3, [r0] + ldr r1, _080CDFC0 + adds r0, r3, r1 + ldrb r0, [r0] + ldr r2, _080CDFC4 + adds r1, r3, r2 + ldrb r1, [r1] + adds r2, #7 + adds r3, r3, r2 + movs r2, #0x51 + bl GetAndCopyBoxMonDataAt + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0 + beq _080CDF5C + ldr r5, [r5] + ldr r3, _080CDFC8 + adds r0, r5, r3 + ldrh r2, [r0] + ldr r1, _080CDFC0 + adds r0, r5, r1 + ldrh r3, [r0] + adds r1, r7, #0 + ands r1, r2 + adds r0, r7, #0 + ands r0, r3 + cmp r1, r0 + beq _080CDF5C + ldr r2, _080CDFCC + adds r1, r5, r2 + ldrh r0, [r1] + bics r0, r4 + strh r0, [r1] + cmp r0, #0 + beq _080CDEF0 +_080CDF5C: + ldr r2, _080CDFD0 + ldr r1, [r2] + ldr r3, _080CDFC4 + adds r1, r1, r3 + ldrb r0, [r1] + adds r0, #1 + movs r3, #0 + strb r0, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r5, r2, #0 + cmp r0, #0x1d + ble _080CDFA4 + ldr r0, [r2] + ldr r1, _080CDFC4 + adds r0, r0, r1 + strb r3, [r0] + ldr r1, [r2] + ldr r0, _080CDFC0 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0xd + ble _080CDFA4 + ldr r0, [r2] + ldr r1, _080CDFD4 + adds r0, r0, r1 + movs r1, #1 + strb r1, [r0] + ldr r0, [r2] + ldr r2, _080CDFD8 + adds r0, r0, r2 + strb r3, [r0] +_080CDFA4: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #0x1d + bls _080CDF12 +_080CDFAE: + movs r0, #1 + rsbs r0, r0, #0 +_080CDFB2: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080CDFBC: .4byte 0x0000FFFF +_080CDFC0: .4byte 0x0000216E +_080CDFC4: .4byte 0x0000216F +_080CDFC8: .4byte 0x00002170 +_080CDFCC: .4byte 0x00002174 +_080CDFD0: .4byte 0x020399A8 +_080CDFD4: .4byte 0x0000216D +_080CDFD8: .4byte 0x0000216C + thumb_func_end RunCanReleaseMon + + thumb_func_start sub_080CDFDC +sub_080CDFDC: @ 0x080CDFDC + push {lr} + ldr r0, _080CDFFC + ldrb r0, [r0] + cmp r0, #0 + beq _080CDFF6 + ldr r0, _080CE000 + ldr r1, _080CE004 + ldr r1, [r1] + ldr r2, _080CE008 + adds r1, r1, r2 + movs r2, #0x64 + bl memcpy +_080CDFF6: + pop {r0} + bx r0 + .align 2, 0 +_080CDFFC: .4byte 0x02039A1A +_080CE000: .4byte 0x020399B4 +_080CE004: .4byte 0x020399A8 +_080CE008: .4byte 0x000020A4 + thumb_func_end sub_080CDFDC + + thumb_func_start sub_080CE00C +sub_080CE00C: @ 0x080CE00C + push {lr} + ldr r0, _080CE030 + ldrb r0, [r0] + cmp r0, #0 + beq _080CE054 + ldr r0, _080CE034 + ldrb r0, [r0] + cmp r0, #0xe + bne _080CE044 + ldr r0, _080CE038 + ldr r0, [r0] + ldr r1, _080CE03C + adds r0, r0, r1 + ldr r1, _080CE040 + movs r2, #0x64 + bl memcpy + b _080CE054 + .align 2, 0 +_080CE030: .4byte 0x02039A1A +_080CE034: .4byte 0x02039A1B +_080CE038: .4byte 0x020399A8 +_080CE03C: .4byte 0x000020A4 +_080CE040: .4byte 0x020399B4 +_080CE044: + ldr r0, _080CE058 + ldr r0, [r0] + ldr r1, _080CE05C + adds r0, r0, r1 + ldr r1, _080CE060 + movs r2, #0x50 + bl memcpy +_080CE054: + pop {r0} + bx r0 + .align 2, 0 +_080CE058: .4byte 0x020399A8 +_080CE05C: .4byte 0x000020A4 +_080CE060: .4byte 0x020399B4 + thumb_func_end sub_080CE00C + + thumb_func_start sub_080CE064 +sub_080CE064: @ 0x080CE064 + push {r4, r5, lr} + ldr r0, _080CE098 + ldrb r5, [r0] + cmp r5, #0 + beq _080CE0B4 + bl sub_080CDFDC + ldr r3, _080CE09C + ldr r1, [r3] + ldr r0, _080CE0A0 + adds r2, r1, r0 + ldr r0, _080CE0A4 + str r0, [r2] + ldr r2, _080CE0A8 + adds r1, r1, r2 + movs r2, #0 + strb r2, [r1] + ldr r0, [r3] + ldr r4, _080CE0AC + adds r0, r0, r4 + strb r2, [r0] + ldr r0, [r3] + ldr r1, _080CE0B0 + adds r0, r0, r1 + strb r2, [r0] + b _080CE146 + .align 2, 0 +_080CE098: .4byte 0x02039A1A +_080CE09C: .4byte 0x020399A8 +_080CE0A0: .4byte 0x0000218C +_080CE0A4: .4byte 0x020399B4 +_080CE0A8: .4byte 0x00002187 +_080CE0AC: .4byte 0x00002186 +_080CE0B0: .4byte 0x00002188 +_080CE0B4: + ldr r0, _080CE0F0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + bne _080CE110 + ldr r4, _080CE0F4 + ldr r1, [r4] + ldr r0, _080CE0F8 + adds r2, r1, r0 + ldr r0, _080CE0FC + str r0, [r2] + ldr r0, _080CE100 + ldrb r0, [r0] + ldr r2, _080CE104 + adds r1, r1, r2 + strb r0, [r1] + bl CountPartyMons + ldr r1, [r4] + subs r0, #1 + ldr r2, _080CE108 + adds r1, r1, r2 + strb r0, [r1] + ldr r0, [r4] + ldr r4, _080CE10C + adds r0, r0, r4 + strb r5, [r0] + b _080CE146 + .align 2, 0 +_080CE0F0: .4byte 0x02039A18 +_080CE0F4: .4byte 0x020399A8 +_080CE0F8: .4byte 0x0000218C +_080CE0FC: .4byte 0x02024190 +_080CE100: .4byte 0x02039A19 +_080CE104: .4byte 0x00002187 +_080CE108: .4byte 0x00002186 +_080CE10C: .4byte 0x00002188 +_080CE110: + bl StorageGetCurrentBox + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl GetBoxedMonPtr + ldr r3, _080CE14C + ldr r2, [r3] + ldr r4, _080CE150 + adds r1, r2, r4 + str r0, [r1] + ldr r0, _080CE154 + ldrb r0, [r0] + ldr r1, _080CE158 + adds r2, r2, r1 + strb r0, [r2] + ldr r0, [r3] + ldr r2, _080CE15C + adds r0, r0, r2 + movs r1, #0x1d + strb r1, [r0] + ldr r0, [r3] + subs r4, #4 + adds r0, r0, r4 + movs r1, #2 + strb r1, [r0] +_080CE146: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080CE14C: .4byte 0x020399A8 +_080CE150: .4byte 0x0000218C +_080CE154: .4byte 0x02039A19 +_080CE158: .4byte 0x00002187 +_080CE15C: .4byte 0x00002186 + thumb_func_end sub_080CE064 + + thumb_func_start sub_080CE160 +sub_080CE160: @ 0x080CE160 + push {lr} + ldr r0, _080CE170 + ldrb r0, [r0] + cmp r0, #0 + beq _080CE174 + bl sub_080CE00C + b _080CE17C + .align 2, 0 +_080CE170: .4byte 0x02039A1A +_080CE174: + ldr r0, _080CE180 + ldr r1, _080CE184 + ldrb r1, [r1] + strb r1, [r0] +_080CE17C: + pop {r0} + bx r0 + .align 2, 0 +_080CE180: .4byte 0x02039A19 +_080CE184: .4byte 0x0203CBEC + thumb_func_end sub_080CE160 + + thumb_func_start CompactPartySlots +CompactPartySlots: @ 0x080CE188 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r7, _080CE1D4 + movs r6, #0 + movs r5, #0 + movs r0, #0x64 + mov sb, r0 + ldr r1, _080CE1D8 + mov r8, r1 + subs r0, #0x65 + mov sl, r0 +_080CE1A4: + mov r0, sb + muls r0, r6, r0 + mov r1, r8 + adds r4, r0, r1 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080CE1DC + cmp r6, r5 + beq _080CE1CC + mov r0, sb + muls r0, r5, r0 + add r0, r8 + adds r1, r4, #0 + movs r2, #0x64 + bl memcpy +_080CE1CC: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + b _080CE1E6 + .align 2, 0 +_080CE1D4: .4byte 0x0000FFFF +_080CE1D8: .4byte 0x02024190 +_080CE1DC: + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + cmp r0, sl + bne _080CE1E6 + adds r7, r6, #0 +_080CE1E6: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #5 + bls _080CE1A4 + lsls r7, r7, #0x10 + cmp r5, #5 + bhi _080CE20E + movs r6, #0x64 + ldr r4, _080CE220 +_080CE1FA: + adds r0, r5, #0 + muls r0, r6, r0 + adds r0, r0, r4 + bl ZeroMonData + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #5 + bls _080CE1FA +_080CE20E: + asrs r0, r7, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080CE220: .4byte 0x02024190 + thumb_func_end CompactPartySlots + + thumb_func_start SetMonMarkings +SetMonMarkings: @ 0x080CE224 + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, sp + strb r0, [r1] + ldr r2, _080CE254 + ldr r1, [r2] + ldr r3, _080CE258 + adds r1, r1, r3 + strb r0, [r1] + ldr r0, _080CE25C + ldrb r0, [r0] + cmp r0, #0 + beq _080CE264 + ldr r0, [r2] + ldr r1, _080CE260 + adds r0, r0, r1 + movs r1, #8 + mov r2, sp + bl SetMonData + b _080CE298 + .align 2, 0 +_080CE254: .4byte 0x020399A8 +_080CE258: .4byte 0x00000CEB +_080CE25C: .4byte 0x02039A1A +_080CE260: .4byte 0x000020A4 +_080CE264: + ldr r4, _080CE2A0 + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #1 + bne _080CE284 + ldr r0, _080CE2A4 + movs r1, #0 + ldrsb r1, [r0, r1] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080CE2A8 + adds r0, r0, r1 + movs r1, #8 + mov r2, sp + bl SetMonData +_080CE284: + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + bne _080CE298 + ldr r0, _080CE2A4 + ldrb r0, [r0] + movs r1, #8 + mov r2, sp + bl SetCurrentBoxMonData +_080CE298: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CE2A0: .4byte 0x02039A18 +_080CE2A4: .4byte 0x02039A19 +_080CE2A8: .4byte 0x02024190 + thumb_func_end SetMonMarkings + + thumb_func_start CanMovePartyMon +CanMovePartyMon: @ 0x080CE2AC + push {lr} + ldr r0, _080CE2D4 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + bne _080CE2E0 + ldr r0, _080CE2D8 + ldrb r0, [r0] + cmp r0, #0 + bne _080CE2E0 + ldr r0, _080CE2DC + ldrb r0, [r0] + bl CountPartyAliveNonEggMonsExcept + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080CE2E0 + movs r0, #1 + b _080CE2E2 + .align 2, 0 +_080CE2D4: .4byte 0x02039A18 +_080CE2D8: .4byte 0x02039A1A +_080CE2DC: .4byte 0x02039A19 +_080CE2E0: + movs r0, #0 +_080CE2E2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CanMovePartyMon + + thumb_func_start CanShiftMon +CanShiftMon: @ 0x080CE2E8 + push {lr} + ldr r0, _080CE32C + ldrb r0, [r0] + cmp r0, #0 + beq _080CE344 + ldr r0, _080CE330 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + bne _080CE328 + ldr r0, _080CE334 + ldrb r0, [r0] + bl CountPartyAliveNonEggMonsExcept + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080CE328 + ldr r0, _080CE338 + ldr r1, [r0] + ldr r2, _080CE33C + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _080CE344 + ldr r2, _080CE340 + adds r0, r1, r2 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _080CE344 +_080CE328: + movs r0, #1 + b _080CE346 + .align 2, 0 +_080CE32C: .4byte 0x02039A1A +_080CE330: .4byte 0x02039A18 +_080CE334: .4byte 0x02039A19 +_080CE338: .4byte 0x020399A8 +_080CE33C: .4byte 0x00000CED +_080CE340: .4byte 0x000020A4 +_080CE344: + movs r0, #0 +_080CE346: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CanShiftMon + + thumb_func_start GetBoxCursorPosition +GetBoxCursorPosition: @ 0x080CE34C + ldr r0, _080CE354 + ldrb r0, [r0] + bx lr + .align 2, 0 +_080CE354: .4byte 0x02039A1A + thumb_func_end GetBoxCursorPosition + + thumb_func_start IsCursorOnBox +IsCursorOnBox: @ 0x080CE358 + push {lr} + movs r1, #0 + ldr r0, _080CE370 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #2 + bne _080CE36A + movs r1, #1 +_080CE36A: + adds r0, r1, #0 + pop {r1} + bx r1 + .align 2, 0 +_080CE370: .4byte 0x02039A18 + thumb_func_end IsCursorOnBox + + thumb_func_start IsCursorOnCloseBox +IsCursorOnCloseBox: @ 0x080CE374 + push {lr} + movs r1, #0 + ldr r0, _080CE398 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #3 + bne _080CE392 + ldr r0, _080CE39C + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + bne _080CE392 + movs r1, #1 +_080CE392: + adds r0, r1, #0 + pop {r1} + bx r1 + .align 2, 0 +_080CE398: .4byte 0x02039A18 +_080CE39C: .4byte 0x02039A19 + thumb_func_end IsCursorOnCloseBox + + thumb_func_start IsCursorInBox +IsCursorInBox: @ 0x080CE3A0 + push {lr} + movs r1, #0 + ldr r0, _080CE3B8 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _080CE3B2 + movs r1, #1 +_080CE3B2: + adds r0, r1, #0 + pop {r1} + bx r1 + .align 2, 0 +_080CE3B8: .4byte 0x02039A18 + thumb_func_end IsCursorInBox + + thumb_func_start sub_080CE3BC +sub_080CE3BC: @ 0x080CE3BC + push {r4, lr} + ldr r0, _080CE3F0 + ldr r1, [r0] + movs r2, #0 + ldr r3, _080CE3F4 + ldrb r0, [r3] + cmp r0, #0 + bne _080CE3CE + movs r2, #1 +_080CE3CE: + ldr r4, _080CE3F8 + adds r0, r1, r4 + strb r2, [r0] + ldrb r0, [r3] + cmp r0, #0 + bne _080CE44C + ldr r0, _080CE3FC + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + beq _080CE406 + cmp r0, #1 + bgt _080CE400 + cmp r0, #0 + beq _080CE436 + b _080CE44C + .align 2, 0 +_080CE3F0: .4byte 0x020399A8 +_080CE3F4: .4byte 0x02039A1A +_080CE3F8: .4byte 0x00000CEA +_080CE3FC: .4byte 0x02039A18 +_080CE400: + cmp r0, #3 + bgt _080CE44C + b _080CE42C +_080CE406: + ldr r1, _080CE424 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #5 + bgt _080CE42C + adds r1, r0, #0 + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080CE428 + adds r0, r0, r1 + movs r1, #0 + bl SetCursorMonData + b _080CE44C + .align 2, 0 +_080CE424: .4byte 0x02039A19 +_080CE428: .4byte 0x02024190 +_080CE42C: + movs r0, #0 + movs r1, #2 + bl SetCursorMonData + b _080CE44C +_080CE436: + bl StorageGetCurrentBox + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080CE454 + ldrb r1, [r1] + bl GetBoxedMonPtr + movs r1, #1 + bl SetCursorMonData +_080CE44C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CE454: .4byte 0x02039A19 + thumb_func_end sub_080CE3BC + + thumb_func_start sub_080CE458 +sub_080CE458: @ 0x080CE458 + push {lr} + ldr r0, _080CE46C + ldrb r0, [r0] + cmp r0, #0 + beq _080CE474 + ldr r0, _080CE470 + movs r1, #0 + bl SetCursorMonData + b _080CE478 + .align 2, 0 +_080CE46C: .4byte 0x02039A1A +_080CE470: .4byte 0x020399B4 +_080CE474: + bl sub_080CE3BC +_080CE478: + pop {r0} + bx r0 + thumb_func_end sub_080CE458 + + thumb_func_start SetCursorMonData +SetCursorMonData: @ 0x080CE47C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r5, r1, #0 + ldr r0, _080CE4E0 + mov r8, r0 + ldr r1, [r0] + ldr r3, _080CE4E4 + adds r2, r1, r3 + movs r0, #0 + strh r0, [r2] + mov sb, r0 + mov sl, r0 + cmp r5, #0 + bne _080CE594 + adds r6, r4, #0 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + mov r2, r8 + ldr r1, [r2] + ldr r3, _080CE4E8 + adds r1, r1, r3 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080CE4C0 + b _080CE6B0 +_080CE4C0: + adds r0, r4, #0 + movs r1, #4 + bl GetMonData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + cmp r0, #0 + beq _080CE4F0 + mov r1, r8 + ldr r0, [r1] + ldr r2, _080CE4EC + adds r0, r0, r2 + movs r1, #1 + strb r1, [r0] + b _080CE502 + .align 2, 0 +_080CE4E0: .4byte 0x020399A8 +_080CE4E4: .4byte 0x00000CE6 +_080CE4E8: .4byte 0x00000CE4 +_080CE4EC: .4byte 0x00000CED +_080CE4F0: + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + mov r3, r8 + ldr r1, [r3] + ldr r2, _080CE578 + adds r1, r1, r2 + strb r0, [r1] +_080CE502: + ldr r4, _080CE57C + ldr r2, [r4] + ldr r5, _080CE580 + adds r2, r2, r5 + adds r0, r6, #0 + movs r1, #2 + bl GetMonData + ldr r0, [r4] + adds r0, r0, r5 + bl StringGetEnd10 + adds r0, r6, #0 + movs r1, #0x38 + bl GetMonData + ldr r1, [r4] + ldr r3, _080CE584 + adds r1, r1, r3 + strb r0, [r1] + adds r0, r6, #0 + movs r1, #8 + bl GetMonData + ldr r1, [r4] + ldr r2, _080CE588 + adds r1, r1, r2 + strb r0, [r1] + adds r0, r6, #0 + movs r1, #0 + bl GetMonData + ldr r1, [r4] + movs r3, #0xce + lsls r3, r3, #4 + adds r1, r1, r3 + str r0, [r1] + adds r0, r6, #0 + bl GetMonFrontSpritePal + ldr r1, [r4] + ldr r2, _080CE58C + adds r1, r1, r2 + str r0, [r1] + adds r0, r6, #0 + bl GetMonGender + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + adds r0, r6, #0 + movs r1, #0xc + bl GetMonData + ldr r1, [r4] + ldr r3, _080CE590 + adds r1, r1, r3 + strh r0, [r1] + b _080CE6A2 + .align 2, 0 +_080CE578: .4byte 0x00000CED +_080CE57C: .4byte 0x020399A8 +_080CE580: .4byte 0x00000CEE +_080CE584: .4byte 0x00000CEC +_080CE588: .4byte 0x00000CEB +_080CE58C: .4byte 0x00000CDC +_080CE590: .4byte 0x00000CE6 +_080CE594: + cmp r5, #1 + beq _080CE59A + b _080CE698 +_080CE59A: + adds r7, r4, #0 + adds r0, r7, #0 + movs r1, #0x41 + bl GetBoxMonData + mov r2, r8 + ldr r1, [r2] + ldr r3, _080CE5E0 + adds r1, r1, r3 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080CE5B6 + b _080CE6B0 +_080CE5B6: + adds r0, r7, #0 + movs r1, #1 + bl GetBoxMonData + mov sb, r0 + adds r0, r7, #0 + movs r1, #4 + bl GetBoxMonData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + cmp r0, #0 + beq _080CE5E8 + mov r1, r8 + ldr r0, [r1] + ldr r2, _080CE5E4 + adds r0, r0, r2 + strb r5, [r0] + b _080CE5FA + .align 2, 0 +_080CE5E0: .4byte 0x00000CE4 +_080CE5E4: .4byte 0x00000CED +_080CE5E8: + adds r0, r7, #0 + movs r1, #0x2d + bl GetBoxMonData + mov r3, r8 + ldr r1, [r3] + ldr r2, _080CE67C + adds r1, r1, r2 + strb r0, [r1] +_080CE5FA: + ldr r5, _080CE680 + ldr r2, [r5] + ldr r4, _080CE684 + adds r2, r2, r4 + adds r0, r7, #0 + movs r1, #2 + bl GetBoxMonData + ldr r0, [r5] + adds r0, r0, r4 + bl StringGetEnd10 + adds r0, r7, #0 + bl GetLevelFromBoxMonExp + ldr r1, [r5] + ldr r3, _080CE688 + adds r1, r1, r3 + strb r0, [r1] + adds r0, r7, #0 + movs r1, #8 + bl GetBoxMonData + ldr r1, [r5] + ldr r2, _080CE68C + adds r1, r1, r2 + strb r0, [r1] + adds r0, r7, #0 + movs r1, #0 + bl GetBoxMonData + adds r2, r0, #0 + ldr r1, [r5] + movs r6, #0xce + lsls r6, r6, #4 + adds r0, r1, r6 + str r2, [r0] + subs r4, #0xa + adds r1, r1, r4 + ldrh r0, [r1] + mov r1, sb + bl GetMonSpritePalFromSpeciesAndPersonality + ldr r1, [r5] + ldr r3, _080CE690 + adds r2, r1, r3 + str r0, [r2] + adds r4, r1, r4 + ldrh r0, [r4] + adds r1, r1, r6 + ldr r1, [r1] + bl GetGenderFromSpeciesAndPersonality + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + adds r0, r7, #0 + movs r1, #0xc + bl GetBoxMonData + ldr r1, [r5] + ldr r2, _080CE694 + adds r1, r1, r2 + strh r0, [r1] + b _080CE6A2 + .align 2, 0 +_080CE67C: .4byte 0x00000CED +_080CE680: .4byte 0x020399A8 +_080CE684: .4byte 0x00000CEE +_080CE688: .4byte 0x00000CEC +_080CE68C: .4byte 0x00000CEB +_080CE690: .4byte 0x00000CDC +_080CE694: .4byte 0x00000CE6 +_080CE698: + ldr r3, _080CE6F4 + adds r0, r1, r3 + mov r1, sb + strh r1, [r0] + strh r1, [r2] +_080CE6A2: + ldr r0, _080CE6F8 + ldr r1, [r0] + ldr r2, _080CE6F4 + adds r0, r1, r2 + ldrh r2, [r0] + cmp r2, #0 + bne _080CE710 +_080CE6B0: + ldr r4, _080CE6F8 + ldr r0, [r4] + ldr r3, _080CE6FC + adds r0, r0, r3 + movs r1, #0 + movs r2, #5 + bl StringFill + ldr r0, [r4] + ldr r1, _080CE700 + adds r0, r0, r1 + movs r1, #0 + movs r2, #8 + bl StringFill + ldr r0, [r4] + ldr r2, _080CE704 + adds r0, r0, r2 + movs r1, #0 + movs r2, #8 + bl StringFill + ldr r0, [r4] + ldr r3, _080CE708 + adds r0, r0, r3 + movs r1, #0 + movs r2, #8 + bl StringFill + ldr r0, [r4] + ldr r1, _080CE70C + adds r0, r0, r1 + b _080CE76E + .align 2, 0 +_080CE6F4: .4byte 0x00000CE4 +_080CE6F8: .4byte 0x020399A8 +_080CE6FC: .4byte 0x00000CEE +_080CE700: .4byte 0x00000CF9 +_080CE704: .4byte 0x00000D1D +_080CE708: .4byte 0x00000D41 +_080CE70C: .4byte 0x00000D65 +_080CE710: + ldr r3, _080CE734 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, #0 + beq _080CE790 + mov r0, sl + cmp r0, #0 + beq _080CE73C + ldr r2, _080CE738 + adds r0, r1, r2 + adds r3, #1 + adds r1, r1, r3 + movs r2, #0 + movs r3, #5 + bl StringCopyPadded + b _080CE74A + .align 2, 0 +_080CE734: .4byte 0x00000CED +_080CE738: .4byte 0x00000CF9 +_080CE73C: + ldr r2, _080CE778 + adds r0, r1, r2 + ldr r1, _080CE77C + movs r2, #0 + movs r3, #8 + bl StringCopyPadded +_080CE74A: + ldr r4, _080CE780 + ldr r0, [r4] + ldr r3, _080CE784 + adds r0, r0, r3 + movs r1, #0 + movs r2, #8 + bl StringFill + ldr r0, [r4] + ldr r1, _080CE788 + adds r0, r0, r1 + movs r1, #0 + movs r2, #8 + bl StringFill + ldr r0, [r4] + ldr r2, _080CE78C + adds r0, r0, r2 +_080CE76E: + movs r1, #0 + movs r2, #8 + bl StringFill + b _080CE934 + .align 2, 0 +_080CE778: .4byte 0x00000CF9 +_080CE77C: .4byte 0x085C8C62 +_080CE780: .4byte 0x020399A8 +_080CE784: .4byte 0x00000D1D +_080CE788: .4byte 0x00000D41 +_080CE78C: .4byte 0x00000D65 +_080CE790: + cmp r2, #0x1d + beq _080CE798 + cmp r2, #0x20 + bne _080CE79C +_080CE798: + movs r3, #0xff + mov sb, r3 +_080CE79C: + ldr r4, _080CE81C + ldr r1, [r4] + ldr r2, _080CE820 + adds r0, r1, r2 + ldr r3, _080CE824 + adds r1, r1, r3 + movs r2, #0 + movs r3, #5 + bl StringCopyPadded + ldr r1, [r4] + ldr r0, _080CE828 + adds r2, r1, r0 + movs r0, #0xba + strb r0, [r2] + ldr r3, _080CE82C + adds r2, r1, r3 + ldr r0, [r4] + ldr r1, _080CE830 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + ldr r0, _080CE834 + adds r1, r1, r0 + adds r0, r2, #0 + movs r2, #0 + movs r3, #5 + bl StringCopyPadded + ldr r4, [r4] + ldr r3, _080CE838 + adds r2, r4, r3 + movs r0, #0xfc + strb r0, [r2] + ldr r0, _080CE83C + adds r2, r4, r0 + movs r0, #4 + strb r0, [r2] + ldr r1, _080CE840 + adds r2, r4, r1 + mov r3, sb + cmp r3, #0 + beq _080CE850 + cmp r3, #0xfe + beq _080CE87C + movs r0, #2 + strb r0, [r2] + ldr r0, _080CE844 + adds r2, r4, r0 + movs r0, #1 + strb r0, [r2] + adds r1, #2 + adds r2, r4, r1 + movs r0, #3 + strb r0, [r2] + ldr r3, _080CE848 + adds r2, r4, r3 + movs r0, #0 + strb r0, [r2] + ldr r0, _080CE84C + adds r2, r4, r0 + b _080CE89C + .align 2, 0 +_080CE81C: .4byte 0x020399A8 +_080CE820: .4byte 0x00000CF9 +_080CE824: .4byte 0x00000CEE +_080CE828: .4byte 0x00000D1D +_080CE82C: .4byte 0x00000D1E +_080CE830: .4byte 0x00000CE4 +_080CE834: .4byte 0x082EA31C +_080CE838: .4byte 0x00000D41 +_080CE83C: .4byte 0x00000D42 +_080CE840: .4byte 0x00000D43 +_080CE844: .4byte 0x00000D44 +_080CE848: .4byte 0x00000D46 +_080CE84C: .4byte 0x00000D47 +_080CE850: + strb r0, [r2] + ldr r1, _080CE870 + adds r2, r4, r1 + movs r0, #1 + strb r0, [r2] + ldr r3, _080CE874 + adds r2, r4, r3 + movs r0, #5 + strb r0, [r2] + ldr r0, _080CE878 + adds r2, r4, r0 + movs r0, #0xb5 + strb r0, [r2] + adds r1, #3 + adds r2, r4, r1 + b _080CE89C + .align 2, 0 +_080CE870: .4byte 0x00000D44 +_080CE874: .4byte 0x00000D45 +_080CE878: .4byte 0x00000D46 +_080CE87C: + movs r0, #6 + strb r0, [r2] + ldr r3, _080CE90C + adds r2, r4, r3 + movs r0, #1 + strb r0, [r2] + ldr r0, _080CE910 + adds r2, r4, r0 + movs r0, #7 + strb r0, [r2] + ldr r1, _080CE914 + adds r2, r4, r1 + movs r0, #0xb6 + strb r0, [r2] + adds r3, #3 + adds r2, r4, r3 +_080CE89C: + movs r0, #0xfc + strb r0, [r2] + adds r2, #1 + movs r0, #4 + strb r0, [r2] + adds r2, #1 + movs r0, #2 + strb r0, [r2] + adds r2, #1 + movs r0, #1 + strb r0, [r2] + adds r2, #1 + movs r0, #3 + strb r0, [r2] + adds r2, #1 + movs r5, #0 + strb r5, [r2] + adds r2, #1 + movs r0, #0xf9 + strb r0, [r2] + adds r2, #1 + movs r0, #5 + strb r0, [r2] + adds r2, #1 + ldr r4, _080CE918 + ldr r0, [r4] + ldr r1, _080CE91C + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r2, #0 + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + adds r2, r0, #0 + strb r5, [r2] + movs r0, #0xff + strb r0, [r2, #1] + ldr r4, [r4] + ldr r2, _080CE920 + adds r1, r4, r2 + ldrh r0, [r1] + cmp r0, #0 + beq _080CE928 + ldr r3, _080CE924 + adds r4, r4, r3 + bl ItemId_GetName + adds r1, r0, #0 + adds r0, r4, #0 + movs r2, #0 + movs r3, #8 + bl StringCopyPadded + b _080CE934 + .align 2, 0 +_080CE90C: .4byte 0x00000D44 +_080CE910: .4byte 0x00000D45 +_080CE914: .4byte 0x00000D46 +_080CE918: .4byte 0x020399A8 +_080CE91C: .4byte 0x00000CEC +_080CE920: .4byte 0x00000CE6 +_080CE924: .4byte 0x00000D65 +_080CE928: + ldr r1, _080CE944 + adds r0, r4, r1 + movs r1, #0 + movs r2, #8 + bl StringFill +_080CE934: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080CE944: .4byte 0x00000D65 + thumb_func_end SetCursorMonData + + thumb_func_start HandleInput_InBox +HandleInput_InBox: @ 0x080CE948 + push {lr} + ldr r0, _080CE968 + ldr r0, [r0] + ldr r1, _080CE96C + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + beq _080CE970 + cmp r0, #1 + ble _080CE960 + cmp r0, #2 + beq _080CE976 +_080CE960: + bl InBoxInput_Normal + b _080CE97A + .align 2, 0 +_080CE968: .4byte 0x020399A8 +_080CE96C: .4byte 0x000021FF +_080CE970: + bl InBoxInput_GrabbingMultiple + b _080CE97A +_080CE976: + bl InBoxInput_MovingMultiple +_080CE97A: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end HandleInput_InBox + + thumb_func_start InBoxInput_Normal +InBoxInput_Normal: @ 0x080CE984 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _080CEA08 + ldrb r0, [r0] + mov r8, r0 + ldr r2, _080CEA0C + ldrb r4, [r2] + ldr r5, _080CEA10 + ldr r0, [r5] + ldr r1, _080CEA14 + mov sl, r1 + add r0, sl + movs r1, #0 + strb r1, [r0] + ldr r0, [r5] + ldr r7, _080CEA18 + adds r0, r0, r7 + strb r1, [r0] + ldr r0, [r5] + ldr r3, _080CEA1C + mov sb, r3 + add r0, sb + strb r1, [r0] + ldr r6, _080CEA20 + ldrh r1, [r6, #0x30] + movs r0, #0x40 + ands r0, r1 + adds r3, r2, #0 + cmp r0, #0 + beq _080CE9C8 + b _080CEBB8 +_080CE9C8: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080CEA24 + movs r6, #1 + lsls r0, r4, #0x18 + movs r1, #0xc0 + lsls r1, r1, #0x13 + adds r0, r0, r1 + lsrs r4, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0x1d + bgt _080CE9E4 + b _080CEBD4 +_080CE9E4: + movs r2, #3 + mov r8, r2 + subs r0, #0x1e + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #3 + bl __divsi3 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, [r5] + add r0, sl + strb r6, [r0] + ldr r0, [r5] + add r0, sb + strb r6, [r0] + b _080CEBD4 + .align 2, 0 +_080CEA08: .4byte 0x02039A18 +_080CEA0C: .4byte 0x02039A19 +_080CEA10: .4byte 0x020399A8 +_080CEA14: .4byte 0x00000CD2 +_080CEA18: .4byte 0x00000CD3 +_080CEA1C: .4byte 0x00000CD7 +_080CEA20: .4byte 0x03002360 +_080CEA24: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080CEA5A + movs r6, #1 + movs r0, #0 + ldrsb r0, [r3, r0] + movs r1, #6 + bl __modsi3 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080CEA46 + lsls r0, r4, #0x18 + movs r3, #0xff + lsls r3, r3, #0x18 + b _080CEBC8 +_080CEA46: + ldr r0, [r5] + adds r0, r0, r7 + movs r1, #0xff + strb r1, [r0] + lsls r0, r4, #0x18 + movs r1, #0xa0 + lsls r1, r1, #0x13 + adds r0, r0, r1 + lsrs r4, r0, #0x18 + b _080CEBD4 +_080CEA5A: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080CEA8E + movs r6, #1 + movs r0, #0 + ldrsb r0, [r3, r0] + adds r0, #1 + movs r1, #6 + bl __modsi3 + cmp r0, #0 + beq _080CEA80 + lsls r0, r4, #0x18 + movs r2, #0x80 + lsls r2, r2, #0x11 + adds r0, r0, r2 + lsrs r4, r0, #0x18 + b _080CEBD4 +_080CEA80: + ldr r0, [r5] + adds r0, r0, r7 + strb r6, [r0] + lsls r0, r4, #0x18 + movs r3, #0xfb + lsls r3, r3, #0x18 + b _080CEBC8 +_080CEA8E: + ldrh r1, [r6, #0x2e] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080CEA9C + movs r6, #1 + b _080CEBCE +_080CEA9C: + movs r4, #1 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080CEB60 + bl sub_080CF2D8 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080CEB60 + ldr r0, _080CEABC + ldrb r0, [r0] + cmp r0, #0 + bne _080CEAC0 + movs r0, #8 + b _080CEBE2 + .align 2, 0 +_080CEABC: .4byte 0x02039A1D +_080CEAC0: + ldr r1, [r5] + ldrb r0, [r1, #1] + cmp r0, #2 + bne _080CEAD0 + ldr r0, _080CEAEC + ldrb r0, [r0] + cmp r0, #1 + bne _080CEB50 +_080CEAD0: + movs r0, #0 + bl sub_080CF814 + subs r0, #1 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0xe + bhi _080CEB60 + lsls r0, r0, #2 + ldr r1, _080CEAF0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080CEAEC: .4byte 0x02039A1A +_080CEAF0: .4byte 0x080CEAF4 +_080CEAF4: @ jump table + .4byte _080CEB30 @ case 0 + .4byte _080CEB34 @ case 1 + .4byte _080CEB38 @ case 2 + .4byte _080CEB3C @ case 3 + .4byte _080CEB40 @ case 4 + .4byte _080CEB60 @ case 5 + .4byte _080CEB60 @ case 6 + .4byte _080CEB60 @ case 7 + .4byte _080CEB60 @ case 8 + .4byte _080CEB60 @ case 9 + .4byte _080CEB60 @ case 10 + .4byte _080CEB44 @ case 11 + .4byte _080CEB48 @ case 12 + .4byte _080CEB60 @ case 13 + .4byte _080CEB4C @ case 14 +_080CEB30: + movs r0, #0xb + b _080CEBE2 +_080CEB34: + movs r0, #0xc + b _080CEBE2 +_080CEB38: + movs r0, #0xd + b _080CEBE2 +_080CEB3C: + movs r0, #0xe + b _080CEBE2 +_080CEB40: + movs r0, #0xf + b _080CEBE2 +_080CEB44: + movs r0, #0x10 + b _080CEBE2 +_080CEB48: + movs r0, #0x11 + b _080CEBE2 +_080CEB4C: + movs r0, #0x12 + b _080CEBE2 +_080CEB50: + ldr r2, _080CEB5C + adds r0, r1, r2 + strb r4, [r0] + movs r0, #0x14 + b _080CEBE2 + .align 2, 0 +_080CEB5C: .4byte 0x000021FF +_080CEB60: + ldr r2, _080CEB70 + ldrh r1, [r2, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080CEB74 + movs r0, #0x13 + b _080CEBE2 + .align 2, 0 +_080CEB70: .4byte 0x03002360 +_080CEB74: + ldr r0, _080CEB90 + ldr r0, [r0] + ldrb r0, [r0, #0x13] + cmp r0, #1 + bne _080CEBA2 + ldrh r1, [r2, #0x2c] + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080CEB94 + movs r0, #0xa + b _080CEBE2 + .align 2, 0 +_080CEB90: .4byte 0x03005AF0 +_080CEB94: + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080CEBA2 + movs r0, #9 + b _080CEBE2 +_080CEBA2: + ldrh r1, [r2, #0x2e] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080CEBB4 + bl sub_080CF640 + movs r0, #0 + b _080CEBE2 +_080CEBB4: + movs r6, #0 + b _080CEBE0 +_080CEBB8: + movs r6, #1 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #5 + ble _080CEBCE + lsls r0, r4, #0x18 + movs r3, #0xfa + lsls r3, r3, #0x18 +_080CEBC8: + adds r0, r0, r3 + lsrs r4, r0, #0x18 + b _080CEBD4 +_080CEBCE: + movs r0, #2 + mov r8, r0 + movs r4, #0 +_080CEBD4: + cmp r6, #0 + beq _080CEBE0 + mov r0, r8 + adds r1, r4, #0 + bl sub_080CD110 +_080CEBE0: + adds r0, r6, #0 +_080CEBE2: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end InBoxInput_Normal + + thumb_func_start InBoxInput_GrabbingMultiple +InBoxInput_GrabbingMultiple: @ 0x080CEBF0 + push {r4, lr} + ldr r1, _080CEC20 + ldrh r0, [r1, #0x2c] + movs r4, #1 + ands r4, r0 + cmp r4, #0 + beq _080CECA4 + ldrh r1, [r1, #0x30] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080CEC28 + ldr r4, _080CEC24 + movs r0, #0 + ldrsb r0, [r4, r0] + movs r1, #6 + bl __divsi3 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080CEC9C + ldrb r1, [r4] + subs r1, #6 + b _080CEC8A + .align 2, 0 +_080CEC20: .4byte 0x03002360 +_080CEC24: .4byte 0x02039A19 +_080CEC28: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080CEC48 + ldr r1, _080CEC44 + movs r0, #0 + ldrsb r0, [r1, r0] + adds r0, #6 + cmp r0, #0x1d + bgt _080CEC9C + ldrb r1, [r1] + adds r1, #6 + b _080CEC8A + .align 2, 0 +_080CEC44: .4byte 0x02039A19 +_080CEC48: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080CEC6C + ldr r4, _080CEC68 + movs r0, #0 + ldrsb r0, [r4, r0] + movs r1, #6 + bl __modsi3 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080CEC9C + ldrb r1, [r4] + subs r1, #1 + b _080CEC8A + .align 2, 0 +_080CEC68: .4byte 0x02039A19 +_080CEC6C: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080CECA0 + ldr r4, _080CEC98 + movs r0, #0 + ldrsb r0, [r4, r0] + adds r0, #1 + movs r1, #6 + bl __modsi3 + cmp r0, #0 + beq _080CEC9C + ldrb r1, [r4] + adds r1, #1 +_080CEC8A: + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0 + bl sub_080CD110 + movs r0, #0x15 + b _080CED18 + .align 2, 0 +_080CEC98: .4byte 0x02039A19 +_080CEC9C: + movs r0, #0x18 + b _080CED18 +_080CECA0: + movs r0, #0 + b _080CED18 +_080CECA4: + bl sub_080D0444 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080CECE0 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + cmp r0, r1 + beq _080CECF8 + ldr r2, _080CECE4 + ldr r0, _080CECE8 + ldr r1, [r0] + ldr r3, _080CECEC + adds r0, r1, r3 + ldrh r0, [r0] + rsbs r0, r0, #0 + lsrs r0, r0, #0x1f + strb r0, [r2] + ldr r0, _080CECF0 + adds r1, r1, r0 + movs r0, #2 + strb r0, [r1] + bl StorageGetCurrentBox + ldr r1, _080CECF4 + strb r0, [r1] + movs r0, #0x17 + b _080CED18 + .align 2, 0 +_080CECE0: .4byte 0x02039A19 +_080CECE4: .4byte 0x02039A1A +_080CECE8: .4byte 0x020399A8 +_080CECEC: .4byte 0x00000CE4 +_080CECF0: .4byte 0x000021FF +_080CECF4: .4byte 0x02039A1B +_080CECF8: + ldr r1, _080CED20 + ldr r0, [r1] + ldr r2, _080CED24 + adds r0, r0, r2 + strb r4, [r0] + ldr r0, [r1] + ldr r3, _080CED28 + adds r0, r0, r3 + ldr r1, [r0] + adds r1, #0x3e + ldrb r2, [r1] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + movs r0, #0x16 +_080CED18: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080CED20: .4byte 0x020399A8 +_080CED24: .4byte 0x000021FF +_080CED28: .4byte 0x00000CB8 + thumb_func_end InBoxInput_GrabbingMultiple + + thumb_func_start InBoxInput_MovingMultiple +InBoxInput_MovingMultiple: @ 0x080CED2C + push {r4, lr} + ldr r2, _080CED50 + ldrh r1, [r2, #0x30] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080CED58 + movs r0, #0 + bl sub_080CFE20 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080CEE04 + ldr r0, _080CED54 + ldrb r1, [r0] + subs r1, #6 + b _080CEDB6 + .align 2, 0 +_080CED50: .4byte 0x03002360 +_080CED54: .4byte 0x02039A19 +_080CED58: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080CED78 + movs r0, #1 + bl sub_080CFE20 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080CEE04 + ldr r0, _080CED74 + ldrb r1, [r0] + adds r1, #6 + b _080CEDB6 + .align 2, 0 +_080CED74: .4byte 0x02039A19 +_080CED78: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080CED98 + movs r0, #2 + bl sub_080CFE20 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080CEE1E + ldr r0, _080CED94 + ldrb r1, [r0] + subs r1, #1 + b _080CEDB6 + .align 2, 0 +_080CED94: .4byte 0x02039A19 +_080CED98: + movs r0, #0x10 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0 + beq _080CEDC8 + movs r0, #3 + bl sub_080CFE20 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080CEE32 + ldr r0, _080CEDC4 + ldrb r1, [r0] + adds r1, #1 +_080CEDB6: + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0 + bl sub_080CD110 + movs r0, #0x19 + b _080CEE38 + .align 2, 0 +_080CEDC4: .4byte 0x02039A19 +_080CEDC8: + ldrh r1, [r2, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080CEDFC + bl sub_080D0460 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080CEE04 + ldr r0, _080CEDF0 + strb r4, [r0] + ldr r0, _080CEDF4 + ldr r0, [r0] + ldr r1, _080CEDF8 + adds r0, r0, r1 + strb r4, [r0] + movs r0, #0x1a + b _080CEE38 + .align 2, 0 +_080CEDF0: .4byte 0x02039A1A +_080CEDF4: .4byte 0x020399A8 +_080CEDF8: .4byte 0x000021FF +_080CEDFC: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080CEE08 +_080CEE04: + movs r0, #0x18 + b _080CEE38 +_080CEE08: + ldr r0, _080CEE24 + ldr r0, [r0] + ldrb r0, [r0, #0x13] + cmp r0, #1 + bne _080CEE36 + ldrh r1, [r2, #0x2c] + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080CEE28 +_080CEE1E: + movs r0, #0xa + b _080CEE38 + .align 2, 0 +_080CEE24: .4byte 0x03005AF0 +_080CEE28: + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080CEE36 +_080CEE32: + movs r0, #9 + b _080CEE38 +_080CEE36: + movs r0, #0 +_080CEE38: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end InBoxInput_MovingMultiple + + thumb_func_start HandleInput_InParty +HandleInput_InParty: @ 0x080CEE40 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r0, _080CEEB0 + ldrb r0, [r0] + mov sb, r0 + ldr r6, _080CEEB4 + ldrb r4, [r6] + ldr r2, _080CEEB8 + ldr r0, [r2] + ldr r1, _080CEEBC + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + ldr r0, [r2] + ldr r3, _080CEEC0 + adds r0, r0, r3 + strb r1, [r0] + ldr r0, [r2] + adds r3, #5 + adds r0, r0, r3 + strb r1, [r0] + mov r8, r1 + movs r7, #0 + ldr r1, _080CEEC4 + ldrh r3, [r1, #0x30] + movs r0, #0x40 + ands r0, r3 + adds r5, r6, #0 + mov ip, r1 + cmp r0, #0 + beq _080CEE84 + b _080CF024 +_080CEE84: + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + beq _080CEEC8 + lsls r0, r4, #0x18 + movs r1, #0x80 + lsls r1, r1, #0x11 + adds r0, r0, r1 + lsrs r4, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #6 + ble _080CEE9E + movs r4, #0 +_080CEE9E: + lsls r0, r4, #0x18 + asrs r0, r0, #0x18 + movs r1, #0 + ldrsb r1, [r5, r1] + cmp r0, r1 + bne _080CEEAC + b _080CF042 +_080CEEAC: + movs r7, #1 + b _080CF046 + .align 2, 0 +_080CEEB0: .4byte 0x02039A18 +_080CEEB4: .4byte 0x02039A19 +_080CEEB8: .4byte 0x020399A8 +_080CEEBC: .4byte 0x00000CD3 +_080CEEC0: .4byte 0x00000CD2 +_080CEEC4: .4byte 0x03002360 +_080CEEC8: + movs r0, #0x20 + ands r0, r3 + cmp r0, #0 + beq _080CEEEC + ldrb r1, [r5] + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #0 + beq _080CEEEC + movs r7, #1 + ldr r0, [r2] + ldr r2, _080CEEE8 + adds r0, r0, r2 + strb r1, [r0] + movs r4, #0 + b _080CF042 + .align 2, 0 +_080CEEE8: .4byte 0x00000CD6 +_080CEEEC: + mov r3, ip + ldrh r1, [r3, #0x30] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080CEF1A + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #0 + bne _080CEF10 + movs r7, #1 + ldr r0, [r2] + ldr r1, _080CEF0C + adds r0, r0, r1 + ldrb r4, [r0] + b _080CF042 + .align 2, 0 +_080CEF0C: .4byte 0x00000CD6 +_080CEF10: + movs r7, #6 + movs r2, #0 + mov sb, r2 + movs r4, #0 + b _080CF042 +_080CEF1A: + mov r3, ip + ldrh r1, [r3, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080CEFD8 + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #6 + bne _080CEF40 + ldr r0, [r2] + ldrb r0, [r0, #1] + cmp r0, #1 + bne _080CEF3A + movs r0, #4 + b _080CF054 +_080CEF3A: + movs r0, #1 + mov r8, r0 + b _080CEFD8 +_080CEF40: + bl sub_080CF2D8 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080CEFD8 + ldr r0, _080CEF58 + ldrb r0, [r0] + cmp r0, #0 + bne _080CEF5C + movs r0, #8 + b _080CF054 + .align 2, 0 +_080CEF58: .4byte 0x02039A1D +_080CEF5C: + movs r0, #0 + bl sub_080CF814 + subs r0, #1 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0xe + bhi _080CEFD8 + lsls r0, r0, #2 + ldr r1, _080CEF78 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080CEF78: .4byte 0x080CEF7C +_080CEF7C: @ jump table + .4byte _080CEFB8 @ case 0 + .4byte _080CEFBC @ case 1 + .4byte _080CEFC0 @ case 2 + .4byte _080CEFC4 @ case 3 + .4byte _080CEFC8 @ case 4 + .4byte _080CEFD8 @ case 5 + .4byte _080CEFD8 @ case 6 + .4byte _080CEFD8 @ case 7 + .4byte _080CEFD8 @ case 8 + .4byte _080CEFD8 @ case 9 + .4byte _080CEFD8 @ case 10 + .4byte _080CEFCC @ case 11 + .4byte _080CEFD0 @ case 12 + .4byte _080CEFD8 @ case 13 + .4byte _080CEFD4 @ case 14 +_080CEFB8: + movs r0, #0xb + b _080CF054 +_080CEFBC: + movs r0, #0xc + b _080CF054 +_080CEFC0: + movs r0, #0xd + b _080CF054 +_080CEFC4: + movs r0, #0xe + b _080CF054 +_080CEFC8: + movs r0, #0xf + b _080CF054 +_080CEFCC: + movs r0, #0x10 + b _080CF054 +_080CEFD0: + movs r0, #0x11 + b _080CF054 +_080CEFD4: + movs r0, #0x12 + b _080CF054 +_080CEFD8: + ldr r2, _080CEFF4 + ldrh r1, [r2, #0x2e] + movs r0, #2 + ands r0, r1 + mov ip, r2 + cmp r0, #0 + beq _080CF000 + ldr r0, _080CEFF8 + ldr r0, [r0] + ldrb r0, [r0, #1] + cmp r0, #1 + bne _080CEFFC + movs r0, #0x13 + b _080CF054 + .align 2, 0 +_080CEFF4: .4byte 0x03002360 +_080CEFF8: .4byte 0x020399A8 +_080CEFFC: + movs r1, #1 + mov r8, r1 +_080CF000: + mov r2, r8 + cmp r2, #0 + beq _080CF010 + movs r7, #6 + movs r3, #0 + mov sb, r3 + movs r4, #0 + b _080CF042 +_080CF010: + mov r0, ip + ldrh r1, [r0, #0x2e] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080CF042 + bl sub_080CF640 + movs r0, #0 + b _080CF054 +_080CF024: + lsls r0, r4, #0x18 + movs r1, #0xff + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r4, r0, #0x18 + cmp r0, #0 + bge _080CF034 + movs r4, #6 +_080CF034: + lsls r0, r4, #0x18 + asrs r0, r0, #0x18 + movs r1, #0 + ldrsb r1, [r6, r1] + cmp r0, r1 + beq _080CF042 + movs r7, #1 +_080CF042: + cmp r7, #0 + beq _080CF052 +_080CF046: + cmp r7, #6 + beq _080CF052 + mov r0, sb + adds r1, r4, #0 + bl sub_080CD110 +_080CF052: + adds r0, r7, #0 +_080CF054: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end HandleInput_InParty + + thumb_func_start HandleInput_OnBox +HandleInput_OnBox: @ 0x080CF060 + push {r4, r5, r6, lr} + ldr r3, _080CF09C + ldr r0, [r3] + ldr r1, _080CF0A0 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + ldr r0, [r3] + ldr r2, _080CF0A4 + adds r0, r0, r2 + strb r1, [r0] + ldr r0, [r3] + ldr r5, _080CF0A8 + adds r0, r0, r5 + strb r1, [r0] + ldr r1, _080CF0AC + ldrh r2, [r1, #0x30] + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + bne _080CF126 + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _080CF0B0 + movs r4, #1 + movs r1, #0 + movs r6, #2 + b _080CF132 + .align 2, 0 +_080CF09C: .4byte 0x020399A8 +_080CF0A0: .4byte 0x00000CD3 +_080CF0A4: .4byte 0x00000CD2 +_080CF0A8: .4byte 0x00000CD7 +_080CF0AC: .4byte 0x03002360 +_080CF0B0: + ldrh r2, [r1, #0x2c] + movs r0, #0x20 + ands r0, r2 + cmp r0, #0 + bne _080CF0D6 + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + bne _080CF0EA + ldr r0, _080CF0DC + ldr r0, [r0] + ldrb r0, [r0, #0x13] + cmp r0, #1 + bne _080CF0EE + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r2 + cmp r0, #0 + beq _080CF0E0 +_080CF0D6: + movs r0, #0xa + b _080CF14E + .align 2, 0 +_080CF0DC: .4byte 0x03005AF0 +_080CF0E0: + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r2 + cmp r0, #0 + beq _080CF0EE +_080CF0EA: + movs r0, #9 + b _080CF14E +_080CF0EE: + ldrh r1, [r1, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080CF106 + movs r0, #0 + bl sub_080CCA24 + bl AddBoxMenu + movs r0, #7 + b _080CF14E +_080CF106: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080CF112 + movs r0, #0x13 + b _080CF14E +_080CF112: + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080CF122 + bl sub_080CF640 + movs r0, #0 + b _080CF14E +_080CF122: + movs r4, #0 + b _080CF14C +_080CF126: + movs r4, #1 + movs r1, #3 + movs r6, #0 + ldr r0, [r3] + adds r0, r0, r5 + strb r4, [r0] +_080CF132: + cmp r4, #0 + beq _080CF14C + lsls r5, r1, #0x18 + cmp r1, #2 + beq _080CF142 + movs r0, #0 + bl sub_080CCA24 +_080CF142: + lsrs r0, r5, #0x18 + lsls r1, r6, #0x18 + lsrs r1, r1, #0x18 + bl sub_080CD110 +_080CF14C: + adds r0, r4, #0 +_080CF14E: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end HandleInput_OnBox + + thumb_func_start HandleInput_OnButtons +HandleInput_OnButtons: @ 0x080CF154 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _080CF1A4 + ldrb r0, [r0] + mov r8, r0 + ldr r0, _080CF1A8 + mov ip, r0 + ldrb r2, [r0] + ldr r3, _080CF1AC + ldr r0, [r3] + ldr r1, _080CF1B0 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + ldr r0, [r3] + ldr r6, _080CF1B4 + adds r0, r0, r6 + strb r1, [r0] + ldr r0, [r3] + ldr r5, _080CF1B8 + adds r0, r0, r5 + strb r1, [r0] + ldr r7, _080CF1BC + ldrh r1, [r7, #0x30] + movs r0, #0x40 + ands r0, r1 + adds r4, r3, #0 + cmp r0, #0 + bne _080CF22E + movs r0, #0x88 + ands r0, r1 + cmp r0, #0 + beq _080CF1C0 + movs r7, #1 + movs r0, #2 + mov r8, r0 + movs r2, #0 + ldr r0, [r4] + b _080CF24C + .align 2, 0 +_080CF1A4: .4byte 0x02039A18 +_080CF1A8: .4byte 0x02039A19 +_080CF1AC: .4byte 0x020399A8 +_080CF1B0: .4byte 0x00000CD3 +_080CF1B4: .4byte 0x00000CD2 +_080CF1B8: .4byte 0x00000CD7 +_080CF1BC: .4byte 0x03002360 +_080CF1C0: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080CF1DC + movs r7, #1 + lsls r0, r2, #0x18 + movs r1, #0xff + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r2, r0, #0x18 + cmp r0, #0 + bge _080CF250 + movs r2, #1 + b _080CF250 +_080CF1DC: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080CF1FA + movs r7, #1 + lsls r0, r2, #0x18 + movs r1, #0x80 + lsls r1, r1, #0x11 + adds r0, r0, r1 + lsrs r2, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + ble _080CF250 + movs r2, #0 + b _080CF250 +_080CF1FA: + ldrh r1, [r7, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080CF20E + movs r0, #4 + cmp r2, #0 + bne _080CF25E + movs r0, #5 + b _080CF25E +_080CF20E: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080CF21A + movs r0, #0x13 + b _080CF25E +_080CF21A: + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080CF22A + bl sub_080CF640 + movs r0, #0 + b _080CF25E +_080CF22A: + movs r7, #0 + b _080CF25C +_080CF22E: + movs r7, #1 + movs r0, #0 + mov r8, r0 + ldr r0, [r3] + adds r0, r0, r6 + movs r1, #0xff + strb r1, [r0] + mov r1, ip + movs r0, #0 + ldrsb r0, [r1, r0] + movs r2, #0x1d + cmp r0, #0 + bne _080CF24A + movs r2, #0x18 +_080CF24A: + ldr r0, [r3] +_080CF24C: + adds r0, r0, r5 + strb r7, [r0] +_080CF250: + cmp r7, #0 + beq _080CF25C + mov r0, r8 + adds r1, r2, #0 + bl sub_080CD110 +_080CF25C: + adds r0, r7, #0 +_080CF25E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end HandleInput_OnButtons + + thumb_func_start sub_080CF268 +sub_080CF268: @ 0x080CF268 + push {r4, r5, lr} + movs r3, #0 + ldr r0, _080CF294 + ldr r1, [r0] + adds r4, r0, #0 + cmp r1, #0 + beq _080CF2AC + ldr r5, _080CF298 +_080CF278: + lsls r0, r3, #3 + adds r2, r0, r4 + movs r1, #4 + ldrsb r1, [r2, r1] + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r1, r0 + bne _080CF29C + ldr r0, [r2] + bl _call_via_r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _080CF2AE + .align 2, 0 +_080CF294: .4byte 0x085564B8 +_080CF298: .4byte 0x02039A18 +_080CF29C: + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + lsls r0, r3, #3 + adds r0, r0, r4 + ldr r0, [r0] + cmp r0, #0 + bne _080CF278 +_080CF2AC: + movs r0, #0 +_080CF2AE: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_080CF268 + + thumb_func_start AddBoxMenu +AddBoxMenu: @ 0x080CF2B4 + push {lr} + bl InitMenu + movs r0, #9 + bl SetMenuText + movs r0, #0xa + bl SetMenuText + movs r0, #0xb + bl SetMenuText + movs r0, #0 + bl SetMenuText + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AddBoxMenu + + thumb_func_start sub_080CF2D8 +sub_080CF2D8: @ 0x080CF2D8 + push {lr} + bl InitMenu + ldr r0, _080CF2F0 + ldr r0, [r0] + ldrb r0, [r0, #1] + cmp r0, #3 + bne _080CF2F4 + bl sub_080CF3C0 + b _080CF2F8 + .align 2, 0 +_080CF2F0: .4byte 0x020399A8 +_080CF2F4: + bl sub_080CF300 +_080CF2F8: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + thumb_func_end sub_080CF2D8 + + thumb_func_start sub_080CF300 +sub_080CF300: @ 0x080CF300 + push {lr} + bl sub_080CCD80 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r0, _080CF320 + ldr r0, [r0] + ldrb r0, [r0, #1] + cmp r0, #1 + beq _080CF32A + cmp r0, #1 + bgt _080CF324 + cmp r0, #0 + beq _080CF336 + b _080CF370 + .align 2, 0 +_080CF320: .4byte 0x020399A8 +_080CF324: + cmp r0, #2 + beq _080CF342 + b _080CF370 +_080CF32A: + cmp r1, #0 + beq _080CF370 + movs r0, #1 + bl SetMenuText + b _080CF374 +_080CF336: + cmp r1, #0 + beq _080CF370 + movs r0, #2 + bl SetMenuText + b _080CF374 +_080CF342: + ldr r0, _080CF358 + ldrb r0, [r0] + cmp r0, #0 + beq _080CF364 + cmp r1, #0 + beq _080CF35C + movs r0, #4 + bl SetMenuText + b _080CF374 + .align 2, 0 +_080CF358: .4byte 0x02039A1A +_080CF35C: + movs r0, #5 + bl SetMenuText + b _080CF374 +_080CF364: + cmp r1, #0 + beq _080CF370 + movs r0, #3 + bl SetMenuText + b _080CF374 +_080CF370: + movs r0, #0 + b _080CF3BA +_080CF374: + movs r0, #6 + bl SetMenuText + ldr r0, _080CF398 + ldr r0, [r0] + ldrb r0, [r0, #1] + cmp r0, #2 + bne _080CF3A6 + ldr r0, _080CF39C + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _080CF3A0 + movs r0, #2 + bl SetMenuText + b _080CF3A6 + .align 2, 0 +_080CF398: .4byte 0x020399A8 +_080CF39C: .4byte 0x02039A18 +_080CF3A0: + movs r0, #1 + bl SetMenuText +_080CF3A6: + movs r0, #8 + bl SetMenuText + movs r0, #7 + bl SetMenuText + movs r0, #0 + bl SetMenuText + movs r0, #1 +_080CF3BA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080CF300 + + thumb_func_start sub_080CF3C0 +sub_080CF3C0: @ 0x080CF3C0 + push {r4, r5, lr} + ldr r4, _080CF3FC + ldr r0, [r4] + ldr r5, _080CF400 + adds r0, r0, r5 + ldrh r1, [r0] + movs r0, #0xce + lsls r0, r0, #1 + cmp r1, r0 + beq _080CF456 + bl IsActiveItemMoving + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080CF428 + ldr r2, [r4] + ldr r0, _080CF404 + adds r1, r2, r0 + ldrh r0, [r1] + cmp r0, #0 + bne _080CF408 + adds r0, r2, r5 + ldrh r0, [r0] + cmp r0, #0 + beq _080CF456 + movs r0, #0xe + bl SetMenuText + b _080CF460 + .align 2, 0 +_080CF3FC: .4byte 0x020399A8 +_080CF400: .4byte 0x00000CE4 +_080CF404: .4byte 0x00000CE6 +_080CF408: + ldrh r0, [r1] + bl ItemIsMail + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080CF420 + movs r0, #0xc + bl SetMenuText + movs r0, #0x10 + bl SetMenuText +_080CF420: + movs r0, #0x11 + bl SetMenuText + b _080CF460 +_080CF428: + ldr r2, [r4] + ldr r0, _080CF444 + adds r1, r2, r0 + ldrh r0, [r1] + cmp r0, #0 + bne _080CF448 + adds r0, r2, r5 + ldrh r0, [r0] + cmp r0, #0 + beq _080CF456 + movs r0, #0xd + bl SetMenuText + b _080CF460 + .align 2, 0 +_080CF444: .4byte 0x00000CE6 +_080CF448: + ldrh r0, [r1] + bl ItemIsMail + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080CF45A +_080CF456: + movs r0, #0 + b _080CF468 +_080CF45A: + movs r0, #0xf + bl SetMenuText +_080CF460: + movs r0, #0 + bl SetMenuText + movs r0, #1 +_080CF468: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080CF3C0 + + thumb_func_start sub_080CF470 +sub_080CF470: @ 0x080CF470 + ldr r1, _080CF488 + ldr r1, [r1] + ldr r2, _080CF48C + adds r1, r1, r2 + ldr r2, [r1] + ldrh r2, [r2, #0x20] + strh r2, [r0, #0x20] + ldr r1, [r1] + ldrh r1, [r1, #0x22] + adds r1, #0x14 + strh r1, [r0, #0x22] + bx lr + .align 2, 0 +_080CF488: .4byte 0x020399A8 +_080CF48C: .4byte 0x00000CB4 + thumb_func_end sub_080CF470 + + thumb_func_start sub_080CF490 +sub_080CF490: @ 0x080CF490 + push {r4, r5, r6, lr} + sub sp, #0x2c + mov r1, sp + ldr r0, _080CF55C + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} + add r4, sp, #0x18 + adds r1, r4, #0 + ldr r0, _080CF560 + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} + ldr r0, [r0] + str r0, [r1] + mov r0, sp + bl LoadSpriteSheets + adds r0, r4, #0 + bl LoadSpritePalettes + ldr r0, _080CF564 + bl IndexOfSpritePaletteTag + ldr r6, _080CF568 + ldr r1, [r6] + ldr r4, _080CF56C + adds r1, r1, r4 + strb r0, [r1] + ldr r0, _080CF570 + bl IndexOfSpritePaletteTag + ldr r1, [r6] + ldr r5, _080CF574 + adds r1, r1, r5 + strb r0, [r1] + ldr r0, _080CF578 + ldrb r0, [r0] + ldr r1, _080CF57C + ldrb r1, [r1] + add r4, sp, #0x28 + mov r5, sp + adds r5, #0x2a + adds r2, r4, #0 + adds r3, r5, #0 + bl sub_080CCCC0 + ldr r0, _080CF580 + movs r2, #0 + ldrsh r1, [r4, r2] + movs r3, #0 + ldrsh r2, [r5, r3] + movs r3, #6 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _080CF594 + ldr r2, [r6] + ldr r4, _080CF584 + adds r3, r2, r4 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080CF588 + adds r1, r1, r0 + str r1, [r3] + ldr r0, _080CF58C + ldr r5, _080CF56C + adds r2, r2, r5 + ldrb r0, [r0] + adds r2, r2, r0 + ldrb r2, [r2] + lsls r2, r2, #4 + ldrb r3, [r1, #5] + movs r0, #0xf + ands r0, r3 + orrs r0, r2 + strb r0, [r1, #5] + ldr r0, [r6] + adds r0, r0, r4 + ldr r2, [r0] + ldrb r1, [r2, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #5] + ldr r0, _080CF590 + ldrb r0, [r0] + cmp r0, #0 + beq _080CF59E + ldr r0, [r6] + adds r0, r0, r4 + ldr r0, [r0] + movs r1, #3 + bl StartSpriteAnim + b _080CF59E + .align 2, 0 +_080CF55C: .4byte 0x085564E0 +_080CF560: .4byte 0x085564F8 +_080CF564: .4byte 0x0000DACA +_080CF568: .4byte 0x020399A8 +_080CF56C: .4byte 0x00000CD8 +_080CF570: .4byte 0x0000DAC7 +_080CF574: .4byte 0x00000CD9 +_080CF578: .4byte 0x02039A18 +_080CF57C: .4byte 0x02039A19 +_080CF580: .4byte 0x0855654C +_080CF584: .4byte 0x00000CB4 +_080CF588: .4byte 0x020205AC +_080CF58C: .4byte 0x02039A1D +_080CF590: .4byte 0x02039A1A +_080CF594: + ldr r0, [r6] + ldr r1, _080CF5B0 + adds r0, r0, r1 + movs r1, #0 + str r1, [r0] +_080CF59E: + ldr r0, _080CF5B4 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + bne _080CF5B8 + movs r3, #0xd + movs r4, #1 + b _080CF5BC + .align 2, 0 +_080CF5B0: .4byte 0x00000CB4 +_080CF5B4: .4byte 0x02039A18 +_080CF5B8: + movs r3, #0x15 + movs r4, #2 +_080CF5BC: + ldr r0, _080CF610 + movs r1, #0 + movs r2, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _080CF624 + ldr r5, _080CF614 + ldr r2, [r5] + ldr r3, _080CF618 + adds r2, r2, r3 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080CF61C + adds r1, r1, r0 + str r1, [r2] + lsls r3, r4, #2 + ldrb r2, [r1, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #5] + ldr r0, _080CF620 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _080CF630 + ldr r0, [r5] + ldr r4, _080CF618 + adds r0, r0, r4 + ldr r1, [r0] + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + b _080CF630 + .align 2, 0 +_080CF610: .4byte 0x08556564 +_080CF614: .4byte 0x020399A8 +_080CF618: .4byte 0x00000CB8 +_080CF61C: .4byte 0x020205AC +_080CF620: .4byte 0x02039A18 +_080CF624: + ldr r0, _080CF638 + ldr r0, [r0] + ldr r5, _080CF63C + adds r0, r0, r5 + movs r1, #0 + str r1, [r0] +_080CF630: + add sp, #0x2c + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080CF638: .4byte 0x020399A8 +_080CF63C: .4byte 0x00000CB8 + thumb_func_end sub_080CF490 + + thumb_func_start sub_080CF640 +sub_080CF640: @ 0x080CF640 + push {lr} + ldr r2, _080CF674 + movs r1, #0 + ldrb r0, [r2] + cmp r0, #0 + bne _080CF64E + movs r1, #1 +_080CF64E: + strb r1, [r2] + ldr r0, _080CF678 + ldr r0, [r0] + ldr r3, _080CF67C + adds r1, r0, r3 + ldr r3, [r1] + ldr r1, _080CF680 + adds r0, r0, r1 + ldrb r2, [r2] + adds r0, r0, r2 + ldrb r1, [r0] + lsls r1, r1, #4 + ldrb r2, [r3, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #5] + pop {r0} + bx r0 + .align 2, 0 +_080CF674: .4byte 0x02039A1D +_080CF678: .4byte 0x020399A8 +_080CF67C: .4byte 0x00000CB4 +_080CF680: .4byte 0x00000CD8 + thumb_func_end sub_080CF640 + + thumb_func_start sub_080CF684 +sub_080CF684: @ 0x080CF684 + ldr r0, _080CF68C + ldrb r0, [r0] + bx lr + .align 2, 0 +_080CF68C: .4byte 0x02039A19 + thumb_func_end sub_080CF684 + + thumb_func_start sub_080CF690 +sub_080CF690: @ 0x080CF690 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + ldr r0, _080CF6BC + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _080CF6C4 + ldr r4, _080CF6C0 + movs r0, #0 + ldrsb r0, [r4, r0] + movs r1, #6 + bl __modsi3 + strb r0, [r5] + movs r0, #0 + ldrsb r0, [r4, r0] + movs r1, #6 + bl __divsi3 + b _080CF6C8 + .align 2, 0 +_080CF6BC: .4byte 0x02039A18 +_080CF6C0: .4byte 0x02039A19 +_080CF6C4: + movs r0, #0 + strb r0, [r5] +_080CF6C8: + strb r0, [r6] + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_080CF690 + + thumb_func_start sub_080CF6D0 +sub_080CF6D0: @ 0x080CF6D0 + push {lr} + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, _080CF6EC + ldr r0, [r0] + ldr r2, _080CF6F0 + adds r0, r0, r2 + ldr r0, [r0] + bl StartSpriteAnim + pop {r0} + bx r0 + .align 2, 0 +_080CF6EC: .4byte 0x020399A8 +_080CF6F0: .4byte 0x00000CB4 + thumb_func_end sub_080CF6D0 + + thumb_func_start sub_080CF6F4 +sub_080CF6F4: @ 0x080CF6F4 + ldr r0, _080CF6FC + ldrb r0, [r0] + bx lr + .align 2, 0 +_080CF6FC: .4byte 0x02039A1B + thumb_func_end sub_080CF6F4 + + thumb_func_start sub_080CF700 +sub_080CF700: @ 0x080CF700 + ldr r0, _080CF71C + ldr r0, [r0] + ldr r1, _080CF720 + adds r0, r0, r1 + ldr r2, [r0] + ldrb r1, [r2, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #5] + bx lr + .align 2, 0 +_080CF71C: .4byte 0x020399A8 +_080CF720: .4byte 0x00000CB4 + thumb_func_end sub_080CF700 + + thumb_func_start sub_080CF724 +sub_080CF724: @ 0x080CF724 + push {lr} + ldr r0, _080CF740 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _080CF73C + ldr r0, _080CF744 + ldrb r1, [r0] + movs r0, #0 + bl sub_080D06F0 +_080CF73C: + pop {r0} + bx r0 + .align 2, 0 +_080CF740: .4byte 0x02039A18 +_080CF744: .4byte 0x02039A19 + thumb_func_end sub_080CF724 + + thumb_func_start sub_080CF748 +sub_080CF748: @ 0x080CF748 + push {lr} + ldr r0, _080CF764 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _080CF760 + ldr r0, _080CF768 + ldrb r1, [r0] + movs r0, #0 + bl sub_080D062C +_080CF760: + pop {r0} + bx r0 + .align 2, 0 +_080CF764: .4byte 0x02039A18 +_080CF768: .4byte 0x02039A19 + thumb_func_end sub_080CF748 + + thumb_func_start InitMenu +InitMenu: @ 0x080CF76C + ldr r2, _080CF7A0 + ldr r0, [r2] + ldr r1, _080CF7A4 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + ldr r0, [r2] + ldr r3, _080CF7A8 + adds r0, r0, r3 + strb r1, [r0] + ldr r0, [r2] + subs r3, #0x41 + adds r0, r0, r3 + strb r1, [r0] + ldr r0, [r2] + ldr r1, _080CF7AC + adds r0, r0, r1 + movs r1, #0xf + strb r1, [r0] + ldr r0, [r2] + adds r3, #6 + adds r0, r0, r3 + movs r1, #0x5c + strh r1, [r0] + bx lr + .align 2, 0 +_080CF7A0: .4byte 0x020399A8 +_080CF7A4: .4byte 0x00000CAC +_080CF7A8: .4byte 0x00000CAD +_080CF7AC: .4byte 0x00000C71 + thumb_func_end InitMenu + + thumb_func_start SetMenuText +SetMenuText: @ 0x080CF7B0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r4, _080CF800 + ldr r2, [r4] + ldr r5, _080CF804 + adds r1, r2, r5 + ldrb r0, [r1] + cmp r0, #6 + bhi _080CF7FA + adds r1, r0, #0 + lsls r1, r1, #3 + ldr r0, _080CF808 + adds r1, r1, r0 + adds r1, r2, r1 + ldr r2, _080CF80C + lsls r0, r3, #2 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] + str r3, [r1, #4] + bl StringLength + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r0, [r4] + ldr r2, _080CF810 + adds r0, r0, r2 + ldrb r2, [r0] + cmp r1, r2 + bls _080CF7F0 + strb r1, [r0] +_080CF7F0: + ldr r1, [r4] + adds r1, r1, r5 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_080CF7FA: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080CF800: .4byte 0x020399A8 +_080CF804: .4byte 0x00000CAC +_080CF808: .4byte 0x00000C74 +_080CF80C: .4byte 0x0855657C +_080CF810: .4byte 0x00000CAD + thumb_func_end SetMenuText + + thumb_func_start sub_080CF814 +sub_080CF814: @ 0x080CF814 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _080CF838 + ldr r1, [r0] + ldr r3, _080CF83C + adds r0, r1, r3 + ldrb r0, [r0] + cmp r2, r0 + bhs _080CF844 + lsls r0, r2, #3 + ldr r2, _080CF840 + adds r1, r1, r2 + adds r1, r1, r0 + movs r0, #0 + ldrsb r0, [r1, r0] + b _080CF848 + .align 2, 0 +_080CF838: .4byte 0x020399A8 +_080CF83C: .4byte 0x00000CAC +_080CF840: .4byte 0x00000C78 +_080CF844: + movs r0, #1 + rsbs r0, r0, #0 +_080CF848: + pop {r1} + bx r1 + thumb_func_end sub_080CF814 + + thumb_func_start AddMenu +AddMenu: @ 0x080CF84C + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #0xc + ldr r5, _080CF928 + ldr r1, [r5] + ldr r2, _080CF92C + adds r0, r1, r2 + ldrb r0, [r0] + adds r0, #2 + subs r2, #0x3e + adds r1, r1, r2 + movs r3, #0 + mov sb, r3 + strb r0, [r1] + ldr r1, [r5] + ldr r6, _080CF930 + adds r0, r1, r6 + ldrb r0, [r0] + lsls r0, r0, #1 + movs r3, #0xc7 + lsls r3, r3, #4 + adds r1, r1, r3 + strb r0, [r1] + ldr r1, [r5] + adds r2, r1, r2 + ldrb r2, [r2] + movs r0, #0x1d + subs r0, r0, r2 + ldr r2, _080CF934 + adds r1, r1, r2 + strb r0, [r1] + ldr r1, [r5] + adds r3, r1, r3 + ldrb r2, [r3] + movs r0, #0xf + subs r0, r0, r2 + ldr r3, _080CF938 + adds r1, r1, r3 + strb r0, [r1] + ldr r0, [r5] + ldr r1, _080CF93C + adds r0, r0, r1 + bl AddWindow + ldr r1, [r5] + movs r4, #0xcb + lsls r4, r4, #4 + adds r1, r1, r4 + movs r2, #0 + mov r8, r2 + strh r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl ClearWindowTilemap + ldr r0, [r5] + adds r0, r0, r4 + ldrb r0, [r0] + movs r1, #0 + movs r2, #0xb + movs r3, #0xe + bl DrawStdFrameWithCustomTileAndPalette + ldr r2, [r5] + adds r0, r2, r4 + ldrb r0, [r0] + movs r1, #0x10 + str r1, [sp] + adds r1, r2, r6 + ldrb r1, [r1] + str r1, [sp, #4] + ldr r3, _080CF940 + adds r2, r2, r3 + str r2, [sp, #8] + movs r1, #1 + movs r2, #8 + movs r3, #2 + bl PrintTextArray + ldr r1, [r5] + adds r4, r1, r4 + ldrb r0, [r4] + adds r1, r1, r6 + ldrb r1, [r1] + str r1, [sp] + mov r1, sb + str r1, [sp, #4] + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl sub_081984F0 + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + ldr r0, [r5] + ldr r2, _080CF944 + adds r0, r0, r2 + mov r3, r8 + strb r3, [r0] + add sp, #0xc + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080CF928: .4byte 0x020399A8 +_080CF92C: .4byte 0x00000CAD +_080CF930: .4byte 0x00000CAC +_080CF934: .4byte 0x00000C6D +_080CF938: .4byte 0x00000C6E +_080CF93C: .4byte 0x00000C6C +_080CF940: .4byte 0x00000C74 +_080CF944: .4byte 0x00000CAE + thumb_func_end AddMenu + + thumb_func_start sub_080CF948 +sub_080CF948: @ 0x080CF948 + movs r0, #0 + bx lr + thumb_func_end sub_080CF948 + + thumb_func_start sub_080CF94C +sub_080CF94C: @ 0x080CF94C + push {r4, r5, lr} + movs r5, #2 + rsbs r5, r5, #0 + ldr r4, _080CF988 + ldrh r1, [r4, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080CF9A2 + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080CF96E + movs r0, #5 + bl PlaySE + adds r5, #1 +_080CF96E: + ldrh r1, [r4, #0x2e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080CF98C + movs r0, #5 + bl PlaySE + movs r0, #1 + rsbs r0, r0, #0 + bl Menu_MoveCursor + b _080CF9AA + .align 2, 0 +_080CF988: .4byte 0x03002360 +_080CF98C: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080CF9AA + movs r0, #5 + bl PlaySE + movs r0, #1 + bl Menu_MoveCursor + b _080CF9AA +_080CF9A2: + bl Menu_GetCursorPos + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_080CF9AA: + movs r0, #2 + rsbs r0, r0, #0 + cmp r5, r0 + beq _080CF9B6 + bl sub_080CF9DC +_080CF9B6: + cmp r5, #0 + blt _080CF9C8 + ldr r0, _080CF9D4 + ldr r0, [r0] + lsls r1, r5, #3 + ldr r2, _080CF9D8 + adds r0, r0, r2 + adds r0, r0, r1 + ldr r5, [r0] +_080CF9C8: + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080CF9D4: .4byte 0x020399A8 +_080CF9D8: .4byte 0x00000C78 + thumb_func_end sub_080CF94C + + thumb_func_start sub_080CF9DC +sub_080CF9DC: @ 0x080CF9DC + push {r4, r5, lr} + ldr r5, _080CFA00 + ldr r0, [r5] + movs r4, #0xcb + lsls r4, r4, #4 + adds r0, r0, r4 + ldrb r0, [r0] + movs r1, #1 + bl ClearStdWindowAndFrameToTransparent + ldr r0, [r5] + adds r0, r0, r4 + ldrb r0, [r0] + bl RemoveWindow + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080CFA00: .4byte 0x020399A8 + thumb_func_end sub_080CF9DC + + thumb_func_start sub_080CFA04 +sub_080CFA04: @ 0x080CFA04 + push {r4, lr} + ldr r4, _080CFA40 + ldr r0, _080CFA44 + bl Alloc + str r0, [r4] + cmp r0, #0 + beq _080CFA50 + ldr r0, _080CFA48 + bl AddWindow8Bit + adds r1, r0, #0 + ldr r0, _080CFA4C + ldr r0, [r0] + movs r2, #0x88 + lsls r2, r2, #6 + adds r0, r0, r2 + strh r1, [r0] + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xff + beq _080CFA50 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #1 + b _080CFA52 + .align 2, 0 +_080CFA40: .4byte 0x02039A20 +_080CFA44: .4byte 0x00000974 +_080CFA48: .4byte 0x08556618 +_080CFA4C: .4byte 0x020399A8 +_080CFA50: + movs r0, #0 +_080CFA52: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_080CFA04 + + thumb_func_start sub_080CFA58 +sub_080CFA58: @ 0x080CFA58 + push {lr} + ldr r0, _080CFA6C + ldr r0, [r0] + cmp r0, #0 + beq _080CFA66 + bl Free +_080CFA66: + pop {r0} + bx r0 + .align 2, 0 +_080CFA6C: .4byte 0x02039A20 + thumb_func_end sub_080CFA58 + + thumb_func_start sub_080CFA70 +sub_080CFA70: @ 0x080CFA70 + ldr r2, _080CFA80 + ldr r1, [r2] + movs r3, #0 + strb r0, [r1] + ldr r0, [r2] + strb r3, [r0, #1] + bx lr + .align 2, 0 +_080CFA80: .4byte 0x02039A20 + thumb_func_end sub_080CFA70 + + thumb_func_start sub_080CFA84 +sub_080CFA84: @ 0x080CFA84 + push {lr} + ldr r0, _080CFA9C + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #5 + bhi _080CFAE4 + lsls r0, r0, #2 + ldr r1, _080CFAA0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080CFA9C: .4byte 0x02039A20 +_080CFAA0: .4byte 0x080CFAA4 +_080CFAA4: @ jump table + .4byte _080CFABC @ case 0 + .4byte _080CFAC2 @ case 1 + .4byte _080CFAC8 @ case 2 + .4byte _080CFACE @ case 3 + .4byte _080CFAD4 @ case 4 + .4byte _080CFADA @ case 5 +_080CFABC: + bl sub_080CFAEC + b _080CFADE +_080CFAC2: + bl sub_080CFBE4 + b _080CFADE +_080CFAC8: + bl sub_080CFC50 + b _080CFADE +_080CFACE: + bl sub_080CFCC0 + b _080CFADE +_080CFAD4: + bl sub_080CFD40 + b _080CFADE +_080CFADA: + bl sub_080CFD68 +_080CFADE: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _080CFAE6 +_080CFAE4: + movs r0, #0 +_080CFAE6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080CFA84 + + thumb_func_start sub_080CFAEC +sub_080CFAEC: @ 0x080CFAEC + push {r4, r5, r6, lr} + sub sp, #8 + ldr r6, _080CFB04 + ldr r1, [r6] + ldrb r0, [r1, #1] + cmp r0, #1 + beq _080CFB1C + cmp r0, #1 + bgt _080CFB08 + cmp r0, #0 + beq _080CFB0E + b _080CFBD8 + .align 2, 0 +_080CFB04: .4byte 0x02039A20 +_080CFB08: + cmp r0, #2 + beq _080CFBC4 + b _080CFBD8 +_080CFB0E: + movs r0, #0 + bl HideBg + movs r0, #0x80 + bl sub_080D28EC + b _080CFBAE +_080CFB1C: + adds r0, r1, #2 + adds r1, #3 + bl sub_080CF690 + ldr r1, [r6] + ldrb r0, [r1, #2] + strb r0, [r1, #4] + ldr r1, [r6] + ldrb r0, [r1, #3] + strb r0, [r1, #5] + ldr r4, _080CFBB8 + movs r0, #0 + adds r1, r4, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #0 + adds r1, r4, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #0x20 + str r0, [sp] + str r0, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + ldr r5, _080CFBBC + ldr r0, [r5] + movs r4, #0x88 + lsls r4, r4, #6 + adds r0, r0, r4 + ldrb r0, [r0] + movs r1, #0 + bl FillWindowPixelBuffer8Bit + ldr r1, [r6] + ldrb r0, [r1, #2] + ldrb r1, [r1, #3] + bl sub_080D0050 + movs r0, #0 + movs r1, #4 + movs r2, #1 + bl SetBgAttribute + ldr r0, [r5] + adds r0, r0, r4 + ldrb r0, [r0] + bl PutWindowTilemap + ldr r0, [r5] + adds r0, r0, r4 + ldrb r0, [r0] + movs r1, #3 + bl CopyWindowToVram8Bit + movs r0, #0xfc + lsls r0, r0, #6 + ldr r2, _080CFBC0 + movs r1, #8 + bl BlendPalettes + movs r0, #2 + bl sub_080CF6D0 + movs r0, #8 + movs r1, #0x80 + bl SetGpuRegBits +_080CFBAE: + ldr r1, [r6] + ldrb r0, [r1, #1] + adds r0, #1 + strb r0, [r1, #1] + b _080CFBD8 + .align 2, 0 +_080CFBB8: .4byte 0xFFFFFC00 +_080CFBBC: .4byte 0x020399A8 +_080CFBC0: .4byte 0x00007FFF +_080CFBC4: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080CFBD8 + movs r0, #0 + bl ShowBg + movs r0, #0 + b _080CFBDA +_080CFBD8: + movs r0, #1 +_080CFBDA: + add sp, #8 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080CFAEC + + thumb_func_start sub_080CFBE4 +sub_080CFBE4: @ 0x080CFBE4 + push {r4, lr} + ldr r4, _080CFBFC + ldr r0, [r4] + ldrb r0, [r0, #1] + cmp r0, #1 + beq _080CFC0E + cmp r0, #1 + bgt _080CFC00 + cmp r0, #0 + beq _080CFC06 + b _080CFC48 + .align 2, 0 +_080CFBFC: .4byte 0x02039A20 +_080CFC00: + cmp r0, #2 + beq _080CFC22 + b _080CFC48 +_080CFC06: + movs r0, #0 + bl HideBg + b _080CFC18 +_080CFC0E: + bl sub_080D03FC + movs r0, #0 + bl sub_080CF6D0 +_080CFC18: + ldr r1, [r4] + ldrb r0, [r1, #1] + adds r0, #1 + strb r0, [r1, #1] + b _080CFC48 +_080CFC22: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080CFC48 + bl sub_080CF700 + movs r0, #3 + bl stdpal_get + movs r1, #0xd0 + movs r2, #0x20 + bl LoadPalette + movs r0, #0 + bl ShowBg + movs r0, #0 + b _080CFC4A +_080CFC48: + movs r0, #1 +_080CFC4A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_080CFBE4 + + thumb_func_start sub_080CFC50 +sub_080CFC50: @ 0x080CFC50 + push {r4, lr} + ldr r4, _080CFC64 + ldr r0, [r4] + ldrb r0, [r0, #1] + cmp r0, #0 + beq _080CFC68 + cmp r0, #1 + beq _080CFCAC + b _080CFCB6 + .align 2, 0 +_080CFC64: .4byte 0x02039A20 +_080CFC68: + bl sub_080CCDD0 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080CFCB6 + ldr r1, [r4] + adds r0, r1, #6 + adds r1, #7 + bl sub_080CF690 + bl sub_080CFECC + ldr r1, [r4] + ldrb r0, [r1, #6] + strb r0, [r1, #4] + ldr r1, [r4] + ldrb r0, [r1, #7] + strb r0, [r1, #5] + ldr r0, _080CFCA8 + ldr r0, [r0] + movs r1, #0x88 + lsls r1, r1, #6 + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #2 + bl CopyWindowToVram8Bit + ldr r1, [r4] + ldrb r0, [r1, #1] + adds r0, #1 + strb r0, [r1, #1] + b _080CFCB6 + .align 2, 0 +_080CFCA8: .4byte 0x020399A8 +_080CFCAC: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _080CFCB8 +_080CFCB6: + movs r0, #1 +_080CFCB8: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080CFC50 + + thumb_func_start sub_080CFCC0 +sub_080CFCC0: @ 0x080CFCC0 + push {r4, lr} + ldr r4, _080CFCD8 + ldr r0, [r4] + ldrb r0, [r0, #1] + cmp r0, #1 + beq _080CFCEE + cmp r0, #1 + bgt _080CFCDC + cmp r0, #0 + beq _080CFCE2 + b _080CFD38 + .align 2, 0 +_080CFCD8: .4byte 0x02039A20 +_080CFCDC: + cmp r0, #2 + beq _080CFD1A + b _080CFD38 +_080CFCE2: + bl sub_080D016C + bl sub_080D0244 + movs r0, #0 + b _080CFD0C +_080CFCEE: + bl DoMonPlaceChange + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080CFD38 + movs r0, #3 + bl sub_080CF6D0 + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #0 + movs r2, #8 + bl sub_080D0124 + movs r0, #1 +_080CFD0C: + bl sub_080CD4E0 + ldr r1, [r4] + ldrb r0, [r1, #1] + adds r0, #1 + strb r0, [r1, #1] + b _080CFD38 +_080CFD1A: + bl sub_080D0134 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl DoMonPlaceChange + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, #0 + bne _080CFD38 + cmp r0, #0 + bne _080CFD38 + movs r0, #0 + b _080CFD3A +_080CFD38: + movs r0, #1 +_080CFD3A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_080CFCC0 + + thumb_func_start sub_080CFD40 +sub_080CFD40: @ 0x080CFD40 + push {r4, lr} + bl sub_080CCDD0 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl sub_080D0134 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, #0 + bne _080CFD60 + cmp r0, #0 + bne _080CFD60 + movs r0, #0 + b _080CFD62 +_080CFD60: + movs r0, #1 +_080CFD62: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_080CFD40 + + thumb_func_start sub_080CFD68 +sub_080CFD68: @ 0x080CFD68 + push {r4, lr} + ldr r4, _080CFD80 + ldr r0, [r4] + ldrb r0, [r0, #1] + cmp r0, #1 + beq _080CFDA6 + cmp r0, #1 + bgt _080CFD84 + cmp r0, #0 + beq _080CFD8E + b _080CFE16 + .align 2, 0 +_080CFD80: .4byte 0x02039A20 +_080CFD84: + cmp r0, #2 + beq _080CFDD2 + cmp r0, #3 + beq _080CFDF0 + b _080CFE16 +_080CFD8E: + bl sub_080D034C + movs r1, #0xff + lsls r1, r1, #8 + movs r0, #0 + movs r2, #8 + bl sub_080D0124 + movs r0, #0 + bl sub_080CD4E0 + b _080CFDE6 +_080CFDA6: + bl DoMonPlaceChange + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080CFE16 + bl sub_080D0134 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080CFE16 + bl sub_080D02BC + movs r0, #2 + bl sub_080CF6D0 + movs r0, #1 + bl sub_080CD4E0 + movs r0, #0 + bl HideBg + b _080CFDE6 +_080CFDD2: + bl DoMonPlaceChange + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080CFE16 + movs r0, #0 + bl sub_080CF6D0 + bl sub_080D03FC +_080CFDE6: + ldr r1, [r4] + ldrb r0, [r1, #1] + adds r0, #1 + strb r0, [r1, #1] + b _080CFE16 +_080CFDF0: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080CFE16 + movs r0, #3 + bl stdpal_get + movs r1, #0xd0 + movs r2, #0x20 + bl LoadPalette + bl sub_080CF700 + movs r0, #0 + bl ShowBg + movs r0, #0 + b _080CFE18 +_080CFE16: + movs r0, #1 +_080CFE18: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080CFD68 + + thumb_func_start sub_080CFE20 +sub_080CFE20: @ 0x080CFE20 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + cmp r0, #1 + beq _080CFE5C + cmp r0, #1 + bgt _080CFE36 + cmp r0, #0 + beq _080CFE40 + b _080CFEC4 +_080CFE36: + cmp r1, #2 + beq _080CFE7C + cmp r1, #3 + beq _080CFE9C + b _080CFEC4 +_080CFE40: + ldr r0, _080CFE58 + ldr r1, [r0] + ldrb r0, [r1, #9] + cmp r0, #0 + beq _080CFEAA + subs r0, #1 + strb r0, [r1, #9] + movs r1, #0x80 + lsls r1, r1, #3 + movs r0, #0 + b _080CFE90 + .align 2, 0 +_080CFE58: .4byte 0x02039A20 +_080CFE5C: + ldr r0, _080CFE78 + ldr r1, [r0] + ldrb r2, [r1, #9] + ldrb r0, [r1, #0xb] + adds r0, r2, r0 + cmp r0, #4 + bgt _080CFEAA + adds r0, r2, #1 + strb r0, [r1, #9] + movs r1, #0xfc + lsls r1, r1, #8 + movs r0, #0 + b _080CFE90 + .align 2, 0 +_080CFE78: .4byte 0x02039A20 +_080CFE7C: + ldr r0, _080CFE98 + ldr r1, [r0] + ldrb r0, [r1, #8] + cmp r0, #0 + beq _080CFEAA + subs r0, #1 + strb r0, [r1, #8] + movs r0, #0x80 + lsls r0, r0, #3 + movs r1, #0 +_080CFE90: + movs r2, #6 + bl sub_080D0124 + b _080CFEC4 + .align 2, 0 +_080CFE98: .4byte 0x02039A20 +_080CFE9C: + ldr r0, _080CFEB0 + ldr r1, [r0] + ldrb r2, [r1, #8] + ldrb r0, [r1, #0xa] + adds r0, r2, r0 + cmp r0, #5 + ble _080CFEB4 +_080CFEAA: + movs r0, #0 + b _080CFEC6 + .align 2, 0 +_080CFEB0: .4byte 0x02039A20 +_080CFEB4: + adds r0, r2, #1 + strb r0, [r1, #8] + movs r0, #0xfc + lsls r0, r0, #8 + movs r1, #0 + movs r2, #6 + bl sub_080D0124 +_080CFEC4: + movs r0, #1 +_080CFEC6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080CFE20 + + thumb_func_start sub_080CFECC +sub_080CFECC: @ 0x080CFECC + push {r4, r5, r6, r7, lr} + ldr r6, _080CFF6C + ldr r2, [r6] + ldrb r3, [r2, #2] + ldrb r5, [r2, #6] + subs r1, r3, r5 + cmp r1, #0 + bge _080CFEDE + rsbs r1, r1, #0 +_080CFEDE: + ldrb r0, [r2, #4] + subs r0, r3, r0 + cmp r0, #0 + bge _080CFEE8 + rsbs r0, r0, #0 +_080CFEE8: + subs r0, r1, r0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldrb r1, [r2, #3] + ldrb r0, [r2, #7] + subs r3, r1, r0 + cmp r3, #0 + bge _080CFEFA + rsbs r3, r3, #0 +_080CFEFA: + ldrb r2, [r2, #5] + subs r0, r1, r2 + cmp r0, #0 + bge _080CFF04 + rsbs r0, r0, #0 +_080CFF04: + subs r0, r3, r0 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + lsls r0, r4, #0x10 + asrs r4, r0, #0x10 + cmp r4, #0 + ble _080CFF18 + adds r0, r5, #0 + bl sub_080CFF70 +_080CFF18: + cmp r4, #0 + bge _080CFF34 + ldr r2, [r6] + ldrb r0, [r2, #4] + ldrb r1, [r2, #3] + ldrb r2, [r2, #5] + bl sub_080CFFE0 + ldr r2, [r6] + ldrb r0, [r2, #6] + ldrb r1, [r2, #3] + ldrb r2, [r2, #5] + bl sub_080CFF70 +_080CFF34: + lsls r0, r7, #0x10 + asrs r4, r0, #0x10 + cmp r4, #0 + ble _080CFF48 + ldr r2, [r6] + ldrb r0, [r2, #7] + ldrb r1, [r2, #2] + ldrb r2, [r2, #4] + bl sub_080CFFA8 +_080CFF48: + cmp r4, #0 + bge _080CFF64 + ldr r2, [r6] + ldrb r0, [r2, #5] + ldrb r1, [r2, #2] + ldrb r2, [r2, #4] + bl sub_080D0018 + ldr r2, [r6] + ldrb r0, [r2, #7] + ldrb r1, [r2, #2] + ldrb r2, [r2, #4] + bl sub_080CFFA8 +_080CFF64: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080CFF6C: .4byte 0x02039A20 + thumb_func_end sub_080CFECC + + thumb_func_start sub_080CFF70 +sub_080CFF70: @ 0x080CFF70 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + adds r1, r4, #0 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + adds r0, r5, #0 + cmp r4, r5 + bls _080CFF8E + adds r4, r5, #0 + adds r5, r1, #0 + cmp r0, r5 + bhi _080CFFA0 +_080CFF8E: + adds r1, r4, #0 + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r6, #0 + bl sub_080D0050 + cmp r4, r5 + bls _080CFF8E +_080CFFA0: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080CFF70 + + thumb_func_start sub_080CFFA8 +sub_080CFFA8: @ 0x080CFFA8 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + adds r1, r4, #0 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + adds r0, r5, #0 + cmp r4, r5 + bls _080CFFC6 + adds r4, r5, #0 + adds r5, r1, #0 + cmp r0, r5 + bhi _080CFFD8 +_080CFFC6: + adds r0, r4, #0 + adds r1, r0, #1 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + adds r1, r6, #0 + bl sub_080D0050 + cmp r4, r5 + bls _080CFFC6 +_080CFFD8: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080CFFA8 + + thumb_func_start sub_080CFFE0 +sub_080CFFE0: @ 0x080CFFE0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + adds r1, r4, #0 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + adds r0, r5, #0 + cmp r4, r5 + bls _080CFFFE + adds r4, r5, #0 + adds r5, r1, #0 + cmp r0, r5 + bhi _080D0010 +_080CFFFE: + adds r1, r4, #0 + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r6, #0 + bl sub_080D00D4 + cmp r4, r5 + bls _080CFFFE +_080D0010: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080CFFE0 + + thumb_func_start sub_080D0018 +sub_080D0018: @ 0x080D0018 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + adds r1, r4, #0 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + adds r0, r5, #0 + cmp r4, r5 + bls _080D0036 + adds r4, r5, #0 + adds r5, r1, #0 + cmp r0, r5 + bhi _080D0048 +_080D0036: + adds r0, r4, #0 + adds r1, r0, #1 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + adds r1, r6, #0 + bl sub_080D00D4 + cmp r4, r5 + bls _080D0036 +_080D0048: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080D0018 + + thumb_func_start sub_080D0050 +sub_080D0050: @ 0x080D0050 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r1, #1 + adds r7, r0, r1 + lsls r4, r7, #1 + adds r4, r6, r4 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #0x41 + bl GetCurrentBoxMonData + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r4, #0 + movs r1, #0 + bl GetCurrentBoxMonData + adds r1, r0, #0 + cmp r5, #0 + beq _080D00C8 + adds r0, r5, #0 + movs r2, #1 + bl GetMonIconPtr + adds r4, r0, #0 + adds r0, r5, #0 + bl GetValidMonIconPalIndex + adds r0, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080D00D0 + ldr r1, [r1] + movs r2, #0x88 + lsls r2, r2, #6 + adds r1, r1, r2 + ldrb r3, [r1] + movs r2, #0x20 + str r2, [sp] + str r2, [sp, #4] + lsls r1, r6, #1 + adds r1, r1, r6 + lsls r1, r1, #3 + str r1, [sp, #8] + lsls r1, r7, #3 + str r1, [sp, #0xc] + str r2, [sp, #0x10] + str r2, [sp, #0x14] + str r0, [sp, #0x18] + adds r0, r3, #0 + adds r1, r4, #0 + movs r2, #0 + movs r3, #0 + bl BlitBitmapRectToWindow4BitTo8Bit +_080D00C8: + add sp, #0x1c + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D00D0: .4byte 0x020399A8 + thumb_func_end sub_080D0050 + + thumb_func_start sub_080D00D4 +sub_080D00D4: @ 0x080D00D4 + push {r4, r5, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r1, #1 + adds r5, r0, r1 + lsls r0, r5, #1 + adds r0, r4, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x41 + bl GetCurrentBoxMonData + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080D0118 + ldr r0, _080D0120 + ldr r0, [r0] + movs r1, #0x88 + lsls r1, r1, #6 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r2, r4, #1 + adds r2, r2, r4 + lsls r2, r2, #3 + lsls r3, r5, #3 + movs r1, #0x20 + str r1, [sp] + str r1, [sp, #4] + movs r1, #0 + bl FillWindowPixelRect8Bit +_080D0118: + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D0120: .4byte 0x020399A8 + thumb_func_end sub_080D00D4 + + thumb_func_start sub_080D0124 +sub_080D0124: @ 0x080D0124 + ldr r3, _080D0130 + ldr r3, [r3] + strh r0, [r3, #0xc] + strh r1, [r3, #0xe] + strh r2, [r3, #0x10] + bx lr + .align 2, 0 +_080D0130: .4byte 0x02039A20 + thumb_func_end sub_080D0124 + + thumb_func_start sub_080D0134 +sub_080D0134: @ 0x080D0134 + push {r4, lr} + ldr r4, _080D0168 + ldr r1, [r4] + ldrh r0, [r1, #0x10] + cmp r0, #0 + beq _080D015E + ldrh r1, [r1, #0xc] + movs r0, #0 + movs r2, #1 + bl ChangeBgX + ldr r0, [r4] + ldrh r1, [r0, #0xe] + movs r0, #0 + movs r2, #1 + bl ChangeBgY + ldr r1, [r4] + ldrh r0, [r1, #0x10] + subs r0, #1 + strh r0, [r1, #0x10] +_080D015E: + ldr r0, [r4] + ldrb r0, [r0, #0x10] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080D0168: .4byte 0x02039A20 + thumb_func_end sub_080D0134 + + thumb_func_start sub_080D016C +sub_080D016C: @ 0x080D016C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r4, _080D0240 + ldr r1, [r4] + ldrb r0, [r1, #4] + ldrb r2, [r1, #2] + cmp r0, r2 + bls _080D0184 + adds r0, r2, #0 +_080D0184: + strb r0, [r1, #8] + ldr r1, [r4] + ldrb r0, [r1, #5] + ldrb r2, [r1, #3] + cmp r0, r2 + bls _080D0192 + adds r0, r2, #0 +_080D0192: + strb r0, [r1, #9] + ldr r2, [r4] + ldrb r1, [r2, #2] + ldrb r0, [r2, #4] + subs r0, r1, r0 + cmp r0, #0 + bge _080D01A2 + rsbs r0, r0, #0 +_080D01A2: + adds r0, #1 + strb r0, [r2, #0xa] + ldr r2, [r4] + ldrb r1, [r2, #3] + ldrb r0, [r2, #5] + subs r0, r1, r0 + cmp r0, #0 + bge _080D01B4 + rsbs r0, r0, #0 +_080D01B4: + adds r0, #1 + strb r0, [r2, #0xb] + bl StorageGetCurrentBox + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + movs r6, #0 + ldr r0, [r4] + ldrb r2, [r0, #8] + ldrb r1, [r0, #0xa] + adds r2, r2, r1 + mov r8, r2 + ldrb r1, [r0, #9] + ldrb r0, [r0, #0xb] + adds r0, r0, r1 + mov sb, r0 + adds r2, r1, #0 + cmp r2, sb + bge _080D0230 +_080D01DC: + lsls r0, r2, #1 + adds r0, r0, r2 + ldr r3, _080D0240 + ldr r1, [r3] + lsls r0, r0, #1 + ldrb r3, [r1, #8] + adds r0, r0, r3 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldrb r4, [r1, #8] + adds r7, r2, #1 + cmp r4, r8 + bge _080D022A + mov r0, r8 + subs r4, r0, r4 +_080D01FA: + mov r0, sl + adds r1, r5, #0 + bl GetBoxedMonPtr + adds r1, r0, #0 + ldr r2, _080D0240 + ldr r0, [r2] + lsls r2, r6, #2 + adds r2, r2, r6 + lsls r2, r2, #4 + adds r0, r0, r2 + adds r0, #0x14 + movs r2, #0x50 + bl memcpy + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + subs r4, #1 + cmp r4, #0 + bne _080D01FA +_080D022A: + adds r2, r7, #0 + cmp r2, sb + blt _080D01DC +_080D0230: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D0240: .4byte 0x02039A20 + thumb_func_end sub_080D016C + + thumb_func_start sub_080D0244 +sub_080D0244: @ 0x080D0244 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r4, _080D02B8 + ldr r0, [r4] + ldrb r2, [r0, #8] + ldrb r1, [r0, #0xa] + adds r7, r2, r1 + ldrb r1, [r0, #9] + ldrb r0, [r0, #0xb] + adds r1, r1, r0 + mov sb, r1 + bl StorageGetCurrentBox + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r0, [r4] + ldrb r2, [r0, #9] + cmp r2, sb + bge _080D02AC +_080D0270: + lsls r0, r2, #1 + adds r0, r0, r2 + ldr r1, _080D02B8 + ldr r1, [r1] + lsls r0, r0, #1 + ldrb r3, [r1, #8] + adds r0, r0, r3 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldrb r4, [r1, #8] + adds r6, r2, #1 + cmp r4, r7 + bge _080D02A6 + subs r4, r7, r4 +_080D028C: + adds r0, r5, #0 + bl DestroyBoxMonIconAtPosition + mov r0, r8 + adds r1, r5, #0 + bl ZeroBoxMonAt + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + subs r4, #1 + cmp r4, #0 + bne _080D028C +_080D02A6: + adds r2, r6, #0 + cmp r2, sb + blt _080D0270 +_080D02AC: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D02B8: .4byte 0x02039A20 + thumb_func_end sub_080D0244 + + thumb_func_start sub_080D02BC +sub_080D02BC: @ 0x080D02BC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _080D0348 + ldr r0, [r0] + ldrb r2, [r0, #8] + ldrb r1, [r0, #0xa] + adds r2, r2, r1 + mov r8, r2 + ldrb r1, [r0, #9] + ldrb r0, [r0, #0xb] + adds r0, r0, r1 + mov sl, r0 + movs r6, #0 + adds r2, r1, #0 + cmp r2, sl + bge _080D0338 +_080D02E2: + lsls r0, r2, #1 + adds r0, r0, r2 + ldr r3, _080D0348 + ldr r1, [r3] + lsls r0, r0, #1 + ldrb r4, [r1, #8] + adds r0, r0, r4 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldrb r4, [r1, #8] + adds r7, r2, #1 + cmp r4, r8 + bge _080D0332 + mov sb, r3 + mov r0, r8 + subs r4, r0, r4 +_080D0302: + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #4 + adds r1, #0x14 + mov r2, sb + ldr r0, [r2] + adds r0, r0, r1 + movs r1, #5 + bl GetBoxMonData + cmp r0, #0 + beq _080D0320 + adds r0, r5, #0 + bl sub_080CA9B4 +_080D0320: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + subs r4, #1 + cmp r4, #0 + bne _080D0302 +_080D0332: + adds r2, r7, #0 + cmp r2, sl + blt _080D02E2 +_080D0338: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D0348: .4byte 0x02039A20 + thumb_func_end sub_080D02BC + + thumb_func_start sub_080D034C +sub_080D034C: @ 0x080D034C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r4, _080D03F8 + ldr r0, [r4] + ldrb r2, [r0, #8] + ldrb r1, [r0, #0xa] + adds r2, r2, r1 + mov sl, r2 + ldrb r1, [r0, #9] + ldrb r0, [r0, #0xb] + adds r1, r1, r0 + str r1, [sp] + bl StorageGetCurrentBox + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + movs r7, #0 + ldr r0, [r4] + ldrb r3, [r0, #9] + ldr r0, [sp] + cmp r3, r0 + bge _080D03E6 +_080D0382: + lsls r0, r3, #1 + adds r0, r0, r3 + ldr r2, _080D03F8 + ldr r1, [r2] + lsls r0, r0, #1 + ldrb r4, [r1, #8] + adds r0, r0, r4 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldrb r5, [r1, #8] + adds r3, #1 + mov sb, r3 + cmp r5, sl + bge _080D03DE + mov r8, r2 + mov r0, sl + subs r5, r0, r5 +_080D03A4: + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #4 + adds r4, r0, #0 + adds r4, #0x14 + mov r1, r8 + ldr r0, [r1] + adds r0, r0, r4 + movs r1, #5 + bl GetBoxMonData + cmp r0, #0 + beq _080D03CC + mov r0, r8 + ldr r2, [r0] + adds r2, r2, r4 + ldr r0, [sp, #4] + adds r1, r6, #0 + bl SetBoxMonAt +_080D03CC: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + subs r5, #1 + cmp r5, #0 + bne _080D03A4 +_080D03DE: + mov r3, sb + ldr r1, [sp] + cmp r3, r1 + blt _080D0382 +_080D03E6: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D03F8: .4byte 0x02039A20 + thumb_func_end sub_080D034C + + thumb_func_start sub_080D03FC +sub_080D03FC: @ 0x080D03FC + push {lr} + sub sp, #8 + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #0 + movs r1, #4 + movs r2, #0 + bl SetBgAttribute + movs r0, #8 + movs r1, #0x80 + bl ClearGpuRegBits + movs r0, #0x20 + str r0, [sp] + str r0, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, #0 + bl CopyBgTilemapBufferToVram + add sp, #8 + pop {r0} + bx r0 + thumb_func_end sub_080D03FC + + thumb_func_start sub_080D0444 +sub_080D0444: @ 0x080D0444 + ldr r0, _080D045C + ldr r2, [r0] + ldrb r1, [r2, #3] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + ldrb r2, [r2, #2] + adds r0, r0, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bx lr + .align 2, 0 +_080D045C: .4byte 0x02039A20 + thumb_func_end sub_080D0444 + + thumb_func_start sub_080D0460 +sub_080D0460: @ 0x080D0460 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r0, _080D04CC + ldr r0, [r0] + ldrb r2, [r0, #8] + ldrb r1, [r0, #0xa] + adds r2, r2, r1 + mov sb, r2 + ldrb r1, [r0, #9] + ldrb r0, [r0, #0xb] + adds r0, r1, r0 + str r0, [sp] + movs r7, #0 + adds r6, r1, #0 + cmp r6, r0 + bge _080D04EE + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r0, r0, #1 + mov r8, r0 +_080D0490: + ldr r2, _080D04CC + ldr r1, [r2] + ldrb r0, [r1, #8] + add r0, r8 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldrb r4, [r1, #8] + cmp r4, sb + bge _080D04E2 + mov sl, r2 +_080D04A4: + lsls r1, r7, #2 + adds r1, r1, r7 + lsls r1, r1, #4 + adds r1, #0x14 + mov r2, sl + ldr r0, [r2] + adds r0, r0, r1 + movs r1, #5 + bl GetBoxMonData + cmp r0, #0 + beq _080D04D0 + adds r0, r5, #0 + movs r1, #5 + bl GetCurrentBoxMonData + cmp r0, #0 + beq _080D04D0 + movs r0, #0 + b _080D04F0 + .align 2, 0 +_080D04CC: .4byte 0x02039A20 +_080D04D0: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r4, #1 + cmp r4, sb + blt _080D04A4 +_080D04E2: + movs r0, #6 + add r8, r0 + adds r6, #1 + ldr r2, [sp] + cmp r6, r2 + blt _080D0490 +_080D04EE: + movs r0, #1 +_080D04F0: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_080D0460 + + thumb_func_start sub_080D0500 +sub_080D0500: @ 0x080D0500 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + ldr r3, _080D05FC + ldr r0, [r3] + ldrb r0, [r0, #1] + cmp r0, #3 + bne _080D05DE + ldr r0, _080D0600 + str r0, [sp, #0x18] + ldr r1, _080D0604 + add r2, sp, #0x18 + ldr r0, [r2, #4] + ands r0, r1 + movs r1, #0x80 + lsls r1, r1, #2 + orrs r0, r1 + str r0, [r2, #4] + mov r1, sp + ldr r0, _080D0608 + ldm r0!, {r4, r5, r6} + stm r1!, {r4, r5, r6} + ldm r0!, {r4, r5, r6} + stm r1!, {r4, r5, r6} + movs r7, #0 + mov sb, r2 + mov r8, r3 + movs r0, #0 + mov sl, r0 +_080D0540: + adds r6, r7, #7 + lsls r1, r6, #0x10 + mov r2, sb + ldrh r0, [r2, #4] + orrs r0, r1 + str r0, [r2, #4] + mov r0, sb + bl LoadCompressedSpriteSheet + mov r4, sb + ldrh r0, [r4, #6] + bl GetSpriteTileStartByTag + mov r5, r8 + ldr r1, [r5] + lsls r5, r7, #4 + ldr r2, _080D060C + adds r1, r1, r2 + adds r1, r1, r5 + lsls r0, r0, #0x10 + lsrs r0, r0, #0xb + ldr r4, _080D0610 + adds r0, r0, r4 + str r0, [r1] + ldr r0, _080D0614 + adds r4, r7, r0 + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + bl AllocSpritePalette + mov r2, r8 + ldr r1, [r2] + adds r1, r1, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080D0618 + adds r1, r1, r2 + strh r0, [r1] + ldrh r0, [r1] + lsls r0, r0, #4 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r0, r2 + strh r0, [r1] + mov r0, sp + strh r6, [r0] + strh r4, [r0, #2] + movs r1, #0 + movs r2, #0 + movs r3, #0xb + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r4, r8 + ldr r2, [r4] + ldr r6, _080D061C + adds r2, r2, r6 + adds r2, r2, r5 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080D0620 + adds r1, r1, r0 + str r1, [r2] + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + ldr r0, [r4] + adds r0, r0, r5 + ldr r1, _080D0624 + adds r0, r0, r1 + mov r2, sl + strb r2, [r0] + adds r7, #1 + cmp r7, #2 + ble _080D0540 +_080D05DE: + ldr r0, _080D05FC + ldr r0, [r0] + ldr r4, _080D0628 + adds r0, r0, r4 + movs r1, #0 + strh r1, [r0] + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D05FC: .4byte 0x020399A8 +_080D0600: .4byte 0x03000F78 +_080D0604: .4byte 0xFFFF0000 +_080D0608: .4byte 0x0855676C +_080D060C: .4byte 0x00002208 +_080D0610: .4byte 0x06010000 +_080D0614: .4byte 0xFFFFDACB +_080D0618: .4byte 0x0000220C +_080D061C: .4byte 0x00002204 +_080D0620: .4byte 0x020205AC +_080D0624: .4byte 0x00002210 +_080D0628: .4byte 0x00002234 + thumb_func_end sub_080D0500 + + thumb_func_start sub_080D062C +sub_080D062C: @ 0x080D062C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + ldr r0, _080D0660 + ldr r0, [r0] + ldrb r0, [r0, #1] + cmp r0, #3 + bne _080D06E2 + mov r0, r8 + adds r1, r7, #0 + bl sub_080D0BC4 + cmp r0, #0 + bne _080D06E2 + mov r0, r8 + cmp r0, #0 + beq _080D0664 + cmp r0, #1 + beq _080D067A + b _080D06E2 + .align 2, 0 +_080D0660: .4byte 0x020399A8 +_080D0664: + adds r0, r7, #0 + movs r1, #5 + bl GetCurrentBoxMonData + cmp r0, #0 + beq _080D06E2 + adds r0, r7, #0 + movs r1, #0xc + bl GetCurrentBoxMonData + b _080D069C +_080D067A: + cmp r7, #5 + bhi _080D06E2 + movs r0, #0x64 + adds r1, r7, #0 + muls r1, r0, r1 + ldr r0, _080D06EC + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #5 + bl GetMonData + cmp r0, #0 + beq _080D06E2 + adds r0, r4, #0 + movs r1, #0xc + bl GetMonData +_080D069C: + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0 + beq _080D06E2 + adds r0, r4, #0 + bl GetItemIconPic + adds r6, r0, #0 + adds r0, r4, #0 + bl GetItemIconPalette + adds r5, r0, #0 + bl sub_080D0B88 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + mov r1, r8 + adds r2, r7, #0 + bl sub_080D0CAC + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r5, #0 + bl sub_080D0DC4 + adds r0, r4, #0 + movs r1, #1 + bl sub_080D0E74 + adds r0, r4, #0 + movs r1, #1 + bl sub_080D0FE0 +_080D06E2: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D06EC: .4byte 0x02024190 + thumb_func_end sub_080D062C + + thumb_func_start sub_080D06F0 +sub_080D06F0: @ 0x080D06F0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + ldr r0, _080D072C + ldr r0, [r0] + ldrb r0, [r0, #1] + cmp r0, #3 + bne _080D0726 + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_080D0C10 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #2 + bl sub_080D0E74 + adds r0, r4, #0 + movs r1, #0 + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_080D0EA4 +_080D0726: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080D072C: .4byte 0x020399A8 + thumb_func_end sub_080D06F0 + + thumb_func_start Item_FromMonToMoving +Item_FromMonToMoving: @ 0x080D0730 + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + adds r7, r5, #0 + ldr r0, _080D0794 + ldr r0, [r0] + ldrb r0, [r0, #1] + cmp r0, #3 + bne _080D07C0 + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_080D0C10 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r1, #0 + mov r0, sp + strh r1, [r0] + adds r0, r4, #0 + movs r1, #3 + bl sub_080D0E74 + adds r0, r4, #0 + movs r1, #1 + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_080D0EA4 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_080D0CAC + cmp r6, #0 + bne _080D0798 + adds r0, r5, #0 + movs r1, #0xc + mov r2, sp + bl SetCurrentBoxMonData + adds r0, r5, #0 + movs r1, #1 + bl SetBoxMonIconObjMode + b _080D07B0 + .align 2, 0 +_080D0794: .4byte 0x020399A8 +_080D0798: + movs r0, #0x64 + muls r0, r7, r0 + ldr r1, _080D07C8 + adds r0, r0, r1 + movs r1, #0xc + mov r2, sp + bl SetMonData + adds r0, r7, #0 + movs r1, #1 + bl SetPartyMonIconObjMode +_080D07B0: + ldr r0, _080D07CC + ldr r0, [r0] + ldr r2, _080D07D0 + adds r1, r0, r2 + ldrh r1, [r1] + ldr r2, _080D07D4 + adds r0, r0, r2 + strh r1, [r0] +_080D07C0: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D07C8: .4byte 0x02024190 +_080D07CC: .4byte 0x020399A8 +_080D07D0: .4byte 0x00000CE6 +_080D07D4: .4byte 0x00002234 + thumb_func_end Item_FromMonToMoving + + thumb_func_start sub_080D07D8 +sub_080D07D8: @ 0x080D07D8 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + adds r0, r5, #0 + bl GetItemIconPic + mov r8, r0 + adds r0, r5, #0 + bl GetItemIconPalette + adds r6, r0, #0 + bl sub_080D0B88 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + mov r1, r8 + adds r2, r6, #0 + bl sub_080D0DC4 + adds r0, r4, #0 + movs r1, #6 + bl sub_080D0E74 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + movs r3, #0 + bl sub_080D0EA4 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_080D0CAC + adds r0, r4, #0 + movs r1, #1 + bl sub_080D0FE0 + ldr r0, _080D0844 + ldr r0, [r0] + ldr r1, _080D0848 + adds r0, r0, r1 + strh r5, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080D0844: .4byte 0x020399A8 +_080D0848: .4byte 0x00002234 + thumb_func_end sub_080D07D8 + + thumb_func_start Item_SwitchMonsWithMoving +Item_SwitchMonsWithMoving: @ 0x080D084C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + ldr r0, _080D08B4 + mov r8, r0 + ldr r0, [r0] + ldrb r0, [r0, #1] + cmp r0, #3 + bne _080D090A + mov r0, sb + adds r1, r7, #0 + bl sub_080D0C10 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + movs r1, #3 + bl sub_080D0E74 + adds r0, r4, #0 + movs r1, #3 + movs r2, #2 + movs r3, #0 + bl sub_080D0EA4 + mov r1, sb + cmp r1, #0 + bne _080D08BC + adds r0, r7, #0 + movs r1, #0xc + bl GetCurrentBoxMonData + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + mov r0, r8 + ldr r2, [r0] + ldr r4, _080D08B8 + adds r2, r2, r4 + adds r0, r7, #0 + movs r1, #0xc + bl SetCurrentBoxMonData + mov r1, r8 + ldr r0, [r1] + adds r0, r0, r4 + b _080D08E8 + .align 2, 0 +_080D08B4: .4byte 0x020399A8 +_080D08B8: .4byte 0x00002234 +_080D08BC: + movs r0, #0x64 + adds r4, r7, #0 + muls r4, r0, r4 + ldr r0, _080D0918 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0xc + bl GetMonData + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + mov r0, r8 + ldr r2, [r0] + ldr r5, _080D091C + adds r2, r2, r5 + adds r0, r4, #0 + movs r1, #0xc + bl SetMonData + mov r1, r8 + ldr r0, [r1] + adds r0, r0, r5 +_080D08E8: + strh r6, [r0] + movs r0, #2 + movs r1, #0 + bl sub_080D0C10 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + movs r1, #4 + bl sub_080D0E74 + adds r0, r4, #0 + movs r1, #4 + mov r2, sb + adds r3, r7, #0 + bl sub_080D0EA4 +_080D090A: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D0918: .4byte 0x02024190 +_080D091C: .4byte 0x00002234 + thumb_func_end Item_SwitchMonsWithMoving + + thumb_func_start Item_GiveMovingToMon +Item_GiveMovingToMon: @ 0x080D0920 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + mov r8, r5 + ldr r6, _080D0978 + ldr r0, [r6] + ldrb r0, [r0, #1] + cmp r0, #3 + bne _080D09A0 + movs r0, #2 + movs r1, #0 + bl sub_080D0C10 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #4 + bl sub_080D0E74 + adds r0, r4, #0 + movs r1, #2 + adds r2, r7, #0 + adds r3, r5, #0 + bl sub_080D0EA4 + cmp r7, #0 + bne _080D0980 + ldr r2, [r6] + ldr r0, _080D097C + adds r2, r2, r0 + adds r0, r5, #0 + movs r1, #0xc + bl SetCurrentBoxMonData + adds r0, r5, #0 + movs r1, #0 + bl SetBoxMonIconObjMode + b _080D09A0 + .align 2, 0 +_080D0978: .4byte 0x020399A8 +_080D097C: .4byte 0x00002234 +_080D0980: + movs r0, #0x64 + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + ldr r1, _080D09AC + adds r0, r0, r1 + ldr r2, [r6] + ldr r1, _080D09B0 + adds r2, r2, r1 + movs r1, #0xc + bl SetMonData + mov r0, r8 + movs r1, #0 + bl SetPartyMonIconObjMode +_080D09A0: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D09AC: .4byte 0x02024190 +_080D09B0: .4byte 0x00002234 + thumb_func_end Item_GiveMovingToMon + + thumb_func_start Item_TakeMons +Item_TakeMons: @ 0x080D09B4 + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + adds r7, r5, #0 + ldr r0, _080D0A0C + ldr r0, [r0] + ldrb r0, [r0, #1] + cmp r0, #3 + bne _080D0A28 + movs r1, #0 + mov r0, sp + strh r1, [r0] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_080D0C10 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #2 + bl sub_080D0E74 + adds r0, r4, #0 + movs r1, #0 + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_080D0EA4 + cmp r6, #0 + bne _080D0A10 + adds r0, r5, #0 + movs r1, #0xc + mov r2, sp + bl SetCurrentBoxMonData + adds r0, r5, #0 + movs r1, #1 + bl SetBoxMonIconObjMode + b _080D0A28 + .align 2, 0 +_080D0A0C: .4byte 0x020399A8 +_080D0A10: + movs r0, #0x64 + muls r0, r7, r0 + ldr r1, _080D0A30 + adds r0, r0, r1 + movs r1, #0xc + mov r2, sp + bl SetMonData + adds r0, r7, #0 + movs r1, #1 + bl SetPartyMonIconObjMode +_080D0A28: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D0A30: .4byte 0x02024190 + thumb_func_end Item_TakeMons + + thumb_func_start sub_080D0A34 +sub_080D0A34: @ 0x080D0A34 + push {r4, lr} + ldr r0, _080D0A68 + ldr r0, [r0] + ldrb r0, [r0, #1] + cmp r0, #3 + bne _080D0A62 + movs r0, #2 + movs r1, #0 + bl sub_080D0C10 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #5 + bl sub_080D0E74 + adds r0, r4, #0 + movs r1, #0 + movs r2, #2 + movs r3, #0 + bl sub_080D0EA4 +_080D0A62: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D0A68: .4byte 0x020399A8 + thumb_func_end sub_080D0A34 + + thumb_func_start sub_080D0A6C +sub_080D0A6C: @ 0x080D0A6C + push {r4, lr} + ldr r0, _080D0AB0 + ldr r0, [r0] + ldrb r0, [r0, #1] + cmp r0, #3 + bne _080D0AAA + movs r4, #0 +_080D0A7A: + ldr r0, _080D0AB0 + ldr r1, [r0] + lsls r0, r4, #4 + adds r1, r1, r0 + ldr r2, _080D0AB4 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080D0AA4 + subs r2, #2 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #1 + bne _080D0AA4 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + movs r1, #7 + movs r2, #2 + movs r3, #0 + bl sub_080D0EA4 +_080D0AA4: + adds r4, #1 + cmp r4, #2 + ble _080D0A7A +_080D0AAA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D0AB0: .4byte 0x020399A8 +_080D0AB4: .4byte 0x00002210 + thumb_func_end sub_080D0A6C + + thumb_func_start sub_080D0AB8 +sub_080D0AB8: @ 0x080D0AB8 + push {r4, r5, lr} + movs r5, #0 + ldr r0, _080D0AF4 + ldr r0, [r0] + ldr r1, _080D0AF8 + adds r4, r0, r1 + adds r3, r0, #0 +_080D0AC6: + ldr r1, _080D0AFC + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _080D0B08 + ldr r2, [r4] + adds r0, r2, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x28 + ands r0, r1 + cmp r0, #8 + beq _080D0AEE + ldr r1, [r2, #0x1c] + ldr r0, _080D0B00 + cmp r1, r0 + beq _080D0B08 + ldr r0, _080D0B04 + cmp r1, r0 + beq _080D0B08 +_080D0AEE: + movs r0, #1 + b _080D0B14 + .align 2, 0 +_080D0AF4: .4byte 0x020399A8 +_080D0AF8: .4byte 0x00002204 +_080D0AFC: .4byte 0x00002210 +_080D0B00: .4byte 0x08007141 +_080D0B04: .4byte 0x080D1379 +_080D0B08: + adds r4, #0x10 + adds r3, #0x10 + adds r5, #1 + cmp r5, #2 + ble _080D0AC6 + movs r0, #0 +_080D0B14: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080D0AB8 + + thumb_func_start IsActiveItemMoving +IsActiveItemMoving: @ 0x080D0B1C + push {lr} + ldr r0, _080D0B40 + ldr r1, [r0] + ldrb r0, [r1, #1] + cmp r0, #3 + bne _080D0B50 + movs r2, #0 + ldr r0, _080D0B44 + adds r1, r1, r0 +_080D0B2E: + ldrb r0, [r1, #2] + cmp r0, #0 + beq _080D0B48 + ldrb r0, [r1] + cmp r0, #2 + bne _080D0B48 + movs r0, #1 + b _080D0B52 + .align 2, 0 +_080D0B40: .4byte 0x020399A8 +_080D0B44: .4byte 0x0000220E +_080D0B48: + adds r1, #0x10 + adds r2, #1 + cmp r2, #2 + ble _080D0B2E +_080D0B50: + movs r0, #0 +_080D0B52: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsActiveItemMoving + + thumb_func_start GetMovingItemName +GetMovingItemName: @ 0x080D0B58 + push {lr} + ldr r0, _080D0B6C + ldr r0, [r0] + ldr r1, _080D0B70 + adds r0, r0, r1 + ldrh r0, [r0] + bl ItemId_GetName + pop {r1} + bx r1 + .align 2, 0 +_080D0B6C: .4byte 0x020399A8 +_080D0B70: .4byte 0x00002234 + thumb_func_end GetMovingItemName + + thumb_func_start GetMovingItem +GetMovingItem: @ 0x080D0B74 + ldr r0, _080D0B80 + ldr r0, [r0] + ldr r1, _080D0B84 + adds r0, r0, r1 + ldrh r0, [r0] + bx lr + .align 2, 0 +_080D0B80: .4byte 0x020399A8 +_080D0B84: .4byte 0x00002234 + thumb_func_end GetMovingItem + + thumb_func_start sub_080D0B88 +sub_080D0B88: @ 0x080D0B88 + push {r4, r5, lr} + movs r2, #0 + ldr r5, _080D0BA8 + ldr r3, _080D0BAC + movs r4, #1 +_080D0B92: + ldr r0, [r5] + lsls r1, r2, #4 + adds r0, r0, r1 + adds r1, r0, r3 + ldrb r0, [r1] + cmp r0, #0 + bne _080D0BB0 + strb r4, [r1] + adds r0, r2, #0 + b _080D0BBC + .align 2, 0 +_080D0BA8: .4byte 0x020399A8 +_080D0BAC: .4byte 0x00002210 +_080D0BB0: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #2 + bls _080D0B92 + movs r0, #3 +_080D0BBC: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080D0B88 + + thumb_func_start sub_080D0BC4 +sub_080D0BC4: @ 0x080D0BC4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r3, #0 + ldr r0, _080D0BF8 + ldr r2, [r0] +_080D0BD4: + ldr r5, _080D0BFC + adds r0, r2, r5 + ldrb r0, [r0] + cmp r0, #0 + beq _080D0C00 + subs r5, #2 + adds r0, r2, r5 + ldrb r0, [r0] + cmp r0, r4 + bne _080D0C00 + adds r5, #1 + adds r0, r2, r5 + ldrb r0, [r0] + cmp r0, r1 + bne _080D0C00 + movs r0, #1 + b _080D0C0A + .align 2, 0 +_080D0BF8: .4byte 0x020399A8 +_080D0BFC: .4byte 0x00002210 +_080D0C00: + adds r2, #0x10 + adds r3, #1 + cmp r3, #2 + ble _080D0BD4 + movs r0, #0 +_080D0C0A: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_080D0BC4 + + thumb_func_start sub_080D0C10 +sub_080D0C10: @ 0x080D0C10 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + movs r3, #0 + ldr r0, _080D0C48 + ldr r1, [r0] +_080D0C20: + lsls r0, r3, #4 + adds r2, r1, r0 + ldr r6, _080D0C4C + adds r0, r2, r6 + ldrb r0, [r0] + cmp r0, #0 + beq _080D0C50 + subs r6, #2 + adds r0, r2, r6 + ldrb r0, [r0] + cmp r0, r5 + bne _080D0C50 + adds r6, #1 + adds r0, r2, r6 + ldrb r0, [r0] + cmp r0, r4 + bne _080D0C50 + adds r0, r3, #0 + b _080D0C5C + .align 2, 0 +_080D0C48: .4byte 0x020399A8 +_080D0C4C: .4byte 0x00002210 +_080D0C50: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #2 + bls _080D0C20 + movs r0, #3 +_080D0C5C: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080D0C10 + + thumb_func_start sub_080D0C64 +sub_080D0C64: @ 0x080D0C64 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r2, #0 + ldr r0, _080D0C8C + ldr r3, [r0] + ldr r0, _080D0C90 + adds r4, r3, r0 + ldr r6, _080D0C94 +_080D0C74: + lsls r1, r2, #4 + adds r0, r3, r1 + adds r0, r0, r6 + ldrb r0, [r0] + cmp r0, #0 + beq _080D0C98 + adds r0, r4, r1 + ldr r0, [r0] + cmp r0, r5 + bne _080D0C98 + adds r0, r2, #0 + b _080D0CA4 + .align 2, 0 +_080D0C8C: .4byte 0x020399A8 +_080D0C90: .4byte 0x00002204 +_080D0C94: .4byte 0x00002210 +_080D0C98: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #2 + bls _080D0C74 + movs r0, #3 +_080D0CA4: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080D0C64 + + thumb_func_start sub_080D0CAC +sub_080D0CAC: @ 0x080D0CAC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + cmp r5, #2 + bhi _080D0DAA + cmp r1, #0 + beq _080D0CD8 + cmp r1, #1 + beq _080D0D34 + ldr r4, _080D0CD4 + lsls r3, r5, #4 + b _080D0D94 + .align 2, 0 +_080D0CD4: .4byte 0x020399A8 +_080D0CD8: + adds r0, r7, #0 + movs r1, #6 + bl __umodsi3 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r7, #0 + movs r1, #6 + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r6, _080D0D2C + ldr r2, [r6] + lsls r5, r5, #4 + ldr r1, _080D0D30 + adds r2, r2, r1 + adds r2, r2, r5 + ldr r3, [r2] + lsls r1, r4, #1 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, #0x70 + strh r1, [r3, #0x20] + ldr r3, [r2] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, #0x38 + strh r1, [r3, #0x22] + ldr r2, [r2] + ldrb r1, [r2, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2, #5] + adds r4, r6, #0 + adds r3, r5, #0 + b _080D0D94 + .align 2, 0 +_080D0D2C: .4byte 0x020399A8 +_080D0D30: .4byte 0x00002204 +_080D0D34: + cmp r7, #0 + bne _080D0D5C + ldr r4, _080D0D54 + ldr r0, [r4] + lsls r3, r5, #4 + ldr r1, _080D0D58 + adds r0, r0, r1 + adds r0, r0, r3 + ldr r2, [r0] + movs r1, #0x74 + strh r1, [r2, #0x20] + ldr r1, [r0] + movs r0, #0x4c + strh r0, [r1, #0x22] + b _080D0D7C + .align 2, 0 +_080D0D54: .4byte 0x020399A8 +_080D0D58: .4byte 0x00002204 +_080D0D5C: + ldr r4, _080D0DB4 + ldr r0, [r4] + lsls r3, r5, #4 + ldr r1, _080D0DB8 + adds r0, r0, r1 + adds r0, r0, r3 + ldr r2, [r0] + movs r1, #0xa4 + strh r1, [r2, #0x20] + ldr r2, [r0] + subs r1, r7, #1 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, #0x1c + strh r0, [r2, #0x22] +_080D0D7C: + ldr r0, [r4] + ldr r1, _080D0DB8 + adds r0, r0, r1 + adds r0, r0, r3 + ldr r2, [r0] + ldrb r1, [r2, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #5] +_080D0D94: + ldr r0, [r4] + adds r0, r0, r3 + ldr r1, _080D0DBC + adds r0, r0, r1 + mov r1, r8 + strb r1, [r0] + ldr r0, [r4] + adds r0, r0, r3 + ldr r1, _080D0DC0 + adds r0, r0, r1 + strb r7, [r0] +_080D0DAA: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D0DB4: .4byte 0x020399A8 +_080D0DB8: .4byte 0x00002204 +_080D0DBC: .4byte 0x0000220E +_080D0DC0: .4byte 0x0000220F + thumb_func_end sub_080D0CAC + + thumb_func_start sub_080D0DC4 +sub_080D0DC4: @ 0x080D0DC4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + mov r8, r1 + mov sb, r2 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #2 + bhi _080D0E4C + movs r0, #0 + str r0, [sp] + ldr r4, _080D0E5C + ldr r1, [r4] + ldr r6, _080D0E60 + adds r1, r1, r6 + ldr r2, _080D0E64 + mov r0, sp + bl CpuFastSet + ldr r1, [r4] + ldr r5, _080D0E68 + adds r1, r1, r5 + mov r0, r8 + bl LZ77UnCompWram + lsls r7, r7, #4 + mov r8, r7 + adds r7, r4, #0 + movs r4, #2 +_080D0E02: + ldr r1, [r7] + adds r0, r1, r5 + adds r1, r1, r6 + movs r2, #0x18 + bl CpuFastSet + adds r6, #0x80 + adds r5, #0x60 + subs r4, #1 + cmp r4, #0 + bge _080D0E02 + ldr r5, _080D0E5C + ldr r1, [r5] + ldr r4, _080D0E60 + adds r0, r1, r4 + ldr r2, _080D0E6C + adds r1, r1, r2 + add r1, r8 + ldr r1, [r1] + movs r2, #0x80 + bl CpuFastSet + ldr r1, [r5] + adds r1, r1, r4 + mov r0, sb + bl LZ77UnCompWram + ldr r0, [r5] + adds r4, r0, r4 + add r0, r8 + ldr r1, _080D0E70 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r4, #0 + movs r2, #0x20 + bl LoadPalette +_080D0E4C: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D0E5C: .4byte 0x020399A8 +_080D0E60: .4byte 0x000042C4 +_080D0E64: .4byte 0x01000080 +_080D0E68: .4byte 0x000022C4 +_080D0E6C: .4byte 0x00002208 +_080D0E70: .4byte 0x0000220C + thumb_func_end sub_080D0DC4 + + thumb_func_start sub_080D0E74 +sub_080D0E74: @ 0x080D0E74 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + cmp r2, #2 + bhi _080D0E96 + ldr r0, _080D0E9C + ldr r0, [r0] + lsls r1, r2, #4 + ldr r2, _080D0EA0 + adds r0, r0, r2 + adds r0, r0, r1 + ldr r0, [r0] + adds r1, r3, #0 + bl StartSpriteAffineAnim +_080D0E96: + pop {r0} + bx r0 + .align 2, 0 +_080D0E9C: .4byte 0x020399A8 +_080D0EA0: .4byte 0x00002204 + thumb_func_end sub_080D0E74 + + thumb_func_start sub_080D0EA4 +sub_080D0EA4: @ 0x080D0EA4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r0, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + cmp r4, #2 + bls _080D0EBC + b _080D0FCE +_080D0EBC: + cmp r0, #7 + bls _080D0EC2 + b _080D0FCE +_080D0EC2: + lsls r0, r0, #2 + ldr r1, _080D0ECC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080D0ECC: .4byte 0x080D0ED0 +_080D0ED0: @ jump table + .4byte _080D0EF0 @ case 0 + .4byte _080D0F14 @ case 1 + .4byte _080D0F38 @ case 2 + .4byte _080D0F64 @ case 3 + .4byte _080D0F90 @ case 4 + .4byte _080D0FCE @ case 5 + .4byte _080D0FCE @ case 6 + .4byte _080D0FBC @ case 7 +_080D0EF0: + ldr r0, _080D0F08 + ldr r0, [r0] + lsls r1, r4, #4 + ldr r2, _080D0F0C + adds r0, r0, r2 + adds r0, r0, r1 + ldr r1, [r0] + strh r4, [r1, #0x2e] + ldr r1, [r0] + ldr r0, _080D0F10 + b _080D0FCC + .align 2, 0 +_080D0F08: .4byte 0x020399A8 +_080D0F0C: .4byte 0x00002204 +_080D0F10: .4byte 0x080D12E9 +_080D0F14: + ldr r0, _080D0F2C + ldr r0, [r0] + lsls r1, r4, #4 + ldr r2, _080D0F30 + adds r0, r0, r2 + adds r0, r0, r1 + ldr r2, [r0] + movs r1, #0 + strh r1, [r2, #0x2e] + ldr r1, [r0] + ldr r0, _080D0F34 + b _080D0FCC + .align 2, 0 +_080D0F2C: .4byte 0x020399A8 +_080D0F30: .4byte 0x00002204 +_080D0F34: .4byte 0x080D1315 +_080D0F38: + ldr r0, _080D0F58 + ldr r0, [r0] + lsls r1, r4, #4 + ldr r2, _080D0F5C + adds r0, r0, r2 + adds r0, r0, r1 + ldr r2, [r0] + movs r1, #0 + strh r1, [r2, #0x2e] + ldr r1, [r0] + strh r5, [r1, #0x3a] + ldr r1, [r0] + strh r3, [r1, #0x3c] + ldr r1, [r0] + ldr r0, _080D0F60 + b _080D0FCC + .align 2, 0 +_080D0F58: .4byte 0x020399A8 +_080D0F5C: .4byte 0x00002204 +_080D0F60: .4byte 0x080D13B5 +_080D0F64: + ldr r0, _080D0F84 + ldr r0, [r0] + lsls r1, r4, #4 + ldr r2, _080D0F88 + adds r0, r0, r2 + adds r0, r0, r1 + ldr r2, [r0] + movs r1, #0 + strh r1, [r2, #0x2e] + ldr r2, [r0] + ldr r1, _080D0F8C + str r1, [r2, #0x1c] + strh r5, [r2, #0x3a] + ldr r0, [r0] + strh r3, [r0, #0x3c] + b _080D0FCE + .align 2, 0 +_080D0F84: .4byte 0x020399A8 +_080D0F88: .4byte 0x00002204 +_080D0F8C: .4byte 0x080D1435 +_080D0F90: + ldr r0, _080D0FB0 + ldr r0, [r0] + lsls r1, r4, #4 + ldr r2, _080D0FB4 + adds r0, r0, r2 + adds r0, r0, r1 + ldr r2, [r0] + movs r1, #0 + strh r1, [r2, #0x2e] + ldr r1, [r0] + strh r5, [r1, #0x3a] + ldr r1, [r0] + strh r3, [r1, #0x3c] + ldr r1, [r0] + ldr r0, _080D0FB8 + b _080D0FCC + .align 2, 0 +_080D0FB0: .4byte 0x020399A8 +_080D0FB4: .4byte 0x00002204 +_080D0FB8: .4byte 0x080D14D1 +_080D0FBC: + ldr r0, _080D0FD4 + ldr r0, [r0] + lsls r1, r4, #4 + ldr r2, _080D0FD8 + adds r0, r0, r2 + adds r0, r0, r1 + ldr r1, [r0] + ldr r0, _080D0FDC +_080D0FCC: + str r0, [r1, #0x1c] +_080D0FCE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D0FD4: .4byte 0x020399A8 +_080D0FD8: .4byte 0x00002204 +_080D0FDC: .4byte 0x080D156D + thumb_func_end sub_080D0EA4 + + thumb_func_start sub_080D0FE0 +sub_080D0FE0: @ 0x080D0FE0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + cmp r2, #2 + bhi _080D1020 + ldr r1, _080D1028 + ldr r0, [r1] + lsls r2, r2, #4 + adds r0, r0, r2 + ldr r3, _080D102C + adds r0, r0, r3 + strb r4, [r0] + ldr r0, [r1] + ldr r1, _080D1030 + adds r0, r0, r1 + adds r0, r0, r2 + ldr r0, [r0] + movs r3, #0 + cmp r4, #0 + bne _080D100E + movs r3, #1 +_080D100E: + adds r2, r0, #0 + adds r2, #0x3e + lsls r3, r3, #2 + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2] +_080D1020: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D1028: .4byte 0x020399A8 +_080D102C: .4byte 0x00002210 +_080D1030: .4byte 0x00002204 + thumb_func_end sub_080D0FE0 + + thumb_func_start GetItemIconPic +GetItemIconPic: @ 0x080D1034 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0 + bl GetItemIconPicOrPalette + pop {r1} + bx r1 + thumb_func_end GetItemIconPic + + thumb_func_start GetItemIconPalette +GetItemIconPalette: @ 0x080D1044 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + bl GetItemIconPicOrPalette + pop {r1} + bx r1 + thumb_func_end GetItemIconPalette + + thumb_func_start Cb_HandleMovingMonFromParty +Cb_HandleMovingMonFromParty: @ 0x080D1054 + push {r4, lr} + sub sp, #0x14 + bl IsActiveItemMoving + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D1074 + ldr r0, _080D106C + ldr r0, [r0] + ldr r1, _080D1070 + b _080D107A + .align 2, 0 +_080D106C: .4byte 0x020399A8 +_080D1070: .4byte 0x00002234 +_080D1074: + ldr r0, _080D10B0 + ldr r0, [r0] + ldr r1, _080D10B4 +_080D107A: + adds r0, r0, r1 + ldrh r0, [r0] + bl ItemId_GetHoldEffect + adds r4, r0, #0 + movs r0, #2 + movs r1, #0x11 + bl FillWindowPixelBuffer + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + movs r0, #1 + str r0, [sp, #0x10] + movs r0, #2 + movs r1, #1 + adds r2, r4, #0 + movs r3, #4 + bl AddTextPrinterParameterized5 + add sp, #0x14 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D10B0: .4byte 0x020399A8 +_080D10B4: .4byte 0x00000CE6 + thumb_func_end Cb_HandleMovingMonFromParty + + thumb_func_start sub_080D10B8 +sub_080D10B8: @ 0x080D10B8 + push {lr} + ldr r0, _080D10E0 + ldr r0, [r0] + ldr r1, _080D10E4 + adds r0, r0, r1 + movs r1, #0x15 + strh r1, [r0] + ldr r1, _080D10E8 + movs r3, #0x9d + lsls r3, r3, #1 + movs r0, #0 + movs r2, #0x80 + bl LoadBgTiles + movs r0, #0 + bl sub_080D1254 + pop {r0} + bx r0 + .align 2, 0 +_080D10E0: .4byte 0x020399A8 +_080D10E4: .4byte 0x00002236 +_080D10E8: .4byte 0x08556620 + thumb_func_end sub_080D10B8 + + thumb_func_start sub_080D10EC +sub_080D10EC: @ 0x080D10EC + push {r4, r5, lr} + sub sp, #0x10 + ldr r0, _080D1104 + ldr r0, [r0] + ldr r2, _080D1108 + adds r1, r0, r2 + ldrh r0, [r1] + cmp r0, #0 + bne _080D110C + movs r0, #0 + b _080D1172 + .align 2, 0 +_080D1104: .4byte 0x020399A8 +_080D1108: .4byte 0x00002236 +_080D110C: + subs r0, #1 + strh r0, [r1] + ldrh r1, [r1] + movs r0, #0x15 + subs r5, r0, r1 + movs r4, #0 + cmp r4, r5 + bge _080D115C +_080D111C: + movs r0, #0 + movs r1, #0xa + bl GetBgAttribute + adds r1, r0, #0 + ldr r0, _080D117C + ldr r0, [r0] + ldr r2, _080D1180 + adds r0, r0, r2 + adds r1, #0x14 + ldrh r0, [r0] + adds r1, r1, r0 + adds r1, r1, r4 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r4, #0x18 + lsrs r2, r2, #0x18 + movs r0, #1 + str r0, [sp] + movs r0, #7 + str r0, [sp, #4] + movs r0, #0xf + str r0, [sp, #8] + movs r0, #0x15 + str r0, [sp, #0xc] + movs r0, #0 + movs r3, #0xd + bl WriteSequenceToBgTilemapBuffer + adds r4, #1 + cmp r4, r5 + blt _080D111C +_080D115C: + adds r0, r5, #0 + bl sub_080D1254 + ldr r0, _080D117C + ldr r0, [r0] + ldr r1, _080D1180 + adds r0, r0, r1 + ldrh r1, [r0] + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f +_080D1172: + add sp, #0x10 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080D117C: .4byte 0x020399A8 +_080D1180: .4byte 0x00002236 + thumb_func_end sub_080D10EC + + thumb_func_start sub_080D1184 +sub_080D1184: @ 0x080D1184 + push {r4, r5, lr} + sub sp, #0x10 + ldr r5, _080D119C + ldr r0, [r5] + ldr r4, _080D11A0 + adds r0, r0, r4 + ldrh r0, [r0] + cmp r0, #0x16 + bne _080D11A4 + movs r0, #0 + b _080D1244 + .align 2, 0 +_080D119C: .4byte 0x020399A8 +_080D11A0: .4byte 0x00002236 +_080D11A4: + cmp r0, #0 + bne _080D11C0 + movs r0, #1 + str r0, [sp] + movs r0, #9 + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #0x15 + movs r3, #0xc + bl FillBgTilemapBufferRect +_080D11C0: + ldr r1, [r5] + adds r1, r1, r4 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + ldrh r1, [r1] + movs r0, #0x15 + subs r5, r0, r1 + movs r4, #0 + cmp r4, r5 + bge _080D1216 +_080D11D6: + movs r0, #0 + movs r1, #0xa + bl GetBgAttribute + adds r1, r0, #0 + ldr r0, _080D124C + ldr r0, [r0] + ldr r2, _080D1250 + adds r0, r0, r2 + adds r1, #0x14 + ldrh r0, [r0] + adds r1, r1, r0 + adds r1, r1, r4 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r4, #0x18 + lsrs r2, r2, #0x18 + movs r0, #1 + str r0, [sp] + movs r0, #7 + str r0, [sp, #4] + movs r0, #0xf + str r0, [sp, #8] + movs r0, #0x15 + str r0, [sp, #0xc] + movs r0, #0 + movs r3, #0xd + bl WriteSequenceToBgTilemapBuffer + adds r4, #1 + cmp r4, r5 + blt _080D11D6 +_080D1216: + cmp r5, #0 + blt _080D1220 + adds r0, r5, #0 + bl sub_080D1254 +_080D1220: + adds r2, r5, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r0, #1 + str r0, [sp] + movs r0, #9 + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r3, #0xc + bl FillBgTilemapBufferRect + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #1 +_080D1244: + add sp, #0x10 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080D124C: .4byte 0x020399A8 +_080D1250: .4byte 0x00002236 + thumb_func_end sub_080D1184 + + thumb_func_start sub_080D1254 +sub_080D1254: @ 0x080D1254 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + adds r7, r0, #0 + cmp r7, #0 + beq _080D128C + movs r1, #0x9d + lsls r1, r1, #1 + lsls r4, r7, #0x18 + lsrs r4, r4, #0x18 + str r4, [sp] + movs r6, #1 + str r6, [sp, #4] + movs r5, #0xf + str r5, [sp, #8] + movs r0, #0 + movs r2, #0 + movs r3, #0xc + bl FillBgTilemapBufferRect + ldr r1, _080D12DC + str r4, [sp] + str r6, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r2, #0 + movs r3, #0x14 + bl FillBgTilemapBufferRect +_080D128C: + ldr r1, _080D12E0 + lsls r5, r7, #0x18 + lsrs r5, r5, #0x18 + movs r4, #1 + str r4, [sp] + movs r0, #7 + str r0, [sp, #4] + movs r6, #0xf + str r6, [sp, #8] + movs r0, #0 + adds r2, r5, #0 + movs r3, #0xd + bl FillBgTilemapBufferRect + movs r1, #0x9e + lsls r1, r1, #1 + str r4, [sp] + str r4, [sp, #4] + str r6, [sp, #8] + movs r0, #0 + adds r2, r5, #0 + movs r3, #0xc + bl FillBgTilemapBufferRect + ldr r1, _080D12E4 + str r4, [sp] + str r4, [sp, #4] + str r6, [sp, #8] + movs r0, #0 + adds r2, r5, #0 + movs r3, #0x14 + bl FillBgTilemapBufferRect + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D12DC: .4byte 0x0000093A +_080D12E0: .4byte 0x0000013B +_080D12E4: .4byte 0x0000013D + thumb_func_end sub_080D1254 + + thumb_func_start sub_080D12E8 +sub_080D12E8: @ 0x080D12E8 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080D1308 + ldrh r0, [r4, #0x2e] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl sub_080D0FE0 + ldr r0, _080D1310 + str r0, [r4, #0x1c] +_080D1308: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D1310: .4byte 0x08007141 + thumb_func_end sub_080D12E8 + + thumb_func_start sub_080D1314 +sub_080D1314: @ 0x080D1314 + push {lr} + adds r3, r0, #0 + movs r0, #0x2e + ldrsh r1, [r3, r0] + cmp r1, #0 + beq _080D1326 + cmp r1, #1 + beq _080D1342 + b _080D1370 +_080D1326: + ldrh r0, [r3, #0x20] + lsls r0, r0, #4 + strh r0, [r3, #0x30] + ldrh r0, [r3, #0x22] + lsls r0, r0, #4 + strh r0, [r3, #0x32] + movs r0, #0xa + strh r0, [r3, #0x34] + movs r0, #0x15 + strh r0, [r3, #0x36] + strh r1, [r3, #0x38] + ldrh r0, [r3, #0x2e] + adds r0, #1 + strh r0, [r3, #0x2e] +_080D1342: + ldrh r1, [r3, #0x30] + ldrh r0, [r3, #0x34] + subs r1, r1, r0 + strh r1, [r3, #0x30] + ldrh r0, [r3, #0x32] + ldrh r2, [r3, #0x36] + subs r0, r0, r2 + strh r0, [r3, #0x32] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + strh r1, [r3, #0x20] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + strh r0, [r3, #0x22] + ldrh r0, [r3, #0x38] + adds r0, #1 + strh r0, [r3, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xb + ble _080D1370 + ldr r0, _080D1374 + str r0, [r3, #0x1c] +_080D1370: + pop {r0} + bx r0 + .align 2, 0 +_080D1374: .4byte 0x080D1379 + thumb_func_end sub_080D1314 + + thumb_func_start sub_080D1378 +sub_080D1378: @ 0x080D1378 + ldr r1, _080D13AC + ldr r3, [r1] + ldr r1, _080D13B0 + adds r3, r3, r1 + ldr r1, [r3] + ldrh r1, [r1, #0x20] + adds r1, #4 + strh r1, [r0, #0x20] + ldr r2, [r3] + ldrh r1, [r2, #0x26] + ldrh r2, [r2, #0x22] + adds r1, r1, r2 + adds r1, #8 + strh r1, [r0, #0x22] + ldr r1, [r3] + ldrb r1, [r1, #5] + movs r2, #0xc + ands r2, r1 + ldrb r3, [r0, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r2 + strb r1, [r0, #5] + bx lr + .align 2, 0 +_080D13AC: .4byte 0x020399A8 +_080D13B0: .4byte 0x00000CB4 + thumb_func_end sub_080D1378 + + thumb_func_start sub_080D13B4 +sub_080D13B4: @ 0x080D13B4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + cmp r1, #0 + beq _080D13C6 + cmp r1, #1 + beq _080D13E2 + b _080D142A +_080D13C6: + ldrh r0, [r4, #0x20] + lsls r0, r0, #4 + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x22] + lsls r0, r0, #4 + strh r0, [r4, #0x32] + movs r0, #0xa + strh r0, [r4, #0x34] + movs r0, #0x15 + strh r0, [r4, #0x36] + strh r1, [r4, #0x38] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] +_080D13E2: + ldrh r0, [r4, #0x34] + ldrh r1, [r4, #0x30] + adds r0, r0, r1 + strh r0, [r4, #0x30] + ldrh r1, [r4, #0x36] + ldrh r2, [r4, #0x32] + adds r1, r1, r2 + strh r1, [r4, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + strh r0, [r4, #0x20] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + strh r1, [r4, #0x22] + ldrh r0, [r4, #0x38] + adds r0, #1 + strh r0, [r4, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xb + ble _080D142A + adds r0, r4, #0 + bl sub_080D0C64 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #0x3a] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrh r2, [r4, #0x3c] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + bl sub_080D0CAC + ldr r0, _080D1430 + str r0, [r4, #0x1c] +_080D142A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D1430: .4byte 0x08007141 + thumb_func_end sub_080D13B4 + + thumb_func_start sub_080D1434 +sub_080D1434: @ 0x080D1434 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + cmp r1, #0 + beq _080D1446 + cmp r1, #1 + beq _080D1462 + b _080D14C0 +_080D1446: + ldrh r0, [r4, #0x20] + lsls r0, r0, #4 + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x22] + lsls r0, r0, #4 + strh r0, [r4, #0x32] + movs r0, #0xa + strh r0, [r4, #0x34] + movs r0, #0x15 + strh r0, [r4, #0x36] + strh r1, [r4, #0x38] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] +_080D1462: + ldrh r1, [r4, #0x30] + ldrh r0, [r4, #0x34] + subs r1, r1, r0 + strh r1, [r4, #0x30] + ldrh r0, [r4, #0x32] + ldrh r2, [r4, #0x36] + subs r0, r0, r2 + strh r0, [r4, #0x32] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + strh r1, [r4, #0x20] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + strh r0, [r4, #0x22] + ldr r1, _080D14C8 + movs r2, #0x38 + ldrsh r0, [r4, r2] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x38] + adds r0, #1 + strh r0, [r4, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xb + ble _080D14C0 + adds r0, r4, #0 + bl sub_080D0C64 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #0x3a] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrh r2, [r4, #0x3c] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + bl sub_080D0CAC + movs r0, #0 + strh r0, [r4, #0x24] + ldr r0, _080D14CC + str r0, [r4, #0x1c] +_080D14C0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D14C8: .4byte 0x082FA8CC +_080D14CC: .4byte 0x080D1379 + thumb_func_end sub_080D1434 + + thumb_func_start sub_080D14D0 +sub_080D14D0: @ 0x080D14D0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + cmp r1, #0 + beq _080D14E2 + cmp r1, #1 + beq _080D14FE + b _080D155E +_080D14E2: + ldrh r0, [r4, #0x20] + lsls r0, r0, #4 + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x22] + lsls r0, r0, #4 + strh r0, [r4, #0x32] + movs r0, #0xa + strh r0, [r4, #0x34] + movs r0, #0x15 + strh r0, [r4, #0x36] + strh r1, [r4, #0x38] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] +_080D14FE: + ldrh r0, [r4, #0x34] + ldrh r1, [r4, #0x30] + adds r0, r0, r1 + strh r0, [r4, #0x30] + ldrh r1, [r4, #0x36] + ldrh r2, [r4, #0x32] + adds r1, r1, r2 + strh r1, [r4, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + strh r0, [r4, #0x20] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + strh r1, [r4, #0x22] + ldr r1, _080D1564 + movs r2, #0x38 + ldrsh r0, [r4, r2] + lsls r0, r0, #4 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + rsbs r0, r0, #0 + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x38] + adds r0, #1 + strh r0, [r4, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xb + ble _080D155E + adds r0, r4, #0 + bl sub_080D0C64 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #0x3a] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrh r2, [r4, #0x3c] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + bl sub_080D0CAC + ldr r0, _080D1568 + str r0, [r4, #0x1c] + movs r0, #0 + strh r0, [r4, #0x24] +_080D155E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D1564: .4byte 0x082FA8CC +_080D1568: .4byte 0x08007141 + thumb_func_end sub_080D14D0 + + thumb_func_start sub_080D156C +sub_080D156C: @ 0x080D156C + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x22] + subs r0, #8 + strh r0, [r2, #0x22] + movs r1, #0x22 + ldrsh r0, [r2, r1] + movs r3, #0x26 + ldrsh r1, [r2, r3] + adds r0, r0, r1 + movs r1, #0x10 + rsbs r1, r1, #0 + cmp r0, r1 + bge _080D159C + ldr r0, _080D15A0 + str r0, [r2, #0x1c] + adds r0, r2, #0 + bl sub_080D0C64 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl sub_080D0FE0 +_080D159C: + pop {r0} + bx r0 + .align 2, 0 +_080D15A0: .4byte 0x08007141 + thumb_func_end sub_080D156C + + thumb_func_start nullsub_98 +nullsub_98: @ 0x080D15A4 + bx lr + .align 2, 0 + thumb_func_end nullsub_98 + + thumb_func_start nullsub_pss +nullsub_pss: @ 0x080D15A8 + bx lr + .align 2, 0 + thumb_func_end nullsub_pss + + thumb_func_start StorageGetCurrentBox +StorageGetCurrentBox: @ 0x080D15AC + ldr r0, _080D15B4 + ldr r0, [r0] + ldrb r0, [r0] + bx lr + .align 2, 0 +_080D15B4: .4byte 0x03005AF4 + thumb_func_end StorageGetCurrentBox + + thumb_func_start SetCurrentBox +SetCurrentBox: @ 0x080D15B8 + push {lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xd + bhi _080D15C8 + ldr r0, _080D15CC + ldr r0, [r0] + strb r1, [r0] +_080D15C8: + pop {r0} + bx r0 + .align 2, 0 +_080D15CC: .4byte 0x03005AF4 + thumb_func_end SetCurrentBox + + thumb_func_start GetBoxMonDataAt +GetBoxMonDataAt: @ 0x080D15D0 + push {r4, r5, lr} + adds r5, r2, #0 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + cmp r3, #0xd + bhi _080D160C + cmp r4, #0x1d + bhi _080D160C + ldr r2, _080D1608 + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r1, r1, #5 + adds r1, #4 + ldr r0, [r2] + adds r0, r0, r1 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #4 + adds r0, r0, r1 + adds r1, r5, #0 + bl GetBoxMonData + b _080D160E + .align 2, 0 +_080D1608: .4byte 0x03005AF4 +_080D160C: + movs r0, #0 +_080D160E: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end GetBoxMonDataAt + + thumb_func_start SetBoxMonDataAt +SetBoxMonDataAt: @ 0x080D1614 + push {r4, r5, r6, lr} + adds r5, r2, #0 + adds r6, r3, #0 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + cmp r3, #0xd + bhi _080D164C + cmp r4, #0x1d + bhi _080D164C + ldr r2, _080D1654 + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r1, r1, #5 + adds r1, #4 + ldr r0, [r2] + adds r0, r0, r1 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #4 + adds r0, r0, r1 + adds r1, r5, #0 + adds r2, r6, #0 + bl SetBoxMonData +_080D164C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080D1654: .4byte 0x03005AF4 + thumb_func_end SetBoxMonDataAt + + thumb_func_start GetCurrentBoxMonData +GetCurrentBoxMonData: @ 0x080D1658 + push {lr} + adds r3, r0, #0 + adds r2, r1, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r0, _080D1674 + ldr r0, [r0] + ldrb r0, [r0] + adds r1, r3, #0 + bl GetBoxMonDataAt + pop {r1} + bx r1 + .align 2, 0 +_080D1674: .4byte 0x03005AF4 + thumb_func_end GetCurrentBoxMonData + + thumb_func_start SetCurrentBoxMonData +SetCurrentBoxMonData: @ 0x080D1678 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r3, r2, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _080D1698 + ldr r0, [r0] + ldrb r0, [r0] + adds r1, r4, #0 + adds r2, r5, #0 + bl SetBoxMonDataAt + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D1698: .4byte 0x03005AF4 + thumb_func_end SetCurrentBoxMonData + + thumb_func_start GetBoxMonNickAt +GetBoxMonNickAt: @ 0x080D169C + push {r4, r5, lr} + adds r5, r2, #0 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + cmp r3, #0xd + bhi _080D16D8 + cmp r4, #0x1d + bhi _080D16D8 + ldr r2, _080D16D4 + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r1, r1, #5 + adds r1, #4 + ldr r0, [r2] + adds r0, r0, r1 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #4 + adds r0, r0, r1 + movs r1, #2 + adds r2, r5, #0 + bl GetBoxMonData + b _080D16DC + .align 2, 0 +_080D16D4: .4byte 0x03005AF4 +_080D16D8: + movs r0, #0xff + strb r0, [r5] +_080D16DC: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end GetBoxMonNickAt + + thumb_func_start GetBoxMonLevelAt +GetBoxMonLevelAt: @ 0x080D16E4 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r2, r1, #0x18 + cmp r0, #0xd + bhi _080D1724 + cmp r2, #0x1d + bhi _080D1724 + ldr r6, _080D172C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #5 + adds r5, r0, #4 + ldr r0, [r6] + adds r0, r0, r5 + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r4, r1, #4 + adds r0, r0, r4 + movs r1, #5 + bl GetBoxMonData + cmp r0, #0 + beq _080D1724 + ldr r0, [r6] + adds r0, r0, r5 + adds r0, r0, r4 + bl GetLevelFromBoxMonExp +_080D1724: + movs r0, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080D172C: .4byte 0x03005AF4 + thumb_func_end GetBoxMonLevelAt + + thumb_func_start SetBoxMonNickAt +SetBoxMonNickAt: @ 0x080D1730 + push {r4, r5, lr} + adds r5, r2, #0 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + cmp r3, #0xd + bhi _080D1766 + cmp r4, #0x1d + bhi _080D1766 + ldr r2, _080D176C + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r1, r1, #5 + adds r1, #4 + ldr r0, [r2] + adds r0, r0, r1 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #4 + adds r0, r0, r1 + movs r1, #2 + adds r2, r5, #0 + bl SetBoxMonData +_080D1766: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D176C: .4byte 0x03005AF4 + thumb_func_end SetBoxMonNickAt + + thumb_func_start GetAndCopyBoxMonDataAt +GetAndCopyBoxMonDataAt: @ 0x080D1770 + push {r4, r5, r6, lr} + adds r5, r2, #0 + adds r6, r3, #0 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + cmp r3, #0xd + bhi _080D17B0 + cmp r4, #0x1d + bhi _080D17B0 + ldr r2, _080D17AC + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r1, r1, #5 + adds r1, #4 + ldr r0, [r2] + adds r0, r0, r1 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #4 + adds r0, r0, r1 + adds r1, r5, #0 + adds r2, r6, #0 + bl GetBoxMonData + b _080D17B2 + .align 2, 0 +_080D17AC: .4byte 0x03005AF4 +_080D17B0: + movs r0, #0 +_080D17B2: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end GetAndCopyBoxMonDataAt + + thumb_func_start SetBoxMonAt +SetBoxMonAt: @ 0x080D17B8 + push {r4, r5, lr} + adds r5, r2, #0 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r4, #0xd + bhi _080D17EE + cmp r1, #0x1d + bhi _080D17EE + ldr r0, _080D17F4 + ldr r0, [r0] + lsls r3, r1, #2 + adds r3, r3, r1 + lsls r3, r3, #4 + lsls r2, r4, #2 + adds r2, r2, r4 + lsls r1, r2, #4 + subs r1, r1, r2 + lsls r1, r1, #5 + adds r3, r3, r1 + adds r0, r0, r3 + adds r0, #4 + adds r1, r5, #0 + movs r2, #0x50 + bl memcpy +_080D17EE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D17F4: .4byte 0x03005AF4 + thumb_func_end SetBoxMonAt + + thumb_func_start CopyBoxMonAt +CopyBoxMonAt: @ 0x080D17F8 + push {r4, r5, lr} + adds r5, r2, #0 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r2, r1, #0x18 + cmp r4, #0xd + bhi _080D182E + cmp r2, #0x1d + bhi _080D182E + ldr r0, _080D1834 + ldr r1, [r0] + lsls r3, r2, #2 + adds r3, r3, r2 + lsls r3, r3, #4 + lsls r2, r4, #2 + adds r2, r2, r4 + lsls r0, r2, #4 + subs r0, r0, r2 + lsls r0, r0, #5 + adds r3, r3, r0 + adds r1, r1, r3 + adds r1, #4 + adds r0, r5, #0 + movs r2, #0x50 + bl memcpy +_080D182E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D1834: .4byte 0x03005AF4 + thumb_func_end CopyBoxMonAt + + thumb_func_start CreateBoxMonAt +CreateBoxMonAt: @ 0x080D1838 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x14 + ldr r4, [sp, #0x30] + ldr r5, [sp, #0x34] + ldr r6, [sp, #0x3c] + mov ip, r6 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + mov sb, r2 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r8, r3 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + mov r0, ip + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r7, #0xd + bhi _080D18A4 + cmp r6, #0x1d + bhi _080D18A4 + ldr r2, _080D18B4 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r1, r1, #5 + adds r1, #4 + ldr r0, [r2] + adds r0, r0, r1 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #4 + adds r0, r0, r1 + str r5, [sp] + ldr r1, [sp, #0x38] + str r1, [sp, #4] + str r3, [sp, #8] + ldr r1, [sp, #0x40] + str r1, [sp, #0xc] + mov r1, sb + mov r2, r8 + adds r3, r4, #0 + bl CreateBoxMon +_080D18A4: + add sp, #0x14 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D18B4: .4byte 0x03005AF4 + thumb_func_end CreateBoxMonAt + + thumb_func_start ZeroBoxMonAt +ZeroBoxMonAt: @ 0x080D18B8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + cmp r3, #0xd + bhi _080D18E8 + cmp r4, #0x1d + bhi _080D18E8 + ldr r2, _080D18F0 + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r1, r1, #5 + adds r1, #4 + ldr r0, [r2] + adds r0, r0, r1 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #4 + adds r0, r0, r1 + bl ZeroBoxMonData +_080D18E8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D18F0: .4byte 0x03005AF4 + thumb_func_end ZeroBoxMonAt + + thumb_func_start BoxMonAtToMon +BoxMonAtToMon: @ 0x080D18F4 + push {r4, r5, lr} + adds r5, r2, #0 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + cmp r3, #0xd + bhi _080D1928 + cmp r4, #0x1d + bhi _080D1928 + ldr r2, _080D1930 + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r1, r1, #5 + adds r1, #4 + ldr r0, [r2] + adds r0, r0, r1 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #4 + adds r0, r0, r1 + adds r1, r5, #0 + bl BoxMonToMon +_080D1928: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D1930: .4byte 0x03005AF4 + thumb_func_end BoxMonAtToMon + + thumb_func_start GetBoxedMonPtr +GetBoxedMonPtr: @ 0x080D1934 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + cmp r3, #0xd + bhi _080D1968 + cmp r4, #0x1d + bhi _080D1968 + ldr r2, _080D1964 + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r1, r1, #5 + adds r1, #4 + ldr r0, [r2] + adds r0, r0, r1 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #4 + adds r0, r0, r1 + b _080D196A + .align 2, 0 +_080D1964: .4byte 0x03005AF4 +_080D1968: + movs r0, #0 +_080D196A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetBoxedMonPtr + + thumb_func_start GetBoxNamePtr +GetBoxNamePtr: @ 0x080D1970 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xd + bls _080D197E + movs r0, #0 + b _080D198C +_080D197E: + ldr r0, _080D1990 + lsls r1, r2, #3 + adds r1, r1, r2 + ldr r2, _080D1994 + adds r1, r1, r2 + ldr r0, [r0] + adds r0, r0, r1 +_080D198C: + pop {r1} + bx r1 + .align 2, 0 +_080D1990: .4byte 0x03005AF4 +_080D1994: .4byte 0x00008344 + thumb_func_end GetBoxNamePtr + + thumb_func_start GetBoxWallpaper +GetBoxWallpaper: @ 0x080D1998 + push {lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xd + bls _080D19A6 + movs r0, #0 + b _080D19B2 +_080D19A6: + ldr r0, _080D19B8 + ldr r0, [r0] + ldr r2, _080D19BC + adds r0, r0, r2 + adds r0, r0, r1 + ldrb r0, [r0] +_080D19B2: + pop {r1} + bx r1 + .align 2, 0 +_080D19B8: .4byte 0x03005AF4 +_080D19BC: .4byte 0x000083C2 + thumb_func_end GetBoxWallpaper + + thumb_func_start SetBoxWallpaper +SetBoxWallpaper: @ 0x080D19C0 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r2, #0xd + bhi _080D19DE + cmp r1, #0x10 + bhi _080D19DE + ldr r0, _080D19E4 + ldr r0, [r0] + ldr r3, _080D19E8 + adds r0, r0, r3 + adds r0, r0, r2 + strb r1, [r0] +_080D19DE: + pop {r0} + bx r0 + .align 2, 0 +_080D19E4: .4byte 0x03005AF4 +_080D19E8: .4byte 0x000083C2 + thumb_func_end SetBoxWallpaper + + thumb_func_start sub_080D19EC +sub_080D19EC: @ 0x080D19EC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + lsls r1, r1, #0x18 + lsrs r0, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r4, r3, #0 + ldr r2, _080D1A50 + cmp r3, #1 + bhi _080D1A0E + movs r2, #1 + cmp r3, #1 + beq _080D1A12 +_080D1A0E: + cmp r4, #3 + bne _080D1A5C +_080D1A12: + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r2, r2, #0x10 + asrs r1, r2, #0x10 + adds r1, r1, r0 + lsls r0, r1, #0x10 + asrs r1, r0, #0x10 + adds r6, r2, #0 + cmp r1, #0 + blt _080D1AA8 + cmp r1, r7 + bgt _080D1AA8 +_080D1A2A: + asrs r4, r0, #0x10 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #4 + add r0, r8 + movs r1, #0xb + bl GetBoxMonData + cmp r0, #0 + bne _080D1A54 + asrs r0, r6, #0x10 + adds r0, r4, r0 + lsls r0, r0, #0x10 + asrs r2, r0, #0x10 + cmp r2, #0 + blt _080D1AA8 + cmp r2, r7 + ble _080D1A2A + b _080D1AA8 + .align 2, 0 +_080D1A50: .4byte 0x0000FFFF +_080D1A54: + adds r0, r4, #0 + b _080D1AAC +_080D1A58: + adds r0, r5, #0 + b _080D1AAC +_080D1A5C: + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r2, r2, #0x10 + asrs r1, r2, #0x10 + adds r1, r1, r0 + lsls r0, r1, #0x10 + asrs r1, r0, #0x10 + adds r6, r2, #0 + cmp r1, #0 + blt _080D1AA8 + cmp r1, r7 + bgt _080D1AA8 +_080D1A74: + asrs r5, r0, #0x10 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #4 + mov r1, r8 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetBoxMonData + cmp r0, #0 + beq _080D1A98 + adds r0, r4, #0 + movs r1, #0x2d + bl GetBoxMonData + cmp r0, #0 + beq _080D1A58 +_080D1A98: + asrs r0, r6, #0x10 + adds r0, r5, r0 + lsls r0, r0, #0x10 + asrs r2, r0, #0x10 + cmp r2, #0 + blt _080D1AA8 + cmp r2, r7 + ble _080D1A74 +_080D1AA8: + movs r0, #1 + rsbs r0, r0, #0 +_080D1AAC: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080D19EC + + thumb_func_start CheckFreePokemonStorageSpace +CheckFreePokemonStorageSpace: @ 0x080D1AB8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + movs r2, #0 + ldr r0, _080D1AE8 + mov r8, r0 + movs r7, #4 +_080D1AC8: + movs r5, #0 + adds r6, r7, #0 + movs r4, #0 +_080D1ACE: + mov r1, r8 + ldr r0, [r1] + adds r0, r0, r6 + adds r0, r0, r4 + movs r1, #5 + str r2, [sp] + bl GetBoxMonData + ldr r2, [sp] + cmp r0, #0 + bne _080D1AEC + movs r0, #1 + b _080D1B02 + .align 2, 0 +_080D1AE8: .4byte 0x03005AF4 +_080D1AEC: + adds r4, #0x50 + adds r5, #1 + cmp r5, #0x1d + ble _080D1ACE + movs r0, #0x96 + lsls r0, r0, #4 + adds r7, r7, r0 + adds r2, #1 + cmp r2, #0xd + ble _080D1AC8 + movs r0, #0 +_080D1B02: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CheckFreePokemonStorageSpace + + thumb_func_start CheckBoxMonSanityAt +CheckBoxMonSanityAt: @ 0x080D1B10 + push {r4, r5, r6, lr} + adds r2, r1, #0 + cmp r0, #0xd + bhi _080D1B68 + cmp r2, #0x1d + bhi _080D1B68 + ldr r6, _080D1B64 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #5 + adds r5, r0, #4 + ldr r0, [r6] + adds r0, r0, r5 + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r4, r1, #4 + adds r0, r0, r4 + movs r1, #5 + bl GetBoxMonData + cmp r0, #0 + beq _080D1B68 + ldr r0, [r6] + adds r0, r0, r5 + adds r0, r0, r4 + movs r1, #6 + bl GetBoxMonData + cmp r0, #0 + bne _080D1B68 + ldr r0, [r6] + adds r0, r0, r5 + adds r0, r0, r4 + movs r1, #4 + bl GetBoxMonData + cmp r0, #0 + bne _080D1B68 + movs r0, #1 + b _080D1B6A + .align 2, 0 +_080D1B64: .4byte 0x03005AF4 +_080D1B68: + movs r0, #0 +_080D1B6A: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end CheckBoxMonSanityAt + + thumb_func_start CountStorageNonEggMons +CountStorageNonEggMons: @ 0x080D1B70 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + movs r7, #0 + movs r0, #0 + ldr r1, _080D1BD8 + mov sb, r1 +_080D1B80: + lsls r1, r0, #2 + adds r2, r0, #1 + mov r8, r2 + adds r1, r1, r0 + movs r5, #0 + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #5 + adds r4, r0, #4 + movs r6, #0x1d +_080D1B94: + mov r1, sb + ldr r0, [r1] + adds r0, r0, r4 + adds r0, r0, r5 + movs r1, #5 + bl GetBoxMonData + cmp r0, #0 + beq _080D1BBA + mov r2, sb + ldr r0, [r2] + adds r0, r0, r4 + adds r0, r0, r5 + movs r1, #6 + bl GetBoxMonData + cmp r0, #0 + bne _080D1BBA + adds r7, #1 +_080D1BBA: + adds r5, #0x50 + subs r6, #1 + cmp r6, #0 + bge _080D1B94 + mov r0, r8 + cmp r0, #0xd + ble _080D1B80 + adds r0, r7, #0 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080D1BD8: .4byte 0x03005AF4 + thumb_func_end CountStorageNonEggMons + + thumb_func_start CountAllStorageMons +CountAllStorageMons: @ 0x080D1BDC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + movs r7, #0 + movs r0, #0 + ldr r1, _080D1C44 + mov sb, r1 +_080D1BEC: + lsls r1, r0, #2 + adds r2, r0, #1 + mov r8, r2 + adds r1, r1, r0 + movs r5, #0 + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #5 + adds r4, r0, #4 + movs r6, #0x1d +_080D1C00: + mov r1, sb + ldr r0, [r1] + adds r0, r0, r4 + adds r0, r0, r5 + movs r1, #5 + bl GetBoxMonData + cmp r0, #0 + bne _080D1C24 + mov r2, sb + ldr r0, [r2] + adds r0, r0, r4 + adds r0, r0, r5 + movs r1, #6 + bl GetBoxMonData + cmp r0, #0 + beq _080D1C26 +_080D1C24: + adds r7, #1 +_080D1C26: + adds r5, #0x50 + subs r6, #1 + cmp r6, #0 + bge _080D1C00 + mov r0, r8 + cmp r0, #0xd + ble _080D1BEC + adds r0, r7, #0 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080D1C44: .4byte 0x03005AF4 + thumb_func_end CountAllStorageMons + + thumb_func_start AnyStorageMonWithMove +AnyStorageMonWithMove: @ 0x080D1C48 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + mov r1, sp + strh r0, [r1] + ldr r0, _080D1C9C + strh r0, [r1, #2] + movs r0, #0 + mov r8, r0 + ldr r7, _080D1CA0 + movs r5, #4 +_080D1C60: + movs r6, #0 + movs r4, #0 +_080D1C64: + ldr r0, [r7] + adds r0, r0, r5 + adds r0, r0, r4 + movs r1, #5 + bl GetBoxMonData + cmp r0, #0 + beq _080D1CA4 + ldr r0, [r7] + adds r0, r0, r5 + adds r0, r0, r4 + movs r1, #6 + bl GetBoxMonData + cmp r0, #0 + bne _080D1CA4 + ldr r0, [r7] + adds r0, r0, r5 + adds r0, r0, r4 + movs r1, #0x51 + mov r2, sp + bl GetBoxMonData + cmp r0, #0 + beq _080D1CA4 + movs r0, #1 + b _080D1CBE + .align 2, 0 +_080D1C9C: .4byte 0x00000163 +_080D1CA0: .4byte 0x03005AF4 +_080D1CA4: + adds r4, #0x50 + adds r6, #1 + cmp r6, #0x1d + ble _080D1C64 + movs r0, #0x96 + lsls r0, r0, #4 + adds r5, r5, r0 + movs r0, #1 + add r8, r0 + mov r0, r8 + cmp r0, #0xd + ble _080D1C60 + movs r0, #0 +_080D1CBE: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end AnyStorageMonWithMove + + thumb_func_start ResetWaldaWallpaper +ResetWaldaWallpaper: @ 0x080D1CCC + ldr r2, _080D1D04 + ldr r0, [r2] + ldr r1, _080D1D08 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + ldr r0, [r2] + ldr r3, _080D1D0C + adds r0, r0, r3 + strb r1, [r0] + ldr r0, [r2] + adds r3, #1 + adds r0, r0, r3 + strb r1, [r0] + ldr r1, [r2] + ldr r0, _080D1D10 + adds r2, r1, r0 + ldr r0, _080D1D14 + strh r0, [r2] + subs r3, #0x14 + adds r2, r1, r3 + ldr r0, _080D1D18 + strh r0, [r2] + ldr r0, _080D1D1C + adds r1, r1, r0 + movs r0, #0xff + strb r0, [r1] + bx lr + .align 2, 0 +_080D1D04: .4byte 0x03005AEC +_080D1D08: .4byte 0x00003D84 +_080D1D0C: .4byte 0x00003D85 +_080D1D10: .4byte 0x00003D70 +_080D1D14: .4byte 0x00007B35 +_080D1D18: .4byte 0x00006186 +_080D1D1C: .4byte 0x00003D74 + thumb_func_end ResetWaldaWallpaper + + thumb_func_start SetWaldaWallpaperLockedOrUnlocked +SetWaldaWallpaperLockedOrUnlocked: @ 0x080D1D20 + ldr r1, _080D1D2C + ldr r1, [r1] + ldr r2, _080D1D30 + adds r1, r1, r2 + strb r0, [r1] + bx lr + .align 2, 0 +_080D1D2C: .4byte 0x03005AEC +_080D1D30: .4byte 0x00003D86 + thumb_func_end SetWaldaWallpaperLockedOrUnlocked + + thumb_func_start IsWaldaWallpaperUnlocked +IsWaldaWallpaperUnlocked: @ 0x080D1D34 + ldr r0, _080D1D40 + ldr r0, [r0] + ldr r1, _080D1D44 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_080D1D40: .4byte 0x03005AEC +_080D1D44: .4byte 0x00003D86 + thumb_func_end IsWaldaWallpaperUnlocked + + thumb_func_start sub_080D1D48 +sub_080D1D48: @ 0x080D1D48 + ldr r0, _080D1D54 + ldr r0, [r0] + ldr r1, _080D1D58 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_080D1D54: .4byte 0x03005AEC +_080D1D58: .4byte 0x00003D85 + thumb_func_end sub_080D1D48 + + thumb_func_start SetWaldaWallpaperPatternId +SetWaldaWallpaperPatternId: @ 0x080D1D5C + push {lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xf + bhi _080D1D70 + ldr r0, _080D1D74 + ldr r0, [r0] + ldr r2, _080D1D78 + adds r0, r0, r2 + strb r1, [r0] +_080D1D70: + pop {r0} + bx r0 + .align 2, 0 +_080D1D74: .4byte 0x03005AEC +_080D1D78: .4byte 0x00003D85 + thumb_func_end SetWaldaWallpaperPatternId + + thumb_func_start GetWaldaWallpaperIconId +GetWaldaWallpaperIconId: @ 0x080D1D7C + ldr r0, _080D1D88 + ldr r0, [r0] + ldr r1, _080D1D8C + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_080D1D88: .4byte 0x03005AEC +_080D1D8C: .4byte 0x00003D84 + thumb_func_end GetWaldaWallpaperIconId + + thumb_func_start SetWaldaWallpaperIconId +SetWaldaWallpaperIconId: @ 0x080D1D90 + push {lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x1d + bhi _080D1DA4 + ldr r0, _080D1DA8 + ldr r0, [r0] + ldr r2, _080D1DAC + adds r0, r0, r2 + strb r1, [r0] +_080D1DA4: + pop {r0} + bx r0 + .align 2, 0 +_080D1DA8: .4byte 0x03005AEC +_080D1DAC: .4byte 0x00003D84 + thumb_func_end SetWaldaWallpaperIconId + + thumb_func_start sub_080D1DB0 +sub_080D1DB0: @ 0x080D1DB0 + ldr r0, _080D1DBC + ldr r0, [r0] + ldr r1, _080D1DC0 + adds r0, r0, r1 + bx lr + .align 2, 0 +_080D1DBC: .4byte 0x03005AEC +_080D1DC0: .4byte 0x00003D70 + thumb_func_end sub_080D1DB0 + + thumb_func_start SetWaldaWallpaperColors +SetWaldaWallpaperColors: @ 0x080D1DC4 + push {r4, lr} + ldr r2, _080D1DDC + ldr r2, [r2] + ldr r4, _080D1DE0 + adds r3, r2, r4 + strh r0, [r3] + ldr r0, _080D1DE4 + adds r2, r2, r0 + strh r1, [r2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D1DDC: .4byte 0x03005AEC +_080D1DE0: .4byte 0x00003D70 +_080D1DE4: .4byte 0x00003D72 + thumb_func_end SetWaldaWallpaperColors + + thumb_func_start GetWaldaPhrasePtr +GetWaldaPhrasePtr: @ 0x080D1DE8 + ldr r0, _080D1DF4 + ldr r0, [r0] + ldr r1, _080D1DF8 + adds r0, r0, r1 + bx lr + .align 2, 0 +_080D1DF4: .4byte 0x03005AEC +_080D1DF8: .4byte 0x00003D74 + thumb_func_end GetWaldaPhrasePtr + + thumb_func_start SetWaldaPhrase +SetWaldaPhrase: @ 0x080D1DFC + push {lr} + adds r1, r0, #0 + ldr r0, _080D1E10 + ldr r0, [r0] + ldr r2, _080D1E14 + adds r0, r0, r2 + bl StringCopy + pop {r0} + bx r0 + .align 2, 0 +_080D1E10: .4byte 0x03005AEC +_080D1E14: .4byte 0x00003D74 + thumb_func_end SetWaldaPhrase + + thumb_func_start IsWaldaPhraseEmpty +IsWaldaPhraseEmpty: @ 0x080D1E18 + push {lr} + movs r1, #0 + ldr r0, _080D1E34 + ldr r0, [r0] + ldr r2, _080D1E38 + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #0xff + bne _080D1E2C + movs r1, #1 +_080D1E2C: + adds r0, r1, #0 + pop {r1} + bx r1 + .align 2, 0 +_080D1E34: .4byte 0x03005AEC +_080D1E38: .4byte 0x00003D74 + thumb_func_end IsWaldaPhraseEmpty + + thumb_func_start sub_080D1E3C +sub_080D1E3C: @ 0x080D1E3C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r6, _080D1E88 + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #4 + bl Alloc + str r0, [r6] + ldr r5, _080D1E8C + movs r1, #0 + cmp r0, #0 + beq _080D1E5A + adds r1, r4, #0 +_080D1E5A: + strh r1, [r5] + movs r2, #0 + cmp r2, r1 + bhs _080D1E82 + movs r3, #0 + adds r4, r5, #0 +_080D1E66: + ldr r0, [r6] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #4 + adds r1, r1, r0 + str r3, [r1, #0x18] + adds r1, #0x2c + strb r3, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldrh r0, [r4] + cmp r2, r0 + blo _080D1E66 +_080D1E82: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080D1E88: .4byte 0x02039A24 +_080D1E8C: .4byte 0x02039A28 + thumb_func_end sub_080D1E3C + + thumb_func_start sub_080D1E90 +sub_080D1E90: @ 0x080D1E90 + push {lr} + ldr r0, _080D1EA0 + ldr r0, [r0] + bl Free + pop {r0} + bx r0 + .align 2, 0 +_080D1EA0: .4byte 0x02039A24 + thumb_func_end sub_080D1E90 + + thumb_func_start sub_080D1EA4 +sub_080D1EA4: @ 0x080D1EA4 + push {r4, r5, lr} + movs r4, #0 + ldr r0, _080D1EDC + ldrh r0, [r0] + cmp r4, r0 + bge _080D1ED4 + movs r5, #0 +_080D1EB2: + ldr r0, _080D1EE0 + ldr r0, [r0] + adds r0, r5, r0 + adds r0, #0x2c + ldrb r0, [r0] + cmp r0, #1 + bne _080D1EC8 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl sub_080D21B8 +_080D1EC8: + adds r5, #0x30 + adds r4, #1 + ldr r0, _080D1EDC + ldrh r0, [r0] + cmp r4, r0 + blt _080D1EB2 +_080D1ED4: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D1EDC: .4byte 0x02039A28 +_080D1EE0: .4byte 0x02039A24 + thumb_func_end sub_080D1EA4 + + thumb_func_start sub_080D1EE4 +sub_080D1EE4: @ 0x080D1EE4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r4, r2, #0 + ldr r2, [sp, #0x24] + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + mov sl, r3 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + str r2, [sp] + ldr r0, _080D1F7C + ldrh r0, [r0] + cmp r6, r0 + bhs _080D1FCC + ldr r0, _080D1F80 + mov sb, r0 + ldr r0, [r0] + lsls r1, r6, #1 + mov r8, r1 + adds r5, r1, r6 + lsls r5, r5, #4 + adds r0, r5, r0 + movs r1, #0 + str r1, [r0, #0x18] + str r4, [r0, #0x1c] + adds r0, #0x2b + strb r7, [r0] + mov r2, sb + ldr r0, [r2] + adds r0, r5, r0 + mov r3, sl + strh r3, [r0, #0x24] + mov r1, sp + ldrh r1, [r1] + strh r1, [r0, #0x26] + adds r0, r7, #0 + movs r1, #3 + bl GetBgAttribute + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r7, #0 + movs r1, #9 + bl GetBgAttribute + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r2, sb + ldr r1, [r2] + adds r5, r5, r1 + ldr r2, _080D1F84 + lsls r4, r4, #2 + lsls r1, r0, #4 + adds r4, r4, r1 + adds r4, r4, r2 + ldrh r1, [r4] + strh r1, [r5, #0x20] + ldrh r1, [r4, #2] + strh r1, [r5, #0x22] + mov r2, r8 + cmp r0, #0 + beq _080D1F88 + adds r1, r5, #0 + adds r1, #0x2a + movs r0, #1 + b _080D1F8E + .align 2, 0 +_080D1F7C: .4byte 0x02039A28 +_080D1F80: .4byte 0x02039A24 +_080D1F84: .4byte 0x08556784 +_080D1F88: + adds r1, r5, #0 + adds r1, #0x2a + movs r0, #2 +_080D1F8E: + strb r0, [r1] + ldr r4, _080D1FDC + ldr r1, [r4] + adds r2, r2, r6 + lsls r2, r2, #4 + adds r1, r2, r1 + adds r0, r1, #0 + adds r0, #0x2a + ldrb r0, [r0] + mov r3, sl + muls r3, r0, r3 + movs r0, #0 + strh r3, [r1, #0x28] + mov r3, sl + strh r3, [r1, #0x10] + mov r5, sp + ldrh r5, [r5] + strh r5, [r1, #0x12] + strh r0, [r1, #0xc] + strh r0, [r1, #0xe] + strh r0, [r1, #0x14] + strh r0, [r1, #0x16] + adds r0, r1, #0 + adds r0, #0xc + ldm r0!, {r3, r5, r6} + stm r1!, {r3, r5, r6} + ldr r0, [r4] + adds r2, r2, r0 + adds r2, #0x2c + movs r0, #1 + strb r0, [r2] +_080D1FCC: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D1FDC: .4byte 0x02039A24 + thumb_func_end sub_080D1EE4 + + thumb_func_start sub_080D1FE0 +sub_080D1FE0: @ 0x080D1FE0 + push {lr} + adds r3, r1, #0 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _080D2008 + ldrh r0, [r0] + cmp r2, r0 + bhs _080D2004 + ldr r0, _080D200C + ldr r1, [r0] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #4 + adds r0, r0, r1 + str r3, [r0, #0x18] + adds r0, #0x2c + movs r1, #1 + strb r1, [r0] +_080D2004: + pop {r0} + bx r0 + .align 2, 0 +_080D2008: .4byte 0x02039A28 +_080D200C: .4byte 0x02039A24 + thumb_func_end sub_080D1FE0 + + thumb_func_start sub_080D2010 +sub_080D2010: @ 0x080D2010 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldr r0, _080D2044 + ldrh r0, [r0] + cmp r3, r0 + bhs _080D203C + ldr r0, _080D2048 + ldr r1, [r0] + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #4 + adds r0, r0, r1 + strh r4, [r0, #0x14] + strh r2, [r0, #0x16] + adds r0, #0x2c + movs r1, #1 + strb r1, [r0] +_080D203C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D2044: .4byte 0x02039A28 +_080D2048: .4byte 0x02039A24 + thumb_func_end sub_080D2010 + + thumb_func_start sub_080D204C +sub_080D204C: @ 0x080D204C + push {r4, r5, r6, lr} + ldr r4, [sp, #0x10] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r0, _080D208C + ldrh r0, [r0] + cmp r5, r0 + bhs _080D2086 + ldr r0, _080D2090 + ldr r1, [r0] + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #4 + adds r0, r0, r1 + strh r6, [r0, #0xc] + strh r2, [r0, #0xe] + strh r3, [r0, #0x10] + strh r4, [r0, #0x12] + adds r0, #0x2c + movs r1, #1 + strb r1, [r0] +_080D2086: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080D208C: .4byte 0x02039A28 +_080D2090: .4byte 0x02039A24 + thumb_func_end sub_080D204C + + thumb_func_start sub_080D2094 +sub_080D2094: @ 0x080D2094 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + ldr r0, _080D20C0 + ldrh r0, [r0] + cmp r5, r0 + blo _080D20AC + b _080D21AE +_080D20AC: + ldr r4, _080D20C4 + lsls r2, r5, #1 + cmp r1, #5 + bls _080D20B6 + b _080D21A0 +_080D20B6: + lsls r0, r1, #2 + ldr r1, _080D20C8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080D20C0: .4byte 0x02039A28 +_080D20C4: .4byte 0x02039A24 +_080D20C8: .4byte 0x080D20CC +_080D20CC: @ jump table + .4byte _080D20E4 @ case 0 + .4byte _080D2104 @ case 1 + .4byte _080D2128 @ case 2 + .4byte _080D2148 @ case 3 + .4byte _080D216C @ case 4 + .4byte _080D2188 @ case 5 +_080D20E4: + ldr r4, _080D2100 + ldr r0, [r4] + lsls r3, r5, #1 + adds r1, r3, r5 + lsls r1, r1, #4 + adds r1, r1, r0 + lsls r2, r6, #0x18 + asrs r2, r2, #0x18 + ldrh r0, [r1, #0x14] + adds r0, r0, r2 + strh r0, [r1, #0x14] + ldrh r0, [r1, #0x10] + subs r0, r0, r2 + b _080D211E + .align 2, 0 +_080D2100: .4byte 0x02039A24 +_080D2104: + ldr r4, _080D2124 + ldr r0, [r4] + lsls r3, r5, #1 + adds r1, r3, r5 + lsls r1, r1, #4 + adds r1, r1, r0 + lsls r2, r6, #0x18 + asrs r2, r2, #0x18 + ldrh r0, [r1, #0xc] + adds r0, r0, r2 + strh r0, [r1, #0xc] + ldrh r0, [r1, #0x10] + adds r0, r0, r2 +_080D211E: + strh r0, [r1, #0x10] + adds r2, r3, #0 + b _080D21A0 + .align 2, 0 +_080D2124: .4byte 0x02039A24 +_080D2128: + ldr r4, _080D2144 + ldr r0, [r4] + lsls r3, r5, #1 + adds r1, r3, r5 + lsls r1, r1, #4 + adds r1, r1, r0 + lsls r2, r6, #0x18 + asrs r2, r2, #0x18 + ldrh r0, [r1, #0x16] + adds r0, r0, r2 + strh r0, [r1, #0x16] + ldrh r0, [r1, #0x12] + subs r0, r0, r2 + b _080D2162 + .align 2, 0 +_080D2144: .4byte 0x02039A24 +_080D2148: + ldr r4, _080D2168 + ldr r0, [r4] + lsls r3, r5, #1 + adds r1, r3, r5 + lsls r1, r1, #4 + adds r1, r1, r0 + lsls r2, r6, #0x18 + asrs r2, r2, #0x18 + ldrh r0, [r1, #0xe] + subs r0, r0, r2 + strh r0, [r1, #0xe] + ldrh r0, [r1, #0x12] + adds r0, r0, r2 +_080D2162: + strh r0, [r1, #0x12] + adds r2, r3, #0 + b _080D21A0 + .align 2, 0 +_080D2168: .4byte 0x02039A24 +_080D216C: + ldr r3, _080D2184 + ldr r0, [r3] + lsls r2, r5, #1 + adds r1, r2, r5 + lsls r1, r1, #4 + adds r1, r1, r0 + lsls r0, r6, #0x18 + asrs r0, r0, #0x18 + ldrh r4, [r1, #0x14] + adds r0, r0, r4 + strh r0, [r1, #0x14] + b _080D219E + .align 2, 0 +_080D2184: .4byte 0x02039A24 +_080D2188: + ldr r3, _080D21B4 + ldr r0, [r3] + lsls r2, r5, #1 + adds r1, r2, r5 + lsls r1, r1, #4 + adds r1, r1, r0 + lsls r0, r6, #0x18 + asrs r0, r0, #0x18 + ldrh r4, [r1, #0x16] + adds r0, r0, r4 + strh r0, [r1, #0x16] +_080D219E: + adds r4, r3, #0 +_080D21A0: + ldr r0, [r4] + adds r1, r2, r5 + lsls r1, r1, #4 + adds r1, r1, r0 + adds r1, #0x2c + movs r0, #1 + strb r0, [r1] +_080D21AE: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080D21B4: .4byte 0x02039A24 + thumb_func_end sub_080D2094 + + thumb_func_start sub_080D21B8 +sub_080D21B8: @ 0x080D21B8 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r6, r2, #0 + ldr r0, _080D21F8 + ldrh r0, [r0] + cmp r2, r0 + bhs _080D21F2 + ldr r5, _080D21FC + ldr r0, [r5] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r4, r1, #4 + adds r0, r4, r0 + ldr r0, [r0, #0x18] + cmp r0, #0 + beq _080D21E0 + adds r0, r2, #0 + bl sub_080D2200 +_080D21E0: + adds r0, r6, #0 + bl sub_080D2298 + ldr r1, [r5] + adds r1, r4, r1 + adds r0, r1, #0 + adds r0, #0xc + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} +_080D21F2: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080D21F8: .4byte 0x02039A28 +_080D21FC: .4byte 0x02039A24 + thumb_func_end sub_080D21B8 + + thumb_func_start sub_080D2200 +sub_080D2200: @ 0x080D2200 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r4, _080D2294 + ldr r1, [r4] + lsls r5, r0, #1 + adds r0, r5, r0 + lsls r0, r0, #4 + adds r0, r0, r1 + adds r1, r0, #0 + adds r1, #0x2a + ldrb r3, [r1] + ldrh r1, [r0, #0x20] + adds r2, r3, #0 + muls r2, r1, r2 + mov sb, r2 + movs r6, #0xa + ldrsh r1, [r0, r6] + mov r2, sb + muls r2, r1, r2 + ldr r1, [r0, #0x18] + adds r1, r1, r2 + movs r6, #8 + ldrsh r2, [r0, r6] + muls r2, r3, r2 + adds r7, r1, r2 + movs r6, #0 + ldrh r0, [r0, #6] + cmp r6, r0 + bge _080D2284 + mov sl, r4 +_080D224A: + mov r0, sl + ldr r1, [r0] + mov r2, r8 + adds r4, r5, r2 + lsls r4, r4, #4 + adds r1, r4, r1 + adds r0, r1, #0 + adds r0, #0x2b + ldrb r0, [r0] + ldrb r2, [r1, #8] + ldrb r3, [r1, #0xa] + adds r3, r3, r6 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldrb r1, [r1, #4] + str r1, [sp] + movs r1, #1 + str r1, [sp, #4] + adds r1, r7, #0 + bl CopyToBgTilemapBufferRect + add r7, sb + adds r6, #1 + mov r1, sl + ldr r0, [r1] + adds r4, r4, r0 + ldrh r4, [r4, #6] + cmp r6, r4 + blt _080D224A +_080D2284: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D2294: .4byte 0x02039A24 + thumb_func_end sub_080D2200 + + thumb_func_start sub_080D2298 +sub_080D2298: @ 0x080D2298 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r4, _080D232C + ldr r1, [r4] + lsls r5, r0, #1 + adds r0, r5, r0 + lsls r0, r0, #4 + adds r0, r0, r1 + adds r1, r0, #0 + adds r1, #0x2a + ldrb r3, [r1] + ldrh r1, [r0, #0x24] + adds r2, r3, #0 + muls r2, r1, r2 + mov sb, r2 + movs r6, #0xe + ldrsh r1, [r0, r6] + mov r2, sb + muls r2, r1, r2 + ldr r1, [r0, #0x1c] + adds r1, r1, r2 + movs r6, #0xc + ldrsh r2, [r0, r6] + muls r2, r3, r2 + adds r7, r1, r2 + movs r6, #0 + ldrh r0, [r0, #0x12] + cmp r6, r0 + bge _080D231C + mov sl, r4 +_080D22E2: + mov r0, sl + ldr r1, [r0] + mov r2, r8 + adds r4, r5, r2 + lsls r4, r4, #4 + adds r1, r4, r1 + adds r0, r1, #0 + adds r0, #0x2b + ldrb r0, [r0] + ldrb r2, [r1, #0x14] + ldrb r3, [r1, #0x16] + adds r3, r3, r6 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldrb r1, [r1, #0x10] + str r1, [sp] + movs r1, #1 + str r1, [sp, #4] + adds r1, r7, #0 + bl CopyToBgTilemapBufferRect + add r7, sb + adds r6, #1 + mov r1, sl + ldr r0, [r1] + adds r4, r4, r0 + ldrh r4, [r4, #0x12] + cmp r6, r4 + blt _080D22E2 +_080D231C: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D232C: .4byte 0x02039A24 + thumb_func_end sub_080D2298 + + thumb_func_start sub_080D2330 +sub_080D2330: @ 0x080D2330 + ldr r3, _080D2340 + str r0, [r3] + str r1, [r0] + movs r1, #0 + strb r2, [r0, #5] + strb r1, [r0, #4] + bx lr + .align 2, 0 +_080D2340: .4byte 0x02039A2C + thumb_func_end sub_080D2330 + + thumb_func_start sub_080D2344 +sub_080D2344: @ 0x080D2344 + push {r4, r5, lr} + ldr r2, _080D2388 + ldr r1, [r2] + ldrb r0, [r1, #4] + cmp r0, #0 + beq _080D2382 + movs r4, #0 + ldrb r1, [r1, #4] + cmp r4, r1 + bhs _080D237A + adds r5, r2, #0 +_080D235A: + ldr r0, [r5] + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #2 + ldr r0, [r0] + adds r0, r0, r1 + ldr r1, [r0, #0x10] + bl _call_via_r1 + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, [r5] + ldrb r0, [r0, #4] + cmp r4, r0 + blo _080D235A +_080D237A: + ldr r0, _080D2388 + ldr r1, [r0] + movs r0, #0 + strb r0, [r1, #4] +_080D2382: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D2388: .4byte 0x02039A2C + thumb_func_end sub_080D2344 + + thumb_func_start sub_080D238C +sub_080D238C: @ 0x080D238C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov sb, r0 + mov sl, r3 + ldr r0, [sp, #0x24] + ldr r3, [sp, #0x28] + ldr r4, [sp, #0x2c] + ldr r5, [sp, #0x30] + ldr r6, [sp, #0x34] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov ip, r1 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + str r2, [sp] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + ldr r0, _080D240C + ldr r2, [r0] + ldrb r0, [r2, #4] + adds r1, r0, #0 + ldrb r7, [r2, #5] + cmp r1, r7 + bhs _080D2414 + adds r0, #1 + strb r0, [r2, #4] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, [r2] + adds r1, r1, r0 + lsls r0, r4, #1 + strh r0, [r1, #8] + ldr r2, [sp] + lsls r0, r2, #5 + add r0, ip + lsls r0, r0, #1 + add r0, sb + str r0, [r1, #4] + adds r0, r3, #0 + muls r0, r6, r0 + add r0, r8 + lsls r0, r0, #1 + add r0, sl + str r0, [r1] + strh r5, [r1, #0xc] + strh r6, [r1, #0xa] + ldr r0, _080D2410 + str r0, [r1, #0x10] + movs r0, #1 + b _080D2416 + .align 2, 0 +_080D240C: .4byte 0x02039A2C +_080D2410: .4byte 0x080D2429 +_080D2414: + movs r0, #0 +_080D2416: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080D238C + + thumb_func_start sub_080D2428 +sub_080D2428: @ 0x080D2428 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #0 + b _080D2452 +_080D2430: + ldr r0, [r4] + ldr r1, [r4, #4] + ldrh r2, [r4, #8] + lsrs r2, r2, #1 + bl CpuSet + ldr r0, [r4, #4] + adds r0, #0x40 + str r0, [r4, #4] + ldrh r1, [r4, #0xa] + lsls r1, r1, #1 + ldr r0, [r4] + adds r0, r0, r1 + str r0, [r4] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_080D2452: + ldrh r0, [r4, #0xc] + cmp r5, r0 + blo _080D2430 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080D2428 + + thumb_func_start sub_080D2460 +sub_080D2460: @ 0x080D2460 + push {r4, r5, r6, r7, lr} + mov ip, r0 + ldr r0, [sp, #0x14] + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r4, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, _080D24AC + ldr r2, [r0] + ldrb r0, [r2, #4] + adds r1, r0, #0 + ldrb r7, [r2, #5] + cmp r1, r7 + bhs _080D24B4 + adds r0, #1 + strb r0, [r2, #4] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, [r2] + adds r1, r1, r0 + lsls r0, r3, #1 + strh r0, [r1, #8] + lsls r0, r4, #5 + adds r0, r0, r6 + lsls r0, r0, #1 + add r0, ip + str r0, [r1, #4] + strh r5, [r1, #0xc] + ldr r0, _080D24B0 + str r0, [r1, #0x10] + movs r0, #1 + b _080D24B6 + .align 2, 0 +_080D24AC: .4byte 0x02039A2C +_080D24B0: .4byte 0x080D24BD +_080D24B4: + movs r0, #0 +_080D24B6: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_080D2460 + + thumb_func_start sub_080D24BC +sub_080D24BC: @ 0x080D24BC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r6, r0, #0 + movs r0, #0 + ldrh r1, [r6, #0xc] + cmp r0, r1 + bhs _080D254A + movs r7, #0x80 + lsls r7, r7, #5 + mov r5, sp + ldr r2, _080D2508 + mov r8, r2 + movs r1, #0x81 + lsls r1, r1, #0x18 + mov sl, r1 +_080D24E2: + ldr r2, [r6, #4] + ldrh r3, [r6, #8] + mov ip, r2 + adds r0, #1 + mov sb, r0 + cmp r3, r7 + bhi _080D250C + movs r0, #0 + strh r0, [r5] + mov r2, sp + mov r0, r8 + str r2, [r0] + mov r1, ip + str r1, [r0, #4] + lsrs r0, r3, #1 + mov r2, sl + orrs r0, r2 + mov r1, r8 + b _080D2534 + .align 2, 0 +_080D2508: .4byte 0x040000D4 +_080D250C: + movs r4, #0 + strh r4, [r5] + ldr r1, _080D255C + mov r0, sp + str r0, [r1] + str r2, [r1, #4] + ldr r0, _080D2560 + str r0, [r1, #8] + ldr r0, [r1, #8] + adds r2, r2, r7 + subs r3, r3, r7 + cmp r3, r7 + bhi _080D250C + strh r4, [r5] + mov r0, sp + str r0, [r1] + str r2, [r1, #4] + lsrs r0, r3, #1 + mov r2, sl + orrs r0, r2 +_080D2534: + str r0, [r1, #8] + ldr r0, [r1, #8] + mov r0, ip + adds r0, #0x40 + str r0, [r6, #4] + mov r1, sb + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + ldrh r2, [r6, #0xc] + cmp r0, r2 + blo _080D24E2 +_080D254A: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080D255C: .4byte 0x040000D4 +_080D2560: .4byte 0x81000800 + thumb_func_end sub_080D24BC + diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s new file mode 100644 index 0000000..e3b06d7 --- /dev/null +++ b/asm/pokemon_summary_screen.s @@ -0,0 +1,10232 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ShowPokemonSummaryScreen +ShowPokemonSummaryScreen: @ 0x081BF280 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r1 + adds r5, r2, #0 + adds r6, r3, #0 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + ldr r4, _081BF2D0 + ldr r0, _081BF2D4 + bl AllocZeroed + str r0, [r4] + ldr r1, _081BF2D8 + adds r0, r0, r1 + strb r7, [r0] + ldr r0, [r4] + mov r2, r8 + str r2, [r0] + adds r1, #2 + adds r0, r0, r1 + strb r5, [r0] + ldr r0, [r4] + ldr r2, _081BF2DC + adds r0, r0, r2 + strb r6, [r0] + ldr r1, [r4] + ldr r0, [sp, #0x18] + str r0, [r1, #4] + cmp r7, #2 + bne _081BF2E0 + subs r2, #2 + adds r1, r1, r2 + movs r0, #1 + b _081BF2E6 + .align 2, 0 +_081BF2D0: .4byte 0x0203CBE8 +_081BF2D4: .4byte 0x000040F8 +_081BF2D8: .4byte 0x000040BC +_081BF2DC: .4byte 0x000040BF +_081BF2E0: + ldr r0, _081BF2F8 + adds r1, r1, r0 + movs r0, #0 +_081BF2E6: + strb r0, [r1] + cmp r7, #1 + beq _081BF334 + cmp r7, #1 + bgt _081BF300 + cmp r7, #0 + beq _081BF310 + ldr r2, _081BF2FC + b _081BF382 + .align 2, 0 +_081BF2F8: .4byte 0x000040BD +_081BF2FC: .4byte 0x0203CBE8 +_081BF300: + cmp r7, #2 + beq _081BF310 + cmp r7, #3 + beq _081BF364 + ldr r2, _081BF30C + b _081BF382 + .align 2, 0 +_081BF30C: .4byte 0x0203CBE8 +_081BF310: + ldr r2, _081BF328 + ldr r0, [r2] + ldr r1, _081BF32C + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + ldr r0, [r2] + ldr r1, _081BF330 + adds r0, r0, r1 + movs r1, #3 + b _081BF380 + .align 2, 0 +_081BF328: .4byte 0x0203CBE8 +_081BF32C: .4byte 0x000040C1 +_081BF330: .4byte 0x000040C2 +_081BF334: + ldr r2, _081BF354 + ldr r0, [r2] + ldr r1, _081BF358 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + ldr r0, [r2] + ldr r1, _081BF35C + adds r0, r0, r1 + movs r1, #3 + strb r1, [r0] + ldr r0, [r2] + ldr r1, _081BF360 + adds r0, r0, r1 + strb r7, [r0] + b _081BF382 + .align 2, 0 +_081BF354: .4byte 0x0203CBE8 +_081BF358: .4byte 0x000040C1 +_081BF35C: .4byte 0x000040C2 +_081BF360: .4byte 0x000040C8 +_081BF364: + ldr r2, _081BF3B8 + ldr r0, [r2] + ldr r1, _081BF3BC + adds r0, r0, r1 + movs r1, #2 + strb r1, [r0] + ldr r0, [r2] + ldr r1, _081BF3C0 + adds r0, r0, r1 + strb r7, [r0] + ldr r0, [r2] + adds r1, #1 + adds r0, r0, r1 + movs r1, #1 +_081BF380: + strb r1, [r0] +_081BF382: + ldr r0, [r2] + ldr r2, _081BF3BC + adds r1, r0, r2 + ldrb r1, [r1] + subs r2, #1 + adds r0, r0, r2 + strb r1, [r0] + movs r0, #0xff + bl SummaryScreen_SetUnknownTaskId + ldr r0, _081BF3C4 + ldr r0, [r0] + cmp r0, #0 + bne _081BF3A6 + movs r0, #0 + movs r1, #0 + bl sub_0806ED30 +_081BF3A6: + ldr r0, _081BF3C8 + bl SetMainCallback2 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081BF3B8: .4byte 0x0203CBE8 +_081BF3BC: .4byte 0x000040C1 +_081BF3C0: .4byte 0x000040C2 +_081BF3C4: .4byte 0x02024178 +_081BF3C8: .4byte 0x081BF445 + thumb_func_end ShowPokemonSummaryScreen + + thumb_func_start ShowSelectMovePokemonSummaryScreen +ShowSelectMovePokemonSummaryScreen: @ 0x081BF3CC + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #4 + mov r8, r0 + adds r4, r1, #0 + adds r5, r2, #0 + ldr r6, [sp, #0x18] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + str r3, [sp] + movs r0, #3 + mov r1, r8 + adds r2, r4, #0 + adds r3, r5, #0 + bl ShowPokemonSummaryScreen + ldr r0, _081BF40C + ldr r0, [r0] + ldr r1, _081BF410 + adds r0, r0, r1 + strh r6, [r0] + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081BF40C: .4byte 0x0203CBE8 +_081BF410: .4byte 0x000040C4 + thumb_func_end ShowSelectMovePokemonSummaryScreen + + thumb_func_start SummaryScreen_VBlank +SummaryScreen_VBlank: @ 0x081BF414 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl do_scheduled_bg_tilemap_copies_to_vram + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SummaryScreen_VBlank + + thumb_func_start FreeSummaryScreen +FreeSummaryScreen: @ 0x081BF430 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end FreeSummaryScreen + + thumb_func_start SummaryScreen_LoadingCB2 +SummaryScreen_LoadingCB2: @ 0x081BF444 + push {lr} +_081BF446: + bl sub_081221F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081BF46A + bl SummaryScreen_LoadGraphics + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081BF46A + bl sub_081221B8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081BF446 +_081BF46A: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SummaryScreen_LoadingCB2 + + thumb_func_start SummaryScreen_LoadGraphics +SummaryScreen_LoadGraphics: @ 0x081BF470 + push {r4, lr} + sub sp, #4 + ldr r0, _081BF490 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0x18 + bls _081BF484 + b _081BF760 +_081BF484: + lsls r0, r0, #2 + ldr r1, _081BF494 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081BF490: .4byte 0x03002360 +_081BF494: .4byte 0x081BF498 +_081BF498: @ jump table + .4byte _081BF4FC @ case 0 + .4byte _081BF50A @ case 1 + .4byte _081BF51C @ case 2 + .4byte _081BF530 @ case 3 + .4byte _081BF544 @ case 4 + .4byte _081BF54A @ case 5 + .4byte _081BF564 @ case 6 + .4byte _081BF580 @ case 7 + .4byte _081BF586 @ case 8 + .4byte _081BF598 @ case 9 + .4byte _081BF5B8 @ case 10 + .4byte _081BF5DC @ case 11 + .4byte _081BF5E2 @ case 12 + .4byte _081BF5F4 @ case 13 + .4byte _081BF60C @ case 14 + .4byte _081BF620 @ case 15 + .4byte _081BF638 @ case 16 + .4byte _081BF658 @ case 17 + .4byte _081BF694 @ case 18 + .4byte _081BF6B0 @ case 19 + .4byte _081BF6C0 @ case 20 + .4byte _081BF6D4 @ case 21 + .4byte _081BF6DA @ case 22 + .4byte _081BF710 @ case 23 + .4byte _081BF72C @ case 24 +_081BF4FC: + bl SetVBlankHBlankCallbacksToNull + bl ResetVramOamAndBgCntRegs + bl clear_scheduled_bg_copies_to_vram + b _081BF746 +_081BF50A: + bl ScanlineEffect_Stop + ldr r1, _081BF518 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _081BF74E + .align 2, 0 +_081BF518: .4byte 0x03002360 +_081BF51C: + bl ResetPaletteFade + ldr r2, _081BF52C + ldrb r0, [r2, #8] + movs r1, #0x80 + orrs r0, r1 + b _081BF744 + .align 2, 0 +_081BF52C: .4byte 0x02037C74 +_081BF530: + bl ResetSpriteData + ldr r1, _081BF540 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _081BF74E + .align 2, 0 +_081BF540: .4byte 0x03002360 +_081BF544: + bl FreeAllSpritePalettes + b _081BF746 +_081BF54A: + bl InitBGs + ldr r0, _081BF55C + ldr r0, [r0] + ldr r1, _081BF560 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0] + b _081BF746 + .align 2, 0 +_081BF55C: .4byte 0x0203CBE8 +_081BF560: .4byte 0x000040F0 +_081BF564: + bl SummaryScreen_DecompressGraphics + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081BF570 + b _081BF778 +_081BF570: + ldr r1, _081BF57C + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _081BF74E + .align 2, 0 +_081BF57C: .4byte 0x03002360 +_081BF580: + bl ResetWindows + b _081BF746 +_081BF586: + bl DrawPagination + ldr r1, _081BF594 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _081BF74E + .align 2, 0 +_081BF594: .4byte 0x03002360 +_081BF598: + ldr r4, _081BF5B0 + ldr r0, [r4] + adds r0, #0xc + bl CopyMonToSummaryStruct + ldr r0, [r4] + ldr r1, _081BF5B4 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0] + b _081BF746 + .align 2, 0 +_081BF5B0: .4byte 0x0203CBE8 +_081BF5B4: .4byte 0x000040F0 +_081BF5B8: + ldr r0, _081BF5D4 + ldr r0, [r0] + adds r0, #0xc + bl ExtractMonDataToSummaryStruct + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081BF5CA + b _081BF778 +_081BF5CA: + ldr r1, _081BF5D8 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _081BF74E + .align 2, 0 +_081BF5D4: .4byte 0x0203CBE8 +_081BF5D8: .4byte 0x03002360 +_081BF5DC: + bl Summary_PrintMonInfo + b _081BF746 +_081BF5E2: + bl sub_081C21CC + ldr r1, _081BF5F0 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _081BF74E + .align 2, 0 +_081BF5F0: .4byte 0x03002360 +_081BF5F4: + ldr r0, _081BF604 + ldr r0, [r0] + ldr r1, _081BF608 + adds r0, r0, r1 + ldrb r0, [r0] + bl PrintPageSpecificText + b _081BF746 + .align 2, 0 +_081BF604: .4byte 0x0203CBE8 +_081BF608: .4byte 0x000040C0 +_081BF60C: + bl sub_081BFC7C + ldr r1, _081BF61C + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _081BF74E + .align 2, 0 +_081BF61C: .4byte 0x03002360 +_081BF620: + ldr r0, _081BF630 + ldr r0, [r0] + ldr r1, _081BF634 + adds r0, r0, r1 + ldrb r0, [r0] + bl CreatePageWindowTilemaps + b _081BF746 + .align 2, 0 +_081BF630: .4byte 0x0203CBE8 +_081BF634: .4byte 0x000040C0 +_081BF638: + bl ResetSpriteIds + bl CreateMoveTypeIcons + ldr r0, _081BF650 + ldr r0, [r0] + ldr r1, _081BF654 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0] + b _081BF746 + .align 2, 0 +_081BF650: .4byte 0x0203CBE8 +_081BF654: .4byte 0x000040F0 +_081BF658: + ldr r4, _081BF688 + ldr r1, [r4] + adds r0, r1, #0 + adds r0, #0xc + ldr r2, _081BF68C + adds r1, r1, r2 + bl CreatePokemonSprite + ldr r1, [r4] + ldr r2, _081BF690 + adds r1, r1, r2 + strb r0, [r1] + ldr r1, [r4] + adds r2, r1, r2 + ldrb r0, [r2] + cmp r0, #0xff + bne _081BF67C + b _081BF778 +_081BF67C: + ldr r0, _081BF68C + adds r1, r1, r0 + movs r0, #0 + strh r0, [r1] + b _081BF746 + .align 2, 0 +_081BF688: .4byte 0x0203CBE8 +_081BF68C: .4byte 0x000040F0 +_081BF690: .4byte 0x000040D3 +_081BF694: + ldr r0, _081BF6A8 + ldr r0, [r0] + adds r0, #0xc + bl CreateMonMarkingsSprite + ldr r1, _081BF6AC + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _081BF74E + .align 2, 0 +_081BF6A8: .4byte 0x0203CBE8 +_081BF6AC: .4byte 0x03002360 +_081BF6B0: + ldr r0, _081BF6BC + ldr r0, [r0] + adds r0, #0xc + bl CreateCaughtBallSprite + b _081BF746 + .align 2, 0 +_081BF6BC: .4byte 0x0203CBE8 +_081BF6C0: + bl CreateSetStatusSprite + ldr r1, _081BF6D0 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _081BF74E + .align 2, 0 +_081BF6D0: .4byte 0x03002360 +_081BF6D4: + bl SetTypeIcons + b _081BF746 +_081BF6DA: + ldr r0, _081BF6F4 + ldr r0, [r0] + ldr r1, _081BF6F8 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #3 + beq _081BF700 + ldr r0, _081BF6FC + movs r1, #0 + bl CreateTask + b _081BF746 + .align 2, 0 +_081BF6F4: .4byte 0x0203CBE8 +_081BF6F8: .4byte 0x000040BC +_081BF6FC: .4byte 0x081BFE45 +_081BF700: + ldr r0, _081BF70C + movs r1, #0 + bl CreateTask + b _081BF746 + .align 2, 0 +_081BF70C: .4byte 0x081C1051 +_081BF710: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + ldr r1, _081BF728 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _081BF74E + .align 2, 0 +_081BF728: .4byte 0x03002360 +_081BF72C: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r2, _081BF758 + ldrb r1, [r2, #8] + movs r0, #0x7f + ands r0, r1 +_081BF744: + strb r0, [r2, #8] +_081BF746: + ldr r1, _081BF75C + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 +_081BF74E: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _081BF778 + .align 2, 0 +_081BF758: .4byte 0x02037C74 +_081BF75C: .4byte 0x03002360 +_081BF760: + ldr r0, _081BF770 + bl SetVBlankCallback + ldr r0, _081BF774 + bl SetMainCallback2 + movs r0, #1 + b _081BF77A + .align 2, 0 +_081BF770: .4byte 0x081BF431 +_081BF774: .4byte 0x081BF415 +_081BF778: + movs r0, #0 +_081BF77A: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SummaryScreen_LoadGraphics + + thumb_func_start InitBGs +InitBGs: @ 0x081BF784 + push {r4, lr} + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _081BF800 + movs r0, #0 + movs r2, #4 + bl InitBgsFromTemplates + ldr r4, _081BF804 + ldr r1, [r4] + ldr r0, _081BF808 + adds r1, r1, r0 + movs r0, #1 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, _081BF80C + adds r1, r1, r0 + movs r0, #2 + bl SetBgTilemapBuffer + ldr r1, [r4] + adds r1, #0xbc + movs r0, #3 + bl SetBgTilemapBuffer + bl ResetAllBgsCoordinates + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #3 + bl schedule_bg_copy_tilemap_to_vram + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081BF800: .4byte 0x085ECE88 +_081BF804: .4byte 0x0203CBE8 +_081BF808: .4byte 0x000020BC +_081BF80C: .4byte 0x000010BC + thumb_func_end InitBGs + + thumb_func_start SummaryScreen_DecompressGraphics +SummaryScreen_DecompressGraphics: @ 0x081BF810 + push {r4, lr} + sub sp, #4 + ldr r1, _081BF834 + ldr r0, [r1] + ldr r2, _081BF838 + adds r0, r0, r2 + movs r2, #0 + ldrsh r0, [r0, r2] + adds r4, r1, #0 + cmp r0, #0xc + bls _081BF828 + b _081BF9EC +_081BF828: + lsls r0, r0, #2 + ldr r1, _081BF83C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081BF834: .4byte 0x0203CBE8 +_081BF838: .4byte 0x000040F0 +_081BF83C: .4byte 0x081BF840 +_081BF840: @ jump table + .4byte _081BF874 @ case 0 + .4byte _081BF890 @ case 1 + .4byte _081BF8C0 @ case 2 + .4byte _081BF8D8 @ case 3 + .4byte _081BF8F0 @ case 4 + .4byte _081BF908 @ case 5 + .4byte _081BF920 @ case 6 + .4byte _081BF950 @ case 7 + .4byte _081BF95C @ case 8 + .4byte _081BF978 @ case 9 + .4byte _081BF984 @ case 10 + .4byte _081BF9A0 @ case 11 + .4byte _081BF9C4 @ case 12 +_081BF874: + bl reset_temp_tile_data_buffers + ldr r1, _081BF88C + movs r0, #0 + str r0, [sp] + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + b _081BF9A6 + .align 2, 0 +_081BF88C: .4byte 0x08D97DD0 +_081BF890: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081BF89E + b _081BF9EC +_081BF89E: + ldr r0, _081BF8B4 + ldr r4, _081BF8B8 + ldr r1, [r4] + adds r1, #0xbc + bl LZDecompressVram + ldr r1, [r4] + ldr r2, _081BF8BC + adds r1, r1, r2 + b _081BF9AE + .align 2, 0 +_081BF8B4: .4byte 0x08D9888C +_081BF8B8: .4byte 0x0203CBE8 +_081BF8BC: .4byte 0x000040F0 +_081BF8C0: + ldr r0, _081BF8D0 + ldr r1, [r4] + ldr r2, _081BF8D4 + adds r1, r1, r2 + bl LZDecompressVram + ldr r1, [r4] + b _081BF9AA + .align 2, 0 +_081BF8D0: .4byte 0x08D98E8C +_081BF8D4: .4byte 0x000008BC +_081BF8D8: + ldr r0, _081BF8E8 + ldr r1, [r4] + ldr r2, _081BF8EC + adds r1, r1, r2 + bl LZDecompressVram + ldr r1, [r4] + b _081BF9AA + .align 2, 0 +_081BF8E8: .4byte 0x08D98A44 +_081BF8EC: .4byte 0x000018BC +_081BF8F0: + ldr r0, _081BF900 + ldr r1, [r4] + ldr r2, _081BF904 + adds r1, r1, r2 + bl LZDecompressVram + ldr r1, [r4] + b _081BF9AA + .align 2, 0 +_081BF900: .4byte 0x08D98BA8 +_081BF904: .4byte 0x000028BC +_081BF908: + ldr r0, _081BF918 + ldr r1, [r4] + ldr r2, _081BF91C + adds r1, r1, r2 + bl LZDecompressVram + ldr r1, [r4] + b _081BF9AA + .align 2, 0 +_081BF918: .4byte 0x08D98D14 +_081BF91C: .4byte 0x000038BC +_081BF920: + ldr r0, _081BF940 + movs r2, #0x80 + lsls r2, r2, #1 + movs r1, #0 + bl LoadCompressedPalette + ldr r0, _081BF944 + movs r1, #0x81 + movs r2, #0x1e + bl LoadPalette + ldr r0, _081BF948 + ldr r1, [r0] + ldr r2, _081BF94C + adds r1, r1, r2 + b _081BF9AE + .align 2, 0 +_081BF940: .4byte 0x08D9879C +_081BF944: .4byte 0x08D85604 +_081BF948: .4byte 0x0203CBE8 +_081BF94C: .4byte 0x000040F0 +_081BF950: + ldr r0, _081BF958 + bl LoadCompressedSpriteSheet + b _081BF9A6 + .align 2, 0 +_081BF958: .4byte 0x085ED40C +_081BF95C: + ldr r0, _081BF96C + bl LoadCompressedSpriteSheet + ldr r0, _081BF970 + ldr r1, [r0] + ldr r2, _081BF974 + adds r1, r1, r2 + b _081BF9AE + .align 2, 0 +_081BF96C: .4byte 0x085ED4C4 +_081BF970: .4byte 0x0203CBE8 +_081BF974: .4byte 0x000040F0 +_081BF978: + ldr r0, _081BF980 + bl LoadCompressedSpriteSheet + b _081BF9A6 + .align 2, 0 +_081BF980: .4byte 0x085ED548 +_081BF984: + ldr r0, _081BF994 + bl LoadCompressedSpritePalette + ldr r0, _081BF998 + ldr r1, [r0] + ldr r2, _081BF99C + adds r1, r1, r2 + b _081BF9AE + .align 2, 0 +_081BF994: .4byte 0x085ED550 +_081BF998: .4byte 0x0203CBE8 +_081BF99C: .4byte 0x000040F0 +_081BF9A0: + ldr r0, _081BF9B8 + bl LoadCompressedSpritePalette +_081BF9A6: + ldr r0, _081BF9BC + ldr r1, [r0] +_081BF9AA: + ldr r0, _081BF9C0 + adds r1, r1, r0 +_081BF9AE: + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _081BF9EC + .align 2, 0 +_081BF9B8: .4byte 0x085ED4CC +_081BF9BC: .4byte 0x0203CBE8 +_081BF9C0: .4byte 0x000040F0 +_081BF9C4: + ldr r0, _081BF9E0 + movs r1, #0xe8 + lsls r1, r1, #1 + movs r2, #0x60 + bl LoadCompressedPalette + ldr r0, _081BF9E4 + ldr r0, [r0] + ldr r1, _081BF9E8 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0] + movs r0, #1 + b _081BF9EE + .align 2, 0 +_081BF9E0: .4byte 0x08D97C54 +_081BF9E4: .4byte 0x0203CBE8 +_081BF9E8: .4byte 0x000040F0 +_081BF9EC: + movs r0, #0 +_081BF9EE: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SummaryScreen_DecompressGraphics + + thumb_func_start CopyMonToSummaryStruct +CopyMonToSummaryStruct: @ 0x081BF9F8 + push {r4, lr} + adds r3, r0, #0 + ldr r0, _081BFA24 + ldr r1, [r0] + ldr r2, _081BFA28 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _081BFA30 + ldr r2, [r1] + ldr r4, _081BFA2C + adds r0, r1, r4 + ldrb r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + adds r1, r1, r2 + adds r0, r3, #0 + movs r2, #0x64 + bl memcpy + b _081BFA46 + .align 2, 0 +_081BFA24: .4byte 0x0203CBE8 +_081BFA28: .4byte 0x000040BD +_081BFA2C: .4byte 0x000040BE +_081BFA30: + ldr r0, [r1] + ldr r2, _081BFA4C + adds r1, r1, r2 + ldrb r2, [r1] + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #4 + adds r0, r0, r1 + adds r1, r3, #0 + bl BoxMonToMon +_081BFA46: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081BFA4C: .4byte 0x000040BE + thumb_func_end CopyMonToSummaryStruct + + thumb_func_start ExtractMonDataToSummaryStruct +ExtractMonDataToSummaryStruct: @ 0x081BFA50 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldr r0, _081BFA78 + ldr r6, [r0] + adds r5, r6, #0 + adds r5, #0x70 + ldr r1, _081BFA7C + adds r0, r6, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #1 + beq _081BFAF8 + cmp r0, #1 + bgt _081BFA80 + cmp r0, #0 + beq _081BFA8C + b _081BFC4A + .align 2, 0 +_081BFA78: .4byte 0x0203CBE8 +_081BFA7C: .4byte 0x000040F0 +_081BFA80: + cmp r0, #2 + beq _081BFB36 + cmp r0, #3 + bne _081BFA8A + b _081BFBF4 +_081BFA8A: + b _081BFC4A +_081BFA8C: + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + strh r0, [r5] + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + strh r0, [r5, #2] + adds r0, r4, #0 + movs r1, #0x19 + bl GetMonData + str r0, [r5, #0x10] + adds r0, r4, #0 + movs r1, #0x38 + bl GetMonData + strb r0, [r5, #5] + adds r0, r4, #0 + movs r1, #0x2e + bl GetMonData + strb r0, [r5, #8] + adds r0, r4, #0 + movs r1, #0xc + bl GetMonData + strh r0, [r5, #0x2e] + adds r0, r4, #0 + movs r1, #0 + bl GetMonData + str r0, [r5, #0xc] + adds r0, r4, #0 + movs r1, #4 + bl GetMonData + adds r1, r6, #0 + adds r1, #0xa5 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081BFAEC + movs r0, #1 + strb r0, [r5, #4] + b _081BFC58 +_081BFAEC: + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + strb r0, [r5, #4] + b _081BFC58 +_081BFAF8: + movs r5, #0 + adds r7, r6, #0 + adds r7, #0x8c + movs r0, #0xa4 + adds r0, r0, r6 + mov r8, r0 + adds r6, #0x84 +_081BFB06: + adds r1, r5, #0 + adds r1, #0xd + adds r0, r4, #0 + bl GetMonData + strh r0, [r6] + adds r1, r5, #0 + adds r1, #0x11 + adds r0, r4, #0 + bl GetMonData + adds r1, r7, r5 + strb r0, [r1] + adds r6, #2 + adds r5, #1 + cmp r5, #3 + bls _081BFB06 + adds r0, r4, #0 + movs r1, #0x15 + bl GetMonData + mov r1, r8 + strb r0, [r1] + b _081BFC58 +_081BFB36: + ldr r1, [r6] + ldr r0, _081BFB98 + cmp r1, r0 + beq _081BFB48 + ldr r1, _081BFB9C + adds r0, r6, r1 + ldrb r0, [r0] + cmp r0, #2 + bne _081BFBA0 +_081BFB48: + adds r0, r4, #0 + bl GetNature + adds r1, r6, #0 + adds r1, #0xa3 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + strh r0, [r5, #0x20] + adds r0, r4, #0 + movs r1, #0x3a + bl GetMonData + strh r0, [r5, #0x22] + adds r0, r4, #0 + movs r1, #0x3b + bl GetMonData + strh r0, [r5, #0x24] + adds r0, r4, #0 + movs r1, #0x3c + bl GetMonData + strh r0, [r5, #0x26] + adds r0, r4, #0 + movs r1, #0x3e + bl GetMonData + strh r0, [r5, #0x28] + adds r0, r4, #0 + movs r1, #0x3f + bl GetMonData + strh r0, [r5, #0x2a] + adds r0, r4, #0 + movs r1, #0x3d + b _081BFBEC + .align 2, 0 +_081BFB98: .4byte 0x02024190 +_081BFB9C: .4byte 0x000040BC +_081BFBA0: + adds r0, r4, #0 + bl GetNature + adds r1, r6, #0 + adds r1, #0xa3 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + strh r0, [r5, #0x20] + adds r0, r4, #0 + movs r1, #0x3a + bl GetMonData + strh r0, [r5, #0x22] + adds r0, r4, #0 + movs r1, #0x54 + bl GetMonData + strh r0, [r5, #0x24] + adds r0, r4, #0 + movs r1, #0x55 + bl GetMonData + strh r0, [r5, #0x26] + adds r0, r4, #0 + movs r1, #0x57 + bl GetMonData + strh r0, [r5, #0x28] + adds r0, r4, #0 + movs r1, #0x58 + bl GetMonData + strh r0, [r5, #0x2a] + adds r0, r4, #0 + movs r1, #0x56 +_081BFBEC: + bl GetMonData + strh r0, [r5, #0x2c] + b _081BFC58 +_081BFBF4: + adds r2, r6, #0 + adds r2, #0xa6 + adds r0, r4, #0 + movs r1, #7 + bl GetMonData + adds r0, r4, #0 + bl GetMonAilment + strb r0, [r5, #7] + adds r0, r4, #0 + movs r1, #0x31 + bl GetMonData + adds r1, r6, #0 + adds r1, #0xa2 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #1 + bl GetMonData + str r0, [r5, #0x48] + adds r0, r4, #0 + movs r1, #0x23 + bl GetMonData + strb r0, [r5, #9] + adds r0, r4, #0 + movs r1, #0x24 + bl GetMonData + strb r0, [r5, #0xa] + adds r0, r4, #0 + movs r1, #0x25 + bl GetMonData + strb r0, [r5, #0xb] + adds r0, r4, #0 + movs r1, #0x20 + bl GetMonData + strh r0, [r5, #0x30] + b _081BFC58 +_081BFC4A: + adds r0, r4, #0 + movs r1, #0x52 + bl GetMonData + strb r0, [r5, #6] + movs r0, #1 + b _081BFC68 +_081BFC58: + ldr r0, _081BFC74 + ldr r1, [r0] + ldr r0, _081BFC78 + adds r1, r1, r0 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + movs r0, #0 +_081BFC68: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081BFC74: .4byte 0x0203CBE8 +_081BFC78: .4byte 0x000040F0 + thumb_func_end ExtractMonDataToSummaryStruct + + thumb_func_start sub_081BFC7C +sub_081BFC7C: @ 0x081BFC7C + push {r4, r5, r6, lr} + ldr r6, _081BFCA8 + ldr r2, [r6] + ldr r1, _081BFCAC + adds r0, r2, r1 + ldrb r0, [r0] + subs r0, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _081BFCB0 + movs r0, #0 + movs r1, #0xff + bl sub_081C16D8 + movs r0, #0 + movs r1, #0xff + movs r2, #0 + bl sub_081C1830 + b _081BFD0C + .align 2, 0 +_081BFCA8: .4byte 0x0203CBE8 +_081BFCAC: .4byte 0x000040C0 +_081BFCB0: + ldr r1, _081BFD24 + adds r0, r2, r1 + ldrb r1, [r0] + lsls r1, r1, #1 + adds r0, r2, #0 + adds r0, #0x84 + adds r0, r0, r1 + ldrh r0, [r0] + bl DrawContestMoveHearts + ldr r0, [r6] + ldr r5, _081BFD28 + adds r0, r0, r5 + movs r1, #3 + movs r2, #0 + bl sub_081C1AC8 + ldr r0, [r6] + ldr r4, _081BFD2C + adds r0, r0, r4 + movs r1, #1 + movs r2, #0 + bl sub_081C1AC8 + ldr r1, [r6] + adds r1, r1, r4 + movs r0, #1 + bl SetBgTilemapBuffer + ldr r1, [r6] + adds r1, r1, r5 + movs r0, #2 + bl SetBgTilemapBuffer + movs r1, #0x80 + lsls r1, r1, #9 + movs r0, #2 + movs r2, #1 + bl ChangeBgX + movs r0, #0x13 + bl ClearWindowTilemap + movs r0, #0xd + bl ClearWindowTilemap +_081BFD0C: + ldr r0, _081BFD30 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0x77 + ldrb r0, [r0] + cmp r0, #0 + bne _081BFD34 + movs r0, #0 + movs r1, #0xff + bl sub_081C19A8 + b _081BFD4A + .align 2, 0 +_081BFD24: .4byte 0x000040C6 +_081BFD28: .4byte 0x000020BC +_081BFD2C: .4byte 0x000030BC +_081BFD30: .4byte 0x0203CBE8 +_081BFD34: + ldr r2, _081BFD60 + adds r0, r1, r2 + ldrb r0, [r0] + subs r0, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _081BFD4A + movs r0, #0xd + bl PutWindowTilemap +_081BFD4A: + bl LimitEggSummaryPageDisplay + ldr r0, _081BFD64 + ldr r0, [r0] + adds r0, #0xc + bl DrawPokerusCuredSymbol + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081BFD60: .4byte 0x000040C0 +_081BFD64: .4byte 0x0203CBE8 + thumb_func_end sub_081BFC7C + + thumb_func_start sub_081BFD68 +sub_081BFD68: @ 0x081BFD68 + push {lr} + bl FreeAllWindowBuffers + ldr r0, _081BFD7C + ldr r0, [r0] + bl Free + pop {r0} + bx r0 + .align 2, 0 +_081BFD7C: .4byte 0x0203CBE8 + thumb_func_end sub_081BFD68 + + thumb_func_start BeginCloseSummaryScreen +BeginCloseSummaryScreen: @ 0x081BFD80 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _081BFDB0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081BFDB4 + str r1, [r0] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081BFDB0: .4byte 0x03005B60 +_081BFDB4: .4byte 0x081BFDB9 + thumb_func_end BeginCloseSummaryScreen + + thumb_func_start CloseSummaryScreen +CloseSummaryScreen: @ 0x081BFDB8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + bl sub_081221F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081BFE20 + ldr r0, _081BFE28 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081BFE20 + ldr r4, _081BFE2C + ldr r0, [r4] + ldr r0, [r0, #4] + bl SetMainCallback2 + ldr r1, _081BFE30 + ldr r0, [r4] + ldr r2, _081BFE34 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r1] + bl SummaryScreen_DestroyUnknownTask + bl ResetSpriteData + bl FreeAllSpritePalettes + bl StopCryAndClearCrySongs + ldr r0, _081BFE38 + ldr r1, _081BFE3C + movs r2, #0x80 + lsls r2, r2, #1 + bl m4aMPlayVolumeControl + ldr r0, _081BFE40 + ldr r0, [r0] + cmp r0, #0 + bne _081BFE16 + movs r0, #0 + bl sub_0806EF00 +_081BFE16: + bl sub_081BFD68 + adds r0, r5, #0 + bl DestroyTask +_081BFE20: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081BFE28: .4byte 0x02037C74 +_081BFE2C: .4byte 0x0203CBE8 +_081BFE30: .4byte 0x0203CBEC +_081BFE34: .4byte 0x000040BE +_081BFE38: .4byte 0x030074D0 +_081BFE3C: .4byte 0x0000FFFF +_081BFE40: .4byte 0x02024178 + thumb_func_end CloseSummaryScreen + + thumb_func_start HandleInput +HandleInput: @ 0x081BFE44 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl sub_081221F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081BFF32 + ldr r0, _081BFE7C + ldrb r1, [r0, #7] + movs r2, #0x80 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _081BFF32 + ldr r5, _081BFE80 + ldrh r1, [r5, #0x2e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _081BFE84 + movs r1, #1 + rsbs r1, r1, #0 + adds r0, r4, #0 + bl ChangeSummaryPokemon + b _081BFF32 + .align 2, 0 +_081BFE7C: .4byte 0x02037C74 +_081BFE80: .4byte 0x03002360 +_081BFE84: + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _081BFE96 + adds r0, r4, #0 + movs r1, #1 + bl ChangeSummaryPokemon + b _081BFF32 +_081BFE96: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _081BFEAA + bl GetLRKeysState + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081BFEB6 +_081BFEAA: + movs r1, #1 + rsbs r1, r1, #0 + adds r0, r4, #0 + bl ChangePage + b _081BFF32 +_081BFEB6: + ldrh r1, [r5, #0x2e] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _081BFECC + bl GetLRKeysState + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _081BFED6 +_081BFECC: + adds r0, r4, #0 + movs r1, #1 + bl ChangePage + b _081BFF32 +_081BFED6: + ldrh r1, [r5, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081BFF1A + ldr r0, _081BFF04 + ldr r0, [r0] + ldr r1, _081BFF08 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + beq _081BFF32 + cmp r0, #0 + bne _081BFF0C + bl StopPokemonAnimations + movs r0, #5 + bl PlaySE + adds r0, r4, #0 + bl BeginCloseSummaryScreen + b _081BFF32 + .align 2, 0 +_081BFF04: .4byte 0x0203CBE8 +_081BFF08: .4byte 0x000040C0 +_081BFF0C: + movs r0, #5 + bl PlaySE + adds r0, r4, #0 + bl sub_081C077C + b _081BFF32 +_081BFF1A: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081BFF32 + bl StopPokemonAnimations + movs r0, #5 + bl PlaySE + adds r0, r4, #0 + bl BeginCloseSummaryScreen +_081BFF32: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end HandleInput + + thumb_func_start ChangeSummaryPokemon +ChangeSummaryPokemon: @ 0x081BFF38 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + adds r4, r5, #0 + ldr r1, _081BFF7C + ldr r3, [r1] + ldr r2, _081BFF80 + adds r0, r3, r2 + ldrb r0, [r0] + adds r6, r1, #0 + cmp r0, #0 + bne _081C0022 + ldr r1, _081BFF84 + adds r0, r3, r1 + ldrb r2, [r0] + cmp r2, #1 + bne _081BFFAC + adds r1, #3 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _081BFF88 + lsls r1, r5, #0x18 + asrs r1, r1, #0x18 + movs r4, #2 + eors r1, r2 + rsbs r0, r1, #0 + orrs r0, r1 + asrs r0, r0, #0x1f + ands r4, r0 + b _081BFF90 + .align 2, 0 +_081BFF7C: .4byte 0x0203CBE8 +_081BFF80: .4byte 0x000040C3 +_081BFF84: .4byte 0x000040BD +_081BFF88: + movs r4, #3 + cmp r5, #1 + bne _081BFF90 + movs r4, #1 +_081BFF90: + ldr r2, [r6] + ldr r0, [r2] + ldr r3, _081BFFA8 + adds r1, r2, r3 + ldrb r1, [r1] + adds r3, #1 + adds r2, r2, r3 + ldrb r2, [r2] + adds r3, r4, #0 + bl sub_080D19EC + b _081BFFCA + .align 2, 0 +_081BFFA8: .4byte 0x000040BE +_081BFFAC: + bl IsMultiBattle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081BFFC2 + lsls r0, r5, #0x18 + asrs r0, r0, #0x18 + bl sub_081C02E8 + b _081BFFCA +_081BFFC2: + lsls r0, r4, #0x18 + asrs r0, r0, #0x18 + bl sub_081C022C +_081BFFCA: + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _081C0022 + movs r0, #5 + bl PlaySE + ldr r5, _081C0028 + ldr r0, [r5] + adds r0, #0x77 + ldrb r0, [r0] + cmp r0, #0 + beq _081C0008 + movs r0, #2 + movs r1, #1 + bl SetSpriteInvisibility + movs r0, #0xd + bl ClearWindowTilemap + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #0 + movs r1, #2 + bl sub_081C19A8 +_081C0008: + ldr r0, [r5] + ldr r1, _081C002C + adds r0, r0, r1 + movs r2, #0 + strb r4, [r0] + ldr r1, _081C0030 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r2, [r0, #8] + ldr r1, _081C0034 + str r1, [r0] +_081C0022: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C0028: .4byte 0x0203CBE8 +_081C002C: .4byte 0x000040BE +_081C0030: .4byte 0x03005B60 +_081C0034: .4byte 0x081C0039 + thumb_func_end ChangeSummaryPokemon + + thumb_func_start sub_081C0038 +sub_081C0038: @ 0x081C0038 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r4, r1, #3 + ldr r6, _081C005C + adds r5, r4, r6 + movs r1, #0 + ldrsh r0, [r5, r1] + cmp r0, #0xc + bls _081C0052 + b _081C01F0 +_081C0052: + lsls r0, r0, #2 + ldr r1, _081C0060 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081C005C: .4byte 0x03005B68 +_081C0060: .4byte 0x081C0064 +_081C0064: @ jump table + .4byte _081C0098 @ case 0 + .4byte _081C009E @ case 1 + .4byte _081C00B4 @ case 2 + .4byte _081C00DC @ case 3 + .4byte _081C00FC @ case 4 + .4byte _081C0114 @ case 5 + .4byte _081C0124 @ case 6 + .4byte _081C0134 @ case 7 + .4byte _081C015C @ case 8 + .4byte _081C01A0 @ case 9 + .4byte _081C01A6 @ case 10 + .4byte _081C01AC @ case 11 + .4byte _081C01C8 @ case 12 +_081C0098: + bl StopCryAndClearCrySongs + b _081C0220 +_081C009E: + bl SummaryScreen_DestroyUnknownTask + ldr r0, _081C00AC + ldr r0, [r0] + ldr r1, _081C00B0 + b _081C00BA + .align 2, 0 +_081C00AC: .4byte 0x0203CBE8 +_081C00B0: .4byte 0x000040D3 +_081C00B4: + ldr r0, _081C00D0 + ldr r0, [r0] + ldr r1, _081C00D4 +_081C00BA: + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _081C00D8 + adds r0, r0, r1 + bl DestroySpriteAndFreeResources + b _081C0220 + .align 2, 0 +_081C00D0: .4byte 0x0203CBE8 +_081C00D4: .4byte 0x000040D4 +_081C00D8: .4byte 0x020205AC +_081C00DC: + ldr r4, _081C00F4 + ldr r0, [r4] + adds r0, #0xc + bl CopyMonToSummaryStruct + ldr r0, [r4] + ldr r1, _081C00F8 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0] + b _081C0220 + .align 2, 0 +_081C00F4: .4byte 0x0203CBE8 +_081C00F8: .4byte 0x000040F0 +_081C00FC: + ldr r0, _081C0110 + ldr r0, [r0] + adds r0, #0xc + bl ExtractMonDataToSummaryStruct + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081C010E + b _081C0226 +_081C010E: + b _081C0220 + .align 2, 0 +_081C0110: .4byte 0x0203CBE8 +_081C0114: + ldr r0, _081C0120 + ldr r0, [r0] + adds r0, #0xc + bl RemoveAndCreateMonMarkingsSprite + b _081C0220 + .align 2, 0 +_081C0120: .4byte 0x0203CBE8 +_081C0124: + ldr r0, _081C0130 + ldr r0, [r0] + adds r0, #0xc + bl CreateCaughtBallSprite + b _081C0220 + .align 2, 0 +_081C0130: .4byte 0x0203CBE8 +_081C0134: + ldr r4, _081C0158 + ldr r0, [r4] + adds r0, #0x77 + ldrb r0, [r0] + cmp r0, #0 + beq _081C014A + movs r1, #2 + rsbs r1, r1, #0 + movs r0, #0xa + bl sub_081C19A8 +_081C014A: + ldr r0, [r4] + adds r0, #0xc + bl DrawPokerusCuredSymbol + movs r0, #0 + strh r0, [r5, #2] + b _081C0220 + .align 2, 0 +_081C0158: .4byte 0x0203CBE8 +_081C015C: + ldr r4, _081C0194 + ldr r0, [r4] + adds r0, #0xc + adds r1, r5, #2 + bl CreatePokemonSprite + ldr r1, [r4] + ldr r2, _081C0198 + adds r1, r1, r2 + strb r0, [r1] + ldr r0, [r4] + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, #0xff + beq _081C0226 + ldr r2, _081C019C + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #1 + strh r1, [r0, #0x32] + bl CheckExperienceProgressBar + movs r0, #0 + strh r0, [r5, #2] + b _081C0220 + .align 2, 0 +_081C0194: .4byte 0x0203CBE8 +_081C0198: .4byte 0x000040D3 +_081C019C: .4byte 0x020205AC +_081C01A0: + bl SetTypeIcons + b _081C0220 +_081C01A6: + bl Summary_PrintMonInfo + b _081C0220 +_081C01AC: + ldr r0, _081C01C0 + ldr r0, [r0] + ldr r1, _081C01C4 + adds r0, r0, r1 + ldrb r0, [r0] + bl PrintPageSpecificText + bl LimitEggSummaryPageDisplay + b _081C0220 + .align 2, 0 +_081C01C0: .4byte 0x0203CBE8 +_081C01C4: .4byte 0x000040C0 +_081C01C8: + ldr r2, _081C01E4 + ldr r0, _081C01E8 + ldr r0, [r0] + ldr r1, _081C01EC + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0 + strh r1, [r0, #0x32] + b _081C0220 + .align 2, 0 +_081C01E4: .4byte 0x020205AC +_081C01E8: .4byte 0x0203CBE8 +_081C01EC: .4byte 0x000040D3 +_081C01F0: + bl sub_081221F8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081C0226 + ldr r0, _081C0218 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _081C0226 + strh r0, [r5] + adds r0, r6, #0 + subs r0, #8 + adds r0, r4, r0 + ldr r1, _081C021C + str r1, [r0] + b _081C0226 + .align 2, 0 +_081C0218: .4byte 0x081C1A25 +_081C021C: .4byte 0x081BFE45 +_081C0220: + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] +_081C0226: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_081C0038 + + thumb_func_start sub_081C022C +sub_081C022C: @ 0x081C022C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _081C0284 + ldr r2, [r1] + ldr r7, [r2] + ldr r3, _081C0288 + adds r0, r2, r3 + ldrb r0, [r0] + adds r5, r1, #0 + cmp r0, #0 + bne _081C0294 + lsls r0, r4, #0x18 + asrs r3, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + adds r6, r0, #0 + cmp r3, r1 + bne _081C025C + ldr r1, _081C028C + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _081C02BC +_081C025C: + asrs r0, r6, #0x18 + cmp r0, #1 + bne _081C0274 + ldr r0, [r5] + ldr r2, _081C028C + adds r1, r0, r2 + ldr r3, _081C0290 + adds r0, r0, r3 + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bhs _081C02BC +_081C0274: + ldr r0, [r5] + ldr r1, _081C028C + adds r0, r0, r1 + ldrb r0, [r0] + adds r0, r0, r4 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + b _081C02E2 + .align 2, 0 +_081C0284: .4byte 0x0203CBE8 +_081C0288: .4byte 0x000040C0 +_081C028C: .4byte 0x000040BE +_081C0290: .4byte 0x000040BF +_081C0294: + ldr r3, _081C02C4 + adds r0, r2, r3 + ldrb r5, [r0] + lsls r6, r4, #0x18 +_081C029C: + lsls r0, r5, #0x18 + asrs r0, r0, #0x18 + asrs r1, r6, #0x18 + adds r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + asrs r4, r0, #0x18 + cmp r4, #0 + blt _081C02BC + ldr r0, _081C02C8 + ldr r0, [r0] + ldr r1, _081C02CC + adds r0, r0, r1 + ldrb r0, [r0] + cmp r4, r0 + ble _081C02D0 +_081C02BC: + movs r0, #1 + rsbs r0, r0, #0 + b _081C02E2 + .align 2, 0 +_081C02C4: .4byte 0x000040BE +_081C02C8: .4byte 0x0203CBE8 +_081C02CC: .4byte 0x000040BF +_081C02D0: + movs r0, #0x64 + muls r0, r4, r0 + adds r0, r7, r0 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + bne _081C029C + adds r0, r4, #0 +_081C02E2: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_081C022C + + thumb_func_start sub_081C02E8 +sub_081C02E8: @ 0x081C02E8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov ip, r0 + ldr r6, _081C0368 + ldr r0, [r6] + ldr r1, [r0] + mov r8, r1 + movs r5, #0 + movs r2, #0 + ldr r3, _081C036C + movs r1, #0 + ldrsb r1, [r3, r1] + ldr r4, _081C0370 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r1, r0 + beq _081C0330 + adds r7, r3, #0 + adds r3, r4, #0 +_081C0314: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #5 + bhi _081C0330 + adds r0, r2, r7 + movs r1, #0 + ldrsb r1, [r0, r1] + ldr r0, [r6] + adds r0, r0, r3 + ldrb r0, [r0] + cmp r1, r0 + bne _081C0314 + adds r5, r2, #0 +_081C0330: + mov r0, ip + lsls r6, r0, #0x18 + ldr r7, _081C036C +_081C0336: + lsls r0, r5, #0x18 + asrs r0, r0, #0x18 + asrs r1, r6, #0x18 + adds r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r5, #0x18 + lsrs r0, r1, #0x18 + cmp r0, #5 + bhi _081C0374 + asrs r0, r1, #0x18 + adds r0, r0, r7 + movs r4, #0 + ldrsb r4, [r0, r4] + movs r0, #0x64 + muls r0, r4, r0 + add r0, r8 + bl sub_081C0384 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081C0336 + adds r0, r4, #0 + b _081C0378 + .align 2, 0 +_081C0368: .4byte 0x0203CBE8 +_081C036C: .4byte 0x085ED064 +_081C0370: .4byte 0x000040BE +_081C0374: + movs r0, #1 + rsbs r0, r0, #0 +_081C0378: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081C02E8 + + thumb_func_start sub_081C0384 +sub_081C0384: @ 0x081C0384 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _081C03B8 + ldr r0, _081C03B0 + ldr r0, [r0] + ldr r1, _081C03B4 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _081C03AC + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + bne _081C03B8 +_081C03AC: + movs r0, #1 + b _081C03BA + .align 2, 0 +_081C03B0: .4byte 0x0203CBE8 +_081C03B4: .4byte 0x000040BE +_081C03B8: + movs r0, #0 +_081C03BA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081C0384 + + thumb_func_start ChangePage +ChangePage: @ 0x081C03C0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + str r6, [sp] + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + str r3, [sp, #4] + ldr r0, _081C0468 + mov r8, r0 + ldr r2, [r0] + adds r1, r2, #0 + adds r1, #0x70 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r7, r0, #3 + ldr r0, _081C046C + mov sb, r0 + adds r0, r7, r0 + str r0, [sp, #8] + ldrb r1, [r1, #4] + mov sl, r1 + cmp r1, #0 + bne _081C04A2 + lsls r0, r3, #0x18 + asrs r5, r0, #0x18 + movs r0, #1 + rsbs r0, r0, #0 + cmp r5, r0 + bne _081C0414 + ldr r1, _081C0470 + adds r0, r2, r1 + ldr r3, _081C0474 + adds r1, r2, r3 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _081C04A2 +_081C0414: + cmp r5, #1 + bne _081C0428 + ldr r1, _081C0470 + adds r0, r2, r1 + ldr r3, _081C0478 + adds r1, r2, r3 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _081C04A2 +_081C0428: + movs r0, #5 + bl PlaySE + mov r1, r8 + ldr r0, [r1] + ldr r4, _081C0470 + adds r0, r0, r4 + ldrb r0, [r0] + bl ClearPageWindowTilemaps + mov r2, r8 + ldr r1, [r2] + adds r1, r1, r4 + ldrb r0, [r1] + ldr r3, [sp, #4] + adds r0, r0, r3 + strb r0, [r1] + mov r1, sl + ldr r0, [sp, #8] + strh r1, [r0] + cmp r5, #1 + bne _081C0480 + ldr r1, _081C047C + mov r0, sb + subs r0, #8 + adds r0, r7, r0 + ldr r2, [r0] + adds r0, r6, #0 + bl SetTaskFuncWithFollowupFunc + b _081C0490 + .align 2, 0 +_081C0468: .4byte 0x0203CBE8 +_081C046C: .4byte 0x03005B68 +_081C0470: .4byte 0x000040C0 +_081C0474: .4byte 0x000040C1 +_081C0478: .4byte 0x000040C2 +_081C047C: .4byte 0x081C04C1 +_081C0480: + ldr r1, _081C04B4 + mov r0, sb + subs r0, #8 + adds r0, r7, r0 + ldr r2, [r0] + ldr r0, [sp] + bl SetTaskFuncWithFollowupFunc +_081C0490: + ldr r0, _081C04B8 + ldr r0, [r0] + ldr r2, _081C04BC + adds r0, r0, r2 + ldrb r0, [r0] + bl CreateTextPrinterTask + bl HidePageSpecificSprites +_081C04A2: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C04B4: .4byte 0x081C05F9 +_081C04B8: .4byte 0x0203CBE8 +_081C04BC: .4byte 0x000040C0 + thumb_func_end ChangePage + + thumb_func_start PssScrollRight +PssScrollRight: @ 0x081C04C0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _081C0508 + adds r4, r0, r1 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _081C055E + ldr r0, _081C050C + ldr r0, [r0] + ldr r3, _081C0510 + adds r0, r0, r3 + ldrb r0, [r0] + cmp r0, #0 + bne _081C0514 + movs r0, #1 + strh r0, [r4, #2] + movs r0, #1 + movs r1, #7 + movs r2, #1 + bl SetBgAttribute + movs r0, #2 + movs r1, #7 + movs r2, #2 + bl SetBgAttribute + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + b _081C0532 + .align 2, 0 +_081C0508: .4byte 0x03005B68 +_081C050C: .4byte 0x0203CBE8 +_081C0510: .4byte 0x000040C9 +_081C0514: + movs r0, #2 + strh r0, [r4, #2] + movs r0, #2 + movs r1, #7 + movs r2, #1 + bl SetBgAttribute + movs r0, #1 + movs r1, #7 + movs r2, #2 + bl SetBgAttribute + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram +_081C0532: + ldrb r0, [r4, #2] + movs r1, #0 + movs r2, #0 + bl ChangeBgX + ldrb r0, [r4, #2] + ldr r1, _081C058C + ldr r1, [r1] + ldr r3, _081C0590 + adds r2, r1, r3 + ldrb r2, [r2] + lsls r2, r2, #0xc + adds r2, #0xbc + adds r1, r1, r2 + bl SetBgTilemapBuffer + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg +_081C055E: + ldrb r0, [r4, #2] + movs r1, #0x80 + lsls r1, r1, #6 + movs r2, #1 + bl ChangeBgX + ldrh r0, [r4] + adds r0, #0x20 + strh r0, [r4] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xff + ble _081C0586 + ldr r0, _081C0594 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081C0598 + str r0, [r1] +_081C0586: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C058C: .4byte 0x0203CBE8 +_081C0590: .4byte 0x000040C0 +_081C0594: .4byte 0x03005B60 +_081C0598: .4byte 0x081C059D + thumb_func_end PssScrollRight + + thumb_func_start PssScrollRightEnd +PssScrollRightEnd: @ 0x081C059C + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r2, r4, #2 + adds r2, r2, r4 + lsls r2, r2, #3 + ldr r0, _081C05E8 + adds r2, r2, r0 + ldr r5, _081C05EC + ldr r3, [r5] + ldr r0, _081C05F0 + adds r3, r3, r0 + ldrb r0, [r3] + movs r1, #1 + eors r0, r1 + movs r1, #0 + strb r0, [r3] + strh r1, [r2, #2] + strh r1, [r2] + bl DrawPagination + ldr r0, [r5] + ldr r1, _081C05F4 + adds r0, r0, r1 + ldrb r0, [r0] + bl CreatePageWindowTilemaps + bl SetTypeIcons + bl CheckExperienceProgressBar + adds r0, r4, #0 + bl SwitchTaskToFollowupFunc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C05E8: .4byte 0x03005B68 +_081C05EC: .4byte 0x0203CBE8 +_081C05F0: .4byte 0x000040C9 +_081C05F4: .4byte 0x000040C0 + thumb_func_end PssScrollRightEnd + + thumb_func_start PssScrollLeft +PssScrollLeft: @ 0x081C05F8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _081C0624 + adds r4, r0, r1 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _081C0640 + ldr r0, _081C0628 + ldr r0, [r0] + ldr r1, _081C062C + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _081C0630 + movs r0, #2 + b _081C0632 + .align 2, 0 +_081C0624: .4byte 0x03005B68 +_081C0628: .4byte 0x0203CBE8 +_081C062C: .4byte 0x000040C9 +_081C0630: + movs r0, #1 +_081C0632: + strh r0, [r4, #2] + ldrb r0, [r4, #2] + movs r1, #0x80 + lsls r1, r1, #9 + movs r2, #0 + bl ChangeBgX +_081C0640: + ldrb r0, [r4, #2] + movs r1, #0x80 + lsls r1, r1, #6 + movs r2, #2 + bl ChangeBgX + ldrh r0, [r4] + adds r0, #0x20 + strh r0, [r4] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xff + ble _081C0668 + ldr r0, _081C0670 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081C0674 + str r0, [r1] +_081C0668: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C0670: .4byte 0x03005B60 +_081C0674: .4byte 0x081C0679 + thumb_func_end PssScrollLeft + + thumb_func_start PssScrollLeftEnd +PssScrollLeftEnd: @ 0x081C0678 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _081C06B4 + adds r4, r0, r1 + ldr r0, _081C06B8 + ldr r0, [r0] + ldr r1, _081C06BC + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _081C06C0 + movs r0, #1 + movs r1, #7 + movs r2, #1 + bl SetBgAttribute + movs r0, #2 + movs r1, #7 + movs r2, #2 + bl SetBgAttribute + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + b _081C06DA + .align 2, 0 +_081C06B4: .4byte 0x03005B68 +_081C06B8: .4byte 0x0203CBE8 +_081C06BC: .4byte 0x000040C9 +_081C06C0: + movs r0, #2 + movs r1, #7 + movs r2, #1 + bl SetBgAttribute + movs r0, #1 + movs r1, #7 + movs r2, #2 + bl SetBgAttribute + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram +_081C06DA: + ldr r6, _081C0748 + ldr r2, [r6] + ldr r7, _081C074C + adds r1, r2, r7 + ldrb r0, [r1] + cmp r0, #1 + bls _081C0704 + ldrb r0, [r4, #2] + ldrb r1, [r1] + lsls r1, r1, #0xc + ldr r3, _081C0750 + adds r1, r1, r3 + adds r1, r2, r1 + bl SetBgTilemapBuffer + ldrb r0, [r4, #2] + movs r1, #0x80 + lsls r1, r1, #9 + movs r2, #0 + bl ChangeBgX +_081C0704: + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + ldr r2, [r6] + ldr r0, _081C0754 + adds r2, r2, r0 + ldrb r0, [r2] + movs r1, #1 + eors r0, r1 + movs r1, #0 + strb r0, [r2] + strh r1, [r4, #2] + strh r1, [r4] + bl DrawPagination + ldr r0, [r6] + adds r0, r0, r7 + ldrb r0, [r0] + bl CreatePageWindowTilemaps + bl SetTypeIcons + bl CheckExperienceProgressBar + adds r0, r5, #0 + bl SwitchTaskToFollowupFunc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C0748: .4byte 0x0203CBE8 +_081C074C: .4byte 0x000040C0 +_081C0750: .4byte 0xFFFFF0BC +_081C0754: .4byte 0x000040C9 + thumb_func_end PssScrollLeftEnd + + thumb_func_start CheckExperienceProgressBar +CheckExperienceProgressBar: @ 0x081C0758 + push {lr} + ldr r0, _081C0774 + ldr r1, [r0] + ldr r2, _081C0778 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #1 + bne _081C0770 + adds r0, r1, #0 + adds r0, #0xc + bl DrawExperienceProgressBar +_081C0770: + pop {r0} + bx r0 + .align 2, 0 +_081C0774: .4byte 0x0203CBE8 +_081C0778: .4byte 0x000040C0 + thumb_func_end CheckExperienceProgressBar + + thumb_func_start sub_081C077C +sub_081C077C: @ 0x081C077C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r5, _081C0854 + ldr r0, [r5] + ldr r2, _081C0858 + adds r0, r0, r2 + movs r1, #0 + strb r1, [r0] + ldr r1, [r5] + adds r2, r1, r2 + ldrb r0, [r2] + lsls r0, r0, #1 + adds r1, #0x84 + adds r1, r1, r0 + ldrh r6, [r1] + mov r8, r6 + movs r0, #0x13 + bl ClearWindowTilemap + ldr r2, _081C085C + ldr r0, [r5] + ldr r1, _081C0860 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + blt _081C07CA + movs r0, #0xd + bl ClearWindowTilemap +_081C07CA: + movs r4, #3 + rsbs r4, r4, #0 + movs r0, #9 + adds r1, r4, #0 + bl sub_081C16D8 + movs r0, #9 + adds r1, r4, #0 + adds r2, r6, #0 + bl sub_081C1830 + ldr r0, [r5] + ldr r1, _081C0864 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _081C07F8 + movs r0, #5 + bl ClearWindowTilemap + movs r0, #6 + bl PutWindowTilemap +_081C07F8: + ldr r0, [r5] + ldr r1, _081C0868 + adds r0, r0, r1 + movs r1, #3 + movs r2, #0 + bl sub_081C1AC8 + ldr r0, [r5] + ldr r1, _081C086C + adds r0, r0, r1 + movs r1, #1 + movs r2, #0 + bl sub_081C1AC8 + mov r0, r8 + bl PrintMoveDetails + bl PrintNewMoveDetailsOrCancelText + bl SetNewMoveTypeIcon + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #8 + bl sub_081C4300 + ldr r1, _081C0870 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081C0874 + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C0854: .4byte 0x0203CBE8 +_081C0858: .4byte 0x000040C6 +_081C085C: .4byte 0x020205AC +_081C0860: .4byte 0x000040D5 +_081C0864: .4byte 0x000040C8 +_081C0868: .4byte 0x000020BC +_081C086C: .4byte 0x000030BC +_081C0870: .4byte 0x03005B60 +_081C0874: .4byte 0x081C0879 + thumb_func_end sub_081C077C + + thumb_func_start HandleInput_MoveSelect +HandleInput_MoveSelect: @ 0x081C0878 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r6, r5, #0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _081C08BC + adds r4, r0, r1 + bl sub_081221F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081C096E + ldr r0, _081C08C0 + ldrh r1, [r0, #0x2e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _081C08CC + movs r0, #4 + strh r0, [r4] + movs r1, #1 + rsbs r1, r1, #0 + ldr r0, _081C08C4 + ldr r2, [r0] + ldr r0, _081C08C8 + adds r2, r2, r0 + adds r0, r4, #0 + bl sub_081C09A4 + b _081C096E + .align 2, 0 +_081C08BC: .4byte 0x03005B68 +_081C08C0: .4byte 0x03002360 +_081C08C4: .4byte 0x0203CBE8 +_081C08C8: .4byte 0x000040C6 +_081C08CC: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _081C08F4 + movs r0, #4 + strh r0, [r4] + ldr r0, _081C08EC + ldr r2, [r0] + ldr r0, _081C08F0 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #1 + bl sub_081C09A4 + b _081C096E + .align 2, 0 +_081C08EC: .4byte 0x0203CBE8 +_081C08F0: .4byte 0x000040C6 +_081C08F4: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081C095A + ldr r0, _081C092C + ldr r1, [r0] + ldr r2, _081C0930 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #1 + beq _081C091C + subs r2, #4 + adds r0, r1, r2 + ldr r0, [r0] + ldr r1, _081C0934 + ands r0, r1 + movs r1, #0x80 + lsls r1, r1, #0xb + cmp r0, r1 + bne _081C0938 +_081C091C: + movs r0, #5 + bl PlaySE + adds r0, r5, #0 + bl sub_081C0B28 + b _081C096E + .align 2, 0 +_081C092C: .4byte 0x0203CBE8 +_081C0930: .4byte 0x000040C8 +_081C0934: .4byte 0x00FFFFFF +_081C0938: + bl sub_081C0974 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081C0952 + movs r0, #5 + bl PlaySE + adds r0, r5, #0 + bl sub_081C0BD0 + b _081C096E +_081C0952: + movs r0, #0x20 + bl PlaySE + b _081C096E +_081C095A: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081C096E + movs r0, #5 + bl PlaySE + adds r0, r6, #0 + bl sub_081C0B28 +_081C096E: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end HandleInput_MoveSelect + + thumb_func_start sub_081C0974 +sub_081C0974: @ 0x081C0974 + push {lr} + movs r1, #1 + ldr r0, _081C0990 + ldr r0, [r0] + adds r2, r0, #0 + adds r2, #0x84 +_081C0980: + lsls r0, r1, #1 + adds r0, r2, r0 + ldrh r0, [r0] + cmp r0, #0 + beq _081C0994 + movs r0, #1 + b _081C09A0 + .align 2, 0 +_081C0990: .4byte 0x0203CBE8 +_081C0994: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #3 + bls _081C0980 + movs r0, #0 +_081C09A0: + pop {r1} + bx r1 + thumb_func_end sub_081C0974 + + thumb_func_start sub_081C09A4 +sub_081C09A4: @ 0x081C09A4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + adds r4, r1, #0 + mov r8, r2 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #5 + bl PlaySE + mov r0, r8 + ldrb r6, [r0] + movs r2, #0 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + mov ip, r4 + movs r1, #0 + ldrsh r4, [r7, r1] + ldrb r0, [r7] + lsls r3, r0, #0x18 +_081C09D0: + lsls r0, r6, #0x18 + asrs r0, r0, #0x18 + add r0, ip + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, r4 + ble _081C09E4 + movs r6, #0 + b _081C09EA +_081C09E4: + cmp r0, #0 + bge _081C09EA + lsrs r6, r3, #0x18 +_081C09EA: + lsls r0, r6, #0x18 + asrs r1, r0, #0x18 + mov sb, r0 + cmp r1, #4 + bne _081C09F6 + b _081C0B00 +_081C09F6: + ldr r0, _081C0AEC + ldr r0, [r0] + lsls r1, r1, #1 + adds r0, #0x84 + adds r0, r0, r1 + ldrh r5, [r0] + cmp r5, #0 + bne _081C0A16 + lsls r0, r2, #0x18 + movs r1, #0x80 + lsls r1, r1, #0x11 + adds r0, r0, r1 + lsrs r2, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #3 + ble _081C09D0 +_081C0A16: + adds r0, r5, #0 + bl DrawContestMoveHearts + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + adds r0, r5, #0 + bl PrintMoveDetails + mov r1, r8 + ldrb r0, [r1] + cmp r0, #4 + bne _081C0A44 + ldr r0, _081C0AEC + ldr r0, [r0] + ldr r1, _081C0AF0 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0 + beq _081C0A4C +_081C0A44: + movs r1, #2 + ldrsh r0, [r7, r1] + cmp r0, #1 + bne _081C0A92 +_081C0A4C: + movs r0, #0x13 + bl ClearWindowTilemap + ldr r2, _081C0AF4 + ldr r0, _081C0AEC + ldr r0, [r0] + ldr r1, _081C0AF8 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + blt _081C0A76 + movs r0, #0xd + bl ClearWindowTilemap +_081C0A76: + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + movs r4, #3 + rsbs r4, r4, #0 + movs r0, #9 + adds r1, r4, #0 + bl sub_081C16D8 + movs r0, #9 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_081C1830 +_081C0A92: + mov r1, r8 + ldrb r0, [r1] + cmp r0, #4 + beq _081C0AD4 + mov r1, sb + asrs r0, r1, #0x18 + cmp r0, #4 + bne _081C0AD4 + ldr r0, _081C0AEC + ldr r0, [r0] + ldr r1, _081C0AF0 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0 + bne _081C0AD4 + movs r0, #0xe + bl ClearWindowTilemap + movs r0, #0xf + bl ClearWindowTilemap + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #0 + movs r1, #3 + bl sub_081C16D8 + movs r0, #0 + movs r1, #3 + movs r2, #0 + bl sub_081C1830 +_081C0AD4: + mov r0, r8 + strb r6, [r0] + ldr r0, _081C0AEC + ldr r0, [r0] + ldr r1, _081C0AFC + adds r0, r0, r1 + cmp r8, r0 + bne _081C0B14 + movs r0, #8 + bl sub_081C4520 + b _081C0B1A + .align 2, 0 +_081C0AEC: .4byte 0x0203CBE8 +_081C0AF0: .4byte 0x000040C4 +_081C0AF4: .4byte 0x020205AC +_081C0AF8: .4byte 0x000040D5 +_081C0AFC: .4byte 0x000040C6 +_081C0B00: + ldr r0, _081C0B0C + ldr r0, [r0] + ldr r1, _081C0B10 + adds r0, r0, r1 + ldrh r5, [r0] + b _081C0A16 + .align 2, 0 +_081C0B0C: .4byte 0x0203CBE8 +_081C0B10: .4byte 0x000040C4 +_081C0B14: + movs r0, #0x12 + bl sub_081C4520 +_081C0B1A: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081C09A4 + + thumb_func_start sub_081C0B28 +sub_081C0B28: @ 0x081C0B28 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r0, #8 + bl sub_081C4468 + movs r0, #6 + bl ClearWindowTilemap + movs r0, #5 + bl PutWindowTilemap + movs r0, #0 + bl PrintMoveDetails + ldr r4, _081C0BB8 + ldr r0, [r4] + ldr r1, _081C0BBC + adds r0, r0, r1 + movs r1, #3 + movs r2, #1 + bl sub_081C1AC8 + ldr r0, [r4] + ldr r1, _081C0BC0 + adds r0, r0, r1 + movs r1, #1 + movs r2, #1 + bl sub_081C1AC8 + bl sub_081C3888 + ldr r0, [r4] + ldr r1, _081C0BC4 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #4 + beq _081C0B92 + movs r0, #0xe + bl ClearWindowTilemap + movs r0, #0xf + bl ClearWindowTilemap + movs r0, #0 + movs r1, #3 + bl sub_081C16D8 + movs r0, #0 + movs r1, #3 + movs r2, #0 + bl sub_081C1830 +_081C0B92: + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + ldr r0, _081C0BC8 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081C0BCC + str r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C0BB8: .4byte 0x0203CBE8 +_081C0BBC: .4byte 0x000020BC +_081C0BC0: .4byte 0x000030BC +_081C0BC4: .4byte 0x000040C6 +_081C0BC8: .4byte 0x03005B60 +_081C0BCC: .4byte 0x081BFE45 + thumb_func_end sub_081C0B28 + + thumb_func_start sub_081C0BD0 +sub_081C0BD0: @ 0x081C0BD0 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081C0C08 + ldr r0, [r0] + ldr r2, _081C0C0C + adds r1, r0, r2 + ldrb r1, [r1] + adds r2, #1 + adds r0, r0, r2 + strb r1, [r0] + movs r0, #1 + bl sub_081C448C + movs r0, #0x12 + bl sub_081C4300 + ldr r1, _081C0C10 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081C0C14 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C0C08: .4byte 0x0203CBE8 +_081C0C0C: .4byte 0x000040C6 +_081C0C10: .4byte 0x03005B60 +_081C0C14: .4byte 0x081C0C19 + thumb_func_end sub_081C0BD0 + + thumb_func_start sub_081C0C18 +sub_081C0C18: @ 0x081C0C18 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r6, r5, #0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _081C0C5C + adds r4, r0, r1 + bl sub_081221F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081C0CDE + ldr r0, _081C0C60 + ldrh r1, [r0, #0x2e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _081C0C6C + movs r0, #3 + strh r0, [r4] + movs r1, #1 + rsbs r1, r1, #0 + ldr r0, _081C0C64 + ldr r2, [r0] + ldr r0, _081C0C68 + adds r2, r2, r0 + adds r0, r4, #0 + bl sub_081C09A4 + b _081C0CDE + .align 2, 0 +_081C0C5C: .4byte 0x03005B68 +_081C0C60: .4byte 0x03002360 +_081C0C64: .4byte 0x0203CBE8 +_081C0C68: .4byte 0x000040C7 +_081C0C6C: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _081C0C94 + movs r0, #3 + strh r0, [r4] + ldr r0, _081C0C8C + ldr r2, [r0] + ldr r0, _081C0C90 + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #1 + bl sub_081C09A4 + b _081C0CDE + .align 2, 0 +_081C0C8C: .4byte 0x0203CBE8 +_081C0C90: .4byte 0x000040C7 +_081C0C94: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081C0CCE + ldr r0, _081C0CBC + ldr r0, [r0] + ldr r2, _081C0CC0 + adds r1, r0, r2 + adds r2, #1 + adds r0, r0, r2 + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bne _081C0CC4 + adds r0, r5, #0 + movs r1, #0 + bl sub_081C0CE4 + b _081C0CDE + .align 2, 0 +_081C0CBC: .4byte 0x0203CBE8 +_081C0CC0: .4byte 0x000040C6 +_081C0CC4: + adds r0, r5, #0 + movs r1, #1 + bl sub_081C0CE4 + b _081C0CDE +_081C0CCE: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081C0CDE + adds r0, r6, #0 + movs r1, #0 + bl sub_081C0CE4 +_081C0CDE: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_081C0C18 + + thumb_func_start sub_081C0CE4 +sub_081C0CE4: @ 0x081C0CE4 + push {r4, r5, r6, r7, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #5 + bl PlaySE + movs r0, #0 + bl sub_081C448C + movs r0, #0x12 + bl sub_081C4468 + cmp r4, #1 + bne _081C0D98 + ldr r0, _081C0D34 + ldr r3, [r0] + ldr r1, _081C0D38 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _081C0D44 + ldr r0, [r3] + ldr r2, _081C0D3C + adds r1, r3, r2 + ldrb r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + adds r0, r0, r1 + ldr r4, _081C0D40 + adds r1, r3, r4 + ldrb r1, [r1] + adds r4, #1 + adds r2, r3, r4 + ldrb r2, [r2] + bl SwapBoxMonMoves + b _081C0D64 + .align 2, 0 +_081C0D34: .4byte 0x0203CBE8 +_081C0D38: .4byte 0x000040BD +_081C0D3C: .4byte 0x000040BE +_081C0D40: .4byte 0x000040C6 +_081C0D44: + ldr r0, [r3] + ldr r2, _081C0DD8 + adds r1, r3, r2 + ldrb r2, [r1] + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #4 + adds r0, r0, r1 + ldr r4, _081C0DDC + adds r1, r3, r4 + ldrb r1, [r1] + adds r4, #1 + adds r2, r3, r4 + ldrb r2, [r2] + bl SwapMonMoves +_081C0D64: + ldr r5, _081C0DE0 + ldr r0, [r5] + adds r0, #0xc + bl CopyMonToSummaryStruct + ldr r1, [r5] + ldr r6, _081C0DDC + adds r0, r1, r6 + ldrb r0, [r0] + ldr r4, _081C0DE4 + adds r1, r1, r4 + ldrb r1, [r1] + bl PrintEggOTName + ldr r1, [r5] + adds r0, r1, r6 + ldrb r0, [r0] + adds r1, r1, r4 + ldrb r1, [r1] + bl sub_081C3D8C + ldr r0, [r5] + adds r4, r0, r4 + ldrb r1, [r4] + adds r0, r0, r6 + strb r1, [r0] +_081C0D98: + ldr r0, _081C0DE0 + ldr r1, [r0] + ldr r2, _081C0DDC + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r1, #0x84 + adds r1, r1, r0 + ldrh r4, [r1] + adds r0, r4, #0 + bl PrintMoveDetails + adds r0, r4, #0 + bl DrawContestMoveHearts + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, _081C0DE8 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081C0DEC + str r1, [r0] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C0DD8: .4byte 0x000040BE +_081C0DDC: .4byte 0x000040C6 +_081C0DE0: .4byte 0x0203CBE8 +_081C0DE4: .4byte 0x000040C7 +_081C0DE8: .4byte 0x03005B60 +_081C0DEC: .4byte 0x081C0879 + thumb_func_end sub_081C0CE4 + + thumb_func_start SwapBoxMonMoves +SwapBoxMonMoves: @ 0x081C0DF0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x28 + adds r7, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + ldr r0, _081C0F18 + ldr r2, [r0] + lsls r0, r4, #1 + mov sl, r0 + adds r1, r2, #0 + adds r1, #0x84 + adds r0, r1, r0 + str r0, [sp, #8] + ldrh r0, [r0] + mov r3, sp + adds r3, #2 + str r3, [sp, #0x1c] + strh r0, [r3] + lsls r0, r6, #1 + mov sb, r0 + add r1, sb + str r1, [sp, #0xc] + ldrh r1, [r1] + mov r0, sp + strh r1, [r0] + adds r1, r2, #0 + adds r1, #0x8c + adds r3, r1, r4 + str r3, [sp, #0x10] + ldrb r0, [r3] + mov r3, sp + adds r3, #5 + str r3, [sp, #0x24] + strb r0, [r3] + adds r1, r1, r6 + str r1, [sp, #0x14] + ldrb r0, [r1] + mov r1, sp + adds r1, #4 + str r1, [sp, #0x20] + strb r0, [r1] + adds r2, #0xa4 + str r2, [sp, #0x18] + ldrb r0, [r2] + mov r5, sp + adds r5, #6 + strb r0, [r5] + ldr r1, _081C0F1C + adds r0, r4, r1 + ldrb r0, [r0] + mov r8, r0 + ldrb r0, [r5] + adds r2, r0, #0 + mov r3, r8 + ands r2, r3 + mov r3, sl + asrs r2, r3 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r1, r6, r1 + ldrb r1, [r1] + mov ip, r1 + adds r1, r0, #0 + mov r3, ip + ands r1, r3 + mov r3, sb + asrs r1, r3 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r3, r8 + bics r0, r3 + strb r0, [r5] + ldrb r0, [r5] + mov r3, ip + bics r0, r3 + strb r0, [r5] + mov r0, sb + lsls r2, r0 + mov r3, sl + lsls r1, r3 + adds r2, r2, r1 + ldrb r0, [r5] + orrs r0, r2 + strb r0, [r5] + adds r1, r4, #0 + adds r1, #0xd + adds r0, r7, #0 + mov r2, sp + bl SetMonData + adds r1, r6, #0 + adds r1, #0xd + adds r0, r7, #0 + ldr r2, [sp, #0x1c] + bl SetMonData + adds r4, #0x11 + adds r0, r7, #0 + adds r1, r4, #0 + ldr r2, [sp, #0x20] + bl SetMonData + adds r6, #0x11 + adds r0, r7, #0 + adds r1, r6, #0 + ldr r2, [sp, #0x24] + bl SetMonData + adds r0, r7, #0 + movs r1, #0x15 + adds r2, r5, #0 + bl SetMonData + mov r0, sp + ldrh r0, [r0] + ldr r1, [sp, #8] + strh r0, [r1] + ldr r3, [sp, #0x1c] + ldrh r0, [r3] + ldr r1, [sp, #0xc] + strh r0, [r1] + ldr r3, [sp, #0x20] + ldrb r0, [r3] + ldr r1, [sp, #0x10] + strb r0, [r1] + ldr r3, [sp, #0x24] + ldrb r0, [r3] + ldr r1, [sp, #0x14] + strb r0, [r1] + ldrb r0, [r5] + ldr r3, [sp, #0x18] + strb r0, [r3] + add sp, #0x28 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C0F18: .4byte 0x0203CBE8 +_081C0F1C: .4byte 0x082FA6AA + thumb_func_end SwapBoxMonMoves + + thumb_func_start SwapMonMoves +SwapMonMoves: @ 0x081C0F20 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x28 + adds r7, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + ldr r0, _081C1048 + ldr r2, [r0] + lsls r0, r4, #1 + mov sl, r0 + adds r1, r2, #0 + adds r1, #0x84 + adds r0, r1, r0 + str r0, [sp, #8] + ldrh r0, [r0] + mov r3, sp + adds r3, #2 + str r3, [sp, #0x1c] + strh r0, [r3] + lsls r0, r6, #1 + mov sb, r0 + add r1, sb + str r1, [sp, #0xc] + ldrh r1, [r1] + mov r0, sp + strh r1, [r0] + adds r1, r2, #0 + adds r1, #0x8c + adds r3, r1, r4 + str r3, [sp, #0x10] + ldrb r0, [r3] + mov r3, sp + adds r3, #5 + str r3, [sp, #0x24] + strb r0, [r3] + adds r1, r1, r6 + str r1, [sp, #0x14] + ldrb r0, [r1] + mov r1, sp + adds r1, #4 + str r1, [sp, #0x20] + strb r0, [r1] + adds r2, #0xa4 + str r2, [sp, #0x18] + ldrb r0, [r2] + mov r5, sp + adds r5, #6 + strb r0, [r5] + ldr r1, _081C104C + adds r0, r4, r1 + ldrb r0, [r0] + mov r8, r0 + ldrb r0, [r5] + adds r2, r0, #0 + mov r3, r8 + ands r2, r3 + mov r3, sl + asrs r2, r3 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r1, r6, r1 + ldrb r1, [r1] + mov ip, r1 + adds r1, r0, #0 + mov r3, ip + ands r1, r3 + mov r3, sb + asrs r1, r3 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r3, r8 + bics r0, r3 + strb r0, [r5] + ldrb r0, [r5] + mov r3, ip + bics r0, r3 + strb r0, [r5] + mov r0, sb + lsls r2, r0 + mov r3, sl + lsls r1, r3 + adds r2, r2, r1 + ldrb r0, [r5] + orrs r0, r2 + strb r0, [r5] + adds r1, r4, #0 + adds r1, #0xd + adds r0, r7, #0 + mov r2, sp + bl SetBoxMonData + adds r1, r6, #0 + adds r1, #0xd + adds r0, r7, #0 + ldr r2, [sp, #0x1c] + bl SetBoxMonData + adds r4, #0x11 + adds r0, r7, #0 + adds r1, r4, #0 + ldr r2, [sp, #0x20] + bl SetBoxMonData + adds r6, #0x11 + adds r0, r7, #0 + adds r1, r6, #0 + ldr r2, [sp, #0x24] + bl SetBoxMonData + adds r0, r7, #0 + movs r1, #0x15 + adds r2, r5, #0 + bl SetBoxMonData + mov r0, sp + ldrh r0, [r0] + ldr r1, [sp, #8] + strh r0, [r1] + ldr r3, [sp, #0x1c] + ldrh r0, [r3] + ldr r1, [sp, #0xc] + strh r0, [r1] + ldr r3, [sp, #0x20] + ldrb r0, [r3] + ldr r1, [sp, #0x10] + strb r0, [r1] + ldr r3, [sp, #0x24] + ldrb r0, [r3] + ldr r1, [sp, #0x14] + strb r0, [r1] + ldrb r0, [r5] + ldr r3, [sp, #0x18] + strb r0, [r3] + add sp, #0x28 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C1048: .4byte 0x0203CBE8 +_081C104C: .4byte 0x082FA6AA + thumb_func_end SwapMonMoves + + thumb_func_start sub_081C1050 +sub_081C1050: @ 0x081C1050 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl SetNewMoveTypeIcon + movs r0, #8 + bl sub_081C4300 + ldr r1, _081C1078 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081C107C + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C1078: .4byte 0x03005B60 +_081C107C: .4byte 0x081C1081 + thumb_func_end sub_081C1050 + + thumb_func_start HandleReplaceMoveInput +HandleReplaceMoveInput: @ 0x081C1080 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _081C10D4 + adds r4, r0, r1 + bl sub_081221F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081C109E + b _081C11CE +_081C109E: + ldr r0, _081C10D8 + ldrb r1, [r0, #7] + movs r2, #0x80 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _081C10AE + b _081C11CE +_081C10AE: + ldr r6, _081C10DC + ldrh r1, [r6, #0x2e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _081C10E8 + movs r0, #4 + strh r0, [r4] + movs r1, #1 + rsbs r1, r1, #0 + ldr r0, _081C10E0 + ldr r2, [r0] + ldr r0, _081C10E4 + adds r2, r2, r0 + adds r0, r4, #0 + bl sub_081C09A4 + b _081C11CE + .align 2, 0 +_081C10D4: .4byte 0x03005B68 +_081C10D8: .4byte 0x02037C74 +_081C10DC: .4byte 0x03002360 +_081C10E0: .4byte 0x0203CBE8 +_081C10E4: .4byte 0x000040C6 +_081C10E8: + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _081C1110 + movs r0, #4 + strh r0, [r4] + ldr r0, _081C1108 + ldr r2, [r0] + ldr r1, _081C110C + adds r2, r2, r1 + adds r0, r4, #0 + movs r1, #1 + bl sub_081C09A4 + b _081C11CE + .align 2, 0 +_081C1108: .4byte 0x0203CBE8 +_081C110C: .4byte 0x000040C6 +_081C1110: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _081C1124 + bl GetLRKeysState + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081C1130 +_081C1124: + movs r1, #1 + rsbs r1, r1, #0 + adds r0, r5, #0 + bl ChangePage + b _081C11CE +_081C1130: + ldrh r1, [r6, #0x2e] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _081C1146 + bl GetLRKeysState + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _081C1150 +_081C1146: + adds r0, r5, #0 + movs r1, #1 + bl ChangePage + b _081C11CE +_081C1150: + ldrh r1, [r6, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081C11AA + bl CanReplaceMove + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081C119C + bl StopPokemonAnimations + movs r0, #5 + bl PlaySE + ldr r2, _081C118C + ldr r0, _081C1190 + ldr r0, [r0] + ldr r1, _081C1194 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r2] + ldr r1, _081C1198 + ldrb r0, [r2] + strh r0, [r1] + adds r0, r5, #0 + bl BeginCloseSummaryScreen + b _081C11CE + .align 2, 0 +_081C118C: .4byte 0x0203CBED +_081C1190: .4byte 0x0203CBE8 +_081C1194: .4byte 0x000040C6 +_081C1198: .4byte 0x02037282 +_081C119C: + movs r0, #0x20 + bl PlaySE + adds r0, r5, #0 + bl ShowHMMovesCantBeForgottenWindow + b _081C11CE +_081C11AA: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081C11CE + bl StopPokemonAnimations + movs r0, #5 + bl PlaySE + ldr r1, _081C11D4 + movs r0, #4 + strb r0, [r1] + ldr r1, _081C11D8 + movs r0, #4 + strh r0, [r1] + adds r0, r5, #0 + bl BeginCloseSummaryScreen +_081C11CE: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081C11D4: .4byte 0x0203CBED +_081C11D8: .4byte 0x02037282 + thumb_func_end HandleReplaceMoveInput + + thumb_func_start CanReplaceMove +CanReplaceMove: @ 0x081C11DC + push {lr} + ldr r0, _081C1214 + ldr r2, [r0] + ldr r0, _081C1218 + adds r1, r2, r0 + ldrb r0, [r1] + cmp r0, #4 + beq _081C120E + ldr r3, _081C121C + adds r0, r2, r3 + ldrh r0, [r0] + cmp r0, #0 + beq _081C120E + ldrb r1, [r1] + lsls r1, r1, #1 + adds r0, r2, #0 + adds r0, #0x84 + adds r0, r0, r1 + ldrh r0, [r0] + bl IsMoveHm + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081C1220 +_081C120E: + movs r0, #1 + b _081C1222 + .align 2, 0 +_081C1214: .4byte 0x0203CBE8 +_081C1218: .4byte 0x000040C6 +_081C121C: .4byte 0x000040C4 +_081C1220: + movs r0, #0 +_081C1222: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CanReplaceMove + + thumb_func_start ShowHMMovesCantBeForgottenWindow +ShowHMMovesCantBeForgottenWindow: @ 0x081C1228 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0xe + bl ClearWindowTilemap + movs r0, #0xf + bl ClearWindowTilemap + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #0 + movs r1, #3 + bl sub_081C16D8 + movs r0, #0 + movs r1, #3 + movs r2, #0 + bl sub_081C1830 + bl PrintHMMovesCantBeForgotten + ldr r1, _081C126C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081C1270 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C126C: .4byte 0x03005B60 +_081C1270: .4byte 0x081C1275 + thumb_func_end ShowHMMovesCantBeForgottenWindow + + thumb_func_start HandleHMMovesCantBeForgottenInput +HandleHMMovesCantBeForgottenInput: @ 0x081C1274 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + mov r8, r0 + ldr r0, _081C12D0 + mov sb, r0 + mov r4, r8 + add r4, sb + ldr r0, _081C12D4 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081C12A0 + b _081C14A8 +_081C12A0: + ldr r6, _081C12D8 + ldrh r1, [r6, #0x2e] + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0 + beq _081C12E4 + movs r0, #1 + strh r0, [r4, #2] + movs r0, #4 + strh r0, [r4] + movs r1, #1 + rsbs r1, r1, #0 + ldr r0, _081C12DC + ldr r2, [r0] + ldr r0, _081C12E0 + adds r2, r2, r0 + adds r0, r4, #0 + bl sub_081C09A4 + movs r0, #0 + strh r0, [r4, #2] + b _081C149E + .align 2, 0 +_081C12D0: .4byte 0x03005B68 +_081C12D4: .4byte 0x081C1755 +_081C12D8: .4byte 0x03002360 +_081C12DC: .4byte 0x0203CBE8 +_081C12E0: .4byte 0x000040C6 +_081C12E4: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _081C1310 + movs r0, #1 + strh r0, [r4, #2] + movs r0, #4 + strh r0, [r4] + ldr r0, _081C1308 + ldr r2, [r0] + ldr r1, _081C130C + adds r2, r2, r1 + adds r0, r4, #0 + movs r1, #1 + bl sub_081C09A4 + strh r5, [r4, #2] + b _081C149E + .align 2, 0 +_081C1308: .4byte 0x0203CBE8 +_081C130C: .4byte 0x000040C6 +_081C1310: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _081C1324 + bl GetLRKeysState + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081C1398 +_081C1324: + ldr r4, _081C1380 + ldr r0, [r4] + ldr r2, _081C1384 + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #2 + bne _081C1334 + b _081C14A8 +_081C1334: + movs r0, #0x13 + bl ClearWindowTilemap + ldr r2, _081C1388 + ldr r0, [r4] + ldr r1, _081C138C + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + blt _081C135C + movs r0, #0xd + bl ClearWindowTilemap +_081C135C: + ldr r1, [r4] + ldr r2, _081C1390 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r1, #0x84 + adds r1, r1, r0 + ldrh r5, [r1] + mov r0, sb + subs r0, #8 + add r0, r8 + ldr r1, _081C1394 + str r1, [r0] + movs r1, #1 + rsbs r1, r1, #0 + adds r0, r7, #0 + b _081C1402 + .align 2, 0 +_081C1380: .4byte 0x0203CBE8 +_081C1384: .4byte 0x000040C0 +_081C1388: .4byte 0x020205AC +_081C138C: .4byte 0x000040D5 +_081C1390: .4byte 0x000040C6 +_081C1394: .4byte 0x081C1081 +_081C1398: + ldrh r1, [r6, #0x2e] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _081C13AE + bl GetLRKeysState + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _081C1438 +_081C13AE: + ldr r4, _081C1420 + ldr r0, [r4] + ldr r1, _081C1424 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #3 + beq _081C14A8 + movs r0, #0x13 + bl ClearWindowTilemap + ldr r2, _081C1428 + ldr r0, [r4] + ldr r1, _081C142C + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + blt _081C13E4 + movs r0, #0xd + bl ClearWindowTilemap +_081C13E4: + ldr r1, [r4] + ldr r2, _081C1430 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r1, #0x84 + adds r1, r1, r0 + ldrh r5, [r1] + mov r0, sb + subs r0, #8 + add r0, r8 + ldr r1, _081C1434 + str r1, [r0] + adds r0, r7, #0 + movs r1, #1 +_081C1402: + bl ChangePage + movs r4, #2 + rsbs r4, r4, #0 + movs r0, #9 + adds r1, r4, #0 + bl sub_081C16D8 + movs r0, #9 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_081C1830 + b _081C14A8 + .align 2, 0 +_081C1420: .4byte 0x0203CBE8 +_081C1424: .4byte 0x000040C0 +_081C1428: .4byte 0x020205AC +_081C142C: .4byte 0x000040D5 +_081C1430: .4byte 0x000040C6 +_081C1434: .4byte 0x081C1081 +_081C1438: + ldrh r1, [r6, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _081C14A8 + movs r0, #0x13 + bl ClearWindowTilemap + ldr r2, _081C14B4 + ldr r4, _081C14B8 + ldr r0, [r4] + ldr r1, _081C14BC + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + blt _081C146C + movs r0, #0xd + bl ClearWindowTilemap +_081C146C: + ldr r1, [r4] + ldr r2, _081C14C0 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r1, #0x84 + adds r1, r1, r0 + ldrh r5, [r1] + adds r0, r5, #0 + bl PrintMoveDetails + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + movs r4, #3 + rsbs r4, r4, #0 + movs r0, #9 + adds r1, r4, #0 + bl sub_081C16D8 + movs r0, #9 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_081C1830 +_081C149E: + mov r0, sb + subs r0, #8 + add r0, r8 + ldr r1, _081C14C4 + str r1, [r0] +_081C14A8: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C14B4: .4byte 0x020205AC +_081C14B8: .4byte 0x0203CBE8 +_081C14BC: .4byte 0x000040D5 +_081C14C0: .4byte 0x000040C6 +_081C14C4: .4byte 0x081C1081 + thumb_func_end HandleHMMovesCantBeForgottenInput + + thumb_func_start sub_081C14C8 +sub_081C14C8: @ 0x081C14C8 + ldr r0, _081C14D0 + ldrb r0, [r0] + bx lr + .align 2, 0 +_081C14D0: .4byte 0x0203CBED + thumb_func_end sub_081C14C8 + + thumb_func_start DrawPagination +DrawPagination: @ 0x081C14D4 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + movs r0, #0x20 + bl Alloc + adds r4, r0, #0 + movs r5, #0 +_081C14E2: + lsls r0, r5, #0x19 + lsrs r1, r0, #0x18 + adds r6, r1, #0 + ldr r0, _081C1504 + ldr r3, [r0] + ldr r2, _081C1508 + adds r0, r3, r2 + ldrb r0, [r0] + cmp r5, r0 + bhs _081C150C + lsls r0, r1, #1 + adds r0, r0, r4 + movs r1, #0x40 + strh r1, [r0] + strh r1, [r0, #2] + movs r1, #0x50 + b _081C1522 + .align 2, 0 +_081C1504: .4byte 0x0203CBE8 +_081C1508: .4byte 0x000040C1 +_081C150C: + ldr r7, _081C1528 + adds r0, r3, r7 + ldrb r2, [r0] + cmp r5, r2 + bls _081C152C + lsls r0, r1, #1 + adds r0, r0, r4 + movs r1, #0x4a + strh r1, [r0] + strh r1, [r0, #2] + movs r1, #0x5a +_081C1522: + strh r1, [r0, #0x10] + strh r1, [r0, #0x12] + b _081C15AC + .align 2, 0 +_081C1528: .4byte 0x000040C2 +_081C152C: + ldr r7, _081C154C + adds r0, r3, r7 + ldrb r0, [r0] + cmp r5, r0 + bhs _081C1550 + lsls r1, r1, #1 + adds r1, r1, r4 + movs r0, #0x46 + strh r0, [r1] + movs r0, #0x47 + strh r0, [r1, #2] + movs r0, #0x56 + strh r0, [r1, #0x10] + movs r0, #0x57 + b _081C15AA + .align 2, 0 +_081C154C: .4byte 0x000040C0 +_081C1550: + cmp r5, r0 + bne _081C1580 + cmp r5, r2 + beq _081C156C + lsls r1, r1, #1 + adds r1, r1, r4 + movs r0, #0x41 + strh r0, [r1] + movs r0, #0x42 + strh r0, [r1, #2] + movs r0, #0x51 + strh r0, [r1, #0x10] + movs r0, #0x52 + b _081C15AA +_081C156C: + lsls r1, r1, #1 + adds r1, r1, r4 + movs r0, #0x4b + strh r0, [r1] + movs r0, #0x4c + strh r0, [r1, #2] + movs r0, #0x5b + strh r0, [r1, #0x10] + movs r0, #0x5c + b _081C15AA +_081C1580: + cmp r5, r2 + beq _081C1598 + lsls r1, r1, #1 + adds r1, r1, r4 + movs r0, #0x43 + strh r0, [r1] + movs r0, #0x44 + strh r0, [r1, #2] + movs r0, #0x53 + strh r0, [r1, #0x10] + movs r0, #0x54 + b _081C15AA +_081C1598: + lsls r1, r6, #1 + adds r1, r1, r4 + movs r0, #0x48 + strh r0, [r1] + movs r0, #0x49 + strh r0, [r1, #2] + movs r0, #0x58 + strh r0, [r1, #0x10] + movs r0, #0x59 +_081C15AA: + strh r0, [r1, #0x12] +_081C15AC: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #3 + bls _081C14E2 + movs r0, #8 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #0x10 + str r0, [sp, #8] + movs r0, #3 + adds r1, r4, #0 + movs r2, #0xb + movs r3, #0 + bl CopyToBgTilemapBufferRect_ChangePalette + movs r0, #3 + bl schedule_bg_copy_tilemap_to_vram + adds r0, r4, #0 + bl Free + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end DrawPagination + + thumb_func_start sub_081C15E4 +sub_081C15E4: @ 0x081C15E4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r4, r0, #0 + mov r8, r1 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r5, r3, #0x18 + ldrb r1, [r4, #6] + ldrb r0, [r4, #7] + lsls r0, r0, #1 + muls r0, r1, r0 + bl Alloc + adds r7, r0, #0 + mov r1, sp + ldrh r0, [r4, #4] + strh r0, [r1] + ldrb r1, [r4, #7] + ldrb r0, [r4, #6] + adds r2, r1, #0 + muls r2, r0, r2 + movs r0, #0x80 + lsls r0, r0, #0x11 + orrs r2, r0 + mov r0, sp + adds r1, r7, #0 + bl CpuSet + ldrb r0, [r4, #6] + cmp r0, r6 + beq _081C1694 + cmp r5, #0 + bne _081C1664 + movs r5, #0 + ldrb r0, [r4, #7] + cmp r5, r0 + bhs _081C1694 +_081C1634: + ldrb r2, [r4, #6] + adds r1, r2, #0 + muls r1, r5, r1 + adds r3, r6, r1 + lsls r3, r3, #1 + ldr r0, [r4] + adds r0, r0, r3 + lsls r1, r1, #1 + adds r1, r7, r1 + subs r2, r2, r6 + ldr r3, _081C1660 + ands r2, r3 + bl CpuSet + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldrb r3, [r4, #7] + cmp r5, r3 + blo _081C1634 + b _081C1694 + .align 2, 0 +_081C1660: .4byte 0x001FFFFF +_081C1664: + movs r5, #0 + ldrb r0, [r4, #7] + cmp r5, r0 + bhs _081C1694 +_081C166C: + ldrb r2, [r4, #6] + adds r1, r2, #0 + muls r1, r5, r1 + lsls r3, r1, #1 + ldr r0, [r4] + adds r0, r0, r3 + adds r1, r6, r1 + lsls r1, r1, #1 + adds r1, r7, r1 + subs r2, r2, r6 + ldr r3, _081C1698 + ands r2, r3 + bl CpuSet + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldrb r3, [r4, #7] + cmp r5, r3 + blo _081C166C +_081C1694: + movs r5, #0 + b _081C16BE + .align 2, 0 +_081C1698: .4byte 0x001FFFFF +_081C169C: + ldrb r2, [r4, #6] + adds r0, r2, #0 + muls r0, r5, r0 + lsls r0, r0, #1 + adds r0, r7, r0 + ldrb r1, [r4, #9] + adds r1, r1, r5 + lsls r1, r1, #5 + ldrb r3, [r4, #8] + adds r1, r1, r3 + lsls r1, r1, #1 + add r1, r8 + bl CpuSet + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_081C16BE: + ldrb r0, [r4, #7] + cmp r5, r0 + blo _081C169C + adds r0, r7, #0 + bl Free + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081C15E4 + + thumb_func_start sub_081C16D8 +sub_081C16D8: @ 0x081C16D8 + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + asrs r1, r1, #0x10 + ldr r3, _081C1710 + ldrb r2, [r3, #6] + cmp r1, r2 + ble _081C16EE + adds r4, r2, #0 +_081C16EE: + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + beq _081C16FA + cmp r0, r2 + bne _081C171C +_081C16FA: + ldr r0, _081C1714 + ldr r1, [r0] + ldr r0, _081C1718 + adds r1, r1, r0 + lsls r2, r4, #0x18 + lsrs r2, r2, #0x18 + adds r0, r3, #0 + movs r3, #1 + bl sub_081C15E4 + b _081C1746 + .align 2, 0 +_081C1710: .4byte 0x085ED04C +_081C1714: .4byte 0x0203CBE8 +_081C1718: .4byte 0x000020BC +_081C171C: + ldr r5, _081C174C + adds r0, r5, #0 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xff + bne _081C1738 + adds r0, r5, #0 + movs r1, #8 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 +_081C1738: + ldr r1, _081C1750 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r4, [r0, #8] + strh r6, [r0, #0xa] +_081C1746: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081C174C: .4byte 0x081C1755 +_081C1750: .4byte 0x03005B60 + thumb_func_end sub_081C16D8 + + thumb_func_start sub_081C1754 +sub_081C1754: @ 0x081C1754 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _081C177C + adds r4, r0, r1 + ldrh r0, [r4] + ldrh r1, [r4, #2] + adds r0, r0, r1 + strh r0, [r4, #2] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _081C1784 + movs r0, #0 + strh r0, [r4, #2] + ldr r7, _081C1780 + b _081C1794 + .align 2, 0 +_081C177C: .4byte 0x03005B68 +_081C1780: .4byte 0x085ED04C +_081C1784: + movs r0, #2 + ldrsh r1, [r4, r0] + ldr r0, _081C17D0 + ldrb r2, [r0, #6] + adds r7, r0, #0 + cmp r1, r2 + ble _081C1794 + strh r2, [r4, #2] +_081C1794: + ldr r5, _081C17D4 + ldr r1, [r5] + ldr r0, _081C17D8 + adds r1, r1, r0 + ldrb r2, [r4, #2] + adds r0, r7, #0 + movs r3, #1 + bl sub_081C15E4 + movs r1, #2 + ldrsh r0, [r4, r1] + cmp r0, #0 + ble _081C17B4 + ldrb r7, [r7, #6] + cmp r0, r7 + blt _081C1814 +_081C17B4: + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #0 + bge _081C17E0 + ldr r0, [r5] + ldr r1, _081C17DC + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #2 + bne _081C1808 + movs r0, #0xe + bl PutWindowTilemap + b _081C1808 + .align 2, 0 +_081C17D0: .4byte 0x085ED04C +_081C17D4: .4byte 0x0203CBE8 +_081C17D8: .4byte 0x000020BC +_081C17DC: .4byte 0x000040C0 +_081C17E0: + ldr r2, _081C1828 + ldr r0, [r5] + ldr r1, _081C182C + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + blt _081C1802 + movs r0, #0xd + bl PutWindowTilemap +_081C1802: + movs r0, #0x13 + bl PutWindowTilemap +_081C1808: + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + adds r0, r6, #0 + bl DestroyTask +_081C1814: + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C1828: .4byte 0x020205AC +_081C182C: .4byte 0x000040D5 + thumb_func_end sub_081C1754 + + thumb_func_start sub_081C1830 +sub_081C1830: @ 0x081C1830 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + lsls r1, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r6, r2, #0x10 + lsrs r4, r1, #0x10 + asrs r1, r1, #0x10 + ldr r3, _081C186C + ldrb r2, [r3, #6] + cmp r1, r2 + ble _081C184A + adds r4, r2, #0 +_081C184A: + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + beq _081C1856 + cmp r0, r2 + bne _081C1878 +_081C1856: + ldr r0, _081C1870 + ldr r1, [r0] + ldr r0, _081C1874 + adds r1, r1, r0 + lsls r2, r4, #0x18 + lsrs r2, r2, #0x18 + adds r0, r3, #0 + movs r3, #1 + bl sub_081C15E4 + b _081C18A4 + .align 2, 0 +_081C186C: .4byte 0x085ED058 +_081C1870: .4byte 0x0203CBE8 +_081C1874: .4byte 0x000030BC +_081C1878: + ldr r5, _081C18AC + adds r0, r5, #0 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xff + bne _081C1894 + adds r0, r5, #0 + movs r1, #8 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 +_081C1894: + ldr r1, _081C18B0 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r4, [r0, #8] + strh r7, [r0, #0xa] + strh r6, [r0, #0xc] +_081C18A4: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C18AC: .4byte 0x081C18B5 +_081C18B0: .4byte 0x03005B60 + thumb_func_end sub_081C1830 + + thumb_func_start sub_081C18B4 +sub_081C18B4: @ 0x081C18B4 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _081C18DC + adds r4, r0, r1 + ldrh r0, [r4] + ldrh r1, [r4, #2] + adds r0, r0, r1 + strh r0, [r4, #2] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _081C18E4 + movs r0, #0 + strh r0, [r4, #2] + ldr r7, _081C18E0 + b _081C18F4 + .align 2, 0 +_081C18DC: .4byte 0x03005B68 +_081C18E0: .4byte 0x085ED058 +_081C18E4: + movs r0, #2 + ldrsh r1, [r4, r0] + ldr r0, _081C1944 + ldrb r2, [r0, #6] + adds r7, r0, #0 + cmp r1, r2 + ble _081C18F4 + strh r2, [r4, #2] +_081C18F4: + ldr r5, _081C1948 + ldr r1, [r5] + ldr r0, _081C194C + adds r1, r1, r0 + ldrb r2, [r4, #2] + adds r0, r7, #0 + movs r3, #1 + bl sub_081C15E4 + movs r1, #2 + ldrsh r0, [r4, r1] + cmp r0, #0 + ble _081C1914 + ldrb r7, [r7, #6] + cmp r0, r7 + blt _081C198C +_081C1914: + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #0 + bge _081C1958 + ldr r0, [r5] + ldr r1, _081C1950 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #3 + bne _081C193A + ldr r0, _081C1954 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081C193A + movs r0, #0xf + bl PutWindowTilemap +_081C193A: + ldrh r0, [r4, #4] + bl DrawContestMoveHearts + b _081C1980 + .align 2, 0 +_081C1944: .4byte 0x085ED058 +_081C1948: .4byte 0x0203CBE8 +_081C194C: .4byte 0x000030BC +_081C1950: .4byte 0x000040C0 +_081C1954: .4byte 0x081C04C1 +_081C1958: + ldr r2, _081C19A0 + ldr r0, [r5] + ldr r1, _081C19A4 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1d + cmp r0, #0 + blt _081C197A + movs r0, #0xd + bl PutWindowTilemap +_081C197A: + movs r0, #0x13 + bl PutWindowTilemap +_081C1980: + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + adds r0, r6, #0 + bl DestroyTask +_081C198C: + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C19A0: .4byte 0x020205AC +_081C19A4: .4byte 0x000040D5 + thumb_func_end sub_081C18B4 + + thumb_func_start sub_081C19A8 +sub_081C19A8: @ 0x081C19A8 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + asrs r1, r1, #0x10 + ldr r3, _081C19F0 + ldrb r2, [r3, #6] + cmp r1, r2 + ble _081C19BE + adds r4, r2, #0 +_081C19BE: + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + beq _081C19CA + cmp r0, r2 + bne _081C19FC +_081C19CA: + ldr r5, _081C19F4 + ldr r1, [r5] + adds r1, #0xbc + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r3, #0 + adds r2, r4, #0 + movs r3, #0 + bl sub_081C15E4 + ldr r0, _081C19F8 + ldr r1, [r5] + adds r1, #0xbc + adds r2, r4, #0 + movs r3, #0 + bl sub_081C15E4 + b _081C1A16 + .align 2, 0 +_081C19F0: .4byte 0x085ED034 +_081C19F4: .4byte 0x0203CBE8 +_081C19F8: .4byte 0x085ED040 +_081C19FC: + ldr r0, _081C1A1C + movs r1, #8 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _081C1A20 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #8] + strh r5, [r1, #0xa] +_081C1A16: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C1A1C: .4byte 0x081C1A25 +_081C1A20: .4byte 0x03005B60 + thumb_func_end sub_081C19A8 + + thumb_func_start sub_081C1A24 +sub_081C1A24: @ 0x081C1A24 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _081C1A4C + adds r5, r0, r1 + ldrh r0, [r5] + ldrh r1, [r5, #2] + adds r0, r0, r1 + strh r0, [r5, #2] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _081C1A54 + movs r0, #0 + strh r0, [r5, #2] + ldr r7, _081C1A50 + b _081C1A64 + .align 2, 0 +_081C1A4C: .4byte 0x03005B68 +_081C1A50: .4byte 0x085ED034 +_081C1A54: + movs r0, #2 + ldrsh r1, [r5, r0] + ldr r0, _081C1ABC + ldrb r2, [r0, #6] + adds r7, r0, #0 + cmp r1, r2 + ble _081C1A64 + strh r2, [r5, #2] +_081C1A64: + ldr r4, _081C1AC0 + ldr r1, [r4] + adds r1, #0xbc + ldrb r2, [r5, #2] + adds r0, r7, #0 + movs r3, #0 + bl sub_081C15E4 + ldr r0, _081C1AC4 + ldr r1, [r4] + adds r1, #0xbc + ldrb r2, [r5, #2] + movs r3, #0 + bl sub_081C15E4 + movs r0, #3 + bl schedule_bg_copy_tilemap_to_vram + movs r1, #2 + ldrsh r0, [r5, r1] + cmp r0, #0 + ble _081C1A96 + ldrb r7, [r7, #6] + cmp r0, r7 + blt _081C1AB4 +_081C1A96: + movs r1, #0 + ldrsh r0, [r5, r1] + cmp r0, #0 + bge _081C1AAE + bl CreateSetStatusSprite + movs r0, #0xd + bl PutWindowTilemap + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram +_081C1AAE: + adds r0, r6, #0 + bl DestroyTask +_081C1AB4: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C1ABC: .4byte 0x085ED034 +_081C1AC0: .4byte 0x0203CBE8 +_081C1AC4: .4byte 0x085ED040 + thumb_func_end sub_081C1A24 + + thumb_func_start sub_081C1AC8 +sub_081C1AC8: @ 0x081C1AC8 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + lsls r2, r2, #0x18 + lsls r1, r1, #0x1c + lsrs r4, r1, #0x10 + ldr r7, _081C1B10 + cmp r2, #0 + bne _081C1B18 + movs r3, #0 + ldr r5, _081C1B14 +_081C1ADC: + adds r2, r7, r3 + lsls r2, r2, #1 + adds r2, r2, r6 + lsls r0, r3, #1 + adds r0, r0, r5 + ldrh r1, [r0] + adds r1, r4, r1 + strh r1, [r2] + adds r0, r2, #0 + adds r0, #0x40 + strh r1, [r0] + adds r2, #0x80 + adds r0, r3, #0 + adds r0, #0x14 + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r0, [r0] + adds r0, r4, r0 + strh r0, [r2] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0x13 + bls _081C1ADC + b _081C1B50 + .align 2, 0 +_081C1B10: .4byte 0x0000056A +_081C1B14: .4byte 0x085ECFBC +_081C1B18: + movs r3, #0 + ldr r5, _081C1B58 +_081C1B1C: + adds r1, r7, r3 + lsls r1, r1, #1 + adds r1, r1, r6 + adds r0, r3, #0 + adds r0, #0x14 + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r0, [r0] + adds r0, r4, r0 + strh r0, [r1] + adds r2, r1, #0 + adds r2, #0x40 + adds r0, r3, #0 + adds r0, #0x28 + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r0, [r0] + adds r0, r4, r0 + strh r0, [r2] + adds r1, #0x80 + strh r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0x13 + bls _081C1B1C +_081C1B50: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C1B58: .4byte 0x085ECFBC + thumb_func_end sub_081C1AC8 + + thumb_func_start DrawPokerusCuredSymbol +DrawPokerusCuredSymbol: @ 0x081C1B5C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl CheckPartyPokerus + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081C1B90 + adds r0, r4, #0 + movs r1, #0 + bl CheckPartyHasHadPokerus + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081C1B90 + ldr r0, _081C1B88 + ldr r0, [r0] + ldr r2, _081C1B8C + adds r1, r0, r2 + movs r2, #0x2c + b _081C1B9A + .align 2, 0 +_081C1B88: .4byte 0x0203CBE8 +_081C1B8C: .4byte 0x00000482 +_081C1B90: + ldr r0, _081C1BB0 + ldr r0, [r0] + ldr r2, _081C1BB4 + adds r1, r0, r2 + ldr r2, _081C1BB8 +_081C1B9A: + strh r2, [r1] + ldr r1, _081C1BBC + adds r0, r0, r1 + strh r2, [r0] + movs r0, #3 + bl schedule_bg_copy_tilemap_to_vram + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C1BB0: .4byte 0x0203CBE8 +_081C1BB4: .4byte 0x00000482 +_081C1BB8: .4byte 0x0000081A +_081C1BBC: .4byte 0x00000C82 + thumb_func_end DrawPokerusCuredSymbol + + thumb_func_start Summary_SetDexNumberColor +Summary_SetDexNumberColor: @ 0x081C1BC0 + push {lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _081C1BE0 + movs r0, #8 + str r0, [sp] + str r1, [sp, #4] + movs r0, #3 + movs r1, #1 + movs r2, #4 + movs r3, #8 + bl sub_081998C8 + b _081C1BF4 +_081C1BE0: + movs r0, #8 + str r0, [sp] + movs r0, #5 + str r0, [sp, #4] + movs r0, #3 + movs r1, #1 + movs r2, #4 + movs r3, #8 + bl sub_081998C8 +_081C1BF4: + movs r0, #3 + bl schedule_bg_copy_tilemap_to_vram + add sp, #8 + pop {r0} + bx r0 + thumb_func_end Summary_SetDexNumberColor + + thumb_func_start DrawExperienceProgressBar +DrawExperienceProgressBar: @ 0x081C1C00 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _081C1C68 + ldr r1, [r0] + adds r6, r1, #0 + adds r6, #0x70 + ldrb r1, [r6, #5] + mov r8, r0 + cmp r1, #0x63 + bhi _081C1C74 + ldr r5, _081C1C6C + adds r2, r1, #0 + adds r1, r2, #1 + lsls r1, r1, #2 + ldr r4, _081C1C70 + ldrh r3, [r6] + lsls r0, r3, #3 + subs r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r3, [r0, #0x13] + movs r0, #0xca + lsls r0, r0, #1 + muls r0, r3, r0 + adds r1, r1, r0 + adds r1, r1, r5 + lsls r2, r2, #2 + adds r2, r2, r0 + adds r2, r2, r5 + ldr r1, [r1] + ldr r2, [r2] + subs r1, r1, r2 + ldr r0, [r6, #0x10] + subs r4, r0, r2 + lsls r0, r4, #6 + bl __udivsi3 + adds r6, r0, #0 + movs r7, #0 + adds r0, r7, #0 + orrs r0, r6 + cmp r0, #0 + bne _081C1C78 + cmp r4, #0 + beq _081C1C78 + movs r6, #1 + movs r7, #0 + b _081C1C78 + .align 2, 0 +_081C1C68: .4byte 0x0203CBE8 +_081C1C6C: .4byte 0x082F00B4 +_081C1C70: .4byte 0x082F0D54 +_081C1C74: + movs r6, #0 + movs r7, #0 +_081C1C78: + mov r1, r8 + ldr r0, [r1] + ldr r2, _081C1CA4 + adds r2, r2, r0 + mov sb, r2 + movs r0, #0 + mov ip, r0 + ldr r1, _081C1CA8 + mov sl, r1 +_081C1C8A: + cmp r7, #0 + bgt _081C1C96 + cmp r7, #0 + bne _081C1CB0 + cmp r6, #7 + bls _081C1CB0 +_081C1C96: + mov r2, ip + lsls r0, r2, #1 + add r0, sb + ldr r2, _081C1CAC + adds r1, r2, #0 + strh r1, [r0] + b _081C1CEA + .align 2, 0 +_081C1CA4: .4byte 0x00001D66 +_081C1CA8: .4byte 0x00002062 +_081C1CAC: .4byte 0x0000206A +_081C1CB0: + mov r1, ip + lsls r0, r1, #1 + add r0, sb + mov r8, r0 + adds r5, r7, #0 + adds r4, r6, #0 + cmp r7, #0 + bge _081C1CC8 + movs r4, #7 + movs r5, #0 + adds r4, r4, r6 + adcs r5, r7 +_081C1CC8: + lsls r3, r5, #0x1d + lsrs r2, r4, #3 + adds r0, r3, #0 + orrs r0, r2 + asrs r1, r5, #3 + lsrs r5, r0, #0x1d + lsls r4, r1, #3 + adds r3, r5, #0 + orrs r3, r4 + lsls r2, r0, #3 + adds r1, r7, #0 + adds r0, r6, #0 + subs r0, r0, r2 + sbcs r1, r3 + add r0, sl + mov r2, r8 + strh r0, [r2] +_081C1CEA: + movs r0, #8 + rsbs r0, r0, #0 + asrs r1, r0, #0x1f + adds r6, r6, r0 + adcs r7, r1 + cmp r7, #0 + bge _081C1CFC + movs r6, #0 + movs r7, #0 +_081C1CFC: + mov r0, ip + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov ip, r0 + cmp r0, #7 + bls _081C1C8A + movs r0, #1 + bl GetBgTilemapBuffer + ldr r1, _081C1D24 + ldr r1, [r1] + ldr r2, _081C1D28 + adds r1, r1, r2 + cmp r0, r1 + bne _081C1D2C + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + b _081C1D32 + .align 2, 0 +_081C1D24: .4byte 0x0203CBE8 +_081C1D28: .4byte 0x000010BC +_081C1D2C: + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram +_081C1D32: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end DrawExperienceProgressBar + + thumb_func_start DrawContestMoveHearts +DrawContestMoveHearts: @ 0x081C1D40 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldr r0, _081C1DA4 + ldr r0, [r0] + ldr r1, _081C1DA8 + adds r5, r0, r1 + cmp r3, #0 + beq _081C1E44 + ldr r1, _081C1DAC + ldr r2, _081C1DB0 + lsls r3, r3, #3 + adds r0, r3, r2 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r4, [r0, #1] + mov sb, r1 + mov r8, r2 + mov sl, r3 + cmp r4, #0xff + beq _081C1D80 + adds r0, r4, #0 + movs r1, #0xa + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_081C1D80: + movs r2, #0 + movs r6, #3 + movs r3, #0xf3 + lsls r3, r3, #2 +_081C1D88: + cmp r4, #0xff + beq _081C1DB8 + cmp r2, r4 + bhs _081C1DB8 + lsrs r0, r2, #2 + adds r1, r2, #0 + ands r1, r6 + lsls r0, r0, #5 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r0, r0, r5 + adds r0, r0, r3 + ldr r7, _081C1DB4 + b _081C1DCA + .align 2, 0 +_081C1DA4: .4byte 0x0203CBE8 +_081C1DA8: .4byte 0x000038BC +_081C1DAC: .4byte 0x08566AE4 +_081C1DB0: .4byte 0x08565FCC +_081C1DB4: .4byte 0x0000103A +_081C1DB8: + lsrs r0, r2, #2 + adds r1, r2, #0 + ands r1, r6 + lsls r0, r0, #5 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r0, r0, r5 + adds r0, r0, r3 + ldr r7, _081C1E18 +_081C1DCA: + adds r1, r7, #0 + strh r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #7 + bls _081C1D88 + mov r0, sl + add r0, r8 + ldrb r0, [r0] + lsls r0, r0, #2 + add r0, sb + ldrb r4, [r0, #2] + cmp r4, #0xff + beq _081C1DF4 + adds r0, r4, #0 + movs r1, #0xa + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_081C1DF4: + movs r2, #0 + movs r6, #3 + ldr r3, _081C1E1C +_081C1DFA: + cmp r4, #0xff + beq _081C1E24 + cmp r2, r4 + bhs _081C1E24 + lsrs r0, r2, #2 + adds r1, r2, #0 + ands r1, r6 + lsls r0, r0, #5 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r0, r0, r5 + adds r0, r0, r3 + ldr r7, _081C1E20 + b _081C1E36 + .align 2, 0 +_081C1E18: .4byte 0x00001039 +_081C1E1C: .4byte 0x0000044C +_081C1E20: .4byte 0x0000103C +_081C1E24: + lsrs r0, r2, #2 + adds r1, r2, #0 + ands r1, r6 + lsls r0, r0, #5 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r0, r0, r5 + adds r0, r0, r3 + ldr r7, _081C1E54 +_081C1E36: + adds r1, r7, #0 + strh r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #7 + bls _081C1DFA +_081C1E44: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C1E54: .4byte 0x0000103D + thumb_func_end DrawContestMoveHearts + + thumb_func_start LimitEggSummaryPageDisplay +LimitEggSummaryPageDisplay: @ 0x081C1E58 + push {lr} + ldr r0, _081C1E74 + ldr r0, [r0] + adds r0, #0x74 + ldrb r0, [r0] + cmp r0, #0 + beq _081C1E78 + movs r1, #0x80 + lsls r1, r1, #9 + movs r0, #3 + movs r2, #0 + bl ChangeBgX + b _081C1E82 + .align 2, 0 +_081C1E74: .4byte 0x0203CBE8 +_081C1E78: + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgX +_081C1E82: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LimitEggSummaryPageDisplay + + thumb_func_start ResetWindows +ResetWindows: @ 0x081C1E88 + push {r4, r5, lr} + ldr r0, _081C1ECC + bl InitWindows + bl DeactivateAllTextPrinters + movs r4, #0 +_081C1E96: + adds r0, r4, #0 + movs r1, #0 + bl FillWindowPixelBuffer + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x13 + bls _081C1E96 + movs r4, #0 + ldr r5, _081C1ED0 + ldr r3, _081C1ED4 + movs r2, #0xff +_081C1EB0: + ldr r0, [r5] + adds r0, r0, r3 + adds r0, r0, r4 + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #7 + bls _081C1EB0 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C1ECC: .4byte 0x085ED06C +_081C1ED0: .4byte 0x0203CBE8 +_081C1ED4: .4byte 0x000040CB + thumb_func_end ResetWindows + + thumb_func_start SummaryScreen_PrintTextOnWindow +SummaryScreen_PrintTextOnWindow: @ 0x081C1ED8 + push {r4, r5, r6, lr} + sub sp, #0x14 + ldr r4, [sp, #0x24] + ldr r5, [sp, #0x28] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r6, #0 + str r6, [sp] + str r4, [sp, #4] + lsls r4, r5, #1 + adds r4, r4, r5 + ldr r5, _081C1F18 + adds r4, r4, r5 + str r4, [sp, #8] + str r6, [sp, #0xc] + str r1, [sp, #0x10] + movs r1, #1 + bl AddTextPrinterParameterized4 + add sp, #0x14 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081C1F18: .4byte 0x085ED17C + thumb_func_end SummaryScreen_PrintTextOnWindow + + thumb_func_start Summary_PrintMonInfo +Summary_PrintMonInfo: @ 0x081C1F1C + push {lr} + movs r0, #0x11 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #0x12 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #0x13 + movs r1, #0 + bl FillWindowPixelBuffer + ldr r0, _081C1F48 + ldr r0, [r0] + adds r0, #0x74 + ldrb r0, [r0] + cmp r0, #0 + bne _081C1F4C + bl Summary_PrintNotEggInfo + b _081C1F50 + .align 2, 0 +_081C1F48: .4byte 0x0203CBE8 +_081C1F4C: + bl Summary_PrintEggInfo +_081C1F50: + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Summary_PrintMonInfo + + thumb_func_start Summary_PrintNotEggInfo +Summary_PrintNotEggInfo: @ 0x081C1F5C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + ldr r0, _081C1FCC + ldr r0, [r0] + movs r1, #0xc + adds r1, r1, r0 + mov r8, r1 + adds r7, r0, #0 + adds r7, #0x70 + ldrh r0, [r7] + bl SpeciesToPokedexNum + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, _081C1FD0 + cmp r5, r0 + beq _081C2002 + ldr r6, _081C1FD4 + ldr r1, _081C1FD8 + adds r0, r6, #0 + bl StringCopy + ldr r4, _081C1FDC + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #2 + movs r3, #3 + bl ConvertIntToDecimalStringN + adds r0, r6, #0 + adds r1, r4, #0 + bl StringAppend + mov r0, r8 + bl IsMonShiny + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _081C1FE0 + str r0, [sp] + movs r0, #1 + str r0, [sp, #4] + movs r0, #0x11 + adds r1, r6, #0 + movs r2, #0 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + movs r0, #0 + bl Summary_SetDexNumberColor + b _081C1FFA + .align 2, 0 +_081C1FCC: .4byte 0x0203CBE8 +_081C1FD0: .4byte 0x0000FFFF +_081C1FD4: .4byte 0x02021C40 +_081C1FD8: .4byte 0x085C9411 +_081C1FDC: .4byte 0x02021C54 +_081C1FE0: + movs r0, #0 + str r0, [sp] + movs r0, #7 + str r0, [sp, #4] + movs r0, #0x11 + adds r1, r6, #0 + movs r2, #0 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + movs r0, #1 + bl Summary_SetDexNumberColor +_081C1FFA: + movs r0, #0x11 + bl PutWindowTilemap + b _081C2022 +_081C2002: + movs r0, #0x11 + bl ClearWindowTilemap + mov r0, r8 + bl IsMonShiny + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081C201C + movs r0, #0 + bl Summary_SetDexNumberColor + b _081C2022 +_081C201C: + movs r0, #1 + bl Summary_SetDexNumberColor +_081C2022: + ldr r6, _081C2078 + ldr r1, _081C207C + adds r0, r6, #0 + bl StringCopy + ldr r4, _081C2080 + ldrb r1, [r7, #5] + adds r0, r4, #0 + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + adds r0, r6, #0 + adds r1, r4, #0 + bl StringAppend + movs r4, #0 + str r4, [sp] + movs r5, #1 + str r5, [sp, #4] + movs r0, #0x12 + adds r1, r6, #0 + movs r2, #0 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + mov r0, r8 + adds r1, r6, #0 + bl GetMonNickname + ldrb r0, [r7, #5] + cmp r0, #9 + bhi _081C2084 + str r4, [sp] + str r5, [sp, #4] + movs r0, #0x12 + adds r1, r6, #0 + movs r2, #0x18 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + b _081C2094 + .align 2, 0 +_081C2078: .4byte 0x02021C40 +_081C207C: .4byte 0x085C940E +_081C2080: .4byte 0x02021C54 +_081C2084: + str r4, [sp] + str r5, [sp, #4] + movs r0, #0x12 + adds r1, r6, #0 + movs r2, #0x20 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow +_081C2094: + ldrh r0, [r7, #2] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + ldr r0, _081C20D4 + adds r1, r1, r0 + movs r0, #0 + str r0, [sp] + movs r0, #1 + str r0, [sp, #4] + movs r0, #0x13 + movs r2, #0 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + ldrh r1, [r7, #2] + mov r0, r8 + bl Summar_PrintGenderSymbol + movs r0, #0x12 + bl PutWindowTilemap + movs r0, #0x13 + bl PutWindowTilemap + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C20D4: .4byte 0x082EA31C + thumb_func_end Summary_PrintNotEggInfo + + thumb_func_start Summary_PrintEggInfo +Summary_PrintEggInfo: @ 0x081C20D8 + push {r4, lr} + sub sp, #8 + ldr r0, _081C2118 + ldr r0, [r0] + adds r0, #0xc + ldr r4, _081C211C + adds r1, r4, #0 + bl GetMonNickname + movs r0, #0 + str r0, [sp] + movs r0, #1 + str r0, [sp, #4] + movs r0, #0x12 + adds r1, r4, #0 + movs r2, #0 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + movs r0, #0x12 + bl PutWindowTilemap + movs r0, #0x11 + bl ClearWindowTilemap + movs r0, #0x13 + bl ClearWindowTilemap + add sp, #8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C2118: .4byte 0x0203CBE8 +_081C211C: .4byte 0x02021C40 + thumb_func_end Summary_PrintEggInfo + + thumb_func_start Summar_PrintGenderSymbol +Summar_PrintGenderSymbol: @ 0x081C2120 + push {r4, r5, lr} + sub sp, #8 + adds r5, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + cmp r1, #0x20 + beq _081C218E + cmp r1, #0x1d + beq _081C218E + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r1, _081C2158 + adds r0, r0, r1 + bl StringLength + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r5, #0 + bl GetMonGender + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _081C215C + cmp r0, #0xfe + beq _081C2178 + b _081C218E + .align 2, 0 +_081C2158: .4byte 0x082EA31C +_081C215C: + ldr r1, _081C2174 + lsls r2, r4, #0x1b + lsrs r2, r2, #0x18 + str r0, [sp] + movs r0, #3 + str r0, [sp, #4] + movs r0, #0x13 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + b _081C218E + .align 2, 0 +_081C2174: .4byte 0x085C940A +_081C2178: + ldr r1, _081C2198 + lsls r2, r4, #0x1b + lsrs r2, r2, #0x18 + movs r0, #0 + str r0, [sp] + movs r0, #4 + str r0, [sp, #4] + movs r0, #0x13 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow +_081C218E: + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C2198: .4byte 0x085C940C + thumb_func_end Summar_PrintGenderSymbol + + thumb_func_start PrintAOrBButtonIcon +PrintAOrBButtonIcon: @ 0x081C219C + push {lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r1, r1, #0x18 + ldr r2, _081C21C8 + cmp r1, #0 + bne _081C21AE + subs r2, #0x80 +_081C21AE: + movs r0, #0x10 + str r0, [sp] + str r0, [sp, #4] + adds r0, r3, #0 + adds r1, r2, #0 + movs r2, #0 + movs r3, #0 + bl BlitBitmapToWindow + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 +_081C21C8: .4byte 0x085ED223 + thumb_func_end PrintAOrBButtonIcon + + thumb_func_start sub_081C21CC +sub_081C21CC: @ 0x081C21CC + push {r4, r5, lr} + sub sp, #8 + ldr r1, _081C2374 + movs r4, #0 + str r4, [sp] + movs r5, #1 + str r5, [sp, #4] + movs r0, #0 + movs r2, #0 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + ldr r1, _081C2378 + str r4, [sp] + str r5, [sp, #4] + movs r0, #1 + movs r2, #0 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + ldr r1, _081C237C + str r4, [sp] + str r5, [sp, #4] + movs r0, #2 + movs r2, #0 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + ldr r1, _081C2380 + str r4, [sp] + str r5, [sp, #4] + movs r0, #3 + movs r2, #0 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + movs r0, #4 + movs r1, #0 + bl PrintAOrBButtonIcon + ldr r1, _081C2384 + str r4, [sp] + str r4, [sp, #4] + movs r0, #4 + movs r2, #0x10 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + movs r0, #5 + movs r1, #0 + bl PrintAOrBButtonIcon + ldr r1, _081C2388 + str r4, [sp] + str r4, [sp, #4] + movs r0, #5 + movs r2, #0x10 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + movs r0, #6 + movs r1, #0 + bl PrintAOrBButtonIcon + ldr r1, _081C238C + str r4, [sp] + str r4, [sp, #4] + movs r0, #6 + movs r2, #0x10 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + ldr r1, _081C2390 + str r4, [sp] + str r5, [sp, #4] + movs r0, #7 + movs r2, #0 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + ldr r1, _081C2394 + str r4, [sp] + str r5, [sp, #4] + movs r0, #8 + movs r2, #0 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + ldr r1, _081C2398 + str r4, [sp] + str r5, [sp, #4] + movs r0, #0x10 + movs r2, #0 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + ldr r1, _081C239C + str r4, [sp] + str r4, [sp, #4] + movs r0, #9 + movs r2, #0 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + ldr r1, _081C23A0 + str r4, [sp] + str r5, [sp, #4] + movs r0, #0xa + movs r2, #8 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + ldr r1, _081C23A4 + str r4, [sp] + str r5, [sp, #4] + movs r0, #0xa + movs r2, #0 + movs r3, #0x12 + bl SummaryScreen_PrintTextOnWindow + ldr r1, _081C23A8 + str r4, [sp] + str r5, [sp, #4] + movs r0, #0xa + movs r2, #0 + movs r3, #0x22 + bl SummaryScreen_PrintTextOnWindow + ldr r1, _081C23AC + str r4, [sp] + str r5, [sp, #4] + movs r0, #0xb + movs r2, #0 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + ldr r1, _081C23B0 + str r4, [sp] + str r5, [sp, #4] + movs r0, #0xb + movs r2, #0 + movs r3, #0x12 + bl SummaryScreen_PrintTextOnWindow + ldr r1, _081C23B4 + str r4, [sp] + str r5, [sp, #4] + movs r0, #0xb + movs r2, #0 + movs r3, #0x22 + bl SummaryScreen_PrintTextOnWindow + ldr r1, _081C23B8 + str r4, [sp] + str r5, [sp, #4] + movs r0, #0xc + movs r2, #0 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + ldr r1, _081C23BC + str r4, [sp] + str r5, [sp, #4] + movs r0, #0xc + movs r2, #0 + movs r3, #0x12 + bl SummaryScreen_PrintTextOnWindow + ldr r1, _081C23C0 + str r4, [sp] + str r5, [sp, #4] + movs r0, #0xd + movs r2, #0 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + ldr r1, _081C23C4 + str r4, [sp] + str r5, [sp, #4] + movs r0, #0xe + movs r2, #8 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + ldr r1, _081C23C8 + str r4, [sp] + str r5, [sp, #4] + movs r0, #0xe + movs r2, #0 + movs r3, #0x12 + bl SummaryScreen_PrintTextOnWindow + ldr r1, _081C23CC + str r4, [sp] + str r5, [sp, #4] + movs r0, #0xf + movs r2, #0 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + ldr r1, _081C23D0 + str r4, [sp] + str r5, [sp, #4] + movs r0, #0xf + movs r2, #0 + movs r3, #0x12 + bl SummaryScreen_PrintTextOnWindow + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C2374: .4byte 0x085CA3E4 +_081C2378: .4byte 0x085CA3EE +_081C237C: .4byte 0x085CA3F8 +_081C2380: .4byte 0x085CA3FF +_081C2384: .4byte 0x085C93C8 +_081C2388: .4byte 0x085CA407 +_081C238C: .4byte 0x085CA3DF +_081C2390: .4byte 0x085CA38E +_081C2394: .4byte 0x085CA392 +_081C2398: .4byte 0x085C941A +_081C239C: .4byte 0x085CA39B +_081C23A0: .4byte 0x085CA388 +_081C23A4: .4byte 0x085CA36F +_081C23A8: .4byte 0x085CA374 +_081C23AC: .4byte 0x085CA379 +_081C23B0: .4byte 0x085CA37E +_081C23B4: .4byte 0x085CA383 +_081C23B8: .4byte 0x085CA3BB +_081C23BC: .4byte 0x085CA3C6 +_081C23C0: .4byte 0x085CA3B5 +_081C23C4: .4byte 0x085CA3A0 +_081C23C8: .4byte 0x085CA3A5 +_081C23CC: .4byte 0x085CA3AB +_081C23D0: .4byte 0x085CA3B0 + thumb_func_end sub_081C21CC + + thumb_func_start CreatePageWindowTilemaps +CreatePageWindowTilemaps: @ 0x081C23D4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r5, r4, #0 + movs r0, #0 + bl ClearWindowTilemap + movs r0, #1 + bl ClearWindowTilemap + movs r0, #2 + bl ClearWindowTilemap + movs r0, #3 + bl ClearWindowTilemap + cmp r4, #1 + beq _081C244C + cmp r4, #1 + bgt _081C2402 + cmp r4, #0 + beq _081C240C + b _081C24EA +_081C2402: + cmp r5, #2 + beq _081C2466 + cmp r5, #3 + beq _081C24A8 + b _081C24EA +_081C240C: + movs r0, #0 + bl PutWindowTilemap + movs r0, #4 + bl PutWindowTilemap + bl InBattleFactory + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081C2430 + bl InSlateportBattleTent + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081C2438 +_081C2430: + movs r0, #8 + bl PutWindowTilemap + b _081C2444 +_081C2438: + movs r0, #7 + bl PutWindowTilemap + movs r0, #0x10 + bl PutWindowTilemap +_081C2444: + movs r0, #9 + bl PutWindowTilemap + b _081C24EA +_081C244C: + movs r0, #1 + bl PutWindowTilemap + movs r0, #0xa + bl PutWindowTilemap + movs r0, #0xb + bl PutWindowTilemap + movs r0, #0xc + bl PutWindowTilemap + b _081C24EA +_081C2466: + movs r0, #2 + bl PutWindowTilemap + ldr r0, _081C2494 + ldr r1, [r0] + ldr r2, _081C2498 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #3 + bne _081C24A0 + adds r2, #8 + adds r0, r1, r2 + ldr r0, [r0] + ldr r1, _081C249C + ands r0, r1 + movs r1, #0x80 + lsls r1, r1, #0xb + cmp r0, r1 + beq _081C24EA + movs r0, #0xe + bl PutWindowTilemap + b _081C24EA + .align 2, 0 +_081C2494: .4byte 0x0203CBE8 +_081C2498: .4byte 0x000040BC +_081C249C: .4byte 0x00FFFFFF +_081C24A0: + movs r0, #5 + bl PutWindowTilemap + b _081C24EA +_081C24A8: + movs r0, #3 + bl PutWindowTilemap + ldr r0, _081C24D8 + ldr r1, [r0] + ldr r2, _081C24DC + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #3 + bne _081C24E4 + adds r2, #8 + adds r0, r1, r2 + ldr r0, [r0] + ldr r1, _081C24E0 + ands r0, r1 + movs r1, #0x80 + lsls r1, r1, #0xb + cmp r0, r1 + beq _081C24EA + movs r0, #0xf + bl PutWindowTilemap + b _081C24EA + .align 2, 0 +_081C24D8: .4byte 0x0203CBE8 +_081C24DC: .4byte 0x000040BC +_081C24E0: .4byte 0x00FFFFFF +_081C24E4: + movs r0, #5 + bl PutWindowTilemap +_081C24EA: + movs r4, #0 + ldr r5, _081C2514 +_081C24EE: + ldr r0, [r5] + ldr r1, _081C2518 + adds r0, r0, r1 + adds r0, r0, r4 + ldrb r0, [r0] + bl PutWindowTilemap + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #7 + bls _081C24EE + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C2514: .4byte 0x0203CBE8 +_081C2518: .4byte 0x000040CB + thumb_func_end CreatePageWindowTilemaps + + thumb_func_start ClearPageWindowTilemaps +ClearPageWindowTilemaps: @ 0x081C251C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + cmp r0, #1 + beq _081C2576 + cmp r0, #1 + bgt _081C2532 + cmp r0, #0 + beq _081C253C + b _081C2602 +_081C2532: + cmp r1, #2 + beq _081C258A + cmp r1, #3 + beq _081C25C8 + b _081C2602 +_081C253C: + movs r0, #4 + bl ClearWindowTilemap + bl InBattleFactory + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081C255A + bl InSlateportBattleTent + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081C2562 +_081C255A: + movs r0, #8 + bl ClearWindowTilemap + b _081C256E +_081C2562: + movs r0, #7 + bl ClearWindowTilemap + movs r0, #0x10 + bl ClearWindowTilemap +_081C256E: + movs r0, #9 + bl ClearWindowTilemap + b _081C2602 +_081C2576: + movs r0, #0xa + bl ClearWindowTilemap + movs r0, #0xb + bl ClearWindowTilemap + movs r0, #0xc + bl ClearWindowTilemap + b _081C2602 +_081C258A: + ldr r0, _081C25B4 + ldr r1, [r0] + ldr r2, _081C25B8 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #3 + bne _081C25C0 + adds r2, #8 + adds r0, r1, r2 + ldr r0, [r0] + ldr r1, _081C25BC + ands r0, r1 + movs r1, #0x80 + lsls r1, r1, #0xb + cmp r0, r1 + beq _081C2602 + movs r0, #0xe + bl ClearWindowTilemap + b _081C2602 + .align 2, 0 +_081C25B4: .4byte 0x0203CBE8 +_081C25B8: .4byte 0x000040BC +_081C25BC: .4byte 0x00FFFFFF +_081C25C0: + movs r0, #5 + bl ClearWindowTilemap + b _081C2602 +_081C25C8: + ldr r0, _081C25F0 + ldr r1, [r0] + ldr r2, _081C25F4 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #3 + bne _081C25FC + adds r2, #8 + adds r0, r1, r2 + ldr r0, [r0] + ldr r1, _081C25F8 + ands r0, r1 + movs r1, #0x80 + lsls r1, r1, #0xb + cmp r0, r1 + beq _081C2602 + movs r0, #0xf + bl ClearWindowTilemap + b _081C2602 + .align 2, 0 +_081C25F0: .4byte 0x0203CBE8 +_081C25F4: .4byte 0x000040BC +_081C25F8: .4byte 0x00FFFFFF +_081C25FC: + movs r0, #5 + bl ClearWindowTilemap +_081C2602: + movs r4, #0 +_081C2604: + adds r0, r4, #0 + bl SummaryScreen_RemoveWindowByIndex + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #7 + bls _081C2604 + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + pop {r4} + pop {r0} + bx r0 + thumb_func_end ClearPageWindowTilemaps + + thumb_func_start AddWindowFromTemplateList +AddWindowFromTemplateList: @ 0x081C2620 + push {r4, lr} + adds r3, r0, #0 + lsls r1, r1, #0x18 + lsrs r2, r1, #0x18 + ldr r0, _081C2654 + ldr r4, _081C2658 + adds r1, r2, r4 + ldr r0, [r0] + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, #0xff + bne _081C264A + lsls r0, r2, #3 + adds r0, r3, r0 + bl AddWindow + strb r0, [r4] + ldrb r0, [r4] + movs r1, #0 + bl FillWindowPixelBuffer +_081C264A: + ldrb r0, [r4] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081C2654: .4byte 0x0203CBE8 +_081C2658: .4byte 0x000040CB + thumb_func_end AddWindowFromTemplateList + + thumb_func_start SummaryScreen_RemoveWindowByIndex +SummaryScreen_RemoveWindowByIndex: @ 0x081C265C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081C2688 + ldr r2, _081C268C + adds r0, r0, r2 + ldr r1, [r1] + adds r4, r1, r0 + ldrb r0, [r4] + cmp r0, #0xff + beq _081C2680 + bl ClearWindowTilemap + ldrb r0, [r4] + bl RemoveWindow + movs r0, #0xff + strb r0, [r4] +_081C2680: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C2688: .4byte 0x0203CBE8 +_081C268C: .4byte 0x000040CB + thumb_func_end SummaryScreen_RemoveWindowByIndex + + thumb_func_start PrintPageSpecificText +PrintPageSpecificText: @ 0x081C2690 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r4, #0 +_081C2698: + ldr r0, _081C26CC + ldr r0, [r0] + ldr r1, _081C26D0 + adds r0, r0, r1 + adds r1, r0, r4 + ldrb r0, [r1] + cmp r0, #0xff + beq _081C26AE + movs r1, #0 + bl FillWindowPixelBuffer +_081C26AE: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #7 + bls _081C2698 + ldr r0, _081C26D4 + lsls r1, r5, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl _call_via_r0 + thumb_func_end PrintPageSpecificText + + thumb_func_start SummaryScreen_MainCB2 +SummaryScreen_MainCB2: @ 0x081C26C4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C26CC: .4byte 0x0203CBE8 +_081C26D0: .4byte 0x000040CB +_081C26D4: .4byte 0x085ED2A4 + thumb_func_end SummaryScreen_MainCB2 + + thumb_func_start CreateTextPrinterTask +CreateTextPrinterTask: @ 0x081C26D8 + push {lr} + lsls r0, r0, #0x18 + ldr r1, _081C26F0 + lsrs r0, r0, #0x16 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x10 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_081C26F0: .4byte 0x085ED2B4 + thumb_func_end CreateTextPrinterTask + + thumb_func_start PrintInfoPageText +PrintInfoPageText: @ 0x081C26F4 + push {lr} + ldr r0, _081C2714 + ldr r0, [r0] + adds r0, #0x74 + ldrb r0, [r0] + cmp r0, #0 + beq _081C2718 + bl PrintLeftColumnStats + bl PrintRightColumnStats + bl PrintEggState + bl PrintEggMemo + b _081C2730 + .align 2, 0 +_081C2714: .4byte 0x0203CBE8 +_081C2718: + bl PrintMonOTID + bl PrintEggOTID + bl PrintMonAbilityDescription + bl PrintMonAbilityName + bl BufferMonTrainerMemo + bl PrintMonTrainerMemo +_081C2730: + pop {r0} + bx r0 + thumb_func_end PrintInfoPageText + + thumb_func_start Task_PrintInfoPage +Task_PrintInfoPage: @ 0x081C2734 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _081C275C + adds r4, r0, r1 + ldrh r0, [r4] + subs r0, #1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #6 + bhi _081C27AC + lsls r0, r0, #2 + ldr r1, _081C2760 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081C275C: .4byte 0x03005B68 +_081C2760: .4byte 0x081C2764 +_081C2764: @ jump table + .4byte _081C2780 @ case 0 + .4byte _081C2786 @ case 1 + .4byte _081C278C @ case 2 + .4byte _081C2792 @ case 3 + .4byte _081C2798 @ case 4 + .4byte _081C279E @ case 5 + .4byte _081C27A4 @ case 6 +_081C2780: + bl PrintMonOTID + b _081C27AC +_081C2786: + bl PrintEggOTID + b _081C27AC +_081C278C: + bl PrintMonAbilityDescription + b _081C27AC +_081C2792: + bl PrintMonAbilityName + b _081C27AC +_081C2798: + bl BufferMonTrainerMemo + b _081C27AC +_081C279E: + bl PrintMonTrainerMemo + b _081C27AC +_081C27A4: + adds r0, r2, #0 + bl DestroyTask + b _081C27B2 +_081C27AC: + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] +_081C27B2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end Task_PrintInfoPage + + thumb_func_start PrintMonOTID +PrintMonOTID: @ 0x081C27B8 + push {lr} + sub sp, #8 + bl InBattleFactory + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081C2822 + bl InSlateportBattleTent + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081C2822 + ldr r0, _081C2804 + movs r1, #0 + bl AddWindowFromTemplateList + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r0, _081C2808 + ldr r0, [r0] + adds r2, r0, #0 + adds r2, #0xa2 + ldrb r2, [r2] + cmp r2, #0 + bne _081C280C + adds r1, r0, #0 + adds r1, #0xa6 + str r2, [sp] + movs r0, #5 + str r0, [sp, #4] + adds r0, r3, #0 + movs r2, #0 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + b _081C2822 + .align 2, 0 +_081C2804: .4byte 0x085ED114 +_081C2808: .4byte 0x0203CBE8 +_081C280C: + adds r1, r0, #0 + adds r1, #0xa6 + movs r0, #0 + str r0, [sp] + movs r0, #6 + str r0, [sp, #4] + adds r0, r3, #0 + movs r2, #0 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow +_081C2822: + add sp, #8 + pop {r0} + bx r0 + thumb_func_end PrintMonOTID + + thumb_func_start PrintEggOTID +PrintEggOTID: @ 0x081C2828 + push {r4, lr} + sub sp, #8 + bl InBattleFactory + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081C2876 + bl InSlateportBattleTent + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081C2876 + ldr r4, _081C2880 + ldr r0, _081C2884 + ldr r0, [r0] + adds r0, #0xb8 + ldrh r1, [r0] + adds r0, r4, #0 + movs r2, #2 + movs r3, #5 + bl ConvertIntToDecimalStringN + ldr r0, _081C2888 + movs r1, #1 + bl AddWindowFromTemplateList + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + str r1, [sp] + movs r1, #1 + str r1, [sp, #4] + adds r1, r4, #0 + movs r2, #0 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow +_081C2876: + add sp, #8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C2880: .4byte 0x02021C40 +_081C2884: .4byte 0x0203CBE8 +_081C2888: .4byte 0x085ED114 + thumb_func_end PrintEggOTID + + thumb_func_start PrintMonAbilityDescription +PrintMonAbilityDescription: @ 0x081C288C + push {r4, lr} + sub sp, #8 + ldr r0, _081C28D4 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0x70 + ldrh r0, [r0] + adds r1, #0x78 + ldrb r1, [r1] + bl GetAbilityBySpecies + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081C28D8 + movs r1, #2 + bl AddWindowFromTemplateList + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r4, #3 + ldr r1, _081C28DC + adds r4, r4, r1 + movs r1, #0 + str r1, [sp] + movs r1, #1 + str r1, [sp, #4] + adds r1, r4, #0 + movs r2, #0 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + add sp, #8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C28D4: .4byte 0x0203CBE8 +_081C28D8: .4byte 0x085ED114 +_081C28DC: .4byte 0x082EBDC4 + thumb_func_end PrintMonAbilityDescription + + thumb_func_start PrintMonAbilityName +PrintMonAbilityName: @ 0x081C28E0 + push {r4, lr} + sub sp, #8 + ldr r0, _081C2928 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0x70 + ldrh r0, [r0] + adds r1, #0x78 + ldrb r1, [r1] + bl GetAbilityBySpecies + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081C292C + movs r1, #2 + bl AddWindowFromTemplateList + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #2 + subs r1, r1, r4 + ldr r2, _081C2930 + adds r1, r1, r2 + movs r2, #0 + str r2, [sp] + str r2, [sp, #4] + movs r3, #0x12 + bl SummaryScreen_PrintTextOnWindow + add sp, #8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C2928: .4byte 0x0203CBE8 +_081C292C: .4byte 0x085ED114 +_081C2930: .4byte 0x082EC034 + thumb_func_end PrintMonAbilityName + + thumb_func_start BufferMonTrainerMemo +BufferMonTrainerMemo: @ 0x081C2934 + push {r4, r5, r6, lr} + ldr r0, _081C2984 + ldr r0, [r0] + adds r4, r0, #0 + adds r4, #0x70 + bl DynamicPlaceholderTextUtil_Reset + ldr r1, _081C2988 + movs r0, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + ldr r1, _081C298C + movs r0, #1 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + bl BufferNatureString + bl InBattleFactory + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081C297A + bl InSlateportBattleTent + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _081C297A + bl IsInGamePartnerMon + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081C2998 +_081C297A: + ldr r0, _081C2990 + ldr r1, _081C2994 + bl DynamicPlaceholderTextUtil_ExpandPlaceholders + b _081C2A3A + .align 2, 0 +_081C2984: .4byte 0x0203CBE8 +_081C2988: .4byte 0x085ED2C4 +_081C298C: .4byte 0x085ED2CB +_081C2990: .4byte 0x02021C7C +_081C2994: .4byte 0x085CA563 +_081C2998: + movs r0, #0x20 + bl Alloc + adds r6, r0, #0 + movs r0, #0x20 + bl Alloc + adds r5, r0, #0 + adds r0, r6, #0 + bl GetMetLevelString + ldrb r0, [r4, #9] + cmp r0, #0xd4 + bhi _081C29C4 + adds r1, r0, #0 + adds r0, r5, #0 + bl sub_0812461C + movs r0, #4 + adds r1, r5, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr +_081C29C4: + bl DoesMonOTMatchOwner + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081C2A00 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _081C29EC + ldrb r0, [r4, #9] + ldr r1, _081C29E4 + cmp r0, #0xd4 + bls _081C2A28 + ldr r1, _081C29E8 + b _081C2A28 + .align 2, 0 +_081C29E4: .4byte 0x085CA4CC +_081C29E8: .4byte 0x085CA593 +_081C29EC: + ldrb r0, [r4, #9] + ldr r1, _081C29F8 + cmp r0, #0xd4 + bls _081C2A28 + ldr r1, _081C29FC + b _081C2A28 + .align 2, 0 +_081C29F8: .4byte 0x085CA4A6 +_081C29FC: .4byte 0x085CA570 +_081C2A00: + ldrb r0, [r4, #9] + cmp r0, #0xff + bne _081C2A10 + ldr r1, _081C2A0C + b _081C2A28 + .align 2, 0 +_081C2A0C: .4byte 0x085CA512 +_081C2A10: + cmp r0, #0xfe + beq _081C2A26 + bl DidMonComeFromGBAGames + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081C2A26 + ldrb r0, [r4, #9] + ldr r1, _081C2A40 + cmp r0, #0xd4 + bls _081C2A28 +_081C2A26: + ldr r1, _081C2A44 +_081C2A28: + ldr r0, _081C2A48 + bl DynamicPlaceholderTextUtil_ExpandPlaceholders + adds r0, r6, #0 + bl Free + adds r0, r5, #0 + bl Free +_081C2A3A: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081C2A40: .4byte 0x085CA53B +_081C2A44: .4byte 0x085CA4F2 +_081C2A48: .4byte 0x02021C7C + thumb_func_end BufferMonTrainerMemo + + thumb_func_start PrintMonTrainerMemo +PrintMonTrainerMemo: @ 0x081C2A4C + push {lr} + sub sp, #8 + ldr r0, _081C2A70 + movs r1, #3 + bl AddWindowFromTemplateList + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081C2A74 + movs r2, #0 + str r2, [sp] + str r2, [sp, #4] + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 +_081C2A70: .4byte 0x085ED114 +_081C2A74: .4byte 0x02021C7C + thumb_func_end PrintMonTrainerMemo + + thumb_func_start BufferNatureString +BufferNatureString: @ 0x081C2A78 + push {r4, lr} + ldr r0, _081C2AA4 + ldr r4, [r0] + ldr r1, _081C2AA8 + adds r4, #0xa3 + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + movs r0, #2 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + ldrb r0, [r4] + cmp r0, #5 + beq _081C2A9A + cmp r0, #0x15 + bne _081C2AB0 +_081C2A9A: + ldr r1, _081C2AAC + movs r0, #5 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + b _081C2AB8 + .align 2, 0 +_081C2AA4: .4byte 0x0203CBE8 +_081C2AA8: .4byte 0x085ECE24 +_081C2AAC: .4byte 0x085CA3D9 +_081C2AB0: + ldr r1, _081C2AC0 + movs r0, #5 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr +_081C2AB8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C2AC0: .4byte 0x085CA3D8 + thumb_func_end BufferNatureString + + thumb_func_start GetMetLevelString +GetMetLevelString: @ 0x081C2AC4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _081C2AF0 + ldr r0, [r0] + adds r0, #0x7a + ldrb r1, [r0] + cmp r1, #0 + bne _081C2AD6 + movs r1, #5 +_081C2AD6: + adds r0, r4, #0 + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + movs r0, #3 + adds r1, r4, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C2AF0: .4byte 0x0203CBE8 + thumb_func_end GetMetLevelString + + thumb_func_start DoesMonOTMatchOwner +DoesMonOTMatchOwner: @ 0x081C2AF4 + push {r4, r5, r6, lr} + ldr r0, _081C2B30 + ldr r0, [r0] + adds r6, r0, #0 + adds r6, #0x70 + ldr r1, [r0] + ldr r0, _081C2B34 + cmp r1, r0 + bne _081C2B40 + bl GetMultiplayerId + movs r1, #1 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _081C2B38 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r0, r2, #4 + adds r0, r1, r0 + ldrh r4, [r0] + adds r0, r1, r2 + ldrb r5, [r0, #0x13] + ldr r0, _081C2B3C + adds r2, #8 + adds r1, r1, r2 + bl StringCopy + b _081C2B56 + .align 2, 0 +_081C2B30: .4byte 0x0203CBE8 +_081C2B34: .4byte 0x020243E8 +_081C2B38: .4byte 0x020226A0 +_081C2B3C: .4byte 0x02021C40 +_081C2B40: + bl GetPlayerIDAsU32 + adds r4, r0, #0 + ldr r0, _081C2B6C + ands r4, r0 + ldr r0, _081C2B70 + ldr r1, [r0] + ldrb r5, [r1, #8] + ldr r0, _081C2B74 + bl StringCopy +_081C2B56: + adds r0, r6, #0 + adds r0, #0x32 + ldrb r0, [r0] + cmp r5, r0 + bne _081C2BA6 + ldr r0, [r6, #0x48] + ldr r1, _081C2B6C + ands r0, r1 + cmp r4, r0 + beq _081C2B7C + b _081C2BA6 + .align 2, 0 +_081C2B6C: .4byte 0x0000FFFF +_081C2B70: .4byte 0x03005AF0 +_081C2B74: .4byte 0x02021C40 +_081C2B78: + movs r0, #1 + b _081C2BA8 +_081C2B7C: + movs r2, #0 + ldr r4, _081C2BB0 + adds r3, r6, #0 + adds r3, #0x36 +_081C2B84: + adds r0, r2, r4 + ldrb r1, [r0] + cmp r1, #0xff + bne _081C2B94 + adds r0, r3, r2 + ldrb r0, [r0] + cmp r0, #0xff + beq _081C2B78 +_081C2B94: + adds r0, r3, r2 + ldrb r0, [r0] + cmp r1, r0 + bne _081C2BA6 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xf + bls _081C2B84 +_081C2BA6: + movs r0, #0 +_081C2BA8: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_081C2BB0: .4byte 0x02021C40 + thumb_func_end DoesMonOTMatchOwner + + thumb_func_start DidMonComeFromGBAGames +DidMonComeFromGBAGames: @ 0x081C2BB4 + push {lr} + ldr r0, _081C2BCC + ldr r0, [r0] + adds r0, #0x70 + ldrb r0, [r0, #0xb] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bls _081C2BD0 + movs r0, #0 + b _081C2BD2 + .align 2, 0 +_081C2BCC: .4byte 0x0203CBE8 +_081C2BD0: + movs r0, #1 +_081C2BD2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end DidMonComeFromGBAGames + + thumb_func_start DidMonComeFromRSE +DidMonComeFromRSE: @ 0x081C2BD8 + push {lr} + ldr r0, _081C2BF0 + ldr r0, [r0] + adds r0, #0x70 + ldrb r0, [r0, #0xb] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bls _081C2BF4 + movs r0, #0 + b _081C2BF6 + .align 2, 0 +_081C2BF0: .4byte 0x0203CBE8 +_081C2BF4: + movs r0, #1 +_081C2BF6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end DidMonComeFromRSE + + thumb_func_start IsInGamePartnerMon +IsInGamePartnerMon: @ 0x081C2BFC + push {lr} + ldr r0, _081C2C38 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + beq _081C2C4C + ldr r0, _081C2C3C + ldr r1, _081C2C40 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081C2C4C + ldr r0, _081C2C44 + ldr r0, [r0] + ldr r1, _081C2C48 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + beq _081C2C32 + cmp r0, #4 + beq _081C2C32 + cmp r0, #5 + bne _081C2C4C +_081C2C32: + movs r0, #1 + b _081C2C4E + .align 2, 0 +_081C2C38: .4byte 0x02022C90 +_081C2C3C: .4byte 0x03002360 +_081C2C40: .4byte 0x00000439 +_081C2C44: .4byte 0x0203CBE8 +_081C2C48: .4byte 0x000040BE +_081C2C4C: + movs r0, #0 +_081C2C4E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsInGamePartnerMon + + thumb_func_start PrintLeftColumnStats +PrintLeftColumnStats: @ 0x081C2C54 + push {lr} + sub sp, #8 + ldr r0, _081C2C7C + movs r1, #0 + bl AddWindowFromTemplateList + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081C2C80 + movs r2, #0 + str r2, [sp] + movs r2, #1 + str r2, [sp, #4] + movs r2, #0 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 +_081C2C7C: .4byte 0x085ED114 +_081C2C80: .4byte 0x085C93F9 + thumb_func_end PrintLeftColumnStats + + thumb_func_start PrintRightColumnStats +PrintRightColumnStats: @ 0x081C2C84 + push {lr} + sub sp, #8 + ldr r0, _081C2CAC + movs r1, #1 + bl AddWindowFromTemplateList + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081C2CB0 + movs r2, #0 + str r2, [sp] + movs r2, #1 + str r2, [sp, #4] + movs r2, #0 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 +_081C2CAC: .4byte 0x085ED114 +_081C2CB0: .4byte 0x085C93F9 + thumb_func_end PrintRightColumnStats + + thumb_func_start PrintEggState +PrintEggState: @ 0x081C2CB4 + push {r4, lr} + sub sp, #8 + ldr r0, _081C2CCC + ldr r0, [r0] + adds r1, r0, #0 + adds r1, #0x70 + adds r0, #0xa5 + ldrb r0, [r0] + cmp r0, #1 + bne _081C2CD4 + ldr r4, _081C2CD0 + b _081C2CF8 + .align 2, 0 +_081C2CCC: .4byte 0x0203CBE8 +_081C2CD0: .4byte 0x085CA40C +_081C2CD4: + ldrh r0, [r1, #0x30] + cmp r0, #5 + bhi _081C2CE4 + ldr r4, _081C2CE0 + b _081C2CF8 + .align 2, 0 +_081C2CE0: .4byte 0x085CA46B +_081C2CE4: + cmp r0, #0xa + bhi _081C2CF0 + ldr r4, _081C2CEC + b _081C2CF8 + .align 2, 0 +_081C2CEC: .4byte 0x085CA448 +_081C2CF0: + ldr r4, _081C2D1C + cmp r0, #0x28 + bhi _081C2CF8 + ldr r4, _081C2D20 +_081C2CF8: + ldr r0, _081C2D24 + movs r1, #2 + bl AddWindowFromTemplateList + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + str r1, [sp] + str r1, [sp, #4] + adds r1, r4, #0 + movs r2, #0 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + add sp, #8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C2D1C: .4byte 0x085CA40C +_081C2D20: .4byte 0x085CA425 +_081C2D24: .4byte 0x085ED114 + thumb_func_end PrintEggState + + thumb_func_start PrintEggMemo +PrintEggMemo: @ 0x081C2D28 + push {r4, lr} + sub sp, #8 + ldr r0, _081C2D48 + ldr r0, [r0] + adds r4, r0, #0 + adds r4, #0x70 + adds r0, #0xa5 + ldrb r0, [r0] + cmp r0, #1 + beq _081C2D8C + ldrb r0, [r4, #9] + cmp r0, #0xff + bne _081C2D50 + ldr r4, _081C2D4C + b _081C2D8E + .align 2, 0 +_081C2D48: .4byte 0x0203CBE8 +_081C2D4C: .4byte 0x085CA5D5 +_081C2D50: + bl DidMonComeFromGBAGames + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081C2D64 + bl DoesMonOTMatchOwner + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081C2D6C +_081C2D64: + ldr r4, _081C2D68 + b _081C2D8E + .align 2, 0 +_081C2D68: .4byte 0x085CA5F8 +_081C2D6C: + ldrb r0, [r4, #9] + cmp r0, #0xfd + bne _081C2D8C + bl DidMonComeFromRSE + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _081C2D84 + cmp r0, #1 + bne _081C2D8E + ldr r4, _081C2D88 + b _081C2D8E + .align 2, 0 +_081C2D84: .4byte 0x085CA635 +_081C2D88: .4byte 0x085CA616 +_081C2D8C: + ldr r4, _081C2DB4 +_081C2D8E: + ldr r0, _081C2DB8 + movs r1, #3 + bl AddWindowFromTemplateList + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + str r1, [sp] + str r1, [sp, #4] + adds r1, r4, #0 + movs r2, #0 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + add sp, #8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C2DB4: .4byte 0x085CA5B6 +_081C2DB8: .4byte 0x085ED114 + thumb_func_end PrintEggMemo + + thumb_func_start PrintSkillsPageText +PrintSkillsPageText: @ 0x081C2DBC + push {lr} + bl PrintHeldItemName + bl PrintRibbonCount + bl BufferLeftColumnStats + bl sub_081C303C + bl BufferRightColumnStats + bl ShowPokemonSummaryScreenSet40EF + bl PrintExpPointsNextLevel + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PrintSkillsPageText + + thumb_func_start Task_PrintSkillsPage +Task_PrintSkillsPage: @ 0x081C2DE0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _081C2E08 + adds r4, r0, r1 + ldrh r0, [r4] + subs r0, #1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + bhi _081C2E62 + lsls r0, r0, #2 + ldr r1, _081C2E0C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081C2E08: .4byte 0x03005B68 +_081C2E0C: .4byte 0x081C2E10 +_081C2E10: @ jump table + .4byte _081C2E30 @ case 0 + .4byte _081C2E36 @ case 1 + .4byte _081C2E3C @ case 2 + .4byte _081C2E42 @ case 3 + .4byte _081C2E48 @ case 4 + .4byte _081C2E4E @ case 5 + .4byte _081C2E54 @ case 6 + .4byte _081C2E5A @ case 7 +_081C2E30: + bl PrintHeldItemName + b _081C2E62 +_081C2E36: + bl PrintRibbonCount + b _081C2E62 +_081C2E3C: + bl BufferLeftColumnStats + b _081C2E62 +_081C2E42: + bl sub_081C303C + b _081C2E62 +_081C2E48: + bl BufferRightColumnStats + b _081C2E62 +_081C2E4E: + bl ShowPokemonSummaryScreenSet40EF + b _081C2E62 +_081C2E54: + bl PrintExpPointsNextLevel + b _081C2E62 +_081C2E5A: + adds r0, r2, #0 + bl DestroyTask + b _081C2E68 +_081C2E62: + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] +_081C2E68: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Task_PrintSkillsPage + + thumb_func_start PrintHeldItemName +PrintHeldItemName: @ 0x081C2E70 + push {r4, lr} + sub sp, #8 + ldr r4, _081C2EAC + ldr r0, [r4] + adds r0, #0x9e + ldrh r0, [r0] + cmp r0, #0xaf + bne _081C2EB4 + bl IsMultiBattle + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081C2EB4 + ldr r0, [r4] + ldr r1, _081C2EB0 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + beq _081C2EA0 + cmp r0, #4 + beq _081C2EA0 + cmp r0, #5 + bne _081C2EB4 +_081C2EA0: + movs r0, #0xaf + bl ItemId_GetName + adds r4, r0, #0 + b _081C2EDA + .align 2, 0 +_081C2EAC: .4byte 0x0203CBE8 +_081C2EB0: .4byte 0x000040BE +_081C2EB4: + ldr r0, _081C2EC8 + ldr r0, [r0] + adds r1, r0, #0 + adds r1, #0x9e + ldrh r0, [r1] + cmp r0, #0 + bne _081C2ED0 + ldr r4, _081C2ECC + b _081C2EDA + .align 2, 0 +_081C2EC8: .4byte 0x0203CBE8 +_081C2ECC: .4byte 0x085C93ED +_081C2ED0: + ldrh r0, [r1] + ldr r4, _081C2F00 + adds r1, r4, #0 + bl CopyItemName +_081C2EDA: + ldr r0, _081C2F04 + movs r1, #0 + bl AddWindowFromTemplateList + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + str r1, [sp] + str r1, [sp, #4] + adds r1, r4, #0 + movs r2, #0 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + add sp, #8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C2F00: .4byte 0x02021C40 +_081C2F04: .4byte 0x085ED134 + thumb_func_end PrintHeldItemName + + thumb_func_start PrintRibbonCount +PrintRibbonCount: @ 0x081C2F08 + push {r4, lr} + sub sp, #8 + ldr r0, _081C2F20 + ldr r0, [r0] + adds r1, r0, #0 + adds r1, #0x76 + ldrb r0, [r1] + cmp r0, #0 + bne _081C2F28 + ldr r4, _081C2F24 + b _081C2F3E + .align 2, 0 +_081C2F20: .4byte 0x0203CBE8 +_081C2F24: .4byte 0x085C93ED +_081C2F28: + ldr r0, _081C2F64 + ldrb r1, [r1] + movs r2, #1 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r4, _081C2F68 + ldr r1, _081C2F6C + adds r0, r4, #0 + bl StringExpandPlaceholders +_081C2F3E: + ldr r0, _081C2F70 + movs r1, #1 + bl AddWindowFromTemplateList + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + str r1, [sp] + str r1, [sp, #4] + adds r1, r4, #0 + movs r2, #0 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + add sp, #8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C2F64: .4byte 0x02021C40 +_081C2F68: .4byte 0x02021C7C +_081C2F6C: .4byte 0x085CA3CF +_081C2F70: .4byte 0x085ED134 + thumb_func_end PrintRibbonCount + + thumb_func_start BufferLeftColumnStats +BufferLeftColumnStats: @ 0x081C2F74 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + movs r0, #8 + bl Alloc + mov sb, r0 + movs r0, #8 + bl Alloc + mov r8, r0 + movs r0, #8 + bl Alloc + adds r6, r0, #0 + movs r0, #8 + bl Alloc + adds r5, r0, #0 + ldr r4, _081C3030 + ldr r0, [r4] + adds r0, #0x90 + ldrh r1, [r0] + mov r0, sb + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r0, [r4] + adds r0, #0x92 + ldrh r1, [r0] + mov r0, r8 + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r0, [r4] + adds r0, #0x94 + ldrh r1, [r0] + adds r0, r6, #0 + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r0, [r4] + adds r0, #0x96 + ldrh r1, [r0] + adds r0, r5, #0 + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + bl DynamicPlaceholderTextUtil_Reset + movs r0, #0 + mov r1, sb + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + movs r0, #1 + mov r1, r8 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + movs r0, #2 + adds r1, r6, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + movs r0, #3 + adds r1, r5, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + ldr r0, _081C3034 + ldr r1, _081C3038 + bl DynamicPlaceholderTextUtil_ExpandPlaceholders + mov r0, sb + bl Free + mov r0, r8 + bl Free + adds r0, r6, #0 + bl Free + adds r0, r5, #0 + bl Free + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081C3030: .4byte 0x0203CBE8 +_081C3034: .4byte 0x02021C7C +_081C3038: .4byte 0x085ED2D2 + thumb_func_end BufferLeftColumnStats + + thumb_func_start sub_081C303C +sub_081C303C: @ 0x081C303C + push {lr} + sub sp, #8 + ldr r0, _081C3060 + movs r1, #2 + bl AddWindowFromTemplateList + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081C3064 + movs r2, #0 + str r2, [sp] + str r2, [sp, #4] + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 +_081C3060: .4byte 0x085ED134 +_081C3064: .4byte 0x02021C7C + thumb_func_end sub_081C303C + + thumb_func_start BufferRightColumnStats +BufferRightColumnStats: @ 0x081C3068 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + ldr r0, _081C30D8 + mov r8, r0 + ldr r4, _081C30DC + ldr r0, [r4] + adds r0, #0x98 + ldrh r1, [r0] + mov r0, r8 + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r6, _081C30E0 + ldr r0, [r4] + adds r0, #0x9a + ldrh r1, [r0] + adds r0, r6, #0 + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r5, _081C30E4 + ldr r0, [r4] + adds r0, #0x9c + ldrh r1, [r0] + adds r0, r5, #0 + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + bl DynamicPlaceholderTextUtil_Reset + movs r0, #0 + mov r1, r8 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + movs r0, #1 + adds r1, r6, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + movs r0, #2 + adds r1, r5, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + ldr r0, _081C30E8 + ldr r1, _081C30EC + bl DynamicPlaceholderTextUtil_ExpandPlaceholders + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081C30D8: .4byte 0x02021C40 +_081C30DC: .4byte 0x0203CBE8 +_081C30E0: .4byte 0x02021C54 +_081C30E4: .4byte 0x02021C68 +_081C30E8: .4byte 0x02021C7C +_081C30EC: .4byte 0x085ED2DE + thumb_func_end BufferRightColumnStats + + thumb_func_start ShowPokemonSummaryScreenSet40EF +ShowPokemonSummaryScreenSet40EF: @ 0x081C30F0 + push {lr} + sub sp, #8 + ldr r0, _081C3114 + movs r1, #3 + bl AddWindowFromTemplateList + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081C3118 + movs r2, #0 + str r2, [sp] + str r2, [sp, #4] + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 +_081C3114: .4byte 0x085ED134 +_081C3118: .4byte 0x02021C7C + thumb_func_end ShowPokemonSummaryScreenSet40EF + + thumb_func_start PrintExpPointsNextLevel +PrintExpPointsNextLevel: @ 0x081C311C + push {r4, r5, r6, r7, lr} + sub sp, #8 + ldr r0, _081C3194 + ldr r0, [r0] + adds r6, r0, #0 + adds r6, #0x70 + ldr r0, _081C3198 + movs r1, #4 + bl AddWindowFromTemplateList + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r5, _081C319C + ldr r1, [r6, #0x10] + adds r0, r5, #0 + movs r2, #1 + movs r3, #7 + bl ConvertIntToDecimalStringN + movs r4, #0 + str r4, [sp] + str r4, [sp, #4] + adds r0, r7, #0 + adds r1, r5, #0 + movs r2, #8 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + ldr r1, _081C31A0 + str r4, [sp] + str r4, [sp, #4] + adds r0, r7, #0 + movs r2, #0 + movs r3, #0x12 + bl SummaryScreen_PrintTextOnWindow + ldrb r0, [r6, #5] + cmp r0, #0x63 + bhi _081C31AC + ldr r4, _081C31A4 + adds r1, r0, #0 + adds r1, #1 + lsls r1, r1, #2 + ldr r3, _081C31A8 + ldrh r2, [r6] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r2, [r0, #0x13] + movs r0, #0xca + lsls r0, r0, #1 + muls r0, r2, r0 + adds r1, r1, r0 + adds r1, r1, r4 + ldr r1, [r1] + ldr r0, [r6, #0x10] + subs r1, r1, r0 + b _081C31AE + .align 2, 0 +_081C3194: .4byte 0x0203CBE8 +_081C3198: .4byte 0x085ED134 +_081C319C: .4byte 0x02021C40 +_081C31A0: .4byte 0x085CA38B +_081C31A4: .4byte 0x082F00B4 +_081C31A8: .4byte 0x082F0D54 +_081C31AC: + movs r1, #0 +_081C31AE: + ldr r4, _081C31D4 + adds r0, r4, #0 + movs r2, #1 + movs r3, #6 + bl ConvertIntToDecimalStringN + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + adds r0, r7, #0 + adds r1, r4, #0 + movs r2, #0x10 + movs r3, #0x12 + bl SummaryScreen_PrintTextOnWindow + add sp, #8 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C31D4: .4byte 0x02021C40 + thumb_func_end PrintExpPointsNextLevel + + thumb_func_start PrintBattleMoves +PrintBattleMoves: @ 0x081C31D8 + push {r4, lr} + movs r0, #0 + bl PrintMoveNameAndPP + movs r0, #1 + bl PrintMoveNameAndPP + movs r0, #2 + bl PrintMoveNameAndPP + movs r0, #3 + bl PrintMoveNameAndPP + ldr r4, _081C3220 + ldr r0, [r4] + ldr r1, _081C3224 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #3 + bne _081C323E + bl PrintNewMoveDetailsOrCancelText + ldr r1, [r4] + ldr r0, _081C3228 + adds r2, r1, r0 + ldrb r0, [r2] + cmp r0, #4 + bne _081C3230 + ldr r0, _081C322C + adds r1, r1, r0 + ldrh r0, [r1] + cmp r0, #0 + beq _081C323E + bl PrintMoveDetails + b _081C323E + .align 2, 0 +_081C3220: .4byte 0x0203CBE8 +_081C3224: .4byte 0x000040BC +_081C3228: .4byte 0x000040C6 +_081C322C: .4byte 0x000040C4 +_081C3230: + ldrb r0, [r2] + lsls r0, r0, #1 + adds r1, #0x84 + adds r1, r1, r0 + ldrh r0, [r1] + bl PrintMoveDetails +_081C323E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end PrintBattleMoves + + thumb_func_start Task_PrintBattleMoves +Task_PrintBattleMoves: @ 0x081C3244 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _081C326C + adds r4, r0, r1 + ldrh r0, [r4] + subs r0, #1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + bhi _081C3350 + lsls r0, r0, #2 + ldr r1, _081C3270 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081C326C: .4byte 0x03005B68 +_081C3270: .4byte 0x081C3274 +_081C3274: @ jump table + .4byte _081C3294 @ case 0 + .4byte _081C329C @ case 1 + .4byte _081C32A4 @ case 2 + .4byte _081C32AC @ case 3 + .4byte _081C32B4 @ case 4 + .4byte _081C32D0 @ case 5 + .4byte _081C3312 @ case 6 + .4byte _081C3348 @ case 7 +_081C3294: + movs r0, #0 + bl PrintMoveNameAndPP + b _081C3350 +_081C329C: + movs r0, #1 + bl PrintMoveNameAndPP + b _081C3350 +_081C32A4: + movs r0, #2 + bl PrintMoveNameAndPP + b _081C3350 +_081C32AC: + movs r0, #3 + bl PrintMoveNameAndPP + b _081C3350 +_081C32B4: + ldr r0, _081C32C8 + ldr r0, [r0] + ldr r1, _081C32CC + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #3 + bne _081C3350 + bl PrintNewMoveDetailsOrCancelText + b _081C3350 + .align 2, 0 +_081C32C8: .4byte 0x0203CBE8 +_081C32CC: .4byte 0x000040BC +_081C32D0: + ldr r0, _081C32F4 + ldr r1, [r0] + ldr r2, _081C32F8 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #3 + bne _081C3350 + ldr r0, _081C32FC + adds r2, r1, r0 + ldrb r0, [r2] + cmp r0, #4 + bne _081C3304 + ldr r2, _081C3300 + adds r0, r1, r2 + ldrh r0, [r0] + strh r0, [r4, #2] + b _081C3350 + .align 2, 0 +_081C32F4: .4byte 0x0203CBE8 +_081C32F8: .4byte 0x000040BC +_081C32FC: .4byte 0x000040C6 +_081C3300: .4byte 0x000040C4 +_081C3304: + ldrb r0, [r2] + lsls r0, r0, #1 + adds r1, #0x84 + adds r1, r1, r0 + ldrh r0, [r1] + strh r0, [r4, #2] + b _081C3350 +_081C3312: + ldr r0, _081C333C + ldr r1, [r0] + ldr r2, _081C3340 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #3 + bne _081C3350 + adds r2, #8 + adds r0, r1, r2 + ldr r0, [r0] + ldr r1, _081C3344 + ands r0, r1 + movs r1, #0x80 + lsls r1, r1, #0xb + cmp r0, r1 + beq _081C3350 + ldrh r0, [r4, #2] + bl PrintMoveDetails + b _081C3350 + .align 2, 0 +_081C333C: .4byte 0x0203CBE8 +_081C3340: .4byte 0x000040BC +_081C3344: .4byte 0x00FFFFFF +_081C3348: + adds r0, r2, #0 + bl DestroyTask + b _081C3356 +_081C3350: + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] +_081C3356: + pop {r4} + pop {r0} + bx r0 + thumb_func_end Task_PrintBattleMoves + + thumb_func_start PrintMoveNameAndPP +PrintMoveNameAndPP: @ 0x081C335C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _081C3438 + ldr r0, [r0] + mov r8, r0 + ldr r4, _081C343C + adds r0, r4, #0 + movs r1, #0 + bl AddWindowFromTemplateList + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + adds r0, r4, #0 + movs r1, #1 + bl AddWindowFromTemplateList + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + lsls r1, r7, #1 + mov r0, r8 + adds r0, #0x84 + adds r0, r0, r1 + ldrh r5, [r0] + cmp r5, #0 + beq _081C3454 + mov r0, r8 + adds r0, #0xa4 + ldrb r1, [r0] + adds r0, r5, #0 + adds r2, r7, #0 + bl CalculatePPWithBonus + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r1, r5, #3 + ldr r0, _081C3440 + adds r1, r1, r0 + lsls r4, r7, #4 + adds r4, #2 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + str r0, [sp] + movs r0, #1 + str r0, [sp, #4] + mov r0, sb + movs r2, #0 + adds r3, r4, #0 + bl SummaryScreen_PrintTextOnWindow + ldr r1, _081C3444 + mov sb, r1 + mov r5, r8 + adds r5, #0x8c + adds r5, r5, r7 + ldrb r1, [r5] + mov r0, sb + movs r2, #1 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r0, _081C3448 + mov r8, r0 + adds r1, r6, #0 + movs r2, #1 + movs r3, #2 + bl ConvertIntToDecimalStringN + bl DynamicPlaceholderTextUtil_Reset + movs r0, #0 + mov r1, sb + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + movs r0, #1 + mov r1, r8 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + ldr r1, _081C344C + mov r8, r1 + ldr r1, _081C3450 + mov r0, r8 + bl DynamicPlaceholderTextUtil_ExpandPlaceholders + ldrb r0, [r5] + adds r1, r6, #0 + bl GetCurrentPpToMaxPpState + adds r0, #9 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + str r1, [sp] + str r0, [sp, #4] + mov r0, sl + mov r1, r8 + movs r2, #0 + adds r3, r4, #0 + bl SummaryScreen_PrintTextOnWindow + b _081C3480 + .align 2, 0 +_081C3438: .4byte 0x0203CBE8 +_081C343C: .4byte 0x085ED15C +_081C3440: .4byte 0x082EACC4 +_081C3444: .4byte 0x02021C40 +_081C3448: .4byte 0x02021C54 +_081C344C: .4byte 0x02021C7C +_081C3450: .4byte 0x085ED2E7 +_081C3454: + ldr r1, _081C3490 + lsls r4, r7, #4 + adds r4, #2 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r5, [sp] + movs r0, #1 + str r0, [sp, #4] + mov r0, sb + movs r2, #0 + adds r3, r4, #0 + bl SummaryScreen_PrintTextOnWindow + ldr r1, _081C3494 + str r5, [sp] + movs r0, #0xc + str r0, [sp, #4] + mov r0, sl + movs r2, #8 + adds r3, r4, #0 + bl SummaryScreen_PrintTextOnWindow +_081C3480: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C3490: .4byte 0x085C9401 +_081C3494: .4byte 0x085C9403 + thumb_func_end PrintMoveNameAndPP + + thumb_func_start PrintMovePowerAndAccuracy +PrintMovePowerAndAccuracy: @ 0x081C3498 + push {r4, r5, r6, lr} + sub sp, #8 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0 + beq _081C3538 + movs r0, #0x18 + str r0, [sp] + movs r0, #0x20 + str r0, [sp, #4] + movs r0, #0xe + movs r1, #0 + movs r2, #0x28 + movs r3, #0 + bl FillWindowPixelRect + ldr r2, _081C34D0 + lsls r1, r5, #1 + adds r0, r1, r5 + lsls r0, r0, #2 + adds r2, r0, r2 + ldrb r0, [r2, #1] + adds r6, r1, #0 + cmp r0, #1 + bhi _081C34D8 + ldr r1, _081C34D4 + b _081C34E8 + .align 2, 0 +_081C34D0: .4byte 0x082ED220 +_081C34D4: .4byte 0x085C9406 +_081C34D8: + ldr r4, _081C350C + ldrb r1, [r2, #1] + adds r0, r4, #0 + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + adds r1, r4, #0 +_081C34E8: + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + movs r0, #0xe + movs r2, #0x28 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + ldr r1, _081C3510 + adds r0, r6, r5 + lsls r0, r0, #2 + adds r1, r0, r1 + ldrb r0, [r1, #3] + cmp r0, #0 + bne _081C3518 + ldr r1, _081C3514 + b _081C3528 + .align 2, 0 +_081C350C: .4byte 0x02021C40 +_081C3510: .4byte 0x082ED220 +_081C3514: .4byte 0x085C9406 +_081C3518: + ldr r4, _081C3540 + ldrb r1, [r1, #3] + adds r0, r4, #0 + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + adds r1, r4, #0 +_081C3528: + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + movs r0, #0xe + movs r2, #0x28 + movs r3, #0x12 + bl SummaryScreen_PrintTextOnWindow +_081C3538: + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081C3540: .4byte 0x02021C40 + thumb_func_end PrintMovePowerAndAccuracy + + thumb_func_start PrintContestMoves +PrintContestMoves: @ 0x081C3544 + push {r4, lr} + movs r0, #0 + bl PrintMoveNameAndPP + movs r0, #1 + bl PrintMoveNameAndPP + movs r0, #2 + bl PrintMoveNameAndPP + movs r0, #3 + bl PrintMoveNameAndPP + ldr r4, _081C3584 + ldr r0, [r4] + ldr r1, _081C3588 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #3 + bne _081C357C + bl PrintNewMoveDetailsOrCancelText + ldr r0, [r4] + ldr r1, _081C358C + adds r0, r0, r1 + ldrb r0, [r0] + bl PrintContestMoveDescription +_081C357C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C3584: .4byte 0x0203CBE8 +_081C3588: .4byte 0x000040BC +_081C358C: .4byte 0x000040C6 + thumb_func_end PrintContestMoves + + thumb_func_start Task_PrintContestMoves +Task_PrintContestMoves: @ 0x081C3590 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _081C35B8 + adds r4, r0, r1 + ldrh r0, [r4] + subs r0, #1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #6 + bhi _081C365C + lsls r0, r0, #2 + ldr r1, _081C35BC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081C35B8: .4byte 0x03005B68 +_081C35BC: .4byte 0x081C35C0 +_081C35C0: @ jump table + .4byte _081C35DC @ case 0 + .4byte _081C35E4 @ case 1 + .4byte _081C35EC @ case 2 + .4byte _081C35F4 @ case 3 + .4byte _081C35FC @ case 4 + .4byte _081C3618 @ case 5 + .4byte _081C3654 @ case 6 +_081C35DC: + movs r0, #0 + bl PrintMoveNameAndPP + b _081C365C +_081C35E4: + movs r0, #1 + bl PrintMoveNameAndPP + b _081C365C +_081C35EC: + movs r0, #2 + bl PrintMoveNameAndPP + b _081C365C +_081C35F4: + movs r0, #3 + bl PrintMoveNameAndPP + b _081C365C +_081C35FC: + ldr r0, _081C3610 + ldr r0, [r0] + ldr r1, _081C3614 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #3 + bne _081C365C + bl PrintNewMoveDetailsOrCancelText + b _081C365C + .align 2, 0 +_081C3610: .4byte 0x0203CBE8 +_081C3614: .4byte 0x000040BC +_081C3618: + ldr r0, _081C3644 + ldr r2, [r0] + ldr r1, _081C3648 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #3 + bne _081C365C + adds r1, #8 + adds r0, r2, r1 + ldr r0, [r0] + ldr r1, _081C364C + ands r0, r1 + movs r1, #0x80 + lsls r1, r1, #0xb + cmp r0, r1 + beq _081C365C + ldr r1, _081C3650 + adds r0, r2, r1 + ldrb r0, [r0] + bl PrintContestMoveDescription + b _081C365C + .align 2, 0 +_081C3644: .4byte 0x0203CBE8 +_081C3648: .4byte 0x000040BC +_081C364C: .4byte 0x00FFFFFF +_081C3650: .4byte 0x000040C6 +_081C3654: + adds r0, r2, #0 + bl DestroyTask + b _081C3662 +_081C365C: + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] +_081C3662: + pop {r4} + pop {r0} + bx r0 + thumb_func_end Task_PrintContestMoves + + thumb_func_start PrintContestMoveDescription +PrintContestMoveDescription: @ 0x081C3668 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #4 + bne _081C3684 + ldr r0, _081C367C + ldr r0, [r0] + ldr r1, _081C3680 + b _081C368C + .align 2, 0 +_081C367C: .4byte 0x0203CBE8 +_081C3680: .4byte 0x000040C4 +_081C3684: + ldr r0, _081C36C4 + ldr r0, [r0] + lsls r1, r1, #1 + adds r0, #0x84 +_081C368C: + adds r0, r0, r1 + ldrh r4, [r0] + cmp r4, #0 + beq _081C36BC + ldr r0, _081C36C8 + movs r1, #2 + bl AddWindowFromTemplateList + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _081C36CC + ldr r2, _081C36D0 + lsls r1, r4, #3 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r1, [r1] + movs r2, #0 + str r2, [sp] + str r2, [sp, #4] + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow +_081C36BC: + add sp, #8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C36C4: .4byte 0x0203CBE8 +_081C36C8: .4byte 0x085ED15C +_081C36CC: .4byte 0x08560BB4 +_081C36D0: .4byte 0x08565FCC + thumb_func_end PrintContestMoveDescription + + thumb_func_start PrintMoveDetails +PrintMoveDetails: @ 0x081C36D4 + push {r4, r5, r6, lr} + sub sp, #8 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r6, r4, #0 + ldr r0, _081C3728 + movs r1, #2 + bl AddWindowFromTemplateList + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r5, #0 + movs r1, #0 + bl FillWindowPixelBuffer + cmp r4, #0 + beq _081C3768 + ldr r0, _081C372C + ldr r0, [r0] + ldr r1, _081C3730 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #2 + bne _081C3738 + adds r0, r4, #0 + bl PrintMovePowerAndAccuracy + lsls r1, r4, #3 + subs r1, r1, r4 + lsls r1, r1, #3 + ldr r0, _081C3734 + adds r1, r1, r0 + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + adds r0, r5, #0 + movs r2, #0 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + b _081C3758 + .align 2, 0 +_081C3728: .4byte 0x085ED15C +_081C372C: .4byte 0x0203CBE8 +_081C3730: .4byte 0x000040C0 +_081C3734: .4byte 0x085E7FFC +_081C3738: + ldr r2, _081C3760 + ldr r1, _081C3764 + lsls r0, r6, #3 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, [r0] + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + adds r0, r5, #0 + movs r2, #0 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow +_081C3758: + adds r0, r5, #0 + bl PutWindowTilemap + b _081C376E + .align 2, 0 +_081C3760: .4byte 0x08560BB4 +_081C3764: .4byte 0x08565FCC +_081C3768: + adds r0, r5, #0 + bl ClearWindowTilemap +_081C376E: + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end PrintMoveDetails + + thumb_func_start PrintNewMoveDetailsOrCancelText +PrintNewMoveDetailsOrCancelText: @ 0x081C377C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + ldr r4, _081C37C4 + adds r0, r4, #0 + movs r1, #0 + bl AddWindowFromTemplateList + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r7, r6, #0 + adds r0, r4, #0 + movs r1, #1 + bl AddWindowFromTemplateList + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r0, _081C37C8 + ldr r1, [r0] + ldr r2, _081C37CC + adds r0, r1, r2 + ldrh r2, [r0] + cmp r2, #0 + bne _081C37D4 + ldr r1, _081C37D0 + str r2, [sp] + movs r0, #1 + str r0, [sp, #4] + adds r0, r6, #0 + movs r2, #0 + movs r3, #0x42 + bl SummaryScreen_PrintTextOnWindow + b _081C3866 + .align 2, 0 +_081C37C4: .4byte 0x085ED15C +_081C37C8: .4byte 0x0203CBE8 +_081C37CC: .4byte 0x000040C4 +_081C37D0: .4byte 0x085C93C4 +_081C37D4: + ldrh r5, [r0] + ldr r2, _081C37FC + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #2 + bne _081C3804 + lsls r1, r5, #3 + ldr r0, _081C3800 + adds r1, r1, r0 + movs r0, #0 + str r0, [sp] + movs r0, #6 + str r0, [sp, #4] + adds r0, r6, #0 + movs r2, #0 + movs r3, #0x42 + bl SummaryScreen_PrintTextOnWindow + b _081C381C + .align 2, 0 +_081C37FC: .4byte 0x000040C0 +_081C3800: .4byte 0x082EACC4 +_081C3804: + lsls r1, r5, #3 + ldr r0, _081C3874 + adds r1, r1, r0 + movs r0, #0 + str r0, [sp] + movs r0, #5 + str r0, [sp, #4] + adds r0, r7, #0 + movs r2, #0 + movs r3, #0x42 + bl SummaryScreen_PrintTextOnWindow +_081C381C: + ldr r4, _081C3878 + ldr r1, _081C387C + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #4] + adds r0, r4, #0 + movs r2, #1 + movs r3, #2 + bl ConvertIntToDecimalStringN + bl DynamicPlaceholderTextUtil_Reset + movs r0, #0 + adds r1, r4, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + movs r0, #1 + adds r1, r4, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + ldr r4, _081C3880 + ldr r1, _081C3884 + adds r0, r4, #0 + bl DynamicPlaceholderTextUtil_ExpandPlaceholders + movs r0, #0 + str r0, [sp] + movs r0, #0xc + str r0, [sp, #4] + mov r0, r8 + adds r1, r4, #0 + movs r2, #0 + movs r3, #0x42 + bl SummaryScreen_PrintTextOnWindow +_081C3866: + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C3874: .4byte 0x082EACC4 +_081C3878: .4byte 0x02021C40 +_081C387C: .4byte 0x082ED220 +_081C3880: .4byte 0x02021C7C +_081C3884: .4byte 0x085ED2E7 + thumb_func_end PrintNewMoveDetailsOrCancelText + + thumb_func_start sub_081C3888 +sub_081C3888: @ 0x081C3888 + push {r4, lr} + sub sp, #8 + ldr r0, _081C38C0 + movs r1, #0 + bl AddWindowFromTemplateList + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0x38 + str r0, [sp] + movs r0, #0x10 + str r0, [sp, #4] + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0x42 + bl FillWindowPixelRect + adds r0, r4, #0 + movs r1, #2 + bl CopyWindowToVram + add sp, #8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C38C0: .4byte 0x085ED15C + thumb_func_end sub_081C3888 + + thumb_func_start PrintEggOTName +PrintEggOTName: @ 0x081C38C4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + mov sb, r0 + mov sl, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + mov r0, sl + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + ldr r5, _081C3974 + adds r0, r5, #0 + movs r1, #0 + bl AddWindowFromTemplateList + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + movs r1, #1 + bl AddWindowFromTemplateList + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + mov r0, sb + lsls r6, r0, #4 + movs r0, #0x38 + mov r8, r0 + str r0, [sp] + movs r0, #0x10 + str r0, [sp, #4] + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + adds r3, r6, #0 + bl FillWindowPixelRect + mov r0, sl + lsls r7, r0, #4 + mov r0, r8 + str r0, [sp] + movs r0, #0x10 + str r0, [sp, #4] + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + adds r3, r7, #0 + bl FillWindowPixelRect + movs r4, #0x30 + str r4, [sp] + movs r0, #0x10 + str r0, [sp, #4] + adds r0, r5, #0 + movs r1, #0 + movs r2, #0 + adds r3, r6, #0 + bl FillWindowPixelRect + str r4, [sp] + movs r0, #0x10 + str r0, [sp, #4] + adds r0, r5, #0 + movs r1, #0 + movs r2, #0 + adds r3, r7, #0 + bl FillWindowPixelRect + mov r0, sb + bl PrintMoveNameAndPP + mov r0, sl + bl PrintMoveNameAndPP + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C3974: .4byte 0x085ED15C + thumb_func_end PrintEggOTName + + thumb_func_start PrintHMMovesCantBeForgotten +PrintHMMovesCantBeForgotten: @ 0x081C3978 + push {r4, lr} + sub sp, #8 + ldr r0, _081C39AC + movs r1, #2 + bl AddWindowFromTemplateList + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #0 + bl FillWindowPixelBuffer + ldr r1, _081C39B0 + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + adds r0, r4, #0 + movs r2, #0 + movs r3, #2 + bl SummaryScreen_PrintTextOnWindow + add sp, #8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C39AC: .4byte 0x085ED15C +_081C39B0: .4byte 0x085CA487 + thumb_func_end PrintHMMovesCantBeForgotten + + thumb_func_start ResetSpriteIds +ResetSpriteIds: @ 0x081C39B4 + push {r4, r5, lr} + movs r2, #0 + ldr r5, _081C39DC + ldr r4, _081C39E0 + movs r3, #0xff +_081C39BE: + ldr r0, [r5] + adds r0, r0, r4 + adds r0, r0, r2 + ldrb r1, [r0] + orrs r1, r3 + strb r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x1b + bls _081C39BE + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C39DC: .4byte 0x0203CBE8 +_081C39E0: .4byte 0x000040D3 + thumb_func_end ResetSpriteIds + + thumb_func_start DestroySpriteInArray +DestroySpriteInArray: @ 0x081C39E4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r5, _081C3A1C + ldr r0, [r5] + ldr r1, _081C3A20 + adds r0, r0, r1 + adds r1, r0, r4 + ldrb r0, [r1] + cmp r0, #0xff + beq _081C3A16 + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _081C3A24 + adds r0, r0, r1 + bl DestroySprite + ldr r0, [r5] + ldr r1, _081C3A20 + adds r0, r0, r1 + adds r0, r0, r4 + movs r1, #0xff + strb r1, [r0] +_081C3A16: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C3A1C: .4byte 0x0203CBE8 +_081C3A20: .4byte 0x000040D3 +_081C3A24: .4byte 0x020205AC + thumb_func_end DestroySpriteInArray + + thumb_func_start SetSpriteInvisibility +SetSpriteInvisibility: @ 0x081C3A28 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r3, _081C3A64 + ldr r2, _081C3A68 + ldr r2, [r2] + ldr r4, _081C3A6C + adds r2, r2, r4 + adds r2, r2, r0 + ldrb r0, [r2] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r3 + adds r2, #0x3e + movs r0, #1 + ands r1, r0 + lsls r1, r1, #2 + ldrb r3, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C3A64: .4byte 0x020205AC +_081C3A68: .4byte 0x0203CBE8 +_081C3A6C: .4byte 0x000040D3 + thumb_func_end SetSpriteInvisibility + + thumb_func_start HidePageSpecificSprites +HidePageSpecificSprites: @ 0x081C3A70 + push {r4, lr} + movs r4, #3 +_081C3A74: + ldr r0, _081C3A9C + ldr r0, [r0] + ldr r1, _081C3AA0 + adds r0, r0, r1 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0xff + beq _081C3A8C + adds r0, r4, #0 + movs r1, #1 + bl SetSpriteInvisibility +_081C3A8C: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x1b + bls _081C3A74 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C3A9C: .4byte 0x0203CBE8 +_081C3AA0: .4byte 0x000040D3 + thumb_func_end HidePageSpecificSprites + + thumb_func_start SetTypeIcons +SetTypeIcons: @ 0x081C3AA4 + push {lr} + ldr r0, _081C3AC0 + ldr r0, [r0] + ldr r1, _081C3AC4 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #2 + beq _081C3AD4 + cmp r0, #2 + bgt _081C3AC8 + cmp r0, #0 + beq _081C3ACE + b _081C3AE6 + .align 2, 0 +_081C3AC0: .4byte 0x0203CBE8 +_081C3AC4: .4byte 0x000040C0 +_081C3AC8: + cmp r0, #3 + beq _081C3ADE + b _081C3AE6 +_081C3ACE: + bl SetMonTypeIcons + b _081C3AE6 +_081C3AD4: + bl SetMoveTypeIcons + bl SetNewMoveTypeIcon + b _081C3AE6 +_081C3ADE: + bl SetContestMoveTypeIcons + bl SetNewMoveTypeIcon +_081C3AE6: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetTypeIcons + + thumb_func_start CreateMoveTypeIcons +CreateMoveTypeIcons: @ 0x081C3AEC + push {r4, r5, lr} + movs r4, #3 + ldr r5, _081C3B30 +_081C3AF2: + ldr r0, [r5] + ldr r1, _081C3B34 + adds r0, r0, r1 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0xff + bne _081C3B16 + ldr r0, _081C3B38 + movs r1, #0 + movs r2, #0 + movs r3, #2 + bl CreateSprite + ldr r1, [r5] + ldr r2, _081C3B34 + adds r1, r1, r2 + adds r1, r1, r4 + strb r0, [r1] +_081C3B16: + adds r0, r4, #0 + movs r1, #1 + bl SetSpriteInvisibility + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #7 + bls _081C3AF2 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C3B30: .4byte 0x0203CBE8 +_081C3B34: .4byte 0x000040D3 +_081C3B38: .4byte 0x085ED414 + thumb_func_end CreateMoveTypeIcons + + thumb_func_start SetMoveTypeSpritePosAndType +SetMoveTypeSpritePosAndType: @ 0x081C3B3C + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #4 + adds r5, r0, #0 + adds r6, r1, #0 + mov r8, r2 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov r0, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r0, _081C3BB4 + ldr r0, [r0] + ldr r1, _081C3BB8 + adds r0, r0, r1 + adds r0, r0, r3 + ldrb r0, [r0] + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _081C3BBC + adds r4, r4, r0 + adds r0, r4, #0 + adds r1, r5, #0 + str r3, [sp] + bl StartSpriteAnim + ldr r0, _081C3BC0 + adds r5, r5, r0 + ldrb r1, [r5] + lsls r1, r1, #4 + ldrb r2, [r4, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #5] + adds r6, #0x10 + strh r6, [r4, #0x20] + movs r0, #8 + add r8, r0 + mov r1, r8 + strh r1, [r4, #0x22] + ldr r3, [sp] + adds r0, r3, #0 + movs r1, #0 + bl SetSpriteInvisibility + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081C3BB4: .4byte 0x0203CBE8 +_081C3BB8: .4byte 0x000040D3 +_081C3BBC: .4byte 0x020205AC +_081C3BC0: .4byte 0x085ED42C + thumb_func_end SetMoveTypeSpritePosAndType + + thumb_func_start SetMonTypeIcons +SetMonTypeIcons: @ 0x081C3BC4 + push {r4, r5, lr} + ldr r0, _081C3BEC + ldr r0, [r0] + adds r5, r0, #0 + adds r5, #0x70 + ldrb r0, [r5, #4] + cmp r0, #0 + beq _081C3BF0 + movs r0, #9 + movs r1, #0x78 + movs r2, #0x30 + movs r3, #3 + bl SetMoveTypeSpritePosAndType + movs r0, #4 + movs r1, #1 + bl SetSpriteInvisibility + b _081C3C3C + .align 2, 0 +_081C3BEC: .4byte 0x0203CBE8 +_081C3BF0: + ldr r4, _081C3C30 + ldrh r1, [r5] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r0, [r0, #6] + movs r1, #0x78 + movs r2, #0x30 + movs r3, #3 + bl SetMoveTypeSpritePosAndType + ldrh r1, [r5] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r4 + ldrb r0, [r1, #6] + ldrb r2, [r1, #7] + cmp r0, r2 + beq _081C3C34 + ldrb r0, [r1, #7] + movs r1, #0xa0 + movs r2, #0x30 + movs r3, #4 + bl SetMoveTypeSpritePosAndType + movs r0, #4 + movs r1, #0 + bl SetSpriteInvisibility + b _081C3C3C + .align 2, 0 +_081C3C30: .4byte 0x082F0D54 +_081C3C34: + movs r0, #4 + movs r1, #1 + bl SetSpriteInvisibility +_081C3C3C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetMonTypeIcons + + thumb_func_start SetMoveTypeIcons +SetMoveTypeIcons: @ 0x081C3C44 + push {r4, r5, r6, lr} + ldr r0, _081C3C84 + ldr r0, [r0] + adds r5, r0, #0 + adds r5, #0x70 + movs r4, #0 + ldr r6, _081C3C88 +_081C3C52: + lsls r0, r4, #1 + adds r1, r5, #0 + adds r1, #0x14 + adds r1, r1, r0 + ldrh r0, [r1] + cmp r0, #0 + beq _081C3C8C + adds r1, r0, #0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r0, [r0, #2] + lsls r2, r4, #0x1c + movs r1, #0x80 + lsls r1, r1, #0x16 + adds r2, r2, r1 + lsrs r2, r2, #0x18 + adds r3, r4, #3 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r1, #0x57 + bl SetMoveTypeSpritePosAndType + b _081C3C98 + .align 2, 0 +_081C3C84: .4byte 0x0203CBE8 +_081C3C88: .4byte 0x082ED220 +_081C3C8C: + adds r0, r4, #3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + bl SetSpriteInvisibility +_081C3C98: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _081C3C52 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end SetMoveTypeIcons + + thumb_func_start SetContestMoveTypeIcons +SetContestMoveTypeIcons: @ 0x081C3CA8 + push {r4, r5, lr} + ldr r0, _081C3CF0 + ldr r0, [r0] + adds r5, r0, #0 + adds r5, #0x70 + movs r4, #0 +_081C3CB4: + lsls r0, r4, #1 + adds r1, r5, #0 + adds r1, #0x14 + adds r2, r1, r0 + ldrh r0, [r2] + cmp r0, #0 + beq _081C3CF8 + ldr r1, _081C3CF4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r0, [r0, #1] + lsls r0, r0, #0x1d + lsrs r0, r0, #5 + movs r1, #0x90 + lsls r1, r1, #0x15 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + lsls r2, r4, #0x1c + movs r1, #0x80 + lsls r1, r1, #0x16 + adds r2, r2, r1 + lsrs r2, r2, #0x18 + adds r3, r4, #3 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r1, #0x57 + bl SetMoveTypeSpritePosAndType + b _081C3D04 + .align 2, 0 +_081C3CF0: .4byte 0x0203CBE8 +_081C3CF4: .4byte 0x08565FCC +_081C3CF8: + adds r0, r4, #3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + bl SetSpriteInvisibility +_081C3D04: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _081C3CB4 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end SetContestMoveTypeIcons + + thumb_func_start SetNewMoveTypeIcon +SetNewMoveTypeIcon: @ 0x081C3D14 + push {lr} + ldr r0, _081C3D30 + ldr r1, [r0] + ldr r0, _081C3D34 + adds r3, r1, r0 + ldrh r0, [r3] + cmp r0, #0 + bne _081C3D38 + movs r0, #7 + movs r1, #1 + bl SetSpriteInvisibility + b _081C3D84 + .align 2, 0 +_081C3D30: .4byte 0x0203CBE8 +_081C3D34: .4byte 0x000040C4 +_081C3D38: + ldr r2, _081C3D5C + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #2 + bne _081C3D64 + ldr r2, _081C3D60 + ldrh r1, [r3] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #2] + movs r1, #0x57 + movs r2, #0x60 + movs r3, #7 + bl SetMoveTypeSpritePosAndType + b _081C3D84 + .align 2, 0 +_081C3D5C: .4byte 0x000040C0 +_081C3D60: .4byte 0x082ED220 +_081C3D64: + ldr r1, _081C3D88 + ldrh r0, [r3] + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r0, [r0, #1] + lsls r0, r0, #0x1d + lsrs r0, r0, #5 + movs r1, #0x90 + lsls r1, r1, #0x15 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + movs r1, #0x57 + movs r2, #0x60 + movs r3, #7 + bl SetMoveTypeSpritePosAndType +_081C3D84: + pop {r0} + bx r0 + .align 2, 0 +_081C3D88: .4byte 0x08565FCC + thumb_func_end SetNewMoveTypeIcon + + thumb_func_start sub_081C3D8C +sub_081C3D8C: @ 0x081C3D8C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _081C3E0C + ldr r2, [r2] + adds r0, #3 + ldr r3, _081C3E10 + adds r2, r2, r3 + adds r0, r2, r0 + ldrb r0, [r0] + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r5, _081C3E14 + adds r4, r4, r5 + adds r1, #3 + adds r2, r2, r1 + ldrb r0, [r2] + lsls r3, r0, #4 + adds r3, r3, r0 + lsls r3, r3, #2 + adds r3, r3, r5 + adds r5, r4, #0 + adds r5, #0x2a + ldrb r1, [r5] + adds r2, r3, #0 + adds r2, #0x2a + ldrb r0, [r2] + strb r0, [r5] + strb r1, [r2] + ldrb r6, [r4, #5] + lsrs r5, r6, #4 + ldrb r2, [r3, #5] + lsrs r2, r2, #4 + lsls r2, r2, #4 + movs r1, #0xf + adds r0, r1, #0 + ands r0, r6 + orrs r0, r2 + strb r0, [r4, #5] + lsls r5, r5, #4 + ldrb r0, [r3, #5] + ands r1, r0 + orrs r1, r5 + strb r1, [r3, #5] + adds r4, #0x3f + ldrb r0, [r4] + movs r2, #4 + orrs r0, r2 + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r4] + adds r3, #0x3f + ldrb r0, [r3] + orrs r0, r2 + ands r0, r1 + strb r0, [r3] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081C3E0C: .4byte 0x0203CBE8 +_081C3E10: .4byte 0x000040D3 +_081C3E14: .4byte 0x020205AC + thumb_func_end sub_081C3D8C + + thumb_func_start CreatePokemonSprite +CreatePokemonSprite: @ 0x081C3E18 + push {r4, r5, r6, lr} + adds r3, r0, #0 + adds r6, r1, #0 + ldr r0, _081C3E40 + ldr r2, [r0] + adds r5, r2, #0 + adds r5, #0x70 + movs r1, #0 + ldrsh r0, [r6, r1] + cmp r0, #0 + beq _081C3E44 + cmp r0, #1 + bne _081C3E34 + b _081C3F58 +_081C3E34: + adds r0, r3, #0 + bl sub_081C3FBC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _081C3F78 + .align 2, 0 +_081C3E40: .4byte 0x0203CBE8 +_081C3E44: + ldr r0, _081C3E78 + ldr r1, _081C3E7C + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081C3EA4 + ldr r1, _081C3E80 + adds r0, r2, r1 + ldrb r1, [r0] + movs r0, #3 + bl sub_08068438 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081C3E8C + ldrh r2, [r5, #2] + lsls r0, r2, #3 + ldr r1, _081C3E84 + adds r0, r0, r1 + ldr r1, _081C3E88 + ldr r1, [r1] + ldr r1, [r1, #8] + b _081C3EEA + .align 2, 0 +_081C3E78: .4byte 0x03002360 +_081C3E7C: .4byte 0x00000439 +_081C3E80: .4byte 0x000040BE +_081C3E84: .4byte 0x082DDA1C +_081C3E88: .4byte 0x02024178 +_081C3E8C: + ldrh r2, [r5, #2] + lsls r0, r2, #3 + ldr r1, _081C3E9C + adds r0, r0, r1 + ldr r1, _081C3EA0 + ldr r1, [r1] + ldr r1, [r1, #8] + b _081C3EC8 + .align 2, 0 +_081C3E9C: .4byte 0x082DDA1C +_081C3EA0: .4byte 0x02024178 +_081C3EA4: + ldr r0, _081C3ED0 + ldr r3, [r0] + cmp r3, #0 + beq _081C3EF8 + ldr r1, [r2] + ldr r0, _081C3ED4 + cmp r1, r0 + beq _081C3EBE + ldr r1, _081C3ED8 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #2 + bne _081C3EE0 +_081C3EBE: + ldrh r2, [r5, #2] + lsls r0, r2, #3 + ldr r1, _081C3EDC + adds r0, r0, r1 + ldr r1, [r3, #8] +_081C3EC8: + ldr r3, [r5, #0xc] + bl HandleLoadSpecialPokePic_2 + b _081C3F70 + .align 2, 0 +_081C3ED0: .4byte 0x02024178 +_081C3ED4: .4byte 0x02024190 +_081C3ED8: .4byte 0x000040BC +_081C3EDC: .4byte 0x082DDA1C +_081C3EE0: + ldrh r2, [r5, #2] + lsls r0, r2, #3 + ldr r1, _081C3EF4 + adds r0, r0, r1 + ldr r1, [r3, #8] +_081C3EEA: + ldr r3, [r5, #0xc] + bl HandleLoadSpecialPokePic_DontHandleDeoxys + b _081C3F70 + .align 2, 0 +_081C3EF4: .4byte 0x082DDA1C +_081C3EF8: + ldr r1, [r2] + ldr r0, _081C3F28 + cmp r1, r0 + beq _081C3F0A + ldr r1, _081C3F2C + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #2 + bne _081C3F34 +_081C3F0A: + ldrh r4, [r5, #2] + lsls r4, r4, #3 + ldr r0, _081C3F30 + adds r4, r4, r0 + movs r0, #0 + movs r1, #1 + bl EvolutionRenameMon + adds r1, r0, #0 + ldrh r2, [r5, #2] + ldr r3, [r5, #0xc] + adds r0, r4, #0 + bl HandleLoadSpecialPokePic_2 + b _081C3F70 + .align 2, 0 +_081C3F28: .4byte 0x02024190 +_081C3F2C: .4byte 0x000040BC +_081C3F30: .4byte 0x082DDA1C +_081C3F34: + ldrh r4, [r5, #2] + lsls r4, r4, #3 + ldr r0, _081C3F54 + adds r4, r4, r0 + movs r0, #0 + movs r1, #1 + bl EvolutionRenameMon + adds r1, r0, #0 + ldrh r2, [r5, #2] + ldr r3, [r5, #0xc] + adds r0, r4, #0 + bl HandleLoadSpecialPokePic_DontHandleDeoxys + b _081C3F70 + .align 2, 0 +_081C3F54: .4byte 0x082DDA1C +_081C3F58: + ldrh r0, [r5, #2] + ldr r1, [r5, #0x48] + ldr r2, [r5, #0xc] + bl GetMonSpritePalStructFromOtIdPersonality + adds r4, r0, #0 + bl LoadCompressedSpritePalette + ldrh r0, [r4, #4] + movs r1, #1 + bl SetMultiuseSpriteTemplateToPokemon +_081C3F70: + ldrh r0, [r6] + adds r0, #1 + strh r0, [r6] + movs r0, #0xff +_081C3F78: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CreatePokemonSprite + + thumb_func_start PlayMonCry +PlayMonCry: @ 0x081C3F80 + push {r4, lr} + ldr r0, _081C3FA8 + ldr r1, [r0] + adds r4, r1, #0 + adds r4, #0x70 + ldrb r0, [r4, #4] + cmp r0, #0 + bne _081C3FB6 + adds r0, r1, #0 + adds r0, #0xc + bl ShouldPlayNormalMonCry + cmp r0, #1 + bne _081C3FAC + ldrh r0, [r4, #2] + movs r1, #0 + movs r2, #0 + bl PlayCry3 + b _081C3FB6 + .align 2, 0 +_081C3FA8: .4byte 0x0203CBE8 +_081C3FAC: + ldrh r0, [r4, #2] + movs r1, #0 + movs r2, #0xb + bl PlayCry3 +_081C3FB6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end PlayMonCry + + thumb_func_start sub_081C3FBC +sub_081C3FBC: @ 0x081C3FBC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _081C4020 + ldr r6, [r0] + adds r6, #0x70 + ldr r0, _081C4024 + movs r1, #0x28 + movs r2, #0x40 + movs r3, #5 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r4, r0, #4 + add r4, r8 + lsls r4, r4, #2 + ldr r5, _081C4028 + adds r7, r4, r5 + adds r0, r7, #0 + bl FreeSpriteOamMatrix + ldrh r0, [r6, #2] + movs r1, #0 + strh r0, [r7, #0x2e] + strh r1, [r7, #0x32] + adds r5, #0x1c + adds r4, r4, r5 + ldr r0, _081C402C + str r0, [r4] + ldrb r1, [r7, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r7, #5] + ldrh r0, [r6, #2] + bl IsMonSpriteNotFlipped + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081C4030 + adds r0, r7, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r2, #1 + orrs r1, r2 + strb r1, [r0] + b _081C403E + .align 2, 0 +_081C4020: .4byte 0x0203CBE8 +_081C4024: .4byte 0x02024640 +_081C4028: .4byte 0x020205AC +_081C402C: .4byte 0x081C404D +_081C4030: + adds r2, r7, #0 + adds r2, #0x3f + ldrb r1, [r2] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_081C403E: + mov r0, r8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081C3FBC + + thumb_func_start SpriteCB_Pokemon +SpriteCB_Pokemon: @ 0x081C404C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _081C408C + ldr r0, [r0] + adds r5, r0, #0 + adds r5, #0x70 + ldr r0, _081C4090 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081C4086 + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _081C4086 + ldrh r0, [r4, #0x2e] + bl IsMonSpriteNotFlipped + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x30] + bl PlayMonCry + ldrh r1, [r4, #0x2e] + ldrb r2, [r5, #4] + adds r0, r4, #0 + bl PokemonSummaryDoMonAnimation +_081C4086: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C408C: .4byte 0x0203CBE8 +_081C4090: .4byte 0x02037C74 + thumb_func_end SpriteCB_Pokemon + + thumb_func_start SummaryScreen_SetUnknownTaskId +SummaryScreen_SetUnknownTaskId: @ 0x081C4094 + ldr r1, _081C409C + strb r0, [r1] + bx lr + .align 2, 0 +_081C409C: .4byte 0x0203CBF0 + thumb_func_end SummaryScreen_SetUnknownTaskId + + thumb_func_start SummaryScreen_DestroyUnknownTask +SummaryScreen_DestroyUnknownTask: @ 0x081C40A0 + push {r4, lr} + ldr r4, _081C40B8 + ldrb r0, [r4] + cmp r0, #0xff + beq _081C40B2 + bl DestroyTask + movs r0, #0xff + strb r0, [r4] +_081C40B2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C40B8: .4byte 0x0203CBF0 + thumb_func_end SummaryScreen_DestroyUnknownTask + + thumb_func_start SummaryScreen_DoesSpriteHaveCallback +SummaryScreen_DoesSpriteHaveCallback: @ 0x081C40BC + push {lr} + ldr r2, _081C40E0 + ldr r0, _081C40E4 + ldr r0, [r0] + ldr r1, _081C40E8 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _081C40EC + cmp r1, r0 + beq _081C40F0 + movs r0, #1 + b _081C40F2 + .align 2, 0 +_081C40E0: .4byte 0x020205AC +_081C40E4: .4byte 0x0203CBE8 +_081C40E8: .4byte 0x000040D3 +_081C40EC: .4byte 0x08007141 +_081C40F0: + movs r0, #0 +_081C40F2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SummaryScreen_DoesSpriteHaveCallback + + thumb_func_start StopPokemonAnimations +StopPokemonAnimations: @ 0x081C40F8 + push {r4, r5, r6, lr} + ldr r6, _081C4174 + ldr r5, _081C4178 + ldr r0, [r5] + ldr r4, _081C417C + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x2c + ldrb r1, [r0] + movs r2, #0x40 + orrs r1, r2 + strb r1, [r0] + ldr r0, [r5] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r6, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _081C4180 + str r1, [r0] + bl StopPokemonAnimationDelayTask + ldr r0, [r5] + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r0, [r0, #5] + lsrs r0, r0, #4 + lsls r3, r0, #4 + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r1, #0 + orrs r3, r0 + movs r2, #0 + ldr r5, _081C4184 + ldr r4, _081C4188 +_081C4154: + adds r0, r2, r3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0xf + adds r1, r0, r5 + adds r0, r0, r4 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0xf + bls _081C4154 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081C4174: .4byte 0x020205AC +_081C4178: .4byte 0x0203CBE8 +_081C417C: .4byte 0x000040D3 +_081C4180: .4byte 0x08007141 +_081C4184: .4byte 0x020373B4 +_081C4188: .4byte 0x020377B4 + thumb_func_end StopPokemonAnimations + + thumb_func_start CreateMonMarkingsSprite +CreateMonMarkingsSprite: @ 0x081C418C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r1, _081C41DC + ldr r2, _081C41E0 + adds r0, r1, #0 + bl sub_081204B4 + adds r4, r0, #0 + ldr r6, _081C41E4 + ldr r0, [r6] + str r4, [r0, #8] + cmp r4, #0 + beq _081C41D6 + adds r0, r5, #0 + movs r1, #8 + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim + ldr r1, [r6] + ldr r2, [r1, #8] + movs r0, #0x3c + strh r0, [r2, #0x20] + ldr r2, [r1, #8] + movs r0, #0x1a + strh r0, [r2, #0x22] + ldr r2, [r1, #8] + ldrb r1, [r2, #5] + subs r0, #0x27 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #5] +_081C41D6: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081C41DC: .4byte 0x00007533 +_081C41E0: .4byte 0x085ED570 +_081C41E4: .4byte 0x0203CBE8 + thumb_func_end CreateMonMarkingsSprite + + thumb_func_start RemoveAndCreateMonMarkingsSprite +RemoveAndCreateMonMarkingsSprite: @ 0x081C41E8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _081C4208 + ldr r0, [r0] + ldr r0, [r0, #8] + bl DestroySprite + ldr r0, _081C420C + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl CreateMonMarkingsSprite + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C4208: .4byte 0x0203CBE8 +_081C420C: .4byte 0x00007533 + thumb_func_end RemoveAndCreateMonMarkingsSprite + + thumb_func_start CreateCaughtBallSprite +CreateCaughtBallSprite: @ 0x081C4210 + push {r4, lr} + movs r1, #0x26 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl ItemIdToBallId + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl LoadBallGfx + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _081C427C + adds r0, r0, r1 + movs r1, #0x10 + movs r2, #0x78 + movs r3, #0 + bl CreateSprite + ldr r2, _081C4280 + ldr r1, [r2] + ldr r3, _081C4284 + adds r1, r1, r3 + strb r0, [r1] + ldr r4, _081C4288 + ldr r2, [r2] + adds r2, r2, r3 + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _081C428C + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r1, [r0, #5] + movs r2, #0xc + orrs r1, r2 + strb r1, [r0, #5] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C427C: .4byte 0x082FCF94 +_081C4280: .4byte 0x0203CBE8 +_081C4284: .4byte 0x000040D4 +_081C4288: .4byte 0x020205AC +_081C428C: .4byte 0x08007141 + thumb_func_end CreateCaughtBallSprite + + thumb_func_start CreateSetStatusSprite +CreateSetStatusSprite: @ 0x081C4290 + push {r4, r5, lr} + ldr r5, _081C42E0 + ldr r0, [r5] + ldr r1, _081C42E4 + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, #0xff + bne _081C42AE + ldr r0, _081C42E8 + movs r1, #0x40 + movs r2, #0x90 + movs r3, #0 + bl CreateSprite + strb r0, [r4] +_081C42AE: + ldr r0, [r5] + adds r0, #0xc + bl GetMonAilment + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _081C42F0 + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _081C42EC + adds r0, r0, r1 + subs r1, r2, #1 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl StartSpriteAnim + movs r0, #2 + movs r1, #0 + bl SetSpriteInvisibility + b _081C42F8 + .align 2, 0 +_081C42E0: .4byte 0x0203CBE8 +_081C42E4: .4byte 0x000040D5 +_081C42E8: .4byte 0x085ED558 +_081C42EC: .4byte 0x020205AC +_081C42F0: + movs r0, #2 + movs r1, #1 + bl SetSpriteInvisibility +_081C42F8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CreateSetStatusSprite + + thumb_func_start sub_081C4300 +sub_081C4300: @ 0x081C4300 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r0, _081C4368 + ldr r1, _081C436C + add r1, r8 + ldr r0, [r0] + adds r7, r0, r1 + ldr r1, _081C4370 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + bls _081C43DA + movs r0, #0 + mov sb, r0 + mov r1, r8 + cmp r1, #8 + bne _081C4332 + movs r0, #1 + mov sb, r0 +_081C4332: + movs r5, #0 + ldr r6, _081C4374 + mov sl, r5 +_081C4338: + lsls r1, r5, #0x14 + movs r0, #0xb0 + lsls r0, r0, #0xf + adds r1, r1, r0 + asrs r1, r1, #0x10 + ldr r0, _081C4378 + movs r2, #0x28 + mov r3, sb + bl CreateSprite + adds r1, r7, r5 + strb r0, [r1] + adds r4, r1, #0 + cmp r5, #0 + bne _081C437C + ldrb r1, [r7] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #4 + bl StartSpriteAnim + b _081C43A2 + .align 2, 0 +_081C4368: .4byte 0x0203CBE8 +_081C436C: .4byte 0x000040D3 +_081C4370: .4byte 0x000040C0 +_081C4374: .4byte 0x020205AC +_081C4378: .4byte 0x085ED4D4 +_081C437C: + cmp r5, #9 + bne _081C4392 + ldrb r1, [r7, #9] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #5 + bl StartSpriteAnim + b _081C43A2 +_081C4392: + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #6 + bl StartSpriteAnim +_081C43A2: + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r6, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _081C43E8 + str r1, [r0] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + mov r1, r8 + strh r1, [r0, #0x2e] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + mov r1, sl + strh r1, [r0, #0x30] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #9 + bls _081C4338 +_081C43DA: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C43E8: .4byte 0x081C43ED + thumb_func_end sub_081C4300 + + thumb_func_start sub_081C43EC +sub_081C43EC: @ 0x081C43EC + push {lr} + adds r3, r0, #0 + adds r0, #0x2a + ldrb r0, [r0] + subs r0, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bhi _081C4424 + ldrh r0, [r3, #0x30] + adds r0, #1 + movs r1, #0x1f + ands r0, r1 + strh r0, [r3, #0x30] + cmp r0, #0x18 + ble _081C4418 + adds r2, r3, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + b _081C4432 +_081C4418: + adds r2, r3, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + b _081C4430 +_081C4424: + movs r0, #0 + strh r0, [r3, #0x30] + adds r2, r3, #0 + adds r2, #0x3e + ldrb r1, [r2] + subs r0, #5 +_081C4430: + ands r0, r1 +_081C4432: + strb r0, [r2] + movs r1, #0x2e + ldrsh r0, [r3, r1] + cmp r0, #8 + bne _081C444C + ldr r0, _081C4444 + ldr r0, [r0] + ldr r1, _081C4448 + b _081C4452 + .align 2, 0 +_081C4444: .4byte 0x0203CBE8 +_081C4448: .4byte 0x000040C6 +_081C444C: + ldr r0, _081C4460 + ldr r0, [r0] + ldr r1, _081C4464 +_081C4452: + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #4 + strh r0, [r3, #0x26] + pop {r0} + bx r0 + .align 2, 0 +_081C4460: .4byte 0x0203CBE8 +_081C4464: .4byte 0x000040C7 + thumb_func_end sub_081C43EC + + thumb_func_start sub_081C4468 +sub_081C4468: @ 0x081C4468 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r4, #0 +_081C4470: + adds r0, r5, r4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroySpriteInArray + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #9 + bls _081C4470 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081C4468 + + thumb_func_start sub_081C448C +sub_081C448C: @ 0x081C448C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _081C44D0 + ldr r0, [r0] + ldr r1, _081C44D4 + adds r5, r0, r1 + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r0, r0, #0x18 + movs r4, #0 + ldr r7, _081C44D8 + movs r2, #0x80 + lsls r2, r2, #0x13 + adds r2, r2, r0 + mov sb, r2 + lsrs r6, r0, #0x18 + movs r1, #0xa0 + lsls r1, r1, #0x13 + adds r1, r1, r0 + mov r8, r1 +_081C44BC: + cmp r4, #0 + bne _081C44DC + ldrb r1, [r5] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + mov r2, sb + b _081C44EC + .align 2, 0 +_081C44D0: .4byte 0x0203CBE8 +_081C44D4: .4byte 0x000040DB +_081C44D8: .4byte 0x020205AC +_081C44DC: + cmp r4, #9 + bne _081C44F4 + ldrb r1, [r5, #9] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + mov r2, r8 +_081C44EC: + lsrs r1, r2, #0x18 + bl StartSpriteAnim + b _081C450A +_081C44F4: + adds r0, r5, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + adds r1, r6, #6 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl StartSpriteAnim +_081C450A: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #9 + bls _081C44BC + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_081C448C + + thumb_func_start sub_081C4520 +sub_081C4520: @ 0x081C4520 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081C456C + ldr r2, _081C4570 + adds r0, r0, r2 + ldr r1, [r1] + adds r5, r1, r0 + movs r3, #0 + ldr r4, _081C4574 + movs r7, #5 + rsbs r7, r7, #0 + movs r6, #0 +_081C453A: + adds r2, r5, r3 + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + strh r6, [r0, #0x30] + ldrb r0, [r2] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + adds r1, #0x3e + ldrb r2, [r1] + adds r0, r7, #0 + ands r0, r2 + strb r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #9 + bls _081C453A + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C456C: .4byte 0x0203CBE8 +_081C4570: .4byte 0x000040D3 +_081C4574: .4byte 0x020205AC + thumb_func_end sub_081C4520 + diff --git a/asm/pokenav.s b/asm/pokenav.s new file mode 100644 index 0000000..224e9cc --- /dev/null +++ b/asm/pokenav.s @@ -0,0 +1,859 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start CreateLoopedTask +CreateLoopedTask: @ 0x081C6838 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl IsUpdateLinkStateCBActive + cmp r0, #0 + bne _081C6850 + ldr r0, _081C684C + b _081C6852 + .align 2, 0 +_081C684C: .4byte 0x081C6931 +_081C6850: + ldr r0, _081C688C +_081C6852: + lsls r1, r4, #0x18 + lsrs r1, r1, #0x18 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + movs r1, #1 + adds r2, r5, #0 + bl SetWordTaskArg + ldr r1, _081C6890 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r2, _081C6894 + ldrb r1, [r2] + strh r1, [r0, #0xe] + ldrb r0, [r2] + adds r1, r0, #1 + strb r1, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #8 + orrs r0, r4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081C688C: .4byte 0x081C69A5 +_081C6890: .4byte 0x03005B60 +_081C6894: .4byte 0x0203CC08 + thumb_func_end CreateLoopedTask + + thumb_func_start IsLoopedTaskActive +IsLoopedTaskActive: @ 0x081C6898 + push {lr} + ldr r1, _081C68CC + ands r1, r0 + lsrs r3, r0, #0x10 + ldr r2, _081C68D0 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r1, r0, r2 + ldrb r0, [r1, #4] + cmp r0, #0 + beq _081C68DC + ldr r2, [r1] + ldr r0, _081C68D4 + cmp r2, r0 + beq _081C68BE + ldr r0, _081C68D8 + cmp r2, r0 + bne _081C68DC +_081C68BE: + movs r2, #0xe + ldrsh r0, [r1, r2] + cmp r0, r3 + bne _081C68DC + movs r0, #1 + b _081C68DE + .align 2, 0 +_081C68CC: .4byte 0x0000FFFF +_081C68D0: .4byte 0x03005B60 +_081C68D4: .4byte 0x081C6931 +_081C68D8: .4byte 0x081C69A5 +_081C68DC: + movs r0, #0 +_081C68DE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsLoopedTaskActive + + thumb_func_start FuncIsActiveLoopedTask +FuncIsActiveLoopedTask: @ 0x081C68E4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r5, #0 + ldr r4, _081C6914 +_081C68EC: + ldrb r0, [r4, #4] + cmp r0, #0 + beq _081C6920 + ldr r1, [r4] + ldr r0, _081C6918 + cmp r1, r0 + beq _081C6900 + ldr r0, _081C691C + cmp r1, r0 + bne _081C6920 +_081C6900: + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + bl GetWordTaskArg + cmp r0, r6 + bne _081C6920 + movs r0, #1 + b _081C692A + .align 2, 0 +_081C6914: .4byte 0x03005B60 +_081C6918: .4byte 0x081C6931 +_081C691C: .4byte 0x081C69A5 +_081C6920: + adds r4, #0x28 + adds r5, #1 + cmp r5, #0xf + ble _081C68EC + movs r0, #0 +_081C692A: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end FuncIsActiveLoopedTask + + thumb_func_start Task_RunLoopedTask +Task_RunLoopedTask: @ 0x081C6930 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r5, #0 + movs r1, #1 + bl GetWordTaskArg + adds r6, r0, #0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _081C6964 + adds r4, r0, r1 + movs r7, #0 +_081C694C: + movs r1, #0 + ldrsh r0, [r4, r1] + bl _call_via_r6 + cmp r0, #4 + bhi _081C6996 + lsls r0, r0, #2 + ldr r1, _081C6968 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081C6964: .4byte 0x03005B68 +_081C6968: .4byte 0x081C696C +_081C696C: @ jump table + .4byte _081C6986 @ case 0 + .4byte _081C6980 @ case 1 + .4byte _081C699E @ case 2 + .4byte _081C699A @ case 3 + .4byte _081C698E @ case 4 +_081C6980: + ldrh r0, [r4] + adds r0, #1 + b _081C6998 +_081C6986: + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + b _081C699E +_081C698E: + adds r0, r5, #0 + bl DestroyTask + b _081C699E +_081C6996: + subs r0, #5 +_081C6998: + strh r0, [r4] +_081C699A: + cmp r7, #0 + beq _081C694C +_081C699E: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end Task_RunLoopedTask + + thumb_func_start Task_RunLoopedTask_LinkMode +Task_RunLoopedTask_LinkMode: @ 0x081C69A4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + bl sub_08086EFC + cmp r0, #0 + bne _081C6A0A + adds r0, r5, #0 + movs r1, #1 + bl GetWordTaskArg + adds r2, r0, #0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _081C69DC + adds r4, r0, r1 + movs r1, #0 + ldrsh r0, [r4, r1] + bl _call_via_r2 + cmp r0, #4 + bhi _081C6A06 + lsls r0, r0, #2 + ldr r1, _081C69E0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081C69DC: .4byte 0x03005B68 +_081C69E0: .4byte 0x081C69E4 +_081C69E4: @ jump table + .4byte _081C69F8 @ case 0 + .4byte _081C69F8 @ case 1 + .4byte _081C6A0A @ case 2 + .4byte _081C6A0A @ case 3 + .4byte _081C69FE @ case 4 +_081C69F8: + ldrh r0, [r4] + adds r0, #1 + b _081C6A08 +_081C69FE: + adds r0, r5, #0 + bl DestroyTask + b _081C6A0A +_081C6A06: + subs r0, #5 +_081C6A08: + strh r0, [r4] +_081C6A0A: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end Task_RunLoopedTask_LinkMode + + thumb_func_start CB2_InitPokeNav +CB2_InitPokeNav: @ 0x081C6A10 + push {r4, lr} + ldr r4, _081C6A28 + movs r0, #0x5c + bl Alloc + str r0, [r4] + cmp r0, #0 + bne _081C6A30 + ldr r0, _081C6A2C + bl SetMainCallback2 + b _081C6A52 + .align 2, 0 +_081C6A28: .4byte 0x0203CC0C +_081C6A2C: .4byte 0x08085AFD +_081C6A30: + bl InitPokenavResources + bl ResetTasks + movs r0, #0 + bl SetVBlankCallback + ldr r0, _081C6A58 + movs r1, #0 + bl CreateTask + ldr r0, _081C6A5C + bl SetMainCallback2 + ldr r0, _081C6A60 + bl SetVBlankCallback +_081C6A52: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C6A58: .4byte 0x081C6BED +_081C6A5C: .4byte 0x081C6BC1 +_081C6A60: .4byte 0x081C6BD9 + thumb_func_end CB2_InitPokeNav + + thumb_func_start sub_081C6A64 +sub_081C6A64: @ 0x081C6A64 + push {lr} + ldr r0, _081C6A78 + bl SetMainCallback2 + movs r0, #1 + movs r1, #0 + bl FadeScreen + pop {r0} + bx r0 + .align 2, 0 +_081C6A78: .4byte 0x081C6A7D + thumb_func_end sub_081C6A64 + + thumb_func_start sub_081C6A7C +sub_081C6A7C: @ 0x081C6A7C + push {r4, lr} + bl UpdatePaletteFade + ldr r0, _081C6AA4 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081C6AE0 + ldr r4, _081C6AA8 + movs r0, #0x5c + bl Alloc + str r0, [r4] + cmp r0, #0 + bne _081C6AB0 + ldr r0, _081C6AAC + bl SetMainCallback2 + b _081C6AE0 + .align 2, 0 +_081C6AA4: .4byte 0x02037C74 +_081C6AA8: .4byte 0x0203CC0C +_081C6AAC: .4byte 0x08085B35 +_081C6AB0: + bl InitPokenavResources + ldr r1, [r4] + movs r0, #1 + strh r0, [r1, #8] + bl ResetTasks + bl ResetSpriteData + bl FreeAllSpritePalettes + movs r0, #0 + bl SetVBlankCallback + ldr r0, _081C6AE8 + movs r1, #0 + bl CreateTask + ldr r0, _081C6AEC + bl SetMainCallback2 + ldr r0, _081C6AF0 + bl SetVBlankCallback +_081C6AE0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C6AE8: .4byte 0x081C6BED +_081C6AEC: .4byte 0x081C6BC1 +_081C6AF0: .4byte 0x081C6BD9 + thumb_func_end sub_081C6A7C + + thumb_func_start FreePokenavResources +FreePokenavResources: @ 0x081C6AF4 + push {r4, lr} + movs r4, #0 +_081C6AF8: + adds r0, r4, #0 + bl FreePokenavSubstruct + adds r4, #1 + cmp r4, #0x12 + ble _081C6AF8 + ldr r4, _081C6B1C + ldr r0, [r4] + bl Free + movs r0, #0 + str r0, [r4] + bl InitKeys + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C6B1C: .4byte 0x0203CC0C + thumb_func_end FreePokenavResources + + thumb_func_start InitPokenavResources +InitPokenavResources: @ 0x081C6B20 + push {r4, r5, lr} + adds r5, r0, #0 + movs r2, #0 + movs r1, #0x12 + adds r0, #0x58 +_081C6B2A: + str r2, [r0] + subs r0, #4 + subs r1, #1 + cmp r1, #0 + bge _081C6B2A + movs r4, #0 + strh r4, [r5, #8] + str r4, [r5, #4] + bl AnyMonHasRibbon + str r0, [r5, #0xc] + str r4, [r5] + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end InitPokenavResources + + thumb_func_start AnyMonHasRibbon +AnyMonHasRibbon: @ 0x081C6B48 + push {r4, r5, r6, lr} + movs r5, #0 +_081C6B4C: + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _081C6BA8 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #5 + bl GetMonData + cmp r0, #0 + beq _081C6B7A + adds r0, r4, #0 + movs r1, #6 + bl GetMonData + cmp r0, #0 + bne _081C6B7A + adds r0, r4, #0 + movs r1, #0x52 + bl GetMonData + cmp r0, #0 + bne _081C6BA2 +_081C6B7A: + adds r5, #1 + cmp r5, #5 + ble _081C6B4C + movs r4, #0 +_081C6B82: + movs r5, #0 + lsls r6, r4, #0x18 +_081C6B86: + adds r0, r4, #0 + adds r1, r5, #0 + bl CheckBoxMonSanityAt + cmp r0, #0 + beq _081C6BAC + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + lsrs r0, r6, #0x18 + movs r2, #0x52 + bl GetBoxMonDataAt + cmp r0, #0 + beq _081C6BAC +_081C6BA2: + movs r0, #1 + b _081C6BBA + .align 2, 0 +_081C6BA8: .4byte 0x02024190 +_081C6BAC: + adds r5, #1 + cmp r5, #0x1d + ble _081C6B86 + adds r4, #1 + cmp r4, #0xd + ble _081C6B82 + movs r0, #0 +_081C6BBA: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end AnyMonHasRibbon + + thumb_func_start CB2_Pokenav +CB2_Pokenav: @ 0x081C6BC0 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CB2_Pokenav + + thumb_func_start VBlankCB_Pokenav +VBlankCB_Pokenav: @ 0x081C6BD8 + push {lr} + bl TransferPlttBuffer + bl LoadOam + bl ProcessSpriteCopyRequests + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end VBlankCB_Pokenav + + thumb_func_start sub_081C6BEC +sub_081C6BEC: @ 0x081C6BEC + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _081C6C10 + adds r7, r1, r0 + movs r1, #0 + ldrsh r0, [r7, r1] + cmp r0, #5 + bls _081C6C06 + b _081C6D22 +_081C6C06: + lsls r0, r0, #2 + ldr r1, _081C6C14 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081C6C10: .4byte 0x03005B68 +_081C6C14: .4byte 0x081C6C18 +_081C6C18: @ jump table + .4byte _081C6C30 @ case 0 + .4byte _081C6C3A @ case 1 + .4byte _081C6C50 @ case 2 + .4byte _081C6C5C @ case 3 + .4byte _081C6CDE @ case 4 + .4byte _081C6CEC @ case 5 +_081C6C30: + bl InitPokenavMainMenu + movs r0, #1 + strh r0, [r7] + b _081C6D22 +_081C6C3A: + bl PokenavMainMenuLoopedTaskIsActive + cmp r0, #0 + bne _081C6D22 + ldr r0, _081C6C4C + bl CanViewRibbonsMenu + b _081C6CA8 + .align 2, 0 +_081C6C4C: .4byte 0x000186A0 +_081C6C50: + bl sub_081C702C + cmp r0, #0 + bne _081C6D22 + movs r0, #3 + strh r0, [r7] +_081C6C5C: + bl sub_081C6DA0 + adds r6, r0, #0 + movs r0, #1 + rsbs r0, r0, #0 + cmp r6, r0 + beq _081C6CBC + ldr r0, _081C6CB0 + cmp r6, r0 + bls _081C6CC6 + ldr r4, _081C6CB4 + ldr r5, _081C6CB8 + ldr r0, [r5] + ldr r1, [r0, #4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x18 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + ldr r0, [r5] + ldr r1, [r0, #4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r4, #0x14 + adds r0, r0, r4 + ldr r0, [r0] + bl _call_via_r0 + adds r0, r6, #0 + bl CanViewRibbonsMenu + cmp r0, #0 + beq _081C6CBC +_081C6CA8: + movs r0, #4 + strh r0, [r7] + b _081C6D22 + .align 2, 0 +_081C6CB0: .4byte 0x0001869F +_081C6CB4: .4byte 0x085EF83C +_081C6CB8: .4byte 0x0203CC0C +_081C6CBC: + bl ShutdownPokenav + movs r0, #5 + strh r0, [r7] + b _081C6D22 +_081C6CC6: + cmp r6, #0 + beq _081C6D22 + adds r0, r6, #0 + bl sub_081C7010 + bl sub_081C702C + cmp r0, #0 + beq _081C6D22 + movs r0, #2 + strh r0, [r7] + b _081C6D22 +_081C6CDE: + bl sub_081C6D94 + cmp r0, #0 + bne _081C6D22 + movs r0, #3 + strh r0, [r7] + b _081C6D22 +_081C6CEC: + bl WaitForPokenavShutdownFade + cmp r0, #0 + bne _081C6D22 + ldr r0, _081C6D14 + ldr r0, [r0] + ldrh r0, [r0, #8] + rsbs r4, r0, #0 + orrs r4, r0 + lsrs r4, r4, #0x1f + bl sub_081C8BDC + bl FreePokenavResources + cmp r4, #0 + beq _081C6D1C + ldr r0, _081C6D18 + bl SetMainCallback2 + b _081C6D22 + .align 2, 0 +_081C6D14: .4byte 0x0203CC0C +_081C6D18: .4byte 0x08085B35 +_081C6D1C: + ldr r0, _081C6D28 + bl SetMainCallback2 +_081C6D22: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C6D28: .4byte 0x08085AFD + thumb_func_end sub_081C6BEC + + thumb_func_start CanViewRibbonsMenu +CanViewRibbonsMenu: @ 0x081C6D2C + push {r4, r5, r6, lr} + ldr r1, _081C6D80 + adds r6, r0, r1 + bl SetVBlankCallback_ + ldr r5, _081C6D84 + lsls r0, r6, #3 + subs r0, r0, r6 + lsls r4, r0, #2 + adds r0, r4, r5 + ldr r0, [r0] + bl _call_via_r0 + cmp r0, #0 + thumb_func_end CanViewRibbonsMenu + + thumb_func_start SetActivePokenavMenu +SetActivePokenavMenu: @ 0x081C6D48 + beq _081C6D8C + adds r0, r5, #0 + adds r0, #8 + adds r0, r4, r0 + ldr r0, [r0] + bl _call_via_r0 + cmp r0, #0 + beq _081C6D8C + adds r0, r5, #0 + adds r0, #0xc + adds r0, r4, r0 + ldr r0, [r0] + adds r1, r5, #0 + adds r1, #0x10 + adds r1, r4, r1 + ldr r1, [r1] + bl sub_081C6FF4 + ldr r0, _081C6D88 + ldr r1, [r0] + adds r0, r5, #4 + adds r0, r4, r0 + ldr r0, [r0] + str r0, [r1] + str r6, [r1, #4] + movs r0, #1 + b _081C6D8E + .align 2, 0 +_081C6D80: .4byte 0xFFFE7960 +_081C6D84: .4byte 0x085EF83C +_081C6D88: .4byte 0x0203CC0C +_081C6D8C: + movs r0, #0 +_081C6D8E: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end SetActivePokenavMenu + + thumb_func_start sub_081C6D94 +sub_081C6D94: @ 0x081C6D94 + push {lr} + bl sub_081C702C + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081C6D94 + + thumb_func_start sub_081C6DA0 +sub_081C6DA0: @ 0x081C6DA0 + push {lr} + ldr r0, _081C6DB0 + ldr r0, [r0] + ldr r0, [r0] + bl _call_via_r0 + thumb_func_end sub_081C6DA0 + + thumb_func_start sub_081C6DAC +sub_081C6DAC: @ 0x081C6DAC + pop {r1} + bx r1 + .align 2, 0 +_081C6DB0: .4byte 0x0203CC0C + thumb_func_end sub_081C6DAC + + thumb_func_start SetVBlankCallback_ +SetVBlankCallback_: @ 0x081C6DB4 + push {lr} + bl InitKeys + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetVBlankCallback_ + + thumb_func_start InitKeys_ +InitKeys_: @ 0x081C6DC0 + push {lr} + bl SetVBlankCallback + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end InitKeys_ + + thumb_func_start SetPokenavVBlankCallback +SetPokenavVBlankCallback: @ 0x081C6DCC + push {lr} + ldr r0, _081C6DD8 + bl SetVBlankCallback + pop {r0} + bx r0 + .align 2, 0 +_081C6DD8: .4byte 0x081C6BD9 + thumb_func_end SetPokenavVBlankCallback + + thumb_func_start AllocSubstruct +AllocSubstruct: @ 0x081C6DDC + push {r4, lr} + adds r4, r0, #0 + adds r0, r1, #0 + bl Alloc + ldr r1, _081C6DF8 + ldr r1, [r1] + lsls r4, r4, #2 + adds r1, #0x10 + adds r1, r1, r4 + str r0, [r1] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081C6DF8: .4byte 0x0203CC0C + thumb_func_end AllocSubstruct + + thumb_func_start GetSubstructPtr +GetSubstructPtr: @ 0x081C6DFC + ldr r1, _081C6E0C + ldr r1, [r1] + lsls r0, r0, #2 + adds r1, #0x10 + adds r1, r1, r0 + ldr r0, [r1] + bx lr + .align 2, 0 +_081C6E0C: .4byte 0x0203CC0C + thumb_func_end GetSubstructPtr + + thumb_func_start FreePokenavSubstruct +FreePokenavSubstruct: @ 0x081C6E10 + push {r4, r5, lr} + ldr r5, _081C6E38 + ldr r1, [r5] + lsls r4, r0, #2 + adds r1, #0x10 + adds r1, r1, r4 + ldr r0, [r1] + cmp r0, #0 + beq _081C6E30 + bl Free + ldr r0, [r5] + adds r0, #0x10 + adds r0, r0, r4 + movs r1, #0 + str r1, [r0] +_081C6E30: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C6E38: .4byte 0x0203CC0C + thumb_func_end FreePokenavSubstruct + + thumb_func_start GetPokenavMode +GetPokenavMode: @ 0x081C6E3C + ldr r0, _081C6E44 + ldr r0, [r0] + ldrh r0, [r0, #8] + bx lr + .align 2, 0 +_081C6E44: .4byte 0x0203CC0C + thumb_func_end GetPokenavMode + + thumb_func_start SetPokenavMode +SetPokenavMode: @ 0x081C6E48 + ldr r1, _081C6E50 + ldr r1, [r1] + strh r0, [r1, #8] + bx lr + .align 2, 0 +_081C6E50: .4byte 0x0203CC0C + thumb_func_end SetPokenavMode + + thumb_func_start sub_081C6E54 +sub_081C6E54: @ 0x081C6E54 + push {lr} + adds r1, r0, #0 + cmp r1, #4 + bls _081C6E5E + movs r1, #0 +_081C6E5E: + ldr r0, _081C6E68 + ldr r0, [r0] + strh r1, [r0, #0xa] + pop {r0} + bx r0 + .align 2, 0 +_081C6E68: .4byte 0x0203CC0C + thumb_func_end sub_081C6E54 + + thumb_func_start sub_081C6E6C +sub_081C6E6C: @ 0x081C6E6C + ldr r0, _081C6E74 + ldr r0, [r0] + ldrh r0, [r0, #0xa] + bx lr + .align 2, 0 +_081C6E74: .4byte 0x0203CC0C + thumb_func_end sub_081C6E6C + + thumb_func_start sub_081C6E78 +sub_081C6E78: @ 0x081C6E78 + ldr r0, _081C6E80 + ldr r0, [r0] + ldr r0, [r0, #0xc] + bx lr + .align 2, 0 +_081C6E80: .4byte 0x0203CC0C + thumb_func_end sub_081C6E78 + diff --git a/asm/pokenav_main_menu.s b/asm/pokenav_main_menu.s new file mode 100644 index 0000000..75e0c2a --- /dev/null +++ b/asm/pokenav_main_menu.s @@ -0,0 +1,1510 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start InitPokenavMainMenu +InitPokenavMainMenu: @ 0x081C6E84 + push {r4, lr} + ldr r1, _081C6EAC + movs r0, #0 + bl AllocSubstruct + adds r4, r0, #0 + cmp r4, #0 + beq _081C6EB4 + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r0, _081C6EB0 + movs r1, #1 + bl CreateLoopedTask + str r0, [r4, #0xc] + movs r0, #1 + b _081C6EB6 + .align 2, 0 +_081C6EAC: .4byte 0x0000082C +_081C6EB0: .4byte 0x081C6F25 +_081C6EB4: + movs r0, #0 +_081C6EB6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end InitPokenavMainMenu + + thumb_func_start PokenavMainMenuLoopedTaskIsActive +PokenavMainMenuLoopedTaskIsActive: @ 0x081C6EBC + push {lr} + movs r0, #0 + bl GetSubstructPtr + ldr r0, [r0, #0xc] + bl IsLoopedTaskActive + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end PokenavMainMenuLoopedTaskIsActive + + thumb_func_start ShutdownPokenav +ShutdownPokenav: @ 0x081C6ED0 + push {lr} + sub sp, #4 + movs r0, #0x6f + bl PlaySE + bl sub_081CA288 + movs r1, #1 + rsbs r1, r1, #0 + movs r0, #0 + str r0, [sp] + adds r0, r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ShutdownPokenav + + thumb_func_start WaitForPokenavShutdownFade +WaitForPokenavShutdownFade: @ 0x081C6EF8 + push {lr} + ldr r0, _081C6F0C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _081C6F10 + movs r0, #1 + b _081C6F1E + .align 2, 0 +_081C6F0C: .4byte 0x02037C74 +_081C6F10: + bl sub_081C9180 + bl CleanupPokenavMainMenuResources + bl FreeAllWindowBuffers + movs r0, #0 +_081C6F1E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end WaitForPokenavShutdownFade + + thumb_func_start LoopedTask_InitPokenavMenu +LoopedTask_InitPokenavMenu: @ 0x081C6F24 + push {r4, lr} + sub sp, #4 + cmp r0, #1 + beq _081C6F70 + cmp r0, #1 + bgt _081C6F36 + cmp r0, #0 + beq _081C6F40 + b _081C6FEA +_081C6F36: + cmp r0, #2 + beq _081C6FBC + cmp r0, #3 + beq _081C6FCE + b _081C6FEA +_081C6F40: + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + bl FreeAllWindowBuffers + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _081C6F6C + movs r0, #0 + movs r2, #1 + bl InitBgsFromTemplates + bl ResetBgPositions + bl reset_temp_tile_data_buffers + movs r0, #1 + b _081C6FEC + .align 2, 0 +_081C6F6C: .4byte 0x085F13C8 +_081C6F70: + movs r0, #0 + bl GetSubstructPtr + adds r4, r0, #0 + ldr r1, _081C6FB0 + movs r0, #0 + str r0, [sp] + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + adds r4, #0x2c + movs r0, #0 + adds r1, r4, #0 + bl SetBgTilemapBuffer + ldr r1, _081C6FB4 + movs r0, #0 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + ldr r0, _081C6FB8 + movs r1, #0 + movs r2, #0x20 + bl CopyPaletteIntoBufferUnfaded + movs r0, #0 + bl CopyBgTilemapBufferToVram + movs r0, #0 + b _081C6FEC + .align 2, 0 +_081C6FB0: .4byte 0x085EFA00 +_081C6FB4: .4byte 0x085EFC2C +_081C6FB8: .4byte 0x085EF9E0 +_081C6FBC: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081C6FD8 + bl sub_081C7334 + movs r0, #0 + b _081C6FEC +_081C6FCE: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081C6FDC +_081C6FD8: + movs r0, #2 + b _081C6FEC +_081C6FDC: + bl InitPokenavMainMenuResources + bl InitHoennMapHeaderSprites + movs r0, #0 + bl ShowBg +_081C6FEA: + movs r0, #4 +_081C6FEC: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end LoopedTask_InitPokenavMenu + + thumb_func_start sub_081C6FF4 +sub_081C6FF4: @ 0x081C6FF4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #0 + bl GetSubstructPtr + str r4, [r0] + str r5, [r0, #4] + movs r1, #0 + str r1, [r0, #8] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081C6FF4 + + thumb_func_start sub_081C7010 +sub_081C7010: @ 0x081C7010 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + bl GetSubstructPtr + movs r1, #0 + str r1, [r0, #8] + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_081C7010 + + thumb_func_start sub_081C702C +sub_081C702C: @ 0x081C702C + push {lr} + movs r0, #0 + bl GetSubstructPtr + ldr r0, [r0, #4] + bl _call_via_r0 + pop {r1} + thumb_func_end sub_081C702C + + thumb_func_start IsPaletteFadeActive +IsPaletteFadeActive: @ 0x081C703C + bx r1 + .align 2, 0 + thumb_func_end IsPaletteFadeActive + + thumb_func_start sub_081C7040 +sub_081C7040: @ 0x081C7040 + push {r4, lr} + movs r0, #0 + bl GetSubstructPtr + adds r4, r0, #0 + ldr r0, _081C705C + movs r1, #4 + bl CreateLoopedTask + str r0, [r4, #0xc] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C705C: .4byte 0x081C7095 + thumb_func_end sub_081C7040 + + thumb_func_start sub_081C7060 +sub_081C7060: @ 0x081C7060 + push {r4, lr} + movs r0, #0 + bl GetSubstructPtr + adds r4, r0, #0 + ldr r0, _081C707C + movs r1, #4 + bl CreateLoopedTask + str r0, [r4, #0xc] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C707C: .4byte 0x081C70DD + thumb_func_end sub_081C7060 + + thumb_func_start MainMenuLoopedTaskIsBusy +MainMenuLoopedTaskIsBusy: @ 0x081C7080 + push {lr} + movs r0, #0 + bl GetSubstructPtr + ldr r0, [r0, #0xc] + bl IsLoopedTaskActive + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MainMenuLoopedTaskIsBusy + + thumb_func_start LoopedTask_ScrollMenuHeaderDown +LoopedTask_ScrollMenuHeaderDown: @ 0x081C7094 + push {lr} + cmp r0, #1 + beq _081C70AA + cmp r0, #1 + bgt _081C70A4 + cmp r0, #0 + beq _081C70AA + b _081C70D4 +_081C70A4: + cmp r0, #2 + beq _081C70AE + b _081C70D4 +_081C70AA: + movs r0, #0 + b _081C70D6 +_081C70AE: + movs r1, #0xc0 + lsls r1, r1, #1 + movs r0, #0 + movs r2, #1 + bl ChangeBgY + ldr r1, _081C70C4 + cmp r0, r1 + bhi _081C70C8 + movs r0, #2 + b _081C70D6 + .align 2, 0 +_081C70C4: .4byte 0x00001FFF +_081C70C8: + movs r1, #0x80 + lsls r1, r1, #6 + movs r0, #0 + movs r2, #0 + bl ChangeBgY +_081C70D4: + movs r0, #4 +_081C70D6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end LoopedTask_ScrollMenuHeaderDown + + thumb_func_start LoopedTask_ScrollMenuHeaderUp +LoopedTask_ScrollMenuHeaderUp: @ 0x081C70DC + push {lr} + movs r1, #0xc0 + lsls r1, r1, #1 + movs r0, #0 + movs r2, #2 + bl ChangeBgY + cmp r0, #0 + ble _081C70F2 + movs r0, #2 + b _081C70FE +_081C70F2: + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #4 +_081C70FE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end LoopedTask_ScrollMenuHeaderUp + + thumb_func_start CopyPaletteIntoBufferUnfaded +CopyPaletteIntoBufferUnfaded: @ 0x081C7104 + push {lr} + lsls r1, r1, #1 + ldr r3, _081C7118 + adds r1, r1, r3 + lsls r2, r2, #0xa + lsrs r2, r2, #0xb + bl CpuSet + pop {r0} + bx r0 + .align 2, 0 +_081C7118: .4byte 0x020373B4 + thumb_func_end CopyPaletteIntoBufferUnfaded + + thumb_func_start Pokenav_AllocAndLoadPalettes +Pokenav_AllocAndLoadPalettes: @ 0x081C711C + push {r4, lr} + adds r4, r0, #0 + b _081C7134 +_081C7122: + lsls r0, r1, #4 + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r0, r2 + ldr r0, [r4] + movs r2, #0x20 + bl CopyPaletteIntoBufferUnfaded + adds r4, #8 +_081C7134: + ldr r0, [r4] + cmp r0, #0 + beq _081C7148 + ldrh r0, [r4, #4] + bl AllocSpritePalette + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xff + bne _081C7122 +_081C7148: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Pokenav_AllocAndLoadPalettes + + thumb_func_start sub_081C7150 +sub_081C7150: @ 0x081C7150 + push {lr} + sub sp, #4 + adds r3, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r0, sp + strh r1, [r0] + lsls r3, r3, #5 + ldr r0, _081C7174 + adds r3, r3, r0 + ldr r2, _081C7178 + mov r0, sp + adds r1, r3, #0 + bl CpuSet + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_081C7174: .4byte 0x020379B4 +_081C7178: .4byte 0x01000010 + thumb_func_end sub_081C7150 + + thumb_func_start sub_081C717C +sub_081C717C: @ 0x081C717C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + str r0, [sp] + str r1, [sp, #4] + mov sl, r2 + str r3, [sp, #8] + ldr r0, [sp, #0x2c] + cmp r0, #0 + bne _081C71A4 + ldr r2, _081C71A0 + mov r1, sl + ands r2, r1 + ldr r0, [sp] + b _081C71B4 + .align 2, 0 +_081C71A0: .4byte 0x001FFFFF +_081C71A4: + ldr r2, [sp, #0x2c] + ldr r0, [sp, #8] + cmp r2, r0 + blt _081C71C0 + ldr r2, _081C71BC + mov r1, sl + ands r2, r1 + ldr r0, [sp, #4] +_081C71B4: + ldr r1, [sp, #0x30] + bl CpuSet + b _081C726E + .align 2, 0 +_081C71BC: .4byte 0x001FFFFF +_081C71C0: + movs r2, #1 + rsbs r2, r2, #0 + add sl, r2 + b _081C7266 +_081C71C8: + ldr r1, [sp] + ldrh r0, [r1] + movs r2, #0x1f + mov sb, r2 + mov r1, sb + ands r1, r0 + mov sb, r1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x15 + movs r1, #0x1f + ands r1, r2 + mov r8, r1 + lsrs r7, r0, #0x1a + movs r2, #0x1f + ands r7, r2 + ldr r0, [sp, #4] + ldrh r4, [r0] + movs r0, #0x1f + ands r0, r4 + mov r1, sb + subs r0, r0, r1 + lsls r0, r0, #8 + ldr r1, [sp, #8] + bl __divsi3 + ldr r2, [sp, #0x2c] + adds r6, r0, #0 + muls r6, r2, r6 + asrs r6, r6, #8 + lsls r4, r4, #0x10 + lsrs r0, r4, #0x15 + movs r1, #0x1f + ands r0, r1 + mov r2, r8 + subs r0, r0, r2 + lsls r0, r0, #8 + ldr r1, [sp, #8] + bl __divsi3 + ldr r1, [sp, #0x2c] + adds r5, r0, #0 + muls r5, r1, r5 + asrs r5, r5, #8 + lsrs r4, r4, #0x1a + movs r2, #0x1f + ands r4, r2 + subs r4, r4, r7 + lsls r4, r4, #8 + adds r0, r4, #0 + ldr r1, [sp, #8] + bl __divsi3 + ldr r1, [sp, #0x2c] + muls r0, r1, r0 + asrs r0, r0, #8 + add r6, sb + movs r2, #0x1f + ands r6, r2 + add r5, r8 + ands r5, r2 + adds r0, r7, r0 + ands r0, r2 + lsls r0, r0, #0xa + lsls r5, r5, #5 + orrs r0, r5 + orrs r0, r6 + ldr r1, [sp, #0x30] + strh r0, [r1] + ldr r2, [sp] + adds r2, #2 + str r2, [sp] + ldr r0, [sp, #4] + adds r0, #2 + str r0, [sp, #4] + adds r1, #2 + str r1, [sp, #0x30] + movs r1, #1 + rsbs r1, r1, #0 + add sl, r1 +_081C7266: + movs r0, #1 + rsbs r0, r0, #0 + cmp sl, r0 + bne _081C71C8 +_081C726E: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081C717C + + thumb_func_start sub_081C7280 +sub_081C7280: @ 0x081C7280 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + movs r0, #0 + bl GetSubstructPtr + cmp r4, #1 + beq _081C72B0 + cmp r4, #1 + bgt _081C729A + cmp r4, #0 + beq _081C72A4 + b _081C72EC +_081C729A: + cmp r4, #2 + beq _081C72C4 + cmp r4, #3 + beq _081C72D8 + b _081C72EC +_081C72A4: + ldr r0, [r0, #0x14] + movs r1, #2 + rsbs r1, r1, #0 + str r4, [sp] + movs r2, #0 + b _081C72D0 +_081C72B0: + ldr r0, [r0, #0x14] + movs r1, #2 + rsbs r1, r1, #0 + movs r2, #0 + str r2, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + b _081C72EC +_081C72C4: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #2 + rsbs r1, r1, #0 + movs r2, #0 + str r2, [sp] +_081C72D0: + movs r3, #0x10 + bl BeginNormalPaletteFade + b _081C72EC +_081C72D8: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #2 + rsbs r1, r1, #0 + movs r2, #0 + str r2, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade +_081C72EC: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_081C7280 + + thumb_func_start IsDma3ManagerBusyWithBgCopy_ +IsDma3ManagerBusyWithBgCopy_: @ 0x081C72F4 + ldr r0, _081C72FC + ldrb r0, [r0, #7] + lsrs r0, r0, #7 + bx lr + .align 2, 0 +_081C72FC: .4byte 0x02037C74 + thumb_func_end IsDma3ManagerBusyWithBgCopy_ + + thumb_func_start sub_081C7300 +sub_081C7300: @ 0x081C7300 + push {lr} + ldr r0, _081C7310 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + pop {r0} + bx r0 + .align 2, 0 +_081C7310: .4byte 0xFFFEFFFE + thumb_func_end sub_081C7300 + + thumb_func_start InitBgTemplates +InitBgTemplates: @ 0x081C7314 + push {r4, r5, lr} + adds r5, r0, #0 + cmp r1, #0 + ble _081C732C + adds r4, r1, #0 +_081C731E: + adds r0, r5, #0 + adds r5, #4 + bl InitBgFromTemplate + subs r4, #1 + cmp r4, #0 + bne _081C731E +_081C732C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end InitBgTemplates + + thumb_func_start sub_081C7334 +sub_081C7334: @ 0x081C7334 + push {r4, lr} + movs r0, #0 + bl GetSubstructPtr + adds r4, r0, #0 + ldr r0, _081C7360 + bl InitWindows + movs r0, #0 + str r0, [r4, #0x10] + bl sub_081C73B8 + ldrb r0, [r4, #0x10] + bl PutWindowTilemap + ldrb r0, [r4, #0x10] + movs r1, #3 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C7360: .4byte 0x085F13CC + thumb_func_end sub_081C7334 + + thumb_func_start sub_081C7364 +sub_081C7364: @ 0x081C7364 + push {r4, r5, lr} + sub sp, #0xc + adds r4, r0, #0 + movs r0, #0 + bl GetSubstructPtr + adds r5, r0, #0 + ldr r0, [r5, #0x10] + bl sub_081C73B8 + ldrb r0, [r5, #0x10] + ldr r1, _081C73A0 + str r1, [sp] + movs r1, #0 + str r1, [sp, #4] + ldr r1, _081C73A4 + lsls r4, r4, #2 + adds r4, r4, r1 + ldr r1, [r4] + str r1, [sp, #8] + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C73A0: .4byte 0x085F140C +_081C73A4: .4byte 0x085F13DC + thumb_func_end sub_081C7364 + + thumb_func_start sub_081C73A8 +sub_081C73A8: @ 0x081C73A8 + push {lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081C73A8 + + thumb_func_start sub_081C73B8 +sub_081C73B8: @ 0x081C73B8 + push {r4, lr} + sub sp, #8 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #0x44 + bl FillWindowPixelBuffer + movs r0, #0x80 + str r0, [sp] + movs r0, #1 + str r0, [sp, #4] + adds r0, r4, #0 + movs r1, #0x55 + movs r2, #0 + movs r3, #0 + bl FillWindowPixelRect + add sp, #8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081C73B8 + + thumb_func_start InitPokenavMainMenuResources +InitPokenavMainMenuResources: @ 0x081C73E8 + push {r4, r5, r6, lr} + movs r0, #0 + bl GetSubstructPtr + adds r6, r0, #0 + movs r5, #0 + ldr r4, _081C7444 +_081C73F6: + adds r0, r4, #0 + bl LoadCompressedSpriteSheet + adds r4, #8 + adds r5, #1 + cmp r5, #0 + beq _081C73F6 + ldr r0, _081C7448 + bl Pokenav_AllocAndLoadPalettes + movs r0, #0 + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x80 + lsls r1, r1, #9 + lsls r1, r0 + movs r0, #2 + rsbs r0, r0, #0 + bics r0, r1 + str r0, [r6, #0x14] + ldr r0, _081C744C + movs r1, #0xdc + movs r2, #0xc + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _081C7450 + adds r1, r1, r0 + str r1, [r6, #0x18] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081C7444: .4byte 0x085F1410 +_081C7448: .4byte 0x085F1418 +_081C744C: .4byte 0x085F14C8 +_081C7450: .4byte 0x020205AC + thumb_func_end InitPokenavMainMenuResources + + thumb_func_start CleanupPokenavMainMenuResources +CleanupPokenavMainMenuResources: @ 0x081C7454 + push {lr} + movs r0, #0 + bl GetSubstructPtr + ldr r0, [r0, #0x18] + bl DestroySprite + movs r0, #0 + bl FreeSpriteTilesByTag + movs r0, #0 + bl FreeSpritePaletteByTag + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CleanupPokenavMainMenuResources + + thumb_func_start SpriteCB_SpinningPokenav +SpriteCB_SpinningPokenav: @ 0x081C7474 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + bl GetBgY + lsrs r0, r0, #8 + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SpriteCB_SpinningPokenav + + thumb_func_start PauseSpinningPokenavSprite +PauseSpinningPokenavSprite: @ 0x081C748C + push {lr} + movs r0, #0 + bl GetSubstructPtr + ldr r0, [r0, #0x18] + ldr r1, _081C74A0 + str r1, [r0, #0x1c] + pop {r1} + bx r1 + .align 2, 0 +_081C74A0: .4byte 0x08007141 + thumb_func_end PauseSpinningPokenavSprite + + thumb_func_start ResumeSpinningPokenavSprite +ResumeSpinningPokenavSprite: @ 0x081C74A4 + push {r4, lr} + movs r0, #0 + bl GetSubstructPtr + ldr r2, [r0, #0x18] + movs r4, #0 + movs r1, #0xdc + strh r1, [r2, #0x20] + ldr r2, [r0, #0x18] + movs r1, #0xc + strh r1, [r2, #0x22] + ldr r2, [r0, #0x18] + ldr r1, _081C74E4 + str r1, [r2, #0x1c] + adds r2, #0x3e + ldrb r3, [r2] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r3 + strb r1, [r2] + ldr r3, [r0, #0x18] + ldrb r2, [r3, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r3, #5] + ldr r0, [r0, #0x18] + adds r0, #0x43 + strb r4, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C74E4: .4byte 0x081C7475 + thumb_func_end ResumeSpinningPokenavSprite + + thumb_func_start InitHoennMapHeaderSprites +InitHoennMapHeaderSprites: @ 0x081C74E8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r0, #0 + bl GetSubstructPtr + adds r6, r0, #0 + ldr r0, _081C75A4 + bl LoadCompressedSpriteSheet + movs r0, #1 + bl AllocSpritePalette + movs r0, #2 + bl AllocSpritePalette + movs r5, #0 + ldr r0, _081C75A8 + mov r8, r0 + movs r7, #4 +_081C7510: + ldr r0, _081C75AC + movs r1, #0 + movs r2, #0 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + lsls r4, r5, #2 + adds r2, r6, #0 + adds r2, #0x1c + adds r2, r2, r4 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + str r0, [r2] + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r7 + strb r1, [r0] + ldr r1, [r2] + lsls r0, r5, #6 + strh r0, [r1, #0x24] + ldr r0, _081C75B0 + movs r1, #0 + movs r2, #0 + movs r3, #2 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r2, r6, #0 + adds r2, #0x24 + adds r2, r2, r4 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + str r0, [r2] + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r7 + strb r1, [r0] + ldr r1, [r2] + lsls r0, r5, #5 + strh r0, [r1, #0x24] + ldr r1, [r2] + movs r0, #0x12 + strh r0, [r1, #0x26] + ldr r3, [r2] + ldrh r2, [r3, #4] + lsls r1, r2, #0x16 + lsrs r1, r1, #0x16 + lsls r0, r5, #3 + adds r0, #0x40 + adds r1, r1, r0 + ldr r4, _081C75B4 + adds r0, r4, #0 + ands r1, r0 + ldr r4, _081C75B8 + adds r0, r4, #0 + ands r2, r0 + orrs r2, r1 + strh r2, [r3, #4] + adds r5, #1 + cmp r5, #1 + ble _081C7510 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C75A4: .4byte 0x085F1428 +_081C75A8: .4byte 0x020205AC +_081C75AC: .4byte 0x085F14F0 +_081C75B0: .4byte 0x085F1508 +_081C75B4: .4byte 0x000003FF +_081C75B8: .4byte 0xFFFFFC00 + thumb_func_end InitHoennMapHeaderSprites + + thumb_func_start LoadLeftHeaderGfxForIndex +LoadLeftHeaderGfxForIndex: @ 0x081C75BC + push {lr} + cmp r0, #5 + bhi _081C75C8 + bl LoadLeftHeaderGfxForMenu + b _081C75CE +_081C75C8: + subs r0, #6 + bl LoadLeftHeaderGfxForSubMenu +_081C75CE: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LoadLeftHeaderGfxForIndex + + thumb_func_start sub_081C75D4 +sub_081C75D4: @ 0x081C75D4 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0 + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #4 + bne _081C75F0 + movs r0, #2 + bl GetSpriteTileStartByTag + ldr r3, [r5, #0x20] + adds r0, #0x20 + b _081C75FA +_081C75F0: + movs r0, #2 + bl GetSpriteTileStartByTag + ldr r3, [r5, #0x20] + adds r0, #0x40 +_081C75FA: + ldr r2, _081C7610 + adds r1, r2, #0 + ands r0, r1 + ldrh r2, [r3, #4] + ldr r1, _081C7614 + ands r1, r2 + orrs r1, r0 + strh r1, [r3, #4] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C7610: .4byte 0x000003FF +_081C7614: .4byte 0xFFFFFC00 + thumb_func_end sub_081C75D4 + + thumb_func_start LoadLeftHeaderGfxForMenu +LoadLeftHeaderGfxForMenu: @ 0x081C7618 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + adds r6, r0, #0 + cmp r6, #5 + bhi _081C76A8 + movs r0, #0 + bl GetSubstructPtr + mov sb, r0 + ldr r0, _081C76B4 + lsls r6, r6, #3 + adds r6, r6, r0 + ldrh r4, [r6, #6] + ldr r0, [r6] + mov r8, r0 + bl GetDecompressedDataSize + adds r5, r0, #0 + lsls r4, r4, #5 + ldr r0, _081C76B8 + adds r4, r4, r0 + movs r0, #1 + bl IndexOfSpritePaletteTag + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #4 + movs r2, #0x80 + lsls r2, r2, #0x11 + adds r1, r1, r2 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + movs r2, #0x20 + bl LoadPalette + ldr r4, _081C76BC + mov r0, r8 + adds r1, r4, #0 + bl LZ77UnCompWram + movs r0, #2 + bl GetSpriteTileStartByTag + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0xb + ldr r0, _081C76C0 + adds r1, r1, r0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + adds r0, r4, #0 + adds r2, r5, #0 + movs r3, #1 + bl RequestDma3Copy + movs r0, #2 + bl GetSpriteTileStartByTag + mov r1, sb + ldr r3, [r1, #0x20] + ldrh r1, [r6, #4] + adds r0, r0, r1 + ldr r2, _081C76C4 + adds r1, r2, #0 + ands r0, r1 + ldrh r2, [r3, #4] + ldr r1, _081C76C8 + ands r1, r2 + orrs r1, r0 + strh r1, [r3, #4] +_081C76A8: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081C76B4: .4byte 0x085F1430 +_081C76B8: .4byte 0x085F021C +_081C76BC: .4byte 0x0201C000 +_081C76C0: .4byte 0x06010000 +_081C76C4: .4byte 0x000003FF +_081C76C8: .4byte 0xFFFFFC00 + thumb_func_end LoadLeftHeaderGfxForMenu + + thumb_func_start LoadLeftHeaderGfxForSubMenu +LoadLeftHeaderGfxForSubMenu: @ 0x081C76CC + push {r4, r5, r6, lr} + cmp r0, #6 + bhi _081C7732 + ldr r2, _081C7738 + lsls r1, r0, #3 + adds r0, r2, #4 + adds r0, r1, r0 + ldr r4, [r0] + adds r1, r1, r2 + ldr r6, [r1] + adds r0, r6, #0 + bl GetDecompressedDataSize + adds r5, r0, #0 + lsls r4, r4, #5 + ldr r0, _081C773C + adds r4, r4, r0 + movs r0, #2 + bl IndexOfSpritePaletteTag + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #4 + movs r0, #0x80 + lsls r0, r0, #0x11 + adds r1, r1, r0 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + movs r2, #0x20 + bl LoadPalette + ldr r4, _081C7740 + adds r0, r6, #0 + adds r1, r4, #0 + bl LZ77UnCompWram + movs r0, #2 + bl GetSpriteTileStartByTag + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0xb + ldr r0, _081C7744 + adds r1, r1, r0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + adds r0, r4, #0 + adds r2, r5, #0 + movs r3, #1 + bl RequestDma3Copy +_081C7732: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081C7738: .4byte 0x085F1460 +_081C773C: .4byte 0x085F021C +_081C7740: .4byte 0x0201D000 +_081C7744: .4byte 0x06010800 + thumb_func_end LoadLeftHeaderGfxForSubMenu + + thumb_func_start sub_081C7748 +sub_081C7748: @ 0x081C7748 + push {lr} + adds r3, r0, #0 + movs r0, #0x10 + cmp r1, #0 + bne _081C7754 + movs r0, #0x30 +_081C7754: + cmp r3, #5 + bhi _081C7760 + adds r1, r2, #0 + bl ShowLeftHeaderSprites + b _081C7766 +_081C7760: + adds r1, r2, #0 + bl ShowLeftHeaderSubmenuSprites +_081C7766: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081C7748 + + thumb_func_start sub_081C776C +sub_081C776C: @ 0x081C776C + push {lr} + cmp r0, #5 + bhi _081C777A + adds r0, r1, #0 + bl HideLeftHeaderSprites + b _081C7780 +_081C777A: + adds r0, r1, #0 + bl HideLeftHeaderSubmenuSprites +_081C7780: + pop {r0} + bx r0 + thumb_func_end sub_081C776C + + thumb_func_start sub_081C7784 +sub_081C7784: @ 0x081C7784 + push {r4, lr} + movs r0, #0 + bl GetSubstructPtr + movs r4, #4 + adds r2, r0, #0 + adds r2, #0x1c + movs r3, #1 +_081C7794: + ldr r1, [r2] + adds r1, #0x3e + ldrb r0, [r1] + orrs r0, r4 + strb r0, [r1] + ldr r1, [r2, #8] + adds r1, #0x3e + ldrb r0, [r1] + orrs r0, r4 + strb r0, [r1] + adds r2, #4 + subs r3, #1 + cmp r3, #0 + bge _081C7794 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081C7784 + + thumb_func_start sub_081C77B8 +sub_081C77B8: @ 0x081C77B8 + push {lr} + movs r0, #0 + bl GetSubstructPtr + adds r1, r0, #0 + ldr r0, [r1, #0x1c] + ldr r2, [r0, #0x1c] + ldr r0, _081C77D8 + cmp r2, r0 + bne _081C77DC + ldr r0, [r1, #0x24] + ldr r0, [r0, #0x1c] + cmp r0, r2 + bne _081C77DC + movs r0, #0 + b _081C77DE + .align 2, 0 +_081C77D8: .4byte 0x08007141 +_081C77DC: + movs r0, #1 +_081C77DE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081C77B8 + + thumb_func_start ShowLeftHeaderSprites +ShowLeftHeaderSprites: @ 0x081C77E4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + adds r4, r1, #0 + movs r0, #0 + bl GetSubstructPtr + cmp r4, #0 + bne _081C7800 + movs r7, #0x60 + rsbs r7, r7, #0 + movs r6, #0x20 + b _081C7806 +_081C7800: + movs r7, #0x80 + lsls r7, r7, #1 + movs r6, #0xa0 +_081C7806: + adds r4, r0, #0 + adds r4, #0x1c + movs r5, #1 +_081C780C: + ldr r0, [r4] + mov r1, r8 + strh r1, [r0, #0x22] + ldm r4!, {r0} + adds r1, r7, #0 + adds r2, r6, #0 + movs r3, #0xc + bl MoveLeftHeader + subs r5, #1 + cmp r5, #0 + bge _081C780C + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ShowLeftHeaderSprites + + thumb_func_start ShowLeftHeaderSubmenuSprites +ShowLeftHeaderSubmenuSprites: @ 0x081C7830 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + adds r4, r1, #0 + movs r0, #0 + bl GetSubstructPtr + cmp r4, #0 + bne _081C784C + movs r7, #0x60 + rsbs r7, r7, #0 + movs r6, #0x10 + b _081C7852 +_081C784C: + movs r7, #0x80 + lsls r7, r7, #1 + movs r6, #0xc0 +_081C7852: + adds r4, r0, #0 + adds r4, #0x24 + movs r5, #1 +_081C7858: + ldr r0, [r4] + mov r1, r8 + strh r1, [r0, #0x22] + ldm r4!, {r0} + adds r1, r7, #0 + adds r2, r6, #0 + movs r3, #0xc + bl MoveLeftHeader + subs r5, #1 + cmp r5, #0 + bge _081C7858 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ShowLeftHeaderSubmenuSprites + + thumb_func_start HideLeftHeaderSprites +HideLeftHeaderSprites: @ 0x081C787C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + movs r0, #0 + bl GetSubstructPtr + cmp r4, #0 + bne _081C7892 + movs r6, #0x20 + movs r5, #0x60 + rsbs r5, r5, #0 + b _081C7898 +_081C7892: + movs r6, #0xc0 + movs r5, #0x80 + lsls r5, r5, #1 +_081C7898: + adds r7, r0, #0 + adds r7, #0x1c + movs r4, #1 +_081C789E: + ldm r7!, {r0} + adds r1, r6, #0 + adds r2, r5, #0 + movs r3, #0xc + bl MoveLeftHeader + subs r4, #1 + cmp r4, #0 + bge _081C789E + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end HideLeftHeaderSprites + + thumb_func_start HideLeftHeaderSubmenuSprites +HideLeftHeaderSubmenuSprites: @ 0x081C78B8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + movs r0, #0 + bl GetSubstructPtr + cmp r4, #0 + bne _081C78CE + movs r6, #0x10 + movs r5, #0x60 + rsbs r5, r5, #0 + b _081C78D4 +_081C78CE: + movs r6, #0xc0 + movs r5, #0x80 + lsls r5, r5, #1 +_081C78D4: + adds r7, r0, #0 + adds r7, #0x24 + movs r4, #1 +_081C78DA: + ldm r7!, {r0} + adds r1, r6, #0 + adds r2, r5, #0 + movs r3, #0xc + bl MoveLeftHeader + subs r4, #1 + cmp r4, #0 + bge _081C78DA + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end HideLeftHeaderSubmenuSprites + + thumb_func_start MoveLeftHeader +MoveLeftHeader: @ 0x081C78F4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, r1, #0 + adds r6, r2, #0 + adds r5, r3, #0 + strh r0, [r4, #0x20] + lsls r1, r0, #4 + strh r1, [r4, #0x2e] + subs r0, r6, r0 + lsls r0, r0, #4 + adds r1, r5, #0 + bl __divsi3 + strh r0, [r4, #0x30] + strh r5, [r4, #0x32] + strh r6, [r4, #0x3c] + ldr r0, _081C7920 + str r0, [r4, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081C7920: .4byte 0x081C7925 + thumb_func_end MoveLeftHeader + + thumb_func_start SpriteCB_MoveLeftHeader +SpriteCB_MoveLeftHeader: @ 0x081C7924 + push {lr} + adds r2, r0, #0 + ldrh r1, [r2, #0x32] + movs r3, #0x32 + ldrsh r0, [r2, r3] + cmp r0, #0 + beq _081C796C + subs r0, r1, #1 + strh r0, [r2, #0x32] + ldrh r0, [r2, #0x30] + ldrh r1, [r2, #0x2e] + adds r0, r0, r1 + strh r0, [r2, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + strh r0, [r2, #0x20] + adds r0, #0x10 + lsls r0, r0, #0x10 + movs r1, #0x88 + lsls r1, r1, #0x11 + cmp r0, r1 + bls _081C795E + adds r0, r2, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + b _081C7974 +_081C795E: + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + b _081C7974 +_081C796C: + ldrh r0, [r2, #0x3c] + strh r0, [r2, #0x20] + ldr r0, _081C7978 + str r0, [r2, #0x1c] +_081C7974: + pop {r0} + bx r0 + .align 2, 0 +_081C7978: .4byte 0x08007141 + thumb_func_end SpriteCB_MoveLeftHeader + diff --git a/asm/pokenav_match_call_data.s b/asm/pokenav_match_call_data.s new file mode 100644 index 0000000..7381e06 --- /dev/null +++ b/asm/pokenav_match_call_data.s @@ -0,0 +1,1066 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start MatchCallGetFunctionIndex +MatchCallGetFunctionIndex: @ 0x081D0C90 + push {lr} + ldrb r0, [r0] + cmp r0, #5 + bhi _081D0CC0 + lsls r0, r0, #2 + ldr r1, _081D0CA4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081D0CA4: .4byte 0x081D0CA8 +_081D0CA8: @ jump table + .4byte _081D0CC0 @ case 0 + .4byte _081D0CC4 @ case 1 + .4byte _081D0CC8 @ case 2 + .4byte _081D0CD0 @ case 3 + .4byte _081D0CCC @ case 4 + .4byte _081D0CC4 @ case 5 +_081D0CC0: + movs r0, #0 + b _081D0CD2 +_081D0CC4: + movs r0, #1 + b _081D0CD2 +_081D0CC8: + movs r0, #2 + b _081D0CD2 +_081D0CCC: + movs r0, #3 + b _081D0CD2 +_081D0CD0: + movs r0, #4 +_081D0CD2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MatchCallGetFunctionIndex + + thumb_func_start GetTrainerIdxByRematchIdx +GetTrainerIdxByRematchIdx: @ 0x081D0CD8 + ldr r1, _081D0CE4 + lsls r0, r0, #4 + adds r0, r0, r1 + ldrh r0, [r0] + bx lr + .align 2, 0 +_081D0CE4: .4byte 0x0852AD40 + thumb_func_end GetTrainerIdxByRematchIdx + + thumb_func_start GetRematchIdxByTrainerIdx +GetRematchIdxByTrainerIdx: @ 0x081D0CE8 + push {lr} + adds r3, r0, #0 + movs r1, #0 + ldr r2, _081D0CFC +_081D0CF0: + ldrh r0, [r2] + cmp r0, r3 + bne _081D0D00 + adds r0, r1, #0 + b _081D0D0C + .align 2, 0 +_081D0CFC: .4byte 0x0852AD40 +_081D0D00: + adds r2, #0x10 + adds r1, #1 + cmp r1, #0x4d + ble _081D0CF0 + movs r0, #1 + rsbs r0, r0, #0 +_081D0D0C: + pop {r1} + bx r1 + thumb_func_end GetRematchIdxByTrainerIdx + + thumb_func_start MatchCallFlagGetByIndex +MatchCallFlagGetByIndex: @ 0x081D0D10 + push {r4, lr} + cmp r0, #0x14 + bhi _081D0D3C + ldr r1, _081D0D34 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r4, [r0] + adds r0, r4, #0 + bl MatchCallGetFunctionIndex + ldr r1, _081D0D38 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + b _081D0D3E + .align 2, 0 +_081D0D34: .4byte 0x085F79B4 +_081D0D38: .4byte 0x085F7A08 +_081D0D3C: + movs r0, #0 +_081D0D3E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end MatchCallFlagGetByIndex + + thumb_func_start MatchCallGetFlag_Type0 +MatchCallGetFlag_Type0: @ 0x081D0D44 + push {lr} + adds r2, r0, #0 + ldrh r1, [r2, #2] + ldr r0, _081D0D5C + cmp r1, r0 + beq _081D0D60 + adds r0, r1, #0 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _081D0D62 + .align 2, 0 +_081D0D5C: .4byte 0x0000FFFF +_081D0D60: + movs r0, #1 +_081D0D62: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MatchCallGetFlag_Type0 + + thumb_func_start MatchCallGetFlag_Type1 +MatchCallGetFlag_Type1: @ 0x081D0D68 + push {lr} + adds r2, r0, #0 + ldrh r1, [r2, #2] + ldr r0, _081D0D80 + cmp r1, r0 + beq _081D0D84 + adds r0, r1, #0 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _081D0D86 + .align 2, 0 +_081D0D80: .4byte 0x0000FFFF +_081D0D84: + movs r0, #1 +_081D0D86: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MatchCallGetFlag_Type1 + + thumb_func_start MatchCallGetFlag_Type2 +MatchCallGetFlag_Type2: @ 0x081D0D8C + push {lr} + adds r2, r0, #0 + ldrh r1, [r2, #2] + ldr r0, _081D0DA4 + cmp r1, r0 + beq _081D0DA8 + adds r0, r1, #0 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _081D0DAA + .align 2, 0 +_081D0DA4: .4byte 0x0000FFFF +_081D0DA8: + movs r0, #1 +_081D0DAA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MatchCallGetFlag_Type2 + + thumb_func_start MatchCallGetFlag_Type4 +MatchCallGetFlag_Type4: @ 0x081D0DB0 + push {lr} + adds r2, r0, #0 + ldr r0, _081D0DC4 + ldr r1, [r0] + ldrb r0, [r2, #1] + ldrb r1, [r1, #8] + cmp r0, r1 + beq _081D0DC8 + movs r0, #0 + b _081D0DE2 + .align 2, 0 +_081D0DC4: .4byte 0x03005AF0 +_081D0DC8: + ldrh r1, [r2, #2] + ldr r0, _081D0DDC + cmp r1, r0 + beq _081D0DE0 + adds r0, r1, #0 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _081D0DE2 + .align 2, 0 +_081D0DDC: .4byte 0x0000FFFF +_081D0DE0: + movs r0, #1 +_081D0DE2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MatchCallGetFlag_Type4 + + thumb_func_start MatchCallGetFlag_Type3 +MatchCallGetFlag_Type3: @ 0x081D0DE8 + push {lr} + ldrh r0, [r0, #2] + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + thumb_func_end MatchCallGetFlag_Type3 + + thumb_func_start MatchCallMapSecGetByIndex +MatchCallMapSecGetByIndex: @ 0x081D0DF8 + push {r4, lr} + cmp r0, #0x14 + bhi _081D0E28 + ldr r1, _081D0E20 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r4, [r0] + adds r0, r4, #0 + bl MatchCallGetFunctionIndex + ldr r1, _081D0E24 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _081D0E2A + .align 2, 0 +_081D0E20: .4byte 0x085F79B4 +_081D0E24: .4byte 0x085F7A1C +_081D0E28: + movs r0, #0 +_081D0E2A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end MatchCallMapSecGetByIndex + + thumb_func_start MatchCallGetMapSec_Type0 +MatchCallGetMapSec_Type0: @ 0x081D0E30 + ldrb r0, [r0, #1] + bx lr + thumb_func_end MatchCallGetMapSec_Type0 + + thumb_func_start MatchCallGetMapSec_Type1 +MatchCallGetMapSec_Type1: @ 0x081D0E34 + ldrb r0, [r0, #1] + bx lr + thumb_func_end MatchCallGetMapSec_Type1 + + thumb_func_start MatchCallGetMapSec_Type2 +MatchCallGetMapSec_Type2: @ 0x081D0E38 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r6, #0 + ldr r7, _081D0E44 + b _081D0E4A + .align 2, 0 +_081D0E44: .4byte 0x0000FFFF +_081D0E48: + adds r6, #1 +_081D0E4A: + ldr r0, [r5, #0x10] + lsls r4, r6, #2 + adds r1, r4, r0 + ldrh r0, [r1] + cmp r0, r7 + beq _081D0E60 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081D0E48 +_081D0E60: + ldr r0, [r5, #0x10] + adds r0, r4, r0 + ldrb r0, [r0, #2] + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end MatchCallGetMapSec_Type2 + + thumb_func_start MatchCallGetMapSec_Type4 +MatchCallGetMapSec_Type4: @ 0x081D0E6C + movs r0, #0xd5 + bx lr + thumb_func_end MatchCallGetMapSec_Type4 + + thumb_func_start MatchCallGetMapSec_Type3 +MatchCallGetMapSec_Type3: @ 0x081D0E70 + movs r0, #0xd5 + bx lr + thumb_func_end MatchCallGetMapSec_Type3 + + thumb_func_start MatchCall_IsRematchable +MatchCall_IsRematchable: @ 0x081D0E74 + push {r4, lr} + cmp r0, #0x14 + bhi _081D0EA0 + ldr r1, _081D0E98 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r4, [r0] + adds r0, r4, #0 + bl MatchCallGetFunctionIndex + ldr r1, _081D0E9C + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + b _081D0EA2 + .align 2, 0 +_081D0E98: .4byte 0x085F79B4 +_081D0E9C: .4byte 0x085F7A30 +_081D0EA0: + movs r0, #0 +_081D0EA2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end MatchCall_IsRematchable + + thumb_func_start MatchCall_IsRematchable_Type3 +MatchCall_IsRematchable_Type3: @ 0x081D0EA8 + movs r0, #0 + bx lr + thumb_func_end MatchCall_IsRematchable_Type3 + + thumb_func_start MatchCall_IsRematchable_Type1 +MatchCall_IsRematchable_Type1: @ 0x081D0EAC + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #4] + cmp r0, #0x48 + bhi _081D0ED4 + ldr r0, _081D0ECC + ldr r0, [r0] + ldr r2, _081D0ED0 + adds r0, r0, r2 + ldrh r1, [r1, #4] + adds r0, r0, r1 + ldrb r1, [r0] + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + b _081D0ED6 + .align 2, 0 +_081D0ECC: .4byte 0x03005AEC +_081D0ED0: .4byte 0x000009CA +_081D0ED4: + movs r0, #0 +_081D0ED6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MatchCall_IsRematchable_Type1 + + thumb_func_start MatchCall_IsRematchable_Type2 +MatchCall_IsRematchable_Type2: @ 0x081D0EDC + ldr r1, _081D0EF4 + ldr r1, [r1] + ldr r2, _081D0EF8 + adds r1, r1, r2 + ldrh r0, [r0, #4] + adds r1, r1, r0 + ldrb r1, [r1] + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + bx lr + .align 2, 0 +_081D0EF4: .4byte 0x03005AEC +_081D0EF8: .4byte 0x000009CA + thumb_func_end MatchCall_IsRematchable_Type2 + + thumb_func_start MatchCall_IsRematchable_Type4 +MatchCall_IsRematchable_Type4: @ 0x081D0EFC + movs r0, #0 + bx lr + thumb_func_end MatchCall_IsRematchable_Type4 + + thumb_func_start sub_081D0F00 +sub_081D0F00: @ 0x081D0F00 + movs r0, #0 + bx lr + thumb_func_end sub_081D0F00 + + thumb_func_start sub_081D0F04 +sub_081D0F04: @ 0x081D0F04 + push {r4, r5, lr} + adds r5, r0, #0 + cmp r5, #0x14 + bhi _081D0F4E + ldr r1, _081D0F34 + lsls r0, r5, #2 + adds r0, r0, r1 + ldr r4, [r0] + adds r0, r4, #0 + bl MatchCallGetFunctionIndex + adds r2, r0, #0 + ldr r1, _081D0F38 + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + cmp r0, #0 + beq _081D0F3C +_081D0F2E: + movs r0, #1 + b _081D0F50 + .align 2, 0 +_081D0F34: .4byte 0x085F79B4 +_081D0F38: .4byte 0x085F7A44 +_081D0F3C: + movs r2, #0 + ldr r1, _081D0F58 +_081D0F40: + ldrh r0, [r1] + cmp r0, r5 + beq _081D0F2E + adds r1, #0x18 + adds r2, #1 + cmp r2, #3 + bls _081D0F40 +_081D0F4E: + movs r0, #0 +_081D0F50: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081D0F58: .4byte 0x085F7A94 + thumb_func_end sub_081D0F04 + + thumb_func_start sub_081D0F5C +sub_081D0F5C: @ 0x081D0F5C + movs r0, #0 + bx lr + thumb_func_end sub_081D0F5C + + thumb_func_start sub_081D0F60 +sub_081D0F60: @ 0x081D0F60 + movs r0, #1 + bx lr + thumb_func_end sub_081D0F60 + + thumb_func_start sub_081D0F64 +sub_081D0F64: @ 0x081D0F64 + movs r0, #1 + bx lr + thumb_func_end sub_081D0F64 + + thumb_func_start sub_081D0F68 +sub_081D0F68: @ 0x081D0F68 + movs r0, #0 + bx lr + thumb_func_end sub_081D0F68 + + thumb_func_start MatchCall_IsRematchable_Type0 +MatchCall_IsRematchable_Type0: @ 0x081D0F6C + movs r0, #0 + bx lr + thumb_func_end MatchCall_IsRematchable_Type0 + + thumb_func_start MatchCall_GetRematchTableIdx +MatchCall_GetRematchTableIdx: @ 0x081D0F70 + push {r4, lr} + cmp r0, #0x14 + bhi _081D0F9C + ldr r1, _081D0F94 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r4, [r0] + adds r0, r4, #0 + bl MatchCallGetFunctionIndex + ldr r1, _081D0F98 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + b _081D0F9E + .align 2, 0 +_081D0F94: .4byte 0x085F79B4 +_081D0F98: .4byte 0x085F7A58 +_081D0F9C: + movs r0, #0x4e +_081D0F9E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end MatchCall_GetRematchTableIdx + + thumb_func_start MatchCall_GetRematchTableIdx_Type3 +MatchCall_GetRematchTableIdx_Type3: @ 0x081D0FA4 + movs r0, #0x4e + bx lr + thumb_func_end MatchCall_GetRematchTableIdx_Type3 + + thumb_func_start MatchCall_GetRematchTableIdx_Type1 +MatchCall_GetRematchTableIdx_Type1: @ 0x081D0FA8 + ldrh r0, [r0, #4] + bx lr + thumb_func_end MatchCall_GetRematchTableIdx_Type1 + + thumb_func_start MatchCall_GetRematchTableIdx_Type2 +MatchCall_GetRematchTableIdx_Type2: @ 0x081D0FAC + ldrh r0, [r0, #4] + bx lr + thumb_func_end MatchCall_GetRematchTableIdx_Type2 + + thumb_func_start MatchCall_GetRematchTableIdx_Type4 +MatchCall_GetRematchTableIdx_Type4: @ 0x081D0FB0 + movs r0, #0x4e + bx lr + thumb_func_end MatchCall_GetRematchTableIdx_Type4 + + thumb_func_start MatchCall_GetRematchTableIdx_Type0 +MatchCall_GetRematchTableIdx_Type0: @ 0x081D0FB4 + movs r0, #0x4e + bx lr + thumb_func_end MatchCall_GetRematchTableIdx_Type0 + + thumb_func_start MatchCall_GetMessage +MatchCall_GetMessage: @ 0x081D0FB8 + push {r4, r5, lr} + adds r5, r1, #0 + cmp r0, #0x14 + bhi _081D0FDE + ldr r1, _081D0FE4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r4, [r0] + adds r0, r4, #0 + bl MatchCallGetFunctionIndex + ldr r1, _081D0FE8 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r2, [r0] + adds r0, r4, #0 + adds r1, r5, #0 + bl _call_via_r2 +_081D0FDE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081D0FE4: .4byte 0x085F79B4 +_081D0FE8: .4byte 0x085F7A6C + thumb_func_end MatchCall_GetMessage + + thumb_func_start MatchCall_GetMessage_Type0 +MatchCall_GetMessage_Type0: @ 0x081D0FEC + push {lr} + ldr r0, [r0, #0xc] + bl sub_081D103C + pop {r0} + bx r0 + thumb_func_end MatchCall_GetMessage_Type0 + + thumb_func_start MatchCall_GetMessage_Type1 +MatchCall_GetMessage_Type1: @ 0x081D0FF8 + push {lr} + adds r3, r0, #0 + adds r2, r1, #0 + ldrb r0, [r3] + cmp r0, #5 + beq _081D100C + ldr r0, [r3, #0x10] + bl sub_081D103C + b _081D1014 +_081D100C: + ldr r0, [r3, #0x10] + ldrh r1, [r3, #4] + bl sub_081D109C +_081D1014: + pop {r0} + bx r0 + thumb_func_end MatchCall_GetMessage_Type1 + + thumb_func_start MatchCall_GetMessage_Type2 +MatchCall_GetMessage_Type2: @ 0x081D1018 + push {lr} + ldr r0, [r0, #0xc] + bl sub_081D103C + pop {r0} + bx r0 + thumb_func_end MatchCall_GetMessage_Type2 + + thumb_func_start MatchCall_GetMessage_Type4 +MatchCall_GetMessage_Type4: @ 0x081D1024 + push {lr} + ldr r0, [r0, #0xc] + bl sub_081D103C + pop {r0} + bx r0 + thumb_func_end MatchCall_GetMessage_Type4 + + thumb_func_start MatchCall_GetMessage_Type3 +MatchCall_GetMessage_Type3: @ 0x081D1030 + push {lr} + adds r0, r1, #0 + bl sub_08196C74 + pop {r0} + bx r0 + thumb_func_end MatchCall_GetMessage_Type3 + + thumb_func_start sub_081D103C +sub_081D103C: @ 0x081D103C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + mov r8, r1 + movs r5, #0 + ldr r7, _081D1050 + adds r4, r6, #0 + b _081D1058 + .align 2, 0 +_081D1050: .4byte 0x0000FFFF +_081D1054: + adds r4, #8 + adds r5, #1 +_081D1058: + ldr r0, [r4] + cmp r0, #0 + beq _081D106E + ldrh r0, [r4, #4] + cmp r0, r7 + beq _081D1054 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081D1054 +_081D106E: + cmp r5, #0 + beq _081D1074 + subs r5, #1 +_081D1074: + lsls r0, r5, #3 + adds r4, r0, r6 + ldrh r1, [r4, #6] + ldr r0, _081D1098 + cmp r1, r0 + beq _081D1086 + adds r0, r1, #0 + bl FlagSet +_081D1086: + ldr r1, [r4] + mov r0, r8 + bl StringExpandPlaceholders + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D1098: .4byte 0x0000FFFF + thumb_func_end sub_081D103C + + thumb_func_start sub_081D109C +sub_081D109C: @ 0x081D109C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r6, r0, #0 + mov sl, r2 + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + movs r5, #0 + ldr r0, [r6] + cmp r0, #0 + beq _081D10E6 + ldrh r0, [r6, #4] + ldr r1, _081D1114 + cmp r0, r1 + beq _081D1124 + ldr r0, _081D1118 + mov sb, r0 + mov r8, r1 + adds r4, r6, #0 +_081D10C6: + ldrh r0, [r4, #4] + cmp r0, sb + beq _081D10D6 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D10E6 +_081D10D6: + adds r4, #8 + adds r5, #1 + ldr r0, [r4] + cmp r0, #0 + beq _081D10E6 + ldrh r0, [r4, #4] + cmp r0, r8 + bne _081D10C6 +_081D10E6: + lsls r0, r5, #3 + adds r0, r0, r6 + ldrh r1, [r0, #4] + ldr r0, _081D1114 + cmp r1, r0 + beq _081D1124 + cmp r5, #0 + beq _081D10F8 + subs r5, #1 +_081D10F8: + lsls r0, r5, #3 + adds r4, r0, r6 + ldrh r1, [r4, #6] + ldr r0, _081D1118 + cmp r1, r0 + beq _081D110A + adds r0, r1, #0 + bl FlagSet +_081D110A: + ldr r1, [r4] + mov r0, sl + bl StringExpandPlaceholders + b _081D115C + .align 2, 0 +_081D1114: .4byte 0x0000FFFE +_081D1118: .4byte 0x0000FFFF +_081D111C: + adds r5, #2 + b _081D1150 +_081D1120: + adds r5, #3 + b _081D1150 +_081D1124: + ldr r0, _081D116C + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D1150 + ldr r0, _081D1170 + ldr r0, [r0] + ldr r1, _081D1174 + adds r0, r0, r1 + adds r0, r0, r7 + ldrb r0, [r0] + cmp r0, #0 + bne _081D111C + adds r0, r7, #0 + bl CountBattledRematchTeams + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bhi _081D1120 + adds r5, #1 +_081D1150: + lsls r0, r5, #3 + adds r0, r0, r6 + ldr r1, [r0] + mov r0, sl + bl StringExpandPlaceholders +_081D115C: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D116C: .4byte 0x00000864 +_081D1170: .4byte 0x03005AEC +_081D1174: .4byte 0x000009CA + thumb_func_end sub_081D109C + + thumb_func_start sub_081D1178 +sub_081D1178: @ 0x081D1178 + push {r4, r5, r6, lr} + adds r5, r1, #0 + adds r6, r2, #0 + cmp r0, #0x14 + bhi _081D11A2 + ldr r1, _081D11A8 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r4, [r0] + adds r0, r4, #0 + bl MatchCallGetFunctionIndex + ldr r1, _081D11AC + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r3, [r0] + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl _call_via_r3 +_081D11A2: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081D11A8: .4byte 0x085F79B4 +_081D11AC: .4byte 0x085F7A80 + thumb_func_end sub_081D1178 + + thumb_func_start MatchCall_GetNameAndDesc_Type3 +MatchCall_GetNameAndDesc_Type3: @ 0x081D11B0 + ldr r3, [r0, #4] + str r3, [r1] + ldr r0, [r0, #8] + str r0, [r2] + bx lr + .align 2, 0 + thumb_func_end MatchCall_GetNameAndDesc_Type3 + + thumb_func_start MatchCall_GetNameAndDesc_Type1 +MatchCall_GetNameAndDesc_Type1: @ 0x081D11BC + push {r4, r5, lr} + adds r5, r1, #0 + adds r4, r0, #0 + ldr r0, [r4, #0xc] + cmp r0, #0 + bne _081D11D0 + ldrh r0, [r4, #4] + bl MatchCall_GetNameAndDescByRematchIdx + b _081D11D2 +_081D11D0: + str r0, [r2] +_081D11D2: + ldr r0, [r4, #8] + str r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end MatchCall_GetNameAndDesc_Type1 + + thumb_func_start MatchCall_GetNameAndDesc_Type2 +MatchCall_GetNameAndDesc_Type2: @ 0x081D11DC + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrh r0, [r4, #4] + bl MatchCall_GetNameAndDescByRematchIdx + ldr r0, [r4, #8] + str r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end MatchCall_GetNameAndDesc_Type2 + + thumb_func_start MatchCall_GetNameAndDesc_Type4 +MatchCall_GetNameAndDesc_Type4: @ 0x081D11F4 + ldr r3, [r0, #4] + str r3, [r1] + ldr r0, [r0, #8] + str r0, [r2] + bx lr + .align 2, 0 + thumb_func_end MatchCall_GetNameAndDesc_Type4 + + thumb_func_start MatchCall_GetNameAndDesc_Type0 +MatchCall_GetNameAndDesc_Type0: @ 0x081D1200 + ldr r3, [r0, #4] + str r3, [r1] + ldr r0, [r0, #8] + str r0, [r2] + bx lr + .align 2, 0 + thumb_func_end MatchCall_GetNameAndDesc_Type0 + + thumb_func_start MatchCall_GetNameAndDescByRematchIdx +MatchCall_GetNameAndDescByRematchIdx: @ 0x081D120C + push {r4, r5, lr} + adds r4, r1, #0 + adds r5, r2, #0 + bl GetTrainerIdxByRematchIdx + lsls r0, r0, #5 + ldr r1, _081D1234 + adds r0, r0, r1 + ldrb r2, [r0, #1] + movs r1, #0xb + muls r1, r2, r1 + ldr r2, _081D1238 + adds r1, r1, r2 + str r1, [r4] + adds r0, #4 + str r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081D1234: .4byte 0x082E383C +_081D1238: .4byte 0x082E3564 + thumb_func_end MatchCall_GetNameAndDescByRematchIdx + + thumb_func_start sub_081D123C +sub_081D123C: @ 0x081D123C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + movs r5, #0 + ldr r2, _081D12B4 + movs r0, #8 + adds r0, r0, r2 + mov sb, r0 +_081D1250: + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r0, r6 + bne _081D12B8 + adds r4, r5, #1 + lsls r1, r1, #2 + mov r8, r1 + cmp r4, #3 + bhi _081D12A4 + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r0, r6 + bne _081D12A4 + ldr r7, _081D12B4 +_081D1278: + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r1, r7, #4 + adds r0, r0, r1 + ldrh r0, [r0] + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D12A4 + adds r5, r4, #0 + adds r4, r5, #1 + cmp r4, #3 + bhi _081D12A4 + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r7 + ldrh r0, [r0] + cmp r0, r6 + beq _081D1278 +_081D12A4: + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #3 + add r0, r8 + add r0, sb + ldr r0, [r0] + b _081D12C0 + .align 2, 0 +_081D12B4: .4byte 0x085F7A94 +_081D12B8: + adds r5, #1 + cmp r5, #3 + bls _081D1250 + movs r0, #0 +_081D12C0: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_081D123C + + thumb_func_start sub_081D12CC +sub_081D12CC: @ 0x081D12CC + push {lr} + adds r3, r0, #0 + movs r2, #0 + ldr r1, _081D12E0 +_081D12D4: + ldrh r0, [r1] + cmp r0, r3 + bne _081D12E4 + ldrh r0, [r1, #2] + b _081D12F0 + .align 2, 0 +_081D12E0: .4byte 0x085F7A94 +_081D12E4: + adds r1, #0x18 + adds r2, #1 + cmp r2, #3 + bls _081D12D4 + movs r0, #1 + rsbs r0, r0, #0 +_081D12F0: + pop {r1} + bx r1 + thumb_func_end sub_081D12CC + + thumb_func_start sub_081D12F4 +sub_081D12F4: @ 0x081D12F4 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 +_081D12FA: + adds r0, r4, #0 + bl MatchCall_GetRematchTableIdx + cmp r0, #0x4e + beq _081D130C + cmp r0, r5 + bne _081D130C + movs r0, #1 + b _081D1314 +_081D130C: + adds r4, #1 + cmp r4, #0x14 + ble _081D12FA + movs r0, #0 +_081D1314: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081D12F4 + + thumb_func_start SetMatchCallRegisteredFlag +SetMatchCallRegisteredFlag: @ 0x081D131C + push {lr} + ldr r0, _081D133C + ldrh r0, [r0] + bl GetRematchIdxByTrainerIdx + cmp r0, #0 + blt _081D1338 + movs r1, #0xae + lsls r1, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl FlagSet +_081D1338: + pop {r0} + bx r0 + .align 2, 0 +_081D133C: .4byte 0x02037280 + thumb_func_end SetMatchCallRegisteredFlag + diff --git a/asm/pokenav_match_call_ui.s b/asm/pokenav_match_call_ui.s new file mode 100644 index 0000000..5a1a82c --- /dev/null +++ b/asm/pokenav_match_call_ui.s @@ -0,0 +1,2226 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_081C797C +sub_081C797C: @ 0x081C797C + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r5, r1, #0 + adds r7, r2, #0 + ldr r1, _081C79B8 + movs r0, #0x11 + bl AllocSubstruct + adds r4, r0, #0 + cmp r4, #0 + beq _081C79C4 + ldr r1, _081C79BC + adds r0, r4, r1 + adds r1, r5, #0 + bl sub_081C8914 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r5, #0 + adds r3, r7, #0 + bl sub_081C8960 + cmp r0, #0 + beq _081C79C4 + ldr r0, _081C79C0 + movs r1, #6 + bl CreateLoopedTask + movs r0, #1 + b _081C79C6 + .align 2, 0 +_081C79B8: .4byte 0x000008A4 +_081C79BC: .4byte 0x00000888 +_081C79C0: .4byte 0x081C79FD +_081C79C4: + movs r0, #0 +_081C79C6: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_081C797C + + thumb_func_start sub_081C79CC +sub_081C79CC: @ 0x081C79CC + push {lr} + ldr r0, _081C79D8 + bl FuncIsActiveLoopedTask + pop {r1} + bx r1 + .align 2, 0 +_081C79D8: .4byte 0x081C79FD + thumb_func_end sub_081C79CC + + thumb_func_start sub_081C79DC +sub_081C79DC: @ 0x081C79DC + push {r4, lr} + movs r0, #0x11 + bl GetSubstructPtr + adds r4, r0, #0 + bl sub_081C8794 + ldrb r0, [r4, #8] + bl RemoveWindow + movs r0, #0x11 + bl FreePokenavSubstruct + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_081C79DC + + thumb_func_start LoopedTask_sub_81C8254 +LoopedTask_sub_81C8254: @ 0x081C79FC + push {r4, lr} + adds r4, r0, #0 + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081C7A68 + movs r0, #0x11 + bl GetSubstructPtr + adds r2, r0, #0 + cmp r4, #4 + bhi _081C7A7E + lsls r0, r4, #2 + ldr r1, _081C7A20 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081C7A20: .4byte 0x081C7A24 +_081C7A24: @ jump table + .4byte _081C7A38 @ case 0 + .4byte _081C7A42 @ case 1 + .4byte _081C7A4C @ case 2 + .4byte _081C7A60 @ case 3 + .4byte _081C7A74 @ case 4 +_081C7A38: + adds r0, r2, #0 + bl sub_081C7A8C + movs r0, #0 + b _081C7A80 +_081C7A42: + adds r0, r2, #0 + bl sub_081C7B04 + movs r0, #0 + b _081C7A80 +_081C7A4C: + ldr r1, _081C7A5C + adds r0, r2, r1 + adds r1, r2, #0 + bl sub_081C7B24 + movs r0, #0 + b _081C7A80 + .align 2, 0 +_081C7A5C: .4byte 0x00000888 +_081C7A60: + bl sub_081C7B88 + cmp r0, #0 + beq _081C7A6C +_081C7A68: + movs r0, #2 + b _081C7A80 +_081C7A6C: + bl sub_081C867C + movs r0, #1 + b _081C7A80 +_081C7A74: + ldr r1, _081C7A88 + adds r0, r2, r1 + adds r1, r2, #0 + bl sub_081C86A4 +_081C7A7E: + movs r0, #4 +_081C7A80: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081C7A88: .4byte 0x00000888 + thumb_func_end LoopedTask_sub_81C8254 + + thumb_func_start sub_081C7A8C +sub_081C7A8C: @ 0x081C7A8C + push {r4, r5, lr} + sub sp, #8 + adds r5, r0, #0 + ldrb r4, [r5, #1] + lsls r4, r4, #0xc + ldrh r0, [r5, #6] + orrs r4, r0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldrb r0, [r5] + ldrh r2, [r5, #6] + movs r1, #0x11 + movs r3, #1 + bl sub_08199A88 + ldrb r0, [r5] + ldrh r2, [r5, #6] + adds r2, #1 + movs r1, #0x44 + movs r3, #1 + bl sub_08199A88 + ldrb r0, [r5] + adds r1, r5, #0 + adds r1, #0x88 + bl SetBgTilemapBuffer + ldrb r0, [r5] + movs r1, #0x20 + str r1, [sp] + str r1, [sp, #4] + adds r1, r4, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + ldrb r0, [r5] + movs r1, #0 + movs r2, #0 + bl ChangeBgY + ldrb r0, [r5] + movs r1, #0 + movs r2, #0 + bl ChangeBgX + ldrb r0, [r5] + ldrb r1, [r5, #3] + lsls r1, r1, #0xb + movs r2, #2 + bl ChangeBgY + ldrb r0, [r5] + bl CopyBgTilemapBufferToVram + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081C7A8C + + thumb_func_start sub_081C7B04 +sub_081C7B04: @ 0x081C7B04 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #8] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldrb r0, [r4, #8] + bl PutWindowTilemap + ldrb r0, [r4, #8] + movs r1, #1 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_081C7B04 + + thumb_func_start sub_081C7B24 +sub_081C7B24: @ 0x081C7B24 + push {r4, r5, lr} + sub sp, #8 + adds r3, r0, #0 + adds r5, r1, #0 + ldrh r0, [r3, #2] + ldrh r4, [r3] + subs r2, r0, r4 + ldrh r0, [r3, #8] + cmp r2, r0 + ble _081C7B3A + adds r2, r0, #0 +_081C7B3A: + ldr r0, [r3, #0x10] + ldr r3, [r3, #0xc] + movs r1, #0 + str r1, [sp] + str r5, [sp, #4] + adds r1, r4, #0 + bl sub_081C7B54 + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081C7B24 + + thumb_func_start sub_081C7B54 +sub_081C7B54: @ 0x081C7B54 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, [sp, #0x10] + cmp r2, #0 + beq _081C7B7E + adds r0, r5, #0 + muls r0, r3, r0 + adds r0, r4, r0 + str r0, [r1, #0x1c] + str r3, [r1, #0x18] + movs r0, #0 + strh r0, [r1, #0xc] + strh r2, [r1, #0xe] + str r5, [r1, #0x14] + ldr r0, [sp, #0xc] + str r0, [r1, #0x10] + ldr r0, _081C7B84 + movs r1, #5 + bl CreateLoopedTask +_081C7B7E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C7B84: .4byte 0x081C7B99 + thumb_func_end sub_081C7B54 + + thumb_func_start sub_081C7B88 +sub_081C7B88: @ 0x081C7B88 + push {lr} + ldr r0, _081C7B94 + bl FuncIsActiveLoopedTask + pop {r1} + bx r1 + .align 2, 0 +_081C7B94: .4byte 0x081C7B99 + thumb_func_end sub_081C7B88 + + thumb_func_start LoopedTask_sub_81C83F0 +LoopedTask_sub_81C83F0: @ 0x081C7B98 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + adds r6, r0, #0 + movs r0, #0x11 + bl GetSubstructPtr + adds r4, r0, #0 + cmp r6, #0 + beq _081C7BB0 + cmp r6, #1 + beq _081C7C34 + b _081C7C42 +_081C7BB0: + ldrh r0, [r4, #0xa] + ldrh r1, [r4, #0xc] + adds r0, r0, r1 + ldr r1, [r4, #0x10] + adds r5, r0, r1 + movs r0, #0xf + ands r5, r0 + ldr r0, [r4, #0x1c] + adds r7, r4, #0 + adds r7, #0x48 + ldr r2, [r4, #0x34] + adds r1, r7, #0 + bl _call_via_r2 + ldr r3, [r4, #0x38] + cmp r3, #0 + beq _081C7BDC + ldrh r0, [r4, #8] + ldr r1, [r4, #0x14] + adds r2, r5, #0 + bl _call_via_r3 +_081C7BDC: + ldrb r0, [r4, #8] + lsls r1, r5, #4 + movs r2, #2 + orrs r1, r2 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + str r6, [sp, #8] + movs r1, #1 + adds r2, r7, #0 + movs r3, #0 + bl AddTextPrinterParameterized + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrh r1, [r4, #0xe] + cmp r0, r1 + blo _081C7C22 + ldr r0, [r4, #0x38] + cmp r0, #0 + beq _081C7C16 + ldrb r0, [r4, #8] + movs r1, #3 + bl CopyWindowToVram + b _081C7C1E +_081C7C16: + ldrb r0, [r4, #8] + movs r1, #2 + bl CopyWindowToVram +_081C7C1E: + movs r0, #0 + b _081C7C44 +_081C7C22: + ldr r0, [r4, #0x1c] + ldr r1, [r4, #0x18] + adds r0, r0, r1 + str r0, [r4, #0x1c] + ldr r0, [r4, #0x14] + adds r0, #1 + str r0, [r4, #0x14] + movs r0, #3 + b _081C7C44 +_081C7C34: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081C7C42 + movs r0, #2 + b _081C7C44 +_081C7C42: + movs r0, #4 +_081C7C44: + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end LoopedTask_sub_81C83F0 + + thumb_func_start ShouldShowUpArrow +ShouldShowUpArrow: @ 0x081C7C4C + push {lr} + movs r0, #0x11 + bl GetSubstructPtr + ldr r1, _081C7C64 + adds r0, r0, r1 + ldrh r1, [r0] + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + pop {r1} + bx r1 + .align 2, 0 +_081C7C64: .4byte 0x00000888 + thumb_func_end ShouldShowUpArrow + + thumb_func_start ShouldShowDownArrow +ShouldShowDownArrow: @ 0x081C7C68 + push {lr} + movs r0, #0x11 + bl GetSubstructPtr + ldr r1, _081C7C8C + adds r0, r0, r1 + movs r3, #0 + ldrh r1, [r0] + ldrh r2, [r0, #8] + adds r1, r1, r2 + ldrh r0, [r0, #2] + cmp r1, r0 + bge _081C7C84 + movs r3, #1 +_081C7C84: + adds r0, r3, #0 + pop {r1} + bx r1 + .align 2, 0 +_081C7C8C: .4byte 0x00000888 + thumb_func_end ShouldShowDownArrow + + thumb_func_start MatchCall_MoveWindow +MatchCall_MoveWindow: @ 0x081C7C90 + push {r4, r5, r6, r7, lr} + sub sp, #8 + adds r6, r0, #0 + adds r4, r1, #0 + movs r0, #0x11 + bl GetSubstructPtr + adds r7, r0, #0 + ldr r0, _081C7CC8 + adds r5, r7, r0 + cmp r6, #0 + bge _081C7CCC + ldrh r1, [r5] + adds r0, r1, r6 + cmp r0, #0 + bge _081C7CB2 + rsbs r6, r1, #0 +_081C7CB2: + cmp r4, #0 + beq _081C7CF6 + ldr r0, [r5, #0x10] + adds r1, r1, r6 + rsbs r2, r6, #0 + ldr r3, [r5, #0xc] + str r6, [sp] + str r7, [sp, #4] + bl sub_081C7B54 + b _081C7CF6 + .align 2, 0 +_081C7CC8: .4byte 0x00000888 +_081C7CCC: + cmp r4, #0 + beq _081C7CF6 + ldr r2, _081C7D0C + ldrh r1, [r5] + ldrh r0, [r5, #8] + adds r4, r1, r0 + str r4, [r2] + adds r0, r4, r6 + ldrh r1, [r5, #2] + cmp r0, r1 + blt _081C7CE4 + subs r6, r1, r4 +_081C7CE4: + ldr r0, [r5, #0x10] + ldr r3, [r5, #0xc] + ldrh r1, [r5, #8] + str r1, [sp] + str r7, [sp, #4] + adds r1, r4, #0 + adds r2, r6, #0 + bl sub_081C7B54 +_081C7CF6: + adds r0, r6, #0 + adds r1, r7, #0 + bl sub_081C7D10 + ldrh r0, [r5] + adds r0, r0, r6 + strh r0, [r5] + add sp, #8 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C7D0C: .4byte 0x0203CC10 + thumb_func_end MatchCall_MoveWindow + + thumb_func_start sub_081C7D10 +sub_081C7D10: @ 0x081C7D10 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + ldrb r0, [r4] + bl GetBgY + str r0, [r4, #0x20] + lsls r1, r5, #0xc + adds r0, r0, r1 + str r0, [r4, #0x24] + cmp r5, #0 + ble _081C7D2C + movs r0, #1 + b _081C7D2E +_081C7D2C: + movs r0, #2 +_081C7D2E: + str r0, [r4, #0x30] + str r5, [r4, #0x2c] + ldr r0, _081C7D44 + movs r1, #6 + bl CreateLoopedTask + str r0, [r4, #0x28] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C7D44: .4byte 0x081C7D49 + thumb_func_end sub_081C7D10 + + thumb_func_start LoopedTask_sub_81C85A0 +LoopedTask_sub_81C85A0: @ 0x081C7D48 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #0x11 + bl GetSubstructPtr + adds r4, r0, #0 + cmp r5, #0 + beq _081C7D60 + cmp r5, #1 + beq _081C7D6C + movs r0, #4 + b _081C7DD2 +_081C7D60: + bl sub_081C7B88 + cmp r0, #0 + bne _081C7DD0 + movs r0, #1 + b _081C7DD2 +_081C7D6C: + movs r6, #0 + ldrb r0, [r4] + bl GetBgY + adds r5, r0, #0 + ldrb r0, [r4] + movs r1, #0x80 + lsls r1, r1, #4 + ldr r2, [r4, #0x30] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + bl ChangeBgY + adds r1, r0, #0 + ldr r0, [r4, #0x30] + cmp r0, #2 + bne _081C7DA0 + ldr r2, [r4, #0x24] + cmp r5, r2 + bgt _081C7D9A + ldr r0, [r4, #0x20] + cmp r5, r0 + bgt _081C7DB2 +_081C7D9A: + cmp r1, r2 + bgt _081C7DB2 + b _081C7DB6 +_081C7DA0: + ldr r2, [r4, #0x24] + cmp r5, r2 + blt _081C7DAC + ldr r0, [r4, #0x20] + cmp r5, r0 + blt _081C7DB2 +_081C7DAC: + cmp r1, r2 + blt _081C7DB2 + movs r6, #1 +_081C7DB2: + cmp r6, #0 + beq _081C7DD0 +_081C7DB6: + ldr r1, [r4, #0x2c] + ldrh r0, [r4, #0xa] + adds r0, r0, r1 + movs r1, #0xf + ands r0, r1 + strh r0, [r4, #0xa] + ldrb r0, [r4] + adds r1, r2, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #4 + b _081C7DD2 +_081C7DD0: + movs r0, #2 +_081C7DD2: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end LoopedTask_sub_81C85A0 + + thumb_func_start sub_081C7DD8 +sub_081C7DD8: @ 0x081C7DD8 + push {lr} + movs r0, #0x11 + bl GetSubstructPtr + ldr r0, [r0, #0x28] + bl IsLoopedTaskActive + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081C7DD8 + + thumb_func_start GetMatchCallWindowStruct +GetMatchCallWindowStruct: @ 0x081C7DEC + push {lr} + movs r0, #0x11 + bl GetSubstructPtr + ldr r1, _081C7DFC + adds r0, r0, r1 + pop {r1} + bx r1 + .align 2, 0 +_081C7DFC: .4byte 0x00000888 + thumb_func_end GetMatchCallWindowStruct + + thumb_func_start MatchCall_MoveCursorUp +MatchCall_MoveCursorUp: @ 0x081C7E00 + push {lr} + bl GetMatchCallWindowStruct + adds r1, r0, #0 + ldrh r0, [r1, #6] + cmp r0, #0 + beq _081C7E16 + subs r0, #1 + strh r0, [r1, #6] + movs r0, #1 + b _081C7E2E +_081C7E16: + bl ShouldShowUpArrow + cmp r0, #0 + bne _081C7E22 + movs r0, #0 + b _081C7E2E +_081C7E22: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #1 + bl MatchCall_MoveWindow + movs r0, #2 +_081C7E2E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MatchCall_MoveCursorUp + + thumb_func_start MatchCall_MoveCursorDown +MatchCall_MoveCursorDown: @ 0x081C7E34 + push {lr} + bl GetMatchCallWindowStruct + adds r2, r0, #0 + ldrh r1, [r2] + ldrh r3, [r2, #6] + adds r1, r1, r3 + ldrh r0, [r2, #2] + subs r0, #1 + cmp r1, r0 + bge _081C7E62 + ldrh r0, [r2, #8] + subs r0, #1 + cmp r3, r0 + bge _081C7E5A + adds r0, r3, #1 + strh r0, [r2, #6] + movs r0, #1 + b _081C7E70 +_081C7E5A: + bl ShouldShowDownArrow + cmp r0, #0 + bne _081C7E66 +_081C7E62: + movs r0, #0 + b _081C7E70 +_081C7E66: + movs r0, #1 + movs r1, #1 + bl MatchCall_MoveWindow + movs r0, #2 +_081C7E70: + pop {r1} + bx r1 + thumb_func_end MatchCall_MoveCursorDown + + thumb_func_start MatchCall_PageUp +MatchCall_PageUp: @ 0x081C7E74 + push {r4, lr} + bl GetMatchCallWindowStruct + adds r4, r0, #0 + bl ShouldShowUpArrow + adds r1, r0, #0 + cmp r1, #0 + beq _081C7EA0 + ldrh r0, [r4] + ldrh r1, [r4, #8] + cmp r0, r1 + blo _081C7E92 + ldrh r0, [r4, #8] + b _081C7E94 +_081C7E92: + ldrh r0, [r4] +_081C7E94: + rsbs r0, r0, #0 + movs r1, #1 + bl MatchCall_MoveWindow + movs r0, #2 + b _081C7EAE +_081C7EA0: + ldrh r0, [r4, #6] + cmp r0, #0 + bne _081C7EAA + movs r0, #0 + b _081C7EAE +_081C7EAA: + strh r1, [r4, #6] + movs r0, #1 +_081C7EAE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end MatchCall_PageUp + + thumb_func_start MatchCall_PageDown +MatchCall_PageDown: @ 0x081C7EB4 + push {r4, lr} + bl GetMatchCallWindowStruct + adds r4, r0, #0 + bl ShouldShowDownArrow + cmp r0, #0 + beq _081C7EDE + ldrh r0, [r4] + ldrh r3, [r4, #8] + adds r2, r0, r3 + ldrh r1, [r4, #4] + subs r0, r1, r0 + cmp r2, r1 + bgt _081C7ED4 + adds r0, r3, #0 +_081C7ED4: + movs r1, #1 + bl MatchCall_MoveWindow + movs r0, #2 + b _081C7EFE +_081C7EDE: + ldrh r0, [r4, #2] + ldrh r1, [r4, #8] + cmp r0, r1 + blo _081C7EEC + ldrh r1, [r4, #6] + ldrh r0, [r4, #8] + b _081C7EF0 +_081C7EEC: + ldrh r1, [r4, #6] + ldrh r0, [r4, #2] +_081C7EF0: + subs r0, #1 + cmp r1, r0 + bge _081C7EFC + strh r0, [r4, #6] + movs r0, #1 + b _081C7EFE +_081C7EFC: + movs r0, #0 +_081C7EFE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end MatchCall_PageDown + + thumb_func_start GetSelectedMatchCall +GetSelectedMatchCall: @ 0x081C7F04 + push {lr} + bl GetMatchCallWindowStruct + adds r1, r0, #0 + ldrh r0, [r1] + ldrh r1, [r1, #6] + adds r0, r0, r1 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetSelectedMatchCall + + thumb_func_start GetMatchCallListTopIndex +GetMatchCallListTopIndex: @ 0x081C7F18 + push {lr} + bl GetMatchCallWindowStruct + ldrh r0, [r0] + pop {r1} + bx r1 + thumb_func_end GetMatchCallListTopIndex + + thumb_func_start sub_081C7F24 +sub_081C7F24: @ 0x081C7F24 + push {r4, lr} + movs r0, #0x11 + bl GetSubstructPtr + adds r4, r0, #0 + ldr r0, _081C7F4C + adds r1, r4, r0 + movs r0, #0 + str r0, [r1] + ldr r0, _081C7F50 + movs r1, #6 + bl CreateLoopedTask + movs r1, #0x8a + lsls r1, r1, #4 + adds r4, r4, r1 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C7F4C: .4byte 0x0000089C +_081C7F50: .4byte 0x081C8019 + thumb_func_end sub_081C7F24 + + thumb_func_start sub_081C7F54 +sub_081C7F54: @ 0x081C7F54 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + movs r0, #0x11 + bl GetSubstructPtr + adds r5, r0, #0 + ldr r0, _081C7F8C + adds r1, r5, r0 + ldrh r0, [r1] + adds r0, r0, r4 + movs r2, #0 + strh r0, [r1] + ldr r1, _081C7F90 + adds r0, r5, r1 + str r2, [r0] + ldr r0, _081C7F94 + movs r1, #6 + bl CreateLoopedTask + movs r1, #0x8a + lsls r1, r1, #4 + adds r5, r5, r1 + str r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C7F8C: .4byte 0x00000888 +_081C7F90: .4byte 0x0000089C +_081C7F94: .4byte 0x081C8101 + thumb_func_end sub_081C7F54 + + thumb_func_start sub_081C7F98 +sub_081C7F98: @ 0x081C7F98 + push {r4, lr} + movs r0, #0x11 + bl GetSubstructPtr + adds r4, r0, #0 + ldr r0, _081C7FC0 + adds r1, r4, r0 + movs r0, #0 + str r0, [r1] + ldr r0, _081C7FC4 + movs r1, #6 + bl CreateLoopedTask + movs r1, #0x8a + lsls r1, r1, #4 + adds r4, r4, r1 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C7FC0: .4byte 0x0000089C +_081C7FC4: .4byte 0x081C81D1 + thumb_func_end sub_081C7F98 + + thumb_func_start sub_081C7FC8 +sub_081C7FC8: @ 0x081C7FC8 + push {lr} + movs r0, #0x11 + bl GetSubstructPtr + movs r1, #0x8a + lsls r1, r1, #4 + adds r0, r0, r1 + ldr r0, [r0] + bl IsLoopedTaskActive + pop {r1} + bx r1 + thumb_func_end sub_081C7FC8 + + thumb_func_start sub_081C7FE0 +sub_081C7FE0: @ 0x081C7FE0 + push {r4, lr} + movs r0, #0x11 + bl GetSubstructPtr + adds r4, r0, #0 + ldr r0, _081C8014 + adds r2, r4, r0 + ldrh r0, [r4, #8] + ldrh r1, [r2] + ldrh r3, [r2, #6] + adds r1, r1, r3 + ldrh r2, [r4, #0xa] + adds r2, r2, r3 + movs r3, #0xf + ands r2, r3 + ldr r3, [r4, #0x38] + bl _call_via_r3 + ldrb r0, [r4, #8] + movs r1, #1 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C8014: .4byte 0x00000888 + thumb_func_end sub_081C7FE0 + + thumb_func_start LoopedTask_sub_81C8870 +LoopedTask_sub_81C8870: @ 0x081C8018 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x11 + bl GetSubstructPtr + adds r4, r0, #0 + cmp r5, #4 + bhi _081C80F4 + lsls r0, r5, #2 + ldr r1, _081C8034 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081C8034: .4byte 0x081C8038 +_081C8038: @ jump table + .4byte _081C804C @ case 0 + .4byte _081C8054 @ case 1 + .4byte _081C8080 @ case 2 + .4byte _081C80C0 @ case 3 + .4byte _081C80E0 @ case 4 +_081C804C: + adds r0, r4, #0 + movs r1, #1 + bl ToggleMatchCallArrows +_081C8054: + ldr r0, _081C8078 + adds r5, r4, r0 + ldr r1, _081C807C + adds r0, r4, r1 + ldr r1, [r5] + ldrh r0, [r0] + cmp r1, r0 + beq _081C806C + adds r0, r4, #0 + movs r2, #1 + bl sub_081C8318 +_081C806C: + ldr r0, [r5] + adds r0, #1 + str r0, [r5] +_081C8072: + movs r0, #0 + b _081C80F6 + .align 2, 0 +_081C8078: .4byte 0x0000089C +_081C807C: .4byte 0x0000088E +_081C8080: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081C80EA + ldr r2, _081C80A0 + adds r0, r4, r2 + subs r2, #0xc + adds r1, r4, r2 + ldr r3, [r0] + ldrh r1, [r1] + cmp r3, r1 + beq _081C80A4 + movs r0, #6 + b _081C80F6 + .align 2, 0 +_081C80A0: .4byte 0x0000089C +_081C80A4: + ldr r0, _081C80BC + adds r1, r4, r0 + ldrh r0, [r1] + cmp r0, #0 + beq _081C8072 + adds r2, r0, #0 + adds r0, r4, #0 + adds r1, r3, #0 + bl sub_081C8318 + b _081C8072 + .align 2, 0 +_081C80BC: .4byte 0x0000088E +_081C80C0: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081C80EA + ldr r2, _081C80DC + adds r1, r4, r2 + ldrh r0, [r1] + cmp r0, #0 + beq _081C80F4 + movs r1, #0 + bl MatchCall_MoveWindow + b _081C8072 + .align 2, 0 +_081C80DC: .4byte 0x0000088E +_081C80E0: + bl sub_081C7DD8 + adds r1, r0, #0 + cmp r1, #0 + beq _081C80EE +_081C80EA: + movs r0, #2 + b _081C80F6 +_081C80EE: + ldr r2, _081C80FC + adds r0, r4, r2 + strh r1, [r0] +_081C80F4: + movs r0, #4 +_081C80F6: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081C80FC: .4byte 0x0000088E + thumb_func_end LoopedTask_sub_81C8870 + + thumb_func_start LoopedTask_sub_81C8958 +LoopedTask_sub_81C8958: @ 0x081C8100 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x11 + bl GetSubstructPtr + adds r4, r0, #0 + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081C811A + movs r0, #2 + b _081C81CA +_081C811A: + cmp r5, #7 + bhi _081C81C4 + lsls r0, r5, #2 + ldr r1, _081C8128 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081C8128: .4byte 0x081C812C +_081C812C: @ jump table + .4byte _081C814C @ case 0 + .4byte _081C815C @ case 1 + .4byte _081C8166 @ case 2 + .4byte _081C8178 @ case 3 + .4byte _081C8182 @ case 4 + .4byte _081C8194 @ case 5 + .4byte _081C819E @ case 6 + .4byte _081C81B0 @ case 7 +_081C814C: + ldr r1, _081C8158 + adds r0, r4, r1 + adds r1, r4, #0 + bl sub_081C845C + b _081C81C8 + .align 2, 0 +_081C8158: .4byte 0x00000888 +_081C815C: + adds r0, r4, #0 + movs r1, #0 + bl PrintMatchCallFieldNames + b _081C81C8 +_081C8166: + ldr r1, _081C8174 + adds r0, r4, r1 + adds r1, r4, #0 + movs r2, #0 + bl sub_081C85FC + b _081C81C8 + .align 2, 0 +_081C8174: .4byte 0x00000888 +_081C8178: + adds r0, r4, #0 + movs r1, #1 + bl PrintMatchCallFieldNames + b _081C81C8 +_081C8182: + ldr r1, _081C8190 + adds r0, r4, r1 + adds r1, r4, #0 + movs r2, #1 + bl sub_081C85FC + b _081C81C8 + .align 2, 0 +_081C8190: .4byte 0x00000888 +_081C8194: + adds r0, r4, #0 + movs r1, #2 + bl PrintMatchCallFieldNames + b _081C81C8 +_081C819E: + ldr r1, _081C81AC + adds r0, r4, r1 + adds r1, r4, #0 + movs r2, #2 + bl sub_081C85FC + b _081C81C8 + .align 2, 0 +_081C81AC: .4byte 0x00000888 +_081C81B0: + ldr r1, _081C81C0 + adds r0, r4, r1 + adds r1, r4, #0 + movs r2, #3 + bl sub_081C85FC + b _081C81C8 + .align 2, 0 +_081C81C0: .4byte 0x00000888 +_081C81C4: + movs r0, #4 + b _081C81CA +_081C81C8: + movs r0, #0 +_081C81CA: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end LoopedTask_sub_81C8958 + + thumb_func_start LoopedTask_sub_81C8A28 +LoopedTask_sub_81C8A28: @ 0x081C81D0 + push {r4, r5, r6, r7, lr} + sub sp, #8 + adds r5, r0, #0 + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081C824E + movs r0, #0x11 + bl GetSubstructPtr + adds r4, r0, #0 + ldr r0, _081C8200 + adds r6, r4, r0 + adds r2, r4, #0 + cmp r5, #6 + bls _081C81F4 + b _081C830C +_081C81F4: + lsls r0, r5, #2 + ldr r1, _081C8204 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081C8200: .4byte 0x00000888 +_081C8204: .4byte 0x081C8208 +_081C8208: @ jump table + .4byte _081C8224 @ case 0 + .4byte _081C8230 @ case 1 + .4byte _081C8290 @ case 2 + .4byte _081C82A4 @ case 3 + .4byte _081C82BC @ case 4 + .4byte _081C82DC @ case 5 + .4byte _081C8304 @ case 6 +_081C8224: + adds r0, r6, #0 + adds r1, r2, #0 + bl sub_081C84F4 + movs r0, #0 + b _081C830E +_081C8230: + ldr r1, _081C8254 + adds r7, r4, r1 + ldr r0, [r7] + adds r1, r0, #1 + str r1, [r7] + movs r3, #0x89 + lsls r3, r3, #4 + adds r0, r4, r3 + ldrh r0, [r0] + cmp r1, r0 + bge _081C8258 + adds r0, r2, #0 + movs r2, #1 + bl sub_081C8318 +_081C824E: + movs r0, #2 + b _081C830E + .align 2, 0 +_081C8254: .4byte 0x0000089C +_081C8258: + movs r0, #0 + str r0, [r7] + ldrh r0, [r6, #2] + ldrh r1, [r6, #8] + cmp r0, r1 + bhi _081C826E + ldrh r0, [r6] + cmp r0, #0 + beq _081C82FA + adds r4, r0, #0 + b _081C827C +_081C826E: + ldrh r1, [r6] + ldrh r0, [r6, #8] + adds r4, r1, r0 + ldrh r1, [r6, #2] + cmp r4, r1 + ble _081C82FA + subs r4, r4, r1 +_081C827C: + rsbs r5, r4, #0 + adds r0, r2, #0 + adds r1, r5, #0 + adds r2, r4, #0 + bl sub_081C8318 + strh r4, [r6, #6] + str r5, [r7] + movs r0, #0 + b _081C830E +_081C8290: + ldr r2, _081C82A0 + adds r0, r4, r2 + ldr r0, [r0] + movs r1, #0 + bl MatchCall_MoveWindow + movs r0, #0 + b _081C830E + .align 2, 0 +_081C82A0: .4byte 0x0000089C +_081C82A4: + bl sub_081C7DD8 + adds r1, r0, #0 + cmp r1, #0 + bne _081C824E + ldr r3, _081C82B8 + adds r0, r4, r3 + str r1, [r0] +_081C82B4: + movs r0, #1 + b _081C830E + .align 2, 0 +_081C82B8: .4byte 0x0000089C +_081C82BC: + ldr r0, [r6, #0x10] + ldrh r1, [r6] + ldr r3, _081C82D8 + adds r2, r4, r3 + ldr r2, [r2] + adds r1, r1, r2 + ldr r3, [r6, #0xc] + str r2, [sp] + str r4, [sp, #4] + movs r2, #1 + bl sub_081C7B54 + movs r0, #0 + b _081C830E + .align 2, 0 +_081C82D8: .4byte 0x0000089C +_081C82DC: + bl sub_081C7B88 + cmp r0, #0 + bne _081C824E + ldr r0, _081C8300 + adds r1, r4, r0 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + ldrh r1, [r6, #2] + cmp r0, r1 + bge _081C82B4 + ldrh r6, [r6, #8] + cmp r0, r6 + bge _081C82B4 +_081C82FA: + movs r0, #9 + b _081C830E + .align 2, 0 +_081C8300: .4byte 0x0000089C +_081C8304: + adds r0, r2, #0 + movs r1, #0 + bl ToggleMatchCallArrows +_081C830C: + movs r0, #4 +_081C830E: + add sp, #8 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end LoopedTask_sub_81C8A28 + + thumb_func_start sub_081C8318 +sub_081C8318: @ 0x081C8318 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + mov sb, r0 + adds r7, r1, #0 + adds r6, r2, #0 + ldrb r0, [r0, #8] + movs r1, #7 + bl GetWindowAttribute + mov sl, r0 + mov r1, sb + ldrb r0, [r1, #4] + lsls r3, r0, #6 + ldrh r0, [r1, #0xa] + adds r7, r0, r7 + movs r0, #0xf + ands r7, r0 + adds r0, r7, r6 + cmp r0, #0x10 + bgt _081C837C + ldr r0, _081C8374 + str r0, [sp] + adds r1, r7, #0 + muls r1, r3, r1 + add r1, sl + adds r2, r6, #0 + muls r2, r3, r2 + lsrs r2, r2, #2 + ldr r0, _081C8378 + ands r2, r0 + movs r0, #0x80 + lsls r0, r0, #0x11 + orrs r2, r0 + mov r0, sp + bl CpuFastSet + mov r1, sb + ldrb r0, [r1, #8] + movs r1, #2 + bl CopyWindowToVram + b _081C83C6 + .align 2, 0 +_081C8374: .4byte 0x11111111 +_081C8378: .4byte 0x001FFFFF +_081C837C: + movs r2, #0x10 + subs r2, r2, r7 + subs r0, r6, r2 + mov r8, r0 + ldr r1, _081C8404 + str r1, [sp, #4] + add r0, sp, #4 + adds r1, r7, #0 + muls r1, r3, r1 + add r1, sl + muls r2, r3, r2 + lsrs r2, r2, #2 + ldr r5, _081C8408 + ands r2, r5 + movs r4, #0x80 + lsls r4, r4, #0x11 + orrs r2, r4 + str r3, [sp, #0xc] + bl CpuFastSet + ldr r0, _081C8404 + str r0, [sp, #8] + add r0, sp, #8 + ldr r3, [sp, #0xc] + mov r2, r8 + muls r2, r3, r2 + lsrs r2, r2, #2 + ands r2, r5 + orrs r2, r4 + mov r1, sl + bl CpuFastSet + mov r1, sb + ldrb r0, [r1, #8] + movs r1, #2 + bl CopyWindowToVram +_081C83C6: + subs r6, #1 + movs r0, #1 + rsbs r0, r0, #0 + cmp r6, r0 + beq _081C83E8 + movs r5, #0xf + adds r4, r0, #0 +_081C83D4: + mov r1, sb + ldrh r0, [r1, #8] + adds r1, r7, #0 + bl sub_081CB4B8 + adds r7, #1 + ands r7, r5 + subs r6, #1 + cmp r6, r4 + bne _081C83D4 +_081C83E8: + mov r1, sb + ldrb r0, [r1, #8] + movs r1, #1 + bl CopyWindowToVram + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C8404: .4byte 0x11111111 +_081C8408: .4byte 0x001FFFFF + thumb_func_end sub_081C8318 + + thumb_func_start sub_081C840C +sub_081C840C: @ 0x081C840C + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + ldrb r0, [r5, #8] + movs r1, #0 + bl GetWindowAttribute + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBgTilemapBuffer + adds r2, r0, #0 + ldrh r0, [r5, #0xa] + lsls r0, r0, #6 + ldrb r1, [r5, #2] + adds r0, r0, r1 + lsls r0, r0, #1 + subs r0, #2 + adds r2, r2, r0 + cmp r4, #0 + beq _081C8440 + ldrb r0, [r5, #1] + lsls r0, r0, #0xc + ldrh r1, [r5, #6] + adds r1, #1 + b _081C8446 +_081C8440: + ldrb r0, [r5, #1] + lsls r0, r0, #0xc + ldrh r1, [r5, #6] +_081C8446: + orrs r0, r1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + strh r1, [r2] + adds r0, r2, #0 + adds r0, #0x40 + strh r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081C840C + + thumb_func_start sub_081C845C +sub_081C845C: @ 0x081C845C + push {r4, r5, r6, lr} + sub sp, #0x10 + adds r5, r0, #0 + adds r4, r1, #0 + ldr r1, _081C84F0 + add r0, sp, #0xc + movs r2, #3 + bl memcpy + ldrh r1, [r5] + ldr r0, [r5, #0xc] + muls r1, r0, r1 + ldr r0, [r5, #0x10] + adds r0, r0, r1 + adds r6, r4, #0 + adds r6, #0x48 + ldr r2, [r4, #0x34] + adds r1, r6, #0 + bl _call_via_r2 + thumb_func_end sub_081C845C + + thumb_func_start sub_081C8484 +sub_081C8484: @ 0x081C8484 + ldrh r0, [r4, #8] + ldrh r1, [r5] + ldrh r2, [r4, #0xa] + ldr r3, [r4, #0x38] + bl _call_via_r3 + ldrb r0, [r4, #8] + ldrh r3, [r4, #0xa] + lsls r3, r3, #0x14 + lsrs r3, r3, #0x10 + ldrb r1, [r4, #4] + lsls r1, r1, #3 + str r1, [sp] + movs r1, #0x10 + str r1, [sp, #4] + movs r1, #0x44 + movs r2, #0 + bl FillWindowPixelRect + ldrb r0, [r4, #8] + ldrh r3, [r4, #0xa] + lsls r3, r3, #4 + adds r3, #2 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + add r1, sp, #0xc + str r1, [sp] + movs r1, #1 + rsbs r1, r1, #0 + str r1, [sp, #4] + str r6, [sp, #8] + movs r1, #1 + movs r2, #0 + bl AddTextPrinterParameterized3 + adds r0, r4, #0 + movs r1, #1 + bl sub_081C840C + ldrh r0, [r4, #8] + ldrh r3, [r4, #0xa] + lsls r3, r3, #1 + ldrb r1, [r4, #4] + str r1, [sp] + movs r1, #2 + str r1, [sp, #4] + movs r1, #3 + movs r2, #0 + bl CopyWindowRectToVram + add sp, #0x10 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081C84F0: .4byte 0x085F15A8 + thumb_func_end sub_081C8484 + + thumb_func_start sub_081C84F4 +sub_081C84F4: @ 0x081C84F4 + push {r4, r5, lr} + sub sp, #0xc + adds r4, r1, #0 + ldrh r2, [r0] + ldr r1, [r0, #0xc] + muls r1, r2, r1 + ldr r0, [r0, #0x10] + adds r0, r0, r1 + adds r5, r4, #0 + adds r5, #0x48 + ldr r2, [r4, #0x34] + adds r1, r5, #0 + bl _call_via_r2 + thumb_func_end sub_081C84F4 + + thumb_func_start sub_081C8510 +sub_081C8510: @ 0x081C8510 + ldrb r0, [r4, #8] + ldrh r3, [r4, #0xa] + lsls r3, r3, #0x14 + lsrs r3, r3, #0x10 + ldrb r1, [r4, #4] + lsls r1, r1, #3 + str r1, [sp] + movs r1, #0x10 + str r1, [sp, #4] + movs r1, #0x11 + movs r2, #0 + bl FillWindowPixelRect + ldrb r0, [r4, #8] + ldrh r1, [r4, #0xa] + lsls r1, r1, #4 + adds r1, #2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + adds r2, r5, #0 + movs r3, #0 + bl AddTextPrinterParameterized + adds r0, r4, #0 + movs r1, #0 + bl sub_081C840C + ldrb r0, [r4, #8] + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081C8510 + + thumb_func_start PrintMatchCallFieldNames +PrintMatchCallFieldNames: @ 0x081C8564 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #0x1c + adds r6, r0, #0 + mov r8, r1 + add r1, sp, #0xc + ldr r0, _081C85F4 + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + add r0, sp, #0x18 + mov sb, r0 + ldr r1, _081C85F8 + movs r2, #3 + bl memcpy + ldrh r4, [r6, #0xa] + mov r1, r8 + lsls r0, r1, #1 + adds r0, #1 + adds r4, r4, r0 + movs r0, #0xf + ands r4, r0 + ldrb r0, [r6, #8] + lsls r5, r4, #4 + adds r3, r5, #0 + ldrb r1, [r6, #4] + str r1, [sp] + movs r1, #0x10 + str r1, [sp, #4] + movs r1, #0x11 + movs r2, #0 + bl FillWindowPixelRect + ldrb r0, [r6, #8] + movs r1, #2 + orrs r5, r1 + mov r2, sb + str r2, [sp] + subs r1, #3 + str r1, [sp, #4] + mov r3, r8 + lsls r3, r3, #2 + mov r8, r3 + mov r1, sp + add r1, r8 + adds r1, #0xc + ldr r1, [r1] + str r1, [sp, #8] + movs r1, #1 + movs r2, #0 + adds r3, r5, #0 + bl AddTextPrinterParameterized3 + ldrh r0, [r6, #8] + lsls r4, r4, #1 + ldrb r1, [r6, #4] + str r1, [sp] + movs r1, #2 + str r1, [sp, #4] + movs r2, #0 + adds r3, r4, #0 + bl CopyWindowRectToVram + add sp, #0x1c + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081C85F4: .4byte 0x085F15AC +_081C85F8: .4byte 0x085F15B8 + thumb_func_end PrintMatchCallFieldNames + + thumb_func_start sub_081C85FC +sub_081C85FC: @ 0x081C85FC + push {r4, r5, r6, r7, lr} + sub sp, #0xc + adds r5, r1, #0 + adds r1, r2, #0 + ldrh r3, [r5, #0xa] + ldr r2, _081C8630 + adds r2, r1, r2 + ldrb r2, [r2] + adds r7, r3, r2 + movs r2, #0xf + ands r7, r2 + ldrh r0, [r0] + bl sub_081CA77C + adds r6, r0, #0 + cmp r6, #0 + beq _081C8634 + adds r4, r5, #0 + adds r4, #0x48 + ldrb r3, [r5, #4] + adds r0, r4, #0 + adds r1, r6, #0 + movs r2, #0 + bl StringCopyPadded + b _081C8642 + .align 2, 0 +_081C8630: .4byte 0x085F15BB +_081C8634: + adds r4, r5, #0 + adds r4, #0x48 + ldrb r2, [r5, #4] + adds r0, r4, #0 + movs r1, #0 + bl StringFill +_081C8642: + cmp r6, #0 + beq _081C8674 + ldrb r0, [r5, #8] + lsls r1, r7, #4 + movs r2, #2 + orrs r1, r2 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + adds r2, r4, #0 + movs r3, #0 + bl AddTextPrinterParameterized + ldrh r0, [r5, #8] + lsls r3, r7, #1 + ldrb r1, [r5, #4] + str r1, [sp] + movs r1, #2 + str r1, [sp, #4] + movs r2, #0 + bl CopyWindowRectToVram +_081C8674: + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_081C85FC + + thumb_func_start sub_081C867C +sub_081C867C: @ 0x081C867C + push {r4, r5, lr} + movs r5, #0 + ldr r4, _081C869C +_081C8682: + adds r0, r4, #0 + bl LoadCompressedSpriteSheet + adds r4, #8 + adds r5, #1 + cmp r5, #0 + beq _081C8682 + ldr r0, _081C86A0 + bl Pokenav_AllocAndLoadPalettes + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C869C: .4byte 0x085F15C0 +_081C86A0: .4byte 0x085F15C8 + thumb_func_end sub_081C867C + + thumb_func_start sub_081C86A4 +sub_081C86A4: @ 0x081C86A4 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r0, _081C8774 + ldrb r1, [r5, #2] + lsls r1, r1, #0x13 + ldr r2, _081C8778 + adds r1, r1, r2 + asrs r1, r1, #0x10 + ldrb r2, [r5, #3] + adds r2, #1 + lsls r2, r2, #3 + movs r3, #7 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r0, r3, #4 + adds r0, r0, r3 + lsls r0, r0, #2 + ldr r3, _081C877C + mov r8, r3 + add r0, r8 + str r0, [r5, #0x3c] + ldrb r6, [r5, #2] + lsls r6, r6, #3 + ldrb r0, [r5, #4] + subs r0, #1 + lsls r0, r0, #2 + ldr r1, _081C8780 + mov sl, r1 + adds r6, r6, r0 + ldrb r2, [r5, #3] + lsls r2, r2, #3 + ldrh r0, [r4, #8] + lsls r0, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + mov r0, sl + adds r1, r6, #0 + movs r3, #7 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r2, r3, #4 + adds r2, r2, r3 + lsls r2, r2, #2 + add r2, r8 + str r2, [r5, #0x44] + ldrh r3, [r2, #4] + lsls r1, r3, #0x16 + lsrs r1, r1, #0x16 + adds r1, #2 + ldr r0, _081C8784 + mov sb, r0 + mov r0, sb + ands r1, r0 + ldr r4, _081C8788 + adds r0, r4, #0 + ands r0, r3 + orrs r0, r1 + strh r0, [r2, #4] + ldr r1, [r5, #0x44] + ldr r0, _081C878C + str r0, [r1, #0x1c] + ldrb r2, [r5, #3] + lsls r2, r2, #3 + mov r0, sl + adds r1, r6, #0 + movs r3, #7 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r1, r3, #4 + adds r1, r1, r3 + lsls r1, r1, #2 + add r1, r8 + str r1, [r5, #0x40] + ldrh r2, [r1, #4] + lsls r0, r2, #0x16 + lsrs r0, r0, #0x16 + adds r0, #4 + mov r3, sb + ands r0, r3 + ands r4, r2 + orrs r4, r0 + strh r4, [r1, #4] + ldr r1, [r5, #0x40] + ldr r0, _081C8790 + str r0, [r1, #0x1c] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081C8774: .4byte 0x085F15E0 +_081C8778: .4byte 0xFFFC0000 +_081C877C: .4byte 0x020205AC +_081C8780: .4byte 0x085F1600 +_081C8784: .4byte 0x000003FF +_081C8788: .4byte 0xFFFFFC00 +_081C878C: .4byte 0x081C8855 +_081C8790: .4byte 0x081C88A9 + thumb_func_end sub_081C86A4 + + thumb_func_start sub_081C8794 +sub_081C8794: @ 0x081C8794 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x3c] + bl DestroySprite + ldr r0, [r4, #0x40] + bl DestroySprite + ldr r0, [r4, #0x44] + bl DestroySprite + movs r0, #0xa + bl FreeSpriteTilesByTag + movs r0, #0x14 + bl FreeSpritePaletteByTag + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_081C8794 + + thumb_func_start ToggleMatchCallArrows +ToggleMatchCallArrows: @ 0x081C87BC + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + cmp r4, #0 + beq _081C87DC + ldr r2, [r5, #0x3c] + ldr r1, _081C87D8 + str r1, [r2, #0x1c] + ldr r0, [r5, #0x40] + str r1, [r0, #0x1c] + ldr r0, [r5, #0x44] + str r1, [r0, #0x1c] + b _081C87EE + .align 2, 0 +_081C87D8: .4byte 0x08007141 +_081C87DC: + ldr r2, [r5, #0x3c] + ldr r0, _081C8828 + str r0, [r2, #0x1c] + ldr r1, [r5, #0x40] + ldr r0, _081C882C + str r0, [r1, #0x1c] + ldr r1, [r5, #0x44] + ldr r0, _081C8830 + str r0, [r1, #0x1c] +_081C87EE: + adds r3, r2, #0 + adds r3, #0x3e + movs r0, #1 + ands r4, r0 + lsls r4, r4, #2 + ldrb r2, [r3] + movs r1, #5 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + orrs r0, r4 + strb r0, [r3] + ldr r2, [r5, #0x40] + adds r2, #0x3e + ldrb r3, [r2] + adds r0, r1, #0 + ands r0, r3 + orrs r0, r4 + strb r0, [r2] + ldr r0, [r5, #0x44] + adds r0, #0x3e + ldrb r2, [r0] + ands r1, r2 + orrs r1, r4 + strb r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C8828: .4byte 0x081C8835 +_081C882C: .4byte 0x081C88A9 +_081C8830: .4byte 0x081C8855 + thumb_func_end ToggleMatchCallArrows + + thumb_func_start SpriteCB_MatchCallRightArrow +SpriteCB_MatchCallRightArrow: @ 0x081C8834 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x11 + bl GetSubstructPtr + ldr r1, _081C8850 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #4 + strh r0, [r4, #0x26] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C8850: .4byte 0x0000088E + thumb_func_end SpriteCB_MatchCallRightArrow + + thumb_func_start SpriteCB_MatchCallDownArrow +SpriteCB_MatchCallDownArrow: @ 0x081C8854 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x3c + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _081C8876 + bl ShouldShowDownArrow + cmp r0, #0 + beq _081C8876 + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + b _081C8880 +_081C8876: + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 +_081C8880: + strb r0, [r2] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + ble _081C88A0 + movs r0, #0 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x30] + adds r0, #1 + movs r1, #7 + ands r0, r1 + strh r0, [r4, #0x30] + strh r0, [r4, #0x26] +_081C88A0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SpriteCB_MatchCallDownArrow + + thumb_func_start SpriteCB_MatchCallUpArrow +SpriteCB_MatchCallUpArrow: @ 0x081C88A8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x3c + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _081C88CA + bl ShouldShowUpArrow + cmp r0, #0 + beq _081C88CA + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + b _081C88D4 +_081C88CA: + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 +_081C88D4: + strb r0, [r2] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + ble _081C88F6 + movs r0, #0 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x30] + adds r0, #1 + movs r1, #7 + ands r0, r1 + strh r0, [r4, #0x30] + rsbs r0, r0, #0 + strh r0, [r4, #0x26] +_081C88F6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end SpriteCB_MatchCallUpArrow + + thumb_func_start ToggleMatchCallVerticalArrows +ToggleMatchCallVerticalArrows: @ 0x081C88FC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x11 + bl GetSubstructPtr + ldr r1, [r0, #0x40] + strh r4, [r1, #0x3c] + ldr r0, [r0, #0x44] + strh r4, [r0, #0x3c] + pop {r4} + pop {r0} + bx r0 + thumb_func_end ToggleMatchCallVerticalArrows + + thumb_func_start sub_081C8914 +sub_081C8914: @ 0x081C8914 + push {r4, r5, lr} + adds r2, r0, #0 + ldr r0, [r1] + str r0, [r2, #0x10] + ldrh r4, [r1, #6] + movs r5, #0 + strh r4, [r2] + ldrh r3, [r1, #4] + strh r3, [r2, #2] + ldrb r0, [r1, #8] + str r0, [r2, #0xc] + ldrb r1, [r1, #0xc] + strh r1, [r2, #8] + lsls r0, r3, #0x10 + lsrs r0, r0, #0x10 + cmp r1, r0 + blo _081C893E + strh r5, [r2] + strh r5, [r2, #4] + strh r4, [r2, #6] + b _081C895A +_081C893E: + subs r0, r3, r1 + strh r0, [r2, #4] + ldrh r1, [r2] + ldrh r0, [r2, #8] + adds r1, r1, r0 + ldrh r0, [r2, #2] + cmp r1, r0 + ble _081C8958 + subs r0, r1, r0 + strh r0, [r2, #6] + subs r0, r4, r0 + strh r0, [r2] + b _081C895A +_081C8958: + strh r5, [r2, #6] +_081C895A: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_081C8914 + + thumb_func_start sub_081C8960 +sub_081C8960: @ 0x081C8960 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + adds r7, r0, #0 + ldr r4, [r1] + lsls r4, r4, #0x1e + lsrs r0, r4, #0x1e + movs r1, #0 + mov r8, r1 + strb r0, [r7] + strh r3, [r7, #6] + ldr r0, [r2, #0x10] + str r0, [r7, #0x34] + ldr r0, [r2, #0x14] + str r0, [r7, #0x38] + ldrb r5, [r2, #0xd] + strb r5, [r7, #1] + ldrb r1, [r2, #9] + strb r1, [r7, #2] + ldrb r0, [r2, #0xb] + strb r0, [r7, #3] + ldrb r2, [r2, #0xa] + strb r2, [r7, #4] + lsrs r4, r4, #0x1e + ldr r6, _081C89F0 + ldr r0, [sp] + ands r0, r6 + orrs r0, r4 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x10 + ldr r4, _081C89F4 + ands r0, r4 + orrs r0, r1 + ldr r1, _081C89F8 + ands r0, r1 + lsls r2, r2, #0x18 + ldr r1, _081C89FC + ands r0, r1 + orrs r0, r2 + str r0, [sp] + ldr r0, [sp, #4] + ands r0, r6 + movs r1, #0x20 + orrs r0, r1 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x10 + ands r0, r4 + orrs r0, r5 + adds r3, #2 + lsls r3, r3, #0x10 + ldr r1, _081C8A00 + ands r0, r1 + orrs r0, r3 + str r0, [sp, #4] + mov r0, sp + bl AddWindow + strh r0, [r7, #8] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xff + beq _081C8A04 + mov r0, r8 + strh r0, [r7, #0xa] + mov r1, r8 + str r1, [r7, #0x3c] + str r1, [r7, #0x40] + str r1, [r7, #0x44] + movs r0, #1 + b _081C8A06 + .align 2, 0 +_081C89F0: .4byte 0xFFFFFF00 +_081C89F4: .4byte 0xFFFF00FF +_081C89F8: .4byte 0xFF00FFFF +_081C89FC: .4byte 0x00FFFFFF +_081C8A00: .4byte 0x0000FFFF +_081C8A04: + movs r0, #0 +_081C8A06: + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081C8960 + diff --git a/asm/pokenav_unk_1.s b/asm/pokenav_unk_1.s new file mode 100644 index 0000000..21d3402 --- /dev/null +++ b/asm/pokenav_unk_1.s @@ -0,0 +1,912 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start GetPokenavMainMenuType +GetPokenavMainMenuType: @ 0x081C8A14 + push {r4, lr} + movs r0, #0x98 + lsls r0, r0, #1 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f + ldr r0, _081C8A40 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081C8A36 + movs r4, #2 +_081C8A36: + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081C8A40: .4byte 0x0000089B + thumb_func_end GetPokenavMainMenuType + + thumb_func_start sub_081C8A44 +sub_081C8A44: @ 0x081C8A44 + push {r4, lr} + movs r0, #1 + movs r1, #0x10 + bl AllocSubstruct + adds r4, r0, #0 + cmp r4, #0 + beq _081C8A70 + bl GetPokenavMainMenuType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + strh r0, [r4] + strh r1, [r4, #2] + strh r1, [r4, #4] + strh r1, [r4, #6] + adds r0, r4, #0 + bl sub_081C8B48 + movs r0, #1 + b _081C8A72 +_081C8A70: + movs r0, #0 +_081C8A72: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081C8A44 + + thumb_func_start sub_081C8A78 +sub_081C8A78: @ 0x081C8A78 + push {r4, lr} + movs r0, #1 + movs r1, #0x10 + bl AllocSubstruct + adds r4, r0, #0 + cmp r4, #0 + beq _081C8AA6 + bl GetPokenavMainMenuType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + strh r0, [r4] + movs r0, #2 + strh r0, [r4, #2] + strh r0, [r4, #4] + strh r1, [r4, #6] + adds r0, r4, #0 + bl sub_081C8B48 + movs r0, #1 + b _081C8AA8 +_081C8AA6: + movs r0, #0 +_081C8AA8: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081C8A78 + + thumb_func_start sub_081C8AB0 +sub_081C8AB0: @ 0x081C8AB0 + push {r4, lr} + movs r0, #1 + movs r1, #0x10 + bl AllocSubstruct + adds r4, r0, #0 + cmp r4, #0 + beq _081C8ADA + bl GetPokenavMainMenuType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + movs r0, #3 + strh r0, [r4, #2] + strh r0, [r4, #4] + adds r0, r4, #0 + bl sub_081C8B48 + movs r0, #1 + b _081C8ADC +_081C8ADA: + movs r0, #0 +_081C8ADC: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081C8AB0 + + thumb_func_start sub_081C8AE4 +sub_081C8AE4: @ 0x081C8AE4 + push {lr} + movs r0, #1 + movs r1, #0x10 + bl AllocSubstruct + adds r2, r0, #0 + cmp r2, #0 + beq _081C8B0C + movs r0, #0 + movs r1, #3 + strh r1, [r2] + strh r0, [r2, #2] + movs r1, #5 + strh r1, [r2, #4] + strh r0, [r2, #6] + adds r0, r2, #0 + bl sub_081C8B48 + movs r0, #1 + b _081C8B0E +_081C8B0C: + movs r0, #0 +_081C8B0E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081C8AE4 + + thumb_func_start sub_081C8B14 +sub_081C8B14: @ 0x081C8B14 + push {r4, r5, lr} + movs r0, #1 + movs r1, #0x10 + bl AllocSubstruct + adds r5, r0, #0 + cmp r5, #0 + beq _081C8B40 + movs r4, #0 + movs r0, #4 + strh r0, [r5] + bl sub_081C6E6C + strh r0, [r5, #2] + adds r0, #8 + strh r0, [r5, #4] + strh r4, [r5, #6] + adds r0, r5, #0 + bl sub_081C8B48 + movs r0, #1 + b _081C8B42 +_081C8B40: + movs r0, #0 +_081C8B42: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_081C8B14 + + thumb_func_start sub_081C8B48 +sub_081C8B48: @ 0x081C8B48 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4] + cmp r0, #4 + bhi _081C8B8C + lsls r0, r0, #2 + ldr r1, _081C8B5C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081C8B5C: .4byte 0x081C8B60 +_081C8B60: @ jump table + .4byte _081C8B74 @ case 0 + .4byte _081C8B7A @ case 1 + .4byte _081C8B7A @ case 2 + .4byte _081C8B80 @ case 3 + .4byte _081C8B88 @ case 4 +_081C8B74: + movs r0, #0 + bl SetPokenavMode +_081C8B7A: + bl sub_081C8B98 + b _081C8B8A +_081C8B80: + ldr r0, _081C8B84 + b _081C8B8A + .align 2, 0 +_081C8B84: .4byte 0x081C8DE9 +_081C8B88: + ldr r0, _081C8B94 +_081C8B8A: + str r0, [r4, #0xc] +_081C8B8C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C8B94: .4byte 0x081C8EA9 + thumb_func_end sub_081C8B48 + + thumb_func_start sub_081C8B98 +sub_081C8B98: @ 0x081C8B98 + push {lr} + bl GetPokenavMode + cmp r0, #1 + beq _081C8BB4 + cmp r0, #1 + blo _081C8BAA + cmp r0, #2 + beq _081C8BBC +_081C8BAA: + ldr r0, _081C8BB0 + b _081C8BBE + .align 2, 0 +_081C8BB0: .4byte 0x081C8BE9 +_081C8BB4: + ldr r0, _081C8BB8 + b _081C8BBE + .align 2, 0 +_081C8BB8: .4byte 0x081C8CCD +_081C8BBC: + ldr r0, _081C8BC4 +_081C8BBE: + pop {r1} + bx r1 + .align 2, 0 +_081C8BC4: .4byte 0x081C8D35 + thumb_func_end sub_081C8B98 + + thumb_func_start sub_081C8BC8 +sub_081C8BC8: @ 0x081C8BC8 + push {lr} + movs r0, #1 + bl GetSubstructPtr + ldr r1, [r0, #0xc] + bl _call_via_r1 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081C8BC8 + + thumb_func_start sub_081C8BDC +sub_081C8BDC: @ 0x081C8BDC + push {lr} + movs r0, #1 + bl FreePokenavSubstruct + pop {r0} + bx r0 + thumb_func_end sub_081C8BDC + + thumb_func_start sub_081C8BE8 +sub_081C8BE8: @ 0x081C8BE8 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_081C8FC0 + cmp r0, #0 + beq _081C8BF8 + movs r0, #1 + b _081C8CC6 +_081C8BF8: + ldr r2, _081C8C28 + ldrh r1, [r2, #0x2e] + movs r0, #1 + ands r0, r1 + adds r5, r2, #0 + cmp r0, #0 + beq _081C8CB4 + ldr r3, _081C8C2C + movs r0, #2 + ldrsh r1, [r4, r0] + ldrh r2, [r4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r3 + ldrb r0, [r1] + cmp r0, #4 + bhi _081C8CB4 + lsls r0, r0, #2 + ldr r1, _081C8C30 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081C8C28: .4byte 0x03002360 +_081C8C2C: .4byte 0x085F161D +_081C8C30: .4byte 0x081C8C34 +_081C8C34: @ jump table + .4byte _081C8C48 @ case 0 + .4byte _081C8C68 @ case 1 + .4byte _081C8C80 @ case 2 + .4byte _081C8C8C @ case 3 + .4byte _081C8CC2 @ case 4 +_081C8C48: + ldr r0, _081C8C60 + ldr r0, [r0] + ldrb r1, [r0, #0x15] + movs r0, #8 + ands r0, r1 + movs r1, #1 + cmp r0, #0 + beq _081C8C5A + movs r1, #2 +_081C8C5A: + strh r1, [r4, #6] + ldr r1, _081C8C64 + b _081C8C9A + .align 2, 0 +_081C8C60: .4byte 0x03005AF0 +_081C8C64: .4byte 0x000186A6 +_081C8C68: + movs r1, #0 + movs r0, #3 + strh r0, [r4] + strh r1, [r4, #2] + ldrb r0, [r3, #0x12] + strh r0, [r4, #4] + ldr r0, _081C8C7C + str r0, [r4, #0xc] + movs r0, #2 + b _081C8CC6 + .align 2, 0 +_081C8C7C: .4byte 0x081C8DE9 +_081C8C80: + movs r0, #6 + strh r0, [r4, #6] + ldr r1, _081C8C88 + b _081C8C9A + .align 2, 0 +_081C8C88: .4byte 0x000186AB +_081C8C8C: + bl sub_081C6E78 + cmp r0, #0 + beq _081C8CA8 + movs r0, #9 + strh r0, [r4, #6] + ldr r1, _081C8CA4 +_081C8C9A: + adds r0, r4, #0 + bl sub_081C8F5C + movs r0, #8 + b _081C8CC6 + .align 2, 0 +_081C8CA4: .4byte 0x000186AC +_081C8CA8: + ldr r0, _081C8CB0 + str r0, [r4, #0xc] + movs r0, #6 + b _081C8CC6 + .align 2, 0 +_081C8CB0: .4byte 0x081C8DAD +_081C8CB4: + ldrh r1, [r5, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _081C8CC2 + movs r0, #0 + b _081C8CC6 +_081C8CC2: + movs r0, #1 + rsbs r0, r0, #0 +_081C8CC6: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_081C8BE8 + + thumb_func_start sub_081C8CCC +sub_081C8CCC: @ 0x081C8CCC + push {r4, lr} + adds r4, r0, #0 + bl sub_081C8FC0 + cmp r0, #0 + beq _081C8CDC + movs r0, #1 + b _081C8D2C +_081C8CDC: + ldr r0, _081C8D10 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081C8D1C + ldr r3, _081C8D14 + movs r0, #2 + ldrsh r1, [r4, r0] + ldrh r2, [r4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r3 + ldrb r0, [r1] + cmp r0, #2 + bne _081C8D24 + movs r0, #6 + strh r0, [r4, #6] + ldr r1, _081C8D18 + adds r0, r4, #0 + bl sub_081C8F5C + movs r0, #8 + b _081C8D2C + .align 2, 0 +_081C8D10: .4byte 0x03002360 +_081C8D14: .4byte 0x085F161D +_081C8D18: .4byte 0x000186AB +_081C8D1C: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081C8D2A +_081C8D24: + movs r0, #0x20 + bl PlaySE +_081C8D2A: + movs r0, #0 +_081C8D2C: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081C8CCC + + thumb_func_start sub_081C8D34 +sub_081C8D34: @ 0x081C8D34 + push {r4, lr} + adds r4, r0, #0 + bl sub_081C8FC0 + cmp r0, #0 + beq _081C8D44 + movs r0, #1 + b _081C8DA4 +_081C8D44: + ldr r0, _081C8D78 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081C8D94 + ldr r3, _081C8D7C + movs r0, #2 + ldrsh r1, [r4, r0] + ldrh r2, [r4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r3 + ldrb r0, [r1] + cmp r0, #2 + beq _081C8D80 + cmp r0, #4 + beq _081C8DA0 + movs r0, #0x20 + bl PlaySE + movs r0, #0 + b _081C8DA4 + .align 2, 0 +_081C8D78: .4byte 0x03002360 +_081C8D7C: .4byte 0x085F161D +_081C8D80: + movs r0, #6 + strh r0, [r4, #6] + ldr r1, _081C8D90 + adds r0, r4, #0 + bl sub_081C8F5C + movs r0, #8 + b _081C8DA4 + .align 2, 0 +_081C8D90: .4byte 0x000186AB +_081C8D94: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _081C8DA0 + movs r0, #0 + b _081C8DA4 +_081C8DA0: + movs r0, #1 + rsbs r0, r0, #0 +_081C8DA4: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081C8D34 + + thumb_func_start sub_081C8DAC +sub_081C8DAC: @ 0x081C8DAC + push {r4, lr} + adds r4, r0, #0 + bl sub_081C8FC0 + cmp r0, #0 + beq _081C8DC2 + bl sub_081C8B98 + str r0, [r4, #0xc] + movs r0, #1 + b _081C8DE0 +_081C8DC2: + ldr r0, _081C8DD4 + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _081C8DD8 + movs r0, #0 + b _081C8DE0 + .align 2, 0 +_081C8DD4: .4byte 0x03002360 +_081C8DD8: + bl sub_081C8B98 + str r0, [r4, #0xc] + movs r0, #7 +_081C8DE0: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081C8DAC + + thumb_func_start sub_081C8DE8 +sub_081C8DE8: @ 0x081C8DE8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_081C8FC0 + adds r3, r0, #0 + cmp r3, #0 + beq _081C8DFA + movs r0, #1 + b _081C8EA2 +_081C8DFA: + ldr r2, _081C8E2C + ldrh r1, [r2, #0x2e] + movs r0, #1 + ands r0, r1 + adds r6, r2, #0 + cmp r0, #0 + beq _081C8E64 + ldr r5, _081C8E30 + movs r1, #2 + ldrsh r0, [r4, r1] + ldrh r2, [r4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + adds r0, r0, r1 + adds r0, r0, r5 + ldrb r0, [r0] + cmp r0, #6 + beq _081C8E3A + cmp r0, #6 + bgt _081C8E34 + cmp r0, #5 + beq _081C8E50 + b _081C8E64 + .align 2, 0 +_081C8E2C: .4byte 0x03002360 +_081C8E30: .4byte 0x085F161D +_081C8E34: + cmp r0, #7 + beq _081C8E90 + b _081C8E64 +_081C8E3A: + movs r0, #4 + strh r0, [r4] + strh r3, [r4, #2] + ldrb r0, [r5, #0x18] + strh r0, [r4, #4] + ldr r0, _081C8E4C + str r0, [r4, #0xc] + movs r0, #4 + b _081C8EA2 + .align 2, 0 +_081C8E4C: .4byte 0x081C8EA9 +_081C8E50: + strh r3, [r4, #6] + ldr r1, _081C8E60 + adds r0, r4, #0 + bl sub_081C8F5C + movs r0, #8 + b _081C8EA2 + .align 2, 0 +_081C8E60: .4byte 0x000186A7 +_081C8E64: + ldrh r1, [r6, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081C8EA0 + movs r0, #2 + ldrsh r2, [r4, r0] + ldr r1, _081C8E88 + ldrh r0, [r4] + adds r0, r0, r1 + ldrb r0, [r0] + cmp r2, r0 + beq _081C8E90 + strh r0, [r4, #2] + ldr r0, _081C8E8C + str r0, [r4, #0xc] + movs r0, #1 + b _081C8EA2 + .align 2, 0 +_081C8E88: .4byte 0x085F1618 +_081C8E8C: .4byte 0x081C8F45 +_081C8E90: + movs r0, #5 + bl PlaySE + adds r0, r4, #0 + bl sub_081C8F6C + movs r0, #3 + b _081C8EA2 +_081C8EA0: + movs r0, #0 +_081C8EA2: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_081C8DE8 + + thumb_func_start sub_081C8EA8 +sub_081C8EA8: @ 0x081C8EA8 + push {r4, lr} + adds r4, r0, #0 + bl sub_081C8FC0 + cmp r0, #0 + beq _081C8EB8 + movs r0, #1 + b _081C8F3E +_081C8EB8: + ldr r0, _081C8EF4 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081C8F00 + ldr r3, _081C8EF8 + movs r0, #2 + ldrsh r1, [r4, r0] + ldrh r2, [r4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r3 + ldrb r0, [r1] + cmp r0, #0xd + beq _081C8F2C + subs r0, #8 + bl sub_081C6E54 + ldr r1, _081C8EFC + adds r0, r4, #0 + bl sub_081C8F5C + movs r0, #3 + strh r0, [r4, #6] + movs r0, #8 + b _081C8F3E + .align 2, 0 +_081C8EF4: .4byte 0x03002360 +_081C8EF8: .4byte 0x085F161D +_081C8EFC: .4byte 0x000186A8 +_081C8F00: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081C8F3C + movs r0, #2 + ldrsh r2, [r4, r0] + ldr r1, _081C8F24 + ldrh r0, [r4] + adds r0, r0, r1 + ldrb r0, [r0] + cmp r2, r0 + beq _081C8F2C + strh r0, [r4, #2] + ldr r0, _081C8F28 + str r0, [r4, #0xc] + movs r0, #1 + b _081C8F3E + .align 2, 0 +_081C8F24: .4byte 0x085F1618 +_081C8F28: .4byte 0x081C8F51 +_081C8F2C: + movs r0, #5 + bl PlaySE + adds r0, r4, #0 + bl sub_081C8FA4 + movs r0, #5 + b _081C8F3E +_081C8F3C: + movs r0, #0 +_081C8F3E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081C8EA8 + + thumb_func_start sub_081C8F44 +sub_081C8F44: @ 0x081C8F44 + push {lr} + bl sub_081C8F6C + movs r0, #3 + pop {r1} + bx r1 + thumb_func_end sub_081C8F44 + + thumb_func_start sub_081C8F50 +sub_081C8F50: @ 0x081C8F50 + push {lr} + bl sub_081C8FA4 + movs r0, #5 + pop {r1} + bx r1 + thumb_func_end sub_081C8F50 + + thumb_func_start sub_081C8F5C +sub_081C8F5C: @ 0x081C8F5C + str r1, [r0, #8] + ldr r1, _081C8F64 + str r1, [r0, #0xc] + bx lr + .align 2, 0 +_081C8F64: .4byte 0x081C8F69 + thumb_func_end sub_081C8F5C + + thumb_func_start sub_081C8F68 +sub_081C8F68: @ 0x081C8F68 + ldr r0, [r0, #8] + bx lr + thumb_func_end sub_081C8F68 + + thumb_func_start sub_081C8F6C +sub_081C8F6C: @ 0x081C8F6C + push {r4, lr} + adds r4, r0, #0 + bl GetPokenavMainMenuType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + movs r0, #1 + strh r0, [r4, #2] + ldr r2, _081C8F9C + ldrh r1, [r4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + strh r0, [r4, #4] + ldr r0, _081C8FA0 + str r0, [r4, #0xc] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C8F9C: .4byte 0x085F161D +_081C8FA0: .4byte 0x081C8BE9 + thumb_func_end sub_081C8F6C + + thumb_func_start sub_081C8FA4 +sub_081C8FA4: @ 0x081C8FA4 + movs r1, #3 + strh r1, [r0] + movs r1, #1 + strh r1, [r0, #2] + ldr r1, _081C8FB8 + ldrb r1, [r1, #0x13] + strh r1, [r0, #4] + ldr r1, _081C8FBC + str r1, [r0, #0xc] + bx lr + .align 2, 0 +_081C8FB8: .4byte 0x085F161D +_081C8FBC: .4byte 0x081C8DE9 + thumb_func_end sub_081C8FA4 + + thumb_func_start sub_081C8FC0 +sub_081C8FC0: @ 0x081C8FC0 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _081C8FEC + ldrh r1, [r0, #0x2e] + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0 + beq _081C8FF4 + ldrh r0, [r4, #2] + subs r0, #1 + strh r0, [r4, #2] + lsls r0, r0, #0x10 + ldrh r3, [r4] + cmp r0, #0 + bge _081C9016 + ldr r0, _081C8FF0 + adds r0, r3, r0 + ldrb r0, [r0] + strh r0, [r4, #2] + b _081C9016 + .align 2, 0 +_081C8FEC: .4byte 0x03002360 +_081C8FF0: .4byte 0x085F1618 +_081C8FF4: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _081C9038 + ldrh r0, [r4, #2] + adds r0, #1 + strh r0, [r4, #2] + movs r0, #2 + ldrsh r2, [r4, r0] + ldr r0, _081C9030 + ldrh r1, [r4] + adds r0, r1, r0 + adds r3, r1, #0 + ldrb r0, [r0] + cmp r2, r0 + ble _081C9016 + strh r5, [r4, #2] +_081C9016: + ldr r2, _081C9034 + movs r0, #2 + ldrsh r1, [r4, r0] + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strh r0, [r4, #4] + movs r0, #1 + b _081C903A + .align 2, 0 +_081C9030: .4byte 0x085F1618 +_081C9034: .4byte 0x085F161D +_081C9038: + movs r0, #0 +_081C903A: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_081C8FC0 + + thumb_func_start sub_081C9040 +sub_081C9040: @ 0x081C9040 + push {lr} + movs r0, #1 + bl GetSubstructPtr + ldrh r0, [r0] + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081C9040 + + thumb_func_start sub_081C9050 +sub_081C9050: @ 0x081C9050 + push {lr} + movs r0, #1 + bl GetSubstructPtr + movs r1, #2 + ldrsh r0, [r0, r1] + pop {r1} + bx r1 + thumb_func_end sub_081C9050 + + thumb_func_start sub_081C9060 +sub_081C9060: @ 0x081C9060 + push {lr} + movs r0, #1 + bl GetSubstructPtr + ldrh r0, [r0, #4] + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081C9060 + + thumb_func_start sub_081C9070 +sub_081C9070: @ 0x081C9070 + push {lr} + movs r0, #1 + bl GetSubstructPtr + ldrh r0, [r0, #6] + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081C9070 + diff --git a/asm/pokenav_unk_10.s b/asm/pokenav_unk_10.s new file mode 100644 index 0000000..74c09f0 --- /dev/null +++ b/asm/pokenav_unk_10.s @@ -0,0 +1,2312 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_081CFB00 +sub_081CFB00: @ 0x081CFB00 + push {r4, lr} + movs r0, #0xd + movs r1, #0x9c + bl AllocSubstruct + adds r4, r0, #0 + cmp r4, #0 + beq _081CFB48 + movs r0, #0x12 + bl GetSubstructPtr + str r0, [r4, #8] + cmp r0, #0 + beq _081CFB48 + adds r0, r4, #0 + bl sub_081CFEC4 + adds r1, r4, #0 + adds r1, #0x98 + ldr r0, _081CFB3C + str r0, [r1] + ldr r1, _081CFB40 + movs r0, #3 + strh r0, [r1] + ldr r1, _081CFB44 + movs r0, #0xa + strh r0, [r1] + movs r0, #1 + b _081CFB4A + .align 2, 0 +_081CFB3C: .4byte 0x081CFB75 +_081CFB40: .4byte 0x0300279C +_081CFB44: .4byte 0x03002350 +_081CFB48: + movs r0, #0 +_081CFB4A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081CFB00 + + thumb_func_start sub_081CFB50 +sub_081CFB50: @ 0x081CFB50 + push {lr} + movs r0, #0xd + bl GetSubstructPtr + adds r1, r0, #0 + adds r1, #0x98 + ldr r1, [r1] + bl _call_via_r1 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CFB50 + + thumb_func_start sub_081CFB68 +sub_081CFB68: @ 0x081CFB68 + push {lr} + movs r0, #0xd + bl FreePokenavSubstruct + pop {r0} + bx r0 + thumb_func_end sub_081CFB68 + + thumb_func_start sub_081CFB74 +sub_081CFB74: @ 0x081CFB74 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _081CFB90 + ldrh r1, [r2, #0x30] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _081CFB94 + ldr r3, [r4, #8] + ldrh r0, [r3, #2] + cmp r0, #0 + beq _081CFB94 + subs r0, #1 + b _081CFBAC + .align 2, 0 +_081CFB90: .4byte 0x03002360 +_081CFB94: + ldrh r1, [r2, #0x30] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _081CFBBC + ldr r3, [r4, #8] + ldrh r1, [r3, #2] + ldrh r0, [r3] + subs r0, #1 + cmp r1, r0 + bge _081CFBBC + adds r0, r1, #1 +_081CFBAC: + movs r1, #0 + strh r0, [r3, #2] + strh r1, [r4, #0xc] + adds r0, r4, #0 + bl sub_081CFEC4 + movs r0, #1 + b _081CFBEE +_081CFBBC: + ldrh r2, [r2, #0x2e] + movs r0, #1 + ands r0, r2 + cmp r0, #0 + beq _081CFBD8 + adds r1, r4, #0 + adds r1, #0x98 + ldr r0, _081CFBD4 + str r0, [r1] + movs r0, #2 + b _081CFBEE + .align 2, 0 +_081CFBD4: .4byte 0x081CFBF9 +_081CFBD8: + movs r0, #2 + ands r0, r2 + cmp r0, #0 + bne _081CFBE4 + movs r0, #0 + b _081CFBEE +_081CFBE4: + adds r1, r4, #0 + adds r1, #0x98 + ldr r0, _081CFBF4 + str r0, [r1] + movs r0, #5 +_081CFBEE: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081CFBF4: .4byte 0x081CFC85 + thumb_func_end sub_081CFB74 + + thumb_func_start sub_081CFBF8 +sub_081CFBF8: @ 0x081CFBF8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _081CFC58 + ldrh r1, [r0, #0x30] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _081CFC12 + adds r0, r4, #0 + bl sub_081CFC8C + cmp r0, #0 + bne _081CFC54 +_081CFC12: + ldr r0, _081CFC58 + ldrh r1, [r0, #0x30] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _081CFC28 + adds r0, r4, #0 + bl sub_081CFCCC + cmp r0, #0 + bne _081CFC54 +_081CFC28: + ldr r0, _081CFC58 + ldrh r1, [r0, #0x30] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _081CFC3E + adds r0, r4, #0 + bl sub_081CFD14 + cmp r0, #0 + bne _081CFC54 +_081CFC3E: + ldr r0, _081CFC58 + ldrh r1, [r0, #0x30] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _081CFC5C + adds r0, r4, #0 + bl sub_081CFD38 + cmp r0, #0 + beq _081CFC5C +_081CFC54: + movs r0, #3 + b _081CFC7A + .align 2, 0 +_081CFC58: .4byte 0x03002360 +_081CFC5C: + ldr r0, _081CFC6C + ldrh r1, [r0, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _081CFC70 + movs r0, #0 + b _081CFC7A + .align 2, 0 +_081CFC6C: .4byte 0x03002360 +_081CFC70: + adds r1, r4, #0 + adds r1, #0x98 + ldr r0, _081CFC80 + str r0, [r1] + movs r0, #4 +_081CFC7A: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081CFC80: .4byte 0x081CFB75 + thumb_func_end sub_081CFBF8 + + thumb_func_start sub_081CFC84 +sub_081CFC84: @ 0x081CFC84 + ldr r0, _081CFC88 + bx lr + .align 2, 0 +_081CFC88: .4byte 0x000186AE + thumb_func_end sub_081CFC84 + + thumb_func_start sub_081CFC8C +sub_081CFC8C: @ 0x081CFC8C + push {r4, lr} + adds r1, r0, #0 + ldrh r0, [r1, #0xc] + adds r2, r0, #0 + cmp r2, #0x18 + bhi _081CFCA0 + cmp r2, #8 + bls _081CFCC2 + subs r0, #9 + b _081CFCBC +_081CFCA0: + ldrh r3, [r1, #0x10] + adds r2, r3, #0 + cmp r2, #0 + beq _081CFCC2 + ldrh r0, [r1, #0xc] + subs r0, #0x1b + ldrh r4, [r1, #0xe] + adds r0, r0, r4 + strh r0, [r1, #0xc] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r2 + blo _081CFCBE + subs r0, r3, #1 +_081CFCBC: + strh r0, [r1, #0xc] +_081CFCBE: + movs r0, #1 + b _081CFCC4 +_081CFCC2: + movs r0, #0 +_081CFCC4: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CFC8C + + thumb_func_start sub_081CFCCC +sub_081CFCCC: @ 0x081CFCCC + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0xc] + adds r1, r0, #0 + cmp r1, #0x18 + bhi _081CFD0C + ldrh r3, [r2, #0xe] + cmp r1, r3 + bhs _081CFCF0 + adds r0, #9 + strh r0, [r2, #0xc] + ldrh r1, [r2, #0x10] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r1 + blo _081CFD08 + subs r0, r1, #1 + b _081CFD06 +_081CFCF0: + ldrh r0, [r2, #0x12] + cmp r0, #0 + beq _081CFD0C + ldrh r1, [r2, #0xc] + ldrh r0, [r2, #0xe] + subs r0, r1, r0 + ldrh r1, [r2, #0x12] + cmp r0, r1 + blt _081CFD04 + subs r0, r1, #1 +_081CFD04: + adds r0, #0x1b +_081CFD06: + strh r0, [r2, #0xc] +_081CFD08: + movs r0, #1 + b _081CFD0E +_081CFD0C: + movs r0, #0 +_081CFD0E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CFCCC + + thumb_func_start sub_081CFD14 +sub_081CFD14: @ 0x081CFD14 + push {r4, r5, lr} + adds r5, r0, #0 + ldrh r4, [r5, #0xc] + adds r0, r4, #0 + movs r1, #9 + bl __umodsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _081CFD2C + movs r0, #0 + b _081CFD32 +_081CFD2C: + subs r0, r4, #1 + strh r0, [r5, #0xc] + movs r0, #1 +_081CFD32: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_081CFD14 + + thumb_func_start sub_081CFD38 +sub_081CFD38: @ 0x081CFD38 + push {r4, r5, lr} + adds r5, r0, #0 + ldrh r4, [r5, #0xc] + adds r0, r4, #0 + movs r1, #9 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #7 + bgt _081CFD6C + cmp r4, #0x1a + bhi _081CFD5C + ldrh r0, [r5, #0x10] + subs r0, #1 + cmp r4, r0 + bge _081CFD6C + b _081CFD64 +_081CFD5C: + ldrh r0, [r5, #0x12] + subs r0, #1 + cmp r1, r0 + bge _081CFD6C +_081CFD64: + adds r0, r4, #1 + strh r0, [r5, #0xc] + movs r0, #1 + b _081CFD6E +_081CFD6C: + movs r0, #0 +_081CFD6E: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_081CFD38 + + thumb_func_start sub_081CFD74 +sub_081CFD74: @ 0x081CFD74 + push {lr} + movs r0, #0xd + bl GetSubstructPtr + ldr r0, [r0, #8] + ldrh r0, [r0, #2] + pop {r1} + bx r1 + thumb_func_end sub_081CFD74 + + thumb_func_start sub_081CFD84 +sub_081CFD84: @ 0x081CFD84 + push {lr} + movs r0, #0xd + bl GetSubstructPtr + ldr r0, [r0, #8] + ldrh r0, [r0] + pop {r1} + bx r1 + thumb_func_end sub_081CFD84 + + thumb_func_start GetCurrMonInfo1 +GetCurrMonInfo1: @ 0x081CFD94 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r7, r1, #0 + adds r6, r2, #0 + movs r0, #0xd + bl GetSubstructPtr + ldr r1, [r0, #8] + ldrh r0, [r1, #2] + lsls r0, r0, #2 + adds r0, #4 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0xe + bne _081CFDE0 + ldrb r1, [r1, #1] + movs r0, #0x64 + adds r4, r1, #0 + muls r4, r0, r4 + ldr r0, _081CFDDC + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #2 + adds r2, r5, #0 + bl GetMonData + adds r0, r4, #0 + bl GetLevelFromMonExp + strb r0, [r7] + adds r0, r4, #0 + bl GetMonGender + strb r0, [r6] + b _081CFE02 + .align 2, 0 +_081CFDDC: .4byte 0x02024190 +_081CFDE0: + ldrb r0, [r1] + ldrb r1, [r1, #1] + bl GetBoxedMonPtr + adds r4, r0, #0 + bl GetBoxMonGender + strb r0, [r6] + adds r0, r4, #0 + bl GetLevelFromBoxMonExp + strb r0, [r7] + adds r0, r4, #0 + movs r1, #2 + adds r2, r5, #0 + bl GetBoxMonData +_081CFE02: + adds r0, r5, #0 + bl StringGetEnd10 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end GetCurrMonInfo1 + + thumb_func_start GetCurrMonInfo2 +GetCurrMonInfo2: @ 0x081CFE10 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + adds r7, r2, #0 + movs r0, #0xd + bl GetSubstructPtr + ldr r1, [r0, #8] + ldrh r0, [r1, #2] + lsls r0, r0, #2 + adds r0, #4 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0xe + bne _081CFE5C + ldrb r1, [r1, #1] + movs r0, #0x64 + adds r4, r1, #0 + muls r4, r0, r4 + ldr r0, _081CFE58 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + strh r0, [r5] + adds r0, r4, #0 + movs r1, #0 + bl GetMonData + str r0, [r6] + adds r0, r4, #0 + movs r1, #1 + bl GetMonData + b _081CFE80 + .align 2, 0 +_081CFE58: .4byte 0x02024190 +_081CFE5C: + ldrb r0, [r1] + ldrb r1, [r1, #1] + bl GetBoxedMonPtr + adds r4, r0, #0 + movs r1, #0xb + bl GetBoxMonData + strh r0, [r5] + adds r0, r4, #0 + movs r1, #0 + bl GetBoxMonData + str r0, [r6] + adds r0, r4, #0 + movs r1, #1 + bl GetBoxMonData +_081CFE80: + str r0, [r7] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end GetCurrMonInfo2 + + thumb_func_start GetCurrMonRibbonCount +GetCurrMonRibbonCount: @ 0x081CFE88 + push {lr} + movs r0, #0xd + bl GetSubstructPtr + ldr r1, [r0, #8] + ldrh r0, [r1, #2] + lsls r0, r0, #2 + adds r0, #4 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0xe + beq _081CFEAA + ldrb r1, [r1, #1] + movs r2, #0x52 + bl GetBoxMonDataAt + b _081CFEBA +_081CFEAA: + ldrb r1, [r1, #1] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081CFEC0 + adds r0, r0, r1 + movs r1, #0x52 + bl GetMonData +_081CFEBA: + pop {r1} + bx r1 + .align 2, 0 +_081CFEC0: .4byte 0x02024190 + thumb_func_end GetCurrMonRibbonCount + + thumb_func_start sub_081CFEC4 +sub_081CFEC4: @ 0x081CFEC4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r5, r0, #0 + ldr r0, [r5, #8] + ldrh r1, [r0, #2] + lsls r1, r1, #2 + adds r1, #4 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, #0xe + bne _081CFEF8 + ldrb r1, [r1, #1] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081CFEF4 + adds r0, r0, r1 + movs r1, #0x53 + bl GetMonData + b _081CFF02 + .align 2, 0 +_081CFEF4: .4byte 0x02024190 +_081CFEF8: + ldrb r0, [r1] + ldrb r1, [r1, #1] + movs r2, #0x53 + bl GetBoxMonDataAt +_081CFF02: + mov ip, r0 + movs r0, #0 + strh r0, [r5, #0x10] + strh r0, [r5, #0x12] + movs r6, #0 + ldr r0, _081CFF58 + mov sb, r0 + mov sl, sb +_081CFF12: + lsls r2, r6, #2 + mov r3, sb + adds r1, r2, r3 + movs r0, #1 + ldrb r3, [r1] + lsls r0, r3 + subs r4, r0, #1 + mov r0, ip + ands r4, r0 + ldrb r0, [r1, #3] + adds r7, r2, #0 + cmp r0, #0 + bne _081CFF5C + movs r3, #0 + adds r6, #1 + mov r8, r6 + cmp r3, r4 + bge _081CFF86 + adds r6, r5, #0 + adds r6, #0x14 + mov r1, sl + adds r0, r7, r1 + ldrb r2, [r0, #2] +_081CFF40: + ldrh r0, [r5, #0x10] + adds r1, r0, #1 + strh r1, [r5, #0x10] + lsls r0, r0, #0x10 + lsrs r0, r0, #0xe + adds r0, r6, r0 + adds r1, r2, r3 + str r1, [r0] + adds r3, #1 + cmp r3, r4 + blt _081CFF40 + b _081CFF86 + .align 2, 0 +_081CFF58: .4byte 0x085F5E14 +_081CFF5C: + movs r3, #0 + adds r6, #1 + mov r8, r6 + cmp r3, r4 + bge _081CFF86 + adds r6, r5, #0 + adds r6, #0x78 + mov r1, sl + adds r0, r7, r1 + ldrb r2, [r0, #2] +_081CFF70: + ldrh r0, [r5, #0x12] + adds r1, r0, #1 + strh r1, [r5, #0x12] + lsls r0, r0, #0x10 + lsrs r0, r0, #0xe + adds r0, r6, r0 + adds r1, r2, r3 + str r1, [r0] + adds r3, #1 + cmp r3, r4 + blt _081CFF70 +_081CFF86: + mov r3, sb + adds r0, r7, r3 + mov r1, ip + ldrb r0, [r0] + lsrs r1, r0 + mov ip, r1 + mov r6, r8 + cmp r6, #0x10 + bls _081CFF12 + ldrh r0, [r5, #0x10] + cmp r0, #0 + beq _081CFFB0 + subs r0, #1 + movs r1, #9 + bl __divsi3 + lsls r1, r0, #3 + adds r1, r1, r0 + movs r0, #0 + strh r1, [r5, #0xe] + b _081CFFB4 +_081CFFB0: + strh r0, [r5, #0xe] + movs r0, #0x1b +_081CFFB4: + strh r0, [r5, #0xc] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_081CFEC4 + + thumb_func_start sub_081CFFC4 +sub_081CFFC4: @ 0x081CFFC4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0xd + bl GetSubstructPtr + ldrh r1, [r0, #0x10] + str r1, [r4] + adds r0, #0x14 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CFFC4 + + thumb_func_start sub_081CFFDC +sub_081CFFDC: @ 0x081CFFDC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0xd + bl GetSubstructPtr + ldrh r1, [r0, #0x12] + str r1, [r4] + adds r0, #0x78 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CFFDC + + thumb_func_start sub_081CFFF4 +sub_081CFFF4: @ 0x081CFFF4 + push {lr} + movs r0, #0xd + bl GetSubstructPtr + ldrh r0, [r0, #0xc] + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CFFF4 + + thumb_func_start sub_081D0004 +sub_081D0004: @ 0x081D0004 + push {lr} + movs r0, #0xd + bl GetSubstructPtr + adds r1, r0, #0 + ldrh r0, [r1, #0xc] + cmp r0, #0x18 + ble _081D001C + subs r0, #0x1b + lsls r0, r0, #2 + adds r1, #0x78 + b _081D0020 +_081D001C: + lsls r0, r0, #2 + adds r1, #0x14 +_081D0020: + adds r1, r1, r0 + ldr r0, [r1] + pop {r1} + bx r1 + thumb_func_end sub_081D0004 + + thumb_func_start sub_081D0028 +sub_081D0028: @ 0x081D0028 + push {r4, lr} + ldr r1, _081D004C + movs r0, #0xe + bl AllocSubstruct + adds r4, r0, #0 + cmp r4, #0 + beq _081D0058 + ldr r0, _081D0050 + movs r1, #1 + bl CreateLoopedTask + str r0, [r4, #4] + ldr r0, _081D0054 + str r0, [r4] + movs r0, #1 + b _081D005A + .align 2, 0 +_081D004C: .4byte 0x0000101C +_081D0050: .4byte 0x081D011D +_081D0054: .4byte 0x081D0109 +_081D0058: + movs r0, #0 +_081D005A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081D0028 + + thumb_func_start sub_081D0060 +sub_081D0060: @ 0x081D0060 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0xe + bl GetSubstructPtr + adds r5, r0, #0 + ldr r0, _081D0088 + lsls r4, r4, #2 + adds r4, r4, r0 + ldr r0, [r4] + movs r1, #1 + bl CreateLoopedTask + str r0, [r5, #4] + ldr r0, _081D008C + str r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081D0088: .4byte 0x085F721C +_081D008C: .4byte 0x081D0109 + thumb_func_end sub_081D0060 + + thumb_func_start sub_081D0090 +sub_081D0090: @ 0x081D0090 + push {lr} + movs r0, #0xe + bl GetSubstructPtr + ldr r0, [r0] + bl _call_via_r0 + pop {r1} + thumb_func_end sub_081D0090 + + thumb_func_start sub_081D00A0 +sub_081D00A0: @ 0x081D00A0 + bx r1 + .align 2, 0 + thumb_func_end sub_081D00A0 + + thumb_func_start sub_081D00A4 +sub_081D00A4: @ 0x081D00A4 + push {r4, lr} + movs r0, #0xe + bl GetSubstructPtr + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + bl RemoveWindow + ldrb r0, [r4, #8] + bl RemoveWindow + ldrb r0, [r4, #0xc] + bl RemoveWindow + ldrb r0, [r4, #0xe] + bl RemoveWindow + adds r0, r4, #0 + bl sub_081D0894 + movs r0, #9 + bl FreeSpriteTilesByTag + movs r0, #0xf + bl FreeSpritePaletteByTag + movs r0, #0x10 + bl FreeSpritePaletteByTag + movs r0, #0x11 + bl FreeSpritePaletteByTag + movs r0, #0x12 + bl FreeSpritePaletteByTag + movs r0, #0x13 + bl FreeSpritePaletteByTag + ldr r0, [r4, #0x14] + bl FreeSpriteOamMatrix + ldr r0, [r4, #0x14] + bl DestroySprite + movs r0, #0xe + bl FreePokenavSubstruct + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_081D00A4 + + thumb_func_start sub_081D0108 +sub_081D0108: @ 0x081D0108 + push {lr} + movs r0, #0xe + bl GetSubstructPtr + ldr r0, [r0, #4] + bl IsLoopedTaskActive + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081D0108 + + thumb_func_start sub_081D011C +sub_081D011C: @ 0x081D011C + push {r4, r5, lr} + sub sp, #8 + adds r4, r0, #0 + movs r0, #0xe + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #9 + bls _081D0130 + b _081D02F8 +_081D0130: + lsls r0, r4, #2 + ldr r1, _081D013C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081D013C: .4byte 0x081D0140 +_081D0140: @ jump table + .4byte _081D0168 @ case 0 + .4byte _081D01B4 @ case 1 + .4byte _081D0224 @ case 2 + .4byte _081D0238 @ case 3 + .4byte _081D024C @ case 4 + .4byte _081D0260 @ case 5 + .4byte _081D0274 @ case 6 + .4byte _081D0288 @ case 7 + .4byte _081D0298 @ case 8 + .4byte _081D02EC @ case 9 +_081D0168: + ldr r0, _081D01A4 + movs r1, #2 + bl InitBgTemplates + ldr r1, _081D01A8 + movs r0, #0 + str r0, [sp] + movs r0, #2 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + adds r1, r5, #0 + adds r1, #0x1c + movs r0, #2 + bl SetBgTilemapBuffer + ldr r1, _081D01AC + movs r0, #2 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + ldr r0, _081D01B0 + movs r1, #0x10 + movs r2, #0x20 + bl CopyPaletteIntoBufferUnfaded + b _081D026A + .align 2, 0 +_081D01A4: .4byte 0x085F7214 +_081D01A8: .4byte 0x085F64AC +_081D01AC: .4byte 0x085F65A8 +_081D01B0: .4byte 0x085F648C +_081D01B4: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + beq _081D01C2 + b _081D02F4 +_081D01C2: + movs r0, #1 + movs r1, #0 + movs r2, #0 + movs r3, #1 + bl sub_08199A88 + ldr r1, _081D0214 + str r4, [sp] + movs r0, #1 + movs r2, #0 + movs r3, #1 + bl decompress_and_copy_tile_data_to_vram + ldr r0, _081D0218 + adds r1, r5, r0 + movs r0, #1 + bl SetBgTilemapBuffer + movs r0, #0x20 + str r0, [sp] + movs r0, #0x14 + str r0, [sp, #4] + movs r0, #1 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + ldr r0, _081D021C + movs r1, #0x20 + movs r2, #0xa0 + bl CopyPaletteIntoBufferUnfaded + ldr r0, _081D0220 + movs r1, #0xa0 + movs r2, #0x20 + bl CopyPaletteIntoBufferUnfaded + movs r0, #1 + b _081D026C + .align 2, 0 +_081D0214: .4byte 0x085F6734 +_081D0218: .4byte 0x0000081C +_081D021C: .4byte 0x085F6674 +_081D0220: .4byte 0x085F6714 +_081D0224: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081D02F4 + adds r0, r5, #0 + bl sub_081D0510 + movs r0, #0 + b _081D02FA +_081D0238: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081D02F4 + adds r0, r5, #0 + bl sub_081D067C + movs r0, #0 + b _081D02FA +_081D024C: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081D02F4 + adds r0, r5, #0 + bl sub_081D076C + movs r0, #0 + b _081D02FA +_081D0260: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081D02F4 +_081D026A: + movs r0, #2 +_081D026C: + bl CopyBgTilemapBufferToVram + movs r0, #0 + b _081D02FA +_081D0274: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081D02F4 + adds r0, r5, #0 + bl sub_081D0864 + movs r0, #1 + b _081D02FA +_081D0288: + adds r0, r5, #0 + bl sub_081D09F4 + movs r0, #0xa + bl sub_081C7364 + movs r0, #0 + b _081D02FA +_081D0298: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081D02F4 + adds r0, r5, #0 + bl sub_081D0B18 + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl HideBg + movs r0, #1 + bl sub_081C7280 + movs r0, #0 + b _081D02FA +_081D02EC: + bl IsDma3ManagerBusyWithBgCopy_ + cmp r0, #0 + beq _081D02F8 +_081D02F4: + movs r0, #2 + b _081D02FA +_081D02F8: + movs r0, #4 +_081D02FA: + add sp, #8 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081D011C + + thumb_func_start sub_081D0304 +sub_081D0304: @ 0x081D0304 + push {lr} + cmp r0, #0 + beq _081D0310 + cmp r0, #1 + beq _081D0320 + b _081D032C +_081D0310: + movs r0, #5 + bl PlaySE + movs r0, #0 + bl sub_081C7280 + movs r0, #0 + b _081D032E +_081D0320: + bl IsDma3ManagerBusyWithBgCopy_ + cmp r0, #0 + beq _081D032C + movs r0, #2 + b _081D032E +_081D032C: + movs r0, #4 +_081D032E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081D0304 + + thumb_func_start sub_081D0334 +sub_081D0334: @ 0x081D0334 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xe + bl GetSubstructPtr + adds r4, r0, #0 + cmp r5, #6 + bhi _081D03D4 + lsls r0, r5, #2 + ldr r1, _081D0350 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081D0350: .4byte 0x081D0354 +_081D0354: @ jump table + .4byte _081D0370 @ case 0 + .4byte _081D0380 @ case 1 + .4byte _081D0394 @ case 2 + .4byte _081D039E @ case 3 + .4byte _081D03A8 @ case 4 + .4byte _081D03B2 @ case 5 + .4byte _081D03C6 @ case 6 +_081D0370: + movs r0, #5 + bl PlaySE + adds r0, r4, #0 + bl sub_081D08F4 + movs r0, #0 + b _081D03D6 +_081D0380: + adds r0, r4, #0 + bl sub_081D0950 + cmp r0, #0 + bne _081D03D0 + adds r0, r4, #0 + bl sub_081D06A0 + movs r0, #1 + b _081D03D6 +_081D0394: + adds r0, r4, #0 + bl sub_081D09F4 + movs r0, #1 + b _081D03D6 +_081D039E: + adds r0, r4, #0 + bl sub_081D081C + movs r0, #1 + b _081D03D6 +_081D03A8: + adds r0, r4, #0 + bl sub_081D0534 + movs r0, #1 + b _081D03D6 +_081D03B2: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081D03D0 + adds r0, r4, #0 + bl sub_081D0918 + movs r0, #0 + b _081D03D6 +_081D03C6: + adds r0, r4, #0 + bl sub_081D0950 + cmp r0, #0 + beq _081D03D4 +_081D03D0: + movs r0, #2 + b _081D03D6 +_081D03D4: + movs r0, #4 +_081D03D6: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_081D0334 + + thumb_func_start sub_081D03DC +sub_081D03DC: @ 0x081D03DC + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0xe + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #1 + beq _081D040C + cmp r4, #1 + bgt _081D03F6 + cmp r4, #0 + beq _081D03FC + b _081D0434 +_081D03F6: + cmp r4, #2 + beq _081D0426 + b _081D0434 +_081D03FC: + movs r0, #5 + bl PlaySE + adds r0, r5, #0 + bl sub_081D0B64 + movs r0, #0 + b _081D0436 +_081D040C: + adds r0, r5, #0 + bl sub_081D0C40 + cmp r0, #0 + bne _081D0430 + adds r0, r5, #0 + bl sub_081D05AC + movs r0, #0xb + bl sub_081C7364 + movs r0, #0 + b _081D0436 +_081D0426: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D0434 +_081D0430: + movs r0, #2 + b _081D0436 +_081D0434: + movs r0, #4 +_081D0436: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_081D03DC + + thumb_func_start sub_081D043C +sub_081D043C: @ 0x081D043C + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0xe + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #1 + beq _081D0470 + cmp r4, #1 + bgt _081D0456 + cmp r4, #0 + beq _081D0460 + b _081D04A6 +_081D0456: + cmp r4, #2 + beq _081D0484 + cmp r4, #3 + beq _081D0498 + b _081D04A6 +_081D0460: + movs r0, #5 + bl PlaySE + adds r0, r5, #0 + bl sub_081D0C1C + movs r0, #0 + b _081D04A8 +_081D0470: + adds r0, r5, #0 + bl sub_081D0C40 + cmp r0, #0 + bne _081D04A2 + adds r0, r5, #0 + bl sub_081D0B64 + movs r0, #0 + b _081D04A8 +_081D0484: + adds r0, r5, #0 + bl sub_081D0C40 + cmp r0, #0 + bne _081D04A2 + adds r0, r5, #0 + bl sub_081D05AC + movs r0, #0 + b _081D04A8 +_081D0498: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D04A6 +_081D04A2: + movs r0, #2 + b _081D04A8 +_081D04A6: + movs r0, #4 +_081D04A8: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081D043C + + thumb_func_start sub_081D04B0 +sub_081D04B0: @ 0x081D04B0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0xe + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #1 + beq _081D04E0 + cmp r4, #1 + bgt _081D04CA + cmp r4, #0 + beq _081D04D0 + b _081D0508 +_081D04CA: + cmp r4, #2 + beq _081D04FA + b _081D0508 +_081D04D0: + movs r0, #5 + bl PlaySE + adds r0, r5, #0 + bl sub_081D0C1C + movs r0, #0 + b _081D050A +_081D04E0: + adds r0, r5, #0 + bl sub_081D0C40 + cmp r0, #0 + bne _081D0504 + adds r0, r5, #0 + bl sub_081D0534 + movs r0, #0xa + bl sub_081C7364 + movs r0, #0 + b _081D050A +_081D04FA: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D0508 +_081D0504: + movs r0, #2 + b _081D050A +_081D0508: + movs r0, #4 +_081D050A: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_081D04B0 + + thumb_func_start sub_081D0510 +sub_081D0510: @ 0x081D0510 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _081D0530 + bl AddWindow + strh r0, [r4, #0xa] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl PutWindowTilemap + adds r0, r4, #0 + bl sub_081D0534 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D0530: .4byte 0x085F7234 + thumb_func_end sub_081D0510 + + thumb_func_start sub_081D0534 +sub_081D0534: @ 0x081D0534 + push {r4, r5, lr} + sub sp, #0x10 + adds r5, r0, #0 + ldr r1, _081D059C + add r0, sp, #0xc + movs r2, #3 + bl memcpy + ldr r4, _081D05A0 + bl GetCurrMonRibbonCount + adds r1, r0, #0 + adds r0, r4, #0 + movs r2, #0 + movs r3, #2 + bl ConvertIntToDecimalStringN + bl DynamicPlaceholderTextUtil_Reset + movs r0, #0 + adds r1, r4, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + ldr r4, _081D05A4 + ldr r1, _081D05A8 + adds r0, r4, #0 + bl DynamicPlaceholderTextUtil_ExpandPlaceholders + ldrb r0, [r5, #0xa] + movs r1, #0x44 + bl FillWindowPixelBuffer + ldrb r0, [r5, #0xa] + add r1, sp, #0xc + str r1, [sp] + movs r1, #1 + rsbs r1, r1, #0 + str r1, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 + ldrb r0, [r5, #0xa] + movs r1, #2 + bl CopyWindowToVram + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081D059C: .4byte 0x085F723C +_081D05A0: .4byte 0x02021C40 +_081D05A4: .4byte 0x02021C7C +_081D05A8: .4byte 0x085CB821 + thumb_func_end sub_081D0534 + + thumb_func_start sub_081D05AC +sub_081D05AC: @ 0x081D05AC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x10 + adds r7, r0, #0 + bl sub_081D0004 + adds r5, r0, #0 + ldr r1, _081D0608 + add r0, sp, #0xc + movs r2, #3 + bl memcpy + ldrb r0, [r7, #0xa] + movs r1, #0x44 + bl FillWindowPixelBuffer + cmp r5, #0x18 + bhi _081D0610 + lsls r1, r5, #3 + ldr r0, _081D060C + adds r6, r1, r0 + movs r5, #0x80 + lsls r5, r5, #0x12 + movs r4, #1 +_081D05DE: + ldrb r0, [r7, #0xa] + lsrs r3, r5, #0x18 + add r1, sp, #0xc + str r1, [sp] + movs r1, #1 + rsbs r1, r1, #0 + str r1, [sp, #4] + ldm r6!, {r1} + str r1, [sp, #8] + movs r1, #1 + movs r2, #0 + bl AddTextPrinterParameterized3 + movs r0, #0x80 + lsls r0, r0, #0x15 + adds r5, r5, r0 + subs r4, #1 + cmp r4, #0 + bge _081D05DE + b _081D065A + .align 2, 0 +_081D0608: .4byte 0x085F723C +_081D060C: .4byte 0x085F5F60 +_081D0610: + ldr r0, _081D0670 + ldr r0, [r0] + adds r0, r0, r5 + ldr r1, _081D0674 + adds r0, r0, r1 + ldrb r5, [r0] + cmp r5, #0 + beq _081D0662 + subs r5, #1 + movs r4, #0 + ldr r0, _081D0678 + mov r8, r0 + movs r6, #0x80 + lsls r6, r6, #0x12 +_081D062C: + ldrb r0, [r7, #0xa] + lsrs r3, r6, #0x18 + add r1, sp, #0xc + str r1, [sp] + movs r1, #1 + rsbs r1, r1, #0 + str r1, [sp, #4] + lsls r1, r4, #2 + lsls r2, r5, #3 + adds r1, r1, r2 + add r1, r8 + ldr r1, [r1] + str r1, [sp, #8] + movs r1, #1 + movs r2, #0 + bl AddTextPrinterParameterized3 + movs r0, #0x80 + lsls r0, r0, #0x15 + adds r6, r6, r0 + adds r4, #1 + cmp r4, #1 + ble _081D062C +_081D065A: + ldrb r0, [r7, #0xa] + movs r1, #2 + bl CopyWindowToVram +_081D0662: + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D0670: .4byte 0x03005AEC +_081D0674: .4byte 0x0000318F +_081D0678: .4byte 0x085F628C + thumb_func_end sub_081D05AC + + thumb_func_start sub_081D067C +sub_081D067C: @ 0x081D067C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _081D069C + bl AddWindow + strh r0, [r4, #8] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl PutWindowTilemap + adds r0, r4, #0 + bl sub_081D06A0 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D069C: .4byte 0x085F7240 + thumb_func_end sub_081D067C + + thumb_func_start sub_081D06A0 +sub_081D06A0: @ 0x081D06A0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x10 + adds r7, r0, #0 + ldr r4, _081D070C + movs r0, #0xd + add r0, sp + mov r8, r0 + adds r0, r4, #0 + add r1, sp, #0xc + mov r2, r8 + bl GetCurrMonInfo1 + ldr r6, _081D0710 + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #0 + movs r3, #5 + bl StringCopyPadded + add r0, sp, #0xc + ldrb r1, [r0] + adds r0, r4, #0 + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r5, _081D0714 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + movs r3, #3 + bl StringCopyPadded + bl DynamicPlaceholderTextUtil_Reset + movs r0, #0 + adds r1, r6, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + movs r0, #1 + adds r1, r5, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + mov r1, r8 + ldrb r0, [r1] + cmp r0, #0 + beq _081D071C + cmp r0, #0xfe + beq _081D0724 + ldr r1, _081D0718 + b _081D0726 + .align 2, 0 +_081D070C: .4byte 0x02021C68 +_081D0710: .4byte 0x02021C40 +_081D0714: .4byte 0x02021C54 +_081D0718: .4byte 0x085CB7FE +_081D071C: + ldr r1, _081D0720 + b _081D0726 + .align 2, 0 +_081D0720: .4byte 0x085CB7D6 +_081D0724: + ldr r1, _081D0764 +_081D0726: + ldr r4, _081D0768 + adds r0, r4, #0 + bl DynamicPlaceholderTextUtil_ExpandPlaceholders + ldrb r0, [r7, #8] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldrb r0, [r7, #8] + movs r1, #2 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + adds r2, r4, #0 + movs r3, #0 + bl AddTextPrinterParameterized + ldrb r0, [r7, #8] + movs r1, #2 + bl CopyWindowToVram + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D0764: .4byte 0x085CB7EA +_081D0768: .4byte 0x02021C7C + thumb_func_end sub_081D06A0 + + thumb_func_start sub_081D076C +sub_081D076C: @ 0x081D076C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _081D07B4 + adds r0, r4, #0 + bl AddWindow + strh r0, [r5, #0xc] + adds r4, #8 + adds r0, r4, #0 + bl AddWindow + strh r0, [r5, #0xe] + ldrb r0, [r5, #0xc] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldrb r0, [r5, #0xe] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldrb r0, [r5, #0xc] + bl PutWindowTilemap + ldrb r0, [r5, #0xe] + bl PutWindowTilemap + ldrh r0, [r5, #0xe] + bl sub_081D07B8 + adds r0, r5, #0 + bl sub_081D081C + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081D07B4: .4byte 0x085F7248 + thumb_func_end sub_081D076C + + thumb_func_start sub_081D07B8 +sub_081D07B8: @ 0x081D07B8 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0xc + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r6, _081D0818 + movs r0, #0 + mov r8, r0 + movs r0, #0xba + strb r0, [r6] + adds r5, r6, #1 + bl sub_081CFD84 + adds r1, r0, #0 + adds r0, r5, #0 + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + movs r0, #2 + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + mov r0, r8 + str r0, [sp, #8] + adds r0, r4, #0 + movs r1, #1 + adds r2, r6, #0 + movs r3, #0 + bl AddTextPrinterParameterized + adds r0, r4, #0 + movs r1, #2 + bl CopyWindowToVram + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081D0818: .4byte 0x02021C40 + thumb_func_end sub_081D07B8 + + thumb_func_start sub_081D081C +sub_081D081C: @ 0x081D081C + push {r4, r5, lr} + sub sp, #0xc + adds r5, r0, #0 + bl sub_081CFD74 + adds r1, r0, #0 + adds r1, #1 + ldr r4, _081D0860 + adds r0, r4, #0 + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldrb r0, [r5, #0xc] + movs r1, #2 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + adds r2, r4, #0 + movs r3, #0 + bl AddTextPrinterParameterized + ldrb r0, [r5, #0xc] + movs r1, #2 + bl CopyWindowToVram + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081D0860: .4byte 0x02021C40 + thumb_func_end sub_081D081C + + thumb_func_start sub_081D0864 +sub_081D0864: @ 0x081D0864 + push {r4, lr} + sub sp, #0xc + adds r4, r0, #0 + add r1, sp, #4 + add r2, sp, #8 + mov r0, sp + bl GetCurrMonInfo2 + bl ResetAllPicSprites + movs r0, #0x28 + movs r1, #0x68 + bl sub_081D08A0 + strh r0, [r4, #0x10] + movs r0, #0xf + movs r1, #0 + bl sub_081C7150 + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081D0864 + + thumb_func_start sub_081D0894 +sub_081D0894: @ 0x081D0894 + push {lr} + ldrh r0, [r0, #0x10] + bl FreeAndDestroyMonPicSprite + pop {r0} + bx r0 + thumb_func_end sub_081D0894 + + thumb_func_start sub_081D08A0 +sub_081D08A0: @ 0x081D08A0 + push {lr} + sub sp, #0x1c + add r1, sp, #0x14 + add r2, sp, #0x18 + add r0, sp, #0x10 + bl GetCurrMonInfo2 + add r0, sp, #0x10 + ldrh r0, [r0] + ldr r1, [sp, #0x18] + ldr r2, [sp, #0x14] + movs r3, #0x28 + str r3, [sp] + movs r3, #0x68 + str r3, [sp, #4] + movs r3, #0xf + str r3, [sp, #8] + ldr r3, _081D08EC + str r3, [sp, #0xc] + movs r3, #1 + bl CreateMonPicSprite_HandleDeoxys + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _081D08F0 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r1 + ldrb r3, [r2, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r3 + strb r1, [r2, #5] + add sp, #0x1c + pop {r1} + bx r1 + .align 2, 0 +_081D08EC: .4byte 0x0000FFFF +_081D08F0: .4byte 0x020205AC + thumb_func_end sub_081D08A0 + + thumb_func_start sub_081D08F4 +sub_081D08F4: @ 0x081D08F4 + push {lr} + ldrh r1, [r0, #0x10] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _081D0914 + adds r0, r0, r1 + movs r2, #0x20 + rsbs r2, r2, #0 + movs r1, #0x28 + movs r3, #6 + bl sub_081D0974 + pop {r0} + bx r0 + .align 2, 0 +_081D0914: .4byte 0x020205AC + thumb_func_end sub_081D08F4 + + thumb_func_start sub_081D0918 +sub_081D0918: @ 0x081D0918 + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x10] + bl FreeAndDestroyMonPicSprite + movs r5, #0x20 + rsbs r5, r5, #0 + adds r0, r5, #0 + movs r1, #0x68 + bl sub_081D08A0 + strh r0, [r4, #0x10] + ldrh r1, [r4, #0x10] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _081D094C + adds r0, r0, r1 + adds r1, r5, #0 + movs r2, #0x28 + movs r3, #6 + bl sub_081D0974 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081D094C: .4byte 0x020205AC + thumb_func_end sub_081D0918 + + thumb_func_start sub_081D0950 +sub_081D0950: @ 0x081D0950 + ldr r2, _081D096C + ldrh r1, [r0, #0x10] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _081D0970 + eors r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + bx lr + .align 2, 0 +_081D096C: .4byte 0x020205AC +_081D0970: .4byte 0x08007141 + thumb_func_end sub_081D0950 + + thumb_func_start sub_081D0974 +sub_081D0974: @ 0x081D0974 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r2, #0 + adds r5, r3, #0 + subs r0, r6, r1 + strh r1, [r4, #0x20] + lsls r1, r1, #4 + strh r1, [r4, #0x2e] + lsls r0, r0, #4 + adds r1, r5, #0 + bl __udivsi3 + strh r0, [r4, #0x30] + strh r5, [r4, #0x32] + strh r6, [r4, #0x34] + ldr r0, _081D099C + str r0, [r4, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081D099C: .4byte 0x081D09A1 + thumb_func_end sub_081D0974 + + thumb_func_start sub_081D09A0 +sub_081D09A0: @ 0x081D09A0 + push {lr} + adds r2, r0, #0 + ldrh r1, [r2, #0x32] + movs r3, #0x32 + ldrsh r0, [r2, r3] + cmp r0, #0 + beq _081D09E4 + subs r0, r1, #1 + strh r0, [r2, #0x32] + ldrh r0, [r2, #0x30] + ldrh r1, [r2, #0x2e] + adds r0, r0, r1 + strh r0, [r2, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + strh r0, [r2, #0x20] + movs r1, #0x20 + rsbs r1, r1, #0 + cmp r0, r1 + bgt _081D09D6 + adds r0, r2, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + b _081D09EC +_081D09D6: + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + b _081D09EC +_081D09E4: + ldrh r0, [r2, #0x34] + strh r0, [r2, #0x20] + ldr r0, _081D09F0 + str r0, [r2, #0x1c] +_081D09EC: + pop {r0} + bx r0 + .align 2, 0 +_081D09F0: .4byte 0x08007141 + thumb_func_end sub_081D09A0 + + thumb_func_start sub_081D09F4 +sub_081D09F4: @ 0x081D09F4 + push {r4, r5, r6, lr} + bl sub_081D0A6C + ldr r5, _081D0A64 + adds r0, r5, #0 + bl sub_081CFFC4 + adds r6, r0, #0 + ldr r2, _081D0A68 + movs r1, #0 + str r1, [r2] + ldr r0, [r5] + cmp r1, r0 + bhs _081D0A26 + adds r4, r2, #0 +_081D0A12: + ldr r0, [r4] + ldm r6!, {r1} + bl sub_081D0A8C + ldr r1, [r4] + adds r1, #1 + str r1, [r4] + ldr r0, [r5] + cmp r1, r0 + blo _081D0A12 +_081D0A26: + ldr r4, _081D0A64 + adds r0, r4, #0 + bl sub_081CFFDC + adds r6, r0, #0 + ldr r2, _081D0A68 + movs r1, #0 + str r1, [r2] + ldr r0, [r4] + cmp r1, r0 + bhs _081D0A56 + adds r4, r2, #0 +_081D0A3E: + ldr r0, [r4] + adds r0, #0x1b + ldm r6!, {r1} + bl sub_081D0A8C + ldr r1, [r4] + adds r1, #1 + str r1, [r4] + ldr r0, _081D0A64 + ldr r0, [r0] + cmp r1, r0 + blo _081D0A3E +_081D0A56: + movs r0, #1 + bl CopyBgTilemapBufferToVram + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081D0A64: .4byte 0x030012B4 +_081D0A68: .4byte 0x030012B8 + thumb_func_end sub_081D09F4 + + thumb_func_start sub_081D0A6C +sub_081D0A6C: @ 0x081D0A6C + push {lr} + sub sp, #8 + movs r0, #0x20 + str r0, [sp] + movs r0, #0x14 + str r0, [sp, #4] + movs r0, #1 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081D0A6C + + thumb_func_start sub_081D0A8C +sub_081D0A8C: @ 0x081D0A8C + push {r4, r5, r6, lr} + sub sp, #0x10 + adds r4, r0, #0 + adds r6, r1, #0 + movs r1, #9 + bl __umodsi3 + adds r5, r0, #0 + lsls r5, r5, #1 + adds r5, #0xb + adds r0, r4, #0 + movs r1, #9 + bl __udivsi3 + adds r4, r0, #0 + lsls r4, r4, #1 + adds r4, #4 + add r0, sp, #8 + adds r1, r6, #0 + bl sub_081D0AD8 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #2 + str r0, [sp] + str r0, [sp, #4] + movs r0, #1 + add r1, sp, #8 + adds r2, r5, #0 + adds r3, r4, #0 + bl CopyToBgTilemapBufferRect + add sp, #0x10 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_081D0A8C + + thumb_func_start sub_081D0AD8 +sub_081D0AD8: @ 0x081D0AD8 + push {r4, r5, lr} + ldr r2, _081D0B14 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r3, [r1, #2] + adds r3, #2 + lsls r3, r3, #0x10 + ldrh r1, [r1] + lsls r1, r1, #1 + adds r1, #1 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsrs r3, r3, #4 + adds r2, r1, #0 + orrs r2, r3 + strh r2, [r0] + movs r5, #0x80 + lsls r5, r5, #3 + adds r4, r5, #0 + orrs r2, r4 + strh r2, [r0, #2] + adds r1, #1 + orrs r1, r3 + strh r1, [r0, #4] + orrs r1, r4 + strh r1, [r0, #6] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081D0B14: .4byte 0x085F7258 + thumb_func_end sub_081D0AD8 + + thumb_func_start sub_081D0B18 +sub_081D0B18: @ 0x081D0B18 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _081D0B54 + bl LoadCompressedSpriteSheet + ldr r0, _081D0B58 + bl Pokenav_AllocAndLoadPalettes + ldr r0, _081D0B5C + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _081D0B60 + adds r1, r1, r0 + str r1, [r4, #0x14] + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D0B54: .4byte 0x085F72D8 +_081D0B58: .4byte 0x085F72E0 +_081D0B5C: .4byte 0x085F7364 +_081D0B60: .4byte 0x020205AC + thumb_func_end sub_081D0B18 + + thumb_func_start sub_081D0B64 +sub_081D0B64: @ 0x081D0B64 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r6, r0, #0 + bl sub_081CFFF4 + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r4, #0 + movs r1, #9 + bl __modsi3 + adds r5, r0, #0 + lsls r5, r5, #4 + adds r5, #0x60 + adds r0, r4, #0 + movs r1, #9 + bl __divsi3 + lsls r0, r0, #4 + adds r0, #0x28 + ldr r1, [r6, #0x14] + movs r2, #0 + mov r8, r2 + strh r5, [r1, #0x20] + ldr r1, [r6, #0x14] + strh r0, [r1, #0x22] + bl sub_081D0004 + adds r4, r0, #0 + movs r0, #9 + bl GetSpriteTileStartByTag + ldr r3, [r6, #0x14] + ldr r1, _081D0C0C + lsls r4, r4, #2 + adds r4, r4, r1 + ldrh r1, [r4] + lsls r1, r1, #4 + adds r0, r0, r1 + ldr r2, _081D0C10 + adds r1, r2, #0 + ands r0, r1 + ldrh r2, [r3, #4] + ldr r1, _081D0C14 + ands r1, r2 + orrs r1, r0 + strh r1, [r3, #4] + ldrh r0, [r4, #2] + adds r0, #0xf + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl IndexOfSpritePaletteTag + ldr r3, [r6, #0x14] + lsls r0, r0, #4 + ldrb r2, [r3, #5] + movs r1, #0xf + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #5] + ldr r0, [r6, #0x14] + movs r1, #1 + bl StartSpriteAffineAnim + ldr r1, [r6, #0x14] + adds r1, #0x3e + ldrb r2, [r1] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r0, [r6, #0x14] + mov r1, r8 + strh r1, [r0, #0x2e] + ldr r1, [r6, #0x14] + ldr r0, _081D0C18 + str r0, [r1, #0x1c] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081D0C0C: .4byte 0x085F7258 +_081D0C10: .4byte 0x000003FF +_081D0C14: .4byte 0xFFFFFC00 +_081D0C18: .4byte 0x081D0C55 + thumb_func_end sub_081D0B64 + + thumb_func_start sub_081D0C1C +sub_081D0C1C: @ 0x081D0C1C + push {r4, lr} + adds r4, r0, #0 + ldr r1, [r4, #0x14] + movs r0, #1 + strh r0, [r1, #0x2e] + ldr r0, [r4, #0x14] + movs r1, #2 + bl StartSpriteAffineAnim + ldr r1, [r4, #0x14] + ldr r0, _081D0C3C + str r0, [r1, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D0C3C: .4byte 0x081D0C55 + thumb_func_end sub_081D0C1C + + thumb_func_start sub_081D0C40 +sub_081D0C40: @ 0x081D0C40 + ldr r0, [r0, #0x14] + ldr r1, [r0, #0x1c] + ldr r0, _081D0C50 + eors r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + bx lr + .align 2, 0 +_081D0C50: .4byte 0x08007141 + thumb_func_end sub_081D0C40 + + thumb_func_start sub_081D0C54 +sub_081D0C54: @ 0x081D0C54 + push {lr} + adds r3, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _081D0C86 + movs r0, #0x3e + adds r0, r0, r3 + mov ip, r0 + movs r0, #1 + ldrh r1, [r3, #0x2e] + ands r1, r0 + lsls r1, r1, #2 + mov r0, ip + ldrb r2, [r0] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldr r0, _081D0C8C + str r0, [r3, #0x1c] +_081D0C86: + pop {r0} + bx r0 + .align 2, 0 +_081D0C8C: .4byte 0x08007141 + thumb_func_end sub_081D0C54 + diff --git a/asm/pokenav_unk_2.s b/asm/pokenav_unk_2.s new file mode 100644 index 0000000..7d5ad6e --- /dev/null +++ b/asm/pokenav_unk_2.s @@ -0,0 +1,2363 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_081C9080 +sub_081C9080: @ 0x081C9080 + push {r4, lr} + movs r4, #0 +_081C9084: + adds r0, r4, #0 + bl sub_081CA86C + ldr r1, _081C90B4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1, #0x14] + cmp r0, r1 + bne _081C90C0 + adds r0, r4, #0 + bl sub_081CA5B4 + cmp r0, #0 + beq _081C90C0 + ldr r0, _081C90B8 + ldr r0, [r0] + ldr r1, _081C90BC + adds r0, r0, r1 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0 + beq _081C90C0 + movs r0, #1 + b _081C90C8 + .align 2, 0 +_081C90B4: .4byte 0x02036FB8 +_081C90B8: .4byte 0x03005AEC +_081C90BC: .4byte 0x000009CA +_081C90C0: + adds r4, #1 + cmp r4, #0x4d + ble _081C9084 + movs r0, #0 +_081C90C8: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081C9080 + + thumb_func_start sub_081C90D0 +sub_081C90D0: @ 0x081C90D0 + push {lr} + bl sub_081C9104 + adds r1, r0, #0 + cmp r1, #0 + beq _081C90E4 + movs r0, #0 + strb r0, [r1, #0xd] + movs r0, #1 + b _081C90E6 +_081C90E4: + movs r0, #0 +_081C90E6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081C90D0 + + thumb_func_start sub_081C90EC +sub_081C90EC: @ 0x081C90EC + push {lr} + bl sub_081C9104 + adds r1, r0, #0 + cmp r1, #0 + beq _081C90FE + movs r0, #1 + strb r0, [r1, #0xd] + b _081C9100 +_081C90FE: + movs r0, #0 +_081C9100: + pop {r1} + bx r1 + thumb_func_end sub_081C90EC + + thumb_func_start sub_081C9104 +sub_081C9104: @ 0x081C9104 + push {r4, lr} + ldr r1, _081C9130 + movs r0, #2 + bl AllocSubstruct + adds r4, r0, #0 + cmp r4, #0 + beq _081C9126 + movs r0, #0 + strb r0, [r4, #0xc] + ldr r0, _081C9134 + movs r1, #1 + bl CreateLoopedTask + str r0, [r4, #4] + ldr r0, _081C9138 + str r0, [r4] +_081C9126: + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081C9130: .4byte 0x0000088C +_081C9134: .4byte 0x081C91BD +_081C9138: .4byte 0x081C91A9 + thumb_func_end sub_081C9104 + + thumb_func_start sub_081C913C +sub_081C913C: @ 0x081C913C + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #2 + bl GetSubstructPtr + adds r5, r0, #0 + ldr r0, _081C9164 + lsls r4, r4, #2 + adds r4, r4, r0 + ldr r0, [r4] + movs r1, #1 + bl CreateLoopedTask + str r0, [r5, #4] + ldr r0, _081C9168 + str r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C9164: .4byte 0x085F2708 +_081C9168: .4byte 0x081C91A9 + thumb_func_end sub_081C913C + + thumb_func_start sub_081C916C +sub_081C916C: @ 0x081C916C + push {lr} + movs r0, #2 + bl GetSubstructPtr + ldr r0, [r0] + bl _call_via_r0 + pop {r1} + thumb_func_end sub_081C916C + + thumb_func_start sub_081C917C +sub_081C917C: @ 0x081C917C + bx r1 + .align 2, 0 + thumb_func_end sub_081C917C + + thumb_func_start sub_081C9180 +sub_081C9180: @ 0x081C9180 + push {r4, lr} + movs r0, #2 + bl GetSubstructPtr + adds r4, r0, #0 + bl sub_081C9FA0 + ldrb r0, [r4, #8] + bl RemoveWindow + bl sub_081C9798 + bl sub_081CA140 + movs r0, #2 + bl FreePokenavSubstruct + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_081C9180 + + thumb_func_start sub_081C91A8 +sub_081C91A8: @ 0x081C91A8 + push {lr} + movs r0, #2 + bl GetSubstructPtr + ldr r0, [r0, #4] + bl IsLoopedTaskActive + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081C91A8 + + thumb_func_start sub_081C91BC +sub_081C91BC: @ 0x081C91BC + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + movs r0, #2 + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #9 + bls _081C91D0 + b _081C940C +_081C91D0: + lsls r0, r4, #2 + ldr r1, _081C91DC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081C91DC: .4byte 0x081C91E0 +_081C91E0: @ jump table + .4byte _081C9208 @ case 0 + .4byte _081C9298 @ case 1 + .4byte _081C92DC @ case 2 + .4byte _081C9334 @ case 3 + .4byte _081C934A @ case 4 + .4byte _081C9350 @ case 5 + .4byte _081C9362 @ case 6 + .4byte _081C936C @ case 7 + .4byte _081C93BA @ case 8 + .4byte _081C93F8 @ case 9 +_081C9208: + ldr r0, _081C9288 + movs r1, #3 + bl InitBgTemplates + ldr r1, _081C928C + movs r0, #0 + str r0, [sp] + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + adds r1, r5, #0 + adds r1, #0x8c + movs r0, #1 + bl SetBgTilemapBuffer + ldr r1, _081C9290 + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + movs r0, #1 + bl CopyBgTilemapBufferToVram + ldr r0, _081C9294 + movs r1, #0x10 + movs r2, #0x20 + bl CopyPaletteIntoBufferUnfaded + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgY +_081C9282: + movs r0, #0 + b _081C940E + .align 2, 0 +_081C9288: .4byte 0x085F26FC +_081C928C: .4byte 0x085F1730 +_081C9290: .4byte 0x085F1780 +_081C9294: .4byte 0x085F1710 +_081C9298: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _081C92A6 + b _081C9408 +_081C92A6: + ldr r1, _081C92D0 + str r0, [sp] + movs r0, #2 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, _081C92D4 + movs r0, #1 + str r0, [sp] + movs r0, #2 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + ldr r0, _081C92D8 + movs r1, #0x20 + movs r2, #0x20 + bl CopyPaletteIntoBufferUnfaded + b _081C9282 + .align 2, 0 +_081C92D0: .4byte 0x085F1858 +_081C92D4: .4byte 0x085F1AE0 +_081C92D8: .4byte 0x085F1838 +_081C92DC: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _081C92EA + b _081C9408 +_081C92EA: + ldr r1, _081C9328 + str r0, [sp] + movs r0, #3 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, _081C932C + movs r0, #1 + str r0, [sp] + movs r0, #3 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + ldr r0, _081C9330 + movs r1, #0x30 + movs r2, #0x20 + bl CopyPaletteIntoBufferUnfaded + bl sub_081C9040 + cmp r0, #3 + beq _081C9322 + bl sub_081C9040 + cmp r0, #4 + bne _081C9282 +_081C9322: + bl sub_081C9FFC + b _081C9282 + .align 2, 0 +_081C9328: .4byte 0x085F165C +_081C932C: .4byte 0x085F1670 +_081C9330: .4byte 0x085F163C +_081C9334: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081C9408 + bl sub_081C9E8C + bl sub_081C9F80 +_081C9346: + movs r0, #1 + b _081C940E +_081C934A: + bl sub_081C9770 + b _081C9346 +_081C9350: + bl sub_081C9EC0 + bl sub_081C97D8 + bl sub_081C9DEC + bl sub_081C9874 + b _081C9282 +_081C9362: + bl sub_081C9F70 + cmp r0, #0 + bne _081C9408 + b _081C9346 +_081C936C: + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg + ldrb r0, [r5, #0xd] + cmp r0, #0 + beq _081C938C + movs r0, #1 + bl sub_081C7280 + b _081C9398 +_081C938C: + movs r0, #0x6e + bl PlaySE + movs r0, #3 + bl sub_081C7280 +_081C9398: + bl sub_081C9040 + cmp r0, #3 + beq _081C93AA + cmp r0, #4 + bne _081C93B2 + movs r0, #7 + bl LoadLeftHeaderGfxForIndex +_081C93AA: + movs r0, #1 + bl LoadLeftHeaderGfxForIndex + b _081C9282 +_081C93B2: + movs r0, #0 + bl LoadLeftHeaderGfxForIndex + b _081C9282 +_081C93BA: + bl IsDma3ManagerBusyWithBgCopy_ + cmp r0, #0 + bne _081C9408 + bl sub_081C9040 + cmp r0, #3 + beq _081C93D8 + cmp r0, #4 + bne _081C93E4 + movs r0, #7 + movs r1, #0 + movs r2, #0 + bl sub_081C7748 +_081C93D8: + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl sub_081C7748 + b _081C93EE +_081C93E4: + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl sub_081C7748 +_081C93EE: + bl sub_081C99B8 + bl sub_081CA0D8 + b _081C9346 +_081C93F8: + bl sub_081C9AD0 + cmp r0, #0 + bne _081C9408 + bl sub_081C77B8 + cmp r0, #0 + beq _081C940C +_081C9408: + movs r0, #2 + b _081C940E +_081C940C: + movs r0, #4 +_081C940E: + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081C91BC + + thumb_func_start sub_081C9418 +sub_081C9418: @ 0x081C9418 + push {lr} + cmp r0, #0 + beq _081C9424 + cmp r0, #1 + beq _081C943A + b _081C944E +_081C9424: + bl sub_081CA1E8 + bl sub_081C9A24 + bl sub_081C9EC0 + movs r0, #5 + bl PlaySE + movs r0, #0 + b _081C9450 +_081C943A: + bl sub_081C9AD0 + cmp r0, #0 + bne _081C944A + bl sub_081C9F70 + cmp r0, #0 + beq _081C944E +_081C944A: + movs r0, #2 + b _081C9450 +_081C944E: + movs r0, #4 +_081C9450: + pop {r1} + bx r1 + thumb_func_end sub_081C9418 + + thumb_func_start sub_081C9454 +sub_081C9454: @ 0x081C9454 + push {lr} + cmp r0, #1 + beq _081C9488 + cmp r0, #1 + bgt _081C9464 + cmp r0, #0 + beq _081C946E + b _081C94E8 +_081C9464: + cmp r0, #2 + beq _081C94A6 + cmp r0, #3 + beq _081C94C0 + b _081C94E8 +_081C946E: + bl sub_081CA174 + bl sub_081C9A88 + movs r0, #0 + movs r1, #0 + bl sub_081C776C + movs r0, #5 + bl PlaySE + movs r0, #0 + b _081C94EA +_081C9488: + bl sub_081C9AD0 + cmp r0, #0 + bne _081C94E0 + bl sub_081C77B8 + cmp r0, #0 + bne _081C94E0 + bl sub_081C9874 + movs r0, #1 + bl LoadLeftHeaderGfxForIndex + movs r0, #0 + b _081C94EA +_081C94A6: + bl sub_081C99B8 + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl sub_081C7748 + bl sub_081C9FC4 + bl sub_081C9EC0 + movs r0, #0 + b _081C94EA +_081C94C0: + bl sub_081C9AD0 + cmp r0, #0 + bne _081C94E0 + bl sub_081C77B8 + cmp r0, #0 + bne _081C94E0 + bl sub_081CA048 + cmp r0, #0 + bne _081C94E0 + bl sub_081C9F70 + cmp r0, #0 + beq _081C94E4 +_081C94E0: + movs r0, #2 + b _081C94EA +_081C94E4: + bl sub_081CA184 +_081C94E8: + movs r0, #4 +_081C94EA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081C9454 + + thumb_func_start sub_081C94F0 +sub_081C94F0: @ 0x081C94F0 + push {lr} + cmp r0, #1 + beq _081C951E + cmp r0, #1 + bgt _081C9500 + cmp r0, #0 + beq _081C950A + b _081C957E +_081C9500: + cmp r0, #2 + beq _081C953C + cmp r0, #3 + beq _081C9556 + b _081C957E +_081C950A: + bl sub_081CA174 + bl sub_081C9A88 + movs r0, #1 + movs r1, #0 + bl sub_081C776C + movs r0, #0 + b _081C9580 +_081C951E: + bl sub_081C9AD0 + cmp r0, #0 + bne _081C9576 + bl sub_081C77B8 + cmp r0, #0 + bne _081C9576 + bl sub_081C9874 + movs r0, #0 + bl LoadLeftHeaderGfxForIndex + movs r0, #0 + b _081C9580 +_081C953C: + bl sub_081C99B8 + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl sub_081C7748 + bl sub_081CA010 + bl sub_081C9EC0 + movs r0, #0 + b _081C9580 +_081C9556: + bl sub_081C9AD0 + cmp r0, #0 + bne _081C9576 + bl sub_081C77B8 + cmp r0, #0 + bne _081C9576 + bl sub_081CA048 + cmp r0, #0 + bne _081C9576 + bl sub_081C9F70 + cmp r0, #0 + beq _081C957A +_081C9576: + movs r0, #2 + b _081C9580 +_081C957A: + bl sub_081CA184 +_081C957E: + movs r0, #4 +_081C9580: + pop {r1} + bx r1 + thumb_func_end sub_081C94F0 + + thumb_func_start sub_081C9584 +sub_081C9584: @ 0x081C9584 + push {lr} + cmp r0, #1 + beq _081C95B0 + cmp r0, #1 + bgt _081C9594 + cmp r0, #0 + beq _081C959E + b _081C95FC +_081C9594: + cmp r0, #2 + beq _081C95C6 + cmp r0, #3 + beq _081C95DC + b _081C95FC +_081C959E: + bl sub_081CA174 + bl sub_081C9A88 + movs r0, #5 + bl PlaySE + movs r0, #0 + b _081C95FE +_081C95B0: + bl sub_081C9AD0 + cmp r0, #0 + bne _081C95F4 + movs r0, #7 + bl LoadLeftHeaderGfxForIndex + bl sub_081C9874 + movs r0, #0 + b _081C95FE +_081C95C6: + bl sub_081C99B8 + movs r0, #7 + movs r1, #0 + movs r2, #0 + bl sub_081C7748 + bl sub_081C9EC0 + movs r0, #0 + b _081C95FE +_081C95DC: + bl sub_081C9AD0 + cmp r0, #0 + bne _081C95F4 + bl sub_081C77B8 + cmp r0, #0 + bne _081C95F4 + bl sub_081CA048 + cmp r0, #0 + beq _081C95F8 +_081C95F4: + movs r0, #2 + b _081C95FE +_081C95F8: + bl sub_081CA184 +_081C95FC: + movs r0, #4 +_081C95FE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081C9584 + + thumb_func_start sub_081C9604 +sub_081C9604: @ 0x081C9604 + push {lr} + cmp r0, #1 + beq _081C9632 + cmp r0, #1 + bgt _081C9614 + cmp r0, #0 + beq _081C961E + b _081C966E +_081C9614: + cmp r0, #2 + beq _081C964A + cmp r0, #3 + beq _081C9656 + b _081C966E +_081C961E: + bl sub_081CA174 + bl sub_081C9A88 + movs r0, #7 + movs r1, #0 + bl sub_081C776C + movs r0, #0 + b _081C9670 +_081C9632: + bl sub_081C9AD0 + cmp r0, #0 + bne _081C9666 + bl sub_081C77B8 + cmp r0, #0 + bne _081C9666 + bl sub_081C9874 + movs r0, #0 + b _081C9670 +_081C964A: + bl sub_081C99B8 + bl sub_081C9EC0 + movs r0, #0 + b _081C9670 +_081C9656: + bl sub_081C9AD0 + cmp r0, #0 + bne _081C9666 + bl sub_081CA048 + cmp r0, #0 + beq _081C966A +_081C9666: + movs r0, #2 + b _081C9670 +_081C966A: + bl sub_081CA184 +_081C966E: + movs r0, #4 +_081C9670: + pop {r1} + bx r1 + thumb_func_end sub_081C9604 + + thumb_func_start sub_081C9674 +sub_081C9674: @ 0x081C9674 + push {lr} + cmp r0, #0 + beq _081C9680 + cmp r0, #1 + beq _081C968E + b _081C969C +_081C9680: + movs r0, #0x20 + bl PlaySE + bl sub_081C9F1C + movs r0, #0 + b _081C969E +_081C968E: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081C969C + movs r0, #2 + b _081C969E +_081C969C: + movs r0, #4 +_081C969E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081C9674 + + thumb_func_start sub_081C96A4 +sub_081C96A4: @ 0x081C96A4 + push {lr} + cmp r0, #0 + beq _081C96B0 + cmp r0, #1 + beq _081C96BE + b _081C96CC +_081C96B0: + movs r0, #5 + bl PlaySE + bl sub_081C9EC0 + movs r0, #0 + b _081C96CE +_081C96BE: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081C96CC + movs r0, #2 + b _081C96CE +_081C96CC: + movs r0, #4 +_081C96CE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081C96A4 + + thumb_func_start sub_081C96D4 +sub_081C96D4: @ 0x081C96D4 + push {lr} + cmp r0, #1 + beq _081C96FE + cmp r0, #1 + bgt _081C96E4 + cmp r0, #0 + beq _081C96EE + b _081C9768 +_081C96E4: + cmp r0, #2 + beq _081C9742 + cmp r0, #3 + beq _081C975C + b _081C9768 +_081C96EE: + bl sub_081C9070 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl sub_081C7364 + movs r0, #0 + b _081C976A +_081C96FE: + bl sub_081C73A8 + cmp r0, #0 + bne _081C9764 + bl sub_081C7040 + bl sub_081CA174 + bl sub_081C9A88 + bl sub_081C9040 + cmp r0, #3 + beq _081C9726 + cmp r0, #4 + bne _081C9730 + movs r0, #7 + movs r1, #0 + bl sub_081C776C +_081C9726: + movs r0, #1 + movs r1, #0 + bl sub_081C776C + b _081C9738 +_081C9730: + movs r0, #0 + movs r1, #0 + bl sub_081C776C +_081C9738: + movs r0, #5 + bl PlaySE + movs r0, #0 + b _081C976A +_081C9742: + bl sub_081C9AD0 + cmp r0, #0 + bne _081C9764 + bl sub_081C77B8 + cmp r0, #0 + bne _081C9764 + movs r0, #0 + bl sub_081C7280 + movs r0, #0 + b _081C976A +_081C975C: + bl IsDma3ManagerBusyWithBgCopy_ + cmp r0, #0 + beq _081C9768 +_081C9764: + movs r0, #2 + b _081C976A +_081C9768: + movs r0, #4 +_081C976A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081C96D4 + + thumb_func_start sub_081C9770 +sub_081C9770: @ 0x081C9770 + push {r4, r5, lr} + movs r5, #0 + ldr r4, _081C9790 +_081C9776: + adds r0, r4, #0 + bl LoadCompressedSpriteSheet + adds r4, #8 + adds r5, #1 + cmp r5, #1 + bls _081C9776 + ldr r0, _081C9794 + bl Pokenav_AllocAndLoadPalettes + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C9790: .4byte 0x085F272C +_081C9794: .4byte 0x085F273C + thumb_func_end sub_081C9770 + + thumb_func_start sub_081C9798 +sub_081C9798: @ 0x081C9798 + push {lr} + movs r0, #3 + bl FreeSpriteTilesByTag + movs r0, #1 + bl FreeSpriteTilesByTag + movs r0, #4 + bl FreeSpritePaletteByTag + movs r0, #5 + bl FreeSpritePaletteByTag + movs r0, #6 + bl FreeSpritePaletteByTag + movs r0, #7 + bl FreeSpritePaletteByTag + movs r0, #8 + bl FreeSpritePaletteByTag + movs r0, #3 + bl FreeSpritePaletteByTag + bl sub_081C9840 + bl sub_081C9E44 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081C9798 + + thumb_func_start sub_081C97D8 +sub_081C97D8: @ 0x081C97D8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r0, #2 + bl GetSubstructPtr + movs r2, #0 + adds r0, #0x2c + mov r8, r0 +_081C97EA: + movs r4, #0 + lsls r0, r2, #2 + lsls r1, r2, #4 + adds r7, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #0x12 + movs r2, #0xa0 + lsls r2, r2, #0xe + adds r5, r0, r2 + mov r0, r8 + adds r6, r1, r0 +_081C9800: + ldr r0, _081C9838 + movs r1, #0x8c + asrs r2, r5, #0x10 + movs r3, #3 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _081C983C + adds r1, r1, r0 + stm r6!, {r1} + lsls r0, r4, #5 + strh r0, [r1, #0x24] + adds r4, #1 + cmp r4, #3 + ble _081C9800 + adds r2, r7, #0 + cmp r2, #5 + ble _081C97EA + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C9838: .4byte 0x085F28B4 +_081C983C: .4byte 0x020205AC + thumb_func_end sub_081C97D8 + + thumb_func_start sub_081C9840 +sub_081C9840: @ 0x081C9840 + push {r4, r5, r6, r7, lr} + movs r0, #2 + bl GetSubstructPtr + movs r1, #0 + adds r7, r0, #0 + adds r7, #0x2c +_081C984E: + lsls r0, r1, #4 + adds r6, r1, #1 + adds r4, r0, r7 + movs r5, #3 +_081C9856: + ldr r0, [r4] + bl FreeSpriteOamMatrix + ldm r4!, {r0} + bl DestroySprite + subs r5, #1 + cmp r5, #0 + bge _081C9856 + adds r1, r6, #0 + cmp r1, #5 + ble _081C984E + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_081C9840 + + thumb_func_start sub_081C9874 +sub_081C9874: @ 0x081C9874 + push {lr} + bl sub_081C9040 + lsls r2, r0, #3 + subs r2, r2, r0 + lsls r2, r2, #2 + ldr r1, _081C9894 + adds r0, r2, r1 + subs r1, #4 + adds r2, r2, r1 + ldrh r1, [r2] + ldrh r2, [r2, #2] + bl sub_081C9898 + pop {r0} + bx r0 + .align 2, 0 +_081C9894: .4byte 0x085F27AC + thumb_func_end sub_081C9874 + + thumb_func_start sub_081C9898 +sub_081C9898: @ 0x081C9898 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + adds r6, r0, #0 + str r1, [sp, #0x14] + str r2, [sp] + movs r0, #2 + bl GetSubstructPtr + mov sl, r0 + movs r0, #3 + bl GetSpriteTileStartByTag + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #4] + movs r1, #0 +_081C98C0: + ldr r0, [r6] + cmp r0, #0 + beq _081C995C + movs r5, #0 + lsls r2, r1, #4 + mov r0, sl + adds r0, #0x2c + lsls r3, r1, #2 + mov sb, r3 + movs r4, #0x10 + add r4, sl + mov r8, r4 + adds r7, r6, #4 + str r7, [sp, #0xc] + ldr r3, [sp, #0x14] + ldr r4, [sp] + adds r3, r3, r4 + str r3, [sp, #8] + adds r1, #1 + str r1, [sp, #0x10] + adds r4, r2, r0 +_081C98EA: + ldr r3, [r4] + ldr r0, [r6] + ldrh r2, [r0] + ldr r7, [sp, #4] + adds r2, r2, r7 + lsls r0, r5, #3 + adds r2, r2, r0 + ldr r1, _081C9954 + adds r0, r1, #0 + ands r2, r0 + ldrh r0, [r3, #4] + ldr r7, _081C9958 + adds r1, r7, #0 + ands r0, r1 + orrs r0, r2 + strh r0, [r3, #4] + ldr r0, [r6] + ldrh r0, [r0, #2] + adds r0, #4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl IndexOfSpritePaletteTag + ldr r3, [r4] + lsls r0, r0, #4 + ldrb r2, [r3, #5] + movs r1, #0xf + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #5] + ldr r2, [r4] + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r4] + mov r1, sp + ldrh r1, [r1, #0x14] + strh r1, [r0, #0x22] + ldr r1, [r4] + movs r0, #0x8c + strh r0, [r1, #0x20] + ldm r4!, {r1} + lsls r0, r5, #5 + strh r0, [r1, #0x24] + adds r5, #1 + cmp r5, #3 + ble _081C98EA + mov r1, r8 + add r1, sb + movs r0, #1 + b _081C9998 + .align 2, 0 +_081C9954: .4byte 0x000003FF +_081C9958: .4byte 0xFFFFFC00 +_081C995C: + lsls r2, r1, #4 + mov r0, sl + adds r0, #0x2c + lsls r3, r1, #2 + mov sb, r3 + movs r4, #0x10 + add r4, sl + mov r8, r4 + adds r6, #4 + str r6, [sp, #0xc] + ldr r7, [sp, #0x14] + ldr r3, [sp] + adds r7, r7, r3 + str r7, [sp, #8] + adds r1, #1 + str r1, [sp, #0x10] + movs r3, #4 + adds r2, r2, r0 + movs r5, #3 +_081C9982: + ldm r2!, {r1} + adds r1, #0x3e + ldrb r0, [r1] + orrs r0, r3 + strb r0, [r1] + subs r5, #1 + cmp r5, #0 + bge _081C9982 + mov r1, r8 + add r1, sb + movs r0, #0 +_081C9998: + str r0, [r1] + ldr r6, [sp, #0xc] + ldr r4, [sp, #8] + str r4, [sp, #0x14] + ldr r1, [sp, #0x10] + cmp r1, #5 + ble _081C98C0 + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081C9898 + + thumb_func_start sub_081C99B8 +sub_081C99B8: @ 0x081C99B8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r0, #2 + bl GetSubstructPtr + adds r6, r0, #0 + bl sub_081C9050 + mov r8, r0 + movs r7, #0 + movs r5, #0 + adds r4, r6, #0 + adds r4, #0x2c +_081C99D4: + lsls r0, r5, #2 + adds r1, r6, #0 + adds r1, #0x10 + adds r1, r1, r0 + ldr r0, [r1] + cmp r0, #0 + beq _081C9A08 + adds r0, r7, #0 + adds r7, #1 + cmp r0, r8 + bne _081C99F0 + movs r2, #0x82 + strb r5, [r6, #0xb] + b _081C99F2 +_081C99F0: + movs r2, #0x8c +_081C99F2: + adds r0, r4, #0 + movs r1, #0x80 + lsls r1, r1, #1 + movs r3, #0xc + bl sub_081C9B08 + adds r0, r4, #0 + movs r1, #0 + bl sub_081C9BF4 + b _081C9A10 +_081C9A08: + adds r0, r4, #0 + movs r1, #1 + bl sub_081C9BF4 +_081C9A10: + adds r4, #0x10 + adds r5, #1 + cmp r5, #5 + ble _081C99D4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081C99B8 + + thumb_func_start sub_081C9A24 +sub_081C9A24: @ 0x081C9A24 + push {r4, r5, lr} + movs r0, #2 + bl GetSubstructPtr + adds r4, r0, #0 + bl sub_081C9050 + adds r3, r0, #0 + movs r2, #0 + movs r5, #0 + ldr r0, [r4, #0x10] + cmp r0, #0 + beq _081C9A44 + cmp r5, r3 + beq _081C9A5E +_081C9A42: + adds r5, #1 +_081C9A44: + adds r2, #1 + cmp r2, #5 + bgt _081C9A5E + lsls r0, r2, #2 + adds r1, r4, #0 + adds r1, #0x10 + adds r1, r1, r0 + ldr r0, [r1] + cmp r0, #0 + beq _081C9A44 + cmp r5, r3 + bne _081C9A42 + adds r5, r2, #0 +_081C9A5E: + ldrb r0, [r4, #0xb] + lsls r0, r0, #4 + adds r0, #0x2c + adds r0, r4, r0 + movs r1, #0x82 + movs r2, #0x8c + movs r3, #4 + bl sub_081C9B08 + lsls r0, r5, #4 + adds r0, #0x2c + adds r0, r4, r0 + movs r1, #0x8c + movs r2, #0x82 + movs r3, #4 + bl sub_081C9B08 + strb r5, [r4, #0xb] + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_081C9A24 + + thumb_func_start sub_081C9A88 +sub_081C9A88: @ 0x081C9A88 + push {r4, r5, r6, lr} + movs r0, #2 + bl GetSubstructPtr + adds r6, r0, #0 + movs r5, #0 + adds r4, r6, #0 + adds r4, #0x2c +_081C9A98: + lsls r0, r5, #2 + adds r1, r6, #0 + adds r1, #0x10 + adds r1, r1, r0 + ldr r0, [r1] + cmp r0, #0 + beq _081C9AC2 + ldrb r0, [r6, #0xb] + cmp r0, r5 + beq _081C9ABC + adds r0, r4, #0 + movs r1, #0x8c + movs r2, #0x80 + lsls r2, r2, #1 + movs r3, #8 + bl sub_081C9B08 + b _081C9AC2 +_081C9ABC: + adds r0, r4, #0 + bl sub_081C9B60 +_081C9AC2: + adds r4, #0x10 + adds r5, #1 + cmp r5, #5 + ble _081C9A98 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_081C9A88 + + thumb_func_start sub_081C9AD0 +sub_081C9AD0: @ 0x081C9AD0 + push {r4, lr} + movs r0, #2 + bl GetSubstructPtr + adds r3, r0, #0 + movs r2, #0 + ldr r4, _081C9AFC + adds r1, r3, #0 + adds r1, #0x2c +_081C9AE2: + ldr r0, [r1] + ldr r0, [r0, #0x1c] + cmp r0, r4 + bne _081C9B00 + adds r1, #0x10 + adds r2, #1 + cmp r2, #5 + ble _081C9AE2 + ldrb r0, [r3, #0xc] + cmp r0, #0 + bne _081C9B00 + movs r0, #0 + b _081C9B02 + .align 2, 0 +_081C9AFC: .4byte 0x08007141 +_081C9B00: + movs r0, #1 +_081C9B02: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081C9AD0 + + thumb_func_start sub_081C9B08 +sub_081C9B08: @ 0x081C9B08 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + adds r5, r1, #0 + mov sb, r2 + adds r6, r3, #0 + ldr r0, _081C9B5C + mov r8, r0 + subs r0, r2, r5 + lsls r0, r0, #4 + adds r1, r6, #0 + bl __divsi3 + adds r3, r0, #0 + movs r1, #3 + lsls r2, r5, #4 +_081C9B2C: + ldr r0, [r4] + strh r5, [r0, #0x20] + ldr r0, [r4] + strh r6, [r0, #0x2e] + ldr r0, [r4] + strh r3, [r0, #0x30] + ldr r0, [r4] + strh r2, [r0, #0x32] + ldr r0, [r4] + mov r7, sb + strh r7, [r0, #0x3c] + ldm r4!, {r0} + mov r7, r8 + str r7, [r0, #0x1c] + subs r1, #1 + cmp r1, #0 + bge _081C9B2C + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C9B5C: .4byte 0x081C9C21 + thumb_func_end sub_081C9B08 + + thumb_func_start sub_081C9B60 +sub_081C9B60: @ 0x081C9B60 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + movs r0, #2 + bl GetSubstructPtr + adds r7, r0, #0 + movs r5, #0 + mov r8, r5 +_081C9B74: + ldr r2, [r4] + ldrb r1, [r2, #1] + movs r3, #0xd + rsbs r3, r3, #0 + adds r0, r3, #0 + ands r1, r0 + movs r0, #4 + orrs r1, r0 + strb r1, [r2, #1] + ldr r2, [r4] + ldrb r0, [r2, #1] + movs r1, #3 + orrs r0, r1 + strb r0, [r2, #1] + ldr r1, [r4] + ldr r0, _081C9BE8 + str r0, [r1, #0x1c] + movs r6, #8 + strh r6, [r1, #0x2e] + ldr r0, [r4] + mov r1, r8 + strh r1, [r0, #0x30] + ldr r0, [r4] + strh r5, [r0, #0x3c] + ldr r0, [r4] + bl InitSpriteAffineAnim + ldm r4!, {r0} + movs r1, #0 + bl StartSpriteAffineAnim + adds r5, #1 + cmp r5, #3 + ble _081C9B74 + movs r0, #0x52 + movs r1, #0x10 + bl SetGpuReg + ldr r0, _081C9BEC + movs r1, #3 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _081C9BF0 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r6, [r1, #8] + ldrb r0, [r7, #0xc] + adds r0, #1 + strb r0, [r7, #0xc] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081C9BE8: .4byte 0x081C9C59 +_081C9BEC: .4byte 0x081C9D2D +_081C9BF0: .4byte 0x03005B60 + thumb_func_end sub_081C9B60 + + thumb_func_start sub_081C9BF4 +sub_081C9BF4: @ 0x081C9BF4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #1 + ands r1, r0 + lsls r4, r1, #2 + movs r6, #5 + rsbs r6, r6, #0 + movs r3, #3 +_081C9C04: + ldm r5!, {r0} + adds r0, #0x3e + ldrb r2, [r0] + adds r1, r6, #0 + ands r1, r2 + orrs r1, r4 + strb r1, [r0] + subs r3, #1 + cmp r3, #0 + bge _081C9C04 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081C9BF4 + + thumb_func_start sub_081C9C20 +sub_081C9C20: @ 0x081C9C20 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x2e] + subs r0, #1 + strh r0, [r2, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _081C9C46 + ldrh r0, [r2, #0x30] + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + strh r0, [r2, #0x20] + b _081C9C4E +_081C9C46: + ldrh r0, [r2, #0x3c] + strh r0, [r2, #0x20] + ldr r0, _081C9C54 + str r0, [r2, #0x1c] +_081C9C4E: + pop {r0} + bx r0 + .align 2, 0 +_081C9C54: .4byte 0x08007141 + thumb_func_end sub_081C9C20 + + thumb_func_start sub_081C9C58 +sub_081C9C58: @ 0x081C9C58 + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x2e] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _081C9D20 + movs r0, #0x30 + ldrsh r5, [r4, r0] + cmp r5, #0 + bne _081C9C8E + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAffineAnim + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x24] + ldrh r1, [r4, #0x20] + adds r0, r0, r1 + strh r0, [r4, #0x20] + strh r5, [r4, #0x24] + b _081C9D24 +_081C9C8E: + ldrh r0, [r4, #0x32] + adds r0, #0x10 + strh r0, [r4, #0x32] + movs r2, #0x32 + ldrsh r0, [r4, r2] + asrs r1, r0, #3 + adds r0, r1, #0 + subs r0, #0x20 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r1, r0, #1 + movs r2, #0x3c + ldrsh r0, [r4, r2] + cmp r0, #1 + beq _081C9CC4 + cmp r0, #1 + bgt _081C9CB6 + cmp r0, #0 + beq _081C9CC0 + b _081C9CD2 +_081C9CB6: + cmp r0, #2 + beq _081C9CC8 + cmp r0, #3 + beq _081C9CCC + b _081C9CD2 +_081C9CC0: + rsbs r1, r1, #0 + b _081C9CCC +_081C9CC4: + rsbs r0, r1, #0 + b _081C9CD0 +_081C9CC8: + strh r1, [r4, #0x24] + b _081C9CD2 +_081C9CCC: + lsls r0, r1, #1 + adds r0, r0, r1 +_081C9CD0: + strh r0, [r4, #0x24] +_081C9CD2: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _081C9D24 + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + ldrb r1, [r4, #1] + lsrs r1, r1, #6 + ldrb r2, [r4, #3] + lsrs r2, r2, #6 + adds r0, r4, #0 + movs r3, #0 + bl CalcCenterToCornerVec + ldrb r1, [r4, #1] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0xd + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r4, #1] + ldr r0, _081C9D1C + str r0, [r4, #0x1c] + b _081C9D24 + .align 2, 0 +_081C9D1C: .4byte 0x08007141 +_081C9D20: + subs r0, r1, #1 + strh r0, [r4, #0x2e] +_081C9D24: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081C9C58 + + thumb_func_start sub_081C9D2C +sub_081C9D2C: @ 0x081C9D2C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _081C9D54 + adds r4, r0, r1 + ldrh r0, [r4] + movs r1, #0 + ldrsh r2, [r4, r1] + cmp r2, #0 + bne _081C9DE0 + movs r0, #2 + ldrsh r1, [r4, r0] + cmp r1, #0 + beq _081C9D58 + cmp r1, #1 + beq _081C9D78 + b _081C9DE4 + .align 2, 0 +_081C9D54: .4byte 0x03005B68 +_081C9D58: + movs r0, #0x10 + strh r0, [r4, #4] + strh r2, [r4, #6] + movs r1, #0xfc + lsls r1, r1, #6 + movs r0, #0x50 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0x10 + bl SetGpuReg + ldrh r0, [r4, #2] + adds r0, #1 + strh r0, [r4, #2] + b _081C9DE4 +_081C9D78: + ldrh r0, [r4, #8] + ands r1, r0 + cmp r1, #0 + beq _081C9D90 + ldrh r0, [r4, #4] + subs r0, #3 + strh r0, [r4, #4] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _081C9DA2 + strh r2, [r4, #4] + b _081C9DA2 +_081C9D90: + ldrh r0, [r4, #6] + adds r0, #3 + strh r0, [r4, #6] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x10 + ble _081C9DA2 + movs r0, #0x10 + strh r0, [r4, #6] +_081C9DA2: + ldrh r1, [r4, #6] + lsls r1, r1, #8 + ldrh r0, [r4, #4] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xc + bne _081C9DE4 + movs r0, #2 + bl GetSubstructPtr + ldrb r1, [r0, #0xc] + subs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0x80 + lsls r1, r1, #5 + movs r0, #0x52 + bl SetGpuReg + adds r0, r5, #0 + bl DestroyTask + b _081C9DE4 +_081C9DE0: + subs r0, #1 + strh r0, [r4] +_081C9DE4: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081C9D2C + + thumb_func_start sub_081C9DEC +sub_081C9DEC: @ 0x081C9DEC + push {r4, lr} + movs r0, #2 + bl GetSubstructPtr + adds r4, r0, #0 + ldr r0, _081C9E24 + movs r1, #0x10 + movs r2, #0x60 + movs r3, #4 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _081C9E28 + adds r1, r1, r0 + str r1, [r4, #0x28] + bl sub_081C9080 + cmp r0, #0 + beq _081C9E30 + ldr r1, [r4, #0x28] + ldr r0, _081C9E2C + str r0, [r1, #0x1c] + b _081C9E3C + .align 2, 0 +_081C9E24: .4byte 0x085F28D4 +_081C9E28: .4byte 0x020205AC +_081C9E2C: .4byte 0x081C9E59 +_081C9E30: + ldr r0, [r4, #0x28] + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_081C9E3C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081C9DEC + + thumb_func_start sub_081C9E44 +sub_081C9E44: @ 0x081C9E44 + push {lr} + movs r0, #2 + bl GetSubstructPtr + ldr r0, [r0, #0x28] + bl DestroySprite + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081C9E44 + + thumb_func_start sub_081C9E58 +sub_081C9E58: @ 0x081C9E58 + push {lr} + adds r3, r0, #0 + ldrh r0, [r3, #0x2e] + adds r0, #1 + strh r0, [r3, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #8 + ble _081C9E86 + movs r0, #0 + strh r0, [r3, #0x2e] + adds r3, #0x3e + ldrb r2, [r3] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_081C9E86: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081C9E58 + + thumb_func_start sub_081C9E8C +sub_081C9E8C: @ 0x081C9E8C + push {r4, lr} + movs r0, #2 + bl GetSubstructPtr + adds r4, r0, #0 + ldr r0, _081C9EBC + bl AddWindow + strh r0, [r4, #8] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl PutWindowTilemap + ldrb r0, [r4, #8] + movs r1, #0x66 + bl FillWindowPixelBuffer + ldrb r0, [r4, #8] + movs r1, #3 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C9EBC: .4byte 0x085F2834 + thumb_func_end sub_081C9E8C + + thumb_func_start sub_081C9EC0 +sub_081C9EC0: @ 0x081C9EC0 + push {r4, r5, r6, lr} + sub sp, #0xc + movs r0, #2 + bl GetSubstructPtr + adds r5, r0, #0 + bl sub_081C9060 + ldr r1, _081C9F14 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r6, [r0] + movs r2, #1 + rsbs r2, r2, #0 + movs r0, #1 + adds r1, r6, #0 + bl GetStringWidth + adds r4, r0, #0 + ldrb r0, [r5, #8] + movs r1, #0x66 + bl FillWindowPixelBuffer + ldrb r0, [r5, #8] + movs r2, #0xb0 + subs r2, r2, r4 + lsrs r2, r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r1, _081C9F18 + str r1, [sp] + movs r1, #0 + str r1, [sp, #4] + str r6, [sp, #8] + movs r1, #1 + movs r3, #2 + bl AddTextPrinterParameterized3 + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081C9F14: .4byte 0x085F283C +_081C9F18: .4byte 0x085F2874 + thumb_func_end sub_081C9EC0 + + thumb_func_start sub_081C9F1C +sub_081C9F1C: @ 0x081C9F1C + push {r4, r5, r6, lr} + sub sp, #0xc + movs r0, #2 + bl GetSubstructPtr + adds r5, r0, #0 + ldr r6, _081C9F68 + movs r2, #1 + rsbs r2, r2, #0 + movs r0, #1 + adds r1, r6, #0 + bl GetStringWidth + adds r4, r0, #0 + ldrb r0, [r5, #8] + movs r1, #0x66 + bl FillWindowPixelBuffer + ldrb r0, [r5, #8] + movs r2, #0xb0 + subs r2, r2, r4 + lsrs r2, r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r1, _081C9F6C + str r1, [sp] + movs r1, #0 + str r1, [sp, #4] + str r6, [sp, #8] + movs r1, #1 + movs r3, #2 + bl AddTextPrinterParameterized3 + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081C9F68: .4byte 0x085CB5DC +_081C9F6C: .4byte 0x085F2877 + thumb_func_end sub_081C9F1C + + thumb_func_start sub_081C9F70 +sub_081C9F70: @ 0x081C9F70 + push {lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081C9F70 + + thumb_func_start sub_081C9F80 +sub_081C9F80: @ 0x081C9F80 + push {r4, lr} + movs r0, #2 + bl GetSubstructPtr + adds r4, r0, #0 + ldr r0, _081C9F9C + movs r1, #2 + bl CreateTask + strb r0, [r4, #0xa] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C9F9C: .4byte 0x081C9FB5 + thumb_func_end sub_081C9F80 + + thumb_func_start sub_081C9FA0 +sub_081C9FA0: @ 0x081C9FA0 + push {lr} + movs r0, #2 + bl GetSubstructPtr + ldrb r0, [r0, #0xa] + bl DestroyTask + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081C9FA0 + + thumb_func_start sub_081C9FB4 +sub_081C9FB4: @ 0x081C9FB4 + push {lr} + movs r0, #3 + movs r1, #0x80 + movs r2, #1 + bl ChangeBgX + pop {r0} + bx r0 + thumb_func_end sub_081C9FB4 + + thumb_func_start sub_081C9FC4 +sub_081C9FC4: @ 0x081C9FC4 + push {r4, r5, lr} + ldr r0, _081C9FF4 + movs r1, #3 + bl CreateTask + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r5, _081C9FF8 + adds r0, r4, #0 + movs r1, #1 + adds r2, r5, #0 + bl SetWordTaskArg + adds r5, #0xc + adds r0, r4, #0 + movs r1, #3 + adds r2, r5, #0 + bl SetWordTaskArg + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C9FF4: .4byte 0x081CA05D +_081C9FF8: .4byte 0x085F163E + thumb_func_end sub_081C9FC4 + + thumb_func_start sub_081C9FFC +sub_081C9FFC: @ 0x081C9FFC + push {lr} + ldr r0, _081CA00C + movs r1, #0x31 + movs r2, #4 + bl CopyPaletteIntoBufferUnfaded + pop {r0} + bx r0 + .align 2, 0 +_081CA00C: .4byte 0x085F164A + thumb_func_end sub_081C9FFC + + thumb_func_start sub_081CA010 +sub_081CA010: @ 0x081CA010 + push {r4, r5, lr} + ldr r0, _081CA040 + movs r1, #3 + bl CreateTask + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r5, _081CA044 + adds r0, r4, #0 + movs r1, #1 + adds r2, r5, #0 + bl SetWordTaskArg + subs r5, #0xc + adds r0, r4, #0 + movs r1, #3 + adds r2, r5, #0 + bl SetWordTaskArg + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081CA040: .4byte 0x081CA05D +_081CA044: .4byte 0x085F164A + thumb_func_end sub_081CA010 + + thumb_func_start sub_081CA048 +sub_081CA048: @ 0x081CA048 + push {lr} + ldr r0, _081CA058 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_081CA058: .4byte 0x081CA05D + thumb_func_end sub_081CA048 + + thumb_func_start sub_081CA05C +sub_081CA05C: @ 0x081CA05C + push {r4, r5, r6, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r4, r6, #2 + adds r4, r4, r6 + lsls r4, r4, #3 + ldr r0, _081CA0BC + adds r4, r4, r0 + adds r0, r6, #0 + movs r1, #1 + bl GetWordTaskArg + adds r5, r0, #0 + adds r0, r6, #0 + movs r1, #3 + bl GetWordTaskArg + adds r1, r0, #0 + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + str r0, [sp] + add r0, sp, #8 + str r0, [sp, #4] + adds r0, r5, #0 + movs r2, #2 + movs r3, #0xc + bl sub_081C717C + add r0, sp, #8 + movs r1, #0x31 + movs r2, #4 + bl LoadPalette + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #0xc + bne _081CA0B4 + adds r0, r6, #0 + bl DestroyTask +_081CA0B4: + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081CA0BC: .4byte 0x03005B68 + thumb_func_end sub_081CA05C + + thumb_func_start sub_081CA0C0 +sub_081CA0C0: @ 0x081CA0C0 + push {lr} + bl TransferPlttBuffer + bl LoadOam + bl ProcessSpriteCopyRequests + bl ScanlineEffect_InitHBlankDmaTransfer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081CA0C0 + + thumb_func_start sub_081CA0D8 +sub_081CA0D8: @ 0x081CA0D8 + push {lr} + movs r0, #0x50 + movs r1, #0x90 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + movs r1, #0x80 + lsls r1, r1, #6 + movs r0, #0 + bl SetGpuRegBits + movs r0, #0x48 + movs r1, #0x3f + bl SetGpuRegBits + movs r0, #0x4a + movs r1, #0x1f + bl SetGpuRegBits + movs r0, #0x44 + movs r1, #0xa0 + bl SetGpuRegBits + bl ScanlineEffect_Stop + bl sub_081CA1E8 + ldr r2, _081CA134 + ldr r0, [r2] + ldr r1, [r2, #4] + ldr r2, [r2, #8] + bl ScanlineEffect_SetParams + ldr r0, _081CA138 + bl InitKeys_ + ldr r0, _081CA13C + movs r1, #3 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_081CA134: .4byte 0x085F28EC +_081CA138: .4byte 0x081CA0C1 +_081CA13C: .4byte 0x081CA199 + thumb_func_end sub_081CA0D8 + + thumb_func_start sub_081CA140 +sub_081CA140: @ 0x081CA140 + push {lr} + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r1, #0x80 + lsls r1, r1, #6 + movs r0, #0 + bl ClearGpuRegBits + bl ScanlineEffect_Stop + ldr r0, _081CA170 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + bl SetPokenavVBlankCallback + pop {r0} + bx r0 + .align 2, 0 +_081CA170: .4byte 0x081CA199 + thumb_func_end sub_081CA140 + + thumb_func_start sub_081CA174 +sub_081CA174: @ 0x081CA174 + push {lr} + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081CA174 + + thumb_func_start sub_081CA184 +sub_081CA184: @ 0x081CA184 + push {lr} + bl sub_081CA1E8 + movs r0, #0x50 + movs r1, #0x90 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081CA184 + + thumb_func_start sub_081CA198 +sub_081CA198: @ 0x081CA198 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _081CA1E0 + adds r2, r1, r0 + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + cmp r0, #0 + ble _081CA1DC + movs r0, #0 + strh r0, [r2] + ldrh r0, [r2, #2] + adds r0, #3 + movs r1, #0x7f + ands r0, r1 + strh r0, [r2, #2] + ldr r1, _081CA1E4 + movs r3, #2 + ldrsh r0, [r2, r3] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + lsls r1, r1, #0x10 + asrs r1, r1, #0x15 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x54 + bl SetGpuReg +_081CA1DC: + pop {r0} + bx r0 + .align 2, 0 +_081CA1E0: .4byte 0x03005B68 +_081CA1E4: .4byte 0x082FA8CC + thumb_func_end sub_081CA198 + + thumb_func_start sub_081CA1E8 +sub_081CA1E8: @ 0x081CA1E8 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #8 + bl sub_081C9040 + adds r4, r0, #0 + bl sub_081C9050 + ldr r2, _081CA274 + lsls r1, r4, #3 + subs r1, r1, r4 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r2, [r1, #2] + adds r4, r2, #0 + muls r4, r0, r4 + ldrh r1, [r1] + adds r4, r4, r1 + subs r4, #8 + mov r0, sp + movs r6, #0 + strh r6, [r0] + ldr r5, _081CA278 + ldr r0, _081CA27C + mov r8, r0 + mov r0, sp + adds r1, r5, #0 + mov r2, r8 + bl CpuSet + mov r0, sp + adds r0, #2 + strh r6, [r0] + movs r1, #0xf0 + lsls r1, r1, #3 + adds r1, r1, r5 + mov sb, r1 + mov r2, r8 + bl CpuSet + add r0, sp, #4 + ldr r1, _081CA280 + adds r6, r1, #0 + strh r6, [r0] + lsls r4, r4, #1 + adds r5, r4, r5 + ldr r1, _081CA284 + mov r8, r1 + adds r1, r5, #0 + mov r2, r8 + bl CpuSet + mov r0, sp + adds r0, #6 + strh r6, [r0] + add r4, sb + adds r1, r4, #0 + mov r2, r8 + bl CpuSet + add sp, #8 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081CA274: .4byte 0x085F27A8 +_081CA278: .4byte 0x020388C8 +_081CA27C: .4byte 0x010000A0 +_081CA280: .4byte 0x000072F0 +_081CA284: .4byte 0x01000010 + thumb_func_end sub_081CA1E8 + + thumb_func_start sub_081CA288 +sub_081CA288: @ 0x081CA288 + push {lr} + bl sub_081CA174 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081CA288 + diff --git a/asm/pokenav_unk_3.s b/asm/pokenav_unk_3.s new file mode 100644 index 0000000..f9e91ad --- /dev/null +++ b/asm/pokenav_unk_3.s @@ -0,0 +1,1075 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_081CA294 +sub_081CA294: @ 0x081CA294 + push {r4, lr} + movs r1, #0xd4 + lsls r1, r1, #1 + movs r0, #5 + bl AllocSubstruct + adds r4, r0, #0 + cmp r4, #0 + beq _081CA2C8 + ldr r0, _081CA2C0 + str r0, [r4, #0x18] + movs r0, #0 + strh r0, [r4, #8] + str r0, [r4, #0x10] + ldr r0, _081CA2C4 + movs r1, #1 + bl CreateLoopedTask + str r0, [r4, #0x14] + movs r0, #1 + b _081CA2CA + .align 2, 0 +_081CA2C0: .4byte 0x081CA2F1 +_081CA2C4: .4byte 0x081CA4CD +_081CA2C8: + movs r0, #0 +_081CA2CA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081CA294 + + thumb_func_start sub_081CA2D0 +sub_081CA2D0: @ 0x081CA2D0 + push {lr} + movs r0, #5 + bl GetSubstructPtr + ldr r1, [r0, #0x18] + bl _call_via_r1 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CA2D0 + + thumb_func_start sub_081CA2E4 +sub_081CA2E4: @ 0x081CA2E4 + push {lr} + movs r0, #5 + bl FreePokenavSubstruct + pop {r0} + bx r0 + thumb_func_end sub_081CA2E4 + + thumb_func_start sub_081CA2F0 +sub_081CA2F0: @ 0x081CA2F0 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r3, _081CA304 + ldrh r1, [r3, #0x30] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _081CA308 + movs r0, #2 + b _081CA3A0 + .align 2, 0 +_081CA304: .4byte 0x03002360 +_081CA308: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _081CA314 + movs r0, #1 + b _081CA3A0 +_081CA314: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _081CA320 + movs r0, #4 + b _081CA3A0 +_081CA320: + movs r0, #0x10 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0 + beq _081CA330 + movs r0, #3 + b _081CA3A0 +_081CA330: + ldrh r1, [r3, #0x2e] + movs r5, #1 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _081CA37C + ldr r0, _081CA364 + str r0, [r4, #0x18] + strh r2, [r4] + bl GetSelectedMatchCall + lsls r0, r0, #2 + adds r1, r4, r0 + ldrb r0, [r1, #0x1c] + cmp r0, #0 + beq _081CA35A + ldrh r0, [r1, #0x1e] + bl sub_081D0F04 + cmp r0, #0 + beq _081CA36C +_081CA35A: + ldr r0, _081CA368 + str r0, [r4, #4] + movs r0, #2 + strh r0, [r4, #2] + b _081CA372 + .align 2, 0 +_081CA364: .4byte 0x081CA3B1 +_081CA368: .4byte 0x085F3E96 +_081CA36C: + ldr r0, _081CA378 + str r0, [r4, #4] + strh r5, [r4, #2] +_081CA372: + movs r0, #5 + b _081CA3A0 + .align 2, 0 +_081CA378: .4byte 0x085F3E94 +_081CA37C: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081CA39E + bl GetPokenavMode + cmp r0, #1 + beq _081CA398 + ldr r0, _081CA394 + str r0, [r4, #0x18] + movs r0, #0xf + b _081CA3A0 + .align 2, 0 +_081CA394: .4byte 0x081CA3A9 +_081CA398: + movs r0, #0x20 + bl PlaySE +_081CA39E: + movs r0, #0 +_081CA3A0: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CA2F0 + + thumb_func_start sub_081CA3A8 +sub_081CA3A8: @ 0x081CA3A8 + ldr r0, _081CA3AC + bx lr + .align 2, 0 +_081CA3AC: .4byte 0x000186A4 + thumb_func_end sub_081CA3A8 + + thumb_func_start sub_081CA3B0 +sub_081CA3B0: @ 0x081CA3B0 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _081CA3CC + ldrh r1, [r2, #0x2e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _081CA3D0 + ldrh r0, [r4] + cmp r0, #0 + beq _081CA3D0 + subs r0, #1 + b _081CA3E4 + .align 2, 0 +_081CA3CC: .4byte 0x03002360 +_081CA3D0: + ldrh r1, [r2, #0x2e] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _081CA3EA + ldrh r0, [r4] + ldrh r1, [r4, #2] + cmp r0, r1 + bhs _081CA3EA + adds r0, #1 +_081CA3E4: + strh r0, [r4] + movs r0, #6 + b _081CA458 +_081CA3EA: + ldrh r1, [r2, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081CA444 + ldrh r1, [r4] + ldr r0, [r4, #4] + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + beq _081CA438 + cmp r0, #1 + bgt _081CA40A + cmp r0, #0 + beq _081CA410 + b _081CA444 +_081CA40A: + cmp r0, #2 + bne _081CA444 + b _081CA452 +_081CA410: + bl GetPokenavMode + cmp r0, #1 + bne _081CA41E + movs r0, #2 + bl SetPokenavMode +_081CA41E: + ldr r0, _081CA430 + str r0, [r4, #0x18] + bl sub_081CA974 + cmp r0, #0 + beq _081CA434 + movs r0, #9 + b _081CA458 + .align 2, 0 +_081CA430: .4byte 0x081CA4A5 +_081CA434: + movs r0, #8 + b _081CA458 +_081CA438: + ldr r0, _081CA440 + str r0, [r4, #0x18] + movs r0, #0xb + b _081CA458 + .align 2, 0 +_081CA440: .4byte 0x081CA465 +_081CA444: + ldrh r1, [r2, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _081CA452 + movs r0, #0 + b _081CA458 +_081CA452: + ldr r0, _081CA460 + str r0, [r4, #0x18] + movs r0, #7 +_081CA458: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081CA460: .4byte 0x081CA2F1 + thumb_func_end sub_081CA3B0 + + thumb_func_start sub_081CA464 +sub_081CA464: @ 0x081CA464 + push {lr} + adds r3, r0, #0 + ldr r2, _081CA478 + ldrh r1, [r2, #0x30] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _081CA47C + movs r0, #0xc + b _081CA49C + .align 2, 0 +_081CA478: .4byte 0x03002360 +_081CA47C: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _081CA488 + movs r0, #0xd + b _081CA49C +_081CA488: + ldrh r1, [r2, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _081CA496 + movs r0, #0 + b _081CA49C +_081CA496: + ldr r0, _081CA4A0 + str r0, [r3, #0x18] + movs r0, #0xe +_081CA49C: + pop {r1} + bx r1 + .align 2, 0 +_081CA4A0: .4byte 0x081CA2F1 + thumb_func_end sub_081CA464 + + thumb_func_start sub_081CA4A4 +sub_081CA4A4: @ 0x081CA4A4 + push {lr} + adds r2, r0, #0 + ldr r0, _081CA4B8 + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _081CA4BC + movs r0, #0 + b _081CA4C2 + .align 2, 0 +_081CA4B8: .4byte 0x03002360 +_081CA4BC: + ldr r0, _081CA4C8 + str r0, [r2, #0x18] + movs r0, #0xa +_081CA4C2: + pop {r1} + bx r1 + .align 2, 0 +_081CA4C8: .4byte 0x081CA2F1 + thumb_func_end sub_081CA4A4 + + thumb_func_start sub_081CA4CC +sub_081CA4CC: @ 0x081CA4CC + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r0, #5 + bl GetSubstructPtr + adds r4, r0, #0 + cmp r5, #1 + beq _081CA4F8 + cmp r5, #1 + bgt _081CA4E6 + cmp r5, #0 + beq _081CA4F0 + b _081CA5AC +_081CA4E6: + cmp r5, #2 + beq _081CA548 + cmp r5, #3 + beq _081CA5A8 + b _081CA5AC +_081CA4F0: + strh r5, [r4, #8] + strh r5, [r4, #0xa] +_081CA4F4: + movs r0, #1 + b _081CA5AE +_081CA4F8: + movs r6, #0 + ldrh r5, [r4, #8] +_081CA4FC: + adds r0, r5, #0 + bl MatchCallFlagGetByIndex + cmp r0, #0 + beq _081CA52C + ldrh r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r4, r0 + strh r5, [r0, #0x1e] + ldrh r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r4, r0 + movs r1, #1 + strb r1, [r0, #0x1c] + adds r0, r5, #0 + bl MatchCallMapSecGetByIndex + ldrh r1, [r4, #0xa] + lsls r1, r1, #2 + adds r1, r4, r1 + strb r0, [r1, #0x1d] + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] +_081CA52C: + ldrh r0, [r4, #8] + adds r1, r0, #1 + movs r2, #0 + strh r1, [r4, #8] + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x14 + bhi _081CA5A2 + adds r6, #1 + adds r5, #1 + cmp r6, #0x1d + ble _081CA4FC + movs r0, #3 + b _081CA5AE +_081CA548: + movs r6, #0 + ldrh r5, [r4, #8] + movs r7, #0 +_081CA54E: + ldrh r0, [r4, #8] + bl sub_081D12F4 + cmp r0, #0 + bne _081CA588 + ldrh r0, [r4, #8] + bl sub_081CA5B4 + cmp r0, #0 + beq _081CA588 + ldrh r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r4, r0 + ldrh r1, [r4, #8] + strh r1, [r0, #0x1e] + ldrh r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r4, r0 + strb r7, [r0, #0x1c] + adds r0, r5, #0 + bl sub_081CA86C + ldrh r1, [r4, #0xa] + lsls r1, r1, #2 + adds r1, r4, r1 + strb r0, [r1, #0x1d] + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] +_081CA588: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x4d + bhi _081CA4F4 + adds r6, #1 + adds r5, #1 + cmp r6, #0x1d + ble _081CA54E + movs r0, #3 + b _081CA5AE +_081CA5A2: + strh r1, [r4, #0xc] + strh r2, [r4, #8] + b _081CA4F4 +_081CA5A8: + movs r0, #1 + str r0, [r4, #0x10] +_081CA5AC: + movs r0, #4 +_081CA5AE: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_081CA4CC + + thumb_func_start sub_081CA5B4 +sub_081CA5B4: @ 0x081CA5B4 + push {lr} + cmp r0, #0x4d + ble _081CA5BE + movs r0, #0 + b _081CA5D0 +_081CA5BE: + movs r1, #0xae + lsls r1, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_081CA5D0: + pop {r1} + bx r1 + thumb_func_end sub_081CA5B4 + + thumb_func_start sub_081CA5D4 +sub_081CA5D4: @ 0x081CA5D4 + push {lr} + movs r0, #5 + bl GetSubstructPtr + ldr r0, [r0, #0x10] + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CA5D4 + + thumb_func_start sub_081CA5E4 +sub_081CA5E4: @ 0x081CA5E4 + push {lr} + movs r0, #5 + bl GetSubstructPtr + ldrh r0, [r0, #0xa] + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CA5E4 + + thumb_func_start sub_081CA5F4 +sub_081CA5F4: @ 0x081CA5F4 + push {lr} + movs r0, #5 + bl GetSubstructPtr + ldrh r0, [r0, #0xc] + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CA5F4 + + thumb_func_start unref_sub_81CAE58 +unref_sub_81CAE58: @ 0x081CA604 + push {lr} + movs r0, #5 + bl GetSubstructPtr + adds r1, r0, #0 + ldrh r0, [r1, #0xa] + ldrh r1, [r1, #0xc] + subs r0, r0, r1 + pop {r1} + bx r1 + thumb_func_end unref_sub_81CAE58 + + thumb_func_start unref_sub_81CAE6C +unref_sub_81CAE6C: @ 0x081CA618 + push {r4, lr} + adds r4, r0, #0 + movs r0, #5 + bl GetSubstructPtr + adds r1, r0, #0 + ldrh r0, [r1, #0xc] + adds r4, r4, r0 + ldrh r0, [r1, #0xa] + cmp r4, r0 + bge _081CA636 + lsls r0, r4, #2 + adds r0, r1, r0 + ldrh r0, [r0, #0x1e] + b _081CA638 +_081CA636: + movs r0, #0x4e +_081CA638: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end unref_sub_81CAE6C + + thumb_func_start sub_081CA640 +sub_081CA640: @ 0x081CA640 + push {lr} + movs r0, #5 + bl GetSubstructPtr + adds r0, #0x1c + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CA640 + + thumb_func_start sub_081CA650 +sub_081CA650: @ 0x081CA650 + push {r4, lr} + adds r4, r0, #0 + movs r0, #5 + bl GetSubstructPtr + lsls r4, r4, #2 + adds r0, r0, r4 + ldrb r0, [r0, #0x1d] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CA650 + + thumb_func_start sub_081CA668 +sub_081CA668: @ 0x081CA668 + push {r4, lr} + adds r4, r0, #0 + movs r0, #5 + bl GetSubstructPtr + lsls r1, r4, #2 + adds r1, r0, r1 + ldrb r0, [r1, #0x1c] + cmp r0, #0 + bne _081CA680 + ldrh r4, [r1, #0x1e] + b _081CA688 +_081CA680: + ldrh r0, [r1, #0x1e] + bl MatchCall_GetRematchTableIdx + adds r4, r0, #0 +_081CA688: + cmp r4, #0x4e + beq _081CA6A8 + ldr r0, _081CA6A0 + ldr r0, [r0] + ldr r1, _081CA6A4 + adds r0, r0, r1 + adds r0, r0, r4 + ldrb r1, [r0] + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + b _081CA6AA + .align 2, 0 +_081CA6A0: .4byte 0x03005AEC +_081CA6A4: .4byte 0x000009CA +_081CA6A8: + movs r0, #0 +_081CA6AA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081CA668 + + thumb_func_start sub_081CA6B0 +sub_081CA6B0: @ 0x081CA6B0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #5 + bl GetSubstructPtr + lsls r1, r4, #2 + adds r1, r0, r1 + ldrb r0, [r1, #0x1c] + cmp r0, #0 + bne _081CA6DC + ldrh r0, [r1, #0x1e] + bl GetTrainerIdxByRematchIdx + adds r4, r0, #0 + ldr r1, _081CA6D8 + lsls r0, r4, #5 + adds r0, r0, r1 + ldrb r0, [r0, #3] + b _081CA710 + .align 2, 0 +_081CA6D8: .4byte 0x082E383C +_081CA6DC: + ldrh r5, [r1, #0x1e] + adds r0, r5, #0 + bl MatchCall_GetRematchTableIdx + adds r4, r0, #0 + cmp r4, #0x4e + bne _081CA700 + adds r0, r5, #0 + bl sub_081D12CC + adds r4, r0, #0 + ldr r0, _081CA6FC + adds r0, r4, r0 + ldrb r0, [r0] + b _081CA710 + .align 2, 0 +_081CA6FC: .4byte 0x082EFF00 +_081CA700: + adds r0, r4, #0 + bl GetTrainerIdxByRematchIdx + adds r4, r0, #0 + ldr r0, _081CA718 + lsls r1, r4, #5 + adds r1, r1, r0 + ldrb r0, [r1, #3] +_081CA710: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081CA718: .4byte 0x082E383C + thumb_func_end sub_081CA6B0 + + thumb_func_start sub_081CA71C +sub_081CA71C: @ 0x081CA71C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + movs r0, #5 + bl GetSubstructPtr + adds r4, r0, #0 + movs r0, #0 + strb r0, [r6] + ldr r0, _081CA740 + ldrb r0, [r0, #0x17] + bl Overworld_MapTypeAllowsTeleportAndFly + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081CA748 + ldr r0, _081CA744 + b _081CA772 + .align 2, 0 +_081CA740: .4byte 0x02036FB8 +_081CA744: .4byte 0x085F3E99 +_081CA748: + lsls r0, r5, #2 + adds r1, r4, r0 + ldrb r0, [r1, #0x1c] + cmp r0, #0 + bne _081CA768 + ldrh r0, [r1, #0x1e] + bl GetTrainerIdxByRematchIdx + ldr r1, _081CA764 + bl SelectMatchCallMessage + strb r0, [r6] + b _081CA770 + .align 2, 0 +_081CA764: .4byte 0x02021C7C +_081CA768: + ldrh r0, [r1, #0x1e] + ldr r1, _081CA778 + bl MatchCall_GetMessage +_081CA770: + ldr r0, _081CA778 +_081CA772: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_081CA778: .4byte 0x02021C7C + thumb_func_end sub_081CA71C + + thumb_func_start sub_081CA77C +sub_081CA77C: @ 0x081CA77C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #5 + bl GetSubstructPtr + lsls r4, r4, #2 + adds r4, r0, r4 + ldrb r0, [r4, #0x1c] + cmp r0, #0 + beq _081CA7A8 + ldrh r0, [r4, #0x1e] + bl MatchCall_GetRematchTableIdx + adds r1, r0, #0 + cmp r1, #0x4e + bne _081CA7AA + ldrh r0, [r4, #0x1e] + adds r1, r5, #0 + bl sub_081D123C + b _081CA7B6 +_081CA7A8: + ldrh r1, [r4, #0x1e] +_081CA7AA: + ldr r2, _081CA7BC + lsls r0, r5, #2 + lsls r1, r1, #4 + adds r0, r0, r1 + adds r0, r0, r2 + ldr r0, [r0] +_081CA7B6: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081CA7BC: .4byte 0x085F39B4 + thumb_func_end sub_081CA77C + + thumb_func_start sub_081CA7C0 +sub_081CA7C0: @ 0x081CA7C0 + push {lr} + movs r0, #5 + bl GetSubstructPtr + ldrh r0, [r0] + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CA7C0 + + thumb_func_start sub_081CA7D0 +sub_081CA7D0: @ 0x081CA7D0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #5 + bl GetSubstructPtr + adds r1, r0, #0 + ldrh r0, [r1, #2] + cmp r0, r4 + blt _081CA7EA + ldr r0, [r1, #4] + adds r0, r0, r4 + ldrb r0, [r0] + b _081CA7EC +_081CA7EA: + movs r0, #3 +_081CA7EC: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CA7D0 + + thumb_func_start sub_081CA7F4 +sub_081CA7F4: @ 0x081CA7F4 + push {r4, r5, lr} + sub sp, #8 + adds r4, r0, #0 + adds r5, r1, #0 + adds r0, r5, #0 + movs r1, #0 + movs r2, #0xf + bl StringFill + ldrb r0, [r4] + cmp r0, #0 + bne _081CA834 + ldrh r0, [r4, #2] + bl GetTrainerIdxByRematchIdx + lsls r0, r0, #5 + ldr r1, _081CA82C + adds r0, r0, r1 + ldrb r2, [r0, #1] + movs r1, #0xb + muls r1, r2, r1 + ldr r2, _081CA830 + adds r1, r1, r2 + str r1, [sp] + adds r0, #4 + str r0, [sp, #4] + b _081CA83E + .align 2, 0 +_081CA82C: .4byte 0x082E383C +_081CA830: .4byte 0x082E3564 +_081CA834: + ldrh r0, [r4, #2] + add r2, sp, #4 + mov r1, sp + bl sub_081D1178 +_081CA83E: + ldr r1, [sp] + cmp r1, #0 + beq _081CA864 + ldr r0, [sp, #4] + cmp r0, #0 + beq _081CA864 + adds r0, r5, #0 + bl StringCopy + movs r4, #0 + strb r4, [r0] + adds r0, r5, #0 + adds r0, #0xa + ldr r1, [sp, #4] + bl StringCopy + strb r4, [r0] + movs r0, #0xff + strb r0, [r5, #0xf] +_081CA864: + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_081CA7F4 + + thumb_func_start sub_081CA86C +sub_081CA86C: @ 0x081CA86C + push {lr} + ldr r1, _081CA884 + lsls r0, r0, #4 + adds r0, r0, r1 + ldrh r2, [r0, #0xa] + ldrh r1, [r0, #0xc] + adds r0, r2, #0 + bl Overworld_GetMapHeaderByGroupAndId + ldrb r0, [r0, #0x14] + pop {r1} + bx r1 + .align 2, 0 +_081CA884: .4byte 0x0852AD40 + thumb_func_end sub_081CA86C + + thumb_func_start sub_081CA888 +sub_081CA888: @ 0x081CA888 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r0, #5 + bl GetSubstructPtr + adds r7, r0, #0 + movs r6, #1 + adds r5, #1 + ldrh r0, [r7, #0xa] + cmp r5, r0 + bge _081CA8C4 + lsls r0, r5, #2 + adds r0, #0x1c + adds r4, r0, r7 +_081CA8A4: + ldrb r0, [r4] + cmp r0, #0 + beq _081CA8B4 + ldrh r0, [r4, #2] + bl sub_081D0F04 + cmp r0, #0 + beq _081CA8B8 +_081CA8B4: + adds r0, r6, #0 + b _081CA8C6 +_081CA8B8: + adds r6, #1 + adds r4, #4 + adds r5, #1 + ldrh r0, [r7, #0xa] + cmp r5, r0 + blt _081CA8A4 +_081CA8C4: + movs r0, #0 +_081CA8C6: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_081CA888 + + thumb_func_start sub_081CA8CC +sub_081CA8CC: @ 0x081CA8CC + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #5 + bl GetSubstructPtr + adds r1, r0, #0 + movs r6, #1 + rsbs r6, r6, #0 + subs r5, #1 + cmp r5, #0 + blt _081CA906 + lsls r0, r5, #2 + adds r0, #0x1c + adds r4, r0, r1 +_081CA8E8: + ldrb r0, [r4] + cmp r0, #0 + beq _081CA8F8 + ldrh r0, [r4, #2] + bl sub_081D0F04 + cmp r0, #0 + beq _081CA8FC +_081CA8F8: + adds r0, r6, #0 + b _081CA908 +_081CA8FC: + subs r6, #1 + subs r4, #4 + subs r5, #1 + cmp r5, #0 + bge _081CA8E8 +_081CA906: + movs r0, #0 +_081CA908: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CA8CC + + thumb_func_start unref_sub_81CB16C +unref_sub_81CB16C: @ 0x081CA910 + push {r4, lr} + movs r4, #0 +_081CA914: + adds r0, r4, #0 + bl sub_081CA5B4 + cmp r0, #0 + beq _081CA92E + ldr r0, _081CA95C + ldr r0, [r0] + ldr r1, _081CA960 + adds r0, r0, r1 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0 + bne _081CA956 +_081CA92E: + adds r4, #1 + cmp r4, #0x4d + ble _081CA914 + movs r4, #0 +_081CA936: + adds r0, r4, #0 + bl MatchCallFlagGetByIndex + cmp r0, #0 + beq _081CA964 + adds r0, r4, #0 + bl MatchCall_GetRematchTableIdx + ldr r1, _081CA95C + ldr r1, [r1] + ldr r2, _081CA960 + adds r1, r1, r2 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0 + beq _081CA964 +_081CA956: + movs r0, #1 + b _081CA96C + .align 2, 0 +_081CA95C: .4byte 0x03005AEC +_081CA960: .4byte 0x000009CA +_081CA964: + adds r4, #1 + cmp r4, #0x14 + ble _081CA936 + movs r0, #0 +_081CA96C: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end unref_sub_81CB16C + + thumb_func_start sub_081CA974 +sub_081CA974: @ 0x081CA974 + push {r4, lr} + movs r0, #5 + bl GetSubstructPtr + adds r4, r0, #0 + bl GetSelectedMatchCall + adds r1, r0, #0 + lsls r0, r1, #2 + adds r4, r4, r0 + ldrb r0, [r4, #0x1c] + cmp r0, #0 + bne _081CA9BC + adds r0, r1, #0 + bl sub_081CA650 + ldr r1, _081CA9B0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r1, #0x14] + cmp r0, r1 + bne _081CA9FC + ldr r0, _081CA9B4 + ldr r0, [r0] + ldr r1, _081CA9B8 + adds r0, r0, r1 + ldrh r4, [r4, #0x1e] + adds r0, r0, r4 + ldrb r0, [r0] + b _081CA9EA + .align 2, 0 +_081CA9B0: .4byte 0x02036FB8 +_081CA9B4: .4byte 0x03005AEC +_081CA9B8: .4byte 0x000009CA +_081CA9BC: + ldrh r0, [r4, #0x1e] + cmp r0, #0xb + bne _081CA9FC + adds r0, r1, #0 + bl sub_081CA650 + ldr r1, _081CA9F4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r1, #0x14] + cmp r0, r1 + bne _081CA9FC + ldr r0, _081CA9F8 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081CA9FC + movs r0, #0x5b + bl FlagGet + lsls r0, r0, #0x18 +_081CA9EA: + cmp r0, #0 + bne _081CA9FC + movs r0, #1 + b _081CA9FE + .align 2, 0 +_081CA9F4: .4byte 0x02036FB8 +_081CA9F8: .4byte 0x0000086B +_081CA9FC: + movs r0, #0 +_081CA9FE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081CA974 + diff --git a/asm/pokenav_unk_4.s b/asm/pokenav_unk_4.s new file mode 100644 index 0000000..f9580a9 --- /dev/null +++ b/asm/pokenav_unk_4.s @@ -0,0 +1,10544 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_081CAA04 +sub_081CAA04: @ 0x081CAA04 + push {r4, lr} + ldr r1, _081CAA2C + movs r0, #6 + bl AllocSubstruct + adds r4, r0, #0 + cmp r4, #0 + beq _081CAA38 + movs r0, #0 + strb r0, [r4, #0x19] + ldr r0, _081CAA30 + movs r1, #1 + bl CreateLoopedTask + str r0, [r4, #4] + ldr r0, _081CAA34 + str r0, [r4] + movs r0, #1 + b _081CAA3A + .align 2, 0 +_081CAA2C: .4byte 0x00002048 +_081CAA30: .4byte 0x081CAAC9 +_081CAA34: .4byte 0x081CAAB5 +_081CAA38: + movs r0, #0 +_081CAA3A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081CAA04 + + thumb_func_start sub_081CAA40 +sub_081CAA40: @ 0x081CAA40 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #6 + bl GetSubstructPtr + adds r5, r0, #0 + ldr r0, _081CAA68 + lsls r4, r4, #2 + adds r4, r4, r0 + ldr r0, [r4] + movs r1, #1 + bl CreateLoopedTask + str r0, [r5, #4] + ldr r0, _081CAA6C + str r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081CAA68: .4byte 0x085F4138 +_081CAA6C: .4byte 0x081CAAB5 + thumb_func_end sub_081CAA40 + + thumb_func_start sub_081CAA70 +sub_081CAA70: @ 0x081CAA70 + push {lr} + movs r0, #6 + bl GetSubstructPtr + ldr r0, [r0] + bl _call_via_r0 + pop {r1} + thumb_func_end sub_081CAA70 + + thumb_func_start sub_081CAA80 +sub_081CAA80: @ 0x081CAA80 + bx r1 + .align 2, 0 + thumb_func_end sub_081CAA80 + + thumb_func_start sub_081CAA84 +sub_081CAA84: @ 0x081CAA84 + push {r4, lr} + movs r0, #6 + bl GetSubstructPtr + adds r4, r0, #0 + bl sub_081CBA08 + bl sub_081CB38C + ldrb r0, [r4, #0x12] + bl RemoveWindow + ldrb r0, [r4, #0x10] + bl RemoveWindow + ldrb r0, [r4, #0x14] + bl RemoveWindow + movs r0, #6 + bl FreePokenavSubstruct + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_081CAA84 + + thumb_func_start sub_081CAAB4 +sub_081CAAB4: @ 0x081CAAB4 + push {lr} + movs r0, #6 + bl GetSubstructPtr + ldr r0, [r0, #4] + bl IsLoopedTaskActive + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CAAB4 + + thumb_func_start sub_081CAAC8 +sub_081CAAC8: @ 0x081CAAC8 + push {r4, r5, lr} + sub sp, #8 + adds r4, r0, #0 + movs r0, #6 + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #7 + bls _081CAADC + b _081CACA8 +_081CAADC: + lsls r0, r4, #2 + ldr r1, _081CAAE8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081CAAE8: .4byte 0x081CAAEC +_081CAAEC: @ jump table + .4byte _081CAB0C @ case 0 + .4byte _081CAB78 @ case 1 + .4byte _081CABC8 @ case 2 + .4byte _081CAC0C @ case 3 + .4byte _081CAC26 @ case 4 + .4byte _081CAC38 @ case 5 + .4byte _081CAC4A @ case 6 + .4byte _081CAC8E @ case 7 +_081CAB0C: + ldr r0, _081CAB64 + movs r1, #3 + bl InitBgTemplates + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + ldr r1, _081CAB68 + movs r0, #0 + str r0, [sp] + movs r0, #2 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + ldr r0, _081CAB6C + adds r1, r5, r0 + movs r0, #2 + bl SetBgTilemapBuffer + ldr r1, _081CAB70 + movs r0, #2 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + movs r0, #2 + bl CopyBgTilemapBufferToVram + ldr r0, _081CAB74 + movs r1, #0x20 + movs r2, #0x20 + bl CopyPaletteIntoBufferUnfaded + movs r0, #2 + b _081CABBC + .align 2, 0 +_081CAB64: .4byte 0x085F412C +_081CAB68: .4byte 0x085F3ED0 +_081CAB6C: .4byte 0x00001024 +_081CAB70: .4byte 0x085F3F74 +_081CAB74: .4byte 0x085F3EB0 +_081CAB78: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081CAB84 + b _081CAC9E +_081CAB84: + movs r0, #1 + movs r1, #0 + movs r2, #0 + movs r3, #1 + bl sub_08199A88 + adds r1, r5, #0 + adds r1, #0x24 + movs r0, #1 + bl SetBgTilemapBuffer + movs r1, #0x80 + lsls r1, r1, #5 + movs r0, #0x20 + str r0, [sp] + movs r0, #0x14 + str r0, [sp, #4] + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + ldr r0, _081CABC4 + movs r1, #0x10 + movs r2, #0x20 + bl CopyPaletteIntoBufferUnfaded + movs r0, #1 +_081CABBC: + bl CopyBgTilemapBufferToVram + movs r0, #0 + b _081CACAA + .align 2, 0 +_081CABC4: .4byte 0x085F4080 +_081CABC8: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _081CAC9E + adds r0, r5, #0 + bl sub_081CB780 + ldr r1, _081CAC00 + str r4, [sp] + movs r0, #3 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + ldr r0, _081CAC04 + movs r1, #0x30 + movs r2, #0x20 + bl CopyPaletteIntoBufferUnfaded + ldr r0, _081CAC08 + movs r1, #0x50 + movs r2, #0x20 + bl CopyPaletteIntoBufferUnfaded + movs r0, #0 + b _081CACAA + .align 2, 0 +_081CAC00: .4byte 0x085F4100 +_081CAC04: .4byte 0x085F40A0 +_081CAC08: .4byte 0x085F40C0 +_081CAC0C: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081CAC9E + bl sub_081CA5D4 + cmp r0, #0 + beq _081CAC9E + bl sub_081CB32C + movs r0, #0 + b _081CACAA +_081CAC26: + bl sub_081C79CC + cmp r0, #0 + bne _081CAC9E + adds r0, r5, #0 + bl sub_081CB4E8 + movs r0, #0 + b _081CACAA +_081CAC38: + adds r0, r5, #0 + bl sub_081CB530 + adds r0, r5, #0 + movs r1, #0 + bl sub_081CB640 + movs r0, #0 + b _081CACAA +_081CAC4A: + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg + movs r0, #1 + bl ShowBg + bl sub_081CB968 + movs r0, #3 + bl LoadLeftHeaderGfxForIndex + movs r0, #3 + movs r1, #1 + movs r2, #0 + bl sub_081C7748 + movs r0, #1 + bl sub_081C7280 + movs r0, #0 + b _081CACAA +_081CAC8E: + bl IsDma3ManagerBusyWithBgCopy_ + cmp r0, #0 + bne _081CAC9E + bl sub_081C77B8 + cmp r0, #0 + beq _081CACA2 +_081CAC9E: + movs r0, #2 + b _081CACAA +_081CACA2: + movs r0, #1 + bl sub_081CB3A8 +_081CACA8: + movs r0, #4 +_081CACAA: + add sp, #8 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CAAC8 + + thumb_func_start sub_081CACB4 +sub_081CACB4: @ 0x081CACB4 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #6 + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #1 + beq _081CACF4 + cmp r4, #1 + bgt _081CACCE + cmp r4, #0 + beq _081CACD8 + b _081CAD16 +_081CACCE: + cmp r4, #2 + beq _081CACFC + cmp r4, #3 + beq _081CAD08 + b _081CAD16 +_081CACD8: + movs r0, #5 + bl PlaySE + bl MatchCall_MoveCursorDown + cmp r0, #1 + beq _081CACF0 + cmp r0, #1 + bgt _081CAD04 + cmp r0, #0 + bne _081CAD04 + b _081CAD16 +_081CACF0: + movs r0, #7 + b _081CAD18 +_081CACF4: + bl sub_081C7DD8 + cmp r0, #0 + bne _081CAD12 +_081CACFC: + adds r0, r5, #0 + movs r1, #0 + bl sub_081CB640 +_081CAD04: + movs r0, #0 + b _081CAD18 +_081CAD08: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081CAD16 +_081CAD12: + movs r0, #2 + b _081CAD18 +_081CAD16: + movs r0, #4 +_081CAD18: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CACB4 + + thumb_func_start sub_081CAD20 +sub_081CAD20: @ 0x081CAD20 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #6 + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #1 + beq _081CAD60 + cmp r4, #1 + bgt _081CAD3A + cmp r4, #0 + beq _081CAD44 + b _081CAD82 +_081CAD3A: + cmp r4, #2 + beq _081CAD68 + cmp r4, #3 + beq _081CAD74 + b _081CAD82 +_081CAD44: + movs r0, #5 + bl PlaySE + bl MatchCall_MoveCursorUp + cmp r0, #1 + beq _081CAD5C + cmp r0, #1 + bgt _081CAD70 + cmp r0, #0 + bne _081CAD70 + b _081CAD82 +_081CAD5C: + movs r0, #7 + b _081CAD84 +_081CAD60: + bl sub_081C7DD8 + cmp r0, #0 + bne _081CAD7E +_081CAD68: + adds r0, r5, #0 + movs r1, #0 + bl sub_081CB640 +_081CAD70: + movs r0, #0 + b _081CAD84 +_081CAD74: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081CAD82 +_081CAD7E: + movs r0, #2 + b _081CAD84 +_081CAD82: + movs r0, #4 +_081CAD84: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CAD20 + + thumb_func_start sub_081CAD8C +sub_081CAD8C: @ 0x081CAD8C + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #6 + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #1 + beq _081CADCC + cmp r4, #1 + bgt _081CADA6 + cmp r4, #0 + beq _081CADB0 + b _081CADEE +_081CADA6: + cmp r4, #2 + beq _081CADD4 + cmp r4, #3 + beq _081CADE0 + b _081CADEE +_081CADB0: + movs r0, #5 + bl PlaySE + bl MatchCall_PageDown + cmp r0, #1 + beq _081CADC8 + cmp r0, #1 + bgt _081CADDC + cmp r0, #0 + bne _081CADDC + b _081CADEE +_081CADC8: + movs r0, #7 + b _081CADF0 +_081CADCC: + bl sub_081C7DD8 + cmp r0, #0 + bne _081CADEA +_081CADD4: + adds r0, r5, #0 + movs r1, #0 + bl sub_081CB640 +_081CADDC: + movs r0, #0 + b _081CADF0 +_081CADE0: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081CADEE +_081CADEA: + movs r0, #2 + b _081CADF0 +_081CADEE: + movs r0, #4 +_081CADF0: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CAD8C + + thumb_func_start sub_081CADF8 +sub_081CADF8: @ 0x081CADF8 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #6 + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #1 + beq _081CAE38 + cmp r4, #1 + bgt _081CAE12 + cmp r4, #0 + beq _081CAE1C + b _081CAE5A +_081CAE12: + cmp r4, #2 + beq _081CAE40 + cmp r4, #3 + beq _081CAE4C + b _081CAE5A +_081CAE1C: + movs r0, #5 + bl PlaySE + bl MatchCall_PageUp + cmp r0, #1 + beq _081CAE34 + cmp r0, #1 + bgt _081CAE48 + cmp r0, #0 + bne _081CAE48 + b _081CAE5A +_081CAE34: + movs r0, #7 + b _081CAE5C +_081CAE38: + bl sub_081C7DD8 + cmp r0, #0 + bne _081CAE56 +_081CAE40: + adds r0, r5, #0 + movs r1, #0 + bl sub_081CB640 +_081CAE48: + movs r0, #0 + b _081CAE5C +_081CAE4C: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081CAE5A +_081CAE56: + movs r0, #2 + b _081CAE5C +_081CAE5A: + movs r0, #4 +_081CAE5C: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CADF8 + + thumb_func_start sub_081CAE64 +sub_081CAE64: @ 0x081CAE64 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #6 + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #0 + beq _081CAE7A + cmp r4, #1 + beq _081CAE90 + b _081CAE9E +_081CAE7A: + movs r0, #5 + bl PlaySE + adds r0, r5, #0 + bl sub_081CB6AC + movs r0, #7 + bl sub_081C7364 + movs r0, #0 + b _081CAEA0 +_081CAE90: + adds r0, r5, #0 + bl sub_081CB710 + cmp r0, #0 + beq _081CAE9E + movs r0, #2 + b _081CAEA0 +_081CAE9E: + movs r0, #4 +_081CAEA0: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CAE64 + + thumb_func_start sub_081CAEA8 +sub_081CAEA8: @ 0x081CAEA8 + push {r4, lr} + movs r0, #5 + bl PlaySE + movs r0, #6 + bl GetSubstructPtr + adds r4, r0, #0 + bl sub_081CA7C0 + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl sub_081CBA98 + movs r0, #4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081CAEA8 + + thumb_func_start sub_081CAED0 +sub_081CAED0: @ 0x081CAED0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #6 + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #0 + beq _081CAEE6 + cmp r4, #1 + beq _081CAEFC + b _081CAF0A +_081CAEE6: + movs r0, #5 + bl PlaySE + adds r0, r5, #0 + bl sub_081CB73C + movs r0, #6 + bl sub_081C7364 + movs r0, #0 + b _081CAF0C +_081CAEFC: + adds r0, r5, #0 + bl sub_081CB750 + cmp r0, #0 + beq _081CAF0A + movs r0, #2 + b _081CAF0C +_081CAF0A: + movs r0, #4 +_081CAF0C: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CAED0 + + thumb_func_start sub_081CAF14 +sub_081CAF14: @ 0x081CAF14 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #6 + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #1 + beq _081CAF48 + cmp r4, #1 + bgt _081CAF2E + cmp r4, #0 + beq _081CAF38 + b _081CAF8E +_081CAF2E: + cmp r4, #2 + beq _081CAF6C + cmp r4, #3 + beq _081CAF80 + b _081CAF8E +_081CAF38: + movs r0, #1 + bl ToggleMatchCallVerticalArrows + adds r0, r5, #0 + bl sub_081CB7A4 + movs r0, #0 + b _081CAF90 +_081CAF48: + adds r0, r5, #0 + bl sub_081CB81C + adds r4, r0, #0 + cmp r4, #0 + bne _081CAF8A + adds r0, r5, #0 + bl sub_081CB82C + ldr r0, _081CAF68 + bl PlaySE + strb r4, [r5, #0xe] + movs r0, #0 + b _081CAF90 + .align 2, 0 +_081CAF68: .4byte 0x00000107 +_081CAF6C: + adds r0, r5, #0 + bl sub_081CB854 + cmp r0, #0 + bne _081CAF8A + adds r0, r5, #0 + bl sub_081CB8AC + movs r0, #0 + b _081CAF90 +_081CAF80: + adds r0, r5, #0 + bl sub_081CB8E8 + cmp r0, #0 + beq _081CAF8E +_081CAF8A: + movs r0, #2 + b _081CAF90 +_081CAF8E: + movs r0, #4 +_081CAF90: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CAF14 + + thumb_func_start sub_081CAF98 +sub_081CAF98: @ 0x081CAF98 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #6 + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #1 + beq _081CAFD2 + cmp r4, #1 + bgt _081CAFB2 + cmp r4, #0 + beq _081CAFB8 + b _081CAFF4 +_081CAFB2: + cmp r4, #2 + beq _081CAFE6 + b _081CAFF4 +_081CAFB8: + movs r0, #5 + bl PlaySE + adds r0, r5, #0 + bl sub_081CB7E8 + movs r0, #1 + bl ToggleMatchCallVerticalArrows + movs r0, #1 + strb r0, [r5, #0xe] + movs r0, #0 + b _081CAFF6 +_081CAFD2: + adds r0, r5, #0 + bl sub_081CB81C + cmp r0, #0 + bne _081CAFF0 + adds r0, r5, #0 + bl sub_081CB86C + movs r0, #0 + b _081CAFF6 +_081CAFE6: + adds r0, r5, #0 + bl sub_081CB894 + cmp r0, #0 + beq _081CAFF4 +_081CAFF0: + movs r0, #2 + b _081CAFF6 +_081CAFF4: + movs r0, #4 +_081CAFF6: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_081CAF98 + + thumb_func_start sub_081CAFFC +sub_081CAFFC: @ 0x081CAFFC + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #6 + bl GetSubstructPtr + adds r4, r0, #0 + movs r6, #0 + cmp r5, #6 + bhi _081CB0A8 + lsls r0, r5, #2 + ldr r1, _081CB018 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081CB018: .4byte 0x081CB01C +_081CB01C: @ jump table + .4byte _081CB038 @ case 0 + .4byte _081CB04E @ case 1 + .4byte _081CB056 @ case 2 + .4byte _081CB064 @ case 3 + .4byte _081CB06C @ case 4 + .4byte _081CB080 @ case 5 + .4byte _081CB096 @ case 6 +_081CB038: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _081CB046 + movs r0, #0x84 + lsls r0, r0, #1 + bl PlaySE +_081CB046: + movs r0, #5 + bl PlaySE + b _081CB0A8 +_081CB04E: + adds r0, r4, #0 + bl sub_081CB930 + b _081CB0A8 +_081CB056: + adds r0, r4, #0 + bl sub_081CB958 + cmp r0, #0 + beq _081CB0A8 +_081CB060: + movs r6, #2 + b _081CB0A8 +_081CB064: + adds r0, r4, #0 + bl sub_081CB73C + b _081CB0A8 +_081CB06C: + adds r0, r4, #0 + bl sub_081CB750 + cmp r0, #0 + beq _081CB078 + movs r6, #2 +_081CB078: + movs r0, #6 + bl sub_081C7364 + b _081CB0A8 +_081CB080: + bl sub_081C73A8 + cmp r0, #0 + bne _081CB060 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _081CB0A0 + bl sub_081C7FE0 + movs r6, #1 + b _081CB0A8 +_081CB096: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081CB060 +_081CB0A0: + movs r0, #0 + bl ToggleMatchCallVerticalArrows + movs r6, #4 +_081CB0A8: + adds r0, r6, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_081CAFFC + + thumb_func_start sub_081CB0B0 +sub_081CB0B0: @ 0x081CB0B0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #6 + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #1 + beq _081CB0E8 + cmp r4, #1 + bgt _081CB0CA + cmp r4, #0 + beq _081CB0D4 + b _081CB132 +_081CB0CA: + cmp r4, #2 + beq _081CB104 + cmp r4, #3 + beq _081CB114 + b _081CB132 +_081CB0D4: + movs r0, #5 + bl PlaySE + bl sub_081C7F24 + adds r0, r5, #0 + bl sub_081CB760 + movs r0, #0 + b _081CB134 +_081CB0E8: + bl sub_081C7FC8 + cmp r0, #0 + bne _081CB12E + adds r0, r5, #0 + bl sub_081CB750 + cmp r0, #0 + bne _081CB12E + movs r0, #8 + bl sub_081C7364 + movs r0, #0 + b _081CB134 +_081CB104: + movs r0, #0 + bl sub_081C7F54 + adds r0, r5, #0 + bl sub_081CBAF0 + movs r0, #0 + b _081CB134 +_081CB114: + bl sub_081C7FC8 + cmp r0, #0 + bne _081CB12E + adds r0, r5, #0 + bl sub_081CBB80 + cmp r0, #0 + bne _081CB12E + bl sub_081C73A8 + cmp r0, #0 + beq _081CB132 +_081CB12E: + movs r0, #2 + b _081CB134 +_081CB132: + movs r0, #4 +_081CB134: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CB0B0 + + thumb_func_start sub_081CB13C +sub_081CB13C: @ 0x081CB13C + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #6 + bl GetSubstructPtr + adds r4, r0, #0 + cmp r5, #4 + bhi _081CB1D4 + lsls r0, r5, #2 + ldr r1, _081CB158 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081CB158: .4byte 0x081CB15C +_081CB15C: @ jump table + .4byte _081CB170 @ case 0 + .4byte _081CB190 @ case 1 + .4byte _081CB1A8 @ case 2 + .4byte _081CB1B4 @ case 3 + .4byte _081CB1BE @ case 4 +_081CB170: + bl GetMatchCallListTopIndex + bl sub_081CA888 + adds r5, r0, #0 + cmp r5, #0 + beq _081CB1D4 + movs r0, #5 + bl PlaySE + strh r5, [r4, #0x16] + adds r0, r4, #0 + bl sub_081CBB74 + movs r0, #0 + b _081CB1D6 +_081CB190: + adds r0, r4, #0 + bl sub_081CBB80 + cmp r0, #0 + bne _081CB1D0 + movs r0, #0x16 + ldrsh r1, [r4, r0] + adds r0, r4, #0 + bl sub_081CB640 + movs r0, #0 + b _081CB1D6 +_081CB1A8: + movs r1, #0x16 + ldrsh r0, [r4, r1] + bl sub_081C7F54 + movs r0, #0 + b _081CB1D6 +_081CB1B4: + adds r0, r4, #0 + bl sub_081CBAF0 + movs r0, #0 + b _081CB1D6 +_081CB1BE: + bl sub_081C7FC8 + cmp r0, #0 + bne _081CB1D0 + adds r0, r4, #0 + bl sub_081CBB80 + cmp r0, #0 + beq _081CB1D4 +_081CB1D0: + movs r0, #2 + b _081CB1D6 +_081CB1D4: + movs r0, #4 +_081CB1D6: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_081CB13C + + thumb_func_start sub_081CB1DC +sub_081CB1DC: @ 0x081CB1DC + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #6 + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #1 + beq _081CB210 + cmp r4, #1 + bgt _081CB1F6 + cmp r4, #0 + beq _081CB1FC + b _081CB240 +_081CB1F6: + cmp r4, #2 + beq _081CB232 + b _081CB240 +_081CB1FC: + movs r0, #5 + bl PlaySE + adds r0, r5, #0 + bl sub_081CBB74 + bl sub_081C7F98 + movs r0, #0 + b _081CB242 +_081CB210: + bl sub_081C7FC8 + cmp r0, #0 + bne _081CB23C + adds r0, r5, #0 + bl sub_081CBB80 + cmp r0, #0 + bne _081CB23C + movs r0, #6 + bl sub_081C7364 + adds r0, r5, #0 + bl sub_081CB530 + movs r0, #0 + b _081CB242 +_081CB232: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081CB240 +_081CB23C: + movs r0, #2 + b _081CB242 +_081CB240: + movs r0, #4 +_081CB242: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_081CB1DC + + thumb_func_start sub_081CB248 +sub_081CB248: @ 0x081CB248 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #6 + bl GetSubstructPtr + adds r4, r0, #0 + cmp r5, #4 + bhi _081CB2E0 + lsls r0, r5, #2 + ldr r1, _081CB264 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081CB264: .4byte 0x081CB268 +_081CB268: @ jump table + .4byte _081CB27C @ case 0 + .4byte _081CB29C @ case 1 + .4byte _081CB2B4 @ case 2 + .4byte _081CB2C0 @ case 3 + .4byte _081CB2CA @ case 4 +_081CB27C: + bl GetMatchCallListTopIndex + bl sub_081CA8CC + adds r5, r0, #0 + cmp r5, #0 + beq _081CB2E0 + movs r0, #5 + bl PlaySE + strh r5, [r4, #0x16] + adds r0, r4, #0 + bl sub_081CBB74 + movs r0, #0 + b _081CB2E2 +_081CB29C: + adds r0, r4, #0 + bl sub_081CBB80 + cmp r0, #0 + bne _081CB2DC + movs r0, #0x16 + ldrsh r1, [r4, r0] + adds r0, r4, #0 + bl sub_081CB640 + movs r0, #0 + b _081CB2E2 +_081CB2B4: + movs r1, #0x16 + ldrsh r0, [r4, r1] + bl sub_081C7F54 + movs r0, #0 + b _081CB2E2 +_081CB2C0: + adds r0, r4, #0 + bl sub_081CBAF0 + movs r0, #0 + b _081CB2E2 +_081CB2CA: + bl sub_081C7FC8 + cmp r0, #0 + bne _081CB2DC + adds r0, r4, #0 + bl sub_081CBB80 + cmp r0, #0 + beq _081CB2E0 +_081CB2DC: + movs r0, #2 + b _081CB2E2 +_081CB2E0: + movs r0, #4 +_081CB2E2: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_081CB248 + + thumb_func_start sub_081CB2E8 +sub_081CB2E8: @ 0x081CB2E8 + push {lr} + cmp r0, #0 + beq _081CB2F4 + cmp r0, #1 + beq _081CB30E + b _081CB326 +_081CB2F4: + movs r0, #5 + bl PlaySE + movs r0, #0 + bl sub_081CB3A8 + movs r0, #0 + bl sub_081C7280 + bl sub_081C7060 + movs r0, #0 + b _081CB328 +_081CB30E: + bl IsDma3ManagerBusyWithBgCopy_ + cmp r0, #0 + bne _081CB31E + bl MainMenuLoopedTaskIsBusy + cmp r0, #0 + beq _081CB322 +_081CB31E: + movs r0, #2 + b _081CB328 +_081CB322: + bl sub_081C7784 +_081CB326: + movs r0, #4 +_081CB328: + pop {r1} + bx r1 + thumb_func_end sub_081CB2E8 + + thumb_func_start sub_081CB32C +sub_081CB32C: @ 0x081CB32C + push {lr} + sub sp, #0x18 + bl sub_081CA640 + str r0, [sp] + bl sub_081CA5E4 + mov r1, sp + movs r2, #0 + strh r0, [r1, #4] + movs r0, #4 + strb r0, [r1, #8] + mov r0, sp + strh r2, [r0, #6] + movs r0, #0xe + strb r0, [r1, #9] + movs r0, #0xf + strb r0, [r1, #0xa] + movs r0, #1 + strb r0, [r1, #0xb] + movs r0, #8 + strb r0, [r1, #0xc] + movs r0, #3 + strb r0, [r1, #0xd] + ldr r0, _081CB37C + str r0, [sp, #0x10] + ldr r0, _081CB380 + str r0, [sp, #0x14] + ldr r0, _081CB384 + movs r2, #2 + bl sub_081C797C + ldr r0, _081CB388 + movs r1, #7 + bl CreateTask + add sp, #0x18 + pop {r0} + bx r0 + .align 2, 0 +_081CB37C: .4byte 0x081CA7F5 +_081CB380: .4byte 0x081CB45D +_081CB384: .4byte 0x085F4134 +_081CB388: .4byte 0x081CB3D5 + thumb_func_end sub_081CB32C + + thumb_func_start sub_081CB38C +sub_081CB38C: @ 0x081CB38C + push {lr} + bl sub_081C79DC + ldr r0, _081CB3A4 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + pop {r0} + bx r0 + .align 2, 0 +_081CB3A4: .4byte 0x081CB3D5 + thumb_func_end sub_081CB38C + + thumb_func_start sub_081CB3A8 +sub_081CB3A8: @ 0x081CB3A8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _081CB3CC + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xff + beq _081CB3C6 + ldr r1, _081CB3D0 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r4, [r0, #0x26] +_081CB3C6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081CB3CC: .4byte 0x081CB3D5 +_081CB3D0: .4byte 0x03005B60 + thumb_func_end sub_081CB3A8 + + thumb_func_start sub_081CB3D4 +sub_081CB3D4: @ 0x081CB3D4 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _081CB440 + adds r2, r1, r0 + movs r1, #0x1e + ldrsh r0, [r2, r1] + cmp r0, #0 + beq _081CB438 + ldrh r0, [r2] + adds r0, #4 + movs r1, #0x7f + ands r0, r1 + strh r0, [r2] + ldr r1, _081CB444 + movs r3, #0 + ldrsh r0, [r2, r3] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + strh r0, [r2, #2] + ldr r0, _081CB448 + adds r1, r0, #0 + adds r1, #0x20 + movs r3, #2 + ldrsh r2, [r2, r3] + str r2, [sp] + ldr r4, _081CB44C + str r4, [sp, #4] + movs r2, #0x10 + movs r3, #0x10 + bl sub_081C717C + ldr r0, _081CB450 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081CB438 + ldr r1, _081CB454 + ldr r2, _081CB458 + adds r0, r4, #0 + bl CpuSet +_081CB438: + add sp, #8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081CB440: .4byte 0x03005B68 +_081CB444: .4byte 0x082FA8CC +_081CB448: .4byte 0x085F40C0 +_081CB44C: .4byte 0x02037454 +_081CB450: .4byte 0x02037C74 +_081CB454: .4byte 0x02037854 +_081CB458: .4byte 0x04000008 + thumb_func_end sub_081CB3D4 + + thumb_func_start sub_081CB45C +sub_081CB45C: @ 0x081CB45C + push {r4, r5, r6, lr} + adds r5, r1, #0 + adds r4, r2, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl GetWindowAttribute + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBgTilemapBuffer + adds r6, r0, #0 + lsls r4, r4, #7 + adds r4, #0x3a + adds r6, r6, r4 + adds r0, r5, #0 + bl sub_081CA668 + cmp r0, #0 + beq _081CB4A0 + movs r1, #0xa0 + lsls r1, r1, #7 + adds r0, r1, #0 + strh r0, [r6] + adds r1, r6, #0 + adds r1, #0x40 + ldr r2, _081CB49C + adds r0, r2, #0 + strh r0, [r1] + b _081CB4AC + .align 2, 0 +_081CB49C: .4byte 0x00005001 +_081CB4A0: + ldr r0, _081CB4B4 + adds r1, r0, #0 + strh r1, [r6] + adds r0, r6, #0 + adds r0, #0x40 + strh r1, [r0] +_081CB4AC: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081CB4B4: .4byte 0x00005002 + thumb_func_end sub_081CB45C + + thumb_func_start sub_081CB4B8 +sub_081CB4B8: @ 0x081CB4B8 + push {r4, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl GetWindowAttribute + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBgTilemapBuffer + lsls r4, r4, #7 + adds r4, #0x3a + adds r0, r0, r4 + ldr r2, _081CB4E4 + adds r1, r2, #0 + strh r1, [r0] + adds r0, #0x40 + strh r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081CB4E4: .4byte 0x00005002 + thumb_func_end sub_081CB4B8 + + thumb_func_start sub_081CB4E8 +sub_081CB4E8: @ 0x081CB4E8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _081CB528 + bl AddWindow + strh r0, [r4, #0x10] + ldr r0, _081CB52C + bl AddWindow + strh r0, [r4, #0x12] + ldrb r0, [r4, #0x10] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldrb r0, [r4, #0x10] + bl PutWindowTilemap + ldrb r0, [r4, #0x12] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldrb r0, [r4, #0x12] + bl PutWindowTilemap + ldrb r0, [r4, #0x10] + movs r1, #1 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081CB528: .4byte 0x085F4178 +_081CB52C: .4byte 0x085F4180 + thumb_func_end sub_081CB4E8 + + thumb_func_start sub_081CB530 +sub_081CB530: @ 0x081CB530 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x12] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldrh r0, [r4, #0x12] + bl sub_081CB564 + ldrh r0, [r4, #0x12] + bl sub_081CB57C + ldrh r0, [r4, #0x12] + bl sub_081CB5A8 + ldrh r0, [r4, #0x12] + bl sub_081CB5C0 + ldrb r0, [r4, #0x12] + movs r1, #2 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081CB530 + + thumb_func_start sub_081CB564 +sub_081CB564: @ 0x081CB564 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _081CB578 + movs r2, #0 + bl sub_081CB5F8 + pop {r0} + bx r0 + .align 2, 0 +_081CB578: .4byte 0x085CB6AE + thumb_func_end sub_081CB564 + + thumb_func_start sub_081CB57C +sub_081CB57C: @ 0x081CB57C + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + bl sub_081CA5E4 + adds r1, r0, #0 + mov r0, sp + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + adds r0, r4, #0 + mov r1, sp + movs r2, #1 + bl sub_081CB5F8 + add sp, #4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_081CB57C + + thumb_func_start sub_081CB5A8 +sub_081CB5A8: @ 0x081CB5A8 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _081CB5BC + movs r2, #2 + bl sub_081CB5F8 + pop {r0} + bx r0 + .align 2, 0 +_081CB5BC: .4byte 0x085CB6B8 + thumb_func_end sub_081CB5A8 + + thumb_func_start sub_081CB5C0 +sub_081CB5C0: @ 0x081CB5C0 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r0, #9 + bl GetGameStat + adds r1, r0, #0 + ldr r0, _081CB5F4 + cmp r1, r0 + ble _081CB5D8 + adds r1, r0, #0 +_081CB5D8: + mov r0, sp + movs r2, #0 + movs r3, #5 + bl ConvertIntToDecimalStringN + adds r0, r4, #0 + mov r1, sp + movs r2, #3 + bl sub_081CB5F8 + add sp, #8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081CB5F4: .4byte 0x0001869F + thumb_func_end sub_081CB5C0 + + thumb_func_start sub_081CB5F8 +sub_081CB5F8: @ 0x081CB5F8 + push {r4, r5, r6, lr} + sub sp, #0xc + adds r5, r0, #0 + adds r6, r1, #0 + adds r4, r2, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + movs r2, #1 + rsbs r2, r2, #0 + movs r0, #1 + bl GetStringWidth + movs r3, #0x54 + subs r3, r3, r0 + lsls r4, r4, #4 + adds r4, #2 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r4, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + adds r0, r5, #0 + movs r1, #1 + adds r2, r6, #0 + bl AddTextPrinterParameterized + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_081CB5F8 + + thumb_func_start sub_081CB640 +sub_081CB640: @ 0x081CB640 + push {r4, r5, lr} + sub sp, #0x1c + adds r5, r0, #0 + adds r4, r1, #0 + bl GetSelectedMatchCall + adds r0, r0, r4 + bl sub_081CA650 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0xd5 + beq _081CB664 + add r0, sp, #0xc + movs r2, #0 + bl GetMapName + b _081CB66C +_081CB664: + ldr r1, _081CB6A8 + add r0, sp, #0xc + bl StringCopy +_081CB66C: + movs r2, #1 + rsbs r2, r2, #0 + movs r0, #1 + add r1, sp, #0xc + bl GetStringWidth + movs r4, #0x54 + subs r4, r4, r0 + ldrb r0, [r5, #0x10] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldrb r0, [r5, #0x10] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r1, #2 + str r1, [sp] + movs r1, #0 + str r1, [sp, #4] + str r1, [sp, #8] + movs r1, #1 + add r2, sp, #0xc + adds r3, r4, #0 + bl AddTextPrinterParameterized + add sp, #0x1c + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081CB6A8: .4byte 0x085CB808 + thumb_func_end sub_081CB640 + + thumb_func_start sub_081CB6AC +sub_081CB6AC: @ 0x081CB6AC + push {r4, r5, r6, lr} + sub sp, #0xc + adds r5, r0, #0 + ldrb r0, [r5, #0x12] + movs r1, #0x11 + bl FillWindowPixelBuffer + movs r4, #0 + movs r6, #0x80 + lsls r6, r6, #0x12 + b _081CB6E8 +_081CB6C2: + ldrb r0, [r5, #0x12] + ldr r2, _081CB70C + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r2, [r1] + lsrs r1, r6, #0x18 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + movs r3, #0x14 + bl AddTextPrinterParameterized + movs r0, #0x80 + lsls r0, r0, #0x15 + adds r6, r6, r0 + adds r4, #1 +_081CB6E8: + cmp r4, #2 + bhi _081CB6FA + adds r0, r4, #0 + bl sub_081CA7D0 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #3 + bne _081CB6C2 +_081CB6FA: + ldrb r0, [r5, #0x12] + movs r1, #2 + bl CopyWindowToVram + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081CB70C: .4byte 0x085F4188 + thumb_func_end sub_081CB6AC + + thumb_func_start sub_081CB710 +sub_081CB710: @ 0x081CB710 + push {r4, lr} + adds r4, r0, #0 + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081CB722 + movs r0, #1 + b _081CB734 +_081CB722: + bl sub_081CA7C0 + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl sub_081CBA44 + movs r0, #0 +_081CB734: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CB710 + + thumb_func_start sub_081CB73C +sub_081CB73C: @ 0x081CB73C + push {r4, lr} + adds r4, r0, #0 + bl sub_081CBA84 + adds r0, r4, #0 + bl sub_081CB530 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_081CB73C + + thumb_func_start sub_081CB750 +sub_081CB750: @ 0x081CB750 + push {lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CB750 + + thumb_func_start sub_081CB760 +sub_081CB760: @ 0x081CB760 + push {r4, lr} + adds r4, r0, #0 + bl sub_081CBA84 + ldrb r0, [r4, #0x12] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldrb r0, [r4, #0x12] + movs r1, #2 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081CB760 + + thumb_func_start sub_081CB780 +sub_081CB780: @ 0x081CB780 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _081CB7A0 + bl AddWindow + strh r0, [r4, #0x14] + ldrh r0, [r4, #0x14] + movs r1, #1 + movs r2, #4 + bl sub_08196D78 + bl sub_081C7300 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081CB7A0: .4byte 0x085F41A8 + thumb_func_end sub_081CB780 + + thumb_func_start sub_081CB7A4 +sub_081CB7A4: @ 0x081CB7A4 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x14] + movs r1, #1 + movs r2, #4 + bl sub_08196D78 + ldrh r0, [r4, #0x14] + movs r1, #1 + movs r2, #4 + bl sub_08196DB8 + ldrb r0, [r4, #0x14] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldrb r0, [r4, #0x14] + bl PutWindowTilemap + ldrb r0, [r4, #0x14] + movs r1, #3 + bl CopyWindowToVram + bl PauseSpinningPokenavSprite + movs r2, #0 + movs r1, #0x18 + strh r1, [r0, #0x20] + movs r1, #0x70 + strh r1, [r0, #0x22] + strh r2, [r0, #0x26] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_081CB7A4 + + thumb_func_start sub_081CB7E8 +sub_081CB7E8: @ 0x081CB7E8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x14] + movs r1, #1 + movs r2, #0x40 + bl LoadUserWindowBorderGfx + ldrb r0, [r4, #0x14] + movs r1, #1 + movs r2, #4 + bl DrawTextBorderOuter + ldrb r0, [r4, #0x14] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldrb r0, [r4, #0x14] + bl PutWindowTilemap + ldrb r0, [r4, #0x14] + movs r1, #3 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_081CB7E8 + + thumb_func_start sub_081CB81C +sub_081CB81C: @ 0x081CB81C + push {lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CB81C + + thumb_func_start sub_081CB82C +sub_081CB82C: @ 0x081CB82C + push {lr} + sub sp, #0xc + ldrb r0, [r0, #0x14] + ldr r2, _081CB850 + movs r1, #2 + str r1, [sp] + movs r1, #1 + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + movs r3, #0x20 + bl AddTextPrinterParameterized + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_081CB850: .4byte 0x085F4194 + thumb_func_end sub_081CB82C + + thumb_func_start sub_081CB854 +sub_081CB854: @ 0x081CB854 + push {r4, lr} + adds r4, r0, #0 + bl RunTextPrinters + ldrb r0, [r4, #0x14] + bl IsTextPrinterActive + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081CB854 + + thumb_func_start sub_081CB86C +sub_081CB86C: @ 0x081CB86C + push {lr} + sub sp, #0xc + ldrb r0, [r0, #0x14] + ldr r2, _081CB890 + movs r1, #2 + str r1, [sp] + movs r1, #1 + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + movs r3, #0x20 + bl AddTextPrinterParameterized + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_081CB890: .4byte 0x085CB7A8 + thumb_func_end sub_081CB86C + + thumb_func_start sub_081CB894 +sub_081CB894: @ 0x081CB894 + push {r4, lr} + adds r4, r0, #0 + bl RunTextPrinters + ldrb r0, [r4, #0x14] + bl IsTextPrinterActive + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081CB894 + + thumb_func_start sub_081CB8AC +sub_081CB8AC: @ 0x081CB8AC + push {r4, r5, lr} + sub sp, #0xc + adds r4, r0, #0 + bl GetSelectedMatchCall + adds r1, r4, #0 + adds r1, #0xf + bl sub_081CA71C + adds r5, r0, #0 + bl GetPlayerTextSpeedDelay + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r2, [r4, #0x14] + movs r1, #2 + str r1, [sp] + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + adds r0, r2, #0 + movs r1, #1 + adds r2, r5, #0 + movs r3, #0x20 + bl AddTextPrinterParameterized + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_081CB8AC + + thumb_func_start sub_081CB8E8 +sub_081CB8E8: @ 0x081CB8E8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _081CB904 + ldrh r1, [r0, #0x2c] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081CB90C + ldr r0, _081CB908 + ldrb r1, [r0] + movs r2, #1 + orrs r1, r2 + strb r1, [r0] + b _081CB918 + .align 2, 0 +_081CB904: .4byte 0x03002360 +_081CB908: .4byte 0x030030B4 +_081CB90C: + ldr r2, _081CB92C + ldrb r1, [r2] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_081CB918: + bl RunTextPrinters + ldrb r0, [r4, #0x14] + bl IsTextPrinterActive + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081CB92C: .4byte 0x030030B4 + thumb_func_end sub_081CB8E8 + + thumb_func_start sub_081CB930 +sub_081CB930: @ 0x081CB930 + push {lr} + sub sp, #8 + bl ResumeSpinningPokenavSprite + movs r0, #0x20 + str r0, [sp] + movs r0, #0x14 + str r0, [sp, #4] + movs r0, #1 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, #1 + bl CopyBgTilemapBufferToVram + add sp, #8 + pop {r0} + bx r0 + thumb_func_end sub_081CB930 + + thumb_func_start sub_081CB958 +sub_081CB958: @ 0x081CB958 + push {lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CB958 + + thumb_func_start sub_081CB968 +sub_081CB968: @ 0x081CB968 + push {r4, r5, r6, lr} + sub sp, #8 + movs r0, #6 + bl GetSubstructPtr + adds r6, r0, #0 + movs r5, #0 + ldr r4, _081CB9EC +_081CB978: + adds r0, r4, #0 + bl LoadCompressedSpriteSheet + adds r4, #8 + adds r5, #1 + cmp r5, #0 + beq _081CB978 + ldr r0, _081CB9F0 + bl Pokenav_AllocAndLoadPalettes + movs r0, #0 + str r0, [r6, #0x1c] + ldr r1, _081CB9F4 + adds r0, r6, r1 + str r0, [sp] + ldr r1, _081CB9F8 + ldr r0, [sp, #4] + ands r0, r1 + movs r1, #0x80 + lsls r1, r1, #4 + orrs r0, r1 + ldr r1, _081CB9FC + ands r0, r1 + movs r1, #0x80 + lsls r1, r1, #0xc + orrs r0, r1 + str r0, [sp, #4] + mov r0, sp + bl LoadSpriteSheet + ldr r2, _081CBA00 + adds r1, r6, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0xb + ldr r2, _081CBA04 + adds r0, r0, r2 + str r0, [r1] + movs r0, #0xd + bl AllocSpritePalette + lsls r0, r0, #0x18 + lsrs r0, r0, #0x14 + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r0, r1 + strh r0, [r6, #0x1a] + bl sub_081CBAC4 + str r0, [r6, #0x20] + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081CB9EC: .4byte 0x085F41B0 +_081CB9F0: .4byte 0x085F41B8 +_081CB9F4: .4byte 0x00001828 +_081CB9F8: .4byte 0xFFFF0000 +_081CB9FC: .4byte 0x0000FFFF +_081CBA00: .4byte 0x00001824 +_081CBA04: .4byte 0x06010000 + thumb_func_end sub_081CB968 + + thumb_func_start sub_081CBA08 +sub_081CBA08: @ 0x081CBA08 + push {r4, lr} + movs r0, #6 + bl GetSubstructPtr + adds r4, r0, #0 + ldr r0, [r4, #0x1c] + cmp r0, #0 + beq _081CBA1C + bl DestroySprite +_081CBA1C: + ldr r0, [r4, #0x20] + cmp r0, #0 + beq _081CBA26 + bl DestroySprite +_081CBA26: + movs r0, #8 + bl FreeSpriteTilesByTag + movs r0, #7 + bl FreeSpriteTilesByTag + movs r0, #0xc + bl FreeSpritePaletteByTag + movs r0, #0xd + bl FreeSpritePaletteByTag + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_081CBA08 + + thumb_func_start sub_081CBA44 +sub_081CBA44: @ 0x081CBA44 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r0, [r4, #0x1c] + cmp r0, #0 + bne _081CBA74 + ldr r0, _081CBA7C + movs r1, #8 + movs r2, #0x50 + movs r3, #5 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _081CBA80 + adds r1, r1, r0 + str r1, [r4, #0x1c] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_081CBA98 +_081CBA74: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081CBA7C: .4byte 0x085F41D0 +_081CBA80: .4byte 0x020205AC + thumb_func_end sub_081CBA44 + + thumb_func_start sub_081CBA84 +sub_081CBA84: @ 0x081CBA84 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x1c] + bl DestroySprite + movs r0, #0 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_081CBA84 + + thumb_func_start sub_081CBA98 +sub_081CBA98: @ 0x081CBA98 + ldr r0, [r0, #0x1c] + lsls r1, r1, #4 + strh r1, [r0, #0x26] + bx lr + thumb_func_end sub_081CBA98 + + thumb_func_start sub_081CBAA0 +sub_081CBAA0: @ 0x081CBAA0 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x2e] + adds r0, #1 + strh r0, [r2, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + ble _081CBAC0 + movs r0, #0 + strh r0, [r2, #0x2e] + ldrh r0, [r2, #0x24] + adds r0, #1 + movs r1, #7 + ands r0, r1 + strh r0, [r2, #0x24] +_081CBAC0: + pop {r0} + bx r0 + thumb_func_end sub_081CBAA0 + + thumb_func_start sub_081CBAC4 +sub_081CBAC4: @ 0x081CBAC4 + push {lr} + ldr r0, _081CBAE8 + movs r1, #0x2c + movs r2, #0x68 + movs r3, #6 + bl CreateSprite + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _081CBAEC + adds r0, r0, r1 + pop {r1} + bx r1 + .align 2, 0 +_081CBAE8: .4byte 0x085F41F0 +_081CBAEC: .4byte 0x020205AC + thumb_func_end sub_081CBAC4 + + thumb_func_start sub_081CBAF0 +sub_081CBAF0: @ 0x081CBAF0 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + bl GetSelectedMatchCall + bl sub_081CA6B0 + cmp r0, #0 + blt _081CBB54 + lsls r4, r0, #3 + ldr r0, _081CBB5C + adds r0, r4, r0 + ldr r1, _081CBB60 + adds r5, r7, r1 + adds r1, r5, #0 + movs r2, #0 + bl DecompressPicFromTable + ldr r0, _081CBB64 + adds r4, r4, r0 + ldr r0, [r4] + ldr r1, _081CBB68 + adds r6, r7, r1 + adds r1, r6, #0 + bl LZ77UnCompWram + ldr r1, _081CBB6C + adds r0, r7, r1 + ldr r1, [r0] + movs r2, #0x80 + lsls r2, r2, #4 + adds r0, r5, #0 + movs r3, #1 + bl RequestDma3Copy + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldrh r1, [r7, #0x1a] + adds r0, r6, #0 + movs r2, #0x20 + bl LoadPalette + ldr r1, [r7, #0x20] + movs r0, #0 + strh r0, [r1, #0x2e] + ldr r0, [r7, #0x20] + strh r4, [r0, #0x3c] + ldr r1, [r7, #0x20] + ldr r0, _081CBB70 + str r0, [r1, #0x1c] +_081CBB54: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081CBB5C: .4byte 0x082D8EE4 +_081CBB60: .4byte 0x00001828 +_081CBB64: .4byte 0x082D91CC +_081CBB68: .4byte 0x00002028 +_081CBB6C: .4byte 0x00001824 +_081CBB70: .4byte 0x081CBB95 + thumb_func_end sub_081CBAF0 + + thumb_func_start sub_081CBB74 +sub_081CBB74: @ 0x081CBB74 + ldr r1, [r0, #0x20] + ldr r0, _081CBB7C + str r0, [r1, #0x1c] + bx lr + .align 2, 0 +_081CBB7C: .4byte 0x081CBBF9 + thumb_func_end sub_081CBB74 + + thumb_func_start sub_081CBB80 +sub_081CBB80: @ 0x081CBB80 + ldr r0, [r0, #0x20] + ldr r1, [r0, #0x1c] + ldr r0, _081CBB90 + eors r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + bx lr + .align 2, 0 +_081CBB90: .4byte 0x08007141 + thumb_func_end sub_081CBB80 + + thumb_func_start sub_081CBB94 +sub_081CBB94: @ 0x081CBB94 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _081CBBA6 + cmp r0, #1 + beq _081CBBD8 + b _081CBBEC +_081CBBA6: + movs r1, #0x3c + ldrsh r0, [r4, r1] + bl CheckForSpaceForDma3Request + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _081CBBEC + ldr r0, _081CBBD4 + strh r0, [r4, #0x24] + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + b _081CBBEC + .align 2, 0 +_081CBBD4: .4byte 0x0000FFB0 +_081CBBD8: + ldrh r0, [r4, #0x24] + adds r0, #8 + strh r0, [r4, #0x24] + lsls r0, r0, #0x10 + cmp r0, #0 + blt _081CBBEC + movs r0, #0 + strh r0, [r4, #0x24] + ldr r0, _081CBBF4 + str r0, [r4, #0x1c] +_081CBBEC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081CBBF4: .4byte 0x08007141 + thumb_func_end sub_081CBB94 + + thumb_func_start sub_081CBBF8 +sub_081CBBF8: @ 0x081CBBF8 + push {lr} + adds r3, r0, #0 + ldrh r0, [r3, #0x24] + subs r0, #8 + strh r0, [r3, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x50 + rsbs r1, r1, #0 + cmp r0, r1 + bgt _081CBC1E + adds r2, r3, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _081CBC24 + str r0, [r3, #0x1c] +_081CBC1E: + pop {r0} + bx r0 + .align 2, 0 +_081CBC24: .4byte 0x08007141 + thumb_func_end sub_081CBBF8 + + thumb_func_start sub_081CBC28 +sub_081CBC28: @ 0x081CBC28 + push {r4, lr} + movs r0, #3 + movs r1, #0x14 + bl AllocSubstruct + adds r4, r0, #0 + cmp r4, #0 + beq _081CBC44 + ldr r1, _081CBC48 + movs r0, #0x10 + bl AllocSubstruct + cmp r0, #0 + bne _081CBC4C +_081CBC44: + movs r0, #0 + b _081CBC6E + .align 2, 0 +_081CBC48: .4byte 0x00000884 +_081CBC4C: + ldr r0, _081CBC60 + ldrb r0, [r0, #0x14] + bl sub_08124674 + str r0, [r4, #0xc] + cmp r0, #0 + bne _081CBC68 + ldr r0, _081CBC64 + b _081CBC6A + .align 2, 0 +_081CBC60: .4byte 0x02036FB8 +_081CBC64: .4byte 0x081CBCBD +_081CBC68: + ldr r0, _081CBC74 +_081CBC6A: + str r0, [r4, #0x10] + movs r0, #1 +_081CBC6E: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081CBC74: .4byte 0x081CBD09 + thumb_func_end sub_081CBC28 + + thumb_func_start sub_081CBC78 +sub_081CBC78: @ 0x081CBC78 + push {lr} + bl sub_08124664 + ldr r1, _081CBCA4 + ldr r3, [r1] + movs r1, #1 + ands r1, r0 + lsls r1, r1, #3 + ldrb r2, [r3, #0x15] + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x15] + movs r0, #0x10 + bl FreePokenavSubstruct + movs r0, #3 + bl FreePokenavSubstruct + pop {r0} + bx r0 + .align 2, 0 +_081CBCA4: .4byte 0x03005AF0 + thumb_func_end sub_081CBC78 + + thumb_func_start sub_081CBCA8 +sub_081CBCA8: @ 0x081CBCA8 + push {lr} + movs r0, #3 + bl GetSubstructPtr + ldr r1, [r0, #0x10] + bl _call_via_r1 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CBCA8 + + thumb_func_start sub_081CBCBC +sub_081CBCBC: @ 0x081CBCBC + push {r4, lr} + adds r4, r0, #0 + bl sub_081230B8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + beq _081CBCE0 + cmp r0, #4 + bgt _081CBCD6 + cmp r0, #3 + beq _081CBCDC + b _081CBD00 +_081CBCD6: + cmp r0, #5 + beq _081CBCF2 + b _081CBD00 +_081CBCDC: + movs r0, #1 + b _081CBD02 +_081CBCE0: + bl sub_08124664 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081CBCEE + movs r0, #3 + b _081CBD02 +_081CBCEE: + movs r0, #2 + b _081CBD02 +_081CBCF2: + ldr r0, _081CBCFC + str r0, [r4, #0x10] + movs r0, #4 + b _081CBD02 + .align 2, 0 +_081CBCFC: .4byte 0x081CBD31 +_081CBD00: + movs r0, #0 +_081CBD02: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081CBCBC + + thumb_func_start sub_081CBD08 +sub_081CBD08: @ 0x081CBD08 + push {lr} + adds r2, r0, #0 + ldr r0, _081CBD1C + ldrh r1, [r0, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _081CBD20 + movs r0, #0 + b _081CBD26 + .align 2, 0 +_081CBD1C: .4byte 0x03002360 +_081CBD20: + ldr r0, _081CBD2C + str r0, [r2, #0x10] + movs r0, #4 +_081CBD26: + pop {r1} + bx r1 + .align 2, 0 +_081CBD2C: .4byte 0x081CBD31 + thumb_func_end sub_081CBD08 + + thumb_func_start sub_081CBD30 +sub_081CBD30: @ 0x081CBD30 + ldr r0, _081CBD34 + bx lr + .align 2, 0 +_081CBD34: .4byte 0x000186A1 + thumb_func_end sub_081CBD30 + + thumb_func_start sub_081CBD38 +sub_081CBD38: @ 0x081CBD38 + push {lr} + movs r0, #3 + bl GetSubstructPtr + ldr r0, [r0, #0xc] + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CBD38 + + thumb_func_start sub_081CBD48 +sub_081CBD48: @ 0x081CBD48 + push {r4, lr} + ldr r1, _081CBD6C + movs r0, #4 + bl AllocSubstruct + adds r4, r0, #0 + cmp r4, #0 + beq _081CBD78 + ldr r0, _081CBD70 + movs r1, #1 + bl CreateLoopedTask + str r0, [r4, #4] + ldr r0, _081CBD74 + str r0, [r4] + movs r0, #1 + b _081CBD7A + .align 2, 0 +_081CBD6C: .4byte 0x00001948 +_081CBD70: .4byte 0x081CBE49 +_081CBD74: .4byte 0x081CBE11 +_081CBD78: + movs r0, #0 +_081CBD7A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081CBD48 + + thumb_func_start sub_081CBD80 +sub_081CBD80: @ 0x081CBD80 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #4 + bl GetSubstructPtr + adds r5, r0, #0 + ldr r0, _081CBDA8 + lsls r4, r4, #2 + adds r4, r4, r0 + ldr r0, [r4] + movs r1, #1 + bl CreateLoopedTask + str r0, [r5, #4] + ldr r0, _081CBDAC + str r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081CBDA8: .4byte 0x085F4D08 +_081CBDAC: .4byte 0x081CBE11 + thumb_func_end sub_081CBD80 + + thumb_func_start sub_081CBDB0 +sub_081CBDB0: @ 0x081CBDB0 + push {lr} + movs r0, #4 + bl GetSubstructPtr + ldr r0, [r0] + bl _call_via_r0 + pop {r1} + thumb_func_end sub_081CBDB0 + + thumb_func_start sub_081CBDC0 +sub_081CBDC0: @ 0x081CBDC0 + bx r1 + .align 2, 0 + thumb_func_end sub_081CBDC0 + + thumb_func_start sub_081CBDC4 +sub_081CBDC4: @ 0x081CBDC4 + push {r4, lr} + movs r0, #4 + bl GetSubstructPtr + adds r4, r0, #0 + bl FreeRegionMapIconResources + bl sub_081CC140 + ldrb r0, [r4, #8] + bl RemoveWindow + movs r0, #0x10 + bl FreePokenavSubstruct + movs r0, #4 + bl FreePokenavSubstruct + bl SetPokenavVBlankCallback + movs r0, #0 + bl SetBgMode + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_081CBDC4 + + thumb_func_start sub_081CBDF8 +sub_081CBDF8: @ 0x081CBDF8 + push {lr} + bl TransferPlttBuffer + bl LoadOam + bl ProcessSpriteCopyRequests + bl UpdateRegionMapVideoRegs + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081CBDF8 + + thumb_func_start sub_081CBE10 +sub_081CBE10: @ 0x081CBE10 + push {lr} + movs r0, #4 + bl GetSubstructPtr + ldr r0, [r0, #4] + bl IsLoopedTaskActive + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CBE10 + + thumb_func_start sub_081CBE24 +sub_081CBE24: @ 0x081CBE24 + push {lr} + bl sub_081CBD38 + cmp r0, #0 + bne _081CBE40 + ldr r0, _081CBE3C + ldr r0, [r0] + ldrb r0, [r0, #0x15] + lsrs r0, r0, #3 + movs r1, #1 + ands r0, r1 + b _081CBE42 + .align 2, 0 +_081CBE3C: .4byte 0x03005AF0 +_081CBE40: + movs r0, #0 +_081CBE42: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CBE24 + + thumb_func_start sub_081CBE48 +sub_081CBE48: @ 0x081CBE48 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #4 + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #7 + bls _081CBE5A + b _081CBF92 +_081CBE5A: + lsls r0, r4, #2 + ldr r1, _081CBE64 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081CBE64: .4byte 0x081CBE68 +_081CBE68: @ jump table + .4byte _081CBE88 @ case 0 + .4byte _081CBED8 @ case 1 + .4byte _081CBF0A @ case 2 + .4byte _081CBF12 @ case 3 + .4byte _081CBF22 @ case 4 + .4byte _081CBF36 @ case 5 + .4byte _081CBF58 @ case 6 + .4byte _081CBF7E @ case 7 +_081CBE88: + movs r0, #0 + bl InitKeys_ + movs r0, #1 + bl HideBg + movs r0, #2 + bl HideBg + movs r0, #3 + bl HideBg + movs r0, #1 + bl SetBgMode + ldr r4, _081CBED4 + adds r0, r4, #0 + movs r1, #2 + bl InitBgTemplates + movs r0, #0x10 + bl GetSubstructPtr + adds r5, r0, #0 + adds r4, #4 + bl sub_081CBE24 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08122D04 + bl sub_081CC114 +_081CBED0: + movs r0, #0 + b _081CBF94 + .align 2, 0 +_081CBED4: .4byte 0x085F4CFC +_081CBED8: + bl sub_08122DBC + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081CBF8E + bl sub_081CBD38 + cmp r0, #0 + bne _081CBF00 + movs r0, #4 + movs r1, #9 + bl CreateRegionMapPlayerIcon + movs r0, #5 + movs r1, #0xa + bl CreateRegionMapCursor + bl sub_08124558 + b _081CBED0 +_081CBF00: + movs r0, #0 + movs r1, #6 + bl sub_0812303C + b _081CBED0 +_081CBF0A: + bl sub_081CC450 +_081CBF0E: + movs r0, #1 + b _081CBF94 +_081CBF12: + bl sub_081CC464 + cmp r0, #0 + bne _081CBF8E + adds r0, r5, #0 + bl sub_081CC170 + b _081CBF0E +_081CBF22: + bl sub_081CC250 + cmp r0, #0 + bne _081CBF8E + adds r0, r5, #0 + bl sub_081CC260 + bl sub_081C7300 + b _081CBED0 +_081CBF36: + adds r0, r5, #0 + bl sub_081CC38C + cmp r0, #0 + bne _081CBF8E + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + ldr r0, _081CBF54 + bl InitKeys_ + b _081CBED0 + .align 2, 0 +_081CBF54: .4byte 0x081CBDF9 +_081CBF58: + bl sub_081CBE24 + lsls r0, r0, #0x18 + movs r4, #5 + cmp r0, #0 + bne _081CBF66 + movs r4, #4 +_081CBF66: + adds r0, r4, #0 + bl LoadLeftHeaderGfxForIndex + adds r0, r4, #0 + movs r1, #1 + movs r2, #1 + bl sub_081C7748 + movs r0, #1 + bl sub_081C7280 + b _081CBED0 +_081CBF7E: + bl IsDma3ManagerBusyWithBgCopy_ + cmp r0, #0 + bne _081CBF8E + bl sub_081C77B8 + cmp r0, #0 + beq _081CBF0E +_081CBF8E: + movs r0, #2 + b _081CBF94 +_081CBF92: + movs r0, #4 +_081CBF94: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CBE48 + + thumb_func_start sub_081CBF9C +sub_081CBF9C: @ 0x081CBF9C + push {r4, lr} + adds r4, r0, #0 + movs r0, #4 + bl GetSubstructPtr + cmp r4, #0 + beq _081CBFB0 + cmp r4, #1 + beq _081CBFB8 + b _081CBFC4 +_081CBFB0: + bl sub_081CC260 + movs r0, #0 + b _081CBFC6 +_081CBFB8: + bl sub_081CC38C + cmp r0, #0 + beq _081CBFC4 + movs r0, #2 + b _081CBFC6 +_081CBFC4: + movs r0, #4 +_081CBFC6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081CBF9C + + thumb_func_start sub_081CBFCC +sub_081CBFCC: @ 0x081CBFCC + push {lr} + cmp r0, #1 + beq _081CBFF6 + cmp r0, #1 + bgt _081CBFDC + cmp r0, #0 + beq _081CBFE2 + b _081CC024 +_081CBFDC: + cmp r0, #2 + beq _081CC012 + b _081CC024 +_081CBFE2: + movs r0, #5 + bl PlaySE + movs r0, #0 + bl sub_081CC39C + bl sub_08123424 + movs r0, #0 + b _081CC026 +_081CBFF6: + bl sub_08123520 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081CC01A + bl sub_081CC3C8 + cmp r0, #0 + bne _081CC01A + movs r0, #1 + bl sub_081C7364 + movs r0, #0 + b _081CC026 +_081CC012: + bl sub_081C73A8 + cmp r0, #0 + beq _081CC01E +_081CC01A: + movs r0, #2 + b _081CC026 +_081CC01E: + movs r0, #4 + bl sub_081C75D4 +_081CC024: + movs r0, #4 +_081CC026: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CBFCC + + thumb_func_start sub_081CC02C +sub_081CC02C: @ 0x081CC02C + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #4 + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #1 + beq _081CC060 + cmp r4, #1 + bgt _081CC046 + cmp r4, #0 + beq _081CC050 + b _081CC0A6 +_081CC046: + cmp r4, #2 + beq _081CC078 + cmp r4, #3 + beq _081CC094 + b _081CC0A6 +_081CC050: + movs r0, #5 + bl PlaySE + adds r0, r5, #0 + bl sub_081CC260 + movs r0, #0 + b _081CC0A8 +_081CC060: + adds r0, r5, #0 + bl sub_081CC38C + cmp r0, #0 + bne _081CC09C + movs r0, #1 + bl sub_081CC39C + bl sub_08123424 + movs r0, #0 + b _081CC0A8 +_081CC078: + bl sub_08123520 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081CC09C + bl sub_081CC3C8 + cmp r0, #0 + bne _081CC09C + movs r0, #2 + bl sub_081C7364 + movs r0, #0 + b _081CC0A8 +_081CC094: + bl sub_081C73A8 + cmp r0, #0 + beq _081CC0A0 +_081CC09C: + movs r0, #2 + b _081CC0A8 +_081CC0A0: + movs r0, #5 + bl sub_081C75D4 +_081CC0A6: + movs r0, #4 +_081CC0A8: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CC02C + + thumb_func_start sub_081CC0B0 +sub_081CC0B0: @ 0x081CC0B0 + push {lr} + cmp r0, #1 + beq _081CC0D6 + cmp r0, #1 + bgt _081CC0C0 + cmp r0, #0 + beq _081CC0C6 + b _081CC10C +_081CC0C0: + cmp r0, #2 + beq _081CC0EA + b _081CC10C +_081CC0C6: + movs r0, #5 + bl PlaySE + movs r0, #0 + bl sub_081C7280 + movs r0, #0 + b _081CC10E +_081CC0D6: + bl IsDma3ManagerBusyWithBgCopy_ + cmp r0, #0 + bne _081CC0F2 + bl sub_081C7784 + bl sub_081C7060 + movs r0, #0 + b _081CC10E +_081CC0EA: + bl MainMenuLoopedTaskIsBusy + cmp r0, #0 + beq _081CC0F6 +_081CC0F2: + movs r0, #2 + b _081CC10E +_081CC0F6: + movs r0, #1 + bl HideBg + movs r0, #2 + bl HideBg + movs r0, #3 + bl HideBg + movs r0, #0 + b _081CC10E +_081CC10C: + movs r0, #4 +_081CC10E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CC0B0 + + thumb_func_start sub_081CC114 +sub_081CC114: @ 0x081CC114 + push {r4, r5, lr} + movs r5, #0 + ldr r4, _081CC138 +_081CC11A: + adds r0, r4, #0 + bl LoadCompressedSpriteSheet + adds r4, #8 + adds r5, #1 + cmp r5, #0 + beq _081CC11A + ldr r0, _081CC13C + bl Pokenav_AllocAndLoadPalettes + bl sub_081CC598 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081CC138: .4byte 0x085F4D1C +_081CC13C: .4byte 0x085F4D24 + thumb_func_end sub_081CC114 + + thumb_func_start sub_081CC140 +sub_081CC140: @ 0x081CC140 + push {r4, r5, lr} + movs r0, #4 + bl GetSubstructPtr + adds r4, r0, #0 + movs r0, #6 + bl FreeSpriteTilesByTag + movs r0, #0xb + bl FreeSpritePaletteByTag + adds r5, r4, #0 + adds r5, #0xc + movs r4, #2 +_081CC15C: + ldm r5!, {r0} + bl DestroySprite + subs r4, #1 + cmp r4, #0 + bge _081CC15C + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081CC140 + + thumb_func_start sub_081CC170 +sub_081CC170: @ 0x081CC170 + push {r4, r5, lr} + sub sp, #8 + adds r5, r0, #0 + movs r0, #1 + movs r1, #0 + movs r2, #0x40 + movs r3, #1 + bl sub_08199A88 + movs r0, #1 + movs r1, #0x11 + movs r2, #0x41 + movs r3, #1 + bl sub_08199A88 + add r1, sp, #4 + movs r2, #0x82 + lsls r2, r2, #5 + adds r0, r2, #0 + strh r0, [r1] + adds r4, r5, #0 + adds r4, #0x18 + ldr r2, _081CC21C + adds r0, r1, #0 + adds r1, r4, #0 + bl CpuSet + movs r0, #1 + adds r1, r4, #0 + bl SetBgTilemapBuffer + ldr r0, _081CC220 + bl AddWindow + movs r4, #0 + strh r0, [r5, #8] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x42 + movs r2, #0x40 + bl LoadUserWindowBorderGfx_ + ldrb r0, [r5, #8] + movs r1, #0x42 + movs r2, #4 + bl DrawTextBorderOuter + ldr r1, _081CC224 + str r4, [sp] + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + ldrb r0, [r5, #8] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldrb r0, [r5, #8] + bl PutWindowTilemap + ldrb r0, [r5, #8] + movs r1, #3 + bl CopyWindowToVram + ldr r0, _081CC228 + movs r1, #0x10 + movs r2, #0x20 + bl CopyPaletteIntoBufferUnfaded + ldr r0, _081CC22C + movs r1, #0x30 + movs r2, #0x20 + bl CopyPaletteIntoBufferUnfaded + bl sub_08124664 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081CC234 + ldr r1, _081CC230 + movs r0, #1 + movs r2, #0 + bl ChangeBgY + b _081CC23E + .align 2, 0 +_081CC21C: .4byte 0x01000400 +_081CC220: .4byte 0x085F4D34 +_081CC224: .4byte 0x085F4248 +_081CC228: .4byte 0x085F4208 +_081CC22C: .4byte 0x085F4228 +_081CC230: .4byte 0xFFFFA000 +_081CC234: + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY +_081CC23E: + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_081CC170 + + thumb_func_start sub_081CC250 +sub_081CC250: @ 0x081CC250 + push {lr} + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CC250 + + thumb_func_start sub_081CC260 +sub_081CC260: @ 0x081CC260 + push {r4, r5, r6, lr} + sub sp, #0xc + adds r5, r0, #0 + movs r0, #0x10 + bl GetSubstructPtr + adds r6, r0, #0 + ldrb r0, [r6, #2] + cmp r0, #4 + bls _081CC276 + b _081CC380 +_081CC276: + lsls r0, r0, #2 + ldr r1, _081CC280 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081CC280: .4byte 0x081CC284 +_081CC284: @ jump table + .4byte _081CC35C @ case 0 + .4byte _081CC31C @ case 1 + .4byte _081CC298 @ case 2 + .4byte _081CC2D8 @ case 3 + .4byte _081CC31C @ case 4 +_081CC298: + ldrb r0, [r5, #8] + movs r4, #2 + str r4, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0xc + bl PutWindowRectTilemap + ldrb r0, [r5, #8] + adds r2, r6, #4 + str r4, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + ldrh r1, [r6] + ldrb r2, [r6, #3] + adds r0, r5, #0 + bl sub_081CC4B0 + ldrb r0, [r5, #8] + movs r1, #3 + bl CopyWindowToVram + movs r0, #0 + bl sub_081CC6E4 + b _081CC380 +_081CC2D8: + ldrb r0, [r5, #8] + movs r4, #2 + str r4, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0xc + bl PutWindowRectTilemap + ldrb r0, [r5, #8] + adds r2, r6, #4 + str r4, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + ldr r1, _081CC318 + movs r0, #0xc + str r0, [sp] + movs r0, #0xb + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #1 + movs r2, #0x11 + movs r3, #6 + bl FillBgTilemapBufferRect + b _081CC34C + .align 2, 0 +_081CC318: .4byte 0x00001041 +_081CC31C: + ldrb r0, [r5, #8] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldrb r0, [r5, #8] + bl PutWindowTilemap + ldrb r0, [r5, #8] + adds r2, r6, #4 + movs r1, #2 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + ldrh r1, [r6] + ldrb r2, [r6, #3] + adds r0, r5, #0 + bl sub_081CC528 +_081CC34C: + ldrb r0, [r5, #8] + movs r1, #3 + bl CopyWindowToVram + movs r0, #1 + bl sub_081CC6E4 + b _081CC380 +_081CC35C: + ldr r1, _081CC388 + movs r0, #0xc + str r0, [sp] + movs r0, #0xd + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + movs r0, #1 + movs r2, #0x11 + movs r3, #4 + bl FillBgTilemapBufferRect + movs r0, #1 + bl CopyBgTilemapBufferToVram + movs r0, #1 + bl sub_081CC6E4 +_081CC380: + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081CC388: .4byte 0x00001041 + thumb_func_end sub_081CC260 + + thumb_func_start sub_081CC38C +sub_081CC38C: @ 0x081CC38C + push {lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CC38C + + thumb_func_start sub_081CC39C +sub_081CC39C: @ 0x081CC39C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _081CC3C0 + movs r1, #3 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _081CC3C4 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081CC3C0: .4byte 0x081CC3DD +_081CC3C4: .4byte 0x03005B60 + thumb_func_end sub_081CC39C + + thumb_func_start sub_081CC3C8 +sub_081CC3C8: @ 0x081CC3C8 + push {lr} + ldr r0, _081CC3D8 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_081CC3D8: .4byte 0x081CC3DD + thumb_func_end sub_081CC3C8 + + thumb_func_start sub_081CC3DC +sub_081CC3DC: @ 0x081CC3DC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r5, r4, #0 + ldr r1, _081CC41C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #8 + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _081CC420 + movs r1, #0x90 + lsls r1, r1, #3 + movs r0, #1 + movs r2, #1 + bl ChangeBgY + cmp r0, #0 + blt _081CC416 + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + adds r0, r4, #0 + bl DestroyTask +_081CC416: + bl sub_081CC6B8 + b _081CC444 + .align 2, 0 +_081CC41C: .4byte 0x03005B60 +_081CC420: + movs r1, #0x90 + lsls r1, r1, #3 + movs r0, #1 + movs r2, #2 + bl ChangeBgY + ldr r1, _081CC44C + cmp r0, r1 + bgt _081CC440 + movs r0, #1 + movs r2, #0 + bl ChangeBgY + adds r0, r5, #0 + bl DestroyTask +_081CC440: + bl sub_081CC6B8 +_081CC444: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081CC44C: .4byte 0xFFFFA000 + thumb_func_end sub_081CC3DC + + thumb_func_start sub_081CC450 +sub_081CC450: @ 0x081CC450 + push {lr} + ldr r0, _081CC460 + movs r1, #1 + bl CreateLoopedTask + pop {r0} + bx r0 + .align 2, 0 +_081CC460: .4byte 0x081CC475 + thumb_func_end sub_081CC450 + + thumb_func_start sub_081CC464 +sub_081CC464: @ 0x081CC464 + push {lr} + ldr r0, _081CC470 + bl FuncIsActiveLoopedTask + pop {r1} + bx r1 + .align 2, 0 +_081CC470: .4byte 0x081CC475 + thumb_func_end sub_081CC464 + + thumb_func_start sub_081CC474 +sub_081CC474: @ 0x081CC474 + push {r4, lr} + adds r4, r0, #0 + movs r0, #4 + bl GetSubstructPtr + adds r2, r0, #0 + cmp r4, #0x15 + ble _081CC488 + movs r0, #4 + b _081CC4A2 +_081CC488: + ldr r0, _081CC4A8 + lsls r1, r4, #3 + adds r0, #4 + adds r1, r1, r0 + ldr r0, [r1] + movs r1, #0xc8 + muls r1, r4, r1 + ldr r3, _081CC4AC + adds r1, r1, r3 + adds r1, r2, r1 + bl LZ77UnCompWram + movs r0, #1 +_081CC4A2: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081CC4A8: .4byte 0x085F4D3C +_081CC4AC: .4byte 0x00000818 + thumb_func_end sub_081CC474 + + thumb_func_start sub_081CC4B0 +sub_081CC4B0: @ 0x081CC4B0 + push {r4, r5, r6, lr} + sub sp, #8 + adds r6, r0, #0 + adds r3, r1, #0 + movs r4, #0 + ldr r0, _081CC51C + ldrh r1, [r0] + adds r5, r0, #0 + cmp r1, r3 + bne _081CC4CA + ldrh r0, [r5, #2] + cmp r0, r2 + beq _081CC4E0 +_081CC4CA: + adds r4, #1 + cmp r4, #0x15 + bgt _081CC4E0 + lsls r0, r4, #3 + adds r1, r0, r5 + ldrh r0, [r1] + cmp r0, r3 + bne _081CC4CA + ldrh r0, [r1, #2] + cmp r0, r2 + bne _081CC4CA +_081CC4E0: + cmp r4, #0x16 + beq _081CC514 + ldr r1, _081CC520 + movs r0, #0xc + str r0, [sp] + movs r0, #0xb + str r0, [sp, #4] + movs r0, #1 + movs r2, #0x11 + movs r3, #6 + bl FillBgTilemapBufferRect_Palette0 + movs r0, #0xc8 + adds r1, r4, #0 + muls r1, r0, r1 + ldr r0, _081CC524 + adds r1, r1, r0 + adds r1, r6, r1 + movs r0, #0xa + str r0, [sp] + str r0, [sp, #4] + movs r0, #1 + movs r2, #0x12 + movs r3, #6 + bl CopyToBgTilemapBufferRect +_081CC514: + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081CC51C: .4byte 0x085F4D3C +_081CC520: .4byte 0x00001041 +_081CC524: .4byte 0x00000818 + thumb_func_end sub_081CC4B0 + + thumb_func_start sub_081CC528 +sub_081CC528: @ 0x081CC528 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0xc + mov sb, r0 + movs r5, #0 + ldr r6, _081CC544 + movs r4, #0x90 + lsls r4, r4, #0x15 + lsls r1, r1, #0x18 + mov r8, r1 + lsls r7, r2, #0x18 + b _081CC574 + .align 2, 0 +_081CC544: .4byte 0x02021C40 +_081CC548: + adds r0, r6, #0 + movs r2, #0 + movs r3, #0xc + bl StringCopyPadded + mov r1, sb + ldrb r0, [r1, #8] + lsrs r1, r4, #0x18 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + adds r2, r6, #0 + movs r3, #0 + bl AddTextPrinterParameterized + movs r0, #0x80 + lsls r0, r0, #0x15 + adds r4, r4, r0 + adds r5, #1 +_081CC574: + lsls r2, r5, #0x18 + lsrs r2, r2, #0x18 + mov r1, r8 + lsrs r0, r1, #0x18 + lsrs r1, r7, #0x18 + bl GetLandmarkName + adds r1, r0, #0 + cmp r1, #0 + bne _081CC548 + add sp, #0xc + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081CC528 + + thumb_func_start sub_081CC598 +sub_081CC598: @ 0x081CC598 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r0, #4 + bl GetSubstructPtr + adds r4, r0, #0 + bl sub_08124664 + lsls r0, r0, #0x18 + movs r2, #0x84 + cmp r0, #0 + bne _081CC5B4 + movs r2, #0xe4 +_081CC5B4: + movs r5, #0 + lsls r7, r2, #0x10 + adds r4, #0xc + mov r8, r4 + movs r6, #0x98 + lsls r6, r6, #0x10 +_081CC5C0: + asrs r1, r6, #0x10 + ldr r0, _081CC624 + asrs r2, r7, #0x10 + movs r3, #8 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r0, _081CC628 + adds r2, r2, r0 + movs r0, #0 + strh r0, [r2, #0x2e] + lsls r4, r5, #2 + strh r4, [r2, #0x30] + ldrh r3, [r2, #4] + lsls r1, r3, #0x16 + lsrs r0, r1, #0x16 + adds r1, r0, #0 + strh r0, [r2, #0x32] + movs r0, #0x96 + strh r0, [r2, #0x34] + strh r4, [r2, #0x36] + adds r1, r1, r4 + ldr r4, _081CC62C + adds r0, r4, #0 + ands r1, r0 + ldr r4, _081CC630 + adds r0, r4, #0 + ands r3, r0 + orrs r3, r1 + strh r3, [r2, #4] + mov r0, r8 + adds r0, #4 + mov r8, r0 + subs r0, #4 + stm r0!, {r2} + movs r4, #0x80 + lsls r4, r4, #0xe + adds r6, r6, r4 + adds r5, #1 + cmp r5, #2 + ble _081CC5C0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081CC624: .4byte 0x085F4DF4 +_081CC628: .4byte 0x020205AC +_081CC62C: .4byte 0x000003FF +_081CC630: .4byte 0xFFFFFC00 + thumb_func_end sub_081CC598 + + thumb_func_start sub_081CC634 +sub_081CC634: @ 0x081CC634 + push {r4, r5, lr} + adds r3, r0, #0 + ldrh r0, [r3, #0x34] + movs r1, #0x34 + ldrsh r4, [r3, r1] + cmp r4, #0 + beq _081CC646 + subs r0, #1 + b _081CC6AE +_081CC646: + ldrh r0, [r3, #0x2e] + adds r0, #1 + strh r0, [r3, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xb + ble _081CC656 + strh r4, [r3, #0x2e] +_081CC656: + ldrh r0, [r3, #0x30] + adds r0, #1 + strh r0, [r3, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x3c + ble _081CC666 + strh r4, [r3, #0x30] +_081CC666: + ldrh r5, [r3, #0x30] + ldrh r2, [r3, #0x32] + adds r1, r5, r2 + ldr r2, _081CC694 + adds r0, r2, #0 + ands r1, r0 + ldrh r2, [r3, #4] + ldr r0, _081CC698 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #4] + ldrh r1, [r3, #0x38] + movs r2, #0x38 + ldrsh r0, [r3, r2] + cmp r0, #3 + bgt _081CC69C + movs r2, #0x2e + ldrsh r0, [r3, r2] + cmp r0, #0 + bne _081CC6B0 + adds r0, r1, #1 + strh r0, [r3, #0x38] + b _081CC6AC + .align 2, 0 +_081CC694: .4byte 0x000003FF +_081CC698: .4byte 0xFFFFFC00 +_081CC69C: + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x36 + ldrsh r1, [r3, r2] + cmp r0, r1 + bne _081CC6B0 + strh r4, [r3, #0x38] + strh r4, [r3, #0x2e] +_081CC6AC: + movs r0, #0x78 +_081CC6AE: + strh r0, [r3, #0x34] +_081CC6B0: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081CC634 + + thumb_func_start sub_081CC6B8 +sub_081CC6B8: @ 0x081CC6B8 + push {r4, lr} + movs r0, #4 + bl GetSubstructPtr + adds r4, r0, #0 + movs r0, #1 + bl GetBgY + asrs r0, r0, #8 + movs r1, #0x84 + subs r1, r1, r0 + adds r4, #0xc + movs r2, #2 +_081CC6D2: + ldm r4!, {r0} + strh r1, [r0, #0x22] + subs r2, #1 + cmp r2, #0 + bge _081CC6D2 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081CC6B8 + + thumb_func_start sub_081CC6E4 +sub_081CC6E4: @ 0x081CC6E4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #4 + bl GetSubstructPtr + movs r1, #1 + ands r4, r1 + lsls r5, r4, #2 + movs r6, #5 + rsbs r6, r6, #0 + adds r4, r0, #0 + adds r4, #0xc + movs r3, #2 +_081CC6FE: + ldm r4!, {r0} + adds r0, #0x3e + ldrb r2, [r0] + adds r1, r6, #0 + ands r1, r2 + orrs r1, r5 + strb r1, [r0] + subs r3, #1 + cmp r3, #0 + bge _081CC6FE + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_081CC6E4 + + thumb_func_start sub_081CC718 +sub_081CC718: @ 0x081CC718 + push {r4, lr} + ldr r1, _081CC748 + movs r0, #0xb + bl AllocSubstruct + adds r4, r0, #0 + cmp r4, #0 + beq _081CC75C + ldr r1, _081CC74C + adds r0, r4, r1 + bl sub_081D151C + bl sub_081CD0D0 + ldr r1, _081CC750 + movs r0, #0x14 + strh r0, [r1] + ldr r0, _081CC754 + adds r1, r4, r0 + ldr r0, _081CC758 + str r0, [r1] + movs r0, #1 + b _081CC75E + .align 2, 0 +_081CC748: .4byte 0x0000678C +_081CC74C: .4byte 0x00006428 +_081CC750: .4byte 0x03002350 +_081CC754: .4byte 0x00006304 +_081CC758: .4byte 0x081CC7CD +_081CC75C: + movs r0, #0 +_081CC75E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081CC718 + + thumb_func_start sub_081CC764 +sub_081CC764: @ 0x081CC764 + push {r4, lr} + ldr r1, _081CC794 + movs r0, #0xb + bl AllocSubstruct + adds r4, r0, #0 + cmp r4, #0 + beq _081CC7A8 + ldr r1, _081CC798 + adds r0, r4, r1 + bl sub_081D151C + bl sub_081CD158 + ldr r1, _081CC79C + movs r0, #0x14 + strh r0, [r1] + ldr r0, _081CC7A0 + adds r1, r4, r0 + ldr r0, _081CC7A4 + str r0, [r1] + movs r0, #1 + b _081CC7AA + .align 2, 0 +_081CC794: .4byte 0x0000678C +_081CC798: .4byte 0x00006428 +_081CC79C: .4byte 0x03002350 +_081CC7A0: .4byte 0x00006304 +_081CC7A4: .4byte 0x081CC7CD +_081CC7A8: + movs r0, #0 +_081CC7AA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081CC764 + + thumb_func_start sub_081CC7B0 +sub_081CC7B0: @ 0x081CC7B0 + push {lr} + movs r0, #0xb + bl GetSubstructPtr + ldr r2, _081CC7C8 + adds r1, r0, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {r1} + bx r1 + .align 2, 0 +_081CC7C8: .4byte 0x00006304 + thumb_func_end sub_081CC7B0 + + thumb_func_start sub_081CC7CC +sub_081CC7CC: @ 0x081CC7CC + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x12 + bl GetSubstructPtr + adds r5, r0, #0 + adds r0, r4, #0 + bl sub_081CC924 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _081CC840 + ldr r0, _081CC824 + ldrh r1, [r0, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _081CC810 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081CC840 + movs r1, #0xc6 + lsls r1, r1, #7 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _081CC830 + ldrh r1, [r5, #2] + ldrh r0, [r5] + subs r0, #1 + cmp r1, r0 + bne _081CC840 +_081CC810: + movs r0, #5 + bl PlaySE + ldr r0, _081CC828 + adds r1, r4, r0 + ldr r0, _081CC82C + str r0, [r1] + movs r2, #2 + b _081CC840 + .align 2, 0 +_081CC824: .4byte 0x03002360 +_081CC828: .4byte 0x00006304 +_081CC82C: .4byte 0x081CC8DD +_081CC830: + movs r0, #5 + bl PlaySE + movs r2, #5 + ldr r0, _081CC848 + adds r1, r4, r0 + ldr r0, _081CC84C + str r0, [r1] +_081CC840: + adds r0, r2, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081CC848: .4byte 0x00006304 +_081CC84C: .4byte 0x081CC851 + thumb_func_end sub_081CC7CC + + thumb_func_start sub_081CC850 +sub_081CC850: @ 0x081CC850 + push {r4, r5, r6, lr} + sub sp, #4 + adds r6, r0, #0 + movs r4, #0 + bl sub_081200C4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081CC8CA + bl sub_081CE648 + ldr r1, _081CC8A8 + adds r5, r6, r1 + movs r1, #0 + ldrsb r1, [r5, r1] + ldr r2, _081CC8AC + adds r4, r6, r2 + adds r1, r4, r1 + strb r0, [r1] + movs r0, #0x12 + bl GetSubstructPtr + ldrh r1, [r0, #2] + lsls r1, r1, #2 + adds r0, r0, r1 + ldrb r2, [r0, #4] + ldrb r3, [r0, #5] + movs r0, #0 + ldrsb r0, [r5, r0] + adds r4, r4, r0 + ldrb r1, [r4] + mov r0, sp + strb r1, [r0] + cmp r2, #0xe + bne _081CC8B4 + movs r0, #0x64 + muls r0, r3, r0 + ldr r1, _081CC8B0 + adds r0, r0, r1 + movs r1, #8 + mov r2, sp + bl SetMonData + b _081CC8C0 + .align 2, 0 +_081CC8A8: .4byte 0x00006786 +_081CC8AC: .4byte 0x00006783 +_081CC8B0: .4byte 0x02024190 +_081CC8B4: + adds r0, r2, #0 + adds r1, r3, #0 + movs r2, #8 + mov r3, sp + bl SetBoxMonDataAt +_081CC8C0: + ldr r0, _081CC8D4 + adds r1, r6, r0 + ldr r0, _081CC8D8 + str r0, [r1] + movs r4, #6 +_081CC8CA: + adds r0, r4, #0 + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_081CC8D4: .4byte 0x00006304 +_081CC8D8: .4byte 0x081CC7CD + thumb_func_end sub_081CC850 + + thumb_func_start sub_081CC8DC +sub_081CC8DC: @ 0x081CC8DC + push {lr} + movs r1, #0xc6 + lsls r1, r1, #7 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _081CC8F4 + ldr r0, _081CC8F0 + b _081CC8F6 + .align 2, 0 +_081CC8F0: .4byte 0x000186AA +_081CC8F4: + ldr r0, _081CC8FC +_081CC8F6: + pop {r1} + bx r1 + .align 2, 0 +_081CC8FC: .4byte 0x000186A2 + thumb_func_end sub_081CC8DC + + thumb_func_start sub_081CC900 +sub_081CC900: @ 0x081CC900 + push {lr} + movs r0, #0xb + bl GetSubstructPtr + movs r1, #0xc6 + lsls r1, r1, #7 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _081CC91A + movs r0, #0x12 + bl FreePokenavSubstruct +_081CC91A: + movs r0, #0xb + bl FreePokenavSubstruct + pop {r0} + bx r0 + thumb_func_end sub_081CC900 + + thumb_func_start sub_081CC924 +sub_081CC924: @ 0x081CC924 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x12 + bl GetSubstructPtr + adds r2, r0, #0 + movs r3, #0 + ldr r0, _081CC95C + ldrh r1, [r0, #0x2c] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _081CC960 + movs r1, #0xc6 + lsls r1, r1, #7 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _081CC950 + ldrh r0, [r2, #2] + cmp r0, #0 + beq _081CC98E +_081CC950: + movs r0, #5 + bl PlaySE + movs r0, #1 + b _081CC986 + .align 2, 0 +_081CC95C: .4byte 0x03002360 +_081CC960: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _081CC98E + movs r1, #0xc6 + lsls r1, r1, #7 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _081CC97E + ldrh r1, [r2, #2] + ldrh r0, [r2] + subs r0, #1 + cmp r1, r0 + bge _081CC98E +_081CC97E: + movs r0, #5 + bl PlaySE + movs r0, #0 +_081CC986: + bl sub_081CC998 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 +_081CC98E: + adds r0, r3, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CC924 + + thumb_func_start sub_081CC998 +sub_081CC998: @ 0x081CC998 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r0, #0xb + bl GetSubstructPtr + adds r4, r0, #0 + movs r0, #0x12 + bl GetSubstructPtr + adds r5, r0, #0 + mov r0, r8 + cmp r0, #0 + beq _081CC9C4 + ldr r1, _081CC9C0 + adds r0, r4, r1 + b _081CC9C8 + .align 2, 0 +_081CC9C0: .4byte 0x00006788 +_081CC9C4: + ldr r2, _081CCA08 + adds r0, r4, r2 +_081CC9C8: + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r7, r0, #0 + ldr r1, _081CCA0C + adds r0, r4, r1 + ldr r2, _081CCA10 + adds r1, r4, r2 + movs r2, #0 + ldrsb r2, [r1, r2] + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #2 + ldr r3, _081CCA14 + adds r1, r1, r3 + adds r1, r4, r1 + lsls r2, r7, #2 + adds r2, r2, r7 + lsls r2, r2, #2 + adds r2, r2, r3 + adds r2, r4, r2 + bl sub_081D15CC + ldrh r6, [r5, #2] + bl sub_081CD4BC + cmp r0, #0 + beq _081CCA18 + ldrh r1, [r5] + b _081CCA1C + .align 2, 0 +_081CCA08: .4byte 0x00006787 +_081CCA0C: .4byte 0x00006428 +_081CCA10: .4byte 0x00006786 +_081CCA14: .4byte 0x0000643C +_081CCA18: + ldrh r1, [r5] + subs r1, #1 +_081CCA1C: + eors r1, r6 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + adds r6, r0, #0 + mov r0, r8 + cmp r0, #0 + beq _081CCA72 + ldr r1, _081CCA60 + adds r2, r4, r1 + ldrb r0, [r2] + adds r1, #1 + adds r3, r4, r1 + strb r0, [r3] + ldr r0, _081CCA64 + adds r1, r4, r0 + ldrb r0, [r1] + strb r0, [r2] + strb r7, [r1] + ldrb r1, [r3] + ldr r2, _081CCA68 + adds r0, r4, r2 + strb r1, [r0] + ldrh r0, [r5, #2] + cmp r0, #0 + bne _081CCA52 + ldrh r0, [r5] +_081CCA52: + subs r1, r0, #1 + strh r1, [r5, #2] + lsls r0, r1, #0x10 + cmp r0, #0 + beq _081CCA6C + subs r1, #1 + b _081CCAC4 + .align 2, 0 +_081CCA60: .4byte 0x00006787 +_081CCA64: .4byte 0x00006786 +_081CCA68: .4byte 0x00006789 +_081CCA6C: + ldrh r0, [r5] + subs r1, r0, #1 + b _081CCAC4 +_081CCA72: + ldr r0, _081CCAA0 + adds r2, r4, r0 + ldrb r0, [r2] + ldr r1, _081CCAA4 + adds r3, r4, r1 + strb r0, [r3] + ldr r0, _081CCAA8 + adds r1, r4, r0 + ldrb r0, [r1] + strb r0, [r2] + strb r7, [r1] + ldrb r1, [r3] + ldr r2, _081CCAAC + adds r0, r4, r2 + strb r1, [r0] + ldrh r1, [r5, #2] + ldrh r0, [r5] + subs r0, #1 + cmp r1, r0 + bge _081CCAB0 + adds r0, r1, #1 + b _081CCAB2 + .align 2, 0 +_081CCAA0: .4byte 0x00006788 +_081CCAA4: .4byte 0x00006787 +_081CCAA8: .4byte 0x00006786 +_081CCAAC: .4byte 0x00006789 +_081CCAB0: + movs r0, #0 +_081CCAB2: + strh r0, [r5, #2] + ldrh r1, [r5, #2] + ldrh r0, [r5] + subs r0, #1 + cmp r1, r0 + bge _081CCAC2 + adds r1, #1 + b _081CCAC4 +_081CCAC2: + movs r1, #0 +_081CCAC4: + ldr r2, _081CCAD8 + adds r0, r4, r2 + strh r1, [r0] + ldrh r4, [r5, #2] + bl sub_081CD4BC + cmp r0, #0 + beq _081CCADC + ldrh r1, [r5] + b _081CCAE0 + .align 2, 0 +_081CCAD8: .4byte 0x00006302 +_081CCADC: + ldrh r1, [r5] + subs r1, #1 +_081CCAE0: + eors r1, r4 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + cmp r6, #0 + bne _081CCAF0 + movs r0, #3 + b _081CCAFA +_081CCAF0: + cmp r0, #0 + beq _081CCAF8 + movs r0, #1 + b _081CCAFA +_081CCAF8: + movs r0, #4 +_081CCAFA: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_081CC998 + + thumb_func_start sub_081CCB04 +sub_081CCB04: @ 0x081CCB04 + push {r4, lr} + movs r0, #0xb + bl GetSubstructPtr + adds r4, r0, #0 + movs r0, #0x12 + bl GetSubstructPtr + adds r2, r0, #0 + ldr r1, _081CCB2C + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #9 + bls _081CCB22 + b _081CCC70 +_081CCB22: + lsls r0, r0, #2 + ldr r1, _081CCB30 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081CCB2C: .4byte 0x0000678A +_081CCB30: .4byte 0x081CCB34 +_081CCB34: @ jump table + .4byte _081CCB5C @ case 0 + .4byte _081CCB68 @ case 1 + .4byte _081CCB74 @ case 2 + .4byte _081CCB80 @ case 3 + .4byte _081CCBD0 @ case 4 + .4byte _081CCBE8 @ case 5 + .4byte _081CCC00 @ case 6 + .4byte _081CCC18 @ case 7 + .4byte _081CCC30 @ case 8 + .4byte _081CCC48 @ case 9 +_081CCB5C: + movs r1, #2 + ldrsh r0, [r2, r1] + movs r1, #0 + bl sub_081CCF84 + b _081CCC70 +_081CCB68: + movs r1, #2 + ldrsh r0, [r2, r1] + movs r1, #0 + bl sub_081CD17C + b _081CCC70 +_081CCB74: + movs r1, #2 + ldrsh r0, [r2, r1] + movs r1, #0 + bl sub_081CD2F8 + b _081CCC70 +_081CCB80: + ldrh r0, [r2] + cmp r0, #1 + bne _081CCBA8 + ldr r2, _081CCBA4 + adds r0, r4, r2 + movs r1, #0 + strb r1, [r0] + adds r2, #1 + adds r0, r4, r2 + strb r1, [r0] + adds r2, #1 + adds r0, r4, r2 + strb r1, [r0] + adds r2, #2 + adds r0, r4, r2 + strb r1, [r0] + movs r0, #1 + b _081CCC7C + .align 2, 0 +_081CCBA4: .4byte 0x00006786 +_081CCBA8: + ldr r0, _081CCBC4 + adds r1, r4, r0 + movs r0, #0 + strb r0, [r1] + ldr r2, _081CCBC8 + adds r1, r4, r2 + movs r0, #1 + strb r0, [r1] + ldr r0, _081CCBCC + adds r1, r4, r0 + movs r0, #2 + strb r0, [r1] + b _081CCC70 + .align 2, 0 +_081CCBC4: .4byte 0x00006786 +_081CCBC8: .4byte 0x00006787 +_081CCBCC: .4byte 0x00006788 +_081CCBD0: + ldrh r0, [r2, #2] + adds r0, #1 + ldrh r2, [r2] + cmp r0, r2 + blt _081CCBDC + movs r0, #0 +_081CCBDC: + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #1 + bl sub_081CCF84 + b _081CCC70 +_081CCBE8: + ldrh r0, [r2, #2] + adds r0, #1 + ldrh r2, [r2] + cmp r0, r2 + blt _081CCBF4 + movs r0, #0 +_081CCBF4: + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #1 + bl sub_081CD17C + b _081CCC70 +_081CCC00: + ldrh r0, [r2, #2] + adds r0, #1 + ldrh r2, [r2] + cmp r0, r2 + blt _081CCC0C + movs r0, #0 +_081CCC0C: + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #1 + bl sub_081CD2F8 + b _081CCC70 +_081CCC18: + ldrh r0, [r2, #2] + subs r0, #1 + cmp r0, #0 + bge _081CCC24 + ldrh r0, [r2] + subs r0, #1 +_081CCC24: + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #2 + bl sub_081CCF84 + b _081CCC70 +_081CCC30: + ldrh r0, [r2, #2] + subs r0, #1 + cmp r0, #0 + bge _081CCC3C + ldrh r0, [r2] + subs r0, #1 +_081CCC3C: + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #2 + bl sub_081CD17C + b _081CCC70 +_081CCC48: + ldrh r0, [r2, #2] + subs r0, #1 + cmp r0, #0 + bge _081CCC54 + ldrh r0, [r2] + subs r0, #1 +_081CCC54: + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #2 + bl sub_081CD2F8 + ldr r2, _081CCC6C + adds r1, r4, r2 + movs r0, #0 + strb r0, [r1] + movs r0, #1 + b _081CCC7C + .align 2, 0 +_081CCC6C: .4byte 0x0000678A +_081CCC70: + ldr r0, _081CCC84 + adds r1, r4, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0 +_081CCC7C: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081CCC84: .4byte 0x0000678A + thumb_func_end sub_081CCB04 + + thumb_func_start sub_081CCC88 +sub_081CCC88: @ 0x081CCC88 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r5, r4, #0 + movs r0, #0xb + bl GetSubstructPtr + adds r1, r0, #0 + cmp r4, #1 + beq _081CCCC8 + cmp r4, #1 + bgt _081CCCA6 + cmp r4, #0 + beq _081CCCAC + b _081CCD04 +_081CCCA6: + cmp r5, #2 + beq _081CCCE4 + b _081CCD04 +_081CCCAC: + ldr r2, _081CCCC0 + adds r0, r1, r2 + movs r2, #0 + ldrsh r0, [r0, r2] + ldr r2, _081CCCC4 + adds r1, r1, r2 + ldrb r1, [r1] + bl sub_081CCF84 + b _081CCD04 + .align 2, 0 +_081CCCC0: .4byte 0x00006302 +_081CCCC4: .4byte 0x00006789 +_081CCCC8: + ldr r2, _081CCCDC + adds r0, r1, r2 + movs r2, #0 + ldrsh r0, [r0, r2] + ldr r2, _081CCCE0 + adds r1, r1, r2 + ldrb r1, [r1] + bl sub_081CD17C + b _081CCD04 + .align 2, 0 +_081CCCDC: .4byte 0x00006302 +_081CCCE0: .4byte 0x00006789 +_081CCCE4: + ldr r2, _081CCCFC + adds r0, r1, r2 + movs r2, #0 + ldrsh r0, [r0, r2] + ldr r2, _081CCD00 + adds r1, r1, r2 + ldrb r1, [r1] + bl sub_081CD2F8 + movs r0, #1 + b _081CCD06 + .align 2, 0 +_081CCCFC: .4byte 0x00006302 +_081CCD00: .4byte 0x00006789 +_081CCD04: + movs r0, #0 +_081CCD06: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_081CCC88 + + thumb_func_start sub_081CCD0C +sub_081CCD0C: @ 0x081CCD0C + push {r4, lr} + adds r4, r0, #0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + b _081CCD24 +_081CCD16: + strb r3, [r4] + adds r1, #1 + adds r4, #1 + lsls r0, r2, #0x10 + ldr r2, _081CCD60 + adds r0, r0, r2 + lsrs r2, r0, #0x10 +_081CCD24: + ldrb r3, [r1] + adds r0, r3, #0 + cmp r0, #0xff + bne _081CCD16 + adds r1, r2, #0 + lsls r0, r1, #0x10 + ldr r2, _081CCD60 + adds r0, r0, r2 + lsrs r2, r0, #0x10 + lsls r1, r1, #0x10 + cmp r1, #0 + ble _081CCD52 + movs r3, #0 +_081CCD3E: + strb r3, [r4] + adds r4, #1 + adds r1, r2, #0 + lsls r0, r1, #0x10 + ldr r2, _081CCD60 + adds r0, r0, r2 + lsrs r2, r0, #0x10 + lsls r1, r1, #0x10 + cmp r1, #0 + bgt _081CCD3E +_081CCD52: + movs r0, #0xff + strb r0, [r4] + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081CCD60: .4byte 0xFFFF0000 + thumb_func_end sub_081CCD0C + + thumb_func_start sub_081CCD64 +sub_081CCD64: @ 0x081CCD64 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r5, r0, #0 + adds r4, r1, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sl, r2 + movs r0, #0x12 + bl GetSubstructPtr + lsls r4, r4, #2 + adds r0, r0, r4 + ldrb r4, [r0, #4] + mov r8, r4 + ldrb r6, [r0, #5] + mov sb, r6 + movs r0, #0xfc + strb r0, [r5] + adds r5, #1 + movs r0, #4 + strb r0, [r5] + adds r5, #1 + movs r0, #8 + strb r0, [r5] + adds r5, #1 + movs r0, #0 + strb r0, [r5] + adds r5, #1 + movs r0, #9 + strb r0, [r5] + adds r5, #1 + adds r0, r4, #0 + adds r1, r6, #0 + movs r2, #0x2d + movs r3, #0 + bl GetBoxOrPartyMonData + cmp r0, #0 + beq _081CCDD0 + ldr r1, _081CCDCC + adds r0, r5, #0 + movs r2, #0 + movs r3, #0xc + bl StringCopyPadded + b _081CCF6C + .align 2, 0 +_081CCDCC: .4byte 0x085C8C62 +_081CCDD0: + adds r0, r4, #0 + adds r1, r6, #0 + movs r2, #2 + adds r3, r5, #0 + bl GetBoxOrPartyMonData + adds r0, r5, #0 + bl StringGetEnd10 + adds r0, r4, #0 + adds r1, r6, #0 + movs r2, #0xb + movs r3, #0 + bl GetBoxOrPartyMonData + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + cmp r4, #0xe + bne _081CCE20 + movs r0, #0x64 + adds r4, r6, #0 + muls r4, r0, r4 + ldr r0, _081CCE1C + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x38 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + adds r0, r4, #0 + bl GetMonGender + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + b _081CCE3E + .align 2, 0 +_081CCE1C: .4byte 0x02024190 +_081CCE20: + mov r0, r8 + mov r1, sb + bl GetBoxedMonPtr + adds r4, r0, #0 + bl GetBoxMonGender + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r0, r4, #0 + bl GetLevelFromBoxMonExp + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 +_081CCE3E: + cmp r7, #0x1d + beq _081CCE46 + cmp r7, #0x20 + bne _081CCE5C +_081CCE46: + lsls r1, r7, #1 + adds r1, r1, r7 + lsls r1, r1, #1 + ldr r0, _081CCE64 + adds r1, r1, r0 + adds r0, r5, #0 + bl StringCompare + cmp r0, #0 + bne _081CCE5C + movs r6, #0xff +_081CCE5C: + adds r3, r5, #0 + movs r4, #0 + b _081CCE70 + .align 2, 0 +_081CCE64: .4byte 0x082EA31C +_081CCE68: + adds r3, #1 + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_081CCE70: + ldrb r0, [r3] + cmp r0, #0xff + bne _081CCE68 + adds r1, r4, #0 + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r1, #4 + bhi _081CCE94 + movs r2, #0 +_081CCE84: + strb r2, [r3] + adds r3, #1 + adds r1, r4, #0 + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r1, #4 + bls _081CCE84 +_081CCE94: + movs r0, #0 + strb r0, [r3] + adds r3, #1 + cmp r6, #0 + beq _081CCEA4 + cmp r6, #0xfe + beq _081CCECA + b _081CCEEE +_081CCEA4: + movs r1, #0xfc + strb r1, [r3] + adds r3, #1 + movs r0, #1 + strb r0, [r3] + adds r3, #1 + movs r0, #4 + strb r0, [r3] + adds r3, #1 + strb r1, [r3] + adds r3, #1 + movs r0, #3 + strb r0, [r3] + adds r3, #1 + movs r0, #5 + strb r0, [r3] + adds r3, #1 + movs r0, #0xb5 + b _081CCEEE +_081CCECA: + movs r1, #0xfc + strb r1, [r3] + adds r3, #1 + movs r0, #1 + strb r0, [r3] + adds r3, #1 + movs r0, #6 + strb r0, [r3] + adds r3, #1 + strb r1, [r3] + adds r3, #1 + movs r0, #3 + strb r0, [r3] + adds r3, #1 + movs r0, #7 + strb r0, [r3] + adds r3, #1 + movs r0, #0xb6 +_081CCEEE: + strb r0, [r3] + adds r3, #1 + movs r0, #0xfc + strb r0, [r3] + adds r3, #1 + movs r0, #4 + strb r0, [r3] + adds r3, #1 + movs r0, #8 + strb r0, [r3] + adds r3, #1 + movs r5, #0 + strb r5, [r3] + adds r3, #1 + movs r0, #9 + strb r0, [r3] + adds r3, #1 + movs r0, #0xba + strb r0, [r3] + adds r3, #1 + movs r0, #0xf9 + strb r0, [r3] + adds r3, #1 + movs r0, #5 + strb r0, [r3] + adds r3, #1 + adds r4, r3, #0 + adds r0, r4, #0 + mov r1, r8 + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + adds r3, r0, #0 + subs r4, r3, r4 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + strb r5, [r3] + adds r3, #1 + mov r0, sl + cmp r0, #0 + bne _081CCF66 + movs r0, #3 + subs r0, r0, r4 + lsls r0, r0, #0x10 + ldr r1, _081CCF7C + adds r0, r0, r1 + lsrs r4, r0, #0x10 + ldr r0, _081CCF80 + cmp r4, r0 + beq _081CCF66 + movs r2, #0 + adds r1, r0, #0 +_081CCF58: + strb r2, [r3] + adds r3, #1 + subs r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, r1 + bne _081CCF58 +_081CCF66: + movs r0, #0xff + strb r0, [r3] + adds r0, r3, #0 +_081CCF6C: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081CCF7C: .4byte 0xFFFF0000 +_081CCF80: .4byte 0x0000FFFF + thumb_func_end sub_081CCD64 + + thumb_func_start sub_081CCF84 +sub_081CCF84: @ 0x081CCF84 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + movs r0, #0xb + bl GetSubstructPtr + adds r5, r0, #0 + movs r0, #0x12 + bl GetSubstructPtr + adds r7, r0, #0 + mov r1, r8 + lsls r0, r1, #0x10 + asrs r4, r0, #0x10 + bl sub_081CD4BC + cmp r0, #0 + beq _081CCFBA + ldrh r2, [r7] + cmp r4, r2 + bne _081CCFC2 + b _081CD060 +_081CCFBA: + ldrh r0, [r7] + subs r0, #1 + cmp r4, r0 + beq _081CD060 +_081CCFC2: + lsls r0, r6, #6 + ldr r1, _081CD024 + adds r0, r0, r1 + adds r0, r5, r0 + mov r2, r8 + lsls r4, r2, #0x10 + lsrs r1, r4, #0x10 + movs r2, #0 + bl sub_081CCD64 + asrs r4, r4, #0xe + adds r4, r7, r4 + ldrb r3, [r4, #4] + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r4, r0, #3 + ldr r1, _081CD028 + adds r0, r5, r1 + adds r0, r0, r4 + movs r2, #0 + movs r1, #0xfc + strb r1, [r0] + ldr r1, _081CD02C + adds r0, r5, r1 + adds r0, r0, r4 + movs r1, #4 + strb r1, [r0] + ldr r1, _081CD030 + adds r0, r5, r1 + adds r0, r0, r4 + movs r1, #8 + strb r1, [r0] + ldr r1, _081CD034 + adds r0, r5, r1 + adds r0, r0, r4 + strb r2, [r0] + ldr r2, _081CD038 + adds r0, r5, r2 + adds r0, r0, r4 + movs r1, #9 + strb r1, [r0] + cmp r3, #0xe + bne _081CD044 + adds r0, r4, r5 + ldr r1, _081CD03C + adds r0, r0, r1 + ldr r1, _081CD040 + b _081CD054 + .align 2, 0 +_081CD024: .4byte 0x00006368 +_081CD028: .4byte 0x00006320 +_081CD02C: .4byte 0x00006321 +_081CD030: .4byte 0x00006322 +_081CD034: .4byte 0x00006323 +_081CD038: .4byte 0x00006324 +_081CD03C: .4byte 0x00006325 +_081CD040: .4byte 0x085CB7C6 +_081CD044: + adds r4, r4, r5 + ldr r2, _081CD05C + adds r4, r4, r2 + adds r0, r3, #0 + bl GetBoxNamePtr + adds r1, r0, #0 + adds r0, r4, #0 +_081CD054: + movs r2, #8 + bl sub_081CCD0C + b _081CD0BC + .align 2, 0 +_081CD05C: .4byte 0x00006325 +_081CD060: + movs r1, #0 + lsls r4, r6, #6 + lsls r0, r6, #1 + mov r8, r0 + adds r3, r4, #0 + ldr r0, _081CD0C8 + adds r2, r5, r0 + movs r7, #0 +_081CD070: + adds r0, r1, r3 + adds r0, r2, r0 + strb r7, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0xb + bls _081CD070 + adds r1, r1, r4 + ldr r2, _081CD0C8 + adds r0, r5, r2 + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] + movs r1, #0 + mov r2, r8 + adds r0, r2, r6 + lsls r3, r0, #3 + ldr r0, _081CD0CC + adds r2, r5, r0 + movs r4, #0 +_081CD09A: + adds r0, r1, r3 + adds r0, r2, r0 + strb r4, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #7 + bls _081CD09A + mov r2, r8 + adds r0, r2, r6 + lsls r0, r0, #3 + adds r0, r1, r0 + ldr r2, _081CD0CC + adds r1, r5, r2 + adds r1, r1, r0 + movs r0, #0xff + strb r0, [r1] +_081CD0BC: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081CD0C8: .4byte 0x00006368 +_081CD0CC: .4byte 0x00006320 + thumb_func_end sub_081CCF84 + + thumb_func_start sub_081CD0D0 +sub_081CD0D0: @ 0x081CD0D0 + push {r4, r5, r6, r7, lr} + movs r0, #0xb + bl GetSubstructPtr + adds r7, r0, #0 + ldr r1, _081CD0F4 + movs r0, #0x12 + bl AllocSubstruct + adds r6, r0, #0 + movs r0, #0xc6 + lsls r0, r0, #7 + adds r1, r7, r0 + movs r0, #0 + strb r0, [r1] + movs r4, #0 + movs r5, #0 + b _081CD124 + .align 2, 0 +_081CD0F4: .4byte 0x000006AC +_081CD0F8: + movs r0, #0x64 + muls r0, r4, r0 + ldr r1, _081CD150 + adds r0, r0, r1 + movs r1, #0x2d + bl GetMonData + adds r2, r0, #0 + cmp r2, #0 + bne _081CD11E + lsls r1, r5, #2 + adds r1, r6, r1 + movs r0, #0xe + strb r0, [r1, #4] + strb r4, [r1, #5] + strh r2, [r1, #6] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_081CD11E: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_081CD124: + bl CalculatePlayerPartyCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + blo _081CD0F8 + lsls r0, r5, #2 + adds r0, r6, r0 + movs r1, #0 + strb r1, [r0, #4] + strb r1, [r0, #5] + movs r2, #0 + strh r1, [r0, #6] + strh r1, [r6, #2] + adds r0, r5, #1 + strh r0, [r6] + ldr r1, _081CD154 + adds r0, r7, r1 + strb r2, [r0] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081CD150: .4byte 0x02024190 +_081CD154: .4byte 0x0000678A + thumb_func_end sub_081CD0D0 + + thumb_func_start sub_081CD158 +sub_081CD158: @ 0x081CD158 + push {lr} + movs r0, #0xb + bl GetSubstructPtr + movs r1, #0xc6 + lsls r1, r1, #7 + adds r2, r0, r1 + movs r3, #0 + movs r1, #1 + strb r1, [r2] + ldr r1, _081CD178 + adds r0, r0, r1 + strb r3, [r0] + pop {r0} + bx r0 + .align 2, 0 +_081CD178: .4byte 0x0000678A + thumb_func_end sub_081CD158 + + thumb_func_start sub_081CD17C +sub_081CD17C: @ 0x081CD17C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sb, r1 + movs r0, #0xb + bl GetSubstructPtr + mov r8, r0 + movs r0, #0x12 + bl GetSubstructPtr + adds r4, r0, #0 + lsls r0, r6, #0x10 + asrs r5, r0, #0x10 + bl sub_081CD4BC + cmp r0, #0 + beq _081CD1B2 + ldrh r0, [r4] + cmp r5, r0 + bne _081CD1BA + b _081CD2A8 +_081CD1B2: + ldrh r0, [r4] + subs r0, #1 + cmp r5, r0 + beq _081CD2A8 +_081CD1BA: + lsls r0, r6, #0x10 + asrs r0, r0, #0xe + adds r0, r4, r0 + ldrb r6, [r0, #4] + ldrb r7, [r0, #5] + adds r0, r6, #0 + adds r1, r7, #0 + movs r2, #0x16 + movs r3, #0 + bl GetBoxOrPartyMonData + mov r1, sb + lsls r5, r1, #2 + adds r4, r5, r1 + ldr r1, _081CD25C + add r1, r8 + adds r1, r1, r4 + strb r0, [r1] + adds r0, r6, #0 + adds r1, r7, #0 + movs r2, #0x2f + movs r3, #0 + bl GetBoxOrPartyMonData + ldr r1, _081CD260 + add r1, r8 + adds r1, r1, r4 + strb r0, [r1] + adds r0, r6, #0 + adds r1, r7, #0 + movs r2, #0x21 + movs r3, #0 + bl GetBoxOrPartyMonData + ldr r1, _081CD264 + add r1, r8 + adds r1, r1, r4 + strb r0, [r1] + adds r0, r6, #0 + adds r1, r7, #0 + movs r2, #0x18 + movs r3, #0 + bl GetBoxOrPartyMonData + ldr r1, _081CD268 + add r1, r8 + adds r1, r1, r4 + strb r0, [r1] + adds r0, r6, #0 + adds r1, r7, #0 + movs r2, #0x17 + movs r3, #0 + bl GetBoxOrPartyMonData + ldr r1, _081CD26C + add r1, r8 + adds r1, r1, r4 + strb r0, [r1] + movs r0, #0xcf + lsls r0, r0, #7 + add r0, r8 + mov r2, sb + adds r4, r0, r2 + adds r0, r6, #0 + adds r1, r7, #0 + movs r2, #0x30 + movs r3, #0 + bl GetBoxOrPartyMonData + cmp r0, #0xff + beq _081CD270 + adds r0, r6, #0 + adds r1, r7, #0 + movs r2, #0x30 + movs r3, #0 + bl GetBoxOrPartyMonData + movs r1, #0x1d + bl __udivsi3 + b _081CD272 + .align 2, 0 +_081CD25C: .4byte 0x00006428 +_081CD260: .4byte 0x00006429 +_081CD264: .4byte 0x0000642A +_081CD268: .4byte 0x0000642B +_081CD26C: .4byte 0x0000642C +_081CD270: + movs r0, #9 +_081CD272: + strb r0, [r4] + adds r0, r6, #0 + adds r1, r7, #0 + movs r2, #8 + movs r3, #0 + bl GetBoxOrPartyMonData + ldr r1, _081CD2A0 + add r1, r8 + add r1, sb + strb r0, [r1] + mov r0, sb + adds r1, r5, r0 + ldr r2, _081CD2A4 + adds r0, r1, r2 + add r0, r8 + lsls r1, r1, #2 + adds r2, #0x14 + adds r1, r1, r2 + add r1, r8 + bl sub_081D1D70 + b _081CD2E0 + .align 2, 0 +_081CD2A0: .4byte 0x00006783 +_081CD2A4: .4byte 0x00006428 +_081CD2A8: + movs r2, #0 + mov r0, sb + lsls r5, r0, #2 + add r5, sb + ldr r4, _081CD2EC + add r4, r8 + lsls r3, r5, #2 + mov sb, r2 + ldr r7, _081CD2F0 + movs r6, #0x9b +_081CD2BC: + adds r0, r2, r5 + adds r0, r4, r0 + mov r1, sb + strb r1, [r0] + lsls r0, r2, #2 + adds r0, r0, r3 + add r0, r8 + adds r1, r0, r7 + strh r6, [r1] + ldr r1, _081CD2F4 + adds r0, r0, r1 + movs r1, #0x5b + strh r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #4 + bls _081CD2BC +_081CD2E0: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081CD2EC: .4byte 0x00006428 +_081CD2F0: .4byte 0x0000643C +_081CD2F4: .4byte 0x0000643E + thumb_func_end sub_081CD17C + + thumb_func_start sub_081CD2F8 +sub_081CD2F8: @ 0x081CD2F8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sb, r1 + movs r0, #0xb + bl GetSubstructPtr + adds r7, r0, #0 + movs r0, #0x12 + bl GetSubstructPtr + adds r4, r0, #0 + lsls r0, r6, #0x10 + asrs r5, r0, #0x10 + bl sub_081CD4BC + cmp r0, #0 + beq _081CD32C + ldrh r0, [r4] + b _081CD330 +_081CD32C: + ldrh r0, [r4] + subs r0, #1 +_081CD330: + cmp r5, r0 + beq _081CD39E + lsls r0, r6, #0x10 + asrs r0, r0, #0xe + adds r0, r4, r0 + ldrb r5, [r0, #4] + ldrb r6, [r0, #5] + adds r0, r5, #0 + adds r1, r6, #0 + movs r2, #0x41 + movs r3, #0 + bl GetBoxOrPartyMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + adds r1, r6, #0 + movs r2, #1 + movs r3, #0 + bl GetBoxOrPartyMonData + mov r8, r0 + adds r0, r5, #0 + adds r1, r6, #0 + movs r2, #0 + movs r3, #0 + bl GetBoxOrPartyMonData + adds r5, r0, #0 + lsls r0, r4, #3 + ldr r1, _081CD3AC + adds r0, r0, r1 + mov r2, sb + lsls r1, r2, #0xd + movs r2, #0xc0 + lsls r2, r2, #2 + adds r1, r1, r2 + adds r1, r7, r1 + movs r2, #1 + str r2, [sp] + adds r2, r4, #0 + adds r3, r5, #0 + bl LoadSpecialPokePic + adds r0, r4, #0 + mov r1, r8 + adds r2, r5, #0 + bl GetMonSpritePalFromSpeciesAndPersonality + mov r2, sb + lsls r1, r2, #7 + adds r1, r7, r1 + bl LZ77UnCompWram +_081CD39E: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081CD3AC: .4byte 0x082DDA1C + thumb_func_end sub_081CD2F8 + + thumb_func_start sub_081CD3B0 +sub_081CD3B0: @ 0x081CD3B0 + push {lr} + movs r0, #0x12 + bl GetSubstructPtr + ldrh r0, [r0] + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CD3B0 + + thumb_func_start sub_081CD3C0 +sub_081CD3C0: @ 0x081CD3C0 + push {lr} + movs r0, #0x12 + bl GetSubstructPtr + ldrh r0, [r0, #2] + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CD3C0 + + thumb_func_start sub_081CD3D0 +sub_081CD3D0: @ 0x081CD3D0 + push {lr} + movs r0, #0xb + bl GetSubstructPtr + ldr r1, _081CD3E0 + adds r0, r0, r1 + pop {r1} + bx r1 + .align 2, 0 +_081CD3E0: .4byte 0x00006428 + thumb_func_end sub_081CD3D0 + + thumb_func_start sub_081CD3E4 +sub_081CD3E4: @ 0x081CD3E4 + push {lr} + movs r0, #0xb + bl GetSubstructPtr + ldr r1, _081CD3F8 + adds r0, r0, r1 + ldrb r0, [r0] + pop {r1} + bx r1 + .align 2, 0 +_081CD3F8: .4byte 0x00006786 + thumb_func_end sub_081CD3E4 + + thumb_func_start sub_081CD3FC +sub_081CD3FC: @ 0x081CD3FC + push {lr} + movs r0, #0xb + bl GetSubstructPtr + ldr r1, _081CD410 + adds r0, r0, r1 + ldrb r0, [r0] + pop {r1} + bx r1 + .align 2, 0 +_081CD410: .4byte 0x00006302 + thumb_func_end sub_081CD3FC + + thumb_func_start sub_081CD414 +sub_081CD414: @ 0x081CD414 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0xb + bl GetSubstructPtr + lsls r4, r4, #0xd + movs r1, #0xc0 + lsls r1, r1, #2 + adds r4, r4, r1 + adds r0, r0, r4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CD414 + + thumb_func_start sub_081CD434 +sub_081CD434: @ 0x081CD434 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0xb + bl GetSubstructPtr + lsls r4, r4, #7 + adds r0, r0, r4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081CD434 + + thumb_func_start sub_081CD44C +sub_081CD44C: @ 0x081CD44C + push {lr} + movs r0, #0xb + bl GetSubstructPtr + ldr r1, _081CD460 + adds r0, r0, r1 + ldrb r0, [r0] + pop {r1} + bx r1 + .align 2, 0 +_081CD460: .4byte 0x00006789 + thumb_func_end sub_081CD44C + + thumb_func_start sub_081CD464 +sub_081CD464: @ 0x081CD464 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0xb + bl GetSubstructPtr + lsls r4, r4, #6 + ldr r1, _081CD480 + adds r4, r4, r1 + adds r0, r0, r4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081CD480: .4byte 0x00006368 + thumb_func_end sub_081CD464 + + thumb_func_start sub_081CD484 +sub_081CD484: @ 0x081CD484 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0xb + bl GetSubstructPtr + lsls r1, r4, #1 + adds r1, r1, r4 + lsls r1, r1, #3 + ldr r2, _081CD4A4 + adds r1, r1, r2 + adds r0, r0, r1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081CD4A4: .4byte 0x00006320 + thumb_func_end sub_081CD484 + + thumb_func_start sub_081CD4A8 +sub_081CD4A8: @ 0x081CD4A8 + push {lr} + movs r0, #0x12 + bl GetSubstructPtr + ldrh r1, [r0, #2] + lsls r1, r1, #2 + adds r0, r0, r1 + ldrh r0, [r0, #6] + pop {r1} + bx r1 + thumb_func_end sub_081CD4A8 + + thumb_func_start sub_081CD4BC +sub_081CD4BC: @ 0x081CD4BC + push {lr} + movs r0, #0xb + bl GetSubstructPtr + movs r1, #0xc6 + lsls r1, r1, #7 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + beq _081CD4D4 + movs r0, #0 + b _081CD4D6 +_081CD4D4: + movs r0, #1 +_081CD4D6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CD4BC + + thumb_func_start sub_081CD4DC +sub_081CD4DC: @ 0x081CD4DC + push {lr} + movs r0, #0xb + bl GetSubstructPtr + adds r2, r0, #0 + movs r1, #0xc6 + lsls r1, r1, #7 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #1 + beq _081CD4F6 + movs r0, #0 + b _081CD506 +_081CD4F6: + ldr r3, _081CD50C + adds r0, r2, r3 + movs r1, #0 + ldrsb r1, [r0, r1] + subs r3, #3 + adds r0, r2, r3 + adds r0, r0, r1 + ldrb r0, [r0] +_081CD506: + pop {r1} + bx r1 + .align 2, 0 +_081CD50C: .4byte 0x00006786 + thumb_func_end sub_081CD4DC + + thumb_func_start sub_081CD510 +sub_081CD510: @ 0x081CD510 + push {lr} + movs r0, #0xb + bl GetSubstructPtr + ldr r2, _081CD530 + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + subs r2, #6 + adds r0, r0, r2 + adds r0, r0, r1 + ldrb r0, [r0] + pop {r1} + bx r1 + .align 2, 0 +_081CD530: .4byte 0x00006786 + thumb_func_end sub_081CD510 + + thumb_func_start sub_081CD534 +sub_081CD534: @ 0x081CD534 + push {r4, lr} + ldr r1, _081CD56C + movs r0, #0xc + bl AllocSubstruct + adds r4, r0, #0 + cmp r4, #0 + beq _081CD584 + ldr r0, _081CD570 + adds r1, r4, r0 + movs r0, #0xff + strb r0, [r1] + ldr r0, _081CD574 + movs r1, #1 + bl CreateLoopedTask + str r0, [r4] + ldr r0, _081CD578 + adds r1, r4, r0 + ldr r0, _081CD57C + str r0, [r1] + ldr r0, _081CD580 + adds r1, r4, r0 + movs r0, #0 + strb r0, [r1] + movs r0, #1 + b _081CD586 + .align 2, 0 +_081CD56C: .4byte 0x000038AC +_081CD570: .4byte 0x00001816 +_081CD574: .4byte 0x081CD5F5 +_081CD578: .4byte 0x00001810 +_081CD57C: .4byte 0x081CD5E1 +_081CD580: .4byte 0x00002908 +_081CD584: + movs r0, #0 +_081CD586: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081CD534 + + thumb_func_start sub_081CD58C +sub_081CD58C: @ 0x081CD58C + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0xc + bl GetSubstructPtr + adds r5, r0, #0 + ldr r0, _081CD5B8 + lsls r4, r4, #2 + adds r4, r4, r0 + ldr r0, [r4] + movs r1, #1 + bl CreateLoopedTask + str r0, [r5] + ldr r0, _081CD5BC + adds r5, r5, r0 + ldr r0, _081CD5C0 + str r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081CD5B8: .4byte 0x085F5990 +_081CD5BC: .4byte 0x00001810 +_081CD5C0: .4byte 0x081CD5E1 + thumb_func_end sub_081CD58C + + thumb_func_start sub_081CD5C4 +sub_081CD5C4: @ 0x081CD5C4 + push {lr} + movs r0, #0xc + bl GetSubstructPtr + ldr r1, _081CD5DC + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r1} + thumb_func_end sub_081CD5C4 + + thumb_func_start sub_081CD5D8 +sub_081CD5D8: @ 0x081CD5D8 + bx r1 + .align 2, 0 +_081CD5DC: .4byte 0x00001810 + thumb_func_end sub_081CD5D8 + + thumb_func_start sub_081CD5E0 +sub_081CD5E0: @ 0x081CD5E0 + push {lr} + movs r0, #0xc + bl GetSubstructPtr + ldr r0, [r0] + bl IsLoopedTaskActive + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CD5E0 + + thumb_func_start sub_081CD5F4 +sub_081CD5F4: @ 0x081CD5F4 + push {r4, r5, r6, lr} + sub sp, #0xc + adds r4, r0, #0 + movs r0, #0xc + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #0x14 + bls _081CD608 + b _081CDA24 +_081CD608: + lsls r0, r4, #2 + ldr r1, _081CD614 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081CD614: .4byte 0x081CD618 +_081CD618: @ jump table + .4byte _081CD66C @ case 0 + .4byte _081CD678 @ case 1 + .4byte _081CD6F4 @ case 2 + .4byte _081CD718 @ case 3 + .4byte _081CD790 @ case 4 + .4byte _081CD7D4 @ case 5 + .4byte _081CD810 @ case 6 + .4byte _081CD878 @ case 7 + .4byte _081CD880 @ case 8 + .4byte _081CD886 @ case 9 + .4byte _081CD896 @ case 10 + .4byte _081CD8A6 @ case 11 + .4byte _081CD8B6 @ case 12 + .4byte _081CD8CC @ case 13 + .4byte _081CD928 @ case 14 + .4byte _081CD94C @ case 15 + .4byte _081CD978 @ case 16 + .4byte _081CD99C @ case 17 + .4byte _081CD9AA @ case 18 + .4byte _081CD9BA @ case 19 + .4byte _081CD9C2 @ case 20 +_081CD66C: + bl sub_081CCB04 + cmp r0, #1 + beq _081CD676 + b _081CDA20 +_081CD676: + b _081CD710 +_081CD678: + ldr r0, _081CD6E0 + movs r1, #3 + bl InitBgTemplates + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + ldr r1, _081CD6E4 + movs r0, #0 + bl SetGpuReg + ldr r1, _081CD6E8 + movs r0, #0x50 + bl SetGpuReg + ldr r1, _081CD6EC + movs r0, #0x52 + bl SetGpuReg + ldr r1, _081CD6F0 + movs r0, #0 + str r0, [sp] + movs r0, #3 + b _081CD708 + .align 2, 0 +_081CD6E0: .4byte 0x085F5964 +_081CD6E4: .4byte 0x00007940 +_081CD6E8: .4byte 0x00000844 +_081CD6EC: .4byte 0x0000040B +_081CD6F0: .4byte 0x085F4E6C +_081CD6F4: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _081CD702 + b _081CDA20 +_081CD702: + ldr r1, _081CD714 + str r0, [sp] + movs r0, #2 +_081CD708: + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram +_081CD710: + movs r0, #0 + b _081CDA26 + .align 2, 0 +_081CD714: .4byte 0x085F57EC +_081CD718: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081CD724 + b _081CDA20 +_081CD724: + ldr r0, _081CD778 + adds r4, r5, #4 + adds r1, r4, #0 + bl LZ77UnCompVram + movs r0, #3 + adds r1, r4, #0 + bl SetBgTilemapBuffer + bl sub_081CD4BC + cmp r0, #1 + bne _081CD752 + ldr r1, _081CD77C + movs r0, #9 + str r0, [sp] + movs r0, #4 + str r0, [sp, #4] + movs r0, #3 + movs r2, #0 + movs r3, #5 + bl CopyToBgTilemapBufferRect +_081CD752: + movs r0, #3 + bl CopyBgTilemapBufferToVram + ldr r0, _081CD780 + movs r1, #0x10 + movs r2, #0x20 + bl CopyPaletteIntoBufferUnfaded + ldr r0, _081CD784 + movs r1, #0xf0 + movs r2, #0x20 + bl CopyPaletteIntoBufferUnfaded + ldr r0, _081CD788 + adds r1, r5, r0 + ldr r0, _081CD78C + strh r0, [r1] + b _081CD710 + .align 2, 0 +_081CD778: .4byte 0x085F5600 +_081CD77C: .4byte 0x085F58FC +_081CD780: .4byte 0x085F4E0C +_081CD784: .4byte 0x085F4E4C +_081CD788: .4byte 0x00001814 +_081CD78C: .4byte 0x0000FFB0 +_081CD790: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081CD79C + b _081CDA20 +_081CD79C: + ldr r0, _081CD7C8 + ldr r1, _081CD7CC + adds r4, r5, r1 + adds r1, r4, #0 + bl LZ77UnCompVram + movs r0, #2 + adds r1, r4, #0 + bl SetBgTilemapBuffer + movs r0, #2 + bl CopyBgTilemapBufferToVram + ldr r0, _081CD7D0 + movs r1, #0x30 + movs r2, #0x20 + bl CopyPaletteIntoBufferUnfaded + movs r0, #2 + bl sub_081D1824 + b _081CD710 + .align 2, 0 +_081CD7C8: .4byte 0x085F5800 +_081CD7CC: .4byte 0x00001004 +_081CD7D0: .4byte 0x085F4E2C +_081CD7D4: + movs r0, #1 + movs r1, #0 + movs r2, #0 + movs r3, #1 + bl sub_08199A88 + movs r0, #1 + movs r1, #0x11 + movs r2, #1 + movs r3, #1 + bl sub_08199A88 + movs r0, #0 + str r0, [sp, #8] + ldr r2, _081CD808 + adds r4, r5, r2 + ldr r2, _081CD80C + add r0, sp, #8 + adds r1, r4, #0 + bl CpuSet + movs r0, #1 + adds r1, r4, #0 + bl SetBgTilemapBuffer + b _081CD710 + .align 2, 0 +_081CD808: .4byte 0x00000804 +_081CD80C: .4byte 0x05000200 +_081CD810: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081CD81C + b _081CDA20 +_081CD81C: + ldr r0, _081CD85C + bl AddWindow + movs r2, #0xc1 + lsls r2, r2, #5 + adds r1, r5, r2 + strb r0, [r1] + bl sub_081CD4BC + cmp r0, #1 + bne _081CD856 + ldr r0, _081CD860 + bl AddWindow + ldr r2, _081CD864 + adds r1, r5, r2 + strb r0, [r1] + ldr r0, _081CD868 + bl AddWindow + ldr r2, _081CD86C + adds r1, r5, r2 + strb r0, [r1] + ldr r0, _081CD870 + bl AddWindow + ldr r2, _081CD874 + adds r1, r5, r2 + strb r0, [r1] +_081CD856: + bl DeactivateAllTextPrinters + b _081CD710 + .align 2, 0 +_081CD85C: .4byte 0x085F5970 +_081CD860: .4byte 0x085F5978 +_081CD864: .4byte 0x00001821 +_081CD868: .4byte 0x085F5980 +_081CD86C: .4byte 0x00001822 +_081CD870: .4byte 0x085F5988 +_081CD874: .4byte 0x00001823 +_081CD878: + movs r0, #0 + bl sub_081CE464 + b _081CD710 +_081CD880: + bl sub_081CE118 + b _081CD710 +_081CD886: + bl sub_081CD4BC + cmp r0, #1 + beq _081CD890 + b _081CD710 +_081CD890: + bl sub_081CE068 + b _081CD710 +_081CD896: + bl sub_081CD3E4 + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #8 + lsrs r1, r1, #0x10 + movs r0, #0 + b _081CD8C4 +_081CD8A6: + bl sub_081CD3E4 + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #8 + lsrs r1, r1, #0x10 + movs r0, #1 + b _081CD8C4 +_081CD8B6: + bl sub_081CD3E4 + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #8 + lsrs r1, r1, #0x10 + movs r0, #2 +_081CD8C4: + movs r2, #1 + bl sub_081CDEB4 + b _081CD710 +_081CD8CC: + bl sub_081CD3E4 + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #8 + lsrs r1, r1, #0x10 + movs r0, #3 + movs r2, #1 + bl sub_081CDEB4 + cmp r0, #1 + beq _081CD8E6 + b _081CDA20 +_081CD8E6: + movs r1, #0xc1 + lsls r1, r1, #5 + adds r0, r5, r1 + ldrb r0, [r0] + bl PutWindowTilemap + bl sub_081CD4BC + cmp r0, #1 + beq _081CD8FC + b _081CD710 +_081CD8FC: + ldr r2, _081CD91C + adds r0, r5, r2 + ldrb r0, [r0] + bl PutWindowTilemap + ldr r1, _081CD920 + adds r0, r5, r1 + ldrb r0, [r0] + bl PutWindowTilemap + ldr r2, _081CD924 + adds r0, r5, r2 + ldrb r0, [r0] + bl PutWindowTilemap + b _081CD710 + .align 2, 0 +_081CD91C: .4byte 0x00001821 +_081CD920: .4byte 0x00001822 +_081CD924: .4byte 0x00001823 +_081CD928: + movs r0, #1 + bl ShowBg + movs r0, #2 + bl HideBg + movs r0, #3 + bl ShowBg + bl sub_081CD4BC + cmp r0, #1 + beq _081CD944 + b _081CD710 +_081CD944: + movs r0, #4 + bl sub_081C7364 + b _081CD710 +_081CD94C: + movs r0, #1 + bl sub_081C7280 + bl sub_081CD4BC + cmp r0, #0 + beq _081CD95C + b _081CD710 +_081CD95C: + movs r0, #6 + bl LoadLeftHeaderGfxForIndex + movs r0, #1 + movs r1, #1 + movs r2, #0 + bl sub_081C7748 + movs r0, #6 + movs r1, #1 + movs r2, #0 + bl sub_081C7748 + b _081CD710 +_081CD978: + bl IsDma3ManagerBusyWithBgCopy_ + cmp r0, #0 + bne _081CDA20 + bl sub_081CD4BC + cmp r0, #0 + bne _081CD990 + bl sub_081C77B8 + cmp r0, #0 + bne _081CDA20 +_081CD990: + ldr r0, _081CD998 + bl InitKeys_ + b _081CD710 + .align 2, 0 +_081CD998: .4byte 0x081CE579 +_081CD99C: + bl sub_081CE5C4 + bl sub_081CD3D0 + bl sub_081D16F4 + b _081CD710 +_081CD9AA: + bl sub_081CD3D0 + bl sub_081D1704 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081CDA20 + b _081CD710 +_081CD9BA: + movs r0, #1 + bl sub_081CE5A8 + b _081CD710 +_081CD9C2: + bl sub_081CD3D0 + ldr r2, _081CDA14 + adds r1, r5, r2 + bl sub_081D27A8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081CDA20 + ldr r0, _081CDA18 + adds r6, r5, r0 + adds r0, r6, #0 + bl sub_081D2A94 + bl sub_081CD4BC + cmp r0, #1 + beq _081CD9F8 + bl sub_081CD3C0 + adds r4, r0, #0 + bl sub_081CD3B0 + lsls r4, r4, #0x10 + lsls r0, r0, #0x10 + cmp r4, r0 + beq _081CDA24 +_081CD9F8: + ldr r1, _081CDA1C + adds r0, r5, r1 + ldrb r4, [r0] + bl sub_081CD510 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_081D2AB0 + b _081CDA24 + .align 2, 0 +_081CDA14: .4byte 0x00001814 +_081CDA18: .4byte 0x000028E0 +_081CDA1C: .4byte 0x00001816 +_081CDA20: + movs r0, #2 + b _081CDA26 +_081CDA24: + movs r0, #4 +_081CDA26: + add sp, #0xc + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CD5F4 + + thumb_func_start sub_081CDA30 +sub_081CDA30: @ 0x081CDA30 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0xc + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #1 + beq _081CDA68 + cmp r4, #1 + bgt _081CDA4A + cmp r4, #0 + beq _081CDA54 + b _081CDAD4 +_081CDA4A: + cmp r4, #2 + beq _081CDA88 + cmp r4, #3 + beq _081CDA9E + b _081CDAD4 +_081CDA54: + bl sub_081CE5FC + ldr r1, _081CDA64 + adds r0, r5, r1 + bl sub_081D2B50 + movs r0, #1 + b _081CDAD6 + .align 2, 0 +_081CDA64: .4byte 0x000028E0 +_081CDA68: + bl sub_081CD3D0 + ldr r2, _081CDA84 + adds r1, r5, r2 + bl sub_081D27D4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081CDAAE + movs r0, #0 + bl sub_081CE5A8 + movs r0, #1 + b _081CDAD6 + .align 2, 0 +_081CDA84: .4byte 0x00001814 +_081CDA88: + movs r0, #0 + bl sub_081C7280 + bl sub_081CD4BC + cmp r0, #0 + bne _081CDA9A + bl sub_081C7060 +_081CDA9A: + movs r0, #0 + b _081CDAD6 +_081CDA9E: + bl IsDma3ManagerBusyWithBgCopy_ + cmp r0, #0 + bne _081CDAAE + bl MainMenuLoopedTaskIsBusy + cmp r0, #0 + beq _081CDAB2 +_081CDAAE: + movs r0, #2 + b _081CDAD6 +_081CDAB2: + ldr r1, _081CDAD0 + adds r0, r5, r1 + bl nullsub_79 + movs r0, #1 + bl HideBg + movs r0, #2 + bl HideBg + movs r0, #3 + bl HideBg + movs r0, #1 + b _081CDAD6 + .align 2, 0 +_081CDAD0: .4byte 0x000028E0 +_081CDAD4: + movs r0, #4 +_081CDAD6: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_081CDA30 + + thumb_func_start sub_081CDADC +sub_081CDADC: @ 0x081CDADC + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #0xc + bl GetSubstructPtr + adds r6, r0, #0 + bl sub_081CD3D0 + adds r2, r0, #0 + cmp r4, #9 + bls _081CDAF4 + b _081CDC30 +_081CDAF4: + lsls r0, r4, #2 + ldr r1, _081CDB00 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081CDB00: .4byte 0x081CDB04 +_081CDB04: @ jump table + .4byte _081CDB2C @ case 0 + .4byte _081CDB30 @ case 1 + .4byte _081CDB3A @ case 2 + .4byte _081CDB50 @ case 3 + .4byte _081CDB58 @ case 4 + .4byte _081CDB78 @ case 5 + .4byte _081CDB88 @ case 6 + .4byte _081CDB98 @ case 7 + .4byte _081CDBAE @ case 8 + .4byte _081CDBC8 @ case 9 +_081CDB2C: + movs r0, #0 + b _081CDB32 +_081CDB30: + movs r0, #1 +_081CDB32: + bl sub_081CCC88 +_081CDB36: + movs r0, #1 + b _081CDC32 +_081CDB3A: + movs r0, #2 + bl sub_081CCC88 + ldr r1, _081CDB4C + adds r0, r6, r1 + bl sub_081D2B50 + b _081CDB36 + .align 2, 0 +_081CDB4C: .4byte 0x000028E0 +_081CDB50: + adds r0, r2, #0 + bl sub_081D16BC + b _081CDB36 +_081CDB58: + ldr r1, _081CDB74 + adds r0, r6, r1 + bl sub_081D2780 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081CDC2C + bl sub_081CD3E4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_081CE464 + b _081CDB36 + .align 2, 0 +_081CDB74: .4byte 0x00001814 +_081CDB78: + bl sub_081CD3E4 + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #8 + lsrs r1, r1, #0x10 + movs r0, #0 + b _081CDBA6 +_081CDB88: + bl sub_081CD3E4 + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #8 + lsrs r1, r1, #0x10 + movs r0, #1 + b _081CDBA6 +_081CDB98: + bl sub_081CD3E4 + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #8 + lsrs r1, r1, #0x10 + movs r0, #2 +_081CDBA6: + movs r2, #0 + bl sub_081CDEB4 + b _081CDB36 +_081CDBAE: + bl sub_081CD3E4 + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #8 + lsrs r1, r1, #0x10 + movs r0, #3 + movs r2, #0 + bl sub_081CDEB4 + cmp r0, #1 + beq _081CDB36 + b _081CDC2C +_081CDBC8: + bl sub_081CD3D0 + adds r2, r0, #0 + ldr r0, _081CDC20 + adds r1, r6, r0 + adds r0, r2, #0 + bl sub_081D27A8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081CDC2C + ldr r1, _081CDC24 + adds r0, r6, r1 + bl sub_081D2A94 + bl sub_081CD4BC + cmp r0, #1 + beq _081CDC00 + bl sub_081CD3C0 + adds r4, r0, #0 + bl sub_081CD3B0 + lsls r4, r4, #0x10 + lsls r0, r0, #0x10 + cmp r4, r0 + beq _081CDB36 +_081CDC00: + ldr r0, _081CDC24 + adds r5, r6, r0 + ldr r1, _081CDC28 + adds r0, r6, r1 + ldrb r4, [r0] + bl sub_081CD510 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_081D2AB0 + b _081CDB36 + .align 2, 0 +_081CDC20: .4byte 0x00001814 +_081CDC24: .4byte 0x000028E0 +_081CDC28: .4byte 0x00001816 +_081CDC2C: + movs r0, #2 + b _081CDC32 +_081CDC30: + movs r0, #4 +_081CDC32: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_081CDADC + + thumb_func_start sub_081CDC38 +sub_081CDC38: @ 0x081CDC38 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0xc + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #8 + bhi _081CDD3C + lsls r0, r4, #2 + ldr r1, _081CDC54 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081CDC54: .4byte 0x081CDC58 +_081CDC58: @ jump table + .4byte _081CDC7C @ case 0 + .4byte _081CDC80 @ case 1 + .4byte _081CDC84 @ case 2 + .4byte _081CDC8E @ case 3 + .4byte _081CDC9E @ case 4 + .4byte _081CDCAE @ case 5 + .4byte _081CDCBE @ case 6 + .4byte _081CDCD6 @ case 7 + .4byte _081CDCF2 @ case 8 +_081CDC7C: + movs r0, #0 + b _081CDC86 +_081CDC80: + movs r0, #1 + b _081CDC86 +_081CDC84: + movs r0, #2 +_081CDC86: + bl sub_081CCC88 + movs r0, #1 + b _081CDD3E +_081CDC8E: + bl sub_081CD3E4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_081CE464 + movs r0, #1 + b _081CDD3E +_081CDC9E: + bl sub_081CD3E4 + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #8 + lsrs r1, r1, #0x10 + movs r0, #0 + b _081CDCCC +_081CDCAE: + bl sub_081CD3E4 + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #8 + lsrs r1, r1, #0x10 + movs r0, #1 + b _081CDCCC +_081CDCBE: + bl sub_081CD3E4 + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #8 + lsrs r1, r1, #0x10 + movs r0, #2 +_081CDCCC: + movs r2, #0 + bl sub_081CDEB4 + movs r0, #1 + b _081CDD3E +_081CDCD6: + bl sub_081CD3E4 + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #8 + lsrs r1, r1, #0x10 + movs r0, #3 + movs r2, #0 + bl sub_081CDEB4 + cmp r0, #1 + bne _081CDD38 + movs r0, #1 + b _081CDD3E +_081CDCF2: + bl sub_081CD3D0 + ldr r2, _081CDD2C + adds r1, r5, r2 + bl sub_081D27A8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081CDD38 + ldr r0, _081CDD30 + adds r4, r5, r0 + adds r0, r4, #0 + bl sub_081D2A94 + ldr r1, _081CDD34 + adds r0, r5, r1 + ldrb r5, [r0] + bl sub_081CD510 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_081D2AB0 + movs r0, #1 + b _081CDD3E + .align 2, 0 +_081CDD2C: .4byte 0x00001814 +_081CDD30: .4byte 0x000028E0 +_081CDD34: .4byte 0x00001816 +_081CDD38: + movs r0, #2 + b _081CDD3E +_081CDD3C: + movs r0, #4 +_081CDD3E: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_081CDC38 + + thumb_func_start sub_081CDD44 +sub_081CDD44: @ 0x081CDD44 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0xc + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #7 + bhi _081CDE12 + lsls r0, r4, #2 + ldr r1, _081CDD60 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081CDD60: .4byte 0x081CDD64 +_081CDD64: @ jump table + .4byte _081CDD84 @ case 0 + .4byte _081CDD88 @ case 1 + .4byte _081CDD92 @ case 2 + .4byte _081CDDA8 @ case 3 + .4byte _081CDDC0 @ case 4 + .4byte _081CDDD0 @ case 5 + .4byte _081CDDE0 @ case 6 + .4byte _081CDDF6 @ case 7 +_081CDD84: + movs r0, #0 + b _081CDD8A +_081CDD88: + movs r0, #1 +_081CDD8A: + bl sub_081CCC88 +_081CDD8E: + movs r0, #1 + b _081CDE14 +_081CDD92: + movs r0, #2 + bl sub_081CCC88 + ldr r1, _081CDDA4 + adds r0, r5, r1 + bl sub_081D2B50 + b _081CDD8E + .align 2, 0 +_081CDDA4: .4byte 0x000028E0 +_081CDDA8: + bl sub_081CD3D0 + ldr r2, _081CDDBC + adds r1, r5, r2 + bl sub_081D27D4 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081CDD8E + b _081CDE0E + .align 2, 0 +_081CDDBC: .4byte 0x00001814 +_081CDDC0: + bl sub_081CD3E4 + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #8 + lsrs r1, r1, #0x10 + movs r0, #0 + b _081CDDEE +_081CDDD0: + bl sub_081CD3E4 + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #8 + lsrs r1, r1, #0x10 + movs r0, #1 + b _081CDDEE +_081CDDE0: + bl sub_081CD3E4 + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #8 + lsrs r1, r1, #0x10 + movs r0, #2 +_081CDDEE: + movs r2, #0 + bl sub_081CDEB4 + b _081CDD8E +_081CDDF6: + bl sub_081CD3E4 + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #8 + lsrs r1, r1, #0x10 + movs r0, #3 + movs r2, #0 + bl sub_081CDEB4 + cmp r0, #1 + beq _081CDD8E +_081CDE0E: + movs r0, #2 + b _081CDE14 +_081CDE12: + movs r0, #4 +_081CDE14: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CDD44 + + thumb_func_start sub_081CDE1C +sub_081CDE1C: @ 0x081CDE1C + push {lr} + cmp r0, #1 + beq _081CDE46 + cmp r0, #1 + bgt _081CDE2C + cmp r0, #0 + beq _081CDE32 + b _081CDE5A +_081CDE2C: + cmp r0, #2 + beq _081CDE4E + b _081CDE5A +_081CDE32: + bl sub_081CD4DC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0xb0 + movs r2, #0x20 + bl sub_0811FFC4 +_081CDE42: + movs r0, #1 + b _081CDE5C +_081CDE46: + movs r0, #5 + bl sub_081C7364 + b _081CDE42 +_081CDE4E: + bl sub_081C73A8 + cmp r0, #1 + bne _081CDE42 + movs r0, #2 + b _081CDE5C +_081CDE5A: + movs r0, #4 +_081CDE5C: + pop {r1} + bx r1 + thumb_func_end sub_081CDE1C + + thumb_func_start sub_081CDE60 +sub_081CDE60: @ 0x081CDE60 + push {lr} + cmp r0, #1 + beq _081CDE7E + cmp r0, #1 + bgt _081CDE70 + cmp r0, #0 + beq _081CDE76 + b _081CDE92 +_081CDE70: + cmp r0, #2 + beq _081CDE86 + b _081CDE92 +_081CDE76: + bl sub_08120018 +_081CDE7A: + movs r0, #1 + b _081CDE94 +_081CDE7E: + movs r0, #4 + bl sub_081C7364 + b _081CDE7A +_081CDE86: + bl sub_081C73A8 + cmp r0, #1 + bne _081CDE7A + movs r0, #2 + b _081CDE94 +_081CDE92: + movs r0, #4 +_081CDE94: + pop {r1} + bx r1 + thumb_func_end sub_081CDE60 + + thumb_func_start sub_081CDE98 +sub_081CDE98: @ 0x081CDE98 + push {lr} + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r2, #1 + movs r3, #4 + bl ConvertIntToDecimalStringN + ldr r1, _081CDEB0 + bl StringCopy + pop {r1} + bx r1 + .align 2, 0 +_081CDEB0: .4byte 0x085CB7CE + thumb_func_end sub_081CDE98 + + thumb_func_start sub_081CDEB4 +sub_081CDEB4: @ 0x081CDEB4 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r4, r2, #0x18 + movs r0, #0xc + bl GetSubstructPtr + adds r6, r0, #0 + cmp r7, #1 + beq _081CDF10 + cmp r7, #1 + bgt _081CDEDA + cmp r7, #0 + beq _081CDEE4 + b _081CE05C +_081CDEDA: + cmp r7, #2 + beq _081CDF52 + cmp r7, #3 + beq _081CDFD4 + b _081CE05C +_081CDEE4: + movs r1, #0xc1 + lsls r1, r1, #5 + adds r0, r6, r1 + ldrb r0, [r0] + movs r1, #0 + bl FillWindowPixelBuffer + bl sub_081CD4BC + cmp r0, #1 + beq _081CDEFC + b _081CE05C +_081CDEFC: + ldr r1, _081CDF0C + adds r0, r6, r1 + ldrb r0, [r0] + movs r1, #0 + bl FillWindowPixelBuffer + b _081CE05C + .align 2, 0 +_081CDF0C: .4byte 0x00001821 +_081CDF10: + bl sub_081CD3C0 + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + bl sub_081CD3B0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + subs r0, #1 + cmp r4, r0 + bne _081CDF32 + bl sub_081CD4BC + cmp r0, #1 + beq _081CDF32 + b _081CE05C +_081CDF32: + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + bl sub_081CD464 + adds r2, r0, #0 + movs r1, #0xc1 + lsls r1, r1, #5 + adds r0, r6, r1 + ldrb r0, [r0] + movs r1, #2 + str r1, [sp] + movs r1, #0 + str r1, [sp, #4] + str r1, [sp, #8] + movs r1, #1 + b _081CDFC4 +_081CDF52: + bl sub_081CD4BC + cmp r0, #1 + beq _081CDF5C + b _081CE05C +_081CDF5C: + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + bl sub_081CD484 + adds r2, r0, #0 + movs r1, #0xc1 + lsls r1, r1, #5 + adds r0, r6, r1 + ldrb r0, [r0] + movs r1, #0x12 + str r1, [sp] + movs r5, #0 + str r5, [sp, #4] + str r5, [sp, #8] + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + add r1, sp, #0xc + movs r0, #0xfc + strb r0, [r1] + movs r0, #4 + strb r0, [r1, #1] + movs r0, #8 + strb r0, [r1, #2] + adds r0, r1, #0 + strb r5, [r0, #3] + movs r0, #9 + strb r0, [r1, #4] + mov r4, sp + adds r4, #0x11 + bl sub_081CD4A8 + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl sub_081CDE98 + ldr r4, _081CDFCC + adds r0, r4, #0 + add r1, sp, #0xc + bl StringExpandPlaceholders + ldr r1, _081CDFD0 + adds r0, r6, r1 + ldrb r0, [r0] + str r7, [sp] + str r5, [sp, #4] + str r5, [sp, #8] + movs r1, #1 + adds r2, r4, #0 +_081CDFC4: + movs r3, #0 + bl AddTextPrinterParameterized + b _081CE05C + .align 2, 0 +_081CDFCC: .4byte 0x02021C7C +_081CDFD0: .4byte 0x00001821 +_081CDFD4: + ldr r1, _081CDFE4 + adds r0, r6, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _081CDFE8 + cmp r0, #1 + beq _081CE024 + b _081CE05C + .align 2, 0 +_081CDFE4: .4byte 0x00002908 +_081CDFE8: + cmp r4, #0 + beq _081CDFFC + movs r1, #0xc1 + lsls r1, r1, #5 + adds r0, r6, r1 + ldrb r0, [r0] + movs r1, #3 + bl CopyWindowToVram + b _081CE00A +_081CDFFC: + movs r1, #0xc1 + lsls r1, r1, #5 + adds r0, r6, r1 + ldrb r0, [r0] + movs r1, #2 + bl CopyWindowToVram +_081CE00A: + bl sub_081CD4BC + cmp r0, #1 + bne _081CE048 + ldr r0, _081CE020 + adds r1, r6, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _081CE05C + .align 2, 0 +_081CE020: .4byte 0x00002908 +_081CE024: + cmp r4, #0 + beq _081CE03C + ldr r1, _081CE038 + adds r0, r6, r1 + ldrb r0, [r0] + movs r1, #3 + bl CopyWindowToVram + b _081CE048 + .align 2, 0 +_081CE038: .4byte 0x00001821 +_081CE03C: + ldr r1, _081CE054 + adds r0, r6, r1 + ldrb r0, [r0] + movs r1, #2 + bl CopyWindowToVram +_081CE048: + ldr r0, _081CE058 + adds r1, r6, r0 + movs r0, #0 + strb r0, [r1] + movs r0, #1 + b _081CE05E + .align 2, 0 +_081CE054: .4byte 0x00001821 +_081CE058: .4byte 0x00002908 +_081CE05C: + movs r0, #0 +_081CE05E: + add sp, #0x1c + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CDEB4 + + thumb_func_start sub_081CE068 +sub_081CE068: @ 0x081CE068 + push {r4, lr} + movs r0, #0xc + bl GetSubstructPtr + adds r4, r0, #0 + ldr r1, _081CE090 + adds r0, r4, r1 + ldrb r0, [r0] + movs r1, #3 + bl CopyWindowToVram + ldr r0, _081CE094 + adds r4, r4, r0 + ldrb r0, [r4] + movs r1, #3 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081CE090: .4byte 0x00001822 +_081CE094: .4byte 0x00001823 + thumb_func_end sub_081CE068 + + thumb_func_start sub_081CE098 +sub_081CE098: @ 0x081CE098 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x2e + ldrsh r4, [r5, r0] + bl sub_081CD3C0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r4, r0 + bne _081CE0B6 + adds r0, r5, #0 + movs r1, #0 + bl StartSpriteAnim + b _081CE0BE +_081CE0B6: + adds r0, r5, #0 + movs r1, #1 + bl StartSpriteAnim +_081CE0BE: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_081CE098 + + thumb_func_start sub_081CE0C4 +sub_081CE0C4: @ 0x081CE0C4 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_081CD3C0 + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + bl sub_081CD3B0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + subs r0, #1 + cmp r4, r0 + bne _081CE0E4 + movs r0, #0x65 + b _081CE0E6 +_081CE0E4: + movs r0, #0x66 +_081CE0E6: + bl IndexOfSpritePaletteTag + lsls r0, r0, #4 + ldrb r2, [r5, #5] + movs r1, #0xf + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #5] + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_081CE0C4 + + thumb_func_start sub_081CE0FC +sub_081CE0FC: @ 0x081CE0FC + push {r4, lr} + adds r4, r0, #0 + bl sub_081CD4DC + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081CE0FC + + thumb_func_start sub_081CE118 +sub_081CE118: @ 0x081CE118 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x58 + movs r0, #0xc + bl GetSubstructPtr + adds r6, r0, #0 + add r4, sp, #0x20 + add r5, sp, #0x38 + mov r0, sp + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_081D284C + bl sub_081CD4BC + adds r7, r4, #0 + mov sl, r5 + cmp r0, #1 + bne _081CE1AC + ldr r1, _081CE198 + adds r0, r6, r1 + movs r2, #0x6a + strh r2, [r0] + ldr r3, _081CE19C + adds r1, r6, r3 + strh r2, [r1] + bl unref_sub_811BBF4 + bl sub_0811FFB0 + ldr r2, _081CE1A0 + movs r0, #0x69 + movs r1, #0x69 + bl sub_081204B4 + ldrb r1, [r0, #5] + movs r2, #0xc + orrs r1, r2 + strb r1, [r0, #5] + movs r1, #0xc0 + strh r1, [r0, #0x20] + movs r1, #0x20 + strh r1, [r0, #0x22] + ldr r1, _081CE1A4 + str r1, [r0, #0x1c] + ldr r2, _081CE1A8 + adds r1, r6, r2 + str r0, [r1] + movs r0, #0x69 + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl sub_081C7150 + add r3, sp, #0x50 + mov r8, r3 + b _081CE2FA + .align 2, 0 +_081CE198: .4byte 0x00001824 +_081CE19C: .4byte 0x00001826 +_081CE1A0: .4byte 0x085F5944 +_081CE1A4: .4byte 0x081CE0FD +_081CE1A8: .4byte 0x000028DC +_081CE1AC: + mov r0, sp + bl LoadSpriteSheets + mov r0, sl + bl Pokenav_AllocAndLoadPalettes + movs r4, #0 + add r0, sp, #0x50 + mov r8, r0 + b _081CE21C +_081CE1C0: + lsls r2, r4, #2 + adds r2, r2, r4 + lsls r2, r2, #0x12 + movs r1, #0x80 + lsls r1, r1, #0xc + adds r2, r2, r1 + asrs r2, r2, #0x10 + adds r0, r7, #0 + movs r1, #0xe2 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0x40 + beq _081CE20C + ldr r2, _081CE200 + adds r0, r6, r2 + adds r0, r0, r4 + strb r3, [r0] + ldr r2, _081CE204 + lsls r0, r3, #4 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r1, r0, r2 + strh r4, [r1, #0x2e] + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, _081CE208 + str r1, [r0] + b _081CE216 + .align 2, 0 +_081CE200: .4byte 0x00001806 +_081CE204: .4byte 0x020205AC +_081CE208: .4byte 0x081CE099 +_081CE20C: + ldr r3, _081CE274 + adds r0, r6, r3 + adds r0, r0, r4 + movs r1, #0xff + strb r1, [r0] +_081CE216: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_081CE21C: + bl sub_081CD3B0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + subs r0, #1 + cmp r4, r0 + blt _081CE1C0 + movs r0, #0x67 + strh r0, [r7] + ldr r0, _081CE278 + str r0, [r7, #0x14] + cmp r4, #5 + bhi _081CE290 + ldr r0, _081CE274 + adds r5, r6, r0 + ldr r1, _081CE27C + mov sb, r1 +_081CE23E: + lsls r2, r4, #2 + adds r2, r2, r4 + lsls r2, r2, #0x12 + movs r3, #0x80 + lsls r3, r3, #0xc + adds r2, r2, r3 + asrs r2, r2, #0x10 + adds r0, r7, #0 + movs r1, #0xe6 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0x40 + beq _081CE280 + adds r0, r5, r4 + strb r3, [r0] + lsls r1, r3, #4 + adds r1, r1, r3 + lsls r1, r1, #2 + add r1, sb + ldrb r2, [r1, #3] + movs r0, #0x3f + ands r0, r2 + strb r0, [r1, #3] + b _081CE286 + .align 2, 0 +_081CE274: .4byte 0x00001806 +_081CE278: .4byte 0x08007141 +_081CE27C: .4byte 0x020205AC +_081CE280: + adds r1, r5, r4 + movs r0, #0xff + strb r0, [r1] +_081CE286: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #5 + bls _081CE23E +_081CE290: + movs r0, #0x66 + strh r0, [r7] + ldr r0, _081CE2E4 + str r0, [r7, #0x14] + lsls r2, r4, #2 + adds r2, r2, r4 + lsls r2, r2, #0x12 + movs r0, #0x80 + lsls r0, r0, #0xc + adds r2, r2, r0 + asrs r2, r2, #0x10 + adds r0, r7, #0 + movs r1, #0xde + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0x40 + beq _081CE2F0 + ldr r1, _081CE2E8 + adds r0, r6, r1 + adds r0, r0, r4 + strb r3, [r0] + ldr r0, _081CE2EC + lsls r2, r3, #4 + adds r2, r2, r3 + lsls r2, r2, #2 + adds r2, r2, r0 + ldrb r3, [r2, #1] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + movs r3, #0x40 + orrs r0, r3 + strb r0, [r2, #1] + ldrb r0, [r2, #3] + ands r1, r0 + movs r0, #0x80 + orrs r1, r0 + strb r1, [r2, #3] + b _081CE2FA + .align 2, 0 +_081CE2E4: .4byte 0x081CE0C5 +_081CE2E8: .4byte 0x00001806 +_081CE2EC: .4byte 0x020205AC +_081CE2F0: + ldr r2, _081CE324 + adds r0, r6, r2 + adds r0, r0, r4 + movs r1, #0xff + strb r1, [r0] +_081CE2FA: + mov r0, r8 + mov r1, sl + bl sub_081D28E0 + mov r0, r8 + bl LoadSpriteSheet + movs r0, #0 + mov r3, sl + str r0, [r3, #8] + mov r0, sl + bl Pokenav_AllocAndLoadPalettes + add sp, #0x58 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081CE324: .4byte 0x00001806 + thumb_func_end sub_081CE118 + + thumb_func_start sub_081CE328 +sub_081CE328: @ 0x081CE328 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_081CD4BC + cmp r0, #1 + bne _081CE35C + ldr r1, _081CE358 + adds r0, r5, r1 + ldr r0, [r0] + bl DestroySprite + movs r0, #0x6a + bl FreeSpriteTilesByTag + movs r0, #0x69 + bl FreeSpriteTilesByTag + movs r0, #0x6a + bl FreeSpritePaletteByTag + movs r0, #0x69 + bl FreeSpritePaletteByTag + b _081CE39C + .align 2, 0 +_081CE358: .4byte 0x000028DC +_081CE35C: + movs r4, #0 +_081CE35E: + ldr r1, _081CE3C8 + adds r0, r5, r1 + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _081CE3CC + adds r0, r0, r1 + bl DestroySprite + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #6 + bls _081CE35E + movs r0, #0x65 + bl FreeSpriteTilesByTag + movs r0, #0x66 + bl FreeSpriteTilesByTag + movs r0, #0x67 + bl FreeSpriteTilesByTag + movs r0, #0x65 + bl FreeSpritePaletteByTag + movs r0, #0x66 + bl FreeSpritePaletteByTag +_081CE39C: + ldr r0, _081CE3D0 + adds r1, r5, r0 + ldrb r0, [r1] + cmp r0, #0xff + beq _081CE3C2 + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _081CE3CC + adds r0, r0, r1 + bl DestroySprite + movs r0, #0x64 + bl FreeSpriteTilesByTag + movs r0, #0x64 + bl FreeSpritePaletteByTag +_081CE3C2: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081CE3C8: .4byte 0x00001806 +_081CE3CC: .4byte 0x020205AC +_081CE3D0: .4byte 0x00001816 + thumb_func_end sub_081CE328 + + thumb_func_start sub_081CE3D4 +sub_081CE3D4: @ 0x081CE3D4 + push {r4, lr} + movs r0, #0xc + bl GetSubstructPtr + adds r4, r0, #0 + movs r1, #0xc1 + lsls r1, r1, #5 + adds r0, r4, r1 + ldrb r0, [r0] + bl RemoveWindow + bl sub_081CD4BC + cmp r0, #1 + bne _081CE420 + ldr r1, _081CE414 + adds r0, r4, r1 + ldrb r0, [r0] + bl RemoveWindow + ldr r1, _081CE418 + adds r0, r4, r1 + ldrb r0, [r0] + bl RemoveWindow + ldr r1, _081CE41C + adds r0, r4, r1 + ldrb r0, [r0] + bl RemoveWindow + b _081CE424 + .align 2, 0 +_081CE414: .4byte 0x00001821 +_081CE418: .4byte 0x00001822 +_081CE41C: .4byte 0x00001823 +_081CE420: + bl sub_081C7784 +_081CE424: + movs r1, #0x8a + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + adds r0, r4, #0 + bl sub_081CE328 + bl sub_081CE59C + movs r0, #0xc + bl FreePokenavSubstruct + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_081CE3D4 + + thumb_func_start sub_081CE444 +sub_081CE444: @ 0x081CE444 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0xc + bl GetSubstructPtr + ldr r1, _081CE460 + adds r0, r0, r1 + ldrh r0, [r0] + adds r0, #0x26 + strh r0, [r4, #0x20] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081CE460: .4byte 0x00001814 + thumb_func_end sub_081CE444 + + thumb_func_start sub_081CE464 +sub_081CE464: @ 0x081CE464 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x28 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r0, #0xc + bl GetSubstructPtr + mov r8, r0 + ldr r7, _081CE4E4 + add r7, r8 + ldrb r0, [r7] + cmp r0, #0xff + bne _081CE530 + add r5, sp, #0x18 + add r4, sp, #0x20 + adds r0, r5, #0 + mov r1, sp + adds r2, r4, #0 + bl sub_081D2800 + adds r0, r6, #0 + bl sub_081CD414 + str r0, [sp, #0x18] + adds r0, r6, #0 + bl sub_081CD434 + str r0, [sp, #0x20] + adds r0, r4, #0 + bl LoadSpritePalette + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _081CE4E8 + add r4, r8 + strh r0, [r4] + adds r0, r5, #0 + bl LoadSpriteSheet + ldr r5, _081CE4EC + add r5, r8 + strh r0, [r5] + mov r0, sp + movs r1, #0x26 + movs r2, #0x68 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strb r0, [r7] + cmp r0, #0x40 + bne _081CE4F0 + movs r0, #0x64 + bl FreeSpriteTilesByTag + movs r0, #0x64 + bl FreeSpritePaletteByTag + movs r0, #0xff + strb r0, [r7] + b _081CE55A + .align 2, 0 +_081CE4E4: .4byte 0x00001816 +_081CE4E8: .4byte 0x00001818 +_081CE4EC: .4byte 0x0000181A +_081CE4F0: + strb r0, [r7] + ldr r2, _081CE520 + ldrb r1, [r7] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, _081CE524 + str r1, [r0] + ldr r1, _081CE528 + add r1, r8 + ldrh r0, [r5] + lsls r0, r0, #5 + ldr r2, _081CE52C + adds r0, r0, r2 + str r0, [r1] + ldrh r0, [r4] + lsls r0, r0, #4 + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r0, r1 + strh r0, [r4] + b _081CE55A + .align 2, 0 +_081CE520: .4byte 0x020205AC +_081CE524: .4byte 0x081CE445 +_081CE528: .4byte 0x0000181C +_081CE52C: .4byte 0x06010000 +_081CE530: + adds r0, r6, #0 + bl sub_081CD414 + ldr r1, _081CE568 + add r1, r8 + ldr r2, [r1] + ldr r1, _081CE56C + str r0, [r1] + str r2, [r1, #4] + ldr r0, _081CE570 + str r0, [r1, #8] + ldr r0, [r1, #8] + adds r0, r6, #0 + bl sub_081CD434 + ldr r1, _081CE574 + add r1, r8 + ldrh r1, [r1] + movs r2, #0x20 + bl LoadPalette +_081CE55A: + add sp, #0x28 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081CE568: .4byte 0x0000181C +_081CE56C: .4byte 0x040000D4 +_081CE570: .4byte 0x80000400 +_081CE574: .4byte 0x00001818 + thumb_func_end sub_081CE464 + + thumb_func_start sub_081CE578 +sub_081CE578: @ 0x081CE578 + push {r4, lr} + bl sub_081CD3D0 + adds r4, r0, #0 + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + adds r0, r4, #0 + bl sub_081D1750 + bl ScanlineEffect_InitHBlankDmaTransfer + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_081CE578 + + thumb_func_start sub_081CE59C +sub_081CE59C: @ 0x081CE59C + push {lr} + bl SetPokenavVBlankCallback + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081CE59C + + thumb_func_start sub_081CE5A8 +sub_081CE5A8: @ 0x081CE5A8 + push {lr} + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081CE5B8 + movs r0, #2 + bl ShowBg + b _081CE5BE +_081CE5B8: + movs r0, #2 + bl HideBg +_081CE5BE: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081CE5A8 + + thumb_func_start sub_081CE5C4 +sub_081CE5C4: @ 0x081CE5C4 + push {r4, lr} + bl sub_081CD3D0 + adds r4, r0, #0 + bl sub_081CD3E4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081CE5F8 + strb r0, [r1] + adds r1, r4, #0 + adds r1, #0x50 + lsls r2, r0, #2 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, #0x14 + adds r2, r4, r2 + adds r0, r4, #0 + bl sub_081D15CC + adds r0, r4, #0 + bl sub_081D16BC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081CE5F8: .4byte 0x030012B0 + thumb_func_end sub_081CE5C4 + + thumb_func_start sub_081CE5FC +sub_081CE5FC: @ 0x081CE5FC + push {r4, r5, lr} + bl sub_081CD3D0 + adds r5, r0, #0 + bl sub_081CD4BC + cmp r0, #0 + bne _081CE624 + bl sub_081CD3C0 + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + bl sub_081CD3B0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + subs r0, #1 + cmp r4, r0 + beq _081CE640 +_081CE624: + bl sub_081CD3E4 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, #0x14 + adds r1, r5, r1 + adds r2, r5, #0 + adds r2, #0x50 + adds r0, r5, #0 + bl sub_081D15CC +_081CE640: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081CE5FC + + thumb_func_start sub_081CE648 +sub_081CE648: @ 0x081CE648 + push {r4, lr} + movs r0, #0xc + bl GetSubstructPtr + adds r4, r0, #0 + bl sub_081CD4BC + cmp r0, #1 + beq _081CE65E + movs r0, #0 + b _081CE664 +_081CE65E: + ldr r1, _081CE66C + adds r0, r4, r1 + ldrb r0, [r0] +_081CE664: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081CE66C: .4byte 0x00001828 + thumb_func_end sub_081CE648 + + thumb_func_start sub_081CE670 +sub_081CE670: @ 0x081CE670 + push {r4, lr} + movs r0, #7 + movs r1, #0x24 + bl AllocSubstruct + adds r4, r0, #0 + cmp r4, #0 + beq _081CE6C4 + ldr r1, _081CE6B4 + movs r0, #0x12 + bl AllocSubstruct + str r0, [r4, #0x20] + cmp r0, #0 + beq _081CE6C4 + ldr r0, _081CE6B8 + str r0, [r4] + ldr r0, _081CE6BC + movs r1, #1 + bl CreateLoopedTask + str r0, [r4, #4] + movs r0, #0 + str r0, [r4, #0x18] + bl sub_081C6E6C + ldr r1, _081CE6C0 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r4, #0x14] + movs r0, #1 + b _081CE6C6 + .align 2, 0 +_081CE6B4: .4byte 0x000006AC +_081CE6B8: .4byte 0x081CE745 +_081CE6BC: .4byte 0x081CE851 +_081CE6C0: .4byte 0x085F59AC +_081CE6C4: + movs r0, #0 +_081CE6C6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081CE670 + + thumb_func_start sub_081CE6CC +sub_081CE6CC: @ 0x081CE6CC + push {r4, lr} + movs r0, #7 + movs r1, #0x24 + bl AllocSubstruct + adds r4, r0, #0 + cmp r4, #0 + beq _081CE708 + movs r0, #0x12 + bl GetSubstructPtr + str r0, [r4, #0x20] + ldr r0, _081CE700 + str r0, [r4] + movs r0, #1 + str r0, [r4, #0x18] + bl sub_081C6E6C + ldr r1, _081CE704 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r4, #0x14] + movs r0, #1 + b _081CE70A + .align 2, 0 +_081CE700: .4byte 0x081CE765 +_081CE704: .4byte 0x085F59AC +_081CE708: + movs r0, #0 +_081CE70A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081CE6CC + + thumb_func_start sub_081CE710 +sub_081CE710: @ 0x081CE710 + push {lr} + movs r0, #7 + bl GetSubstructPtr + ldr r1, [r0] + bl _call_via_r1 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CE710 + + thumb_func_start sub_081CE724 +sub_081CE724: @ 0x081CE724 + push {lr} + movs r0, #7 + bl GetSubstructPtr + ldr r0, [r0, #0x1c] + cmp r0, #0 + bne _081CE738 + movs r0, #0x12 + bl FreePokenavSubstruct +_081CE738: + movs r0, #7 + bl FreePokenavSubstruct + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081CE724 + + thumb_func_start sub_081CE744 +sub_081CE744: @ 0x081CE744 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #4] + bl IsLoopedTaskActive + cmp r0, #0 + bne _081CE756 + ldr r0, _081CE760 + str r0, [r4] +_081CE756: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081CE760: .4byte 0x081CE765 + thumb_func_end sub_081CE744 + + thumb_func_start sub_081CE764 +sub_081CE764: @ 0x081CE764 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _081CE778 + ldrh r1, [r2, #0x30] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _081CE77C + movs r0, #1 + b _081CE7DA + .align 2, 0 +_081CE778: .4byte 0x03002360 +_081CE77C: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _081CE788 + movs r0, #2 + b _081CE7DA +_081CE788: + ldrh r1, [r2, #0x2e] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _081CE796 + movs r0, #3 + b _081CE7DA +_081CE796: + movs r0, #0x10 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0 + beq _081CE7A6 + movs r0, #4 + b _081CE7DA +_081CE7A6: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081CE7BC + str r2, [r4, #0x1c] + ldr r0, _081CE7B8 + str r0, [r4] + movs r0, #5 + b _081CE7DA + .align 2, 0 +_081CE7B8: .4byte 0x081CE7E5 +_081CE7BC: + movs r5, #1 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + bne _081CE7CA + movs r0, #0 + b _081CE7DA +_081CE7CA: + bl GetSelectedMatchCall + ldr r1, [r4, #0x20] + strh r0, [r1, #2] + str r5, [r4, #0x1c] + ldr r0, _081CE7E0 + str r0, [r4] + movs r0, #6 +_081CE7DA: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081CE7E0: .4byte 0x081CE7ED + thumb_func_end sub_081CE764 + + thumb_func_start sub_081CE7E4 +sub_081CE7E4: @ 0x081CE7E4 + ldr r0, _081CE7E8 + bx lr + .align 2, 0 +_081CE7E8: .4byte 0x000186A3 + thumb_func_end sub_081CE7E4 + + thumb_func_start sub_081CE7EC +sub_081CE7EC: @ 0x081CE7EC + ldr r0, _081CE7F0 + bx lr + .align 2, 0 +_081CE7F0: .4byte 0x000186A9 + thumb_func_end sub_081CE7EC + + thumb_func_start sub_081CE7F4 +sub_081CE7F4: @ 0x081CE7F4 + push {lr} + movs r0, #7 + bl GetSubstructPtr + ldr r0, [r0, #0x18] + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CE7F4 + + thumb_func_start sub_081CE804 +sub_081CE804: @ 0x081CE804 + push {lr} + movs r0, #7 + bl GetSubstructPtr + ldr r0, [r0, #0x20] + adds r0, #4 + pop {r1} + bx r1 + thumb_func_end sub_081CE804 + + thumb_func_start sub_081CE814 +sub_081CE814: @ 0x081CE814 + push {lr} + movs r0, #7 + bl GetSubstructPtr + ldr r0, [r0, #0x20] + ldrh r0, [r0] + pop {r1} + bx r1 + thumb_func_end sub_081CE814 + + thumb_func_start sub_081CE824 +sub_081CE824: @ 0x081CE824 + push {r4, lr} + movs r0, #7 + bl GetSubstructPtr + adds r4, r0, #0 + bl GetSelectedMatchCall + ldr r1, [r4, #0x20] + lsls r0, r0, #2 + adds r1, r1, r0 + ldrh r0, [r1, #6] + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081CE824 + + thumb_func_start sub_081CE840 +sub_081CE840: @ 0x081CE840 + push {lr} + movs r0, #7 + bl GetSubstructPtr + ldr r0, [r0, #0x20] + ldrh r0, [r0, #2] + pop {r1} + bx r1 + thumb_func_end sub_081CE840 + + thumb_func_start sub_081CE850 +sub_081CE850: @ 0x081CE850 + push {lr} + ldr r2, _081CE864 + lsls r1, r0, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {r1} + bx r1 + .align 2, 0 +_081CE864: .4byte 0x085F59C0 + thumb_func_end sub_081CE850 + + thumb_func_start sub_081CE868 +sub_081CE868: @ 0x081CE868 + push {r4, r5, r6, lr} + sub sp, #4 + movs r0, #7 + bl GetSubstructPtr + adds r6, r0, #0 + ldr r0, [r6, #0x20] + movs r1, #0 + strh r1, [r0] + ldr r0, [r6, #0x20] + strh r1, [r0, #2] + ldr r1, _081CE8E8 + ldr r0, [sp] + ands r0, r1 + movs r1, #0xe + orrs r0, r1 + str r0, [sp] + movs r5, #0 +_081CE88C: + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _081CE8EC + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #5 + bl GetMonData + cmp r0, #0 + beq _081CE8DE + adds r0, r4, #0 + movs r1, #6 + bl GetMonData + cmp r0, #0 + bne _081CE8D8 + lsls r1, r5, #0x18 + lsrs r1, r1, #0x10 + ldr r2, _081CE8F0 + ldr r0, [sp] + ands r0, r2 + orrs r0, r1 + str r0, [sp] + ldr r1, [r6, #0x14] + adds r0, r4, #0 + bl GetMonData + lsls r0, r0, #0x10 + ldr r2, _081CE8F4 + ldr r1, [sp] + ands r1, r2 + orrs r1, r0 + str r1, [sp] + adds r0, r6, #0 + mov r1, sp + bl sub_081CE9F8 +_081CE8D8: + adds r5, #1 + cmp r5, #5 + ble _081CE88C +_081CE8DE: + movs r0, #1 + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_081CE8E8: .4byte 0xFFFFFF00 +_081CE8EC: .4byte 0x02024190 +_081CE8F0: .4byte 0xFFFF00FF +_081CE8F4: .4byte 0x0000FFFF + thumb_func_end sub_081CE868 + + thumb_func_start sub_081CE8F8 +sub_081CE8F8: @ 0x081CE8F8 + push {lr} + movs r0, #7 + bl GetSubstructPtr + movs r1, #0 + str r1, [r0, #0x10] + str r1, [r0, #0xc] + movs r0, #1 + pop {r1} + bx r1 + thumb_func_end sub_081CE8F8 + + thumb_func_start sub_081CE90C +sub_081CE90C: @ 0x081CE90C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + movs r0, #7 + bl GetSubstructPtr + adds r6, r0, #0 + ldr r5, [r6, #0xc] + ldr r4, [r6, #0x10] + movs r0, #0 + mov r8, r0 + cmp r5, #0xd + bgt _081CE99C +_081CE928: + cmp r4, #0x1d + bgt _081CE994 + lsls r0, r5, #0x18 + lsrs r7, r0, #0x18 +_081CE930: + adds r0, r5, #0 + adds r1, r4, #0 + bl CheckBoxMonSanityAt + cmp r0, #0 + beq _081CE96E + ldr r1, _081CE984 + ldr r0, [sp] + ands r0, r1 + orrs r0, r7 + lsls r1, r4, #0x18 + lsrs r1, r1, #0x18 + lsls r3, r1, #8 + ldr r2, _081CE988 + ands r0, r2 + orrs r0, r3 + str r0, [sp] + ldr r2, [r6, #0x14] + adds r0, r7, #0 + bl GetBoxMonDataAt + lsls r0, r0, #0x10 + ldr r2, _081CE98C + ldr r1, [sp] + ands r1, r2 + orrs r1, r0 + str r1, [sp] + adds r0, r6, #0 + mov r1, sp + bl sub_081CE9F8 +_081CE96E: + movs r0, #1 + add r8, r0 + adds r4, #1 + mov r0, r8 + cmp r0, #0xe + ble _081CE990 + str r5, [r6, #0xc] + str r4, [r6, #0x10] + movs r0, #3 + b _081CE99E + .align 2, 0 +_081CE984: .4byte 0xFFFFFF00 +_081CE988: .4byte 0xFFFF00FF +_081CE98C: .4byte 0x0000FFFF +_081CE990: + cmp r4, #0x1d + ble _081CE930 +_081CE994: + movs r4, #0 + adds r5, #1 + cmp r5, #0xd + ble _081CE928 +_081CE99C: + movs r0, #1 +_081CE99E: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CE90C + + thumb_func_start sub_081CE9AC +sub_081CE9AC: @ 0x081CE9AC + push {r4, r5, r6, lr} + movs r0, #7 + bl GetSubstructPtr + adds r5, r0, #0 + ldr r0, [r5, #0x20] + ldrh r6, [r0] + ldrh r4, [r0, #6] + movs r1, #1 + strh r1, [r0, #6] + movs r3, #1 + cmp r3, r6 + bge _081CE9EC +_081CE9C6: + ldr r2, [r5, #0x20] + lsls r0, r3, #2 + adds r1, r2, r0 + ldrh r0, [r1, #6] + cmp r0, r4 + bne _081CE9E0 + subs r0, r3, #1 + lsls r0, r0, #2 + adds r0, r2, r0 + ldrh r0, [r0, #6] + strh r0, [r1, #6] + adds r0, r3, #1 + b _081CE9E6 +_081CE9E0: + adds r4, r0, #0 + adds r0, r3, #1 + strh r0, [r1, #6] +_081CE9E6: + adds r3, r0, #0 + cmp r3, r6 + blt _081CE9C6 +_081CE9EC: + movs r0, #1 + str r0, [r5, #0x18] + movs r0, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_081CE9AC + + thumb_func_start sub_081CE9F8 +sub_081CE9F8: @ 0x081CE9F8 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r7, r1, #0 + movs r1, #0 + ldr r0, [r5, #0x20] + ldrh r2, [r0] + lsrs r3, r2, #1 + cmp r2, r3 + beq _081CEA28 + adds r6, r0, #0 + ldrh r4, [r7, #2] +_081CEA0E: + lsls r0, r3, #2 + adds r0, r6, r0 + ldrh r0, [r0, #6] + cmp r4, r0 + bls _081CEA1C + adds r2, r3, #0 + b _081CEA1E +_081CEA1C: + adds r1, r3, #1 +_081CEA1E: + subs r0, r2, r1 + lsrs r0, r0, #1 + adds r3, r1, r0 + cmp r2, r3 + bne _081CEA0E +_081CEA28: + ldr r0, [r5, #0x20] + ldrh r2, [r0] + lsls r6, r3, #2 + cmp r2, r3 + bls _081CEA4C + lsls r0, r2, #2 + subs r4, r0, #4 +_081CEA36: + ldr r0, [r5, #0x20] + lsls r1, r2, #2 + adds r0, #4 + adds r1, r0, r1 + adds r0, r0, r4 + ldr r0, [r0] + str r0, [r1] + subs r4, #4 + subs r2, #1 + cmp r2, r3 + bhi _081CEA36 +_081CEA4C: + ldr r0, [r5, #0x20] + adds r0, #4 + adds r0, r0, r6 + ldr r1, [r7] + str r1, [r0] + ldr r1, [r5, #0x20] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_081CE9F8 + + thumb_func_start sub_081CEA64 +sub_081CEA64: @ 0x081CEA64 + push {r4, lr} + movs r1, #0x81 + lsls r1, r1, #4 + movs r0, #8 + bl AllocSubstruct + adds r4, r0, #0 + cmp r4, #0 + beq _081CEA94 + ldr r0, _081CEA8C + movs r1, #1 + bl CreateLoopedTask + str r0, [r4, #4] + ldr r0, _081CEA90 + str r0, [r4] + movs r0, #0 + str r0, [r4, #0xc] + movs r0, #1 + b _081CEA96 + .align 2, 0 +_081CEA8C: .4byte 0x081CEB4D +_081CEA90: .4byte 0x081CEB19 +_081CEA94: + movs r0, #0 +_081CEA96: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081CEA64 + + thumb_func_start sub_081CEA9C +sub_081CEA9C: @ 0x081CEA9C + push {r4, lr} + movs r1, #0x81 + lsls r1, r1, #4 + movs r0, #8 + bl AllocSubstruct + adds r4, r0, #0 + cmp r4, #0 + beq _081CEACC + ldr r0, _081CEAC4 + movs r1, #1 + bl CreateLoopedTask + str r0, [r4, #4] + ldr r0, _081CEAC8 + str r0, [r4] + movs r0, #1 + str r0, [r4, #0xc] + b _081CEACE + .align 2, 0 +_081CEAC4: .4byte 0x081CEB4D +_081CEAC8: .4byte 0x081CEB19 +_081CEACC: + movs r0, #0 +_081CEACE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081CEA9C + + thumb_func_start sub_081CEAD4 +sub_081CEAD4: @ 0x081CEAD4 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #8 + bl GetSubstructPtr + adds r5, r0, #0 + ldr r0, _081CEAFC + lsls r4, r4, #2 + adds r4, r4, r0 + ldr r0, [r4] + movs r1, #1 + bl CreateLoopedTask + str r0, [r5, #4] + ldr r0, _081CEB00 + str r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081CEAFC: .4byte 0x085F5BA4 +_081CEB00: .4byte 0x081CEB19 + thumb_func_end sub_081CEAD4 + + thumb_func_start sub_081CEB04 +sub_081CEB04: @ 0x081CEB04 + push {lr} + movs r0, #8 + bl GetSubstructPtr + ldr r0, [r0] + bl _call_via_r0 + pop {r1} + thumb_func_end sub_081CEB04 + + thumb_func_start sub_081CEB14 +sub_081CEB14: @ 0x081CEB14 + bx r1 + .align 2, 0 + thumb_func_end sub_081CEB14 + + thumb_func_start sub_081CEB18 +sub_081CEB18: @ 0x081CEB18 + push {lr} + movs r0, #8 + bl GetSubstructPtr + ldr r0, [r0, #4] + bl IsLoopedTaskActive + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CEB18 + + thumb_func_start sub_081CEB2C +sub_081CEB2C: @ 0x081CEB2C + push {r4, lr} + movs r0, #8 + bl GetSubstructPtr + adds r4, r0, #0 + bl sub_081C79DC + ldrb r0, [r4, #8] + bl RemoveWindow + movs r0, #8 + bl FreePokenavSubstruct + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_081CEB2C + + thumb_func_start sub_081CEB4C +sub_081CEB4C: @ 0x081CEB4C + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + movs r0, #8 + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #5 + bls _081CEB60 + b _081CECA2 +_081CEB60: + lsls r0, r4, #2 + ldr r1, _081CEB6C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081CEB6C: .4byte 0x081CEB70 +_081CEB70: @ jump table + .4byte _081CEB88 @ case 0 + .4byte _081CEBE0 @ case 1 + .4byte _081CEBF4 @ case 2 + .4byte _081CEC14 @ case 3 + .4byte _081CEC2A @ case 4 + .4byte _081CEC8E @ case 5 +_081CEB88: + ldr r0, _081CEBD0 + movs r1, #2 + bl InitBgTemplates + ldr r1, _081CEBD4 + movs r0, #0 + str r0, [sp] + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + adds r1, r5, #0 + adds r1, #0x10 + movs r0, #1 + bl SetBgTilemapBuffer + ldr r1, _081CEBD8 + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + movs r0, #1 + bl CopyBgTilemapBufferToVram + ldr r0, _081CEBDC + movs r1, #0x10 + movs r2, #0x20 + bl CopyPaletteIntoBufferUnfaded + movs r0, #1 + bl CopyBgTilemapBufferToVram +_081CEBCC: + movs r0, #0 + b _081CECA4 + .align 2, 0 +_081CEBD0: .4byte 0x085F5B9C +_081CEBD4: .4byte 0x085F59F0 +_081CEBD8: .4byte 0x085F5AB8 +_081CEBDC: .4byte 0x085F59D0 +_081CEBE0: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081CEC9E + bl sub_081CE7F4 + cmp r0, #0 + beq _081CEC9E + b _081CEBCC +_081CEBF4: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081CEC9E + ldr r0, _081CEC10 + movs r1, #0x20 + movs r2, #0x20 + bl CopyPaletteIntoBufferUnfaded + bl sub_081CEF4C + b _081CEBCC + .align 2, 0 +_081CEC10: .4byte 0x085F5B7C +_081CEC14: + bl sub_081C79CC + cmp r0, #0 + bne _081CEC9E + adds r0, r5, #0 + bl sub_081CEEBC + movs r0, #3 + bl sub_081C7364 + b _081CEBCC +_081CEC2A: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081CEC9E + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl HideBg + ldr r0, [r5, #0xc] + cmp r0, #0 + bne _081CEC86 + bl sub_081C6E6C + adds r4, r0, #0 + adds r4, #8 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl LoadLeftHeaderGfxForIndex + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_081C7748 + movs r0, #1 + movs r1, #1 + movs r2, #0 + bl sub_081C7748 +_081CEC86: + movs r0, #1 + bl sub_081C7280 + b _081CEBCC +_081CEC8E: + bl IsDma3ManagerBusyWithBgCopy_ + cmp r0, #0 + bne _081CEC9E + bl sub_081C77B8 + cmp r0, #0 + beq _081CECA2 +_081CEC9E: + movs r0, #2 + b _081CECA4 +_081CECA2: + movs r0, #4 +_081CECA4: + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_081CEB4C + + thumb_func_start sub_081CECAC +sub_081CECAC: @ 0x081CECAC + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #8 + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #1 + beq _081CECEC + cmp r4, #1 + bgt _081CECC6 + cmp r4, #0 + beq _081CECD0 + b _081CED0C +_081CECC6: + cmp r4, #2 + beq _081CECF4 + cmp r4, #3 + beq _081CECFE + b _081CED0C +_081CECD0: + movs r0, #5 + bl PlaySE + bl MatchCall_MoveCursorUp + cmp r0, #1 + beq _081CECE8 + cmp r0, #1 + bgt _081CECFA + cmp r0, #0 + bne _081CECFA + b _081CED0C +_081CECE8: + movs r0, #7 + b _081CED0E +_081CECEC: + bl sub_081C7DD8 + cmp r0, #0 + bne _081CED08 +_081CECF4: + adds r0, r5, #0 + bl sub_081CEEE8 +_081CECFA: + movs r0, #0 + b _081CED0E +_081CECFE: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081CED0C +_081CED08: + movs r0, #2 + b _081CED0E +_081CED0C: + movs r0, #4 +_081CED0E: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_081CECAC + + thumb_func_start sub_081CED14 +sub_081CED14: @ 0x081CED14 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #8 + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #1 + beq _081CED54 + cmp r4, #1 + bgt _081CED2E + cmp r4, #0 + beq _081CED38 + b _081CED74 +_081CED2E: + cmp r4, #2 + beq _081CED5C + cmp r4, #3 + beq _081CED66 + b _081CED74 +_081CED38: + movs r0, #5 + bl PlaySE + bl MatchCall_MoveCursorDown + cmp r0, #1 + beq _081CED50 + cmp r0, #1 + bgt _081CED62 + cmp r0, #0 + bne _081CED62 + b _081CED74 +_081CED50: + movs r0, #7 + b _081CED76 +_081CED54: + bl sub_081C7DD8 + cmp r0, #0 + bne _081CED70 +_081CED5C: + adds r0, r5, #0 + bl sub_081CEEE8 +_081CED62: + movs r0, #0 + b _081CED76 +_081CED66: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081CED74 +_081CED70: + movs r0, #2 + b _081CED76 +_081CED74: + movs r0, #4 +_081CED76: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_081CED14 + + thumb_func_start sub_081CED7C +sub_081CED7C: @ 0x081CED7C + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #8 + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #1 + beq _081CEDBC + cmp r4, #1 + bgt _081CED96 + cmp r4, #0 + beq _081CEDA0 + b _081CEDDC +_081CED96: + cmp r4, #2 + beq _081CEDC4 + cmp r4, #3 + beq _081CEDCE + b _081CEDDC +_081CEDA0: + movs r0, #5 + bl PlaySE + bl MatchCall_PageUp + cmp r0, #1 + beq _081CEDB8 + cmp r0, #1 + bgt _081CEDCA + cmp r0, #0 + bne _081CEDCA + b _081CEDDC +_081CEDB8: + movs r0, #7 + b _081CEDDE +_081CEDBC: + bl sub_081C7DD8 + cmp r0, #0 + bne _081CEDD8 +_081CEDC4: + adds r0, r5, #0 + bl sub_081CEEE8 +_081CEDCA: + movs r0, #0 + b _081CEDDE +_081CEDCE: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081CEDDC +_081CEDD8: + movs r0, #2 + b _081CEDDE +_081CEDDC: + movs r0, #4 +_081CEDDE: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_081CED7C + + thumb_func_start sub_081CEDE4 +sub_081CEDE4: @ 0x081CEDE4 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #8 + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #1 + beq _081CEE24 + cmp r4, #1 + bgt _081CEDFE + cmp r4, #0 + beq _081CEE08 + b _081CEE44 +_081CEDFE: + cmp r4, #2 + beq _081CEE2C + cmp r4, #3 + beq _081CEE36 + b _081CEE44 +_081CEE08: + movs r0, #5 + bl PlaySE + bl MatchCall_PageDown + cmp r0, #1 + beq _081CEE20 + cmp r0, #1 + bgt _081CEE32 + cmp r0, #0 + bne _081CEE32 + b _081CEE44 +_081CEE20: + movs r0, #7 + b _081CEE46 +_081CEE24: + bl sub_081C7DD8 + cmp r0, #0 + bne _081CEE40 +_081CEE2C: + adds r0, r5, #0 + bl sub_081CEEE8 +_081CEE32: + movs r0, #0 + b _081CEE46 +_081CEE36: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081CEE44 +_081CEE40: + movs r0, #2 + b _081CEE46 +_081CEE44: + movs r0, #4 +_081CEE46: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_081CEDE4 + + thumb_func_start sub_081CEE4C +sub_081CEE4C: @ 0x081CEE4C + push {lr} + cmp r0, #0 + beq _081CEE58 + cmp r0, #1 + beq _081CEE6C + b _081CEE84 +_081CEE58: + movs r0, #5 + bl PlaySE + movs r0, #0 + bl sub_081C7280 + bl sub_081C7060 + movs r0, #0 + b _081CEE86 +_081CEE6C: + bl IsDma3ManagerBusyWithBgCopy_ + cmp r0, #0 + bne _081CEE7C + bl MainMenuLoopedTaskIsBusy + cmp r0, #0 + beq _081CEE80 +_081CEE7C: + movs r0, #2 + b _081CEE86 +_081CEE80: + bl sub_081C7784 +_081CEE84: + movs r0, #4 +_081CEE86: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CEE4C + + thumb_func_start sub_081CEE8C +sub_081CEE8C: @ 0x081CEE8C + push {lr} + cmp r0, #0 + beq _081CEE98 + cmp r0, #1 + beq _081CEEA8 + b _081CEEB4 +_081CEE98: + movs r0, #5 + bl PlaySE + movs r0, #0 + bl sub_081C7280 + movs r0, #0 + b _081CEEB6 +_081CEEA8: + bl IsDma3ManagerBusyWithBgCopy_ + cmp r0, #0 + beq _081CEEB4 + movs r0, #2 + b _081CEEB6 +_081CEEB4: + movs r0, #4 +_081CEEB6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CEE8C + + thumb_func_start sub_081CEEBC +sub_081CEEBC: @ 0x081CEEBC + push {r4, lr} + adds r4, r0, #0 + ldr r0, _081CEEE4 + bl AddWindow + strh r0, [r4, #8] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl PutWindowTilemap + ldrb r0, [r4, #8] + movs r1, #1 + bl CopyWindowToVram + adds r0, r4, #0 + bl sub_081CEEE8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081CEEE4: .4byte 0x085F5BC0 + thumb_func_end sub_081CEEBC + + thumb_func_start sub_081CEEE8 +sub_081CEEE8: @ 0x081CEEE8 + push {r4, r5, r6, lr} + sub sp, #0xc + adds r6, r0, #0 + bl sub_081CE824 + adds r5, r0, #0 + bl DynamicPlaceholderTextUtil_Reset + ldr r4, _081CEF40 + movs r0, #0 + adds r1, r4, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r4, _081CEF44 + ldr r1, _081CEF48 + adds r0, r4, #0 + bl DynamicPlaceholderTextUtil_ExpandPlaceholders + ldrb r0, [r6, #8] + movs r1, #2 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + adds r2, r4, #0 + movs r3, #0 + bl AddTextPrinterParameterized + ldrb r0, [r6, #8] + movs r1, #2 + bl CopyWindowToVram + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081CEF40: .4byte 0x02021C40 +_081CEF44: .4byte 0x02021C54 +_081CEF48: .4byte 0x085CB81B + thumb_func_end sub_081CEEE8 + + thumb_func_start sub_081CEF4C +sub_081CEF4C: @ 0x081CEF4C + push {r4, lr} + sub sp, #0x18 + bl sub_081CE804 + str r0, [sp] + bl sub_081CE814 + mov r1, sp + movs r4, #0 + strh r0, [r1, #4] + movs r0, #4 + strb r0, [r1, #8] + bl sub_081CE840 + mov r1, sp + strh r0, [r1, #6] + movs r0, #0xe + strb r0, [r1, #9] + movs r0, #0xf + strb r0, [r1, #0xa] + movs r0, #1 + strb r0, [r1, #0xb] + movs r0, #8 + strb r0, [r1, #0xc] + movs r0, #2 + strb r0, [r1, #0xd] + ldr r0, _081CEF98 + str r0, [sp, #0x10] + str r4, [sp, #0x14] + ldr r0, _081CEF9C + movs r2, #0 + bl sub_081C797C + add sp, #0x18 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081CEF98: .4byte 0x081CEFA1 +_081CEF9C: .4byte 0x085F5BA0 + thumb_func_end sub_081CEF4C + + thumb_func_start sub_081CEFA0 +sub_081CEFA0: @ 0x081CEFA0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + mov r8, r1 + bl DynamicPlaceholderTextUtil_Reset + ldrb r0, [r4] + cmp r0, #0xe + bne _081CEFE8 + ldrb r1, [r4, #1] + movs r0, #0x64 + adds r4, r1, #0 + muls r4, r0, r4 + ldr r0, _081CEFE0 + adds r4, r4, r0 + adds r0, r4, #0 + bl GetMonGender + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + adds r0, r4, #0 + bl GetLevelFromMonExp + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r2, _081CEFE4 + adds r0, r4, #0 + movs r1, #2 + bl GetMonData + b _081CF00E + .align 2, 0 +_081CEFE0: .4byte 0x02024190 +_081CEFE4: .4byte 0x02021C68 +_081CEFE8: + ldrb r0, [r4] + ldrb r1, [r4, #1] + bl GetBoxedMonPtr + adds r4, r0, #0 + bl GetBoxMonGender + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + adds r0, r4, #0 + bl GetLevelFromBoxMonExp + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r2, _081CF060 + adds r0, r4, #0 + movs r1, #2 + bl GetBoxMonData +_081CF00E: + ldr r4, _081CF060 + adds r0, r4, #0 + bl StringGetEnd10 + ldr r6, _081CF064 + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #0 + movs r3, #5 + bl StringCopyPadded + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r5, _081CF068 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + movs r3, #3 + bl StringCopyPadded + movs r0, #0 + adds r1, r6, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + movs r0, #1 + adds r1, r5, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + cmp r7, #0xfe + beq _081CF070 + cmp r7, #0xfe + bgt _081CF078 + cmp r7, #0 + bne _081CF078 + ldr r1, _081CF06C + b _081CF07A + .align 2, 0 +_081CF060: .4byte 0x02021C68 +_081CF064: .4byte 0x02021C40 +_081CF068: .4byte 0x02021C54 +_081CF06C: .4byte 0x085CB7D6 +_081CF070: + ldr r1, _081CF074 + b _081CF07A + .align 2, 0 +_081CF074: .4byte 0x085CB7EA +_081CF078: + ldr r1, _081CF08C +_081CF07A: + mov r0, r8 + bl DynamicPlaceholderTextUtil_ExpandPlaceholders + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081CF08C: .4byte 0x085CB7FE + thumb_func_end sub_081CEFA0 + + thumb_func_start sub_081CF090 +sub_081CF090: @ 0x081CF090 + push {r4, lr} + movs r0, #9 + movs r1, #0x20 + bl AllocSubstruct + adds r4, r0, #0 + cmp r4, #0 + beq _081CF0D0 + ldr r1, _081CF0C4 + movs r0, #0x12 + bl AllocSubstruct + str r0, [r4, #0x1c] + cmp r0, #0 + beq _081CF0D0 + ldr r0, _081CF0C8 + str r0, [r4] + ldr r0, _081CF0CC + movs r1, #1 + bl CreateLoopedTask + str r0, [r4, #4] + movs r0, #0 + str r0, [r4, #0x14] + movs r0, #1 + b _081CF0D2 + .align 2, 0 +_081CF0C4: .4byte 0x000006AC +_081CF0C8: .4byte 0x081CF13D +_081CF0CC: .4byte 0x081CF249 +_081CF0D0: + movs r0, #0 +_081CF0D2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081CF090 + + thumb_func_start sub_081CF0D8 +sub_081CF0D8: @ 0x081CF0D8 + push {r4, lr} + movs r0, #9 + movs r1, #0x20 + bl AllocSubstruct + adds r4, r0, #0 + cmp r4, #0 + beq _081CF100 + movs r0, #0x12 + bl GetSubstructPtr + str r0, [r4, #0x1c] + ldr r0, _081CF0FC + str r0, [r4] + movs r0, #1 + str r0, [r4, #0x14] + b _081CF102 + .align 2, 0 +_081CF0FC: .4byte 0x081CF15D +_081CF100: + movs r0, #0 +_081CF102: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081CF0D8 + + thumb_func_start sub_081CF108 +sub_081CF108: @ 0x081CF108 + push {lr} + movs r0, #9 + bl GetSubstructPtr + ldr r1, [r0] + bl _call_via_r1 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CF108 + + thumb_func_start sub_081CF11C +sub_081CF11C: @ 0x081CF11C + push {lr} + movs r0, #9 + bl GetSubstructPtr + ldr r0, [r0, #0x18] + cmp r0, #0 + bne _081CF130 + movs r0, #0x12 + bl FreePokenavSubstruct +_081CF130: + movs r0, #9 + bl FreePokenavSubstruct + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081CF11C + + thumb_func_start sub_081CF13C +sub_081CF13C: @ 0x081CF13C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #4] + bl IsLoopedTaskActive + cmp r0, #0 + bne _081CF14E + ldr r0, _081CF158 + str r0, [r4] +_081CF14E: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081CF158: .4byte 0x081CF15D + thumb_func_end sub_081CF13C + + thumb_func_start sub_081CF15C +sub_081CF15C: @ 0x081CF15C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _081CF170 + ldrh r1, [r2, #0x30] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _081CF174 + movs r0, #1 + b _081CF1D2 + .align 2, 0 +_081CF170: .4byte 0x03002360 +_081CF174: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _081CF180 + movs r0, #2 + b _081CF1D2 +_081CF180: + ldrh r1, [r2, #0x2e] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _081CF18E + movs r0, #3 + b _081CF1D2 +_081CF18E: + movs r0, #0x10 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0 + beq _081CF19E + movs r0, #4 + b _081CF1D2 +_081CF19E: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081CF1B4 + str r2, [r4, #0x18] + ldr r0, _081CF1B0 + str r0, [r4] + movs r0, #5 + b _081CF1D2 + .align 2, 0 +_081CF1B0: .4byte 0x081CF1DD +_081CF1B4: + movs r5, #1 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + bne _081CF1C2 + movs r0, #0 + b _081CF1D2 +_081CF1C2: + bl GetSelectedMatchCall + ldr r1, [r4, #0x1c] + strh r0, [r1, #2] + str r5, [r4, #0x18] + ldr r0, _081CF1D8 + str r0, [r4] + movs r0, #6 +_081CF1D2: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081CF1D8: .4byte 0x081CF1E5 + thumb_func_end sub_081CF15C + + thumb_func_start sub_081CF1DC +sub_081CF1DC: @ 0x081CF1DC + ldr r0, _081CF1E0 + bx lr + .align 2, 0 +_081CF1E0: .4byte 0x000186A5 + thumb_func_end sub_081CF1DC + + thumb_func_start sub_081CF1E4 +sub_081CF1E4: @ 0x081CF1E4 + ldr r0, _081CF1E8 + bx lr + .align 2, 0 +_081CF1E8: .4byte 0x000186AD + thumb_func_end sub_081CF1E4 + + thumb_func_start sub_081CF1EC +sub_081CF1EC: @ 0x081CF1EC + push {lr} + movs r0, #9 + bl GetSubstructPtr + ldr r0, [r0, #0x14] + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CF1EC + + thumb_func_start sub_081CF1FC +sub_081CF1FC: @ 0x081CF1FC + push {lr} + movs r0, #9 + bl GetSubstructPtr + ldr r0, [r0, #0x1c] + adds r0, #4 + pop {r1} + bx r1 + thumb_func_end sub_081CF1FC + + thumb_func_start sub_081CF20C +sub_081CF20C: @ 0x081CF20C + push {lr} + movs r0, #9 + bl GetSubstructPtr + ldr r0, [r0, #0x1c] + ldrh r0, [r0] + pop {r1} + bx r1 + thumb_func_end sub_081CF20C + + thumb_func_start sub_081CF21C +sub_081CF21C: @ 0x081CF21C + push {r4, lr} + movs r0, #9 + bl GetSubstructPtr + adds r4, r0, #0 + bl GetSelectedMatchCall + ldr r1, [r4, #0x1c] + lsls r0, r0, #2 + adds r1, r1, r0 + ldrh r0, [r1, #6] + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081CF21C + + thumb_func_start sub_081CF238 +sub_081CF238: @ 0x081CF238 + push {lr} + movs r0, #9 + bl GetSubstructPtr + ldr r0, [r0, #0x1c] + ldrh r0, [r0, #2] + pop {r1} + bx r1 + thumb_func_end sub_081CF238 + + thumb_func_start sub_081CF248 +sub_081CF248: @ 0x081CF248 + push {lr} + ldr r2, _081CF25C + lsls r1, r0, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {r1} + bx r1 + .align 2, 0 +_081CF25C: .4byte 0x085F5BC8 + thumb_func_end sub_081CF248 + + thumb_func_start sub_081CF260 +sub_081CF260: @ 0x081CF260 + push {r4, r5, r6, lr} + sub sp, #4 + movs r0, #9 + bl GetSubstructPtr + adds r6, r0, #0 + ldr r0, [r6, #0x1c] + movs r1, #0 + strh r1, [r0] + ldr r0, [r6, #0x1c] + strh r1, [r0, #2] + ldr r1, _081CF2F0 + ldr r0, [sp] + ands r0, r1 + movs r1, #0xe + orrs r0, r1 + str r0, [sp] + movs r5, #0 +_081CF284: + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _081CF2F4 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #5 + bl GetMonData + cmp r0, #0 + beq _081CF2E4 + adds r0, r4, #0 + movs r1, #6 + bl GetMonData + cmp r0, #0 + bne _081CF2DE + adds r0, r4, #0 + movs r1, #4 + bl GetMonData + cmp r0, #0 + bne _081CF2DE + adds r0, r4, #0 + movs r1, #0x52 + bl GetMonData + adds r3, r0, #0 + cmp r3, #0 + beq _081CF2DE + lsls r1, r5, #0x18 + lsrs r1, r1, #0x10 + ldr r2, _081CF2F8 + ldr r0, [sp] + ands r0, r2 + orrs r0, r1 + lsls r2, r3, #0x10 + ldr r1, _081CF2FC + ands r0, r1 + orrs r0, r2 + str r0, [sp] + adds r0, r6, #0 + mov r1, sp + bl sub_081CF3C0 +_081CF2DE: + adds r5, #1 + cmp r5, #5 + ble _081CF284 +_081CF2E4: + movs r0, #1 + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_081CF2F0: .4byte 0xFFFFFF00 +_081CF2F4: .4byte 0x02024190 +_081CF2F8: .4byte 0xFFFF00FF +_081CF2FC: .4byte 0x0000FFFF + thumb_func_end sub_081CF260 + + thumb_func_start sub_081CF300 +sub_081CF300: @ 0x081CF300 + push {lr} + movs r0, #9 + bl GetSubstructPtr + movs r1, #0 + str r1, [r0, #0x10] + str r1, [r0, #0xc] + movs r0, #1 + pop {r1} + bx r1 + thumb_func_end sub_081CF300 + + thumb_func_start sub_081CF314 +sub_081CF314: @ 0x081CF314 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + movs r0, #9 + bl GetSubstructPtr + mov r8, r0 + ldr r7, [r0, #0xc] + ldr r6, [r0, #0x10] + movs r0, #0 + mov sb, r0 + cmp r7, #0xd + bgt _081CF3A8 + b _081CF39C +_081CF334: + adds r0, r7, #0 + adds r1, r6, #0 + bl CheckBoxMonSanityAt + cmp r0, #0 + beq _081CF37A + lsls r0, r7, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r6, #0x18 + lsrs r4, r0, #0x18 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x52 + bl GetBoxMonDataAt + adds r3, r0, #0 + cmp r3, #0 + beq _081CF37A + ldr r1, _081CF390 + ldr r0, [sp] + ands r0, r1 + orrs r0, r5 + lsls r2, r4, #8 + ldr r1, _081CF394 + ands r0, r1 + orrs r0, r2 + lsls r2, r3, #0x10 + ldr r1, _081CF398 + ands r0, r1 + orrs r0, r2 + str r0, [sp] + mov r0, r8 + mov r1, sp + bl sub_081CF3C0 +_081CF37A: + movs r1, #1 + add sb, r1 + adds r6, #1 + mov r0, sb + cmp r0, #0xe + ble _081CF39C + mov r1, r8 + str r7, [r1, #0xc] + str r6, [r1, #0x10] + movs r0, #3 + b _081CF3B0 + .align 2, 0 +_081CF390: .4byte 0xFFFFFF00 +_081CF394: .4byte 0xFFFF00FF +_081CF398: .4byte 0x0000FFFF +_081CF39C: + cmp r6, #0x1d + ble _081CF334 + movs r6, #0 + adds r7, #1 + cmp r7, #0xd + ble _081CF39C +_081CF3A8: + movs r0, #1 + mov r1, r8 + str r0, [r1, #0x14] + movs r0, #4 +_081CF3B0: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CF314 + + thumb_func_start sub_081CF3C0 +sub_081CF3C0: @ 0x081CF3C0 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r7, r1, #0 + movs r1, #0 + ldr r0, [r5, #0x1c] + ldrh r2, [r0] + lsrs r3, r2, #1 + cmp r2, r3 + beq _081CF3F0 + adds r6, r0, #0 + ldrh r4, [r7, #2] +_081CF3D6: + lsls r0, r3, #2 + adds r0, r6, r0 + ldrh r0, [r0, #6] + cmp r4, r0 + bls _081CF3E4 + adds r2, r3, #0 + b _081CF3E6 +_081CF3E4: + adds r1, r3, #1 +_081CF3E6: + subs r0, r2, r1 + lsrs r0, r0, #1 + adds r3, r1, r0 + cmp r2, r3 + bne _081CF3D6 +_081CF3F0: + ldr r0, [r5, #0x1c] + ldrh r2, [r0] + lsls r6, r3, #2 + cmp r2, r3 + bls _081CF414 + lsls r0, r2, #2 + subs r4, r0, #4 +_081CF3FE: + ldr r0, [r5, #0x1c] + lsls r1, r2, #2 + adds r0, #4 + adds r1, r0, r1 + adds r0, r0, r4 + ldr r0, [r0] + str r0, [r1] + subs r4, #4 + subs r2, #1 + cmp r2, r3 + bhi _081CF3FE +_081CF414: + ldr r0, [r5, #0x1c] + adds r0, #4 + adds r0, r0, r6 + ldr r1, [r7] + str r1, [r0] + ldr r1, [r5, #0x1c] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_081CF3C0 + + thumb_func_start sub_081CF42C +sub_081CF42C: @ 0x081CF42C + push {r4, r5, r6, lr} + movs r5, #0 +_081CF430: + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _081CF48C + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #5 + bl GetMonData + cmp r0, #0 + beq _081CF45E + adds r0, r4, #0 + movs r1, #6 + bl GetMonData + cmp r0, #0 + bne _081CF45E + adds r0, r4, #0 + movs r1, #0x53 + bl GetMonData + cmp r0, #0 + bne _081CF486 +_081CF45E: + adds r5, #1 + cmp r5, #5 + ble _081CF430 + movs r5, #0 +_081CF466: + movs r4, #0 + lsls r6, r5, #0x18 +_081CF46A: + adds r0, r5, #0 + adds r1, r4, #0 + bl CheckBoxMonSanityAt + cmp r0, #0 + beq _081CF490 + lsls r1, r4, #0x18 + lsrs r1, r1, #0x18 + lsrs r0, r6, #0x18 + movs r2, #0x53 + bl GetBoxMonDataAt + cmp r0, #0 + beq _081CF490 +_081CF486: + movs r0, #1 + b _081CF49E + .align 2, 0 +_081CF48C: .4byte 0x02024190 +_081CF490: + adds r4, #1 + cmp r4, #0x1d + ble _081CF46A + adds r5, #1 + cmp r5, #0xd + ble _081CF466 + movs r0, #0 +_081CF49E: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_081CF42C + + thumb_func_start sub_081CF4A4 +sub_081CF4A4: @ 0x081CF4A4 + push {r4, lr} + movs r1, #0x81 + lsls r1, r1, #4 + movs r0, #0xa + bl AllocSubstruct + adds r4, r0, #0 + cmp r4, #0 + beq _081CF4D4 + ldr r0, _081CF4CC + movs r1, #1 + bl CreateLoopedTask + str r0, [r4, #4] + ldr r0, _081CF4D0 + str r0, [r4] + movs r0, #0 + str r0, [r4, #0xc] + movs r0, #1 + b _081CF4D6 + .align 2, 0 +_081CF4CC: .4byte 0x081CF58D +_081CF4D0: .4byte 0x081CF559 +_081CF4D4: + movs r0, #0 +_081CF4D6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081CF4A4 + + thumb_func_start sub_081CF4DC +sub_081CF4DC: @ 0x081CF4DC + push {r4, lr} + movs r1, #0x81 + lsls r1, r1, #4 + movs r0, #0xa + bl AllocSubstruct + adds r4, r0, #0 + cmp r4, #0 + beq _081CF50C + ldr r0, _081CF504 + movs r1, #1 + bl CreateLoopedTask + str r0, [r4, #4] + ldr r0, _081CF508 + str r0, [r4] + movs r0, #1 + str r0, [r4, #0xc] + b _081CF50E + .align 2, 0 +_081CF504: .4byte 0x081CF58D +_081CF508: .4byte 0x081CF559 +_081CF50C: + movs r0, #0 +_081CF50E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081CF4DC + + thumb_func_start sub_081CF514 +sub_081CF514: @ 0x081CF514 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0xa + bl GetSubstructPtr + adds r5, r0, #0 + ldr r0, _081CF53C + lsls r4, r4, #2 + adds r4, r4, r0 + ldr r0, [r4] + movs r1, #1 + bl CreateLoopedTask + str r0, [r5, #4] + ldr r0, _081CF540 + str r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081CF53C: .4byte 0x085F5DA8 +_081CF540: .4byte 0x081CF559 + thumb_func_end sub_081CF514 + + thumb_func_start sub_081CF544 +sub_081CF544: @ 0x081CF544 + push {lr} + movs r0, #0xa + bl GetSubstructPtr + ldr r0, [r0] + bl _call_via_r0 + pop {r1} + thumb_func_end sub_081CF544 + + thumb_func_start sub_081CF554 +sub_081CF554: @ 0x081CF554 + bx r1 + .align 2, 0 + thumb_func_end sub_081CF554 + + thumb_func_start sub_081CF558 +sub_081CF558: @ 0x081CF558 + push {lr} + movs r0, #0xa + bl GetSubstructPtr + ldr r0, [r0, #4] + bl IsLoopedTaskActive + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CF558 + + thumb_func_start sub_081CF56C +sub_081CF56C: @ 0x081CF56C + push {r4, lr} + movs r0, #0xa + bl GetSubstructPtr + adds r4, r0, #0 + bl sub_081C79DC + ldrb r0, [r4, #8] + bl RemoveWindow + movs r0, #0xa + bl FreePokenavSubstruct + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_081CF56C + + thumb_func_start sub_081CF58C +sub_081CF58C: @ 0x081CF58C + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + movs r0, #0xa + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #5 + bls _081CF5A0 + b _081CF6C6 +_081CF5A0: + lsls r0, r4, #2 + ldr r1, _081CF5AC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081CF5AC: .4byte 0x081CF5B0 +_081CF5B0: @ jump table + .4byte _081CF5C8 @ case 0 + .4byte _081CF61C @ case 1 + .4byte _081CF64A @ case 2 + .4byte _081CF668 @ case 3 + .4byte _081CF678 @ case 4 + .4byte _081CF6B2 @ case 5 +_081CF5C8: + ldr r0, _081CF60C + movs r1, #2 + bl InitBgTemplates + ldr r1, _081CF610 + movs r0, #0 + str r0, [sp] + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + adds r1, r5, #0 + adds r1, #0x10 + movs r0, #1 + bl SetBgTilemapBuffer + ldr r1, _081CF614 + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + ldr r0, _081CF618 + movs r1, #0x10 + movs r2, #0x20 + bl CopyPaletteIntoBufferUnfaded + movs r0, #1 + bl CopyBgTilemapBufferToVram +_081CF606: + movs r0, #0 + b _081CF6C8 + .align 2, 0 +_081CF60C: .4byte 0x085F5DA0 +_081CF610: .4byte 0x085F5BF4 +_081CF614: .4byte 0x085F5CBC +_081CF618: .4byte 0x085F5BD4 +_081CF61C: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081CF6C2 + bl sub_081CF1EC + cmp r0, #0 + beq _081CF6C2 + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #1 + bl ShowBg + b _081CF606 +_081CF64A: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081CF6C2 + ldr r0, _081CF664 + movs r1, #0x20 + movs r2, #0x20 + bl CopyPaletteIntoBufferUnfaded + bl sub_081CF9A4 + b _081CF606 + .align 2, 0 +_081CF664: .4byte 0x085F5D80 +_081CF668: + bl sub_081C79CC + cmp r0, #0 + bne _081CF6C2 + adds r0, r5, #0 + bl sub_081CF8E0 + b _081CF606 +_081CF678: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081CF6C2 + movs r0, #2 + bl ShowBg + movs r0, #3 + bl HideBg + movs r0, #9 + bl sub_081C7364 + movs r0, #1 + bl sub_081C7280 + ldr r0, [r5, #0xc] + cmp r0, #0 + bne _081CF606 + movs r0, #2 + bl LoadLeftHeaderGfxForIndex + movs r0, #2 + movs r1, #1 + movs r2, #0 + bl sub_081C7748 + b _081CF606 +_081CF6B2: + bl IsDma3ManagerBusyWithBgCopy_ + cmp r0, #0 + bne _081CF6C2 + bl sub_081C77B8 + cmp r0, #0 + beq _081CF6C6 +_081CF6C2: + movs r0, #2 + b _081CF6C8 +_081CF6C6: + movs r0, #4 +_081CF6C8: + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_081CF58C + + thumb_func_start sub_081CF6D0 +sub_081CF6D0: @ 0x081CF6D0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0xa + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #1 + beq _081CF710 + cmp r4, #1 + bgt _081CF6EA + cmp r4, #0 + beq _081CF6F4 + b _081CF730 +_081CF6EA: + cmp r4, #2 + beq _081CF718 + cmp r4, #3 + beq _081CF722 + b _081CF730 +_081CF6F4: + movs r0, #5 + bl PlaySE + bl MatchCall_MoveCursorUp + cmp r0, #1 + beq _081CF70C + cmp r0, #1 + bgt _081CF71E + cmp r0, #0 + bne _081CF71E + b _081CF730 +_081CF70C: + movs r0, #7 + b _081CF732 +_081CF710: + bl sub_081C7DD8 + cmp r0, #0 + bne _081CF72C +_081CF718: + adds r0, r5, #0 + bl sub_081CF95C +_081CF71E: + movs r0, #0 + b _081CF732 +_081CF722: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081CF730 +_081CF72C: + movs r0, #2 + b _081CF732 +_081CF730: + movs r0, #4 +_081CF732: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_081CF6D0 + + thumb_func_start sub_081CF738 +sub_081CF738: @ 0x081CF738 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0xa + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #1 + beq _081CF778 + cmp r4, #1 + bgt _081CF752 + cmp r4, #0 + beq _081CF75C + b _081CF798 +_081CF752: + cmp r4, #2 + beq _081CF780 + cmp r4, #3 + beq _081CF78A + b _081CF798 +_081CF75C: + movs r0, #5 + bl PlaySE + bl MatchCall_MoveCursorDown + cmp r0, #1 + beq _081CF774 + cmp r0, #1 + bgt _081CF786 + cmp r0, #0 + bne _081CF786 + b _081CF798 +_081CF774: + movs r0, #7 + b _081CF79A +_081CF778: + bl sub_081C7DD8 + cmp r0, #0 + bne _081CF794 +_081CF780: + adds r0, r5, #0 + bl sub_081CF95C +_081CF786: + movs r0, #0 + b _081CF79A +_081CF78A: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081CF798 +_081CF794: + movs r0, #2 + b _081CF79A +_081CF798: + movs r0, #4 +_081CF79A: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_081CF738 + + thumb_func_start sub_081CF7A0 +sub_081CF7A0: @ 0x081CF7A0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0xa + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #1 + beq _081CF7E0 + cmp r4, #1 + bgt _081CF7BA + cmp r4, #0 + beq _081CF7C4 + b _081CF800 +_081CF7BA: + cmp r4, #2 + beq _081CF7E8 + cmp r4, #3 + beq _081CF7F2 + b _081CF800 +_081CF7C4: + movs r0, #5 + bl PlaySE + bl MatchCall_PageUp + cmp r0, #1 + beq _081CF7DC + cmp r0, #1 + bgt _081CF7EE + cmp r0, #0 + bne _081CF7EE + b _081CF800 +_081CF7DC: + movs r0, #7 + b _081CF802 +_081CF7E0: + bl sub_081C7DD8 + cmp r0, #0 + bne _081CF7FC +_081CF7E8: + adds r0, r5, #0 + bl sub_081CF95C +_081CF7EE: + movs r0, #0 + b _081CF802 +_081CF7F2: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081CF800 +_081CF7FC: + movs r0, #2 + b _081CF802 +_081CF800: + movs r0, #4 +_081CF802: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_081CF7A0 + + thumb_func_start sub_081CF808 +sub_081CF808: @ 0x081CF808 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0xa + bl GetSubstructPtr + adds r5, r0, #0 + cmp r4, #1 + beq _081CF848 + cmp r4, #1 + bgt _081CF822 + cmp r4, #0 + beq _081CF82C + b _081CF868 +_081CF822: + cmp r4, #2 + beq _081CF850 + cmp r4, #3 + beq _081CF85A + b _081CF868 +_081CF82C: + movs r0, #5 + bl PlaySE + bl MatchCall_PageDown + cmp r0, #1 + beq _081CF844 + cmp r0, #1 + bgt _081CF856 + cmp r0, #0 + bne _081CF856 + b _081CF868 +_081CF844: + movs r0, #7 + b _081CF86A +_081CF848: + bl sub_081C7DD8 + cmp r0, #0 + bne _081CF864 +_081CF850: + adds r0, r5, #0 + bl sub_081CF95C +_081CF856: + movs r0, #0 + b _081CF86A +_081CF85A: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081CF868 +_081CF864: + movs r0, #2 + b _081CF86A +_081CF868: + movs r0, #4 +_081CF86A: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_081CF808 + + thumb_func_start sub_081CF870 +sub_081CF870: @ 0x081CF870 + push {lr} + cmp r0, #0 + beq _081CF87C + cmp r0, #1 + beq _081CF890 + b _081CF8A8 +_081CF87C: + movs r0, #5 + bl PlaySE + movs r0, #0 + bl sub_081C7280 + bl sub_081C7060 + movs r0, #0 + b _081CF8AA +_081CF890: + bl IsDma3ManagerBusyWithBgCopy_ + cmp r0, #0 + bne _081CF8A0 + bl MainMenuLoopedTaskIsBusy + cmp r0, #0 + beq _081CF8A4 +_081CF8A0: + movs r0, #2 + b _081CF8AA +_081CF8A4: + bl sub_081C7784 +_081CF8A8: + movs r0, #4 +_081CF8AA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CF870 + + thumb_func_start sub_081CF8B0 +sub_081CF8B0: @ 0x081CF8B0 + push {lr} + cmp r0, #0 + beq _081CF8BC + cmp r0, #1 + beq _081CF8CC + b _081CF8D8 +_081CF8BC: + movs r0, #5 + bl PlaySE + movs r0, #0 + bl sub_081C7280 + movs r0, #0 + b _081CF8DA +_081CF8CC: + bl IsDma3ManagerBusyWithBgCopy_ + cmp r0, #0 + beq _081CF8D8 + movs r0, #2 + b _081CF8DA +_081CF8D8: + movs r0, #4 +_081CF8DA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081CF8B0 + + thumb_func_start sub_081CF8E0 +sub_081CF8E0: @ 0x081CF8E0 + push {r4, r5, r6, lr} + sub sp, #0xc + adds r5, r0, #0 + ldr r0, _081CF94C + bl AddWindow + movs r6, #0 + strh r0, [r5, #8] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl PutWindowTilemap + bl sub_081CF20C + adds r1, r0, #0 + ldr r4, _081CF950 + adds r0, r4, #0 + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + bl DynamicPlaceholderTextUtil_Reset + movs r0, #0 + adds r1, r4, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + ldr r4, _081CF954 + ldr r1, _081CF958 + adds r0, r4, #0 + bl DynamicPlaceholderTextUtil_ExpandPlaceholders + ldrb r0, [r5, #8] + movs r1, #2 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + str r6, [sp, #8] + movs r1, #1 + adds r2, r4, #0 + movs r3, #0 + bl AddTextPrinterParameterized + ldrb r0, [r5, #8] + movs r1, #1 + bl CopyWindowToVram + adds r0, r5, #0 + bl sub_081CF95C + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081CF94C: .4byte 0x085F5DC4 +_081CF950: .4byte 0x02021C40 +_081CF954: .4byte 0x02021C54 +_081CF958: .4byte 0x085F5DCC + thumb_func_end sub_081CF8E0 + + thumb_func_start sub_081CF95C +sub_081CF95C: @ 0x081CF95C + push {r4, r5, lr} + sub sp, #0xc + adds r5, r0, #0 + bl GetSelectedMatchCall + adds r1, r0, #0 + ldr r4, _081CF9A0 + adds r1, #1 + adds r0, r4, #0 + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldrb r0, [r5, #8] + movs r1, #2 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + adds r2, r4, #0 + movs r3, #0 + bl AddTextPrinterParameterized + ldrb r0, [r5, #8] + movs r1, #2 + bl CopyWindowToVram + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081CF9A0: .4byte 0x02021C40 + thumb_func_end sub_081CF95C + + thumb_func_start sub_081CF9A4 +sub_081CF9A4: @ 0x081CF9A4 + push {r4, lr} + sub sp, #0x18 + bl sub_081CF1FC + str r0, [sp] + bl sub_081CF20C + mov r1, sp + movs r4, #0 + strh r0, [r1, #4] + movs r0, #4 + strb r0, [r1, #8] + bl sub_081CF238 + mov r1, sp + strh r0, [r1, #6] + movs r0, #0xe + strb r0, [r1, #9] + movs r0, #0x10 + strb r0, [r1, #0xa] + movs r0, #1 + strb r0, [r1, #0xb] + movs r0, #8 + strb r0, [r1, #0xc] + movs r0, #2 + strb r0, [r1, #0xd] + ldr r0, _081CF9F0 + str r0, [sp, #0x10] + str r4, [sp, #0x14] + ldr r0, _081CF9F4 + movs r2, #0 + bl sub_081C797C + add sp, #0x18 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081CF9F0: .4byte 0x081CF9F9 +_081CF9F4: .4byte 0x085F5DA4 + thumb_func_end sub_081CF9A4 + + thumb_func_start sub_081CF9F8 +sub_081CF9F8: @ 0x081CF9F8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov sb, r1 + adds r7, r0, #0 + bl DynamicPlaceholderTextUtil_Reset + ldrb r0, [r7] + cmp r0, #0xe + bne _081CFA44 + ldrb r1, [r7, #1] + movs r0, #0x64 + adds r4, r1, #0 + muls r4, r0, r4 + ldr r0, _081CFA3C + adds r4, r4, r0 + adds r0, r4, #0 + bl GetMonGender + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r0, r4, #0 + bl GetLevelFromMonExp + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r2, _081CFA40 + adds r0, r4, #0 + movs r1, #2 + bl GetMonData + b _081CFA6A + .align 2, 0 +_081CFA3C: .4byte 0x02024190 +_081CFA40: .4byte 0x02021C68 +_081CFA44: + ldrb r0, [r7] + ldrb r1, [r7, #1] + bl GetBoxedMonPtr + adds r4, r0, #0 + bl GetBoxMonGender + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r0, r4, #0 + bl GetLevelFromBoxMonExp + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r2, _081CFAD0 + adds r0, r4, #0 + movs r1, #2 + bl GetBoxMonData +_081CFA6A: + ldr r4, _081CFAD0 + adds r0, r4, #0 + bl StringGetEnd10 + ldr r0, _081CFAD4 + mov r8, r0 + adds r1, r4, #0 + movs r2, #0 + movs r3, #5 + bl StringCopyPadded + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r5, _081CFAD8 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + movs r3, #3 + bl StringCopyPadded + ldrh r1, [r7, #2] + adds r0, r4, #0 + movs r2, #1 + movs r3, #2 + bl ConvertIntToDecimalStringN + movs r0, #0 + mov r1, r8 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + movs r0, #1 + adds r1, r5, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + movs r0, #2 + adds r1, r4, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + cmp r6, #0xfe + beq _081CFAE0 + cmp r6, #0xfe + bgt _081CFAE8 + cmp r6, #0 + bne _081CFAE8 + ldr r1, _081CFADC + b _081CFAEA + .align 2, 0 +_081CFAD0: .4byte 0x02021C68 +_081CFAD4: .4byte 0x02021C40 +_081CFAD8: .4byte 0x02021C54 +_081CFADC: .4byte 0x085F5DD3 +_081CFAE0: + ldr r1, _081CFAE4 + b _081CFAEA + .align 2, 0 +_081CFAE4: .4byte 0x085F5DEB +_081CFAE8: + ldr r1, _081CFAFC +_081CFAEA: + mov r0, sb + bl DynamicPlaceholderTextUtil_ExpandPlaceholders + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081CFAFC: .4byte 0x085F5E03 + thumb_func_end sub_081CF9F8 + diff --git a/asm/post_battle_event_funcs.s b/asm/post_battle_event_funcs.s new file mode 100644 index 0000000..0c3d299 --- /dev/null +++ b/asm/post_battle_event_funcs.s @@ -0,0 +1,172 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start GameClear +GameClear: @ 0x081377A4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x1c + bl HealPlayerParty + ldr r4, _081377C8 + adds r0, r4, #0 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #1 + bne _081377D0 + ldr r0, _081377CC + strb r1, [r0] + b _081377DC + .align 2, 0 +_081377C8: .4byte 0x00000864 +_081377CC: .4byte 0x0203B9B0 +_081377D0: + ldr r1, _08137814 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl FlagSet +_081377DC: + movs r0, #1 + bl GetGameStat + cmp r0, #0 + bne _081377FE + ldr r0, _08137818 + ldr r2, [r0] + ldrh r1, [r2, #0xe] + lsls r1, r1, #0x10 + ldrb r0, [r2, #0x10] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #0x11] + orrs r1, r0 + movs r0, #1 + bl SetGameStat +_081377FE: + bl SetContinueGameWarpStatus + ldr r0, _08137818 + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #0 + bne _0813781C + movs r0, #1 + bl SetContinueGameWarpToHealLocation + b _08137822 + .align 2, 0 +_08137814: .4byte 0x0203B9B0 +_08137818: .4byte 0x03005AF0 +_0813781C: + movs r0, #2 + bl SetContinueGameWarpToHealLocation +_08137822: + movs r7, #0 + movs r6, #0 + add r0, sp, #0x18 + mov r8, r0 + mov r5, sp +_0813782C: + movs r0, #0x64 + adds r1, r6, #0 + muls r1, r0, r1 + ldr r0, _081378E0 + adds r4, r1, r0 + movs r0, #0 + strb r6, [r5] + strb r0, [r5, #1] + adds r0, r4, #0 + movs r1, #5 + bl GetMonData + cmp r0, #0 + beq _0813787A + adds r0, r4, #0 + movs r1, #6 + bl GetMonData + cmp r0, #0 + bne _0813787A + adds r0, r4, #0 + movs r1, #0x43 + bl GetMonData + cmp r0, #0 + bne _0813787A + movs r0, #1 + mov r1, r8 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x43 + add r2, sp, #0x18 + bl SetMonData + adds r0, r4, #0 + bl GetRibbonCount + strb r0, [r5, #1] + movs r7, #1 +_0813787A: + adds r5, #4 + adds r6, #1 + cmp r6, #5 + ble _0813782C + cmp r7, #1 + bne _081378CA + movs r0, #0x2a + bl IncrementGameStat + ldr r0, _081378E4 + bl FlagSet + mov r3, sp + add r2, sp, #4 + movs r6, #4 +_08137898: + ldrb r1, [r3, #1] + ldrb r0, [r2, #1] + cmp r0, r1 + bls _081378A8 + ldr r1, [sp] + ldr r0, [r2] + str r0, [sp] + str r1, [r2] +_081378A8: + adds r2, #4 + subs r6, #1 + cmp r6, #0 + bge _08137898 + mov r0, sp + ldrb r0, [r0, #1] + cmp r0, #4 + bls _081378CA + mov r0, sp + ldrb r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081378E0 + adds r0, r0, r1 + movs r1, #0x43 + bl sub_080EEFFC +_081378CA: + ldr r0, _081378E8 + bl SetMainCallback2 + movs r0, #0 + add sp, #0x1c + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081378E0: .4byte 0x02024190 +_081378E4: .4byte 0x0000089B +_081378E8: .4byte 0x08173479 + thumb_func_end GameClear + + thumb_func_start sp0C8_whiteout_maybe +sp0C8_whiteout_maybe: @ 0x081378EC + push {lr} + ldr r0, _081378FC + bl SetMainCallback2 + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_081378FC: .4byte 0x080858C1 + thumb_func_end sp0C8_whiteout_maybe + diff --git a/asm/psychic.s b/asm/psychic.s new file mode 100644 index 0000000..bfe1d53 --- /dev/null +++ b/asm/psychic.s @@ -0,0 +1,2266 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_0810FA3C +sub_0810FA3C: @ 0x0810FA3C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + bl IsContest + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r0, _0810FAFC + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810FA62 + mov r0, r8 + cmp r0, #0 + beq _0810FA7E +_0810FA62: + ldrb r1, [r5, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r5, #5] + adds r1, r5, #0 + adds r1, #0x43 + movs r0, #0xc8 + strb r0, [r1] + mov r1, r8 + cmp r1, #0 + bne _0810FB08 +_0810FA7E: + movs r0, #1 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r7, r4, #0 + adds r0, r4, #0 + bl GetBattlerSpriteBGPriorityRank + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + eors r0, r1 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r6, r1, #0x1f + adds r0, r4, #0 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810FAB4 + adds r0, r4, #0 + adds r1, r6, #0 + movs r2, #0 + bl MoveBattlerSpriteToBG +_0810FAB4: + movs r0, #2 + adds r4, r0, #0 + eors r4, r7 + adds r0, r4, #0 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810FAD4 + movs r0, #1 + eors r6, r0 + adds r0, r4, #0 + adds r1, r6, #0 + movs r2, #0 + bl MoveBattlerSpriteToBG +_0810FAD4: + mov r0, r8 + cmp r0, #0 + bne _0810FB08 + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810FB08 + ldr r0, _0810FAFC + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810FB00 + movs r0, #0x48 + strh r0, [r5, #0x20] + movs r0, #0x50 + b _0810FB42 + .align 2, 0 +_0810FAFC: .4byte 0x020380D6 +_0810FB00: + movs r0, #0xb0 + strh r0, [r5, #0x20] + movs r0, #0x28 + b _0810FB42 +_0810FB08: + ldr r6, _0810FB70 + ldrb r0, [r6] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810FB1E + ldr r1, _0810FB74 + ldrh r0, [r1] + rsbs r0, r0, #0 + strh r0, [r1] +_0810FB1E: + ldrb r0, [r6] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + ldr r4, _0810FB74 + lsrs r0, r0, #0x18 + ldrh r1, [r4] + adds r0, r0, r1 + strh r0, [r5, #0x20] + ldrb r0, [r6] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r4, [r4, #2] + adds r0, r0, r4 +_0810FB42: + strh r0, [r5, #0x22] + ldr r0, _0810FB74 + ldrh r0, [r0, #4] + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x14 + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r0, r1 + strh r0, [r5, #0x2e] + mov r0, r8 + cmp r0, #0 + beq _0810FB7C + ldrh r0, [r5, #0x22] + adds r0, #9 + strh r0, [r5, #0x22] + ldr r1, _0810FB78 + str r1, [r5, #0x1c] + adds r0, r5, #0 + bl _call_via_r1 + b _0810FB80 + .align 2, 0 +_0810FB70: .4byte 0x020380D6 +_0810FB74: .4byte 0x020380BE +_0810FB78: .4byte 0x0810FC19 +_0810FB7C: + ldr r0, _0810FB8C + str r0, [r5, #0x1c] +_0810FB80: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0810FB8C: .4byte 0x0810FB91 + thumb_func_end sub_0810FA3C + + thumb_func_start sub_0810FB90 +sub_0810FB90: @ 0x0810FB90 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #1 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r1, #0x3c + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _0810FBAC + movs r0, #1 + strh r0, [r5, #0x3c] + b _0810FC06 +_0810FBAC: + adds r0, r4, #0 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810FBD2 + ldr r2, _0810FC0C + ldr r0, _0810FC10 + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_0810FBD2: + movs r0, #2 + eors r4, r0 + adds r0, r4, #0 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810FBFC + ldr r2, _0810FC0C + ldr r0, _0810FC10 + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_0810FBFC: + ldr r1, _0810FC14 + str r1, [r5, #0x1c] + adds r0, r5, #0 + bl _call_via_r1 +_0810FC06: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810FC0C: .4byte 0x020205AC +_0810FC10: .4byte 0x02023E88 +_0810FC14: .4byte 0x0810FC19 + thumb_func_end sub_0810FB90 + + thumb_func_start sub_0810FC18 +sub_0810FC18: @ 0x0810FC18 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x34] + movs r1, #0x10 + subs r1, r1, r0 + lsls r1, r1, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + ldrh r1, [r4, #0x34] + movs r2, #0x34 + ldrsh r0, [r4, r2] + cmp r0, #0xd + bne _0810FC44 + ldr r0, _0810FC40 + str r0, [r4, #0x1c] + b _0810FC48 + .align 2, 0 +_0810FC40: .4byte 0x0810FC51 +_0810FC44: + adds r0, r1, #1 + strh r0, [r4, #0x34] +_0810FC48: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0810FC18 + + thumb_func_start sub_0810FC50 +sub_0810FC50: @ 0x0810FC50 + push {r4, r5, r6, r7, lr} + adds r3, r0, #0 + ldrh r0, [r3, #0x30] + adds r0, #1 + strh r0, [r3, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + bne _0810FCAE + movs r0, #0 + strh r0, [r3, #0x30] + ldrh r4, [r3, #0x2e] + ldr r1, _0810FCB4 + adds r0, r4, #0 + adds r0, #8 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r7, [r0] + movs r5, #8 + adds r6, r1, #0 + adds r1, r4, #7 + lsls r0, r4, #1 + adds r0, r0, r6 + adds r2, r0, #0 + adds r2, #0x10 + lsls r1, r1, #1 + adds r1, r1, r6 +_0810FC86: + ldrh r0, [r1] + strh r0, [r2] + subs r1, #2 + subs r2, #2 + subs r5, #1 + cmp r5, #0 + bgt _0810FC86 + adds r0, r4, #1 + lsls r0, r0, #1 + adds r0, r0, r6 + strh r7, [r0] + ldrh r0, [r3, #0x32] + adds r0, #1 + strh r0, [r3, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x10 + bne _0810FCAE + ldr r0, _0810FCB8 + str r0, [r3, #0x1c] +_0810FCAE: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0810FCB4: .4byte 0x020377B4 +_0810FCB8: .4byte 0x0810FCBD + thumb_func_end sub_0810FC50 + + thumb_func_start sub_0810FCBC +sub_0810FCBC: @ 0x0810FCBC + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrh r0, [r5, #0x34] + movs r1, #0x10 + subs r1, r1, r0 + lsls r1, r1, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + ldrh r0, [r5, #0x34] + subs r0, #1 + strh r0, [r5, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0810FD62 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810FD52 + movs r0, #1 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r6, r4, #0 + adds r0, r4, #0 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810FD24 + ldr r2, _0810FD68 + ldr r0, _0810FD6C + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] +_0810FD24: + movs r0, #2 + adds r4, r0, #0 + eors r4, r6 + adds r0, r4, #0 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810FD52 + ldr r2, _0810FD68 + ldr r0, _0810FD6C + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] +_0810FD52: + adds r2, r5, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _0810FD70 + str r0, [r5, #0x1c] +_0810FD62: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0810FD68: .4byte 0x020205AC +_0810FD6C: .4byte 0x02023E88 +_0810FD70: .4byte 0x0810FD75 + thumb_func_end sub_0810FCBC + + thumb_func_start sub_0810FD74 +sub_0810FD74: @ 0x0810FD74 + push {r4, r5, r6, lr} + adds r6, r0, #0 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810FDCC + movs r0, #1 + bl GetBattlerAtPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r4, r0, #0 + bl GetBattlerSpriteBGPriorityRank + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + eors r0, r1 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r5, r1, #0x1f + adds r0, r4, #0 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810FDB2 + adds r0, r5, #0 + bl sub_080A4044 +_0810FDB2: + movs r0, #2 + eors r4, r0 + adds r0, r4, #0 + bl IsBattlerSpriteVisible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810FDCC + movs r0, #1 + eors r5, r0 + adds r0, r5, #0 + bl sub_080A4044 +_0810FDCC: + ldr r0, _0810FDD8 + str r0, [r6, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0810FDD8: .4byte 0x080A34C5 + thumb_func_end sub_0810FD74 + + thumb_func_start sub_0810FDDC +sub_0810FDDC: @ 0x0810FDDC + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0810FE68 + ldr r5, _0810FE28 + movs r1, #6 + ldrsh r0, [r5, r1] + movs r6, #0 + cmp r0, #0 + bne _0810FDF6 + movs r6, #1 +_0810FDF6: + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810FE3E + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810FE3E + ldr r0, _0810FE2C + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810FE30 + ldrh r0, [r5] + movs r1, #0x48 + subs r1, r1, r0 + strh r1, [r4, #0x20] + ldrh r0, [r5, #2] + adds r0, #0x50 + strh r0, [r4, #0x22] + b _0810FE60 + .align 2, 0 +_0810FE28: .4byte 0x020380BE +_0810FE2C: .4byte 0x020380D6 +_0810FE30: + ldrh r0, [r5] + adds r0, #0xb0 + strh r0, [r4, #0x20] + ldrh r0, [r5, #2] + adds r0, #0x28 + strh r0, [r4, #0x22] + b _0810FE60 +_0810FE3E: + ldr r0, _0810FE54 + movs r1, #4 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _0810FE58 + adds r0, r4, #0 + adds r1, r6, #0 + bl InitSpritePosToAnimAttacker + b _0810FE60 + .align 2, 0 +_0810FE54: .4byte 0x020380BE +_0810FE58: + adds r0, r4, #0 + adds r1, r6, #0 + bl InitSpritePosToAnimTarget +_0810FE60: + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + b _0810FE7C +_0810FE68: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x30 + ands r0, r1 + cmp r0, #0 + beq _0810FE7C + adds r0, r4, #0 + bl DestroySpriteAndMatrix +_0810FE7C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0810FDDC + + thumb_func_start sub_0810FE84 +sub_0810FE84: @ 0x0810FE84 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0810FECC + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810FED4 + adds r0, r5, #0 + movs r1, #1 + 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, _0810FED0 + b _0810FEE2 + .align 2, 0 +_0810FECC: .4byte 0x020380D6 +_0810FED0: .4byte 0x0000FFFF +_0810FED4: + ldrh r0, [r5, #0x20] + adds r0, #0x28 + strh r0, [r5, #0x20] + ldrh r0, [r5, #0x22] + subs r0, #0xa + strh r0, [r5, #0x22] + movs r0, #1 +_0810FEE2: + strh r0, [r5, #0x30] + ldr r1, _0810FEF8 + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _0810FEFC + str r0, [r5, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0810FEF8: .4byte 0x080A34C5 +_0810FEFC: .4byte 0x080A60A1 + thumb_func_end sub_0810FE84 + + thumb_func_start sub_0810FF00 +sub_0810FF00: @ 0x0810FF00 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldr r6, _0810FF84 + ldrb r0, [r6] + movs r1, #1 + bl GetBattlerSpriteCoordAttr + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + lsrs r0, r0, #0x1f + adds r1, r1, r0 + lsls r1, r1, #0xf + lsrs r4, r1, #0x10 + ldrb r0, [r6] + movs r1, #0 + bl GetBattlerSpriteCoordAttr + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + lsrs r0, r0, #0x1f + adds r1, r1, r0 + asrs r1, r1, #1 + rsbs r1, r1, #0 + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + ldrb r0, [r6] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0810FF46 + lsls r0, r4, #0x10 + rsbs r0, r0, #0 + lsrs r4, r0, #0x10 +_0810FF46: + ldrb r0, [r6] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r4 + strh r0, [r5, #0x20] + ldrb r0, [r6] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r7 + strh r0, [r5, #0x22] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xf + bgt _0810FF72 + movs r0, #0x10 + strh r0, [r5, #0x22] +_0810FF72: + ldr r1, _0810FF88 + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + ldr r0, _0810FF8C + str r0, [r5, #0x1c] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0810FF84: .4byte 0x020380D6 +_0810FF88: .4byte 0x0810FF91 +_0810FF8C: .4byte 0x080A60A1 + thumb_func_end sub_0810FF00 + + thumb_func_start sub_0810FF90 +sub_0810FF90: @ 0x0810FF90 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #1] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #1] + ldr r0, _0810FFBC + str r0, [r4, #0x10] + movs r0, #0 + strh r0, [r4, #0x2e] + adds r0, r4, #0 + bl InitSpriteAffineAnim + ldr r0, _0810FFC0 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810FFBC: .4byte 0x08572324 +_0810FFC0: .4byte 0x0810FFC5 + thumb_func_end sub_0810FF90 + + thumb_func_start sub_0810FFC4 +sub_0810FFC4: @ 0x0810FFC4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0810FFD6 + cmp r0, #1 + beq _08110004 + b _0811001C +_0810FFD6: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0811001C + ldrb r0, [r4, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + ldrb r1, [r4, #1] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #1] + movs r0, #0x12 + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + b _0811001C +_08110004: + ldrh r0, [r4, #0x30] + subs r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0811001C + adds r0, r4, #0 + bl DestroyAnimSprite +_0811001C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0810FFC4 + + thumb_func_start sub_08110024 +sub_08110024: @ 0x08110024 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _08110054 + adds r4, r4, r0 + movs r0, #0 + bl GetAnimBattlerSpriteId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + strh r1, [r4, #8] + ldr r2, _08110058 + adds r0, r4, #0 + bl PrepareAffineAnimInTaskData + ldr r0, _0811005C + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08110054: .4byte 0x03005B60 +_08110058: .4byte 0x08572340 +_0811005C: .4byte 0x08110061 + thumb_func_end sub_08110024 + + thumb_func_start sub_08110060 +sub_08110060: @ 0x08110060 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _08110088 + adds r0, r0, r1 + bl RunAffineAnimFromTaskData + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08110080 + adds r0, r4, #0 + bl DestroyAnimVisualTask +_08110080: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08110088: .4byte 0x03005B60 + thumb_func_end sub_08110060 + + thumb_func_start sub_0811008C +sub_0811008C: @ 0x0811008C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _081100D8 + adds r4, r1, r0 + movs r0, #0 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + strh r0, [r4, #8] + strh r1, [r4, #0xa] + strh r1, [r4, #0xc] + ldr r0, _081100DC + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + movs r1, #8 + cmp r0, #0 + beq _081100C0 + movs r1, #4 +_081100C0: + strh r1, [r4, #0xe] + ldrb r1, [r4, #8] + ldr r2, _081100E0 + adds r0, r4, #0 + bl PrepareAffineAnimInTaskData + ldr r0, _081100E4 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081100D8: .4byte 0x03005B60 +_081100DC: .4byte 0x020380D6 +_081100E0: .4byte 0x08572360 +_081100E4: .4byte 0x081100E9 + thumb_func_end sub_0811008C + + thumb_func_start sub_081100E8 +sub_081100E8: @ 0x081100E8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _08110108 + adds r4, r0, r1 + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0811010C + cmp r0, #1 + beq _08110128 + b _08110186 + .align 2, 0 +_08110108: .4byte 0x03005B60 +_0811010C: + adds r0, r4, #0 + bl RunAffineAnimFromTaskData + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x13 + ble _08110186 + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + b _08110186 +_08110128: + movs r1, #0xe + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _08110150 + ldr r2, _0811014C + movs r0, #8 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x26] + subs r1, #8 + strh r1, [r0, #0x26] + ldrh r0, [r4, #0xe] + subs r0, #1 + strh r0, [r4, #0xe] + b _08110186 + .align 2, 0 +_0811014C: .4byte 0x020205AC +_08110150: + ldr r3, _0811018C + movs r0, #8 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + movs r0, #8 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r1, #0x88 + lsls r1, r1, #1 + strh r1, [r0, #0x20] + ldrb r0, [r4, #8] + bl ResetSpriteRotScale + adds r0, r5, #0 + bl DestroyAnimVisualTask +_08110186: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0811018C: .4byte 0x020205AC + thumb_func_end sub_081100E8 + + thumb_func_start sub_08110190 +sub_08110190: @ 0x08110190 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _08110218 + adds r5, r1, r0 + movs r1, #0 + movs r0, #0x10 + strh r0, [r5, #0xe] + strh r1, [r5, #0x10] + ldr r4, _0811021C + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x24] + ldrb r0, [r4] + movs r1, #1 + bl GetBattlerSpriteCoordAttr + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #3 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldrb r0, [r4] + movs r1, #0 + bl GetBattlerSpriteCoordAttr + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #3 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r0, #0 + cmp r0, r6 + bhs _081101FA + adds r1, r6, #0 +_081101FA: + strh r1, [r5, #0x20] + movs r1, #0xfd + lsls r1, r1, #6 + movs r0, #0x50 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0x10 + bl SetGpuReg + ldr r0, _08110220 + str r0, [r5] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08110218: .4byte 0x03005B60 +_0811021C: .4byte 0x020380D6 +_08110220: .4byte 0x08110225 + thumb_func_end sub_08110190 + + thumb_func_start sub_08110224 +sub_08110224: @ 0x08110224 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _08110248 + adds r4, r0, r1 + movs r0, #8 + ldrsh r1, [r4, r0] + cmp r1, #1 + beq _08110324 + cmp r1, #1 + bgt _0811024C + cmp r1, #0 + beq _0811025A + b _081103AA + .align 2, 0 +_08110248: .4byte 0x03005B60 +_0811024C: + cmp r1, #2 + bne _08110252 + b _08110386 +_08110252: + cmp r1, #3 + bne _08110258 + b _08110394 +_08110258: + b _081103AA +_0811025A: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #8 + bgt _0811026A + b _081103AA +_0811026A: + strh r1, [r4, #0xa] + ldr r0, _081102A8 + movs r2, #0x22 + ldrsh r1, [r4, r2] + movs r3, #0x24 + ldrsh r2, [r4, r3] + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + movs r0, #0xc + ldrsh r1, [r4, r0] + adds r1, #8 + lsls r1, r1, #1 + adds r0, r4, #0 + adds r0, #8 + adds r0, r0, r1 + strh r2, [r0] + cmp r2, #0x40 + beq _0811030E + movs r1, #0xc + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _081102C8 + cmp r0, #1 + bgt _081102AC + cmp r0, #0 + beq _081102B6 + b _0811030E + .align 2, 0 +_081102A8: .4byte 0x08572378 +_081102AC: + cmp r0, #2 + beq _081102E0 + cmp r0, #3 + beq _081102F8 + b _0811030E +_081102B6: + ldr r0, _081102C4 + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r0, [r4, #0x20] + b _08110306 + .align 2, 0 +_081102C4: .4byte 0x020205AC +_081102C8: + ldr r0, _081102DC + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r0, [r4, #0x20] + rsbs r0, r0, #0 + strh r0, [r1, #0x24] + ldrh r0, [r4, #0x20] + b _0811030C + .align 2, 0 +_081102DC: .4byte 0x020205AC +_081102E0: + ldr r1, _081102F4 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r1, [r4, #0x20] + strh r1, [r0, #0x24] + ldrh r1, [r4, #0x20] + strh r1, [r0, #0x26] + b _0811030E + .align 2, 0 +_081102F4: .4byte 0x020205AC +_081102F8: + ldr r0, _08110320 + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r0, [r4, #0x20] + rsbs r0, r0, #0 +_08110306: + strh r0, [r1, #0x24] + ldrh r0, [r4, #0x20] + rsbs r0, r0, #0 +_0811030C: + strh r0, [r1, #0x26] +_0811030E: + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #5 + bne _081103AA + b _08110386 + .align 2, 0 +_08110320: .4byte 0x020205AC +_08110324: + ldrh r0, [r4, #0xa] + ands r1, r0 + cmp r1, #0 + beq _08110334 + ldrh r0, [r4, #0xe] + subs r0, #1 + strh r0, [r4, #0xe] + b _0811033A +_08110334: + ldrh r0, [r4, #0x10] + adds r0, #1 + strh r0, [r4, #0x10] +_0811033A: + ldrh r1, [r4, #0x10] + lsls r1, r1, #8 + ldrh r0, [r4, #0xe] + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x20 + bne _081103AA + movs r5, #8 + adds r6, r4, #0 + adds r6, #8 +_08110360: + lsls r0, r5, #1 + adds r1, r6, r0 + movs r2, #0 + ldrsh r0, [r1, r2] + cmp r0, #0x40 + beq _0811037C + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08110390 + adds r0, r0, r1 + bl DestroySprite +_0811037C: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0xc + bls _08110360 +_08110386: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _081103AA + .align 2, 0 +_08110390: .4byte 0x020205AC +_08110394: + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + adds r0, r5, #0 + bl DestroyAnimVisualTask +_081103AA: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_08110224 + + thumb_func_start sub_081103B0 +sub_081103B0: @ 0x081103B0 + 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 _081103DA + ldrh r0, [r4, #0x30] + movs r1, #1 + ands r1, r0 + adds r3, r4, #0 + adds r3, #0x3e + lsls r1, r1, #2 + ldrb r2, [r3] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_081103DA: + movs r0, #0x30 + ldrsh r1, [r4, r0] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _081103EC + adds r0, r4, #0 + bl DestroyAnimSprite +_081103EC: + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_081103B0 + + thumb_func_start sub_081103F8 +sub_081103F8: @ 0x081103F8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, _08110434 + movs r1, #0 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _08110424 + ldr r4, _08110438 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] +_08110424: + ldrh r0, [r6, #2] + strh r0, [r5, #0x2e] + ldr r0, _0811043C + str r0, [r5, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08110434: .4byte 0x020380BE +_08110438: .4byte 0x020380D6 +_0811043C: .4byte 0x081103B1 + thumb_func_end sub_081103F8 + + thumb_func_start sub_08110440 +sub_08110440: @ 0x08110440 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _0811049C + adds r5, r1, r0 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081104E4 + ldr r0, _081104A0 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #1 + bne _081104B0 + ldr r0, _081104A4 + strh r0, [r5, #0x1c] + ldr r4, _081104A8 + ldrb r0, [r4] + movs r1, #5 + bl GetBattlerSpriteCoordAttr + subs r0, #8 + strh r0, [r5, #0x1e] + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoordAttr + adds r0, #8 + strh r0, [r5, #0x20] + ldr r4, _081104AC + ldrb r0, [r4] + movs r1, #5 + bl GetBattlerSpriteCoordAttr + subs r0, #8 + strh r0, [r5, #0x22] + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoordAttr + adds r0, #8 + b _0811056E + .align 2, 0 +_0811049C: .4byte 0x03005B60 +_081104A0: .4byte 0x020380BE +_081104A4: .4byte 0x0000FFF6 +_081104A8: .4byte 0x020380D7 +_081104AC: .4byte 0x020380D6 +_081104B0: + movs r0, #0xa + strh r0, [r5, #0x1c] + ldr r4, _081104DC + ldrb r0, [r4] + movs r1, #4 + bl GetBattlerSpriteCoordAttr + adds r0, #8 + strh r0, [r5, #0x1e] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoordAttr + subs r0, #8 + strh r0, [r5, #0x20] + ldr r4, _081104E0 + ldrb r0, [r4] + movs r1, #4 + bl GetBattlerSpriteCoordAttr + adds r0, #8 + b _08110562 + .align 2, 0 +_081104DC: .4byte 0x020380D6 +_081104E0: .4byte 0x020380D7 +_081104E4: + ldr r0, _08110528 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #1 + bne _08110538 + ldr r0, _0811052C + strh r0, [r5, #0x1c] + ldr r4, _08110530 + ldrb r0, [r4] + movs r1, #4 + bl GetBattlerSpriteCoordAttr + adds r0, #8 + strh r0, [r5, #0x1e] + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoordAttr + adds r0, #8 + strh r0, [r5, #0x20] + ldr r4, _08110534 + ldrb r0, [r4] + movs r1, #4 + bl GetBattlerSpriteCoordAttr + adds r0, #8 + strh r0, [r5, #0x22] + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoordAttr + adds r0, #8 + b _0811056E + .align 2, 0 +_08110528: .4byte 0x020380BE +_0811052C: .4byte 0x0000FFF6 +_08110530: .4byte 0x020380D7 +_08110534: .4byte 0x020380D6 +_08110538: + movs r0, #0xa + strh r0, [r5, #0x1c] + ldr r4, _08110580 + ldrb r0, [r4] + movs r1, #5 + bl GetBattlerSpriteCoordAttr + subs r0, #8 + strh r0, [r5, #0x1e] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoordAttr + subs r0, #8 + strh r0, [r5, #0x20] + ldr r4, _08110584 + ldrb r0, [r4] + movs r1, #5 + bl GetBattlerSpriteCoordAttr + subs r0, #8 +_08110562: + strh r0, [r5, #0x22] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoordAttr + subs r0, #8 +_0811056E: + strh r0, [r5, #0x24] + movs r0, #6 + strh r0, [r5, #0xa] + ldr r0, _08110588 + str r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08110580: .4byte 0x020380D6 +_08110584: .4byte 0x020380D7 +_08110588: .4byte 0x0811058D + thumb_func_end sub_08110440 + + thumb_func_start sub_0811058C +sub_0811058C: @ 0x0811058C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _081105AC + adds r5, r0, r1 + movs r0, #8 + ldrsh r1, [r5, r0] + cmp r1, #0 + beq _081105B0 + cmp r1, #1 + beq _08110624 + b _08110638 + .align 2, 0 +_081105AC: .4byte 0x03005B60 +_081105B0: + ldrh r0, [r5, #0xa] + adds r0, #1 + strh r0, [r5, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #6 + ble _08110638 + strh r1, [r5, #0xa] + ldr r0, _0811061C + movs r2, #0x1e + ldrsh r1, [r5, r2] + movs r3, #0x20 + ldrsh r2, [r5, r3] + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x40 + beq _08110604 + ldr r0, _08110620 + lsls r4, r1, #4 + adds r4, r4, r1 + lsls r4, r4, #2 + adds r4, 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 InitAnimArcTranslation + ldrb r0, [r5, #0xc] + movs r1, #3 + ands r1, r0 + adds r0, r4, #0 + bl StartSpriteAffineAnim +_08110604: + ldrh r0, [r5, #0xc] + adds r0, #1 + strh r0, [r5, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xc + bne _08110638 + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + b _08110638 + .align 2, 0 +_0811061C: .4byte 0x08572448 +_08110620: .4byte 0x020205AC +_08110624: + ldrh r0, [r5, #0xa] + adds r0, #1 + strh r0, [r5, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x11 + ble _08110638 + adds r0, r2, #0 + bl DestroyAnimVisualTask +_08110638: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0811058C + + thumb_func_start sub_08110640 +sub_08110640: @ 0x08110640 + push {r4, lr} + adds r4, r0, #0 + bl TranslateAnimHorizontalArc + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0811065E + ldrb r0, [r4, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + adds r0, r4, #0 + bl DestroySprite +_0811065E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08110640 + + thumb_func_start sub_08110664 +sub_08110664: @ 0x08110664 + push {r4, r5, r6, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _0811069C + adds r4, r1, r0 + ldr r0, _081106A0 + ldrb r0, [r0] + bl GetBattlerYCoordWithElevation + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r0, r1, #0 + subs r0, #0x20 + strh r0, [r4, #0x24] + ldr r0, _081106A4 + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r0, #1 + beq _081106BA + cmp r0, #1 + bgt _081106A8 + cmp r0, #0 + beq _081106AE + b _081106D6 + .align 2, 0 +_0811069C: .4byte 0x03005B60 +_081106A0: .4byte 0x020380D7 +_081106A4: .4byte 0x020380BE +_081106A8: + cmp r0, #2 + beq _081106C6 + b _081106D6 +_081106AE: + movs r0, #2 + strh r0, [r4, #0x1e] + movs r0, #5 + strh r0, [r4, #0x20] + movs r0, #0x40 + b _081106CE +_081106BA: + movs r0, #2 + strh r0, [r4, #0x1e] + movs r0, #5 + strh r0, [r4, #0x20] + movs r0, #0xc0 + b _081106CE +_081106C6: + movs r0, #4 + strh r0, [r4, #0x1e] + strh r0, [r4, #0x20] + movs r0, #0 +_081106CE: + strh r0, [r4, #0x22] + adds r0, r1, #0 + adds r0, #0x20 + strh r0, [r4, #0x26] +_081106D6: + movs r1, #0x24 + ldrsh r0, [r4, r1] + cmp r0, #0 + bge _081106E2 + movs r0, #0 + strh r0, [r4, #0x24] +_081106E2: + ldr r0, _081106FC + ldrb r0, [r0] + bl GetBattlerSpriteBGPriorityRank + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08110708 + ldr r0, _08110700 + ldrh r0, [r0] + strh r0, [r4, #0x1c] + ldr r0, _08110704 + b _08110710 + .align 2, 0 +_081106FC: .4byte 0x020380D7 +_08110700: .4byte 0x02022ACC +_08110704: .4byte 0x04000014 +_08110708: + ldr r0, _08110770 + ldrh r0, [r0] + strh r0, [r4, #0x1c] + ldr r0, _08110774 +_08110710: + str r0, [sp] + ldrh r1, [r4, #0x24] + lsls r3, r1, #0x10 + asrs r1, r3, #0x10 + movs r2, #0x24 + ldrsh r0, [r4, r2] + adds r0, #0x40 + cmp r1, r0 + bgt _0811074A + ldr r5, _08110778 + movs r0, #0xf0 + lsls r0, r0, #3 + adds r6, r5, r0 +_0811072A: + asrs r3, r3, #0x10 + lsls r1, r3, #1 + adds r2, r1, r5 + ldrh r0, [r4, #0x1c] + strh r0, [r2] + adds r1, r1, r6 + ldrh r0, [r4, #0x1c] + strh r0, [r1] + adds r3, #1 + lsls r3, r3, #0x10 + asrs r1, r3, #0x10 + movs r2, #0x24 + ldrsh r0, [r4, r2] + adds r0, #0x40 + cmp r1, r0 + ble _0811072A +_0811074A: + ldr r0, _0811077C + str r0, [sp, #4] + mov r1, sp + movs r2, #0 + movs r0, #1 + strb r0, [r1, #8] + mov r0, sp + strb r2, [r0, #9] + ldr r0, [sp] + ldr r1, [sp, #4] + ldr r2, [sp, #8] + bl ScanlineEffect_SetParams + ldr r0, _08110780 + str r0, [r4] + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08110770: .4byte 0x02022AD0 +_08110774: .4byte 0x04000018 +_08110778: .4byte 0x020388C8 +_0811077C: .4byte 0xA2600001 +_08110780: .4byte 0x08110785 + thumb_func_end sub_08110664 + + thumb_func_start sub_08110784 +sub_08110784: @ 0x08110784 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _081107AC + adds r5, r0, r1 + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #1 + beq _0811085E + cmp r0, #1 + bgt _081107B0 + cmp r0, #0 + beq _081107B6 + b _08110876 + .align 2, 0 +_081107AC: .4byte 0x03005B60 +_081107B0: + cmp r0, #2 + beq _08110870 + b _08110876 +_081107B6: + 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 _0811084E + ldr r0, _08110800 + mov sb, r0 + movs r7, #3 + ldr r1, _08110804 + mov ip, r1 + movs r2, #0xf0 + lsls r2, r2, #3 + add r2, ip + mov r8, r2 +_081107D8: + lsls r2, r3, #0x10 + asrs r0, r2, #0xf + add r0, sb + movs r3, #0 + ldrsh r0, [r0, r3] + movs r3, #0x20 + ldrsh r1, [r5, r3] + asrs r0, r1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + asrs r3, r0, #0x10 + adds r6, r2, #0 + cmp r3, #0 + ble _08110808 + ldrh r1, [r5, #0xa] + adds r0, r7, #0 + ands r0, r1 + adds r0, r3, r0 + b _08110814 + .align 2, 0 +_08110800: .4byte 0x082FA8CC +_08110804: .4byte 0x020388C8 +_08110808: + cmp r3, #0 + bge _08110818 + ldrh r1, [r5, #0xa] + adds r0, r7, #0 + ands r0, r1 + subs r0, r3, r0 +_08110814: + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 +_08110818: + lsls r2, r4, #0x10 + asrs r2, r2, #0x10 + lsls r3, r2, #1 + mov r0, ip + adds r4, r3, r0 + ldrh r0, [r5, #0x1c] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r0, r1, r0 + strh r0, [r4] + add r3, r8 + ldrh r0, [r5, #0x1c] + adds r1, r1, r0 + strh r1, [r3] + asrs r0, r6, #0x10 + ldrh r1, [r5, #0x1e] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + adds r2, #1 + lsls r2, r2, #0x10 + lsrs r4, r2, #0x10 + asrs r2, r2, #0x10 + movs r1, #0x26 + ldrsh r0, [r5, r1] + cmp r2, r0 + ble _081107D8 +_0811084E: + ldrh r0, [r5, #0xa] + adds r0, #1 + strh r0, [r5, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x17 + ble _08110876 + b _08110864 +_0811085E: + ldr r1, _0811086C + movs r0, #3 + strb r0, [r1, #0x15] +_08110864: + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + b _08110876 + .align 2, 0 +_0811086C: .4byte 0x020397C8 +_08110870: + adds r0, r2, #0 + bl DestroyAnimVisualTask +_08110876: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08110784 + + thumb_func_start sub_08110884 +sub_08110884: @ 0x08110884 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + mov r8, r4 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _081108B8 + adds r7, r0, r1 + bl AllocOamMatrix + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + mov sl, r5 + adds r6, r5, #0 + cmp r6, #0xff + bne _081108BC + adds r0, r4, #0 + bl DestroyAnimVisualTask + b _08110966 + .align 2, 0 +_081108B8: .4byte 0x03005B60 +_081108BC: + ldr r1, _081108E0 + ldrb r0, [r1] + bl CloneBattlerSpriteWithBlend + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + mov sb, r1 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _081108E4 + adds r0, r5, #0 + bl FreeOamMatrix + mov r0, r8 + bl DestroyAnimVisualTask + b _08110966 + .align 2, 0 +_081108E0: .4byte 0x020380BE +_081108E4: + ldr r2, _08110974 + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + adds r0, r2, #0 + adds r0, #0x1c + adds r0, r4, r0 + ldr r1, _08110978 + str r1, [r0] + adds r4, r4, r2 + ldrb r0, [r4, #1] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #1] + movs r0, #0x1f + ands r6, r0 + lsls r2, r6, #1 + ldrb r1, [r4, #3] + movs r0, #0x3f + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #3] + 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, #1 + strb r0, [r1] + mov r1, sb + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + movs r3, #0 + bl SetSpriteRotScale + ldrb r3, [r4, #1] + lsrs r1, r3, #6 + ldrb r2, [r4, #3] + lsrs r2, r2, #6 + lsls r3, r3, #0x1e + lsrs r3, r3, #0x1e + adds r0, r4, #0 + bl CalcCenterToCornerVec + ldr r1, _0811097C + ldrb r0, [r1] + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r7, #0x22] + mov r0, sl + strh r0, [r7, #0x24] + mov r1, sb + strh r1, [r7, #0x26] + ldr r0, _08110980 + str r0, [r7] +_08110966: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08110974: .4byte 0x020205AC +_08110978: .4byte 0x08007141 +_0811097C: .4byte 0x020380BE +_08110980: .4byte 0x08110985 + thumb_func_end sub_08110884 + + thumb_func_start sub_08110984 +sub_08110984: @ 0x08110984 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _081109A8 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _08110A08 + cmp r0, #1 + bgt _081109AC + cmp r0, #0 + beq _081109B6 + b _08110A88 + .align 2, 0 +_081109A8: .4byte 0x03005B60 +_081109AC: + cmp r0, #2 + beq _08110A58 + cmp r0, #3 + beq _08110A78 + b _08110A88 +_081109B6: + ldrh r0, [r4, #0xa] + adds r0, #4 + strh r0, [r4, #0xa] + ldr r1, _08110A04 + movs r2, #0xa + ldrsh r0, [r4, r2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + lsls r1, r1, #0x10 + asrs r1, r1, #0x11 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r2, #0 + subs r0, r0, r1 + strh r0, [r4, #0xc] + ldrh r0, [r4, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0xc + ldrsh r2, [r4, r1] + adds r1, r2, #0 + movs r3, #0 + bl SetSpriteRotScale + ldrh r0, [r4, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #0x22] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl SetBattlerSpriteYOffsetFromOtherYScale + movs r2, #0xa + ldrsh r0, [r4, r2] + cmp r0, #0x30 + bne _08110A88 + b _08110A6A + .align 2, 0 +_08110A04: .4byte 0x082FA8CC +_08110A08: + ldrh r0, [r4, #0xa] + subs r0, #4 + strh r0, [r4, #0xa] + ldr r1, _08110A54 + movs r2, #0xa + ldrsh r0, [r4, r2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + lsls r1, r1, #0x10 + asrs r1, r1, #0x11 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r2, #0 + subs r0, r0, r1 + strh r0, [r4, #0xc] + ldrh r0, [r4, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0xc + ldrsh r2, [r4, r1] + adds r1, r2, #0 + movs r3, #0 + bl SetSpriteRotScale + ldrh r0, [r4, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #0x22] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl SetBattlerSpriteYOffsetFromOtherYScale + movs r2, #0xa + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _08110A88 + b _08110A6A + .align 2, 0 +_08110A54: .4byte 0x082FA8CC +_08110A58: + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08110A74 + adds r0, r0, r1 + bl obj_delete_but_dont_free_vram +_08110A6A: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _08110A88 + .align 2, 0 +_08110A74: .4byte 0x020205AC +_08110A78: + ldrh r0, [r4, #0x24] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl FreeOamMatrix + adds r0, r5, #0 + bl DestroyAnimVisualTask +_08110A88: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08110984 + + thumb_func_start sub_08110A90 +sub_08110A90: @ 0x08110A90 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + cmp r0, #1 + beq _08110B08 + cmp r0, #1 + bgt _08110AA6 + cmp r0, #0 + beq _08110AB0 + b _08110BB0 +_08110AA6: + cmp r0, #2 + beq _08110B3A + cmp r0, #3 + beq _08110B9A + b _08110BB0 +_08110AB0: + ldr r4, _08110B04 + ldrb r0, [r4] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x20] + ldrb r0, [r4] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x22] + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08110ADE + ldrh r0, [r5, #0x22] + adds r0, #0xc + strh r0, [r5, #0x22] +_08110ADE: + movs r0, #8 + strh r0, [r5, #0x30] + movs r1, #0xfd + lsls r1, r1, #6 + movs r0, #0x50 + bl SetGpuReg + ldrh r0, [r5, #0x30] + movs r1, #0x10 + subs r1, r1, r0 + lsls r1, r1, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + b _08110B32 + .align 2, 0 +_08110B04: .4byte 0x020380D6 +_08110B08: + adds r0, r5, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08110BB0 + movs r0, #0x40 + rsbs r0, r0, #0 + bl BattleAnimAdjustPanning + adds r1, r0, #0 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r0, #0xcb + bl PlaySE12WithPanning + adds r0, r5, #0 + movs r1, #1 + bl ChangeSpriteAffineAnim +_08110B32: + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] + b _08110BB0 +_08110B3A: + ldrh r0, [r5, #0x32] + adds r1, r0, #1 + strh r1, [r5, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _08110B7E + movs r0, #0 + strh r0, [r5, #0x32] + ldrh r1, [r5, #0x30] + subs r1, #1 + strh r1, [r5, #0x30] + movs r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r1, #0x30 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _08110B7E + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] + adds r2, r5, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] +_08110B7E: + movs r0, #0xe0 + lsls r0, r0, #2 + adds r2, r0, #0 + ldrh r1, [r5, #0x34] + adds r2, r2, r1 + lsls r1, r2, #0x10 + asrs r1, r1, #0x18 + ldrh r0, [r5, #0x26] + subs r0, r0, r1 + strh r0, [r5, #0x26] + movs r0, #0xff + ands r2, r0 + strh r2, [r5, #0x34] + b _08110BB0 +_08110B9A: + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + adds r0, r5, #0 + bl DestroyAnimSprite +_08110BB0: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08110A90 + diff --git a/asm/random.s b/asm/random.s new file mode 100644 index 0000000..65161bd --- /dev/null +++ b/asm/random.s @@ -0,0 +1,70 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start Random +Random: @ 0x0806F050 + ldr r2, _0806F06C + ldr r1, [r2] + ldr r0, _0806F070 + muls r0, r1, r0 + ldr r1, _0806F074 + adds r0, r0, r1 + str r0, [r2] + ldr r2, _0806F078 + ldr r1, [r2] + adds r1, #1 + str r1, [r2] + lsrs r0, r0, #0x10 + bx lr + .align 2, 0 +_0806F06C: .4byte 0x03005AE0 +_0806F070: .4byte 0x41C64E6D +_0806F074: .4byte 0x00006073 +_0806F078: .4byte 0x02024664 + thumb_func_end Random + + thumb_func_start SeedRng +SeedRng: @ 0x0806F07C + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _0806F08C + str r0, [r1] + ldr r1, _0806F090 + movs r0, #0 + strb r0, [r1] + bx lr + .align 2, 0 +_0806F08C: .4byte 0x03005AE0 +_0806F090: .4byte 0x02024660 + thumb_func_end SeedRng + + thumb_func_start SeedRng2 +SeedRng2: @ 0x0806F094 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _0806F0A0 + str r0, [r1] + bx lr + .align 2, 0 +_0806F0A0: .4byte 0x03005AE4 + thumb_func_end SeedRng2 + + thumb_func_start Random2 +Random2: @ 0x0806F0A4 + ldr r2, _0806F0B8 + ldr r1, [r2] + ldr r0, _0806F0BC + muls r0, r1, r0 + ldr r1, _0806F0C0 + adds r0, r0, r1 + str r0, [r2] + lsrs r0, r0, #0x10 + bx lr + .align 2, 0 +_0806F0B8: .4byte 0x03005AE4 +_0806F0BC: .4byte 0x41C64E6D +_0806F0C0: .4byte 0x00006073 + thumb_func_end Random2 + diff --git a/asm/rayquaza_scene.s b/asm/rayquaza_scene.s new file mode 100644 index 0000000..c556757 --- /dev/null +++ b/asm/rayquaza_scene.s @@ -0,0 +1,6286 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start DoRayquazaScene +DoRayquazaScene: @ 0x081D605C + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r4, r0, #0 + adds r5, r1, #0 + mov r8, r2 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r6, _081D609C + ldr r0, _081D60A0 + bl AllocZeroed + str r0, [r6] + ldr r1, _081D60A4 + adds r0, r0, r1 + strb r4, [r0] + ldr r0, [r6] + mov r1, r8 + str r1, [r0] + ldr r1, _081D60A8 + adds r0, r0, r1 + strb r5, [r0] + ldr r0, _081D60AC + bl SetMainCallback2 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081D609C: .4byte 0x0203CC2C +_081D60A0: .4byte 0x00002018 +_081D60A4: .4byte 0x00002006 +_081D60A8: .4byte 0x00002007 +_081D60AC: .4byte 0x081D60B1 + thumb_func_end DoRayquazaScene + + thumb_func_start CB2_InitRayquazaScene +CB2_InitRayquazaScene: @ 0x081D60B0 + push {lr} + bl SetVBlankHBlankCallbacksToNull + bl clear_scheduled_bg_copies_to_vram + bl ScanlineEffect_Stop + bl FreeAllSpritePalettes + bl ResetPaletteFade + bl ResetSpriteData + bl ResetTasks + movs r0, #0 + movs r1, #0xf0 + movs r2, #0x20 + bl FillPalette + ldr r1, _081D60FC + ldr r0, _081D6100 + ldr r0, [r0] + ldr r2, _081D6104 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0 + bl CreateTask + ldr r0, _081D6108 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_081D60FC: .4byte 0x085FB99C +_081D6100: .4byte 0x0203CC2C +_081D6104: .4byte 0x00002006 +_081D6108: .4byte 0x081D610D + thumb_func_end CB2_InitRayquazaScene + + thumb_func_start CB2_RayquazaScene +CB2_RayquazaScene: @ 0x081D610C + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl do_scheduled_bg_tilemap_copies_to_vram + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CB2_RayquazaScene + + thumb_func_start VBlankCB_RayquazaScene +VBlankCB_RayquazaScene: @ 0x081D6128 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end VBlankCB_RayquazaScene + + thumb_func_start Task_EndAfterFadeScreen +Task_EndAfterFadeScreen: @ 0x081D613C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _081D6174 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081D616C + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r4, _081D6178 + ldr r0, [r4] + ldr r0, [r0] + bl SetMainCallback2 + ldr r0, [r4] + bl Free + adds r0, r5, #0 + bl DestroyTask +_081D616C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081D6174: .4byte 0x02037C74 +_081D6178: .4byte 0x0203CC2C + thumb_func_end Task_EndAfterFadeScreen + + thumb_func_start Task_SetNextAnim +Task_SetNextAnim: @ 0x081D617C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + adds r6, r3, #0 + ldr r0, _081D61B0 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _081D61EE + ldr r2, _081D61B4 + ldr r1, [r2] + ldr r4, _081D61B8 + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, #1 + bne _081D61C4 + ldr r0, _081D61BC + lsls r1, r3, #2 + adds r1, r1, r3 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081D61C0 + b _081D61EC + .align 2, 0 +_081D61B0: .4byte 0x02037C74 +_081D61B4: .4byte 0x0203CC2C +_081D61B8: .4byte 0x00002007 +_081D61BC: .4byte 0x03005B60 +_081D61C0: .4byte 0x081D613D +_081D61C4: + ldr r4, _081D61F4 + adds r1, r1, r4 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r2, [r2] + ldr r1, _081D61F8 + adds r0, r2, r1 + strh r5, [r0] + ldr r0, _081D61FC + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r3, _081D6200 + adds r2, r2, r4 + ldrb r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r3 + ldr r0, [r0] +_081D61EC: + str r0, [r1] +_081D61EE: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081D61F4: .4byte 0x00002006 +_081D61F8: .4byte 0x00002004 +_081D61FC: .4byte 0x03005B60 +_081D6200: .4byte 0x085FB99C + thumb_func_end Task_SetNextAnim + + thumb_func_start sub_081D6204 +sub_081D6204: @ 0x081D6204 + push {lr} + movs r0, #0x48 + movs r1, #0x3f + bl SetGpuReg + movs r0, #0x4a + movs r1, #0 + bl SetGpuReg + movs r0, #0x40 + movs r1, #0xf0 + bl SetGpuReg + ldr r1, _081D6234 + movs r0, #0x44 + bl SetGpuReg + ldr r0, _081D6238 + movs r1, #0 + strh r1, [r0] + ldr r0, _081D623C + strh r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_081D6234: .4byte 0x00001888 +_081D6238: .4byte 0x020373B4 +_081D623C: .4byte 0x020377B4 + thumb_func_end sub_081D6204 + + thumb_func_start sub_081D6240 +sub_081D6240: @ 0x081D6240 + push {lr} + movs r0, #0x48 + movs r1, #0x3f + bl SetGpuReg + movs r0, #0x4a + movs r1, #0x3f + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081D6240 + + thumb_func_start Task_HandleDuoFightPre +Task_HandleDuoFightPre: @ 0x081D6258 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r4, r0, #0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _081D6288 + adds r5, r0, r1 + bl sub_081D6E48 + ldr r0, _081D628C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081D62BA + movs r0, #0 + ldrsh r1, [r5, r0] + cmp r1, #0x40 + bne _081D6290 + bl sub_081D6D74 + b _081D62B4 + .align 2, 0 +_081D6288: .4byte 0x03005B68 +_081D628C: .4byte 0x02037C74 +_081D6290: + cmp r1, #0x90 + bne _081D629A + bl sub_081D6DBC + b _081D62B4 +_081D629A: + cmp r1, #0x94 + beq _081D62B0 + movs r0, #0xa4 + lsls r0, r0, #1 + cmp r1, r0 + bne _081D62B4 + adds r0, r4, #0 + movs r1, #0 + bl DuoFightEnd + b _081D62BA +_081D62B0: + bl sub_081D6E04 +_081D62B4: + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] +_081D62BA: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end Task_HandleDuoFightPre + + thumb_func_start sub_081D62C0 +sub_081D62C0: @ 0x081D62C0 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + ldr r0, _081D6348 + mov r8, r0 + movs r1, #0x58 + movs r2, #0x48 + movs r3, #3 + bl CreateSprite + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r6, _081D634C + lsls r4, r5, #4 + adds r4, r4, r5 + lsls r4, r4, #2 + adds r0, r6, #0 + adds r0, #0x1c + adds r0, r4, r0 + ldr r1, _081D6350 + str r1, [r0] + adds r0, r6, #0 + adds r0, #0x2e + adds r4, r4, r0 + mov r0, r8 + movs r1, #0x38 + movs r2, #0x68 + movs r3, #3 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + ldr r0, _081D6354 + movs r1, #0x4b + movs r2, #0x65 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #2] + ldr r0, _081D6358 + movs r1, #0x6d + movs r2, #0x72 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #4] + movs r0, #0 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #1 + bl StartSpriteAnim + adds r0, r5, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_081D6348: .4byte 0x085FBA28 +_081D634C: .4byte 0x020205AC +_081D6350: .4byte 0x081D635D +_081D6354: .4byte 0x085FBA4C +_081D6358: .4byte 0x085FBA70 + thumb_func_end sub_081D62C0 + + thumb_func_start sub_081D635C +sub_081D635C: @ 0x081D635C + push {r4, lr} + adds r3, r0, #0 + movs r0, #0x2e + adds r0, r0, r3 + mov ip, r0 + ldrh r0, [r0, #0xa] + adds r0, #1 + movs r1, #0x1f + ands r0, r1 + mov r1, ip + strh r0, [r1, #0xa] + cmp r0, #0 + bne _081D63C0 + ldrh r1, [r3, #0x20] + movs r2, #0x20 + ldrsh r0, [r3, r2] + cmp r0, #0x48 + beq _081D63C0 + subs r0, r1, #1 + strh r0, [r3, #0x20] + ldr r2, _081D63D4 + movs r4, #0x2e + ldrsh r1, [r3, r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x20] + subs r1, #1 + strh r1, [r0, #0x20] + mov r0, ip + movs r4, #2 + ldrsh r1, [r0, r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x20] + subs r1, #1 + strh r1, [r0, #0x20] + mov r0, ip + movs r4, #4 + ldrsh r1, [r0, r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x20] + subs r1, #1 + strh r1, [r0, #0x20] +_081D63C0: + adds r0, r3, #0 + adds r0, #0x2b + ldrb r3, [r0] + cmp r3, #1 + beq _081D6420 + cmp r3, #1 + bgt _081D63D8 + cmp r3, #0 + beq _081D63E2 + b _081D64A4 + .align 2, 0 +_081D63D4: .4byte 0x020205AC +_081D63D8: + cmp r3, #2 + beq _081D6460 + cmp r3, #3 + beq _081D6420 + b _081D64A4 +_081D63E2: + ldr r2, _081D641C + mov r0, ip + movs r4, #2 + ldrsh r1, [r0, r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r3, [r0, #0x24] + mov r0, ip + movs r4, #2 + ldrsh r1, [r0, r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r3, [r0, #0x26] + mov r0, ip + movs r4, #4 + ldrsh r1, [r0, r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r3, [r0, #0x24] + mov r0, ip + movs r4, #4 + ldrsh r1, [r0, r4] + b _081D649A + .align 2, 0 +_081D641C: .4byte 0x020205AC +_081D6420: + ldr r2, _081D6458 + mov r0, ip + movs r3, #2 + ldrsh r1, [r0, r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, _081D645C + strh r1, [r0, #0x24] + mov r4, ip + movs r0, #2 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r3, #0 + strh r3, [r0, #0x26] + movs r0, #4 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #1 + rsbs r1, r1, #0 + b _081D6494 + .align 2, 0 +_081D6458: .4byte 0x020205AC +_081D645C: .4byte 0x0000FFFF +_081D6460: + ldr r2, _081D64AC + mov r3, ip + movs r4, #2 + ldrsh r1, [r3, r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, _081D64B0 + strh r1, [r0, #0x24] + movs r0, #2 + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r3, #1 + strh r3, [r0, #0x26] + mov r4, ip + movs r0, #4 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, _081D64B4 +_081D6494: + strh r1, [r0, #0x24] + movs r0, #4 + ldrsh r1, [r4, r0] +_081D649A: + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r3, [r0, #0x26] +_081D64A4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D64AC: .4byte 0x020205AC +_081D64B0: .4byte 0x0000FFFF +_081D64B4: .4byte 0x0000FFFE + thumb_func_end sub_081D635C + + thumb_func_start sub_081D64B8 +sub_081D64B8: @ 0x081D64B8 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + ldr r5, _081D6648 + adds r0, r5, #0 + movs r1, #0x88 + movs r2, #0x60 + movs r3, #1 + bl CreateSprite + mov r8, r0 + mov r0, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r6, _081D664C + lsls r4, r0, #4 + add r4, r8 + lsls r4, r4, #2 + adds r0, r6, #0 + adds r0, #0x1c + adds r0, r4, r0 + ldr r1, _081D6650 + str r1, [r0] + adds r0, r6, #0 + adds r0, #0x2e + adds r4, r4, r0 + adds r0, r5, #0 + movs r1, #0xa8 + movs r2, #0x60 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #8 + strh r0, [r4] + adds r0, r5, #0 + movs r1, #0x88 + movs r2, #0x70 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4] + orrs r0, r1 + strh r0, [r4] + adds r0, r5, #0 + movs r1, #0xa8 + movs r2, #0x70 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #8 + strh r0, [r4, #2] + adds r0, r5, #0 + movs r1, #0x88 + movs r2, #0x80 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #2] + orrs r0, r1 + strh r0, [r4, #2] + adds r0, r5, #0 + movs r1, #0xa8 + movs r2, #0x80 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #8 + strh r0, [r4, #4] + adds r0, r5, #0 + movs r1, #0x68 + movs r2, #0x80 + movs r3, #2 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #4] + orrs r0, r1 + strh r0, [r4, #4] + adds r0, r5, #0 + movs r1, #0x88 + movs r2, #0x80 + movs r3, #2 + bl CreateSprite + lsls r0, r0, #8 + strh r0, [r4, #6] + adds r0, r5, #0 + movs r1, #0xb8 + movs r2, #0x80 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #6] + orrs r0, r1 + strh r0, [r4, #6] + ldr r0, _081D6654 + movs r1, #0xd0 + movs r2, #0x84 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #8 + strh r0, [r4, #8] + ldr r0, _081D6658 + movs r1, #0xc8 + movs r2, #0x78 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #8] + orrs r0, r1 + strh r0, [r4, #8] + ldrh r1, [r4] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #1 + bl StartSpriteAnim + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #2 + bl StartSpriteAnim + ldrh r1, [r4, #2] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #3 + bl StartSpriteAnim + ldrb r1, [r4, #2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #4 + bl StartSpriteAnim + ldrh r1, [r4, #4] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #5 + bl StartSpriteAnim + ldrb r1, [r4, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #6 + bl StartSpriteAnim + ldrh r1, [r4, #6] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #7 + bl StartSpriteAnim + ldrb r1, [r4, #6] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #8 + bl StartSpriteAnim + mov r0, r8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_081D6648: .4byte 0x085FBB18 +_081D664C: .4byte 0x020205AC +_081D6650: .4byte 0x081D665D +_081D6654: .4byte 0x085FBB48 +_081D6658: .4byte 0x085FBB60 + thumb_func_end sub_081D64B8 + + thumb_func_start sub_081D665C +sub_081D665C: @ 0x081D665C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r3, r4, #0 + adds r3, #0x2e + ldrh r0, [r3, #0xa] + adds r0, #1 + movs r1, #0x1f + ands r0, r1 + strh r0, [r3, #0xa] + ldr r7, _081D676C + cmp r0, #0 + bne _081D674A + ldrh r1, [r4, #0x20] + movs r2, #0x20 + ldrsh r0, [r4, r2] + cmp r0, #0x98 + beq _081D674A + adds r0, r1, #1 + strh r0, [r4, #0x20] + ldrh r1, [r4, #0x2e] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrh r1, [r0, #0x20] + adds r1, #1 + strh r1, [r0, #0x20] + ldrh r0, [r4, #0x2e] + movs r2, #0xff + adds r1, r2, #0 + ands r1, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrh r1, [r0, #0x20] + adds r1, #1 + strh r1, [r0, #0x20] + ldrh r1, [r3, #2] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrh r1, [r0, #0x20] + adds r1, #1 + strh r1, [r0, #0x20] + ldrh r0, [r3, #2] + adds r1, r2, #0 + ands r1, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrh r1, [r0, #0x20] + adds r1, #1 + strh r1, [r0, #0x20] + ldrh r1, [r3, #4] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrh r1, [r0, #0x20] + adds r1, #1 + strh r1, [r0, #0x20] + ldrh r0, [r3, #4] + adds r1, r2, #0 + ands r1, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrh r1, [r0, #0x20] + adds r1, #1 + strh r1, [r0, #0x20] + ldrh r1, [r3, #6] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrh r1, [r0, #0x20] + adds r1, #1 + strh r1, [r0, #0x20] + ldrh r0, [r3, #6] + adds r1, r2, #0 + ands r1, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrh r1, [r0, #0x20] + adds r1, #1 + strh r1, [r0, #0x20] + ldrh r1, [r3, #8] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrh r1, [r0, #0x20] + adds r1, #1 + strh r1, [r0, #0x20] + ldrh r0, [r3, #8] + ands r2, r0 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrh r1, [r0, #0x20] + adds r1, #1 + strh r1, [r0, #0x20] +_081D674A: + adds r6, r7, #0 + movs r5, #0xff + ldrb r1, [r3, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x2b + ldrb r2, [r0] + cmp r2, #1 + beq _081D681C + cmp r2, #1 + bgt _081D6770 + cmp r2, #0 + beq _081D677C + b _081D6904 + .align 2, 0 +_081D676C: .4byte 0x020205AC +_081D6770: + cmp r2, #2 + bne _081D6776 + b _081D68A4 +_081D6776: + cmp r2, #3 + beq _081D681C + b _081D6904 +_081D677C: + strh r2, [r4, #0x26] + ldrh r1, [r3] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + strh r2, [r0, #0x26] + ldrh r0, [r3] + adds r1, r5, #0 + ands r1, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + strh r2, [r0, #0x26] + ldrh r1, [r3, #2] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + strh r2, [r0, #0x26] + ldrh r0, [r3, #2] + adds r1, r5, #0 + ands r1, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + strh r2, [r0, #0x26] + ldrh r1, [r3, #4] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + strh r2, [r0, #0x26] + ldrh r0, [r3, #4] + adds r1, r5, #0 + ands r1, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + strh r2, [r0, #0x26] + ldrh r1, [r3, #6] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + strh r2, [r0, #0x26] + ldrh r0, [r3, #6] + adds r1, r5, #0 + ands r1, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + strh r2, [r0, #0x26] + ldrh r1, [r3, #8] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + strh r2, [r0, #0x26] + ldrh r1, [r3, #8] + ands r1, r5 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + b _081D6902 +_081D681C: + movs r2, #1 + strh r2, [r4, #0x26] + ldrh r1, [r3] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r2, [r0, #0x26] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r2, [r0, #0x26] + ldrh r1, [r3, #2] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r2, [r0, #0x26] + ldrb r1, [r3, #2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r2, [r0, #0x26] + ldrh r1, [r3, #4] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r2, [r0, #0x26] + ldrb r1, [r3, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r2, [r0, #0x26] + ldrh r1, [r3, #6] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r2, [r0, #0x26] + ldrb r1, [r3, #6] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r2, [r0, #0x26] + ldrh r1, [r3, #8] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r2, [r0, #0x26] + ldrb r1, [r3, #8] + b _081D68FA +_081D68A4: + strh r2, [r4, #0x26] + ldrh r1, [r3] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r2, [r0, #0x26] + ldrh r0, [r3] + adds r1, r5, #0 + ands r1, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r2, [r0, #0x26] + ldrh r1, [r3, #2] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r2, [r0, #0x26] + ldrh r0, [r3, #2] + adds r1, r5, #0 + ands r1, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r2, [r0, #0x26] + ldrh r1, [r3, #4] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r2, [r0, #0x26] + ldrh r1, [r3, #8] + ands r1, r5 +_081D68FA: + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 +_081D6902: + strh r2, [r0, #0x26] +_081D6904: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081D665C + + thumb_func_start VBlankCB_DuoFight +VBlankCB_DuoFight: @ 0x081D690C + push {lr} + bl VBlankCB_RayquazaScene + bl ScanlineEffect_InitHBlankDmaTransfer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end VBlankCB_DuoFight + + thumb_func_start sub_081D691C +sub_081D691C: @ 0x081D691C + push {r4, lr} + bl ResetVramOamAndBgCntRegs + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _081D6998 + movs r0, #0 + movs r2, #3 + bl InitBgsFromTemplates + ldr r4, _081D699C + ldr r1, [r4] + adds r1, #4 + movs r0, #0 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, _081D69A0 + adds r1, r1, r0 + movs r0, #1 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, _081D69A4 + adds r1, r1, r0 + movs r0, #2 + bl SetBgTilemapBuffer + bl ResetAllBgsCoordinates + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D6998: .4byte 0x085FBB84 +_081D699C: .4byte 0x0203CC2C +_081D69A0: .4byte 0x00000804 +_081D69A4: .4byte 0x00001004 + thumb_func_end sub_081D691C + + thumb_func_start sub_081D69A8 +sub_081D69A8: @ 0x081D69A8 + push {r4, lr} + sub sp, #4 + bl reset_temp_tile_data_buffers + ldr r1, _081D6A30 + movs r0, #0 + str r0, [sp] + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram +_081D69BE: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081D69BE + ldr r0, _081D6A34 + ldr r4, _081D6A38 + ldr r1, [r4] + adds r1, #4 + bl LZDecompressVram + ldr r0, _081D6A3C + ldr r1, [r4] + ldr r2, _081D6A40 + adds r1, r1, r2 + bl LZDecompressVram + ldr r0, _081D6A44 + ldr r1, [r4] + ldr r2, _081D6A48 + adds r1, r1, r2 + bl LZDecompressVram + ldr r0, _081D6A4C + movs r1, #0 + movs r2, #0x40 + bl LoadCompressedPalette + ldr r0, _081D6A50 + bl LoadCompressedSpriteSheet + ldr r0, _081D6A54 + bl LoadCompressedSpriteSheet + ldr r0, _081D6A58 + bl LoadCompressedSpriteSheet + ldr r0, _081D6A5C + bl LoadCompressedSpriteSheet + ldr r0, _081D6A60 + bl LoadCompressedSpriteSheet + ldr r0, _081D6A64 + bl LoadCompressedSpriteSheet + ldr r0, _081D6A68 + bl LoadCompressedSpritePalette + ldr r0, _081D6A6C + bl LoadCompressedSpritePalette + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D6A30: .4byte 0x08DA3668 +_081D6A34: .4byte 0x08DA3C30 +_081D6A38: .4byte 0x0203CC2C +_081D6A3C: .4byte 0x08DA3ACC +_081D6A40: .4byte 0x00000804 +_081D6A44: .4byte 0x08DA3D30 +_081D6A48: .4byte 0x00001004 +_081D6A4C: .4byte 0x08DA3A90 +_081D6A50: .4byte 0x085FBBC0 +_081D6A54: .4byte 0x085FBBF4 +_081D6A58: .4byte 0x085FBC20 +_081D6A5C: .4byte 0x085FBCD0 +_081D6A60: .4byte 0x085FBD10 +_081D6A64: .4byte 0x085FBD30 +_081D6A68: .4byte 0x085FBBC8 +_081D6A6C: .4byte 0x085FBCD8 + thumb_func_end sub_081D69A8 + + thumb_func_start Task_DuoFightAnim +Task_DuoFightAnim: @ 0x081D6A70 + push {r4, r5, r6, r7, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r6, r1, #3 + ldr r7, _081D6AE8 + adds r5, r6, r7 + bl ScanlineEffect_Clear + bl sub_081D691C + bl sub_081D69A8 + movs r4, #0 + str r4, [sp, #4] + ldr r1, _081D6AEC + ldr r2, _081D6AF0 + add r0, sp, #4 + bl CpuFastSet + ldr r2, _081D6AF4 + ldr r0, [r2] + ldr r1, [r2, #4] + ldr r2, [r2, #8] + bl ScanlineEffect_SetParams + strh r4, [r5] + ldr r0, _081D6AF8 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #2] + ldr r0, _081D6AFC + ldr r0, [r0] + ldr r1, _081D6B00 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _081D6B08 + bl sub_081D62C0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #4] + bl sub_081D64B8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #6] + adds r0, r7, #0 + subs r0, #8 + adds r0, r6, r0 + ldr r1, _081D6B04 + str r1, [r0] + b _081D6B2A + .align 2, 0 +_081D6AE8: .4byte 0x03005B68 +_081D6AEC: .4byte 0x020388C8 +_081D6AF0: .4byte 0x010003C0 +_081D6AF4: .4byte 0x085FBB78 +_081D6AF8: .4byte 0x081D6B65 +_081D6AFC: .4byte 0x0203CC2C +_081D6B00: .4byte 0x00002006 +_081D6B04: .4byte 0x081D6259 +_081D6B08: + bl sub_081D6FA0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #4] + bl sub_081D71F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #6] + adds r0, r7, #0 + subs r0, #8 + adds r0, r6, r0 + ldr r1, _081D6B5C + str r1, [r0] + bl StopMapMusic +_081D6B2A: + movs r4, #1 + rsbs r4, r4, #0 + adds r0, r4, #0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + movs r0, #0 + str r0, [sp] + adds r0, r4, #0 + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r0, _081D6B60 + bl SetVBlankCallback + movs r0, #0x53 + bl PlaySE + add sp, #8 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D6B5C: .4byte 0x081D6CA9 +_081D6B60: .4byte 0x081D690D + thumb_func_end Task_DuoFightAnim + + thumb_func_start sub_081D6B64 +sub_081D6B64: @ 0x081D6B64 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _081D6B9C + adds r3, r1, r0 + movs r1, #0x18 + ldr r7, _081D6BA0 + ldr r4, _081D6BA4 + movs r0, #0xf0 + lsls r0, r0, #3 + adds r5, r4, r0 +_081D6B80: + lsls r0, r1, #0x10 + asrs r1, r0, #0x10 + adds r6, r0, #0 + cmp r1, #0x2f + bgt _081D6BA8 + lsls r1, r1, #1 + adds r2, r1, r4 + ldrh r0, [r3] + lsrs r0, r0, #8 + strh r0, [r2] + adds r1, r1, r5 + ldrh r0, [r3] + b _081D6C06 + .align 2, 0 +_081D6B9C: .4byte 0x03005B68 +_081D6BA0: .4byte 0x0203CC2C +_081D6BA4: .4byte 0x020388C8 +_081D6BA8: + cmp r1, #0x3f + bgt _081D6BBC + lsls r1, r1, #1 + adds r2, r1, r4 + ldrh r0, [r3, #2] + lsrs r0, r0, #8 + strh r0, [r2] + adds r1, r1, r5 + ldrh r0, [r3, #2] + b _081D6C06 +_081D6BBC: + cmp r1, #0x4b + bgt _081D6BD0 + lsls r1, r1, #1 + adds r2, r1, r4 + ldrh r0, [r3, #4] + lsrs r0, r0, #8 + strh r0, [r2] + adds r1, r1, r5 + ldrh r0, [r3, #4] + b _081D6C06 +_081D6BD0: + cmp r1, #0x53 + bgt _081D6BE4 + lsls r1, r1, #1 + adds r2, r1, r4 + ldrh r0, [r3, #6] + lsrs r0, r0, #8 + strh r0, [r2] + adds r1, r1, r5 + ldrh r0, [r3, #6] + b _081D6C06 +_081D6BE4: + cmp r1, #0x57 + bgt _081D6BF8 + lsls r1, r1, #1 + adds r2, r1, r4 + ldrh r0, [r3, #8] + lsrs r0, r0, #8 + strh r0, [r2] + adds r1, r1, r5 + ldrh r0, [r3, #8] + b _081D6C06 +_081D6BF8: + lsls r1, r1, #1 + adds r2, r1, r4 + ldrh r0, [r3, #0xa] + lsrs r0, r0, #8 + strh r0, [r2] + adds r1, r1, r5 + ldrh r0, [r3, #0xa] +_081D6C06: + lsrs r0, r0, #8 + strh r0, [r1] + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r6, r1 + lsrs r1, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x5b + ble _081D6B80 + ldr r0, [r7] + ldr r1, _081D6C5C + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _081D6C60 + movs r1, #0xe0 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r1, [r3] + adds r0, r0, r1 + strh r0, [r3] + movs r1, #0xc0 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r1, [r3, #2] + adds r0, r0, r1 + strh r0, [r3, #2] + movs r1, #0xa0 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r1, [r3, #4] + adds r0, r0, r1 + strh r0, [r3, #4] + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r1, [r3, #6] + adds r0, r0, r1 + strh r0, [r3, #6] + ldrh r0, [r3, #8] + adds r0, #0xc0 + b _081D6C9A + .align 2, 0 +_081D6C5C: .4byte 0x00002006 +_081D6C60: + movs r1, #0xc0 + lsls r1, r1, #2 + adds r0, r1, #0 + ldrh r1, [r3] + adds r0, r0, r1 + strh r0, [r3] + movs r1, #0xa0 + lsls r1, r1, #2 + adds r0, r1, #0 + ldrh r1, [r3, #2] + adds r0, r0, r1 + strh r0, [r3, #2] + movs r1, #0x80 + lsls r1, r1, #2 + adds r0, r1, #0 + ldrh r1, [r3, #4] + adds r0, r0, r1 + strh r0, [r3, #4] + movs r1, #0xc0 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r1, [r3, #6] + adds r0, r0, r1 + strh r0, [r3, #6] + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r1, [r3, #8] + adds r0, r0, r1 +_081D6C9A: + strh r0, [r3, #8] + ldrh r0, [r3, #0xa] + adds r0, #0x80 + strh r0, [r3, #0xa] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_081D6B64 + + thumb_func_start Task_HandleDuoFight +Task_HandleDuoFight: @ 0x081D6CA8 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r7, _081D6CE0 + adds r4, r0, r7 + bl sub_081D6E48 + ldr r0, _081D6CE4 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + bne _081D6D6A + movs r0, #0 + ldrsh r1, [r4, r0] + cmp r1, #0x20 + beq _081D6CD8 + cmp r1, #0x70 + bne _081D6CE8 +_081D6CD8: + bl sub_081D6D74 + b _081D6D64 + .align 2, 0 +_081D6CE0: .4byte 0x03005B68 +_081D6CE4: .4byte 0x02037C74 +_081D6CE8: + cmp r1, #0xd8 + bne _081D6CF2 + bl sub_081D6DBC + b _081D6D64 +_081D6CF2: + cmp r1, #0xdc + bne _081D6CFC + bl sub_081D6E04 + b _081D6D64 +_081D6CFC: + movs r0, #0xbe + lsls r0, r0, #1 + cmp r1, r0 + beq _081D6D14 + adds r0, #0x20 + cmp r1, r0 + bne _081D6D64 + adds r0, r5, #0 + movs r1, #2 + bl DuoFightEnd + b _081D6D6A +_081D6D14: + movs r1, #0x91 + lsls r1, r1, #2 + movs r0, #0x50 + bl SetGpuReg + adds r2, r7, #0 + subs r2, #8 + movs r0, #2 + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldr r1, _081D6D70 + str r1, [r0] + movs r0, #2 + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + strh r6, [r0, #8] + movs r0, #2 + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrh r1, [r4, #4] + strh r1, [r0, #0xc] + movs r0, #2 + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrh r1, [r4, #6] + strh r1, [r0, #0xe] + bl ScanlineEffect_Stop +_081D6D64: + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] +_081D6D6A: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D6D70: .4byte 0x081D6E69 + thumb_func_end Task_HandleDuoFight + + thumb_func_start sub_081D6D74 +sub_081D6D74: @ 0x081D6D74 + push {r4, lr} + sub sp, #0xc + movs r0, #0x57 + bl PlaySE + ldr r0, _081D6DB0 + ldr r1, _081D6DB4 + str r1, [sp] + movs r4, #0 + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl sub_080A250C + ldr r0, _081D6DB8 + str r4, [sp] + str r4, [sp, #4] + movs r1, #1 + str r1, [sp, #8] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl sub_080A250C + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D6DB0: .4byte 0x00007FFF +_081D6DB4: .4byte 0x0000FFFF +_081D6DB8: .4byte 0xFFFF0000 + thumb_func_end sub_081D6D74 + + thumb_func_start sub_081D6DBC +sub_081D6DBC: @ 0x081D6DBC + push {r4, lr} + sub sp, #0xc + movs r0, #0x57 + bl PlaySE + ldr r0, _081D6DF8 + ldr r1, _081D6DFC + str r1, [sp] + movs r4, #0 + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #0 + movs r2, #0x10 + movs r3, #0x10 + bl sub_080A250C + ldr r0, _081D6E00 + str r4, [sp] + str r4, [sp, #4] + movs r1, #1 + str r1, [sp, #8] + movs r1, #0 + movs r2, #0x10 + movs r3, #0x10 + bl sub_080A250C + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D6DF8: .4byte 0x00007FFF +_081D6DFC: .4byte 0x0000FFFF +_081D6E00: .4byte 0xFFFF0000 + thumb_func_end sub_081D6DBC + + thumb_func_start sub_081D6E04 +sub_081D6E04: @ 0x081D6E04 + push {r4, lr} + sub sp, #0xc + ldr r0, _081D6E3C + ldr r1, _081D6E40 + str r1, [sp] + movs r4, #0 + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #4 + movs r2, #0x10 + movs r3, #0 + bl sub_080A250C + ldr r0, _081D6E44 + str r4, [sp] + str r4, [sp, #4] + movs r1, #1 + str r1, [sp, #8] + movs r1, #4 + movs r2, #0x10 + movs r3, #0 + bl sub_080A250C + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D6E3C: .4byte 0x00007FFF +_081D6E40: .4byte 0x0000FFFF +_081D6E44: .4byte 0xFFFF0000 + thumb_func_end sub_081D6E04 + + thumb_func_start sub_081D6E48 +sub_081D6E48: @ 0x081D6E48 + push {lr} + movs r1, #0x80 + lsls r1, r1, #3 + movs r0, #2 + movs r2, #1 + bl ChangeBgX + movs r1, #0x80 + lsls r1, r1, #4 + movs r0, #2 + movs r2, #2 + bl ChangeBgY + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081D6E48 + + thumb_func_start sub_081D6E68 +sub_081D6E68: @ 0x081D6E68 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _081D6EE8 + adds r5, r1, r0 + movs r0, #4 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _081D6EEC + adds r0, r0, r4 + bl sub_081D719C + movs r0, #6 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl sub_081D7650 + movs r0, #1 + bl GetBgY + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r0, #1 + bl GetBgY + cmp r0, #0 + beq _081D6EB6 + movs r0, #0x80 + lsls r0, r0, #8 + cmp r4, r0 + bls _081D6EC2 +_081D6EB6: + movs r1, #0x80 + lsls r1, r1, #3 + movs r0, #1 + movs r2, #2 + bl ChangeBgY +_081D6EC2: + ldrh r2, [r5] + movs r1, #0 + ldrsh r0, [r5, r1] + cmp r0, #0x10 + beq _081D6EE2 + adds r2, #1 + strh r2, [r5] + lsls r1, r2, #8 + movs r0, #0x10 + subs r0, r0, r2 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg +_081D6EE2: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081D6EE8: .4byte 0x03005B68 +_081D6EEC: .4byte 0x020205AC + thumb_func_end sub_081D6E68 + + thumb_func_start DuoFightEnd +DuoFightEnd: @ 0x081D6EF0 + push {r4, r5, lr} + sub sp, #4 + adds r5, r0, #0 + adds r4, r1, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0x54 + bl PlaySE + movs r0, #1 + rsbs r0, r0, #0 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + movs r1, #0 + str r1, [sp] + adds r1, r4, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _081D6F34 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081D6F38 + str r1, [r0] + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081D6F34: .4byte 0x03005B60 +_081D6F38: .4byte 0x081D6F3D + thumb_func_end DuoFightEnd + + thumb_func_start Task_DuoFightEnd +Task_DuoFightEnd: @ 0x081D6F3C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r6, r1, #3 + ldr r7, _081D6F94 + adds r5, r6, r7 + bl sub_081D6E48 + ldr r0, _081D6F98 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _081D6F8E + ldrb r0, [r5, #2] + bl DestroyTask + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #0 + bl SetVBlankCallback + bl ScanlineEffect_Stop + bl ResetSpriteData + bl FreeAllSpritePalettes + strh r4, [r5] + adds r0, r7, #0 + subs r0, #8 + adds r0, r6, r0 + ldr r1, _081D6F9C + str r1, [r0] +_081D6F8E: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D6F94: .4byte 0x03005B68 +_081D6F98: .4byte 0x02037C74 +_081D6F9C: .4byte 0x081D617D + thumb_func_end Task_DuoFightEnd + + thumb_func_start sub_081D6FA0 +sub_081D6FA0: @ 0x081D6FA0 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + ldr r0, _081D7028 + mov r8, r0 + movs r1, #0x62 + movs r2, #0x48 + movs r3, #3 + bl CreateSprite + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r6, _081D702C + lsls r4, r5, #4 + adds r4, r4, r5 + lsls r4, r4, #2 + adds r0, r6, #0 + adds r0, #0x1c + adds r0, r4, r0 + ldr r1, _081D7030 + str r1, [r0] + adds r0, r6, #0 + adds r0, #0x2e + adds r4, r4, r0 + mov r0, r8 + movs r1, #0x42 + movs r2, #0x68 + movs r3, #3 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + ldr r0, _081D7034 + movs r1, #0x55 + movs r2, #0x65 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #2] + ldr r0, _081D7038 + movs r1, #0x77 + movs r2, #0x72 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #4] + movs r0, #0 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #1 + bl StartSpriteAnim + adds r0, r5, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_081D7028: .4byte 0x085FBBD0 +_081D702C: .4byte 0x020205AC +_081D7030: .4byte 0x081D703D +_081D7034: .4byte 0x085FBBFC +_081D7038: .4byte 0x085FBC28 + thumb_func_end sub_081D6FA0 + + thumb_func_start sub_081D703C +sub_081D703C: @ 0x081D703C + push {r4, lr} + adds r3, r0, #0 + movs r0, #0x2e + adds r0, r0, r3 + mov ip, r0 + ldrh r0, [r0, #0xa] + adds r0, #1 + movs r1, #0xf + ands r0, r1 + mov r1, ip + strh r0, [r1, #0xa] + movs r1, #7 + ands r1, r0 + cmp r1, #0 + bne _081D70A4 + ldrh r1, [r3, #0x20] + movs r2, #0x20 + ldrsh r0, [r3, r2] + cmp r0, #0x48 + beq _081D70A4 + subs r0, r1, #1 + strh r0, [r3, #0x20] + ldr r2, _081D70B8 + movs r4, #0x2e + ldrsh r1, [r3, r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x20] + subs r1, #1 + strh r1, [r0, #0x20] + mov r0, ip + movs r4, #2 + ldrsh r1, [r0, r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x20] + subs r1, #1 + strh r1, [r0, #0x20] + mov r0, ip + movs r4, #4 + ldrsh r1, [r0, r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x20] + subs r1, #1 + strh r1, [r0, #0x20] +_081D70A4: + adds r0, r3, #0 + adds r0, #0x2b + ldrb r3, [r0] + cmp r3, #1 + beq _081D7104 + cmp r3, #1 + bgt _081D70BC + cmp r3, #0 + beq _081D70C6 + b _081D7188 + .align 2, 0 +_081D70B8: .4byte 0x020205AC +_081D70BC: + cmp r3, #2 + beq _081D7144 + cmp r3, #3 + beq _081D7104 + b _081D7188 +_081D70C6: + ldr r2, _081D7100 + mov r0, ip + movs r4, #2 + ldrsh r1, [r0, r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r3, [r0, #0x24] + mov r0, ip + movs r4, #2 + ldrsh r1, [r0, r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r3, [r0, #0x26] + mov r0, ip + movs r4, #4 + ldrsh r1, [r0, r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r3, [r0, #0x24] + mov r0, ip + movs r4, #4 + ldrsh r1, [r0, r4] + b _081D717E + .align 2, 0 +_081D7100: .4byte 0x020205AC +_081D7104: + ldr r2, _081D713C + mov r0, ip + movs r3, #2 + ldrsh r1, [r0, r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, _081D7140 + strh r1, [r0, #0x24] + mov r4, ip + movs r0, #2 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r3, #0 + strh r3, [r0, #0x26] + movs r0, #4 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #1 + rsbs r1, r1, #0 + b _081D7178 + .align 2, 0 +_081D713C: .4byte 0x020205AC +_081D7140: .4byte 0x0000FFFF +_081D7144: + ldr r2, _081D7190 + mov r3, ip + movs r4, #2 + ldrsh r1, [r3, r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, _081D7194 + strh r1, [r0, #0x24] + movs r0, #2 + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r3, #1 + strh r3, [r0, #0x26] + mov r4, ip + movs r0, #4 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, _081D7198 +_081D7178: + strh r1, [r0, #0x24] + movs r0, #4 + ldrsh r1, [r4, r0] +_081D717E: + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r3, [r0, #0x26] +_081D7188: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D7190: .4byte 0x020205AC +_081D7194: .4byte 0x0000FFFF +_081D7198: .4byte 0x0000FFFE + thumb_func_end sub_081D703C + + thumb_func_start sub_081D719C +sub_081D719C: @ 0x081D719C + push {r4, lr} + adds r1, r0, #0 + adds r3, r1, #0 + adds r3, #0x2e + ldrh r2, [r1, #0x22] + movs r4, #0x22 + ldrsh r0, [r1, r4] + cmp r0, #0xa0 + bgt _081D71EC + adds r0, r2, #0 + adds r0, #8 + strh r0, [r1, #0x22] + ldr r2, _081D71F4 + movs r0, #0x2e + ldrsh r1, [r1, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x22] + adds r1, #8 + strh r1, [r0, #0x22] + movs r4, #2 + ldrsh r1, [r3, r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x22] + adds r1, #8 + strh r1, [r0, #0x22] + movs r0, #4 + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x22] + adds r1, #8 + strh r1, [r0, #0x22] +_081D71EC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D71F4: .4byte 0x020205AC + thumb_func_end sub_081D719C + + thumb_func_start sub_081D71F8 +sub_081D71F8: @ 0x081D71F8 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + ldr r5, _081D7388 + adds r0, r5, #0 + movs r1, #0x7e + movs r2, #0x60 + movs r3, #1 + bl CreateSprite + mov r8, r0 + mov r0, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r6, _081D738C + lsls r4, r0, #4 + add r4, r8 + lsls r4, r4, #2 + adds r0, r6, #0 + adds r0, #0x1c + adds r0, r4, r0 + ldr r1, _081D7390 + str r1, [r0] + adds r0, r6, #0 + adds r0, #0x2e + adds r4, r4, r0 + adds r0, r5, #0 + movs r1, #0x9e + movs r2, #0x60 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #8 + strh r0, [r4] + adds r0, r5, #0 + movs r1, #0x7e + movs r2, #0x70 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4] + orrs r0, r1 + strh r0, [r4] + adds r0, r5, #0 + movs r1, #0x9e + movs r2, #0x70 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #8 + strh r0, [r4, #2] + adds r0, r5, #0 + movs r1, #0x7e + movs r2, #0x80 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #2] + orrs r0, r1 + strh r0, [r4, #2] + adds r0, r5, #0 + movs r1, #0x9e + movs r2, #0x80 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #8 + strh r0, [r4, #4] + adds r0, r5, #0 + movs r1, #0x5e + movs r2, #0x80 + movs r3, #2 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #4] + orrs r0, r1 + strh r0, [r4, #4] + adds r0, r5, #0 + movs r1, #0x7e + movs r2, #0x80 + movs r3, #2 + bl CreateSprite + lsls r0, r0, #8 + strh r0, [r4, #6] + adds r0, r5, #0 + movs r1, #0xae + movs r2, #0x80 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #6] + orrs r0, r1 + strh r0, [r4, #6] + ldr r0, _081D7394 + movs r1, #0xc6 + movs r2, #0x84 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #8 + strh r0, [r4, #8] + ldr r0, _081D7398 + movs r1, #0xbe + movs r2, #0x78 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #8] + orrs r0, r1 + strh r0, [r4, #8] + ldrh r1, [r4] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #1 + bl StartSpriteAnim + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #2 + bl StartSpriteAnim + ldrh r1, [r4, #2] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #3 + bl StartSpriteAnim + ldrb r1, [r4, #2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #4 + bl StartSpriteAnim + ldrh r1, [r4, #4] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #5 + bl StartSpriteAnim + ldrb r1, [r4, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #6 + bl StartSpriteAnim + ldrh r1, [r4, #6] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #7 + bl StartSpriteAnim + ldrb r1, [r4, #6] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + movs r1, #8 + bl StartSpriteAnim + mov r0, r8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_081D7388: .4byte 0x085FBCE0 +_081D738C: .4byte 0x020205AC +_081D7390: .4byte 0x081D739D +_081D7394: .4byte 0x085FBD18 +_081D7398: .4byte 0x085FBD38 + thumb_func_end sub_081D71F8 + + thumb_func_start sub_081D739C +sub_081D739C: @ 0x081D739C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r3, r4, #0 + adds r3, #0x2e + ldrh r0, [r3, #0xa] + adds r0, #1 + movs r1, #0xf + ands r0, r1 + strh r0, [r3, #0xa] + movs r1, #7 + ands r1, r0 + ldr r7, _081D74B0 + cmp r1, #0 + bne _081D748E + ldrh r1, [r4, #0x20] + movs r2, #0x20 + ldrsh r0, [r4, r2] + cmp r0, #0x98 + beq _081D748E + adds r0, r1, #1 + strh r0, [r4, #0x20] + ldrh r1, [r4, #0x2e] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrh r1, [r0, #0x20] + adds r1, #1 + strh r1, [r0, #0x20] + ldrh r0, [r4, #0x2e] + movs r2, #0xff + adds r1, r2, #0 + ands r1, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrh r1, [r0, #0x20] + adds r1, #1 + strh r1, [r0, #0x20] + ldrh r1, [r3, #2] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrh r1, [r0, #0x20] + adds r1, #1 + strh r1, [r0, #0x20] + ldrh r0, [r3, #2] + adds r1, r2, #0 + ands r1, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrh r1, [r0, #0x20] + adds r1, #1 + strh r1, [r0, #0x20] + ldrh r1, [r3, #4] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrh r1, [r0, #0x20] + adds r1, #1 + strh r1, [r0, #0x20] + ldrh r0, [r3, #4] + adds r1, r2, #0 + ands r1, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrh r1, [r0, #0x20] + adds r1, #1 + strh r1, [r0, #0x20] + ldrh r1, [r3, #6] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrh r1, [r0, #0x20] + adds r1, #1 + strh r1, [r0, #0x20] + ldrh r0, [r3, #6] + adds r1, r2, #0 + ands r1, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrh r1, [r0, #0x20] + adds r1, #1 + strh r1, [r0, #0x20] + ldrh r1, [r3, #8] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrh r1, [r0, #0x20] + adds r1, #1 + strh r1, [r0, #0x20] + ldrh r0, [r3, #8] + ands r2, r0 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r7 + ldrh r1, [r0, #0x20] + adds r1, #1 + strh r1, [r0, #0x20] +_081D748E: + adds r6, r7, #0 + movs r5, #0xff + ldrb r1, [r3, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x2b + ldrb r2, [r0] + cmp r2, #1 + beq _081D7560 + cmp r2, #1 + bgt _081D74B4 + cmp r2, #0 + beq _081D74C0 + b _081D7648 + .align 2, 0 +_081D74B0: .4byte 0x020205AC +_081D74B4: + cmp r2, #2 + bne _081D74BA + b _081D75E8 +_081D74BA: + cmp r2, #3 + beq _081D7560 + b _081D7648 +_081D74C0: + strh r2, [r4, #0x26] + ldrh r1, [r3] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + strh r2, [r0, #0x26] + ldrh r0, [r3] + adds r1, r5, #0 + ands r1, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + strh r2, [r0, #0x26] + ldrh r1, [r3, #2] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + strh r2, [r0, #0x26] + ldrh r0, [r3, #2] + adds r1, r5, #0 + ands r1, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + strh r2, [r0, #0x26] + ldrh r1, [r3, #4] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + strh r2, [r0, #0x26] + ldrh r0, [r3, #4] + adds r1, r5, #0 + ands r1, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + strh r2, [r0, #0x26] + ldrh r1, [r3, #6] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + strh r2, [r0, #0x26] + ldrh r0, [r3, #6] + adds r1, r5, #0 + ands r1, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + strh r2, [r0, #0x26] + ldrh r1, [r3, #8] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + strh r2, [r0, #0x26] + ldrh r1, [r3, #8] + ands r1, r5 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + b _081D7646 +_081D7560: + movs r2, #1 + strh r2, [r4, #0x26] + ldrh r1, [r3] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r2, [r0, #0x26] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r2, [r0, #0x26] + ldrh r1, [r3, #2] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r2, [r0, #0x26] + ldrb r1, [r3, #2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r2, [r0, #0x26] + ldrh r1, [r3, #4] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r2, [r0, #0x26] + ldrb r1, [r3, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r2, [r0, #0x26] + ldrh r1, [r3, #6] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r2, [r0, #0x26] + ldrb r1, [r3, #6] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r2, [r0, #0x26] + ldrh r1, [r3, #8] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r2, [r0, #0x26] + ldrb r1, [r3, #8] + b _081D763E +_081D75E8: + strh r2, [r4, #0x26] + ldrh r1, [r3] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r2, [r0, #0x26] + ldrh r0, [r3] + adds r1, r5, #0 + ands r1, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r2, [r0, #0x26] + ldrh r1, [r3, #2] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r2, [r0, #0x26] + ldrh r0, [r3, #2] + adds r1, r5, #0 + ands r1, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r2, [r0, #0x26] + ldrh r1, [r3, #4] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + strh r2, [r0, #0x26] + ldrh r1, [r3, #8] + ands r1, r5 +_081D763E: + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 +_081D7646: + strh r2, [r0, #0x26] +_081D7648: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081D739C + + thumb_func_start sub_081D7650 +sub_081D7650: @ 0x081D7650 + push {lr} + adds r2, r0, #0 + movs r0, #0x2e + adds r0, r0, r2 + mov ip, r0 + ldrh r1, [r2, #0x22] + movs r3, #0x22 + ldrsh r0, [r2, r3] + cmp r0, #0xa0 + bgt _081D7744 + adds r0, r1, #0 + adds r0, #8 + strh r0, [r2, #0x22] + ldr r3, _081D7748 + ldrh r1, [r2, #0x2e] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r0, #0x22] + adds r1, #8 + strh r1, [r0, #0x22] + ldrh r0, [r2, #0x2e] + movs r2, #0xff + adds r1, r2, #0 + ands r1, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r0, #0x22] + adds r1, #8 + strh r1, [r0, #0x22] + mov r0, ip + ldrh r1, [r0, #2] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r0, #0x22] + adds r1, #8 + strh r1, [r0, #0x22] + mov r1, ip + ldrh r0, [r1, #2] + adds r1, r2, #0 + ands r1, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r0, #0x22] + adds r1, #8 + strh r1, [r0, #0x22] + mov r0, ip + ldrh r1, [r0, #4] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r0, #0x22] + adds r1, #8 + strh r1, [r0, #0x22] + mov r1, ip + ldrh r0, [r1, #4] + adds r1, r2, #0 + ands r1, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r0, #0x22] + adds r1, #8 + strh r1, [r0, #0x22] + mov r0, ip + ldrh r1, [r0, #6] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r0, #0x22] + adds r1, #8 + strh r1, [r0, #0x22] + mov r1, ip + ldrh r0, [r1, #6] + adds r1, r2, #0 + ands r1, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r0, #0x22] + adds r1, #8 + strh r1, [r0, #0x22] + mov r0, ip + ldrh r1, [r0, #8] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r0, #0x22] + adds r1, #8 + strh r1, [r0, #0x22] + mov r1, ip + ldrh r0, [r1, #8] + ands r2, r0 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r0, #0x22] + adds r1, #8 + strh r1, [r0, #0x22] +_081D7744: + pop {r0} + bx r0 + .align 2, 0 +_081D7748: .4byte 0x020205AC + thumb_func_end sub_081D7650 + + thumb_func_start sub_081D774C +sub_081D774C: @ 0x081D774C + push {r4, lr} + bl ResetVramOamAndBgCntRegs + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _081D77C8 + movs r0, #1 + movs r2, #3 + bl InitBgsFromTemplates + ldr r4, _081D77CC + ldr r1, [r4] + adds r1, #4 + movs r0, #0 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, _081D77D0 + adds r1, r1, r0 + movs r0, #1 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, _081D77D4 + adds r1, r1, r0 + movs r0, #2 + bl SetBgTilemapBuffer + bl ResetAllBgsCoordinates + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D77C8: .4byte 0x085FBD50 +_081D77CC: .4byte 0x0203CC2C +_081D77D0: .4byte 0x00000804 +_081D77D4: .4byte 0x00001004 + thumb_func_end sub_081D774C + + thumb_func_start sub_081D77D8 +sub_081D77D8: @ 0x081D77D8 + push {r4, lr} + sub sp, #4 + bl reset_temp_tile_data_buffers + ldr r1, _081D7858 + movs r4, #0 + str r4, [sp] + movs r0, #0 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, _081D785C + str r4, [sp] + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, _081D7860 + str r4, [sp] + movs r0, #2 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram +_081D780C: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081D780C + ldr r0, _081D7864 + ldr r4, _081D7868 + ldr r1, [r4] + adds r1, #4 + bl LZDecompressVram + ldr r0, _081D786C + ldr r1, [r4] + ldr r2, _081D7870 + adds r1, r1, r2 + bl LZDecompressVram + ldr r0, _081D7874 + ldr r1, [r4] + ldr r2, _081D7878 + adds r1, r1, r2 + bl LZDecompressVram + ldr r0, _081D787C + movs r1, #0 + movs r2, #0x40 + bl LoadCompressedPalette + ldr r0, _081D7880 + bl LoadCompressedSpriteSheet + ldr r0, _081D7884 + bl LoadCompressedSpritePalette + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D7858: .4byte 0x08DA3668 +_081D785C: .4byte 0x08DA5218 +_081D7860: .4byte 0x08DA3F3C +_081D7864: .4byte 0x08DA3C30 +_081D7868: .4byte 0x0203CC2C +_081D786C: .4byte 0x08DA6360 +_081D7870: .4byte 0x00000804 +_081D7874: .4byte 0x08DA5094 +_081D7878: .4byte 0x00001004 +_081D787C: .4byte 0x08DA5050 +_081D7880: .4byte 0x085FBD8C +_081D7884: .4byte 0x085FBD94 + thumb_func_end sub_081D77D8 + + thumb_func_start Task_RayTakesFlightAnim +Task_RayTakesFlightAnim: @ 0x081D7888 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r5, _081D78E8 + adds r6, r4, r5 + movs r0, #0xe8 + lsls r0, r0, #1 + bl PlayNewMapMusic + bl sub_081D774C + bl sub_081D77D8 + movs r1, #0x94 + lsls r1, r1, #2 + movs r0, #0x50 + bl SetGpuReg + ldr r1, _081D78EC + movs r0, #0x52 + bl SetGpuReg + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + ldr r0, _081D78F0 + bl SetVBlankCallback + ldr r0, _081D78F4 + movs r1, #0 + bl CreateTask + movs r0, #0 + strh r0, [r6] + strh r0, [r6, #2] + subs r5, #8 + adds r4, r4, r5 + ldr r0, _081D78F8 + str r0, [r4] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081D78E8: .4byte 0x03005B68 +_081D78EC: .4byte 0x00000808 +_081D78F0: .4byte 0x081D6129 +_081D78F4: .4byte 0x081D7AE1 +_081D78F8: .4byte 0x081D78FD + thumb_func_end Task_RayTakesFlightAnim + + thumb_func_start Task_HandleRayTakesFlight +Task_HandleRayTakesFlight: @ 0x081D78FC + push {r4, r5, r6, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _081D7920 + adds r4, r0, r1 + movs r0, #0 + ldrsh r5, [r4, r0] + cmp r5, #1 + beq _081D7966 + cmp r5, #1 + bgt _081D7924 + cmp r5, #0 + beq _081D7930 + b _081D7A96 + .align 2, 0 +_081D7920: .4byte 0x03005B68 +_081D7924: + cmp r5, #2 + beq _081D79E0 + cmp r5, #3 + bne _081D792E + b _081D7A60 +_081D792E: + b _081D7A96 +_081D7930: + ldrh r1, [r4, #2] + movs r2, #2 + ldrsh r0, [r4, r2] + cmp r0, #8 + bne _081D7960 + movs r0, #1 + rsbs r0, r0, #0 + str r5, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + strh r5, [r4, #4] + movs r0, #0x1e + strh r0, [r4, #6] + strh r5, [r4, #8] + movs r0, #7 + strh r0, [r4, #0xa] + strh r5, [r4, #2] + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + b _081D7A96 +_081D7960: + adds r0, r1, #1 + strh r0, [r4, #2] + b _081D7A96 +_081D7966: + ldrh r1, [r4, #6] + ldrh r3, [r4, #4] + adds r0, r1, r3 + strh r0, [r4, #4] + ldrh r2, [r4, #0xa] + ldrh r3, [r4, #8] + adds r0, r2, r3 + strh r0, [r4, #8] + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + ble _081D7982 + subs r0, r1, #3 + strh r0, [r4, #6] +_081D7982: + lsls r0, r2, #0x10 + cmp r0, #0 + beq _081D798C + subs r0, r2, #1 + strh r0, [r4, #0xa] +_081D798C: + movs r1, #4 + ldrsh r0, [r4, r1] + cmp r0, #0xff + ble _081D79B4 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r2, #0 + strh r0, [r4, #4] + movs r1, #0 + strh r1, [r4, #6] + movs r0, #0xc + strh r0, [r4, #0xc] + movs r3, #1 + rsbs r3, r3, #0 + adds r0, r3, #0 + strh r0, [r4, #0xe] + strh r1, [r4, #2] + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] +_081D79B4: + movs r1, #0xf0 + lsls r1, r1, #7 + movs r2, #0xc0 + lsls r2, r2, #5 + ldrh r0, [r4, #8] + adds r0, #0x20 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + str r0, [sp] + movs r3, #4 + ldrsh r0, [r4, r3] + str r0, [sp, #4] + movs r3, #4 + ldrsh r0, [r4, r3] + str r0, [sp, #8] + movs r0, #0 + str r0, [sp, #0xc] + movs r0, #2 + movs r3, #0x78 + bl SetBgAffine + b _081D7A96 +_081D79E0: + ldrh r0, [r4, #2] + adds r0, #1 + strh r0, [r4, #2] + movs r1, #0xf0 + lsls r1, r1, #7 + movs r2, #0xc0 + lsls r2, r2, #5 + ldrh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x12 + adds r0, #0x20 + ldrh r3, [r4, #8] + adds r0, r0, r3 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + str r0, [sp] + movs r3, #4 + ldrsh r0, [r4, r3] + str r0, [sp, #4] + movs r3, #4 + ldrsh r0, [r4, r3] + str r0, [sp, #8] + movs r5, #0 + str r5, [sp, #0xc] + movs r0, #2 + movs r3, #0x78 + bl SetBgAffine + ldrh r0, [r4, #0xe] + ldrh r1, [r4, #0xc] + adds r0, r0, r1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + cmp r1, #0xc + beq _081D7A30 + movs r0, #0xc + rsbs r0, r0, #0 + cmp r1, r0 + bne _081D7A96 +_081D7A30: + movs r2, #0xe + ldrsh r0, [r4, r2] + rsbs r0, r0, #0 + strh r0, [r4, #0xe] + movs r3, #2 + ldrsh r1, [r4, r3] + ldr r0, _081D7A5C + cmp r1, r0 + ble _081D7A96 + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + movs r0, #1 + rsbs r0, r0, #0 + str r5, [sp] + movs r1, #6 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + b _081D7A96 + .align 2, 0 +_081D7A5C: .4byte 0x00000127 +_081D7A60: + ldrh r0, [r4, #4] + adds r0, #0x10 + strh r0, [r4, #4] + movs r1, #0xf0 + lsls r1, r1, #7 + movs r2, #0xc0 + lsls r2, r2, #5 + ldrh r0, [r4, #8] + adds r0, #0x20 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + str r0, [sp] + movs r3, #4 + ldrsh r0, [r4, r3] + str r0, [sp, #4] + movs r3, #4 + ldrsh r0, [r4, r3] + str r0, [sp, #8] + movs r0, #0 + str r0, [sp, #0xc] + movs r0, #2 + movs r3, #0x78 + bl SetBgAffine + adds r0, r6, #0 + bl Task_RayTakesFlightEnd +_081D7A96: + add sp, #0x10 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Task_HandleRayTakesFlight + + thumb_func_start Task_RayTakesFlightEnd +Task_RayTakesFlightEnd: @ 0x081D7AA0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _081D7AD4 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081D7ACE + movs r0, #0 + bl SetVBlankCallback + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r0, _081D7AD8 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081D7ADC + str r0, [r1] +_081D7ACE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D7AD4: .4byte 0x02037C74 +_081D7AD8: .4byte 0x03005B60 +_081D7ADC: .4byte 0x081D617D + thumb_func_end Task_RayTakesFlightEnd + + thumb_func_start sub_081D7AE0 +sub_081D7AE0: @ 0x081D7AE0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _081D7B7C + adds r4, r0, r1 + ldrh r1, [r4, #2] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _081D7B90 + ldr r0, _081D7B80 + ldr r3, _081D7B84 + movs r1, #0 + ldrsh r2, [r4, r1] + lsls r2, r2, #1 + adds r1, r2, r3 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + lsls r1, r1, #0x12 + movs r6, #0xf0 + lsls r6, r6, #0xf + adds r1, r1, r6 + asrs r1, r1, #0x10 + adds r3, #1 + adds r2, r2, r3 + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + lsls r2, r2, #0x12 + movs r3, #0xa0 + lsls r3, r3, #0xf + adds r2, r2, r3 + asrs r2, r2, #0x10 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081D7B88 + lsls r3, r0, #4 + adds r3, r3, r0 + lsls r3, r3, #2 + adds r3, r3, r1 + movs r0, #0 + ldrsb r0, [r4, r0] + strh r0, [r3, #0x2e] + ldrb r2, [r3, #1] + movs r1, #0xd + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + movs r2, #4 + orrs r0, r2 + movs r2, #3 + orrs r0, r2 + strb r0, [r3, #1] + ldrb r0, [r3, #5] + ands r1, r0 + movs r0, #8 + orrs r1, r0 + strb r1, [r3, #5] + adds r0, r3, #0 + bl InitSpriteAffineAnim + ldrh r1, [r4] + movs r6, #0 + ldrsh r0, [r4, r6] + cmp r0, #9 + bne _081D7B8C + adds r0, r5, #0 + bl DestroyTask + b _081D7B96 + .align 2, 0 +_081D7B7C: .4byte 0x03005B68 +_081D7B80: .4byte 0x085FBD9C +_081D7B84: .4byte 0x085FBDB4 +_081D7B88: .4byte 0x020205AC +_081D7B8C: + adds r0, r1, #1 + strh r0, [r4] +_081D7B90: + ldrh r0, [r4, #2] + adds r0, #1 + strh r0, [r4, #2] +_081D7B96: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_081D7AE0 + + thumb_func_start sub_081D7B9C +sub_081D7B9C: @ 0x081D7B9C + push {lr} + adds r2, r0, #0 + movs r1, #0x30 + ldrsh r0, [r2, r1] + cmp r0, #0 + bne _081D7BAC + strh r0, [r2, #0x24] + b _081D7BD6 +_081D7BAC: + ldr r1, _081D7BE8 + movs r3, #0x2e + ldrsh r0, [r2, r3] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r3, [r2, #0x24] + adds r0, r0, r3 + strh r0, [r2, #0x24] + movs r3, #0x2e + ldrsh r0, [r2, r3] + lsls r0, r0, #1 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r2, #0x26] + adds r0, r0, r1 +_081D7BD6: + strh r0, [r2, #0x26] + ldrh r0, [r2, #0x30] + adds r0, #1 + movs r1, #0xf + ands r0, r1 + strh r0, [r2, #0x30] + pop {r0} + bx r0 + .align 2, 0 +_081D7BE8: .4byte 0x085FBDB4 + thumb_func_end sub_081D7B9C + + thumb_func_start sub_081D7BEC +sub_081D7BEC: @ 0x081D7BEC + push {r4, lr} + bl ResetVramOamAndBgCntRegs + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _081D7C80 + movs r0, #0 + movs r2, #4 + bl InitBgsFromTemplates + ldr r4, _081D7C84 + ldr r1, [r4] + adds r1, #4 + movs r0, #0 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, _081D7C88 + adds r1, r1, r0 + movs r0, #1 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, _081D7C8C + adds r1, r1, r0 + movs r0, #2 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, _081D7C90 + adds r1, r1, r0 + movs r0, #3 + bl SetBgTilemapBuffer + bl ResetAllBgsCoordinates + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #3 + bl schedule_bg_copy_tilemap_to_vram + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D7C80: .4byte 0x085FBDC8 +_081D7C84: .4byte 0x0203CC2C +_081D7C88: .4byte 0x00000804 +_081D7C8C: .4byte 0x00001004 +_081D7C90: .4byte 0x00001804 + thumb_func_end sub_081D7BEC + + thumb_func_start sub_081D7C94 +sub_081D7C94: @ 0x081D7C94 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + bl reset_temp_tile_data_buffers + ldr r1, _081D7D40 + movs r4, #0 + str r4, [sp] + movs r0, #0 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, _081D7D44 + str r4, [sp] + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + add r7, sp, #8 +_081D7CBC: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + bne _081D7CBC + ldr r0, _081D7D48 + ldr r5, _081D7D4C + ldr r1, [r5] + adds r1, #4 + bl LZDecompressVram + ldr r0, _081D7D50 + ldr r1, [r5] + ldr r4, _081D7D54 + adds r1, r1, r4 + bl LZDecompressVram + str r6, [sp, #4] + ldr r1, [r5] + ldr r0, _081D7D58 + adds r1, r1, r0 + ldr r2, _081D7D5C + add r0, sp, #4 + bl CpuFastSet + ldr r1, [r5] + adds r4, r1, r4 + ldr r0, _081D7D60 + adds r1, r1, r0 + movs r2, #0x80 + lsls r2, r2, #2 + adds r0, r4, #0 + bl CpuFastSet + str r6, [sp, #8] + ldr r1, [r5] + ldr r0, _081D7D64 + adds r1, r1, r0 + ldr r2, _081D7D68 + adds r0, r7, #0 + bl CpuFastSet + ldr r0, _081D7D6C + movs r1, #0 + movs r2, #0x40 + bl LoadCompressedPalette + ldr r0, _081D7D70 + ldr r1, _081D7D74 + strh r1, [r0] + ldr r0, _081D7D78 + strh r1, [r0] + ldr r0, _081D7D7C + bl LoadCompressedSpriteSheet + ldr r0, _081D7D80 + bl LoadCompressedSpriteSheet + ldr r0, _081D7D84 + bl LoadCompressedSpritePalette + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D7D40: .4byte 0x08DA77D0 +_081D7D44: .4byte 0x08DA6C64 +_081D7D48: .4byte 0x08DA7D54 +_081D7D4C: .4byte 0x0203CC2C +_081D7D50: .4byte 0x08DA7A2C +_081D7D54: .4byte 0x00001804 +_081D7D58: .4byte 0x00001004 +_081D7D5C: .4byte 0x01000200 +_081D7D60: .4byte 0x00000804 +_081D7D64: .4byte 0x00000904 +_081D7D68: .4byte 0x010000D0 +_081D7D6C: .4byte 0x08DA79EC +_081D7D70: .4byte 0x020373B4 +_081D7D74: .4byte 0x00007FFF +_081D7D78: .4byte 0x020377B4 +_081D7D7C: .4byte 0x085FBDF8 +_081D7D80: .4byte 0x085FBE00 +_081D7D84: .4byte 0x085FBE08 + thumb_func_end sub_081D7C94 + + thumb_func_start sub_081D7D88 +sub_081D7D88: @ 0x081D7D88 + push {r4, r5, lr} + movs r0, #6 + bl GetGpuReg + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + adds r1, r2, #0 + subs r1, #0x18 + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x6f + bhi _081D7DC8 + ldr r0, _081D7DB8 + ldr r0, [r0] + ldr r3, _081D7DBC + adds r0, r0, r3 + movs r3, #0 + ldrsh r0, [r0, r3] + cmp r1, r0 + bgt _081D7DC8 + ldr r1, _081D7DC0 + ldr r3, _081D7DC4 + b _081D7DCE + .align 2, 0 +_081D7DB8: .4byte 0x0203CC2C +_081D7DBC: .4byte 0x00002008 +_081D7DC0: .4byte 0x04000052 +_081D7DC4: .4byte 0x00000D08 +_081D7DC8: + ldr r1, _081D7DF4 + movs r3, #0x80 + lsls r3, r3, #5 +_081D7DCE: + adds r0, r3, #0 + strh r0, [r1] + cmp r2, #0 + bne _081D7E1C + ldr r0, _081D7DF8 + ldr r1, [r0] + ldr r2, _081D7DFC + adds r3, r1, r2 + ldrh r4, [r3] + movs r1, #0 + ldrsh r2, [r3, r1] + ldr r1, _081D7E00 + adds r5, r0, #0 + cmp r2, r1 + bgt _081D7E10 + cmp r2, #0x27 + bgt _081D7E04 + adds r0, r4, #4 + b _081D7E0E + .align 2, 0 +_081D7DF4: .4byte 0x04000052 +_081D7DF8: .4byte 0x0203CC2C +_081D7DFC: .4byte 0x00002008 +_081D7E00: .4byte 0x00001FFF +_081D7E04: + cmp r2, #0x4f + bgt _081D7E0C + adds r0, r4, #2 + b _081D7E0E +_081D7E0C: + adds r0, r4, #1 +_081D7E0E: + strh r0, [r3] +_081D7E10: + ldr r1, [r5] + ldr r2, _081D7E24 + adds r1, r1, r2 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_081D7E1C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081D7E24: .4byte 0x0000200A + thumb_func_end sub_081D7D88 + + thumb_func_start Task_RayDescendsAnim +Task_RayDescendsAnim: @ 0x081D7E28 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r6, _081D7E9C + adds r5, r4, r6 + bl sub_081D7BEC + bl sub_081D7C94 + ldr r1, _081D7EA0 + movs r0, #0x50 + bl SetGpuRegBits + movs r0, #0x80 + lsls r0, r0, #5 + mov r8, r0 + movs r0, #0x52 + mov r1, r8 + bl SetGpuReg + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + ldr r0, _081D7EA4 + bl SetVBlankCallback + ldr r0, _081D7EA8 + ldr r0, [r0] + ldr r1, _081D7EAC + adds r2, r0, r1 + movs r1, #0 + strh r1, [r2] + ldr r2, _081D7EB0 + adds r0, r0, r2 + strh r1, [r0] + strh r1, [r5] + strh r1, [r5, #2] + strh r1, [r5, #4] + strh r1, [r5, #6] + mov r0, r8 + strh r0, [r5, #8] + subs r6, #8 + adds r4, r4, r6 + ldr r0, _081D7EB4 + str r0, [r4] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081D7E9C: .4byte 0x03005B68 +_081D7EA0: .4byte 0x00001E41 +_081D7EA4: .4byte 0x081D6129 +_081D7EA8: .4byte 0x0203CC2C +_081D7EAC: .4byte 0x00002008 +_081D7EB0: .4byte 0x0000200A +_081D7EB4: .4byte 0x081D7EB9 + thumb_func_end Task_RayDescendsAnim + + thumb_func_start Task_HandleRayDescends +Task_HandleRayDescends: @ 0x081D7EB8 + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _081D7EDC + adds r5, r0, r1 + movs r1, #0 + ldrsh r0, [r5, r1] + cmp r0, #4 + bhi _081D7FB0 + lsls r0, r0, #2 + ldr r1, _081D7EE0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081D7EDC: .4byte 0x03005B68 +_081D7EE0: .4byte 0x081D7EE4 +_081D7EE4: @ jump table + .4byte _081D7EF8 @ case 0 + .4byte _081D7F18 @ case 1 + .4byte _081D7F56 @ case 2 + .4byte _081D7F76 @ case 3 + .4byte _081D7F92 @ case 4 +_081D7EF8: + ldrh r1, [r5, #2] + movs r2, #2 + ldrsh r0, [r5, r2] + cmp r0, #8 + bne _081D7F70 + movs r0, #1 + rsbs r0, r0, #0 + movs r4, #0 + str r4, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + strh r4, [r5, #2] + b _081D7F8A +_081D7F18: + ldr r0, _081D7F48 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _081D7FB0 + ldrh r2, [r5, #2] + movs r3, #2 + ldrsh r0, [r5, r3] + cmp r0, #0xa + bne _081D7F50 + strh r1, [r5, #2] + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + ldr r0, _081D7F4C + bl SetHBlankCallback + movs r0, #3 + bl EnableInterrupts + b _081D7FB0 + .align 2, 0 +_081D7F48: .4byte 0x02037C74 +_081D7F4C: .4byte 0x081D7D89 +_081D7F50: + adds r0, r2, #1 + strh r0, [r5, #2] + b _081D7FB0 +_081D7F56: + ldrh r1, [r5, #2] + movs r2, #2 + ldrsh r0, [r5, r2] + cmp r0, #0x50 + bne _081D7F70 + movs r0, #0 + strh r0, [r5, #2] + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + bl sub_081D8008 + b _081D7FB0 +_081D7F70: + adds r0, r1, #1 + strh r0, [r5, #2] + b _081D7FB0 +_081D7F76: + ldrh r0, [r5, #2] + adds r0, #1 + strh r0, [r5, #2] + lsls r0, r0, #0x10 + movs r1, #0xb8 + lsls r1, r1, #0x11 + cmp r0, r1 + bne _081D7FB0 + movs r0, #0 + strh r0, [r5, #2] +_081D7F8A: + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + b _081D7FB0 +_081D7F92: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _081D7FB8 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081D7FBC + str r1, [r0] +_081D7FB0: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081D7FB8: .4byte 0x03005B60 +_081D7FBC: .4byte 0x081D7FC1 + thumb_func_end Task_HandleRayDescends + + thumb_func_start Task_RayDescendsEnd +Task_RayDescendsEnd: @ 0x081D7FC0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _081D7FFC + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081D7FF4 + movs r0, #0 + bl SetVBlankCallback + movs r0, #0 + bl SetHBlankCallback + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r0, _081D8000 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _081D8004 + str r0, [r1] +_081D7FF4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D7FFC: .4byte 0x02037C74 +_081D8000: .4byte 0x03005B60 +_081D8004: .4byte 0x081D617D + thumb_func_end Task_RayDescendsEnd + + thumb_func_start sub_081D8008 +sub_081D8008: @ 0x081D8008 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + ldr r0, _081D8078 + movs r1, #0xa0 + movs r2, #0 + movs r3, #0 + bl CreateSprite + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r5, r6, #4 + adds r5, r5, r6 + lsls r5, r5, #2 + ldr r4, _081D807C + adds r0, r5, r4 + mov r8, r0 + ldr r0, _081D8080 + movs r2, #0x30 + rsbs r2, r2, #0 + movs r1, #0xb8 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, r8 + strh r0, [r1] + adds r3, r4, #0 + subs r3, #0x2e + subs r4, #0x12 + adds r4, r5, r4 + ldr r0, _081D8084 + str r0, [r4] + adds r5, r5, r3 + ldrb r0, [r5, #5] + movs r2, #0xc + orrs r0, r2 + strb r0, [r5, #5] + movs r4, #0 + ldrsh r1, [r1, r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #5] + orrs r1, r2 + strb r1, [r0, #5] + adds r0, r6, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_081D8078: .4byte 0x085FBE10 +_081D807C: .4byte 0x020205DA +_081D8080: .4byte 0x085FBE28 +_081D8084: .4byte 0x081D8089 + thumb_func_end sub_081D8008 + + thumb_func_start sub_081D8088 +sub_081D8088: @ 0x081D8088 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x2e + movs r0, #4 + ldrsh r1, [r4, r0] + cmp r1, #0 + bne _081D80A0 + movs r0, #0xc + strh r0, [r4, #6] + movs r0, #8 + b _081D80FE +_081D80A0: + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + bne _081D80B0 + movs r0, #9 + strh r0, [r4, #6] + movs r0, #7 + b _081D80FE +_081D80B0: + movs r0, #0x86 + lsls r0, r0, #1 + cmp r1, r0 + bne _081D80C0 + movs r0, #8 + strh r0, [r4, #6] + movs r0, #6 + b _081D80FE +_081D80C0: + movs r0, #0x8c + lsls r0, r0, #1 + cmp r1, r0 + bne _081D80D0 + movs r0, #7 + strh r0, [r4, #6] + movs r0, #5 + b _081D80FE +_081D80D0: + movs r0, #0x92 + lsls r0, r0, #1 + cmp r1, r0 + bne _081D80E0 + movs r0, #6 + strh r0, [r4, #6] + movs r0, #4 + b _081D80FE +_081D80E0: + movs r0, #0x98 + lsls r0, r0, #1 + cmp r1, r0 + bne _081D80F0 + movs r0, #5 + strh r0, [r4, #6] + movs r0, #3 + b _081D80FE +_081D80F0: + movs r0, #0xa0 + lsls r0, r0, #1 + cmp r1, r0 + bne _081D8100 + movs r0, #4 + strh r0, [r4, #6] + movs r0, #2 +_081D80FE: + strh r0, [r4, #8] +_081D8100: + movs r1, #4 + ldrsh r0, [r4, r1] + movs r2, #6 + ldrsh r1, [r4, r2] + bl __modsi3 + cmp r0, #0 + bne _081D812A + ldrh r0, [r5, #0x24] + subs r0, #1 + strh r0, [r5, #0x24] + ldr r2, _081D8160 + movs r0, #0 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x24] + subs r1, #1 + strh r1, [r0, #0x24] +_081D812A: + movs r1, #4 + ldrsh r0, [r4, r1] + movs r2, #8 + ldrsh r1, [r4, r2] + bl __modsi3 + cmp r0, #0 + bne _081D8154 + ldrh r0, [r5, #0x26] + adds r0, #1 + strh r0, [r5, #0x26] + ldr r2, _081D8160 + movs r0, #0 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x26] + adds r1, #1 + strh r1, [r0, #0x26] +_081D8154: + ldrh r0, [r4, #4] + adds r0, #1 + strh r0, [r4, #4] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081D8160: .4byte 0x020205AC + thumb_func_end sub_081D8088 + + thumb_func_start sub_081D8164 +sub_081D8164: @ 0x081D8164 + push {r4, lr} + bl ResetVramOamAndBgCntRegs + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _081D81F8 + movs r0, #0 + movs r2, #4 + bl InitBgsFromTemplates + ldr r4, _081D81FC + ldr r1, [r4] + adds r1, #4 + movs r0, #0 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, _081D8200 + adds r1, r1, r0 + movs r0, #1 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, _081D8204 + adds r1, r1, r0 + movs r0, #2 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, _081D8208 + adds r1, r1, r0 + movs r0, #3 + bl SetBgTilemapBuffer + bl ResetAllBgsCoordinates + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #3 + bl schedule_bg_copy_tilemap_to_vram + movs r1, #0xc1 + lsls r1, r1, #6 + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D81F8: .4byte 0x085FBE40 +_081D81FC: .4byte 0x0203CC2C +_081D8200: .4byte 0x00000804 +_081D8204: .4byte 0x00001004 +_081D8208: .4byte 0x00001804 + thumb_func_end sub_081D8164 + + thumb_func_start sub_081D820C +sub_081D820C: @ 0x081D820C + push {r4, lr} + sub sp, #4 + bl reset_temp_tile_data_buffers + ldr r1, _081D828C + movs r4, #0 + str r4, [sp] + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, _081D8290 + str r4, [sp] + movs r0, #2 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, _081D8294 + str r4, [sp] + movs r0, #3 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram +_081D8240: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081D8240 + ldr r0, _081D8298 + ldr r4, _081D829C + ldr r1, [r4] + adds r1, #4 + bl LZDecompressVram + ldr r0, _081D82A0 + ldr r1, [r4] + ldr r2, _081D82A4 + adds r1, r1, r2 + bl LZDecompressVram + ldr r0, _081D82A8 + ldr r1, [r4] + ldr r2, _081D82AC + adds r1, r1, r2 + bl LZDecompressVram + ldr r0, _081D82B0 + ldr r1, [r4] + ldr r2, _081D82B4 + adds r1, r1, r2 + bl LZDecompressVram + ldr r0, _081D82B8 + movs r1, #0 + movs r2, #0x80 + bl LoadCompressedPalette + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D828C: .4byte 0x08DA8364 +_081D8290: .4byte 0x08DA8154 +_081D8294: .4byte 0x08DA7ED8 +_081D8298: .4byte 0x08DA9014 +_081D829C: .4byte 0x0203CC2C +_081D82A0: .4byte 0x08DA8DE8 +_081D82A4: .4byte 0x00000804 +_081D82A8: .4byte 0x08DA825C +_081D82AC: .4byte 0x00001004 +_081D82B0: .4byte 0x08DA8014 +_081D82B4: .4byte 0x00001804 +_081D82B8: .4byte 0x08DA912C + thumb_func_end sub_081D820C + + thumb_func_start Task_RayChargesAnim +Task_RayChargesAnim: @ 0x081D82BC + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r5, _081D830C + adds r6, r4, r5 + bl sub_081D8164 + bl sub_081D820C + bl sub_081D6204 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + ldr r0, _081D8310 + bl SetVBlankCallback + movs r0, #0 + strh r0, [r6] + strh r0, [r6, #2] + ldr r0, _081D8314 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r6, #4] + subs r5, #8 + adds r4, r4, r5 + ldr r0, _081D8318 + str r0, [r4] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081D830C: .4byte 0x03005B68 +_081D8310: .4byte 0x081D6129 +_081D8314: .4byte 0x081D8415 +_081D8318: .4byte 0x081D831D + thumb_func_end Task_RayChargesAnim + + thumb_func_start Task_HandleRayCharges +Task_HandleRayCharges: @ 0x081D831C + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _081D836C + adds r4, r0, r1 + bl sub_081D84F0 + ldrh r1, [r4, #6] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _081D8352 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #1 + bgt _081D8352 + movs r2, #2 + ldrsh r0, [r4, r2] + cmp r0, #0x59 + bgt _081D8352 + movs r0, #0x67 + bl PlaySE +_081D8352: + ldrh r0, [r4, #6] + adds r0, #1 + strh r0, [r4, #6] + movs r0, #0 + ldrsh r5, [r4, r0] + cmp r5, #1 + beq _081D8398 + cmp r5, #1 + bgt _081D8370 + cmp r5, #0 + beq _081D837A + b _081D8402 + .align 2, 0 +_081D836C: .4byte 0x03005B68 +_081D8370: + cmp r5, #2 + beq _081D83C8 + cmp r5, #3 + beq _081D83E4 + b _081D8402 +_081D837A: + ldrh r1, [r4, #2] + movs r2, #2 + ldrsh r0, [r4, r2] + cmp r0, #8 + bne _081D83DE + movs r0, #1 + rsbs r0, r0, #0 + str r5, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + strh r5, [r4, #2] + b _081D83D6 +_081D8398: + ldrh r1, [r4, #2] + movs r2, #2 + ldrsh r0, [r4, r2] + cmp r0, #0x7f + bne _081D83DE + movs r0, #0 + strh r0, [r4, #2] + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + ldr r2, _081D83C0 + movs r0, #4 + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldr r1, _081D83C4 + b _081D8400 + .align 2, 0 +_081D83C0: .4byte 0x03005B60 +_081D83C4: .4byte 0x081D8469 +_081D83C8: + ldrh r1, [r4, #2] + movs r2, #2 + ldrsh r0, [r4, r2] + cmp r0, #0xc + bne _081D83DE + movs r0, #0 + strh r0, [r4, #2] +_081D83D6: + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + b _081D8402 +_081D83DE: + adds r0, r1, #1 + strh r0, [r4, #2] + b _081D8402 +_081D83E4: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _081D840C + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081D8410 +_081D8400: + str r1, [r0] +_081D8402: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081D840C: .4byte 0x03005B60 +_081D8410: .4byte 0x081D8529 + thumb_func_end Task_HandleRayCharges + + thumb_func_start sub_081D8414 +sub_081D8414: @ 0x081D8414 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _081D8464 + adds r5, r1, r0 + ldrh r1, [r5, #0x1e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _081D8458 + bl Random + movs r4, #7 + adds r1, r4, #0 + ands r1, r0 + subs r1, #4 + lsls r1, r1, #8 + movs r0, #1 + movs r2, #0 + bl ChangeBgX + bl Random + ands r4, r0 + subs r4, #4 + lsls r4, r4, #8 + movs r0, #1 + adds r1, r4, #0 + movs r2, #0 + bl ChangeBgY +_081D8458: + ldrh r0, [r5, #0x1e] + adds r0, #1 + strh r0, [r5, #0x1e] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081D8464: .4byte 0x03005B68 + thumb_func_end sub_081D8414 + + thumb_func_start sub_081D8468 +sub_081D8468: @ 0x081D8468 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _081D84A8 + adds r4, r1, r0 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _081D84AC + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + movs r0, #0xa + strh r0, [r4, #2] + movs r1, #1 + rsbs r1, r1, #0 + adds r0, r1, #0 + b _081D84E6 + .align 2, 0 +_081D84A8: .4byte 0x03005B68 +_081D84AC: + cmp r0, #1 + bne _081D84E8 + movs r0, #2 + ldrsh r1, [r4, r0] + lsls r1, r1, #8 + movs r0, #1 + movs r2, #2 + bl ChangeBgX + movs r0, #2 + ldrsh r1, [r4, r0] + lsls r1, r1, #8 + movs r0, #1 + movs r2, #1 + bl ChangeBgY + ldrh r0, [r4, #4] + ldrh r1, [r4, #2] + adds r0, r0, r1 + strh r0, [r4, #2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0xa + rsbs r1, r1, #0 + cmp r0, r1 + bne _081D84E8 + movs r1, #4 + ldrsh r0, [r4, r1] + rsbs r0, r0, #0 +_081D84E6: + strh r0, [r4, #4] +_081D84E8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081D8468 + + thumb_func_start sub_081D84F0 +sub_081D84F0: @ 0x081D84F0 + push {r4, lr} + movs r4, #0x80 + lsls r4, r4, #3 + movs r0, #2 + adds r1, r4, #0 + movs r2, #2 + bl ChangeBgX + movs r0, #2 + adds r1, r4, #0 + movs r2, #1 + bl ChangeBgY + movs r4, #0x80 + lsls r4, r4, #4 + movs r0, #0 + adds r1, r4, #0 + movs r2, #2 + bl ChangeBgX + movs r0, #0 + adds r1, r4, #0 + movs r2, #1 + bl ChangeBgY + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_081D84F0 + + thumb_func_start Task_RayChargesEnd +Task_RayChargesEnd: @ 0x081D8528 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r5, r1, #3 + ldr r6, _081D8568 + adds r4, r5, r6 + bl sub_081D84F0 + ldr r0, _081D856C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081D8562 + movs r0, #0 + bl SetVBlankCallback + bl sub_081D6240 + ldrb r0, [r4, #4] + bl DestroyTask + adds r0, r6, #0 + subs r0, #8 + adds r0, r5, r0 + ldr r1, _081D8570 + str r1, [r0] +_081D8562: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081D8568: .4byte 0x03005B68 +_081D856C: .4byte 0x02037C74 +_081D8570: .4byte 0x081D617D + thumb_func_end Task_RayChargesEnd + + thumb_func_start sub_081D8574 +sub_081D8574: @ 0x081D8574 + push {r4, lr} + bl ResetVramOamAndBgCntRegs + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _081D85F0 + movs r0, #1 + movs r2, #3 + bl InitBgsFromTemplates + ldr r4, _081D85F4 + ldr r1, [r4] + adds r1, #4 + movs r0, #0 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, _081D85F8 + adds r1, r1, r0 + movs r0, #1 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, _081D85FC + adds r1, r1, r0 + movs r0, #2 + bl SetBgTilemapBuffer + bl ResetAllBgsCoordinates + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + movs r1, #0xc1 + lsls r1, r1, #6 + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D85F0: .4byte 0x085FC004 +_081D85F4: .4byte 0x0203CC2C +_081D85F8: .4byte 0x00000804 +_081D85FC: .4byte 0x00001004 + thumb_func_end sub_081D8574 + + thumb_func_start sub_081D8600 +sub_081D8600: @ 0x081D8600 + push {r4, lr} + sub sp, #4 + bl reset_temp_tile_data_buffers + ldr r1, _081D86A4 + movs r4, #0 + str r4, [sp] + movs r0, #2 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, _081D86A8 + str r4, [sp] + movs r0, #0 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram +_081D8626: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081D8626 + ldr r0, _081D86AC + ldr r4, _081D86B0 + ldr r1, [r4] + ldr r2, _081D86B4 + adds r1, r1, r2 + bl LZDecompressVram + ldr r0, _081D86B8 + ldr r1, [r4] + adds r1, #4 + bl LZDecompressVram + ldr r0, _081D86BC + ldr r1, [r4] + ldr r2, _081D86C0 + adds r1, r1, r2 + bl LZDecompressVram + ldr r0, _081D86C4 + movs r1, #0 + movs r2, #0x60 + bl LoadCompressedPalette + ldr r0, _081D86C8 + bl LoadCompressedSpriteSheet + ldr r0, _081D86CC + bl LoadCompressedSpriteSheet + ldr r0, _081D86D0 + bl LoadCompressedSpriteSheet + ldr r0, _081D86D4 + bl LoadCompressedSpriteSheet + ldr r0, _081D86D8 + bl LoadCompressedSpriteSheet + ldr r0, _081D86DC + bl LoadCompressedSpriteSheet + ldr r0, _081D86E0 + bl LoadCompressedSpritePalette + ldr r0, _081D86E4 + bl LoadCompressedSpritePalette + ldr r0, _081D86E8 + bl LoadCompressedSpritePalette + ldr r0, _081D86EC + bl LoadCompressedSpritePalette + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D86A4: .4byte 0x08DAADCC +_081D86A8: .4byte 0x08DAAB5C +_081D86AC: .4byte 0x08DAB0FC +_081D86B0: .4byte 0x0203CC2C +_081D86B4: .4byte 0x00000804 +_081D86B8: .4byte 0x08DAAEC4 +_081D86BC: .4byte 0x08DAB240 +_081D86C0: .4byte 0x00001004 +_081D86C4: .4byte 0x08DAB294 +_081D86C8: .4byte 0x085FBF24 +_081D86CC: .4byte 0x085FBF2C +_081D86D0: .4byte 0x085FBF34 +_081D86D4: .4byte 0x085FBF3C +_081D86D8: .4byte 0x085FBF44 +_081D86DC: .4byte 0x085FBF4C +_081D86E0: .4byte 0x085FBF54 +_081D86E4: .4byte 0x085FBF5C +_081D86E8: .4byte 0x085FBF64 +_081D86EC: .4byte 0x085FBF6C + thumb_func_end sub_081D8600 + + thumb_func_start Task_RayChasesAwayAnim +Task_RayChasesAwayAnim: @ 0x081D86F0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r5, _081D87A4 + adds r6, r4, r5 + bl sub_081D8574 + bl sub_081D8600 + bl sub_081D6204 + movs r1, #0x80 + lsls r1, r1, #3 + movs r0, #0 + bl ClearGpuRegBits + ldr r1, _081D87A8 + movs r0, #0x50 + bl SetGpuReg + ldr r1, _081D87AC + movs r0, #0x52 + bl SetGpuReg + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + ldr r0, _081D87B0 + bl SetVBlankCallback + movs r0, #0 + strh r0, [r6] + strh r0, [r6, #2] + subs r5, #8 + adds r4, r4, r5 + ldr r0, _081D87B4 + str r0, [r4] + ldr r0, _081D87B8 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r6, #4] + movs r0, #4 + ldrsh r1, [r6, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r2, #0 + strh r2, [r0, #8] + movs r0, #4 + ldrsh r1, [r6, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + strh r2, [r0, #0xa] + movs r0, #4 + ldrsh r1, [r6, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + strh r2, [r0, #0xc] + movs r0, #4 + ldrsh r1, [r6, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r2, #1 + strh r2, [r0, #0xe] + movs r0, #4 + ldrsh r1, [r6, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r5 + strh r2, [r0, #0x10] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081D87A4: .4byte 0x03005B68 +_081D87A8: .4byte 0x00000241 +_081D87AC: .4byte 0x00000E09 +_081D87B0: .4byte 0x081D6129 +_081D87B4: .4byte 0x081D87BD +_081D87B8: .4byte 0x081D88ED + thumb_func_end Task_RayChasesAwayAnim + + thumb_func_start Task_HandleRayChasesAway +Task_HandleRayChasesAway: @ 0x081D87BC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r7, r0, #3 + ldr r0, _081D87E8 + mov r8, r0 + adds r4, r7, r0 + movs r1, #0 + ldrsh r5, [r4, r1] + cmp r5, #1 + beq _081D881A + cmp r5, #1 + bgt _081D87EC + cmp r5, #0 + beq _081D87F6 + b _081D88DC + .align 2, 0 +_081D87E8: .4byte 0x03005B68 +_081D87EC: + cmp r5, #2 + beq _081D885A + cmp r5, #3 + beq _081D88C0 + b _081D88DC +_081D87F6: + ldrh r1, [r4, #2] + movs r2, #2 + ldrsh r0, [r4, r2] + cmp r0, #8 + bne _081D8854 + adds r0, r6, #0 + bl sub_081D89E4 + movs r0, #1 + rsbs r0, r0, #0 + str r5, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + strh r5, [r4, #2] + b _081D886C +_081D881A: + ldr r2, _081D884C + movs r0, #0xa + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _081D8850 + cmp r1, r0 + bne _081D88DC + ldrh r1, [r4, #2] + movs r2, #2 + ldrsh r0, [r4, r2] + cmp r0, #0x40 + bne _081D8854 + adds r0, r6, #0 + bl sub_081D8E10 + adds r0, r6, #0 + bl sub_081D8D14 + b _081D8868 + .align 2, 0 +_081D884C: .4byte 0x020205AC +_081D8850: .4byte 0x081D911D +_081D8854: + adds r0, r1, #1 + strh r0, [r4, #2] + b _081D88DC +_081D885A: + ldrh r2, [r4, #2] + movs r0, #2 + ldrsh r1, [r4, r0] + movs r0, #0xe0 + lsls r0, r0, #1 + cmp r1, r0 + bne _081D8874 +_081D8868: + movs r0, #0 + strh r0, [r4, #2] +_081D886C: + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + b _081D88DC +_081D8874: + adds r0, r2, #1 + strh r0, [r4, #2] + movs r1, #2 + ldrsh r0, [r4, r1] + movs r1, #0x90 + bl __modsi3 + lsls r0, r0, #0x10 + asrs r4, r0, #0x10 + cmp r4, #0 + bne _081D88DC + ldr r0, _081D88B4 + ldr r1, _081D88B8 + str r1, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl sub_080A250C + ldr r0, _081D88BC + str r4, [sp] + str r4, [sp, #4] + movs r1, #1 + str r1, [sp, #8] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl sub_080A250C + b _081D88DC + .align 2, 0 +_081D88B4: .4byte 0x0000FFFE +_081D88B8: .4byte 0x0000FFFF +_081D88BC: .4byte 0xFFFF0000 +_081D88C0: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r1, #4 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + mov r0, r8 + subs r0, #8 + adds r0, r7, r0 + ldr r1, _081D88E8 + str r1, [r0] +_081D88DC: + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D88E8: .4byte 0x081D8971 + thumb_func_end Task_HandleRayChasesAway + + thumb_func_start sub_081D88EC +sub_081D88EC: @ 0x081D88EC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _081D896C + adds r4, r1, r0 + ldrh r1, [r4] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _081D8960 + ldrh r1, [r4, #2] + adds r1, #0xe + lsls r1, r1, #8 + movs r2, #0xf8 + lsls r2, r2, #5 + adds r0, r2, #0 + ands r1, r0 + ldrh r0, [r4, #4] + adds r0, #9 + movs r2, #0xf + ands r0, r2 + orrs r1, r0 + movs r0, #0x52 + bl SetGpuReg + ldrh r1, [r4, #2] + ldrh r0, [r4, #6] + subs r1, r1, r0 + strh r1, [r4, #2] + ldrh r0, [r4, #8] + ldrh r2, [r4, #4] + adds r0, r0, r2 + strh r0, [r4, #4] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #3 + rsbs r0, r0, #0 + cmp r1, r0 + beq _081D8944 + cmp r1, #0 + bne _081D894C +_081D8944: + movs r1, #6 + ldrsh r0, [r4, r1] + rsbs r0, r0, #0 + strh r0, [r4, #6] +_081D894C: + movs r2, #4 + ldrsh r0, [r4, r2] + cmp r0, #3 + beq _081D8958 + cmp r0, #0 + bne _081D8960 +_081D8958: + movs r1, #8 + ldrsh r0, [r4, r1] + rsbs r0, r0, #0 + strh r0, [r4, #8] +_081D8960: + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D896C: .4byte 0x03005B68 + thumb_func_end sub_081D88EC + + thumb_func_start Task_RayChasesAwayEnd +Task_RayChasesAwayEnd: @ 0x081D8970 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r6, r1, #3 + ldr r7, _081D89CC + adds r4, r6, r7 + ldr r0, _081D89D0 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _081D89DC + bl StopMapMusic + movs r1, #2 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _081D89B4 + movs r0, #0 + bl SetVBlankCallback + bl sub_081D6240 + bl ResetSpriteData + bl FreeAllSpritePalettes + ldrb r0, [r4, #4] + bl DestroyTask +_081D89B4: + ldrh r1, [r4, #2] + movs r2, #2 + ldrsh r0, [r4, r2] + cmp r0, #0x20 + bne _081D89D8 + strh r5, [r4, #2] + adds r0, r7, #0 + subs r0, #8 + adds r0, r6, r0 + ldr r1, _081D89D4 + str r1, [r0] + b _081D89DC + .align 2, 0 +_081D89CC: .4byte 0x03005B68 +_081D89D0: .4byte 0x02037C74 +_081D89D4: .4byte 0x081D617D +_081D89D8: + adds r0, r1, #1 + strh r0, [r4, #2] +_081D89DC: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Task_RayChasesAwayEnd + + thumb_func_start sub_081D89E4 +sub_081D89E4: @ 0x081D89E4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _081D8B94 + adds r4, r4, r0 + ldr r0, _081D8B98 + movs r1, #0x40 + movs r2, #0x78 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #6] + movs r0, #6 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _081D8B9C + mov sl, r1 + adds r7, r0, r1 + ldr r0, _081D8BA0 + movs r1, #0x10 + movs r2, #0x82 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r7] + movs r2, #0x2e + rsbs r2, r2, #0 + add r2, sl + mov r8, r2 + movs r1, #6 + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + add r1, r8 + ldrb r2, [r1, #5] + movs r6, #0xd + rsbs r6, r6, #0 + adds r0, r6, #0 + ands r0, r2 + movs r2, #4 + mov sb, r2 + mov r2, sb + orrs r0, r2 + strb r0, [r1, #5] + movs r1, #0 + ldrsh r0, [r7, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + add r1, r8 + ldrb r2, [r1, #5] + adds r0, r6, #0 + ands r0, r2 + mov r2, sb + orrs r0, r2 + strb r0, [r1, #5] + ldr r5, _081D8BA4 + adds r0, r5, #0 + movs r1, #0xa0 + movs r2, #0x80 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #8] + movs r0, #8 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + mov r1, sl + adds r7, r0, r1 + adds r0, r5, #0 + movs r1, #0xc0 + movs r2, #0x80 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r7] + adds r0, r5, #0 + movs r1, #0xe0 + movs r2, #0x80 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r7, #2] + movs r2, #8 + ldrsh r0, [r4, r2] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + add r1, r8 + ldrb r2, [r1, #5] + adds r0, r6, #0 + ands r0, r2 + mov r2, sb + orrs r0, r2 + strb r0, [r1, #5] + movs r1, #0 + ldrsh r0, [r7, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + add r1, r8 + ldrb r2, [r1, #5] + adds r0, r6, #0 + ands r0, r2 + mov r2, sb + orrs r0, r2 + strb r0, [r1, #5] + movs r1, #2 + ldrsh r0, [r7, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + add r1, r8 + ldrb r2, [r1, #5] + adds r0, r6, #0 + ands r0, r2 + mov r2, sb + orrs r0, r2 + strb r0, [r1, #5] + movs r0, #0 + ldrsh r1, [r7, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + movs r1, #1 + bl StartSpriteAnim + movs r2, #2 + ldrsh r1, [r7, r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + movs r1, #2 + bl StartSpriteAnim + ldr r0, _081D8BA8 + movs r2, #0x41 + rsbs r2, r2, #0 + movs r1, #0x78 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0xa] + movs r0, #0xa + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + mov r1, sl + adds r7, r0, r1 + ldr r0, _081D8BAC + movs r2, #0x71 + rsbs r2, r2, #0 + movs r1, #0x78 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r7] + movs r2, #0xa + ldrsh r0, [r4, r2] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + add r1, r8 + ldrb r2, [r1, #5] + adds r0, r6, #0 + ands r0, r2 + mov r2, sb + orrs r0, r2 + strb r0, [r1, #5] + movs r0, #0 + ldrsh r1, [r7, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + ldrb r1, [r0, #5] + ands r6, r1 + orrs r6, r2 + strb r6, [r0, #5] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D8B94: .4byte 0x03005B68 +_081D8B98: .4byte 0x085FBF74 +_081D8B9C: .4byte 0x020205DA +_081D8BA0: .4byte 0x085FBF8C +_081D8BA4: .4byte 0x085FBFA4 +_081D8BA8: .4byte 0x085FBFBC +_081D8BAC: .4byte 0x085FBFD4 + thumb_func_end sub_081D89E4 + + thumb_func_start sub_081D8BB0 +sub_081D8BB0: @ 0x081D8BB0 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r0, #2 + adds r2, r2, r0 + lsls r2, r2, #3 + ldr r0, _081D8C68 + adds r2, r2, r0 + ldr r3, _081D8C6C + movs r0, #6 + ldrsh r1, [r2, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + movs r1, #0x1c + adds r1, r1, r3 + mov r8, r1 + add r0, r8 + ldr r6, _081D8C70 + str r6, [r0] + movs r0, #6 + ldrsh r1, [r2, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r4, #0 + strh r4, [r0, #0x36] + movs r0, #6 + ldrsh r1, [r2, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r4, [r0, #0x38] + movs r0, #6 + ldrsh r1, [r2, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r5, #4 + strh r5, [r0, #0x3a] + movs r0, #6 + ldrsh r1, [r2, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r4, [r0, #0x3c] + movs r0, #8 + ldrsh r1, [r2, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + str r6, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r4, [r0, #0x36] + movs r0, #8 + ldrsh r1, [r2, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r4, [r0, #0x38] + movs r0, #8 + ldrsh r1, [r2, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r5, [r0, #0x3a] + movs r0, #8 + ldrsh r1, [r2, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r1, #1 + strh r1, [r0, #0x3c] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081D8C68: .4byte 0x03005B68 +_081D8C6C: .4byte 0x020205AC +_081D8C70: .4byte 0x081D8C75 + thumb_func_end sub_081D8BB0 + + thumb_func_start sub_081D8C74 +sub_081D8C74: @ 0x081D8C74 + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x36] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _081D8D08 + movs r1, #0x3c + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _081D8CAC + ldrh r0, [r4, #0x20] + ldrh r3, [r4, #0x3a] + subs r0, r0, r3 + strh r0, [r4, #0x20] + ldr r2, _081D8CA8 + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x20] + subs r1, r1, r3 + b _081D8CDA + .align 2, 0 +_081D8CA8: .4byte 0x020205AC +_081D8CAC: + ldrh r2, [r4, #0x3a] + ldrh r1, [r4, #0x20] + adds r0, r2, r1 + strh r0, [r4, #0x20] + ldr r3, _081D8D00 + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r0, #0x20] + adds r2, r2, r1 + strh r2, [r0, #0x20] + movs r2, #0x30 + ldrsh r1, [r4, r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r4, #0x3a] + ldrh r2, [r0, #0x20] + adds r1, r1, r2 +_081D8CDA: + strh r1, [r0, #0x20] + ldrh r1, [r4, #0x38] + adds r1, #1 + movs r2, #0 + strh r1, [r4, #0x38] + ldrh r0, [r4, #0x3a] + subs r0, r0, r1 + strh r0, [r4, #0x3a] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #3 + bne _081D8D08 + strh r2, [r4, #0x36] + strh r2, [r4, #0x38] + strh r2, [r4, #0x3a] + ldr r0, _081D8D04 + str r0, [r4, #0x1c] + b _081D8D0E + .align 2, 0 +_081D8D00: .4byte 0x020205AC +_081D8D04: .4byte 0x08007141 +_081D8D08: + ldrh r0, [r4, #0x36] + adds r0, #1 + strh r0, [r4, #0x36] +_081D8D0E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_081D8C74 + + thumb_func_start sub_081D8D14 +sub_081D8D14: @ 0x081D8D14 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r0, #2 + adds r2, r2, r0 + lsls r2, r2, #3 + ldr r0, _081D8D50 + adds r2, r2, r0 + ldr r3, _081D8D54 + movs r0, #6 + ldrsh r1, [r2, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r3, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _081D8D58 + str r1, [r0] + movs r0, #6 + ldrsh r1, [r2, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + movs r1, #1 + bl StartSpriteAnim + pop {r0} + bx r0 + .align 2, 0 +_081D8D50: .4byte 0x03005B68 +_081D8D54: .4byte 0x020205AC +_081D8D58: .4byte 0x081D8D5D + thumb_func_end sub_081D8D14 + + thumb_func_start sub_081D8D5C +sub_081D8D5C: @ 0x081D8D5C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x2b + ldrb r0, [r0] + cmp r0, #1 + beq _081D8DC4 + cmp r0, #1 + bgt _081D8D72 + cmp r0, #0 + beq _081D8D7C + b _081D8E00 +_081D8D72: + cmp r0, #2 + beq _081D8D7C + cmp r0, #3 + beq _081D8DC4 + b _081D8E00 +_081D8D7C: + adds r0, r4, #0 + adds r0, #0x2c + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1a + movs r1, #0xc + bl __umodsi3 + lsls r0, r0, #0x18 + ldr r2, _081D8DC0 + cmp r0, #0 + bne _081D8DAC + ldrh r0, [r4, #0x20] + subs r0, #2 + strh r0, [r4, #0x20] + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x20] + subs r1, #2 + strh r1, [r0, #0x20] +_081D8DAC: + movs r1, #0x2e + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #0 + strh r0, [r1, #0x26] + b _081D8E00 + .align 2, 0 +_081D8DC0: .4byte 0x020205AC +_081D8DC4: + ldr r2, _081D8E08 + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, _081D8E0C + strh r1, [r0, #0x26] + adds r0, r4, #0 + adds r0, #0x2c + ldrb r1, [r0] + lsls r1, r1, #0x1a + lsrs r1, r1, #0x1a + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _081D8E00 + ldrh r0, [r4, #0x22] + adds r0, #1 + strh r0, [r4, #0x22] + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x22] + adds r1, #1 + strh r1, [r0, #0x22] +_081D8E00: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D8E08: .4byte 0x020205AC +_081D8E0C: .4byte 0x0000FFFE + thumb_func_end sub_081D8D5C + + thumb_func_start sub_081D8E10 +sub_081D8E10: @ 0x081D8E10 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _081D8E58 + adds r1, r1, r0 + movs r0, #8 + ldrsh r1, [r1, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r2, _081D8E5C + adds r4, r0, r2 + subs r2, #0x12 + adds r0, r0, r2 + ldr r3, _081D8E60 + str r3, [r0] + movs r0, #0 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + str r3, [r0] + movs r0, #2 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + str r3, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D8E58: .4byte 0x03005B68 +_081D8E5C: .4byte 0x020205DA +_081D8E60: .4byte 0x081D8E65 + thumb_func_end sub_081D8E10 + + thumb_func_start sub_081D8E64 +sub_081D8E64: @ 0x081D8E64 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + ldrh r1, [r7, #0x36] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _081D8E8C + ldrh r1, [r7, #0x24] + movs r2, #0x24 + ldrsh r0, [r7, r2] + cmp r0, #1 + bne _081D8E88 + ldr r0, _081D8E84 + b _081D8E8A + .align 2, 0 +_081D8E84: .4byte 0x0000FFFF +_081D8E88: + movs r0, #1 +_081D8E8A: + strh r0, [r7, #0x24] +_081D8E8C: + movs r1, #0x38 + ldrsh r0, [r7, r1] + cmp r0, #0x80 + bne _081D8F0A + ldr r2, _081D8F2C + mov r8, r2 + mov r0, r8 + movs r1, #0x98 + movs r2, #0x84 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r7, #0x3c] + ldr r5, _081D8F30 + movs r1, #0x3c + ldrsh r0, [r7, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrb r2, [r1, #5] + movs r4, #0xd + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r2 + movs r6, #4 + orrs r0, r6 + strb r0, [r1, #5] + mov r0, r8 + movs r1, #0xe0 + movs r2, #0x84 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r7, #0x3c] + movs r2, #0x3c + ldrsh r1, [r7, r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r1, [r0, #5] + ands r4, r1 + orrs r4, r6 + strb r4, [r0, #5] + movs r0, #0x3c + ldrsh r1, [r7, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3f + ldrb r1, [r0] + movs r2, #1 + orrs r1, r2 + strb r1, [r0] + ldrh r0, [r7, #0x38] + adds r0, #1 + strh r0, [r7, #0x38] +_081D8F0A: + ldrh r1, [r7, #0x38] + movs r2, #0x38 + ldrsh r0, [r7, r2] + cmp r0, #0x7f + ble _081D8F34 + movs r1, #0x26 + ldrsh r0, [r7, r1] + cmp r0, #0x20 + beq _081D8F38 + ldrh r0, [r7, #0x3a] + adds r0, #1 + strh r0, [r7, #0x3a] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + strh r0, [r7, #0x26] + b _081D8F38 + .align 2, 0 +_081D8F2C: .4byte 0x085FBFEC +_081D8F30: .4byte 0x020205AC +_081D8F34: + adds r0, r1, #1 + strh r0, [r7, #0x38] +_081D8F38: + ldrh r0, [r7, #0x36] + movs r1, #0x3f + ands r0, r1 + cmp r0, #0 + bne _081D8F48 + movs r0, #0xa5 + bl PlaySE +_081D8F48: + ldrh r0, [r7, #0x36] + adds r0, #1 + strh r0, [r7, #0x36] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_081D8E64 + + thumb_func_start sub_081D8F58 +sub_081D8F58: @ 0x081D8F58 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x3c + ldrsh r1, [r4, r0] + cmp r1, #0x40 + bgt _081D8FC8 + ldrh r0, [r4, #0x26] + adds r0, #2 + strh r0, [r4, #0x26] + ldr r5, _081D8FC0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrh r1, [r0, #0x26] + adds r1, #2 + strh r1, [r0, #0x26] + movs r1, #0x3c + ldrsh r0, [r4, r1] + cmp r0, #0x40 + beq _081D8F88 + b _081D90DA +_081D8F88: + movs r3, #0x30 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_081D91A4 + movs r2, #5 + strh r2, [r4, #0x36] + ldr r0, _081D8FC4 + strh r0, [r4, #0x38] + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #3 + strh r1, [r0, #0x36] + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r2, [r0, #0x38] + b _081D90DA + .align 2, 0 +_081D8FC0: .4byte 0x020205AC +_081D8FC4: .4byte 0x0000FFFF +_081D8FC8: + cmp r1, #0x6f + bgt _081D8FFA + adds r0, r4, #0 + bl sub_081D911C + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _081D8FE0 + movs r0, #0x68 + bl PlaySE +_081D8FE0: + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #3 + rsbs r0, r0, #0 + cmp r1, r0 + bne _081D90DA + adds r0, r4, #0 + movs r1, #2 + movs r2, #0x30 + movs r3, #0x10 + bl sub_081D91A4 + b _081D90DA +_081D8FFA: + cmp r1, #0x70 + bne _081D9028 + ldr r2, _081D9024 + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #7 + strh r1, [r0, #0x36] + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #3 + strh r1, [r0, #0x38] + b _081D902E + .align 2, 0 +_081D9024: .4byte 0x020205AC +_081D9028: + ldr r0, _081D9038 + cmp r1, r0 + bgt _081D903C +_081D902E: + adds r0, r4, #0 + bl sub_081D911C + b _081D90DA + .align 2, 0 +_081D9038: .4byte 0x00000147 +_081D903C: + movs r0, #0xa4 + lsls r0, r0, #1 + cmp r1, r0 + bne _081D9088 + adds r0, r4, #0 + bl sub_081D911C + adds r0, r4, #0 + movs r1, #3 + movs r2, #0x30 + movs r3, #0x10 + bl sub_081D91A4 + movs r3, #1 + strh r3, [r4, #0x24] + ldr r2, _081D9080 + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r3, [r0, #0x24] + movs r0, #0xcb + lsls r0, r0, #1 + movs r1, #0 + bl PlayCry1 + ldr r0, _081D9084 + movs r1, #0 + bl CreateTask + b _081D90DA + .align 2, 0 +_081D9080: .4byte 0x020205AC +_081D9084: .4byte 0x081D91F1 +_081D9088: + movs r0, #0xb0 + lsls r0, r0, #1 + cmp r1, r0 + beq _081D90CC + adds r0, #0x18 + cmp r1, r0 + bne _081D90DA + movs r3, #0 + strh r3, [r4, #0x24] + ldr r2, _081D90C4 + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r3, [r0, #0x24] + adds r0, r4, #0 + bl sub_081D911C + adds r0, r4, #0 + movs r1, #2 + movs r2, #0x30 + movs r3, #0x10 + bl sub_081D91A4 + ldr r0, _081D90C8 + str r0, [r4, #0x1c] + b _081D910E + .align 2, 0 +_081D90C4: .4byte 0x020205AC +_081D90C8: .4byte 0x081D911D +_081D90CC: + ldr r0, _081D9114 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_081D8BB0 +_081D90DA: + ldrh r2, [r4, #0x3c] + movs r0, #0x3c + ldrsh r1, [r4, r0] + movs r0, #0xa4 + lsls r0, r0, #1 + cmp r1, r0 + ble _081D9108 + movs r0, #1 + ands r0, r2 + cmp r0, #0 + bne _081D9108 + movs r1, #0x24 + ldrsh r2, [r4, r1] + rsbs r2, r2, #0 + strh r2, [r4, #0x24] + ldr r3, _081D9118 + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r2, [r0, #0x24] +_081D9108: + ldrh r0, [r4, #0x3c] + adds r0, #1 + strh r0, [r4, #0x3c] +_081D910E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081D9114: .4byte 0x081D87BD +_081D9118: .4byte 0x020205AC + thumb_func_end sub_081D8F58 + + thumb_func_start sub_081D911C +sub_081D911C: @ 0x081D911C + push {r4, r5, r6, r7, lr} + adds r3, r0, #0 + movs r0, #0x2e + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r5, _081D917C + adds r4, r0, r5 + ldrh r1, [r3, #0x3a] + ldrh r0, [r4, #0x36] + ands r0, r1 + cmp r0, #0 + bne _081D9198 + ldrh r2, [r3, #0x36] + ldrh r1, [r3, #0x26] + adds r0, r2, r1 + strh r0, [r3, #0x26] + movs r7, #0x2e + ldrsh r1, [r3, r7] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrh r1, [r0, #0x26] + adds r2, r2, r1 + strh r2, [r0, #0x26] + ldrh r0, [r3, #0x38] + ldrh r2, [r3, #0x36] + adds r0, r0, r2 + strh r0, [r3, #0x36] + lsls r0, r0, #0x10 + asrs r5, r0, #0x10 + ldrh r6, [r4, #0x38] + movs r7, #0x38 + ldrsh r2, [r4, r7] + cmp r5, r2 + bge _081D9172 + movs r0, #0x36 + ldrsh r1, [r3, r0] + adds r0, r2, #0 + cmn r1, r0 + bgt _081D9198 +_081D9172: + cmp r5, r2 + ble _081D9180 + strh r6, [r3, #0x36] + b _081D9190 + .align 2, 0 +_081D917C: .4byte 0x020205AC +_081D9180: + movs r0, #0x36 + ldrsh r1, [r3, r0] + movs r2, #0x38 + ldrsh r0, [r4, r2] + cmn r1, r0 + bge _081D9190 + rsbs r0, r6, #0 + strh r0, [r3, #0x36] +_081D9190: + movs r7, #0x38 + ldrsh r0, [r3, r7] + rsbs r0, r0, #0 + strh r0, [r3, #0x38] +_081D9198: + ldrh r0, [r3, #0x3a] + adds r0, #1 + strh r0, [r3, #0x3a] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_081D911C + + thumb_func_start sub_081D91A4 +sub_081D91A4: @ 0x081D91A4 + push {r4, r5, lr} + adds r5, r1, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r4, #0x2e + ldrsh r1, [r0, r4] + lsls r4, r1, #4 + adds r4, r4, r1 + lsls r4, r4, #2 + ldr r1, _081D91EC + adds r4, r4, r1 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + ldrh r1, [r0, #0x20] + adds r2, r2, r1 + strh r2, [r4, #0x20] + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + ldrh r1, [r0, #0x22] + adds r3, r3, r1 + strh r3, [r4, #0x22] + ldrh r1, [r0, #0x24] + strh r1, [r4, #0x24] + ldrh r1, [r0, #0x26] + strh r1, [r4, #0x26] + adds r1, r5, #0 + bl StartSpriteAnim + adds r0, r4, #0 + adds r1, r5, #0 + bl StartSpriteAnim + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081D91EC: .4byte 0x020205AC + thumb_func_end sub_081D91A4 + + thumb_func_start sub_081D91F0 +sub_081D91F0: @ 0x081D91F0 + push {r4, r5, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _081D9214 + adds r4, r0, r1 + movs r0, #0 + ldrsh r1, [r4, r0] + cmp r1, #1 + beq _081D9248 + cmp r1, #1 + bgt _081D9218 + cmp r1, #0 + beq _081D921E + b _081D92F0 + .align 2, 0 +_081D9214: .4byte 0x03005B68 +_081D9218: + cmp r1, #2 + beq _081D92E0 + b _081D92F0 +_081D921E: + movs r2, #0x80 + lsls r2, r2, #7 + movs r0, #0x40 + str r0, [sp] + adds r0, #0xc0 + str r0, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + movs r0, #2 + adds r1, r2, #0 + movs r3, #0x78 + bl SetBgAffine + movs r1, #0x80 + lsls r1, r1, #3 + movs r0, #0 + bl SetGpuRegBits + movs r0, #0x10 + strh r0, [r4, #8] + b _081D925E +_081D9248: + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #8 + bne _081D9256 + movs r0, #0x12 + bl PlaySE +_081D9256: + movs r3, #4 + ldrsh r0, [r4, r3] + cmp r0, #2 + bne _081D9266 +_081D925E: + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + b _081D92F0 +_081D9266: + ldrh r5, [r4, #8] + ldrh r1, [r4, #2] + adds r0, r5, r1 + strh r0, [r4, #2] + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + movs r3, #6 + ldrsh r0, [r4, r3] + movs r1, #3 + bl __modsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _081D9290 + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + beq _081D9290 + subs r0, r5, #2 + strh r0, [r4, #8] +_081D9290: + ldrh r0, [r4, #6] + adds r0, #1 + strh r0, [r4, #6] + movs r2, #0x80 + lsls r2, r2, #7 + movs r0, #0x40 + str r0, [sp] + ldrh r0, [r4, #2] + movs r3, #0x80 + lsls r3, r3, #1 + adds r1, r3, #0 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + str r0, [sp, #4] + ldrh r0, [r4, #2] + subs r1, r1, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + str r1, [sp, #8] + movs r5, #0 + str r5, [sp, #0xc] + movs r0, #2 + adds r1, r2, #0 + movs r3, #0x78 + bl SetBgAffine + movs r1, #2 + ldrsh r0, [r4, r1] + cmp r0, #0xff + ble _081D92F0 + strh r5, [r4, #2] + strh r5, [r4, #6] + strh r5, [r4, #0xa] + movs r0, #0x10 + strh r0, [r4, #8] + ldrh r0, [r4, #4] + adds r0, #1 + strh r0, [r4, #4] + b _081D92F0 +_081D92E0: + movs r1, #0x80 + lsls r1, r1, #3 + movs r0, #0 + bl ClearGpuRegBits + adds r0, r5, #0 + bl DestroyTask +_081D92F0: + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_081D91F0 + diff --git a/asm/record_mixing.s b/asm/record_mixing.s new file mode 100644 index 0000000..4baecd2 --- /dev/null +++ b/asm/record_mixing.s @@ -0,0 +1,6437 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start RecordMixingPlayerSpotTriggered +RecordMixingPlayerSpotTriggered: @ 0x080E63C4 + push {lr} + ldr r0, _080E63D0 + bl sub_080B2F30 + pop {r0} + bx r0 + .align 2, 0 +_080E63D0: .4byte 0x080E6935 + thumb_func_end RecordMixingPlayerSpotTriggered + + thumb_func_start SetSrcLookupPointers +SetSrcLookupPointers: @ 0x080E63D4 + push {r4, lr} + ldr r2, _080E642C + ldr r0, _080E6430 + ldr r1, [r0] + ldr r3, _080E6434 + adds r0, r1, r3 + str r0, [r2] + ldr r2, _080E6438 + ldr r4, _080E643C + adds r0, r1, r4 + str r0, [r2] + ldr r2, _080E6440 + ldr r3, _080E6444 + adds r0, r1, r3 + str r0, [r2] + ldr r2, _080E6448 + ldr r4, _080E644C + adds r0, r1, r4 + str r0, [r2] + ldr r2, _080E6450 + ldr r3, _080E6454 + adds r0, r1, r3 + str r0, [r2] + ldr r2, _080E6458 + ldr r0, _080E645C + str r0, [r2] + ldr r2, _080E6460 + ldr r0, _080E6464 + ldr r0, [r0] + ldr r4, _080E6468 + adds r3, r0, r4 + str r3, [r2] + ldr r2, _080E646C + ldr r4, _080E6470 + adds r1, r1, r4 + str r1, [r2] + ldr r1, _080E6474 + adds r0, #0xdc + str r0, [r1] + ldr r0, _080E6478 + str r3, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E642C: .4byte 0x03001134 +_080E6430: .4byte 0x03005AEC +_080E6434: .4byte 0x00001A9C +_080E6438: .4byte 0x03001138 +_080E643C: .4byte 0x000027CC +_080E6440: .4byte 0x0300113C +_080E6444: .4byte 0x00002B50 +_080E6448: .4byte 0x03001140 +_080E644C: .4byte 0x00002E28 +_080E6450: .4byte 0x03001144 +_080E6454: .4byte 0x00002E68 +_080E6458: .4byte 0x03001148 +_080E645C: .4byte 0x02039C3C +_080E6460: .4byte 0x0300114C +_080E6464: .4byte 0x03005AF0 +_080E6468: .4byte 0x0000064C +_080E646C: .4byte 0x03001150 +_080E6470: .4byte 0x00003B58 +_080E6474: .4byte 0x03001154 +_080E6478: .4byte 0x03001158 + thumb_func_end SetSrcLookupPointers + + thumb_func_start PrepareUnknownExchangePacket +PrepareUnknownExchangePacket: @ 0x080E647C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _080E6500 + ldr r1, [r0] + movs r4, #0xc8 + lsls r4, r4, #4 + adds r0, r5, #0 + adds r2, r4, #0 + bl memcpy + adds r4, r5, r4 + ldr r0, _080E6504 + ldr r1, [r0] + movs r2, #0xe1 + lsls r2, r2, #2 + adds r0, r4, #0 + bl memcpy + adds r0, r4, #0 + bl sub_080F1CE4 + ldr r1, _080E6508 + adds r0, r5, r1 + ldr r1, _080E650C + ldr r1, [r1] + movs r2, #0x40 + bl memcpy + ldr r2, _080E6510 + adds r0, r5, r2 + ldr r1, _080E6514 + ldr r1, [r1] + movs r2, #0x40 + bl memcpy + ldr r1, _080E6518 + adds r0, r5, r1 + ldr r1, _080E651C + ldr r1, [r1] + movs r2, #0x28 + bl memcpy + ldr r2, _080E6520 + adds r0, r5, r2 + bl sub_080E81E0 + ldr r0, _080E6524 + ldr r0, [r0] + ldr r2, _080E6528 + adds r1, r5, r2 + bl EmeraldBattleTowerRecordToRuby + bl GetMultiplayerId + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080E64F8 + bl GetRecordMixingGift + ldr r2, _080E652C + adds r1, r5, r2 + strh r0, [r1] +_080E64F8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080E6500: .4byte 0x03001134 +_080E6504: .4byte 0x03001138 +_080E6508: .4byte 0x00001004 +_080E650C: .4byte 0x0300113C +_080E6510: .4byte 0x00001044 +_080E6514: .4byte 0x03001140 +_080E6518: .4byte 0x00001084 +_080E651C: .4byte 0x03001144 +_080E6520: .4byte 0x000010AC +_080E6524: .4byte 0x0300114C +_080E6528: .4byte 0x00001124 +_080E652C: .4byte 0x000011C8 + thumb_func_end PrepareUnknownExchangePacket + + thumb_func_start PrepareExchangePacketForRubySapphire +PrepareExchangePacketForRubySapphire: @ 0x080E6530 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _080E65D4 + ldr r1, [r0] + movs r4, #0xc8 + lsls r4, r4, #4 + adds r0, r5, #0 + adds r2, r4, #0 + bl memcpy + adds r0, r5, #0 + bl ClearJapaneseSecretBases + adds r4, r5, r4 + ldr r0, _080E65D8 + ldr r1, [r0] + movs r2, #0xe1 + lsls r2, r2, #2 + adds r0, r4, #0 + bl memcpy + adds r0, r4, #0 + movs r1, #2 + bl sub_080F1A40 + ldr r1, _080E65DC + adds r0, r5, r1 + ldr r1, _080E65E0 + ldr r1, [r1] + movs r2, #0x40 + bl memcpy + ldr r2, _080E65E4 + adds r4, r5, r2 + ldr r0, _080E65E8 + ldr r1, [r0] + adds r0, r4, #0 + movs r2, #0x40 + bl memcpy + adds r0, r4, #0 + bl StorytellerDisplayStory + ldr r1, _080E65EC + adds r0, r5, r1 + ldr r1, _080E65F0 + ldr r1, [r1] + movs r2, #0x28 + bl memcpy + ldr r2, _080E65F4 + adds r4, r5, r2 + adds r0, r4, #0 + bl sub_080E81E0 + adds r0, r4, #0 + bl SanitizeEmeraldBattleTowerRecord + ldr r0, _080E65F8 + adds r4, r5, r0 + ldr r0, _080E65FC + ldr r1, [r0] + adds r0, r4, #0 + bl EmeraldBattleTowerRecordToRuby + adds r0, r4, #0 + bl sub_080E8290 + bl GetMultiplayerId + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080E65CC + bl GetRecordMixingGift + ldr r2, _080E6600 + adds r1, r5, r2 + strh r0, [r1] +_080E65CC: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080E65D4: .4byte 0x03001134 +_080E65D8: .4byte 0x03001138 +_080E65DC: .4byte 0x00001004 +_080E65E0: .4byte 0x0300113C +_080E65E4: .4byte 0x00001044 +_080E65E8: .4byte 0x03001140 +_080E65EC: .4byte 0x00001084 +_080E65F0: .4byte 0x03001144 +_080E65F4: .4byte 0x000010AC +_080E65F8: .4byte 0x00001124 +_080E65FC: .4byte 0x0300114C +_080E6600: .4byte 0x000011C8 + thumb_func_end PrepareExchangePacketForRubySapphire + + thumb_func_start PrepareExchangePacket +PrepareExchangePacket: @ 0x080E6604 + push {r4, r5, lr} + bl SetPlayerSecretBaseParty + bl sub_080F1694 + bl SetSrcLookupPointers + bl Link_AnyPartnersPlayingRubyOrSapphire + cmp r0, #0 + beq _080E6640 + bl sub_08009BD4 + cmp r0, #0 + bne _080E6630 + ldr r0, _080E662C + ldr r0, [r0] + bl PrepareUnknownExchangePacket + b _080E66EA + .align 2, 0 +_080E662C: .4byte 0x02039CB8 +_080E6630: + ldr r0, _080E663C + ldr r0, [r0] + bl PrepareExchangePacketForRubySapphire + b _080E66EA + .align 2, 0 +_080E663C: .4byte 0x02039CB8 +_080E6640: + ldr r5, _080E66F0 + ldr r0, [r5] + ldr r1, _080E66F4 + ldr r1, [r1] + movs r4, #0xc8 + lsls r4, r4, #4 + adds r2, r4, #0 + bl memcpy + ldr r0, [r5] + adds r0, r0, r4 + ldr r1, _080E66F8 + ldr r1, [r1] + movs r2, #0xe1 + lsls r2, r2, #2 + bl memcpy + ldr r0, [r5] + ldr r1, _080E66FC + adds r0, r0, r1 + ldr r1, _080E6700 + ldr r1, [r1] + movs r2, #0x40 + bl memcpy + ldr r0, [r5] + ldr r2, _080E6704 + adds r0, r0, r2 + ldr r1, _080E6708 + ldr r1, [r1] + movs r2, #0x40 + bl memcpy + ldr r0, [r5] + ldr r1, _080E670C + adds r0, r0, r1 + ldr r1, _080E6710 + ldr r1, [r1] + movs r2, #0x40 + bl memcpy + ldr r0, [r5] + ldr r2, _080E6714 + adds r0, r0, r2 + ldr r1, _080E6718 + ldr r1, [r1] + movs r2, #0x28 + bl memcpy + ldr r0, [r5] + ldr r1, _080E671C + adds r0, r0, r1 + bl sub_080E81E0 + ldr r0, [r5] + ldr r2, _080E6720 + adds r0, r0, r2 + ldr r1, _080E6724 + ldr r1, [r1] + movs r2, #0xec + bl memcpy + bl GetMultiplayerId + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080E66D2 + bl GetRecordMixingGift + ldr r1, [r5] + ldr r2, _080E6728 + adds r1, r1, r2 + strh r0, [r1] +_080E66D2: + ldr r0, [r5] + ldr r1, _080E672C + adds r0, r0, r1 + ldr r1, _080E6730 + ldr r1, [r1] + bl sub_080E78F8 + ldr r0, [r5] + ldr r2, _080E6734 + adds r0, r0, r2 + bl GetPlayerHallRecords +_080E66EA: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080E66F0: .4byte 0x02039CB8 +_080E66F4: .4byte 0x03001134 +_080E66F8: .4byte 0x03001138 +_080E66FC: .4byte 0x00001004 +_080E6700: .4byte 0x0300113C +_080E6704: .4byte 0x00001044 +_080E6708: .4byte 0x03001140 +_080E670C: .4byte 0x00001214 +_080E6710: .4byte 0x03001150 +_080E6714: .4byte 0x00001084 +_080E6718: .4byte 0x03001144 +_080E671C: .4byte 0x000010AC +_080E6720: .4byte 0x00001124 +_080E6724: .4byte 0x0300114C +_080E6728: .4byte 0x00001210 +_080E672C: .4byte 0x00001254 +_080E6730: .4byte 0x03001154 +_080E6734: .4byte 0x000012DC + thumb_func_end PrepareExchangePacket + + thumb_func_start ReceiveExchangePacket +ReceiveExchangePacket: @ 0x080E6738 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r4, r0, #0 + bl Link_AnyPartnersPlayingRubyOrSapphire + cmp r0, #0 + beq _080E67EC + ldr r5, _080E67CC + ldr r0, [r5] + movs r1, #0xc8 + lsls r1, r1, #4 + mov r8, r1 + add r0, r8 + bl sub_080E72FC + ldr r0, [r5] + ldr r6, _080E67D0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r1, r6, #0 + adds r2, r4, #0 + bl ReceiveSecretBasesData + ldr r3, [r5] + ldr r1, _080E67D4 + adds r0, r3, r1 + add r3, r8 + adds r1, r6, #0 + adds r2, r4, #0 + bl ReceiveDaycareMailData + ldr r0, [r5] + ldr r1, _080E67D8 + adds r0, r0, r1 + adds r1, r6, #0 + adds r2, r4, #0 + bl ReceiveBattleTowerData + ldr r0, [r5] + add r0, r8 + adds r1, r6, #0 + adds r2, r4, #0 + bl ReceiveTvShowsData + ldr r0, [r5] + ldr r1, _080E67DC + adds r0, r0, r1 + adds r1, r6, #0 + adds r2, r4, #0 + bl ReceivePokeNewsData + ldr r0, [r5] + ldr r1, _080E67E0 + adds r0, r0, r1 + adds r1, r6, #0 + adds r2, r4, #0 + bl ReceiveOldManData + ldr r0, [r5] + ldr r1, _080E67E4 + adds r0, r0, r1 + adds r1, r6, #0 + adds r2, r4, #0 + bl ReceiveEasyChatPairsData + ldr r0, [r5] + ldr r1, _080E67E8 + adds r0, r0, r1 + adds r1, r4, #0 + bl ReceiveGiftItem + b _080E6896 + .align 2, 0 +_080E67CC: .4byte 0x02039CB4 +_080E67D0: .4byte 0x00001230 +_080E67D4: .4byte 0x000010AC +_080E67D8: .4byte 0x00001124 +_080E67DC: .4byte 0x00001004 +_080E67E0: .4byte 0x00001044 +_080E67E4: .4byte 0x00001084 +_080E67E8: .4byte 0x000011C8 +_080E67EC: + ldr r5, _080E68A0 + ldr r0, [r5] + movs r1, #0xc8 + lsls r1, r1, #4 + mov r8, r1 + add r0, r8 + bl sub_080E72FC + ldr r0, [r5] + ldr r6, _080E68A4 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r1, r6, #0 + adds r2, r4, #0 + bl ReceiveSecretBasesData + ldr r0, [r5] + add r0, r8 + adds r1, r6, #0 + adds r2, r4, #0 + bl ReceiveTvShowsData + ldr r0, [r5] + ldr r1, _080E68A8 + adds r0, r0, r1 + adds r1, r6, #0 + adds r2, r4, #0 + bl ReceivePokeNewsData + ldr r0, [r5] + ldr r1, _080E68AC + adds r0, r0, r1 + adds r1, r6, #0 + adds r2, r4, #0 + bl ReceiveOldManData + ldr r0, [r5] + ldr r1, _080E68B0 + adds r0, r0, r1 + adds r1, r6, #0 + adds r2, r4, #0 + bl ReceiveEasyChatPairsData + ldr r3, [r5] + ldr r1, _080E68B4 + adds r0, r3, r1 + add r3, r8 + adds r1, r6, #0 + adds r2, r4, #0 + bl ReceiveDaycareMailData + ldr r0, [r5] + ldr r1, _080E68B8 + adds r0, r0, r1 + adds r1, r6, #0 + adds r2, r4, #0 + bl ReceiveBattleTowerData + ldr r0, [r5] + ldr r1, _080E68BC + adds r0, r0, r1 + adds r1, r4, #0 + bl ReceiveGiftItem + ldr r0, [r5] + ldr r1, _080E68C0 + adds r0, r0, r1 + adds r1, r6, #0 + adds r2, r4, #0 + bl ReceiveLilycoveLadyData + ldr r0, [r5] + ldr r1, _080E68C4 + adds r0, r0, r1 + adds r1, r6, #0 + adds r2, r4, #0 + bl ReceiveApprenticeData + ldr r0, [r5] + ldr r1, _080E68C8 + adds r0, r0, r1 + adds r1, r6, #0 + adds r2, r4, #0 + bl ReceiveRankingHallRecords +_080E6896: + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080E68A0: .4byte 0x02039CB4 +_080E68A4: .4byte 0x00001444 +_080E68A8: .4byte 0x00001004 +_080E68AC: .4byte 0x00001044 +_080E68B0: .4byte 0x00001084 +_080E68B4: .4byte 0x000010AC +_080E68B8: .4byte 0x00001124 +_080E68BC: .4byte 0x00001210 +_080E68C0: .4byte 0x00001214 +_080E68C4: .4byte 0x00001254 +_080E68C8: .4byte 0x000012DC + thumb_func_end ReceiveExchangePacket + + thumb_func_start PrintTextOnRecordMixing +PrintTextOnRecordMixing: @ 0x080E68CC + push {r4, lr} + sub sp, #0xc + adds r4, r0, #0 + movs r0, #0 + movs r1, #0 + bl ClearDialogWindowAndFrame + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + movs r1, #1 + adds r2, r4, #0 + movs r3, #0 + bl AddTextPrinterParameterized + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PrintTextOnRecordMixing + + thumb_func_start Task_RecordMixing_SoundEffect +Task_RecordMixing_SoundEffect: @ 0x080E6900 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080E6930 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x32 + bne _080E6928 + movs r0, #0xe2 + bl PlaySE + movs r0, #0 + strh r0, [r4, #8] +_080E6928: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E6930: .4byte 0x03005B60 + thumb_func_end Task_RecordMixing_SoundEffect + + thumb_func_start Task_RecordMixing_Main +Task_RecordMixing_Main: @ 0x080E6934 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _080E6958 + adds r5, r0, r1 + movs r1, #0 + ldrsh r0, [r5, r1] + cmp r0, #5 + bls _080E694E + b _080E6AE2 +_080E694E: + lsls r0, r0, #2 + ldr r1, _080E695C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E6958: .4byte 0x03005B68 +_080E695C: .4byte 0x080E6960 +_080E6960: @ jump table + .4byte _080E6978 @ case 0 + .4byte _080E69F0 @ case 1 + .4byte _080E6A24 @ case 2 + .4byte _080E6A44 @ case 3 + .4byte _080E6A84 @ case 4 + .4byte _080E6A98 @ case 5 +_080E6978: + ldr r4, _080E69D0 + ldr r0, _080E69D4 + bl Alloc + str r0, [r4] + ldr r4, _080E69D8 + ldr r0, _080E69DC + bl Alloc + str r0, [r4] + ldr r0, _080E69E0 + ldrb r0, [r0] + bl SetLocalLinkPlayerId + movs r0, #0x80 + lsls r0, r0, #7 + movs r1, #1 + bl VarSet + ldr r1, _080E69E4 + movs r0, #0 + strb r0, [r1] + bl PrepareExchangePacket + bl CreateRecordMixingSprite + movs r0, #1 + strh r0, [r5] + ldr r0, _080E69E8 + movs r1, #0x50 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x14] + ldr r0, _080E69EC + movs r1, #0x51 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x1e] + b _080E6AE2 + .align 2, 0 +_080E69D0: .4byte 0x02039CB8 +_080E69D4: .4byte 0x00001444 +_080E69D8: .4byte 0x02039CB4 +_080E69DC: .4byte 0x00005110 +_080E69E0: .4byte 0x02037282 +_080E69E4: .4byte 0x03001130 +_080E69E8: .4byte 0x080E6AFD +_080E69EC: .4byte 0x080E6901 +_080E69F0: + ldr r2, _080E6A1C + movs r0, #0x14 + ldrsh r1, [r5, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrb r0, [r0, #4] + cmp r0, #0 + bne _080E6AE2 + movs r0, #2 + strh r0, [r5] + ldr r0, _080E6A20 + bl FlagSet + bl DestroyRecordMixingSprite + ldrb r0, [r5, #0x1e] + bl DestroyTask + b _080E6AE2 + .align 2, 0 +_080E6A1C: .4byte 0x03005B60 +_080E6A20: .4byte 0x00000894 +_080E6A24: + ldr r0, _080E6A40 + movs r1, #0xa + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x14] + movs r0, #3 + strh r0, [r5] + movs r0, #0xe0 + bl PlaySE + b _080E6AE2 + .align 2, 0 +_080E6A40: .4byte 0x080E77E1 +_080E6A44: + ldr r2, _080E6A78 + movs r0, #0x14 + ldrsh r1, [r5, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrb r4, [r0, #4] + cmp r4, #0 + bne _080E6AE2 + movs r0, #4 + strh r0, [r5] + ldr r0, _080E6A7C + ldrb r0, [r0] + cmp r0, #0 + bne _080E6A6E + bl sub_080B27FC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x14] +_080E6A6E: + ldr r0, _080E6A80 + bl PrintTextOnRecordMixing + strh r4, [r5, #0x10] + b _080E6AE2 + .align 2, 0 +_080E6A78: .4byte 0x03005B60 +_080E6A7C: .4byte 0x0300319C +_080E6A80: .4byte 0x08566CB1 +_080E6A84: + ldrh r0, [r5, #0x10] + adds r0, #1 + strh r0, [r5, #0x10] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x3c + ble _080E6AE2 + movs r0, #5 + strh r0, [r5] + b _080E6AE2 +_080E6A98: + ldr r2, _080E6AE8 + movs r0, #0x14 + ldrsh r1, [r5, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrb r0, [r0, #4] + cmp r0, #0 + bne _080E6AE2 + ldr r0, _080E6AEC + ldr r0, [r0] + bl Free + ldr r0, _080E6AF0 + ldr r0, [r0] + bl Free + bl sub_08086C00 + ldr r0, _080E6AF4 + ldrb r0, [r0] + cmp r0, #0 + beq _080E6AD0 + ldr r0, _080E6AF8 + movs r1, #0xa + bl CreateTask +_080E6AD0: + movs r0, #0 + movs r1, #1 + bl DrawDialogueFrame + adds r0, r4, #0 + bl DestroyTask + bl EnableBothScriptContexts +_080E6AE2: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080E6AE8: .4byte 0x03005B60 +_080E6AEC: .4byte 0x02039CB4 +_080E6AF0: .4byte 0x02039CB8 +_080E6AF4: .4byte 0x0300319C +_080E6AF8: .4byte 0x080AEBB1 + thumb_func_end Task_RecordMixing_Main + + thumb_func_start Task_MixingRecordsRecv +Task_MixingRecordsRecv: @ 0x080E6AFC + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r6, _080E6B28 + adds r5, r0, r6 + movs r0, #8 + ldrsh r1, [r5, r0] + cmp r1, #0x64 + beq _080E6B78 + cmp r1, #0x64 + bgt _080E6B3A + cmp r1, #1 + bne _080E6B1E + b _080E6C3C +_080E6B1E: + cmp r1, #1 + bgt _080E6B2C + cmp r1, #0 + beq _080E6B5C + b _080E6D3E + .align 2, 0 +_080E6B28: .4byte 0x03005B60 +_080E6B2C: + cmp r1, #2 + bne _080E6B32 + b _080E6C68 +_080E6B32: + cmp r1, #5 + bne _080E6B38 + b _080E6D28 +_080E6B38: + b _080E6D3E +_080E6B3A: + cmp r1, #0xc9 + beq _080E6BD0 + cmp r1, #0xc9 + bgt _080E6B48 + cmp r1, #0x65 + beq _080E6B90 + b _080E6D3E +_080E6B48: + ldr r0, _080E6B58 + cmp r1, r0 + beq _080E6C0A + adds r0, #0x63 + cmp r1, r0 + beq _080E6C22 + b _080E6D3E + .align 2, 0 +_080E6B58: .4byte 0x0000012D +_080E6B5C: + ldr r0, _080E6B74 + bl PrintTextOnRecordMixing + movs r0, #0xe1 + lsls r0, r0, #3 + strh r0, [r5, #0x18] + movs r0, #0xc8 + lsls r0, r0, #1 + strh r0, [r5, #8] + bl ClearLinkCallback_2 + b _080E6D3E + .align 2, 0 +_080E6B74: .4byte 0x08566CA4 +_080E6B78: + ldrh r0, [r5, #0x20] + adds r0, #1 + strh r0, [r5, #0x20] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x14 + bgt _080E6B88 + b _080E6D3E +_080E6B88: + movs r0, #0 + strh r0, [r5, #0x20] + movs r0, #0x65 + b _080E6D3C +_080E6B90: + bl GetLinkPlayerCount_2 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl IsLinkMaster + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080E6BC2 + bl GetSavedPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + beq _080E6BB2 + b _080E6D3E +_080E6BB2: + movs r0, #0x15 + bl PlaySE + movs r1, #0 + movs r0, #0xc9 + strh r0, [r5, #8] + strh r1, [r5, #0x20] + b _080E6D3E +_080E6BC2: + movs r0, #0x16 + bl PlaySE + ldr r0, _080E6BCC + b _080E6D3C + .align 2, 0 +_080E6BCC: .4byte 0x0000012D +_080E6BD0: + bl GetSavedPlayerCount + adds r4, r0, #0 + bl GetLinkPlayerCount_2 + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + beq _080E6BE4 + b _080E6D3E +_080E6BE4: + ldrh r4, [r5, #0x20] + adds r4, #1 + strh r4, [r5, #0x20] + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + bl GetLinkPlayerCount_2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r1, r1, #1 + cmp r4, r1 + bgt _080E6C02 + b _080E6D3E +_080E6C02: + bl CheckShouldAdvanceLinkState + movs r0, #1 + b _080E6D3C +_080E6C0A: + bl GetSavedPlayerCount + adds r4, r0, #0 + bl GetLinkPlayerCount_2 + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + beq _080E6C1E + b _080E6D3E +_080E6C1E: + movs r0, #1 + b _080E6D3C +_080E6C22: + ldrh r0, [r5, #0x20] + adds r0, #1 + strh r0, [r5, #0x20] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x14 + bgt _080E6C32 + b _080E6D3E +_080E6C32: + movs r0, #1 + strh r0, [r5, #8] + movs r0, #0 + strh r0, [r5, #0x20] + b _080E6D3E +_080E6C3C: + ldr r0, _080E6C60 + ldrb r0, [r0] + cmp r0, #0 + bne _080E6C46 + b _080E6D3E +_080E6C46: + ldr r4, _080E6C64 + bl GetMultiplayerId_ + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + movs r0, #5 + b _080E6D3C + .align 2, 0 +_080E6C60: .4byte 0x030031C4 +_080E6C64: .4byte 0x02021C40 +_080E6C68: + bl GetLinkPlayerCount_2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + strh r0, [r5, #0x14] + strh r1, [r5, #8] + bl GetMultiplayerId_ + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x12] + ldr r0, _080E6CC4 + str r0, [r5] + bl Link_AnyPartnersPlayingRubyOrSapphire + cmp r0, #0 + beq _080E6CDC + ldr r0, _080E6CC8 + ldr r0, [r0] + adds r1, r5, #0 + adds r1, #0xc + bl StorePtrInTaskData + ldr r0, _080E6CCC + movs r1, #0x50 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x1c] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r0, r1, r6 + strh r4, [r0, #8] + ldr r0, _080E6CD0 + ldr r0, [r0] + adds r1, r6, r1 + adds r1, #0x12 + bl StorePtrInTaskData + ldr r1, _080E6CD4 + ldr r0, _080E6CD8 + str r0, [r1] + b _080E6D3E + .align 2, 0 +_080E6CC4: .4byte 0x080E6D45 +_080E6CC8: .4byte 0x02039CB8 +_080E6CCC: .4byte 0x080E6E09 +_080E6CD0: .4byte 0x02039CB4 +_080E6CD4: .4byte 0x0300115C +_080E6CD8: .4byte 0x00001230 +_080E6CDC: + ldr r0, _080E6D14 + ldr r0, [r0] + adds r1, r5, #0 + adds r1, #0xc + bl StorePtrInTaskData + ldr r0, _080E6D18 + movs r1, #0x50 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x1c] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r0, r1, r6 + strh r4, [r0, #8] + ldr r0, _080E6D1C + ldr r0, [r0] + adds r1, r6, r1 + adds r1, #0x12 + bl StorePtrInTaskData + ldr r1, _080E6D20 + ldr r0, _080E6D24 + str r0, [r1] + b _080E6D3E + .align 2, 0 +_080E6D14: .4byte 0x02039CB8 +_080E6D18: .4byte 0x080E6E09 +_080E6D1C: .4byte 0x02039CB4 +_080E6D20: .4byte 0x0300115C +_080E6D24: .4byte 0x00001444 +_080E6D28: + ldrh r0, [r5, #0x1c] + adds r0, #1 + strh r0, [r5, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x3c + ble _080E6D3E + movs r0, #0 + strh r0, [r5, #0x1c] + movs r0, #2 +_080E6D3C: + strh r0, [r5, #8] +_080E6D3E: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end Task_MixingRecordsRecv + + thumb_func_start Task_SendPacket +Task_SendPacket: @ 0x080E6D44 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080E6D68 + adds r5, r1, r0 + movs r2, #8 + ldrsh r1, [r5, r2] + adds r2, r0, #0 + cmp r1, #4 + bhi _080E6DFC + lsls r0, r1, #2 + ldr r1, _080E6D6C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E6D68: .4byte 0x03005B60 +_080E6D6C: .4byte 0x080E6D70 +_080E6D70: @ jump table + .4byte _080E6D84 @ case 0 + .4byte _080E6DA8 @ case 1 + .4byte _080E6DFC @ case 2 + .4byte _080E6DBA @ case 3 + .4byte _080E6DE6 @ case 4 +_080E6D84: + adds r0, r5, #0 + adds r0, #0xc + bl LoadPtrFromTaskData + adds r1, r0, #0 + movs r0, #0x10 + ldrsh r2, [r5, r0] + movs r0, #0xc8 + muls r0, r2, r0 + adds r1, r1, r0 + ldr r0, _080E6DA4 + movs r2, #0xc8 + bl memcpy + b _080E6DD4 + .align 2, 0 +_080E6DA4: .4byte 0x0202257C +_080E6DA8: + bl GetMultiplayerId + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080E6DD4 + movs r0, #1 + bl sub_0800A09C + b _080E6DD4 +_080E6DBA: + ldrh r0, [r5, #0x10] + adds r0, #1 + strh r0, [r5, #0x10] + movs r1, #0x10 + ldrsh r4, [r5, r1] + ldr r0, _080E6DDC + ldr r0, [r0] + movs r1, #0xc8 + bl __udivsi3 + adds r0, #1 + cmp r4, r0 + bne _080E6DE0 +_080E6DD4: + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + b _080E6DFC + .align 2, 0 +_080E6DDC: .4byte 0x0300115C +_080E6DE0: + movs r0, #0 + strh r0, [r5, #8] + b _080E6DFC +_080E6DE6: + movs r1, #0x1c + ldrsh r0, [r5, r1] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldrb r0, [r1, #4] + cmp r0, #0 + bne _080E6DFC + ldr r0, _080E6E04 + str r0, [r5] +_080E6DFC: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080E6E04: .4byte 0x080E6FAD + thumb_func_end Task_SendPacket + + thumb_func_start Task_CopyReceiveBuffer +Task_CopyReceiveBuffer: @ 0x080E6E08 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + lsls r0, r0, #2 + ldr r1, [sp] + adds r0, r0, r1 + lsls r0, r0, #3 + ldr r1, _080E6E4C + adds r0, r0, r1 + mov sl, r0 + bl GetBlockReceivedStatus + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + movs r2, #0 + str r2, [sp, #8] + bl sub_0800A59C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, [sp, #4] + cmp r3, r0 + bne _080E6F16 + movs r4, #0 + mov r8, r4 + b _080E6EF4 + .align 2, 0 +_080E6E4C: .4byte 0x03005B60 +_080E6E50: + ldr r1, [sp, #4] + mov r0, r8 + asrs r1, r0 + movs r0, #1 + ands r1, r0 + movs r2, #1 + add r2, r8 + mov sb, r2 + cmp r1, #0 + beq _080E6EEC + mov r0, sl + adds r0, #0x12 + bl LoadPtrFromTaskData + mov r3, sb + lsls r4, r3, #1 + mov r5, sl + adds r5, #8 + adds r4, r5, r4 + movs r2, #0 + ldrsh r1, [r4, r2] + movs r7, #0xc8 + muls r1, r7, r1 + adds r0, r0, r1 + ldr r3, _080E6EB0 + ldr r1, [r3] + mov r2, r8 + muls r2, r1, r2 + adds r1, r2, #0 + adds r6, r0, r1 + mov r0, r8 + bl GetPlayerRecvBuffer + adds r1, r0, #0 + movs r3, #0 + ldrsh r2, [r4, r3] + adds r0, r2, #1 + muls r0, r7, r0 + ldr r4, _080E6EB0 + ldr r3, [r4] + cmp r0, r3 + bls _080E6EB4 + muls r2, r7, r2 + subs r2, r3, r2 + adds r0, r6, #0 + bl memcpy + b _080E6EBC + .align 2, 0 +_080E6EB0: .4byte 0x0300115C +_080E6EB4: + adds r0, r6, #0 + movs r2, #0xc8 + bl memcpy +_080E6EBC: + mov r0, r8 + bl ResetBlockReceivedFlag + mov r0, sb + lsls r1, r0, #1 + adds r1, r5, r1 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + movs r2, #0 + ldrsh r4, [r1, r2] + ldr r3, _080E6F3C + ldr r0, [r3] + movs r1, #0xc8 + bl __udivsi3 + adds r0, #1 + cmp r4, r0 + bne _080E6EEC + ldr r0, [sp, #8] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #8] +_080E6EEC: + mov r4, sb + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 +_080E6EF4: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r8, r0 + blo _080E6E50 + ldr r2, _080E6F40 + mov r0, sl + movs r3, #8 + ldrsh r1, [r0, r3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrh r1, [r0, #8] + adds r1, #1 + strh r1, [r0, #8] +_080E6F16: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, [sp, #8] + cmp r4, r0 + bne _080E6F2A + ldr r0, [sp] + bl DestroyTask +_080E6F2A: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E6F3C: .4byte 0x0300115C +_080E6F40: .4byte 0x03005B60 + thumb_func_end Task_CopyReceiveBuffer + + thumb_func_start sub_080E6F44 +sub_080E6F44: @ 0x080E6F44 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #3 + ldr r2, _080E6F74 + adds r0, r0, r2 + movs r4, #0x1c + ldrsh r1, [r0, r4] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrb r0, [r0, #4] + cmp r0, #0 + bne _080E6F6C + adds r0, r3, #0 + bl DestroyTask +_080E6F6C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E6F74: .4byte 0x03005B60 + thumb_func_end sub_080E6F44 + + thumb_func_start Task_ReceivePacket +Task_ReceivePacket: @ 0x080E6F78 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080E6FA0 + adds r1, r1, r0 + ldr r0, _080E6FA4 + str r0, [r1] + ldr r0, _080E6FA8 + ldrb r0, [r0] + cmp r0, #1 + bne _080E6F9C + movs r2, #0x12 + ldrsh r0, [r1, r2] + bl ReceiveExchangePacket +_080E6F9C: + pop {r0} + bx r0 + .align 2, 0 +_080E6FA0: .4byte 0x03005B60 +_080E6FA4: .4byte 0x080E6F45 +_080E6FA8: .4byte 0x03001130 + thumb_func_end Task_ReceivePacket + + thumb_func_start Task_SendPacket_SwitchToReceive +Task_SendPacket_SwitchToReceive: @ 0x080E6FAC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080E6FC8 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r0, _080E6FCC + str r0, [r1] + ldr r1, _080E6FD0 + movs r0, #1 + strb r0, [r1] + bx lr + .align 2, 0 +_080E6FC8: .4byte 0x03005B60 +_080E6FCC: .4byte 0x080E6F79 +_080E6FD0: .4byte 0x03001130 + thumb_func_end Task_SendPacket_SwitchToReceive + + thumb_func_start LoadPtrFromTaskData +LoadPtrFromTaskData: @ 0x080E6FD4 + adds r1, r0, #0 + ldrh r0, [r1] + ldrh r1, [r1, #2] + lsls r1, r1, #0x10 + orrs r0, r1 + bx lr + thumb_func_end LoadPtrFromTaskData + + thumb_func_start StorePtrInTaskData +StorePtrInTaskData: @ 0x080E6FE0 + strh r0, [r1] + lsrs r0, r0, #0x10 + strh r0, [r1, #2] + bx lr + thumb_func_end StorePtrInTaskData + + thumb_func_start GetMultiplayerId_ +GetMultiplayerId_: @ 0x080E6FE8 + push {lr} + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetMultiplayerId_ + + thumb_func_start GetPlayerRecvBuffer +GetPlayerRecvBuffer: @ 0x080E6FF8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x10 + ldr r1, _080E7004 + adds r0, r0, r1 + bx lr + .align 2, 0 +_080E7004: .4byte 0x0202207C + thumb_func_end GetPlayerRecvBuffer + + thumb_func_start ShufflePlayerIndices +ShufflePlayerIndices: @ 0x080E7008 + push {r4, lr} + adds r4, r0, #0 + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + beq _080E7040 + cmp r0, #3 + bhi _080E7022 + cmp r0, #2 + beq _080E7028 + b _080E7090 +_080E7022: + cmp r0, #4 + beq _080E706C + b _080E7090 +_080E7028: + movs r3, #0 + ldr r2, _080E703C + adds r1, r4, #0 +_080E702E: + adds r0, r3, r2 + ldrb r0, [r0] + stm r1!, {r0} + adds r3, #1 + cmp r3, #1 + bls _080E702E + b _080E7090 + .align 2, 0 +_080E703C: .4byte 0x08566CC7 +_080E7040: + movs r0, #0 + bl GetLinkPlayerTrainerId + adds r2, r0, #0 + movs r0, #1 + ands r2, r0 + movs r3, #0 + ldr r1, _080E7068 + lsls r0, r2, #1 + adds r0, r0, r2 + adds r1, r0, r1 + adds r2, r4, #0 +_080E7058: + ldrb r0, [r1] + stm r2!, {r0} + adds r1, #1 + adds r3, #1 + cmp r3, #2 + bls _080E7058 + b _080E7090 + .align 2, 0 +_080E7068: .4byte 0x08566CC9 +_080E706C: + movs r0, #0 + bl GetLinkPlayerTrainerId + movs r1, #9 + bl __umodsi3 + adds r2, r0, #0 + movs r3, #0 + ldr r1, _080E7098 + lsls r0, r2, #2 + adds r1, r0, r1 + adds r2, r4, #0 +_080E7084: + ldrb r0, [r1] + stm r2!, {r0} + adds r1, #1 + adds r3, #1 + cmp r3, #3 + bls _080E7084 +_080E7090: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E7098: .4byte 0x08566CCF + thumb_func_end ShufflePlayerIndices + + thumb_func_start ReceiveOldManData +ReceiveOldManData: @ 0x080E709C + push {r4, r5, r6, lr} + sub sp, #0x10 + adds r5, r0, #0 + adds r4, r1, #0 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + mov r0, sp + bl ShufflePlayerIndices + ldr r1, _080E70E4 + lsls r0, r6, #2 + add r0, sp + ldr r2, [r0] + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r1, r0, r1 + ldrb r0, [r1] + subs r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bhi _080E70F8 + ldrh r0, [r1, #0x1a] + cmp r0, #1 + bne _080E70E8 + adds r0, r4, #0 + muls r0, r2, r0 + adds r0, r5, r0 + ldrh r3, [r1, #0x1a] + movs r1, #1 + movs r2, #2 + bl sub_08120E90 + b _080E70F8 + .align 2, 0 +_080E70E4: .4byte 0x020226A0 +_080E70E8: + adds r0, r4, #0 + muls r0, r2, r0 + adds r0, r5, r0 + ldrh r3, [r1, #0x1a] + movs r1, #1 + adds r2, r3, #0 + bl sub_08120E90 +_080E70F8: + ldr r0, _080E7118 + ldr r0, [r0] + lsls r1, r6, #2 + add r1, sp + ldr r1, [r1] + muls r1, r4, r1 + adds r1, r5, r1 + movs r2, #0x40 + bl memcpy + bl ResetMauvilleOldManFlag + add sp, #0x10 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080E7118: .4byte 0x03001140 + thumb_func_end ReceiveOldManData + + thumb_func_start ReceiveBattleTowerData +ReceiveBattleTowerData: @ 0x080E711C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x10 + mov r8, r0 + adds r6, r1, #0 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + mov r0, sp + bl ShufflePlayerIndices + bl Link_AnyPartnersPlayingRubyOrSapphire + cmp r0, #0 + beq _080E71B4 + lsls r0, r5, #2 + mov r1, sp + adds r7, r1, r0 + ldr r0, [r7] + muls r0, r6, r0 + add r0, r8 + adds r4, r6, #0 + muls r4, r5, r4 + mov r1, r8 + adds r5, r1, r4 + adds r1, r5, #0 + bl RubyBattleTowerRecordToEmerald + adds r6, r0, #0 + mov sb, r4 + cmp r6, #1 + bne _080E71CE + ldr r4, _080E7184 + ldr r0, [r7] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrh r0, [r1, #0x1a] + cmp r0, #1 + bne _080E7188 + adds r0, r5, #4 + bl IsStringJapanese + cmp r0, #0 + bne _080E7192 + adds r1, r5, #0 + adds r1, #0xe4 + movs r0, #2 + strb r0, [r1] + b _080E71AC + .align 2, 0 +_080E7184: .4byte 0x020226A0 +_080E7188: + adds r0, r5, #4 + bl IsStringJapanese + cmp r0, #0 + beq _080E719A +_080E7192: + adds r0, r5, #0 + adds r0, #0xe4 + strb r6, [r0] + b _080E71AC +_080E719A: + ldr r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r0, #0x1a] + adds r0, r5, #0 + adds r0, #0xe4 + strb r1, [r0] +_080E71AC: + adds r0, r5, #0 + bl CalcEmeraldBattleTowerChecksum + b _080E71CE +_080E71B4: + adds r4, r6, #0 + muls r4, r5, r4 + mov r1, r8 + adds r0, r1, r4 + lsls r1, r5, #2 + add r1, sp + ldr r1, [r1] + muls r1, r6, r1 + add r1, r8 + movs r2, #0xec + bl memcpy + mov sb, r4 +_080E71CE: + mov r0, r8 + add r0, sb + bl PutNewBattleTowerRecord + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end ReceiveBattleTowerData + + thumb_func_start ReceiveLilycoveLadyData +ReceiveLilycoveLadyData: @ 0x080E71E4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x10 + mov r8, r0 + adds r7, r1, #0 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + mov r0, sp + bl ShufflePlayerIndices + adds r0, r7, #0 + muls r0, r5, r0 + add r0, r8 + ldr r6, _080E722C + ldr r1, [r6] + movs r2, #0x40 + bl memcpy + bl GetLilycoveLadyId + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080E7230 + movs r0, #0x40 + bl Alloc + adds r4, r0, #0 + cmp r4, #0 + beq _080E725A + ldr r1, [r6] + movs r2, #0x40 + bl memcpy + b _080E7232 + .align 2, 0 +_080E722C: .4byte 0x03001150 +_080E7230: + movs r4, #0 +_080E7232: + ldr r0, _080E7268 + ldr r0, [r0] + lsls r1, r5, #2 + add r1, sp + ldr r1, [r1] + muls r1, r7, r1 + add r1, r8 + movs r2, #0x40 + bl memcpy + bl sub_0818D7A4 + cmp r4, #0 + beq _080E725A + adds r0, r4, #0 + bl sub_0818E1CC + adds r0, r4, #0 + bl Free +_080E725A: + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E7268: .4byte 0x03001150 + thumb_func_end ReceiveLilycoveLadyData + + thumb_func_start sub_080E726C +sub_080E726C: @ 0x080E726C + ldrh r0, [r0, #0x20] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bx lr + thumb_func_end sub_080E726C + + thumb_func_start sub_080E7274 +sub_080E7274: @ 0x080E7274 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + sub sp, #0x38 + mov r8, r0 + mov sl, r1 + mov sb, r2 + adds r4, r3, #0 + ldr r5, [sp, #0x54] + lsls r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsrs r4, r4, #0x17 + add r4, sb + ldrb r0, [r4] + mov r6, sl + muls r6, r0, r6 + add r6, r8 + ldrb r0, [r4, #1] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #3 + adds r1, r6, r1 + mov r0, sp + movs r2, #0x38 + bl memcpy + lsls r5, r5, #1 + add r5, sb + ldrb r0, [r5] + mov r1, sl + muls r1, r0, r1 + adds r0, r1, #0 + add r8, r0 + ldrb r1, [r4, #1] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #3 + adds r6, r6, r0 + ldrb r0, [r5, #1] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #3 + add r1, r8 + adds r0, r6, #0 + movs r2, #0x38 + bl memcpy + ldrb r1, [r5, #1] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #3 + add r8, r0 + mov r0, r8 + mov r1, sp + movs r2, #0x38 + bl memcpy + add sp, #0x38 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_080E7274 + + thumb_func_start sub_080E72FC +sub_080E72FC: @ 0x080E72FC + push {r4, lr} + adds r3, r0, #0 + movs r2, #0 + movs r1, #0 + ldr r4, _080E7320 +_080E7306: + adds r0, r3, r1 + ldrb r0, [r0] + adds r0, r2, r0 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r1, #1 + cmp r1, #0xff + ble _080E7306 + strb r2, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E7320: .4byte 0x03001160 + thumb_func_end sub_080E72FC + + thumb_func_start sub_080E7324 +sub_080E7324: @ 0x080E7324 + ldr r0, _080E732C + ldrb r0, [r0] + bx lr + .align 2, 0 +_080E732C: .4byte 0x03001160 + thumb_func_end sub_080E7324 + + thumb_func_start ReceiveDaycareMailData +ReceiveDaycareMailData: @ 0x080E7330 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x50 + str r0, [sp, #0x2c] + str r1, [sp, #0x30] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sb, r2 + bl Random2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x38] + ldr r0, _080E73BC + ldrh r0, [r0, #4] + bl SeedRng2 + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #0 + mov r8, r0 + mov r1, sp + adds r1, #0x1c + str r1, [sp, #0x48] + mov r2, sp + adds r2, #0x1d + str r2, [sp, #0x4c] + mov r3, sp + adds r3, #0xc + str r3, [sp, #0x44] + movs r7, #0xff + add r3, sp, #8 + movs r2, #0 + adds r6, r1, #0 + ldr r5, [sp, #0x4c] +_080E7380: + mov r1, sp + add r1, r8 + adds r1, #4 + ldrb r0, [r1] + orrs r0, r7 + strb r0, [r1] + mov r1, r8 + adds r0, r3, r1 + strb r2, [r0] + lsls r1, r1, #1 + adds r0, r6, r1 + strb r2, [r0] + adds r1, r5, r1 + strb r2, [r1] + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + cmp r0, #3 + bls _080E7380 + movs r2, #0 + mov r8, r2 + lsls r4, r4, #0x10 + str r4, [sp, #0x3c] + ldr r0, [sp, #0x30] + mov r3, sb + muls r3, r0, r3 + str r3, [sp, #0x40] + b _080E74EC + .align 2, 0 +_080E73BC: .4byte 0x020226A0 +_080E73C0: + ldr r1, [sp, #0x30] + mov r0, r8 + muls r0, r1, r0 + ldr r2, [sp, #0x2c] + adds r7, r2, r0 + ldr r1, _080E7408 + mov r3, r8 + lsls r0, r3, #3 + subs r0, r0, r3 + lsls r0, r0, #2 + adds r1, r0, r1 + ldrh r0, [r1, #0x1a] + cmp r0, #1 + bne _080E7458 + movs r6, #0 + movs r0, #0x10 + rsbs r0, r0, #0 + mov sb, r0 +_080E73E4: + lsls r4, r6, #3 + subs r0, r4, r6 + lsls r0, r0, #3 + adds r5, r7, r0 + adds r0, r5, #0 + adds r0, #0x24 + bl IsStringJapanese + cmp r0, #0 + beq _080E740C + adds r0, r5, #0 + adds r0, #0x37 + ldrb r1, [r0] + mov r2, sb + ands r1, r2 + movs r2, #1 + b _080E7418 + .align 2, 0 +_080E7408: .4byte 0x020226A0 +_080E740C: + adds r0, r5, #0 + adds r0, #0x37 + ldrb r1, [r0] + mov r3, sb + ands r1, r3 + movs r2, #2 +_080E7418: + orrs r1, r2 + strb r1, [r0] + subs r0, r4, r6 + lsls r0, r0, #3 + adds r4, r7, r0 + adds r0, r4, #0 + adds r0, #0x2c + bl IsStringJapanese + cmp r0, #0 + beq _080E743C + adds r2, r4, #0 + adds r2, #0x37 + ldrb r1, [r2] + movs r0, #0xf + ands r0, r1 + movs r1, #0x10 + b _080E7448 +_080E743C: + adds r2, r4, #0 + adds r2, #0x37 + ldrb r1, [r2] + movs r0, #0xf + ands r0, r1 + movs r1, #0x20 +_080E7448: + orrs r0, r1 + strb r0, [r2] + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #1 + bls _080E73E4 + b _080E74E2 +_080E7458: + movs r6, #0 + mov sb, r1 + movs r0, #0xf + mov sl, r0 +_080E7460: + lsls r4, r6, #3 + subs r0, r4, r6 + lsls r0, r0, #3 + adds r5, r7, r0 + adds r0, r5, #0 + adds r0, #0x24 + bl IsStringJapanese + cmp r0, #0 + beq _080E7488 + adds r0, r5, #0 + adds r0, #0x37 + ldrb r1, [r0] + movs r2, #0x10 + rsbs r2, r2, #0 + ands r1, r2 + movs r2, #1 + orrs r1, r2 + strb r1, [r0] + b _080E74A0 +_080E7488: + mov r3, sb + ldrb r0, [r3, #0x1a] + adds r2, r5, #0 + adds r2, #0x37 + mov r1, sl + ands r1, r0 + ldrb r0, [r2] + movs r3, #0x10 + rsbs r3, r3, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] +_080E74A0: + subs r0, r4, r6 + lsls r0, r0, #3 + adds r4, r7, r0 + adds r0, r4, #0 + adds r0, #0x2c + bl IsStringJapanese + cmp r0, #0 + beq _080E74C4 + adds r2, r4, #0 + adds r2, #0x37 + ldrb r1, [r2] + mov r0, sl + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r2] + b _080E74D8 +_080E74C4: + mov r0, sb + ldrb r1, [r0, #0x1a] + adds r3, r4, #0 + adds r3, #0x37 + lsls r1, r1, #4 + ldrb r2, [r3] + mov r0, sl + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080E74D8: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #1 + bls _080E7460 +_080E74E2: + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 +_080E74EC: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r8, r0 + bhs _080E74FA + b _080E73C0 +_080E74FA: + movs r1, #0 + str r1, [sp, #0x34] + mov r8, r1 + ldr r2, [sp, #0x3c] + lsrs r0, r2, #0x10 + cmp r1, r0 + bhs _080E7556 + adds r5, r0, #0 +_080E750A: + ldr r3, [sp, #0x30] + mov r0, r8 + muls r0, r3, r0 + ldr r1, [sp, #0x2c] + adds r7, r1, r0 + ldr r0, [r7, #0x70] + cmp r0, #0 + beq _080E7548 + movs r6, #0 + cmp r6, r0 + bhs _080E7548 + adds r3, r7, #0 + adds r3, #0x74 + ldr r2, [sp, #0x48] + mov r0, r8 + lsls r1, r0, #1 + movs r4, #1 +_080E752C: + lsls r0, r6, #1 + adds r0, r3, r0 + ldrh r0, [r0] + cmp r0, #0 + bne _080E753C + adds r0, r6, r1 + adds r0, r2, r0 + strb r4, [r0] +_080E753C: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r0, [r7, #0x70] + cmp r6, r0 + blo _080E752C +_080E7548: + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + cmp r8, r5 + blo _080E750A +_080E7556: + movs r6, #0 + mov r8, r6 + ldr r1, [sp, #0x3c] + cmp r1, #0 + beq _080E764A + add r2, sp, #0x24 + mov sl, r2 + movs r3, #0x25 + add r3, sp + mov sb, r3 +_080E756A: + ldr r1, [sp, #0x30] + mov r0, r8 + muls r0, r1, r0 + ldr r2, [sp, #0x2c] + adds r7, r2, r0 + mov r3, r8 + lsls r1, r3, #1 + ldr r2, [sp, #0x48] + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #1 + beq _080E758C + ldr r3, [sp, #0x4c] + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, #1 + bne _080E7596 +_080E758C: + ldr r0, [sp, #0x34] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x34] +_080E7596: + ldr r2, [sp, #0x48] + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #1 + bne _080E75BA + ldr r3, [sp, #0x4c] + adds r0, r3, r1 + ldrb r2, [r0] + cmp r2, #0 + bne _080E75BA +_080E75AA: + lsls r1, r6, #1 + mov r3, sl + adds r0, r3, r1 + mov r3, r8 + strb r3, [r0] + add r1, sb + strb r2, [r1] + b _080E7634 +_080E75BA: + ldr r2, [sp, #0x48] + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080E75CE + ldr r3, [sp, #0x4c] + adds r0, r3, r1 + ldrb r2, [r0] + cmp r2, #1 + beq _080E75AA +_080E75CE: + ldr r2, [sp, #0x48] + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #1 + bne _080E763A + ldr r3, [sp, #0x4c] + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, #1 + bne _080E763A + lsls r5, r6, #1 + mov r1, sl + adds r0, r1, r5 + mov r2, r8 + strb r2, [r0] + adds r0, r7, #0 + bl sub_080E726C + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r7, #0 + adds r0, #0x38 + bl sub_080E726C + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r4, #0 + bne _080E7616 + cmp r1, #0 + beq _080E761A + mov r3, sb + adds r1, r3, r5 + movs r0, #1 + strb r0, [r1] + b _080E7634 +_080E7616: + cmp r1, #0 + beq _080E762E +_080E761A: + bl Random2 + mov r1, sb + adds r2, r1, r5 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + ands r0, r1 + strb r0, [r2] + b _080E7634 +_080E762E: + mov r2, sb + adds r0, r2, r5 + strb r1, [r0] +_080E7634: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 +_080E763A: + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + mov r8, r3 + ldr r1, [sp, #0x3c] + cmp r0, r1 + blo _080E756A +_080E764A: + movs r2, #0 + mov r8, r2 + ldr r3, [sp, #0x40] + lsls r0, r3, #4 + subs r0, r0, r3 + lsls r0, r0, #3 + ldr r1, [sp, #0x2c] + adds r7, r1, r0 + ldr r1, [sp, #0x44] +_080E765C: + mov r2, r8 + lsls r0, r2, #2 + adds r0, r1, r0 + str r7, [r0] + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + cmp r0, #3 + bls _080E765C + bl sub_080E7324 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #3 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r3, [sp, #0x34] + cmp r3, #3 + beq _080E76AE + cmp r3, #3 + bgt _080E7694 + cmp r3, #2 + beq _080E769C + b _080E7704 +_080E7694: + ldr r0, [sp, #0x34] + cmp r0, #4 + beq _080E76D0 + b _080E7704 +_080E769C: + add r2, sp, #0x24 + movs r0, #1 + str r0, [sp] + ldr r0, [sp, #0x2c] + ldr r1, [sp, #0x30] + movs r3, #0 + bl sub_080E7274 + b _080E7704 +_080E76AE: + ldr r0, _080E76CC + lsls r1, r1, #1 + adds r2, r1, r0 + ldrb r3, [r2] + adds r0, #1 + adds r1, r1, r0 + ldrb r0, [r1] + add r2, sp, #0x24 + str r0, [sp] + ldr r0, [sp, #0x2c] + ldr r1, [sp, #0x30] + bl sub_080E7274 + b _080E7704 + .align 2, 0 +_080E76CC: .4byte 0x08566CF3 +_080E76D0: + add r6, sp, #0x24 + ldr r4, _080E7744 + lsls r5, r1, #2 + adds r0, r5, r4 + ldrb r3, [r0] + adds r0, r4, #1 + adds r0, r5, r0 + ldrb r0, [r0] + str r0, [sp] + ldr r0, [sp, #0x2c] + ldr r1, [sp, #0x30] + adds r2, r6, #0 + bl sub_080E7274 + adds r0, r4, #2 + adds r0, r5, r0 + ldrb r3, [r0] + adds r4, #3 + adds r5, r5, r4 + ldrb r0, [r5] + str r0, [sp] + ldr r0, [sp, #0x2c] + ldr r1, [sp, #0x30] + adds r2, r6, #0 + bl sub_080E7274 +_080E7704: + ldr r1, [sp, #0x2c] + ldr r2, [sp, #0x40] + adds r7, r1, r2 + ldr r4, _080E7748 + ldr r0, [r4] + movs r3, #0xc2 + lsls r3, r3, #6 + adds r0, r0, r3 + adds r1, r7, #0 + movs r2, #0x38 + bl memcpy + ldr r0, [r4] + ldr r1, _080E774C + adds r0, r0, r1 + adds r1, r7, #0 + adds r1, #0x38 + movs r2, #0x38 + bl memcpy + ldr r0, [sp, #0x38] + bl SeedRng + add sp, #0x50 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E7744: .4byte 0x08566CF9 +_080E7748: .4byte 0x03005AEC +_080E774C: .4byte 0x0000310C + thumb_func_end ReceiveDaycareMailData + + thumb_func_start ReceiveGiftItem +ReceiveGiftItem: @ 0x080E7750 + push {r4, lr} + adds r4, r0, #0 + lsls r1, r1, #0x18 + cmp r1, #0 + beq _080E77D4 + ldrh r0, [r4] + cmp r0, #0 + beq _080E77D4 + bl GetPocketByItemId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + bne _080E77D4 + ldrh r0, [r4] + movs r1, #1 + bl CheckBagHasItem + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080E77CC + ldrh r0, [r4] + movs r1, #1 + bl CheckPCHasItem + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080E77CC + ldrh r0, [r4] + movs r1, #1 + bl AddBagItem + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080E77CC + ldr r0, _080E77B8 + ldrh r1, [r4] + bl VarSet + ldr r0, _080E77BC + ldr r1, _080E77C0 + bl StringCopy + ldrh r1, [r4] + ldr r0, _080E77C4 + cmp r1, r0 + bne _080E77D4 + ldr r0, _080E77C8 + bl FlagSet + b _080E77D4 + .align 2, 0 +_080E77B8: .4byte 0x00004001 +_080E77BC: .4byte 0x02021C40 +_080E77C0: .4byte 0x020226A8 +_080E77C4: .4byte 0x00000113 +_080E77C8: .4byte 0x000008B3 +_080E77CC: + ldr r0, _080E77DC + movs r1, #0 + bl VarSet +_080E77D4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E77DC: .4byte 0x00004001 + thumb_func_end ReceiveGiftItem + + thumb_func_start Task_DoRecordMixing +Task_DoRecordMixing: @ 0x080E77E0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080E7804 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #9 + bls _080E77FA + b _080E78F2 +_080E77FA: + lsls r0, r0, #2 + ldr r1, _080E7808 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E7804: .4byte 0x03005B60 +_080E7808: .4byte 0x080E780C +_080E780C: @ jump table + .4byte _080E78DA @ case 0 + .4byte _080E7834 @ case 1 + .4byte _080E7842 @ case 2 + .4byte _080E784C @ case 3 + .4byte _080E7864 @ case 4 + .4byte _080E7878 @ case 5 + .4byte _080E788C @ case 6 + .4byte _080E78A8 @ case 7 + .4byte _080E78D6 @ case 8 + .4byte _080E78E2 @ case 9 +_080E7834: + bl Link_AnyPartnersPlayingRubyOrSapphire + cmp r0, #0 + bne _080E78DA + movs r0, #6 + strh r0, [r4, #8] + b _080E78F2 +_080E7842: + bl SetContinueGameWarpStatusToDynamicWarp + bl FullSaveGame + b _080E78DA +_080E784C: + bl CheckSaveFile + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080E78F2 + bl ClearContinueGameWarpStatus + movs r1, #0 + movs r0, #4 + strh r0, [r4, #8] + strh r1, [r4, #0xa] + b _080E78F2 +_080E7864: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xa + ble _080E78F2 + bl sub_0800A7F8 + b _080E78DA +_080E7878: + ldr r0, _080E7888 + ldrb r0, [r0] + cmp r0, #0 + bne _080E78F2 + adds r0, r5, #0 + bl DestroyTask + b _080E78F2 + .align 2, 0 +_080E7888: .4byte 0x030031C4 +_080E788C: + movs r0, #0 + bl sub_0800FF8C + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080E78F2 + ldr r0, _080E78A4 + movs r1, #5 + bl CreateTask + b _080E78DA + .align 2, 0 +_080E78A4: .4byte 0x081535C5 +_080E78A8: + ldr r0, _080E78C8 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080E78F2 + ldr r0, _080E78CC + ldrb r0, [r0] + cmp r0, #0 + beq _080E78D0 + movs r0, #1 + bl sub_0800FF8C + movs r0, #8 + strh r0, [r4, #8] + b _080E78F2 + .align 2, 0 +_080E78C8: .4byte 0x081535C5 +_080E78CC: .4byte 0x0300319C +_080E78D0: + movs r0, #4 + strh r0, [r4, #8] + b _080E78F2 +_080E78D6: + bl sub_0800A8D4 +_080E78DA: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _080E78F2 +_080E78E2: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080E78F2 + adds r0, r5, #0 + bl DestroyTask +_080E78F2: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end Task_DoRecordMixing + + thumb_func_start sub_080E78F8 +sub_080E78F8: @ 0x080E78F8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + str r0, [sp] + mov sl, r1 + adds r1, r0, #0 + adds r1, #0x38 + movs r0, #0xff + strb r0, [r1] + ldr r1, [sp] + adds r1, #0x7c + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1] + ldr r0, [sp] + mov r1, sl + movs r2, #0x44 + bl memcpy + movs r0, #0 + str r0, [sp, #8] + movs r1, #0 + str r1, [sp, #0xc] + movs r2, #0 + str r2, [sp, #4] + mov r8, r2 + movs r7, #0 + ldr r0, _080E79C4 + mov sb, r0 +_080E7938: + mov r1, sb + ldr r0, [r1] + adds r0, #0xb2 + ldrb r0, [r0] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1e + adds r0, r7, r0 + movs r1, #3 + bl __modsi3 + adds r6, r0, #1 + lsls r0, r6, #4 + adds r0, r0, r6 + lsls r0, r0, #2 + mov r2, sl + adds r1, r0, r2 + adds r0, r1, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #0xff + beq _080E79A0 + adds r5, r1, #0 + adds r5, #0x34 + adds r0, r5, #0 + bl GetTrainerId + adds r4, r0, #0 + mov r1, sb + ldr r0, [r1] + adds r0, #0xa + bl GetTrainerId + cmp r4, r0 + beq _080E7982 + movs r2, #1 + add r8, r2 + str r6, [sp, #4] +_080E7982: + adds r0, r5, #0 + bl GetTrainerId + adds r4, r0, #0 + mov r1, sb + ldr r0, [r1] + adds r0, #0xa + bl GetTrainerId + cmp r4, r0 + bne _080E79A0 + ldr r2, [sp, #0xc] + adds r2, #1 + str r2, [sp, #0xc] + str r6, [sp, #8] +_080E79A0: + adds r7, #1 + cmp r7, #1 + ble _080E7938 + mov r0, r8 + cmp r0, #0 + bne _080E79B8 + ldr r1, [sp, #0xc] + cmp r1, #0 + beq _080E79B8 + mov r8, r1 + ldr r2, [sp, #8] + str r2, [sp, #4] +_080E79B8: + mov r0, r8 + cmp r0, #1 + beq _080E79C8 + cmp r0, #2 + beq _080E79D4 + b _080E7A34 + .align 2, 0 +_080E79C4: .4byte 0x03005AF0 +_080E79C8: + ldr r2, [sp, #4] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + add r1, sl + b _080E79F6 +_080E79D4: + bl Random2 + lsls r0, r0, #0x10 + ldr r1, _080E7A04 + cmp r0, r1 + bls _080E7A0C + ldr r0, _080E7A08 + ldr r0, [r0] + adds r0, #0xb2 + ldrb r0, [r0] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1e + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + add r1, sl + adds r1, #0x44 +_080E79F6: + ldr r0, [sp] + adds r0, #0x44 + movs r2, #0x44 + bl memcpy + b _080E7A34 + .align 2, 0 +_080E7A04: .4byte 0x33330000 +_080E7A08: .4byte 0x03005AF0 +_080E7A0C: + ldr r0, _080E7A44 + ldr r0, [r0] + adds r0, #0xb2 + ldrb r0, [r0] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1e + adds r0, #1 + movs r1, #3 + bl __modsi3 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + add r1, sl + adds r1, #0x44 + ldr r0, [sp] + adds r0, #0x44 + movs r2, #0x44 + bl memcpy +_080E7A34: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E7A44: .4byte 0x03005AF0 + thumb_func_end sub_080E78F8 + + thumb_func_start GetPlayerHallRecords +GetPlayerHallRecords: @ 0x080E7A48 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + mov r8, r0 + movs r6, #0 + ldr r0, _080E7BDC + mov sl, r0 +_080E7A5C: + movs r7, #0 + lsls r0, r6, #5 + adds r6, #1 + mov sb, r6 + mov r1, r8 + adds r4, r0, r1 + adds r0, #6 + adds r6, r1, r0 + adds r5, r4, #0 +_080E7A6E: + mov r2, sl + ldr r1, [r2] + adds r1, #0xa + adds r0, r5, #0 + bl CopyTrainerId + movs r0, #1 + strb r0, [r4, #0xe] + mov r0, sl + ldr r1, [r0] + adds r0, r6, #0 + bl StringCopy + adds r4, #0x10 + adds r6, #0x10 + adds r5, #0x10 + adds r7, #1 + cmp r7, #1 + ble _080E7A6E + mov r6, sb + cmp r6, #8 + ble _080E7A5C + ldr r1, _080E7BDC + mov sl, r1 + ldr r2, _080E7BE0 + str r2, [sp, #4] + movs r4, #0x99 + lsls r4, r4, #1 + add r4, r8 + movs r0, #0x95 + lsls r0, r0, #1 + add r0, r8 + mov sb, r0 + ldr r1, _080E7BE4 + str r1, [sp, #8] + movs r6, #0x92 + lsls r6, r6, #1 + add r6, r8 + movs r5, #0x90 + lsls r5, r5, #1 + add r5, r8 + movs r7, #1 +_080E7AC2: + movs r0, #1 + strb r0, [r4, #8] + mov r2, sl + ldr r1, [r2] + adds r1, #0xa + adds r0, r5, #0 + bl CopyTrainerId + mov r0, sl + ldr r1, [r0] + ldr r2, [sp, #8] + adds r1, r1, r2 + adds r0, r6, #0 + bl CopyTrainerId + mov r0, sl + ldr r1, [r0] + mov r0, sb + bl StringCopy + mov r2, sl + ldr r1, [r2] + ldr r0, [sp, #4] + adds r1, r1, r0 + adds r0, r4, #0 + bl StringCopy + ldr r1, [sp, #4] + adds r1, #8 + str r1, [sp, #4] + adds r4, #0x1c + movs r2, #0x1c + add sb, r2 + ldr r0, [sp, #8] + adds r0, #4 + str r0, [sp, #8] + adds r6, #0x1c + adds r5, #0x1c + subs r7, #1 + cmp r7, #0 + bge _080E7AC2 + movs r6, #0 + ldr r0, _080E7BDC + ldr r3, [r0] + mov r4, r8 + movs r1, #0xc4 + adds r1, r1, r4 + mov sb, r1 + movs r2, #0x84 + adds r2, r2, r4 + mov r8, r2 + movs r0, #0x44 + adds r0, r0, r4 + mov ip, r0 + adds r7, r4, #4 + movs r1, #0xcf + lsls r1, r1, #4 + adds r1, r3, r1 + str r1, [sp] + mov sl, r4 + ldr r2, _080E7BE8 + adds r5, r3, r2 +_080E7B3E: + lsls r2, r6, #1 + ldr r1, [sp] + ldrh r0, [r1] + strh r0, [r7] + ldrh r0, [r5] + strh r0, [r7, #0x20] + ldrh r0, [r5, #4] + mov r1, ip + strh r0, [r1] + ldr r1, _080E7BEC + adds r0, r3, r1 + adds r0, r0, r2 + ldrh r0, [r0] + mov r1, ip + strh r0, [r1, #0x20] + movs r1, #0xdd + lsls r1, r1, #4 + adds r0, r3, r1 + adds r0, r0, r2 + ldrh r0, [r0] + mov r1, r8 + strh r0, [r1] + ldr r1, _080E7BF0 + adds r0, r3, r1 + adds r0, r0, r2 + ldrh r0, [r0] + mov r1, r8 + strh r0, [r1, #0x20] + ldr r1, _080E7BF4 + adds r0, r3, r1 + adds r0, r0, r2 + ldrh r0, [r0] + mov r1, sb + strh r0, [r1] + ldr r1, _080E7BF8 + adds r0, r3, r1 + adds r0, r0, r2 + ldrh r0, [r0] + mov r1, sb + strh r0, [r1, #0x20] + ldr r1, _080E7BFC + adds r0, r3, r1 + adds r0, r0, r2 + ldrh r1, [r0] + movs r0, #0x82 + lsls r0, r0, #1 + add r0, sl + strh r1, [r0] + ldr r1, _080E7C00 + adds r0, r3, r1 + adds r0, r0, r2 + ldrh r1, [r0] + movs r2, #0x94 + lsls r2, r2, #1 + adds r0, r4, r2 + strh r1, [r0] + adds r4, #0x1c + movs r0, #0x10 + add sb, r0 + add r8, r0 + add ip, r0 + adds r7, #0x10 + ldr r1, [sp] + adds r1, #2 + str r1, [sp] + add sl, r0 + adds r5, #2 + adds r6, #1 + cmp r6, #1 + ble _080E7B3E + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E7BDC: .4byte 0x03005AF0 +_080E7BE0: .4byte 0x00000EE1 +_080E7BE4: .4byte 0x00000EF1 +_080E7BE8: .4byte 0x00000CF4 +_080E7BEC: .4byte 0x00000D14 +_080E7BF0: .4byte 0x00000DDE +_080E7BF4: .4byte 0x00000DEA +_080E7BF8: .4byte 0x00000E08 +_080E7BFC: .4byte 0x00000E1E +_080E7C00: .4byte 0x00000CFC + thumb_func_end GetPlayerHallRecords + + thumb_func_start sub_080E7C04 +sub_080E7C04: @ 0x080E7C04 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + movs r0, #0 + mov r8, r0 + adds r6, r1, #0 + adds r6, #0x34 + adds r5, r1, #0 +_080E7C16: + adds r0, r7, #0 + adds r0, #0x34 + bl GetTrainerId + adds r4, r0, #0 + adds r0, r6, #0 + bl GetTrainerId + cmp r4, r0 + bne _080E7C36 + ldrb r0, [r7, #2] + ldrb r1, [r5, #2] + cmp r0, r1 + bne _080E7C36 + movs r0, #1 + b _080E7C46 +_080E7C36: + adds r6, #0x44 + adds r5, #0x44 + movs r0, #1 + add r8, r0 + mov r1, r8 + cmp r1, #3 + ble _080E7C16 + movs r0, #0 +_080E7C46: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_080E7C04 + + thumb_func_start ReceiveApprenticeData +ReceiveApprenticeData: @ 0x080E7C50 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x14 + adds r6, r0, #0 + adds r5, r1, #0 + adds r4, r2, #0 + mov r0, sp + bl ShufflePlayerIndices + lsls r4, r4, #2 + mov r1, sp + adds r0, r1, r4 + ldr r0, [r0] + muls r0, r5, r0 + adds r3, r6, r0 + movs r7, #0 + movs r2, #0 + mov r8, r2 + movs r5, #0 + adds r6, r3, #0 + adds r6, #0x38 + adds r4, r3, #0 +_080E7C7E: + ldrb r0, [r6] + cmp r0, #0xff + beq _080E7C9C + ldr r0, _080E7CB0 + ldr r1, [r0] + adds r1, #0xdc + adds r0, r4, #0 + str r3, [sp, #0x10] + bl sub_080E7C04 + ldr r3, [sp, #0x10] + cmp r0, #0 + bne _080E7C9C + adds r7, #1 + mov r8, r5 +_080E7C9C: + adds r6, #0x44 + adds r4, #0x44 + adds r5, #1 + cmp r5, #1 + ble _080E7C7E + cmp r7, #1 + beq _080E7CB4 + cmp r7, #2 + beq _080E7CF0 + b _080E7D4E + .align 2, 0 +_080E7CB0: .4byte 0x03005AF0 +_080E7CB4: + ldr r4, _080E7CEC + ldr r0, [r4] + adds r1, r0, #0 + adds r1, #0xb2 + ldrb r1, [r1] + lsls r1, r1, #0x1b + lsrs r1, r1, #0x1e + adds r2, r1, #1 + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r0, r0, r1 + adds r0, #0xdc + mov r2, r8 + lsls r1, r2, #4 + add r1, r8 + lsls r1, r1, #2 + adds r1, r1, r3 + movs r2, #0x44 + bl memcpy + ldr r4, [r4] + adds r4, #0xb2 + ldrb r5, [r4] + lsls r0, r5, #0x1b + lsrs r0, r0, #0x1e + adds r0, #1 + b _080E7D38 + .align 2, 0 +_080E7CEC: .4byte 0x03005AF0 +_080E7CF0: + movs r5, #0 + adds r6, r3, #0 +_080E7CF4: + movs r0, #1 + eors r0, r5 + ldr r7, _080E7D5C + ldr r4, [r7] + adds r1, r4, #0 + adds r1, #0xb2 + ldrb r1, [r1] + lsls r1, r1, #0x1b + lsrs r1, r1, #0x1e + adds r0, r0, r1 + movs r1, #3 + bl __modsi3 + adds r2, r0, #1 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r4, r4, r0 + adds r4, #0xdc + adds r0, r4, #0 + adds r1, r6, #0 + movs r2, #0x44 + bl memcpy + adds r6, #0x44 + adds r5, #1 + cmp r5, #1 + ble _080E7CF4 + ldr r4, [r7] + adds r4, #0xb2 + ldrb r5, [r4] + lsls r0, r5, #0x1b + lsrs r0, r0, #0x1e + adds r0, #2 +_080E7D38: + movs r1, #3 + bl __modsi3 + movs r1, #3 + ands r0, r1 + lsls r0, r0, #3 + movs r1, #0x19 + rsbs r1, r1, #0 + ands r1, r5 + orrs r1, r0 + strb r1, [r4] +_080E7D4E: + add sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E7D5C: .4byte 0x03005AF0 + thumb_func_end ReceiveApprenticeData + + thumb_func_start sub_080E7D60 +sub_080E7D60: @ 0x080E7D60 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x54 + str r0, [sp] + ldr r0, [sp, #0x74] + movs r4, #0 + mov r8, r4 + movs r5, #0 + str r5, [sp, #4] + ldr r4, _080E7D7C + b _080E7D88 + .align 2, 0 +_080E7D7C: .4byte 0x03001168 +_080E7D80: + adds r1, r1, r2 + ldr r6, [sp, #4] + adds r6, #1 + str r6, [sp, #4] +_080E7D88: + ldr r5, [sp, #4] + cmp r5, r0 + bge _080E7D9E + cmp r5, r3 + beq _080E7D98 + stm r4!, {r1} + movs r6, #1 + add r8, r6 +_080E7D98: + mov r5, r8 + cmp r5, #3 + bne _080E7D80 +_080E7D9E: + movs r6, #0 + str r6, [sp, #4] + subs r0, #1 + str r0, [sp, #0x24] +_080E7DA6: + movs r0, #0 + str r0, [sp, #8] + ldr r1, [sp, #4] + adds r1, #1 + str r1, [sp, #0x28] + ldr r2, [sp, #4] + lsls r2, r2, #1 + str r2, [sp, #0x34] + ldr r3, [sp, #4] + adds r3, r2, r3 + str r3, [sp, #0x10] + movs r4, #0 + str r4, [sp, #0x44] + movs r5, #0 + str r5, [sp, #0x48] +_080E7DC4: + movs r6, #0 + mov r8, r6 + ldr r0, _080E805C + ldr r1, [r0] + ldr r2, [sp, #0x10] + lsls r0, r2, #5 + ldr r3, [sp, #0x48] + adds r0, r3, r0 + adds r3, r0, r1 + lsls r0, r2, #6 + ldr r4, [sp, #0x44] + adds r0, r4, r0 + ldr r5, [sp] + adds r2, r0, r5 +_080E7DE0: + adds r0, r2, #0 + movs r6, #0x87 + lsls r6, r6, #2 + adds r1, r3, r6 + ldm r1!, {r4, r5, r6} + stm r0!, {r4, r5, r6} + ldr r1, [r1] + str r1, [r0] + adds r3, #0x10 + adds r2, #0x10 + movs r0, #1 + add r8, r0 + mov r1, r8 + cmp r1, #2 + ble _080E7DE0 + movs r2, #0 + mov r8, r2 + ldr r3, [sp, #0x24] + cmp r8, r3 + bge _080E7EC4 + ldr r4, [sp, #4] + lsls r4, r4, #5 + mov sb, r4 + ldr r5, [sp, #8] + lsls r7, r5, #4 + ldr r6, [sp, #0x34] + ldr r1, [sp, #4] + adds r0, r6, r1 + lsls r0, r0, #6 + str r0, [sp, #0x14] + ldr r2, [sp] + adds r0, r2, r0 + ldr r3, [sp, #0x44] + str r3, [sp, #0x18] + adds r0, r0, r3 + str r0, [sp, #0x1c] + ldr r4, [sp, #0x14] + adds r0, r3, r4 + adds r0, r0, r2 + adds r0, #0x30 + mov sl, r0 +_080E7E32: + movs r5, #0 + str r5, [sp, #0xc] + movs r3, #0 + mov r6, r8 + lsls r6, r6, #2 + str r6, [sp, #0x38] + ldr r1, [sp, #0x18] + ldr r2, [sp, #0x14] + adds r0, r1, r2 + ldr r4, [sp] + adds r5, r0, r4 + ldr r0, _080E8060 + adds r0, r6, r0 + str r0, [sp, #0x50] +_080E7E4E: + lsls r0, r3, #4 + ldr r6, [sp, #0x1c] + adds r0, r6, r0 + str r3, [sp, #0x4c] + bl GetTrainerId + adds r4, r0, #0 + ldr r1, [sp, #0x50] + ldr r0, [r1] + add r0, sb + adds r0, r0, r7 + bl GetTrainerId + ldr r3, [sp, #0x4c] + cmp r4, r0 + bne _080E7E90 + ldr r2, [sp, #0xc] + adds r2, #1 + str r2, [sp, #0xc] + ldr r4, [sp, #0x50] + ldr r0, [r4] + mov r6, sb + adds r1, r7, r6 + adds r1, r0, r1 + ldrh r0, [r5, #4] + ldrh r2, [r1, #4] + cmp r0, r2 + bhs _080E7E90 + adds r0, r5, #0 + ldm r1!, {r2, r4, r6} + stm r0!, {r2, r4, r6} + ldr r1, [r1] + str r1, [r0] +_080E7E90: + adds r5, #0x10 + adds r3, #1 + cmp r3, #2 + ble _080E7E4E + ldr r3, [sp, #0xc] + cmp r3, #0 + bne _080E7EB6 + ldr r0, _080E8060 + ldr r4, [sp, #0x38] + adds r0, r4, r0 + ldr r0, [r0] + mov r5, sb + adds r2, r7, r5 + mov r1, sl + adds r0, r0, r2 + ldm r0!, {r2, r3, r6} + stm r1!, {r2, r3, r6} + ldr r0, [r0] + str r0, [r1] +_080E7EB6: + movs r4, #0x10 + add sl, r4 + movs r5, #1 + add r8, r5 + ldr r6, [sp, #0x24] + cmp r8, r6 + blt _080E7E32 +_080E7EC4: + ldr r0, [sp, #0x44] + adds r0, #0x60 + str r0, [sp, #0x44] + ldr r1, [sp, #0x48] + adds r1, #0x30 + str r1, [sp, #0x48] + ldr r2, [sp, #8] + adds r2, #1 + str r2, [sp, #8] + cmp r2, #1 + bgt _080E7EDC + b _080E7DC4 +_080E7EDC: + ldr r3, [sp, #0x28] + str r3, [sp, #4] + cmp r3, #8 + bgt _080E7EE6 + b _080E7DA6 +_080E7EE6: + movs r4, #0 + str r4, [sp, #8] +_080E7EEA: + ldr r5, [sp, #8] + adds r5, #1 + str r5, [sp, #0x2c] + ldr r0, _080E805C + ldr r1, [r0] + movs r0, #0x54 + ldr r6, [sp, #8] + muls r0, r6, r0 + adds r3, r0, r1 + movs r0, #0xa8 + muls r0, r6, r0 + ldr r1, [sp] + adds r2, r0, r1 + movs r4, #2 + mov r8, r4 +_080E7F08: + movs r5, #0xd8 + lsls r5, r5, #3 + adds r0, r2, r5 + ldr r6, _080E8064 + adds r1, r3, r6 + ldm r1!, {r4, r5, r6} + stm r0!, {r4, r5, r6} + ldm r1!, {r4, r5, r6} + stm r0!, {r4, r5, r6} + ldr r1, [r1] + str r1, [r0] + adds r3, #0x1c + adds r2, #0x1c + movs r0, #1 + rsbs r0, r0, #0 + add r8, r0 + mov r1, r8 + cmp r1, #0 + bge _080E7F08 + movs r2, #0 + mov r8, r2 + ldr r3, [sp, #0x24] + cmp r8, r3 + blt _080E7F3A + b _080E8042 +_080E7F3A: + ldr r4, [sp, #8] + lsls r1, r4, #3 + movs r0, #0xa8 + adds r5, r4, #0 + muls r5, r0, r5 + str r5, [sp, #0x20] + str r5, [sp, #0x3c] + subs r1, r1, r4 + lsls r1, r1, #2 + mov sl, r1 +_080E7F4E: + movs r6, #0 + str r6, [sp, #0xc] + mov r0, r8 + lsls r0, r0, #2 + str r0, [sp, #0x38] + mov r1, r8 + adds r1, #1 + str r1, [sp, #0x30] + ldr r0, _080E8060 + ldr r2, [sp, #0x38] + adds r2, r2, r0 + mov sb, r2 + ldr r3, [sp] + movs r4, #0xd8 + lsls r4, r4, #3 + adds r0, r3, r4 + ldr r5, [sp, #0x3c] + adds r7, r5, r0 + str r6, [sp, #0x40] + movs r3, #2 +_080E7F76: + ldr r1, [sp, #0x20] + movs r2, #0xd8 + lsls r2, r2, #3 + adds r0, r1, r2 + ldr r4, [sp] + adds r0, r4, r0 + ldr r6, [sp, #0x40] + adds r5, r0, r6 + adds r0, r5, #0 + str r3, [sp, #0x4c] + bl GetTrainerId + adds r4, r0, #0 + movs r6, #0x90 + lsls r6, r6, #1 + add r6, sl + mov r1, sb + ldr r0, [r1] + adds r0, r0, r6 + bl GetTrainerId + ldr r3, [sp, #0x4c] + cmp r4, r0 + bne _080E7FF0 + adds r0, r5, #4 + bl GetTrainerId + adds r4, r0, #0 + mov r2, sb + ldr r0, [r2] + adds r0, r0, r6 + adds r0, #4 + bl GetTrainerId + ldr r3, [sp, #0x4c] + cmp r4, r0 + bne _080E7FF0 + ldr r4, [sp, #0xc] + adds r4, #1 + str r4, [sp, #0xc] + mov r5, sb + ldr r0, [r5] + mov r6, sl + adds r2, r0, r6 + movs r0, #0x94 + lsls r0, r0, #1 + adds r1, r2, r0 + ldrh r0, [r7, #8] + ldrh r1, [r1] + cmp r0, r1 + bhs _080E7FF0 + adds r0, r7, #0 + movs r4, #0x90 + lsls r4, r4, #1 + adds r1, r2, r4 + ldm r1!, {r2, r5, r6} + stm r0!, {r2, r5, r6} + ldm r1!, {r4, r5, r6} + stm r0!, {r4, r5, r6} + ldr r1, [r1] + str r1, [r0] +_080E7FF0: + adds r7, #0x1c + ldr r0, [sp, #0x40] + adds r0, #0x1c + str r0, [sp, #0x40] + subs r3, #1 + cmp r3, #0 + bge _080E7F76 + ldr r1, [sp, #0xc] + cmp r1, #0 + bne _080E8038 + mov r0, r8 + adds r0, #3 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + ldr r2, [sp, #0x20] + adds r1, r1, r2 + ldr r3, [sp] + adds r1, r3, r1 + ldr r0, _080E8060 + ldr r4, [sp, #0x38] + adds r0, r4, r0 + ldr r0, [r0] + add r0, sl + movs r5, #0xd8 + lsls r5, r5, #3 + adds r1, r1, r5 + movs r6, #0x90 + lsls r6, r6, #1 + adds r0, r0, r6 + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldm r0!, {r2, r5, r6} + stm r1!, {r2, r5, r6} + ldr r0, [r0] + str r0, [r1] +_080E8038: + ldr r3, [sp, #0x30] + mov r8, r3 + ldr r4, [sp, #0x24] + cmp r8, r4 + blt _080E7F4E +_080E8042: + ldr r5, [sp, #0x2c] + str r5, [sp, #8] + cmp r5, #1 + bgt _080E804C + b _080E7EEA +_080E804C: + add sp, #0x54 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E805C: .4byte 0x03005AF0 +_080E8060: .4byte 0x03001168 +_080E8064: .4byte 0x0000057C + thumb_func_end sub_080E7D60 + + thumb_func_start sub_080E8068 +sub_080E8068: @ 0x080E8068 + push {r4, r5, r6, r7, lr} + mov ip, r0 + adds r7, r1, #0 + movs r5, #0 +_080E8070: + movs r2, #0 + movs r4, #1 + rsbs r4, r4, #0 + movs r1, #0 + adds r6, r5, #1 + adds r3, r7, #0 +_080E807C: + ldrh r0, [r3, #4] + cmp r0, r2 + ble _080E8086 + adds r4, r1, #0 + adds r2, r0, #0 +_080E8086: + adds r3, #0x10 + adds r1, #1 + cmp r1, #5 + ble _080E807C + cmp r4, #0 + blt _080E80A8 + lsls r1, r5, #4 + lsls r2, r4, #4 + adds r2, r2, r7 + add r1, ip + adds r0, r2, #0 + ldm r0!, {r3, r4, r5} + stm r1!, {r3, r4, r5} + ldr r0, [r0] + str r0, [r1] + movs r0, #0 + strh r0, [r2, #4] +_080E80A8: + adds r5, r6, #0 + cmp r5, #2 + ble _080E8070 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_080E8068 + + thumb_func_start sub_080E80B4 +sub_080E80B4: @ 0x080E80B4 + push {r4, r5, r6, r7, lr} + mov ip, r0 + adds r6, r1, #0 + movs r5, #0 +_080E80BC: + movs r3, #0 + movs r4, #1 + rsbs r4, r4, #0 + movs r2, #0 + adds r7, r5, #1 + adds r1, r6, #0 +_080E80C8: + ldrh r0, [r1, #8] + cmp r0, r3 + ble _080E80D2 + adds r4, r2, #0 + adds r3, r0, #0 +_080E80D2: + adds r1, #0x1c + adds r2, #1 + cmp r2, #5 + ble _080E80C8 + cmp r4, #0 + blt _080E8100 + lsls r1, r5, #3 + subs r1, r1, r5 + lsls r1, r1, #2 + lsls r2, r4, #3 + subs r2, r2, r4 + lsls r2, r2, #2 + adds r2, r2, r6 + add r1, ip + adds r0, r2, #0 + ldm r0!, {r3, r4, r5} + stm r1!, {r3, r4, r5} + ldm r0!, {r3, r4, r5} + stm r1!, {r3, r4, r5} + ldr r0, [r0] + str r0, [r1] + movs r0, #0 + strh r0, [r2, #8] +_080E8100: + adds r5, r7, #0 + cmp r5, #2 + ble _080E80BC + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_080E80B4 + + thumb_func_start sub_080E810C +sub_080E810C: @ 0x080E810C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sb, r0 + movs r0, #0 + ldr r1, _080E818C + mov sl, r1 +_080E811E: + lsls r1, r0, #1 + adds r2, r0, #1 + mov r8, r2 + adds r1, r1, r0 + lsls r0, r1, #5 + movs r2, #0x87 + lsls r2, r2, #2 + adds r7, r0, r2 + lsls r1, r1, #6 + mov r0, sb + adds r4, r0, r1 + movs r6, #0 + movs r5, #1 +_080E8138: + mov r1, sl + ldr r0, [r1] + adds r0, r0, r7 + adds r0, r0, r6 + adds r1, r4, #0 + bl sub_080E8068 + adds r4, #0x60 + adds r6, #0x30 + subs r5, #1 + cmp r5, #0 + bge _080E8138 + mov r0, r8 + cmp r0, #8 + ble _080E811E + movs r5, #0 + ldr r4, _080E818C +_080E815A: + movs r0, #0x54 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r2, _080E8190 + adds r1, r1, r2 + ldr r0, [r4] + adds r0, r0, r1 + movs r1, #0xa8 + muls r1, r5, r1 + movs r2, #0xd8 + lsls r2, r2, #3 + adds r1, r1, r2 + add r1, sb + bl sub_080E80B4 + adds r5, #1 + cmp r5, #1 + ble _080E815A + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E818C: .4byte 0x03005AF0 +_080E8190: .4byte 0x0000057C + thumb_func_end sub_080E810C + + thumb_func_start ReceiveRankingHallRecords +ReceiveRankingHallRecords: @ 0x080E8194 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #4 + adds r6, r0, #0 + mov r8, r1 + mov sb, r2 + bl GetLinkPlayerCount + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0x81 + lsls r0, r0, #4 + bl AllocZeroed + adds r5, r0, #0 + str r4, [sp] + adds r1, r6, #0 + mov r2, r8 + mov r3, sb + bl sub_080E7D60 + adds r0, r5, #0 + bl sub_080E810C + adds r0, r5, #0 + bl Free + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ReceiveRankingHallRecords + + thumb_func_start sub_080E81E0 +sub_080E81E0: @ 0x080E81E0 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r5, _080E8228 + ldr r4, _080E822C + ldr r1, [r4] + movs r0, #0xc2 + lsls r0, r0, #6 + adds r1, r1, r0 + adds r0, r5, #0 + movs r2, #0x38 + bl memcpy + ldr r1, [r4] + ldr r0, _080E8230 + adds r1, r1, r0 + adds r0, r5, #0 + adds r0, #0x38 + movs r2, #0x38 + bl memcpy + ldr r0, [r4] + ldr r1, _080E8234 + adds r0, r0, r1 + adds r1, r5, #0 + bl InitDaycareMailRecordMixing + ldr r0, _080E8238 + ldr r1, [r0] + adds r0, r6, #0 + movs r2, #0x78 + bl memcpy + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080E8228: .4byte 0x02039C3C +_080E822C: .4byte 0x03005AEC +_080E8230: .4byte 0x0000310C +_080E8234: .4byte 0x00003030 +_080E8238: .4byte 0x03001148 + thumb_func_end sub_080E81E0 + + thumb_func_start SanitizeEmeraldBattleTowerRecord +SanitizeEmeraldBattleTowerRecord: @ 0x080E823C + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + movs r7, #0 + ldr r0, [r6, #0x70] + cmp r7, r0 + bhs _080E8280 + adds r5, r6, #0 + adds r5, #0x2c + adds r4, r6, #0 + adds r4, #0x24 +_080E8250: + adds r0, r4, #0 + bl IsStringJapanese + cmp r0, #0 + beq _080E8262 + adds r0, r4, #0 + ldr r1, _080E8288 + bl StringCopy +_080E8262: + adds r0, r5, #0 + bl IsStringJapanese + cmp r0, #0 + beq _080E8274 + adds r0, r4, #0 + ldr r1, _080E828C + bl StringCopy +_080E8274: + adds r5, #0x38 + adds r4, #0x38 + adds r7, #1 + ldr r0, [r6, #0x70] + cmp r7, r0 + blo _080E8250 +_080E8280: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E8288: .4byte 0x085CCEC5 +_080E828C: .4byte 0x085CCECD + thumb_func_end SanitizeEmeraldBattleTowerRecord + + thumb_func_start sub_080E8290 +sub_080E8290: @ 0x080E8290 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrh r0, [r6, #2] + cmp r0, #0 + beq _080E82D4 + adds r0, r6, #4 + bl IsStringJapanese + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r5, r1, #0x1f + cmp r5, #0 + bne _080E82CA + movs r4, #0 + b _080E82B0 +_080E82AE: + adds r4, #1 +_080E82B0: + cmp r4, #2 + bgt _080E82C6 + movs r0, #0x2c + muls r0, r4, r0 + adds r0, r0, r6 + adds r0, #0x3c + bl IsStringJapanese + cmp r0, #0 + beq _080E82AE + adds r5, #1 +_080E82C6: + cmp r5, #0 + beq _080E82D4 +_080E82CA: + adds r0, r6, #0 + movs r1, #0 + movs r2, #0xa4 + bl memset +_080E82D4: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080E8290 + + thumb_func_start SanitizeRubyBattleTowerRecord +SanitizeRubyBattleTowerRecord: @ 0x080E82DC + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SanitizeRubyBattleTowerRecord + + thumb_func_start sub_080E82F4 +sub_080E82F4: @ 0x080E82F4 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + ldr r0, _080E831C + ldrb r0, [r0] + cmp r0, #0 + beq _080E8316 + bl m4aSoundMain + bl m4aSoundMain + bl m4aSoundMain +_080E8316: + pop {r0} + bx r0 + .align 2, 0 +_080E831C: .4byte 0x02039CBC + thumb_func_end sub_080E82F4 + + thumb_func_start sub_080E8320 +sub_080E8320: @ 0x080E8320 + push {r4, lr} + sub sp, #4 + ldr r1, _080E8340 + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, r1, #0 + cmp r0, #7 + bls _080E8336 + b _080E8480 +_080E8336: + lsls r0, r0, #2 + ldr r1, _080E8344 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E8340: .4byte 0x03002360 +_080E8344: .4byte 0x080E8348 +_080E8348: @ jump table + .4byte _080E8368 @ case 0 + .4byte _080E8380 @ case 1 + .4byte _080E8386 @ case 2 + .4byte _080E83AC @ case 3 + .4byte _080E83B4 @ case 4 + .4byte _080E83C8 @ case 5 + .4byte _080E83E8 @ case 6 + .4byte _080E840C @ case 7 +_080E8368: + movs r0, #0 + bl SetVBlankCallback + bl sub_080E9560 + ldr r1, _080E837C + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _080E8400 + .align 2, 0 +_080E837C: .4byte 0x03002360 +_080E8380: + bl sub_080E96A8 + b _080E83F8 +_080E8386: + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _080E83A4 + movs r0, #0 + movs r2, #1 + bl InitBgsFromTemplates + bl sub_080E96DC + ldr r1, _080E83A8 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _080E8400 + .align 2, 0 +_080E83A4: .4byte 0x08566D08 +_080E83A8: .4byte 0x03002360 +_080E83AC: + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r2, r0 + b _080E8400 +_080E83B4: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080E8480 + movs r0, #0 + bl ShowBg + b _080E83F8 +_080E83C8: + ldr r0, _080E83E0 + bl InitWindows + bl DeactivateAllTextPrinters + bl sub_08196F98 + ldr r1, _080E83E4 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _080E8400 + .align 2, 0 +_080E83E0: .4byte 0x08566D0C +_080E83E4: .4byte 0x03002360 +_080E83E8: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade +_080E83F8: + ldr r1, _080E8408 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 +_080E8400: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080E8480 + .align 2, 0 +_080E8408: .4byte 0x03002360 +_080E840C: + bl sub_080E96C8 + ldr r1, _080E8488 + movs r0, #0x48 + bl SetGpuReg + movs r0, #0x4a + movs r1, #0x31 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0xe1 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #7 + bl SetGpuReg + movs r0, #1 + bl EnableInterrupts + ldr r0, _080E848C + bl SetVBlankCallback + ldr r0, _080E8490 + bl SetMainCallback2 + ldr r0, _080E8494 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080E8498 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r4, #0 + movs r0, #0 + strh r0, [r1, #8] + strh r0, [r1, #0xa] + strh r0, [r1, #0xc] + strh r0, [r1, #0xe] + strh r0, [r1, #0x10] + ldr r0, _080E849C + strb r4, [r0] + bl m4aSoundInit + ldr r0, _080E84A0 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + strb r4, [r0] +_080E8480: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E8488: .4byte 0x00001111 +_080E848C: .4byte 0x080E82F5 +_080E8490: .4byte 0x080E82DD +_080E8494: .4byte 0x080E84A5 +_080E8498: .4byte 0x03005B60 +_080E849C: .4byte 0x02039CBC +_080E84A0: .4byte 0x03002360 + thumb_func_end sub_080E8320 + + thumb_func_start SanitizeDayCareMailForRuby +SanitizeDayCareMailForRuby: @ 0x080E84A4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x48 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + ldr r1, _080E85D4 + add r0, sp, #0xc + movs r2, #0x16 + bl memcpy + add r0, sp, #0x24 + mov r8, r0 + ldr r1, _080E85D8 + movs r2, #4 + bl memcpy + add r2, sp, #0x28 + mov sb, r2 + ldr r1, _080E85DC + mov r0, sb + movs r2, #4 + bl memcpy + add r6, sp, #0x2c + ldr r1, _080E85E0 + adds r0, r6, #0 + movs r2, #0xc + bl memcpy + add r7, sp, #0x38 + ldr r1, _080E85E4 + adds r0, r7, #0 + movs r2, #0xe + bl memcpy + ldr r0, _080E85E8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _080E85C2 + movs r0, #0 + movs r1, #0 + bl SetStandardWindowBorderStyle + str r5, [sp] + movs r4, #0xff + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #1 + add r2, sp, #0xc + movs r3, #0 + bl AddTextPrinterParameterized + movs r0, #0xe + str r0, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #1 + adds r2, r7, #0 + movs r3, #0x64 + bl AddTextPrinterParameterized + movs r0, #0 + bl sub_080E9734 + movs r0, #1 + movs r1, #0 + bl SetStandardWindowBorderStyle + str r5, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #1 + movs r1, #1 + mov r2, r8 + movs r3, #0 + bl AddTextPrinterParameterized + str r5, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #1 + movs r1, #1 + adds r2, r6, #0 + movs r3, #0x64 + bl AddTextPrinterParameterized + movs r0, #1 + bl sub_080E9734 + movs r0, #2 + movs r1, #0 + bl SetStandardWindowBorderStyle + str r5, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #2 + movs r1, #1 + mov r2, sb + movs r3, #0 + bl AddTextPrinterParameterized + str r5, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #2 + movs r1, #1 + adds r2, r6, #0 + movs r3, #0x64 + bl AddTextPrinterParameterized + movs r0, #2 + bl sub_080E9734 + movs r0, #0x40 + movs r1, #0xef + bl SetGpuReg + movs r0, #0x44 + movs r1, #0x30 + bl SetGpuReg + movs r0, #0 + bl sub_080E88E8 + ldr r1, _080E85EC + mov r2, sl + lsls r0, r2, #2 + add r0, sl + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080E85F0 + str r1, [r0] +_080E85C2: + add sp, #0x48 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E85D4: .4byte 0x08566D2C +_080E85D8: .4byte 0x08566D42 +_080E85DC: .4byte 0x08566D46 +_080E85E0: .4byte 0x08566D4A +_080E85E4: .4byte 0x08566D56 +_080E85E8: .4byte 0x02037C74 +_080E85EC: .4byte 0x03005B60 +_080E85F0: .4byte 0x080E85F5 + thumb_func_end SanitizeDayCareMailForRuby + + thumb_func_start sub_080E85F4 +sub_080E85F4: @ 0x080E85F4 + push {r4, r5, r6, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _080E8674 + adds r4, r4, r0 + movs r6, #0xe0 + str r6, [sp] + movs r5, #0xc + str r5, [sp, #4] + movs r0, #1 + movs r1, #0x11 + movs r2, #0 + movs r3, #0xe + bl FillWindowPixelRect + ldr r1, _080E8678 + adds r0, r1, #0 + ldrh r2, [r4, #0xa] + adds r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + bl sub_080E8928 + ldr r1, _080E867C + movs r2, #0xa + ldrsh r0, [r4, r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #1 + bl sub_080E8978 + str r6, [sp] + str r5, [sp, #4] + movs r0, #2 + movs r1, #0x11 + movs r2, #0 + movs r3, #0xe + bl FillWindowPixelRect + ldrh r0, [r4, #0xc] + movs r1, #2 + bl sub_080E8928 + ldr r1, _080E8680 + movs r2, #0xc + ldrsh r0, [r4, r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #2 + bl sub_080E8978 + ldr r0, _080E8684 + str r0, [r4] + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080E8674: .4byte 0x03005B60 +_080E8678: .4byte 0x0000015D +_080E867C: .4byte 0x08568730 +_080E8680: .4byte 0x085682F8 +_080E8684: .4byte 0x080E8879 + thumb_func_end sub_080E85F4 + + thumb_func_start sub_080E8688 +sub_080E8688: @ 0x080E8688 + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080E86BC + adds r5, r1, r0 + ldr r6, _080E86C0 + ldrh r2, [r6, #0x2e] + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r2 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + beq _080E86C8 + movs r0, #0 + movs r1, #1 + strh r1, [r5, #0x24] + strh r0, [r5, #0x26] +_080E86B4: + ldr r0, _080E86C4 + str r0, [r5] + b _080E8868 + .align 2, 0 +_080E86BC: .4byte 0x03005B60 +_080E86C0: .4byte 0x03002360 +_080E86C4: .4byte 0x080E89ED +_080E86C8: + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r2 + cmp r0, #0 + beq _080E86D8 + strh r1, [r5, #0x24] + strh r1, [r5, #0x26] + b _080E86B4 +_080E86D8: + movs r7, #1 + movs r4, #1 + ands r4, r2 + cmp r4, #0 + beq _080E878C + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _080E8722 + movs r2, #0x10 + ldrsh r0, [r5, r2] + cmp r0, #0 + beq _080E870C + movs r3, #0xc + ldrsh r4, [r5, r3] + cmp r4, #0 + beq _080E8702 + ldrh r0, [r5, #0x10] + bl m4aSongNumStop + b _080E8716 +_080E8702: + ldrh r0, [r5, #0x10] + bl m4aSongNumStop + strh r4, [r5, #0x10] + b _080E8868 +_080E870C: + movs r1, #0xc + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _080E8716 + b _080E8868 +_080E8716: + ldrh r0, [r5, #0xc] + bl m4aSongNumStart + ldrh r0, [r5, #0xc] + strh r0, [r5, #0x10] + b _080E8868 +_080E8722: + ldrh r1, [r5, #0xe] + movs r2, #0xe + ldrsh r0, [r5, r2] + cmp r0, #0 + beq _080E8768 + movs r3, #0xa + ldrsh r4, [r5, r3] + cmp r4, #0 + beq _080E8754 + ldr r0, _080E8750 + adds r4, r0, #0 + adds r0, r1, r4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl m4aSongNumStop + ldrh r1, [r5, #0xa] + adds r4, r4, r1 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r4, #0 + b _080E877C + .align 2, 0 +_080E8750: .4byte 0x0000015D +_080E8754: + ldr r2, _080E8764 + adds r0, r1, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl m4aSongNumStop + strh r4, [r5, #0xe] + b _080E8868 + .align 2, 0 +_080E8764: .4byte 0x0000015D +_080E8768: + ldrh r1, [r5, #0xa] + movs r3, #0xa + ldrsh r0, [r5, r3] + cmp r0, #0 + bne _080E8774 + b _080E8868 +_080E8774: + ldr r2, _080E8788 + adds r0, r1, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_080E877C: + bl m4aSongNumStart + ldrh r0, [r5, #0xa] + strh r0, [r5, #0xe] + b _080E8868 + .align 2, 0 +_080E8788: .4byte 0x0000015D +_080E878C: + movs r0, #2 + ands r0, r2 + cmp r0, #0 + beq _080E87B4 + movs r0, #5 + bl m4aSongNumStart + movs r0, #1 + rsbs r0, r0, #0 + str r4, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _080E87B0 + str r0, [r5] + b _080E8868 + .align 2, 0 +_080E87B0: .4byte 0x080E88A9 +_080E87B4: + ldrh r1, [r6, #0x30] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0 + beq _080E87CE + ldrh r0, [r5, #8] + eors r0, r7 + strh r0, [r5, #8] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_080E88E8 + b _080E8868 +_080E87CE: + movs r0, #0x10 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0 + beq _080E880E + movs r3, #8 + ldrsh r0, [r5, r3] + cmp r0, #0 + beq _080E87FC + ldrh r1, [r5, #0xc] + movs r2, #0xc + ldrsh r0, [r5, r2] + cmp r0, #0 + ble _080E87F2 + subs r0, r1, #1 + strh r0, [r5, #0xc] + b _080E8848 +_080E87F2: + ldr r0, _080E87F8 + strh r0, [r5, #0xc] + b _080E8848 + .align 2, 0 +_080E87F8: .4byte 0x0000010D +_080E87FC: + ldrh r1, [r5, #0xa] + movs r3, #0xa + ldrsh r0, [r5, r3] + cmp r0, #0 + ble _080E880A + subs r0, r1, #1 + b _080E8842 +_080E880A: + movs r0, #0xd1 + b _080E8842 +_080E880E: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080E884C + movs r0, #8 + ldrsh r1, [r5, r0] + cmp r1, #0 + beq _080E8836 + ldrh r2, [r5, #0xc] + movs r0, #0xc + ldrsh r1, [r5, r0] + movs r0, #0x86 + lsls r0, r0, #1 + cmp r1, r0 + bgt _080E8832 + adds r0, r2, #1 + strh r0, [r5, #0xc] + b _080E8848 +_080E8832: + strh r3, [r5, #0xc] + b _080E8848 +_080E8836: + ldrh r2, [r5, #0xa] + movs r3, #0xa + ldrsh r0, [r5, r3] + cmp r0, #0xd0 + bgt _080E8846 + adds r0, r2, #1 +_080E8842: + strh r0, [r5, #0xa] + b _080E8848 +_080E8846: + strh r1, [r5, #0xa] +_080E8848: + movs r0, #1 + b _080E886A +_080E884C: + ldrh r1, [r6, #0x2c] + movs r0, #4 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + beq _080E8864 + ldr r0, _080E8860 + strb r7, [r0] + b _080E8868 + .align 2, 0 +_080E8860: .4byte 0x02039CBC +_080E8864: + ldr r0, _080E8874 + strb r1, [r0] +_080E8868: + movs r0, #0 +_080E886A: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080E8874: .4byte 0x02039CBC + thumb_func_end sub_080E8688 + + thumb_func_start sub_080E8878 +sub_080E8878: @ 0x080E8878 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl sub_080E8688 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080E8898 + ldr r0, _080E88A0 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080E88A4 + str r0, [r1] +_080E8898: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E88A0: .4byte 0x03005B60 +_080E88A4: .4byte 0x080E85F5 + thumb_func_end sub_080E8878 + + thumb_func_start sub_080E88A8 +sub_080E88A8: @ 0x080E88A8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _080E88E0 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080E88D8 + movs r4, #0 +_080E88BC: + adds r0, r4, #0 + bl sub_080E9750 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #2 + bls _080E88BC + adds r0, r5, #0 + bl DestroyTask + ldr r0, _080E88E4 + bl SetMainCallback2 +_080E88D8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080E88E0: .4byte 0x02037C74 +_080E88E4: .4byte 0x080AA06D + thumb_func_end sub_080E88A8 + + thumb_func_start sub_080E88E8 +sub_080E88E8: @ 0x080E88E8 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _080E88F8 + cmp r0, #1 + beq _080E8910 + b _080E8920 +_080E88F8: + movs r0, #0x42 + movs r1, #0xef + bl SetGpuReg + ldr r1, _080E890C + movs r0, #0x46 + bl SetGpuReg + b _080E8920 + .align 2, 0 +_080E890C: .4byte 0x00003868 +_080E8910: + movs r0, #0x42 + movs r1, #0xef + bl SetGpuReg + ldr r1, _080E8924 + movs r0, #0x46 + bl SetGpuReg +_080E8920: + pop {r0} + bx r0 + .align 2, 0 +_080E8924: .4byte 0x000070A0 + thumb_func_end sub_080E88E8 + + thumb_func_start sub_080E8928 +sub_080E8928: @ 0x080E8928 + push {r4, r5, lr} + sub sp, #0xc + adds r2, r0, #0 + adds r5, r1, #0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r4, _080E8974 + adds r0, r4, #0 + adds r1, r2, #0 + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + movs r1, #0 + movs r0, #0xb0 + strb r0, [r4, #3] + movs r0, #0xff + strb r0, [r4, #4] + movs r0, #0xe + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + str r1, [sp, #8] + adds r0, r5, #0 + movs r1, #1 + adds r2, r4, #0 + movs r3, #0 + bl AddTextPrinterParameterized + adds r0, r5, #0 + bl sub_080E9734 + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080E8974: .4byte 0x02021C40 + thumb_func_end sub_080E8928 + + thumb_func_start sub_080E8978 +sub_080E8978: @ 0x080E8978 + push {r4, lr} + sub sp, #0x1c + adds r3, r0, #0 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + movs r2, #0 + movs r1, #0 +_080E8986: + mov r0, sp + adds r0, r0, r2 + adds r0, #0xc + strb r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xf + bls _080E8986 + add r0, sp, #0xc + movs r1, #0xff + strb r1, [r0, #0xf] + movs r2, #0 + ldrb r0, [r3] + cmp r0, #0xff + beq _080E89C4 +_080E89A6: + mov r1, sp + adds r1, r1, r2 + adds r1, #0xc + adds r0, r3, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r0, r3, r2 + ldrb r0, [r0] + cmp r0, #0xff + beq _080E89C4 + cmp r2, #0xe + bls _080E89A6 +_080E89C4: + movs r0, #0xe + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + adds r0, r4, #0 + movs r1, #1 + add r2, sp, #0xc + movs r3, #0x28 + bl AddTextPrinterParameterized + adds r0, r4, #0 + bl sub_080E9734 + add sp, #0x1c + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080E8978 + + thumb_func_start sub_080E89EC +sub_080E89EC: @ 0x080E89EC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080E8A10 + adds r5, r1, r0 + movs r1, #0x26 + ldrsh r0, [r5, r1] + cmp r0, #1 + beq _080E8A48 + cmp r0, #1 + bgt _080E8A14 + cmp r0, #0 + beq _080E8A1A + b _080E8A94 + .align 2, 0 +_080E8A10: .4byte 0x03005B60 +_080E8A14: + cmp r0, #2 + beq _080E8A70 + b _080E8A94 +_080E8A1A: + movs r4, #0 +_080E8A1C: + adds r0, r4, #0 + bl sub_080E9750 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #2 + bls _080E8A1C + bl FreeAllWindowBuffers + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _080E8A44 + movs r0, #0 + movs r2, #1 + bl InitBgsFromTemplates + b _080E8A62 + .align 2, 0 +_080E8A44: .4byte 0x08566D08 +_080E8A48: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080E8A94 + ldr r0, _080E8A6C + bl InitWindows + movs r0, #0 + movs r1, #1 + bl SetStandardWindowBorderStyle +_080E8A62: + ldrh r0, [r5, #0x26] + adds r0, #1 + strh r0, [r5, #0x26] + b _080E8A94 + .align 2, 0 +_080E8A6C: .4byte 0x08566D64 +_080E8A70: + movs r0, #0 + bl ShowBg + movs r1, #0xc5 + lsls r1, r1, #6 + movs r0, #0 + bl SetGpuReg + movs r1, #0x24 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _080E8A90 + ldr r0, _080E8A8C + b _080E8A92 + .align 2, 0 +_080E8A8C: .4byte 0x080E91E5 +_080E8A90: + ldr r0, _080E8A9C +_080E8A92: + str r0, [r5] +_080E8A94: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080E8A9C: .4byte 0x080E8AA1 + thumb_func_end sub_080E89EC + + thumb_func_start sub_080E8AA0 +sub_080E8AA0: @ 0x080E8AA0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xdc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0xb4] + ldr r1, _080E8D10 + add r0, sp, #0xc + movs r2, #0xa + bl memcpy + add r7, sp, #0x18 + ldr r1, _080E8D14 + adds r0, r7, #0 + movs r2, #0xb + bl memcpy + mov r0, sp + adds r0, #0x24 + str r0, [sp, #0xb8] + ldr r1, _080E8D18 + movs r2, #0xa + bl memcpy + mov r2, sp + adds r2, #0x30 + str r2, [sp, #0xbc] + ldr r1, _080E8D1C + adds r0, r2, #0 + movs r2, #0xa + bl memcpy + mov r0, sp + adds r0, #0x3c + str r0, [sp, #0xc0] + ldr r1, _080E8D20 + movs r2, #0xa + bl memcpy + mov r2, sp + adds r2, #0x48 + str r2, [sp, #0xc4] + ldr r1, _080E8D24 + adds r0, r2, #0 + movs r2, #0xa + bl memcpy + mov r0, sp + adds r0, #0x54 + str r0, [sp, #0xc8] + ldr r1, _080E8D28 + movs r2, #0xa + bl memcpy + mov r2, sp + adds r2, #0x60 + str r2, [sp, #0xcc] + ldr r1, _080E8D2C + adds r0, r2, #0 + movs r2, #0xa + bl memcpy + mov r0, sp + adds r0, #0x6c + str r0, [sp, #0xd0] + ldr r1, _080E8D30 + movs r2, #0xa + bl memcpy + mov r2, sp + adds r2, #0x78 + str r2, [sp, #0xd4] + ldr r1, _080E8D34 + adds r0, r2, #0 + movs r2, #0xa + bl memcpy + mov r0, sp + adds r0, #0x84 + str r0, [sp, #0xd8] + ldr r1, _080E8D38 + movs r2, #0xa + bl memcpy + add r6, sp, #0x90 + ldr r1, _080E8D3C + adds r0, r6, #0 + movs r2, #9 + bl memcpy + add r2, sp, #0x9c + mov r8, r2 + ldr r1, _080E8D40 + mov r0, r8 + movs r2, #9 + bl memcpy + add r0, sp, #0xa8 + mov sl, r0 + ldr r1, _080E8D44 + movs r2, #9 + bl memcpy + movs r0, #0 + movs r1, #0 + bl SetStandardWindowBorderStyle + movs r2, #0x10 + str r2, [sp] + movs r5, #0xff + str r5, [sp, #4] + movs r4, #0 + str r4, [sp, #8] + movs r0, #0 + movs r1, #1 + add r2, sp, #0xc + movs r3, #0x88 + bl AddTextPrinterParameterized + movs r0, #0x20 + mov sb, r0 + str r0, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #0 + movs r1, #1 + adds r2, r7, #0 + movs r3, #0x88 + bl AddTextPrinterParameterized + movs r2, #0x50 + str r2, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #0 + movs r1, #1 + adds r2, r6, #0 + movs r3, #0x88 + bl AddTextPrinterParameterized + movs r7, #0x60 + str r7, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #0 + movs r1, #1 + mov r2, r8 + movs r3, #0x88 + bl AddTextPrinterParameterized + movs r6, #0x70 + str r6, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #0 + movs r1, #1 + mov r2, sl + movs r3, #0x88 + bl AddTextPrinterParameterized + str r4, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #0 + movs r1, #1 + ldr r2, [sp, #0xb8] + movs r3, #8 + bl AddTextPrinterParameterized + movs r0, #0x10 + str r0, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #0 + movs r1, #1 + ldr r2, [sp, #0xbc] + movs r3, #8 + bl AddTextPrinterParameterized + mov r2, sb + str r2, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #0 + movs r1, #1 + ldr r2, [sp, #0xc0] + movs r3, #8 + bl AddTextPrinterParameterized + movs r0, #0x30 + str r0, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #0 + movs r1, #1 + ldr r2, [sp, #0xc4] + movs r3, #8 + bl AddTextPrinterParameterized + movs r0, #0x40 + str r0, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #0 + movs r1, #1 + ldr r2, [sp, #0xc8] + movs r3, #8 + bl AddTextPrinterParameterized + movs r0, #0x50 + str r0, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #0 + movs r1, #1 + ldr r2, [sp, #0xcc] + movs r3, #8 + bl AddTextPrinterParameterized + str r7, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #0 + movs r1, #1 + ldr r2, [sp, #0xd0] + movs r3, #8 + bl AddTextPrinterParameterized + str r6, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #0 + movs r1, #1 + ldr r2, [sp, #0xd4] + movs r3, #8 + bl AddTextPrinterParameterized + movs r0, #0x80 + str r0, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #0 + movs r1, #1 + ldr r2, [sp, #0xd8] + movs r3, #8 + bl AddTextPrinterParameterized + movs r0, #0x40 + movs r1, #0xf0 + bl SetGpuReg + movs r0, #0x44 + movs r1, #0xa0 + bl SetGpuReg + ldr r0, _080E8D48 + strb r4, [r0] + ldr r0, _080E8D4C + strb r4, [r0] + ldr r0, _080E8D50 + str r4, [r0] + ldr r0, _080E8D54 + strb r4, [r0] + ldr r1, _080E8D58 + movs r0, #1 + strb r0, [r1] + ldr r0, _080E8D5C + str r4, [r0] + movs r1, #0x78 + str r1, [r0, #4] + str r4, [r0, #8] + movs r1, #0xf0 + lsls r1, r1, #6 + str r1, [r0, #0xc] + movs r1, #0xb4 + str r1, [r0, #0x10] + str r4, [r0, #0x18] + str r4, [r0, #0x14] + str r4, [r0, #0x1c] + movs r1, #2 + str r1, [r0, #0x20] + bl sub_080E900C + movs r0, #9 + str r0, [sp] + str r4, [sp, #4] + movs r0, #0 + movs r1, #1 + movs r2, #0 + movs r3, #0 + bl sub_081984F0 + ldr r1, _080E8D60 + ldr r2, [sp, #0xb4] + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080E8D64 + str r1, [r0] + add sp, #0xdc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E8D10: .4byte 0x08566D74 +_080E8D14: .4byte 0x08566D7E +_080E8D18: .4byte 0x08566D89 +_080E8D1C: .4byte 0x08566D93 +_080E8D20: .4byte 0x08566D9D +_080E8D24: .4byte 0x08566DA7 +_080E8D28: .4byte 0x08566DB1 +_080E8D2C: .4byte 0x08566DBB +_080E8D30: .4byte 0x08566DC5 +_080E8D34: .4byte 0x08566DCF +_080E8D38: .4byte 0x08566DD9 +_080E8D3C: .4byte 0x08566DE3 +_080E8D40: .4byte 0x08566DEC +_080E8D44: .4byte 0x08566DF5 +_080E8D48: .4byte 0x02039CBD +_080E8D4C: .4byte 0x02039CBE +_080E8D50: .4byte 0x03005E1C +_080E8D54: .4byte 0x02039CE4 +_080E8D58: .4byte 0x02039CE5 +_080E8D5C: .4byte 0x02039CC0 +_080E8D60: .4byte 0x03005B60 +_080E8D64: .4byte 0x080E8D69 + thumb_func_end sub_080E8AA0 + + thumb_func_start sub_080E8D68 +sub_080E8D68: @ 0x080E8D68 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _080E8D90 + ldrh r3, [r1, #0x2e] + movs r0, #2 + ands r0, r3 + cmp r0, #0 + beq _080E8D9C + ldr r1, _080E8D94 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #0x26] + ldr r1, _080E8D98 + str r1, [r0] + b _080E8F8E + .align 2, 0 +_080E8D90: .4byte 0x03002360 +_080E8D94: .4byte 0x03005B60 +_080E8D98: .4byte 0x080E9411 +_080E8D9C: + ldrh r1, [r1, #0x30] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080E8DB0 + movs r0, #1 + rsbs r0, r0, #0 + bl Menu_MoveCursorNoWrapAround + b _080E8F8E +_080E8DB0: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080E8DC0 + movs r0, #1 + bl Menu_MoveCursorNoWrapAround + b _080E8F8E +_080E8DC0: + movs r0, #8 + ands r0, r3 + cmp r0, #0 + beq _080E8DDC + ldr r0, _080E8DD8 + ldrb r1, [r0] + movs r2, #1 + eors r1, r2 + strb r1, [r0] + bl sub_080E900C + b _080E8F8E + .align 2, 0 +_080E8DD8: .4byte 0x02039CE4 +_080E8DDC: + movs r0, #4 + ands r0, r3 + cmp r0, #0 + beq _080E8E00 + ldr r4, _080E8DFC + ldrb r0, [r4] + movs r1, #1 + eors r0, r1 + strb r0, [r4] + bl sub_080E900C + ldrb r0, [r4] + bl SetPokemonCryStereo + b _080E8F8E + .align 2, 0 +_080E8DFC: .4byte 0x02039CE5 +_080E8E00: + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080E8E0E + movs r0, #0xa + b _080E8E36 +_080E8E0E: + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080E8E1E + movs r0, #0xa + rsbs r0, r0, #0 + b _080E8E36 +_080E8E1E: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080E8E2C + movs r0, #1 + rsbs r0, r0, #0 + b _080E8E36 +_080E8E2C: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080E8E40 + movs r0, #1 +_080E8E36: + bl sub_080E8FA4 + bl sub_080E900C + b _080E8F8E +_080E8E40: + movs r0, #1 + ands r0, r3 + cmp r0, #0 + bne _080E8E4A + b _080E8F6A +_080E8E4A: + ldr r4, _080E8EAC + ldrb r0, [r4, #4] + bl SetPokemonCryVolume + movs r0, #8 + 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, r0, #0x18 + lsrs r0, r0, #0x18 + bl SetPokemonCryPriority + ldr r4, [r4] + adds r0, r4, #0 + cmp r4, #0 + bge _080E8E90 + adds r0, #0x7f +_080E8E90: + asrs r2, r0, #7 + lsls r0, r2, #7 + subs r0, r4, r0 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080E8EE4 + cmp r0, #1 + bgt _080E8EB0 + cmp r0, #0 + beq _080E8EBA + b _080E8F6A + .align 2, 0 +_080E8EAC: .4byte 0x02039CC0 +_080E8EB0: + cmp r0, #2 + beq _080E8F10 + cmp r0, #3 + beq _080E8F3C + b _080E8F6A +_080E8EBA: + ldr r0, _080E8ECC + ldrb r0, [r0] + cmp r0, #0 + beq _080E8ED4 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080E8ED0 + b _080E8F60 + .align 2, 0 +_080E8ECC: .4byte 0x02039CE4 +_080E8ED0: .4byte 0x08626A44 +_080E8ED4: + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080E8EE0 + b _080E8F60 + .align 2, 0 +_080E8EE0: .4byte 0x08625814 +_080E8EE4: + ldr r0, _080E8EF8 + ldrb r0, [r0] + cmp r0, #0 + beq _080E8F00 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080E8EFC + b _080E8F60 + .align 2, 0 +_080E8EF8: .4byte 0x02039CE4 +_080E8EFC: .4byte 0x08627044 +_080E8F00: + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080E8F0C + b _080E8F60 + .align 2, 0 +_080E8F0C: .4byte 0x08625E14 +_080E8F10: + ldr r0, _080E8F24 + ldrb r0, [r0] + cmp r0, #0 + beq _080E8F2C + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080E8F28 + b _080E8F60 + .align 2, 0 +_080E8F24: .4byte 0x02039CE4 +_080E8F28: .4byte 0x08627644 +_080E8F2C: + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080E8F38 + b _080E8F60 + .align 2, 0 +_080E8F38: .4byte 0x08626414 +_080E8F3C: + ldr r0, _080E8F50 + ldrb r0, [r0] + cmp r0, #0 + beq _080E8F58 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080E8F54 + b _080E8F60 + .align 2, 0 +_080E8F50: .4byte 0x02039CE4 +_080E8F54: .4byte 0x08627C44 +_080E8F58: + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080E8F94 +_080E8F60: + adds r0, r0, r1 + bl SetPokemonCryTone + ldr r1, _080E8F98 + str r0, [r1] +_080E8F6A: + ldr r0, _080E8F98 + ldr r0, [r0] + cmp r0, #0 + beq _080E8F8E + ldr r5, _080E8F9C + bl IsPokemonCryPlaying + strb r0, [r5] + ldr r4, _080E8FA0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r4] + cmp r0, r1 + beq _080E8F8A + bl sub_080E900C +_080E8F8A: + ldrb r0, [r5] + strb r0, [r4] +_080E8F8E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080E8F94: .4byte 0x08626A14 +_080E8F98: .4byte 0x03005E1C +_080E8F9C: .4byte 0x02039CBD +_080E8FA0: .4byte 0x02039CBE + thumb_func_end sub_080E8D68 + + thumb_func_start sub_080E8FA4 +sub_080E8FA4: @ 0x080E8FA4 + push {r4, r5, r6, lr} + sub sp, #0x40 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _080E9004 + mov r0, sp + movs r2, #0x40 + bl memcpy + bl Menu_GetCursorPos + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r5, r2, #0 + ldr r1, _080E9008 + lsls r0, r2, #2 + adds r3, r0, r1 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + ldr r1, [r3] + adds r1, r1, r4 + str r1, [r3] + lsls r0, r2, #1 + adds r0, #1 + lsls r0, r0, #2 + mov r6, sp + adds r4, r6, r0 + ldr r0, [r4] + cmp r1, r0 + ble _080E8FEA + lsls r0, r2, #3 + add r0, sp + ldr r0, [r0] + str r0, [r3] +_080E8FEA: + lsls r0, r5, #3 + add r0, sp + ldr r1, [r3] + ldr r0, [r0] + cmp r1, r0 + bge _080E8FFA + ldr r0, [r4] + str r0, [r3] +_080E8FFA: + add sp, #0x40 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080E9004: .4byte 0x08566E00 +_080E9008: .4byte 0x02039CC0 + thumb_func_end sub_080E8FA4 + + thumb_func_start sub_080E900C +sub_080E900C: @ 0x080E900C + push {r4, lr} + ldr r4, _080E90B0 + ldr r0, [r4] + adds r0, #1 + movs r1, #0x50 + movs r2, #0 + movs r3, #5 + bl sub_080E90C0 + ldr r0, [r4, #4] + movs r1, #0x50 + movs r2, #0x10 + movs r3, #5 + bl sub_080E90C0 + ldr r0, [r4, #8] + movs r1, #0x50 + movs r2, #0x20 + movs r3, #5 + bl sub_080E90C0 + ldr r0, [r4, #0xc] + movs r1, #0x50 + movs r2, #0x30 + movs r3, #5 + bl sub_080E90C0 + ldr r0, [r4, #0x10] + movs r1, #0x50 + movs r2, #0x40 + movs r3, #5 + bl sub_080E90C0 + ldr r0, [r4, #0x14] + movs r1, #0x50 + movs r2, #0x50 + movs r3, #5 + bl sub_080E90C0 + ldr r0, [r4, #0x18] + movs r1, #0x50 + movs r2, #0x60 + movs r3, #5 + bl sub_080E90C0 + ldr r0, [r4, #0x1c] + movs r1, #0x50 + movs r2, #0x70 + movs r3, #5 + bl sub_080E90C0 + ldr r0, [r4, #0x20] + movs r1, #0x50 + movs r2, #0x80 + movs r3, #5 + bl sub_080E90C0 + ldr r0, _080E90B4 + ldrb r0, [r0] + movs r1, #0xc8 + movs r2, #0x50 + movs r3, #1 + bl sub_080E90C0 + ldr r0, _080E90B8 + ldrb r0, [r0] + movs r1, #0xc8 + movs r2, #0x60 + movs r3, #1 + bl sub_080E90C0 + ldr r0, _080E90BC + ldrb r0, [r0] + movs r1, #0xc8 + movs r2, #0x70 + movs r3, #1 + bl sub_080E90C0 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E90B0: .4byte 0x02039CC0 +_080E90B4: .4byte 0x02039CBD +_080E90B8: .4byte 0x02039CE4 +_080E90BC: .4byte 0x02039CE5 + thumb_func_end sub_080E900C + + thumb_func_start sub_080E90C0 +sub_080E90C0: @ 0x080E90C0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x38 + mov r8, r0 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + lsls r3, r3, #0x18 + lsrs r7, r3, #0x18 + add r1, sp, #0xc + ldr r0, _080E91E0 + ldm r0!, {r3, r4, r5} + stm r1!, {r3, r4, r5} + ldm r0!, {r3, r4, r5} + stm r1!, {r3, r4, r5} + movs r5, #0 + add r0, sp, #0x24 + mov sb, r0 + cmp r5, r7 + bgt _080E9108 + mov r4, sb + movs r3, #0 +_080E90F4: + lsls r0, r5, #0x18 + asrs r0, r0, #0x18 + adds r1, r4, r0 + strb r3, [r1] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, r7 + ble _080E90F4 +_080E9108: + adds r0, r7, #1 + add r0, sb + movs r1, #0xff + strb r1, [r0] + movs r1, #0 + mov r3, r8 + cmp r3, #0 + bge _080E911E + rsbs r3, r3, #0 + mov r8, r3 + movs r1, #1 +_080E911E: + movs r4, #0 + mov sl, r4 + cmp r7, #1 + bne _080E912A + movs r5, #1 + mov sl, r5 +_080E912A: + subs r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #0x18 + lsls r6, r6, #0x18 + str r6, [sp, #0x30] + lsls r2, r2, #0x18 + str r2, [sp, #0x34] + cmp r0, #0 + blt _080E91AE + str r1, [sp, #0x2c] +_080E9140: + asrs r6, r0, #0x18 + lsls r0, r6, #2 + add r0, sp + adds r0, #0xc + ldr r1, [r0] + mov r0, r8 + bl __divsi3 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r0, #0 + bne _080E9164 + mov r0, sl + cmp r0, #0 + bne _080E9164 + lsls r4, r5, #0x18 + cmp r6, #0 + bne _080E9190 +_080E9164: + lsls r4, r5, #0x18 + ldr r1, [sp, #0x2c] + cmp r1, #0 + beq _080E917E + mov r3, sl + cmp r3, #0 + bne _080E917E + asrs r0, r4, #0x18 + subs r0, r7, r0 + subs r0, #1 + add r0, sb + movs r1, #0xae + strb r1, [r0] +_080E917E: + asrs r1, r4, #0x18 + subs r1, r7, r1 + add r1, sb + lsls r0, r2, #0x18 + asrs r0, r0, #0x18 + subs r0, #0x5f + strb r0, [r1] + movs r5, #1 + mov sl, r5 +_080E9190: + asrs r4, r4, #0x18 + lsls r0, r4, #2 + add r0, sp + adds r0, #0xc + ldr r1, [r0] + mov r0, r8 + bl __modsi3 + mov r8, r0 + subs r4, #1 + lsls r4, r4, #0x18 + lsrs r5, r4, #0x18 + lsls r0, r5, #0x18 + cmp r0, #0 + bge _080E9140 +_080E91AE: + ldr r0, [sp, #0x30] + lsrs r3, r0, #0x18 + ldr r1, [sp, #0x34] + lsrs r0, r1, #0x18 + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + movs r1, #1 + mov r2, sb + bl AddTextPrinterParameterized + movs r0, #0 + bl sub_080E9734 + add sp, #0x38 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E91E0: .4byte 0x08566E40 + thumb_func_end sub_080E90C0 + + thumb_func_start sub_080E91E4 +sub_080E91E4: @ 0x080E91E4 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0x14 + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r1, _080E9270 + add r0, sp, #0xc + movs r2, #3 + bl memcpy + add r0, sp, #0x10 + mov r8, r0 + ldr r1, _080E9274 + movs r2, #4 + bl memcpy + movs r0, #0xe + str r0, [sp] + movs r6, #0xff + str r6, [sp, #4] + movs r4, #0 + str r4, [sp, #8] + movs r0, #0 + movs r1, #1 + add r2, sp, #0xc + movs r3, #0xa + bl AddTextPrinterParameterized + movs r0, #0x1c + str r0, [sp] + str r6, [sp, #4] + str r4, [sp, #8] + movs r0, #0 + movs r1, #1 + mov r2, r8 + movs r3, #0xa + bl AddTextPrinterParameterized + movs r0, #0x40 + movs r1, #0xf0 + bl SetGpuReg + movs r0, #0x44 + movs r1, #0xa0 + bl SetGpuReg + ldr r0, _080E9278 + movs r1, #1 + str r1, [r0] + str r4, [r0, #8] + str r4, [r0, #0x1c] + str r4, [r0, #0x18] + str r4, [r0, #0x14] + bl sub_080E94B8 + ldr r1, _080E927C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080E9280 + str r1, [r0] + add sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080E9270: .4byte 0x08566E5D +_080E9274: .4byte 0x08566E60 +_080E9278: .4byte 0x02039CC0 +_080E927C: .4byte 0x03005B60 +_080E9280: .4byte 0x080E9285 + thumb_func_end sub_080E91E4 + + thumb_func_start sub_080E9284 +sub_080E9284: @ 0x080E9284 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r2, _080E92A0 + ldr r0, [r2, #0x18] + cmp r0, #0 + beq _080E92EA + ldr r0, [r2, #0x14] + cmp r0, #0 + beq _080E92A4 + subs r0, #1 + str r0, [r2, #0x14] + b _080E92EA + .align 2, 0 +_080E92A0: .4byte 0x02039CC0 +_080E92A4: + ldr r0, _080E92D0 + ldr r1, [r2, #8] + adds r1, r1, r0 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r0, #0x80 + rsbs r0, r0, #0 + cmp r1, r0 + beq _080E92D4 + cmp r1, #0x7f + bne _080E92EA + ldr r0, [r2, #0x1c] + adds r0, #2 + str r0, [r2, #0x1c] + cmp r0, #0x3e + bgt _080E92EA + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + bl SE12PanpotControl + b _080E92EA + .align 2, 0 +_080E92D0: .4byte 0x08566E58 +_080E92D4: + ldr r0, [r2, #0x1c] + subs r1, r0, #2 + str r1, [r2, #0x1c] + movs r0, #0x40 + rsbs r0, r0, #0 + cmp r1, r0 + ble _080E92EA + lsls r0, r1, #0x18 + asrs r0, r0, #0x18 + bl SE12PanpotControl +_080E92EA: + ldr r0, _080E9310 + ldrh r1, [r0, #0x2e] + movs r0, #2 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0 + beq _080E931C + ldr r1, _080E9314 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #0x26] + ldr r1, _080E9318 + str r1, [r0] + b _080E9400 + .align 2, 0 +_080E9310: .4byte 0x03002360 +_080E9314: .4byte 0x03005B60 +_080E9318: .4byte 0x080E9411 +_080E931C: + movs r6, #1 + adds r2, r6, #0 + ands r2, r1 + cmp r2, #0 + beq _080E9376 + ldr r0, _080E9350 + ldr r5, _080E9354 + ldr r1, [r5, #8] + adds r1, r1, r0 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r0, #0x80 + rsbs r0, r0, #0 + cmp r1, r0 + beq _080E9358 + cmp r1, #0x7f + bne _080E936C + ldrh r0, [r5] + movs r4, #0x40 + rsbs r4, r4, #0 + adds r1, r4, #0 + bl PlaySE12WithPanning + str r4, [r5, #0x1c] + b _080E9364 + .align 2, 0 +_080E9350: .4byte 0x08566E58 +_080E9354: .4byte 0x02039CC0 +_080E9358: + ldrh r0, [r5] + movs r1, #0x3f + bl PlaySE12WithPanning + movs r0, #0x3f + str r0, [r5, #0x1c] +_080E9364: + str r6, [r5, #0x18] + movs r0, #0x1e + str r0, [r5, #0x14] + b _080E93D2 +_080E936C: + ldrh r0, [r5] + bl PlaySE12WithPanning + str r4, [r5, #0x18] + b _080E93D2 +_080E9376: + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080E9392 + ldr r1, _080E93D8 + ldr r0, [r1, #8] + adds r0, #1 + str r0, [r1, #8] + cmp r0, #4 + ble _080E938E + str r2, [r1, #8] +_080E938E: + bl sub_080E94B8 +_080E9392: + ldr r0, _080E93DC + ldrh r1, [r0, #0x2e] + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080E93B4 + ldr r1, _080E93D8 + ldr r0, [r1, #8] + subs r0, #1 + str r0, [r1, #8] + cmp r0, #0 + bge _080E93B0 + movs r0, #4 + str r0, [r1, #8] +_080E93B0: + bl sub_080E94B8 +_080E93B4: + ldr r0, _080E93DC + ldrh r1, [r0, #0x30] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080E93E4 + ldr r2, _080E93D8 + ldr r0, [r2] + adds r0, #1 + str r0, [r2] + ldr r1, _080E93E0 + cmp r0, r1 + ble _080E93D2 + movs r0, #0 + str r0, [r2] +_080E93D2: + bl sub_080E94B8 + b _080E9400 + .align 2, 0 +_080E93D8: .4byte 0x02039CC0 +_080E93DC: .4byte 0x03002360 +_080E93E0: .4byte 0x0000010D +_080E93E4: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080E9400 + ldr r1, _080E9408 + ldr r0, [r1] + subs r0, #1 + str r0, [r1] + cmp r0, #0 + bge _080E93FC + ldr r0, _080E940C + str r0, [r1] +_080E93FC: + bl sub_080E94B8 +_080E9400: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080E9408: .4byte 0x02039CC0 +_080E940C: .4byte 0x0000010D + thumb_func_end sub_080E9284 + + thumb_func_start sub_080E9410 +sub_080E9410: @ 0x080E9410 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080E9434 + adds r4, r1, r0 + movs r1, #0x26 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _080E9460 + cmp r0, #1 + bgt _080E9438 + cmp r0, #0 + beq _080E943E + b _080E94A2 + .align 2, 0 +_080E9434: .4byte 0x03005B60 +_080E9438: + cmp r0, #2 + beq _080E9480 + b _080E94A2 +_080E943E: + movs r0, #0 + bl sub_080E9750 + bl FreeAllWindowBuffers + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _080E945C + movs r0, #0 + movs r2, #1 + bl InitBgsFromTemplates + b _080E9472 + .align 2, 0 +_080E945C: .4byte 0x08566D08 +_080E9460: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080E94A2 + ldr r0, _080E947C + bl InitWindows +_080E9472: + ldrh r0, [r4, #0x26] + adds r0, #1 + strh r0, [r4, #0x26] + b _080E94A2 + .align 2, 0 +_080E947C: .4byte 0x08566D0C +_080E9480: + movs r0, #0 + bl ShowBg + ldr r1, _080E94A8 + movs r0, #0 + bl SetGpuReg + ldr r1, _080E94AC + movs r0, #0x40 + bl SetGpuReg + ldr r1, _080E94B0 + movs r0, #0x44 + bl SetGpuReg + ldr r0, _080E94B4 + str r0, [r4] +_080E94A2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E94A8: .4byte 0x00007140 +_080E94AC: .4byte 0x000011DF +_080E94B0: .4byte 0x0000011F +_080E94B4: .4byte 0x080E84A5 + thumb_func_end sub_080E9410 + + thumb_func_start sub_080E94B8 +sub_080E94B8: @ 0x080E94B8 + push {r4, r5, lr} + sub sp, #0x1c + ldr r1, _080E951C + add r0, sp, #0xc + movs r2, #5 + bl memcpy + add r5, sp, #0x14 + ldr r1, _080E9520 + adds r0, r5, #0 + movs r2, #5 + bl memcpy + movs r0, #0x28 + str r0, [sp] + movs r0, #0xe + str r0, [sp, #4] + movs r0, #0 + movs r1, #0x11 + movs r2, #0x64 + movs r3, #0x1c + bl FillWindowPixelRect + ldr r4, _080E9524 + ldr r0, [r4] + movs r1, #0x64 + movs r2, #0xe + movs r3, #3 + bl sub_080E90C0 + ldr r1, _080E9528 + ldr r0, [r4, #8] + adds r0, r0, r1 + movs r1, #0 + ldrsb r1, [r0, r1] + movs r0, #0x80 + rsbs r0, r0, #0 + cmp r1, r0 + beq _080E952C + cmp r1, #0x7f + bne _080E954A + movs r0, #0x1c + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + movs r1, #1 + add r2, sp, #0xc + b _080E953C + .align 2, 0 +_080E951C: .4byte 0x08566E64 +_080E9520: .4byte 0x08566E69 +_080E9524: .4byte 0x02039CC0 +_080E9528: .4byte 0x08566E58 +_080E952C: + movs r0, #0x1c + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + movs r1, #1 + adds r2, r5, #0 +_080E953C: + movs r3, #0x64 + bl AddTextPrinterParameterized + movs r0, #0 + bl sub_080E9734 + b _080E9556 +_080E954A: + adds r0, r1, #0 + movs r1, #0x64 + movs r2, #0x1c + movs r3, #3 + bl sub_080E90C0 +_080E9556: + add sp, #0x1c + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080E94B8 + + thumb_func_start sub_080E9560 +sub_080E9560: @ 0x080E9560 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + movs r3, #0xc0 + lsls r3, r3, #0x13 + movs r4, #0xc0 + lsls r4, r4, #9 + add r0, sp, #4 + mov r8, r0 + mov r2, sp + movs r6, #0 + ldr r1, _080E96A0 + movs r5, #0x80 + lsls r5, r5, #5 + ldr r7, _080E96A4 + movs r0, #0x81 + lsls r0, r0, #0x18 + mov ip, r0 +_080E9586: + strh r6, [r2] + mov r0, sp + str r0, [r1] + str r3, [r1, #4] + str r7, [r1, #8] + ldr r0, [r1, #8] + adds r3, r3, r5 + subs r4, r4, r5 + cmp r4, r5 + bhi _080E9586 + strh r6, [r2] + mov r2, sp + str r2, [r1] + str r3, [r1, #4] + lsrs r0, r4, #1 + mov r2, ip + orrs r0, r2 + str r0, [r1, #8] + ldr r0, [r1, #8] + movs r0, #0xe0 + lsls r0, r0, #0x13 + movs r3, #0x80 + lsls r3, r3, #3 + movs r4, #0 + str r4, [sp, #4] + ldr r2, _080E96A0 + mov r1, r8 + str r1, [r2] + str r0, [r2, #4] + lsrs r0, r3, #2 + movs r1, #0x85 + lsls r1, r1, #0x18 + orrs r0, r1 + str r0, [r2, #8] + ldr r0, [r2, #8] + movs r1, #0xa0 + lsls r1, r1, #0x13 + mov r0, sp + strh r4, [r0] + str r0, [r2] + str r1, [r2, #4] + lsrs r3, r3, #1 + movs r0, #0x81 + lsls r0, r0, #0x18 + orrs r3, r0 + str r3, [r2, #8] + ldr r0, [r2, #8] + movs r0, #0 + movs r1, #0 + bl SetGpuReg + movs r0, #8 + movs r1, #0 + bl SetGpuReg + movs r0, #0x10 + movs r1, #0 + bl SetGpuReg + movs r0, #0x12 + movs r1, #0 + bl SetGpuReg + movs r0, #0xa + movs r1, #0 + bl SetGpuReg + movs r0, #0x14 + movs r1, #0 + bl SetGpuReg + movs r0, #0x16 + movs r1, #0 + bl SetGpuReg + movs r0, #0xc + movs r1, #0 + bl SetGpuReg + movs r0, #0x18 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1a + movs r1, #0 + bl SetGpuReg + movs r0, #0xe + movs r1, #0 + bl SetGpuReg + movs r0, #0x1c + movs r1, #0 + bl SetGpuReg + movs r0, #0x1e + movs r1, #0 + bl SetGpuReg + movs r0, #0x40 + movs r1, #0 + bl SetGpuReg + movs r0, #0x44 + movs r1, #0 + bl SetGpuReg + movs r0, #0x42 + movs r1, #0 + bl SetGpuReg + movs r0, #0x46 + movs r1, #0 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0 + bl SetGpuReg + movs r0, #0x4a + movs r1, #0 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E96A0: .4byte 0x040000D4 +_080E96A4: .4byte 0x81000800 + thumb_func_end sub_080E9560 + + thumb_func_start sub_080E96A8 +sub_080E96A8: @ 0x080E96A8 + push {lr} + bl ScanlineEffect_Stop + bl ResetTasks + bl ResetSpriteData + bl ResetAllPicSprites + bl ResetPaletteFade + bl FreeAllSpritePalettes + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080E96A8 + + thumb_func_start sub_080E96C8 +sub_080E96C8: @ 0x080E96C8 + push {lr} + ldr r1, _080E96D8 + movs r0, #0 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 +_080E96D8: .4byte 0x00007140 + thumb_func_end sub_080E96C8 + + thumb_func_start sub_080E96DC +sub_080E96DC: @ 0x080E96DC + push {lr} + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080E96DC + + thumb_func_start sub_080E9734 +sub_080E9734: @ 0x080E9734 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl PutWindowTilemap + adds r0, r4, #0 + movs r1, #3 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_080E9734 + + thumb_func_start sub_080E9750 +sub_080E9750: @ 0x080E9750 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #0 + bl FillWindowPixelBuffer + adds r0, r4, #0 + bl ClearWindowTilemap + adds r0, r4, #0 + movs r1, #2 + bl CopyWindowToVram + adds r0, r4, #0 + bl RemoveWindow + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080E9750 + diff --git a/asm/recorded_battle.s b/asm/recorded_battle.s new file mode 100644 index 0000000..e616d13 --- /dev/null +++ b/asm/recorded_battle.s @@ -0,0 +1,4384 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_08184C50 +sub_08184C50: @ 0x08184C50 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov ip, r0 + ldr r0, _08184CDC + mov r1, ip + strb r1, [r0] + ldr r1, _08184CE0 + movs r0, #0 + strb r0, [r1] + movs r2, #0 + movs r7, #0 + ldr r3, _08184CE4 + mov sl, r3 + ldr r6, _08184CE8 + mov sb, r6 + ldr r0, _08184CEC + mov r8, r0 +_08184C7C: + lsls r0, r2, #1 + mov r3, sb + adds r1, r0, r3 + strh r7, [r1] + ldr r6, _08184CF0 + adds r1, r0, r6 + strh r7, [r1] + ldr r1, _08184CF4 + adds r0, r0, r1 + strh r7, [r0] + adds r4, r2, #1 + mov r3, ip + cmp r3, #1 + bne _08184CC8 + ldr r5, _08184CF8 + movs r3, #0xff + movs r1, #0xa6 + lsls r1, r1, #2 + adds r0, r2, #0 + muls r0, r1, r0 + mov r6, r8 + adds r2, r0, r6 +_08184CA8: + ldrb r0, [r2] + orrs r0, r3 + strb r0, [r2] + adds r2, #1 + subs r1, #1 + cmp r1, #0 + bne _08184CA8 + ldr r0, [r5] + ldr r1, _08184CFC + str r0, [r1] + ldr r3, _08184D00 + ldr r0, [r3] + ldr r0, [r0, #0x14] + ldr r0, [r0, #0xc] + mov r6, sl + str r0, [r6] +_08184CC8: + adds r2, r4, #0 + cmp r2, #3 + ble _08184C7C + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08184CDC: .4byte 0x0203C478 +_08184CE0: .4byte 0x0203C99C +_08184CE4: .4byte 0x0203C488 +_08184CE8: .4byte 0x0203C460 +_08184CEC: .4byte 0x0203BA00 +_08184CF0: .4byte 0x0203C468 +_08184CF4: .4byte 0x0203C470 +_08184CF8: .4byte 0x02022C90 +_08184CFC: .4byte 0x0203C484 +_08184D00: .4byte 0x0202414C + thumb_func_end sub_08184C50 + + thumb_func_start sub_08184D04 +sub_08184D04: @ 0x08184D04 + push {r4, r5, r6, r7, lr} + ldr r0, _08184D2C + ldrb r0, [r0] + cmp r0, #1 + bne _08184D44 + ldr r1, _08184D30 + ldr r0, _08184D34 + ldr r0, [r0] + str r0, [r1] + ldr r4, _08184D38 + ldr r0, _08184D3C + bl VarGet + strb r0, [r4] + ldr r4, _08184D40 + bl GetFronterBrainSymbol + strb r0, [r4] + b _08184D50 + .align 2, 0 +_08184D2C: .4byte 0x0203C478 +_08184D30: .4byte 0x0203B9F8 +_08184D34: .4byte 0x03005AE0 +_08184D38: .4byte 0x0203C47A +_08184D3C: .4byte 0x000040CF +_08184D40: .4byte 0x0203C47B +_08184D44: + cmp r0, #2 + bne _08184D50 + ldr r0, _08184DB4 + ldr r1, _08184DB8 + ldr r1, [r1] + str r1, [r0] +_08184D50: + ldr r0, _08184DBC + ldr r5, [r0] + movs r0, #2 + ands r5, r0 + cmp r5, #0 + beq _08184DCC + bl GetMultiplayerId + ldr r1, _08184DC0 + strb r0, [r1] + movs r5, #0 + ldr r7, _08184DC4 + ldr r6, _08184DC8 +_08184D6A: + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #2 + adds r3, r4, r7 + lsls r2, r5, #3 + subs r2, r2, r5 + lsls r2, r2, #2 + adds r0, r6, #4 + adds r0, r2, r0 + ldr r0, [r0] + str r0, [r3] + adds r1, r2, r6 + ldrb r0, [r1, #0x13] + strb r0, [r3, #0xc] + ldrh r0, [r1, #0x18] + strh r0, [r3, #0xe] + ldrh r0, [r1, #0x1a] + strh r0, [r3, #0x10] + adds r3, r5, #1 + adds r0, r6, #0 + adds r0, #8 + adds r2, r2, r0 + adds r0, r7, #4 + adds r4, r4, r0 + movs r1, #7 +_08184D9C: + ldrb r0, [r2] + strb r0, [r4] + adds r2, #1 + adds r4, #1 + subs r1, #1 + cmp r1, #0 + bge _08184D9C + adds r5, r3, #0 + cmp r5, #3 + ble _08184D6A + b _08184E08 + .align 2, 0 +_08184DB4: .4byte 0x03005AE0 +_08184DB8: .4byte 0x0203B9F8 +_08184DBC: .4byte 0x02022C90 +_08184DC0: .4byte 0x0203C480 +_08184DC4: .4byte 0x0203C94C +_08184DC8: .4byte 0x020226A0 +_08184DCC: + ldr r3, _08184E10 + ldr r4, _08184E14 + ldr r2, [r4] + ldrb r1, [r2, #0xa] + ldrb r0, [r2, #0xb] + lsls r0, r0, #8 + orrs r1, r0 + ldrb r0, [r2, #0xc] + lsls r0, r0, #0x10 + orrs r1, r0 + ldrb r0, [r2, #0xd] + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + ldrb r0, [r2, #8] + strb r0, [r3, #0xc] + strh r5, [r3, #0xe] + ldr r0, _08184E18 + ldrb r0, [r0] + strh r0, [r3, #0x10] + movs r5, #0 + adds r3, #4 +_08184DF8: + adds r0, r5, r3 + ldr r1, [r4] + adds r1, r1, r5 + ldrb r1, [r1] + strb r1, [r0] + adds r5, #1 + cmp r5, #7 + ble _08184DF8 +_08184E08: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08184E10: .4byte 0x0203C94C +_08184E14: .4byte 0x03005AF0 +_08184E18: .4byte 0x0829BDA5 + thumb_func_end sub_08184D04 + + thumb_func_start RecordedBattle_SetBattlerAction +RecordedBattle_SetBattlerAction: @ 0x08184E1C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + ldr r1, _08184E58 + lsls r0, r5, #1 + adds r4, r0, r1 + ldrh r2, [r4] + adds r3, r2, #0 + ldr r0, _08184E5C + cmp r3, r0 + bhi _08184E50 + ldr r0, _08184E60 + ldrb r0, [r0] + cmp r0, #2 + beq _08184E50 + ldr r1, _08184E64 + adds r0, r2, #1 + strh r0, [r4] + movs r0, #0xa6 + lsls r0, r0, #2 + muls r0, r5, r0 + adds r0, r3, r0 + adds r0, r0, r1 + strb r6, [r0] +_08184E50: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08184E58: .4byte 0x0203C460 +_08184E5C: .4byte 0x00000297 +_08184E60: .4byte 0x0203C478 +_08184E64: .4byte 0x0203BA00 + thumb_func_end RecordedBattle_SetBattlerAction + + thumb_func_start RecordedBattle_ClearBattlerAction +RecordedBattle_ClearBattlerAction: @ 0x08184E68 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + movs r3, #0 + cmp r3, r4 + bge _08184EA6 + ldr r0, _08184EAC + lsls r1, r5, #1 + adds r2, r1, r0 + ldr r7, _08184EB0 + movs r0, #0xa6 + lsls r0, r0, #2 + muls r5, r0, r5 + movs r6, #0xff +_08184E88: + ldrh r0, [r2] + subs r0, #1 + strh r0, [r2] + ldrh r1, [r2] + adds r1, r1, r5 + adds r1, r1, r7 + ldrb r0, [r1] + orrs r0, r6 + strb r0, [r1] + ldrh r0, [r2] + cmp r0, #0 + beq _08184EA6 + adds r3, #1 + cmp r3, r4 + blt _08184E88 +_08184EA6: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08184EAC: .4byte 0x0203C460 +_08184EB0: .4byte 0x0203BA00 + thumb_func_end RecordedBattle_ClearBattlerAction + + thumb_func_start RecordedBattle_GetBattlerAction +RecordedBattle_GetBattlerAction: @ 0x08184EB4 + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r1, _08184F04 + lsls r0, r3, #1 + adds r2, r0, r1 + ldrh r1, [r2] + ldr r0, _08184F08 + cmp r1, r0 + bhi _08184EDA + ldr r4, _08184F0C + adds r0, #1 + muls r3, r0, r3 + adds r0, r1, r3 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0xff + bne _08184F1C +_08184EDA: + ldr r2, _08184F10 + ldr r1, _08184F14 + movs r0, #5 + strb r0, [r1] + movs r0, #5 + strh r0, [r2] + bl ResetPaletteFadeControl + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _08184F18 + bl SetMainCallback2 + movs r0, #0xff + b _08184F26 + .align 2, 0 +_08184F04: .4byte 0x0203C460 +_08184F08: .4byte 0x00000297 +_08184F0C: .4byte 0x0203BA00 +_08184F10: .4byte 0x02037290 +_08184F14: .4byte 0x02023FDE +_08184F18: .4byte 0x080381C1 +_08184F1C: + adds r0, r1, #1 + strh r0, [r2] + adds r0, r1, r3 + adds r0, r0, r4 + ldrb r0, [r0] +_08184F26: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end RecordedBattle_GetBattlerAction + + thumb_func_start GetRecordedBattleApprenticeId +GetRecordedBattleApprenticeId: @ 0x08184F30 + ldr r0, _08184F38 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08184F38: .4byte 0x0203C478 + thumb_func_end GetRecordedBattleApprenticeId + + thumb_func_start sub_08184F3C +sub_08184F3C: @ 0x08184F3C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov r8, r0 + movs r7, #0 + movs r0, #0 + mov ip, r0 +_08184F50: + mov r1, ip + lsls r3, r1, #1 + ldr r0, _08184FFC + adds r5, r3, r0 + ldr r1, _08185000 + adds r6, r3, r1 + ldrh r0, [r5] + mov sb, r3 + mov r1, ip + adds r1, #1 + str r1, [sp] + ldrh r1, [r6] + cmp r0, r1 + beq _08184FDE + adds r1, r7, #0 + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + adds r2, r7, #0 + add r1, r8 + mov r0, ip + strb r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + add r2, r8 + ldrb r0, [r5] + ldrb r1, [r6] + subs r0, r0, r1 + strb r0, [r2] + movs r4, #0 + ldrh r0, [r5] + ldrh r1, [r6] + subs r0, r0, r1 + cmp r4, r0 + bge _08184FD2 + ldr r1, _08185004 + mov sl, r1 + ldr r6, _08185000 + movs r0, #0xa6 + lsls r0, r0, #2 + mov r5, ip + muls r5, r0, r5 +_08184FA6: + adds r1, r7, #0 + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + add r1, r8 + adds r2, r3, r6 + ldrh r0, [r2] + adds r0, r0, r4 + adds r0, r0, r5 + add r0, sl + ldrb r0, [r0] + strb r0, [r1] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08184FFC + adds r0, r3, r1 + ldrh r1, [r0] + ldrh r0, [r2] + subs r1, r1, r0 + cmp r4, r1 + blt _08184FA6 +_08184FD2: + ldr r0, _08185000 + add r0, sb + ldr r1, _08184FFC + add r1, sb + ldrh r1, [r1] + strh r1, [r0] +_08184FDE: + ldr r1, [sp] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + mov ip, r0 + cmp r0, #3 + bls _08184F50 + adds r0, r7, #0 + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08184FFC: .4byte 0x0203C460 +_08185000: .4byte 0x0203C468 +_08185004: .4byte 0x0203BA00 + thumb_func_end sub_08184F3C + + thumb_func_start sub_08185008 +sub_08185008: @ 0x08185008 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + adds r7, r0, #0 + movs r1, #2 + mov r0, sp + strb r1, [r0] + ldr r0, _08185028 + ldr r0, [r0] + ands r0, r1 + cmp r0, #0 + beq _081850BE + movs r5, #0 + ldr r4, _0818502C + b _0818503A + .align 2, 0 +_08185028: .4byte 0x02022C90 +_0818502C: .4byte 0x020226A0 +_08185030: + ldrb r0, [r4] + cmp r0, #3 + bne _081850BE + adds r4, #0x1c + adds r5, #1 +_0818503A: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r5, r0 + blt _08185030 + ldr r0, _081850CC + ldr r0, [r0] + movs r1, #4 + ands r0, r1 + cmp r0, #0 + bne _081850BE + ldrb r0, [r7] + mov r4, sp + adds r4, #1 + strb r0, [r4] + ldrb r0, [r4] + mov r8, r4 + cmp r0, #0 + beq _081850BE +_08185062: + adds r0, r7, #0 + mov r1, sp + adds r2, r4, #0 + bl sub_081850D8 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r0, r7, #0 + mov r1, sp + adds r2, r4, #0 + bl sub_081850D8 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _081850B6 + ldr r3, _081850D0 + ldr r0, _081850D4 + lsls r1, r6, #1 + adds r4, r1, r0 + adds r5, r2, #0 + movs r0, #0xa6 + lsls r0, r0, #2 + muls r6, r0, r6 +_08185092: + adds r0, r7, #0 + mov r1, sp + mov r2, r8 + str r3, [sp, #4] + bl sub_081850D8 + ldrh r1, [r4] + adds r2, r1, #1 + strh r2, [r4] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r1, r1, r6 + ldr r3, [sp, #4] + adds r1, r1, r3 + strb r0, [r1] + subs r5, #1 + cmp r5, #0 + bne _08185092 +_081850B6: + mov r4, r8 + ldrb r0, [r4] + cmp r0, #0 + bne _08185062 +_081850BE: + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081850CC: .4byte 0x02022C90 +_081850D0: .4byte 0x0203BA00 +_081850D4: .4byte 0x0203C470 + thumb_func_end sub_08185008 + + thumb_func_start sub_081850D8 +sub_081850D8: @ 0x081850D8 + ldrb r3, [r2] + subs r3, #1 + strb r3, [r2] + ldrb r2, [r1] + adds r3, r2, #1 + strb r3, [r1] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r0, r2 + ldrb r0, [r0] + bx lr + .align 2, 0 + thumb_func_end sub_081850D8 + + thumb_func_start CanCopyRecordedBattleSaveData +CanCopyRecordedBattleSaveData: @ 0x081850F0 + push {r4, r5, lr} + movs r0, #0xf8 + lsls r0, r0, #4 + bl AllocZeroed + adds r4, r0, #0 + bl CopyRecordedBattleFromSave + adds r5, r0, #0 + adds r0, r4, #0 + bl Free + adds r0, r5, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end CanCopyRecordedBattleSaveData + + thumb_func_start IsRecordedBattleSaveValid +IsRecordedBattleSaveValid: @ 0x08185110 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r1, _0818513C + adds r0, r5, r1 + ldr r1, [r0] + cmp r1, #0 + beq _08185148 + ldr r0, _08185140 + ands r1, r0 + cmp r1, #0 + bne _08185148 + ldr r4, _08185144 + adds r0, r5, #0 + adds r1, r4, #0 + bl CalcByteArraySum + adds r4, r5, r4 + ldr r1, [r4] + cmp r0, r1 + bne _08185148 + movs r0, #1 + b _0818514A + .align 2, 0 +_0818513C: .4byte 0x000004EC +_08185140: .4byte 0x7D007E92 +_08185144: .4byte 0x00000F7C +_08185148: + movs r0, #0 +_0818514A: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end IsRecordedBattleSaveValid + + thumb_func_start RecordedBattleToSave +RecordedBattleToSave: @ 0x08185150 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #0x80 + lsls r2, r2, #5 + adds r0, r5, #0 + movs r1, #0 + bl memset + movs r2, #0xf8 + lsls r2, r2, #4 + adds r0, r5, #0 + adds r1, r4, #0 + bl memcpy + ldr r4, _0818518C + adds r0, r5, #0 + adds r1, r4, #0 + bl CalcByteArraySum + adds r4, r5, r4 + str r0, [r4] + movs r0, #0x1f + adds r1, r5, #0 + bl TryWriteSpecialSaveSection + cmp r0, #1 + bne _08185190 + movs r0, #1 + b _08185192 + .align 2, 0 +_0818518C: .4byte 0x00000F7C +_08185190: + movs r0, #0 +_08185192: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end RecordedBattleToSave + + thumb_func_start MoveRecordedBattleToSaveData +MoveRecordedBattleToSaveData: @ 0x08185198 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + movs r0, #0 + str r0, [sp, #4] + movs r0, #0xf8 + lsls r0, r0, #4 + bl AllocZeroed + adds r7, r0, #0 + movs r0, #0x80 + lsls r0, r0, #5 + bl AllocZeroed + str r0, [sp] + movs r6, #0 +_081851BE: + movs r0, #0x64 + adds r4, r6, #0 + muls r4, r0, r4 + adds r5, r7, r4 + ldr r1, _08185290 + adds r1, r4, r1 + adds r0, r5, #0 + movs r2, #0x64 + bl memcpy + movs r1, #0x96 + lsls r1, r1, #2 + adds r5, r5, r1 + ldr r0, _08185294 + adds r4, r4, r0 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x64 + bl memcpy + adds r6, #1 + cmp r6, #5 + ble _081851BE + movs r6, #0 + ldr r2, _08185298 + mov sl, r2 + movs r3, #0x9a + lsls r3, r3, #3 + adds r3, r7, r3 + str r3, [sp, #8] + ldr r5, _0818529C + mov r8, r6 + mov ip, r6 + movs r0, #0x96 + lsls r0, r0, #3 + adds r0, r0, r7 + mov sb, r0 + ldr r1, _081852A0 + adds r4, r7, r1 +_0818520C: + lsls r1, r6, #3 + ldr r0, _0818529C + adds r0, #4 + mov r3, r8 + adds r2, r3, r0 + add r1, sb + movs r3, #7 +_0818521A: + ldrb r0, [r2] + strb r0, [r1] + adds r2, #1 + adds r1, #1 + subs r3, #1 + cmp r3, #0 + bge _0818521A + ldr r0, [sp, #8] + adds r1, r0, r6 + ldrb r0, [r5, #0xc] + strb r0, [r1] + ldrh r0, [r5, #0x10] + strb r0, [r4] + ldrh r0, [r5, #0xe] + strb r0, [r4, #0xc] + ldr r1, _081852A4 + adds r0, r7, r1 + add r0, ip + ldr r1, [r5] + str r1, [r0] + adds r5, #0x14 + movs r2, #0x14 + add r8, r2 + movs r3, #4 + add ip, r3 + adds r4, #1 + adds r6, #1 + cmp r6, #3 + ble _0818520C + movs r5, #0x9d + lsls r5, r5, #3 + adds r1, r7, r5 + ldr r2, _081852A8 + ldr r0, [r2] + str r0, [r1] + ldr r3, _081852AC + ldr r2, [r3] + movs r0, #2 + ands r0, r2 + cmp r0, #0 + beq _08185338 + adds r5, #4 + adds r3, r7, r5 + movs r1, #0x23 + rsbs r1, r1, #0 + ands r1, r2 + movs r0, #0x80 + lsls r0, r0, #0x12 + orrs r1, r0 + str r1, [r3] + movs r0, #4 + ands r0, r2 + cmp r0, #0 + beq _081852B0 + movs r0, #0x80 + lsls r0, r0, #0x18 + orrs r1, r0 + str r1, [r3] + b _0818533E + .align 2, 0 +_08185290: .4byte 0x0203C48C +_08185294: .4byte 0x0203C6E4 +_08185298: .4byte 0x03005AF0 +_0818529C: .4byte 0x0203C94C +_081852A0: .4byte 0x000004E4 +_081852A4: .4byte 0x000004D4 +_081852A8: .4byte 0x0203B9F8 +_081852AC: .4byte 0x0203C484 +_081852B0: + movs r0, #0x40 + ands r2, r0 + cmp r2, #0 + beq _0818533E + ldr r1, _081852CC + ldrh r0, [r1, #0xe] + cmp r0, #1 + beq _08185304 + cmp r0, #1 + bgt _081852D0 + cmp r0, #0 + beq _081852DA + b _0818533E + .align 2, 0 +_081852CC: .4byte 0x0203C94C +_081852D0: + cmp r0, #2 + beq _081852DA + cmp r0, #3 + beq _08185304 + b _0818533E +_081852DA: + ldr r2, _081852F8 + ldrb r1, [r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r3, _081852FC + adds r0, r0, r3 + ldrh r1, [r0, #0xe] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0818533E + ldr r5, _08185300 + adds r0, r7, r5 + b _08185320 + .align 2, 0 +_081852F8: .4byte 0x0203C480 +_081852FC: .4byte 0x0203C94C +_08185300: .4byte 0x000004EC +_08185304: + ldr r0, _0818532C + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08185330 + adds r0, r0, r1 + ldrh r1, [r0, #0xe] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0818533E + ldr r2, _08185334 + adds r0, r7, r2 +_08185320: + ldr r1, [r0] + movs r2, #0x80 + lsls r2, r2, #0x18 + orrs r1, r2 + str r1, [r0] + b _0818533E + .align 2, 0 +_0818532C: .4byte 0x0203C480 +_08185330: .4byte 0x0203C94C +_08185334: .4byte 0x000004EC +_08185338: + ldr r3, _0818546C + adds r0, r7, r3 + str r2, [r0] +_0818533E: + ldr r5, _08185470 + ldrh r1, [r5] + ldr r2, _08185474 + adds r0, r7, r2 + strh r1, [r0] + ldr r3, _08185478 + ldrh r1, [r3] + ldr r5, _0818547C + adds r0, r7, r5 + strh r1, [r0] + ldr r0, _08185480 + ldrh r1, [r0] + adds r2, #4 + adds r0, r7, r2 + strh r1, [r0] + ldr r3, _08185484 + ldrb r1, [r3] + adds r5, #4 + adds r0, r7, r5 + strh r1, [r0] + mov r1, sl + ldr r0, [r1] + ldr r2, _08185488 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + ldr r3, _0818548C + adds r1, r7, r3 + strb r0, [r1] + ldr r5, _08185490 + ldrb r1, [r5] + ldr r2, _08185494 + adds r0, r7, r2 + strb r1, [r0] + ldr r3, _08185498 + ldrb r1, [r3] + ldr r5, _0818549C + adds r0, r7, r5 + strb r1, [r0] + mov r1, sl + ldr r0, [r1] + ldrb r1, [r0, #0x15] + lsls r1, r1, #0x1d + adds r2, #2 + adds r3, r7, r2 + lsrs r1, r1, #0x1f + ldrb r2, [r3] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + mov r5, sl + ldr r1, [r5] + ldrb r1, [r1, #0x14] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1c + movs r2, #0xf + rsbs r2, r2, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + movs r0, #0xa0 + lsls r0, r0, #3 + adds r1, r7, r0 + ldr r2, _081854A0 + ldr r0, [r2] + str r0, [r1] + ldr r3, _081854A4 + adds r1, r3, #0 + ldr r5, _08185470 + ldrh r5, [r5] + adds r0, r1, r5 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x63 + bls _081853DC + b _08185500 +_081853DC: + movs r6, #0 + ldr r0, _081854A8 + adds r3, r7, r0 + mov sb, sl + ldr r1, _08185470 + mov ip, r1 + ldr r2, _081854A4 + mov r8, r2 + ldr r4, _081854AC +_081853EE: + adds r2, r3, r6 + mov r5, sb + ldr r1, [r5] + mov r5, ip + ldrh r0, [r5] + add r0, r8 + movs r5, #0xec + muls r0, r5, r0 + adds r0, r6, r0 + adds r1, r1, r4 + adds r1, r1, r0 + ldrb r0, [r1] + strb r0, [r2] + adds r6, #1 + cmp r6, #7 + ble _081853EE + mov r0, sl + ldr r2, [r0] + ldr r1, _08185470 + ldrh r0, [r1] + ldr r3, _081854A4 + adds r0, r0, r3 + movs r1, #0xec + muls r0, r1, r0 + adds r2, r2, r0 + ldr r5, _081854B0 + adds r2, r2, r5 + ldrb r1, [r2] + ldr r2, _081854B4 + adds r0, r7, r2 + strb r1, [r0] + ldr r5, _081854B8 + ldrb r0, [r5] + cmp r0, #1 + bne _081854C0 + movs r6, #0 + ldr r0, _081854BC + adds r4, r7, r0 + mov sb, sl + ldr r1, _08185470 + mov r8, r1 + adds r5, r3, #0 +_08185442: + lsls r3, r6, #1 + mov r0, sb + ldr r2, [r0] + mov r1, r8 + ldrh r0, [r1] + adds r0, r0, r5 + movs r1, #0xec + muls r0, r1, r0 + adds r3, r3, r0 + movs r0, #0xec + lsls r0, r0, #3 + adds r2, r2, r0 + adds r2, r2, r3 + ldrh r0, [r2] + strh r0, [r4] + adds r4, #2 + adds r6, #1 + cmp r6, #5 + ble _08185442 + b _0818565A + .align 2, 0 +_0818546C: .4byte 0x000004EC +_08185470: .4byte 0x0203886A +_08185474: .4byte 0x000004F4 +_08185478: .4byte 0x0203886C +_0818547C: .4byte 0x000004F6 +_08185480: .4byte 0x0203886E +_08185484: .4byte 0x0203C480 +_08185488: .4byte 0x00000CA9 +_0818548C: .4byte 0x000004FC +_08185490: .4byte 0x0203C47A +_08185494: .4byte 0x000004FD +_08185498: .4byte 0x0203C47B +_0818549C: .4byte 0x000004FE +_081854A0: .4byte 0x0203C488 +_081854A4: .4byte 0xFFFFFED4 +_081854A8: .4byte 0x00000504 +_081854AC: .4byte 0x0000073C +_081854B0: .4byte 0x00000739 +_081854B4: .4byte 0x0000050C +_081854B8: .4byte 0x0203C9B4 +_081854BC: .4byte 0x0000050E +_081854C0: + movs r6, #0 + ldr r1, _081854F4 + adds r4, r7, r1 + mov sb, sl + ldr r2, _081854F8 + mov r8, r2 + adds r5, r3, #0 +_081854CE: + lsls r3, r6, #1 + mov r0, sb + ldr r2, [r0] + mov r1, r8 + ldrh r0, [r1] + adds r0, r0, r5 + movs r1, #0xec + muls r0, r1, r0 + adds r3, r3, r0 + ldr r0, _081854FC + adds r2, r2, r0 + adds r2, r2, r3 + ldrh r0, [r2] + strh r0, [r4] + adds r4, #2 + adds r6, #1 + cmp r6, #5 + ble _081854CE + b _0818565A + .align 2, 0 +_081854F4: .4byte 0x0000050E +_081854F8: .4byte 0x0203886A +_081854FC: .4byte 0x00000754 +_08185500: + ldr r2, _0818559C + ldrh r2, [r2] + adds r0, r1, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x63 + bhi _081855FC + movs r6, #0 + ldr r5, _081855A0 + adds r3, r7, r5 + mov sb, sl + ldr r0, _0818559C + mov ip, r0 + ldr r1, _081855A4 + mov r8, r1 + ldr r4, _081855A8 +_08185520: + adds r2, r3, r6 + mov r5, sb + ldr r1, [r5] + mov r5, ip + ldrh r0, [r5] + add r0, r8 + movs r5, #0xec + muls r0, r5, r0 + adds r0, r6, r0 + adds r1, r1, r4 + adds r1, r1, r0 + ldrb r0, [r1] + strb r0, [r2] + adds r6, #1 + cmp r6, #7 + ble _08185520 + mov r0, sl + ldr r2, [r0] + ldr r1, _0818559C + ldrh r0, [r1] + ldr r3, _081855A4 + adds r0, r0, r3 + movs r1, #0xec + muls r0, r1, r0 + adds r2, r2, r0 + ldr r5, _081855AC + adds r2, r2, r5 + ldrb r1, [r2] + ldr r2, _081855B0 + adds r0, r7, r2 + strb r1, [r0] + ldr r5, _081855B4 + ldrb r0, [r5] + cmp r0, #1 + bne _081855BC + movs r6, #0 + ldr r0, _081855B8 + adds r4, r7, r0 + mov sb, sl + ldr r1, _0818559C + mov r8, r1 + adds r5, r3, #0 +_08185574: + lsls r3, r6, #1 + mov r0, sb + ldr r2, [r0] + mov r1, r8 + ldrh r0, [r1] + adds r0, r0, r5 + movs r1, #0xec + muls r0, r1, r0 + adds r3, r3, r0 + movs r0, #0xec + lsls r0, r0, #3 + adds r2, r2, r0 + adds r2, r2, r3 + ldrh r0, [r2] + strh r0, [r4] + adds r4, #2 + adds r6, #1 + cmp r6, #5 + ble _08185574 + b _0818565A + .align 2, 0 +_0818559C: .4byte 0x0203886C +_081855A0: .4byte 0x00000504 +_081855A4: .4byte 0xFFFFFED4 +_081855A8: .4byte 0x0000073C +_081855AC: .4byte 0x00000739 +_081855B0: .4byte 0x0000050C +_081855B4: .4byte 0x0203C9B4 +_081855B8: .4byte 0x0000050E +_081855BC: + movs r6, #0 + ldr r1, _081855F0 + adds r4, r7, r1 + mov sb, sl + ldr r2, _081855F4 + mov r8, r2 + adds r5, r3, #0 +_081855CA: + lsls r3, r6, #1 + mov r0, sb + ldr r2, [r0] + mov r1, r8 + ldrh r0, [r1] + adds r0, r0, r5 + movs r1, #0xec + muls r0, r1, r0 + adds r3, r3, r0 + ldr r0, _081855F8 + adds r2, r2, r0 + adds r2, r2, r3 + ldrh r0, [r2] + strh r0, [r4] + adds r4, #2 + adds r6, #1 + cmp r6, #5 + ble _081855CA + b _0818565A + .align 2, 0 +_081855F0: .4byte 0x0000050E +_081855F4: .4byte 0x0203886C +_081855F8: .4byte 0x00000754 +_081855FC: + ldr r2, _081856BC + ldrh r2, [r2] + adds r0, r1, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x63 + bhi _0818565A + movs r6, #0 + ldr r5, _081856C0 + adds r3, r7, r5 + mov sb, sl + ldr r0, _081856BC + mov ip, r0 + ldr r1, _081856C4 + mov r8, r1 + ldr r4, _081856C8 +_0818561C: + adds r2, r3, r6 + mov r5, sb + ldr r1, [r5] + mov r5, ip + ldrh r0, [r5] + add r0, r8 + movs r5, #0xec + muls r0, r5, r0 + adds r0, r6, r0 + adds r1, r1, r4 + adds r1, r1, r0 + ldrb r0, [r1] + strb r0, [r2] + adds r6, #1 + cmp r6, #7 + ble _0818561C + mov r0, sl + ldr r2, [r0] + ldr r1, _081856BC + ldrh r0, [r1] + ldr r3, _081856C4 + adds r0, r0, r3 + movs r1, #0xec + muls r0, r1, r0 + adds r2, r2, r0 + ldr r5, _081856CC + adds r2, r2, r5 + ldrb r1, [r2] + ldr r2, _081856D0 + adds r0, r7, r2 + strb r1, [r0] +_0818565A: + ldr r3, _081856D4 + ldrh r0, [r3] + ldr r1, _081856D8 + cmp r0, r1 + bls _081856E8 + mov r5, sl + ldr r2, [r5] + adds r1, r0, #0 + ldr r3, _081856DC + adds r1, r1, r3 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, r2, r0 + adds r2, #0xdc + ldrb r0, [r2] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1b + ldr r2, _081856E0 + adds r1, r7, r2 + strb r0, [r1] + movs r6, #0 + ldr r5, _081856E4 + adds r4, r7, r5 + mov sb, sl + ldr r0, _081856D4 + mov r8, r0 + adds r5, r3, #0 +_08185692: + lsls r3, r6, #1 + mov r1, sb + ldr r2, [r1] + mov r0, r8 + ldrh r1, [r0] + adds r1, r1, r5 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r3, r3, r0 + movs r1, #0x82 + lsls r1, r1, #1 + adds r2, r2, r1 + adds r2, r2, r3 + ldrh r0, [r2] + strh r0, [r4] + adds r4, #2 + adds r6, #1 + cmp r6, #5 + ble _08185692 + b _08185786 + .align 2, 0 +_081856BC: .4byte 0x0203886E +_081856C0: .4byte 0x00000504 +_081856C4: .4byte 0xFFFFFED4 +_081856C8: .4byte 0x0000073C +_081856CC: .4byte 0x00000739 +_081856D0: .4byte 0x0000050C +_081856D4: .4byte 0x0203886A +_081856D8: .4byte 0x0000018F +_081856DC: .4byte 0xFFFFFE70 +_081856E0: .4byte 0x0000050D +_081856E4: .4byte 0x0000050E +_081856E8: + ldr r2, _0818574C + ldrh r0, [r2] + cmp r0, r1 + bls _0818575C + mov r3, sl + ldr r2, [r3] + ldr r5, _0818574C + ldrh r1, [r5] + ldr r3, _08185750 + adds r1, r1, r3 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, r2, r0 + adds r2, #0xdc + ldrb r0, [r2] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1b + ldr r2, _08185754 + adds r1, r7, r2 + strb r0, [r1] + movs r6, #0 + ldr r5, _08185758 + adds r4, r7, r5 + mov sb, sl + ldr r0, _0818574C + mov r8, r0 + adds r5, r3, #0 +_08185720: + lsls r3, r6, #1 + mov r1, sb + ldr r2, [r1] + mov r0, r8 + ldrh r1, [r0] + adds r1, r1, r5 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r3, r3, r0 + movs r1, #0x82 + lsls r1, r1, #1 + adds r2, r2, r1 + adds r2, r2, r3 + ldrh r0, [r2] + strh r0, [r4] + adds r4, #2 + adds r6, #1 + cmp r6, #5 + ble _08185720 + b _08185786 + .align 2, 0 +_0818574C: .4byte 0x0203886C +_08185750: .4byte 0xFFFFFE70 +_08185754: .4byte 0x0000050D +_08185758: .4byte 0x0000050E +_0818575C: + ldr r2, _081857F8 + ldrh r0, [r2] + cmp r0, r1 + bls _08185786 + mov r3, sl + ldr r2, [r3] + ldr r5, _081857F8 + ldrh r1, [r5] + ldr r0, _081857FC + adds r1, r1, r0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, r2, r0 + adds r2, #0xdc + ldrb r0, [r2] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1b + ldr r2, _08185800 + adds r1, r7, r2 + strb r0, [r1] +_08185786: + movs r6, #0 + ldr r3, _08185804 + mov sl, r3 + ldr r5, _08185808 + mov sb, r5 + movs r0, #0xa6 + lsls r0, r0, #2 + mov r8, r0 + ldr r1, _0818580C + adds r5, r7, r1 +_0818579A: + adds r4, r6, #1 + mov r0, r8 + muls r0, r6, r0 + mov r3, sb + adds r2, r0, r3 + adds r1, r0, r5 + mov r3, sl + adds r3, #1 +_081857AA: + ldrb r0, [r2] + strb r0, [r1] + adds r2, #1 + adds r1, #1 + subs r3, #1 + cmp r3, #0 + bne _081857AA + adds r6, r4, #0 + cmp r6, #3 + ble _0818579A +_081857BE: + adds r0, r7, #0 + ldr r1, [sp] + bl RecordedBattleToSave + adds r4, r0, #0 + cmp r4, #1 + beq _081857DA + ldr r0, [sp, #4] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + cmp r0, #2 + bls _081857BE +_081857DA: + adds r0, r7, #0 + bl Free + ldr r0, [sp] + bl Free + adds r0, r4, #0 + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081857F8: .4byte 0x0203886E +_081857FC: .4byte 0xFFFFFE70 +_08185800: .4byte 0x0000050D +_08185804: .4byte 0x00000297 +_08185808: .4byte 0x0203BA00 +_0818580C: .4byte 0x0000051C + thumb_func_end MoveRecordedBattleToSaveData + + thumb_func_start TryCopyRecordedBattleSaveData +TryCopyRecordedBattleSaveData: @ 0x08185810 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + movs r0, #0x1f + bl TryReadSpecialSaveSection + cmp r0, #1 + bne _0818583A + movs r2, #0xf8 + lsls r2, r2, #4 + adds r0, r5, #0 + adds r1, r4, #0 + bl memcpy + adds r0, r5, #0 + bl IsRecordedBattleSaveValid + cmp r0, #0 + beq _0818583A + movs r0, #1 + b _0818583C +_0818583A: + movs r0, #0 +_0818583C: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TryCopyRecordedBattleSaveData + + thumb_func_start CopyRecordedBattleFromSave +CopyRecordedBattleFromSave: @ 0x08185844 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x80 + lsls r0, r0, #5 + bl AllocZeroed + adds r5, r0, #0 + adds r0, r4, #0 + adds r1, r5, #0 + bl TryCopyRecordedBattleSaveData + adds r4, r0, #0 + adds r0, r5, #0 + bl Free + adds r0, r4, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CopyRecordedBattleFromSave + + thumb_func_start CB2_RecordedBattleEnd +CB2_RecordedBattleEnd: @ 0x0818586C + push {lr} + ldr r0, _081858B4 + ldr r2, [r0] + ldr r0, _081858B8 + ldrb r0, [r0] + ldr r1, _081858BC + adds r2, r2, r1 + movs r1, #3 + ands r1, r0 + ldrb r3, [r2] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldr r1, _081858C0 + movs r0, #0 + strb r0, [r1] + ldr r0, _081858C4 + movs r1, #0 + str r1, [r0] + ldr r0, _081858C8 + strh r1, [r0] + ldr r0, _081858CC + strh r1, [r0] + ldr r0, _081858D0 + strh r1, [r0] + bl RecordedBattle_SaveParties + ldr r0, _081858D4 + ldr r0, [r0] + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_081858B4: .4byte 0x03005AF0 +_081858B8: .4byte 0x0203C479 +_081858BC: .4byte 0x00000CA9 +_081858C0: .4byte 0x02023FDE +_081858C4: .4byte 0x02022C90 +_081858C8: .4byte 0x0203886A +_081858CC: .4byte 0x0203886C +_081858D0: .4byte 0x0203886E +_081858D4: .4byte 0x0203C47C + thumb_func_end CB2_RecordedBattleEnd + + thumb_func_start Task_StartAfterCountdown +Task_StartAfterCountdown: @ 0x081858D8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _0818590C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #8] + subs r1, #1 + strh r1, [r0, #8] + lsls r1, r1, #0x10 + cmp r1, #0 + bne _08185906 + ldr r0, _08185910 + ldr r1, _08185914 + str r1, [r0, #8] + ldr r0, _08185918 + bl SetMainCallback2 + adds r0, r4, #0 + bl DestroyTask +_08185906: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0818590C: .4byte 0x03005B60 +_08185910: .4byte 0x03002360 +_08185914: .4byte 0x0818586D +_08185918: .4byte 0x080365B5 + thumb_func_end Task_StartAfterCountdown + + thumb_func_start SetVariablesForRecordedBattle +SetVariablesForRecordedBattle: @ 0x0818591C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r7, r0, #0 + bl ZeroPlayerPartyMons + bl ZeroEnemyPartyMons + movs r6, #0 + ldr r0, _08185B04 + mov r8, r0 +_08185938: + movs r0, #0x64 + adds r4, r6, #0 + muls r4, r0, r4 + mov r1, r8 + adds r0, r4, r1 + adds r5, r7, r4 + adds r1, r5, #0 + movs r2, #0x64 + bl memcpy + ldr r0, _08185B08 + adds r4, r4, r0 + movs r2, #0x96 + lsls r2, r2, #2 + adds r5, r5, r2 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0x64 + bl memcpy + adds r6, #1 + cmp r6, #5 + ble _08185938 + movs r6, #0 + ldr r0, _08185B0C + mov r8, r0 + mov r5, r8 + adds r5, #4 + mov sl, r6 + mov sb, r6 + movs r1, #0x96 + lsls r1, r1, #3 + adds r1, r7, r1 + str r1, [sp] + movs r2, #0x9a + lsls r2, r2, #3 + adds r4, r7, r2 +_08185982: + lsls r0, r6, #2 + mov ip, r0 + ldr r3, [sp] + add r3, sb + mov r2, sl + lsls r1, r2, #2 + mov r0, r8 + adds r0, #8 + adds r1, r1, r0 + movs r2, #7 +_08185996: + ldrb r0, [r3] + strb r0, [r1] + adds r3, #1 + adds r1, #1 + subs r2, #1 + cmp r2, #0 + bge _08185996 + ldrb r0, [r4] + strb r0, [r5, #0xf] + ldrb r0, [r4, #0x14] + strh r0, [r5, #0x16] + movs r1, #0x9e + lsls r1, r1, #3 + adds r0, r7, r1 + adds r0, r0, r6 + ldrb r0, [r0] + strh r0, [r5, #0x14] + ldr r2, _08185B10 + adds r0, r7, r2 + add r0, ip + ldr r0, [r0] + str r0, [r5] + adds r5, #0x1c + movs r0, #7 + add sl, r0 + movs r1, #8 + add sb, r1 + adds r4, #1 + adds r6, #1 + cmp r6, #3 + ble _08185982 + adds r2, #0x14 + adds r0, r7, r2 + ldr r0, [r0] + ldr r1, _08185B14 + str r0, [r1] + adds r2, #4 + adds r0, r7, r2 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x11 + orrs r0, r1 + ldr r1, _08185B18 + str r0, [r1] + adds r2, #8 + adds r0, r7, r2 + ldrh r0, [r0] + ldr r1, _08185B1C + strh r0, [r1] + adds r2, #2 + adds r0, r7, r2 + ldrh r0, [r0] + ldr r1, _08185B20 + strh r0, [r1] + adds r2, #2 + adds r0, r7, r2 + ldrh r0, [r0] + ldr r1, _08185B24 + strh r0, [r1] + adds r2, #2 + adds r0, r7, r2 + ldrh r0, [r0] + ldr r1, _08185B28 + strb r0, [r1] + ldr r2, _08185B2C + ldr r0, [r2] + ldr r1, _08185B30 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + ldr r2, _08185B34 + strb r0, [r2] + ldr r1, _08185B38 + adds r0, r7, r1 + ldrb r0, [r0] + ldr r2, _08185B3C + strb r0, [r2] + adds r1, #1 + adds r0, r7, r1 + ldrb r0, [r0] + ldr r2, _08185B40 + strb r0, [r2] + adds r1, #1 + adds r0, r7, r1 + ldrb r1, [r0] + lsls r0, r1, #0x1f + lsrs r0, r0, #0x1f + ldr r2, _08185B44 + strb r0, [r2] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1d + ldr r0, _08185B48 + strb r1, [r0] + movs r1, #0xa0 + lsls r1, r1, #3 + adds r0, r7, r1 + ldr r0, [r0] + ldr r2, _08185B4C + str r0, [r2] + movs r6, #0 + ldr r4, _08185B50 + ldr r0, _08185B54 + adds r3, r7, r0 +_08185A66: + adds r0, r6, r4 + adds r1, r3, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, #1 + cmp r6, #7 + ble _08185A66 + ldr r1, _08185B58 + adds r0, r7, r1 + ldrb r0, [r0] + ldr r2, _08185B5C + strb r0, [r2] + adds r1, #1 + adds r0, r7, r1 + ldrb r0, [r0] + ldr r2, _08185B60 + strb r0, [r2] + ldr r0, _08185B64 + adds r1, r7, r0 + ldr r3, _08185B68 + movs r6, #5 +_08185A90: + ldrh r0, [r1] + strh r0, [r3] + adds r1, #2 + adds r3, #2 + subs r6, #1 + cmp r6, #0 + bge _08185A90 + ldr r1, _08185B2C + ldr r2, [r1] + ldr r1, _08185B6C + adds r0, r7, r1 + ldrb r0, [r0] + ldr r1, _08185B30 + adds r2, r2, r1 + movs r1, #3 + ands r1, r0 + ldrb r3, [r2] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + movs r6, #0 + ldr r2, _08185B70 + mov sl, r2 + ldr r0, _08185B74 + mov sb, r0 + movs r1, #0xa6 + lsls r1, r1, #2 + mov r8, r1 + ldr r2, _08185B78 + adds r5, r7, r2 +_08185AD0: + adds r3, r6, #1 + mov r0, r8 + muls r0, r6, r0 + adds r1, r0, r5 + mov r2, sb + adds r4, r0, r2 + mov r2, sl + adds r2, #1 +_08185AE0: + ldrb r0, [r1] + strb r0, [r4] + adds r1, #1 + adds r4, #1 + subs r2, #1 + cmp r2, #0 + bne _08185AE0 + adds r6, r3, #0 + cmp r6, #3 + ble _08185AD0 + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08185B04: .4byte 0x02024190 +_08185B08: .4byte 0x020243E8 +_08185B0C: .4byte 0x020226A0 +_08185B10: .4byte 0x000004D4 +_08185B14: .4byte 0x0203B9F8 +_08185B18: .4byte 0x02022C90 +_08185B1C: .4byte 0x0203886A +_08185B20: .4byte 0x0203886C +_08185B24: .4byte 0x0203886E +_08185B28: .4byte 0x0203C480 +_08185B2C: .4byte 0x03005AF0 +_08185B30: .4byte 0x00000CA9 +_08185B34: .4byte 0x0203C479 +_08185B38: .4byte 0x000004FD +_08185B3C: .4byte 0x0203C47A +_08185B40: .4byte 0x0203C47B +_08185B44: .4byte 0x0203C482 +_08185B48: .4byte 0x0203C483 +_08185B4C: .4byte 0x0203C488 +_08185B50: .4byte 0x0203C99D +_08185B54: .4byte 0x00000504 +_08185B58: .4byte 0x0000050C +_08185B5C: .4byte 0x0203C9A5 +_08185B60: .4byte 0x0203C9A6 +_08185B64: .4byte 0x0000050E +_08185B68: .4byte 0x0203C9A8 +_08185B6C: .4byte 0x000004FC +_08185B70: .4byte 0x00000297 +_08185B74: .4byte 0x0203BA00 +_08185B78: .4byte 0x0000051C + thumb_func_end SetVariablesForRecordedBattle + + thumb_func_start PlayRecordedBattle +PlayRecordedBattle: @ 0x08185B7C + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xf8 + lsls r0, r0, #4 + bl AllocZeroed + adds r4, r0, #0 + bl CopyRecordedBattleFromSave + cmp r0, #1 + bne _08185BC6 + bl RecordedBattle_RestoreSavedParties + adds r0, r4, #0 + bl SetVariablesForRecordedBattle + ldr r0, _08185BD4 + movs r1, #1 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08185BD8 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r0, #0x80 + strh r0, [r1, #8] + ldr r0, _08185BDC + str r5, [r0] + movs r0, #0 + bl PlayMapChosenOrBattleBGM + ldr r0, _08185BE0 + bl SetMainCallback2 +_08185BC6: + adds r0, r4, #0 + bl Free + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08185BD4: .4byte 0x081858D9 +_08185BD8: .4byte 0x03005B60 +_08185BDC: .4byte 0x0203C47C +_08185BE0: .4byte 0x08185BE5 + thumb_func_end PlayRecordedBattle + + thumb_func_start CB2_RecordedBattle +CB2_RecordedBattle: @ 0x08185BE4 + push {lr} + bl AnimateSprites + bl BuildOamBuffer + bl RunTasks + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CB2_RecordedBattle + + thumb_func_start GetRecordedBattleApprenticeLanguage +GetRecordedBattleApprenticeLanguage: @ 0x08185BF8 + ldr r0, _08185C00 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08185C00: .4byte 0x0203C47A + thumb_func_end GetRecordedBattleApprenticeLanguage + + thumb_func_start GetRecordedBattleFronterBrainSymbol +GetRecordedBattleFronterBrainSymbol: @ 0x08185C04 + ldr r0, _08185C0C + ldrb r0, [r0] + bx lr + .align 2, 0 +_08185C0C: .4byte 0x0203C47B + thumb_func_end GetRecordedBattleFronterBrainSymbol + + thumb_func_start RecordedBattle_RestoreSavedParties +RecordedBattle_RestoreSavedParties: @ 0x08185C10 + push {r4, r5, r6, lr} + movs r5, #0 + ldr r6, _08185C44 +_08185C16: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + adds r0, r4, r6 + ldr r1, _08185C48 + adds r1, r4, r1 + movs r2, #0x64 + bl memcpy + ldr r0, _08185C4C + adds r0, r4, r0 + ldr r1, _08185C50 + adds r4, r4, r1 + adds r1, r4, #0 + movs r2, #0x64 + bl memcpy + adds r5, #1 + cmp r5, #5 + ble _08185C16 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08185C44: .4byte 0x0203C48C +_08185C48: .4byte 0x02024190 +_08185C4C: .4byte 0x0203C6E4 +_08185C50: .4byte 0x020243E8 + thumb_func_end RecordedBattle_RestoreSavedParties + + thumb_func_start RecordedBattle_SaveParties +RecordedBattle_SaveParties: @ 0x08185C54 + push {r4, r5, r6, lr} + movs r5, #0 + ldr r6, _08185C88 +_08185C5A: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + adds r0, r4, r6 + ldr r1, _08185C8C + adds r1, r4, r1 + movs r2, #0x64 + bl memcpy + ldr r0, _08185C90 + adds r0, r4, r0 + ldr r1, _08185C94 + adds r4, r4, r1 + adds r1, r4, #0 + movs r2, #0x64 + bl memcpy + adds r5, #1 + cmp r5, #5 + ble _08185C5A + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08185C88: .4byte 0x02024190 +_08185C8C: .4byte 0x0203C48C +_08185C90: .4byte 0x020243E8 +_08185C94: .4byte 0x0203C6E4 + thumb_func_end RecordedBattle_SaveParties + + thumb_func_start GetActiveBattlerLinkPlayerGender +GetActiveBattlerLinkPlayerGender: @ 0x08185C98 + push {r4, r5, lr} + movs r2, #0 + ldr r0, _08185CC4 + ldr r3, _08185CC8 + ldrh r1, [r0, #0x18] + adds r4, r0, #0 + ldrb r0, [r3] + cmp r1, r0 + beq _08185CBC + adds r1, r4, #0 +_08185CAC: + adds r1, #0x1c + adds r2, #1 + cmp r2, #3 + bgt _08185CBC + ldrh r0, [r1, #0x18] + ldrb r5, [r3] + cmp r0, r5 + bne _08185CAC +_08185CBC: + cmp r2, #4 + bne _08185CCC + movs r0, #0 + b _08185CD6 + .align 2, 0 +_08185CC4: .4byte 0x020226A0 +_08185CC8: .4byte 0x02023D08 +_08185CCC: + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r0, [r0, #0x13] +_08185CD6: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end GetActiveBattlerLinkPlayerGender + + thumb_func_start sub_08185CDC +sub_08185CDC: @ 0x08185CDC + ldr r1, _08185CE4 + movs r0, #0 + strb r0, [r1] + bx lr + .align 2, 0 +_08185CE4: .4byte 0x0203C481 + thumb_func_end sub_08185CDC + + thumb_func_start sub_08185CE8 +sub_08185CE8: @ 0x08185CE8 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r2, _08185D00 + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x1f + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + bx lr + .align 2, 0 +_08185D00: .4byte 0x0203C481 + thumb_func_end sub_08185CE8 + + thumb_func_start GetRecordedBattleFrontierFacility +GetRecordedBattleFrontierFacility: @ 0x08185D04 + ldr r0, _08185D0C + ldrb r0, [r0] + bx lr + .align 2, 0 +_08185D0C: .4byte 0x0203C481 + thumb_func_end GetRecordedBattleFrontierFacility + + thumb_func_start GetRecordedBattleRecordMixFriendClass +GetRecordedBattleRecordMixFriendClass: @ 0x08185D10 + ldr r0, _08185D18 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08185D18: .4byte 0x0203C482 + thumb_func_end GetRecordedBattleRecordMixFriendClass + + thumb_func_start GetBattleSceneInRecordedBattle +GetBattleSceneInRecordedBattle: @ 0x08185D1C + ldr r0, _08185D24 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08185D24: .4byte 0x0203C483 + thumb_func_end GetBattleSceneInRecordedBattle + + thumb_func_start RecordedBattle_CopyBattlerMoves +RecordedBattle_CopyBattlerMoves: @ 0x08185D28 + push {r4, r5, r6, r7, lr} + ldr r4, _08185D7C + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08185D74 + ldr r0, _08185D80 + ldr r0, [r0] + ldr r1, _08185D84 + ands r0, r1 + cmp r0, #0 + bne _08185D74 + ldr r0, _08185D88 + ldrb r0, [r0] + cmp r0, #2 + beq _08185D74 + movs r3, #0 + ldr r7, _08185D8C + adds r6, r4, #0 + ldr r5, _08185D90 + movs r4, #0x58 +_08185D58: + lsls r2, r3, #1 + ldrb r1, [r6] + lsrs r0, r1, #1 + lsls r0, r0, #3 + adds r0, r2, r0 + adds r0, r0, r7 + muls r1, r4, r1 + adds r2, r2, r1 + adds r2, r2, r5 + ldrh r1, [r2] + strh r1, [r0] + adds r3, #1 + cmp r3, #3 + ble _08185D58 +_08185D74: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08185D7C: .4byte 0x02023D08 +_08185D80: .4byte 0x02022C90 +_08185D84: .4byte 0x02000002 +_08185D88: .4byte 0x0203C478 +_08185D8C: .4byte 0x0203C93C +_08185D90: .4byte 0x02023D34 + thumb_func_end RecordedBattle_CopyBattlerMoves + + thumb_func_start sub_08185D94 +sub_08185D94: @ 0x08185D94 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x50 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x24] + ldr r0, _08185DBC + ldr r0, [r0] + ldr r1, _08185DC0 + ands r0, r1 + cmp r0, #0 + beq _08185DB4 + b _08186154 +_08185DB4: + movs r0, #0 + mov sl, r0 + b _0818614A + .align 2, 0 +_08185DBC: .4byte 0x02022C90 +_08185DC0: .4byte 0x02000002 +_08185DC4: + mov r1, sl + lsls r4, r1, #0x18 + lsrs r5, r4, #0x18 + adds r0, r5, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r4, [sp, #0x4c] + mov r2, sl + adds r2, #1 + str r2, [sp, #0x38] + cmp r0, #1 + bne _08185DE2 + b _08186146 +_08185DE2: + ldr r3, [sp, #0x24] + cmp r3, #1 + bne _08185E76 + movs r5, #0 + ldr r4, _08185E60 + mov r0, sl + asrs r6, r0, #0x1f + subs r0, r0, r6 + asrs r0, r0, #1 + lsls r0, r0, #3 + adds r2, r0, r4 + movs r1, #0x58 + mov r0, sl + muls r0, r1, r0 + ldr r3, _08185E64 + adds r1, r0, r3 +_08185E02: + ldrh r0, [r1] + ldrh r4, [r2] + cmp r0, r4 + bne _08185E14 + adds r2, #2 + adds r1, #2 + adds r5, #1 + cmp r5, #3 + ble _08185E02 +_08185E14: + cmp r5, #4 + bne _08185E1A + b _08186146 +_08185E1A: + ldr r1, [sp, #0x4c] + lsrs r0, r1, #0x18 + movs r1, #6 + bl RecordedBattle_SetBattlerAction + movs r5, #0 + ldr r2, _08185E60 + mov r8, r2 + movs r3, #0x58 + mov r7, sl + muls r7, r3, r7 + mov r4, sl + subs r0, r4, r6 + asrs r4, r0, #1 +_08185E36: + movs r2, #0 + lsls r0, r5, #1 + adds r5, #1 + adds r0, r0, r7 + ldr r1, _08185E64 + adds r3, r0, r1 + lsls r0, r4, #3 + mov r6, r8 + adds r1, r0, r6 +_08185E48: + ldrh r0, [r3] + ldrh r6, [r1] + cmp r0, r6 + bne _08185E68 + lsls r1, r2, #0x18 + lsrs r1, r1, #0x18 + ldr r2, [sp, #0x4c] + lsrs r0, r2, #0x18 + bl RecordedBattle_SetBattlerAction + b _08185E70 + .align 2, 0 +_08185E60: .4byte 0x0203C93C +_08185E64: .4byte 0x02023D34 +_08185E68: + adds r1, #2 + adds r2, #1 + cmp r2, #3 + ble _08185E48 +_08185E70: + cmp r5, #3 + ble _08185E36 + b _08186146 +_08185E76: + ldr r3, _08186164 + ldr r1, _08186168 + mov r4, sl + lsls r2, r4, #1 + adds r1, r2, r1 + movs r0, #0xa6 + lsls r0, r0, #2 + mov r6, sl + muls r6, r0, r6 + adds r0, r6, #0 + ldrh r1, [r1] + adds r0, r0, r1 + adds r0, r0, r3 + ldrb r0, [r0] + str r2, [sp, #0x44] + cmp r0, #6 + beq _08185E9A + b _08186146 +_08185E9A: + adds r0, r5, #0 + bl RecordedBattle_GetBattlerAction + movs r5, #0 + mov r0, sp + adds r0, #4 + str r0, [sp, #0x28] + mov r1, sp + adds r1, #0xc + str r1, [sp, #0x30] + mov r2, sp + adds r2, #0x14 + str r2, [sp, #0x34] + mov r3, sp + adds r3, #0x18 + str r3, [sp, #0x3c] + mov r4, sp + adds r4, #8 + str r4, [sp, #0x2c] + mov r6, sl + lsls r6, r6, #3 + str r6, [sp, #0x48] + movs r1, #0x58 + mov r0, sl + muls r0, r1, r0 + ldr r2, _0818616C + adds r0, r0, r2 + adds r6, r0, #0 + adds r6, #0x3b + movs r4, #3 +_08185ED6: + mov r0, sp + adds r3, r0, r5 + ldrb r1, [r6] + lsls r2, r5, #1 + adds r0, r4, #0 + lsls r0, r2 + ands r1, r0 + asrs r1, r2 + strb r1, [r3] + adds r5, #1 + cmp r5, #3 + ble _08185ED6 + movs r5, #0 + ldr r1, _0818616C + mov sb, r1 + movs r2, #0x58 + mov r7, sl + muls r7, r2, r7 + ldr r4, [sp, #0x28] + ldr r6, [sp, #0x30] +_08185EFE: + ldr r3, [sp, #0x4c] + lsrs r0, r3, #0x18 + bl RecordedBattle_GetBattlerAction + strb r0, [r4] + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r7 + movs r1, #0xc + add r1, sb + mov r8, r1 + add r0, r8 + ldrh r0, [r0] + strh r0, [r6] + ldr r2, [sp, #0x34] + adds r1, r2, r5 + ldrb r0, [r4] + adds r0, r0, r7 + ldr r3, _08186170 + adds r0, r0, r3 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, [sp, #0x3c] + adds r1, r0, r5 + ldrb r0, [r4] + add r0, sp + ldrb r0, [r0] + strb r0, [r1] + ldr r1, [sp, #0x2c] + adds r3, r1, r5 + ldr r2, [sp, #0x48] + mov r1, sl + subs r0, r2, r1 + lsls r0, r0, #2 + ldr r2, _08186174 + adds r0, r0, r2 + ldrb r1, [r0, #0x18] + lsrs r1, r1, #4 + ldr r2, _08186178 + lsls r0, r5, #2 + adds r0, r0, r2 + ldr r0, [r0] + ands r1, r0 + lsrs r1, r5 + strb r1, [r3] + adds r4, #1 + adds r6, #2 + adds r5, #1 + cmp r5, #3 + ble _08185EFE + movs r5, #0 + movs r3, #0xc + rsbs r3, r3, #0 + add r3, r8 + mov ip, r3 + ldr r4, _08186174 + mov sb, r4 + movs r6, #0x58 + mov r1, sl + muls r1, r6, r1 + mov r0, r8 + adds r0, #0x18 + adds r4, r1, r0 + adds r3, r1, #0 + mov r7, r8 + ldr r6, [sp, #0x34] + ldr r2, [sp, #0x30] +_08185F84: + adds r1, r3, r7 + ldrh r0, [r2] + strh r0, [r1] + adds r0, r6, r5 + ldrb r0, [r0] + strb r0, [r4] + adds r4, #1 + adds r3, #2 + adds r2, #2 + adds r5, #1 + cmp r5, #3 + ble _08185F84 + movs r0, #0x58 + mov r4, sl + muls r4, r0, r4 + mov r1, ip + adds r0, r4, r1 + adds r0, #0x3b + movs r1, #0 + strb r1, [r0] + ldr r2, [sp, #0x48] + mov r6, sl + subs r3, r2, r6 + lsls r3, r3, #2 + mov r0, sb + adds r2, r3, r0 + ldrb r1, [r2, #0x18] + movs r0, #0xf + ands r0, r1 + strb r0, [r2, #0x18] + movs r5, #0 + ldr r1, _0818616C + adds r4, r4, r1 + adds r4, #0x3b + ldr r0, _08186174 + adds r6, r3, r0 +_08185FCC: + ldr r2, [sp, #0x3c] + adds r0, r2, r5 + ldrb r0, [r0] + lsls r1, r5, #1 + lsls r0, r1 + ldrb r1, [r4] + orrs r0, r1 + strb r0, [r4] + ldrb r2, [r6, #0x18] + lsrs r3, r2, #4 + ldr r1, [sp, #0x2c] + adds r0, r1, r5 + ldrb r1, [r0] + lsls r1, r5 + orrs r1, r3 + lsls r1, r1, #4 + movs r0, #0xf + ands r0, r2 + orrs r0, r1 + strb r0, [r6, #0x18] + adds r5, #1 + cmp r5, #3 + ble _08185FCC + movs r2, #0x58 + mov r0, sl + muls r0, r2, r0 + mov r1, ip + adds r1, #0x50 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0xe + ands r0, r1 + cmp r0, #0 + beq _08186014 + b _08186122 +_08186014: + movs r5, #0 + mov r3, sp + adds r3, #0x20 + str r3, [sp, #0x40] + ldr r0, _0818617C + ldr r4, [sp, #0x44] + adds r6, r4, r0 +_08186022: + ldrh r1, [r6] + movs r0, #0x64 + muls r0, r1, r0 + ldr r4, _08186180 + adds r0, r0, r4 + movs r1, #0x15 + movs r2, #0 + bl GetMonData + mov r1, sp + adds r3, r1, r5 + lsls r2, r5, #1 + movs r1, #3 + lsls r1, r2 + ands r0, r1 + lsrs r0, r2 + strb r0, [r3] + adds r5, #1 + cmp r5, #3 + ble _08186022 + movs r5, #0 + ldr r0, _0818617C + ldr r2, [sp, #0x44] + adds r7, r2, r0 + movs r3, #0x64 + mov sb, r3 + mov r8, r4 + ldr r4, [sp, #0x28] + ldr r6, [sp, #0x30] +_0818605C: + ldrh r0, [r7] + mov r1, sb + muls r1, r0, r1 + adds r0, r1, #0 + add r0, r8 + ldrb r1, [r4] + adds r1, #0xd + movs r2, #0 + bl GetMonData + strh r0, [r6] + ldrh r0, [r7] + mov r2, sb + muls r2, r0, r2 + adds r0, r2, #0 + add r0, r8 + ldrb r1, [r4] + adds r1, #0x11 + movs r2, #0 + bl GetMonData + ldr r3, [sp, #0x34] + adds r1, r3, r5 + strb r0, [r1] + ldr r0, [sp, #0x3c] + adds r1, r0, r5 + ldrb r0, [r4] + add r0, sp + ldrb r0, [r0] + strb r0, [r1] + adds r4, #1 + adds r6, #2 + adds r5, #1 + cmp r5, #3 + ble _0818605C + movs r5, #0 + ldr r0, _0818617C + ldr r1, [sp, #0x44] + adds r7, r1, r0 + movs r2, #0x64 + mov sb, r2 + ldr r3, _08186180 + mov r8, r3 + ldr r6, [sp, #0x30] + adds r6, #8 + ldr r4, [sp, #0x30] +_081860B8: + ldrh r0, [r7] + mov r1, sb + muls r1, r0, r1 + adds r0, r1, #0 + add r0, r8 + adds r1, r5, #0 + adds r1, #0xd + adds r2, r4, #0 + bl SetMonData + ldrh r0, [r7] + mov r2, sb + muls r2, r0, r2 + adds r0, r2, #0 + add r0, r8 + adds r1, r5, #0 + adds r1, #0x11 + adds r2, r6, #0 + bl SetMonData + adds r6, #1 + adds r4, #2 + adds r5, #1 + cmp r5, #3 + ble _081860B8 + movs r0, #0 + ldr r3, [sp, #0x40] + strb r0, [r3] + movs r5, #0 + ldr r4, _0818617C + ldr r6, _08186180 + ldr r3, [sp, #0x3c] + ldr r2, [sp, #0x40] +_081860FA: + adds r0, r3, r5 + ldrb r1, [r0] + lsls r0, r5, #1 + lsls r1, r0 + ldrb r0, [r2] + orrs r0, r1 + strb r0, [r2] + adds r5, #1 + cmp r5, #3 + ble _081860FA + ldr r1, [sp, #0x44] + adds r0, r1, r4 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + adds r0, r0, r6 + movs r1, #0x15 + ldr r2, [sp, #0x40] + bl SetMonData +_08186122: + ldr r2, _08186184 + ldr r3, [sp, #0x44] + adds r2, r3, r2 + ldr r0, _08186188 + ldr r0, [r0] + add r0, sl + adds r0, #0x80 + ldrb r0, [r0] + lsls r0, r0, #1 + movs r4, #0x58 + mov r1, sl + muls r1, r4, r1 + adds r0, r0, r1 + ldr r1, _0818616C + adds r1, #0xc + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2] +_08186146: + ldr r6, [sp, #0x38] + mov sl, r6 +_0818614A: + ldr r0, _0818618C + ldrb r0, [r0] + cmp sl, r0 + bge _08186154 + b _08185DC4 +_08186154: + add sp, #0x50 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08186164: .4byte 0x0203BA00 +_08186168: .4byte 0x0203C460 +_0818616C: .4byte 0x02023D28 +_08186170: .4byte 0x02023D4C +_08186174: .4byte 0x02023F60 +_08186178: .4byte 0x082FACB4 +_0818617C: .4byte 0x02023D12 +_08186180: .4byte 0x02024190 +_08186184: .4byte 0x02023F18 +_08186188: .4byte 0x02024140 +_0818618C: .4byte 0x02023D10 + thumb_func_end sub_08185D94 + + thumb_func_start GetAiScriptsInRecordedBattle +GetAiScriptsInRecordedBattle: @ 0x08186190 + ldr r0, _08186198 + ldr r0, [r0] + bx lr + .align 2, 0 +_08186198: .4byte 0x0203C488 + thumb_func_end GetAiScriptsInRecordedBattle + + thumb_func_start sub_0818619C +sub_0818619C: @ 0x0818619C + ldr r1, _081861A4 + movs r0, #1 + strb r0, [r1] + bx lr + .align 2, 0 +_081861A4: .4byte 0x0203C99C + thumb_func_end sub_0818619C + + thumb_func_start sub_081861A8 +sub_081861A8: @ 0x081861A8 + push {lr} + movs r1, #0 + ldr r0, _081861BC + ldrb r0, [r0] + cmp r0, #0 + bne _081861B6 + movs r1, #1 +_081861B6: + adds r0, r1, #0 + pop {r1} + bx r1 + .align 2, 0 +_081861BC: .4byte 0x0203C99C + thumb_func_end sub_081861A8 + + thumb_func_start sub_081861C0 +sub_081861C0: @ 0x081861C0 + push {r4, lr} + adds r3, r0, #0 + movs r2, #0 + ldr r4, _081861DC +_081861C8: + adds r0, r3, r2 + adds r1, r2, r4 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, #7 + ble _081861C8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081861DC: .4byte 0x0203C99D + thumb_func_end sub_081861C0 + + thumb_func_start GetRecordedBattleRecordMixFriendLanguage +GetRecordedBattleRecordMixFriendLanguage: @ 0x081861E0 + ldr r0, _081861E8 + ldrb r0, [r0] + bx lr + .align 2, 0 +_081861E8: .4byte 0x0203C9A5 + thumb_func_end GetRecordedBattleRecordMixFriendLanguage + + thumb_func_start GetTextSpeedInRecordedBattle +GetTextSpeedInRecordedBattle: @ 0x081861EC + ldr r0, _081861F4 + ldrb r0, [r0] + bx lr + .align 2, 0 +_081861F4: .4byte 0x0203C9A6 + thumb_func_end GetTextSpeedInRecordedBattle + + thumb_func_start RecordedBattle_SaveBattleOutcome +RecordedBattle_SaveBattleOutcome: @ 0x081861F8 + ldr r0, _08186204 + ldr r1, _08186208 + ldrb r1, [r1] + strb r1, [r0] + bx lr + .align 2, 0 +_08186204: .4byte 0x0203C9B4 +_08186208: .4byte 0x02023FDE + thumb_func_end RecordedBattle_SaveBattleOutcome + + thumb_func_start GetRecordedBattleEasyChatSpeech +GetRecordedBattleEasyChatSpeech: @ 0x0818620C + ldr r0, _08186210 + bx lr + .align 2, 0 +_08186210: .4byte 0x0203C9A8 + thumb_func_end GetRecordedBattleEasyChatSpeech + + thumb_func_start sub_08186214 +sub_08186214: @ 0x08186214 + bx lr + .align 2, 0 + thumb_func_end sub_08186214 + + thumb_func_start sub_08186218 +sub_08186218: @ 0x08186218 + ldr r1, _08186228 + ldr r0, _0818622C + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08186230 + str r1, [r0] + bx lr + .align 2, 0 +_08186228: .4byte 0x03005AC0 +_0818622C: .4byte 0x02023D08 +_08186230: .4byte 0x08186235 + thumb_func_end sub_08186218 + + thumb_func_start sub_08186234 +sub_08186234: @ 0x08186234 + push {lr} + ldr r2, _08186268 + ldr r1, _0818626C + ldr r0, _08186270 + ldrb r3, [r0] + lsls r0, r3, #2 + adds r0, r0, r1 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _08186280 + ldr r0, _08186274 + lsls r1, r3, #9 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0x38 + bhi _0818627C + ldr r0, _08186278 + ldrb r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl _call_via_r0 + b _08186280 + .align 2, 0 +_08186268: .4byte 0x02023D0C +_0818626C: .4byte 0x082FACB4 +_08186270: .4byte 0x02023D08 +_08186274: .4byte 0x02022D08 +_08186278: .4byte 0x085D38F0 +_0818627C: + bl RecordedOpponentBufferExecCompleted +_08186280: + pop {r0} + bx r0 + thumb_func_end sub_08186234 + + thumb_func_start sub_08186284 +sub_08186284: @ 0x08186284 + push {lr} + ldr r2, _081862AC + ldr r1, _081862B0 + ldr r0, _081862B4 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _081862B8 + cmp r1, r0 + bne _081862A8 + bl RecordedOpponentBufferExecCompleted +_081862A8: + pop {r0} + bx r0 + .align 2, 0 +_081862AC: .4byte 0x020205AC +_081862B0: .4byte 0x02023E88 +_081862B4: .4byte 0x02023D08 +_081862B8: .4byte 0x08007141 + thumb_func_end sub_08186284 + + thumb_func_start sub_081862BC +sub_081862BC: @ 0x081862BC + push {lr} + ldr r2, _081862E4 + ldr r1, _081862E8 + ldr r0, _081862EC + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _081862F0 + cmp r1, r0 + bne _081862E0 + bl RecordedOpponentBufferExecCompleted +_081862E0: + pop {r0} + bx r0 + .align 2, 0 +_081862E4: .4byte 0x020205AC +_081862E8: .4byte 0x02023E88 +_081862EC: .4byte 0x02023D08 +_081862F0: .4byte 0x08007141 + thumb_func_end sub_081862BC + + thumb_func_start sub_081862F4 +sub_081862F4: @ 0x081862F4 + push {r4, r5, r6, lr} + ldr r5, _0818634C + ldr r6, _08186350 + ldr r4, _08186354 + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r2, r0, #2 + adds r0, r5, #0 + adds r0, #0x1c + adds r0, r2, r0 + ldr r1, [r0] + ldr r0, _08186358 + cmp r1, r0 + bne _08186346 + adds r0, r2, r5 + ldrh r0, [r0, #6] + bl FreeTrainerFrontPicPalette + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + bl FreeSpriteOamMatrix + ldrb r0, [r4] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + bl DestroySprite + bl RecordedOpponentBufferExecCompleted +_08186346: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0818634C: .4byte 0x020205AC +_08186350: .4byte 0x02023E88 +_08186354: .4byte 0x02023D08 +_08186358: .4byte 0x08007141 + thumb_func_end sub_081862F4 + + thumb_func_start sub_0818635C +sub_0818635C: @ 0x0818635C + push {r4, lr} + ldr r4, _0818639C + ldr r1, [r4] + ldr r3, _081863A0 + ldrb r0, [r3] + ldr r2, [r1, #4] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r0, [r1, #9] + subs r0, #1 + strb r0, [r1, #9] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08186394 + ldr r0, [r4] + ldrb r1, [r3] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0 + strb r1, [r0, #9] + bl RecordedOpponentBufferExecCompleted +_08186394: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0818639C: .4byte 0x02024174 +_081863A0: .4byte 0x02023D08 + thumb_func_end sub_0818635C + + thumb_func_start sub_081863A4 +sub_081863A4: @ 0x081863A4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + movs r0, #0 + mov sb, r0 + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081863D0 + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08186424 + ldr r0, _0818640C + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08186424 +_081863D0: + ldr r4, _08186410 + ldr r0, _08186414 + ldr r2, _08186418 + ldrb r3, [r2] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, [r0] + ldr r0, _0818641C + mov r8, r2 + cmp r1, r0 + bne _08186490 + ldr r0, _08186420 + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3f + ldrb r0, [r0] + lsls r0, r0, #0x1b + cmp r0, #0 + bge _08186490 + b _08186496 + .align 2, 0 +_0818640C: .4byte 0x02022C90 +_08186410: .4byte 0x020205AC +_08186414: .4byte 0x03005AD0 +_08186418: .4byte 0x02023D08 +_0818641C: .4byte 0x08007141 +_08186420: .4byte 0x02023E88 +_08186424: + ldr r6, _08186574 + ldr r7, _08186578 + ldr r2, _0818657C + ldrb r3, [r2] + adds r0, r3, r7 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r5, r6, #0 + adds r5, #0x1c + adds r0, r0, r5 + ldr r4, [r0] + ldr r0, _08186580 + mov r8, r2 + cmp r4, r0 + bne _08186490 + movs r0, #2 + adds r2, r3, #0 + eors r2, r0 + adds r0, r2, r7 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r0, [r0] + cmp r0, r4 + bne _08186490 + ldr r4, _08186584 + adds r0, r3, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x3f + ldrb r0, [r0] + lsls r0, r0, #0x1b + cmp r0, #0 + bge _08186490 + adds r0, r2, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x3f + ldrb r0, [r0] + lsls r0, r0, #0x1b + cmp r0, #0 + bge _08186490 + movs r1, #1 + mov sb, r1 +_08186490: + mov r2, sb + cmp r2, #0 + beq _08186566 +_08186496: + mov r6, r8 + ldrb r0, [r6] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #1 + bne _08186542 + ldr r0, _08186588 + mov ip, r0 + ldr r0, [r0] + ldrb r2, [r6] + ldr r5, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r4, r0, r5 + ldrb r1, [r4, #1] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08186566 + movs r7, #2 + adds r1, r7, #0 + eors r1, r2 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r1, [r0, #1] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08186566 + ldrb r1, [r4] + movs r3, #0x7f + adds r0, r3, #0 + ands r0, r1 + strb r0, [r4] + mov r1, ip + ldr r0, [r1] + ldrb r2, [r6] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + movs r4, #2 + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r2 + strb r0, [r1, #1] + mov r0, ip + ldr r2, [r0] + ldrb r0, [r6] + adds r1, r7, #0 + eors r1, r0 + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + ands r3, r1 + strb r3, [r0] + mov r1, ip + ldr r2, [r1] + ldrb r0, [r6] + adds r1, r7, #0 + eors r1, r0 + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #1] + ands r4, r1 + strb r4, [r0, #1] + ldr r4, _0818658C + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl FreeSpritePaletteByTag +_08186542: + ldr r0, _08186588 + ldr r0, [r0] + mov r2, r8 + ldrb r1, [r2] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #3 + strb r1, [r0, #9] + ldr r1, _08186590 + mov r2, r8 + ldrb r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08186594 + str r1, [r0] +_08186566: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08186574: .4byte 0x020205AC +_08186578: .4byte 0x03005AD0 +_0818657C: .4byte 0x02023D08 +_08186580: .4byte 0x08007141 +_08186584: .4byte 0x02023E88 +_08186588: .4byte 0x02024174 +_0818658C: .4byte 0x000027F9 +_08186590: .4byte 0x03005AC0 +_08186594: .4byte 0x0818635D + thumb_func_end sub_081863A4 + + thumb_func_start sub_08186598 +sub_08186598: @ 0x08186598 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + movs r0, #0 + mov sb, r0 + mov r8, r0 + ldr r4, _08186750 + ldr r0, [r4] + ldr r7, _08186754 + ldrb r2, [r7] + ldr r1, [r0, #4] + lsls r3, r2, #1 + adds r0, r3, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r5, #0x88 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + bne _081865D8 + ldr r0, _08186758 + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _0818675C + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_08172CD4 +_081865D8: + ldr r1, [r4] + ldrb r0, [r7] + movs r6, #2 + adds r2, r6, #0 + eors r2, r0 + ldr r1, [r1, #4] + lsls r3, r2, #1 + adds r0, r3, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + bne _0818660A + ldr r0, _08186758 + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _0818675C + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_08172CD4 +_0818660A: + ldr r0, [r4] + ldrb r2, [r7] + ldr r3, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r4, r0, r3 + ldrb r1, [r4] + movs r5, #8 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + bne _081866DA + adds r1, r6, #0 + eors r1, r2 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + bne _081866DA + ldrb r1, [r4, #1] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081866C0 + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08186690 + ldr r0, _08186760 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08186690 + ldr r4, _08186764 + ldrb r0, [r7] + adds r1, r6, #0 + eors r1, r0 + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, _08186758 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _0818675C + adds r1, r1, r2 + movs r2, #0 + bl UpdateHealthboxAttribute + ldrb r0, [r7] + eors r0, r6 + bl sub_08076320 + ldrb r0, [r7] + eors r0, r6 + adds r0, r0, r4 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible +_08186690: + ldr r5, _08186764 + ldr r4, _08186754 + ldrb r1, [r4] + adds r0, r1, r5 + ldrb r0, [r0] + ldr r2, _08186758 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _0818675C + adds r1, r1, r2 + movs r2, #0 + bl UpdateHealthboxAttribute + ldrb r0, [r4] + bl sub_08076320 + ldrb r0, [r4] + adds r0, r0, r5 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible +_081866C0: + ldr r0, _08186750 + ldr r2, [r0] + ldr r0, _08186754 + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #1] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0, #1] +_081866DA: + ldr r5, _08186750 + ldr r0, [r5] + ldr r4, _08186754 + ldrb r2, [r4] + ldr r3, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #1] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0x80 + bne _08186796 + movs r1, #2 + eors r1, r2 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #1] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08186796 + bl IsCryPlayingOrClearCrySongs + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08186796 + ldr r0, [r5] + ldrb r2, [r4] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0, #1] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _08186778 + ldr r0, _08186760 + ldr r0, [r0] + movs r1, #0x42 + ands r0, r1 + cmp r0, #0x42 + bne _0818676C + adds r0, r2, #0 + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08186778 + ldr r0, _08186768 + bl m4aMPlayContinue + b _08186778 + .align 2, 0 +_08186750: .4byte 0x02024174 +_08186754: .4byte 0x02023D08 +_08186758: .4byte 0x02023D12 +_0818675C: .4byte 0x020243E8 +_08186760: .4byte 0x02022C90 +_08186764: .4byte 0x03005AD0 +_08186768: .4byte 0x030074D0 +_0818676C: + ldr r0, _081867D4 + ldr r1, _081867D8 + movs r2, #0x80 + lsls r2, r2, #1 + bl m4aMPlayVolumeControl +_08186778: + ldr r0, _081867DC + ldr r2, [r0] + ldr r0, _081867E0 + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #1] + movs r2, #0x20 + orrs r1, r2 + strb r1, [r0, #1] + movs r0, #1 + mov sb, r0 +_08186796: + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081867F4 + ldr r2, _081867E4 + ldr r0, _081867E8 + ldr r1, _081867E0 + ldrb r4, [r1] + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r3, [r0] + ldr r0, _081867EC + cmp r3, r0 + bne _08186852 + ldr r0, _081867F0 + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + cmp r0, r3 + bne _08186852 + b _0818684E + .align 2, 0 +_081867D4: .4byte 0x030074D0 +_081867D8: .4byte 0x0000FFFF +_081867DC: .4byte 0x02024174 +_081867E0: .4byte 0x02023D08 +_081867E4: .4byte 0x020205AC +_081867E8: .4byte 0x03005ADC +_081867EC: .4byte 0x08007141 +_081867F0: .4byte 0x02023E88 +_081867F4: + ldr r2, _08186948 + ldr r7, _0818694C + ldr r0, _08186950 + ldrb r3, [r0] + adds r0, r3, r7 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r4, [r0] + ldr r0, _08186954 + cmp r4, r0 + bne _08186852 + ldr r6, _08186958 + adds r0, r3, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r5, [r0] + cmp r5, r4 + bne _08186852 + movs r0, #2 + eors r3, r0 + adds r0, r3, r7 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r4, [r0] + cmp r4, r5 + bne _08186852 + adds r0, r3, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + cmp r0, r4 + bne _08186852 +_0818684E: + movs r0, #1 + mov r8, r0 +_08186852: + mov r0, sb + cmp r0, #0 + beq _0818693C + mov r0, r8 + cmp r0, #0 + beq _0818693C + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081868B6 + ldr r0, _0818695C + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _081868B6 + ldr r1, _0818694C + ldr r5, _08186950 + ldrb r0, [r5] + movs r4, #2 + eors r0, r4 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08186948 + adds r0, r0, r1 + bl DestroySprite + ldrb r0, [r5] + eors r4, r0 + ldr r1, _08186960 + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08186964 + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl SetBattlerShadowSpriteCallback +_081868B6: + ldr r1, _0818694C + ldr r4, _08186950 + ldrb r0, [r4] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08186948 + adds r0, r0, r1 + bl DestroySprite + ldrb r5, [r4] + ldr r1, _08186960 + lsls r0, r5, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08186964 + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r5, #0 + bl SetBattlerShadowSpriteCallback + ldr r3, _08186968 + ldr r0, [r3] + ldr r2, [r0, #8] + ldrb r1, [r2, #9] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #9] + ldr r0, [r3] + ldrb r2, [r4] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + movs r0, #0x21 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #1] + ldr r0, [r3] + ldrb r2, [r4] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + movs r0, #0x7f + ands r0, r2 + strb r0, [r1, #1] + ldr r1, _0818696C + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08186970 + str r1, [r0] +_0818693C: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08186948: .4byte 0x020205AC +_0818694C: .4byte 0x03005ADC +_08186950: .4byte 0x02023D08 +_08186954: .4byte 0x08007141 +_08186958: .4byte 0x02023E88 +_0818695C: .4byte 0x02022C90 +_08186960: .4byte 0x02023D12 +_08186964: .4byte 0x020243E8 +_08186968: .4byte 0x02024174 +_0818696C: .4byte 0x03005AC0 +_08186970: .4byte 0x081863A5 + thumb_func_end sub_08186598 + + thumb_func_start sub_08186974 +sub_08186974: @ 0x08186974 + push {r4, r5, r6, r7, lr} + ldr r4, _081869D0 + ldr r0, _081869D4 + ldr r7, _081869D8 + ldrb r3, [r7] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r2, r0, #2 + adds r0, r4, #0 + adds r0, #0x1c + adds r0, r2, r0 + ldr r1, [r0] + ldr r0, _081869DC + cmp r1, r0 + bne _08186A26 + adds r0, r2, r4 + movs r1, #0x24 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08186A26 + ldr r6, _081869E0 + ldr r0, [r6] + ldr r1, [r0, #4] + lsls r4, r3, #1 + adds r0, r4, r3 + lsls r0, r0, #2 + adds r2, r0, r1 + ldrb r5, [r2] + movs r0, #0x80 + ands r0, r5 + cmp r0, #0 + bne _081869EC + ldr r0, _081869E4 + adds r0, r4, r0 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _081869E8 + adds r1, r1, r0 + adds r0, r3, #0 + bl sub_08172CD4 + b _08186A26 + .align 2, 0 +_081869D0: .4byte 0x020205AC +_081869D4: .4byte 0x02023E88 +_081869D8: .4byte 0x02023D08 +_081869DC: .4byte 0x08007141 +_081869E0: .4byte 0x02024174 +_081869E4: .4byte 0x02023D12 +_081869E8: .4byte 0x020243E8 +_081869EC: + ldrb r1, [r2, #1] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08186A26 + movs r0, #0x7f + ands r0, r5 + strb r0, [r2] + ldr r0, [r6] + ldrb r2, [r7] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #1] + ldr r4, _08186A2C + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl FreeSpritePaletteByTag + bl RecordedOpponentBufferExecCompleted +_08186A26: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08186A2C: .4byte 0x000027F9 + thumb_func_end sub_08186974 + + thumb_func_start sub_08186A30 +sub_08186A30: @ 0x08186A30 + push {r4, r5, r6, lr} + ldr r6, _08186A70 + ldrb r0, [r6] + ldr r5, _08186A74 + adds r1, r0, r5 + ldrb r1, [r1] + movs r2, #0 + movs r3, #0 + bl MoveBattleBar + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible + lsls r4, r4, #0x10 + asrs r1, r4, #0x10 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _08186A78 + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r0, [r0] + movs r2, #0 + bl sub_080726F4 + b _08186A7C + .align 2, 0 +_08186A70: .4byte 0x02023D08 +_08186A74: .4byte 0x03005AD0 +_08186A78: + bl RecordedOpponentBufferExecCompleted +_08186A7C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08186A30 + + thumb_func_start sub_08186A84 +sub_08186A84: @ 0x08186A84 + push {lr} + ldr r2, _08186AB8 + ldr r0, _08186ABC + ldr r1, _08186AC0 + ldrb r3, [r1] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1f + cmp r0, #0 + bne _08186AB2 + ldr r0, _08186AC4 + adds r0, r3, r0 + ldrb r0, [r0] + bl SetHealthboxSpriteInvisible + bl RecordedOpponentBufferExecCompleted +_08186AB2: + pop {r0} + bx r0 + .align 2, 0 +_08186AB8: .4byte 0x020205AC +_08186ABC: .4byte 0x02023E88 +_08186AC0: .4byte 0x02023D08 +_08186AC4: .4byte 0x03005AD0 + thumb_func_end sub_08186A84 + + thumb_func_start sub_08186AC8 +sub_08186AC8: @ 0x08186AC8 + push {r4, r5, r6, lr} + ldr r0, _08186B28 + ldr r0, [r0] + ldr r6, _08186B2C + ldrb r2, [r6] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08186B22 + ldr r5, _08186B30 + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _08186B34 + adds r0, r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r0, r5 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + ldrb r0, [r6] + bl HideBattlerShadowSprite + ldr r1, _08186B38 + ldrb r0, [r6] + adds r0, r0, r1 + ldrb r0, [r0] + bl SetHealthboxSpriteInvisible + bl RecordedOpponentBufferExecCompleted +_08186B22: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08186B28: .4byte 0x02024174 +_08186B2C: .4byte 0x02023D08 +_08186B30: .4byte 0x02023E88 +_08186B34: .4byte 0x020205AC +_08186B38: .4byte 0x03005AD0 + thumb_func_end sub_08186AC8 + + thumb_func_start sub_08186B3C +sub_08186B3C: @ 0x08186B3C + push {lr} + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08186B4E + bl RecordedOpponentBufferExecCompleted +_08186B4E: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08186B3C + + thumb_func_start sub_08186B54 +sub_08186B54: @ 0x08186B54 + push {r4, lr} + ldr r1, _08186B90 + ldr r0, _08186B94 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + ldr r2, _08186B98 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, r0, r2 + movs r1, #0x30 + ldrsh r0, [r4, r1] + cmp r0, #0x20 + bne _08186BA0 + movs r3, #0 + movs r0, #0 + strh r0, [r4, #0x30] + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + subs r0, #5 + ands r0, r1 + strb r0, [r2] + ldr r0, _08186B9C + strb r3, [r0] + bl RecordedOpponentBufferExecCompleted + b _08186BCA + .align 2, 0 +_08186B90: .4byte 0x02023E88 +_08186B94: .4byte 0x02023D08 +_08186B98: .4byte 0x020205AC +_08186B9C: .4byte 0x0202415D +_08186BA0: + ldrh r0, [r4, #0x30] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _08186BC4 + adds r3, r4, #0 + adds r3, #0x3e + ldrb r2, [r3] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_08186BC4: + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] +_08186BCA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08186B54 + + thumb_func_start sub_08186BD0 +sub_08186BD0: @ 0x08186BD0 + push {r4, lr} + ldr r2, _08186C24 + ldr r0, _08186C28 + ldr r4, _08186C2C + ldrb r3, [r4] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _08186C30 + cmp r1, r0 + bne _08186C1C + ldr r0, _08186C34 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r3, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08186C10 + adds r0, r3, #0 + adds r1, r3, #0 + adds r2, r3, #0 + movs r3, #6 + bl InitAndLaunchSpecialAnimation +_08186C10: + ldr r0, _08186C38 + ldrb r1, [r4] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, _08186C3C + str r0, [r1] +_08186C1C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08186C24: .4byte 0x020205AC +_08186C28: .4byte 0x03005AD0 +_08186C2C: .4byte 0x02023D08 +_08186C30: .4byte 0x08007141 +_08186C34: .4byte 0x02024174 +_08186C38: .4byte 0x03005AC0 +_08186C3C: .4byte 0x08186C41 + thumb_func_end sub_08186BD0 + + thumb_func_start sub_08186C40 +sub_08186C40: @ 0x08186C40 + push {r4, lr} + ldr r0, _08186CA0 + ldr r0, [r0] + ldr r4, _08186CA4 + ldrb r1, [r4] + ldr r2, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08186C9A + bl IsCryPlayingOrClearCrySongs + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08186C9A + ldr r2, _08186CA8 + ldr r1, _08186CAC + ldrb r0, [r4] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _08186CB0 + cmp r1, r0 + beq _08186C8A + ldr r0, _08186CB4 + cmp r1, r0 + bne _08186C9A +_08186C8A: + ldr r0, _08186CB8 + ldr r1, _08186CBC + movs r2, #0x80 + lsls r2, r2, #1 + bl m4aMPlayVolumeControl + bl RecordedOpponentBufferExecCompleted +_08186C9A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08186CA0: .4byte 0x02024174 +_08186CA4: .4byte 0x02023D08 +_08186CA8: .4byte 0x020205AC +_08186CAC: .4byte 0x02023E88 +_08186CB0: .4byte 0x08007141 +_08186CB4: .4byte 0x080394FD +_08186CB8: .4byte 0x030074D0 +_08186CBC: .4byte 0x0000FFFF + thumb_func_end sub_08186C40 + + thumb_func_start sub_08186CC0 +sub_08186CC0: @ 0x08186CC0 + push {r4, r5, r6, r7, lr} + ldr r4, _08186D84 + ldr r0, [r4] + ldr r5, _08186D88 + ldrb r2, [r5] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r3, r0, r1 + ldrb r1, [r3, #1] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08186D7C + ldr r7, _08186D8C + ldr r6, _08186D90 + adds r0, r2, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r7, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, [r0] + ldr r0, _08186D94 + cmp r1, r0 + bne _08186D7C + ldrb r1, [r3] + movs r0, #0x7f + ands r0, r1 + strb r0, [r3] + ldr r0, [r4] + ldrb r2, [r5] + ldr r0, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #1] + ldr r4, _08186D98 + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl FreeSpritePaletteByTag + ldrb r0, [r5] + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + movs r1, #0 + bl StartSpriteAnim + ldr r4, _08186D9C + ldrb r1, [r5] + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, _08186DA0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _08186DA4 + adds r1, r1, r2 + movs r2, #0 + bl UpdateHealthboxAttribute + ldrb r0, [r5] + bl sub_08076320 + ldrb r0, [r5] + adds r0, r0, r4 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible + ldrb r0, [r5] + bl CopyBattleSpriteInvisibility + ldr r1, _08186DA8 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08186DAC + str r1, [r0] +_08186D7C: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08186D84: .4byte 0x02024174 +_08186D88: .4byte 0x02023D08 +_08186D8C: .4byte 0x020205AC +_08186D90: .4byte 0x02023E88 +_08186D94: .4byte 0x08007141 +_08186D98: .4byte 0x000027F9 +_08186D9C: .4byte 0x03005AD0 +_08186DA0: .4byte 0x02023D12 +_08186DA4: .4byte 0x020243E8 +_08186DA8: .4byte 0x03005AC0 +_08186DAC: .4byte 0x08186BD1 + thumb_func_end sub_08186CC0 + + thumb_func_start sub_08186DB0 +sub_08186DB0: @ 0x08186DB0 + push {r4, r5, r6, lr} + ldr r6, _08186E54 + ldr r0, [r6] + ldr r5, _08186E58 + ldrb r2, [r5] + ldr r1, [r0, #4] + lsls r3, r2, #1 + adds r0, r3, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x88 + ands r0, r1 + cmp r0, #0 + bne _08186DE2 + ldr r0, _08186E5C + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _08186E60 + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_08172CD4 +_08186DE2: + ldr r4, _08186E64 + ldr r0, _08186E68 + ldrb r2, [r5] + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r3, r0, #2 + adds r0, r4, #0 + adds r0, #0x1c + adds r0, r3, r0 + ldr r1, [r0] + ldr r0, _08186E6C + cmp r1, r0 + bne _08186E4C + ldr r0, [r6] + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + bne _08186E4C + adds r0, r3, r4 + bl DestroySprite + ldrb r4, [r5] + ldr r1, _08186E5C + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _08186E60 + adds r0, r0, r1 + movs r1, #0xb + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl SetBattlerShadowSpriteCallback + ldr r1, _08186E70 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _08186E74 + str r1, [r0] +_08186E4C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08186E54: .4byte 0x02024174 +_08186E58: .4byte 0x02023D08 +_08186E5C: .4byte 0x02023D12 +_08186E60: .4byte 0x020243E8 +_08186E64: .4byte 0x020205AC +_08186E68: .4byte 0x03005ADC +_08186E6C: .4byte 0x08007141 +_08186E70: .4byte 0x03005AC0 +_08186E74: .4byte 0x08186CC1 + thumb_func_end sub_08186DB0 + + thumb_func_start sub_08186E78 +sub_08186E78: @ 0x08186E78 + push {lr} + ldr r0, _08186EA0 + ldr r2, [r0] + ldr r0, _08186EA4 + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _08186E9A + bl RecordedOpponentBufferExecCompleted +_08186E9A: + pop {r0} + bx r0 + .align 2, 0 +_08186EA0: .4byte 0x02024174 +_08186EA4: .4byte 0x02023D08 + thumb_func_end sub_08186E78 + + thumb_func_start sub_08186EA8 +sub_08186EA8: @ 0x08186EA8 + push {lr} + ldr r0, _08186ED0 + ldr r2, [r0] + ldr r0, _08186ED4 + ldrb r1, [r0] + ldr r2, [r2, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _08186ECA + bl RecordedOpponentBufferExecCompleted +_08186ECA: + pop {r0} + bx r0 + .align 2, 0 +_08186ED0: .4byte 0x02024174 +_08186ED4: .4byte 0x02023D08 + thumb_func_end sub_08186EA8 + diff --git a/asm/region_map.s b/asm/region_map.s new file mode 100644 index 0000000..62252c4 --- /dev/null +++ b/asm/region_map.s @@ -0,0 +1,4355 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start InitRegionMap +InitRegionMap: @ 0x08122CE8 + push {lr} + lsls r2, r1, #0x18 + lsrs r2, r2, #0x18 + movs r1, #0 + bl sub_08122D04 +_08122CF4: + bl sub_08122DBC + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08122CF4 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end InitRegionMap + + thumb_func_start sub_08122D04 +sub_08122D04: @ 0x08122D04 + push {r4, r5, lr} + adds r4, r1, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r3, _08122D2C + str r0, [r3] + movs r1, #0x79 + adds r1, r1, r0 + mov ip, r1 + movs r1, #0 + mov r5, ip + strb r1, [r5] + adds r0, #0x78 + strb r2, [r0] + ldr r1, [r3] + cmp r2, #1 + bne _08122D34 + ldr r0, _08122D30 + b _08122D36 + .align 2, 0 +_08122D2C: .4byte 0x02039E10 +_08122D30: .4byte 0x08123261 +_08122D34: + ldr r0, _08122D6C +_08122D36: + str r0, [r1, #0x18] + cmp r4, #0 + beq _08122D70 + ldr r1, [r3] + ldr r0, [r4] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + adds r1, #0x80 + strb r0, [r1] + ldr r1, [r3] + ldr r0, [r4] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1e + adds r1, #0x81 + strb r0, [r1] + ldr r1, [r3] + ldr r0, [r4] + lsls r0, r0, #0x17 + lsrs r0, r0, #0x1b + adds r1, #0x82 + strb r0, [r1] + ldr r0, [r3] + adds r0, #0x83 + movs r1, #1 + strb r1, [r0] + b _08122D8C + .align 2, 0 +_08122D6C: .4byte 0x081230D1 +_08122D70: + ldr r0, [r3] + adds r0, #0x80 + movs r1, #2 + strb r1, [r0] + ldr r0, [r3] + adds r0, #0x81 + strb r1, [r0] + ldr r0, [r3] + adds r0, #0x82 + movs r1, #0x1c + strb r1, [r0] + ldr r0, [r3] + adds r0, #0x83 + strb r4, [r0] +_08122D8C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08122D04 + + thumb_func_start sub_08122D94 +sub_08122D94: @ 0x08122D94 + push {r4, lr} + ldr r4, _08122DB8 + str r0, [r4] + bl RegionMap_InitializeStateBasedOnPlayerLocation + ldr r2, [r4] + adds r0, r2, #0 + adds r0, #0x54 + ldrh r1, [r0] + adds r0, #0x20 + strh r1, [r0] + subs r0, #0x1e + ldrh r1, [r0] + adds r0, #0x20 + strh r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08122DB8: .4byte 0x02039E10 + thumb_func_end sub_08122D94 + + thumb_func_start sub_08122DBC +sub_08122DBC: @ 0x08122DBC + push {r4, r5, lr} + sub sp, #0xc + ldr r0, _08122DD8 + ldr r0, [r0] + adds r0, #0x79 + ldrb r0, [r0] + cmp r0, #7 + bls _08122DCE + b _08123018 +_08122DCE: + lsls r0, r0, #2 + ldr r1, _08122DDC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08122DD8: .4byte 0x02039E10 +_08122DDC: .4byte 0x08122DE0 +_08122DE0: @ jump table + .4byte _08122E00 @ case 0 + .4byte _08122E38 @ case 1 + .4byte _08122E84 @ case 2 + .4byte _08122EA0 @ case 3 + .4byte _08122EBC @ case 4 + .4byte _08122ED8 @ case 5 + .4byte _08122F1C @ case 6 + .4byte _08122F98 @ case 7 +_08122E00: + ldr r0, _08122E1C + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #0 + beq _08122E24 + adds r0, r1, #0 + adds r0, #0x80 + ldrb r0, [r0] + ldr r1, _08122E20 + movs r2, #0 + str r2, [sp] + b _08122E5E + .align 2, 0 +_08122E1C: .4byte 0x02039E10 +_08122E20: .4byte 0x0857B34C +_08122E24: + ldr r0, _08122E30 + ldr r1, _08122E34 + bl LZ77UnCompVram + b _08123020 + .align 2, 0 +_08122E30: .4byte 0x0857B34C +_08122E34: .4byte 0x06008000 +_08122E38: + ldr r4, _08122E68 + ldr r0, [r4] + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #0 + beq _08122E70 + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08122E50 + b _08123020 +_08122E50: + ldr r0, [r4] + adds r0, #0x80 + ldrb r0, [r0] + ldr r1, _08122E6C + movs r2, #1 + str r2, [sp] + movs r2, #0 +_08122E5E: + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + b _08123020 + .align 2, 0 +_08122E68: .4byte 0x02039E10 +_08122E6C: .4byte 0x0857C0B0 +_08122E70: + ldr r0, _08122E7C + ldr r1, _08122E80 + bl LZ77UnCompVram + b _08123020 + .align 2, 0 +_08122E7C: .4byte 0x0857C0B0 +_08122E80: .4byte 0x0600E000 +_08122E84: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08122E90 + b _08123020 +_08122E90: + ldr r0, _08122E9C + movs r1, #0x70 + movs r2, #0x60 + bl LoadPalette + b _08123020 + .align 2, 0 +_08122E9C: .4byte 0x0857B30C +_08122EA0: + ldr r0, _08122EB4 + ldr r1, _08122EB8 + ldr r1, [r1] + movs r2, #0xc2 + lsls r2, r2, #1 + adds r1, r1, r2 + bl LZ77UnCompWram + b _08123020 + .align 2, 0 +_08122EB4: .4byte 0x0857B1DC +_08122EB8: .4byte 0x02039E10 +_08122EBC: + ldr r0, _08122ED0 + ldr r1, _08122ED4 + ldr r1, [r1] + movs r5, #0xa1 + lsls r5, r5, #2 + adds r1, r1, r5 + bl LZ77UnCompWram + b _08123020 + .align 2, 0 +_08122ED0: .4byte 0x0857B220 +_08122ED4: .4byte 0x02039E10 +_08122ED8: + bl RegionMap_InitializeStateBasedOnPlayerLocation + ldr r4, _08122F18 + 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] + bl CorrectSpecialMapSecId_Internal + ldr r1, [r4] + strh r0, [r1] + ldrh r0, [r1] + bl get_flagnr_blue_points + ldr r1, [r4] + strb r0, [r1, #2] + ldr r1, [r4] + adds r0, r1, #4 + ldrh r1, [r1] + movs r2, #0xa + bl GetMapName + b _08123020 + .align 2, 0 +_08122F18: .4byte 0x02039E10 +_08122F1C: + ldr r0, _08122F44 + ldr r4, [r0] + adds r0, r4, #0 + adds r0, #0x78 + ldrb r1, [r0] + cmp r1, #0 + bne _08122F48 + movs r0, #0x80 + lsls r0, r0, #1 + str r0, [sp] + str r0, [sp, #4] + str r1, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl CalcZoomScrollParams + b _08123020 + .align 2, 0 +_08122F44: .4byte 0x02039E10 +_08122F48: + adds r1, r4, #0 + adds r1, #0x54 + ldrh r0, [r1] + lsls r0, r0, #3 + subs r0, #0x34 + adds r2, r4, #0 + adds r2, #0x5c + movs r3, #0 + strh r0, [r2] + movs r0, #0x56 + adds r0, r0, r4 + mov ip, r0 + ldrh r0, [r0] + lsls r0, 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, ip + 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, #4] + str r3, [sp, #8] + movs r2, #0x38 + movs r3, #0x48 + bl CalcZoomScrollParams + b _08123020 +_08122F98: + bl RegionMap_GetPositionOfCursorWithinMapSection + bl UpdateRegionMapVideoRegs + ldr r4, _0812301C + ldr r0, [r4] + movs r1, #0 + str r1, [r0, #0x1c] + str r1, [r0, #0x20] + adds r0, #0x7a + strb r1, [r0] + ldr r0, [r4] + adds r0, #0x7e + strb r1, [r0] + ldr r1, [r4] + adds r0, r1, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #0 + beq _0812300E + adds r0, r1, #0 + adds r0, #0x80 + ldrb r0, [r0] + movs r1, #3 + movs r2, #2 + bl SetBgAttribute + ldr r1, [r4] + adds r0, r1, #0 + adds r0, #0x80 + ldrb r0, [r0] + adds r1, #0x81 + ldrb r2, [r1] + movs r1, #1 + bl SetBgAttribute + ldr r1, [r4] + adds r0, r1, #0 + adds r0, #0x80 + ldrb r0, [r0] + adds r1, #0x82 + ldrb r2, [r1] + movs r1, #2 + bl SetBgAttribute + ldr r0, [r4] + adds r0, #0x80 + ldrb r0, [r0] + movs r1, #6 + movs r2, #1 + bl SetBgAttribute + ldr r0, [r4] + adds r0, #0x80 + ldrb r0, [r0] + movs r1, #4 + movs r2, #1 + bl SetBgAttribute +_0812300E: + ldr r1, [r4] + adds r1, #0x79 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_08123018: + movs r0, #0 + b _0812302E + .align 2, 0 +_0812301C: .4byte 0x02039E10 +_08123020: + ldr r0, _08123038 + ldr r1, [r0] + adds r1, #0x79 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #1 +_0812302E: + add sp, #0xc + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08123038: .4byte 0x02039E10 + thumb_func_end sub_08122DBC + + thumb_func_start sub_0812303C +sub_0812303C: @ 0x0812303C + push {lr} + adds r2, r0, #0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + movs r0, #0xe0 + lsls r0, r0, #2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl BlendPalettes + ldr r0, _08123060 + ldr r1, _08123064 + movs r2, #0x30 + bl CpuSet + pop {r0} + bx r0 + .align 2, 0 +_08123060: .4byte 0x02037894 +_08123064: .4byte 0x02037494 + thumb_func_end sub_0812303C + + thumb_func_start FreeRegionMapIconResources +FreeRegionMapIconResources: @ 0x08123068 + push {r4, lr} + ldr r4, _081230B4 + ldr r0, [r4] + ldr r0, [r0, #0x1c] + cmp r0, #0 + beq _0812308C + bl DestroySprite + ldr r0, [r4] + adds r0, #0x58 + ldrh r0, [r0] + bl FreeSpriteTilesByTag + ldr r0, [r4] + adds r0, #0x5a + ldrh r0, [r0] + bl FreeSpritePaletteByTag +_0812308C: + ldr r0, [r4] + ldr r0, [r0, #0x20] + cmp r0, #0 + beq _081230AC + bl DestroySprite + ldr r0, [r4] + adds r0, #0x70 + ldrh r0, [r0] + bl FreeSpriteTilesByTag + ldr r0, [r4] + adds r0, #0x72 + ldrh r0, [r0] + bl FreeSpritePaletteByTag +_081230AC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081230B4: .4byte 0x02039E10 + thumb_func_end FreeRegionMapIconResources + + thumb_func_start sub_081230B8 +sub_081230B8: @ 0x081230B8 + push {lr} + ldr r0, _081230CC + ldr r0, [r0] + ldr r0, [r0, #0x18] + bl _call_via_r0 + thumb_func_end sub_081230B8 + + thumb_func_start sub_081230C4 +sub_081230C4: @ 0x081230C4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_081230CC: .4byte 0x02039E10 + thumb_func_end sub_081230C4 + + thumb_func_start ProcessRegionMapInput_Full +ProcessRegionMapInput_Full: @ 0x081230D0 + push {r4, lr} + movs r4, #0 + ldr r2, _0812316C + ldr r0, [r2] + adds r0, #0x7b + strb r4, [r0] + ldr r0, [r2] + adds r0, #0x7c + strb r4, [r0] + ldr r3, _08123170 + ldrh r1, [r3, #0x2c] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08123102 + ldr r1, [r2] + adds r0, r1, #0 + adds r0, #0x56 + ldrh r0, [r0] + cmp r0, #2 + bls _08123102 + adds r1, #0x7c + movs r0, #0xff + strb r0, [r1] + movs r4, #1 +_08123102: + ldrh r1, [r3, #0x2c] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08123120 + ldr r1, [r2] + adds r0, r1, #0 + adds r0, #0x56 + ldrh r0, [r0] + cmp r0, #0xf + bhi _08123120 + adds r1, #0x7c + movs r0, #1 + strb r0, [r1] + movs r4, #1 +_08123120: + ldrh r1, [r3, #0x2c] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0812313E + ldr r1, [r2] + adds r0, r1, #0 + adds r0, #0x54 + ldrh r0, [r0] + cmp r0, #1 + bls _0812313E + adds r1, #0x7b + movs r0, #0xff + strb r0, [r1] + movs r4, #1 +_0812313E: + ldrh r1, [r3, #0x2c] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0812315C + ldr r1, [r2] + adds r0, r1, #0 + adds r0, #0x54 + ldrh r0, [r0] + cmp r0, #0x1b + bhi _0812315C + adds r1, #0x7b + movs r0, #1 + strb r0, [r1] + movs r4, #1 +_0812315C: + ldrh r3, [r3, #0x2e] + movs r0, #1 + ands r0, r3 + cmp r0, #0 + beq _08123174 + movs r4, #4 + b _0812317E + .align 2, 0 +_0812316C: .4byte 0x02039E10 +_08123170: .4byte 0x03002360 +_08123174: + movs r0, #2 + ands r0, r3 + cmp r0, #0 + beq _0812317E + movs r4, #5 +_0812317E: + cmp r4, #1 + bne _08123190 + ldr r0, [r2] + adds r0, #0x7a + movs r1, #4 + strb r1, [r0] + ldr r1, [r2] + ldr r0, _08123198 + str r0, [r1, #0x18] +_08123190: + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08123198: .4byte 0x0812319D + thumb_func_end ProcessRegionMapInput_Full + + thumb_func_start MoveRegionMapCursor_Full +MoveRegionMapCursor_Full: @ 0x0812319C + push {r4, r5, lr} + ldr r5, _081231B4 + ldr r1, [r5] + adds r0, r1, #0 + adds r0, #0x7a + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _081231B8 + movs r0, #2 + b _08123254 + .align 2, 0 +_081231B4: .4byte 0x02039E10 +_081231B8: + adds r0, r1, #0 + adds r0, #0x7b + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _081231CE + adds r1, #0x54 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_081231CE: + ldr r1, [r5] + adds r0, r1, #0 + adds r0, #0x7b + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bge _081231E6 + adds r1, #0x54 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] +_081231E6: + ldr r1, [r5] + adds r0, r1, #0 + adds r0, #0x7c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _081231FE + adds r1, #0x56 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_081231FE: + ldr r1, [r5] + adds r0, r1, #0 + adds r0, #0x7c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bge _08123216 + adds r1, #0x56 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] +_08123216: + ldr r1, [r5] + adds r0, r1, #0 + adds r0, #0x54 + ldrh r0, [r0] + adds r1, #0x56 + ldrh r1, [r1] + bl GetRegionMapSectionIdAt_Internal + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r4, #0 + bl get_flagnr_blue_points + ldr r1, [r5] + strb r0, [r1, #2] + ldr r1, [r5] + ldrh r0, [r1] + cmp r4, r0 + beq _08123248 + strh r4, [r1] + adds r0, r1, #4 + ldrh r1, [r1] + movs r2, #0xa + bl GetMapName +_08123248: + bl RegionMap_GetPositionOfCursorWithinMapSection + ldr r1, [r5] + ldr r0, _0812325C + str r0, [r1, #0x18] + movs r0, #3 +_08123254: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0812325C: .4byte 0x081230D1 + thumb_func_end MoveRegionMapCursor_Full + + thumb_func_start ProcessRegionMapInput_Zoomed +ProcessRegionMapInput_Zoomed: @ 0x08123260 + push {r4, r5, r6, lr} + movs r4, #0 + ldr r3, _08123330 + ldr r0, [r3] + mov ip, r0 + adds r0, #0x6a + strh r4, [r0] + mov r5, ip + adds r5, #0x68 + strh r4, [r5] + ldr r2, _08123334 + ldrh r1, [r2, #0x2c] + movs r0, #0x40 + ands r0, r1 + adds r6, r3, #0 + adds r3, r2, #0 + cmp r0, #0 + beq _0812329A + mov r0, ip + adds r0, #0x5e + movs r2, #0 + ldrsh r1, [r0, r2] + movs r0, #0x34 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0812329A + ldr r0, _08123338 + strh r0, [r5] + movs r4, #1 +_0812329A: + ldrh r1, [r3, #0x2c] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _081232BA + ldr r1, [r6] + adds r0, r1, #0 + adds r0, #0x5e + movs r5, #0 + ldrsh r0, [r0, r5] + cmp r0, #0x3b + bgt _081232BA + adds r1, #0x68 + movs r0, #1 + strh r0, [r1] + movs r4, #1 +_081232BA: + ldrh r1, [r3, #0x2c] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _081232E0 + ldr r2, [r6] + adds r0, r2, #0 + adds r0, #0x5c + movs r5, #0 + ldrsh r1, [r0, r5] + movs r0, #0x2c + rsbs r0, r0, #0 + cmp r1, r0 + ble _081232E0 + adds r1, r2, #0 + adds r1, #0x6a + ldr r0, _08123338 + strh r0, [r1] + movs r4, #1 +_081232E0: + ldrh r1, [r3, #0x2c] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08123300 + ldr r1, [r6] + adds r0, r1, #0 + adds r0, #0x5c + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r0, #0xab + bgt _08123300 + adds r1, #0x6a + movs r0, #1 + strh r0, [r1] + movs r4, #1 +_08123300: + ldrh r2, [r3, #0x2e] + movs r0, #1 + ands r0, r2 + cmp r0, #0 + beq _0812330C + movs r4, #4 +_0812330C: + movs r0, #2 + ands r0, r2 + cmp r0, #0 + beq _08123316 + movs r4, #5 +_08123316: + cmp r4, #1 + bne _08123326 + ldr r0, [r6] + ldr r1, _0812333C + str r1, [r0, #0x18] + adds r0, #0x6c + movs r1, #0 + strh r1, [r0] +_08123326: + adds r0, r4, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08123330: .4byte 0x02039E10 +_08123334: .4byte 0x03002360 +_08123338: .4byte 0x0000FFFF +_0812333C: .4byte 0x08123341 + thumb_func_end ProcessRegionMapInput_Zoomed + + thumb_func_start MoveRegionMapCursor_Zoomed +MoveRegionMapCursor_Zoomed: @ 0x08123340 + push {r4, r5, lr} + ldr r5, _08123414 + 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, 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, r0, r2 + strh r0, [r1] + movs r4, #0 + ldrsh r0, [r1, r4] + movs r2, #0 + ldrsh r1, [r3, r2] + bl RegionMap_SetBG2XAndBG2Y + ldr r2, [r5] + adds r1, r2, #0 + adds r1, #0x6c + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #8 + bne _0812341C + 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 _08123398 + adds r0, #7 +_08123398: + asrs r0, r0, #3 + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + 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 _081233B2 + adds r0, #7 +_081233B2: + asrs r0, r0, #3 + adds r0, #2 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + adds r4, r2, #0 + adds r4, #0x64 + adds r0, r2, #0 + adds r0, #0x66 + ldrh r2, [r4] + cmp r3, r2 + bne _081233CE + ldrh r2, [r0] + cmp r1, r2 + beq _081233FE +_081233CE: + strh r3, [r4] + strh r1, [r0] + adds r0, r3, #0 + bl GetRegionMapSectionIdAt_Internal + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r4, #0 + bl get_flagnr_blue_points + ldr r1, [r5] + strb r0, [r1, #2] + ldr r1, [r5] + ldrh r3, [r1] + cmp r4, r3 + beq _081233FA + strh r4, [r1] + adds r0, r1, #4 + ldrh r1, [r1] + movs r2, #0xa + bl GetMapName +_081233FA: + bl RegionMap_GetPositionOfCursorWithinMapSection +_081233FE: + ldr r0, _08123414 + ldr r2, [r0] + adds r1, r2, #0 + adds r1, #0x6c + movs r0, #0 + strh r0, [r1] + ldr r0, _08123418 + str r0, [r2, #0x18] + movs r0, #3 + b _0812341E + .align 2, 0 +_08123414: .4byte 0x02039E10 +_08123418: .4byte 0x08123261 +_0812341C: + movs r0, #2 +_0812341E: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end MoveRegionMapCursor_Zoomed + + thumb_func_start sub_08123424 +sub_08123424: @ 0x08123424 + push {r4, r5, r6, lr} + ldr r1, _081234A0 + ldr r2, [r1] + adds r0, r2, #0 + adds r0, #0x78 + ldrb r3, [r0] + adds r5, r1, #0 + cmp r3, #0 + bne _081234A8 + subs r0, #0x1a + strh r3, [r0] + subs r0, #2 + strh r3, [r0] + str r3, [r2, #0x40] + str r3, [r2, #0x3c] + adds r4, r2, #0 + adds r4, #0x54 + ldrh r0, [r4] + lsls r0, r0, #3 + subs r0, #0x34 + adds r1, r2, #0 + adds r1, #0x60 + strh r0, [r1] + movs r0, #0x56 + adds r0, r0, r2 + mov ip, r0 + ldrh r0, [r0] + lsls r0, r0, #3 + subs r0, #0x44 + adds r3, r2, #0 + adds r3, #0x62 + strh r0, [r3] + movs r6, #0 + ldrsh r0, [r1, r6] + lsls r0, r0, #8 + cmp r0, #0 + bge _08123470 + adds r0, #0xf +_08123470: + asrs r0, r0, #4 + str r0, [r2, #0x44] + movs r1, #0 + ldrsh r0, [r3, r1] + lsls r0, r0, #8 + cmp r0, #0 + bge _08123480 + adds r0, #0xf +_08123480: + asrs r0, r0, #4 + str r0, [r2, #0x48] + ldrh r1, [r4] + adds r0, r2, #0 + adds r0, #0x64 + strh r1, [r0] + mov r3, ip + ldrh r0, [r3] + adds r1, r2, #0 + adds r1, #0x66 + strh r0, [r1] + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r2, #0x4c] + ldr r0, _081234A4 + b _08123506 + .align 2, 0 +_081234A0: .4byte 0x02039E10 +_081234A4: .4byte 0xFFFFF800 +_081234A8: + adds r0, r2, #0 + adds r0, #0x5c + movs r6, #0 + ldrsh r0, [r0, r6] + lsls r0, r0, #8 + str r0, [r2, #0x3c] + adds r0, r2, #0 + adds r0, #0x5e + movs r1, #0 + ldrsh r0, [r0, r1] + lsls r0, r0, #8 + str r0, [r2, #0x40] + adds r0, r2, #0 + adds r0, #0x60 + movs r1, #0 + strh r1, [r0] + adds r0, #2 + strh r1, [r0] + ldr r0, [r2, #0x3c] + cmp r0, #0 + bge _081234D4 + adds r0, #0xf +_081234D4: + asrs r0, r0, #4 + rsbs r0, r0, #0 + str r0, [r2, #0x44] + ldr r0, [r2, #0x40] + cmp r0, #0 + bge _081234E2 + adds r0, #0xf +_081234E2: + asrs r0, r0, #4 + rsbs r0, r0, #0 + 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, r0, #8 + str r0, [r2, #0x4c] + movs r0, #0x80 + lsls r0, r0, #4 +_08123506: + str r0, [r2, #0x50] + ldr r0, [r5] + adds r0, #0x6e + movs r1, #0 + strh r1, [r0] + bl FreeRegionMapCursorSprite + bl HideRegionMapPlayerIcon + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08123424 + + thumb_func_start sub_08123520 +sub_08123520: @ 0x08123520 + push {r4, r5, r6, lr} + sub sp, #0xc + ldr r0, _08123538 + ldr r3, [r0] + adds r2, r3, #0 + adds r2, #0x6e + ldrh r1, [r2] + adds r5, r0, #0 + cmp r1, #0xf + bls _0812353C + movs r0, #0 + b _081236C4 + .align 2, 0 +_08123538: .4byte 0x02039E10 +_0812353C: + adds r0, r1, #1 + movs r1, #0 + strh r0, [r2] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x10 + bne _081235B0 + str r1, [r3, #0x44] + str r1, [r3, #0x48] + adds r0, r3, #0 + adds r0, #0x60 + ldrh r1, [r0] + subs r0, #4 + strh r1, [r0] + adds r0, #6 + ldrh r0, [r0] + adds r1, r3, #0 + adds r1, #0x5e + strh r0, [r1] + adds r1, #0x1a + ldrb r0, [r1] + movs r2, #0x80 + lsls r2, r2, #9 + cmp r0, #0 + bne _08123572 + movs r2, #0x80 + lsls r2, r2, #8 +_08123572: + str r2, [r3, #0x4c] + movs r2, #0 + ldrb r0, [r1] + cmp r0, #0 + bne _0812357E + movs r2, #1 +_0812357E: + strb r2, [r1] + ldr r1, [r5] + adds r0, r1, #0 + adds r0, #0x78 + ldrb r0, [r0] + ldr r2, _081235A8 + cmp r0, #0 + bne _08123590 + ldr r2, _081235AC +_08123590: + str r2, [r1, #0x18] + adds r0, r1, #0 + adds r0, #0x58 + ldrh r0, [r0] + adds r1, #0x5a + ldrh r1, [r1] + bl CreateRegionMapCursor + bl UnhideRegionMapPlayerIcon + movs r4, #0 + b _08123692 + .align 2, 0 +_081235A8: .4byte 0x08123261 +_081235AC: .4byte 0x081230D1 +_081235B0: + ldr r2, [r3, #0x3c] + ldr r0, [r3, #0x44] + adds r2, r2, r0 + str r2, [r3, #0x3c] + ldr r0, [r3, #0x40] + ldr r1, [r3, #0x48] + adds r0, r0, r1 + str r0, [r3, #0x40] + asrs r2, r2, #8 + adds r4, r3, #0 + adds r4, #0x5c + strh r2, [r4] + ldr r0, [r3, #0x40] + asrs r0, r0, #8 + adds r1, r3, #0 + adds r1, #0x5e + strh r0, [r1] + ldr r0, [r3, #0x4c] + ldr r1, [r3, #0x50] + adds r0, r0, r1 + str r0, [r3, #0x4c] + ldr r2, [r3, #0x44] + cmp r2, #0 + bge _081235F0 + 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 _08123604 +_081235F0: + cmp r2, #0 + ble _08123614 + 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 _08123614 +_08123604: + ldr r3, [r5] + adds r0, r3, #0 + adds r0, #0x60 + ldrh r2, [r0] + subs r0, #4 + movs r1, #0 + strh r2, [r0] + str r1, [r3, #0x44] +_08123614: + ldr r2, [r5] + ldr r4, [r2, #0x48] + cmp r4, #0 + bge _08123630 + 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 _08123648 +_08123630: + cmp r4, #0 + ble _0812365A + 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 _0812365A +_08123648: + 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] +_0812365A: + ldr r0, _08123678 + ldr r2, [r0] + adds r0, r2, #0 + adds r0, #0x78 + ldrb r3, [r0] + cmp r3, #0 + bne _08123680 + ldr r1, [r2, #0x4c] + ldr r0, _0812367C + cmp r1, r0 + bgt _08123690 + adds r0, #1 + str r0, [r2, #0x4c] + str r3, [r2, #0x50] + b _08123690 + .align 2, 0 +_08123678: .4byte 0x02039E10 +_0812367C: .4byte 0x00007FFF +_08123680: + ldr r0, [r2, #0x4c] + movs r1, #0x80 + lsls r1, r1, #9 + cmp r0, r1 + ble _08123690 + str r1, [r2, #0x4c] + movs r0, #0 + str r0, [r2, #0x50] +_08123690: + movs r4, #1 +_08123692: + ldr r0, _081236CC + 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, r2, #8 + lsrs r2, r2, #0x10 + str r2, [sp] + ldr r2, [r3, #0x4c] + lsls r2, r2, #8 + lsrs r2, r2, #0x10 + str r2, [sp, #4] + movs r2, #0 + str r2, [sp, #8] + movs r2, #0x38 + movs r3, #0x48 + bl CalcZoomScrollParams + adds r0, r4, #0 +_081236C4: + add sp, #0xc + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_081236CC: .4byte 0x02039E10 + thumb_func_end sub_08123520 + + thumb_func_start CalcZoomScrollParams +CalcZoomScrollParams: @ 0x081236D0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r4, [sp, #0x24] + ldr r7, [sp, #0x28] + ldr r5, [sp, #0x2c] + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + mov r8, r4 + lsls r7, r7, #0x10 + adds r4, r7, #0 + lsrs r4, r4, #0x10 + mov sb, r4 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r4, _08123790 + ldr r6, [r4] + ldr r7, _08123794 + mov ip, r7 + adds r4, r5, #0 + adds r4, #0x40 + lsls r4, r4, #1 + add r4, ip + movs r7, #0 + ldrsh r4, [r4, r7] + str r4, [sp] + mov r7, r8 + muls r7, r4, r7 + adds r4, r7, #0 + asrs r4, r4, #8 + mov sl, r4 + str r4, [r6, #0x2c] + lsls r5, r5, #1 + add r5, ip + movs r7, #0 + ldrsh r5, [r5, r7] + rsbs r4, r5, #0 + mov r7, r8 + muls r7, r4, r7 + adds r4, r7, #0 + asrs r4, r4, #8 + mov ip, r4 + str r4, [r6, #0x30] + mov r7, sb + muls r7, r5, r7 + adds r5, r7, #0 + asrs r5, r5, #8 + str r5, [r6, #0x34] + ldr r7, [sp] + mov r4, sb + muls r4, r7, r4 + asrs r4, r4, #8 + mov r8, r4 + str r4, [r6, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + lsls r4, r2, #8 + adds r0, r0, r4 + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + adds r4, r3, #0 + muls r4, r5, r4 + mov r5, sl + muls r5, r2, r5 + adds r4, r4, r5 + subs r0, r0, r4 + str r0, [r6, #0x24] + lsls r1, r1, #0x10 + asrs r1, r1, #8 + lsls r0, r3, #8 + adds r1, r1, r0 + mov r0, r8 + muls r0, r3, r0 + mov r3, ip + muls r3, r2, r3 + adds r2, r3, #0 + adds r0, r0, r2 + subs r1, r1, r0 + str r1, [r6, #0x28] + adds r6, #0x7d + movs r0, #1 + strb r0, [r6] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08123790: .4byte 0x02039E10 +_08123794: .4byte 0x082FA8CC + thumb_func_end CalcZoomScrollParams + + thumb_func_start RegionMap_SetBG2XAndBG2Y +RegionMap_SetBG2XAndBG2Y: @ 0x08123798 + ldr r2, _081237BC + ldr r2, [r2] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + movs r3, #0xe0 + lsls r3, r3, #5 + adds r0, r0, r3 + str r0, [r2, #0x24] + lsls r1, r1, #0x10 + asrs r1, r1, #8 + movs r0, #0x90 + lsls r0, r0, #6 + adds r1, r1, r0 + str r1, [r2, #0x28] + adds r2, #0x7d + movs r0, #1 + strb r0, [r2] + bx lr + .align 2, 0 +_081237BC: .4byte 0x02039E10 + thumb_func_end RegionMap_SetBG2XAndBG2Y + + thumb_func_start UpdateRegionMapVideoRegs +UpdateRegionMapVideoRegs: @ 0x081237C0 + push {r4, lr} + ldr r4, _0812382C + ldr r1, [r4] + adds r0, r1, #0 + adds r0, #0x7d + ldrb r0, [r0] + cmp r0, #0 + beq _08123826 + ldrh r1, [r1, #0x2c] + movs r0, #0x20 + bl SetGpuReg + ldr r0, [r4] + ldrh r1, [r0, #0x34] + movs r0, #0x22 + bl SetGpuReg + ldr r0, [r4] + ldrh r1, [r0, #0x30] + movs r0, #0x24 + bl SetGpuReg + ldr r0, [r4] + ldrh r1, [r0, #0x38] + movs r0, #0x26 + bl SetGpuReg + ldr r0, [r4] + ldrh r1, [r0, #0x24] + movs r0, #0x28 + bl SetGpuReg + ldr r0, [r4] + ldrh r1, [r0, #0x26] + movs r0, #0x2a + bl SetGpuReg + ldr r0, [r4] + ldrh r1, [r0, #0x28] + movs r0, #0x2c + bl SetGpuReg + ldr r0, [r4] + ldrh r1, [r0, #0x2a] + movs r0, #0x2e + bl SetGpuReg + ldr r0, [r4] + adds r0, #0x7d + movs r1, #0 + strb r1, [r0] +_08123826: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812382C: .4byte 0x02039E10 + thumb_func_end UpdateRegionMapVideoRegs + + thumb_func_start PokedexAreaScreen_UpdateRegionMapVariablesAndVideoRegs +PokedexAreaScreen_UpdateRegionMapVariablesAndVideoRegs: @ 0x08123830 + push {r4, r5, lr} + sub sp, #0xc + lsls r0, r0, #0x10 + asrs r4, r0, #0x10 + lsls r1, r1, #0x10 + asrs r5, r1, #0x10 + movs r0, #0x80 + lsls r0, r0, #1 + str r0, [sp] + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0x38 + movs r3, #0x48 + bl CalcZoomScrollParams + bl UpdateRegionMapVideoRegs + ldr r0, _08123874 + ldr r2, [r0] + ldr r1, [r2, #0x20] + cmp r1, #0 + beq _0812386C + rsbs r0, r4, #0 + strh r0, [r1, #0x24] + ldr r1, [r2, #0x20] + rsbs r0, r5, #0 + strh r0, [r1, #0x26] +_0812386C: + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08123874: .4byte 0x02039E10 + thumb_func_end PokedexAreaScreen_UpdateRegionMapVariablesAndVideoRegs + + thumb_func_start GetRegionMapSectionIdAt_Internal +GetRegionMapSectionIdAt_Internal: @ 0x08123878 + push {lr} + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + lsls r1, r1, #0x10 + ldr r0, _08123898 + adds r1, r1, r0 + lsrs r2, r1, #0x10 + cmp r2, #0xe + bhi _08123892 + cmp r3, #0 + beq _08123892 + cmp r3, #0x1c + bls _0812389C +_08123892: + movs r0, #0xd5 + b _081238B0 + .align 2, 0 +_08123898: .4byte 0xFFFE0000 +_0812389C: + subs r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldr r1, _081238B4 + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r0, r3, r0 + adds r0, r0, r1 + ldrb r0, [r0] +_081238B0: + pop {r1} + bx r1 + .align 2, 0 +_081238B4: .4byte 0x0857C53C + thumb_func_end GetRegionMapSectionIdAt_Internal + + thumb_func_start RegionMap_InitializeStateBasedOnPlayerLocation +RegionMap_InitializeStateBasedOnPlayerLocation: @ 0x081238B8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + ldr r0, _081238E4 + ldr r2, [r0] + movs r1, #4 + ldrsb r1, [r2, r1] + adds r3, r0, #0 + cmp r1, #0x19 + bne _081238E8 + ldrb r0, [r2, #5] + subs r0, #0x29 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bhi _081238E8 + bl RegionMap_InitializeStateBasedOnSSTidalLocation + b _08123BF8 + .align 2, 0 +_081238E4: .4byte 0x03005AEC +_081238E8: + ldr r1, [r3] + movs r0, #4 + ldrsb r0, [r1, r0] + ldrb r1, [r1, #5] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + bl GetMapTypeByGroupAndId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, #1 + cmp r0, #8 + bhi _08123934 + lsls r0, r0, #2 + ldr r1, _0812390C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0812390C: .4byte 0x08123910 +_08123910: @ jump table + .4byte _08123934 @ case 0 + .4byte _08123934 @ case 1 + .4byte _08123934 @ case 2 + .4byte _08123978 @ case 3 + .4byte _08123934 @ case 4 + .4byte _08123934 @ case 5 + .4byte _08123978 @ case 6 + .4byte _08123A34 @ case 7 + .4byte _081239F0 @ case 8 +_08123934: + ldr r4, _0812396C + ldr r0, [r4] + ldr r3, _08123970 + ldrb r1, [r3, #0x14] + movs r2, #0 + strh r1, [r0] + adds r0, #0x7f + strb r2, [r0] + ldr r0, [r3] + ldrh r2, [r0] + ldrh r0, [r0, #4] + mov sb, r0 + ldr r0, _08123974 + ldr r0, [r0] + ldrh r6, [r0] + ldrh r3, [r0, #2] + ldr r1, [r4] + ldrh r0, [r1] + cmp r0, #0x45 + beq _08123962 + cmp r0, #0xcc + beq _08123962 + b _08123ACA +_08123962: + adds r1, #0x7f + movs r0, #1 + strb r0, [r1] + b _08123ACA + .align 2, 0 +_0812396C: .4byte 0x02039E10 +_08123970: .4byte 0x02036FB8 +_08123974: .4byte 0x03005AEC +_08123978: + ldr r2, _081239C8 + ldrb r1, [r2, #0x1a] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _081239D4 + ldr r4, _081239CC + ldr r1, [r4] + adds r0, r1, #0 + adds r0, #0x24 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, #0x25 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl Overworld_GetMapHeaderByGroupAndId + adds r5, r0, #0 + ldr r0, _081239D0 + ldr r0, [r0] + ldrb r1, [r5, #0x14] + strh r1, [r0] + adds r0, #0x7f + movs r1, #1 + strb r1, [r0] + ldr r0, [r5] + ldrh r2, [r0] + ldrh r0, [r0, #4] + mov sb, r0 + ldr r0, [r4] + ldrh r6, [r0, #0x28] + ldrh r3, [r0, #0x2a] + b _08123ACA + .align 2, 0 +_081239C8: .4byte 0x02036FB8 +_081239CC: .4byte 0x03005AEC +_081239D0: .4byte 0x02039E10 +_081239D4: + ldr r0, _081239EC + ldr r0, [r0] + ldrb r1, [r2, #0x14] + strh r1, [r0] + adds r0, #0x7f + movs r1, #1 + strb r1, [r0] + movs r2, #1 + mov sb, r2 + movs r6, #1 + movs r3, #1 + b _08123ACA + .align 2, 0 +_081239EC: .4byte 0x02039E10 +_081239F0: + ldr r4, _08123A2C + ldr r1, [r4] + movs r0, #0x14 + ldrsb r0, [r1, r0] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r1, #0x15] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl Overworld_GetMapHeaderByGroupAndId + adds r5, r0, #0 + ldr r0, _08123A30 + ldr r0, [r0] + ldrb r1, [r5, #0x14] + strh r1, [r0] + adds r0, #0x7f + movs r1, #1 + strb r1, [r0] + ldr r0, [r5] + ldrh r2, [r0] + ldrh r0, [r0, #4] + mov sb, r0 + ldr r0, [r4] + ldrh r6, [r0, #0x18] + ldrh r3, [r0, #0x1a] + b _08123ACA + .align 2, 0 +_08123A2C: .4byte 0x03005AEC +_08123A30: .4byte 0x02039E10 +_08123A34: + ldr r4, _08123A64 + ldr r0, [r4] + ldr r1, _08123A68 + ldrb r1, [r1, #0x14] + strh r1, [r0] + cmp r1, #0x57 + beq _08123A70 + ldr r0, _08123A6C + ldr r0, [r0] + adds r7, r0, #0 + adds r7, #0x24 + movs r0, #0 + ldrsb r0, [r7, r0] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + ldrsb r1, [r7, r1] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl Overworld_GetMapHeaderByGroupAndId + adds r5, r0, #0 + b _08123A96 + .align 2, 0 +_08123A64: .4byte 0x02039E10 +_08123A68: .4byte 0x02036FB8 +_08123A6C: .4byte 0x03005AEC +_08123A70: + ldr r0, _08123AB0 + ldr r0, [r0] + adds r7, r0, #0 + adds r7, #0x14 + ldrb r0, [r0, #0x14] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + ldrsb r1, [r7, r1] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl Overworld_GetMapHeaderByGroupAndId + adds r5, r0, #0 + ldr r1, [r4] + ldrb r0, [r5, #0x14] + strh r0, [r1] +_08123A96: + ldr r4, _08123AB4 + ldr r0, [r4] + ldrb r0, [r0] + bl RegionMap_IsPlayerInCave + adds r1, r0, #0 + cmp r1, #0 + beq _08123AB8 + ldr r0, [r4] + adds r0, #0x7f + movs r1, #1 + b _08123ABC + .align 2, 0 +_08123AB0: .4byte 0x03005AEC +_08123AB4: .4byte 0x02039E10 +_08123AB8: + ldr r0, [r4] + adds r0, #0x7f +_08123ABC: + strb r1, [r0] + ldr r0, [r5] + ldrh r2, [r0] + ldrh r0, [r0, #4] + mov sb, r0 + ldrh r6, [r7, #4] + ldrh r3, [r7, #6] +_08123ACA: + str r6, [sp] + ldr r5, _08123B50 + ldr r4, _08123B54 + ldr r0, [r4] + mov sl, r0 + ldrh r7, [r0] + lsls r0, r7, #3 + adds r0, r0, r5 + str r0, [sp, #4] + ldrb r0, [r0, #2] + mov r8, r0 + adds r0, r2, #0 + mov r1, r8 + str r3, [sp, #8] + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r3, [sp, #8] + cmp r1, #0 + bne _08123AF6 + movs r1, #1 +_08123AF6: + adds r0, r6, #0 + str r3, [sp, #8] + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r3, [sp, #8] + cmp r6, r8 + blo _08123B10 + mov r0, r8 + subs r0, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 +_08123B10: + ldr r2, [sp, #4] + ldrb r4, [r2, #3] + mov r0, sb + adds r1, r4, #0 + str r3, [sp, #8] + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r3, [sp, #8] + cmp r1, #0 + bne _08123B2A + movs r1, #1 +_08123B2A: + adds r0, r3, #0 + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, r4 + blo _08123B3E + subs r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 +_08123B3E: + cmp r7, #0x29 + beq _08123B6A + cmp r7, #0x29 + bgt _08123B58 + cmp r7, #0x1d + beq _08123B62 + cmp r7, #0x24 + beq _08123BA0 + b _08123BD2 + .align 2, 0 +_08123B50: .4byte 0x0857CD6C +_08123B54: .4byte 0x02039E10 +_08123B58: + cmp r7, #0x33 + beq _08123B6A + cmp r7, #0xcc + beq _08123BC4 + b _08123BD2 +_08123B62: + cmp r3, #0 + beq _08123BD2 + movs r6, #0 + b _08123BD2 +_08123B6A: + movs r6, #0 + ldr r0, _08123B9C + ldr r1, [r0] + movs r2, #0 + ldrsh r0, [r1, r2] + cmp r0, #0x20 + ble _08123B7A + movs r6, #1 +_08123B7A: + cmp r0, #0x33 + ble _08123B84 + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 +_08123B84: + movs r3, #0 + movs r2, #2 + ldrsh r0, [r1, r2] + cmp r0, #0x25 + ble _08123B90 + movs r3, #1 +_08123B90: + cmp r0, #0x38 + ble _08123BD2 + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + b _08123BD2 + .align 2, 0 +_08123B9C: .4byte 0x03005AEC +_08123BA0: + movs r6, #0 + ldr r0, [sp] + cmp r0, #0xe + bls _08123BAA + movs r6, #1 +_08123BAA: + ldr r2, [sp] + cmp r2, #0x1c + bls _08123BB6 + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 +_08123BB6: + ldr r0, [sp] + cmp r0, #0x36 + bls _08123BD2 + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + b _08123BD2 +_08123BC4: + mov r0, sl + adds r0, #0x54 + mov r1, sl + adds r1, #0x56 + bl RegionMap_GetMarineCaveCoords + b _08123BF8 +_08123BD2: + ldr r0, _08123C08 + ldr r2, [r0] + ldrh r0, [r2] + lsls r0, r0, #3 + adds r0, r0, r5 + ldrb r0, [r0] + adds r0, r6, r0 + adds r0, #1 + adds r1, r2, #0 + adds r1, #0x54 + strh r0, [r1] + ldrh r0, [r2] + lsls r0, r0, #3 + adds r0, r0, r5 + ldrb r0, [r0, #1] + adds r0, r3, r0 + adds r0, #2 + adds r2, #0x56 + strh r0, [r2] +_08123BF8: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08123C08: .4byte 0x02039E10 + thumb_func_end RegionMap_InitializeStateBasedOnPlayerLocation + + thumb_func_start RegionMap_InitializeStateBasedOnSSTidalLocation +RegionMap_InitializeStateBasedOnSSTidalLocation: @ 0x08123C0C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + movs r7, #0 + movs r0, #0 + mov r8, r0 + mov r4, sp + adds r4, #1 + mov r5, sp + adds r5, #2 + add r6, sp, #4 + mov r0, sp + adds r1, r4, #0 + adds r2, r5, #0 + adds r3, r6, #0 + bl GetSSTidalLocation + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r5 + cmp r0, #4 + bhi _08123CA0 + lsls r0, r0, #2 + ldr r1, _08123C48 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08123C48: .4byte 0x08123C4C +_08123C4C: @ jump table + .4byte _08123CA0 @ case 0 + .4byte _08123C60 @ case 1 + .4byte _08123C70 @ case 2 + .4byte _08123C80 @ case 3 + .4byte _08123C90 @ case 4 +_08123C60: + ldr r2, _08123C6C + ldr r1, [r2] + movs r0, #8 + strh r0, [r1] + b _08123D1C + .align 2, 0 +_08123C6C: .4byte 0x02039E10 +_08123C70: + ldr r2, _08123C7C + ldr r1, [r2] + movs r0, #0xc + strh r0, [r1] + b _08123D1C + .align 2, 0 +_08123C7C: .4byte 0x02039E10 +_08123C80: + ldr r2, _08123C8C + ldr r1, [r2] + movs r0, #0x27 + strh r0, [r1] + b _08123D1C + .align 2, 0 +_08123C8C: .4byte 0x02039E10 +_08123C90: + ldr r2, _08123C9C + ldr r1, [r2] + movs r0, #0x2e + strh r0, [r1] + b _08123D1C + .align 2, 0 +_08123C9C: .4byte 0x02039E10 +_08123CA0: + mov r0, sp + ldrb r0, [r0] + ldrb r1, [r4] + bl Overworld_GetMapHeaderByGroupAndId + ldr r1, _08123D5C + mov sb, r1 + ldr r2, [r1] + ldrb r1, [r0, #0x14] + strh r1, [r2] + ldr r6, [r0] + ldr r1, _08123D60 + ldrh r0, [r2] + lsls r0, r0, #3 + adds r5, r0, r1 + ldrb r4, [r5, #2] + ldr r0, [r6] + adds r1, r4, #0 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + bne _08123CD2 + movs r1, #1 +_08123CD2: + mov r2, sl + movs r3, #0 + ldrsh r0, [r2, r3] + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + cmp r8, r4 + blo _08123CEE + subs r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 +_08123CEE: + ldrb r4, [r5, #3] + ldr r0, [r6, #4] + adds r1, r4, #0 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + bne _08123D02 + movs r1, #1 +_08123D02: + mov r2, sp + movs r3, #4 + ldrsh r0, [r2, r3] + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + mov r2, sb + cmp r7, r4 + blo _08123D1C + subs r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 +_08123D1C: + ldr r0, [r2] + adds r0, #0x7f + movs r1, #0 + strb r1, [r0] + ldr r2, [r2] + ldr r3, _08123D60 + ldrh r0, [r2] + lsls r0, r0, #3 + adds r0, r0, r3 + ldrb r0, [r0] + add r0, r8 + adds r0, #1 + adds r1, r2, #0 + adds r1, #0x54 + strh r0, [r1] + ldrh r0, [r2] + lsls r0, r0, #3 + adds r0, r0, r3 + ldrb r0, [r0, #1] + adds r0, r7, r0 + adds r0, #2 + adds r2, #0x56 + strh r0, [r2] + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08123D5C: .4byte 0x02039E10 +_08123D60: .4byte 0x0857CD6C + thumb_func_end RegionMap_InitializeStateBasedOnSSTidalLocation + + thumb_func_start get_flagnr_blue_points +get_flagnr_blue_points: @ 0x08123D64 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r0, #0 + cmp r0, #9 + beq _08123E24 + cmp r0, #9 + bgt _08123DA6 + cmp r0, #4 + beq _08123DFC + cmp r0, #4 + bgt _08123D94 + cmp r0, #1 + beq _08123DE4 + cmp r0, #1 + bgt _08123D8A + cmp r0, #0 + beq _08123DDC + b _08123EA0 +_08123D8A: + cmp r0, #2 + beq _08123DEA + cmp r0, #3 + beq _08123DF4 + b _08123EA0 +_08123D94: + cmp r0, #6 + beq _08123E0C + cmp r0, #6 + blt _08123E04 + cmp r0, #7 + beq _08123E14 + cmp r0, #8 + beq _08123E1C + b _08123EA0 +_08123DA6: + cmp r0, #0xe + beq _08123E4C + cmp r0, #0xe + bgt _08123DC0 + cmp r0, #0xb + beq _08123E34 + cmp r0, #0xb + blt _08123E2C + cmp r0, #0xc + beq _08123E3C + cmp r0, #0xd + beq _08123E44 + b _08123EA0 +_08123DC0: + cmp r0, #0x3a + beq _08123E6C + cmp r0, #0x3a + bgt _08123DCE + cmp r0, #0xf + beq _08123E54 + b _08123EA0 +_08123DCE: + cmp r1, #0x49 + beq _08123E88 + cmp r1, #0xd5 + beq _08123DD8 + b _08123EA0 +_08123DD8: + movs r0, #0 + b _08123EA2 +_08123DDC: + ldr r0, _08123DE0 + b _08123E56 + .align 2, 0 +_08123DE0: .4byte 0x0000086F +_08123DE4: + movs r0, #0x87 + lsls r0, r0, #4 + b _08123E56 +_08123DEA: + ldr r0, _08123DF0 + b _08123E56 + .align 2, 0 +_08123DF0: .4byte 0x00000871 +_08123DF4: + ldr r0, _08123DF8 + b _08123E56 + .align 2, 0 +_08123DF8: .4byte 0x00000872 +_08123DFC: + ldr r0, _08123E00 + b _08123E56 + .align 2, 0 +_08123E00: .4byte 0x00000873 +_08123E04: + ldr r0, _08123E08 + b _08123E56 + .align 2, 0 +_08123E08: .4byte 0x00000874 +_08123E0C: + ldr r0, _08123E10 + b _08123E56 + .align 2, 0 +_08123E10: .4byte 0x00000875 +_08123E14: + ldr r0, _08123E18 + b _08123E56 + .align 2, 0 +_08123E18: .4byte 0x00000876 +_08123E1C: + ldr r0, _08123E20 + b _08123E56 + .align 2, 0 +_08123E20: .4byte 0x00000877 +_08123E24: + ldr r0, _08123E28 + b _08123E56 + .align 2, 0 +_08123E28: .4byte 0x00000878 +_08123E2C: + ldr r0, _08123E30 + b _08123E56 + .align 2, 0 +_08123E30: .4byte 0x00000879 +_08123E34: + ldr r0, _08123E38 + b _08123E56 + .align 2, 0 +_08123E38: .4byte 0x0000087A +_08123E3C: + ldr r0, _08123E40 + b _08123E56 + .align 2, 0 +_08123E40: .4byte 0x0000087B +_08123E44: + ldr r0, _08123E48 + b _08123E56 + .align 2, 0 +_08123E48: .4byte 0x0000087C +_08123E4C: + ldr r0, _08123E50 + b _08123E56 + .align 2, 0 +_08123E50: .4byte 0x0000087D +_08123E54: + ldr r0, _08123E68 +_08123E56: + bl FlagGet + lsls r0, r0, #0x18 + movs r1, #3 + cmp r0, #0 + beq _08123E64 + movs r1, #2 +_08123E64: + adds r0, r1, #0 + b _08123EA2 + .align 2, 0 +_08123E68: .4byte 0x0000087E +_08123E6C: + ldr r0, _08123E84 + bl FlagGet + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + rsbs r0, r1, #0 + orrs r0, r1 + asrs r0, r0, #0x1f + movs r1, #4 + ands r0, r1 + b _08123EA2 + .align 2, 0 +_08123E84: .4byte 0x000008A8 +_08123E88: + ldr r0, _08123E9C + bl FlagGet + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + b _08123EA2 + .align 2, 0 +_08123E9C: .4byte 0x000008A9 +_08123EA0: + movs r0, #1 +_08123EA2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end get_flagnr_blue_points + + thumb_func_start GetRegionMapSectionIdAt +GetRegionMapSectionIdAt: @ 0x08123EA8 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl GetRegionMapSectionIdAt_Internal + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetRegionMapSectionIdAt + + thumb_func_start CorrectSpecialMapSecId_Internal +CorrectSpecialMapSecId_Internal: @ 0x08123EC0 + push {lr} + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + movs r2, #0 + ldr r1, _08123EDC +_08123ECA: + ldrh r0, [r1] + cmp r0, r3 + bne _08123EE0 + bl RegionMap_GetTerraCaveMapSecId + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _08123F0C + .align 2, 0 +_08123EDC: .4byte 0x0857D474 +_08123EE0: + adds r1, #2 + adds r2, #1 + cmp r2, #2 + bls _08123ECA + ldr r1, _08123EFC + ldrh r0, [r1] + cmp r0, #0xd5 + beq _08123F0A + adds r2, r1, #0 +_08123EF2: + ldrh r0, [r2] + cmp r0, r3 + bne _08123F00 + ldrh r0, [r1, #2] + b _08123F0C + .align 2, 0 +_08123EFC: .4byte 0x0857D414 +_08123F00: + adds r1, #4 + adds r2, #4 + ldrh r0, [r1] + cmp r0, #0xd5 + bne _08123EF2 +_08123F0A: + adds r0, r3, #0 +_08123F0C: + pop {r1} + bx r1 + thumb_func_end CorrectSpecialMapSecId_Internal + + thumb_func_start RegionMap_GetTerraCaveMapSecId +RegionMap_GetTerraCaveMapSecId: @ 0x08123F10 + push {lr} + ldr r0, _08123F34 + bl VarGet + subs r0, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0xf + bls _08123F24 + movs r1, #0 +_08123F24: + ldr r0, _08123F38 + lsls r1, r1, #0x10 + asrs r1, r1, #0xf + adds r1, r1, r0 + ldrh r0, [r1] + pop {r1} + bx r1 + .align 2, 0 +_08123F34: .4byte 0x00004037 +_08123F38: .4byte 0x0857D47A + thumb_func_end RegionMap_GetTerraCaveMapSecId + + thumb_func_start RegionMap_GetMarineCaveCoords +RegionMap_GetMarineCaveCoords: @ 0x08123F3C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r0, _08123F74 + bl VarGet + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r2, _08123F78 + adds r0, r0, r2 + lsrs r0, r0, #0x10 + cmp r0, #7 + bls _08123F58 + movs r1, #9 +_08123F58: + subs r1, #9 + lsls r1, r1, #0x10 + ldr r0, _08123F7C + lsrs r1, r1, #0xe + adds r1, r1, r0 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r4] + ldrh r0, [r1, #2] + adds r0, #2 + strh r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08123F74: .4byte 0x00004037 +_08123F78: .4byte 0xFFF70000 +_08123F7C: .4byte 0x0857D49C + thumb_func_end RegionMap_GetMarineCaveCoords + + thumb_func_start RegionMap_IsPlayerInCave +RegionMap_IsPlayerInCave: @ 0x08123F80 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + movs r1, #0 + ldr r3, _08123F98 +_08123F8A: + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _08123F9C + movs r0, #1 + b _08123FA4 + .align 2, 0 +_08123F98: .4byte 0x0857D4BC +_08123F9C: + adds r1, #1 + cmp r1, #0 + beq _08123F8A + movs r0, #0 +_08123FA4: + pop {r1} + bx r1 + thumb_func_end RegionMap_IsPlayerInCave + + thumb_func_start CorrectSpecialMapSecId +CorrectSpecialMapSecId: @ 0x08123FA8 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl CorrectSpecialMapSecId_Internal + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CorrectSpecialMapSecId + + thumb_func_start RegionMap_GetPositionOfCursorWithinMapSection +RegionMap_GetPositionOfCursorWithinMapSection: @ 0x08123FBC + push {r4, r5, r6, lr} + ldr r0, _08123FD0 + ldr r1, [r0] + ldrh r0, [r1] + cmp r0, #0xd5 + bne _08123FD4 + movs r0, #0 + strb r0, [r1, #3] + b _0812403A + .align 2, 0 +_08123FD0: .4byte 0x02039E10 +_08123FD4: + adds r0, r1, #0 + adds r0, #0x78 + ldrb r0, [r0] + cmp r0, #0 + bne _08123FE4 + adds r0, r1, #0 + adds r0, #0x54 + b _08123FE8 +_08123FE4: + adds r0, r1, #0 + adds r0, #0x64 +_08123FE8: + ldrh r4, [r0] + adds r0, #2 + ldrh r5, [r0] + movs r6, #0 + b _08124014 +_08123FF2: + subs r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl GetRegionMapSectionIdAt_Internal + ldr r1, _08124030 + ldr r1, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrh r1, [r1] + cmp r0, r1 + bne _08124014 + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 +_08124014: + cmp r4, #1 + bhi _08123FF2 + adds r0, r5, #0 + bl RegionMap_IsMapSecIdInNextRow + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08124034 + subs r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + movs r4, #0x1d + b _08124014 + .align 2, 0 +_08124030: .4byte 0x02039E10 +_08124034: + ldr r0, _08124040 + ldr r0, [r0] + strb r6, [r0, #3] +_0812403A: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08124040: .4byte 0x02039E10 + thumb_func_end RegionMap_GetPositionOfCursorWithinMapSection + + thumb_func_start RegionMap_IsMapSecIdInNextRow +RegionMap_IsMapSecIdInNextRow: @ 0x08124044 + push {r4, r5, lr} + lsls r0, r0, #0x10 + ldr r1, _08124058 + adds r0, r0, r1 + lsrs r5, r0, #0x10 + ldr r0, _0812405C + cmp r5, r0 + bne _08124064 + b _08124086 + .align 2, 0 +_08124058: .4byte 0xFFFF0000 +_0812405C: .4byte 0x0000FFFF +_08124060: + movs r0, #1 + b _08124088 +_08124064: + movs r4, #1 +_08124066: + adds r0, r4, #0 + adds r1, r5, #0 + bl GetRegionMapSectionIdAt_Internal + ldr r1, _08124090 + ldr r1, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrh r1, [r1] + cmp r0, r1 + beq _08124060 + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x1c + bls _08124066 +_08124086: + movs r0, #0 +_08124088: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08124090: .4byte 0x02039E10 + thumb_func_end RegionMap_IsMapSecIdInNextRow + + thumb_func_start SpriteCallback_CursorFull +SpriteCallback_CursorFull: @ 0x08124094 + push {r4, lr} + adds r2, r0, #0 + ldr r0, _081240D8 + ldr r1, [r0] + adds r3, r1, #0 + adds r3, #0x7a + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #0 + beq _081240D2 + adds r0, r1, #0 + adds r0, #0x7b + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #1 + ldrh r4, [r2, #0x20] + adds r0, r0, r4 + strh r0, [r2, #0x20] + adds r0, r1, #0 + adds r0, #0x7c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #1 + ldrh r1, [r2, #0x22] + adds r0, r0, r1 + strh r0, [r2, #0x22] + ldrb r0, [r3] + subs r0, #1 + strb r0, [r3] +_081240D2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081240D8: .4byte 0x02039E10 + thumb_func_end SpriteCallback_CursorFull + + thumb_func_start SpriteCallback_CursorZoomed +SpriteCallback_CursorZoomed: @ 0x081240DC + bx lr + .align 2, 0 + thumb_func_end SpriteCallback_CursorZoomed + + thumb_func_start CreateRegionMapCursor +CreateRegionMapCursor: @ 0x081240E0 + push {r4, r5, r6, r7, lr} + sub sp, #0x28 + lsls r0, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + ldr r1, _08124150 + ldr r2, [r1, #4] + ldr r1, [r1] + str r1, [sp, #0x20] + str r2, [sp, #0x24] + mov r2, sp + ldr r1, _08124154 + ldm r1!, {r3, r4, r5} + stm r2!, {r3, r4, r5} + ldm r1!, {r3, r4, r5} + stm r2!, {r3, r4, r5} + lsrs r3, r0, #0x10 + add r2, sp, #0x18 + ldrh r1, [r2, #4] + orrs r1, r0 + str r1, [r2, #4] + mov r0, sp + strh r3, [r0] + ldr r0, _08124158 + ldr r4, [r0] + adds r0, r4, #0 + adds r0, #0x58 + strh r3, [r0] + ldr r5, _0812415C + add r1, sp, #0x20 + ldr r0, [r1, #4] + ands r0, r5 + orrs r0, r6 + str r0, [r1, #4] + mov r0, sp + strh r6, [r0, #2] + 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 _08124164 + movs r1, #0xc2 + lsls r1, r1, #1 + adds r0, r3, r1 + str r0, [sp, #0x18] + ldr r0, [r2, #4] + ands r0, r5 + subs r1, #0x84 + orrs r0, r1 + str r0, [r2, #4] + ldr r0, _08124160 + b _0812417A + .align 2, 0 +_08124150: .4byte 0x0857D4F0 +_08124154: .4byte 0x0857D4F8 +_08124158: .4byte 0x02039E10 +_0812415C: .4byte 0xFFFF0000 +_08124160: .4byte 0x08124095 +_08124164: + movs r3, #0xa1 + lsls r3, r3, #2 + adds r0, r4, r3 + str r0, [sp, #0x18] + ldr r0, [r2, #4] + ands r0, r5 + movs r1, #0xc0 + lsls r1, r1, #3 + orrs r0, r1 + str r0, [r2, #4] + ldr r0, _081241DC +_0812417A: + 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, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x40 + beq _08124234 + ldr r4, _081241E0 + ldr r2, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _081241E4 + adds r3, r0, r1 + str r3, [r2, #0x1c] + adds r2, #0x78 + ldrb r0, [r2] + cmp r0, #1 + bne _081241E8 + ldrb r1, [r3, #3] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r3, #3] + ldr r2, [r4] + ldr r1, [r2, #0x1c] + ldrh r0, [r1, #0x20] + subs r0, #8 + strh r0, [r1, #0x20] + ldr r1, [r2, #0x1c] + ldrh r0, [r1, #0x22] + subs r0, #8 + strh r0, [r1, #0x22] + ldr r0, [r2, #0x1c] + movs r1, #1 + bl StartSpriteAnim + b _08124210 + .align 2, 0 +_081241DC: .4byte 0x081240DD +_081241E0: .4byte 0x02039E10 +_081241E4: .4byte 0x020205AC +_081241E8: + ldrb r1, [r3, #3] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r3, #3] + ldr r1, [r4] + ldr r2, [r1, #0x1c] + adds r0, r1, #0 + adds r0, #0x54 + ldrh r0, [r0] + lsls r0, r0, #3 + adds r0, #4 + strh r0, [r2, #0x20] + ldr r2, [r1, #0x1c] + adds r1, #0x56 + ldrh r0, [r1] + lsls r0, r0, #3 + adds r0, #4 + strh r0, [r2, #0x22] +_08124210: + ldr r4, _0812423C + ldr r0, [r4] + ldr r1, [r0, #0x1c] + movs r0, #2 + strh r0, [r1, #0x30] + adds r0, r6, #0 + bl IndexOfSpritePaletteTag + ldr r1, [r4] + ldr r2, [r1, #0x1c] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x14 + ldr r4, _08124240 + adds r0, r0, r4 + strh r0, [r2, #0x32] + ldr r1, [r1, #0x1c] + movs r0, #1 + strh r0, [r1, #0x34] +_08124234: + add sp, #0x28 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0812423C: .4byte 0x02039E10 +_08124240: .4byte 0x00000101 + thumb_func_end CreateRegionMapCursor + + thumb_func_start FreeRegionMapCursorSprite +FreeRegionMapCursorSprite: @ 0x08124244 + push {r4, lr} + ldr r4, _08124270 + ldr r0, [r4] + ldr r0, [r0, #0x1c] + cmp r0, #0 + beq _08124268 + bl DestroySprite + ldr r0, [r4] + adds r0, #0x58 + ldrh r0, [r0] + bl FreeSpriteTilesByTag + ldr r0, [r4] + adds r0, #0x5a + ldrh r0, [r0] + bl FreeSpritePaletteByTag +_08124268: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08124270: .4byte 0x02039E10 + thumb_func_end FreeRegionMapCursorSprite + + thumb_func_start sub_08124274 +sub_08124274: @ 0x08124274 + ldr r0, _08124280 + ldr r0, [r0] + ldr r1, [r0, #0x1c] + movs r0, #1 + strh r0, [r1, #0x34] + bx lr + .align 2, 0 +_08124280: .4byte 0x02039E10 + thumb_func_end sub_08124274 + + thumb_func_start sub_08124284 +sub_08124284: @ 0x08124284 + ldr r0, _08124290 + ldr r0, [r0] + ldr r1, [r0, #0x1c] + movs r0, #0 + strh r0, [r1, #0x34] + bx lr + .align 2, 0 +_08124290: .4byte 0x02039E10 + thumb_func_end sub_08124284 + + thumb_func_start CreateRegionMapPlayerIcon +CreateRegionMapPlayerIcon: @ 0x08124294 + push {r4, r5, r6, lr} + sub sp, #0x28 + lsls r0, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r2, _081242EC + str r2, [sp, #0x18] + movs r2, #0x80 + add r6, sp, #0x18 + lsrs r3, r0, #0x10 + orrs r0, r2 + str r0, [r6, #4] + ldr r0, _081242F0 + str r0, [sp, #0x20] + ldr r2, _081242F4 + add r4, sp, #0x20 + ldr r0, [r4, #4] + ands r0, r2 + orrs r0, r1 + str r0, [r4, #4] + mov r0, sp + movs r5, #0 + strh r3, [r0] + strh r1, [r0, #2] + ldr r0, _081242F8 + str r0, [sp, #4] + ldr r0, _081242FC + str r0, [sp, #8] + str r5, [sp, #0xc] + ldr r0, _08124300 + str r0, [sp, #0x10] + ldr r0, _08124304 + str r0, [sp, #0x14] + ldr r0, _08124308 + ldrb r0, [r0, #0x14] + bl sub_08124674 + cmp r0, #0 + beq _08124310 + ldr r0, _0812430C + ldr r0, [r0] + str r5, [r0, #0x20] + b _081243B0 + .align 2, 0 +_081242EC: .4byte 0x0857C41C +_081242F0: .4byte 0x0857C3FC +_081242F4: .4byte 0xFFFF0000 +_081242F8: .4byte 0x0857D510 +_081242FC: .4byte 0x0857D520 +_08124300: .4byte 0x082BF310 +_08124304: .4byte 0x08007141 +_08124308: .4byte 0x02036FB8 +_0812430C: .4byte 0x02039E10 +_08124310: + ldr r0, _08124378 + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #1 + bne _08124322 + ldr r0, _0812437C + str r0, [sp, #0x18] + ldr r0, _08124380 + str r0, [sp, #0x20] +_08124322: + adds r0, r6, #0 + bl LoadSpriteSheet + adds r0, r4, #0 + bl LoadSpritePalette + mov r0, sp + movs r1, #0 + movs r2, #0 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08124384 + ldr r2, [r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08124388 + adds r1, r1, r0 + str r1, [r2, #0x20] + adds r0, r2, #0 + adds r0, #0x78 + ldrb r0, [r0] + cmp r0, #0 + bne _08124390 + adds r0, r2, #0 + adds r0, #0x74 + ldrh r0, [r0] + lsls r0, r0, #3 + adds r0, #4 + strh r0, [r1, #0x20] + ldr r1, [r2, #0x20] + adds r0, r2, #0 + adds r0, #0x76 + ldrh r0, [r0] + lsls r0, r0, #3 + adds r0, #4 + strh r0, [r1, #0x22] + ldr r1, [r2, #0x20] + ldr r0, _0812438C + b _081243AE + .align 2, 0 +_08124378: .4byte 0x03005AF0 +_0812437C: .4byte 0x0857C4BC +_08124380: .4byte 0x0857C49C +_08124384: .4byte 0x02039E10 +_08124388: .4byte 0x020205AC +_0812438C: .4byte 0x081244F9 +_08124390: + adds r0, r2, #0 + adds r0, #0x74 + ldrh r0, [r0] + lsls r0, 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, r0, #4 + subs r0, #0x42 + strh r0, [r1, #0x22] + ldr r1, [r2, #0x20] + ldr r0, _081243B8 +_081243AE: + str r0, [r1, #0x1c] +_081243B0: + add sp, #0x28 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081243B8: .4byte 0x08124469 + thumb_func_end CreateRegionMapPlayerIcon + + thumb_func_start HideRegionMapPlayerIcon +HideRegionMapPlayerIcon: @ 0x081243BC + push {lr} + ldr r3, _081243E0 + ldr r0, [r3] + ldr r2, [r0, #0x20] + cmp r2, #0 + beq _081243DA + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r3] + ldr r1, [r0, #0x20] + ldr r0, _081243E4 + str r0, [r1, #0x1c] +_081243DA: + pop {r0} + bx r0 + .align 2, 0 +_081243E0: .4byte 0x02039E10 +_081243E4: .4byte 0x08007141 + thumb_func_end HideRegionMapPlayerIcon + + thumb_func_start UnhideRegionMapPlayerIcon +UnhideRegionMapPlayerIcon: @ 0x081243E8 + push {lr} + ldr r0, _08124420 + ldr r3, [r0] + ldr r1, [r3, #0x20] + cmp r1, #0 + beq _0812445E + adds r0, r3, #0 + adds r0, #0x78 + ldrb r0, [r0] + cmp r0, #1 + bne _08124428 + adds r0, r3, #0 + adds r0, #0x74 + ldrh r0, [r0] + lsls r0, 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, r0, #4 + subs r0, #0x42 + strh r0, [r1, #0x22] + ldr r1, [r3, #0x20] + ldr r0, _08124424 + b _08124450 + .align 2, 0 +_08124420: .4byte 0x02039E10 +_08124424: .4byte 0x08124469 +_08124428: + adds r0, r3, #0 + adds r0, #0x74 + ldrh r0, [r0] + lsls r0, r0, #3 + adds r0, #4 + movs r2, #0 + strh r0, [r1, #0x20] + ldr r1, [r3, #0x20] + adds r0, r3, #0 + adds r0, #0x76 + ldrh r0, [r0] + lsls r0, r0, #3 + adds r0, #4 + 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, _08124464 +_08124450: + str r0, [r1, #0x1c] + adds r1, #0x3e + ldrb r2, [r1] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] +_0812445E: + pop {r0} + bx r0 + .align 2, 0 +_08124464: .4byte 0x081244F9 + thumb_func_end UnhideRegionMapPlayerIcon + + thumb_func_start RegionMapPlayerIconSpriteCallback_Zoomed +RegionMapPlayerIconSpriteCallback_Zoomed: @ 0x08124468 + push {r4, lr} + adds r3, r0, #0 + ldr r0, _081244CC + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0x5c + movs r4, #0 + ldrsh r2, [r0, r4] + lsls r2, r2, #1 + rsbs r2, r2, #0 + strh r2, [r3, #0x24] + adds r1, #0x5e + movs r4, #0 + ldrsh r0, [r1, r4] + lsls r0, r0, #1 + rsbs r0, r0, #0 + strh r0, [r3, #0x26] + ldrh r1, [r3, #0x22] + adds r1, r1, r0 + adds r0, r3, #0 + adds r0, #0x29 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, r0, r1 + strh r0, [r3, #0x2e] + ldrh r1, [r3, #0x20] + adds r1, r1, r2 + adds r2, r3, #0 + adds r2, #0x28 + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r2, r2, r1 + strh r2, [r3, #0x30] + adds r0, #8 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xb0 + bhi _081244C8 + lsls r0, r2, #0x10 + asrs r2, r0, #0x10 + movs r0, #8 + rsbs r0, r0, #0 + cmp r2, r0 + blt _081244C8 + cmp r2, #0xf8 + ble _081244D0 +_081244C8: + movs r0, #0 + b _081244D2 + .align 2, 0 +_081244CC: .4byte 0x02039E10 +_081244D0: + movs r0, #1 +_081244D2: + strh r0, [r3, #0x32] + movs r1, #0x32 + ldrsh r0, [r3, r1] + cmp r0, #1 + bne _081244E4 + adds r0, r3, #0 + bl RegionMapPlayerIconSpriteCallback + b _081244F0 +_081244E4: + adds r0, r3, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_081244F0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RegionMapPlayerIconSpriteCallback_Zoomed + + thumb_func_start RegionMapPlayerIconSpriteCallback_Full +RegionMapPlayerIconSpriteCallback_Full: @ 0x081244F8 + push {lr} + bl RegionMapPlayerIconSpriteCallback + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RegionMapPlayerIconSpriteCallback_Full + + thumb_func_start RegionMapPlayerIconSpriteCallback +RegionMapPlayerIconSpriteCallback: @ 0x08124504 + push {lr} + adds r2, r0, #0 + ldr r0, _08124544 + ldr r0, [r0] + adds r0, #0x7e + ldrb r0, [r0] + cmp r0, #0 + beq _08124548 + ldrh r0, [r2, #0x3c] + adds r0, #1 + strh r0, [r2, #0x3c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x10 + ble _08124554 + movs r0, #0 + strh r0, [r2, #0x3c] + adds r3, r2, #0 + adds r3, #0x3e + ldrb r2, [r3] + lsrs r1, r2, #2 + movs r0, #1 + eors r1, r0 + ands r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _08124554 + .align 2, 0 +_08124544: .4byte 0x02039E10 +_08124548: + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_08124554: + pop {r0} + bx r0 + thumb_func_end RegionMapPlayerIconSpriteCallback + + thumb_func_start sub_08124558 +sub_08124558: @ 0x08124558 + push {lr} + ldr r0, _08124574 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0x7f + ldrb r0, [r0] + cmp r0, #0 + beq _0812456E + adds r1, #0x7e + movs r0, #1 + strb r0, [r1] +_0812456E: + pop {r0} + bx r0 + .align 2, 0 +_08124574: .4byte 0x02039E10 + thumb_func_end sub_08124558 + + thumb_func_start GetMapName +GetMapName: @ 0x08124578 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r4, r2, #0x10 + cmp r1, #0x56 + bne _08124590 + bl RegistryMenu_OnCursorMove + adds r1, r0, #0 + b _081245BE +_08124590: + cmp r1, #0xd4 + bhi _081245AC + ldr r0, _081245A8 + lsls r1, r1, #3 + adds r0, #4 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r5, #0 + bl StringCopy + adds r1, r0, #0 + b _081245BE + .align 2, 0 +_081245A8: .4byte 0x0857CD6C +_081245AC: + cmp r4, #0 + bne _081245B2 + movs r4, #0x12 +_081245B2: + adds r0, r5, #0 + movs r1, #0 + adds r2, r4, #0 + bl StringFill + b _081245E2 +_081245BE: + cmp r4, #0 + beq _081245E0 + subs r0, r1, r5 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r4 + bhs _081245DC + movs r2, #0 +_081245CE: + strb r2, [r1] + adds r1, #1 + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r4 + blo _081245CE +_081245DC: + movs r0, #0xff + strb r0, [r1] +_081245E0: + adds r0, r1, #0 +_081245E2: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end GetMapName + + thumb_func_start sub_081245E8 +sub_081245E8: @ 0x081245E8 + push {lr} + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + cmp r1, #0x56 + beq _08124604 + cmp r1, #0x57 + bne _08124610 + ldr r1, _08124600 + bl StringCopy + b _08124616 + .align 2, 0 +_08124600: .4byte 0x085CBEBA +_08124604: + ldr r1, _0812460C + bl StringCopy + b _08124616 + .align 2, 0 +_0812460C: .4byte 0x085CBEC1 +_08124610: + movs r2, #0 + bl GetMapName +_08124616: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081245E8 + + thumb_func_start sub_0812461C +sub_0812461C: @ 0x0812461C + push {lr} + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + cmp r1, #0x42 + beq _0812462C + bl sub_081245E8 + b _08124632 +_0812462C: + ldr r1, _08124638 + bl StringCopy +_08124632: + pop {r1} + bx r1 + .align 2, 0 +_08124638: .4byte 0x085CBEC7 + thumb_func_end sub_0812461C + + thumb_func_start sub_0812463C +sub_0812463C: @ 0x0812463C + push {r4, r5, lr} + ldr r5, [sp, #0xc] + lsls r0, r0, #0x10 + ldr r4, _08124660 + lsrs r0, r0, #0xd + adds r0, r0, r4 + ldrb r4, [r0] + strh r4, [r1] + ldrb r1, [r0, #1] + strh r1, [r2] + ldrb r1, [r0, #2] + strh r1, [r3] + ldrb r0, [r0, #3] + strh r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08124660: .4byte 0x0857CD6C + thumb_func_end sub_0812463C + + thumb_func_start sub_08124664 +sub_08124664: @ 0x08124664 + ldr r0, _08124670 + ldr r0, [r0] + adds r0, #0x78 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08124670: .4byte 0x02039E10 + thumb_func_end sub_08124664 + + thumb_func_start sub_08124674 +sub_08124674: @ 0x08124674 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + movs r1, #0 + ldr r3, _0812468C +_0812467E: + adds r0, r1, r3 + ldrb r0, [r0] + cmp r2, r0 + bne _08124690 + movs r0, #1 + b _08124698 + .align 2, 0 +_0812468C: .4byte 0x0857D524 +_08124690: + adds r1, #1 + cmp r1, #2 + bls _0812467E + movs r0, #0 +_08124698: + pop {r1} + bx r1 + thumb_func_end sub_08124674 + + thumb_func_start MCB2_FlyMap +MCB2_FlyMap: @ 0x0812469C + push {r4, lr} + sub sp, #0xc + ldr r0, _081246BC + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0xa + bls _081246B0 + b _081248B6 +_081246B0: + lsls r0, r0, #2 + ldr r1, _081246C0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081246BC: .4byte 0x03002360 +_081246C0: .4byte 0x081246C4 +_081246C4: @ jump table + .4byte _081246F0 @ case 0 + .4byte _08124772 @ case 1 + .4byte _08124788 @ case 2 + .4byte _08124798 @ case 3 + .4byte _081247A8 @ case 4 + .4byte _081247F0 @ case 5 + .4byte _08124804 @ case 6 + .4byte _08124818 @ case 7 + .4byte _08124858 @ case 8 + .4byte _0812485E @ case 9 + .4byte _08124878 @ case 10 +_081246F0: + movs r0, #0 + bl SetVBlankCallback + movs r0, #0 + movs r1, #0 + bl SetGpuReg + movs r0, #0x10 + movs r1, #0 + bl SetGpuReg + movs r0, #0x12 + movs r1, #0 + bl SetGpuReg + movs r0, #0x14 + movs r1, #0 + bl SetGpuReg + movs r0, #0x16 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1a + movs r1, #0 + bl SetGpuReg + movs r0, #0x18 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1c + movs r1, #0 + bl SetGpuReg + movs r0, #0x1e + movs r1, #0 + bl SetGpuReg + ldr r4, _08124754 + ldr r0, _08124758 + bl Alloc + str r0, [r4] + cmp r0, #0 + bne _08124760 + ldr r0, _0812475C + bl SetMainCallback2 + b _081248B6 + .align 2, 0 +_08124754: .4byte 0x02039E14 +_08124758: .4byte 0x00000A74 +_0812475C: .4byte 0x08085AFD +_08124760: + bl ResetPaletteFade + bl ResetSpriteData + bl FreeSpriteTileRanges + bl FreeAllSpritePalettes + b _081248A8 +_08124772: + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _08124784 + movs r0, #1 + movs r2, #3 + bl InitBgsFromTemplates + b _081248A8 + .align 2, 0 +_08124784: .4byte 0x0857D7D4 +_08124788: + ldr r0, _08124794 + bl InitWindows + bl DeactivateAllTextPrinters + b _081248A8 + .align 2, 0 +_08124794: .4byte 0x0857D7E0 +_08124798: + movs r0, #0 + movs r1, #0x51 + movs r2, #0xd0 + bl LoadUserWindowBorderGfx + bl clear_scheduled_bg_copies_to_vram + b _081248A8 +_081247A8: + ldr r4, _081247E4 + ldr r0, [r4] + adds r0, #8 + movs r1, #0 + bl InitRegionMap + movs r0, #0 + movs r1, #0 + bl CreateRegionMapCursor + movs r0, #1 + movs r1, #1 + bl CreateRegionMapPlayerIcon + ldr r0, [r4] + ldrh r1, [r0, #8] + strh r1, [r0, #6] + ldr r1, _081247E8 + adds r0, r0, r1 + movs r1, #0 + movs r2, #0xa + bl StringFill + ldr r1, _081247EC + movs r0, #1 + str r0, [r1] + bl sub_08124910 + b _081248A8 + .align 2, 0 +_081247E4: .4byte 0x02039E14 +_081247E8: .4byte 0x00000A4C +_081247EC: .4byte 0x03001180 +_081247F0: + ldr r0, _081247FC + ldr r1, _08124800 + bl LZ77UnCompVram + b _081248A8 + .align 2, 0 +_081247FC: .4byte 0x0857D548 +_08124800: .4byte 0x0600C000 +_08124804: + ldr r0, _08124810 + ldr r1, _08124814 + bl LZ77UnCompVram + b _081248A8 + .align 2, 0 +_08124810: .4byte 0x0857D580 +_08124814: .4byte 0x0600F000 +_08124818: + ldr r0, _08124850 + movs r1, #0x10 + movs r2, #0x20 + bl LoadPalette + movs r0, #2 + bl PutWindowTilemap + movs r0, #2 + movs r1, #0 + bl FillWindowPixelBuffer + ldr r2, _08124854 + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + movs r0, #2 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + b _081248A8 + .align 2, 0 +_08124850: .4byte 0x0857D528 +_08124854: .4byte 0x085C9398 +_08124858: + bl sub_08124A58 + b _081248A8 +_0812485E: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + ldr r0, _08124874 + bl SetVBlankCallback + b _081248A8 + .align 2, 0 +_08124874: .4byte 0x081248CD +_08124878: + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuRegBits + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + ldr r0, _081248C0 + bl sub_08124900 + ldr r0, _081248C4 + bl SetMainCallback2 +_081248A8: + ldr r1, _081248C8 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_081248B6: + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081248C0: .4byte 0x08124CFD +_081248C4: .4byte 0x081248E1 +_081248C8: .4byte 0x03002360 + thumb_func_end MCB2_FlyMap + + thumb_func_start sub_081248CC +sub_081248CC: @ 0x081248CC + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081248CC + + thumb_func_start sub_081248E0 +sub_081248E0: @ 0x081248E0 + push {lr} + ldr r0, _081248FC + ldr r0, [r0] + ldr r0, [r0] + bl _call_via_r0 + bl AnimateSprites + thumb_func_end sub_081248E0 + + thumb_func_start sub_081248F0 +sub_081248F0: @ 0x081248F0 + bl BuildOamBuffer + bl do_scheduled_bg_tilemap_copies_to_vram + pop {r0} + bx r0 + .align 2, 0 +_081248FC: .4byte 0x02039E14 + thumb_func_end sub_081248F0 + + thumb_func_start sub_08124900 +sub_08124900: @ 0x08124900 + ldr r1, _0812490C + ldr r1, [r1] + str r0, [r1] + movs r0, #0 + strh r0, [r1, #4] + bx lr + .align 2, 0 +_0812490C: .4byte 0x02039E14 + thumb_func_end sub_08124900 + + thumb_func_start sub_08124910 +sub_08124910: @ 0x08124910 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + ldr r2, _081249B4 + ldr r0, [r2] + ldrb r0, [r0, #0xa] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bhi _08124A14 + movs r7, #0 + movs r3, #0 + ldr r0, _081249B8 + mov ip, r0 + adds r5, r2, #0 + movs r6, #0 +_08124930: + ldr r0, [r5] + lsls r1, r3, #3 + mov r2, ip + adds r4, r1, r2 + ldrh r0, [r0, #8] + ldrh r1, [r4, #4] + cmp r0, r1 + bne _081249C0 + ldrh r0, [r4, #6] + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081249CA + ldr r0, [r5] + ldrb r0, [r0, #0xb] + ldr r1, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl StringLength + movs r7, #1 + movs r0, #0 + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + movs r0, #1 + movs r1, #0 + movs r2, #0x51 + movs r3, #0xd + bl DrawStdFrameWithCustomTileAndPalette + ldr r2, [r5] + adds r2, #0xc + movs r0, #2 + str r0, [sp] + str r6, [sp, #4] + str r6, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + ldr r0, [r5] + ldrb r0, [r0, #0xb] + ldr r1, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r2, [r0] + movs r0, #0x12 + str r0, [sp] + str r6, [sp, #4] + str r6, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r3, #0x10 + bl AddTextPrinterParameterized + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + ldr r0, _081249BC + str r7, [r0] + b _081249CA + .align 2, 0 +_081249B4: .4byte 0x02039E14 +_081249B8: .4byte 0x0857D7CC +_081249BC: .4byte 0x03001180 +_081249C0: + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0 + beq _08124930 +_081249CA: + cmp r7, #0 + bne _08124A4A + ldr r4, _08124A0C + ldr r0, [r4] + cmp r0, #1 + bne _081249EA + movs r0, #1 + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + movs r0, #0 + movs r1, #0 + movs r2, #0x51 + movs r3, #0xd + bl DrawStdFrameWithCustomTileAndPalette +_081249EA: + ldr r0, _08124A10 + ldr r2, [r0] + adds r2, #0xc + movs r0, #2 + str r0, [sp] + str r7, [sp, #4] + str r7, [sp, #8] + movs r0, #0 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + str r7, [r4] + b _08124A4A + .align 2, 0 +_08124A0C: .4byte 0x03001180 +_08124A10: .4byte 0x02039E14 +_08124A14: + ldr r4, _08124A54 + ldr r0, [r4] + cmp r0, #1 + bne _08124A30 + movs r0, #1 + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + movs r0, #0 + movs r1, #0 + movs r2, #0x51 + movs r3, #0xd + bl DrawStdFrameWithCustomTileAndPalette +_08124A30: + movs r0, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + movs r0, #0 + movs r1, #2 + bl CopyWindowToVram + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #0 + str r0, [r4] +_08124A4A: + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08124A54: .4byte 0x03001180 + thumb_func_end sub_08124910 + + thumb_func_start sub_08124A58 +sub_08124A58: @ 0x08124A58 + push {r4, r5, lr} + sub sp, #8 + ldr r0, _08124AA4 + ldr r5, _08124AA8 + ldr r1, [r5] + ldr r4, _08124AAC + adds r1, r1, r4 + bl LZ77UnCompWram + ldr r0, [r5] + adds r0, r0, r4 + str r0, [sp] + ldr r1, _08124AB0 + ldr r0, [sp, #4] + ands r0, r1 + movs r1, #0xe0 + lsls r1, r1, #1 + orrs r0, r1 + ldr r1, _08124AB4 + ands r0, r1 + movs r1, #0x80 + lsls r1, r1, #0xa + orrs r0, r1 + str r0, [sp, #4] + mov r0, sp + bl LoadSpriteSheet + ldr r0, _08124AB8 + bl LoadSpritePalette + bl sub_08124ABC + bl sub_08124BCC + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08124AA4: .4byte 0x0857D658 +_08124AA8: .4byte 0x02039E14 +_08124AAC: .4byte 0x0000088C +_08124AB0: .4byte 0xFFFF0000 +_08124AB4: .4byte 0x0000FFFF +_08124AB8: .4byte 0x0857D800 + thumb_func_end sub_08124A58 + + thumb_func_start sub_08124ABC +sub_08124ABC: @ 0x08124ABC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + ldr r0, _08124B1C + str r0, [sp, #0xc] + movs r1, #0 + mov sb, r1 + mov r2, sp + adds r2, #6 + str r2, [sp, #0x14] + mov r3, sp + adds r3, #0xa + str r3, [sp, #0x18] + mov r0, sp + adds r0, #8 + str r0, [sp, #0x10] + add r1, sp, #4 + mov sl, r1 +_08124AE6: + ldr r2, [sp, #0x18] + str r2, [sp] + mov r0, sb + add r1, sp, #4 + mov r2, sp + adds r2, #6 + ldr r3, [sp, #0x10] + bl sub_0812463C + mov r3, sl + ldrh r0, [r3] + adds r0, #1 + lsls r0, r0, #3 + adds r0, #4 + strh r0, [r3] + mov r1, sp + ldrh r0, [r1, #6] + adds r0, #2 + lsls r0, r0, #3 + adds r0, #4 + strh r0, [r1, #6] + ldr r2, [sp, #0x10] + ldrh r0, [r2] + cmp r0, #2 + bne _08124B20 + movs r7, #1 + b _08124B2C + .align 2, 0 +_08124B1C: .4byte 0x0000086F +_08124B20: + ldr r3, [sp, #0x18] + ldrh r0, [r3] + movs r7, #0 + cmp r0, #2 + bne _08124B2C + movs r7, #2 +_08124B2C: + mov r0, sl + movs r2, #0 + ldrsh r1, [r0, r2] + ldr r3, [sp, #0x14] + movs r0, #0 + ldrsh r2, [r3, r0] + ldr r0, _08124B78 + movs r3, #0xa + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x40 + beq _08124BA0 + ldr r1, _08124B7C + 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, #1] + movs r0, #0x3f + ands r0, r1 + orrs r0, r3 + strb r0, [r2, #1] + ldr r0, [sp, #0xc] + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08124B84 + mov r0, r8 + adds r0, #0x1c + adds r0, r6, r0 + ldr r1, _08124B80 + str r1, [r0] + b _08124B8A + .align 2, 0 +_08124B78: .4byte 0x0857D86C +_08124B7C: .4byte 0x020205AC +_08124B80: .4byte 0x08124CA5 +_08124B84: + adds r0, r7, #3 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 +_08124B8A: + adds r4, r4, r5 + lsls r4, r4, #2 + ldr r0, _08124BC8 + adds r4, r4, r0 + lsls r1, r7, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim + mov r2, sb + strh r2, [r4, #0x2e] +_08124BA0: + ldr r0, [sp, #0xc] + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0xc] + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + cmp r0, #0xf + bls _08124AE6 + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08124BC8: .4byte 0x020205AC + thumb_func_end sub_08124ABC + + thumb_func_start sub_08124BCC +sub_08124BCC: @ 0x08124BCC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + movs r0, #0 + mov r8, r0 + ldr r6, _08124C94 + ldrh r0, [r6, #2] + cmp r0, #0xd5 + beq _08124C84 + mov r5, sp + adds r5, #6 + add r7, sp, #4 + ldr r1, _08124C98 + mov sb, r1 + movs r0, #0x1c + add r0, sb + mov sl, r0 +_08124BF4: + mov r1, r8 + lsls r4, r1, #2 + adds r0, r4, r6 + ldrh r0, [r0] + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08124C6C + adds r0, r6, #2 + adds r0, r4, r0 + ldrh r6, [r0] + mov r0, sp + adds r0, #0xa + str r0, [sp] + adds r0, r6, #0 + add r1, sp, #4 + adds r2, r5, #0 + add r3, sp, #8 + bl sub_0812463C + ldrh r0, [r7] + adds r0, #1 + lsls r0, r0, #3 + strh r0, [r7] + ldrh r0, [r5] + adds r0, #2 + lsls r0, r0, #3 + strh r0, [r5] + movs r0, #0 + ldrsh r1, [r7, r0] + movs r0, #0 + ldrsh r2, [r5, r0] + ldr r0, _08124C9C + movs r3, #0xa + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _08124C6C + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + mov r1, sb + adds r4, r2, r1 + ldrb r1, [r4, #3] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #3] + add r2, sl + ldr r0, _08124CA0 + str r0, [r2] + adds r0, r4, #0 + movs r1, #6 + bl StartSpriteAnim + strh r6, [r4, #0x2e] +_08124C6C: + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + ldr r6, _08124C94 + lsls r0, r0, #2 + adds r1, r6, #2 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0xd5 + bne _08124BF4 +_08124C84: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08124C94: .4byte 0x0857D808 +_08124C98: .4byte 0x020205AC +_08124C9C: .4byte 0x0857D86C +_08124CA0: .4byte 0x08124CA5 + thumb_func_end sub_08124BCC + + thumb_func_start sub_08124CA4 +sub_08124CA4: @ 0x08124CA4 + push {lr} + adds r2, r0, #0 + ldr r0, _08124CE4 + ldr r0, [r0] + ldrh r1, [r0, #8] + movs r3, #0x2e + ldrsh r0, [r2, r3] + cmp r1, r0 + bne _08124CE8 + ldrh r0, [r2, #0x30] + adds r0, #1 + strh r0, [r2, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x10 + ble _08124CF6 + movs r0, #0 + strh r0, [r2, #0x30] + adds r3, r2, #0 + adds r3, #0x3e + ldrb r2, [r3] + lsrs r1, r2, #2 + movs r0, #1 + eors r1, r0 + ands r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _08124CF6 + .align 2, 0 +_08124CE4: .4byte 0x02039E14 +_08124CE8: + movs r0, #0x10 + strh r0, [r2, #0x30] + adds r2, #0x3e + ldrb r1, [r2] + subs r0, #0x15 + ands r0, r1 + strb r0, [r2] +_08124CF6: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08124CA4 + + thumb_func_start sub_08124CFC +sub_08124CFC: @ 0x08124CFC + push {r4, lr} + sub sp, #4 + ldr r4, _08124D10 + ldr r0, [r4] + ldrh r1, [r0, #4] + cmp r1, #0 + beq _08124D14 + cmp r1, #1 + beq _08124D2E + b _08124D3E + .align 2, 0 +_08124D10: .4byte 0x02039E14 +_08124D14: + movs r0, #1 + rsbs r0, r0, #0 + str r1, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r1, [r4] + ldrh r0, [r1, #4] + adds r0, #1 + strh r0, [r1, #4] + b _08124D3E +_08124D2E: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08124D3E + ldr r0, _08124D48 + bl sub_08124900 +_08124D3E: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08124D48: .4byte 0x08124D4D + thumb_func_end sub_08124CFC + + thumb_func_start sub_08124D4C +sub_08124D4C: @ 0x08124D4C + push {r4, lr} + ldr r0, _08124D70 + ldr r0, [r0] + ldrh r0, [r0, #4] + cmp r0, #0 + bne _08124DE0 + bl sub_081230B8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + bhi _08124DE0 + lsls r0, r0, #2 + ldr r1, _08124D74 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08124D70: .4byte 0x02039E14 +_08124D74: .4byte 0x08124D78 +_08124D78: @ jump table + .4byte _08124DE0 @ case 0 + .4byte _08124DE0 @ case 1 + .4byte _08124DE0 @ case 2 + .4byte _08124D90 @ case 3 + .4byte _08124D96 @ case 4 + .4byte _08124DC8 @ case 5 +_08124D90: + bl sub_08124910 + b _08124DE0 +_08124D96: + ldr r4, _08124DBC + ldr r0, [r4] + ldrb r0, [r0, #0xa] + cmp r0, #2 + beq _08124DA4 + cmp r0, #4 + bne _08124DE0 +_08124DA4: + movs r0, #5 + bl m4aSongNumStart + ldr r0, [r4] + ldr r1, _08124DC0 + adds r0, r0, r1 + movs r1, #1 + strb r1, [r0] + ldr r0, _08124DC4 + bl sub_08124900 + b _08124DE0 + .align 2, 0 +_08124DBC: .4byte 0x02039E14 +_08124DC0: .4byte 0x00000A72 +_08124DC4: .4byte 0x08124DF5 +_08124DC8: + movs r0, #5 + bl m4aSongNumStart + ldr r0, _08124DE8 + ldr r0, [r0] + ldr r1, _08124DEC + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + ldr r0, _08124DF0 + bl sub_08124900 +_08124DE0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08124DE8: .4byte 0x02039E14 +_08124DEC: .4byte 0x00000A72 +_08124DF0: .4byte 0x08124DF5 + thumb_func_end sub_08124D4C + diff --git a/asm/reset_rtc_screen.s b/asm/reset_rtc_screen.s new file mode 100644 index 0000000..d87ebe6 --- /dev/null +++ b/asm/reset_rtc_screen.s @@ -0,0 +1,1394 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start SpriteCB_ResetRtcCursor0 +SpriteCB_ResetRtcCursor0: @ 0x0809E1C0 + push {lr} + adds r3, r0, #0 + ldr r2, _0809E1F0 + movs r0, #0x2e + ldrsh r1, [r3, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r2, #0xc + ldrsh r1, [r0, r2] + movs r2, #0x30 + ldrsh r0, [r3, r2] + cmp r1, r0 + beq _0809E2D6 + strh r1, [r3, #0x30] + subs r0, r1, #1 + cmp r0, #5 + bhi _0809E2D6 + lsls r0, r0, #2 + ldr r1, _0809E1F4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809E1F0: .4byte 0x03005B60 +_0809E1F4: .4byte 0x0809E1F8 +_0809E1F8: @ jump table + .4byte _0809E210 @ case 0 + .4byte _0809E234 @ case 1 + .4byte _0809E258 @ case 2 + .4byte _0809E27C @ case 3 + .4byte _0809E2A6 @ case 4 + .4byte _0809E2D0 @ case 5 +_0809E210: + adds r2, r3, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r1, r3, #0 + adds r1, #0x2a + movs r0, #1 + strb r0, [r1] + subs r2, #0x12 + ldrb r1, [r2] + subs r0, #0x41 + ands r0, r1 + strb r0, [r2] + movs r0, #0x40 + b _0809E29E +_0809E234: + adds r2, r3, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r1, r3, #0 + adds r1, #0x2a + movs r0, #1 + strb r0, [r1] + subs r2, #0x12 + ldrb r1, [r2] + subs r0, #0x41 + ands r0, r1 + strb r0, [r2] + movs r0, #0x60 + b _0809E29E +_0809E258: + adds r2, r3, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r1, r3, #0 + adds r1, #0x2a + movs r0, #1 + strb r0, [r1] + subs r2, #0x12 + ldrb r1, [r2] + subs r0, #0x41 + ands r0, r1 + strb r0, [r2] + movs r0, #0x78 + b _0809E29E +_0809E27C: + adds r2, r3, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r1, r3, #0 + adds r1, #0x2a + movs r0, #1 + strb r0, [r1] + subs r2, #0x12 + ldrb r1, [r2] + subs r0, #0x41 + ands r0, r1 + strb r0, [r2] + movs r0, #0x90 +_0809E29E: + strh r0, [r3, #0x20] + movs r0, #0x44 + strh r0, [r3, #0x22] + b _0809E2D6 +_0809E2A6: + adds r2, r3, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r1, r3, #0 + adds r1, #0x2a + movs r0, #2 + strb r0, [r1] + subs r2, #0x12 + ldrb r1, [r2] + subs r0, #0x42 + ands r0, r1 + strb r0, [r2] + movs r0, #0x9b + strh r0, [r3, #0x20] + movs r0, #0x50 + strh r0, [r3, #0x22] + b _0809E2D6 +_0809E2D0: + adds r0, r3, #0 + bl DestroySprite +_0809E2D6: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SpriteCB_ResetRtcCursor0 + + thumb_func_start SpriteCB_ResetRtcCursor1 +SpriteCB_ResetRtcCursor1: @ 0x0809E2DC + push {lr} + adds r3, r0, #0 + ldr r2, _0809E30C + movs r0, #0x2e + ldrsh r1, [r3, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r2, #0xc + ldrsh r1, [r0, r2] + movs r2, #0x30 + ldrsh r0, [r3, r2] + cmp r1, r0 + beq _0809E3D6 + strh r1, [r3, #0x30] + subs r0, r1, #1 + cmp r0, #5 + bhi _0809E3D6 + lsls r0, r0, #2 + ldr r1, _0809E310 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809E30C: .4byte 0x03005B60 +_0809E310: .4byte 0x0809E314 +_0809E314: @ jump table + .4byte _0809E32C @ case 0 + .4byte _0809E350 @ case 1 + .4byte _0809E374 @ case 2 + .4byte _0809E398 @ case 3 + .4byte _0809E3C2 @ case 4 + .4byte _0809E3D0 @ case 5 +_0809E32C: + adds r2, r3, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r1, r3, #0 + adds r1, #0x2a + movs r0, #0 + strb r0, [r1] + subs r2, #0x12 + ldrb r1, [r2] + subs r0, #0x40 + ands r0, r1 + strb r0, [r2] + movs r0, #0x40 + b _0809E3BA +_0809E350: + adds r2, r3, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r1, r3, #0 + adds r1, #0x2a + movs r0, #0 + strb r0, [r1] + subs r2, #0x12 + ldrb r1, [r2] + subs r0, #0x40 + ands r0, r1 + strb r0, [r2] + movs r0, #0x60 + b _0809E3BA +_0809E374: + adds r2, r3, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r1, r3, #0 + adds r1, #0x2a + movs r0, #0 + strb r0, [r1] + subs r2, #0x12 + ldrb r1, [r2] + subs r0, #0x40 + ands r0, r1 + strb r0, [r2] + movs r0, #0x78 + b _0809E3BA +_0809E398: + adds r2, r3, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r1, r3, #0 + adds r1, #0x2a + movs r0, #0 + strb r0, [r1] + subs r2, #0x12 + ldrb r1, [r2] + subs r0, #0x40 + ands r0, r1 + strb r0, [r2] + movs r0, #0x90 +_0809E3BA: + strh r0, [r3, #0x20] + movs r0, #0x5c + strh r0, [r3, #0x22] + b _0809E3D6 +_0809E3C2: + adds r0, r3, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + b _0809E3D6 +_0809E3D0: + adds r0, r3, #0 + bl DestroySprite +_0809E3D6: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SpriteCB_ResetRtcCursor1 + + thumb_func_start CreateCursor +CreateCursor: @ 0x0809E3DC + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _0809E44C + bl LoadSpritePalette + ldr r0, _0809E450 + mov r8, r0 + movs r1, #0x40 + movs r2, #0x44 + movs r3, #0 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r6, _0809E454 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, r6, #0 + adds r4, #0x1c + adds r2, r0, r4 + ldr r1, _0809E458 + str r1, [r2] + adds r0, r0, r6 + strh r5, [r0, #0x2e] + ldr r1, _0809E45C + strh r1, [r0, #0x30] + mov r0, r8 + movs r1, #0x40 + movs r2, #0x44 + movs r3, #0 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, r0, r4 + ldr r1, _0809E460 + str r1, [r4] + adds r0, r0, r6 + strh r5, [r0, #0x2e] + movs r1, #1 + rsbs r1, r1, #0 + strh r1, [r0, #0x30] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0809E44C: .4byte 0x084E8B14 +_0809E450: .4byte 0x084E8B40 +_0809E454: .4byte 0x020205AC +_0809E458: .4byte 0x0809E1C1 +_0809E45C: .4byte 0x0000FFFF +_0809E460: .4byte 0x0809E2DD + thumb_func_end CreateCursor + + thumb_func_start FreeCursorPalette +FreeCursorPalette: @ 0x0809E464 + push {lr} + ldr r0, _0809E474 + ldrh r0, [r0, #4] + bl FreeSpritePaletteByTag + pop {r0} + bx r0 + .align 2, 0 +_0809E474: .4byte 0x084E8B14 + thumb_func_end FreeCursorPalette + + thumb_func_start HideChooseTimeWindow +HideChooseTimeWindow: @ 0x0809E478 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + adds r0, r4, #0 + bl RemoveWindow + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end HideChooseTimeWindow + + thumb_func_start PrintTime +PrintTime: @ 0x0809E49C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + mov sl, r0 + adds r0, r1, #0 + mov sb, r2 + adds r1, r3, #0 + ldr r5, [sp, #0x30] + ldr r6, [sp, #0x34] + ldr r2, [sp, #0x38] + mov r8, r2 + mov r2, sl + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sl, r2 + lsls r3, r0, #0x18 + lsrs r3, r3, #0x18 + str r3, [sp, #0xc] + mov r0, sb + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov r2, r8 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + ldr r7, _0809E57C + ldr r4, _0809E580 + adds r0, r4, #0 + movs r2, #1 + movs r3, #4 + bl ConvertIntToDecimalStringN + adds r0, r7, #0 + adds r1, r4, #0 + bl StringCopy + adds r7, r0, #0 + ldr r1, _0809E584 + bl StringCopy + adds r7, r0, #0 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + adds r0, r7, #0 + adds r1, r4, #0 + bl StringCopy + adds r7, r0, #0 + ldr r5, _0809E588 + adds r1, r5, #0 + bl StringCopy + adds r7, r0, #0 + adds r0, r4, #0 + adds r1, r6, #0 + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + adds r0, r7, #0 + adds r1, r4, #0 + bl StringCopy + adds r7, r0, #0 + adds r1, r5, #0 + bl StringCopy + adds r7, r0, #0 + adds r0, r4, #0 + mov r1, r8 + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + adds r0, r7, #0 + adds r1, r4, #0 + bl StringCopy + ldr r2, _0809E57C + mov r0, sb + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + mov r0, sl + movs r1, #1 + ldr r3, [sp, #0xc] + bl AddTextPrinterParameterized + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0809E57C: .4byte 0x02021C7C +_0809E580: .4byte 0x02021C40 +_0809E584: .4byte 0x084E8A6C +_0809E588: .4byte 0x084E8A6F + thumb_func_end PrintTime + + thumb_func_start ShowChooseTimeWindow +ShowChooseTimeWindow: @ 0x0809E58C + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #0xc + adds r4, r0, #0 + mov sb, r1 + adds r5, r2, #0 + adds r6, r3, #0 + ldr r0, [sp, #0x24] + mov r8, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r0, sb + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov r0, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r2, #0x85 + lsls r2, r2, #2 + adds r0, r4, #0 + movs r1, #0 + movs r3, #0xe + bl DrawStdFrameWithCustomTileAndPalette + str r5, [sp] + str r6, [sp, #4] + mov r0, r8 + str r0, [sp, #8] + adds r0, r4, #0 + movs r1, #0 + movs r2, #2 + mov r3, sb + bl PrintTime + ldr r2, _0809E60C + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + adds r0, r4, #0 + movs r1, #1 + movs r3, #0x80 + bl AddTextPrinterParameterized + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + add sp, #0xc + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0809E60C: .4byte 0x084E8A71 + thumb_func_end ShowChooseTimeWindow + + thumb_func_start MoveTimeUpDown +MoveTimeUpDown: @ 0x0809E610 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + adds r1, r3, #0 + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + beq _0809E62A + ldrh r0, [r4] + subs r0, #1 + b _0809E644 +_0809E62A: + movs r0, #0x40 + ands r0, r3 + cmp r0, #0 + beq _0809E638 + ldrh r0, [r4] + adds r0, #1 + b _0809E662 +_0809E638: + movs r0, #0x20 + ands r0, r3 + cmp r0, #0 + beq _0809E652 + ldrh r0, [r4] + subs r0, #0xa +_0809E644: + strh r0, [r4] + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, r5 + bge _0809E66E + strh r2, [r4] + b _0809E66E +_0809E652: + movs r0, #0x10 + ands r1, r0 + cmp r1, #0 + bne _0809E65E + movs r0, #0 + b _0809E670 +_0809E65E: + ldrh r0, [r4] + adds r0, #0xa +_0809E662: + strh r0, [r4] + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, r2 + ble _0809E66E + strh r5, [r4] +_0809E66E: + movs r0, #1 +_0809E670: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MoveTimeUpDown + + thumb_func_start Task_ResetRtc_3 +Task_ResetRtc_3: @ 0x0809E678 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0809E68C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r0, #1 + strh r0, [r1, #8] + bx lr + .align 2, 0 +_0809E68C: .4byte 0x03005B60 + thumb_func_end Task_ResetRtc_3 + + thumb_func_start Task_ResetRtc_2 +Task_ResetRtc_2: @ 0x0809E690 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r5, _0809E6B8 + adds r0, r4, r5 + ldrb r0, [r0, #0x10] + bl HideChooseTimeWindow + bl FreeCursorPalette + subs r5, #8 + adds r4, r4, r5 + ldr r0, _0809E6BC + str r0, [r4] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0809E6B8: .4byte 0x03005B68 +_0809E6BC: .4byte 0x0809E679 + thumb_func_end Task_ResetRtc_2 + + thumb_func_start Task_ResetRtc_1 +Task_ResetRtc_1: @ 0x0809E6C0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r7, r0, #3 + ldr r0, _0809E704 + mov r8, r0 + adds r5, r7, r0 + ldrb r4, [r5, #4] + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + ldr r1, _0809E708 + adds r2, r0, r1 + ldr r1, _0809E70C + ldrh r3, [r1, #0x2e] + movs r0, #2 + ands r0, r3 + mov ip, r1 + cmp r0, #0 + beq _0809E714 + mov r0, r8 + subs r0, #8 + adds r0, r7, r0 + ldr r1, _0809E710 + str r1, [r0] + movs r0, #0 + strh r0, [r5, #2] + movs r0, #6 + b _0809E734 + .align 2, 0 +_0809E704: .4byte 0x03005B68 +_0809E708: .4byte 0x084E8A6C +_0809E70C: .4byte 0x03002360 +_0809E710: .4byte 0x0809E691 +_0809E714: + movs r0, #0x10 + ands r0, r3 + cmp r0, #0 + beq _0809E722 + ldrb r0, [r2, #7] + cmp r0, #0 + bne _0809E734 +_0809E722: + mov r3, ip + ldrh r1, [r3, #0x2e] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0809E73E + ldrb r0, [r2, #6] + cmp r0, #0 + beq _0809E73E +_0809E734: + strh r0, [r5, #4] + movs r0, #5 + bl PlaySE + b _0809E7CC +_0809E73E: + cmp r4, #5 + bne _0809E78C + mov r0, ip + ldrh r1, [r0, #0x2e] + movs r4, #1 + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + beq _0809E7CC + ldr r1, _0809E780 + ldrh r0, [r5, #6] + strh r0, [r1] + ldrh r0, [r5, #8] + strb r0, [r1, #2] + ldrh r0, [r5, #0xa] + strb r0, [r1, #3] + ldrh r0, [r5, #0xc] + strb r0, [r1, #4] + movs r0, #5 + bl PlaySE + ldr r1, _0809E784 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _0809E788 + str r1, [r0] + strh r4, [r5, #2] + movs r0, #6 + strh r0, [r5, #4] + b _0809E7CC + .align 2, 0 +_0809E780: .4byte 0x03005A50 +_0809E784: .4byte 0x03005B60 +_0809E788: .4byte 0x0809E691 +_0809E78C: + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r5, r0 + ldrh r1, [r2, #2] + ldrh r2, [r2, #4] + mov r3, ip + ldrh r4, [r3, #0x30] + movs r3, #0xc0 + ands r3, r4 + bl MoveTimeUpDown + cmp r0, #0 + beq _0809E7CC + movs r0, #5 + bl PlaySE + ldrb r0, [r5, #0x10] + ldrh r3, [r5, #6] + ldrb r1, [r5, #8] + str r1, [sp] + ldrb r1, [r5, #0xa] + str r1, [sp, #4] + ldrb r1, [r5, #0xc] + str r1, [sp, #8] + movs r1, #0 + movs r2, #2 + bl PrintTime + ldrb r0, [r5, #0x10] + movs r1, #2 + bl CopyWindowToVram +_0809E7CC: + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end Task_ResetRtc_1 + + thumb_func_start Task_ResetRtc_0 +Task_ResetRtc_0: @ 0x0809E7D8 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #4 + mov r8, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r6, r0, #2 + add r6, r8 + lsls r6, r6, #3 + ldr r0, _0809E850 + mov sb, r0 + adds r5, r6, r0 + movs r0, #0 + strh r0, [r5] + ldr r1, _0809E854 + ldrh r0, [r1] + strh r0, [r5, #6] + movs r0, #2 + ldrsb r0, [r1, r0] + strh r0, [r5, #8] + movs r0, #3 + ldrsb r0, [r1, r0] + strh r0, [r5, #0xa] + movs r0, #4 + ldrsb r0, [r1, r0] + strh r0, [r5, #0xc] + ldr r0, _0809E858 + bl AddWindow + strh r0, [r5, #0x10] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r5, #6] + ldrb r2, [r5, #8] + ldrb r3, [r5, #0xa] + ldrb r4, [r5, #0xc] + str r4, [sp] + bl ShowChooseTimeWindow + mov r0, r8 + bl CreateCursor + movs r0, #2 + strh r0, [r5, #4] + movs r0, #8 + rsbs r0, r0, #0 + add sb, r0 + add r6, sb + ldr r0, _0809E85C + str r0, [r6] + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0809E850: .4byte 0x03005B68 +_0809E854: .4byte 0x03005A50 +_0809E858: .4byte 0x084E8A64 +_0809E85C: .4byte 0x0809E6C1 + thumb_func_end Task_ResetRtc_0 + + thumb_func_start CB2_InitResetRtcScreen +CB2_InitResetRtcScreen: @ 0x0809E860 + push {r4, r5, r6, r7, lr} + sub sp, #4 + movs r0, #0 + movs r1, #0 + bl SetGpuReg + movs r0, #0 + bl SetVBlankCallback + movs r2, #0xa0 + lsls r2, r2, #0x13 + mov r1, sp + movs r0, #0 + strh r0, [r1] + ldr r1, _0809E908 + mov r0, sp + str r0, [r1] + str r2, [r1, #4] + ldr r0, _0809E90C + str r0, [r1, #8] + ldr r0, [r1, #8] + movs r2, #0xc0 + lsls r2, r2, #0x13 + movs r3, #0xc0 + lsls r3, r3, #9 + mov r4, sp + movs r6, #0 + movs r5, #0x80 + lsls r5, r5, #5 + ldr r7, _0809E910 + movs r0, #0x81 + lsls r0, r0, #0x18 + mov ip, r0 +_0809E8A2: + strh r6, [r4] + mov r0, sp + str r0, [r1] + str r2, [r1, #4] + str r7, [r1, #8] + ldr r0, [r1, #8] + adds r2, r2, r5 + subs r3, r3, r5 + cmp r3, r5 + bhi _0809E8A2 + strh r6, [r4] + mov r0, sp + str r0, [r1] + str r2, [r1, #4] + lsrs r0, r3, #1 + mov r2, ip + orrs r0, r2 + str r0, [r1, #8] + ldr r0, [r1, #8] + movs r0, #0 + movs r1, #0x80 + bl ResetOamRange + bl LoadOam + bl ScanlineEffect_Stop + bl ScanlineEffect_Clear + bl ResetSpriteData + bl ResetTasks + bl ResetPaletteFade + bl sub_0809E920 + ldr r0, _0809E914 + bl SetVBlankCallback + ldr r0, _0809E918 + bl SetMainCallback2 + ldr r0, _0809E91C + movs r1, #0x50 + bl CreateTask + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0809E908: .4byte 0x040000D4 +_0809E90C: .4byte 0x81000200 +_0809E910: .4byte 0x81000800 +_0809E914: .4byte 0x0809E985 +_0809E918: .4byte 0x0809E969 +_0809E91C: .4byte 0x0809EAD9 + thumb_func_end CB2_InitResetRtcScreen + + thumb_func_start sub_0809E920 +sub_0809E920: @ 0x0809E920 + push {lr} + bl clear_scheduled_bg_copies_to_vram + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _0809E960 + movs r0, #0 + movs r2, #1 + bl InitBgsFromTemplates + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + ldr r0, _0809E964 + bl InitWindows + bl DeactivateAllTextPrinters + bl sub_08196F98 + pop {r0} + bx r0 + .align 2, 0 +_0809E960: .4byte 0x084E8A48 +_0809E964: .4byte 0x084E8A4C + thumb_func_end sub_0809E920 + + thumb_func_start CB2_ResetRtcScreen +CB2_ResetRtcScreen: @ 0x0809E968 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl do_scheduled_bg_tilemap_copies_to_vram + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CB2_ResetRtcScreen + + thumb_func_start sub_0809E984 +sub_0809E984: @ 0x0809E984 + push {lr} + bl ProcessSpriteCopyRequests + bl LoadOam + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0809E984 + + thumb_func_start ShowMessage +ShowMessage: @ 0x0809E998 + push {r4, lr} + sub sp, #0xc + adds r4, r0, #0 + movs r2, #0x80 + lsls r2, r2, #2 + movs r0, #1 + movs r1, #0 + movs r3, #0xf + bl DrawDialogFrameWithCustomTileAndPalette + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + movs r0, #1 + movs r1, #1 + adds r2, r4, #0 + movs r3, #0 + bl AddTextPrinterParameterized + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + thumb_func_end ShowMessage + + thumb_func_start Task_ShowResetRtcPrompt +Task_ShowResetRtcPrompt: @ 0x0809E9D0 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + ldr r1, _0809E9F0 + adds r6, r0, r1 + movs r0, #0 + ldrsh r5, [r6, r0] + cmp r5, #0 + beq _0809E9F4 + cmp r5, #1 + beq _0809EA8A + b _0809EAD0 + .align 2, 0 +_0809E9F0: .4byte 0x03005B68 +_0809E9F4: + movs r2, #0x85 + lsls r2, r2, #2 + movs r0, #0 + movs r1, #0 + movs r3, #0xe + bl DrawStdFrameWithCustomTileAndPalette + ldr r2, _0809EAA4 + movs r0, #2 + str r0, [sp] + movs r4, #0xff + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + ldr r1, _0809EAA8 + ldrh r3, [r1] + ldrb r0, [r1, #2] + str r0, [sp] + ldrb r0, [r1, #3] + str r0, [sp, #4] + ldrb r0, [r1, #4] + str r0, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #0x12 + bl PrintTime + ldr r2, _0809EAAC + movs r0, #0x22 + str r0, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + ldr r0, _0809EAB0 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0xa0 + ldrh r3, [r0] + adds r0, #2 + ldrb r0, [r0] + str r0, [sp] + adds r0, r1, #0 + adds r0, #0xa3 + ldrb r0, [r0] + str r0, [sp, #4] + adds r0, r1, #0 + adds r0, #0xa4 + ldrb r0, [r0] + str r0, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #0x32 + bl PrintTime + ldr r0, _0809EAB4 + bl ShowMessage + movs r0, #0 + movs r1, #2 + bl CopyWindowToVram + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + ldrh r0, [r6] + adds r0, #1 + strh r0, [r6] +_0809EA8A: + ldr r0, _0809EAB8 + ldrh r1, [r0, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0809EABC + adds r0, r7, #0 + bl DestroyTask + bl DoSoftReset + b _0809EAD0 + .align 2, 0 +_0809EAA4: .4byte 0x085CBEE9 +_0809EAA8: .4byte 0x03005A50 +_0809EAAC: .4byte 0x085CBEF9 +_0809EAB0: .4byte 0x03005AF0 +_0809EAB4: .4byte 0x085CBECB +_0809EAB8: .4byte 0x03002360 +_0809EABC: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0809EAD0 + movs r0, #5 + bl PlaySE + adds r0, r7, #0 + bl DestroyTask +_0809EAD0: + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end Task_ShowResetRtcPrompt + + thumb_func_start Task_ResetRtcScreen +Task_ResetRtcScreen: @ 0x0809EAD8 + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _0809EB00 + adds r5, r0, r1 + movs r1, #0 + ldrsh r0, [r5, r1] + cmp r0, #6 + bls _0809EAF4 + b _0809ECDC +_0809EAF4: + lsls r0, r0, #2 + ldr r1, _0809EB04 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809EB00: .4byte 0x03005B68 +_0809EB04: .4byte 0x0809EB08 +_0809EB08: @ jump table + .4byte _0809EB24 @ case 0 + .4byte _0809EB40 @ case 1 + .4byte _0809EB8C @ case 2 + .4byte _0809EBE8 @ case 3 + .4byte _0809EC70 @ case 4 + .4byte _0809ECA0 @ case 5 + .4byte _0809ECC2 @ case 6 +_0809EB24: + movs r0, #1 + rsbs r0, r0, #0 + ldr r1, _0809EB3C + str r1, [sp] + movs r1, #1 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + movs r0, #1 + strh r0, [r5] + b _0809ECDC + .align 2, 0 +_0809EB3C: .4byte 0x0000FFFF +_0809EB40: + ldr r0, _0809EB68 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809EB4E + b _0809ECDC +_0809EB4E: + ldr r0, _0809EB6C + ldrh r0, [r0] + cmp r0, #0 + beq _0809EB5A + cmp r0, #2 + bne _0809EB74 +_0809EB5A: + ldr r0, _0809EB70 + bl ShowMessage + movs r0, #5 + strh r0, [r5] + b _0809ECDC + .align 2, 0 +_0809EB68: .4byte 0x02037C74 +_0809EB6C: .4byte 0x03005F50 +_0809EB70: .4byte 0x085CBF69 +_0809EB74: + bl RtcCalcLocalTime + ldr r0, _0809EB88 + movs r1, #0x50 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #2] + b _0809EC0C + .align 2, 0 +_0809EB88: .4byte 0x0809E9D1 +_0809EB8C: + ldr r2, _0809EBD4 + movs r0, #2 + ldrsh r1, [r5, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrb r0, [r0, #4] + cmp r0, #1 + bne _0809EBA2 + b _0809ECDC +_0809EBA2: + movs r0, #0 + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + ldr r0, _0809EBD8 + bl ShowMessage + ldr r2, _0809EBDC + ldr r0, _0809EBE0 + ldr r0, [r0] + adds r0, #0xa0 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [r2] + str r1, [r2, #4] + ldr r0, _0809EBE4 + movs r1, #0x50 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #2] + movs r0, #3 + strh r0, [r5] + b _0809ECDC + .align 2, 0 +_0809EBD4: .4byte 0x03005B60 +_0809EBD8: .4byte 0x085CBF09 +_0809EBDC: .4byte 0x03005A50 +_0809EBE0: .4byte 0x03005AF0 +_0809EBE4: .4byte 0x0809E7D9 +_0809EBE8: + ldr r2, _0809EC14 + movs r0, #2 + ldrsh r1, [r5, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r1, r0, r2 + movs r2, #8 + ldrsh r0, [r1, r2] + cmp r0, #0 + beq _0809ECDC + movs r2, #0xa + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _0809EC18 + ldrb r0, [r5, #2] + bl DestroyTask +_0809EC0C: + movs r0, #2 + strh r0, [r5] + b _0809ECDC + .align 2, 0 +_0809EC14: .4byte 0x03005B60 +_0809EC18: + ldrb r0, [r5, #2] + bl DestroyTask + bl RtcReset + ldr r4, _0809EC60 + movs r1, #0 + ldrsh r0, [r4, r1] + movs r1, #2 + ldrsb r1, [r4, r1] + movs r2, #3 + ldrsb r2, [r4, r2] + movs r3, #4 + ldrsb r3, [r4, r3] + bl RtcCalcLocalTimeOffset + ldr r0, _0809EC64 + ldr r2, [r0] + adds r2, #0xa0 + ldr r0, [r4] + ldr r1, [r4, #4] + str r0, [r2] + str r1, [r2, #4] + ldr r0, _0809EC68 + ldrh r1, [r4] + bl VarSet + bl DisableResetRTC + ldr r0, _0809EC6C + bl ShowMessage + movs r0, #4 + strh r0, [r5] + b _0809ECDC + .align 2, 0 +_0809EC60: .4byte 0x03005A50 +_0809EC64: .4byte 0x03005AF0 +_0809EC68: .4byte 0x00004040 +_0809EC6C: .4byte 0x085CBF1C +_0809EC70: + movs r0, #0 + bl TrySavingData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809EC90 + ldr r0, _0809EC8C + bl ShowMessage + movs r0, #0x49 + bl PlaySE + b _0809EC9C + .align 2, 0 +_0809EC8C: .4byte 0x085CBF43 +_0809EC90: + ldr r0, _0809ECE4 + bl ShowMessage + movs r0, #0x16 + bl PlaySE +_0809EC9C: + movs r0, #5 + strh r0, [r5] +_0809ECA0: + ldr r0, _0809ECE8 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0809ECDC + movs r0, #1 + rsbs r0, r0, #0 + ldr r1, _0809ECEC + str r1, [sp] + movs r1, #1 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + movs r0, #6 + strh r0, [r5] +_0809ECC2: + ldr r0, _0809ECF0 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0809ECDC + adds r0, r4, #0 + bl DestroyTask + bl FreeAllWindowBuffers + bl DoSoftReset +_0809ECDC: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0809ECE4: .4byte 0x085CBF52 +_0809ECE8: .4byte 0x03002360 +_0809ECEC: .4byte 0x0000FFFF +_0809ECF0: .4byte 0x02037C74 + thumb_func_end Task_ResetRtcScreen + diff --git a/asm/reset_save_heap.s b/asm/reset_save_heap.s new file mode 100644 index 0000000..3adc52f --- /dev/null +++ b/asm/reset_save_heap.s @@ -0,0 +1,68 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_0816FEF0 +sub_0816FEF0: @ 0x0816FEF0 + push {r4, r5, lr} + ldr r5, _0816FF68 + ldrh r4, [r5] + movs r0, #0 + strh r0, [r5] + movs r0, #1 + bl RegisterRamReset + movs r0, #0 + movs r1, #0x80 + bl ClearGpuRegBits + strh r4, [r5] + ldr r1, _0816FF6C + ldr r0, _0816FF70 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + bl sub_08153498 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl SetSaveBlocksPointers + bl ResetMenuAndMonGlobals + bl Save_ResetSaveCounters + movs r0, #0 + bl Save_LoadGameData + ldr r0, _0816FF74 + ldrh r0, [r0] + cmp r0, #0 + beq _0816FF40 + cmp r0, #2 + bne _0816FF44 +_0816FF40: + bl Sav2_ClearSetDefault +_0816FF44: + ldr r0, _0816FF78 + ldr r0, [r0] + ldrb r0, [r0, #0x15] + lsls r0, r0, #0x1f + lsrs r0, r0, #0x1f + bl SetPokemonCryStereo + ldr r0, _0816FF7C + movs r1, #0xe0 + lsls r1, r1, #9 + bl InitHeap + ldr r0, _0816FF80 + bl SetMainCallback2 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0816FF68: .4byte 0x04000208 +_0816FF6C: .4byte 0x03002360 +_0816FF70: .4byte 0x00000439 +_0816FF74: .4byte 0x03005F50 +_0816FF78: .4byte 0x03005AF0 +_0816FF7C: .4byte 0x02000000 +_0816FF80: .4byte 0x08085B99 + thumb_func_end sub_0816FEF0 + diff --git a/asm/reshow_battle_screen.s b/asm/reshow_battle_screen.s new file mode 100644 index 0000000..af0c8ba --- /dev/null +++ b/asm/reshow_battle_screen.s @@ -0,0 +1,1123 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start nullsub_35 +nullsub_35: @ 0x080A8BBC + bx lr + .align 2, 0 + thumb_func_end nullsub_35 + + thumb_func_start ReshowBattleScreenAfterMenu +ReshowBattleScreenAfterMenu: @ 0x080A8BC0 + push {lr} + ldr r2, _080A8BF8 + ldrb r0, [r2, #8] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #8] + movs r0, #0 + bl SetHBlankCallback + movs r0, #0 + bl SetVBlankCallback + movs r0, #0x4c + movs r1, #0 + bl SetGpuReg + ldr r0, _080A8BFC + adds r2, r0, #0 + adds r2, #0x21 + movs r1, #0 + strb r1, [r2] + adds r0, #0x22 + strb r1, [r0] + ldr r0, _080A8C00 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080A8BF8: .4byte 0x02037C74 +_080A8BFC: .4byte 0x02024118 +_080A8C00: .4byte 0x080A8C05 + thumb_func_end ReshowBattleScreenAfterMenu + + thumb_func_start CB2_ReshowBattleScreenAfterMenu +CB2_ReshowBattleScreenAfterMenu: @ 0x080A8C04 + push {r4, r5, r6, r7, lr} + sub sp, #8 + ldr r0, _080A8C20 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0x13 + bls _080A8C14 + b _080A8E6C +_080A8C14: + lsls r0, r0, #2 + ldr r1, _080A8C24 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080A8C20: .4byte 0x02024118 +_080A8C24: .4byte 0x080A8C28 +_080A8C28: @ jump table + .4byte _080A8C78 @ case 0 + .4byte _080A8CF4 @ case 1 + .4byte _080A8D0C @ case 2 + .4byte _080A8D12 @ case 3 + .4byte _080A8D18 @ case 4 + .4byte _080A8D28 @ case 5 + .4byte _080A8D2E @ case 6 + .4byte _080A8D56 @ case 7 + .4byte _080A8D5A @ case 8 + .4byte _080A8D5E @ case 9 + .4byte _080A8D62 @ case 10 + .4byte _080A8D80 @ case 11 + .4byte _080A8D88 @ case 12 + .4byte _080A8D90 @ case 13 + .4byte _080A8D98 @ case 14 + .4byte _080A8DA0 @ case 15 + .4byte _080A8DA8 @ case 16 + .4byte _080A8DB0 @ case 17 + .4byte _080A8DB8 @ case 18 + .4byte _080A8DC0 @ case 19 +_080A8C78: + bl ScanlineEffect_Clear + bl BattleInitBgsAndWindows + movs r0, #1 + movs r1, #1 + movs r2, #0 + bl SetBgAttribute + movs r0, #2 + movs r1, #1 + movs r2, #0 + bl SetBgAttribute + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg + bl ResetPaletteFade + ldr r0, _080A8CD4 + movs r1, #0 + strh r1, [r0] + ldr r0, _080A8CD8 + strh r1, [r0] + ldr r0, _080A8CDC + strh r1, [r0] + ldr r0, _080A8CE0 + strh r1, [r0] + ldr r0, _080A8CE4 + strh r1, [r0] + ldr r0, _080A8CE8 + strh r1, [r0] + ldr r0, _080A8CEC + strh r1, [r0] + ldr r0, _080A8CF0 + strh r1, [r0] + b _080A8E9A + .align 2, 0 +_080A8CD4: .4byte 0x02022AC8 +_080A8CD8: .4byte 0x02022ACA +_080A8CDC: .4byte 0x02022ACC +_080A8CE0: .4byte 0x02022ACE +_080A8CE4: .4byte 0x02022AD0 +_080A8CE8: .4byte 0x02022AD2 +_080A8CEC: .4byte 0x02022AD4 +_080A8CF0: .4byte 0x02022AD6 +_080A8CF4: + movs r0, #0 + str r0, [sp, #4] + movs r1, #0xc0 + lsls r1, r1, #0x13 + ldr r2, _080A8D08 + add r0, sp, #4 + bl CpuFastSet + b _080A8E9A + .align 2, 0 +_080A8D08: .4byte 0x01006000 +_080A8D0C: + bl LoadBattleTextboxAndBackground + b _080A8E9A +_080A8D12: + bl ResetSpriteData + b _080A8E9A +_080A8D18: + bl FreeAllSpritePalettes + ldr r1, _080A8D24 + movs r0, #4 + strb r0, [r1] + b _080A8E9A + .align 2, 0 +_080A8D24: .4byte 0x030030BC +_080A8D28: + bl ClearSpritesHealthboxAnimData + b _080A8E9A +_080A8D2E: + ldr r5, _080A8D48 + adds r4, r5, #0 + adds r4, #0x22 + ldrb r0, [r4] + bl BattleLoadAllHealthBoxesGfx + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A8D4C + movs r0, #0 + strb r0, [r4] + b _080A8E9A + .align 2, 0 +_080A8D48: .4byte 0x02024118 +_080A8D4C: + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + adds r1, r5, #0 + b _080A8D72 +_080A8D56: + movs r0, #0 + b _080A8D64 +_080A8D5A: + movs r0, #1 + b _080A8D64 +_080A8D5E: + movs r0, #2 + b _080A8D64 +_080A8D62: + movs r0, #3 +_080A8D64: + bl LoadBattlerSpriteGfx + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A8D70 + b _080A8E9A +_080A8D70: + ldr r1, _080A8D7C +_080A8D72: + adds r1, #0x21 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + b _080A8E9A + .align 2, 0 +_080A8D7C: .4byte 0x02024118 +_080A8D80: + movs r0, #0 + bl CreateBattlerSprite + b _080A8E9A +_080A8D88: + movs r0, #1 + bl CreateBattlerSprite + b _080A8E9A +_080A8D90: + movs r0, #2 + bl CreateBattlerSprite + b _080A8E9A +_080A8D98: + movs r0, #3 + bl CreateBattlerSprite + b _080A8E9A +_080A8DA0: + movs r0, #0 + bl CreateHealthboxSprite + b _080A8E9A +_080A8DA8: + movs r0, #1 + bl CreateHealthboxSprite + b _080A8E9A +_080A8DB0: + movs r0, #2 + bl CreateHealthboxSprite + b _080A8E9A +_080A8DB8: + movs r0, #3 + bl CreateHealthboxSprite + b _080A8E9A +_080A8DC0: + bl LoadAndCreateEnemyShadowSprites + movs r0, #1 + bl GetBattlerAtPosition + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r7, _080A8E54 + lsls r0, r4, #1 + adds r0, r0, r7 + ldrh r0, [r0] + movs r6, #0x64 + muls r0, r6, r0 + ldr r5, _080A8E58 + adds r0, r0, r5 + movs r1, #0xb + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl SetBattlerShadowSpriteCallback + bl IsDoubleBattle + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A8E24 + movs r0, #3 + bl GetBattlerAtPosition + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r4, #1 + adds r0, r0, r7 + ldrh r0, [r0] + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #0xb + bl GetMonData + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl SetBattlerShadowSpriteCallback +_080A8E24: + ldr r1, _080A8E5C + ldr r0, _080A8E60 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0 + bl SetCB2ToReshowScreenAfterMenu + ldr r0, _080A8E64 + ldrb r0, [r0] + cmp r0, #0 + beq _080A8E9A + ldr r0, _080A8E68 + ldrb r0, [r0] + cmp r0, #0 + beq _080A8E9A + bl LoadWirelessStatusIndicatorSpriteGfx + movs r0, #0 + movs r1, #0 + bl CreateWirelessStatusIndicatorSprite + b _080A8E9A + .align 2, 0 +_080A8E54: .4byte 0x02023D12 +_080A8E58: .4byte 0x020243E8 +_080A8E5C: .4byte 0x02024150 +_080A8E60: .4byte 0x0202415C +_080A8E64: .4byte 0x0300319C +_080A8E68: .4byte 0x030031C4 +_080A8E6C: + ldr r0, _080A8EAC + bl SetVBlankCallback + bl sub_080A8EBC + movs r0, #1 + str r0, [sp] + movs r0, #0xff + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginHardwarePaletteFade + ldr r2, _080A8EB0 + ldrb r1, [r2, #8] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #8] + ldr r0, _080A8EB4 + bl SetMainCallback2 + bl sub_0805EB30 +_080A8E9A: + ldr r1, _080A8EB8 + adds r1, #0x21 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + add sp, #8 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A8EAC: .4byte 0x080386DD +_080A8EB0: .4byte 0x02037C74 +_080A8EB4: .4byte 0x080380FD +_080A8EB8: .4byte 0x02024118 + thumb_func_end CB2_ReshowBattleScreenAfterMenu + + thumb_func_start sub_080A8EBC +sub_080A8EBC: @ 0x080A8EBC + ldr r3, _080A8ED4 + ldrb r2, [r3] + movs r1, #0xd + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3] + ldr r2, _080A8ED8 + ldrb r0, [r2] + ands r1, r0 + strb r1, [r2] + bx lr + .align 2, 0 +_080A8ED4: .4byte 0x0400000A +_080A8ED8: .4byte 0x0400000C + thumb_func_end sub_080A8EBC + + thumb_func_start LoadBattlerSpriteGfx +LoadBattlerSpriteGfx: @ 0x080A8EDC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080A8F24 + ldrb r0, [r0] + cmp r4, r0 + bhs _080A8FC4 + adds r0, r4, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A8F3E + ldr r0, _080A8F28 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r4, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _080A8F34 + ldr r1, _080A8F2C + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080A8F30 + adds r0, r0, r1 + adds r1, r4, #0 + bl BattleLoadOpponentMonSpriteGfx + b _080A8FBC + .align 2, 0 +_080A8F24: .4byte 0x02023D10 +_080A8F28: .4byte 0x02024174 +_080A8F2C: .4byte 0x02023D12 +_080A8F30: .4byte 0x020243E8 +_080A8F34: + adds r0, r4, #0 + movs r1, #0 + bl BattleLoadSubstituteOrMonSpriteGfx + b _080A8FBC +_080A8F3E: + ldr r0, _080A8F58 + ldr r1, [r0] + movs r2, #0x80 + ands r1, r2 + cmp r1, #0 + beq _080A8F60 + cmp r4, #0 + bne _080A8F60 + ldr r0, _080A8F5C + ldr r0, [r0] + ldrb r0, [r0, #8] + b _080A8F72 + .align 2, 0 +_080A8F58: .4byte 0x02022C90 +_080A8F5C: .4byte 0x03005AF0 +_080A8F60: + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #2 + ands r0, r1 + cmp r0, #0 + beq _080A8F7A + cmp r4, #0 + bne _080A8F7A + movs r0, #6 +_080A8F72: + movs r1, #0 + bl DecompressTrainerBackPic + b _080A8FBC +_080A8F7A: + ldr r0, _080A8FA8 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r4, #2 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _080A8FB4 + ldr r1, _080A8FAC + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080A8FB0 + adds r0, r0, r1 + adds r1, r4, #0 + bl BattleLoadPlayerMonSpriteGfx + b _080A8FBC + .align 2, 0 +_080A8FA8: .4byte 0x02024174 +_080A8FAC: .4byte 0x02023D12 +_080A8FB0: .4byte 0x02024190 +_080A8FB4: + adds r0, r4, #0 + movs r1, #0 + bl BattleLoadSubstituteOrMonSpriteGfx +_080A8FBC: + ldr r0, _080A8FCC + adds r0, #0x22 + movs r1, #0 + strb r1, [r0] +_080A8FC4: + movs r0, #1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080A8FCC: .4byte 0x02024118 + thumb_func_end LoadBattlerSpriteGfx + + thumb_func_start CreateBattlerSprite +CreateBattlerSprite: @ 0x080A8FD0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _080A9008 + ldrb r0, [r0] + cmp r7, r0 + blo _080A8FEA + b _080A9368 +_080A8FEA: + ldr r0, _080A900C + ldr r0, [r0] + ldr r0, [r0] + lsls r2, r7, #2 + adds r0, r2, r0 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + str r2, [sp] + cmp r0, #0 + beq _080A9010 + adds r0, r7, #0 + bl GetSubstituteSpriteDefault_Y + b _080A9016 + .align 2, 0 +_080A9008: .4byte 0x02023D10 +_080A900C: .4byte 0x02024174 +_080A9010: + adds r0, r7, #0 + bl GetBattlerSpriteDefault_Y +_080A9016: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + adds r0, r7, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A902A + b _080A9134 +_080A902A: + ldr r1, _080A9114 + lsls r0, r7, #1 + adds r6, r0, r1 + ldrh r0, [r6] + movs r1, #0x64 + mov sl, r1 + mov r2, sl + muls r2, r0, r2 + adds r0, r2, #0 + ldr r1, _080A9118 + mov sb, r1 + add r0, sb + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + bne _080A904E + b _080A9368 +_080A904E: + ldrh r0, [r6] + mov r2, sl + muls r2, r0, r2 + adds r0, r2, #0 + add r0, sb + movs r1, #0xb + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r7, #0 + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl SetMultiuseSpriteTemplateToPokemon + ldr r5, _080A911C + adds r0, r7, #0 + movs r1, #2 + bl GetBattlerSpriteCoord + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r7, #0 + bl GetBattlerSpriteSubpriority + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r5, #0 + adds r1, r4, #0 + mov r2, r8 + bl CreateSprite + ldr r1, _080A9120 + adds r4, r7, r1 + strb r0, [r4] + ldr r5, _080A9124 + ldrb r0, [r4] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + lsls r3, r7, #4 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #5] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r5, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _080A9128 + str r1, [r0] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r7, [r0, #0x2e] + ldrh r0, [r6] + mov r1, sl + muls r1, r0, r1 + adds r0, r1, #0 + add r0, sb + movs r1, #0xb + bl GetMonData + ldrb r2, [r4] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r5 + strh r0, [r1, #0x32] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _080A912C + adds r1, r7, r1 + ldrb r1, [r1] + bl StartSpriteAnim + ldr r0, _080A9130 + ldr r0, [r0] + ldr r0, [r0] + ldr r2, [sp] + adds r0, r2, r0 + b _080A9318 + .align 2, 0 +_080A9114: .4byte 0x02023D12 +_080A9118: .4byte 0x020243E8 +_080A911C: .4byte 0x02024640 +_080A9120: .4byte 0x02023E88 +_080A9124: .4byte 0x020205AC +_080A9128: .4byte 0x08007141 +_080A912C: .4byte 0x02024188 +_080A9130: .4byte 0x02024174 +_080A9134: + ldr r0, _080A9188 + ldr r1, [r0] + movs r2, #0x80 + ands r1, r2 + cmp r1, #0 + beq _080A9198 + cmp r7, #0 + bne _080A9198 + ldr r5, _080A918C + ldr r0, [r5] + ldrb r4, [r0, #8] + movs r0, #0 + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl SetMultiuseSpriteTemplateToTrainerBack + ldr r6, _080A9190 + ldr r1, _080A9194 + ldr r0, [r5] + ldrb r0, [r0, #8] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0] + movs r4, #8 + subs r4, r4, r0 + lsls r4, r4, #0x12 + movs r0, #0xa0 + lsls r0, r0, #0xf + adds r4, r4, r0 + asrs r4, r4, #0x10 + movs r0, #0 + bl GetBattlerSpriteSubpriority + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r6, #0 + b _080A91DC + .align 2, 0 +_080A9188: .4byte 0x02022C90 +_080A918C: .4byte 0x03005AF0 +_080A9190: .4byte 0x02024640 +_080A9194: .4byte 0x082D95BC +_080A9198: + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #2 + ands r0, r1 + cmp r0, #0 + beq _080A9230 + cmp r7, #0 + bne _080A9230 + movs r0, #0 + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #6 + bl SetMultiuseSpriteTemplateToTrainerBack + ldr r5, _080A921C + ldr r0, _080A9220 + ldrb r0, [r0, #0x18] + movs r4, #8 + subs r4, r4, r0 + lsls r4, r4, #0x12 + movs r1, #0xa0 + lsls r1, r1, #0xf + adds r4, r4, r1 + asrs r4, r4, #0x10 + movs r0, #0 + bl GetBattlerSpriteSubpriority + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r5, #0 +_080A91DC: + movs r1, #0x50 + adds r2, r4, #0 + bl CreateSprite + ldr r3, _080A9224 + strb r0, [r3] + ldr r4, _080A9228 + ldrb r0, [r3] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + strb r0, [r1, #5] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _080A922C + str r1, [r0] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + strh r7, [r0, #0x2e] + b _080A9338 + .align 2, 0 +_080A921C: .4byte 0x02024640 +_080A9220: .4byte 0x082D95BC +_080A9224: .4byte 0x02023E88 +_080A9228: .4byte 0x020205AC +_080A922C: .4byte 0x08007141 +_080A9230: + ldr r1, _080A9378 + lsls r0, r7, #1 + adds r6, r0, r1 + ldrh r0, [r6] + movs r2, #0x64 + mov sl, r2 + mov r1, sl + muls r1, r0, r1 + adds r0, r1, #0 + ldr r2, _080A937C + mov sb, r2 + add r0, sb + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + bne _080A9254 + b _080A9368 +_080A9254: + ldrh r0, [r6] + mov r1, sl + muls r1, r0, r1 + adds r0, r1, #0 + add r0, sb + movs r1, #0xb + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r7, #0 + bl GetBattlerPosition + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl SetMultiuseSpriteTemplateToPokemon + ldr r5, _080A9380 + adds r0, r7, #0 + movs r1, #2 + bl GetBattlerSpriteCoord + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r7, #0 + bl GetBattlerSpriteSubpriority + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r0, r5, #0 + adds r1, r4, #0 + mov r2, r8 + bl CreateSprite + ldr r1, _080A9384 + adds r4, r7, r1 + strb r0, [r4] + ldr r5, _080A9388 + ldrb r0, [r4] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + lsls r3, r7, #4 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #5] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r5, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _080A938C + str r1, [r0] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r7, [r0, #0x2e] + ldrh r0, [r6] + mov r2, sl + muls r2, r0, r2 + adds r0, r2, #0 + add r0, sb + movs r1, #0xb + bl GetMonData + ldrb r2, [r4] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r5 + strh r0, [r1, #0x32] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, _080A9390 + adds r1, r7, r1 + ldrb r1, [r1] + bl StartSpriteAnim + ldr r0, _080A9394 + ldr r0, [r0] + ldr r0, [r0] + ldr r1, [sp] + adds r0, r1, r0 +_080A9318: + ldrh r1, [r0, #2] + ldr r0, _080A9398 + cmp r1, r0 + bne _080A9338 + ldrb r0, [r4] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r0, r5, #0 + adds r0, #8 + adds r1, r1, r0 + ldr r0, _080A939C + ldr r2, _080A93A0 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] +_080A9338: + ldr r1, _080A9388 + ldr r0, _080A9384 + adds r0, r7, r0 + ldrb r0, [r0] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r1 + ldr r0, _080A9394 + ldr r0, [r0] + ldr r0, [r0] + ldr r1, [sp] + adds r0, r1, r0 + ldr r1, [r0] + lsls r1, r1, #0x1f + adds r2, #0x3e + lsrs r1, r1, #0x1f + lsls r1, r1, #2 + ldrb r3, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] +_080A9368: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A9378: .4byte 0x02023D12 +_080A937C: .4byte 0x02024190 +_080A9380: .4byte 0x02024640 +_080A9384: .4byte 0x02023E88 +_080A9388: .4byte 0x020205AC +_080A938C: .4byte 0x08007141 +_080A9390: .4byte 0x02024188 +_080A9394: .4byte 0x02024174 +_080A9398: .4byte 0x00000181 +_080A939C: .4byte 0x082DD33C +_080A93A0: .4byte 0x00000604 + thumb_func_end CreateBattlerSprite + + thumb_func_start CreateHealthboxSprite +CreateHealthboxSprite: @ 0x080A93A4 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _080A93CC + ldrb r0, [r0] + cmp r5, r0 + blo _080A93B4 + b _080A9526 +_080A93B4: + ldr r0, _080A93D0 + ldr r1, [r0] + movs r2, #0x80 + ands r1, r2 + cmp r1, #0 + beq _080A93D4 + cmp r5, #0 + bne _080A93D4 + bl CreateSafariPlayerHealthboxSprites + b _080A93EC + .align 2, 0 +_080A93CC: .4byte 0x02023D10 +_080A93D0: .4byte 0x02022C90 +_080A93D4: + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #2 + ands r0, r1 + cmp r0, #0 + beq _080A93E6 + cmp r5, #0 + bne _080A93E6 + b _080A9526 +_080A93E6: + adds r0, r5, #0 + bl CreateBattlerHealthboxSprites +_080A93EC: + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _080A9428 + adds r4, r5, r0 + strb r6, [r4] + adds r0, r5, #0 + bl InitBattlerHealthboxCoords + adds r0, r6, #0 + bl SetHealthboxSpriteVisible + adds r0, r5, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A9434 + ldrb r0, [r4] + ldr r1, _080A942C + lsls r4, r5, #1 + adds r1, r4, r1 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _080A9430 + adds r1, r1, r2 + movs r2, #0 + bl UpdateHealthboxAttribute + b _080A9480 + .align 2, 0 +_080A9428: .4byte 0x03005AD0 +_080A942C: .4byte 0x02023D12 +_080A9430: .4byte 0x020243E8 +_080A9434: + ldr r0, _080A945C + ldr r0, [r0] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A9468 + ldrb r0, [r4] + ldr r1, _080A9460 + lsls r4, r5, #1 + adds r1, r4, r1 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _080A9464 + adds r1, r1, r2 + movs r2, #0xa + bl UpdateHealthboxAttribute + b _080A9480 + .align 2, 0 +_080A945C: .4byte 0x02022C90 +_080A9460: .4byte 0x02023D12 +_080A9464: .4byte 0x02024190 +_080A9468: + ldrb r0, [r4] + ldr r1, _080A94AC + lsls r4, r5, #1 + adds r1, r4, r1 + ldrh r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + ldr r2, _080A94B0 + adds r1, r1, r2 + movs r2, #0 + bl UpdateHealthboxAttribute +_080A9480: + adds r0, r5, #0 + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + beq _080A949C + adds r0, r5, #0 + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _080A94B8 +_080A949C: + ldr r0, _080A94B4 + adds r0, r5, r0 + ldrb r0, [r0] + movs r1, #1 + bl DummyBattleInterfaceFunc + b _080A94C4 + .align 2, 0 +_080A94AC: .4byte 0x02023D12 +_080A94B0: .4byte 0x02024190 +_080A94B4: .4byte 0x03005AD0 +_080A94B8: + ldr r0, _080A94F0 + adds r0, r5, r0 + ldrb r0, [r0] + movs r1, #0 + bl DummyBattleInterfaceFunc +_080A94C4: + adds r0, r5, #0 + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A94FC + ldr r0, _080A94F4 + adds r0, r4, r0 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080A94F8 + adds r0, r0, r1 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + bne _080A9526 + adds r0, r6, #0 + bl SetHealthboxSpriteInvisible + b _080A9526 + .align 2, 0 +_080A94F0: .4byte 0x03005AD0 +_080A94F4: .4byte 0x02023D12 +_080A94F8: .4byte 0x020243E8 +_080A94FC: + ldr r0, _080A952C + ldr r0, [r0] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080A9526 + ldr r0, _080A9530 + adds r0, r4, r0 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080A9534 + adds r0, r0, r1 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + bne _080A9526 + adds r0, r6, #0 + bl SetHealthboxSpriteInvisible +_080A9526: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080A952C: .4byte 0x02022C90 +_080A9530: .4byte 0x02023D12 +_080A9534: .4byte 0x02024190 + thumb_func_end CreateHealthboxSprite + diff --git a/asm/roamer.s b/asm/roamer.s new file mode 100644 index 0000000..85061aa --- /dev/null +++ b/asm/roamer.s @@ -0,0 +1,543 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ClearRoamerData +ClearRoamerData: @ 0x08161A48 + push {r4, r5, lr} + ldr r5, _08161A68 + ldr r0, [r5] + ldr r4, _08161A6C + adds r0, r0, r4 + movs r1, #0 + movs r2, #0x1c + bl memset + ldr r0, [r5] + adds r0, r0, r4 + ldr r1, _08161A70 + strh r1, [r0, #8] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08161A68: .4byte 0x03005AEC +_08161A6C: .4byte 0x000031DC +_08161A70: .4byte 0x00000197 + thumb_func_end ClearRoamerData + + thumb_func_start ClearRoamerLocationData +ClearRoamerLocationData: @ 0x08161A74 + push {r4, r5, r6, lr} + movs r2, #0 + ldr r6, _08161AA0 + ldr r4, _08161AA4 + movs r3, #0 + adds r5, r4, #1 +_08161A80: + lsls r1, r2, #1 + adds r0, r1, r4 + strb r3, [r0] + adds r1, r1, r5 + strb r3, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #2 + bls _08161A80 + movs r0, #0 + strb r0, [r6] + strb r0, [r6, #1] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08161AA0: .4byte 0x0203B952 +_08161AA4: .4byte 0x0203B94C + thumb_func_end ClearRoamerLocationData + + thumb_func_start CreateInitialRoamerMon +CreateInitialRoamerMon: @ 0x08161AA8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x10 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08161AD0 + ldr r0, _08161AC4 + ldr r1, [r0] + ldr r2, _08161AC8 + adds r1, r1, r2 + ldr r2, _08161ACC + b _08161ADC + .align 2, 0 +_08161AC4: .4byte 0x03005AEC +_08161AC8: .4byte 0x000031DC +_08161ACC: .4byte 0x00000197 +_08161AD0: + ldr r0, _08161BBC + ldr r1, [r0] + ldr r2, _08161BC0 + adds r1, r1, r2 + movs r2, #0xcc + lsls r2, r2, #1 +_08161ADC: + strh r2, [r1, #8] + adds r7, r0, #0 + ldr r6, _08161BC4 + ldr r0, [r7] + ldr r5, _08161BC0 + adds r0, r0, r5 + ldrh r1, [r0, #8] + movs r4, #0 + str r4, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + str r4, [sp, #0xc] + adds r0, r6, #0 + movs r2, #0x28 + movs r3, #0x20 + bl CreateMon + ldr r0, [r7] + adds r0, r0, r5 + movs r1, #0x28 + strb r1, [r0, #0xc] + ldr r0, [r7] + adds r0, r0, r5 + strb r4, [r0, #0xd] + ldr r0, [r7] + adds r0, r0, r5 + movs r1, #1 + strb r1, [r0, #0x13] + adds r0, r6, #0 + movs r1, #0x42 + bl GetMonData + ldr r1, [r7] + adds r1, r1, r5 + str r0, [r1] + adds r0, r6, #0 + movs r1, #0 + bl GetMonData + ldr r1, [r7] + adds r1, r1, r5 + str r0, [r1, #4] + adds r0, r6, #0 + movs r1, #0x3a + bl GetMonData + ldr r1, [r7] + adds r1, r1, r5 + movs r2, #0 + mov r8, r2 + strh r0, [r1, #0xa] + adds r0, r6, #0 + movs r1, #0x16 + bl GetMonData + ldr r1, [r7] + adds r1, r1, r5 + strb r0, [r1, #0xe] + adds r0, r6, #0 + movs r1, #0x17 + bl GetMonData + ldr r1, [r7] + adds r1, r1, r5 + strb r0, [r1, #0xf] + adds r0, r6, #0 + movs r1, #0x18 + bl GetMonData + ldr r1, [r7] + adds r1, r1, r5 + strb r0, [r1, #0x10] + adds r0, r6, #0 + movs r1, #0x21 + bl GetMonData + ldr r1, [r7] + adds r1, r1, r5 + strb r0, [r1, #0x11] + adds r0, r6, #0 + movs r1, #0x2f + bl GetMonData + ldr r1, [r7] + adds r1, r1, r5 + strb r0, [r1, #0x12] + ldr r4, _08161BC8 + mov r0, r8 + strb r0, [r4] + bl Random + ldr r5, _08161BCC + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x14 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + adds r1, r1, r5 + ldrb r0, [r1] + strb r0, [r4, #1] + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08161BBC: .4byte 0x03005AEC +_08161BC0: .4byte 0x000031DC +_08161BC4: .4byte 0x020243E8 +_08161BC8: .4byte 0x0203B952 +_08161BCC: .4byte 0x085ADB74 + thumb_func_end CreateInitialRoamerMon + + thumb_func_start InitRoamer +InitRoamer: @ 0x08161BD0 + push {lr} + bl ClearRoamerData + bl ClearRoamerLocationData + ldr r0, _08161BE8 + ldrh r0, [r0] + bl CreateInitialRoamerMon + pop {r0} + bx r0 + .align 2, 0 +_08161BE8: .4byte 0x02037280 + thumb_func_end InitRoamer + + thumb_func_start UpdateLocationHistoryForRoamer +UpdateLocationHistoryForRoamer: @ 0x08161BEC + ldr r0, _08161C0C + ldrb r1, [r0, #2] + strb r1, [r0, #4] + ldrb r1, [r0, #3] + strb r1, [r0, #5] + ldrb r1, [r0] + strb r1, [r0, #2] + ldrb r1, [r0, #1] + strb r1, [r0, #3] + ldr r1, _08161C10 + ldr r2, [r1] + ldrb r1, [r2, #4] + strb r1, [r0] + ldrb r1, [r2, #5] + strb r1, [r0, #1] + bx lr + .align 2, 0 +_08161C0C: .4byte 0x0203B94C +_08161C10: .4byte 0x03005AEC + thumb_func_end UpdateLocationHistoryForRoamer + + thumb_func_start RoamerMoveToOtherLocationSet +RoamerMoveToOtherLocationSet: @ 0x08161C14 + push {r4, r5, lr} + movs r1, #0 + ldr r0, _08161C58 + ldr r0, [r0] + ldr r2, _08161C5C + adds r0, r0, r2 + ldrb r0, [r0, #0x13] + cmp r0, #0 + beq _08161C52 + ldr r0, _08161C60 + strb r1, [r0] + ldr r5, _08161C64 + adds r4, r0, #0 +_08161C2E: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x14 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + adds r1, r1, r5 + ldrb r1, [r1] + ldrb r0, [r4, #1] + cmp r0, r1 + beq _08161C2E + strb r1, [r4, #1] +_08161C52: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08161C58: .4byte 0x03005AEC +_08161C5C: .4byte 0x000031DC +_08161C60: .4byte 0x0203B952 +_08161C64: .4byte 0x085ADB74 + thumb_func_end RoamerMoveToOtherLocationSet + + thumb_func_start RoamerMove +RoamerMove: @ 0x08161C68 + push {r4, r5, r6, r7, lr} + movs r4, #0 + bl Random + lsls r0, r0, #0x10 + movs r1, #0xf0 + lsls r1, r1, #0xc + ands r1, r0 + cmp r1, #0 + bne _08161C82 + bl RoamerMoveToOtherLocationSet + b _08161CF6 +_08161C82: + ldr r0, _08161CD8 + ldr r0, [r0] + ldr r1, _08161CDC + adds r0, r0, r1 + ldrb r0, [r0, #0x13] + cmp r0, #0 + beq _08161CF6 + ldr r7, _08161CE0 + ldr r3, _08161CE4 +_08161C94: + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r2, r0, #1 + adds r1, r2, r3 + ldrb r0, [r7, #1] + ldrb r1, [r1] + cmp r0, r1 + bne _08161CEC + ldr r6, _08161CE4 + adds r5, r2, #1 + ldr r4, _08161CE8 +_08161CAA: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #5 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r0, r0, r5 + adds r0, r0, r6 + ldrb r1, [r0] + ldrb r0, [r4, #4] + cmp r0, #0 + bne _08161CCE + ldrb r0, [r4, #5] + cmp r0, r1 + beq _08161CAA +_08161CCE: + cmp r1, #0xff + beq _08161CAA + strb r1, [r7, #1] + b _08161CF6 + .align 2, 0 +_08161CD8: .4byte 0x03005AEC +_08161CDC: .4byte 0x000031DC +_08161CE0: .4byte 0x0203B952 +_08161CE4: .4byte 0x085ADB74 +_08161CE8: .4byte 0x0203B94C +_08161CEC: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x13 + bls _08161C94 +_08161CF6: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end RoamerMove + + thumb_func_start IsRoamerAt +IsRoamerAt: @ 0x08161CFC + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, _08161D28 + ldr r0, [r0] + ldr r3, _08161D2C + adds r0, r0, r3 + ldrb r0, [r0, #0x13] + cmp r0, #0 + beq _08161D34 + ldr r0, _08161D30 + ldrb r3, [r0] + cmp r2, r3 + bne _08161D34 + ldrb r0, [r0, #1] + cmp r1, r0 + bne _08161D34 + movs r0, #1 + b _08161D36 + .align 2, 0 +_08161D28: .4byte 0x03005AEC +_08161D2C: .4byte 0x000031DC +_08161D30: .4byte 0x0203B952 +_08161D34: + movs r0, #0 +_08161D36: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsRoamerAt + + thumb_func_start CreateRoamerMonInstance +CreateRoamerMonInstance: @ 0x08161D3C + push {r4, r5, lr} + sub sp, #4 + ldr r5, _08161DC8 + bl ZeroEnemyPartyMons + ldr r4, _08161DCC + ldr r0, [r4] + ldr r1, _08161DD0 + adds r0, r0, r1 + ldrh r1, [r0, #8] + ldrb r2, [r0, #0xc] + ldr r3, [r0] + ldr r0, [r0, #4] + str r0, [sp] + adds r0, r5, #0 + bl CreateMonWithIVsPersonality + ldr r2, [r4] + ldr r0, _08161DD4 + adds r2, r2, r0 + adds r0, r5, #0 + movs r1, #0x37 + bl SetMonData + ldr r2, [r4] + ldr r1, _08161DD8 + adds r2, r2, r1 + adds r0, r5, #0 + movs r1, #0x39 + bl SetMonData + ldr r2, [r4] + ldr r0, _08161DDC + adds r2, r2, r0 + adds r0, r5, #0 + movs r1, #0x16 + bl SetMonData + ldr r2, [r4] + ldr r1, _08161DE0 + adds r2, r2, r1 + adds r0, r5, #0 + movs r1, #0x17 + bl SetMonData + ldr r2, [r4] + ldr r0, _08161DE4 + adds r2, r2, r0 + adds r0, r5, #0 + movs r1, #0x18 + bl SetMonData + ldr r2, [r4] + ldr r1, _08161DE8 + adds r2, r2, r1 + adds r0, r5, #0 + movs r1, #0x21 + bl SetMonData + ldr r2, [r4] + ldr r0, _08161DEC + adds r2, r2, r0 + adds r0, r5, #0 + movs r1, #0x2f + bl SetMonData + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08161DC8: .4byte 0x020243E8 +_08161DCC: .4byte 0x03005AEC +_08161DD0: .4byte 0x000031DC +_08161DD4: .4byte 0x000031E9 +_08161DD8: .4byte 0x000031E6 +_08161DDC: .4byte 0x000031EA +_08161DE0: .4byte 0x000031EB +_08161DE4: .4byte 0x000031EC +_08161DE8: .4byte 0x000031ED +_08161DEC: .4byte 0x000031EE + thumb_func_end CreateRoamerMonInstance + + thumb_func_start TryStartRoamerEncounter +TryStartRoamerEncounter: @ 0x08161DF0 + push {lr} + ldr r0, _08161E20 + ldr r1, [r0] + ldrb r0, [r1, #4] + ldrb r1, [r1, #5] + bl IsRoamerAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08161E24 + bl Random + lsls r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r0 + cmp r1, #0 + bne _08161E24 + bl CreateRoamerMonInstance + movs r0, #1 + b _08161E26 + .align 2, 0 +_08161E20: .4byte 0x03005AEC +_08161E24: + movs r0, #0 +_08161E26: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TryStartRoamerEncounter + + thumb_func_start UpdateRoamerHPStatus +UpdateRoamerHPStatus: @ 0x08161E2C + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r1, #0x39 + bl GetMonData + ldr r5, _08161E58 + ldr r1, [r5] + ldr r4, _08161E5C + adds r1, r1, r4 + strh r0, [r1, #0xa] + adds r0, r6, #0 + movs r1, #0x37 + bl GetMonData + ldr r1, [r5] + adds r1, r1, r4 + strb r0, [r1, #0xd] + bl RoamerMoveToOtherLocationSet + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08161E58: .4byte 0x03005AEC +_08161E5C: .4byte 0x000031DC + thumb_func_end UpdateRoamerHPStatus + + thumb_func_start SetRoamerInactive +SetRoamerInactive: @ 0x08161E60 + ldr r0, _08161E70 + ldr r0, [r0] + ldr r1, _08161E74 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0, #0x13] + bx lr + .align 2, 0 +_08161E70: .4byte 0x03005AEC +_08161E74: .4byte 0x000031DC + thumb_func_end SetRoamerInactive + + thumb_func_start GetRoamerLocation +GetRoamerLocation: @ 0x08161E78 + ldr r3, _08161E84 + ldrb r2, [r3] + strb r2, [r0] + ldrb r0, [r3, #1] + strb r0, [r1] + bx lr + .align 2, 0 +_08161E84: .4byte 0x0203B952 + thumb_func_end GetRoamerLocation + diff --git a/asm/rock.s b/asm/rock.s new file mode 100644 index 0000000..269e5be --- /dev/null +++ b/asm/rock.s @@ -0,0 +1,1543 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_08111240 +sub_08111240: @ 0x08111240 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, _081112AC + movs r1, #6 + ldrsh r0, [r6, r1] + cmp r0, #0 + beq _08111260 + ldr r0, _081112B0 + ldrb r0, [r0] + adds r2, r5, #0 + adds r2, #0x20 + adds r3, r5, #0 + adds r3, #0x22 + movs r1, #0 + bl SetAverageBattlerPositions +_08111260: + ldrh r0, [r6] + ldrh r1, [r5, #0x20] + adds r0, r0, r1 + movs r4, #0 + strh r0, [r5, #0x20] + ldrh r0, [r5, #0x22] + adds r0, #0xe + strh r0, [r5, #0x22] + ldrb r1, [r6, #2] + adds r0, r5, #0 + bl StartSpriteAnim + adds r0, r5, #0 + bl AnimateSprite + strh r4, [r5, #0x2e] + strh r4, [r5, #0x30] + movs r0, #4 + strh r0, [r5, #0x32] + movs r0, #0x10 + strh r0, [r5, #0x34] + ldr r0, _081112B4 + strh r0, [r5, #0x36] + ldrh r0, [r6, #4] + strh r0, [r5, #0x38] + ldr r1, _081112B8 + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + ldr r1, _081112BC + str r1, [r5, #0x1c] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081112AC: .4byte 0x020380BE +_081112B0: .4byte 0x020380D7 +_081112B4: .4byte 0x0000FFBA +_081112B8: .4byte 0x081112C1 +_081112BC: .4byte 0x080A5D19 + thumb_func_end sub_08111240 + + thumb_func_start sub_081112C0 +sub_081112C0: @ 0x081112C0 + 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, #4 + strh r0, [r4, #0x32] + movs r0, #0x20 + strh r0, [r4, #0x34] + ldr r0, _081112F8 + strh r0, [r4, #0x36] + ldr r1, _081112FC + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + ldr r1, _08111300 + str r1, [r4, #0x1c] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081112F8: .4byte 0x0000FFE8 +_081112FC: .4byte 0x080A6015 +_08111300: .4byte 0x080A5D19 + thumb_func_end sub_081112C0 + + thumb_func_start sub_08111304 +sub_08111304: @ 0x08111304 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0811132C + ldrb r1, [r4, #0xa] + bl StartSpriteAnim + adds r0, r5, #0 + bl AnimateSprite + ldr r0, _08111330 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08111334 + ldrh r0, [r5, #0x20] + ldrh r1, [r4] + subs r0, r0, r1 + b _0811133A + .align 2, 0 +_0811132C: .4byte 0x020380BE +_08111330: .4byte 0x020380D6 +_08111334: + ldrh r0, [r4] + ldrh r1, [r5, #0x20] + adds r0, r0, r1 +_0811133A: + strh r0, [r5, #0x20] + ldr r3, _0811137C + ldrh r2, [r3, #2] + ldrh r0, [r5, #0x22] + adds r2, r2, r0 + movs r4, #0 + strh r2, [r5, #0x22] + ldrh r0, [r3, #8] + strh r0, [r5, #0x2e] + ldrh r0, [r5, #0x20] + strh r0, [r5, #0x30] + ldrh r1, [r3, #4] + adds r0, r0, r1 + strh r0, [r5, #0x32] + strh r2, [r5, #0x34] + ldrh r0, [r3, #6] + adds r2, r2, r0 + strh r2, [r5, #0x36] + adds r0, r5, #0 + bl InitSpriteDataForLinearTranslation + strh r4, [r5, #0x34] + strh r4, [r5, #0x36] + ldr r0, _08111380 + str r0, [r5, #0x1c] + ldr r1, _08111384 + adds r0, r5, #0 + bl StoreSpriteCallbackInData6 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0811137C: .4byte 0x020380BE +_08111380: .4byte 0x080A5E35 +_08111384: .4byte 0x080A6015 + thumb_func_end sub_08111304 + + thumb_func_start sub_08111388 +sub_08111388: @ 0x08111388 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _081113A0 + movs r1, #0xc + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _081113A4 + adds r0, r4, #0 + movs r1, #0 + bl InitSpritePosToAnimAttacker + b _081113AC + .align 2, 0 +_081113A0: .4byte 0x020380BE +_081113A4: + adds r0, r4, #0 + movs r1, #0 + bl InitSpritePosToAnimTarget +_081113AC: + ldr r1, _081113C8 + ldrh r0, [r1, #6] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #4] + strh r0, [r4, #0x30] + ldrh r0, [r1, #8] + strh r0, [r4, #0x32] + ldrh r0, [r1, #0xa] + strh r0, [r4, #0x34] + ldr r0, _081113CC + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081113C8: .4byte 0x020380BE +_081113CC: .4byte 0x081113D1 + thumb_func_end sub_08111388 + + thumb_func_start sub_081113D0 +sub_081113D0: @ 0x081113D0 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x30] + ldrh r1, [r4, #0x36] + adds r0, r0, r1 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + rsbs r0, r0, #0 + 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, r0, r1 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0x38] + ldrh r0, [r4, #0x2e] + subs r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _08111416 + adds r0, r4, #0 + bl DestroyAnimSprite +_08111416: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_081113D0 + + thumb_func_start AnimTask_LoadSandstormBackground +AnimTask_LoadSandstormBackground: @ 0x0811141C + push {r4, r5, r6, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r5, #0 + ldr r1, _081114D8 + movs r0, #0x50 + bl SetGpuReg + movs r1, #0x80 + lsls r1, r1, #5 + movs r0, #0x52 + bl SetGpuReg + movs r0, #1 + movs r1, #4 + movs r2, #1 + bl SetAnimBgAttribute + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl SetAnimBgAttribute + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08111460 + movs r0, #1 + movs r1, #3 + movs r2, #1 + bl SetAnimBgAttribute +_08111460: + ldr r0, _081114DC + strh r5, [r0] + ldr r4, _081114E0 + strh r5, [r4] + movs r0, #0x14 + movs r1, #0 + bl SetGpuReg + ldrh r1, [r4] + movs r0, #0x16 + bl SetGpuReg + mov r0, sp + bl sub_080A63F8 + mov r0, sp + ldrb r0, [r0, #9] + ldr r1, _081114E4 + mov r2, sp + ldrh r2, [r2, #0xa] + bl AnimLoadCompressedBgGfx + ldr r1, _081114E8 + mov r0, sp + movs r2, #0 + bl sub_080A6628 + ldr r0, _081114EC + mov r1, sp + ldrb r1, [r1, #8] + lsls r1, r1, #4 + movs r2, #0x20 + bl LoadCompressedPalette + ldr r0, _081114F0 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _081114BE + ldr r0, _081114F4 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081114BE + movs r5, #1 +_081114BE: + ldr r0, _081114F8 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + strh r5, [r1, #8] + ldr r0, _081114FC + str r0, [r1] + add sp, #0x10 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081114D8: .4byte 0x00003F42 +_081114DC: .4byte 0x02022ACC +_081114E0: .4byte 0x02022ACE +_081114E4: .4byte 0x08D8D570 +_081114E8: .4byte 0x08D8D3F4 +_081114EC: .4byte 0x08D8DA9C +_081114F0: .4byte 0x020380BE +_081114F4: .4byte 0x020380D6 +_081114F8: .4byte 0x03005B60 +_081114FC: .4byte 0x08111501 + thumb_func_end AnimTask_LoadSandstormBackground + + thumb_func_start sub_08111500 +sub_08111500: @ 0x08111500 + push {r4, r5, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _08111528 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #8 + ldrsh r0, [r0, r2] + adds r2, r1, #0 + cmp r0, #0 + bne _08111534 + ldr r1, _0811152C + ldr r3, _08111530 + adds r0, r3, #0 + ldrh r3, [r1] + adds r0, r0, r3 + b _0811153A + .align 2, 0 +_08111528: .4byte 0x03005B60 +_0811152C: .4byte 0x02022ACC +_08111530: .4byte 0x0000FFFA +_08111534: + ldr r1, _08111568 + ldrh r0, [r1] + adds r0, #6 +_0811153A: + strh r0, [r1] + ldr r1, _0811156C + ldr r3, _08111570 + adds r0, r3, #0 + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + lsls r1, r5, #2 + adds r0, r1, r5 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r3, #0x20 + ldrsh r0, [r0, r3] + adds r4, r1, #0 + cmp r0, #4 + bls _0811155C + b _0811168A +_0811155C: + lsls r0, r0, #2 + ldr r1, _08111574 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08111568: .4byte 0x02022ACC +_0811156C: .4byte 0x02022ACE +_08111570: .4byte 0x0000FFFF +_08111574: .4byte 0x08111578 +_08111578: @ jump table + .4byte _0811158C @ case 0 + .4byte _081115CE @ case 1 + .4byte _081115E8 @ case 2 + .4byte _0811162A @ case 3 + .4byte _0811164C @ case 4 +_0811158C: + adds r0, r4, r5 + lsls r0, r0, #3 + adds r4, r0, r2 + ldrh r0, [r4, #0x1c] + adds r0, #1 + movs r5, #0 + strh r0, [r4, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + bne _0811168A + strh r5, [r4, #0x1c] + ldrh r1, [r4, #0x1e] + adds r1, #1 + strh r1, [r4, #0x1e] + movs r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r1, #0x1e + ldrsh r0, [r4, r1] + cmp r0, #7 + bne _0811168A + ldrh r0, [r4, #0x20] + adds r0, #1 + strh r0, [r4, #0x20] + strh r5, [r4, #0x1e] + b _0811168A +_081115CE: + adds r0, r4, r5 + lsls r0, r0, #3 + adds r1, r0, r2 + ldrh r0, [r1, #0x1e] + adds r0, #1 + strh r0, [r1, #0x1e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x65 + bne _0811168A + movs r0, #7 + strh r0, [r1, #0x1e] + b _08111640 +_081115E8: + adds r0, r4, r5 + lsls r0, r0, #3 + adds r4, r0, r2 + ldrh r0, [r4, #0x1c] + adds r0, #1 + strh r0, [r4, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + bne _0811168A + movs r0, #0 + strh r0, [r4, #0x1c] + ldrh r1, [r4, #0x1e] + subs r1, #1 + strh r1, [r4, #0x1e] + movs r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg + movs r2, #0x1e + ldrsh r1, [r4, r2] + cmp r1, #0 + bne _0811168A + ldrh r0, [r4, #0x20] + adds r0, #1 + strh r0, [r4, #0x20] + strh r1, [r4, #0x1e] + b _0811168A +_0811162A: + mov r0, sp + bl sub_080A63F8 + mov r0, sp + ldrb r0, [r0, #9] + bl sub_080A6530 + ldr r0, _08111648 + adds r1, r4, r5 + lsls r1, r1, #3 + adds r1, r1, r0 +_08111640: + ldrh r0, [r1, #0x20] + adds r0, #1 + strh r0, [r1, #0x20] + b _0811168A + .align 2, 0 +_08111648: .4byte 0x03005B60 +_0811164C: + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08111660 + movs r0, #1 + movs r1, #3 + movs r2, #0 + bl SetAnimBgAttribute +_08111660: + ldr r0, _08111694 + movs r1, #0 + strh r1, [r0] + ldr r0, _08111698 + strh r1, [r0] + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #1 + movs r1, #4 + movs r2, #1 + bl SetAnimBgAttribute + adds r0, r5, #0 + bl DestroyAnimVisualTask +_0811168A: + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08111694: .4byte 0x02022ACC +_08111698: .4byte 0x02022ACE + thumb_func_end sub_08111500 + + thumb_func_start AnimDirtParticleAcrossScreen +AnimDirtParticleAcrossScreen: @ 0x0811169C + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _08111718 + ldr r4, _081116E0 + movs r2, #6 + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _081116E8 + ldr r0, _081116E4 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081116E8 + movs r0, #0x98 + lsls r0, r0, #1 + strh r0, [r5, #0x20] + ldrh r0, [r4, #2] + rsbs r0, r0, #0 + strh r0, [r4, #2] + movs r0, #1 + strh r0, [r5, #0x38] + ldrb r1, [r5, #3] + subs r0, #0x40 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r5, #3] + b _081116EC + .align 2, 0 +_081116E0: .4byte 0x020380BE +_081116E4: .4byte 0x020380D6 +_081116E8: + ldr r0, _0811170C + strh r0, [r5, #0x20] +_081116EC: + ldr r4, _08111710 + ldrh r0, [r4] + strh r0, [r5, #0x22] + ldr r1, _08111714 + adds r0, r5, #0 + bl SetSubspriteTables + ldrh r0, [r4, #2] + strh r0, [r5, #0x30] + ldrh r0, [r4, #4] + strh r0, [r5, #0x32] + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] + b _08111774 + .align 2, 0 +_0811170C: .4byte 0x0000FFC0 +_08111710: .4byte 0x020380BE +_08111714: .4byte 0x085727A4 +_08111718: + ldrh r1, [r5, #0x30] + ldrh r3, [r5, #0x34] + adds r1, r1, r3 + ldrh r2, [r5, #0x32] + ldrh r0, [r5, #0x36] + adds r2, r2, r0 + lsls r0, r1, #0x10 + asrs r0, r0, #0x18 + ldrh r3, [r5, #0x24] + adds r0, r0, r3 + strh r0, [r5, #0x24] + lsls r0, r2, #0x10 + asrs r0, r0, #0x18 + ldrh r3, [r5, #0x26] + adds r0, 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 _0811175E + movs r2, #0x20 + ldrsh r0, [r5, r2] + movs r3, #0x24 + ldrsh r1, [r5, r3] + adds r0, r0, r1 + movs r1, #0x88 + lsls r1, r1, #1 + cmp r0, r1 + ble _08111774 + b _08111770 +_0811175E: + movs r1, #0x20 + ldrsh r0, [r5, r1] + movs r2, #0x24 + ldrsh r1, [r5, r2] + adds r0, r0, r1 + movs r1, #0x20 + rsbs r1, r1, #0 + cmp r0, r1 + bge _08111774 +_08111770: + ldr r0, _0811177C + str r0, [r5, #0x1c] +_08111774: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0811177C: .4byte 0x080A34C5 + thumb_func_end AnimDirtParticleAcrossScreen + + thumb_func_start AnimRaiseSprite +AnimRaiseSprite: @ 0x08111780 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _081117B8 + ldrb r1, [r5, #8] + bl StartSpriteAnim + adds r0, r4, #0 + movs r1, #0 + bl InitSpritePosToAnimAttacker + ldrh r0, [r5, #6] + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x20] + strh r0, [r4, #0x32] + ldrh r0, [r5, #4] + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x36] + ldr r0, _081117BC + str r0, [r4, #0x1c] + ldr r1, _081117C0 + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081117B8: .4byte 0x020380BE +_081117BC: .4byte 0x080A67B5 +_081117C0: .4byte 0x080A34C5 + thumb_func_end AnimRaiseSprite + + thumb_func_start sub_081117C4 +sub_081117C4: @ 0x081117C4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _08111844 + adds r6, r1, r0 + ldr r5, _08111848 + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldrb r0, [r5] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #8 + movs r1, #0xc0 + lsls r1, r1, #0xd + adds r0, r0, r1 + lsrs r7, r0, #0x10 + ldr r4, _0811184C + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + ldrb r0, [r4] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #8 + movs r2, #0xc0 + lsls r2, r2, #0xd + adds r0, r0, r2 + lsrs r0, r0, #0x10 + mov r8, r0 + ldrb r1, [r5] + movs r0, #2 + eors r0, r1 + ldrb r4, [r4] + cmp r0, r4 + bne _08111834 + mov r8, r7 +_08111834: + bl sub_08111BAC + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #1 + bne _08111850 + movs r0, #0x20 + b _08111856 + .align 2, 0 +_08111844: .4byte 0x03005B60 +_08111848: .4byte 0x020380D6 +_0811184C: .4byte 0x020380D7 +_08111850: + lsls r1, r5, #3 + movs r0, #0x30 + subs r0, r0, r1 +_08111856: + strh r0, [r6, #0x18] + movs r4, #0 + strh r4, [r6, #8] + strh r4, [r6, #0x1e] + strh r4, [r6, #0x1a] + movs r0, #1 + strh r0, [r6, #0x20] + movs r1, #0x18 + ldrsh r0, [r6, r1] + cmp r0, #0 + bge _0811186E + adds r0, #7 +_0811186E: + asrs r0, r0, #3 + subs r0, #1 + strh r0, [r6, #0x1c] + mov r2, sb + lsls r0, r2, #3 + strh r0, [r6, #0xc] + lsls r0, r7, #3 + strh r0, [r6, #0xe] + mov r1, sl + subs r0, r1, r2 + lsls r0, r0, #3 + movs r2, #0x18 + ldrsh r1, [r6, r2] + bl __divsi3 + strh r0, [r6, #0x10] + mov r1, r8 + subs r0, r1, r7 + lsls r0, 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 + rsbs r0, r0, #0 + bl BattleAnimAdjustPanning + adds r4, r0, #0 + lsls r4, r4, #0x18 + asrs r4, r4, #8 + lsrs r4, r4, #0x10 + movs r0, #0x3f + bl BattleAnimAdjustPanning + lsls r0, r0, #0x18 + strh r4, [r6, #0x22] + asrs r0, r0, #0x18 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + subs r0, r0, r4 + movs r2, #0x18 + ldrsh r1, [r6, r2] + bl __divsi3 + strh r0, [r6, #0x24] + strh r5, [r6, #0xa] + movs r0, #0 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r6, #0x26] + ldr r0, _081118F0 + str r0, [r6] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081118F0: .4byte 0x081118F5 + thumb_func_end sub_081117C4 + + thumb_func_start sub_081118F4 +sub_081118F4: @ 0x081118F4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _08111918 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #4 + bls _0811190E + b _08111A5C +_0811190E: + lsls r0, r0, #2 + ldr r1, _0811191C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08111918: .4byte 0x03005B60 +_0811191C: .4byte 0x08111920 +_08111920: @ jump table + .4byte _08111934 @ case 0 + .4byte _08111998 @ case 1 + .4byte _081119A0 @ case 2 + .4byte _081119FC @ case 3 + .4byte _08111A4E @ case 4 +_08111934: + ldrh r2, [r4, #0x14] + ldrh r0, [r4, #0x10] + subs r2, r2, r0 + strh r2, [r4, #0x14] + ldrh r0, [r4, #0x16] + ldrh r1, [r4, #0x12] + subs r0, r0, r1 + strh r0, [r4, #0x16] + ldr r3, _08111994 + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + lsls r2, r2, #0x10 + asrs r2, r2, #0x13 + strh r2, [r0, #0x24] + movs r1, #0x26 + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrh r0, [r4, #0x16] + lsls r0, r0, #0x10 + asrs r0, r0, #0x13 + strh r0, [r1, #0x26] + ldrh r0, [r4, #0x1a] + adds r0, #1 + strh r0, [r4, #0x1a] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xa + bne _08111984 + movs r0, #0x14 + strh r0, [r4, #0x1e] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_08111984: + ldrh r1, [r4, #0x22] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r0, #0xa2 + bl PlaySE12WithPanning + b _08111A5C + .align 2, 0 +_08111994: .4byte 0x020205AC +_08111998: + ldrh r0, [r4, #0x1e] + subs r0, #1 + strh r0, [r4, #0x1e] + b _08111A40 +_081119A0: + ldrh r0, [r4, #0x1a] + subs r0, #1 + strh r0, [r4, #0x1a] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + beq _081119C0 + ldrh r0, [r4, #0x10] + ldrh r2, [r4, #0x14] + adds r0, r0, r2 + strh r0, [r4, #0x14] + ldrh r0, [r4, #0x12] + ldrh r1, [r4, #0x16] + adds r0, r0, r1 + strh r0, [r4, #0x16] + b _081119CA +_081119C0: + strh r0, [r4, #0x14] + strh r0, [r4, #0x16] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_081119CA: + ldr r2, _081119F8 + movs r1, #0x26 + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r0, [r4, #0x14] + lsls r0, r0, #0x10 + asrs r0, r0, #0x13 + strh r0, [r1, #0x24] + movs r1, #0x26 + ldrsh r0, [r4, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r0, [r4, #0x16] + lsls r0, r0, #0x10 + asrs r0, r0, #0x13 + strh r0, [r1, #0x26] + b _08111A5C + .align 2, 0 +_081119F8: .4byte 0x020205AC +_081119FC: + ldrh r0, [r4, #0x10] + ldrh r2, [r4, #0xc] + adds r0, r0, r2 + strh r0, [r4, #0xc] + ldrh r0, [r4, #0x12] + ldrh r1, [r4, #0xe] + adds r0, r0, r1 + strh r0, [r4, #0xe] + ldrh r0, [r4, #0x1a] + adds r0, #1 + strh r0, [r4, #0x1a] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x1c + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _08111A3A + movs r0, #0 + strh r0, [r4, #0x1a] + adds r0, r4, #0 + bl sub_08111A64 + ldrh r1, [r4, #0x24] + ldrh r0, [r4, #0x22] + adds r1, r1, r0 + strh r1, [r4, #0x22] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r0, #0xaf + bl PlaySE12WithPanning +_08111A3A: + ldrh r0, [r4, #0x18] + subs r0, #1 + strh r0, [r4, #0x18] +_08111A40: + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08111A5C + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _08111A5C +_08111A4E: + movs r1, #0x1e + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08111A5C + adds r0, r2, #0 + bl DestroyAnimVisualTask +_08111A5C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081118F4 + + thumb_func_start sub_08111A64 +sub_08111A64: @ 0x08111A64 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0xa] + subs r0, #1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + bhi _08111B54 + lsls r0, r0, #2 + ldr r1, _08111A80 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08111A80: .4byte 0x08111A84 +_08111A84: @ jump table + .4byte _08111A98 @ case 0 + .4byte _08111AA4 @ case 1 + .4byte _08111AA4 @ case 2 + .4byte _08111AB0 @ case 3 + .4byte _08111ABC @ case 4 +_08111A98: + ldr r3, _08111AA0 + movs r5, #0 + b _08111AC0 + .align 2, 0 +_08111AA0: .4byte 0x0857280C +_08111AA4: + ldr r3, _08111AAC + movs r5, #0x50 + b _08111AC0 + .align 2, 0 +_08111AAC: .4byte 0x08572824 +_08111AB0: + ldr r3, _08111AB8 + movs r5, #0x40 + b _08111AC0 + .align 2, 0 +_08111AB8: .4byte 0x08572824 +_08111ABC: + ldr r3, _08111B5C + movs r5, #0x30 +_08111AC0: + ldrh r1, [r4, #0xc] + lsls r1, r1, #0x10 + asrs r1, r1, #0x13 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldrh r2, [r4, #0xe] + lsls r2, r2, #0x10 + asrs r2, r2, #0x13 + lsls r2, r2, #0x10 + movs r6, #0x20 + ldrsh r0, [r4, r6] + lsls r0, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + asrs r1, r1, #0x10 + lsrs r7, r2, #0x10 + asrs r2, r2, #0x10 + adds r0, r3, #0 + movs r3, #0x23 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x40 + beq _08111B4C + ldr r1, _08111B60 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + movs r1, #0x12 + strh r1, [r0, #0x2e] + movs r2, #0x20 + ldrsh r1, [r4, r2] + lsls r2, r1, #2 + adds r2, r2, r1 + lsls r2, r2, #2 + adds r2, r6, r2 + movs r6, #0xa + ldrsh r3, [r4, r6] + lsls r1, r3, #1 + adds r1, r1, r3 + adds r2, r2, r1 + strh r2, [r0, #0x32] + strh r7, [r0, #0x36] + movs r1, #0xa + ldrsh r2, [r4, r1] + lsls r2, r2, #1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r1, r3, #0 + subs r1, r1, r2 + strh r1, [r0, #0x38] + ldrh r3, [r0, #4] + lsls r2, r3, #0x16 + lsrs r2, r2, #0x16 + adds r2, r2, r5 + ldr r5, _08111B64 + adds r1, r5, #0 + ands r2, r1 + ldr r1, _08111B68 + ands r1, r3 + orrs r1, r2 + strh r1, [r0, #4] + bl InitAnimArcTranslation + ldrh r0, [r4, #0x1e] + adds r0, #1 + strh r0, [r4, #0x1e] +_08111B4C: + movs r6, #0x20 + ldrsh r0, [r4, r6] + rsbs r0, r0, #0 + strh r0, [r4, #0x20] +_08111B54: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08111B5C: .4byte 0x08572824 +_08111B60: .4byte 0x020205AC +_08111B64: .4byte 0x000003FF +_08111B68: .4byte 0xFFFFFC00 + thumb_func_end sub_08111A64 + + thumb_func_start sub_08111B6C +sub_08111B6C: @ 0x08111B6C + push {r4, lr} + adds r4, r0, #0 + bl TranslateAnimHorizontalArc + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08111B9E + ldr r0, _08111BA4 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xff + beq _08111B98 + ldr r0, _08111BA8 + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0x1e] + subs r0, #1 + strh r0, [r1, #0x1e] +_08111B98: + adds r0, r4, #0 + bl DestroySprite +_08111B9E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08111BA4: .4byte 0x081118F5 +_08111BA8: .4byte 0x03005B60 + thumb_func_end sub_08111B6C + + thumb_func_start sub_08111BAC +sub_08111BAC: @ 0x08111BAC + push {lr} + ldr r0, _08111BD4 + ldr r0, [r0] + ldrb r1, [r0, #0x11] + lsrs r0, r1, #4 + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + subs r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r2, #0xff + lsls r2, r2, #0x18 + adds r0, r0, r2 + lsrs r0, r0, #0x18 + cmp r0, #4 + bls _08111BCE + movs r1, #1 +_08111BCE: + adds r0, r1, #0 + pop {r1} + bx r1 + .align 2, 0 +_08111BD4: .4byte 0x020380A0 + thumb_func_end sub_08111BAC + + thumb_func_start sub_08111BD8 +sub_08111BD8: @ 0x08111BD8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08111C10 + ldrb r1, [r5, #8] + bl StartSpriteAnim + ldrh r0, [r5] + strh r0, [r4, #0x24] + ldrh r0, [r5, #2] + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x34] + ldrh r1, [r5, #4] + subs r0, r0, r1 + strh r0, [r4, #0x34] + movs r0, #3 + strh r0, [r4, #0x2e] + ldrh r0, [r5, #6] + strh r0, [r4, #0x30] + ldr r0, _08111C14 + str r0, [r4, #0x1c] + adds r4, #0x3e + ldrb r0, [r4] + movs r1, #4 + orrs r0, r1 + strb r0, [r4] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08111C10: .4byte 0x020380BE +_08111C14: .4byte 0x08111C19 + thumb_func_end sub_08111BD8 + + thumb_func_start sub_08111C18 +sub_08111C18: @ 0x08111C18 + push {lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r3] + ldrh r1, [r2, #0x34] + movs r3, #0x34 + ldrsh r0, [r2, r3] + cmp r0, #0 + beq _08111C50 + ldrh r3, [r2, #0x32] + adds r0, r1, r3 + strh r0, [r2, #0x26] + ldrh r0, [r2, #0x2e] + adds r1, r1, r0 + strh r1, [r2, #0x34] + adds r0, #1 + strh r0, [r2, #0x2e] + lsls r1, r1, #0x10 + cmp r1, #0 + ble _08111C62 + movs r0, #0 + strh r0, [r2, #0x34] + b _08111C62 +_08111C50: + ldrh r0, [r2, #0x30] + subs r0, #1 + strh r0, [r2, #0x30] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08111C62 + adds r0, r2, #0 + bl DestroyAnimSprite +_08111C62: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08111C18 + + thumb_func_start sub_08111C68 +sub_08111C68: @ 0x08111C68 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08111C90 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08111C84 + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAffineAnim +_08111C84: + adds r0, r4, #0 + bl TranslateAnimSpriteToTargetMonLocation + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08111C90: .4byte 0x020380D6 + thumb_func_end sub_08111C68 + + thumb_func_start sub_08111C94 +sub_08111C94: @ 0x08111C94 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08111CE0 + ldrb r0, [r5] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x20] + ldrb r0, [r5] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08111CE4 + ldrh r3, [r2] + ldrh r5, [r4, #0x20] + adds r1, r3, r5 + strh r1, [r4, #0x20] + ldrh r1, [r2, #2] + adds r0, r0, r1 + strh r0, [r4, #0x22] + strh r3, [r4, #0x30] + strh r1, [r4, #0x32] + ldrh r0, [r2, #4] + strh r0, [r4, #0x38] + ldrb r1, [r2, #6] + adds r0, r4, #0 + bl StartSpriteAnim + ldr r0, _08111CE8 + str r0, [r4, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08111CE0: .4byte 0x020380D7 +_08111CE4: .4byte 0x020380BE +_08111CE8: .4byte 0x08111CED + thumb_func_end sub_08111C94 + + thumb_func_start sub_08111CEC +sub_08111CEC: @ 0x08111CEC + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + adds r0, #8 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x30] + ldrh r1, [r4, #0x34] + adds r0, r0, r1 + strh r0, [r4, #0x34] + ldrh r0, [r4, #0x32] + ldrh r2, [r4, #0x36] + adds r0, r0, r2 + strh r0, [r4, #0x36] + movs r1, #0x34 + ldrsh r0, [r4, r1] + movs r1, #0x28 + bl __divsi3 + ldrh r1, [r4, #0x24] + adds r1, 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, r1, r0 + strh r1, [r4, #0x26] + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0x8c + ble _08111D36 + adds r0, r4, #0 + bl DestroyAnimSprite +_08111D36: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08111CEC + + thumb_func_start AnimTask_GetSeismicTossDamageLevel +AnimTask_GetSeismicTossDamageLevel: @ 0x08111D3C + push {lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r2, _08111D74 + ldr r0, [r2] + cmp r0, #0x20 + bgt _08111D50 + ldr r1, _08111D78 + movs r0, #0 + strh r0, [r1, #0xe] +_08111D50: + ldr r2, [r2] + adds r0, r2, #0 + subs r0, #0x21 + cmp r0, #0x20 + bhi _08111D60 + ldr r1, _08111D78 + movs r0, #1 + strh r0, [r1, #0xe] +_08111D60: + cmp r2, #0x41 + ble _08111D6A + ldr r1, _08111D78 + movs r0, #2 + strh r0, [r1, #0xe] +_08111D6A: + adds r0, r3, #0 + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_08111D74: .4byte 0x020380A4 +_08111D78: .4byte 0x020380BE + thumb_func_end AnimTask_GetSeismicTossDamageLevel + + thumb_func_start sub_08111D7C +sub_08111D7C: @ 0x08111D7C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _08111DD8 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r5, r0, r1 + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _08111D9E + movs r0, #0 + bl sub_080A6674 + movs r0, #0xc8 + strh r0, [r5, #0xa] +_08111D9E: + ldr r4, _08111DDC + movs r1, #0xa + ldrsh r0, [r5, r1] + movs r1, #0xa + bl __divsi3 + ldrh r1, [r4] + adds r1, r1, r0 + strh r1, [r4] + ldrh r0, [r5, #0xa] + subs r0, #3 + strh r0, [r5, #0xa] + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #0x78 + bne _08111DCA + movs r0, #1 + bl sub_080A6674 + adds r0, r6, #0 + bl DestroyAnimVisualTask +_08111DCA: + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08111DD8: .4byte 0x03005B60 +_08111DDC: .4byte 0x02022AD6 + thumb_func_end sub_08111D7C + + thumb_func_start sub_08111DE0 +sub_08111DE0: @ 0x08111DE0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + ldr r1, _08111E4C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08111E0C + movs r0, #0 + bl sub_080A6674 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + ldr r0, _08111E50 + ldrh r0, [r0] + strh r0, [r4, #0xc] +_08111E0C: + ldrh r0, [r4, #0xa] + adds r0, #0x50 + movs r1, #0xff + ands r0, r1 + strh r0, [r4, #0xa] + ldr r6, _08111E50 + movs r2, #0xa + ldrsh r1, [r4, r2] + movs r0, #4 + bl Cos + ldrh r4, [r4, #0xc] + adds r0, r0, r4 + strh r0, [r6] + ldr r0, _08111E54 + movs r2, #0xe + ldrsh r1, [r0, r2] + ldr r0, _08111E58 + cmp r1, r0 + bne _08111E44 + movs r0, #0 + strh r0, [r6] + movs r0, #1 + bl sub_080A6674 + adds r0, r5, #0 + bl DestroyAnimVisualTask +_08111E44: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08111E4C: .4byte 0x03005B60 +_08111E50: .4byte 0x02022AD6 +_08111E54: .4byte 0x020380BE +_08111E58: .4byte 0x00000FFF + thumb_func_end sub_08111DE0 + diff --git a/asm/rom.s b/asm/rom.s deleted file mode 100644 index 99c47c4..0000000 --- a/asm/rom.s +++ /dev/null @@ -1,973185 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - .text - .syntax unified - - arm_func_start _start -_start: @ 0x08000000 - b _init -_08000004: - .space 0xbc - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0xFFFFFFFF - .4byte 0xFFFFFFFF - .4byte 0xFFFFFFFF - .4byte 0xFFFFFFFF - .4byte 0xFFFFFFFF - .4byte 0xFFFFFFFF - .4byte 0xFFFFFFFF - .4byte 0xFFFFFFFF - .4byte 0xFFFFFFFF - .4byte 0xFFFFFFFF - .4byte 0xFFFFFFFF - .4byte 0xFFFFFFFF - .4byte 0x00000003 - .4byte 0x00000001 - .4byte 0x656B6F70 - .4byte 0x206E6F6D - .4byte 0x72656D65 - .4byte 0x20646C61 - .4byte 0x73726576 - .4byte 0x006E6F69 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x082DDA1C - .4byte 0x082D6148 - .4byte 0x082D6F08 - .4byte 0x082D7CC8 - .4byte 0x08556804 - .4byte 0x08556EE4 - .4byte 0x0855709C - .4byte 0x082EA31C - .4byte 0x082EACC4 - .4byte 0x08580CD0 - .4byte 0x00001270 - .4byte 0x0000139C - .4byte 0x00000018 - .4byte 0x00000988 - .4byte 0x00003B24 - .4byte 0x00000046 - .4byte 0x000008E4 - .4byte 0x000008AC - .4byte 0x00000182 - .4byte 0x050A0507 - .4byte 0x07060807 - .4byte 0x0A120A04 - .4byte 0x0801050A - .4byte 0x00000007 - .4byte 0x00000F2C - .4byte 0x00003D88 - .4byte 0x00000234 - .4byte 0x00000238 - .4byte 0x00000009 - .4byte 0x0000000A - .4byte 0x00000000 - .4byte 0x00000008 - .4byte 0x00000CA8 - .4byte 0x00000CA8 - .4byte 0x000031C7 - .4byte 0x000031B3 - .4byte 0x00000000 - .4byte 0x082F0D54 - .4byte 0x082EBDC4 - .4byte 0x082EC034 - .4byte 0x0855CEE8 - .4byte 0x082ED220 - .4byte 0x082FCE0C - .4byte 0x082FCE6C - .4byte 0x000000A8 - .4byte 0x00000864 - .4byte 0x0000089B - .4byte 0x40101E1E - .4byte 0x0000322E - .4byte 0x00000498 - .4byte 0x000031A8 - .4byte 0x000031F8 - .4byte 0x00000034 - .4byte 0x00000000 - .4byte 0xFFFFFFFF - arm_func_end _start - - arm_func_start _init -_init: - mov r0, #0x12 - msr cpsr_fc, r0 - ldr sp, _0800023C - mov r0, #0x1f - msr cpsr_fc, r0 - ldr sp, _08000238 - ldr r1, _08000240 - add r0, pc, #0x20 - str r0, [r1] - ldr r1, _08000244 - mov lr, pc - bx r1 - b _init - .align 2, 0 -_08000238: .4byte gUnknown_3007E40 -_0800023C: .4byte gUnknown_3007FA0 -_08000240: .4byte gUnknown_3007FFC -_08000244: .4byte AgbMain - arm_func_end _init - - arm_func_start _intr -_intr: @ 0x08000248 - mov r3, #0x4000000 - add r3, r3, #0x200 - ldr r2, [r3] - ldrh r1, [r3, #8] - mrs r0, spsr - push {r0, r1, r2, r3, lr} - mov r0, #0 - strh r0, [r3, #8] - and r1, r2, r2, lsr #16 - mov ip, #0 - ands r0, r1, #4 - bne _08000320 - add ip, ip, #4 - mov r0, #1 - strh r0, [r3, #8] - ands r0, r1, #0x80 - bne _08000320 - add ip, ip, #4 - ands r0, r1, #0x40 - bne _08000320 - add ip, ip, #4 - ands r0, r1, #2 - bne _08000320 - add ip, ip, #4 - ands r0, r1, #1 - bne _08000320 - add ip, ip, #4 - ands r0, r1, #8 - bne _08000320 - add ip, ip, #4 - ands r0, r1, #0x10 - bne _08000320 - add ip, ip, #4 - ands r0, r1, #0x20 - bne _08000320 - add ip, ip, #4 - ands r0, r1, #0x100 - bne _08000320 - add ip, ip, #4 - ands r0, r1, #0x200 - bne _08000320 - add ip, ip, #4 - ands r0, r1, #0x400 - bne _08000320 - add ip, ip, #4 - ands r0, r1, #0x800 - bne _08000320 - add ip, ip, #4 - ands r0, r1, #0x1000 - bne _08000320 - add ip, ip, #4 - ands r0, r1, #0x2000 - strbne r0, [r3, #-0x17c] -_0800031C: - bne _0800031C -_08000320: - strh r0, [r3, #2] - bic r2, r2, r0 - ldr r0, _0800039C - ldr r0, [r0] - ldrb r0, [r0, #0xa] - mov r1, #8 - lsl r0, r1, r0 - orr r0, r0, #0x2000 - orr r1, r0, #0xc6 - and r1, r1, r2 - strh r1, [r3] - mrs r3, cpsr - bic r3, r3, #0xdf - orr r3, r3, #0x1f - msr cpsr_fc, r3 - ldr r1, _080003A0 - add r1, r1, ip - ldr r0, [r1] - stmdb sp!, {lr} - add lr, pc, #0 - bx r0 - ldm sp!, {lr} - mrs r3, cpsr - bic r3, r3, #0xdf - orr r3, r3, #0x92 - msr cpsr_fc, r3 - pop {r0, r1, r2, r3, lr} - strh r2, [r3] - strh r1, [r3, #8] - msr spsr_fc, r0 - bx lr - .align 2, 0 -_0800039C: .4byte gUnknown_3007608 -_080003A0: .4byte gUnknown_30027B0 - arm_func_end _intr - - thumb_func_start AgbMain -AgbMain: @ 0x080003A4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r0, #0xff - bl RegisterRamReset - movs r1, #0xa0 - lsls r1, r1, #0x13 - ldr r2, _08000468 - adds r0, r2, #0 - strh r0, [r1] - bl InitGpuRegManager - ldr r1, _0800046C - ldr r3, _08000470 - adds r0, r3, #0 - strh r0, [r1] - bl InitKeys - bl InitIntrHandlers - bl m4aSoundInit - bl EnableVCountIntrAtLine150 - bl sub_0800E194 - bl RtcInit - bl CheckForFlashMemory - bl UpdateLinkAndCallCallbacks - bl InitMapMusic - bl ClearDma3Requests - bl ResetBgs - bl SetDefaultFontsPointer - ldr r0, _08000474 - movs r1, #0xe0 - lsls r1, r1, #9 - bl InitHeap - ldr r0, _08000478 - movs r4, #0 - strb r4, [r0] - ldr r0, _0800047C - ldr r0, [r0] - cmp r0, #1 - beq _08000414 - movs r0, #0 - bl SetMainCallback2 -_08000414: - ldr r2, _08000480 - strb r4, [r2] - ldr r1, _08000484 - movs r3, #0xfc - lsls r3, r3, #4 - adds r0, r3, #0 - strh r0, [r1] - ldr r7, _08000488 - movs r0, #0 - mov r8, r0 - adds r6, r2, #0 -_0800042A: - bl ReadKeys - ldr r0, _08000478 - ldrb r0, [r0] - cmp r0, #0 - bne _08000454 - ldrh r1, [r7, #0x28] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08000454 - movs r0, #0xe - ands r0, r1 - cmp r0, #0xe - bne _08000454 - bl rfu_REQ_stopMode - bl rfu_waitREQComplete - bl DoSoftReset -_08000454: - bl sub_08086F98 - cmp r0, #1 - bne _0800048C - strb r0, [r6] - bl sub_080004C4 - movs r0, #0 - strb r0, [r6] - b _080004B2 - .align 2, 0 -_08000468: .4byte 0x00007FFF -_0800046C: .4byte 0x04000204 -_08000470: .4byte 0x00004014 -_08000474: .4byte gUnknown_2000000 -_08000478: .4byte gUnknown_30027A0 -_0800047C: .4byte gUnknown_3005AE8 -_08000480: .4byte gUnknown_3002354 -_08000484: .4byte gUnknown_3000000 -_08000488: .4byte gUnknown_3002360 -_0800048C: - ldr r5, _080004C0 - movs r0, #0 - strb r0, [r5] - bl sub_080004C4 - bl sub_08086F2C - adds r4, r0, #0 - cmp r4, #1 - bne _080004B2 - movs r0, #0 - strh r0, [r7, #0x2e] - bl ClearSpriteCopyRequests - strb r4, [r5] - bl sub_080004C4 - mov r2, r8 - strb r2, [r5] -_080004B2: - bl PlayTimeCounter_Update - bl MapMusicMain - bl WaitForVBlank - b _0800042A - .align 2, 0 -_080004C0: .4byte gUnknown_3002354 - thumb_func_end AgbMain - - thumb_func_start sub_080004C4 -sub_080004C4: @ 0x080004C4 - push {lr} - bl HandleLinkConnection - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080004D4 - bl InitMainCallbacks -_080004D4: - pop {r0} - bx r0 - thumb_func_end sub_080004C4 - - thumb_func_start UpdateLinkAndCallCallbacks -UpdateLinkAndCallCallbacks: @ 0x080004D8 - push {lr} - ldr r2, _08000500 - movs r0, #0 - str r0, [r2, #0x20] - ldr r1, _08000504 - str r0, [r1] - str r0, [r2, #0x24] - str r0, [r2] - ldr r0, _08000508 - bl SetMainCallback2 - ldr r1, _0800050C - ldr r0, _08000510 - str r0, [r1] - ldr r1, _08000514 - ldr r0, _08000518 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08000500: .4byte gUnknown_3002360 -_08000504: .4byte gUnknown_203CC28 -_08000508: .4byte CB2_InitCopyrightScreenAfterBootup -_0800050C: .4byte gUnknown_3005AF0 -_08000510: .4byte gUnknown_20246F8 -_08000514: .4byte gUnknown_3005AF4 -_08000518: .4byte gUnknown_20294AC - thumb_func_end UpdateLinkAndCallCallbacks - - thumb_func_start InitMainCallbacks -InitMainCallbacks: @ 0x0800051C - push {r4, lr} - ldr r4, _0800053C - ldr r0, [r4] - cmp r0, #0 - beq _0800052A - bl _call_via_r0 -_0800052A: - ldr r0, [r4, #4] - cmp r0, #0 - beq _08000534 - bl _call_via_r0 -_08000534: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800053C: .4byte gUnknown_3002360 - thumb_func_end InitMainCallbacks - - thumb_func_start SetMainCallback2 -SetMainCallback2: @ 0x08000540 - ldr r1, _08000550 - str r0, [r1, #4] - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - movs r0, #0 - strb r0, [r1] - bx lr - .align 2, 0 -_08000550: .4byte gUnknown_3002360 - thumb_func_end SetMainCallback2 - - thumb_func_start StartTimer1 -StartTimer1: @ 0x08000554 - ldr r1, _0800055C - movs r0, #0x80 - strh r0, [r1] - bx lr - .align 2, 0 -_0800055C: .4byte 0x04000106 - thumb_func_end StartTimer1 - - thumb_func_start SeedRngAndSetTrainerId -SeedRngAndSetTrainerId: @ 0x08000560 - push {r4, lr} - ldr r0, _0800057C - ldrh r4, [r0] - adds r0, r4, #0 - bl SeedRng - ldr r1, _08000580 - movs r0, #0 - strh r0, [r1] - ldr r0, _08000584 - strh r4, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800057C: .4byte 0x04000104 -_08000580: .4byte 0x04000106 -_08000584: .4byte gUnknown_2020000 - thumb_func_end SeedRngAndSetTrainerId - - thumb_func_start sub_08000588 -sub_08000588: @ 0x08000588 - ldr r0, _08000590 - ldrh r0, [r0] - bx lr - .align 2, 0 -_08000590: .4byte gUnknown_2020000 - thumb_func_end sub_08000588 - - thumb_func_start EnableVCountIntrAtLine150 -EnableVCountIntrAtLine150: @ 0x08000594 - push {lr} - movs r0, #4 - bl GetGpuReg - movs r1, #0xff - ands r1, r0 - movs r2, #0x96 - lsls r2, r2, #8 - adds r0, r2, #0 - orrs r1, r0 - movs r0, #0x20 - orrs r1, r0 - movs r0, #4 - bl SetGpuReg - movs r0, #4 - bl EnableInterrupts - pop {r0} - bx r0 - thumb_func_end EnableVCountIntrAtLine150 - - thumb_func_start InitKeys -InitKeys: @ 0x080005BC - ldr r1, _080005D8 - movs r0, #5 - strh r0, [r1] - ldr r1, _080005DC - movs r0, #0x28 - strh r0, [r1] - ldr r1, _080005E0 - movs r0, #0 - strh r0, [r1, #0x2c] - strh r0, [r1, #0x2e] - strh r0, [r1, #0x30] - strh r0, [r1, #0x28] - strh r0, [r1, #0x2a] - bx lr - .align 2, 0 -_080005D8: .4byte gUnknown_300279C -_080005DC: .4byte gUnknown_3002350 -_080005E0: .4byte gUnknown_3002360 - thumb_func_end InitKeys - - thumb_func_start ReadKeys -ReadKeys: @ 0x080005E4 - push {lr} - ldr r0, _08000620 - ldrh r1, [r0] - ldr r2, _08000624 - adds r0, r2, #0 - adds r3, r0, #0 - eors r3, r1 - ldr r1, _08000628 - ldrh r2, [r1, #0x28] - adds r0, r3, #0 - bics r0, r2 - strh r0, [r1, #0x2a] - strh r0, [r1, #0x2e] - strh r0, [r1, #0x30] - adds r2, r1, #0 - cmp r3, #0 - beq _08000630 - ldrh r0, [r2, #0x2c] - cmp r0, r3 - bne _08000630 - ldrh r0, [r2, #0x32] - subs r0, #1 - strh r0, [r2, #0x32] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08000636 - strh r3, [r2, #0x30] - ldr r0, _0800062C - b _08000632 - .align 2, 0 -_08000620: .4byte 0x04000130 -_08000624: .4byte 0x000003FF -_08000628: .4byte gUnknown_3002360 -_0800062C: .4byte gUnknown_300279C -_08000630: - ldr r0, _0800067C -_08000632: - ldrh r0, [r0] - strh r0, [r2, #0x32] -_08000636: - strh r3, [r2, #0x28] - strh r3, [r2, #0x2c] - ldr r0, _08000680 - ldr r0, [r0] - ldrb r0, [r0, #0x13] - cmp r0, #2 - bne _08000668 - ldrh r1, [r2, #0x2e] - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08000658 - movs r0, #1 - orrs r0, r1 - strh r0, [r2, #0x2e] -_08000658: - ldrh r1, [r2, #0x2c] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08000668 - movs r0, #1 - orrs r0, r1 - strh r0, [r2, #0x2c] -_08000668: - ldrh r1, [r2, #0x2e] - ldrh r0, [r2, #0x36] - ands r0, r1 - cmp r0, #0 - beq _08000676 - movs r0, #1 - strh r0, [r2, #0x34] -_08000676: - pop {r0} - bx r0 - .align 2, 0 -_0800067C: .4byte gUnknown_3002350 -_08000680: .4byte gUnknown_3005AF0 - thumb_func_end ReadKeys - - thumb_func_start InitIntrHandlers -InitIntrHandlers: @ 0x08000684 - push {r4, r5, lr} - ldr r5, _080006D0 - ldr r4, _080006D4 - ldr r3, _080006D8 - ldr r2, _080006DC - movs r1, #0xd -_08000690: - ldm r3!, {r0} - stm r2!, {r0} - subs r1, #1 - cmp r1, #0 - bge _08000690 - ldr r0, _080006E0 - str r5, [r0] - str r4, [r0, #4] - ldr r1, _080006E4 - str r1, [r0, #8] - ldr r0, [r0, #8] - ldr r0, _080006E8 - str r4, [r0] - movs r0, #0 - bl SetVBlankCallback - movs r0, #0 - bl SetHBlankCallback - movs r0, #0 - bl SetSerialCallback - ldr r1, _080006EC - movs r0, #1 - strh r0, [r1] - movs r0, #1 - bl EnableInterrupts - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080006D0: .4byte _intr -_080006D4: .4byte gUnknown_30027F0 -_080006D8: .4byte gUnknown_829BDBC -_080006DC: .4byte gUnknown_30027B0 -_080006E0: .4byte 0x040000D4 -_080006E4: .4byte 0x84000200 -_080006E8: .4byte gUnknown_3007FFC -_080006EC: .4byte 0x04000208 - thumb_func_end InitIntrHandlers - - thumb_func_start SetVBlankCallback -SetVBlankCallback: @ 0x080006F0 - ldr r1, _080006F8 - str r0, [r1, #0xc] - bx lr - .align 2, 0 -_080006F8: .4byte gUnknown_3002360 - thumb_func_end SetVBlankCallback - - thumb_func_start SetHBlankCallback -SetHBlankCallback: @ 0x080006FC - ldr r1, _08000704 - str r0, [r1, #0x10] - bx lr - .align 2, 0 -_08000704: .4byte gUnknown_3002360 - thumb_func_end SetHBlankCallback - - thumb_func_start SetVCountCallback -SetVCountCallback: @ 0x08000708 - ldr r1, _08000710 - str r0, [r1, #0x14] - bx lr - .align 2, 0 -_08000710: .4byte gUnknown_3002360 - thumb_func_end SetVCountCallback - - thumb_func_start RestoreSerialTimer3IntrHandlers -RestoreSerialTimer3IntrHandlers: @ 0x08000714 - ldr r0, _08000720 - ldr r1, _08000724 - str r1, [r0, #4] - ldr r1, _08000728 - str r1, [r0, #8] - bx lr - .align 2, 0 -_08000720: .4byte gUnknown_30027B0 -_08000724: .4byte SerialIntr -_08000728: .4byte Timer3Intr - thumb_func_end RestoreSerialTimer3IntrHandlers - - thumb_func_start SetSerialCallback -SetSerialCallback: @ 0x0800072C - ldr r1, _08000734 - str r0, [r1, #0x18] - bx lr - .align 2, 0 -_08000734: .4byte gUnknown_3002360 - thumb_func_end SetSerialCallback - - thumb_func_start VBlankIntr -VBlankIntr: @ 0x08000738 - push {r4, lr} - ldr r0, _08000748 - ldrb r0, [r0] - cmp r0, #0 - beq _0800074C - bl sub_080115A8 - b _08000758 - .align 2, 0 -_08000748: .4byte gUnknown_300319C -_0800074C: - ldr r0, _080007DC - ldrb r0, [r0] - cmp r0, #0 - bne _08000758 - bl LinkVSync -_08000758: - ldr r0, _080007E0 - ldr r1, [r0, #0x20] - adds r1, #1 - str r1, [r0, #0x20] - ldr r1, _080007E4 - ldr r1, [r1] - adds r4, r0, #0 - cmp r1, #0 - beq _08000778 - ldr r2, [r1] - movs r0, #2 - rsbs r0, r0, #0 - cmp r2, r0 - bhi _08000778 - adds r0, r2, #1 - str r0, [r1] -_08000778: - ldr r0, [r4, #0xc] - cmp r0, #0 - beq _08000782 - bl _call_via_r0 -_08000782: - ldr r0, [r4, #0x24] - adds r0, #1 - str r0, [r4, #0x24] - bl CopyBufferedValuesToGpuRegs - bl ProcessDma3Requests - ldr r1, _080007E8 - ldr r0, _080007EC - ldrb r0, [r0, #4] - strb r0, [r1] - bl m4aSoundMain - bl sub_080334E0 - ldr r1, _080007F0 - adds r0, r4, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080007BA - ldr r0, _080007F4 - ldr r0, [r0] - ldr r1, _080007F8 - ands r0, r1 - cmp r0, #0 - bne _080007BE -_080007BA: - bl Random -_080007BE: - bl sub_0800DC40 - ldr r2, _080007FC - ldrh r0, [r2] - movs r1, #1 - orrs r0, r1 - strh r0, [r2] - ldr r0, _080007E0 - ldrh r2, [r0, #0x1c] - ldrh r3, [r0, #0x1c] - orrs r1, r2 - strh r1, [r0, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080007DC: .4byte gUnknown_30027E8 -_080007E0: .4byte gUnknown_3002360 -_080007E4: .4byte gUnknown_203CC28 -_080007E8: .4byte gUnknown_3002FF0 -_080007EC: .4byte gUnknown_3006120 -_080007F0: .4byte 0x00000439 -_080007F4: .4byte gUnknown_2022C90 -_080007F8: .4byte 0x013F0102 -_080007FC: .4byte gUnknown_3007FF8 - thumb_func_end VBlankIntr - - thumb_func_start sub_08000800 -sub_08000800: @ 0x08000800 - push {lr} - ldr r1, _08000810 - movs r0, #2 - bl SetFlashTimerIntr - pop {r0} - bx r0 - .align 2, 0 -_08000810: .4byte gUnknown_30027CC - thumb_func_end sub_08000800 - - thumb_func_start HBlankIntr -HBlankIntr: @ 0x08000814 - push {r4, lr} - ldr r4, _0800083C - ldr r0, [r4, #0x10] - cmp r0, #0 - beq _08000822 - bl _call_via_r0 -_08000822: - ldr r2, _08000840 - ldrh r0, [r2] - movs r1, #2 - orrs r0, r1 - strh r0, [r2] - ldrh r0, [r4, #0x1c] - ldrh r2, [r4, #0x1c] - orrs r1, r0 - strh r1, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800083C: .4byte gUnknown_3002360 -_08000840: .4byte gUnknown_3007FF8 - thumb_func_end HBlankIntr - - thumb_func_start VCountIntr -VCountIntr: @ 0x08000844 - push {r4, lr} - ldr r4, _08000870 - ldr r0, [r4, #0x14] - cmp r0, #0 - beq _08000852 - bl _call_via_r0 -_08000852: - bl m4aSoundVSync - ldr r2, _08000874 - ldrh r0, [r2] - movs r1, #4 - orrs r0, r1 - strh r0, [r2] - ldrh r0, [r4, #0x1c] - ldrh r2, [r4, #0x1c] - orrs r1, r0 - strh r1, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08000870: .4byte gUnknown_3002360 -_08000874: .4byte gUnknown_3007FF8 - thumb_func_end VCountIntr - - thumb_func_start SerialIntr -SerialIntr: @ 0x08000878 - push {r4, lr} - ldr r4, _080008A0 - ldr r0, [r4, #0x18] - cmp r0, #0 - beq _08000886 - bl _call_via_r0 -_08000886: - ldr r2, _080008A4 - ldrh r0, [r2] - movs r1, #0x80 - orrs r0, r1 - strh r0, [r2] - ldrh r0, [r4, #0x1c] - ldrh r2, [r4, #0x1c] - orrs r1, r0 - strh r1, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080008A0: .4byte gUnknown_3002360 -_080008A4: .4byte gUnknown_3007FF8 - thumb_func_end SerialIntr - - thumb_func_start sub_080008A8 -sub_080008A8: @ 0x080008A8 - bx lr - .align 2, 0 - thumb_func_end sub_080008A8 - - thumb_func_start WaitForVBlank -WaitForVBlank: @ 0x080008AC - push {lr} - ldr r2, _080008D4 - ldrh r1, [r2, #0x1c] - ldr r0, _080008D8 - ands r0, r1 - ldrh r1, [r2, #0x1c] - strh r0, [r2, #0x1c] - ldrh r1, [r2, #0x1c] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080008D0 - movs r3, #1 -_080008C6: - ldrh r1, [r2, #0x1c] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _080008C6 -_080008D0: - pop {r0} - bx r0 - .align 2, 0 -_080008D4: .4byte gUnknown_3002360 -_080008D8: .4byte 0x0000FFFE - thumb_func_end WaitForVBlank - - thumb_func_start sub_080008DC -sub_080008DC: @ 0x080008DC - ldr r1, _080008E4 - str r0, [r1] - bx lr - .align 2, 0 -_080008E4: .4byte gUnknown_203CC28 - thumb_func_end sub_080008DC - - thumb_func_start sub_080008E8 -sub_080008E8: @ 0x080008E8 - ldr r1, _080008F0 - movs r0, #0 - str r0, [r1] - bx lr - .align 2, 0 -_080008F0: .4byte gUnknown_203CC28 - thumb_func_end sub_080008E8 - - thumb_func_start DoSoftReset -DoSoftReset: @ 0x080008F4 - push {r4, lr} - ldr r1, _08000950 - movs r0, #0 - strh r0, [r1] - bl m4aSoundVSyncOff - bl ScanlineEffect_Stop - ldr r1, _08000954 - ldrh r2, [r1, #0xa] - ldr r3, _08000958 - adds r0, r3, #0 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r4, [r1, #0xa] - ldr r2, _0800095C - adds r0, r2, #0 - ands r0, r4 - strh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - adds r1, #0xc - ldrh r4, [r1, #0xa] - adds r0, r3, #0 - ands r0, r4 - strh r0, [r1, #0xa] - ldrh r4, [r1, #0xa] - adds r0, r2, #0 - ands r0, r4 - strh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - ldr r0, _08000960 - ldrh r1, [r0, #0xa] - ands r3, r1 - strh r3, [r0, #0xa] - ldrh r1, [r0, #0xa] - ands r2, r1 - strh r2, [r0, #0xa] - ldrh r0, [r0, #0xa] - bl SiiRtcProtect - movs r0, #0xff - bl SoftReset - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08000950: .4byte 0x04000208 -_08000954: .4byte 0x040000BC -_08000958: .4byte 0x0000C5FF -_0800095C: .4byte 0x00007FFF -_08000960: .4byte 0x040000D4 - thumb_func_end DoSoftReset - - thumb_func_start GetRivalSonDaughterString -GetRivalSonDaughterString: @ 0x08000964 - push {lr} - sub sp, #4 - mov r1, sp - movs r0, #0 - strh r0, [r1] - ldr r1, _08000980 - ldr r2, _08000984 - mov r0, sp - bl CpuSet - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_08000980: .4byte gUnknown_30070D0 -_08000984: .4byte 0x01000034 - thumb_func_end GetRivalSonDaughterString - - thumb_func_start PutMemBlockHeader -PutMemBlockHeader: @ 0x08000988 - push {r4, lr} - movs r4, #0 - strh r4, [r0] - ldr r4, _080009A0 - strh r4, [r0, #2] - str r3, [r0, #4] - str r1, [r0, #8] - str r2, [r0, #0xc] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080009A0: .4byte 0x0000A3A3 - thumb_func_end PutMemBlockHeader - - thumb_func_start sub_080009A4 -sub_080009A4: @ 0x080009A4 - push {lr} - adds r2, r0, #0 - adds r3, r1, #0 - subs r3, #0x10 - adds r1, r2, #0 - bl PutMemBlockHeader - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080009A4 - - thumb_func_start AllocInternal -AllocInternal: @ 0x080009B8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r4, #0 - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _080009CC - lsrs r0, r1, #2 - adds r0, #1 - lsls r1, r0, #2 -_080009CC: - movs r2, #1 -_080009CE: - ldrh r0, [r4] - cmp r0, #0 - bne _08000A0C - ldr r3, [r4, #4] - cmp r3, r1 - blo _08000A0C - subs r0, r3, r1 - cmp r0, #0x1f - bhi _080009E4 - strh r2, [r4] - b _08000A06 -_080009E4: - subs r3, #0x10 - subs r3, r3, r1 - adds r0, r1, #0 - adds r0, #0x10 - adds r5, r4, r0 - strh r2, [r4] - str r1, [r4, #4] - ldr r2, [r4, #0xc] - adds r0, r5, #0 - adds r1, r4, #0 - bl PutMemBlockHeader - str r5, [r4, #0xc] - ldr r0, [r5, #0xc] - cmp r0, r6 - beq _08000A06 - str r5, [r0, #8] -_08000A06: - adds r0, r4, #0 - adds r0, #0x10 - b _08000A24 -_08000A0C: - ldr r0, [r4, #0xc] - cmp r0, r6 - beq _08000A16 - adds r4, r0, #0 - b _080009CE -_08000A16: - ldr r0, _08000A2C - movs r1, #0xae - ldr r2, _08000A30 - movs r3, #1 - bl AGBAssert - movs r0, #0 -_08000A24: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08000A2C: .4byte gUnknown_829BDF4 -_08000A30: .4byte gUnknown_829BE08 - thumb_func_end AllocInternal - - thumb_func_start sub_08000A34 -sub_08000A34: @ 0x08000A34 - push {r4, r5, r6, r7, lr} - cmp r1, #0 - bne _08000A50 - ldr r0, _08000A48 - ldr r2, _08000A4C - movs r1, #0xc3 - movs r3, #1 - bl AGBAssert - b _08000AF6 - .align 2, 0 -_08000A48: .4byte gUnknown_829BDF4 -_08000A4C: .4byte gUnknown_829BE0C -_08000A50: - adds r6, r0, #0 - adds r4, r1, #0 - subs r4, #0x10 - ldrh r0, [r4, #2] - ldr r7, _08000AFC - cmp r0, r7 - beq _08000A6A - ldr r0, _08000B00 - ldr r2, _08000B04 - movs r1, #0xcc - movs r3, #1 - bl AGBAssert -_08000A6A: - ldrh r0, [r4] - cmp r0, #1 - beq _08000A7C - ldr r0, _08000B00 - ldr r2, _08000B08 - movs r1, #0xcd - movs r3, #1 - bl AGBAssert -_08000A7C: - movs r0, #0 - strh r0, [r4] - ldr r0, [r4, #0xc] - cmp r0, r6 - beq _08000AB8 - ldrh r5, [r0] - cmp r5, #0 - bne _08000AB8 - ldrh r0, [r0, #2] - cmp r0, r7 - beq _08000A9E - ldr r0, _08000B00 - ldr r2, _08000B0C - movs r1, #0xd3 - movs r3, #1 - bl AGBAssert -_08000A9E: - ldr r0, [r4, #4] - adds r0, #0x10 - ldr r2, [r4, #0xc] - ldr r1, [r2, #4] - adds r0, r0, r1 - str r0, [r4, #4] - strh r5, [r2, #2] - ldr r0, [r4, #0xc] - ldr r0, [r0, #0xc] - str r0, [r4, #0xc] - cmp r0, r6 - beq _08000AB8 - str r4, [r0, #8] -_08000AB8: - cmp r4, r6 - beq _08000AF6 - ldr r0, [r4, #8] - ldrh r5, [r0] - cmp r5, #0 - bne _08000AF6 - ldrh r1, [r0, #2] - ldr r0, _08000AFC - cmp r1, r0 - beq _08000AD8 - ldr r0, _08000B00 - ldr r2, _08000B10 - movs r1, #0xe4 - movs r3, #1 - bl AGBAssert -_08000AD8: - ldr r1, [r4, #8] - ldr r0, [r4, #0xc] - str r0, [r1, #0xc] - ldr r1, [r4, #0xc] - cmp r1, r6 - beq _08000AE8 - ldr r0, [r4, #8] - str r0, [r1, #8] -_08000AE8: - strh r5, [r4, #2] - ldr r0, [r4, #8] - ldr r1, [r0, #4] - adds r1, #0x10 - ldr r2, [r4, #4] - adds r1, r1, r2 - str r1, [r0, #4] -_08000AF6: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08000AFC: .4byte 0x0000A3A3 -_08000B00: .4byte gUnknown_829BDF4 -_08000B04: .4byte gUnknown_829BE18 -_08000B08: .4byte gUnknown_829BE40 -_08000B0C: .4byte gUnknown_829BE54 -_08000B10: .4byte gUnknown_829BE80 - thumb_func_end sub_08000A34 - - thumb_func_start AllocZeroedInternal -AllocZeroedInternal: @ 0x08000B14 - push {r4, r5, lr} - sub sp, #4 - adds r4, r1, #0 - bl AllocInternal - adds r5, r0, #0 - cmp r5, #0 - beq _08000B48 - movs r0, #3 - ands r0, r4 - cmp r0, #0 - beq _08000B32 - lsrs r0, r4, #2 - adds r0, #1 - lsls r4, r0, #2 -_08000B32: - movs r0, #0 - str r0, [sp] - lsls r2, r4, #9 - lsrs r2, r2, #0xb - movs r0, #0xa0 - lsls r0, r0, #0x13 - orrs r2, r0 - mov r0, sp - adds r1, r5, #0 - bl CpuSet -_08000B48: - adds r0, r5, #0 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end AllocZeroedInternal - - thumb_func_start CheckMemBlockInternal -CheckMemBlockInternal: @ 0x08000B54 - push {r4, r5, lr} - adds r5, r0, #0 - adds r3, r1, #0 - subs r3, #0x10 - ldrh r2, [r3, #2] - ldr r0, _08000BA0 - cmp r2, r0 - bne _08000B9A - ldr r0, [r3, #0xc] - ldrh r1, [r0, #2] - adds r4, r0, #0 - cmp r1, r2 - bne _08000B9A - cmp r4, r5 - beq _08000B78 - ldr r0, [r4, #8] - cmp r0, r3 - bne _08000B9A -_08000B78: - ldr r2, [r3, #8] - ldrh r1, [r2, #2] - ldr r0, _08000BA0 - cmp r1, r0 - bne _08000B9A - cmp r2, r5 - beq _08000B8C - ldr r0, [r2, #0xc] - cmp r0, r3 - bne _08000B9A -_08000B8C: - cmp r4, r5 - beq _08000BA4 - ldr r0, [r3, #4] - adds r0, #0x10 - adds r0, r3, r0 - cmp r4, r0 - beq _08000BA4 -_08000B9A: - movs r0, #0 - b _08000BA6 - .align 2, 0 -_08000BA0: .4byte 0x0000A3A3 -_08000BA4: - movs r0, #1 -_08000BA6: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end CheckMemBlockInternal - - thumb_func_start InitHeap -InitHeap: @ 0x08000BAC - push {lr} - ldr r2, _08000BC0 - str r0, [r2] - ldr r2, _08000BC4 - str r1, [r2] - bl sub_080009A4 - pop {r0} - bx r0 - .align 2, 0 -_08000BC0: .4byte gUnknown_3000004 -_08000BC4: .4byte gUnknown_3000008 - thumb_func_end InitHeap - - thumb_func_start sub_08000BC8 -sub_08000BC8: @ 0x08000BC8 - push {lr} - adds r1, r0, #0 - ldr r0, _08000BD8 - ldr r0, [r0] - bl AllocInternal - pop {r1} - bx r1 - .align 2, 0 -_08000BD8: .4byte gUnknown_3000004 - thumb_func_end sub_08000BC8 - - thumb_func_start AllocZeroed -AllocZeroed: @ 0x08000BDC - push {lr} - adds r1, r0, #0 - ldr r0, _08000BEC - ldr r0, [r0] - bl AllocZeroedInternal - pop {r1} - bx r1 - .align 2, 0 -_08000BEC: .4byte gUnknown_3000004 - thumb_func_end AllocZeroed - - thumb_func_start Free -Free: @ 0x08000BF0 - push {lr} - adds r1, r0, #0 - ldr r0, _08000C00 - ldr r0, [r0] - bl sub_08000A34 - pop {r0} - bx r0 - .align 2, 0 -_08000C00: .4byte gUnknown_3000004 - thumb_func_end Free - - thumb_func_start CheckMemBlock -CheckMemBlock: @ 0x08000C04 - push {lr} - adds r1, r0, #0 - ldr r0, _08000C14 - ldr r0, [r0] - bl CheckMemBlockInternal - pop {r1} - bx r1 - .align 2, 0 -_08000C14: .4byte gUnknown_3000004 - thumb_func_end CheckMemBlock - - thumb_func_start CheckHeap -CheckHeap: @ 0x08000C18 - push {r4, r5, lr} - ldr r0, _08000C3C - ldr r4, [r0] - adds r5, r0, #0 -_08000C20: - ldr r0, [r5] - adds r1, r4, #0 - adds r1, #0x10 - bl CheckMemBlockInternal - cmp r0, #0 - beq _08000C40 - ldr r4, [r4, #0xc] - ldr r0, [r5] - cmp r4, r0 - bne _08000C20 - movs r0, #1 - b _08000C42 - .align 2, 0 -_08000C3C: .4byte gUnknown_3000004 -_08000C40: - movs r0, #0 -_08000C42: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end CheckHeap - - thumb_func_start ClearDma3Requests -ClearDma3Requests: @ 0x08000C48 - push {lr} - ldr r2, _08000C74 - movs r0, #1 - strb r0, [r2] - ldr r1, _08000C78 - movs r0, #0 - strb r0, [r1] - movs r3, #0 - ldr r0, _08000C7C - movs r1, #0x7f -_08000C5C: - strh r3, [r0, #8] - str r3, [r0] - str r3, [r0, #4] - adds r0, #0x10 - subs r1, #1 - cmp r1, #0 - bge _08000C5C - movs r0, #0 - strb r0, [r2] - pop {r0} - bx r0 - .align 2, 0 -_08000C74: .4byte gUnknown_3000810 -_08000C78: .4byte gUnknown_3000811 -_08000C7C: .4byte gUnknown_3000010 - thumb_func_end ClearDma3Requests - - thumb_func_start ProcessDma3Requests -ProcessDma3Requests: @ 0x08000C80 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - ldr r0, _08000CFC - ldrb r0, [r0] - cmp r0, #0 - beq _08000C96 - b _08000ED6 -_08000C96: - movs r0, #0 - str r0, [sp, #8] - ldr r1, _08000D00 - ldr r2, _08000D04 - ldrb r0, [r2] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrh r0, [r0, #8] - mov ip, r2 - cmp r0, #0 - bne _08000CAE - b _08000ED6 -_08000CAE: - mov r8, r1 - adds r1, #4 - mov sl, r1 - movs r6, #0x80 - lsls r6, r6, #5 - ldr r7, _08000D08 - movs r2, #0 - mov sb, r2 -_08000CBE: - mov r3, ip - ldrb r0, [r3] - lsls r5, r0, #4 - mov r0, r8 - adds r1, r5, r0 - ldrh r0, [r1, #8] - ldr r2, [sp, #8] - adds r0, r2, r0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #8] - movs r0, #0xa0 - lsls r0, r0, #8 - ldr r3, [sp, #8] - cmp r3, r0 - bls _08000CE0 - b _08000ED6 -_08000CE0: - ldr r0, _08000D0C - ldrb r0, [r0] - cmp r0, #0xe0 - bls _08000CEA - b _08000ED6 -_08000CEA: - ldrh r0, [r1, #0xa] - cmp r0, #2 - beq _08000D60 - cmp r0, #2 - bgt _08000D10 - cmp r0, #1 - beq _08000D1C - b _08000E80 - .align 2, 0 -_08000CFC: .4byte gUnknown_3000810 -_08000D00: .4byte gUnknown_3000010 -_08000D04: .4byte gUnknown_3000811 -_08000D08: .4byte 0x040000D4 -_08000D0C: .4byte 0x04000006 -_08000D10: - cmp r0, #3 - beq _08000DCC - cmp r0, #4 - bne _08000D1A - b _08000E18 -_08000D1A: - b _08000E80 -_08000D1C: - ldr r3, [r1] - mov r2, sl - adds r0, r5, r2 - ldr r2, [r0] - ldrh r1, [r1, #8] - cmp r1, r6 - bhi _08000D36 - str r3, [r7] - str r2, [r7, #4] - lsrs r0, r1, #2 - movs r1, #0x84 - lsls r1, r1, #0x18 - b _08000E3A -_08000D36: - ldr r4, _08000D58 - str r3, [r4] - str r2, [r4, #4] - ldr r0, _08000D5C - str r0, [r4, #8] - ldr r0, [r4, #8] - adds r3, r3, r6 - adds r2, r2, r6 - subs r1, r1, r6 - cmp r1, r6 - bhi _08000D36 - str r3, [r4] - str r2, [r4, #4] - lsrs r0, r1, #2 - movs r1, #0x84 - lsls r1, r1, #0x18 - b _08000E06 - .align 2, 0 -_08000D58: .4byte 0x040000D4 -_08000D5C: .4byte 0x84000400 -_08000D60: - mov r3, sl - adds r0, r5, r3 - ldr r4, [r0] - ldrh r1, [r1, #8] - cmp r1, r6 - bhi _08000D84 - mov r0, r8 - adds r0, #0xc - adds r0, r5, r0 - ldr r0, [r0] - str r0, [sp] - mov r5, sp - str r5, [r7] - str r4, [r7, #4] - lsrs r0, r1, #2 - movs r1, #0x85 - lsls r1, r1, #0x18 - b _08000E3A -_08000D84: - mov r2, ip - ldrb r0, [r2] - lsls r0, r0, #4 - mov r5, r8 - adds r5, #0xc - adds r0, r0, r5 - ldr r0, [r0] - str r0, [sp] - ldr r3, _08000DC4 - mov r0, sp - str r0, [r3] - str r4, [r3, #4] - ldr r0, _08000DC8 - str r0, [r3, #8] - ldr r0, [r3, #8] - adds r4, r4, r6 - subs r1, r1, r6 - cmp r1, r6 - bhi _08000D84 - ldrb r0, [r2] - lsls r0, r0, #4 - adds r0, r0, r5 - ldr r0, [r0] - str r0, [sp] - mov r2, sp - str r2, [r3] - str r4, [r3, #4] - lsrs r0, r1, #2 - movs r1, #0x85 - lsls r1, r1, #0x18 - b _08000E7A - .align 2, 0 -_08000DC4: .4byte 0x040000D4 -_08000DC8: .4byte 0x85000400 -_08000DCC: - ldr r3, [r1] - mov r2, sl - adds r0, r5, r2 - ldr r2, [r0] - ldrh r1, [r1, #8] - cmp r1, r6 - bhi _08000DE6 - str r3, [r7] - str r2, [r7, #4] - lsrs r0, r1, #1 - movs r1, #0x80 - lsls r1, r1, #0x18 - b _08000E3A -_08000DE6: - ldr r4, _08000E10 - str r3, [r4] - str r2, [r4, #4] - ldr r0, _08000E14 - str r0, [r4, #8] - ldr r0, [r4, #8] - adds r3, r3, r6 - adds r2, r2, r6 - subs r1, r1, r6 - cmp r1, r6 - bhi _08000DE6 - str r3, [r4] - str r2, [r4, #4] - lsrs r0, r1, #1 - movs r1, #0x80 - lsls r1, r1, #0x18 -_08000E06: - orrs r0, r1 - str r0, [r4, #8] - ldr r0, [r4, #8] - b _08000E80 - .align 2, 0 -_08000E10: .4byte 0x040000D4 -_08000E14: .4byte 0x80000800 -_08000E18: - mov r3, sl - adds r0, r5, r3 - ldr r2, [r0] - ldrh r4, [r1, #8] - add r1, sp, #4 - cmp r4, r6 - bhi _08000E42 - mov r0, r8 - adds r0, #0xc - adds r0, r5, r0 - ldr r0, [r0] - strh r0, [r1] - str r1, [r7] - str r2, [r7, #4] - lsrs r0, r4, #1 - movs r1, #0x81 - lsls r1, r1, #0x18 -_08000E3A: - orrs r0, r1 - str r0, [r7, #8] - ldr r0, [r7, #8] - b _08000E80 -_08000E42: - mov r5, ip - ldrb r0, [r5] - lsls r0, r0, #4 - ldr r3, _08000EE8 - adds r0, r0, r3 - ldr r0, [r0] - strh r0, [r1] - ldr r3, _08000EEC - str r1, [r3] - str r2, [r3, #4] - ldr r0, _08000EF0 - str r0, [r3, #8] - ldr r0, [r3, #8] - adds r2, r2, r6 - subs r4, r4, r6 - cmp r4, r6 - bhi _08000E42 - ldrb r0, [r5] - lsls r0, r0, #4 - ldr r5, _08000EE8 - adds r0, r0, r5 - ldr r0, [r0] - strh r0, [r1] - str r1, [r3] - str r2, [r3, #4] - lsrs r0, r4, #1 - movs r1, #0x81 - lsls r1, r1, #0x18 -_08000E7A: - orrs r0, r1 - str r0, [r3, #8] - ldr r0, [r3, #8] -_08000E80: - ldr r1, _08000EF4 - mov r3, ip - ldrb r0, [r3] - lsls r0, r0, #4 - adds r0, r0, r1 - mov r2, sb - str r2, [r0] - ldrb r0, [r3] - lsls r0, r0, #4 - add r0, sl - str r2, [r0] - ldrb r0, [r3] - lsls r0, r0, #4 - adds r0, r0, r1 - movs r4, #0 - strh r2, [r0, #8] - ldrb r0, [r3] - lsls r0, r0, #4 - adds r0, r0, r1 - mov r5, sb - strh r5, [r0, #0xa] - ldrb r0, [r3] - lsls r0, r0, #4 - adds r1, #0xc - adds r0, r0, r1 - mov r1, sb - str r1, [r0] - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - lsls r0, r0, #0x18 - cmp r0, #0 - bge _08000EC4 - strb r4, [r3] -_08000EC4: - mov r2, ip - ldrb r0, [r2] - lsls r0, r0, #4 - ldr r3, _08000EF4 - adds r0, r0, r3 - ldrh r0, [r0, #8] - cmp r0, #0 - beq _08000ED6 - b _08000CBE -_08000ED6: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08000EE8: .4byte gUnknown_300001C -_08000EEC: .4byte 0x040000D4 -_08000EF0: .4byte 0x81000800 -_08000EF4: .4byte gUnknown_3000010 - thumb_func_end ProcessDma3Requests - - thumb_func_start RequestDma3Copy -RequestDma3Copy: @ 0x08000EF8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov ip, r0 - mov r8, r1 - lsls r2, r2, #0x10 - lsrs r7, r2, #0x10 - lsls r3, r3, #0x18 - lsrs r4, r3, #0x18 - movs r5, #0 - ldr r1, _08000F44 - movs r0, #1 - strb r0, [r1] - ldr r0, _08000F48 - ldrb r2, [r0] - mov sl, r1 - ldr r6, _08000F4C - mov sb, r6 - lsls r0, r2, #4 - adds r1, r0, r6 -_08000F24: - lsls r3, r2, #4 - ldrh r0, [r1, #8] - cmp r0, #0 - bne _08000F64 - mov r0, ip - str r0, [r1] - mov r0, sb - adds r0, #4 - adds r0, r3, r0 - mov r3, r8 - str r3, [r0] - strh r7, [r1, #8] - cmp r4, #1 - bne _08000F50 - strh r4, [r1, #0xa] - b _08000F54 - .align 2, 0 -_08000F44: .4byte gUnknown_3000810 -_08000F48: .4byte gUnknown_3000811 -_08000F4C: .4byte gUnknown_3000010 -_08000F50: - movs r0, #3 - strh r0, [r1, #0xa] -_08000F54: - movs r0, #0 - ldr r1, _08000F60 - strb r0, [r1] - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - b _08000F80 - .align 2, 0 -_08000F60: .4byte gUnknown_3000810 -_08000F64: - adds r1, #0x10 - adds r2, #1 - cmp r2, #0x7f - ble _08000F70 - adds r1, r6, #0 - movs r2, #0 -_08000F70: - adds r5, #1 - cmp r5, #0x7f - ble _08000F24 - movs r0, #0 - mov r3, sl - strb r0, [r3] - movs r0, #1 - rsbs r0, r0, #0 -_08000F80: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end RequestDma3Copy - - thumb_func_start RequestDma3Fill -RequestDma3Fill: @ 0x08000F90 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sb, r0 - mov r8, r1 - lsls r2, r2, #0x10 - lsrs r7, r2, #0x10 - lsls r3, r3, #0x18 - lsrs r5, r3, #0x18 - movs r6, #0 - ldr r0, _08000FE8 - ldrb r2, [r0] - ldr r1, _08000FEC - movs r0, #1 - strb r0, [r1] - mov sl, r1 - ldr r0, _08000FF0 - mov ip, r0 - mov r4, ip - lsls r0, r2, #4 - adds r0, #8 - adds r1, r0, r4 -_08000FC0: - lsls r3, r2, #4 - ldrh r0, [r1] - cmp r0, #0 - bne _08001008 - adds r0, r4, #4 - adds r0, r3, r0 - mov r6, r8 - str r6, [r0] - strh r7, [r1] - strh r5, [r1, #2] - adds r0, r4, #0 - adds r0, #0xc - adds r0, r3, r0 - mov r3, sb - str r3, [r0] - cmp r5, #1 - bne _08000FF4 - movs r0, #2 - b _08000FF6 - .align 2, 0 -_08000FE8: .4byte gUnknown_3000811 -_08000FEC: .4byte gUnknown_3000810 -_08000FF0: .4byte gUnknown_3000010 -_08000FF4: - movs r0, #4 -_08000FF6: - strh r0, [r1, #2] - movs r0, #0 - ldr r6, _08001004 - strb r0, [r6] - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - b _08001026 - .align 2, 0 -_08001004: .4byte gUnknown_3000810 -_08001008: - adds r1, #0x10 - adds r2, #1 - cmp r2, #0x7f - ble _08001016 - mov r1, ip - adds r1, #8 - movs r2, #0 -_08001016: - adds r6, #1 - cmp r6, #0x7f - ble _08000FC0 - movs r0, #0 - mov r1, sl - strb r0, [r1] - movs r0, #1 - rsbs r0, r0, #0 -_08001026: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end RequestDma3Fill - - thumb_func_start CheckForSpaceForDma3Request -CheckForSpaceForDma3Request: @ 0x08001034 - push {lr} - movs r2, #0 - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - movs r3, #1 - rsbs r3, r3, #0 - cmp r1, r3 - bne _0800105C - ldr r1, _08001058 -_08001046: - ldrh r0, [r1, #8] - cmp r0, #0 - bne _08001068 - adds r1, #0x10 - adds r2, #1 - cmp r2, #0x7f - ble _08001046 -_08001054: - movs r0, #0 - b _0800106C - .align 2, 0 -_08001058: .4byte gUnknown_3000010 -_0800105C: - ldr r0, _08001070 - lsls r1, r1, #4 - adds r1, r1, r0 - ldrh r0, [r1, #8] - cmp r0, #0 - beq _08001054 -_08001068: - movs r0, #1 - rsbs r0, r0, #0 -_0800106C: - pop {r1} - bx r1 - .align 2, 0 -_08001070: .4byte gUnknown_3000010 - thumb_func_end CheckForSpaceForDma3Request - - thumb_func_start InitGpuRegManager -InitGpuRegManager: @ 0x08001074 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r2, #0 - ldr r7, _080010B8 - ldr r0, _080010BC - mov ip, r0 - ldr r1, _080010C0 - mov r8, r1 - ldr r6, _080010C4 - movs r5, #0 - ldr r4, _080010C8 - movs r3, #0xff -_0800108E: - adds r0, r2, r6 - strb r5, [r0] - adds r1, r2, r4 - ldrb r0, [r1] - orrs r0, r3 - strb r0, [r1] - adds r2, #1 - cmp r2, #0x5f - ble _0800108E - movs r0, #0 - strb r0, [r7] - mov r1, ip - strb r0, [r1] - movs r0, #0 - mov r1, r8 - strh r0, [r1] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080010B8: .4byte gUnknown_30008D8 -_080010BC: .4byte gUnknown_30008D9 -_080010C0: .4byte gUnknown_30008DA -_080010C4: .4byte gUnknown_3000818 -_080010C8: .4byte gUnknown_3000878 - thumb_func_end InitGpuRegManager - - thumb_func_start CopyBufferedValueToGpuReg -CopyBufferedValueToGpuReg: @ 0x080010CC - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #4 - bne _080010F8 - ldr r2, _080010EC - ldrh r1, [r2] - ldr r0, _080010F0 - ands r0, r1 - strh r0, [r2] - ldr r1, _080010F4 - ldrh r0, [r2] - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r2] - b _08001106 - .align 2, 0 -_080010EC: .4byte 0x04000004 -_080010F0: .4byte 0x0000FFE7 -_080010F4: .4byte gUnknown_300081C -_080010F8: - movs r0, #0x80 - lsls r0, r0, #0x13 - adds r0, r2, r0 - ldr r1, _0800110C - adds r1, r2, r1 - ldrh r1, [r1] - strh r1, [r0] -_08001106: - pop {r0} - bx r0 - .align 2, 0 -_0800110C: .4byte gUnknown_3000818 - thumb_func_end CopyBufferedValueToGpuReg - - thumb_func_start CopyBufferedValuesToGpuRegs -CopyBufferedValuesToGpuRegs: @ 0x08001110 - push {r4, r5, lr} - ldr r0, _0800113C - ldrb r0, [r0] - cmp r0, #0 - bne _08001134 - movs r5, #0 -_0800111C: - ldr r0, _08001140 - adds r4, r5, r0 - ldrb r0, [r4] - cmp r0, #0xff - beq _08001134 - bl CopyBufferedValueToGpuReg - movs r0, #0xff - strb r0, [r4] - adds r5, #1 - cmp r5, #0x5f - ble _0800111C -_08001134: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0800113C: .4byte gUnknown_30008D8 -_08001140: .4byte gUnknown_3000878 - thumb_func_end CopyBufferedValuesToGpuRegs - - thumb_func_start SetGpuReg -SetGpuReg: @ 0x08001144 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - cmp r4, #0x5f - bhi _080011C0 - ldr r0, _08001180 - adds r0, r4, r0 - strh r1, [r0] - ldr r0, _08001184 - ldrh r1, [r0] - movs r0, #0xff - ands r0, r1 - subs r0, #0xa1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x40 - bls _08001178 - movs r0, #0x80 - lsls r0, r0, #0x13 - ldrh r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0800118E -_08001178: - adds r0, r4, #0 - bl CopyBufferedValueToGpuReg - b _080011C0 - .align 2, 0 -_08001180: .4byte gUnknown_3000818 -_08001184: .4byte 0x04000006 -_08001188: - movs r0, #0 - strb r0, [r5] - b _080011C0 -_0800118E: - ldr r2, _080011C8 - movs r0, #1 - strb r0, [r2] - movs r3, #0 - ldr r0, _080011CC - ldrb r1, [r0] - adds r5, r2, #0 - adds r2, r0, #0 - cmp r1, #0xff - beq _080011B8 - adds r1, r2, #0 -_080011A4: - ldrb r0, [r1] - cmp r0, r4 - beq _08001188 - adds r1, #1 - adds r3, #1 - cmp r3, #0x5f - bgt _080011B8 - ldrb r0, [r1] - cmp r0, #0xff - bne _080011A4 -_080011B8: - adds r0, r3, r2 - movs r1, #0 - strb r4, [r0] - strb r1, [r5] -_080011C0: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080011C8: .4byte gUnknown_30008D8 -_080011CC: .4byte gUnknown_3000878 - thumb_func_end SetGpuReg - - thumb_func_start GetGpuReg -GetGpuReg: @ 0x080011D0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - cmp r1, #4 - bne _080011E4 - ldr r0, _080011E0 - b _080011F6 - .align 2, 0 -_080011E0: .4byte 0x04000004 -_080011E4: - cmp r1, #6 - beq _080011F4 - ldr r0, _080011F0 - adds r0, r1, r0 - ldrh r0, [r0] - b _080011F8 - .align 2, 0 -_080011F0: .4byte gUnknown_3000818 -_080011F4: - ldr r0, _080011FC -_080011F6: - ldrh r0, [r0] -_080011F8: - pop {r1} - bx r1 - .align 2, 0 -_080011FC: .4byte 0x04000006 - thumb_func_end GetGpuReg - - thumb_func_start SetGpuRegBits -SetGpuRegBits: @ 0x08001200 - push {lr} - adds r2, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0800121C - adds r1, r0, r1 - ldrh r1, [r1] - orrs r1, r2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 -_0800121C: .4byte gUnknown_3000818 - thumb_func_end SetGpuRegBits - - thumb_func_start ClearGpuRegBits -ClearGpuRegBits: @ 0x08001220 - push {lr} - adds r2, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r2, #0x10 - ldr r1, _0800123C - adds r1, r0, r1 - ldrh r1, [r1] - lsrs r2, r2, #0x10 - bics r1, r2 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 -_0800123C: .4byte gUnknown_3000818 - thumb_func_end ClearGpuRegBits - - thumb_func_start SyncRegIE -SyncRegIE: @ 0x08001240 - push {r4, r5, lr} - ldr r5, _08001264 - ldrb r0, [r5] - cmp r0, #0 - beq _0800125E - ldr r2, _08001268 - ldrh r1, [r2] - movs r4, #0 - strh r4, [r2] - ldr r3, _0800126C - ldr r0, _08001270 - ldrh r0, [r0] - strh r0, [r3] - strh r1, [r2] - strb r4, [r5] -_0800125E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08001264: .4byte gUnknown_30008D9 -_08001268: .4byte 0x04000208 -_0800126C: .4byte 0x04000200 -_08001270: .4byte gUnknown_30008DA - thumb_func_end SyncRegIE - - thumb_func_start EnableInterrupts -EnableInterrupts: @ 0x08001274 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _08001298 - ldrh r1, [r4] - orrs r0, r1 - strh r0, [r4] - ldr r1, _0800129C - movs r0, #1 - strb r0, [r1] - bl SyncRegIE - ldrh r0, [r4] - bl UpdateRegDispstatIntrBits - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08001298: .4byte gUnknown_30008DA -_0800129C: .4byte gUnknown_30008D9 - thumb_func_end EnableInterrupts - - thumb_func_start DisableInterrupts -DisableInterrupts: @ 0x080012A0 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _080012C4 - ldrh r1, [r4] - bics r1, r0 - strh r1, [r4] - ldr r1, _080012C8 - movs r0, #1 - strb r0, [r1] - bl SyncRegIE - ldrh r0, [r4] - bl UpdateRegDispstatIntrBits - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080012C4: .4byte gUnknown_30008DA -_080012C8: .4byte gUnknown_30008D9 - thumb_func_end DisableInterrupts - - thumb_func_start UpdateRegDispstatIntrBits -UpdateRegDispstatIntrBits: @ 0x080012CC - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - movs r0, #4 - bl GetGpuReg - movs r2, #0x18 - ands r2, r0 - movs r1, #1 - ands r1, r4 - rsbs r0, r1, #0 - orrs r0, r1 - asrs r1, r0, #0x1f - movs r0, #8 - ands r1, r0 - movs r0, #2 - ands r0, r4 - cmp r0, #0 - beq _080012F8 - movs r0, #0x10 - orrs r1, r0 -_080012F8: - cmp r2, r1 - beq _08001302 - movs r0, #4 - bl SetGpuReg -_08001302: - pop {r4} - pop {r0} - bx r0 - thumb_func_end UpdateRegDispstatIntrBits - - thumb_func_start ResetBgs -ResetBgs: @ 0x08001308 - push {lr} - bl ResetBgControlStructs - ldr r1, _0800131C - movs r0, #0 - strh r0, [r1, #0x10] - bl SetTextModeAndHideBgs - pop {r0} - bx r0 - .align 2, 0 -_0800131C: .4byte gUnknown_30008E0 - thumb_func_end ResetBgs - - thumb_func_start SetBgModeInternal -SetBgModeInternal: @ 0x08001320 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _08001334 - ldrh r2, [r3, #0x10] - ldr r1, _08001338 - ands r1, r2 - orrs r1, r0 - strh r1, [r3, #0x10] - bx lr - .align 2, 0 -_08001334: .4byte gUnknown_30008E0 -_08001338: .4byte 0x0000FFF8 - thumb_func_end SetBgModeInternal - - thumb_func_start GetBgMode -GetBgMode: @ 0x0800133C - ldr r0, _08001348 - ldrb r1, [r0, #0x10] - movs r0, #7 - ands r0, r1 - bx lr - .align 2, 0 -_08001348: .4byte gUnknown_30008E0 - thumb_func_end GetBgMode - - thumb_func_start ResetBgControlStructs -ResetBgControlStructs: @ 0x0800134C - push {lr} - ldr r2, _08001364 - ldr r0, _08001368 - ldr r0, [r0] - adds r1, r2, #0 - adds r1, #0xc -_08001358: - str r0, [r1] - subs r1, #4 - cmp r1, r2 - bge _08001358 - pop {r0} - bx r0 - .align 2, 0 -_08001364: .4byte gUnknown_30008E0 -_08001368: .4byte gUnknown_829BEAC - thumb_func_end ResetBgControlStructs - - thumb_func_start Unused_ResetBgControlStruct -Unused_ResetBgControlStruct: @ 0x0800136C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl sub_080017BC - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0800138A - ldr r1, _08001390 - lsls r0, r4, #2 - adds r0, r0, r1 - ldr r1, _08001394 - ldr r1, [r1] - str r1, [r0] -_0800138A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08001390: .4byte gUnknown_30008E0 -_08001394: .4byte gUnknown_829BEAC - thumb_func_end Unused_ResetBgControlStruct - - thumb_func_start SetBgControlAttributes -SetBgControlAttributes: @ 0x08001398 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - ldr r4, [sp, #0x30] - ldr r5, [sp, #0x34] - ldr r6, [sp, #0x38] - mov ip, r6 - ldr r6, [sp, #0x3c] - mov r8, r6 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - str r7, [sp] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sl, r1 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov sb, r3 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp, #4] - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - mov r0, ip - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - mov r1, r8 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp, #0xc] - adds r0, r7, #0 - bl sub_080017BC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov ip, r0 - cmp r0, #0 - bne _080014B0 - ldr r2, _080014C0 - mov r8, r2 - mov r0, sl - cmp r0, #0xff - beq _0800140C - lsls r2, r7, #2 - add r2, r8 - movs r1, #3 - ands r1, r0 - ldrb r3, [r2, #1] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #1] -_0800140C: - cmp r6, #0xff - beq _08001424 - lsls r1, r7, #2 - add r1, r8 - movs r0, #0x1f - ands r6, r0 - lsls r3, r6, #2 - ldrb r2, [r1, #1] - subs r0, #0x9c - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #1] -_08001424: - mov r1, sb - cmp r1, #0xff - beq _08001440 - lsls r1, r7, #2 - add r1, r8 - movs r0, #3 - mov r2, sb - ands r2, r0 - lsls r3, r2, #2 - ldrb r2, [r1] - subs r0, #0x10 - ands r0, r2 - orrs r0, r3 - strb r0, [r1] -_08001440: - ldr r6, [sp, #4] - cmp r6, #0xff - beq _08001456 - lsls r1, r7, #2 - add r1, r8 - lsls r3, r6, #7 - ldrb r2, [r1, #1] - movs r0, #0x7f - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #1] -_08001456: - cmp r5, #0xff - beq _0800146E - lsls r1, r7, #2 - add r1, r8 - movs r0, #3 - ands r5, r0 - lsls r3, r5, #4 - ldrb r2, [r1] - subs r0, #0x34 - ands r0, r2 - orrs r0, r3 - strb r0, [r1] -_0800146E: - cmp r4, #0xff - beq _08001486 - lsls r1, r7, #2 - add r1, r8 - movs r0, #1 - ands r4, r0 - lsls r3, r4, #6 - ldrb r2, [r1] - subs r0, #0x42 - ands r0, r2 - orrs r0, r3 - strb r0, [r1] -_08001486: - ldr r0, [sp, #0xc] - cmp r0, #0xff - beq _0800149C - lsls r1, r7, #2 - add r1, r8 - lsls r3, r0, #7 - ldrb r2, [r1] - movs r0, #0x7f - ands r0, r2 - orrs r0, r3 - strb r0, [r1] -_0800149C: - ldr r1, [sp] - lsls r0, r1, #2 - add r0, r8 - mov r2, ip - strb r2, [r0, #2] - strb r2, [r0, #3] - ldrb r1, [r0] - movs r2, #1 - orrs r1, r2 - strb r1, [r0] -_080014B0: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080014C0: .4byte gUnknown_30008E0 - thumb_func_end SetBgControlAttributes - - thumb_func_start GetBgControlAttribute -GetBgControlAttribute: @ 0x080014C4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - adds r0, r4, #0 - bl sub_080017BC - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08001570 - ldr r1, _080014FC - lsls r2, r4, #2 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1f - adds r3, r1, #0 - cmp r0, #0 - beq _08001570 - subs r0, r5, #1 - cmp r0, #7 - bhi _08001570 - lsls r0, r0, #2 - ldr r1, _08001500 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080014FC: .4byte gUnknown_30008E0 -_08001500: .4byte _08001504 -_08001504: @ jump table - .4byte _08001524 @ case 0 - .4byte _0800152E @ case 1 - .4byte _08001538 @ case 2 - .4byte _08001542 @ case 3 - .4byte _0800154C @ case 4 - .4byte _08001554 @ case 5 - .4byte _0800155E @ case 6 - .4byte _08001568 @ case 7 -_08001524: - adds r0, r2, r3 - ldrb r0, [r0] - lsls r0, r0, #0x1f - lsrs r0, r0, #0x1f - b _08001572 -_0800152E: - adds r0, r2, r3 - ldrb r0, [r0, #1] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - b _08001572 -_08001538: - adds r0, r2, r3 - ldrb r0, [r0, #1] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1b - b _08001572 -_08001542: - adds r0, r2, r3 - ldrb r0, [r0] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1e - b _08001572 -_0800154C: - adds r0, r2, r3 - ldrb r0, [r0, #1] - lsrs r0, r0, #7 - b _08001572 -_08001554: - adds r0, r2, r3 - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - b _08001572 -_0800155E: - adds r0, r2, r3 - ldrb r0, [r0] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1f - b _08001572 -_08001568: - adds r0, r2, r3 - ldrb r0, [r0] - lsrs r0, r0, #7 - b _08001572 -_08001570: - movs r0, #0xff -_08001572: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end GetBgControlAttribute - - thumb_func_start LoadBgVram -LoadBgVram: @ 0x08001578 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r1 - ldr r1, [sp, #0x18] - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r2, r2, #0x10 - lsrs r7, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r6, r3, #0x10 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - adds r0, r4, #0 - bl sub_080017BC - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080015F0 - ldr r1, _080015B8 - lsls r0, r4, #2 - adds r1, r0, r1 - ldrb r0, [r1] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _080015F0 - cmp r5, #1 - beq _080015BC - cmp r5, #2 - beq _080015C4 - movs r2, #0xff - b _080015F4 - .align 2, 0 -_080015B8: .4byte gUnknown_30008E0 -_080015BC: - ldrb r0, [r1, #1] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x10 - b _080015CC -_080015C4: - ldrb r0, [r1, #1] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1b - lsls r0, r0, #0xb -_080015CC: - adds r0, r6, r0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xc0 - lsls r1, r1, #0x13 - adds r1, r0, r1 - mov r0, r8 - adds r2, r7, #0 - movs r3, #0 - bl RequestDma3Copy - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _080015F4 -_080015F0: - movs r0, #0xff - b _080015F6 -_080015F4: - adds r0, r2, #0 -_080015F6: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end LoadBgVram - - thumb_func_start ShowBgInternal -ShowBgInternal: @ 0x08001600 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl sub_080017BC - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0800166E - ldr r5, _08001674 - lsls r0, r4, #2 - adds r2, r0, r5 - ldrb r3, [r2] - lsls r0, r3, #0x1f - cmp r0, #0 - beq _0800166E - lsls r1, r3, #0x1a - lsrs r1, r1, #0x1e - ldrb r2, [r2, #1] - lsls r0, r2, #0x1e - lsrs r0, r0, #0x1c - orrs r1, r0 - movs r0, #0x40 - ands r0, r3 - orrs r1, r0 - lsrs r0, r2, #7 - lsls r0, r0, #7 - orrs r1, r0 - lsls r2, r2, #0x19 - lsrs r2, r2, #0x1b - lsls r2, r2, #8 - orrs r1, r2 - lsrs r0, r3, #7 - lsls r0, r0, #0xd - orrs r1, r0 - lsls r0, r3, #0x1c - lsrs r0, r0, #0x1e - lsls r0, r0, #0xe - orrs r1, r0 - lsls r0, r4, #0x19 - movs r2, #0x80 - lsls r2, r2, #0x14 - adds r0, r0, r2 - lsrs r0, r0, #0x18 - bl SetGpuReg - adds r1, r4, #0 - adds r1, #8 - movs r0, #1 - lsls r0, r1 - ldrh r1, [r5, #0x10] - orrs r0, r1 - ldr r1, _08001678 - ands r0, r1 - strh r0, [r5, #0x10] -_0800166E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08001674: .4byte gUnknown_30008E0 -_08001678: .4byte 0x00000F07 - thumb_func_end ShowBgInternal - - thumb_func_start HideBgInternal -HideBgInternal: @ 0x0800167C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl sub_080017BC - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080016A2 - ldr r2, _080016A8 - adds r0, r4, #0 - adds r0, #8 - movs r1, #1 - lsls r1, r0 - ldrh r0, [r2, #0x10] - bics r0, r1 - ldr r1, _080016AC - ands r0, r1 - strh r0, [r2, #0x10] -_080016A2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080016A8: .4byte gUnknown_30008E0 -_080016AC: .4byte 0x00000F07 - thumb_func_end HideBgInternal - - thumb_func_start SyncBgVisibilityAndMode -SyncBgVisibilityAndMode: @ 0x080016B0 - push {lr} - movs r0, #0 - bl GetGpuReg - ldr r1, _080016CC - ands r1, r0 - ldr r0, _080016D0 - ldrh r0, [r0, #0x10] - orrs r1, r0 - movs r0, #0 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 -_080016CC: .4byte 0x0000F0F8 -_080016D0: .4byte gUnknown_30008E0 - thumb_func_end SyncBgVisibilityAndMode - - thumb_func_start SetTextModeAndHideBgs -SetTextModeAndHideBgs: @ 0x080016D4 - push {lr} - movs r0, #0 - bl GetGpuReg - ldr r1, _080016EC - ands r1, r0 - movs r0, #0 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 -_080016EC: .4byte 0x0000F0F8 - thumb_func_end SetTextModeAndHideBgs - - thumb_func_start SetBgAffineInternal -SetBgAffineInternal: @ 0x080016F0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x24 - mov ip, r1 - mov r8, r2 - ldr r1, [sp, #0x3c] - ldr r2, [sp, #0x40] - ldr r4, [sp, #0x44] - ldr r5, [sp, #0x48] - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - ldr r0, _08001734 - ldrh r0, [r0, #0x10] - movs r1, #7 - ands r1, r0 - cmp r1, #1 - beq _08001738 - cmp r1, #1 - ble _080017AE - cmp r1, #2 - beq _0800173E - b _080017AE - .align 2, 0 -_08001734: .4byte gUnknown_30008E0 -_08001738: - cmp r6, #2 - bne _080017AE - b _08001748 -_0800173E: - subs r0, r6, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _080017AE -_08001748: - mov r0, ip - str r0, [sp] - mov r0, r8 - str r0, [sp, #4] - mov r0, sp - strh r3, [r0, #8] - strh r7, [r0, #0xa] - strh r2, [r0, #0xc] - strh r4, [r0, #0xe] - strh r5, [r0, #0x10] - add r4, sp, #0x14 - adds r1, r4, #0 - movs r2, #1 - bl BgAffineSet - ldrh r1, [r4] - movs r0, #0x20 - bl SetGpuReg - ldrh r1, [r4, #2] - movs r0, #0x22 - bl SetGpuReg - ldrh r1, [r4, #4] - movs r0, #0x24 - bl SetGpuReg - ldrh r1, [r4, #6] - movs r0, #0x26 - bl SetGpuReg - ldrh r1, [r4] - movs r0, #0x20 - bl SetGpuReg - ldrh r1, [r4, #8] - movs r0, #0x28 - bl SetGpuReg - ldrh r1, [r4, #0xa] - movs r0, #0x2a - bl SetGpuReg - ldrh r1, [r4, #0xc] - movs r0, #0x2c - bl SetGpuReg - ldrh r1, [r4, #0xe] - movs r0, #0x2e - bl SetGpuReg -_080017AE: - add sp, #0x24 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetBgAffineInternal - - thumb_func_start sub_080017BC -sub_080017BC: @ 0x080017BC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bhi _080017CA - movs r0, #0 - b _080017CC -_080017CA: - movs r0, #1 -_080017CC: - pop {r1} - bx r1 - thumb_func_end sub_080017BC - - thumb_func_start sub_080017D0 -sub_080017D0: @ 0x080017D0 - movs r0, #0 - bx lr - thumb_func_end sub_080017D0 - - thumb_func_start ResetBgsAndClearDma3BusyFlags -ResetBgsAndClearDma3BusyFlags: @ 0x080017D4 - push {r4, lr} - adds r4, r0, #0 - bl ResetBgs - ldr r1, _080017F8 - movs r2, #0 - adds r0, r1, #0 - adds r0, #0xc -_080017E4: - str r2, [r0] - subs r0, #4 - cmp r0, r1 - bge _080017E4 - ldr r0, _080017FC - str r4, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080017F8: .4byte gUnknown_3000938 -_080017FC: .4byte gUnknown_3002FF4 - thumb_func_end ResetBgsAndClearDma3BusyFlags - - thumb_func_start InitBgsFromTemplates -InitBgsFromTemplates: @ 0x08001800 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - adds r5, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r2, #0x18 - lsrs r4, r2, #0x18 - bl SetBgModeInternal - bl ResetBgControlStructs - cmp r4, #0 - beq _080018AC - movs r7, #0 - ldr r0, _080018BC - mov sb, r0 - movs r2, #0xc - add r2, sb - mov sl, r2 - adds r6, r5, #0 - mov r8, r4 -_08001832: - ldr r4, [r6] - lsls r0, r4, #0x1e - lsrs r5, r0, #0x1e - cmp r5, #3 - bhi _0800189E - lsls r1, r4, #0x1c - lsrs r1, r1, #0x1e - lsls r2, r4, #0x17 - lsrs r2, r2, #0x1b - lsls r3, r4, #0x15 - lsrs r3, r3, #0x1e - lsls r0, r4, #0x14 - lsrs r0, r0, #0x1f - str r0, [sp] - lsls r0, r4, #0x12 - lsrs r0, r0, #0x1e - str r0, [sp, #4] - str r7, [sp, #8] - str r7, [sp, #0xc] - adds r0, r5, #0 - bl SetBgControlAttributes - lsls r4, r5, #4 - mov r5, sb - adds r3, r4, r5 - ldr r2, [r6] - lsls r2, r2, #8 - lsrs r2, r2, #0x16 - ldrh r0, [r3] - ldr r5, _080018C0 - adds r1, r5, #0 - ands r0, r1 - orrs r0, r2 - strh r0, [r3] - ldrb r0, [r3, #1] - movs r2, #0x3d - rsbs r2, r2, #0 - adds r1, r2, #0 - ands r0, r1 - strb r0, [r3, #1] - ldr r0, [r3] - ldr r1, _080018C4 - ands r0, r1 - str r0, [r3] - mov r0, sb - adds r0, #4 - adds r0, r4, r0 - str r7, [r0] - mov r0, sb - adds r0, #8 - adds r0, r4, r0 - str r7, [r0] - add r4, sl - str r7, [r4] -_0800189E: - adds r6, #4 - movs r5, #1 - rsbs r5, r5, #0 - add r8, r5 - mov r0, r8 - cmp r0, #0 - bne _08001832 -_080018AC: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080018BC: .4byte gUnknown_30008F8 -_080018C0: .4byte 0xFFFFFC00 -_080018C4: .4byte 0x00003FFF - thumb_func_end InitBgsFromTemplates - - thumb_func_start InitBgFromTemplate -InitBgFromTemplate: @ 0x080018C8 - push {r4, r5, r6, r7, lr} - sub sp, #0x10 - adds r7, r0, #0 - ldr r4, [r7] - lsls r0, r4, #0x1e - lsrs r5, r0, #0x1e - cmp r5, #3 - bhi _08001938 - lsls r1, r4, #0x1c - lsrs r1, r1, #0x1e - lsls r2, r4, #0x17 - lsrs r2, r2, #0x1b - lsls r3, r4, #0x15 - lsrs r3, r3, #0x1e - lsls r0, r4, #0x14 - lsrs r0, r0, #0x1f - str r0, [sp] - lsls r0, r4, #0x12 - lsrs r0, r0, #0x1e - str r0, [sp, #4] - movs r6, #0 - str r6, [sp, #8] - str r6, [sp, #0xc] - adds r0, r5, #0 - bl SetBgControlAttributes - ldr r4, _08001940 - lsls r5, r5, #4 - adds r3, r5, r4 - ldr r1, [r7] - lsls r1, r1, #8 - lsrs r1, r1, #0x16 - ldrh r2, [r3] - ldr r0, _08001944 - ands r0, r2 - orrs r0, r1 - strh r0, [r3] - ldrb r1, [r3, #1] - movs r0, #0x3d - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3, #1] - ldr r0, [r3] - ldr r1, _08001948 - ands r0, r1 - str r0, [r3] - adds r0, r4, #4 - adds r0, r5, r0 - str r6, [r0] - adds r0, r4, #0 - adds r0, #8 - adds r0, r5, r0 - str r6, [r0] - adds r4, #0xc - adds r5, r5, r4 - str r6, [r5] -_08001938: - add sp, #0x10 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08001940: .4byte gUnknown_30008F8 -_08001944: .4byte 0xFFFFFC00 -_08001948: .4byte 0x00003FFF - thumb_func_end InitBgFromTemplate - - thumb_func_start SetBgMode -SetBgMode: @ 0x0800194C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl SetBgModeInternal - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetBgMode - - thumb_func_start LoadBgTiles -LoadBgTiles: @ 0x0800195C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r7, r1, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - mov r8, r2 - lsls r3, r3, #0x10 - lsrs r4, r3, #0x10 - adds r0, r5, #0 - movs r1, #5 - bl GetBgControlAttribute - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08001998 - ldr r1, _08001994 - lsls r0, r5, #4 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - adds r0, r0, r4 - lsls r0, r0, #0x15 - b _080019A8 - .align 2, 0 -_08001994: .4byte gUnknown_30008F8 -_08001998: - ldr r1, _080019C8 - lsls r0, r5, #4 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - adds r0, r0, r4 - lsls r0, r0, #0x16 -_080019A8: - lsrs r4, r0, #0x10 - movs r6, #1 - str r6, [sp] - adds r0, r5, #0 - adds r1, r7, #0 - mov r2, r8 - adds r3, r4, #0 - bl LoadBgVram - lsls r2, r0, #0x18 - lsrs r1, r2, #0x18 - adds r7, r1, #0 - cmp r1, #0xff - bne _080019D0 - ldr r0, _080019CC - b _080019FE - .align 2, 0 -_080019C8: .4byte gUnknown_30008F8 -_080019CC: .4byte 0x0000FFFF -_080019D0: - ldr r0, _08001A0C - lsrs r2, r2, #0x1d - lsls r2, r2, #2 - adds r2, r2, r0 - movs r0, #0x1f - ands r0, r1 - adds r1, r6, #0 - lsls r1, r0 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - ldr r0, _08001A10 - ldr r0, [r0] - cmp r0, #1 - bne _080019FC - lsrs r1, r4, #5 - mov r0, r8 - lsrs r2, r0, #5 - adds r0, r5, #0 - movs r3, #1 - bl sub_080017D0 -_080019FC: - adds r0, r7, #0 -_080019FE: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08001A0C: .4byte gUnknown_3000938 -_08001A10: .4byte gUnknown_3002FF4 - thumb_func_end LoadBgTiles - - thumb_func_start LoadBgTilemap -LoadBgTilemap: @ 0x08001A14 - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - lsls r3, r3, #0x11 - lsrs r3, r3, #0x10 - movs r4, #2 - str r4, [sp] - bl LoadBgVram - lsls r2, r0, #0x18 - lsrs r3, r2, #0x18 - cmp r3, #0xff - beq _08001A54 - ldr r0, _08001A50 - lsrs r2, r2, #0x1d - lsls r2, r2, #2 - adds r2, r2, r0 - movs r0, #0x1f - ands r0, r3 - movs r1, #1 - lsls r1, r0 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - adds r0, r3, #0 - b _08001A56 - .align 2, 0 -_08001A50: .4byte gUnknown_3000938 -_08001A54: - ldr r0, _08001A60 -_08001A56: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08001A60: .4byte 0x0000FFFF - thumb_func_end LoadBgTilemap - - thumb_func_start Unused_LoadBgPalette -Unused_LoadBgPalette: @ 0x08001A64 - push {r4, r5, r6, r7, lr} - adds r7, r1, #0 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r2, r2, #0x10 - lsrs r6, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r5, r3, #0x10 - adds r0, r4, #0 - bl sub_08002A78 - cmp r0, #0 - bne _08001AB0 - ldr r1, _08001AB4 - lsls r0, r4, #4 - adds r0, r0, r1 - ldrb r1, [r0, #1] - lsls r1, r1, #0x1a - lsrs r1, r1, #0x1c - lsls r1, r1, #5 - lsls r0, r5, #1 - adds r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0xa0 - lsls r0, r0, #0x13 - adds r1, r1, r0 - adds r0, r7, #0 - adds r2, r6, #0 - movs r3, #0 - bl RequestDma3Copy - lsls r3, r0, #0x18 - asrs r1, r3, #0x18 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _08001ABC -_08001AB0: - ldr r0, _08001AB8 - b _08001AE0 - .align 2, 0 -_08001AB4: .4byte gUnknown_30008F8 -_08001AB8: .4byte 0x0000FFFF -_08001ABC: - ldr r4, _08001AE8 - adds r0, r1, #0 - cmp r1, #0 - bge _08001AC6 - adds r0, #0x1f -_08001AC6: - asrs r0, r0, #5 - lsls r2, r0, #2 - adds r2, r2, r4 - lsls r0, r0, #5 - subs r0, r1, r0 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - lsls r1, r0 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - lsrs r0, r3, #0x18 -_08001AE0: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08001AE8: .4byte gUnknown_3000938 - thumb_func_end Unused_LoadBgPalette - - thumb_func_start IsDma3ManagerBusyWithBgCopy -IsDma3ManagerBusyWithBgCopy: @ 0x08001AEC - push {r4, r5, r6, r7, lr} - movs r5, #0 - movs r7, #1 - rsbs r7, r7, #0 -_08001AF4: - adds r0, r5, #0 - cmp r5, #0 - bge _08001AFC - adds r0, #0x1f -_08001AFC: - asrs r0, r0, #5 - lsls r2, r0, #0x18 - lsls r0, r0, #5 - subs r0, r5, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08001B30 - lsrs r2, r2, #0x16 - adds r4, r2, r1 - movs r6, #1 - lsls r6, r0 - ldr r0, [r4] - ands r0, r6 - cmp r0, #0 - beq _08001B3A - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - bl CheckForSpaceForDma3Request - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, r7 - bne _08001B34 - movs r0, #1 - b _08001B42 - .align 2, 0 -_08001B30: .4byte gUnknown_3000938 -_08001B34: - ldr r0, [r4] - bics r0, r6 - str r0, [r4] -_08001B3A: - adds r5, #1 - cmp r5, #0x7f - ble _08001AF4 - movs r0, #0 -_08001B42: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end IsDma3ManagerBusyWithBgCopy - - thumb_func_start ShowBg -ShowBg: @ 0x08001B48 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl ShowBgInternal - bl SyncBgVisibilityAndMode - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ShowBg - - thumb_func_start HideBg -HideBg: @ 0x08001B5C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl HideBgInternal - bl SyncBgVisibilityAndMode - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end HideBg - - thumb_func_start SetBgAttribute -SetBgAttribute: @ 0x08001B70 - push {r4, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r3, r2, #0x18 - subs r0, r1, #1 - cmp r0, #6 - bhi _08001C2A - lsls r0, r0, #2 - ldr r1, _08001B90 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08001B90: .4byte _08001B94 -_08001B94: @ jump table - .4byte _08001BB0 @ case 0 - .4byte _08001BC0 @ case 1 - .4byte _08001BD2 @ case 2 - .4byte _08001BE8 @ case 3 - .4byte _08001BFC @ case 4 - .4byte _08001C14 @ case 5 - .4byte _08001BF2 @ case 6 -_08001BB0: - movs r0, #0xff - str r0, [sp] - str r0, [sp, #4] - str r0, [sp, #8] - str r0, [sp, #0xc] - adds r0, r4, #0 - adds r1, r3, #0 - b _08001C0A -_08001BC0: - movs r0, #0xff - str r0, [sp] - str r0, [sp, #4] - str r0, [sp, #8] - str r0, [sp, #0xc] - adds r0, r4, #0 - movs r1, #0xff - adds r2, r3, #0 - b _08001C0C -_08001BD2: - movs r0, #0xff - str r0, [sp] - str r0, [sp, #4] - str r0, [sp, #8] - str r0, [sp, #0xc] - adds r0, r4, #0 - movs r1, #0xff - movs r2, #0xff - bl SetBgControlAttributes - b _08001C2A -_08001BE8: - str r3, [sp] - movs r0, #0xff - str r0, [sp, #4] - str r0, [sp, #8] - b _08001C04 -_08001BF2: - movs r0, #0xff - str r0, [sp] - str r3, [sp, #4] - str r0, [sp, #8] - b _08001C04 -_08001BFC: - movs r0, #0xff - str r0, [sp] - str r0, [sp, #4] - str r3, [sp, #8] -_08001C04: - str r0, [sp, #0xc] - adds r0, r4, #0 - movs r1, #0xff -_08001C0A: - movs r2, #0xff -_08001C0C: - movs r3, #0xff - bl SetBgControlAttributes - b _08001C2A -_08001C14: - movs r0, #0xff - str r0, [sp] - str r0, [sp, #4] - str r0, [sp, #8] - str r3, [sp, #0xc] - adds r0, r4, #0 - movs r1, #0xff - movs r2, #0xff - movs r3, #0xff - bl SetBgControlAttributes -_08001C2A: - add sp, #0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetBgAttribute - - thumb_func_start GetBgAttribute -GetBgAttribute: @ 0x08001C34 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - subs r0, r1, #1 - cmp r0, #9 - bhi _08001D10 - lsls r0, r0, #2 - ldr r1, _08001C50 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08001C50: .4byte _08001C54 -_08001C54: @ jump table - .4byte _08001C7C @ case 0 - .4byte _08001C86 @ case 1 - .4byte _08001C90 @ case 2 - .4byte _08001C9A @ case 3 - .4byte _08001CAE @ case 4 - .4byte _08001CB8 @ case 5 - .4byte _08001CA4 @ case 6 - .4byte _08001CC2 @ case 7 - .4byte _08001CF0 @ case 8 - .4byte _08001CFC @ case 9 -_08001C7C: - adds r0, r4, #0 - movs r1, #2 - bl GetBgControlAttribute - b _08001CF6 -_08001C86: - adds r0, r4, #0 - movs r1, #3 - bl GetBgControlAttribute - b _08001CF6 -_08001C90: - adds r0, r4, #0 - movs r1, #4 - bl GetBgControlAttribute - b _08001CF6 -_08001C9A: - adds r0, r4, #0 - movs r1, #5 - bl GetBgControlAttribute - b _08001CF6 -_08001CA4: - adds r0, r4, #0 - movs r1, #6 - bl GetBgControlAttribute - b _08001CF6 -_08001CAE: - adds r0, r4, #0 - movs r1, #7 - bl GetBgControlAttribute - b _08001CF6 -_08001CB8: - adds r0, r4, #0 - movs r1, #8 - bl GetBgControlAttribute - b _08001CF6 -_08001CC2: - adds r0, r4, #0 - bl sub_08002A24 - cmp r0, #0 - beq _08001CD4 - cmp r0, #1 - beq _08001CE2 - movs r0, #0 - b _08001D12 -_08001CD4: - adds r0, r4, #0 - movs r1, #0 - bl GetBgMetricTextMode - lsls r0, r0, #0x1b - lsrs r0, r0, #0x10 - b _08001D12 -_08001CE2: - adds r0, r4, #0 - movs r1, #0 - bl GetBgMetricAffineMode - lsls r0, r0, #0x18 - lsrs r0, r0, #0x10 - b _08001D12 -_08001CF0: - adds r0, r4, #0 - bl sub_08002A24 -_08001CF6: - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b _08001D12 -_08001CFC: - ldr r0, _08001D0C - lsls r1, r4, #4 - adds r1, r1, r0 - ldrh r0, [r1] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - b _08001D12 - .align 2, 0 -_08001D0C: .4byte gUnknown_30008F8 -_08001D10: - ldr r0, _08001D18 -_08001D12: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08001D18: .4byte 0x0000FFFF - thumb_func_end GetBgAttribute - - thumb_func_start ChangeBgX -ChangeBgX: @ 0x08001D1C - push {r4, r5, r6, lr} - adds r6, r1, #0 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - adds r0, r4, #0 - bl sub_08002A78 - cmp r0, #0 - bne _08001D40 - adds r0, r4, #0 - movs r1, #1 - bl GetBgControlAttribute - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08001D46 -_08001D40: - movs r0, #1 - rsbs r0, r0, #0 - b _08001E4C -_08001D46: - cmp r5, #1 - beq _08001D64 - cmp r5, #1 - ble _08001D52 - cmp r5, #2 - beq _08001D78 -_08001D52: - ldr r0, _08001D60 - lsls r1, r4, #4 - adds r0, #8 - adds r0, r1, r0 - str r6, [r0] - adds r5, r1, #0 - b _08001D88 - .align 2, 0 -_08001D60: .4byte gUnknown_30008F8 -_08001D64: - ldr r0, _08001D74 - lsls r2, r4, #4 - adds r0, #8 - adds r0, r2, r0 - ldr r1, [r0] - adds r1, r1, r6 - b _08001D84 - .align 2, 0 -_08001D74: .4byte gUnknown_30008F8 -_08001D78: - ldr r0, _08001DA0 - lsls r2, r4, #4 - adds r0, #8 - adds r0, r2, r0 - ldr r1, [r0] - subs r1, r1, r6 -_08001D84: - str r1, [r0] - adds r5, r2, #0 -_08001D88: - bl GetBgMode - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, #1 - beq _08001DC4 - cmp r4, #1 - bgt _08001DA4 - cmp r4, #0 - beq _08001DAE - b _08001E44 - .align 2, 0 -_08001DA0: .4byte gUnknown_30008F8 -_08001DA4: - cmp r4, #2 - beq _08001DD8 - cmp r4, #3 - beq _08001E10 - b _08001E44 -_08001DAE: - ldr r0, _08001DC0 - ldr r0, [r0, #8] - lsls r0, r0, #8 - lsrs r1, r0, #0x10 - movs r0, #0x10 - bl SetGpuReg - b _08001E44 - .align 2, 0 -_08001DC0: .4byte gUnknown_30008F8 -_08001DC4: - ldr r0, _08001DD4 - ldr r0, [r0, #0x18] - lsls r0, r0, #8 - lsrs r1, r0, #0x10 - movs r0, #0x14 - bl SetGpuReg - b _08001E44 - .align 2, 0 -_08001DD4: .4byte gUnknown_30008F8 -_08001DD8: - cmp r0, #0 - bne _08001DF0 - ldr r0, _08001DEC - ldr r0, [r0, #0x28] - lsls r0, r0, #8 - lsrs r1, r0, #0x10 - movs r0, #0x18 - bl SetGpuReg - b _08001E44 - .align 2, 0 -_08001DEC: .4byte gUnknown_30008F8 -_08001DF0: - ldr r0, _08001E0C - ldr r0, [r0, #0x28] - lsrs r1, r0, #0x10 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r0, #0x2a - bl SetGpuReg - movs r0, #0x28 - adds r1, r4, #0 - bl SetGpuReg - b _08001E44 - .align 2, 0 -_08001E0C: .4byte gUnknown_30008F8 -_08001E10: - cmp r0, #0 - bne _08001E28 - ldr r0, _08001E24 - ldr r0, [r0, #0x38] - lsls r0, r0, #8 - lsrs r1, r0, #0x10 - movs r0, #0x1c - bl SetGpuReg - b _08001E44 - .align 2, 0 -_08001E24: .4byte gUnknown_30008F8 -_08001E28: - cmp r0, #2 - bne _08001E44 - ldr r0, _08001E54 - ldr r0, [r0, #0x38] - lsrs r1, r0, #0x10 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r0, #0x3a - bl SetGpuReg - movs r0, #0x38 - adds r1, r4, #0 - bl SetGpuReg -_08001E44: - ldr r0, _08001E54 - adds r0, #8 - adds r0, r5, r0 - ldr r0, [r0] -_08001E4C: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08001E54: .4byte gUnknown_30008F8 - thumb_func_end ChangeBgX - - thumb_func_start GetBgX -GetBgX: @ 0x08001E58 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r4, r0, #0 - bl sub_08002A78 - cmp r0, #0 - bne _08001E88 - adds r0, r4, #0 - movs r1, #1 - bl GetBgControlAttribute - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08001E88 - ldr r0, _08001E84 - lsls r1, r4, #4 - adds r0, #8 - adds r1, r1, r0 - ldr r0, [r1] - b _08001E8C - .align 2, 0 -_08001E84: .4byte gUnknown_30008F8 -_08001E88: - movs r0, #1 - rsbs r0, r0, #0 -_08001E8C: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetBgX - - thumb_func_start ChangeBgY -ChangeBgY: @ 0x08001E94 - push {r4, r5, r6, lr} - adds r6, r1, #0 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - adds r0, r4, #0 - bl sub_08002A78 - cmp r0, #0 - bne _08001EB8 - adds r0, r4, #0 - movs r1, #1 - bl GetBgControlAttribute - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08001EBE -_08001EB8: - movs r0, #1 - rsbs r0, r0, #0 - b _08001FC4 -_08001EBE: - cmp r5, #1 - beq _08001EDC - cmp r5, #1 - ble _08001ECA - cmp r5, #2 - beq _08001EF0 -_08001ECA: - ldr r0, _08001ED8 - lsls r1, r4, #4 - adds r0, #0xc - adds r0, r1, r0 - str r6, [r0] - adds r5, r1, #0 - b _08001F00 - .align 2, 0 -_08001ED8: .4byte gUnknown_30008F8 -_08001EDC: - ldr r0, _08001EEC - lsls r2, r4, #4 - adds r0, #0xc - adds r0, r2, r0 - ldr r1, [r0] - adds r1, r1, r6 - b _08001EFC - .align 2, 0 -_08001EEC: .4byte gUnknown_30008F8 -_08001EF0: - ldr r0, _08001F18 - lsls r2, r4, #4 - adds r0, #0xc - adds r0, r2, r0 - ldr r1, [r0] - subs r1, r1, r6 -_08001EFC: - str r1, [r0] - adds r5, r2, #0 -_08001F00: - bl GetBgMode - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, #1 - beq _08001F3C - cmp r4, #1 - bgt _08001F1C - cmp r4, #0 - beq _08001F26 - b _08001FBC - .align 2, 0 -_08001F18: .4byte gUnknown_30008F8 -_08001F1C: - cmp r4, #2 - beq _08001F50 - cmp r4, #3 - beq _08001F88 - b _08001FBC -_08001F26: - ldr r0, _08001F38 - ldr r0, [r0, #0xc] - lsls r0, r0, #8 - lsrs r1, r0, #0x10 - movs r0, #0x12 - bl SetGpuReg - b _08001FBC - .align 2, 0 -_08001F38: .4byte gUnknown_30008F8 -_08001F3C: - ldr r0, _08001F4C - ldr r0, [r0, #0x1c] - lsls r0, r0, #8 - lsrs r1, r0, #0x10 - movs r0, #0x16 - bl SetGpuReg - b _08001FBC - .align 2, 0 -_08001F4C: .4byte gUnknown_30008F8 -_08001F50: - cmp r0, #0 - bne _08001F68 - ldr r0, _08001F64 - ldr r0, [r0, #0x2c] - lsls r0, r0, #8 - lsrs r1, r0, #0x10 - movs r0, #0x1a - bl SetGpuReg - b _08001FBC - .align 2, 0 -_08001F64: .4byte gUnknown_30008F8 -_08001F68: - ldr r0, _08001F84 - ldr r0, [r0, #0x2c] - lsrs r1, r0, #0x10 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r0, #0x2e - bl SetGpuReg - movs r0, #0x2c - adds r1, r4, #0 - bl SetGpuReg - b _08001FBC - .align 2, 0 -_08001F84: .4byte gUnknown_30008F8 -_08001F88: - cmp r0, #0 - bne _08001FA0 - ldr r0, _08001F9C - ldr r0, [r0, #0x3c] - lsls r0, r0, #8 - lsrs r1, r0, #0x10 - movs r0, #0x1e - bl SetGpuReg - b _08001FBC - .align 2, 0 -_08001F9C: .4byte gUnknown_30008F8 -_08001FA0: - cmp r0, #2 - bne _08001FBC - ldr r0, _08001FCC - ldr r0, [r0, #0x3c] - lsrs r1, r0, #0x10 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r0, #0x3e - bl SetGpuReg - movs r0, #0x3c - adds r1, r4, #0 - bl SetGpuReg -_08001FBC: - ldr r0, _08001FCC - adds r0, #0xc - adds r0, r5, r0 - ldr r0, [r0] -_08001FC4: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08001FCC: .4byte gUnknown_30008F8 - thumb_func_end ChangeBgY - - thumb_func_start GetBgY -GetBgY: @ 0x08001FD0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r4, r0, #0 - bl sub_08002A78 - cmp r0, #0 - bne _08002000 - adds r0, r4, #0 - movs r1, #1 - bl GetBgControlAttribute - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08002000 - ldr r0, _08001FFC - lsls r1, r4, #4 - adds r0, #0xc - adds r1, r1, r0 - ldr r0, [r1] - b _08002004 - .align 2, 0 -_08001FFC: .4byte gUnknown_30008F8 -_08002000: - movs r0, #1 - rsbs r0, r0, #0 -_08002004: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetBgY - - thumb_func_start SetBgAffine -SetBgAffine: @ 0x0800200C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x10 - ldr r4, [sp, #0x28] - ldr r5, [sp, #0x2c] - ldr r6, [sp, #0x30] - ldr r7, [sp, #0x34] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r7, r7, #0x10 - lsrs r7, r7, #0x10 - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - str r4, [sp] - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - str r5, [sp, #4] - lsls r6, r6, #0x10 - asrs r6, r6, #0x10 - str r6, [sp, #8] - str r7, [sp, #0xc] - bl SetBgAffineInternal - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end SetBgAffine - - thumb_func_start Unused_AdjustBgMosaic -Unused_AdjustBgMosaic: @ 0x0800204C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - movs r0, #0x4c - bl GetGpuReg - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - movs r1, #0xf - movs r3, #0xf - ands r3, r5 - lsrs r2, r0, #0x14 - ands r2, r1 - movs r0, #0xff - lsls r0, r0, #8 - ands r5, r0 - cmp r6, #6 - bhi _080020A0 - lsls r0, r6, #2 - ldr r1, _08002080 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08002080: .4byte _08002084 -_08002084: @ jump table - .4byte _080020A0 @ case 0 - .4byte _080020A8 @ case 1 - .4byte _080020AE @ case 2 - .4byte _080020C0 @ case 3 - .4byte _080020D6 @ case 4 - .4byte _080020DC @ case 5 - .4byte _080020EE @ case 6 -_080020A0: - movs r3, #0xf - ands r3, r4 - lsrs r2, r4, #4 - b _08002102 -_080020A8: - movs r3, #0xf - ands r3, r4 - b _08002102 -_080020AE: - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - adds r0, r0, r4 - cmp r0, #0xf - ble _080020BC - movs r3, #0xf - b _08002102 -_080020BC: - adds r0, r3, r4 - b _080020D0 -_080020C0: - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - subs r0, r0, r4 - cmp r0, #0 - bge _080020CE - movs r3, #0 - b _08002102 -_080020CE: - subs r0, r3, r4 -_080020D0: - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - b _08002102 -_080020D6: - movs r2, #0xf - ands r2, r4 - b _08002102 -_080020DC: - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - adds r0, r0, r4 - cmp r0, #0xf - ble _080020EA - movs r2, #0xf - b _08002102 -_080020EA: - adds r0, r2, r4 - b _080020FE -_080020EE: - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - subs r0, r0, r4 - cmp r0, #0 - bge _080020FC - movs r2, #0 - b _08002102 -_080020FC: - subs r0, r2, r4 -_080020FE: - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 -_08002102: - lsls r0, r2, #0x10 - asrs r0, r0, #0xc - movs r1, #0xf0 - ands r0, r1 - orrs r5, r0 - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - movs r1, #0xf - ands r0, r1 - orrs r5, r0 - lsls r0, r5, #0x10 - lsrs r5, r0, #0x10 - movs r0, #0x4c - adds r1, r5, #0 - bl SetGpuReg - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end Unused_AdjustBgMosaic - - thumb_func_start SetBgTilemapBuffer -SetBgTilemapBuffer: @ 0x0800212C - push {r4, r5, lr} - adds r5, r1, #0 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl sub_08002A78 - cmp r0, #0 - bne _08002156 - adds r0, r4, #0 - movs r1, #1 - bl GetBgControlAttribute - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08002156 - ldr r0, _0800215C - lsls r1, r4, #4 - adds r0, #4 - adds r1, r1, r0 - str r5, [r1] -_08002156: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0800215C: .4byte gUnknown_30008F8 - thumb_func_end SetBgTilemapBuffer - - thumb_func_start UnsetBgTilemapBuffer -UnsetBgTilemapBuffer: @ 0x08002160 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl sub_08002A78 - adds r5, r0, #0 - cmp r5, #0 - bne _0800218A - adds r0, r4, #0 - movs r1, #1 - bl GetBgControlAttribute - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0800218A - ldr r0, _08002190 - lsls r1, r4, #4 - adds r0, #4 - adds r1, r1, r0 - str r5, [r1] -_0800218A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08002190: .4byte gUnknown_30008F8 - thumb_func_end UnsetBgTilemapBuffer - - thumb_func_start GetBgTilemapBuffer -GetBgTilemapBuffer: @ 0x08002194 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r4, r0, #0 - bl sub_08002A78 - cmp r0, #0 - bne _080021C4 - adds r0, r4, #0 - movs r1, #1 - bl GetBgControlAttribute - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080021C4 - ldr r0, _080021C0 - lsls r1, r4, #4 - adds r0, #4 - adds r1, r1, r0 - ldr r0, [r1] - b _080021C6 - .align 2, 0 -_080021C0: .4byte gUnknown_30008F8 -_080021C4: - movs r0, #0 -_080021C6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetBgTilemapBuffer - - thumb_func_start CopyToBgTilemapBuffer -CopyToBgTilemapBuffer: @ 0x080021CC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sl, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - mov sb, r4 - lsls r7, r2, #0x10 - lsrs r6, r7, #0x10 - lsls r3, r3, #0x10 - lsrs r5, r3, #0x10 - mov r8, r5 - adds r0, r4, #0 - bl sub_08002A78 - cmp r0, #0 - bne _08002234 - adds r0, r4, #0 - bl IsTileMapOutsideWram - cmp r0, #0 - bne _08002234 - cmp r6, #0 - beq _0800221C - ldr r0, _08002218 - lsls r1, r4, #4 - adds r0, #4 - adds r1, r1, r0 - lsls r0, r5, #1 - ldr r1, [r1] - adds r1, r1, r0 - lsrs r2, r7, #0x11 - mov r0, sl - bl CpuSet - b _08002234 - .align 2, 0 -_08002218: .4byte gUnknown_30008F8 -_0800221C: - ldr r0, _08002244 - mov r2, sb - lsls r1, r2, #4 - adds r0, #4 - adds r1, r1, r0 - mov r2, r8 - lsls r0, r2, #1 - ldr r1, [r1] - adds r1, r1, r0 - mov r0, sl - bl LZ77UnCompWram -_08002234: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08002244: .4byte gUnknown_30008F8 - thumb_func_end CopyToBgTilemapBuffer - - thumb_func_start CopyBgTilemapBufferToVram -CopyBgTilemapBufferToVram: @ 0x08002248 - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl sub_08002A78 - cmp r0, #0 - bne _080022A4 - adds r0, r4, #0 - bl IsTileMapOutsideWram - cmp r0, #0 - bne _080022A4 - adds r0, r4, #0 - bl sub_08002A24 - cmp r0, #0 - beq _08002276 - cmp r0, #1 - beq _08002282 - movs r2, #0 - b _0800228E -_08002276: - adds r0, r4, #0 - movs r1, #0 - bl GetBgMetricTextMode - lsls r0, r0, #0x1b - b _0800228C -_08002282: - adds r0, r4, #0 - movs r1, #0 - bl GetBgMetricAffineMode - lsls r0, r0, #0x18 -_0800228C: - lsrs r2, r0, #0x10 -_0800228E: - ldr r0, _080022AC - lsls r1, r4, #4 - adds r0, #4 - adds r1, r1, r0 - ldr r1, [r1] - movs r0, #2 - str r0, [sp] - adds r0, r4, #0 - movs r3, #0 - bl LoadBgVram -_080022A4: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080022AC: .4byte gUnknown_30008F8 - thumb_func_end CopyBgTilemapBufferToVram - - thumb_func_start CopyToBgTilemapBufferRect -CopyToBgTilemapBufferRect: @ 0x080022B0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov r8, r1 - ldr r1, [sp, #0x24] - ldr r4, [sp, #0x28] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sl, r2 - lsls r3, r3, #0x18 - lsrs r7, r3, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sb, r1 - lsls r4, r4, #0x18 - lsrs r6, r4, #0x18 - adds r0, r5, #0 - bl sub_08002A78 - cmp r0, #0 - bne _080023A0 - adds r0, r5, #0 - bl IsTileMapOutsideWram - cmp r0, #0 - bne _080023A0 - adds r0, r5, #0 - bl sub_08002A24 - cmp r0, #0 - beq _080022FE - cmp r0, #1 - beq _0800234C - b _080023A0 -_080022FE: - mov r4, r8 - adds r3, r7, #0 - adds r0, r3, r6 - cmp r3, r0 - bge _080023A0 - mov ip, r0 - lsls r1, r5, #4 - ldr r0, _08002348 - adds r1, r1, r0 - mov r8, r1 -_08002312: - mov r2, sl - mov r1, sb - adds r0, r2, r1 - adds r7, r3, #1 - cmp r2, r0 - bge _0800233C - mov r1, r8 - ldr r6, [r1] - lsls r5, r3, #5 - adds r3, r0, #0 -_08002326: - adds r0, r5, r2 - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r1, [r4] - strh r1, [r0] - adds r4, #2 - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, r3 - blt _08002326 -_0800233C: - lsls r0, r7, #0x10 - lsrs r3, r0, #0x10 - cmp r3, ip - blt _08002312 - b _080023A0 - .align 2, 0 -_08002348: .4byte gUnknown_30008FC -_0800234C: - mov r4, r8 - adds r0, r5, #0 - movs r1, #1 - bl GetBgMetricAffineMode - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp] - adds r3, r7, #0 - adds r0, r3, r6 - cmp r3, r0 - bge _080023A0 - mov ip, r0 - lsls r5, r5, #4 - mov r8, r5 -_0800236A: - mov r2, sl - mov r1, sb - adds r0, r2, r1 - adds r7, r3, #1 - cmp r2, r0 - bge _08002398 - ldr r6, _080023B0 - add r6, r8 - ldr r1, [sp] - adds r5, r3, #0 - muls r5, r1, r5 - adds r3, r0, #0 -_08002382: - ldr r1, [r6] - adds r0, r5, r2 - adds r1, r1, r0 - ldrb r0, [r4] - strb r0, [r1] - adds r4, #1 - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, r3 - blt _08002382 -_08002398: - lsls r0, r7, #0x10 - lsrs r3, r0, #0x10 - cmp r3, ip - blt _0800236A -_080023A0: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080023B0: .4byte gUnknown_30008FC - thumb_func_end CopyToBgTilemapBufferRect - - thumb_func_start CopyToBgTilemapBufferRect_ChangePalette -CopyToBgTilemapBufferRect_ChangePalette: @ 0x080023B4 - push {r4, r5, r6, lr} - sub sp, #0x24 - ldr r4, [sp, #0x34] - ldr r5, [sp, #0x38] - ldr r6, [sp, #0x3c] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - str r4, [sp] - str r5, [sp, #4] - str r2, [sp, #8] - str r3, [sp, #0xc] - str r4, [sp, #0x10] - str r5, [sp, #0x14] - str r6, [sp, #0x18] - movs r2, #0 - str r2, [sp, #0x1c] - str r2, [sp, #0x20] - movs r3, #0 - bl CopyRectToBgTilemapBufferRect - add sp, #0x24 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end CopyToBgTilemapBufferRect_ChangePalette - - thumb_func_start CopyRectToBgTilemapBufferRect -CopyRectToBgTilemapBufferRect: @ 0x080023F8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x40 - str r1, [sp, #8] - ldr r1, [sp, #0x60] - ldr r4, [sp, #0x68] - ldr r5, [sp, #0x6c] - ldr r6, [sp, #0x70] - ldr r7, [sp, #0x74] - mov r8, r7 - ldr r7, [sp, #0x78] - mov sb, r7 - ldr r7, [sp, #0x7c] - mov sl, r7 - ldr r7, [sp, #0x80] - mov ip, r7 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0xc] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r3, [sp, #0x10] - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp, #0x14] - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - str r6, [sp, #0x18] - mov r0, r8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - mov r1, sb - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp, #0x1c] - mov r2, sl - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - str r2, [sp, #0x20] - mov r0, ip - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x24] - ldr r0, [sp, #4] - bl sub_08002A78 - cmp r0, #0 - beq _0800246E - b _080025CA -_0800246E: - ldr r0, [sp, #4] - bl IsTileMapOutsideWram - cmp r0, #0 - beq _0800247A - b _080025CA -_0800247A: - ldr r0, [sp, #4] - movs r1, #4 - bl GetBgControlAttribute - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x30] - ldr r0, [sp, #4] - movs r1, #1 - bl GetBgMetricTextMode - lsls r0, r0, #0x15 - lsrs r0, r0, #0x10 - str r0, [sp, #0x28] - ldr r0, [sp, #4] - movs r1, #2 - bl GetBgMetricTextMode - lsls r0, r0, #0x15 - lsrs r0, r0, #0x10 - str r0, [sp, #0x2c] - ldr r0, [sp, #4] - bl sub_08002A24 - cmp r0, #0 - beq _080024B4 - cmp r0, #1 - beq _08002550 - b _080025CA -_080024B4: - ldr r1, [sp, #0x10] - adds r0, r1, #0 - muls r0, r7, r0 - ldr r2, [sp, #0xc] - adds r0, r0, r2 - lsls r0, r0, #1 - ldr r1, [sp, #8] - adds r6, r1, r0 - adds r0, r5, r4 - cmp r5, r0 - blt _080024CC - b _080025CA -_080024CC: - ldr r2, [sp, #0x18] - subs r2, r7, r2 - str r2, [sp, #0x34] - str r0, [sp, #0x38] -_080024D4: - ldr r4, [sp, #0x14] - ldr r7, [sp, #0x18] - adds r0, r4, r7 - adds r1, r5, #1 - str r1, [sp, #0x3c] - cmp r4, r0 - bge _08002536 - ldr r2, [sp, #4] - lsls r0, r2, #4 - ldr r1, _0800254C - adds r0, r0, r1 - mov sl, r0 - ldr r7, [sp, #0x20] - lsls r7, r7, #0x10 - mov sb, r7 - ldr r1, [sp, #0x24] - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - mov r8, r0 -_080024FA: - ldr r2, [sp, #0x2c] - str r2, [sp] - adds r0, r4, #0 - adds r1, r5, #0 - ldr r2, [sp, #0x30] - ldr r3, [sp, #0x28] - bl GetTileMapIndexFromCoords - lsls r0, r0, #0x10 - lsrs r0, r0, #0xf - mov r7, sl - ldr r1, [r7] - adds r1, r1, r0 - mov r0, r8 - str r0, [sp] - adds r0, r6, #0 - ldr r2, [sp, #0x1c] - mov r7, sb - asrs r3, r7, #0x10 - bl CopyTileMapEntry - adds r6, #2 - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r1, [sp, #0x14] - ldr r2, [sp, #0x18] - adds r0, r1, r2 - cmp r4, r0 - blt _080024FA -_08002536: - ldr r5, [sp, #0x34] - lsls r0, r5, #1 - adds r6, r6, r0 - ldr r7, [sp, #0x3c] - lsls r0, r7, #0x10 - lsrs r5, r0, #0x10 - ldr r0, [sp, #0x38] - cmp r5, r0 - blt _080024D4 - b _080025CA - .align 2, 0 -_0800254C: .4byte gUnknown_30008FC -_08002550: - ldr r1, [sp, #0x10] - adds r0, r1, #0 - muls r0, r7, r0 - ldr r2, [sp, #0xc] - adds r0, r0, r2 - ldr r1, [sp, #8] - adds r6, r1, r0 - ldr r0, [sp, #4] - movs r1, #1 - bl GetBgMetricAffineMode - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - adds r0, r5, r4 - cmp r5, r0 - bge _080025CA - ldr r2, [sp, #0x18] - subs r2, r7, r2 - str r2, [sp, #0x34] - str r0, [sp, #0x38] - ldr r7, _080025DC - mov sl, r7 - ldr r0, [sp, #4] - lsls r0, r0, #4 - mov r8, r0 -_08002584: - ldr r4, [sp, #0x14] - ldr r1, [sp, #0x18] - adds r0, r4, r1 - adds r2, r5, #1 - str r2, [sp, #0x3c] - cmp r4, r0 - bge _080025BA - mov r3, r8 - add r3, sl - mov r7, sb - muls r7, r5, r7 - mov ip, r7 - adds r2, r0, #0 -_0800259E: - ldr r1, [r3] - mov r5, ip - adds r0, r5, r4 - adds r1, r1, r0 - ldrb r0, [r6] - ldr r7, [sp, #0x20] - adds r0, r0, r7 - strb r0, [r1] - adds r6, #1 - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, r2 - blt _0800259E -_080025BA: - ldr r0, [sp, #0x34] - adds r6, r6, r0 - ldr r1, [sp, #0x3c] - lsls r0, r1, #0x10 - lsrs r5, r0, #0x10 - ldr r2, [sp, #0x38] - cmp r5, r2 - blt _08002584 -_080025CA: - add sp, #0x40 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080025DC: .4byte gUnknown_30008FC - thumb_func_end CopyRectToBgTilemapBufferRect - - thumb_func_start FillBgTilemapBufferRect_Palette0 -FillBgTilemapBufferRect_Palette0: @ 0x080025E0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - ldr r4, [sp, #0x24] - ldr r5, [sp, #0x28] - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r8, r1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sl, r2 - lsls r3, r3, #0x18 - lsrs r7, r3, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov sb, r4 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - adds r0, r6, #0 - bl sub_08002A78 - cmp r0, #0 - bne _080026CC - adds r0, r6, #0 - bl IsTileMapOutsideWram - cmp r0, #0 - bne _080026CC - adds r0, r6, #0 - bl sub_08002A24 - cmp r0, #0 - beq _08002632 - cmp r0, #1 - beq _0800267C - b _080026CC -_08002632: - adds r3, r7, #0 - adds r5, r3, r5 - cmp r3, r5 - bge _080026CC - adds r7, r5, #0 - lsls r1, r6, #4 - ldr r0, _08002678 - adds r1, r1, r0 - mov ip, r1 -_08002644: - mov r2, sl - mov r1, sb - adds r0, r2, r1 - adds r6, r3, #1 - cmp r2, r0 - bge _0800266C - mov r5, ip - ldr r4, [r5] - lsls r3, r3, #5 - adds r1, r0, #0 -_08002658: - adds r0, r3, r2 - lsls r0, r0, #1 - adds r0, r0, r4 - mov r5, r8 - strh r5, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, r1 - blt _08002658 -_0800266C: - lsls r0, r6, #0x10 - lsrs r3, r0, #0x10 - cmp r3, r7 - blt _08002644 - b _080026CC - .align 2, 0 -_08002678: .4byte gUnknown_30008FC -_0800267C: - adds r0, r6, #0 - movs r1, #1 - bl GetBgMetricAffineMode - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp] - adds r3, r7, #0 - adds r5, r3, r5 - cmp r3, r5 - bge _080026CC - adds r7, r5, #0 - lsls r6, r6, #4 - mov ip, r6 -_08002698: - mov r2, sl - mov r1, sb - adds r0, r2, r1 - adds r6, r3, #1 - cmp r2, r0 - bge _080026C4 - ldr r5, _080026DC - add r5, ip - ldr r1, [sp] - adds r4, r3, #0 - muls r4, r1, r4 - adds r3, r0, #0 -_080026B0: - ldr r0, [r5] - adds r1, r4, r2 - adds r0, r0, r1 - mov r1, r8 - strb r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, r3 - blt _080026B0 -_080026C4: - lsls r0, r6, #0x10 - lsrs r3, r0, #0x10 - cmp r3, r7 - blt _08002698 -_080026CC: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080026DC: .4byte gUnknown_30008FC - thumb_func_end FillBgTilemapBufferRect_Palette0 - - thumb_func_start FillBgTilemapBufferRect -FillBgTilemapBufferRect: @ 0x080026E0 - push {r4, r5, r6, lr} - sub sp, #0x10 - ldr r4, [sp, #0x20] - ldr r5, [sp, #0x24] - ldr r6, [sp, #0x28] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - str r4, [sp] - str r5, [sp, #4] - str r6, [sp, #8] - movs r4, #0 - str r4, [sp, #0xc] - bl WriteSequenceToBgTilemapBuffer - add sp, #0x10 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end FillBgTilemapBufferRect - - thumb_func_start WriteSequenceToBgTilemapBuffer -WriteSequenceToBgTilemapBuffer: @ 0x0800271C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x2c - ldr r4, [sp, #0x4c] - ldr r5, [sp, #0x50] - ldr r6, [sp, #0x54] - ldr r7, [sp, #0x58] - mov r8, r7 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - add r0, sp, #4 - strh r1, [r0] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #8] - lsls r3, r3, #0x18 - lsrs r7, r3, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov sl, r4 - lsls r5, r5, #0x18 - lsrs r4, r5, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - str r6, [sp, #0xc] - mov r0, r8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x10] - mov r0, sb - bl sub_08002A78 - cmp r0, #0 - beq _0800276A - b _080028B0 -_0800276A: - mov r0, sb - bl IsTileMapOutsideWram - cmp r0, #0 - beq _08002776 - b _080028B0 -_08002776: - mov r0, sb - movs r1, #4 - bl GetBgControlAttribute - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x1c] - mov r0, sb - movs r1, #1 - bl GetBgMetricTextMode - lsls r0, r0, #0x15 - lsrs r0, r0, #0x10 - str r0, [sp, #0x14] - mov r0, sb - movs r1, #2 - bl GetBgMetricTextMode - lsls r0, r0, #0x15 - lsrs r0, r0, #0x10 - str r0, [sp, #0x18] - mov r0, sb - bl sub_08002A24 - cmp r0, #0 - beq _080027B0 - cmp r0, #1 - beq _08002838 - b _080028B0 -_080027B0: - adds r5, r7, #0 - adds r0, r5, r4 - cmp r5, r0 - bge _080028B0 - str r0, [sp, #0x24] - add r7, sp, #4 -_080027BC: - ldr r4, [sp, #8] - mov r1, sl - adds r0, r4, r1 - adds r2, r5, #1 - mov r8, r2 - cmp r4, r0 - bge _08002820 - mov r3, sb - lsls r1, r3, #4 - ldr r0, _08002830 - adds r6, r1, r0 -_080027D2: - ldr r0, [sp, #0x18] - str r0, [sp] - adds r0, r4, #0 - adds r1, r5, #0 - ldr r2, [sp, #0x1c] - ldr r3, [sp, #0x14] - bl GetTileMapIndexFromCoords - lsls r0, r0, #0x10 - lsrs r0, r0, #0xf - ldr r1, [r6] - adds r1, r1, r0 - movs r0, #0 - str r0, [sp] - add r0, sp, #4 - ldr r2, [sp, #0xc] - movs r3, #0 - bl CopyTileMapEntry - ldrh r0, [r7] - movs r2, #0xfc - lsls r2, r2, #8 - adds r1, r2, #0 - adds r2, r0, #0 - ands r2, r1 - ldr r3, [sp, #0x10] - adds r0, r0, r3 - ldr r3, _08002834 - adds r1, r3, #0 - ands r0, r1 - adds r2, r2, r0 - strh r2, [r7] - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, [sp, #8] - add r0, sl - cmp r4, r0 - blt _080027D2 -_08002820: - mov r1, r8 - lsls r0, r1, #0x10 - lsrs r5, r0, #0x10 - ldr r2, [sp, #0x24] - cmp r5, r2 - blt _080027BC - b _080028B0 - .align 2, 0 -_08002830: .4byte gUnknown_30008FC -_08002834: .4byte 0x000003FF -_08002838: - mov r0, sb - movs r1, #1 - bl GetBgMetricAffineMode - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x20] - adds r5, r7, #0 - adds r0, r5, r4 - cmp r5, r0 - bge _080028B0 - str r0, [sp, #0x24] - mov r3, sb - lsls r3, r3, #4 - mov ip, r3 -_08002856: - ldr r4, [sp, #8] - mov r7, sl - adds r0, r4, r7 - adds r1, r5, #1 - mov r8, r1 - cmp r4, r0 - bge _080028A4 - ldr r2, _080028C0 - add r2, ip - str r2, [sp, #0x28] - ldr r7, [sp, #0x20] - adds r3, r5, #0 - muls r3, r7, r3 - add r2, sp, #4 - movs r1, #0xfc - lsls r1, r1, #8 - mov sb, r1 - ldr r7, _080028C4 - adds r5, r7, #0 - adds r6, r0, #0 -_0800287E: - ldr r0, [sp, #0x28] - ldr r1, [r0] - adds r0, r3, r4 - adds r1, r1, r0 - ldrh r0, [r2] - strb r0, [r1] - ldrh r0, [r2] - mov r1, sb - ands r1, r0 - ldr r7, [sp, #0x10] - adds r0, r0, r7 - ands r0, r5 - adds r1, r1, r0 - strh r1, [r2] - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, r6 - blt _0800287E -_080028A4: - mov r1, r8 - lsls r0, r1, #0x10 - lsrs r5, r0, #0x10 - ldr r2, [sp, #0x24] - cmp r5, r2 - blt _08002856 -_080028B0: - add sp, #0x2c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080028C0: .4byte gUnknown_30008FC -_080028C4: .4byte 0x000003FF - thumb_func_end WriteSequenceToBgTilemapBuffer - - thumb_func_start GetBgMetricTextMode -GetBgMetricTextMode: @ 0x080028C8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - adds r5, r4, #0 - movs r1, #4 - bl GetBgControlAttribute - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, #1 - beq _08002908 - cmp r4, #1 - bgt _080028EC - cmp r4, #0 - beq _080028F2 - b _0800292E -_080028EC: - cmp r5, #2 - beq _0800291A - b _0800292E -_080028F2: - cmp r0, #2 - bgt _08002900 - cmp r0, #1 - bge _0800292A -_080028FA: - cmp r0, #0 - beq _08002922 - b _0800292E -_08002900: - cmp r0, #3 - bne _0800292E - movs r0, #4 - b _08002930 -_08002908: - cmp r0, #1 - beq _0800292A - cmp r0, #1 - ble _080028FA - cmp r0, #2 - beq _08002922 - cmp r0, #3 - bne _0800292E - b _0800292A -_0800291A: - cmp r0, #0 - blt _0800292E - cmp r0, #1 - bgt _08002926 -_08002922: - movs r0, #1 - b _08002930 -_08002926: - cmp r0, #3 - bgt _0800292E -_0800292A: - movs r0, #2 - b _08002930 -_0800292E: - movs r0, #0 -_08002930: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetBgMetricTextMode - - thumb_func_start GetBgMetricAffineMode -GetBgMetricAffineMode: @ 0x08002938 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - movs r1, #4 - bl GetBgControlAttribute - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r0, r1, #0 - cmp r4, #0 - beq _08002960 - cmp r4, #0 - blt _08002988 - cmp r4, #2 - bgt _08002988 - movs r0, #0x10 - lsls r0, r1 - b _0800298A -_08002960: - cmp r1, #1 - beq _0800297C - cmp r1, #1 - bgt _0800296E - cmp r1, #0 - beq _08002978 - b _08002988 -_0800296E: - cmp r0, #2 - beq _08002980 - cmp r0, #3 - beq _08002984 - b _08002988 -_08002978: - movs r0, #1 - b _0800298A -_0800297C: - movs r0, #4 - b _0800298A -_08002980: - movs r0, #0x10 - b _0800298A -_08002984: - movs r0, #0x40 - b _0800298A -_08002988: - movs r0, #0 -_0800298A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetBgMetricAffineMode - - thumb_func_start GetTileMapIndexFromCoords -GetTileMapIndexFromCoords: @ 0x08002990 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [sp, #8] - subs r3, #1 - ands r4, r3 - subs r0, #1 - ands r1, r0 - cmp r2, #1 - beq _080029B4 - cmp r2, #1 - ble _080029BC - cmp r2, #2 - beq _080029BC - cmp r2, #3 - bne _080029BC - cmp r1, #0x1f - ble _080029B4 - adds r1, #0x20 -_080029B4: - cmp r4, #0x1f - ble _080029BC - subs r4, #0x20 - adds r1, #0x20 -_080029BC: - lsls r0, r1, #5 - adds r0, r0, r4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetTileMapIndexFromCoords - - thumb_func_start CopyTileMapEntry -CopyTileMapEntry: @ 0x080029C8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r5, [sp, #0x10] - cmp r2, #0x10 - beq _080029F0 - cmp r2, #0x10 - bgt _08002A10 - cmp r2, #0 - blt _08002A10 - ldrh r0, [r4] - adds r0, r0, r3 - ldr r3, _080029EC - adds r1, r3, #0 - ands r0, r1 - adds r1, r2, r5 - lsls r1, r1, #0xc - b _08002A16 - .align 2, 0 -_080029EC: .4byte 0x00000FFF -_080029F0: - ldrh r1, [r6] - movs r0, #0xfc - lsls r0, r0, #8 - ands r1, r0 - lsls r2, r5, #0xc - adds r2, r1, r2 - ldrh r0, [r4] - adds r0, r0, r3 - ldr r3, _08002A0C - adds r1, r3, #0 - ands r0, r1 - orrs r0, r2 - b _08002A18 - .align 2, 0 -_08002A0C: .4byte 0x000003FF -_08002A10: - ldrh r0, [r4] - adds r0, r0, r3 - lsls r1, r5, #0xc -_08002A16: - adds r0, r0, r1 -_08002A18: - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - strh r1, [r6] - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end CopyTileMapEntry - - thumb_func_start sub_08002A24 -sub_08002A24: @ 0x08002A24 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, r4, #0 - bl GetBgMode - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, #2 - beq _08002A52 - cmp r4, #2 - ble _08002A42 - cmp r4, #3 - beq _08002A62 - b _08002A6A -_08002A42: - cmp r5, #0 - blt _08002A6A - cmp r0, #1 - bgt _08002A6A - cmp r0, #0 - blt _08002A6A -_08002A4E: - movs r0, #0 - b _08002A6C -_08002A52: - cmp r0, #0 - beq _08002A4E - cmp r0, #0 - blt _08002A6A - cmp r0, #2 - bgt _08002A6A -_08002A5E: - movs r0, #1 - b _08002A6C -_08002A62: - cmp r0, #0 - beq _08002A4E - cmp r0, #2 - beq _08002A5E -_08002A6A: - ldr r0, _08002A74 -_08002A6C: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08002A74: .4byte 0x0000FFFF - thumb_func_end sub_08002A24 - - thumb_func_start sub_08002A78 -sub_08002A78: @ 0x08002A78 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bhi _08002A86 - movs r0, #0 - b _08002A88 -_08002A86: - movs r0, #1 -_08002A88: - pop {r1} - bx r1 - thumb_func_end sub_08002A78 - - thumb_func_start IsTileMapOutsideWram -IsTileMapOutsideWram: @ 0x08002A8C - push {lr} - lsls r0, r0, #0x18 - ldr r1, _08002AA8 - lsrs r0, r0, #0x14 - adds r1, #4 - adds r0, r0, r1 - ldr r1, [r0] - ldr r0, _08002AAC - cmp r1, r0 - bhi _08002AB0 - cmp r1, #0 - beq _08002AB0 - movs r0, #0 - b _08002AB2 - .align 2, 0 -_08002AA8: .4byte gUnknown_30008F8 -_08002AAC: .4byte 0x03008000 -_08002AB0: - movs r0, #1 -_08002AB2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsTileMapOutsideWram - - thumb_func_start BlitBitmapRect4BitWithoutColorKey -BlitBitmapRect4BitWithoutColorKey: @ 0x08002AB8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x14 - ldr r4, [sp, #0x2c] - ldr r5, [sp, #0x30] - ldr r6, [sp, #0x34] - ldr r7, [sp, #0x38] - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - lsls r7, r7, #0x10 - lsrs r7, r7, #0x10 - str r4, [sp] - str r5, [sp, #4] - str r6, [sp, #8] - str r7, [sp, #0xc] - movs r4, #0xff - str r4, [sp, #0x10] - bl BlitBitmapRect4Bit - add sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end BlitBitmapRect4BitWithoutColorKey - - thumb_func_start BlitBitmapRect4Bit -BlitBitmapRect4Bit: @ 0x08002AFC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x2c - str r0, [sp] - str r1, [sp, #4] - ldr r0, [sp, #0x4c] - ldr r1, [sp, #0x50] - ldr r4, [sp, #0x54] - ldr r5, [sp, #0x58] - ldr r6, [sp, #0x5c] - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - str r2, [sp, #8] - lsls r3, r3, #0x10 - lsrs r7, r3, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0xc] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sb, r1 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - str r6, [sp, #0x10] - ldr r0, [sp, #4] - ldrh r3, [r0, #4] - ldr r1, [sp, #0xc] - subs r0, r3, r1 - adds r2, r2, r4 - mov r8, r2 - cmp r0, r4 - bge _08002B50 - ldr r2, [sp, #8] - adds r0, r0, r2 - mov r8, r0 -_08002B50: - ldr r4, [sp, #4] - ldrh r0, [r4, #6] - mov r1, sb - subs r0, r0, r1 - adds r2, r5, r7 - str r2, [sp, #0x14] - cmp r0, r5 - bge _08002B64 - adds r0, r0, r7 - str r0, [sp, #0x14] -_08002B64: - ldr r4, [sp] - ldrh r1, [r4, #4] - movs r2, #7 - adds r0, r1, #0 - ands r0, r2 - adds r1, r1, r0 - asrs r1, r1, #3 - str r1, [sp, #0x18] - adds r0, r3, #0 - ands r0, r2 - adds r0, r3, r0 - asrs r0, r0, #3 - str r0, [sp, #0x1c] - ldr r0, [sp, #0x10] - cmp r0, #0xff - bne _08002C22 - adds r3, r7, #0 - mov r1, sb - ldr r2, [sp, #0x14] - cmp r3, r2 - blt _08002B90 - b _08002CCA -_08002B90: - ldr r5, [sp, #8] - ldr r6, [sp, #0xc] - adds r4, r3, #1 - str r4, [sp, #0x24] - adds r0, r1, #1 - str r0, [sp, #0x28] - cmp r5, r8 - bge _08002C16 - movs r7, #3 - asrs r0, r3, #3 - ldr r2, [sp, #0x18] - muls r0, r2, r0 - lsls r0, r0, #5 - mov sl, r0 - lsls r0, r3, #0x1d - lsrs r0, r0, #0x1b - mov sb, r0 - asrs r0, r1, #3 - ldr r4, [sp, #0x1c] - muls r0, r4, r0 - lsls r0, r0, #5 - mov ip, r0 - lsls r0, r1, #0x1d - lsrs r3, r0, #0x1b -_08002BC0: - asrs r0, r5, #1 - ands r0, r7 - ldr r2, [sp] - ldr r1, [r2] - adds r1, r1, r0 - asrs r0, r5, #3 - lsls r0, r0, #5 - adds r1, r1, r0 - add r1, sl - mov r4, sb - adds r2, r1, r4 - asrs r0, r6, #1 - ands r0, r7 - ldr r4, [sp, #4] - ldr r1, [r4] - adds r1, r1, r0 - asrs r0, r6, #3 - lsls r0, r0, #5 - adds r1, r1, r0 - add r1, ip - adds r4, r1, r3 - ldrb r2, [r2] - adds r0, r5, #0 - movs r1, #1 - ands r0, r1 - lsls r0, r0, #2 - asrs r2, r0 - movs r0, #0xf - ands r2, r0 - adds r0, r6, #0 - ands r0, r1 - lsls r1, r0, #2 - lsls r2, r1 - movs r0, #0xf0 - asrs r0, r1 - ldrb r1, [r4] - ands r0, r1 - orrs r2, r0 - strb r2, [r4] - adds r5, #1 - adds r6, #1 - cmp r5, r8 - blt _08002BC0 -_08002C16: - ldr r3, [sp, #0x24] - ldr r1, [sp, #0x28] - ldr r2, [sp, #0x14] - cmp r3, r2 - blt _08002B90 - b _08002CCA -_08002C22: - adds r3, r7, #0 - mov r1, sb - ldr r4, [sp, #0x14] - cmp r3, r4 - bge _08002CCA -_08002C2C: - ldr r5, [sp, #8] - ldr r6, [sp, #0xc] - adds r0, r3, #1 - str r0, [sp, #0x24] - adds r2, r1, #1 - str r2, [sp, #0x28] - cmp r5, r8 - bge _08002CC0 - movs r4, #3 - mov sb, r4 - asrs r0, r3, #3 - ldr r2, [sp, #0x18] - muls r0, r2, r0 - lsls r0, r0, #5 - str r0, [sp, #0x20] - lsls r0, r3, #0x1d - lsrs r0, r0, #0x1b - mov sl, r0 - movs r3, #1 - asrs r0, r1, #3 - ldr r4, [sp, #0x1c] - muls r0, r4, r0 - lsls r0, r0, #5 - mov ip, r0 - lsls r0, r1, #0x1d - lsrs r7, r0, #0x1b -_08002C60: - asrs r0, r5, #1 - mov r1, sb - ands r0, r1 - ldr r2, [sp] - ldr r1, [r2] - adds r1, r1, r0 - asrs r0, r5, #3 - lsls r0, r0, #5 - adds r1, r1, r0 - ldr r4, [sp, #0x20] - adds r1, r1, r4 - mov r0, sl - adds r2, r1, r0 - asrs r0, r6, #1 - mov r1, sb - ands r0, r1 - ldr r4, [sp, #4] - ldr r1, [r4] - adds r1, r1, r0 - asrs r0, r6, #3 - lsls r0, r0, #5 - adds r1, r1, r0 - add r1, ip - adds r4, r1, r7 - ldrb r2, [r2] - adds r0, r5, #0 - ands r0, r3 - lsls r0, r0, #2 - asrs r2, r0 - movs r0, #0xf - ands r2, r0 - ldr r0, [sp, #0x10] - cmp r2, r0 - beq _08002CB8 - adds r0, r6, #0 - ands r0, r3 - lsls r1, r0, #2 - lsls r2, r1 - movs r0, #0xf0 - asrs r0, r1 - ldrb r1, [r4] - ands r0, r1 - orrs r2, r0 - strb r2, [r4] -_08002CB8: - adds r5, #1 - adds r6, #1 - cmp r5, r8 - blt _08002C60 -_08002CC0: - ldr r3, [sp, #0x24] - ldr r1, [sp, #0x28] - ldr r2, [sp, #0x14] - cmp r3, r2 - blt _08002C2C -_08002CCA: - add sp, #0x2c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BlitBitmapRect4Bit - - thumb_func_start FillBitmapRect4Bit -FillBitmapRect4Bit: @ 0x08002CDC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov sb, r0 - ldr r0, [sp, #0x24] - ldr r4, [sp, #0x28] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sl, r1 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - adds r5, r2, #0 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r4, r4, #0x18 - lsrs r7, r4, #0x18 - adds r4, r1, r3 - mov r3, sb - ldrh r1, [r3, #4] - cmp r4, r1 - ble _08002D12 - adds r4, r1, #0 -_08002D12: - adds r2, r2, r0 - mov ip, r2 - mov r2, sb - ldrh r0, [r2, #6] - cmp ip, r0 - ble _08002D20 - mov ip, r0 -_08002D20: - movs r0, #7 - ands r0, r1 - adds r0, r1, r0 - asrs r0, r0, #3 - str r0, [sp] - adds r1, r5, #0 - cmp r1, ip - bge _08002D88 -_08002D30: - mov r3, sl - adds r0, r1, #1 - mov r8, r0 - cmp r3, r4 - bge _08002D82 - asrs r0, r1, #3 - ldr r2, [sp] - muls r0, r2, r0 - lsls r6, r0, #5 - lsls r0, r1, #0x1d - lsrs r5, r0, #0x1b -_08002D46: - asrs r2, r3, #1 - movs r0, #3 - ands r2, r0 - mov r0, sb - ldr r1, [r0] - adds r1, r1, r2 - asrs r0, r3, #3 - lsls r0, r0, #5 - adds r1, r1, r0 - adds r1, r1, r6 - adds r2, r1, r5 - movs r0, #1 - ands r0, r3 - cmp r0, #0 - beq _08002D72 - ldrb r0, [r2] - movs r1, #0xf - ands r1, r0 - lsls r0, r7, #4 - orrs r1, r0 - strb r1, [r2] - b _08002D7C -_08002D72: - ldrb r1, [r2] - movs r0, #0xf0 - ands r0, r1 - orrs r0, r7 - strb r0, [r2] -_08002D7C: - adds r3, #1 - cmp r3, r4 - blt _08002D46 -_08002D82: - mov r1, r8 - cmp r1, ip - blt _08002D30 -_08002D88: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end FillBitmapRect4Bit - - thumb_func_start BlitBitmapRect4BitTo8Bit -BlitBitmapRect4BitTo8Bit: @ 0x08002D98 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x3c - str r0, [sp] - str r1, [sp, #4] - ldr r0, [sp, #0x5c] - ldr r1, [sp, #0x60] - ldr r5, [sp, #0x64] - ldr r4, [sp, #0x68] - ldr r6, [sp, #0x6c] - ldr r7, [sp, #0x70] - mov r8, r7 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - str r2, [sp, #8] - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0xc] - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - str r6, [sp, #0x10] - mov r0, r8 - lsls r0, r0, #0x1c - lsrs r0, r0, #0x18 - str r0, [sp, #0x14] - lsls r0, r6, #0x1c - lsrs r0, r0, #0x18 - str r0, [sp, #0x28] - ldr r1, [sp, #4] - ldrh r0, [r1, #4] - ldr r2, [sp, #0xc] - subs r0, r0, r2 - ldr r1, [sp, #8] - adds r1, r5, r1 - str r1, [sp, #0x18] - cmp r0, r5 - bge _08002DFE - ldr r2, [sp, #8] - adds r0, r0, r2 - str r0, [sp, #0x18] -_08002DFE: - ldr r5, [sp, #4] - ldrh r1, [r5, #6] - subs r0, r1, r7 - cmp r0, r4 - bge _08002E10 - adds r0, r3, r1 - subs r0, r0, r7 - str r0, [sp, #0x1c] - b _08002E14 -_08002E10: - adds r4, r3, r4 - str r4, [sp, #0x1c] -_08002E14: - ldr r0, [sp] - ldrh r1, [r0, #4] - movs r2, #7 - adds r0, r1, #0 - ands r0, r2 - adds r1, r1, r0 - asrs r1, r1, #3 - str r1, [sp, #0x20] - ldr r5, [sp, #4] - ldrh r1, [r5, #4] - adds r0, r1, #0 - ands r0, r2 - adds r1, r1, r0 - asrs r1, r1, #3 - str r1, [sp, #0x24] - ldr r0, [sp, #0x10] - cmp r0, #0xff - bne _08002EF4 - adds r2, r3, #0 - adds r5, r7, #0 - ldr r1, [sp, #0x1c] - cmp r2, r1 - blt _08002E44 - b _08002FD6 -_08002E44: - ldr r3, [sp, #8] - lsrs r3, r3, #1 - str r3, [sp, #0x2c] - movs r0, #3 - ands r3, r0 - str r3, [sp, #0x2c] - ldr r7, [sp, #8] - lsrs r0, r7, #3 - lsls r0, r0, #5 - str r0, [sp, #0x30] -_08002E58: - ldr r0, [sp] - ldr r1, [r0] - ldr r3, [sp, #0x2c] - adds r1, r1, r3 - ldr r7, [sp, #0x30] - adds r1, r1, r7 - asrs r0, r2, #3 - ldr r3, [sp, #0x20] - muls r0, r3, r0 - lsls r0, r0, #5 - mov r8, r0 - add r1, r8 - lsls r0, r2, #0x1d - lsrs r7, r0, #0x1b - adds r6, r1, r7 - ldr r3, [sp, #8] - ldr r4, [sp, #0xc] - adds r2, #1 - mov sl, r2 - adds r0, r5, #1 - str r0, [sp, #0x38] - ldr r1, [sp, #0x18] - cmp r3, r1 - bge _08002EE8 - asrs r0, r5, #3 - ldr r2, [sp, #0x24] - muls r0, r2, r0 - lsls r0, r0, #6 - mov ip, r0 - lsls r0, r5, #0x1d - lsrs r0, r0, #0x1a - mov sb, r0 -_08002E98: - movs r0, #7 - ands r0, r4 - ldr r5, [sp, #4] - ldr r1, [r5] - adds r1, r1, r0 - asrs r0, r4, #3 - lsls r0, r0, #6 - adds r1, r1, r0 - add r1, ip - mov r0, sb - adds r5, r1, r0 - movs r0, #1 - ands r0, r3 - cmp r0, #0 - beq _08002EBC - ldrb r0, [r6] - lsrs r0, r0, #4 - b _08002ED8 -_08002EBC: - asrs r2, r3, #1 - movs r0, #3 - ands r2, r0 - ldr r0, [sp] - ldr r1, [r0] - adds r1, r1, r2 - asrs r0, r3, #3 - lsls r0, r0, #5 - adds r1, r1, r0 - add r1, r8 - adds r6, r1, r7 - ldrb r1, [r6] - movs r0, #0xf - ands r0, r1 -_08002ED8: - ldr r1, [sp, #0x14] - adds r0, r1, r0 - strb r0, [r5] - adds r3, #1 - adds r4, #1 - ldr r2, [sp, #0x18] - cmp r3, r2 - blt _08002E98 -_08002EE8: - mov r2, sl - ldr r5, [sp, #0x38] - ldr r3, [sp, #0x1c] - cmp r2, r3 - blt _08002E58 - b _08002FD6 -_08002EF4: - adds r2, r3, #0 - adds r5, r7, #0 - ldr r7, [sp, #0x1c] - cmp r2, r7 - bge _08002FD6 - ldr r0, [sp, #8] - lsrs r0, r0, #1 - str r0, [sp, #0x34] - movs r0, #3 - ldr r1, [sp, #0x34] - ands r1, r0 - str r1, [sp, #0x34] -_08002F0C: - ldr r3, [sp] - ldr r1, [r3] - ldr r7, [sp, #0x34] - adds r1, r1, r7 - ldr r3, [sp, #8] - lsrs r0, r3, #3 - lsls r0, r0, #5 - adds r1, r1, r0 - asrs r0, r2, #3 - ldr r7, [sp, #0x20] - muls r0, r7, r0 - lsls r0, r0, #5 - mov r8, r0 - add r1, r8 - lsls r0, r2, #0x1d - lsrs r7, r0, #0x1b - adds r6, r1, r7 - ldr r4, [sp, #0xc] - adds r2, #1 - mov sl, r2 - adds r0, r5, #1 - str r0, [sp, #0x38] - ldr r1, [sp, #0x18] - cmp r3, r1 - bge _08002FCC - asrs r0, r5, #3 - ldr r2, [sp, #0x24] - muls r0, r2, r0 - lsls r0, r0, #6 - mov sb, r0 - lsls r0, r5, #0x1d - lsrs r0, r0, #0x1a - mov ip, r0 -_08002F4E: - movs r0, #1 - ands r0, r3 - cmp r0, #0 - beq _08002F82 - ldrb r2, [r6] - movs r0, #0xf0 - ands r0, r2 - ldr r5, [sp, #0x28] - cmp r0, r5 - beq _08002FC2 - adds r0, r4, #0 - movs r1, #7 - ands r0, r1 - ldr r5, [sp, #4] - ldr r1, [r5] - adds r1, r1, r0 - asrs r0, r4, #3 - lsls r0, r0, #6 - adds r1, r1, r0 - add r1, sb - mov r0, ip - adds r5, r1, r0 - lsrs r0, r2, #4 - ldr r1, [sp, #0x14] - adds r0, r1, r0 - b _08002FC0 -_08002F82: - asrs r2, r3, #1 - movs r0, #3 - ands r2, r0 - ldr r5, [sp] - ldr r1, [r5] - adds r1, r1, r2 - asrs r0, r3, #3 - lsls r0, r0, #5 - adds r1, r1, r0 - add r1, r8 - adds r6, r1, r7 - ldrb r0, [r6] - movs r2, #0xf - ands r2, r0 - ldr r0, [sp, #0x10] - cmp r2, r0 - beq _08002FC2 - adds r0, r4, #0 - movs r1, #7 - ands r0, r1 - ldr r5, [sp, #4] - ldr r1, [r5] - adds r1, r1, r0 - asrs r0, r4, #3 - lsls r0, r0, #6 - adds r1, r1, r0 - add r1, sb - mov r0, ip - adds r5, r1, r0 - ldr r1, [sp, #0x14] - adds r0, r1, r2 -_08002FC0: - strb r0, [r5] -_08002FC2: - adds r3, #1 - adds r4, #1 - ldr r2, [sp, #0x18] - cmp r3, r2 - blt _08002F4E -_08002FCC: - mov r2, sl - ldr r5, [sp, #0x38] - ldr r3, [sp, #0x1c] - cmp r2, r3 - blt _08002F0C -_08002FD6: - add sp, #0x3c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BlitBitmapRect4BitTo8Bit - - thumb_func_start FillBitmapRect8Bit -FillBitmapRect8Bit: @ 0x08002FE8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - mov r8, r0 - ldr r0, [sp, #0x28] - ldr r4, [sp, #0x2c] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sl, r1 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - adds r6, r2, #0 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov sb, r4 - adds r5, r1, r3 - mov r3, r8 - ldrh r1, [r3, #4] - cmp r5, r1 - ble _08003020 - adds r5, r1, #0 -_08003020: - adds r7, r2, r0 - mov r2, r8 - ldrh r0, [r2, #6] - cmp r7, r0 - ble _0800302C - adds r7, r0, #0 -_0800302C: - movs r0, #7 - ands r0, r1 - adds r0, r1, r0 - asrs r0, r0, #3 - str r0, [sp] - adds r1, r6, #0 - cmp r1, r7 - bge _0800307C -_0800303C: - mov r3, sl - adds r6, r1, #1 - str r6, [sp, #4] - cmp r3, r5 - bge _08003076 - movs r0, #7 - mov ip, r0 - asrs r0, r1, #3 - ldr r2, [sp] - muls r0, r2, r0 - lsls r4, r0, #6 - lsls r0, r1, #0x1d - lsrs r2, r0, #0x1a -_08003056: - adds r0, r3, #0 - mov r6, ip - ands r0, r6 - mov r6, r8 - ldr r1, [r6] - adds r1, r1, r0 - asrs r0, r3, #3 - lsls r0, r0, #6 - adds r1, r1, r0 - adds r1, r1, r4 - adds r1, r1, r2 - mov r0, sb - strb r0, [r1] - adds r3, #1 - cmp r3, r5 - blt _08003056 -_08003076: - ldr r1, [sp, #4] - cmp r1, r7 - blt _0800303C -_0800307C: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end FillBitmapRect8Bit - - thumb_func_start sub_0800308C -sub_0800308C: @ 0x0800308C - bx lr - .align 2, 0 - thumb_func_end sub_0800308C - - thumb_func_start InitWindows -InitWindows: @ 0x08003090 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - adds r5, r0, #0 - movs r0, #0 - mov r8, r0 - ldr r4, _08003124 -_080030A4: - mov r1, r8 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - bl GetBgTilemapBuffer - cmp r0, #0 - beq _080030B4 - ldr r0, _08003128 -_080030B4: - str r0, [r4] - adds r4, #4 - movs r2, #1 - add r8, r2 - mov r0, r8 - cmp r0, #3 - ble _080030A4 - ldr r0, _0800312C - ldr r2, [r0] - ldr r3, [r0, #4] - ldr r1, _08003130 - movs r0, #0 - movs r4, #0x1f - mov r8, r4 -_080030D0: - str r2, [r1] - str r3, [r1, #4] - str r0, [r1, #8] - adds r1, #0xc - movs r4, #1 - rsbs r4, r4, #0 - add r8, r4 - mov r4, r8 - cmp r4, #0 - bge _080030D0 - movs r0, #0 - mov r8, r0 - movs r1, #0 - str r1, [sp] - ldrb r7, [r5] - cmp r7, #0xff - bne _080030F4 - b _0800322C -_080030F4: - adds r6, r5, #0 - movs r2, #0 - str r2, [sp, #4] -_080030FA: - ldr r0, _08003134 - ldr r0, [r0] - cmp r0, #1 - bne _08003138 - ldrb r1, [r6, #3] - ldrb r0, [r6, #4] - adds r2, r1, #0 - muls r2, r0, r2 - adds r0, r7, #0 - movs r1, #0 - movs r3, #0 - bl sub_080017D0 - str r0, [sp] - movs r0, #1 - rsbs r0, r0, #0 - ldr r4, [sp] - cmp r4, r0 - bne _08003138 -_08003120: - movs r0, #0 - b _08003234 - .align 2, 0 -_08003124: .4byte gUnknown_3003010 -_08003128: .4byte sub_0800308C -_0800312C: .4byte gUnknown_829BEB0 -_08003130: .4byte gUnknown_2020004 -_08003134: .4byte gUnknown_3002FF4 -_08003138: - ldr r0, _08003170 - mov sb, r0 - lsls r0, r7, #2 - mov r2, sb - adds r1, r0, r2 - ldr r1, [r1] - mov sl, r0 - cmp r1, #0 - bne _0800319A - adds r0, r7, #0 - movs r1, #8 - bl GetBgAttribute - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, _08003174 - cmp r5, r0 - beq _0800319A - adds r0, r5, #0 - bl AllocZeroed - adds r4, r0, #0 - cmp r4, #0 - bne _08003178 - bl FreeAllWindowBuffers - b _08003120 - .align 2, 0 -_08003170: .4byte gUnknown_3003010 -_08003174: .4byte 0x0000FFFF -_08003178: - movs r1, #0 - mov r3, sb - cmp r1, r5 - bge _0800318C - movs r2, #0 -_08003182: - adds r0, r4, r1 - strb r2, [r0] - adds r1, #1 - cmp r1, r5 - blt _08003182 -_0800318C: - mov r1, sl - adds r0, r1, r3 - str r4, [r0] - adds r0, r7, #0 - adds r1, r4, #0 - bl SetBgTilemapBuffer -_0800319A: - ldrb r1, [r6, #3] - ldrb r0, [r6, #4] - muls r0, r1, r0 - lsls r0, r0, #0x15 - lsrs r0, r0, #0x10 - bl AllocZeroed - adds r4, r0, #0 - cmp r4, #0 - bne _080031DC - adds r0, r7, #0 - bl sub_08004100 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08003120 - ldr r0, _080031D4 - mov r2, sl - adds r5, r2, r0 - ldr r1, [r5] - ldr r0, _080031D8 - cmp r1, r0 - beq _08003120 - adds r0, r1, #0 - bl Free - str r4, [r5] - b _08003120 - .align 2, 0 -_080031D4: .4byte gUnknown_3003010 -_080031D8: .4byte sub_0800308C -_080031DC: - ldr r1, _08003244 - adds r0, r1, #0 - adds r0, #8 - ldr r2, [sp, #4] - adds r0, r2, r0 - str r4, [r0] - adds r2, r2, r1 - ldr r0, [r6] - ldr r1, [r6, #4] - str r0, [r2] - str r1, [r2, #4] - ldr r0, _08003248 - ldr r0, [r0] - cmp r0, #1 - bne _08003212 - mov r4, sp - ldrh r4, [r4] - strh r4, [r2, #6] - ldrb r0, [r6, #3] - ldrb r1, [r6, #4] - adds r2, r0, #0 - muls r2, r1, r2 - adds r0, r7, #0 - ldr r1, [sp] - movs r3, #1 - bl sub_080017D0 -_08003212: - adds r6, #8 - ldr r0, [sp, #4] - adds r0, #0xc - str r0, [sp, #4] - movs r1, #1 - add r8, r1 - ldrb r7, [r6] - cmp r7, #0xff - beq _0800322C - mov r2, r8 - cmp r2, #0x1f - bgt _0800322C - b _080030FA -_0800322C: - ldr r1, _0800324C - movs r0, #0 - strb r0, [r1] - movs r0, #1 -_08003234: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08003244: .4byte gUnknown_2020004 -_08003248: .4byte gUnknown_3002FF4 -_0800324C: .4byte gUnknown_3003000 - thumb_func_end InitWindows - - thumb_func_start AddWindow -AddWindow: @ 0x08003250 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov r8, r0 - movs r6, #0 - ldr r1, _08003340 - ldrb r0, [r1] - cmp r0, #0xff - beq _08003280 -_08003268: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0x1f - bhi _08003280 - lsls r0, r6, #1 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0xff - bne _08003268 -_08003280: - cmp r6, #0x20 - beq _0800333A - mov r0, r8 - ldrb r7, [r0] - movs r1, #0 - mov sb, r1 - ldr r0, _08003344 - ldr r0, [r0] - cmp r0, #1 - bne _080032B2 - mov r2, r8 - ldrb r1, [r2, #3] - ldrb r0, [r2, #4] - adds r2, r1, #0 - muls r2, r0, r2 - adds r0, r7, #0 - movs r1, #0 - movs r3, #0 - bl sub_080017D0 - mov sb, r0 - movs r0, #1 - rsbs r0, r0, #0 - cmp sb, r0 - beq _0800333A -_080032B2: - ldr r3, _08003348 - mov sl, r3 - lsls r0, r7, #2 - adds r1, r0, r3 - ldr r1, [r1] - str r0, [sp] - cmp r1, #0 - bne _08003302 - adds r0, r7, #0 - movs r1, #8 - bl GetBgAttribute - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, _0800334C - cmp r5, r0 - beq _08003302 - adds r0, r5, #0 - bl AllocZeroed - adds r4, r0, #0 - cmp r4, #0 - beq _0800333A - movs r1, #0 - mov r3, sl - cmp r1, r5 - bge _080032F4 - movs r2, #0 -_080032EA: - adds r0, r4, r1 - strb r2, [r0] - adds r1, #1 - cmp r1, r5 - blt _080032EA -_080032F4: - ldr r1, [sp] - adds r0, r1, r3 - str r4, [r0] - adds r0, r7, #0 - adds r1, r4, #0 - bl SetBgTilemapBuffer -_08003302: - mov r2, r8 - ldrb r1, [r2, #3] - ldrb r0, [r2, #4] - muls r0, r1, r0 - lsls r0, r0, #0x15 - lsrs r0, r0, #0x10 - bl AllocZeroed - adds r4, r0, #0 - cmp r4, #0 - bne _08003354 - adds r0, r7, #0 - bl sub_08004100 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0800333A - ldr r0, _08003348 - ldr r3, [sp] - adds r5, r3, r0 - ldr r1, [r5] - ldr r0, _08003350 - cmp r1, r0 - beq _0800333A - adds r0, r1, #0 - bl Free - str r4, [r5] -_0800333A: - movs r0, #0xff - b _08003390 - .align 2, 0 -_08003340: .4byte gUnknown_2020004 -_08003344: .4byte gUnknown_3002FF4 -_08003348: .4byte gUnknown_3003010 -_0800334C: .4byte 0x0000FFFF -_08003350: .4byte sub_0800308C -_08003354: - ldr r2, _080033A0 - lsls r1, r6, #1 - adds r1, r1, r6 - lsls r1, r1, #2 - adds r0, r2, #0 - adds r0, #8 - adds r0, r1, r0 - str r4, [r0] - adds r2, r1, r2 - mov r3, r8 - ldr r0, [r3] - ldr r1, [r3, #4] - str r0, [r2] - str r1, [r2, #4] - ldr r0, _080033A4 - ldr r0, [r0] - cmp r0, #1 - bne _0800338E - mov r0, sb - strh r0, [r2, #6] - ldrb r0, [r2, #3] - ldrb r1, [r2, #4] - adds r2, r0, #0 - muls r2, r1, r2 - adds r0, r7, #0 - mov r1, sb - movs r3, #1 - bl sub_080017D0 -_0800338E: - adds r0, r6, #0 -_08003390: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080033A0: .4byte gUnknown_2020004 -_080033A4: .4byte gUnknown_3002FF4 - thumb_func_end AddWindow - - thumb_func_start AddWindowWithoutTileMap -AddWindowWithoutTileMap: @ 0x080033A8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r4, #0 - ldr r1, _080033FC - ldrb r0, [r1] - cmp r0, #0xff - beq _080033CE -_080033B6: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x1f - bhi _080033CE - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0xff - bne _080033B6 -_080033CE: - cmp r4, #0x20 - beq _080033F8 - ldrb r6, [r5] - movs r3, #0 - ldr r0, _08003400 - ldr r0, [r0] - cmp r0, #1 - bne _08003404 - ldrb r1, [r5, #3] - ldrb r0, [r5, #4] - adds r2, r1, #0 - muls r2, r0, r2 - adds r0, r6, #0 - movs r1, #0 - bl sub_080017D0 - adds r3, r0, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r3, r0 - bne _08003404 -_080033F8: - movs r0, #0xff - b _08003434 - .align 2, 0 -_080033FC: .4byte gUnknown_2020004 -_08003400: .4byte gUnknown_3002FF4 -_08003404: - ldr r1, _0800343C - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r2, r0, r1 - ldr r0, [r5] - ldr r1, [r5, #4] - str r0, [r2] - str r1, [r2, #4] - ldr r0, _08003440 - ldr r0, [r0] - cmp r0, #1 - bne _08003432 - strh r3, [r2, #6] - ldrb r0, [r2, #3] - ldrb r1, [r2, #4] - adds r2, r0, #0 - muls r2, r1, r2 - adds r0, r6, #0 - adds r1, r3, #0 - movs r3, #1 - bl sub_080017D0 -_08003432: - adds r0, r4, #0 -_08003434: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0800343C: .4byte gUnknown_2020004 -_08003440: .4byte gUnknown_3002FF4 - thumb_func_end AddWindowWithoutTileMap - - thumb_func_start RemoveWindow -RemoveWindow: @ 0x08003444 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _080034C0 - lsls r0, r6, #1 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r4, r0, r1 - ldrb r3, [r4] - adds r7, r3, #0 - ldr r0, _080034C4 - ldr r0, [r0] - cmp r0, #1 - bne _08003470 - ldrh r1, [r4, #6] - ldrb r2, [r4, #3] - ldrb r0, [r4, #4] - muls r2, r0, r2 - adds r0, r3, #0 - movs r3, #2 - bl sub_080017D0 -_08003470: - ldr r0, _080034C8 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [r4] - str r1, [r4, #4] - adds r0, r7, #0 - bl sub_08004100 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _0800349E - ldr r0, _080034CC - lsls r1, r7, #2 - adds r4, r1, r0 - ldr r1, [r4] - ldr r0, _080034D0 - cmp r1, r0 - beq _0800349E - adds r0, r1, #0 - bl Free - str r5, [r4] -_0800349E: - ldr r1, _080034C0 - lsls r0, r6, #1 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r1, #8 - adds r4, r0, r1 - ldr r0, [r4] - cmp r0, #0 - beq _080034B8 - bl Free - movs r0, #0 - str r0, [r4] -_080034B8: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080034C0: .4byte gUnknown_2020004 -_080034C4: .4byte gUnknown_3002FF4 -_080034C8: .4byte gUnknown_829BEB0 -_080034CC: .4byte gUnknown_3003010 -_080034D0: .4byte sub_0800308C - thumb_func_end RemoveWindow - - thumb_func_start FreeAllWindowBuffers -FreeAllWindowBuffers: @ 0x080034D4 - push {r4, r5, r6, lr} - ldr r4, _0800351C - movs r5, #3 -_080034DA: - ldr r1, [r4] - cmp r1, #0 - beq _080034F0 - ldr r0, _08003520 - cmp r1, r0 - beq _080034F0 - adds r0, r1, #0 - bl Free - movs r0, #0 - str r0, [r4] -_080034F0: - adds r4, #4 - subs r5, #1 - cmp r5, #0 - bge _080034DA - ldr r0, _08003524 - adds r4, r0, #0 - adds r4, #8 - movs r6, #0 - movs r5, #0x1f -_08003502: - ldr r0, [r4] - cmp r0, #0 - beq _0800350E - bl Free - str r6, [r4] -_0800350E: - adds r4, #0xc - subs r5, #1 - cmp r5, #0 - bge _08003502 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0800351C: .4byte gUnknown_3003010 -_08003520: .4byte sub_0800308C -_08003524: .4byte gUnknown_2020004 - thumb_func_end FreeAllWindowBuffers - - thumb_func_start CopyWindowToVram -CopyWindowToVram: @ 0x08003528 - push {r4, r5, r6, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - adds r5, r3, #0 - ldr r2, _08003560 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - mov r0, sp - adds r1, r1, r2 - ldm r1!, {r2, r4, r6} - stm r0!, {r2, r4, r6} - mov r0, sp - ldrb r1, [r0, #3] - ldrb r0, [r0, #4] - muls r0, r1, r0 - lsls r0, r0, #0x15 - lsrs r4, r0, #0x10 - cmp r3, #2 - beq _08003574 - cmp r3, #2 - bgt _08003564 - cmp r3, #1 - beq _0800356A - b _0800359E - .align 2, 0 -_08003560: .4byte gUnknown_2020004 -_08003564: - cmp r5, #3 - beq _08003586 - b _0800359E -_0800356A: - mov r0, sp - ldrb r0, [r0] - bl CopyBgTilemapBufferToVram - b _0800359E -_08003574: - mov r0, sp - ldrb r0, [r0] - ldr r1, [sp, #8] - mov r2, sp - ldrh r3, [r2, #6] - adds r2, r4, #0 - bl LoadBgTiles - b _0800359E -_08003586: - mov r0, sp - ldrb r0, [r0] - ldr r1, [sp, #8] - mov r2, sp - ldrh r3, [r2, #6] - adds r2, r4, #0 - bl LoadBgTiles - mov r0, sp - ldrb r0, [r0] - bl CopyBgTilemapBufferToVram -_0800359E: - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CopyWindowToVram - - thumb_func_start CopyWindowRectToVram -CopyWindowRectToVram: @ 0x080035A8 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - adds r6, r0, #0 - adds r5, r1, #0 - adds r4, r2, #0 - mov ip, r3 - ldr r3, [sp, #0x24] - ldr r0, [sp, #0x20] - cmp r0, #0 - beq _08003652 - cmp r3, #0 - beq _08003652 - ldr r2, _080035FC - lsls r0, r6, #1 - adds r0, r0, r6 - lsls r0, r0, #2 - mov r1, sp - adds r0, r0, r2 - ldm r0!, {r2, r6, r7} - stm r1!, {r2, r6, r7} - subs r2, r3, #1 - mov r0, sp - ldrb r1, [r0, #3] - adds r3, r2, #0 - muls r3, r1, r3 - subs r0, r1, r4 - adds r3, r3, r0 - ldr r2, [sp, #0x20] - adds r0, r4, r2 - subs r0, r1, r0 - subs r3, r3, r0 - lsls r3, r3, #5 - mov r0, ip - muls r0, r1, r0 - adds r4, r0, r4 - cmp r5, #2 - beq _08003610 - cmp r5, #2 - bhi _08003600 - cmp r5, #1 - beq _08003606 - b _08003652 - .align 2, 0 -_080035FC: .4byte gUnknown_2020004 -_08003600: - cmp r5, #3 - beq _0800362E - b _08003652 -_08003606: - mov r0, sp - ldrb r0, [r0] - bl CopyBgTilemapBufferToVram - b _08003652 -_08003610: - mov r0, sp - ldrb r0, [r0] - lsls r2, r4, #5 - ldr r1, [sp, #8] - adds r1, r1, r2 - lsls r2, r3, #0x10 - lsrs r2, r2, #0x10 - mov r3, sp - ldrh r3, [r3, #6] - adds r3, r3, r4 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - bl LoadBgTiles - b _08003652 -_0800362E: - mov r0, sp - ldrb r0, [r0] - lsls r2, r4, #5 - ldr r1, [sp, #8] - adds r1, r1, r2 - lsls r2, r3, #0x10 - lsrs r2, r2, #0x10 - mov r3, sp - ldrh r3, [r3, #6] - adds r3, r3, r4 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - bl LoadBgTiles - mov r0, sp - ldrb r0, [r0] - bl CopyBgTilemapBufferToVram -_08003652: - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CopyWindowRectToVram - - thumb_func_start PutWindowTilemap -PutWindowTilemap: @ 0x0800365C - push {r4, lr} - sub sp, #0x1c - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080036B8 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - add r0, sp, #0x10 - adds r1, r1, r2 - ldm r1!, {r2, r3, r4} - stm r0!, {r2, r3, r4} - add r0, sp, #0x10 - ldrb r0, [r0] - movs r1, #0xa - bl GetBgAttribute - adds r1, r0, #0 - add r0, sp, #0x10 - ldrh r0, [r0, #6] - adds r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - add r0, sp, #0x10 - ldrb r0, [r0] - add r2, sp, #0x10 - ldrb r2, [r2, #1] - add r3, sp, #0x10 - ldrb r3, [r3, #2] - add r4, sp, #0x10 - ldrb r4, [r4, #3] - str r4, [sp] - add r4, sp, #0x10 - ldrb r4, [r4, #4] - str r4, [sp, #4] - add r4, sp, #0x10 - ldrb r4, [r4, #5] - str r4, [sp, #8] - movs r4, #1 - str r4, [sp, #0xc] - bl WriteSequenceToBgTilemapBuffer - add sp, #0x1c - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080036B8: .4byte gUnknown_2020004 - thumb_func_end PutWindowTilemap - - thumb_func_start PutWindowRectTilemapOverridePalette -PutWindowRectTilemapOverridePalette: @ 0x080036BC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x24 - ldr r4, [sp, #0x44] - ldr r5, [sp, #0x48] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sl, r1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sb, r2 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r3, [sp, #0x1c] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r8, r4 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - str r5, [sp, #0x20] - ldr r2, _08003770 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - add r0, sp, #0x10 - adds r1, r1, r2 - ldm r1!, {r2, r3, r4} - stm r0!, {r2, r3, r4} - add r0, sp, #0x10 - ldrb r0, [r0] - movs r1, #0xa - bl GetBgAttribute - add r2, sp, #0x10 - adds r1, r2, #0 - ldrb r1, [r1, #3] - mov r3, sb - muls r3, r1, r3 - adds r1, r3, #0 - ldrh r2, [r2, #6] - adds r1, r1, r2 - add r1, sl - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - movs r5, #0 - cmp r5, r8 - bge _0800375E - add r4, sp, #0x10 - movs r7, #1 -_0800372A: - ldrb r0, [r4] - ldrb r2, [r4, #1] - add r2, sl - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r3, [r4, #2] - add r3, sb - adds r3, r3, r5 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r1, [sp, #0x1c] - str r1, [sp] - str r7, [sp, #4] - ldr r1, [sp, #0x20] - str r1, [sp, #8] - str r7, [sp, #0xc] - adds r1, r6, #0 - bl WriteSequenceToBgTilemapBuffer - ldrb r0, [r4, #3] - adds r0, r6, r0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r5, #1 - cmp r5, r8 - blt _0800372A -_0800375E: - add sp, #0x24 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08003770: .4byte gUnknown_2020004 - thumb_func_end PutWindowRectTilemapOverridePalette - - thumb_func_start ClearWindowTilemap -ClearWindowTilemap: @ 0x08003774 - push {r4, lr} - sub sp, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080037BC - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - add r0, sp, #0xc - adds r1, r1, r2 - ldm r1!, {r2, r3, r4} - stm r0!, {r2, r3, r4} - add r0, sp, #0xc - ldrb r0, [r0] - ldr r1, _080037C0 - ldrb r1, [r1] - add r2, sp, #0xc - ldrb r2, [r2, #1] - add r3, sp, #0xc - ldrb r3, [r3, #2] - add r4, sp, #0xc - ldrb r4, [r4, #3] - str r4, [sp] - add r4, sp, #0xc - ldrb r4, [r4, #4] - str r4, [sp, #4] - add r4, sp, #0xc - ldrb r4, [r4, #5] - str r4, [sp, #8] - bl FillBgTilemapBufferRect - add sp, #0x18 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080037BC: .4byte gUnknown_2020004 -_080037C0: .4byte gUnknown_3003000 - thumb_func_end ClearWindowTilemap - - thumb_func_start PutWindowRectTilemap -PutWindowRectTilemap: @ 0x080037C4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - ldr r4, [sp, #0x40] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sl, r1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sb, r2 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r3, [sp, #0x1c] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r8, r4 - ldr r2, _08003870 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - add r0, sp, #0x10 - adds r1, r1, r2 - ldm r1!, {r2, r3, r4} - stm r0!, {r2, r3, r4} - add r0, sp, #0x10 - ldrb r0, [r0] - movs r1, #0xa - bl GetBgAttribute - add r2, sp, #0x10 - adds r1, r2, #0 - ldrb r1, [r1, #3] - mov r3, sb - muls r3, r1, r3 - adds r1, r3, #0 - ldrh r2, [r2, #6] - adds r1, r1, r2 - add r1, sl - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - movs r5, #0 - cmp r5, r8 - bge _0800385E - add r4, sp, #0x10 - movs r7, #1 -_0800382A: - ldrb r0, [r4] - ldrb r2, [r4, #1] - add r2, sl - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r3, [r4, #2] - add r3, sb - adds r3, r3, r5 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r1, [sp, #0x1c] - str r1, [sp] - str r7, [sp, #4] - ldrb r1, [r4, #5] - str r1, [sp, #8] - str r7, [sp, #0xc] - adds r1, r6, #0 - bl WriteSequenceToBgTilemapBuffer - ldrb r0, [r4, #3] - adds r0, r6, r0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r5, #1 - cmp r5, r8 - blt _0800382A -_0800385E: - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08003870: .4byte gUnknown_2020004 - thumb_func_end PutWindowRectTilemap - - thumb_func_start BlitBitmapToWindow -BlitBitmapToWindow: @ 0x08003874 - push {r4, r5, lr} - sub sp, #0x18 - ldr r4, [sp, #0x24] - ldr r5, [sp, #0x28] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - str r4, [sp] - str r5, [sp, #4] - str r2, [sp, #8] - str r3, [sp, #0xc] - str r4, [sp, #0x10] - str r5, [sp, #0x14] - movs r2, #0 - movs r3, #0 - bl BlitBitmapRectToWindow - add sp, #0x18 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end BlitBitmapToWindow - - thumb_func_start BlitBitmapRectToWindow -BlitBitmapRectToWindow: @ 0x080038AC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x24 - ldr r4, [sp, #0x44] - ldr r5, [sp, #0x48] - ldr r6, [sp, #0x4c] - mov r8, r6 - ldr r6, [sp, #0x50] - mov sb, r6 - ldr r6, [sp, #0x54] - mov sl, r6 - ldr r6, [sp, #0x58] - mov ip, r6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r4, r4, #0x10 - mov r6, r8 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - mov r8, r6 - mov r6, sb - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - mov sb, r6 - mov r6, sl - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - mov sl, r6 - mov r6, ip - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - mov ip, r6 - str r1, [sp, #0x14] - ldr r7, _08003960 - lsls r5, r5, #0x10 - ldr r6, _08003964 - lsrs r4, r4, #0x10 - orrs r4, r5 - str r4, [sp, #0x18] - ldr r1, _08003968 - lsls r5, r0, #1 - adds r5, r5, r0 - lsls r5, r5, #2 - adds r0, r1, #0 - adds r0, #8 - adds r0, r5, r0 - ldr r0, [r0] - str r0, [sp, #0x1c] - adds r5, r5, r1 - ldrb r0, [r5, #3] - lsls r0, r0, #3 - add r1, sp, #0x1c - ldr r4, [r1, #4] - ands r4, r7 - orrs r4, r0 - str r4, [r1, #4] - ldrb r0, [r5, #4] - lsls r0, r0, #0x13 - ands r6, r4 - orrs r6, r0 - str r6, [r1, #4] - mov r0, r8 - str r0, [sp] - mov r6, sb - str r6, [sp, #4] - mov r0, sl - str r0, [sp, #8] - mov r6, ip - str r6, [sp, #0xc] - movs r0, #0 - str r0, [sp, #0x10] - add r0, sp, #0x14 - bl BlitBitmapRect4Bit - add sp, #0x24 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08003960: .4byte 0xFFFF0000 -_08003964: .4byte 0x0000FFFF -_08003968: .4byte gUnknown_2020004 - thumb_func_end BlitBitmapRectToWindow - - thumb_func_start BlitBitmapRectToWindowWithColorKey -BlitBitmapRectToWindowWithColorKey: @ 0x0800396C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x28 - ldr r4, [sp, #0x48] - ldr r5, [sp, #0x4c] - ldr r6, [sp, #0x50] - mov r8, r6 - ldr r7, [sp, #0x54] - mov sb, r7 - ldr r6, [sp, #0x58] - mov sl, r6 - ldr r7, [sp, #0x5c] - mov ip, r7 - ldr r6, [sp, #0x60] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r4, r4, #0x10 - mov r7, r8 - lsls r7, r7, #0x10 - lsrs r7, r7, #0x10 - mov r8, r7 - mov r7, sb - lsls r7, r7, #0x10 - lsrs r7, r7, #0x10 - mov sb, r7 - mov r7, sl - lsls r7, r7, #0x10 - lsrs r7, r7, #0x10 - mov sl, r7 - mov r7, ip - lsls r7, r7, #0x10 - lsrs r7, r7, #0x10 - mov ip, r7 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - str r6, [sp, #0x24] - str r1, [sp, #0x14] - lsls r5, r5, #0x10 - ldr r6, _08003A28 - lsrs r4, r4, #0x10 - orrs r4, r5 - str r4, [sp, #0x18] - ldr r1, _08003A2C - lsls r5, r0, #1 - adds r5, r5, r0 - lsls r5, r5, #2 - adds r0, r1, #0 - adds r0, #8 - adds r0, r5, r0 - ldr r0, [r0] - str r0, [sp, #0x1c] - adds r5, r5, r1 - ldrb r0, [r5, #3] - lsls r0, r0, #3 - add r1, sp, #0x1c - ldr r4, [r1, #4] - ldr r7, _08003A30 - ands r4, r7 - orrs r4, r0 - str r4, [r1, #4] - ldrb r0, [r5, #4] - lsls r0, r0, #0x13 - ands r6, r4 - orrs r6, r0 - str r6, [r1, #4] - mov r0, r8 - str r0, [sp] - mov r6, sb - str r6, [sp, #4] - mov r7, sl - str r7, [sp, #8] - mov r0, ip - str r0, [sp, #0xc] - ldr r6, [sp, #0x24] - str r6, [sp, #0x10] - add r0, sp, #0x14 - bl BlitBitmapRect4Bit - add sp, #0x28 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08003A28: .4byte 0x0000FFFF -_08003A2C: .4byte gUnknown_2020004 -_08003A30: .4byte 0xFFFF0000 - thumb_func_end BlitBitmapRectToWindowWithColorKey - - thumb_func_start sub_08003A34 -sub_08003A34: @ 0x08003A34 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #0x10 - mov sb, r3 - ldr r3, [sp, #0x28] - ldr r4, [sp, #0x2c] - mov r8, r4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - mov r4, sb - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - mov sb, r4 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - mov r4, r8 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - mov r8, r4 - ldr r5, _08003AB4 - lsls r4, r0, #1 - adds r4, r4, r0 - lsls r4, r4, #2 - adds r0, r5, #0 - adds r0, #8 - adds r0, r4, r0 - ldr r0, [r0] - str r0, [sp, #8] - adds r4, r4, r5 - ldrb r0, [r4, #3] - lsls r0, r0, #3 - ldr r6, _08003AB8 - ldr r5, [sp, #0xc] - ands r5, r6 - orrs r5, r0 - str r5, [sp, #0xc] - ldrb r4, [r4, #4] - lsls r4, r4, #0x13 - ldr r0, _08003ABC - ands r0, r5 - orrs r0, r4 - str r0, [sp, #0xc] - mov r0, r8 - str r0, [sp] - str r1, [sp, #4] - add r0, sp, #8 - adds r1, r2, #0 - mov r2, sb - bl FillBitmapRect4Bit - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08003AB4: .4byte gUnknown_2020004 -_08003AB8: .4byte 0xFFFF0000 -_08003ABC: .4byte 0x0000FFFF - thumb_func_end sub_08003A34 - - thumb_func_start CopyToWindowPixelBuffer -CopyToWindowPixelBuffer: @ 0x08003AC0 - push {r4, r5, r6, lr} - adds r6, r1, #0 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r5, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r2, r3, #0x10 - cmp r5, #0 - beq _08003AF4 - ldr r1, _08003AF0 - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r1, #8 - adds r0, r0, r1 - lsls r2, r2, #5 - ldr r1, [r0] - adds r1, r1, r2 - lsrs r2, r5, #0x11 - adds r0, r6, #0 - bl CpuSet - b _08003B0C - .align 2, 0 -_08003AF0: .4byte gUnknown_2020004 -_08003AF4: - ldr r1, _08003B14 - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r1, #8 - adds r0, r0, r1 - lsls r2, r2, #5 - ldr r1, [r0] - adds r1, r1, r2 - adds r0, r6, #0 - bl LZ77UnCompWram -_08003B0C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08003B14: .4byte gUnknown_2020004 - thumb_func_end CopyToWindowPixelBuffer - - thumb_func_start FillWindowPixelBuffer -FillWindowPixelBuffer: @ 0x08003B18 - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r5, _08003B60 - lsls r4, r0, #1 - adds r4, r4, r0 - lsls r4, r4, #2 - adds r0, r4, r5 - ldrb r2, [r0, #3] - ldrb r0, [r0, #4] - muls r2, r0, r2 - lsls r0, r1, #0x18 - lsls r3, r1, #0x10 - orrs r0, r3 - lsls r3, r1, #8 - orrs r0, r3 - orrs r0, r1 - str r0, [sp] - adds r5, #8 - adds r4, r4, r5 - ldr r1, [r4] - lsls r2, r2, #3 - movs r0, #0x80 - lsls r0, r0, #0x11 - orrs r2, r0 - mov r0, sp - bl CpuFastSet - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08003B60: .4byte gUnknown_2020004 - thumb_func_end FillWindowPixelBuffer - - thumb_func_start ScrollWindow -ScrollWindow: @ 0x08003B64 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r2, _08003C00 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r4, r1, r2 - adds r2, #8 - adds r1, r1, r2 - ldr r5, [r1] - lsls r7, r3, #0x18 - lsls r0, r3, #0x10 - orrs r7, r0 - lsls r0, r3, #8 - orrs r7, r0 - orrs r7, r3 - ldr r1, [r4] - ldr r2, [r4, #4] - ldrb r3, [r4, #4] - lsrs r0, r1, #0x18 - muls r0, r3, r0 - lsls r6, r0, #5 - lsrs r1, r1, #0x18 - mov ip, r1 - mov r0, r8 - cmp r0, #1 - bne _08003BB8 - b _08003D6E -_08003BB8: - cmp r0, #1 - ble _08003BBE - b _08003F16 -_08003BBE: - cmp r0, #0 - beq _08003BC4 - b _08003F16 -_08003BC4: - movs r4, #0 - cmp r4, r6 - blt _08003BCC - b _08003F16 -_08003BCC: - movs r1, #8 - rsbs r1, r1, #0 - mov sb, r1 - movs r2, #7 - mov r8, r2 - mov sl, r5 -_08003BD8: - ldr r3, [sp] - adds r0, r3, #0 - mov r1, sb - ands r0, r1 - mov r1, ip - muls r1, r0, r1 - adds r0, r3, #0 - mov r2, r8 - ands r0, r2 - orrs r1, r0 - lsls r1, r1, #2 - adds r1, r4, r1 - cmp r1, r6 - bge _08003C04 - adds r0, r5, r1 - ldr r0, [r0] - mov r1, sl - str r0, [r1] - b _08003C08 - .align 2, 0 -_08003C00: .4byte gUnknown_2020004 -_08003C04: - mov r2, sl - str r7, [r2] -_08003C08: - adds r3, #1 - adds r2, r4, #4 - adds r0, r3, #0 - mov r1, sb - ands r0, r1 - mov r1, ip - muls r1, r0, r1 - str r1, [sp, #4] - adds r0, r3, #0 - mov r1, r8 - ands r0, r1 - ldr r1, [sp, #4] - orrs r1, r0 - lsls r1, r1, #2 - adds r1, r4, r1 - cmp r1, r6 - bge _08003C34 - adds r0, r5, r2 - adds r1, r5, r1 - ldr r1, [r1] - str r1, [r0] - b _08003C38 -_08003C34: - adds r0, r5, r2 - str r7, [r0] -_08003C38: - adds r3, #1 - adds r2, r4, #0 - adds r2, #8 - adds r0, r3, #0 - mov r1, sb - ands r0, r1 - mov r1, ip - muls r1, r0, r1 - str r1, [sp, #4] - adds r0, r3, #0 - mov r1, r8 - ands r0, r1 - ldr r1, [sp, #4] - orrs r1, r0 - lsls r1, r1, #2 - adds r1, r4, r1 - cmp r1, r6 - bge _08003C66 - adds r0, r5, r2 - adds r1, r5, r1 - ldr r1, [r1] - str r1, [r0] - b _08003C6A -_08003C66: - adds r0, r5, r2 - str r7, [r0] -_08003C6A: - adds r3, #1 - adds r2, r4, #0 - adds r2, #0xc - adds r0, r3, #0 - mov r1, sb - ands r0, r1 - mov r1, ip - muls r1, r0, r1 - str r1, [sp, #4] - adds r0, r3, #0 - mov r1, r8 - ands r0, r1 - ldr r1, [sp, #4] - orrs r1, r0 - lsls r1, r1, #2 - adds r1, r4, r1 - cmp r1, r6 - bge _08003C98 - adds r0, r5, r2 - adds r1, r5, r1 - ldr r1, [r1] - str r1, [r0] - b _08003C9C -_08003C98: - adds r0, r5, r2 - str r7, [r0] -_08003C9C: - adds r3, #1 - adds r2, r4, #0 - adds r2, #0x10 - adds r0, r3, #0 - mov r1, sb - ands r0, r1 - mov r1, ip - muls r1, r0, r1 - str r1, [sp, #4] - adds r0, r3, #0 - mov r1, r8 - ands r0, r1 - ldr r1, [sp, #4] - orrs r1, r0 - lsls r1, r1, #2 - adds r1, r4, r1 - cmp r1, r6 - bge _08003CCA - adds r0, r5, r2 - adds r1, r5, r1 - ldr r1, [r1] - str r1, [r0] - b _08003CCE -_08003CCA: - adds r0, r5, r2 - str r7, [r0] -_08003CCE: - adds r3, #1 - adds r2, r4, #0 - adds r2, #0x14 - adds r0, r3, #0 - mov r1, sb - ands r0, r1 - mov r1, ip - muls r1, r0, r1 - str r1, [sp, #4] - adds r0, r3, #0 - mov r1, r8 - ands r0, r1 - ldr r1, [sp, #4] - orrs r1, r0 - lsls r1, r1, #2 - adds r1, r4, r1 - cmp r1, r6 - bge _08003CFC - adds r0, r5, r2 - adds r1, r5, r1 - ldr r1, [r1] - str r1, [r0] - b _08003D00 -_08003CFC: - adds r0, r5, r2 - str r7, [r0] -_08003D00: - adds r3, #1 - adds r2, r4, #0 - adds r2, #0x18 - adds r0, r3, #0 - mov r1, sb - ands r0, r1 - mov r1, ip - muls r1, r0, r1 - str r1, [sp, #4] - adds r0, r3, #0 - mov r1, r8 - ands r0, r1 - ldr r1, [sp, #4] - orrs r1, r0 - lsls r1, r1, #2 - adds r1, r4, r1 - cmp r1, r6 - bge _08003D2E - adds r0, r5, r2 - adds r1, r5, r1 - ldr r1, [r1] - str r1, [r0] - b _08003D32 -_08003D2E: - adds r0, r5, r2 - str r7, [r0] -_08003D32: - adds r3, #1 - adds r2, r4, #0 - adds r2, #0x1c - adds r0, r3, #0 - mov r1, sb - ands r0, r1 - mov r1, ip - muls r1, r0, r1 - adds r0, r1, #0 - mov r1, r8 - ands r3, r1 - orrs r0, r3 - lsls r0, r0, #2 - adds r1, r4, r0 - cmp r1, r6 - bge _08003D5C - adds r0, r5, r2 - adds r1, r5, r1 - ldr r1, [r1] - str r1, [r0] - b _08003D60 -_08003D5C: - adds r0, r5, r2 - str r7, [r0] -_08003D60: - movs r2, #0x20 - add sl, r2 - adds r4, #0x20 - cmp r4, r6 - bge _08003D6C - b _08003BD8 -_08003D6C: - b _08003F16 -_08003D6E: - subs r0, r6, #4 - adds r5, r5, r0 - movs r4, #0 - cmp r4, r6 - blt _08003D7A - b _08003F16 -_08003D7A: - movs r0, #8 - rsbs r0, r0, #0 - mov sb, r0 - movs r1, #7 - mov r8, r1 - mov sl, r5 -_08003D86: - ldr r3, [sp] - adds r0, r3, #0 - mov r2, sb - ands r0, r2 - mov r1, ip - muls r1, r0, r1 - adds r0, r3, #0 - mov r2, r8 - ands r0, r2 - orrs r1, r0 - lsls r1, r1, #2 - adds r1, r4, r1 - cmp r1, r6 - bge _08003DAC - subs r0, r5, r1 - ldr r0, [r0] - mov r1, sl - str r0, [r1] - b _08003DB0 -_08003DAC: - mov r2, sl - str r7, [r2] -_08003DB0: - adds r3, #1 - adds r2, r4, #4 - adds r0, r3, #0 - mov r1, sb - ands r0, r1 - mov r1, ip - muls r1, r0, r1 - str r1, [sp, #4] - adds r0, r3, #0 - mov r1, r8 - ands r0, r1 - ldr r1, [sp, #4] - orrs r1, r0 - lsls r1, r1, #2 - adds r1, r4, r1 - cmp r1, r6 - bge _08003DDC - subs r0, r5, r2 - subs r1, r5, r1 - ldr r1, [r1] - str r1, [r0] - b _08003DE0 -_08003DDC: - subs r0, r5, r2 - str r7, [r0] -_08003DE0: - adds r3, #1 - adds r2, r4, #0 - adds r2, #8 - adds r0, r3, #0 - mov r1, sb - ands r0, r1 - mov r1, ip - muls r1, r0, r1 - str r1, [sp, #4] - adds r0, r3, #0 - mov r1, r8 - ands r0, r1 - ldr r1, [sp, #4] - orrs r1, r0 - lsls r1, r1, #2 - adds r1, r4, r1 - cmp r1, r6 - bge _08003E0E - subs r0, r5, r2 - subs r1, r5, r1 - ldr r1, [r1] - str r1, [r0] - b _08003E12 -_08003E0E: - subs r0, r5, r2 - str r7, [r0] -_08003E12: - adds r3, #1 - adds r2, r4, #0 - adds r2, #0xc - adds r0, r3, #0 - mov r1, sb - ands r0, r1 - mov r1, ip - muls r1, r0, r1 - str r1, [sp, #4] - adds r0, r3, #0 - mov r1, r8 - ands r0, r1 - ldr r1, [sp, #4] - orrs r1, r0 - lsls r1, r1, #2 - adds r1, r4, r1 - cmp r1, r6 - bge _08003E40 - subs r0, r5, r2 - subs r1, r5, r1 - ldr r1, [r1] - str r1, [r0] - b _08003E44 -_08003E40: - subs r0, r5, r2 - str r7, [r0] -_08003E44: - adds r3, #1 - adds r2, r4, #0 - adds r2, #0x10 - adds r0, r3, #0 - mov r1, sb - ands r0, r1 - mov r1, ip - muls r1, r0, r1 - str r1, [sp, #4] - adds r0, r3, #0 - mov r1, r8 - ands r0, r1 - ldr r1, [sp, #4] - orrs r1, r0 - lsls r1, r1, #2 - adds r1, r4, r1 - cmp r1, r6 - bge _08003E72 - subs r0, r5, r2 - subs r1, r5, r1 - ldr r1, [r1] - str r1, [r0] - b _08003E76 -_08003E72: - subs r0, r5, r2 - str r7, [r0] -_08003E76: - adds r3, #1 - adds r2, r4, #0 - adds r2, #0x14 - adds r0, r3, #0 - mov r1, sb - ands r0, r1 - mov r1, ip - muls r1, r0, r1 - str r1, [sp, #4] - adds r0, r3, #0 - mov r1, r8 - ands r0, r1 - ldr r1, [sp, #4] - orrs r1, r0 - lsls r1, r1, #2 - adds r1, r4, r1 - cmp r1, r6 - bge _08003EA4 - subs r0, r5, r2 - subs r1, r5, r1 - ldr r1, [r1] - str r1, [r0] - b _08003EA8 -_08003EA4: - subs r0, r5, r2 - str r7, [r0] -_08003EA8: - adds r3, #1 - adds r2, r4, #0 - adds r2, #0x18 - adds r0, r3, #0 - mov r1, sb - ands r0, r1 - mov r1, ip - muls r1, r0, r1 - str r1, [sp, #4] - adds r0, r3, #0 - mov r1, r8 - ands r0, r1 - ldr r1, [sp, #4] - orrs r1, r0 - lsls r1, r1, #2 - adds r1, r4, r1 - cmp r1, r6 - bge _08003ED6 - subs r0, r5, r2 - subs r1, r5, r1 - ldr r1, [r1] - str r1, [r0] - b _08003EDA -_08003ED6: - subs r0, r5, r2 - str r7, [r0] -_08003EDA: - adds r3, #1 - adds r2, r4, #0 - adds r2, #0x1c - adds r0, r3, #0 - mov r1, sb - ands r0, r1 - mov r1, ip - muls r1, r0, r1 - adds r0, r1, #0 - mov r1, r8 - ands r3, r1 - orrs r0, r3 - lsls r0, r0, #2 - adds r1, r4, r0 - cmp r1, r6 - bge _08003F04 - subs r0, r5, r2 - subs r1, r5, r1 - ldr r1, [r1] - str r1, [r0] - b _08003F08 -_08003F04: - subs r0, r5, r2 - str r7, [r0] -_08003F08: - movs r2, #0x20 - rsbs r2, r2, #0 - add sl, r2 - adds r4, #0x20 - cmp r4, r6 - bge _08003F16 - b _08003D86 -_08003F16: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ScrollWindow - - thumb_func_start CallWindowFunction -CallWindowFunction: @ 0x08003F28 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #8 - mov r8, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08003F74 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r5, [r1] - ldr r6, [r1, #4] - ldrb r0, [r1] - lsrs r1, r5, #8 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsrs r2, r5, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsrs r3, r5, #0x18 - lsls r4, r6, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp] - lsrs r4, r6, #8 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp, #4] - bl _call_via_r8 - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08003F74: .4byte gUnknown_2020004 - thumb_func_end CallWindowFunction - - thumb_func_start SetWindowAttribute -SetWindowAttribute: @ 0x08003F78 - push {lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r0, r1, #0x18 - cmp r0, #7 - bhi _08004012 - lsls r0, r0, #2 - ldr r1, _08003F90 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08003F90: .4byte _08003F94 -_08003F94: @ jump table - .4byte _08004012 @ case 0 - .4byte _08003FB4 @ case 1 - .4byte _08003FC8 @ case 2 - .4byte _08004012 @ case 3 - .4byte _08004012 @ case 4 - .4byte _08003FDC @ case 5 - .4byte _08003FF0 @ case 6 - .4byte _08004004 @ case 7 -_08003FB4: - ldr r1, _08003FC4 - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - strb r2, [r0, #1] - movs r0, #0 - b _08004014 - .align 2, 0 -_08003FC4: .4byte gUnknown_2020004 -_08003FC8: - ldr r1, _08003FD8 - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - strb r2, [r0, #2] - movs r0, #0 - b _08004014 - .align 2, 0 -_08003FD8: .4byte gUnknown_2020004 -_08003FDC: - ldr r1, _08003FEC - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - strb r2, [r0, #5] - movs r0, #0 - b _08004014 - .align 2, 0 -_08003FEC: .4byte gUnknown_2020004 -_08003FF0: - ldr r1, _08004000 - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - strh r2, [r0, #6] - movs r0, #0 - b _08004014 - .align 2, 0 -_08004000: .4byte gUnknown_2020004 -_08004004: - ldr r1, _08004018 - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r1, #8 - adds r0, r0, r1 - str r2, [r0] -_08004012: - movs r0, #1 -_08004014: - pop {r1} - bx r1 - .align 2, 0 -_08004018: .4byte gUnknown_2020004 - thumb_func_end SetWindowAttribute - - thumb_func_start GetWindowAttribute -GetWindowAttribute: @ 0x0800401C - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r0, r1, #0x18 - cmp r0, #7 - bhi _080040F8 - lsls r0, r0, #2 - ldr r1, _08004034 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08004034: .4byte _08004038 -_08004038: @ jump table - .4byte _08004058 @ case 0 - .4byte _0800406C @ case 1 - .4byte _08004080 @ case 2 - .4byte _08004094 @ case 3 - .4byte _080040A8 @ case 4 - .4byte _080040BC @ case 5 - .4byte _080040D0 @ case 6 - .4byte _080040E4 @ case 7 -_08004058: - ldr r0, _08004068 - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1] - b _080040FA - .align 2, 0 -_08004068: .4byte gUnknown_2020004 -_0800406C: - ldr r0, _0800407C - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #1] - b _080040FA - .align 2, 0 -_0800407C: .4byte gUnknown_2020004 -_08004080: - ldr r0, _08004090 - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #2] - b _080040FA - .align 2, 0 -_08004090: .4byte gUnknown_2020004 -_08004094: - ldr r0, _080040A4 - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #3] - b _080040FA - .align 2, 0 -_080040A4: .4byte gUnknown_2020004 -_080040A8: - ldr r0, _080040B8 - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #4] - b _080040FA - .align 2, 0 -_080040B8: .4byte gUnknown_2020004 -_080040BC: - ldr r0, _080040CC - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #5] - b _080040FA - .align 2, 0 -_080040CC: .4byte gUnknown_2020004 -_080040D0: - ldr r0, _080040E0 - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r0, [r1, #6] - b _080040FA - .align 2, 0 -_080040E0: .4byte gUnknown_2020004 -_080040E4: - ldr r0, _080040F4 - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r0, #8 - adds r1, r1, r0 - ldr r0, [r1] - b _080040FA - .align 2, 0 -_080040F4: .4byte gUnknown_2020004 -_080040F8: - movs r0, #0 -_080040FA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetWindowAttribute - - thumb_func_start sub_08004100 -sub_08004100: @ 0x08004100 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r3, #0 - ldr r2, _08004128 - movs r1, #0x1f -_0800410C: - ldrb r0, [r2] - cmp r0, r4 - bne _08004118 - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 -_08004118: - adds r2, #0xc - subs r1, #1 - cmp r1, #0 - bge _0800410C - adds r0, r3, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08004128: .4byte gUnknown_2020004 - thumb_func_end sub_08004100 - - thumb_func_start sub_0800412C -sub_0800412C: @ 0x0800412C - bx lr - .align 2, 0 - thumb_func_end sub_0800412C - - thumb_func_start AddWindow8Bit -AddWindow8Bit: @ 0x08004130 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sb, r0 - movs r6, #0 - ldr r1, _080041F8 - ldrb r0, [r1] - cmp r0, #0xff - beq _0800415E -_08004146: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0x1f - bhi _0800415E - lsls r0, r6, #1 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0xff - bne _08004146 -_0800415E: - cmp r6, #0x20 - beq _080041F2 - mov r0, sb - ldrb r7, [r0] - ldr r1, _080041FC - mov sl, r1 - lsls r2, r7, #2 - mov r8, r2 - mov r0, r8 - add r0, sl - ldr r0, [r0] - cmp r0, #0 - bne _080041BA - adds r0, r7, #0 - movs r1, #8 - bl GetBgAttribute - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, _08004200 - cmp r5, r0 - beq _080041BA - adds r0, r5, #0 - bl sub_08000BC8 - adds r4, r0, #0 - cmp r4, #0 - beq _080041F2 - movs r1, #0 - mov ip, sl - mov r3, r8 - cmp r1, r5 - bge _080041AC - movs r2, #0 -_080041A2: - adds r0, r4, r1 - strb r2, [r0] - adds r1, #1 - cmp r1, r5 - blt _080041A2 -_080041AC: - mov r1, ip - adds r0, r3, r1 - str r4, [r0] - adds r0, r7, #0 - adds r1, r4, #0 - bl SetBgTilemapBuffer -_080041BA: - mov r2, sb - ldrb r1, [r2, #3] - ldrb r0, [r2, #4] - muls r0, r1, r0 - lsls r0, r0, #0x16 - lsrs r0, r0, #0x10 - bl sub_08000BC8 - adds r4, r0, #0 - cmp r4, #0 - bne _08004208 - adds r0, r7, #0 - bl sub_08004448 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080041F2 - ldr r0, _080041FC - lsls r1, r7, #2 - adds r5, r1, r0 - ldr r1, [r5] - ldr r0, _08004204 - cmp r1, r0 - beq _080041F2 - adds r0, r1, #0 - bl Free - str r4, [r5] -_080041F2: - movs r0, #0xff - b _08004226 - .align 2, 0 -_080041F8: .4byte gUnknown_2020004 -_080041FC: .4byte gUnknown_3003010 -_08004200: .4byte 0x0000FFFF -_08004204: .4byte sub_0800412C -_08004208: - ldr r1, _08004234 - lsls r2, r6, #1 - adds r2, r2, r6 - lsls r2, r2, #2 - adds r0, r1, #0 - adds r0, #8 - adds r0, r2, r0 - str r4, [r0] - adds r2, r2, r1 - mov r3, sb - ldr r0, [r3] - ldr r1, [r3, #4] - str r0, [r2] - str r1, [r2, #4] - adds r0, r6, #0 -_08004226: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08004234: .4byte gUnknown_2020004 - thumb_func_end AddWindow8Bit - - thumb_func_start FillWindowPixelBuffer8Bit -FillWindowPixelBuffer8Bit: @ 0x08004238 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - ldr r6, _08004274 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r4, r1, #2 - adds r0, r4, r6 - ldrb r1, [r0, #3] - ldrb r0, [r0, #4] - muls r0, r1, r0 - lsls r0, r0, #0x16 - lsrs r3, r0, #0x10 - movs r2, #0 - cmp r2, r3 - bge _0800426E - adds r0, r6, #0 - adds r0, #8 - adds r1, r4, r0 -_08004262: - ldr r0, [r1] - adds r0, r0, r2 - strb r5, [r0] - adds r2, #1 - cmp r2, r3 - blt _08004262 -_0800426E: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08004274: .4byte gUnknown_2020004 - thumb_func_end FillWindowPixelBuffer8Bit - - thumb_func_start FillWindowPixelRect8Bit -FillWindowPixelRect8Bit: @ 0x08004278 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #0x10 - mov sb, r3 - ldr r3, [sp, #0x28] - ldr r4, [sp, #0x2c] - mov r8, r4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - mov r4, sb - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - mov sb, r4 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - mov r4, r8 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - mov r8, r4 - ldr r5, _080042F8 - lsls r4, r0, #1 - adds r4, r4, r0 - lsls r4, r4, #2 - adds r0, r5, #0 - adds r0, #8 - adds r0, r4, r0 - ldr r0, [r0] - str r0, [sp, #8] - adds r4, r4, r5 - ldrb r0, [r4, #3] - lsls r0, r0, #3 - ldr r6, _080042FC - ldr r5, [sp, #0xc] - ands r5, r6 - orrs r5, r0 - str r5, [sp, #0xc] - ldrb r4, [r4, #4] - lsls r4, r4, #0x13 - ldr r0, _08004300 - ands r0, r5 - orrs r0, r4 - str r0, [sp, #0xc] - mov r0, r8 - str r0, [sp] - str r1, [sp, #4] - add r0, sp, #8 - adds r1, r2, #0 - mov r2, sb - bl FillBitmapRect8Bit - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080042F8: .4byte gUnknown_2020004 -_080042FC: .4byte 0xFFFF0000 -_08004300: .4byte 0x0000FFFF - thumb_func_end FillWindowPixelRect8Bit - - thumb_func_start BlitBitmapRectToWindow4BitTo8Bit -BlitBitmapRectToWindow4BitTo8Bit: @ 0x08004304 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x2c - ldr r4, [sp, #0x4c] - ldr r5, [sp, #0x50] - ldr r6, [sp, #0x54] - mov r8, r6 - ldr r7, [sp, #0x58] - mov sb, r7 - ldr r6, [sp, #0x5c] - mov sl, r6 - ldr r7, [sp, #0x60] - mov ip, r7 - ldr r6, [sp, #0x64] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r4, r4, #0x10 - mov r7, r8 - lsls r7, r7, #0x10 - lsrs r7, r7, #0x10 - mov r8, r7 - mov r7, sb - lsls r7, r7, #0x10 - lsrs r7, r7, #0x10 - mov sb, r7 - mov r7, sl - lsls r7, r7, #0x10 - lsrs r7, r7, #0x10 - mov sl, r7 - mov r7, ip - lsls r7, r7, #0x10 - lsrs r7, r7, #0x10 - mov ip, r7 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - str r6, [sp, #0x28] - str r1, [sp, #0x18] - lsls r5, r5, #0x10 - ldr r6, _080043C4 - lsrs r4, r4, #0x10 - orrs r4, r5 - str r4, [sp, #0x1c] - ldr r1, _080043C8 - lsls r5, r0, #1 - adds r5, r5, r0 - lsls r5, r5, #2 - adds r0, r1, #0 - adds r0, #8 - adds r0, r5, r0 - ldr r0, [r0] - str r0, [sp, #0x20] - adds r5, r5, r1 - ldrb r0, [r5, #3] - lsls r0, r0, #3 - add r1, sp, #0x20 - ldr r4, [r1, #4] - ldr r7, _080043CC - ands r4, r7 - orrs r4, r0 - str r4, [r1, #4] - ldrb r0, [r5, #4] - lsls r0, r0, #0x13 - ands r6, r4 - orrs r6, r0 - str r6, [r1, #4] - mov r0, r8 - str r0, [sp] - mov r6, sb - str r6, [sp, #4] - mov r7, sl - str r7, [sp, #8] - mov r0, ip - str r0, [sp, #0xc] - movs r0, #0 - str r0, [sp, #0x10] - ldr r6, [sp, #0x28] - str r6, [sp, #0x14] - add r0, sp, #0x18 - bl BlitBitmapRect4BitTo8Bit - add sp, #0x2c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080043C4: .4byte 0x0000FFFF -_080043C8: .4byte gUnknown_2020004 -_080043CC: .4byte 0xFFFF0000 - thumb_func_end BlitBitmapRectToWindow4BitTo8Bit - - thumb_func_start CopyWindowToVram8Bit -CopyWindowToVram8Bit: @ 0x080043D0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r2, r1, #0x18 - adds r5, r2, #0 - ldr r6, _08004404 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _08004408 - adds r3, r1, r0 - str r3, [r6] - ldr r4, _0800440C - ldrb r1, [r3, #3] - ldrb r0, [r3, #4] - muls r0, r1, r0 - lsls r0, r0, #6 - strh r0, [r4] - cmp r2, #2 - beq _0800441E - cmp r2, #2 - bgt _08004410 - cmp r2, #1 - beq _08004416 - b _08004440 - .align 2, 0 -_08004404: .4byte gUnknown_2020184 -_08004408: .4byte gUnknown_2020004 -_0800440C: .4byte gUnknown_2020188 -_08004410: - cmp r5, #3 - beq _0800442C - b _08004440 -_08004416: - ldrb r0, [r3] - bl CopyBgTilemapBufferToVram - b _08004440 -_0800441E: - ldrb r0, [r3] - ldr r1, [r3, #8] - ldrh r2, [r4] - ldrh r3, [r3, #6] - bl LoadBgTiles - b _08004440 -_0800442C: - ldrb r0, [r3] - ldr r1, [r3, #8] - ldrh r2, [r4] - ldrh r3, [r3, #6] - bl LoadBgTiles - ldr r0, [r6] - ldrb r0, [r0] - bl CopyBgTilemapBufferToVram -_08004440: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CopyWindowToVram8Bit - - thumb_func_start sub_08004448 -sub_08004448: @ 0x08004448 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r3, #0 - ldr r2, _08004470 - movs r1, #0x1f -_08004454: - ldrb r0, [r2] - cmp r0, r4 - bne _08004460 - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 -_08004460: - adds r2, #0xc - subs r1, #1 - cmp r1, #0 - bge _08004454 - adds r0, r3, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08004470: .4byte gUnknown_2020004 - thumb_func_end sub_08004448 - - thumb_func_start sub_08004474 -sub_08004474: @ 0x08004474 - ldr r1, _0800447C - str r0, [r1] - bx lr - .align 2, 0 -_0800447C: .4byte gUnknown_3003020 - thumb_func_end sub_08004474 - - thumb_func_start sub_08004480 -sub_08004480: @ 0x08004480 - push {lr} - ldr r1, _08004498 - movs r2, #0 - movs r3, #0xf8 - lsls r3, r3, #2 - adds r0, r1, r3 -_0800448C: - strb r2, [r0, #0x1b] - subs r0, #0x20 - cmp r0, r1 - bge _0800448C - pop {r0} - bx r0 - .align 2, 0 -_08004498: .4byte gUnknown_20201AC - thumb_func_end sub_08004480 - - thumb_func_start AddTextPrinterParameterized -AddTextPrinterParameterized: @ 0x0800449C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x10 - ldr r4, [sp, #0x28] - ldr r5, [sp, #0x2c] - ldr r7, [sp, #0x30] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - mov r8, r5 - str r2, [sp] - mov r2, sp - strb r0, [r2, #4] - mov r0, sp - strb r1, [r0, #5] - strb r3, [r0, #6] - strb r4, [r0, #7] - strb r3, [r0, #8] - strb r4, [r0, #9] - ldr r0, _08004544 - ldr r0, [r0] - lsls r3, r1, #1 - adds r3, r3, r1 - lsls r3, r3, #2 - adds r3, r3, r0 - ldrb r0, [r3, #6] - strb r0, [r2, #0xa] - mov r1, sp - ldrb r0, [r3, #7] - strb r0, [r1, #0xb] - mov r5, sp - ldrb r1, [r3, #8] - lsls r1, r1, #0x1c - movs r6, #0xf - lsrs r1, r1, #0x1c - ldrb r4, [r5, #0xc] - movs r2, #0x10 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r4 - orrs r0, r1 - strb r0, [r5, #0xc] - mov r4, sp - ldrb r1, [r3, #8] - lsrs r1, r1, #4 - lsls r1, r1, #4 - ands r0, r6 - orrs r0, r1 - strb r0, [r4, #0xc] - ldrb r0, [r3, #9] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - adds r1, r6, #0 - ands r1, r0 - ldrb r0, [r4, #0xd] - ands r2, r0 - orrs r2, r1 - strb r2, [r4, #0xd] - mov r1, sp - ldrb r0, [r3, #9] - lsrs r0, r0, #4 - lsls r0, r0, #4 - ands r2, r6 - orrs r2, r0 - strb r2, [r1, #0xd] - mov r0, sp - mov r1, r8 - adds r2, r7, #0 - bl AddTextPrinter - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08004544: .4byte gUnknown_3003020 - thumb_func_end AddTextPrinterParameterized - - thumb_func_start AddTextPrinter -AddTextPrinter: @ 0x08004548 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - mov ip, r2 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - ldr r0, _08004560 - ldr r0, [r0] - cmp r0, #0 - bne _08004564 - movs r0, #0 - b _0800461E - .align 2, 0 -_08004560: .4byte gUnknown_3003020 -_08004564: - ldr r0, _080045CC - movs r2, #0 - movs r1, #1 - strb r1, [r0, #0x1b] - strb r2, [r0, #0x1c] - strb r5, [r0, #0x1d] - strb r2, [r0, #0x1e] - strb r2, [r0, #0x1f] - adds r4, r0, #0 - movs r1, #6 - adds r0, #0x1a -_0800457A: - strb r2, [r0] - subs r0, #1 - subs r1, #1 - cmp r1, #0 - bge _0800457A - adds r1, r4, #0 - adds r0, r6, #0 - ldm r0!, {r2, r3, r7} - stm r1!, {r2, r3, r7} - ldr r0, [r0] - str r0, [r1] - mov r0, ip - str r0, [r4, #0x10] - ldrb r0, [r6, #0xc] - lsrs r0, r0, #4 - ldrb r2, [r6, #0xd] - lsls r1, r2, #0x1c - lsrs r1, r1, #0x1c - lsrs r2, r2, #4 - bl sub_080046E4 - cmp r5, #0xff - beq _080045D4 - cmp r5, #0 - beq _080045D4 - ldrb r0, [r4, #0x1d] - subs r0, #1 - strb r0, [r4, #0x1d] - ldr r0, _080045D0 - ldrb r1, [r6, #4] - lsls r1, r1, #5 - adds r1, r1, r0 - adds r0, r4, #0 - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - ldm r0!, {r2, r3, r7} - stm r1!, {r2, r3, r7} - ldm r0!, {r4, r7} - stm r1!, {r4, r7} - b _08004616 - .align 2, 0 -_080045CC: .4byte gUnknown_202018C -_080045D0: .4byte gUnknown_20201AC -_080045D4: - ldr r1, _080045E0 - movs r0, #0 - strb r0, [r1, #0x1d] - movs r4, #0 - ldr r7, _080045E4 - b _080045EE - .align 2, 0 -_080045E0: .4byte gUnknown_202018C -_080045E4: .4byte 0x000003FF -_080045E8: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_080045EE: - cmp r4, r7 - bhi _080045FC - ldr r0, _08004624 - bl RenderFont - cmp r0, #1 - bne _080045E8 -_080045FC: - cmp r5, #0xff - beq _0800460A - ldr r0, _08004624 - ldrb r0, [r0, #4] - movs r1, #2 - bl CopyWindowToVram -_0800460A: - ldr r0, _08004628 - ldrb r1, [r6, #4] - lsls r1, r1, #5 - adds r1, r1, r0 - movs r0, #0 - strb r0, [r1, #0x1b] -_08004616: - ldr r1, _0800462C - movs r0, #0 - strb r0, [r1] - movs r0, #1 -_0800461E: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08004624: .4byte gUnknown_202018C -_08004628: .4byte gUnknown_20201AC -_0800462C: .4byte gUnknown_3003024 - thumb_func_end AddTextPrinter - - thumb_func_start sub_08004630 -sub_08004630: @ 0x08004630 - push {r4, r5, r6, r7, lr} - ldr r0, _08004660 - ldrb r0, [r0] - cmp r0, #0 - bne _080046A0 - movs r6, #0 - movs r7, #0x1f -_0800463E: - ldr r0, _08004664 - adds r5, r6, r0 - ldrb r0, [r5, #0x1b] - cmp r0, #0 - beq _08004698 - adds r0, r5, #0 - bl RenderFont - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #1 - beq _08004694 - cmp r4, #1 - bgt _08004668 - cmp r4, #0 - beq _0800466E - b _08004698 - .align 2, 0 -_08004660: .4byte gUnknown_3003024 -_08004664: .4byte gUnknown_20201AC -_08004668: - cmp r4, #3 - beq _08004676 - b _08004698 -_0800466E: - ldrb r0, [r5, #4] - movs r1, #2 - bl CopyWindowToVram -_08004676: - ldr r1, _08004690 - adds r0, r1, #0 - adds r0, #0x10 - adds r0, r6, r0 - ldr r2, [r0] - cmp r2, #0 - beq _08004698 - adds r0, r6, r1 - adds r1, r4, #0 - bl _call_via_r2 - b _08004698 - .align 2, 0 -_08004690: .4byte gUnknown_20201AC -_08004694: - movs r0, #0 - strb r0, [r5, #0x1b] -_08004698: - adds r6, #0x20 - subs r7, #1 - cmp r7, #0 - bge _0800463E -_080046A0: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08004630 - - thumb_func_start sub_080046A8 -sub_080046A8: @ 0x080046A8 - lsls r0, r0, #0x18 - ldr r1, _080046B4 - lsrs r0, r0, #0x13 - adds r0, r0, r1 - ldrb r0, [r0, #0x1b] - bx lr - .align 2, 0 -_080046B4: .4byte gUnknown_20201AC - thumb_func_end sub_080046A8 - - thumb_func_start RenderFont -RenderFont: @ 0x080046B8 - push {r4, lr} - adds r4, r0, #0 -_080046BC: - ldrb r1, [r4, #5] - ldr r0, _080046E0 - ldr r2, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #2 - beq _080046BC - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080046E0: .4byte gUnknown_3003020 - thumb_func_end RenderFont - - thumb_func_start sub_080046E4 -sub_080046E4: @ 0x080046E4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r1, [sp] - str r0, [sp, #4] - str r2, [sp, #8] - ldr r3, _08004788 - strh r1, [r3] - ldr r1, _0800478C - strh r0, [r1] - ldr r0, _08004790 - strh r2, [r0] - movs r0, #0 - mov ip, r0 - movs r1, #0 -_08004714: - movs r2, #0 - lsls r0, r1, #2 - adds r1, #1 - mov sl, r1 - add r0, sp - mov r8, r0 -_08004720: - movs r1, #0 - lsls r0, r2, #2 - adds r2, #1 - mov sb, r2 - add r0, sp - str r0, [sp, #0xc] -_0800472C: - lsls r0, r1, #2 - adds r6, r1, #1 - mov r1, sp - adds r4, r1, r0 - mov r5, sp - mov r7, ip - lsls r0, r7, #1 - ldr r1, _08004794 - adds r2, r0, r1 - movs r3, #2 -_08004740: - ldm r5!, {r1} - lsls r1, r1, #0xc - ldr r0, [r4] - lsls r0, r0, #8 - orrs r1, r0 - ldr r7, [sp, #0xc] - ldr r0, [r7] - lsls r0, r0, #4 - orrs r1, r0 - mov r7, r8 - ldr r0, [r7] - orrs r0, r1 - strh r0, [r2] - adds r2, #2 - movs r0, #1 - add ip, r0 - subs r3, #1 - cmp r3, #0 - bge _08004740 - adds r1, r6, #0 - cmp r1, #2 - ble _0800472C - mov r2, sb - cmp r2, #2 - ble _08004720 - mov r1, sl - cmp r1, #2 - ble _08004714 - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08004788: .4byte gUnknown_30009EA -_0800478C: .4byte gUnknown_30009EC -_08004790: .4byte gUnknown_30009EE -_08004794: .4byte gUnknown_3000948 - thumb_func_end sub_080046E4 - - thumb_func_start SaveTextColors -SaveTextColors: @ 0x08004798 - ldr r3, _080047AC - ldrh r3, [r3] - strb r3, [r1] - ldr r1, _080047B0 - ldrh r1, [r1] - strb r1, [r0] - ldr r0, _080047B4 - ldrh r0, [r0] - strb r0, [r2] - bx lr - .align 2, 0 -_080047AC: .4byte gUnknown_30009EA -_080047B0: .4byte gUnknown_30009EC -_080047B4: .4byte gUnknown_30009EE - thumb_func_end SaveTextColors - - thumb_func_start RestoreTextColors -RestoreTextColors: @ 0x080047B8 - push {lr} - ldrb r0, [r0] - ldrb r1, [r1] - ldrb r2, [r2] - bl sub_080046E4 - pop {r0} - bx r0 - thumb_func_end RestoreTextColors - - thumb_func_start sub_080047C8 -sub_080047C8: @ 0x080047C8 - push {r4, r5, lr} - adds r2, r0, #0 - movs r3, #0 - ldr r5, _080047E0 - ldr r4, _080047E4 -_080047D2: - lsls r0, r3, #0x1f - cmp r0, #0 - beq _080047E8 - ldrb r0, [r2] - adds r2, #2 - b _080047EC - .align 2, 0 -_080047E0: .4byte gUnknown_3000948 -_080047E4: .4byte gUnknown_829BEB8 -_080047E8: - ldrh r0, [r2] - lsrs r0, r0, #8 -_080047EC: - adds r0, r0, r4 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r0, [r0] - strh r0, [r1] - adds r1, #2 - adds r3, #1 - cmp r3, #0xf - ble _080047D2 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080047C8 - - thumb_func_start GetLastTextColor -GetLastTextColor: @ 0x08004808 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - cmp r0, #1 - beq _0800483C - cmp r0, #1 - bgt _0800481E - cmp r0, #0 - beq _08004824 - b _08004848 -_0800481E: - cmp r1, #2 - beq _08004830 - b _08004848 -_08004824: - ldr r0, _0800482C - ldrb r0, [r0] - b _0800484A - .align 2, 0 -_0800482C: .4byte gUnknown_30009EC -_08004830: - ldr r0, _08004838 - ldrb r0, [r0] - b _0800484A - .align 2, 0 -_08004838: .4byte gUnknown_30009EA -_0800483C: - ldr r0, _08004844 - ldrb r0, [r0] - b _0800484A - .align 2, 0 -_08004844: .4byte gUnknown_30009EE -_08004848: - movs r0, #0 -_0800484A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetLastTextColor - - thumb_func_start sub_08004850 -sub_08004850: @ 0x08004850 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x6c - adds r6, r0, #0 - ldr r0, _080048C0 - mov sb, r0 - ldrb r1, [r6, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - mov r1, sb - adds r2, r0, r1 - ldrb r0, [r2, #3] - lsls r0, r0, #3 - ldrb r1, [r6, #8] - subs r1, r0, r1 - ldr r3, _080048C4 - mov r8, r3 - mov r0, r8 - adds r0, #0x80 - ldrb r7, [r0] - cmp r1, r7 - bge _08004886 - adds r7, r1, #0 -_08004886: - ldrb r0, [r2, #4] - lsls r0, r0, #3 - ldrb r4, [r6, #9] - subs r0, r0, r4 - adds r1, r3, #0 - adds r1, #0x81 - ldrb r1, [r1] - mov sl, r1 - adds r5, r4, #0 - cmp r0, sl - bge _0800489E - mov sl, r0 -_0800489E: - movs r1, #0 - cmp r7, #8 - ble _080048A6 - movs r1, #1 -_080048A6: - mov r0, sl - cmp r0, #8 - ble _080048B0 - movs r0, #2 - orrs r1, r0 -_080048B0: - cmp r1, #1 - beq _08004970 - cmp r1, #1 - bgt _080048C8 - cmp r1, #0 - beq _080048D6 - b _08004E38 - .align 2, 0 -_080048C0: .4byte gUnknown_2020004 -_080048C4: .4byte gUnknown_3003030 -_080048C8: - cmp r1, #2 - bne _080048CE - b _08004AA4 -_080048CE: - cmp r1, #3 - bne _080048D4 - b _08004BDC -_080048D4: - b _08004E38 -_080048D6: - adds r2, r3, #0 - movs r1, #0 - adds r0, r5, #0 - cmp r1, sl - blt _080048E2 - b _08004E38 -_080048E2: - ldm r2!, {r3} - str r3, [sp] - movs r5, #0 - ldrb r4, [r6, #8] - str r2, [sp, #0x28] - adds r1, #1 - str r1, [sp, #0x20] - adds r1, r0, #1 - str r1, [sp, #0x24] - cmp r5, r7 - bge _08004960 - ldr r2, _0800496C - mov ip, r2 - asrs r3, r0, #3 - mov sb, r3 - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1b - mov r8, r0 -_08004906: - ldrb r0, [r6, #4] - lsls r3, r0, #1 - adds r3, r3, r0 - lsls r3, r3, #2 - mov r1, ip - adds r1, #8 - adds r1, r3, r1 - asrs r2, r4, #1 - movs r0, #3 - ands r2, r0 - ldr r1, [r1] - adds r1, r1, r2 - asrs r0, r4, #3 - lsls r0, r0, #5 - adds r1, r1, r0 - add r3, ip - ldrb r0, [r3, #3] - mov r2, sb - muls r2, r0, r2 - adds r0, r2, #0 - lsls r0, r0, #5 - adds r1, r1, r0 - mov r0, r8 - adds r3, r1, r0 - lsls r0, r5, #2 - ldr r2, [sp] - lsrs r2, r0 - movs r0, #0xf - ands r2, r0 - cmp r2, #0 - beq _08004958 - movs r0, #1 - ands r0, r4 - lsls r0, r0, #2 - lsls r2, r0 - movs r1, #0xf0 - asrs r1, r0 - ldrb r0, [r3] - ands r1, r0 - orrs r2, r1 - strb r2, [r3] -_08004958: - adds r5, #1 - adds r4, #1 - cmp r5, r7 - blt _08004906 -_08004960: - ldr r2, [sp, #0x28] - ldr r1, [sp, #0x20] - ldr r0, [sp, #0x24] - cmp r1, sl - blt _080048E2 - b _08004E38 - .align 2, 0 -_0800496C: .4byte gUnknown_2020004 -_08004970: - movs r2, #0 - adds r1, r5, #0 - cmp r2, sl - bge _080049FA -_08004978: - ldm r3!, {r0} - mov sb, r0 - movs r5, #0 - ldrb r4, [r6, #8] - lsls r0, r1, #0x1d - str r3, [sp, #0x38] - adds r2, #1 - str r2, [sp, #0x30] - adds r2, r1, #1 - str r2, [sp, #0x34] - asrs r1, r1, #3 - mov ip, r1 - lsrs r0, r0, #0x1b - mov r8, r0 -_08004994: - ldrb r0, [r6, #4] - lsls r3, r0, #1 - adds r3, r3, r0 - lsls r3, r3, #2 - ldr r1, _08004A9C - adds r1, #8 - adds r1, r3, r1 - asrs r2, r4, #1 - movs r0, #3 - ands r2, r0 - ldr r1, [r1] - adds r1, r1, r2 - asrs r0, r4, #3 - lsls r0, r0, #5 - adds r1, r1, r0 - ldr r0, _08004A9C - adds r3, r3, r0 - ldrb r0, [r3, #3] - mov r2, ip - muls r2, r0, r2 - adds r0, r2, #0 - lsls r0, r0, #5 - adds r1, r1, r0 - mov r0, r8 - adds r3, r1, r0 - lsls r0, r5, #2 - mov r2, sb - lsrs r2, r0 - movs r0, #0xf - ands r2, r0 - cmp r2, #0 - beq _080049E8 - movs r0, #1 - ands r0, r4 - lsls r0, r0, #2 - lsls r2, r0 - movs r1, #0xf0 - asrs r1, r0 - ldrb r0, [r3] - ands r1, r0 - orrs r2, r1 - strb r2, [r3] -_080049E8: - adds r5, #1 - adds r4, #1 - cmp r5, #7 - ble _08004994 - ldr r3, [sp, #0x38] - ldr r2, [sp, #0x30] - ldr r1, [sp, #0x34] - cmp r2, sl - blt _08004978 -_080049FA: - ldr r3, _08004AA0 - movs r2, #0 - ldrb r1, [r6, #9] - cmp r2, sl - blt _08004A06 - b _08004E38 -_08004A06: - subs r7, #8 - str r7, [sp, #0x64] - str r7, [sp, #4] -_08004A0C: - ldm r3!, {r0} - mov ip, r0 - movs r5, #0 - ldrb r0, [r6, #8] - adds r4, r0, #0 - adds r4, #8 - str r3, [sp, #0x50] - adds r2, #1 - str r2, [sp, #0x48] - adds r2, r1, #1 - str r2, [sp, #0x4c] - ldr r3, [sp, #4] - cmp r5, r3 - bge _08004A90 - ldr r7, _08004A9C - asrs r0, r1, #3 - mov sb, r0 - lsls r0, r1, #0x1d - lsrs r0, r0, #0x1b - mov r8, r0 -_08004A34: - ldrb r0, [r6, #4] - lsls r3, r0, #1 - adds r3, r3, r0 - lsls r3, r3, #2 - adds r1, r7, #0 - adds r1, #8 - adds r1, r3, r1 - asrs r2, r4, #1 - movs r0, #3 - ands r2, r0 - ldr r1, [r1] - adds r1, r1, r2 - asrs r0, r4, #3 - lsls r0, r0, #5 - adds r1, r1, r0 - adds r3, r3, r7 - ldrb r0, [r3, #3] - mov r2, sb - muls r2, r0, r2 - adds r0, r2, #0 - lsls r0, r0, #5 - adds r1, r1, r0 - mov r0, r8 - adds r3, r1, r0 - lsls r0, r5, #2 - mov r2, ip - lsrs r2, r0 - movs r0, #0xf - ands r2, r0 - cmp r2, #0 - beq _08004A86 - movs r0, #1 - ands r0, r4 - lsls r0, r0, #2 - lsls r2, r0 - movs r1, #0xf0 - asrs r1, r0 - ldrb r0, [r3] - ands r1, r0 - orrs r2, r1 - strb r2, [r3] -_08004A86: - adds r5, #1 - adds r4, #1 - ldr r1, [sp, #0x64] - cmp r5, r1 - blt _08004A34 -_08004A90: - ldr r3, [sp, #0x50] - ldr r2, [sp, #0x48] - ldr r1, [sp, #0x4c] - cmp r2, sl - blt _08004A0C - b _08004E38 - .align 2, 0 -_08004A9C: .4byte gUnknown_2020004 -_08004AA0: .4byte gUnknown_3003050 -_08004AA4: - adds r1, r3, #0 - movs r2, #0 - adds r0, r5, #0 - mov r3, sl - subs r3, #8 - str r3, [sp, #0x68] -_08004AB0: - ldm r1!, {r3} - mov sl, r3 - movs r5, #0 - ldrb r4, [r6, #8] - str r1, [sp, #0x60] - adds r2, #1 - str r2, [sp, #0x58] - adds r1, r0, #1 - str r1, [sp, #0x5c] - cmp r5, r7 - bge _08004B2E - ldr r2, _08004BD4 - mov ip, r2 - asrs r3, r0, #3 - mov sb, r3 - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1b - mov r8, r0 -_08004AD4: - ldrb r0, [r6, #4] - lsls r3, r0, #1 - adds r3, r3, r0 - lsls r3, r3, #2 - mov r1, ip - adds r1, #8 - adds r1, r3, r1 - asrs r2, r4, #1 - movs r0, #3 - ands r2, r0 - ldr r1, [r1] - adds r1, r1, r2 - asrs r0, r4, #3 - lsls r0, r0, #5 - adds r1, r1, r0 - add r3, ip - ldrb r0, [r3, #3] - mov r2, sb - muls r2, r0, r2 - adds r0, r2, #0 - lsls r0, r0, #5 - adds r1, r1, r0 - mov r0, r8 - adds r3, r1, r0 - lsls r0, r5, #2 - mov r2, sl - lsrs r2, r0 - movs r0, #0xf - ands r2, r0 - cmp r2, #0 - beq _08004B26 - movs r0, #1 - ands r0, r4 - lsls r0, r0, #2 - lsls r2, r0 - movs r1, #0xf0 - asrs r1, r0 - ldrb r0, [r3] - ands r1, r0 - orrs r2, r1 - strb r2, [r3] -_08004B26: - adds r5, #1 - adds r4, #1 - cmp r5, r7 - blt _08004AD4 -_08004B2E: - ldr r1, [sp, #0x60] - ldr r2, [sp, #0x58] - ldr r0, [sp, #0x5c] - cmp r2, #7 - ble _08004AB0 - ldr r2, _08004BD8 - movs r1, #0 - ldrb r0, [r6, #9] - adds r0, #8 - ldr r3, [sp, #0x68] - cmp r1, r3 - blt _08004B48 - b _08004E38 -_08004B48: - ldm r2!, {r3} - mov sl, r3 - movs r5, #0 - ldrb r4, [r6, #8] - str r2, [sp, #0x1c] - adds r1, #1 - str r1, [sp, #0x14] - adds r1, r0, #1 - str r1, [sp, #0x18] - cmp r5, r7 - bge _08004BC6 - ldr r2, _08004BD4 - mov ip, r2 - asrs r3, r0, #3 - mov sb, r3 - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1b - mov r8, r0 -_08004B6C: - ldrb r0, [r6, #4] - lsls r3, r0, #1 - adds r3, r3, r0 - lsls r3, r3, #2 - mov r1, ip - adds r1, #8 - adds r1, r3, r1 - asrs r2, r4, #1 - movs r0, #3 - ands r2, r0 - ldr r1, [r1] - adds r1, r1, r2 - asrs r0, r4, #3 - lsls r0, r0, #5 - adds r1, r1, r0 - add r3, ip - ldrb r0, [r3, #3] - mov r2, sb - muls r2, r0, r2 - adds r0, r2, #0 - lsls r0, r0, #5 - adds r1, r1, r0 - mov r0, r8 - adds r3, r1, r0 - lsls r0, r5, #2 - mov r2, sl - lsrs r2, r0 - movs r0, #0xf - ands r2, r0 - cmp r2, #0 - beq _08004BBE - movs r0, #1 - ands r0, r4 - lsls r0, r0, #2 - lsls r2, r0 - movs r1, #0xf0 - asrs r1, r0 - ldrb r0, [r3] - ands r1, r0 - orrs r2, r1 - strb r2, [r3] -_08004BBE: - adds r5, #1 - adds r4, #1 - cmp r5, r7 - blt _08004B6C -_08004BC6: - ldr r2, [sp, #0x1c] - ldr r1, [sp, #0x14] - ldr r0, [sp, #0x18] - ldr r3, [sp, #0x68] - cmp r1, r3 - blt _08004B48 - b _08004E38 - .align 2, 0 -_08004BD4: .4byte gUnknown_2020004 -_08004BD8: .4byte gUnknown_3003070 -_08004BDC: - mov r2, r8 - movs r3, #0 - adds r1, r4, #0 - subs r7, #8 - str r7, [sp, #0x64] - mov r0, sl - subs r0, #8 - str r0, [sp, #0x68] -_08004BEC: - ldm r2!, {r0} - mov sb, r0 - movs r5, #0 - ldrb r4, [r6, #8] - lsls r0, r1, #0x1d - str r2, [sp, #0x2c] - adds r3, #1 - mov sl, r3 - adds r2, r1, #1 - mov ip, r2 - asrs r1, r1, #3 - mov r8, r1 - lsrs r7, r0, #0x1b -_08004C06: - ldrb r0, [r6, #4] - lsls r3, r0, #1 - adds r3, r3, r0 - lsls r3, r3, #2 - ldr r1, _08004D0C - adds r1, #8 - adds r1, r3, r1 - asrs r2, r4, #1 - movs r0, #3 - ands r2, r0 - ldr r1, [r1] - adds r1, r1, r2 - asrs r0, r4, #3 - lsls r0, r0, #5 - adds r1, r1, r0 - ldr r0, _08004D0C - adds r3, r3, r0 - ldrb r0, [r3, #3] - mov r2, r8 - muls r2, r0, r2 - adds r0, r2, #0 - lsls r0, r0, #5 - adds r1, r1, r0 - adds r3, r1, r7 - lsls r0, r5, #2 - mov r2, sb - lsrs r2, r0 - movs r0, #0xf - ands r2, r0 - cmp r2, #0 - beq _08004C58 - movs r0, #1 - ands r0, r4 - lsls r0, r0, #2 - lsls r2, r0 - movs r1, #0xf0 - asrs r1, r0 - ldrb r0, [r3] - ands r1, r0 - orrs r2, r1 - strb r2, [r3] -_08004C58: - adds r5, #1 - adds r4, #1 - cmp r5, #7 - ble _08004C06 - ldr r2, [sp, #0x2c] - mov r3, sl - mov r1, ip - cmp r3, #7 - ble _08004BEC - ldr r3, _08004D10 - movs r2, #0 - ldrb r1, [r6, #9] - ldr r0, [sp, #0x64] - mov ip, r0 -_08004C74: - ldm r3!, {r0} - mov sl, r0 - movs r5, #0 - ldrb r0, [r6, #8] - adds r4, r0, #0 - adds r4, #8 - str r3, [sp, #0x44] - adds r2, #1 - str r2, [sp, #0x3c] - adds r2, r1, #1 - str r2, [sp, #0x40] - cmp r5, ip - bge _08004CF4 - ldr r7, _08004D0C - asrs r3, r1, #3 - mov sb, r3 - lsls r0, r1, #0x1d - lsrs r0, r0, #0x1b - mov r8, r0 -_08004C9A: - ldrb r0, [r6, #4] - lsls r3, r0, #1 - adds r3, r3, r0 - lsls r3, r3, #2 - adds r1, r7, #0 - adds r1, #8 - adds r1, r3, r1 - asrs r2, r4, #1 - movs r0, #3 - ands r2, r0 - ldr r1, [r1] - adds r1, r1, r2 - asrs r0, r4, #3 - lsls r0, r0, #5 - adds r1, r1, r0 - adds r3, r3, r7 - ldrb r0, [r3, #3] - mov r2, sb - muls r2, r0, r2 - adds r0, r2, #0 - lsls r0, r0, #5 - adds r1, r1, r0 - mov r0, r8 - adds r3, r1, r0 - lsls r0, r5, #2 - mov r2, sl - lsrs r2, r0 - movs r0, #0xf - ands r2, r0 - cmp r2, #0 - beq _08004CEC - movs r0, #1 - ands r0, r4 - lsls r0, r0, #2 - lsls r2, r0 - movs r1, #0xf0 - asrs r1, r0 - ldrb r0, [r3] - ands r1, r0 - orrs r2, r1 - strb r2, [r3] -_08004CEC: - adds r5, #1 - adds r4, #1 - cmp r5, ip - blt _08004C9A -_08004CF4: - ldr r3, [sp, #0x44] - ldr r2, [sp, #0x3c] - ldr r1, [sp, #0x40] - cmp r2, #7 - ble _08004C74 - ldr r3, _08004D14 - movs r2, #0 - ldrb r0, [r6, #9] - adds r1, r0, #0 - adds r1, #8 - b _08004D92 - .align 2, 0 -_08004D0C: .4byte gUnknown_2020004 -_08004D10: .4byte gUnknown_3003050 -_08004D14: .4byte gUnknown_3003070 -_08004D18: - ldm r3!, {r0} - mov sb, r0 - movs r5, #0 - ldrb r4, [r6, #8] - lsls r0, r1, #0x1d - str r3, [sp, #0x54] - adds r2, #1 - mov sl, r2 - adds r2, r1, #1 - mov ip, r2 - asrs r1, r1, #3 - mov r8, r1 - lsrs r7, r0, #0x1b -_08004D32: - ldrb r0, [r6, #4] - lsls r3, r0, #1 - adds r3, r3, r0 - lsls r3, r3, #2 - ldr r1, _08004E48 - adds r1, #8 - adds r1, r3, r1 - asrs r2, r4, #1 - movs r0, #3 - ands r2, r0 - ldr r1, [r1] - adds r1, r1, r2 - asrs r0, r4, #3 - lsls r0, r0, #5 - adds r1, r1, r0 - ldr r0, _08004E48 - adds r3, r3, r0 - ldrb r0, [r3, #3] - mov r2, r8 - muls r2, r0, r2 - adds r0, r2, #0 - lsls r0, r0, #5 - adds r1, r1, r0 - adds r3, r1, r7 - lsls r0, r5, #2 - mov r2, sb - lsrs r2, r0 - movs r0, #0xf - ands r2, r0 - cmp r2, #0 - beq _08004D84 - movs r0, #1 - ands r0, r4 - lsls r0, r0, #2 - lsls r2, r0 - movs r1, #0xf0 - asrs r1, r0 - ldrb r0, [r3] - ands r1, r0 - orrs r2, r1 - strb r2, [r3] -_08004D84: - adds r5, #1 - adds r4, #1 - cmp r5, #7 - ble _08004D32 - ldr r3, [sp, #0x54] - mov r2, sl - mov r1, ip -_08004D92: - ldr r0, [sp, #0x68] - cmp r2, r0 - blt _08004D18 - ldr r3, _08004E4C - movs r2, #0 - ldrb r0, [r6, #9] - adds r1, r0, #0 - adds r1, #8 - ldr r0, [sp, #0x68] - cmp r2, r0 - bge _08004E38 - ldr r0, [sp, #0x64] - mov sl, r0 -_08004DAC: - ldm r3!, {r0} - mov ip, r0 - movs r5, #0 - ldrb r0, [r6, #8] - adds r4, r0, #0 - adds r4, #8 - str r3, [sp, #0x10] - adds r2, #1 - str r2, [sp, #8] - adds r2, r1, #1 - str r2, [sp, #0xc] - cmp r5, sl - bge _08004E2C - ldr r7, _08004E48 - asrs r3, r1, #3 - mov sb, r3 - lsls r0, r1, #0x1d - lsrs r0, r0, #0x1b - mov r8, r0 -_08004DD2: - ldrb r0, [r6, #4] - lsls r3, r0, #1 - adds r3, r3, r0 - lsls r3, r3, #2 - adds r1, r7, #0 - adds r1, #8 - adds r1, r3, r1 - asrs r2, r4, #1 - movs r0, #3 - ands r2, r0 - ldr r1, [r1] - adds r1, r1, r2 - asrs r0, r4, #3 - lsls r0, r0, #5 - adds r1, r1, r0 - adds r3, r3, r7 - ldrb r0, [r3, #3] - mov r2, sb - muls r2, r0, r2 - adds r0, r2, #0 - lsls r0, r0, #5 - adds r1, r1, r0 - mov r0, r8 - adds r3, r1, r0 - lsls r0, r5, #2 - mov r2, ip - lsrs r2, r0 - movs r0, #0xf - ands r2, r0 - cmp r2, #0 - beq _08004E24 - movs r0, #1 - ands r0, r4 - lsls r0, r0, #2 - lsls r2, r0 - movs r1, #0xf0 - asrs r1, r0 - ldrb r0, [r3] - ands r1, r0 - orrs r2, r1 - strb r2, [r3] -_08004E24: - adds r5, #1 - adds r4, #1 - cmp r5, sl - blt _08004DD2 -_08004E2C: - ldr r3, [sp, #0x10] - ldr r2, [sp, #8] - ldr r1, [sp, #0xc] - ldr r0, [sp, #0x68] - cmp r2, r0 - blt _08004DAC -_08004E38: - add sp, #0x6c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08004E48: .4byte gUnknown_2020004 -_08004E4C: .4byte gUnknown_3003090 - thumb_func_end sub_08004850 - - thumb_func_start EReader_IsReceivedDataValid -EReader_IsReceivedDataValid: @ 0x08004E50 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x40 - str r0, [sp] - ldr r0, [sp, #0x60] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp, #4] - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - str r2, [sp, #8] - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - subs r1, r3, r1 - ldr r5, _08004EC4 - adds r0, r5, #0 - adds r0, #0x80 - ldrb r7, [r0] - adds r2, r5, #0 - cmp r1, r7 - bge _08004E86 - adds r7, r1, #0 -_08004E86: - ldr r1, [sp, #8] - subs r0, r4, r1 - adds r1, r2, #0 - adds r1, #0x81 - ldrb r1, [r1] - str r1, [sp, #0xc] - cmp r0, r1 - bge _08004E98 - str r0, [sp, #0xc] -_08004E98: - movs r1, #0 - movs r0, #7 - ands r0, r3 - adds r0, r3, r0 - lsrs r0, r0, #3 - str r0, [sp, #0x10] - cmp r7, #8 - ble _08004EAA - movs r1, #1 -_08004EAA: - ldr r3, [sp, #0xc] - cmp r3, #8 - ble _08004EB4 - movs r0, #2 - orrs r1, r0 -_08004EB4: - cmp r1, #1 - beq _08004F54 - cmp r1, #1 - bgt _08004EC8 - cmp r1, #0 - beq _08004ED6 - b _0800533C - .align 2, 0 -_08004EC4: .4byte gUnknown_3003030 -_08004EC8: - cmp r1, #2 - bne _08004ECE - b _08005058 -_08004ECE: - cmp r1, #3 - bne _08004ED4 - b _08005158 -_08004ED4: - b _0800533C -_08004ED6: - adds r1, r2, #0 - movs r0, #0 - ldr r2, [sp, #8] - ldr r3, [sp, #0xc] - cmp r0, r3 - blt _08004EE4 - b _0800533C -_08004EE4: - ldm r1!, {r3} - mov r8, r3 - movs r5, #0 - ldr r3, [sp, #4] - str r1, [sp, #0x28] - adds r0, #1 - mov sb, r0 - adds r0, r2, #1 - mov sl, r0 - cmp r5, r7 - bge _08004F46 - asrs r0, r2, #3 - ldr r1, [sp, #0x10] - muls r0, r1, r0 - lsls r0, r0, #5 - mov ip, r0 - lsls r0, r2, #0x1d - lsrs r6, r0, #0x1b -_08004F08: - asrs r1, r3, #1 - movs r0, #3 - ands r1, r0 - ldr r2, [sp] - adds r1, r2, r1 - asrs r0, r3, #3 - lsls r0, r0, #5 - adds r1, r1, r0 - add r1, ip - adds r4, r1, r6 - lsls r0, r5, #2 - mov r2, r8 - lsrs r2, r0 - movs r0, #0xf - ands r2, r0 - cmp r2, #0 - beq _08004F3E - movs r0, #1 - ands r0, r3 - lsls r0, r0, #2 - lsls r2, r0 - movs r1, #0xf0 - asrs r1, r0 - ldrb r0, [r4] - ands r1, r0 - orrs r2, r1 - strb r2, [r4] -_08004F3E: - adds r5, #1 - adds r3, #1 - cmp r5, r7 - blt _08004F08 -_08004F46: - ldr r1, [sp, #0x28] - mov r0, sb - mov r2, sl - ldr r3, [sp, #0xc] - cmp r0, r3 - blt _08004EE4 - b _0800533C -_08004F54: - adds r5, r2, #0 - movs r4, #0 - ldr r2, [sp, #8] - ldr r0, [sp, #0xc] - cmp r4, r0 - bge _08004FCA -_08004F60: - ldm r5!, {r1} - mov r8, r1 - movs r6, #0 - ldr r3, [sp, #4] - asrs r0, r2, #3 - lsls r1, r2, #0x1d - str r5, [sp, #0x2c] - adds r4, #1 - mov sb, r4 - adds r2, #1 - mov sl, r2 - ldr r2, [sp, #0x10] - muls r0, r2, r0 - lsls r0, r0, #5 - mov ip, r0 - lsrs r5, r1, #0x1b -_08004F80: - asrs r1, r3, #1 - movs r0, #3 - ands r1, r0 - ldr r0, [sp] - adds r1, r0, r1 - asrs r0, r3, #3 - lsls r0, r0, #5 - adds r1, r1, r0 - add r1, ip - adds r4, r1, r5 - lsls r0, r6, #2 - mov r2, r8 - lsrs r2, r0 - movs r0, #0xf - ands r2, r0 - cmp r2, #0 - beq _08004FB6 - movs r0, #1 - ands r0, r3 - lsls r0, r0, #2 - lsls r2, r0 - movs r1, #0xf0 - asrs r1, r0 - ldrb r0, [r4] - ands r1, r0 - orrs r2, r1 - strb r2, [r4] -_08004FB6: - adds r6, #1 - adds r3, #1 - cmp r6, #7 - ble _08004F80 - ldr r5, [sp, #0x2c] - mov r4, sb - mov r2, sl - ldr r1, [sp, #0xc] - cmp r4, r1 - blt _08004F60 -_08004FCA: - ldr r1, _08005054 - movs r0, #0 - ldr r2, [sp, #8] - ldr r3, [sp, #0xc] - cmp r0, r3 - blt _08004FD8 - b _0800533C -_08004FD8: - subs r7, #8 - str r7, [sp, #0x18] - str r7, [sp, #0x14] -_08004FDE: - ldm r1!, {r3} - mov r8, r3 - movs r5, #0 - ldr r3, [sp, #4] - adds r3, #8 - mov ip, r1 - adds r0, #1 - mov sb, r0 - adds r0, r2, #1 - mov sl, r0 - ldr r1, [sp, #0x14] - cmp r5, r1 - bge _08005044 - asrs r0, r2, #3 - ldr r1, [sp, #0x10] - muls r0, r1, r0 - lsls r7, r0, #5 - lsls r0, r2, #0x1d - lsrs r6, r0, #0x1b -_08005004: - asrs r1, r3, #1 - movs r0, #3 - ands r1, r0 - ldr r2, [sp] - adds r1, r2, r1 - asrs r0, r3, #3 - lsls r0, r0, #5 - adds r1, r1, r0 - adds r1, r1, r7 - adds r4, r1, r6 - lsls r0, r5, #2 - mov r2, r8 - lsrs r2, r0 - movs r0, #0xf - ands r2, r0 - cmp r2, #0 - beq _0800503A - movs r0, #1 - ands r0, r3 - lsls r0, r0, #2 - lsls r2, r0 - movs r1, #0xf0 - asrs r1, r0 - ldrb r0, [r4] - ands r1, r0 - orrs r2, r1 - strb r2, [r4] -_0800503A: - adds r5, #1 - adds r3, #1 - ldr r0, [sp, #0x18] - cmp r5, r0 - blt _08005004 -_08005044: - mov r1, ip - mov r0, sb - mov r2, sl - ldr r3, [sp, #0xc] - cmp r0, r3 - blt _08004FDE - b _0800533C - .align 2, 0 -_08005054: .4byte gUnknown_3003050 -_08005058: - adds r0, r2, #0 - movs r1, #0 - ldr r2, [sp, #8] - adds r3, r2, #0 - adds r3, #8 - str r3, [sp, #0x1c] - ldr r3, [sp, #0xc] - subs r3, #8 - str r3, [sp, #0x20] -_0800506A: - ldm r0!, {r3} - mov r8, r3 - movs r5, #0 - ldr r3, [sp, #4] - str r0, [sp, #0x34] - adds r1, #1 - mov sb, r1 - adds r0, r2, #1 - mov sl, r0 - cmp r5, r7 - bge _080050CC - asrs r0, r2, #3 - ldr r1, [sp, #0x10] - muls r0, r1, r0 - lsls r0, r0, #5 - mov ip, r0 - lsls r0, r2, #0x1d - lsrs r6, r0, #0x1b -_0800508E: - asrs r1, r3, #1 - movs r0, #3 - ands r1, r0 - ldr r2, [sp] - adds r1, r2, r1 - asrs r0, r3, #3 - lsls r0, r0, #5 - adds r1, r1, r0 - add r1, ip - adds r4, r1, r6 - lsls r0, r5, #2 - mov r2, r8 - lsrs r2, r0 - movs r0, #0xf - ands r2, r0 - cmp r2, #0 - beq _080050C4 - movs r0, #1 - ands r0, r3 - lsls r0, r0, #2 - lsls r2, r0 - movs r1, #0xf0 - asrs r1, r0 - ldrb r0, [r4] - ands r1, r0 - orrs r2, r1 - strb r2, [r4] -_080050C4: - adds r5, #1 - adds r3, #1 - cmp r5, r7 - blt _0800508E -_080050CC: - ldr r0, [sp, #0x34] - mov r1, sb - mov r2, sl - cmp r1, #7 - ble _0800506A - ldr r2, _08005154 - movs r0, #0 - ldr r1, [sp, #0x1c] - ldr r3, [sp, #0x20] - cmp r0, r3 - blt _080050E4 - b _0800533C -_080050E4: - ldm r2!, {r3} - mov r8, r3 - movs r5, #0 - ldr r3, [sp, #4] - str r2, [sp, #0x38] - adds r0, #1 - mov sb, r0 - adds r0, r1, #1 - mov sl, r0 - cmp r5, r7 - bge _08005146 - asrs r0, r1, #3 - ldr r2, [sp, #0x10] - muls r0, r2, r0 - lsls r0, r0, #5 - mov ip, r0 - lsls r0, r1, #0x1d - lsrs r6, r0, #0x1b -_08005108: - asrs r1, r3, #1 - movs r0, #3 - ands r1, r0 - ldr r0, [sp] - adds r1, r0, r1 - asrs r0, r3, #3 - lsls r0, r0, #5 - adds r1, r1, r0 - add r1, ip - adds r4, r1, r6 - lsls r0, r5, #2 - mov r2, r8 - lsrs r2, r0 - movs r0, #0xf - ands r2, r0 - cmp r2, #0 - beq _0800513E - movs r0, #1 - ands r0, r3 - lsls r0, r0, #2 - lsls r2, r0 - movs r1, #0xf0 - asrs r1, r0 - ldrb r0, [r4] - ands r1, r0 - orrs r2, r1 - strb r2, [r4] -_0800513E: - adds r5, #1 - adds r3, #1 - cmp r5, r7 - blt _08005108 -_08005146: - ldr r2, [sp, #0x38] - mov r0, sb - mov r1, sl - ldr r3, [sp, #0x20] - cmp r0, r3 - blt _080050E4 - b _0800533C - .align 2, 0 -_08005154: .4byte gUnknown_3003070 -_08005158: - movs r2, #0 - ldr r4, [sp, #8] - ldr r0, [sp, #4] - adds r0, #8 - str r0, [sp, #0x3c] - subs r7, #8 - str r7, [sp, #0x18] - adds r1, r4, #0 - adds r1, #8 - str r1, [sp, #0x1c] - ldr r3, [sp, #0xc] - subs r3, #8 - str r3, [sp, #0x20] -_08005172: - ldm r5!, {r0} - mov r8, r0 - movs r6, #0 - ldr r3, [sp, #4] - asrs r0, r4, #3 - lsls r1, r4, #0x1d - mov sl, r5 - adds r2, #1 - mov ip, r2 - adds r4, #1 - mov sb, r4 - ldr r2, [sp, #0x10] - muls r0, r2, r0 - lsls r7, r0, #5 - lsrs r5, r1, #0x1b -_08005190: - asrs r1, r3, #1 - movs r0, #3 - ands r1, r0 - ldr r0, [sp] - adds r1, r0, r1 - asrs r0, r3, #3 - lsls r0, r0, #5 - adds r1, r1, r0 - adds r1, r1, r7 - adds r4, r1, r5 - lsls r0, r6, #2 - mov r2, r8 - lsrs r2, r0 - movs r0, #0xf - ands r2, r0 - cmp r2, #0 - beq _080051C6 - movs r0, #1 - ands r0, r3 - lsls r0, r0, #2 - lsls r2, r0 - movs r1, #0xf0 - asrs r1, r0 - ldrb r0, [r4] - ands r1, r0 - orrs r2, r1 - strb r2, [r4] -_080051C6: - adds r6, #1 - adds r3, #1 - cmp r6, #7 - ble _08005190 - mov r5, sl - mov r2, ip - mov r4, sb - cmp r2, #7 - ble _08005172 - ldr r1, _0800534C - movs r0, #0 - ldr r2, [sp, #8] - ldr r3, [sp, #0x18] - mov ip, r3 -_080051E2: - ldm r1!, {r3} - mov r8, r3 - movs r5, #0 - ldr r3, [sp, #0x3c] - str r1, [sp, #0x24] - adds r0, #1 - mov sb, r0 - adds r0, r2, #1 - mov sl, r0 - cmp r5, ip - bge _08005242 - asrs r0, r2, #3 - ldr r1, [sp, #0x10] - muls r0, r1, r0 - lsls r7, r0, #5 - lsls r0, r2, #0x1d - lsrs r6, r0, #0x1b -_08005204: - asrs r1, r3, #1 - movs r0, #3 - ands r1, r0 - ldr r2, [sp] - adds r1, r2, r1 - asrs r0, r3, #3 - lsls r0, r0, #5 - adds r1, r1, r0 - adds r1, r1, r7 - adds r4, r1, r6 - lsls r0, r5, #2 - mov r2, r8 - lsrs r2, r0 - movs r0, #0xf - ands r2, r0 - cmp r2, #0 - beq _0800523A - movs r0, #1 - ands r0, r3 - lsls r0, r0, #2 - lsls r2, r0 - movs r1, #0xf0 - asrs r1, r0 - ldrb r0, [r4] - ands r1, r0 - orrs r2, r1 - strb r2, [r4] -_0800523A: - adds r5, #1 - adds r3, #1 - cmp r5, ip - blt _08005204 -_08005242: - ldr r1, [sp, #0x24] - mov r0, sb - mov r2, sl - cmp r0, #7 - ble _080051E2 - ldr r6, _08005350 - movs r4, #0 - ldr r2, [sp, #0x1c] - ldr r3, [sp, #0x20] - cmp r4, r3 - bge _080052C0 -_08005258: - ldm r6!, {r0} - mov r8, r0 - movs r5, #0 - ldr r3, [sp, #4] - asrs r0, r2, #3 - lsls r1, r2, #0x1d - mov ip, r6 - adds r4, #1 - mov sb, r4 - adds r2, #1 - mov sl, r2 - ldr r2, [sp, #0x10] - muls r0, r2, r0 - lsls r7, r0, #5 - lsrs r6, r1, #0x1b -_08005276: - asrs r1, r3, #1 - movs r0, #3 - ands r1, r0 - ldr r0, [sp] - adds r1, r0, r1 - asrs r0, r3, #3 - lsls r0, r0, #5 - adds r1, r1, r0 - adds r1, r1, r7 - adds r4, r1, r6 - lsls r0, r5, #2 - mov r2, r8 - lsrs r2, r0 - movs r0, #0xf - ands r2, r0 - cmp r2, #0 - beq _080052AC - movs r0, #1 - ands r0, r3 - lsls r0, r0, #2 - lsls r2, r0 - movs r1, #0xf0 - asrs r1, r0 - ldrb r0, [r4] - ands r1, r0 - orrs r2, r1 - strb r2, [r4] -_080052AC: - adds r5, #1 - adds r3, #1 - cmp r5, #7 - ble _08005276 - mov r6, ip - mov r4, sb - mov r2, sl - ldr r1, [sp, #0x20] - cmp r4, r1 - blt _08005258 -_080052C0: - ldr r2, _08005354 - movs r0, #0 - ldr r1, [sp, #0x1c] - ldr r3, [sp, #0x20] - cmp r0, r3 - bge _0800533C - ldr r3, [sp, #0x18] - mov ip, r3 -_080052D0: - ldm r2!, {r3} - mov r8, r3 - movs r5, #0 - ldr r3, [sp, #0x3c] - str r2, [sp, #0x30] - adds r0, #1 - mov sb, r0 - adds r0, r1, #1 - mov sl, r0 - cmp r5, ip - bge _08005330 - asrs r0, r1, #3 - ldr r2, [sp, #0x10] - muls r0, r2, r0 - lsls r7, r0, #5 - lsls r0, r1, #0x1d - lsrs r6, r0, #0x1b -_080052F2: - asrs r1, r3, #1 - movs r0, #3 - ands r1, r0 - ldr r0, [sp] - adds r1, r0, r1 - asrs r0, r3, #3 - lsls r0, r0, #5 - adds r1, r1, r0 - adds r1, r1, r7 - adds r4, r1, r6 - lsls r0, r5, #2 - mov r2, r8 - lsrs r2, r0 - movs r0, #0xf - ands r2, r0 - cmp r2, #0 - beq _08005328 - movs r0, #1 - ands r0, r3 - lsls r0, r0, #2 - lsls r2, r0 - movs r1, #0xf0 - asrs r1, r0 - ldrb r0, [r4] - ands r1, r0 - orrs r2, r1 - strb r2, [r4] -_08005328: - adds r5, #1 - adds r3, #1 - cmp r5, ip - blt _080052F2 -_08005330: - ldr r2, [sp, #0x30] - mov r0, sb - mov r1, sl - ldr r3, [sp, #0x20] - cmp r0, r3 - blt _080052D0 -_0800533C: - add sp, #0x40 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800534C: .4byte gUnknown_3003050 -_08005350: .4byte gUnknown_3003070 -_08005354: .4byte gUnknown_3003090 - thumb_func_end EReader_IsReceivedDataValid - - thumb_func_start Font0Func -Font0Func: @ 0x08005358 - push {lr} - adds r2, r0, #0 - adds r3, r2, #0 - adds r3, #0x14 - ldrb r1, [r3, #1] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0800537C - ldrb r1, [r2, #0x14] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x14] - ldrb r0, [r3, #1] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r3, #1] -_0800537C: - adds r0, r2, #0 - bl RenderText - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end Font0Func - - thumb_func_start Font1Func -Font1Func: @ 0x0800538C - push {lr} - adds r2, r0, #0 - adds r3, r2, #0 - adds r3, #0x14 - ldrb r1, [r3, #1] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080053B4 - ldrb r1, [r2, #0x14] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x14] - ldrb r0, [r3, #1] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r3, #1] -_080053B4: - adds r0, r2, #0 - bl RenderText - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end Font1Func - - thumb_func_start Font2Func -Font2Func: @ 0x080053C4 - push {lr} - adds r2, r0, #0 - adds r3, r2, #0 - adds r3, #0x14 - ldrb r1, [r3, #1] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080053EC - ldrb r1, [r2, #0x14] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r2, #0x14] - ldrb r0, [r3, #1] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r3, #1] -_080053EC: - adds r0, r2, #0 - bl RenderText - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end Font2Func - - thumb_func_start Font3Func -Font3Func: @ 0x080053FC - push {lr} - adds r2, r0, #0 - adds r3, r2, #0 - adds r3, #0x14 - ldrb r1, [r3, #1] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08005424 - ldrb r1, [r2, #0x14] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2, #0x14] - ldrb r0, [r3, #1] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r3, #1] -_08005424: - adds r0, r2, #0 - bl RenderText - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end Font3Func - - thumb_func_start Font4Func -Font4Func: @ 0x08005434 - push {lr} - adds r2, r0, #0 - adds r3, r2, #0 - adds r3, #0x14 - ldrb r1, [r3, #1] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0800545C - ldrb r1, [r2, #0x14] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2, #0x14] - ldrb r0, [r3, #1] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r3, #1] -_0800545C: - adds r0, r2, #0 - bl RenderText - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end Font4Func - - thumb_func_start Font5Func -Font5Func: @ 0x0800546C - push {lr} - adds r2, r0, #0 - adds r3, r2, #0 - adds r3, #0x14 - ldrb r1, [r3, #1] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08005494 - ldrb r1, [r2, #0x14] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r2, #0x14] - ldrb r0, [r3, #1] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r3, #1] -_08005494: - adds r0, r2, #0 - bl RenderText - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end Font5Func - - thumb_func_start TextPrinterInitDownArrowCounters -TextPrinterInitDownArrowCounters: @ 0x080054A4 - push {lr} - adds r2, r0, #0 - adds r2, #0x14 - ldr r0, _080054BC - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080054C0 - movs r0, #0 - strb r0, [r2, #2] - b _080054D0 - .align 2, 0 -_080054BC: .4byte gUnknown_30030B4 -_080054C0: - ldrb r0, [r2, #1] - movs r1, #0x61 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #0x20 - rsbs r0, r0, #0 - ands r1, r0 - strb r1, [r2, #1] -_080054D0: - pop {r0} - bx r0 - thumb_func_end TextPrinterInitDownArrowCounters - - thumb_func_start TextPrinterDrawDownArrow -TextPrinterDrawDownArrow: @ 0x080054D4 - push {r4, r5, r6, r7, lr} - sub sp, #0x18 - adds r5, r0, #0 - adds r6, r5, #0 - adds r6, #0x14 - ldr r7, _08005508 - ldrb r1, [r7] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _0800559A - ldrb r2, [r6, #1] - movs r0, #0x1f - ands r0, r2 - cmp r0, #0 - beq _0800550C - ldr r0, [r5, #0x14] - lsls r0, r0, #0x13 - lsrs r0, r0, #0x1b - subs r0, #1 - movs r1, #0x1f - ands r0, r1 - movs r1, #0x20 - rsbs r1, r1, #0 - b _08005594 - .align 2, 0 -_08005508: .4byte gUnknown_30030B4 -_0800550C: - ldrb r0, [r5, #4] - ldrb r2, [r5, #0xd] - lsls r2, r2, #0x1c - lsrs r1, r2, #4 - orrs r1, r2 - lsrs r1, r1, #0x18 - ldrb r2, [r5, #8] - ldrb r3, [r5, #9] - movs r4, #8 - str r4, [sp] - movs r4, #0x10 - str r4, [sp, #4] - bl sub_08003A34 - ldr r0, [r7] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1f - cmp r0, #0 - beq _08005536 - cmp r0, #1 - beq _08005540 -_08005536: - ldr r7, _0800553C - b _08005542 - .align 2, 0 -_0800553C: .4byte gUnknown_829BFB8 -_08005540: - ldr r7, _080055A4 -_08005542: - ldrb r0, [r5, #4] - ldr r2, _080055A8 - ldr r1, [r6] - lsls r1, r1, #0x11 - lsrs r1, r1, #0x1e - adds r1, r1, r2 - ldrb r3, [r1] - movs r4, #8 - str r4, [sp] - movs r2, #0x10 - str r2, [sp, #4] - ldrb r1, [r5, #8] - str r1, [sp, #8] - ldrb r1, [r5, #9] - str r1, [sp, #0xc] - str r4, [sp, #0x10] - str r2, [sp, #0x14] - adds r1, r7, #0 - movs r2, #0 - bl BlitBitmapRectToWindow - ldrb r0, [r5, #4] - movs r1, #2 - bl CopyWindowToVram - ldrb r0, [r6, #1] - movs r1, #0x20 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #8 - orrs r1, r0 - strb r1, [r6, #1] - ldr r0, [r6] - lsls r0, r0, #0x11 - lsrs r0, r0, #0x1e - adds r0, #1 - movs r2, #3 - ands r0, r2 - lsls r0, r0, #5 - movs r2, #0x61 - rsbs r2, r2, #0 -_08005594: - ands r1, r2 - orrs r1, r0 - strb r1, [r6, #1] -_0800559A: - add sp, #0x18 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080055A4: .4byte gUnknown_829C078 -_080055A8: .4byte gUnknown_829C638 - thumb_func_end TextPrinterDrawDownArrow - - thumb_func_start TextPrinterClearDownArrow -TextPrinterClearDownArrow: @ 0x080055AC - push {r4, r5, lr} - sub sp, #8 - adds r5, r0, #0 - ldrb r0, [r5, #4] - ldrb r2, [r5, #0xd] - lsls r2, r2, #0x1c - lsrs r1, r2, #4 - orrs r1, r2 - lsrs r1, r1, #0x18 - ldrb r2, [r5, #8] - ldrb r3, [r5, #9] - movs r4, #8 - str r4, [sp] - movs r4, #0x10 - str r4, [sp, #4] - bl sub_08003A34 - ldrb r0, [r5, #4] - movs r1, #2 - bl CopyWindowToVram - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end TextPrinterClearDownArrow - - thumb_func_start TextPrinterWaitAutoMode -TextPrinterWaitAutoMode: @ 0x080055E0 - push {lr} - adds r1, r0, #0 - adds r1, #0x14 - ldrb r0, [r1, #2] - cmp r0, #0x31 - beq _080055F4 - adds r0, #1 - strb r0, [r1, #2] - movs r0, #0 - b _080055F6 -_080055F4: - movs r0, #1 -_080055F6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end TextPrinterWaitAutoMode - - thumb_func_start TextPrinterWaitWithDownArrow -TextPrinterWaitWithDownArrow: @ 0x080055FC - push {r4, lr} - adds r2, r0, #0 - movs r4, #0 - ldr r0, _0800561C - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08005620 - adds r0, r2, #0 - bl TextPrinterWaitAutoMode - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - b _0800563A - .align 2, 0 -_0800561C: .4byte gUnknown_30030B4 -_08005620: - adds r0, r2, #0 - bl TextPrinterDrawDownArrow - ldr r0, _08005644 - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _0800563A - movs r4, #1 - movs r0, #5 - bl sub_080A306C -_0800563A: - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08005644: .4byte gUnknown_3002360 - thumb_func_end TextPrinterWaitWithDownArrow - - thumb_func_start TextPrinterWait -TextPrinterWait: @ 0x08005648 - push {r4, lr} - adds r2, r0, #0 - movs r4, #0 - ldr r0, _08005668 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0800566C - adds r0, r2, #0 - bl TextPrinterWaitAutoMode - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - b _08005680 - .align 2, 0 -_08005668: .4byte gUnknown_30030B4 -_0800566C: - ldr r0, _08005688 - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _08005680 - movs r4, #1 - movs r0, #5 - bl sub_080A306C -_08005680: - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08005688: .4byte gUnknown_3002360 - thumb_func_end TextPrinterWait - - thumb_func_start DrawDownArrow -DrawDownArrow: @ 0x0800568C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - ldr r4, [sp, #0x38] - ldr r5, [sp, #0x3c] - mov sb, r5 - ldr r5, [sp, #0x40] - mov sl, r5 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r8, r1 - lsls r2, r2, #0x10 - lsrs r7, r2, #0x10 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r1, sb - ldrb r0, [r1] - cmp r0, #0 - beq _080056C6 - subs r0, #1 - strb r0, [r1] - b _08005746 -_080056C6: - lsls r1, r3, #4 - orrs r1, r3 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #8 - str r0, [sp] - movs r0, #0x10 - str r0, [sp, #4] - adds r0, r5, #0 - mov r2, r8 - adds r3, r7, #0 - bl sub_08003A34 - cmp r4, #0 - bne _08005746 - ldr r0, _080056F8 - ldr r0, [r0] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1f - cmp r0, #0 - beq _080056F4 - cmp r0, #1 - beq _08005700 -_080056F4: - ldr r6, _080056FC - b _08005702 - .align 2, 0 -_080056F8: .4byte gUnknown_30030B4 -_080056FC: .4byte gUnknown_829BFB8 -_08005700: - ldr r6, _08005758 -_08005702: - ldr r2, _0800575C - mov r0, sl - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - adds r0, r0, r2 - ldrb r3, [r0] - movs r4, #8 - str r4, [sp] - movs r1, #0x10 - str r1, [sp, #4] - mov r0, r8 - str r0, [sp, #8] - subs r0, r7, #2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0xc] - str r4, [sp, #0x10] - str r1, [sp, #0x14] - adds r0, r5, #0 - adds r1, r6, #0 - movs r2, #0 - bl BlitBitmapRectToWindow - adds r0, r5, #0 - movs r1, #2 - bl CopyWindowToVram - mov r1, sb - strb r4, [r1] - mov r5, sl - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] -_08005746: - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08005758: .4byte gUnknown_829C078 -_0800575C: .4byte gUnknown_829C638 - thumb_func_end DrawDownArrow - - thumb_func_start RenderText -RenderText: @ 0x08005760 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r4, r6, #0 - adds r4, #0x14 - ldrb r0, [r6, #0x1c] - cmp r0, #6 - bls _08005770 - b _08005C40 -_08005770: - lsls r0, r0, #2 - ldr r1, _0800577C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0800577C: .4byte _08005780 -_08005780: @ jump table - .4byte _0800579C @ case 0 - .4byte _08005B50 @ case 1 - .4byte _08005B62 @ case 2 - .4byte _08005B8C @ case 3 - .4byte _08005BC4 @ case 4 - .4byte _08005C1C @ case 5 - .4byte _08005C2E @ case 6 -_0800579C: - ldr r2, _080057F0 - ldrh r1, [r2, #0x2c] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _080057B6 - ldrb r1, [r4] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080057B6 - movs r0, #0 - strb r0, [r6, #0x1e] -_080057B6: - ldrb r1, [r6, #0x1e] - cmp r1, #0 - beq _080057F8 - ldrb r0, [r6, #0x1d] - cmp r0, #0 - beq _080057F8 - subs r0, r1, #1 - strb r0, [r6, #0x1e] - ldr r0, _080057F4 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080057D4 - b _08005A96 -_080057D4: - ldrh r1, [r2, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _080057E0 - b _08005A96 -_080057E0: - ldrb r0, [r4] - movs r1, #0x10 - orrs r0, r1 - strb r0, [r4] - movs r0, #0 - strb r0, [r6, #0x1e] - b _08005A96 - .align 2, 0 -_080057F0: .4byte gUnknown_3002360 -_080057F4: .4byte gUnknown_30030B4 -_080057F8: - ldr r0, _08005818 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - bne _08005820 - ldr r0, _0800581C - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08005820 - movs r0, #3 - b _08005822 - .align 2, 0 -_08005818: .4byte gUnknown_2022C90 -_0800581C: .4byte gUnknown_30030B4 -_08005820: - ldrb r0, [r6, #0x1d] -_08005822: - strb r0, [r6, #0x1e] - ldr r0, [r6] - ldrb r3, [r0] - adds r0, #1 - str r0, [r6] - adds r0, r3, #0 - subs r0, #0xf8 - cmp r0, #7 - bls _08005836 - b _08005AD4 -_08005836: - lsls r0, r0, #2 - ldr r1, _08005840 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08005840: .4byte _08005844 -_08005844: @ jump table - .4byte _08005AAC @ case 0 - .4byte _08005A9A @ case 1 - .4byte _08005A8C @ case 2 - .4byte _08005A88 @ case 3 - .4byte _08005888 @ case 4 - .4byte _08005A80 @ case 5 - .4byte _08005864 @ case 6 - .4byte _08005C40 @ case 7 -_08005864: - ldrb r0, [r6, #6] - strb r0, [r6, #8] - ldrb r1, [r6, #5] - ldr r0, _08005884 - ldr r2, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r6, #0xb] - ldrb r0, [r0, #5] - adds r1, r1, r0 - ldrb r0, [r6, #9] - adds r0, r0, r1 - b _08005A62 - .align 2, 0 -_08005884: .4byte gUnknown_3003020 -_08005888: - ldr r0, [r6] - ldrb r3, [r0] - adds r0, #1 - str r0, [r6] - subs r0, r3, #1 - cmp r0, #0x17 - bls _08005898 - b _08005AD4 -_08005898: - lsls r0, r0, #2 - ldr r1, _080058A4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080058A4: .4byte _080058A8 -_080058A8: @ jump table - .4byte _08005908 @ case 0 - .4byte _0800592A @ case 1 - .4byte _0800594E @ case 2 - .4byte _08005968 @ case 3 - .4byte _08005A80 @ case 4 - .4byte _080059B6 @ case 5 - .4byte _080059B2 @ case 6 - .4byte _080059CC @ case 7 - .4byte _080059DC @ case 8 - .4byte _080059F8 @ case 9 - .4byte _080059FC @ case 10 - .4byte _08005A9A @ case 11 - .4byte _08005A30 @ case 12 - .4byte _08005A3C @ case 13 - .4byte _08005A4C @ case 14 - .4byte _08005A16 @ case 15 - .4byte _08005A80 @ case 16 - .4byte _08005A80 @ case 17 - .4byte _08005A80 @ case 18 - .4byte _08005A80 @ case 19 - .4byte _080059B2 @ case 20 - .4byte _080059B2 @ case 21 - .4byte _08005A66 @ case 22 - .4byte _08005A74 @ case 23 -_08005908: - ldr r2, [r6] - ldrb r1, [r2] - lsls r1, r1, #4 - ldrb r3, [r6, #0xc] - movs r0, #0xf - ands r0, r3 - orrs r0, r1 - strb r0, [r6, #0xc] - adds r2, #1 - str r2, [r6] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1c - ldrb r2, [r6, #0xd] - lsls r1, r2, #0x1c - lsrs r1, r1, #0x1c - lsrs r2, r2, #4 - b _080059AE -_0800592A: - ldr r1, [r6] - ldrb r2, [r1] - movs r0, #0xf - ands r0, r2 - ldrb r3, [r6, #0xd] - movs r2, #0x10 - rsbs r2, r2, #0 - ands r2, r3 - orrs r2, r0 - strb r2, [r6, #0xd] - adds r1, #1 - str r1, [r6] - ldrb r0, [r6, #0xc] - lsrs r0, r0, #4 - lsls r1, r2, #0x1c - lsrs r1, r1, #0x1c - lsrs r2, r2, #4 - b _080059AE -_0800594E: - ldr r1, [r6] - ldrb r0, [r1] - lsls r0, r0, #4 - ldrb r3, [r6, #0xd] - movs r2, #0xf - ands r2, r3 - orrs r2, r0 - strb r2, [r6, #0xd] - adds r1, #1 - str r1, [r6] - ldrb r0, [r6, #0xc] - lsrs r0, r0, #4 - b _080059A6 -_08005968: - ldr r3, [r6] - ldrb r1, [r3] - lsls r1, r1, #4 - ldrb r4, [r6, #0xc] - movs r2, #0xf - adds r0, r2, #0 - ands r0, r4 - orrs r0, r1 - strb r0, [r6, #0xc] - adds r5, r3, #1 - str r5, [r6] - ldrb r3, [r3, #1] - adds r1, r2, #0 - ands r1, r3 - ldrb r4, [r6, #0xd] - movs r3, #0x10 - rsbs r3, r3, #0 - ands r3, r4 - orrs r3, r1 - strb r3, [r6, #0xd] - adds r4, r5, #1 - str r4, [r6] - ldrb r1, [r5, #1] - lsls r1, r1, #4 - ands r2, r3 - orrs r2, r1 - strb r2, [r6, #0xd] - adds r4, #1 - str r4, [r6] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1c -_080059A6: - lsls r1, r2, #0x1c - lsrs r1, r1, #0x1c - lsls r2, r2, #0x18 - lsrs r2, r2, #0x1c -_080059AE: - bl sub_080046E4 -_080059B2: - movs r0, #2 - b _08005C42 -_080059B6: - ldr r0, [r6] - ldrb r0, [r0] - movs r1, #0xf - ands r1, r0 - ldrb r2, [r4] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4] - b _08005A80 -_080059CC: - ldr r0, [r6] - ldrb r1, [r0] - strb r1, [r6, #0x1e] - adds r0, #1 - str r0, [r6] - movs r0, #6 - strb r0, [r6, #0x1c] - b _080059B2 -_080059DC: - movs r0, #1 - strb r0, [r6, #0x1c] - ldr r0, _080059F4 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08005A96 - movs r0, #0 - strb r0, [r4, #2] - b _08005A96 - .align 2, 0 -_080059F4: .4byte gUnknown_30030B4 -_080059F8: - movs r0, #5 - b _08005C2A -_080059FC: - ldr r0, [r6] - ldrb r3, [r0] - adds r1, r0, #1 - str r1, [r6] - ldrb r0, [r0, #1] - lsls r0, r0, #8 - orrs r3, r0 - adds r1, #1 - str r1, [r6] - adds r0, r3, #0 - bl PlayBGM - b _080059B2 -_08005A16: - ldr r0, [r6] - ldrb r3, [r0] - adds r1, r0, #1 - str r1, [r6] - ldrb r0, [r0, #1] - lsls r0, r0, #8 - orrs r3, r0 - adds r1, #1 - str r1, [r6] - adds r0, r3, #0 - bl sub_080A306C - b _080059B2 -_08005A30: - ldr r1, [r6] - ldrb r0, [r1] - ldrb r2, [r6, #6] - adds r0, r0, r2 - strb r0, [r6, #8] - b _08005A46 -_08005A3C: - ldr r1, [r6] - ldrb r0, [r1] - ldrb r2, [r6, #7] - adds r0, r0, r2 - strb r0, [r6, #9] -_08005A46: - adds r1, #1 - str r1, [r6] - b _080059B2 -_08005A4C: - ldrb r0, [r6, #4] - ldrb r2, [r6, #0xd] - lsls r2, r2, #0x1c - lsrs r1, r2, #4 - orrs r1, r2 - lsrs r1, r1, #0x18 - bl FillWindowPixelBuffer - ldrb r0, [r6, #6] - strb r0, [r6, #8] - ldrb r0, [r6, #7] -_08005A62: - strb r0, [r6, #9] - b _080059B2 -_08005A66: - ldr r0, _08005A70 - bl m4aMPlayStop - b _080059B2 - .align 2, 0 -_08005A70: .4byte gUnknown_30074D0 -_08005A74: - ldr r0, _08005A7C - bl m4aMPlayContinue - b _080059B2 - .align 2, 0 -_08005A7C: .4byte gUnknown_30074D0 -_08005A80: - ldr r0, [r6] - adds r0, #1 - str r0, [r6] - b _080059B2 -_08005A88: - movs r0, #2 - b _08005A8E -_08005A8C: - movs r0, #3 -_08005A8E: - strb r0, [r6, #0x1c] - adds r0, r6, #0 - bl TextPrinterInitDownArrowCounters -_08005A96: - movs r0, #3 - b _08005C42 -_08005A9A: - ldr r0, [r6] - ldrb r3, [r0] - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r2, #0 - orrs r3, r1 - adds r0, #1 - str r0, [r6] - b _08005AD4 -_08005AAC: - ldr r0, [r6] - ldrb r3, [r0] - adds r0, #1 - str r0, [r6] - ldrb r0, [r6, #4] - adds r1, r3, #0 - ldrb r2, [r6, #8] - ldrb r3, [r6, #9] - bl DrawKeypadIcon - ldr r1, _08005AD0 - adds r1, #0x80 - strb r0, [r1] - ldrb r1, [r6, #0xa] - adds r0, r0, r1 - ldrb r2, [r6, #8] - adds r0, r0, r2 - b _08005B46 - .align 2, 0 -_08005AD0: .4byte gUnknown_3003030 -_08005AD4: - ldr r0, [r4] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - cmp r0, #5 - bhi _08005B32 - lsls r0, r0, #2 - ldr r1, _08005AE8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08005AE8: .4byte _08005AEC -_08005AEC: @ jump table - .4byte _08005B04 @ case 0 - .4byte _08005B0C @ case 1 - .4byte _08005B14 @ case 2 - .4byte _08005B1C @ case 3 - .4byte _08005B24 @ case 4 - .4byte _08005B2C @ case 5 -_08005B04: - adds r0, r3, #0 - bl DecompressGlyphFont9 - b _08005B32 -_08005B0C: - adds r0, r3, #0 - bl sub_08006304 - b _08005B32 -_08005B14: - adds r0, r3, #0 - bl ether_effect_related - b _08005B32 -_08005B1C: - adds r0, r3, #0 - bl sub_08006418 - b _08005B32 -_08005B24: - adds r0, r3, #0 - bl sub_080064B8 - b _08005B32 -_08005B2C: - adds r0, r3, #0 - bl sub_0800657C -_08005B32: - adds r0, r6, #0 - bl sub_08004850 - ldr r0, _08005B4C - adds r0, #0x80 - ldrb r1, [r6, #0xa] - ldrb r0, [r0] - adds r1, r1, r0 - ldrb r0, [r6, #8] - adds r0, r0, r1 -_08005B46: - strb r0, [r6, #8] - movs r0, #0 - b _08005C42 - .align 2, 0 -_08005B4C: .4byte gUnknown_3003030 -_08005B50: - adds r0, r6, #0 - bl TextPrinterWait - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08005A96 - movs r0, #0 - strb r0, [r6, #0x1c] - b _08005A96 -_08005B62: - adds r0, r6, #0 - bl TextPrinterWaitWithDownArrow - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08005A96 - ldrb r0, [r6, #4] - ldrb r2, [r6, #0xd] - lsls r2, r2, #0x1c - lsrs r1, r2, #4 - orrs r1, r2 - lsrs r1, r1, #0x18 - bl FillWindowPixelBuffer - ldrb r0, [r6, #6] - movs r1, #0 - strb r0, [r6, #8] - ldrb r0, [r6, #7] - strb r0, [r6, #9] - strb r1, [r6, #0x1c] - b _08005A96 -_08005B8C: - adds r0, r6, #0 - bl TextPrinterWaitWithDownArrow - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08005B9A - b _08005A96 -_08005B9A: - adds r0, r6, #0 - bl TextPrinterClearDownArrow - ldrb r1, [r6, #5] - ldr r0, _08005BC0 - ldr r2, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r6, #0xb] - ldrb r0, [r0, #5] - adds r1, r1, r0 - strb r1, [r6, #0x1f] - ldrb r0, [r6, #6] - strb r0, [r6, #8] - movs r0, #4 - strb r0, [r6, #0x1c] - b _08005A96 - .align 2, 0 -_08005BC0: .4byte gUnknown_3003020 -_08005BC4: - ldrb r0, [r6, #0x1f] - cmp r0, #0 - beq _08005C18 - bl sub_08197768 - ldr r1, _08005BF0 - adds r0, r0, r1 - ldrb r4, [r0] - ldrb r2, [r6, #0x1f] - cmp r2, r4 - bge _08005BF4 - ldrb r0, [r6, #4] - ldrb r1, [r6, #0xd] - lsls r1, r1, #0x1c - lsrs r3, r1, #4 - orrs r3, r1 - lsrs r3, r3, #0x18 - movs r1, #0 - bl ScrollWindow - movs r0, #0 - b _08005C0C - .align 2, 0 -_08005BF0: .4byte gUnknown_829C63C -_08005BF4: - ldrb r0, [r6, #4] - ldrb r1, [r6, #0xd] - lsls r1, r1, #0x1c - lsrs r3, r1, #4 - orrs r3, r1 - lsrs r3, r3, #0x18 - movs r1, #0 - adds r2, r4, #0 - bl ScrollWindow - ldrb r0, [r6, #0x1f] - subs r0, r0, r4 -_08005C0C: - strb r0, [r6, #0x1f] - ldrb r0, [r6, #4] - movs r1, #2 - bl CopyWindowToVram - b _08005A96 -_08005C18: - strb r0, [r6, #0x1c] - b _08005A96 -_08005C1C: - bl IsSEPlaying - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _08005C2A - b _08005A96 -_08005C2A: - strb r0, [r6, #0x1c] - b _08005A96 -_08005C2E: - ldrb r0, [r6, #0x1e] - adds r1, r0, #0 - cmp r1, #0 - beq _08005C3C - subs r0, #1 - strb r0, [r6, #0x1e] - b _08005A96 -_08005C3C: - strb r1, [r6, #0x1c] - b _08005A96 -_08005C40: - movs r0, #1 -_08005C42: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end RenderText - - thumb_func_start GetStringWidthFixedWidthFont -GetStringWidthFixedWidthFont: @ 0x08005C48 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r8, r2 - movs r2, #0 - mov r1, sp - adds r1, #7 -_08005C60: - strb r2, [r1] - subs r1, #1 - cmp r1, sp - bge _08005C60 - movs r5, #0 - movs r6, #0 - adds r4, r0, #0 - movs r2, #0 -_08005C70: - adds r0, r4, r2 - ldrb r3, [r0] - adds r2, #1 - adds r0, r3, #0 - subs r0, #0xf7 - cmp r0, #8 - bhi _08005D3E - lsls r0, r0, #2 - ldr r1, _08005C88 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08005C88: .4byte _08005C8C -_08005C8C: @ jump table - .4byte _08005D38 @ case 0 - .4byte _08005D3C @ case 1 - .4byte _08005D3C @ case 2 - .4byte _08005D44 @ case 3 - .4byte _08005D44 @ case 4 - .4byte _08005CC0 @ case 5 - .4byte _08005D38 @ case 6 - .4byte _08005CB0 @ case 7 - .4byte _08005CB0 @ case 8 -_08005CB0: - mov r1, sp - adds r0, r1, r6 - strb r5, [r0] - movs r5, #0 - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - b _08005D44 -_08005CC0: - adds r0, r4, r2 - ldrb r0, [r0] - adds r2, #1 - subs r0, #1 - cmp r0, #0x15 - bhi _08005D44 - lsls r0, r0, #2 - ldr r1, _08005CD8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08005CD8: .4byte _08005CDC -_08005CDC: @ jump table - .4byte _08005D38 @ case 0 - .4byte _08005D38 @ case 1 - .4byte _08005D38 @ case 2 - .4byte _08005D34 @ case 3 - .4byte _08005D38 @ case 4 - .4byte _08005D38 @ case 5 - .4byte _08005D44 @ case 6 - .4byte _08005D38 @ case 7 - .4byte _08005D44 @ case 8 - .4byte _08005D44 @ case 9 - .4byte _08005D36 @ case 10 - .4byte _08005D38 @ case 11 - .4byte _08005D38 @ case 12 - .4byte _08005D38 @ case 13 - .4byte _08005D44 @ case 14 - .4byte _08005D36 @ case 15 - .4byte _08005D38 @ case 16 - .4byte _08005D38 @ case 17 - .4byte _08005D38 @ case 18 - .4byte _08005D38 @ case 19 - .4byte _08005D44 @ case 20 - .4byte _08005D44 @ case 21 -_08005D34: - adds r2, #1 -_08005D36: - adds r2, #1 -_08005D38: - adds r2, #1 - b _08005D44 -_08005D3C: - adds r2, #1 -_08005D3E: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_08005D44: - cmp r3, #0xff - bne _08005C70 - movs r5, #0 - movs r2, #0 -_08005D4C: - mov r1, sp - adds r0, r1, r2 - ldrb r1, [r0] - cmp r5, r1 - bhs _08005D58 - ldrb r5, [r0] -_08005D58: - adds r2, #1 - cmp r2, #7 - ble _08005D4C - adds r0, r7, #0 - movs r1, #0 - bl GetFontAttribute - add r0, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - muls r0, r5, r0 - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetStringWidthFixedWidthFont - - thumb_func_start GetFontWidthFunc -GetFontWidthFunc: @ 0x08005D7C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r3, #0 - ldr r0, _08005D94 - adds r2, r0, #4 - adds r1, r0, #0 -_08005D8A: - ldr r0, [r1] - cmp r4, r0 - bne _08005D98 - ldr r0, [r2] - b _08005DA4 - .align 2, 0 -_08005D94: .4byte gUnknown_829C640 -_08005D98: - adds r2, #8 - adds r1, #8 - adds r3, #1 - cmp r3, #5 - bls _08005D8A - movs r0, #0 -_08005DA4: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetFontWidthFunc - - thumb_func_start sub_08005DAC -sub_08005DAC: @ 0x08005DAC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r7, r0, #0 - lsls r2, r2, #0x10 - lsrs r5, r2, #0x10 - bl GetFontWidthFunc - adds r6, r0, #0 - cmp r6, #0 - bne _08005DD0 -_08005DCC: - movs r0, #0 - b _08005F6C -_08005DD0: - lsls r0, r5, #0x10 - asrs r2, r0, #0x10 - movs r1, #1 - rsbs r1, r1, #0 - mov sl, r0 - cmp r2, r1 - bne _08005DEC - adds r0, r7, #0 - movs r1, #2 - bl GetFontAttribute - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - b _08005DEE -_08005DEC: - adds r7, r2, #0 -_08005DEE: - movs r0, #0 - mov sb, r0 - mov r8, r0 - movs r5, #0 - b _08005F5A -_08005DF8: - ldrb r1, [r4] - adds r0, r1, #0 - subs r0, #0xf7 - cmp r0, #7 - bls _08005E04 - b _08005F4E -_08005E04: - lsls r0, r0, #2 - ldr r1, _08005E10 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08005E10: .4byte _08005E14 -_08005E14: @ jump table - .4byte _08005E6E @ case 0 - .4byte _08005F40 @ case 1 - .4byte _08005F40 @ case 2 - .4byte _08005F58 @ case 3 - .4byte _08005F58 @ case 4 - .4byte _08005E9A @ case 5 - .4byte _08005E42 @ case 6 - .4byte _08005E34 @ case 7 -_08005E34: - cmp r8, sb - bhi _08005E3A - b _08005F58 -_08005E3A: - mov sb, r8 - movs r2, #0 - mov r8, r2 - b _08005F58 -_08005E42: - adds r4, #1 - ldrb r0, [r4] - cmp r0, #3 - beq _08005E64 - cmp r0, #3 - bgt _08005E54 - cmp r0, #2 - beq _08005E5A - b _08005DCC -_08005E54: - cmp r0, #4 - beq _08005E6C - b _08005DCC -_08005E5A: - ldr r5, _08005E60 - b _08005E6E - .align 2, 0 -_08005E60: .4byte gUnknown_2021C40 -_08005E64: - ldr r5, _08005E68 - b _08005E6E - .align 2, 0 -_08005E68: .4byte gUnknown_2021C54 -_08005E6C: - ldr r5, _08005E80 -_08005E6E: - cmp r5, #0 - bne _08005E90 - adds r4, #1 - ldrb r0, [r4] - bl sub_081AF94C - adds r5, r0, #0 - b _08005E90 - .align 2, 0 -_08005E80: .4byte gUnknown_2021C68 -_08005E84: - ldrb r0, [r5] - bl _call_via_r6 - adds r0, r0, r7 - add r8, r0 - adds r5, #1 -_08005E90: - ldrb r0, [r5] - cmp r0, #0xff - bne _08005E84 - movs r5, #0 - b _08005F58 -_08005E9A: - adds r4, #1 - ldrb r0, [r4] - subs r0, #1 - cmp r0, #0x15 - bhi _08005F58 - lsls r0, r0, #2 - ldr r1, _08005EB0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08005EB0: .4byte _08005EB4 -_08005EB4: @ jump table - .4byte _08005F3C @ case 0 - .4byte _08005F3C @ case 1 - .4byte _08005F3C @ case 2 - .4byte _08005F0C @ case 3 - .4byte _08005F3C @ case 4 - .4byte _08005F12 @ case 5 - .4byte _08005F58 @ case 6 - .4byte _08005F3C @ case 7 - .4byte _08005F58 @ case 8 - .4byte _08005F58 @ case 9 - .4byte _08005F0E @ case 10 - .4byte _08005F3C @ case 11 - .4byte _08005F3C @ case 12 - .4byte _08005F3C @ case 13 - .4byte _08005F58 @ case 14 - .4byte _08005F0E @ case 15 - .4byte _08005F3C @ case 16 - .4byte _08005F3C @ case 17 - .4byte _08005F3C @ case 18 - .4byte _08005F3C @ case 19 - .4byte _08005F58 @ case 20 - .4byte _08005F58 @ case 21 -_08005F0C: - adds r4, #1 -_08005F0E: - adds r4, #1 - b _08005F3C -_08005F12: - adds r4, #1 - ldrb r0, [r4] - bl GetFontWidthFunc - adds r6, r0, #0 - cmp r6, #0 - bne _08005F22 - b _08005DCC -_08005F22: - mov r0, sl - asrs r1, r0, #0x10 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _08005F58 - ldrb r0, [r4] - movs r1, #2 - bl GetFontAttribute - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - b _08005F58 -_08005F3C: - adds r4, #1 - b _08005F58 -_08005F40: - adds r4, #1 - ldrb r0, [r4] - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r2, #0 - orrs r0, r1 - b _08005F50 -_08005F4E: - adds r0, r1, #0 -_08005F50: - bl _call_via_r6 - adds r0, r0, r7 - add r8, r0 -_08005F58: - adds r4, #1 -_08005F5A: - ldrb r0, [r4] - cmp r0, #0xff - beq _08005F62 - b _08005DF8 -_08005F62: - cmp r8, sb - bhi _08005F6A - mov r0, sb - b _08005F6C -_08005F6A: - mov r0, r8 -_08005F6C: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08005DAC - - thumb_func_start RenderTextFont9 -RenderTextFont9: @ 0x08005F7C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - mov sb, r0 - adds r6, r2, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp, #4] - mov r4, sp - adds r4, #1 - mov r5, sp - adds r5, #2 - mov r0, sp - adds r1, r4, #0 - adds r2, r5, #0 - bl SaveTextColors - movs r0, #1 - str r0, [sp, #8] - movs r0, #0 - str r0, [sp, #0xc] - movs r0, #3 - mov sl, r0 - movs r0, #1 - movs r1, #0 - movs r2, #3 - bl sub_080046E4 - adds r7, r6, #0 - movs r6, #0 -_08005FBE: - adds r0, r7, r6 - ldrb r0, [r0] - mov r8, r0 - adds r6, #1 - subs r0, #0xf7 - cmp r0, #8 - bhi _080060BA - lsls r0, r0, #2 - ldr r1, _08005FD8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08005FD8: .4byte _08005FDC -_08005FDC: @ jump table - .4byte _080060B2 @ case 0 - .4byte _080060B2 @ case 1 - .4byte _080060B2 @ case 2 - .4byte _080060F2 @ case 3 - .4byte _080060F2 @ case 4 - .4byte _08006000 @ case 5 - .4byte _080060B2 @ case 6 - .4byte _080060F2 @ case 7 - .4byte _080060F2 @ case 8 -_08006000: - adds r0, r7, r6 - ldrb r0, [r0] - adds r6, #1 - subs r0, #1 - cmp r0, #0x15 - bhi _080060F2 - lsls r0, r0, #2 - ldr r1, _08006018 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08006018: .4byte _0800601C -_0800601C: @ jump table - .4byte _08006086 @ case 0 - .4byte _08006090 @ case 1 - .4byte _08006098 @ case 2 - .4byte _08006074 @ case 3 - .4byte _080060B2 @ case 4 - .4byte _080060AC @ case 5 - .4byte _080060F2 @ case 6 - .4byte _080060B2 @ case 7 - .4byte _080060F2 @ case 8 - .4byte _080060F2 @ case 9 - .4byte _080060B6 @ case 10 - .4byte _080060B2 @ case 11 - .4byte _080060B2 @ case 12 - .4byte _080060B2 @ case 13 - .4byte _080060F2 @ case 14 - .4byte _080060B6 @ case 15 - .4byte _080060B2 @ case 16 - .4byte _080060B2 @ case 17 - .4byte _080060B2 @ case 18 - .4byte _080060B2 @ case 19 - .4byte _080060F2 @ case 20 - .4byte _080060F2 @ case 21 -_08006074: - adds r0, r7, r6 - ldrb r0, [r0] - str r0, [sp, #8] - adds r6, #1 - adds r0, r7, r6 - ldrb r0, [r0] - str r0, [sp, #0xc] - adds r6, #1 - b _08006098 -_08006086: - adds r0, r7, r6 - ldrb r0, [r0] - str r0, [sp, #8] - adds r6, #1 - b _080060A2 -_08006090: - adds r0, r7, r6 - ldrb r0, [r0] - str r0, [sp, #0xc] - b _0800609E -_08006098: - adds r0, r7, r6 - ldrb r0, [r0] - mov sl, r0 -_0800609E: - adds r6, #1 - ldr r0, [sp, #8] -_080060A2: - ldr r1, [sp, #0xc] - mov r2, sl - bl sub_080046E4 - b _080060F2 -_080060AC: - adds r0, r7, r6 - ldrb r0, [r0] - str r0, [sp, #4] -_080060B2: - adds r6, #1 - b _080060F2 -_080060B6: - adds r6, #1 - b _080060B2 -_080060BA: - ldr r0, [sp, #4] - cmp r0, #1 - beq _080060CC - cmp r0, #7 - bne _080060CC - mov r0, r8 - bl sub_08006640 - b _080060D2 -_080060CC: - mov r0, r8 - bl sub_08006304 -_080060D2: - ldr r4, _0800611C - ldr r5, _08006120 - adds r0, r4, #0 - mov r1, sb - adds r2, r5, #0 - bl CpuSet - adds r4, #0x40 - mov r1, sb - adds r1, #0x20 - adds r0, r4, #0 - adds r2, r5, #0 - bl CpuSet - movs r0, #0x40 - add sb, r0 -_080060F2: - mov r0, r8 - cmp r0, #0xff - beq _080060FA - b _08005FBE -_080060FA: - mov r0, sp - mov r1, sp - adds r1, #1 - mov r2, sp - adds r2, #2 - bl RestoreTextColors - movs r0, #1 - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0800611C: .4byte gUnknown_3003030 -_08006120: .4byte 0x04000008 - thumb_func_end RenderTextFont9 - - thumb_func_start DrawKeypadIcon -DrawKeypadIcon: @ 0x08006124 - push {r4, r5, lr} - sub sp, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - ldr r4, _0800616C - lsrs r1, r1, #0x16 - adds r1, r1, r4 - ldrh r5, [r1] - lsls r5, r5, #5 - ldr r4, _08006170 - adds r5, r5, r4 - movs r4, #0x80 - str r4, [sp] - str r4, [sp, #4] - str r2, [sp, #8] - str r3, [sp, #0xc] - ldrb r4, [r1, #2] - str r4, [sp, #0x10] - ldrb r1, [r1, #3] - str r1, [sp, #0x14] - adds r1, r5, #0 - movs r2, #0 - movs r3, #0 - bl BlitBitmapRectToWindow - adds r0, r4, #0 - add sp, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0800616C: .4byte gUnknown_829C670 -_08006170: .4byte gUnknown_829C6A4 - thumb_func_end DrawKeypadIcon - - thumb_func_start GetKeypadIconTileOffset -GetKeypadIconTileOffset: @ 0x08006174 - lsls r0, r0, #0x18 - ldr r1, _08006180 - lsrs r0, r0, #0x16 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08006180: .4byte gUnknown_829C670 - thumb_func_end GetKeypadIconTileOffset - - thumb_func_start GetKeypadIconWidth -GetKeypadIconWidth: @ 0x08006184 - lsls r0, r0, #0x18 - ldr r1, _08006190 - lsrs r0, r0, #0x16 - adds r0, r0, r1 - ldrb r0, [r0, #2] - bx lr - .align 2, 0 -_08006190: .4byte gUnknown_829C670 - thumb_func_end GetKeypadIconWidth - - thumb_func_start GetKeypadIconHeight -GetKeypadIconHeight: @ 0x08006194 - lsls r0, r0, #0x18 - ldr r1, _080061A0 - lsrs r0, r0, #0x16 - adds r0, r0, r1 - ldrb r0, [r0, #3] - bx lr - .align 2, 0 -_080061A0: .4byte gUnknown_829C670 - thumb_func_end GetKeypadIconHeight - - thumb_func_start SetDefaultFontsPointer -SetDefaultFontsPointer: @ 0x080061A4 - push {lr} - ldr r0, _080061B0 - bl sub_08004474 - pop {r0} - bx r0 - .align 2, 0 -_080061B0: .4byte gUnknown_829CEA4 - thumb_func_end SetDefaultFontsPointer - - thumb_func_start GetFontAttribute -GetFontAttribute: @ 0x080061B4 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0 - cmp r1, #7 - bhi _08006292 - lsls r0, r1, #2 - ldr r1, _080061D0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080061D0: .4byte _080061D4 -_080061D4: @ jump table - .4byte _080061F4 @ case 0 - .4byte _08006208 @ case 1 - .4byte _0800621C @ case 2 - .4byte _08006230 @ case 3 - .4byte _08006244 @ case 4 - .4byte _08006258 @ case 5 - .4byte _0800626C @ case 6 - .4byte _08006284 @ case 7 -_080061F4: - ldr r1, _08006204 - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #4] - b _08006292 - .align 2, 0 -_08006204: .4byte gUnknown_829CEA4 -_08006208: - ldr r1, _08006218 - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #5] - b _08006292 - .align 2, 0 -_08006218: .4byte gUnknown_829CEA4 -_0800621C: - ldr r1, _0800622C - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #6] - b _08006292 - .align 2, 0 -_0800622C: .4byte gUnknown_829CEA4 -_08006230: - ldr r1, _08006240 - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #7] - b _08006292 - .align 2, 0 -_08006240: .4byte gUnknown_829CEA4 -_08006244: - ldr r0, _08006254 - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #8] - b _08006278 - .align 2, 0 -_08006254: .4byte gUnknown_829CEA4 -_08006258: - ldr r0, _08006268 - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #8] - b _08006290 - .align 2, 0 -_08006268: .4byte gUnknown_829CEA4 -_0800626C: - ldr r0, _08006280 - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #9] -_08006278: - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - b _08006292 - .align 2, 0 -_08006280: .4byte gUnknown_829CEA4 -_08006284: - ldr r0, _08006298 - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #9] -_08006290: - lsrs r0, r0, #4 -_08006292: - pop {r1} - bx r1 - .align 2, 0 -_08006298: .4byte gUnknown_829CEA4 - thumb_func_end GetFontAttribute - - thumb_func_start sub_0800629C -sub_0800629C: @ 0x0800629C - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _080062B0 - lsrs r0, r0, #0x17 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - bx lr - .align 2, 0 -_080062B0: .4byte gUnknown_829CF04 - thumb_func_end sub_0800629C - - thumb_func_start DecompressGlyphFont9 -DecompressGlyphFont9: @ 0x080062B4 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x14 - lsls r4, r4, #9 - movs r1, #0xf0 - lsls r1, r1, #0xc - ands r1, r0 - lsrs r1, r1, #0xc - ldr r0, _080062F8 - adds r1, r1, r0 - adds r4, r4, r1 - ldr r5, _080062FC - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080047C8 - movs r0, #0x80 - lsls r0, r0, #1 - adds r4, r4, r0 - adds r1, r5, #0 - adds r1, #0x40 - adds r0, r4, #0 - bl sub_080047C8 - adds r1, r5, #0 - adds r1, #0x80 - movs r0, #8 - strb r0, [r1] - adds r5, #0x81 - movs r0, #0xc - strb r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080062F8: .4byte gUnknown_829CF14 -_080062FC: .4byte gUnknown_3003030 - thumb_func_end DecompressGlyphFont9 - - thumb_func_start sub_08006300 -sub_08006300: @ 0x08006300 - movs r0, #8 - bx lr - thumb_func_end sub_08006300 - - thumb_func_start sub_08006304 -sub_08006304: @ 0x08006304 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x14 - lsls r4, r4, #9 - movs r1, #0xf0 - lsls r1, r1, #0xc - ands r1, r0 - lsrs r1, r1, #0xc - ldr r0, _08006348 - adds r1, r1, r0 - adds r4, r4, r1 - ldr r5, _0800634C - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080047C8 - movs r0, #0x80 - lsls r0, r0, #1 - adds r4, r4, r0 - adds r1, r5, #0 - adds r1, #0x40 - adds r0, r4, #0 - bl sub_080047C8 - adds r1, r5, #0 - adds r1, #0x80 - movs r0, #8 - strb r0, [r1] - adds r5, #0x81 - movs r0, #0x10 - strb r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08006348: .4byte gUnknown_82A0F14 -_0800634C: .4byte gUnknown_3003030 - thumb_func_end sub_08006304 - - thumb_func_start sub_08006350 -sub_08006350: @ 0x08006350 - movs r0, #8 - bx lr - thumb_func_end sub_08006350 - - thumb_func_start ether_effect_related -ether_effect_related: @ 0x08006354 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0 - bne _08006390 - movs r0, #2 - bl GetLastTextColor - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - ldr r3, _0800638C - lsls r2, r0, #4 - orrs r2, r0 - adds r7, r3, #0 - adds r7, #0x80 - movs r6, #0xa - adds r5, r3, #0 - adds r5, #0x81 - movs r4, #0xc -_0800637C: - adds r0, r1, r3 - strb r2, [r0] - strb r6, [r7] - strb r4, [r5] - adds r1, #1 - cmp r1, #0x7f - ble _0800637C - b _080063E6 - .align 2, 0 -_0800638C: .4byte gUnknown_3003030 -_08006390: - lsrs r2, r0, #0x13 - lsls r2, r2, #9 - movs r0, #7 - ands r0, r6 - lsls r0, r0, #5 - ldr r1, _080063EC - adds r0, r0, r1 - adds r4, r2, r0 - ldr r5, _080063F0 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080047C8 - adds r0, r4, #0 - adds r0, #0x10 - adds r1, r5, #0 - adds r1, #0x20 - bl sub_080047C8 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r4, r1 - adds r1, r5, #0 - adds r1, #0x40 - bl sub_080047C8 - movs r1, #0x88 - lsls r1, r1, #1 - adds r0, r4, r1 - adds r1, r5, #0 - adds r1, #0x60 - bl sub_080047C8 - ldr r0, _080063F4 - adds r0, r6, r0 - ldrb r1, [r0] - adds r0, r5, #0 - adds r0, #0x80 - strb r1, [r0] - adds r1, r5, #0 - adds r1, #0x81 - movs r0, #0xc - strb r0, [r1] -_080063E6: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080063EC: .4byte gUnknown_82A4F14 -_080063F0: .4byte gUnknown_3003030 -_080063F4: .4byte gUnknown_82ACF14 - thumb_func_end ether_effect_related - - thumb_func_start sub_080063F8 -sub_080063F8: @ 0x080063F8 - push {lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - beq _08006410 - ldr r0, _0800640C - adds r0, r1, r0 - ldrb r0, [r0] - b _08006412 - .align 2, 0 -_0800640C: .4byte gUnknown_82ACF14 -_08006410: - movs r0, #0xa -_08006412: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080063F8 - - thumb_func_start sub_08006418 -sub_08006418: @ 0x08006418 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - bne _08006454 - movs r0, #2 - bl GetLastTextColor - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - ldr r3, _08006450 - lsls r2, r0, #4 - orrs r2, r0 - adds r7, r3, #0 - adds r7, #0x80 - movs r6, #0xa - adds r5, r3, #0 - adds r5, #0x81 - movs r4, #0xc -_08006440: - adds r0, r1, r3 - strb r2, [r0] - strb r6, [r7] - strb r4, [r5] - adds r1, #1 - cmp r1, #0x7f - ble _08006440 - b _080064A4 - .align 2, 0 -_08006450: .4byte gUnknown_3003030 -_08006454: - lsrs r2, r0, #0x13 - lsls r2, r2, #9 - movs r0, #7 - ands r0, r1 - lsls r0, r0, #5 - ldr r1, _080064AC - adds r0, r0, r1 - adds r5, r2, r0 - ldr r4, _080064B0 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080047C8 - adds r0, r5, #0 - adds r0, #0x10 - adds r1, r4, #0 - adds r1, #0x20 - bl sub_080047C8 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r5, r1 - adds r1, r4, #0 - adds r1, #0x40 - bl sub_080047C8 - movs r1, #0x88 - lsls r1, r1, #1 - adds r0, r5, r1 - adds r1, r4, #0 - adds r1, #0x60 - bl sub_080047C8 - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #0xa - strb r0, [r1] - adds r1, #1 - movs r0, #0xc - strb r0, [r1] -_080064A4: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080064AC: .4byte gUnknown_82A4F14 -_080064B0: .4byte gUnknown_3003030 - thumb_func_end sub_08006418 - - thumb_func_start sub_080064B4 -sub_080064B4: @ 0x080064B4 - movs r0, #0xa - bx lr - thumb_func_end sub_080064B4 - - thumb_func_start sub_080064B8 -sub_080064B8: @ 0x080064B8 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0 - bne _080064F4 - movs r0, #2 - bl GetLastTextColor - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - ldr r3, _080064F0 - lsls r2, r0, #4 - orrs r2, r0 - adds r7, r3, #0 - adds r7, #0x80 - movs r6, #0xa - adds r5, r3, #0 - adds r5, #0x81 - movs r4, #0xc -_080064E0: - adds r0, r1, r3 - strb r2, [r0] - strb r6, [r7] - strb r4, [r5] - adds r1, #1 - cmp r1, #0x7f - ble _080064E0 - b _0800654A - .align 2, 0 -_080064F0: .4byte gUnknown_3003030 -_080064F4: - lsrs r2, r0, #0x13 - lsls r2, r2, #9 - movs r0, #7 - ands r0, r6 - lsls r0, r0, #5 - ldr r1, _08006550 - adds r0, r0, r1 - adds r4, r2, r0 - ldr r5, _08006554 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080047C8 - adds r0, r4, #0 - adds r0, #0x10 - adds r1, r5, #0 - adds r1, #0x20 - bl sub_080047C8 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r4, r1 - adds r1, r5, #0 - adds r1, #0x40 - bl sub_080047C8 - movs r1, #0x88 - lsls r1, r1, #1 - adds r0, r4, r1 - adds r1, r5, #0 - adds r1, #0x60 - bl sub_080047C8 - ldr r0, _08006558 - adds r0, r6, r0 - ldrb r1, [r0] - adds r0, r5, #0 - adds r0, #0x80 - strb r1, [r0] - adds r1, r5, #0 - adds r1, #0x81 - movs r0, #0xc - strb r0, [r1] -_0800654A: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08006550: .4byte gUnknown_82AD02C -_08006554: .4byte gUnknown_3003030 -_08006558: .4byte gUnknown_82B502C - thumb_func_end sub_080064B8 - - thumb_func_start sub_0800655C -sub_0800655C: @ 0x0800655C - push {lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - beq _08006574 - ldr r0, _08006570 - adds r0, r1, r0 - ldrb r0, [r0] - b _08006576 - .align 2, 0 -_08006570: .4byte gUnknown_82B502C -_08006574: - movs r0, #0xa -_08006576: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0800655C - - thumb_func_start sub_0800657C -sub_0800657C: @ 0x0800657C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0 - bne _080065B8 - movs r0, #2 - bl GetLastTextColor - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - ldr r3, _080065B4 - lsls r2, r0, #4 - orrs r2, r0 - adds r7, r3, #0 - adds r7, #0x80 - movs r6, #0xa - adds r5, r3, #0 - adds r5, #0x81 - movs r4, #0xc -_080065A4: - adds r0, r1, r3 - strb r2, [r0] - strb r6, [r7] - strb r4, [r5] - adds r1, #1 - cmp r1, #0x7f - ble _080065A4 - b _0800660E - .align 2, 0 -_080065B4: .4byte gUnknown_3003030 -_080065B8: - lsrs r2, r0, #0x13 - lsls r2, r2, #9 - movs r0, #7 - ands r0, r6 - lsls r0, r0, #5 - ldr r1, _08006614 - adds r0, r0, r1 - adds r4, r2, r0 - ldr r5, _08006618 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080047C8 - adds r0, r4, #0 - adds r0, #0x10 - adds r1, r5, #0 - adds r1, #0x20 - bl sub_080047C8 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r4, r1 - adds r1, r5, #0 - adds r1, #0x40 - bl sub_080047C8 - movs r1, #0x88 - lsls r1, r1, #1 - adds r0, r4, r1 - adds r1, r5, #0 - adds r1, #0x60 - bl sub_080047C8 - ldr r0, _0800661C - adds r0, r6, r0 - ldrb r1, [r0] - adds r0, r5, #0 - adds r0, #0x80 - strb r1, [r0] - adds r1, r5, #0 - adds r1, #0x81 - movs r0, #0xc - strb r0, [r1] -_0800660E: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08006614: .4byte gUnknown_82B5144 -_08006618: .4byte gUnknown_3003030 -_0800661C: .4byte gUnknown_82BD144 - thumb_func_end sub_0800657C - - thumb_func_start sub_08006620 -sub_08006620: @ 0x08006620 - push {lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - beq _08006638 - ldr r0, _08006634 - adds r0, r1, r0 - ldrb r0, [r0] - b _0800663A - .align 2, 0 -_08006634: .4byte gUnknown_82BD144 -_08006638: - movs r0, #0xa -_0800663A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08006620 - - thumb_func_start sub_08006640 -sub_08006640: @ 0x08006640 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x14 - lsls r4, r4, #9 - movs r1, #0xf0 - lsls r1, r1, #0xc - ands r1, r0 - lsrs r1, r1, #0xc - ldr r0, _08006684 - adds r1, r1, r0 - adds r4, r4, r1 - ldr r5, _08006688 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080047C8 - movs r0, #0x80 - lsls r0, r0, #1 - adds r4, r4, r0 - adds r1, r5, #0 - adds r1, #0x40 - adds r0, r4, #0 - bl sub_080047C8 - adds r1, r5, #0 - adds r1, #0x80 - movs r0, #8 - strb r0, [r1] - adds r5, #0x81 - movs r0, #0xc - strb r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08006684: .4byte gUnknown_82BD25C -_08006688: .4byte gUnknown_3003030 - thumb_func_end sub_08006640 - - thumb_func_start ResetSpriteData -ResetSpriteData: @ 0x0800668C - push {r4, lr} - movs r0, #0 - movs r1, #0x80 - bl ResetOamRange - bl ResetAllSprites - bl ClearSpriteCopyRequests - bl ResetAffineAnimData - bl FreeSpriteTileRanges - ldr r1, _080066C8 - movs r0, #0x40 - strb r0, [r1] - ldr r0, _080066CC - movs r4, #0 - strh r4, [r0] - movs r0, #0 - bl AllocSpriteTiles - ldr r0, _080066D0 - strh r4, [r0] - ldr r0, _080066D4 - strh r4, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080066C8: .4byte gUnknown_2021AB4 -_080066CC: .4byte gUnknown_2021AB6 -_080066D0: .4byte gUnknown_2021B38 -_080066D4: .4byte gUnknown_2021B3A - thumb_func_end ResetSpriteData - - thumb_func_start AnimateSprites -AnimateSprites: @ 0x080066D8 - push {r4, r5, r6, r7, lr} - movs r6, #0 - movs r7, #1 -_080066DE: - lsls r0, r6, #4 - adds r0, r0, r6 - lsls r0, r0, #2 - ldr r1, _08006720 - adds r4, r0, r1 - adds r5, r4, #0 - adds r5, #0x3e - ldrb r1, [r5] - adds r0, r7, #0 - ands r0, r1 - cmp r0, #0 - beq _0800670E - ldr r1, [r4, #0x1c] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r1, [r5] - adds r0, r7, #0 - ands r0, r1 - cmp r0, #0 - beq _0800670E - adds r0, r4, #0 - bl AnimateSprite -_0800670E: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0x3f - bls _080066DE - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08006720: .4byte gUnknown_20205AC - thumb_func_end AnimateSprites - - thumb_func_start BuildOamBuffer -BuildOamBuffer: @ 0x08006724 - push {r4, r5, lr} - bl UpdateOamCoords - bl BuildSpritePriorities - bl SortSprites - ldr r5, _08006764 - ldr r0, _08006768 - adds r5, r5, r0 - ldrb r0, [r5] - lsls r4, r0, #0x1f - lsrs r4, r4, #0x1f - movs r1, #1 - orrs r0, r1 - strb r0, [r5] - bl AddSpritesToOamBuffer - bl CopyMatricesToOamBuffer - movs r2, #1 - ldrb r1, [r5] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r1 - orrs r4, r0 - strb r4, [r5] - ldr r0, _0800676C - strb r2, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08006764: .4byte gUnknown_3002360 -_08006768: .4byte 0x00000439 -_0800676C: .4byte gUnknown_20217B0 - thumb_func_end BuildOamBuffer - - thumb_func_start UpdateOamCoords -UpdateOamCoords: @ 0x08006770 - push {r4, r5, r6, r7, lr} - movs r4, #0 - ldr r7, _080067DC - ldr r0, _080067E0 - adds r5, r0, #0 - ldr r6, _080067E4 -_0800677C: - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r3, r0, r7 - adds r0, r3, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r0, #5 - ands r0, r1 - cmp r0, #1 - bne _08006822 - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080067F0 - movs r2, #0x20 - ldrsh r1, [r3, r2] - movs r2, #0x24 - ldrsh r0, [r3, r2] - adds r1, r1, r0 - adds r0, r3, #0 - adds r0, #0x28 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r1, r1, r0 - ldr r0, _080067E8 - movs r2, #0 - ldrsh r0, [r0, r2] - adds r1, r1, r0 - ands r1, r5 - ldrh r2, [r3, #2] - adds r0, r6, #0 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, #2] - ldrh r1, [r3, #0x26] - ldrh r0, [r3, #0x22] - adds r1, r1, r0 - adds r0, r3, #0 - adds r0, #0x29 - ldrb r0, [r0] - ldr r2, _080067EC - adds r0, r0, r1 - ldrb r2, [r2] - adds r0, r0, r2 - b _08006820 - .align 2, 0 -_080067DC: .4byte gUnknown_20205AC -_080067E0: .4byte 0x000001FF -_080067E4: .4byte 0xFFFFFE00 -_080067E8: .4byte gUnknown_2021B38 -_080067EC: .4byte gUnknown_2021B3A -_080067F0: - movs r2, #0x20 - ldrsh r1, [r3, r2] - movs r2, #0x24 - ldrsh r0, [r3, r2] - adds r1, r1, r0 - adds r0, r3, #0 - adds r0, #0x28 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r1, r1, r0 - ands r1, r5 - ldrh r2, [r3, #2] - adds r0, r6, #0 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, #2] - ldrh r1, [r3, #0x26] - ldrh r0, [r3, #0x22] - adds r1, r1, r0 - adds r0, r3, #0 - adds r0, #0x29 - ldrb r0, [r0] - adds r0, r0, r1 -_08006820: - strb r0, [r3] -_08006822: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x3f - bls _0800677C - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end UpdateOamCoords - - thumb_func_start BuildSpritePriorities -BuildSpritePriorities: @ 0x08006834 - push {r4, lr} - movs r2, #0 - ldr r4, _0800686C - ldr r3, _08006870 -_0800683C: - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r1, r0, #0 - adds r1, #0x43 - ldrb r1, [r1] - ldrb r0, [r0, #5] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1e - lsls r0, r0, #8 - orrs r1, r0 - lsls r0, r2, #1 - adds r0, r0, r3 - strh r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0x3f - bls _0800683C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800686C: .4byte gUnknown_20205AC -_08006870: .4byte gUnknown_20216F0 - thumb_func_end BuildSpritePriorities - - thumb_func_start SortSprites -SortSprites: @ 0x08006874 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - movs r0, #1 - mov ip, r0 - ldr r1, _0800693C - mov sl, r1 - ldr r3, _08006940 - mov sb, r3 - ldr r6, _08006944 - mov r8, r6 -_08006890: - mov r5, ip - mov r0, ip - subs r0, #1 - add r0, sl - ldrb r2, [r0] - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r7, _08006948 - adds r3, r0, r7 - mov r0, ip - add r0, sl - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, r0, r7 - lsls r2, r2, #1 - ldr r0, _0800694C - adds r2, r2, r0 - ldrh r2, [r2] - str r2, [sp] - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r6, [r1] - ldrb r1, [r3] - ldrb r2, [r4] - adds r0, r1, #0 - cmp r0, #0x9f - ble _080068D2 - add r0, sb - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 -_080068D2: - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x9f - ble _080068E0 - add r0, sb - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 -_080068E0: - ldr r0, [r3] - mov r7, r8 - ands r0, r7 - cmp r0, r8 - bne _08006904 - ldrb r0, [r3, #1] - lsrs r0, r0, #6 - cmp r0, #0 - beq _080068F6 - cmp r0, #2 - bne _08006904 -_080068F6: - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x80 - ble _08006904 - add r0, sb - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 -_08006904: - ldr r0, [r4] - mov r3, r8 - ands r0, r3 - cmp r0, r8 - bne _08006928 - ldrb r0, [r4, #1] - lsrs r0, r0, #6 - cmp r0, #0 - beq _0800691A - cmp r0, #2 - bne _08006928 -_0800691A: - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x80 - ble _08006928 - add r0, sb - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 -_08006928: - movs r7, #1 - add ip, r7 - cmp r5, #0 - beq _08006A0E - ldr r0, [sp] - cmp r0, r6 - bhi _08006950 - cmp r0, r6 - bne _08006A0E - b _08006A06 - .align 2, 0 -_0800693C: .4byte gUnknown_2021770 -_08006940: .4byte 0xFFFFFF00 -_08006944: .4byte 0xC0000300 -_08006948: .4byte gUnknown_20205AC -_0800694C: .4byte gUnknown_20216F0 -_08006950: - mov r1, sl - adds r3, r5, r1 - ldrb r4, [r3] - subs r2, r5, #1 - adds r1, r2, r1 - ldrb r0, [r1] - strb r0, [r3] - strb r4, [r1] - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - subs r0, r5, #1 - add r0, sl - ldrb r2, [r0] - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r6, _08006A2C - adds r3, r0, r6 - mov r7, sl - adds r0, r5, r7 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, r0, r6 - lsls r2, r2, #1 - ldr r0, _08006A30 - adds r2, r2, r0 - ldrh r2, [r2] - str r2, [sp] - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r6, [r1] - ldrb r1, [r3] - ldrb r2, [r4] - adds r0, r1, #0 - cmp r0, #0x9f - ble _080069A2 - add r0, sb - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 -_080069A2: - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x9f - ble _080069B0 - add r0, sb - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 -_080069B0: - ldr r0, [r3] - mov r7, r8 - ands r0, r7 - cmp r0, r8 - bne _080069D4 - ldrb r0, [r3, #1] - lsrs r0, r0, #6 - cmp r0, #0 - beq _080069C6 - cmp r0, #2 - bne _080069D4 -_080069C6: - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x80 - ble _080069D4 - add r0, sb - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 -_080069D4: - ldr r0, [r4] - mov r3, r8 - ands r0, r3 - cmp r0, r8 - bne _080069F8 - ldrb r0, [r4, #1] - lsrs r0, r0, #6 - cmp r0, #0 - beq _080069EA - cmp r0, #2 - bne _080069F8 -_080069EA: - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x80 - ble _080069F8 - add r0, sb - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 -_080069F8: - cmp r5, #0 - beq _08006A0E - ldr r7, [sp] - cmp r7, r6 - bhi _08006950 - cmp r7, r6 - bne _08006A0E -_08006A06: - lsls r1, r1, #0x10 - lsls r0, r2, #0x10 - cmp r1, r0 - blt _08006950 -_08006A0E: - mov r1, ip - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - mov ip, r0 - cmp r0, #0x3f - bhi _08006A1C - b _08006890 -_08006A1C: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08006A2C: .4byte gUnknown_20205AC -_08006A30: .4byte gUnknown_20216F0 - thumb_func_end SortSprites - - thumb_func_start CopyMatricesToOamBuffer -CopyMatricesToOamBuffer: @ 0x08006A34 - push {r4, r5, r6, lr} - movs r4, #0 - ldr r5, _08006A78 - ldr r6, _08006A7C -_08006A3C: - lsls r2, r4, #2 - lsls r1, r4, #5 - adds r1, r1, r5 - lsls r3, r4, #3 - adds r3, r3, r6 - ldrh r0, [r3] - strh r0, [r1, #0x3e] - adds r0, r2, #1 - lsls r0, r0, #3 - adds r0, r0, r5 - ldrh r1, [r3, #2] - strh r1, [r0, #0x3e] - adds r0, r2, #2 - lsls r0, r0, #3 - adds r0, r0, r5 - ldrh r1, [r3, #4] - strh r1, [r0, #0x3e] - adds r2, #3 - lsls r2, r2, #3 - adds r2, r2, r5 - ldrh r0, [r3, #6] - strh r0, [r2, #0x3e] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x1f - bls _08006A3C - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08006A78: .4byte gUnknown_3002360 -_08006A7C: .4byte gUnknown_2021B3C - thumb_func_end CopyMatricesToOamBuffer - - thumb_func_start AddSpritesToOamBuffer -AddSpritesToOamBuffer: @ 0x08006A80 - push {r4, r5, r6, lr} - sub sp, #4 - movs r4, #0 - mov r0, sp - strb r4, [r0] -_08006A8A: - ldr r0, _08006AF8 - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08006AFC - adds r2, r0, r1 - adds r0, r2, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r0, #5 - ands r0, r1 - cmp r0, #1 - bne _08006AB6 - adds r0, r2, #0 - mov r1, sp - bl AddSpriteToOamBuffer - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08006AF0 -_08006AB6: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x3f - bls _08006A8A - mov r0, sp - ldr r4, _08006B00 - ldrb r0, [r0] - ldrb r1, [r4] - cmp r0, r1 - bhs _08006AF0 - mov r1, sp - ldr r5, _08006B04 - ldr r0, _08006B08 - ldr r2, [r0] - ldr r3, [r0, #4] -_08006AD6: - ldrb r0, [r1] - lsls r0, r0, #3 - adds r0, r0, r5 - str r2, [r0] - str r3, [r0, #4] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r6, [r4] - cmp r0, r6 - blo _08006AD6 -_08006AF0: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08006AF8: .4byte gUnknown_2021770 -_08006AFC: .4byte gUnknown_20205AC -_08006B00: .4byte gUnknown_2021AB4 -_08006B04: .4byte gUnknown_3002398 -_08006B08: .4byte gUnknown_82BF2F8 - thumb_func_end AddSpritesToOamBuffer - - thumb_func_start CreateSprite -CreateSprite: @ 0x08006B0C - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r7, r0, #0 - lsls r3, r3, #0x18 - lsrs r4, r3, #0x18 - movs r3, #0 - ldr r0, _08006B48 - mov ip, r0 - lsls r5, r1, #0x10 - lsls r6, r2, #0x10 -_08006B20: - lsls r0, r3, #4 - adds r0, r0, r3 - lsls r0, r0, #2 - add r0, ip - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1f - cmp r0, #0 - bne _08006B4C - str r4, [sp] - adds r0, r3, #0 - adds r1, r7, #0 - asrs r2, r5, #0x10 - asrs r3, r6, #0x10 - bl CreateSpriteAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _08006B58 - .align 2, 0 -_08006B48: .4byte gUnknown_20205AC -_08006B4C: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0x3f - bls _08006B20 - movs r0, #0x40 -_08006B58: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end CreateSprite - - thumb_func_start CreateSpriteAtEnd -CreateSpriteAtEnd: @ 0x08006B60 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r7, r0, #0 - lsls r3, r3, #0x18 - lsrs r6, r3, #0x18 - movs r3, #0x3f - ldr r0, _08006BAC - mov r8, r0 - movs r0, #1 - rsbs r0, r0, #0 - mov ip, r0 - lsls r4, r1, #0x10 - lsls r5, r2, #0x10 -_08006B7E: - lsls r0, r3, #0x10 - asrs r1, r0, #0x10 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1f - cmp r0, #0 - bne _08006BB0 - lsls r0, r3, #0x18 - lsrs r0, r0, #0x18 - str r6, [sp] - adds r1, r7, #0 - asrs r2, r4, #0x10 - asrs r3, r5, #0x10 - bl CreateSpriteAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _08006BBE - .align 2, 0 -_08006BAC: .4byte gUnknown_20205AC -_08006BB0: - subs r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, ip - bgt _08006B7E - movs r0, #0x40 -_08006BBE: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CreateSpriteAtEnd - - thumb_func_start CreateInvisibleSprite -CreateInvisibleSprite: @ 0x08006BCC - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r0, _08006C04 - movs r1, #0 - movs r2, #0 - movs r3, #0x1f - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0x40 - beq _08006C0C - ldr r4, _08006C08 - lsls r1, r5, #4 - adds r1, r1, r5 - lsls r1, r1, #2 - adds r2, r1, r4 - adds r2, #0x3e - ldrb r0, [r2] - movs r3, #4 - orrs r0, r3 - strb r0, [r2] - adds r4, #0x1c - adds r1, r1, r4 - str r6, [r1] - adds r0, r5, #0 - b _08006C0E - .align 2, 0 -_08006C04: .4byte gUnknown_82BF314 -_08006C08: .4byte gUnknown_20205AC -_08006C0C: - movs r0, #0x40 -_08006C0E: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end CreateInvisibleSprite - - thumb_func_start CreateSpriteAt -CreateSpriteAt: @ 0x08006C14 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov r8, r1 - adds r5, r2, #0 - adds r6, r3, #0 - ldr r4, [sp, #0x20] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r0, #4 - add r0, sl - lsls r0, r0, #2 - ldr r1, _08006CD8 - adds r7, r0, r1 - adds r0, r7, #0 - bl ResetSprite - adds r2, r7, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x3f - adds r0, r0, r7 - mov sb, r0 - ldrb r0, [r0] - movs r1, #4 - orrs r0, r1 - movs r1, #8 - orrs r0, r1 - movs r1, #0x40 - orrs r0, r1 - mov r1, sb - strb r0, [r1] - adds r0, r7, #0 - adds r0, #0x43 - strb r4, [r0] - mov r1, r8 - ldr r0, [r1, #4] - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [r7] - str r1, [r7, #4] - mov r1, r8 - ldr r0, [r1, #8] - str r0, [r7, #8] - ldr r0, [r1, #0x10] - str r0, [r7, #0x10] - str r1, [r7, #0x14] - ldr r0, [r1, #0x14] - str r0, [r7, #0x1c] - strh r5, [r7, #0x20] - strh r6, [r7, #0x22] - ldrb r3, [r7, #1] - lsrs r1, r3, #6 - ldrb r2, [r7, #3] - lsrs r2, r2, #6 - lsls r3, r3, #0x1e - lsrs r3, r3, #0x1e - adds r0, r7, #0 - bl CalcCenterToCornerVec - mov r0, r8 - ldrh r1, [r0] - ldr r4, _08006CDC - lsrs r0, r4, #0x10 - cmp r1, r0 - bne _08006D10 - mov r1, r8 - ldr r0, [r1, #0xc] - str r0, [r7, #0xc] - ldrh r0, [r0, #4] - lsrs r0, r0, #5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl AllocSpriteTiles - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - asrs r0, r0, #0x10 - asrs r1, r4, #0x10 - cmp r0, r1 - bne _08006CE0 - adds r0, r7, #0 - bl ResetSprite - movs r0, #0x40 - b _08006D58 - .align 2, 0 -_08006CD8: .4byte gUnknown_20205AC -_08006CDC: .4byte 0xFFFF0000 -_08006CE0: - ldr r1, _08006D08 - adds r0, r1, #0 - ands r2, r0 - ldrh r1, [r7, #4] - ldr r0, _08006D0C - ands r0, r1 - orrs r0, r2 - strh r0, [r7, #4] - mov r0, sb - ldrb r1, [r0] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - mov r1, sb - strb r0, [r1] - adds r1, r7, #0 - adds r1, #0x40 - movs r0, #0 - strh r0, [r1] - b _08006D24 - .align 2, 0 -_08006D08: .4byte 0x000003FF -_08006D0C: .4byte 0xFFFFFC00 -_08006D10: - mov r1, r8 - ldrh r0, [r1] - bl GetSpriteTileStartByTag - adds r1, r7, #0 - adds r1, #0x40 - strh r0, [r1] - adds r0, r7, #0 - bl SetSpriteSheetFrameTileNum -_08006D24: - ldrb r0, [r7, #1] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08006D38 - adds r0, r7, #0 - bl InitSpriteAffineAnim -_08006D38: - mov r0, r8 - ldrh r1, [r0, #2] - ldr r0, _08006D68 - cmp r1, r0 - beq _08006D56 - mov r1, r8 - ldrh r0, [r1, #2] - bl IndexOfSpritePaletteTag - lsls r0, r0, #4 - ldrb r2, [r7, #5] - movs r1, #0xf - ands r1, r2 - orrs r1, r0 - strb r1, [r7, #5] -_08006D56: - mov r0, sl -_08006D58: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08006D68: .4byte 0x0000FFFF - thumb_func_end CreateSpriteAt - - thumb_func_start CreateSpriteAndAnimate -CreateSpriteAndAnimate: @ 0x08006D6C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov sl, r0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov sb, r3 - movs r3, #0 - ldr r5, _08006DDC - lsls r1, r1, #0x10 - mov ip, r1 - lsls r2, r2, #0x10 - mov r8, r2 -_08006D8C: - lsls r0, r3, #4 - adds r0, r0, r3 - lsls r6, r0, #2 - adds r4, r6, r5 - adds r7, r4, #0 - adds r7, #0x3e - ldrb r0, [r7] - lsls r0, r0, #0x1f - cmp r0, #0 - bne _08006DE4 - mov r0, sb - str r0, [sp] - adds r0, r3, #0 - mov r1, sl - mov r3, ip - asrs r2, r3, #0x10 - mov r5, r8 - asrs r3, r5, #0x10 - bl CreateSpriteAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - cmp r5, #0x40 - beq _08006DEE - ldr r1, _08006DE0 - adds r0, r6, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r7] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _08006DD8 - adds r0, r4, #0 - bl AnimateSprite -_08006DD8: - adds r0, r5, #0 - b _08006DF0 - .align 2, 0 -_08006DDC: .4byte gUnknown_20205AC -_08006DE0: .4byte gUnknown_20205C8 -_08006DE4: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0x3f - bls _08006D8C -_08006DEE: - movs r0, #0x40 -_08006DF0: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end CreateSpriteAndAnimate - - thumb_func_start DestroySprite -DestroySprite: @ 0x08006E00 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08006E5C - adds r0, r5, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08006E56 - ldr r0, [r5, #0xc] - ldrh r2, [r0, #4] - lsrs r2, r2, #5 - ldrh r0, [r5, #4] - lsls r0, r0, #0x16 - lsrs r1, r0, #0x16 - adds r4, r1, r2 - adds r3, r1, #0 - cmp r3, r4 - bhs _08006E56 - ldr r0, _08006E64 - mov ip, r0 - movs r6, #7 - movs r7, #1 -_08006E3A: - lsrs r2, r3, #3 - add r2, ip - adds r0, r3, #0 - ands r0, r6 - adds r1, r7, #0 - lsls r1, r0 - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, r4 - blo _08006E3A -_08006E56: - adds r0, r5, #0 - bl ResetSprite -_08006E5C: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08006E64: .4byte gUnknown_2021AB8 - thumb_func_end DestroySprite - - thumb_func_start ResetOamRange -ResetOamRange: @ 0x08006E68 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - lsrs r3, r0, #0x18 - cmp r3, r4 - bhs _08006E90 - ldr r6, _08006E98 - ldr r5, _08006E9C -_08006E7A: - lsls r0, r3, #3 - adds r0, r0, r6 - ldr r1, [r5] - ldr r2, [r5, #4] - str r1, [r0] - str r2, [r0, #4] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, r4 - blo _08006E7A -_08006E90: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08006E98: .4byte gUnknown_3002398 -_08006E9C: .4byte gUnknown_82BF2F8 - thumb_func_end ResetOamRange - - thumb_func_start LoadOam -LoadOam: @ 0x08006EA0 - push {lr} - ldr r2, _08006EC4 - ldr r1, _08006EC8 - adds r0, r2, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08006EC0 - adds r0, r2, #0 - adds r0, #0x38 - movs r1, #0xe0 - lsls r1, r1, #0x13 - ldr r2, _08006ECC - bl CpuSet -_08006EC0: - pop {r0} - bx r0 - .align 2, 0 -_08006EC4: .4byte gUnknown_3002360 -_08006EC8: .4byte 0x00000439 -_08006ECC: .4byte 0x04000100 - thumb_func_end LoadOam - - thumb_func_start ClearSpriteCopyRequests -ClearSpriteCopyRequests: @ 0x08006ED0 - push {r4, r5, lr} - ldr r0, _08006F04 - movs r1, #0 - strb r1, [r0] - ldr r0, _08006F08 - strb r1, [r0] - movs r2, #0 - ldr r4, _08006F0C - movs r3, #0 - adds r5, r4, #4 -_08006EE4: - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r1, r0, r4 - str r3, [r1] - adds r0, r0, r5 - str r3, [r0] - strh r3, [r1, #8] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x3f - bls _08006EE4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08006F04: .4byte gUnknown_20217B0 -_08006F08: .4byte gUnknown_20217B1 -_08006F0C: .4byte gUnknown_20217B4 - thumb_func_end ClearSpriteCopyRequests - - thumb_func_start ResetOamMatrices -ResetOamMatrices: @ 0x08006F10 - push {r4, lr} - movs r1, #0 - ldr r4, _08006F38 - movs r3, #0 - movs r2, #0x80 - lsls r2, r2, #1 -_08006F1C: - lsls r0, r1, #3 - adds r0, r0, r4 - strh r2, [r0] - strh r3, [r0, #2] - strh r3, [r0, #4] - strh r2, [r0, #6] - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x1f - bls _08006F1C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08006F38: .4byte gUnknown_2021B3C - thumb_func_end ResetOamMatrices - - thumb_func_start SetOamMatrix -SetOamMatrix: @ 0x08006F3C - push {r4, r5, lr} - ldr r5, [sp, #0xc] - lsls r0, r0, #0x18 - ldr r4, _08006F58 - lsrs r0, r0, #0x15 - adds r0, r0, r4 - strh r1, [r0] - strh r2, [r0, #2] - strh r3, [r0, #4] - strh r5, [r0, #6] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08006F58: .4byte gUnknown_2021B3C - thumb_func_end SetOamMatrix - - thumb_func_start ResetSprite -ResetSprite: @ 0x08006F5C - push {lr} - ldr r1, _08006F6C - movs r2, #0x44 - bl memcpy - pop {r0} - bx r0 - .align 2, 0 -_08006F6C: .4byte gUnknown_82BF2B4 - thumb_func_end ResetSprite - - thumb_func_start CalcCenterToCornerVec -CalcCenterToCornerVec: @ 0x08006F70 - push {r4, r5, r6, lr} - adds r6, r0, #0 - lsls r1, r1, #0x18 - lsls r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r4, _08006FB0 - lsrs r2, r2, #0x17 - lsrs r1, r1, #0x15 - adds r2, r2, r1 - adds r0, r2, r4 - ldrb r5, [r0] - adds r4, #1 - adds r2, r2, r4 - ldrb r1, [r2] - movs r0, #2 - ands r3, r0 - cmp r3, #0 - beq _08006F9E - lsls r0, r5, #0x19 - lsrs r5, r0, #0x18 - lsls r0, r1, #0x19 - lsrs r1, r0, #0x18 -_08006F9E: - adds r0, r6, #0 - adds r0, #0x28 - strb r5, [r0] - adds r0, #1 - strb r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08006FB0: .4byte gUnknown_82BF299 - thumb_func_end CalcCenterToCornerVec - - thumb_func_start AllocSpriteTiles -AllocSpriteTiles: @ 0x08006FB4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0 - bne _0800700A - ldr r0, _08006FF8 - ldrh r3, [r0] - ldr r0, _08006FFC - cmp r3, r0 - bhi _08006FF2 - ldr r7, _08007000 - movs r6, #7 - adds r4, r0, #0 - movs r5, #1 -_08006FD6: - lsrs r2, r3, #3 - adds r2, r2, r7 - adds r0, r3, #0 - ands r0, r6 - adds r1, r5, #0 - lsls r1, r0 - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, r4 - bls _08006FD6 -_08006FF2: - movs r0, #0 - b _080070BC - .align 2, 0 -_08006FF8: .4byte gUnknown_2021AB6 -_08006FFC: .4byte 0x000003FF -_08007000: .4byte gUnknown_2021AB8 -_08007004: - movs r0, #1 - rsbs r0, r0, #0 - b _080070BC -_0800700A: - ldr r0, _080070C8 - ldrh r3, [r0] - ldr r0, _080070CC - mov sb, r0 - movs r7, #7 - movs r6, #1 -_08007016: - lsrs r0, r3, #3 - add r0, sb - ldrb r1, [r0] - adds r0, r3, #0 - ands r0, r7 - asrs r1, r0 - ands r1, r6 - cmp r1, #0 - beq _0800704A - movs r5, #0x80 - lsls r5, r5, #3 - ldr r2, _080070CC -_0800702E: - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, r5 - beq _08007004 - lsrs r0, r0, #0x13 - adds r0, r0, r2 - ldrb r1, [r0] - adds r0, r3, #0 - ands r0, r7 - asrs r1, r0 - ands r1, r6 - cmp r1, #0 - bne _0800702E -_0800704A: - mov r8, r3 - movs r2, #1 - cmp r2, r4 - beq _08007084 - movs r1, #0x80 - lsls r1, r1, #3 - mov ip, r1 - ldr r5, _080070CC -_0800705A: - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, ip - beq _08007004 - lsrs r0, r0, #0x13 - adds r0, r0, r5 - ldrb r1, [r0] - adds r0, r3, #0 - ands r0, r7 - asrs r1, r0 - ands r1, r6 - cmp r1, #0 - bne _08007080 - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, r4 - bne _0800705A -_08007080: - cmp r2, r4 - bne _08007016 -_08007084: - mov r1, r8 - lsls r0, r1, #0x10 - lsrs r3, r0, #0x10 - asrs r1, r0, #0x10 - adds r1, r4, r1 - adds r6, r0, #0 - cmp r3, r1 - bge _080070BA - ldr r0, _080070CC - mov r8, r0 - movs r7, #7 - adds r4, r1, #0 - movs r5, #1 -_0800709E: - lsrs r2, r3, #3 - add r2, r8 - adds r1, r3, #0 - ands r1, r7 - adds r0, r5, #0 - lsls r0, r1 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, r4 - blt _0800709E -_080070BA: - asrs r0, r6, #0x10 -_080070BC: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080070C8: .4byte gUnknown_2021AB6 -_080070CC: .4byte gUnknown_2021AB8 - thumb_func_end AllocSpriteTiles - - thumb_func_start SpriteTileAllocBitmapOp -SpriteTileAllocBitmapOp: @ 0x080070D0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsrs r0, r0, #0x13 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - adds r6, r3, #0 - movs r0, #7 - ands r2, r0 - adds r4, r2, #0 - movs r5, #0 - cmp r1, #0 - bne _08007108 - movs r0, #1 - lsls r0, r2 - mvns r0, r0 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _08007104 - adds r0, r3, r0 - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - b _08007134 - .align 2, 0 -_08007104: .4byte gUnknown_2021AB8 -_08007108: - cmp r1, #1 - bne _08007124 - lsls r1, r2 - lsls r0, r1, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _08007120 - adds r0, r3, r0 - ldrb r1, [r0] - orrs r2, r1 - strb r2, [r0] - b _08007134 - .align 2, 0 -_08007120: .4byte gUnknown_2021AB8 -_08007124: - movs r0, #0x80 - lsls r0, r0, #0x11 - lsls r0, r4 - lsrs r5, r0, #0x18 - ldr r0, _0800713C - adds r0, r6, r0 - ldrb r0, [r0] - ands r5, r0 -_08007134: - adds r0, r5, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0800713C: .4byte gUnknown_2021AB8 - thumb_func_end SpriteTileAllocBitmapOp - - thumb_func_start sub_08007140 -sub_08007140: @ 0x08007140 - bx lr - .align 2, 0 - thumb_func_end sub_08007140 - - thumb_func_start ProcessSpriteCopyRequests -ProcessSpriteCopyRequests: @ 0x08007144 - push {r4, r5, r6, r7, lr} - ldr r0, _08007194 - ldrb r0, [r0] - cmp r0, #0 - beq _0800718C - movs r4, #0 - ldr r1, _08007198 - ldrb r0, [r1] - cmp r0, #0 - beq _08007186 - ldr r6, _0800719C - adds r7, r6, #4 - adds r5, r1, #0 -_0800715E: - lsls r1, r4, #1 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r2, r1, r6 - ldr r0, [r2] - adds r1, r1, r7 - ldr r1, [r1] - ldrh r2, [r2, #8] - lsrs r2, r2, #1 - bl CpuSet - ldrb r1, [r5] - subs r1, #1 - strb r1, [r5] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - cmp r1, #0 - bne _0800715E -_08007186: - ldr r1, _08007194 - movs r0, #0 - strb r0, [r1] -_0800718C: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08007194: .4byte gUnknown_20217B0 -_08007198: .4byte gUnknown_20217B1 -_0800719C: .4byte gUnknown_20217B4 - thumb_func_end ProcessSpriteCopyRequests - - thumb_func_start RequestSpriteFrameImageCopy -RequestSpriteFrameImageCopy: @ 0x080071A0 - push {r4, r5, r6, lr} - adds r5, r2, #0 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - ldr r4, _080071F8 - ldrb r0, [r4] - cmp r0, #0x3f - bhi _080071F0 - ldr r3, _080071FC - adds r1, r0, #0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - lsls r2, r2, #3 - adds r2, r2, r5 - ldr r1, [r2] - str r1, [r0] - ldrb r0, [r4] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r0, r3, #4 - adds r1, r1, r0 - lsls r0, r6, #5 - ldr r5, _08007200 - adds r0, r0, r5 - str r0, [r1] - ldrb r1, [r4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r2, #4] - strh r1, [r0, #8] - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] -_080071F0: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080071F8: .4byte gUnknown_20217B1 -_080071FC: .4byte gUnknown_20217B4 -_08007200: .4byte 0x06010000 - thumb_func_end RequestSpriteFrameImageCopy - - thumb_func_start RequestSpriteCopy -RequestSpriteCopy: @ 0x08007204 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r2, r2, #0x10 - lsrs r6, r2, #0x10 - ldr r3, _0800724C - ldrb r0, [r3] - cmp r0, #0x3f - bhi _08007244 - ldr r2, _08007250 - adds r1, r0, #0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - str r4, [r0] - ldrb r1, [r3] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r2, #4 - adds r0, r0, r1 - str r5, [r0] - ldrb r1, [r3] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r6, [r0, #8] - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] -_08007244: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0800724C: .4byte gUnknown_20217B1 -_08007250: .4byte gUnknown_20217B4 - thumb_func_end RequestSpriteCopy - - thumb_func_start CopyFromSprites -CopyFromSprites: @ 0x08007254 - push {r4, lr} - adds r1, r0, #0 - ldr r3, _08007274 - movs r2, #0 - ldr r4, _08007278 -_0800725E: - ldrb r0, [r3] - strb r0, [r1] - adds r1, #1 - adds r3, #1 - adds r2, #1 - cmp r2, r4 - bls _0800725E - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08007274: .4byte gUnknown_20205AC -_08007278: .4byte 0x000010FF - thumb_func_end CopyFromSprites - - thumb_func_start CopyToSprites -CopyToSprites: @ 0x0800727C - push {r4, lr} - adds r1, r0, #0 - ldr r3, _0800729C - movs r2, #0 - ldr r4, _080072A0 -_08007286: - ldrb r0, [r1] - strb r0, [r3] - adds r1, #1 - adds r3, #1 - adds r2, #1 - cmp r2, r4 - bls _08007286 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800729C: .4byte gUnknown_20205AC -_080072A0: .4byte 0x000010FF - thumb_func_end CopyToSprites - - thumb_func_start ResetAllSprites -ResetAllSprites: @ 0x080072A4 - push {r4, r5, lr} - movs r4, #0 -_080072A8: - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - ldr r5, _080072D8 - adds r0, r0, r5 - bl ResetSprite - ldr r0, _080072DC - adds r0, r4, r0 - strb r4, [r0] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x3f - bls _080072A8 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r5 - bl ResetSprite - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080072D8: .4byte gUnknown_20205AC -_080072DC: .4byte gUnknown_2021770 - thumb_func_end ResetAllSprites - - thumb_func_start FreeSpriteTiles -FreeSpriteTiles: @ 0x080072E0 - push {lr} - ldr r2, [r0, #0x14] - ldrh r1, [r2] - ldr r0, _080072F8 - cmp r1, r0 - beq _080072F2 - adds r0, r1, #0 - bl FreeSpriteTilesByTag -_080072F2: - pop {r0} - bx r0 - .align 2, 0 -_080072F8: .4byte 0x0000FFFF - thumb_func_end FreeSpriteTiles - - thumb_func_start FreeSpritePalette -FreeSpritePalette: @ 0x080072FC - push {lr} - ldr r0, [r0, #0x14] - ldrh r0, [r0, #2] - bl FreeSpritePaletteByTag - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end FreeSpritePalette - - thumb_func_start FreeSpriteOamMatrix -FreeSpriteOamMatrix: @ 0x0800730C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #1] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08007332 - ldrb r0, [r4, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - ldrb r1, [r4, #1] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #1] -_08007332: - pop {r4} - pop {r0} - bx r0 - thumb_func_end FreeSpriteOamMatrix - - thumb_func_start DestroySpriteAndFreeResources -DestroySpriteAndFreeResources: @ 0x08007338 - push {r4, lr} - adds r4, r0, #0 - bl FreeSpriteTiles - adds r0, r4, #0 - bl FreeSpritePalette - adds r0, r4, #0 - bl FreeSpriteOamMatrix - adds r0, r4, #0 - bl DestroySprite - pop {r4} - pop {r0} - bx r0 - thumb_func_end DestroySpriteAndFreeResources - - thumb_func_start AnimateSprite -AnimateSprite: @ 0x08007358 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r2, _08007394 - adds r5, r4, #0 - adds r5, #0x3f - ldrb r1, [r5] - movs r0, #4 - ands r0, r1 - adds r0, r0, r2 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldr r0, _08007398 - ldrb r0, [r0] - cmp r0, #0 - bne _0800738E - ldr r0, _0800739C - ldrb r1, [r5] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1f - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_0800738E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08007394: .4byte gUnknown_82BF32C -_08007398: .4byte gUnknown_2021C3C -_0800739C: .4byte gUnknown_82BF334 - thumb_func_end AnimateSprite - - thumb_func_start BeginAnim -BeginAnim: @ 0x080073A0 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r4, r0, #0 - adds r3, r4, #0 - adds r3, #0x2b - movs r2, #0 - strb r2, [r3] - adds r5, r4, #0 - adds r5, #0x3f - ldrb r1, [r5] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r5] - adds r0, r4, #0 - adds r0, #0x2d - strb r2, [r0] - adds r2, r4, #0 - adds r2, #0x2a - ldrb r1, [r2] - ldr r0, [r4, #8] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r3] - ldr r1, [r1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0] - mov sb, r0 - lsls r0, r0, #0x10 - mov r8, r0 - asrs r1, r0, #0x10 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _08007484 - ldrb r1, [r5] - subs r0, #4 - ands r0, r1 - strb r0, [r5] - ldrb r1, [r2] - ldr r0, [r4, #8] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r3] - ldr r1, [r1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - lsls r1, r0, #0xa - lsrs r3, r1, #0x1a - lsls r1, r0, #9 - lsrs r7, r1, #0x1f - lsls r0, r0, #8 - lsrs r6, r0, #0x1f - cmp r3, #0 - beq _0800741C - subs r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 -_0800741C: - adds r2, r4, #0 - adds r2, #0x2c - movs r0, #0x3f - ands r3, r0 - ldrb r1, [r2] - subs r0, #0x7f - ands r0, r1 - orrs r0, r3 - strb r0, [r2] - ldrb r0, [r4, #1] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08007446 - adds r0, r4, #0 - adds r1, r7, #0 - adds r2, r6, #0 - bl SetSpriteOamFlipBits -_08007446: - ldrb r1, [r5] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08007474 - adds r0, r4, #0 - adds r0, #0x40 - ldrh r1, [r0] - add r1, sb - ldr r2, _0800746C - adds r0, r2, #0 - ands r1, r0 - ldrh r2, [r4, #4] - ldr r0, _08007470 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, #4] - b _08007484 - .align 2, 0 -_0800746C: .4byte 0x000003FF -_08007470: .4byte 0xFFFFFC00 -_08007474: - mov r1, r8 - lsrs r0, r1, #0x10 - ldrh r1, [r4, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x16 - ldr r2, [r4, #0xc] - bl RequestSpriteFrameImageCopy -_08007484: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end BeginAnim - - thumb_func_start ContinueAnim -ContinueAnim: @ 0x08007490 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x2c - ldrb r1, [r0] - movs r0, #0x3f - ands r0, r1 - cmp r0, #0 - beq _080074E0 - adds r0, r4, #0 - bl DecrementAnimDelayCounter - adds r0, r4, #0 - adds r0, #0x2a - ldrb r1, [r0] - ldr r0, [r4, #8] - lsls r1, r1, #2 - adds r1, r1, r0 - adds r0, r4, #0 - adds r0, #0x2b - ldrb r0, [r0] - ldr r1, [r1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - lsls r1, r0, #9 - lsrs r3, r1, #0x1f - lsls r0, r0, #8 - lsrs r2, r0, #0x1f - ldrb r0, [r4, #1] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08007526 - adds r0, r4, #0 - adds r1, r3, #0 - bl SetSpriteOamFlipBits - b _08007526 -_080074E0: - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08007526 - adds r2, r4, #0 - adds r2, #0x2b - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x2a - ldrb r0, [r0] - ldr r1, [r4, #8] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r2] - ldr r0, [r0] - lsls r1, r1, #2 - adds r1, r1, r0 - movs r2, #3 - movs r3, #0 - ldrsh r0, [r1, r3] - cmp r0, #0 - bge _08007516 - adds r0, #3 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 -_08007516: - ldr r0, _0800752C - lsls r1, r2, #0x10 - asrs r1, r1, #0xe - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_08007526: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800752C: .4byte gUnknown_82BF33C - thumb_func_end ContinueAnim - - thumb_func_start AnimCmd_frame -AnimCmd_frame: @ 0x08007530 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - adds r0, #0x2a - ldrb r1, [r0] - ldr r0, [r4, #8] - lsls r1, r1, #2 - adds r1, r1, r0 - adds r0, r4, #0 - adds r0, #0x2b - ldrb r0, [r0] - ldr r1, [r1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r7, [r0] - mov r8, r7 - ldr r0, [r0] - lsls r1, r0, #0xa - lsrs r3, r1, #0x1a - lsls r1, r0, #9 - lsrs r6, r1, #0x1f - lsls r0, r0, #8 - lsrs r5, r0, #0x1f - cmp r3, #0 - beq _0800756A - subs r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 -_0800756A: - adds r2, r4, #0 - adds r2, #0x2c - movs r0, #0x3f - ands r3, r0 - ldrb r1, [r2] - subs r0, #0x7f - ands r0, r1 - orrs r0, r3 - strb r0, [r2] - ldrb r0, [r4, #1] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08007594 - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r5, #0 - bl SetSpriteOamFlipBits -_08007594: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080075C4 - adds r0, r4, #0 - adds r0, #0x40 - ldrh r1, [r0] - adds r1, r1, r7 - ldr r2, _080075BC - adds r0, r2, #0 - ands r1, r0 - ldrh r2, [r4, #4] - ldr r0, _080075C0 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, #4] - b _080075D2 - .align 2, 0 -_080075BC: .4byte 0x000003FF -_080075C0: .4byte 0xFFFFFC00 -_080075C4: - mov r0, r8 - ldrh r1, [r4, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x16 - ldr r2, [r4, #0xc] - bl RequestSpriteFrameImageCopy -_080075D2: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end AnimCmd_frame - - thumb_func_start AnimCmd_end -AnimCmd_end: @ 0x080075DC - adds r2, r0, #0 - adds r2, #0x2b - ldrb r1, [r2] - subs r1, #1 - strb r1, [r2] - adds r0, #0x3f - ldrb r1, [r0] - movs r2, #0x10 - orrs r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 - thumb_func_end AnimCmd_end - - thumb_func_start AnimCmd_jump -AnimCmd_jump: @ 0x080075F4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - adds r3, r4, #0 - adds r3, #0x2a - ldrb r1, [r3] - ldr r0, [r4, #8] - lsls r1, r1, #2 - adds r1, r1, r0 - adds r2, r4, #0 - adds r2, #0x2b - ldrb r0, [r2] - ldr r1, [r1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - lsls r0, r0, #0xa - lsrs r0, r0, #0x1a - strb r0, [r2] - ldrb r0, [r3] - ldr r1, [r4, #8] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r2] - ldr r0, [r0] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r7, [r1] - mov r8, r7 - ldr r0, [r1] - lsls r1, r0, #0xa - lsrs r3, r1, #0x1a - lsls r1, r0, #9 - lsrs r6, r1, #0x1f - lsls r0, r0, #8 - lsrs r5, r0, #0x1f - cmp r3, #0 - beq _08007648 - subs r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 -_08007648: - adds r2, r4, #0 - adds r2, #0x2c - movs r0, #0x3f - ands r3, r0 - ldrb r1, [r2] - subs r0, #0x7f - ands r0, r1 - orrs r0, r3 - strb r0, [r2] - ldrb r0, [r4, #1] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08007672 - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r5, #0 - bl SetSpriteOamFlipBits -_08007672: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080076A4 - adds r0, r4, #0 - adds r0, #0x40 - ldrh r1, [r0] - adds r1, r1, r7 - ldr r2, _0800769C - adds r0, r2, #0 - ands r1, r0 - ldrh r2, [r4, #4] - ldr r0, _080076A0 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, #4] - b _080076B2 - .align 2, 0 -_0800769C: .4byte 0x000003FF -_080076A0: .4byte 0xFFFFFC00 -_080076A4: - mov r0, r8 - ldrh r1, [r4, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x16 - ldr r2, [r4, #0xc] - bl RequestSpriteFrameImageCopy -_080076B2: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end AnimCmd_jump - - thumb_func_start AnimCmd_loop -AnimCmd_loop: @ 0x080076BC - push {lr} - adds r1, r0, #0 - adds r0, #0x2d - ldrb r0, [r0] - cmp r0, #0 - beq _080076D0 - adds r0, r1, #0 - bl ContinueAnimLoop - b _080076D6 -_080076D0: - adds r0, r1, #0 - bl BeginAnimLoop -_080076D6: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AnimCmd_loop - - thumb_func_start BeginAnimLoop -BeginAnimLoop: @ 0x080076DC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x2a - ldrb r1, [r0] - ldr r0, [r4, #8] - lsls r1, r1, #2 - adds r1, r1, r0 - adds r0, r4, #0 - adds r0, #0x2b - ldrb r0, [r0] - ldr r1, [r1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - lsls r0, r0, #0xa - lsrs r0, r0, #0x1a - adds r1, r4, #0 - adds r1, #0x2d - strb r0, [r1] - adds r0, r4, #0 - bl JumpToTopOfAnimLoop - adds r0, r4, #0 - bl ContinueAnim - pop {r4} - pop {r0} - bx r0 - thumb_func_end BeginAnimLoop - - thumb_func_start ContinueAnimLoop -ContinueAnimLoop: @ 0x08007714 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x2d - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl JumpToTopOfAnimLoop - adds r0, r4, #0 - bl ContinueAnim - pop {r4} - pop {r0} - bx r0 - thumb_func_end ContinueAnimLoop - - thumb_func_start JumpToTopOfAnimLoop -JumpToTopOfAnimLoop: @ 0x08007734 - push {r4, r5, r6, r7, lr} - mov ip, r0 - adds r0, #0x2d - ldrb r0, [r0] - cmp r0, #0 - beq _080077A0 - mov r3, ip - adds r3, #0x2b - ldrb r0, [r3] - subs r0, #1 - strb r0, [r3] - mov r5, ip - adds r5, #0x2a - ldrb r1, [r5] - mov r2, ip - ldr r0, [r2, #8] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r3] - ldr r1, [r1] - lsls r0, r0, #2 - adds r0, r0, r1 - subs r0, #4 - movs r7, #0 - ldrsh r0, [r0, r7] - movs r1, #3 - rsbs r1, r1, #0 - adds r4, r3, #0 - cmp r0, r1 - beq _0800779A - adds r6, r1, #0 - adds r2, r4, #0 -_08007774: - ldrb r0, [r2] - cmp r0, #0 - beq _0800779A - subs r0, #1 - strb r0, [r3] - ldrb r1, [r5] - mov r7, ip - ldr r0, [r7, #8] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r2] - ldr r1, [r1] - lsls r0, r0, #2 - adds r0, r0, r1 - subs r0, #4 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, r6 - bne _08007774 -_0800779A: - ldrb r0, [r4] - subs r0, #1 - strb r0, [r4] -_080077A0: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end JumpToTopOfAnimLoop - - thumb_func_start BeginAffineAnim -BeginAffineAnim: @ 0x080077A8 - push {r4, r5, r6, r7, lr} - sub sp, #8 - adds r6, r0, #0 - ldrb r0, [r6, #1] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0800782A - ldr r0, [r6, #0x10] - ldr r0, [r0] - movs r2, #0 - ldrsh r1, [r0, r2] - ldr r0, _08007834 - cmp r1, r0 - beq _0800782A - adds r0, r6, #0 - bl GetSpriteMatrixNum - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl AffineAnimStateRestartAnim - mov r5, sp - adds r0, r4, #0 - adds r1, r6, #0 - mov r2, sp - bl GetAffineAnimFrame - adds r7, r6, #0 - adds r7, #0x3f - ldrb r1, [r7] - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x21 - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r7] - adds r0, r4, #0 - mov r1, sp - bl ApplyAffineAnimFrame - ldr r1, _08007838 - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r5, #5] - strb r1, [r0, #2] - ldrb r1, [r7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0800782A - movs r0, #0x3a - ldrsh r1, [r6, r0] - movs r0, #0x3c - ldrsh r2, [r6, r0] - adds r0, r6, #0 - bl obj_update_pos2 -_0800782A: - add sp, #8 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08007834: .4byte 0x00007FFF -_08007838: .4byte gUnknown_3000B70 - thumb_func_end BeginAffineAnim - - thumb_func_start ContinueAffineAnim -ContinueAffineAnim: @ 0x0800783C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #1] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _080078DE - adds r0, r4, #0 - bl GetSpriteMatrixNum - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r5, r2, #0 - ldr r1, _08007874 - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r3, r0, r1 - ldrb r0, [r3, #2] - cmp r0, #0 - beq _08007878 - adds r0, r2, #0 - adds r1, r4, #0 - bl AffineAnimDelay - b _080078C2 - .align 2, 0 -_08007874: .4byte gUnknown_3000B70 -_08007878: - adds r0, r4, #0 - adds r0, #0x2c - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080078DE - ldrb r0, [r3, #1] - adds r0, #1 - strb r0, [r3, #1] - ldrb r0, [r3] - ldr r1, [r4, #0x10] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r3, #1] - ldr r0, [r0] - lsls r1, r1, #3 - adds r1, r1, r0 - movs r2, #3 - movs r0, #0 - ldrsh r1, [r1, r0] - ldr r0, _080078E4 - cmp r1, r0 - ble _080078B0 - ldr r2, _080078E8 - adds r0, r1, r2 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 -_080078B0: - ldr r0, _080078EC - lsls r1, r2, #0x10 - asrs r1, r1, #0xe - adds r1, r1, r0 - ldr r2, [r1] - adds r0, r5, #0 - adds r1, r4, #0 - bl _call_via_r2 -_080078C2: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080078DE - movs r0, #0x3a - ldrsh r1, [r4, r0] - movs r0, #0x3c - ldrsh r2, [r4, r0] - adds r0, r4, #0 - bl obj_update_pos2 -_080078DE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080078E4: .4byte 0x00007FFC -_080078E8: .4byte 0xFFFF8003 -_080078EC: .4byte gUnknown_82BF34C - thumb_func_end ContinueAffineAnim - - thumb_func_start AffineAnimDelay -AffineAnimDelay: @ 0x080078F0 - push {r4, r5, lr} - sub sp, #8 - adds r5, r1, #0 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r5, #0 - adds r1, r4, #0 - bl DecrementAffineAnimDelayCounter - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0800791A - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sp - bl GetAffineAnimFrame - adds r0, r4, #0 - mov r1, sp - bl ApplyAffineAnimFrameRelativeAndUpdateMatrix -_0800791A: - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AffineAnimDelay - - thumb_func_start AffineAnimCmd_loop -AffineAnimCmd_loop: @ 0x08007924 - push {lr} - adds r3, r1, #0 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _08007948 - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #3] - cmp r0, #0 - beq _0800794C - adds r0, r2, #0 - adds r1, r3, #0 - bl ContinueAffineAnimLoop - b _08007954 - .align 2, 0 -_08007948: .4byte gUnknown_3000B70 -_0800794C: - adds r0, r2, #0 - adds r1, r3, #0 - bl BeginAffineAnimLoop -_08007954: - pop {r0} - bx r0 - thumb_func_end AffineAnimCmd_loop - - thumb_func_start BeginAffineAnimLoop -BeginAffineAnimLoop: @ 0x08007958 - push {r4, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08007990 - lsls r3, r0, #1 - adds r3, r3, r0 - lsls r3, r3, #2 - adds r3, r3, r1 - ldrb r2, [r3] - ldr r1, [r4, #0x10] - lsls r2, r2, #2 - adds r2, r2, r1 - ldrb r1, [r3, #1] - ldr r2, [r2] - lsls r1, r1, #3 - adds r1, r1, r2 - ldrh r1, [r1, #2] - strb r1, [r3, #3] - adds r1, r4, #0 - bl JumpToTopOfAffineAnimLoop - adds r0, r4, #0 - bl ContinueAffineAnim - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08007990: .4byte gUnknown_3000B70 - thumb_func_end BeginAffineAnimLoop - - thumb_func_start ContinueAffineAnimLoop -ContinueAffineAnimLoop: @ 0x08007994 - push {r4, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080079C0 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r2, [r1, #3] - subs r2, #1 - strb r2, [r1, #3] - adds r1, r4, #0 - bl JumpToTopOfAffineAnimLoop - adds r0, r4, #0 - bl ContinueAffineAnim - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080079C0: .4byte gUnknown_3000B70 - thumb_func_end ContinueAffineAnimLoop - - thumb_func_start JumpToTopOfAffineAnimLoop -JumpToTopOfAffineAnimLoop: @ 0x080079C4 - push {r4, r5, r6, r7, lr} - mov ip, r1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _080079E8 - lsls r3, r5, #1 - adds r0, r3, r5 - lsls r0, r0, #2 - adds r2, r0, r1 - ldrb r0, [r2, #3] - adds r6, r1, #0 - cmp r0, #0 - beq _08007A24 - ldrb r0, [r2, #1] - subs r0, #1 - strb r0, [r2, #1] - adds r4, r3, #0 - b _080079F4 - .align 2, 0 -_080079E8: .4byte gUnknown_3000B70 -_080079EC: - cmp r2, #0 - beq _08007A18 - subs r0, r2, #1 - strb r0, [r3, #1] -_080079F4: - adds r0, r4, r5 - lsls r0, r0, #2 - adds r3, r0, r6 - ldrb r0, [r3] - mov r2, ip - ldr r1, [r2, #0x10] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r2, [r3, #1] - ldr r1, [r0] - lsls r0, r2, #3 - adds r0, r0, r1 - subs r0, #8 - movs r7, #0 - ldrsh r1, [r0, r7] - ldr r0, _08007A2C - cmp r1, r0 - bne _080079EC -_08007A18: - adds r1, r4, r5 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrb r0, [r1, #1] - subs r0, #1 - strb r0, [r1, #1] -_08007A24: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08007A2C: .4byte 0x00007FFD - thumb_func_end JumpToTopOfAffineAnimLoop - - thumb_func_start AffineAnimCmd_jump -AffineAnimCmd_jump: @ 0x08007A30 - push {r4, r5, r6, lr} - sub sp, #8 - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _08007A78 - lsls r4, r5, #1 - adds r4, r4, r5 - lsls r4, r4, #2 - adds r4, r4, r0 - ldrb r2, [r4] - ldr r0, [r1, #0x10] - lsls r2, r2, #2 - adds r2, r2, r0 - ldrb r0, [r4, #1] - ldr r2, [r2] - lsls r0, r0, #3 - adds r0, r0, r2 - ldrh r0, [r0, #2] - strb r0, [r4, #1] - mov r6, sp - adds r0, r5, #0 - mov r2, sp - bl GetAffineAnimFrame - adds r0, r5, #0 - mov r1, sp - bl ApplyAffineAnimFrame - ldrb r0, [r6, #5] - strb r0, [r4, #2] - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08007A78: .4byte gUnknown_3000B70 - thumb_func_end AffineAnimCmd_jump - - thumb_func_start AffineAnimCmd_end -AffineAnimCmd_end: @ 0x08007A7C - push {lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0 - movs r3, #0 - str r2, [sp] - str r3, [sp, #4] - adds r1, #0x3f - ldrb r2, [r1] - movs r3, #0x20 - orrs r2, r3 - strb r2, [r1] - ldr r2, _08007AB4 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r2, [r1, #1] - subs r2, #1 - strb r2, [r1, #1] - mov r1, sp - bl ApplyAffineAnimFrameRelativeAndUpdateMatrix - add sp, #8 - pop {r0} - bx r0 - .align 2, 0 -_08007AB4: .4byte gUnknown_3000B70 - thumb_func_end AffineAnimCmd_end - - thumb_func_start AffineAnimCmd_frame -AffineAnimCmd_frame: @ 0x08007AB8 - push {r4, r5, lr} - sub sp, #8 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r5, sp - adds r0, r4, #0 - mov r2, sp - bl GetAffineAnimFrame - adds r0, r4, #0 - mov r1, sp - bl ApplyAffineAnimFrame - ldr r1, _08007AEC - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r5, #5] - strb r1, [r0, #2] - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08007AEC: .4byte gUnknown_3000B70 - thumb_func_end AffineAnimCmd_frame - - thumb_func_start CopyOamMatrix -CopyOamMatrix: @ 0x08007AF0 - lsls r0, r0, #0x18 - ldr r2, _08007B0C - lsrs r0, r0, #0x15 - adds r0, r0, r2 - ldrh r2, [r1] - strh r2, [r0] - ldrh r2, [r1, #2] - strh r2, [r0, #2] - ldrh r2, [r1, #4] - strh r2, [r0, #4] - ldrh r1, [r1, #6] - strh r1, [r0, #6] - bx lr - .align 2, 0 -_08007B0C: .4byte gUnknown_2021B3C - thumb_func_end CopyOamMatrix - - thumb_func_start GetSpriteMatrixNum -GetSpriteMatrixNum: @ 0x08007B10 - push {lr} - adds r2, r0, #0 - movs r3, #0 - ldrb r0, [r2, #1] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08007B2A - ldrb r0, [r2, #3] - lsls r0, r0, #0x1a - lsrs r3, r0, #0x1b -_08007B2A: - adds r0, r3, #0 - pop {r1} - bx r1 - thumb_func_end GetSpriteMatrixNum - - thumb_func_start sub_08007B30 -sub_08007B30: @ 0x08007B30 - strh r1, [r0, #0x3a] - strh r2, [r0, #0x3c] - adds r0, #0x3f - ldrb r1, [r0] - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0] - bx lr - thumb_func_end sub_08007B30 - - thumb_func_start sub_08007B40 -sub_08007B40: @ 0x08007B40 - push {r4, r5, lr} - adds r3, r0, #0 - adds r5, r2, #0 - subs r0, r1, r3 - cmp r0, #0 - bge _08007B52 - rsbs r0, r0, #0 - asrs r4, r0, #9 - b _08007B56 -_08007B52: - asrs r0, r0, #9 - rsbs r4, r0, #0 -_08007B56: - adds r0, r5, #0 - muls r0, r1, r0 - adds r1, r3, #0 - bl __udivsi3 - adds r0, r0, r4 - subs r0, r5, r0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08007B40 - - thumb_func_start obj_update_pos2 -obj_update_pos2: @ 0x08007B6C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - adds r6, r1, #0 - mov r8, r2 - ldrb r1, [r5, #3] - lsls r0, r1, #0x1a - lsrs r7, r0, #0x1b - movs r0, #0x80 - lsls r0, r0, #4 - mov sb, r0 - cmp r6, sb - beq _08007BBA - ldr r2, _08007C00 - lsrs r1, r1, #6 - lsls r1, r1, #3 - ldrb r0, [r5, #1] - lsrs r0, r0, #6 - lsls r0, r0, #5 - adds r1, r1, r0 - adds r1, r1, r2 - ldr r0, [r1] - lsls r4, r0, #8 - lsls r0, r0, #0x10 - ldr r2, _08007C04 - lsls r1, r7, #3 - adds r1, r1, r2 - movs r2, #0 - ldrsh r1, [r1, r2] - bl __divsi3 - adds r1, r0, #0 - adds r0, r4, #0 - adds r2, r6, #0 - bl sub_08007B40 - strh r0, [r5, #0x24] -_08007BBA: - cmp r8, sb - beq _08007BF2 - ldr r2, _08007C00 - ldrb r1, [r5, #3] - lsrs r1, r1, #6 - lsls r1, r1, #3 - ldrb r0, [r5, #1] - lsrs r0, r0, #6 - lsls r0, r0, #5 - adds r1, r1, r0 - adds r2, #4 - adds r1, r1, r2 - ldr r0, [r1] - lsls r4, r0, #8 - lsls r0, r0, #0x10 - ldr r2, _08007C04 - lsls r1, r7, #3 - adds r1, r1, r2 - movs r2, #6 - ldrsh r1, [r1, r2] - bl __divsi3 - adds r1, r0, #0 - adds r0, r4, #0 - mov r2, r8 - bl sub_08007B40 - strh r0, [r5, #0x26] -_08007BF2: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08007C00: .4byte gUnknown_82BF35C -_08007C04: .4byte gUnknown_2021B3C - thumb_func_end obj_update_pos2 - - thumb_func_start SetSpriteOamFlipBits -SetSpriteOamFlipBits: @ 0x08007C08 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r6, [r0, #3] - lsls r3, r6, #0x1a - lsrs r3, r3, #0x1b - movs r4, #7 - ands r3, r4 - lsls r3, r3, #1 - subs r4, #0x46 - mov r8, r4 - mov r5, r8 - ands r5, r6 - orrs r5, r3 - strb r5, [r0, #3] - lsls r4, r5, #0x1a - lsrs r4, r4, #0x1b - movs r6, #0x3f - adds r6, r6, r0 - mov ip, r6 - ldrb r3, [r6] - lsls r3, r3, #0x1f - lsrs r3, r3, #0x1f - eors r1, r3 - movs r6, #1 - ands r1, r6 - lsls r1, r1, #3 - orrs r4, r1 - lsls r4, r4, #1 - mov r3, r8 - ands r3, r5 - orrs r3, r4 - strb r3, [r0, #3] - lsls r4, r3, #0x1a - lsrs r4, r4, #0x1b - mov r5, ip - ldrb r1, [r5] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1f - eors r2, r1 - ands r2, r6 - lsls r2, r2, #4 - orrs r4, r2 - lsls r4, r4, #1 - mov r6, r8 - ands r3, r6 - orrs r3, r4 - strb r3, [r0, #3] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetSpriteOamFlipBits - - thumb_func_start AffineAnimStateRestartAnim -AffineAnimStateRestartAnim: @ 0x08007C7C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08007C94 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #0 - strb r0, [r1, #1] - strb r0, [r1, #2] - strb r0, [r1, #3] - bx lr - .align 2, 0 -_08007C94: .4byte gUnknown_3000B70 - thumb_func_end AffineAnimStateRestartAnim - - thumb_func_start AffineAnimStateStartAnim -AffineAnimStateStartAnim: @ 0x08007C98 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _08007CBC - lsls r2, r0, #1 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r3 - movs r3, #0 - strb r1, [r2] - strb r3, [r2, #1] - strb r3, [r2, #2] - strb r3, [r2, #3] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r2, #4] - strh r0, [r2, #6] - strh r3, [r2, #8] - bx lr - .align 2, 0 -_08007CBC: .4byte gUnknown_3000B70 - thumb_func_end AffineAnimStateStartAnim - - thumb_func_start AffineAnimStateReset -AffineAnimStateReset: @ 0x08007CC0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08007CE4 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #0 - strb r0, [r1] - strb r0, [r1, #1] - strb r0, [r1, #2] - strb r0, [r1, #3] - movs r2, #0x80 - lsls r2, r2, #1 - strh r2, [r1, #4] - strh r2, [r1, #6] - strh r0, [r1, #8] - bx lr - .align 2, 0 -_08007CE4: .4byte gUnknown_3000B70 - thumb_func_end AffineAnimStateReset - - thumb_func_start ApplyAffineAnimFrameAbsolute -ApplyAffineAnimFrameAbsolute: @ 0x08007CE8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _08007D08 - lsls r2, r0, #1 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r3 - ldrh r0, [r1] - strh r0, [r2, #4] - ldrh r0, [r1, #2] - strh r0, [r2, #6] - ldrb r0, [r1, #4] - lsls r0, r0, #8 - strh r0, [r2, #8] - bx lr - .align 2, 0 -_08007D08: .4byte gUnknown_3000B70 - thumb_func_end ApplyAffineAnimFrameAbsolute - - thumb_func_start DecrementAnimDelayCounter -DecrementAnimDelayCounter: @ 0x08007D0C - push {lr} - adds r3, r0, #0 - adds r3, #0x2c - ldrb r2, [r3] - movs r0, #0x40 - ands r0, r2 - cmp r0, #0 - bne _08007D30 - lsls r0, r2, #0x1a - lsrs r0, r0, #0x1a - subs r0, #1 - movs r1, #0x3f - ands r0, r1 - movs r1, #0x40 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3] -_08007D30: - pop {r0} - bx r0 - thumb_func_end DecrementAnimDelayCounter - - thumb_func_start DecrementAffineAnimDelayCounter -DecrementAffineAnimDelayCounter: @ 0x08007D34 - push {lr} - lsls r1, r1, #0x18 - lsrs r2, r1, #0x18 - adds r3, r0, #0 - adds r3, #0x2c - ldrb r1, [r3] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08007D58 - ldr r0, _08007D60 - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #2] - subs r0, #1 - strb r0, [r1, #2] -_08007D58: - ldrb r0, [r3] - lsrs r0, r0, #7 - pop {r1} - bx r1 - .align 2, 0 -_08007D60: .4byte gUnknown_3000B70 - thumb_func_end DecrementAffineAnimDelayCounter - - thumb_func_start ApplyAffineAnimFrameRelativeAndUpdateMatrix -ApplyAffineAnimFrameRelativeAndUpdateMatrix: @ 0x08007D64 - push {r4, r5, r6, lr} - sub sp, #0x10 - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _08007DEC - lsls r4, r5, #1 - adds r4, r4, r5 - lsls r4, r4, #2 - adds r4, r4, r0 - ldrh r0, [r1] - ldrh r2, [r4, #4] - adds r0, r0, r2 - strh r0, [r4, #4] - ldrh r0, [r1, #2] - ldrh r2, [r4, #6] - adds r0, r0, r2 - strh r0, [r4, #6] - ldrb r0, [r1, #4] - lsls r0, r0, #8 - ldrh r1, [r4, #8] - adds r0, r0, r1 - ldr r2, _08007DF0 - adds r1, r2, #0 - ands r0, r1 - strh r0, [r4, #8] - movs r1, #4 - ldrsh r0, [r4, r1] - bl sub_08007DFC - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r6, _08007DF4 - ldr r1, [sp] - ands r1, r6 - orrs r1, r0 - str r1, [sp] - movs r2, #6 - ldrsh r0, [r4, r2] - bl sub_08007DFC - lsls r0, r0, #0x10 - ldr r2, _08007DF8 - ldr r1, [sp] - ands r1, r2 - orrs r1, r0 - str r1, [sp] - ldrh r1, [r4, #8] - ldr r0, [sp, #4] - ands r0, r6 - orrs r0, r1 - str r0, [sp, #4] - add r4, sp, #8 - mov r0, sp - adds r1, r4, #0 - movs r2, #1 - movs r3, #2 - bl ObjAffineSet - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyOamMatrix - add sp, #0x10 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08007DEC: .4byte gUnknown_3000B70 -_08007DF0: .4byte 0xFFFFFF00 -_08007DF4: .4byte 0xFFFF0000 -_08007DF8: .4byte 0x0000FFFF - thumb_func_end ApplyAffineAnimFrameRelativeAndUpdateMatrix - - thumb_func_start sub_08007DFC -sub_08007DFC: @ 0x08007DFC - push {lr} - adds r1, r0, #0 - movs r0, #0x80 - lsls r0, r0, #9 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl __divsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - pop {r1} - bx r1 - thumb_func_end sub_08007DFC - - thumb_func_start GetAffineAnimFrame -GetAffineAnimFrame: @ 0x08007E14 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _08007E7C - lsls r4, r0, #1 - adds r4, r4, r0 - lsls r4, r4, #2 - adds r4, r4, r3 - ldrb r3, [r4] - ldr r0, [r1, #0x10] - lsls r3, r3, #2 - adds r3, r3, r0 - ldrb r0, [r4, #1] - ldr r3, [r3] - lsls r0, r0, #3 - adds r0, r0, r3 - ldrh r0, [r0] - strh r0, [r2] - ldrb r3, [r4] - ldr r0, [r1, #0x10] - lsls r3, r3, #2 - adds r3, r3, r0 - ldrb r0, [r4, #1] - ldr r3, [r3] - lsls r0, r0, #3 - adds r0, r0, r3 - ldrh r0, [r0, #2] - strh r0, [r2, #2] - ldrb r3, [r4] - ldr r0, [r1, #0x10] - lsls r3, r3, #2 - adds r3, r3, r0 - ldrb r0, [r4, #1] - ldr r3, [r3] - lsls r0, r0, #3 - adds r0, r0, r3 - ldrb r0, [r0, #4] - strb r0, [r2, #4] - ldrb r3, [r4] - ldr r0, [r1, #0x10] - lsls r3, r3, #2 - adds r3, r3, r0 - ldrb r0, [r4, #1] - ldr r1, [r3] - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r0, [r0, #5] - strb r0, [r2, #5] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08007E7C: .4byte gUnknown_3000B70 - thumb_func_end GetAffineAnimFrame - - thumb_func_start ApplyAffineAnimFrame -ApplyAffineAnimFrame: @ 0x08007E80 - push {r4, lr} - sub sp, #8 - adds r2, r1, #0 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #0 - movs r1, #0 - str r0, [sp] - str r1, [sp, #4] - ldrb r0, [r2, #5] - cmp r0, #0 - beq _08007EA6 - subs r0, #1 - strb r0, [r2, #5] - adds r0, r4, #0 - adds r1, r2, #0 - bl ApplyAffineAnimFrameRelativeAndUpdateMatrix - b _08007EB6 -_08007EA6: - adds r0, r4, #0 - adds r1, r2, #0 - bl ApplyAffineAnimFrameAbsolute - adds r0, r4, #0 - mov r1, sp - bl ApplyAffineAnimFrameRelativeAndUpdateMatrix -_08007EB6: - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ApplyAffineAnimFrame - - thumb_func_start StartSpriteAnim -StartSpriteAnim: @ 0x08007EC0 - adds r2, r0, #0 - adds r2, #0x2a - strb r1, [r2] - adds r0, #0x3f - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - movs r2, #0x11 - rsbs r2, r2, #0 - ands r1, r2 - strb r1, [r0] - bx lr - thumb_func_end StartSpriteAnim - - thumb_func_start StartSpriteAnimIfDifferent -StartSpriteAnimIfDifferent: @ 0x08007ED8 - push {lr} - adds r2, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, #0x2a - ldrb r0, [r0] - cmp r0, r1 - beq _08007EEE - adds r0, r2, #0 - bl StartSpriteAnim -_08007EEE: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end StartSpriteAnimIfDifferent - - thumb_func_start SeekSpriteAnim -SeekSpriteAnim: @ 0x08007EF4 - push {r4, r5, r6, r7, lr} - adds r3, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r4, r3, #0 - adds r4, #0x2c - ldrb r0, [r4] - lsls r0, r0, #0x19 - lsrs r6, r0, #0x1f - subs r1, #1 - adds r0, r3, #0 - adds r0, #0x2b - strb r1, [r0] - ldrb r1, [r4] - movs r7, #0x40 - rsbs r7, r7, #0 - adds r0, r7, #0 - ands r0, r1 - strb r0, [r4] - adds r2, r3, #0 - adds r2, #0x3f - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r2] - ldrb r1, [r4] - movs r5, #0x41 - rsbs r5, r5, #0 - adds r0, r5, #0 - ands r0, r1 - strb r0, [r4] - adds r0, r3, #0 - bl ContinueAnim - ldrb r2, [r4] - movs r0, #0x3f - ands r0, r2 - cmp r0, #0 - beq _08007F5C - lsls r0, r2, #0x1a - lsrs r0, r0, #0x1a - adds r0, #1 - movs r1, #0x3f - ands r0, r1 - adds r1, r7, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r4] -_08007F5C: - lsls r2, r6, #6 - ldrb r1, [r4] - adds r0, r5, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SeekSpriteAnim - - thumb_func_start StartSpriteAffineAnim -StartSpriteAffineAnim: @ 0x08007F70 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r4, r1, #0x18 - lsrs r4, r4, #0x18 - bl GetSpriteMatrixNum - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r4, #0 - bl AffineAnimStateStartAnim - adds r5, #0x3f - ldrb r0, [r5] - movs r1, #8 - orrs r0, r1 - movs r1, #0x21 - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end StartSpriteAffineAnim - - thumb_func_start StartSpriteAffineAnimIfDifferent -StartSpriteAffineAnimIfDifferent: @ 0x08007F9C - push {r4, r5, lr} - adds r5, r0, #0 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - bl GetSpriteMatrixNum - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08007FCC - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r0, [r1] - cmp r0, r4 - beq _08007FC4 - adds r0, r5, #0 - adds r1, r4, #0 - bl StartSpriteAffineAnim -_08007FC4: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08007FCC: .4byte gUnknown_3000B70 - thumb_func_end StartSpriteAffineAnimIfDifferent - - thumb_func_start ChangeSpriteAffineAnim -ChangeSpriteAffineAnim: @ 0x08007FD0 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r4, r1, #0x18 - lsrs r4, r4, #0x18 - bl GetSpriteMatrixNum - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08008004 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - strb r4, [r1] - adds r5, #0x3f - ldrb r0, [r5] - movs r1, #8 - orrs r0, r1 - movs r1, #0x21 - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08008004: .4byte gUnknown_3000B70 - thumb_func_end ChangeSpriteAffineAnim - - thumb_func_start ChangeSpriteAffineAnimIfDifferent -ChangeSpriteAffineAnimIfDifferent: @ 0x08008008 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - bl GetSpriteMatrixNum - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08008038 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r0, [r1] - cmp r0, r4 - beq _08008030 - adds r0, r5, #0 - adds r1, r4, #0 - bl ChangeSpriteAffineAnim -_08008030: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08008038: .4byte gUnknown_3000B70 - thumb_func_end ChangeSpriteAffineAnimIfDifferent - - thumb_func_start SetSpriteSheetFrameTileNum -SetSpriteSheetFrameTileNum: @ 0x0800803C - push {lr} - adds r3, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08008088 - adds r0, r3, #0 - adds r0, #0x2a - ldrb r1, [r0] - ldr r0, [r3, #8] - lsls r1, r1, #2 - adds r1, r1, r0 - adds r0, r3, #0 - adds r0, #0x2b - ldrb r0, [r0] - ldr r1, [r1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r2, [r0] - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bge _08008070 - movs r2, #0 -_08008070: - adds r0, r3, #0 - adds r0, #0x40 - ldrh r1, [r0] - adds r1, r1, r2 - ldr r2, _0800808C - adds r0, r2, #0 - ands r1, r0 - ldrh r2, [r3, #4] - ldr r0, _08008090 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, #4] -_08008088: - pop {r0} - bx r0 - .align 2, 0 -_0800808C: .4byte 0x000003FF -_08008090: .4byte 0xFFFFFC00 - thumb_func_end SetSpriteSheetFrameTileNum - - thumb_func_start ResetAffineAnimData -ResetAffineAnimData: @ 0x08008094 - push {r4, lr} - ldr r1, _080080C0 - movs r0, #0 - strb r0, [r1] - ldr r1, _080080C4 - movs r0, #0 - str r0, [r1] - bl ResetOamMatrices - movs r4, #0 -_080080A8: - adds r0, r4, #0 - bl AffineAnimStateReset - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x1f - bls _080080A8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080080C0: .4byte gUnknown_2021C3C -_080080C4: .4byte gUnknown_30030B8 - thumb_func_end ResetAffineAnimData - - thumb_func_start sub_080080C8 -sub_080080C8: @ 0x080080C8 - push {r4, lr} - movs r2, #0 - movs r1, #1 - ldr r0, _080080E8 - ldr r4, [r0] - adds r3, r0, #0 -_080080D4: - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - bne _080080EC - ldr r0, [r3] - orrs r0, r1 - str r0, [r3] - adds r0, r2, #0 - b _080080FA - .align 2, 0 -_080080E8: .4byte gUnknown_30030B8 -_080080EC: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r1, r1, #1 - cmp r2, #0x1f - bls _080080D4 - movs r0, #0xff -_080080FA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_080080C8 - - thumb_func_start FreeOamMatrix -FreeOamMatrix: @ 0x08008100 - push {lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - movs r0, #0 - movs r1, #1 - ldr r3, _0800813C - cmp r0, r2 - bhs _0800811E -_08008112: - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #1 - cmp r0, r2 - blo _08008112 -_0800811E: - ldr r0, [r3] - bics r0, r1 - str r0, [r3] - movs r1, #0x80 - lsls r1, r1, #1 - str r1, [sp] - adds r0, r2, #0 - movs r2, #0 - movs r3, #0 - bl SetOamMatrix - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_0800813C: .4byte gUnknown_30030B8 - thumb_func_end FreeOamMatrix - - thumb_func_start InitSpriteAffineAnim -InitSpriteAffineAnim: @ 0x08008140 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_080080C8 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0xff - beq _08008188 - ldrb r3, [r4, #1] - lsrs r1, r3, #6 - ldrb r2, [r4, #3] - lsrs r2, r2, #6 - lsls r3, r3, #0x1e - lsrs r3, r3, #0x1e - adds r0, r4, #0 - bl CalcCenterToCornerVec - movs r0, #0x1f - adds r1, r5, #0 - ands r1, r0 - lsls r1, r1, #1 - ldrb r2, [r4, #3] - movs r0, #0x3f - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #3] - adds r2, r4, #0 - adds r2, #0x3f - ldrb r0, [r2] - movs r1, #8 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - bl AffineAnimStateReset -_08008188: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end InitSpriteAffineAnim - - thumb_func_start SetOamMatrixRotationScaling -SetOamMatrixRotationScaling: @ 0x08008190 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0x10 - adds r6, r0, #0 - adds r0, r1, #0 - adds r4, r2, #0 - adds r5, r3, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - bl sub_08007DFC - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _08008208 - mov r8, r1 - ldr r1, [sp] - mov r2, r8 - ands r1, r2 - orrs r1, r0 - str r1, [sp] - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - adds r0, r4, #0 - bl sub_08007DFC - lsls r0, r0, #0x10 - ldr r2, _0800820C - ldr r1, [sp] - ands r1, r2 - orrs r1, r0 - str r1, [sp] - ldr r0, [sp, #4] - mov r1, r8 - ands r0, r1 - orrs r0, r5 - str r0, [sp, #4] - add r4, sp, #8 - mov r0, sp - adds r1, r4, #0 - movs r2, #1 - movs r3, #2 - bl ObjAffineSet - adds r0, r6, #0 - adds r1, r4, #0 - bl CopyOamMatrix - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08008208: .4byte 0xFFFF0000 -_0800820C: .4byte 0x0000FFFF - thumb_func_end SetOamMatrixRotationScaling - - thumb_func_start LoadSpriteSheet -LoadSpriteSheet: @ 0x08008210 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrh r0, [r5, #4] - lsrs r0, r0, #5 - bl AllocSpriteTiles - lsls r4, r0, #0x10 - asrs r6, r4, #0x10 - cmp r6, #0 - blt _0800824C - ldrh r0, [r5, #6] - lsrs r4, r4, #0x10 - ldrh r2, [r5, #4] - lsrs r2, r2, #5 - adds r1, r4, #0 - bl AllocSpriteTileRange - ldr r0, [r5] - lsls r1, r6, #5 - ldr r2, _08008248 - adds r1, r1, r2 - ldrh r2, [r5, #4] - lsrs r2, r2, #1 - bl CpuSet - adds r0, r4, #0 - b _0800824E - .align 2, 0 -_08008248: .4byte 0x06010000 -_0800824C: - movs r0, #0 -_0800824E: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end LoadSpriteSheet - - thumb_func_start LoadSpriteSheets -LoadSpriteSheets: @ 0x08008254 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - ldr r0, [r5] - cmp r0, #0 - beq _08008278 -_08008260: - lsls r0, r4, #3 - adds r0, r5, r0 - bl LoadSpriteSheet - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #3 - adds r0, r0, r5 - ldr r0, [r0] - cmp r0, #0 - bne _08008260 -_08008278: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LoadSpriteSheets - - thumb_func_start FreeSpriteTilesByTag -FreeSpriteTilesByTag: @ 0x08008280 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl IndexOfSpriteTileTag - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xff - beq _080082DE - ldr r0, _080082E8 - lsls r1, r4, #2 - adds r2, r1, r0 - adds r0, #2 - adds r1, r1, r0 - ldrh r0, [r1] - ldrh r3, [r2] - adds r0, r3, r0 - ldr r1, _080082EC - mov r8, r1 - lsls r5, r4, #1 - cmp r3, r0 - bge _080082D6 - ldr r1, _080082F0 - mov ip, r1 - movs r6, #7 - movs r7, #1 - adds r4, r0, #0 -_080082BA: - lsrs r2, r3, #3 - add r2, ip - adds r0, r3, #0 - ands r0, r6 - adds r1, r7, #0 - lsls r1, r0 - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, r4 - blt _080082BA -_080082D6: - mov r0, r8 - adds r1, r5, r0 - ldr r0, _080082F4 - strh r0, [r1] -_080082DE: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080082E8: .4byte gUnknown_3000A70 -_080082EC: .4byte gUnknown_30009F0 -_080082F0: .4byte gUnknown_2021AB8 -_080082F4: .4byte 0x0000FFFF - thumb_func_end FreeSpriteTilesByTag - - thumb_func_start FreeSpriteTileRanges -FreeSpriteTileRanges: @ 0x080082F8 - push {r4, r5, r6, r7, lr} - movs r2, #0 - ldr r7, _0800832C - ldr r0, _08008330 - adds r6, r0, #0 - ldr r4, _08008334 - movs r3, #0 - adds r5, r4, #2 -_08008308: - lsls r1, r2, #1 - adds r1, r1, r7 - ldrh r0, [r1] - orrs r0, r6 - strh r0, [r1] - lsls r1, r2, #2 - adds r0, r1, r4 - strh r3, [r0] - adds r1, r1, r5 - strh r3, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x3f - bls _08008308 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800832C: .4byte gUnknown_30009F0 -_08008330: .4byte 0x0000FFFF -_08008334: .4byte gUnknown_3000A70 - thumb_func_end FreeSpriteTileRanges - - thumb_func_start GetSpriteTileStartByTag -GetSpriteTileStartByTag: @ 0x08008338 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl IndexOfSpriteTileTag - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xff - beq _08008358 - ldr r0, _08008354 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r0, [r1] - b _0800835A - .align 2, 0 -_08008354: .4byte gUnknown_3000A70 -_08008358: - ldr r0, _08008360 -_0800835A: - pop {r1} - bx r1 - .align 2, 0 -_08008360: .4byte 0x0000FFFF - thumb_func_end GetSpriteTileStartByTag - - thumb_func_start IndexOfSpriteTileTag -IndexOfSpriteTileTag: @ 0x08008364 - push {lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - movs r1, #0 - ldr r3, _0800837C -_0800836E: - lsls r0, r1, #1 - adds r0, r0, r3 - ldrh r0, [r0] - cmp r0, r2 - bne _08008380 - adds r0, r1, #0 - b _0800838C - .align 2, 0 -_0800837C: .4byte gUnknown_30009F0 -_08008380: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x3f - bls _0800836E - movs r0, #0xff -_0800838C: - pop {r1} - bx r1 - thumb_func_end IndexOfSpriteTileTag - - thumb_func_start GetSpriteTileTagByTileStart -GetSpriteTileTagByTileStart: @ 0x08008390 - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - movs r2, #0 - ldr r6, _080083B8 - ldr r5, _080083BC - ldr r4, _080083C0 -_0800839E: - lsls r0, r2, #1 - adds r1, r0, r6 - ldrh r0, [r1] - cmp r0, r5 - beq _080083C4 - lsls r0, r2, #2 - adds r0, r0, r4 - ldrh r0, [r0] - cmp r0, r3 - bne _080083C4 - ldrh r0, [r1] - b _080083D0 - .align 2, 0 -_080083B8: .4byte gUnknown_30009F0 -_080083BC: .4byte 0x0000FFFF -_080083C0: .4byte gUnknown_3000A70 -_080083C4: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x3f - bls _0800839E - ldr r0, _080083D8 -_080083D0: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080083D8: .4byte 0x0000FFFF - thumb_func_end GetSpriteTileTagByTileStart - - thumb_func_start AllocSpriteTileRange -AllocSpriteTileRange: @ 0x080083DC - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - ldr r0, _08008418 - bl IndexOfSpriteTileTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0800841C - lsls r1, r0, #1 - adds r1, r1, r2 - strh r4, [r1] - ldr r1, _08008420 - lsls r0, r0, #2 - adds r2, r0, r1 - strh r5, [r2] - adds r1, #2 - adds r0, r0, r1 - strh r6, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08008418: .4byte 0x0000FFFF -_0800841C: .4byte gUnknown_30009F0 -_08008420: .4byte gUnknown_3000A70 - thumb_func_end AllocSpriteTileRange - - thumb_func_start FreeAllSpritePalettes -FreeAllSpritePalettes: @ 0x08008424 - push {r4, lr} - ldr r1, _08008450 - movs r0, #0 - strb r0, [r1] - movs r2, #0 - ldr r4, _08008454 - ldr r0, _08008458 - adds r3, r0, #0 -_08008434: - lsls r0, r2, #1 - adds r0, r0, r4 - ldrh r1, [r0] - orrs r1, r3 - strh r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xf - bls _08008434 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08008450: .4byte gUnknown_30030BC -_08008454: .4byte gUnknown_3000CF0 -_08008458: .4byte 0x0000FFFF - thumb_func_end FreeAllSpritePalettes - - thumb_func_start LoadSpritePalette -LoadSpritePalette: @ 0x0800845C - push {r4, r5, lr} - adds r5, r0, #0 - ldrh r0, [r5, #4] - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xff - beq _08008472 - adds r0, r4, #0 - b _080084A2 -_08008472: - ldr r0, _08008498 - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xff - beq _080084A0 - ldr r1, _0800849C - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r5, #4] - strh r1, [r0] - ldr r0, [r5] - lsls r1, r4, #4 - bl DoLoadSpritePalette - adds r0, r4, #0 - b _080084A2 - .align 2, 0 -_08008498: .4byte 0x0000FFFF -_0800849C: .4byte gUnknown_3000CF0 -_080084A0: - movs r0, #0xff -_080084A2: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end LoadSpritePalette - - thumb_func_start LoadSpritePalettes -LoadSpritePalettes: @ 0x080084A8 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - b _080084B6 -_080084B0: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_080084B6: - lsls r0, r4, #3 - adds r1, r0, r5 - ldr r0, [r1] - cmp r0, #0 - beq _080084CE - adds r0, r1, #0 - bl LoadSpritePalette - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080084B0 -_080084CE: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end LoadSpritePalettes - - thumb_func_start DoLoadSpritePalette -DoLoadSpritePalette: @ 0x080084D4 - push {lr} - lsls r1, r1, #0x10 - movs r2, #0x80 - lsls r2, r2, #0x11 - adds r1, r1, r2 - lsrs r1, r1, #0x10 - movs r2, #0x20 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end DoLoadSpritePalette - - thumb_func_start AllocSpritePalette -AllocSpritePalette: @ 0x080084EC - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, _0800850C - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xff - beq _08008514 - ldr r1, _08008510 - lsls r0, r2, #1 - adds r0, r0, r1 - strh r4, [r0] - adds r0, r2, #0 - b _08008516 - .align 2, 0 -_0800850C: .4byte 0x0000FFFF -_08008510: .4byte gUnknown_3000CF0 -_08008514: - movs r0, #0xff -_08008516: - pop {r4} - pop {r1} - bx r1 - thumb_func_end AllocSpritePalette - - thumb_func_start IndexOfSpritePaletteTag -IndexOfSpritePaletteTag: @ 0x0800851C - push {lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, _0800853C - ldrb r1, [r0] - cmp r1, #0xf - bhi _0800854E - ldr r3, _08008540 -_0800852C: - lsls r0, r1, #1 - adds r0, r0, r3 - ldrh r0, [r0] - cmp r0, r2 - bne _08008544 - adds r0, r1, #0 - b _08008550 - .align 2, 0 -_0800853C: .4byte gUnknown_30030BC -_08008540: .4byte gUnknown_3000CF0 -_08008544: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xf - bls _0800852C -_0800854E: - movs r0, #0xff -_08008550: - pop {r1} - bx r1 - thumb_func_end IndexOfSpritePaletteTag - - thumb_func_start sub_08008554 -sub_08008554: @ 0x08008554 - lsls r0, r0, #0x18 - ldr r1, _08008560 - lsrs r0, r0, #0x17 - adds r0, r0, r1 - ldrh r0, [r0] - bx lr - .align 2, 0 -_08008560: .4byte gUnknown_3000CF0 - thumb_func_end sub_08008554 - - thumb_func_start FreeSpritePaletteByTag -FreeSpritePaletteByTag: @ 0x08008564 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xff - beq _08008580 - ldr r0, _08008584 - lsls r1, r1, #1 - adds r1, r1, r0 - ldr r0, _08008588 - strh r0, [r1] -_08008580: - pop {r0} - bx r0 - .align 2, 0 -_08008584: .4byte gUnknown_3000CF0 -_08008588: .4byte 0x0000FFFF - thumb_func_end FreeSpritePaletteByTag - - thumb_func_start SetSubspriteTables -SetSubspriteTables: @ 0x0800858C - str r1, [r0, #0x18] - adds r0, #0x42 - movs r1, #0x40 - strb r1, [r0] - bx lr - .align 2, 0 - thumb_func_end SetSubspriteTables - - thumb_func_start AddSpriteToOamBuffer -AddSpriteToOamBuffer: @ 0x08008598 - push {r4, lr} - adds r4, r0, #0 - adds r3, r1, #0 - ldr r1, _080085AC - ldrb r0, [r3] - ldrb r1, [r1] - cmp r0, r1 - blo _080085B0 - movs r0, #1 - b _080085F8 - .align 2, 0 -_080085AC: .4byte gUnknown_2021AB4 -_080085B0: - ldr r0, [r4, #0x18] - cmp r0, #0 - beq _080085C4 - adds r0, r4, #0 - adds r0, #0x42 - ldrb r1, [r0] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0 - bne _080085E4 -_080085C4: - ldr r0, _080085E0 - ldrb r2, [r3] - lsls r2, r2, #3 - adds r0, #0x38 - adds r2, r2, r0 - ldr r0, [r4] - ldr r1, [r4, #4] - str r0, [r2] - str r1, [r2, #4] - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - movs r0, #0 - b _080085F8 - .align 2, 0 -_080085E0: .4byte gUnknown_3002360 -_080085E4: - ldrb r1, [r3] - lsls r1, r1, #3 - ldr r0, _08008600 - adds r1, r1, r0 - adds r0, r4, #0 - adds r2, r3, #0 - bl AddSubspritesToOamBuffer - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_080085F8: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08008600: .4byte gUnknown_3002398 - thumb_func_end AddSpriteToOamBuffer - - thumb_func_start AddSubspritesToOamBuffer -AddSubspritesToOamBuffer: @ 0x08008604 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - adds r3, r0, #0 - str r1, [sp] - mov r8, r2 - ldr r0, _08008624 - ldrb r1, [r2] - ldrb r0, [r0] - cmp r1, r0 - blo _08008628 -_08008620: - movs r0, #1 - b _080087FE - .align 2, 0 -_08008624: .4byte gUnknown_2021AB4 -_08008628: - adds r0, r3, #0 - adds r0, #0x42 - ldrb r1, [r0] - lsls r1, r1, #0x1a - lsrs r1, r1, #0x17 - ldr r2, [r3, #0x18] - adds r7, r2, r1 - mov ip, r3 - str r0, [sp, #0x18] - cmp r7, #0 - beq _08008644 - ldr r0, [r7, #4] - cmp r0, #0 - bne _0800865A -_08008644: - mov r2, ip - ldr r0, [r2] - ldr r1, [r2, #4] - ldr r2, [sp] - str r0, [r2] - str r1, [r2, #4] - mov r1, r8 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080087FC -_0800865A: - mov r2, ip - ldrh r0, [r2, #4] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - str r0, [sp, #4] - ldrb r0, [r7] - str r0, [sp, #0xc] - ldrb r0, [r2, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - asrs r1, r0, #3 - str r1, [sp, #0x10] - movs r1, #1 - ldr r2, [sp, #0x10] - ands r2, r1 - str r2, [sp, #0x10] - asrs r0, r0, #4 - mov sl, r0 - ands r0, r1 - mov sl, r0 - mov r1, ip - ldrh r0, [r1, #2] - lsls r0, r0, #0x17 - lsrs r0, r0, #0x17 - adds r1, #0x28 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - mov r1, ip - ldrb r0, [r1] - adds r1, #0x29 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #8] - movs r0, #0 - mov sb, r0 - ldr r1, [sp, #0xc] - cmp sb, r1 - blo _080086B8 - b _080087FC -_080086B8: - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - str r0, [sp, #0x14] -_080086BE: - mov r2, r8 - ldrb r0, [r2] - ldr r1, _08008810 - ldrb r1, [r1] - cmp r0, r1 - bhs _08008620 - ldr r0, [r7, #4] - mov r2, sb - lsls r6, r2, #2 - adds r2, r6, r0 - movs r0, #0 - ldrsb r0, [r2, r0] - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r0, #1 - ldrsb r0, [r2, r0] - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, [sp, #0x10] - cmp r0, #0 - beq _08008714 - ldr r0, [r2] - lsls r1, r0, #0xc - lsrs r1, r1, #0x1e - lsls r1, r1, #2 - lsls r0, r0, #0xe - lsrs r0, r0, #0x1e - lsls r0, r0, #4 - adds r1, r1, r0 - ldr r0, _08008814 - adds r1, r1, r0 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - mvns r0, r4 - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_08008714: - mov r1, sl - cmp r1, #0 - beq _08008746 - ldr r0, [r2] - lsls r1, r0, #0xc - lsrs r1, r1, #0x1e - lsls r1, r1, #2 - lsls r0, r0, #0xe - lsrs r0, r0, #0x1e - lsls r0, r0, #4 - adds r1, r1, r0 - ldr r2, _08008814 - adds r1, r1, r2 - ldrb r1, [r1, #1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - mvns r0, r5 - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_08008746: - mov r1, sb - lsls r0, r1, #3 - ldr r2, [sp] - adds r3, r0, r2 - mov r2, ip - ldr r0, [r2] - ldr r1, [r2, #4] - str r0, [r3] - str r1, [r3, #4] - ldr r0, [r7, #4] - adds r0, r6, r0 - ldr r1, [r0] - lsls r1, r1, #0xe - lsrs r1, r1, #0x1e - lsls r1, r1, #6 - ldrb r2, [r3, #1] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #1] - ldr r0, [r7, #4] - adds r0, r6, r0 - ldr r1, [r0] - lsls r1, r1, #0xc - lsrs r1, r1, #0x1e - lsls r1, r1, #6 - ldrb r2, [r3, #3] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #3] - lsls r1, r4, #0x10 - asrs r1, r1, #0x10 - ldr r0, [sp, #0x14] - adds r1, r0, r1 - ldr r2, _08008818 - adds r0, r2, #0 - ands r1, r0 - ldrh r2, [r3, #2] - ldr r0, _0800881C - ands r0, r2 - orrs r0, r1 - strh r0, [r3, #2] - ldr r1, [sp, #8] - adds r0, r1, r5 - strb r0, [r3] - ldr r0, [r7, #4] - adds r0, r6, r0 - ldr r1, [r0] - lsls r1, r1, #2 - lsrs r1, r1, #0x16 - ldr r2, [sp, #4] - adds r1, r2, r1 - ldr r2, _08008820 - adds r0, r2, #0 - ands r1, r0 - ldrh r2, [r3, #4] - ldr r0, _08008824 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, #4] - ldr r0, [sp, #0x18] - ldrb r1, [r0] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0x80 - beq _080087E2 - ldr r0, [r7, #4] - adds r0, r6, r0 - ldr r1, [r0] - lsrs r1, r1, #0x1e - lsls r1, r1, #2 - ldrb r2, [r3, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #5] -_080087E2: - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - mov r1, r8 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r2, [sp, #0xc] - cmp sb, r2 - bhs _080087FC - b _080086BE -_080087FC: - movs r0, #0 -_080087FE: - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08008810: .4byte gUnknown_2021AB4 -_08008814: .4byte gUnknown_82BF3BC -_08008818: .4byte 0x000001FF -_0800881C: .4byte 0xFFFFFE00 -_08008820: .4byte 0x000003FF -_08008824: .4byte 0xFFFFFC00 - thumb_func_end AddSubspritesToOamBuffer - - thumb_func_start StringCopy10 -StringCopy10: @ 0x08008828 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #5 - movs r3, #0 -_08008830: - adds r2, r4, r3 - adds r0, r1, r3 - ldrb r0, [r0] - strb r0, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08008844 - adds r0, r2, #0 - b _08008854 -_08008844: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, r5 - blo _08008830 - adds r0, r4, r3 - movs r1, #0xff - strb r1, [r0] -_08008854: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end StringCopy10 - - thumb_func_start StringGetEnd10 -StringGetEnd10: @ 0x0800885C - push {r4, lr} - adds r3, r0, #0 - movs r4, #5 - movs r2, #0 -_08008864: - adds r1, r3, r2 - ldrb r0, [r1] - cmp r0, #0xff - bne _08008870 - adds r0, r1, #0 - b _08008880 -_08008870: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, r4 - blo _08008864 - adds r0, r3, r2 - movs r1, #0xff - strb r1, [r0] -_08008880: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end StringGetEnd10 - - thumb_func_start StringCopy7 -StringCopy7: @ 0x08008888 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #5 - movs r3, #0 -_08008890: - adds r2, r4, r3 - adds r0, r1, r3 - ldrb r0, [r0] - strb r0, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080088A4 - adds r0, r2, #0 - b _080088B0 -_080088A4: - adds r3, #1 - cmp r3, r5 - blt _08008890 - adds r0, r4, r3 - movs r1, #0xff - strb r1, [r0] -_080088B0: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end StringCopy7 - - thumb_func_start StringCopy -StringCopy: @ 0x080088B8 - push {lr} - adds r3, r0, #0 - b _080088C4 -_080088BE: - strb r2, [r3] - adds r3, #1 - adds r1, #1 -_080088C4: - ldrb r2, [r1] - adds r0, r2, #0 - cmp r0, #0xff - bne _080088BE - movs r0, #0xff - strb r0, [r3] - adds r0, r3, #0 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end StringCopy - - thumb_func_start StringAppend -StringAppend: @ 0x080088D8 - push {lr} - adds r2, r0, #0 - b _080088E0 -_080088DE: - adds r2, #1 -_080088E0: - ldrb r0, [r2] - cmp r0, #0xff - bne _080088DE - adds r0, r2, #0 - bl StringCopy - pop {r1} - bx r1 - thumb_func_end StringAppend - - thumb_func_start StringCopyN -StringCopyN: @ 0x080088F0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - movs r3, #0 - adds r0, r5, #0 - cmp r3, r0 - bhs _08008916 - adds r2, r0, #0 -_08008904: - adds r1, r4, r3 - adds r0, r6, r3 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, r2 - blo _08008904 -_08008916: - adds r0, r4, r5 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end StringCopyN - - thumb_func_start StringAppendN -StringAppendN: @ 0x08008920 - push {lr} - adds r3, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - b _0800892C -_0800892A: - adds r3, #1 -_0800892C: - ldrb r0, [r3] - cmp r0, #0xff - bne _0800892A - adds r0, r3, #0 - bl StringCopyN - pop {r1} - bx r1 - thumb_func_end StringAppendN - - thumb_func_start StringLength -StringLength: @ 0x0800893C - push {lr} - adds r2, r0, #0 - movs r1, #0 - ldrb r0, [r2] - cmp r0, #0xff - beq _08008956 -_08008948: - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #0xff - bne _08008948 -_08008956: - adds r0, r1, #0 - pop {r1} - bx r1 - thumb_func_end StringLength - - thumb_func_start StringCompare -StringCompare: @ 0x0800895C - push {lr} - adds r2, r0, #0 - b _0800896E -_08008962: - cmp r0, #0xff - bne _0800896A - movs r0, #0 - b _0800897C -_0800896A: - adds r2, #1 - adds r1, #1 -_0800896E: - ldrb r0, [r2] - ldrb r3, [r1] - cmp r0, r3 - beq _08008962 - ldrb r0, [r2] - ldrb r1, [r1] - subs r0, r0, r1 -_0800897C: - pop {r1} - bx r1 - thumb_func_end StringCompare - - thumb_func_start StringCompareN -StringCompareN: @ 0x08008980 - push {r4, lr} - adds r3, r0, #0 - b _08008998 -_08008986: - cmp r0, #0xff - beq _08008994 - adds r3, #1 - adds r1, #1 - subs r2, #1 - cmp r2, #0 - bne _08008998 -_08008994: - movs r0, #0 - b _080089A6 -_08008998: - ldrb r0, [r3] - ldrb r4, [r1] - cmp r0, r4 - beq _08008986 - ldrb r0, [r3] - ldrb r1, [r1] - subs r0, r0, r1 -_080089A6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end StringCompareN - - thumb_func_start IsStringLengthAtLeast -IsStringLengthAtLeast: @ 0x080089AC - push {lr} - adds r3, r0, #0 - movs r2, #0 - cmp r2, r1 - bge _080089D0 -_080089B6: - adds r0, r3, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080089C6 - cmp r0, #0xff - beq _080089C6 - movs r0, #1 - b _080089D2 -_080089C6: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, r1 - blt _080089B6 -_080089D0: - movs r0, #0 -_080089D2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsStringLengthAtLeast - - thumb_func_start sub_080089D8 -sub_080089D8: @ 0x080089D8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - adds r6, r1, #0 - lsls r3, r3, #0x18 - ldr r0, _08008A28 - lsrs r3, r3, #0x16 - subs r3, #4 - adds r3, r3, r0 - ldr r0, [r3] - movs r7, #0 - cmp r2, #1 - bne _080089F6 - movs r7, #2 -_080089F6: - cmp r2, #2 - bne _080089FC - movs r7, #1 -_080089FC: - adds r5, r0, #0 - cmp r5, #0 - ble _08008A68 - ldr r0, _08008A2C - mov r8, r0 -_08008A06: - adds r0, r6, #0 - adds r1, r5, #0 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - adds r0, r5, #0 - muls r0, r2, r0 - subs r1, r6, r0 - cmp r7, #1 - bne _08008A30 - adds r3, r4, #0 - adds r4, #1 - cmp r2, #9 - bls _08008A42 - b _08008A4A - .align 2, 0 -_08008A28: .4byte gUnknown_82BF44C -_08008A2C: .4byte gUnknown_82BF43C -_08008A30: - cmp r2, #0 - bne _08008A38 - cmp r5, #1 - bne _08008A50 -_08008A38: - movs r7, #1 - adds r3, r4, #0 - adds r4, #1 - cmp r2, #9 - bhi _08008A4A -_08008A42: - mov r6, r8 - adds r0, r2, r6 - ldrb r0, [r0] - b _08008A4C -_08008A4A: - movs r0, #0xac -_08008A4C: - strb r0, [r3] - b _08008A58 -_08008A50: - cmp r7, #2 - bne _08008A58 - strb r2, [r4] - adds r4, #1 -_08008A58: - adds r6, r1, #0 - adds r0, r5, #0 - movs r1, #0xa - bl __divsi3 - adds r5, r0, #0 - cmp r5, #0 - bgt _08008A06 -_08008A68: - movs r0, #0xff - strb r0, [r4] - adds r0, r4, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_080089D8 - - thumb_func_start sub_08008A78 -sub_08008A78: @ 0x08008A78 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - adds r6, r1, #0 - lsls r3, r3, #0x18 - ldr r0, _08008AC8 - lsrs r3, r3, #0x16 - subs r3, #4 - adds r3, r3, r0 - ldr r0, [r3] - movs r7, #0 - cmp r2, #1 - bne _08008A96 - movs r7, #2 -_08008A96: - cmp r2, #2 - bne _08008A9C - movs r7, #1 -_08008A9C: - adds r5, r0, #0 - cmp r5, #0 - ble _08008B08 - ldr r0, _08008ACC - mov r8, r0 -_08008AA6: - adds r0, r6, #0 - adds r1, r5, #0 - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - adds r0, r5, #0 - muls r0, r2, r0 - subs r1, r6, r0 - cmp r7, #1 - bne _08008AD0 - adds r3, r4, #0 - adds r4, #1 - cmp r2, #9 - bls _08008AE2 - b _08008AEA - .align 2, 0 -_08008AC8: .4byte gUnknown_82BF44C -_08008ACC: .4byte gUnknown_82BF43C -_08008AD0: - cmp r2, #0 - bne _08008AD8 - cmp r5, #1 - bne _08008AF0 -_08008AD8: - movs r7, #1 - adds r3, r4, #0 - adds r4, #1 - cmp r2, #9 - bhi _08008AEA -_08008AE2: - mov r6, r8 - adds r0, r2, r6 - ldrb r0, [r0] - b _08008AEC -_08008AEA: - movs r0, #0xac -_08008AEC: - strb r0, [r3] - b _08008AF8 -_08008AF0: - cmp r7, #2 - bne _08008AF8 - strb r2, [r4] - adds r4, #1 -_08008AF8: - adds r6, r1, #0 - adds r0, r5, #0 - movs r1, #0xa - bl __divsi3 - adds r5, r0, #0 - cmp r5, #0 - bgt _08008AA6 -_08008B08: - movs r0, #0xff - strb r0, [r4] - adds r0, r4, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_08008A78 - - thumb_func_start sub_08008B18 -sub_08008B18: @ 0x08008B18 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r6, r0, #0 - adds r7, r1, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r1, #1 - movs r0, #1 - cmp r1, r3 - bhs _08008B3C -_08008B30: - lsls r1, r1, #4 - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r3 - blo _08008B30 -_08008B3C: - movs r3, #0 - cmp r2, #1 - bne _08008B44 - movs r3, #2 -_08008B44: - cmp r2, #2 - bne _08008B4A - movs r3, #1 -_08008B4A: - adds r5, r1, #0 - cmp r5, #0 - ble _08008BB8 - ldr r0, _08008B7C - mov r8, r0 -_08008B54: - adds r0, r7, #0 - adds r1, r5, #0 - str r3, [sp] - bl __divsi3 - adds r4, r0, #0 - adds r0, r7, #0 - adds r1, r5, #0 - bl __modsi3 - adds r1, r0, #0 - ldr r3, [sp] - cmp r3, #1 - bne _08008B80 - adds r2, r6, #0 - adds r6, #1 - cmp r4, #0xf - bls _08008B92 - b _08008B9A - .align 2, 0 -_08008B7C: .4byte gUnknown_82BF43C -_08008B80: - cmp r4, #0 - bne _08008B88 - cmp r5, #1 - bne _08008BA0 -_08008B88: - movs r3, #1 - adds r2, r6, #0 - adds r6, #1 - cmp r4, #0xf - bhi _08008B9A -_08008B92: - mov r7, r8 - adds r0, r4, r7 - ldrb r0, [r0] - b _08008B9C -_08008B9A: - movs r0, #0xac -_08008B9C: - strb r0, [r2] - b _08008BA8 -_08008BA0: - cmp r3, #2 - bne _08008BA8 - strb r4, [r6] - adds r6, #1 -_08008BA8: - adds r7, r1, #0 - adds r0, r5, #0 - cmp r5, #0 - bge _08008BB2 - adds r0, #0xf -_08008BB2: - asrs r5, r0, #4 - cmp r5, #0 - bgt _08008B54 -_08008BB8: - movs r0, #0xff - strb r0, [r6] - adds r0, r6, #0 - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08008B18 - - thumb_func_start StringExpandPlaceholders -StringExpandPlaceholders: @ 0x08008BCC - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 -_08008BD2: - ldrb r2, [r5] - adds r5, #1 - adds r0, r2, #0 - subs r0, #0xfa - cmp r0, #5 - bhi _08008CA6 - lsls r0, r0, #2 - ldr r1, _08008BE8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08008BE8: .4byte _08008BEC -_08008BEC: @ jump table - .4byte _08008CA6 @ case 0 - .4byte _08008CA6 @ case 1 - .4byte _08008C18 @ case 2 - .4byte _08008C04 @ case 3 - .4byte _08008CA6 @ case 4 - .4byte _08008CAC @ case 5 -_08008C04: - ldrb r0, [r5] - adds r5, #1 - bl GetExpandedPlaceholder - adds r1, r0, #0 - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r4, r0, #0 - b _08008BD2 -_08008C18: - strb r2, [r4] - adds r4, #1 - ldrb r2, [r5] - adds r5, #1 - strb r2, [r4] - adds r4, #1 - subs r0, r2, #4 - cmp r0, #0x14 - bhi _08008C9C - lsls r0, r0, #2 - ldr r1, _08008C34 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08008C34: .4byte _08008C38 -_08008C38: @ jump table - .4byte _08008C8C @ case 0 - .4byte _08008C9C @ case 1 - .4byte _08008C9C @ case 2 - .4byte _08008BD2 @ case 3 - .4byte _08008C9C @ case 4 - .4byte _08008BD2 @ case 5 - .4byte _08008C9C @ case 6 - .4byte _08008C94 @ case 7 - .4byte _08008C9C @ case 8 - .4byte _08008C9C @ case 9 - .4byte _08008C9C @ case 10 - .4byte _08008BD2 @ case 11 - .4byte _08008C9C @ case 12 - .4byte _08008C9C @ case 13 - .4byte _08008C9C @ case 14 - .4byte _08008C9C @ case 15 - .4byte _08008C9C @ case 16 - .4byte _08008BD2 @ case 17 - .4byte _08008BD2 @ case 18 - .4byte _08008BD2 @ case 19 - .4byte _08008BD2 @ case 20 -_08008C8C: - ldrb r0, [r5] - strb r0, [r4] - adds r5, #1 - adds r4, #1 -_08008C94: - ldrb r0, [r5] - strb r0, [r4] - adds r5, #1 - adds r4, #1 -_08008C9C: - ldrb r0, [r5] - strb r0, [r4] - adds r5, #1 - adds r4, #1 - b _08008BD2 -_08008CA6: - strb r2, [r4] - adds r4, #1 - b _08008BD2 -_08008CAC: - movs r0, #0xff - strb r0, [r4] - adds r0, r4, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end StringExpandPlaceholders - - thumb_func_start StringBraille -StringBraille: @ 0x08008CB8 - push {r4, r5, r6, lr} - sub sp, #0xc - adds r5, r0, #0 - adds r6, r1, #0 - ldr r1, _08008CF0 - mov r0, sp - movs r2, #4 - bl memcpy - add r4, sp, #4 - ldr r1, _08008CF4 - adds r0, r4, #0 - movs r2, #5 - bl memcpy - adds r0, r5, #0 - mov r1, sp -_08008CDA: - bl StringCopy - adds r5, r0, #0 -_08008CE0: - ldrb r0, [r6] - adds r6, #1 - cmp r0, #0xfe - beq _08008CF8 - cmp r0, #0xff - bne _08008CFE - b _08008D0A - .align 2, 0 -_08008CF0: .4byte gUnknown_82BF474 -_08008CF4: .4byte gUnknown_82BF478 -_08008CF8: - adds r0, r5, #0 - adds r1, r4, #0 - b _08008CDA -_08008CFE: - strb r0, [r5] - adds r5, #1 - adds r0, #0x40 - strb r0, [r5] - adds r5, #1 - b _08008CE0 -_08008D0A: - strb r0, [r5] - adds r0, r5, #0 - add sp, #0xc - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end StringBraille - - thumb_func_start sub_08008D18 -sub_08008D18: @ 0x08008D18 - ldr r0, _08008D1C - bx lr - .align 2, 0 -_08008D1C: .4byte gUnknown_2022064 - thumb_func_end sub_08008D18 - - thumb_func_start sub_08008D20 -sub_08008D20: @ 0x08008D20 - ldr r0, _08008D28 - ldr r0, [r0] - bx lr - .align 2, 0 -_08008D28: .4byte gUnknown_3005AF0 - thumb_func_end sub_08008D20 - - thumb_func_start sub_08008D2C -sub_08008D2C: @ 0x08008D2C - ldr r0, _08008D30 - bx lr - .align 2, 0 -_08008D30: .4byte gUnknown_2021C40 - thumb_func_end sub_08008D2C - - thumb_func_start sub_08008D34 -sub_08008D34: @ 0x08008D34 - ldr r0, _08008D38 - bx lr - .align 2, 0 -_08008D38: .4byte gUnknown_2021C54 - thumb_func_end sub_08008D34 - - thumb_func_start sub_08008D3C -sub_08008D3C: @ 0x08008D3C - ldr r0, _08008D40 - bx lr - .align 2, 0 -_08008D40: .4byte gUnknown_2021C68 - thumb_func_end sub_08008D3C - - thumb_func_start sub_08008D44 -sub_08008D44: @ 0x08008D44 - push {lr} - ldr r0, _08008D54 - ldr r0, [r0] - ldrb r0, [r0, #8] - cmp r0, #0 - beq _08008D5C - ldr r0, _08008D58 - b _08008D5E - .align 2, 0 -_08008D54: .4byte gUnknown_3005AF0 -_08008D58: .4byte gUnknown_85C8C28 -_08008D5C: - ldr r0, _08008D64 -_08008D5E: - pop {r1} - bx r1 - .align 2, 0 -_08008D64: .4byte gUnknown_85C8C25 - thumb_func_end sub_08008D44 - - thumb_func_start sub_08008D68 -sub_08008D68: @ 0x08008D68 - push {lr} - ldr r0, _08008D78 - ldr r0, [r0] - ldrb r0, [r0, #8] - cmp r0, #0 - beq _08008D80 - ldr r0, _08008D7C - b _08008D82 - .align 2, 0 -_08008D78: .4byte gUnknown_3005AF0 -_08008D7C: .4byte gUnknown_85C8C5A -_08008D80: - ldr r0, _08008D88 -_08008D82: - pop {r1} - bx r1 - .align 2, 0 -_08008D88: .4byte gUnknown_85C8C5E - thumb_func_end sub_08008D68 - - thumb_func_start sub_08008D8C -sub_08008D8C: @ 0x08008D8C - ldr r0, _08008D90 - bx lr - .align 2, 0 -_08008D90: .4byte gUnknown_85C8C36 - thumb_func_end sub_08008D8C - - thumb_func_start sub_08008D94 -sub_08008D94: @ 0x08008D94 - ldr r0, _08008D98 - bx lr - .align 2, 0 -_08008D98: .4byte gUnknown_85C8C3C - thumb_func_end sub_08008D94 - - thumb_func_start sub_08008D9C -sub_08008D9C: @ 0x08008D9C - ldr r0, _08008DA0 - bx lr - .align 2, 0 -_08008DA0: .4byte gUnknown_85C8C40 - thumb_func_end sub_08008D9C - - thumb_func_start sub_08008DA4 -sub_08008DA4: @ 0x08008DA4 - ldr r0, _08008DA8 - bx lr - .align 2, 0 -_08008DA8: .4byte gUnknown_85C8C44 - thumb_func_end sub_08008DA4 - - thumb_func_start sub_08008DAC -sub_08008DAC: @ 0x08008DAC - ldr r0, _08008DB0 - bx lr - .align 2, 0 -_08008DB0: .4byte gUnknown_85C8C49 - thumb_func_end sub_08008DAC - - thumb_func_start sub_08008DB4 -sub_08008DB4: @ 0x08008DB4 - ldr r0, _08008DB8 - bx lr - .align 2, 0 -_08008DB8: .4byte gUnknown_85C8C4E - thumb_func_end sub_08008DB4 - - thumb_func_start sub_08008DBC -sub_08008DBC: @ 0x08008DBC - ldr r0, _08008DC0 - bx lr - .align 2, 0 -_08008DC0: .4byte gUnknown_85C8C54 - thumb_func_end sub_08008DBC - - thumb_func_start GetExpandedPlaceholder -GetExpandedPlaceholder: @ 0x08008DC4 - push {lr} - cmp r0, #0xd - bhi _08008DDC - ldr r1, _08008DD8 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - b _08008DDE - .align 2, 0 -_08008DD8: .4byte gUnknown_82BF480 -_08008DDC: - ldr r0, _08008DE4 -_08008DDE: - pop {r1} - bx r1 - .align 2, 0 -_08008DE4: .4byte gUnknown_85C8C24 - thumb_func_end GetExpandedPlaceholder - - thumb_func_start StringFill -StringFill: @ 0x08008DE8 - push {lr} - adds r3, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - movs r0, #0 - cmp r0, r2 - bhs _08008E08 -_08008DFA: - strb r1, [r3] - adds r3, #1 - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r2 - blo _08008DFA -_08008E08: - movs r0, #0xff - strb r0, [r3] - adds r0, r3, #0 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end StringFill - - thumb_func_start StringCopyPadded -StringCopyPadded: @ 0x08008E14 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - b _08008E34 -_08008E24: - strb r1, [r4] - adds r5, #1 - adds r4, #1 - cmp r3, #0 - beq _08008E34 - subs r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 -_08008E34: - ldrb r1, [r5] - adds r0, r1, #0 - cmp r0, #0xff - bne _08008E24 - subs r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldr r0, _08008E64 - cmp r3, r0 - beq _08008E58 - adds r1, r0, #0 -_08008E4A: - strb r2, [r4] - adds r4, #1 - subs r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, r1 - bne _08008E4A -_08008E58: - movs r0, #0xff - strb r0, [r4] - adds r0, r4, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08008E64: .4byte 0x0000FFFF - thumb_func_end StringCopyPadded - - thumb_func_start StringFillWithTerminator -StringFillWithTerminator: @ 0x08008E68 - push {lr} - lsls r2, r1, #0x10 - lsrs r2, r2, #0x10 - movs r1, #0xff - bl StringFill - pop {r1} - bx r1 - thumb_func_end StringFillWithTerminator - - thumb_func_start StringCopyN_Multibyte -StringCopyN_Multibyte: @ 0x08008E78 - push {r4, r5, lr} - adds r4, r0, #0 - adds r3, r1, #0 - subs r2, #1 - movs r5, #1 - rsbs r5, r5, #0 - b _08008E9E -_08008E86: - strb r0, [r4] - adds r3, #1 - adds r4, #1 - subs r0, r3, #1 - ldrb r0, [r0] - cmp r0, #0xf9 - bne _08008E9C - ldrb r0, [r3] - strb r0, [r4] - adds r3, #1 - adds r4, #1 -_08008E9C: - subs r2, #1 -_08008E9E: - cmp r2, r5 - beq _08008EAA - ldrb r0, [r3] - adds r1, r0, #0 - cmp r1, #0xff - bne _08008E86 -_08008EAA: - movs r0, #0xff - strb r0, [r4] - adds r0, r4, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end StringCopyN_Multibyte - - thumb_func_start StringLength_Multibyte -StringLength_Multibyte: @ 0x08008EB8 - push {lr} - adds r2, r0, #0 - movs r3, #0 - b _08008ECA -_08008EC0: - cmp r1, #0xf9 - bne _08008EC6 - adds r2, #1 -_08008EC6: - adds r2, #1 - adds r3, #1 -_08008ECA: - ldrb r1, [r2] - adds r0, r1, #0 - cmp r0, #0xff - bne _08008EC0 - adds r0, r3, #0 - pop {r1} - bx r1 - thumb_func_end StringLength_Multibyte - - thumb_func_start WriteColorChangeControlCode -WriteColorChangeControlCode: @ 0x08008ED8 - push {lr} - adds r3, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r0, #0xfc - strb r0, [r3] - adds r3, #1 - cmp r1, #1 - beq _08008EFA - cmp r1, #1 - blo _08008EF4 - cmp r1, #2 - beq _08008F00 - b _08008F04 -_08008EF4: - movs r0, #1 - strb r0, [r3] - b _08008F02 -_08008EFA: - movs r0, #3 - strb r0, [r3] - b _08008F02 -_08008F00: - strb r1, [r3] -_08008F02: - adds r3, #1 -_08008F04: - strb r2, [r3] - adds r3, #1 - movs r0, #0xff - strb r0, [r3] - adds r0, r3, #0 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end WriteColorChangeControlCode - - thumb_func_start IsStringJapanese -IsStringJapanese: @ 0x08008F14 - push {lr} - adds r2, r0, #0 - b _08008F2A -_08008F1A: - adds r0, r1, #0 - cmp r0, #0xa0 - bhi _08008F28 - cmp r0, #0 - beq _08008F28 - movs r0, #1 - b _08008F34 -_08008F28: - adds r2, #1 -_08008F2A: - ldrb r1, [r2] - adds r0, r1, #0 - cmp r0, #0xff - bne _08008F1A - movs r0, #0 -_08008F34: - pop {r1} - bx r1 - thumb_func_end IsStringJapanese - - thumb_func_start sub_08008F38 -sub_08008F38: @ 0x08008F38 - push {r4, lr} - adds r3, r0, #0 - adds r4, r1, #0 - movs r1, #0 - b _08008F54 -_08008F42: - adds r0, r2, #0 - cmp r0, #0xa0 - bhi _08008F50 - cmp r0, #0 - beq _08008F50 - movs r0, #1 - b _08008F62 -_08008F50: - adds r3, #1 - adds r1, #1 -_08008F54: - ldrb r2, [r3] - adds r0, r2, #0 - cmp r0, #0xff - beq _08008F60 - cmp r1, r4 - blt _08008F42 -_08008F60: - movs r0, #0 -_08008F62: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_08008F38 - - thumb_func_start LoadHeldItemIcons -LoadHeldItemIcons: @ 0x08008F68 - push {lr} - bl sub_0800AF5C - bl sub_0800E1C4 - bl sub_0800B97C - ldr r1, _08008F8C - cmp r0, r1 - beq _08008F90 - bl sub_0800AF78 - bl CloseLink - bl RestoreSerialTimer3IntrHandlers - movs r0, #0 - b _08008F9A - .align 2, 0 -_08008F8C: .4byte 0x00008001 -_08008F90: - bl rfu_REQ_stopMode - bl rfu_waitREQComplete - movs r0, #1 -_08008F9A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end LoadHeldItemIcons - - thumb_func_start Task_DestroySelf -Task_DestroySelf: @ 0x08008FA0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Task_DestroySelf - - thumb_func_start InitLinkTestBG -InitLinkTestBG: @ 0x08008FB0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - ldr r4, [sp, #0x18] - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r7, r3, #0x18 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r0, _0800900C - lsls r1, r5, #4 - movs r2, #0x20 - bl LoadPalette - ldr r3, _08009010 - ldr r0, _08009014 - str r0, [r3] - lsls r2, r7, #0xe - lsls r0, r4, #5 - movs r1, #0xc0 - lsls r1, r1, #0x13 - adds r0, r0, r1 - adds r2, r2, r0 - str r2, [r3, #4] - ldr r0, _08009018 - str r0, [r3, #8] - ldr r0, [r3, #8] - ldr r0, _0800901C - str r6, [r0] - str r5, [r0, #4] - str r4, [r0, #8] - mov r0, r8 - cmp r0, #2 - beq _0800903A - cmp r0, #2 - bgt _08009020 - cmp r0, #1 - beq _08009028 - b _0800905C - .align 2, 0 -_0800900C: .4byte gUnknown_82BFB6C -_08009010: .4byte 0x040000D4 -_08009014: .4byte gUnknown_82BFB8C -_08009018: .4byte 0x80000110 -_0800901C: .4byte gUnknown_30031D0 -_08009020: - mov r0, r8 - cmp r0, #3 - beq _0800904C - b _0800905C -_08009028: - lsls r1, r6, #8 - movs r0, #1 - orrs r1, r0 - lsls r0, r7, #2 - orrs r1, r0 - movs r0, #0xa - bl SetGpuReg - b _0800905C -_0800903A: - lsls r1, r6, #8 - movs r0, #1 - orrs r1, r0 - lsls r0, r7, #2 - orrs r1, r0 - movs r0, #0xc - bl SetGpuReg - b _0800905C -_0800904C: - lsls r1, r6, #8 - movs r0, #1 - orrs r1, r0 - lsls r0, r7, #2 - orrs r1, r0 - movs r0, #0xe - bl SetGpuReg -_0800905C: - mov r0, r8 - lsls r4, r0, #2 - adds r0, r4, #0 - adds r0, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl SetGpuReg - adds r4, #0x12 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #0 - bl SetGpuReg - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end InitLinkTestBG - - thumb_func_start sub_08009088 -sub_08009088: @ 0x08009088 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - mov r8, r0 - adds r6, r1, #0 - adds r4, r2, #0 - adds r5, r3, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _080090F4 - mov r2, r8 - lsls r1, r2, #4 - movs r2, #0x20 - bl LoadPalette - ldr r2, _080090F8 - ldr r0, _080090FC - str r0, [r2] - lsls r0, r5, #0xe - movs r1, #0xc0 - lsls r1, r1, #0x13 - adds r0, r0, r1 - str r0, [r2, #4] - ldr r0, _08009100 - str r0, [r2, #8] - ldr r0, [r2, #8] - ldr r0, _08009104 - str r4, [r0] - mov r1, r8 - str r1, [r0, #4] - movs r1, #0 - str r1, [r0, #8] - ldr r0, _08009108 - adds r6, r6, r0 - ldrb r0, [r6] - lsls r4, r4, #8 - lsls r5, r5, #2 - orrs r4, r5 - adds r1, r4, #0 - bl SetGpuReg - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080090F4: .4byte gUnknown_82BFB6C -_080090F8: .4byte 0x040000D4 -_080090FC: .4byte gUnknown_82BFB8C -_08009100: .4byte 0x80000110 -_08009104: .4byte gUnknown_30031D0 -_08009108: .4byte gUnknown_82BFF20 - thumb_func_end sub_08009088 - - thumb_func_start LinkTestScreen -LinkTestScreen: @ 0x0800910C - push {r4, lr} - sub sp, #4 - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetTasks - ldr r0, _080091A0 - bl SetVBlankCallback - bl ResetBlockSend - ldr r1, _080091A4 - ldr r2, _080091A8 - adds r0, r2, #0 - strh r0, [r1] - bl OpenLink - ldr r0, _080091AC - ldrh r0, [r0, #0x24] - bl SeedRng - movs r4, #0 -_0800913C: - bl Random - ldr r1, _080091B0 - ldr r1, [r1] - adds r1, #0xa - adds r1, r1, r4 - strb r0, [r1] - adds r4, #1 - cmp r4, #3 - ble _0800913C - movs r4, #0 - str r4, [sp] - movs r0, #0 - movs r1, #2 - movs r2, #4 - movs r3, #0 - bl InitLinkTestBG - movs r1, #0xaa - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - ldr r0, _080091B4 - movs r1, #0 - bl CreateTask - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - ldr r0, _080091B8 - str r4, [r0] - bl InitLocalLinkPlayer - ldr r0, _080091BC - movs r1, #0 - bl CreateTask - ldr r0, _080091C0 - bl SetMainCallback2 - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080091A0: .4byte sub_08009258 -_080091A4: .4byte gUnknown_202267E -_080091A8: .4byte 0x00001111 -_080091AC: .4byte gUnknown_3002360 -_080091B0: .4byte gUnknown_3005AF0 -_080091B4: .4byte Task_DestroySelf -_080091B8: .4byte gUnknown_3000D60 -_080091BC: .4byte sub_0800A414 -_080091C0: .4byte CB2_LinkTest - thumb_func_end LinkTestScreen - - thumb_func_start SetLocalLinkPlayerId -SetLocalLinkPlayerId: @ 0x080091C4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080091D0 - strh r0, [r1, #0x18] - bx lr - .align 2, 0 -_080091D0: .4byte gUnknown_2022684 - thumb_func_end SetLocalLinkPlayerId - - thumb_func_start InitLocalLinkPlayer -InitLocalLinkPlayer: @ 0x080091D4 - push {r4, r5, lr} - ldr r5, _08009240 - ldr r4, _08009244 - ldr r1, [r4] - ldrb r2, [r1, #0xa] - ldrb r0, [r1, #0xb] - lsls r0, r0, #8 - orrs r2, r0 - ldrb r0, [r1, #0xc] - lsls r0, r0, #0x10 - orrs r2, r0 - ldrb r0, [r1, #0xd] - lsls r0, r0, #0x18 - orrs r2, r0 - str r2, [r5, #4] - adds r0, r5, #0 - adds r0, #8 - bl StringCopy - ldr r0, [r4] - ldrb r0, [r0, #8] - strb r0, [r5, #0x13] - ldr r0, _08009248 - ldrh r0, [r0] - str r0, [r5, #0x14] - ldr r0, _0800924C - ldrb r0, [r0] - strh r0, [r5, #0x1a] - ldr r0, _08009250 - ldrb r0, [r0] - movs r2, #0x80 - lsls r2, r2, #7 - adds r1, r2, #0 - adds r0, r0, r1 - strh r0, [r5] - movs r0, #0x80 - lsls r0, r0, #8 - strh r0, [r5, #2] - bl IsNationalPokedexEnabled - strb r0, [r5, #0x10] - ldr r0, _08009254 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0800923A - ldrb r0, [r5, #0x10] - movs r1, #0x10 - orrs r0, r1 - strb r0, [r5, #0x10] -_0800923A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08009240: .4byte gUnknown_2022684 -_08009244: .4byte gUnknown_3005AF0 -_08009248: .4byte gUnknown_202267E -_0800924C: .4byte gUnknown_829BDA5 -_08009250: .4byte gUnknown_829BDA4 -_08009254: .4byte 0x0000087F - thumb_func_end InitLocalLinkPlayer - - thumb_func_start sub_08009258 -sub_08009258: @ 0x08009258 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08009258 - - thumb_func_start InitLink -InitLink: @ 0x0800926C - push {lr} - ldr r3, _0800928C - ldr r1, _08009290 - ldr r2, _08009294 - adds r0, r1, #0 - adds r0, #0xe -_08009278: - strh r2, [r0] - subs r0, #2 - cmp r0, r1 - bge _08009278 - movs r0, #1 - strb r0, [r3] - bl EnableSerial - pop {r0} - bx r0 - .align 2, 0 -_0800928C: .4byte gUnknown_202267C -_08009290: .4byte gUnknown_30031B0 -_08009294: .4byte 0x0000EFFF - thumb_func_end InitLink - - thumb_func_start Task_TriggerHandshake -Task_TriggerHandshake: @ 0x08009298 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _080092C8 - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #5 - bne _080092C2 - ldr r1, _080092CC - movs r0, #1 - strb r0, [r1] - adds r0, r2, #0 - bl DestroyTask -_080092C2: - pop {r0} - bx r0 - .align 2, 0 -_080092C8: .4byte gUnknown_3005B60 -_080092CC: .4byte gUnknown_30031E4 - thumb_func_end Task_TriggerHandshake - - thumb_func_start OpenLink -OpenLink: @ 0x080092D0 - push {r4, r5, r6, lr} - ldr r0, _08009318 - ldrb r4, [r0] - cmp r4, #0 - bne _08009344 - bl ResetSerial - bl InitLink - ldr r1, _0800931C - ldr r0, _08009320 - str r0, [r1] - ldr r0, _08009324 - strb r4, [r0] - ldr r0, _08009328 - strb r4, [r0] - ldr r0, _0800932C - strb r4, [r0] - bl ResetBlockReceivedFlags - bl ResetBlockSend - ldr r0, _08009330 - str r4, [r0] - ldr r0, _08009334 - strb r4, [r0] - ldr r0, _08009338 - strb r4, [r0] - ldr r0, _0800933C - strh r4, [r0] - ldr r0, _08009340 - movs r1, #2 - bl CreateTask - b _08009348 - .align 2, 0 -_08009318: .4byte gUnknown_300319C -_0800931C: .4byte gUnknown_30031E0 -_08009320: .4byte LinkCB_RequestPlayerDataExchange -_08009324: .4byte gUnknown_30027E8 -_08009328: .4byte gUnknown_300310C -_0800932C: .4byte gUnknown_3003198 -_08009330: .4byte gUnknown_3000D54 -_08009334: .4byte gUnknown_3003188 -_08009338: .4byte gUnknown_3003184 -_0800933C: .4byte gUnknown_3003194 -_08009340: .4byte Task_TriggerHandshake -_08009344: - bl sub_0800E1C4 -_08009348: - ldr r1, _08009374 - movs r0, #0 - strb r0, [r1] - movs r1, #0 - ldr r6, _08009378 - movs r2, #0 - movs r5, #1 - ldr r4, _0800937C - ldr r3, _08009380 -_0800935A: - adds r0, r1, r6 - strb r5, [r0] - adds r0, r1, r4 - strb r2, [r0] - adds r0, r1, r3 - strb r2, [r0] - adds r1, #1 - cmp r1, #3 - ble _0800935A - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08009374: .4byte gUnknown_30031C4 -_08009378: .4byte gUnknown_3003118 -_0800937C: .4byte gUnknown_3003190 -_08009380: .4byte gUnknown_300318C - thumb_func_end OpenLink - - thumb_func_start CloseLink -CloseLink: @ 0x08009384 - push {r4, lr} - ldr r0, _080093A8 - movs r4, #0 - strb r4, [r0] - ldr r0, _080093AC - ldrb r0, [r0] - cmp r0, #0 - beq _08009398 - bl sub_0800E894 -_08009398: - ldr r0, _080093B0 - strb r4, [r0] - bl DisableSerial - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080093A8: .4byte gUnknown_30031C4 -_080093AC: .4byte gUnknown_300319C -_080093B0: .4byte gUnknown_202267C - thumb_func_end CloseLink - - thumb_func_start TestBlockTransfer -TestBlockTransfer: @ 0x080093B4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r5, _08009478 - ldr r4, _0800947C - ldrb r0, [r5] - ldrh r1, [r4] - cmp r0, r1 - beq _080093D8 - ldrh r0, [r4] - movs r1, #2 - movs r2, #3 - movs r3, #2 - bl LinkTest_prnthex - ldrh r0, [r4] - strb r0, [r5] -_080093D8: - movs r5, #0 - ldr r7, _08009480 -_080093DC: - ldr r0, _08009484 - adds r6, r5, r0 - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r4, r0, r7 - ldrb r0, [r6] - ldrh r1, [r4] - cmp r0, r1 - beq _08009404 - ldrh r0, [r4] - adds r2, r5, #4 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r1, #2 - movs r3, #2 - bl LinkTest_prnthex - ldrh r0, [r4] - strb r0, [r6] -_08009404: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #3 - bls _080093DC - bl GetBlockReceivedStatus - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #0xf - bne _0800946A - movs r5, #0 - ldr r0, _08009480 - mov sb, r0 - ldr r1, _08009488 - mov r8, r1 -_08009424: - adds r0, r7, #0 - asrs r0, r5 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08009460 - lsls r0, r5, #8 - ldr r1, _0800948C - adds r0, r0, r1 - lsls r4, r5, #1 - adds r1, r4, r5 - lsls r1, r1, #2 - add r1, sb - ldrh r1, [r1, #2] - bl LinkTestCalcBlockChecksum - ldr r1, _08009490 - adds r4, r4, r1 - movs r6, #0 - strh r0, [r4] - adds r0, r5, #0 - bl ResetBlockReceivedFlag - ldrh r0, [r4] - cmp r0, r8 - beq _08009460 - ldr r0, _08009494 - strb r6, [r0] - ldr r0, _08009498 - strb r6, [r0] -_08009460: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #3 - bls _08009424 -_0800946A: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08009478: .4byte gUnknown_3000D64 -_0800947C: .4byte gUnknown_3000D10 -_08009480: .4byte gUnknown_3000D20 -_08009484: .4byte gUnknown_3000D68 -_08009488: .4byte 0x00000342 -_0800948C: .4byte gUnknown_202207C -_08009490: .4byte gUnknown_30031E8 -_08009494: .4byte gUnknown_2022074 -_08009498: .4byte gUnknown_2022075 - thumb_func_end TestBlockTransfer - - thumb_func_start LinkTestProcessKeyInput -LinkTestProcessKeyInput: @ 0x0800949C - push {r4, r5, lr} - sub sp, #4 - ldr r4, _0800953C - ldrh r1, [r4, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080094B2 - ldr r1, _08009540 - movs r0, #1 - strb r0, [r1] -_080094B2: - ldrh r1, [r4, #0x2c] - movs r5, #2 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _080094C6 - ldr r0, _08009544 - ldr r1, _08009548 - bl InitBlockSend -_080094C6: - ldrh r1, [r4, #0x2e] - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080094E2 - movs r0, #1 - rsbs r0, r0, #0 - str r5, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade -_080094E2: - ldrh r1, [r4, #0x2e] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080094F2 - movs r0, #1 - bl sub_0800AE0C -_080094F2: - ldrh r1, [r4, #0x2e] - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08009504 - movs r0, #1 - bl TrySavingData -_08009504: - ldrh r1, [r4, #0x2e] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08009512 - bl sub_0800A7F8 -_08009512: - ldr r0, _0800954C - ldrb r0, [r0] - cmp r0, #0 - beq _08009532 - ldr r2, [r4, #0x24] - ldr r0, _08009550 - ldrb r1, [r0] - ldr r0, _08009554 - ldr r0, [r0] - cmp r0, #0 - bne _0800952C - movs r0, #0x10 - orrs r1, r0 -_0800952C: - adds r0, r2, #0 - bl SetLinkDebugValues -_08009532: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0800953C: .4byte gUnknown_3002360 -_08009540: .4byte gUnknown_30031E4 -_08009544: .4byte gUnknown_2004000 -_08009548: .4byte 0x00002004 -_0800954C: .4byte gUnknown_2022074 -_08009550: .4byte gUnknown_30027E8 -_08009554: .4byte gUnknown_30031E0 - thumb_func_end LinkTestProcessKeyInput - - thumb_func_start CB2_LinkTest -CB2_LinkTest: @ 0x08009558 - push {lr} - bl LinkTestProcessKeyInput - movs r0, #1 - movs r1, #1 - movs r2, #0 - bl TestBlockTransfer - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end CB2_LinkTest - - thumb_func_start LinkMain2 -LinkMain2: @ 0x0800957C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _0800958C - ldrb r0, [r0] - cmp r0, #0 - bne _08009590 - movs r0, #0 - b _080095D8 - .align 2, 0 -_0800958C: .4byte gUnknown_202267C -_08009590: - movs r1, #0 - ldr r5, _080095E0 - ldr r3, _080095E4 - movs r2, #0 -_08009598: - lsls r0, r1, #1 - adds r0, r0, r3 - strh r2, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #7 - bls _08009598 - ldrh r0, [r4] - strh r0, [r5] - ldr r0, _080095E8 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080095D4 - ldr r0, _080095EC - ldr r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - bl EmeraldBattleTowerRecordToRuby - ldr r0, _080095F0 - ldr r0, [r0] - cmp r0, #0 - beq _080095D0 - bl _call_via_r0 -_080095D0: - bl CheckErrorStatus -_080095D4: - ldr r0, _080095E8 - ldrh r0, [r0] -_080095D8: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080095E0: .4byte gUnknown_3003124 -_080095E4: .4byte gUnknown_30031B0 -_080095E8: .4byte gUnknown_3003180 -_080095EC: .4byte 0x04000128 -_080095F0: .4byte gUnknown_30031E0 - thumb_func_end LinkMain2 - - thumb_func_start HandleReceiveRemoteLinkPlayer -HandleReceiveRemoteLinkPlayer: @ 0x080095F4 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r5, #0 - ldr r1, _08009608 - adds r0, r0, r1 - strb r5, [r0] - movs r4, #0 - adds r6, r1, #0 - b _08009614 - .align 2, 0 -_08009608: .4byte gUnknown_3003118 -_0800960C: - adds r0, r4, r6 - ldrb r0, [r0] - adds r5, r5, r0 - adds r4, #1 -_08009614: - bl GetLinkPlayerCount_2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - blt _0800960C - cmp r5, #0 - bne _08009630 - ldr r1, _08009638 - ldrb r0, [r1] - cmp r0, #0 - bne _08009630 - movs r0, #1 - strb r0, [r1] -_08009630: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08009638: .4byte gUnknown_30031C4 - thumb_func_end HandleReceiveRemoteLinkPlayer - - thumb_func_start EmeraldBattleTowerRecordToRuby -EmeraldBattleTowerRecordToRuby: @ 0x0800963C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - movs r6, #0 -_0800964A: - ldr r0, _08009694 - lsls r1, r6, #1 - adds r3, r1, r0 - movs r0, #0 - strh r0, [r3] - lsls r4, r6, #4 - ldr r5, _08009698 - adds r2, r4, r5 - ldrh r0, [r2] - mov ip, r1 - adds r7, r6, #1 - str r7, [sp] - cmp r0, #0 - bne _08009668 - b _08009906 -_08009668: - ldrh r1, [r2] - ldr r0, _0800969C - cmp r1, r0 - bne _08009672 - b _080098B8 -_08009672: - cmp r1, r0 - bgt _080096C0 - ldr r0, _080096A0 - cmp r1, r0 - bne _0800967E - b _080098FC -_0800967E: - cmp r1, r0 - bgt _080096AC - ldr r0, _080096A4 - cmp r1, r0 - beq _08009704 - ldr r0, _080096A8 - cmp r1, r0 - bne _08009690 - b _080098C0 -_08009690: - b _08009906 - .align 2, 0 -_08009694: .4byte gUnknown_30030C0 -_08009698: .4byte gUnknown_3003130 -_0800969C: .4byte 0x00005FFF -_080096A0: .4byte 0x00004444 -_080096A4: .4byte 0x00002222 -_080096A8: .4byte 0x00002FFE -_080096AC: - ldr r0, _080096BC - cmp r1, r0 - beq _08009754 - adds r0, #0x11 - cmp r1, r0 - beq _08009754 - b _08009906 - .align 2, 0 -_080096BC: .4byte 0x00005555 -_080096C0: - ldr r0, _080096DC - cmp r1, r0 - beq _08009760 - cmp r1, r0 - bgt _080096E8 - ldr r0, _080096E0 - cmp r1, r0 - beq _0800978C - ldr r0, _080096E4 - cmp r1, r0 - bne _080096D8 - b _080098D0 -_080096D8: - b _08009906 - .align 2, 0 -_080096DC: .4byte 0x0000BBBB -_080096E0: .4byte 0x00008888 -_080096E4: .4byte 0x0000AAAA -_080096E8: - ldr r0, _080096FC - cmp r1, r0 - bne _080096F0 - b _080098FC -_080096F0: - ldr r0, _08009700 - cmp r1, r0 - bne _080096F8 - b _080098D6 -_080096F8: - b _08009906 - .align 2, 0 -_080096FC: .4byte 0x0000CAFE -_08009700: .4byte 0x0000CCCC -_08009704: - bl InitLocalLinkPlayer - ldr r1, _08009748 - adds r1, #0x10 - ldr r0, _0800974C - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - ldm r0!, {r2, r5, r7} - stm r1!, {r2, r5, r7} - ldr r0, [r0] - str r0, [r1] - ldr r3, _08009750 - ldr r1, _08009748 - adds r0, r3, #0 - ldm r0!, {r4, r5, r7} - stm r1!, {r4, r5, r7} - ldrh r2, [r0] - strh r2, [r1] - ldrb r0, [r0, #2] - strb r0, [r1, #2] - ldr r0, _08009748 - adds r0, #0x2c - ldm r3!, {r1, r2, r4} - stm r0!, {r1, r2, r4} - ldrh r1, [r3] - strh r1, [r0] - ldrb r1, [r3, #2] - strb r1, [r0, #2] - ldr r0, _08009748 - movs r1, #0x3c - bl InitBlockSend - b _08009906 - .align 2, 0 -_08009748: .4byte gUnknown_30030D0 -_0800974C: .4byte gUnknown_2022684 -_08009750: .4byte gUnknown_82BFF24 -_08009754: - ldr r1, _0800975C - movs r0, #1 - strb r0, [r1] - b _08009906 - .align 2, 0 -_0800975C: .4byte gUnknown_3003188 -_08009760: - mov r5, ip - adds r1, r5, r6 - lsls r1, r1, #2 - ldr r7, _08009784 - adds r1, r1, r7 - movs r0, #0 - strh r0, [r1] - ldr r0, _08009788 - adds r0, #2 - adds r0, r4, r0 - ldrh r0, [r0] - strh r0, [r1, #2] - ldr r0, _08009788 - adds r0, #4 - adds r0, r4, r0 - ldrh r0, [r0] - strb r0, [r1, #9] - b _08009906 - .align 2, 0 -_08009784: .4byte gUnknown_3000D20 -_08009788: .4byte gUnknown_3003130 -_0800978C: - mov r1, ip - adds r0, r1, r6 - lsls r0, r0, #2 - ldr r2, _080097D0 - adds r3, r0, r2 - ldrh r1, [r3, #2] - movs r0, #0x80 - lsls r0, r0, #1 - adds r5, r2, #0 - mov sl, r5 - cmp r1, r0 - bls _080097DC - ldr r7, _080097D4 - mov r8, r7 - movs r2, #0 - adds r5, r3, #0 - ldr r7, _080097D8 - adds r3, r4, #0 -_080097B0: - ldrh r1, [r5] - lsrs r1, r1, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - add r1, r8 - adds r2, #1 - lsls r0, r2, #1 - adds r0, r0, r3 - adds r0, r0, r7 - ldrh r0, [r0] - strh r0, [r1] - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - cmp r2, #6 - bls _080097B0 - b _0800980C - .align 2, 0 -_080097D0: .4byte gUnknown_3000D20 -_080097D4: .4byte gUnknown_201C000 -_080097D8: .4byte gUnknown_3003130 -_080097DC: - movs r2, #0 - ldr r0, _0800988C - mov sb, r0 - adds r7, r3, #0 - ldr r1, _08009890 - mov r8, r1 - lsls r5, r6, #8 - adds r3, r4, #0 -_080097EC: - ldrh r1, [r7] - lsrs r1, r1, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - adds r1, r1, r5 - add r1, sb - adds r2, #1 - lsls r0, r2, #1 - adds r0, r0, r3 - add r0, r8 - ldrh r0, [r0] - strh r0, [r1] - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - cmp r2, #6 - bls _080097EC -_0800980C: - mov r2, ip - adds r1, r2, r6 - lsls r1, r1, #2 - add r1, sl - ldrh r0, [r1] - adds r0, #0xe - movs r3, #0 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrh r1, [r1, #2] - cmp r0, r1 - blo _08009906 - ldr r0, _08009894 - adds r0, r6, r0 - ldrb r0, [r0] - cmp r0, #1 - bne _080098AE - lsls r1, r6, #8 - ldr r0, _0800988C - adds r1, r1, r0 - mov r8, r1 - lsls r0, r6, #3 - subs r0, r0, r6 - lsls r0, r0, #2 - ldr r1, _08009898 - adds r2, r0, r1 - adds r1, r2, #0 - mov r0, r8 - adds r0, #0x10 - ldm r0!, {r4, r5, r7} - stm r1!, {r4, r5, r7} - ldm r0!, {r4, r5, r7} - stm r1!, {r4, r5, r7} - ldr r0, [r0] - str r0, [r1] - ldrb r0, [r2] - subs r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bhi _08009866 - strb r3, [r2, #0x12] - strb r3, [r2, #0x11] - strb r3, [r2, #0x10] -_08009866: - ldr r5, _0800989C - mov r0, r8 - adds r1, r5, #0 - bl strcmp - cmp r0, #0 - bne _08009882 - mov r0, r8 - adds r0, #0x2c - adds r1, r5, #0 - bl strcmp - cmp r0, #0 - beq _080098A4 -_08009882: - ldr r0, _080098A0 - bl SetMainCallback2 - b _08009906 - .align 2, 0 -_0800988C: .4byte gUnknown_202207C -_08009890: .4byte gUnknown_3003130 -_08009894: .4byte gUnknown_3003118 -_08009898: .4byte gUnknown_20226A0 -_0800989C: .4byte gUnknown_82BFF24 -_080098A0: .4byte CB2_LinkError -_080098A4: - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - bl HandleReceiveRemoteLinkPlayer - b _08009906 -_080098AE: - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - bl SetBlockReceivedFlag - b _08009906 -_080098B8: - ldr r0, _080098BC - b _080098C2 - .align 2, 0 -_080098BC: .4byte gUnknown_3003190 -_080098C0: - ldr r0, _080098CC -_080098C2: - adds r0, r6, r0 - movs r1, #1 - strb r1, [r0] - b _08009906 - .align 2, 0 -_080098CC: .4byte gUnknown_300318C -_080098D0: - bl sub_08009FDC - b _08009906 -_080098D6: - ldr r3, _080098F4 - ldr r0, _080098F8 - adds r0, #2 - adds r0, r4, r0 - ldrh r2, [r0] - lsls r2, r2, #3 - adds r0, r2, r3 - ldr r1, [r0] - adds r3, #4 - adds r2, r2, r3 - ldrh r2, [r2] - movs r0, #0 - bl SendBlock - b _08009906 - .align 2, 0 -_080098F4: .4byte gUnknown_82BFEF8 -_080098F8: .4byte gUnknown_3003130 -_080098FC: - ldr r0, _08009924 - adds r0, #2 - adds r0, r4, r0 - ldrh r0, [r0] - strh r0, [r3] -_08009906: - ldr r1, [sp] - lsls r0, r1, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #3 - bhi _08009912 - b _0800964A -_08009912: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08009924: .4byte gUnknown_3003130 - thumb_func_end EmeraldBattleTowerRecordToRuby - - thumb_func_start BuildSendCmd -BuildSendCmd: @ 0x08009928 - push {lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, _08009954 - cmp r2, r0 - beq _080099F8 - cmp r2, r0 - bgt _08009988 - ldr r0, _08009958 - cmp r2, r0 - beq _080099E4 - cmp r2, r0 - bgt _08009964 - ldr r0, _0800995C - cmp r2, r0 - beq _080099D0 - ldr r0, _08009960 -_0800994A: - cmp r2, r0 - bne _08009950 - b _08009A7C -_08009950: - b _08009A9E - .align 2, 0 -_08009954: .4byte 0x00006666 -_08009958: .4byte 0x00004444 -_0800995C: .4byte 0x00002222 -_08009960: .4byte 0x00002FFE -_08009964: - ldr r0, _08009974 - cmp r2, r0 - bne _0800996C - b _08009A7C -_0800996C: - cmp r2, r0 - bgt _08009978 - subs r0, #0x11 - b _0800994A - .align 2, 0 -_08009974: .4byte 0x00005566 -_08009978: - ldr r0, _08009984 - cmp r2, r0 - bne _08009980 - b _08009A68 -_08009980: - b _08009A9E - .align 2, 0 -_08009984: .4byte 0x00005FFF -_08009988: - ldr r0, _0800999C - cmp r2, r0 - beq _08009A40 - cmp r2, r0 - bgt _080099A8 - ldr r0, _080099A0 - cmp r2, r0 - beq _08009A04 - ldr r0, _080099A4 - b _0800994A - .align 2, 0 -_0800999C: .4byte 0x0000AAAB -_080099A0: .4byte 0x00007777 -_080099A4: .4byte 0x0000AAAA -_080099A8: - ldr r0, _080099BC - cmp r2, r0 - beq _08009A88 - cmp r2, r0 - bgt _080099C4 - ldr r0, _080099C0 - cmp r2, r0 - beq _08009A24 - b _08009A9E - .align 2, 0 -_080099BC: .4byte 0x0000CAFE -_080099C0: .4byte 0x0000BBBB -_080099C4: - ldr r0, _080099CC - cmp r2, r0 - beq _08009A54 - b _08009A9E - .align 2, 0 -_080099CC: .4byte 0x0000CCCC -_080099D0: - ldr r0, _080099DC - strh r2, [r0] - ldr r1, _080099E0 - ldrh r1, [r1] - b _08009A9C - .align 2, 0 -_080099DC: .4byte gUnknown_30031B0 -_080099E0: .4byte gUnknown_202267E -_080099E4: - ldr r0, _080099F0 - strh r2, [r0] - ldr r1, _080099F4 - ldrh r1, [r1, #0x2c] - b _08009A9C - .align 2, 0 -_080099F0: .4byte gUnknown_30031B0 -_080099F4: .4byte gUnknown_3002360 -_080099F8: - ldr r0, _08009A00 - movs r1, #0 - b _08009A9A - .align 2, 0 -_08009A00: .4byte gUnknown_30031B0 -_08009A04: - ldr r0, _08009A20 - strh r2, [r0] - movs r1, #0 - adds r3, r0, #0 - movs r2, #0xee -_08009A0E: - adds r1, #1 - lsls r0, r1, #1 - adds r0, r0, r3 - strh r2, [r0] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #4 - bls _08009A0E - b _08009A9E - .align 2, 0 -_08009A20: .4byte gUnknown_30031B0 -_08009A24: - ldr r1, _08009A38 - strh r2, [r1] - ldr r2, _08009A3C - ldrh r0, [r2, #2] - strh r0, [r1, #2] - ldrb r0, [r2, #9] - adds r0, #0x80 - strh r0, [r1, #4] - b _08009A9E - .align 2, 0 -_08009A38: .4byte gUnknown_30031B0 -_08009A3C: .4byte gUnknown_3000D10 -_08009A40: - ldr r0, _08009A4C - strh r2, [r0] - ldr r1, _08009A50 - ldrh r1, [r1] - b _08009A9C - .align 2, 0 -_08009A4C: .4byte gUnknown_30031B0 -_08009A50: .4byte gUnknown_203CB48 -_08009A54: - ldr r0, _08009A60 - strh r2, [r0] - ldr r1, _08009A64 - ldrb r1, [r1] - b _08009A9C - .align 2, 0 -_08009A60: .4byte gUnknown_30031B0 -_08009A64: .4byte gUnknown_30031F0 -_08009A68: - ldr r0, _08009A74 - strh r2, [r0] - ldr r1, _08009A78 - ldrh r1, [r1] - b _08009A9C - .align 2, 0 -_08009A74: .4byte gUnknown_30031B0 -_08009A78: .4byte gUnknown_3003194 -_08009A7C: - ldr r0, _08009A84 - strh r2, [r0] - b _08009A9E - .align 2, 0 -_08009A84: .4byte gUnknown_30031B0 -_08009A88: - ldr r0, _08009AA4 - ldrh r1, [r0] - cmp r1, #0 - beq _08009A9E - ldr r0, _08009AA8 - ldrb r0, [r0] - cmp r0, #0 - bne _08009A9E - ldr r0, _08009AAC -_08009A9A: - strh r2, [r0] -_08009A9C: - strh r1, [r0, #2] -_08009A9E: - pop {r0} - bx r0 - .align 2, 0 -_08009AA4: .4byte gUnknown_3005B08 -_08009AA8: .4byte gUnknown_3002354 -_08009AAC: .4byte gUnknown_30031B0 - thumb_func_end BuildSendCmd - - thumb_func_start sub_08009AB0 -sub_08009AB0: @ 0x08009AB0 - push {lr} - ldr r0, _08009AC8 - ldrb r0, [r0] - cmp r0, #0 - beq _08009ABE - bl sub_0800F2C4 -_08009ABE: - ldr r1, _08009ACC - ldr r0, _08009AD0 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08009AC8: .4byte gUnknown_300319C -_08009ACC: .4byte gUnknown_30031E0 -_08009AD0: .4byte sub_08009B08 - thumb_func_end sub_08009AB0 - - thumb_func_start IsSendingKeysToLink -IsSendingKeysToLink: @ 0x08009AD4 - push {lr} - ldr r0, _08009AE4 - ldrb r0, [r0] - cmp r0, #0 - beq _08009AE8 - bl IsSendingKeysToRfu - b _08009B02 - .align 2, 0 -_08009AE4: .4byte gUnknown_300319C -_08009AE8: - ldr r0, _08009AF8 - ldr r1, [r0] - ldr r0, _08009AFC - cmp r1, r0 - beq _08009B00 - movs r0, #0 - b _08009B02 - .align 2, 0 -_08009AF8: .4byte gUnknown_30031E0 -_08009AFC: .4byte sub_08009B08 -_08009B00: - movs r0, #1 -_08009B02: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsSendingKeysToLink - - thumb_func_start sub_08009B08 -sub_08009B08: @ 0x08009B08 - push {lr} - ldr r0, _08009B1C - ldrb r0, [r0] - cmp r0, #1 - bne _08009B18 - ldr r0, _08009B20 - bl BuildSendCmd -_08009B18: - pop {r0} - bx r0 - .align 2, 0 -_08009B1C: .4byte gUnknown_30031C4 -_08009B20: .4byte 0x0000CAFE - thumb_func_end sub_08009B08 - - thumb_func_start sub_08009B24 -sub_08009B24: @ 0x08009B24 - push {lr} - ldr r0, _08009B34 - ldrb r1, [r0] - cmp r1, #0 - beq _08009B38 - bl sub_0800F2F8 - b _08009B3C - .align 2, 0 -_08009B34: .4byte gUnknown_300319C -_08009B38: - ldr r0, _08009B40 - str r1, [r0] -_08009B3C: - pop {r0} - bx r0 - .align 2, 0 -_08009B40: .4byte gUnknown_30031E0 - thumb_func_end sub_08009B24 - - thumb_func_start sub_08009B44 -sub_08009B44: @ 0x08009B44 - push {lr} - ldr r0, _08009B54 - ldrb r1, [r0] - cmp r1, #0 - beq _08009B58 - bl sub_0800F2F8 - b _08009B5C - .align 2, 0 -_08009B54: .4byte gUnknown_300319C -_08009B58: - ldr r0, _08009B60 - str r1, [r0] -_08009B5C: - pop {r0} - bx r0 - .align 2, 0 -_08009B60: .4byte gUnknown_30031E0 - thumb_func_end sub_08009B44 - - thumb_func_start GetLinkPlayerCount -GetLinkPlayerCount: @ 0x08009B64 - push {lr} - ldr r0, _08009B7C - ldrb r0, [r0] - cmp r0, #0 - bne _08009B84 - ldr r0, _08009B80 - ldr r0, [r0] - movs r1, #0x1c - ands r0, r1 - lsrs r0, r0, #2 - b _08009B8C - .align 2, 0 -_08009B7C: .4byte gUnknown_300319C -_08009B80: .4byte gUnknown_3003180 -_08009B84: - bl sub_0800FFF4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_08009B8C: - pop {r1} - bx r1 - thumb_func_end GetLinkPlayerCount - - thumb_func_start sub_08009B90 -sub_08009B90: @ 0x08009B90 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r5, r1, #0 - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r2, #0 - cmp r2, r4 - bge _08009BC8 - movs r7, #0xff - ldr r3, _08009BBC -_08009BA8: - ldrh r0, [r3] - adds r1, r7, #0 - ands r1, r0 - cmp r1, r6 - beq _08009BB6 - cmp r1, r5 - bne _08009BC0 -_08009BB6: - movs r0, #1 - b _08009BCC - .align 2, 0 -_08009BBC: .4byte gUnknown_20226A0 -_08009BC0: - adds r3, #0x1c - adds r2, #1 - cmp r2, r4 - blt _08009BA8 -_08009BC8: - movs r0, #1 - rsbs r0, r0, #0 -_08009BCC: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08009B90 - - thumb_func_start sub_08009BD4 -sub_08009BD4: @ 0x08009BD4 - push {r4, r5, lr} - movs r5, #0 - ldr r4, _08009BDC - b _08009BEE - .align 2, 0 -_08009BDC: .4byte gUnknown_20226A0 -_08009BE0: - ldrh r0, [r4, #0x1a] - cmp r0, #1 - beq _08009BEA - movs r0, #1 - b _08009BFC -_08009BEA: - adds r4, #0x1c - adds r5, #1 -_08009BEE: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r5, r0 - blt _08009BE0 - movs r0, #0 -_08009BFC: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08009BD4 - - thumb_func_start sub_08009C04 -sub_08009C04: @ 0x08009C04 - push {lr} - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bne _08009C1E - movs r0, #2 - movs r1, #1 - bl sub_08009B90 - cmp r0, #0 - bge _08009C22 -_08009C1E: - movs r0, #0 - b _08009C24 -_08009C22: - movs r0, #1 -_08009C24: - pop {r1} - bx r1 - thumb_func_end sub_08009C04 - - thumb_func_start Link_AnyPartnersPlayingRubyOrSapphire -Link_AnyPartnersPlayingRubyOrSapphire: @ 0x08009C28 - push {lr} - movs r0, #2 - movs r1, #1 - bl sub_08009B90 - cmp r0, #0 - bge _08009C3A - movs r0, #0 - b _08009C3C -_08009C3A: - movs r0, #1 -_08009C3C: - pop {r1} - bx r1 - thumb_func_end Link_AnyPartnersPlayingRubyOrSapphire - - thumb_func_start sub_08009C40 -sub_08009C40: @ 0x08009C40 - push {lr} - movs r0, #4 - movs r1, #5 - bl sub_08009B90 - adds r2, r0, #0 - cmp r2, #0 - blt _08009C68 - ldr r0, _08009C64 - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r0, [r1, #0x1a] - cmp r0, #1 - bne _08009C68 - movs r0, #1 - b _08009C6A - .align 2, 0 -_08009C64: .4byte gUnknown_20226A0 -_08009C68: - movs r0, #0 -_08009C6A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08009C40 - - thumb_func_start OpenLinkTimed -OpenLinkTimed: @ 0x08009C70 - push {lr} - ldr r0, _08009C84 - movs r1, #0 - str r1, [r0] - ldr r0, _08009C88 - strh r1, [r0] - bl OpenLink - pop {r0} - bx r0 - .align 2, 0 -_08009C84: .4byte gUnknown_3000D5C -_08009C88: .4byte gUnknown_2022680 - thumb_func_end OpenLinkTimed - - thumb_func_start GetLinkPlayerDataExchangeStatusTimed -GetLinkPlayerDataExchangeStatusTimed: @ 0x08009C8C - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r6, r1, #0 - movs r7, #0 - ldr r0, _08009CB8 - ldrb r4, [r0] - cmp r4, #1 - beq _08009C9E - b _08009DD8 -_08009C9E: - bl GetLinkPlayerCount_2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r5, r0 - bgt _08009CAE - cmp r0, r6 - ble _08009CC0 -_08009CAE: - ldr r1, _08009CBC - movs r0, #6 - str r0, [r1] - b _08009DF2 - .align 2, 0 -_08009CB8: .4byte gUnknown_30031C4 -_08009CBC: .4byte gUnknown_3000D5C -_08009CC0: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08009CD2 - ldr r0, _08009CDC - strb r4, [r0] - bl CloseLink -_08009CD2: - movs r6, #0 - ldr r4, _08009CE0 - movs r5, #0 - b _08009CF8 - .align 2, 0 -_08009CDC: .4byte gUnknown_300310C -_08009CE0: .4byte gUnknown_20226A0 -_08009CE4: - adds r0, r4, #0 - adds r0, #0x14 - adds r0, r5, r0 - ldr r1, [r0] - ldr r0, [r4, #0x14] - cmp r1, r0 - bne _08009CF4 - adds r7, #1 -_08009CF4: - adds r5, #0x1c - adds r6, #1 -_08009CF8: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r6, r0 - blt _08009CE4 - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r7, r0 - bne _08009D70 - ldr r0, _08009D30 - ldr r1, [r0, #0x14] - ldr r0, _08009D34 - cmp r1, r0 - bne _08009D60 - bl sub_0807A198 - cmp r0, #1 - beq _08009D48 - cmp r0, #1 - bgt _08009D3C - cmp r0, #0 - beq _08009D60 - ldr r3, _08009D38 - b _08009DF0 - .align 2, 0 -_08009D30: .4byte gUnknown_20226A0 -_08009D34: .4byte 0x00001133 -_08009D38: .4byte gUnknown_3000D5C -_08009D3C: - cmp r0, #2 - beq _08009D54 - ldr r3, _08009D44 - b _08009DF0 - .align 2, 0 -_08009D44: .4byte gUnknown_3000D5C -_08009D48: - ldr r1, _08009D50 - movs r0, #4 - b _08009D64 - .align 2, 0 -_08009D50: .4byte gUnknown_3000D5C -_08009D54: - ldr r1, _08009D5C - movs r0, #5 - b _08009D64 - .align 2, 0 -_08009D5C: .4byte gUnknown_3000D5C -_08009D60: - ldr r1, _08009D6C - movs r0, #1 -_08009D64: - str r0, [r1] - adds r3, r1, #0 - b _08009DF0 - .align 2, 0 -_08009D6C: .4byte gUnknown_3000D5C -_08009D70: - ldr r6, _08009DC4 - movs r0, #3 - str r0, [r6] - ldr r4, _08009DC8 - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r4, #0x14 - adds r1, r1, r4 - ldr r5, [r1] - bl GetMultiplayerId - movs r1, #1 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldr r1, [r1] - ldr r2, _08009DCC - cmp r5, r2 - bne _08009DAE - ldr r0, _08009DD0 - cmp r1, r0 - beq _08009DBA -_08009DAE: - ldr r0, _08009DD0 - adds r3, r6, #0 - cmp r5, r0 - bne _08009DF0 - cmp r1, r2 - bne _08009DF0 -_08009DBA: - ldr r1, _08009DD4 - movs r0, #3 - strh r0, [r1] - ldr r3, _08009DC4 - b _08009DF0 - .align 2, 0 -_08009DC4: .4byte gUnknown_3000D5C -_08009DC8: .4byte gUnknown_20226A0 -_08009DCC: .4byte 0x00002266 -_08009DD0: .4byte 0x00002277 -_08009DD4: .4byte gUnknown_2037282 -_08009DD8: - ldr r0, _08009DF8 - ldrh r1, [r0] - adds r1, #1 - strh r1, [r0] - lsls r1, r1, #0x10 - movs r0, #0x96 - lsls r0, r0, #0x12 - ldr r3, _08009DFC - cmp r1, r0 - bls _08009DF0 - movs r0, #2 - str r0, [r3] -_08009DF0: - ldrb r0, [r3] -_08009DF2: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08009DF8: .4byte gUnknown_2022680 -_08009DFC: .4byte gUnknown_3000D5C - thumb_func_end GetLinkPlayerDataExchangeStatusTimed - - thumb_func_start IsLinkPlayerDataExchangeComplete -IsLinkPlayerDataExchangeComplete: @ 0x08009E00 - push {r4, r5, r6, lr} - movs r6, #0 - movs r4, #0 - ldr r5, _08009E0C - b _08009E30 - .align 2, 0 -_08009E0C: .4byte gUnknown_20226A0 -_08009E10: - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - adds r1, r5, #0 - adds r1, #0x14 - adds r0, r0, r1 - ldr r1, [r0] - ldr r0, [r5, #0x14] - cmp r1, r0 - bne _08009E2A - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_08009E2A: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_08009E30: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - blo _08009E10 - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r6, r0 - bne _08009E54 - movs r2, #1 - ldr r0, _08009E50 - str r2, [r0] - b _08009E5C - .align 2, 0 -_08009E50: .4byte gUnknown_3000D5C -_08009E54: - movs r2, #0 - ldr r1, _08009E64 - movs r0, #3 - str r0, [r1] -_08009E5C: - adds r0, r2, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08009E64: .4byte gUnknown_3000D5C - thumb_func_end IsLinkPlayerDataExchangeComplete - - thumb_func_start GetLinkPlayerTrainerId -GetLinkPlayerTrainerId: @ 0x08009E68 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08009E7C - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r2, #4 - adds r1, r1, r2 - ldr r0, [r1] - bx lr - .align 2, 0 -_08009E7C: .4byte gUnknown_20226A0 - thumb_func_end GetLinkPlayerTrainerId - - thumb_func_start ResetLinkPlayers -ResetLinkPlayers: @ 0x08009E80 - push {r4, r5, lr} - ldr r5, _08009EA0 - movs r4, #4 -_08009E86: - adds r0, r5, #0 - movs r1, #0 - movs r2, #0x1c - bl memset - adds r5, #0x1c - subs r4, #1 - cmp r4, #0 - bge _08009E86 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08009EA0: .4byte gUnknown_20226A0 - thumb_func_end ResetLinkPlayers - - thumb_func_start ResetBlockSend -ResetBlockSend: @ 0x08009EA4 - ldr r1, _08009EB4 - movs r0, #0 - strb r0, [r1, #8] - strh r0, [r1] - strh r0, [r1, #2] - str r0, [r1, #4] - bx lr - .align 2, 0 -_08009EB4: .4byte gUnknown_3000D10 - thumb_func_end ResetBlockSend - - thumb_func_start InitBlockSend -InitBlockSend: @ 0x08009EB8 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r6, r1, #0 - ldr r4, _08009ECC - ldrb r5, [r4, #8] - cmp r5, #0 - beq _08009ED0 - movs r0, #0 - b _08009F0E - .align 2, 0 -_08009ECC: .4byte gUnknown_3000D10 -_08009ED0: - bl GetMultiplayerId - strb r0, [r4, #9] - movs r0, #1 - strb r0, [r4, #8] - strh r6, [r4, #2] - strh r5, [r4] - adds r0, #0xff - cmp r6, r0 - bls _08009EE8 - str r7, [r4, #4] - b _08009EFA -_08009EE8: - ldr r5, _08009F14 - cmp r7, r5 - beq _08009EF8 - adds r0, r5, #0 - adds r1, r7, #0 - adds r2, r6, #0 - bl memcpy -_08009EF8: - str r5, [r4, #4] -_08009EFA: - ldr r0, _08009F18 - bl BuildSendCmd - ldr r1, _08009F1C - ldr r0, _08009F20 - str r0, [r1] - ldr r1, _08009F24 - movs r0, #0 - str r0, [r1] - movs r0, #1 -_08009F0E: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08009F14: .4byte gUnknown_202257C -_08009F18: .4byte 0x0000BBBB -_08009F1C: .4byte gUnknown_30031E0 -_08009F20: .4byte LinkCB_BlockSendBegin -_08009F24: .4byte gUnknown_3000D50 - thumb_func_end InitBlockSend - - thumb_func_start LinkCB_BlockSendBegin -LinkCB_BlockSendBegin: @ 0x08009F28 - push {lr} - ldr r1, _08009F40 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - cmp r0, #2 - bls _08009F3C - ldr r1, _08009F44 - ldr r0, _08009F48 - str r0, [r1] -_08009F3C: - pop {r0} - bx r0 - .align 2, 0 -_08009F40: .4byte gUnknown_3000D50 -_08009F44: .4byte gUnknown_30031E0 -_08009F48: .4byte LinkCB_BlockSend - thumb_func_end LinkCB_BlockSendBegin - - thumb_func_start LinkCB_BlockSend -LinkCB_BlockSend: @ 0x08009F4C - push {r4, r5, r6, lr} - ldr r0, _08009F9C - ldr r5, [r0, #4] - ldr r2, _08009FA0 - ldr r1, _08009FA4 - strh r1, [r2] - movs r3, #0 - adds r4, r0, #0 - adds r6, r4, #0 - adds r2, #2 -_08009F60: - lsls r0, r3, #1 - ldrh r1, [r6] - adds r0, r0, r1 - adds r0, r0, r5 - ldrb r1, [r0, #1] - lsls r1, r1, #8 - ldrb r0, [r0] - orrs r0, r1 - strh r0, [r2] - adds r2, #2 - adds r3, #1 - cmp r3, #6 - ble _08009F60 - ldrh r0, [r4] - adds r0, #0xe - strh r0, [r4] - ldrh r1, [r4, #2] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r1, r0 - bhi _08009F94 - movs r0, #0 - strb r0, [r4, #8] - ldr r1, _08009FA8 - ldr r0, _08009FAC - str r0, [r1] -_08009F94: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08009F9C: .4byte gUnknown_3000D10 -_08009FA0: .4byte gUnknown_30031B0 -_08009FA4: .4byte 0x00008888 -_08009FA8: .4byte gUnknown_30031E0 -_08009FAC: .4byte sub_08009FB0 - thumb_func_end LinkCB_BlockSend - - thumb_func_start sub_08009FB0 -sub_08009FB0: @ 0x08009FB0 - ldr r1, _08009FB8 - movs r0, #0 - str r0, [r1] - bx lr - .align 2, 0 -_08009FB8: .4byte gUnknown_30031E0 - thumb_func_end sub_08009FB0 - - thumb_func_start sub_08009FBC -sub_08009FBC: @ 0x08009FBC - push {lr} - bl GetMultiplayerId - ldr r0, _08009FD4 - bl BuildSendCmd - ldr r1, _08009FD8 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08009FD4: .4byte 0x00004444 -_08009FD8: .4byte gUnknown_2022078 - thumb_func_end sub_08009FBC - - thumb_func_start sub_08009FDC -sub_08009FDC: @ 0x08009FDC - push {lr} - ldr r1, _08009FF4 - movs r0, #0 - str r0, [r1] - ldr r0, _08009FF8 - ldrb r0, [r0] - cmp r0, #0 - beq _08009FFC - bl sub_0800F334 - b _0800A002 - .align 2, 0 -_08009FF4: .4byte gUnknown_2022078 -_08009FF8: .4byte gUnknown_300319C -_08009FFC: - ldr r1, _0800A008 - ldr r0, _0800A00C - str r0, [r1] -_0800A002: - pop {r0} - bx r0 - .align 2, 0 -_0800A008: .4byte gUnknown_30031E0 -_0800A00C: .4byte sub_08009FBC - thumb_func_end sub_08009FDC - - thumb_func_start sub_0800A010 -sub_0800A010: @ 0x0800A010 - ldr r0, _0800A018 - ldr r0, [r0] - bx lr - .align 2, 0 -_0800A018: .4byte gUnknown_2022078 - thumb_func_end sub_0800A010 - - thumb_func_start sub_0800A01C -sub_0800A01C: @ 0x0800A01C - push {lr} - ldr r0, _0800A028 - bl BuildSendCmd - pop {r0} - bx r0 - .align 2, 0 -_0800A028: .4byte 0x0000AAAA - thumb_func_end sub_0800A01C - - thumb_func_start GetMultiplayerId -GetMultiplayerId: @ 0x0800A02C - push {lr} - ldr r0, _0800A040 - ldrb r0, [r0] - cmp r0, #1 - beq _0800A048 - ldr r0, _0800A044 - ldr r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - b _0800A050 - .align 2, 0 -_0800A040: .4byte gUnknown_300319C -_0800A044: .4byte 0x04000128 -_0800A048: - bl rfu_get_multiplayer_id - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_0800A050: - pop {r1} - bx r1 - thumb_func_end GetMultiplayerId - - thumb_func_start bitmask_all_link_players_but_self -bitmask_all_link_players_but_self: @ 0x0800A054 - push {lr} - bl GetMultiplayerId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #1 - lsls r0, r1 - movs r1, #0xf - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - thumb_func_end bitmask_all_link_players_but_self - - thumb_func_start SendBlock -SendBlock: @ 0x0800A070 - push {lr} - adds r3, r1, #0 - lsls r2, r2, #0x10 - lsrs r1, r2, #0x10 - ldr r0, _0800A088 - ldrb r0, [r0] - cmp r0, #1 - beq _0800A08C - adds r0, r3, #0 - bl InitBlockSend - b _0800A092 - .align 2, 0 -_0800A088: .4byte gUnknown_300319C -_0800A08C: - adds r0, r3, #0 - bl sub_0800F968 -_0800A092: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end SendBlock - - thumb_func_start sub_0800A09C -sub_0800A09C: @ 0x0800A09C - push {lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r2, r1, #0 - ldr r0, _0800A0B8 - ldrb r0, [r0] - cmp r0, #1 - bne _0800A0BC - adds r0, r1, #0 - bl sub_0800FC00 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0800A0D8 - .align 2, 0 -_0800A0B8: .4byte gUnknown_300319C -_0800A0BC: - ldr r0, _0800A0C8 - ldr r0, [r0] - cmp r0, #0 - beq _0800A0CC - movs r0, #0 - b _0800A0D8 - .align 2, 0 -_0800A0C8: .4byte gUnknown_30031E0 -_0800A0CC: - ldr r0, _0800A0DC - strb r2, [r0] - ldr r0, _0800A0E0 - bl BuildSendCmd - movs r0, #1 -_0800A0D8: - pop {r1} - bx r1 - .align 2, 0 -_0800A0DC: .4byte gUnknown_30031F0 -_0800A0E0: .4byte 0x0000CCCC - thumb_func_end sub_0800A09C - - thumb_func_start IsLinkTaskFinished -IsLinkTaskFinished: @ 0x0800A0E4 - push {lr} - ldr r0, _0800A0F8 - ldrb r0, [r0] - cmp r0, #1 - bne _0800A0FC - bl sub_08010000 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0800A10A - .align 2, 0 -_0800A0F8: .4byte gUnknown_300319C -_0800A0FC: - movs r1, #0 - ldr r0, _0800A110 - ldr r0, [r0] - cmp r0, #0 - bne _0800A108 - movs r1, #1 -_0800A108: - adds r0, r1, #0 -_0800A10A: - pop {r1} - bx r1 - .align 2, 0 -_0800A110: .4byte gUnknown_30031E0 - thumb_func_end IsLinkTaskFinished - - thumb_func_start GetBlockReceivedStatus -GetBlockReceivedStatus: @ 0x0800A114 - push {lr} - ldr r0, _0800A138 - ldrb r0, [r0] - cmp r0, #1 - beq _0800A140 - ldr r2, _0800A13C - ldrb r0, [r2, #3] - lsls r0, r0, #3 - ldrb r1, [r2, #2] - lsls r1, r1, #2 - orrs r0, r1 - ldrb r1, [r2, #1] - lsls r1, r1, #1 - orrs r0, r1 - ldrb r1, [r2] - orrs r0, r1 - b _0800A144 - .align 2, 0 -_0800A138: .4byte gUnknown_300319C -_0800A13C: .4byte gUnknown_300311C -_0800A140: - bl sub_0800F7BC -_0800A144: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - thumb_func_end GetBlockReceivedStatus - - thumb_func_start SetBlockReceivedFlag -SetBlockReceivedFlag: @ 0x0800A14C - push {lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r0, _0800A164 - ldrb r0, [r0] - cmp r0, #1 - bne _0800A168 - adds r0, r1, #0 - bl sub_0800F1BC - b _0800A170 - .align 2, 0 -_0800A164: .4byte gUnknown_300319C -_0800A168: - ldr r0, _0800A174 - adds r0, r1, r0 - movs r1, #1 - strb r1, [r0] -_0800A170: - pop {r0} - bx r0 - .align 2, 0 -_0800A174: .4byte gUnknown_300311C - thumb_func_end SetBlockReceivedFlag - - thumb_func_start ResetBlockReceivedFlags -ResetBlockReceivedFlags: @ 0x0800A178 - push {r4, lr} - ldr r0, _0800A194 - ldrb r0, [r0] - cmp r0, #1 - bne _0800A198 - movs r4, #0 -_0800A184: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl sub_0800F1E8 - adds r4, #1 - cmp r4, #4 - ble _0800A184 - b _0800A1A6 - .align 2, 0 -_0800A194: .4byte gUnknown_300319C -_0800A198: - ldr r1, _0800A1AC - movs r2, #0 - adds r0, r1, #3 -_0800A19E: - strb r2, [r0] - subs r0, #1 - cmp r0, r1 - bge _0800A19E -_0800A1A6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800A1AC: .4byte gUnknown_300311C - thumb_func_end ResetBlockReceivedFlags - - thumb_func_start ResetBlockReceivedFlag -ResetBlockReceivedFlag: @ 0x0800A1B0 - push {lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r0, _0800A1C8 - ldrb r0, [r0] - cmp r0, #1 - bne _0800A1CC - adds r0, r1, #0 - bl sub_0800F1E8 - b _0800A1DA - .align 2, 0 -_0800A1C8: .4byte gUnknown_300319C -_0800A1CC: - ldr r0, _0800A1E0 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0 - beq _0800A1DA - movs r0, #0 - strb r0, [r1] -_0800A1DA: - pop {r0} - bx r0 - .align 2, 0 -_0800A1E0: .4byte gUnknown_300311C - thumb_func_end ResetBlockReceivedFlag - - thumb_func_start CheckShouldAdvanceLinkState -CheckShouldAdvanceLinkState: @ 0x0800A1E4 - push {lr} - ldr r0, _0800A204 - ldr r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0800A200 - movs r0, #0x1c - ands r1, r0 - cmp r1, #4 - bls _0800A200 - ldr r1, _0800A208 - movs r0, #1 - strb r0, [r1] -_0800A200: - pop {r0} - bx r0 - .align 2, 0 -_0800A204: .4byte gUnknown_3003180 -_0800A208: .4byte gUnknown_30031E4 - thumb_func_end CheckShouldAdvanceLinkState - - thumb_func_start LinkTestCalcBlockChecksum -LinkTestCalcBlockChecksum: @ 0x0800A20C - push {r4, lr} - adds r4, r0, #0 - lsls r1, r1, #0x10 - movs r3, #0 - movs r2, #0 - lsrs r1, r1, #0x11 - cmp r3, r1 - bhs _0800A232 -_0800A21C: - lsls r0, r2, #1 - adds r0, r0, r4 - ldrh r0, [r0] - adds r0, r3, r0 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, r1 - blo _0800A21C -_0800A232: - adds r0, r3, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end LinkTestCalcBlockChecksum - - thumb_func_start LinkTest_prnthexchar -LinkTest_prnthexchar: @ 0x0800A23C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - ldr r4, _0800A270 - ldr r3, [r4] - lsls r3, r3, #0xb - movs r5, #0xc0 - lsls r5, r5, #0x13 - adds r3, r3, r5 - lsrs r2, r2, #0x13 - adds r2, r2, r1 - lsls r2, r2, #1 - adds r2, r2, r3 - ldr r3, [r4, #4] - lsls r3, r3, #0xc - ldr r1, [r4, #8] - adds r1, #1 - adds r0, r0, r1 - orrs r3, r0 - strh r3, [r2] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0800A270: .4byte gUnknown_30031D0 - thumb_func_end LinkTest_prnthexchar - - thumb_func_start LinkTest_prntchar -LinkTest_prntchar: @ 0x0800A274 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - ldr r4, _0800A2A8 - ldr r3, [r4] - lsls r3, r3, #0xb - movs r5, #0xc0 - lsls r5, r5, #0x13 - adds r3, r3, r5 - lsrs r2, r2, #0x13 - adds r2, r2, r1 - lsls r2, r2, #1 - adds r2, r2, r3 - ldr r3, [r4, #4] - lsls r3, r3, #0xc - ldr r1, [r4, #8] - adds r1, r1, r0 - orrs r3, r1 - strh r3, [r2] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0800A2A8: .4byte gUnknown_30031D0 - thumb_func_end LinkTest_prntchar - - thumb_func_start LinkTest_prnthex -LinkTest_prnthex: @ 0x0800A2AC - push {r4, r5, r6, r7, lr} - sub sp, #0x10 - adds r5, r0, #0 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r4, #0 - cmp r4, r3 - bge _0800A2D8 - movs r2, #0xf -_0800A2C6: - mov r0, sp - adds r1, r0, r4 - adds r0, r5, #0 - ands r0, r2 - strb r0, [r1] - lsrs r5, r5, #4 - adds r4, #1 - cmp r4, r3 - blt _0800A2C6 -_0800A2D8: - subs r4, r3, #1 - cmp r4, #0 - blt _0800A2F8 -_0800A2DE: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - adds r1, r6, #0 - adds r2, r7, #0 - bl LinkTest_prnthexchar - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - subs r4, #1 - cmp r4, #0 - bge _0800A2DE -_0800A2F8: - add sp, #0x10 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end LinkTest_prnthex - - thumb_func_start LinkTest_prntint -LinkTest_prntint: @ 0x0800A300 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - adds r6, r0, #0 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sb, r2 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r8, r3 - movs r0, #1 - rsbs r0, r0, #0 - str r0, [sp, #0x10] - cmp r6, #0 - bge _0800A32C - str r7, [sp, #0x10] - rsbs r6, r6, #0 -_0800A32C: - movs r5, #0 - movs r1, #1 - rsbs r1, r1, #0 - add r1, r8 - mov sl, r1 - cmp r5, r8 - bge _0800A358 -_0800A33A: - mov r0, sp - adds r4, r0, r5 - adds r0, r6, #0 - movs r1, #0xa - bl __modsi3 - strb r0, [r4] - adds r0, r6, #0 - movs r1, #0xa - bl __divsi3 - adds r6, r0, #0 - adds r5, #1 - cmp r5, r8 - blt _0800A33A -_0800A358: - mov r5, sl - cmp r5, #0 - blt _0800A378 -_0800A35E: - mov r1, sp - adds r0, r1, r5 - ldrb r0, [r0] - adds r1, r7, #0 - mov r2, sb - bl LinkTest_prnthexchar - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - subs r5, #1 - cmp r5, #0 - bge _0800A35E -_0800A378: - movs r0, #1 - rsbs r0, r0, #0 - ldr r1, [sp, #0x10] - cmp r1, r0 - beq _0800A38E - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0xa - mov r2, sb - bl LinkTest_prnthexchar -_0800A38E: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkTest_prntint - - thumb_func_start LinkTest_prntstr -LinkTest_prntstr: @ 0x0800A3A0 - push {r4, r5, r6, r7, lr} - adds r3, r0, #0 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r6, #0 - ldrb r0, [r3] - cmp r0, #0 - beq _0800A3E0 - adds r4, r3, #0 - lsls r5, r2, #0x18 -_0800A3B8: - ldrb r0, [r4] - cmp r0, #0xa - bne _0800A3C8 - movs r0, #0x80 - lsls r0, r0, #0x11 - adds r5, r5, r0 - movs r6, #0 - b _0800A3D8 -_0800A3C8: - ldrb r0, [r4] - adds r1, r7, r6 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsrs r2, r5, #0x18 - bl LinkTest_prntchar - adds r6, #1 -_0800A3D8: - adds r4, #1 - ldrb r0, [r4] - cmp r0, #0 - bne _0800A3B8 -_0800A3E0: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkTest_prntstr - - thumb_func_start LinkCB_RequestPlayerDataExchange -LinkCB_RequestPlayerDataExchange: @ 0x0800A3E8 - push {lr} - ldr r0, _0800A408 - ldr r0, [r0] - movs r1, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0800A3FC - ldr r0, _0800A40C - bl BuildSendCmd -_0800A3FC: - ldr r1, _0800A410 - movs r0, #0 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0800A408: .4byte gUnknown_3003180 -_0800A40C: .4byte 0x00002222 -_0800A410: .4byte gUnknown_30031E0 - thumb_func_end LinkCB_RequestPlayerDataExchange - - thumb_func_start sub_0800A414 -sub_0800A414: @ 0x0800A414 - push {r4, r5, r6, lr} - sub sp, #0x20 - ldr r1, _0800A534 - mov r0, sp - bl strcpy - mov r0, sp - movs r1, #5 - movs r2, #2 - bl LinkTest_prntstr - ldr r0, _0800A538 - ldrb r0, [r0] - movs r1, #2 - movs r2, #1 - movs r3, #2 - bl LinkTest_prnthex - ldr r4, _0800A53C - ldr r0, [r4] - movs r1, #0xf - movs r2, #1 - movs r3, #8 - bl LinkTest_prnthex - ldr r0, _0800A540 - ldrb r0, [r0, #1] - movs r1, #2 - movs r2, #0xa - movs r3, #2 - bl LinkTest_prnthex - ldr r0, [r4] - movs r1, #0x1c - ands r0, r1 - lsrs r0, r0, #2 - movs r1, #0xf - movs r2, #0xa - movs r3, #2 - bl LinkTest_prnthex - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0xf - movs r2, #0xc - movs r3, #2 - bl LinkTest_prnthex - ldr r0, _0800A544 - ldrb r0, [r0] - movs r1, #0x19 - movs r2, #1 - movs r3, #2 - bl LinkTest_prnthex - ldr r0, _0800A548 - ldrb r0, [r0] - movs r1, #0x19 - movs r2, #2 - movs r3, #2 - bl LinkTest_prnthex - bl GetBlockReceivedStatus - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0xf - movs r2, #5 - movs r3, #2 - bl LinkTest_prnthex - ldr r0, _0800A54C - ldr r0, [r0] - movs r1, #2 - movs r2, #0xc - movs r3, #8 - bl LinkTest_prnthex - ldr r0, _0800A550 - ldr r0, [r0] - movs r1, #2 - movs r2, #0xd - movs r3, #8 - bl LinkTest_prnthex - bl GetSioMultiSI - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x19 - movs r2, #5 - movs r3, #1 - bl LinkTest_prnthex - bl IsSioMultiMaster - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x19 - movs r2, #6 - movs r3, #1 - bl LinkTest_prnthex - bl IsLinkConnectionEstablished - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x19 - movs r2, #7 - movs r3, #1 - bl LinkTest_prnthex - bl sub_0800AE18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x19 - movs r2, #8 - movs r3, #1 - bl LinkTest_prnthex - movs r6, #0 - movs r5, #0x80 - lsls r5, r5, #0x13 - ldr r4, _0800A554 -_0800A512: - ldrh r0, [r4] - lsrs r2, r5, #0x18 - movs r1, #0xa - movs r3, #4 - bl LinkTest_prnthex - movs r0, #0x80 - lsls r0, r0, #0x11 - adds r5, r5, r0 - adds r4, #2 - adds r6, #1 - cmp r6, #3 - ble _0800A512 - add sp, #0x20 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0800A534: .4byte gUnknown_82BFF34 -_0800A538: .4byte gUnknown_30031E4 -_0800A53C: .4byte gUnknown_3003180 -_0800A540: .4byte gUnknown_3003210 -_0800A544: .4byte gUnknown_3003200 -_0800A548: .4byte gUnknown_30041D0 -_0800A54C: .4byte gUnknown_30030CC -_0800A550: .4byte gUnknown_3003110 -_0800A554: .4byte gUnknown_30031E8 - thumb_func_end sub_0800A414 - - thumb_func_start SetLinkDebugValues -SetLinkDebugValues: @ 0x0800A558 - ldr r2, _0800A564 - str r0, [r2] - ldr r0, _0800A568 - str r1, [r0] - bx lr - .align 2, 0 -_0800A564: .4byte gUnknown_30030CC -_0800A568: .4byte gUnknown_3003110 - thumb_func_end SetLinkDebugValues - - thumb_func_start sub_0800A56C -sub_0800A56C: @ 0x0800A56C - push {r4, lr} - movs r1, #0 - movs r2, #0 - ldr r0, _0800A598 - ldrb r0, [r0] - cmp r1, r0 - bge _0800A58E - movs r4, #1 - adds r3, r0, #0 -_0800A57E: - adds r0, r4, #0 - lsls r0, r2 - orrs r1, r0 - lsls r0, r1, #0x18 - lsrs r1, r0, #0x18 - adds r2, #1 - cmp r2, r3 - blt _0800A57E -_0800A58E: - adds r0, r1, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0800A598: .4byte gUnknown_30031A0 - thumb_func_end sub_0800A56C - - thumb_func_start sub_0800A59C -sub_0800A59C: @ 0x0800A59C - push {r4, r5, r6, lr} - movs r4, #0 - movs r5, #0 - movs r6, #1 - b _0800A5B2 -_0800A5A6: - adds r0, r6, #0 - lsls r0, r5 - orrs r4, r0 - lsls r0, r4, #0x18 - lsrs r4, r0, #0x18 - adds r5, #1 -_0800A5B2: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r5, r0 - blt _0800A5A6 - adds r0, r4, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0800A59C - - thumb_func_start sub_0800A5C8 -sub_0800A5C8: @ 0x0800A5C8 - push {r4, r5, r6, r7, lr} - ldr r1, _0800A5FC - strb r0, [r1] - bl GetMultiplayerId - ldr r1, _0800A600 - strb r0, [r1] - ldr r4, _0800A604 - ldr r3, _0800A608 - movs r2, #4 -_0800A5DC: - adds r0, r3, #0 - adds r1, r4, #0 - ldm r1!, {r5, r6, r7} - stm r0!, {r5, r6, r7} - ldm r1!, {r5, r6, r7} - stm r0!, {r5, r6, r7} - ldr r1, [r1] - str r1, [r0] - adds r4, #0x1c - adds r3, #0x1c - subs r2, #1 - cmp r2, #0 - bge _0800A5DC - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800A5FC: .4byte gUnknown_30031A0 -_0800A600: .4byte gUnknown_30031C0 -_0800A604: .4byte gUnknown_20226A0 -_0800A608: .4byte gUnknown_202272C - thumb_func_end sub_0800A5C8 - - thumb_func_start sub_0800A60C -sub_0800A60C: @ 0x0800A60C - ldr r0, _0800A614 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0800A614: .4byte gUnknown_30031A0 - thumb_func_end sub_0800A60C - - thumb_func_start sub_0800A618 -sub_0800A618: @ 0x0800A618 - ldr r0, _0800A620 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0800A620: .4byte gUnknown_30031C0 - thumb_func_end sub_0800A618 - - thumb_func_start sub_0800A624 -sub_0800A624: @ 0x0800A624 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - movs r3, #0 - ldr r0, _0800A694 - ldrb r1, [r0] - mov sb, r0 - cmp r3, r1 - bge _0800A678 - ldr r0, _0800A698 - mov ip, r0 - ldr r0, _0800A69C - ldr r2, _0800A6A0 - mov r8, r2 - ldr r7, _0800A6A4 - mov r6, ip - adds r6, #0x14 - adds r5, r0, #4 - movs r4, #0 - adds r2, r1, #0 -_0800A64E: - mov r0, ip - adds r0, #4 - adds r0, r4, r0 - ldr r1, [r0] - ldr r0, [r5] - cmp r1, r0 - bne _0800A66C - ldrh r0, [r7] - cmp r0, r8 - bne _0800A66A - adds r1, r0, #0 - ldr r0, [r6] - cmp r1, r0 - bne _0800A66C -_0800A66A: - adds r3, #1 -_0800A66C: - adds r6, #0x1c - adds r5, #0x1c - adds r4, #0x1c - subs r2, #1 - cmp r2, #0 - bne _0800A64E -_0800A678: - mov r0, sb - ldrb r0, [r0] - cmp r3, r0 - bne _0800A6A8 - bl GetLinkPlayerCount_2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, sb - ldrb r1, [r1] - cmp r0, r1 - bne _0800A6A8 - movs r0, #1 - b _0800A6AA - .align 2, 0 -_0800A694: .4byte gUnknown_30031A0 -_0800A698: .4byte gUnknown_20226A0 -_0800A69C: .4byte gUnknown_202272C -_0800A6A0: .4byte 0x00002288 -_0800A6A4: .4byte gUnknown_202267E -_0800A6A8: - movs r0, #0 -_0800A6AA: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0800A624 - - thumb_func_start sub_0800A6B8 -sub_0800A6B8: @ 0x0800A6B8 - push {r4, r5, lr} - ldr r5, _0800A6D8 - movs r4, #3 -_0800A6BE: - adds r0, r5, #0 - movs r1, #0 - movs r2, #0x1c - bl CpuSet - adds r5, #0x1c - subs r4, #1 - cmp r4, #0 - bge _0800A6BE - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0800A6D8: .4byte gUnknown_202272C - thumb_func_end sub_0800A6B8 - - thumb_func_start sub_0800A6DC -sub_0800A6DC: @ 0x0800A6DC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r4, #0 - ldr r0, _0800A748 - ldrb r0, [r0] - cmp r4, r0 - bhs _0800A73C - ldr r6, _0800A74C - ldr r5, _0800A750 - movs r0, #8 - adds r0, r0, r6 - mov r8, r0 - adds r7, r5, #0 - adds r7, #8 -_0800A6FA: - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r2, r0, #2 - adds r1, r6, #4 - adds r1, r2, r1 - adds r0, r5, #4 - adds r0, r2, r0 - ldr r1, [r1] - ldr r0, [r0] - cmp r1, r0 - bne _0800A71E - mov r1, r8 - adds r0, r2, r1 - adds r1, r2, r7 - bl StringCompare - cmp r0, #0 - beq _0800A72E -_0800A71E: - ldr r1, _0800A754 - movs r0, #1 - strb r0, [r1] - bl CloseLink - ldr r0, _0800A758 - bl SetMainCallback2 -_0800A72E: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0800A748 - ldrb r0, [r0] - cmp r4, r0 - blo _0800A6FA -_0800A73C: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800A748: .4byte gUnknown_30031A0 -_0800A74C: .4byte gUnknown_202272C -_0800A750: .4byte gUnknown_20226A0 -_0800A754: .4byte gUnknown_300310C -_0800A758: .4byte CB2_LinkError - thumb_func_end sub_0800A6DC - - thumb_func_start sub_0800A75C -sub_0800A75C: @ 0x0800A75C - ldr r0, _0800A768 - movs r1, #0 - strb r1, [r0] - ldr r0, _0800A76C - strb r1, [r0] - bx lr - .align 2, 0 -_0800A768: .4byte gUnknown_30031A0 -_0800A76C: .4byte gUnknown_30031C0 - thumb_func_end sub_0800A75C - - thumb_func_start GetLinkPlayerCount_2 -GetLinkPlayerCount_2: @ 0x0800A770 - ldr r0, _0800A77C - ldr r0, [r0] - movs r1, #0x1c - ands r0, r1 - lsrs r0, r0, #2 - bx lr - .align 2, 0 -_0800A77C: .4byte gUnknown_3003180 - thumb_func_end GetLinkPlayerCount_2 - - thumb_func_start IsLinkMaster -IsLinkMaster: @ 0x0800A780 - push {lr} - ldr r0, _0800A798 - ldrb r0, [r0] - cmp r0, #0 - bne _0800A7A0 - ldr r0, _0800A79C - ldr r0, [r0] - lsrs r0, r0, #5 - movs r1, #1 - ands r0, r1 - b _0800A7A8 - .align 2, 0 -_0800A798: .4byte gUnknown_300319C -_0800A79C: .4byte gUnknown_3003180 -_0800A7A0: - bl Rfu_IsMaster - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_0800A7A8: - pop {r1} - bx r1 - thumb_func_end IsLinkMaster - - thumb_func_start sub_0800A7AC -sub_0800A7AC: @ 0x0800A7AC - ldr r0, _0800A7B4 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0800A7B4: .4byte gUnknown_3000D58 - thumb_func_end sub_0800A7AC - - thumb_func_start sub_0800A7B8 -sub_0800A7B8: @ 0x0800A7B8 - push {lr} - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldr r0, _0800A7CC - ldrb r0, [r0] - cmp r0, #1 - bne _0800A7D0 - bl task_add_05_task_del_08FA224_when_no_RfuFunc - b _0800A7E4 - .align 2, 0 -_0800A7CC: .4byte gUnknown_300319C -_0800A7D0: - ldr r2, _0800A7E8 - ldr r1, [r2] - cmp r1, #0 - bne _0800A7E4 - ldr r0, _0800A7EC - str r0, [r2] - ldr r0, _0800A7F0 - strb r1, [r0] - ldr r0, _0800A7F4 - strh r3, [r0] -_0800A7E4: - pop {r0} - bx r0 - .align 2, 0 -_0800A7E8: .4byte gUnknown_30031E0 -_0800A7EC: .4byte sub_0800A844 -_0800A7F0: .4byte gUnknown_3003184 -_0800A7F4: .4byte gUnknown_3003194 - thumb_func_end sub_0800A7B8 - - thumb_func_start sub_0800A7F8 -sub_0800A7F8: @ 0x0800A7F8 - push {lr} - ldr r0, _0800A808 - ldrb r0, [r0] - cmp r0, #1 - bne _0800A80C - bl task_add_05_task_del_08FA224_when_no_RfuFunc - b _0800A834 - .align 2, 0 -_0800A808: .4byte gUnknown_300319C -_0800A80C: - ldr r2, _0800A820 - ldr r1, [r2] - cmp r1, #0 - beq _0800A828 - ldr r1, _0800A824 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _0800A834 - .align 2, 0 -_0800A820: .4byte gUnknown_30031E0 -_0800A824: .4byte gUnknown_20227C0 -_0800A828: - ldr r0, _0800A838 - str r0, [r2] - ldr r0, _0800A83C - strb r1, [r0] - ldr r0, _0800A840 - strh r1, [r0] -_0800A834: - pop {r0} - bx r0 - .align 2, 0 -_0800A838: .4byte sub_0800A844 -_0800A83C: .4byte gUnknown_3003184 -_0800A840: .4byte gUnknown_3003194 - thumb_func_end sub_0800A7F8 - - thumb_func_start sub_0800A844 -sub_0800A844: @ 0x0800A844 - push {lr} - ldr r0, _0800A860 - ldrb r0, [r0] - cmp r0, #0 - bne _0800A85A - ldr r0, _0800A864 - bl BuildSendCmd - ldr r1, _0800A868 - ldr r0, _0800A86C - str r0, [r1] -_0800A85A: - pop {r0} - bx r0 - .align 2, 0 -_0800A860: .4byte gUnknown_30041D0 -_0800A864: .4byte 0x00005FFF -_0800A868: .4byte gUnknown_30031E0 -_0800A86C: .4byte sub_0800A870 - thumb_func_end sub_0800A844 - - thumb_func_start sub_0800A870 -sub_0800A870: @ 0x0800A870 - push {r4, lr} - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - movs r3, #0 - movs r1, #0 - cmp r3, r2 - bge _0800A894 - ldr r4, _0800A8C0 -_0800A884: - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, #0 - beq _0800A88E - adds r3, #1 -_0800A88E: - adds r1, #1 - cmp r1, r2 - blt _0800A884 -_0800A894: - cmp r3, r2 - bne _0800A8B8 - ldr r2, _0800A8C4 - ldr r0, [r2] - movs r1, #0x21 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r2] - ldr r0, _0800A8C8 - movs r4, #1 - strb r4, [r0] - bl CloseLink - ldr r1, _0800A8CC - movs r0, #0 - str r0, [r1] - ldr r0, _0800A8D0 - strb r4, [r0] -_0800A8B8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800A8C0: .4byte gUnknown_3003190 -_0800A8C4: .4byte gUnknown_2022C90 -_0800A8C8: .4byte gUnknown_30027E8 -_0800A8CC: .4byte gUnknown_30031E0 -_0800A8D0: .4byte gUnknown_3003184 - thumb_func_end sub_0800A870 - - thumb_func_start sub_0800A8D4 -sub_0800A8D4: @ 0x0800A8D4 - push {lr} - ldr r0, _0800A8E4 - ldrb r0, [r0] - cmp r0, #1 - bne _0800A8E8 - bl sub_0800FF34 - b _0800A8FA - .align 2, 0 -_0800A8E4: .4byte gUnknown_300319C -_0800A8E8: - ldr r1, _0800A900 - ldr r0, [r1] - cmp r0, #0 - bne _0800A8F4 - ldr r0, _0800A904 - str r0, [r1] -_0800A8F4: - ldr r1, _0800A908 - movs r0, #0 - strb r0, [r1] -_0800A8FA: - pop {r0} - bx r0 - .align 2, 0 -_0800A900: .4byte gUnknown_30031E0 -_0800A904: .4byte sub_0800A90C -_0800A908: .4byte gUnknown_3003184 - thumb_func_end sub_0800A8D4 - - thumb_func_start sub_0800A90C -sub_0800A90C: @ 0x0800A90C - push {lr} - ldr r0, _0800A928 - ldrb r0, [r0] - cmp r0, #0 - bne _0800A922 - ldr r0, _0800A92C - bl BuildSendCmd - ldr r1, _0800A930 - ldr r0, _0800A934 - str r0, [r1] -_0800A922: - pop {r0} - bx r0 - .align 2, 0 -_0800A928: .4byte gUnknown_30041D0 -_0800A92C: .4byte 0x00002FFE -_0800A930: .4byte gUnknown_30031E0 -_0800A934: .4byte sub_0800A938 - thumb_func_end sub_0800A90C - - thumb_func_start sub_0800A938 -sub_0800A938: @ 0x0800A938 - push {r4, lr} - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - movs r1, #0 - cmp r1, r2 - bhs _0800A962 - ldr r3, _0800A988 - ldrb r0, [r3] - cmp r0, #0 - beq _0800A962 -_0800A950: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, r2 - bhs _0800A962 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, #0 - bne _0800A950 -_0800A962: - cmp r1, r2 - bne _0800A980 - movs r1, #0 - ldr r4, _0800A98C - ldr r3, _0800A988 - movs r2, #0 -_0800A96E: - adds r0, r1, r3 - strb r2, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #3 - bls _0800A96E - movs r0, #0 - str r0, [r4] -_0800A980: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800A988: .4byte gUnknown_300318C -_0800A98C: .4byte gUnknown_30031E0 - thumb_func_end sub_0800A938 - - thumb_func_start CheckErrorStatus -CheckErrorStatus: @ 0x0800A990 - push {lr} - ldr r0, _0800A9D4 - ldrb r0, [r0] - cmp r0, #0 - beq _0800A9D0 - ldr r0, _0800A9D8 - ldr r2, [r0] - movs r0, #0xfe - lsls r0, r0, #0xb - ands r0, r2 - cmp r0, #0 - beq _0800A9D0 - ldr r0, _0800A9DC - ldrb r0, [r0] - cmp r0, #0 - bne _0800A9C6 - ldr r1, _0800A9E0 - str r2, [r1] - ldr r0, _0800A9E4 - ldrb r0, [r0] - strb r0, [r1, #4] - ldr r0, _0800A9E8 - ldrb r0, [r0] - strb r0, [r1, #5] - ldr r0, _0800A9EC - bl SetMainCallback2 -_0800A9C6: - ldr r1, _0800A9F0 - movs r0, #1 - strb r0, [r1] - bl CloseLink -_0800A9D0: - pop {r0} - bx r0 - .align 2, 0 -_0800A9D4: .4byte gUnknown_202267C -_0800A9D8: .4byte gUnknown_3003180 -_0800A9DC: .4byte gUnknown_3003198 -_0800A9E0: .4byte gUnknown_20227B8 -_0800A9E4: .4byte gUnknown_30041D0 -_0800A9E8: .4byte gUnknown_3003200 -_0800A9EC: .4byte CB2_LinkError -_0800A9F0: .4byte gUnknown_300310C - thumb_func_end CheckErrorStatus - - thumb_func_start sub_0800A9F4 -sub_0800A9F4: @ 0x0800A9F4 - push {r4, lr} - ldr r4, _0800AA08 - str r0, [r4] - strb r1, [r4, #5] - strb r2, [r4, #4] - strb r3, [r4, #6] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800AA08: .4byte gUnknown_20227B8 - thumb_func_end sub_0800A9F4 - - thumb_func_start CB2_LinkError -CB2_LinkError: @ 0x0800AA0C - push {r4, lr} - movs r0, #0 - movs r1, #0 - bl SetGpuReg - ldr r0, _0800AB20 - bl m4aMPlayStop - ldr r0, _0800AB24 - bl m4aMPlayStop - ldr r0, _0800AB28 - bl m4aMPlayStop - ldr r0, _0800AB2C - movs r1, #0xe0 - lsls r1, r1, #9 - bl InitHeap - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetPaletteFadeControl - movs r0, #0 - movs r1, #0 - movs r2, #2 - bl FillPalette - bl ResetTasks - bl ScanlineEffect_Stop - ldr r1, _0800AB30 - ldrb r0, [r1] - cmp r0, #0 - beq _0800AA68 - ldr r0, _0800AB34 - ldrb r0, [r0, #6] - cmp r0, #0 - bne _0800AA64 - movs r0, #3 - strb r0, [r1] -_0800AA64: - bl sub_0800E0C8 -_0800AA68: - ldr r0, _0800AB38 - bl SetVBlankCallback - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _0800AB3C - movs r0, #0 - movs r2, #2 - bl InitBgsFromTemplates - ldr r4, _0800AB40 - movs r0, #0x80 - lsls r0, r0, #4 - bl sub_08000BC8 - adds r1, r0, #0 - str r1, [r4] - movs r0, #1 - bl SetBgTilemapBuffer - ldr r0, _0800AB44 - bl InitWindows - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0800AB18 - bl sub_08004480 - bl reset_temp_tile_data_buffers - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x10 - movs r1, #0 - bl SetGpuReg - movs r0, #0x12 - movs r1, #0 - bl SetGpuReg - movs r0, #0x14 - movs r1, #0 - bl SetGpuReg - movs r0, #0x16 - movs r1, #0 - bl SetGpuReg - movs r1, #0xe0 - lsls r1, r1, #8 - movs r0, #0 - bl ClearGpuRegBits - ldr r0, _0800AB48 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - ldr r1, _0800AB4C - movs r0, #0 - strb r0, [r1] - ldr r0, _0800AB50 - movs r1, #0 - bl CreateTask - bl StopMapMusic - ldr r1, _0800AB54 - movs r0, #0 - str r0, [r1] - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - ldr r0, _0800AB58 - bl SetMainCallback2 -_0800AB18: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800AB20: .4byte gUnknown_3007510 -_0800AB24: .4byte gUnknown_3007550 -_0800AB28: .4byte gUnknown_30075A0 -_0800AB2C: .4byte gUnknown_2000000 -_0800AB30: .4byte gUnknown_300319C -_0800AB34: .4byte gUnknown_20227B8 -_0800AB38: .4byte sub_08009258 -_0800AB3C: .4byte gUnknown_82BFF4C -_0800AB40: .4byte gUnknown_20227C4 -_0800AB44: .4byte gUnknown_82BFF54 -_0800AB48: .4byte gUnknown_85D7B04 -_0800AB4C: .4byte gUnknown_30027A0 -_0800AB50: .4byte Task_DestroySelf -_0800AB54: .4byte gUnknown_3002360 -_0800AB58: .4byte CB2_PrintErrorMessage - thumb_func_end CB2_LinkError - - thumb_func_start sub_0800AB5C -sub_0800AB5C: @ 0x0800AB5C - push {r4, r5, lr} - sub sp, #0xc - ldr r1, _0800ABF8 - movs r0, #0 - movs r2, #0x20 - movs r3, #0 - bl LoadBgTiles - ldr r1, _0800ABFC - movs r5, #0 - str r5, [sp] - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r1, _0800AC00 - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - movs r0, #1 - bl CopyBgTilemapBufferToVram - ldr r0, _0800AC04 - movs r1, #0 - movs r2, #0x20 - bl LoadPalette - movs r0, #0 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #2 - movs r1, #0 - bl FillWindowPixelBuffer - ldr r4, _0800AC08 - str r4, [sp] - str r5, [sp, #4] - ldr r0, _0800AC0C - str r0, [sp, #8] - movs r0, #0 - movs r1, #3 - movs r2, #0x18 - movs r3, #5 - bl AddTextPrinterParameterized3 - str r4, [sp] - str r5, [sp, #4] - ldr r0, _0800AC10 - str r0, [sp, #8] - movs r0, #2 - movs r1, #3 - movs r2, #3 - movs r3, #2 - bl AddTextPrinterParameterized3 - movs r0, #0 - bl PutWindowTilemap - movs r0, #2 - bl PutWindowTilemap - movs r0, #0 - movs r1, #0 - bl CopyWindowToVram - movs r0, #2 - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0800ABF8: .4byte gUnknown_82BFEB8 -_0800ABFC: .4byte gUnknown_82BF4D8 -_0800AC00: .4byte gUnknown_82BF980 -_0800AC04: .4byte gUnknown_82BF4B8 -_0800AC08: .4byte gUnknown_82BFF74 -_0800AC0C: .4byte gUnknown_82BFE50 -_0800AC10: .4byte gUnknown_82BFE62 - thumb_func_end sub_0800AB5C - - thumb_func_start BtlController_EmitCmd42 -BtlController_EmitCmd42: @ 0x0800AC14 - push {lr} - sub sp, #0xc - ldr r1, _0800AC70 - movs r0, #0 - movs r2, #0x20 - movs r3, #0 - bl LoadBgTiles - movs r0, #1 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #2 - movs r1, #0 - bl FillWindowPixelBuffer - ldr r0, _0800AC74 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - ldr r0, _0800AC78 - str r0, [sp, #8] - movs r0, #1 - movs r1, #3 - movs r2, #3 - movs r3, #0 - bl AddTextPrinterParameterized3 - movs r0, #1 - bl PutWindowTilemap - movs r0, #2 - bl PutWindowTilemap - movs r0, #1 - movs r1, #0 - bl CopyWindowToVram - movs r0, #2 - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_0800AC70: .4byte gUnknown_82BFEB8 -_0800AC74: .4byte gUnknown_82BFF74 -_0800AC78: .4byte gUnknown_82BFE00 - thumb_func_end BtlController_EmitCmd42 - - thumb_func_start CB2_PrintErrorMessage -CB2_PrintErrorMessage: @ 0x0800AC7C - push {r4, lr} - sub sp, #0xc - ldr r0, _0800AC9C - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0x1e - beq _0800ACE8 - cmp r0, #0x1e - bgt _0800ACA0 - cmp r0, #0 - beq _0800ACB4 - cmp r0, #2 - beq _0800ACCE - b _0800AD3C - .align 2, 0 -_0800AC9C: .4byte gUnknown_3002360 -_0800ACA0: - cmp r0, #0x5a - beq _0800ACE8 - cmp r0, #0x5a - bgt _0800ACAE - cmp r0, #0x3c - beq _0800ACE8 - b _0800AD3C -_0800ACAE: - cmp r0, #0x82 - beq _0800ACF0 - b _0800AD3C -_0800ACB4: - ldr r0, _0800ACC4 - ldrb r0, [r0, #6] - cmp r0, #0 - beq _0800ACC8 - bl sub_0800AB5C - b _0800AD3C - .align 2, 0 -_0800ACC4: .4byte gUnknown_20227B8 -_0800ACC8: - bl BtlController_EmitCmd42 - b _0800AD3C -_0800ACCE: - movs r0, #0 - bl ShowBg - ldr r0, _0800ACE4 - ldrb r0, [r0, #6] - cmp r0, #0 - beq _0800AD3C - movs r0, #1 - bl ShowBg - b _0800AD3C - .align 2, 0 -_0800ACE4: .4byte gUnknown_20227B8 -_0800ACE8: - movs r0, #0x16 - bl sub_080A306C - b _0800AD3C -_0800ACF0: - ldr r0, _0800AD14 - ldrb r0, [r0] - cmp r0, #2 - bne _0800AD20 - ldr r0, _0800AD18 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - ldr r0, _0800AD1C - str r0, [sp, #8] - movs r0, #0 - movs r1, #3 - movs r2, #0x18 - movs r3, #0x12 - bl AddTextPrinterParameterized3 - b _0800AD3C - .align 2, 0 -_0800AD14: .4byte gUnknown_300319C -_0800AD18: .4byte gUnknown_82BFF74 -_0800AD1C: .4byte gUnknown_82BFE9F -_0800AD20: - cmp r0, #1 - bne _0800AD3C - ldr r0, _0800AD70 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - ldr r0, _0800AD74 - str r0, [sp, #8] - movs r0, #0 - movs r1, #3 - movs r2, #0x18 - movs r3, #0x12 - bl AddTextPrinterParameterized3 -_0800AD3C: - ldr r0, _0800AD78 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r0, r2 - ldrb r1, [r1] - cmp r1, #0xa0 - bne _0800ADAC - ldr r4, _0800AD7C - ldrb r2, [r4] - cmp r2, #1 - bne _0800AD84 - ldrh r0, [r0, #0x2e] - ands r2, r0 - cmp r2, #0 - beq _0800AD9E - movs r0, #0x15 - bl sub_080A306C - movs r0, #0 - strb r0, [r4] - ldr r1, _0800AD80 - movs r0, #0 - strb r0, [r1, #6] - bl sub_0816FEF0 - b _0800AD9E - .align 2, 0 -_0800AD70: .4byte gUnknown_82BFF74 -_0800AD74: .4byte gUnknown_82BFE8D -_0800AD78: .4byte gUnknown_3002360 -_0800AD7C: .4byte gUnknown_300319C -_0800AD80: .4byte gUnknown_20227B8 -_0800AD84: - cmp r2, #2 - bne _0800AD9E - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0800AD9E - bl rfu_REQ_stopMode - bl rfu_waitREQComplete - bl DoSoftReset -_0800AD9E: - ldr r0, _0800ADC0 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r0, r2 - ldrb r1, [r1] - cmp r1, #0xa0 - beq _0800ADB8 -_0800ADAC: - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r0, r2 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_0800ADB8: - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800ADC0: .4byte gUnknown_3002360 - thumb_func_end CB2_PrintErrorMessage - - thumb_func_start GetSioMultiSI -GetSioMultiSI: @ 0x0800ADC4 - ldr r0, _0800ADD0 - ldrh r0, [r0] - lsrs r0, r0, #2 - movs r1, #1 - ands r0, r1 - bx lr - .align 2, 0 -_0800ADD0: .4byte 0x04000128 - thumb_func_end GetSioMultiSI - - thumb_func_start IsSioMultiMaster -IsSioMultiMaster: @ 0x0800ADD4 - push {lr} - movs r3, #0 - ldr r2, _0800ADF8 - ldrh r1, [r2] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0800ADF0 - ldrh r1, [r2] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _0800ADF0 - movs r3, #1 -_0800ADF0: - adds r0, r3, #0 - pop {r1} - bx r1 - .align 2, 0 -_0800ADF8: .4byte 0x04000128 - thumb_func_end IsSioMultiMaster - - thumb_func_start IsLinkConnectionEstablished -IsLinkConnectionEstablished: @ 0x0800ADFC - ldr r0, _0800AE08 - ldr r0, [r0] - lsrs r0, r0, #6 - movs r1, #1 - ands r0, r1 - bx lr - .align 2, 0 -_0800AE08: .4byte gUnknown_3003180 - thumb_func_end IsLinkConnectionEstablished - - thumb_func_start sub_0800AE0C -sub_0800AE0C: @ 0x0800AE0C - ldr r1, _0800AE14 - strb r0, [r1] - bx lr - .align 2, 0 -_0800AE14: .4byte gUnknown_3003198 - thumb_func_end sub_0800AE0C - - thumb_func_start sub_0800AE18 -sub_0800AE18: @ 0x0800AE18 - ldr r0, _0800AE20 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0800AE20: .4byte gUnknown_300310C - thumb_func_end sub_0800AE18 - - thumb_func_start sub_0800AE24 -sub_0800AE24: @ 0x0800AE24 - push {r4, r5, r6, lr} - bl InitLocalLinkPlayer - ldr r1, _0800AE70 - adds r2, r1, #0 - adds r2, #0x10 - ldr r0, _0800AE74 - ldm r0!, {r3, r4, r5} - stm r2!, {r3, r4, r5} - ldm r0!, {r3, r4, r6} - stm r2!, {r3, r4, r6} - ldr r0, [r0] - str r0, [r2] - ldr r3, _0800AE78 - adds r2, r1, #0 - adds r0, r3, #0 - ldm r0!, {r4, r5, r6} - stm r2!, {r4, r5, r6} - ldrh r4, [r0] - strh r4, [r2] - ldrb r0, [r0, #2] - strb r0, [r2, #2] - adds r0, r1, #0 - adds r0, #0x2c - ldm r3!, {r2, r5, r6} - stm r0!, {r2, r5, r6} - ldrh r2, [r3] - strh r2, [r0] - ldrb r2, [r3, #2] - strb r2, [r0, #2] - ldr r0, _0800AE7C - movs r2, #0x3c - bl memcpy - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0800AE70: .4byte gUnknown_30030D0 -_0800AE74: .4byte gUnknown_2022684 -_0800AE78: .4byte gUnknown_82BFF24 -_0800AE7C: .4byte gUnknown_202257C - thumb_func_end sub_0800AE24 - - thumb_func_start sub_0800AE80 -sub_0800AE80: @ 0x0800AE80 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r0, #8 - ldr r1, _0800AED0 - adds r4, r2, r1 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _0800AED4 - adds r1, r1, r0 - adds r0, r4, #0 - adds r0, #0x10 - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} - ldr r0, [r0] - str r0, [r1] - ldr r5, _0800AED8 - adds r0, r4, #0 - adds r1, r5, #0 - bl strcmp - cmp r0, #0 - bne _0800AEC2 - adds r0, r4, #0 - adds r0, #0x2c - adds r1, r5, #0 - bl strcmp - cmp r0, #0 - beq _0800AEC8 -_0800AEC2: - ldr r0, _0800AEDC - bl SetMainCallback2 -_0800AEC8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0800AED0: .4byte gUnknown_202207C -_0800AED4: .4byte gUnknown_20226A0 -_0800AED8: .4byte gUnknown_82BFF24 -_0800AEDC: .4byte CB2_LinkError - thumb_func_end sub_0800AE80 - - thumb_func_start HandleLinkConnection -HandleLinkConnection: @ 0x0800AEE0 - push {r4, r5, lr} - ldr r0, _0800AF18 - ldrb r0, [r0] - cmp r0, #0 - bne _0800AF30 - ldr r0, _0800AF1C - ldr r1, _0800AF20 - ldr r2, _0800AF24 - bl LinkMain1 - ldr r4, _0800AF28 - str r0, [r4] - ldr r0, _0800AF2C - bl LinkMain2 - ldr r0, [r4] - movs r1, #0x80 - lsls r1, r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0800AF54 - bl sub_08086FD0 - cmp r0, #1 - bne _0800AF54 -_0800AF12: - movs r0, #1 - b _0800AF56 - .align 2, 0 -_0800AF18: .4byte gUnknown_300319C -_0800AF1C: .4byte gUnknown_30031E4 -_0800AF20: .4byte gUnknown_30031B0 -_0800AF24: .4byte gUnknown_3003130 -_0800AF28: .4byte gUnknown_3003180 -_0800AF2C: .4byte gUnknown_300238C -_0800AF30: - bl sub_080109B0 - adds r4, r0, #0 - bl sub_08010A0C - adds r5, r0, #0 - bl sub_08086FD0 - cmp r0, #1 - bne _0800AF54 - cmp r4, #1 - beq _0800AF12 - bl IsRfuRecvQueueEmpty - cmp r0, #0 - bne _0800AF12 - cmp r5, #0 - bne _0800AF12 -_0800AF54: - movs r0, #0 -_0800AF56: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end HandleLinkConnection - - thumb_func_start sub_0800AF5C -sub_0800AF5C: @ 0x0800AF5C - push {lr} - ldr r0, _0800AF70 - ldrb r0, [r0] - cmp r0, #0 - bne _0800AF6C - ldr r1, _0800AF74 - movs r0, #1 - strb r0, [r1] -_0800AF6C: - pop {r0} - bx r0 - .align 2, 0 -_0800AF70: .4byte gUnknown_30031C4 -_0800AF74: .4byte gUnknown_300319C - thumb_func_end sub_0800AF5C - - thumb_func_start sub_0800AF78 -sub_0800AF78: @ 0x0800AF78 - push {lr} - ldr r0, _0800AF8C - ldrb r1, [r0] - cmp r1, #0 - bne _0800AF86 - ldr r0, _0800AF90 - strb r1, [r0] -_0800AF86: - pop {r0} - bx r0 - .align 2, 0 -_0800AF8C: .4byte gUnknown_30031C4 -_0800AF90: .4byte gUnknown_300319C - thumb_func_end sub_0800AF78 - - thumb_func_start sub_0800AF94 -sub_0800AF94: @ 0x0800AF94 - push {lr} - ldr r0, _0800AFA8 - ldrb r1, [r0] - cmp r1, #0 - bne _0800AFA2 - ldr r0, _0800AFAC - strb r1, [r0] -_0800AFA2: - pop {r0} - bx r0 - .align 2, 0 -_0800AFA8: .4byte gUnknown_30031C4 -_0800AFAC: .4byte gUnknown_300319C - thumb_func_end sub_0800AF94 - - thumb_func_start GetLinkRecvQueueLength -GetLinkRecvQueueLength: @ 0x0800AFB0 - push {lr} - ldr r0, _0800AFC4 - ldrb r0, [r0] - cmp r0, #0 - bne _0800AFD0 - ldr r0, _0800AFC8 - ldr r1, _0800AFCC - adds r0, r0, r1 - ldrb r0, [r0] - b _0800AFD4 - .align 2, 0 -_0800AFC4: .4byte gUnknown_300319C -_0800AFC8: .4byte gUnknown_3003210 -_0800AFCC: .4byte 0x00000FBD -_0800AFD0: - bl sub_08011FC0 -_0800AFD4: - pop {r1} - bx r1 - thumb_func_end GetLinkRecvQueueLength - - thumb_func_start sub_0800AFD8 -sub_0800AFD8: @ 0x0800AFD8 - push {lr} - bl GetLinkRecvQueueLength - cmp r0, #2 - bhi _0800AFE6 - movs r0, #0 - b _0800AFE8 -_0800AFE6: - movs r0, #1 -_0800AFE8: - pop {r1} - bx r1 - thumb_func_end sub_0800AFD8 - - thumb_func_start sub_0800AFEC -sub_0800AFEC: @ 0x0800AFEC - ldr r0, _0800AFF4 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0800AFF4: .4byte gUnknown_300319C - thumb_func_end sub_0800AFEC - - thumb_func_start DisableSerial -DisableSerial: @ 0x0800AFF8 - push {lr} - sub sp, #4 - movs r0, #0xc0 - bl DisableInterrupts - ldr r1, _0800B038 - movs r2, #0x80 - lsls r2, r2, #6 - adds r0, r2, #0 - strh r0, [r1] - ldr r0, _0800B03C - movs r2, #0 - strh r2, [r0] - adds r1, #0xda - movs r0, #0xc0 - strh r0, [r1] - ldr r0, _0800B040 - strh r2, [r0] - ldr r2, _0800B044 - movs r0, #0 - movs r1, #0 - str r0, [r2] - str r1, [r2, #4] - str r0, [sp] - ldr r1, _0800B048 - ldr r2, _0800B04C - mov r0, sp - bl CpuSet - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_0800B038: .4byte 0x04000128 -_0800B03C: .4byte 0x0400010E -_0800B040: .4byte 0x0400012A -_0800B044: .4byte 0x04000120 -_0800B048: .4byte gUnknown_3003210 -_0800B04C: .4byte 0x050003F0 - thumb_func_end DisableSerial - - thumb_func_start EnableSerial -EnableSerial: @ 0x0800B050 - push {r4, r5, lr} - sub sp, #4 - movs r0, #0xc0 - bl DisableInterrupts - ldr r0, _0800B0B0 - movs r4, #0 - strh r4, [r0] - ldr r2, _0800B0B4 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r1, #0 - strh r0, [r2] - ldrh r0, [r2] - ldr r3, _0800B0B8 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2] - movs r0, #0x80 - bl EnableInterrupts - ldr r0, _0800B0BC - strh r4, [r0] - movs r5, #0 - str r5, [sp] - ldr r1, _0800B0C0 - ldr r2, _0800B0C4 - mov r0, sp - bl CpuSet - ldr r0, _0800B0C8 - strb r4, [r0] - ldr r0, _0800B0CC - strh r5, [r0] - ldr r0, _0800B0D0 - strh r5, [r0] - ldr r0, _0800B0D4 - strb r4, [r0] - ldr r0, _0800B0D8 - strb r4, [r0] - ldr r0, _0800B0DC - strb r4, [r0] - ldr r0, _0800B0E0 - strb r4, [r0] - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0800B0B0: .4byte 0x04000134 -_0800B0B4: .4byte 0x04000128 -_0800B0B8: .4byte 0x00004003 -_0800B0BC: .4byte 0x0400012A -_0800B0C0: .4byte gUnknown_3003210 -_0800B0C4: .4byte 0x050003F0 -_0800B0C8: .4byte gUnknown_3000D6C -_0800B0CC: .4byte gUnknown_3000D6E -_0800B0D0: .4byte gUnknown_3000D70 -_0800B0D4: .4byte gUnknown_3000D72 -_0800B0D8: .4byte gUnknown_3000D73 -_0800B0DC: .4byte gUnknown_3003200 -_0800B0E0: .4byte gUnknown_30041D0 - thumb_func_end EnableSerial - - thumb_func_start ResetSerial -ResetSerial: @ 0x0800B0E4 - push {lr} - bl EnableSerial - bl DisableSerial - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ResetSerial - - thumb_func_start LinkMain1 -LinkMain1: @ 0x0800B0F4 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - ldr r0, _0800B110 - ldrb r0, [r0, #1] - cmp r0, #4 - bhi _0800B1A6 - lsls r0, r0, #2 - ldr r1, _0800B114 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0800B110: .4byte gUnknown_3003210 -_0800B114: .4byte _0800B118 -_0800B118: @ jump table - .4byte _0800B12C @ case 0 - .4byte _0800B13C @ case 1 - .4byte _0800B154 @ case 2 - .4byte _0800B190 @ case 3 - .4byte _0800B19A @ case 4 -_0800B12C: - bl DisableSerial - ldr r1, _0800B138 - movs r0, #1 - strb r0, [r1, #1] - b _0800B1A6 - .align 2, 0 -_0800B138: .4byte gUnknown_3003210 -_0800B13C: - ldrb r0, [r4] - cmp r0, #1 - bne _0800B1A6 - bl EnableSerial - ldr r1, _0800B150 - movs r0, #2 - strb r0, [r1, #1] - b _0800B1A6 - .align 2, 0 -_0800B150: .4byte gUnknown_3003210 -_0800B154: - ldrb r1, [r4] - cmp r1, #1 - beq _0800B164 - cmp r1, #2 - beq _0800B17C - bl CheckMasterOrSlave - b _0800B1A6 -_0800B164: - ldr r2, _0800B178 - ldrb r0, [r2] - cmp r0, #8 - bne _0800B1A6 - ldrb r0, [r2, #3] - cmp r0, #1 - bls _0800B1A6 - strb r1, [r2, #0xe] - b _0800B1A6 - .align 2, 0 -_0800B178: .4byte gUnknown_3003210 -_0800B17C: - ldr r0, _0800B188 - movs r1, #0 - strb r1, [r0, #1] - ldr r0, _0800B18C - strh r1, [r0] - b _0800B1A6 - .align 2, 0 -_0800B188: .4byte gUnknown_3003210 -_0800B18C: .4byte 0x0400012A -_0800B190: - bl InitTimer - ldr r1, _0800B1E0 - movs r0, #4 - strb r0, [r1, #1] -_0800B19A: - adds r0, r5, #0 - bl EnqueueSendCmd - adds r0, r6, #0 - bl DequeueRecvCmds -_0800B1A6: - movs r0, #0 - strb r0, [r4] - ldr r1, _0800B1E0 - ldrb r2, [r1, #2] - ldrb r0, [r1, #3] - lsls r0, r0, #2 - orrs r2, r0 - ldrb r0, [r1] - cmp r0, #8 - bne _0800B1BE - movs r0, #0x20 - orrs r2, r0 -_0800B1BE: - ldrb r0, [r1, #0xc] - lsls r3, r0, #8 - ldrb r0, [r1, #0xf] - lsls r4, r0, #9 - ldrb r0, [r1, #0x10] - lsls r5, r0, #0xc - ldrb r0, [r1, #0x11] - lsls r6, r0, #0xd - ldrb r0, [r1, #0x12] - lsls r7, r0, #0xe - ldrb r0, [r1, #1] - cmp r0, #4 - bne _0800B1E4 - movs r0, #0x40 - orrs r0, r3 - orrs r0, r2 - b _0800B1E8 - .align 2, 0 -_0800B1E0: .4byte gUnknown_3003210 -_0800B1E4: - adds r0, r2, #0 - orrs r0, r3 -_0800B1E8: - orrs r0, r4 - orrs r0, r5 - orrs r0, r6 - orrs r0, r7 - adds r2, r0, #0 - ldrb r3, [r1, #0x13] - cmp r3, #1 - bne _0800B1FE - movs r0, #0x80 - lsls r0, r0, #9 - orrs r2, r0 -_0800B1FE: - ldrb r0, [r1, #2] - cmp r0, #3 - bls _0800B20A - movs r0, #0x80 - lsls r0, r0, #0xa - orrs r2, r0 -_0800B20A: - adds r1, r2, #0 - cmp r3, #2 - bne _0800B216 - movs r0, #0x80 - lsls r0, r0, #0xb - orrs r1, r0 -_0800B216: - adds r0, r1, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end LinkMain1 - - thumb_func_start CheckMasterOrSlave -CheckMasterOrSlave: @ 0x0800B220 - push {lr} - ldr r0, _0800B23C - ldr r1, [r0] - movs r0, #0xc - ands r1, r0 - ldr r2, _0800B240 - cmp r1, #8 - bne _0800B244 - ldrb r0, [r2, #2] - cmp r0, #0 - bne _0800B244 - strb r1, [r2] - b _0800B248 - .align 2, 0 -_0800B23C: .4byte 0x04000128 -_0800B240: .4byte gUnknown_3003210 -_0800B244: - movs r0, #0 - strb r0, [r2] -_0800B248: - pop {r0} - bx r0 - thumb_func_end CheckMasterOrSlave - - thumb_func_start InitTimer -InitTimer: @ 0x0800B24C - push {lr} - ldr r0, _0800B270 - ldrb r0, [r0] - cmp r0, #0 - beq _0800B26A - ldr r1, _0800B274 - ldr r2, _0800B278 - adds r0, r2, #0 - strh r0, [r1] - adds r1, #2 - movs r0, #0x41 - strh r0, [r1] - movs r0, #0x40 - bl EnableInterrupts -_0800B26A: - pop {r0} - bx r0 - .align 2, 0 -_0800B270: .4byte gUnknown_3003210 -_0800B274: .4byte 0x0400010C -_0800B278: .4byte 0x0000FF3B - thumb_func_end InitTimer - - thumb_func_start EnqueueSendCmd -EnqueueSendCmd: @ 0x0800B27C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r3, r0, #0 - ldr r2, _0800B2F4 - ldr r1, _0800B2F8 - ldrh r0, [r1] - strh r0, [r2] - movs r0, #0 - strh r0, [r1] - ldr r1, _0800B2FC - ldr r4, _0800B300 - adds r0, r1, r4 - ldrb r4, [r0] - adds r6, r1, #0 - cmp r4, #0x31 - bhi _0800B30C - movs r1, #0xce - lsls r1, r1, #2 - adds r0, r6, r1 - ldrb r0, [r0] - adds r0, r4, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x31 - bls _0800B2BA - subs r0, #0x32 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_0800B2BA: - movs r2, #0 - ldr r4, _0800B304 - mov sb, r4 - ldr r1, _0800B308 - mov sl, r1 - lsls r5, r0, #1 - movs r0, #0x18 - adds r0, r0, r6 - mov r8, r0 - mov ip, r2 - movs r7, #0x64 -_0800B2D0: - ldrh r0, [r4] - ldrh r1, [r3] - orrs r0, r1 - strh r0, [r4] - adds r0, r2, #0 - muls r0, r7, r0 - adds r0, r5, r0 - add r0, r8 - strh r1, [r0] - mov r1, ip - strh r1, [r3] - adds r3, #2 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #7 - bls _0800B2D0 - b _0800B318 - .align 2, 0 -_0800B2F4: .4byte gUnknown_30041D4 -_0800B2F8: .4byte 0x04000208 -_0800B2FC: .4byte gUnknown_3003210 -_0800B300: .4byte 0x00000339 -_0800B304: .4byte gUnknown_3000D6E -_0800B308: .4byte gUnknown_3003200 -_0800B30C: - movs r0, #1 - strb r0, [r6, #0x12] - ldr r2, _0800B350 - mov sb, r2 - ldr r4, _0800B354 - mov sl, r4 -_0800B318: - mov r1, sb - ldrh r0, [r1] - cmp r0, #0 - beq _0800B330 - ldr r2, _0800B358 - adds r0, r6, r2 - ldrb r1, [r0] - adds r1, #1 - movs r2, #0 - strb r1, [r0] - mov r4, sb - strh r2, [r4] -_0800B330: - ldr r1, _0800B35C - ldr r2, _0800B360 - ldrh r0, [r2] - strh r0, [r1] - ldr r4, _0800B358 - adds r0, r6, r4 - ldrb r0, [r0] - mov r1, sl - strb r0, [r1] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800B350: .4byte gUnknown_3000D6E -_0800B354: .4byte gUnknown_3003200 -_0800B358: .4byte 0x00000339 -_0800B35C: .4byte 0x04000208 -_0800B360: .4byte gUnknown_30041D4 - thumb_func_end EnqueueSendCmd - - thumb_func_start DequeueRecvCmds -DequeueRecvCmds: @ 0x0800B364 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sb, r0 - ldr r2, _0800B3C0 - ldr r1, _0800B3C4 - ldrh r0, [r1] - strh r0, [r2] - movs r0, #0 - strh r0, [r1] - ldr r1, _0800B3C8 - ldr r3, _0800B3CC - adds r0, r1, r3 - ldrb r0, [r0] - mov ip, r1 - cmp r0, #0 - bne _0800B3D0 - movs r3, #0 - ldrb r0, [r1, #3] - cmp r3, r0 - bhs _0800B3B6 - movs r5, #0 - adds r6, r0, #0 -_0800B396: - movs r2, #0 - lsls r1, r3, #4 - adds r4, r3, #1 - add r1, sb -_0800B39E: - lsls r0, r2, #1 - adds r0, r0, r1 - strh r5, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #7 - bls _0800B39E - lsls r0, r4, #0x18 - lsrs r3, r0, #0x18 - cmp r3, r6 - blo _0800B396 -_0800B3B6: - movs r0, #1 - mov r7, ip - strb r0, [r7, #0xc] - b _0800B44C - .align 2, 0 -_0800B3C0: .4byte gUnknown_30041D4 -_0800B3C4: .4byte 0x04000208 -_0800B3C8: .4byte gUnknown_3003210 -_0800B3CC: .4byte 0x00000FBD -_0800B3D0: - movs r3, #0 - mov r0, ip - ldrb r1, [r0, #3] - cmp r3, r1 - bhs _0800B426 - ldr r0, _0800B464 - add r0, ip - ldrb r0, [r0] - lsls r6, r0, #1 - movs r2, #0xcf - lsls r2, r2, #2 - add r2, ip - mov r8, r2 - mov sl, r1 -_0800B3EC: - movs r2, #0 - lsls r1, r3, #4 - adds r4, r3, #1 - lsls r0, r3, #1 - mov r7, sb - adds r5, r1, r7 - adds r0, r0, r3 - lsls r0, r0, #3 - adds r0, r0, r3 - lsls r3, r0, #5 -_0800B400: - lsls r1, r2, #1 - adds r1, r1, r5 - movs r7, #0x64 - adds r0, r2, #0 - muls r0, r7, r0 - adds r0, r6, r0 - adds r0, r0, r3 - add r0, r8 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #7 - bls _0800B400 - lsls r0, r4, #0x18 - lsrs r3, r0, #0x18 - cmp r3, sl - blo _0800B3EC -_0800B426: - mov r2, ip - ldr r0, _0800B468 - adds r1, r2, r0 - ldrb r0, [r1] - subs r0, #1 - movs r3, #0 - strb r0, [r1] - ldr r1, _0800B464 - adds r2, r2, r1 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x31 - bls _0800B448 - strb r3, [r2] -_0800B448: - mov r2, ip - strb r3, [r2, #0xc] -_0800B44C: - ldr r1, _0800B46C - ldr r3, _0800B470 - ldrh r0, [r3] - strh r0, [r1] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800B464: .4byte 0x00000FBC -_0800B468: .4byte 0x00000FBD -_0800B46C: .4byte 0x04000208 -_0800B470: .4byte gUnknown_30041D4 - thumb_func_end DequeueRecvCmds - - thumb_func_start LinkVSync -LinkVSync: @ 0x0800B474 - push {r4, lr} - ldr r3, _0800B49C - ldrb r4, [r3] - cmp r4, #0 - beq _0800B4B0 - ldrb r0, [r3, #1] - cmp r0, #2 - beq _0800B4AA - cmp r0, #4 - bne _0800B4DA - movs r0, #0xd - ldrsb r0, [r3, r0] - cmp r0, #8 - bgt _0800B4A0 - ldrb r0, [r3, #0x10] - cmp r0, #1 - beq _0800B4AA - movs r0, #1 - strb r0, [r3, #0x13] - b _0800B4DA - .align 2, 0 -_0800B49C: .4byte gUnknown_3003210 -_0800B4A0: - ldrb r0, [r3, #0x13] - cmp r0, #1 - beq _0800B4DA - movs r0, #0 - strb r0, [r3, #0xd] -_0800B4AA: - bl sub_0800B57C - b _0800B4DA -_0800B4B0: - ldrb r2, [r3, #1] - cmp r2, #4 - beq _0800B4BA - cmp r2, #2 - bne _0800B4DA -_0800B4BA: - ldr r1, _0800B4E0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xa - bls _0800B4DA - cmp r2, #4 - bne _0800B4D2 - movs r0, #2 - strb r0, [r3, #0x13] -_0800B4D2: - cmp r2, #2 - bne _0800B4DA - strb r4, [r3, #3] - strb r4, [r3, #0xf] -_0800B4DA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800B4E0: .4byte gUnknown_3000D6C - thumb_func_end LinkVSync - - thumb_func_start Timer3Intr -Timer3Intr: @ 0x0800B4E4 - push {lr} - bl StopTimer - bl sub_0800B57C - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Timer3Intr - - thumb_func_start SerialCB -SerialCB: @ 0x0800B4F4 - push {r4, lr} - ldr r4, _0800B520 - ldr r0, _0800B524 - ldr r1, [r0] - lsls r0, r1, #0x1a - lsrs r0, r0, #0x1e - strb r0, [r4, #2] - ldrb r0, [r4, #1] - cmp r0, #2 - beq _0800B528 - cmp r0, #4 - bne _0800B546 - lsls r0, r1, #0x19 - lsrs r0, r0, #0x1f - strb r0, [r4, #0x10] - bl DoRecv - bl DoSend - bl SendRecvDone - b _0800B546 - .align 2, 0 -_0800B520: .4byte gUnknown_3003210 -_0800B524: .4byte 0x04000128 -_0800B528: - bl DoHandshake - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0800B546 - ldrb r0, [r4] - cmp r0, #0 - beq _0800B542 - movs r0, #3 - strb r0, [r4, #1] - movs r0, #8 - strb r0, [r4, #0xd] - b _0800B546 -_0800B542: - movs r0, #4 - strb r0, [r4, #1] -_0800B546: - ldr r3, _0800B56C - ldrb r0, [r3, #0xd] - adds r0, #1 - movs r2, #0 - strb r0, [r3, #0xd] - ldr r1, _0800B570 - strb r2, [r1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #8 - bne _0800B566 - ldr r0, _0800B574 - ldr r2, _0800B578 - adds r1, r3, r2 - ldrb r1, [r1] - strb r1, [r0] -_0800B566: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800B56C: .4byte gUnknown_3003210 -_0800B570: .4byte gUnknown_3000D6C -_0800B574: .4byte gUnknown_30041D0 -_0800B578: .4byte 0x00000FBD - thumb_func_end SerialCB - - thumb_func_start sub_0800B57C -sub_0800B57C: @ 0x0800B57C - ldr r0, _0800B588 - ldrh r1, [r0] - movs r2, #0x80 - orrs r1, r2 - strh r1, [r0] - bx lr - .align 2, 0 -_0800B588: .4byte 0x04000128 - thumb_func_end sub_0800B57C - - thumb_func_start DoHandshake -DoHandshake: @ 0x0800B58C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - movs r5, #0 - ldr r6, _0800B5A8 - ldr r0, _0800B5AC - ldrb r1, [r0, #0xe] - adds r7, r0, #0 - cmp r1, #1 - bne _0800B5B8 - ldr r1, _0800B5B0 - ldr r2, _0800B5B4 - b _0800B5BC - .align 2, 0 -_0800B5A8: .4byte 0x0000FFFF -_0800B5AC: .4byte gUnknown_3003210 -_0800B5B0: .4byte 0x0400012A -_0800B5B4: .4byte 0x00008FFF -_0800B5B8: - ldr r1, _0800B610 - ldr r2, _0800B614 -_0800B5BC: - adds r0, r2, #0 - strh r0, [r1] - ldr r2, _0800B618 - ldr r3, _0800B61C - ldr r0, [r3] - ldr r1, [r3, #4] - str r0, [r2] - str r1, [r2, #4] - movs r0, #0 - movs r1, #0 - str r0, [r3] - str r1, [r3, #4] - strb r0, [r2, #0xa] - movs r4, #0 - ldr r0, _0800B620 - mov sb, r0 - mov r8, r2 - ldr r2, _0800B624 - ldr r1, _0800B628 - mov ip, r1 -_0800B5E4: - lsls r0, r4, #1 - add r0, r8 - ldrh r3, [r0] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r3 - ldr r1, _0800B614 - cmp r0, r1 - beq _0800B5FC - adds r0, r3, #0 - cmp r0, r2 - bne _0800B62C -_0800B5FC: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r3, #0 - cmp r6, r0 - bls _0800B634 - cmp r0, #0 - beq _0800B634 - adds r6, r3, #0 - b _0800B634 - .align 2, 0 -_0800B610: .4byte 0x0400012A -_0800B614: .4byte 0x0000B9A0 -_0800B618: .4byte gUnknown_3003214 -_0800B61C: .4byte 0x04000120 -_0800B620: .4byte gUnknown_3000D73 -_0800B624: .4byte 0x00008FFF -_0800B628: .4byte 0x0000FFFF -_0800B62C: - cmp r0, ip - beq _0800B63E - movs r5, #0 - b _0800B63E -_0800B634: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _0800B5E4 -_0800B63E: - strb r5, [r7, #3] - adds r0, r5, #0 - cmp r0, #1 - bls _0800B66E - mov r2, sb - ldrb r2, [r2] - cmp r0, r2 - bne _0800B660 - ldrh r1, [r7, #4] - ldr r0, _0800B65C - cmp r1, r0 - bne _0800B660 - movs r0, #1 - b _0800B67A - .align 2, 0 -_0800B65C: .4byte 0x00008FFF -_0800B660: - ldrb r0, [r7, #3] - cmp r0, #1 - bls _0800B66E - movs r0, #3 - ands r6, r0 - adds r0, r6, #1 - b _0800B670 -_0800B66E: - movs r0, #0 -_0800B670: - strb r0, [r7, #0xf] - ldrb r0, [r7, #3] - mov r1, sb - strb r0, [r1] - movs r0, #0 -_0800B67A: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end DoHandshake - - thumb_func_start DoRecv -DoRecv: @ 0x0800B688 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - ldr r0, _0800B6E0 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, #4] - ldr r0, _0800B6E4 - ldrb r1, [r0, #0x16] - adds r6, r0, #0 - cmp r1, #0 - bne _0800B6EC - movs r4, #0 - ldr r7, _0800B6E8 - ldrb r0, [r6, #3] - cmp r4, r0 - bhs _0800B6D6 - adds r5, r6, #0 - ldrh r1, [r6, #0x14] - adds r3, r7, #0 - adds r2, r6, #0 -_0800B6B6: - lsls r0, r4, #1 - add r0, sp - ldrh r0, [r0] - cmp r1, r0 - beq _0800B6CA - ldrb r0, [r3] - cmp r0, #0 - beq _0800B6CA - movs r0, #1 - strb r0, [r5, #0x11] -_0800B6CA: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldrb r0, [r2, #3] - cmp r4, r0 - blo _0800B6B6 -_0800B6D6: - movs r0, #0 - strh r0, [r6, #0x14] - movs r0, #1 - strb r0, [r7] - b _0800B78C - .align 2, 0 -_0800B6E0: .4byte 0x04000120 -_0800B6E4: .4byte gUnknown_3003210 -_0800B6E8: .4byte gUnknown_3000D72 -_0800B6EC: - ldr r2, _0800B75C - adds r1, r6, r2 - adds r2, #1 - adds r0, r6, r2 - ldrb r2, [r0] - ldrb r1, [r1] - adds r0, r2, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x31 - bls _0800B708 - subs r0, #0x32 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_0800B708: - cmp r2, #0x31 - bhi _0800B764 - movs r4, #0 - ldrb r1, [r6, #3] - cmp r4, r1 - bhs _0800B768 - adds r5, r6, #0 - ldr r7, _0800B760 - lsls r0, r0, #1 - mov ip, r0 - movs r2, #0xcf - lsls r2, r2, #2 - adds r2, r2, r6 - mov r8, r2 -_0800B724: - lsls r1, r4, #1 - mov r2, sp - adds r0, r2, r1 - ldrh r3, [r0] - ldrh r2, [r5, #0x14] - adds r0, r3, r2 - strh r0, [r5, #0x14] - ldrh r0, [r7] - orrs r0, r3 - strh r0, [r7] - ldrb r2, [r5, #0x17] - movs r0, #0x64 - muls r0, r2, r0 - add r0, ip - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r4 - lsls r1, r1, #5 - adds r0, r0, r1 - add r0, r8 - strh r3, [r0] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldrb r0, [r5, #3] - cmp r4, r0 - blo _0800B724 - b _0800B768 - .align 2, 0 -_0800B75C: .4byte 0x00000FBC -_0800B760: .4byte gUnknown_3000D70 -_0800B764: - movs r0, #2 - strb r0, [r6, #0x12] -_0800B768: - ldrb r0, [r6, #0x17] - adds r0, #1 - strb r0, [r6, #0x17] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #8 - bne _0800B78C - ldr r2, _0800B798 - ldrh r0, [r2] - cmp r0, #0 - beq _0800B78C - ldr r1, _0800B79C - adds r0, r6, r1 - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - movs r0, #0 - strh r0, [r2] -_0800B78C: - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800B798: .4byte gUnknown_3000D70 -_0800B79C: .4byte 0x00000FBD - thumb_func_end DoRecv - - thumb_func_start DoSend -DoSend: @ 0x0800B7A0 - push {r4, lr} - ldr r0, _0800B7DC - ldrb r1, [r0, #0x16] - adds r4, r0, #0 - cmp r1, #8 - bne _0800B7F2 - ldr r1, _0800B7E0 - ldrh r0, [r4, #0x14] - strh r0, [r1] - ldr r1, _0800B7E4 - ldrb r2, [r1] - cmp r2, #0 - bne _0800B7EC - ldr r0, _0800B7E8 - adds r1, r4, r0 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - movs r0, #0xce - lsls r0, r0, #2 - adds r1, r4, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x31 - bls _0800B848 - strb r2, [r1] - b _0800B848 - .align 2, 0 -_0800B7DC: .4byte gUnknown_3003210 -_0800B7E0: .4byte 0x0400012A -_0800B7E4: .4byte gUnknown_3000D6D -_0800B7E8: .4byte 0x00000339 -_0800B7EC: - movs r0, #0 - strb r0, [r1] - b _0800B848 -_0800B7F2: - ldr r1, _0800B818 - ldrb r0, [r1] - cmp r0, #0 - bne _0800B80E - ldr r2, _0800B81C - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _0800B808 - movs r0, #1 - strb r0, [r1] -_0800B808: - ldrb r0, [r1] - cmp r0, #0 - beq _0800B824 -_0800B80E: - ldr r1, _0800B820 - movs r0, #0 - strh r0, [r1] - b _0800B842 - .align 2, 0 -_0800B818: .4byte gUnknown_3000D6D -_0800B81C: .4byte 0x00000339 -_0800B820: .4byte 0x0400012A -_0800B824: - ldr r3, _0800B850 - movs r1, #0xce - lsls r1, r1, #2 - adds r0, r4, r1 - ldrb r0, [r0] - lsls r0, r0, #1 - ldrb r2, [r4, #0x16] - movs r1, #0x64 - muls r1, r2, r1 - adds r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x18 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r3] -_0800B842: - ldrb r0, [r4, #0x16] - adds r0, #1 - strb r0, [r4, #0x16] -_0800B848: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800B850: .4byte 0x0400012A - thumb_func_end DoSend - - thumb_func_start StopTimer -StopTimer: @ 0x0800B854 - push {lr} - ldr r0, _0800B874 - ldrb r0, [r0] - cmp r0, #0 - beq _0800B870 - ldr r2, _0800B878 - ldrh r1, [r2] - ldr r0, _0800B87C - ands r0, r1 - strh r0, [r2] - ldr r1, _0800B880 - ldr r2, _0800B884 - adds r0, r2, #0 - strh r0, [r1] -_0800B870: - pop {r0} - bx r0 - .align 2, 0 -_0800B874: .4byte gUnknown_3003210 -_0800B878: .4byte 0x0400010E -_0800B87C: .4byte 0x0000FF7F -_0800B880: .4byte 0x0400010C -_0800B884: .4byte 0x0000FF3B - thumb_func_end StopTimer - - thumb_func_start SendRecvDone -SendRecvDone: @ 0x0800B888 - push {lr} - ldr r1, _0800B89C - ldrb r0, [r1, #0x17] - cmp r0, #8 - bne _0800B8A0 - movs r0, #0 - strb r0, [r1, #0x16] - strb r0, [r1, #0x17] - b _0800B8B0 - .align 2, 0 -_0800B89C: .4byte gUnknown_3003210 -_0800B8A0: - ldrb r0, [r1] - cmp r0, #0 - beq _0800B8B0 - ldr r0, _0800B8B4 - ldrh r1, [r0] - movs r2, #0x80 - orrs r1, r2 - strh r1, [r0] -_0800B8B0: - pop {r0} - bx r0 - .align 2, 0 -_0800B8B4: .4byte 0x0400010E - thumb_func_end SendRecvDone - - thumb_func_start ResetSendBuffer -ResetSendBuffer: @ 0x0800B8B8 - push {r4, r5, r6, lr} - ldr r1, _0800B900 - ldr r2, _0800B904 - adds r0, r1, r2 - movs r2, #0 - strb r2, [r0] - movs r3, #0xce - lsls r3, r3, #2 - adds r0, r1, r3 - strb r2, [r0] - movs r0, #0 - movs r6, #0x64 - adds r5, r1, #0 - adds r5, #0x18 - ldr r4, _0800B908 -_0800B8D6: - movs r2, #0 - adds r1, r0, #1 - adds r3, r0, #0 - muls r3, r6, r3 -_0800B8DE: - lsls r0, r2, #1 - adds r0, r0, r3 - adds r0, r0, r5 - strh r4, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x31 - bls _0800B8DE - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #7 - bls _0800B8D6 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0800B900: .4byte gUnknown_3003210 -_0800B904: .4byte 0x00000339 -_0800B908: .4byte 0x0000EFFF - thumb_func_end ResetSendBuffer - - thumb_func_start ResetRecvBuffer -ResetRecvBuffer: @ 0x0800B90C - push {r4, r5, r6, r7, lr} - ldr r1, _0800B96C - ldr r2, _0800B970 - adds r0, r1, r2 - movs r2, #0 - strb r2, [r0] - ldr r3, _0800B974 - adds r0, r1, r3 - strb r2, [r0] - movs r0, #0x64 - mov ip, r0 - movs r3, #0xcf - lsls r3, r3, #2 - adds r7, r1, r3 - ldr r6, _0800B978 -_0800B92A: - movs r3, #0 - lsls r0, r2, #1 - adds r5, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r0, r0, r2 - lsls r4, r0, #5 -_0800B938: - movs r2, #0 - adds r1, r3, #1 - mov r0, ip - muls r0, r3, r0 - adds r3, r0, #0 -_0800B942: - lsls r0, r2, #1 - adds r0, r0, r3 - adds r0, r0, r4 - adds r0, r0, r7 - strh r6, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x31 - bls _0800B942 - lsls r0, r1, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #7 - bls _0800B938 - lsls r0, r5, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #3 - bls _0800B92A - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800B96C: .4byte gUnknown_3003210 -_0800B970: .4byte 0x00000FBD -_0800B974: .4byte 0x00000FBC -_0800B978: .4byte 0x0000EFFF - thumb_func_end ResetRecvBuffer - - thumb_func_start sub_0800B97C -sub_0800B97C: @ 0x0800B97C - push {r4, lr} - bl rfu_REQBN_softReset_and_checkID - adds r4, r0, #0 - ldr r0, _0800B9C0 - cmp r4, r0 - bne _0800B990 - ldr r1, _0800B9C4 - movs r0, #1 - strb r0, [r1, #8] -_0800B990: - ldr r0, _0800B9C4 - ldrb r2, [r0, #4] - adds r1, r0, #0 - cmp r2, #0x17 - beq _0800B9A4 - cmp r2, #1 - beq _0800B9A4 - movs r0, #0 - strb r0, [r1, #5] - strb r0, [r1, #4] -_0800B9A4: - movs r0, #0 - strb r0, [r1, #7] - strb r0, [r1, #0xd] - strb r0, [r1, #1] - strb r0, [r1] - movs r0, #0xff - strb r0, [r1, #6] - bl sub_0800D0CC - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0800B9C0: .4byte 0x00008001 -_0800B9C4: .4byte gUnknown_30041E0 - thumb_func_end sub_0800B97C - - thumb_func_start rfu_REQ_sendData_wrapper -rfu_REQ_sendData_wrapper: @ 0x0800B9C8 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _0800B9E8 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, #0 - bne _0800B9F0 - ldr r0, _0800B9EC - ldrb r0, [r0, #2] - movs r2, #0 - cmp r0, #1 - bne _0800B9F8 - movs r2, #1 - b _0800B9F8 - .align 2, 0 -_0800B9E8: .4byte gUnknown_3007630 -_0800B9EC: .4byte gUnknown_30041E0 -_0800B9F0: - ldr r0, _0800BA04 - ldrb r1, [r0, #3] - movs r1, #0 - strb r1, [r0, #3] -_0800B9F8: - adds r0, r2, #0 - bl rfu_REQ_sendData - pop {r0} - bx r0 - .align 2, 0 -_0800BA04: .4byte gUnknown_30041E0 - thumb_func_end rfu_REQ_sendData_wrapper - - thumb_func_start sub_0800BA08 -sub_0800BA08: @ 0x0800BA08 - push {r4, r5, r6, lr} - sub sp, #4 - adds r5, r0, #0 - adds r6, r1, #0 - cmp r5, #0 - beq _0800BA50 - mov r1, sp - movs r0, #0 - strh r0, [r1] - ldr r4, _0800BA40 - ldr r2, _0800BA44 - mov r0, sp - adds r1, r4, #0 - bl CpuSet - movs r0, #0xff - strb r0, [r4, #6] - str r5, [r4, #0x40] - str r6, [r4, #0x44] - ldr r0, _0800BA48 - bl rfu_setMSCCallback - ldr r0, _0800BA4C - bl rfu_setREQCallback - movs r0, #0 - b _0800BA52 - .align 2, 0 -_0800BA40: .4byte gUnknown_30041E0 -_0800BA44: .4byte 0x01000024 -_0800BA48: .4byte sub_0800C96C -_0800BA4C: .4byte sub_0800C270 -_0800BA50: - movs r0, #4 -_0800BA52: - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0800BA08 - - thumb_func_start sub_0800BA5C -sub_0800BA5C: @ 0x0800BA5C - push {r4, lr} - sub sp, #4 - mov r1, sp - movs r0, #0 - strh r0, [r1] - ldr r4, _0800BA80 - ldr r2, _0800BA84 - mov r0, sp - adds r1, r4, #0 - bl CpuSet - movs r0, #0xff - strb r0, [r4, #6] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800BA80: .4byte gUnknown_30041E0 -_0800BA84: .4byte 0x01000020 - thumb_func_end sub_0800BA5C - - thumb_func_start sub_0800BA88 -sub_0800BA88: @ 0x0800BA88 - push {r4, lr} - adds r4, r0, #0 - bl sub_0800BABC - ldr r1, _0800BAB8 - movs r2, #1 - strb r2, [r1, #4] - movs r0, #2 - strb r0, [r1, #5] - str r4, [r1, #0x3c] - ldrb r0, [r4, #0x11] - strb r0, [r1, #9] - ldrh r0, [r4, #0x12] - strh r0, [r1, #0x32] - ldrh r0, [r4, #0x14] - strh r0, [r1, #0x18] - ldrb r0, [r4, #0x10] - cmp r0, #0 - beq _0800BAB0 - strb r2, [r1, #0xb] -_0800BAB0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800BAB8: .4byte gUnknown_30041E0 - thumb_func_end sub_0800BA88 - - thumb_func_start sub_0800BABC -sub_0800BABC: @ 0x0800BABC - push {r4, r5, lr} - ldr r2, _0800BB00 - movs r0, #0 - strb r0, [r2, #5] - strb r0, [r2, #4] - movs r1, #0xff - strb r1, [r2, #6] - strb r0, [r2, #7] - strb r0, [r2, #0x10] - strb r0, [r2, #0xc] - adds r1, r2, #0 - adds r1, #0x24 - strb r0, [r1] - adds r1, #0xc - strb r0, [r1] - movs r3, #0 - adds r5, r2, #0 - adds r5, #0x28 - movs r4, #0 - adds r2, #0x34 -_0800BAE4: - lsls r1, r3, #1 - adds r0, r1, r5 - strh r4, [r0] - adds r1, r1, r2 - strh r4, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #3 - bls _0800BAE4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0800BB00: .4byte gUnknown_30041E0 - thumb_func_end sub_0800BABC - - thumb_func_start sub_0800BB04 -sub_0800BB04: @ 0x0800BB04 - ldr r1, _0800BB0C - movs r0, #0x15 - strb r0, [r1, #4] - bx lr - .align 2, 0 -_0800BB0C: .4byte gUnknown_30041E0 - thumb_func_end sub_0800BB04 - - thumb_func_start sub_0800BB10 -sub_0800BB10: @ 0x0800BB10 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r3, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - mov r8, r2 - ldr r1, _0800BB48 - ldrb r0, [r1, #4] - cmp r0, #0 - beq _0800BB4C - cmp r0, #8 - bne _0800BB36 - cmp r5, #1 - beq _0800BB4C -_0800BB36: - movs r0, #1 - strh r0, [r1, #0x14] - movs r0, #0xf3 - movs r1, #1 - bl sub_0800CDC8 - movs r0, #1 - b _0800BBDE - .align 2, 0 -_0800BB48: .4byte gUnknown_30041E0 -_0800BB4C: - bl rfu_getMasterSlave - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0800BB6C - ldr r1, _0800BB68 - movs r0, #2 - strh r0, [r1, #0x14] - movs r0, #0xf3 - movs r1, #1 - bl sub_0800CDC8 - movs r0, #2 - b _0800BBDE - .align 2, 0 -_0800BB68: .4byte gUnknown_30041E0 -_0800BB6C: - movs r2, #0 - ldrh r0, [r6] - ldr r4, _0800BBA0 - adds r1, r6, #2 - ldr r3, _0800BBA4 - cmp r0, r4 - beq _0800BB8C -_0800BB7A: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xf - bhi _0800BB8C - ldrh r0, [r1] - adds r1, #2 - cmp r0, r4 - bne _0800BB7A -_0800BB8C: - cmp r2, #0x10 - bne _0800BBA8 - movs r0, #4 - strh r0, [r3, #0x14] - movs r0, #0xf3 - movs r1, #1 - bl sub_0800CDC8 - movs r0, #4 - b _0800BBDE - .align 2, 0 -_0800BBA0: .4byte 0x0000FFFF -_0800BBA4: .4byte gUnknown_30041E0 -_0800BBA8: - cmp r5, #1 - bls _0800BBB6 - movs r0, #1 - strb r0, [r3, #7] - movs r5, #1 - movs r7, #0 - b _0800BBBA -_0800BBB6: - movs r0, #0 - strb r0, [r3, #7] -_0800BBBA: - cmp r5, #0 - beq _0800BBC4 - movs r0, #5 - strb r0, [r3, #4] - b _0800BBD2 -_0800BBC4: - movs r0, #9 - strb r0, [r3, #4] - ldrb r0, [r3, #0xb] - cmp r0, #0 - beq _0800BBD2 - movs r0, #2 - strb r0, [r3, #0xb] -_0800BBD2: - strb r5, [r3, #6] - strh r7, [r3, #0x1a] - mov r0, r8 - strh r0, [r3, #0x26] - str r6, [r3, #0x20] - movs r0, #0 -_0800BBDE: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_0800BB10 - - thumb_func_start sub_0800BBE8 -sub_0800BBE8: @ 0x0800BBE8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r8, r1 - ldr r1, _0800BC1C - ldrb r0, [r1, #4] - cmp r0, #0 - beq _0800BC20 - subs r0, #9 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bls _0800BC20 - movs r0, #1 - strh r0, [r1, #0x14] - movs r0, #0xf3 - movs r1, #1 - bl sub_0800CDC8 - movs r0, #1 - b _0800BCC0 - .align 2, 0 -_0800BC1C: .4byte gUnknown_30041E0 -_0800BC20: - bl rfu_getMasterSlave - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0800BC40 - ldr r1, _0800BC3C - movs r0, #2 - strh r0, [r1, #0x14] - movs r0, #0xf3 - movs r1, #1 - bl sub_0800CDC8 - movs r0, #2 - b _0800BCC0 - .align 2, 0 -_0800BC3C: .4byte gUnknown_30041E0 -_0800BC40: - movs r2, #0 - ldr r0, _0800BC8C - ldr r1, [r0] - ldrb r3, [r1, #8] - ldr r5, _0800BC90 - adds r7, r0, #0 - cmp r2, r3 - bhs _0800BC6E - ldrh r0, [r1, #0x14] - cmp r0, r6 - beq _0800BC6E - adds r4, r1, #0 - adds r1, r3, #0 -_0800BC5A: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, r1 - bhs _0800BC6E - lsls r0, r2, #5 - adds r0, r4, r0 - ldrh r0, [r0, #0x14] - cmp r0, r6 - bne _0800BC5A -_0800BC6E: - ldr r0, [r7] - ldrb r0, [r0, #8] - cmp r0, #0 - beq _0800BC7A - cmp r2, r0 - bne _0800BC94 -_0800BC7A: - movs r0, #3 - strh r0, [r5, #0x14] - movs r0, #0xf3 - movs r1, #1 - bl sub_0800CDC8 - movs r0, #3 - b _0800BCC0 - .align 2, 0 -_0800BC8C: .4byte gUnknown_3007630 -_0800BC90: .4byte gUnknown_30041E0 -_0800BC94: - ldrb r0, [r5, #4] - cmp r0, #0 - beq _0800BC9E - cmp r0, #9 - bne _0800BCA6 -_0800BC9E: - movs r0, #0xc - strb r0, [r5, #4] - movs r0, #0xd - b _0800BCAC -_0800BCA6: - movs r0, #0xb - strb r0, [r5, #4] - movs r0, #0xc -_0800BCAC: - strb r0, [r5, #5] - strh r6, [r5, #0x1e] - mov r0, r8 - strh r0, [r5, #0x1a] - ldrb r0, [r5, #7] - cmp r0, #0 - beq _0800BCBE - movs r0, #7 - strb r0, [r5, #7] -_0800BCBE: - movs r0, #0 -_0800BCC0: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0800BBE8 - - thumb_func_start sub_0800BCCC -sub_0800BCCC: @ 0x0800BCCC - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r6, _0800BD30 - adds r3, r6, #0 - adds r3, #0x30 - ldrb r2, [r3] - adds r0, r1, #0 - ands r0, r2 - cmp r0, #0 - beq _0800BD28 - adds r0, r2, #0 - bics r0, r1 - strb r0, [r3] - movs r4, #0 - ldr r7, _0800BD34 - movs r5, #1 - adds r3, #4 - movs r2, #0 -_0800BCF2: - adds r0, r1, #0 - asrs r0, r4 - ands r0, r5 - cmp r0, #0 - beq _0800BD02 - lsls r0, r4, #1 - adds r0, r0, r3 - strh r2, [r0] -_0800BD02: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _0800BCF2 - ldr r0, [r7] - ldrb r4, [r0, #3] - ands r4, r1 - cmp r4, #0 - beq _0800BD1C - adds r0, r4, #0 - bl sub_0800CDF0 -_0800BD1C: - ldr r0, _0800BD30 - strh r4, [r0, #0x14] - movs r0, #0x33 - adds r1, r4, #0 - bl sub_0800CDC8 -_0800BD28: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800BD30: .4byte gUnknown_30041E0 -_0800BD34: .4byte gUnknown_3007630 - thumb_func_end sub_0800BCCC - - thumb_func_start sub_0800BD38 -sub_0800BD38: @ 0x0800BD38 - push {r4, r5, lr} - lsls r0, r0, #0x18 - movs r2, #0 - ldr r1, _0800BD54 - strb r2, [r1, #7] - adds r5, r1, #0 - cmp r0, #0 - beq _0800BD58 - bl sub_0800BABC - movs r0, #0x17 - strb r0, [r5, #4] - b _0800BE22 - .align 2, 0 -_0800BD54: .4byte gUnknown_30041E0 -_0800BD58: - ldrb r0, [r5, #4] - subs r0, #5 - cmp r0, #0xd - bhi _0800BE0E - lsls r0, r0, #2 - ldr r1, _0800BD6C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0800BD6C: .4byte _0800BD70 -_0800BD70: @ jump table - .4byte _0800BDA8 @ case 0 - .4byte _0800BDB4 @ case 1 - .4byte _0800BDB4 @ case 2 - .4byte _0800BE14 @ case 3 - .4byte _0800BDBE @ case 4 - .4byte _0800BDC8 @ case 5 - .4byte _0800BDC8 @ case 6 - .4byte _0800BDD2 @ case 7 - .4byte _0800BDDC @ case 8 - .4byte _0800BDDC @ case 9 - .4byte _0800BE14 @ case 10 - .4byte _0800BDE2 @ case 11 - .4byte _0800BE08 @ case 12 - .4byte _0800BE08 @ case 13 -_0800BDA8: - movs r1, #0 - movs r0, #8 - strb r0, [r5, #4] - strb r1, [r5, #5] - movs r2, #0x13 - b _0800BE14 -_0800BDB4: - movs r0, #7 - strb r0, [r5, #4] - movs r0, #8 - strb r0, [r5, #5] - b _0800BE14 -_0800BDBE: - movs r0, #0 - strb r0, [r5, #5] - strb r0, [r5, #4] - movs r2, #0x21 - b _0800BE14 -_0800BDC8: - movs r1, #0 - movs r0, #0xb - strb r0, [r5, #4] - strb r1, [r5, #5] - b _0800BE14 -_0800BDD2: - movs r0, #0 - strb r0, [r5, #5] - strb r0, [r5, #4] - movs r2, #0x23 - b _0800BE14 -_0800BDDC: - movs r0, #0xe - strb r0, [r5, #4] - b _0800BE14 -_0800BDE2: - ldrb r0, [r5, #0x11] - strb r0, [r5, #4] - ldrb r0, [r5, #0x12] - strb r0, [r5, #5] - ldr r4, _0800BE04 - ldr r0, [r4] - ldrb r0, [r0, #3] - bl sub_0800CDF0 - ldr r0, [r4] - ldrb r0, [r0, #3] - strh r0, [r5, #0x14] - movs r0, #0x33 - movs r1, #1 - bl sub_0800CDC8 - b _0800BE22 - .align 2, 0 -_0800BE04: .4byte gUnknown_3007630 -_0800BE08: - movs r0, #0x12 - strb r0, [r5, #4] - b _0800BE14 -_0800BE0E: - strb r2, [r5, #5] - strb r2, [r5, #4] - movs r2, #0x43 -_0800BE14: - ldrb r0, [r5, #4] - cmp r0, #0 - bne _0800BE22 - adds r0, r2, #0 - movs r1, #0 - bl sub_0800CDC8 -_0800BE22: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_0800BD38 - - thumb_func_start sub_0800BE28 -sub_0800BE28: @ 0x0800BE28 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0 - mov r8, r1 - mov r5, sp - adds r5, #1 - mov r4, sp - adds r4, #2 - mov r1, sp - adds r2, r5, #0 - adds r3, r4, #0 - bl rfu_REQBN_watchLink - mov r0, sp - ldrb r0, [r0] - adds r7, r4, #0 - cmp r0, #0 - beq _0800BEFA - ldr r1, _0800BEC4 - mov r0, sp - ldrb r0, [r0] - strh r0, [r1, #0x14] - ldrb r0, [r5] - strh r0, [r1, #0x16] - ldrb r0, [r1, #9] - adds r6, r1, #0 - cmp r0, #0 - beq _0800BEE2 - movs r0, #1 - strb r0, [r6, #0xa] - ldrb r0, [r6, #6] - cmp r0, #0 - bne _0800BE7E - ldrb r0, [r5] - cmp r0, #0 - bne _0800BE7E - movs r0, #4 - strb r0, [r6, #0xa] -_0800BE7E: - ldrb r0, [r6, #0xa] - cmp r0, #1 - bne _0800BEC8 - movs r2, #0 - mov r4, sp - movs r5, #1 - mov ip, r6 - mov r3, ip - adds r3, #0x30 - movs r6, #0x34 - add r6, ip - mov sb, r6 -_0800BE96: - ldrb r0, [r4] - asrs r0, r2 - ands r0, r5 - cmp r0, #0 - beq _0800BEB4 - adds r0, r5, #0 - lsls r0, r2 - ldrb r1, [r3] - orrs r0, r1 - strb r0, [r3] - lsls r0, r2, #1 - add r0, sb - mov r6, ip - ldrh r1, [r6, #0x32] - strh r1, [r0] -_0800BEB4: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #3 - bls _0800BE96 - movs r0, #0x31 - b _0800BEDA - .align 2, 0 -_0800BEC4: .4byte gUnknown_30041E0 -_0800BEC8: - movs r0, #0 - strb r0, [r6, #0xa] - mov r0, sp - ldrb r0, [r0] - bl sub_0800CDF0 - movs r0, #1 - mov r8, r0 - movs r0, #0x33 -_0800BEDA: - movs r1, #1 - bl sub_0800CDC8 - b _0800BEF6 -_0800BEE2: - mov r0, sp - ldrb r0, [r0] - bl sub_0800CDF0 - movs r1, #1 - mov r8, r1 - movs r0, #0x30 - movs r1, #2 - bl sub_0800CDC8 -_0800BEF6: - bl sub_0800D0CC -_0800BEFA: - ldr r0, _0800BFE4 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, #1 - bne _0800BFD4 - ldrb r0, [r7] - cmp r0, #0 - beq _0800BF58 - movs r2, #0 - ldr r6, _0800BFE8 - movs r3, #1 - adds r4, r6, #0 - adds r4, #0x34 - adds r6, #0x30 - adds r5, r7, #0 -_0800BF18: - ldrb r0, [r6] - asrs r0, r2 - ands r0, r3 - cmp r0, #0 - beq _0800BF34 - ldrb r0, [r5] - asrs r0, r2 - ands r0, r3 - cmp r0, #0 - beq _0800BF34 - lsls r0, r2, #1 - adds r0, r0, r4 - movs r1, #0 - strh r1, [r0] -_0800BF34: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #3 - bls _0800BF18 - ldr r3, _0800BFE8 - adds r2, r3, #0 - adds r2, #0x30 - ldrb r1, [r7] - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] - ldrb r0, [r7] - strh r0, [r3, #0x14] - movs r0, #0x32 - movs r1, #1 - bl sub_0800CDC8 -_0800BF58: - ldr r0, _0800BFE8 - adds r3, r0, #0 - adds r3, #0x30 - ldrb r1, [r3] - adds r6, r0, #0 - cmp r1, #0 - beq _0800BFD0 - movs r4, #0 - movs r2, #0 - movs r5, #1 -_0800BF6C: - ldrb r0, [r3] - asrs r0, r2 - ands r0, r5 - cmp r0, #0 - beq _0800BF9E - lsls r1, r2, #1 - adds r0, r6, #0 - adds r0, #0x34 - adds r1, r1, r0 - ldrh r0, [r1] - cmp r0, #0 - beq _0800BF9E - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0800BF9E - adds r0, r5, #0 - lsls r0, r2 - ldrb r1, [r3] - bics r1, r0 - strb r1, [r3] - orrs r4, r0 - lsls r0, r4, #0x18 - lsrs r4, r0, #0x18 -_0800BF9E: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #3 - bls _0800BF6C - cmp r4, #0 - beq _0800BFC2 - adds r0, r4, #0 - bl sub_0800CDF0 - movs r6, #1 - mov r8, r6 - ldr r0, _0800BFE8 - strh r4, [r0, #0x14] - movs r0, #0x33 - movs r1, #1 - bl sub_0800CDC8 -_0800BFC2: - ldr r0, _0800BFE8 - adds r1, r0, #0 - adds r1, #0x30 - ldrb r1, [r1] - adds r6, r0, #0 - cmp r1, #0 - bne _0800BFD4 -_0800BFD0: - movs r0, #0 - strb r0, [r6, #0xa] -_0800BFD4: - mov r0, r8 - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0800BFE4: .4byte gUnknown_3007630 -_0800BFE8: .4byte gUnknown_30041E0 - thumb_func_end sub_0800BE28 - - thumb_func_start rfu_syncVBlank_ -rfu_syncVBlank_: @ 0x0800BFEC - push {lr} - bl rfu_syncVBlank - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0800C004 - movs r0, #0xf1 - movs r1, #0 - bl sub_0800CDC8 - bl sub_0800D0CC -_0800C004: - pop {r0} - bx r0 - thumb_func_end rfu_syncVBlank_ - - thumb_func_start sub_0800C008 -sub_0800C008: @ 0x0800C008 - push {r4, lr} - adds r3, r0, #0 - ldr r1, _0800C020 - ldr r2, [r1, #0x40] - cmp r2, #0 - bne _0800C024 - ldrb r0, [r1, #4] - cmp r0, #0 - beq _0800C024 - strb r2, [r1, #4] - b _0800C1F2 - .align 2, 0 -_0800C020: .4byte gUnknown_30041E0 -_0800C024: - ldr r0, _0800C058 - ldrb r0, [r0, #7] - cmp r0, #0 - beq _0800C032 - adds r0, r3, #0 - bl sub_0800C200 -_0800C032: - ldr r4, _0800C058 - ldrb r0, [r4, #4] - cmp r0, #0 - bne _0800C03C - b _0800C1BC -_0800C03C: - bl rfu_waitREQComplete - movs r0, #1 - strb r0, [r4, #0xe] - ldrb r0, [r4, #4] - subs r0, #1 - cmp r0, #0x16 - bls _0800C04E - b _0800C1B2 -_0800C04E: - lsls r0, r0, #2 - ldr r1, _0800C05C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0800C058: .4byte gUnknown_30041E0 -_0800C05C: .4byte _0800C060 -_0800C060: @ jump table - .4byte _0800C0E0 @ case 0 - .4byte _0800C118 @ case 1 - .4byte _0800C11E @ case 2 - .4byte _0800C134 @ case 3 - .4byte _0800C14C @ case 4 - .4byte _0800C152 @ case 5 - .4byte _0800C158 @ case 6 - .4byte _0800C1B2 @ case 7 - .4byte _0800C15E @ case 8 - .4byte _0800C164 @ case 9 - .4byte _0800C16A @ case 10 - .4byte _0800C170 @ case 11 - .4byte _0800C180 @ case 12 - .4byte _0800C186 @ case 13 - .4byte _0800C1B2 @ case 14 - .4byte _0800C18C @ case 15 - .4byte _0800C19C @ case 16 - .4byte _0800C1A2 @ case 17 - .4byte _0800C1A8 @ case 18 - .4byte _0800C1B2 @ case 19 - .4byte _0800C1AE @ case 20 - .4byte _0800C1B2 @ case 21 - .4byte _0800C0BC @ case 22 -_0800C0BC: - bl sub_0800B97C - ldr r1, _0800C0D8 - movs r2, #0xff - cmp r0, r1 - bne _0800C0CA - movs r2, #0x44 -_0800C0CA: - ldr r1, _0800C0DC - movs r0, #0 - strb r0, [r1, #5] - strb r0, [r1, #4] - adds r0, r2, #0 - b _0800C10A - .align 2, 0 -_0800C0D8: .4byte 0x00008001 -_0800C0DC: .4byte gUnknown_30041E0 -_0800C0E0: - bl sub_0800B97C - ldr r1, _0800C0F8 - cmp r0, r1 - bne _0800C100 - ldr r0, _0800C0FC - ldrb r1, [r0, #5] - strb r1, [r0, #4] - movs r1, #3 - strb r1, [r0, #5] - b _0800C1B2 - .align 2, 0 -_0800C0F8: .4byte 0x00008001 -_0800C0FC: .4byte gUnknown_30041E0 -_0800C100: - ldr r1, _0800C114 - movs r0, #0 - strb r0, [r1, #5] - strb r0, [r1, #4] - movs r0, #0xff -_0800C10A: - movs r1, #0 - bl sub_0800CDC8 - b _0800C1B2 - .align 2, 0 -_0800C114: .4byte gUnknown_30041E0 -_0800C118: - bl rfu_REQ_reset - b _0800C1B2 -_0800C11E: - ldr r0, _0800C130 - ldr r2, [r0, #0x3c] - ldrh r0, [r2, #2] - ldrb r1, [r2] - ldrb r2, [r2, #1] - bl rfu_REQ_configSystem - b _0800C1B2 - .align 2, 0 -_0800C130: .4byte gUnknown_30041E0 -_0800C134: - ldr r0, _0800C148 - ldr r3, [r0, #0x3c] - ldrb r0, [r3, #4] - ldrh r1, [r3, #6] - ldr r2, [r3, #8] - ldr r3, [r3, #0xc] - bl rfu_REQ_configGameData - b _0800C1B2 - .align 2, 0 -_0800C148: .4byte gUnknown_30041E0 -_0800C14C: - bl rfu_REQ_startSearchChild - b _0800C1B2 -_0800C152: - bl rfu_REQ_pollSearchChild - b _0800C1B2 -_0800C158: - bl rfu_REQ_endSearchChild - b _0800C1B2 -_0800C15E: - bl rfu_REQ_startSearchParent - b _0800C1B2 -_0800C164: - bl rfu_REQ_pollSearchParent - b _0800C1B2 -_0800C16A: - bl rfu_REQ_endSearchParent - b _0800C1B2 -_0800C170: - ldr r0, _0800C17C - ldrh r0, [r0, #0x1e] - bl rfu_REQ_startConnectParent - b _0800C1B2 - .align 2, 0 -_0800C17C: .4byte gUnknown_30041E0 -_0800C180: - bl rfu_REQ_pollConnectParent - b _0800C1B2 -_0800C186: - bl rfu_REQ_endConnectParent - b _0800C1B2 -_0800C18C: - ldr r0, _0800C198 - ldr r0, [r0] - ldrb r0, [r0, #3] - bl rfu_REQ_CHILD_startConnectRecovery - b _0800C1B2 - .align 2, 0 -_0800C198: .4byte gUnknown_3007630 -_0800C19C: - bl rfu_REQ_CHILD_pollConnectRecovery - b _0800C1B2 -_0800C1A2: - bl rfu_REQ_CHILD_endConnectRecovery - b _0800C1B2 -_0800C1A8: - bl rfu_REQ_changeMasterSlave - b _0800C1B2 -_0800C1AE: - bl rfu_REQ_stopMode -_0800C1B2: - bl rfu_waitREQComplete - ldr r1, _0800C1F8 - movs r0, #0 - strb r0, [r1, #0xe] -_0800C1BC: - ldr r0, _0800C1F8 - ldrb r0, [r0, #4] - subs r0, #0x12 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0800C1CC - b _0800C032 -_0800C1CC: - ldr r0, _0800C1FC - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, #1 - bne _0800C1E2 - movs r0, #0 - bl sub_0800BE28 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0800C1F2 -_0800C1E2: - bl sub_0800C9F0 - bl sub_0800CC14 - bl sub_0800CD24 - bl sub_0800CEF0 -_0800C1F2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800C1F8: .4byte gUnknown_30041E0 -_0800C1FC: .4byte gUnknown_3007630 - thumb_func_end sub_0800C008 - - thumb_func_start sub_0800C200 -sub_0800C200: @ 0x0800C200 - push {r4, lr} - adds r3, r0, #0 - ldr r0, _0800C224 - ldrb r1, [r0, #7] - adds r4, r0, #0 - cmp r1, #5 - bne _0800C22A - movs r2, #1 - strb r2, [r4, #6] - strb r1, [r4, #4] - ldrh r0, [r4, #0x1c] - strh r0, [r4, #0x1a] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0800C228 - movs r0, #6 - strb r0, [r4, #7] - b _0800C22A - .align 2, 0 -_0800C224: .4byte gUnknown_30041E0 -_0800C228: - strb r2, [r4, #7] -_0800C22A: - ldrb r0, [r4, #7] - cmp r0, #1 - bne _0800C254 - strb r0, [r4, #6] - movs r0, #5 - strb r0, [r4, #4] - adds r0, r3, #0 - movs r1, #0x8c - bl __umodsi3 - strh r0, [r4, #0x1a] - movs r1, #0x8c - subs r1, r1, r0 - strh r1, [r4, #0x1c] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0800C250 - movs r0, #2 - b _0800C252 -_0800C250: - movs r0, #3 -_0800C252: - strb r0, [r4, #7] -_0800C254: - ldrb r0, [r4, #7] - cmp r0, #3 - bne _0800C26A - movs r0, #0 - strb r0, [r4, #6] - movs r0, #0x28 - strh r0, [r4, #0x1a] - movs r0, #4 - strb r0, [r4, #7] - movs r0, #9 - strb r0, [r4, #4] -_0800C26A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0800C200 - - thumb_func_start sub_0800C270 -sub_0800C270: @ 0x0800C270 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - ldr r0, _0800C2A8 - ldrb r1, [r0, #0xe] - adds r7, r0, #0 - cmp r1, #0 - bne _0800C28E - b _0800C754 -_0800C28E: - movs r0, #0 - strb r0, [r7, #0xe] - mov r0, r8 - subs r0, #0x10 - cmp r0, #0x2d - bls _0800C29C - b _0800C746 -_0800C29C: - lsls r0, r0, #2 - ldr r1, _0800C2AC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0800C2A8: .4byte gUnknown_30041E0 -_0800C2AC: .4byte _0800C2B0 -_0800C2B0: @ jump table - .4byte _0800C368 @ case 0 - .4byte _0800C746 @ case 1 - .4byte _0800C746 @ case 2 - .4byte _0800C746 @ case 3 - .4byte _0800C746 @ case 4 - .4byte _0800C746 @ case 5 - .4byte _0800C394 @ case 6 - .4byte _0800C380 @ case 7 - .4byte _0800C746 @ case 8 - .4byte _0800C3A8 @ case 9 - .4byte _0800C3B8 @ case 10 - .4byte _0800C3DC @ case 11 - .4byte _0800C3FC @ case 12 - .4byte _0800C41C @ case 13 - .4byte _0800C48C @ case 14 - .4byte _0800C4BE @ case 15 - .4byte _0800C4D4 @ case 16 - .4byte _0800C51C @ case 17 - .4byte _0800C746 @ case 18 - .4byte _0800C746 @ case 19 - .4byte _0800C746 @ case 20 - .4byte _0800C746 @ case 21 - .4byte _0800C746 @ case 22 - .4byte _0800C694 @ case 23 - .4byte _0800C746 @ case 24 - .4byte _0800C746 @ case 25 - .4byte _0800C746 @ case 26 - .4byte _0800C746 @ case 27 - .4byte _0800C746 @ case 28 - .4byte _0800C746 @ case 29 - .4byte _0800C746 @ case 30 - .4byte _0800C746 @ case 31 - .4byte _0800C746 @ case 32 - .4byte _0800C746 @ case 33 - .4byte _0800C58C @ case 34 - .4byte _0800C5D8 @ case 35 - .4byte _0800C620 @ case 36 - .4byte _0800C746 @ case 37 - .4byte _0800C746 @ case 38 - .4byte _0800C746 @ case 39 - .4byte _0800C746 @ case 40 - .4byte _0800C746 @ case 41 - .4byte _0800C746 @ case 42 - .4byte _0800C746 @ case 43 - .4byte _0800C746 @ case 44 - .4byte _0800C734 @ case 45 -_0800C368: - cmp r6, #0 - beq _0800C36E - b _0800C746 -_0800C36E: - ldr r0, _0800C37C - ldrb r1, [r0, #5] - strb r1, [r0, #4] - movs r1, #4 - strb r1, [r0, #5] - b _0800C746 - .align 2, 0 -_0800C37C: .4byte gUnknown_30041E0 -_0800C380: - cmp r6, #0 - beq _0800C386 - b _0800C746 -_0800C386: - ldr r0, _0800C390 - ldrb r1, [r0, #5] - strb r1, [r0, #4] - strb r6, [r0, #5] - b _0800C746 - .align 2, 0 -_0800C390: .4byte gUnknown_30041E0 -_0800C394: - cmp r6, #0 - beq _0800C39A - b _0800C746 -_0800C39A: - ldr r0, _0800C3A4 - strb r6, [r0, #5] - strb r6, [r0, #4] - movs r0, #0 - b _0800C6B2 - .align 2, 0 -_0800C3A4: .4byte gUnknown_30041E0 -_0800C3A8: - cmp r6, #0 - beq _0800C3AE - b _0800C746 -_0800C3AE: - ldr r1, _0800C3B4 - movs r0, #6 - b _0800C4C8 - .align 2, 0 -_0800C3B4: .4byte gUnknown_30041E0 -_0800C3B8: - ldr r1, _0800C3D8 - ldrh r0, [r1, #0x1a] - cmp r0, #0 - bne _0800C3C2 - b _0800C746 -_0800C3C2: - subs r0, #1 - strh r0, [r1, #0x1a] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0800C3CE - b _0800C746 -_0800C3CE: - movs r0, #7 - strb r0, [r1, #4] - movs r0, #8 - strb r0, [r1, #5] - b _0800C746 - .align 2, 0 -_0800C3D8: .4byte gUnknown_30041E0 -_0800C3DC: - cmp r6, #0 - beq _0800C3E2 - b _0800C746 -_0800C3E2: - ldr r0, _0800C3F8 - ldrb r1, [r0, #5] - strb r1, [r0, #4] - strb r6, [r0, #5] - ldrb r0, [r0, #7] - cmp r0, #0 - beq _0800C3F2 - b _0800C746 -_0800C3F2: - movs r0, #0x13 - b _0800C6B2 - .align 2, 0 -_0800C3F8: .4byte gUnknown_30041E0 -_0800C3FC: - cmp r6, #0 - beq _0800C402 - b _0800C746 -_0800C402: - ldrb r0, [r7, #0xb] - cmp r0, #1 - bne _0800C412 - ldrh r0, [r7, #0x1a] - cmp r0, #1 - bls _0800C412 - subs r0, #1 - strh r0, [r7, #0x1a] -_0800C412: - ldr r1, _0800C418 - movs r0, #0xa - b _0800C4C8 - .align 2, 0 -_0800C418: .4byte gUnknown_30041E0 -_0800C41C: - cmp r6, #0 - bne _0800C462 - bl sub_0800CD50 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, sp - strb r0, [r1] - ldr r4, _0800C484 - strh r0, [r4, #0x14] - cmp r0, #0 - beq _0800C43C - movs r0, #0x20 - movs r1, #1 - bl sub_0800CDC8 -_0800C43C: - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _0800C462 - ldrh r0, [r4, #0x1a] - cmp r0, #1 - beq _0800C462 - ldr r0, _0800C488 - ldr r0, [r0] - ldrb r0, [r0, #8] - cmp r0, #4 - bne _0800C462 - bl rfu_REQ_endSearchParent - bl rfu_waitREQComplete - movs r0, #9 - strb r0, [r4, #4] - movs r0, #1 - strb r0, [r4, #0xb] -_0800C462: - ldr r1, _0800C484 - ldrh r0, [r1, #0x1a] - cmp r0, #0 - bne _0800C46C - b _0800C746 -_0800C46C: - subs r0, #1 - strh r0, [r1, #0x1a] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0800C478 - b _0800C746 -_0800C478: - movs r0, #0xb - strb r0, [r1, #4] - movs r0, #0 - strb r0, [r1, #5] - b _0800C746 - .align 2, 0 -_0800C484: .4byte gUnknown_30041E0 -_0800C488: .4byte gUnknown_3007630 -_0800C48C: - cmp r6, #0 - beq _0800C492 - b _0800C746 -_0800C492: - ldr r2, _0800C4AC - ldrb r0, [r2, #5] - strb r0, [r2, #4] - ldrb r1, [r2, #7] - cmp r1, #0 - bne _0800C4B0 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0800C4A6 - b _0800C746 -_0800C4A6: - movs r0, #0x21 - b _0800C6B2 - .align 2, 0 -_0800C4AC: .4byte gUnknown_30041E0 -_0800C4B0: - cmp r1, #7 - bne _0800C4B6 - b _0800C746 -_0800C4B6: - movs r0, #5 - strb r0, [r2, #4] - strb r0, [r2, #7] - b _0800C746 -_0800C4BE: - cmp r6, #0 - beq _0800C4C4 - b _0800C746 -_0800C4C4: - ldr r1, _0800C4D0 - movs r0, #0xd -_0800C4C8: - strb r0, [r1, #5] - strb r0, [r1, #4] - b _0800C746 - .align 2, 0 -_0800C4D0: .4byte gUnknown_30041E0 -_0800C4D4: - cmp r6, #0 - bne _0800C4F8 - ldr r4, _0800C514 - mov r0, sp - adds r1, r4, #0 - bl rfu_getConnectParentStatus - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0800C4F8 - mov r0, sp - ldrb r0, [r0] - cmp r0, #0 - bne _0800C4F8 - adds r1, r4, #0 - subs r1, #0x10 - movs r0, #0xe - strb r0, [r1, #4] -_0800C4F8: - ldr r1, _0800C518 - ldrh r0, [r1, #0x1a] - cmp r0, #0 - bne _0800C502 - b _0800C746 -_0800C502: - subs r0, #1 - strh r0, [r1, #0x1a] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0800C50E - b _0800C746 -_0800C50E: - movs r0, #0xe - strb r0, [r1, #4] - b _0800C746 - .align 2, 0 -_0800C514: .4byte gUnknown_30041F0 -_0800C518: .4byte gUnknown_30041E0 -_0800C51C: - cmp r6, #0 - beq _0800C522 - b _0800C746 -_0800C522: - ldr r4, _0800C554 - mov r0, sp - adds r1, r4, #0 - bl rfu_getConnectParentStatus - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0800C534 - b _0800C746 -_0800C534: - mov r0, sp - ldrb r0, [r0] - cmp r0, #0 - bne _0800C558 - adds r1, r4, #0 - subs r1, #0x10 - movs r0, #0x13 - strb r0, [r1, #4] - movs r0, #0xf - strb r0, [r1, #5] - movs r0, #0x22 - strh r0, [r1, #0x1e] - ldrb r0, [r1, #0x10] - strh r0, [r1, #0x14] - b _0800C578 - .align 2, 0 -_0800C554: .4byte gUnknown_30041F0 -_0800C558: - adds r1, r4, #0 - subs r1, #0x10 - strb r6, [r1, #5] - strb r6, [r1, #4] - movs r0, #0x23 - strh r0, [r1, #0x1e] - mov r0, sp - ldrb r0, [r0] - strh r0, [r1, #0x14] - ldrb r0, [r1, #7] - cmp r0, #0 - beq _0800C578 - movs r0, #3 - strb r0, [r1, #7] - movs r0, #9 - strb r0, [r1, #4] -_0800C578: - ldr r4, _0800C588 - ldrb r0, [r4, #0x1e] - movs r1, #1 - bl sub_0800CDC8 - movs r0, #0 - strh r0, [r4, #0x1e] - b _0800C746 - .align 2, 0 -_0800C588: .4byte gUnknown_30041E0 -_0800C58C: - cmp r6, #0 - beq _0800C592 - b _0800C746 -_0800C592: - ldr r2, _0800C5D4 - ldr r3, [r2] - ldrb r0, [r3, #3] - movs r1, #0 - strh r0, [r7, #0x14] - movs r0, #0x11 - strb r0, [r7, #5] - strb r0, [r7, #4] - strb r1, [r7, #0x10] - ldrb r0, [r3, #3] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0800C5B0 - b _0800C746 -_0800C5B0: - adds r1, r7, #0 - movs r3, #1 -_0800C5B4: - ldrb r0, [r1, #0x10] - adds r0, #1 - strb r0, [r1, #0x10] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bls _0800C5C4 - b _0800C746 -_0800C5C4: - ldr r0, [r2] - ldrb r0, [r0, #3] - ldrb r4, [r7, #0x10] - asrs r0, r4 - ands r0, r3 - cmp r0, #0 - beq _0800C5B4 - b _0800C746 - .align 2, 0 -_0800C5D4: .4byte gUnknown_3007630 -_0800C5D8: - cmp r6, #0 - bne _0800C5F6 - mov r0, sp - bl rfu_CHILD_getConnectRecoveryStatus - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0800C5F6 - mov r0, sp - ldrb r0, [r0] - cmp r0, #1 - bhi _0800C5F6 - ldr r1, _0800C61C - movs r0, #0x12 - strb r0, [r1, #4] -_0800C5F6: - ldr r2, _0800C61C - ldrb r0, [r2, #0x10] - lsls r0, r0, #1 - adds r1, r2, #0 - adds r1, #0x34 - adds r1, r0, r1 - ldrh r0, [r1] - cmp r0, #0 - bne _0800C60A - b _0800C746 -_0800C60A: - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0800C616 - b _0800C746 -_0800C616: - movs r0, #0x12 - strb r0, [r2, #4] - b _0800C746 - .align 2, 0 -_0800C61C: .4byte gUnknown_30041E0 -_0800C620: - cmp r6, #0 - beq _0800C626 - b _0800C746 -_0800C626: - mov r0, sp - bl rfu_CHILD_getConnectRecoveryStatus - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0800C634 - b _0800C746 -_0800C634: - mov r0, sp - ldrb r0, [r0] - cmp r0, #0 - bne _0800C650 - ldr r1, _0800C64C - movs r0, #0x13 - strb r0, [r1, #4] - movs r0, #0x16 - strb r0, [r1, #5] - movs r0, #0x32 - strh r0, [r1, #0x1e] - b _0800C664 - .align 2, 0 -_0800C64C: .4byte gUnknown_30041E0 -_0800C650: - ldr r4, _0800C68C - strb r6, [r4, #5] - strb r6, [r4, #4] - ldr r0, _0800C690 - ldr r0, [r0] - ldrb r0, [r0, #3] - bl sub_0800CDF0 - movs r0, #0x33 - strh r0, [r4, #0x1e] -_0800C664: - ldr r5, _0800C68C - ldrb r0, [r5, #0x10] - lsls r0, r0, #1 - adds r1, r5, #0 - adds r1, #0x34 - adds r0, r0, r1 - movs r1, #0 - movs r4, #0 - strh r4, [r0] - adds r0, r5, #0 - adds r0, #0x30 - strb r1, [r0] - strb r1, [r5, #0xa] - ldrb r0, [r5, #0x1e] - movs r1, #1 - bl sub_0800CDC8 - strh r4, [r5, #0x1e] - b _0800C746 - .align 2, 0 -_0800C68C: .4byte gUnknown_30041E0 -_0800C690: .4byte gUnknown_3007630 -_0800C694: - cmp r6, #0 - bne _0800C746 - ldr r5, _0800C6BC - ldrb r1, [r5, #5] - adds r0, r1, #0 - cmp r0, #0x16 - bne _0800C6C0 - ldrb r0, [r5, #0x11] - strb r0, [r5, #4] - ldrb r0, [r5, #0x12] - strb r0, [r5, #5] - ldrb r0, [r5, #2] - movs r0, #1 - strb r0, [r5, #2] - movs r0, #0x41 -_0800C6B2: - movs r1, #0 - bl sub_0800CDC8 - b _0800C746 - .align 2, 0 -_0800C6BC: .4byte gUnknown_30041E0 -_0800C6C0: - cmp r0, #0xf - bne _0800C746 - strb r1, [r5, #4] - ldrb r0, [r5, #2] - movs r4, #1 - strb r4, [r5, #2] - movs r0, #0x41 - movs r1, #0 - bl sub_0800CDC8 - adds r1, r5, #0 - adds r1, #0x24 - ldrb r0, [r5, #0x10] - lsls r4, r0 - ldrb r0, [r1] - orrs r4, r0 - strb r4, [r1] - ldrb r0, [r5, #0x10] - lsls r0, r0, #1 - adds r1, #4 - adds r0, r0, r1 - ldrh r1, [r5, #0x26] - movs r7, #0 - strh r1, [r0] - ldrb r1, [r5, #0x10] - movs r0, #4 - bl rfu_clearSlot - mov r4, sp - ldrb r0, [r5, #0x10] - movs r1, #0xe - bl rfu_NI_CHILD_setSendGameName - strb r0, [r4] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0800C746 - strb r7, [r5, #5] - strb r7, [r5, #4] - bl sub_0800D0CC - ldr r0, _0800C730 - ldr r0, [r0] - ldrb r1, [r0, #2] - ldrb r0, [r0, #3] - orrs r0, r1 - bl sub_0800CDF0 - mov r0, sp - ldrb r0, [r0] - strh r0, [r5, #0x14] - movs r0, #0x25 - movs r1, #1 - bl sub_0800CDC8 - b _0800C746 - .align 2, 0 -_0800C730: .4byte gUnknown_3007630 -_0800C734: - cmp r6, #0 - bne _0800C746 - ldr r0, _0800C750 - strb r6, [r0, #5] - strb r6, [r0, #4] - movs r0, #0x42 - movs r1, #0 - bl sub_0800CDC8 -_0800C746: - ldr r1, _0800C750 - movs r0, #1 - strb r0, [r1, #0xe] - b _0800C7A2 - .align 2, 0 -_0800C750: .4byte gUnknown_30041E0 -_0800C754: - cmp r6, #3 - bne _0800C7A2 - ldrb r0, [r7, #0xf] - cmp r0, #0 - beq _0800C7A2 - mov r3, r8 - cmp r3, #0x24 - beq _0800C76C - cmp r3, #0x26 - beq _0800C76C - cmp r3, #0x27 - bne _0800C7A2 -_0800C76C: - bl rfu_REQ_RFUStatus - bl rfu_waitREQComplete - mov r0, sp - bl rfu_getRFUStatus - mov r0, sp - ldrb r0, [r0] - cmp r0, #0 - bne _0800C7A2 - ldr r4, _0800C7B8 - ldr r0, [r4] - ldrb r0, [r0] - cmp r0, #0 - bne _0800C7A2 - bl rfu_getSTWIRecvBuffer - ldr r1, [r4] - ldrb r1, [r1, #2] - strb r1, [r0, #4] - movs r1, #1 - strb r1, [r0, #5] - movs r0, #0x29 - bl sub_0800BE28 - movs r6, #0 -_0800C7A2: - mov r4, r8 - cmp r4, #0x26 - bne _0800C7AA - b _0800C8BE -_0800C7AA: - cmp r4, #0x26 - bgt _0800C7BC - cmp r4, #0x10 - bne _0800C7B4 - b _0800C8DC -_0800C7B4: - b _0800C8FA - .align 2, 0 -_0800C7B8: .4byte gUnknown_3007630 -_0800C7BC: - mov r0, r8 - cmp r0, #0x30 - beq _0800C7CA - cmp r0, #0x3d - bne _0800C7C8 - b _0800C8DC -_0800C7C8: - b _0800C8FA -_0800C7CA: - cmp r6, #0 - beq _0800C7D0 - b _0800C8FE -_0800C7D0: - bl rfu_getSTWIRecvBuffer - ldr r4, _0800C880 - ldrb r0, [r0, #8] - strh r0, [r4, #0x14] - bl sub_0800CE14 - adds r2, r4, #0 - adds r2, #0x30 - ldrb r1, [r2] - cmp r1, #0 - beq _0800C826 - ldrb r0, [r4, #0x14] - adds r3, r1, #0 - bics r3, r0 - adds r0, r3, #0 - strb r0, [r2] - movs r3, #0 - adds r7, r4, #0 - adds r1, r7, #0 - movs r5, #1 - adds r4, r1, #0 - adds r4, #0x34 - movs r2, #0 -_0800C800: - ldrh r0, [r1, #0x14] - asrs r0, r3 - ands r0, r5 - cmp r0, #0 - beq _0800C810 - lsls r0, r3, #1 - adds r0, r0, r4 - strh r2, [r0] -_0800C810: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #3 - bls _0800C800 - ldr r1, _0800C880 - ldrb r0, [r1, #6] - cmp r0, #0 - bne _0800C826 - strb r0, [r1, #5] - strb r0, [r1, #4] -_0800C826: - mov r3, sp - ldr r1, _0800C880 - ldrb r2, [r1] - ldrb r0, [r1, #0x14] - ands r0, r2 - strb r0, [r3] - movs r3, #0 - adds r7, r1, #0 - ldr r2, _0800C884 - mov r1, sp - movs r5, #1 - adds r4, r7, #0 -_0800C83E: - ldrb r0, [r1] - asrs r0, r3 - ands r0, r5 - cmp r0, #0 - beq _0800C852 - ldrb r0, [r4, #1] - cmp r0, #0 - beq _0800C852 - subs r0, #1 - strb r0, [r7, #1] -_0800C852: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #3 - bls _0800C83E - ldrb r1, [r7, #0x14] - ldrb r0, [r7] - bics r0, r1 - strb r0, [r7] - ldrb r1, [r7, #7] - cmp r1, #0 - beq _0800C89C - ldr r0, [r2] - ldrb r0, [r0] - cmp r0, #0xff - bne _0800C8AE - cmp r1, #8 - bne _0800C888 - ldrh r0, [r7, #0x1c] - strh r0, [r7, #0x1a] - movs r0, #6 - strb r0, [r7, #7] - b _0800C89A - .align 2, 0 -_0800C880: .4byte gUnknown_30041E0 -_0800C884: .4byte gUnknown_3007630 -_0800C888: - ldrb r0, [r7, #4] - subs r0, #6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _0800C89C - movs r0, #1 - strb r0, [r7, #7] - movs r0, #5 -_0800C89A: - strb r0, [r7, #4] -_0800C89C: - ldr r0, [r2] - ldrb r0, [r0] - cmp r0, #0xff - bne _0800C8AE - ldrb r0, [r7, #4] - cmp r0, #0 - bne _0800C8AE - movs r0, #0xff - strb r0, [r7, #6] -_0800C8AE: - ldrb r0, [r7, #0xe] - cmp r0, #0 - bne _0800C8FA - movs r0, #0x40 - movs r1, #1 - bl sub_0800CDC8 - b _0800C8FA -_0800C8BE: - bl sub_0800CCC8 - ldr r0, _0800C8D8 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, #0xff - beq _0800C8FA - movs r0, #0x50 - movs r1, #0 - bl sub_0800CDC8 - b _0800C8FA - .align 2, 0 -_0800C8D8: .4byte gUnknown_3007630 -_0800C8DC: - cmp r6, #0 - bne _0800C8FE - ldr r0, _0800C928 - strb r6, [r0, #0xd] - strb r6, [r0, #1] - strb r6, [r0] - movs r1, #0xff - strb r1, [r0, #6] - bl sub_0800D0CC - mov r4, r8 - cmp r4, #0x3d - bne _0800C8FA - bl sub_0800BA5C -_0800C8FA: - cmp r6, #0 - beq _0800C94E -_0800C8FE: - ldr r7, _0800C928 - mov r0, r8 - cmp r0, #0x1c - bne _0800C930 - cmp r6, #0 - beq _0800C930 - ldrb r0, [r7, #7] - cmp r0, #4 - bne _0800C930 - ldr r2, _0800C92C - ldr r1, [r2] - movs r0, #1 - strb r0, [r1] - ldr r1, [r2] - movs r0, #0xf - strb r0, [r1, #2] - bl sub_0800CDF0 - bl rfu_waitREQComplete - b _0800C960 - .align 2, 0 -_0800C928: .4byte gUnknown_30041E0 -_0800C92C: .4byte gUnknown_3007630 -_0800C930: - movs r1, #0 - mov r3, r8 - strh r3, [r7, #0x14] - strh r6, [r7, #0x16] - ldrb r0, [r7, #0xe] - cmp r0, #0 - beq _0800C942 - strb r1, [r7, #5] - strb r1, [r7, #4] -_0800C942: - movs r0, #0xf0 - movs r1, #2 - bl sub_0800CDC8 - bl sub_0800D0CC -_0800C94E: - mov r4, r8 - cmp r4, #0xff - bne _0800C960 - movs r0, #0xf2 - movs r1, #0 - bl sub_0800CDC8 - bl sub_0800D0CC -_0800C960: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_0800C270 - - thumb_func_start sub_0800C96C -sub_0800C96C: @ 0x0800C96C - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r4, _0800C9A0 - ldrb r7, [r4, #0xe] - movs r0, #0 - strb r0, [r4, #0xe] - movs r0, #1 - strb r0, [r4, #0xf] - ldr r0, _0800C9A4 - ldr r0, [r0] - ldrb r5, [r0] - cmp r5, #0 - bne _0800C9A8 - adds r0, r6, #0 - bl sub_0800BE28 - ldrb r0, [r4, #2] - cmp r0, #1 - beq _0800C9C0 - bl sub_0800D0CC - strb r5, [r4, #0xf] - strb r7, [r4, #0xe] - b _0800C9E4 - .align 2, 0 -_0800C9A0: .4byte gUnknown_30041E0 -_0800C9A4: .4byte gUnknown_3007630 -_0800C9A8: - mov r0, sp - bl rfu_UNI_PARENT_getDRAC_ACK - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0800C9C0 - mov r1, sp - ldrb r0, [r4, #3] - ldrb r1, [r1] - orrs r0, r1 - ldrb r1, [r4, #3] - strb r0, [r4, #3] -_0800C9C0: - ldr r4, _0800C9EC - ldr r1, [r4, #0x44] - cmp r1, #0 - beq _0800C9DC - adds r0, r6, #0 - bl _call_via_r1 - bl rfu_waitREQComplete - ldrb r0, [r4, #2] - cmp r0, #2 - bne _0800C9DC - bl sub_0800D0CC -_0800C9DC: - ldr r1, _0800C9EC - movs r0, #0 - strb r0, [r1, #0xf] - strb r7, [r1, #0xe] -_0800C9E4: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800C9EC: .4byte gUnknown_30041E0 - thumb_func_end sub_0800C96C - - thumb_func_start sub_0800C9F0 -sub_0800C9F0: @ 0x0800C9F0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - ldr r1, _0800CA74 - ldrb r0, [r1, #4] - subs r0, #5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r3, r1, #0 - cmp r0, #3 - bls _0800CA0E - b _0800CC02 -_0800CA0E: - ldr r0, _0800CA78 - ldr r2, [r0] - ldrb r1, [r2, #2] - ldrb r0, [r3, #0xc] - adds r4, r1, #0 - eors r4, r0 - ands r4, r1 - ldrb r0, [r2, #7] - bics r4, r0 - mov r8, r4 - strb r1, [r3, #0xc] - cmp r4, #0 - beq _0800CA36 - strh r4, [r3, #0x14] - movs r0, #0x10 - movs r1, #1 - str r3, [sp, #4] - bl sub_0800CDC8 - ldr r3, [sp, #4] -_0800CA36: - movs r0, #0 - str r0, [sp] - movs r6, #0 - adds r7, r3, #0 - movs r1, #0x24 - adds r1, r1, r3 - mov sb, r1 -_0800CA44: - movs r0, #0x80 - lsls r0, r0, #0x11 - lsls r0, r6 - lsrs r4, r0, #0x18 - movs r5, #0 - mov r0, r8 - ands r0, r4 - cmp r0, #0 - beq _0800CA96 - lsls r1, r6, #1 - adds r0, r7, #0 - adds r0, #0x28 - adds r1, r1, r0 - ldrh r0, [r7, #0x26] - strh r0, [r1] - mov r2, sb - ldrb r1, [r2] - adds r0, r4, #0 - orrs r0, r1 - strb r0, [r2] - adds r6, #1 - mov sl, r6 - b _0800CB4C - .align 2, 0 -_0800CA74: .4byte gUnknown_30041E0 -_0800CA78: .4byte gUnknown_3007630 -_0800CA7C: - ldrb r1, [r7] - adds r0, r4, #0 - orrs r0, r1 - strb r0, [r7] - ldrb r0, [r7, #1] - adds r0, #1 - strb r0, [r7, #1] - ldr r0, [sp] - orrs r0, r4 - str r0, [sp] - movs r0, #1 - orrs r5, r0 - b _0800CAE0 -_0800CA96: - mov r1, sb - ldrb r0, [r1] - ands r0, r4 - adds r2, r6, #1 - mov sl, r2 - cmp r0, #0 - beq _0800CB4C - ldr r0, _0800CAF0 - lsls r1, r6, #2 - adds r1, r1, r0 - ldr r1, [r1] - ldrh r0, [r1, #0x34] - cmp r0, #0x46 - bne _0800CAFC - adds r0, r1, #0 - adds r0, #0x61 - ldrb r0, [r0] - cmp r0, #1 - bne _0800CB14 - movs r5, #2 - ldr r3, [r3, #0x20] - ldrh r2, [r3] - ldr r0, _0800CAF4 - cmp r2, r0 - beq _0800CAE0 - ldr r0, _0800CAF8 - ldr r0, [r0] - lsls r1, r6, #5 - adds r0, r0, r1 - ldrh r0, [r0, #0x18] - ldr r1, _0800CAF4 -_0800CAD4: - cmp r0, r2 - beq _0800CA7C - adds r3, #2 - ldrh r2, [r3] - cmp r2, r1 - bne _0800CAD4 -_0800CAE0: - movs r0, #1 - ands r0, r5 - cmp r0, #0 - bne _0800CB14 - movs r0, #4 - orrs r5, r0 - b _0800CB14 - .align 2, 0 -_0800CAF0: .4byte gUnknown_3007620 -_0800CAF4: .4byte 0x0000FFFF -_0800CAF8: .4byte gUnknown_3007630 -_0800CAFC: - lsls r1, r6, #1 - adds r0, r3, #0 - adds r0, #0x28 - adds r1, r1, r0 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - ldr r1, _0800CBD0 - ands r0, r1 - cmp r0, #0 - bne _0800CB14 - movs r5, #6 -_0800CB14: - movs r0, #2 - ands r0, r5 - cmp r0, #0 - beq _0800CB3A - mov r2, sb - ldrb r0, [r2] - bics r0, r4 - movs r2, #0 - mov r1, sb - strb r0, [r1] - lsls r0, r6, #1 - adds r1, r7, #0 - adds r1, #0x28 - adds r0, r0, r1 - strh r2, [r0] - movs r0, #8 - adds r1, r6, #0 - bl rfu_clearSlot -_0800CB3A: - movs r0, #4 - ands r5, r0 - ldr r3, _0800CBD4 - cmp r5, #0 - beq _0800CB4C - ldrb r1, [r7, #0xd] - adds r0, r4, #0 - orrs r0, r1 - strb r0, [r7, #0xd] -_0800CB4C: - mov r2, sl - lsls r0, r2, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #3 - bhi _0800CB58 - b _0800CA44 -_0800CB58: - ldr r4, [sp] - cmp r4, #0 - beq _0800CB6A - ldr r0, _0800CBD4 - strh r4, [r0, #0x14] - movs r0, #0x11 - movs r1, #1 - bl sub_0800CDC8 -_0800CB6A: - ldr r1, _0800CBD4 - ldrb r0, [r1, #0xd] - cmp r0, #0 - beq _0800CBA6 - movs r5, #1 - ldr r0, _0800CBD8 - ldr r0, [r0] - ldrb r0, [r0, #6] - cmp r0, #0 - beq _0800CB8A - ldrb r0, [r1, #3] - ldrb r1, [r1] - ands r0, r1 - cmp r0, r1 - beq _0800CB8A - movs r5, #0 -_0800CB8A: - cmp r5, #0 - beq _0800CBA6 - ldr r4, _0800CBD4 - ldrb r0, [r4, #0xd] - bl sub_0800CDF0 - ldrb r0, [r4, #0xd] - movs r1, #0 - strh r0, [r4, #0x14] - strb r1, [r4, #0xd] - movs r0, #0x12 - movs r1, #1 - bl sub_0800CDC8 -_0800CBA6: - ldr r0, _0800CBD4 - adds r1, r0, #0 - adds r1, #0x24 - ldrb r1, [r1] - adds r3, r0, #0 - cmp r1, #0 - bne _0800CC02 - ldrb r0, [r3, #4] - cmp r0, #8 - bne _0800CC02 - ldrb r0, [r3, #7] - cmp r0, #0 - bne _0800CBDC - strb r0, [r3, #5] - strb r0, [r3, #4] - movs r0, #0x14 - movs r1, #0 - bl sub_0800CDC8 - b _0800CC02 - .align 2, 0 -_0800CBD0: .4byte 0x0000FFFF -_0800CBD4: .4byte gUnknown_30041E0 -_0800CBD8: .4byte gUnknown_3007630 -_0800CBDC: - cmp r0, #2 - bne _0800CBE8 - movs r0, #3 - strb r0, [r3, #7] - movs r0, #9 - b _0800CBEE -_0800CBE8: - movs r0, #1 - strb r0, [r3, #7] - movs r0, #5 -_0800CBEE: - strb r0, [r3, #4] - ldrb r0, [r3] - cmp r0, #0 - beq _0800CC02 - movs r0, #0 - strh r0, [r3, #0x1a] - movs r0, #8 - strb r0, [r3, #7] - movs r0, #5 - strb r0, [r3, #4] -_0800CC02: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0800C9F0 - - thumb_func_start sub_0800CC14 -sub_0800CC14: @ 0x0800CC14 - push {r4, r5, r6, lr} - ldr r1, _0800CCB8 - ldrh r0, [r1] - adds r6, r0, #0 - movs r0, #0 - strh r0, [r1] - ldr r4, _0800CCBC - ldrb r0, [r4, #4] - cmp r0, #0xf - bne _0800CC78 - ldrb r1, [r4, #0x10] - lsls r1, r1, #1 - adds r5, r4, #0 - adds r5, #0x28 - adds r1, r1, r5 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0800CC4E - ldr r1, _0800CCC0 - ldrb r0, [r4, #0x10] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldrh r0, [r0] - cmp r0, #0x27 - bne _0800CC78 -_0800CC4E: - bl sub_0800D0EC - movs r0, #0x18 - strb r0, [r4, #4] - ldrb r1, [r4, #0x10] - movs r0, #4 - bl rfu_clearSlot - adds r2, r4, #0 - adds r2, #0x24 - movs r1, #1 - ldrb r0, [r4, #0x10] - lsls r1, r0 - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] - ldrb r0, [r4, #0x10] - lsls r0, r0, #1 - adds r0, r0, r5 - movs r1, #0 - strh r1, [r0] -_0800CC78: - ldr r0, _0800CCB8 - strh r6, [r0] - ldr r5, _0800CCBC - ldrb r0, [r5, #4] - cmp r0, #0x18 - bne _0800CCB2 - ldrb r0, [r5, #2] - cmp r0, #1 - bne _0800CC8E - bl sub_0800D0EC -_0800CC8E: - ldrb r0, [r5, #2] - adds r4, r0, #0 - cmp r4, #0 - bne _0800CCB2 - strb r4, [r5, #5] - strb r4, [r5, #4] - ldr r0, _0800CCC4 - ldr r0, [r0] - ldrb r1, [r0, #2] - ldrb r0, [r0, #3] - orrs r0, r1 - bl sub_0800CDF0 - strh r4, [r5, #0x14] - movs r0, #0x25 - movs r1, #1 - bl sub_0800CDC8 -_0800CCB2: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0800CCB8: .4byte 0x04000208 -_0800CCBC: .4byte gUnknown_30041E0 -_0800CCC0: .4byte gUnknown_3007620 -_0800CCC4: .4byte gUnknown_3007630 - thumb_func_end sub_0800CC14 - - thumb_func_start sub_0800CCC8 -sub_0800CCC8: @ 0x0800CCC8 - push {r4, r5, lr} - ldr r5, _0800CD1C - ldrb r0, [r5, #4] - cmp r0, #0xf - bne _0800CD14 - ldr r1, _0800CD20 - ldrb r2, [r5, #0x10] - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldrh r0, [r0] - cmp r0, #0x26 - bne _0800CD14 - movs r4, #0 - strb r4, [r5, #5] - strb r4, [r5, #4] - movs r0, #4 - adds r1, r2, #0 - bl rfu_clearSlot - adds r2, r5, #0 - adds r2, #0x24 - movs r1, #1 - ldrb r0, [r5, #0x10] - lsls r1, r0 - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] - ldrb r0, [r5, #0x10] - lsls r0, r0, #1 - adds r1, r5, #0 - adds r1, #0x28 - adds r0, r0, r1 - strh r4, [r0] - movs r0, #0x24 - movs r1, #0 - bl sub_0800CDC8 -_0800CD14: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0800CD1C: .4byte gUnknown_30041E0 -_0800CD20: .4byte gUnknown_3007620 - thumb_func_end sub_0800CCC8 - - thumb_func_start sub_0800CD24 -sub_0800CD24: @ 0x0800CD24 - push {lr} - ldr r1, _0800CD4C - ldrb r0, [r1, #6] - cmp r0, #0 - bne _0800CD48 - ldrb r0, [r1, #0xa] - cmp r0, #1 - bne _0800CD48 - ldrb r0, [r1, #4] - strb r0, [r1, #0x11] - ldrb r0, [r1, #5] - strb r0, [r1, #0x12] - movs r0, #0x10 - strb r0, [r1, #4] - movs r0, #0x11 - strb r0, [r1, #5] - movs r0, #2 - strb r0, [r1, #0xa] -_0800CD48: - pop {r0} - bx r0 - .align 2, 0 -_0800CD4C: .4byte gUnknown_30041E0 - thumb_func_end sub_0800CD24 - - thumb_func_start sub_0800CD50 -sub_0800CD50: @ 0x0800CD50 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - movs r6, #0 - movs r5, #0 - ldr r1, _0800CDBC - ldr r0, [r1] - ldrb r0, [r0, #8] - cmp r6, r0 - bhs _0800CDAC - mov r8, r0 - ldr r0, _0800CDC0 - mov sl, r0 - mov sb, r1 -_0800CD70: - mov r1, sl - ldr r3, [r1, #0x20] - ldrh r2, [r3] - adds r0, r5, #1 - mov ip, r0 - ldr r1, _0800CDC4 - cmp r2, r1 - beq _0800CDA2 - mov r1, sb - ldr r0, [r1] - lsls r1, r5, #5 - adds r0, r0, r1 - ldrh r4, [r0, #0x18] - ldr r7, _0800CDC4 - movs r1, #1 - lsls r1, r5 -_0800CD90: - cmp r4, r2 - bne _0800CD9A - orrs r6, r1 - lsls r0, r6, #0x18 - lsrs r6, r0, #0x18 -_0800CD9A: - adds r3, #2 - ldrh r2, [r3] - cmp r2, r7 - bne _0800CD90 -_0800CDA2: - mov r1, ip - lsls r0, r1, #0x18 - lsrs r5, r0, #0x18 - cmp r5, r8 - blo _0800CD70 -_0800CDAC: - adds r0, r6, #0 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0800CDBC: .4byte gUnknown_3007630 -_0800CDC0: .4byte gUnknown_30041E0 -_0800CDC4: .4byte 0x0000FFFF - thumb_func_end sub_0800CD50 - - thumb_func_start sub_0800CDC8 -sub_0800CDC8: @ 0x0800CDC8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r4, _0800CDEC - ldr r2, [r4, #0x40] - cmp r2, #0 - beq _0800CDDE - bl _call_via_r2 -_0800CDDE: - movs r0, #0 - strh r0, [r4, #0x16] - strh r0, [r4, #0x14] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800CDEC: .4byte gUnknown_30041E0 - thumb_func_end sub_0800CDC8 - - thumb_func_start sub_0800CDF0 -sub_0800CDF0: @ 0x0800CDF0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _0800CE10 - ldrb r5, [r4, #0xe] - movs r1, #1 - strb r1, [r4, #0xe] - bl rfu_REQ_disconnect - bl rfu_waitREQComplete - strb r5, [r4, #0xe] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0800CE10: .4byte gUnknown_30041E0 - thumb_func_end sub_0800CDF0 - - thumb_func_start sub_0800CE14 -sub_0800CE14: @ 0x0800CE14 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _0800CEE0 - ldr r0, [r0] - ldrb r0, [r0, #4] - cmp r0, #0 - beq _0800CE5C - movs r4, #0 -_0800CE26: - ldr r1, _0800CEE4 - lsls r0, r4, #2 - adds r0, r0, r1 - ldr r2, [r0] - ldrh r0, [r2] - movs r3, #0x80 - lsls r3, r3, #8 - adds r1, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _0800CE52 - ldrb r1, [r2, #0x1a] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _0800CE52 - adds r2, r1, #0 - bics r2, r5 - movs r0, #0x20 - adds r1, r4, #0 - bl rfu_changeSendTarget -_0800CE52: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _0800CE26 -_0800CE5C: - ldr r0, _0800CEE0 - ldr r0, [r0] - ldrb r0, [r0, #5] - cmp r0, #0 - beq _0800CE9A - movs r4, #0 -_0800CE68: - ldr r1, _0800CEE4 - lsls r0, r4, #2 - adds r0, r0, r1 - ldr r2, [r0] - ldrh r0, [r2, #0x34] - movs r3, #0x80 - lsls r3, r3, #8 - adds r1, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _0800CE90 - adds r0, r2, #0 - adds r0, #0x4e - ldrb r0, [r0] - ands r0, r5 - cmp r0, #0 - beq _0800CE90 - adds r0, r4, #0 - bl rfu_NI_stopReceivingData -_0800CE90: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _0800CE68 -_0800CE9A: - ldr r0, _0800CEE0 - ldr r3, [r0] - ldrb r2, [r3, #6] - cmp r2, #0 - beq _0800CED8 - mvns r1, r5 - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3, #6] - movs r4, #0 - ldr r7, _0800CEE8 - ldr r6, _0800CEEC -_0800CEB2: - lsls r0, r4, #2 - adds r0, r0, r7 - ldr r2, [r0] - ldrh r0, [r2] - cmp r0, r6 - bne _0800CECE - ldrb r3, [r2, #3] - adds r0, r5, #0 - ands r0, r3 - cmp r0, #0 - beq _0800CECE - adds r0, r1, #0 - ands r0, r3 - strb r0, [r2, #3] -_0800CECE: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _0800CEB2 -_0800CED8: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800CEE0: .4byte gUnknown_3007630 -_0800CEE4: .4byte gUnknown_3007620 -_0800CEE8: .4byte gUnknown_3007610 -_0800CEEC: .4byte 0x00008024 - thumb_func_end sub_0800CE14 - - thumb_func_start sub_0800CEF0 -sub_0800CEF0: @ 0x0800CEF0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - ldr r0, _0800CFDC - ldrh r0, [r0, #0x18] - cmp r0, #0 - beq _0800CFCC - ldr r0, _0800CFE0 - ldr r0, [r0] - ldrb r0, [r0, #4] - cmp r0, #0 - beq _0800CF90 - movs r6, #0 -_0800CF10: - ldr r3, _0800CFE4 - lsls r2, r6, #2 - adds r0, r2, r3 - ldr r0, [r0] - ldrh r1, [r0] - movs r4, #0x80 - lsls r4, r4, #8 - adds r0, r4, #0 - ands r1, r0 - adds r7, r2, #0 - adds r0, r6, #1 - mov sb, r0 - cmp r1, #0 - beq _0800CF86 - movs r5, #0 - movs r4, #0 - movs r1, #1 - mov r8, r1 - mov sl, r3 -_0800CF36: - adds r0, r7, r3 - ldr r0, [r0] - ldrb r0, [r0, #0x1a] - asrs r0, r4 - mov r1, r8 - ands r0, r1 - cmp r0, #0 - beq _0800CF60 - lsls r0, r4, #2 - adds r0, r0, r3 - ldr r0, [r0] - ldr r1, _0800CFDC - ldrh r0, [r0, #2] - ldrh r1, [r1, #0x18] - cmp r0, r1 - bls _0800CF60 - mov r0, r8 - lsls r0, r4 - orrs r5, r0 - lsls r0, r5, #0x18 - lsrs r5, r0, #0x18 -_0800CF60: - cmp r5, #0 - beq _0800CF7C - mov r1, sl - adds r0, r7, r1 - ldr r0, [r0] - ldrb r0, [r0, #0x1a] - adds r2, r5, #0 - eors r2, r0 - movs r0, #0x20 - adds r1, r6, #0 - str r3, [sp] - bl rfu_changeSendTarget - ldr r3, [sp] -_0800CF7C: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _0800CF36 -_0800CF86: - mov r3, sb - lsls r0, r3, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #3 - bls _0800CF10 -_0800CF90: - ldr r0, _0800CFE0 - ldr r0, [r0] - ldrb r0, [r0, #5] - cmp r0, #0 - beq _0800CFCC - movs r6, #0 -_0800CF9C: - ldr r1, _0800CFE4 - lsls r0, r6, #2 - adds r0, r0, r1 - ldr r2, [r0] - ldrh r0, [r2, #0x34] - movs r4, #0x80 - lsls r4, r4, #8 - adds r1, r4, #0 - ands r0, r1 - cmp r0, #0 - beq _0800CFC2 - ldr r1, _0800CFDC - ldrh r0, [r2, #0x36] - ldrh r1, [r1, #0x18] - cmp r0, r1 - bls _0800CFC2 - adds r0, r6, #0 - bl rfu_NI_stopReceivingData -_0800CFC2: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #3 - bls _0800CF9C -_0800CFCC: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800CFDC: .4byte gUnknown_30041E0 -_0800CFE0: .4byte gUnknown_3007630 -_0800CFE4: .4byte gUnknown_3007620 - thumb_func_end sub_0800CEF0 - - thumb_func_start sub_0800CFE8 -sub_0800CFE8: @ 0x0800CFE8 - push {lr} - ldr r1, _0800CFF8 - str r0, [r1, #0x44] - ldr r0, _0800CFFC - bl rfu_setMSCCallback - pop {r0} - bx r0 - .align 2, 0 -_0800CFF8: .4byte gUnknown_30041E0 -_0800CFFC: .4byte sub_0800C96C - thumb_func_end sub_0800CFE8 - - thumb_func_start sub_0800D000 -sub_0800D000: @ 0x0800D000 - ldr r1, _0800D008 - str r0, [r1, #0x40] - bx lr - .align 2, 0 -_0800D008: .4byte gUnknown_30041E0 - thumb_func_end sub_0800D000 - - thumb_func_start sub_0800D00C -sub_0800D00C: @ 0x0800D00C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - ldr r0, _0800D030 - ldrb r1, [r0, #9] - adds r3, r0, #0 - cmp r1, #0 - beq _0800D034 - cmp r4, #0 - bne _0800D034 - adds r0, #0x30 - ldrb r0, [r0] - cmp r0, #0 - beq _0800D034 - movs r0, #5 - b _0800D044 - .align 2, 0 -_0800D030: .4byte gUnknown_30041E0 -_0800D034: - ldr r2, _0800D04C - ldrh r1, [r2] - movs r0, #0 - strh r0, [r2] - strb r4, [r3, #9] - strh r5, [r3, #0x32] - strh r1, [r2] - movs r0, #0 -_0800D044: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0800D04C: .4byte 0x04000208 - thumb_func_end sub_0800D00C - - thumb_func_start sub_0800D050 -sub_0800D050: @ 0x0800D050 - push {lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, _0800D06C - ldr r0, [r0] - ldrb r1, [r0, #4] - ldrb r0, [r0, #5] - orrs r0, r1 - cmp r0, #0 - bne _0800D074 - ldr r0, _0800D070 - strh r2, [r0, #0x18] - movs r0, #0 - b _0800D084 - .align 2, 0 -_0800D06C: .4byte gUnknown_3007630 -_0800D070: .4byte gUnknown_30041E0 -_0800D074: - ldr r1, _0800D088 - movs r0, #6 - strh r0, [r1, #0x14] - movs r0, #0xf3 - movs r1, #1 - bl sub_0800CDC8 - movs r0, #6 -_0800D084: - pop {r1} - bx r1 - .align 2, 0 -_0800D088: .4byte gUnknown_30041E0 - thumb_func_end sub_0800D050 - - thumb_func_start sub_0800D08C -sub_0800D08C: @ 0x0800D08C - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r3, r2, #0 - ldr r1, _0800D0B4 - ldrb r0, [r1, #4] - subs r0, #9 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bhi _0800D0B8 - movs r0, #7 - strh r0, [r1, #0x14] - movs r0, #0xf3 - movs r1, #1 - bl sub_0800CDC8 - movs r0, #7 - b _0800D0C6 - .align 2, 0 -_0800D0B4: .4byte gUnknown_30041E0 -_0800D0B8: - cmp r2, #0 - beq _0800D0C2 - movs r0, #1 - strb r0, [r1, #0xb] - b _0800D0C4 -_0800D0C2: - strb r3, [r1, #0xb] -_0800D0C4: - movs r0, #0 -_0800D0C6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0800D08C - - thumb_func_start sub_0800D0CC -sub_0800D0CC: @ 0x0800D0CC - push {lr} - ldr r1, _0800D0E8 - ldrb r0, [r1, #2] - cmp r0, #0 - beq _0800D0E4 - ldrb r0, [r1, #2] - movs r0, #0 - strb r0, [r1, #2] - movs r0, #0x45 - movs r1, #0 - bl sub_0800CDC8 -_0800D0E4: - pop {r0} - bx r0 - .align 2, 0 -_0800D0E8: .4byte gUnknown_30041E0 - thumb_func_end sub_0800D0CC - - thumb_func_start sub_0800D0EC -sub_0800D0EC: @ 0x0800D0EC - push {lr} - ldr r1, _0800D100 - ldrb r0, [r1, #2] - cmp r0, #0 - bne _0800D104 - movs r0, #0x45 - movs r1, #0 - bl sub_0800CDC8 - b _0800D110 - .align 2, 0 -_0800D100: .4byte gUnknown_30041E0 -_0800D104: - ldrb r0, [r1, #2] - cmp r0, #1 - bne _0800D110 - ldrb r0, [r1, #2] - movs r0, #2 - strb r0, [r1, #2] -_0800D110: - pop {r0} - bx r0 - thumb_func_end sub_0800D0EC - - thumb_func_start sub_0800D114 -sub_0800D114: @ 0x0800D114 - push {lr} - ldr r0, _0800D134 - ldrb r1, [r0, #7] - adds r2, r0, #0 - cmp r1, #0 - beq _0800D17E - ldrb r0, [r2, #4] - subs r0, #5 - cmp r0, #6 - bhi _0800D17E - lsls r0, r0, #2 - ldr r1, _0800D138 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0800D134: .4byte gUnknown_30041E0 -_0800D138: .4byte _0800D13C -_0800D13C: @ jump table - .4byte _0800D158 @ case 0 - .4byte _0800D160 @ case 1 - .4byte _0800D16A @ case 2 - .4byte _0800D16A @ case 3 - .4byte _0800D170 @ case 4 - .4byte _0800D170 @ case 5 - .4byte _0800D176 @ case 6 -_0800D158: - movs r0, #3 - strb r0, [r2, #7] - movs r0, #9 - b _0800D17C -_0800D160: - movs r0, #2 - strb r0, [r2, #7] - movs r0, #1 - strh r0, [r2, #0x1a] - b _0800D17E -_0800D16A: - movs r0, #2 - strb r0, [r2, #7] - b _0800D17E -_0800D170: - movs r0, #0x28 - strh r0, [r2, #0x1a] - b _0800D17E -_0800D176: - movs r0, #0x28 - strh r0, [r2, #0x1a] - movs r0, #0xa -_0800D17C: - strb r0, [r2, #4] -_0800D17E: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0800D114 - - thumb_func_start sub_0800D184 -sub_0800D184: @ 0x0800D184 - push {r4, r5, lr} - adds r3, r0, #0 - movs r0, #0 - movs r4, #0 - movs r5, #0x46 -_0800D18E: - adds r2, r0, #1 - movs r1, #0x45 - muls r0, r5, r0 - adds r0, r0, r3 - adds r0, #0x45 -_0800D198: - strb r4, [r0] - subs r0, #1 - subs r1, #1 - cmp r1, #0 - bge _0800D198 - adds r0, r2, #0 - cmp r0, #0x13 - ble _0800D18E - movs r1, #0 - ldr r2, _0800D1D4 - adds r0, r3, r2 - ldrb r2, [r0] - strb r1, [r0] - movs r2, #0xaf - lsls r2, r2, #3 - adds r0, r3, r2 - ldrb r2, [r0] - strb r1, [r0] - ldr r2, _0800D1D8 - adds r0, r3, r2 - ldrb r2, [r0] - strb r1, [r0] - ldr r2, _0800D1DC - adds r0, r3, r2 - ldrb r2, [r0] - strb r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0800D1D4: .4byte 0x00000579 -_0800D1D8: .4byte 0x0000057A -_0800D1DC: .4byte 0x0000057B - thumb_func_end sub_0800D184 - - thumb_func_start sub_0800D1E0 -sub_0800D1E0: @ 0x0800D1E0 - push {r4, lr} - adds r3, r0, #0 - movs r1, #0 - movs r4, #0 -_0800D1E8: - lsls r0, r1, #3 - adds r2, r1, #1 - subs r0, r0, r1 - movs r1, #0xd - lsls r0, r0, #1 - adds r0, r0, r3 - adds r0, #0xd -_0800D1F6: - strb r4, [r0] - subs r0, #1 - subs r1, #1 - cmp r1, #0 - bge _0800D1F6 - adds r1, r2, #0 - cmp r1, #0x27 - ble _0800D1E8 - movs r1, #0 - ldr r2, _0800D230 - adds r0, r3, r2 - ldrb r2, [r0] - strb r1, [r0] - movs r2, #0x8c - lsls r2, r2, #2 - adds r0, r3, r2 - ldrb r2, [r0] - strb r1, [r0] - ldr r2, _0800D234 - adds r0, r3, r2 - ldrb r2, [r0] - strb r1, [r0] - ldr r2, _0800D238 - adds r0, r3, r2 - ldrb r2, [r0] - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800D230: .4byte 0x00000231 -_0800D234: .4byte 0x00000232 -_0800D238: .4byte 0x00000233 - thumb_func_end sub_0800D1E0 - - thumb_func_start sub_0800D23C -sub_0800D23C: @ 0x0800D23C - push {r4, lr} - adds r3, r0, #0 - movs r1, #0 - movs r4, #0 -_0800D244: - lsls r0, r1, #8 - adds r2, r1, #1 - movs r1, #0xff - adds r0, r0, r3 - adds r0, #0xff -_0800D24E: - strb r4, [r0] - subs r0, #1 - subs r1, #1 - cmp r1, #0 - bge _0800D24E - adds r1, r2, #0 - cmp r1, #1 - ble _0800D244 - movs r1, #0 - ldr r2, _0800D288 - adds r0, r3, r2 - ldrb r2, [r0] - strb r1, [r0] - movs r2, #0x80 - lsls r2, r2, #2 - adds r0, r3, r2 - ldrb r2, [r0] - strb r1, [r0] - ldr r2, _0800D28C - adds r0, r3, r2 - ldrb r2, [r0] - strb r1, [r0] - ldr r2, _0800D290 - adds r0, r3, r2 - ldrb r2, [r0] - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800D288: .4byte 0x00000201 -_0800D28C: .4byte 0x00000202 -_0800D290: .4byte 0x00000203 - thumb_func_end sub_0800D23C - - thumb_func_start sub_0800D294 -sub_0800D294: @ 0x0800D294 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r6, r1, #0 - ldr r1, _0800D32C - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, #0x13 - bhi _0800D334 - ldr r0, _0800D330 - ldrh r1, [r0] - adds r7, r1, #0 - movs r1, #0 - strh r1, [r0] - movs r3, #0 - movs r2, #0 -_0800D2B2: - adds r1, r6, r2 - ldrb r0, [r1] - cmp r0, #0 - bne _0800D2C6 - ldrb r0, [r1, #1] - cmp r0, #0 - bne _0800D2C6 - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 -_0800D2C6: - adds r2, #0xe - cmp r2, #0x45 - ble _0800D2B2 - cmp r3, #5 - beq _0800D324 - movs r2, #0 - movs r0, #0xaf - lsls r0, r0, #3 - adds r3, r5, r0 - movs r4, #0x46 -_0800D2DA: - ldrb r0, [r3] - adds r1, r0, #0 - muls r1, r4, r1 - adds r1, r2, r1 - adds r1, r5, r1 - adds r0, r6, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r2, #1 - cmp r2, #0x45 - ble _0800D2DA - movs r1, #0xaf - lsls r1, r1, #3 - adds r4, r5, r1 - ldrb r0, [r4] - adds r0, #1 - ldrb r1, [r4] - strb r0, [r4] - ldrb r0, [r4] - movs r1, #0x14 - bl __umodsi3 - ldrb r1, [r4] - strb r0, [r4] - ldr r0, _0800D32C - adds r1, r5, r0 - ldrb r0, [r1] - adds r0, #1 - ldrb r2, [r1] - strb r0, [r1] - movs r1, #0 - adds r0, r6, #0 - adds r0, #0x45 -_0800D31C: - strb r1, [r0] - subs r0, #1 - cmp r0, r6 - bge _0800D31C -_0800D324: - ldr r0, _0800D330 - strh r7, [r0] - b _0800D33E - .align 2, 0 -_0800D32C: .4byte 0x0000057A -_0800D330: .4byte 0x04000208 -_0800D334: - ldr r1, _0800D344 - adds r0, r5, r1 - ldrb r1, [r0] - movs r1, #1 - strb r1, [r0] -_0800D33E: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800D344: .4byte 0x0000057B - thumb_func_end sub_0800D294 - - thumb_func_start sub_0800D348 -sub_0800D348: @ 0x0800D348 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r5, r1, #0 - ldr r1, _0800D3D8 - adds r0, r6, r1 - ldrb r0, [r0] - cmp r0, #0x27 - bhi _0800D3E0 - ldr r1, _0800D3DC - ldrh r0, [r1] - adds r7, r0, #0 - movs r0, #0 - strh r0, [r1] - movs r2, #0 - ldrb r0, [r5] - cmp r0, #0 - bne _0800D378 -_0800D36A: - adds r2, #1 - cmp r2, #0xd - bgt _0800D378 - adds r0, r5, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _0800D36A -_0800D378: - cmp r2, #0xe - beq _0800D3D0 - movs r2, #0 - movs r0, #0x8c - lsls r0, r0, #2 - adds r3, r6, r0 -_0800D384: - ldrb r1, [r3] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #1 - adds r0, r2, r0 - adds r0, r6, r0 - adds r1, r5, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, #0xd - ble _0800D384 - movs r1, #0x8c - lsls r1, r1, #2 - adds r4, r6, r1 - ldrb r0, [r4] - adds r0, #1 - ldrb r1, [r4] - strb r0, [r4] - ldrb r0, [r4] - movs r1, #0x28 - bl __umodsi3 - ldrb r1, [r4] - strb r0, [r4] - ldr r0, _0800D3D8 - adds r1, r6, r0 - ldrb r0, [r1] - adds r0, #1 - ldrb r2, [r1] - strb r0, [r1] - movs r1, #0 - adds r0, r5, #0 - adds r0, #0xd -_0800D3C8: - strb r1, [r0] - subs r0, #1 - cmp r0, r5 - bge _0800D3C8 -_0800D3D0: - ldr r0, _0800D3DC - strh r7, [r0] - b _0800D3EA - .align 2, 0 -_0800D3D8: .4byte 0x00000232 -_0800D3DC: .4byte 0x04000208 -_0800D3E0: - ldr r1, _0800D3F0 - adds r0, r6, r1 - ldrb r1, [r0] - movs r1, #1 - strb r1, [r0] -_0800D3EA: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800D3F0: .4byte 0x00000233 - thumb_func_end sub_0800D348 - - thumb_func_start sub_0800D3F4 -sub_0800D3F4: @ 0x0800D3F4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - adds r3, r1, #0 - ldr r1, _0800D43C - ldrh r0, [r1] - mov r8, r0 - movs r0, #0 - strh r0, [r1] - movs r1, #0xaf - lsls r1, r1, #3 - adds r0, r5, r1 - ldr r7, _0800D440 - adds r4, r5, r7 - ldrb r1, [r0] - ldrb r0, [r4] - cmp r1, r0 - beq _0800D424 - ldr r1, _0800D444 - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _0800D448 -_0800D424: - movs r1, #0 - adds r0, r3, #0 - adds r0, #0x45 -_0800D42A: - strb r1, [r0] - subs r0, #1 - cmp r0, r3 - bge _0800D42A - ldr r0, _0800D43C - mov r7, r8 - strh r7, [r0] - movs r0, #0 - b _0800D490 - .align 2, 0 -_0800D43C: .4byte 0x04000208 -_0800D440: .4byte 0x00000579 -_0800D444: .4byte 0x0000057B -_0800D448: - movs r2, #0 - movs r6, #0x46 -_0800D44C: - adds r1, r3, r2 - ldrb r0, [r4] - adds r7, r0, #0 - muls r7, r6, r7 - adds r0, r7, #0 - adds r0, r2, r0 - adds r0, r5, r0 - ldrb r0, [r0] - strb r0, [r1] - adds r2, #1 - cmp r2, #0x45 - ble _0800D44C - ldr r0, _0800D49C - adds r4, r5, r0 - ldrb r0, [r4] - adds r0, #1 - ldrb r1, [r4] - strb r0, [r4] - ldrb r0, [r4] - movs r1, #0x14 - bl __umodsi3 - ldrb r1, [r4] - strb r0, [r4] - ldr r7, _0800D4A0 - adds r1, r5, r7 - ldrb r0, [r1] - subs r0, #1 - ldrb r2, [r1] - strb r0, [r1] - ldr r0, _0800D4A4 - mov r1, r8 - strh r1, [r0] - movs r0, #1 -_0800D490: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0800D49C: .4byte 0x00000579 -_0800D4A0: .4byte 0x0000057A -_0800D4A4: .4byte 0x04000208 - thumb_func_end sub_0800D3F4 - - thumb_func_start sub_0800D4A8 -sub_0800D4A8: @ 0x0800D4A8 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r6, r1, #0 - movs r1, #0x8c - lsls r1, r1, #2 - adds r0, r5, r1 - adds r1, #1 - adds r4, r5, r1 - ldrb r1, [r0] - ldrb r0, [r4] - cmp r1, r0 - beq _0800D4CC - ldr r1, _0800D4D0 - adds r0, r5, r1 - ldrb r0, [r0] - adds r2, r0, #0 - cmp r2, #0 - beq _0800D4D4 -_0800D4CC: - movs r0, #0 - b _0800D520 - .align 2, 0 -_0800D4D0: .4byte 0x00000233 -_0800D4D4: - ldr r1, _0800D528 - ldrh r0, [r1] - adds r7, r0, #0 - strh r2, [r1] - movs r3, #0 -_0800D4DE: - adds r2, r6, r3 - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #1 - adds r0, r3, r0 - adds r0, r5, r0 - ldrb r0, [r0] - strb r0, [r2] - adds r3, #1 - cmp r3, #0xd - ble _0800D4DE - ldr r0, _0800D52C - adds r4, r5, r0 - ldrb r0, [r4] - adds r0, #1 - ldrb r1, [r4] - strb r0, [r4] - ldrb r0, [r4] - movs r1, #0x28 - bl __umodsi3 - ldrb r1, [r4] - strb r0, [r4] - ldr r0, _0800D530 - adds r1, r5, r0 - ldrb r0, [r1] - subs r0, #1 - ldrb r2, [r1] - strb r0, [r1] - ldr r0, _0800D528 - strh r7, [r0] - movs r0, #1 -_0800D520: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0800D528: .4byte 0x04000208 -_0800D52C: .4byte 0x00000231 -_0800D530: .4byte 0x00000232 - thumb_func_end sub_0800D4A8 - - thumb_func_start sub_0800D534 -sub_0800D534: @ 0x0800D534 - push {r4, lr} - adds r2, r0, #0 - adds r4, r1, #0 - ldrb r0, [r4, #1] - cmp r0, #0 - bne _0800D54A - adds r0, r2, #0 - movs r1, #0 - bl sub_0800D594 - b _0800D58C -_0800D54A: - movs r3, #0 -_0800D54C: - ldrb r1, [r2, #0x1c] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #1 - adds r0, r3, r0 - adds r0, r2, r0 - adds r1, r4, r3 - ldrb r1, [r1] - strb r1, [r0] - adds r3, #1 - cmp r3, #0xd - ble _0800D54C - ldrb r0, [r2, #0x1c] - adds r0, #1 - ldrb r1, [r2, #0x1c] - strb r0, [r2, #0x1c] - ldrb r1, [r2, #0x1c] - movs r0, #1 - ands r0, r1 - ldrb r1, [r2, #0x1c] - strb r0, [r2, #0x1c] - ldrb r0, [r2, #0x1e] - cmp r0, #1 - bhi _0800D586 - ldrb r0, [r2, #0x1e] - adds r0, #1 - ldrb r1, [r2, #0x1e] - strb r0, [r2, #0x1e] - b _0800D58C -_0800D586: - ldrb r0, [r2, #0x1c] - ldrb r1, [r2, #0x1d] - strb r0, [r2, #0x1d] -_0800D58C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0800D534 - - thumb_func_start sub_0800D594 -sub_0800D594: @ 0x0800D594 - push {r4, r5, lr} - adds r3, r0, #0 - adds r5, r1, #0 - ldrb r0, [r3, #0x1e] - cmp r0, #0 - bne _0800D5A4 - movs r0, #0 - b _0800D5DE -_0800D5A4: - cmp r5, #0 - beq _0800D5C2 - movs r4, #0 -_0800D5AA: - adds r2, r5, r4 - ldrb r1, [r3, #0x1d] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #1 - adds r0, r4, r0 - adds r0, r3, r0 - ldrb r0, [r0] - strb r0, [r2] - adds r4, #1 - cmp r4, #0xd - ble _0800D5AA -_0800D5C2: - ldrb r0, [r3, #0x1d] - adds r0, #1 - ldrb r1, [r3, #0x1d] - strb r0, [r3, #0x1d] - ldrb r1, [r3, #0x1d] - movs r0, #1 - ands r0, r1 - ldrb r1, [r3, #0x1d] - strb r0, [r3, #0x1d] - ldrb r0, [r3, #0x1e] - subs r0, #1 - ldrb r1, [r3, #0x1e] - strb r0, [r3, #0x1e] - movs r0, #1 -_0800D5DE: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_0800D594 - - thumb_func_start sub_0800D5E4 -sub_0800D5E4: @ 0x0800D5E4 - push {r4, r5, lr} - adds r3, r0, #0 - adds r5, r1, #0 - ldr r1, _0800D638 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, #1 - bhi _0800D63C - movs r2, #0 - movs r0, #0x80 - lsls r0, r0, #2 - adds r4, r3, r0 -_0800D5FC: - ldrb r0, [r4] - lsls r0, r0, #8 - adds r0, r2, r0 - adds r0, r3, r0 - adds r1, r5, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, #0xff - ble _0800D5FC - movs r0, #0x80 - lsls r0, r0, #2 - adds r1, r3, r0 - ldrb r0, [r1] - adds r0, #1 - ldrb r2, [r1] - strb r0, [r1] - ldrb r2, [r1] - movs r0, #1 - ands r0, r2 - ldrb r2, [r1] - strb r0, [r1] - ldr r0, _0800D638 - adds r1, r3, r0 - ldrb r0, [r1] - adds r0, #1 - ldrb r2, [r1] - strb r0, [r1] - b _0800D646 - .align 2, 0 -_0800D638: .4byte 0x00000202 -_0800D63C: - ldr r1, _0800D64C - adds r0, r3, r1 - ldrb r1, [r0] - movs r1, #1 - strb r1, [r0] -_0800D646: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0800D64C: .4byte 0x00000203 - thumb_func_end sub_0800D5E4 - - thumb_func_start sub_0800D650 -sub_0800D650: @ 0x0800D650 - push {r4, r5, lr} - adds r3, r0, #0 - adds r5, r1, #0 - movs r1, #0x80 - lsls r1, r1, #2 - adds r0, r3, r1 - adds r1, #1 - adds r4, r3, r1 - ldrb r1, [r0] - ldrb r0, [r4] - cmp r1, r0 - beq _0800D672 - ldr r1, _0800D678 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _0800D67C -_0800D672: - movs r0, #0 - b _0800D6B6 - .align 2, 0 -_0800D678: .4byte 0x00000203 -_0800D67C: - movs r2, #0 -_0800D67E: - adds r0, r5, r2 - ldrb r1, [r4] - lsls r1, r1, #8 - adds r1, r2, r1 - adds r1, r3, r1 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, #0xff - ble _0800D67E - ldr r0, _0800D6BC - adds r1, r3, r0 - ldrb r0, [r1] - adds r0, #1 - ldrb r2, [r1] - strb r0, [r1] - ldrb r2, [r1] - movs r0, #1 - ands r0, r2 - ldrb r2, [r1] - strb r0, [r1] - ldr r0, _0800D6C0 - adds r1, r3, r0 - ldrb r0, [r1] - subs r0, #1 - ldrb r2, [r1] - strb r0, [r1] - movs r0, #1 -_0800D6B6: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0800D6BC: .4byte 0x00000201 -_0800D6C0: .4byte 0x00000202 - thumb_func_end sub_0800D650 - - thumb_func_start sub_0800D6C4 -sub_0800D6C4: @ 0x0800D6C4 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r1, #0 - movs r5, #0 - cmp r1, #1 - beq _0800D702 - cmp r1, #1 - bgt _0800D6DE - cmp r1, #0 - beq _0800D6E8 - b _0800D776 -_0800D6DE: - cmp r0, #2 - beq _0800D722 - cmp r0, #3 - beq _0800D742 - b _0800D776 -_0800D6E8: - movs r4, #0 -_0800D6EA: - adds r0, r6, r4 - adds r1, r4, #1 - strb r1, [r0] - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r4, r1, #0 - cmp r4, #0xc7 - ble _0800D6EA - b _0800D73C -_0800D702: - movs r4, #0 - adds r2, r6, #0 - adds r2, #0xc8 -_0800D708: - adds r0, r6, r4 - adds r1, r4, #1 - strb r1, [r0] - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r4, r1, #0 - cmp r4, #0x63 - ble _0800D708 - strh r5, [r2] - b _0800D776 -_0800D722: - movs r4, #0 -_0800D724: - bl Random - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r6, r4 - strb r0, [r1] - adds r0, r5, r0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r4, #1 - cmp r4, #0xc7 - ble _0800D724 -_0800D73C: - adds r0, r6, r4 - strh r5, [r0] - b _0800D776 -_0800D742: - movs r4, #0 - ldr r3, _0800D77C - ldrb r1, [r3] - ldrb r0, [r3] - adds r7, r0, #1 - adds r2, r1, #1 - movs r0, #0xff - mov ip, r0 -_0800D752: - adds r0, r6, r4 - adds r1, r4, #1 - strb r2, [r0] - adds r0, r4, r7 - mov r4, ip - ands r0, r4 - adds r0, r5, r0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r2, #1 - adds r4, r1, #0 - cmp r1, #0xc7 - ble _0800D752 - adds r0, r6, r1 - strh r5, [r0] - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] -_0800D776: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800D77C: .4byte gUnknown_3000D74 - thumb_func_end sub_0800D6C4 - - thumb_func_start PkmnStrToASCII -PkmnStrToASCII: @ 0x0800D780 - push {r4, r5, lr} - adds r4, r0, #0 - movs r3, #0 - ldrb r0, [r1] - cmp r0, #0xff - beq _0800D7A4 - ldr r5, _0800D7B0 - adds r2, r1, #0 -_0800D790: - adds r1, r4, r3 - ldrb r0, [r2] - adds r0, r0, r5 - ldrb r0, [r0] - strb r0, [r1] - adds r2, #1 - adds r3, #1 - ldrb r0, [r2] - cmp r0, #0xff - bne _0800D790 -_0800D7A4: - adds r1, r4, r3 - movs r0, #0 - strb r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0800D7B0: .4byte gUnknown_82C01C0 - thumb_func_end PkmnStrToASCII - - thumb_func_start ASCIIToPkmnStr -ASCIIToPkmnStr: @ 0x0800D7B4 - push {r4, r5, lr} - adds r4, r0, #0 - movs r3, #0 - ldrb r0, [r1] - cmp r0, #0 - beq _0800D7D8 - ldr r5, _0800D7E4 - adds r2, r1, #0 -_0800D7C4: - adds r1, r4, r3 - ldrb r0, [r2] - adds r0, r0, r5 - ldrb r0, [r0] - strb r0, [r1] - adds r2, #1 - adds r3, #1 - ldrb r0, [r2] - cmp r0, #0 - bne _0800D7C4 -_0800D7D8: - adds r1, r4, r3 - movs r0, #0xff - strb r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0800D7E4: .4byte gUnknown_82C00C0 - thumb_func_end ASCIIToPkmnStr - - thumb_func_start sub_0800D7E8 -sub_0800D7E8: @ 0x0800D7E8 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r6, #0 - ldr r0, _0800D810 - ldr r4, [r0] - ldrb r2, [r4, #2] - ldrb r1, [r4] - adds r7, r0, #0 - cmp r1, #1 - bne _0800D83E - movs r3, #0 - ands r1, r2 - cmp r1, #0 - beq _0800D81A - cmp r5, #1 - bne _0800D814 - ldrb r0, [r4, #0xa] - b _0800D858 - .align 2, 0 -_0800D810: .4byte gUnknown_3007630 -_0800D814: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_0800D81A: - lsrs r2, r2, #1 - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #3 - bhi _0800D856 - movs r0, #1 - ands r0, r2 - cmp r0, #0 - beq _0800D81A - adds r0, r6, #1 - cmp r5, r0 - bne _0800D814 -_0800D834: - ldr r0, [r7] - adds r0, #0xa - adds r0, r0, r3 - ldrb r0, [r0] - b _0800D858 -_0800D83E: - movs r3, #0 - movs r1, #1 -_0800D842: - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _0800D834 - lsrs r2, r2, #1 - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #3 - bls _0800D842 -_0800D856: - movs r0, #0 -_0800D858: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0800D7E8 - - thumb_func_start sub_0800D860 -sub_0800D860: @ 0x0800D860 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sb, r1 - movs r4, #0 - ldr r0, _0800D93C - mov r8, r0 - adds r6, r7, #2 - ldr r0, [r0] - adds r5, r0, #0 - adds r5, #0xa -_0800D87E: - adds r0, r6, r4 - adds r1, r5, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r4, #1 - cmp r4, #1 - ble _0800D87E - movs r4, #0 - lsls r2, r2, #7 - mov ip, r2 - adds r1, r7, #4 -_0800D894: - adds r0, r1, r4 - strb r3, [r0] - asrs r3, r3, #8 - adds r4, #1 - cmp r4, #3 - ble _0800D894 - mov r1, r8 - ldr r0, [r1] - ldrb r0, [r0, #8] - movs r6, #1 - movs r1, #1 - ands r1, r0 - ldrb r2, [r7, #0xb] - movs r5, #2 - rsbs r5, r5, #0 - adds r0, r5, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r7, #0xb] - movs r4, #0x7f - mov r1, sb - ands r1, r4 - ldrb r2, [r7, #0xa] - movs r0, #0x80 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - ands r0, r4 - mov r1, ip - orrs r0, r1 - strb r0, [r7, #0xa] - ldrb r0, [r7] - movs r1, #0x10 - rsbs r1, r1, #0 - ands r1, r0 - orrs r1, r6 - ldrb r2, [r7, #1] - movs r0, #0x3d - rsbs r0, r0, #0 - ands r0, r2 - movs r2, #0xc - orrs r0, r2 - strb r0, [r7, #1] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r1, r0 - subs r0, #0x10 - ands r1, r0 - subs r0, #0x20 - ands r1, r0 - strb r1, [r7] - ldr r0, _0800D940 - bl FlagGet - lsls r0, r0, #7 - ldrb r1, [r7] - ands r4, r1 - orrs r4, r0 - strb r4, [r7] - bl IsNationalPokedexEnabled - ands r0, r6 - ldrb r1, [r7, #1] - ands r5, r1 - orrs r5, r0 - strb r5, [r7, #1] - ldr r0, _0800D944 - bl FlagGet - ands r6, r0 - lsls r6, r6, #1 - ldrb r1, [r7, #1] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r6 - strb r0, [r7, #1] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800D93C: .4byte gUnknown_3005AF0 -_0800D940: .4byte 0x0000087F -_0800D944: .4byte 0x00000864 - thumb_func_end sub_0800D860 - - thumb_func_start sub_0800D948 -sub_0800D948: @ 0x0800D948 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - mov r8, r1 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - ldr r0, _0800D99C - ldrb r0, [r0, #6] - cmp r0, #1 - bne _0800D9A4 - movs r0, #1 - mov sb, r0 - ldr r6, _0800D9A0 - ldr r0, [r6] - lsls r4, r5, #5 - adds r0, r0, r4 - ldrh r0, [r0, #0x18] - bl sub_0800FF54 - cmp r0, #0 - beq _0800D984 - ldr r1, [r6] - ldrb r0, [r1, #7] - asrs r0, r5 - mov r2, sb - ands r0, r2 - cmp r0, #0 - bne _0800D9BC -_0800D984: - adds r0, r7, #0 - movs r1, #0 - movs r2, #0xd - bl memset - mov r0, r8 - movs r1, #0 - movs r2, #8 - bl memset - b _0800D9F0 - .align 2, 0 -_0800D99C: .4byte gUnknown_30041E0 -_0800D9A0: .4byte gUnknown_3007630 -_0800D9A4: - movs r0, #0 - mov sb, r0 - ldr r6, _0800D9D8 - ldr r0, [r6] - lsls r4, r5, #5 - adds r0, r0, r4 - ldrh r0, [r0, #0x18] - bl sub_0800FF54 - cmp r0, #0 - beq _0800D9DC - ldr r1, [r6] -_0800D9BC: - adds r1, r4, r1 - adds r1, #0x1a - adds r0, r7, #0 - movs r2, #0xd - bl memcpy - ldr r1, [r6] - adds r1, r4, r1 - adds r1, #0x29 - mov r0, r8 - movs r2, #8 - bl memcpy - b _0800D9F0 - .align 2, 0 -_0800D9D8: .4byte gUnknown_3007630 -_0800D9DC: - adds r0, r7, #0 - movs r1, #0 - movs r2, #0xd - bl memset - mov r0, r8 - movs r1, #0 - movs r2, #8 - bl memset -_0800D9F0: - mov r0, sb - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0800D948 - - thumb_func_start sub_0800DA00 -sub_0800DA00: @ 0x0800DA00 - push {r4, r5, r6, r7, lr} - adds r3, r0, #0 - adds r5, r1, #0 - lsls r2, r2, #0x18 - movs r7, #0 - ldr r6, _0800DA38 - ldr r0, [r6] - lsrs r4, r2, #0x13 - adds r2, r0, r4 - ldrh r1, [r2, #0x18] - ldr r0, _0800DA3C - cmp r1, r0 - bne _0800DA40 - adds r1, r2, #0 - adds r1, #0x1a - adds r0, r3, #0 - movs r2, #0xd - bl memcpy - ldr r1, [r6] - adds r1, r4, r1 - adds r1, #0x29 - adds r0, r5, #0 - movs r2, #8 - bl memcpy - movs r7, #1 - b _0800DA54 - .align 2, 0 -_0800DA38: .4byte gUnknown_3007630 -_0800DA3C: .4byte 0x00007F7F -_0800DA40: - adds r0, r3, #0 - movs r1, #0 - movs r2, #0xd - bl memset - adds r0, r5, #0 - movs r1, #0 - movs r2, #8 - bl memset -_0800DA54: - adds r0, r7, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_0800DA00 - - thumb_func_start sub_0800DA5C -sub_0800DA5C: @ 0x0800DA5C - push {r4, lr} - adds r4, r1, #0 - ldr r1, _0800DA78 - movs r2, #0xd - bl memcpy - ldr r1, _0800DA7C - adds r0, r4, #0 - movs r2, #8 - bl memcpy - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800DA78: .4byte gUnknown_20227CC -_0800DA7C: .4byte gUnknown_20227DA - thumb_func_end sub_0800DA5C - - thumb_func_start CreateWirelessStatusIndicatorSprite -CreateWirelessStatusIndicatorSprite: @ 0x0800DA80 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r2, r1, #0x18 - cmp r3, #0 - bne _0800DA96 - cmp r2, #0 - bne _0800DA96 - movs r3, #0xe7 - movs r2, #8 -_0800DA96: - ldr r0, _0800DAD8 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, #1 - bne _0800DAF0 - ldr r0, _0800DADC - adds r1, r3, #0 - movs r3, #0 - bl CreateSprite - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _0800DAE0 - lsls r4, r5, #4 - adds r4, r4, r5 - lsls r4, r4, #2 - adds r4, r4, r0 - ldr r0, _0800DAE4 - strh r0, [r4, #0x3c] - ldr r0, _0800DAE8 - ldrh r0, [r0, #6] - bl GetSpriteTileStartByTag - strh r0, [r4, #0x3a] - adds r4, #0x3e - ldrb r0, [r4] - movs r1, #4 - orrs r0, r1 - strb r0, [r4] - ldr r0, _0800DAEC - strb r5, [r0] - b _0800DB36 - .align 2, 0 -_0800DAD8: .4byte gUnknown_3007630 -_0800DADC: .4byte gUnknown_82C0340 -_0800DAE0: .4byte gUnknown_20205AC -_0800DAE4: .4byte 0x00001234 -_0800DAE8: .4byte gUnknown_82C0330 -_0800DAEC: .4byte gUnknown_20227C8 -_0800DAF0: - ldr r0, _0800DB3C - adds r1, r3, #0 - movs r3, #0 - bl CreateSprite - ldr r4, _0800DB40 - strb r0, [r4] - ldr r5, _0800DB44 - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _0800DB48 - strh r1, [r0, #0x3c] - ldr r0, _0800DB4C - ldrh r0, [r0, #6] - bl GetSpriteTileStartByTag - ldrb r2, [r4] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r5 - strh r0, [r1, #0x3a] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_0800DB36: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0800DB3C: .4byte gUnknown_82C0340 -_0800DB40: .4byte gUnknown_20227C8 -_0800DB44: .4byte gUnknown_20205AC -_0800DB48: .4byte 0x00001234 -_0800DB4C: .4byte gUnknown_82C0330 - thumb_func_end CreateWirelessStatusIndicatorSprite - - thumb_func_start DestroyWirelessStatusIndicatorSprite -DestroyWirelessStatusIndicatorSprite: @ 0x0800DB50 - push {r4, lr} - ldr r4, _0800DB9C - ldr r3, _0800DBA0 - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, r0, r4 - movs r0, #0x3c - ldrsh r1, [r2, r0] - ldr r0, _0800DBA4 - cmp r1, r0 - bne _0800DB96 - movs r0, #0 - strh r0, [r2, #0x3c] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - ldr r3, _0800DBA8 - movs r0, #0x84 - lsls r0, r0, #3 - adds r3, r3, r0 - ldr r0, _0800DBAC - ldr r1, [r0] - ldr r2, [r0, #4] - str r1, [r3] - str r2, [r3, #4] - ldr r1, _0800DBB0 - movs r2, #4 - bl CpuSet -_0800DB96: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800DB9C: .4byte gUnknown_20205AC -_0800DBA0: .4byte gUnknown_20227C8 -_0800DBA4: .4byte 0x00001234 -_0800DBA8: .4byte gUnknown_3002360 -_0800DBAC: .4byte gUnknown_82BF2F8 -_0800DBB0: .4byte 0x070003E8 - thumb_func_end DestroyWirelessStatusIndicatorSprite - - thumb_func_start LoadWirelessStatusIndicatorSpriteGfx -LoadWirelessStatusIndicatorSpriteGfx: @ 0x0800DBB4 - push {r4, lr} - ldr r4, _0800DBE0 - ldrh r0, [r4, #6] - bl GetSpriteTileStartByTag - lsls r0, r0, #0x10 - ldr r1, _0800DBE4 - cmp r0, r1 - bne _0800DBCC - adds r0, r4, #0 - bl LoadCompressedSpriteSheet -_0800DBCC: - ldr r0, _0800DBE8 - bl LoadSpritePalette - ldr r1, _0800DBEC - movs r0, #0xff - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800DBE0: .4byte gUnknown_82C0330 -_0800DBE4: .4byte 0xFFFF0000 -_0800DBE8: .4byte gUnknown_82C0338 -_0800DBEC: .4byte gUnknown_20227C8 - thumb_func_end LoadWirelessStatusIndicatorSpriteGfx - - thumb_func_start sub_0800DBF0 -sub_0800DBF0: @ 0x0800DBF0 - push {r4, lr} - ldr r1, _0800DC10 - ldr r0, [r1] - ldrb r2, [r0, #2] - movs r3, #0 - movs r4, #1 -_0800DBFC: - adds r0, r2, #0 - ands r0, r4 - cmp r0, #0 - beq _0800DC14 - ldr r0, [r1] - adds r0, #0xa - adds r0, r0, r3 - ldrb r0, [r0] - b _0800DC22 - .align 2, 0 -_0800DC10: .4byte gUnknown_3007630 -_0800DC14: - lsrs r2, r2, #1 - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #3 - bls _0800DBFC - movs r0, #0 -_0800DC22: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0800DBF0 - - thumb_func_start sub_0800DC28 -sub_0800DC28: @ 0x0800DC28 - push {lr} - adds r2, r0, #0 - movs r3, #0x32 - ldrsh r0, [r2, r3] - cmp r0, r1 - beq _0800DC3C - movs r0, #0 - strh r1, [r2, #0x32] - strh r0, [r2, #0x34] - strh r0, [r2, #0x36] -_0800DC3C: - pop {r0} - bx r0 - thumb_func_end sub_0800DC28 - - thumb_func_start sub_0800DC40 -sub_0800DC40: @ 0x0800DC40 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r1, _0800DC84 - ldrb r0, [r1] - cmp r0, #0xff - bne _0800DC50 - b _0800DE12 -_0800DC50: - ldr r2, _0800DC88 - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, r0, r2 - movs r0, #0x3c - ldrsh r1, [r2, r0] - ldr r0, _0800DC8C - cmp r1, r0 - beq _0800DC68 - b _0800DE12 -_0800DC68: - adds r6, r2, #0 - movs r5, #0xff - movs r4, #0 - ldr r0, _0800DC90 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, #1 - bne _0800DCC2 - adds r7, r6, #0 - adds r7, #0x28 - movs r1, #0x29 - adds r1, r1, r6 - mov r8, r1 - b _0800DCB2 - .align 2, 0 -_0800DC84: .4byte gUnknown_20227C8 -_0800DC88: .4byte gUnknown_20205AC -_0800DC8C: .4byte 0x00001234 -_0800DC90: .4byte gUnknown_3007630 -_0800DC94: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl sub_0800D7E8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r5, r0 - blo _0800DCB2 - adds r0, r4, #0 - bl sub_0800D7E8 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_0800DCB2: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, #1 - cmp r4, r0 - blt _0800DC94 - b _0800DCD4 -_0800DCC2: - bl sub_0800DBF0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r7, r6, #0 - adds r7, #0x28 - movs r2, #0x29 - adds r2, r2, r6 - mov r8, r2 -_0800DCD4: - bl sub_08011D10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0800DCE4 - movs r0, #4 - b _0800DD12 -_0800DCE4: - cmp r5, #0x18 - bhi _0800DCEC - movs r0, #3 - b _0800DD12 -_0800DCEC: - adds r0, r5, #0 - subs r0, #0x19 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x65 - bhi _0800DCFC - movs r0, #2 - b _0800DD12 -_0800DCFC: - adds r0, r5, #0 - subs r0, #0x7f - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x65 - bhi _0800DD0C - movs r0, #1 - b _0800DD12 -_0800DD0C: - cmp r5, #0xe4 - bls _0800DD14 - movs r0, #0 -_0800DD12: - strh r0, [r6, #0x2e] -_0800DD14: - movs r3, #0x2e - ldrsh r1, [r6, r3] - movs r2, #0x30 - ldrsh r0, [r6, r2] - cmp r1, r0 - beq _0800DD2A - adds r0, r6, #0 - bl sub_0800DC28 - ldrh r0, [r6, #0x2e] - strh r0, [r6, #0x30] -_0800DD2A: - movs r0, #0x32 - ldrsh r1, [r6, r0] - ldr r2, [r6, #8] - lsls r1, r1, #2 - adds r1, r1, r2 - movs r3, #0x36 - ldrsh r0, [r6, r3] - ldr r1, [r1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - lsls r0, r0, #0xa - lsrs r0, r0, #0x1a - movs r3, #0x34 - ldrsh r1, [r6, r3] - cmp r0, r1 - bge _0800DD78 - ldrh r0, [r6, #0x36] - adds r0, #1 - movs r3, #0 - strh r0, [r6, #0x36] - strh r3, [r6, #0x34] - movs r1, #0x32 - ldrsh r0, [r6, r1] - lsls r0, r0, #2 - adds r0, r0, r2 - movs r2, #0x36 - ldrsh r1, [r6, r2] - ldr r0, [r0] - lsls r1, r1, #2 - adds r1, r1, r0 - movs r0, #0 - ldrsh r1, [r1, r0] - movs r0, #2 - rsbs r0, r0, #0 - cmp r1, r0 - bne _0800DD7E - strh r3, [r6, #0x36] - b _0800DD7E -_0800DD78: - ldrh r0, [r6, #0x34] - adds r0, #1 - strh r0, [r6, #0x34] -_0800DD7E: - ldr r4, _0800DE1C - movs r1, #0x84 - lsls r1, r1, #3 - adds r0, r4, r1 - ldr r1, _0800DE20 - ldr r2, [r1, #4] - ldr r1, [r1] - str r1, [r0] - str r2, [r0, #4] - movs r3, #0x20 - ldrsh r2, [r6, r3] - movs r1, #0 - ldrsb r1, [r7, r1] - adds r2, r2, r1 - ldr r1, _0800DE24 - adds r5, r4, r1 - ldr r3, _0800DE28 - adds r1, r3, #0 - ands r2, r1 - ldrh r3, [r5] - ldr r1, _0800DE2C - ands r1, r3 - orrs r1, r2 - strh r1, [r5] - ldrh r1, [r6, #0x22] - mov r2, r8 - ldrb r2, [r2] - adds r1, r1, r2 - strb r1, [r0] - ldrb r2, [r6, #5] - ldr r3, _0800DE30 - adds r5, r4, r3 - lsrs r2, r2, #4 - lsls r2, r2, #4 - ldrb r3, [r5] - movs r1, #0xf - ands r1, r3 - orrs r1, r2 - strb r1, [r5] - movs r1, #0x32 - ldrsh r2, [r6, r1] - ldr r1, [r6, #8] - lsls r2, r2, #2 - adds r2, r2, r1 - movs r3, #0x36 - ldrsh r1, [r6, r3] - ldr r2, [r2] - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r2, [r1] - ldrh r6, [r6, #0x3a] - adds r2, r2, r6 - ldr r1, _0800DE34 - adds r4, r4, r1 - ldr r3, _0800DE38 - adds r1, r3, #0 - ands r2, r1 - ldrh r3, [r4] - ldr r1, _0800DE3C - ands r1, r3 - orrs r1, r2 - strh r1, [r4] - ldr r1, _0800DE40 - movs r2, #4 - bl CpuSet - bl sub_08011564 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0800DE12 - bl DestroyWirelessStatusIndicatorSprite -_0800DE12: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800DE1C: .4byte gUnknown_3002360 -_0800DE20: .4byte gUnknown_82C02C0 -_0800DE24: .4byte 0x00000422 -_0800DE28: .4byte 0x000001FF -_0800DE2C: .4byte 0xFFFFFE00 -_0800DE30: .4byte 0x00000425 -_0800DE34: .4byte 0x00000424 -_0800DE38: .4byte 0x000003FF -_0800DE3C: .4byte 0xFFFFFC00 -_0800DE40: .4byte 0x070003E8 - thumb_func_end sub_0800DC40 - - thumb_func_start CopyTrainerRecord -CopyTrainerRecord: @ 0x0800DE44 - push {lr} - stm r0!, {r1} - adds r1, r2, #0 - bl StringCopy - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CopyTrainerRecord - - thumb_func_start NameIsNotEmpty -NameIsNotEmpty: @ 0x0800DE54 - push {lr} - adds r2, r0, #0 - movs r1, #0 -_0800DE5A: - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _0800DE66 - movs r0, #1 - b _0800DE6E -_0800DE66: - adds r1, #1 - cmp r1, #7 - ble _0800DE5A - movs r0, #0 -_0800DE6E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end NameIsNotEmpty - - thumb_func_start RecordMixTrainerNames -RecordMixTrainerNames: @ 0x0800DE74 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - ldr r0, _0800DE98 - ldrb r0, [r0] - cmp r0, #0 - bne _0800DE8A - b _0800DFE8 -_0800DE8A: - movs r0, #0xf0 - bl AllocZeroed - str r0, [sp, #0x14] - movs r4, #0 - b _0800DF00 - .align 2, 0 -_0800DE98: .4byte gUnknown_300319C -_0800DE9C: - lsls r2, r4, #2 - mov r0, sp - adds r1, r0, r2 - movs r0, #1 - rsbs r0, r0, #0 - str r0, [r1] - movs r5, #0 - mov r8, r2 - lsls r0, r4, #3 - adds r1, r4, #1 - mov sb, r1 - subs r0, r0, r4 - lsls r0, r0, #2 - str r0, [sp, #0x1c] - ldr r7, _0800DF24 - mov sl, r7 - ldr r6, _0800DF28 - movs r4, #0 - mov r0, sl - subs r0, #4 - ldr r1, [sp, #0x1c] - adds r3, r1, r0 -_0800DEC8: - ldrh r1, [r3] - ldr r0, _0800DF2C - ldr r2, [r0] - ldr r7, _0800DF28 - adds r0, r2, r7 - adds r0, r0, r4 - ldr r0, [r0] - cmp r1, r0 - bne _0800DEF4 - adds r1, r2, r6 - adds r1, #4 - ldr r0, [sp, #0x1c] - add r0, sl - str r3, [sp, #0x18] - bl StringCompare - ldr r3, [sp, #0x18] - cmp r0, #0 - bne _0800DEF4 - mov r0, sp - add r0, r8 - str r5, [r0] -_0800DEF4: - adds r6, #0xc - adds r4, #0xc - adds r5, #1 - cmp r5, #0x13 - ble _0800DEC8 - mov r4, sb -_0800DF00: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - blt _0800DE9C - movs r7, #0 - movs r4, #0 - ldr r0, _0800DF30 - mov sl, r0 - mov r6, sp - movs r1, #8 - add r1, sl - mov sb, r1 - mov r8, r4 - ldr r5, [sp, #0x14] - b _0800DF78 - .align 2, 0 -_0800DF24: .4byte gUnknown_20226A8 -_0800DF28: .4byte 0x00003B98 -_0800DF2C: .4byte gUnknown_3005AEC -_0800DF30: .4byte gUnknown_20226A0 -_0800DF34: - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - beq _0800DF6E - mov r0, sl - adds r0, #4 - add r0, r8 - ldrh r1, [r0] - adds r0, r5, #0 - mov r2, sb - bl CopyTrainerRecord - ldr r2, [r6] - cmp r2, #0 - blt _0800DF6A - ldr r0, _0800DFF8 - ldr r1, [r0] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r1, r1, r0 - ldr r0, _0800DFFC - adds r1, r1, r0 - movs r0, #0 - strb r0, [r1] -_0800DF6A: - adds r5, #0xc - adds r7, #1 -_0800DF6E: - adds r6, #4 - movs r1, #0x1c - add sb, r1 - add r8, r1 - adds r4, #1 -_0800DF78: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - blt _0800DF34 - movs r4, #0 - ldr r0, _0800DFF8 - mov sb, r0 - ldr r6, _0800E000 - mov r8, r4 - lsls r0, r7, #1 - adds r0, r0, r7 - lsls r0, r0, #2 - ldr r1, [sp, #0x14] - adds r5, r0, r1 -_0800DF98: - mov r1, sb - ldr r0, [r1] - adds r0, r0, r6 - adds r0, #4 - bl NameIsNotEmpty - cmp r0, #0 - beq _0800DFC6 - mov r0, sb - ldr r2, [r0] - ldr r1, _0800E000 - adds r0, r2, r1 - add r0, r8 - ldr r1, [r0] - adds r2, r2, r6 - adds r2, #4 - adds r0, r5, #0 - bl CopyTrainerRecord - adds r5, #0xc - adds r7, #1 - cmp r7, #0x13 - bgt _0800DFD2 -_0800DFC6: - adds r6, #0xc - movs r0, #0xc - add r8, r0 - adds r4, #1 - cmp r4, #0x13 - ble _0800DF98 -_0800DFD2: - ldr r0, _0800DFF8 - ldr r0, [r0] - ldr r1, _0800E000 - adds r0, r0, r1 - ldr r1, [sp, #0x14] - movs r2, #0xf0 - bl memcpy - ldr r0, [sp, #0x14] - bl Free -_0800DFE8: - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800DFF8: .4byte gUnknown_3005AEC -_0800DFFC: .4byte 0x00003B9C -_0800E000: .4byte 0x00003B98 - thumb_func_end RecordMixTrainerNames - - thumb_func_start sub_0800E004 -sub_0800E004: @ 0x0800E004 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov sb, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - movs r7, #0 - ldr r6, _0800E040 - ldr r4, _0800E044 - movs r5, #0 -_0800E01C: - ldr r0, [r6] - adds r0, r0, r4 - adds r0, #4 - mov r1, sb - bl StringCompare - cmp r0, #0 - bne _0800E048 - ldr r0, [r6] - ldr r1, _0800E044 - adds r0, r0, r1 - adds r0, r0, r5 - ldr r0, [r0] - cmp r0, r8 - bne _0800E048 - movs r0, #1 - b _0800E062 - .align 2, 0 -_0800E040: .4byte gUnknown_3005AEC -_0800E044: .4byte 0x00003B98 -_0800E048: - ldr r0, [r6] - adds r0, r0, r4 - adds r0, #4 - bl NameIsNotEmpty - cmp r0, #0 - beq _0800E060 - adds r4, #0xc - adds r5, #0xc - adds r7, #1 - cmp r7, #0x13 - ble _0800E01C -_0800E060: - movs r0, #0 -_0800E062: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0800E004 - - thumb_func_start WipeTrainerNameRecords -WipeTrainerNameRecords: @ 0x0800E070 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - ldr r0, _0800E0B4 - mov r8, r0 - movs r7, #0 - mov r6, r8 - movs r5, #0 - movs r4, #0x13 -_0800E084: - ldr r0, _0800E0B8 - ldr r1, [r0] - mov r2, r8 - adds r0, r1, r2 - adds r0, r0, r5 - str r7, [r0] - mov r0, sp - strh r7, [r0] - adds r1, r1, r6 - adds r1, #4 - ldr r2, _0800E0BC - bl CpuSet - adds r6, #0xc - adds r5, #0xc - subs r4, #1 - cmp r4, #0 - bge _0800E084 - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800E0B4: .4byte 0x00003B98 -_0800E0B8: .4byte gUnknown_3005AEC -_0800E0BC: .4byte 0x01000004 - thumb_func_end WipeTrainerNameRecords - - thumb_func_start sub_0800E0C0 -sub_0800E0C0: @ 0x0800E0C0 - bx lr - .align 2, 0 - thumb_func_end sub_0800E0C0 - - thumb_func_start sub_0800E0C4 -sub_0800E0C4: @ 0x0800E0C4 - bx lr - .align 2, 0 - thumb_func_end sub_0800E0C4 - - thumb_func_start sub_0800E0C8 -sub_0800E0C8: @ 0x0800E0C8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #8 - ldr r6, _0800E16C - adds r5, r6, #0 - adds r5, #0xee - ldrb r4, [r5] - mov r0, sp - movs r7, #0 - strh r7, [r0] - ldr r2, _0800E170 - adds r1, r6, #0 - bl CpuSet - ldrb r0, [r5] - strb r4, [r5] - movs r0, #0xff - strb r0, [r6, #0xc] - ldrb r0, [r5] - cmp r0, #4 - beq _0800E0FA - ldrb r0, [r5] - strb r7, [r5] -_0800E0FA: - mov r7, sp - adds r7, #2 - add r0, sp, #4 - mov r8, r0 - movs r0, #6 - add r0, sp - mov sb, r0 - adds r5, r6, #0 - adds r5, #0x80 - movs r4, #4 -_0800E10E: - adds r0, r5, #0 - bl sub_0800F7A8 - adds r5, #0x14 - subs r4, #1 - cmp r4, #0 - bge _0800E10E - movs r5, #0 - ldr r4, _0800E174 - adds r0, r4, #0 - bl sub_0800F7A8 - adds r0, r4, #0 - adds r0, #0xb8 - bl sub_0800D184 - ldr r0, _0800E178 - adds r4, r4, r0 - adds r0, r4, #0 - bl sub_0800D1E0 - strh r5, [r7] - ldr r1, _0800E17C - ldr r2, _0800E180 - adds r0, r7, #0 - bl CpuSet - mov r0, r8 - strh r5, [r0] - ldr r1, _0800E184 - ldr r2, _0800E188 - bl CpuSet - mov r0, sb - strh r5, [r0] - ldr r1, _0800E18C - ldr r2, _0800E190 - bl CpuSet - add sp, #8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800E16C: .4byte gUnknown_30050A0 -_0800E170: .4byte 0x010004D6 -_0800E174: .4byte gUnknown_300510C -_0800E178: .4byte 0x00000634 -_0800E17C: .4byte gUnknown_30031B0 -_0800E180: .4byte 0x01000008 -_0800E184: .4byte gUnknown_3003130 -_0800E188: .4byte 0x01000028 -_0800E18C: .4byte gUnknown_20226A0 -_0800E190: .4byte 0x01000046 - thumb_func_end sub_0800E0C8 - - thumb_func_start sub_0800E194 -sub_0800E194: @ 0x0800E194 - push {r4, r5, r6, lr} - ldr r4, _0800E1BC - ldr r5, [r4, #4] - ldr r6, [r4, #8] - bl sub_0800E1C4 - bl rfu_REQ_stopMode - bl rfu_waitREQComplete - ldr r1, _0800E1C0 - movs r0, #0 - strh r0, [r1] - str r5, [r4, #4] - str r6, [r4, #8] - movs r0, #1 - strh r0, [r1] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0800E1BC: .4byte gUnknown_30027B0 -_0800E1C0: .4byte 0x04000208 - thumb_func_end sub_0800E194 - - thumb_func_start sub_0800E1C4 -sub_0800E1C4: @ 0x0800E1C4 - push {r4, lr} - ldr r0, _0800E1FC - ldr r1, _0800E200 - ldr r4, _0800E204 - adds r2, r4, #0 - movs r3, #1 - bl rfu_initializeAPI - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - bne _0800E1F6 - ldr r0, _0800E208 - strh r1, [r0] - bl sub_0800A6B8 - movs r0, #0 - bl sub_08010CA0 - bl sub_0800E0C8 - adds r1, r4, #4 - movs r0, #3 - bl rfu_setTimerInterrupt -_0800E1F6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800E1FC: .4byte gUnknown_3004230 -_0800E200: .4byte 0x00000E64 -_0800E204: .4byte gUnknown_30027B4 -_0800E208: .4byte gUnknown_202267E - thumb_func_end sub_0800E1C4 - - thumb_func_start sub_0800E20C -sub_0800E20C: @ 0x0800E20C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - bl sub_08010250 - ldr r0, _0800E22C - ldrh r0, [r0, #4] - cmp r0, #0x12 - bls _0800E220 - b _0800E326 -_0800E220: - lsls r0, r0, #2 - ldr r1, _0800E230 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0800E22C: .4byte gUnknown_30050A0 -_0800E230: .4byte _0800E234 -_0800E234: @ jump table - .4byte _0800E280 @ case 0 - .4byte _0800E326 @ case 1 - .4byte _0800E2A8 @ case 2 - .4byte _0800E326 @ case 3 - .4byte _0800E2D8 @ case 4 - .4byte _0800E326 @ case 5 - .4byte _0800E326 @ case 6 - .4byte _0800E326 @ case 7 - .4byte _0800E326 @ case 8 - .4byte _0800E326 @ case 9 - .4byte _0800E326 @ case 10 - .4byte _0800E326 @ case 11 - .4byte _0800E326 @ case 12 - .4byte _0800E326 @ case 13 - .4byte _0800E326 @ case 14 - .4byte _0800E326 @ case 15 - .4byte _0800E326 @ case 16 - .4byte _0800E326 @ case 17 - .4byte _0800E2EC @ case 18 -_0800E280: - ldr r0, _0800E29C - bl sub_0800BA88 - ldr r0, _0800E2A0 - movs r2, #1 - strh r2, [r0, #4] - ldr r1, _0800E2A4 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r2, [r0, #0xa] - b _0800E326 - .align 2, 0 -_0800E29C: .4byte gUnknown_20227E4 -_0800E2A0: .4byte gUnknown_30050A0 -_0800E2A4: .4byte gUnknown_3005B60 -_0800E2A8: - ldr r4, _0800E2CC - ldrb r0, [r4, #0xc] - ldr r3, _0800E2D0 - movs r1, #0 - movs r2, #0xf0 - bl sub_0800BB10 - movs r0, #3 - strh r0, [r4, #4] - ldr r1, _0800E2D4 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #6 - strh r1, [r0, #0xa] - b _0800E326 - .align 2, 0 -_0800E2CC: .4byte gUnknown_30050A0 -_0800E2D0: .4byte gUnknown_82C0430 -_0800E2D4: .4byte gUnknown_3005B60 -_0800E2D8: - movs r0, #0 - bl sub_0800BD38 - ldr r1, _0800E2E8 - movs r0, #5 - strh r0, [r1, #4] - b _0800E326 - .align 2, 0 -_0800E2E8: .4byte gUnknown_30050A0 -_0800E2EC: - ldr r4, _0800E32C - ldr r0, _0800E330 - adds r1, r4, r0 - ldrb r0, [r1] - movs r0, #0 - strb r0, [r1] - ldr r0, _0800E334 - bl sub_0800CFE8 - bl sub_0800E578 - bl sub_0800E5C0 - movs r0, #0x14 - strh r0, [r4, #4] - ldr r1, _0800E338 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #8 - strh r1, [r0, #0xa] - ldr r0, _0800E33C - movs r1, #5 - bl CreateTask - adds r0, r5, #0 - bl DestroyTask -_0800E326: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0800E32C: .4byte gUnknown_30050A0 -_0800E330: .4byte 0x00000993 -_0800E334: .4byte sub_0800E87C -_0800E338: .4byte gUnknown_3005B60 -_0800E33C: .4byte sub_0801034C - thumb_func_end sub_0800E20C - - thumb_func_start sub_0800E340 -sub_0800E340: @ 0x0800E340 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0800E34C - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0800E34C: .4byte gUnknown_82C03F5 - thumb_func_end sub_0800E340 - - thumb_func_start sub_0800E350 -sub_0800E350: @ 0x0800E350 - push {r4, r5, r6, r7, lr} - adds r2, r0, #0 - adds r5, r1, #0 - movs r4, #1 - adds r1, r2, #0 - movs r6, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r5, r0 - bne _0800E390 - movs r3, #0 - movs r5, #1 - ldr r1, _0800E38C -_0800E36A: - adds r0, r2, #0 - ands r0, r5 - cmp r0, #0 - beq _0800E37C - adds r0, r3, r1 - strb r4, [r0] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_0800E37C: - asrs r2, r2, #1 - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #3 - bls _0800E36A - b _0800E406 - .align 2, 0 -_0800E38C: .4byte gUnknown_3005A36 -_0800E390: - movs r3, #0 - mvns r0, r1 - mov ip, r0 - movs r7, #1 - ldr r4, _0800E40C -_0800E39A: - adds r2, r1, #0 - ands r2, r7 - cmp r2, #0 - bne _0800E3A6 - adds r0, r3, r4 - strb r2, [r0] -_0800E3A6: - asrs r1, r1, #1 - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #3 - bls _0800E39A - movs r4, #4 - ldr r0, _0800E40C - ldrb r7, [r0] -_0800E3B8: - movs r3, #0 - subs r1, r4, #1 - cmp r7, r4 - beq _0800E3D4 - ldr r2, _0800E40C -_0800E3C2: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #3 - bhi _0800E3D4 - adds r0, r3, r2 - ldrb r0, [r0] - cmp r0, r4 - bne _0800E3C2 -_0800E3D4: - cmp r3, #4 - bne _0800E3DA - adds r6, r4, #0 -_0800E3DA: - lsls r0, r1, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _0800E3B8 - mov r0, ip - ands r5, r0 - movs r3, #0 - movs r2, #1 - ldr r1, _0800E40C -_0800E3EC: - adds r0, r5, #0 - ands r0, r2 - cmp r0, #0 - beq _0800E3FA - adds r0, r3, r1 - strb r6, [r0] - adds r6, #1 -_0800E3FA: - asrs r5, r5, #1 - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #3 - bls _0800E3EC -_0800E406: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800E40C: .4byte gUnknown_3005A36 - thumb_func_end sub_0800E350 - - thumb_func_start sub_0800E410 -sub_0800E410: @ 0x0800E410 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _0800E42C - ldrh r3, [r0, #4] - adds r7, r0, #0 - cmp r3, #0xc - bls _0800E422 - b _0800E55E -_0800E422: - lsls r0, r3, #2 - ldr r1, _0800E430 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0800E42C: .4byte gUnknown_30050A0 -_0800E430: .4byte _0800E434 -_0800E434: @ jump table - .4byte _0800E468 @ case 0 - .4byte _0800E55E @ case 1 - .4byte _0800E55E @ case 2 - .4byte _0800E55E @ case 3 - .4byte _0800E55E @ case 4 - .4byte _0800E55E @ case 5 - .4byte _0800E480 @ case 6 - .4byte _0800E55E @ case 7 - .4byte _0800E55E @ case 8 - .4byte _0800E4A8 @ case 9 - .4byte _0800E55E @ case 10 - .4byte _0800E4BC @ case 11 - .4byte _0800E500 @ case 12 -_0800E468: - ldr r0, _0800E478 - bl sub_0800BA88 - ldr r0, _0800E47C - movs r2, #1 - strh r2, [r0, #4] - b _0800E490 - .align 2, 0 -_0800E478: .4byte gUnknown_82C0358 -_0800E47C: .4byte gUnknown_30050A0 -_0800E480: - ldrb r0, [r7, #0xc] - ldr r3, _0800E4A0 - movs r1, #0 - movs r2, #0xf0 - bl sub_0800BB10 - movs r2, #7 - strh r2, [r7, #4] -_0800E490: - ldr r1, _0800E4A4 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r2, [r0, #0xa] - b _0800E55E - .align 2, 0 -_0800E4A0: .4byte gUnknown_82C0430 -_0800E4A4: .4byte gUnknown_3005B60 -_0800E4A8: - ldr r0, _0800E4B8 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0xa - strh r0, [r1, #0xa] - b _0800E55E - .align 2, 0 -_0800E4B8: .4byte gUnknown_3005B60 -_0800E4BC: - bl sub_080102A0 - cmp r0, #6 - beq _0800E4E0 - cmp r0, #6 - bgt _0800E4CE - cmp r0, #5 - beq _0800E4D4 - b _0800E55E -_0800E4CE: - cmp r0, #9 - beq _0800E4E0 - b _0800E55E -_0800E4D4: - ldr r1, _0800E4DC - movs r0, #0xc - strh r0, [r1, #4] - b _0800E55E - .align 2, 0 -_0800E4DC: .4byte gUnknown_30050A0 -_0800E4E0: - bl sub_0800D0EC - ldr r0, _0800E4F8 - ldr r1, _0800E4FC - adds r0, r0, r1 - movs r1, #2 - strb r1, [r0] - adds r0, r6, #0 - bl DestroyTask - b _0800E55E - .align 2, 0 -_0800E4F8: .4byte gUnknown_30050A0 -_0800E4FC: .4byte 0x0000099C -_0800E500: - ldr r0, _0800E564 - adds r4, r7, r0 - ldrb r0, [r4] - movs r5, #0x80 - lsls r5, r5, #0x11 - lsls r5, r0 - lsrs r5, r5, #0x18 - ldrb r1, [r4] - movs r0, #0xc - bl rfu_clearSlot - ldrb r1, [r4] - ldr r0, _0800E568 - adds r2, r7, r0 - movs r0, #0x10 - movs r3, #0x46 - bl rfu_setRecvBuffer - adds r1, r7, #0 - adds r1, #0x4c - adds r0, r5, #0 - movs r2, #0xe - bl rfu_UNI_setSendData - ldr r1, _0800E56C - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #8 - strh r1, [r0, #0xa] - adds r0, r6, #0 - bl DestroyTask - ldr r4, _0800E570 - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _0800E556 - bl sub_08011D68 - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] -_0800E556: - ldr r0, _0800E574 - movs r1, #5 - bl CreateTask -_0800E55E: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800E564: .4byte 0x000008F6 -_0800E568: .4byte 0x000008F7 -_0800E56C: .4byte gUnknown_3005B60 -_0800E570: .4byte gUnknown_20227FC -_0800E574: .4byte sub_0801034C - thumb_func_end sub_0800E410 - - thumb_func_start sub_0800E578 -sub_0800E578: @ 0x0800E578 - push {r4, r5, lr} - ldr r0, _0800E5B8 - ldrb r5, [r0] - movs r4, #0 -_0800E580: - movs r0, #1 - ands r0, r5 - cmp r0, #0 - beq _0800E5A4 - lsls r2, r4, #3 - subs r2, r2, r4 - lsls r2, r2, #1 - ldr r0, _0800E5BC - adds r2, r2, r0 - movs r0, #0x10 - adds r1, r4, #0 - movs r3, #0xe - bl rfu_setRecvBuffer - movs r0, #3 - adds r1, r4, #0 - bl rfu_clearSlot -_0800E5A4: - lsrs r5, r5, #1 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _0800E580 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0800E5B8: .4byte gUnknown_30041E0 -_0800E5BC: .4byte gUnknown_30050B4 - thumb_func_end sub_0800E578 - - thumb_func_start sub_0800E5C0 -sub_0800E5C0: @ 0x0800E5C0 - push {r4, r5, r6, lr} - ldr r0, _0800E5FC - ldrb r5, [r0] - ldr r4, _0800E600 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x46 - bl rfu_UNI_setSendData - adds r0, r5, #0 - bl sub_0800E340 - ldr r1, _0800E604 - adds r6, r4, r1 - adds r1, r4, #0 - adds r1, #0x53 - strb r0, [r1] - adds r4, #0x5b - strb r5, [r4] - movs r1, #1 - rsbs r1, r1, #0 - adds r0, r5, #0 - bl sub_0800E350 - movs r0, #1 - strb r0, [r6, #0xc] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0800E5FC: .4byte gUnknown_30041E0 -_0800E600: .4byte gUnknown_30059DF -_0800E604: .4byte 0xFFFFF6C1 - thumb_func_end sub_0800E5C0 - - thumb_func_start sub_0800E608 -sub_0800E608: @ 0x0800E608 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - bl sub_0800F29C - ldrb r1, [r0, #0xa] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x54 - bne _0800E63C - bl sub_08011564 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bne _0800E63C - ldr r0, _0800E654 - ldrb r0, [r0] - bl rfu_REQ_disconnect - bl rfu_waitREQComplete - movs r0, #0 - movs r1, #0 - bl sub_08011554 -_0800E63C: - ldr r0, _0800E658 - ldrh r2, [r0, #4] - adds r6, r0, #0 - cmp r2, #0x12 - bls _0800E648 - b _0800E7BA -_0800E648: - lsls r0, r2, #2 - ldr r1, _0800E65C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0800E654: .4byte gUnknown_30041E0 -_0800E658: .4byte gUnknown_30050A0 -_0800E65C: .4byte _0800E660 -_0800E660: @ jump table - .4byte _0800E6AC @ case 0 - .4byte _0800E7BA @ case 1 - .4byte _0800E7BA @ case 2 - .4byte _0800E7BA @ case 3 - .4byte _0800E7BA @ case 4 - .4byte _0800E7BA @ case 5 - .4byte _0800E7BA @ case 6 - .4byte _0800E7BA @ case 7 - .4byte _0800E7BA @ case 8 - .4byte _0800E7BA @ case 9 - .4byte _0800E7BA @ case 10 - .4byte _0800E7BA @ case 11 - .4byte _0800E7BA @ case 12 - .4byte _0800E6FC @ case 13 - .4byte _0800E75C @ case 14 - .4byte _0800E7BA @ case 15 - .4byte _0800E770 @ case 16 - .4byte _0800E6D4 @ case 17 - .4byte _0800E7BA @ case 18 -_0800E6AC: - ldr r0, _0800E6C8 - bl sub_0800BA88 - ldr r0, _0800E6CC - movs r2, #1 - strh r2, [r0, #4] - ldr r1, _0800E6D0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r2, [r0, #0xa] - b _0800E7BA - .align 2, 0 -_0800E6C8: .4byte gUnknown_20227E4 -_0800E6CC: .4byte gUnknown_30050A0 -_0800E6D0: .4byte gUnknown_3005B60 -_0800E6D4: - ldr r3, _0800E6F0 - movs r0, #2 - movs r1, #0 - movs r2, #0xf0 - bl sub_0800BB10 - ldr r0, _0800E6F4 - bl sub_0800CFE8 - ldr r1, _0800E6F8 - movs r0, #0x12 - strh r0, [r1, #4] - b _0800E7BA - .align 2, 0 -_0800E6F0: .4byte gUnknown_82C0430 -_0800E6F4: .4byte sub_0800E7F4 -_0800E6F8: .4byte gUnknown_30050A0 -_0800E6FC: - ldr r1, _0800E740 - adds r0, r6, r1 - ldrb r1, [r0] - movs r0, #0x80 - lsls r0, r0, #0x11 - lsls r0, r1 - lsrs r0, r0, #0x18 - adds r1, r6, #0 - adds r1, #0x4c - movs r2, #0xe - bl rfu_UNI_setSendData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - bne _0800E7BA - strb r0, [r6, #0xc] - adds r0, r5, #0 - bl DestroyTask - ldr r0, _0800E744 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r2, #0x16 - ldrsh r0, [r1, r2] - cmp r0, #0 - beq _0800E74C - ldr r0, _0800E748 - movs r1, #1 - bl CreateTask - b _0800E7BA - .align 2, 0 -_0800E740: .4byte 0x000008F6 -_0800E744: .4byte gUnknown_3005B60 -_0800E748: .4byte sub_080107FC -_0800E74C: - ldr r0, _0800E758 - movs r1, #5 - bl CreateTask - b _0800E7BA - .align 2, 0 -_0800E758: .4byte sub_0801034C -_0800E75C: - movs r0, #0 - bl sub_0800BD38 - ldr r1, _0800E76C - movs r0, #0xf - strh r0, [r1, #4] - b _0800E7BA - .align 2, 0 -_0800E76C: .4byte gUnknown_30050A0 -_0800E770: - ldr r0, _0800E7C0 - adds r1, r6, r0 - ldrb r0, [r1] - movs r0, #0 - strb r0, [r1] - ldr r0, _0800E7C4 - bl sub_0800CFE8 - movs r0, #1 - bl sub_08010B58 - bl sub_0800E578 - bl sub_0800E5C0 - movs r0, #0x14 - strh r0, [r6, #4] - ldr r1, _0800E7C8 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #8 - strh r1, [r0, #0xa] - movs r4, #1 - strb r4, [r6, #0xc] - ldr r0, _0800E7CC - movs r1, #5 - bl CreateTask - movs r1, #0x9a - lsls r1, r1, #4 - adds r0, r6, r1 - strb r4, [r0] - adds r0, r5, #0 - bl DestroyTask -_0800E7BA: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0800E7C0: .4byte 0x00000993 -_0800E7C4: .4byte sub_0800E87C -_0800E7C8: .4byte gUnknown_3005B60 -_0800E7CC: .4byte sub_0801034C - thumb_func_end sub_0800E608 - - thumb_func_start sub_0800E7D0 -sub_0800E7D0: @ 0x0800E7D0 - push {lr} - ldr r3, _0800E7E4 - movs r0, #1 - movs r1, #0 - movs r2, #0xf0 - bl sub_0800BB10 - pop {r0} - bx r0 - .align 2, 0 -_0800E7E4: .4byte gUnknown_82C0430 - thumb_func_end sub_0800E7D0 - - thumb_func_start SaveSuccessCallback -SaveSuccessCallback: @ 0x0800E7E8 - push {lr} - movs r0, #0 - bl sub_0800BD38 - pop {r0} - bx r0 - thumb_func_end SaveSuccessCallback - - thumb_func_start sub_0800E7F4 -sub_0800E7F4: @ 0x0800E7F4 - push {r4, lr} - ldr r0, _0800E864 - movs r2, #0 - movs r1, #0xd - adds r0, #0x59 -_0800E7FE: - strb r2, [r0] - subs r0, #1 - subs r1, #1 - cmp r1, #0 - bge _0800E7FE - bl rfu_REQ_recvData - bl rfu_waitREQComplete - ldr r1, _0800E868 - ldr r3, _0800E864 - ldr r0, _0800E86C - adds r4, r3, r0 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldrb r0, [r0, #0x12] - cmp r0, #0 - beq _0800E858 - ldr r2, _0800E870 - adds r1, r3, r2 - ldrb r0, [r1] - adds r0, #1 - ldrb r2, [r1] - strb r0, [r1] - movs r1, #0x92 - lsls r1, r1, #1 - adds r0, r3, r1 - ldr r2, _0800E874 - adds r1, r3, r2 - bl sub_0800D294 - ldr r1, _0800E878 - ldrh r0, [r1, #6] - adds r0, #1 - strh r0, [r1, #6] - bl BattleAICmd_if_in_hwords - ldrb r0, [r4] - bl rfu_UNI_readySendData - ldrb r0, [r4] - bl rfu_UNI_clearRecvNewDataFlag -_0800E858: - movs r0, #1 - bl rfu_REQ_sendData_wrapper - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800E864: .4byte gUnknown_30050A0 -_0800E868: .4byte gUnknown_3007610 -_0800E86C: .4byte 0x000008F6 -_0800E870: .4byte 0x00000988 -_0800E874: .4byte 0x000008F7 -_0800E878: .4byte gUnknown_20227FC - thumb_func_end sub_0800E7F4 - - thumb_func_start sub_0800E87C -sub_0800E87C: @ 0x0800E87C - ldr r0, _0800E88C - ldr r1, _0800E890 - adds r0, r0, r1 - ldrb r1, [r0] - movs r1, #1 - strb r1, [r0] - bx lr - .align 2, 0 -_0800E88C: .4byte gUnknown_30050A0 -_0800E890: .4byte 0x00000993 - thumb_func_end sub_0800E87C - - thumb_func_start sub_0800E894 -sub_0800E894: @ 0x0800E894 - push {r4, r5, r6, lr} - bl sub_0800BB04 - ldr r4, _0800E8A8 - ldrb r0, [r4, #0xc] - cmp r0, #1 - bne _0800E8B0 - ldr r0, _0800E8AC - b _0800E8B6 - .align 2, 0 -_0800E8A8: .4byte gUnknown_30050A0 -_0800E8AC: .4byte sub_0800E20C -_0800E8B0: - cmp r0, #0 - bne _0800E8D8 - ldr r0, _0800E8D4 -_0800E8B6: - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0800E8F8 - adds r0, r4, #0 - adds r0, #0x67 - ldrb r0, [r0] - bl DestroyTask - bl sub_0800E0C8 - b _0800E8F8 - .align 2, 0 -_0800E8D4: .4byte sub_0800E410 -_0800E8D8: - cmp r0, #2 - bne _0800E8F8 - ldr r0, _0800E930 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0800E8F8 - adds r0, r4, #0 - adds r0, #0x67 - ldrb r0, [r0] - bl DestroyTask - bl sub_0800E0C8 -_0800E8F8: - movs r5, #0 - ldr r6, _0800E934 -_0800E8FC: - lsls r0, r5, #2 - adds r0, r0, r6 - ldr r4, [r0] - adds r0, r4, #0 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0800E91E - adds r0, r4, #0 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_0800E91E: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #2 - bls _0800E8FC - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0800E930: .4byte sub_0800E608 -_0800E934: .4byte gUnknown_82C0530 - thumb_func_end sub_0800E894 - - thumb_func_start sub_0800E938 -sub_0800E938: @ 0x0800E938 - push {lr} - ldr r0, _0800E94C - movs r1, #1 - bl CreateTask - ldr r1, _0800E950 - adds r1, #0x67 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0800E94C: .4byte sub_0800E20C -_0800E950: .4byte gUnknown_30050A0 - thumb_func_end sub_0800E938 - - thumb_func_start sub_0800E954 -sub_0800E954: @ 0x0800E954 - push {lr} - ldr r1, _0800E96C - ldrh r0, [r1, #4] - cmp r0, #7 - bne _0800E974 - ldr r2, _0800E970 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _0800E974 - movs r0, #1 - b _0800E976 - .align 2, 0 -_0800E96C: .4byte gUnknown_30050A0 -_0800E970: .4byte 0x00000985 -_0800E974: - movs r0, #0 -_0800E976: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0800E954 - - thumb_func_start sub_0800E97C -sub_0800E97C: @ 0x0800E97C - push {r4, lr} - ldr r4, _0800E9AC - ldrh r0, [r4, #4] - cmp r0, #7 - bne _0800E9B8 - ldr r0, _0800E9B0 - ldr r1, [r0] - ldr r2, _0800E9B4 - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, r0, #5 - adds r1, r1, r0 - ldrh r0, [r1, #0x14] - movs r1, #0xf0 - bl sub_0800BBE8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0800E9B8 - movs r0, #9 - strh r0, [r4, #4] - movs r0, #1 - b _0800E9BA - .align 2, 0 -_0800E9AC: .4byte gUnknown_30050A0 -_0800E9B0: .4byte gUnknown_3007630 -_0800E9B4: .4byte 0x000008F5 -_0800E9B8: - movs r0, #0 -_0800E9BA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0800E97C - - thumb_func_start sub_0800E9C0 -sub_0800E9C0: @ 0x0800E9C0 - push {lr} - ldr r0, _0800E9D4 - movs r1, #1 - bl CreateTask - ldr r1, _0800E9D8 - adds r1, #0x67 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0800E9D4: .4byte sub_0800E410 -_0800E9D8: .4byte gUnknown_30050A0 - thumb_func_end sub_0800E9C0 - - thumb_func_start sub_0800E9DC -sub_0800E9DC: @ 0x0800E9DC - push {lr} - ldr r0, _0800E9EC - ldrb r0, [r0] - cmp r0, #0 - bne _0800E9F0 - movs r0, #0 - b _0800E9F2 - .align 2, 0 -_0800E9EC: .4byte gUnknown_30041E0 -_0800E9F0: - movs r0, #1 -_0800E9F2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0800E9DC - - thumb_func_start sub_0800E9F8 -sub_0800E9F8: @ 0x0800E9F8 - ldr r1, _0800EA0C - movs r0, #4 - strh r0, [r1, #4] - ldr r0, _0800EA10 - ldrb r0, [r0] - ldr r2, _0800EA14 - adds r1, r1, r2 - strb r0, [r1] - bx lr - .align 2, 0 -_0800EA0C: .4byte gUnknown_30050A0 -_0800EA10: .4byte gUnknown_30041E0 -_0800EA14: .4byte 0x0000099F - thumb_func_end sub_0800E9F8 - - thumb_func_start sub_0800EA18 -sub_0800EA18: @ 0x0800EA18 - push {lr} - adds r1, r0, #0 - ldr r2, _0800EA30 - ldrh r0, [r2, #4] - cmp r0, #0x11 - beq _0800EA28 - cmp r1, #0 - beq _0800EA34 -_0800EA28: - movs r0, #0x12 - strh r0, [r2, #4] - movs r0, #1 - b _0800EA36 - .align 2, 0 -_0800EA30: .4byte gUnknown_30050A0 -_0800EA34: - movs r0, #0 -_0800EA36: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0800EA18 - - thumb_func_start sub_0800EA3C -sub_0800EA3C: @ 0x0800EA3C - ldr r1, _0800EA44 - movs r0, #0xe - strh r0, [r1, #4] - bx lr - .align 2, 0 -_0800EA44: .4byte gUnknown_30050A0 - thumb_func_end sub_0800EA3C - - thumb_func_start sub_0800EA48 -sub_0800EA48: @ 0x0800EA48 - push {lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r2, #0 - b _0800EA5A -_0800EA52: - lsrs r1, r1, #1 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 -_0800EA5A: - cmp r2, #3 - bhi _0800EA6C - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0800EA52 - adds r0, r2, #0 - bl rfu_UNI_readySendData -_0800EA6C: - pop {r0} - bx r0 - thumb_func_end sub_0800EA48 - - thumb_func_start sub_0800EA70 -sub_0800EA70: @ 0x0800EA70 - push {r4, r5, r6, r7, lr} - sub sp, #4 - movs r2, #0 - ldr r7, _0800EAC4 - ldr r0, _0800EAC8 - adds r6, r7, #0 - ldr r1, _0800EACC - adds r5, r0, r1 -_0800EA80: - movs r3, #0 - lsls r0, r2, #3 - lsls r1, r2, #4 - adds r4, r2, #1 - subs r0, r0, r2 - lsls r0, r0, #1 - adds r2, r0, r5 - adds r1, r1, r6 -_0800EA90: - ldrh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r2, #1] - ldrh r0, [r1] - strb r0, [r2] - adds r2, #2 - adds r1, #2 - adds r3, #1 - cmp r3, #6 - ble _0800EA90 - adds r2, r4, #0 - cmp r2, #4 - ble _0800EA80 - movs r0, #0 - mov r1, sp - strh r0, [r1] - ldr r2, _0800EAD0 - mov r0, sp - adds r1, r7, #0 - bl CpuSet - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800EAC4: .4byte gUnknown_3003130 -_0800EAC8: .4byte gUnknown_30050A0 -_0800EACC: .4byte 0x0000093F -_0800EAD0: .4byte 0x01000028 - thumb_func_end sub_0800EA70 - - thumb_func_start sub_0800EAD4 -sub_0800EAD4: @ 0x0800EAD4 - push {lr} - ldr r3, _0800EB00 - ldr r2, _0800EB04 - movs r1, #6 -_0800EADC: - ldrh r0, [r3] - strh r0, [r2] - adds r3, #2 - adds r2, #2 - subs r1, #1 - cmp r1, #0 - bge _0800EADC - ldr r1, _0800EB00 - movs r2, #0 - adds r0, r1, #0 - adds r0, #0xc -_0800EAF2: - strh r2, [r0] - subs r0, #2 - cmp r0, r1 - bge _0800EAF2 - pop {r0} - bx r0 - .align 2, 0 -_0800EB00: .4byte gUnknown_30031B0 -_0800EB04: .4byte gUnknown_3003130 - thumb_func_end sub_0800EAD4 - - thumb_func_start BattleAICmd_if_in_hwords -BattleAICmd_if_in_hwords: @ 0x0800EB08 - push {r4, r5, lr} - ldr r4, _0800EB68 - ldr r0, _0800EB6C - adds r5, r4, r0 - ldrb r0, [r5] - cmp r0, #0 - beq _0800EB3A - ldr r1, _0800EB70 - adds r0, r4, r1 - adds r1, r4, #0 - adds r1, #0x4c - bl sub_0800D594 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _0800EB74 - adds r0, r4, r1 - ldrb r0, [r0] - adds r1, r0, #0 - cmp r1, #0 - bne _0800EB36 - ldrb r0, [r5] - strb r1, [r5] -_0800EB36: - cmp r2, #0 - bne _0800EB60 -_0800EB3A: - ldr r5, _0800EB68 - ldr r1, _0800EB6C - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _0800EB60 - movs r1, #0xd4 - lsls r1, r1, #3 - adds r0, r5, r1 - adds r4, r5, #0 - adds r4, #0x4c - adds r1, r4, #0 - bl sub_0800D4A8 - ldr r1, _0800EB70 - adds r0, r5, r1 - adds r1, r4, #0 - bl sub_0800D534 -_0800EB60: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0800EB68: .4byte gUnknown_30050A0 -_0800EB6C: .4byte 0x000008F4 -_0800EB70: .4byte 0x000008D4 -_0800EB74: .4byte 0x000008F2 - thumb_func_end BattleAICmd_if_in_hwords - - thumb_func_start IsRfuRecvQueueEmpty -IsRfuRecvQueueEmpty: @ 0x0800EB78 - push {r4, lr} - ldr r0, _0800EB88 - ldr r0, [r0] - ldrb r0, [r0, #6] - cmp r0, #0 - bne _0800EB8C -_0800EB84: - movs r0, #0 - b _0800EBAC - .align 2, 0 -_0800EB88: .4byte gUnknown_3007630 -_0800EB8C: - movs r3, #0 - ldr r4, _0800EBB4 -_0800EB90: - movs r2, #0 - lsls r0, r3, #4 - adds r1, r0, r4 -_0800EB96: - ldrh r0, [r1] - cmp r0, #0 - bne _0800EB84 - adds r1, #2 - adds r2, #1 - cmp r2, #6 - ble _0800EB96 - adds r3, #1 - cmp r3, #4 - ble _0800EB90 - movs r0, #1 -_0800EBAC: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0800EBB4: .4byte gUnknown_3003130 - thumb_func_end IsRfuRecvQueueEmpty - - thumb_func_start sub_0800EBB8 -sub_0800EBB8: @ 0x0800EBB8 - push {r4, r5, r6, lr} - ldr r6, _0800EBD4 - ldrh r0, [r6, #4] - cmp r0, #0x13 - bhi _0800EBD8 - bl rfu_REQ_recvData - bl rfu_waitREQComplete - movs r0, #0 - bl rfu_REQ_sendData_wrapper - b _0800EC92 - .align 2, 0 -_0800EBD4: .4byte gUnknown_30050A0 -_0800EBD8: - ldr r0, _0800EC34 - adds r1, r6, r0 - ldrb r0, [r1] - movs r0, #0 - strb r0, [r1] - ldr r0, _0800EC38 - adds r1, r6, r0 - ldr r0, _0800EC3C - ldr r0, [r0] - ldrb r1, [r1] - ldrb r0, [r0, #2] - ands r0, r1 - cmp r0, r1 - bne _0800EC92 - cmp r0, #0 - beq _0800EC92 - ldr r1, _0800EC40 - adds r0, r6, r1 - ldrb r0, [r0] - adds r5, r0, #0 - cmp r5, #0 - bne _0800EC88 - ldr r0, _0800EC44 - adds r4, r6, r0 - ldrb r0, [r4] - cmp r0, #0 - beq _0800EC68 - bl sub_08011858 - strb r5, [r4] - ldr r1, _0800EC48 - adds r0, r6, r1 - ldrb r0, [r0] - cmp r0, #1 - bne _0800EC4C - movs r4, #0x80 - lsls r4, r4, #8 - movs r0, #2 - adds r1, r4, #0 - bl sub_08011554 - adds r0, r4, #0 - bl sub_08010C60 - b _0800EC92 - .align 2, 0 -_0800EC34: .4byte 0x00000993 -_0800EC38: .4byte 0x0000099A -_0800EC3C: .4byte gUnknown_3007630 -_0800EC40: .4byte 0x00000994 -_0800EC44: .4byte 0x0000099B -_0800EC48: .4byte 0x0000099C -_0800EC4C: - ldr r0, _0800EC60 - ldrb r4, [r0] - cmp r4, #0 - bne _0800EC68 - bl sub_0800E894 - ldr r0, _0800EC64 - strb r4, [r0] - b _0800EC92 - .align 2, 0 -_0800EC60: .4byte gUnknown_30041E0 -_0800EC64: .4byte gUnknown_30031C4 -_0800EC68: - bl sub_0800EA70 - ldr r0, _0800EC80 - ldr r1, _0800EC84 - adds r0, r0, r1 - ldrb r0, [r0] - bl rfu_UNI_readySendData - movs r0, #1 - bl rfu_REQ_sendData_wrapper - b _0800EC8C - .align 2, 0 -_0800EC80: .4byte gUnknown_30050A0 -_0800EC84: .4byte 0x00000992 -_0800EC88: - bl rfu_REQ_PARENT_resumeRetransmitAndChange -_0800EC8C: - ldr r1, _0800EC9C - movs r0, #1 - strb r0, [r1, #0xe] -_0800EC92: - movs r0, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0800EC9C: .4byte gUnknown_30050A0 - thumb_func_end sub_0800EBB8 - - thumb_func_start sub_0800ECA0 -sub_0800ECA0: @ 0x0800ECA0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - ldr r0, _0800ED80 - ldrh r1, [r0, #4] - adds r6, r0, #0 - cmp r1, #0x13 - bhi _0800ECB8 - b _0800EF1A -_0800ECB8: - ldrb r0, [r6, #0xe] - cmp r0, #1 - beq _0800ECC0 - b _0800EF1A -_0800ECC0: - bl rfu_waitREQComplete - ldr r0, _0800ED84 - adds r2, r6, r0 - ldrb r0, [r2] - cmp r0, #0 - bne _0800ECE0 - adds r1, r6, #0 - adds r1, #0xee -_0800ECD2: - ldrb r0, [r1] - cmp r0, #0 - beq _0800ECDA - b _0800EF40 -_0800ECDA: - ldrb r0, [r2] - cmp r0, #0 - beq _0800ECD2 -_0800ECE0: - bl rfu_REQ_recvData - bl rfu_waitREQComplete - ldr r2, _0800ED88 - ldr r4, _0800ED80 - ldr r1, _0800ED8C - adds r0, r4, r1 - ldrb r1, [r2, #3] - ldrb r0, [r0] - ands r1, r0 - cmp r1, r0 - beq _0800ECFC - b _0800EF04 -_0800ECFC: - ldr r6, _0800ED90 - adds r1, r4, r6 - ldrb r0, [r1] - movs r0, #0 - strb r0, [r1] - ldr r1, _0800ED94 - ldrh r0, [r1, #6] - adds r0, #1 - strh r0, [r1, #6] - ldrb r7, [r2] - movs r5, #0 -_0800ED12: - movs r0, #1 - ands r0, r7 - lsrs r1, r7, #1 - str r1, [sp, #4] - adds r2, r5, #1 - str r2, [sp] - cmp r0, #0 - bne _0800ED24 - b _0800EE24 -_0800ED24: - ldr r1, _0800ED80 - lsls r2, r5, #3 - subs r0, r2, r5 - lsls r4, r0, #1 - adds r0, r1, #0 - adds r0, #0x15 - adds r0, r4, r0 - ldrb r0, [r0] - adds r6, r1, #0 - adds r3, r2, #0 - lsls r1, r5, #0x18 - mov sl, r1 - cmp r0, #0 - beq _0800EE1C - ldr r2, _0800ED98 - adds r0, r6, r2 - adds r1, r5, r0 - ldrb r0, [r1] - cmp r0, #0xff - beq _0800EDA0 - adds r0, r6, #0 - adds r0, #0x14 - adds r0, r4, r0 - ldrb r2, [r0] - lsrs r2, r2, #5 - ldrb r0, [r1] - adds r0, #1 - movs r1, #7 - ands r0, r1 - cmp r2, r0 - beq _0800EDA0 - ldr r0, _0800ED9C - adds r1, r6, r0 - adds r1, r5, r1 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bls _0800EE1C - movs r0, #0x81 - lsls r0, r0, #8 - bl sub_08010C60 - b _0800EE1C - .align 2, 0 -_0800ED80: .4byte gUnknown_30050A0 -_0800ED84: .4byte 0x00000993 -_0800ED88: .4byte gUnknown_30041E0 -_0800ED8C: .4byte 0x0000099A -_0800ED90: .4byte 0x00000994 -_0800ED94: .4byte gUnknown_20227FC -_0800ED98: .4byte 0x000009A6 -_0800ED9C: .4byte 0x000009A2 -_0800EDA0: - ldr r2, _0800EEE0 - ldr r6, _0800EEE4 - adds r1, r2, r6 - adds r1, r5, r1 - subs r3, r3, r5 - lsls r3, r3, #1 - adds r4, r2, #0 - adds r4, #0x14 - adds r2, r3, r4 - ldrb r0, [r2] - lsrs r0, r0, #5 - strb r0, [r1] - ldr r1, _0800EEE0 - subs r6, #4 - adds r0, r1, r6 - adds r0, r5, r0 - movs r1, #0 - strb r1, [r0] - ldrb r1, [r2] - movs r0, #0x1f - ands r0, r1 - strb r0, [r2] - ldr r2, _0800EEE8 - adds r0, r5, r2 - ldrb r0, [r0] - movs r6, #0 - lsls r1, r5, #0x18 - mov sl, r1 - lsrs r2, r7, #1 - str r2, [sp, #4] - adds r5, #1 - str r5, [sp] - ldr r1, _0800EEEC - mov sb, r1 - adds r5, r3, #0 - adds r7, r4, #0 - lsls r0, r0, #4 - mov r8, r0 - adds r2, r5, #1 - mov ip, r2 -_0800EDF0: - lsls r1, r6, #1 - mov r0, r8 - adds r4, r1, r0 - add r4, sb - mov r2, ip - adds r3, r1, r2 - adds r3, r3, r7 - ldrb r2, [r3] - lsls r2, r2, #8 - adds r1, r1, r5 - adds r1, r1, r7 - ldrb r0, [r1] - orrs r0, r2 - strh r0, [r4] - movs r0, #0 - strb r0, [r3] - strb r0, [r1] - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #6 - bls _0800EDF0 -_0800EE1C: - mov r1, sl - lsrs r0, r1, #0x18 - bl rfu_UNI_clearRecvNewDataFlag -_0800EE24: - ldr r2, [sp, #4] - lsls r0, r2, #0x10 - lsrs r7, r0, #0x10 - ldr r6, [sp] - lsls r0, r6, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #3 - bhi _0800EE36 - b _0800ED12 -_0800EE36: - bl sub_0800EAD4 - movs r0, #0 - bl sub_0800F350 - bl sub_08010028 - ldr r4, _0800EEE0 - ldr r1, _0800EEF0 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _0800EF12 - ldr r2, _0800EEF4 - adds r0, r4, r2 - ldrb r2, [r0] - cmp r2, #0 - bne _0800EF12 - ldr r0, _0800EEF8 - ldrb r1, [r0, #0xe] - strb r2, [r0, #0xe] - ldr r6, _0800EEFC - adds r0, r4, r6 - ldrb r1, [r0] - movs r0, #3 - bl rfu_clearSlot - movs r5, #0 - adds r7, r4, #0 - adds r7, #0x14 -_0800EE72: - ldr r0, _0800EEF0 - adds r6, r4, r0 - ldrb r0, [r6] - asrs r0, r5 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0800EE96 - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r5, #3 - subs r2, r2, r5 - lsls r2, r2, #1 - adds r2, r2, r7 - movs r0, #0x10 - movs r3, #0xe - bl rfu_setRecvBuffer -_0800EE96: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #3 - bls _0800EE72 - subs r4, r6, #3 - ldrb r0, [r4] - ldrb r2, [r6] - adds r1, r0, #0 - orrs r1, r2 - bl sub_0800E350 - ldrb r1, [r6] - movs r2, #0 - strb r1, [r6, #4] - ldrb r0, [r4] - orrs r0, r1 - strb r0, [r4] - strb r2, [r6] - ldrb r0, [r4] - adds r1, r6, #0 - subs r1, #0x5e - movs r2, #0x46 - bl rfu_UNI_setSendData - ldrb r0, [r4] - bl sub_0800E340 - adds r1, r6, #0 - subs r1, #0xb - strb r0, [r1] - ldr r0, _0800EF00 - movs r1, #0 - bl CreateTask - b _0800EF12 - .align 2, 0 -_0800EEE0: .4byte gUnknown_30050A0 -_0800EEE4: .4byte 0x000009A6 -_0800EEE8: .4byte gUnknown_3005A36 -_0800EEEC: .4byte gUnknown_3003130 -_0800EEF0: .4byte 0x0000099D -_0800EEF4: .4byte 0x00000991 -_0800EEF8: .4byte gUnknown_20227FC -_0800EEFC: .4byte 0x00000992 -_0800EF00: .4byte sub_080105A4 -_0800EF04: - ldr r2, _0800EF34 - adds r1, r4, r2 - ldrb r0, [r1] - movs r2, #0 - movs r0, #1 - strb r0, [r1] - strb r2, [r4, #0xe] -_0800EF12: - ldr r1, _0800EF38 - movs r0, #0 - strb r0, [r1, #0xe] - adds r6, r1, #0 -_0800EF1A: - ldr r1, _0800EF34 - adds r0, r6, r1 - ldrb r0, [r0] - adds r1, r0, #0 - ldr r0, _0800EF3C - ldr r0, [r0] - ldrb r0, [r0, #6] - cmp r0, #0 - beq _0800EF44 - movs r0, #1 - ands r0, r1 - b _0800EF46 - .align 2, 0 -_0800EF34: .4byte 0x00000994 -_0800EF38: .4byte gUnknown_30050A0 -_0800EF3C: .4byte gUnknown_3007630 -_0800EF40: - movs r0, #0 - b _0800EF46 -_0800EF44: - movs r0, #0 -_0800EF46: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0800ECA0 - - thumb_func_start sub_0800EF58 -sub_0800EF58: @ 0x0800EF58 - push {r4, r5, lr} - adds r4, r0, #0 - adds r2, r1, #0 - ldrh r1, [r4] - cmp r1, #0 - beq _0800EF9C - ldr r0, _0800EF98 - movs r5, #0x81 - lsls r5, r5, #1 - adds r3, r0, r5 - ldrb r0, [r3] - lsls r0, r0, #5 - orrs r0, r1 - strh r0, [r4] - ldrb r0, [r3] - adds r0, #1 - movs r1, #7 - ands r0, r1 - strb r0, [r3] - adds r3, r4, #0 - movs r4, #6 -_0800EF82: - ldrh r1, [r3] - lsrs r0, r1, #8 - strb r0, [r2, #1] - strb r1, [r2] - adds r2, #2 - adds r3, #2 - subs r4, #1 - cmp r4, #0 - bge _0800EF82 - b _0800EFAA - .align 2, 0 -_0800EF98: .4byte gUnknown_30050A0 -_0800EF9C: - movs r1, #0 - adds r0, r2, #0 - adds r0, #0xd -_0800EFA2: - strb r1, [r0] - subs r0, #1 - cmp r0, r2 - bge _0800EFA2 -_0800EFAA: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_0800EF58 - - thumb_func_start sub_0800EFB0 -sub_0800EFB0: @ 0x0800EFB0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x58 - ldr r0, _0800F0D4 - mov r1, sp - bl sub_0800D3F4 - movs r1, #0 - ldr r0, _0800F0D8 - mov ip, r0 -_0800EFC6: - movs r4, #0 - lsls r0, r1, #3 - adds r2, r1, #1 - mov r8, r2 - lsls r6, r1, #4 - subs r0, r0, r1 - lsls r5, r0, #1 -_0800EFD4: - lsls r1, r4, #1 - adds r3, r1, r6 - add r3, ip - adds r1, r5, r1 - adds r0, r1, #1 - add r0, sp - ldrb r2, [r0] - lsls r2, r2, #8 - mov r7, sp - adds r0, r7, r1 - ldrb r0, [r0] - orrs r0, r2 - strh r0, [r3] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #6 - bls _0800EFD4 - mov r1, r8 - lsls r0, r1, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #4 - bls _0800EFC6 - movs r0, #0 - bl sub_0800F350 - ldr r0, _0800F0DC - ldrb r0, [r0, #2] - cmp r0, #0 - bne _0800F080 - ldr r0, _0800F0E0 - ldr r2, _0800F0E4 - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _0800F080 - ldr r0, _0800F0E8 - ldr r0, [r0] - ldrb r1, [r0, #2] - ldrb r0, [r0, #3] - orrs r0, r1 - bl rfu_REQ_disconnect - bl rfu_waitREQComplete - bl sub_08011564 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0800F04C - cmp r0, #6 - beq _0800F04C - cmp r0, #9 - beq _0800F04C - movs r1, #0x90 - lsls r1, r1, #8 - movs r0, #2 - bl sub_08011554 -_0800F04C: - bl rfu_clearAllSlot - ldr r1, _0800F0EC - movs r0, #0 - strb r0, [r1] - ldr r0, _0800F0E0 - movs r5, #0 - str r5, [r0] - ldr r7, _0800F0E4 - adds r6, r0, r7 - ldrb r0, [r6] - cmp r0, #1 - bne _0800F078 - movs r4, #0x90 - lsls r4, r4, #8 - movs r0, #2 - adds r1, r4, #0 - bl sub_08011554 - adds r0, r4, #0 - bl sub_08010C60 -_0800F078: - ldr r0, _0800F0DC - strb r5, [r0, #5] - strb r5, [r0, #4] - strb r5, [r6] -_0800F080: - ldr r6, _0800F0E0 - ldr r0, _0800F0F0 - adds r2, r6, r0 - ldrb r0, [r2] - cmp r0, #0 - beq _0800F0C4 - ldrb r0, [r2] - subs r0, #1 - ldrb r1, [r2] - strb r0, [r2] - bl sub_08010028 - ldr r5, _0800F0F4 - add r4, sp, #0x48 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0800EF58 - movs r1, #0xd4 - lsls r1, r1, #3 - adds r0, r6, r1 - adds r1, r4, #0 - bl sub_0800D348 - movs r1, #0 - movs r2, #0 -_0800F0B4: - lsls r0, r1, #1 - adds r0, r0, r5 - strh r2, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #6 - bls _0800F0B4 -_0800F0C4: - bl IsRfuRecvQueueEmpty - add sp, #0x58 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0800F0D4: .4byte gUnknown_30051C4 -_0800F0D8: .4byte gUnknown_3003130 -_0800F0DC: .4byte gUnknown_30041E0 -_0800F0E0: .4byte gUnknown_30050A0 -_0800F0E4: .4byte 0x0000099C -_0800F0E8: .4byte gUnknown_3007630 -_0800F0EC: .4byte gUnknown_30031C4 -_0800F0F0: .4byte 0x00000988 -_0800F0F4: .4byte gUnknown_30031B0 - thumb_func_end sub_0800EFB0 - - thumb_func_start sub_0800F0F8 -sub_0800F0F8: @ 0x0800F0F8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _0800F1A4 - ldr r2, [r0, #0x70] - mov sl, r2 - movs r5, #0 - adds r2, r0, #0 - adds r2, #0x6e - ldrh r3, [r2] - cmp r5, r3 - bge _0800F194 - mov sb, r0 - ldr r0, _0800F1A8 - mov r8, r0 -_0800F11A: - movs r0, #1 - ands r0, r1 - lsrs r7, r1, #1 - adds r6, r5, #1 - cmp r0, #0 - bne _0800F188 - ldr r1, _0800F1AC - adds r0, r1, #0 - adds r1, r5, #0 - orrs r1, r0 - mov r2, r8 - strh r1, [r2] - movs r4, #0 - lsls r0, r5, #1 - ldr r3, _0800F1B0 - mov ip, r3 - adds r0, r0, r5 - lsls r0, r0, #2 - mov r1, sl - adds r2, r0, r1 - mov r3, r8 - adds r3, #2 -_0800F146: - ldrb r1, [r2, #1] - lsls r1, r1, #8 - ldrb r0, [r2] - orrs r0, r1 - strh r0, [r3] - adds r2, #2 - adds r3, #2 - adds r4, #1 - cmp r4, #6 - ble _0800F146 - movs r4, #0 - ldr r2, _0800F1A8 - ldr r1, _0800F1B0 -_0800F160: - ldrh r0, [r2] - lsrs r0, r0, #8 - strb r0, [r1, #1] - ldrh r0, [r2] - strb r0, [r1] - adds r2, #2 - adds r1, #2 - adds r4, #1 - cmp r4, #6 - ble _0800F160 - ldr r0, _0800F1B4 - mov r1, ip - bl sub_0800D348 - movs r1, #1 - lsls r1, r5 - mov r2, sb - ldr r0, [r2, #0x78] - orrs r0, r1 - str r0, [r2, #0x78] -_0800F188: - adds r1, r7, #0 - adds r5, r6, #0 - ldr r3, _0800F1B8 - ldrh r3, [r3] - cmp r5, r3 - blt _0800F11A -_0800F194: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800F1A4: .4byte gUnknown_30050A0 -_0800F1A8: .4byte gUnknown_3000D90 -_0800F1AC: .4byte 0xFFFF8900 -_0800F1B0: .4byte gUnknown_3000D80 -_0800F1B4: .4byte gUnknown_3005740 -_0800F1B8: .4byte gUnknown_300510E - thumb_func_end sub_0800F0F8 - - thumb_func_start sub_0800F1BC -sub_0800F1BC: @ 0x0800F1BC - push {lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r0, _0800F1D8 - ldrb r2, [r0, #0xc] - cmp r2, #1 - bne _0800F1DC - cmp r1, #0 - beq _0800F1DC - adds r0, #0x61 - adds r0, r1, r0 - strb r2, [r0] - b _0800F1E4 - .align 2, 0 -_0800F1D8: .4byte gUnknown_30050A0 -_0800F1DC: - adds r0, #0x5c - adds r0, r1, r0 - movs r1, #1 - strb r1, [r0] -_0800F1E4: - pop {r0} - bx r0 - thumb_func_end sub_0800F1BC - - thumb_func_start sub_0800F1E8 -sub_0800F1E8: @ 0x0800F1E8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _0800F208 - adds r1, r3, #0 - adds r1, #0x5c - adds r1, r0, r1 - movs r2, #0 - strb r2, [r1] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - adds r1, #0x92 - strb r2, [r1] - bx lr - .align 2, 0 -_0800F208: .4byte gUnknown_30050A0 - thumb_func_end sub_0800F1E8 - - thumb_func_start sub_0800F20C -sub_0800F20C: @ 0x0800F20C - push {r4, r5, lr} - adds r3, r0, #0 - ldr r0, _0800F220 - ldrb r1, [r0, #0xc] - adds r5, r0, #0 - cmp r1, #1 - bne _0800F224 - movs r0, #0 - b _0800F246 - .align 2, 0 -_0800F220: .4byte gUnknown_30050A0 -_0800F224: - movs r2, #0 - ldr r0, _0800F24C - adds r4, r5, r0 -_0800F22A: - adds r1, r2, r4 - adds r0, r3, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #3 - bls _0800F22A - ldr r1, _0800F250 - adds r0, r5, r1 - ldrb r0, [r0] - adds r0, r0, r3 - ldrb r0, [r0] -_0800F246: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0800F24C: .4byte 0x00000996 -_0800F250: .4byte 0x000008F6 - thumb_func_end sub_0800F20C - - thumb_func_start rfu_func_080F97B8 -rfu_func_080F97B8: @ 0x0800F254 - push {lr} - ldr r0, _0800F28C - ldrb r0, [r0] - cmp r0, #0 - beq _0800F286 - ldr r3, _0800F290 - ldrh r2, [r3] - cmp r2, #0 - beq _0800F286 - ldr r0, _0800F294 - ldrb r0, [r0] - cmp r0, #1 - beq _0800F286 - ldr r1, _0800F298 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldrb r0, [r1] - lsls r0, r0, #8 - orrs r0, r2 - strh r0, [r3] - movs r0, #0xbe - lsls r0, r0, #8 - bl sub_0800F7F8 -_0800F286: - pop {r0} - bx r0 - .align 2, 0 -_0800F28C: .4byte gUnknown_30031C4 -_0800F290: .4byte gUnknown_3005B08 -_0800F294: .4byte gUnknown_3002354 -_0800F298: .4byte gUnknown_3000D78 - thumb_func_end rfu_func_080F97B8 - - thumb_func_start sub_0800F29C -sub_0800F29C: @ 0x0800F29C - ldr r0, _0800F2A0 - bx lr - .align 2, 0 -_0800F2A0: .4byte gUnknown_20227CC - thumb_func_end sub_0800F29C - - thumb_func_start IsSendingKeysToRfu -IsSendingKeysToRfu: @ 0x0800F2A4 - push {lr} - movs r2, #0 - ldr r0, _0800F2BC - ldr r1, [r0] - ldr r0, _0800F2C0 - cmp r1, r0 - bne _0800F2B4 - movs r2, #1 -_0800F2B4: - adds r0, r2, #0 - pop {r1} - bx r1 - .align 2, 0 -_0800F2BC: .4byte gUnknown_30050A0 -_0800F2C0: .4byte rfu_func_080F97B8 - thumb_func_end IsSendingKeysToRfu - - thumb_func_start sub_0800F2C4 -sub_0800F2C4: @ 0x0800F2C4 - push {r4, lr} - ldr r4, _0800F2E4 - ldr r0, [r4] - cmp r0, #0 - beq _0800F2DA - ldr r0, _0800F2E8 - ldr r1, _0800F2EC - ldr r2, _0800F2F0 - movs r3, #1 - bl AGBAssert -_0800F2DA: - ldr r0, _0800F2F4 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800F2E4: .4byte gUnknown_30050A0 -_0800F2E8: .4byte gUnknown_82C053C -_0800F2EC: .4byte 0x000005E6 -_0800F2F0: .4byte gUnknown_82C0544 -_0800F2F4: .4byte rfu_func_080F97B8 - thumb_func_end sub_0800F2C4 - - thumb_func_start sub_0800F2F8 -sub_0800F2F8: @ 0x0800F2F8 - ldr r1, _0800F300 - movs r0, #0 - str r0, [r1] - bx lr - .align 2, 0 -_0800F300: .4byte gUnknown_30050A0 - thumb_func_end sub_0800F2F8 - - thumb_func_start sub_0800F304 -sub_0800F304: @ 0x0800F304 - push {lr} - movs r0, #0x88 - lsls r0, r0, #7 - bl sub_0800F7F8 - bl GetMultiplayerId - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0800F320 - bl GetBlenderArrowPosition - ldr r1, _0800F32C - strh r0, [r1, #0xc] -_0800F320: - ldr r1, _0800F330 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0800F32C: .4byte gUnknown_30031B0 -_0800F330: .4byte gUnknown_2022078 - thumb_func_end sub_0800F304 - - thumb_func_start sub_0800F334 -sub_0800F334: @ 0x0800F334 - push {lr} - ldr r1, _0800F348 - ldr r0, [r1] - cmp r0, #0 - bne _0800F342 - ldr r0, _0800F34C - str r0, [r1] -_0800F342: - pop {r0} - bx r0 - .align 2, 0 -_0800F348: .4byte gUnknown_30050A0 -_0800F34C: .4byte sub_0800F304 - thumb_func_end sub_0800F334 - - thumb_func_start sub_0800F350 -sub_0800F350: @ 0x0800F350 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - movs r0, #0 - mov r8, r0 -_0800F35E: - mov r1, r8 - lsls r0, r1, #4 - ldr r2, _0800F3A4 - adds r1, r0, r2 - ldrh r7, [r1] - movs r3, #0xff - lsls r3, r3, #8 - adds r1, r3, #0 - ands r1, r7 - movs r2, #0x88 - lsls r2, r2, #8 - adds r5, r0, #0 - cmp r1, r2 - beq _0800F444 - cmp r1, r2 - bgt _0800F3BA - movs r0, #0xcc - lsls r0, r0, #7 - cmp r1, r0 - bne _0800F388 - b _0800F5C4 -_0800F388: - cmp r1, r0 - bgt _0800F3A8 - movs r0, #0x88 - lsls r0, r0, #7 - cmp r1, r0 - bne _0800F396 - b _0800F6D8 -_0800F396: - movs r0, #0xbe - lsls r0, r0, #7 - cmp r1, r0 - bne _0800F3A0 - b _0800F5B4 -_0800F3A0: - b _0800F6E8 - .align 2, 0 -_0800F3A4: .4byte gUnknown_3003130 -_0800F3A8: - movs r0, #0xee - lsls r0, r0, #7 - cmp r1, r0 - beq _0800F404 - movs r0, #0xf0 - lsls r0, r0, #7 - cmp r1, r0 - beq _0800F3F2 - b _0800F6E8 -_0800F3BA: - movs r0, #0xbe - lsls r0, r0, #8 - cmp r1, r0 - bne _0800F3C4 - b _0800F6D8 -_0800F3C4: - cmp r1, r0 - bgt _0800F3DC - movs r0, #0x89 - lsls r0, r0, #8 - cmp r1, r0 - beq _0800F4AC - movs r0, #0xa1 - lsls r0, r0, #8 - cmp r1, r0 - bne _0800F3DA - b _0800F590 -_0800F3DA: - b _0800F6E8 -_0800F3DC: - movs r0, #0xed - lsls r0, r0, #8 - cmp r1, r0 - bne _0800F3E6 - b _0800F5F4 -_0800F3E6: - movs r0, #0xee - lsls r0, r0, #8 - cmp r1, r0 - bne _0800F3F0 - b _0800F694 -_0800F3F0: - b _0800F6E8 -_0800F3F2: - ldr r4, _0800F42C - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0800F404 - ldr r0, _0800F430 - ldrb r0, [r0] - cmp r0, #0 - beq _0800F404 - b _0800F734 -_0800F404: - ldr r0, _0800F434 - ldr r0, [r0] - ldrb r0, [r0] - mov r6, r8 - adds r6, #1 - cmp r0, #0 - beq _0800F414 - b _0800F6EC -_0800F414: - ldr r1, _0800F438 - adds r0, r5, r1 - ldrh r0, [r0] - ldr r2, _0800F42C - strb r0, [r2, #0xd] - ldr r3, _0800F43C - adds r0, r5, r3 - bl sub_0800F20C - ldr r4, _0800F440 - strb r0, [r4] - b _0800F6EC - .align 2, 0 -_0800F42C: .4byte gUnknown_30050A0 -_0800F430: .4byte gUnknown_30031C4 -_0800F434: .4byte gUnknown_3007630 -_0800F438: .4byte gUnknown_3003132 -_0800F43C: .4byte gUnknown_3003134 -_0800F440: .4byte gUnknown_3005A26 -_0800F444: - ldr r0, _0800F4A0 - mov sb, r0 - mov r1, r8 - lsls r0, r1, #2 - add r0, r8 - lsls r7, r0, #2 - mov r2, sb - adds r3, r7, r2 - movs r4, #0x92 - adds r4, r4, r3 - mov ip, r4 - ldrb r4, [r4] - mov r6, r8 - adds r6, #1 - cmp r4, #0 - beq _0800F466 - b _0800F6EC -_0800F466: - adds r0, r3, #0 - adds r0, #0x80 - movs r2, #0 - strh r4, [r0] - ldr r1, _0800F4A4 - adds r0, r5, r1 - ldrh r0, [r0] - adds r1, r3, #0 - adds r1, #0x82 - strh r0, [r1] - ldr r1, _0800F4A8 - adds r0, r5, r1 - ldrh r1, [r0] - adds r0, r3, #0 - adds r0, #0x91 - strb r1, [r0] - mov r0, sb - adds r0, #0x88 - adds r0, r7, r0 - str r4, [r0] - movs r0, #1 - mov r3, ip - strb r0, [r3] - mov r0, sb - adds r0, #0x5c - add r0, r8 - strb r2, [r0] - b _0800F6EC - .align 2, 0 -_0800F4A0: .4byte gUnknown_30050A0 -_0800F4A4: .4byte gUnknown_3003132 -_0800F4A8: .4byte gUnknown_3003134 -_0800F4AC: - ldr r4, _0800F57C - mov sb, r4 - mov r0, r8 - lsls r1, r0, #2 - adds r0, r1, r0 - lsls r4, r0, #2 - mov r3, sb - adds r2, r4, r3 - adds r0, r2, #0 - adds r0, #0x92 - ldrb r3, [r0] - mov sl, r1 - mov r6, r8 - adds r6, #1 - cmp r3, #1 - beq _0800F4CE - b _0800F6EC -_0800F4CE: - movs r0, #0xff - ands r0, r7 - adds r2, #0x80 - strh r0, [r2] - mov r1, sb - adds r1, #0x88 - adds r1, r4, r1 - lsls r3, r0 - ldr r0, [r1] - orrs r0, r3 - str r0, [r1] - movs r4, #0 - ldr r0, _0800F580 - mov sb, r0 - mov ip, r2 - mov r1, r8 - lsls r7, r1, #8 - adds r3, r5, #0 -_0800F4F2: - mov r2, ip - ldrh r0, [r2] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - lsls r1, r1, #1 - adds r1, r1, r7 - add r1, sb - adds r2, r4, #1 - lsls r0, r2, #1 - adds r0, r0, r3 - ldr r4, _0800F584 - adds r0, r0, r4 - ldrh r0, [r0] - strh r0, [r1] - lsls r2, r2, #0x10 - lsrs r4, r2, #0x10 - cmp r4, #5 - bls _0800F4F2 - ldr r4, _0800F57C - mov r0, sl - add r0, r8 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #0x88 - adds r1, r0, r1 - adds r2, r0, r4 - adds r0, r2, #0 - adds r0, #0x82 - ldrh r0, [r0] - lsls r0, r0, #2 - ldr r3, _0800F588 - adds r0, r0, r3 - ldr r1, [r1] - ldr r0, [r0] - cmp r1, r0 - beq _0800F540 - b _0800F6EC -_0800F540: - adds r1, r2, #0 - adds r1, #0x92 - movs r0, #2 - strb r0, [r1] - mov r1, r8 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - bl sub_0800F1BC - bl sub_0800F29C - ldrb r1, [r0, #0xa] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x45 - beq _0800F562 - b _0800F6EC -_0800F562: - ldr r0, _0800F58C - ldrb r0, [r0] - cmp r0, #0 - bne _0800F56C - b _0800F6EC -_0800F56C: - ldrb r0, [r4, #0xc] - cmp r0, #0 - beq _0800F574 - b _0800F6EC -_0800F574: - ldr r0, _0800F580 - bl sub_08010568 - b _0800F6EC - .align 2, 0 -_0800F57C: .4byte gUnknown_30050A0 -_0800F580: .4byte gUnknown_202207C -_0800F584: .4byte gUnknown_3003130 -_0800F588: .4byte gUnknown_82C0378 -_0800F58C: .4byte gUnknown_30031C4 -_0800F590: - ldr r2, _0800F5AC - ldr r3, _0800F5B0 - adds r0, r5, r3 - ldrh r1, [r0] - lsls r1, r1, #3 - adds r0, r1, r2 - ldr r0, [r0] - adds r2, #4 - adds r1, r1, r2 - ldrh r1, [r1] - bl sub_0800F968 - b _0800F6E8 - .align 2, 0 -_0800F5AC: .4byte gUnknown_82C0408 -_0800F5B0: .4byte gUnknown_3003132 -_0800F5B4: - ldr r1, _0800F5C0 - add r1, r8 - movs r0, #1 - strb r0, [r1] - b _0800F6E8 - .align 2, 0 -_0800F5C0: .4byte gUnknown_3005184 -_0800F5C4: - ldr r2, _0800F5EC - movs r4, #0x80 - lsls r4, r4, #1 - adds r0, r2, r4 - ldr r3, _0800F5F0 - adds r1, r5, r3 - ldrh r0, [r0] - mov r6, r8 - adds r6, #1 - ldrh r1, [r1] - cmp r0, r1 - beq _0800F5DE - b _0800F6EC -_0800F5DE: - adds r0, r2, #0 - adds r0, #0xe9 - add r0, r8 - movs r1, #1 - strb r1, [r0] - b _0800F6EC - .align 2, 0 -_0800F5EC: .4byte gUnknown_30050A0 -_0800F5F0: .4byte gUnknown_3003132 -_0800F5F4: - ldr r7, _0800F640 - ldrb r2, [r7, #0xc] - cmp r2, #0 - bne _0800F65C - ldr r3, _0800F644 - ldrb r0, [r3] - mov r6, r8 - adds r6, #1 - cmp r0, #0 - beq _0800F6EC - ldr r0, _0800F648 - adds r4, r5, r0 - ldrh r1, [r4] - ldr r0, _0800F64C - ldr r0, [r0] - ldrb r0, [r0, #2] - ands r1, r0 - cmp r1, #0 - beq _0800F62C - strb r2, [r3] - bl sub_0800D0EC - ldr r1, _0800F650 - adds r0, r5, r1 - ldrh r1, [r0] - ldr r2, _0800F654 - adds r0, r7, r2 - strb r1, [r0] -_0800F62C: - ldr r0, _0800F658 - adds r0, #6 - adds r0, r5, r0 - ldrh r0, [r0] - strb r0, [r7, #0xd] - ldrh r0, [r4] - bl sub_080104E8 - b _0800F6EC - .align 2, 0 -_0800F640: .4byte gUnknown_30050A0 -_0800F644: .4byte gUnknown_30031C4 -_0800F648: .4byte gUnknown_3003132 -_0800F64C: .4byte gUnknown_3007630 -_0800F650: .4byte gUnknown_3003134 -_0800F654: .4byte 0x0000099C -_0800F658: .4byte gUnknown_3003130 -_0800F65C: - movs r0, #0xee - lsls r0, r0, #8 - bl sub_0800F7F8 - ldr r1, _0800F684 - ldr r3, _0800F688 - adds r0, r5, r3 - ldrh r0, [r0] - strh r0, [r1, #2] - ldr r4, _0800F68C - adds r0, r5, r4 - ldrh r0, [r0] - strh r0, [r1, #4] - ldr r0, _0800F690 - adds r0, #6 - adds r0, r5, r0 - ldrh r0, [r0] - strh r0, [r1, #6] - b _0800F6E8 - .align 2, 0 -_0800F684: .4byte gUnknown_30031B0 -_0800F688: .4byte gUnknown_3003132 -_0800F68C: .4byte gUnknown_3003134 -_0800F690: .4byte gUnknown_3003130 -_0800F694: - ldr r4, _0800F6C4 - ldrb r0, [r4, #0xc] - mov r6, r8 - adds r6, #1 - cmp r0, #1 - bne _0800F728 - ldr r0, _0800F6C8 - adds r2, r4, r0 - ldr r1, _0800F6CC - adds r3, r5, r1 - ldrb r1, [r3] - ldrb r0, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r2, _0800F6D0 - adds r0, r5, r2 - ldrh r1, [r0] - ldr r2, _0800F6D4 - adds r0, r4, r2 - strb r1, [r0] - ldrh r0, [r3] - bl sub_080104E8 - b _0800F6EC - .align 2, 0 -_0800F6C4: .4byte gUnknown_30050A0 -_0800F6C8: .4byte 0x0000099B -_0800F6CC: .4byte gUnknown_3003132 -_0800F6D0: .4byte gUnknown_3003134 -_0800F6D4: .4byte 0x0000099C -_0800F6D8: - ldr r0, _0800F718 - mov r3, r8 - lsls r1, r3, #1 - adds r1, r1, r0 - ldr r4, _0800F71C - adds r0, r5, r4 - ldrh r0, [r0] - strh r0, [r1] -_0800F6E8: - mov r6, r8 - adds r6, #1 -_0800F6EC: - ldr r3, _0800F720 - ldrb r4, [r3, #0xc] - cmp r4, #1 - bne _0800F728 - adds r0, r3, #0 - adds r0, #0x61 - mov r1, r8 - adds r2, r1, r0 - ldrb r0, [r2] - adds r1, r0, #0 - cmp r1, #0 - beq _0800F728 - cmp r1, #4 - bne _0800F724 - adds r0, r3, #0 - adds r0, #0x5c - add r0, r8 - movs r1, #0 - strb r4, [r0] - strb r1, [r2] - b _0800F728 - .align 2, 0 -_0800F718: .4byte gUnknown_30030C0 -_0800F71C: .4byte gUnknown_3003132 -_0800F720: .4byte gUnknown_30050A0 -_0800F724: - adds r0, #1 - strb r0, [r2] -_0800F728: - lsls r0, r6, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - cmp r0, #4 - bhi _0800F734 - b _0800F35E -_0800F734: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0800F350 - - thumb_func_start sub_0800F744 -sub_0800F744: @ 0x0800F744 - push {lr} - movs r2, #0 - ldr r0, _0800F758 - adds r1, r0, #0 - adds r1, #0x92 -_0800F74E: - ldrb r0, [r1] - cmp r0, #0 - beq _0800F75C - movs r0, #0 - b _0800F766 - .align 2, 0 -_0800F758: .4byte gUnknown_30050A0 -_0800F75C: - adds r1, #0x14 - adds r2, #1 - cmp r2, #4 - ble _0800F74E - movs r0, #1 -_0800F766: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0800F744 - - thumb_func_start sub_0800F76C -sub_0800F76C: @ 0x0800F76C - push {r4, lr} - movs r1, #0 - ldr r2, _0800F794 - ldrb r0, [r2, #0xd] - cmp r1, r0 - bge _0800F7A0 - adds r4, r0, #0 - adds r3, r2, #0 - adds r3, #0x92 - adds r2, #0x5c -_0800F780: - ldrb r0, [r3] - cmp r0, #2 - bne _0800F78E - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #1 - beq _0800F798 -_0800F78E: - movs r0, #0 - b _0800F7A2 - .align 2, 0 -_0800F794: .4byte gUnknown_30050A0 -_0800F798: - adds r3, #0x14 - adds r1, #1 - cmp r1, r4 - blt _0800F780 -_0800F7A0: - movs r0, #1 -_0800F7A2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0800F76C - - thumb_func_start sub_0800F7A8 -sub_0800F7A8: @ 0x0800F7A8 - movs r2, #0 - movs r1, #0 - strh r1, [r0] - strh r1, [r0, #2] - str r1, [r0, #4] - str r1, [r0, #8] - strb r2, [r0, #0x10] - strb r2, [r0, #0x11] - strb r2, [r0, #0x12] - bx lr - thumb_func_end sub_0800F7A8 - - thumb_func_start sub_0800F7BC -sub_0800F7BC: @ 0x0800F7BC - push {r4, lr} - movs r2, #0 - movs r1, #0 - ldr r0, _0800F7F4 - adds r3, r0, #0 - adds r3, #0x92 - adds r4, r0, #0 - adds r4, #0x5c -_0800F7CC: - ldrb r0, [r3] - cmp r0, #2 - bne _0800F7E2 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, #1 - bne _0800F7E2 - lsls r0, r1 - orrs r2, r0 - lsls r0, r2, #0x18 - lsrs r2, r0, #0x18 -_0800F7E2: - adds r3, #0x14 - adds r1, #1 - cmp r1, #4 - ble _0800F7CC - adds r0, r2, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0800F7F4: .4byte gUnknown_30050A0 - thumb_func_end sub_0800F7BC - - thumb_func_start sub_0800F7F8 -sub_0800F7F8: @ 0x0800F7F8 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r5, _0800F830 - strh r1, [r5] - movs r0, #0xf0 - lsls r0, r0, #7 - adds r4, r5, #0 - cmp r1, r0 - beq _0800F894 - cmp r1, r0 - bgt _0800F846 - movs r0, #0xbe - lsls r0, r0, #7 - cmp r1, r0 - beq _0800F8E4 - cmp r1, r0 - bgt _0800F834 - movs r0, #0xbc - lsls r0, r0, #6 - cmp r1, r0 - beq _0800F904 - movs r0, #0x88 - lsls r0, r0, #7 - cmp r1, r0 - beq _0800F8F8 - b _0800F92A - .align 2, 0 -_0800F830: .4byte gUnknown_30031B0 -_0800F834: - movs r0, #0xcc - lsls r0, r0, #7 - cmp r1, r0 - beq _0800F8E4 - movs r0, #0xee - lsls r0, r0, #7 - cmp r1, r0 - beq _0800F894 - b _0800F92A -_0800F846: - movs r0, #0xbe - lsls r0, r0, #8 - cmp r1, r0 - beq _0800F924 - cmp r1, r0 - bgt _0800F92A - movs r0, #0x88 - lsls r0, r0, #8 - cmp r1, r0 - beq _0800F864 - movs r0, #0xa1 - lsls r0, r0, #8 - cmp r1, r0 - beq _0800F87C - b _0800F92A -_0800F864: - ldr r0, _0800F878 - adds r1, r0, #0 - adds r1, #0x6e - ldrh r1, [r1] - strh r1, [r5, #2] - adds r0, #0x7d - ldrb r0, [r0] - adds r0, #0x80 - strh r0, [r5, #4] - b _0800F92A - .align 2, 0 -_0800F878: .4byte gUnknown_30050A0 -_0800F87C: - bl sub_0800F744 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0800F92A - ldr r0, _0800F890 - adds r0, #0x5a - ldrb r0, [r0] - b _0800F928 - .align 2, 0 -_0800F890: .4byte gUnknown_30050A0 -_0800F894: - ldr r3, _0800F8D0 - ldr r1, _0800F8D4 - adds r0, r3, r1 - ldr r2, _0800F8D8 - adds r1, r3, r2 - ldrb r2, [r0] - ldrb r0, [r1] - eors r0, r2 - ldr r1, _0800F8DC - adds r0, r0, r1 - ldrb r0, [r0] - adds r0, #1 - strb r0, [r3, #0xd] - ldrb r0, [r3, #0xd] - strh r0, [r4, #2] - adds r2, r4, #4 - movs r4, #0 - ldr r0, _0800F8E0 - adds r3, r3, r0 -_0800F8BA: - adds r1, r2, r4 - adds r0, r4, r3 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _0800F8BA - b _0800F92A - .align 2, 0 -_0800F8D0: .4byte gUnknown_30050A0 -_0800F8D4: .4byte 0x0000099A -_0800F8D8: .4byte 0x0000099B -_0800F8DC: .4byte gUnknown_82C03E5 -_0800F8E0: .4byte 0x00000996 -_0800F8E4: - ldr r0, _0800F8F4 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r4, #2] - b _0800F92A - .align 2, 0 -_0800F8F4: .4byte gUnknown_30050A0 -_0800F8F8: - strh r1, [r5] - ldr r0, _0800F900 - ldrh r0, [r0, #0x2c] - b _0800F928 - .align 2, 0 -_0800F900: .4byte gUnknown_3002360 -_0800F904: - movs r4, #0 - ldr r3, _0800F920 -_0800F908: - adds r2, r4, #1 - lsls r1, r2, #1 - adds r1, r1, r5 - lsls r0, r4, #1 - adds r0, r0, r3 - ldrh r0, [r0] - strh r0, [r1] - lsls r2, r2, #0x18 - lsrs r4, r2, #0x18 - cmp r4, #5 - bls _0800F908 - b _0800F92A - .align 2, 0 -_0800F920: .4byte gUnknown_3005192 -_0800F924: - ldr r0, _0800F930 - ldrh r0, [r0] -_0800F928: - strh r0, [r5, #2] -_0800F92A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0800F930: .4byte gUnknown_3005B08 - thumb_func_end sub_0800F7F8 - - thumb_func_start sub_0800F934 -sub_0800F934: @ 0x0800F934 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0800F960 - ldrh r0, [r0] - cmp r0, #0 - bne _0800F95A - bl sub_08011570 - cmp r0, #0 - bne _0800F95A - ldr r0, _0800F964 - adds r1, r4, #0 - movs r2, #0xc - bl memcpy - movs r0, #0xbc - lsls r0, r0, #6 - bl sub_0800F7F8 -_0800F95A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800F960: .4byte gUnknown_30031B0 -_0800F964: .4byte gUnknown_3005192 - thumb_func_end sub_0800F934 - - thumb_func_start sub_0800F968 -sub_0800F968: @ 0x0800F968 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - adds r6, r1, #0 - cmp r6, #0xfc - bls _0800F984 - ldr r0, _0800F9B0 - ldr r1, _0800F9B4 - ldr r2, _0800F9B8 - movs r3, #1 - bl AGBAssert -_0800F984: - ldr r5, _0800F9BC - ldr r0, [r5] - cmp r0, #0 - bne _0800F9AC - ldr r0, _0800F9C0 - ldrh r0, [r0] - cmp r0, #0 - bne _0800F9AC - movs r0, #0x7c - adds r0, r0, r5 - mov sb, r0 - ldrb r1, [r0] - mov r8, r1 - cmp r1, #0 - beq _0800F9C8 - ldr r1, _0800F9C4 - adds r1, #0x83 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_0800F9AC: - movs r0, #0 - b _0800FA32 - .align 2, 0 -_0800F9B0: .4byte gUnknown_82C053C -_0800F9B4: .4byte 0x00000755 -_0800F9B8: .4byte gUnknown_82C0558 -_0800F9BC: .4byte gUnknown_30050A0 -_0800F9C0: .4byte gUnknown_30031B0 -_0800F9C4: .4byte gUnknown_20227FC -_0800F9C8: - adds r0, r6, #0 - movs r1, #0xc - bl __umodsi3 - rsbs r4, r0, #0 - orrs r4, r0 - lsrs r4, r4, #0x1f - bl GetMultiplayerId - adds r1, r5, #0 - adds r1, #0x7d - strb r0, [r1] - movs r0, #1 - mov r1, sb - strb r0, [r1] - adds r0, r6, #0 - movs r1, #0xc - bl __udivsi3 - adds r0, r0, r4 - adds r1, r5, #0 - adds r1, #0x6e - strh r0, [r1] - adds r0, r5, #0 - adds r0, #0x6c - mov r1, r8 - strh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #1 - cmp r6, r0 - bls _0800FA0A - str r7, [r5, #0x70] - b _0800FA1C -_0800FA0A: - ldr r4, _0800FA40 - cmp r7, r4 - beq _0800FA1A - adds r0, r4, #0 - adds r1, r7, #0 - adds r2, r6, #0 - bl memcpy -_0800FA1A: - str r4, [r5, #0x70] -_0800FA1C: - movs r0, #0x88 - lsls r0, r0, #8 - bl sub_0800F7F8 - ldr r0, _0800FA44 - ldr r1, _0800FA48 - str r1, [r0] - adds r0, #0x5b - movs r1, #0 - strb r1, [r0] - movs r0, #1 -_0800FA32: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0800FA40: .4byte gUnknown_202257C -_0800FA44: .4byte gUnknown_30050A0 -_0800FA48: .4byte rfufunc_80F9F44 - thumb_func_end sub_0800F968 - - thumb_func_start rfufunc_80F9F44 -rfufunc_80F9F44: @ 0x0800FA4C - push {r4, r5, lr} - ldr r0, _0800FA7C - ldrh r0, [r0] - cmp r0, #0 - bne _0800FAA0 - movs r5, #0x88 - lsls r5, r5, #8 - adds r0, r5, #0 - bl sub_0800F7F8 - ldr r4, _0800FA80 - ldrb r0, [r4, #0xc] - cmp r0, #1 - bne _0800FA84 - adds r1, r4, #0 - adds r1, #0x5b - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bls _0800FAA0 - b _0800FA9C - .align 2, 0 -_0800FA7C: .4byte gUnknown_30031B0 -_0800FA80: .4byte gUnknown_30050A0 -_0800FA84: - bl GetMultiplayerId - ldr r1, _0800FAA8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x14 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - cmp r0, r5 - bne _0800FAA0 -_0800FA9C: - ldr r0, _0800FAAC - str r0, [r4] -_0800FAA0: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0800FAA8: .4byte gUnknown_3003130 -_0800FAAC: .4byte sub_0800FAB0 - thumb_func_end rfufunc_80F9F44 - - thumb_func_start sub_0800FAB0 -sub_0800FAB0: @ 0x0800FAB0 - push {r4, r5, r6, lr} - ldr r0, _0800FB1C - mov ip, r0 - ldr r5, [r0, #0x70] - ldr r3, _0800FB20 - mov r2, ip - adds r2, #0x6c - ldrh r1, [r2] - movs r4, #0x89 - lsls r4, r4, #8 - adds r0, r4, #0 - orrs r0, r1 - strh r0, [r3] - movs r4, #0 - adds r6, r2, #0 - adds r3, #2 -_0800FAD0: - lsls r2, r4, #1 - ldrh r1, [r6] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, r0, r5 - ldrb r1, [r0, #1] - lsls r1, r1, #8 - ldrb r0, [r0] - orrs r0, r1 - strh r0, [r3] - adds r3, #2 - adds r4, #1 - cmp r4, #6 - ble _0800FAD0 - mov r0, ip - adds r0, #0x6c - ldrh r1, [r0] - adds r1, #1 - strh r1, [r0] - adds r0, #2 - ldrh r0, [r0] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - cmp r0, r1 - bhi _0800FB14 - mov r0, ip - adds r0, #0x7c - movs r1, #0 - strb r1, [r0] - ldr r0, _0800FB24 - mov r1, ip - str r0, [r1] -_0800FB14: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0800FB1C: .4byte gUnknown_30050A0 -_0800FB20: .4byte gUnknown_30031B0 -_0800FB24: .4byte rfufunc_80FA020 - thumb_func_end sub_0800FAB0 - - thumb_func_start rfufunc_80FA020 -rfufunc_80FA020: @ 0x0800FB28 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r5, _0800FBD0 - ldr r0, [r5, #0x70] - mov r8, r0 - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _0800FBF0 - ldr r3, _0800FBD4 - adds r2, r5, #0 - adds r2, #0x6e - ldrh r0, [r2] - subs r0, #1 - ldr r4, _0800FBD8 - adds r1, r4, #0 - orrs r0, r1 - strh r0, [r3] - movs r4, #0 - mov sb, r5 - ldr r0, _0800FBDC - mov ip, r0 - lsls r5, r6, #4 - adds r7, r2, #0 - adds r3, #2 -_0800FB64: - lsls r2, r4, #1 - ldrh r1, [r7] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - add r0, r8 - adds r1, r0, #0 - subs r1, #0xb - ldrb r1, [r1] - lsls r1, r1, #8 - subs r0, #0xc - ldrb r0, [r0] - orrs r0, r1 - strh r0, [r3] - adds r3, #2 - adds r4, #1 - cmp r4, #6 - ble _0800FB64 - mov r1, ip - adds r0, r5, r1 - ldrb r1, [r0] - mov r3, sb - adds r0, r3, #0 - adds r0, #0x6e - ldrh r0, [r0] - subs r0, #1 - cmp r1, r0 - bne _0800FBF4 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r1, r3, #0 - adds r1, #0x88 - adds r1, r0, r1 - ldr r2, _0800FBE0 - adds r0, r0, r3 - adds r0, #0x82 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, [r1] - ldr r0, [r0] - cmp r1, r0 - beq _0800FBE8 - adds r0, r6, #0 - bl sub_0800F0F8 - ldr r1, _0800FBE4 - adds r1, #0x64 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _0800FBF4 - .align 2, 0 -_0800FBD0: .4byte gUnknown_30050A0 -_0800FBD4: .4byte gUnknown_30031B0 -_0800FBD8: .4byte 0xFFFF8900 -_0800FBDC: .4byte gUnknown_3003130 -_0800FBE0: .4byte gUnknown_82C0378 -_0800FBE4: .4byte gUnknown_20227FC -_0800FBE8: - movs r0, #0 - mov r4, sb - str r0, [r4] - b _0800FBF4 -_0800FBF0: - movs r0, #0 - str r0, [r5] -_0800FBF4: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end rfufunc_80FA020 - - thumb_func_start sub_0800FC00 -sub_0800FC00: @ 0x0800FC00 - push {lr} - ldr r1, _0800FC18 - adds r1, #0x5a - strb r0, [r1] - movs r0, #0xa1 - lsls r0, r0, #8 - bl sub_0800F7F8 - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 -_0800FC18: .4byte gUnknown_30050A0 - thumb_func_end sub_0800FC00 - - thumb_func_start sub_0800FC1C -sub_0800FC1C: @ 0x0800FC1C - push {lr} - bl rfu_clearAllSlot - bl sub_0800BB04 - ldr r1, _0800FC40 - movs r0, #0 - strb r0, [r1] - ldr r2, _0800FC44 - adds r3, r2, #0 - adds r3, #0xef - movs r1, #0 - movs r0, #1 - strb r0, [r3] - str r1, [r2] - pop {r0} - bx r0 - .align 2, 0 -_0800FC40: .4byte gUnknown_30031C4 -_0800FC44: .4byte gUnknown_30050A0 - thumb_func_end sub_0800FC1C - - thumb_func_start sub_0800FC48 -sub_0800FC48: @ 0x0800FC48 - push {lr} - ldr r0, _0800FC64 - ldr r0, [r0] - ldrb r1, [r0, #2] - ldrb r0, [r0, #3] - orrs r0, r1 - bl rfu_REQ_disconnect - bl rfu_waitREQComplete - bl sub_0800FC1C - pop {r0} - bx r0 - .align 2, 0 -_0800FC64: .4byte gUnknown_3007630 - thumb_func_end sub_0800FC48 - - thumb_func_start sub_0800FC68 -sub_0800FC68: @ 0x0800FC68 - push {r4, lr} - ldr r4, _0800FC80 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0800FC88 - bl sub_0800D0EC - ldr r0, _0800FC84 - adds r1, r4, r0 - movs r0, #2 - strb r0, [r1] - b _0800FC8C - .align 2, 0 -_0800FC80: .4byte gUnknown_30050A0 -_0800FC84: .4byte 0x0000099C -_0800FC88: - ldr r0, _0800FC94 - str r0, [r4] -_0800FC8C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800FC94: .4byte sub_0800FC48 - thumb_func_end sub_0800FC68 - - thumb_func_start OpponentHandleEndBounceEffect -OpponentHandleEndBounceEffect: @ 0x0800FC98 - push {lr} - bl sub_0800D0EC - ldr r2, _0800FCBC - ldr r0, _0800FCC0 - adds r1, r2, r0 - movs r0, #1 - strb r0, [r1] - ldr r0, _0800FCC4 - ldr r1, [r0] - ldrb r0, [r1, #2] - ldrb r1, [r1, #3] - orrs r0, r1 - ldr r1, _0800FCC8 - adds r2, r2, r1 - strb r0, [r2] - pop {r0} - bx r0 - .align 2, 0 -_0800FCBC: .4byte gUnknown_30050A0 -_0800FCC0: .4byte 0x0000099C -_0800FCC4: .4byte gUnknown_3007630 -_0800FCC8: .4byte 0x0000099B - thumb_func_end OpponentHandleEndBounceEffect - - thumb_func_start sub_0800FCCC -sub_0800FCCC: @ 0x0800FCCC - push {r4, r5, lr} - ldr r0, _0800FD14 - ldrb r5, [r0, #0xd] - movs r2, #0 - movs r1, #0 - adds r3, r0, #0 - adds r4, r3, #0 - adds r4, #0xe4 -_0800FCDC: - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, #0 - beq _0800FCE6 - adds r2, #1 -_0800FCE6: - adds r1, #1 - cmp r1, #4 - ble _0800FCDC - cmp r2, r5 - bne _0800FD20 - ldr r2, _0800FD18 - ldr r0, [r2] - movs r1, #0x21 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r2] - ldrb r0, [r3, #0xc] - cmp r0, #0 - bne _0800FD1C - adds r0, r3, #0 - adds r0, #0xee - ldrb r1, [r0] - movs r1, #3 - strb r1, [r0] - bl sub_0800FC68 - b _0800FD20 - .align 2, 0 -_0800FD14: .4byte gUnknown_30050A0 -_0800FD18: .4byte gUnknown_2022C90 -_0800FD1C: - ldr r0, _0800FD28 - str r0, [r3] -_0800FD20: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0800FD28: .4byte sub_0800FC68 - thumb_func_end sub_0800FCCC - - thumb_func_start sub_0800FD2C -sub_0800FD2C: @ 0x0800FD2C - push {r4, lr} - ldr r0, _0800FD58 - ldrh r0, [r0] - cmp r0, #0 - bne _0800FD50 - ldr r4, _0800FD5C - movs r1, #0x9a - lsls r1, r1, #4 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _0800FD50 - movs r0, #0xbe - lsls r0, r0, #7 - bl sub_0800F7F8 - ldr r0, _0800FD60 - str r0, [r4] -_0800FD50: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800FD58: .4byte gUnknown_30031B0 -_0800FD5C: .4byte gUnknown_30050A0 -_0800FD60: .4byte sub_0800FCCC - thumb_func_end sub_0800FD2C - - thumb_func_start sub_0800FD64 -sub_0800FD64: @ 0x0800FD64 - push {lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r2, _0800FD88 - ldr r0, [r2] - cmp r0, #0 - bne _0800FD84 - ldr r1, _0800FD8C - adds r0, r2, r1 - movs r1, #1 - strb r1, [r0] - ldr r0, _0800FD90 - str r0, [r2] - adds r0, r3, #0 - bl DestroyTask -_0800FD84: - pop {r0} - bx r0 - .align 2, 0 -_0800FD88: .4byte gUnknown_30050A0 -_0800FD8C: .4byte 0x00000991 -_0800FD90: .4byte sub_0800FD2C - thumb_func_end sub_0800FD64 - - thumb_func_start task_add_05_task_del_08FA224_when_no_RfuFunc -task_add_05_task_del_08FA224_when_no_RfuFunc: @ 0x0800FD94 - push {r4, lr} - ldr r4, _0800FDB4 - adds r0, r4, #0 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0800FDAC - adds r0, r4, #0 - movs r1, #5 - bl CreateTask -_0800FDAC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800FDB4: .4byte sub_0800FD64 - thumb_func_end task_add_05_task_del_08FA224_when_no_RfuFunc - - thumb_func_start sub_0800FDB8 -sub_0800FDB8: @ 0x0800FDB8 - push {r4, r5, lr} - bl GetMultiplayerId - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0800FDE6 - ldr r1, _0800FE50 - ldr r2, _0800FE54 - adds r0, r1, r2 - ldrb r0, [r0] - adds r4, r0, #0 - cmp r4, #0 - bne _0800FDE6 - adds r5, r1, #0 - adds r5, #0xfe - ldrh r0, [r5] - cmp r0, #0x3c - bls _0800FDE6 - movs r0, #0xcc - lsls r0, r0, #7 - bl sub_0800F7F8 - strh r4, [r5] -_0800FDE6: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - movs r1, #0 - cmp r1, r2 - bhs _0800FE12 - ldr r0, _0800FE50 - adds r3, r0, #0 - adds r3, #0xe9 - ldrb r0, [r3] - cmp r0, #0 - beq _0800FE12 -_0800FE00: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, r2 - bhs _0800FE12 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, #0 - bne _0800FE00 -_0800FE12: - ldr r4, _0800FE50 - cmp r1, r2 - bne _0800FE3E - movs r1, #0 - adds r3, r4, #0 - adds r3, #0xe9 - movs r2, #0 -_0800FE20: - adds r0, r1, r3 - strb r2, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #4 - bls _0800FE20 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r4, r1 - ldrh r1, [r0] - adds r1, #1 - movs r2, #0 - strh r1, [r0] - str r2, [r4] -_0800FE3E: - adds r1, r4, #0 - adds r1, #0xfe - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0800FE50: .4byte gUnknown_30050A0 -_0800FE54: .4byte 0x0000069E - thumb_func_end sub_0800FDB8 - - thumb_func_start sub_0800FE58 -sub_0800FE58: @ 0x0800FE58 - push {r4, lr} - ldr r4, _0800FE80 - ldr r1, _0800FE84 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _0800FE7A - ldr r0, _0800FE88 - ldrh r0, [r0] - cmp r0, #0 - bne _0800FE7A - movs r0, #0xcc - lsls r0, r0, #7 - bl sub_0800F7F8 - ldr r0, _0800FE8C - str r0, [r4] -_0800FE7A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800FE80: .4byte gUnknown_30050A0 -_0800FE84: .4byte 0x0000069E -_0800FE88: .4byte gUnknown_30031B0 -_0800FE8C: .4byte sub_0800FDB8 - thumb_func_end sub_0800FE58 - - thumb_func_start sub_0800FE90 -sub_0800FE90: @ 0x0800FE90 - push {r4, lr} - bl GetMultiplayerId - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0800FECC - ldr r4, _0800FEBC - ldr r1, _0800FEC0 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _0800FF1E - ldr r0, _0800FEC4 - ldrh r0, [r0] - cmp r0, #0 - bne _0800FF1E - movs r0, #0xcc - lsls r0, r0, #7 - bl sub_0800F7F8 - ldr r0, _0800FEC8 - b _0800FF1C - .align 2, 0 -_0800FEBC: .4byte gUnknown_30050A0 -_0800FEC0: .4byte 0x0000069E -_0800FEC4: .4byte gUnknown_30031B0 -_0800FEC8: .4byte sub_0800FDB8 -_0800FECC: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - movs r1, #1 - cmp r1, r2 - bhs _0800FEFA - ldr r3, _0800FF24 - adds r0, r3, #0 - adds r0, #0xea - ldrb r0, [r0] - cmp r0, #0 - beq _0800FEFA - adds r3, #0xe9 -_0800FEE8: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, r2 - bhs _0800FEFA - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, #0 - bne _0800FEE8 -_0800FEFA: - cmp r1, r2 - bne _0800FF1E - ldr r4, _0800FF24 - ldr r1, _0800FF28 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _0800FF1E - ldr r0, _0800FF2C - ldrh r0, [r0] - cmp r0, #0 - bne _0800FF1E - movs r0, #0xcc - lsls r0, r0, #7 - bl sub_0800F7F8 - ldr r0, _0800FF30 -_0800FF1C: - str r0, [r4] -_0800FF1E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800FF24: .4byte gUnknown_30050A0 -_0800FF28: .4byte 0x0000069E -_0800FF2C: .4byte gUnknown_30031B0 -_0800FF30: .4byte sub_0800FE58 - thumb_func_end sub_0800FE90 - - thumb_func_start sub_0800FF34 -sub_0800FF34: @ 0x0800FF34 - push {lr} - ldr r1, _0800FF4C - ldr r2, [r1] - cmp r2, #0 - bne _0800FF48 - ldr r0, _0800FF50 - str r0, [r1] - adds r0, r1, #0 - adds r0, #0xfe - strh r2, [r0] -_0800FF48: - pop {r0} - bx r0 - .align 2, 0 -_0800FF4C: .4byte gUnknown_30050A0 -_0800FF50: .4byte sub_0800FE90 - thumb_func_end sub_0800FF34 - - thumb_func_start sub_0800FF54 -sub_0800FF54: @ 0x0800FF54 - push {r4, lr} - adds r3, r0, #0 - ldr r1, _0800FF70 - ldrh r0, [r1] - cmp r0, r3 - beq _0800FF82 - ldr r4, _0800FF74 - adds r2, r1, #0 -_0800FF64: - ldrh r0, [r2] - cmp r0, r4 - bne _0800FF78 - movs r0, #0 - b _0800FF84 - .align 2, 0 -_0800FF70: .4byte gUnknown_82C0430 -_0800FF74: .4byte 0x0000FFFF -_0800FF78: - adds r1, #2 - adds r2, #2 - ldrh r0, [r1] - cmp r0, r3 - bne _0800FF64 -_0800FF82: - movs r0, #1 -_0800FF84: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0800FF54 - - thumb_func_start sub_0800FF8C -sub_0800FF8C: @ 0x0800FF8C - push {lr} - cmp r0, #0 - beq _0800FFA0 - movs r1, #0x96 - lsls r1, r1, #2 - movs r0, #1 - bl sub_0800D00C - movs r0, #0 - b _0800FFAC -_0800FFA0: - movs r0, #0 - movs r1, #0 - bl sub_0800D00C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_0800FFAC: - pop {r1} - bx r1 - thumb_func_end sub_0800FF8C - - thumb_func_start sub_0800FFB0 -sub_0800FFB0: @ 0x0800FFB0 - push {lr} - ldr r0, _0800FFC8 - ldr r1, _0800FFCC - adds r0, r0, r1 - movs r1, #1 - strb r1, [r0] - movs r0, #0 - bl sub_0800BD38 - pop {r0} - bx r0 - .align 2, 0 -_0800FFC8: .4byte gUnknown_30050A0 -_0800FFCC: .4byte 0x00000991 - thumb_func_end sub_0800FFB0 - - thumb_func_start rfu_get_multiplayer_id -rfu_get_multiplayer_id: @ 0x0800FFD0 - push {lr} - ldr r1, _0800FFE4 - ldrb r0, [r1, #0xc] - cmp r0, #1 - beq _0800FFEC - ldr r2, _0800FFE8 - adds r0, r1, r2 - ldrb r0, [r0] - b _0800FFEE - .align 2, 0 -_0800FFE4: .4byte gUnknown_30050A0 -_0800FFE8: .4byte 0x00000986 -_0800FFEC: - movs r0, #0 -_0800FFEE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end rfu_get_multiplayer_id - - thumb_func_start sub_0800FFF4 -sub_0800FFF4: @ 0x0800FFF4 - ldr r0, _0800FFFC - ldrb r0, [r0, #0xd] - bx lr - .align 2, 0 -_0800FFFC: .4byte gUnknown_30050A0 - thumb_func_end sub_0800FFF4 - - thumb_func_start sub_08010000 -sub_08010000: @ 0x08010000 - push {lr} - ldr r2, _08010014 - adds r0, r2, #0 - adds r0, #0xf1 - ldrb r0, [r0] - cmp r0, #2 - bne _08010018 - movs r0, #0 - b _08010024 - .align 2, 0 -_08010014: .4byte gUnknown_30050A0 -_08010018: - movs r1, #0 - ldr r0, [r2] - cmp r0, #0 - bne _08010022 - movs r1, #1 -_08010022: - adds r0, r1, #0 -_08010024: - pop {r1} - bx r1 - thumb_func_end sub_08010000 - - thumb_func_start sub_08010028 -sub_08010028: @ 0x08010028 - push {lr} - ldr r0, _0801003C - ldr r0, [r0] - cmp r0, #0 - beq _08010036 - bl _call_via_r0 -_08010036: - pop {r0} - bx r0 - .align 2, 0 -_0801003C: .4byte gUnknown_30050A0 - thumb_func_end sub_08010028 - - thumb_func_start sub_08010040 -sub_08010040: @ 0x08010040 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r7, #0 - movs r5, #0 - ldr r6, _080100AC - ldr r0, _080100B0 - adds r0, r0, r6 - mov r8, r0 -_08010052: - ldr r1, _080100B4 - adds r0, r6, r1 - adds r4, r5, r0 - ldrb r0, [r4] - subs r0, #5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _080100DA - ldr r1, _080100B8 - lsls r0, r5, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldrh r0, [r0, #0x34] - cmp r0, #0x46 - beq _08010076 - cmp r0, #0x48 - bne _080100C0 -_08010076: - ldr r2, _080100BC - adds r0, r6, r2 - adds r1, r5, r0 - ldrb r0, [r1] - cmp r0, #8 - bne _080100DA - movs r0, #9 - strb r0, [r4] - movs r0, #0xa - strb r0, [r1] - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - movs r0, #8 - bl rfu_clearSlot - movs r0, #0x80 - lsls r0, r0, #0x11 - lsls r0, r5 - lsrs r0, r0, #0x18 - movs r1, #8 - adds r2, r4, #0 - movs r3, #1 - bl rfu_NI_setSendData - movs r7, #1 - b _080100DA - .align 2, 0 -_080100AC: .4byte gUnknown_30050A0 -_080100B0: .4byte 0x000008F6 -_080100B4: .4byte 0x00000989 -_080100B8: .4byte gUnknown_3007620 -_080100BC: .4byte 0x0000098D -_080100C0: - mov r2, r8 - ldrb r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldrh r0, [r0, #0x34] - cmp r0, #0x47 - bne _080100DA - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - movs r0, #8 - bl rfu_clearSlot -_080100DA: - adds r5, #1 - cmp r5, #3 - ble _08010052 - adds r0, r7, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_08010040 - - thumb_func_start sub_080100EC -sub_080100EC: @ 0x080100EC - push {r4, r5, r6, lr} - movs r3, #0 - movs r1, #0 - ldr r5, _08010138 - movs r6, #1 - movs r4, #0 -_080100F8: - adds r2, r1, r5 - ldrb r0, [r2] - cmp r0, #0xb - bne _0801010C - adds r0, r6, #0 - lsls r0, r1 - orrs r3, r0 - lsls r0, r3, #0x18 - lsrs r3, r0, #0x18 - strb r4, [r2] -_0801010C: - adds r1, #1 - cmp r1, #3 - ble _080100F8 - cmp r3, #0 - beq _08010120 - adds r0, r3, #0 - bl rfu_REQ_disconnect - bl rfu_waitREQComplete -_08010120: - movs r1, #0 - ldr r2, _08010138 -_08010124: - adds r0, r1, r2 - ldrb r0, [r0] - subs r0, #0xa - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0801013C - movs r0, #1 - b _08010144 - .align 2, 0 -_08010138: .4byte gUnknown_3005A2D -_0801013C: - adds r1, #1 - cmp r1, #3 - ble _08010124 - movs r0, #0 -_08010144: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080100EC - - thumb_func_start sub_0801014C -sub_0801014C: @ 0x0801014C - push {lr} - adds r2, r0, #0 - adds r0, r1, #0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - adds r1, r2, #0 - bl sub_080117D0 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xff - beq _08010180 - ldr r0, _08010178 - ldr r2, _0801017C - adds r0, r0, r2 - adds r0, r1, r0 - ldrb r0, [r0] - cmp r0, #9 - beq _08010180 - movs r0, #0 - b _08010182 - .align 2, 0 -_08010178: .4byte gUnknown_30050A0 -_0801017C: .4byte 0x00000989 -_08010180: - movs r0, #1 -_08010182: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801014C - - thumb_func_start sub_08010188 -sub_08010188: @ 0x08010188 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r0, r2, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl sub_080117D0 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r5, _080101CC - ldr r0, _080101D0 - adds r5, r5, r0 - adds r5, r4, r5 - strb r6, [r5] - movs r0, #4 - adds r1, r4, #0 - bl rfu_clearSlot - movs r0, #0x80 - lsls r0, r0, #0x11 - lsls r0, r4 - lsrs r0, r0, #0x18 - movs r1, #8 - adds r2, r5, #0 - movs r3, #1 - bl rfu_NI_setSendData - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080101CC: .4byte gUnknown_30050A0 -_080101D0: .4byte 0x00000989 - thumb_func_end sub_08010188 - - thumb_func_start sub_080101D4 -sub_080101D4: @ 0x080101D4 - push {r4, r5, lr} - ldr r4, _08010208 - ldr r0, _0801020C - adds r5, r4, r0 - movs r0, #8 - strb r0, [r5] - ldr r0, _08010210 - adds r4, r4, r0 - ldrb r1, [r4] - movs r0, #4 - bl rfu_clearSlot - ldrb r1, [r4] - movs r0, #0x80 - lsls r0, r0, #0x11 - lsls r0, r1 - lsrs r0, r0, #0x18 - movs r1, #8 - adds r2, r5, #0 - movs r3, #1 - bl rfu_NI_setSendData - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08010208: .4byte gUnknown_30050A0 -_0801020C: .4byte 0x0000093D -_08010210: .4byte 0x000008F6 - thumb_func_end sub_080101D4 - - thumb_func_start sub_08010214 -sub_08010214: @ 0x08010214 - push {lr} - adds r2, r0, #0 - adds r0, r1, #0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - adds r1, r2, #0 - bl sub_080117D0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08010230 - movs r0, #2 - b _0801024A -_08010230: - ldr r1, _08010244 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldrh r0, [r0] - cmp r0, #0 - beq _08010248 - movs r0, #0 - b _0801024A - .align 2, 0 -_08010244: .4byte gUnknown_3007620 -_08010248: - movs r0, #1 -_0801024A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08010214 - - thumb_func_start sub_08010250 -sub_08010250: @ 0x08010250 - push {r4, r5, lr} - bl sub_08010040 - movs r4, #0 - ldr r0, _08010294 - ldr r1, _08010298 - adds r5, r0, r1 -_0801025E: - ldr r1, _0801029C - lsls r0, r4, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldrh r0, [r0] - subs r0, #0x26 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bhi _08010288 - adds r1, r4, r5 - ldrb r0, [r1] - cmp r0, #0xa - bne _0801027E - movs r0, #0xb - strb r0, [r1] -_0801027E: - lsls r1, r4, #0x18 - lsrs r1, r1, #0x18 - movs r0, #4 - bl rfu_clearSlot -_08010288: - adds r4, #1 - cmp r4, #3 - ble _0801025E - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08010294: .4byte gUnknown_30050A0 -_08010298: .4byte 0x0000098D -_0801029C: .4byte gUnknown_3007620 - thumb_func_end sub_08010250 - - thumb_func_start sub_080102A0 -sub_080102A0: @ 0x080102A0 - push {r4, r5, lr} - movs r4, #0 - ldr r1, _08010318 - ldr r2, _0801031C - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #8 - bne _080102DA - ldr r2, _08010320 - ldr r0, _08010324 - adds r1, r1, r0 - ldrb r0, [r1] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - ldrh r0, [r0] - cmp r0, #0x26 - beq _080102D2 - ldrb r0, [r1] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - ldrh r0, [r0] - cmp r0, #0x27 - bne _080102DA -_080102D2: - ldrb r1, [r1] - movs r0, #4 - bl rfu_clearSlot -_080102DA: - ldr r2, _08010320 - ldr r5, _08010318 - ldr r0, _08010324 - adds r1, r5, r0 - ldrb r0, [r1] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - ldrh r0, [r0, #0x34] - cmp r0, #0x46 - beq _080102FE - ldrb r0, [r1] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - ldrh r0, [r0, #0x34] - cmp r0, #0x48 - bne _0801032C -_080102FE: - ldrb r1, [r1] - movs r0, #8 - bl rfu_clearSlot - ldr r2, _08010328 - adds r4, r5, r2 - ldrb r0, [r4] - movs r1, #0 - bl sub_08011554 - ldrb r4, [r4] - b _08010344 - .align 2, 0 -_08010318: .4byte gUnknown_30050A0 -_0801031C: .4byte 0x0000093D -_08010320: .4byte gUnknown_3007620 -_08010324: .4byte 0x000008F6 -_08010328: .4byte 0x0000093E -_0801032C: - ldrb r0, [r1] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - ldrh r0, [r0, #0x34] - cmp r0, #0x47 - bne _08010344 - ldrb r1, [r1] - movs r0, #8 - bl rfu_clearSlot - movs r4, #6 -_08010344: - adds r0, r4, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_080102A0 - - thumb_func_start sub_0801034C -sub_0801034C: @ 0x0801034C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r5, _0801039C - adds r0, r5, #0 - adds r0, #0xf1 - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _08010374 - movs r0, #0x9a - lsls r0, r0, #4 - adds r1, r5, r0 - movs r0, #0 - strb r0, [r1] - adds r0, r6, #0 - bl DestroyTask -_08010374: - ldr r2, _080103A0 - lsls r1, r6, #2 - adds r0, r1, r6 - lsls r0, r0, #3 - adds r4, r0, r2 - movs r2, #8 - ldrsh r0, [r4, r2] - adds r7, r1, #0 - cmp r0, #3 - beq _0801041C - cmp r0, #3 - bgt _080103A4 - cmp r0, #1 - beq _080103CC - cmp r0, #1 - bgt _08010418 - cmp r0, #0 - beq _080103B6 - b _080104D4 - .align 2, 0 -_0801039C: .4byte gUnknown_30050A0 -_080103A0: .4byte gUnknown_3005B60 -_080103A4: - cmp r0, #5 - beq _08010450 - cmp r0, #5 - blt _0801043E - cmp r0, #6 - beq _08010484 - cmp r0, #0x65 - beq _08010404 - b _080104D4 -_080103B6: - bl sub_0800F744 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080103C2 - b _080104D4 -_080103C2: - bl ResetBlockReceivedFlags - bl sub_0800AE24 - b _08010448 -_080103CC: - ldrb r0, [r5, #0xc] - cmp r0, #1 - bne _0801040C - ldr r0, _080103E4 - ldrb r0, [r0] - cmp r0, #0 - beq _080103E8 - movs r0, #0xf0 - lsls r0, r0, #7 - bl sub_0800F7F8 - b _080103F0 - .align 2, 0 -_080103E4: .4byte gUnknown_30031C4 -_080103E8: - movs r0, #0xee - lsls r0, r0, #7 - bl sub_0800F7F8 -_080103F0: - ldr r0, _08010400 - adds r1, r7, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0x65 - strh r0, [r1, #8] - b _080104D4 - .align 2, 0 -_08010400: .4byte gUnknown_3005B60 -_08010404: - ldr r0, _08010414 - ldrh r0, [r0] - cmp r0, #0 - bne _080104D4 -_0801040C: - movs r0, #2 - strh r0, [r4, #8] - b _080104D4 - .align 2, 0 -_08010414: .4byte gUnknown_30031B0 -_08010418: - ldrb r0, [r5, #0xd] - b _08010444 -_0801041C: - ldrb r0, [r5, #0xc] - cmp r0, #1 - bne _08010448 - bl sub_0800F744 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080104D4 - adds r1, r5, #0 - adds r1, #0x5a - movs r0, #0 - strb r0, [r1] - movs r0, #0xa1 - lsls r0, r0, #8 - bl sub_0800F7F8 - b _08010448 -_0801043E: - bl sub_0800F76C - lsls r0, r0, #0x18 -_08010444: - cmp r0, #0 - beq _080104D4 -_08010448: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _080104D4 -_08010450: - movs r4, #0 - ldrb r0, [r5, #0xd] - cmp r4, r0 - bge _0801046E -_08010458: - adds r0, r4, #0 - bl sub_0800AE80 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl sub_0800F1E8 - adds r4, #1 - ldrb r2, [r5, #0xd] - cmp r4, r2 - blt _08010458 -_0801046E: - ldr r0, _08010480 - adds r1, r7, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _080104D4 - .align 2, 0 -_08010480: .4byte gUnknown_3005B60 -_08010484: - adds r0, r6, #0 - bl DestroyTask - ldr r1, _080104DC - movs r0, #1 - strb r0, [r1] - movs r0, #0x9a - lsls r0, r0, #4 - adds r1, r5, r0 - movs r0, #0 - strb r0, [r1] - movs r1, #0x96 - lsls r1, r1, #2 - movs r0, #1 - bl sub_0800D00C - ldr r2, _080104E0 - adds r1, r5, r2 - ldrb r0, [r1] - cmp r0, #0 - beq _080104D4 - movs r4, #0 - adds r2, r1, #0 - movs r3, #1 - ldr r0, _080104E4 - adds r5, r5, r0 -_080104B8: - ldrb r0, [r2] - asrs r0, r4 - ands r0, r3 - cmp r0, #0 - beq _080104CE - adds r0, r3, #0 - lsls r0, r4 - strb r0, [r5] - ldrb r1, [r2] - eors r0, r1 - strb r0, [r2] -_080104CE: - adds r4, #1 - cmp r4, #3 - ble _080104B8 -_080104D4: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080104DC: .4byte gUnknown_30031C4 -_080104E0: .4byte 0x0000099E -_080104E4: .4byte 0x0000099D - thumb_func_end sub_0801034C - - thumb_func_start sub_080104E8 -sub_080104E8: @ 0x080104E8 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - movs r1, #0 - movs r5, #1 - ldr r4, _08010510 - movs r3, #0 -_080104F6: - adds r0, r2, #0 - asrs r0, r1 - ands r0, r5 - cmp r0, #0 - beq _08010504 - adds r0, r1, r4 - strb r3, [r0] -_08010504: - adds r1, #1 - cmp r1, #3 - ble _080104F6 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08010510: .4byte gUnknown_3005A36 - thumb_func_end sub_080104E8 - - thumb_func_start sub_08010514 -sub_08010514: @ 0x08010514 - push {r4, r5, r6, r7, lr} - adds r3, r0, #0 - ldr r1, _0801055C - ldrb r0, [r3, #0xf] - strb r0, [r1, #0xd] - movs r2, #0 - ldr r0, _08010560 - adds r5, r1, r0 - adds r4, r3, #0 - adds r4, #0x10 -_08010528: - adds r0, r2, r5 - adds r1, r4, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, #3 - ble _08010528 - ldr r4, _08010564 - movs r2, #4 -_0801053A: - adds r0, r4, #0 - adds r1, r3, #0 - adds r1, #0x14 - ldm r1!, {r5, r6, r7} - stm r0!, {r5, r6, r7} - ldm r1!, {r5, r6, r7} - stm r0!, {r5, r6, r7} - ldr r1, [r1] - str r1, [r0] - adds r3, #0x1c - adds r4, #0x1c - subs r2, #1 - cmp r2, #0 - bge _0801053A - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0801055C: .4byte gUnknown_30050A0 -_08010560: .4byte 0x00000996 -_08010564: .4byte gUnknown_20226A0 - thumb_func_end sub_08010514 - - thumb_func_start sub_08010568 -sub_08010568: @ 0x08010568 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - ldr r0, _0801059C - adds r1, r4, #0 - bl strcmp - adds r5, r0, #0 - cmp r5, #0 - bne _08010594 - adds r0, r4, #0 - bl sub_08010514 - mov r0, sp - strh r5, [r0] - ldr r2, _080105A0 - adds r1, r4, #0 - bl CpuSet - movs r0, #0 - bl ResetBlockReceivedFlag -_08010594: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0801059C: .4byte gUnknown_82C0564 -_080105A0: .4byte 0x0100007E - thumb_func_end sub_08010568 - - thumb_func_start sub_080105A4 -sub_080105A4: @ 0x080105A4 - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r3, _08010604 - ldr r2, _08010608 - ldr r1, _0801060C - adds r0, r3, r1 - ldrb r1, [r0] - adds r1, r1, r2 - ldr r2, _08010610 - adds r0, r3, r2 - ldrb r1, [r1] - adds r0, r0, r1 - ldrb r4, [r0] - adds r0, r3, #0 - adds r0, #0xf1 - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _080105E2 - movs r0, #0x9a - lsls r0, r0, #4 - adds r1, r3, r0 - movs r0, #0 - strb r0, [r1] - adds r0, r6, #0 - bl DestroyTask -_080105E2: - ldr r0, _08010614 - lsls r2, r6, #2 - adds r1, r2, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r3, #8 - ldrsh r1, [r1, r3] - adds r3, r0, #0 - adds r7, r2, #0 - cmp r1, #5 - bls _080105FA - b _080107E2 -_080105FA: - lsls r0, r1, #2 - ldr r1, _08010618 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08010604: .4byte gUnknown_30050A0 -_08010608: .4byte gUnknown_82C03DC -_0801060C: .4byte 0x000009A1 -_08010610: .4byte 0x00000996 -_08010614: .4byte gUnknown_3005B60 -_08010618: .4byte _0801061C -_0801061C: @ jump table - .4byte _08010634 @ case 0 - .4byte _08010654 @ case 1 - .4byte _0801066C @ case 2 - .4byte _080106B0 @ case 3 - .4byte _080106FA @ case 4 - .4byte _08010784 @ case 5 -_08010634: - ldr r0, _08010650 - ldrh r0, [r0] - cmp r0, #0 - beq _0801063E - b _080107E2 -_0801063E: - adds r0, r4, #0 - bl ResetBlockReceivedFlag - movs r0, #0xf0 - lsls r0, r0, #7 - bl sub_0800F7F8 - b _0801073A - .align 2, 0 -_08010650: .4byte gUnknown_30031B0 -_08010654: - ldr r0, _08010668 - ldrh r0, [r0] - cmp r0, #0 - beq _0801065E - b _080107E2 -_0801065E: - adds r1, r7, r6 - lsls r1, r1, #3 - adds r1, r1, r3 - b _08010742 - .align 2, 0 -_08010668: .4byte gUnknown_30031B0 -_0801066C: - bl GetBlockReceivedStatus - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - asrs r0, r4 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08010680 - b _080107E2 -_08010680: - adds r0, r4, #0 - bl ResetBlockReceivedFlag - lsls r1, r4, #8 - ldr r0, _080106A8 - adds r1, r1, r0 - ldr r2, _080106AC - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r1, #0x10 - ldm r1!, {r2, r3, r4} - stm r0!, {r2, r3, r4} - ldm r1!, {r2, r3, r4} - stm r0!, {r2, r3, r4} - ldr r1, [r1] - str r1, [r0] - b _0801073A - .align 2, 0 -_080106A8: .4byte gUnknown_202207C -_080106AC: .4byte gUnknown_20226A0 -_080106B0: - ldr r5, _0801074C - adds r1, r5, #0 - ldr r0, _08010750 - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - ldrh r2, [r0] - strh r2, [r1] - ldrb r0, [r0, #2] - strb r0, [r1, #2] - ldr r1, _08010754 - ldrb r0, [r1, #0xd] - strb r0, [r5, #0xf] - movs r2, #0 - adds r4, r5, #0 - adds r4, #0x10 - ldr r0, _08010758 - adds r3, r1, r0 -_080106D2: - adds r0, r4, r2 - adds r1, r2, r3 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, #3 - ble _080106D2 - ldr r1, _0801075C - adds r0, r5, #0 - adds r0, #0x14 - movs r2, #0x8c - bl memcpy - ldr r0, _08010760 - adds r1, r7, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] -_080106FA: - ldr r5, _0801074C - ldr r1, _08010754 - ldrb r0, [r1, #0xd] - strb r0, [r5, #0xf] - movs r2, #0 - ldr r3, _0801075C - mov ip, r3 - adds r4, r5, #0 - adds r4, #0x10 - ldr r0, _08010758 - adds r3, r1, r0 -_08010710: - adds r0, r4, r2 - adds r1, r2, r3 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, #3 - ble _08010710 - adds r0, r5, #0 - adds r0, #0x14 - mov r1, ip - movs r2, #0x8c - bl memcpy - ldr r1, _0801074C - movs r0, #0 - movs r2, #0xa0 - bl SendBlock - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080107E2 -_0801073A: - ldr r0, _08010760 - adds r1, r7, r6 - lsls r1, r1, #3 - adds r1, r1, r0 -_08010742: - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _080107E2 - .align 2, 0 -_0801074C: .4byte gUnknown_202257C -_08010750: .4byte gUnknown_82C0564 -_08010754: .4byte gUnknown_30050A0 -_08010758: .4byte 0x00000996 -_0801075C: .4byte gUnknown_20226A0 -_08010760: .4byte gUnknown_3005B60 -_08010764: - adds r0, r3, #0 - lsls r0, r2 - ldr r2, _08010780 - adds r1, r5, r2 - strb r0, [r1] - ldrb r1, [r4] - eors r0, r1 - strb r0, [r4] - movs r4, #0x9a - lsls r4, r4, #4 - adds r0, r5, r4 - strb r3, [r0] - b _080107DC - .align 2, 0 -_08010780: .4byte 0x0000099D -_08010784: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080107E2 - bl GetBlockReceivedStatus - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _080107E2 - mov r0, sp - movs r4, #0 - strh r4, [r0] - ldr r1, _080107EC - ldr r2, _080107F0 - bl CpuSet - movs r0, #0 - bl ResetBlockReceivedFlag - ldr r1, _080107F4 - movs r2, #0x9a - lsls r2, r2, #4 - adds r0, r1, r2 - strb r4, [r0] - ldr r4, _080107F8 - adds r3, r1, r4 - ldrb r0, [r3] - cmp r0, #0 - beq _080107DC - movs r2, #0 - adds r5, r1, #0 - adds r4, r3, #0 - ldrb r1, [r4] - movs r3, #1 -_080107CC: - adds r0, r1, #0 - asrs r0, r2 - ands r0, r3 - cmp r0, #0 - bne _08010764 - adds r2, #1 - cmp r2, #3 - ble _080107CC -_080107DC: - adds r0, r6, #0 - bl DestroyTask -_080107E2: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080107EC: .4byte gUnknown_202207C -_080107F0: .4byte 0x0100007E -_080107F4: .4byte gUnknown_30050A0 -_080107F8: .4byte 0x0000099E - thumb_func_end sub_080105A4 - - thumb_func_start sub_080107FC -sub_080107FC: @ 0x080107FC - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r6, _08010838 - adds r0, r6, #0 - adds r0, #0xf1 - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0801081A - adds r0, r5, #0 - bl DestroyTask -_0801081A: - ldr r1, _0801083C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _08010860 - cmp r0, #1 - bgt _08010840 - cmp r0, #0 - beq _08010846 - b _08010896 - .align 2, 0 -_08010838: .4byte gUnknown_30050A0 -_0801083C: .4byte gUnknown_3005B60 -_08010840: - cmp r0, #2 - beq _08010872 - b _08010896 -_08010846: - ldrb r0, [r6, #0xd] - cmp r0, #0 - beq _08010896 - bl sub_0800AE24 - ldr r1, _0801085C - movs r0, #0 - movs r2, #0x3c - bl SendBlock - b _0801086A - .align 2, 0 -_0801085C: .4byte gUnknown_202257C -_08010860: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08010896 -_0801086A: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _08010896 -_08010872: - bl GetBlockReceivedStatus - movs r4, #1 - adds r1, r4, #0 - ands r1, r0 - cmp r1, #0 - beq _08010896 - ldr r0, _0801089C - bl sub_08010514 - movs r0, #0 - bl ResetBlockReceivedFlag - ldr r0, _080108A0 - strb r4, [r0] - adds r0, r5, #0 - bl DestroyTask -_08010896: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0801089C: .4byte gUnknown_202207C -_080108A0: .4byte gUnknown_30031C4 - thumb_func_end sub_080107FC - - thumb_func_start sub_080108A4 -sub_080108A4: @ 0x080108A4 - push {r4, r5, r6, r7, lr} - ldr r0, _0801092C - adds r1, r0, #0 - adds r1, #0xee - ldrb r1, [r1] - adds r3, r0, #0 - cmp r1, #1 - bne _0801094C - ldr r2, _08010930 - ldrb r0, [r2, #2] - cmp r0, #0 - bne _0801094C - ldr r0, _08010934 - ldr r1, [r0, #4] - ldr r0, _08010938 - cmp r1, r0 - beq _080108CE - ldr r0, [r2, #0x3c] - ldrb r0, [r0, #4] - cmp r0, #0 - beq _080108D4 -_080108CE: - ldr r1, _0801093C - movs r0, #2 - strb r0, [r1] -_080108D4: - ldr r4, _08010940 - adds r0, r4, #0 - bl SetMainCallback2 - ldr r0, _08010934 - str r4, [r0, #8] - ldr r5, _0801092C - ldrh r0, [r5, #0xa] - lsls r4, r0, #0x10 - ldrh r0, [r5, #0x10] - lsls r0, r0, #8 - orrs r4, r0 - ldrh r0, [r5, #0x12] - orrs r4, r0 - ldr r1, _08010944 - adds r0, r5, r1 - ldrb r0, [r0] - adds r7, r0, #0 - ldr r1, _08010948 - adds r0, r5, r1 - ldrb r0, [r0] - adds r6, r0, #0 - bl sub_08011564 - movs r3, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _08010910 - movs r3, #1 -_08010910: - adds r0, r4, #0 - adds r1, r7, #0 - adds r2, r6, #0 - bl sub_0800A9F4 - adds r0, r5, #0 - adds r0, #0xee - ldrb r1, [r0] - movs r1, #2 - strb r1, [r0] - bl CloseLink - b _0801097E - .align 2, 0 -_0801092C: .4byte gUnknown_30050A0 -_08010930: .4byte gUnknown_30041E0 -_08010934: .4byte gUnknown_3002360 -_08010938: .4byte c2_mystery_gift_e_reader_run -_0801093C: .4byte gUnknown_300319C -_08010940: .4byte CB2_LinkError -_08010944: .4byte 0x0000069E -_08010948: .4byte 0x000008D2 -_0801094C: - ldr r1, _08010984 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, #1 - beq _08010960 - ldr r1, _08010988 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, #1 - bne _0801097E -_08010960: - ldr r0, _0801098C - ldrb r0, [r0, #2] - cmp r0, #0 - beq _0801096C - bl sub_0800D0EC -_0801096C: - movs r4, #0xe0 - lsls r4, r4, #7 - movs r0, #1 - adds r1, r4, #0 - bl sub_08011554 - adds r0, r4, #0 - bl sub_08010C60 -_0801097E: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08010984: .4byte 0x000008D3 -_08010988: .4byte 0x0000069F -_0801098C: .4byte gUnknown_30041E0 - thumb_func_end sub_080108A4 - - thumb_func_start rfu_REQ_recvData_then_sendData -rfu_REQ_recvData_then_sendData: @ 0x08010990 - push {lr} - ldr r0, _080109AC - ldrb r0, [r0, #6] - cmp r0, #1 - bne _080109A8 - bl rfu_REQ_recvData - bl rfu_waitREQComplete - movs r0, #0 - bl rfu_REQ_sendData_wrapper -_080109A8: - pop {r0} - bx r0 - .align 2, 0 -_080109AC: .4byte gUnknown_30041E0 - thumb_func_end rfu_REQ_recvData_then_sendData - - thumb_func_start sub_080109B0 -sub_080109B0: @ 0x080109B0 - push {r4, r5, lr} - movs r5, #0 - ldr r4, _080109E4 - ldr r1, _080109E8 - adds r0, r4, r1 - strb r5, [r0] - bl sub_0806F0A4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_0800C008 - adds r0, r4, #0 - adds r0, #0xef - ldrb r0, [r0] - cmp r0, #0 - bne _08010A04 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _080109F2 - cmp r0, #1 - bgt _080109EC - cmp r0, #0 - beq _080109F8 - b _08010A04 - .align 2, 0 -_080109E4: .4byte gUnknown_30050A0 -_080109E8: .4byte 0x00000985 -_080109EC: - cmp r0, #2 - beq _08010A00 - b _08010A04 -_080109F2: - bl sub_0800EBB8 - b _08010A04 -_080109F8: - bl sub_0800EFB0 - adds r5, r0, #0 - b _08010A04 -_08010A00: - bl rfu_REQ_recvData_then_sendData -_08010A04: - adds r0, r5, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_080109B0 - - thumb_func_start sub_08010A0C -sub_08010A0C: @ 0x08010A0C - push {r4, lr} - movs r4, #0 - ldr r1, _08010A34 - adds r0, r1, #0 - adds r0, #0xef - ldrb r0, [r0] - cmp r0, #0 - bne _08010A2C - ldrb r0, [r1, #0xc] - cmp r0, #1 - bne _08010A28 - bl sub_0800ECA0 - adds r4, r0, #0 -_08010A28: - bl sub_080108A4 -_08010A2C: - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08010A34: .4byte gUnknown_30050A0 - thumb_func_end sub_08010A0C - - thumb_func_start sub_08010A38 -sub_08010A38: @ 0x08010A38 - push {lr} - ldr r0, _08010A48 - ldr r1, _08010A4C - ldr r1, [r1] - bl StringCopy - pop {r0} - bx r0 - .align 2, 0 -_08010A48: .4byte gUnknown_20227DA -_08010A4C: .4byte gUnknown_3005AF0 - thumb_func_end sub_08010A38 - - thumb_func_start sub_08010A50 -sub_08010A50: @ 0x08010A50 - push {r4, lr} - ldr r4, _08010A70 - adds r0, r4, #0 - movs r1, #0 - movs r2, #0xd - bl memset - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_0800D860 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08010A70: .4byte gUnknown_20227CC - thumb_func_end sub_08010A50 - - thumb_func_start sub_08010A74 -sub_08010A74: @ 0x08010A74 - push {r4, lr} - adds r4, r0, #0 - adds r3, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _08010A8C - adds r1, r4, #0 - bl sub_0800D860 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08010A8C: .4byte gUnknown_20227CC - thumb_func_end sub_08010A74 - - thumb_func_start sub_08010A90 -sub_08010A90: @ 0x08010A90 - push {r4, r5, lr} - ldr r5, _08010AB8 - movs r4, #1 - ands r0, r4 - lsls r0, r0, #4 - ldrb r3, [r5] - movs r2, #0x11 - rsbs r2, r2, #0 - ands r2, r3 - orrs r2, r0 - ands r1, r4 - lsls r1, r1, #5 - movs r0, #0x21 - rsbs r0, r0, #0 - ands r2, r0 - orrs r2, r1 - strb r2, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08010AB8: .4byte gUnknown_20227CC - thumb_func_end sub_08010A90 - - thumb_func_start sub_08010ABC -sub_08010ABC: @ 0x08010ABC - push {r4, r5, lr} - ldr r5, _08010AF0 - lsls r0, r0, #2 - ldrb r4, [r5, #9] - movs r3, #3 - ands r3, r4 - orrs r3, r0 - strb r3, [r5, #9] - ldr r3, _08010AF4 - adds r0, r3, #0 - ands r1, r0 - ldrh r3, [r5, #8] - ldr r0, _08010AF8 - ands r0, r3 - orrs r0, r1 - strh r0, [r5, #8] - lsls r2, r2, #1 - ldrb r1, [r5, #0xb] - movs r0, #1 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0xb] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08010AF0: .4byte gUnknown_20227CC -_08010AF4: .4byte 0x000003FF -_08010AF8: .4byte 0xFFFFFC00 - thumb_func_end sub_08010ABC - - thumb_func_start sub_08010AFC -sub_08010AFC: @ 0x08010AFC - push {r4, lr} - movs r4, #0x80 - ldr r3, _08010B28 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r0, r1, r3 - ldrb r2, [r0, #0x13] - lsls r2, r2, #3 - orrs r2, r4 - adds r3, #4 - adds r1, r1, r3 - ldr r0, [r1] - movs r1, #7 - ands r0, r1 - orrs r0, r2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08010B28: .4byte gUnknown_20226A0 - thumb_func_end sub_08010AFC - - thumb_func_start sub_08010B2C -sub_08010B2C: @ 0x08010B2C - push {r4, r5, lr} - ldr r5, _08010B34 - movs r4, #1 - b _08010B44 - .align 2, 0 -_08010B34: .4byte gUnknown_20227CC -_08010B38: - adds r0, r4, #0 - bl sub_08010AFC - adds r1, r5, r4 - strb r0, [r1, #3] - adds r4, #1 -_08010B44: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - blt _08010B38 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08010B2C - - thumb_func_start sub_08010B58 -sub_08010B58: @ 0x08010B58 - push {lr} - lsls r0, r0, #0x18 - ldr r2, _08010B78 - lsrs r0, r0, #0x11 - ldrb r3, [r2, #0xa] - movs r1, #0x7f - ands r1, r3 - orrs r1, r0 - strb r1, [r2, #0xa] - ldr r3, _08010B7C - movs r0, #0 - movs r1, #2 - bl rfu_REQ_configGameData - pop {r0} - bx r0 - .align 2, 0 -_08010B78: .4byte gUnknown_20227CC -_08010B7C: .4byte gUnknown_20227DA - thumb_func_end sub_08010B58 - - thumb_func_start sub_08010B80 -sub_08010B80: @ 0x08010B80 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _08010B8E - bl sub_08010A74 -_08010B8E: - ldr r2, _08010BA0 - ldr r3, _08010BA4 - movs r0, #0 - movs r1, #2 - bl rfu_REQ_configGameData - pop {r0} - bx r0 - .align 2, 0 -_08010BA0: .4byte gUnknown_20227CC -_08010BA4: .4byte gUnknown_20227DA - thumb_func_end sub_08010B80 - - thumb_func_start sub_08010BA8 -sub_08010BA8: @ 0x08010BA8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sb, r0 - bl sub_0800F29C - ldrb r1, [r0, #0xa] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x45 - bne _08010C3C - movs r5, #0 - movs r7, #0 - ldr r3, _08010C4C - ldr r1, _08010C50 - adds r0, r3, r1 - ldr r2, _08010C54 - adds r1, r3, r2 - ldrb r2, [r0] - ldrb r0, [r1] - adds r1, r0, #0 - eors r1, r2 - mov r8, r1 - movs r4, #0 - movs r6, #1 - ldr r2, _08010C58 - mov ip, r2 - ldr r0, _08010C5C - adds r0, r0, r3 - mov sl, r0 - mov r3, ip - adds r3, #4 -_08010BEC: - mov r0, r8 - asrs r0, r4 - ands r0, r6 - cmp r0, #0 - beq _08010C2C - mov r1, sl - adds r0, r4, r1 - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - mov r2, ip - adds r1, r0, r2 - ldrb r1, [r1, #0x13] - adds r2, r6, #0 - ands r2, r1 - lsls r2, r2, #3 - adds r0, r0, r3 - ldr r1, [r0] - movs r0, #7 - ands r1, r0 - movs r0, #0x80 - orrs r1, r0 - orrs r2, r1 - lsls r0, r5, #3 - lsls r2, r0 - orrs r7, r2 - adds r5, #1 - mov r0, sb - subs r0, #1 - cmp r5, r0 - beq _08010C32 -_08010C2C: - adds r4, #1 - cmp r4, #3 - ble _08010BEC -_08010C32: - movs r0, #0x45 - adds r1, r7, #0 - movs r2, #0 - bl sub_08010B80 -_08010C3C: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08010C4C: .4byte gUnknown_30050A0 -_08010C50: .4byte 0x0000099A -_08010C54: .4byte 0x0000099B -_08010C58: .4byte gUnknown_20226A0 -_08010C5C: .4byte 0x00000996 - thumb_func_end sub_08010BA8 - - thumb_func_start sub_08010C60 -sub_08010C60: @ 0x08010C60 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _08010C88 - adds r3, r2, #0 - adds r3, #0xee - ldrb r0, [r3] - cmp r0, #0 - bne _08010C82 - ldr r1, _08010C8C - ldrh r0, [r1, #0x14] - strh r0, [r2, #0x10] - ldrh r0, [r1, #0x16] - strh r0, [r2, #0x12] - strh r4, [r2, #0xa] - ldrb r0, [r3] - movs r0, #1 - strb r0, [r3] -_08010C82: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08010C88: .4byte gUnknown_30050A0 -_08010C8C: .4byte gUnknown_30041E0 - thumb_func_end sub_08010C60 - - thumb_func_start sub_08010C90 -sub_08010C90: @ 0x08010C90 - ldr r0, _08010C9C - adds r0, #0xee - ldrb r1, [r0] - movs r1, #0 - strb r1, [r0] - bx lr - .align 2, 0 -_08010C9C: .4byte gUnknown_30050A0 - thumb_func_end sub_08010C90 - - thumb_func_start sub_08010CA0 -sub_08010CA0: @ 0x08010CA0 - push {lr} - adds r2, r0, #0 - cmp r2, #0 - bne _08010CB8 - ldr r0, _08010CB4 - adds r0, #0xee - ldrb r1, [r0] - strb r2, [r0] - b _08010CC2 - .align 2, 0 -_08010CB4: .4byte gUnknown_30050A0 -_08010CB8: - ldr r0, _08010CC8 - adds r0, #0xee - ldrb r1, [r0] - movs r1, #4 - strb r1, [r0] -_08010CC2: - pop {r0} - bx r0 - .align 2, 0 -_08010CC8: .4byte gUnknown_30050A0 - thumb_func_end sub_08010CA0 - - thumb_func_start sub_08010CCC -sub_08010CCC: @ 0x08010CCC - push {lr} - ldr r0, _08010CE4 - ldrb r0, [r0] - movs r1, #1 - bl sub_08011980 - ldr r1, _08010CE8 - movs r0, #0 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08010CE4: .4byte gUnknown_30041E0 -_08010CE8: .4byte gUnknown_30050A0 - thumb_func_end sub_08010CCC - - thumb_func_start sub_08010CEC -sub_08010CEC: @ 0x08010CEC - ldr r1, _08010CF4 - ldr r0, _08010CF8 - str r0, [r1] - bx lr - .align 2, 0 -_08010CF4: .4byte gUnknown_30050A0 -_08010CF8: .4byte sub_08010CCC - thumb_func_end sub_08010CEC - - thumb_func_start sub_08010CFC -sub_08010CFC: @ 0x08010CFC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r6, #0 - cmp r4, #0x32 - bne _08010D12 - b _08010E50 -_08010D12: - cmp r4, #0x32 - bgt _08010D42 - cmp r4, #0x13 - bgt _08010D30 - cmp r4, #0x12 - blt _08010D20 - b _08010EDE -_08010D20: - cmp r4, #0x10 - bne _08010D26 - b _08010EDE -_08010D26: - cmp r4, #0x10 - bgt _08010D7C - cmp r4, #0 - beq _08010D6E - b _08010EDE -_08010D30: - cmp r4, #0x30 - bne _08010D36 - b _08010E5C -_08010D36: - cmp r4, #0x30 - ble _08010D3C - b _08010E44 -_08010D3C: - cmp r4, #0x14 - beq _08010E18 - b _08010EDE -_08010D42: - cmp r4, #0x44 - bgt _08010D54 - cmp r4, #0x42 - blt _08010D4C - b _08010EDE -_08010D4C: - cmp r4, #0x33 - bne _08010D52 - b _08010E5C -_08010D52: - b _08010EDE -_08010D54: - cmp r4, #0xf3 - bne _08010D5A - b _08010EAA -_08010D5A: - cmp r4, #0xf3 - bgt _08010D66 - cmp r4, #0xf0 - bge _08010D64 - b _08010EDE -_08010D64: - b _08010EC4 -_08010D66: - cmp r4, #0xff - bne _08010D6C - b _08010EC4 -_08010D6C: - b _08010EDE -_08010D6E: - ldr r1, _08010D78 - movs r0, #2 - strh r0, [r1, #4] - b _08010EDE - .align 2, 0 -_08010D78: .4byte gUnknown_30050A0 -_08010D7C: - ldr r0, _08010DE0 - ldrh r0, [r0, #0x14] - bl sub_080110DC - movs r5, #0 - movs r0, #1 - mov r8, r0 - ldr r1, _08010DE4 - mov sb, r1 - ldr r3, _08010DE8 - add r3, sb - mov sl, r3 - movs r7, #0x7f -_08010D96: - ldr r0, _08010DE0 - ldrh r0, [r0, #0x14] - asrs r0, r5 - mov r1, r8 - ands r0, r1 - cmp r0, #0 - beq _08010DFE - ldr r0, _08010DEC - lsls r1, r5, #5 - adds r1, #0x14 - ldr r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0, #0x10] - adds r4, r7, #0 - ands r4, r0 - bl sub_0800F29C - ldrb r1, [r0, #0xa] - adds r0, r7, #0 - ands r0, r1 - cmp r4, r0 - bne _08010DF4 - ldr r0, _08010DF0 - add r0, sb - adds r0, r5, r0 - movs r1, #0 - strb r1, [r0] - mov r3, sl - adds r2, r5, r3 - strb r1, [r2] - movs r0, #0x20 - adds r1, r5, #0 - movs r3, #1 - bl rfu_setRecvBuffer - b _08010DFE - .align 2, 0 -_08010DE0: .4byte gUnknown_30041E0 -_08010DE4: .4byte gUnknown_30050A0 -_08010DE8: .4byte 0x0000098D -_08010DEC: .4byte gUnknown_3007630 -_08010DF0: .4byte 0x00000989 -_08010DF4: - mov r0, r8 - lsls r0, r5 - orrs r6, r0 - lsls r0, r6, #0x18 - lsrs r6, r0, #0x18 -_08010DFE: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #3 - bls _08010D96 - cmp r6, #0 - beq _08010EDE - adds r0, r6, #0 - bl rfu_REQ_disconnect - bl rfu_waitREQComplete - b _08010EDE -_08010E18: - ldr r4, _08010E38 - ldr r1, _08010E3C - adds r0, r4, r1 - ldr r1, _08010E40 - ldrb r2, [r0] - ldrb r0, [r1] - cmp r2, r0 - beq _08010E32 - eors r0, r2 - bl rfu_REQ_disconnect - bl rfu_waitREQComplete -_08010E32: - movs r0, #0x11 - strh r0, [r4, #4] - b _08010EDE - .align 2, 0 -_08010E38: .4byte gUnknown_30050A0 -_08010E3C: .4byte 0x0000099F -_08010E40: .4byte gUnknown_30041E0 -_08010E44: - ldr r0, _08010E4C - adds r0, #0xf0 - b _08010EDA - .align 2, 0 -_08010E4C: .4byte gUnknown_30050A0 -_08010E50: - ldr r0, _08010E58 - adds r0, #0xf0 - movs r1, #3 - b _08010EDC - .align 2, 0 -_08010E58: .4byte gUnknown_30050A0 -_08010E5C: - ldr r1, _08010E8C - adds r2, r1, #0 - adds r2, #0xf0 - movs r0, #4 - strb r0, [r2] - ldr r3, _08010E90 - adds r1, r1, r3 - ldr r0, _08010E94 - ldrb r2, [r0, #0x14] - ldrb r0, [r1] - adds r3, r0, #0 - bics r3, r2 - adds r2, r3, #0 - strb r2, [r1] - ldr r0, _08010E98 - ldrb r0, [r0] - cmp r0, #1 - bne _08010EA0 - cmp r2, #0 - bne _08010E9C - adds r0, r4, #0 - bl sub_08010C60 - b _08010EA0 - .align 2, 0 -_08010E8C: .4byte gUnknown_30050A0 -_08010E90: .4byte 0x0000099A -_08010E94: .4byte gUnknown_30041E0 -_08010E98: .4byte gUnknown_30031C4 -_08010E9C: - bl sub_08010CEC -_08010EA0: - movs r0, #2 - adds r1, r4, #0 - bl sub_08011554 - b _08010EDE -_08010EAA: - movs r0, #1 - movs r1, #0xf3 - bl sub_08011554 - movs r0, #0xf3 - bl sub_08010C60 - ldr r0, _08010EC0 - adds r0, #0xef - b _08010EDA - .align 2, 0 -_08010EC0: .4byte gUnknown_30050A0 -_08010EC4: - adds r0, r4, #0 - bl sub_08010C60 - movs r0, #1 - adds r1, r4, #0 - bl sub_08011554 - ldr r0, _08010EEC - ldr r1, _08010EF0 - adds r0, r0, r1 - ldrb r1, [r0] -_08010EDA: - movs r1, #1 -_08010EDC: - strb r1, [r0] -_08010EDE: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08010EEC: .4byte gUnknown_30050A0 -_08010EF0: .4byte 0x00000993 - thumb_func_end sub_08010CFC - - thumb_func_start sub_08010EF4 -sub_08010EF4: @ 0x08010EF4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x31 - bne _08010F00 - b _08011060 -_08010F00: - cmp r4, #0x31 - bgt _08010F2E - cmp r4, #0x22 - beq _08010F84 - cmp r4, #0x22 - bgt _08010F1C - cmp r4, #0x20 - beq _08010F6C - cmp r4, #0x20 - ble _08010F16 - b _080110CE -_08010F16: - cmp r4, #0 - beq _08010F5E - b _080110CE -_08010F1C: - cmp r4, #0x24 - beq _08010FAA - cmp r4, #0x24 - blt _08010FA0 - cmp r4, #0x25 - beq _08010FF4 - cmp r4, #0x30 - beq _08010FFE - b _080110CE -_08010F2E: - cmp r4, #0x44 - bgt _08010F44 - cmp r4, #0x42 - blt _08010F38 - b _080110CE -_08010F38: - cmp r4, #0x33 - beq _08011012 - cmp r4, #0x33 - bge _08010F42 - b _0801107C -_08010F42: - b _080110CE -_08010F44: - cmp r4, #0xf3 - bne _08010F4A - b _0801109C -_08010F4A: - cmp r4, #0xf3 - bgt _08010F56 - cmp r4, #0xf0 - bge _08010F54 - b _080110CE -_08010F54: - b _080110B4 -_08010F56: - cmp r4, #0xff - bne _08010F5C - b _080110B4 -_08010F5C: - b _080110CE -_08010F5E: - ldr r1, _08010F68 - movs r0, #6 - strh r0, [r1, #4] - b _080110CE - .align 2, 0 -_08010F68: .4byte gUnknown_30050A0 -_08010F6C: - ldr r0, _08010F78 - ldr r1, _08010F7C - ldrh r1, [r1, #0x14] - ldr r2, _08010F80 - adds r0, r0, r2 - b _080110CC - .align 2, 0 -_08010F78: .4byte gUnknown_30050A0 -_08010F7C: .4byte gUnknown_30041E0 -_08010F80: .4byte 0x00000985 -_08010F84: - ldr r0, _08010F94 - ldr r1, _08010F98 - ldrh r1, [r1, #0x14] - ldr r2, _08010F9C - adds r0, r0, r2 - ldrb r2, [r0] - b _080110CC - .align 2, 0 -_08010F94: .4byte gUnknown_30050A0 -_08010F98: .4byte gUnknown_30041E0 -_08010F9C: .4byte 0x000008F6 -_08010FA0: - movs r0, #2 - adds r1, r4, #0 - bl sub_08011554 - b _080110CE -_08010FAA: - ldr r4, _08010FE0 - movs r1, #0 - movs r0, #0xb - strh r0, [r4, #4] - ldr r2, _08010FE4 - adds r0, r4, r2 - strb r1, [r0] - ldr r0, _08010FE8 - adds r2, r4, r0 - strb r1, [r2] - ldr r1, _08010FEC - adds r5, r4, r1 - ldrb r1, [r5] - movs r0, #0x20 - movs r3, #1 - bl rfu_setRecvBuffer - ldrb r1, [r5] - ldr r2, _08010FF0 - adds r4, r4, r2 - movs r0, #0x10 - adds r2, r4, #0 - movs r3, #0x46 - bl rfu_setRecvBuffer - b _080110CE - .align 2, 0 -_08010FE0: .4byte gUnknown_30050A0 -_08010FE4: .4byte 0x0000093D -_08010FE8: .4byte 0x0000093E -_08010FEC: .4byte 0x000008F6 -_08010FF0: .4byte 0x000008F7 -_08010FF4: - movs r0, #2 - movs r1, #0x25 - bl sub_08011554 - b _080110CE -_08010FFE: - ldr r0, _08011050 - adds r2, r0, #0 - adds r2, #0xf0 - movs r1, #2 - strb r1, [r2] - ldr r1, _08011054 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #6 - beq _080110CE -_08011012: - ldr r2, _08011050 - adds r1, r2, #0 - adds r1, #0xf0 - ldrb r0, [r1] - cmp r0, #2 - beq _08011022 - movs r0, #4 - strb r0, [r1] -_08011022: - ldr r1, _08011054 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #9 - beq _08011034 - movs r0, #2 - adds r1, r4, #0 - bl sub_08011554 -_08011034: - ldr r0, _08011058 - movs r1, #5 - movs r2, #5 - bl sub_0800E0C0 - ldr r0, _0801105C - ldrb r0, [r0] - cmp r0, #1 - bne _080110CE - adds r0, r4, #0 - bl sub_08010C60 - b _080110CE - .align 2, 0 -_08011050: .4byte gUnknown_30050A0 -_08011054: .4byte 0x0000093E -_08011058: .4byte gUnknown_82C0578 -_0801105C: .4byte gUnknown_30031C4 -_08011060: - ldr r0, _08011074 - adds r0, #0xf0 - movs r1, #1 - strb r1, [r0] - ldr r0, _08011078 - movs r1, #5 - movs r2, #5 - bl sub_0800E0C0 - b _080110CE - .align 2, 0 -_08011074: .4byte gUnknown_30050A0 -_08011078: .4byte gUnknown_82C0590 -_0801107C: - ldr r1, _08011094 - adds r2, r1, #0 - adds r2, #0xf0 - movs r0, #3 - strb r0, [r2] - ldr r2, _08011098 - adds r1, r1, r2 - ldrb r0, [r1] - movs r0, #1 - strb r0, [r1] - b _080110CE - .align 2, 0 -_08011094: .4byte gUnknown_30050A0 -_08011098: .4byte 0x000008F4 -_0801109C: - movs r0, #1 - movs r1, #0xf3 - bl sub_08011554 - movs r0, #0xf3 - bl sub_08010C60 - ldr r0, _080110B0 - adds r0, #0xef - b _080110CA - .align 2, 0 -_080110B0: .4byte gUnknown_30050A0 -_080110B4: - movs r0, #1 - adds r1, r4, #0 - bl sub_08011554 - adds r0, r4, #0 - bl sub_08010C60 - ldr r0, _080110D4 - ldr r1, _080110D8 - adds r0, r0, r1 - ldrb r1, [r0] -_080110CA: - movs r1, #1 -_080110CC: - strb r1, [r0] -_080110CE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080110D4: .4byte gUnknown_30050A0 -_080110D8: .4byte 0x00000993 - thumb_func_end sub_08010EF4 - - thumb_func_start sub_080110DC -sub_080110DC: @ 0x080110DC - push {r4, r5, r6, lr} - adds r3, r0, #0 - movs r2, #0 - movs r6, #1 - ldr r0, _08011110 - ldr r4, _08011114 - adds r1, r0, r4 - movs r5, #0 - movs r4, #0xff -_080110EE: - adds r0, r3, #0 - asrs r0, r2 - ands r0, r6 - cmp r0, #0 - beq _08011100 - strb r5, [r1] - ldrb r0, [r1, #4] - orrs r0, r4 - strb r0, [r1, #4] -_08011100: - adds r1, #1 - adds r2, #1 - cmp r2, #3 - ble _080110EE - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08011110: .4byte gUnknown_30050A0 -_08011114: .4byte 0x000009A2 - thumb_func_end sub_080110DC - - thumb_func_start sub_08011118 -sub_08011118: @ 0x08011118 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - movs r3, #0 - movs r2, #0 - movs r4, #1 - ldr r6, _08011160 - movs r7, #0x7f -_08011126: - adds r0, r5, #0 - asrs r0, r2 - ands r0, r4 - cmp r0, #0 - beq _0801114C - lsls r1, r2, #5 - adds r1, #0x14 - ldr r0, [r6] - adds r0, r0, r1 - ldrb r1, [r0, #0x10] - adds r0, r7, #0 - ands r0, r1 - cmp r0, #0x45 - bne _0801114C - adds r0, r4, #0 - lsls r0, r2 - orrs r3, r0 - lsls r0, r3, #0x18 - lsrs r3, r0, #0x18 -_0801114C: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #3 - bls _08011126 - adds r0, r3, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08011160: .4byte gUnknown_3007630 - thumb_func_end sub_08011118 - - thumb_func_start sub_08011164 -sub_08011164: @ 0x08011164 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x25 - bne _08011170 - b _080113DC -_08011170: - cmp r4, #0x25 - bgt _080111B2 - cmp r4, #0x14 - bne _0801117A - b _080112F4 -_0801117A: - cmp r4, #0x14 - bgt _08011192 - cmp r4, #0x11 - beq _08011212 - cmp r4, #0x11 - ble _08011188 - b _08011532 -_08011188: - cmp r4, #0 - beq _080111FC - cmp r4, #0x10 - beq _08011208 - b _08011532 -_08011192: - cmp r4, #0x22 - bne _08011198 - b _08011358 -_08011198: - cmp r4, #0x22 - bgt _080111A4 - cmp r4, #0x20 - bne _080111A2 - b _08011340 -_080111A2: - b _08011532 -_080111A4: - cmp r4, #0x23 - bne _080111AA - b _08011374 -_080111AA: - cmp r4, #0x24 - bne _080111B0 - b _080113AA -_080111B0: - b _08011532 -_080111B2: - cmp r4, #0x44 - bgt _080111E2 - cmp r4, #0x42 - blt _080111BC - b _08011532 -_080111BC: - cmp r4, #0x32 - bne _080111C2 - b _08011404 -_080111C2: - cmp r4, #0x32 - bgt _080111D4 - cmp r4, #0x30 - bne _080111CC - b _08011430 -_080111CC: - cmp r4, #0x31 - bne _080111D2 - b _080113E6 -_080111D2: - b _08011532 -_080111D4: - cmp r4, #0x33 - bne _080111DA - b _08011438 -_080111DA: - cmp r4, #0x40 - bne _080111E0 - b _080114EC -_080111E0: - b _08011532 -_080111E2: - cmp r4, #0xf3 - bne _080111E8 - b _080114FC -_080111E8: - cmp r4, #0xf3 - bgt _080111F4 - cmp r4, #0xf0 - bge _080111F2 - b _08011532 -_080111F2: - b _08011518 -_080111F4: - cmp r4, #0xff - bne _080111FA - b _08011518 -_080111FA: - b _08011532 -_080111FC: - ldr r1, _08011204 - movs r0, #0x11 - strh r0, [r1, #4] - b _08011532 - .align 2, 0 -_08011204: .4byte gUnknown_30050A0 -_08011208: - movs r0, #4 - movs r1, #0 - bl sub_08011554 - b _08011532 -_08011212: - bl sub_0800F29C - ldrb r1, [r0, #0xa] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x45 - bne _080112CC - ldr r5, _08011278 - ldr r1, _0801127C - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080112CC - ldr r0, _08011280 - ldrh r0, [r0, #0x14] - bl sub_08011118 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - beq _08011296 - adds r0, r4, #0 - bl sub_0800E340 - movs r2, #1 - mov ip, r2 - mov r1, ip - lsls r1, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r7, _08011284 - adds r6, r5, r7 - ldrb r2, [r6] - cmp r2, #0 - bne _08011288 - movs r0, #0x9a - lsls r0, r0, #4 - adds r3, r5, r0 - ldrb r0, [r3] - cmp r0, #0 - bne _08011288 - subs r7, #1 - adds r0, r5, r7 - strb r1, [r0] - eors r1, r4 - orrs r1, r2 - strb r1, [r6] - mov r0, ip - strb r0, [r3] - b _08011296 - .align 2, 0 -_08011278: .4byte gUnknown_30050A0 -_0801127C: .4byte 0x00000991 -_08011280: .4byte gUnknown_30041E0 -_08011284: .4byte 0x0000099E -_08011288: - ldr r0, _080112B8 - ldr r1, _080112BC - adds r0, r0, r1 - ldrb r2, [r0] - adds r1, r4, #0 - orrs r1, r2 - strb r1, [r0] -_08011296: - ldr r0, _080112C0 - ldrh r1, [r0, #0x14] - cmp r4, r1 - beq _080112E6 - ldr r2, _080112B8 - ldr r7, _080112C4 - adds r3, r2, r7 - adds r0, r4, #0 - eors r0, r1 - ldrb r1, [r3] - orrs r0, r1 - strb r0, [r3] - ldr r0, _080112C8 - adds r2, r2, r0 - movs r0, #2 - strb r0, [r2] - b _080112E6 - .align 2, 0 -_080112B8: .4byte gUnknown_30050A0 -_080112BC: .4byte 0x0000099E -_080112C0: .4byte gUnknown_30041E0 -_080112C4: .4byte 0x0000099B -_080112C8: .4byte 0x0000099C -_080112CC: - bl sub_0800F29C - ldrb r1, [r0, #0xa] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x54 - bne _080112E6 - ldr r0, _080112F0 - ldrb r0, [r0] - bl rfu_REQ_disconnect - bl rfu_waitREQComplete -_080112E6: - ldr r0, _080112F0 - ldrh r0, [r0, #0x14] - bl sub_080110DC - b _08011532 - .align 2, 0 -_080112F0: .4byte gUnknown_30041E0 -_080112F4: - bl sub_0800F29C - ldrb r1, [r0, #0xa] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x45 - beq _08011326 - ldr r4, _08011338 - ldrb r0, [r4, #1] - cmp r0, #1 - bls _08011326 - ldrb r0, [r4, #0x14] - bl sub_0800E340 - movs r1, #0x80 - lsls r1, r1, #0x11 - lsls r1, r0 - lsrs r1, r1, #0x18 - ldrb r0, [r4] - eors r1, r0 - adds r0, r1, #0 - bl rfu_REQ_disconnect - bl rfu_waitREQComplete -_08011326: - ldr r1, _0801133C - ldrh r0, [r1, #4] - cmp r0, #0xf - beq _08011330 - b _08011532 -_08011330: - movs r0, #0x10 - strh r0, [r1, #4] - b _08011532 - .align 2, 0 -_08011338: .4byte gUnknown_30041E0 -_0801133C: .4byte gUnknown_30050A0 -_08011340: - ldr r0, _0801134C - ldr r1, _08011350 - ldrh r1, [r1, #0x14] - ldr r2, _08011354 - adds r0, r0, r2 - b _08011530 - .align 2, 0 -_0801134C: .4byte gUnknown_30050A0 -_08011350: .4byte gUnknown_30041E0 -_08011354: .4byte 0x00000985 -_08011358: - ldr r0, _08011368 - ldr r1, _0801136C - ldrh r1, [r1, #0x14] - ldr r7, _08011370 - adds r0, r0, r7 - ldrb r2, [r0] - b _08011530 - .align 2, 0 -_08011368: .4byte gUnknown_30050A0 -_0801136C: .4byte gUnknown_30041E0 -_08011370: .4byte 0x000008F6 -_08011374: - ldr r1, _08011394 - movs r0, #0x12 - strh r0, [r1, #4] - ldr r0, _08011398 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #1 - bhi _080113A0 - adds r0, #1 - strb r0, [r1] - ldr r0, _0801139C - movs r1, #2 - bl CreateTask - b _08011532 - .align 2, 0 -_08011394: .4byte gUnknown_30050A0 -_08011398: .4byte 0x00000987 -_0801139C: .4byte sub_08011B88 -_080113A0: - movs r0, #2 - movs r1, #0x23 - bl sub_08011554 - b _08011532 -_080113AA: - ldr r4, _080113D0 - movs r0, #0xd - strh r0, [r4, #4] - movs r0, #3 - movs r1, #0 - bl sub_08011554 - ldr r1, _080113D4 - adds r0, r4, r1 - ldrb r1, [r0] - ldr r2, _080113D8 - adds r4, r4, r2 - movs r0, #0x10 - adds r2, r4, #0 - movs r3, #0x46 - bl rfu_setRecvBuffer - b _08011532 - .align 2, 0 -_080113D0: .4byte gUnknown_30050A0 -_080113D4: .4byte 0x000008F6 -_080113D8: .4byte 0x000008F7 -_080113DC: - movs r0, #2 - movs r1, #0x25 - bl sub_08011554 - b _08011532 -_080113E6: - ldr r0, _080113FC - ldrb r1, [r0] - ldrh r0, [r0, #0x14] - ands r1, r0 - cmp r1, #0 - bne _080113F4 - b _08011532 -_080113F4: - ldr r0, _08011400 - adds r0, #0xf0 - movs r1, #1 - b _08011530 - .align 2, 0 -_080113FC: .4byte gUnknown_30041E0 -_08011400: .4byte gUnknown_30050A0 -_08011404: - ldr r2, _08011424 - adds r1, r2, #0 - adds r1, #0xf0 - movs r0, #3 - strb r0, [r1] - ldr r0, _08011428 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, #0 - beq _0801141A - b _08011532 -_0801141A: - ldr r7, _0801142C - adds r0, r2, r7 - ldrb r1, [r0] - movs r1, #1 - b _08011530 - .align 2, 0 -_08011424: .4byte gUnknown_30050A0 -_08011428: .4byte gUnknown_3007630 -_0801142C: .4byte 0x000008F4 -_08011430: - ldr r0, _08011470 - adds r0, #0xf0 - movs r1, #2 - strb r1, [r0] -_08011438: - ldr r2, _08011470 - adds r1, r2, #0 - adds r1, #0xf0 - ldrb r0, [r1] - cmp r0, #2 - beq _08011448 - movs r0, #4 - strb r0, [r1] -_08011448: - ldrb r0, [r2, #0xc] - cmp r0, #1 - bne _08011486 - ldr r0, _08011474 - ldrb r0, [r0] - cmp r0, #1 - bne _080114A4 - ldr r0, _08011478 - adds r2, r2, r0 - ldr r0, _0801147C - ldrb r1, [r0, #0x14] - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] - cmp r0, #0 - bne _08011480 - adds r0, r4, #0 - bl sub_08010C60 - b _080114A4 - .align 2, 0 -_08011470: .4byte gUnknown_30050A0 -_08011474: .4byte gUnknown_30031C4 -_08011478: .4byte 0x0000099A -_0801147C: .4byte gUnknown_30041E0 -_08011480: - bl sub_08010CEC - b _080114A4 -_08011486: - ldr r1, _080114D4 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #2 - beq _080114A4 - ldr r0, _080114D8 - ldrb r0, [r0] - cmp r0, #1 - bne _080114A4 - adds r0, r4, #0 - bl sub_08010C60 - movs r0, #0 - bl sub_0800BD38 -_080114A4: - ldr r0, _080114DC - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, #0xff - bne _080114CA - ldr r0, _080114E0 - ldrb r0, [r0, #7] - cmp r0, #0 - bne _080114CA - ldr r0, _080114E4 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080114CA - ldr r1, _080114E8 - movs r0, #0x11 - strh r0, [r1, #4] -_080114CA: - movs r0, #2 - adds r1, r4, #0 - bl sub_08011554 - b _08011532 - .align 2, 0 -_080114D4: .4byte 0x0000099C -_080114D8: .4byte gUnknown_30031C4 -_080114DC: .4byte gUnknown_3007630 -_080114E0: .4byte gUnknown_30041E0 -_080114E4: .4byte sub_0800E608 -_080114E8: .4byte gUnknown_30050A0 -_080114EC: - ldr r0, _080114F4 - ldr r2, _080114F8 - adds r0, r0, r2 - b _0801152E - .align 2, 0 -_080114F4: .4byte gUnknown_30050A0 -_080114F8: .4byte 0x0000099B -_080114FC: - movs r0, #1 - movs r1, #0xf3 - bl sub_08011554 - movs r0, #0xf3 - bl sub_08010C60 - ldr r0, _08011514 - adds r0, #0xef - movs r1, #1 - b _08011530 - .align 2, 0 -_08011514: .4byte gUnknown_30050A0 -_08011518: - adds r0, r4, #0 - bl sub_08010C60 - movs r0, #1 - adds r1, r4, #0 - bl sub_08011554 - ldr r0, _08011538 - ldr r7, _0801153C - adds r0, r0, r7 - ldrb r1, [r0] -_0801152E: - movs r1, #0 -_08011530: - strb r1, [r0] -_08011532: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08011538: .4byte gUnknown_30050A0 -_0801153C: .4byte 0x00000993 - thumb_func_end sub_08011164 - - thumb_func_start sub_08011540 -sub_08011540: @ 0x08011540 - ldr r0, _0801154C - ldr r1, _08011550 - adds r0, r0, r1 - movs r1, #2 - strb r1, [r0] - bx lr - .align 2, 0 -_0801154C: .4byte gUnknown_30050A0 -_08011550: .4byte 0x0000099C - thumb_func_end sub_08011540 - - thumb_func_start sub_08011554 -sub_08011554: @ 0x08011554 - ldr r2, _08011560 - adds r3, r2, #0 - adds r3, #0xf1 - strb r0, [r3] - strh r1, [r2, #0xa] - bx lr - .align 2, 0 -_08011560: .4byte gUnknown_30050A0 - thumb_func_end sub_08011554 - - thumb_func_start sub_08011564 -sub_08011564: @ 0x08011564 - ldr r0, _0801156C - adds r0, #0xf1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0801156C: .4byte gUnknown_30050A0 - thumb_func_end sub_08011564 - - thumb_func_start sub_08011570 -sub_08011570: @ 0x08011570 - push {lr} - bl sub_08011564 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, #1 - cmp r0, #1 - bls _08011584 - movs r0, #0 - b _08011586 -_08011584: - movs r0, #1 -_08011586: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08011570 - - thumb_func_start sub_0801158C -sub_0801158C: @ 0x0801158C - ldr r0, _08011598 - movs r1, #0x9a - lsls r1, r1, #4 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08011598: .4byte gUnknown_30050A0 - thumb_func_end sub_0801158C - - thumb_func_start Rfu_IsMaster -Rfu_IsMaster: @ 0x0801159C - ldr r0, _080115A4 - ldrb r0, [r0, #0xc] - bx lr - .align 2, 0 -_080115A4: .4byte gUnknown_30050A0 - thumb_func_end Rfu_IsMaster - - thumb_func_start sub_080115A8 -sub_080115A8: @ 0x080115A8 - push {lr} - bl rfu_syncVBlank_ - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080115A8 - - thumb_func_start sub_080115B4 -sub_080115B4: @ 0x080115B4 - push {lr} - sub sp, #4 - movs r0, #0 - str r0, [sp] - ldr r1, _080115CC - ldr r2, _080115D0 - mov r0, sp - bl CpuSet - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_080115CC: .4byte gUnknown_3003130 -_080115D0: .4byte 0x05000014 - thumb_func_end sub_080115B4 - - thumb_func_start sub_080115D4 -sub_080115D4: @ 0x080115D4 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080115D4 - - thumb_func_start atk57 -atk57: @ 0x080115E8 - push {r4, lr} - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetTasks - bl ResetPaletteFade - ldr r0, _08011664 - bl SetVBlankCallback - bl LoadHeldItemIcons - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801165C - ldr r1, _08011668 - ldr r2, _0801166C - adds r0, r2, #0 - strh r0, [r1] - bl sub_0800AF5C - bl OpenLink - ldr r0, _08011670 - ldrh r0, [r0, #0x24] - bl SeedRng - movs r4, #0 -_08011624: - bl Random - ldr r1, _08011674 - ldr r1, [r1] - adds r1, #0xa - adds r1, r1, r4 - strb r0, [r1] - adds r4, #1 - cmp r4, #3 - ble _08011624 - movs r1, #0xaa - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - bl sub_08011690 - ldr r0, _08011678 - bl SetMainCallback2 -_0801165C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08011664: .4byte sub_080115D4 -_08011668: .4byte gUnknown_202267E -_0801166C: .4byte 0x00001111 -_08011670: .4byte gUnknown_3002360 -_08011674: .4byte gUnknown_3005AF0 -_08011678: .4byte sub_080116E4 - thumb_func_end atk57 - - thumb_func_start sub_0801167C -sub_0801167C: @ 0x0801167C - push {lr} - ldr r0, _0801168C - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0801168C: .4byte sub_0800E608 - thumb_func_end sub_0801167C - - thumb_func_start sub_08011690 -sub_08011690: @ 0x08011690 - push {r4, lr} - ldr r4, _080116B4 - adds r0, r4, #0 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080116AE - adds r0, r4, #0 - movs r1, #0 - bl CreateTask - ldr r1, _080116B8 - adds r1, #0x66 - strb r0, [r1] -_080116AE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080116B4: .4byte sub_08011FD4 -_080116B8: .4byte gUnknown_30050A0 - thumb_func_end sub_08011690 - - thumb_func_start sub_080116BC -sub_080116BC: @ 0x080116BC - push {lr} - ldr r0, _080116DC - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080116D6 - ldr r0, _080116E0 - adds r0, #0x66 - ldrb r0, [r0] - bl DestroyTask -_080116D6: - pop {r0} - bx r0 - .align 2, 0 -_080116DC: .4byte sub_08011FD4 -_080116E0: .4byte gUnknown_30050A0 - thumb_func_end sub_080116BC - - thumb_func_start sub_080116E4 -sub_080116E4: @ 0x080116E4 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080116E4 - - thumb_func_start sub_080116FC -sub_080116FC: @ 0x080116FC - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r1, _08011734 - movs r0, #1 - strb r0, [r1, #0xc] - bl sub_08010A38 - ldr r0, _08011738 - movs r1, #0 - bl sub_0800BA08 - ldr r2, _0801173C - adds r1, r2, #0 - ldr r0, _08011740 - ldm r0!, {r3, r5, r6} - stm r1!, {r3, r5, r6} - ldm r0!, {r3, r5, r6} - stm r1!, {r3, r5, r6} - ldr r0, _08011744 - subs r4, #1 - adds r4, r4, r0 - ldrb r0, [r4] - strh r0, [r2, #2] - bl sub_0800E938 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08011734: .4byte gUnknown_30050A0 -_08011738: .4byte sub_08010CFC -_0801173C: .4byte gUnknown_20227E4 -_08011740: .4byte gUnknown_82C0358 -_08011744: .4byte gUnknown_82C0370 - thumb_func_end sub_080116FC - - thumb_func_start sub_08011748 -sub_08011748: @ 0x08011748 - push {lr} - ldr r1, _08011764 - movs r0, #0 - strb r0, [r1, #0xc] - bl sub_08010A38 - ldr r0, _08011768 - ldr r1, _0801176C - bl sub_0800BA08 - bl sub_0800E9C0 - pop {r0} - bx r0 - .align 2, 0 -_08011764: .4byte gUnknown_30050A0 -_08011768: .4byte sub_08010EF4 -_0801176C: .4byte sub_0800E7F4 - thumb_func_end sub_08011748 - - thumb_func_start sub_08011770 -sub_08011770: @ 0x08011770 - push {r4, r5, r6, r7, lr} - ldr r4, _080117B0 - movs r5, #0 - movs r0, #2 - strb r0, [r4, #0xc] - bl sub_08010A38 - ldr r0, _080117B4 - movs r1, #0 - bl sub_0800BA08 - ldr r2, _080117B8 - adds r1, r2, #0 - ldr r0, _080117BC - ldm r0!, {r3, r6, r7} - stm r1!, {r3, r6, r7} - ldm r0!, {r3, r6, r7} - stm r1!, {r3, r6, r7} - strb r5, [r2, #0x11] - movs r0, #0x96 - lsls r0, r0, #2 - strh r0, [r2, #0x12] - ldr r0, _080117C0 - movs r1, #1 - bl CreateTask - adds r4, #0x67 - strb r0, [r4] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080117B0: .4byte gUnknown_30050A0 -_080117B4: .4byte sub_08011164 -_080117B8: .4byte gUnknown_20227E4 -_080117BC: .4byte gUnknown_82C0358 -_080117C0: .4byte sub_0800E608 - thumb_func_end sub_08011770 - - thumb_func_start sub_080117C4 -sub_080117C4: @ 0x080117C4 - ldrb r1, [r0, #1] - lsls r1, r1, #8 - ldrb r0, [r0] - orrs r0, r1 - bx lr - .align 2, 0 - thumb_func_end sub_080117C4 - - thumb_func_start sub_080117D0 -sub_080117D0: @ 0x080117D0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - str r0, [sp] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sl, r1 - movs r0, #0xff - mov sb, r0 - movs r7, #0 - ldr r1, _08011854 - mov r8, r1 -_080117EE: - lsls r4, r7, #5 - adds r5, r4, #0 - adds r5, #0x14 - mov r1, r8 - ldr r0, [r1] - adds r0, r0, r5 - adds r0, #8 - bl sub_080117C4 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - mov r1, r8 - ldr r0, [r1] - adds r0, r0, r4 - ldrh r0, [r0, #0x18] - bl sub_0800FF54 - cmp r0, #0 - beq _08011838 - mov r0, r8 - ldr r1, [r0] - adds r1, r1, r5 - adds r1, #0x15 - ldr r0, [sp] - bl StringCompare - cmp r0, #0 - bne _08011838 - cmp sl, r6 - bne _08011838 - mov sb, r7 - mov r1, r8 - ldr r0, [r1] - adds r0, r0, r4 - ldrb r0, [r0, #0x16] - cmp r0, #0xff - bne _08011842 -_08011838: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #3 - bls _080117EE -_08011842: - mov r0, sb - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08011854: .4byte gUnknown_3007630 - thumb_func_end sub_080117D0 - - thumb_func_start sub_08011858 -sub_08011858: @ 0x08011858 - push {r4, r5, r6, lr} - adds r6, r0, #0 - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - bl rfu_REQ_disconnect - bl rfu_waitREQComplete - ldr r4, _0801189C - ldr r0, _080118A0 - adds r5, r4, r0 - ldrb r0, [r5] - bics r0, r6 - strb r0, [r5] - ldr r1, _080118A4 - adds r6, r4, r1 - ldrb r1, [r6] - movs r0, #1 - bl rfu_clearSlot - ldrb r0, [r5] - ldr r1, _080118A8 - adds r4, r4, r1 - adds r1, r4, #0 - movs r2, #0x46 - bl rfu_UNI_setSendData - ldrb r0, [r5] - bl sub_0800E340 - strb r0, [r6] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0801189C: .4byte gUnknown_30050A0 -_080118A0: .4byte 0x0000099A -_080118A4: .4byte 0x00000992 -_080118A8: .4byte 0x0000093F - thumb_func_end sub_08011858 - - thumb_func_start sub_080118AC -sub_080118AC: @ 0x080118AC - push {lr} - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl sub_080117D0 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xff - beq _080118C6 - movs r0, #1 - lsls r0, r1 - bl sub_08011858 -_080118C6: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080118AC - - thumb_func_start sub_080118CC -sub_080118CC: @ 0x080118CC - push {r4, r5, r6, lr} - adds r4, r0, #0 - cmp r4, #0 - beq _0801190C - movs r3, #0 - movs r2, #0 - ldr r5, _08011914 - adds r6, r5, #4 -_080118DC: - adds r0, r2, r5 - ldrb r0, [r0] - cmp r0, r4 - bne _080118FA - ldrb r0, [r6] - asrs r0, r2 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _080118FA - adds r0, r1, #0 - lsls r0, r2 - orrs r3, r0 - lsls r0, r3, #0x18 - lsrs r3, r0, #0x18 -_080118FA: - adds r2, #1 - cmp r2, #3 - ble _080118DC - cmp r3, #0 - beq _0801190C - adds r0, r3, #0 - movs r1, #2 - bl sub_08011980 -_0801190C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08011914: .4byte gUnknown_3005A36 - thumb_func_end sub_080118CC - - thumb_func_start sub_08011918 -sub_08011918: @ 0x08011918 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r6, _08011970 - ldrh r0, [r6] - cmp r0, #0 - bne _08011968 - ldr r5, _08011974 - movs r1, #0x9a - lsls r1, r1, #4 - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _08011968 - movs r0, #0xed - lsls r0, r0, #8 - bl sub_0800F7F8 - ldr r1, _08011978 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #8] - strh r1, [r6, #2] - ldrh r1, [r0, #0xa] - strh r1, [r6, #4] - ldr r1, _0801197C - movs r2, #8 - ldrsh r0, [r0, r2] - adds r0, r0, r1 - ldrb r1, [r5, #0xd] - ldrb r0, [r0] - subs r1, r1, r0 - strb r1, [r5, #0xd] - ldrb r0, [r5, #0xd] - strh r0, [r6, #6] - adds r0, r4, #0 - bl DestroyTask -_08011968: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08011970: .4byte gUnknown_30031B0 -_08011974: .4byte gUnknown_30050A0 -_08011978: .4byte gUnknown_3005B60 -_0801197C: .4byte gUnknown_82C03E5 - thumb_func_end sub_08011918 - - thumb_func_start sub_08011980 -sub_08011980: @ 0x08011980 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r5, _080119B0 - adds r0, r5, #0 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xff - bne _080119B8 - adds r0, r5, #0 - movs r1, #5 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _080119B4 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r4, [r0, #8] - b _080119C8 - .align 2, 0 -_080119B0: .4byte sub_08011918 -_080119B4: .4byte gUnknown_3005B60 -_080119B8: - ldr r0, _080119DC - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - orrs r4, r0 - strh r4, [r1, #8] -_080119C8: - ldr r1, _080119DC - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r6, [r0, #0xa] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080119DC: .4byte gUnknown_3005B60 - thumb_func_end sub_08011980 - - thumb_func_start sub_080119E0 -sub_080119E0: @ 0x080119E0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _08011A38 - adds r4, r0, r1 - bl sub_0800E954 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08011A90 - adds r0, r4, #0 - adds r0, #0x10 - bl sub_080117C4 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl sub_080117D0 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xff - beq _08011A78 - ldr r0, _08011A3C - ldr r0, [r0] - lsls r1, r2, #5 - adds r0, r0, r1 - ldrb r0, [r0, #0x16] - cmp r0, #0xff - beq _08011A48 - ldr r0, _08011A40 - ldr r1, _08011A44 - adds r0, r0, r1 - strb r2, [r0] - bl sub_0800E97C - cmp r0, #0 - beq _08011A96 - b _08011A70 - .align 2, 0 -_08011A38: .4byte gUnknown_3005B68 -_08011A3C: .4byte gUnknown_3007630 -_08011A40: .4byte gUnknown_30050A0 -_08011A44: .4byte 0x000008F5 -_08011A48: - bl sub_0800F29C - ldrb r1, [r0, #0xa] - movs r5, #0x7f - adds r0, r5, #0 - ands r0, r1 - cmp r0, #6 - beq _08011A90 - bl sub_0800F29C - ldrb r1, [r0, #0xa] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #7 - beq _08011A90 - movs r1, #0xe0 - lsls r1, r1, #7 - movs r0, #2 - bl sub_08011554 -_08011A70: - adds r0, r6, #0 - bl DestroyTask - b _08011A96 -_08011A78: - ldrh r0, [r4, #0x1e] - adds r0, #1 - strh r0, [r4, #0x1e] - ldr r0, _08011A88 - ldr r1, _08011A8C - adds r0, r0, r1 - strb r2, [r0] - b _08011A96 - .align 2, 0 -_08011A88: .4byte gUnknown_30050A0 -_08011A8C: .4byte 0x000008F5 -_08011A90: - ldrh r0, [r4, #0x1e] - adds r0, #1 - strh r0, [r4, #0x1e] -_08011A96: - movs r1, #0x1e - ldrsh r0, [r4, r1] - cmp r0, #0xf0 - ble _08011AAE - movs r1, #0xe0 - lsls r1, r1, #7 - movs r0, #2 - bl sub_08011554 - adds r0, r6, #0 - bl DestroyTask -_08011AAE: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_080119E0 - - thumb_func_start sub_08011AB4 -sub_08011AB4: @ 0x08011AB4 - push {r4, r5, r6, lr} - adds r6, r0, #0 - lsls r5, r1, #0x10 - lsrs r5, r5, #0x10 - ldr r0, _08011AEC - adds r0, #0xf1 - movs r1, #0 - strb r1, [r0] - ldr r0, _08011AF0 - movs r1, #3 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _08011AF4 - adds r4, r4, r0 - adds r0, r4, #0 - adds r1, r6, #0 - bl StringCopy - strh r5, [r4, #0x10] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08011AEC: .4byte gUnknown_30050A0 -_08011AF0: .4byte sub_080119E0 -_08011AF4: .4byte gUnknown_3005B68 - thumb_func_end sub_08011AB4 - - thumb_func_start sub_08011AF8 -sub_08011AF8: @ 0x08011AF8 - push {r4, r5, lr} - adds r4, r1, #0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - bl sub_0800F29C - ldrb r1, [r0, #0xa] - movs r2, #0x7f - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0x45 - bne _08011B1E - ldrb r1, [r4, #0xa] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0x45 - beq _08011B7E -_08011B1A: - movs r0, #1 - b _08011B80 -_08011B1E: - ldrb r1, [r4, #0xa] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0x40 - bne _08011B1A - cmp r5, #0x44 - bne _08011B7E - ldr r5, _08011B4C - ldrh r0, [r5, #8] - ldr r3, _08011B50 - adds r2, r3, #0 - ands r2, r0 - movs r0, #0xce - lsls r0, r0, #1 - cmp r2, r0 - bne _08011B54 - ldrh r1, [r4, #8] - adds r0, r3, #0 - ands r0, r1 - cmp r0, r2 - beq _08011B7E - b _08011B1A - .align 2, 0 -_08011B4C: .4byte gUnknown_30051AA -_08011B50: .4byte 0x000003FF -_08011B54: - ldrh r1, [r4, #8] - adds r0, r3, #0 - ands r0, r1 - cmp r0, r2 - bne _08011B1A - ldrb r2, [r4, #0xb] - movs r0, #0xfe - ldrb r3, [r5, #0xb] - adds r1, r0, #0 - ands r1, r2 - ands r0, r3 - cmp r1, r0 - bne _08011B1A - ldrb r2, [r4, #9] - movs r0, #0xfc - ldrb r3, [r5, #9] - adds r1, r0, #0 - ands r1, r2 - ands r0, r3 - cmp r1, r0 - bne _08011B1A -_08011B7E: - movs r0, #0 -_08011B80: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08011AF8 - - thumb_func_start sub_08011B88 -sub_08011B88: @ 0x08011B88 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - mov r8, r5 - ldr r6, _08011C40 - adds r0, r6, #0 - adds r0, #0xf1 - ldrb r0, [r0] - cmp r0, #4 - bne _08011BA6 - adds r0, r5, #0 - bl DestroyTask -_08011BA6: - ldr r1, _08011C44 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - lsls r0, r0, #0x10 - movs r1, #0x96 - lsls r1, r1, #0x11 - cmp r0, r1 - ble _08011BD0 - movs r1, #0xe0 - lsls r1, r1, #7 - movs r0, #2 - bl sub_08011554 - adds r0, r5, #0 - bl DestroyTask -_08011BD0: - ldr r1, _08011C48 - adds r0, r6, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _08011C68 - ldr r0, _08011C4C - ldrb r0, [r0, #6] - cmp r0, #0 - bne _08011C68 - movs r2, #0x86 - lsls r2, r2, #1 - adds r0, r6, r2 - bl sub_080117C4 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r2, _08011C50 - adds r0, r6, r2 - bl sub_080117D0 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xff - beq _08011C68 - movs r1, #0xa - ldrsh r0, [r4, r1] - ldr r7, _08011C54 - lsls r4, r2, #5 - adds r2, r4, #0 - adds r2, #0x14 - ldr r1, [r7] - adds r1, r1, r2 - adds r1, #6 - bl sub_08011AF8 - cmp r0, #0 - bne _08011C58 - ldr r0, [r7] - adds r1, r0, r4 - ldrb r0, [r1, #0x16] - cmp r0, #0xff - beq _08011C68 - ldrh r0, [r1, #0x14] - movs r1, #0x5a - bl sub_0800BBE8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08011C68 - movs r0, #0xa - strh r0, [r6, #4] - adds r0, r5, #0 - bl DestroyTask - b _08011C68 - .align 2, 0 -_08011C40: .4byte gUnknown_30050A0 -_08011C44: .4byte gUnknown_3005B60 -_08011C48: .4byte 0x00000985 -_08011C4C: .4byte gUnknown_30041E0 -_08011C50: .4byte 0x00000119 -_08011C54: .4byte gUnknown_3007630 -_08011C58: - movs r1, #0xe0 - lsls r1, r1, #7 - movs r0, #2 - bl sub_08011554 - mov r0, r8 - bl DestroyTask -_08011C68: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08011B88 - - thumb_func_start sub_08011C74 -sub_08011C74: @ 0x08011C74 - push {r4, r5, r6, r7, lr} - adds r3, r0, #0 - adds r5, r1, #0 - lsls r4, r2, #0x18 - lsrs r4, r4, #0x18 - ldr r6, _08011CE4 - ldr r1, _08011CE8 - adds r0, r6, r1 - movs r7, #0 - strb r7, [r0] - adds r0, r6, #0 - adds r0, #0xf1 - strb r7, [r0] - ldr r1, _08011CEC - adds r0, r6, r1 - adds r1, r3, #0 - bl StringCopy - movs r1, #0x85 - lsls r1, r1, #1 - adds r0, r6, r1 - adds r1, r5, #0 - movs r2, #0xd - bl memcpy - bl sub_0800D114 - ldr r0, _08011CF0 - movs r1, #2 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _08011CF4 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r5 - strh r4, [r1, #0xa] - ldr r0, _08011CF8 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r2, r1, #0 - cmp r4, #0x45 - bne _08011CFC - cmp r1, #0xff - beq _08011D0A - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r1, #1 - strh r1, [r0, #0x16] - b _08011D0A - .align 2, 0 -_08011CE4: .4byte gUnknown_30050A0 -_08011CE8: .4byte 0x00000987 -_08011CEC: .4byte 0x00000119 -_08011CF0: .4byte sub_08011B88 -_08011CF4: .4byte gUnknown_3005B60 -_08011CF8: .4byte sub_0800E608 -_08011CFC: - cmp r2, #0xff - beq _08011D0A - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r0, r0, r5 - strh r7, [r0, #0x16] -_08011D0A: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08011C74 - - thumb_func_start sub_08011D10 -sub_08011D10: @ 0x08011D10 - push {lr} - ldr r0, _08011D20 - adds r0, #0xf0 - ldrb r0, [r0] - cmp r0, #1 - beq _08011D24 - movs r0, #0 - b _08011D26 - .align 2, 0 -_08011D20: .4byte gUnknown_30050A0 -_08011D24: - movs r0, #1 -_08011D26: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08011D10 - - thumb_func_start sub_08011D2C -sub_08011D2C: @ 0x08011D2C - push {r4, lr} - movs r1, #0 - ldr r0, _08011D50 - ldrb r2, [r0] - ldr r4, _08011D54 - movs r3, #1 -_08011D38: - adds r0, r2, #0 - asrs r0, r1 - ands r0, r3 - cmp r0, #0 - beq _08011D58 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, #0 - bne _08011D58 - movs r0, #0 - b _08011D60 - .align 2, 0 -_08011D50: .4byte gUnknown_30041E0 -_08011D54: .4byte gUnknown_3005A29 -_08011D58: - adds r1, #1 - cmp r1, #3 - ble _08011D38 - movs r0, #1 -_08011D60: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08011D2C - - thumb_func_start sub_08011D68 -sub_08011D68: @ 0x08011D68 - push {r4, lr} - movs r4, #0 -_08011D6C: - lsls r2, r4, #0x18 - lsrs r2, r2, #0x18 - ldr r0, _08011D84 - movs r1, #0 - bl sub_0800E0C0 - adds r4, #1 - cmp r4, #0x13 - ble _08011D6C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08011D84: .4byte gUnknown_82C05A8 - thumb_func_end sub_08011D68 - - thumb_func_start sub_08011D88 -sub_08011D88: @ 0x08011D88 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - bl GetBlockReceivedStatus - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x1c - movs r2, #0x13 - movs r3, #2 - bl sub_0800E0C4 - ldr r4, _08011E58 - ldr r0, [r4] - ldrb r0, [r0, #2] - movs r1, #0x14 - movs r2, #1 - movs r3, #1 - bl sub_0800E0C4 - ldr r0, [r4] - ldrb r0, [r0, #3] - movs r1, #0x17 - movs r2, #1 - movs r3, #1 - bl sub_0800E0C4 - ldr r0, _08011E5C - ldrb r0, [r0, #0xc] - cmp r0, #1 - bne _08011E64 - movs r6, #0 - adds r7, r4, #0 - movs r5, #0x14 -_08011DCC: - ldr r2, [r7] - ldrb r0, [r2, #7] - asrs r0, r6 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08011E0A - lsls r0, r6, #5 - adds r0, r2, r0 - ldrh r0, [r0, #0x18] - adds r4, r6, #3 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r2, r4, #0 - movs r3, #4 - bl sub_0800E0C4 - ldr r0, [r7] - adds r0, r0, r5 - adds r0, #6 - movs r1, #6 - adds r2, r4, #0 - bl sub_0800E0C0 - ldr r0, [r7] - adds r0, r0, r5 - adds r0, #0x15 - movs r1, #0x16 - adds r2, r4, #0 - bl sub_0800E0C0 -_08011E0A: - adds r5, #0x20 - adds r6, #1 - cmp r6, #3 - ble _08011DCC - movs r6, #0 - ldr r0, _08011E5C - mov r8, r0 -_08011E18: - movs r5, #0 - adds r7, r6, #1 - lsls r0, r6, #3 - adds r2, r6, #0 - adds r2, #0xb - subs r0, r0, r6 - lsls r0, r0, #1 - mov r1, r8 - adds r1, #0x14 - adds r4, r0, r1 - lsls r6, r2, #0x18 -_08011E2E: - ldrb r0, [r4] - lsls r1, r5, #0x19 - lsrs r1, r1, #0x18 - lsrs r2, r6, #0x18 - movs r3, #2 - bl sub_0800E0C4 - adds r4, #1 - adds r5, #1 - cmp r5, #0xd - ble _08011E2E - adds r6, r7, #0 - cmp r6, #3 - ble _08011E18 - ldr r0, _08011E60 - movs r1, #1 - movs r2, #0xf - bl sub_0800E0C0 - b _08011F96 - .align 2, 0 -_08011E58: .4byte gUnknown_3007630 -_08011E5C: .4byte gUnknown_30050A0 -_08011E60: .4byte gUnknown_82C05E4 -_08011E64: - ldr r1, [r4] - ldrb r0, [r1, #2] - cmp r0, #0 - beq _08011F00 - ldrb r0, [r1, #7] - cmp r0, #0 - beq _08011F00 - movs r6, #0 - movs r5, #0xc0 - lsls r5, r5, #0x12 -_08011E78: - lsrs r4, r5, #0x18 - movs r0, #0 - movs r1, #1 - adds r2, r4, #0 - movs r3, #4 - bl sub_0800E0C4 - ldr r0, _08011EEC - movs r1, #6 - adds r2, r4, #0 - bl sub_0800E0C0 - ldr r0, _08011EF0 - movs r1, #0x16 - adds r2, r4, #0 - bl sub_0800E0C0 - movs r1, #0x80 - lsls r1, r1, #0x11 - adds r5, r5, r1 - adds r6, #1 - cmp r6, #3 - ble _08011E78 - ldr r5, _08011EF4 - ldr r1, [r5] - ldr r4, _08011EF8 - ldr r0, _08011EFC - adds r4, r4, r0 - ldrb r0, [r4] - lsls r0, r0, #5 - adds r1, r1, r0 - ldrh r0, [r1, #0x18] - movs r1, #1 - movs r2, #3 - movs r3, #4 - bl sub_0800E0C4 - ldrb r1, [r4] - lsls r1, r1, #5 - adds r1, #0x14 - ldr r0, [r5] - adds r0, r0, r1 - adds r0, #6 - movs r1, #6 - movs r2, #3 - bl sub_0800E0C0 - ldrb r1, [r4] - lsls r1, r1, #5 - adds r1, #0x14 - ldr r0, [r5] - adds r0, r0, r1 - adds r0, #0x15 - movs r1, #0x16 - movs r2, #3 - bl sub_0800E0C0 - b _08011F96 - .align 2, 0 -_08011EEC: .4byte gUnknown_82C05C7 -_08011EF0: .4byte gUnknown_82C05D7 -_08011EF4: .4byte gUnknown_3007630 -_08011EF8: .4byte gUnknown_30050A0 -_08011EFC: .4byte 0x000008F6 -_08011F00: - movs r6, #0 - ldr r1, _08011FA0 - ldr r0, [r1] - ldrb r0, [r0, #8] - cmp r6, r0 - bge _08011F5C - adds r7, r1, #0 - movs r1, #0x14 - mov r8, r1 -_08011F12: - ldr r0, [r7] - lsls r5, r6, #5 - adds r1, r0, r5 - ldrb r0, [r1, #0x16] - cmp r0, #0xff - beq _08011F4E - ldrh r0, [r1, #0x18] - adds r4, r6, #3 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r1, #1 - adds r2, r4, #0 - movs r3, #4 - bl sub_0800E0C4 - ldr r0, [r7] - adds r0, r0, r5 - ldrh r0, [r0, #0x14] - movs r1, #6 - adds r2, r4, #0 - movs r3, #4 - bl sub_0800E0C4 - ldr r0, [r7] - add r0, r8 - adds r0, #0x15 - movs r1, #0x16 - adds r2, r4, #0 - bl sub_0800E0C0 -_08011F4E: - movs r0, #0x20 - add r8, r0 - adds r6, #1 - ldr r0, [r7] - ldrb r0, [r0, #8] - cmp r6, r0 - blt _08011F12 -_08011F5C: - cmp r6, #3 - bgt _08011F96 - lsls r0, r6, #0x18 - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r5, r0, r1 -_08011F68: - lsrs r4, r5, #0x18 - movs r0, #0 - movs r1, #1 - adds r2, r4, #0 - movs r3, #4 - bl sub_0800E0C4 - ldr r0, _08011FA4 - movs r1, #6 - adds r2, r4, #0 - bl sub_0800E0C0 - ldr r0, _08011FA8 - movs r1, #0x16 - adds r2, r4, #0 - bl sub_0800E0C0 - movs r0, #0x80 - lsls r0, r0, #0x11 - adds r5, r5, r0 - adds r6, #1 - cmp r6, #3 - ble _08011F68 -_08011F96: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08011FA0: .4byte gUnknown_3007630 -_08011FA4: .4byte gUnknown_82C05C7 -_08011FA8: .4byte gUnknown_82C05D7 - thumb_func_end sub_08011D88 - - thumb_func_start sub_08011FAC -sub_08011FAC: @ 0x08011FAC - ldr r0, _08011FB8 - ldr r1, _08011FBC - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08011FB8: .4byte gUnknown_30050A0 -_08011FBC: .4byte 0x000008D2 - thumb_func_end sub_08011FAC - - thumb_func_start sub_08011FC0 -sub_08011FC0: @ 0x08011FC0 - ldr r0, _08011FCC - ldr r1, _08011FD0 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08011FCC: .4byte gUnknown_30050A0 -_08011FD0: .4byte 0x0000069E - thumb_func_end sub_08011FC0 - - thumb_func_start sub_08011FD4 -sub_08011FD4: @ 0x08011FD4 - bx lr - .align 2, 0 - thumb_func_end sub_08011FD4 - - thumb_func_start sub_08011FD8 -sub_08011FD8: @ 0x08011FD8 - push {r4, r5, r6, lr} - sub sp, #8 - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - adds r0, r6, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - lsls r4, r4, #8 - movs r0, #0x90 - lsls r0, r0, #6 - cmp r4, r0 - beq _08012074 - cmp r4, r0 - bgt _08012012 - movs r0, #0x80 - lsls r0, r0, #2 - cmp r4, r0 - beq _08012024 - movs r0, #0x80 - lsls r0, r0, #3 - cmp r4, r0 - beq _08012030 - b _08012092 -_08012012: - movs r0, #0x94 - lsls r0, r0, #6 - cmp r4, r0 - beq _08012040 - movs r0, #0xd4 - lsls r0, r0, #6 - cmp r4, r0 - beq _08012050 - b _08012092 -_08012024: - ldr r1, _0801202C - subs r0, r5, #1 - lsls r0, r0, #2 - b _08012058 - .align 2, 0 -_0801202C: .4byte gUnknown_82C0840 -_08012030: - ldr r1, _0801203C - subs r0, r5, #1 - lsls r0, r0, #2 - adds r1, #0x14 - b _08012058 - .align 2, 0 -_0801203C: .4byte gUnknown_82C0840 -_08012040: - ldr r1, _0801204C - subs r0, r5, #1 - lsls r0, r0, #2 - adds r1, #0x28 - b _08012058 - .align 2, 0 -_0801204C: .4byte gUnknown_82C0840 -_08012050: - ldr r1, _08012070 - subs r0, r5, #1 - lsls r0, r0, #2 - adds r1, #0x3c -_08012058: - adds r0, r0, r1 - ldr r2, [r0] - movs r0, #3 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - adds r0, r6, #0 - movs r1, #1 - movs r3, #2 - bl sub_08016EA4 - b _08012092 - .align 2, 0 -_08012070: .4byte gUnknown_82C0840 -_08012074: - ldr r1, _080120A4 - subs r0, r5, #1 - lsls r0, r0, #2 - adds r1, #0x50 - adds r0, r0, r1 - ldr r2, [r0] - movs r0, #3 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - adds r0, r6, #0 - movs r1, #1 - movs r3, #2 - bl sub_08016EA4 -_08012092: - adds r0, r6, #0 - movs r1, #2 - bl CopyWindowToVram - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080120A4: .4byte gUnknown_82C0840 - thumb_func_end sub_08011FD8 - - thumb_func_start sub_080120A8 -sub_080120A8: @ 0x080120A8 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #0x28 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _0801212C - mov r8, r0 - ldr r1, [r0] - add r0, sp, #8 - movs r2, #5 - bl StringCopyN_Multibyte - movs r0, #3 - str r0, [sp] - movs r1, #0 - mov sb, r1 - str r1, [sp, #4] - adds r0, r4, #0 - movs r1, #1 - add r2, sp, #8 - movs r3, #2 - bl sub_08016EA4 - add r5, sp, #0x1c - ldr r1, _08012130 - adds r0, r5, #0 - bl StringCopy - add r6, sp, #0x10 - mov r1, r8 - ldr r0, [r1] - adds r0, #0xa - bl sub_08015160 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r6, #0 - movs r2, #2 - movs r3, #5 - bl sub_080089D8 - adds r0, r5, #0 - adds r1, r6, #0 - bl StringAppend - movs r0, #0x10 - str r0, [sp] - mov r0, sb - str r0, [sp, #4] - adds r0, r4, #0 - movs r1, #1 - adds r2, r5, #0 - movs r3, #2 - bl sub_08016EA4 - add sp, #0x28 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0801212C: .4byte gUnknown_3005AF0 -_08012130: .4byte gUnknown_82C0648 - thumb_func_end sub_080120A8 - - thumb_func_start sub_08012134 -sub_08012134: @ 0x08012134 - push {lr} - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - subs r0, r1, #1 - cmp r0, #0x1b - bhi _080121C8 - lsls r0, r0, #2 - ldr r1, _0801214C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801214C: .4byte _08012150 -_08012150: @ jump table - .4byte _080121C0 @ case 0 - .4byte _080121C0 @ case 1 - .4byte _080121C0 @ case 2 - .4byte _080121C0 @ case 3 - .4byte _080121C8 @ case 4 - .4byte _080121C0 @ case 5 - .4byte _080121C0 @ case 6 - .4byte _080121C8 @ case 7 - .4byte _080121C0 @ case 8 - .4byte _080121C0 @ case 9 - .4byte _080121C0 @ case 10 - .4byte _080121C8 @ case 11 - .4byte _080121C8 @ case 12 - .4byte _080121C0 @ case 13 - .4byte _080121C0 @ case 14 - .4byte _080121C0 @ case 15 - .4byte _080121C8 @ case 16 - .4byte _080121C8 @ case 17 - .4byte _080121C8 @ case 18 - .4byte _080121C8 @ case 19 - .4byte _080121C8 @ case 20 - .4byte _080121C8 @ case 21 - .4byte _080121C0 @ case 22 - .4byte _080121C0 @ case 23 - .4byte _080121C0 @ case 24 - .4byte _080121C0 @ case 25 - .4byte _080121C0 @ case 26 - .4byte _080121C0 @ case 27 -_080121C0: - ldr r0, _080121CC - ldr r1, _080121D0 - bl StringExpandPlaceholders -_080121C8: - pop {r0} - bx r0 - .align 2, 0 -_080121CC: .4byte gUnknown_2021C7C -_080121D0: .4byte gUnknown_82C069C - thumb_func_end sub_08012134 - - thumb_func_start sub_080121D4 -sub_080121D4: @ 0x080121D4 - push {lr} - subs r0, #9 - cmp r0, #0x12 - bhi _0801223C - lsls r0, r0, #2 - ldr r1, _080121E8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080121E8: .4byte _080121EC -_080121EC: @ jump table - .4byte _08012238 @ case 0 - .4byte _08012238 @ case 1 - .4byte _08012238 @ case 2 - .4byte _0801223C @ case 3 - .4byte _0801223C @ case 4 - .4byte _0801223C @ case 5 - .4byte _08012238 @ case 6 - .4byte _08012238 @ case 7 - .4byte _0801223C @ case 8 - .4byte _0801223C @ case 9 - .4byte _0801223C @ case 10 - .4byte _0801223C @ case 11 - .4byte _0801223C @ case 12 - .4byte _0801223C @ case 13 - .4byte _08012238 @ case 14 - .4byte _08012238 @ case 15 - .4byte _08012238 @ case 16 - .4byte _08012238 @ case 17 - .4byte _08012238 @ case 18 -_08012238: - movs r0, #1 - b _0801223E -_0801223C: - movs r0, #0 -_0801223E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080121D4 - - thumb_func_start BerryBlenderLinkBecomeLeader -BerryBlenderLinkBecomeLeader: @ 0x08012244 - push {lr} - ldr r0, _08012274 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08012278 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _0801227C - adds r1, r1, r0 - str r1, [r2] - ldr r0, _08012280 - str r1, [r0] - movs r0, #0 - strb r0, [r1, #0xc] - strb r0, [r1, #0xd] - ldr r1, _08012284 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08012274: .4byte sub_08012288 -_08012278: .4byte gUnknown_20228E4 -_0801227C: .4byte gUnknown_3005B68 -_08012280: .4byte gUnknown_3000DA0 -_08012284: .4byte gUnknown_2037290 - thumb_func_end BerryBlenderLinkBecomeLeader - - thumb_func_start sub_08012288 -sub_08012288: @ 0x08012288 - push {r4, r5, r6, r7, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080122A8 - ldr r5, [r0] - ldrb r0, [r5, #0xc] - cmp r0, #0x1e - bls _0801229E - bl _08012A54 -_0801229E: - lsls r0, r0, #2 - ldr r1, _080122AC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080122A8: .4byte gUnknown_20228E4 -_080122AC: .4byte _080122B0 -_080122B0: @ jump table - .4byte _0801232C @ case 0 - .4byte _08012A54 @ case 1 - .4byte _08012A54 @ case 2 - .4byte _080123A4 @ case 3 - .4byte _080124CC @ case 4 - .4byte _08012554 @ case 5 - .4byte _08012570 @ case 6 - .4byte _08012690 @ case 7 - .4byte _08012A54 @ case 8 - .4byte _08012600 @ case 9 - .4byte _08012618 @ case 10 - .4byte _080126AC @ case 11 - .4byte _08012760 @ case 12 - .4byte _0801285E @ case 13 - .4byte _0801287C @ case 14 - .4byte _0801288E @ case 15 - .4byte _080128AC @ case 16 - .4byte _08012966 @ case 17 - .4byte _0801297C @ case 18 - .4byte _080128F6 @ case 19 - .4byte _08012914 @ case 20 - .4byte _080129D4 @ case 21 - .4byte _08012A00 @ case 22 - .4byte _080129D4 @ case 23 - .4byte _080129EA @ case 24 - .4byte _08012A54 @ case 25 - .4byte _08012A18 @ case 26 - .4byte _08012A54 @ case 27 - .4byte _08012A54 @ case 28 - .4byte _08012658 @ case 29 - .4byte _080129BA @ case 30 -_0801232C: - ldr r0, _0801238C - ldrh r2, [r0] - adds r3, r0, #0 - cmp r2, #0x14 - bne _0801234C - ldr r0, _08012390 - ldr r0, [r0] - ldr r1, _08012394 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - cmp r0, #1 - bne _0801234C - adds r0, r2, #1 - strh r0, [r3] -_0801234C: - ldr r2, _08012398 - ldr r1, _0801239C - ldrh r0, [r3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2] - ldr r4, _080123A0 - ldrh r0, [r3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - lsrs r0, r0, #8 - strb r0, [r4] - ldrb r0, [r2] - movs r1, #0 - movs r2, #0 - bl sub_08010A74 - bl sub_0800AF5C - bl OpenLink - ldrb r1, [r4] - movs r0, #0xf - ands r0, r1 - bl sub_080116FC - movs r0, #3 - strb r0, [r5, #0xc] - b _08012A54 - .align 2, 0 -_0801238C: .4byte gUnknown_2037280 -_08012390: .4byte gUnknown_3005AF0 -_08012394: .4byte 0x00000CA9 -_08012398: .4byte gUnknown_20228E0 -_0801239C: .4byte gUnknown_82C1FCC -_080123A0: .4byte gUnknown_20228E1 -_080123A4: - movs r0, #0x70 - bl AllocZeroed - str r0, [r5, #4] - movs r0, #0xa0 - bl AllocZeroed - str r0, [r5] - movs r0, #0xa0 - bl AllocZeroed - str r0, [r5, #8] - ldr r0, [r5, #4] - movs r1, #4 - bl sub_080170B0 - ldr r0, [r5] - movs r1, #5 - bl sub_08017044 - ldr r0, [r5] - adds r1, r0, #0 - adds r1, #0x10 - bl sub_0800DA5C - ldr r1, [r5] - movs r3, #0 - movs r0, #0 - strh r0, [r1, #0x18] - ldr r2, [r5] - ldrb r1, [r2, #0x1a] - subs r0, #4 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x1a] - ldr r2, [r5] - ldrb r1, [r2, #0x1a] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x1a] - ldr r0, [r5] - strb r3, [r0, #0x1b] - ldr r0, [r5, #4] - movs r1, #0xff - bl sub_08016AD0 - strb r0, [r5, #0x17] - ldr r0, _08012424 - bl AddWindow - strb r0, [r5, #0x10] - ldr r0, _08012428 - ldrb r0, [r0] - movs r1, #0xf - ands r1, r0 - cmp r1, #2 - blt _0801243C - cmp r1, #4 - ble _0801242C - cmp r1, #5 - beq _08012434 - b _0801243C - .align 2, 0 -_08012424: .4byte gUnknown_82C1FC4 -_08012428: .4byte gUnknown_20228E1 -_0801242C: - ldr r0, _08012430 - b _08012436 - .align 2, 0 -_08012430: .4byte gUnknown_82C2024 -_08012434: - ldr r0, _080124B8 -_08012436: - bl AddWindow - strb r0, [r5, #0xf] -_0801243C: - ldr r0, _080124BC - bl AddWindow - strb r0, [r5, #0x11] - ldrb r0, [r5, #0x10] - movs r1, #0x22 - bl FillWindowPixelBuffer - ldrb r0, [r5, #0x10] - ldr r2, _080124C0 - movs r1, #2 - str r1, [sp] - movs r4, #4 - str r4, [sp, #4] - movs r1, #1 - movs r3, #8 - bl sub_08016EA4 - ldrb r0, [r5, #0x10] - bl PutWindowTilemap - ldrb r0, [r5, #0x10] - movs r1, #2 - bl CopyWindowToVram - ldrb r0, [r5, #0xf] - movs r1, #0 - bl sub_08196FF0 - ldr r0, _080124C4 - adds r2, r0, #0 - ldr r1, _080124C8 - ldm r1!, {r3, r6, r7} - stm r2!, {r3, r6, r7} - ldm r1!, {r3, r6, r7} - stm r2!, {r3, r6, r7} - ldrb r1, [r5, #0xf] - strb r1, [r0, #0x10] - movs r1, #0 - movs r2, #0 - bl ListMenuInit - strb r0, [r5, #0x12] - ldrb r0, [r5, #0x11] - movs r1, #0 - bl sub_08196FF0 - ldrb r0, [r5, #0x11] - bl PutWindowTilemap - ldrb r0, [r5, #0x11] - movs r1, #2 - bl CopyWindowToVram - movs r0, #0 - bl CopyBgTilemapBufferToVram - movs r0, #1 - strb r0, [r5, #0x13] - strb r4, [r5, #0xc] - b _08012A54 - .align 2, 0 -_080124B8: .4byte gUnknown_82C202C -_080124BC: .4byte gUnknown_82C2034 -_080124C0: .4byte gUnknown_82C08A4 -_080124C4: .4byte gUnknown_3006050 -_080124C8: .4byte gUnknown_82C2064 -_080124CC: - ldr r0, _08012504 - ldr r2, _08012508 - ldr r4, _0801250C - ldrb r1, [r4] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl StringCopy - ldr r0, _08012510 - ldrb r2, [r0] - lsrs r0, r2, #4 - cmp r0, #0 - beq _08012530 - ldrb r1, [r5, #0x13] - subs r0, #1 - cmp r1, r0 - ble _0801251C - movs r0, #0xf - ands r0, r2 - cmp r0, #0 - beq _0801251C - ldr r0, _08012514 - ldr r1, _08012518 - bl StringExpandPlaceholders - b _08012538 - .align 2, 0 -_08012504: .4byte gUnknown_2021C40 -_08012508: .4byte gUnknown_82C1E58 -_0801250C: .4byte gUnknown_20228E0 -_08012510: .4byte gUnknown_20228E1 -_08012514: .4byte gUnknown_2021C7C -_08012518: .4byte gUnknown_82C06B8 -_0801251C: - ldr r0, _08012528 - ldr r1, _0801252C - bl StringExpandPlaceholders - b _08012538 - .align 2, 0 -_08012528: .4byte gUnknown_2021C7C -_0801252C: .4byte gUnknown_82C069C -_08012530: - ldr r0, _0801254C - ldrb r1, [r4] - bl sub_08012134 -_08012538: - ldrb r0, [r5, #0x11] - ldr r1, _08012550 - ldrb r1, [r1] - ldrb r2, [r5, #0x13] - bl sub_08011FD8 - movs r0, #5 - strb r0, [r5, #0xc] - b _08012A54 - .align 2, 0 -_0801254C: .4byte gUnknown_2021C7C -_08012550: .4byte gUnknown_20228E1 -_08012554: - adds r0, r5, #0 - adds r0, #0xd - ldr r1, _0801256C - bl PrintOnTextbox - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08012566 - b _08012A54 -_08012566: - movs r0, #6 - strb r0, [r5, #0xc] - b _08012A54 - .align 2, 0 -_0801256C: .4byte gUnknown_2021C7C -_08012570: - adds r0, r5, #0 - movs r1, #7 - movs r2, #0xa - bl sub_08012D0C - ldr r0, _08012590 - ldrh r1, [r0, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080125AC - ldrb r0, [r5, #0x13] - cmp r0, #1 - bne _08012594 - movs r0, #0x17 - b _080125AA - .align 2, 0 -_08012590: .4byte gUnknown_3002360 -_08012594: - ldr r0, _080125A4 - ldrb r1, [r0] - movs r0, #0xf0 - ands r0, r1 - cmp r0, #0 - beq _080125A8 - movs r0, #0x1e - b _080125AA - .align 2, 0 -_080125A4: .4byte gUnknown_20228E1 -_080125A8: - movs r0, #0x13 -_080125AA: - strb r0, [r5, #0xc] -_080125AC: - ldr r0, _080125F8 - ldrb r2, [r0] - lsrs r0, r2, #4 - cmp r0, #0 - beq _080125E2 - ldrb r1, [r5, #0x13] - subs r0, #1 - cmp r1, r0 - ble _080125E2 - movs r4, #0xf - adds r0, r4, #0 - ands r0, r2 - cmp r0, #0 - beq _080125E2 - bl sub_08011D2C - cmp r0, #0 - beq _080125E2 - ldr r0, _080125FC - ldrh r1, [r0, #0x2e] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080125E2 - strb r4, [r5, #0xc] - bl sub_0800E9F8 -_080125E2: - ldrb r0, [r5, #0xc] - cmp r0, #6 - beq _080125EA - b _08012A54 -_080125EA: - bl sub_080100EC - cmp r0, #0 - bne _080125F4 - b _08012A54 -_080125F4: - b _0801275A - .align 2, 0 -_080125F8: .4byte gUnknown_20228E1 -_080125FC: .4byte gUnknown_3002360 -_08012600: - bl sub_080100EC - cmp r0, #0 - beq _0801260A - b _08012A54 -_0801260A: - movs r0, #6 - strb r0, [r5, #0xc] - ldr r0, [r5] - bl sub_08012E9C - strb r0, [r5, #0x13] - b _08012A54 -_08012618: - movs r3, #0 - ldr r0, _08012650 - ldrb r1, [r0] - movs r0, #0xf - ands r0, r1 - cmp r0, #2 - bne _08012628 - movs r3, #1 -_08012628: - adds r0, r5, #0 - adds r0, #0xd - ldr r2, _08012654 - lsls r1, r3, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl PrintOnTextbox - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08012640 - b _08012A54 -_08012640: - ldr r0, [r5] - bl sub_08012E9C - strb r0, [r5, #0x13] - ldrb r0, [r5, #0x12] - bl RedrawListMenu - b _08012960 - .align 2, 0 -_08012650: .4byte gUnknown_20228E0 -_08012654: .4byte gUnknown_82C09E0 -_08012658: - ldr r0, _08012688 - ldrb r0, [r0] - movs r1, #0xf - ands r1, r0 - movs r0, #2 - eors r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r3, r0, #0x1f - adds r0, r5, #0 - adds r0, #0xd - ldr r2, _0801268C - lsls r1, r3, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl PrintOnTextbox - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08012682 - b _08012A54 -_08012682: - movs r0, #0x15 - strb r0, [r5, #0xc] - b _08012A54 - .align 2, 0 -_08012688: .4byte gUnknown_20228E1 -_0801268C: .4byte gUnknown_82C09E0 -_08012690: - adds r0, r5, #0 - adds r0, #0xd - ldr r1, _080126A8 - bl PrintOnTextbox - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080126A2 - b _08012A54 -_080126A2: - movs r0, #0xb - strb r0, [r5, #0xc] - b _08012A54 - .align 2, 0 -_080126A8: .4byte gUnknown_2021C7C -_080126AC: - adds r4, r5, #0 - adds r4, #0xd - ldrb r1, [r5, #0x13] - lsls r1, r1, #5 - ldr r0, [r5] - adds r0, r0, r1 - adds r0, #2 - bl sub_08015160 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrb r2, [r5, #0x13] - lsls r2, r2, #5 - ldr r1, [r5] - adds r1, r1, r2 - adds r1, #0x10 - bl sub_0801014C - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08016BC8 - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0801272C - cmp r1, r0 - bgt _080126F0 - subs r0, #2 - cmp r1, r0 - beq _0801275A - b _08012A54 -_080126F0: - cmp r1, #0 - beq _080126FA - cmp r1, #1 - beq _0801272C - b _08012A54 -_080126FA: - bl LoadWirelessStatusIndicatorSpriteGfx - movs r0, #0 - movs r1, #0 - bl CreateWirelessStatusIndicatorSprite - movs r0, #5 - strb r0, [r5, #0x19] - ldrb r1, [r5, #0x13] - lsls r1, r1, #5 - ldr r0, [r5] - adds r0, r0, r1 - adds r0, #2 - bl sub_08015160 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldrb r0, [r5, #0x13] - lsls r0, r0, #5 - ldr r2, [r5] - adds r2, r2, r0 - adds r2, #0x10 - movs r0, #5 - b _08012750 -_0801272C: - movs r0, #6 - strb r0, [r5, #0x19] - ldrb r1, [r5, #0x13] - lsls r1, r1, #5 - ldr r0, [r5] - adds r0, r0, r1 - adds r0, #2 - bl sub_08015160 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldrb r0, [r5, #0x13] - lsls r0, r0, #5 - ldr r2, [r5] - adds r2, r2, r0 - adds r2, #0x10 - movs r0, #6 -_08012750: - bl sub_08010188 - movs r0, #0xc - strb r0, [r5, #0xc] - b _08012A54 -_0801275A: - movs r0, #9 - strb r0, [r5, #0xc] - b _08012A54 -_08012760: - ldrb r1, [r5, #0x13] - lsls r1, r1, #5 - ldr r0, [r5] - adds r0, r0, r1 - adds r0, #2 - bl sub_08015160 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrb r2, [r5, #0x13] - lsls r2, r2, #5 - ldr r1, [r5] - adds r1, r1, r2 - adds r1, #0x10 - bl sub_08010214 - cmp r0, #1 - bne _0801284E - ldrb r0, [r5, #0x19] - cmp r0, #5 - bne _08012808 - ldr r1, [r5] - ldrb r0, [r5, #0x13] - lsls r0, r0, #5 - adds r1, r1, r0 - movs r0, #0 - strb r0, [r1, #0x1b] - ldrb r0, [r5, #0x12] - bl RedrawListMenu - ldrb r0, [r5, #0x13] - adds r0, #1 - strb r0, [r5, #0x13] - ldr r1, _080127C4 - ldrb r1, [r1] - movs r3, #0xf - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r0, r3, #0 - ands r0, r1 - cmp r2, r0 - bne _08012844 - movs r0, #0xf0 - ands r0, r1 - cmp r0, #0 - bne _080127C0 - cmp r2, #4 - bne _080127C8 -_080127C0: - strb r3, [r5, #0xc] - b _080127E4 - .align 2, 0 -_080127C4: .4byte gUnknown_20228E1 -_080127C8: - ldr r0, _080127F8 - ldrb r1, [r5, #0x13] - lsls r1, r1, #5 - ldr r2, [r5] - adds r1, r1, r2 - subs r1, #0x10 - bl StringCopy7 - ldr r0, _080127FC - ldr r1, _08012800 - bl StringExpandPlaceholders - movs r0, #0xd - strb r0, [r5, #0xc] -_080127E4: - bl sub_0800E9F8 - ldrb r0, [r5, #0x11] - ldr r1, _08012804 - ldrb r1, [r1] - ldrb r2, [r5, #0x13] - bl sub_08011FD8 - b _08012848 - .align 2, 0 -_080127F8: .4byte gUnknown_2021C40 -_080127FC: .4byte gUnknown_2021C7C -_08012800: .4byte gUnknown_82C0948 -_08012804: .4byte gUnknown_20228E1 -_08012808: - ldrb r1, [r5, #0x13] - lsls r1, r1, #5 - ldr r0, [r5] - adds r0, r0, r1 - adds r4, r0, #0 - adds r4, #0x10 - adds r0, #2 - bl sub_08015160 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl sub_080118AC - ldr r1, [r5] - ldrb r0, [r5, #0x13] - lsls r0, r0, #5 - adds r1, r1, r0 - ldrb r2, [r1, #0x1a] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #0x1a] - ldr r0, [r5] - bl sub_08012E9C - ldrb r0, [r5, #0x12] - bl RedrawListMenu -_08012844: - movs r0, #4 - strb r0, [r5, #0xc] -_08012848: - movs r0, #0 - strb r0, [r5, #0x19] - b _08012A54 -_0801284E: - cmp r0, #2 - beq _08012854 - b _08012A54 -_08012854: - movs r0, #0 - movs r1, #0 - bl sub_08011554 - b _08012960 -_0801285E: - adds r0, r5, #0 - adds r0, #0xd - ldr r1, _08012878 - bl PrintOnTextbox - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08012870 - b _08012A54 -_08012870: - movs r0, #0xe - strb r0, [r5, #0xc] - b _08012A54 - .align 2, 0 -_08012878: .4byte gUnknown_2021C7C -_0801287C: - ldrb r0, [r5, #0xe] - adds r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x78 - bhi _0801288C - b _08012A54 -_0801288C: - b _080128D2 -_0801288E: - adds r0, r5, #0 - adds r0, #0xd - ldr r1, _080128A8 - bl PrintOnTextbox - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080128A0 - b _08012A54 -_080128A0: - movs r0, #0x10 - strb r0, [r5, #0xc] - b _08012A54 - .align 2, 0 -_080128A8: .4byte gUnknown_82C0914 -_080128AC: - adds r0, r5, #0 - adds r0, #0xd - movs r1, #0 - bl sub_08016BC8 - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _080128D2 - cmp r1, #0 - bgt _080128CC - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _080128D8 - b _08012A54 -_080128CC: - cmp r1, #1 - beq _080128D8 - b _08012A54 -_080128D2: - movs r0, #0x11 - strb r0, [r5, #0xc] - b _08012A54 -_080128D8: - ldr r0, _080128EC - ldrb r1, [r0] - movs r0, #0xf0 - ands r0, r1 - cmp r0, #0 - beq _080128F0 - movs r0, #0x1e - strb r0, [r5, #0xc] - b _08012A54 - .align 2, 0 -_080128EC: .4byte gUnknown_20228E1 -_080128F0: - movs r0, #0x13 - strb r0, [r5, #0xc] - b _08012A54 -_080128F6: - adds r0, r5, #0 - adds r0, #0xd - ldr r1, _08012910 - bl PrintOnTextbox - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08012908 - b _08012A54 -_08012908: - movs r0, #0x14 - strb r0, [r5, #0xc] - b _08012A54 - .align 2, 0 -_08012910: .4byte gUnknown_82C092C -_08012914: - adds r0, r5, #0 - adds r0, #0xd - movs r1, #0 - bl sub_08016BC8 - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _080129CA - cmp r1, #0 - bgt _08012934 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0801293A - b _08012A54 -_08012934: - cmp r1, #1 - beq _0801293A - b _08012A54 -_0801293A: - ldr r0, _0801294C - ldrb r2, [r0] - movs r0, #0xf0 - ands r0, r2 - cmp r0, #0 - beq _08012950 - movs r0, #0xf - strb r0, [r5, #0xc] - b _08012A54 - .align 2, 0 -_0801294C: .4byte gUnknown_20228E1 -_08012950: - movs r3, #0xf - ldrb r1, [r5, #0x13] - adds r0, r3, #0 - ands r0, r2 - cmp r1, r0 - bne _08012960 - strb r3, [r5, #0xc] - b _08012A54 -_08012960: - movs r0, #4 - strb r0, [r5, #0xc] - b _08012A54 -_08012966: - adds r0, r5, #0 - movs r1, #7 - movs r2, #0x1d - bl sub_08012D0C - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08012A54 - movs r0, #0x12 - strb r0, [r5, #0xc] - b _08012A54 -_0801297C: - bl sub_0800E9DC - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _080129B2 - movs r0, #0 - bl sub_0800EA18 - cmp r0, #0 - beq _08012998 - movs r0, #0x1a - strb r0, [r5, #0xc] - b _08012A54 -_08012998: - ldrh r0, [r5, #0x1a] - adds r0, #1 - strh r0, [r5, #0x1a] - lsls r0, r0, #0x10 - movs r1, #0x96 - lsls r1, r1, #0x11 - cmp r0, r1 - bls _08012A54 - movs r0, #0x1d - strb r0, [r5, #0xc] - movs r0, #0 - strb r0, [r5, #0xd] - b _08012A54 -_080129B2: - movs r0, #0x1d - strb r0, [r5, #0xc] - strb r1, [r5, #0xd] - b _08012A54 -_080129BA: - adds r0, r5, #0 - adds r0, #0xd - ldr r1, _080129D0 - bl PrintOnTextbox - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08012A54 -_080129CA: - movs r0, #0x17 - strb r0, [r5, #0xc] - b _08012A54 - .align 2, 0 -_080129D0: .4byte gUnknown_82C09A8 -_080129D4: - bl DestroyWirelessStatusIndicatorSprite - bl sub_0800E894 - adds r0, r5, #0 - bl sub_08012A64 - ldrb r0, [r5, #0xc] - adds r0, #1 - strb r0, [r5, #0xc] - b _08012A54 -_080129EA: - bl EnableBothScriptContexts - adds r0, r4, #0 - bl DestroyTask - ldr r1, _080129FC - movs r0, #5 - strh r0, [r1] - b _08012A54 - .align 2, 0 -_080129FC: .4byte gUnknown_2037290 -_08012A00: - bl EnableBothScriptContexts - adds r0, r4, #0 - bl DestroyTask - ldr r1, _08012A14 - movs r0, #8 - strh r0, [r1] - b _08012A54 - .align 2, 0 -_08012A14: .4byte gUnknown_2037290 -_08012A18: - bl sub_08011570 - cmp r0, #0 - beq _08012A26 - movs r0, #0x1d - strb r0, [r5, #0xc] - b _08012A54 -_08012A26: - ldr r0, _08012A5C - ldrb r0, [r0] - cmp r0, #0 - beq _08012A54 - ldr r0, _08012A60 - ldrb r0, [r0] - bl sub_080121D4 - cmp r0, #0 - beq _08012A3E - bl sub_08010B2C -_08012A3E: - movs r0, #1 - bl sub_08010B58 - bl sub_080144CC - adds r0, r5, #0 - bl sub_08012A64 - adds r0, r4, #0 - bl DestroyTask -_08012A54: - add sp, #8 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08012A5C: .4byte gUnknown_30031C4 -_08012A60: .4byte gUnknown_20228E0 - thumb_func_end sub_08012288 - - thumb_func_start sub_08012A64 -sub_08012A64: @ 0x08012A64 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x11] - bl ClearWindowTilemap - ldrb r0, [r4, #0x11] - movs r1, #0 - bl sub_08197060 - ldrb r0, [r4, #0x12] - movs r1, #0 - movs r2, #0 - bl DestroyListMenuTask - ldrb r0, [r4, #0x10] - bl ClearWindowTilemap - ldrb r0, [r4, #0xf] - movs r1, #0 - bl sub_08197060 - movs r0, #0 - bl CopyBgTilemapBufferToVram - ldrb r0, [r4, #0x11] - bl RemoveWindow - ldrb r0, [r4, #0xf] - bl RemoveWindow - ldrb r0, [r4, #0x10] - bl RemoveWindow - ldrb r0, [r4, #0x17] - bl DestroyTask - ldr r0, [r4, #8] - bl Free - ldr r0, [r4] - bl Free - ldr r0, [r4, #4] - bl Free - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08012A64 - - thumb_func_start sub_08012AC4 -sub_08012AC4: @ 0x08012AC4 - push {lr} - adds r2, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - subs r0, r1, #1 - cmp r0, #0x1b - bhi _08012B70 - lsls r0, r0, #2 - ldr r1, _08012ADC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08012ADC: .4byte _08012AE0 -_08012AE0: @ jump table - .4byte _08012B50 @ case 0 - .4byte _08012B50 @ case 1 - .4byte _08012B68 @ case 2 - .4byte _08012B50 @ case 3 - .4byte _08012B70 @ case 4 - .4byte _08012B58 @ case 5 - .4byte _08012B58 @ case 6 - .4byte _08012B70 @ case 7 - .4byte _08012B68 @ case 8 - .4byte _08012B68 @ case 9 - .4byte _08012B68 @ case 10 - .4byte _08012B70 @ case 11 - .4byte _08012B70 @ case 12 - .4byte _08012B50 @ case 13 - .4byte _08012B68 @ case 14 - .4byte _08012B68 @ case 15 - .4byte _08012B70 @ case 16 - .4byte _08012B70 @ case 17 - .4byte _08012B70 @ case 18 - .4byte _08012B70 @ case 19 - .4byte _08012B70 @ case 20 - .4byte _08012B70 @ case 21 - .4byte _08012B68 @ case 22 - .4byte _08012B68 @ case 23 - .4byte _08012B68 @ case 24 - .4byte _08012B68 @ case 25 - .4byte _08012B68 @ case 26 - .4byte _08012B50 @ case 27 -_08012B50: - ldr r1, _08012B54 - b _08012B5A - .align 2, 0 -_08012B54: .4byte gUnknown_82C08C4 -_08012B58: - ldr r1, _08012B64 -_08012B5A: - adds r0, r2, #0 - bl StringExpandPlaceholders - b _08012B70 - .align 2, 0 -_08012B64: .4byte gUnknown_82C08DC -_08012B68: - ldr r1, _08012B74 - adds r0, r2, #0 - bl StringExpandPlaceholders -_08012B70: - pop {r0} - bx r0 - .align 2, 0 -_08012B74: .4byte gUnknown_82C08F8 - thumb_func_end sub_08012AC4 - - thumb_func_start sub_08012B78 -sub_08012B78: @ 0x08012B78 - push {lr} - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r2, r1, #0 - cmp r1, #0x44 - beq _08012B98 - cmp r1, #0x44 - bgt _08012B8E - cmp r1, #0x41 - beq _08012B98 - b _08012BAA -_08012B8E: - cmp r2, #0x45 - beq _08012BA4 - cmp r2, #0x48 - beq _08012BA4 - b _08012BAA -_08012B98: - ldr r1, _08012BA0 - bl StringExpandPlaceholders - b _08012BAA - .align 2, 0 -_08012BA0: .4byte gUnknown_82C0EE0 -_08012BA4: - ldr r1, _08012BB0 - bl StringExpandPlaceholders -_08012BAA: - pop {r0} - bx r0 - .align 2, 0 -_08012BB0: .4byte gUnknown_82C0EF4 - thumb_func_end sub_08012B78 - - thumb_func_start sub_08012BB4 -sub_08012BB4: @ 0x08012BB4 - push {lr} - adds r2, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - subs r0, r1, #1 - cmp r0, #0x1b - bhi _08012C58 - lsls r0, r0, #2 - ldr r1, _08012BCC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08012BCC: .4byte _08012BD0 -_08012BD0: @ jump table - .4byte _08012C40 @ case 0 - .4byte _08012C40 @ case 1 - .4byte _08012C50 @ case 2 - .4byte _08012C40 @ case 3 - .4byte _08012C58 @ case 4 - .4byte _08012C40 @ case 5 - .4byte _08012C40 @ case 6 - .4byte _08012C58 @ case 7 - .4byte _08012C50 @ case 8 - .4byte _08012C50 @ case 9 - .4byte _08012C50 @ case 10 - .4byte _08012C58 @ case 11 - .4byte _08012C58 @ case 12 - .4byte _08012C40 @ case 13 - .4byte _08012C50 @ case 14 - .4byte _08012C50 @ case 15 - .4byte _08012C58 @ case 16 - .4byte _08012C58 @ case 17 - .4byte _08012C58 @ case 18 - .4byte _08012C58 @ case 19 - .4byte _08012C58 @ case 20 - .4byte _08012C58 @ case 21 - .4byte _08012C50 @ case 22 - .4byte _08012C50 @ case 23 - .4byte _08012C50 @ case 24 - .4byte _08012C50 @ case 25 - .4byte _08012C50 @ case 26 - .4byte _08012C40 @ case 27 -_08012C40: - ldr r1, _08012C4C - adds r0, r2, #0 - bl StringExpandPlaceholders - b _08012C58 - .align 2, 0 -_08012C4C: .4byte gUnknown_82C1C80 -_08012C50: - ldr r1, _08012C5C - adds r0, r2, #0 - bl StringExpandPlaceholders -_08012C58: - pop {r0} - bx r0 - .align 2, 0 -_08012C5C: .4byte gUnknown_82C1C94 - thumb_func_end sub_08012BB4 - - thumb_func_start sub_08012C60 -sub_08012C60: @ 0x08012C60 - push {lr} - adds r2, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - subs r0, r1, #1 - cmp r0, #0x1b - bhi _08012D04 - lsls r0, r0, #2 - ldr r1, _08012C78 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08012C78: .4byte _08012C7C -_08012C7C: @ jump table - .4byte _08012CEC @ case 0 - .4byte _08012CEC @ case 1 - .4byte _08012CFC @ case 2 - .4byte _08012CEC @ case 3 - .4byte _08012D04 @ case 4 - .4byte _08012CEC @ case 5 - .4byte _08012CEC @ case 6 - .4byte _08012D04 @ case 7 - .4byte _08012CFC @ case 8 - .4byte _08012CFC @ case 9 - .4byte _08012CFC @ case 10 - .4byte _08012D04 @ case 11 - .4byte _08012D04 @ case 12 - .4byte _08012CEC @ case 13 - .4byte _08012CFC @ case 14 - .4byte _08012CFC @ case 15 - .4byte _08012D04 @ case 16 - .4byte _08012D04 @ case 17 - .4byte _08012D04 @ case 18 - .4byte _08012D04 @ case 19 - .4byte _08012D04 @ case 20 - .4byte _08012D04 @ case 21 - .4byte _08012CFC @ case 22 - .4byte _08012CFC @ case 23 - .4byte _08012CFC @ case 24 - .4byte _08012CFC @ case 25 - .4byte _08012CFC @ case 26 - .4byte _08012CEC @ case 27 -_08012CEC: - ldr r1, _08012CF8 - adds r0, r2, #0 - bl StringExpandPlaceholders - b _08012D04 - .align 2, 0 -_08012CF8: .4byte gUnknown_82C09F8 -_08012CFC: - ldr r1, _08012D08 - adds r0, r2, #0 - bl StringExpandPlaceholders -_08012D04: - pop {r0} - bx r0 - .align 2, 0 -_08012D08: .4byte gUnknown_82C0A10 - thumb_func_end sub_08012C60 - - thumb_func_start sub_08012D0C -sub_08012D0C: @ 0x08012D0C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - adds r5, r2, #0 - ldr r0, [r4] - bl sub_08012DD8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08012D28 - cmp r0, #2 - beq _08012D60 - b _08012D74 -_08012D28: - movs r0, #2 - bl sub_080A306C - ldrb r0, [r4, #0x12] - bl RedrawListMenu - ldr r0, _08012D54 - ldrb r2, [r4, #0x13] - lsls r2, r2, #5 - ldr r1, [r4] - adds r1, r1, r2 - adds r1, #0x10 - bl StringCopy7 - ldr r0, _08012D58 - ldr r1, _08012D5C - ldrb r1, [r1] - bl sub_08012AC4 - strb r6, [r4, #0xc] - b _08012D74 - .align 2, 0 -_08012D54: .4byte gUnknown_2021C54 -_08012D58: .4byte gUnknown_2021C7C -_08012D5C: .4byte gUnknown_20228E0 -_08012D60: - movs r0, #0 - movs r1, #0 - bl sub_08011554 - ldrb r0, [r4, #0x12] - bl RedrawListMenu - strb r5, [r4, #0xc] - movs r0, #1 - b _08012D76 -_08012D74: - movs r0, #0 -_08012D76: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_08012D0C - - thumb_func_start sub_08012D7C -sub_08012D7C: @ 0x08012D7C - push {r4, r5, r6, lr} - sub sp, #8 - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - ldr r0, _08012DA8 - ldr r3, [r0] - movs r2, #0 - ldr r1, [r3] - lsls r0, r4, #5 - adds r1, r1, r0 - ldrb r0, [r1, #0x1a] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - beq _08012DAC - cmp r0, #2 - beq _08012DB6 - b _08012DB8 - .align 2, 0 -_08012DA8: .4byte gUnknown_20228E4 -_08012DAC: - ldrb r0, [r1, #0x1b] - cmp r0, #0 - beq _08012DB8 - movs r2, #2 - b _08012DB8 -_08012DB6: - movs r2, #1 -_08012DB8: - lsls r0, r4, #5 - ldr r3, [r3] - adds r3, r3, r0 - str r2, [sp] - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - adds r0, r5, #0 - movs r1, #1 - adds r2, r6, #0 - bl sub_08017360 - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_08012D7C - - thumb_func_start sub_08012DD8 -sub_08012DD8: @ 0x08012DD8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - ldr r0, _08012E30 - ldr r5, [r0] - movs r0, #0 - mov r8, r0 - movs r3, #1 -_08012DEC: - ldr r0, [r5] - lsls r6, r3, #5 - adds r2, r0, r6 - ldrb r0, [r2, #0x1a] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - mov sb, r0 - cmp r0, #1 - bne _08012E4C - ldr r1, [r5, #4] - adds r0, r2, #0 - str r3, [sp] - bl sub_080171A8 - adds r4, r0, #0 - ldr r3, [sp] - cmp r4, #0xff - beq _08012E34 - ldr r1, [r5] - ldr r0, [r5, #4] - lsls r2, r4, #3 - subs r2, r2, r4 - lsls r2, r2, #2 - adds r1, r1, r6 - adds r0, r0, r2 - ldm r0!, {r2, r4, r7} - stm r1!, {r2, r4, r7} - ldm r0!, {r2, r4, r7} - stm r1!, {r2, r4, r7} - ldr r0, [r5] - adds r0, r0, r6 - mov r1, sb - strh r1, [r0, #0x18] - b _08012E4C - .align 2, 0 -_08012E30: .4byte gUnknown_20228E4 -_08012E34: - ldr r2, [r5] - adds r2, r2, r6 - ldrb r1, [r2, #0x1a] - movs r4, #4 - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r1, r0 - movs r0, #2 - orrs r1, r0 - strb r1, [r2, #0x1a] - movs r7, #2 - mov r8, r7 -_08012E4C: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #4 - bls _08012DEC - movs r6, #0 - movs r4, #3 -_08012E5A: - ldr r0, [r5] - ldr r1, [r5, #4] - adds r1, r1, r6 - movs r2, #5 - bl sub_080171F8 - adds r6, #0x1c - subs r4, #1 - ldr r0, [r5] - cmp r4, #0 - bge _08012E5A - mov r1, r8 - cmp r1, #2 - beq _08012E8C - adds r1, r0, #0 - movs r4, #4 -_08012E7A: - ldrb r0, [r1, #0x1b] - cmp r0, #0 - beq _08012E84 - movs r2, #1 - mov r8, r2 -_08012E84: - adds r1, #0x20 - subs r4, #1 - cmp r4, #0 - bge _08012E7A -_08012E8C: - mov r0, r8 - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_08012DD8 - - thumb_func_start sub_08012E9C -sub_08012E9C: @ 0x08012E9C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _08012F70 - ldr r4, [r0] - movs r3, #0 -_08012EAC: - ldr r0, [r4, #8] - lsls r2, r3, #5 - ldr r1, [r4] - adds r0, r0, r2 - adds r1, r1, r2 - ldm r1!, {r2, r5, r6} - stm r0!, {r2, r5, r6} - ldm r1!, {r2, r5, r7} - stm r0!, {r2, r5, r7} - ldm r1!, {r6, r7} - stm r0!, {r6, r7} - adds r3, #1 - ldr r0, [r4, #8] - ldr r1, [r4] - cmp r3, #4 - ble _08012EAC - movs r5, #0 - mov r8, r1 - mov sb, r0 - movs r3, #4 -_08012ED4: - mov r1, sb - ldrb r0, [r1, #0x1a] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _08012EF6 - lsls r0, r5, #5 - add r0, r8 - ldm r1!, {r2, r6, r7} - stm r0!, {r2, r6, r7} - ldm r1!, {r2, r6, r7} - stm r0!, {r2, r6, r7} - ldm r1!, {r2, r6} - stm r0!, {r2, r6} - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_08012EF6: - movs r7, #0x20 - add sb, r7 - subs r3, #1 - cmp r3, #0 - bge _08012ED4 - mov sl, r5 - cmp r5, #4 - bhi _08012F58 - ldr r0, _08012F74 - mov sb, r0 - movs r1, #0 - mov ip, r1 - movs r2, #4 - rsbs r2, r2, #0 - mov r8, r2 -_08012F14: - ldr r1, [r4] - lsls r3, r5, #5 - adds r1, r1, r3 - mov r0, sb - ldm r0!, {r2, r6, r7} - stm r1!, {r2, r6, r7} - ldm r0!, {r2, r6, r7} - stm r1!, {r2, r6, r7} - ldr r0, [r4] - adds r0, r0, r3 - movs r1, #0 - strh r1, [r0, #0x18] - ldr r1, [r4] - adds r1, r1, r3 - ldrb r2, [r1, #0x1a] - mov r0, r8 - ands r0, r2 - strb r0, [r1, #0x1a] - ldr r1, [r4] - adds r1, r1, r3 - ldrb r2, [r1, #0x1a] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #0x1a] - ldr r0, [r4] - adds r0, r0, r3 - mov r6, ip - strb r6, [r0, #0x1b] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #4 - bls _08012F14 -_08012F58: - movs r3, #0 - ldr r1, [r4] - ldrb r0, [r1, #0x1a] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _08012F78 - ldrb r0, [r1, #0x1b] - cmp r0, #0x40 - bne _08012F78 - mov sl, r3 - b _08012F98 - .align 2, 0 -_08012F70: .4byte gUnknown_20228E4 -_08012F74: .4byte gUnknown_82C2364 -_08012F78: - adds r3, #1 - cmp r3, #4 - bgt _08012F98 - lsls r0, r3, #5 - adds r2, r1, r0 - ldrb r0, [r2, #0x1a] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _08012F78 - ldrb r0, [r2, #0x1b] - cmp r0, #0x40 - bne _08012F78 - lsls r0, r3, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 -_08012F98: - mov r0, sl - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_08012E9C - - thumb_func_start BerryBlenderLinkJoinGroup -BerryBlenderLinkJoinGroup: @ 0x08012FA8 - push {lr} - ldr r0, _08012FD8 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08012FDC - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _08012FE0 - adds r1, r1, r0 - str r1, [r2] - ldr r0, _08012FE4 - str r1, [r0] - movs r0, #0 - strb r0, [r1, #8] - strb r0, [r1, #9] - ldr r1, _08012FE8 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08012FD8: .4byte sub_08012FEC -_08012FDC: .4byte gUnknown_20228E4 -_08012FE0: .4byte gUnknown_3005B68 -_08012FE4: .4byte gUnknown_3000DA4 -_08012FE8: .4byte gUnknown_2037290 - thumb_func_end BerryBlenderLinkJoinGroup - - thumb_func_start sub_08012FEC -sub_08012FEC: @ 0x08012FEC - push {r4, r5, r6, r7, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0801300C - ldr r6, [r0] - ldrb r0, [r6, #8] - cmp r0, #0x17 - bls _08013000 - b _08013686 -_08013000: - lsls r0, r0, #2 - ldr r1, _08013010 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801300C: .4byte gUnknown_20228E4 -_08013010: .4byte _08013014 -_08013014: @ jump table - .4byte _08013074 @ case 0 - .4byte _080130E4 @ case 1 - .4byte _08013110 @ case 2 - .4byte _080131DC @ case 3 - .4byte _08013686 @ case 4 - .4byte _0801328C @ case 5 - .4byte _080132C8 @ case 6 - .4byte _08013514 @ case 7 - .4byte _08013530 @ case 8 - .4byte _0801357E @ case 9 - .4byte _08013590 @ case 10 - .4byte _08013618 @ case 11 - .4byte _08013590 @ case 12 - .4byte _080135E8 @ case 13 - .4byte _08013590 @ case 14 - .4byte _08013628 @ case 15 - .4byte _08013686 @ case 16 - .4byte _08013686 @ case 17 - .4byte _08013590 @ case 18 - .4byte _08013648 @ case 19 - .4byte _08013590 @ case 20 - .4byte _0801367C @ case 21 - .4byte _08013686 @ case 22 - .4byte _0801366C @ case 23 -_08013074: - ldr r0, _080130D0 - ldrh r2, [r0] - adds r3, r0, #0 - cmp r2, #0x14 - bne _08013094 - ldr r0, _080130D4 - ldr r0, [r0] - ldr r1, _080130D8 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - cmp r0, #1 - bne _08013094 - adds r0, r2, #1 - strh r0, [r3] -_08013094: - ldr r2, _080130DC - ldr r1, _080130E0 - ldrh r0, [r3] - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldrb r0, [r2] - movs r1, #0 - movs r2, #0 - bl sub_08010A74 - bl sub_0800AF5C - bl OpenLink - bl sub_08011748 - movs r0, #0x70 - bl AllocZeroed - str r0, [r6, #4] - movs r0, #0x80 - lsls r0, r0, #2 - bl AllocZeroed - str r0, [r6] - movs r0, #1 - strb r0, [r6, #8] - b _08013686 - .align 2, 0 -_080130D0: .4byte gUnknown_2037280 -_080130D4: .4byte gUnknown_3005AF0 -_080130D8: .4byte 0x00000CA9 -_080130DC: .4byte gUnknown_20228E0 -_080130E0: .4byte gUnknown_82C2438 -_080130E4: - adds r0, r6, #0 - adds r0, #9 - ldr r2, _08013108 - ldr r1, _0801310C - ldrh r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl PrintOnTextbox - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08013100 - b _08013686 -_08013100: - movs r0, #2 - strb r0, [r6, #8] - b _08013686 - .align 2, 0 -_08013108: .4byte gUnknown_82C1BE4 -_0801310C: .4byte gUnknown_2037280 -_08013110: - ldr r0, [r6, #4] - movs r1, #4 - bl sub_080170B0 - ldr r0, [r6] - movs r1, #0x10 - bl sub_08017044 - ldr r0, [r6, #4] - ldr r1, _080131C0 - ldrh r1, [r1] - bl sub_08016AD0 - movs r4, #0 - strb r0, [r6, #0x11] - ldr r0, _080131C4 - bl AddWindow - strb r0, [r6, #0xc] - ldr r0, _080131C8 - bl AddWindow - strb r0, [r6, #0xb] - ldr r0, _080131CC - bl AddWindow - strb r0, [r6, #0xd] - ldrb r0, [r6, #0xc] - movs r1, #0x22 - bl FillWindowPixelBuffer - ldrb r0, [r6, #0xc] - ldr r2, _080131D0 - movs r1, #2 - str r1, [sp] - movs r1, #4 - str r1, [sp, #4] - movs r1, #1 - movs r3, #8 - bl sub_08016EA4 - ldrb r0, [r6, #0xc] - bl PutWindowTilemap - ldrb r0, [r6, #0xc] - movs r1, #2 - bl CopyWindowToVram - ldrb r0, [r6, #0xb] - movs r1, #0 - bl sub_08196FF0 - ldr r0, _080131D4 - adds r2, r0, #0 - ldr r1, _080131D8 - ldm r1!, {r3, r5, r7} - stm r2!, {r3, r5, r7} - ldm r1!, {r3, r5, r7} - stm r2!, {r3, r5, r7} - ldrb r1, [r6, #0xb] - strb r1, [r0, #0x10] - movs r1, #0 - movs r2, #0 - bl ListMenuInit - strb r0, [r6, #0xe] - ldrb r0, [r6, #0xd] - movs r1, #0 - bl sub_08196FF0 - ldrb r0, [r6, #0xd] - bl PutWindowTilemap - ldrb r0, [r6, #0xd] - bl sub_080120A8 - ldrb r0, [r6, #0xd] - movs r1, #2 - bl CopyWindowToVram - movs r0, #0 - bl CopyBgTilemapBufferToVram - strb r4, [r6, #0xf] - movs r0, #3 - strb r0, [r6, #8] - b _08013686 - .align 2, 0 -_080131C0: .4byte gUnknown_2037280 -_080131C4: .4byte gUnknown_82C1FC4 -_080131C8: .4byte gUnknown_82C207C -_080131CC: .4byte gUnknown_82C2084 -_080131D0: .4byte gUnknown_82C19B8 -_080131D4: .4byte gUnknown_3006050 -_080131D8: .4byte gUnknown_82C210C -_080131DC: - bl sub_0801394C - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - beq _080131F6 - cmp r4, #1 - beq _080131EE - b _08013576 -_080131EE: - movs r0, #2 - bl sub_080A306C - b _08013576 -_080131F6: - ldrb r0, [r6, #0xe] - bl ListMenu_ProcessInput - adds r4, r0, #0 - ldr r0, _08013244 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08013274 - movs r0, #1 - rsbs r0, r0, #0 - cmp r4, r0 - beq _08013274 - ldr r0, [r6] - lsls r1, r4, #5 - adds r0, r0, r1 - ldrb r1, [r0, #0xa] - ldrb r0, [r0, #0x1a] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _0801326C - lsrs r0, r1, #7 - cmp r0, #0 - bne _0801326C - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_08013690 - adds r1, r0, #0 - cmp r1, #0 - bne _08013248 - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_080136DC - movs r0, #5 - b _0801325A - .align 2, 0 -_08013244: .4byte gUnknown_3002360 -_08013248: - ldr r0, _08013264 - ldr r2, _08013268 - subs r1, #1 - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl StringCopy - movs r0, #0x12 -_0801325A: - strb r0, [r6, #8] - movs r0, #0x6e - bl sub_080A306C - b _08013686 - .align 2, 0 -_08013264: .4byte gUnknown_2021C7C -_08013268: .4byte gUnknown_82C09A0 -_0801326C: - movs r0, #7 - bl sub_080A306C - b _08013686 -_08013274: - ldr r0, _08013288 - ldrh r1, [r0, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08013282 - b _08013686 -_08013282: - movs r0, #0xa - strb r0, [r6, #8] - b _08013686 - .align 2, 0 -_08013288: .4byte gUnknown_3002360 -_0801328C: - ldr r4, _080132BC - ldr r0, _080132C0 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08012BB4 - adds r0, r6, #0 - adds r0, #9 - adds r1, r4, #0 - bl PrintOnTextbox - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080132AA - b _08013686 -_080132AA: - ldr r0, _080132C4 - ldrb r2, [r6, #0xf] - lsls r2, r2, #5 - ldr r1, [r6] - adds r1, r1, r2 - adds r1, #0x10 - bl StringCopy7 - b _0801358A - .align 2, 0 -_080132BC: .4byte gUnknown_2021C7C -_080132C0: .4byte gUnknown_20228E0 -_080132C4: .4byte gUnknown_2021C40 -_080132C8: - ldr r0, _080132FC - ldrb r0, [r0] - cmp r0, #0 - beq _0801337E - ldr r4, _08013300 - ldr r1, [r6] - ldrb r0, [r6, #0xf] - lsls r0, r0, #5 - adds r1, r1, r0 - ldrb r0, [r1, #0xa] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x19 - strb r0, [r4] - movs r0, #0 - movs r1, #0 - bl sub_08011554 - ldrb r0, [r4] - subs r0, #1 - cmp r0, #0x1b - bhi _0801337E - lsls r0, r0, #2 - ldr r1, _08013304 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080132FC: .4byte gUnknown_30031C4 -_08013300: .4byte gUnknown_20228E0 -_08013304: .4byte _08013308 -_08013308: @ jump table - .4byte _08013378 @ case 0 - .4byte _08013378 @ case 1 - .4byte _08013378 @ case 2 - .4byte _08013378 @ case 3 - .4byte _08013378 @ case 4 - .4byte _08013378 @ case 5 - .4byte _08013378 @ case 6 - .4byte _0801337E @ case 7 - .4byte _08013378 @ case 8 - .4byte _08013378 @ case 9 - .4byte _08013378 @ case 10 - .4byte _0801337E @ case 11 - .4byte _08013378 @ case 12 - .4byte _08013378 @ case 13 - .4byte _08013378 @ case 14 - .4byte _08013378 @ case 15 - .4byte _0801337E @ case 16 - .4byte _0801337E @ case 17 - .4byte _0801337E @ case 18 - .4byte _0801337E @ case 19 - .4byte _0801337E @ case 20 - .4byte _0801337E @ case 21 - .4byte _08013378 @ case 22 - .4byte _08013378 @ case 23 - .4byte _08013378 @ case 24 - .4byte _08013378 @ case 25 - .4byte _08013378 @ case 26 - .4byte _08013378 @ case 27 -_08013378: - movs r0, #0x14 - strb r0, [r6, #8] - b _08013686 -_0801337E: - bl sub_08011564 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, #1 - cmp r0, #8 - bls _0801338E - b _080134F0 -_0801338E: - lsls r0, r0, #2 - ldr r1, _08013398 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08013398: .4byte _0801339C -_0801339C: @ jump table - .4byte _080133C0 @ case 0 - .4byte _080133C6 @ case 1 - .4byte _080134F0 @ case 2 - .4byte _080134F0 @ case 3 - .4byte _080133CC @ case 4 - .4byte _080133C6 @ case 5 - .4byte _08013438 @ case 6 - .4byte _080134F0 @ case 7 - .4byte _080133C6 @ case 8 -_080133C0: - movs r0, #0xc - strb r0, [r6, #8] - b _080134F0 -_080133C6: - movs r0, #0xe - strb r0, [r6, #8] - b _080134F0 -_080133CC: - ldr r5, _08013400 - ldr r4, _08013404 - ldrb r1, [r4] - adds r0, r5, #0 - bl sub_08012C60 - adds r0, r6, #0 - adds r0, #9 - adds r1, r5, #0 - bl PrintOnTextbox - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080133EA - b _080134F0 -_080133EA: - ldrb r0, [r4] - cmp r0, #0x1c - beq _080133F4 - cmp r0, #0xe - bne _08013408 -_080133F4: - movs r0, #0xc - movs r1, #0 - bl sub_08011554 - b _080134F0 - .align 2, 0 -_08013400: .4byte gUnknown_2021C7C -_08013404: .4byte gUnknown_20228E0 -_08013408: - movs r0, #7 - movs r1, #0 - bl sub_08011554 - ldr r0, _0801342C - ldr r2, _08013430 - ldrb r1, [r4] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl StringCopy - ldr r1, _08013434 - adds r0, r5, #0 - bl StringExpandPlaceholders - b _080134F0 - .align 2, 0 -_0801342C: .4byte gUnknown_2021C40 -_08013430: .4byte gUnknown_82C1E58 -_08013434: .4byte gUnknown_82C0A4C -_08013438: - ldrb r0, [r6, #0x15] - adds r2, r0, #0 - cmp r2, #0xf0 - bls _08013460 - adds r0, r6, #0 - adds r0, #9 - ldr r1, _0801345C - bl PrintOnTextbox - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080134F0 - movs r0, #0xc - movs r1, #0 - bl sub_08011554 - movs r0, #0 - b _080134EE - .align 2, 0 -_0801345C: .4byte gUnknown_2021C7C -_08013460: - ldr r0, _08013474 - ldrb r0, [r0] - subs r0, #1 - cmp r0, #0x1b - bhi _080134EC - lsls r0, r0, #2 - ldr r1, _08013478 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08013474: .4byte gUnknown_20228E0 -_08013478: .4byte _0801347C -_0801347C: @ jump table - .4byte _080134F0 @ case 0 - .4byte _080134F0 @ case 1 - .4byte _080134EC @ case 2 - .4byte _080134F0 @ case 3 - .4byte _080134EC @ case 4 - .4byte _080134EC @ case 5 - .4byte _080134EC @ case 6 - .4byte _080134EC @ case 7 - .4byte _080134EC @ case 8 - .4byte _080134EC @ case 9 - .4byte _080134EC @ case 10 - .4byte _080134EC @ case 11 - .4byte _080134EC @ case 12 - .4byte _080134F0 @ case 13 - .4byte _080134EC @ case 14 - .4byte _080134EC @ case 15 - .4byte _080134EC @ case 16 - .4byte _080134EC @ case 17 - .4byte _080134EC @ case 18 - .4byte _080134EC @ case 19 - .4byte _080134EC @ case 20 - .4byte _080134EC @ case 21 - .4byte _080134EC @ case 22 - .4byte _080134EC @ case 23 - .4byte _080134EC @ case 24 - .4byte _080134EC @ case 25 - .4byte _080134EC @ case 26 - .4byte _080134F0 @ case 27 -_080134EC: - adds r0, r2, #1 -_080134EE: - strb r0, [r6, #0x15] -_080134F0: - bl sub_08011564 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080134FC - b _08013686 -_080134FC: - ldr r0, _08013510 - ldrh r1, [r0, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0801350A - b _08013686 -_0801350A: - movs r0, #7 - strb r0, [r6, #8] - b _08013686 - .align 2, 0 -_08013510: .4byte gUnknown_3002360 -_08013514: - adds r0, r6, #0 - adds r0, #9 - ldr r1, _0801352C - bl PrintOnTextbox - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08013526 - b _08013686 -_08013526: - movs r0, #8 - strb r0, [r6, #8] - b _08013686 - .align 2, 0 -_0801352C: .4byte gUnknown_82C0A64 -_08013530: - adds r4, r6, #0 - adds r4, #9 - bl sub_08011564 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl sub_08016BC8 - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0801356E - cmp r1, r0 - bgt _0801355C - subs r0, #2 - cmp r1, r0 - beq _08013572 - b _08013686 -_0801355C: - cmp r1, #0 - beq _08013566 - cmp r1, #1 - beq _0801356E - b _08013686 -_08013566: - bl sub_080101D4 - movs r0, #9 - b _08013574 -_0801356E: - movs r0, #5 - b _08013574 -_08013572: - movs r0, #6 -_08013574: - strb r0, [r6, #8] -_08013576: - ldrb r0, [r6, #0xe] - bl RedrawListMenu - b _08013686 -_0801357E: - bl sub_08011564 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801358A - b _08013686 -_0801358A: - movs r0, #6 - strb r0, [r6, #8] - b _08013686 -_08013590: - ldrb r0, [r6, #0xd] - bl ClearWindowTilemap - ldrb r0, [r6, #0xd] - movs r1, #0 - bl sub_08197060 - ldrb r0, [r6, #0xe] - movs r1, #0 - movs r2, #0 - bl DestroyListMenuTask - ldrb r0, [r6, #0xc] - bl ClearWindowTilemap - ldrb r0, [r6, #0xb] - movs r1, #0 - bl sub_08197060 - movs r0, #0 - bl CopyBgTilemapBufferToVram - ldrb r0, [r6, #0xd] - bl RemoveWindow - ldrb r0, [r6, #0xb] - bl RemoveWindow - ldrb r0, [r6, #0xc] - bl RemoveWindow - ldrb r0, [r6, #0x11] - bl DestroyTask - ldr r0, [r6] - bl Free - ldr r0, [r6, #4] - bl Free - ldrb r0, [r6, #8] - adds r0, #1 - strb r0, [r6, #8] - b _08013686 -_080135E8: - bl DestroyWirelessStatusIndicatorSprite - adds r5, r6, #0 - adds r5, #9 - ldr r4, _08013610 - bl sub_08011564 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl PrintOnTextbox - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08013686 - ldr r0, _08013614 - movs r1, #6 - b _0801365C - .align 2, 0 -_08013610: .4byte gUnknown_82C0A84 -_08013614: .4byte gUnknown_2037290 -_08013618: - bl DestroyWirelessStatusIndicatorSprite - ldr r0, _08013624 - movs r1, #5 - b _0801365C - .align 2, 0 -_08013624: .4byte gUnknown_2037290 -_08013628: - bl DestroyWirelessStatusIndicatorSprite - adds r5, r6, #0 - adds r5, #9 - ldr r4, _08013644 - bl sub_08011564 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - b _0801364E - .align 2, 0 -_08013644: .4byte gUnknown_82C0A84 -_08013648: - adds r0, r6, #0 - adds r0, #9 - ldr r1, _08013664 -_0801364E: - bl PrintOnTextbox - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08013686 - ldr r0, _08013668 - movs r1, #8 -_0801365C: - strh r1, [r0] - movs r0, #0x17 - strb r0, [r6, #8] - b _08013686 - .align 2, 0 -_08013664: .4byte gUnknown_2021C7C -_08013668: .4byte gUnknown_2037290 -_0801366C: - adds r0, r4, #0 - bl DestroyTask - bl Contest_RunTextPrinters - bl sub_0800E894 - b _08013686 -_0801367C: - bl sub_080144CC - adds r0, r4, #0 - bl DestroyTask -_08013686: - add sp, #8 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08012FEC - - thumb_func_start sub_08013690 -sub_08013690: @ 0x08013690 - push {lr} - lsls r1, r1, #5 - ldr r0, [r0] - adds r3, r0, r1 - ldr r0, _080136C0 - ldrb r0, [r0] - cmp r0, #4 - bne _080136D2 - ldrb r1, [r3, #1] - movs r0, #0x3c - ands r0, r1 - cmp r0, #0xc - beq _080136D2 - ldr r0, _080136C4 - ldr r0, [r0] - ldrb r1, [r0, #9] - movs r2, #0x80 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _080136C8 - movs r0, #1 - b _080136D8 - .align 2, 0 -_080136C0: .4byte gUnknown_20228E0 -_080136C4: .4byte gUnknown_3005AF0 -_080136C8: - ldrb r1, [r3] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _080136D6 -_080136D2: - movs r0, #0 - b _080136D8 -_080136D6: - movs r0, #2 -_080136D8: - pop {r1} - bx r1 - thumb_func_end sub_08013690 - - thumb_func_start sub_080136DC -sub_080136DC: @ 0x080136DC - push {r4, lr} - adds r4, r0, #0 - strb r1, [r4, #0xf] - bl LoadWirelessStatusIndicatorSpriteGfx - movs r0, #0 - movs r1, #0 - bl CreateWirelessStatusIndicatorSprite - ldrb r0, [r4, #0xe] - bl RedrawListMenu - ldr r0, _0801373C - ldrb r2, [r4, #0xf] - lsls r2, r2, #5 - ldr r1, [r4] - adds r1, r1, r2 - adds r1, #0x10 - bl StringCopy7 - ldr r1, _08013740 - ldr r0, _08013744 - ldrh r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #0 - movs r2, #1 - bl sub_08010B80 - ldrb r1, [r4, #0xf] - lsls r1, r1, #5 - ldr r0, [r4] - adds r0, r0, r1 - adds r4, r0, #0 - adds r4, #0x10 - adds r0, #2 - bl sub_08015160 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl sub_08011AB4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801373C: .4byte gUnknown_2021C40 -_08013740: .4byte gUnknown_82C2438 -_08013744: .4byte gUnknown_2037280 - thumb_func_end sub_080136DC - - thumb_func_start sub_08013748 -sub_08013748: @ 0x08013748 - push {lr} - ldr r0, _08013774 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _08013778 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r2, _0801377C - adds r1, r1, r2 - str r1, [r3] - movs r2, #0 - strb r2, [r1, #8] - strb r2, [r1, #9] - ldr r2, _08013780 - str r1, [r2] - pop {r1} - bx r1 - .align 2, 0 -_08013774: .4byte sub_08013784 -_08013778: .4byte gUnknown_20228E4 -_0801377C: .4byte gUnknown_3005B68 -_08013780: .4byte gUnknown_3000DA4 - thumb_func_end sub_08013748 - - thumb_func_start sub_08013784 -sub_08013784: @ 0x08013784 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _080137A0 - ldr r4, [r0] - ldrb r0, [r4, #8] - cmp r0, #0xb - bhi _08013888 - lsls r0, r0, #2 - ldr r1, _080137A4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080137A0: .4byte gUnknown_20228E4 -_080137A4: .4byte _080137A8 -_080137A8: @ jump table - .4byte _080137D8 @ case 0 - .4byte _08013888 @ case 1 - .4byte _0801380C @ case 2 - .4byte _08013830 @ case 3 - .4byte _08013888 @ case 4 - .4byte _08013888 @ case 5 - .4byte _08013888 @ case 6 - .4byte _08013888 @ case 7 - .4byte _08013888 @ case 8 - .4byte _08013888 @ case 9 - .4byte _08013860 @ case 10 - .4byte _0801387E @ case 11 -_080137D8: - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl sub_08010A74 - bl sub_0800AF5C - bl OpenLink - bl sub_08011748 - movs r0, #1 - bl sub_08010CA0 - movs r0, #0x70 - bl AllocZeroed - str r0, [r4, #4] - movs r0, #0x80 - lsls r0, r0, #2 - bl AllocZeroed - str r0, [r4] - movs r0, #2 - strb r0, [r4, #8] - b _08013888 -_0801380C: - ldr r0, [r4, #4] - movs r1, #4 - bl sub_080170B0 - ldr r0, [r4] - movs r1, #0x10 - bl sub_08017044 - ldr r0, [r4, #4] - movs r1, #0xff - bl sub_08016AD0 - movs r1, #0 - strb r0, [r4, #0x11] - strb r1, [r4, #0xf] - movs r0, #3 - strb r0, [r4, #8] - b _08013888 -_08013830: - bl sub_0801394C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08013842 - movs r0, #2 - bl sub_080A306C -_08013842: - ldr r0, _0801385C - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r2, #0x26 - ldrsh r0, [r1, r2] - cmp r0, #0xff - bne _08013888 - movs r0, #0xa - strb r0, [r4, #8] - b _08013888 - .align 2, 0 -_0801385C: .4byte gUnknown_3005B60 -_08013860: - ldrb r0, [r4, #0x11] - bl DestroyTask - ldr r0, [r4] - bl Free - ldr r0, [r4, #4] - bl Free - bl sub_0800E894 - ldrb r0, [r4, #8] - adds r0, #1 - strb r0, [r4, #8] - b _08013888 -_0801387E: - bl sub_0800E894 - adds r0, r5, #0 - bl DestroyTask -_08013888: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08013784 - - thumb_func_start sub_08013890 -sub_08013890: @ 0x08013890 - push {lr} - adds r2, r0, #0 - cmp r1, #0xff - bne _0801389C -_08013898: - movs r0, #1 - b _080138C0 -_0801389C: - cmp r1, #0x16 - bhi _080138BE - ldr r0, _080138AC - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - b _080138B8 - .align 2, 0 -_080138AC: .4byte gUnknown_82C23E0 -_080138B0: - ldrb r0, [r1] - cmp r0, r2 - beq _08013898 - adds r1, #1 -_080138B8: - ldrb r0, [r1] - cmp r0, #0xff - bne _080138B0 -_080138BE: - movs r0, #0 -_080138C0: - pop {r1} - bx r1 - thumb_func_end sub_08013890 - - thumb_func_start sub_080138C4 -sub_080138C4: @ 0x080138C4 - push {lr} - ldr r0, [r0] - lsls r1, r1, #5 - adds r1, r0, r1 - ldrb r2, [r1, #0x1a] - lsls r0, r2, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _080138F6 - ldrb r0, [r1, #0xa] - lsrs r0, r0, #7 - cmp r0, #0 - beq _080138E2 - movs r0, #3 - b _080138F8 -_080138E2: - lsls r0, r2, #0x1d - cmp r0, #0 - bge _080138EC - movs r0, #1 - b _080138F8 -_080138EC: - ldrb r0, [r1, #0x1b] - cmp r0, #0 - beq _080138F6 - movs r0, #2 - b _080138F8 -_080138F6: - movs r0, #0 -_080138F8: - pop {r1} - bx r1 - thumb_func_end sub_080138C4 - - thumb_func_start sub_080138FC -sub_080138FC: @ 0x080138FC - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #8 - adds r5, r0, #0 - adds r4, r1, #0 - adds r6, r2, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - ldr r0, _08013948 - ldr r0, [r0] - mov r8, r0 - bl sub_080138C4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r4, #5 - mov r2, r8 - ldr r3, [r2] - adds r3, r3, r1 - str r0, [sp] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp, #4] - adds r0, r5, #0 - movs r1, #9 - adds r2, r6, #0 - bl sub_0801727C - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08013948: .4byte gUnknown_20228E4 - thumb_func_end sub_080138FC - - thumb_func_start sub_0801394C -sub_0801394C: @ 0x0801394C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - ldr r0, _080139B4 - ldr r6, [r0] - movs r7, #0 - movs r3, #0 -_0801395C: - ldr r0, [r6] - lsls r5, r3, #5 - adds r2, r0, r5 - ldrb r0, [r2, #0x1a] - lsls r0, r0, #0x1e - mov r8, r5 - cmp r0, #0 - beq _08013A28 - ldr r1, [r6, #4] - adds r0, r2, #0 - str r3, [sp] - bl sub_080171A8 - adds r4, r0, #0 - ldr r3, [sp] - cmp r4, #0xff - beq _080139F6 - ldr r0, [r6] - adds r2, r0, r5 - ldrb r1, [r2, #0x1a] - lsls r0, r1, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _080139D4 - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r4, r0, #2 - ldr r1, [r6, #4] - adds r1, r1, r4 - adds r0, r2, #0 - bl sub_0801713C - ldr r3, [sp] - cmp r0, #0 - beq _080139B8 - ldr r1, [r6] - ldr r0, [r6, #4] - adds r1, r1, r5 - adds r0, r0, r4 - ldm r0!, {r2, r4, r7} - stm r1!, {r2, r4, r7} - ldm r0!, {r2, r4, r7} - stm r1!, {r2, r4, r7} - b _080139E2 - .align 2, 0 -_080139B4: .4byte gUnknown_20228E4 -_080139B8: - ldr r0, [r6] - adds r1, r0, r5 - ldrb r0, [r1, #0x1b] - cmp r0, #0 - beq _080139EC - subs r0, #1 - strb r0, [r1, #0x1b] - ldr r0, [r6] - adds r0, r0, r5 - ldrb r0, [r0, #0x1b] - cmp r0, #0 - bne _080139EC - movs r7, #2 - b _080139EC -_080139D4: - movs r4, #4 - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x1a] -_080139E2: - ldr r0, [r6] - adds r0, r0, r5 - movs r1, #0x40 - strb r1, [r0, #0x1b] - movs r7, #1 -_080139EC: - ldr r0, [r6] - add r0, r8 - movs r1, #0 - strh r1, [r0, #0x18] - b _08013A28 -_080139F6: - ldr r0, [r6] - adds r1, r0, r5 - ldrb r0, [r1, #0x1a] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #2 - beq _08013A28 - ldrh r0, [r1, #0x18] - adds r0, #1 - strh r0, [r1, #0x18] - ldr r0, [r6] - adds r2, r0, r5 - ldrh r1, [r2, #0x18] - ldr r0, _08013A64 - cmp r1, r0 - bls _08013A28 - ldrb r0, [r2, #0x1a] - movs r7, #4 - rsbs r7, r7, #0 - adds r1, r7, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r2, #0x1a] - movs r7, #2 -_08013A28: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0xf - bls _0801395C - movs r5, #0 - movs r4, #3 -_08013A36: - ldr r0, [r6] - ldr r1, [r6, #4] - adds r1, r1, r5 - movs r2, #0x10 - bl sub_080171F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _08013A4C - movs r7, #1 -_08013A4C: - adds r5, #0x1c - subs r4, #1 - cmp r4, #0 - bge _08013A36 - adds r0, r7, #0 - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08013A64: .4byte 0x0000012B - thumb_func_end sub_0801394C - - thumb_func_start sub_08013A68 -sub_08013A68: @ 0x08013A68 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_08076DB4 - adds r0, r4, #0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08013A68 - - thumb_func_start sub_08013A80 -sub_08013A80: @ 0x08013A80 - push {lr} - ldr r0, _08013A94 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_08013A94: .4byte sub_08013A68 - thumb_func_end sub_08013A80 - - thumb_func_start sub_08013A98 -sub_08013A98: @ 0x08013A98 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _08013AD4 - mov r8, r0 - bl GetMultiplayerId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r0, r8 - bl sub_08017BDC - adds r7, r0, #0 - ldr r1, _08013AD8 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r5, r0, r1 - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #1 - beq _08013B04 - cmp r0, #1 - bgt _08013ADC - cmp r0, #0 - beq _08013AE6 - b _08013BC4 - .align 2, 0 -_08013AD4: .4byte gUnknown_20228F4 -_08013AD8: .4byte gUnknown_3005B60 -_08013ADC: - cmp r0, #2 - beq _08013B40 - cmp r0, #3 - beq _08013B78 - b _08013BC4 -_08013AE6: - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - movs r0, #0x64 - adds r1, r7, #0 - muls r1, r0, r1 - ldr r0, _08013B00 - adds r1, r1, r0 - movs r0, #0 - movs r2, #0x64 - bl SendBlock - b _08013BC4 - .align 2, 0 -_08013B00: .4byte gUnknown_2024190 -_08013B04: - bl GetBlockReceivedStatus - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bne _08013BC4 - bl GetMultiplayerId - adds r1, r0, #0 - ldr r0, _08013B38 - movs r2, #1 - eors r1, r2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x10 - ldr r2, _08013B3C - adds r1, r1, r2 - movs r2, #0x64 - bl memcpy - movs r0, #0x32 - bl IncrementGameStat - bl ResetBlockReceivedFlags - b _08013B62 - .align 2, 0 -_08013B38: .4byte gUnknown_20243E8 -_08013B3C: .4byte gUnknown_202207C -_08013B40: - ldr r4, _08013B6C - ldr r0, _08013B70 - ldr r1, [r0] - ldr r0, _08013B74 - adds r1, r1, r0 - adds r0, r4, #0 - movs r2, #0xdc - bl memcpy - movs r0, #0 - adds r1, r4, #0 - movs r2, #0xdc - bl SendBlock - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08013BC4 -_08013B62: - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - b _08013BC4 - .align 2, 0 -_08013B6C: .4byte gUnknown_202257C -_08013B70: .4byte gUnknown_3005AEC -_08013B74: .4byte 0x00002BE0 -_08013B78: - bl GetBlockReceivedStatus - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bne _08013BC4 - ldr r4, _08013BD0 - bl GetMultiplayerId - adds r1, r0, #0 - movs r0, #1 - eors r1, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x10 - ldr r0, _08013BD4 - adds r1, r1, r0 - adds r0, r4, #0 - movs r2, #0xd8 - bl memcpy - bl ResetBlockReceivedFlags - ldr r1, _08013BD8 - strb r7, [r1] - movs r0, #6 - strb r0, [r1, #1] - ldr r1, _08013BDC - ldr r0, _08013BE0 - str r0, [r1, #8] - ldr r0, _08013BE4 - bl SetMainCallback2 - mov r0, r8 - bl sub_08017B38 - adds r0, r6, #0 - bl DestroyTask -_08013BC4: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08013BD0: .4byte gUnknown_2031E60 -_08013BD4: .4byte gUnknown_202207C -_08013BD8: .4byte gUnknown_2031F38 -_08013BDC: .4byte gUnknown_3002360 -_08013BE0: .4byte sub_08085A30 -_08013BE4: .4byte sub_0807A8AC - thumb_func_end sub_08013A98 - - thumb_func_start sub_08013BE8 -sub_08013BE8: @ 0x08013BE8 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _08013C08 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _08013C0C - cmp r0, #1 - beq _08013C24 - b _08013CA6 - .align 2, 0 -_08013C08: .4byte gUnknown_3005B60 -_08013C0C: - bl GetMultiplayerId - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08013C1C - movs r0, #2 - bl sub_0800A09C -_08013C1C: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _08013CA6 -_08013C24: - bl GetBlockReceivedStatus - adds r4, r0, #0 - bl sub_0800A59C - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - bne _08013CA6 - movs r4, #0 - ldr r5, _08013C3C - b _08013C5A - .align 2, 0 -_08013C3C: .4byte gUnknown_20226A0 -_08013C40: - lsls r1, r4, #8 - ldr r0, _08013C90 - adds r3, r1, r0 - movs r0, #0x64 - muls r0, r4, r0 - ldr r1, _08013C94 - adds r0, r0, r1 - ldrb r2, [r5] - adds r1, r3, #0 - bl CopyTrainerCardData - adds r5, #0x1c - adds r4, #1 -_08013C5A: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - blt _08013C40 - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _08013C98 - bl GetMultiplayerId - movs r1, #1 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x10 - ldr r1, _08013C90 - adds r3, r0, r1 - adds r0, r3, #0 - adds r0, #0x60 - ldrh r0, [r0] - bl sub_0801B464 - b _08013C9C - .align 2, 0 -_08013C90: .4byte gUnknown_202207C -_08013C94: .4byte gUnknown_20397F8 -_08013C98: - bl sub_0801B458 -_08013C9C: - bl ResetBlockReceivedFlags - adds r0, r6, #0 - bl DestroyTask -_08013CA6: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_08013BE8 - - thumb_func_start sub_08013CAC -sub_08013CAC: @ 0x08013CAC - push {r4, lr} - ldr r0, _08013CC4 - movs r1, #0x87 - lsls r1, r1, #3 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, #0 - beq _08013CC8 - cmp r0, #1 - beq _08013CDC - b _08013CFA - .align 2, 0 -_08013CC4: .4byte gUnknown_3002360 -_08013CC8: - ldr r0, _08013CD8 - movs r1, #5 - bl CreateTask - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - b _08013CFA - .align 2, 0 -_08013CD8: .4byte sub_08013BE8 -_08013CDC: - ldr r0, _08013D10 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08013CFA - bl GetMultiplayerId - movs r1, #1 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08013D14 - bl ShowTrainerCardInLink -_08013CFA: - bl RunTasks - bl sub_08004630 - bl AnimateSprites - bl BuildOamBuffer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08013D10: .4byte sub_08013BE8 -_08013D14: .4byte sub_08085A30 - thumb_func_end sub_08013CAC - - thumb_func_start sub_08013D18 -sub_08013D18: @ 0x08013D18 - push {r4, r5, r6, lr} - adds r6, r0, #0 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - bl HealPlayerParty - bl SavePlayerParty - bl LoadPlayerBag - ldr r5, _08013D84 - ldr r0, _08013D88 - str r0, [r5, #0x14] - bl GetMultiplayerId - adds r4, r0, #0 - bl GetMultiplayerId - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r1, r4, #3 - subs r1, r1, r4 - lsls r1, r1, #2 - adds r1, r1, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r1, #0x18] - bl GetMultiplayerId - adds r4, r0, #0 - bl GetMultiplayerId - movs r2, #1 - eors r4, r2 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r1, r4, #3 - subs r1, r1, r4 - lsls r1, r1, #2 - adds r1, r1, r5 - eors r0, r2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r1, #0x18] - ldr r1, _08013D8C - ldr r0, _08013D90 - str r0, [r1, #8] - ldr r0, _08013D94 - str r6, [r0] - bl sub_0806E0D8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08013D84: .4byte gUnknown_20226A0 -_08013D88: .4byte 0x00002211 -_08013D8C: .4byte gUnknown_3002360 -_08013D90: .4byte sub_080B2D68 -_08013D94: .4byte gUnknown_2022C90 - thumb_func_end sub_08013D18 - - thumb_func_start sub_08013D98 -sub_08013D98: @ 0x08013D98 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #8 - adds r3, r0, #0 - adds r4, r1, #0 - adds r5, r2, #0 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - ldr r0, _08013E04 - adds r1, r3, #0 - bl VarSet - ldr r6, _08013E08 - ldr r1, [r6] - movs r0, #4 - ldrsb r0, [r1, r0] - ldrb r1, [r1, #5] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r2, #1 - rsbs r2, r2, #0 - mov r8, r2 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - lsls r5, r5, #0x18 - asrs r5, r5, #0x18 - str r5, [sp] - adds r3, r4, #0 - bl SetWarpDestination - ldr r0, [r6] - movs r1, #4 - ldrsb r1, [r0, r1] - movs r2, #5 - ldrsb r2, [r0, r2] - str r4, [sp] - str r5, [sp, #4] - movs r0, #0 - mov r3, r8 - bl SetDynamicWarpWithCoords - bl WarpIntoMap - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08013E04: .4byte 0x00004087 -_08013E08: .4byte gUnknown_3005AEC - thumb_func_end sub_08013D98 - - thumb_func_start sub_08013E0C -sub_08013E0C: @ 0x08013E0C - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - mov r8, r2 - adds r6, r3, #0 - ldr r1, [sp, #0x18] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, _08013E7C - strh r1, [r0] - ldr r0, _08013E80 - bl VarSet - bl GetLinkPlayerCount - ldr r1, _08013E84 - strb r0, [r1] - bl GetMultiplayerId - ldr r1, _08013E88 - strb r0, [r1] - bl SetCableClubWarp - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - lsls r5, r5, #0x18 - asrs r5, r5, #0x18 - movs r2, #1 - rsbs r2, r2, #0 - mov r0, r8 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - mov r8, r0 - lsls r6, r6, #0x18 - asrs r6, r6, #0x18 - str r6, [sp] - adds r0, r4, #0 - adds r1, r5, #0 - mov r3, r8 - bl SetWarpDestination - bl WarpIntoMap - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08013E7C: .4byte gUnknown_2037280 -_08013E80: .4byte 0x00004087 -_08013E84: .4byte gUnknown_3005B18 -_08013E88: .4byte gUnknown_3005B14 - thumb_func_end sub_08013E0C - - thumb_func_start sub_08013E8C -sub_08013E8C: @ 0x08013E8C - push {r4, lr} - ldr r0, _08013EA4 - movs r1, #0x87 - lsls r1, r1, #3 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, #0 - beq _08013EA8 - cmp r0, #1 - beq _08013EBC - b _08013ECE - .align 2, 0 -_08013EA4: .4byte gUnknown_3002360 -_08013EA8: - ldr r0, _08013EB8 - movs r1, #5 - bl CreateTask - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - b _08013ECE - .align 2, 0 -_08013EB8: .4byte sub_08013BE8 -_08013EBC: - ldr r0, _08013EE4 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08013ECE - ldr r0, _08013EE8 - bl SetMainCallback2 -_08013ECE: - bl RunTasks - bl sub_08004630 - bl AnimateSprites - bl BuildOamBuffer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08013EE4: .4byte sub_08013BE8 -_08013EE8: .4byte sub_080859DC - thumb_func_end sub_08013E8C - - thumb_func_start sub_08013EEC -sub_08013EEC: @ 0x08013EEC - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl TrainerCard_GenerateCardForPlayer - cmp r5, #0 - beq _08013F06 - bl GetWonderCardFlagID - adds r1, r4, #0 - adds r1, #0x60 - strh r0, [r1] - b _08013F0C -_08013F06: - adds r0, r4, #0 - adds r0, #0x60 - strh r5, [r0] -_08013F0C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08013EEC - - thumb_func_start sub_08013F14 -sub_08013F14: @ 0x08013F14 - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl sub_0801B458 - ldr r0, _08013F34 - ldrb r0, [r0] - subs r0, #1 - cmp r0, #0xe - bhi _08013F7C - lsls r0, r0, #2 - ldr r1, _08013F38 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08013F34: .4byte gUnknown_20228E0 -_08013F38: .4byte _08013F3C -_08013F3C: @ jump table - .4byte _08013F78 @ case 0 - .4byte _08013F78 @ case 1 - .4byte _08013F78 @ case 2 - .4byte _08013F78 @ case 3 - .4byte _08013F7C @ case 4 - .4byte _08013F7C @ case 5 - .4byte _08013F7C @ case 6 - .4byte _08013F7C @ case 7 - .4byte _08013F78 @ case 8 - .4byte _08013F78 @ case 9 - .4byte _08013F78 @ case 10 - .4byte _08013F7C @ case 11 - .4byte _08013F78 @ case 12 - .4byte _08013F7C @ case 13 - .4byte _08013F78 @ case 14 -_08013F78: - bl RecordMixTrainerNames -_08013F7C: - ldr r0, _08013F94 - ldrb r0, [r0] - subs r0, #1 - cmp r0, #0x50 - bls _08013F88 - b _0801426C -_08013F88: - lsls r0, r0, #2 - ldr r1, _08013F98 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08013F94: .4byte gUnknown_20228E0 -_08013F98: .4byte _08013F9C -_08013F9C: @ jump table - .4byte _080140FC @ case 0 - .4byte _08014128 @ case 1 - .4byte _08014154 @ case 2 - .4byte _08014180 @ case 3 - .4byte _080141E0 @ case 4 - .4byte _0801426C @ case 5 - .4byte _0801426C @ case 6 - .4byte _08014204 @ case 7 - .4byte _0801421C @ case 8 - .4byte _0801423C @ case 9 - .4byte _08014254 @ case 10 - .4byte _0801426C @ case 11 - .4byte _0801426C @ case 12 - .4byte _0801426C @ case 13 - .4byte _080141A0 @ case 14 - .4byte _0801426C @ case 15 - .4byte _0801426C @ case 16 - .4byte _0801426C @ case 17 - .4byte _0801426C @ case 18 - .4byte _0801426C @ case 19 - .4byte _0801426C @ case 20 - .4byte _0801426C @ case 21 - .4byte _0801426C @ case 22 - .4byte _0801426C @ case 23 - .4byte _0801426C @ case 24 - .4byte _0801426C @ case 25 - .4byte _0801426C @ case 26 - .4byte _0801426C @ case 27 - .4byte _0801426C @ case 28 - .4byte _0801426C @ case 29 - .4byte _0801426C @ case 30 - .4byte _0801426C @ case 31 - .4byte _0801426C @ case 32 - .4byte _0801426C @ case 33 - .4byte _0801426C @ case 34 - .4byte _0801426C @ case 35 - .4byte _0801426C @ case 36 - .4byte _0801426C @ case 37 - .4byte _0801426C @ case 38 - .4byte _0801426C @ case 39 - .4byte _0801426C @ case 40 - .4byte _0801426C @ case 41 - .4byte _0801426C @ case 42 - .4byte _0801426C @ case 43 - .4byte _0801426C @ case 44 - .4byte _0801426C @ case 45 - .4byte _0801426C @ case 46 - .4byte _0801426C @ case 47 - .4byte _0801426C @ case 48 - .4byte _0801426C @ case 49 - .4byte _0801426C @ case 50 - .4byte _0801426C @ case 51 - .4byte _0801426C @ case 52 - .4byte _0801426C @ case 53 - .4byte _0801426C @ case 54 - .4byte _0801426C @ case 55 - .4byte _0801426C @ case 56 - .4byte _0801426C @ case 57 - .4byte _0801426C @ case 58 - .4byte _0801426C @ case 59 - .4byte _0801426C @ case 60 - .4byte _0801426C @ case 61 - .4byte _0801426C @ case 62 - .4byte _0801426C @ case 63 - .4byte _080140E0 @ case 64 - .4byte _0801426C @ case 65 - .4byte _0801426C @ case 66 - .4byte _080141CC @ case 67 - .4byte _080141E0 @ case 68 - .4byte _0801426C @ case 69 - .4byte _0801426C @ case 70 - .4byte _08014204 @ case 71 - .4byte _0801426C @ case 72 - .4byte _0801426C @ case 73 - .4byte _0801426C @ case 74 - .4byte _0801426C @ case 75 - .4byte _0801426C @ case 76 - .4byte _0801426C @ case 77 - .4byte _0801426C @ case 78 - .4byte _0801426C @ case 79 - .4byte _080140E0 @ case 80 -_080140E0: - bl CleanupOverworldWindowsAndTilemaps - ldr r1, _080140F4 - ldr r0, _080140F8 - str r0, [r1, #8] - movs r0, #3 - bl InitChooseHalfPartyForBattle - b _0801426C - .align 2, 0 -_080140F4: .4byte gUnknown_3002360 -_080140F8: .4byte sub_0801A728 -_080140FC: - bl CleanupOverworldWindowsAndTilemaps - ldr r0, _08014124 - movs r1, #1 - bl sub_08013EEC - bl HealPlayerParty - bl SavePlayerParty - bl LoadPlayerBag - movs r0, #1 - str r0, [sp] - movs r0, #0x19 - movs r1, #0x18 - movs r2, #6 - movs r3, #8 - b _080141B8 - .align 2, 0 -_08014124: .4byte gUnknown_202257C -_08014128: - bl CleanupOverworldWindowsAndTilemaps - bl HealPlayerParty - bl SavePlayerParty - bl LoadPlayerBag - ldr r0, _08014150 - movs r1, #1 - bl sub_08013EEC - movs r0, #2 - str r0, [sp] - movs r0, #0x19 - movs r1, #0x18 - movs r2, #6 - movs r3, #8 - b _080141B8 - .align 2, 0 -_08014150: .4byte gUnknown_202257C -_08014154: - bl CleanupOverworldWindowsAndTilemaps - bl HealPlayerParty - bl SavePlayerParty - bl LoadPlayerBag - ldr r0, _0801417C - movs r1, #1 - bl sub_08013EEC - movs r0, #5 - str r0, [sp] - movs r0, #0x19 - movs r1, #0x1b - movs r2, #5 - movs r3, #8 - b _080141B8 - .align 2, 0 -_0801417C: .4byte gUnknown_202257C -_08014180: - ldr r0, _0801419C - movs r1, #1 - bl sub_08013EEC - bl CleanupOverworldWindowsAndTilemaps - movs r0, #3 - str r0, [sp] - movs r0, #0x19 - movs r1, #0x19 - movs r2, #5 - movs r3, #8 - b _080141B8 - .align 2, 0 -_0801419C: .4byte gUnknown_202257C -_080141A0: - ldr r0, _080141C4 - movs r1, #1 - bl sub_08013EEC - bl CleanupOverworldWindowsAndTilemaps - movs r0, #4 - str r0, [sp] - movs r0, #0x19 - movs r1, #0x1a - movs r2, #8 - movs r3, #9 -_080141B8: - bl sub_08013E0C - ldr r0, _080141C8 - bl SetMainCallback2 - b _0801426C - .align 2, 0 -_080141C4: .4byte gUnknown_202257C -_080141C8: .4byte sub_08013E8C -_080141CC: - bl CleanupOverworldWindowsAndTilemaps - ldr r0, _080141DC - movs r1, #0 - bl CreateTask - b _0801426C - .align 2, 0 -_080141DC: .4byte sub_08013A98 -_080141E0: - bl GetMultiplayerId - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080141F0 - bl sub_0800E7D0 - b _080141FE -_080141F0: - bl SaveSuccessCallback - movs r0, #0x45 - movs r1, #0 - movs r2, #1 - bl sub_08010A74 -_080141FE: - bl sub_0801DBBC - b _0801426C -_08014204: - ldr r0, _08014214 - movs r1, #0 - bl sub_08013EEC - ldr r0, _08014218 - bl SetMainCallback2 - b _0801426C - .align 2, 0 -_08014214: .4byte gUnknown_202257C -_08014218: .4byte sub_08013CAC -_0801421C: - movs r0, #8 - movs r1, #5 - movs r2, #1 - bl sub_08013D98 - bl GetCursorSelectionMonId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08014238 - bl sub_0802A69C - b _0801426C - .align 2, 0 -_08014238: .4byte CB2_LoadMap -_0801423C: - movs r0, #7 - movs r1, #9 - movs r2, #1 - bl sub_08013D98 - ldr r0, _08014250 - bl sub_08020988 - b _0801426C - .align 2, 0 -_08014250: .4byte CB2_LoadMap -_08014254: - movs r0, #8 - movs r1, #5 - movs r2, #1 - bl sub_08013D98 - bl GetCursorSelectionMonId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0801428C - bl sub_08024704 -_0801426C: - adds r0, r4, #0 - bl DestroyTask - ldr r1, _08014290 - movs r0, #1 - strh r0, [r1] - ldr r0, _08014294 - ldrb r0, [r0] - cmp r0, #0x44 - beq _08014284 - bl sub_080987E8 -_08014284: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801428C: .4byte CB2_LoadMap -_08014290: .4byte gUnknown_2037290 -_08014294: .4byte gUnknown_20228E0 - thumb_func_end sub_08013F14 - - thumb_func_start sub_08014298 -sub_08014298: @ 0x08014298 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _080142C8 - adds r7, r0, r1 - ldr r0, _080142CC - mov sb, r0 - movs r1, #0 - ldrsh r0, [r7, r1] - mov r2, sb - cmp r0, #8 - bls _080142BE - b _080144BA -_080142BE: - lsls r0, r0, #2 - ldr r1, _080142D0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080142C8: .4byte gUnknown_3005B68 -_080142CC: .4byte gUnknown_202257C -_080142D0: .4byte _080142D4 -_080142D4: @ jump table - .4byte _080142F8 @ case 0 - .4byte _080143D4 @ case 1 - .4byte _080143EC @ case 2 - .4byte _08014426 @ case 3 - .4byte _0801443C @ case 4 - .4byte _08014452 @ case 5 - .4byte _0801448E @ case 6 - .4byte _0801449A @ case 7 - .4byte _080144A4 @ case 8 -_080142F8: - ldr r1, _08014314 - movs r0, #1 - strh r0, [r1] - ldr r0, _08014318 - ldrb r0, [r0] - subs r0, #0xe - cmp r0, #0xe - bhi _080143CA - lsls r0, r0, #2 - ldr r1, _0801431C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08014314: .4byte gUnknown_2037290 -_08014318: .4byte gUnknown_20228E0 -_0801431C: .4byte _08014320 -_08014320: @ jump table - .4byte _0801435C @ case 0 - .4byte _080143CA @ case 1 - .4byte _080143C0 @ case 2 - .4byte _080143CA @ case 3 - .4byte _080143CA @ case 4 - .4byte _080143CA @ case 5 - .4byte _080143CA @ case 6 - .4byte _080143CA @ case 7 - .4byte _080143CA @ case 8 - .4byte _080143C0 @ case 9 - .4byte _080143C0 @ case 10 - .4byte _080143C0 @ case 11 - .4byte _080143C0 @ case 12 - .4byte _080143C0 @ case 13 - .4byte _0801435C @ case 14 -_0801435C: - ldr r1, _080143AC - ldr r0, _080143B0 - str r0, [r1, #0x14] - movs r2, #0 - mov r8, r2 - mov r0, r8 - strh r0, [r1, #0x18] - movs r0, #2 - strh r0, [r1, #0x34] - ldr r6, _080143B4 - ldrb r0, [r6] - movs r5, #0x64 - muls r0, r5, r0 - ldr r4, _080143B8 - adds r0, r0, r4 - movs r1, #0xb - bl GetMonData - mov r1, sb - strh r0, [r1] - ldrb r0, [r6, #1] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #0xb - movs r2, #0 - bl GetMonData - mov r2, sb - strh r0, [r2, #2] - ldr r0, _080143BC - mov r1, r8 - str r1, [r0, #8] - movs r0, #4 - strh r0, [r7] - bl RecordMixTrainerNames - bl ResetBlockReceivedFlags - b _080144BA - .align 2, 0 -_080143AC: .4byte gUnknown_20226A0 -_080143B0: .4byte 0x00002211 -_080143B4: .4byte gUnknown_203CBC4 -_080143B8: .4byte gUnknown_202412C -_080143BC: .4byte gUnknown_3002360 -_080143C0: - bl RecordMixTrainerNames - adds r0, r4, #0 - bl DestroyTask -_080143CA: - bl EnableBothScriptContexts - movs r0, #1 - strh r0, [r7] - b _080144BA -_080143D4: - bl ScriptContext1_IsScriptSetUp - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080144BA - movs r0, #1 - movs r1, #0 - bl FadeScreen - movs r0, #2 - strh r0, [r7] - b _080144BA -_080143EC: - ldr r0, _08014410 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080144BA - ldr r0, _08014414 - ldrb r0, [r0] - cmp r0, #0x1d - bne _0801441C - adds r0, r4, #0 - bl DestroyTask - ldr r0, _08014418 - bl SetMainCallback2 - b _080144BA - .align 2, 0 -_08014410: .4byte gUnknown_2037C74 -_08014414: .4byte gUnknown_20228E0 -_08014418: .4byte sub_08076DB4 -_0801441C: - bl sub_0800A8D4 - movs r0, #3 - strh r0, [r7] - b _080144BA -_08014426: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080144BA - adds r0, r4, #0 - bl DestroyTask - bl sub_080144E0 - b _080144BA -_0801443C: - movs r0, #0 - adds r1, r2, #0 - movs r2, #0xe - bl SendBlock - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080144BA - movs r0, #5 - strh r0, [r7] - b _080144BA -_08014452: - bl GetBlockReceivedStatus - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bne _080144BA - bl ResetBlockReceivedFlags - ldr r0, _08014480 - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r0, r2 - bl sub_080B23D0 - cmp r0, #0 - beq _08014488 - ldr r0, _08014484 - movs r1, #0xb - strh r1, [r0] - movs r0, #7 - strh r0, [r7] - b _080144BA - .align 2, 0 -_08014480: .4byte gUnknown_202207C -_08014484: .4byte gUnknown_2037290 -_08014488: - movs r0, #6 - strh r0, [r7] - b _080144BA -_0801448E: - bl EnableBothScriptContexts - adds r0, r4, #0 - bl DestroyTask - b _080144BA -_0801449A: - bl sub_0800A7F8 - movs r0, #8 - strh r0, [r7] - b _080144BA -_080144A4: - ldr r0, _080144C8 - ldrb r0, [r0] - cmp r0, #0 - bne _080144BA - bl DestroyWirelessStatusIndicatorSprite - bl EnableBothScriptContexts - adds r0, r4, #0 - bl DestroyTask -_080144BA: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080144C8: .4byte gUnknown_30031C4 - thumb_func_end sub_08014298 - - thumb_func_start sub_080144CC -sub_080144CC: @ 0x080144CC - push {lr} - ldr r0, _080144DC - movs r1, #0 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080144DC: .4byte sub_08014298 - thumb_func_end sub_080144CC - - thumb_func_start sub_080144E0 -sub_080144E0: @ 0x080144E0 - push {lr} - ldr r0, _08014500 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08014504 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r0, #0 - strh r0, [r1, #8] - pop {r0} - bx r0 - .align 2, 0 -_08014500: .4byte sub_08013F14 -_08014504: .4byte gUnknown_3005B60 - thumb_func_end sub_080144E0 - - thumb_func_start MEvent_CreateTask_Leader -MEvent_CreateTask_Leader: @ 0x08014508 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08014538 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0801453C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _08014540 - adds r1, r1, r0 - str r1, [r2] - movs r2, #0 - strb r2, [r1, #0xc] - strb r2, [r1, #0xd] - strb r4, [r1, #0x18] - ldr r0, _08014544 - strh r2, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08014538: .4byte sub_08014548 -_0801453C: .4byte gUnknown_20228E4 -_08014540: .4byte gUnknown_3005B68 -_08014544: .4byte gUnknown_2037290 - thumb_func_end MEvent_CreateTask_Leader - - thumb_func_start sub_08014548 -sub_08014548: @ 0x08014548 - push {r4, r5, r6, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _08014568 - ldr r5, [r0] - ldrb r0, [r5, #0xc] - cmp r0, #0x11 - bls _0801455C - b _080149FA -_0801455C: - lsls r0, r0, #2 - ldr r1, _0801456C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08014568: .4byte gUnknown_20228E4 -_0801456C: .4byte _08014570 -_08014570: @ jump table - .4byte _080145B8 @ case 0 - .4byte _080145F4 @ case 1 - .4byte _080146C4 @ case 2 - .4byte _080146F4 @ case 3 - .4byte _08014704 @ case 4 - .4byte _08014754 @ case 5 - .4byte _0801472C @ case 6 - .4byte _0801475A @ case 7 - .4byte _080147FA @ case 8 - .4byte _080148C4 @ case 9 - .4byte _080148D4 @ case 10 - .4byte _080148EA @ case 11 - .4byte _08014902 @ case 12 - .4byte _0801491E @ case 13 - .4byte _08014956 @ case 14 - .4byte _0801497C @ case 15 - .4byte _080149B0 @ case 16 - .4byte _080149EA @ case 17 -_080145B8: - ldr r1, _080145EC - ldrb r0, [r5, #0x18] - strb r0, [r1] - ldr r1, _080145F0 - movs r0, #2 - strb r0, [r1] - ldrb r0, [r5, #0x18] - movs r1, #0 - movs r2, #0 - bl sub_08010A74 - movs r0, #0 - movs r1, #0 - bl sub_08010A90 - bl sub_0800AF5C - bl OpenLink - movs r0, #2 - bl sub_080116FC - movs r0, #1 - strb r0, [r5, #0xc] - b _080149FA - .align 2, 0 -_080145EC: .4byte gUnknown_20228E0 -_080145F0: .4byte gUnknown_20228E1 -_080145F4: - movs r0, #0x70 - bl AllocZeroed - str r0, [r5, #4] - movs r0, #0xa0 - bl AllocZeroed - str r0, [r5] - movs r0, #0xa0 - bl AllocZeroed - str r0, [r5, #8] - ldr r0, [r5, #4] - movs r1, #4 - bl sub_080170B0 - ldr r0, [r5] - movs r1, #5 - bl sub_08017044 - ldr r0, [r5] - adds r1, r0, #0 - adds r1, #0x10 - bl sub_0800DA5C - ldr r1, [r5] - movs r3, #0 - movs r0, #0 - strh r0, [r1, #0x18] - ldr r2, [r5] - ldrb r1, [r2, #0x1a] - subs r0, #4 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x1a] - ldr r2, [r5] - ldrb r1, [r2, #0x1a] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x1a] - ldr r0, [r5] - strb r3, [r0, #0x1b] - ldr r0, [r5, #4] - movs r1, #0xff - bl sub_08016AD0 - strb r0, [r5, #0x17] - ldr r0, _080146B0 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, #4] - bl sub_08019328 - lsls r0, r0, #0x10 - ldr r2, _080146B4 - ldr r1, [sp, #4] - ands r1, r2 - orrs r1, r0 - ldr r0, _080146B8 - ands r1, r0 - movs r0, #0xc0 - lsls r0, r0, #4 - orrs r1, r0 - str r1, [sp, #4] - mov r0, sp - bl AddWindow - strb r0, [r5, #0xf] - ldrb r0, [r5, #0xf] - bl MG_DrawTextBorder - ldr r0, _080146BC - adds r2, r0, #0 - ldr r1, _080146C0 - ldm r1!, {r3, r4, r6} - stm r2!, {r3, r4, r6} - ldm r1!, {r3, r4, r6} - stm r2!, {r3, r4, r6} - ldrb r1, [r5, #0xf] - strb r1, [r0, #0x10] - movs r1, #0 - movs r2, #0 - bl ListMenuInit - strb r0, [r5, #0x12] - movs r0, #0 - bl CopyBgTilemapBufferToVram - movs r0, #1 - strb r0, [r5, #0x13] - b _0801474A - .align 2, 0 -_080146B0: .4byte gUnknown_82C2024 -_080146B4: .4byte 0x0000FFFF -_080146B8: .4byte 0xFFFF00FF -_080146BC: .4byte gUnknown_3006050 -_080146C0: .4byte gUnknown_82C2064 -_080146C4: - ldr r0, _080146E4 - ldr r2, _080146E8 - ldr r4, _080146EC - ldrb r1, [r4] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl StringCopy - ldr r0, _080146F0 - ldrb r1, [r4] - bl sub_08012134 - movs r0, #3 - strb r0, [r5, #0xc] - b _080149FA - .align 2, 0 -_080146E4: .4byte gUnknown_2021C40 -_080146E8: .4byte gUnknown_82C1E58 -_080146EC: .4byte gUnknown_20228E0 -_080146F0: .4byte gUnknown_2021C7C -_080146F4: - ldr r0, _08014700 - bl AddTextPrinterToWindow1 - movs r0, #4 - strb r0, [r5, #0xc] - b _080149FA - .align 2, 0 -_08014700: .4byte gUnknown_2021C7C -_08014704: - adds r0, r5, #0 - movs r1, #5 - movs r2, #6 - bl sub_08012D0C - ldr r0, _08014728 - ldrh r1, [r0, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0801471C - b _080149FA -_0801471C: - movs r0, #0xd - strb r0, [r5, #0xc] - bl DestroyWirelessStatusIndicatorSprite - b _080149FA - .align 2, 0 -_08014728: .4byte gUnknown_3002360 -_0801472C: - adds r0, r5, #0 - adds r0, #0xd - ldr r1, _08014750 - bl MG_PrintTextOnWindow1AndWaitButton - cmp r0, #0 - bne _0801473C - b _080149FA -_0801473C: - ldr r0, [r5] - bl sub_08012E9C - strb r0, [r5, #0x13] - ldrb r0, [r5, #0x12] - bl RedrawListMenu -_0801474A: - movs r0, #2 - strb r0, [r5, #0xc] - b _080149FA - .align 2, 0 -_08014750: .4byte gUnknown_82C0AE4 -_08014754: - movs r0, #7 - strb r0, [r5, #0xc] - b _080149FA -_0801475A: - adds r0, r5, #0 - adds r0, #0xd - adds r1, r5, #0 - adds r1, #0x14 - ldr r3, _08014780 - movs r2, #0 - bl mevent_message_print_and_prompt_yes_no - lsls r0, r0, #0x18 - asrs r4, r0, #0x18 - cmp r4, #0 - beq _0801478A - cmp r4, #0 - bgt _08014784 - movs r0, #1 - rsbs r0, r0, #0 - cmp r4, r0 - beq _080147CC - b _080149FA - .align 2, 0 -_08014780: .4byte gUnknown_2021C7C -_08014784: - cmp r4, #1 - beq _080147CC - b _080149FA -_0801478A: - bl LoadWirelessStatusIndicatorSpriteGfx - movs r0, #0 - movs r1, #0 - bl CreateWirelessStatusIndicatorSprite - ldr r1, [r5] - ldrb r0, [r5, #0x13] - lsls r0, r0, #5 - adds r1, r1, r0 - strb r4, [r1, #0x1b] - ldrb r0, [r5, #0x12] - bl RedrawListMenu - movs r0, #5 - strb r0, [r5, #0x19] - ldrb r1, [r5, #0x13] - lsls r1, r1, #5 - ldr r0, [r5] - adds r0, r0, r1 - adds r0, #2 - bl sub_08015160 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldrb r0, [r5, #0x13] - lsls r0, r0, #5 - ldr r2, [r5] - adds r2, r2, r0 - adds r2, #0x10 - movs r0, #5 - b _080147F0 -_080147CC: - movs r0, #6 - strb r0, [r5, #0x19] - ldrb r1, [r5, #0x13] - lsls r1, r1, #5 - ldr r0, [r5] - adds r0, r0, r1 - adds r0, #2 - bl sub_08015160 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldrb r0, [r5, #0x13] - lsls r0, r0, #5 - ldr r2, [r5] - adds r2, r2, r0 - adds r2, #0x10 - movs r0, #6 -_080147F0: - bl sub_08010188 - movs r0, #8 - strb r0, [r5, #0xc] - b _080149FA -_080147FA: - ldrb r1, [r5, #0x13] - lsls r1, r1, #5 - ldr r0, [r5] - adds r0, r0, r1 - adds r0, #2 - bl sub_08015160 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrb r2, [r5, #0x13] - lsls r2, r2, #5 - ldr r1, [r5] - adds r1, r1, r2 - adds r1, #0x10 - bl sub_08010214 - adds r4, r0, #0 - cmp r4, #1 - bne _080148B2 - ldrb r0, [r5, #0x19] - cmp r0, #5 - bne _0801486C - ldr r1, [r5] - ldrb r0, [r5, #0x13] - lsls r0, r0, #5 - adds r1, r1, r0 - movs r0, #0 - strb r0, [r1, #0x1b] - ldrb r0, [r5, #0x12] - bl RedrawListMenu - ldrb r0, [r5, #0x13] - adds r0, #1 - strb r0, [r5, #0x13] - ldr r0, _08014860 - ldrb r1, [r5, #0x13] - lsls r1, r1, #5 - ldr r2, [r5] - adds r1, r1, r2 - subs r1, #0x10 - bl StringCopy7 - ldr r0, _08014864 - ldr r1, _08014868 - bl StringExpandPlaceholders - movs r0, #9 - strb r0, [r5, #0xc] - bl sub_0800E9F8 - b _080148AC - .align 2, 0 -_08014860: .4byte gUnknown_2021C40 -_08014864: .4byte gUnknown_2021C7C -_08014868: .4byte gUnknown_82C0948 -_0801486C: - ldrb r1, [r5, #0x13] - lsls r1, r1, #5 - ldr r0, [r5] - adds r0, r0, r1 - adds r4, r0, #0 - adds r4, #0x10 - adds r0, #2 - bl sub_08015160 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl sub_080118AC - ldr r1, [r5] - ldrb r0, [r5, #0x13] - lsls r0, r0, #5 - adds r1, r1, r0 - ldrb r2, [r1, #0x1a] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #0x1a] - ldr r0, [r5] - bl sub_08012E9C - ldrb r0, [r5, #0x12] - bl RedrawListMenu - movs r0, #2 - strb r0, [r5, #0xc] -_080148AC: - movs r0, #0 - strb r0, [r5, #0x19] - b _080149FA -_080148B2: - cmp r4, #2 - beq _080148B8 - b _080149FA -_080148B8: - movs r0, #0 - movs r1, #0 - bl sub_08011554 - strb r4, [r5, #0xc] - b _080149FA -_080148C4: - ldr r0, _080148D0 - bl AddTextPrinterToWindow1 - movs r0, #0xa - strb r0, [r5, #0xc] - b _080149FA - .align 2, 0 -_080148D0: .4byte gUnknown_2021C7C -_080148D4: - ldrb r0, [r5, #0xe] - adds r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x78 - bhi _080148E4 - b _080149FA -_080148E4: - movs r0, #0xb - strb r0, [r5, #0xc] - b _080149FA -_080148EA: - adds r0, r5, #0 - movs r1, #5 - movs r2, #6 - bl sub_08012D0C - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080148FC - b _080149FA -_080148FC: - movs r0, #0xc - strb r0, [r5, #0xc] - b _080149FA -_08014902: - bl sub_0800E9DC - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08014918 - movs r0, #0 - bl sub_0800EA18 - movs r0, #0xf - strb r0, [r5, #0xc] - b _080149FA -_08014918: - movs r0, #6 - strb r0, [r5, #0xc] - b _080149FA -_0801491E: - bl DestroyWirelessStatusIndicatorSprite - bl sub_0800E894 - ldrb r0, [r5, #0x12] - movs r1, #0 - movs r2, #0 - bl DestroyListMenuTask - movs r0, #0 - bl CopyBgTilemapBufferToVram - ldrb r0, [r5, #0xf] - bl RemoveWindow - ldrb r0, [r5, #0x17] - bl DestroyTask - ldr r0, [r5, #8] - bl Free - ldr r0, [r5] - bl Free - ldr r0, [r5, #4] - bl Free - b _080149E2 -_08014956: - adds r0, r5, #0 - adds r0, #0xd - ldr r1, _08014974 - bl MG_PrintTextOnWindow1AndWaitButton - cmp r0, #0 - beq _080149FA - adds r0, r4, #0 - bl DestroyTask - ldr r1, _08014978 - movs r0, #5 - strh r0, [r1] - b _080149FA - .align 2, 0 -_08014974: .4byte gUnknown_82C064C -_08014978: .4byte gUnknown_2037290 -_0801497C: - bl sub_08011564 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08014994 - bl sub_08011564 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _0801499A -_08014994: - movs r0, #0xd - strb r0, [r5, #0xc] - b _080149FA -_0801499A: - ldr r0, _080149AC - ldrb r0, [r0] - cmp r0, #0 - beq _080149FA - movs r0, #1 - bl sub_08010B58 - b _080149E2 - .align 2, 0 -_080149AC: .4byte gUnknown_30031C4 -_080149B0: - ldrb r0, [r5, #0x12] - movs r1, #0 - movs r2, #0 - bl DestroyListMenuTask - movs r0, #0 - bl CopyBgTilemapBufferToVram - ldrb r0, [r5, #0xf] - bl RemoveWindow - ldrb r0, [r5, #0x17] - bl DestroyTask - ldr r0, [r5, #8] - bl Free - ldr r0, [r5] - bl Free - ldr r0, [r5, #4] - bl Free - bl sub_0800A8D4 -_080149E2: - ldrb r0, [r5, #0xc] - adds r0, #1 - strb r0, [r5, #0xc] - b _080149FA -_080149EA: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080149FA - adds r0, r4, #0 - bl DestroyTask -_080149FA: - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08014548 - - thumb_func_start sub_08014A04 -sub_08014A04: @ 0x08014A04 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08014A3C - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08014A40 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _08014A44 - adds r1, r1, r0 - str r1, [r2] - ldr r0, _08014A48 - str r1, [r0] - movs r2, #0 - strb r2, [r1, #8] - strb r2, [r1, #9] - subs r4, #6 - strb r4, [r1, #0x12] - ldr r0, _08014A4C - strh r2, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08014A3C: .4byte sub_08014A50 -_08014A40: .4byte gUnknown_20228E4 -_08014A44: .4byte gUnknown_3005B68 -_08014A48: .4byte gUnknown_3000DA4 -_08014A4C: .4byte gUnknown_2037290 - thumb_func_end sub_08014A04 - - thumb_func_start sub_08014A50 -sub_08014A50: @ 0x08014A50 - push {r4, r5, r6, r7, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _08014A70 - ldr r7, [r0] - ldrb r0, [r7, #8] - cmp r0, #0xc - bls _08014A64 - b _08014DA8 -_08014A64: - lsls r0, r0, #2 - ldr r1, _08014A74 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08014A70: .4byte gUnknown_20228E4 -_08014A74: .4byte _08014A78 -_08014A78: @ jump table - .4byte _08014AAC @ case 0 - .4byte _08014AE0 @ case 1 - .4byte _08014AF0 @ case 2 - .4byte _08014BC0 @ case 3 - .4byte _08014C88 @ case 4 - .4byte _08014CAC @ case 5 - .4byte _08014D0C @ case 6 - .4byte _08014D68 @ case 7 - .4byte _08014D0C @ case 8 - .4byte _08014D42 @ case 9 - .4byte _08014D0C @ case 10 - .4byte _08014D8C @ case 11 - .4byte _08014D98 @ case 12 -_08014AAC: - ldrb r0, [r7, #0x12] - adds r0, #6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - movs r2, #0 - bl sub_08010A74 - bl sub_0800AF5C - bl OpenLink - bl sub_08011748 - movs r0, #0x70 - bl AllocZeroed - str r0, [r7, #4] - movs r0, #0x80 - lsls r0, r0, #2 - bl AllocZeroed - str r0, [r7] - movs r0, #1 - strb r0, [r7, #8] - b _08014DA8 -_08014AE0: - ldr r0, _08014AEC - bl AddTextPrinterToWindow1 - movs r0, #2 - strb r0, [r7, #8] - b _08014DA8 - .align 2, 0 -_08014AEC: .4byte gUnknown_82C19CC -_08014AF0: - ldr r0, [r7, #4] - movs r1, #4 - bl sub_080170B0 - ldr r0, [r7] - movs r1, #0x10 - bl sub_08017044 - ldr r0, [r7, #4] - ldrb r1, [r7, #0x12] - adds r1, #7 - bl sub_08016AD0 - movs r6, #0 - strb r0, [r7, #0x11] - ldr r0, _08014BA8 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, #4] - bl sub_08019328 - lsls r0, r0, #0x10 - ldr r2, _08014BAC - ldr r1, [sp, #4] - ands r1, r2 - orrs r1, r0 - ldr r5, _08014BB0 - ands r1, r5 - movs r4, #0xc0 - lsls r4, r4, #4 - orrs r1, r4 - str r1, [sp, #4] - mov r0, sp - bl AddWindow - strb r0, [r7, #0xb] - ldr r0, _08014BB4 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [sp, #8] - str r1, [sp, #0xc] - add r0, sp, #8 - ldr r1, [r0, #4] - ands r1, r5 - orrs r1, r4 - str r1, [r0, #4] - bl AddWindow - strb r0, [r7, #0xd] - ldrb r0, [r7, #0xb] - bl MG_DrawTextBorder - ldr r0, _08014BB8 - adds r2, r0, #0 - ldr r1, _08014BBC - ldm r1!, {r3, r4, r5} - stm r2!, {r3, r4, r5} - ldm r1!, {r3, r4, r5} - stm r2!, {r3, r4, r5} - ldrb r1, [r7, #0xb] - strb r1, [r0, #0x10] - movs r1, #0 - movs r2, #0 - bl ListMenuInit - strb r0, [r7, #0xe] - ldrb r0, [r7, #0xd] - bl MG_DrawTextBorder - ldrb r0, [r7, #0xd] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldrb r0, [r7, #0xd] - bl PutWindowTilemap - ldrb r0, [r7, #0xd] - bl sub_080120A8 - ldrb r0, [r7, #0xd] - movs r1, #2 - bl CopyWindowToVram - movs r0, #0 - bl CopyBgTilemapBufferToVram - strb r6, [r7, #0xf] - movs r0, #3 - strb r0, [r7, #8] - b _08014DA8 - .align 2, 0 -_08014BA8: .4byte gUnknown_82C207C -_08014BAC: .4byte 0x0000FFFF -_08014BB0: .4byte 0xFFFF00FF -_08014BB4: .4byte gUnknown_82C2084 -_08014BB8: .4byte gUnknown_3006050 -_08014BBC: .4byte gUnknown_82C210C -_08014BC0: - bl sub_0801394C - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - beq _08014BDE - cmp r2, #1 - bne _08014BD6 - movs r0, #2 - bl sub_080A306C -_08014BD6: - ldrb r0, [r7, #0xe] - bl RedrawListMenu - b _08014DA8 -_08014BDE: - ldrb r0, [r7, #0xe] - bl ListMenu_ProcessInput - adds r2, r0, #0 - ldr r0, _08014C60 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08014C70 - movs r0, #1 - rsbs r0, r0, #0 - cmp r2, r0 - beq _08014C70 - ldr r0, [r7] - lsls r1, r2, #5 - adds r0, r0, r1 - ldrb r1, [r0, #0xa] - ldrb r0, [r0, #0x1a] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _08014C68 - lsrs r0, r1, #7 - cmp r0, #0 - bne _08014C68 - strb r2, [r7, #0xf] - bl LoadWirelessStatusIndicatorSpriteGfx - movs r0, #0 - movs r1, #0 - bl CreateWirelessStatusIndicatorSprite - ldrb r0, [r7, #0xe] - bl RedrawListMenu - ldr r0, _08014C64 - ldrb r2, [r7, #0xf] - lsls r2, r2, #5 - ldr r1, [r7] - adds r1, r1, r2 - adds r1, #0x10 - bl StringCopy - ldrb r1, [r7, #0xf] - lsls r1, r1, #5 - ldr r0, [r7] - adds r0, r0, r1 - adds r4, r0, #0 - adds r4, #0x10 - adds r0, #2 - bl sub_08015160 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl sub_08011AB4 - movs r0, #0x6e - bl sub_080A306C - movs r0, #4 - strb r0, [r7, #8] - b _08014DA8 - .align 2, 0 -_08014C60: .4byte gUnknown_3002360 -_08014C64: .4byte gUnknown_2021C40 -_08014C68: - movs r0, #7 - bl sub_080A306C - b _08014DA8 -_08014C70: - ldr r0, _08014C84 - ldrh r1, [r0, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08014C7E - b _08014DA8 -_08014C7E: - movs r0, #6 - strb r0, [r7, #8] - b _08014DA8 - .align 2, 0 -_08014C84: .4byte gUnknown_3002360 -_08014C88: - ldr r0, _08014CA4 - bl AddTextPrinterToWindow1 - ldr r0, _08014CA8 - ldrb r2, [r7, #0xf] - lsls r2, r2, #5 - ldr r1, [r7] - adds r1, r1, r2 - adds r1, #0x10 - bl StringCopy - movs r0, #5 - strb r0, [r7, #8] - b _08014DA8 - .align 2, 0 -_08014CA4: .4byte gUnknown_82C1C80 -_08014CA8: .4byte gUnknown_2021C40 -_08014CAC: - ldr r0, _08014CE4 - ldrb r0, [r0] - cmp r0, #0 - beq _08014CCA - ldr r2, _08014CE8 - ldr r1, [r7] - ldrb r0, [r7, #0xf] - lsls r0, r0, #5 - adds r1, r1, r0 - ldrb r0, [r1, #0xa] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x19 - strb r0, [r2] - movs r0, #0xa - strb r0, [r7, #8] -_08014CCA: - bl sub_08011564 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #5 - beq _08014CF6 - cmp r0, #5 - bgt _08014CEC - cmp r0, #2 - bgt _08014DA8 - cmp r0, #1 - blt _08014DA8 - b _08014CF0 - .align 2, 0 -_08014CE4: .4byte gUnknown_30031C4 -_08014CE8: .4byte gUnknown_20228E0 -_08014CEC: - cmp r0, #6 - bne _08014DA8 -_08014CF0: - movs r0, #8 - strb r0, [r7, #8] - b _08014DA8 -_08014CF6: - ldr r0, _08014D08 - bl AddTextPrinterToWindow1 - movs r0, #0 - movs r1, #0 - bl sub_08011554 - b _08014DA8 - .align 2, 0 -_08014D08: .4byte gUnknown_82C09F8 -_08014D0C: - ldrb r0, [r7, #0xe] - movs r1, #0 - movs r2, #0 - bl DestroyListMenuTask - movs r0, #0 - bl CopyBgTilemapBufferToVram - ldrb r0, [r7, #0xd] - bl RemoveWindow - ldrb r0, [r7, #0xb] - bl RemoveWindow - ldrb r0, [r7, #0x11] - bl DestroyTask - ldr r0, [r7] - bl Free - ldr r0, [r7, #4] - bl Free - ldrb r0, [r7, #8] - adds r0, #1 - strb r0, [r7, #8] - b _08014DA8 -_08014D42: - adds r5, r7, #0 - adds r5, #9 - ldr r4, _08014D64 - bl sub_08011564 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl MG_PrintTextOnWindow1AndWaitButton - cmp r0, #0 - beq _08014DA8 - bl DestroyWirelessStatusIndicatorSprite - b _08014D72 - .align 2, 0 -_08014D64: .4byte gUnknown_82C0B1C -_08014D68: - bl DestroyWirelessStatusIndicatorSprite - ldr r0, _08014D84 - bl AddTextPrinterToWindow1 -_08014D72: - adds r0, r6, #0 - bl DestroyTask - bl sub_0800E894 - ldr r1, _08014D88 - movs r0, #5 - strh r0, [r1] - b _08014DA8 - .align 2, 0 -_08014D84: .4byte gUnknown_82C064C -_08014D88: .4byte gUnknown_2037290 -_08014D8C: - ldrb r0, [r7, #8] - adds r0, #1 - strb r0, [r7, #8] - bl sub_0800A8D4 - b _08014DA8 -_08014D98: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08014DA8 - adds r0, r6, #0 - bl DestroyTask -_08014DA8: - add sp, #0x10 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08014A50 - - thumb_func_start MEvent_CreateTask_CardOrNewsOverWireless -MEvent_CreateTask_CardOrNewsOverWireless: @ 0x08014DB0 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08014DE8 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08014DEC - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _08014DF0 - adds r1, r1, r0 - str r1, [r2] - ldr r0, _08014DF4 - str r1, [r0] - movs r2, #0 - strb r2, [r1, #8] - strb r2, [r1, #9] - subs r4, #6 - strb r4, [r1, #0x12] - ldr r0, _08014DF8 - strh r2, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08014DE8: .4byte sub_08014DFC -_08014DEC: .4byte gUnknown_20228E4 -_08014DF0: .4byte gUnknown_3005B68 -_08014DF4: .4byte gUnknown_3000DA4 -_08014DF8: .4byte gUnknown_2037290 - thumb_func_end MEvent_CreateTask_CardOrNewsOverWireless - - thumb_func_start sub_08014DFC -sub_08014DFC: @ 0x08014DFC - push {r4, r5, r6, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _08014E1C - ldr r5, [r0] - ldrb r0, [r5, #8] - cmp r0, #0xe - bls _08014E10 - b _0801510C -_08014E10: - lsls r0, r0, #2 - ldr r1, _08014E20 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08014E1C: .4byte gUnknown_20228E4 -_08014E20: .4byte _08014E24 -_08014E24: @ jump table - .4byte _08014E60 @ case 0 - .4byte _08014E8E @ case 1 - .4byte _08014EA0 @ case 2 - .4byte _08014F28 @ case 3 - .4byte _08014FE8 @ case 4 - .4byte _0801500C @ case 5 - .4byte _0801506C @ case 6 - .4byte _080150B0 @ case 7 - .4byte _0801506C @ case 8 - .4byte _080150A2 @ case 9 - .4byte _0801506C @ case 10 - .4byte _080150BC @ case 11 - .4byte _0801506C @ case 12 - .4byte _080150F0 @ case 13 - .4byte _080150FC @ case 14 -_08014E60: - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl sub_08010A74 - bl sub_0800AF5C - bl OpenLink - bl sub_08011748 - movs r0, #0x70 - bl AllocZeroed - str r0, [r5, #4] - movs r0, #0x80 - lsls r0, r0, #2 - bl AllocZeroed - str r0, [r5] - movs r0, #1 - strb r0, [r5, #8] - b _0801510C -_08014E8E: - ldr r0, _08014E9C - bl AddTextPrinterToWindow1 - movs r0, #2 - strb r0, [r5, #8] - b _0801510C - .align 2, 0 -_08014E9C: .4byte gUnknown_82C1C3C -_08014EA0: - ldr r0, [r5, #4] - movs r1, #4 - bl sub_080170B0 - ldr r0, [r5] - movs r1, #0x10 - bl sub_08017044 - ldr r0, [r5, #4] - ldrb r1, [r5, #0x12] - adds r1, #7 - bl sub_08016B00 - strb r0, [r5, #0x11] - ldrb r0, [r5, #0x13] - cmp r0, #0 - beq _08014F0C - ldr r0, _08014F18 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, #4] - bl sub_08019328 - lsls r0, r0, #0x10 - ldr r2, _08014F1C - ldr r1, [sp, #4] - ands r1, r2 - orrs r1, r0 - str r1, [sp, #4] - mov r0, sp - bl AddWindow - strb r0, [r5, #0xb] - ldrb r0, [r5, #0xb] - bl MG_DrawTextBorder - ldr r0, _08014F20 - adds r2, r0, #0 - ldr r1, _08014F24 - ldm r1!, {r3, r4, r6} - stm r2!, {r3, r4, r6} - ldm r1!, {r3, r4, r6} - stm r2!, {r3, r4, r6} - ldrb r1, [r5, #0xb] - strb r1, [r0, #0x10] - movs r1, #0 - movs r2, #0 - bl ListMenuInit - strb r0, [r5, #0xe] - movs r0, #0 - bl CopyBgTilemapBufferToVram -_08014F0C: - movs r0, #0 - strb r0, [r5, #0xf] - movs r0, #3 - strb r0, [r5, #8] - b _0801510C - .align 2, 0 -_08014F18: .4byte gUnknown_82C207C -_08014F1C: .4byte 0x0000FFFF -_08014F20: .4byte gUnknown_3006050 -_08014F24: .4byte gUnknown_82C210C -_08014F28: - bl sub_0801394C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _08014F4E - cmp r0, #1 - bne _08014F3E - movs r0, #2 - bl sub_080A306C -_08014F3E: - ldrb r0, [r5, #0x13] - cmp r0, #0 - bne _08014F46 - b _0801510C -_08014F46: - ldrb r0, [r5, #0xe] - bl RedrawListMenu - b _0801510C -_08014F4E: - ldrb r0, [r5, #0x13] - cmp r0, #0 - beq _08014F5A - ldrb r0, [r5, #0xe] - bl ListMenu_ProcessInput -_08014F5A: - ldrb r0, [r5, #0x14] - cmp r0, #0x78 - bls _08014FC8 - ldr r2, [r5] - ldrb r1, [r2, #0x1a] - movs r0, #3 - ands r0, r1 - cmp r0, #1 - bne _08014FDC - ldrb r1, [r2, #0xa] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _08014FDC - ldrb r1, [r5, #0x12] - adds r1, #7 - adds r0, r2, #0 - bl sub_08016A2C - cmp r0, #0 - beq _08014FBC - strb r4, [r5, #0xf] - strb r4, [r5, #0x14] - bl LoadWirelessStatusIndicatorSpriteGfx - movs r0, #0 - movs r1, #0 - bl CreateWirelessStatusIndicatorSprite - ldr r0, [r5] - adds r4, r0, #0 - adds r4, #0x10 - adds r0, #2 - bl sub_08015160 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl sub_08011AB4 - movs r0, #0x6e - bl sub_080A306C - movs r0, #4 - strb r0, [r5, #8] - b _08014FDC -_08014FBC: - movs r0, #0x16 - bl sub_080A306C - movs r0, #0xa - strb r0, [r5, #8] - b _08014FDC -_08014FC8: - ldr r0, _08014FE4 - ldrh r1, [r0, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08014FDC - movs r1, #0 - movs r0, #6 - strb r0, [r5, #8] - strb r1, [r5, #0x14] -_08014FDC: - ldrb r0, [r5, #0x14] - adds r0, #1 - strb r0, [r5, #0x14] - b _0801510C - .align 2, 0 -_08014FE4: .4byte gUnknown_3002360 -_08014FE8: - ldr r0, _08015004 - bl AddTextPrinterToWindow1 - ldr r0, _08015008 - ldrb r2, [r5, #0xf] - lsls r2, r2, #5 - ldr r1, [r5] - adds r1, r1, r2 - adds r1, #0x10 - bl StringCopy - movs r0, #5 - strb r0, [r5, #8] - b _0801510C - .align 2, 0 -_08015004: .4byte gUnknown_82C1CB8 -_08015008: .4byte gUnknown_2021C40 -_0801500C: - ldr r0, _08015044 - ldrb r0, [r0] - cmp r0, #0 - beq _0801502A - ldr r2, _08015048 - ldr r1, [r5] - ldrb r0, [r5, #0xf] - lsls r0, r0, #5 - adds r1, r1, r0 - ldrb r0, [r1, #0xa] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x19 - strb r0, [r2] - movs r0, #0xc - strb r0, [r5, #8] -_0801502A: - bl sub_08011564 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #5 - beq _08015056 - cmp r0, #5 - bgt _0801504C - cmp r0, #2 - bgt _0801510C - cmp r0, #1 - blt _0801510C - b _08015050 - .align 2, 0 -_08015044: .4byte gUnknown_30031C4 -_08015048: .4byte gUnknown_20228E0 -_0801504C: - cmp r0, #6 - bne _0801510C -_08015050: - movs r0, #8 - strb r0, [r5, #8] - b _0801510C -_08015056: - ldr r0, _08015068 - bl AddTextPrinterToWindow1 - movs r0, #0 - movs r1, #0 - bl sub_08011554 - b _0801510C - .align 2, 0 -_08015068: .4byte gUnknown_82C0AAC -_0801506C: - ldrb r0, [r5, #0x13] - cmp r0, #0 - beq _08015088 - ldrb r0, [r5, #0xe] - movs r1, #0 - movs r2, #0 - bl DestroyListMenuTask - movs r0, #0 - bl CopyBgTilemapBufferToVram - ldrb r0, [r5, #0xb] - bl RemoveWindow -_08015088: - ldrb r0, [r5, #0x11] - bl DestroyTask - ldr r0, [r5] - bl Free - ldr r0, [r5, #4] - bl Free - ldrb r0, [r5, #8] - adds r0, #1 - strb r0, [r5, #8] - b _0801510C -_080150A2: - adds r0, r5, #0 - adds r0, #9 - ldr r1, _080150AC - b _080150CA - .align 2, 0 -_080150AC: .4byte gUnknown_82C0AC8 -_080150B0: - adds r0, r5, #0 - adds r0, #9 - ldr r1, _080150B8 - b _080150CA - .align 2, 0 -_080150B8: .4byte gUnknown_82C066C -_080150BC: - adds r0, r5, #0 - adds r0, #9 - ldr r2, _080150E8 - ldrb r1, [r5, #0x12] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] -_080150CA: - bl MG_PrintTextOnWindow1AndWaitButton - cmp r0, #0 - beq _0801510C - bl DestroyWirelessStatusIndicatorSprite - adds r0, r4, #0 - bl DestroyTask - bl sub_0800E894 - ldr r1, _080150EC - movs r0, #5 - strh r0, [r1] - b _0801510C - .align 2, 0 -_080150E8: .4byte gUnknown_82C1D30 -_080150EC: .4byte gUnknown_2037290 -_080150F0: - ldrb r0, [r5, #8] - adds r0, #1 - strb r0, [r5, #8] - bl sub_0800A8D4 - b _0801510C -_080150FC: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801510C - adds r0, r4, #0 - bl DestroyTask -_0801510C: - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_08014DFC - - thumb_func_start UnionRoomSpecial -UnionRoomSpecial: @ 0x08015114 - push {r4, lr} - bl sub_08010A50 - ldr r0, _08015150 - movs r1, #0xa - bl CreateTask - ldr r4, _08015154 - movs r0, #0x89 - lsls r0, r0, #2 - bl AllocZeroed - str r0, [r4] - ldr r1, _08015158 - str r0, [r1] - movs r1, #0 - strb r1, [r0, #0x14] - strb r1, [r0, #0x16] - strh r1, [r0, #0x10] - strh r1, [r0, #0x12] - ldr r0, _0801515C - strh r1, [r0] - movs r0, #0xd0 - movs r1, #1 - bl sub_08199F54 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08015150: .4byte sub_080151E8 -_08015154: .4byte gUnknown_20228E4 -_08015158: .4byte gUnknown_3000DA8 -_0801515C: .4byte gUnknown_2037290 - thumb_func_end UnionRoomSpecial - - thumb_func_start sub_08015160 -sub_08015160: @ 0x08015160 - ldrb r1, [r0, #1] - lsls r1, r1, #8 - ldrb r0, [r0] - orrs r0, r1 - bx lr - .align 2, 0 - thumb_func_end sub_08015160 - - thumb_func_start sub_0801516C -sub_0801516C: @ 0x0801516C - push {lr} - adds r3, r1, #0 - ldr r1, _0801518C - ldr r2, [r1] - movs r1, #8 - strb r1, [r2, #0x14] - strb r0, [r2, #0x15] - ldr r0, _08015190 - cmp r3, r0 - beq _08015186 - adds r1, r3, #0 - bl StringExpandPlaceholders -_08015186: - pop {r0} - bx r0 - .align 2, 0 -_0801518C: .4byte gUnknown_20228E4 -_08015190: .4byte gUnknown_2021C7C - thumb_func_end sub_0801516C - - thumb_func_start sub_08015194 -sub_08015194: @ 0x08015194 - push {lr} - adds r2, r0, #0 - ldr r0, _080151B0 - ldr r1, [r0] - movs r0, #0x1a - strb r0, [r1, #0x14] - ldr r0, _080151B4 - cmp r2, r0 - beq _080151AC - adds r1, r2, #0 - bl StringExpandPlaceholders -_080151AC: - pop {r0} - bx r0 - .align 2, 0 -_080151B0: .4byte gUnknown_20228E4 -_080151B4: .4byte gUnknown_2021C7C - thumb_func_end sub_08015194 - - thumb_func_start sub_080151B8 -sub_080151B8: @ 0x080151B8 - push {lr} - ldr r3, _080151CC - ldr r1, [r0] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r3, #0 - bl memcpy - pop {r0} - bx r0 - .align 2, 0 -_080151CC: .4byte gUnknown_201FF00 - thumb_func_end sub_080151B8 - - thumb_func_start sub_080151D0 -sub_080151D0: @ 0x080151D0 - push {lr} - ldr r0, [r0] - ldr r1, _080151E4 - movs r2, #0x80 - lsls r2, r2, #1 - bl memcpy - pop {r0} - bx r0 - .align 2, 0 -_080151E4: .4byte gUnknown_201FF00 - thumb_func_end sub_080151D0 - - thumb_func_start sub_080151E8 -sub_080151E8: @ 0x080151E8 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r5, #0 - ldr r0, _08015214 - ldr r6, [r0] - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _08015218 - adds r7, r0, r1 - ldrb r0, [r6, #0x14] - cmp r0, #0x38 - bls _0801520A - bl _0801638C -_0801520A: - lsls r0, r0, #2 - ldr r1, _0801521C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08015214: .4byte gUnknown_20228E4 -_08015218: .4byte gUnknown_3005B68 -_0801521C: .4byte _08015220 -_08015220: @ jump table - .4byte _08015304 @ case 0 - .4byte _0801535C @ case 1 - .4byte _08015380 @ case 2 - .4byte _080153D0 @ case 3 - .4byte _080154AE @ case 4 - .4byte _08015964 @ case 5 - .4byte _0801575C @ case 6 - .4byte _08015964 @ case 7 - .4byte _08016378 @ case 8 - .4byte _08015CD4 @ case 9 - .4byte _08015DE0 @ case 10 - .4byte _08015BB4 @ case 11 - .4byte _08015BCE @ case 12 - .4byte _08015E30 @ case 13 - .4byte _08015E54 @ case 14 - .4byte _08015E5C @ case 15 - .4byte _08015E6C @ case 16 - .4byte _08015E9A @ case 17 - .4byte _08015EAE @ case 18 - .4byte _08015A3A @ case 19 - .4byte _08015AC0 @ case 20 - .4byte _08015ADE @ case 21 - .4byte _08015B52 @ case 22 - .4byte _080155E2 @ case 23 - .4byte _08015608 @ case 24 - .4byte _08015680 @ case 25 - .4byte _0801634C @ case 26 - .4byte _08015854 @ case 27 - .4byte _0801583C @ case 28 - .4byte _080158D8 @ case 29 - .4byte _08015732 @ case 30 - .4byte _080158AE @ case 31 - .4byte _080158A4 @ case 32 - .4byte _08015C64 @ case 33 - .4byte _08015C84 @ case 34 - .4byte _08015CC4 @ case 35 - .4byte _08015DE8 @ case 36 - .4byte _08015E24 @ case 37 - .4byte _080156FC @ case 38 - .4byte _08015C10 @ case 39 - .4byte _0801599C @ case 40 - .4byte _080159CC @ case 41 - .4byte _08015ED8 @ case 42 - .4byte _08015F6C @ case 43 - .4byte _080160B8 @ case 44 - .4byte _08016120 @ case 45 - .4byte _0801613C @ case 46 - .4byte _08015F88 @ case 47 - .4byte _08016144 @ case 48 - .4byte _0801624C @ case 49 - .4byte _08016280 @ case 50 - .4byte _08016308 @ case 51 - .4byte _0801603C @ case 52 - .4byte _08015FF0 @ case 53 - .4byte _08016004 @ case 54 - .4byte _0801609C @ case 55 - .4byte _080160EC @ case 56 -_08015304: - movs r0, #0x70 - bl AllocZeroed - str r0, [r6, #4] - movs r0, #0x70 - bl AllocZeroed - str r0, [r6, #0xc] - movs r0, #0x80 - lsls r0, r0, #1 - bl AllocZeroed - str r0, [r6] - movs r0, #0x20 - bl AllocZeroed - str r0, [r6, #8] - ldr r0, [r6] - movs r1, #8 - bl sub_08017044 - ldr r1, _08015358 - movs r0, #0x40 - strb r0, [r1] - ldr r0, [r6, #0xc] - ldr r1, [r6, #4] - movs r2, #9 - bl sub_08016900 - adds r1, r6, #0 - adds r1, #0x20 - strb r0, [r1] - adds r0, r6, #0 - adds r0, #0x88 - bl sub_080195B4 - bl sub_080199C8 - movs r0, #1 - bl _0801638A - .align 2, 0 -_08015358: .4byte gUnknown_20228E0 -_0801535C: - adds r0, r6, #0 - adds r0, #0x21 - movs r2, #0 - ldrsh r1, [r7, r2] - bl sub_0801990C - ldrh r0, [r7] - adds r0, #1 - strh r0, [r7] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #8 - beq _0801537A - bl _0801638C -_0801537A: - movs r0, #2 - bl _0801638A -_08015380: - movs r0, #0x40 - movs r1, #0 - movs r2, #0 - bl sub_08010A74 - ldr r2, _080153C8 - ldrh r0, [r2, #2] - ldrh r1, [r2, #0xa] - ldrh r2, [r2, #0xc] - bl sub_08010ABC - bl sub_0800AF5C - bl OpenLink - bl sub_08011770 - ldr r0, [r6, #8] - movs r1, #1 - bl sub_08017044 - ldr r0, [r6, #4] - movs r1, #4 - bl sub_080170B0 - ldr r0, [r6, #0xc] - movs r1, #4 - bl sub_080170B0 - ldr r1, _080153CC - movs r0, #0 - strh r0, [r1] - movs r0, #3 - bl _0801638A - .align 2, 0 -_080153C8: .4byte gUnknown_20228F4 -_080153CC: .4byte gUnknown_2037290 -_080153D0: - bl sub_081B1030 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #8 - beq _080153E8 - bl sub_081B1030 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #9 - bne _080154A8 -_080153E8: - ldr r4, _08015404 - ldrh r0, [r4] - cmp r0, #0 - beq _080154A8 - bl GetCursorSelectionMonId - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldrh r0, [r4] - cmp r0, #1 - beq _08015408 - cmp r0, #2 - beq _08015458 - b _08015496 - .align 2, 0 -_08015404: .4byte gUnknown_20228F4 -_08015408: - movs r0, #0x54 - movs r1, #0 - movs r2, #1 - bl sub_08010B80 - cmp r5, #5 - bls _08015434 - adds r0, r4, #0 - bl sub_08017B38 - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl sub_08010ABC - ldr r0, _08015430 - bl sub_08015194 - b _08015496 - .align 2, 0 -_08015430: .4byte gUnknown_82C1808 -_08015434: - bl GetCursorSelectionMonId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r4, #0 - bl sub_08017B5C - cmp r0, #0 - bne _08015454 - ldr r1, _08015450 - movs r0, #0x34 - bl sub_0801516C - b _08015496 - .align 2, 0 -_08015450: .4byte gUnknown_82C17CC -_08015454: - movs r0, #0x37 - b _08015494 -_08015458: - adds r0, r6, #0 - bl sub_080151D0 - ldrb r0, [r4, #8] - strh r0, [r7, #2] - cmp r5, #5 - bls _08015474 - ldr r0, _08015470 - bl sub_08015194 - b _08015496 - .align 2, 0 -_08015470: .4byte gUnknown_82C1830 -_08015474: - movs r0, #0x54 - movs r1, #0 - movs r2, #1 - bl sub_08010B80 - ldr r1, _080154A0 - movs r0, #0x44 - strb r0, [r1] - bl GetCursorSelectionMonId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r4, #0 - bl sub_08017BA4 - movs r0, #0x33 -_08015494: - strb r0, [r6, #0x14] -_08015496: - ldr r1, _080154A4 - movs r0, #0 - strh r0, [r1] - bl _0801638C - .align 2, 0 -_080154A0: .4byte gUnknown_20228E0 -_080154A4: .4byte gUnknown_20228F4 -_080154A8: - movs r0, #4 - bl _0801638A -_080154AE: - ldr r4, _080154DC - ldrh r0, [r4] - cmp r0, #0 - beq _08015512 - cmp r0, #9 - bne _080154E8 - movs r0, #0x54 - movs r1, #0 - movs r2, #1 - bl sub_08010B80 - movs r0, #2 - bl sub_080A306C - ldr r0, _080154E0 - ldr r1, _080154E4 - ldr r1, [r1] - bl StringCopy - movs r1, #0 - movs r0, #0x2a - b _0801550A - .align 2, 0 -_080154DC: .4byte gUnknown_2037290 -_080154E0: .4byte gUnknown_2021C40 -_080154E4: .4byte gUnknown_3005AF0 -_080154E8: - cmp r0, #0xb - bne _080154FC - movs r0, #0x54 - movs r1, #0 - movs r2, #1 - bl sub_08010B80 - movs r1, #0 - movs r0, #0x17 - b _0801550A -_080154FC: - movs r0, #0 - strh r0, [r7] - ldrh r0, [r4] - subs r0, #1 - strh r0, [r7, #2] - movs r1, #0 - movs r0, #0x18 -_0801550A: - strb r0, [r6, #0x14] - strh r1, [r4] - bl _0801638C -_08015512: - bl sub_080987F4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08015522 - bl _0801638C -_08015522: - ldr r0, _08015550 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08015588 - ldr r0, [r6] - adds r2, r7, #2 - adds r3, r6, #0 - adds r3, #0x21 - adds r1, r7, #0 - bl sub_08019D60 - cmp r0, #0 - beq _08015554 - movs r0, #5 - bl sub_080A306C - bl sub_08017C88 - movs r0, #0x18 - bl _0801638A - .align 2, 0 -_08015550: .4byte gUnknown_3002360 -_08015554: - bl sub_080173FC - cmp r0, #0 - beq _08015588 - movs r0, #0x54 - movs r1, #0 - movs r2, #1 - bl sub_08010B80 - movs r0, #2 - bl sub_080A306C - bl sub_08017C88 - ldr r0, _08015580 - ldr r1, _08015584 - ldr r1, [r1] - bl StringCopy - movs r0, #0x2d - bl _0801638A - .align 2, 0 -_08015580: .4byte gUnknown_2021C40 -_08015584: .4byte gUnknown_3005AF0 -_08015588: - bl sub_08016610 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - beq _080155AA - cmp r0, #2 - bgt _0801559E - cmp r0, #1 - beq _080155A4 - b _080155D8 -_0801559E: - cmp r0, #4 - beq _080155B2 - b _080155D8 -_080155A4: - movs r0, #2 - bl sub_080A306C -_080155AA: - adds r0, r6, #0 - bl sub_08019D2C - b _080155D8 -_080155B2: - movs r0, #0xb - strb r0, [r6, #0x14] - bl sub_08017C88 - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl sub_08010ABC - adds r0, r6, #0 - bl sub_08017C98 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0x53 - movs r2, #0 - bl sub_08010B80 -_080155D8: - adds r0, r6, #0 - bl sub_08019D3C - bl _0801638C -_080155E2: - ldr r0, _08015604 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080155F2 - bl _0801638C -_080155F2: - movs r0, #0x40 - movs r1, #0 - movs r2, #0 - bl sub_08010B80 - movs r0, #4 - bl _0801638A - .align 2, 0 -_08015604: .4byte sub_0809F30C -_08015608: - bl sub_08016B5C - movs r3, #2 - ldrsh r0, [r7, r3] - ldr r1, [r6] - bl sub_080177B8 - adds r4, r0, #0 - movs r0, #0x54 - movs r1, #0 - movs r2, #1 - bl sub_08010B80 - ldr r0, [r6] - ldrb r1, [r7] - ldrb r2, [r7, #2] - adds r3, r4, #0 - bl sub_08017484 - cmp r0, #1 - beq _0801564C - cmp r0, #1 - bgt _0801563E - cmp r0, #0 - beq _08015646 - bl _0801638C -_0801563E: - cmp r0, #2 - beq _08015670 - bl _0801638C -_08015646: - movs r0, #0x1a - bl _0801638A -_0801564C: - movs r1, #2 - ldrsh r0, [r7, r1] - lsls r0, r0, #5 - ldr r1, [r6] - adds r1, r1, r0 - adds r0, r1, #0 - adds r0, #0x10 - ldr r2, _0801566C - ldrb r2, [r2] - bl sub_08011C74 - strh r5, [r6, #0x12] - movs r0, #0x19 - bl _0801638A - .align 2, 0 -_0801566C: .4byte gUnknown_20228E0 -_08015670: - ldr r1, _0801567C - movs r0, #0x13 - bl sub_0801516C - bl _0801638C - .align 2, 0 -_0801567C: .4byte gUnknown_2021C7C -_08015680: - bl sub_08016B5C - bl sub_08011564 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #1 - blt _080156C6 - cmp r4, #2 - ble _080156A2 - cmp r4, #4 - bne _080156C6 - movs r0, #1 - bl sub_08017C48 - strb r4, [r6, #0x14] - b _080156C6 -_080156A2: - bl sub_0801167C - cmp r0, #1 - bne _080156B8 - ldr r0, _080156B4 - bl sub_08015194 - b _080156C0 - .align 2, 0 -_080156B4: .4byte gUnknown_82C0FE0 -_080156B8: - ldr r1, _080156E8 - movs r0, #0x1e - bl sub_0801516C -_080156C0: - ldr r1, _080156EC - movs r0, #0x40 - strb r0, [r1] -_080156C6: - ldr r0, _080156F0 - ldrb r0, [r0] - cmp r0, #0 - bne _080156D2 - bl _0801638C -_080156D2: - ldr r0, _080156F4 - movs r1, #1 - bl sub_08013EEC - ldr r0, _080156F8 - movs r1, #5 - bl CreateTask - movs r0, #0x26 - bl _0801638A - .align 2, 0 -_080156E8: .4byte gUnknown_82C0FE0 -_080156EC: .4byte gUnknown_20228E0 -_080156F0: .4byte gUnknown_30031C4 -_080156F4: .4byte gUnknown_202257C -_080156F8: .4byte sub_08013BE8 -_080156FC: - ldr r0, _08015720 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801570C - bl _0801638C -_0801570C: - ldr r0, _08015724 - ldrb r0, [r0] - cmp r0, #0x44 - bne _0801572C - ldr r1, _08015728 - movs r0, #0x1f - bl sub_0801516C - bl _0801638C - .align 2, 0 -_08015720: .4byte sub_08013BE8 -_08015724: .4byte gUnknown_20228E0 -_08015728: .4byte gUnknown_82C0B80 -_0801572C: - movs r0, #5 - bl _0801638A -_08015732: - ldr r0, _08015758 - ldrb r0, [r0] - cmp r0, #0 - beq _0801573E - bl _0801638C -_0801573E: - movs r0, #0 - bl sub_08017C48 - movs r2, #0 - ldrsh r0, [r7, r2] - movs r3, #2 - ldrsh r1, [r7, r3] - ldr r2, [r6] - bl sub_08019E88 - movs r0, #2 - bl _0801638A - .align 2, 0 -_08015758: .4byte gUnknown_30031C4 -_0801575C: - adds r0, r6, #0 - adds r0, #0x16 - adds r1, r6, #0 - adds r1, #0x1b - adds r2, r6, #0 - adds r2, #0x1c - ldr r3, _08015790 - ldr r4, _08015794 - str r4, [sp] - bl sub_08016C88 - adds r5, r0, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r5, r0 - bne _08015780 - bl _0801638C -_08015780: - ldr r0, _08015798 - ldrb r0, [r0] - cmp r0, #0 - bne _0801579C - movs r0, #0x1c - bl _0801638A - .align 2, 0 -_08015790: .4byte gUnknown_82C2124 -_08015794: .4byte gUnknown_82C214C -_08015798: .4byte gUnknown_30031C4 -_0801579C: - adds r1, r6, #0 - adds r1, #0x80 - movs r0, #0 - strh r0, [r1] - movs r2, #2 - ldrsh r0, [r7, r2] - ldr r1, [r6] - bl sub_080177B8 - movs r0, #2 - rsbs r0, r0, #0 - cmp r5, r0 - beq _080157BA - cmp r5, #0x40 - bne _080157EC -_080157BA: - adds r0, r6, #0 - adds r0, #0x4c - movs r1, #0x40 - strh r1, [r0] - bl sub_0800F934 - ldr r0, _080157E0 - ldr r2, _080157E4 - ldr r1, _080157E8 - ldrb r1, [r1, #0x13] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl StringCopy - movs r0, #0x20 - bl _0801638A - .align 2, 0 -_080157E0: .4byte gUnknown_2021C7C -_080157E4: .4byte gUnknown_82C12BC -_080157E8: .4byte gUnknown_20226A0 -_080157EC: - ldr r0, _08015814 - strb r5, [r0] - ldr r1, _08015818 - lsrs r0, r5, #8 - strb r0, [r1] - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x41 - bne _08015820 - bl sub_08017AE0 - cmp r0, #0 - bne _08015820 - ldr r1, _0801581C - movs r0, #5 - bl sub_0801516C - bl _0801638C - .align 2, 0 -_08015814: .4byte gUnknown_20228E0 -_08015818: .4byte gUnknown_20228E1 -_0801581C: .4byte gUnknown_82C12E4 -_08015820: - ldr r0, _08015838 - ldrb r0, [r0] - movs r1, #0x40 - orrs r1, r0 - adds r0, r6, #0 - adds r0, #0x4c - strh r1, [r0] - bl sub_0800F934 - movs r0, #0x1b - bl _0801638A - .align 2, 0 -_08015838: .4byte gUnknown_20228E0 -_0801583C: - ldr r0, _0801584C - ldr r1, _08015850 - bl StringCopy - movs r0, #0x24 - bl _0801638A - .align 2, 0 -_0801584C: .4byte gUnknown_2021C7C -_08015850: .4byte gUnknown_82C12C4 -_08015854: - adds r0, r6, #0 - bl sub_08017A94 - movs r3, #2 - ldrsh r0, [r7, r3] - ldr r1, [r6] - bl sub_080177B8 - adds r4, r0, #0 - adds r0, r6, #0 - adds r0, #0x4c - ldrh r1, [r0] - movs r0, #0x3f - ands r0, r1 - bl sub_08017440 - adds r5, r0, #0 - adds r0, r6, #0 - adds r0, #0x16 - ldr r3, _080158A0 - lsls r1, r5, #2 - lsls r2, r4, #4 - adds r1, r1, r2 - adds r1, r1, r3 - ldr r1, [r1] - bl PrintOnTextbox - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08015894 - bl _0801638C -_08015894: - movs r0, #0 - strh r0, [r7, #6] - movs r0, #0x1d - bl _0801638A - .align 2, 0 -_080158A0: .4byte gUnknown_82C10A4 -_080158A4: - bl sub_0800A7F8 - movs r0, #0x24 - bl _0801638A -_080158AE: - adds r0, r6, #0 - adds r0, #0x4c - movs r1, #0x44 - strh r1, [r0] - ldr r2, _080158D4 - ldrh r1, [r2, #0xe] - adds r3, r6, #0 - adds r3, #0x4e - strh r1, [r3] - ldrh r2, [r2, #0x10] - adds r1, r6, #0 - adds r1, #0x50 - strh r2, [r1] - bl sub_0800F934 - movs r0, #0x1d - bl _0801638A - .align 2, 0 -_080158D4: .4byte gUnknown_20228F4 -_080158D8: - ldr r0, _080158F0 - ldrb r0, [r0] - cmp r0, #0 - bne _080158FC - ldr r0, _080158F4 - ldr r1, _080158F8 - bl StringCopy - movs r0, #0x1c - bl _0801638A - .align 2, 0 -_080158F0: .4byte gUnknown_30031C4 -_080158F4: .4byte gUnknown_2021C7C -_080158F8: .4byte gUnknown_82C12C4 -_080158FC: - adds r0, r6, #0 - bl sub_08017A94 - adds r0, r6, #0 - adds r0, #0x80 - ldrh r0, [r0] - cmp r0, #0x51 - bne _08015932 - ldr r0, _08015924 - ldrb r0, [r0] - cmp r0, #8 - bne _0801592C - ldr r0, _08015928 - adds r1, r6, #0 - movs r2, #0 - bl sub_08017CDC - movs r0, #0x28 - bl _0801638A - .align 2, 0 -_08015924: .4byte gUnknown_20228E0 -_08015928: .4byte gUnknown_2021C7C -_0801592C: - movs r0, #0xd - bl _0801638A -_08015932: - cmp r0, #0x52 - beq _0801593A - bl _0801638C -_0801593A: - movs r5, #0 - movs r0, #0x20 - strb r0, [r6, #0x14] - ldr r0, _08015958 - ldr r4, _0801595C - ldrb r2, [r4] - movs r1, #0x40 - orrs r1, r2 - ldr r2, _08015960 - ldrb r2, [r2, #0x13] - bl sub_0801785C - strb r5, [r4] - bl _0801638C - .align 2, 0 -_08015958: .4byte gUnknown_2021C7C -_0801595C: .4byte gUnknown_20228E0 -_08015960: .4byte gUnknown_20226A0 -_08015964: - movs r0, #2 - ldrsh r1, [r7, r0] - lsls r1, r1, #5 - ldr r0, [r6] - adds r0, r0, r1 - bl StartFieldEffectForEventObject - adds r5, r0, #0 - movs r1, #2 - ldrsh r0, [r7, r1] - ldr r1, [r6] - bl sub_080177B8 - adds r4, r0, #0 - ldr r2, _08015998 - lsls r0, r4, #2 - lsls r1, r5, #3 - adds r0, r0, r1 - adds r0, r0, r2 - ldr r1, [r0] - movs r0, #6 - bl sub_0801516C - bl _0801638C - .align 2, 0 -_08015998: .4byte gUnknown_82C0D3C -_0801599C: - adds r0, r6, #0 - adds r0, #0x16 - ldr r1, _080159C8 - bl PrintOnTextbox - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080159B0 - bl _0801638C -_080159B0: - movs r4, #0 - movs r0, #0x29 - strb r0, [r6, #0x14] - bl sub_0800A8D4 - adds r0, r6, #0 - adds r0, #0x80 - strh r4, [r0] - adds r0, #2 - strh r4, [r0] - bl _0801638C - .align 2, 0 -_080159C8: .4byte gUnknown_2021C7C -_080159CC: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080159DA - bl _0801638C -_080159DA: - bl GetMultiplayerId - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08015A34 - ldr r5, _08015A24 - bl GetMultiplayerId - movs r1, #1 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - ldr r4, _08015A28 - adds r1, r1, r4 - adds r0, r5, #0 - bl StringCopy - ldrh r0, [r4, #0x18] - adds r4, #0x1c - adds r1, r4, #0 - bl sub_0800E004 - adds r5, r0, #0 - ldr r0, _08015A2C - ldr r2, _08015A30 - lsls r1, r5, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl StringExpandPlaceholders - movs r0, #0x21 - bl _0801638A - .align 2, 0 -_08015A24: .4byte gUnknown_2021C40 -_08015A28: .4byte gUnknown_20226A8 -_08015A2C: .4byte gUnknown_2021C7C -_08015A30: .4byte gUnknown_82C0DE4 -_08015A34: - movs r0, #7 - bl _0801638A -_08015A3A: - adds r0, r6, #0 - adds r0, #0x16 - movs r1, #0 - bl sub_08016BC8 - lsls r0, r0, #0x18 - asrs r5, r0, #0x18 - cmp r5, #0 - beq _08015A64 - cmp r5, #0 - bgt _08015A5C - movs r0, #1 - rsbs r0, r0, #0 - cmp r5, r0 - beq _08015AA0 - bl _0801638C -_08015A5C: - cmp r5, #1 - beq _08015AA0 - bl _0801638C -_08015A64: - movs r0, #0 - bl CopyBgTilemapBufferToVram - ldr r4, _08015A9C - movs r0, #0x45 - strb r0, [r4] - movs r0, #0x45 - movs r1, #0 - movs r2, #1 - bl sub_08010B80 - movs r2, #2 - ldrsh r0, [r7, r2] - lsls r0, r0, #5 - ldr r1, [r6] - adds r1, r1, r0 - adds r0, r1, #0 - adds r0, #0x10 - ldrb r2, [r4] - bl sub_08011C74 - ldrh r0, [r7, #2] - strh r0, [r6, #0x12] - movs r0, #0x14 - strb r0, [r6, #0x14] - strh r5, [r7, #6] - bl _0801638C - .align 2, 0 -_08015A9C: .4byte gUnknown_20228E0 -_08015AA0: - movs r3, #2 - ldrsh r0, [r7, r3] - ldr r1, [r6] - bl sub_080177B8 - adds r4, r0, #0 - ldr r1, _08015ABC - lsls r0, r4, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl sub_08015194 - bl _0801638C - .align 2, 0 -_08015ABC: .4byte gUnknown_82C1364 -_08015AC0: - ldrh r0, [r7, #4] - adds r0, #1 - strh r0, [r7, #4] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3c - bgt _08015AD2 - bl _0801638C -_08015AD2: - movs r1, #0 - movs r0, #0x15 - strb r0, [r6, #0x14] - strh r1, [r7, #4] - bl _0801638C -_08015ADE: - bl sub_08011564 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - beq _08015B44 - cmp r4, #3 - ble _08015AFC - cmp r4, #4 - bne _08015B48 - movs r0, #1 - bl sub_08017C48 - strb r4, [r6, #0x14] - b _08015B48 -_08015AFC: - cmp r4, #1 - blt _08015B48 - movs r1, #2 - ldrsh r0, [r7, r1] - ldr r1, [r6] - bl sub_080177B8 - adds r4, r0, #0 - movs r0, #0x54 - movs r1, #0 - movs r2, #1 - bl sub_08010B80 - bl sub_0801167C - cmp r0, #1 - bne _08015B30 - ldr r0, _08015B2C - lsls r1, r4, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl sub_08015194 - b _08015B48 - .align 2, 0 -_08015B2C: .4byte gUnknown_82C13C4 -_08015B30: - ldr r0, _08015B40 - lsls r1, r4, #2 - adds r1, r1, r0 - ldr r1, [r1] - movs r0, #0x1e - bl sub_0801516C - b _08015B48 - .align 2, 0 -_08015B40: .4byte gUnknown_82C13C4 -_08015B44: - movs r0, #0x16 - strb r0, [r6, #0x14] -_08015B48: - ldrh r0, [r7, #6] - adds r0, #1 - strh r0, [r7, #6] - bl _0801638C -_08015B52: - bl sub_08011570 - cmp r0, #0 - beq _08015B9A - movs r2, #2 - ldrsh r0, [r7, r2] - ldr r1, [r6] - bl sub_080177B8 - adds r4, r0, #0 - movs r0, #0x54 - movs r1, #0 - movs r2, #1 - bl sub_08010B80 - bl sub_0801167C - cmp r0, #1 - bne _08015B8C - ldr r0, _08015B88 - lsls r1, r4, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl sub_08015194 - b _08015B9A - .align 2, 0 -_08015B88: .4byte gUnknown_82C13C4 -_08015B8C: - ldr r0, _08015BAC - lsls r1, r4, #2 - adds r1, r1, r0 - ldr r1, [r1] - movs r0, #0x1e - bl sub_0801516C -_08015B9A: - ldr r0, _08015BB0 - ldrb r0, [r0] - cmp r0, #0 - bne _08015BA6 - bl _0801638C -_08015BA6: - movs r0, #0x10 - bl _0801638A - .align 2, 0 -_08015BAC: .4byte gUnknown_82C13C4 -_08015BB0: .4byte gUnknown_30031C4 -_08015BB4: - movs r0, #0x49 - bl sub_080A306C - bl sub_0800EA3C - movs r0, #0 - movs r1, #0xc - strb r1, [r6, #0x14] - adds r1, r6, #0 - adds r1, #0x82 - strh r0, [r1] - bl _0801638C -_08015BCE: - bl sub_08011570 - cmp r0, #0 - beq _08015BE2 - movs r0, #0 - bl sub_08017C48 - movs r0, #2 - bl _0801638A -_08015BE2: - ldr r0, _08015C04 - ldrb r0, [r0] - cmp r0, #0 - bne _08015BEE - bl _0801638C -_08015BEE: - ldr r0, _08015C08 - movs r1, #1 - bl sub_08013EEC - ldr r0, _08015C0C - movs r1, #5 - bl CreateTask - movs r0, #0x27 - b _0801638A - .align 2, 0 -_08015C04: .4byte gUnknown_30031C4 -_08015C08: .4byte gUnknown_202257C -_08015C0C: .4byte sub_08013BE8 -_08015C10: - adds r0, r6, #0 - bl sub_080163B0 - ldr r0, _08015C50 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08015C24 - b _0801638C -_08015C24: - movs r0, #0x21 - strb r0, [r6, #0x14] - ldr r0, _08015C54 - ldr r4, _08015C58 - adds r1, r4, #0 - bl StringCopy - adds r0, r4, #0 - subs r0, #0x24 - ldrh r0, [r0, #0x20] - adds r1, r4, #0 - bl sub_0800E004 - adds r5, r0, #0 - ldr r0, _08015C5C - ldr r2, _08015C60 - lsls r1, r5, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl StringExpandPlaceholders - b _0801638C - .align 2, 0 -_08015C50: .4byte sub_08013BE8 -_08015C54: .4byte gUnknown_2021C40 -_08015C58: .4byte gUnknown_20226C4 -_08015C5C: .4byte gUnknown_2021C7C -_08015C60: .4byte gUnknown_82C0DB8 -_08015C64: - adds r0, r6, #0 - bl sub_080163B0 - adds r0, r6, #0 - adds r0, #0x16 - ldr r1, _08015C80 - bl PrintOnTextbox - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08015C7C - b _0801638C -_08015C7C: - movs r0, #0x22 - b _0801638A - .align 2, 0 -_08015C80: .4byte gUnknown_2021C7C -_08015C84: - adds r0, r6, #0 - bl sub_080163B0 - adds r0, r6, #0 - bl sub_080163F0 - cmp r0, #0 - bne _08015C96 - b _0801638C -_08015C96: - ldr r0, _08015CB8 - ldrh r1, [r0, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08015CA4 - b _0801638C -_08015CA4: - movs r0, #1 - bl sub_080118CC - ldr r0, _08015CBC - ldr r1, _08015CC0 - bl StringCopy - movs r0, #0x24 - b _0801638A - .align 2, 0 -_08015CB8: .4byte gUnknown_3002360 -_08015CBC: .4byte gUnknown_2021C7C -_08015CC0: .4byte gUnknown_82C0F04 -_08015CC4: - ldr r1, _08015CD0 - movs r0, #9 - bl sub_0801516C - b _0801638C - .align 2, 0 -_08015CD0: .4byte gUnknown_2021C7C -_08015CD4: - adds r0, r6, #0 - adds r0, #0x16 - movs r1, #0 - bl sub_08016BC8 - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _08015CFA - cmp r1, #0 - bgt _08015CF4 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _08015DBA - b _0801638C -_08015CF4: - cmp r1, #1 - beq _08015DBA - b _0801638C -_08015CFA: - adds r0, r6, #0 - adds r0, #0x4c - movs r1, #0x51 - strh r1, [r0] - ldr r1, _08015D28 - ldrb r1, [r1] - adds r5, r0, #0 - cmp r1, #0x45 - bne _08015D2C - movs r4, #0x40 - orrs r4, r1 - movs r0, #1 - bl sub_08010AFC - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - movs r2, #0 - bl sub_08010B80 - b _08015D4A - .align 2, 0 -_08015D28: .4byte gUnknown_20228E0 -_08015D2C: - movs r0, #0x40 - adds r4, r1, #0 - orrs r4, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - bl sub_08010AFC - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - movs r2, #1 - bl sub_08010B80 -_08015D4A: - ldr r1, [r6, #8] - movs r0, #0 - strb r0, [r1, #0x1b] - strh r0, [r7, #6] - ldr r0, _08015D7C - ldrb r0, [r0] - cmp r0, #0x41 - bne _08015D92 - bl sub_08017AE0 - cmp r0, #0 - bne _08015D88 - movs r0, #0x52 - strh r0, [r5] - adds r0, r5, #0 - bl sub_0800F934 - movs r0, #0xa - strb r0, [r6, #0x14] - ldr r0, _08015D80 - ldr r1, _08015D84 - bl StringCopy - b _0801638C - .align 2, 0 -_08015D7C: .4byte gUnknown_20228E0 -_08015D80: .4byte gUnknown_2021C7C -_08015D84: .4byte gUnknown_82C1310 -_08015D88: - adds r0, r5, #0 - bl sub_0800F934 - movs r0, #0xd - b _0801638A -_08015D92: - cmp r0, #0x48 - bne _08015DB0 - adds r0, r5, #0 - bl sub_0800F934 - ldr r0, _08015DAC - adds r1, r6, #0 - movs r2, #1 - bl sub_08017CDC - movs r0, #0x28 - b _0801638A - .align 2, 0 -_08015DAC: .4byte gUnknown_2021C7C -_08015DB0: - adds r0, r5, #0 - bl sub_0800F934 - movs r0, #0xd - b _0801638A -_08015DBA: - adds r0, r6, #0 - adds r0, #0x4c - movs r1, #0x52 - strh r1, [r0] - bl sub_0800F934 - movs r0, #0xa - strb r0, [r6, #0x14] - ldr r0, _08015DD8 - ldr r1, _08015DDC - ldrb r1, [r1] - bl sub_08012B78 - b _0801638C - .align 2, 0 -_08015DD8: .4byte gUnknown_2021C7C -_08015DDC: .4byte gUnknown_20228E0 -_08015DE0: - bl sub_0800A7F8 - movs r0, #0x24 - b _0801638A -_08015DE8: - ldr r0, _08015E18 - ldrb r4, [r0] - cmp r4, #0 - beq _08015DF2 - b _0801638C -_08015DF2: - ldr r1, _08015E1C - movs r0, #0x40 - strb r0, [r1] - ldr r1, _08015E20 - movs r0, #0x25 - bl sub_0801516C - adds r0, r6, #0 - adds r0, #0x4c - movs r1, #0 - movs r2, #0xc - bl memset - adds r0, r6, #0 - adds r0, #0x82 - strh r4, [r0] - subs r0, #2 - strh r4, [r0] - b _0801638C - .align 2, 0 -_08015E18: .4byte gUnknown_30031C4 -_08015E1C: .4byte gUnknown_20228E0 -_08015E20: .4byte gUnknown_2021C7C -_08015E24: - movs r0, #2 - strb r0, [r6, #0x14] - movs r0, #0 - bl sub_08017C48 - b _0801638C -_08015E30: - ldr r4, _08015E4C - ldr r0, _08015E50 - ldrb r0, [r0] - movs r1, #0x40 - orrs r1, r0 - adds r0, r4, #0 - bl sub_080178C0 - movs r0, #0xe - adds r1, r4, #0 - bl sub_0801516C - b _0801638C - .align 2, 0 -_08015E4C: .4byte gUnknown_2021C7C -_08015E50: .4byte gUnknown_20228E0 -_08015E54: - bl sub_0800A8D4 - movs r0, #0xf - b _0801638A -_08015E5C: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08015E68 - b _0801638C -_08015E68: - movs r0, #0x10 - b _0801638A -_08015E6C: - ldr r0, [r6, #8] - bl Free - ldr r0, [r6] - bl Free - ldr r0, [r6, #0xc] - bl Free - ldr r0, [r6, #4] - bl Free - adds r0, r6, #0 - adds r0, #0x20 - ldrb r0, [r0] - bl DestroyTask - adds r0, r6, #0 - adds r0, #0x21 - bl sub_080199A0 - movs r0, #0x11 - b _0801638A -_08015E9A: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - movs r0, #0x12 - b _0801638A -_08015EAE: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08015EBA - b _0801638C -_08015EBA: - bl sub_080198D8 - adds r0, r4, #0 - bl DestroyTask - ldr r0, _08015ED4 - ldr r0, [r0] - bl Free - bl sub_080144E0 - b _0801638C - .align 2, 0 -_08015ED4: .4byte gUnknown_20228E4 -_08015ED8: - bl sub_0800F29C - ldrh r1, [r0, #8] - ldr r4, _08015EEC - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - bne _08015EF0 - movs r0, #0x2b - b _0801638A - .align 2, 0 -_08015EEC: .4byte 0x000003FF -_08015EF0: - bl sub_0800F29C - ldrh r1, [r0, #8] - adds r0, r4, #0 - ands r0, r1 - movs r1, #0xce - lsls r1, r1, #1 - cmp r0, r1 - bne _08015F14 - ldr r0, _08015F0C - ldr r1, _08015F10 - bl StringCopy - b _08015F4C - .align 2, 0 -_08015F0C: .4byte gUnknown_2021C7C -_08015F10: .4byte gUnknown_82C1864 -_08015F14: - ldr r4, _08015F58 - bl sub_0800F29C - ldrh r0, [r0, #8] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - ldr r0, _08015F5C - adds r1, r1, r0 - adds r0, r4, #0 - bl StringCopy - ldr r4, _08015F60 - bl sub_0800F29C - ldrb r1, [r0, #0xb] - lsrs r1, r1, #1 - adds r0, r4, #0 - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - ldr r0, _08015F64 - ldr r1, _08015F68 - bl StringExpandPlaceholders -_08015F4C: - ldr r1, _08015F64 - movs r0, #0x2c - bl sub_0801516C - b _0801638C - .align 2, 0 -_08015F58: .4byte gUnknown_2021C40 -_08015F5C: .4byte gUnknown_82EA31C -_08015F60: .4byte gUnknown_2021C54 -_08015F64: .4byte gUnknown_2021C7C -_08015F68: .4byte gUnknown_82C1844 -_08015F6C: - adds r0, r6, #0 - adds r0, #0x16 - ldr r1, _08015F84 - bl PrintOnTextbox - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08015F7E - b _0801638C -_08015F7E: - movs r0, #0x2f - b _0801638A - .align 2, 0 -_08015F84: .4byte gUnknown_82C169C -_08015F88: - adds r0, r6, #0 - adds r0, #0x16 - adds r1, r6, #0 - adds r1, #0x1d - adds r2, r6, #0 - adds r2, #0x1e - ldr r3, _08015FC0 - ldr r4, _08015FC4 - str r4, [sp] - bl sub_08016C88 - adds r5, r0, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r5, r0 - bne _08015FAA - b _0801638C -_08015FAA: - subs r0, #1 - cmp r5, r0 - beq _08015FB4 - cmp r5, #3 - bne _08015FC8 -_08015FB4: - movs r0, #4 - strb r0, [r6, #0x14] - movs r0, #1 - bl sub_08017C48 - b _0801638C - .align 2, 0 -_08015FC0: .4byte gUnknown_82C2164 -_08015FC4: .4byte gUnknown_82C2184 -_08015FC8: - cmp r5, #1 - beq _08015FD2 - cmp r5, #2 - beq _08015FE0 - b _0801638C -_08015FD2: - ldr r1, _08015FDC - movs r0, #0x35 - bl sub_0801516C - b _0801638C - .align 2, 0 -_08015FDC: .4byte gUnknown_82C17E8 -_08015FE0: - ldr r1, _08015FEC - movs r0, #0x2f - bl sub_0801516C - b _0801638C - .align 2, 0 -_08015FEC: .4byte gUnknown_82C16E0 -_08015FF0: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - movs r0, #0x36 - b _0801638A -_08016004: - ldr r0, _08016028 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08016012 - b _0801638C -_08016012: - ldr r1, _0801602C - movs r0, #1 - strh r0, [r1] - ldr r1, _08016030 - ldr r0, _08016034 - str r0, [r1] - ldr r1, _08016038 - movs r0, #8 - bl sub_081B85A4 - b _0801638C - .align 2, 0 -_08016028: .4byte gUnknown_2037C74 -_0801602C: .4byte gUnknown_20228F4 -_08016030: .4byte gUnknown_3005B0C -_08016034: .4byte sub_080AEA24 -_08016038: .4byte sub_08085A30 -_0801603C: - adds r0, r6, #0 - adds r0, #0x16 - adds r1, r6, #0 - adds r1, #0x1d - adds r2, r6, #0 - adds r2, #0x1e - ldr r3, _08016080 - ldr r4, _08016084 - str r4, [sp] - bl sub_08016C88 - adds r5, r0, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r5, r0 - bne _0801605E - b _0801638C -_0801605E: - subs r0, #1 - cmp r5, r0 - beq _08016068 - cmp r5, #0x12 - bne _08016090 -_08016068: - ldr r0, _08016088 - bl sub_08017B38 - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl sub_08010ABC - ldr r0, _0801608C - bl sub_08015194 - b _0801638C - .align 2, 0 -_08016080: .4byte gUnknown_82C219C -_08016084: .4byte gUnknown_82C2234 -_08016088: .4byte gUnknown_20228F4 -_0801608C: .4byte gUnknown_82C1808 -_08016090: - ldr r0, _08016098 - strh r5, [r0, #2] - movs r0, #0x37 - b _0801638A - .align 2, 0 -_08016098: .4byte gUnknown_20228F4 -_0801609C: - ldr r2, _080160B0 - ldrh r0, [r2, #2] - ldrh r1, [r2, #0xa] - ldrh r2, [r2, #0xc] - bl sub_08010ABC - ldr r0, _080160B4 - bl sub_08015194 - b _0801638C - .align 2, 0 -_080160B0: .4byte gUnknown_20228F4 -_080160B4: .4byte gUnknown_82C181C -_080160B8: - adds r0, r6, #0 - adds r0, #0x16 - movs r1, #0 - bl sub_08016BC8 - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _080160DE - cmp r1, #0 - bgt _080160D8 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _080160E2 - b _0801638C -_080160D8: - cmp r1, #1 - beq _080160E2 - b _0801638C -_080160DE: - movs r0, #0x38 - b _0801638A -_080160E2: - movs r0, #1 - bl sub_08017C48 - movs r0, #4 - b _0801638A -_080160EC: - adds r0, r6, #0 - adds r0, #0x16 - ldr r1, _08016118 - bl PrintOnTextbox - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080160FE - b _0801638C -_080160FE: - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl sub_08010ABC - ldr r0, _0801611C - bl sub_08017B38 - movs r0, #1 - bl sub_08017C48 - movs r0, #4 - b _0801638A - .align 2, 0 -_08016118: .4byte gUnknown_82C1880 -_0801611C: .4byte gUnknown_20228F4 -_08016120: - adds r0, r6, #0 - adds r0, #0x16 - ldr r1, _08016138 - bl PrintOnTextbox - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08016132 - b _0801638C -_08016132: - movs r0, #0x2e - b _0801638A - .align 2, 0 -_08016138: .4byte gUnknown_82C1688 -_0801613C: - bl sub_08016E74 - movs r0, #0x30 - b _0801638A -_08016144: - adds r0, r6, #0 - adds r0, #0x16 - adds r1, r6, #0 - adds r1, #0x1d - adds r2, r6, #0 - adds r2, #0x4a - adds r3, r6, #0 - adds r3, #0x1e - ldr r4, _08016184 - str r4, [sp] - ldr r4, _08016188 - str r4, [sp, #4] - ldr r4, [r6] - str r4, [sp, #8] - bl MainMenu_FormatSavegameBadges - adds r5, r0, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r5, r0 - bne _08016170 - b _0801638C -_08016170: - subs r0, #1 - cmp r5, r0 - beq _0801617A - cmp r5, #8 - bne _0801618C -_0801617A: - movs r0, #1 - bl sub_08017C48 - movs r0, #4 - b _0801638A - .align 2, 0 -_08016184: .4byte gUnknown_82C2254 -_08016188: .4byte gUnknown_82C22AC -_0801618C: - bl sub_08016E74 - ldr r1, [r6] - lsls r4, r5, #5 - adds r1, r1, r4 - ldrb r0, [r1, #9] - lsrs r0, r0, #2 - ldrh r1, [r1, #8] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x16 - bl sub_080177C4 - cmp r0, #1 - beq _080161D8 - cmp r0, #1 - bgt _080161B2 - cmp r0, #0 - beq _080161B8 - b _0801638C -_080161B2: - cmp r0, #2 - beq _08016210 - b _0801638C -_080161B8: - ldr r0, _080161D0 - ldr r1, [r6] - adds r1, r1, r4 - adds r1, #0x10 - bl StringCopy - ldr r1, _080161D4 - movs r0, #0x31 - bl sub_0801516C - strh r5, [r7, #2] - b _0801638C - .align 2, 0 -_080161D0: .4byte gUnknown_2021C40 -_080161D4: .4byte gUnknown_82C18CC -_080161D8: - ldr r0, _08016200 - ldr r1, [r6] - adds r1, r1, r4 - adds r1, #0x10 - bl StringCopy - ldr r0, _08016204 - ldr r1, [r6] - adds r1, r1, r4 - ldrb r2, [r1, #9] - lsrs r2, r2, #2 - lsls r1, r2, #2 - adds r1, r1, r2 - ldr r2, _08016208 - adds r1, r1, r2 - bl StringCopy - ldr r1, _0801620C - b _08016234 - .align 2, 0 -_08016200: .4byte gUnknown_2021C40 -_08016204: .4byte gUnknown_2021C54 -_08016208: .4byte gUnknown_82EBC88 -_0801620C: .4byte gUnknown_82C1918 -_08016210: - ldr r0, _0801623C - ldr r1, [r6] - adds r1, r1, r4 - adds r1, #0x10 - bl StringCopy - ldr r0, _08016240 - ldr r1, [r6] - adds r1, r1, r4 - ldrb r2, [r1, #9] - lsrs r2, r2, #2 - lsls r1, r2, #2 - adds r1, r1, r2 - ldr r2, _08016244 - adds r1, r1, r2 - bl StringCopy - ldr r1, _08016248 -_08016234: - movs r0, #0x2e - bl sub_0801516C - b _0801638C - .align 2, 0 -_0801623C: .4byte gUnknown_2021C40 -_08016240: .4byte gUnknown_2021C54 -_08016244: .4byte gUnknown_82EBC88 -_08016248: .4byte gUnknown_82C1938 -_0801624C: - adds r0, r6, #0 - adds r0, #0x16 - movs r1, #0 - bl sub_08016BC8 - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _08016272 - cmp r1, #0 - bgt _0801626C - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _08016276 - b _0801638C -_0801626C: - cmp r1, #1 - beq _08016276 - b _0801638C -_08016272: - movs r0, #0x32 - b _0801638A -_08016276: - movs r0, #1 - bl sub_08017C48 - movs r0, #4 - b _0801638A -_08016280: - adds r0, r6, #0 - adds r0, #0x16 - ldr r1, _080162E8 - bl PrintOnTextbox - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08016292 - b _0801638C -_08016292: - ldr r4, _080162EC - movs r0, #2 - strh r0, [r4] - ldr r2, _080162F0 - movs r3, #2 - ldrsh r0, [r7, r3] - ldr r1, [r6] - lsls r0, r0, #5 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r2] - ldr r2, _080162F4 - ldr r1, [r6] - movs r3, #2 - ldrsh r0, [r7, r3] - lsls r0, r0, #5 - adds r1, r1, r0 - ldrb r0, [r1, #9] - lsrs r0, r0, #2 - strb r0, [r2] - ldr r2, _080162F8 - ldr r1, [r6] - movs r3, #2 - ldrsh r0, [r7, r3] - lsls r0, r0, #5 - adds r1, r1, r0 - ldrh r0, [r1, #8] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - strh r0, [r2] - ldr r1, _080162FC - ldr r0, _08016300 - str r0, [r1] - ldr r1, _08016304 - movs r0, #9 - bl sub_081B85A4 - adds r0, r6, #0 - bl sub_080151B8 - ldrh r0, [r7, #2] - strb r0, [r4, #8] - b _0801638C - .align 2, 0 -_080162E8: .4byte gUnknown_82C17E8 -_080162EC: .4byte gUnknown_20228F4 -_080162F0: .4byte gUnknown_20228EC -_080162F4: .4byte gUnknown_20228F2 -_080162F8: .4byte gUnknown_20228F0 -_080162FC: .4byte gUnknown_3005B0C -_08016300: .4byte sub_080AEA24 -_08016304: .4byte sub_08085A30 -_08016308: - ldr r1, _08016340 - movs r0, #0x44 - strb r0, [r1] - movs r1, #2 - ldrsh r0, [r7, r1] - lsls r0, r0, #5 - ldr r1, [r6] - adds r1, r1, r0 - adds r0, r1, #0 - adds r0, #0x10 - movs r2, #0x44 - bl sub_08011C74 - ldr r0, _08016344 - movs r3, #2 - ldrsh r2, [r7, r3] - lsls r2, r2, #5 - ldr r1, [r6] - adds r1, r1, r2 - adds r1, #0x10 - bl StringCopy - ldr r0, _08016348 - ldr r0, [r0, #8] - bl sub_08016B30 - movs r0, #0x19 - b _0801638A - .align 2, 0 -_08016340: .4byte gUnknown_20228E0 -_08016344: .4byte gUnknown_2021C40 -_08016348: .4byte gUnknown_82C0CD8 -_0801634C: - adds r0, r6, #0 - adds r0, #0x16 - ldr r1, _08016374 - bl PrintOnTextbox - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801638C - movs r0, #1 - bl sub_08017C48 - movs r1, #0 - ldrsh r0, [r7, r1] - movs r2, #2 - ldrsh r1, [r7, r2] - ldr r2, [r6] - bl sub_08019E88 - movs r0, #4 - b _0801638A - .align 2, 0 -_08016374: .4byte gUnknown_2021C7C -_08016378: - adds r0, r6, #0 - adds r0, #0x16 - ldr r1, _08016394 - bl PrintOnTextbox - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801638C - ldrb r0, [r6, #0x15] -_0801638A: - strb r0, [r6, #0x14] -_0801638C: - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08016394: .4byte gUnknown_2021C7C - thumb_func_end sub_080151E8 - - thumb_func_start var_800D_set_xB -var_800D_set_xB: @ 0x08016398 - push {lr} - bl InUnionRoom - cmp r0, #1 - bne _080163A8 - ldr r1, _080163AC - movs r0, #0xb - strh r0, [r1] -_080163A8: - pop {r0} - bx r0 - .align 2, 0 -_080163AC: .4byte gUnknown_2037290 - thumb_func_end var_800D_set_xB - - thumb_func_start sub_080163B0 -sub_080163B0: @ 0x080163B0 - push {r4, r5, lr} - adds r2, r0, #0 - ldr r3, _080163EC - ldrh r5, [r3, #0x12] - adds r4, r5, #0 - cmp r4, #0 - beq _080163E4 - ldrh r0, [r3, #0x10] - movs r1, #0xff - lsls r1, r1, #8 - ands r1, r0 - movs r0, #0xbc - lsls r0, r0, #6 - cmp r1, r0 - bne _080163E4 - adds r0, r2, #0 - adds r0, #0x82 - strh r5, [r0] - cmp r4, #0x44 - bne _080163E4 - ldrh r1, [r3, #0x14] - adds r0, #2 - strh r1, [r0] - ldrh r1, [r3, #0x16] - adds r0, #2 - strh r1, [r0] -_080163E4: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080163EC: .4byte gUnknown_3003130 - thumb_func_end sub_080163B0 - - thumb_func_start sub_080163F0 -sub_080163F0: @ 0x080163F0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x82 - ldrh r0, [r5] - cmp r0, #0 - beq _08016440 - ldr r0, _08016424 - ldr r1, _08016428 - adds r1, #0x2f - ldrb r1, [r1] - adds r2, r5, #0 - adds r3, r4, #0 - bl sub_08017960 - cmp r0, #0 - beq _08016440 - cmp r0, #1 - bne _08016430 - movs r0, #0x23 - strb r0, [r4, #0x14] - ldr r1, _0801642C - ldrh r0, [r5] - strb r0, [r1] - movs r0, #0 - b _08016442 - .align 2, 0 -_08016424: .4byte gUnknown_2021C7C -_08016428: .4byte gUnknown_20226A0 -_0801642C: .4byte gUnknown_20228E0 -_08016430: - cmp r0, #2 - bne _08016440 - movs r0, #0x24 - strb r0, [r4, #0x14] - bl sub_0800A7F8 - movs r0, #0 - b _08016442 -_08016440: - movs r0, #1 -_08016442: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_080163F0 - - thumb_func_start sub_08016448 -sub_08016448: @ 0x08016448 - push {r4, r5, lr} - ldr r5, _08016480 - movs r0, #0xff - strb r0, [r5] - ldr r0, _08016484 - movs r1, #0 - bl CreateTask - ldr r4, _08016488 - movs r0, #0x89 - lsls r0, r0, #2 - bl AllocZeroed - str r0, [r4] - ldr r1, _0801648C - str r0, [r1] - movs r1, #0 - strb r1, [r0, #0x14] - strb r1, [r0, #0x16] - strh r1, [r0, #0x10] - strh r1, [r0, #0x12] - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08016480: .4byte gUnknown_20228D8 -_08016484: .4byte sub_08016490 -_08016488: .4byte gUnknown_20228E4 -_0801648C: .4byte gUnknown_3000DA8 - thumb_func_end sub_08016448 - - thumb_func_start sub_08016490 -sub_08016490: @ 0x08016490 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _080164AC - ldr r4, [r0] - ldrb r0, [r4, #0x14] - cmp r0, #4 - bls _080164A2 - b _080165D8 -_080164A2: - lsls r0, r0, #2 - ldr r1, _080164B0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080164AC: .4byte gUnknown_20228E4 -_080164B0: .4byte _080164B4 -_080164B4: @ jump table - .4byte _080164C8 @ case 0 - .4byte _080164CE @ case 1 - .4byte _080164F0 @ case 2 - .4byte _08016540 @ case 3 - .4byte _080165A4 @ case 4 -_080164C8: - movs r0, #1 - strb r0, [r4, #0x14] - b _080165D8 -_080164CE: - movs r0, #0xc - movs r1, #0 - movs r2, #0 - bl sub_08010A74 - bl sub_0800AF5C - bl OpenLink - bl sub_08011770 - movs r0, #1 - bl sub_08010CA0 - movs r0, #2 - strb r0, [r4, #0x14] - b _080165D8 -_080164F0: - movs r0, #0x70 - bl AllocZeroed - str r0, [r4, #4] - movs r1, #4 - bl sub_080170B0 - movs r0, #0x70 - bl AllocZeroed - str r0, [r4, #0xc] - movs r1, #4 - bl sub_080170B0 - movs r0, #0x80 - lsls r0, r0, #1 - bl AllocZeroed - str r0, [r4] - movs r1, #8 - bl sub_08017044 - movs r0, #0x20 - bl AllocZeroed - str r0, [r4, #8] - movs r1, #1 - bl sub_08017044 - ldr r0, [r4, #0xc] - ldr r1, [r4, #4] - movs r2, #0xa - bl sub_08016900 - adds r1, r4, #0 - adds r1, #0x20 - strb r0, [r1] - movs r0, #3 - strb r0, [r4, #0x14] - b _080165D8 -_08016540: - bl sub_08016610 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - blt _080165D8 - cmp r0, #2 - bgt _080165D8 - ldr r0, _0801658C - ldrb r0, [r0] - cmp r0, #0xff - bne _080165D8 - movs r6, #0 -_0801655A: - ldr r0, [r4] - lsls r5, r6, #5 - adds r1, r0, r5 - ldrb r0, [r1, #0x1a] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _08016582 - adds r0, r1, #2 - bl sub_08015160 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, [r4] - adds r1, r1, r5 - adds r1, #0x10 - bl sub_0800E004 - cmp r0, #0 - bne _08016590 -_08016582: - adds r6, #1 - cmp r6, #7 - ble _0801655A - b _080165D8 - .align 2, 0 -_0801658C: .4byte gUnknown_20228D8 -_08016590: - ldr r0, _080165A0 - ldr r1, [r4] - adds r1, r1, r5 - adds r1, #0x10 - bl StringCopy - b _080165D8 - .align 2, 0 -_080165A0: .4byte gUnknown_20228D8 -_080165A4: - ldr r0, [r4, #8] - bl Free - ldr r0, [r4] - bl Free - ldr r0, [r4, #0xc] - bl Free - ldr r0, [r4, #4] - bl Free - adds r0, r4, #0 - adds r0, #0x20 - ldrb r0, [r0] - bl DestroyTask - ldr r0, _080165E0 - ldr r0, [r0] - bl Free - bl sub_0800E894 - adds r0, r5, #0 - bl DestroyTask -_080165D8: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080165E0: .4byte gUnknown_20228E4 - thumb_func_end sub_08016490 - - thumb_func_start sp182_move_string -sp182_move_string: @ 0x080165E4 - push {r4, lr} - ldr r4, _080165F4 - ldrb r0, [r4] - cmp r0, #0xff - bne _080165F8 - movs r0, #0 - b _08016606 - .align 2, 0 -_080165F4: .4byte gUnknown_20228D8 -_080165F8: - ldr r0, _0801660C - adds r1, r4, #0 - bl StringCopy - movs r0, #0xff - strb r0, [r4] - movs r0, #1 -_08016606: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0801660C: .4byte gUnknown_2021C40 - thumb_func_end sp182_move_string - - thumb_func_start sub_08016610 -sub_08016610: @ 0x08016610 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r0, _08016664 - ldr r4, [r0] - movs r7, #0 - movs r6, #0 - movs r5, #0 -_08016622: - ldr r0, [r4, #0xc] - adds r0, r0, r5 - ldr r1, _08016668 - bl sub_080170F4 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #1 - bne _0801666C - ldr r1, [r4, #0xc] - ldr r0, [r4, #8] - adds r1, r1, r5 - ldm r1!, {r2, r5, r6} - stm r0!, {r2, r5, r6} - ldm r1!, {r2, r5, r6} - stm r0!, {r2, r5, r6} - ldr r1, [r4, #8] - movs r0, #0 - strh r0, [r1, #0x18] - ldr r2, [r4, #8] - ldrb r1, [r2, #0x1a] - movs r5, #4 - rsbs r5, r5, #0 - adds r0, r5, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r2, #0x1a] - ldr r0, [r4, #8] - strb r3, [r0, #0x1b] - movs r0, #4 - b _080167A0 - .align 2, 0 -_08016664: .4byte gUnknown_20228E4 -_08016668: .4byte gUnknown_82C2364 -_0801666C: - adds r5, #0x1c - adds r6, #1 - cmp r6, #3 - ble _08016622 - movs r6, #0 - mov sb, r6 -_08016678: - ldr r0, [r4] - mov r1, sb - lsls r5, r1, #5 - adds r2, r0, r5 - ldrb r0, [r2, #0x1a] - lsls r0, r0, #0x1e - mov r8, r5 - cmp r0, #0 - beq _0801676C - ldr r1, [r4, #4] - adds r0, r2, #0 - bl sub_080171A8 - adds r6, r0, #0 - cmp r6, #0xff - beq _08016712 - ldr r0, [r4] - adds r2, r0, r5 - ldrb r1, [r2, #0x1a] - lsls r0, r1, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _080166F0 - lsls r0, r6, #3 - subs r0, r0, r6 - lsls r6, r0, #2 - ldr r1, [r4, #4] - adds r1, r1, r6 - adds r0, r2, #0 - bl sub_0801713C - cmp r0, #0 - beq _080166D6 - ldr r1, [r4] - ldr r0, [r4, #4] - adds r1, r1, r5 - adds r0, r0, r6 - ldm r0!, {r2, r3, r6} - stm r1!, {r2, r3, r6} - ldm r0!, {r2, r3, r6} - stm r1!, {r2, r3, r6} - ldr r0, [r4] - adds r0, r0, r5 - movs r1, #0x40 - strb r1, [r0, #0x1b] - movs r7, #1 - b _08016708 -_080166D6: - ldr r0, [r4] - adds r1, r0, r5 - ldrb r0, [r1, #0x1b] - cmp r0, #0 - beq _08016708 - subs r0, #1 - strb r0, [r1, #0x1b] - ldr r0, [r4] - adds r0, r0, r5 - ldrb r0, [r0, #0x1b] - cmp r0, #0 - bne _08016708 - b _08016706 -_080166F0: - movs r3, #4 - rsbs r3, r3, #0 - adds r0, r3, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x1a] - ldr r0, [r4] - adds r0, r0, r5 - movs r1, #0 - strb r1, [r0, #0x1b] -_08016706: - movs r7, #2 -_08016708: - ldr r0, [r4] - add r0, r8 - movs r1, #0 - strh r1, [r0, #0x18] - b _0801676C -_08016712: - ldr r0, [r4] - adds r1, r0, r5 - ldrb r0, [r1, #0x1a] - lsls r2, r0, #0x1e - lsrs r0, r2, #0x1e - cmp r0, #2 - beq _0801674C - ldrh r0, [r1, #0x18] - adds r0, #1 - strh r0, [r1, #0x18] - ldr r0, [r4] - adds r2, r0, r5 - ldrh r1, [r2, #0x18] - ldr r0, _08016748 - cmp r1, r0 - bls _0801676C - ldrb r0, [r2, #0x1a] - movs r5, #4 - rsbs r5, r5, #0 - adds r1, r5, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r2, #0x1a] - movs r7, #2 - b _0801676C - .align 2, 0 -_08016748: .4byte 0x00000257 -_0801674C: - lsrs r0, r2, #0x1e - cmp r0, #2 - bne _0801676C - ldrh r0, [r1, #0x18] - adds r0, #1 - strh r0, [r1, #0x18] - ldr r0, [r4] - adds r2, r0, r5 - ldrh r1, [r2, #0x18] - ldr r0, _080167AC - cmp r1, r0 - bls _0801676C - adds r0, r2, #0 - movs r1, #1 - bl sub_08017044 -_0801676C: - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - cmp r0, #7 - bhi _0801677C - b _08016678 -_0801677C: - movs r5, #0 - movs r6, #3 -_08016780: - ldr r0, [r4] - ldr r1, [r4, #4] - adds r1, r1, r5 - movs r2, #8 - bl sub_080171F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _08016796 - movs r7, #1 -_08016796: - adds r5, #0x1c - subs r6, #1 - cmp r6, #0 - bge _08016780 - adds r0, r7, #0 -_080167A0: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080167AC: .4byte 0x00000383 - thumb_func_end sub_08016610 - - thumb_func_start sub_080167B0 -sub_080167B0: @ 0x080167B0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - lsls r0, r0, #2 - add r0, sl - lsls r0, r0, #3 - ldr r1, _080168A0 - adds r6, r0, r1 - movs r7, #0 - mov r0, sp - adds r0, #0x10 - str r0, [sp, #0x18] -_080167D4: - lsls r2, r7, #0x18 - lsrs r2, r2, #0x18 - mov r0, sp - ldr r1, [sp, #0x18] - bl sub_0800D948 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - mov r0, sp - ldrb r0, [r0, #0xa] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x19 - mov r2, sl - lsls r1, r2, #2 - add r1, sl - lsls r1, r1, #3 - ldr r3, _080168A4 - adds r1, r1, r3 - movs r5, #0x10 - ldrsh r1, [r1, r5] - bl sub_08013890 - cmp r0, #0 - bne _08016810 - mov r1, sp - ldr r0, _080168A8 - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} -_08016810: - mov r0, sp - ldrb r1, [r0] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - beq _08016828 - mov r1, sp - ldr r0, _080168A8 - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} -_08016828: - cmp r4, #0 - bne _080168AC - lsls r0, r7, #3 - mov r8, r0 - adds r1, r7, #1 - mov sb, r1 - cmp r7, #0 - ble _08016868 - movs r2, #0 - str r2, [sp, #0x1c] - adds r4, r7, #0 -_0801683E: - ldr r0, [r6, #4] - ldr r3, [sp, #0x1c] - adds r0, r0, r3 - mov r1, sp - bl sub_080170F4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801685C - mov r1, sp - ldr r0, _080168A8 - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} -_0801685C: - ldr r5, [sp, #0x1c] - adds r5, #0x1c - str r5, [sp, #0x1c] - subs r4, #1 - cmp r4, #0 - bne _0801683E -_08016868: - ldr r1, [r6, #4] - mov r0, r8 - subs r4, r0, r7 - lsls r4, r4, #2 - adds r1, r1, r4 - mov r0, sp - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} - ldr r0, [r6, #4] - adds r0, r0, r4 - ldr r1, _080168A8 - bl sub_080170F4 - ldr r3, [r6, #4] - adds r3, r3, r4 - movs r2, #1 - ands r2, r0 - ldrb r0, [r3, #0x18] - movs r4, #2 - rsbs r4, r4, #0 - adds r1, r4, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, #0x18] - b _080168E4 - .align 2, 0 -_080168A0: .4byte gUnknown_3005B68 -_080168A4: .4byte gUnknown_3005B60 -_080168A8: .4byte gUnknown_82C2364 -_080168AC: - ldr r1, [r6] - lsls r4, r7, #3 - subs r4, r4, r7 - lsls r4, r4, #2 - adds r1, r1, r4 - mov r0, sp - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} - ldr r0, [r6] - adds r0, r0, r4 - ldr r1, _080168FC - bl sub_080170F4 - ldr r3, [r6] - adds r3, r3, r4 - movs r2, #1 - ands r2, r0 - ldrb r0, [r3, #0x18] - movs r4, #2 - rsbs r4, r4, #0 - adds r1, r4, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, #0x18] - adds r7, #1 - mov sb, r7 -_080168E4: - mov r7, sb - cmp r7, #3 - bgt _080168EC - b _080167D4 -_080168EC: - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080168FC: .4byte gUnknown_82C2364 - thumb_func_end sub_080167B0 - - thumb_func_start sub_08016900 -sub_08016900: @ 0x08016900 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - ldr r0, _0801692C - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r2, _08016930 - adds r3, r1, r2 - str r4, [r3] - str r5, [r3, #4] - adds r2, r2, r1 - strh r6, [r2, #8] - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0801692C: .4byte sub_080167B0 -_08016930: .4byte gUnknown_3005B68 - thumb_func_end sub_08016900 - - thumb_func_start sub_08016934 -sub_08016934: @ 0x08016934 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - lsls r0, r0, #2 - add r0, sl - lsls r0, r0, #3 - ldr r1, _08016A20 - adds r6, r0, r1 - movs r3, #0 -_08016952: - lsls r4, r3, #3 - subs r0, r4, r3 - lsls r5, r0, #2 - ldr r0, [r6] - adds r0, r0, r5 - adds r1, r0, #0 - adds r1, #0x10 - lsls r2, r3, #0x18 - lsrs r2, r2, #0x18 - str r3, [sp] - bl sub_0800D948 - ldr r0, [r6] - adds r0, r0, r5 - ldrb r0, [r0, #0xa] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x19 - mov r2, sl - lsls r1, r2, #2 - add r1, sl - lsls r1, r1, #3 - ldr r7, _08016A24 - adds r1, r1, r7 - movs r2, #0xc - ldrsh r1, [r1, r2] - bl sub_08013890 - mov r8, r4 - ldr r3, [sp] - cmp r0, #0 - bne _0801699E - ldr r1, [r6] - adds r1, r1, r5 - ldr r0, _08016A28 - ldm r0!, {r2, r4, r7} - stm r1!, {r2, r4, r7} - ldm r0!, {r2, r4, r7} - stm r1!, {r2, r4, r7} -_0801699E: - adds r4, r3, #1 - mov sb, r4 - cmp r3, #0 - ble _080169E2 - str r5, [sp, #4] - movs r5, #0 - str r5, [sp, #8] - adds r4, r3, #0 -_080169AE: - ldr r1, [r6] - ldr r7, [sp, #8] - adds r0, r1, r7 - ldr r2, [sp, #4] - adds r1, r1, r2 - str r3, [sp] - bl sub_080170F4 - lsls r0, r0, #0x18 - ldr r3, [sp] - cmp r0, #0 - bne _080169D6 - ldr r1, [r6] - ldr r5, [sp, #4] - adds r1, r1, r5 - ldr r0, _08016A28 - ldm r0!, {r2, r5, r7} - stm r1!, {r2, r5, r7} - ldm r0!, {r2, r5, r7} - stm r1!, {r2, r5, r7} -_080169D6: - ldr r7, [sp, #8] - adds r7, #0x1c - str r7, [sp, #8] - subs r4, #1 - cmp r4, #0 - bne _080169AE -_080169E2: - mov r0, r8 - subs r4, r0, r3 - lsls r4, r4, #2 - ldr r0, [r6] - adds r0, r0, r4 - ldr r1, _08016A28 - bl sub_080170F4 - ldr r3, [r6] - adds r3, r3, r4 - movs r2, #1 - ands r2, r0 - ldrb r0, [r3, #0x18] - movs r4, #2 - rsbs r4, r4, #0 - adds r1, r4, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, #0x18] - mov r3, sb - cmp r3, #3 - ble _08016952 - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08016A20: .4byte gUnknown_3005B68 -_08016A24: .4byte gUnknown_3005B60 -_08016A28: .4byte gUnknown_82C2364 - thumb_func_end sub_08016934 - - thumb_func_start sub_08016A2C -sub_08016A2C: @ 0x08016A2C - push {lr} - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #7 - bne _08016A3C - ldrb r1, [r0] - movs r0, #0x20 - b _08016A44 -_08016A3C: - cmp r1, #8 - bne _08016A4E - ldrb r1, [r0] - movs r0, #0x10 -_08016A44: - ands r0, r1 - cmp r0, #0 - beq _08016A4E - movs r0, #1 - b _08016A50 -_08016A4E: - movs r0, #0 -_08016A50: - pop {r1} - bx r1 - thumb_func_end sub_08016A2C - - thumb_func_start sub_08016A54 -sub_08016A54: @ 0x08016A54 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _08016AC8 - adds r4, r1, r0 - movs r6, #0 - subs r0, #8 - movs r5, #0 - adds r1, r1, r0 - mov r8, r1 -_08016A72: - ldr r0, [r4] - adds r0, r0, r5 - adds r1, r0, #0 - adds r1, #0x10 - lsls r2, r6, #0x18 - lsrs r2, r2, #0x18 - bl sub_0800DA00 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08016A96 - ldr r0, [r4] - adds r0, r0, r5 - mov r2, r8 - movs r3, #0xc - ldrsh r1, [r2, r3] - bl sub_08016A2C -_08016A96: - ldr r0, [r4] - adds r0, r0, r5 - ldr r1, _08016ACC - bl sub_080170F4 - ldr r3, [r4] - adds r3, r3, r5 - movs r2, #1 - ands r2, r0 - ldrb r0, [r3, #0x18] - movs r7, #2 - rsbs r7, r7, #0 - adds r1, r7, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, #0x18] - adds r5, #0x1c - adds r6, #1 - cmp r6, #3 - ble _08016A72 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08016AC8: .4byte gUnknown_3005B68 -_08016ACC: .4byte gUnknown_82C2364 - thumb_func_end sub_08016A54 - - thumb_func_start sub_08016AD0 -sub_08016AD0: @ 0x08016AD0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r0, _08016AF8 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r0, #2 - adds r2, r2, r0 - lsls r2, r2, #3 - ldr r1, _08016AFC - adds r3, r2, r1 - str r4, [r3] - adds r1, r1, r2 - strh r5, [r1, #4] - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08016AF8: .4byte sub_08016934 -_08016AFC: .4byte gUnknown_3005B68 - thumb_func_end sub_08016AD0 - - thumb_func_start sub_08016B00 -sub_08016B00: @ 0x08016B00 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r0, _08016B28 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r0, #2 - adds r2, r2, r0 - lsls r2, r2, #3 - ldr r1, _08016B2C - adds r3, r2, r1 - str r4, [r3] - adds r1, r1, r2 - strh r5, [r1, #4] - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08016B28: .4byte sub_08016A54 -_08016B2C: .4byte gUnknown_3005B68 - thumb_func_end sub_08016B00 - - thumb_func_start sub_08016B30 -sub_08016B30: @ 0x08016B30 - push {r4, lr} - adds r4, r0, #0 - bl sub_08196F98 - movs r0, #0 - movs r1, #1 - bl sub_08196FB8 - ldr r0, _08016B58 - adds r1, r4, #0 - bl StringExpandPlaceholders - movs r0, #0 - movs r1, #1 - bl AddTextPrinterWithCustomSpeedForMessage - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08016B58: .4byte gUnknown_2021C7C - thumb_func_end sub_08016B30 - - thumb_func_start sub_08016B5C -sub_08016B5C: @ 0x08016B5C - push {lr} - bl RunTextPrintersAndIsPrinter0Active - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08016B6C - movs r0, #0 - b _08016B6E -_08016B6C: - movs r0, #1 -_08016B6E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08016B5C - - thumb_func_start PrintOnTextbox -PrintOnTextbox: @ 0x08016B74 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4] - cmp r0, #0 - beq _08016B86 - cmp r0, #1 - beq _08016BAC - b _08016BBE -_08016B86: - bl sub_08196F98 - movs r0, #0 - movs r1, #1 - bl sub_08196FB8 - ldr r0, _08016BA8 - adds r1, r5, #0 - bl StringExpandPlaceholders - movs r0, #1 - bl AddTextPrinterForMessage_2 - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - b _08016BBE - .align 2, 0 -_08016BA8: .4byte gUnknown_2021C7C -_08016BAC: - bl RunTextPrintersAndIsPrinter0Active - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - bne _08016BBE - strb r0, [r4] - movs r0, #1 - b _08016BC0 -_08016BBE: - movs r0, #0 -_08016BC0: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end PrintOnTextbox - - thumb_func_start sub_08016BC8 -sub_08016BC8: @ 0x08016BC8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4] - cmp r0, #0 - beq _08016BDA - cmp r0, #1 - beq _08016BF0 - b _08016C1C -_08016BDA: - cmp r5, #0 - beq _08016BE4 - movs r0, #3 - rsbs r0, r0, #0 - b _08016C20 -_08016BE4: - bl sub_08197714 - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - b _08016C1C -_08016BF0: - cmp r5, #0 - beq _08016C02 - bl MovementType_WalkSequenceUpLeftDownRight_callback - movs r0, #0 - strb r0, [r4] - movs r0, #3 - rsbs r0, r0, #0 - b _08016C20 -_08016C02: - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - movs r2, #0x80 - lsls r2, r2, #0x11 - adds r0, r0, r2 - lsrs r0, r0, #0x18 - cmp r0, #2 - bhi _08016C1C - strb r5, [r4] - adds r0, r1, #0 - b _08016C20 -_08016C1C: - movs r0, #2 - rsbs r0, r0, #0 -_08016C20: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08016BC8 - - thumb_func_start sub_08016C28 -sub_08016C28: @ 0x08016C28 - push {r4, lr} - sub sp, #8 - bl AddWindow - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #0 - bl sub_08196FF0 - adds r0, r4, #0 - movs r1, #0xff - bl FillWindowPixelBuffer - ldr r2, _08016C74 - movs r0, #1 - str r0, [sp] - movs r0, #6 - str r0, [sp, #4] - adds r0, r4, #0 - movs r1, #1 - movs r3, #8 - bl sub_08016EA4 - adds r0, r4, #0 - movs r1, #2 - bl CopyWindowToVram - adds r0, r4, #0 - bl PutWindowTilemap - adds r0, r4, #0 - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08016C74: .4byte gUnknown_82C1D60 - thumb_func_end sub_08016C28 - - thumb_func_start sub_08016C78 -sub_08016C78: @ 0x08016C78 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl RemoveWindow - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08016C78 - - thumb_func_start sub_08016C88 -sub_08016C88: @ 0x08016C88 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - adds r5, r1, #0 - mov sb, r2 - adds r0, r3, #0 - ldrb r4, [r7] - cmp r4, #0 - beq _08016CA4 - cmp r4, #1 - beq _08016CE4 - b _08016D4A -_08016CA4: - bl AddWindow - strb r0, [r5] - ldrb r0, [r5] - movs r1, #0 - bl sub_08196FF0 - ldr r0, _08016CE0 - adds r2, r0, #0 - ldr r1, [sp, #0x1c] - ldm r1!, {r3, r4, r6} - stm r2!, {r3, r4, r6} - ldm r1!, {r3, r4, r6} - stm r2!, {r3, r4, r6} - ldrb r1, [r5] - strb r1, [r0, #0x10] - movs r1, #0 - movs r2, #0 - bl ListMenuInit - mov r1, sb - strb r0, [r1] - ldrb r0, [r5] - movs r1, #1 - bl CopyWindowToVram - ldrb r0, [r7] - adds r0, #1 - strb r0, [r7] - b _08016D4A - .align 2, 0 -_08016CE0: .4byte gUnknown_3006050 -_08016CE4: - mov r3, sb - ldrb r0, [r3] - bl ListMenu_ProcessInput - mov r8, r0 - ldr r0, _08016D1C - ldrh r1, [r0, #0x2e] - ands r4, r1 - cmp r4, #0 - beq _08016D20 - mov r4, sb - ldrb r0, [r4] - movs r1, #0 - movs r2, #0 - bl DestroyListMenuTask - ldrb r0, [r5] - movs r1, #1 - bl sub_08197060 - ldrb r0, [r5] - bl RemoveWindow - movs r0, #0 - strb r0, [r7] - mov r0, r8 - b _08016D4E - .align 2, 0 -_08016D1C: .4byte gUnknown_3002360 -_08016D20: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08016D4A - mov r6, sb - ldrb r0, [r6] - movs r1, #0 - movs r2, #0 - bl DestroyListMenuTask - ldrb r0, [r5] - movs r1, #1 - bl sub_08197060 - ldrb r0, [r5] - bl RemoveWindow - strb r4, [r7] - movs r0, #2 - rsbs r0, r0, #0 - b _08016D4E -_08016D4A: - movs r0, #1 - rsbs r0, r0, #0 -_08016D4E: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08016C88 - - thumb_func_start MainMenu_FormatSavegameBadges -MainMenu_FormatSavegameBadges: @ 0x08016D5C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r6, r0, #0 - adds r5, r1, #0 - mov sl, r2 - mov r8, r3 - ldrb r4, [r6] - cmp r4, #1 - beq _08016DC8 - cmp r4, #1 - bgt _08016D7E - cmp r4, #0 - beq _08016D84 - b _08016E60 -_08016D7E: - cmp r4, #2 - beq _08016DD8 - b _08016E60 -_08016D84: - ldr r0, _08016DC0 - bl sub_08016C28 - mov r1, r8 - strb r0, [r1] - ldr r0, [sp, #0x20] - bl AddWindow - strb r0, [r5] - ldrb r0, [r5] - movs r1, #0 - bl sub_08196FF0 - ldr r0, _08016DC4 - adds r2, r0, #0 - ldr r1, [sp, #0x24] - ldm r1!, {r3, r4, r7} - stm r2!, {r3, r4, r7} - ldm r1!, {r3, r4, r7} - stm r2!, {r3, r4, r7} - ldrb r1, [r5] - strb r1, [r0, #0x10] - movs r1, #0 - movs r2, #1 - bl ListMenuInit - mov r1, sl - strb r0, [r1] - b _08016DD0 - .align 2, 0 -_08016DC0: .4byte gUnknown_82C224C -_08016DC4: .4byte gUnknown_3006050 -_08016DC8: - ldrb r0, [r5] - movs r1, #1 - bl CopyWindowToVram -_08016DD0: - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] - b _08016E60 -_08016DD8: - mov r3, sl - ldrb r0, [r3] - bl ListMenu_ProcessInput - adds r1, r0, #0 - ldr r0, _08016E20 - ldrh r2, [r0, #0x2e] - movs r0, #3 - ands r0, r2 - cmp r0, #0 - beq _08016E60 - cmp r1, #8 - beq _08016DFA - ands r4, r2 - mov sb, r4 - cmp r4, #0 - beq _08016E24 -_08016DFA: - mov r4, sl - ldrb r0, [r4] - movs r1, #0 - movs r2, #0 - bl DestroyListMenuTask - ldrb r0, [r5] - bl RemoveWindow - mov r7, r8 - ldrb r0, [r7] - bl sub_08016C78 - movs r0, #0 - strb r0, [r6] - movs r0, #2 - rsbs r0, r0, #0 - b _08016E64 - .align 2, 0 -_08016E20: .4byte gUnknown_3002360 -_08016E24: - ldr r0, [sp, #0x28] - bl sub_08017770 - adds r4, r0, #0 - cmp r4, #0 - blt _08016E5A - mov r1, sl - ldrb r0, [r1] - movs r1, #0 - movs r2, #0 - bl DestroyListMenuTask - ldrb r0, [r5] - movs r1, #1 - bl sub_08197060 - ldrb r0, [r5] - bl RemoveWindow - mov r3, r8 - ldrb r0, [r3] - bl sub_08016C78 - mov r7, sb - strb r7, [r6] - adds r0, r4, #0 - b _08016E64 -_08016E5A: - movs r0, #7 - bl sub_080A306C -_08016E60: - movs r0, #1 - rsbs r0, r0, #0 -_08016E64: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MainMenu_FormatSavegameBadges - - thumb_func_start sub_08016E74 -sub_08016E74: @ 0x08016E74 - push {lr} - sub sp, #0xc - movs r0, #0x20 - str r0, [sp] - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect - movs r0, #0 - bl CopyBgTilemapBufferToVram - add sp, #0xc - pop {r0} - bx r0 - thumb_func_end sub_08016E74 - - thumb_func_start Contest_RunTextPrinters -Contest_RunTextPrinters: @ 0x08016E98 - push {lr} - bl EnableBothScriptContexts - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Contest_RunTextPrinters - - thumb_func_start sub_08016EA4 -sub_08016EA4: @ 0x08016EA4 - push {r4, r5, lr} - sub sp, #0x10 - ldr r5, [sp, #0x1c] - ldr r4, [sp, #0x20] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r2, [sp] - mov r2, sp - strb r0, [r2, #4] - mov r0, sp - strb r1, [r0, #5] - strb r3, [r0, #6] - strb r5, [r0, #7] - strb r3, [r0, #8] - strb r5, [r0, #9] - ldrb r1, [r2, #0xc] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0xc] - ldr r2, _08016EF0 - ldrb r1, [r2] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - cmp r4, #6 - bls _08016EE6 - b _08017032 -_08016EE6: - lsls r0, r4, #2 - ldr r1, _08016EF4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08016EF0: .4byte gUnknown_30030B4 -_08016EF4: .4byte _08016EF8 -_08016EF8: @ jump table - .4byte _08016F14 @ case 0 - .4byte _08016F40 @ case 1 - .4byte _08016F6C @ case 2 - .4byte _08016F98 @ case 3 - .4byte _08016FC4 @ case 4 - .4byte _08016FF0 @ case 5 - .4byte _08017008 @ case 6 -_08016F14: - mov r0, sp - movs r1, #0 - strb r1, [r0, #0xa] - strb r1, [r0, #0xb] - mov r2, sp - ldrb r1, [r2, #0xc] - movs r3, #0xf - adds r0, r3, #0 - ands r0, r1 - movs r1, #0x20 - orrs r0, r1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0xd] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0xd] - ands r0, r3 - movs r1, #0x30 - b _0801702E -_08016F40: - mov r0, sp - movs r1, #0 - strb r1, [r0, #0xa] - strb r1, [r0, #0xb] - mov r2, sp - ldrb r1, [r2, #0xc] - movs r3, #0xf - adds r0, r3, #0 - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0xd] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0xd] - ands r0, r3 - movs r1, #0x50 - b _0801702E -_08016F6C: - mov r0, sp - movs r1, #0 - strb r1, [r0, #0xa] - strb r1, [r0, #0xb] - mov r2, sp - ldrb r1, [r2, #0xc] - movs r3, #0xf - adds r0, r3, #0 - ands r0, r1 - movs r1, #0x60 - orrs r0, r1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0xd] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0xd] - ands r0, r3 - movs r1, #0x70 - b _0801702E -_08016F98: - mov r0, sp - movs r1, #0 - strb r1, [r0, #0xa] - strb r1, [r0, #0xb] - mov r2, sp - ldrb r1, [r2, #0xc] - movs r3, #0xf - adds r0, r3, #0 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0xd] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0xd] - ands r0, r3 - movs r1, #0x30 - b _0801702E -_08016FC4: - mov r0, sp - movs r1, #0 - strb r1, [r0, #0xa] - strb r1, [r0, #0xb] - mov r2, sp - ldrb r1, [r2, #0xc] - movs r3, #0xf - adds r0, r3, #0 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0xd] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r2, #0xd] - ands r0, r3 - movs r1, #0x30 - b _0801702E -_08016FF0: - mov r0, sp - movs r1, #0 - strb r1, [r0, #0xa] - strb r1, [r0, #0xb] - mov r2, sp - ldrb r1, [r2, #0xc] - movs r4, #0xf - movs r3, #0xf - adds r0, r3, #0 - ands r0, r1 - movs r1, #0x70 - b _0801701E -_08017008: - mov r0, sp - movs r1, #0 - strb r1, [r0, #0xa] - strb r1, [r0, #0xb] - mov r2, sp - ldrb r1, [r2, #0xc] - movs r4, #0xf - movs r3, #0xf - adds r0, r3, #0 - ands r0, r1 - movs r1, #0xe0 -_0801701E: - orrs r0, r1 - strb r0, [r2, #0xc] - mov r1, sp - ldrb r0, [r1, #0xd] - orrs r0, r4 - strb r0, [r1, #0xd] - ands r0, r3 - movs r1, #0x90 -_0801702E: - orrs r0, r1 - strb r0, [r2, #0xd] -_08017032: - mov r0, sp - movs r1, #0xff - movs r2, #0 - bl AddTextPrinter - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_08016EA4 - - thumb_func_start sub_08017044 -sub_08017044: @ 0x08017044 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #0 - beq _0801709C - ldr r2, _080170AC - mov r8, r2 - movs r5, #0 - mov sb, r5 - movs r6, #4 - rsbs r6, r6, #0 - mov ip, r6 - adds r2, r0, #0 - adds r2, #0x18 - adds r4, r0, #0 - movs r7, #0xff - mov sl, r7 - adds r3, r1, #0 -_08017070: - adds r1, r4, #0 - mov r0, r8 - ldm r0!, {r5, r6, r7} - stm r1!, {r5, r6, r7} - ldm r0!, {r5, r6, r7} - stm r1!, {r5, r6, r7} - mov r0, sl - strh r0, [r2] - ldrb r1, [r2, #2] - mov r0, ip - ands r0, r1 - movs r1, #5 - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r2, #2] - mov r5, sb - strb r5, [r2, #3] - adds r2, #0x20 - adds r4, #0x20 - subs r3, #1 - cmp r3, #0 - bne _08017070 -_0801709C: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080170AC: .4byte gUnknown_82C2364 - thumb_func_end sub_08017044 - - thumb_func_start sub_080170B0 -sub_080170B0: @ 0x080170B0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r1, _080170F0 - mov ip, r1 - movs r5, #2 - rsbs r5, r5, #0 - mov r8, r5 - adds r2, r0, #0 - adds r2, #0x18 - adds r3, r0, #0 - movs r4, #3 -_080170C8: - adds r1, r3, #0 - mov r0, ip - ldm r0!, {r5, r6, r7} - stm r1!, {r5, r6, r7} - ldm r0!, {r5, r6, r7} - stm r1!, {r5, r6, r7} - ldrb r1, [r2] - mov r0, r8 - ands r0, r1 - strb r0, [r2] - adds r2, #0x1c - adds r3, #0x1c - subs r4, #1 - cmp r4, #0 - bge _080170C8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080170F0: .4byte gUnknown_82C2364 - thumb_func_end sub_080170B0 - - thumb_func_start sub_080170F4 -sub_080170F4: @ 0x080170F4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - movs r2, #0 - adds r4, r5, #2 - adds r3, r6, #2 -_08017100: - adds r0, r4, r2 - adds r1, r3, r2 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bne _08017128 - adds r2, #1 - cmp r2, #1 - ble _08017100 - movs r2, #0 - adds r4, r5, #0 - adds r4, #0x10 - adds r3, r6, #0 - adds r3, #0x10 -_0801711C: - adds r0, r4, r2 - adds r1, r3, r2 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - beq _0801712C -_08017128: - movs r0, #1 - b _08017134 -_0801712C: - adds r2, #1 - cmp r2, #7 - ble _0801711C - movs r0, #0 -_08017134: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080170F4 - - thumb_func_start sub_0801713C -sub_0801713C: @ 0x0801713C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - ldrb r3, [r5, #0xa] - movs r0, #0x7f - ldrb r2, [r6, #0xa] - adds r1, r0, #0 - ands r1, r3 - ands r0, r2 - cmp r1, r0 - bne _080171A0 - movs r0, #0x80 - adds r1, r0, #0 - ands r1, r3 - ands r0, r2 - cmp r1, r0 - bne _080171A0 - movs r2, #0 - adds r4, r5, #4 - adds r3, r6, #4 -_08017164: - adds r0, r4, r2 - adds r1, r3, r2 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bne _080171A0 - adds r2, #1 - cmp r2, #3 - ble _08017164 - ldrh r2, [r5, #8] - ldr r0, _0801719C - ldrh r3, [r6, #8] - adds r1, r0, #0 - ands r1, r2 - ands r0, r3 - cmp r1, r0 - bne _080171A0 - ldrb r2, [r5, #9] - movs r0, #0xfc - ldrb r3, [r6, #9] - adds r1, r0, #0 - ands r1, r2 - ands r0, r3 - cmp r1, r0 - bne _080171A0 - movs r0, #0 - b _080171A2 - .align 2, 0 -_0801719C: .4byte 0x000003FF -_080171A0: - movs r0, #1 -_080171A2: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_0801713C - - thumb_func_start sub_080171A8 -sub_080171A8: @ 0x080171A8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r0 - movs r7, #0xff - movs r6, #0 - adds r4, r1, #0 - adds r4, #0x18 - adds r5, r1, #0 -_080171BA: - ldrb r1, [r4] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080171E2 - mov r0, r8 - adds r1, r5, #0 - bl sub_080170F4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080171E2 - lsls r0, r6, #0x18 - lsrs r7, r0, #0x18 - ldrb r0, [r4] - movs r2, #2 - rsbs r2, r2, #0 - adds r1, r2, #0 - ands r0, r1 - strb r0, [r4] -_080171E2: - adds r4, #0x1c - adds r5, #0x1c - adds r6, #1 - cmp r6, #3 - ble _080171BA - adds r0, r7, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_080171A8 - - thumb_func_start sub_080171F8 -sub_080171F8: @ 0x080171F8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r3, r0, #0 - mov r8, r1 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - ldrb r1, [r1, #0x18] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0801726C - movs r5, #0 - cmp r5, r6 - bge _0801726C - movs r0, #4 - rsbs r0, r0, #0 - mov sb, r0 - movs r1, #2 - rsbs r1, r1, #0 - mov ip, r1 - adds r2, r3, #0 - adds r2, #0x18 - adds r1, r3, #0 -_0801722A: - ldrb r0, [r2, #2] - movs r3, #3 - ands r3, r0 - cmp r3, #0 - bne _08017262 - mov r0, r8 - ldm r0!, {r4, r6, r7} - stm r1!, {r4, r6, r7} - ldm r0!, {r4, r6, r7} - stm r1!, {r4, r6, r7} - strh r3, [r2] - ldrb r1, [r2, #2] - mov r0, sb - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #2] - movs r0, #0x40 - strb r0, [r2, #3] - mov r0, r8 - ldrb r1, [r0, #0x18] - mov r0, ip - ands r0, r1 - mov r1, r8 - strb r0, [r1, #0x18] - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - b _0801726E -_08017262: - adds r2, #0x20 - adds r1, #0x20 - adds r5, #1 - cmp r5, r6 - blt _0801722A -_0801726C: - movs r0, #0xff -_0801726E: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080171F8 - - thumb_func_start sub_0801727C -sub_0801727C: @ 0x0801727C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x10 - adds r4, r1, #0 - adds r5, r3, #0 - ldr r3, [sp, #0x2c] - ldr r1, [sp, #0x30] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov sb, r3 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r6, _08017354 - adds r1, #1 - adds r0, r6, #0 - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - ldr r1, _08017358 - adds r0, r6, #0 - bl StringAppend - str r7, [sp] - movs r0, #0 - str r0, [sp, #4] - mov r0, r8 - movs r1, #1 - adds r2, r6, #0 - adds r3, r4, #0 - bl sub_08016EA4 - adds r4, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldrb r0, [r5, #0xa] - lsls r0, r0, #0x19 - lsrs r2, r0, #0x19 - ldrb r1, [r5, #0x1a] - movs r0, #3 - ands r0, r1 - cmp r0, #1 - bne _08017344 - movs r0, #0x40 - ands r2, r0 - cmp r2, #0 - bne _08017344 - adds r1, r5, #0 - adds r1, #0x10 - adds r0, r6, #0 - movs r2, #5 - bl StringCopyN_Multibyte - str r7, [sp] - mov r0, sb - str r0, [sp, #4] - mov r0, r8 - movs r1, #2 - adds r2, r6, #0 - adds r3, r4, #0 - bl sub_08016EA4 - ldrb r1, [r5, #2] - ldrb r0, [r5, #3] - lsls r0, r0, #8 - orrs r1, r0 - add r0, sp, #8 - movs r2, #2 - movs r3, #5 - bl sub_080089D8 - ldr r1, _0801735C - adds r0, r6, #0 - bl StringCopy - adds r0, r6, #0 - add r1, sp, #8 - bl StringAppend - adds r3, r4, #0 - adds r3, #0x38 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r7, [sp] - mov r0, sb - str r0, [sp, #4] - mov r0, r8 - movs r1, #1 - adds r2, r6, #0 - bl sub_08016EA4 -_08017344: - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08017354: .4byte gUnknown_2021C7C -_08017358: .4byte gUnknown_82C0644 -_0801735C: .4byte gUnknown_82C0648 - thumb_func_end sub_0801727C - - thumb_func_start sub_08017360 -sub_08017360: @ 0x08017360 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x10 - adds r5, r3, #0 - ldr r3, [sp, #0x2c] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r8, r2 - lsls r3, r3, #0x18 - lsrs r7, r3, #0x18 - ldrb r1, [r5, #0x1a] - movs r0, #3 - ands r0, r1 - cmp r0, #1 - bne _080173E6 - ldr r4, _080173F4 - adds r1, r5, #0 - adds r1, #0x10 - adds r0, r4, #0 - movs r2, #5 - bl StringCopyN_Multibyte - mov r0, r8 - str r0, [sp] - str r7, [sp, #4] - mov r0, sb - movs r1, #2 - adds r2, r4, #0 - adds r3, r6, #0 - bl sub_08016EA4 - ldrb r1, [r5, #2] - ldrb r0, [r5, #3] - lsls r0, r0, #8 - orrs r1, r0 - add r0, sp, #8 - movs r2, #2 - movs r3, #5 - bl sub_080089D8 - ldr r1, _080173F8 - adds r0, r4, #0 - bl StringCopy - adds r0, r4, #0 - add r1, sp, #8 - bl StringAppend - adds r3, r6, #0 - adds r3, #0x38 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r0, r8 - str r0, [sp] - str r7, [sp, #4] - mov r0, sb - movs r1, #1 - adds r2, r4, #0 - bl sub_08016EA4 -_080173E6: - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080173F4: .4byte gUnknown_2021C7C -_080173F8: .4byte gUnknown_82C0648 - thumb_func_end sub_08017360 - - thumb_func_start sub_080173FC -sub_080173FC: @ 0x080173FC - push {r4, lr} - sub sp, #4 - mov r4, sp - adds r4, #2 - mov r0, sp - adds r1, r4, #0 - bl GetXYCoordsOneStepInFrontOfPlayer - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #9 - bne _08017434 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #8 - bne _08017434 - ldr r0, _08017430 - ldrb r0, [r0, #3] - cmp r0, #2 - beq _0801742A - cmp r0, #0 - bne _08017434 -_0801742A: - movs r0, #1 - b _08017436 - .align 2, 0 -_08017430: .4byte gUnknown_2037230 -_08017434: - movs r0, #0 -_08017436: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080173FC - - thumb_func_start sub_08017440 -sub_08017440: @ 0x08017440 - push {lr} - cmp r0, #4 - beq _08017458 - cmp r0, #4 - ble _08017460 - cmp r0, #5 - beq _08017454 - cmp r0, #8 - beq _0801745C - b _08017460 -_08017454: - movs r0, #1 - b _08017462 -_08017458: - movs r0, #2 - b _08017462 -_0801745C: - movs r0, #3 - b _08017462 -_08017460: - movs r0, #0 -_08017462: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08017440 - - thumb_func_start StartFieldEffectForEventObject -StartFieldEffectForEventObject: @ 0x08017468 - push {r4, lr} - adds r4, r0, #0 - adds r0, r4, #2 - bl sub_08015160 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r4, #0x10 - adds r1, r4, #0 - bl sub_0800E004 - pop {r4} - pop {r1} - bx r1 - thumb_func_end StartFieldEffectForEventObject - - thumb_func_start sub_08017484 -sub_08017484: @ 0x08017484 - push {r4, r5, r6, lr} - adds r6, r3, #0 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x13 - adds r5, r0, r2 - ldrb r1, [r5, #0xa] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08017500 - cmp r4, #0 - bne _08017500 - ldr r4, _080174E0 - adds r1, r5, #0 - adds r1, #0x10 - adds r0, r4, #0 - bl StringCopy - adds r0, r5, #2 - bl sub_08015160 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r4, #0 - bl sub_0800E004 - adds r2, r0, #0 - ldrb r1, [r5, #0xa] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x45 - bne _080174EC - ldr r0, _080174E4 - ldr r3, _080174E8 - lsls r1, r6, #2 - lsls r2, r2, #3 - adds r1, r1, r2 - adds r1, r1, r3 - ldr r1, [r1] - bl StringExpandPlaceholders - movs r0, #2 - b _080175DE - .align 2, 0 -_080174E0: .4byte gUnknown_2021C40 -_080174E4: .4byte gUnknown_2021C7C -_080174E8: .4byte gUnknown_82C0FD0 -_080174EC: - ldr r0, _080174FC - lsls r1, r2, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl sub_08016B30 - movs r0, #1 - b _080175DE - .align 2, 0 -_080174FC: .4byte gUnknown_82C0CD8 -_08017500: - ldr r0, _08017530 - adds r1, r5, #0 - adds r1, #0x10 - bl StringCopy - cmp r4, #0 - beq _08017518 - adds r0, r5, r4 - ldrb r0, [r0, #3] - lsrs r6, r0, #3 - movs r0, #1 - ands r6, r0 -_08017518: - ldrb r0, [r5, #0xa] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x19 - movs r1, #0x3f - ands r1, r0 - cmp r1, #4 - beq _08017564 - cmp r1, #4 - bgt _08017534 - cmp r1, #1 - beq _0801753E - b _080175D4 - .align 2, 0 -_08017530: .4byte gUnknown_2021C40 -_08017534: - cmp r1, #5 - beq _08017584 - cmp r1, #8 - beq _080175A8 - b _080175D4 -_0801753E: - ldr r5, _0801755C - ldr r4, _08017560 - bl Random - lsls r0, r0, #0x10 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r0 - lsrs r1, r1, #0xe - lsls r0, r6, #4 - adds r1, r1, r0 - adds r1, r1, r4 - ldr r1, [r1] - b _080175C2 - .align 2, 0 -_0801755C: .4byte gUnknown_2021C7C -_08017560: .4byte gUnknown_82C1498 -_08017564: - ldr r5, _0801757C - ldr r4, _08017580 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - ands r0, r1 - lsls r0, r0, #2 - lsls r1, r6, #4 - b _080175BC - .align 2, 0 -_0801757C: .4byte gUnknown_2021C7C -_08017580: .4byte gUnknown_82C1668 -_08017584: - ldr r5, _080175A0 - ldr r4, _080175A4 - bl Random - lsls r0, r0, #0x10 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r0 - lsrs r1, r1, #0xe - lsls r0, r6, #4 - adds r1, r1, r0 - adds r1, r1, r4 - ldr r1, [r1] - b _080175C2 - .align 2, 0 -_080175A0: .4byte gUnknown_2021C7C -_080175A4: .4byte gUnknown_82C1564 -_080175A8: - ldr r5, _080175CC - ldr r4, _080175D0 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - ands r0, r1 - lsls r0, r0, #2 - lsls r1, r6, #3 -_080175BC: - adds r0, r0, r1 - adds r0, r0, r4 - ldr r1, [r0] -_080175C2: - adds r0, r5, #0 - bl StringExpandPlaceholders - b _080175DC - .align 2, 0 -_080175CC: .4byte gUnknown_2021C7C -_080175D0: .4byte gUnknown_82C15E8 -_080175D4: - ldr r0, _080175E4 - ldr r1, _080175E8 - bl StringExpandPlaceholders -_080175DC: - movs r0, #0 -_080175DE: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080175E4: .4byte gUnknown_2021C7C -_080175E8: .4byte gUnknown_82C0FE0 - thumb_func_end sub_08017484 - - thumb_func_start sub_080175EC -sub_080175EC: @ 0x080175EC - bx lr - .align 2, 0 - thumb_func_end sub_080175EC - - thumb_func_start sub_080175F0 -sub_080175F0: @ 0x080175F0 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0xc - ldr r4, [sp, #0x28] - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - lsls r4, r4, #0x18 - lsrs r7, r4, #0x18 - ldrh r0, [r2, #8] - lsls r0, r0, #0x16 - lsrs r4, r0, #0x16 - ldrb r0, [r2, #9] - lsrs r0, r0, #2 - mov r8, r0 - ldrb r0, [r2, #0xb] - lsrs r0, r0, #1 - mov sb, r0 - str r5, [sp] - str r7, [sp, #4] - adds r0, r6, #0 - movs r1, #1 - adds r2, r3, #0 - movs r3, #0xa - bl sub_08016EA4 - movs r0, #0xce - lsls r0, r0, #1 - cmp r4, r0 - bne _08017648 - ldr r2, _08017644 - str r5, [sp] - str r7, [sp, #4] - adds r0, r6, #0 - movs r1, #1 - movs r3, #0x46 - bl sub_08016EA4 - b _0801769E - .align 2, 0 -_08017644: .4byte gUnknown_82C19AC -_08017648: - mov r1, r8 - adds r1, #1 - adds r0, r6, #0 - movs r2, #0x46 - adds r3, r5, #0 - bl blit_move_info_icon - lsls r2, r4, #1 - adds r2, r2, r4 - lsls r2, r2, #1 - ldr r0, _080176AC - adds r2, r2, r0 - str r5, [sp] - str r7, [sp, #4] - adds r0, r6, #0 - movs r1, #1 - movs r3, #0x78 - bl sub_08016EA4 - add r0, sp, #8 - mov r1, sb - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - movs r0, #1 - add r1, sp, #8 - movs r2, #0 - bl sub_08005DAC - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r3, #0xdc - subs r3, r3, r0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r5, [sp] - str r7, [sp, #4] - adds r0, r6, #0 - movs r1, #1 - add r2, sp, #8 - bl sub_08016EA4 -_0801769E: - add sp, #0xc - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080176AC: .4byte gUnknown_82EA31C - thumb_func_end sub_080175F0 - - thumb_func_start UpdateHpTextInHealthbox -UpdateHpTextInHealthbox: @ 0x080176B0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sb, r2 - ldr r0, _08017700 - ldr r0, [r0] - mov r8, r0 - movs r0, #3 - rsbs r0, r0, #0 - cmp r4, r0 - bne _0801772C - cmp r2, #1 - bne _0801772C - bl sub_0800F29C - adds r2, r0, #0 - ldrh r1, [r2, #8] - ldr r0, _08017704 - ands r0, r1 - cmp r0, #0 - beq _08017760 - ldr r0, _08017708 - ldr r3, [r0] - movs r0, #5 - str r0, [sp] - mov r0, sl - movs r1, #1 - bl sub_080175F0 - b _08017760 - .align 2, 0 -_08017700: .4byte gUnknown_20228E4 -_08017704: .4byte 0x000003FF -_08017708: .4byte gUnknown_3005AF0 -_0801770C: - adds r1, r7, r4 - adds r1, #0x10 - add r0, sp, #4 - bl StringCopy - mov r0, r8 - ldr r2, [r0] - adds r2, r2, r4 - movs r0, #6 - str r0, [sp] - mov r0, sl - mov r1, sb - add r3, sp, #4 - bl sub_080175F0 - b _08017760 -_0801772C: - movs r5, #0 - movs r1, #0 - mov r0, r8 - ldr r7, [r0] - adds r2, r7, #0 - adds r2, #8 - movs r3, #0 - adds r6, r4, #1 -_0801773C: - ldrb r0, [r2, #0x12] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - adds r4, r3, #0 - cmp r0, #1 - bne _08017752 - ldrh r0, [r2] - lsls r0, r0, #0x16 - cmp r0, #0 - beq _08017752 - adds r5, #1 -_08017752: - cmp r5, r6 - beq _0801770C - adds r2, #0x20 - adds r3, #0x20 - adds r1, #1 - cmp r1, #7 - ble _0801773C -_08017760: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end UpdateHpTextInHealthbox - - thumb_func_start sub_08017770 -sub_08017770: @ 0x08017770 - push {r4, r5, r6, r7, lr} - movs r4, #0 - movs r3, #0 - movs r7, #3 - ldr r6, _080177A0 - adds r2, r0, #0 - adds r2, #8 - adds r5, r1, #1 -_08017780: - ldrb r1, [r2, #0x12] - adds r0, r7, #0 - ands r0, r1 - cmp r0, #1 - bne _08017796 - ldrh r1, [r2] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _08017796 - adds r4, #1 -_08017796: - cmp r4, r5 - bne _080177A4 - adds r0, r3, #0 - b _080177B0 - .align 2, 0 -_080177A0: .4byte 0x000003FF -_080177A4: - adds r2, #0x20 - adds r3, #1 - cmp r3, #7 - ble _08017780 - movs r0, #1 - rsbs r0, r0, #0 -_080177B0: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08017770 - - thumb_func_start sub_080177B8 -sub_080177B8: @ 0x080177B8 - lsls r0, r0, #5 - adds r0, r0, r1 - ldrb r0, [r0, #0xb] - lsls r0, r0, #0x1f - lsrs r0, r0, #0x1f - bx lr - thumb_func_end sub_080177B8 - - thumb_func_start sub_080177C4 -sub_080177C4: @ 0x080177C4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #0xce - lsls r0, r0, #1 - cmp r1, r0 - bne _08017804 - movs r4, #0 - b _080177EE -_080177D4: - movs r0, #0x64 - muls r0, r4, r0 - ldr r1, _080177FC - adds r0, r0, r1 - movs r1, #0x41 - bl GetMonData - adds r1, r0, #0 - movs r0, #0xce - lsls r0, r0, #1 - cmp r1, r0 - beq _08017834 - adds r4, #1 -_080177EE: - ldr r0, _08017800 - ldrb r0, [r0] - cmp r4, r0 - blt _080177D4 - movs r0, #2 - b _08017850 - .align 2, 0 -_080177FC: .4byte gUnknown_2024190 -_08017800: .4byte gUnknown_202418D -_08017804: - movs r4, #0 - ldr r0, _08017838 - ldrb r0, [r0] - cmp r4, r0 - bge _0801784E - ldr r6, _0801783C -_08017810: - movs r0, #0x64 - muls r0, r4, r0 - ldr r1, _08017840 - adds r0, r0, r1 - movs r1, #0x41 - bl GetMonData - adds r1, r0, #0 - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r6 - ldrb r0, [r1, #6] - cmp r0, r5 - beq _08017834 - ldrb r0, [r1, #7] - cmp r0, r5 - bne _08017844 -_08017834: - movs r0, #0 - b _08017850 - .align 2, 0 -_08017838: .4byte gUnknown_202418D -_0801783C: .4byte gUnknown_82F0D54 -_08017840: .4byte gUnknown_2024190 -_08017844: - adds r4, #1 - ldr r0, _08017858 - ldrb r0, [r0] - cmp r4, r0 - blt _08017810 -_0801784E: - movs r0, #1 -_08017850: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08017858: .4byte gUnknown_202418D - thumb_func_end sub_080177C4 - - thumb_func_start sub_0801785C -sub_0801785C: @ 0x0801785C - push {lr} - adds r3, r0, #0 - cmp r1, #0x44 - beq _08017898 - cmp r1, #0x44 - bgt _0801786E - cmp r1, #0x41 - beq _08017878 - b _080178B6 -_0801786E: - cmp r1, #0x45 - beq _08017888 - cmp r1, #0x48 - beq _080178A8 - b _080178B6 -_08017878: - ldr r0, _08017884 - lsls r1, r2, #2 - adds r1, r1, r0 - ldr r1, [r1] - b _0801789A - .align 2, 0 -_08017884: .4byte gUnknown_82C1224 -_08017888: - ldr r0, _08017894 - lsls r1, r2, #2 - adds r1, r1, r0 - ldr r1, [r1] - b _0801789A - .align 2, 0 -_08017894: .4byte gUnknown_82C13C4 -_08017898: - ldr r1, _080178A4 -_0801789A: - adds r0, r3, #0 - bl StringExpandPlaceholders - b _080178B6 - .align 2, 0 -_080178A4: .4byte gUnknown_82C1998 -_080178A8: - ldr r0, _080178BC - lsls r1, r2, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r3, #0 - bl StringExpandPlaceholders -_080178B6: - pop {r0} - bx r0 - .align 2, 0 -_080178BC: .4byte gUnknown_82C127C - thumb_func_end sub_0801785C - - thumb_func_start sub_080178C0 -sub_080178C0: @ 0x080178C0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - adds r6, r4, #0 - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r2, _080178F4 - movs r0, #1 - adds r1, r3, #0 - eors r1, r0 - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #0x13] - cmp r4, #0x44 - beq _08017914 - cmp r4, #0x44 - bgt _080178F8 - cmp r4, #0x41 - beq _080178FE - b _08017954 - .align 2, 0 -_080178F4: .4byte gUnknown_20226A0 -_080178F8: - cmp r6, #0x45 - beq _08017938 - b _08017954 -_080178FE: - ldr r2, _08017910 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #3 - adds r1, r1, r0 - b _08017926 - .align 2, 0 -_08017910: .4byte gUnknown_82C1188 -_08017914: - ldr r2, _08017934 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #3 - adds r1, r1, r0 - adds r2, #8 -_08017926: - adds r1, r1, r2 - ldr r1, [r1] - adds r0, r5, #0 - bl StringCopy - b _08017954 - .align 2, 0 -_08017934: .4byte gUnknown_82C1188 -_08017938: - ldr r2, _0801795C - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #3 - adds r1, r1, r0 - adds r2, #4 - adds r1, r1, r2 - ldr r1, [r1] - adds r0, r5, #0 - bl StringCopy -_08017954: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0801795C: .4byte gUnknown_82C1188 - thumb_func_end sub_080178C0 - - thumb_func_start sub_08017960 -sub_08017960: @ 0x08017960 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - adds r6, r2, #0 - adds r5, r3, #0 - movs r2, #0 - mov r8, r2 - ldrh r0, [r6] - subs r0, #0x40 - cmp r0, #8 - bls _0801797A - b _08017A82 -_0801797A: - lsls r0, r0, #2 - ldr r1, _08017984 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08017984: .4byte _08017988 -_08017988: @ jump table - .4byte _08017A78 @ case 0 - .4byte _080179AC @ case 1 - .4byte _08017A82 @ case 2 - .4byte _08017A82 @ case 3 - .4byte _080179E8 @ case 4 - .4byte _080179B4 @ case 5 - .4byte _08017A82 @ case 6 - .4byte _08017A82 @ case 7 - .4byte _08017A68 @ case 8 -_080179AC: - ldr r1, _080179B0 - b _08017A6A - .align 2, 0 -_080179B0: .4byte gUnknown_82C0E1C -_080179B4: - ldr r1, _080179B8 - b _08017A6A - .align 2, 0 -_080179B8: .4byte gUnknown_82C0E40 -_080179BC: - adds r0, r5, #0 - adds r0, #0x6c - ldrh r1, [r6, #4] - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - adds r0, r5, #0 - adds r0, #0x76 - ldrh r2, [r6, #2] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080179E4 - adds r1, r1, r2 - bl StringCopy - ldrh r6, [r6, #2] - mov r8, r6 - b _08017A20 - .align 2, 0 -_080179E4: .4byte gUnknown_82EA31C -_080179E8: - adds r0, r5, #0 - adds r0, #0x58 - ldr r4, _08017A34 - ldrh r1, [r4, #0xc] - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - adds r0, r5, #0 - adds r0, #0x62 - ldrh r2, [r4, #0xa] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _08017A38 - adds r1, r1, r2 - bl StringCopy - movs r4, #0 - ldr r0, _08017A3C - ldr r1, [r0] -_08017A12: - ldrh r0, [r1, #0x18] - cmp r0, #2 - beq _080179BC - adds r1, #0x20 - adds r4, #1 - cmp r4, #3 - ble _08017A12 -_08017A20: - movs r0, #0xce - lsls r0, r0, #1 - cmp r8, r0 - bne _08017A44 - ldr r1, _08017A40 - adds r0, r7, #0 - bl StringCopy - b _08017A70 - .align 2, 0 -_08017A34: .4byte gUnknown_20228F4 -_08017A38: .4byte gUnknown_82EA31C -_08017A3C: .4byte gUnknown_3007630 -_08017A40: .4byte gUnknown_82C0EA8 -_08017A44: - movs r4, #0 - adds r5, #0x58 -_08017A48: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - adds r1, r5, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - adds r5, #0xa - adds r4, #1 - cmp r4, #3 - ble _08017A48 - ldr r1, _08017A64 - adds r0, r7, #0 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - b _08017A70 - .align 2, 0 -_08017A64: .4byte gUnknown_82C0E68 -_08017A68: - ldr r1, _08017A74 -_08017A6A: - adds r0, r7, #0 - bl StringExpandPlaceholders -_08017A70: - movs r2, #1 - b _08017A82 - .align 2, 0 -_08017A74: .4byte gUnknown_82C0DEC -_08017A78: - ldr r1, _08017A90 - adds r0, r7, #0 - bl StringExpandPlaceholders - movs r2, #2 -_08017A82: - adds r0, r2, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08017A90: .4byte gUnknown_82C0ED4 - thumb_func_end sub_08017960 - - thumb_func_start sub_08017A94 -sub_08017A94: @ 0x08017A94 - push {lr} - adds r2, r0, #0 - ldr r0, _08017AB4 - ldrh r1, [r0, #2] - cmp r1, #0 - beq _08017AB8 - cmp r1, #0x51 - beq _08017AA8 - cmp r1, #0x52 - bne _08017AB8 -_08017AA8: - adds r0, r2, #0 - adds r0, #0x80 - strh r1, [r0] - movs r0, #1 - b _08017ABA - .align 2, 0 -_08017AB4: .4byte gUnknown_3003130 -_08017AB8: - movs r0, #0 -_08017ABA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08017A94 - - thumb_func_start InUnionRoom -InUnionRoom: @ 0x08017AC0 - push {lr} - movs r2, #0 - ldr r0, _08017AD8 - ldr r0, [r0] - ldrh r1, [r0, #4] - ldr r0, _08017ADC - cmp r1, r0 - bne _08017AD2 - movs r2, #1 -_08017AD2: - adds r0, r2, #0 - pop {r1} - bx r1 - .align 2, 0 -_08017AD8: .4byte gUnknown_3005AEC -_08017ADC: .4byte 0x00003C19 - thumb_func_end InUnionRoom - - thumb_func_start sub_08017AE0 -sub_08017AE0: @ 0x08017AE0 - push {r4, r5, r6, lr} - movs r6, #0 - movs r5, #0 - ldr r0, _08017B28 - ldrb r0, [r0] - cmp r6, r0 - bge _08017B20 -_08017AEE: - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _08017B2C - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0x38 - bl GetMonData - cmp r0, #0x1e - bhi _08017B16 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - movs r1, #0xce - lsls r1, r1, #1 - cmp r0, r1 - beq _08017B16 - adds r6, #1 -_08017B16: - adds r5, #1 - ldr r0, _08017B28 - ldrb r0, [r0] - cmp r5, r0 - blt _08017AEE -_08017B20: - cmp r6, #1 - bgt _08017B30 - movs r0, #0 - b _08017B32 - .align 2, 0 -_08017B28: .4byte gUnknown_202418D -_08017B2C: .4byte gUnknown_2024190 -_08017B30: - movs r0, #1 -_08017B32: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_08017AE0 - - thumb_func_start sub_08017B38 -sub_08017B38: @ 0x08017B38 - movs r1, #0 - strh r1, [r0] - strh r1, [r0, #2] - str r1, [r0, #4] - strh r1, [r0, #0xa] - strh r1, [r0, #0xc] - strh r1, [r0, #0xe] - strh r1, [r0, #0x10] - str r1, [r0, #0x14] - bx lr - thumb_func_end sub_08017B38 - - thumb_func_start sub_08017B4C -sub_08017B4C: @ 0x08017B4C - push {lr} - ldr r0, _08017B58 - bl sub_08017B38 - pop {r0} - bx r0 - .align 2, 0 -_08017B58: .4byte gUnknown_20228F4 - thumb_func_end sub_08017B4C - - thumb_func_start sub_08017B5C -sub_08017B5C: @ 0x08017B5C - push {r4, r5, lr} - adds r5, r1, #0 - movs r1, #0x64 - adds r4, r0, #0 - muls r4, r1, r4 - ldr r0, _08017B98 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - strh r0, [r5, #0xa] - adds r0, r4, #0 - movs r1, #0x38 - bl GetMonData - strh r0, [r5, #0xc] - adds r0, r4, #0 - movs r1, #0 - bl GetMonData - str r0, [r5, #4] - ldrh r1, [r5, #0xa] - movs r0, #0xce - lsls r0, r0, #1 - cmp r1, r0 - beq _08017B9C - movs r0, #0 - b _08017B9E - .align 2, 0 -_08017B98: .4byte gUnknown_2024190 -_08017B9C: - movs r0, #1 -_08017B9E: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_08017B5C - - thumb_func_start sub_08017BA4 -sub_08017BA4: @ 0x08017BA4 - push {r4, r5, lr} - adds r5, r1, #0 - movs r1, #0x64 - adds r4, r0, #0 - muls r4, r1, r4 - ldr r0, _08017BD8 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - strh r0, [r5, #0xe] - adds r0, r4, #0 - movs r1, #0x38 - bl GetMonData - strh r0, [r5, #0x10] - adds r0, r4, #0 - movs r1, #0 - bl GetMonData - str r0, [r5, #0x14] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08017BD8: .4byte gUnknown_2024190 - thumb_func_end sub_08017BA4 - - thumb_func_start sub_08017BDC -sub_08017BDC: @ 0x08017BDC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r1, r1, #0x18 - movs r2, #0 - mov r8, r2 - cmp r1, #0 - bne _08017BFA - ldrh r7, [r0, #0xa] - ldr r6, [r0, #4] - b _08017BFE -_08017BF2: - lsls r0, r5, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - b _08017C32 -_08017BFA: - ldrh r7, [r0, #0xe] - ldr r6, [r0, #0x14] -_08017BFE: - movs r5, #0 - b _08017C2A -_08017C02: - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _08017C40 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0 - bl GetMonData - cmp r0, r6 - bne _08017C28 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r7 - beq _08017BF2 -_08017C28: - adds r5, #1 -_08017C2A: - ldr r0, _08017C44 - ldrb r0, [r0] - cmp r5, r0 - blt _08017C02 -_08017C32: - mov r0, r8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08017C40: .4byte gUnknown_2024190 -_08017C44: .4byte gUnknown_202418D - thumb_func_end sub_08017BDC - - thumb_func_start sub_08017C48 -sub_08017C48: @ 0x08017C48 - push {r4, lr} - adds r4, r0, #0 - bl sub_08016E74 - bl sub_080987E8 - bl sub_08097EAC - ldr r1, _08017C80 - movs r0, #0 - strb r0, [r1] - cmp r4, #0 - beq _08017C78 - ldr r2, _08017C84 - ldrh r0, [r2, #2] - ldrh r1, [r2, #0xa] - ldrh r2, [r2, #0xc] - bl sub_08010ABC - movs r0, #0x40 - movs r1, #0 - movs r2, #0 - bl sub_08010B80 -_08017C78: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08017C80: .4byte gUnknown_20228E0 -_08017C84: .4byte gUnknown_20228F4 - thumb_func_end sub_08017C48 - - thumb_func_start sub_08017C88 -sub_08017C88: @ 0x08017C88 - push {lr} - bl sub_080987DC - bl ScriptFreezeEventObjects - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08017C88 - - thumb_func_start sub_08017C98 -sub_08017C98: @ 0x08017C98 - push {r4, lr} - movs r3, #0x80 - movs r2, #0 - ldr r4, [r0, #0xc] -_08017CA0: - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r1, r4, r0 - ldrb r0, [r1, #0x18] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _08017CC8 - ldrb r0, [r1, #0xb] - lsls r0, r0, #0x1f - lsrs r0, r0, #0x1f - lsls r0, r0, #3 - orrs r3, r0 - ldrb r1, [r1, #2] - movs r0, #7 - ands r0, r1 - orrs r3, r0 - lsls r0, r3, #0x18 - lsrs r3, r0, #0x18 - b _08017CD2 -_08017CC8: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #3 - bls _08017CA0 -_08017CD2: - adds r0, r3, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08017C98 - - thumb_func_start sub_08017CDC -sub_08017CDC: @ 0x08017CDC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov sb, r1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp] - bl GetMultiplayerId - movs r1, #1 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x64 - muls r1, r0, r1 - ldr r0, _08017E68 - adds r1, r1, r0 - mov r8, r1 - bl DynamicPlaceholderTextUtil_Reset - mov r7, sb - adds r7, #0xa8 - bl sub_080686F0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xb - muls r1, r0, r1 - ldr r0, _08017E6C - adds r1, r1, r0 - adds r0, r7, #0 - bl StringCopy - movs r0, #0 - adds r1, r7, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - mov r1, r8 - adds r1, #0x30 - movs r0, #1 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - mov r6, sb - adds r6, #0xb7 - ldr r1, _08017E70 - mov r2, r8 - ldrb r0, [r2, #1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r6, #0 - bl StringCopy - movs r0, #2 - adds r1, r6, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - mov r5, sb - adds r5, #0xc6 - mov r0, r8 - ldrh r1, [r0, #0xc] - adds r0, r5, #0 - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - movs r0, #3 - adds r1, r5, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - movs r2, #0xd5 - add r2, sb - mov sl, r2 - mov r0, r8 - ldrh r1, [r0, #0x10] - mov r0, sl - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - mov r4, sb - adds r4, #0xe4 - mov r2, r8 - ldrh r1, [r2, #0x12] - adds r0, r4, #0 - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - movs r0, #4 - mov r1, sl - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - movs r0, #5 - adds r1, r4, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - movs r4, #0xae - lsls r4, r4, #1 - add r4, sb - ldr r1, _08017E74 - adds r0, r4, #0 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - ldr r0, _08017E78 - adds r1, r4, #0 - bl StringCopy - mov r0, r8 - ldrh r1, [r0, #0x14] - ldr r4, _08017E7C - cmp r1, r4 - ble _08017DC6 - adds r1, r4, #0 -_08017DC6: - adds r0, r7, #0 - movs r2, #0 - movs r3, #4 - bl sub_080089D8 - movs r0, #0 - adds r1, r7, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - mov r2, r8 - ldrh r1, [r2, #0x16] - cmp r1, r4 - ble _08017DE2 - adds r1, r4, #0 -_08017DE2: - adds r0, r6, #0 - movs r2, #0 - movs r3, #4 - bl sub_080089D8 - movs r0, #2 - adds r1, r6, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - mov r0, r8 - ldrh r1, [r0, #0x20] - adds r0, r5, #0 - movs r2, #0 - movs r3, #5 - bl sub_080089D8 - movs r0, #3 - adds r1, r5, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - movs r7, #0 - movs r6, #0x80 - lsls r6, r6, #0x13 - mov r5, r8 - adds r5, #0x28 - mov r4, sl -_08017E16: - ldrh r1, [r5] - adds r0, r4, #0 - bl CopyEasyChatWord - lsrs r0, r6, #0x18 - adds r1, r4, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - movs r2, #0x80 - lsls r2, r2, #0x11 - adds r6, r6, r2 - adds r5, #2 - adds r4, #0xf - adds r7, #1 - cmp r7, #3 - ble _08017E16 - movs r4, #0xae - lsls r4, r4, #1 - add r4, sb - ldr r1, _08017E80 - adds r0, r4, #0 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - ldr r5, _08017E78 - adds r0, r5, #0 - adds r1, r4, #0 - bl StringAppend - ldr r0, [sp] - cmp r0, #1 - bne _08017E88 - ldr r1, _08017E84 - adds r0, r4, #0 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - adds r0, r5, #0 - adds r1, r4, #0 - bl StringAppend - b _08017EA8 - .align 2, 0 -_08017E68: .4byte gUnknown_20397F8 -_08017E6C: .4byte gUnknown_82E3564 -_08017E70: .4byte gUnknown_82C1F08 -_08017E74: .4byte gUnknown_82C1F1C -_08017E78: .4byte gUnknown_2021C7C -_08017E7C: .4byte 0x0000270F -_08017E80: .4byte gUnknown_82C1F54 -_08017E84: .4byte gUnknown_82C1FAC -_08017E88: - ldr r2, [sp] - cmp r2, #0 - bne _08017EA8 - ldr r0, _08017EB8 - mov r2, r8 - ldrb r1, [r2] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - adds r0, r5, #0 - adds r1, r4, #0 - bl StringAppend -_08017EA8: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08017EB8: .4byte gUnknown_82C1FA4 - thumb_func_end sub_08017CDC - - thumb_func_start sub_08017EBC -sub_08017EBC: @ 0x08017EBC - push {lr} - bl ProcessSpriteCopyRequests - bl LoadOam - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08017EBC - - thumb_func_start c2_mystery_gift_e_reader_run -c2_mystery_gift_e_reader_run: @ 0x08017ED0 - push {lr} - bl RunTasks - bl sub_08004630 - bl AnimateSprites - bl BuildOamBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end c2_mystery_gift_e_reader_run - - thumb_func_start HandleMysteryGiftOrEReaderSetup -HandleMysteryGiftOrEReaderSetup: @ 0x08017EE8 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - adds r7, r0, #0 - ldr r0, _08017F08 - movs r1, #0x87 - lsls r1, r1, #3 - adds r6, r0, r1 - ldrb r0, [r6] - cmp r0, #1 - bne _08017EFE - b _0801800C -_08017EFE: - cmp r0, #1 - bgt _08017F0C - cmp r0, #0 - beq _08017F1A - b _080180D8 - .align 2, 0 -_08017F08: .4byte gUnknown_3002360 -_08017F0C: - cmp r0, #2 - bne _08017F12 - b _0801808C -_08017F12: - cmp r0, #3 - bne _08017F18 - b _080180AC -_08017F18: - b _080180D8 -_08017F1A: - movs r0, #0 - bl SetVBlankCallback - bl ResetPaletteFade - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetTasks - bl ScanlineEffect_Stop - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _08018004 - movs r0, #0 - movs r2, #4 - bl InitBgsFromTemplates - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r4, #0x80 - lsls r4, r4, #4 - adds r0, r4, #0 - bl sub_08000BC8 - adds r1, r0, #0 - movs r0, #3 - bl SetBgTilemapBuffer - adds r0, r4, #0 - bl sub_08000BC8 - adds r1, r0, #0 - movs r0, #2 - bl SetBgTilemapBuffer - adds r0, r4, #0 - bl sub_08000BC8 - adds r1, r0, #0 - movs r0, #1 - bl SetBgTilemapBuffer - adds r0, r4, #0 - bl sub_08000BC8 - adds r1, r0, #0 - movs r0, #0 - bl SetBgTilemapBuffer - movs r0, #3 - bl bgid_upload_textbox_1 - ldr r0, _08018008 - bl InitWindows - bl sub_08004480 - movs r1, #0xc0 - lsls r1, r1, #7 - movs r0, #0 - bl ClearGpuRegBits - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - b _080180A4 - .align 2, 0 -_08018004: .4byte gUnknown_82C24A4 -_08018008: .4byte gUnknown_82C24B4 -_0801800C: - ldr r0, _08018088 - movs r1, #0 - movs r2, #0x20 - bl LoadPalette - movs r0, #2 - bl stdpal_get - movs r1, #0xd0 - movs r2, #0x20 - bl LoadPalette - movs r0, #0xc0 - bl Menu_LoadStdPalAt - movs r0, #0 - movs r1, #0xa - movs r2, #0xe0 - bl LoadUserWindowBorderGfx - movs r0, #0 - movs r1, #1 - movs r2, #0xf0 - bl LoadUserWindowBorderGfx_ - movs r4, #0x20 - str r4, [sp] - str r4, [sp, #4] - movs r5, #0x11 - str r5, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #1 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #2 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect - movs r0, #3 - bl MG_DrawCheckerboardPattern - lsls r0, r7, #0x18 - lsrs r0, r0, #0x18 - bl sub_08018180 - b _080180A4 - .align 2, 0 -_08018088: .4byte gUnknown_82C2454 -_0801808C: - movs r0, #3 - bl CopyBgTilemapBufferToVram - movs r0, #2 - bl CopyBgTilemapBufferToVram - movs r0, #1 - bl CopyBgTilemapBufferToVram - movs r0, #0 - bl CopyBgTilemapBufferToVram -_080180A4: - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] - b _080180D8 -_080180AC: - movs r0, #0 - bl ShowBg - movs r0, #3 - bl ShowBg - ldr r0, _080180D0 - bl PlayBGM - ldr r0, _080180D4 - bl SetVBlankCallback - movs r0, #0xc5 - bl EnableInterrupts - movs r0, #1 - b _080180DA - .align 2, 0 -_080180D0: .4byte 0x0000021D -_080180D4: .4byte sub_08017EBC -_080180D8: - movs r0, #0 -_080180DA: - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end HandleMysteryGiftOrEReaderSetup - - thumb_func_start sub_080180E4 -sub_080180E4: @ 0x080180E4 - push {lr} - movs r0, #0 - bl HandleMysteryGiftOrEReaderSetup - cmp r0, #0 - beq _08018100 - ldr r0, _08018108 - bl SetMainCallback2 - ldr r1, _0801810C - movs r0, #0 - strb r0, [r1] - bl task_add_00_mystery_gift -_08018100: - bl RunTasks - pop {r0} - bx r0 - .align 2, 0 -_08018108: .4byte c2_mystery_gift_e_reader_run -_0801810C: .4byte gUnknown_2022914 - thumb_func_end sub_080180E4 - - thumb_func_start c2_ereader -c2_ereader: @ 0x08018110 - push {lr} - movs r0, #1 - bl HandleMysteryGiftOrEReaderSetup - cmp r0, #0 - beq _0801812C - ldr r0, _08018130 - bl SetMainCallback2 - ldr r1, _08018134 - movs r0, #1 - strb r0, [r1] - bl sub_081D4694 -_0801812C: - pop {r0} - bx r0 - .align 2, 0 -_08018130: .4byte c2_mystery_gift_e_reader_run -_08018134: .4byte gUnknown_2022914 - thumb_func_end c2_ereader - - thumb_func_start MainCB_FreeAllBuffersAndReturnToInitTitleScreen -MainCB_FreeAllBuffersAndReturnToInitTitleScreen: @ 0x08018138 - push {lr} - ldr r1, _08018178 - movs r0, #0 - strb r0, [r1] - bl FreeAllWindowBuffers - movs r0, #0 - bl GetBgTilemapBuffer - bl Free - movs r0, #1 - bl GetBgTilemapBuffer - bl Free - movs r0, #2 - bl GetBgTilemapBuffer - bl Free - movs r0, #3 - bl GetBgTilemapBuffer - bl Free - ldr r0, _0801817C - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_08018178: .4byte gUnknown_2022914 -_0801817C: .4byte sub_080AA06C - thumb_func_end MainCB_FreeAllBuffersAndReturnToInitTitleScreen - - thumb_func_start sub_08018180 -sub_08018180: @ 0x08018180 - push {r4, r5, lr} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r0, #0 - movs r1, #0 - bl FillWindowPixelBuffer - cmp r5, #0 - bne _080181D4 - str r5, [sp] - str r5, [sp, #4] - ldr r4, _080181C8 - str r4, [sp, #8] - str r5, [sp, #0xc] - ldr r0, _080181CC - str r0, [sp, #0x10] - movs r0, #0 - movs r1, #1 - movs r2, #2 - movs r3, #2 - bl AddTextPrinterParameterized4 - str r5, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - str r5, [sp, #0xc] - ldr r0, _080181D0 - str r0, [sp, #0x10] - movs r0, #0 - movs r1, #0 - movs r2, #0x64 - movs r3, #2 - bl AddTextPrinterParameterized4 - b _08018208 - .align 2, 0 -_080181C8: .4byte gUnknown_82C2B64 -_080181CC: .4byte gUnknown_82C2B44 -_080181D0: .4byte gUnknown_82C2B50 -_080181D4: - movs r4, #0 - str r4, [sp] - str r4, [sp, #4] - ldr r5, _08018220 - str r5, [sp, #8] - str r4, [sp, #0xc] - ldr r0, _08018224 - str r0, [sp, #0x10] - movs r0, #0 - movs r1, #1 - movs r2, #2 - movs r3, #2 - bl AddTextPrinterParameterized4 - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - str r4, [sp, #0xc] - ldr r0, _08018228 - str r0, [sp, #0x10] - movs r0, #0 - movs r1, #0 - movs r2, #0x78 - movs r3, #2 - bl AddTextPrinterParameterized4 -_08018208: - movs r0, #0 - movs r1, #2 - bl CopyWindowToVram - movs r0, #0 - bl PutWindowTilemap - add sp, #0x14 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08018220: .4byte gUnknown_82C2B64 -_08018224: .4byte gUnknown_85CCED5 -_08018228: .4byte gUnknown_85CCEDF - thumb_func_end sub_08018180 - - thumb_func_start MG_DrawTextBorder -MG_DrawTextBorder: @ 0x0801822C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - movs r2, #0xf - bl DrawTextBorderOuter - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end MG_DrawTextBorder - - thumb_func_start MG_DrawCheckerboardPattern -MG_DrawCheckerboardPattern: @ 0x08018240 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - adds r4, r0, #0 - movs r0, #0 - mov sb, r0 - lsls r4, r4, #0x18 - lsrs r0, r4, #0x18 - movs r1, #0x20 - str r1, [sp] - movs r1, #2 - str r1, [sp, #4] - movs r1, #0x11 - str r1, [sp, #8] - movs r1, #3 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect - mov r8, r4 - movs r4, #1 -_08018270: - movs r7, #0 - mov r0, sb - adds r0, #2 - movs r1, #1 - add r1, sb - mov sl, r1 - lsls r5, r0, #0x18 - movs r6, #0 -_08018280: - mov r1, sb - ands r1, r4 - adds r0, r7, #0 - ands r0, r4 - cmp r1, r0 - beq _080182A4 - lsrs r2, r6, #0x18 - str r4, [sp] - str r4, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - mov r1, r8 - lsrs r0, r1, #0x18 - movs r1, #1 - lsrs r3, r5, #0x18 - bl FillBgTilemapBufferRect - b _080182BA -_080182A4: - lsrs r2, r6, #0x18 - str r4, [sp] - str r4, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - mov r1, r8 - lsrs r0, r1, #0x18 - movs r1, #2 - lsrs r3, r5, #0x18 - bl FillBgTilemapBufferRect -_080182BA: - movs r0, #0x80 - lsls r0, r0, #0x11 - adds r6, r6, r0 - adds r7, #1 - cmp r7, #0x1f - ble _08018280 - mov sb, sl - mov r1, sb - cmp r1, #0x11 - ble _08018270 - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end MG_DrawCheckerboardPattern - - thumb_func_start ClearScreenInBg0 -ClearScreenInBg0: @ 0x080182E0 - push {lr} - sub sp, #0xc - cmp r0, #0 - beq _080182EE - cmp r0, #1 - beq _08018306 - b _0801831E -_080182EE: - movs r0, #0x20 - str r0, [sp] - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect - b _0801831E -_08018306: - movs r0, #0x20 - str r0, [sp] - movs r0, #0x1e - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #2 - bl FillBgTilemapBufferRect -_0801831E: - movs r0, #0 - bl CopyBgTilemapBufferToVram - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ClearScreenInBg0 - - thumb_func_start AddTextPrinterToWindow1 -AddTextPrinterToWindow1: @ 0x0801832C - push {r4, lr} - sub sp, #0x14 - adds r1, r0, #0 - ldr r4, _08018380 - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #1 - movs r1, #0x11 - bl FillWindowPixelBuffer - movs r1, #0 - str r1, [sp] - movs r0, #1 - str r0, [sp, #4] - ldr r0, _08018384 - str r0, [sp, #8] - str r1, [sp, #0xc] - str r4, [sp, #0x10] - movs r0, #1 - movs r1, #1 - movs r2, #2 - movs r3, #2 - bl AddTextPrinterParameterized4 - movs r0, #1 - movs r1, #1 - movs r2, #0xf - bl DrawTextBorderOuter - movs r0, #1 - bl PutWindowTilemap - movs r0, #1 - movs r1, #3 - bl CopyWindowToVram - add sp, #0x14 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08018380: .4byte gUnknown_2021C7C -_08018384: .4byte gUnknown_82C2B6C - thumb_func_end AddTextPrinterToWindow1 - - thumb_func_start ClearTextWindow -ClearTextWindow: @ 0x08018388 - push {lr} - movs r0, #1 - bl rbox_fill_rectangle - movs r0, #1 - bl ClearWindowTilemap - movs r0, #1 - movs r1, #1 - bl CopyWindowToVram - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ClearTextWindow - - thumb_func_start MG_PrintTextOnWindow1AndWaitButton -MG_PrintTextOnWindow1AndWaitButton: @ 0x080183A4 - push {r4, lr} - sub sp, #0xc - adds r4, r0, #0 - adds r0, r1, #0 - ldrb r2, [r4] - cmp r2, #1 - beq _080183CC - cmp r2, #1 - bgt _080183BC - cmp r2, #0 - beq _080183C6 - b _0801842C -_080183BC: - cmp r2, #2 - beq _08018400 - cmp r2, #0xff - beq _08018428 - b _0801842C -_080183C6: - bl AddTextPrinterToWindow1 - b _080183F0 -_080183CC: - movs r0, #0 - str r0, [sp] - ldr r0, _080183F8 - str r0, [sp, #4] - adds r0, #1 - str r0, [sp, #8] - movs r0, #1 - movs r1, #0xd0 - movs r2, #0x14 - movs r3, #1 - bl DrawDownArrow - ldr r0, _080183FC - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _0801842C -_080183F0: - ldrb r0, [r4] - adds r0, #1 - b _0801842A - .align 2, 0 -_080183F8: .4byte gUnknown_202290C -_080183FC: .4byte gUnknown_3002360 -_08018400: - movs r0, #1 - str r0, [sp] - ldr r0, _08018424 - str r0, [sp, #4] - adds r0, #1 - str r0, [sp, #8] - movs r0, #1 - movs r1, #0xd0 - movs r2, #0x14 - movs r3, #1 - bl DrawDownArrow - movs r0, #0 - strb r0, [r4] - bl ClearTextWindow - movs r0, #1 - b _0801842E - .align 2, 0 -_08018424: .4byte gUnknown_202290C -_08018428: - movs r0, #2 -_0801842A: - strb r0, [r4] -_0801842C: - movs r0, #0 -_0801842E: - add sp, #0xc - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MG_PrintTextOnWindow1AndWaitButton - - thumb_func_start HideDownArrow -HideDownArrow: @ 0x08018438 - push {lr} - sub sp, #0xc - movs r0, #0 - str r0, [sp] - ldr r0, _0801845C - str r0, [sp, #4] - adds r0, #1 - str r0, [sp, #8] - movs r0, #1 - movs r1, #0xd0 - movs r2, #0x14 - movs r3, #1 - bl DrawDownArrow - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_0801845C: .4byte gUnknown_202290C - thumb_func_end HideDownArrow - - thumb_func_start ShowDownArrow -ShowDownArrow: @ 0x08018460 - push {lr} - sub sp, #0xc - movs r0, #1 - str r0, [sp] - ldr r0, _08018484 - str r0, [sp, #4] - adds r0, #1 - str r0, [sp, #8] - movs r0, #1 - movs r1, #0xd0 - movs r2, #0x14 - movs r3, #1 - bl DrawDownArrow - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_08018484: .4byte gUnknown_202290C - thumb_func_end ShowDownArrow - - thumb_func_start unref_HideDownArrowAndWaitButton -unref_HideDownArrowAndWaitButton: @ 0x08018488 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4] - cmp r0, #0 - beq _08018498 - cmp r0, #1 - beq _080184B4 - b _080184C0 -_08018498: - bl HideDownArrow - ldr r0, _080184B0 - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _080184C0 - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - b _080184C0 - .align 2, 0 -_080184B0: .4byte gUnknown_3002360 -_080184B4: - bl ShowDownArrow - movs r0, #0 - strb r0, [r4] - movs r0, #1 - b _080184C2 -_080184C0: - movs r0, #0 -_080184C2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end unref_HideDownArrowAndWaitButton - - thumb_func_start PrintStringAndWait2Seconds -PrintStringAndWait2Seconds: @ 0x080184C8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4] - cmp r0, #0 - bne _080184D8 - adds r0, r1, #0 - bl AddTextPrinterToWindow1 -_080184D8: - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x78 - bhi _080184EA - movs r0, #0 - b _080184F4 -_080184EA: - movs r0, #0 - strb r0, [r4] - bl ClearTextWindow - movs r0, #1 -_080184F4: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end PrintStringAndWait2Seconds - - thumb_func_start MysteryGift_HandleThreeOptionMenu -MysteryGift_HandleThreeOptionMenu: @ 0x080184FC - push {r4, r5, lr} - sub sp, #0x1c - lsls r2, r2, #0x18 - add r1, sp, #4 - ldr r0, _08018518 - ldm r0!, {r3, r4, r5} - stm r1!, {r3, r4, r5} - ldm r0!, {r3, r4, r5} - stm r1!, {r3, r4, r5} - cmp r2, #0 - bne _08018520 - ldr r0, _0801851C - b _08018522 - .align 2, 0 -_08018518: .4byte gUnknown_82C256C -_0801851C: .4byte gUnknown_82C253C -_08018520: - ldr r0, _08018558 -_08018522: - str r0, [sp, #4] - ldr r0, _0801855C - movs r1, #0xe0 - str r1, [sp] - add r1, sp, #4 - movs r2, #1 - movs r3, #0xa - bl DoMysteryGiftListMenu - adds r4, r0, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r4, r0 - beq _0801854C - movs r0, #2 - bl ClearWindowTilemap - movs r0, #2 - movs r1, #1 - bl CopyWindowToVram -_0801854C: - adds r0, r4, #0 - add sp, #0x1c - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08018558: .4byte gUnknown_82C2554 -_0801855C: .4byte gUnknown_82C24EC - thumb_func_end MysteryGift_HandleThreeOptionMenu - - thumb_func_start mevent_message_print_and_prompt_yes_no -mevent_message_print_and_prompt_yes_no: @ 0x08018560 - push {r4, r5, r6, lr} - sub sp, #0x1c - adds r5, r0, #0 - adds r4, r1, #0 - adds r1, r3, #0 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - ldrb r0, [r5] - cmp r0, #1 - beq _080185F4 - cmp r0, #1 - bgt _0801857E - cmp r0, #0 - beq _0801858A - b _080186A6 -_0801857E: - cmp r0, #2 - beq _0801864C - cmp r0, #0xff - bne _08018588 - b _08018682 -_08018588: - b _080186A6 -_0801858A: - ldr r0, _08018598 - bl StringExpandPlaceholders - cmp r6, #0 - bne _080185A0 - ldr r0, _0801859C - b _080185A2 - .align 2, 0 -_08018598: .4byte gUnknown_2021C7C -_0801859C: .4byte gUnknown_82C24D4 -_080185A0: - ldr r0, _080185E8 -_080185A2: - bl AddWindow - strh r0, [r4] - ldrb r0, [r4] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldrb r0, [r4] - movs r2, #0 - str r2, [sp] - movs r1, #1 - str r1, [sp, #4] - ldr r1, _080185EC - str r1, [sp, #8] - str r2, [sp, #0xc] - ldr r1, _080185F0 - str r1, [sp, #0x10] - movs r1, #1 - movs r2, #2 - movs r3, #2 - bl AddTextPrinterParameterized4 - ldrb r0, [r4] - movs r1, #1 - movs r2, #0xf - bl DrawTextBorderOuter - ldrb r0, [r4] - movs r1, #2 - bl CopyWindowToVram - ldrb r0, [r4] - bl PutWindowTilemap - b _0801863E - .align 2, 0 -_080185E8: .4byte gUnknown_82C24DC -_080185EC: .4byte gUnknown_82C2B6C -_080185F0: .4byte gUnknown_2021C7C -_080185F4: - ldr r0, _08018610 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [sp, #0x14] - str r1, [sp, #0x18] - cmp r6, #0 - bne _08018618 - ldr r0, _08018614 - ldr r1, [sp, #0x14] - ands r1, r0 - movs r0, #0x90 - lsls r0, r0, #0xc - b _08018622 - .align 2, 0 -_08018610: .4byte gUnknown_82C24F4 -_08018614: .4byte 0xFF00FFFF -_08018618: - ldr r0, _08018648 - ldr r1, [sp, #0x14] - ands r1, r0 - movs r0, #0xf0 - lsls r0, r0, #0xc -_08018622: - orrs r1, r0 - str r1, [sp, #0x14] - movs r0, #0xa - str r0, [sp] - movs r0, #0xe - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - add r0, sp, #0x14 - movs r1, #1 - movs r2, #2 - movs r3, #2 - bl sub_08198C08 -_0801863E: - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - b _080186A6 - .align 2, 0 -_08018648: .4byte 0xFF00FFFF -_0801864C: - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r6, r0, #0x18 - movs r1, #0x80 - lsls r1, r1, #0x11 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - cmp r0, #2 - bhi _080186A6 - movs r0, #0 - strb r0, [r5] - ldrb r0, [r4] - bl rbox_fill_rectangle - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - movs r1, #1 - bl CopyWindowToVram - ldrb r0, [r4] - bl RemoveWindow - adds r0, r6, #0 - b _080186AA -_08018682: - movs r0, #0 - strb r0, [r5] - ldrb r0, [r4] - bl rbox_fill_rectangle - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - movs r1, #1 - bl CopyWindowToVram - ldrb r0, [r4] - bl RemoveWindow - movs r0, #1 - rsbs r0, r0, #0 - b _080186AA -_080186A6: - movs r0, #2 - rsbs r0, r0, #0 -_080186AA: - add sp, #0x1c - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end mevent_message_print_and_prompt_yes_no - - thumb_func_start BufferMonTrainerMemo -BufferMonTrainerMemo: @ 0x080186B4 - push {r4, r5, r6, lr} - sub sp, #0x14 - adds r6, r0, #0 - adds r5, r1, #0 - ldrb r0, [r6] - cmp r0, #1 - beq _08018754 - cmp r0, #1 - bgt _080186CC - cmp r0, #0 - beq _080186D4 - b _080187F8 -_080186CC: - cmp r0, #0xff - bne _080186D2 - b _080187D4 -_080186D2: - b _080187F8 -_080186D4: - cmp r2, #0 - bne _080186EC - ldr r0, _080186E4 - ldr r1, _080186E8 - bl StringExpandPlaceholders - b _080186F4 - .align 2, 0 -_080186E4: .4byte gUnknown_2021C7C -_080186E8: .4byte gUnknown_82C2974 -_080186EC: - ldr r0, _08018744 - ldr r1, _08018748 - bl StringExpandPlaceholders -_080186F4: - ldr r0, _0801874C - bl AddWindow - strh r0, [r5] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldrb r0, [r5] - movs r2, #0 - str r2, [sp] - movs r1, #1 - str r1, [sp, #4] - ldr r1, _08018750 - str r1, [sp, #8] - str r2, [sp, #0xc] - ldr r1, _08018744 - str r1, [sp, #0x10] - movs r1, #1 - movs r2, #2 - movs r3, #2 - bl AddTextPrinterParameterized4 - ldrb r0, [r5] - movs r1, #1 - movs r2, #0xf - bl DrawTextBorderOuter - ldrb r0, [r5] - movs r1, #2 - bl CopyWindowToVram - ldrb r0, [r5] - bl PutWindowTilemap - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] - b _080187F8 - .align 2, 0 -_08018744: .4byte gUnknown_2021C7C -_08018748: .4byte gUnknown_82C2984 -_0801874C: .4byte gUnknown_82C24E4 -_08018750: .4byte gUnknown_82C2B6C -_08018754: - cmp r3, #0 - beq _0801877C - cmp r2, #0 - bne _0801876C - ldr r0, _08018764 - ldr r1, _08018768 - b _08018794 - .align 2, 0 -_08018764: .4byte gUnknown_82C2504 -_08018768: .4byte gUnknown_82C260C -_0801876C: - ldr r0, _08018774 - ldr r1, _08018778 - b _08018794 - .align 2, 0 -_08018774: .4byte gUnknown_82C250C -_08018778: .4byte gUnknown_82C263C -_0801877C: - cmp r2, #0 - bne _08018790 - ldr r0, _08018788 - ldr r1, _0801878C - b _08018794 - .align 2, 0 -_08018788: .4byte gUnknown_82C24FC -_0801878C: .4byte gUnknown_82C25F4 -_08018790: - ldr r0, _080187CC - ldr r1, _080187D0 -_08018794: - movs r2, #0xe0 - str r2, [sp] - movs r2, #1 - movs r3, #0xa - bl DoMysteryGiftListMenu - adds r4, r0, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r4, r0 - beq _080187F8 - movs r0, #0 - strb r0, [r6] - ldrb r0, [r5] - bl rbox_fill_rectangle - ldrb r0, [r5] - bl ClearWindowTilemap - ldrb r0, [r5] - movs r1, #1 - bl CopyWindowToVram - ldrb r0, [r5] - bl RemoveWindow - adds r0, r4, #0 - b _080187FC - .align 2, 0 -_080187CC: .4byte gUnknown_82C2504 -_080187D0: .4byte gUnknown_82C2624 -_080187D4: - movs r0, #0 - strb r0, [r6] - ldrb r0, [r5] - bl rbox_fill_rectangle - ldrb r0, [r5] - bl ClearWindowTilemap - ldrb r0, [r5] - movs r1, #1 - bl CopyWindowToVram - ldrb r0, [r5] - bl RemoveWindow - movs r0, #2 - rsbs r0, r0, #0 - b _080187FC -_080187F8: - movs r0, #1 - rsbs r0, r0, #0 -_080187FC: - add sp, #0x14 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end BufferMonTrainerMemo - - thumb_func_start ValidateCardOrNews -ValidateCardOrNews: @ 0x08018804 - push {lr} - cmp r0, #0 - beq _08018810 - bl ItemUseInBattle_Escape - b _08018814 -_08018810: - bl CreateSetStatusSprite -_08018814: - pop {r1} - bx r1 - thumb_func_end ValidateCardOrNews - - thumb_func_start HandleLoadWonderCardOrNews -HandleLoadWonderCardOrNews: @ 0x08018818 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5] - cmp r0, #0 - beq _08018828 - cmp r0, #1 - beq _08018850 - b _0801886C -_08018828: - cmp r1, #0 - bne _08018840 - bl sub_0801AAF4 - adds r4, r0, #0 - bl sub_0801AB08 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_0801B5D8 - b _08018848 -_08018840: - bl sub_0801AAE0 - bl sub_0801C224 -_08018848: - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - b _0801886C -_08018850: - cmp r1, #0 - bne _0801885E - bl sub_0801B69C -_08018858: - cmp r0, #0 - bne _08018864 - b _0801886C -_0801885E: - bl sub_0801C2AC - b _08018858 -_08018864: - movs r0, #0 - strb r0, [r5] - movs r0, #1 - b _0801886E -_0801886C: - movs r0, #0 -_0801886E: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end HandleLoadWonderCardOrNews - - thumb_func_start DestroyNewsOrCard -DestroyNewsOrCard: @ 0x08018874 - push {lr} - cmp r0, #0 - bne _08018880 - bl DestroyWonderCard - b _08018884 -_08018880: - bl sub_0801AB44 -_08018884: - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end DestroyNewsOrCard - - thumb_func_start sub_0801888C -sub_0801888C: @ 0x0801888C - push {lr} - cmp r0, #0 - bne _080188A0 - bl sub_0801B8B0 - cmp r0, #0 - beq _080188A8 - bl DestroyWonderCardResources - b _080188B0 -_080188A0: - bl sub_0801C588 - cmp r0, #0 - bne _080188AC -_080188A8: - movs r0, #0 - b _080188B2 -_080188AC: - bl DestroyWonderNewsResources -_080188B0: - movs r0, #1 -_080188B2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801888C - - thumb_func_start mevent_message_prompt_discard -mevent_message_prompt_discard: @ 0x080188B8 - push {lr} - cmp r2, #0 - beq _080188C8 - ldr r3, _080188C4 - b _080188CA - .align 2, 0 -_080188C4: .4byte gUnknown_82C2AB4 -_080188C8: - ldr r3, _080188D8 -_080188CA: - movs r2, #1 - bl mevent_message_print_and_prompt_yes_no - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_080188D8: .4byte gUnknown_82C2A94 - thumb_func_end mevent_message_prompt_discard - - thumb_func_start mevent_message_was_thrown_away -mevent_message_was_thrown_away: @ 0x080188DC - push {lr} - cmp r1, #0 - beq _080188EC - ldr r1, _080188E8 - b _080188EE - .align 2, 0 -_080188E8: .4byte gUnknown_82C2B38 -_080188EC: - ldr r1, _080188F8 -_080188EE: - bl MG_PrintTextOnWindow1AndWaitButton - pop {r1} - bx r1 - .align 2, 0 -_080188F8: .4byte gUnknown_82C2B28 - thumb_func_end mevent_message_was_thrown_away - - thumb_func_start mevent_save_game -mevent_save_game: @ 0x080188FC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4] - cmp r0, #4 - bhi _0801896C - lsls r0, r0, #2 - ldr r1, _08018910 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08018910: .4byte _08018914 -_08018914: @ jump table - .4byte _08018928 @ case 0 - .4byte _08018934 @ case 1 - .4byte _0801893C @ case 2 - .4byte _08018948 @ case 3 - .4byte _08018960 @ case 4 -_08018928: - ldr r0, _08018930 - bl AddTextPrinterToWindow1 - b _08018954 - .align 2, 0 -_08018930: .4byte gUnknown_82C2AEC -_08018934: - movs r0, #0 - bl TrySavingData - b _08018954 -_0801893C: - ldr r0, _08018944 - bl AddTextPrinterToWindow1 - b _08018954 - .align 2, 0 -_08018944: .4byte gUnknown_82C2B08 -_08018948: - ldr r0, _0801895C - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _0801896C -_08018954: - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - b _0801896C - .align 2, 0 -_0801895C: .4byte gUnknown_3002360 -_08018960: - movs r0, #0 - strb r0, [r4] - bl ClearTextWindow - movs r0, #1 - b _0801896E -_0801896C: - movs r0, #0 -_0801896E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end mevent_save_game - - thumb_func_start mevent_message -mevent_message: @ 0x08018974 - push {r4, r5, r6, lr} - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - movs r2, #0 - str r2, [r4] - cmp r3, #0xe - bls _0801898A - b _08018A9C -_0801898A: - lsls r0, r3, #2 - ldr r1, _08018994 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08018994: .4byte _08018998 -_08018998: @ jump table - .4byte _080189D4 @ case 0 - .4byte _080189E0 @ case 1 - .4byte _080189EC @ case 2 - .4byte _08018A04 @ case 3 - .4byte _08018A1C @ case 4 - .4byte _08018A28 @ case 5 - .4byte _08018A34 @ case 6 - .4byte _08018A40 @ case 7 - .4byte _08018A4C @ case 8 - .4byte _08018A58 @ case 9 - .4byte _08018A64 @ case 10 - .4byte _08018A7C @ case 11 - .4byte _08018A88 @ case 12 - .4byte _08018A94 @ case 13 - .4byte _08018A98 @ case 14 -_080189D4: - movs r0, #0 - str r0, [r4] - ldr r2, _080189DC - b _08018A9C - .align 2, 0 -_080189DC: .4byte gUnknown_82C2960 -_080189E0: - movs r0, #0 - str r0, [r4] - ldr r2, _080189E8 - b _08018A9C - .align 2, 0 -_080189E8: .4byte gUnknown_82C2904 -_080189EC: - movs r0, #1 - str r0, [r4] - ldr r2, _080189FC - cmp r5, #0 - bne _08018A9C - ldr r2, _08018A00 - b _08018A9C - .align 2, 0 -_080189FC: .4byte gUnknown_82C2804 -_08018A00: .4byte gUnknown_82C2838 -_08018A04: - movs r0, #1 - str r0, [r4] - ldr r2, _08018A14 - cmp r5, #0 - bne _08018A9C - ldr r2, _08018A18 - b _08018A9C - .align 2, 0 -_08018A14: .4byte gUnknown_82C2820 -_08018A18: .4byte gUnknown_82C2854 -_08018A1C: - movs r0, #1 - str r0, [r4] - ldr r2, _08018A24 - b _08018A9C - .align 2, 0 -_08018A24: .4byte gUnknown_82C286C -_08018A28: - movs r0, #0 - str r0, [r4] - ldr r2, _08018A30 - b _08018A9C - .align 2, 0 -_08018A30: .4byte gUnknown_82C28A0 -_08018A34: - movs r0, #0 - str r0, [r4] - ldr r2, _08018A3C - b _08018A9C - .align 2, 0 -_08018A3C: .4byte gUnknown_82C28D0 -_08018A40: - movs r0, #0 - str r0, [r4] - ldr r2, _08018A48 - b _08018A9C - .align 2, 0 -_08018A48: .4byte gUnknown_82C28B8 -_08018A4C: - movs r0, #0 - str r0, [r4] - ldr r2, _08018A54 - b _08018A9C - .align 2, 0 -_08018A54: .4byte gUnknown_82C28E8 -_08018A58: - movs r0, #0 - str r0, [r4] - ldr r2, _08018A60 - b _08018A9C - .align 2, 0 -_08018A60: .4byte gUnknown_82C27A0 -_08018A64: - movs r0, #0 - str r0, [r4] - ldr r2, _08018A74 - cmp r6, #0 - bne _08018A9C - ldr r2, _08018A78 - b _08018A9C - .align 2, 0 -_08018A74: .4byte gUnknown_82C2944 -_08018A78: .4byte gUnknown_82C2924 -_08018A7C: - movs r0, #0 - str r0, [r4] - ldr r2, _08018A84 - b _08018A9C - .align 2, 0 -_08018A84: .4byte gUnknown_82C2790 -_08018A88: - movs r0, #1 - str r0, [r4] - ldr r2, _08018A90 - b _08018A9C - .align 2, 0 -_08018A90: .4byte gUnknown_82C2884 -_08018A94: - movs r0, #1 - b _08018A9A -_08018A98: - movs r0, #0 -_08018A9A: - str r0, [r4] -_08018A9C: - adds r0, r2, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end mevent_message - - thumb_func_start PrintMGSuccessMessage -PrintMGSuccessMessage: @ 0x08018AA4 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r0, r1, #0 - adds r5, r2, #0 - ldrb r4, [r6] - cmp r4, #1 - beq _08018AD6 - cmp r4, #1 - bgt _08018ABC - cmp r4, #0 - beq _08018AC2 - b _08018B02 -_08018ABC: - cmp r4, #2 - beq _08018AEC - b _08018B02 -_08018AC2: - cmp r0, #0 - beq _08018ACA - bl AddTextPrinterToWindow1 -_08018ACA: - movs r0, #0xb9 - lsls r0, r0, #1 - bl PlayFanfare - strh r4, [r5] - b _08018AE4 -_08018AD6: - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xf0 - bls _08018B02 -_08018AE4: - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] - b _08018B02 -_08018AEC: - bl IsFanfareTaskInactive - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08018B02 - movs r0, #0 - strb r0, [r6] - bl ClearTextWindow - movs r0, #1 - b _08018B04 -_08018B02: - movs r0, #0 -_08018B04: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end PrintMGSuccessMessage - - thumb_func_start mevent_message_stamp_card_etc_send_status -mevent_message_stamp_card_etc_send_status: @ 0x08018B0C - push {r4, lr} - adds r3, r0, #0 - ldr r1, _08018B28 - movs r0, #0 - str r0, [r3] - adds r4, r1, #0 - cmp r2, #0xe - bhi _08018BCE - lsls r0, r2, #2 - ldr r1, _08018B2C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08018B28: .4byte gUnknown_82C2790 -_08018B2C: .4byte _08018B30 -_08018B30: @ jump table - .4byte _08018B6C @ case 0 - .4byte _08018B74 @ case 1 - .4byte _08018B7C @ case 2 - .4byte _08018B84 @ case 3 - .4byte _08018B90 @ case 4 - .4byte _08018B98 @ case 5 - .4byte _08018BA0 @ case 6 - .4byte _08018BA8 @ case 7 - .4byte _08018BB0 @ case 8 - .4byte _08018BB8 @ case 9 - .4byte _08018BCC @ case 10 - .4byte _08018BC0 @ case 11 - .4byte _08018BC4 @ case 12 - .4byte _08018BC4 @ case 13 - .4byte _08018BCC @ case 14 -_08018B6C: - ldr r1, _08018B70 - b _08018BCE - .align 2, 0 -_08018B70: .4byte gUnknown_82C2960 -_08018B74: - ldr r1, _08018B78 - b _08018BCE - .align 2, 0 -_08018B78: .4byte gUnknown_82C2904 -_08018B7C: - ldr r1, _08018B80 - b _08018B86 - .align 2, 0 -_08018B80: .4byte gUnknown_82C29C0 -_08018B84: - ldr r1, _08018B8C -_08018B86: - movs r0, #1 - str r0, [r3] - b _08018BCE - .align 2, 0 -_08018B8C: .4byte gUnknown_82C29D8 -_08018B90: - ldr r1, _08018B94 - b _08018BCE - .align 2, 0 -_08018B94: .4byte gUnknown_82C29EC -_08018B98: - ldr r1, _08018B9C - b _08018BCE - .align 2, 0 -_08018B9C: .4byte gUnknown_82C2A14 -_08018BA0: - ldr r1, _08018BA4 - b _08018BCE - .align 2, 0 -_08018BA4: .4byte gUnknown_82C2A48 -_08018BA8: - ldr r1, _08018BAC - b _08018BCE - .align 2, 0 -_08018BAC: .4byte gUnknown_82C2A30 -_08018BB0: - ldr r1, _08018BB4 - b _08018BCE - .align 2, 0 -_08018BB4: .4byte gUnknown_82C28E8 -_08018BB8: - ldr r1, _08018BBC - b _08018BCE - .align 2, 0 -_08018BBC: .4byte gUnknown_82C2A60 -_08018BC0: - adds r1, r4, #0 - b _08018BCE -_08018BC4: - ldr r1, _08018BC8 - b _08018BCE - .align 2, 0 -_08018BC8: .4byte gUnknown_82C2A00 -_08018BCC: - ldr r1, _08018BD8 -_08018BCE: - adds r0, r1, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08018BD8: .4byte gUnknown_82C2A78 - thumb_func_end mevent_message_stamp_card_etc_send_status - - thumb_func_start sub_08018BDC -sub_08018BDC: @ 0x08018BDC - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - adds r1, r2, #0 - adds r2, r3, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r0, sp - bl mevent_message_stamp_card_etc_send_status - adds r1, r0, #0 - ldr r0, [sp] - cmp r0, #0 - bne _08018C02 - adds r0, r4, #0 - bl MG_PrintTextOnWindow1AndWaitButton - b _08018C0A -_08018C02: - adds r0, r4, #0 - adds r2, r5, #0 - bl PrintMGSuccessMessage -_08018C0A: - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08018BDC - - thumb_func_start task_add_00_mystery_gift -task_add_00_mystery_gift: @ 0x08018C14 - push {r4, lr} - ldr r0, _08018C54 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _08018C58 - adds r4, r4, r0 - movs r0, #0 - strb r0, [r4, #8] - strb r0, [r4, #9] - strb r0, [r4, #0xa] - strb r0, [r4, #0xb] - strb r0, [r4, #0xc] - strb r0, [r4, #0xd] - movs r1, #0 - strh r0, [r4] - strh r0, [r4, #2] - strh r0, [r4, #4] - strh r0, [r4, #6] - strb r1, [r4, #0xe] - movs r0, #0x40 - bl AllocZeroed - str r0, [r4, #0x10] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08018C54: .4byte PrintMGSendStatus -_08018C58: .4byte gUnknown_3005B68 - thumb_func_end task_add_00_mystery_gift - - thumb_func_start PrintMGSendStatus -PrintMGSendStatus: @ 0x08018C5C - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _08018C80 - adds r5, r0, r1 - ldrb r0, [r5, #8] - cmp r0, #0x25 - bls _08018C76 - b _0801931A -_08018C76: - lsls r0, r0, #2 - ldr r1, _08018C84 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08018C80: .4byte gUnknown_3005B68 -_08018C84: .4byte _08018C88 -_08018C88: @ jump table - .4byte _08018D20 @ case 0 - .4byte _08018D26 @ case 1 - .4byte _08018D64 @ case 2 - .4byte _08018D8C @ case 3 - .4byte _08018DB0 @ case 4 - .4byte _08018DFC @ case 5 - .4byte _08018E5A @ case 6 - .4byte _08018E90 @ case 7 - .4byte _08018EA0 @ case 8 - .4byte _08018F10 @ case 9 - .4byte _08018F34 @ case 10 - .4byte _08018F4C @ case 11 - .4byte _08018F7C @ case 12 - .4byte _08018FB6 @ case 13 - .4byte _08018FCC @ case 14 - .4byte _08018FFC @ case 15 - .4byte _080192EC @ case 16 - .4byte _08019056 @ case 17 - .4byte _08019066 @ case 18 - .4byte _0801931A @ case 19 - .4byte _08019078 @ case 20 - .4byte _080190C2 @ case 21 - .4byte _08019130 @ case 22 - .4byte _0801915E @ case 23 - .4byte _08019190 @ case 24 - .4byte _080191A6 @ case 25 - .4byte _080191B8 @ case 26 - .4byte _080191C4 @ case 27 - .4byte _080191CC @ case 28 - .4byte _080191DC @ case 29 - .4byte _0801920A @ case 30 - .4byte _08019238 @ case 31 - .4byte _0801927C @ case 32 - .4byte _0801928E @ case 33 - .4byte _080192A8 @ case 34 - .4byte _080192BC @ case 35 - .4byte _080192EC @ case 36 - .4byte _08019304 @ case 37 -_08018D20: - movs r0, #1 -_08018D22: - strb r0, [r5, #8] - b _0801931A -_08018D26: - adds r0, r5, #0 - adds r0, #9 - adds r1, r5, #0 - movs r2, #0 - bl MysteryGift_HandleThreeOptionMenu - adds r1, r0, #0 - cmp r1, #1 - beq _08018D50 - cmp r1, #1 - blo _08018D46 - movs r0, #2 - rsbs r0, r0, #0 - cmp r1, r0 - beq _08018D60 - b _0801931A -_08018D46: - movs r0, #0 - strb r0, [r5, #0xc] - bl CreateSetStatusSprite - b _08018D56 -_08018D50: - strb r1, [r5, #0xc] - bl ItemUseInBattle_Escape -_08018D56: - cmp r0, #1 - bne _08018D5C - b _08019230 -_08018D5C: - movs r0, #2 - b _08018D22 -_08018D60: - movs r0, #0x25 - b _08018D22 -_08018D64: - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _08018D7C - adds r0, r5, #0 - adds r0, #9 - ldr r1, _08018D78 - bl MG_PrintTextOnWindow1AndWaitButton - b _080191D2 - .align 2, 0 -_08018D78: .4byte gUnknown_82C26C4 -_08018D7C: - adds r0, r5, #0 - adds r0, #9 - ldr r1, _08018D88 - bl MG_PrintTextOnWindow1AndWaitButton - b _080191D2 - .align 2, 0 -_08018D88: .4byte gUnknown_82C26E8 -_08018D8C: - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _08018DA0 - ldr r0, _08018D9C - bl AddTextPrinterToWindow1 - b _08018DA6 - .align 2, 0 -_08018D9C: .4byte gUnknown_82C2710 -_08018DA0: - ldr r0, _08018DAC - bl AddTextPrinterToWindow1 -_08018DA6: - movs r0, #4 - b _08018D22 - .align 2, 0 -_08018DAC: .4byte gUnknown_82C272C -_08018DB0: - adds r0, r5, #0 - adds r0, #9 - adds r1, r5, #0 - movs r2, #1 - bl MysteryGift_HandleThreeOptionMenu - adds r4, r0, #0 - cmp r4, #1 - beq _08018DDE - cmp r4, #1 - blo _08018DD0 - movs r0, #2 - rsbs r0, r0, #0 - cmp r4, r0 - beq _08018DEA - b _0801931A -_08018DD0: - bl ClearTextWindow - movs r1, #0 - movs r0, #5 - strb r0, [r5, #8] - strb r1, [r5, #0xd] - b _0801931A -_08018DDE: - bl ClearTextWindow - movs r0, #5 - strb r0, [r5, #8] - strb r4, [r5, #0xd] - b _0801931A -_08018DEA: - bl ClearTextWindow - ldrb r0, [r5, #0xc] - bl ValidateCardOrNews - cmp r0, #0 - beq _08018DFA - b _08019230 -_08018DFA: - b _08018D22 -_08018DFC: - ldr r0, _08018E18 - movs r1, #0xff - strb r1, [r0] - ldr r0, _08018E1C - strb r1, [r0] - ldr r0, _08018E20 - strb r1, [r0] - ldrb r0, [r5, #0xc] - cmp r0, #0 - beq _08018E24 - cmp r0, #1 - beq _08018E3E - b _08018E56 - .align 2, 0 -_08018E18: .4byte gUnknown_2021C40 -_08018E1C: .4byte gUnknown_2021C54 -_08018E20: .4byte gUnknown_2021C68 -_08018E24: - ldrb r0, [r5, #0xd] - cmp r0, #1 - bne _08018E32 - movs r0, #6 - bl sub_08014A04 - b _08018E56 -_08018E32: - cmp r0, #0 - bne _08018E56 - movs r0, #6 - bl MEvent_CreateTask_CardOrNewsOverWireless - b _08018E56 -_08018E3E: - ldrb r0, [r5, #0xd] - cmp r0, #1 - bne _08018E4C - movs r0, #7 - bl sub_08014A04 - b _08018E56 -_08018E4C: - cmp r0, #0 - bne _08018E56 - movs r0, #7 - bl MEvent_CreateTask_CardOrNewsOverWireless -_08018E56: - movs r0, #6 - b _08018D22 -_08018E5A: - ldr r0, _08018E74 - ldrb r0, [r0] - cmp r0, #0 - beq _08018E78 - movs r0, #1 - bl ClearScreenInBg0 - movs r0, #7 - strb r0, [r5, #8] - ldrb r0, [r5, #0xc] - bl mevent_client_do_init - b _0801931A - .align 2, 0 -_08018E74: .4byte gUnknown_30031C4 -_08018E78: - ldr r0, _08018E8C - ldrh r0, [r0] - cmp r0, #5 - beq _08018E82 - b _0801931A -_08018E82: - movs r0, #1 - bl ClearScreenInBg0 - b _080191D8 - .align 2, 0 -_08018E8C: .4byte gUnknown_2037290 -_08018E90: - ldr r0, _08018E9C - bl AddTextPrinterToWindow1 - movs r0, #8 - b _08018D22 - .align 2, 0 -_08018E9C: .4byte gUnknown_82C276C -_08018EA0: - adds r0, r5, #0 - bl mevent_client_do_exec - subs r0, #2 - cmp r0, #4 - bls _08018EAE - b _0801931A -_08018EAE: - lsls r0, r0, #2 - ldr r1, _08018EB8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08018EB8: .4byte _08018EBC -_08018EBC: @ jump table - .4byte _08018EF6 @ case 0 - .4byte _08018EF2 @ case 1 - .4byte _08018EFA @ case 2 - .4byte _08018EDC @ case 3 - .4byte _08018ED0 @ case 4 -_08018ED0: - bl task_add_05_task_del_08FA224_when_no_RfuFunc - ldrh r0, [r5] - strb r0, [r5, #0xe] - movs r0, #0xd - b _08018D22 -_08018EDC: - ldr r4, [r5, #0x10] - bl mevent_client_get_buffer - adds r1, r0, #0 - adds r0, r4, #0 - movs r2, #0x40 - bl memcpy - bl mevent_client_inc_flag - b _0801931A -_08018EF2: - movs r0, #0xa - b _08018D22 -_08018EF6: - movs r0, #9 - b _08018D22 -_08018EFA: - movs r0, #0xb - strb r0, [r5, #8] - ldr r0, _08018F08 - ldr r1, _08018F0C - bl StringCopy - b _0801931A - .align 2, 0 -_08018F08: .4byte gUnknown_2021C40 -_08018F0C: .4byte gUnknown_20226A8 -_08018F10: - adds r4, r5, #0 - adds r4, #9 - bl mevent_client_get_buffer - adds r3, r0, #0 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0 - bl mevent_message_print_and_prompt_yes_no - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #1 - beq _08018FA8 - cmp r1, #1 - bhs _08018F96 - movs r0, #0 - b _08018FAA -_08018F34: - adds r4, r5, #0 - adds r4, #9 - bl mevent_client_get_buffer - adds r1, r0, #0 - adds r0, r4, #0 - bl MG_PrintTextOnWindow1AndWaitButton - cmp r0, #0 - bne _08018F4A - b _0801931A -_08018F4A: - b _08018FAE -_08018F4C: - adds r0, r5, #0 - adds r0, #9 - ldr r3, _08018F74 - adds r1, r5, #0 - movs r2, #0 - bl mevent_message_print_and_prompt_yes_no - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #1 - beq _08018FA8 - cmp r1, #1 - bhs _08018F96 - bl CheckReceivedGiftFromWonderCard - cmp r0, #1 - bne _08018F78 - movs r0, #0xc - b _08018D22 - .align 2, 0 -_08018F74: .4byte gUnknown_82C27B4 -_08018F78: - movs r0, #0 - b _08018FAA -_08018F7C: - adds r0, r5, #0 - adds r0, #9 - ldr r3, _08018FA0 - adds r1, r5, #0 - movs r2, #0 - bl mevent_message_print_and_prompt_yes_no - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #1 - beq _08018FA8 - cmp r1, #1 - blo _08018FA4 -_08018F96: - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _08018FA8 - b _0801931A - .align 2, 0 -_08018FA0: .4byte gUnknown_82C27DC -_08018FA4: - movs r0, #0 - b _08018FAA -_08018FA8: - movs r0, #1 -_08018FAA: - bl mevent_client_set_param -_08018FAE: - bl mevent_client_inc_flag - movs r0, #7 - b _08018D22 -_08018FB6: - ldr r0, _08018FC8 - ldrb r0, [r0] - cmp r0, #0 - beq _08018FC0 - b _0801931A -_08018FC0: - bl DestroyWirelessStatusIndicatorSprite - movs r0, #0xe - b _08018D22 - .align 2, 0 -_08018FC8: .4byte gUnknown_30031C4 -_08018FCC: - adds r0, r5, #0 - adds r0, #9 - ldr r1, _08018FF0 - bl PrintStringAndWait2Seconds - cmp r0, #0 - bne _08018FDC - b _0801931A -_08018FDC: - ldrb r0, [r5, #0xd] - cmp r0, #1 - bne _08018FEA - ldr r0, _08018FF4 - ldr r1, _08018FF8 - bl StringCopy -_08018FEA: - movs r0, #0xf - b _08018D22 - .align 2, 0 -_08018FF0: .4byte gUnknown_82C277C -_08018FF4: .4byte gUnknown_2021C40 -_08018FF8: .4byte gUnknown_20226A8 -_08018FFC: - ldrb r1, [r5, #0xc] - ldrb r2, [r5, #0xd] - ldrb r3, [r5, #0xe] - mov r0, sp - bl mevent_message - adds r1, r0, #0 - cmp r1, #0 - bne _08019010 - ldr r1, [r5, #0x10] -_08019010: - ldr r0, [sp] - cmp r0, #0 - beq _08019022 - adds r0, r5, #0 - adds r0, #9 - adds r2, r5, #0 - bl PrintMGSuccessMessage - b _0801902A -_08019022: - adds r0, r5, #0 - adds r0, #9 - bl MG_PrintTextOnWindow1AndWaitButton -_0801902A: - adds r1, r0, #0 - cmp r1, #0 - bne _08019032 - b _0801931A -_08019032: - ldrb r0, [r5, #0xe] - cmp r0, #3 - bne _0801904C - ldrb r0, [r5, #0xd] - cmp r0, #1 - bne _08019046 - movs r0, #1 - bl GenerateRandomNews - b _0801904C -_08019046: - movs r0, #2 - bl GenerateRandomNews -_0801904C: - ldr r0, [sp] - cmp r0, #0 - beq _08019054 - b _080192E0 -_08019054: - b _08018D22 -_08019056: - adds r0, r5, #0 - adds r0, #9 - bl mevent_save_game - cmp r0, #0 - bne _08019064 - b _0801931A -_08019064: - b _08019230 -_08019066: - adds r0, r5, #0 - adds r0, #9 - ldrb r1, [r5, #0xc] - bl HandleLoadWonderCardOrNews - cmp r0, #0 - bne _08019076 - b _0801931A -_08019076: - b _0801912C -_08019078: - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _080190A0 - ldr r2, _0801909C - ldrh r1, [r2, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0801908E - movs r0, #0x15 - strb r0, [r5, #8] -_0801908E: - ldrh r1, [r2, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0801909A - b _0801931A -_0801909A: - b _080190BE - .align 2, 0 -_0801909C: .4byte gUnknown_3002360 -_080190A0: - ldr r0, _080190B4 - ldrh r0, [r0, #0x2e] - bl sub_0801C7D4 - cmp r0, #0 - beq _080190B8 - cmp r0, #1 - beq _080190BE - b _0801931A - .align 2, 0 -_080190B4: .4byte gUnknown_3002360 -_080190B8: - bl sub_0801C754 - b _0801918C -_080190BE: - movs r0, #0x1b - b _08018D22 -_080190C2: - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _080190DC - bl sub_0801ADC8 - cmp r0, #0 - beq _080190F0 - adds r0, r5, #0 - adds r0, #9 - ldrb r2, [r5, #0xc] - adds r1, r5, #0 - movs r3, #0 - b _080190FA -_080190DC: - bl WonderNews_Test_Unk_02 - cmp r0, #0 - beq _080190F0 - adds r0, r5, #0 - adds r0, #9 - ldrb r2, [r5, #0xc] - adds r1, r5, #0 - movs r3, #0 - b _080190FA -_080190F0: - adds r0, r5, #0 - adds r0, #9 - ldrb r2, [r5, #0xc] - adds r1, r5, #0 - movs r3, #1 -_080190FA: - bl BufferMonTrainerMemo - adds r1, r0, #0 - cmp r1, #1 - beq _0801911A - cmp r1, #1 - blo _08019116 - cmp r1, #2 - beq _0801911E - movs r0, #2 - rsbs r0, r0, #0 - cmp r1, r0 - beq _08019122 - b _0801931A -_08019116: - movs r0, #0x1c - b _08018D22 -_0801911A: - movs r0, #0x1d - b _08018D22 -_0801911E: - movs r0, #0x16 - b _08018D22 -_08019122: - ldrb r0, [r5, #0xc] - cmp r0, #1 - bne _0801912C - bl sub_0801C794 -_0801912C: - movs r0, #0x14 - b _08018D22 -_08019130: - adds r0, r5, #0 - adds r0, #9 - ldrb r2, [r5, #0xc] - adds r1, r5, #0 - bl mevent_message_prompt_discard - adds r1, r0, #0 - cmp r1, #0 - beq _0801914C - cmp r1, #0 - ble _08019178 - cmp r1, #1 - beq _0801918C - b _0801931A -_0801914C: - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _08019188 - bl CheckReceivedGiftFromWonderCard - cmp r0, #1 - bne _08019188 - movs r0, #0x17 - b _08018D22 -_0801915E: - adds r0, r5, #0 - adds r0, #9 - ldr r3, _08019184 - adds r1, r5, #0 - movs r2, #1 - bl mevent_message_print_and_prompt_yes_no - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #1 - beq _0801918C - cmp r1, #1 - blo _08019188 -_08019178: - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0801918C - b _0801931A - .align 2, 0 -_08019184: .4byte gUnknown_82C2ACC -_08019188: - movs r0, #0x18 - b _08018D22 -_0801918C: - movs r0, #0x15 - b _08018D22 -_08019190: - ldrb r0, [r5, #0xc] - bl sub_0801888C - cmp r0, #0 - bne _0801919C - b _0801931A -_0801919C: - ldrb r0, [r5, #0xc] - bl DestroyNewsOrCard - movs r0, #0x19 - b _08018D22 -_080191A6: - adds r0, r5, #0 - adds r0, #9 - bl mevent_save_game - cmp r0, #0 - bne _080191B4 - b _0801931A -_080191B4: - movs r0, #0x1a - b _08018D22 -_080191B8: - adds r0, r5, #0 - adds r0, #9 - ldrb r1, [r5, #0xc] - bl mevent_message_was_thrown_away - b _080192F6 -_080191C4: - ldrb r0, [r5, #0xc] - bl sub_0801888C - b _080192F6 -_080191CC: - ldrb r0, [r5, #0xc] - bl sub_0801888C -_080191D2: - cmp r0, #0 - bne _080191D8 - b _0801931A -_080191D8: - movs r0, #3 - b _08018D22 -_080191DC: - ldrb r0, [r5, #0xc] - bl sub_0801888C - cmp r0, #0 - bne _080191E8 - b _0801931A -_080191E8: - ldrb r0, [r5, #0xc] - cmp r0, #0 - beq _080191F4 - cmp r0, #1 - beq _080191FC - b _08019202 -_080191F4: - movs r0, #6 - bl MEvent_CreateTask_Leader - b _08019202 -_080191FC: - movs r0, #7 - bl MEvent_CreateTask_Leader -_08019202: - movs r0, #1 - strb r0, [r5, #0xd] - movs r0, #0x1e - b _08018D22 -_0801920A: - ldr r0, _0801921C - ldrb r0, [r0] - cmp r0, #0 - beq _08019220 - movs r0, #1 - bl ClearScreenInBg0 - movs r0, #0x1f - b _08018D22 - .align 2, 0 -_0801921C: .4byte gUnknown_30031C4 -_08019220: - ldr r0, _08019234 - ldrh r0, [r0] - cmp r0, #5 - beq _0801922A - b _0801931A -_0801922A: - movs r0, #1 - bl ClearScreenInBg0 -_08019230: - movs r0, #0x12 - b _08018D22 - .align 2, 0 -_08019234: .4byte gUnknown_2037290 -_08019238: - ldr r0, _08019258 - movs r1, #0xff - strb r1, [r0] - ldr r0, _0801925C - strb r1, [r0] - ldr r0, _08019260 - strb r1, [r0] - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _08019268 - ldr r0, _08019264 - bl AddTextPrinterToWindow1 - bl sub_0801CB48 - b _08019272 - .align 2, 0 -_08019258: .4byte gUnknown_2021C40 -_0801925C: .4byte gUnknown_2021C54 -_08019260: .4byte gUnknown_2021C68 -_08019264: .4byte gUnknown_82C2994 -_08019268: - ldr r0, _08019278 - bl AddTextPrinterToWindow1 - bl mevent_srv_init_wnews -_08019272: - movs r0, #0x20 - b _08018D22 - .align 2, 0 -_08019278: .4byte gUnknown_82C29AC -_0801927C: - adds r0, r5, #0 - bl sub_0801CB6C - cmp r0, #3 - bne _0801931A - ldrh r0, [r5] - strb r0, [r5, #0xe] - movs r0, #0x21 - b _08018D22 -_0801928E: - bl task_add_05_task_del_08FA224_when_no_RfuFunc - ldr r0, _080192A0 - ldr r1, _080192A4 - bl StringCopy - movs r0, #0x22 - b _08018D22 - .align 2, 0 -_080192A0: .4byte gUnknown_2021C40 -_080192A4: .4byte gUnknown_20226C4 -_080192A8: - ldr r0, _080192B8 - ldrb r0, [r0] - cmp r0, #0 - bne _0801931A - bl DestroyWirelessStatusIndicatorSprite - movs r0, #0x23 - b _08018D22 - .align 2, 0 -_080192B8: .4byte gUnknown_30031C4 -_080192BC: - adds r0, r5, #0 - adds r0, #9 - ldrb r2, [r5, #0xd] - ldrb r3, [r5, #0xe] - adds r1, r5, #0 - bl sub_08018BDC - cmp r0, #0 - beq _0801931A - ldr r0, [r5, #0xc] - ldr r1, _080192E4 - ands r0, r1 - ldr r1, _080192E8 - cmp r0, r1 - bne _080192FA - movs r0, #3 - bl GenerateRandomNews -_080192E0: - movs r0, #0x11 - b _08018D22 - .align 2, 0 -_080192E4: .4byte 0x00FFFF00 -_080192E8: .4byte 0x00030100 -_080192EC: - adds r0, r5, #0 - adds r0, #9 - ldr r1, _08019300 - bl MG_PrintTextOnWindow1AndWaitButton -_080192F6: - cmp r0, #0 - beq _0801931A -_080192FA: - movs r0, #0 - b _08018D22 - .align 2, 0 -_08019300: .4byte gUnknown_82C2790 -_08019304: - bl CloseLink - ldr r0, [r5, #0x10] - bl Free - adds r0, r4, #0 - bl DestroyTask - ldr r0, _08019324 - bl SetMainCallback2 -_0801931A: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08019324: .4byte MainCB_FreeAllBuffersAndReturnToInitTitleScreen - thumb_func_end PrintMGSendStatus - - thumb_func_start sub_08019328 -sub_08019328: @ 0x08019328 - ldr r0, _0801932C - bx lr - .align 2, 0 -_0801932C: .4byte 0x000001A9 - thumb_func_end sub_08019328 - - thumb_func_start bgid_upload_textbox_1 -bgid_upload_textbox_1: @ 0x08019330 - push {lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0801934C - movs r2, #0x80 - lsls r2, r2, #1 - movs r3, #0 - str r3, [sp] - bl DecompressAndLoadBgGfxUsingHeap - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_0801934C: .4byte gUnknown_82C2474 - thumb_func_end bgid_upload_textbox_1 - - thumb_func_start is_walking_or_running -is_walking_or_running: @ 0x08019350 - push {lr} - ldr r0, _08019364 - ldrb r0, [r0, #3] - cmp r0, #2 - beq _0801935E - cmp r0, #0 - bne _08019368 -_0801935E: - movs r0, #1 - b _0801936A - .align 2, 0 -_08019364: .4byte gUnknown_2037230 -_08019368: - movs r0, #0 -_0801936A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end is_walking_or_running - - thumb_func_start sub_08019370 -sub_08019370: @ 0x08019370 - ldr r3, _08019384 - movs r2, #7 - ands r2, r1 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #1 - adds r2, r2, r1 - adds r2, r2, r3 - ldrb r0, [r2] - bx lr - .align 2, 0 -_08019384: .4byte gUnknown_82C2B7C - thumb_func_end sub_08019370 - - thumb_func_start sub_08019388 -sub_08019388: @ 0x08019388 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - ldr r4, _080193D0 - mov r8, r4 - lsls r0, r0, #2 - adds r4, r0, r4 - movs r6, #0 - ldrsh r5, [r4, r6] - ldr r6, _080193D4 - lsls r1, r1, #1 - adds r4, r1, r6 - ldrb r4, [r4] - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - adds r5, r5, r4 - adds r5, #7 - str r5, [r2] - movs r2, #2 - add r8, r2 - add r0, r8 - movs r4, #0 - ldrsh r0, [r0, r4] - adds r6, #1 - adds r1, r1, r6 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r0, r1 - adds r0, #7 - str r0, [r3] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080193D0: .4byte gUnknown_82C2B90 -_080193D4: .4byte gUnknown_82C2BB0 - thumb_func_end sub_08019388 - - thumb_func_start sub_080193D8 -sub_080193D8: @ 0x080193D8 - push {r4, r5, r6, r7, lr} - mov ip, r3 - ldr r7, _08019418 - lsls r5, r0, #2 - adds r0, r5, r7 - movs r4, #0 - ldrsh r3, [r0, r4] - ldr r6, _0801941C - lsls r4, r1, #1 - adds r0, r4, r6 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r3, r3, r0 - adds r3, #7 - cmp r3, r2 - bne _08019420 - adds r0, r7, #2 - adds r0, r5, r0 - movs r2, #0 - ldrsh r1, [r0, r2] - adds r0, r6, #1 - adds r0, r4, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r1, r1, r0 - adds r1, #7 - cmp r1, ip - bne _08019420 - movs r0, #1 - b _08019422 - .align 2, 0 -_08019418: .4byte gUnknown_82C2B90 -_0801941C: .4byte gUnknown_82C2BB0 -_08019420: - movs r0, #0 -_08019422: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_080193D8 - - thumb_func_start IsUnionRoomPlayerHidden -IsUnionRoomPlayerHidden: @ 0x08019428 - push {lr} - ldr r1, _08019440 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_08019440: .4byte 0x000002BF - thumb_func_end IsUnionRoomPlayerHidden - - thumb_func_start sub_08019444 -sub_08019444: @ 0x08019444 - push {lr} - ldr r1, _08019458 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl FlagSet - pop {r0} - bx r0 - .align 2, 0 -_08019458: .4byte 0x000002BF - thumb_func_end sub_08019444 - - thumb_func_start sub_0801945C -sub_0801945C: @ 0x0801945C - push {lr} - ldr r1, _08019470 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl FlagClear - pop {r0} - bx r0 - .align 2, 0 -_08019470: .4byte 0x000002BF - thumb_func_end sub_0801945C - - thumb_func_start SetUnionRoomPlayerGfx -SetUnionRoomPlayerGfx: @ 0x08019474 - push {lr} - ldr r2, _0801948C - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl VarSet - pop {r0} - bx r0 - .align 2, 0 -_0801948C: .4byte 0x00004010 - thumb_func_end SetUnionRoomPlayerGfx - - thumb_func_start CreateUnionRoomPlayerEventObject -CreateUnionRoomPlayerEventObject: @ 0x08019490 - push {lr} - ldr r1, _080194A8 - adds r0, r0, r1 - ldrb r0, [r0] - ldr r1, _080194AC - ldr r2, [r1] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - bl TrySpawnEventObject - pop {r0} - bx r0 - .align 2, 0 -_080194A8: .4byte gUnknown_82C2BC4 -_080194AC: .4byte gUnknown_3005AEC - thumb_func_end CreateUnionRoomPlayerEventObject - - thumb_func_start RemoveUnionRoomPlayerEventObject -RemoveUnionRoomPlayerEventObject: @ 0x080194B0 - push {lr} - ldr r1, _080194C8 - adds r0, r0, r1 - ldrb r0, [r0] - ldr r1, _080194CC - ldr r2, [r1] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - bl RemoveEventObjectByLocalIdAndMap - pop {r0} - bx r0 - .align 2, 0 -_080194C8: .4byte gUnknown_82C2BC4 -_080194CC: .4byte gUnknown_3005AEC - thumb_func_end RemoveUnionRoomPlayerEventObject - - thumb_func_start SetUnionRoomPlayerEnterExitMovement -SetUnionRoomPlayerEnterExitMovement: @ 0x080194D0 - push {r4, r5, lr} - sub sp, #4 - adds r5, r1, #0 - ldr r1, _0801951C - adds r0, r0, r1 - ldrb r0, [r0] - ldr r1, _08019520 - ldr r2, [r1] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08019536 - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08019524 - adds r4, r0, r1 - adds r0, r4, #0 - bl EventObjectIsMovementOverridden - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08019536 - ldrb r1, [r5] - adds r0, r4, #0 - bl EventObjectSetHeldMovement - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08019528 - movs r0, #1 - b _08019538 - .align 2, 0 -_0801951C: .4byte gUnknown_82C2BC4 -_08019520: .4byte gUnknown_3005AEC -_08019524: .4byte gUnknown_2036FF0 -_08019528: - ldr r0, _08019540 - movs r1, #0xc1 - lsls r1, r1, #1 - ldr r2, _08019544 - movs r3, #1 - bl AGBAssert -_08019536: - movs r0, #0 -_08019538: - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08019540: .4byte gUnknown_82C2BDC -_08019544: .4byte gUnknown_82C2BF0 - thumb_func_end SetUnionRoomPlayerEnterExitMovement - - thumb_func_start sub_08019548 -sub_08019548: @ 0x08019548 - push {r4, lr} - sub sp, #4 - ldr r1, _08019584 - adds r0, r0, r1 - ldrb r0, [r0] - ldr r1, _08019588 - ldr r2, [r1] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080195A8 - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0801958C - adds r4, r0, r1 - adds r0, r4, #0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08019590 - movs r0, #0 - b _080195AA - .align 2, 0 -_08019584: .4byte gUnknown_82C2BC4 -_08019588: .4byte gUnknown_3005AEC -_0801958C: .4byte gUnknown_2036FF0 -_08019590: - bl sub_080987F4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080195A2 - adds r0, r4, #0 - bl UnfreezeEventObject - b _080195A8 -_080195A2: - adds r0, r4, #0 - bl FreezeEventObject -_080195A8: - movs r0, #1 -_080195AA: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08019548 - - thumb_func_start sub_080195B4 -sub_080195B4: @ 0x080195B4 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080195F8 - movs r1, #0 - str r1, [r0] - ldr r0, _080195FC - str r4, [r0] - cmp r4, #0 - bne _080195D2 - ldr r0, _08019600 - ldr r1, _08019604 - ldr r2, _08019608 - movs r3, #1 - bl AGBAssert -_080195D2: - movs r1, #0 - adds r0, r4, #0 - movs r2, #7 -_080195D8: - strb r1, [r0] - strb r1, [r0, #1] - strb r1, [r0, #2] - strb r1, [r0, #3] - adds r0, #4 - subs r2, #1 - cmp r2, #0 - bge _080195D8 - bl unknown_ItemMenu_Show - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080195F8: .4byte gUnknown_202291C -_080195FC: .4byte gUnknown_2022918 -_08019600: .4byte gUnknown_82C2BDC -_08019604: .4byte 0x000001B9 -_08019608: .4byte gUnknown_82C2BF4 - thumb_func_end sub_080195B4 - - thumb_func_start sub_0801960C -sub_0801960C: @ 0x0801960C - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, #0 - beq _08019620 - cmp r0, #1 - beq _08019640 - b _0801965E -_08019620: - ldr r1, _0801963C - adds r0, r4, #0 - bl SetUnionRoomPlayerEnterExitMovement - cmp r0, #1 - bne _0801965E - adds r0, r4, #0 - bl sub_08019444 - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - b _0801965E - .align 2, 0 -_0801963C: .4byte gUnknown_82C2C09 -_08019640: - adds r0, r4, #0 - bl sub_08019548 - cmp r0, #0 - beq _0801965E - adds r0, r4, #0 - bl RemoveUnionRoomPlayerEventObject - adds r0, r4, #0 - bl sub_08019444 - movs r0, #0 - strb r0, [r5] - movs r0, #1 - b _08019660 -_0801965E: - movs r0, #0 -_08019660: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801960C - - thumb_func_start sub_08019668 -sub_08019668: @ 0x08019668 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r6, r0, #0 - adds r5, r1, #0 - adds r7, r2, #0 - movs r0, #0 - ldrsb r0, [r6, r0] - cmp r0, #2 - beq _08019704 - cmp r0, #2 - bgt _08019684 - cmp r0, #0 - beq _0801968A - b _08019716 -_08019684: - cmp r0, #3 - beq _080196EC - b _08019716 -_0801968A: - bl is_walking_or_running - cmp r0, #0 - beq _08019716 - mov r4, sp - adds r4, #2 - mov r0, sp - adds r1, r4, #0 - bl PlayerGetDestCoords - mov r0, sp - movs r1, #0 - ldrsh r2, [r0, r1] - movs r0, #0 - ldrsh r3, [r4, r0] - adds r0, r5, #0 - movs r1, #0 - bl sub_080193D8 - cmp r0, #1 - beq _08019716 - mov r0, sp - adds r1, r4, #0 - bl player_get_pos_including_state_based_drift - mov r0, sp - movs r1, #0 - ldrsh r2, [r0, r1] - movs r0, #0 - ldrsh r3, [r4, r0] - adds r0, r5, #0 - movs r1, #0 - bl sub_080193D8 - cmp r0, #1 - beq _08019716 - ldrb r1, [r7, #1] - adds r0, r5, #0 - bl SetUnionRoomPlayerGfx - adds r0, r5, #0 - bl CreateUnionRoomPlayerEventObject - adds r0, r5, #0 - bl sub_0801945C - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] -_080196EC: - ldr r1, _08019700 - adds r0, r5, #0 - bl SetUnionRoomPlayerEnterExitMovement - cmp r0, #1 - bne _08019716 - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] - b _08019716 - .align 2, 0 -_08019700: .4byte gUnknown_82C2C0B -_08019704: - adds r0, r5, #0 - bl sub_08019548 - cmp r0, #0 - beq _08019716 - movs r0, #0 - strb r0, [r6] - movs r0, #1 - b _08019718 -_08019716: - movs r0, #0 -_08019718: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_08019668 - - thumb_func_start sub_08019720 -sub_08019720: @ 0x08019720 - push {r4, r5, r6, lr} - adds r5, r1, #0 - adds r6, r2, #0 - ldr r1, _08019758 - lsls r0, r0, #2 - ldr r1, [r1] - adds r4, r1, r0 - cmp r1, #0 - bne _08019740 - ldr r0, _0801975C - movs r1, #0x8c - lsls r1, r1, #2 - ldr r2, _08019760 - movs r3, #1 - bl AGBAssert -_08019740: - movs r0, #1 - strb r0, [r4, #3] - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_08019370 - strb r0, [r4, #1] - ldrb r0, [r4] - cmp r0, #0 - beq _08019764 - movs r0, #0 - b _08019766 - .align 2, 0 -_08019758: .4byte gUnknown_2022918 -_0801975C: .4byte gUnknown_82C2BDC -_08019760: .4byte gUnknown_82C2BF4 -_08019764: - movs r0, #1 -_08019766: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_08019720 - - thumb_func_start sub_0801976C -sub_0801976C: @ 0x0801976C - push {r4, lr} - ldr r1, _08019798 - lsls r0, r0, #2 - ldr r1, [r1] - adds r4, r1, r0 - cmp r1, #0 - bne _08019788 - ldr r0, _0801979C - movs r1, #0x90 - lsls r1, r1, #2 - ldr r2, _080197A0 - movs r3, #1 - bl AGBAssert -_08019788: - movs r0, #2 - strb r0, [r4, #3] - ldrb r0, [r4] - cmp r0, #1 - beq _080197A4 - movs r0, #0 - b _080197A6 - .align 2, 0 -_08019798: .4byte gUnknown_2022918 -_0801979C: .4byte gUnknown_82C2BDC -_080197A0: .4byte gUnknown_82C2BF4 -_080197A4: - movs r0, #1 -_080197A6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0801976C - - thumb_func_start sub_080197AC -sub_080197AC: @ 0x080197AC - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - ldrb r1, [r4] - cmp r1, #1 - beq _0801980E - cmp r1, #1 - bgt _080197C2 - cmp r1, #0 - beq _080197CC - b _0801982E -_080197C2: - cmp r1, #2 - beq _080197D8 - cmp r1, #3 - beq _0801981C - b _0801982E -_080197CC: - ldrb r0, [r4, #3] - cmp r0, #1 - bne _0801982E - movs r0, #2 - strb r0, [r4] - strb r1, [r4, #2] -_080197D8: - adds r0, r5, #0 - movs r1, #0 - bl sub_08019A28 - adds r1, r0, #0 - cmp r1, #0 - bne _080197FE - ldrb r0, [r4, #3] - cmp r0, #2 - bne _080197FE - strb r1, [r4] - strb r1, [r4, #2] - adds r0, r5, #0 - bl RemoveUnionRoomPlayerEventObject - adds r0, r5, #0 - bl sub_08019444 - b _0801982E -_080197FE: - adds r0, r4, #2 - adds r1, r5, #0 - adds r2, r4, #0 - bl sub_08019668 - cmp r0, #1 - bne _0801982E - b _0801982C -_0801980E: - ldrb r0, [r4, #3] - cmp r0, #2 - bne _0801982E - movs r1, #0 - movs r0, #3 - strb r0, [r4] - strb r1, [r4, #2] -_0801981C: - adds r0, r4, #2 - adds r1, r5, #0 - adds r2, r4, #0 - bl sub_0801960C - cmp r0, #1 - bne _0801982E - movs r0, #0 -_0801982C: - strb r0, [r4] -_0801982E: - movs r0, #0 - strb r0, [r4, #3] - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_080197AC - - thumb_func_start sub_08019838 -sub_08019838: @ 0x08019838 - push {r4, r5, lr} - ldr r5, _08019868 - ldr r0, [r5] - cmp r0, #0 - bne _0801984E - ldr r0, _0801986C - ldr r1, _08019870 - ldr r2, _08019874 - movs r3, #1 - bl AGBAssert -_0801984E: - movs r4, #0 -_08019850: - lsls r0, r4, #2 - ldr r1, [r5] - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_080197AC - adds r4, #1 - cmp r4, #7 - ble _08019850 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08019868: .4byte gUnknown_2022918 -_0801986C: .4byte gUnknown_82C2BDC -_08019870: .4byte 0x00000282 -_08019874: .4byte gUnknown_82C2BF4 - thumb_func_end sub_08019838 - - thumb_func_start unknown_ItemMenu_Show -unknown_ItemMenu_Show: @ 0x08019878 - push {r4, lr} - ldr r4, _08019898 - adds r0, r4, #0 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0801989C - adds r0, r4, #0 - movs r1, #5 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _080198AA - .align 2, 0 -_08019898: .4byte sub_08019838 -_0801989C: - ldr r0, _080198B0 - ldr r1, _080198B4 - ldr r2, _080198B8 - movs r3, #1 - bl AGBAssert - movs r0, #0x10 -_080198AA: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080198B0: .4byte gUnknown_82C2BDC -_080198B4: .4byte 0x0000028E -_080198B8: .4byte gUnknown_82C2BF0 - thumb_func_end unknown_ItemMenu_Show - - thumb_func_start DestroyWonderNews -DestroyWonderNews: @ 0x080198BC - push {lr} - ldr r0, _080198D4 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xf - bhi _080198D0 - bl DestroyTask -_080198D0: - pop {r0} - bx r0 - .align 2, 0 -_080198D4: .4byte sub_08019838 - thumb_func_end DestroyWonderNews - - thumb_func_start sub_080198D8 -sub_080198D8: @ 0x080198D8 - push {r4, lr} - movs r4, #0 -_080198DC: - adds r0, r4, #0 - bl IsUnionRoomPlayerHidden - cmp r0, #0 - bne _080198F2 - adds r0, r4, #0 - bl RemoveUnionRoomPlayerEventObject - adds r0, r4, #0 - bl sub_08019444 -_080198F2: - adds r4, #1 - cmp r4, #7 - ble _080198DC - ldr r1, _08019908 - movs r0, #0 - str r0, [r1] - bl DestroyWonderNews - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08019908: .4byte gUnknown_2022918 - thumb_func_end sub_080198D8 - - thumb_func_start sub_0801990C -sub_0801990C: @ 0x0801990C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - str r0, [sp, #8] - mov sb, r1 - movs r7, #0 - mov r0, sb - lsls r0, r0, #2 - mov r8, r0 - ldr r0, _08019998 - mov r2, r8 - adds r1, r2, r0 - ldrh r1, [r1] - mov r2, sp - strh r1, [r2, #0xc] - adds r0, #2 - add r0, r8 - ldrh r0, [r0] - mov sl, r0 - ldr r6, _0801999C -_0801993A: - mov r5, r8 - add r5, sb - adds r5, r5, r7 - adds r4, r5, #0 - subs r4, #0x38 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r2, #0 - ldrsb r2, [r6, r2] - mov r0, sp - ldrh r0, [r0, #0xc] - adds r2, r0, r2 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - movs r3, #1 - ldrsb r3, [r6, r3] - add r3, sl - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - movs r0, #3 - str r0, [sp] - movs r0, #1 - str r0, [sp, #4] - movs r0, #0x41 - adds r1, r4, #0 - bl sprite_new - ldr r1, [sp, #8] - adds r5, r1, r5 - strb r0, [r5] - adds r0, r4, #0 - movs r1, #1 - bl sub_080975B4 - adds r6, #2 - adds r7, #1 - cmp r7, #4 - ble _0801993A - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08019998: .4byte gUnknown_82C2B90 -_0801999C: .4byte gUnknown_82C2BB0 - thumb_func_end sub_0801990C - - thumb_func_start sub_080199A0 -sub_080199A0: @ 0x080199A0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r4, #0 - ldr r6, _080199C4 -_080199A8: - adds r0, r5, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - bl DestroySprite - adds r4, #1 - cmp r4, #0x27 - ble _080199A8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080199C4: .4byte gUnknown_20205AC - thumb_func_end sub_080199A0 - - thumb_func_start sub_080199C8 -sub_080199C8: @ 0x080199C8 - push {r4, r5, r6, r7, lr} - sub sp, #8 - movs r5, #0 - add r7, sp, #4 -_080199D0: - movs r4, #0 - adds r6, r5, #1 -_080199D4: - adds r0, r5, #0 - adds r1, r4, #0 - mov r2, sp - adds r3, r7, #0 - bl sub_08019388 - ldr r0, [sp] - ldr r1, [sp, #4] - movs r2, #0 - bl sub_080884F8 - adds r4, #1 - cmp r4, #4 - ble _080199D4 - adds r5, r6, #0 - cmp r5, #7 - ble _080199D0 - add sp, #8 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080199C8 - - thumb_func_start sub_08019A00 -sub_08019A00: @ 0x08019A00 - push {lr} - adds r1, r0, #0 - cmp r1, #0 - beq _08019A14 - ldr r0, _08019A10 - adds r0, r1, r0 - ldrb r0, [r0] - b _08019A24 - .align 2, 0 -_08019A10: .4byte gUnknown_82C2BBF -_08019A14: - ldrb r1, [r2, #0xa] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x45 - beq _08019A22 - movs r0, #4 - b _08019A24 -_08019A22: - movs r0, #1 -_08019A24: - pop {r1} - bx r1 - thumb_func_end sub_08019A00 - - thumb_func_start sub_08019A28 -sub_08019A28: @ 0x08019A28 - push {lr} - adds r2, r0, #0 - lsls r0, r2, #2 - adds r0, r0, r2 - adds r0, r0, r1 - subs r0, #0x38 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_080975FC - pop {r1} - bx r1 - thumb_func_end sub_08019A28 - - thumb_func_start sub_08019A40 -sub_08019A40: @ 0x08019A40 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #8 - adds r5, r0, #0 - adds r6, r1, #0 - mov sb, r3 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r8, r2 - lsls r0, r5, #2 - adds r0, r0, r5 - adds r7, r0, r6 - adds r0, r5, #0 - bl sub_08019A28 - cmp r0, #1 - bne _08019A7E - adds r4, r7, #0 - subs r4, #0x38 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #0 - bl sub_080975B4 - adds r0, r4, #0 - movs r1, #1 - bl sub_08097634 -_08019A7E: - adds r0, r7, #0 - subs r0, #0x38 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, r8 - bl sub_08097524 - adds r0, r6, #0 - adds r1, r5, #0 - mov r2, sb - bl sub_08019A00 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_08019E68 - add r3, sp, #4 - adds r0, r5, #0 - adds r1, r6, #0 - mov r2, sp - bl sub_08019388 - ldr r0, [sp] - ldr r1, [sp, #4] - movs r2, #1 - bl sub_080884F8 - add sp, #8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08019A40 - - thumb_func_start sub_08019AC8 -sub_08019AC8: @ 0x08019AC8 - push {r4, r5, lr} - sub sp, #8 - adds r4, r0, #0 - adds r5, r1, #0 - lsls r0, r4, #2 - adds r0, r0, r4 - adds r0, r0, r5 - subs r0, #0x38 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - bl sub_08097634 - add r3, sp, #4 - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sp - bl sub_08019388 - ldr r0, [sp] - ldr r1, [sp, #4] - movs r2, #0 - bl sub_080884F8 - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_08019AC8 - - thumb_func_start sub_08019B00 -sub_08019B00: @ 0x08019B00 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - adds r7, r0, #0 - mov r8, r1 - mov r6, sp - adds r6, #2 - mov r0, sp - adds r1, r6, #0 - bl PlayerGetDestCoords - add r4, sp, #4 - mov r5, sp - adds r5, #6 - adds r0, r4, #0 - adds r1, r5, #0 - bl player_get_pos_including_state_based_drift - lsls r0, r7, #2 - adds r0, r0, r7 - subs r0, #0x38 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_080975FC - mov sl, r6 - mov sb, r4 - adds r6, r5, #0 - cmp r0, #1 - bne _08019B8C - mov r0, sp - movs r1, #0 - ldrsh r2, [r0, r1] - mov r0, sl - movs r1, #0 - ldrsh r3, [r0, r1] - adds r0, r7, #0 - movs r1, #0 - bl sub_080193D8 - cmp r0, #1 - beq _08019BF8 - movs r0, #0 - ldrsh r2, [r4, r0] - movs r1, #0 - ldrsh r3, [r6, r1] - adds r0, r7, #0 - movs r1, #0 - bl sub_080193D8 - cmp r0, #1 - beq _08019BF8 - mov r2, r8 - ldrb r0, [r2, #0xb] - lsls r0, r0, #0x1f - lsrs r0, r0, #0x1f - ldrb r1, [r2, #2] - bl sub_08019370 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r7, #0 - movs r1, #0 - mov r3, r8 - bl sub_08019A40 -_08019B8C: - movs r5, #1 - mov r4, r8 - adds r4, #4 -_08019B92: - ldrb r0, [r4] - cmp r0, #0 - bne _08019BA2 - adds r0, r7, #0 - adds r1, r5, #0 - bl sub_08019AC8 - b _08019BF0 -_08019BA2: - mov r0, sp - movs r1, #0 - ldrsh r2, [r0, r1] - mov r0, sl - movs r1, #0 - ldrsh r3, [r0, r1] - adds r0, r7, #0 - adds r1, r5, #0 - bl sub_080193D8 - cmp r0, #0 - bne _08019BF0 - mov r0, sb - movs r1, #0 - ldrsh r2, [r0, r1] - movs r0, #0 - ldrsh r3, [r6, r0] - adds r0, r7, #0 - adds r1, r5, #0 - bl sub_080193D8 - cmp r0, #0 - bne _08019BF0 - ldrb r2, [r4] - lsrs r0, r2, #3 - movs r1, #1 - ands r0, r1 - movs r1, #7 - ands r1, r2 - bl sub_08019370 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r7, #0 - adds r1, r5, #0 - mov r3, r8 - bl sub_08019A40 -_08019BF0: - adds r4, #1 - adds r5, #1 - cmp r5, #4 - ble _08019B92 -_08019BF8: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08019B00 - - thumb_func_start sub_08019C08 -sub_08019C08: @ 0x08019C08 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - ldrb r0, [r4, #0xa] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x19 - subs r0, #0x40 - cmp r0, #0x14 - bhi _08019CAC - lsls r0, r0, #2 - ldr r1, _08019C24 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08019C24: .4byte _08019C28 -_08019C28: @ jump table - .4byte _08019C7C @ case 0 - .4byte _08019C9C @ case 1 - .4byte _08019CAC @ case 2 - .4byte _08019CAC @ case 3 - .4byte _08019C9C @ case 4 - .4byte _08019C9C @ case 5 - .4byte _08019CAC @ case 6 - .4byte _08019CAC @ case 7 - .4byte _08019C9C @ case 8 - .4byte _08019CAC @ case 9 - .4byte _08019CAC @ case 10 - .4byte _08019CAC @ case 11 - .4byte _08019CAC @ case 12 - .4byte _08019CAC @ case 13 - .4byte _08019CAC @ case 14 - .4byte _08019CAC @ case 15 - .4byte _08019CAC @ case 16 - .4byte _08019C9C @ case 17 - .4byte _08019C9C @ case 18 - .4byte _08019C9C @ case 19 - .4byte _08019C7C @ case 20 -_08019C7C: - ldrb r1, [r4, #0xb] - lsls r1, r1, #0x1f - lsrs r1, r1, #0x1f - ldrb r2, [r4, #2] - adds r0, r5, #0 - bl sub_08019720 - movs r4, #0 -_08019C8C: - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08019AC8 - adds r4, #1 - cmp r4, #4 - bls _08019C8C - b _08019CB8 -_08019C9C: - adds r0, r5, #0 - bl sub_0801976C - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08019B00 - b _08019CB8 -_08019CAC: - ldr r0, _08019CC0 - ldr r1, _08019CC4 - ldr r2, _08019CC8 - movs r3, #1 - bl AGBAssert -_08019CB8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08019CC0: .4byte gUnknown_82C2BDC -_08019CC4: .4byte 0x000003D3 -_08019CC8: .4byte gUnknown_82C2BF0 - thumb_func_end sub_08019C08 - - thumb_func_start sub_08019CCC -sub_08019CCC: @ 0x08019CCC - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_0801976C - movs r4, #0 -_08019CD6: - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08019AC8 - adds r4, #1 - cmp r4, #4 - ble _08019CD6 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08019CCC - - thumb_func_start sub_08019CEC -sub_08019CEC: @ 0x08019CEC - push {r4, r5, lr} - ldr r2, _08019D0C - movs r1, #0 - str r1, [r2] - movs r5, #0 - ldr r4, [r0] -_08019CF8: - ldrb r0, [r4, #0x1a] - movs r1, #3 - ands r1, r0 - cmp r1, #1 - bne _08019D10 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08019C08 - b _08019D1C - .align 2, 0 -_08019D0C: .4byte gUnknown_202291C -_08019D10: - cmp r1, #2 - bne _08019D1C - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08019CCC -_08019D1C: - adds r4, #0x20 - adds r5, #1 - cmp r5, #7 - ble _08019CF8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08019CEC - - thumb_func_start sub_08019D2C -sub_08019D2C: @ 0x08019D2C - ldr r1, _08019D38 - movs r0, #0x96 - lsls r0, r0, #1 - str r0, [r1] - bx lr - .align 2, 0 -_08019D38: .4byte gUnknown_202291C - thumb_func_end sub_08019D2C - - thumb_func_start sub_08019D3C -sub_08019D3C: @ 0x08019D3C - push {lr} - adds r2, r0, #0 - ldr r0, _08019D5C - ldr r1, [r0] - adds r1, #1 - str r1, [r0] - movs r0, #0x96 - lsls r0, r0, #1 - cmp r1, r0 - bls _08019D56 - adds r0, r2, #0 - bl sub_08019CEC -_08019D56: - pop {r0} - bx r0 - .align 2, 0 -_08019D5C: .4byte gUnknown_202291C - thumb_func_end sub_08019D3C - - thumb_func_start sub_08019D60 -sub_08019D60: @ 0x08019D60 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - adds r5, r0, #0 - str r1, [sp, #4] - str r2, [sp, #8] - bl is_walking_or_running - cmp r0, #0 - bne _08019DA8 - b _08019E4E -_08019D7C: - ldr r4, _08019DA4 - bl GetPlayerFacingDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r4 - ldrb r2, [r0] - adds r0, r6, #0 - ldr r1, [sp, #0xc] - bl sub_08019E68 - ldr r0, [sp, #4] - strh r6, [r0] - mov r1, sp - ldrh r2, [r1, #0xc] - ldr r1, [sp, #8] - strh r2, [r1] - movs r0, #1 - b _08019E50 - .align 2, 0 -_08019DA4: .4byte gUnknown_82C2BBA -_08019DA8: - mov r4, sp - adds r4, #2 - mov r0, sp - adds r1, r4, #0 - bl GetXYCoordsOneStepInFrontOfPlayer - movs r0, #0 - str r0, [sp, #0xc] - ldr r0, _08019E60 - adds r7, r5, #0 - movs r1, #0 - mov sl, r1 - adds r2, r0, #2 - str r2, [sp, #0x10] - str r0, [sp, #0x14] -_08019DC6: - movs r6, #0 - ldr r4, [sp, #0x14] - movs r0, #0 - ldrsh r4, [r4, r0] - mov sb, r4 - ldr r1, [sp, #0x10] - mov r8, r1 - ldr r5, _08019E64 -_08019DD6: - mov r2, sl - adds r3, r2, r6 - mov r0, sp - movs r4, #0 - ldrsh r1, [r0, r4] - movs r0, #0 - ldrsb r0, [r5, r0] - add r0, sb - adds r0, #7 - cmp r1, r0 - bne _08019E2A - mov r1, sp - movs r2, #2 - ldrsh r0, [r1, r2] - mov r4, r8 - movs r2, #0 - ldrsh r1, [r4, r2] - movs r2, #1 - ldrsb r2, [r5, r2] - adds r1, r1, r2 - adds r1, #7 - cmp r0, r1 - bne _08019E2A - adds r0, r3, #0 - subs r0, #0x38 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl sub_080975FC - cmp r0, #0 - bne _08019E2A - adds r0, r4, #0 - bl sub_08097724 - cmp r0, #0 - bne _08019E2A - ldrb r1, [r7, #0x1a] - movs r0, #3 - ands r0, r1 - cmp r0, #1 - beq _08019D7C -_08019E2A: - adds r5, #2 - adds r6, #1 - cmp r6, #4 - ble _08019DD6 - adds r7, #0x20 - movs r4, #5 - add sl, r4 - ldr r0, [sp, #0x10] - adds r0, #4 - str r0, [sp, #0x10] - ldr r1, [sp, #0x14] - adds r1, #4 - str r1, [sp, #0x14] - ldr r2, [sp, #0xc] - adds r2, #1 - str r2, [sp, #0xc] - cmp r2, #7 - ble _08019DC6 -_08019E4E: - movs r0, #0 -_08019E50: - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08019E60: .4byte gUnknown_82C2B90 -_08019E64: .4byte gUnknown_82C2BB0 - thumb_func_end sub_08019D60 - - thumb_func_start sub_08019E68 -sub_08019E68: @ 0x08019E68 - push {r4, lr} - adds r4, r0, #0 - adds r3, r1, #0 - lsls r1, r2, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r3, #2 - adds r0, r0, r3 - subs r0, #0x38 - adds r0, r0, r4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_080974E8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08019E68 - - thumb_func_start sub_08019E88 -sub_08019E88: @ 0x08019E88 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - lsls r3, r4, #5 - adds r3, r3, r2 - adds r2, r3, #0 - bl sub_08019A00 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08019E68 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_08019E88 - - thumb_func_start sub_08019EAC -sub_08019EAC: @ 0x08019EAC - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08019ECC - bl RunTasks - bl sub_08004630 - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade -_08019ECC: - pop {r0} - bx r0 - thumb_func_end sub_08019EAC - - thumb_func_start sub_08019ED0 -sub_08019ED0: @ 0x08019ED0 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08019ED0 - - thumb_func_start sub_08019EE4 -sub_08019EE4: @ 0x08019EE4 - push {lr} - ldr r0, _08019EF0 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_08019EF0: .4byte sub_08019EF4 - thumb_func_end sub_08019EE4 - - thumb_func_start sub_08019EF4 -sub_08019EF4: @ 0x08019EF4 - push {r4, r5, lr} - sub sp, #0xc - movs r0, #0 - movs r1, #0 - bl SetGpuReg - ldr r5, _0801A018 - movs r0, #0x6c - bl AllocZeroed - str r0, [r5] - movs r0, #0 - bl SetVBlankCallback - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _0801A01C - movs r0, #0 - movs r2, #2 - bl InitBgsFromTemplates - movs r4, #0x80 - lsls r4, r4, #4 - adds r0, r4, #0 - bl sub_08000BC8 - adds r1, r0, #0 - movs r0, #1 - bl SetBgTilemapBuffer - adds r0, r4, #0 - bl sub_08000BC8 - adds r1, r0, #0 - movs r0, #0 - bl SetBgTilemapBuffer - ldr r1, _0801A020 - movs r0, #0 - str r0, [sp] - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r1, _0801A024 - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - ldr r0, _0801A028 - bl InitWindows - bl sub_08004480 - bl ResetPaletteFade - bl ResetSpriteData - bl ResetTasks - bl ScanlineEffect_Stop - bl m4aSoundVSyncOn - ldr r0, _0801A02C - bl SetVBlankCallback - ldr r0, _0801A030 - movs r1, #0 - bl CreateTask - ldr r1, [r5] - adds r1, #0x60 - strb r0, [r1] - bl sub_08013748 - ldr r1, [r5] - adds r1, #0x61 - strb r0, [r1] - ldr r1, [r5] - movs r0, #1 - str r0, [r1, #0x1c] - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - ldr r0, _0801A034 - movs r1, #0 - movs r2, #0x20 - bl LoadPalette - movs r0, #0xf0 - bl Menu_LoadStdPalAt - bl DynamicPlaceholderTextUtil_Reset - movs r0, #0x20 - str r0, [sp] - str r0, [sp, #4] - movs r0, #0xf - str r0, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect - movs r0, #1 - bl CopyBgTilemapBufferToVram - ldr r0, _0801A038 - bl SetMainCallback2 - bl RunTasks - bl sub_08004630 - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0801A018: .4byte gUnknown_3000DAC -_0801A01C: .4byte gUnknown_82C31B4 -_0801A020: .4byte gUnknown_82C2E10 -_0801A024: .4byte gUnknown_82C3020 -_0801A028: .4byte gUnknown_82C31BC -_0801A02C: .4byte sub_08019ED0 -_0801A030: .4byte sub_0801A168 -_0801A034: .4byte gUnknown_82C2C10 -_0801A038: .4byte sub_08019EAC - thumb_func_end sub_08019EF4 - - thumb_func_start sub_0801A03C -sub_0801A03C: @ 0x0801A03C - push {r4, lr} - bl FreeAllWindowBuffers - movs r4, #0 -_0801A044: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl GetBgTilemapBuffer - bl Free - adds r4, #1 - cmp r4, #1 - ble _0801A044 - ldr r0, _0801A06C - ldr r0, [r0] - bl Free - ldr r0, _0801A070 - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801A06C: .4byte gUnknown_3000DAC -_0801A070: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic - thumb_func_end sub_0801A03C - - thumb_func_start sub_0801A074 -sub_0801A074: @ 0x0801A074 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #5 - ble _0801A09C - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xe - bne _0801A098 - movs r0, #0 - strh r0, [r1] -_0801A098: - movs r0, #0 - strh r0, [r2] -_0801A09C: - movs r2, #0 - ldrsh r0, [r1, r2] - adds r0, #2 - lsls r0, r0, #5 - ldr r1, _0801A0B4 - adds r0, r0, r1 - movs r1, #0 - movs r2, #0x10 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_0801A0B4: .4byte gUnknown_82C2C10 - thumb_func_end sub_0801A074 - - thumb_func_start sub_0801A0B8 -sub_0801A0B8: @ 0x0801A0B8 - push {r4, r5, lr} - sub sp, #8 - movs r0, #0 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #1 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #2 - movs r1, #0 - bl FillWindowPixelBuffer - ldr r4, _0801A164 - ldr r2, [r4] - movs r0, #6 - str r0, [sp] - movs r0, #3 - str r0, [sp, #4] - movs r0, #0 - movs r1, #1 - movs r3, #2 - bl sub_0801A384 - movs r1, #0 - adds r5, r4, #0 -_0801A0EE: - adds r4, r1, #1 - lsls r0, r4, #2 - adds r0, r0, r5 - ldr r2, [r0] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #0x19 - movs r1, #0xa0 - lsls r1, r1, #0x14 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - str r0, [sp] - movs r0, #1 - str r0, [sp, #4] - movs r1, #1 - movs r3, #0 - bl sub_0801A384 - adds r1, r4, #0 - cmp r4, #2 - ble _0801A0EE - ldr r1, _0801A164 - adds r0, r4, #1 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r2, [r0] - lsls r0, r4, #4 - subs r0, r0, r4 - lsls r0, r0, #0x19 - movs r1, #0xa0 - lsls r1, r1, #0x14 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #1 - movs r1, #1 - movs r3, #0 - bl sub_0801A384 - movs r0, #0 - bl PutWindowTilemap - movs r0, #0 - movs r1, #2 - bl CopyWindowToVram - movs r0, #1 - bl PutWindowTilemap - movs r0, #1 - movs r1, #2 - bl CopyWindowToVram - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0801A164: .4byte gUnknown_82C3238 - thumb_func_end sub_0801A0B8 - - thumb_func_start sub_0801A168 -sub_0801A168: @ 0x0801A168 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _0801A198 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #8 - ldrsh r0, [r0, r2] - adds r2, r1, #0 - cmp r0, #5 - bls _0801A18C - b _0801A36C -_0801A18C: - lsls r0, r0, #2 - ldr r1, _0801A19C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801A198: .4byte gUnknown_3005B60 -_0801A19C: .4byte _0801A1A0 -_0801A1A0: @ jump table - .4byte _0801A1B8 @ case 0 - .4byte _0801A1D4 @ case 1 - .4byte _0801A1F8 @ case 2 - .4byte _0801A214 @ case 3 - .4byte _0801A32C @ case 4 - .4byte _0801A354 @ case 5 -_0801A1B8: - bl sub_0801A0B8 - ldr r0, _0801A1D0 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _0801A36C - .align 2, 0 -_0801A1D0: .4byte gUnknown_3005B60 -_0801A1D4: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - movs r0, #1 - bl ShowBg - movs r0, #0 - bl CopyBgTilemapBufferToVram - movs r0, #0 - bl ShowBg - b _0801A33C -_0801A1F8: - ldr r0, _0801A210 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0801A206 - b _0801A36C -_0801A206: - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r2 - b _0801A346 - .align 2, 0 -_0801A210: .4byte gUnknown_2037C74 -_0801A214: - ldr r0, _0801A28C - ldr r0, [r0] - adds r1, r0, #0 - adds r1, #0x10 - adds r2, r0, #0 - adds r2, #0x20 - adds r3, r0, #0 - adds r3, #0x61 - ldrb r3, [r3] - bl sub_0801A504 - lsls r1, r5, #2 - mov sb, r1 - cmp r0, #0 - beq _0801A2C6 - movs r0, #2 - movs r1, #0 - bl FillWindowPixelBuffer - movs r4, #0 - ldr r7, _0801A290 - movs r2, #0xa0 - lsls r2, r2, #0x14 - mov r8, r2 - movs r6, #0 -_0801A246: - ldr r0, _0801A28C - ldr r0, [r0] - lsls r1, r4, #2 - adds r0, r0, r1 - ldr r1, [r0] - add r0, sp, #8 - movs r2, #1 - movs r3, #2 - bl sub_080089D8 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - add r1, sp, #8 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - ldr r1, _0801A294 - adds r1, r6, r1 - adds r0, r7, #0 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - cmp r4, #3 - beq _0801A298 - mov r1, r8 - lsrs r0, r1, #0x18 - str r0, [sp] - movs r0, #1 - str r0, [sp, #4] - movs r0, #2 - movs r1, #1 - adds r2, r7, #0 - movs r3, #0 - bl sub_0801A384 - b _0801A2AA - .align 2, 0 -_0801A28C: .4byte gUnknown_3000DAC -_0801A290: .4byte gUnknown_2021C7C -_0801A294: .4byte gUnknown_82C3220 -_0801A298: - movs r0, #0x64 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r1, #1 - adds r2, r7, #0 - movs r3, #0 - bl sub_0801A384 -_0801A2AA: - movs r2, #0xf0 - lsls r2, r2, #0x15 - add r8, r2 - adds r6, #6 - adds r4, #1 - cmp r4, #3 - ble _0801A246 - movs r0, #2 - bl PutWindowTilemap - movs r0, #2 - movs r1, #3 - bl CopyWindowToVram -_0801A2C6: - ldr r0, _0801A31C - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0801A2DA - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0801A304 -_0801A2DA: - movs r0, #5 - bl sub_080A306C - ldr r2, _0801A320 - ldr r0, _0801A324 - ldr r0, [r0] - adds r0, #0x61 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r1, #0xff - strh r1, [r0, #0x26] - mov r0, sb - adds r1, r0, r5 - lsls r1, r1, #3 - adds r1, r1, r2 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] -_0801A304: - mov r2, sb - adds r1, r2, r5 - lsls r1, r1, #3 - ldr r0, _0801A328 - adds r1, r1, r0 - adds r0, r1, #0 - adds r0, #0xe - adds r1, #0x10 - bl sub_0801A074 - b _0801A36C - .align 2, 0 -_0801A31C: .4byte gUnknown_3002360 -_0801A320: .4byte gUnknown_3005B60 -_0801A324: .4byte gUnknown_3000DAC -_0801A328: .4byte gUnknown_3005B68 -_0801A32C: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade -_0801A33C: - ldr r1, _0801A350 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 -_0801A346: - ldrh r1, [r0, #8] - adds r1, #1 - strh r1, [r0, #8] - b _0801A36C - .align 2, 0 -_0801A350: .4byte gUnknown_3005B60 -_0801A354: - ldr r0, _0801A37C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0801A36C - ldr r0, _0801A380 - bl SetMainCallback2 - adds r0, r5, #0 - bl DestroyTask -_0801A36C: - add sp, #0x14 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0801A37C: .4byte gUnknown_2037C74 -_0801A380: .4byte sub_0801A03C - thumb_func_end sub_0801A168 - - thumb_func_start sub_0801A384 -sub_0801A384: @ 0x0801A384 - push {r4, r5, r6, r7, lr} - sub sp, #0x18 - mov ip, r2 - ldr r2, [sp, #0x2c] - ldr r4, [sp, #0x30] - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - lsls r3, r3, #0x18 - lsrs r5, r3, #0x18 - lsls r2, r2, #0x18 - lsrs r3, r2, #0x18 - lsls r4, r4, #0x18 - lsrs r0, r4, #0x18 - cmp r0, #4 - bhi _0801A40E - lsls r0, r0, #2 - ldr r1, _0801A3B0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801A3B0: .4byte _0801A3B4 -_0801A3B4: @ jump table - .4byte _0801A3C8 @ case 0 - .4byte _0801A3D6 @ case 1 - .4byte _0801A3E4 @ case 2 - .4byte _0801A3F2 @ case 3 - .4byte _0801A400 @ case 4 -_0801A3C8: - add r1, sp, #0x14 - movs r0, #0 - strb r0, [r1] - movs r0, #2 - strb r0, [r1, #1] - movs r0, #3 - b _0801A40C -_0801A3D6: - add r1, sp, #0x14 - movs r0, #0 - strb r0, [r1] - movs r0, #1 - strb r0, [r1, #1] - movs r0, #3 - b _0801A40C -_0801A3E4: - add r1, sp, #0x14 - movs r0, #0 - strb r0, [r1] - movs r0, #4 - strb r0, [r1, #1] - movs r0, #5 - b _0801A40C -_0801A3F2: - add r1, sp, #0x14 - movs r0, #0 - strb r0, [r1] - movs r0, #7 - strb r0, [r1, #1] - movs r0, #6 - b _0801A40C -_0801A400: - add r1, sp, #0x14 - movs r0, #0 - strb r0, [r1] - movs r0, #1 - strb r0, [r1, #1] - movs r0, #2 -_0801A40C: - strb r0, [r1, #2] -_0801A40E: - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - add r0, sp, #0x14 - str r0, [sp, #8] - movs r0, #1 - rsbs r0, r0, #0 - str r0, [sp, #0xc] - mov r0, ip - str r0, [sp, #0x10] - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r5, #0 - bl AddTextPrinterParameterized4 - add sp, #0x18 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_0801A384 - - thumb_func_start sub_0801A434 -sub_0801A434: @ 0x0801A434 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov ip, r0 - adds r7, r1, #0 - ldrb r0, [r0, #0xa] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x19 - mov r8, r0 - movs r4, #0 - ldr r0, _0801A4AC - mov sb, r0 - movs r1, #1 - add r1, sb - mov sl, r1 - mov r3, ip - adds r3, #4 - str r3, [sp] -_0801A45E: - lsls r0, r4, #1 - adds r2, r0, r4 - mov r3, sb - adds r1, r2, r3 - adds r5, r0, #0 - adds r6, r4, #1 - ldrb r1, [r1] - cmp r8, r1 - bne _0801A4C2 - mov r0, ip - ldrb r1, [r0, #0x1a] - movs r0, #3 - ands r0, r1 - cmp r0, #1 - bne _0801A4C2 - mov r0, sb - adds r0, #2 - adds r3, r2, r0 - ldrb r0, [r3] - cmp r0, #0 - bne _0801A4B0 - movs r2, #0 - movs r1, #0 - ldr r3, [sp] -_0801A48E: - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _0801A498 - adds r2, #1 -_0801A498: - adds r1, #1 - cmp r1, #3 - ble _0801A48E - adds r2, #1 - adds r0, r5, r4 - add r0, sl - ldrb r1, [r0] - lsls r1, r1, #2 - adds r1, r1, r7 - b _0801A4BC - .align 2, 0 -_0801A4AC: .4byte gUnknown_82C324C -_0801A4B0: - mov r1, sl - adds r0, r2, r1 - ldrb r1, [r0] - lsls r1, r1, #2 - adds r1, r1, r7 - ldrb r2, [r3] -_0801A4BC: - ldr r0, [r1] - adds r0, r0, r2 - str r0, [r1] -_0801A4C2: - adds r4, r6, #0 - cmp r4, #0x1e - bls _0801A45E - mov r0, r8 - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801A434 - - thumb_func_start sub_0801A4DC -sub_0801A4DC: @ 0x0801A4DC - push {r4, lr} - movs r4, #0 - adds r3, r1, #0 - adds r2, r0, #0 -_0801A4E4: - ldr r1, [r2] - ldr r0, [r3] - cmp r1, r0 - beq _0801A4F0 - movs r0, #1 - b _0801A4FC -_0801A4F0: - adds r3, #4 - adds r2, #4 - adds r4, #1 - cmp r4, #3 - ble _0801A4E4 - movs r0, #0 -_0801A4FC: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801A4DC - - thumb_func_start sub_0801A504 -sub_0801A504: @ 0x0801A504 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x10 - adds r6, r0, #0 - mov sb, r1 - adds r5, r2, #0 - lsls r4, r3, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - mov r8, r0 - mov r0, sp - movs r1, #0 - movs r2, #0x10 - bl memset - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _0801A56C - adds r7, r0, r1 - movs r4, #0 -_0801A532: - lsls r1, r4, #5 - ldr r0, [r7] - adds r0, r0, r1 - mov r1, sp - bl sub_0801A434 - adds r1, r0, #0 - ldr r0, [r5] - cmp r1, r0 - beq _0801A54C - str r1, [r5] - movs r2, #1 - mov r8, r2 -_0801A54C: - adds r5, #4 - adds r4, #1 - cmp r4, #0xf - ble _0801A532 - mov r0, sp - mov r1, sb - bl sub_0801A4DC - cmp r0, #0 - bne _0801A570 - mov r3, r8 - cmp r3, #1 - beq _0801A598 - movs r0, #0 - b _0801A59A - .align 2, 0 -_0801A56C: .4byte gUnknown_3005B68 -_0801A570: - adds r1, r6, #0 - mov r0, sp - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - ldr r0, [r0] - str r0, [r1] - mov r1, sb - mov r0, sp - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - ldr r0, [r0] - str r0, [r1] - ldr r0, [r6] - ldr r1, [r6, #4] - adds r0, r0, r1 - ldr r1, [r6, #8] - adds r0, r0, r1 - ldr r1, [r6, #0xc] - adds r0, r0, r1 - str r0, [r6, #0xc] -_0801A598: - movs r0, #1 -_0801A59A: - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_0801A504 - - thumb_func_start sub_0801A5A8 -sub_0801A5A8: @ 0x0801A5A8 - push {r4, r5, r6, r7, lr} - movs r0, #0xa - bl sub_08013D18 - movs r4, #0 - movs r7, #0x64 - ldr r6, _0801A628 - ldr r5, _0801A62C -_0801A5B8: - ldr r0, _0801A630 - adds r0, r4, r0 - ldrb r0, [r0] - subs r0, #1 - adds r1, r0, #0 - muls r1, r7, r1 - adds r1, r1, r6 - adds r0, r5, #0 - movs r2, #0x64 - bl memcpy - adds r5, #0x64 - adds r4, #1 - cmp r4, #1 - ble _0801A5B8 - ldr r4, _0801A628 - movs r0, #0xfa - lsls r0, r0, #1 - adds r5, r4, r0 -_0801A5DE: - adds r0, r4, #0 - bl ZeroMonData - adds r4, #0x64 - cmp r4, r5 - ble _0801A5DE - ldr r4, _0801A628 - movs r5, #0 - adds r6, r4, #0 - adds r6, #0x64 -_0801A5F2: - ldr r1, _0801A62C - adds r1, r5, r1 - adds r0, r4, #0 - movs r2, #0x64 - bl memcpy - adds r4, #0x64 - adds r5, #0x64 - cmp r4, r6 - ble _0801A5F2 - movs r0, #0x32 - bl IncrementGameStat - bl sub_0806B004 - ldr r0, _0801A634 - movs r2, #0xc0 - lsls r2, r2, #4 - adds r1, r2, #0 - strh r1, [r0] - ldr r0, _0801A638 - bl SetMainCallback2 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0801A628: .4byte gUnknown_2024190 -_0801A62C: .4byte gUnknown_20243E8 -_0801A630: .4byte gUnknown_203CBC4 -_0801A634: .4byte gUnknown_203886A -_0801A638: .4byte CB2_InitBattle - thumb_func_end sub_0801A5A8 - - thumb_func_start sub_0801A63C -sub_0801A63C: @ 0x0801A63C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - adds r5, r0, #0 - adds r7, r1, #0 - adds r6, r2, #0 - ldr r4, [sp, #0x38] - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #0 - mov sb, r0 - movs r1, #1 - mov sl, r1 - ldr r0, _0801A6AC - mov r8, r0 - ldrb r0, [r0] - lsls r1, r0, #4 - orrs r1, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - str r3, [sp, #0x14] - bl FillWindowPixelBuffer - mov r1, sb - str r1, [sp] - mov r0, sl - str r0, [sp, #4] - mov r1, r8 - str r1, [sp, #8] - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - str r4, [sp, #0xc] - str r7, [sp, #0x10] - adds r0, r5, #0 - movs r1, #1 - adds r2, r6, #0 - ldr r3, [sp, #0x14] - bl AddTextPrinterParameterized4 - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0801A6AC: .4byte gUnknown_82C32C0 - thumb_func_end sub_0801A63C - - thumb_func_start sub_0801A6B0 -sub_0801A6B0: @ 0x0801A6B0 - push {r4, r5, r6, lr} - sub sp, #4 - adds r4, r0, #0 - adds r6, r1, #0 - adds r5, r2, #0 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0801A6C8 - cmp r0, #1 - beq _0801A6F6 - b _0801A70A -_0801A6C8: - movs r0, #0 - movs r1, #1 - movs r2, #0xd - bl DrawTextBorderOuter - str r5, [sp] - movs r0, #0 - adds r1, r6, #0 - movs r2, #1 - movs r3, #1 - bl sub_0801A63C - movs r0, #0 - bl PutWindowTilemap - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - b _0801A70A -_0801A6F6: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - bne _0801A70A - strh r0, [r4] - movs r0, #1 - b _0801A70C -_0801A70A: - movs r0, #0 -_0801A70C: - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_0801A6B0 - - thumb_func_start sub_0801A714 -sub_0801A714: @ 0x0801A714 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0801A714 - - thumb_func_start sub_0801A728 -sub_0801A728: @ 0x0801A728 - push {r4, lr} - sub sp, #0xc - ldr r1, _0801A748 - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, r1, #0 - cmp r0, #0x33 - bls _0801A73E - b _0801AA82 -_0801A73E: - lsls r0, r0, #2 - ldr r1, _0801A74C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801A748: .4byte gUnknown_3002360 -_0801A74C: .4byte _0801A750 -_0801A750: @ jump table - .4byte _0801A820 @ case 0 - .4byte _0801A8D0 @ case 1 - .4byte _0801A8F8 @ case 2 - .4byte _0801A91C @ case 3 - .4byte _0801A96C @ case 4 - .4byte _0801AA82 @ case 5 - .4byte _0801AA50 @ case 6 - .4byte _0801AA2C @ case 7 - .4byte _0801AA50 @ case 8 - .4byte _0801AA6C @ case 9 - .4byte _0801AA82 @ case 10 - .4byte _0801AA82 @ case 11 - .4byte _0801AA82 @ case 12 - .4byte _0801AA82 @ case 13 - .4byte _0801AA82 @ case 14 - .4byte _0801AA82 @ case 15 - .4byte _0801AA82 @ case 16 - .4byte _0801AA82 @ case 17 - .4byte _0801AA82 @ case 18 - .4byte _0801AA82 @ case 19 - .4byte _0801AA82 @ case 20 - .4byte _0801AA82 @ case 21 - .4byte _0801AA82 @ case 22 - .4byte _0801AA82 @ case 23 - .4byte _0801AA82 @ case 24 - .4byte _0801AA82 @ case 25 - .4byte _0801AA82 @ case 26 - .4byte _0801AA82 @ case 27 - .4byte _0801AA82 @ case 28 - .4byte _0801AA82 @ case 29 - .4byte _0801AA82 @ case 30 - .4byte _0801AA82 @ case 31 - .4byte _0801AA82 @ case 32 - .4byte _0801AA82 @ case 33 - .4byte _0801AA82 @ case 34 - .4byte _0801AA82 @ case 35 - .4byte _0801AA82 @ case 36 - .4byte _0801AA82 @ case 37 - .4byte _0801AA82 @ case 38 - .4byte _0801AA82 @ case 39 - .4byte _0801AA82 @ case 40 - .4byte _0801AA82 @ case 41 - .4byte _0801AA82 @ case 42 - .4byte _0801AA82 @ case 43 - .4byte _0801AA82 @ case 44 - .4byte _0801AA82 @ case 45 - .4byte _0801AA82 @ case 46 - .4byte _0801AA82 @ case 47 - .4byte _0801AA82 @ case 48 - .4byte _0801AA82 @ case 49 - .4byte _0801A9F8 @ case 50 - .4byte _0801AA14 @ case 51 -_0801A820: - movs r0, #0 - movs r1, #0 - bl SetGpuReg - ldr r4, _0801A8BC - movs r0, #4 - bl AllocZeroed - str r0, [r4] - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetTasks - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _0801A8C0 - movs r0, #0 - movs r2, #1 - bl InitBgsFromTemplates - bl reset_temp_tile_data_buffers - ldr r0, _0801A8C4 - bl InitWindows - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0801A860 - b _0801AA96 -_0801A860: - bl sub_08004480 - movs r0, #0 - bl ClearWindowTilemap - movs r0, #0 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - movs r0, #0x1e - str r0, [sp] - movs r0, #0x14 - str r0, [sp, #4] - movs r0, #0xf - str r0, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect - movs r0, #0 - movs r1, #1 - movs r2, #0xd0 - bl LoadUserWindowBorderGfx - movs r0, #0 - movs r1, #1 - movs r2, #0xd0 - bl LoadUserWindowBorderGfx_ - bl sub_08197680 - ldr r0, _0801A8C8 - bl SetVBlankCallback - ldr r1, _0801A8CC - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _0801AA5E - .align 2, 0 -_0801A8BC: .4byte gUnknown_2022920 -_0801A8C0: .4byte gUnknown_82C32AC -_0801A8C4: .4byte gUnknown_82C32B0 -_0801A8C8: .4byte sub_0801A714 -_0801A8CC: .4byte gUnknown_3002360 -_0801A8D0: - ldr r0, _0801A8EC - ldr r0, [r0] - ldr r1, _0801A8F0 - movs r2, #0 - bl sub_0801A6B0 - cmp r0, #0 - bne _0801A8E2 - b _0801AA82 -_0801A8E2: - ldr r1, _0801A8F4 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _0801AA5E - .align 2, 0 -_0801A8EC: .4byte gUnknown_2022920 -_0801A8F0: .4byte gUnknown_82C32C3 -_0801A8F4: .4byte gUnknown_3002360 -_0801A8F8: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - movs r0, #0 - bl ShowBg - ldr r1, _0801A918 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _0801AA5E - .align 2, 0 -_0801A918: .4byte gUnknown_3002360 -_0801A91C: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801A928 - b _0801AA82 -_0801A928: - ldr r4, _0801A944 - adds r0, r4, #0 - movs r1, #0 - movs r2, #0x20 - bl memset - ldr r0, _0801A948 - ldrb r1, [r0] - ldrb r0, [r0, #1] - cmn r1, r0 - bne _0801A94C - movs r0, #0x52 - b _0801A94E - .align 2, 0 -_0801A944: .4byte gUnknown_202257C -_0801A948: .4byte gUnknown_203CBC4 -_0801A94C: - movs r0, #0x51 -_0801A94E: - strb r0, [r4] - ldr r1, _0801A964 - movs r0, #0 - movs r2, #0x20 - bl SendBlock - ldr r1, _0801A968 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _0801AA5E - .align 2, 0 -_0801A964: .4byte gUnknown_202257C -_0801A968: .4byte gUnknown_3002360 -_0801A96C: - bl GetBlockReceivedStatus - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - beq _0801A97A - b _0801AA82 -_0801A97A: - ldr r1, _0801A9AC - ldrh r0, [r1] - cmp r0, #0x51 - bne _0801A9B4 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r1, r2 - ldrh r0, [r0] - cmp r0, #0x51 - bne _0801A9B4 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _0801A9B0 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - movs r1, #0x32 - b _0801A9EA - .align 2, 0 -_0801A9AC: .4byte gUnknown_202207C -_0801A9B0: .4byte gUnknown_3002360 -_0801A9B4: - bl sub_0800A7F8 - ldr r4, _0801A9D8 - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x10 - adds r0, r0, r4 - ldrh r0, [r0] - cmp r0, #0x52 - bne _0801A9E0 - ldr r0, _0801A9DC - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r0, r2 - movs r1, #6 - b _0801A9EA - .align 2, 0 -_0801A9D8: .4byte gUnknown_202207C -_0801A9DC: .4byte gUnknown_3002360 -_0801A9E0: - ldr r0, _0801A9F4 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - movs r1, #8 -_0801A9EA: - strb r1, [r0] - bl ResetBlockReceivedFlags - b _0801AA82 - .align 2, 0 -_0801A9F4: .4byte gUnknown_3002360 -_0801A9F8: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801AA82 - bl sub_0800A8D4 - ldr r1, _0801AA10 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _0801AA5E - .align 2, 0 -_0801AA10: .4byte gUnknown_3002360 -_0801AA14: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801AA82 - ldr r0, _0801AA28 - bl SetMainCallback2 - b _0801AA82 - .align 2, 0 -_0801AA28: .4byte sub_0801A5A8 -_0801AA2C: - ldr r0, _0801AA44 - ldr r0, [r0] - ldr r1, _0801AA48 - movs r2, #1 - bl sub_0801A6B0 - cmp r0, #0 - beq _0801AA82 - ldr r0, _0801AA4C - bl SetMainCallback2 - b _0801AA82 - .align 2, 0 -_0801AA44: .4byte gUnknown_2022920 -_0801AA48: .4byte gUnknown_82C32F3 -_0801AA4C: .4byte sub_08085A30 -_0801AA50: - ldr r0, _0801AA68 - ldrb r0, [r0] - cmp r0, #0 - bne _0801AA82 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r2, r0 -_0801AA5E: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0801AA82 - .align 2, 0 -_0801AA68: .4byte gUnknown_30031C4 -_0801AA6C: - ldr r0, _0801AAA0 - ldr r0, [r0] - ldr r1, _0801AAA4 - movs r2, #1 - bl sub_0801A6B0 - cmp r0, #0 - beq _0801AA82 - ldr r0, _0801AAA8 - bl SetMainCallback2 -_0801AA82: - bl RunTasks - bl sub_08004630 - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade -_0801AA96: - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801AAA0: .4byte gUnknown_2022920 -_0801AAA4: .4byte gUnknown_82C32E1 -_0801AAA8: .4byte sub_08085A30 - thumb_func_end sub_0801A728 - - thumb_func_start sub_0801AAAC -sub_0801AAAC: @ 0x0801AAAC - push {lr} - sub sp, #4 - movs r0, #0 - str r0, [sp] - ldr r0, _0801AAD4 - ldr r1, [r0] - ldr r0, _0801AAD8 - adds r1, r1, r0 - ldr r2, _0801AADC - mov r0, sp - bl CpuSet - bl sub_0801AC50 - bl sub_0811FE10 - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_0801AAD4: .4byte gUnknown_3005AEC -_0801AAD8: .4byte 0x0000322C -_0801AADC: .4byte 0x0500007A - thumb_func_end sub_0801AAAC - - thumb_func_start sub_0801AAE0 -sub_0801AAE0: @ 0x0801AAE0 - ldr r0, _0801AAEC - ldr r0, [r0] - ldr r1, _0801AAF0 - adds r0, r0, r1 - bx lr - .align 2, 0 -_0801AAEC: .4byte gUnknown_3005AEC -_0801AAF0: .4byte 0x00003230 - thumb_func_end sub_0801AAE0 - - thumb_func_start sub_0801AAF4 -sub_0801AAF4: @ 0x0801AAF4 - ldr r0, _0801AB00 - ldr r0, [r0] - ldr r1, _0801AB04 - adds r0, r0, r1 - bx lr - .align 2, 0 -_0801AB00: .4byte gUnknown_3005AEC -_0801AB04: .4byte 0x00003314 - thumb_func_end sub_0801AAF4 - - thumb_func_start sub_0801AB08 -sub_0801AB08: @ 0x0801AB08 - ldr r0, _0801AB14 - ldr r0, [r0] - ldr r1, _0801AB18 - adds r0, r0, r1 - bx lr - .align 2, 0 -_0801AB14: .4byte gUnknown_3005AEC -_0801AB18: .4byte 0x000033BC - thumb_func_end sub_0801AB08 - - thumb_func_start sub_0801AB1C -sub_0801AB1C: @ 0x0801AB1C - ldr r0, _0801AB28 - ldr r0, [r0] - ldr r1, _0801AB2C - adds r0, r0, r1 - bx lr - .align 2, 0 -_0801AB28: .4byte gUnknown_3005AEC -_0801AB2C: .4byte 0x000033E8 - thumb_func_end sub_0801AB1C - - thumb_func_start sub_0801AB30 -sub_0801AB30: @ 0x0801AB30 - ldr r0, _0801AB3C - ldr r0, [r0] - ldr r1, _0801AB40 - adds r0, r0, r1 - bx lr - .align 2, 0 -_0801AB3C: .4byte gUnknown_3005AEC -_0801AB40: .4byte 0x000033E0 - thumb_func_end sub_0801AB30 - - thumb_func_start sub_0801AB44 -sub_0801AB44: @ 0x0801AB44 - push {lr} - bl sub_0801AC1C - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0801AB44 - - thumb_func_start sub_0801AB50 -sub_0801AB50: @ 0x0801AB50 - push {r4, r5, r6, lr} - adds r6, r0, #0 - bl sub_0801ABE4 - cmp r0, #0 - beq _0801AB98 - bl sub_0801AC1C - ldr r4, _0801AB8C - ldr r0, [r4] - ldr r5, _0801AB90 - adds r0, r0, r5 - adds r1, r6, #0 - movs r2, #0xe0 - bl memcpy - ldr r0, [r4] - adds r0, r0, r5 - movs r1, #0xe0 - bl CalcCRC16WithTable - ldr r1, [r4] - ldr r2, _0801AB94 - adds r1, r1, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [r1] - movs r0, #1 - b _0801AB9A - .align 2, 0 -_0801AB8C: .4byte gUnknown_3005AEC -_0801AB90: .4byte 0x00003230 -_0801AB94: .4byte 0x0000322C -_0801AB98: - movs r0, #0 -_0801AB9A: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_0801AB50 - - thumb_func_start ItemUseInBattle_Escape -ItemUseInBattle_Escape: @ 0x0801ABA0 - push {r4, lr} - ldr r4, _0801ABD0 - ldr r0, [r4] - ldr r1, _0801ABD4 - adds r0, r0, r1 - movs r1, #0xe0 - bl CalcCRC16WithTable - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, [r4] - ldr r2, _0801ABD8 - adds r1, r4, r2 - ldr r1, [r1] - cmp r0, r1 - bne _0801ABDC - ldr r1, _0801ABD4 - adds r0, r4, r1 - bl sub_0801ABE4 - cmp r0, #0 - beq _0801ABDC - movs r0, #1 - b _0801ABDE - .align 2, 0 -_0801ABD0: .4byte gUnknown_3005AEC -_0801ABD4: .4byte 0x00003230 -_0801ABD8: .4byte 0x0000322C -_0801ABDC: - movs r0, #0 -_0801ABDE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end ItemUseInBattle_Escape - - thumb_func_start sub_0801ABE4 -sub_0801ABE4: @ 0x0801ABE4 - push {lr} - ldrh r0, [r0] - cmp r0, #0 - beq _0801ABF0 - movs r0, #1 - b _0801ABF2 -_0801ABF0: - movs r0, #0 -_0801ABF2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801ABE4 - - thumb_func_start WonderNews_Test_Unk_02 -WonderNews_Test_Unk_02: @ 0x0801ABF8 - push {lr} - ldr r0, _0801AC0C - ldr r0, [r0] - ldr r1, _0801AC10 - adds r0, r0, r1 - ldrb r0, [r0, #2] - cmp r0, #0 - beq _0801AC14 - movs r0, #1 - b _0801AC16 - .align 2, 0 -_0801AC0C: .4byte gUnknown_3005AEC -_0801AC10: .4byte 0x00003230 -_0801AC14: - movs r0, #0 -_0801AC16: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end WonderNews_Test_Unk_02 - - thumb_func_start sub_0801AC1C -sub_0801AC1C: @ 0x0801AC1C - push {r4, lr} - sub sp, #4 - movs r4, #0 - str r4, [sp] - bl sub_0801AAE0 - adds r1, r0, #0 - ldr r2, _0801AC44 - mov r0, sp - bl CpuSet - ldr r0, _0801AC48 - ldr r0, [r0] - ldr r1, _0801AC4C - adds r0, r0, r1 - str r4, [r0] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801AC44: .4byte 0x05000038 -_0801AC48: .4byte gUnknown_3005AEC -_0801AC4C: .4byte 0x0000322C - thumb_func_end sub_0801AC1C - - thumb_func_start sub_0801AC50 -sub_0801AC50: @ 0x0801AC50 - push {lr} - sub sp, #4 - movs r0, #0 - str r0, [sp] - bl sub_0801AB1C - adds r1, r0, #0 - ldr r2, _0801AC70 - mov r0, sp - bl CpuSet - bl sub_0801D9D0 - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_0801AC70: .4byte 0x05000001 - thumb_func_end sub_0801AC50 - - thumb_func_start sub_0801AC74 -sub_0801AC74: @ 0x0801AC74 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0801AC8C - ldr r0, [r0] - ldr r1, _0801AC90 - adds r4, r0, r1 - bl ItemUseInBattle_Escape - cmp r0, #0 - bne _0801AC94 -_0801AC88: - movs r0, #0 - b _0801ACAA - .align 2, 0 -_0801AC8C: .4byte gUnknown_3005AEC -_0801AC90: .4byte 0x00003230 -_0801AC94: - movs r2, #0 -_0801AC96: - adds r0, r4, r2 - adds r1, r5, r2 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bne _0801AC88 - adds r2, #1 - cmp r2, #0xdf - bls _0801AC96 - movs r0, #1 -_0801ACAA: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_0801AC74 - - thumb_func_start DestroyWonderCard -DestroyWonderCard: @ 0x0801ACB0 - push {lr} - bl sub_0801ADF0 - bl sub_0801AE28 - bl sub_0801B524 - bl sub_08098A58 - bl sub_0809CDB0 - bl sub_0809CE48 - ldr r0, _0801ACDC - ldr r0, [r0] - ldr r1, _0801ACE0 - adds r0, r0, r1 - bl ClearEReaderTrainer - pop {r0} - bx r0 - .align 2, 0 -_0801ACDC: .4byte gUnknown_3005AF0 -_0801ACE0: .4byte 0x00000BEC - thumb_func_end DestroyWonderCard - - thumb_func_start sub_0801ACE4 -sub_0801ACE4: @ 0x0801ACE4 - push {r4, r5, r6, lr} - adds r6, r0, #0 - bl sub_0801AD8C - cmp r0, #0 - beq _0801AD38 - bl DestroyWonderCard - ldr r4, _0801AD28 - ldr r0, [r4] - ldr r5, _0801AD2C - adds r0, r0, r5 - adds r1, r6, #0 - movs r2, #0xa4 - bl memcpy - ldr r0, [r4] - adds r0, r0, r5 - movs r1, #0xa4 - bl CalcCRC16WithTable - ldr r1, [r4] - ldr r3, _0801AD30 - adds r2, r1, r3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [r2] - ldr r0, _0801AD34 - adds r2, r1, r0 - adds r1, r1, r5 - ldrh r0, [r1, #2] - strh r0, [r2, #6] - movs r0, #1 - b _0801AD3A - .align 2, 0 -_0801AD28: .4byte gUnknown_3005AEC -_0801AD2C: .4byte 0x00003314 -_0801AD30: .4byte 0x00003310 -_0801AD34: .4byte 0x000033BC -_0801AD38: - movs r0, #0 -_0801AD3A: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_0801ACE4 - - thumb_func_start CreateSetStatusSprite -CreateSetStatusSprite: @ 0x0801AD40 - push {r4, r5, lr} - ldr r5, _0801AD78 - ldr r0, [r5] - ldr r1, _0801AD7C - adds r4, r0, r1 - adds r1, #4 - adds r0, r0, r1 - movs r1, #0xa4 - bl CalcCRC16WithTable - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, [r4] - cmp r1, r0 - bne _0801AD84 - ldr r0, [r5] - ldr r1, _0801AD80 - adds r0, r0, r1 - bl sub_0801AD8C - cmp r0, #0 - beq _0801AD84 - bl ValidateSavedRamScript - cmp r0, #0 - beq _0801AD84 - movs r0, #1 - b _0801AD86 - .align 2, 0 -_0801AD78: .4byte gUnknown_3005AEC -_0801AD7C: .4byte 0x00003310 -_0801AD80: .4byte 0x00003314 -_0801AD84: - movs r0, #0 -_0801AD86: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end CreateSetStatusSprite - - thumb_func_start sub_0801AD8C -sub_0801AD8C: @ 0x0801AD8C - push {lr} - adds r2, r0, #0 - ldrh r0, [r2] - cmp r0, #0 - beq _0801ADC2 - ldrb r1, [r2, #8] - lsls r0, r1, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #2 - bhi _0801ADC2 - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0 - beq _0801ADB0 - cmp r0, #0x40 - beq _0801ADB0 - cmp r0, #0x80 - bne _0801ADC2 -_0801ADB0: - lsls r0, r1, #0x1a - lsrs r0, r0, #0x1c - cmp r0, #7 - bhi _0801ADC2 - ldrb r0, [r2, #9] - cmp r0, #7 - bhi _0801ADC2 - movs r0, #1 - b _0801ADC4 -_0801ADC2: - movs r0, #0 -_0801ADC4: - pop {r1} - bx r1 - thumb_func_end sub_0801AD8C - - thumb_func_start sub_0801ADC8 -sub_0801ADC8: @ 0x0801ADC8 - push {lr} - ldr r0, _0801ADE0 - ldr r0, [r0] - ldr r1, _0801ADE4 - adds r0, r0, r1 - ldrb r1, [r0, #8] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0 - beq _0801ADE8 - movs r0, #1 - b _0801ADEA - .align 2, 0 -_0801ADE0: .4byte gUnknown_3005AEC -_0801ADE4: .4byte 0x00003314 -_0801ADE8: - movs r0, #0 -_0801ADEA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801ADC8 - - thumb_func_start sub_0801ADF0 -sub_0801ADF0: @ 0x0801ADF0 - push {r4, r5, lr} - sub sp, #4 - movs r5, #0 - str r5, [sp] - ldr r4, _0801AE18 - ldr r1, [r4] - ldr r0, _0801AE1C - adds r1, r1, r0 - ldr r2, _0801AE20 - mov r0, sp - bl CpuSet - ldr r0, [r4] - ldr r1, _0801AE24 - adds r0, r0, r1 - str r5, [r0] - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0801AE18: .4byte gUnknown_3005AEC -_0801AE1C: .4byte 0x00003314 -_0801AE20: .4byte 0x05000029 -_0801AE24: .4byte 0x00003310 - thumb_func_end sub_0801ADF0 - - thumb_func_start sub_0801AE28 -sub_0801AE28: @ 0x0801AE28 - push {r4, lr} - sub sp, #4 - movs r4, #0 - str r4, [sp] - bl sub_0801AB08 - adds r1, r0, #0 - ldr r2, _0801AE50 - mov r0, sp - bl CpuSet - ldr r0, _0801AE54 - ldr r0, [r0] - ldr r1, _0801AE58 - adds r0, r0, r1 - str r4, [r0] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801AE50: .4byte 0x05000009 -_0801AE54: .4byte gUnknown_3005AEC -_0801AE58: .4byte 0x000033B8 - thumb_func_end sub_0801AE28 - - thumb_func_start GetWonderCardFlagID -GetWonderCardFlagID: @ 0x0801AE5C - push {lr} - bl CreateSetStatusSprite - cmp r0, #0 - bne _0801AE6A - movs r0, #0 - b _0801AE74 -_0801AE6A: - ldr r0, _0801AE78 - ldr r0, [r0] - ldr r1, _0801AE7C - adds r0, r0, r1 - ldrh r0, [r0] -_0801AE74: - pop {r1} - bx r1 - .align 2, 0 -_0801AE78: .4byte gUnknown_3005AEC -_0801AE7C: .4byte 0x00003314 - thumb_func_end GetWonderCardFlagID - - thumb_func_start WonderCard_ResetInternalReceivedFlag -WonderCard_ResetInternalReceivedFlag: @ 0x0801AE80 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #8] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0x40 - bne _0801AE94 - movs r0, #0x3f - ands r0, r1 - strb r0, [r2, #8] -_0801AE94: - pop {r0} - bx r0 - thumb_func_end WonderCard_ResetInternalReceivedFlag - - thumb_func_start IsWonderCardFlagIDInValidRange -IsWonderCardFlagIDInValidRange: @ 0x0801AE98 - push {lr} - lsls r0, r0, #0x10 - ldr r1, _0801AEAC - adds r0, r0, r1 - lsrs r0, r0, #0x10 - cmp r0, #0x13 - bls _0801AEB0 - movs r0, #0 - b _0801AEB2 - .align 2, 0 -_0801AEAC: .4byte 0xFC180000 -_0801AEB0: - movs r0, #1 -_0801AEB2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsWonderCardFlagIDInValidRange - - thumb_func_start CheckReceivedGiftFromWonderCard -CheckReceivedGiftFromWonderCard: @ 0x0801AEB8 - push {r4, lr} - bl GetWonderCardFlagID - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r4, #0 - bl IsWonderCardFlagIDInValidRange - cmp r0, #0 - beq _0801AEF0 - ldr r1, _0801AEE8 - ldr r2, _0801AEEC - adds r0, r4, r2 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0801AEF0 - movs r0, #1 - b _0801AEF2 - .align 2, 0 -_0801AEE8: .4byte gUnknown_82C3304 -_0801AEEC: .4byte 0xFFFFFC18 -_0801AEF0: - movs r0, #0 -_0801AEF2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end CheckReceivedGiftFromWonderCard - - thumb_func_start sub_0801AEF8 -sub_0801AEF8: @ 0x0801AEF8 - push {lr} - movs r3, #0 - cmp r3, r1 - bge _0801AF1A - adds r2, r0, #0 - adds r2, #8 -_0801AF04: - ldrh r0, [r2, #0xe] - cmp r0, #0 - beq _0801AF12 - ldrh r0, [r2] - cmp r0, #0 - beq _0801AF12 - adds r3, #1 -_0801AF12: - adds r2, #2 - subs r1, #1 - cmp r1, #0 - bne _0801AF04 -_0801AF1A: - adds r0, r3, #0 - pop {r1} - bx r1 - thumb_func_end sub_0801AEF8 - - thumb_func_start sub_0801AF20 -sub_0801AF20: @ 0x0801AF20 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r4, r1, #0 - movs r1, #0 - cmp r1, r2 - bge _0801AF5A - ldrh r6, [r4, #2] - movs r0, #0x16 - adds r0, r0, r5 - mov ip, r0 -_0801AF34: - lsls r3, r1, #1 - mov r7, ip - ldrh r0, [r7] - cmp r0, r6 - beq _0801AF4C - adds r0, r5, #0 - adds r0, #8 - adds r0, r0, r3 - ldrh r0, [r0] - ldrh r3, [r4] - cmp r0, r3 - bne _0801AF50 -_0801AF4C: - movs r0, #1 - b _0801AF5C -_0801AF50: - movs r7, #2 - add ip, r7 - adds r1, #1 - cmp r1, r2 - blt _0801AF34 -_0801AF5A: - movs r0, #0 -_0801AF5C: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801AF20 - - thumb_func_start sub_0801AF64 -sub_0801AF64: @ 0x0801AF64 - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #2] - cmp r0, #0 - beq _0801AF84 - ldrh r1, [r1] - cmp r1, #0 - beq _0801AF84 - ldr r0, _0801AF80 - cmp r1, r0 - bhi _0801AF84 - movs r0, #1 - b _0801AF86 - .align 2, 0 -_0801AF80: .4byte 0x0000019B -_0801AF84: - movs r0, #0 -_0801AF86: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801AF64 - - thumb_func_start special_0x4a -special_0x4a: @ 0x0801AF8C - push {lr} - bl CreateSetStatusSprite - cmp r0, #0 - beq _0801AFC0 - ldr r0, _0801AFB4 - ldr r3, [r0] - ldr r0, _0801AFB8 - adds r2, r3, r0 - ldrb r1, [r2, #8] - movs r0, #3 - ands r0, r1 - cmp r0, #1 - bne _0801AFC0 - ldr r1, _0801AFBC - adds r0, r3, r1 - ldrb r1, [r2, #9] - bl sub_0801AEF8 - b _0801AFC2 - .align 2, 0 -_0801AFB4: .4byte gUnknown_3005AEC -_0801AFB8: .4byte 0x00003314 -_0801AFBC: .4byte 0x000033BC -_0801AFC0: - movs r0, #0 -_0801AFC2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end special_0x4a - - thumb_func_start sub_0801AFC8 -sub_0801AFC8: @ 0x0801AFC8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r6, _0801AFF4 - ldr r0, [r6] - ldr r1, _0801AFF8 - adds r0, r0, r1 - ldrb r4, [r0, #9] - adds r0, r5, #0 - bl sub_0801AF64 - cmp r0, #0 - beq _0801B032 - ldr r0, [r6] - ldr r1, _0801AFFC - adds r0, r0, r1 - adds r1, r5, #0 - adds r2, r4, #0 - bl sub_0801AF20 - cmp r0, #0 - beq _0801B00C - b _0801B032 - .align 2, 0 -_0801AFF4: .4byte gUnknown_3005AEC -_0801AFF8: .4byte 0x00003314 -_0801AFFC: .4byte 0x000033BC -_0801B000: - ldrh r0, [r5, #2] - strh r0, [r1] - ldrh r0, [r5] - strh r0, [r2] - movs r0, #1 - b _0801B034 -_0801B00C: - movs r3, #0 - cmp r3, r4 - bge _0801B032 - ldr r0, [r6] - ldr r6, _0801B03C - adds r2, r0, r6 - adds r6, #0xe - adds r1, r0, r6 -_0801B01C: - ldrh r0, [r2, #0xe] - cmp r0, #0 - bne _0801B028 - ldrh r0, [r2] - cmp r0, #0 - beq _0801B000 -_0801B028: - adds r2, #2 - adds r1, #2 - adds r3, #1 - cmp r3, r4 - blt _0801B01C -_0801B032: - movs r0, #0 -_0801B034: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0801B03C: .4byte 0x000033C4 - thumb_func_end sub_0801AFC8 - - thumb_func_start sub_0801B040 -sub_0801B040: @ 0x0801B040 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r5, r0, #0 - adds r4, r1, #0 - movs r0, #0 - str r0, [sp] - ldr r2, _0801B074 - mov r0, sp - adds r1, r5, #0 - bl CpuSet - ldr r0, _0801B078 - str r0, [r5] - movs r0, #1 - strh r0, [r5, #4] - str r0, [r5, #8] - cmp r4, #0 - beq _0801B080 - movs r0, #5 - strh r0, [r5, #0xc] - ldr r0, _0801B07C - b _0801B088 - .align 2, 0 -_0801B074: .4byte 0x05000019 -_0801B078: .4byte 0x00000101 -_0801B07C: .4byte 0x00000201 -_0801B080: - movs r0, #4 - strh r0, [r5, #0xc] - movs r0, #0x80 - lsls r0, r0, #2 -_0801B088: - str r0, [r5, #0x10] - bl CreateSetStatusSprite - cmp r0, #0 - beq _0801B0BC - bl sub_0801AAF4 - ldrh r0, [r0] - strh r0, [r5, #0x14] - bl sub_0801AB08 - adds r1, r5, #0 - adds r1, #0x20 - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - bl sub_0801AAF4 - ldrb r1, [r0, #9] - adds r0, r5, #0 - adds r0, #0x44 - strb r1, [r0] - b _0801B0BE -_0801B0BC: - strh r0, [r5, #0x14] -_0801B0BE: - adds r4, r5, #0 - adds r4, #0x4c - ldr r0, _0801B148 - mov r8, r0 - adds r6, r5, #0 - adds r6, #0x45 - adds r7, r5, #0 - adds r7, #0x50 - movs r1, #0x5c - adds r1, r1, r5 - mov sb, r1 - movs r2, #0x60 - adds r2, r2, r5 - mov sl, r2 - ldr r0, _0801B14C - ldr r0, [r0] - ldr r3, _0801B150 - adds r2, r0, r3 - adds r1, r5, #0 - adds r1, #0x16 - movs r3, #3 -_0801B0E8: - ldrh r0, [r2] - strh r0, [r1] - adds r2, #2 - adds r1, #2 - subs r3, #1 - cmp r3, #0 - bge _0801B0E8 - mov r0, r8 - ldr r1, [r0] - adds r1, #0xa - adds r0, r4, #0 - bl CopyTrainerId - mov r2, r8 - ldr r1, [r2] - adds r0, r6, #0 - bl StringCopy - ldr r0, _0801B14C - ldr r0, [r0] - ldr r3, _0801B154 - adds r2, r0, r3 - adds r1, r7, #0 - movs r3, #5 -_0801B118: - ldrh r0, [r2] - strh r0, [r1] - adds r2, #2 - adds r1, #2 - subs r3, #1 - cmp r3, #0 - bge _0801B118 - ldr r1, _0801B158 - mov r0, sb - movs r2, #4 - bl memcpy - ldr r0, _0801B15C - ldrb r0, [r0] - mov r4, sl - strb r0, [r4] - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0801B148: .4byte gUnknown_3005AF0 -_0801B14C: .4byte gUnknown_3005AEC -_0801B150: .4byte 0x000033E0 -_0801B154: .4byte 0x00002BB0 -_0801B158: .4byte 0x080000AC -_0801B15C: .4byte 0x080000BC - thumb_func_end sub_0801B040 - - thumb_func_start sub_0801B160 -sub_0801B160: @ 0x0801B160 - push {r4, lr} - adds r2, r0, #0 - adds r4, r1, #0 - ldr r1, [r2] - ldr r0, _0801B1A0 - cmp r1, r0 - bne _0801B19C - ldrh r1, [r2, #4] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _0801B19C - ldr r0, [r2, #8] - ands r0, r3 - cmp r0, #0 - beq _0801B19C - cmp r4, #0 - bne _0801B1A4 - ldrh r1, [r2, #0xc] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0801B19C - ldr r0, [r2, #0x10] - movs r1, #0xe0 - lsls r1, r1, #2 - ands r0, r1 - cmp r0, #0 - bne _0801B1A4 -_0801B19C: - movs r0, #0 - b _0801B1A6 - .align 2, 0 -_0801B1A0: .4byte 0x00000101 -_0801B1A4: - movs r0, #1 -_0801B1A6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0801B160 - - thumb_func_start sub_0801B1AC -sub_0801B1AC: @ 0x0801B1AC - push {lr} - ldrh r1, [r1, #0x14] - cmp r1, #0 - bne _0801B1B8 - movs r0, #0 - b _0801B1C4 -_0801B1B8: - ldrh r0, [r0] - cmp r0, r1 - beq _0801B1C2 - movs r0, #2 - b _0801B1C4 -_0801B1C2: - movs r0, #1 -_0801B1C4: - pop {r1} - bx r1 - thumb_func_end sub_0801B1AC - - thumb_func_start sub_0801B1C8 -sub_0801B1C8: @ 0x0801B1C8 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r4, r1, #0 - adds r5, r4, #0 - adds r5, #0x20 - adds r4, #0x44 - ldrb r1, [r4] - adds r0, r5, #0 - bl sub_0801AEF8 - ldrb r2, [r4] - subs r4, r2, r0 - cmp r4, #0 - bne _0801B1E8 - movs r0, #1 - b _0801B202 -_0801B1E8: - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_0801AF20 - cmp r0, #0 - beq _0801B1F8 - movs r0, #3 - b _0801B202 -_0801B1F8: - cmp r4, #1 - beq _0801B200 - movs r0, #2 - b _0801B202 -_0801B200: - movs r0, #4 -_0801B202: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_0801B1C8 - - thumb_func_start MEventStruct_Unk1442CC_CompareField_unk_16 -MEventStruct_Unk1442CC_CompareField_unk_16: @ 0x0801B208 - push {r4, lr} - movs r3, #0 - adds r2, r0, #0 - adds r2, #0x16 -_0801B210: - ldrh r0, [r2] - ldrh r4, [r1] - cmp r0, r4 - beq _0801B21C - movs r0, #0 - b _0801B228 -_0801B21C: - adds r1, #2 - adds r2, #2 - adds r3, #1 - cmp r3, #3 - ble _0801B210 - movs r0, #1 -_0801B228: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MEventStruct_Unk1442CC_CompareField_unk_16 - - thumb_func_start sub_0801B230 -sub_0801B230: @ 0x0801B230 - push {lr} - adds r2, r0, #0 - adds r2, #0x20 - adds r0, #0x44 - ldrb r1, [r0] - adds r0, r2, #0 - bl sub_0801AEF8 - pop {r1} - bx r1 - thumb_func_end sub_0801B230 - - thumb_func_start MEventStruct_Unk1442CC_GetValueNFrom_unk_20 -MEventStruct_Unk1442CC_GetValueNFrom_unk_20: @ 0x0801B244 - push {lr} - adds r2, r0, #0 - cmp r1, #4 - bhi _0801B290 - lsls r0, r1, #2 - ldr r1, _0801B258 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801B258: .4byte _0801B25C -_0801B25C: @ jump table - .4byte _0801B270 @ case 0 - .4byte _0801B274 @ case 1 - .4byte _0801B278 @ case 2 - .4byte _0801B27C @ case 3 - .4byte _0801B288 @ case 4 -_0801B270: - ldrh r0, [r2, #0x20] - b _0801B29E -_0801B274: - ldrh r0, [r2, #0x22] - b _0801B29E -_0801B278: - ldrh r0, [r2, #0x24] - b _0801B29E -_0801B27C: - adds r0, r2, #0 - bl sub_0801B230 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b _0801B29E -_0801B288: - adds r0, r2, #0 - adds r0, #0x44 - ldrb r0, [r0] - b _0801B29E -_0801B290: - ldr r0, _0801B2A4 - ldr r1, _0801B2A8 - ldr r2, _0801B2AC - movs r3, #1 - bl AGBAssert - movs r0, #0 -_0801B29E: - pop {r1} - bx r1 - .align 2, 0 -_0801B2A4: .4byte gUnknown_82C332C -_0801B2A8: .4byte 0x0000034F -_0801B2AC: .4byte gUnknown_82C3338 - thumb_func_end MEventStruct_Unk1442CC_GetValueNFrom_unk_20 - - thumb_func_start MovementType_FaceDownAndRight_callback -MovementType_FaceDownAndRight_callback: @ 0x0801B2B0 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0801B2D8 - ldr r0, [r2] - ldr r1, _0801B2DC - adds r0, r0, r1 - ldrb r1, [r0, #8] - movs r0, #3 - ands r0, r1 - adds r3, r2, #0 - cmp r0, #2 - bne _0801B34A - movs r2, #0 - cmp r4, #4 - bhi _0801B318 - lsls r0, r4, #2 - ldr r1, _0801B2E0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801B2D8: .4byte gUnknown_3005AEC -_0801B2DC: .4byte 0x00003314 -_0801B2E0: .4byte _0801B2E4 -_0801B2E4: @ jump table - .4byte _0801B2F8 @ case 0 - .4byte _0801B304 @ case 1 - .4byte _0801B310 @ case 2 - .4byte _0801B318 @ case 3 - .4byte _0801B318 @ case 4 -_0801B2F8: - ldr r0, [r3] - ldr r1, _0801B300 - b _0801B316 - .align 2, 0 -_0801B300: .4byte 0x000033BC -_0801B304: - ldr r0, [r3] - ldr r1, _0801B30C - b _0801B316 - .align 2, 0 -_0801B30C: .4byte 0x000033BE -_0801B310: - ldr r0, [r3] - movs r1, #0xcf - lsls r1, r1, #6 -_0801B316: - adds r2, r0, r1 -_0801B318: - cmp r2, #0 - bne _0801B338 - ldr r0, _0801B32C - ldr r1, _0801B330 - ldr r2, _0801B334 - movs r3, #1 - bl AGBAssert - b _0801B34A - .align 2, 0 -_0801B32C: .4byte gUnknown_82C332C -_0801B330: .4byte 0x0000037A -_0801B334: .4byte gUnknown_82C3338 -_0801B338: - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _0801B350 - cmp r0, r1 - bls _0801B34A - strh r1, [r2] -_0801B34A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801B350: .4byte 0x000003E7 - thumb_func_end MovementType_FaceDownAndRight_callback - - thumb_func_start sub_0801B354 -sub_0801B354: @ 0x0801B354 - push {lr} - cmp r0, #4 - bhi _0801B438 - lsls r0, r0, #2 - ldr r1, _0801B364 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801B364: .4byte _0801B368 -_0801B368: @ jump table - .4byte _0801B37C @ case 0 - .4byte _0801B3A4 @ case 1 - .4byte _0801B3CC @ case 2 - .4byte _0801B3F4 @ case 3 - .4byte _0801B418 @ case 4 -_0801B37C: - ldr r0, _0801B398 - ldr r2, [r0] - ldr r1, _0801B39C - adds r0, r2, r1 - ldrb r1, [r0, #8] - movs r0, #3 - ands r0, r1 - cmp r0, #2 - bne _0801B438 - ldr r1, _0801B3A0 - adds r0, r2, r1 - ldrh r0, [r0] - b _0801B446 - .align 2, 0 -_0801B398: .4byte gUnknown_3005AEC -_0801B39C: .4byte 0x00003314 -_0801B3A0: .4byte 0x000033BC -_0801B3A4: - ldr r0, _0801B3C0 - ldr r2, [r0] - ldr r1, _0801B3C4 - adds r0, r2, r1 - ldrb r1, [r0, #8] - movs r0, #3 - ands r0, r1 - cmp r0, #2 - bne _0801B438 - ldr r1, _0801B3C8 - adds r0, r2, r1 - ldrh r0, [r0, #2] - b _0801B446 - .align 2, 0 -_0801B3C0: .4byte gUnknown_3005AEC -_0801B3C4: .4byte 0x00003314 -_0801B3C8: .4byte 0x000033BC -_0801B3CC: - ldr r0, _0801B3E8 - ldr r2, [r0] - ldr r1, _0801B3EC - adds r0, r2, r1 - ldrb r1, [r0, #8] - movs r0, #3 - ands r0, r1 - cmp r0, #2 - bne _0801B438 - ldr r1, _0801B3F0 - adds r0, r2, r1 - ldrh r0, [r0, #4] - b _0801B446 - .align 2, 0 -_0801B3E8: .4byte gUnknown_3005AEC -_0801B3EC: .4byte 0x00003314 -_0801B3F0: .4byte 0x000033BC -_0801B3F4: - ldr r0, _0801B410 - ldr r0, [r0] - ldr r1, _0801B414 - adds r0, r0, r1 - ldrb r1, [r0, #8] - movs r0, #3 - ands r0, r1 - cmp r0, #1 - bne _0801B438 - bl special_0x4a - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b _0801B446 - .align 2, 0 -_0801B410: .4byte gUnknown_3005AEC -_0801B414: .4byte 0x00003314 -_0801B418: - ldr r0, _0801B430 - ldr r0, [r0] - ldr r1, _0801B434 - adds r2, r0, r1 - ldrb r1, [r2, #8] - movs r0, #3 - ands r0, r1 - cmp r0, #1 - bne _0801B438 - ldrb r0, [r2, #9] - b _0801B446 - .align 2, 0 -_0801B430: .4byte gUnknown_3005AEC -_0801B434: .4byte 0x00003314 -_0801B438: - ldr r0, _0801B44C - ldr r1, _0801B450 - ldr r2, _0801B454 - movs r3, #1 - bl AGBAssert - movs r0, #0 -_0801B446: - pop {r1} - bx r1 - .align 2, 0 -_0801B44C: .4byte gUnknown_82C332C -_0801B450: .4byte 0x000003A7 -_0801B454: .4byte gUnknown_82C3338 - thumb_func_end sub_0801B354 - - thumb_func_start sub_0801B458 -sub_0801B458: @ 0x0801B458 - ldr r1, _0801B460 - movs r0, #0 - str r0, [r1] - bx lr - .align 2, 0 -_0801B460: .4byte gUnknown_2022924 - thumb_func_end sub_0801B458 - - thumb_func_start sub_0801B464 -sub_0801B464: @ 0x0801B464 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r4, r0, #0 - ldr r5, _0801B494 - movs r0, #0 - str r0, [r5] - cmp r4, #0 - beq _0801B4A2 - bl CreateSetStatusSprite - cmp r0, #0 - beq _0801B4A0 - ldr r0, _0801B498 - ldr r0, [r0] - ldr r1, _0801B49C - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, r4 - bne _0801B4A0 - movs r0, #1 - str r0, [r5] - b _0801B4A2 - .align 2, 0 -_0801B494: .4byte gUnknown_2022924 -_0801B498: .4byte gUnknown_3005AEC -_0801B49C: .4byte 0x00003314 -_0801B4A0: - movs r0, #0 -_0801B4A2: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_0801B464 - - thumb_func_start WonderCard_Test_Unk_08_6 -WonderCard_Test_Unk_08_6: @ 0x0801B4A8 - push {lr} - adds r2, r0, #0 - ldr r0, _0801B4D0 - ldr r0, [r0] - cmp r0, #0 - beq _0801B514 - cmp r2, #1 - beq _0801B4EC - cmp r2, #1 - blo _0801B4D8 - cmp r2, #2 - bne _0801B508 - ldr r0, _0801B4D4 - ldr r2, [r0] - movs r0, #0xd0 - lsls r0, r0, #6 - adds r2, r2, r0 - movs r0, #2 - b _0801B4F6 - .align 2, 0 -_0801B4D0: .4byte gUnknown_2022924 -_0801B4D4: .4byte gUnknown_3005AEC -_0801B4D8: - ldr r0, _0801B4E4 - ldr r2, [r0] - ldr r0, _0801B4E8 - adds r2, r2, r0 - movs r0, #0 - b _0801B4F6 - .align 2, 0 -_0801B4E4: .4byte gUnknown_3005AEC -_0801B4E8: .4byte 0x000033EC -_0801B4EC: - ldr r0, _0801B500 - ldr r2, [r0] - ldr r0, _0801B504 - adds r2, r2, r0 - movs r0, #1 -_0801B4F6: - movs r3, #5 - bl sub_0801B5B8 - b _0801B514 - .align 2, 0 -_0801B500: .4byte gUnknown_3005AEC -_0801B504: .4byte 0x000033EC -_0801B508: - ldr r0, _0801B518 - ldr r1, _0801B51C - ldr r2, _0801B520 - movs r3, #1 - bl AGBAssert -_0801B514: - pop {r0} - bx r0 - .align 2, 0 -_0801B518: .4byte gUnknown_82C332C -_0801B51C: .4byte 0x000003F2 -_0801B520: .4byte gUnknown_82C3338 - thumb_func_end WonderCard_Test_Unk_08_6 - - thumb_func_start sub_0801B524 -sub_0801B524: @ 0x0801B524 - push {lr} - sub sp, #4 - movs r0, #0 - str r0, [sp] - ldr r0, _0801B544 - ldr r1, [r0] - ldr r0, _0801B548 - adds r1, r1, r0 - ldr r2, _0801B54C - mov r0, sp - bl CpuSet - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_0801B544: .4byte gUnknown_3005AEC -_0801B548: .4byte 0x000033EC -_0801B54C: .4byte 0x0500000A - thumb_func_end sub_0801B524 - - thumb_func_start sub_0801B550 -sub_0801B550: @ 0x0801B550 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - movs r1, #0 - cmp r1, r2 - bge _0801B572 - ldr r0, [r4] - cmp r0, r5 - beq _0801B572 - adds r3, r4, #0 -_0801B564: - adds r3, #4 - adds r1, #1 - cmp r1, r2 - bge _0801B572 - ldr r0, [r3] - cmp r0, r5 - bne _0801B564 -_0801B572: - cmp r1, r2 - bne _0801B594 - subs r3, r1, #1 - cmp r3, #0 - ble _0801B58E - lsls r0, r3, #2 - subs r0, #4 - adds r2, r0, r4 -_0801B582: - ldr r0, [r2] - str r0, [r2, #4] - subs r2, #4 - subs r3, #1 - cmp r3, #0 - bgt _0801B582 -_0801B58E: - str r5, [r4] - movs r0, #1 - b _0801B5B0 -_0801B594: - adds r3, r1, #0 - cmp r3, #0 - ble _0801B5AC - lsls r0, r3, #2 - subs r0, #4 - adds r2, r0, r4 -_0801B5A0: - ldr r0, [r2] - str r0, [r2, #4] - subs r2, #4 - subs r3, #1 - cmp r3, #0 - bgt _0801B5A0 -_0801B5AC: - str r5, [r4] - movs r0, #0 -_0801B5B0: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801B550 - - thumb_func_start sub_0801B5B8 -sub_0801B5B8: @ 0x0801B5B8 - push {r4, lr} - adds r4, r0, #0 - adds r0, r1, #0 - adds r1, r2, #0 - adds r2, r3, #0 - bl sub_0801B550 - cmp r0, #0 - beq _0801B5D0 - adds r0, r4, #0 - bl MovementType_FaceDownAndRight_callback -_0801B5D0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0801B5B8 - - thumb_func_start sub_0801B5D8 -sub_0801B5D8: @ 0x0801B5D8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - cmp r4, #0 - beq _0801B5F4 - cmp r5, #0 - beq _0801B5F4 - ldr r6, _0801B5F8 - ldr r0, _0801B5FC - bl AllocZeroed - str r0, [r6] - cmp r0, #0 - bne _0801B600 -_0801B5F4: - movs r0, #0 - b _0801B664 - .align 2, 0 -_0801B5F8: .4byte gUnknown_2022928 -_0801B5FC: .4byte 0x0000126C -_0801B600: - adds r1, r4, #0 - movs r2, #0xa4 - bl memcpy - ldr r0, [r6] - adds r0, #0xa4 - adds r1, r5, #0 - ldm r1!, {r2, r3, r4} - stm r0!, {r2, r3, r4} - ldm r1!, {r2, r3, r4} - stm r0!, {r2, r3, r4} - ldm r1!, {r2, r3, r4} - stm r0!, {r2, r3, r4} - ldr r2, [r6] - ldrb r1, [r2, #8] - lsls r0, r1, #0x1a - lsrs r0, r0, #0x1c - cmp r0, #7 - bls _0801B62E - movs r0, #0x3d - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #8] -_0801B62E: - ldr r2, [r6] - ldrb r1, [r2, #8] - lsls r0, r1, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #2 - bls _0801B642 - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #8] -_0801B642: - ldr r1, [r6] - ldrb r0, [r1, #9] - cmp r0, #7 - bls _0801B64E - movs r0, #0 - strb r0, [r1, #9] -_0801B64E: - ldr r0, [r6] - adds r2, r0, #0 - adds r2, #0xc8 - ldrb r0, [r0, #8] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1c - lsls r0, r0, #4 - ldr r1, _0801B66C - adds r0, r0, r1 - str r0, [r2] - movs r0, #1 -_0801B664: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0801B66C: .4byte gUnknown_82C428C - thumb_func_end sub_0801B5D8 - - thumb_func_start DestroyWonderCardResources -DestroyWonderCardResources: @ 0x0801B670 - push {r4, lr} - ldr r4, _0801B694 - ldr r0, [r4] - cmp r0, #0 - beq _0801B68C - ldr r2, _0801B698 - movs r1, #0 - bl memset - ldr r0, [r4] - bl Free - movs r0, #0 - str r0, [r4] -_0801B68C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801B694: .4byte gUnknown_2022928 -_0801B698: .4byte 0x0000126C - thumb_func_end DestroyWonderCardResources - - thumb_func_start sub_0801B69C -sub_0801B69C: @ 0x0801B69C - push {r4, r5, r6, lr} - sub sp, #0x24 - ldr r4, _0801B6B0 - ldr r0, [r4] - cmp r0, #0 - bne _0801B6B4 - movs r0, #1 - rsbs r0, r0, #0 - b _0801B8A4 - .align 2, 0 -_0801B6B0: .4byte gUnknown_2022928 -_0801B6B4: - adds r0, #0xcc - ldrb r0, [r0] - cmp r0, #7 - bls _0801B6BE - b _0801B880 -_0801B6BE: - lsls r0, r0, #2 - ldr r1, _0801B6C8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801B6C8: .4byte _0801B6CC -_0801B6CC: @ jump table - .4byte _0801B6EC @ case 0 - .4byte _0801B6FE @ case 1 - .4byte _0801B70C @ case 2 - .4byte _0801B7A0 @ case 3 - .4byte _0801B824 @ case 4 - .4byte _0801B82A @ case 5 - .4byte _0801B844 @ case 6 - .4byte _0801B84A @ case 7 -_0801B6EC: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - b _0801B896 -_0801B6FE: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801B70A - b _0801B896 -_0801B70A: - b _0801B8A2 -_0801B70C: - movs r5, #0x1e - str r5, [sp] - movs r4, #0x14 - str r4, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - str r5, [sp] - str r4, [sp, #4] - movs r0, #1 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - str r5, [sp] - str r4, [sp, #4] - movs r0, #2 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, #0 - bl CopyBgTilemapBufferToVram - movs r0, #1 - bl CopyBgTilemapBufferToVram - movs r0, #2 - bl CopyBgTilemapBufferToVram - ldr r5, _0801B798 - ldr r0, [r5] - adds r0, #0xc8 - ldr r0, [r0] - ldr r1, [r0, #4] - movs r0, #0 - str r0, [sp] - movs r0, #2 - movs r2, #0 - movs r3, #8 - bl decompress_and_copy_tile_data_to_vram - ldr r4, _0801B79C - adds r0, r4, #0 - bl AddWindow - ldr r1, [r5] - adds r1, #0xce - strh r0, [r1] - adds r0, r4, #0 - adds r0, #8 - bl AddWindow - ldr r1, [r5] - adds r1, #0xd0 - strh r0, [r1] - adds r4, #0x10 - adds r0, r4, #0 - bl AddWindow - ldr r1, [r5] - adds r1, #0xd2 - strh r0, [r1] - b _0801B896 - .align 2, 0 -_0801B798: .4byte gUnknown_2022928 -_0801B79C: .4byte gUnknown_82C3348 -_0801B7A0: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - bne _0801B8A2 - movs r0, #1 - bl stdpal_get - movs r1, #0x20 - movs r2, #0x20 - bl LoadPalette - ldr r2, _0801B81C - ldrb r0, [r2, #8] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #8] - ldr r5, _0801B820 - ldr r0, [r5] - adds r0, #0xc8 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x10 - movs r2, #0x20 - bl LoadPalette - ldr r1, [r5] - adds r0, r1, #0 - adds r0, #0xc8 - ldr r0, [r0] - ldr r0, [r0, #8] - movs r4, #0x9b - lsls r4, r4, #2 - adds r1, r1, r4 - bl LZ77UnCompWram - ldr r1, [r5] - adds r1, r1, r4 - movs r2, #0x1e - str r2, [sp] - movs r0, #0x14 - str r0, [sp, #4] - str r6, [sp, #8] - str r6, [sp, #0xc] - str r2, [sp, #0x10] - str r0, [sp, #0x14] - movs r0, #1 - str r0, [sp, #0x18] - movs r0, #8 - str r0, [sp, #0x1c] - str r6, [sp, #0x20] - movs r0, #2 - movs r2, #0 - movs r3, #0 - bl CopyRectToBgTilemapBufferRect - movs r0, #2 - bl CopyBgTilemapBufferToVram - b _0801B896 - .align 2, 0 -_0801B81C: .4byte gUnknown_2037C74 -_0801B820: .4byte gUnknown_2022928 -_0801B824: - bl sub_0801B9F0 - b _0801B896 -_0801B82A: - movs r0, #0 - bl sub_0801BCA4 - movs r0, #1 - bl sub_0801BCA4 - movs r0, #2 - bl sub_0801BCA4 - movs r0, #1 - bl CopyBgTilemapBufferToVram - b _0801B896 -_0801B844: - bl LoadMonIconPalettes - b _0801B896 -_0801B84A: - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - ldr r2, _0801B87C - ldrb r1, [r2, #8] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #8] - bl sub_0801C04C - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - bl UpdatePaletteFade - b _0801B896 - .align 2, 0 -_0801B87C: .4byte gUnknown_2037C74 -_0801B880: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0801B8A2 - ldr r0, [r4] - adds r0, #0xcc - strb r1, [r0] - movs r0, #1 - b _0801B8A4 -_0801B896: - ldr r0, _0801B8AC - ldr r1, [r0] - adds r1, #0xcc - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_0801B8A2: - movs r0, #0 -_0801B8A4: - add sp, #0x24 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0801B8AC: .4byte gUnknown_2022928 - thumb_func_end sub_0801B69C - - thumb_func_start sub_0801B8B0 -sub_0801B8B0: @ 0x0801B8B0 - push {r4, r5, lr} - sub sp, #8 - ldr r4, _0801B8C4 - ldr r0, [r4] - cmp r0, #0 - bne _0801B8C8 - movs r0, #1 - rsbs r0, r0, #0 - b _0801B9E4 - .align 2, 0 -_0801B8C4: .4byte gUnknown_2022928 -_0801B8C8: - adds r0, #0xcc - ldrb r0, [r0] - cmp r0, #5 - bhi _0801B9C0 - lsls r0, r0, #2 - ldr r1, _0801B8DC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801B8DC: .4byte _0801B8E0 -_0801B8E0: @ jump table - .4byte _0801B8F8 @ case 0 - .4byte _0801B90A @ case 1 - .4byte _0801B916 @ case 2 - .4byte _0801B95E @ case 3 - .4byte _0801B990 @ case 4 - .4byte _0801B99A @ case 5 -_0801B8F8: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - b _0801B9D6 -_0801B90A: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801B9D6 - b _0801B9E2 -_0801B916: - movs r5, #0x1e - str r5, [sp] - movs r4, #0x14 - str r4, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - str r5, [sp] - str r4, [sp, #4] - movs r0, #1 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - str r5, [sp] - str r4, [sp, #4] - movs r0, #2 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, #0 - bl CopyBgTilemapBufferToVram - movs r0, #1 - bl CopyBgTilemapBufferToVram - movs r0, #2 - bl CopyBgTilemapBufferToVram - b _0801B9D6 -_0801B95E: - movs r0, #1 - bl HideBg - movs r0, #2 - bl HideBg - ldr r4, _0801B98C - ldr r0, [r4] - adds r0, #0xd2 - ldrb r0, [r0] - bl RemoveWindow - ldr r0, [r4] - adds r0, #0xd0 - ldrb r0, [r0] - bl RemoveWindow - ldr r0, [r4] - adds r0, #0xce - ldrb r0, [r0] - bl RemoveWindow - b _0801B9D6 - .align 2, 0 -_0801B98C: .4byte gUnknown_2022928 -_0801B990: - bl sub_0801C17C - bl FreeMonIconPalettes - b _0801B9D6 -_0801B99A: - ldr r0, _0801B9BC - ldrb r0, [r0] - bl sub_08018180 - movs r0, #0 - bl CopyBgTilemapBufferToVram - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - b _0801B9D6 - .align 2, 0 -_0801B9BC: .4byte gUnknown_2022914 -_0801B9C0: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0801B9E2 - ldr r0, [r4] - adds r0, #0xcc - strb r1, [r0] - movs r0, #1 - b _0801B9E4 -_0801B9D6: - ldr r0, _0801B9EC - ldr r1, [r0] - adds r1, #0xcc - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_0801B9E2: - movs r0, #0 -_0801B9E4: - add sp, #8 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0801B9EC: .4byte gUnknown_2022928 - thumb_func_end sub_0801B8B0 - - thumb_func_start sub_0801B9F0 -sub_0801B9F0: @ 0x0801B9F0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - movs r5, #0 - mov r0, sp - movs r1, #0 - movs r2, #6 - bl memset - ldr r4, _0801BAC4 - ldr r1, [r4] - adds r0, r1, #0 - adds r0, #0xe3 - adds r1, #0xa - movs r2, #0x12 - bl memcpy - ldr r0, [r4] - adds r0, #0xf5 - movs r1, #0xff - strb r1, [r0] - ldr r1, [r4] - adds r0, r1, #0 - adds r0, #0xf6 - adds r1, #0x1c - movs r2, #0xd - bl memcpy - ldr r0, [r4] - ldr r2, _0801BAC8 - adds r1, r0, r2 - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r1] - ldr r1, [r4] - ldr r0, [r1, #4] - ldr r2, _0801BACC - cmp r0, r2 - bls _0801BA42 - str r2, [r1, #4] -_0801BA42: - ldr r1, [r4] - movs r3, #0x82 - lsls r3, r3, #1 - adds r0, r1, r3 - ldr r1, [r1, #4] - movs r2, #0 - movs r3, #6 - bl sub_080089D8 - adds r6, r4, #0 -_0801BA56: - ldr r2, [r6] - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #2 - adds r4, r1, r5 - adds r0, r4, r2 - ldr r3, _0801BAD0 - adds r0, r0, r3 - adds r1, r1, r2 - adds r1, #0x29 - movs r2, #0x14 - bl memcpy - ldr r1, [r6] - ldr r0, _0801BAD4 - adds r1, r1, r0 - adds r1, r1, r4 - movs r2, #1 - rsbs r2, r2, #0 - adds r7, r2, #0 - movs r0, #0xff - strb r0, [r1] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #3 - bls _0801BA56 - ldr r6, _0801BAC4 - ldr r1, [r6] - ldr r3, _0801BAD8 - adds r0, r1, r3 - adds r1, #0x79 - movs r2, #0x14 - bl memcpy - ldr r0, [r6] - ldr r2, _0801BADC - adds r1, r0, r2 - movs r3, #1 - rsbs r3, r3, #0 - adds r4, r3, #0 - movs r0, #0xff - strb r0, [r1] - ldr r1, [r6] - ldrb r0, [r1, #8] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - beq _0801BAFE - cmp r0, #1 - bgt _0801BAE0 - cmp r0, #0 - beq _0801BAE6 - b _0801BC96 - .align 2, 0 -_0801BAC4: .4byte gUnknown_2022928 -_0801BAC8: .4byte 0x00000103 -_0801BACC: .4byte 0x000F423F -_0801BAD0: .4byte 0x0000010B -_0801BAD4: .4byte 0x0000011F -_0801BAD8: .4byte 0x0000015F -_0801BADC: .4byte 0x00000173 -_0801BAE0: - cmp r0, #2 - beq _0801BB0C - b _0801BC96 -_0801BAE6: - movs r2, #0xba - lsls r2, r2, #1 - adds r0, r1, r2 - adds r1, #0x8d - movs r2, #0x14 - bl memcpy - ldr r1, [r6] - movs r3, #0xc4 - lsls r3, r3, #1 - adds r1, r1, r3 - b _0801BB04 -_0801BAFE: - movs r6, #0xba - lsls r6, r6, #1 - adds r1, r1, r6 -_0801BB04: - ldrb r0, [r1] - orrs r0, r4 - strb r0, [r1] - b _0801BC96 -_0801BB0C: - movs r2, #0xba - lsls r2, r2, #1 - adds r0, r1, r2 - ldrb r1, [r0] - orrs r1, r7 - strb r1, [r0] - mov r3, sp - ldr r1, [r6] - adds r0, r1, #0 - adds r0, #0xa4 - ldrh r0, [r0] - ldr r2, _0801BBB8 - cmp r0, r2 - bls _0801BB2A - adds r0, r2, #0 -_0801BB2A: - strh r0, [r3] - mov r3, sp - adds r0, r1, #0 - adds r0, #0xa6 - ldrh r0, [r0] - cmp r0, r2 - bls _0801BB3A - adds r0, r2, #0 -_0801BB3A: - strh r0, [r3, #2] - mov r3, sp - adds r0, r1, #0 - adds r0, #0xa8 - ldrh r0, [r0] - cmp r0, r2 - bls _0801BB4A - adds r0, r2, #0 -_0801BB4A: - strh r0, [r3, #4] - movs r5, #0 -_0801BB4E: - lsls r4, r5, #3 - subs r4, r4, r5 - lsls r4, r4, #2 - movs r3, #0xc6 - lsls r3, r3, #1 - adds r4, r4, r3 - ldr r0, [r6] - adds r0, r0, r4 - adds r0, #0x16 - movs r1, #0xff - movs r2, #4 - bl memset - ldr r0, [r6] - adds r0, r0, r4 - adds r0, #1 - movs r1, #0xff - movs r2, #0x15 - bl memset - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #7 - bls _0801BB4E - movs r5, #0 - movs r4, #0 - ldr r7, _0801BBBC - movs r6, #0xc6 - lsls r6, r6, #1 - mov r8, r6 -_0801BB8C: - ldr r2, [r7] - adds r1, r2, #0 - adds r1, #0x8d - adds r0, r1, r5 - ldrb r3, [r0] - cmp r3, #0xf7 - beq _0801BBC4 - adds r0, r2, #0 - adds r0, #0xcd - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r4, r0 - ldr r6, _0801BBC0 - adds r1, r2, r6 - adds r1, r1, r0 - strb r3, [r1] - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - b _0801BC8A - .align 2, 0 -_0801BBB8: .4byte 0x000003E7 -_0801BBBC: .4byte gUnknown_2022928 -_0801BBC0: .4byte 0x0000018D -_0801BBC4: - adds r0, r5, #1 - adds r0, r1, r0 - ldrb r3, [r0] - cmp r3, #2 - bls _0801BBD4 - adds r0, r5, #2 - lsls r0, r0, #0x10 - b _0801BC88 -_0801BBD4: - adds r0, r2, #0 - adds r0, #0xcd - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - adds r0, r2, r0 - adds r0, #0x16 - lsls r1, r3, #1 - add r1, sp - ldrh r1, [r1] - movs r2, #2 - movs r3, #3 - bl sub_080089D8 - ldr r1, [r7] - adds r0, r1, #0 - adds r0, #0xcd - ldrb r2, [r0] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r1, r0 - adds r6, r5, #2 - adds r1, #0x8d - adds r1, r1, r6 - ldrb r1, [r1] - add r0, r8 - strb r1, [r0] - ldr r2, [r7] - adds r0, r2, #0 - adds r0, #0xcd - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r2, r2, r0 - add r2, r8 - ldrb r5, [r2] - movs r0, #3 - movs r1, #2 - bl GetFontAttribute - adds r4, r0, #0 - movs r0, #3 - movs r1, #0 - bl GetFontAttribute - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r4, r4, r0 - cmp r5, r4 - ble _0801BC70 - movs r0, #3 - movs r1, #2 - bl GetFontAttribute - adds r4, r0, #0 - movs r0, #3 - movs r1, #0 - bl GetFontAttribute - ldr r3, [r7] - adds r1, r3, #0 - adds r1, #0xcd - ldrb r2, [r1] - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r3, r3, r1 - adds r4, r4, r0 - movs r0, #0xc6 - lsls r0, r0, #1 - adds r3, r3, r0 - strb r4, [r3] -_0801BC70: - ldr r1, [r7] - adds r1, #0xcd - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r0, [r7] - adds r0, #0xcd - ldrb r0, [r0] - cmp r0, #7 - bhi _0801BC96 - movs r4, #0 - lsls r0, r6, #0x10 -_0801BC88: - lsrs r5, r0, #0x10 -_0801BC8A: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0x13 - bhi _0801BC96 - b _0801BB8C -_0801BC96: - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0801B9F0 - - thumb_func_start sub_0801BCA4 -sub_0801BCA4: @ 0x0801BCA4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, r4, #0 - movs r0, #0 - str r0, [sp, #0xc] - ldr r1, _0801BCF0 - mov sl, r1 - ldr r0, [r1] - lsls r1, r4, #1 - adds r0, #0xce - adds r0, r0, r1 - ldrh r0, [r0] - lsls r7, r0, #0x18 - lsrs r3, r7, #0x18 - mov sb, r3 - mov r0, sb - bl PutWindowTilemap - mov r0, sb - movs r1, #0 - bl FillWindowPixelBuffer - cmp r4, #1 - bne _0801BCE2 - b _0801BE20 -_0801BCE2: - cmp r4, #1 - bgt _0801BCF4 - cmp r4, #0 - beq _0801BCFE - mov r8, r7 - b _0801C02A - .align 2, 0 -_0801BCF0: .4byte gUnknown_2022928 -_0801BCF4: - cmp r5, #2 - bne _0801BCFA - b _0801BE84 -_0801BCFA: - mov r8, r7 - b _0801C02A -_0801BCFE: - mov r0, sl - ldr r2, [r0] - adds r0, r2, #0 - adds r0, #0xc8 - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - lsls r1, r0, #1 - adds r1, r1, r0 - ldr r3, _0801BE1C - adds r1, r1, r3 - str r1, [sp] - ldr r0, [sp, #0xc] - str r0, [sp, #4] - adds r2, #0xe3 - str r2, [sp, #8] - mov r0, sb - movs r1, #3 - movs r2, #0 - movs r3, #1 - bl AddTextPrinterParameterized3 - movs r0, #3 - movs r1, #2 - bl GetFontAttribute - adds r5, r0, #0 - movs r0, #3 - movs r1, #0 - bl GetFontAttribute - adds r6, r0, #0 - mov r1, sl - ldr r0, [r1] - adds r0, #0xf6 - bl StringLength - mov r8, r0 - movs r0, #3 - movs r1, #2 - bl GetFontAttribute - adds r4, r0, #0 - movs r0, #3 - movs r1, #0 - bl GetFontAttribute - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - adds r5, r5, r6 - movs r6, #0xd - adds r2, r5, #0 - muls r2, r6, r2 - mov r3, r8 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - mov r8, r3 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r4, r4, r0 - mov r0, r8 - muls r0, r4, r0 - subs r2, r2, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r0, sl - ldr r3, [r0] - adds r0, r3, #0 - adds r0, #0xc8 - ldr r0, [r0] - ldrb r1, [r0] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - lsls r0, r1, #1 - adds r0, r0, r1 - ldr r1, _0801BE1C - adds r0, r0, r1 - str r0, [sp] - ldr r0, [sp, #0xc] - str r0, [sp, #4] - adds r3, #0xf6 - str r3, [sp, #8] - mov r0, sb - movs r1, #3 - movs r3, #0x11 - bl AddTextPrinterParameterized3 - mov r1, sl - ldr r0, [r1] - ldr r0, [r0, #4] - mov r8, r7 - cmp r0, #0 - bne _0801BDC4 - b _0801C02A -_0801BDC4: - movs r0, #3 - movs r1, #2 - bl GetFontAttribute - adds r4, r0, #0 - movs r0, #3 - movs r1, #0 - bl GetFontAttribute - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r4, r4, r0 - adds r2, r4, #0 - muls r2, r6, r2 - adds r2, #6 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r0, sl - ldr r3, [r0] - adds r0, r3, #0 - adds r0, #0xc8 - ldr r0, [r0] - ldrb r1, [r0] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - lsls r0, r1, #1 - adds r0, r0, r1 - ldr r1, _0801BE1C - adds r0, r0, r1 - str r0, [sp] - ldr r0, [sp, #0xc] - str r0, [sp, #4] - movs r1, #0x82 - lsls r1, r1, #1 - adds r0, r3, r1 - str r0, [sp, #8] - mov r0, sb - movs r1, #0 - movs r3, #0x11 - bl AddTextPrinterParameterized3 - b _0801C02A - .align 2, 0 -_0801BE1C: .4byte gUnknown_82C333C -_0801BE20: - mov r8, r7 -_0801BE22: - ldr r3, [sp, #0xc] - lsls r4, r3, #0x18 - asrs r4, r4, #0x18 - lsls r3, r4, #4 - adds r3, #2 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r0, _0801BE78 - ldr r2, [r0] - adds r0, r2, #0 - adds r0, #0xc8 - ldr r0, [r0] - ldrb r0, [r0] - lsrs r0, r0, #4 - lsls r1, r0, #1 - adds r1, r1, r0 - ldr r0, _0801BE7C - adds r1, r1, r0 - str r1, [sp] - movs r0, #0 - str r0, [sp, #4] - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _0801BE80 - adds r0, r0, r1 - adds r2, r2, r0 - str r2, [sp, #8] - mov r1, r8 - lsrs r0, r1, #0x18 - movs r1, #3 - movs r2, #2 - bl AddTextPrinterParameterized3 - adds r4, #1 - lsls r4, r4, #0x18 - lsrs r3, r4, #0x18 - str r3, [sp, #0xc] - asrs r4, r4, #0x18 - cmp r4, #3 - ble _0801BE22 - b _0801C02A - .align 2, 0 -_0801BE78: .4byte gUnknown_2022928 -_0801BE7C: .4byte gUnknown_82C333C -_0801BE80: .4byte 0x0000010B -_0801BE84: - ldr r4, _0801BF08 - mov r0, sl - ldr r2, [r0] - ldrb r0, [r2, #8] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - adds r0, r0, r4 - ldrb r3, [r0] - adds r0, r2, #0 - adds r0, #0xc8 - ldr r0, [r0] - ldrb r0, [r0, #1] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - lsls r1, r0, #1 - adds r1, r1, r0 - ldr r5, _0801BF0C - adds r1, r1, r5 - str r1, [sp] - ldr r1, [sp, #0xc] - str r1, [sp, #4] - ldr r1, _0801BF10 - adds r0, r2, r1 - str r0, [sp, #8] - mov r0, sb - movs r1, #3 - movs r2, #2 - bl AddTextPrinterParameterized3 - mov r3, sl - ldr r2, [r3] - ldrb r1, [r2, #8] - movs r0, #3 - ands r0, r1 - cmp r0, #2 - beq _0801BF14 - lsls r0, r1, #0x1e - lsrs r0, r0, #0x1e - adds r0, r0, r4 - ldrb r3, [r0] - adds r3, #0x10 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r2, #0 - adds r0, #0xc8 - ldr r0, [r0] - ldrb r1, [r0, #1] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - lsls r0, r1, #1 - adds r0, r0, r1 - adds r0, r0, r5 - str r0, [sp] - ldr r0, [sp, #0xc] - str r0, [sp, #4] - movs r1, #0xba - lsls r1, r1, #1 - adds r0, r2, r1 - str r0, [sp, #8] - mov r0, sb - movs r1, #3 - movs r2, #2 - bl AddTextPrinterParameterized3 - mov r8, r7 - b _0801C02A - .align 2, 0 -_0801BF08: .4byte gUnknown_82C3344 -_0801BF0C: .4byte gUnknown_82C333C -_0801BF10: .4byte 0x0000015F -_0801BF14: - movs r3, #0xde - mov sb, r3 - adds r0, r2, #0 - adds r0, #0xcd - ldrb r0, [r0] - lsls r0, r0, #0x18 - mov r8, r7 - cmp r0, #0 - bge _0801BF28 - b _0801C02A -_0801BF28: - mov r1, sl - ldr r4, [r1] - asrs r7, r0, #0x18 - lsls r0, r7, #3 - subs r0, r0, r7 - lsls r6, r0, #2 - adds r2, r4, r6 - movs r3, #0xd1 - lsls r3, r3, #1 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r0, #0xff - beq _0801BF9A - mov r1, sb - subs r1, #0x18 - subs r3, #0x16 - adds r0, r2, r3 - ldrb r0, [r0] - subs r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sb, r1 - lsls r2, r1, #0x18 - lsrs r2, r2, #0x18 - ldrb r0, [r4, #8] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - ldr r1, _0801C044 - adds r0, r0, r1 - ldrb r3, [r0] - adds r3, #0x10 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r4, #0 - adds r0, #0xc8 - ldr r0, [r0] - ldrb r0, [r0, #1] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - lsls r1, r0, #1 - adds r1, r1, r0 - ldr r0, _0801C048 - adds r1, r1, r0 - str r1, [sp] - movs r0, #0 - str r0, [sp, #4] - movs r1, #0xc6 - lsls r1, r1, #1 - adds r0, r6, r1 - adds r0, r4, r0 - adds r0, #0x16 - str r0, [sp, #8] - mov r1, r8 - lsrs r0, r1, #0x18 - movs r1, #0 - bl AddTextPrinterParameterized3 -_0801BF9A: - movs r3, #0xc6 - lsls r3, r3, #1 - adds r6, r6, r3 - mov r1, sl - ldr r0, [r1] - adds r0, r0, r6 - adds r0, #1 - bl StringLength - adds r5, r0, #0 - movs r0, #3 - movs r1, #2 - bl GetFontAttribute - adds r4, r0, #0 - movs r0, #3 - movs r1, #0 - bl GetFontAttribute - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r4, r4, r0 - adds r0, r5, #0 - muls r0, r4, r0 - mov r3, sb - subs r0, r3, r0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - lsls r2, r0, #0x18 - lsrs r2, r2, #0x18 - mov r0, sl - ldr r4, [r0] - ldrb r0, [r4, #8] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - ldr r1, _0801C044 - adds r0, r0, r1 - ldrb r3, [r0] - adds r3, #0x10 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r4, #0 - adds r0, #0xc8 - ldr r0, [r0] - ldrb r0, [r0, #1] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - lsls r1, r0, #1 - adds r1, r1, r0 - ldr r0, _0801C048 - adds r1, r1, r0 - str r1, [sp] - movs r0, #0 - str r0, [sp, #4] - adds r4, r4, r6 - adds r4, #1 - str r4, [sp, #8] - mov r1, r8 - lsrs r0, r1, #0x18 - movs r1, #3 - bl AddTextPrinterParameterized3 - subs r0, r7, #1 - lsls r0, r0, #0x18 - cmp r0, #0 - blt _0801C02A - b _0801BF28 -_0801C02A: - mov r3, r8 - lsrs r0, r3, #0x18 - movs r1, #3 - bl CopyWindowToVram - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0801C044: .4byte gUnknown_82C3344 -_0801C048: .4byte gUnknown_82C333C - thumb_func_end sub_0801BCA4 - - thumb_func_start sub_0801C04C -sub_0801C04C: @ 0x0801C04C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #8 - movs r7, #0 - ldr r4, _0801C164 - ldr r0, [r4] - adds r0, #0xd4 - movs r1, #0xff - strb r1, [r0] - ldr r0, [r4] - adds r1, r0, #0 - adds r1, #0xaa - ldrh r0, [r1] - cmp r0, #0 - beq _0801C0A8 - bl sub_080D2724 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _0801C168 - str r7, [sp] - str r7, [sp, #4] - movs r2, #0xdc - movs r3, #0x14 - bl sub_080D2618 - ldr r1, [r4] - adds r1, #0xd4 - strb r0, [r1] - ldr r2, _0801C16C - ldr r0, [r4] - adds r0, #0xd4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r2, [r0, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #8 - orrs r1, r2 - strb r1, [r0, #5] -_0801C0A8: - ldr r1, [r4] - ldrb r0, [r1, #9] - cmp r0, #0 - beq _0801C156 - ldrb r1, [r1, #8] - movs r0, #3 - ands r0, r1 - cmp r0, #1 - bne _0801C156 - ldr r0, _0801C170 - bl LoadCompressedSpriteSheetUsingHeap - ldr r0, [r4] - adds r0, #0xc8 - ldr r0, [r0] - ldrb r0, [r0, #1] - lsrs r0, r0, #4 - lsls r0, r0, #3 - ldr r1, _0801C174 - adds r0, r0, r1 - bl LoadSpritePalette - ldr r0, [r4] - ldrb r0, [r0, #9] - cmp r7, r0 - bhs _0801C156 - adds r6, r4, #0 - movs r0, #0xff - mov sb, r0 - movs r1, #0 - mov r8, r1 -_0801C0E6: - ldr r1, [r6] - lsls r4, r7, #1 - adds r1, #0xd5 - adds r1, r1, r4 - ldrb r0, [r1] - mov r2, sb - orrs r0, r2 - strb r0, [r1] - ldr r1, [r6] - adds r1, #0xd6 - adds r1, r1, r4 - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] - lsls r1, r7, #5 - movs r0, #0xd8 - subs r5, r0, r1 - ldr r0, _0801C178 - adds r1, r5, #0 - movs r2, #0x90 - movs r3, #8 - bl CreateSprite - ldr r1, [r6] - adds r1, #0xd5 - adds r1, r1, r4 - strb r0, [r1] - ldr r0, [r6] - adds r0, #0xac - adds r1, r0, r4 - ldrh r0, [r1] - cmp r0, #0 - beq _0801C148 - bl sub_080D2724 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r1, r8 - str r1, [sp] - str r1, [sp, #4] - ldr r1, _0801C168 - adds r2, r5, #0 - movs r3, #0x88 - bl sub_080D2618 - ldr r1, [r6] - adds r1, #0xd6 - adds r1, r1, r4 - strb r0, [r1] -_0801C148: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, [r6] - ldrb r0, [r0, #9] - cmp r7, r0 - blo _0801C0E6 -_0801C156: - add sp, #8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0801C164: .4byte gUnknown_2022928 -_0801C168: .4byte sub_08007140 -_0801C16C: .4byte gUnknown_20205AC -_0801C170: .4byte gUnknown_82C422C -_0801C174: .4byte gUnknown_82C4234 -_0801C178: .4byte gUnknown_82C4274 - thumb_func_end sub_0801C04C - - thumb_func_start sub_0801C17C -sub_0801C17C: @ 0x0801C17C - push {r4, r5, r6, r7, lr} - movs r6, #0 - ldr r4, _0801C21C - ldr r0, [r4] - adds r1, r0, #0 - adds r1, #0xd4 - ldrb r0, [r1] - cmp r0, #0xff - beq _0801C19E - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0801C220 - adds r0, r0, r1 - bl sub_080D2798 -_0801C19E: - ldr r0, [r4] - ldrb r2, [r0, #9] - cmp r2, #0 - beq _0801C214 - ldrb r1, [r0, #8] - movs r0, #3 - ands r0, r1 - cmp r0, #1 - bne _0801C214 - cmp r6, r2 - bhs _0801C204 - adds r7, r4, #0 -_0801C1B6: - ldr r0, [r7] - lsls r4, r6, #1 - adds r0, #0xd5 - adds r1, r0, r4 - ldrb r0, [r1] - cmp r0, #0xff - beq _0801C1F6 - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r5, _0801C220 - adds r0, r0, r5 - bl DestroySprite - ldr r1, [r7] - adds r0, r1, #0 - adds r0, #0xd5 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0xff - beq _0801C1F6 - adds r0, r1, #0 - adds r0, #0xd6 - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - bl sub_080D2798 -_0801C1F6: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, [r7] - ldrb r0, [r0, #9] - cmp r6, r0 - blo _0801C1B6 -_0801C204: - movs r4, #0x80 - lsls r4, r4, #8 - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl FreeSpritePaletteByTag -_0801C214: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0801C21C: .4byte gUnknown_2022928 -_0801C220: .4byte gUnknown_20205AC - thumb_func_end sub_0801C17C - - thumb_func_start sub_0801C224 -sub_0801C224: @ 0x0801C224 - push {r4, r5, lr} - adds r4, r0, #0 - cmp r4, #0 - beq _0801C23A - ldr r5, _0801C240 - ldr r0, _0801C244 - bl AllocZeroed - str r0, [r5] - cmp r0, #0 - bne _0801C248 -_0801C23A: - movs r0, #0 - b _0801C274 - .align 2, 0 -_0801C240: .4byte gUnknown_202292C -_0801C244: .4byte 0x000011EC -_0801C248: - adds r1, r4, #0 - movs r2, #0xe0 - bl memcpy - ldr r1, [r5] - ldrb r0, [r1, #3] - cmp r0, #7 - bls _0801C25C - movs r0, #0 - strb r0, [r1, #3] -_0801C25C: - ldr r2, [r5] - adds r3, r2, #0 - adds r3, #0xe0 - ldrb r0, [r2, #3] - lsls r0, r0, #4 - ldr r1, _0801C27C - adds r0, r0, r1 - str r0, [r3] - adds r2, #0xe5 - movs r0, #0xff - strb r0, [r2] - movs r0, #1 -_0801C274: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0801C27C: .4byte gUnknown_82C49F4 - thumb_func_end sub_0801C224 - - thumb_func_start DestroyWonderNewsResources -DestroyWonderNewsResources: @ 0x0801C280 - push {r4, lr} - ldr r4, _0801C2A4 - ldr r0, [r4] - cmp r0, #0 - beq _0801C29C - ldr r2, _0801C2A8 - movs r1, #0 - bl memset - ldr r0, [r4] - bl Free - movs r0, #0 - str r0, [r4] -_0801C29C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801C2A4: .4byte gUnknown_202292C -_0801C2A8: .4byte 0x000011EC - thumb_func_end DestroyWonderNewsResources - - thumb_func_start sub_0801C2AC -sub_0801C2AC: @ 0x0801C2AC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x24 - ldr r4, _0801C2C8 - ldr r0, [r4] - cmp r0, #0 - bne _0801C2CC - movs r0, #1 - rsbs r0, r0, #0 - b _0801C572 - .align 2, 0 -_0801C2C8: .4byte gUnknown_202292C -_0801C2CC: - adds r0, #0xe4 - ldrb r0, [r0] - lsrs r0, r0, #1 - cmp r0, #6 - bls _0801C2D8 - b _0801C540 -_0801C2D8: - lsls r0, r0, #2 - ldr r1, _0801C2E4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801C2E4: .4byte _0801C2E8 -_0801C2E8: @ jump table - .4byte _0801C304 @ case 0 - .4byte _0801C316 @ case 1 - .4byte _0801C37C @ case 2 - .4byte _0801C418 @ case 3 - .4byte _0801C4D4 @ case 4 - .4byte _0801C4DA @ case 5 - .4byte _0801C4EC @ case 6 -_0801C304: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - b _0801C55A -_0801C316: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801C322 - b _0801C570 -_0801C322: - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #0x40 - movs r1, #0xf0 - bl SetGpuReg - ldr r1, _0801C378 - movs r0, #0x44 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0x1f - bl SetGpuReg - movs r0, #0x4a - movs r1, #0x1b - bl SetGpuReg - movs r1, #0x80 - lsls r1, r1, #6 - movs r0, #0 - bl SetGpuRegBits - b _0801C55A - .align 2, 0 -_0801C378: .4byte 0x00001C98 -_0801C37C: - movs r5, #0x1e - str r5, [sp] - movs r4, #0x14 - str r4, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - str r5, [sp] - str r4, [sp, #4] - movs r0, #1 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - str r5, [sp] - str r4, [sp, #4] - movs r0, #2 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - str r5, [sp] - str r4, [sp, #4] - movs r0, #3 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, #0 - bl CopyBgTilemapBufferToVram - movs r0, #1 - bl CopyBgTilemapBufferToVram - movs r0, #2 - bl CopyBgTilemapBufferToVram - movs r0, #3 - bl CopyBgTilemapBufferToVram - ldr r5, _0801C410 - ldr r0, [r5] - adds r0, #0xe0 - ldr r0, [r0] - ldr r1, [r0, #4] - movs r0, #0 - str r0, [sp] - movs r0, #3 - movs r2, #0 - movs r3, #8 - bl decompress_and_copy_tile_data_to_vram - ldr r4, _0801C414 - adds r0, r4, #0 - bl AddWindow - ldr r1, [r5] - adds r1, #0xec - strh r0, [r1] - adds r4, #8 - adds r0, r4, #0 - bl AddWindow - ldr r1, [r5] - adds r1, #0xee - strh r0, [r1] - b _0801C55A - .align 2, 0 -_0801C410: .4byte gUnknown_202292C -_0801C414: .4byte gUnknown_82C4314 -_0801C418: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #0 - beq _0801C426 - b _0801C570 -_0801C426: - movs r0, #1 - bl stdpal_get - movs r1, #0x20 - movs r2, #0x20 - bl LoadPalette - ldr r2, _0801C4CC - ldrb r0, [r2, #8] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #8] - ldr r0, _0801C4D0 - mov r8, r0 - ldr r0, [r0] - adds r0, #0xe0 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x10 - movs r2, #0x20 - bl LoadPalette - mov r2, r8 - ldr r1, [r2] - adds r0, r1, #0 - adds r0, #0xe0 - ldr r0, [r0] - ldr r0, [r0, #8] - movs r6, #0xf6 - lsls r6, r6, #1 - adds r1, r1, r6 - bl LZ77UnCompWram - mov r0, r8 - ldr r1, [r0] - adds r1, r1, r6 - movs r4, #0x1e - str r4, [sp] - movs r5, #3 - str r5, [sp, #4] - str r7, [sp, #8] - str r7, [sp, #0xc] - str r4, [sp, #0x10] - str r5, [sp, #0x14] - movs r2, #1 - mov sl, r2 - str r2, [sp, #0x18] - movs r0, #8 - mov sb, r0 - str r0, [sp, #0x1c] - str r7, [sp, #0x20] - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl CopyRectToBgTilemapBufferRect - mov r2, r8 - ldr r1, [r2] - adds r1, r1, r6 - str r4, [sp] - movs r0, #0x17 - str r0, [sp, #4] - str r7, [sp, #8] - str r5, [sp, #0xc] - str r4, [sp, #0x10] - str r0, [sp, #0x14] - mov r0, sl - str r0, [sp, #0x18] - mov r2, sb - str r2, [sp, #0x1c] - str r7, [sp, #0x20] - movs r0, #3 - movs r2, #0 - movs r3, #3 - bl CopyRectToBgTilemapBufferRect - movs r0, #1 - bl CopyBgTilemapBufferToVram - movs r0, #3 - bl CopyBgTilemapBufferToVram - b _0801C55A - .align 2, 0 -_0801C4CC: .4byte gUnknown_2037C74 -_0801C4D0: .4byte gUnknown_202292C -_0801C4D4: - bl sub_0801C8B4 - b _0801C55A -_0801C4DA: - bl sub_0801C95C - movs r0, #0 - bl CopyBgTilemapBufferToVram - movs r0, #2 - bl CopyBgTilemapBufferToVram - b _0801C55A -_0801C4EC: - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg - ldr r2, _0801C538 - ldrb r1, [r2, #8] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #8] - ldr r4, _0801C53C - ldr r1, [r4] - movs r2, #0xee - lsls r2, r2, #1 - adds r0, r1, r2 - adds r1, #0xea - bl AddScrollIndicatorArrowPair - ldr r1, [r4] - adds r1, #0xe5 - movs r2, #0 - strb r0, [r1] - movs r0, #1 - rsbs r0, r0, #0 - str r2, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - bl UpdatePaletteFade - b _0801C55A - .align 2, 0 -_0801C538: .4byte gUnknown_2037C74 -_0801C53C: .4byte gUnknown_202292C -_0801C540: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801C570 - ldr r0, [r4] - adds r0, #0xe4 - ldrb r2, [r0] - movs r1, #1 - ands r1, r2 - strb r1, [r0] - movs r0, #1 - b _0801C572 -_0801C55A: - ldr r0, _0801C584 - ldr r2, [r0] - adds r2, #0xe4 - ldrb r3, [r2] - lsrs r1, r3, #1 - adds r1, #1 - lsls r1, r1, #1 - movs r0, #1 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] -_0801C570: - movs r0, #0 -_0801C572: - add sp, #0x24 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0801C584: .4byte gUnknown_202292C - thumb_func_end sub_0801C2AC - - thumb_func_start sub_0801C588 -sub_0801C588: @ 0x0801C588 - push {r4, r5, lr} - sub sp, #8 - ldr r4, _0801C59C - ldr r0, [r4] - cmp r0, #0 - bne _0801C5A0 - movs r0, #1 - rsbs r0, r0, #0 - b _0801C746 - .align 2, 0 -_0801C59C: .4byte gUnknown_202292C -_0801C5A0: - adds r0, #0xe4 - ldrb r0, [r0] - lsrs r0, r0, #1 - cmp r0, #5 - bls _0801C5AC - b _0801C714 -_0801C5AC: - lsls r0, r0, #2 - ldr r1, _0801C5B8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801C5B8: .4byte _0801C5BC -_0801C5BC: @ jump table - .4byte _0801C5D4 @ case 0 - .4byte _0801C5E6 @ case 1 - .4byte _0801C628 @ case 2 - .4byte _0801C688 @ case 3 - .4byte _0801C6B0 @ case 4 - .4byte _0801C6E4 @ case 5 -_0801C5D4: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - b _0801C72E -_0801C5E6: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801C5F2 - b _0801C744 -_0801C5F2: - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #0x40 - movs r1, #0 - bl SetGpuReg - movs r0, #0x44 - movs r1, #0 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0 - bl SetGpuReg - movs r0, #0x4a - movs r1, #0 - bl SetGpuReg - movs r1, #0x80 - lsls r1, r1, #6 - movs r0, #0 - bl ClearGpuRegBits - b _0801C72E -_0801C628: - movs r4, #0x1e - str r4, [sp] - movs r5, #0x14 - str r5, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - str r5, [sp, #4] - movs r0, #1 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - movs r5, #0x18 - str r5, [sp, #4] - movs r0, #2 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - str r5, [sp, #4] - movs r0, #3 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, #0 - bl CopyBgTilemapBufferToVram - movs r0, #1 - bl CopyBgTilemapBufferToVram - movs r0, #2 - bl CopyBgTilemapBufferToVram - movs r0, #3 - bl CopyBgTilemapBufferToVram - b _0801C72E -_0801C688: - movs r0, #1 - bl HideBg - movs r0, #2 - bl HideBg - ldr r4, _0801C6AC - ldr r0, [r4] - adds r0, #0xee - ldrb r0, [r0] - bl RemoveWindow - ldr r0, [r4] - adds r0, #0xec - ldrb r0, [r0] - bl RemoveWindow - b _0801C72E - .align 2, 0 -_0801C6AC: .4byte gUnknown_202292C -_0801C6B0: - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - ldr r4, _0801C6E0 - ldr r0, [r4] - adds r1, r0, #0 - adds r1, #0xe5 - ldrb r0, [r1] - cmp r0, #0xff - beq _0801C72E - bl RemoveScrollIndicatorArrowPair - ldr r0, [r4] - adds r0, #0xe5 - movs r1, #0xff - strb r1, [r0] - b _0801C72E - .align 2, 0 -_0801C6E0: .4byte gUnknown_202292C -_0801C6E4: - ldr r0, _0801C710 - ldrb r0, [r0] - bl sub_08018180 - movs r0, #3 - bl MG_DrawCheckerboardPattern - movs r0, #0 - bl CopyBgTilemapBufferToVram - movs r0, #3 - bl CopyBgTilemapBufferToVram - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - b _0801C72E - .align 2, 0 -_0801C710: .4byte gUnknown_2022914 -_0801C714: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801C744 - ldr r0, [r4] - adds r0, #0xe4 - ldrb r2, [r0] - movs r1, #1 - ands r1, r2 - strb r1, [r0] - movs r0, #1 - b _0801C746 -_0801C72E: - ldr r0, _0801C750 - ldr r2, [r0] - adds r2, #0xe4 - ldrb r3, [r2] - lsrs r1, r3, #1 - adds r1, #1 - lsls r1, r1, #1 - movs r0, #1 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] -_0801C744: - movs r0, #0 -_0801C746: - add sp, #8 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0801C750: .4byte gUnknown_202292C - thumb_func_end sub_0801C588 - - thumb_func_start sub_0801C754 -sub_0801C754: @ 0x0801C754 - push {r4, lr} - ldr r4, _0801C790 - ldr r2, [r4] - adds r0, r2, #0 - adds r0, #0xe4 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0801C78A - adds r1, r2, #0 - adds r1, #0xe5 - ldrb r0, [r1] - cmp r0, #0xff - beq _0801C78A - bl RemoveScrollIndicatorArrowPair - ldr r0, [r4] - adds r0, #0xe5 - movs r1, #0xff - strb r1, [r0] - ldr r1, [r4] - adds r1, #0xe4 - ldrb r0, [r1] - movs r2, #1 - orrs r0, r2 - strb r0, [r1] -_0801C78A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801C790: .4byte gUnknown_202292C - thumb_func_end sub_0801C754 - - thumb_func_start sub_0801C794 -sub_0801C794: @ 0x0801C794 - push {r4, lr} - ldr r4, _0801C7D0 - ldr r2, [r4] - adds r0, r2, #0 - adds r0, #0xe4 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0801C7CA - movs r1, #0xee - lsls r1, r1, #1 - adds r0, r2, r1 - adds r1, r2, #0 - adds r1, #0xea - bl AddScrollIndicatorArrowPair - ldr r1, [r4] - adds r1, #0xe5 - strb r0, [r1] - ldr r1, [r4] - adds r1, #0xe4 - ldrb r2, [r1] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] -_0801C7CA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801C7D0: .4byte gUnknown_202292C - thumb_func_end sub_0801C794 - - thumb_func_start sub_0801C7D4 -sub_0801C7D4: @ 0x0801C7D4 - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - adds r4, r3, #0 - ldr r2, _0801C7FC - ldr r0, [r2] - mov ip, r0 - adds r0, #0xe6 - ldrb r1, [r0] - movs r5, #1 - adds r0, r5, #0 - ands r0, r1 - adds r6, r2, #0 - cmp r0, #0 - beq _0801C800 - bl sub_0801CA6C -_0801C7F6: - movs r0, #0xff - b _0801C8AE - .align 2, 0 -_0801C7FC: .4byte gUnknown_202292C -_0801C800: - cmp r3, #2 - beq _0801C81C - cmp r3, #2 - bgt _0801C80E - cmp r3, #1 - beq _0801C818 - b _0801C7F6 -_0801C80E: - cmp r4, #0x40 - beq _0801C820 - cmp r4, #0x80 - beq _0801C848 - b _0801C7F6 -_0801C818: - movs r0, #0 - b _0801C8AE -_0801C81C: - movs r0, #1 - b _0801C8AE -_0801C820: - mov r0, ip - adds r0, #0xea - ldrh r0, [r0] - cmp r0, #0 - beq _0801C7F6 - mov r0, ip - adds r0, #0xe4 - ldrb r1, [r0] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - bne _0801C7F6 - mov r2, ip - adds r2, #0xe7 - ldrb r1, [r2] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - b _0801C872 -_0801C848: - mov r0, ip - adds r0, #0xea - mov r1, ip - adds r1, #0xe8 - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - beq _0801C7F6 - mov r0, ip - adds r0, #0xe4 - ldrb r1, [r0] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - bne _0801C7F6 - mov r0, ip - adds r0, #0xe7 - ldrb r1, [r0] - movs r2, #1 - orrs r1, r2 - strb r1, [r0] -_0801C872: - ldr r1, [r6] - adds r1, #0xe6 - ldrb r0, [r1] - movs r2, #1 - orrs r0, r2 - strb r0, [r1] - ldr r3, [r6] - adds r3, #0xe6 - ldrb r1, [r3] - movs r2, #1 - adds r0, r2, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r3] - ldr r1, [r6] - adds r1, #0xe7 - ldrb r3, [r1] - adds r0, r2, #0 - ands r0, r3 - strb r0, [r1] - ldr r0, [r6] - adds r0, #0xe7 - ldrb r0, [r0] - ands r2, r0 - cmp r2, #0 - beq _0801C8AC - movs r0, #3 - b _0801C8AE -_0801C8AC: - movs r0, #2 -_0801C8AE: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_0801C7D4 - - thumb_func_start sub_0801C8B4 -sub_0801C8B4: @ 0x0801C8B4 - push {r4, r5, r6, lr} - movs r5, #0 - ldr r4, _0801C94C - ldr r1, [r4] - adds r0, r1, #0 - adds r0, #0xf2 - adds r1, #4 - movs r2, #0x14 - bl memcpy - ldr r0, [r4] - movs r2, #0x83 - lsls r2, r2, #1 - adds r1, r0, r2 - movs r0, #0xff - strb r0, [r1] - adds r6, r4, #0 -_0801C8D6: - ldr r2, [r6] - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #2 - adds r4, r1, r5 - adds r0, r4, r2 - ldr r3, _0801C950 - adds r0, r0, r3 - adds r1, r1, r2 - adds r1, #0x18 - movs r2, #0x14 - bl memcpy - ldr r0, [r6] - ldr r1, _0801C954 - adds r0, r0, r1 - adds r0, r0, r4 - movs r1, #0xff - strb r1, [r0] - cmp r5, #7 - bls _0801C916 - ldr r1, [r6] - ldr r2, _0801C950 - adds r0, r1, r2 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0xff - beq _0801C916 - adds r1, #0xe8 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_0801C916: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #9 - bls _0801C8D6 - ldr r2, _0801C94C - ldr r1, [r2] - movs r3, #0xee - lsls r3, r3, #1 - adds r1, r1, r3 - ldr r0, _0801C958 - ldm r0!, {r3, r4, r5} - stm r1!, {r3, r4, r5} - ldr r0, [r0] - str r0, [r1] - ldr r2, [r2] - adds r0, r2, #0 - adds r0, #0xe8 - ldrh r1, [r0] - movs r4, #0xf2 - lsls r4, r4, #1 - adds r0, r2, r4 - strh r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0801C94C: .4byte gUnknown_202292C -_0801C950: .4byte 0x00000107 -_0801C954: .4byte 0x0000011B -_0801C958: .4byte gUnknown_82C4324 - thumb_func_end sub_0801C8B4 - - thumb_func_start sub_0801C95C -sub_0801C95C: @ 0x0801C95C - push {r4, r5, r6, r7, lr} - sub sp, #0xc - movs r7, #0 - ldr r6, _0801CA60 - ldr r0, [r6] - adds r0, #0xec - ldrb r0, [r0] - bl PutWindowTilemap - ldr r0, [r6] - adds r0, #0xee - ldrb r0, [r0] - bl PutWindowTilemap - ldr r0, [r6] - adds r0, #0xec - ldrb r0, [r0] - movs r1, #0 - bl FillWindowPixelBuffer - ldr r0, [r6] - adds r0, #0xee - ldrb r0, [r0] - movs r1, #0 - bl FillWindowPixelBuffer - ldr r0, [r6] - adds r0, #0xf2 - bl StringLength - adds r5, r0, #0 - movs r0, #3 - movs r1, #2 - bl GetFontAttribute - adds r4, r0, #0 - movs r0, #3 - movs r1, #0 - bl GetFontAttribute - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r4, r4, r0 - adds r0, r5, #0 - muls r0, r4, r0 - asrs r0, r0, #1 - movs r2, #0x71 - subs r2, r2, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r4, [r6] - adds r0, r4, #0 - adds r0, #0xec - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0xe0 - ldr r1, [r1] - ldrb r1, [r1] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - lsls r3, r1, #1 - adds r3, r3, r1 - ldr r1, _0801CA64 - adds r3, r3, r1 - str r3, [sp] - str r7, [sp, #4] - adds r4, #0xf2 - str r4, [sp, #8] - movs r1, #3 - movs r3, #6 - bl AddTextPrinterParameterized3 -_0801C9F4: - ldr r5, _0801CA60 - ldr r4, [r5] - adds r0, r4, #0 - adds r0, #0xee - ldrb r0, [r0] - lsls r3, r7, #4 - adds r3, #4 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r1, r4, #0 - adds r1, #0xe0 - ldr r1, [r1] - ldrb r1, [r1] - lsrs r1, r1, #4 - lsls r2, r1, #1 - adds r2, r2, r1 - ldr r1, _0801CA64 - adds r2, r2, r1 - str r2, [sp] - movs r1, #0 - str r1, [sp, #4] - lsls r1, r7, #2 - adds r1, r1, r7 - lsls r1, r1, #2 - adds r1, r1, r7 - ldr r2, _0801CA68 - adds r1, r1, r2 - adds r4, r4, r1 - str r4, [sp, #8] - movs r1, #3 - movs r2, #3 - bl AddTextPrinterParameterized3 - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #9 - bls _0801C9F4 - ldr r0, [r5] - adds r0, #0xec - ldrb r0, [r0] - movs r1, #3 - bl CopyWindowToVram - ldr r0, [r5] - adds r0, #0xee - ldrb r0, [r0] - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0801CA60: .4byte gUnknown_202292C -_0801CA64: .4byte gUnknown_82C430C -_0801CA68: .4byte 0x00000107 - thumb_func_end sub_0801C95C - - thumb_func_start sub_0801CA6C -sub_0801CA6C: @ 0x0801CA6C - push {r4, r5, lr} - ldr r0, _0801CAA0 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0xe6 - ldrb r0, [r0] - lsrs r4, r0, #1 - lsls r4, r4, #8 - adds r1, #0xe7 - ldrb r1, [r1] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0801CAA4 - movs r0, #2 - adds r1, r4, #0 - movs r2, #1 - bl ChangeBgY - movs r0, #3 - adds r1, r4, #0 - movs r2, #1 - bl ChangeBgY - b _0801CAB8 - .align 2, 0 -_0801CAA0: .4byte gUnknown_202292C -_0801CAA4: - movs r0, #2 - adds r1, r4, #0 - movs r2, #2 - bl ChangeBgY - movs r0, #3 - adds r1, r4, #0 - movs r2, #2 - bl ChangeBgY -_0801CAB8: - ldr r2, _0801CAF8 - ldr r0, [r2] - adds r4, r0, #0 - adds r4, #0xe7 - ldrb r3, [r4] - lsrs r1, r3, #1 - adds r0, #0xe6 - ldrb r0, [r0] - lsrs r0, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - movs r5, #1 - adds r0, r5, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r4] - ldr r1, [r2] - adds r0, r1, #0 - adds r0, #0xe7 - ldrb r3, [r0] - lsrs r0, r3, #1 - adds r4, r2, #0 - cmp r0, #0xf - bls _0801CB1E - adds r0, r5, #0 - ands r0, r3 - cmp r0, #0 - beq _0801CAFC - adds r1, #0xea - ldrh r0, [r1] - adds r0, #1 - b _0801CB02 - .align 2, 0 -_0801CAF8: .4byte gUnknown_202292C -_0801CAFC: - adds r1, #0xea - ldrh r0, [r1] - subs r0, #1 -_0801CB02: - strh r0, [r1] - ldr r1, [r4] - adds r1, #0xe6 - ldrb r2, [r1] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r4] - adds r1, #0xe7 - ldrb r2, [r1] - movs r0, #1 - ands r0, r2 - strb r0, [r1] -_0801CB1E: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_0801CA6C - - thumb_func_start mevent_srv_init_wnews -mevent_srv_init_wnews: @ 0x0801CB24 - push {r4, lr} - ldr r4, _0801CB40 - movs r0, #0x60 - bl AllocZeroed - str r0, [r4] - ldr r1, _0801CB44 - movs r2, #0 - movs r3, #1 - bl mevent_srv_init_common - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801CB40: .4byte gUnknown_2022930 -_0801CB44: .4byte gUnknown_82C4F60 - thumb_func_end mevent_srv_init_wnews - - thumb_func_start sub_0801CB48 -sub_0801CB48: @ 0x0801CB48 - push {r4, lr} - ldr r4, _0801CB64 - movs r0, #0x60 - bl AllocZeroed - str r0, [r4] - ldr r1, _0801CB68 - movs r2, #0 - movs r3, #1 - bl mevent_srv_init_common - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801CB64: .4byte gUnknown_2022930 -_0801CB68: .4byte gUnknown_82C4FC0 - thumb_func_end sub_0801CB48 - - thumb_func_start sub_0801CB6C -sub_0801CB6C: @ 0x0801CB6C - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r4, _0801CB7C - ldr r0, [r4] - cmp r0, #0 - bne _0801CB80 - movs r0, #3 - b _0801CBA0 - .align 2, 0 -_0801CB7C: .4byte gUnknown_2022930 -_0801CB80: - bl sub_0801D240 - adds r5, r0, #0 - cmp r5, #3 - bne _0801CB9E - ldr r0, [r4] - ldr r1, [r0, #4] - strh r1, [r6] - bl mevent_srv_free_resources - ldr r0, [r4] - bl Free - movs r0, #0 - str r0, [r4] -_0801CB9E: - adds r0, r5, #0 -_0801CBA0: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801CB6C - - thumb_func_start mevent_srv_init_common -mevent_srv_init_common: @ 0x0801CBA8 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - adds r4, r0, #0 - adds r6, r1, #0 - mov r8, r2 - mov sb, r3 - movs r5, #0 - str r5, [r4] - str r5, [r4, #8] - movs r0, #0xa4 - bl AllocZeroed - str r0, [r4, #0x18] - movs r0, #0xe0 - bl AllocZeroed - str r0, [r4, #0x1c] - movs r0, #0x80 - lsls r0, r0, #3 - bl AllocZeroed - str r0, [r4, #0x14] - movs r0, #0x64 - bl AllocZeroed - str r0, [r4, #0x20] - str r6, [r4, #0x10] - str r5, [r4, #0xc] - adds r4, #0x38 - adds r0, r4, #0 - mov r1, r8 - mov r2, sb - bl mevent_srv_sub_init - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end mevent_srv_init_common - - thumb_func_start mevent_srv_free_resources -mevent_srv_free_resources: @ 0x0801CBFC - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x18] - bl Free - ldr r0, [r4, #0x1c] - bl Free - ldr r0, [r4, #0x14] - bl Free - ldr r0, [r4, #0x20] - bl Free - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end mevent_srv_free_resources - - thumb_func_start sub_0801CC20 -sub_0801CC20: @ 0x0801CC20 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r6, r1, #0 - adds r7, r2, #0 - adds r4, r3, #0 - movs r0, #0x80 - lsls r0, r0, #3 - cmp r4, r0 - bls _0801CC3E - ldr r0, _0801CC54 - ldr r1, _0801CC58 - ldr r2, _0801CC5C - movs r3, #1 - bl AGBAssert -_0801CC3E: - adds r0, r5, #0 - adds r0, #0x38 - adds r1, r6, #0 - adds r2, r7, #0 - adds r3, r4, #0 - bl mevent_srv_sub_init_send - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0801CC54: .4byte gUnknown_82C4A74 -_0801CC58: .4byte 0x00000101 -_0801CC5C: .4byte gUnknown_82C4A84 - thumb_func_end sub_0801CC20 - - thumb_func_start mevent_first_if_not_null_else_second -mevent_first_if_not_null_else_second: @ 0x0801CC60 - push {lr} - cmp r0, #0 - bne _0801CC68 - adds r0, r1, #0 -_0801CC68: - pop {r1} - bx r1 - thumb_func_end mevent_first_if_not_null_else_second - - thumb_func_start mevent_compare_pointers -mevent_compare_pointers: @ 0x0801CC6C - push {lr} - cmp r1, r0 - bhs _0801CC76 - movs r0, #0 - b _0801CC80 -_0801CC76: - cmp r1, r0 - beq _0801CC7E - movs r0, #2 - b _0801CC80 -_0801CC7E: - movs r0, #1 -_0801CC80: - pop {r1} - bx r1 - thumb_func_end mevent_compare_pointers - - thumb_func_start common_mainseq_0 -common_mainseq_0: @ 0x0801CC84 - movs r1, #4 - str r1, [r0, #8] - movs r0, #0 - bx lr - thumb_func_end common_mainseq_0 - - thumb_func_start common_mainseq_1 -common_mainseq_1: @ 0x0801CC8C - movs r0, #3 - bx lr - thumb_func_end common_mainseq_1 - - thumb_func_start sub_0801CC90 -sub_0801CC90: @ 0x0801CC90 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x38 - bl mevent_srv_sub_recv - cmp r0, #0 - beq _0801CCA2 - movs r0, #4 - str r0, [r4, #8] -_0801CCA2: - movs r0, #1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801CC90 - - thumb_func_start sub_0801CCAC -sub_0801CCAC: @ 0x0801CCAC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x38 - bl mevent_srv_sub_send - cmp r0, #0 - beq _0801CCBE - movs r0, #4 - str r0, [r4, #8] -_0801CCBE: - movs r0, #1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801CCAC - - thumb_func_start sub_0801CCC8 -sub_0801CCC8: @ 0x0801CCC8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, [r5, #0xc] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r2, [r5, #0x10] - adds r4, r2, r1 - adds r0, #1 - str r0, [r5, #0xc] - ldr r0, [r4] - cmp r0, #0x1e - bls _0801CCE4 - b _0801D238 -_0801CCE4: - lsls r0, r0, #2 - ldr r1, _0801CCF0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801CCF0: .4byte _0801CCF4 -_0801CCF4: @ jump table - .4byte _0801CD70 @ case 0 - .4byte _0801CD98 @ case 1 - .4byte _0801CD9E @ case 2 - .4byte _0801CDCC @ case 3 - .4byte _0801CEB0 @ case 4 - .4byte _0801CDEC @ case 5 - .4byte _0801CE30 @ case 6 - .4byte _0801CEC4 @ case 7 - .4byte _0801CEF4 @ case 8 - .4byte _0801CF34 @ case 9 - .4byte _0801CF68 @ case 10 - .4byte _0801CF98 @ case 11 - .4byte _0801CFC0 @ case 12 - .4byte _0801D020 @ case 13 - .4byte _0801CFEC @ case 14 - .4byte _0801D088 @ case 15 - .4byte _0801D054 @ case 16 - .4byte _0801D0F2 @ case 17 - .4byte _0801D0A0 @ case 18 - .4byte _0801D0B8 @ case 19 - .4byte _0801D0E4 @ case 20 - .4byte _0801D150 @ case 21 - .4byte _0801D100 @ case 22 - .4byte _0801D12C @ case 23 - .4byte _0801D178 @ case 24 - .4byte _0801D182 @ case 25 - .4byte _0801D18C @ case 26 - .4byte _0801D1C8 @ case 27 - .4byte _0801D200 @ case 28 - .4byte _0801D22C @ case 29 - .4byte _0801CE6C @ case 30 -_0801CD70: - ldr r0, [r4, #8] - cmp r0, #0 - beq _0801CD84 - ldr r0, _0801CD90 - movs r1, #0xb1 - lsls r1, r1, #1 - ldr r2, _0801CD94 - movs r3, #1 - bl AGBAssert -_0801CD84: - movs r0, #1 - str r0, [r5, #8] - ldr r0, [r4, #4] - str r0, [r5, #4] - b _0801D238 - .align 2, 0 -_0801CD90: .4byte gUnknown_82C4A74 -_0801CD94: .4byte gUnknown_82C4AA0 -_0801CD98: - movs r0, #3 - str r0, [r5, #8] - b _0801D238 -_0801CD9E: - ldr r0, [r4, #8] - cmp r0, #0 - beq _0801CDB2 - ldr r0, _0801CDC4 - movs r1, #0xb6 - lsls r1, r1, #1 - ldr r2, _0801CDC8 - movs r3, #1 - bl AGBAssert -_0801CDB2: - adds r0, r5, #0 - adds r0, #0x38 - ldr r1, [r4, #4] - ldr r2, [r5, #0x14] - bl mevent_srv_sub_init_recv - movs r0, #2 - str r0, [r5, #8] - b _0801D238 - .align 2, 0 -_0801CDC4: .4byte gUnknown_82C4A74 -_0801CDC8: .4byte gUnknown_82C4AA0 -_0801CDCC: - ldr r0, [r4, #4] - cmp r0, #0 - beq _0801CEBA - ldr r0, _0801CDE4 - movs r1, #0xb9 - lsls r1, r1, #1 - ldr r2, _0801CDE8 - movs r3, #1 - bl AGBAssert - b _0801CEBA - .align 2, 0 -_0801CDE4: .4byte gUnknown_82C4A74 -_0801CDE8: .4byte gUnknown_82C4AB8 -_0801CDEC: - ldr r0, [r4, #4] - cmp r0, #0 - beq _0801CE00 - ldr r0, _0801CE20 - movs r1, #0xbc - lsls r1, r1, #1 - ldr r2, _0801CE24 - movs r3, #1 - bl AGBAssert -_0801CE00: - ldr r0, [r4, #8] - cmp r0, #0 - beq _0801CE12 - ldr r0, _0801CE20 - ldr r1, _0801CE28 - ldr r2, _0801CE2C - movs r3, #1 - bl AGBAssert -_0801CE12: - ldr r0, [r5, #0x20] - ldr r1, [r5, #0x14] - movs r2, #0x64 - bl memcpy - b _0801D238 - .align 2, 0 -_0801CE20: .4byte gUnknown_82C4A74 -_0801CE24: .4byte gUnknown_82C4AB8 -_0801CE28: .4byte 0x00000179 -_0801CE2C: .4byte gUnknown_82C4AA0 -_0801CE30: - ldr r0, [r4, #4] - cmp r0, #0 - beq _0801CE44 - ldr r0, _0801CE5C - movs r1, #0xbf - lsls r1, r1, #1 - ldr r2, _0801CE60 - movs r3, #1 - bl AGBAssert -_0801CE44: - ldr r0, [r4, #8] - cmp r0, #0 - beq _0801CE56 - ldr r0, _0801CE5C - ldr r1, _0801CE64 - ldr r2, _0801CE68 - movs r3, #1 - bl AGBAssert -_0801CE56: - ldr r0, [r5, #0x20] - movs r1, #0 - b _0801CE96 - .align 2, 0 -_0801CE5C: .4byte gUnknown_82C4A74 -_0801CE60: .4byte gUnknown_82C4AB8 -_0801CE64: .4byte 0x0000017F -_0801CE68: .4byte gUnknown_82C4AA0 -_0801CE6C: - ldr r0, [r4, #4] - cmp r0, #0 - beq _0801CE80 - ldr r0, _0801CEA0 - movs r1, #0xc2 - lsls r1, r1, #1 - ldr r2, _0801CEA4 - movs r3, #1 - bl AGBAssert -_0801CE80: - ldr r0, [r4, #8] - cmp r0, #0 - beq _0801CE92 - ldr r0, _0801CEA0 - ldr r1, _0801CEA8 - ldr r2, _0801CEAC - movs r3, #1 - bl AGBAssert -_0801CE92: - ldr r0, [r5, #0x20] - movs r1, #1 -_0801CE96: - bl sub_0801B160 - str r0, [r5, #4] - b _0801D238 - .align 2, 0 -_0801CEA0: .4byte gUnknown_82C4A74 -_0801CEA4: .4byte gUnknown_82C4AB8 -_0801CEA8: .4byte 0x00000185 -_0801CEAC: .4byte gUnknown_82C4AA0 -_0801CEB0: - ldr r1, [r5, #4] - ldr r0, [r4, #4] - cmp r1, r0 - beq _0801CEBA - b _0801D238 -_0801CEBA: - movs r0, #0 - str r0, [r5, #0xc] - ldr r0, [r4, #8] - str r0, [r5, #0x10] - b _0801D238 -_0801CEC4: - ldr r0, [r4, #4] - cmp r0, #0 - beq _0801CED8 - ldr r0, _0801CEEC - movs r1, #0xc9 - lsls r1, r1, #1 - ldr r2, _0801CEF0 - movs r3, #1 - bl AGBAssert -_0801CED8: - ldr r0, [r4, #8] - ldr r1, [r5, #0x18] - bl mevent_first_if_not_null_else_second - adds r2, r0, #0 - ldr r1, [r5, #0x20] - bl sub_0801B1AC - str r0, [r5, #4] - b _0801D238 - .align 2, 0 -_0801CEEC: .4byte gUnknown_82C4A74 -_0801CEF0: .4byte gUnknown_82C4AB8 -_0801CEF4: - ldr r0, [r4, #4] - cmp r0, #0 - beq _0801CF08 - ldr r0, _0801CF24 - movs r1, #0xcc - lsls r1, r1, #1 - ldr r2, _0801CF28 - movs r3, #1 - bl AGBAssert -_0801CF08: - ldr r0, [r4, #8] - cmp r0, #0 - beq _0801CF1A - ldr r0, _0801CF24 - ldr r1, _0801CF2C - ldr r2, _0801CF30 - movs r3, #1 - bl AGBAssert -_0801CF1A: - ldr r0, [r5, #0x14] - ldr r0, [r0] - str r0, [r5, #4] - b _0801D238 - .align 2, 0 -_0801CF24: .4byte gUnknown_82C4A74 -_0801CF28: .4byte gUnknown_82C4AB8 -_0801CF2C: .4byte 0x00000199 -_0801CF30: .4byte gUnknown_82C4AA0 -_0801CF34: - ldr r0, [r4, #4] - cmp r0, #0 - beq _0801CF48 - ldr r0, _0801CF60 - movs r1, #0xcf - lsls r1, r1, #1 - ldr r2, _0801CF64 - movs r3, #1 - bl AGBAssert -_0801CF48: - ldr r0, [r4, #8] - adds r1, r5, #0 - adds r1, #0x34 - bl mevent_first_if_not_null_else_second - adds r2, r0, #0 - ldr r1, [r5, #0x20] - bl sub_0801B1C8 - str r0, [r5, #4] - b _0801D238 - .align 2, 0 -_0801CF60: .4byte gUnknown_82C4A74 -_0801CF64: .4byte gUnknown_82C4AB8 -_0801CF68: - ldr r0, [r4, #8] - cmp r0, #0 - beq _0801CF7A - ldr r0, _0801CF8C - ldr r1, _0801CF90 - ldr r2, _0801CF94 - movs r3, #1 - bl AGBAssert -_0801CF7A: - ldr r0, [r5, #0x20] - ldr r1, [r4, #4] - bl MEventStruct_Unk1442CC_GetValueNFrom_unk_20 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [r5, #4] - b _0801D238 - .align 2, 0 -_0801CF8C: .4byte gUnknown_82C4A74 -_0801CF90: .4byte 0x000001A5 -_0801CF94: .4byte gUnknown_82C4AA0 -_0801CF98: - ldr r0, [r4, #4] - cmp r0, #0 - beq _0801CFAC - ldr r0, _0801CFB8 - movs r1, #0xd5 - lsls r1, r1, #1 - ldr r2, _0801CFBC - movs r3, #1 - bl AGBAssert -_0801CFAC: - ldr r0, [r5, #0x20] - ldr r1, [r4, #8] - bl MEventStruct_Unk1442CC_CompareField_unk_16 - str r0, [r5, #4] - b _0801D238 - .align 2, 0 -_0801CFB8: .4byte gUnknown_82C4A74 -_0801CFBC: .4byte gUnknown_82C4AB8 -_0801CFC0: - ldr r0, [r4, #4] - cmp r0, #0 - beq _0801CFD4 - ldr r0, _0801CFE4 - movs r1, #0xd8 - lsls r1, r1, #1 - ldr r2, _0801CFE8 - movs r3, #1 - bl AGBAssert -_0801CFD4: - ldr r0, [r4, #8] - ldr r1, [r5, #0x14] - ldr r1, [r1] - bl mevent_compare_pointers - str r0, [r5, #4] - b _0801D238 - .align 2, 0 -_0801CFE4: .4byte gUnknown_82C4A74 -_0801CFE8: .4byte gUnknown_82C4AB8 -_0801CFEC: - ldr r0, [r4, #4] - cmp r0, #0 - beq _0801D000 - ldr r0, _0801D018 - movs r1, #0xdb - lsls r1, r1, #1 - ldr r2, _0801D01C - movs r3, #1 - bl AGBAssert -_0801D000: - ldr r0, [r4, #8] - ldr r1, [r5, #0x1c] - bl mevent_first_if_not_null_else_second - adds r2, r0, #0 - adds r0, r5, #0 - movs r1, #0x17 - movs r3, #0xe0 - bl sub_0801CC20 - b _0801D238 - .align 2, 0 -_0801D018: .4byte gUnknown_82C4A74 -_0801D01C: .4byte gUnknown_82C4AB8 -_0801D020: - ldr r0, [r4, #4] - cmp r0, #0 - beq _0801D034 - ldr r0, _0801D04C - movs r1, #0xde - lsls r1, r1, #1 - ldr r2, _0801D050 - movs r3, #1 - bl AGBAssert -_0801D034: - ldr r0, [r4, #8] - ldr r1, [r5, #0x18] - bl mevent_first_if_not_null_else_second - adds r2, r0, #0 - adds r0, r5, #0 - movs r1, #0x16 - movs r3, #0xa4 - bl sub_0801CC20 - b _0801D238 - .align 2, 0 -_0801D04C: .4byte gUnknown_82C4A74 -_0801D050: .4byte gUnknown_82C4AB8 -_0801D054: - ldr r0, [r4, #4] - cmp r0, #0 - beq _0801D068 - ldr r0, _0801D080 - movs r1, #0xe1 - lsls r1, r1, #1 - ldr r2, _0801D084 - movs r3, #1 - bl AGBAssert -_0801D068: - ldr r0, [r4, #8] - adds r1, r5, #0 - adds r1, #0x34 - bl mevent_first_if_not_null_else_second - adds r2, r0, #0 - adds r0, r5, #0 - movs r1, #0x18 - movs r3, #4 - bl sub_0801CC20 - b _0801D238 - .align 2, 0 -_0801D080: .4byte gUnknown_82C4A74 -_0801D084: .4byte gUnknown_82C4AB8 -_0801D088: - ldr r2, [r4, #8] - cmp r2, #0 - bne _0801D094 - ldr r2, [r5, #0x24] - ldr r3, [r5, #0x28] - b _0801D096 -_0801D094: - ldr r3, [r4, #4] -_0801D096: - adds r0, r5, #0 - movs r1, #0x19 - bl sub_0801CC20 - b _0801D238 -_0801D0A0: - ldr r2, [r4, #8] - cmp r2, #0 - bne _0801D0AC - ldr r2, [r5, #0x2c] - ldr r3, [r5, #0x30] - b _0801D0AE -_0801D0AC: - ldr r3, [r4, #4] -_0801D0AE: - adds r0, r5, #0 - movs r1, #0x10 - bl sub_0801CC20 - b _0801D238 -_0801D0B8: - ldr r0, [r4, #4] - cmp r0, #0 - beq _0801D0CC - ldr r0, _0801D0DC - movs r1, #0xec - lsls r1, r1, #1 - ldr r2, _0801D0E0 - movs r3, #1 - bl AGBAssert -_0801D0CC: - ldr r2, [r4, #8] - adds r0, r5, #0 - movs r1, #0x1a - movs r3, #0xbc - bl sub_0801CC20 - b _0801D238 - .align 2, 0 -_0801D0DC: .4byte gUnknown_82C4A74 -_0801D0E0: .4byte gUnknown_82C4AB8 -_0801D0E4: - ldr r2, [r4, #8] - ldr r3, [r4, #4] - adds r0, r5, #0 - movs r1, #0x15 - bl sub_0801CC20 - b _0801D238 -_0801D0F2: - ldr r2, [r4, #8] - ldr r3, [r4, #4] - adds r0, r5, #0 - movs r1, #0x1c - bl sub_0801CC20 - b _0801D238 -_0801D100: - ldr r0, [r4, #4] - cmp r0, #0 - beq _0801D112 - ldr r0, _0801D120 - ldr r1, _0801D124 - ldr r2, _0801D128 - movs r3, #1 - bl AGBAssert -_0801D112: - ldr r0, [r5, #0x18] - ldr r1, [r4, #8] - movs r2, #0xa4 - bl memcpy - b _0801D238 - .align 2, 0 -_0801D120: .4byte gUnknown_82C4A74 -_0801D124: .4byte 0x000001E7 -_0801D128: .4byte gUnknown_82C4AB8 -_0801D12C: - ldr r0, [r4, #4] - cmp r0, #0 - beq _0801D140 - ldr r0, _0801D148 - movs r1, #0xf6 - lsls r1, r1, #1 - ldr r2, _0801D14C - movs r3, #1 - bl AGBAssert -_0801D140: - ldr r0, [r5, #0x1c] - ldr r1, [r4, #8] - b _0801D1EA - .align 2, 0 -_0801D148: .4byte gUnknown_82C4A74 -_0801D14C: .4byte gUnknown_82C4AB8 -_0801D150: - ldr r0, [r4, #4] - cmp r0, #0 - beq _0801D162 - ldr r0, _0801D16C - ldr r1, _0801D170 - ldr r2, _0801D174 - movs r3, #1 - bl AGBAssert -_0801D162: - ldr r0, [r4, #8] - ldr r0, [r0] - str r0, [r5, #0x34] - b _0801D238 - .align 2, 0 -_0801D16C: .4byte gUnknown_82C4A74 -_0801D170: .4byte 0x000001F1 -_0801D174: .4byte gUnknown_82C4AB8 -_0801D178: - ldr r0, [r4, #8] - str r0, [r5, #0x24] - ldr r0, [r4, #4] - str r0, [r5, #0x28] - b _0801D238 -_0801D182: - ldr r0, [r4, #8] - str r0, [r5, #0x2c] - ldr r0, [r4, #4] - str r0, [r5, #0x30] - b _0801D238 -_0801D18C: - ldr r0, [r4, #4] - cmp r0, #0 - bne _0801D198 - ldr r0, [r4, #8] - cmp r0, #0 - beq _0801D1A6 -_0801D198: - ldr r0, _0801D1C0 - movs r1, #0x80 - lsls r1, r1, #2 - ldr r2, _0801D1C4 - movs r3, #1 - bl AGBAssert -_0801D1A6: - ldr r4, [r5, #0x18] - bl sub_0801AAF4 - adds r1, r0, #0 - adds r0, r4, #0 - movs r2, #0xa4 - bl memcpy - ldr r0, [r5, #0x18] - bl WonderCard_ResetInternalReceivedFlag - b _0801D238 - .align 2, 0 -_0801D1C0: .4byte gUnknown_82C4A74 -_0801D1C4: .4byte gUnknown_82C4ACC -_0801D1C8: - ldr r0, [r4, #4] - cmp r0, #0 - bne _0801D1D4 - ldr r0, [r4, #8] - cmp r0, #0 - beq _0801D1E0 -_0801D1D4: - ldr r0, _0801D1F4 - ldr r1, _0801D1F8 - ldr r2, _0801D1FC - movs r3, #1 - bl AGBAssert -_0801D1E0: - ldr r4, [r5, #0x1c] - bl sub_0801AAE0 - adds r1, r0, #0 - adds r0, r4, #0 -_0801D1EA: - movs r2, #0xe0 - bl memcpy - b _0801D238 - .align 2, 0 -_0801D1F4: .4byte gUnknown_82C4A74 -_0801D1F8: .4byte 0x00000206 -_0801D1FC: .4byte gUnknown_82C4ACC -_0801D200: - ldr r0, [r4, #4] - cmp r0, #0 - bne _0801D20C - ldr r0, [r4, #8] - cmp r0, #0 - beq _0801D218 -_0801D20C: - ldr r0, _0801D220 - ldr r1, _0801D224 - ldr r2, _0801D228 - movs r3, #1 - bl AGBAssert -_0801D218: - bl GetSavedRamScriptIfValid - str r0, [r5, #0x24] - b _0801D238 - .align 2, 0 -_0801D220: .4byte gUnknown_82C4A74 -_0801D224: .4byte 0x0000020B -_0801D228: .4byte gUnknown_82C4ACC -_0801D22C: - ldr r2, [r4, #8] - ldr r3, [r4, #4] - adds r0, r5, #0 - movs r1, #0x1b - bl sub_0801CC20 -_0801D238: - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_0801CCC8 - - thumb_func_start sub_0801D240 -sub_0801D240: @ 0x0801D240 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, [r4, #8] - cmp r0, #4 - bls _0801D258 - ldr r0, _0801D284 - movs r1, #0x8a - lsls r1, r1, #2 - ldr r2, _0801D288 - movs r3, #1 - bl AGBAssert -_0801D258: - ldr r1, _0801D28C - ldr r0, [r4, #8] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r5, r0, #0 - ldr r0, [r4, #8] - cmp r0, #4 - bls _0801D27C - ldr r0, _0801D284 - ldr r1, _0801D290 - ldr r2, _0801D288 - movs r3, #1 - bl AGBAssert -_0801D27C: - adds r0, r5, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0801D284: .4byte gUnknown_82C4A74 -_0801D288: .4byte gUnknown_82C4B10 -_0801D28C: .4byte gUnknown_82C4AFC -_0801D290: .4byte 0x0000022A - thumb_func_end sub_0801D240 - - thumb_func_start mevent_client_do_init -mevent_client_do_init: @ 0x0801D294 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0801D2B4 - movs r0, #0x50 - bl AllocZeroed - str r0, [r4] - movs r1, #1 - movs r2, #0 - bl mevent_client_init - ldr r0, [r4] - str r5, [r0, #0x4c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0801D2B4: .4byte gUnknown_2022934 - thumb_func_end mevent_client_do_init - - thumb_func_start mevent_client_do_exec -mevent_client_do_exec: @ 0x0801D2B8 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r4, _0801D2C8 - ldr r0, [r4] - cmp r0, #0 - bne _0801D2CC - movs r0, #6 - b _0801D2EC - .align 2, 0 -_0801D2C8: .4byte gUnknown_2022934 -_0801D2CC: - bl mevent_client_exec - adds r5, r0, #0 - cmp r5, #6 - bne _0801D2EA - ldr r0, [r4] - ldr r1, [r0, #4] - strh r1, [r6] - bl mevent_client_free_resources - ldr r0, [r4] - bl Free - movs r0, #0 - str r0, [r4] -_0801D2EA: - adds r0, r5, #0 -_0801D2EC: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end mevent_client_do_exec - - thumb_func_start mevent_client_inc_flag -mevent_client_inc_flag: @ 0x0801D2F4 - ldr r0, _0801D300 - ldr r1, [r0] - ldr r0, [r1, #0xc] - adds r0, #1 - str r0, [r1, #0xc] - bx lr - .align 2, 0 -_0801D300: .4byte gUnknown_2022934 - thumb_func_end mevent_client_inc_flag - - thumb_func_start mevent_client_get_buffer -mevent_client_get_buffer: @ 0x0801D304 - ldr r0, _0801D30C - ldr r0, [r0] - ldr r0, [r0, #0x20] - bx lr - .align 2, 0 -_0801D30C: .4byte gUnknown_2022934 - thumb_func_end mevent_client_get_buffer - - thumb_func_start mevent_client_set_param -mevent_client_set_param: @ 0x0801D310 - ldr r1, _0801D318 - ldr r1, [r1] - str r0, [r1, #4] - bx lr - .align 2, 0 -_0801D318: .4byte gUnknown_2022934 - thumb_func_end mevent_client_set_param - - thumb_func_start mevent_client_init -mevent_client_init: @ 0x0801D31C - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r4, r0, #0 - adds r6, r1, #0 - mov r8, r2 - movs r0, #0 - str r0, [r4] - str r0, [r4, #8] - str r0, [r4, #0xc] - movs r5, #0x80 - lsls r5, r5, #3 - adds r0, r5, #0 - bl AllocZeroed - str r0, [r4, #0x14] - adds r0, r5, #0 - bl AllocZeroed - str r0, [r4, #0x18] - adds r0, r5, #0 - bl AllocZeroed - str r0, [r4, #0x1c] - movs r0, #0x40 - bl AllocZeroed - str r0, [r4, #0x20] - adds r4, #0x24 - adds r0, r4, #0 - adds r1, r6, #0 - mov r2, r8 - bl mevent_srv_sub_init - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end mevent_client_init - - thumb_func_start mevent_client_free_resources -mevent_client_free_resources: @ 0x0801D36C - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x14] - bl Free - ldr r0, [r4, #0x18] - bl Free - ldr r0, [r4, #0x1c] - bl Free - ldr r0, [r4, #0x20] - bl Free - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end mevent_client_free_resources - - thumb_func_start mevent_client_jmp_buffer -mevent_client_jmp_buffer: @ 0x0801D390 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x1c] - ldr r1, [r4, #0x18] - movs r2, #0x80 - lsls r2, r2, #3 - bl memcpy - movs r0, #0 - str r0, [r4, #0x10] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end mevent_client_jmp_buffer - - thumb_func_start mevent_client_send_word -mevent_client_send_word: @ 0x0801D3AC - push {r4, r5, r6, lr} - sub sp, #4 - adds r4, r0, #0 - adds r6, r1, #0 - adds r5, r2, #0 - movs r0, #0 - str r0, [sp] - ldr r1, [r4, #0x14] - ldr r2, _0801D3DC - mov r0, sp - bl CpuSet - ldr r2, [r4, #0x14] - str r5, [r2] - adds r4, #0x24 - adds r0, r4, #0 - adds r1, r6, #0 - movs r3, #4 - bl mevent_srv_sub_init_send - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0801D3DC: .4byte 0x05000100 - thumb_func_end mevent_client_send_word - - thumb_func_start mainseq_0 -mainseq_0: @ 0x0801D3E0 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x1c] - ldr r1, _0801D404 - movs r2, #0x80 - lsls r2, r2, #3 - bl memcpy - movs r1, #0 - str r1, [r4, #0x10] - movs r0, #4 - str r0, [r4, #8] - str r1, [r4, #0xc] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0801D404: .4byte gUnknown_82C4B6C - thumb_func_end mainseq_0 - - thumb_func_start sub_0801D408 -sub_0801D408: @ 0x0801D408 - movs r0, #6 - bx lr - thumb_func_end sub_0801D408 - - thumb_func_start mainseq_2 -mainseq_2: @ 0x0801D40C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x24 - bl mevent_srv_sub_recv - cmp r0, #0 - beq _0801D422 - movs r0, #4 - str r0, [r4, #8] - movs r0, #0 - str r0, [r4, #0xc] -_0801D422: - movs r0, #1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end mainseq_2 - - thumb_func_start mainseq_3 -mainseq_3: @ 0x0801D42C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x24 - bl mevent_srv_sub_send - cmp r0, #0 - beq _0801D442 - movs r0, #4 - str r0, [r4, #8] - movs r0, #0 - str r0, [r4, #0xc] -_0801D442: - movs r0, #1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end mainseq_3 - - thumb_func_start mainseq_4 -mainseq_4: @ 0x0801D44C - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x10] - lsls r2, r0, #3 - ldr r1, [r4, #0x1c] - adds r2, r1, r2 - adds r0, #1 - str r0, [r4, #0x10] - ldr r0, [r2] - cmp r0, #0x15 - bls _0801D464 - b _0801D614 -_0801D464: - lsls r0, r0, #2 - ldr r1, _0801D470 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801D470: .4byte _0801D474 -_0801D474: @ jump table - .4byte _0801D614 @ case 0 - .4byte _0801D4CC @ case 1 - .4byte _0801D4D4 @ case 2 - .4byte _0801D4E4 @ case 3 - .4byte _0801D51E @ case 4 - .4byte _0801D526 @ case 5 - .4byte _0801D50E @ case 6 - .4byte _0801D518 @ case 7 - .4byte _0801D574 @ case 8 - .4byte _0801D5A0 @ case 9 - .4byte _0801D598 @ case 10 - .4byte _0801D53C @ case 11 - .4byte _0801D552 @ case 12 - .4byte _0801D568 @ case 13 - .4byte _0801D58C @ case 14 - .4byte _0801D5C8 @ case 15 - .4byte _0801D5CC @ case 16 - .4byte _0801D5D4 @ case 17 - .4byte _0801D5E0 @ case 18 - .4byte _0801D4FA @ case 19 - .4byte _0801D4E8 @ case 20 - .4byte _0801D600 @ case 21 -_0801D4CC: - ldr r0, [r2, #4] - str r0, [r4, #4] - movs r0, #1 - b _0801D60E -_0801D4D4: - adds r0, r4, #0 - adds r0, #0x24 - ldr r1, [r2, #4] - ldr r2, [r4, #0x18] - bl mevent_srv_sub_init_recv - movs r0, #2 - b _0801D60E -_0801D4E4: - movs r0, #3 - b _0801D60E -_0801D4E8: - adds r0, r4, #0 - adds r0, #0x24 - ldr r2, [r4, #0x14] - movs r1, #0x14 - movs r3, #0 - bl mevent_srv_sub_init_send - movs r0, #3 - b _0801D60E -_0801D4FA: - ldrb r0, [r2, #4] - bl GetGameStat - adds r2, r0, #0 - adds r0, r4, #0 - movs r1, #0x12 - bl mevent_client_send_word - movs r0, #3 - b _0801D60E -_0801D50E: - ldr r0, [r4, #4] - cmp r0, #0 - beq _0801D516 - b _0801D614 -_0801D516: - b _0801D51E -_0801D518: - ldr r0, [r4, #4] - cmp r0, #1 - bne _0801D614 -_0801D51E: - adds r0, r4, #0 - bl mevent_client_jmp_buffer - b _0801D614 -_0801D526: - ldr r0, [r4, #0x20] - ldr r1, [r4, #0x18] - movs r2, #0x40 - bl memcpy - movs r0, #5 - str r0, [r4, #8] - movs r0, #0 - str r0, [r4, #0xc] - movs r0, #2 - b _0801D616 -_0801D53C: - ldr r0, [r4, #0x20] - ldr r1, [r4, #0x18] - movs r2, #0x40 - bl memcpy - movs r0, #5 - str r0, [r4, #8] - movs r0, #0 - str r0, [r4, #0xc] - movs r0, #3 - b _0801D616 -_0801D552: - ldr r0, [r4, #0x20] - ldr r1, [r4, #0x18] - movs r2, #0x40 - bl memcpy - movs r0, #5 - str r0, [r4, #8] - movs r0, #0 - str r0, [r4, #0xc] - movs r0, #5 - b _0801D616 -_0801D568: - movs r0, #5 - str r0, [r4, #8] - movs r0, #0 - str r0, [r4, #0xc] - movs r0, #4 - b _0801D616 -_0801D574: - ldr r0, [r4, #0x14] - ldr r1, [r4, #0x4c] - bl sub_0801B040 - adds r0, r4, #0 - adds r0, #0x24 - ldr r2, [r4, #0x14] - movs r1, #0x11 - movs r3, #0x64 - bl mevent_srv_sub_init_send - b _0801D614 -_0801D58C: - ldr r2, [r4, #4] - adds r0, r4, #0 - movs r1, #0x13 - bl mevent_client_send_word - b _0801D614 -_0801D598: - ldr r0, [r4, #0x18] - bl sub_0801ACE4 - b _0801D614 -_0801D5A0: - ldr r0, [r4, #0x18] - bl sub_0801AC74 - cmp r0, #0 - bne _0801D5BC - ldr r0, [r4, #0x18] - bl sub_0801AB50 - adds r0, r4, #0 - movs r1, #0x13 - movs r2, #0 - bl mevent_client_send_word - b _0801D614 -_0801D5BC: - adds r0, r4, #0 - movs r1, #0x13 - movs r2, #1 - bl mevent_client_send_word - b _0801D614 -_0801D5C8: - movs r0, #6 - b _0801D60E -_0801D5CC: - ldr r0, [r4, #0x18] - bl sub_0801AFC8 - b _0801D614 -_0801D5D4: - ldr r0, [r4, #0x18] - movs r1, #0xfa - lsls r1, r1, #2 - bl InitRamScript_NoEventObject - b _0801D614 -_0801D5E0: - ldr r0, _0801D5F8 - ldr r0, [r0] - ldr r1, _0801D5FC - adds r0, r0, r1 - ldr r1, [r4, #0x18] - movs r2, #0xbc - bl memcpy - bl ValidateEReaderTrainer - b _0801D614 - .align 2, 0 -_0801D5F8: .4byte gUnknown_3005AF0 -_0801D5FC: .4byte 0x00000BEC -_0801D600: - ldr r0, _0801D61C - ldr r1, [r4, #0x18] - movs r2, #0x80 - lsls r2, r2, #3 - bl memcpy - movs r0, #7 -_0801D60E: - str r0, [r4, #8] - movs r0, #0 - str r0, [r4, #0xc] -_0801D614: - movs r0, #1 -_0801D616: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0801D61C: .4byte gUnknown_201C000 - thumb_func_end mainseq_4 - - thumb_func_start mainseq_5 -mainseq_5: @ 0x0801D620 - push {lr} - adds r1, r0, #0 - ldr r0, [r1, #0xc] - cmp r0, #0 - beq _0801D632 - movs r0, #4 - str r0, [r1, #8] - movs r0, #0 - str r0, [r1, #0xc] -_0801D632: - movs r0, #1 - pop {r1} - bx r1 - thumb_func_end mainseq_5 - - thumb_func_start mainseq_6 -mainseq_6: @ 0x0801D638 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0xc] - cmp r0, #0 - beq _0801D648 - cmp r0, #1 - beq _0801D656 - b _0801D668 -_0801D648: - ldr r0, [r4, #0x18] - bl sub_081537AC - ldr r0, [r4, #0xc] - adds r0, #1 - str r0, [r4, #0xc] - b _0801D668 -_0801D656: - adds r0, r4, #4 - bl sub_081537C0 - adds r1, r0, #0 - cmp r1, #0 - bne _0801D668 - movs r0, #4 - str r0, [r4, #8] - str r1, [r4, #0xc] -_0801D668: - movs r0, #1 - pop {r4} - pop {r1} - bx r1 - thumb_func_end mainseq_6 - - thumb_func_start mainseq_7 -mainseq_7: @ 0x0801D670 - push {r4, lr} - adds r4, r0, #0 - ldr r3, _0801D698 - adds r0, r4, #4 - ldr r1, _0801D69C - ldr r1, [r1] - ldr r2, _0801D6A0 - ldr r2, [r2] - bl _call_via_r3 - cmp r0, #1 - bne _0801D690 - movs r0, #4 - str r0, [r4, #8] - movs r0, #0 - str r0, [r4, #0xc] -_0801D690: - movs r0, #1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0801D698: .4byte gUnknown_201C000 -_0801D69C: .4byte gUnknown_3005AF0 -_0801D6A0: .4byte gUnknown_3005AEC - thumb_func_end mainseq_7 - - thumb_func_start mevent_client_exec -mevent_client_exec: @ 0x0801D6A4 - push {r4, r5, lr} - sub sp, #0x20 - mov r2, sp - ldr r1, _0801D6CC - ldm r1!, {r3, r4, r5} - stm r2!, {r3, r4, r5} - ldm r1!, {r3, r4, r5} - stm r2!, {r3, r4, r5} - ldm r1!, {r3, r4} - stm r2!, {r3, r4} - ldr r1, [r0, #8] - lsls r1, r1, #2 - add r1, sp - ldr r1, [r1] - bl _call_via_r1 - add sp, #0x20 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0801D6CC: .4byte gUnknown_82C4B34 - thumb_func_end mevent_client_exec - - thumb_func_start mevent_srv_sub_recv -mevent_srv_sub_recv: @ 0x0801D6D0 - push {lr} - ldr r1, [r0, #0x20] - bl _call_via_r1 - pop {r1} - bx r1 - thumb_func_end mevent_srv_sub_recv - - thumb_func_start mevent_srv_sub_send -mevent_srv_sub_send: @ 0x0801D6DC - push {lr} - ldr r1, [r0, #0x24] - bl _call_via_r1 - pop {r1} - bx r1 - thumb_func_end mevent_srv_sub_send - - thumb_func_start mevent_srv_sub_init -mevent_srv_sub_init: @ 0x0801D6E8 - movs r3, #0 - strb r1, [r0, #4] - strb r2, [r0, #5] - str r3, [r0] - strh r3, [r0, #0x12] - strh r3, [r0, #0x14] - strh r3, [r0, #0x10] - strh r3, [r0, #0xa] - strh r3, [r0, #0xc] - strh r3, [r0, #8] - str r3, [r0, #0x1c] - str r3, [r0, #0x18] - ldr r1, _0801D70C - str r1, [r0, #0x24] - ldr r1, _0801D710 - str r1, [r0, #0x20] - bx lr - .align 2, 0 -_0801D70C: .4byte mevent_send_func -_0801D710: .4byte mevent_receive_func - thumb_func_end mevent_srv_sub_init - - thumb_func_start mevent_srv_sub_init_send -mevent_srv_sub_init_send: @ 0x0801D714 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0 - str r0, [r4] - strh r1, [r4, #0xe] - strh r0, [r4, #0x10] - strh r0, [r4, #0x12] - cmp r3, #0 - beq _0801D72A - strh r3, [r4, #0x14] - b _0801D730 -_0801D72A: - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r4, #0x14] -_0801D730: - str r2, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - thumb_func_end mevent_srv_sub_init_send - - thumb_func_start mevent_srv_sub_init_recv -mevent_srv_sub_init_recv: @ 0x0801D738 - movs r3, #0 - str r3, [r0] - strh r1, [r0, #6] - strh r3, [r0, #8] - strh r3, [r0, #0xa] - strh r3, [r0, #0xc] - str r2, [r0, #0x18] - bx lr - thumb_func_end mevent_srv_sub_init_recv - - thumb_func_start mevent_recv_block -mevent_recv_block: @ 0x0801D748 - push {lr} - adds r3, r0, #0 - adds r0, r1, #0 - lsls r3, r3, #8 - ldr r1, _0801D760 - adds r3, r3, r1 - adds r1, r3, #0 - bl memcpy - pop {r0} - bx r0 - .align 2, 0 -_0801D760: .4byte gUnknown_202207C - thumb_func_end mevent_recv_block - - thumb_func_start mevent_has_received -mevent_has_received: @ 0x0801D764 - push {r4, lr} - adds r4, r0, #0 - bl GetBlockReceivedStatus - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - asrs r0, r4 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _0801D77E - movs r0, #0 - b _0801D780 -_0801D77E: - movs r0, #1 -_0801D780: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end mevent_has_received - - thumb_func_start sub_0801D788 -sub_0801D788: @ 0x0801D788 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl ResetBlockReceivedFlag - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0801D788 - - thumb_func_start mevent_receive_func -mevent_receive_func: @ 0x0801D798 - push {r4, r5, r6, lr} - sub sp, #8 - adds r5, r0, #0 - ldr r6, [r5] - cmp r6, #1 - beq _0801D7FC - cmp r6, #1 - bgt _0801D7AE - cmp r6, #0 - beq _0801D7B4 - b _0801D862 -_0801D7AE: - cmp r6, #2 - beq _0801D848 - b _0801D862 -_0801D7B4: - ldrb r0, [r5, #5] - bl mevent_has_received - cmp r0, #0 - beq _0801D862 - ldrb r0, [r5, #5] - mov r4, sp - mov r1, sp - movs r2, #8 - bl mevent_recv_block - ldrh r1, [r4, #4] - strh r1, [r5, #0xc] - ldrh r0, [r4, #2] - strh r0, [r5, #0xa] - lsls r1, r1, #0x10 - movs r0, #0x80 - lsls r0, r0, #0x13 - cmp r1, r0 - bls _0801D7E2 -_0801D7DC: - bl OpponentHandleEndBounceEffect - b _0801D862 -_0801D7E2: - mov r1, sp - ldrh r0, [r5, #6] - ldrh r1, [r1] - cmp r0, r1 - bne _0801D7DC - strh r6, [r5, #8] - ldrb r0, [r5, #5] - bl sub_0801D788 - ldr r0, [r5] - adds r0, #1 - str r0, [r5] - b _0801D862 -_0801D7FC: - ldrb r0, [r5, #5] - bl mevent_has_received - cmp r0, #0 - beq _0801D862 - ldrh r0, [r5, #8] - lsls r1, r0, #6 - subs r1, r1, r0 - lsls r3, r1, #2 - ldrh r0, [r5, #0xc] - subs r2, r0, r3 - cmp r2, #0xfc - bhi _0801D82E - ldrb r0, [r5, #5] - ldr r1, [r5, #0x18] - adds r1, r1, r3 - bl mevent_recv_block - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - ldr r0, [r5] - adds r0, #1 - str r0, [r5] - b _0801D840 -_0801D82E: - ldrb r0, [r5, #5] - ldr r1, [r5, #0x18] - adds r1, r1, r3 - movs r2, #0xfc - bl mevent_recv_block - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] -_0801D840: - ldrb r0, [r5, #5] - bl sub_0801D788 - b _0801D862 -_0801D848: - ldr r0, [r5, #0x18] - ldrh r1, [r5, #0xc] - bl CalcCRC16WithTable - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrh r1, [r5, #0xa] - cmp r0, r1 - bne _0801D7DC - movs r0, #0 - str r0, [r5] - movs r0, #1 - b _0801D864 -_0801D862: - movs r0, #0 -_0801D864: - add sp, #8 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end mevent_receive_func - - thumb_func_start mevent_send_func -mevent_send_func: @ 0x0801D86C - push {r4, r5, lr} - sub sp, #8 - adds r4, r0, #0 - ldr r5, [r4] - cmp r5, #1 - beq _0801D8D8 - cmp r5, #1 - bgt _0801D882 - cmp r5, #0 - beq _0801D88C - b _0801D96E -_0801D882: - cmp r5, #2 - beq _0801D92C - cmp r5, #3 - beq _0801D956 - b _0801D96E -_0801D88C: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801D96E - ldrh r1, [r4, #0xe] - ldr r2, _0801D8D0 - ldr r0, [sp] - ands r0, r2 - orrs r0, r1 - str r0, [sp] - ldrh r1, [r4, #0x14] - ldr r0, [sp, #4] - ands r0, r2 - orrs r0, r1 - str r0, [sp, #4] - ldr r0, [r4, #0x1c] - bl CalcCRC16WithTable - lsls r0, r0, #0x10 - ldr r2, _0801D8D4 - ldr r1, [sp] - ands r1, r2 - orrs r1, r0 - str r1, [sp] - lsrs r1, r1, #0x10 - strh r1, [r4, #0x12] - strh r5, [r4, #0x10] - movs r0, #0 - mov r1, sp - movs r2, #8 - bl SendBlock - b _0801D94E - .align 2, 0 -_0801D8D0: .4byte 0xFFFF0000 -_0801D8D4: .4byte 0x0000FFFF -_0801D8D8: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801D96E - ldrb r0, [r4, #4] - bl mevent_has_received - cmp r0, #0 - beq _0801D96E - ldrb r0, [r4, #4] - bl sub_0801D788 - ldrh r1, [r4, #0x10] - lsls r0, r1, #6 - subs r0, r0, r1 - lsls r3, r0, #2 - ldrh r0, [r4, #0x14] - subs r0, r0, r3 - cmp r0, #0xfc - bhi _0801D918 - ldr r1, [r4, #0x1c] - adds r1, r1, r3 - lsls r2, r0, #0x10 - lsrs r2, r2, #0x10 - movs r0, #0 - bl SendBlock - ldrh r0, [r4, #0x10] - adds r0, #1 - strh r0, [r4, #0x10] - b _0801D94E -_0801D918: - ldr r1, [r4, #0x1c] - adds r1, r1, r3 - movs r0, #0 - movs r2, #0xfc - bl SendBlock - ldrh r0, [r4, #0x10] - adds r0, #1 - strh r0, [r4, #0x10] - b _0801D96E -_0801D92C: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801D96E - ldr r0, [r4, #0x1c] - ldrh r1, [r4, #0x14] - bl CalcCRC16WithTable - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrh r1, [r4, #0x12] - cmp r0, r1 - beq _0801D94E - bl OpponentHandleEndBounceEffect - b _0801D96E -_0801D94E: - ldr r0, [r4] - adds r0, #1 - str r0, [r4] - b _0801D96E -_0801D956: - ldrb r0, [r4, #4] - bl mevent_has_received - cmp r0, #0 - beq _0801D96E - ldrb r0, [r4, #4] - bl sub_0801D788 - movs r0, #0 - str r0, [r4] - movs r0, #1 - b _0801D970 -_0801D96E: - movs r0, #0 -_0801D970: - add sp, #8 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end mevent_send_func - - thumb_func_start GenerateRandomNews -GenerateRandomNews: @ 0x0801D978 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0801AB1C - adds r5, r0, #0 - movs r0, #3 - adds r1, r4, #0 - ands r1, r0 - ldrb r2, [r5] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5] - cmp r4, #2 - bhi _0801D99E - cmp r4, #1 - bhs _0801D9A4 - b _0801D9C8 -_0801D99E: - cmp r4, #3 - beq _0801D9B6 - b _0801D9C8 -_0801D9A4: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xf - bl __umodsi3 - adds r0, #0x10 - b _0801D9C6 -_0801D9B6: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xf - bl __umodsi3 - adds r0, #1 -_0801D9C6: - strb r0, [r5, #1] -_0801D9C8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end GenerateRandomNews - - thumb_func_start sub_0801D9D0 -sub_0801D9D0: @ 0x0801D9D0 - push {lr} - bl sub_0801AB1C - movs r1, #0 - strb r1, [r0] - strb r1, [r0, #1] - ldr r0, _0801D9E8 - bl VarSet - pop {r0} - bx r0 - .align 2, 0 -_0801D9E8: .4byte 0x0000402E - thumb_func_end sub_0801D9D0 - - thumb_func_start sub_0801D9EC -sub_0801D9EC: @ 0x0801D9EC - push {r4, lr} - ldr r0, _0801DA28 - bl GetVarPointer - adds r4, r0, #0 - bl sub_0801AB1C - adds r2, r0, #0 - ldr r0, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1d - cmp r0, #4 - bls _0801DA20 - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - lsls r0, r0, #0x10 - ldr r1, _0801DA2C - cmp r0, r1 - bls _0801DA20 - ldrb r0, [r2] - movs r1, #0x1f - ands r1, r0 - strb r1, [r2] - movs r0, #0 - strh r0, [r4] -_0801DA20: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801DA28: .4byte 0x0000402E -_0801DA2C: .4byte 0x01F30000 - thumb_func_end sub_0801D9EC - - thumb_func_start sub_0801DA30 -sub_0801DA30: @ 0x0801DA30 - push {r4, r5, r6, lr} - ldr r6, _0801DA50 - bl sub_0801AB1C - adds r4, r0, #0 - bl IsMysteryEventEnabled - cmp r0, #0 - beq _0801DA4A - bl ItemUseInBattle_Escape - cmp r0, #0 - bne _0801DA54 -_0801DA4A: - movs r0, #0 - b _0801DAB6 - .align 2, 0 -_0801DA50: .4byte gUnknown_2037290 -_0801DA54: - adds r0, r4, #0 - bl sub_0801DB54 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #6 - bhi _0801DAB4 - lsls r0, r5, #2 - ldr r1, _0801DA6C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801DA6C: .4byte _0801DA70 -_0801DA70: @ jump table - .4byte _0801DAB4 @ case 0 - .4byte _0801DA8C @ case 1 - .4byte _0801DA8C @ case 2 - .4byte _0801DAB4 @ case 3 - .4byte _0801DA96 @ case 4 - .4byte _0801DAA6 @ case 5 - .4byte _0801DAB4 @ case 6 -_0801DA8C: - adds r0, r4, #0 - bl sub_0801DABC - strh r0, [r6] - b _0801DAB4 -_0801DA96: - adds r0, r4, #0 - bl sub_0801DABC - strh r0, [r6] - adds r0, r4, #0 - bl sub_0801DAE8 - b _0801DAB4 -_0801DAA6: - adds r0, r4, #0 - bl sub_0801DABC - strh r0, [r6] - adds r0, r4, #0 - bl sub_0801DADC -_0801DAB4: - adds r0, r5, #0 -_0801DAB6: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_0801DA30 - - thumb_func_start sub_0801DABC -sub_0801DABC: @ 0x0801DABC - push {r4, lr} - ldrb r2, [r0] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - ldrb r4, [r0, #1] - adds r4, #0x84 - movs r1, #0 - strb r1, [r0, #1] - bl sub_0801DB20 - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0801DABC - - thumb_func_start sub_0801DADC -sub_0801DADC: @ 0x0801DADC - ldrb r2, [r0] - movs r1, #0x1d - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - bx lr - thumb_func_end sub_0801DADC - - thumb_func_start sub_0801DAE8 -sub_0801DAE8: @ 0x0801DAE8 - push {r4, lr} - adds r3, r0, #0 - ldr r0, [r3] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1d - adds r0, #1 - movs r1, #7 - ands r0, r1 - lsls r0, r0, #2 - ldrb r1, [r3] - movs r4, #0x1d - rsbs r4, r4, #0 - adds r2, r4, #0 - ands r2, r1 - orrs r2, r0 - strb r2, [r3] - ldr r0, [r3] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1d - cmp r0, #4 - bls _0801DB1A - ands r2, r4 - movs r0, #0x10 - orrs r2, r0 - strb r2, [r3] -_0801DB1A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0801DAE8 - - thumb_func_start sub_0801DB20 -sub_0801DB20: @ 0x0801DB20 - push {r4, lr} - adds r3, r0, #0 - ldr r0, [r3] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1d - adds r0, #1 - lsls r0, r0, #5 - ldrb r1, [r3] - movs r4, #0x1f - adds r2, r4, #0 - ands r2, r1 - orrs r2, r0 - strb r2, [r3] - ldr r0, [r3] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1d - cmp r0, #5 - bls _0801DB4C - ands r2, r4 - movs r0, #0xa0 - orrs r2, r0 - strb r2, [r3] -_0801DB4C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0801DB20 - - thumb_func_start sub_0801DB54 -sub_0801DB54: @ 0x0801DB54 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2] - movs r0, #0xe0 - ands r0, r1 - cmp r0, #0xa0 - bne _0801DB66 - movs r0, #6 - b _0801DBB0 -_0801DB66: - ldr r1, [r2] - lsls r0, r1, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - beq _0801DB88 - cmp r0, #1 - bgt _0801DB7A - cmp r0, #0 - beq _0801DB84 - b _0801DBA0 -_0801DB7A: - cmp r0, #2 - beq _0801DB8C - cmp r0, #3 - beq _0801DB90 - b _0801DBA0 -_0801DB84: - movs r0, #3 - b _0801DBB0 -_0801DB88: - movs r0, #1 - b _0801DBB0 -_0801DB8C: - movs r0, #2 - b _0801DBB0 -_0801DB90: - lsls r0, r1, #0x1b - lsrs r0, r0, #0x1d - cmp r0, #2 - bhi _0801DB9C - movs r0, #4 - b _0801DBB0 -_0801DB9C: - movs r0, #5 - b _0801DBB0 -_0801DBA0: - ldr r0, _0801DBB4 - movs r1, #0xc0 - lsls r1, r1, #1 - ldr r2, _0801DBB8 - movs r3, #1 - bl AGBAssert - movs r0, #0 -_0801DBB0: - pop {r1} - bx r1 - .align 2, 0 -_0801DBB4: .4byte gUnknown_82C5050 -_0801DBB8: .4byte gUnknown_82C5060 - thumb_func_end sub_0801DB54 - - thumb_func_start sub_0801DBBC -sub_0801DBBC: @ 0x0801DBBC - push {r4, lr} - ldr r4, _0801DBE8 - movs r0, #0xde - lsls r0, r0, #1 - bl sub_08000BC8 - str r0, [r4] - bl sub_0801DBF4 - ldr r1, _0801DBEC - movs r0, #0x14 - strh r0, [r1] - movs r0, #0 - bl SetVBlankCallback - ldr r0, _0801DBF0 - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801DBE8: .4byte gUnknown_2022938 -_0801DBEC: .4byte gUnknown_3002350 -_0801DBF0: .4byte c2_081284E0 - thumb_func_end sub_0801DBBC - - thumb_func_start sub_0801DBF4 -sub_0801DBF4: @ 0x0801DBF4 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - movs r5, #0 - movs r0, #0 - strh r0, [r4, #4] - strh r0, [r4, #6] - strb r5, [r4, #0x10] - strb r5, [r4, #0x11] - strb r5, [r4, #0x12] - strb r5, [r4, #0x14] - strb r5, [r4, #0x15] - strb r5, [r4, #0x16] - movs r0, #0xff - strb r0, [r4, #0x1a] - bl GetLinkPlayerCount - strb r0, [r4, #0xd] - bl GetMultiplayerId - strb r0, [r4, #0x13] - strb r5, [r4, #0x17] - strb r5, [r4, #0x18] - movs r1, #0xc8 - lsls r1, r1, #1 - adds r0, r4, r1 - bl sub_0801ED2C - ldr r7, _0801DC4C - ldr r6, _0801DC50 - adds r4, #0xb9 - movs r5, #9 -_0801DC32: - ldr r1, [r7] - adds r1, r1, r6 - adds r0, r4, #0 - bl StringCopy - adds r6, #0x15 - adds r4, #0x15 - subs r5, #1 - cmp r5, #0 - bge _0801DC32 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0801DC4C: .4byte gUnknown_3005AEC -_0801DC50: .4byte 0x00003C88 - thumb_func_end sub_0801DBF4 - - thumb_func_start sub_0801DC54 -sub_0801DC54: @ 0x0801DC54 - push {r4, lr} - ldr r4, _0801DC74 - ldr r0, [r4] - ldrb r0, [r0, #0xe] - bl DestroyTask - ldr r0, [r4] - ldrb r0, [r0, #0xf] - bl DestroyTask - ldr r0, [r4] - bl Free - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801DC74: .4byte gUnknown_2022938 - thumb_func_end sub_0801DC54 - - thumb_func_start c2_081284E0 -c2_081284E0: @ 0x0801DC78 - push {r4, r5, r6, lr} - sub sp, #4 - ldr r0, _0801DC94 - movs r1, #0x87 - lsls r1, r1, #3 - adds r6, r0, r1 - ldrb r0, [r6] - cmp r0, #1 - beq _0801DCB0 - cmp r0, #1 - bgt _0801DC98 - cmp r0, #0 - beq _0801DC9E - b _0801DD28 - .align 2, 0 -_0801DC94: .4byte gUnknown_3002360 -_0801DC98: - cmp r0, #2 - beq _0801DCEC - b _0801DD28 -_0801DC9E: - bl ResetTasks - bl ResetSpriteData - bl FreeAllSpritePalettes - bl sub_0801F2E0 - b _0801DCE0 -_0801DCB0: - bl sub_0801F3C8 - bl sub_0801F344 - adds r5, r0, #0 - cmp r5, #0 - bne _0801DD28 - movs r4, #1 - rsbs r4, r4, #0 - adds r0, r4, #0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - str r5, [sp] - adds r0, r4, #0 - adds r1, r4, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r0, _0801DCE8 - bl SetVBlankCallback -_0801DCE0: - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] - b _0801DD28 - .align 2, 0 -_0801DCE8: .4byte FoundBlackGlasses -_0801DCEC: - bl UpdatePaletteFade - ldr r0, _0801DD30 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0801DD28 - ldr r0, _0801DD34 - bl SetMainCallback2 - ldr r0, _0801DD38 - movs r1, #8 - bl CreateTask - ldr r4, _0801DD3C - ldr r1, [r4] - strb r0, [r1, #0xe] - ldr r0, _0801DD40 - movs r1, #7 - bl CreateTask - ldr r1, [r4] - strb r0, [r1, #0xf] - bl LoadWirelessStatusIndicatorSpriteGfx - movs r0, #0xe8 - movs r1, #0x96 - bl CreateWirelessStatusIndicatorSprite -_0801DD28: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0801DD30: .4byte gUnknown_2037C74 -_0801DD34: .4byte ScrCmd_startcontest -_0801DD38: .4byte sub_0801DD78 -_0801DD3C: .4byte gUnknown_2022938 -_0801DD40: .4byte sub_0801F0C4 - thumb_func_end c2_081284E0 - - thumb_func_start FoundBlackGlasses -FoundBlackGlasses: @ 0x0801DD44 - push {lr} - bl TransferPlttBuffer - bl LoadOam - bl ProcessSpriteCopyRequests - bl ScanlineEffect_InitHBlankDmaTransfer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end FoundBlackGlasses - - thumb_func_start ScrCmd_startcontest -ScrCmd_startcontest: @ 0x0801DD5C - push {lr} - bl RunTasks - bl sub_0801F3C8 - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ScrCmd_startcontest - - thumb_func_start sub_0801DD78 -sub_0801DD78: @ 0x0801DD78 - push {r4, lr} - ldr r4, _0801DD90 - ldr r0, [r4] - ldrb r0, [r0, #0x17] - cmp r0, #2 - beq _0801DD9E - cmp r0, #2 - bgt _0801DD94 - cmp r0, #1 - beq _0801DD9A - b _0801DDAE - .align 2, 0 -_0801DD90: .4byte gUnknown_2022938 -_0801DD94: - cmp r0, #3 - beq _0801DDA2 - b _0801DDAE -_0801DD9A: - movs r0, #6 - b _0801DDA4 -_0801DD9E: - movs r0, #7 - b _0801DDA4 -_0801DDA2: - movs r0, #8 -_0801DDA4: - bl sub_0801E9F8 - ldr r1, [r4] - movs r0, #0 - strb r0, [r1, #0x17] -_0801DDAE: - ldr r1, _0801DDC8 - ldr r0, _0801DDCC - ldr r0, [r0] - ldrh r0, [r0, #4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - thumb_func_end sub_0801DD78 - - thumb_func_start sub_0801DDC0 -sub_0801DDC0: @ 0x0801DDC0 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801DDC8: .4byte gUnknown_82C5064 -_0801DDCC: .4byte gUnknown_2022938 - thumb_func_end sub_0801DDC0 - - thumb_func_start sub_0801DDD0 -sub_0801DDD0: @ 0x0801DDD0 - push {r4, lr} - ldr r4, _0801DDE8 - ldr r0, [r4] - ldrh r1, [r0, #6] - cmp r1, #1 - beq _0801DE04 - cmp r1, #1 - bgt _0801DDEC - cmp r1, #0 - beq _0801DDF2 - b _0801DE4C - .align 2, 0 -_0801DDE8: .4byte gUnknown_2022938 -_0801DDEC: - cmp r1, #2 - beq _0801DE3C - b _0801DE4C -_0801DDF2: - movs r1, #0xc8 - lsls r1, r1, #1 - adds r0, r0, r1 - bl sub_0801ED34 - ldr r1, [r4] - ldrh r0, [r1, #6] - adds r0, #1 - strh r0, [r1, #6] -_0801DE04: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801DE4C - bl sub_0801158C - cmp r0, #0 - bne _0801DE4C - ldr r4, _0801DE38 - ldr r1, [r4] - movs r0, #0xc8 - lsls r0, r0, #1 - adds r1, r1, r0 - movs r0, #0 - movs r2, #0x28 - bl SendBlock - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801DE4C - ldr r1, [r4] - ldrh r0, [r1, #6] - adds r0, #1 - strh r0, [r1, #6] - b _0801DE4C - .align 2, 0 -_0801DE38: .4byte gUnknown_2022938 -_0801DE3C: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801DE4C - movs r0, #1 - bl sub_0801E9F8 -_0801DE4C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0801DDD0 - - thumb_func_start sub_0801DE54 -sub_0801DE54: @ 0x0801DE54 - push {r4, r5, lr} - ldr r5, _0801DE68 - ldr r3, [r5] - ldrh r0, [r3, #6] - cmp r0, #0 - beq _0801DE6C - cmp r0, #1 - beq _0801DF1A - b _0801DF3C - .align 2, 0 -_0801DE68: .4byte gUnknown_2022938 -_0801DE6C: - ldr r1, _0801DE88 - ldrh r2, [r1, #0x2e] - movs r0, #8 - ands r0, r2 - cmp r0, #0 - beq _0801DE8C - ldrb r0, [r3, #0x15] - cmp r0, #0 - beq _0801DF3C - movs r0, #4 - bl sub_0801E9F8 - b _0801DF3C - .align 2, 0 -_0801DE88: .4byte gUnknown_3002360 -_0801DE8C: - movs r0, #4 - ands r0, r2 - cmp r0, #0 - beq _0801DE9C - movs r0, #2 - bl sub_0801E9F8 - b _0801DF3C -_0801DE9C: - ldrh r1, [r1, #0x30] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0801DEC8 - ldrb r0, [r3, #0x15] - cmp r0, #0 - beq _0801DEC0 - bl sub_0801EB74 - movs r0, #8 - movs r1, #0 - bl sub_0801F3FC - ldr r1, [r5] - movs r0, #1 - strh r0, [r1, #6] - b _0801DF3C -_0801DEC0: - movs r0, #3 - bl sub_0801E9F8 - b _0801DF3C -_0801DEC8: - movs r4, #1 - adds r0, r4, #0 - ands r0, r2 - cmp r0, #0 - beq _0801DEE4 - bl sub_0801EAB8 - movs r0, #8 - movs r1, #0 - bl sub_0801F3FC - movs r0, #2 - movs r1, #1 - b _0801DF10 -_0801DEE4: - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r2 - cmp r0, #0 - beq _0801DF04 - ldrb r0, [r3, #0x10] - cmp r0, #4 - beq _0801DEFC - bl sub_0801EBA0 - movs r0, #8 - b _0801DF0E -_0801DEFC: - movs r0, #5 - bl sub_0801E9F8 - b _0801DF3C -_0801DF04: - bl sub_0801EA08 - cmp r0, #0 - beq _0801DF3C - movs r0, #1 -_0801DF0E: - movs r1, #0 -_0801DF10: - bl sub_0801F3FC - ldr r0, [r5] - strh r4, [r0, #6] - b _0801DF3C -_0801DF1A: - movs r0, #0 - bl sub_0801F454 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - bl sub_0801F454 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r4, #0 - bne _0801DF3C - cmp r1, #0 - bne _0801DF3C - ldr r0, [r5] - strh r1, [r0, #6] -_0801DF3C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0801DE54 - - thumb_func_start sub_0801DF44 -sub_0801DF44: @ 0x0801DF44 - push {r4, r5, r6, lr} - ldr r0, _0801DF5C - ldr r0, [r0] - ldrh r0, [r0, #6] - cmp r0, #4 - bls _0801DF52 - b _0801E05E -_0801DF52: - lsls r0, r0, #2 - ldr r1, _0801DF60 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801DF5C: .4byte gUnknown_2022938 -_0801DF60: .4byte _0801DF64 -_0801DF64: @ jump table - .4byte _0801DF78 @ case 0 - .4byte _0801DF82 @ case 1 - .4byte _0801DFA0 @ case 2 - .4byte _0801E02C @ case 3 - .4byte _0801E040 @ case 4 -_0801DF78: - movs r0, #3 - movs r1, #0 - bl sub_0801F3FC - b _0801DF8E -_0801DF82: - movs r0, #0 - bl sub_0801F454 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801E05E -_0801DF8E: - ldr r0, _0801DF9C - ldr r1, [r0] - ldrh r0, [r1, #6] - adds r0, #1 - strh r0, [r1, #6] - b _0801E05E - .align 2, 0 -_0801DF9C: .4byte gUnknown_2022938 -_0801DFA0: - bl Menu_ProcessInput - lsls r0, r0, #0x18 - asrs r0, r0, #8 - lsrs r6, r0, #0x10 - asrs r4, r0, #0x10 - movs r0, #2 - rsbs r0, r0, #0 - cmp r4, r0 - beq _0801DFD8 - adds r0, #1 - cmp r4, r0 - beq _0801DFF8 - movs r0, #4 - movs r1, #0 - bl sub_0801F3FC - ldr r5, _0801DFD4 - ldr r2, [r5] - ldrb r0, [r2, #0x10] - cmp r0, r4 - beq _0801E000 - cmp r4, #5 - bne _0801E010 - b _0801E000 - .align 2, 0 -_0801DFD4: .4byte gUnknown_2022938 -_0801DFD8: - ldr r0, _0801DFF4 - ldrh r1, [r0, #0x2e] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0801E05E - movs r0, #5 - bl sub_080A306C - movs r0, #1 - bl Menu_MoveCursor - b _0801E05E - .align 2, 0 -_0801DFF4: .4byte gUnknown_3002360 -_0801DFF8: - movs r0, #4 - movs r1, #0 - bl sub_0801F3FC -_0801E000: - ldr r0, _0801E00C - ldr r1, [r0] - movs r0, #3 - strh r0, [r1, #6] - b _0801E05E - .align 2, 0 -_0801E00C: .4byte gUnknown_2022938 -_0801E010: - movs r1, #0 - strb r1, [r2, #0x11] - ldr r0, [r5] - strb r1, [r0, #0x12] - movs r0, #5 - movs r1, #1 - bl sub_0801F3FC - ldr r0, [r5] - strb r6, [r0, #0x10] - ldr r1, [r5] - movs r0, #4 - strh r0, [r1, #6] - b _0801E05E -_0801E02C: - movs r0, #0 - bl sub_0801F454 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801E05E - movs r0, #1 - bl sub_0801E9F8 - b _0801E05E -_0801E040: - movs r0, #0 - bl sub_0801F454 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801E05E - movs r0, #1 - bl sub_0801F454 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801E05E - movs r0, #1 - bl sub_0801E9F8 -_0801E05E: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_0801DF44 - - thumb_func_start sub_0801E064 -sub_0801E064: @ 0x0801E064 - push {r4, r5, lr} - ldr r1, _0801E080 - ldr r0, [r1] - ldrh r0, [r0, #6] - adds r2, r1, #0 - cmp r0, #0xa - bls _0801E074 - b _0801E27C -_0801E074: - lsls r0, r0, #2 - ldr r1, _0801E084 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801E080: .4byte gUnknown_2022938 -_0801E084: .4byte _0801E088 -_0801E088: @ jump table - .4byte _0801E0B4 @ case 0 - .4byte _0801E0CC @ case 1 - .4byte _0801E0E8 @ case 2 - .4byte _0801E146 @ case 3 - .4byte _0801E1F8 @ case 4 - .4byte _0801E248 @ case 5 - .4byte _0801E27C @ case 6 - .4byte _0801E27C @ case 7 - .4byte _0801E19C @ case 8 - .4byte _0801E15C @ case 9 - .4byte _0801E180 @ case 10 -_0801E0B4: - movs r0, #6 - movs r1, #0 - bl sub_0801F3FC - ldr r0, _0801E0C8 - ldr r1, [r0] - movs r0, #1 - strh r0, [r1, #6] - b _0801E27C - .align 2, 0 -_0801E0C8: .4byte gUnknown_2022938 -_0801E0CC: - movs r0, #0 - bl sub_0801F454 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801E0DA - b _0801E27C -_0801E0DA: - ldr r0, _0801E0E4 - ldr r1, [r0] - movs r0, #2 - strh r0, [r1, #6] - b _0801E27C - .align 2, 0 -_0801E0E4: .4byte gUnknown_2022938 -_0801E0E8: - bl sub_0801FD30 - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _0801E10A - cmp r1, #0 - bgt _0801E102 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0801E1BA - b _0801E27C -_0801E102: - cmp r1, #1 - beq _0801E108 - b _0801E27C -_0801E108: - b _0801E1BA -_0801E10A: - ldr r4, _0801E130 - ldr r1, [r4] - ldrb r0, [r1, #0x13] - cmp r0, #0 - bne _0801E134 - movs r2, #0xc8 - lsls r2, r2, #1 - adds r0, r1, r2 - bl sub_0801EDE0 - movs r0, #7 - movs r1, #0 - bl sub_0801F3FC - ldr r1, [r4] - movs r0, #9 - strh r0, [r1, #6] - b _0801E27C - .align 2, 0 -_0801E130: .4byte gUnknown_2022938 -_0801E134: - movs r2, #0xc8 - lsls r2, r2, #1 - adds r0, r1, r2 - bl sub_0801ED8C - ldr r1, [r4] - movs r0, #4 - strh r0, [r1, #6] - b _0801E27C -_0801E146: - movs r0, #0 - bl sub_0801F454 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801E154 - b _0801E27C -_0801E154: - movs r0, #1 - bl sub_0801E9F8 - b _0801E27C -_0801E15C: - movs r0, #0 - bl sub_0801F454 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801E16A - b _0801E27C -_0801E16A: - movs r0, #0x14 - movs r1, #0 - bl sub_0801F3FC - ldr r0, _0801E17C - ldr r1, [r0] - movs r0, #0xa - strh r0, [r1, #6] - b _0801E27C - .align 2, 0 -_0801E17C: .4byte gUnknown_2022938 -_0801E180: - movs r0, #0 - bl sub_0801F454 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801E18E - b _0801E27C -_0801E18E: - ldr r0, _0801E198 - ldr r1, [r0] - movs r0, #8 - strh r0, [r1, #6] - b _0801E27C - .align 2, 0 -_0801E198: .4byte gUnknown_2022938 -_0801E19C: - bl sub_0801FD30 - lsls r0, r0, #0x18 - asrs r5, r0, #0x18 - cmp r5, #0 - beq _0801E1D0 - cmp r5, #0 - bgt _0801E1B6 - movs r0, #1 - rsbs r0, r0, #0 - cmp r5, r0 - beq _0801E1BA - b _0801E27C -_0801E1B6: - cmp r5, #1 - bne _0801E27C -_0801E1BA: - movs r0, #7 - movs r1, #0 - bl sub_0801F3FC - ldr r0, _0801E1CC - ldr r1, [r0] - movs r0, #3 - strh r0, [r1, #6] - b _0801E27C - .align 2, 0 -_0801E1CC: .4byte gUnknown_2022938 -_0801E1D0: - bl sub_0800FFB0 - ldr r4, _0801E1F4 - ldr r0, [r4] - movs r1, #0xc8 - lsls r1, r1, #1 - adds r0, r0, r1 - bl sub_0801EDE0 - ldr r0, [r4] - movs r1, #4 - strh r1, [r0, #6] - movs r2, #0xdc - lsls r2, r2, #1 - adds r0, r0, r2 - strh r5, [r0] - b _0801E27C - .align 2, 0 -_0801E1F4: .4byte gUnknown_2022938 -_0801E1F8: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801E238 - bl sub_0801158C - cmp r0, #0 - bne _0801E238 - ldr r4, _0801E230 - ldr r1, [r4] - movs r0, #0xc8 - lsls r0, r0, #1 - adds r1, r1, r0 - movs r0, #0 - movs r2, #0x28 - bl SendBlock - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801E238 - ldr r1, [r4] - ldrb r0, [r1, #0x13] - cmp r0, #0 - bne _0801E234 - movs r0, #6 - b _0801E236 - .align 2, 0 -_0801E230: .4byte gUnknown_2022938 -_0801E234: - movs r0, #5 -_0801E236: - strh r0, [r1, #6] -_0801E238: - ldr r0, _0801E244 - ldrb r0, [r0] - cmp r0, #0 - bne _0801E27C - b _0801E250 - .align 2, 0 -_0801E244: .4byte gUnknown_30031C4 -_0801E248: - ldr r0, _0801E258 - ldrb r0, [r0] - cmp r0, #0 - bne _0801E25C -_0801E250: - movs r0, #9 - bl sub_0801E9F8 - b _0801E27C - .align 2, 0 -_0801E258: .4byte gUnknown_30031C4 -_0801E25C: - ldr r3, [r2] - movs r1, #0xdc - lsls r1, r1, #1 - adds r2, r3, r1 - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - lsls r0, r0, #0x10 - movs r1, #0x96 - lsls r1, r1, #0x11 - cmp r0, r1 - bls _0801E27C - movs r0, #0 - strh r0, [r2] - movs r0, #4 - strh r0, [r3, #6] -_0801E27C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0801E064 - - thumb_func_start sub_0801E284 -sub_0801E284: @ 0x0801E284 - push {r4, lr} - ldr r1, _0801E2A0 - ldr r0, [r1] - ldrh r0, [r0, #6] - adds r2, r1, #0 - cmp r0, #7 - bls _0801E294 - b _0801E3E0 -_0801E294: - lsls r0, r0, #2 - ldr r1, _0801E2A4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801E2A0: .4byte gUnknown_2022938 -_0801E2A4: .4byte _0801E2A8 -_0801E2A8: @ jump table - .4byte _0801E2C8 @ case 0 - .4byte _0801E2EC @ case 1 - .4byte _0801E30C @ case 2 - .4byte _0801E330 @ case 3 - .4byte _0801E364 @ case 4 - .4byte _0801E384 @ case 5 - .4byte _0801E3A8 @ case 6 - .4byte _0801E3CC @ case 7 -_0801E2C8: - ldr r0, _0801E2E4 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801E2D6 - b _0801E3E0 -_0801E2D6: - movs r0, #7 - movs r1, #0 - bl sub_0801F3FC - ldr r0, _0801E2E8 - ldr r1, [r0] - b _0801E3BE - .align 2, 0 -_0801E2E4: .4byte sub_0801F0C4 -_0801E2E8: .4byte gUnknown_2022938 -_0801E2EC: - movs r0, #0 - bl sub_0801F454 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801E3E0 - movs r0, #0x12 - movs r1, #0 - bl sub_0801F3FC - ldr r0, _0801E308 - ldr r1, [r0] - b _0801E3BE - .align 2, 0 -_0801E308: .4byte gUnknown_2022938 -_0801E30C: - movs r0, #0 - bl sub_0801F454 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801E3E0 - ldr r4, _0801E32C - ldr r0, [r4] - movs r1, #0xc8 - lsls r1, r1, #1 - adds r0, r0, r1 - bl sub_0801EDB8 - ldr r1, [r4] - b _0801E3BE - .align 2, 0 -_0801E32C: .4byte gUnknown_2022938 -_0801E330: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801E3E0 - bl sub_0801158C - cmp r0, #0 - bne _0801E3E0 - ldr r4, _0801E360 - ldr r1, [r4] - movs r0, #0xc8 - lsls r0, r0, #1 - adds r1, r1, r0 - movs r0, #0 - movs r2, #0x28 - bl SendBlock - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801E3E0 - ldr r1, [r4] - b _0801E3BE - .align 2, 0 -_0801E360: .4byte gUnknown_2022938 -_0801E364: - bl GetBlockReceivedStatus - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0801E3E0 - bl sub_0801158C - cmp r0, #0 - bne _0801E3E0 - ldr r0, _0801E380 - ldr r1, [r0] - b _0801E3BE - .align 2, 0 -_0801E380: .4byte gUnknown_2022938 -_0801E384: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801E3E0 - bl sub_0801158C - adds r4, r0, #0 - cmp r4, #0 - bne _0801E3E0 - bl sub_0800A7F8 - ldr r0, _0801E3A4 - ldr r1, [r0] - strh r4, [r1, #0xa] - b _0801E3BE - .align 2, 0 -_0801E3A4: .4byte gUnknown_2022938 -_0801E3A8: - ldr r1, [r2] - ldrh r0, [r1, #0xa] - cmp r0, #0x95 - bhi _0801E3B4 - adds r0, #1 - strh r0, [r1, #0xa] -_0801E3B4: - ldr r0, _0801E3C8 - ldrb r0, [r0] - cmp r0, #0 - bne _0801E3E0 - ldr r1, [r2] -_0801E3BE: - ldrh r0, [r1, #6] - adds r0, #1 - strh r0, [r1, #6] - b _0801E3E0 - .align 2, 0 -_0801E3C8: .4byte gUnknown_30031C4 -_0801E3CC: - ldr r1, [r2] - ldrh r0, [r1, #0xa] - cmp r0, #0x95 - bls _0801E3DC - movs r0, #9 - bl sub_0801E9F8 - b _0801E3E0 -_0801E3DC: - adds r0, #1 - strh r0, [r1, #0xa] -_0801E3E0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0801E284 - - thumb_func_start sub_0801E3E8 -sub_0801E3E8: @ 0x0801E3E8 - push {r4, r5, lr} - ldr r5, _0801E400 - ldr r1, [r5] - ldrh r0, [r1, #6] - cmp r0, #1 - beq _0801E428 - cmp r0, #1 - bgt _0801E404 - cmp r0, #0 - beq _0801E40E - b _0801E486 - .align 2, 0 -_0801E400: .4byte gUnknown_2022938 -_0801E404: - cmp r0, #2 - beq _0801E452 - cmp r0, #3 - beq _0801E474 - b _0801E486 -_0801E40E: - ldr r0, _0801E424 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801E486 - movs r0, #7 - movs r1, #0 - bl sub_0801F3FC - b _0801E464 - .align 2, 0 -_0801E424: .4byte sub_0801F0C4 -_0801E428: - movs r0, #0 - bl sub_0801F454 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801E486 - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801E486 - bl sub_0801158C - adds r4, r0, #0 - cmp r4, #0 - bne _0801E486 - bl sub_0800A7F8 - ldr r1, [r5] - strh r4, [r1, #0xa] - b _0801E466 -_0801E452: - ldrh r0, [r1, #0xa] - cmp r0, #0x95 - bhi _0801E45C - adds r0, #1 - strh r0, [r1, #0xa] -_0801E45C: - ldr r0, _0801E470 - ldrb r0, [r0] - cmp r0, #0 - bne _0801E486 -_0801E464: - ldr r1, [r5] -_0801E466: - ldrh r0, [r1, #6] - adds r0, #1 - strh r0, [r1, #6] - b _0801E486 - .align 2, 0 -_0801E470: .4byte gUnknown_30031C4 -_0801E474: - ldrh r0, [r1, #0xa] - cmp r0, #0x95 - bls _0801E482 - movs r0, #9 - bl sub_0801E9F8 - b _0801E486 -_0801E482: - adds r0, #1 - strh r0, [r1, #0xa] -_0801E486: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_0801E3E8 - - thumb_func_start sub_0801E48C -sub_0801E48C: @ 0x0801E48C - push {r4, lr} - ldr r1, _0801E4A4 - ldr r0, [r1] - ldrh r0, [r0, #6] - adds r2, r1, #0 - cmp r0, #4 - bhi _0801E580 - lsls r0, r0, #2 - ldr r1, _0801E4A8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801E4A4: .4byte gUnknown_2022938 -_0801E4A8: .4byte _0801E4AC -_0801E4AC: @ jump table - .4byte _0801E4C0 @ case 0 - .4byte _0801E4EC @ case 1 - .4byte _0801E514 @ case 2 - .4byte _0801E548 @ case 3 - .4byte _0801E56C @ case 4 -_0801E4C0: - ldr r0, _0801E4E4 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801E580 - ldr r4, _0801E4E8 - ldr r0, [r4] - ldrb r0, [r0, #0x13] - cmp r0, #0 - beq _0801E4DE - movs r0, #7 - movs r1, #0 - bl sub_0801F3FC -_0801E4DE: - ldr r1, [r4] - b _0801E55E - .align 2, 0 -_0801E4E4: .4byte sub_0801F0C4 -_0801E4E8: .4byte gUnknown_2022938 -_0801E4EC: - movs r0, #0 - bl sub_0801F454 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801E580 - ldr r4, _0801E510 - ldr r0, [r4] - ldrb r0, [r0, #0x13] - cmp r0, #0 - beq _0801E50A - movs r0, #0x13 - movs r1, #0 - bl sub_0801F3FC -_0801E50A: - ldr r1, [r4] - b _0801E55E - .align 2, 0 -_0801E510: .4byte gUnknown_2022938 -_0801E514: - movs r0, #0 - bl sub_0801F454 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0801E580 - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801E580 - bl sub_0801158C - adds r4, r0, #0 - cmp r4, #0 - bne _0801E580 - bl sub_0800A7F8 - ldr r0, _0801E544 - ldr r1, [r0] - strh r4, [r1, #0xa] - b _0801E55E - .align 2, 0 -_0801E544: .4byte gUnknown_2022938 -_0801E548: - ldr r1, [r2] - ldrh r0, [r1, #0xa] - cmp r0, #0x95 - bhi _0801E554 - adds r0, #1 - strh r0, [r1, #0xa] -_0801E554: - ldr r0, _0801E568 - ldrb r0, [r0] - cmp r0, #0 - bne _0801E580 - ldr r1, [r2] -_0801E55E: - ldrh r0, [r1, #6] - adds r0, #1 - strh r0, [r1, #6] - b _0801E580 - .align 2, 0 -_0801E568: .4byte gUnknown_30031C4 -_0801E56C: - ldr r1, [r2] - ldrh r0, [r1, #0xa] - cmp r0, #0x95 - bls _0801E57C - movs r0, #9 - bl sub_0801E9F8 - b _0801E580 -_0801E57C: - adds r0, #1 - strh r0, [r1, #0xa] -_0801E580: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0801E48C - - thumb_func_start sub_0801E588 -sub_0801E588: @ 0x0801E588 - push {r4, lr} - ldr r1, _0801E5A0 - ldr r0, [r1] - ldrh r0, [r0, #6] - adds r4, r1, #0 - cmp r0, #4 - bhi _0801E654 - lsls r0, r0, #2 - ldr r1, _0801E5A4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801E5A0: .4byte gUnknown_2022938 -_0801E5A4: .4byte _0801E5A8 -_0801E5A8: @ jump table - .4byte _0801E5BC @ case 0 - .4byte _0801E5E4 @ case 1 - .4byte _0801E618 @ case 2 - .4byte _0801E626 @ case 3 - .4byte _0801E644 @ case 4 -_0801E5BC: - ldr r0, _0801E5CC - ldrb r0, [r0] - cmp r0, #0 - bne _0801E5D0 - movs r0, #1 - bl sub_0801E9F8 - b _0801E654 - .align 2, 0 -_0801E5CC: .4byte gUnknown_30031C4 -_0801E5D0: - ldr r0, [r4] - movs r1, #0xc8 - lsls r1, r1, #1 - adds r0, r0, r1 - bl sub_0801ED5C - ldr r1, [r4] - ldrh r0, [r1, #6] - adds r0, #1 - strh r0, [r1, #6] -_0801E5E4: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0801E654 - bl sub_0801158C - cmp r0, #0 - bne _0801E654 - ldr r4, _0801E614 - ldr r1, [r4] - movs r0, #0xc8 - lsls r0, r0, #1 - adds r1, r1, r0 - movs r0, #0 - movs r2, #0x28 - bl SendBlock - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801E654 - ldr r1, [r4] - b _0801E636 - .align 2, 0 -_0801E614: .4byte gUnknown_2022938 -_0801E618: - bl sub_0801EC20 - movs r0, #8 - movs r1, #0 - bl sub_0801F3FC - b _0801E632 -_0801E626: - movs r0, #0 - bl sub_0801F454 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801E654 -_0801E632: - ldr r0, _0801E640 - ldr r1, [r0] -_0801E636: - ldrh r0, [r1, #6] - adds r0, #1 - strh r0, [r1, #6] - b _0801E654 - .align 2, 0 -_0801E640: .4byte gUnknown_2022938 -_0801E644: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801E654 - movs r0, #1 - bl sub_0801E9F8 -_0801E654: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0801E588 - - thumb_func_start sub_0801E65C -sub_0801E65C: @ 0x0801E65C - push {r4, lr} - ldr r0, _0801E674 - ldr r0, [r0] - ldrh r0, [r0, #6] - cmp r0, #6 - bls _0801E66A - b _0801E78C -_0801E66A: - lsls r0, r0, #2 - ldr r1, _0801E678 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801E674: .4byte gUnknown_2022938 -_0801E678: .4byte _0801E67C -_0801E67C: @ jump table - .4byte _0801E698 @ case 0 - .4byte _0801E6C8 @ case 1 - .4byte _0801E71C @ case 2 - .4byte _0801E734 @ case 3 - .4byte _0801E744 @ case 4 - .4byte _0801E758 @ case 5 - .4byte _0801E770 @ case 6 -_0801E698: - bl sub_0801EBD4 - cmp r0, #0 - beq _0801E6B4 - movs r0, #9 - movs r1, #0 - bl sub_0801F3FC - ldr r0, _0801E6B0 - ldr r1, [r0] - movs r0, #2 - b _0801E78A - .align 2, 0 -_0801E6B0: .4byte gUnknown_2022938 -_0801E6B4: - movs r0, #0xd - movs r1, #0 - bl sub_0801F3FC - ldr r0, _0801E6C4 - ldr r1, [r0] - movs r0, #5 - b _0801E78A - .align 2, 0 -_0801E6C4: .4byte gUnknown_2022938 -_0801E6C8: - ldr r0, _0801E6E8 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0801E6F0 - bl sub_0801EBF0 - movs r0, #0xb - movs r1, #0 - bl sub_0801F3FC - ldr r0, _0801E6EC - ldr r1, [r0] - movs r0, #3 - b _0801E78A - .align 2, 0 -_0801E6E8: .4byte gUnknown_3002360 -_0801E6EC: .4byte gUnknown_2022938 -_0801E6F0: - movs r4, #2 - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - beq _0801E6FE - movs r0, #0xa - b _0801E77E -_0801E6FE: - bl sub_0801EA08 - cmp r0, #0 - beq _0801E78C - movs r0, #1 - movs r1, #0 - bl sub_0801F3FC - ldr r0, _0801E718 - ldr r0, [r0] - strh r4, [r0, #6] - b _0801E78C - .align 2, 0 -_0801E718: .4byte gUnknown_2022938 -_0801E71C: - movs r0, #0 - bl sub_0801F454 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801E78C - ldr r0, _0801E730 - ldr r1, [r0] - movs r0, #1 - b _0801E78A - .align 2, 0 -_0801E730: .4byte gUnknown_2022938 -_0801E734: - movs r0, #0 - bl sub_0801F454 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801E78C - movs r0, #0xa - b _0801E77E -_0801E744: - movs r0, #0 - bl sub_0801F454 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801E78C - movs r0, #1 - bl sub_0801E9F8 - b _0801E78C -_0801E758: - movs r0, #0 - bl sub_0801F454 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801E78C - ldr r0, _0801E76C - ldr r1, [r0] - movs r0, #6 - b _0801E78A - .align 2, 0 -_0801E76C: .4byte gUnknown_2022938 -_0801E770: - ldr r0, _0801E794 - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _0801E78C - movs r0, #7 -_0801E77E: - movs r1, #0 - bl sub_0801F3FC - ldr r0, _0801E798 - ldr r1, [r0] - movs r0, #4 -_0801E78A: - strh r0, [r1, #6] -_0801E78C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801E794: .4byte gUnknown_3002360 -_0801E798: .4byte gUnknown_2022938 - thumb_func_end sub_0801E65C - - thumb_func_start sub_0801E79C -sub_0801E79C: @ 0x0801E79C - push {r4, lr} - sub sp, #4 - ldr r1, _0801E7B8 - ldr r0, [r1] - ldrh r0, [r0, #6] - adds r4, r1, #0 - cmp r0, #0xd - bls _0801E7AE - b _0801E9E6 -_0801E7AE: - lsls r0, r0, #2 - ldr r1, _0801E7BC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801E7B8: .4byte gUnknown_2022938 -_0801E7BC: .4byte _0801E7C0 -_0801E7C0: @ jump table - .4byte _0801E7F8 @ case 0 - .4byte _0801E812 @ case 1 - .4byte _0801E838 @ case 2 - .4byte _0801E87C @ case 3 - .4byte _0801E8A0 @ case 4 - .4byte _0801E8BC @ case 5 - .4byte _0801E900 @ case 6 - .4byte _0801E928 @ case 7 - .4byte _0801E94C @ case 8 - .4byte _0801E964 @ case 9 - .4byte _0801E988 @ case 10 - .4byte _0801E996 @ case 11 - .4byte _0801E9AC @ case 12 - .4byte _0801E9CC @ case 13 -_0801E7F8: - ldr r1, [r4] - ldrb r0, [r1, #0x18] - cmp r0, #0 - bne _0801E802 - b _0801E9A6 -_0801E802: - movs r0, #7 - movs r1, #0 - bl sub_0801F3FC - ldr r1, [r4] - movs r0, #1 - strh r0, [r1, #6] - b _0801E9E6 -_0801E812: - movs r0, #0 - bl sub_0801F454 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801E820 - b _0801E9E6 -_0801E820: - movs r0, #0xe - movs r1, #0 - bl sub_0801F3FC - ldr r0, _0801E834 - ldr r1, [r0] - movs r0, #2 - strh r0, [r1, #6] - b _0801E9E6 - .align 2, 0 -_0801E834: .4byte gUnknown_2022938 -_0801E838: - bl sub_0801FD30 - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _0801E864 - cmp r1, #0 - bgt _0801E852 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0801E858 - b _0801E9E6 -_0801E852: - cmp r1, #1 - beq _0801E858 - b _0801E9E6 -_0801E858: - ldr r0, _0801E860 - ldr r1, [r0] - b _0801E9A6 - .align 2, 0 -_0801E860: .4byte gUnknown_2022938 -_0801E864: - movs r0, #7 - movs r1, #0 - bl sub_0801F3FC - ldr r0, _0801E878 - ldr r1, [r0] - movs r0, #3 - strh r0, [r1, #6] - b _0801E9E6 - .align 2, 0 -_0801E878: .4byte gUnknown_2022938 -_0801E87C: - movs r0, #0 - bl sub_0801F454 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801E88A - b _0801E9E6 -_0801E88A: - movs r0, #0xf - movs r1, #0 - bl sub_0801F3FC - ldr r0, _0801E89C - ldr r1, [r0] - movs r0, #4 - strh r0, [r1, #6] - b _0801E9E6 - .align 2, 0 -_0801E89C: .4byte gUnknown_2022938 -_0801E8A0: - movs r0, #0 - bl sub_0801F454 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801E8AE - b _0801E9E6 -_0801E8AE: - ldr r0, _0801E8B8 - ldr r1, [r0] - movs r0, #5 - strh r0, [r1, #6] - b _0801E9E6 - .align 2, 0 -_0801E8B8: .4byte gUnknown_2022938 -_0801E8BC: - bl sub_0801FD30 - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _0801E8E8 - cmp r1, #0 - bgt _0801E8D6 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0801E8DC - b _0801E9E6 -_0801E8D6: - cmp r1, #1 - beq _0801E8DC - b _0801E9E6 -_0801E8DC: - ldr r0, _0801E8E4 - ldr r1, [r0] - b _0801E9A6 - .align 2, 0 -_0801E8E4: .4byte gUnknown_2022938 -_0801E8E8: - movs r0, #7 - movs r1, #0 - bl sub_0801F3FC - ldr r0, _0801E8FC - ldr r1, [r0] - movs r0, #6 - strh r0, [r1, #6] - b _0801E9E6 - .align 2, 0 -_0801E8FC: .4byte gUnknown_2022938 -_0801E900: - movs r0, #0 - bl sub_0801F454 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801E9E6 - movs r0, #0x10 - movs r1, #0 - bl sub_0801F3FC - bl sub_0801EC3C - ldr r0, _0801E924 - ldr r1, [r0] - movs r0, #7 - strh r0, [r1, #6] - b _0801E9E6 - .align 2, 0 -_0801E924: .4byte gUnknown_2022938 -_0801E928: - movs r0, #0 - bl sub_0801F454 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801E9E6 - bl SetContinueGameWarpStatusToDynamicWarp - movs r0, #0 - bl TrySavingData - ldr r0, _0801E948 - ldr r1, [r0] - movs r0, #8 - strh r0, [r1, #6] - b _0801E9E6 - .align 2, 0 -_0801E948: .4byte gUnknown_2022938 -_0801E94C: - movs r0, #0x11 - movs r1, #0 - bl sub_0801F3FC - ldr r0, _0801E960 - ldr r1, [r0] - movs r0, #9 - strh r0, [r1, #6] - b _0801E9E6 - .align 2, 0 -_0801E960: .4byte gUnknown_2022938 -_0801E964: - movs r0, #0 - bl sub_0801F454 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801E9E6 - movs r0, #0x37 - bl sub_080A306C - bl sub_08076780 - ldr r0, _0801E984 - ldr r1, [r0] - movs r0, #0xa - strh r0, [r1, #6] - b _0801E9E6 - .align 2, 0 -_0801E984: .4byte gUnknown_2022938 -_0801E988: - ldr r1, [r4] - movs r0, #0 - strb r0, [r1, #0x19] - ldr r1, [r4] - movs r0, #0xb - strh r0, [r1, #6] - b _0801E9E6 -_0801E996: - ldr r0, [r4] - ldrb r1, [r0, #0x19] - adds r1, #1 - strb r1, [r0, #0x19] - ldr r1, [r4] - ldrb r0, [r1, #0x19] - cmp r0, #0x78 - bls _0801E9E6 -_0801E9A6: - movs r0, #0xc - strh r0, [r1, #6] - b _0801E9E6 -_0801E9AC: - movs r1, #1 - rsbs r1, r1, #0 - movs r0, #0 - str r0, [sp] - adds r0, r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _0801E9C8 - ldr r1, [r0] - movs r0, #0xd - strh r0, [r1, #6] - b _0801E9E6 - .align 2, 0 -_0801E9C8: .4byte gUnknown_2022938 -_0801E9CC: - ldr r0, _0801E9F0 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0801E9E6 - bl sub_0801F354 - bl sub_0801DC54 - ldr r0, _0801E9F4 - bl SetMainCallback2 -_0801E9E6: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801E9F0: .4byte gUnknown_2037C74 -_0801E9F4: .4byte sub_08085A30 - thumb_func_end sub_0801E79C - - thumb_func_start sub_0801E9F8 -sub_0801E9F8: @ 0x0801E9F8 - ldr r1, _0801EA04 - ldr r1, [r1] - movs r2, #0 - strh r0, [r1, #4] - strh r2, [r1, #6] - bx lr - .align 2, 0 -_0801EA04: .4byte gUnknown_2022938 - thumb_func_end sub_0801E9F8 - - thumb_func_start sub_0801EA08 -sub_0801EA08: @ 0x0801EA08 - push {lr} - ldr r0, _0801EA38 - ldrh r2, [r0, #0x30] - movs r0, #0x40 - ands r0, r2 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #0 - bne _0801EA92 - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - beq _0801EA48 - ldr r0, _0801EA3C - ldr r2, [r0] - ldr r1, _0801EA40 - ldrb r0, [r2, #0x10] - adds r0, r0, r1 - ldrb r1, [r2, #0x12] - ldrb r0, [r0] - cmp r1, r0 - bhs _0801EA44 - adds r0, r1, #1 - b _0801EAAC - .align 2, 0 -_0801EA38: .4byte gUnknown_3002360 -_0801EA3C: .4byte gUnknown_2022938 -_0801EA40: .4byte gUnknown_82C508C -_0801EA44: - strb r3, [r2, #0x12] - b _0801EAAE -_0801EA48: - ldr r0, _0801EA6C - ldr r1, [r0] - ldrb r0, [r1, #0x10] - cmp r0, #4 - beq _0801EA8E - movs r0, #0x20 - ands r0, r2 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #0 - beq _0801EA76 - ldrb r0, [r1, #0x11] - cmp r0, #0 - beq _0801EA70 - subs r0, #1 - strb r0, [r1, #0x11] - b _0801EAAE - .align 2, 0 -_0801EA6C: .4byte gUnknown_2022938 -_0801EA70: - movs r0, #4 - strb r0, [r1, #0x11] - b _0801EAAE -_0801EA76: - movs r0, #0x10 - ands r0, r2 - cmp r0, #0 - beq _0801EA8E - ldrb r0, [r1, #0x11] - cmp r0, #3 - bhi _0801EA8A - adds r0, #1 - strb r0, [r1, #0x11] - b _0801EAAE -_0801EA8A: - strb r3, [r1, #0x11] - b _0801EAAE -_0801EA8E: - movs r0, #0 - b _0801EAB0 -_0801EA92: - ldr r0, _0801EAA0 - ldr r2, [r0] - ldrb r0, [r2, #0x12] - cmp r0, #0 - beq _0801EAA4 - subs r0, #1 - b _0801EAAC - .align 2, 0 -_0801EAA0: .4byte gUnknown_2022938 -_0801EAA4: - ldr r0, _0801EAB4 - ldrb r1, [r2, #0x10] - adds r1, r1, r0 - ldrb r0, [r1] -_0801EAAC: - strb r0, [r2, #0x12] -_0801EAAE: - movs r0, #1 -_0801EAB0: - pop {r1} - bx r1 - .align 2, 0 -_0801EAB4: .4byte gUnknown_82C508C - thumb_func_end sub_0801EA08 - - thumb_func_start sub_0801EAB8 -sub_0801EAB8: @ 0x0801EAB8 - push {r4, r5, r6, lr} - ldr r0, _0801EAF4 - ldr r5, [r0] - ldrb r0, [r5, #0x10] - cmp r0, #4 - beq _0801EAFC - ldr r3, _0801EAF8 - ldrb r1, [r5, #0x12] - lsls r1, r1, #2 - adds r2, r0, #0 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r1, r1, r0 - adds r1, r1, r3 - ldr r4, [r1] - ldrb r0, [r5, #0x11] - cmp r0, #0 - beq _0801EAF0 - adds r1, r0, #0 -_0801EAE0: - ldrb r0, [r4] - cmp r0, #0xf9 - bne _0801EAE8 - adds r4, #1 -_0801EAE8: - adds r4, #1 - subs r1, #1 - cmp r1, #0 - bne _0801EAE0 -_0801EAF0: - movs r5, #1 - b _0801EB12 - .align 2, 0 -_0801EAF4: .4byte gUnknown_2022938 -_0801EAF8: .4byte gUnknown_82C5180 -_0801EAFC: - ldrb r1, [r5, #0x12] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r1 - adds r0, #0xb9 - adds r4, r5, r0 - adds r0, r4, #0 - bl StringLength_Multibyte - adds r5, r0, #0 -_0801EB12: - ldr r6, _0801EB70 - ldr r1, [r6] - ldrb r0, [r1, #0x15] - strb r0, [r1, #0x14] - cmp r4, #0 - beq _0801EB6A - bl sub_0801EC94 - adds r2, r0, #0 - subs r5, #1 - movs r0, #1 - rsbs r0, r0, #0 - cmp r5, r0 - beq _0801EB66 - ldr r0, [r6] - ldrb r0, [r0, #0x15] - cmp r0, #0xe - bhi _0801EB66 - adds r3, r6, #0 -_0801EB38: - ldrb r0, [r4] - cmp r0, #0xf9 - bne _0801EB44 - strb r0, [r2] - adds r4, #1 - adds r2, #1 -_0801EB44: - ldrb r0, [r4] - strb r0, [r2] - adds r4, #1 - adds r2, #1 - ldr r1, [r3] - ldrb r0, [r1, #0x15] - adds r0, #1 - strb r0, [r1, #0x15] - subs r5, #1 - movs r0, #1 - rsbs r0, r0, #0 - cmp r5, r0 - beq _0801EB66 - ldr r0, [r3] - ldrb r0, [r0, #0x15] - cmp r0, #0xe - bls _0801EB38 -_0801EB66: - movs r0, #0xff - strb r0, [r2] -_0801EB6A: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0801EB70: .4byte gUnknown_2022938 - thumb_func_end sub_0801EAB8 - - thumb_func_start sub_0801EB74 -sub_0801EB74: @ 0x0801EB74 - push {r4, lr} - ldr r4, _0801EB9C - ldr r1, [r4] - ldrb r0, [r1, #0x15] - strb r0, [r1, #0x14] - ldr r0, [r4] - ldrb r0, [r0, #0x15] - cmp r0, #0 - beq _0801EB96 - bl sub_0801ECB8 - movs r1, #0xff - strb r1, [r0] - ldr r1, [r4] - ldrb r0, [r1, #0x15] - subs r0, #1 - strb r0, [r1, #0x15] -_0801EB96: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801EB9C: .4byte gUnknown_2022938 - thumb_func_end sub_0801EB74 - - thumb_func_start sub_0801EBA0 -sub_0801EBA0: @ 0x0801EBA0 - push {lr} - ldr r0, _0801EBCC - ldr r1, [r0] - ldrb r0, [r1, #0x15] - subs r0, #1 - strb r0, [r1, #0x14] - bl sub_0801ECB8 - adds r2, r0, #0 - ldrb r0, [r2] - cmp r0, #0xf9 - beq _0801EBC8 - cmp r0, #0xee - bhi _0801EBC8 - ldr r1, _0801EBD0 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _0801EBC8 - strb r0, [r2] -_0801EBC8: - pop {r0} - bx r0 - .align 2, 0 -_0801EBCC: .4byte gUnknown_2022938 -_0801EBD0: .4byte gUnknown_82C5091 - thumb_func_end sub_0801EBA0 - - thumb_func_start sub_0801EBD4 -sub_0801EBD4: @ 0x0801EBD4 - push {lr} - ldr r0, _0801EBE4 - ldr r0, [r0] - ldrb r0, [r0, #0x15] - cmp r0, #0 - bne _0801EBE8 - movs r0, #0 - b _0801EBEA - .align 2, 0 -_0801EBE4: .4byte gUnknown_2022938 -_0801EBE8: - movs r0, #1 -_0801EBEA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801EBD4 - - thumb_func_start sub_0801EBF0 -sub_0801EBF0: @ 0x0801EBF0 - push {r4, lr} - bl sub_0801EF14 - adds r1, r0, #0 - ldr r4, _0801EC1C - ldr r0, [r4] - ldrb r3, [r0, #0x12] - lsls r2, r3, #2 - adds r2, r2, r3 - lsls r2, r2, #2 - adds r2, r2, r3 - adds r2, #0xb9 - adds r0, r0, r2 - bl StringCopy - ldr r1, [r4] - movs r0, #1 - strb r0, [r1, #0x18] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801EC1C: .4byte gUnknown_2022938 - thumb_func_end sub_0801EBF0 - - thumb_func_start sub_0801EC20 -sub_0801EC20: @ 0x0801EC20 - ldr r1, _0801EC38 - ldr r2, [r1] - movs r0, #0xff - strb r0, [r2, #0x1a] - ldr r2, [r1] - movs r3, #0 - movs r0, #0xf - strb r0, [r2, #0x14] - ldr r0, [r1] - strb r3, [r0, #0x15] - bx lr - .align 2, 0 -_0801EC38: .4byte gUnknown_2022938 - thumb_func_end sub_0801EC20 - - thumb_func_start sub_0801EC3C -sub_0801EC3C: @ 0x0801EC3C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _0801EC70 - mov r8, r0 - ldr r7, _0801EC74 - movs r6, #0xb9 - ldr r5, _0801EC78 - movs r4, #9 -_0801EC4E: - mov r1, r8 - ldr r0, [r1] - adds r0, r0, r5 - ldr r1, [r7] - adds r1, r1, r6 - bl StringCopy - adds r6, #0x15 - adds r5, #0x15 - subs r4, #1 - cmp r4, #0 - bge _0801EC4E - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0801EC70: .4byte gUnknown_3005AEC -_0801EC74: .4byte gUnknown_2022938 -_0801EC78: .4byte 0x00003C88 - thumb_func_end sub_0801EC3C - - thumb_func_start sub_0801EC7C -sub_0801EC7C: @ 0x0801EC7C - ldr r2, _0801EC90 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r0 - adds r1, #0xb9 - ldr r0, [r2] - adds r0, r0, r1 - bx lr - .align 2, 0 -_0801EC90: .4byte gUnknown_2022938 - thumb_func_end sub_0801EC7C - - thumb_func_start sub_0801EC94 -sub_0801EC94: @ 0x0801EC94 - push {lr} - ldr r0, _0801ECB4 - ldr r0, [r0] - adds r1, r0, #0 - adds r1, #0x1a - ldrb r0, [r0, #0x1a] - cmp r0, #0xff - beq _0801ECAC -_0801ECA4: - adds r1, #1 - ldrb r0, [r1] - cmp r0, #0xff - bne _0801ECA4 -_0801ECAC: - adds r0, r1, #0 - pop {r1} - bx r1 - .align 2, 0 -_0801ECB4: .4byte gUnknown_2022938 - thumb_func_end sub_0801EC94 - - thumb_func_start sub_0801ECB8 -sub_0801ECB8: @ 0x0801ECB8 - push {lr} - ldr r0, _0801ECE4 - ldr r0, [r0] - adds r2, r0, #0 - adds r2, #0x1a - adds r1, r2, #0 - ldrb r0, [r0, #0x1a] - cmp r0, #0xff - beq _0801ECDC -_0801ECCA: - adds r2, r1, #0 - ldrb r0, [r2] - cmp r0, #0xf9 - bne _0801ECD4 - adds r1, r2, #1 -_0801ECD4: - adds r1, #1 - ldrb r0, [r1] - cmp r0, #0xff - bne _0801ECCA -_0801ECDC: - adds r0, r2, #0 - pop {r1} - bx r1 - .align 2, 0 -_0801ECE4: .4byte gUnknown_2022938 - thumb_func_end sub_0801ECB8 - - thumb_func_start sub_0801ECE8 -sub_0801ECE8: @ 0x0801ECE8 - push {r4, lr} - ldr r4, _0801ED28 - ldr r0, [r4] - adds r0, #0x1a - bl StringLength_Multibyte - adds r2, r0, #0 - ldr r0, [r4] - adds r1, r0, #0 - adds r1, #0x1a - movs r4, #0 - cmp r2, #0xa - bls _0801ED1C - subs r2, #0xa - movs r3, #0 - cmp r4, r2 - bhs _0801ED1C -_0801ED0A: - ldrb r0, [r1] - cmp r0, #0xf9 - bne _0801ED12 - adds r1, #1 -_0801ED12: - adds r1, #1 - adds r4, #1 - adds r3, #1 - cmp r3, r2 - blo _0801ED0A -_0801ED1C: - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0801ED28: .4byte gUnknown_2022938 - thumb_func_end sub_0801ECE8 - - thumb_func_start sub_0801ED2C -sub_0801ED2C: @ 0x0801ED2C - movs r1, #0 - strb r1, [r0] - bx lr - .align 2, 0 - thumb_func_end sub_0801ED2C - - thumb_func_start sub_0801ED34 -sub_0801ED34: @ 0x0801ED34 - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - strb r0, [r4] - adds r0, r4, #1 - ldr r1, _0801ED54 - ldr r1, [r1] - bl StringCopy - ldr r0, _0801ED58 - ldr r0, [r0] - ldrb r0, [r0, #0x13] - strb r0, [r4, #9] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801ED54: .4byte gUnknown_3005AF0 -_0801ED58: .4byte gUnknown_2022938 - thumb_func_end sub_0801ED34 - - thumb_func_start sub_0801ED5C -sub_0801ED5C: @ 0x0801ED5C - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4] - adds r0, r4, #1 - ldr r1, _0801ED84 - ldr r1, [r1] - bl StringCopy - adds r4, #9 - ldr r0, _0801ED88 - ldr r1, [r0] - adds r1, #0x1a - adds r0, r4, #0 - bl StringCopy - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801ED84: .4byte gUnknown_3005AF0 -_0801ED88: .4byte gUnknown_2022938 - thumb_func_end sub_0801ED5C - - thumb_func_start sub_0801ED8C -sub_0801ED8C: @ 0x0801ED8C - push {r4, lr} - adds r4, r0, #0 - movs r0, #3 - strb r0, [r4] - adds r0, r4, #1 - ldr r1, _0801EDB0 - ldr r1, [r1] - bl StringCopy - ldr r0, _0801EDB4 - ldr r0, [r0] - ldrb r0, [r0, #0x13] - strb r0, [r4, #9] - bl sub_08011540 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801EDB0: .4byte gUnknown_3005AF0 -_0801EDB4: .4byte gUnknown_2022938 - thumb_func_end sub_0801ED8C - - thumb_func_start sub_0801EDB8 -sub_0801EDB8: @ 0x0801EDB8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #4 - strb r0, [r4] - adds r0, r4, #1 - ldr r1, _0801EDD8 - ldr r1, [r1] - bl StringCopy - ldr r0, _0801EDDC - ldr r0, [r0] - ldrb r0, [r0, #0x13] - strb r0, [r4, #9] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801EDD8: .4byte gUnknown_3005AF0 -_0801EDDC: .4byte gUnknown_2022938 - thumb_func_end sub_0801EDB8 - - thumb_func_start sub_0801EDE0 -sub_0801EDE0: @ 0x0801EDE0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #5 - strb r0, [r4] - adds r0, r4, #1 - ldr r1, _0801EE00 - ldr r1, [r1] - bl StringCopy - ldr r0, _0801EE04 - ldr r0, [r0] - ldrb r0, [r0, #0x13] - strb r0, [r4, #9] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801EE00: .4byte gUnknown_3005AF0 -_0801EE04: .4byte gUnknown_2022938 - thumb_func_end sub_0801EDE0 - - thumb_func_start sub_0801EE08 -sub_0801EE08: @ 0x0801EE08 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r4, r1, #0 - ldrb r0, [r4] - adds r1, r0, #0 - adds r5, r4, #1 - adds r4, r5, #0 - adds r4, #8 - cmp r0, #2 - beq _0801EE30 - cmp r0, #2 - bgt _0801EE26 - cmp r0, #1 - beq _0801EE54 - b _0801EEA8 -_0801EE26: - cmp r1, #3 - beq _0801EE7C - cmp r1, #5 - beq _0801EE70 - b _0801EEA8 -_0801EE30: - ldr r0, _0801EE4C - ldr r0, [r0] - ldrb r0, [r0, #0x13] - ldrb r1, [r5, #8] - cmp r0, r1 - beq _0801EEA8 - bl DynamicPlaceholderTextUtil_Reset - movs r0, #0 - adds r1, r5, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - ldr r1, _0801EE50 - b _0801EE96 - .align 2, 0 -_0801EE4C: .4byte gUnknown_2022938 -_0801EE50: .4byte gUnknown_85CC663 -_0801EE54: - adds r0, r6, #0 - adds r1, r5, #0 - movs r2, #0 - movs r3, #5 - bl StringCopyPadded - movs r1, #0xf0 - strb r1, [r0] - adds r0, #1 - adds r1, r4, #0 - bl StringCopy - movs r0, #1 - b _0801EEAA -_0801EE70: - ldr r0, _0801EEA0 - ldr r0, [r0] - adds r0, #0x79 - adds r1, r5, #0 - bl StringCopy -_0801EE7C: - ldr r0, _0801EEA0 - ldr r0, [r0] - ldrb r0, [r0, #0x13] - ldrb r4, [r4] - cmp r0, r4 - beq _0801EEA8 - bl DynamicPlaceholderTextUtil_Reset - movs r0, #0 - adds r1, r5, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - ldr r1, _0801EEA4 -_0801EE96: - adds r0, r6, #0 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - movs r0, #1 - b _0801EEAA - .align 2, 0 -_0801EEA0: .4byte gUnknown_2022938 -_0801EEA4: .4byte gUnknown_85CC672 -_0801EEA8: - movs r0, #0 -_0801EEAA: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_0801EE08 - - thumb_func_start sub_0801EEB0 -sub_0801EEB0: @ 0x0801EEB0 - ldr r0, _0801EEB8 - ldr r0, [r0] - ldrb r0, [r0, #0x10] - bx lr - .align 2, 0 -_0801EEB8: .4byte gUnknown_2022938 - thumb_func_end sub_0801EEB0 - - thumb_func_start sub_0801EEBC -sub_0801EEBC: @ 0x0801EEBC - ldr r2, _0801EECC - ldr r3, [r2] - ldrb r2, [r3, #0x11] - strb r2, [r0] - ldrb r0, [r3, #0x12] - strb r0, [r1] - bx lr - .align 2, 0 -_0801EECC: .4byte gUnknown_2022938 - thumb_func_end sub_0801EEBC - - thumb_func_start sub_0801EED0 -sub_0801EED0: @ 0x0801EED0 - ldr r0, _0801EED8 - ldr r0, [r0] - adds r0, #0x1a - bx lr - .align 2, 0 -_0801EED8: .4byte gUnknown_2022938 - thumb_func_end sub_0801EED0 - - thumb_func_start sub_0801EEDC -sub_0801EEDC: @ 0x0801EEDC - push {lr} - bl sub_0801EED0 - bl StringLength_Multibyte - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801EEDC - - thumb_func_start sub_0801EEEC -sub_0801EEEC: @ 0x0801EEEC - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0801EF04 - ldr r0, [r0] - ldrb r3, [r0, #0x15] - ldrb r2, [r0, #0x14] - subs r0, r3, r2 - cmp r0, #0 - bge _0801EF08 - rsbs r0, r0, #0 - str r3, [r4] - b _0801EF0A - .align 2, 0 -_0801EF04: .4byte gUnknown_2022938 -_0801EF08: - str r2, [r4] -_0801EF0A: - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0801EEEC - - thumb_func_start sub_0801EF14 -sub_0801EF14: @ 0x0801EF14 - push {lr} - bl sub_0801ECE8 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, _0801EF40 - ldr r0, [r0] - adds r1, r0, #0 - adds r1, #0x1a - cmp r2, #0 - beq _0801EF3A -_0801EF2A: - ldrb r0, [r1] - cmp r0, #0xf9 - bne _0801EF32 - adds r1, #1 -_0801EF32: - adds r1, #1 - subs r2, #1 - cmp r2, #0 - bne _0801EF2A -_0801EF3A: - adds r0, r1, #0 - pop {r1} - bx r1 - .align 2, 0 -_0801EF40: .4byte gUnknown_2022938 - thumb_func_end sub_0801EF14 - - thumb_func_start sub_0801EF44 -sub_0801EF44: @ 0x0801EF44 - push {r4, lr} - bl sub_0801ECE8 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, _0801EF7C - ldr r0, [r0] - adds r1, r0, #0 - adds r1, #0x1a - movs r2, #0 - movs r3, #0 - cmp r2, r4 - bhs _0801EF74 -_0801EF5E: - ldrb r0, [r1] - cmp r0, #0xf9 - bne _0801EF66 - adds r1, #1 -_0801EF66: - adds r1, #1 - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - adds r3, #1 - cmp r3, r4 - blo _0801EF5E -_0801EF74: - adds r0, r2, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0801EF7C: .4byte gUnknown_2022938 - thumb_func_end sub_0801EF44 - - thumb_func_start sub_0801EF80 -sub_0801EF80: @ 0x0801EF80 - ldr r0, _0801EF88 - ldr r0, [r0] - adds r0, #0x39 - bx lr - .align 2, 0 -_0801EF88: .4byte gUnknown_2022938 - thumb_func_end sub_0801EF80 - - thumb_func_start sub_0801EF8C -sub_0801EF8C: @ 0x0801EF8C - ldr r0, _0801EF94 - ldr r0, [r0] - ldrb r0, [r0, #0x16] - bx lr - .align 2, 0 -_0801EF94: .4byte gUnknown_2022938 - thumb_func_end sub_0801EF8C - - thumb_func_start sub_0801EF98 -sub_0801EF98: @ 0x0801EF98 - ldr r0, _0801EFA0 - ldr r0, [r0] - ldrb r0, [r0, #0x15] - bx lr - .align 2, 0 -_0801EFA0: .4byte gUnknown_2022938 - thumb_func_end sub_0801EF98 - - thumb_func_start sub_0801EFA4 -sub_0801EFA4: @ 0x0801EFA4 - push {lr} - bl sub_0801ECB8 - ldrb r1, [r0] - subs r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x4f - bhi _0801EFBA - movs r0, #0 - b _0801EFDC -_0801EFBA: - adds r0, r1, #0 - subs r0, #0x51 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x4f - bhi _0801EFCA - movs r0, #1 - b _0801EFDC -_0801EFCA: - adds r0, r1, #0 - adds r0, #0x45 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x33 - bls _0801EFDA - movs r0, #3 - b _0801EFDC -_0801EFDA: - movs r0, #2 -_0801EFDC: - pop {r1} - bx r1 - thumb_func_end sub_0801EFA4 - - thumb_func_start sub_0801EFE0 -sub_0801EFE0: @ 0x0801EFE0 - ldr r0, _0801EFE8 - ldr r0, [r0] - adds r0, #0x79 - bx lr - .align 2, 0 -_0801EFE8: .4byte gUnknown_2022938 - thumb_func_end sub_0801EFE0 - - thumb_func_start copy_strings_to_sav1 -copy_strings_to_sav1: @ 0x0801EFEC - push {r4, lr} - ldr r4, _0801F070 - ldr r0, [r4] - ldr r1, _0801F074 - adds r0, r0, r1 - ldr r1, _0801F078 - bl StringCopy - ldr r0, [r4] - ldr r1, _0801F07C - adds r0, r0, r1 - ldr r1, _0801F080 - bl StringCopy - ldr r0, [r4] - ldr r1, _0801F084 - adds r0, r0, r1 - ldr r1, _0801F088 - bl StringCopy - ldr r0, [r4] - ldr r1, _0801F08C - adds r0, r0, r1 - ldr r1, _0801F090 - bl StringCopy - ldr r0, [r4] - ldr r1, _0801F094 - adds r0, r0, r1 - ldr r1, _0801F098 - bl StringCopy - ldr r0, [r4] - ldr r1, _0801F09C - adds r0, r0, r1 - ldr r1, _0801F0A0 - bl StringCopy - ldr r0, [r4] - ldr r1, _0801F0A4 - adds r0, r0, r1 - ldr r1, _0801F0A8 - bl StringCopy - ldr r0, [r4] - ldr r1, _0801F0AC - adds r0, r0, r1 - ldr r1, _0801F0B0 - bl StringCopy - ldr r0, [r4] - ldr r1, _0801F0B4 - adds r0, r0, r1 - ldr r1, _0801F0B8 - bl StringCopy - ldr r0, [r4] - ldr r1, _0801F0BC - adds r0, r0, r1 - ldr r1, _0801F0C0 - bl StringCopy - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801F070: .4byte gUnknown_3005AEC -_0801F074: .4byte 0x00003C88 -_0801F078: .4byte gUnknown_85CC769 -_0801F07C: .4byte 0x00003C9D -_0801F080: .4byte gUnknown_85CC76F -_0801F084: .4byte 0x00003CB2 -_0801F088: .4byte gUnknown_85CC774 -_0801F08C: .4byte 0x00003CC7 -_0801F090: .4byte gUnknown_85CC779 -_0801F094: .4byte 0x00003CDC -_0801F098: .4byte gUnknown_85CC77E -_0801F09C: .4byte 0x00003CF1 -_0801F0A0: .4byte gUnknown_85CC783 -_0801F0A4: .4byte 0x00003D06 -_0801F0A8: .4byte gUnknown_85CC787 -_0801F0AC: .4byte 0x00003D1B -_0801F0B0: .4byte gUnknown_85CC78C -_0801F0B4: .4byte 0x00003D30 -_0801F0B8: .4byte gUnknown_85CC792 -_0801F0BC: .4byte 0x00003D45 -_0801F0C0: .4byte gUnknown_85CC798 - thumb_func_end copy_strings_to_sav1 - - thumb_func_start sub_0801F0C4 -sub_0801F0C4: @ 0x0801F0C4 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _0801F0E8 - adds r4, r0, r1 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #7 - bls _0801F0DE - b _0801F2D4 -_0801F0DE: - lsls r0, r0, #2 - ldr r1, _0801F0EC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801F0E8: .4byte gUnknown_3005B68 -_0801F0EC: .4byte _0801F0F0 -_0801F0F0: @ jump table - .4byte _0801F110 @ case 0 - .4byte _0801F11E @ case 1 - .4byte _0801F2B8 @ case 2 - .4byte _0801F16C @ case 3 - .4byte _0801F258 @ case 4 - .4byte _0801F290 @ case 5 - .4byte _0801F2A4 @ case 6 - .4byte _0801F248 @ case 7 -_0801F110: - ldr r0, _0801F144 - ldrb r0, [r0] - cmp r0, #0 - bne _0801F11A - b _0801F2AC -_0801F11A: - movs r0, #1 - strh r0, [r4] -_0801F11E: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r2, r0, #0 - strh r0, [r4, #8] - ldr r3, _0801F148 - ldr r0, [r3] - ldrb r1, [r0, #0xd] - movs r5, #8 - ldrsh r0, [r4, r5] - cmp r1, r0 - beq _0801F14C - movs r0, #2 - strh r0, [r4] - ldr r0, [r3] - strb r2, [r0, #0xd] - b _0801F2D4 - .align 2, 0 -_0801F144: .4byte gUnknown_30031C4 -_0801F148: .4byte gUnknown_2022938 -_0801F14C: - bl GetBlockReceivedStatus - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #6] - cmp r0, #0 - bne _0801F164 - bl sub_0801158C - cmp r0, #0 - beq _0801F164 - b _0801F2D4 -_0801F164: - movs r0, #0 - strh r0, [r4, #2] - movs r0, #3 - strh r0, [r4] -_0801F16C: - movs r1, #2 - ldrsh r0, [r4, r1] - cmp r0, #4 - bgt _0801F1A6 - movs r2, #6 - ldrsh r0, [r4, r2] - movs r3, #2 - ldrsh r1, [r4, r3] - asrs r0, r1 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _0801F1A6 - movs r2, #1 -_0801F188: - ldrh r0, [r4, #2] - adds r0, #1 - strh r0, [r4, #2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - bgt _0801F1A6 - movs r5, #6 - ldrsh r0, [r4, r5] - movs r3, #2 - ldrsh r1, [r4, r3] - asrs r0, r1 - ands r0, r2 - cmp r0, #0 - beq _0801F188 -_0801F1A6: - ldrh r1, [r4, #2] - movs r5, #2 - ldrsh r0, [r4, r5] - cmp r0, #5 - bne _0801F1B2 - b _0801F2D0 -_0801F1B2: - strh r1, [r4, #4] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - bl ResetBlockReceivedFlag - movs r1, #2 - ldrsh r0, [r4, r1] - lsls r0, r0, #8 - ldr r1, _0801F1D8 - adds r0, r0, r1 - ldrb r0, [r0] - subs r0, #1 - cmp r0, #4 - bhi _0801F1F4 - lsls r0, r0, #2 - ldr r1, _0801F1DC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801F1D8: .4byte gUnknown_202207C -_0801F1DC: .4byte _0801F1E0 -_0801F1E0: @ jump table - .4byte _0801F1F4 @ case 0 - .4byte _0801F1F8 @ case 1 - .4byte _0801F1FC @ case 2 - .4byte _0801F200 @ case 3 - .4byte _0801F204 @ case 4 -_0801F1F4: - movs r0, #3 - b _0801F206 -_0801F1F8: - movs r0, #3 - b _0801F206 -_0801F1FC: - movs r0, #4 - b _0801F206 -_0801F200: - movs r0, #5 - b _0801F206 -_0801F204: - movs r0, #6 -_0801F206: - strh r0, [r4, #0xa] - ldr r5, _0801F234 - ldr r0, [r5] - adds r0, #0x39 - movs r2, #2 - ldrsh r1, [r4, r2] - lsls r1, r1, #8 - ldr r2, _0801F238 - adds r1, r1, r2 - bl sub_0801EE08 - cmp r0, #0 - beq _0801F23C - ldr r0, [r5] - ldrh r1, [r4, #2] - strb r1, [r0, #0x16] - movs r0, #0xc - movs r1, #2 - bl sub_0801F3FC - movs r0, #7 - b _0801F23E - .align 2, 0 -_0801F234: .4byte gUnknown_2022938 -_0801F238: .4byte gUnknown_202207C -_0801F23C: - ldrh r0, [r4, #0xa] -_0801F23E: - strh r0, [r4] - ldrh r0, [r4, #2] - adds r0, #1 - strh r0, [r4, #2] - b _0801F2D4 -_0801F248: - movs r0, #2 - bl sub_0801F454 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801F2D4 - ldrh r0, [r4, #0xa] - b _0801F2D2 -_0801F258: - ldr r6, _0801F280 - ldr r0, [r6] - ldrb r0, [r0, #0x13] - cmp r0, #0 - bne _0801F28C - movs r3, #4 - ldrsh r0, [r4, r3] - cmp r0, #0 - beq _0801F28C - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _0801F284 - bl sub_0800FFB0 - ldr r1, [r6] - movs r0, #1 - b _0801F2AA - .align 2, 0 -_0801F280: .4byte gUnknown_2022938 -_0801F284: - movs r5, #4 - ldrsh r0, [r4, r5] - bl sub_080118CC -_0801F28C: - movs r0, #3 - b _0801F2D2 -_0801F290: - ldr r0, _0801F2A0 - ldr r1, [r0] - ldrb r0, [r1, #0x13] - cmp r0, #0 - beq _0801F2AC - movs r0, #2 - b _0801F2AA - .align 2, 0 -_0801F2A0: .4byte gUnknown_2022938 -_0801F2A4: - ldr r0, _0801F2B4 - ldr r1, [r0] - movs r0, #3 -_0801F2AA: - strb r0, [r1, #0x17] -_0801F2AC: - adds r0, r5, #0 - bl DestroyTask - b _0801F2D4 - .align 2, 0 -_0801F2B4: .4byte gUnknown_2022938 -_0801F2B8: - bl sub_0801158C - cmp r0, #0 - bne _0801F2D4 - ldr r0, _0801F2DC - ldr r1, [r0] - ldrb r0, [r1, #0x13] - cmp r0, #0 - bne _0801F2D0 - ldrb r0, [r1, #0xd] - bl sub_08010BA8 -_0801F2D0: - movs r0, #1 -_0801F2D2: - strh r0, [r4] -_0801F2D4: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0801F2DC: .4byte gUnknown_2022938 - thumb_func_end sub_0801F0C4 - - thumb_func_start sub_0801F2E0 -sub_0801F2E0: @ 0x0801F2E0 - push {r4, lr} - ldr r4, _0801F32C - ldr r0, _0801F330 - bl sub_08000BC8 - str r0, [r4] - cmp r0, #0 - beq _0801F33C - bl sub_080205AC - cmp r0, #0 - beq _0801F33C - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _0801F334 - movs r0, #0 - movs r2, #4 - bl InitBgsFromTemplates - ldr r0, _0801F338 - bl InitWindows - bl reset_temp_tile_data_buffers - bl sub_0802048C - ldr r0, [r4] - bl sub_0801F384 - bl sub_0801F390 - movs r0, #0 - movs r1, #0 - bl sub_0801F3FC - movs r0, #1 - b _0801F33E - .align 2, 0 -_0801F32C: .4byte gUnknown_202293C -_0801F330: .4byte 0x00002168 -_0801F334: .4byte gUnknown_82C56F4 -_0801F338: .4byte gUnknown_82C5704 -_0801F33C: - movs r0, #0 -_0801F33E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0801F2E0 - - thumb_func_start sub_0801F344 -sub_0801F344: @ 0x0801F344 - push {lr} - movs r0, #0 - bl sub_0801F454 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - thumb_func_end sub_0801F344 - - thumb_func_start sub_0801F354 -sub_0801F354: @ 0x0801F354 - push {r4, lr} - bl sub_080205EC - ldr r4, _0801F37C - ldr r0, [r4] - cmp r0, #0 - beq _0801F36A - bl Free - movs r0, #0 - str r0, [r4] -_0801F36A: - bl FreeAllWindowBuffers - ldr r1, _0801F380 - movs r0, #3 - strb r0, [r1, #0x15] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801F37C: .4byte gUnknown_202293C -_0801F380: .4byte gUnknown_20397C8 - thumb_func_end sub_0801F354 - - thumb_func_start sub_0801F384 -sub_0801F384: @ 0x0801F384 - movs r2, #0 - movs r1, #0xff - strh r1, [r0, #0x18] - strh r1, [r0, #0x1e] - strh r2, [r0, #0x1a] - bx lr - thumb_func_end sub_0801F384 - - thumb_func_start sub_0801F390 -sub_0801F390: @ 0x0801F390 - push {r4, r5, lr} - ldr r1, _0801F3C0 - ldr r0, [r1] - cmp r0, #0 - beq _0801F3B8 - movs r2, #0 - adds r4, r1, #0 - ldr r5, _0801F3C4 - movs r3, #0 -_0801F3A2: - ldr r0, [r4] - lsls r1, r2, #3 - adds r0, r0, r1 - str r5, [r0] - strb r3, [r0, #4] - ldr r0, [r4] - adds r0, r0, r1 - strb r3, [r0, #5] - adds r2, #1 - cmp r2, #2 - ble _0801F3A2 -_0801F3B8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0801F3C0: .4byte gUnknown_202293C -_0801F3C4: .4byte sub_0801FBE8 - thumb_func_end sub_0801F390 - - thumb_func_start sub_0801F3C8 -sub_0801F3C8: @ 0x0801F3C8 - push {r4, r5, r6, lr} - ldr r1, _0801F3F8 - ldr r0, [r1] - cmp r0, #0 - beq _0801F3F0 - movs r5, #0 - adds r6, r1, #0 -_0801F3D6: - ldr r1, [r6] - lsls r4, r5, #3 - adds r1, r1, r4 - adds r0, r1, #5 - ldr r1, [r1] - bl _call_via_r1 - ldr r1, [r6] - adds r1, r1, r4 - strb r0, [r1, #4] - adds r5, #1 - cmp r5, #2 - ble _0801F3D6 -_0801F3F0: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0801F3F8: .4byte gUnknown_202293C - thumb_func_end sub_0801F3C8 - - thumb_func_start sub_0801F3FC -sub_0801F3FC: @ 0x0801F3FC - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r1, r1, #0x18 - ldr r3, _0801F438 - ldr r0, [r3] - lsrs r1, r1, #0x15 - adds r0, r0, r1 - ldr r2, _0801F43C - str r2, [r0] - movs r4, #0 - adds r5, r3, #0 - adds r3, r1, #0 - mov ip, r4 - ldr r1, _0801F440 - movs r7, #1 - adds r2, r1, #4 -_0801F41E: - ldrh r0, [r1] - cmp r0, r6 - bne _0801F444 - ldr r1, [r5] - adds r1, r1, r3 - ldr r0, [r2] - str r0, [r1] - strb r7, [r1, #4] - ldr r0, [r5] - adds r0, r0, r3 - mov r1, ip - strb r1, [r0, #5] - b _0801F44E - .align 2, 0 -_0801F438: .4byte gUnknown_202293C -_0801F43C: .4byte sub_0801FBE8 -_0801F440: .4byte gUnknown_82C572C -_0801F444: - adds r1, #8 - adds r2, #8 - adds r4, #1 - cmp r4, #0x14 - bls _0801F41E -_0801F44E: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_0801F3FC - - thumb_func_start sub_0801F454 -sub_0801F454: @ 0x0801F454 - lsls r0, r0, #0x18 - ldr r1, _0801F464 - ldr r1, [r1] - lsrs r0, r0, #0x15 - adds r1, r1, r0 - ldrb r0, [r1, #4] - bx lr - .align 2, 0 -_0801F464: .4byte gUnknown_202293C - thumb_func_end sub_0801F454 - - thumb_func_start sub_0801F468 -sub_0801F468: @ 0x0801F468 - push {r4, lr} - adds r4, r0, #0 - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0801F4FE - ldrb r0, [r4] - cmp r0, #6 - bhi _0801F4F4 - lsls r0, r0, #2 - ldr r1, _0801F488 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801F488: .4byte _0801F48C -_0801F48C: @ jump table - .4byte _0801F4A8 @ case 0 - .4byte _0801F4B2 @ case 1 - .4byte _0801F4B8 @ case 2 - .4byte _0801F4BE @ case 3 - .4byte _0801F4C4 @ case 4 - .4byte _0801F4CA @ case 5 - .4byte _0801F4DC @ case 6 -_0801F4A8: - bl sub_0802019C - bl sub_08020254 - b _0801F4F8 -_0801F4B2: - bl sub_080202A0 - b _0801F4F8 -_0801F4B8: - bl sub_080202D0 - b _0801F4F8 -_0801F4BE: - bl sub_08020320 - b _0801F4F8 -_0801F4C4: - bl sub_0802039C - b _0801F4F8 -_0801F4CA: - bl sub_080203C0 - bl sub_080203EC - bl sub_0802045C - bl sub_08020404 - b _0801F4F8 -_0801F4DC: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801F4F8 - bl sub_08020604 - bl sub_08020780 - bl sub_08020838 - b _0801F4F8 -_0801F4F4: - movs r0, #0 - b _0801F500 -_0801F4F8: - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] -_0801F4FE: - movs r0, #1 -_0801F500: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801F468 - - thumb_func_start sub_0801F508 -sub_0801F508: @ 0x0801F508 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4] - cmp r0, #0 - beq _0801F518 - cmp r0, #1 - beq _0801F526 - b _0801F530 -_0801F518: - bl sub_080200D8 - movs r0, #3 - movs r1, #3 - bl CopyWindowToVram - b _0801F530 -_0801F526: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0801F538 -_0801F530: - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - movs r0, #1 -_0801F538: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801F508 - - thumb_func_start sub_0801F540 -sub_0801F540: @ 0x0801F540 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4] - cmp r0, #0 - beq _0801F550 - cmp r0, #1 - beq _0801F55E - b _0801F568 -_0801F550: - bl sub_0802012C - movs r0, #3 - movs r1, #3 - bl CopyWindowToVram - b _0801F568 -_0801F55E: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0801F570 -_0801F568: - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - movs r0, #1 -_0801F570: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801F540 - - thumb_func_start sub_0801F578 -sub_0801F578: @ 0x0801F578 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4] - cmp r0, #1 - beq _0801F5AE - cmp r0, #1 - bgt _0801F58C - cmp r0, #0 - beq _0801F592 - b _0801F5D4 -_0801F58C: - cmp r0, #2 - beq _0801F5BA - b _0801F5D4 -_0801F592: - movs r0, #1 - bl sub_08020638 - bl sub_08020048 - cmp r0, #0 - bne _0801F5DA - bl sub_0801FF88 - movs r0, #2 - movs r1, #2 - bl CopyWindowToVram - b _0801F5D4 -_0801F5AE: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0801F5D4 - b _0801F5DA -_0801F5BA: - bl sub_08020090 - cmp r0, #0 - bne _0801F5DA - bl sub_08020658 - movs r0, #0 - bl sub_08020638 - bl sub_08020898 - movs r0, #0 - b _0801F5DC -_0801F5D4: - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] -_0801F5DA: - movs r0, #1 -_0801F5DC: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801F578 - - thumb_func_start sub_0801F5E4 -sub_0801F5E4: @ 0x0801F5E4 - push {lr} - bl sub_08020658 - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end sub_0801F5E4 - - thumb_func_start sub_0801F5F0 -sub_0801F5F0: @ 0x0801F5F0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4] - cmp r0, #0 - beq _0801F600 - cmp r0, #1 - beq _0801F624 - b _0801F62E -_0801F600: - movs r0, #0 - movs r1, #0 - bl sub_0801FD40 - movs r0, #0x17 - movs r1, #0xb - movs r2, #1 - bl sub_0801FBEC - ldr r0, _0801F620 - ldr r0, [r0] - ldrb r0, [r0, #0x1e] - movs r1, #3 - bl CopyWindowToVram - b _0801F62E - .align 2, 0 -_0801F620: .4byte gUnknown_202293C -_0801F624: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0801F636 -_0801F62E: - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - movs r0, #1 -_0801F636: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0801F5F0 - - thumb_func_start sub_0801F63C -sub_0801F63C: @ 0x0801F63C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4] - cmp r0, #0 - beq _0801F64C - cmp r0, #1 - beq _0801F65C - b _0801F672 -_0801F64C: - bl sub_0801FEBC - bl sub_0801FCE4 - movs r0, #0 - bl CopyBgTilemapBufferToVram - b _0801F672 -_0801F65C: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801F678 - bl sub_0801FEF0 - bl sub_0801FD0C - movs r0, #0 - b _0801F67A -_0801F672: - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] -_0801F678: - movs r0, #1 -_0801F67A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0801F63C - - thumb_func_start sub_0801F680 -sub_0801F680: @ 0x0801F680 - push {r4, lr} - sub sp, #0xc - adds r4, r0, #0 - ldrb r0, [r4] - cmp r0, #0 - beq _0801F692 - cmp r0, #1 - beq _0801F6CA - b _0801F6DC -_0801F692: - add r1, sp, #8 - add r0, sp, #4 - bl sub_0801EEEC - ldr r0, [sp, #4] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, [sp, #8] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r2, #0 - bl sub_0801FF14 - bl sub_0801EED0 - adds r1, r0, #0 - movs r0, #2 - str r0, [sp] - movs r0, #0 - movs r2, #3 - movs r3, #1 - bl sub_0801FF40 - movs r0, #1 - movs r1, #2 - bl CopyWindowToVram - b _0801F6DC -_0801F6CA: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801F6E2 - bl sub_08020898 - movs r0, #0 - b _0801F6E4 -_0801F6DC: - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] -_0801F6E2: - movs r0, #1 -_0801F6E4: - add sp, #0xc - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0801F680 - - thumb_func_start sub_0801F6EC -sub_0801F6EC: @ 0x0801F6EC - push {r4, r5, r6, lr} - sub sp, #4 - adds r6, r0, #0 - ldrb r0, [r6] - cmp r0, #1 - beq _0801F748 - cmp r0, #1 - bgt _0801F702 - cmp r0, #0 - beq _0801F70C - b _0801F782 -_0801F702: - cmp r0, #2 - beq _0801F76C - cmp r0, #3 - beq _0801F77E - b _0801F782 -_0801F70C: - bl sub_0801EF44 - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - bl sub_0801EF14 - adds r5, r0, #0 - bl StringLength_Multibyte - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - movs r2, #0x66 - bl sub_0801FF14 - movs r0, #5 - str r0, [sp] - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0 - movs r3, #4 - bl sub_0801FF40 - movs r0, #1 - movs r1, #2 - bl CopyWindowToVram - b _0801F782 -_0801F748: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801F788 - movs r0, #1 - movs r1, #0x10 - bl sub_0801FD40 - ldr r0, _0801F768 - ldr r0, [r0] - ldrb r0, [r0, #0x1e] - movs r1, #3 - bl CopyWindowToVram - b _0801F782 - .align 2, 0 -_0801F768: .4byte gUnknown_202293C -_0801F76C: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801F788 - movs r0, #1 - bl sub_080206C4 - b _0801F782 -_0801F77E: - movs r0, #0 - b _0801F78A -_0801F782: - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] -_0801F788: - movs r0, #1 -_0801F78A: - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801F6EC - - thumb_func_start sub_0801F794 -sub_0801F794: @ 0x0801F794 - push {r4, r5, r6, lr} - sub sp, #4 - adds r6, r0, #0 - ldrb r0, [r6] - cmp r0, #1 - beq _0801F7F0 - cmp r0, #1 - bgt _0801F7AA - cmp r0, #0 - beq _0801F7B4 - b _0801F82A -_0801F7AA: - cmp r0, #2 - beq _0801F810 - cmp r0, #3 - beq _0801F826 - b _0801F82A -_0801F7B4: - bl sub_0801EF44 - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - bl sub_0801EF14 - adds r5, r0, #0 - bl StringLength_Multibyte - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - movs r2, #0 - bl sub_0801FF14 - movs r0, #2 - str r0, [sp] - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #3 - movs r3, #1 - bl sub_0801FF40 - movs r0, #1 - movs r1, #2 - bl CopyWindowToVram - b _0801F82A -_0801F7F0: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801F830 - bl sub_0801FEBC - ldr r0, _0801F80C - ldr r0, [r0] - ldrb r0, [r0, #0x1e] - movs r1, #3 - bl CopyWindowToVram - b _0801F82A - .align 2, 0 -_0801F80C: .4byte gUnknown_202293C -_0801F810: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801F830 - movs r0, #0 - bl sub_080206C4 - bl sub_0801FEF0 - b _0801F82A -_0801F826: - movs r0, #0 - b _0801F832 -_0801F82A: - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] -_0801F830: - movs r0, #1 -_0801F832: - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801F794 - - thumb_func_start sub_0801F83C -sub_0801F83C: @ 0x0801F83C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4] - cmp r0, #0 - beq _0801F84C - cmp r0, #1 - beq _0801F860 - b _0801F86E -_0801F84C: - bl sub_0801FF88 - movs r0, #2 - movs r1, #2 - bl CopyWindowToVram - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - b _0801F86E -_0801F860: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801F86E - movs r0, #0 - b _0801F870 -_0801F86E: - movs r0, #1 -_0801F870: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801F83C - - thumb_func_start sub_0801F878 -sub_0801F878: @ 0x0801F878 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldrb r0, [r6] - cmp r0, #4 - bhi _0801F94A - lsls r0, r0, #2 - ldr r1, _0801F88C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801F88C: .4byte _0801F890 -_0801F890: @ jump table - .4byte _0801F8A4 @ case 0 - .4byte _0801F8D0 @ case 1 - .4byte _0801F900 @ case 2 - .4byte _0801F924 @ case 3 - .4byte _0801F8EE @ case 4 -_0801F8A4: - ldr r0, _0801F8CC - ldr r0, [r0] - ldrh r5, [r0, #0x1a] - bl sub_0801EF80 - adds r4, r0, #0 - bl sub_0801EF8C - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08020140 - movs r0, #0 - movs r1, #2 - bl CopyWindowToVram - b _0801F944 - .align 2, 0 -_0801F8CC: .4byte gUnknown_202293C -_0801F8D0: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _0801F94A - ldr r0, _0801F8F4 - ldr r1, [r0] - ldrh r0, [r1, #0x1a] - cmp r0, #0xa - bhi _0801F8F8 - adds r0, #1 - strh r0, [r1, #0x1a] - movs r0, #4 - strb r0, [r6] -_0801F8EE: - movs r0, #0 - b _0801F94C - .align 2, 0 -_0801F8F4: .4byte gUnknown_202293C -_0801F8F8: - strh r2, [r1, #0x1c] - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] -_0801F900: - movs r0, #0 - movs r1, #0 - movs r2, #4 - movs r3, #0x11 - bl ScrollWindow - movs r0, #0 - movs r1, #2 - bl CopyWindowToVram - ldr r0, _0801F940 - ldr r1, [r0] - ldrh r0, [r1, #0x1c] - adds r0, #1 - strh r0, [r1, #0x1c] - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] -_0801F924: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801F94A - ldr r0, _0801F940 - ldr r0, [r0] - ldrh r0, [r0, #0x1c] - cmp r0, #2 - bhi _0801F944 - ldrb r0, [r6] - subs r0, #1 - b _0801F948 - .align 2, 0 -_0801F940: .4byte gUnknown_202293C -_0801F944: - ldrb r0, [r6] - adds r0, #1 -_0801F948: - strb r0, [r6] -_0801F94A: - movs r0, #1 -_0801F94C: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801F878 - - thumb_func_start sub_0801F954 -sub_0801F954: @ 0x0801F954 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4] - cmp r0, #0 - beq _0801F964 - cmp r0, #1 - beq _0801F970 - b _0801F976 -_0801F964: - bl sub_080206F8 - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - b _0801F976 -_0801F970: - bl sub_08020734 - b _0801F978 -_0801F976: - movs r0, #1 -_0801F978: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801F954 - - thumb_func_start sub_0801F980 -sub_0801F980: @ 0x0801F980 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4] - cmp r0, #0 - beq _0801F990 - cmp r0, #1 - beq _0801F9B0 - b _0801F9BA -_0801F990: - movs r0, #3 - movs r1, #0x10 - bl sub_0801FD40 - ldr r0, _0801F9AC - ldr r0, [r0] - ldrb r0, [r0, #0x1e] - movs r1, #3 - bl CopyWindowToVram - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - b _0801F9BA - .align 2, 0 -_0801F9AC: .4byte gUnknown_202293C -_0801F9B0: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0801F9BC -_0801F9BA: - movs r0, #1 -_0801F9BC: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801F980 - - thumb_func_start sub_0801F9C4 -sub_0801F9C4: @ 0x0801F9C4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4] - cmp r0, #0 - beq _0801F9D4 - cmp r0, #1 - beq _0801F9F4 - b _0801F9FE -_0801F9D4: - movs r0, #4 - movs r1, #0 - bl sub_0801FD40 - ldr r0, _0801F9F0 - ldr r0, [r0] - ldrb r0, [r0, #0x1e] - movs r1, #3 - bl CopyWindowToVram - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - b _0801F9FE - .align 2, 0 -_0801F9F0: .4byte gUnknown_202293C -_0801F9F4: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0801FA00 -_0801F9FE: - movs r0, #1 -_0801FA00: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801F9C4 - - thumb_func_start sub_0801FA08 -sub_0801FA08: @ 0x0801FA08 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4] - cmp r0, #0 - beq _0801FA18 - cmp r0, #1 - beq _0801FA48 - b _0801FA52 -_0801FA18: - bl DynamicPlaceholderTextUtil_Reset - bl sub_0801EFE0 - adds r1, r0, #0 - movs r0, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - movs r0, #5 - movs r1, #0 - bl sub_0801FD40 - ldr r0, _0801FA44 - ldr r0, [r0] - ldrb r0, [r0, #0x1e] - movs r1, #3 - bl CopyWindowToVram - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - b _0801FA52 - .align 2, 0 -_0801FA44: .4byte gUnknown_202293C -_0801FA48: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0801FA54 -_0801FA52: - movs r0, #1 -_0801FA54: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801FA08 - - thumb_func_start sub_0801FA5C -sub_0801FA5C: @ 0x0801FA5C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4] - cmp r0, #0 - beq _0801FA6C - cmp r0, #1 - beq _0801FA98 - b _0801FAA2 -_0801FA6C: - movs r0, #6 - movs r1, #0 - bl sub_0801FD40 - movs r0, #0x17 - movs r1, #0xa - movs r2, #1 - bl sub_0801FBEC - ldr r0, _0801FA94 - ldr r0, [r0] - ldrb r0, [r0, #0x1e] - movs r1, #3 - bl CopyWindowToVram - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - b _0801FAA2 - .align 2, 0 -_0801FA94: .4byte gUnknown_202293C -_0801FA98: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0801FAA4 -_0801FAA2: - movs r0, #1 -_0801FAA4: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801FA5C - - thumb_func_start sub_0801FAAC -sub_0801FAAC: @ 0x0801FAAC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4] - cmp r0, #0 - beq _0801FABC - cmp r0, #1 - beq _0801FAE8 - b _0801FAF2 -_0801FABC: - movs r0, #7 - movs r1, #0 - bl sub_0801FD40 - movs r0, #0x17 - movs r1, #0xa - movs r2, #1 - bl sub_0801FBEC - ldr r0, _0801FAE4 - ldr r0, [r0] - ldrb r0, [r0, #0x1e] - movs r1, #3 - bl CopyWindowToVram - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - b _0801FAF2 - .align 2, 0 -_0801FAE4: .4byte gUnknown_202293C -_0801FAE8: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0801FAF4 -_0801FAF2: - movs r0, #1 -_0801FAF4: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801FAAC - - thumb_func_start sub_0801FAFC -sub_0801FAFC: @ 0x0801FAFC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4] - cmp r0, #0 - beq _0801FB0C - cmp r0, #1 - beq _0801FB2C - b _0801FB36 -_0801FB0C: - movs r0, #8 - movs r1, #0 - bl sub_0801FD40 - ldr r0, _0801FB28 - ldr r0, [r0] - ldrb r0, [r0, #0x1e] - movs r1, #3 - bl CopyWindowToVram - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - b _0801FB36 - .align 2, 0 -_0801FB28: .4byte gUnknown_202293C -_0801FB2C: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0801FB38 -_0801FB36: - movs r0, #1 -_0801FB38: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801FAFC - - thumb_func_start sub_0801FB40 -sub_0801FB40: @ 0x0801FB40 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4] - cmp r0, #0 - beq _0801FB50 - cmp r0, #1 - beq _0801FB84 - b _0801FB8E -_0801FB50: - bl DynamicPlaceholderTextUtil_Reset - ldr r0, _0801FB7C - ldr r1, [r0] - movs r0, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - movs r0, #9 - movs r1, #0 - bl sub_0801FD40 - ldr r0, _0801FB80 - ldr r0, [r0] - ldrb r0, [r0, #0x1e] - movs r1, #3 - bl CopyWindowToVram - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - b _0801FB8E - .align 2, 0 -_0801FB7C: .4byte gUnknown_3005AF0 -_0801FB80: .4byte gUnknown_202293C -_0801FB84: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0801FB90 -_0801FB8E: - movs r0, #1 -_0801FB90: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801FB40 - - thumb_func_start sub_0801FB98 -sub_0801FB98: @ 0x0801FB98 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4] - cmp r0, #0 - beq _0801FBA8 - cmp r0, #1 - beq _0801FBD4 - b _0801FBDE -_0801FBA8: - movs r0, #0xa - movs r1, #0 - bl sub_0801FD40 - movs r0, #0x17 - movs r1, #0xa - movs r2, #1 - bl sub_0801FBEC - ldr r0, _0801FBD0 - ldr r0, [r0] - ldrb r0, [r0, #0x1e] - movs r1, #3 - bl CopyWindowToVram - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - b _0801FBDE - .align 2, 0 -_0801FBD0: .4byte gUnknown_202293C -_0801FBD4: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0801FBE0 -_0801FBDE: - movs r0, #1 -_0801FBE0: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801FB98 - - thumb_func_start sub_0801FBE8 -sub_0801FBE8: @ 0x0801FBE8 - movs r0, #0 - bx lr - thumb_func_end sub_0801FBE8 - - thumb_func_start sub_0801FBEC -sub_0801FBEC: @ 0x0801FBEC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r8, r2 - ldr r4, _0801FCC4 - ldr r2, [sp, #0xc] - ands r2, r4 - lsrs r0, r0, #0x10 - ldr r3, _0801FCC8 - ands r2, r3 - orrs r2, r0 - lsrs r1, r1, #8 - ldr r0, _0801FCCC - ands r2, r0 - orrs r2, r1 - ldr r0, _0801FCD0 - ands r2, r0 - movs r0, #0xc0 - lsls r0, r0, #0x13 - orrs r2, r0 - str r2, [sp, #0xc] - ldr r0, [sp, #0x10] - ands r0, r4 - movs r1, #4 - orrs r0, r1 - ands r0, r3 - movs r1, #0xe0 - lsls r1, r1, #4 - orrs r0, r1 - ldr r1, _0801FCD4 - ands r0, r1 - movs r1, #0xb2 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [sp, #0x10] - add r0, sp, #0xc - bl AddWindow - adds r1, r0, #0 - ldr r6, _0801FCD8 - ldr r0, [r6] - movs r7, #0 - strh r1, [r0, #0x18] - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xff - beq _0801FCB8 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r0, [r6] - ldrb r0, [r0, #0x18] - bl PutWindowTilemap - ldr r0, [r6] - ldrb r0, [r0, #0x18] - ldr r2, _0801FCDC - movs r5, #2 - str r5, [sp] - movs r4, #0xff - str r4, [sp, #4] - str r7, [sp, #8] - movs r1, #1 - movs r3, #0xa - bl AddTextPrinterParameterized - ldr r0, [r6] - ldrb r0, [r0, #0x18] - ldr r2, _0801FCE0 - movs r1, #0x10 - str r1, [sp] - str r4, [sp, #4] - str r7, [sp, #8] - movs r1, #1 - movs r3, #0xa - bl AddTextPrinterParameterized - ldr r0, [r6] - ldrb r0, [r0, #0x18] - movs r1, #1 - movs r2, #0xd - bl DrawTextBorderOuter - ldr r0, [r6] - ldrb r0, [r0, #0x18] - movs r1, #0xe - str r1, [sp] - str r5, [sp, #4] - mov r1, r8 - str r1, [sp, #8] - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl sub_081984B0 -_0801FCB8: - add sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0801FCC4: .4byte 0xFFFFFF00 -_0801FCC8: .4byte 0xFFFF00FF -_0801FCCC: .4byte 0xFF00FFFF -_0801FCD0: .4byte 0x00FFFFFF -_0801FCD4: .4byte 0x0000FFFF -_0801FCD8: .4byte gUnknown_202293C -_0801FCDC: .4byte gUnknown_85CAAD8 -_0801FCE0: .4byte gUnknown_85CAADB - thumb_func_end sub_0801FBEC - - thumb_func_start sub_0801FCE4 -sub_0801FCE4: @ 0x0801FCE4 - push {r4, lr} - ldr r4, _0801FD08 - ldr r0, [r4] - ldrh r0, [r0, #0x18] - cmp r0, #0xff - beq _0801FD02 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl sub_08198134 - ldr r0, [r4] - ldrb r0, [r0, #0x18] - bl ClearWindowTilemap -_0801FD02: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801FD08: .4byte gUnknown_202293C - thumb_func_end sub_0801FCE4 - - thumb_func_start sub_0801FD0C -sub_0801FD0C: @ 0x0801FD0C - push {r4, lr} - ldr r4, _0801FD2C - ldr r0, [r4] - ldrh r0, [r0, #0x18] - cmp r0, #0xff - beq _0801FD26 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl RemoveWindow - ldr r1, [r4] - movs r0, #0xff - strh r0, [r1, #0x18] -_0801FD26: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801FD2C: .4byte gUnknown_202293C - thumb_func_end sub_0801FD0C - - thumb_func_start sub_0801FD30 -sub_0801FD30: @ 0x0801FD30 - push {lr} - bl Menu_ProcessInput - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0801FD30 - - thumb_func_start sub_0801FD40 -sub_0801FD40: @ 0x0801FD40 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x1c - adds r7, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sb, r1 - ldr r1, _0801FDEC - ldr r3, [sp, #0x14] - ands r3, r1 - ldr r2, _0801FDF0 - ands r3, r2 - movs r0, #0x80 - lsls r0, r0, #4 - orrs r3, r0 - ldr r0, _0801FDF4 - ands r3, r0 - movs r0, #0x80 - lsls r0, r0, #0xd - orrs r3, r0 - ldr r5, _0801FDF8 - ands r3, r5 - movs r0, #0xa8 - lsls r0, r0, #0x15 - orrs r3, r0 - str r3, [sp, #0x14] - ldr r0, [sp, #0x18] - ands r0, r1 - movs r1, #4 - orrs r0, r1 - ands r0, r2 - movs r1, #0xe0 - lsls r1, r1, #4 - orrs r0, r1 - ldr r1, _0801FDFC - ands r0, r1 - movs r1, #0xe2 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [sp, #0x18] - ldr r1, _0801FE00 - lsls r0, r7, #1 - adds r0, r0, r7 - lsls r0, r0, #2 - adds r4, r0, r1 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _0801FDC0 - lsls r0, r3, #0x10 - movs r1, #0xf9 - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r0, r0, #0x10 - ands r2, r3 - orrs r2, r0 - lsrs r1, r2, #0x18 - adds r1, #7 - lsls r1, r1, #0x18 - adds r0, r5, #0 - ands r0, r2 - orrs r0, r1 - str r0, [sp, #0x14] -_0801FDC0: - add r0, sp, #0x14 - bl AddWindow - ldr r5, _0801FE04 - ldr r1, [r5] - strh r0, [r1, #0x1e] - ldrh r0, [r1, #0x1e] - mov r8, r0 - cmp r0, #0xff - beq _0801FEAA - ldrb r0, [r4, #9] - cmp r0, #0 - beq _0801FE08 - adds r0, r1, #0 - adds r0, #0x22 - ldr r1, [r4] - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - ldr r0, [r5] - adds r6, r0, #0 - adds r6, #0x22 - b _0801FE0A - .align 2, 0 -_0801FDEC: .4byte 0xFFFFFF00 -_0801FDF0: .4byte 0xFFFF00FF -_0801FDF4: .4byte 0xFF00FFFF -_0801FDF8: .4byte 0x00FFFFFF -_0801FDFC: .4byte 0x0000FFFF -_0801FE00: .4byte gUnknown_82C57D4 -_0801FE04: .4byte gUnknown_202293C -_0801FE08: - ldr r6, [r4] -_0801FE0A: - mov r0, sb - lsls r1, r0, #8 - movs r0, #0 - movs r2, #0 - bl ChangeBgY - mov r1, r8 - lsls r0, r1, #0x18 - lsrs r5, r0, #0x18 - adds r0, r5, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - adds r0, r5, #0 - bl PutWindowTilemap - ldr r1, _0801FE74 - lsls r0, r7, #1 - adds r0, r0, r7 - lsls r0, r0, #2 - adds r4, r0, r1 - ldrb r0, [r4, #4] - cmp r0, #1 - bne _0801FE78 - adds r0, r5, #0 - movs r1, #0xa - movs r2, #2 - bl DrawTextBorderInner - ldrb r3, [r4, #5] - adds r3, #8 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldrb r0, [r4, #6] - adds r0, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - ldrb r0, [r4, #7] - str r0, [sp, #0xc] - ldrb r0, [r4, #8] - str r0, [sp, #0x10] - adds r0, r5, #0 - movs r1, #1 - adds r2, r6, #0 - bl AddTextPrinterParameterized5 - b _0801FEA2 - .align 2, 0 -_0801FE74: .4byte gUnknown_82C57D4 -_0801FE78: - adds r0, r5, #0 - movs r1, #0xa - movs r2, #2 - bl DrawTextBorderOuter - ldrb r3, [r4, #5] - ldrb r0, [r4, #6] - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - ldrb r0, [r4, #7] - str r0, [sp, #0xc] - ldrb r0, [r4, #8] - str r0, [sp, #0x10] - adds r0, r5, #0 - movs r1, #1 - adds r2, r6, #0 - bl AddTextPrinterParameterized5 -_0801FEA2: - ldr r0, _0801FEB8 - ldr r0, [r0] - mov r1, r8 - strh r1, [r0, #0x1e] -_0801FEAA: - add sp, #0x1c - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0801FEB8: .4byte gUnknown_202293C - thumb_func_end sub_0801FD40 - - thumb_func_start sub_0801FEBC -sub_0801FEBC: @ 0x0801FEBC - push {r4, lr} - ldr r4, _0801FEEC - ldr r0, [r4] - ldrh r0, [r0, #0x1e] - cmp r0, #0xff - beq _0801FEDA - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl sub_08198134 - ldr r0, [r4] - ldrb r0, [r0, #0x1e] - bl ClearWindowTilemap -_0801FEDA: - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801FEEC: .4byte gUnknown_202293C - thumb_func_end sub_0801FEBC - - thumb_func_start sub_0801FEF0 -sub_0801FEF0: @ 0x0801FEF0 - push {r4, lr} - ldr r4, _0801FF10 - ldr r0, [r4] - ldrh r0, [r0, #0x1e] - cmp r0, #0xff - beq _0801FF0A - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl RemoveWindow - ldr r1, [r4] - movs r0, #0xff - strh r0, [r1, #0x1e] -_0801FF0A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801FF10: .4byte gUnknown_202293C - thumb_func_end sub_0801FEF0 - - thumb_func_start sub_0801FF14 -sub_0801FF14: @ 0x0801FF14 - push {lr} - sub sp, #8 - adds r3, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x13 - lsrs r3, r3, #0x10 - lsls r1, r1, #0x13 - lsrs r1, r1, #0x10 - str r1, [sp] - movs r0, #0xe - str r0, [sp, #4] - movs r0, #1 - adds r1, r2, #0 - adds r2, r3, #0 - movs r3, #1 - bl sub_08003A34 - add sp, #8 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0801FF14 - - thumb_func_start sub_0801FF40 -sub_0801FF40: @ 0x0801FF40 - push {r4, r5, lr} - sub sp, #0x10 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, [sp, #0x1c] - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - add r0, sp, #0xc - strb r2, [r0] - strb r3, [r0, #1] - strb r1, [r0, #2] - adds r0, r5, #0 - bl StringLength_Multibyte - lsls r4, r4, #0x1b - lsrs r4, r4, #0x18 - add r0, sp, #0xc - str r0, [sp] - movs r0, #1 - rsbs r0, r0, #0 - str r0, [sp, #4] - str r5, [sp, #8] - movs r0, #1 - movs r1, #0 - adds r2, r4, #0 - movs r3, #1 - bl AddTextPrinterParameterized3 - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_0801FF40 - - thumb_func_start sub_0801FF88 -sub_0801FF88: @ 0x0801FF88 - push {r4, r5, r6, r7, lr} - sub sp, #0x10 - movs r0, #2 - movs r1, #0xff - bl FillWindowPixelBuffer - bl sub_0801EEB0 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - add r1, sp, #0xc - movs r0, #0 - strb r0, [r1] - movs r0, #0xe - strb r0, [r1, #1] - movs r0, #0xd - strb r0, [r1, #2] - cmp r2, #4 - beq _0801FFF4 - movs r5, #0 - movs r6, #0 - lsls r0, r2, #2 - ldr r1, _0801FFF0 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r4, r0, r1 -_0801FFBC: - ldr r1, [r4] - cmp r1, #0 - beq _0802003A - lsls r3, r6, #0x18 - lsrs r3, r3, #0x18 - add r0, sp, #0xc - str r0, [sp] - movs r0, #1 - rsbs r0, r0, #0 - str r0, [sp, #4] - str r1, [sp, #8] - movs r0, #2 - movs r1, #0 - movs r2, #6 - bl AddTextPrinterParameterized3 - adds r4, #4 - adds r5, #1 - adds r0, r6, #0 - adds r0, #0xb - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r5, #9 - ble _0801FFBC - b _0802003A - .align 2, 0 -_0801FFF0: .4byte gUnknown_82C5180 -_0801FFF4: - movs r5, #0 - movs r6, #0 - ldr r7, _08020044 -_0801FFFA: - ldr r4, [r7] - adds r4, #0x22 - adds r0, r5, #0 - bl sub_0801EC7C - adds r1, r0, #0 - adds r0, r4, #0 - movs r2, #5 - bl StringCopyN_Multibyte - lsls r3, r6, #0x18 - lsrs r3, r3, #0x18 - add r0, sp, #0xc - str r0, [sp] - movs r0, #1 - rsbs r0, r0, #0 - str r0, [sp, #4] - ldr r0, [r7] - adds r0, #0x22 - str r0, [sp, #8] - movs r0, #2 - movs r1, #0 - movs r2, #6 - bl AddTextPrinterParameterized3 - adds r5, #1 - adds r0, r6, #0 - adds r0, #0xb - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r5, #9 - ble _0801FFFA -_0802003A: - add sp, #0x10 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08020044: .4byte gUnknown_202293C - thumb_func_end sub_0801FF88 - - thumb_func_start sub_08020048 -sub_08020048: @ 0x08020048 - push {r4, lr} - ldr r1, _0802006C - ldr r2, [r1] - ldrh r3, [r2, #0x20] - movs r4, #0x20 - ldrsh r0, [r2, r4] - cmp r0, #0x37 - bgt _0802007C - adds r0, r3, #0 - adds r0, #0xc - strh r0, [r2, #0x20] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x37 - ble _08020070 - movs r0, #0x38 - strh r0, [r2, #0x20] - b _0802007C - .align 2, 0 -_0802006C: .4byte gUnknown_202293C -_08020070: - movs r1, #0x20 - ldrsh r0, [r2, r1] - bl sub_080204DC - movs r0, #1 - b _08020088 -_0802007C: - ldr r0, [r1] - movs r4, #0x20 - ldrsh r0, [r0, r4] - bl sub_08020534 - movs r0, #0 -_08020088: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08020048 - - thumb_func_start sub_08020090 -sub_08020090: @ 0x08020090 - push {r4, lr} - ldr r1, _080200B4 - ldr r2, [r1] - ldrh r3, [r2, #0x20] - movs r4, #0x20 - ldrsh r0, [r2, r4] - cmp r0, #0 - ble _080200C4 - adds r0, r3, #0 - subs r0, #0xc - strh r0, [r2, #0x20] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _080200B8 - movs r0, #0 - strh r0, [r2, #0x20] - b _080200C4 - .align 2, 0 -_080200B4: .4byte gUnknown_202293C -_080200B8: - movs r1, #0x20 - ldrsh r0, [r2, r1] - bl sub_080204DC - movs r0, #1 - b _080200D0 -_080200C4: - ldr r0, [r1] - movs r4, #0x20 - ldrsh r0, [r0, r4] - bl sub_08020534 - movs r0, #0 -_080200D0: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08020090 - - thumb_func_start sub_080200D8 -sub_080200D8: @ 0x080200D8 - push {lr} - sub sp, #0xc - movs r0, #3 - movs r1, #0x11 - bl FillWindowPixelBuffer - movs r0, #3 - movs r1, #1 - movs r2, #0xd - bl DrawTextBorderOuter - ldr r0, _08020128 - str r0, [sp] - movs r0, #3 - movs r1, #1 - movs r2, #0xd - movs r3, #6 - bl sub_08198964 - bl sub_0801EEB0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0xd - str r1, [sp] - movs r1, #6 - str r1, [sp, #4] - str r0, [sp, #8] - movs r0, #3 - movs r1, #1 - movs r2, #0 - movs r3, #0 - bl sub_081984B0 - movs r0, #3 - bl PutWindowTilemap - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_08020128: .4byte gUnknown_82C5858 - thumb_func_end sub_080200D8 - - thumb_func_start sub_0802012C -sub_0802012C: @ 0x0802012C - push {lr} - movs r0, #3 - movs r1, #0 - bl sub_08198134 - movs r0, #3 - bl ClearWindowTilemap - pop {r0} - bx r0 - thumb_func_end sub_0802012C - - thumb_func_start sub_08020140 -sub_08020140: @ 0x08020140 - push {r4, r5, lr} - sub sp, #0x10 - adds r5, r1, #0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r2, r2, #0x18 - add r3, sp, #0xc - movs r1, #1 - strb r1, [r3] - lsrs r2, r2, #0x17 - adds r1, r2, #2 - strb r1, [r3, #1] - adds r1, r3, #0 - adds r2, #3 - strb r2, [r1, #2] - lsls r4, r0, #1 - adds r4, r4, r0 - lsls r3, r4, #0x12 - lsrs r3, r3, #0x10 - movs r0, #0xa8 - str r0, [sp] - movs r0, #0xc - str r0, [sp, #4] - movs r0, #0 - movs r1, #0x11 - movs r2, #0 - bl sub_08003A34 - lsls r4, r4, #0x1a - lsrs r4, r4, #0x18 - add r0, sp, #0xc - str r0, [sp] - movs r0, #1 - rsbs r0, r0, #0 - str r0, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #0 - adds r3, r4, #0 - bl AddTextPrinterParameterized3 - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_08020140 - - thumb_func_start sub_0802019C -sub_0802019C: @ 0x0802019C - push {lr} - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuRegBits - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r1, #0xe0 - lsls r1, r1, #8 - movs r0, #0 - bl ClearGpuRegBits - movs r1, #0x80 - lsls r1, r1, #6 - movs r0, #0 - bl SetGpuRegBits - ldr r1, _08020250 - movs r0, #0x40 - bl SetGpuReg - movs r0, #0x44 - movs r1, #0x90 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0x3d - bl SetGpuReg - movs r0, #0x4a - movs r1, #0x3f - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 -_08020250: .4byte 0x000040F0 - thumb_func_end sub_0802019C - - thumb_func_start sub_08020254 -sub_08020254: @ 0x08020254 - push {r4, lr} - ldr r4, _08020290 - ldr r1, [r4] - movs r0, #0x94 - lsls r0, r0, #1 - adds r1, r1, r0 - movs r0, #0 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, _08020294 - adds r1, r1, r0 - movs r0, #1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, _08020298 - adds r1, r1, r0 - movs r0, #3 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, _0802029C - adds r1, r1, r0 - movs r0, #2 - bl SetBgTilemapBuffer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08020290: .4byte gUnknown_202293C -_08020294: .4byte 0x00000928 -_08020298: .4byte 0x00001128 -_0802029C: .4byte 0x00001928 - thumb_func_end sub_08020254 - - thumb_func_start sub_080202A0 -sub_080202A0: @ 0x080202A0 - push {lr} - sub sp, #8 - movs r1, #0xc0 - lsls r1, r1, #0x13 - movs r0, #0 - movs r2, #0x20 - movs r3, #1 - bl RequestDma3Fill - movs r0, #0x20 - str r0, [sp] - str r0, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, #0 - bl CopyBgTilemapBufferToVram - add sp, #8 - pop {r0} - bx r0 - thumb_func_end sub_080202A0 - - thumb_func_start sub_080202D0 -sub_080202D0: @ 0x080202D0 - push {lr} - sub sp, #4 - ldr r0, _08020310 - movs r1, #0x70 - movs r2, #0x20 - bl LoadPalette - ldr r0, _08020314 - movs r1, #0xc0 - movs r2, #0x20 - bl LoadPalette - ldr r1, _08020318 - movs r0, #0 - str r0, [sp] - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, _0802031C - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - movs r0, #1 - bl CopyBgTilemapBufferToVram - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_08020310: .4byte gUnknown_82C5220 -_08020314: .4byte gUnknown_82C5348 -_08020318: .4byte gUnknown_82C5240 -_0802031C: .4byte gUnknown_82C529C - thumb_func_end sub_080202D0 - - thumb_func_start sub_08020320 -sub_08020320: @ 0x08020320 - push {r4, r5, lr} - sub sp, #4 - ldr r0, _08020384 - movs r1, #0 - movs r2, #0x20 - bl LoadPalette - ldr r1, _08020388 - movs r0, #0 - str r0, [sp] - movs r0, #2 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - adds r5, r0, #0 - cmp r5, #0 - beq _0802036A - movs r1, #0x88 - lsls r1, r1, #2 - adds r0, r5, r1 - ldr r4, _0802038C - ldr r1, [r4] - ldr r2, _08020390 - adds r1, r1, r2 - movs r2, #8 - bl CpuFastSet - movs r1, #0x84 - lsls r1, r1, #3 - adds r0, r5, r1 - ldr r1, [r4] - ldr r2, _08020394 - adds r1, r1, r2 - movs r2, #8 - bl CpuFastSet -_0802036A: - ldr r1, _08020398 - movs r0, #2 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - movs r0, #2 - bl CopyBgTilemapBufferToVram - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08020384: .4byte gUnknown_82C5368 -_08020388: .4byte gUnknown_82C5388 -_0802038C: .4byte gUnknown_202293C -_08020390: .4byte 0x00002128 -_08020394: .4byte 0x00002148 -_08020398: .4byte gUnknown_82C55BC - thumb_func_end sub_08020320 - - thumb_func_start sub_0802039C -sub_0802039C: @ 0x0802039C - push {lr} - ldr r0, _080203B8 - movs r1, #0x80 - movs r2, #0x20 - bl LoadPalette - ldr r1, _080203BC - movs r0, #0 - movs r2, #0x20 - movs r3, #1 - bl RequestDma3Fill - pop {r0} - bx r0 - .align 2, 0 -_080203B8: .4byte gUnknown_82C56B4 -_080203BC: .4byte 0x06004020 - thumb_func_end sub_0802039C - - thumb_func_start sub_080203C0 -sub_080203C0: @ 0x080203C0 - push {lr} - ldr r0, _080203E8 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - movs r0, #0 - bl PutWindowTilemap - movs r0, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - pop {r0} - bx r0 - .align 2, 0 -_080203E8: .4byte gUnknown_82C56D4 - thumb_func_end sub_080203C0 - - thumb_func_start sub_080203EC -sub_080203EC: @ 0x080203EC - push {lr} - movs r0, #2 - bl PutWindowTilemap - bl sub_0801FF88 - movs r0, #2 - movs r1, #3 - bl CopyWindowToVram - pop {r0} - bx r0 - thumb_func_end sub_080203EC - - thumb_func_start sub_08020404 -sub_08020404: @ 0x08020404 - push {r4, lr} - sub sp, #0xc - add r1, sp, #8 - movs r0, #0 - strb r0, [r1] - movs r0, #0xff - strb r0, [r1, #1] - movs r4, #0 -_08020414: - ldr r0, _08020454 - ldr r1, [r0] - ldr r0, _08020458 - adds r1, r1, r0 - lsls r2, r4, #0x13 - lsrs r2, r2, #0x10 - movs r0, #8 - str r0, [sp] - movs r0, #0x10 - str r0, [sp, #4] - movs r0, #1 - movs r3, #0 - bl BlitBitmapToWindow - adds r4, #1 - cmp r4, #0xe - ble _08020414 - movs r0, #1 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #1 - bl PutWindowTilemap - movs r0, #1 - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08020454: .4byte gUnknown_202293C -_08020458: .4byte 0x00002128 - thumb_func_end sub_08020404 - - thumb_func_start sub_0802045C -sub_0802045C: @ 0x0802045C - push {lr} - movs r0, #3 - movs r1, #0x11 - bl FillWindowPixelBuffer - movs r0, #3 - movs r1, #1 - movs r2, #0xd0 - bl LoadUserWindowBorderGfx - movs r0, #3 - movs r1, #0xa - movs r2, #0x20 - bl LoadUserWindowBorderGfx_ - ldr r0, _08020488 - movs r1, #0xe0 - movs r2, #0x20 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_08020488: .4byte gUnknown_85D7B04 - thumb_func_end sub_0802045C - - thumb_func_start sub_0802048C -sub_0802048C: @ 0x0802048C - push {lr} - sub sp, #0x10 - ldr r0, _080204C8 - str r0, [sp, #4] - ldr r0, _080204CC - str r0, [sp] - mov r2, sp - movs r1, #0 - movs r0, #1 - strb r0, [r2, #8] - mov r0, sp - strb r1, [r0, #9] - ldr r0, _080204D0 - ldr r0, [r0] - strh r1, [r0, #0x20] - str r1, [sp, #0xc] - add r0, sp, #0xc - ldr r1, _080204D4 - ldr r2, _080204D8 - bl CpuFastSet - ldr r0, [sp] - ldr r1, [sp, #4] - ldr r2, [sp, #8] - bl ScanlineEffect_SetParams - add sp, #0x10 - pop {r0} - bx r0 - .align 2, 0 -_080204C8: .4byte 0xA2600001 -_080204CC: .4byte 0x04000014 -_080204D0: .4byte gUnknown_202293C -_080204D4: .4byte gUnknown_20388C8 -_080204D8: .4byte 0x010003C0 - thumb_func_end sub_0802048C - - thumb_func_start sub_080204DC -sub_080204DC: @ 0x080204DC - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r1, sp - strh r0, [r1] - ldr r5, _08020524 - ldrb r0, [r5, #0x14] - lsls r1, r0, #4 - subs r1, r1, r0 - lsls r1, r1, #7 - ldr r4, _08020528 - adds r1, r1, r4 - ldr r2, _0802052C - mov r0, sp - bl CpuSet - mov r0, sp - adds r0, #2 - movs r1, #0 - strh r1, [r0] - ldrb r2, [r5, #0x14] - lsls r1, r2, #4 - subs r1, r1, r2 - lsls r1, r1, #7 - movs r2, #0x90 - lsls r2, r2, #1 - adds r4, r4, r2 - adds r1, r1, r4 - ldr r2, _08020530 - bl CpuSet - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08020524: .4byte gUnknown_20397C8 -_08020528: .4byte gUnknown_20388C8 -_0802052C: .4byte 0x01000090 -_08020530: .4byte 0x01000010 - thumb_func_end sub_080204DC - - thumb_func_start sub_08020534 -sub_08020534: @ 0x08020534 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #8 - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - mov r0, sp - strh r4, [r0] - ldr r5, _080205A0 - ldr r0, _080205A4 - mov sb, r0 - mov r0, sp - adds r1, r5, #0 - mov r2, sb - bl CpuSet - mov r0, sp - adds r0, #2 - movs r6, #0 - strh r6, [r0] - movs r2, #0x90 - lsls r2, r2, #1 - adds r1, r5, r2 - ldr r2, _080205A8 - mov r8, r2 - bl CpuSet - add r0, sp, #4 - strh r4, [r0] - movs r2, #0xf0 - lsls r2, r2, #3 - adds r1, r5, r2 - mov r2, sb - bl CpuSet - mov r0, sp - adds r0, #6 - strh r6, [r0] - movs r1, #0x8a - lsls r1, r1, #4 - adds r5, r5, r1 - adds r1, r5, #0 - mov r2, r8 - bl CpuSet - add sp, #8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080205A0: .4byte gUnknown_20388C8 -_080205A4: .4byte 0x01000090 -_080205A8: .4byte 0x01000010 - thumb_func_end sub_08020534 - - thumb_func_start sub_080205AC -sub_080205AC: @ 0x080205AC - push {r4, r5, lr} - movs r5, #0 - ldr r4, _080205D8 -_080205B2: - adds r0, r4, #0 - bl LoadCompressedSpriteSheet - adds r4, #8 - adds r5, #1 - cmp r5, #4 - bls _080205B2 - ldr r0, _080205DC - bl LoadSpritePalette - ldr r4, _080205E0 - movs r0, #0x18 - bl sub_08000BC8 - str r0, [r4] - cmp r0, #0 - beq _080205E4 - movs r0, #1 - b _080205E6 - .align 2, 0 -_080205D8: .4byte gUnknown_82C5D4C -_080205DC: .4byte gUnknown_82C5D74 -_080205E0: .4byte gUnknown_2022940 -_080205E4: - movs r0, #0 -_080205E6: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_080205AC - - thumb_func_start sub_080205EC -sub_080205EC: @ 0x080205EC - push {lr} - ldr r0, _08020600 - ldr r0, [r0] - cmp r0, #0 - beq _080205FA - bl Free -_080205FA: - pop {r0} - bx r0 - .align 2, 0 -_08020600: .4byte gUnknown_2022940 - thumb_func_end sub_080205EC - - thumb_func_start sub_08020604 -sub_08020604: @ 0x08020604 - push {lr} - ldr r0, _0802062C - movs r1, #0xa - movs r2, #0x18 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08020630 - ldr r2, [r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _08020634 - adds r1, r1, r0 - str r1, [r2] - pop {r0} - bx r0 - .align 2, 0 -_0802062C: .4byte gUnknown_82C5DB4 -_08020630: .4byte gUnknown_2022940 -_08020634: .4byte gUnknown_20205AC - thumb_func_end sub_08020604 - - thumb_func_start sub_08020638 -sub_08020638: @ 0x08020638 - ldr r1, _08020654 - ldr r1, [r1] - ldr r2, [r1] - adds r2, #0x3e - movs r1, #1 - ands r0, r1 - lsls r0, r0, #2 - ldrb r3, [r2] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r3 - orrs r1, r0 - strb r1, [r2] - bx lr - .align 2, 0 -_08020654: .4byte gUnknown_2022940 - thumb_func_end sub_08020638 - - thumb_func_start sub_08020658 -sub_08020658: @ 0x08020658 - push {r4, r5, lr} - sub sp, #4 - bl sub_0801EEB0 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r5, sp - adds r5, #1 - mov r0, sp - adds r1, r5, #0 - bl sub_0801EEBC - cmp r4, #4 - beq _08020698 - ldr r4, _08020694 - ldr r0, [r4] - ldr r0, [r0] - movs r1, #0 - bl StartSpriteAnim - ldr r1, [r4] - ldr r2, [r1] - mov r0, sp - ldrb r0, [r0] - lsls r0, r0, #3 - adds r0, #0xa - strh r0, [r2, #0x20] - ldr r2, [r1] - b _080206AE - .align 2, 0 -_08020694: .4byte gUnknown_2022940 -_08020698: - ldr r4, _080206C0 - ldr r0, [r4] - ldr r0, [r0] - movs r1, #2 - bl StartSpriteAnim - ldr r2, [r4] - ldr r1, [r2] - movs r0, #0x18 - strh r0, [r1, #0x20] - ldr r2, [r2] -_080206AE: - ldrb r1, [r5] - movs r0, #0xb - muls r0, r1, r0 - adds r0, #0x18 - strh r0, [r2, #0x22] - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080206C0: .4byte gUnknown_2022940 - thumb_func_end sub_08020658 - - thumb_func_start sub_080206C4 -sub_080206C4: @ 0x080206C4 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #2 - ldr r0, _080206F0 - adds r4, r4, r0 - movs r0, #0 - bl IndexOfSpritePaletteTag - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #4 - ldr r0, _080206F4 - adds r1, r1, r0 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - movs r2, #4 - bl LoadPalette - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080206F0: .4byte gUnknown_82C588A -_080206F4: .4byte 0x01010000 - thumb_func_end sub_080206C4 - - thumb_func_start sub_080206F8 -sub_080206F8: @ 0x080206F8 - push {lr} - bl sub_0801EEB0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - beq _08020718 - ldr r0, _08020714 - ldr r0, [r0] - ldr r0, [r0] - movs r1, #1 - bl StartSpriteAnim - b _08020724 - .align 2, 0 -_08020714: .4byte gUnknown_2022940 -_08020718: - ldr r0, _08020730 - ldr r0, [r0] - ldr r0, [r0] - movs r1, #3 - bl StartSpriteAnim -_08020724: - ldr r0, _08020730 - ldr r1, [r0] - movs r0, #0 - strh r0, [r1, #0x14] - pop {r0} - bx r0 - .align 2, 0 -_08020730: .4byte gUnknown_2022940 - thumb_func_end sub_080206F8 - - thumb_func_start sub_08020734 -sub_08020734: @ 0x08020734 - push {r4, lr} - ldr r4, _08020744 - ldr r1, [r4] - ldrh r0, [r1, #0x14] - cmp r0, #3 - bls _08020748 -_08020740: - movs r0, #0 - b _0802077A - .align 2, 0 -_08020744: .4byte gUnknown_2022940 -_08020748: - adds r0, #1 - strh r0, [r1, #0x14] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #3 - bls _08020778 - bl sub_0801EEB0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - beq _0802076C - ldr r0, [r4] - ldr r0, [r0] - movs r1, #0 - bl StartSpriteAnim - b _08020740 -_0802076C: - ldr r0, [r4] - ldr r0, [r0] - movs r1, #2 - bl StartSpriteAnim - b _08020740 -_08020778: - movs r0, #1 -_0802077A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_08020734 - - thumb_func_start sub_08020780 -sub_08020780: @ 0x08020780 - push {r4, r5, lr} - ldr r0, _080207C4 - movs r1, #0x4c - movs r2, #0x98 - movs r3, #2 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _080207C8 - ldr r2, [r5] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r4, _080207CC - adds r1, r1, r4 - str r1, [r2, #8] - ldr r0, _080207D0 - movs r1, #0x40 - movs r2, #0x98 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, [r5] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - str r1, [r2, #4] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080207C4: .4byte gUnknown_82C5DD4 -_080207C8: .4byte gUnknown_2022940 -_080207CC: .4byte gUnknown_20205AC -_080207D0: .4byte gUnknown_82C5DEC - thumb_func_end sub_08020780 - - thumb_func_start sub_080207D4 -sub_080207D4: @ 0x080207D4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801EF98 - adds r3, r0, #0 - cmp r3, #0xf - bne _080207F0 - adds r0, r4, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - b _08020804 -_080207F0: - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r2] - lsls r0, r3, #3 - adds r0, #0x4c - strh r0, [r4, #0x20] -_08020804: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080207D4 - - thumb_func_start sub_0802080C -sub_0802080C: @ 0x0802080C - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0x2e] - adds r0, #1 - movs r2, #0 - strh r0, [r1, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - ble _08020832 - strh r2, [r1, #0x2e] - ldrh r0, [r1, #0x24] - adds r0, #1 - strh r0, [r1, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - ble _08020832 - strh r2, [r1, #0x24] -_08020832: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0802080C - - thumb_func_start sub_08020838 -sub_08020838: @ 0x08020838 - push {r4, r5, lr} - ldr r0, _08020888 - movs r1, #8 - movs r2, #0x98 - movs r3, #3 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _0802088C - ldr r2, [r5] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r4, _08020890 - adds r1, r1, r4 - str r1, [r2, #0xc] - ldr r0, _08020894 - movs r1, #0x20 - movs r2, #0x98 - movs r3, #4 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, [r5] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - str r1, [r2, #0x10] - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08020888: .4byte gUnknown_82C5E44 -_0802088C: .4byte gUnknown_2022940 -_08020890: .4byte gUnknown_20205AC -_08020894: .4byte gUnknown_82C5E5C - thumb_func_end sub_08020838 - - thumb_func_start sub_08020898 -sub_08020898: @ 0x08020898 - push {r4, lr} - bl sub_0801EEB0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bne _080208D0 - bl sub_0801EEDC - cmp r0, #0 - beq _080208DA - ldr r3, _080208CC - ldr r0, [r3] - ldr r1, [r0, #0x10] - adds r1, #0x3e - ldrb r2, [r1] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r0, [r3] - ldr r0, [r0, #0x10] - movs r1, #3 - bl StartSpriteAnim - b _0802090E - .align 2, 0 -_080208CC: .4byte gUnknown_2022940 -_080208D0: - bl sub_0801EFA4 - adds r4, r0, #0 - cmp r4, #3 - bne _080208F0 -_080208DA: - ldr r0, _080208EC - ldr r0, [r0] - ldr r1, [r0, #0x10] - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - b _0802090E - .align 2, 0 -_080208EC: .4byte gUnknown_2022940 -_080208F0: - ldr r3, _08020914 - ldr r0, [r3] - ldr r1, [r0, #0x10] - adds r1, #0x3e - ldrb r2, [r1] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r0, [r3] - ldr r0, [r0, #0x10] - lsls r1, r4, #0x18 - lsrs r1, r1, #0x18 - bl StartSpriteAnim -_0802090E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08020914: .4byte gUnknown_2022940 - thumb_func_end sub_08020898 - - thumb_func_start sub_08020918 -sub_08020918: @ 0x08020918 - ldr r0, _08020920 - ldr r0, [r0] - bx lr - .align 2, 0 -_08020920: .4byte gUnknown_2022944 - thumb_func_end sub_08020918 - - thumb_func_start sub_08020924 -sub_08020924: @ 0x08020924 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08020934 - ldr r0, [r5] - cmp r0, #0 - bne _08020938 - movs r0, #2 - b _08020974 - .align 2, 0 -_08020934: .4byte gUnknown_2022944 -_08020938: - cmp r4, #0 - bne _0802093E - ldr r4, [r0] -_0802093E: - ldrb r0, [r0, #0xa] - bl DestroyTask - ldr r0, [r5] - bl Free - movs r0, #0 - str r0, [r5] - adds r0, r4, #0 - bl SetMainCallback2 - ldr r0, _0802097C - cmp r4, r0 - bne _08020972 - ldr r2, _08020980 - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - movs r0, #0xc8 - lsls r0, r0, #1 - bl PlayNewMapMusic - ldr r0, _08020984 - bl sub_080857F0 -_08020972: - movs r0, #0 -_08020974: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0802097C: .4byte sub_08085A30 -_08020980: .4byte gUnknown_30030B4 -_08020984: .4byte CB1_Overworld - thumb_func_end sub_08020924 - - thumb_func_start sub_08020988 -sub_08020988: @ 0x08020988 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - adds r4, r0, #0 - movs r0, #0 - mov r8, r0 - ldr r0, _080209B8 - ldrb r0, [r0] - cmp r0, #0 - beq _080209A6 - ldr r0, _080209BC - ldrb r0, [r0] - cmp r0, #0 - bne _080209C4 -_080209A6: - adds r0, r4, #0 - bl SetMainCallback2 - ldr r0, _080209C0 - mov r1, r8 - strh r1, [r0, #0x10] - strh r1, [r0, #0x12] - b _08020A10 - .align 2, 0 -_080209B8: .4byte gUnknown_30031C4 -_080209BC: .4byte gUnknown_300319C -_080209C0: .4byte gUnknown_30050A0 -_080209C4: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - mov r0, r8 - cmp r0, #1 - bls _080209E0 - cmp r7, r8 - blo _080209F4 -_080209E0: - adds r0, r4, #0 - bl SetMainCallback2 - ldr r0, _080209F0 - movs r1, #0 - strh r1, [r0, #0x10] - strh r1, [r0, #0x12] - b _08020A10 - .align 2, 0 -_080209F0: .4byte gUnknown_30050A0 -_080209F4: - ldr r6, _08020A1C - ldr r0, _08020A20 - bl AllocZeroed - adds r5, r0, #0 - str r5, [r6] - cmp r5, #0 - bne _08020A28 - adds r0, r4, #0 - bl SetMainCallback2 - ldr r0, _08020A24 - strh r5, [r0, #0x10] - strh r5, [r0, #0x12] -_08020A10: - adds r0, #0xee - ldrb r1, [r0] - movs r1, #1 - strb r1, [r0] - b _08020A8C - .align 2, 0 -_08020A1C: .4byte gUnknown_2022944 -_08020A20: .4byte 0x000041AC -_08020A24: .4byte gUnknown_30050A0 -_08020A28: - str r4, [r5] - movs r4, #0 - strb r7, [r5, #8] - ldr r0, [r6] - mov r1, r8 - strb r1, [r0, #9] - ldr r0, [r6] - bl PutPokeblockListMenuString - ldr r1, [r6] - movs r2, #1 - movs r0, #1 - strh r0, [r1, #0x12] - strb r2, [r1, #0xe] - ldr r1, [r6] - movs r0, #6 - strb r0, [r1, #0xf] - ldr r0, [r6] - adds r0, #0x36 - movs r2, #1 - rsbs r2, r2, #0 - movs r1, #0x10 - str r1, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #0 - bl sub_080243D0 - ldr r2, [r6] - adds r2, #0x36 - movs r0, #4 - movs r1, #1 - bl sub_08022950 - ldr r0, _08020A98 - bl SetMainCallback2 - ldr r0, _08020A9C - movs r1, #8 - bl CreateTask - ldr r1, [r6] - strb r0, [r1, #0xa] - ldr r2, _08020AA0 - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_08020A8C: - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08020A98: .4byte PlaySE -_08020A9C: .4byte sub_08020CBC -_08020AA0: .4byte gUnknown_30030B4 - thumb_func_end sub_08020988 - - thumb_func_start sub_08020AA4 -sub_08020AA4: @ 0x08020AA4 - push {r4, lr} - sub sp, #0xc - ldr r1, _08020ABC - ldrh r0, [r1] - subs r0, #0x85 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x2b - bls _08020AC0 - movs r0, #0x85 - strh r0, [r1] - b _08020AC8 - .align 2, 0 -_08020ABC: .4byte gUnknown_203CB48 -_08020AC0: - ldrh r0, [r1] - movs r1, #1 - bl RemoveBagItem -_08020AC8: - ldr r4, _08020B28 - ldr r2, [r4] - ldrb r1, [r2, #8] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r2, r0 - ldr r1, _08020B2C - ldrh r1, [r1] - subs r1, #0x85 - adds r0, #0xa0 - movs r3, #0 - strh r1, [r0] - movs r0, #1 - strb r0, [r2, #0xe] - ldr r1, [r4] - movs r0, #9 - strb r0, [r1, #0xf] - ldr r0, [r4] - adds r0, #0x36 - movs r2, #1 - rsbs r2, r2, #0 - movs r1, #0x10 - str r1, [sp] - str r3, [sp, #4] - str r3, [sp, #8] - movs r1, #0 - bl sub_080243D0 - ldr r2, [r4] - adds r2, #0x36 - movs r0, #4 - movs r1, #1 - bl sub_08022950 - ldr r0, _08020B30 - movs r1, #8 - bl CreateTask - ldr r1, [r4] - strb r0, [r1, #0xa] - ldr r0, _08020B34 - bl SetMainCallback2 - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08020B28: .4byte gUnknown_2022944 -_08020B2C: .4byte gUnknown_203CB48 -_08020B30: .4byte sub_08020CBC -_08020B34: .4byte PlaySE - thumb_func_end sub_08020AA4 - - thumb_func_start sub_08020B38 -sub_08020B38: @ 0x08020B38 - push {lr} - ldr r0, _08020B50 - ldr r0, [r0] - ldrb r0, [r0, #0xa] - bl DestroyTask - ldr r0, _08020B54 - bl sub_081AA968 - pop {r0} - bx r0 - .align 2, 0 -_08020B50: .4byte gUnknown_2022944 -_08020B54: .4byte sub_08020AA4 - thumb_func_end sub_08020B38 - - thumb_func_start sub_08020B58 -sub_08020B58: @ 0x08020B58 - push {lr} - ldr r0, _08020B64 - bl SetVBlankCallback - pop {r0} - bx r0 - .align 2, 0 -_08020B64: .4byte sub_08020C90 - thumb_func_end sub_08020B58 - - thumb_func_start sub_08020B68 -sub_08020B68: @ 0x08020B68 - push {lr} - movs r0, #0 - bl SetVBlankCallback - pop {r0} - bx r0 - thumb_func_end sub_08020B68 - - thumb_func_start sub_08020B74 -sub_08020B74: @ 0x08020B74 - push {r4, r5, r6, lr} - ldr r4, _08020BB8 - ldr r0, [r4] - adds r0, #0x6c - ldrh r2, [r0] - lsls r2, r2, #8 - movs r1, #0xf0 - lsls r1, r1, #6 - adds r0, r2, #0 - bl sub_081515D8 - adds r2, r0, #0 - ldr r0, [r4] - adds r0, #0x72 - ldrh r3, [r0] - lsls r3, r3, #8 - adds r0, r3, #0 - adds r1, r2, #0 - bl sub_081515D8 - adds r3, r0, #0 - ldr r0, _08020BBC - ands r3, r0 - ldr r2, [r4] - strh r3, [r2, #0x16] - ldrb r0, [r2, #9] - cmp r0, #3 - beq _08020BF8 - cmp r0, #3 - bgt _08020BC0 - cmp r0, #2 - beq _08020BCA - b _08020C64 - .align 2, 0 -_08020BB8: .4byte gUnknown_2022944 -_08020BBC: .4byte 0x0000FFFF -_08020BC0: - cmp r0, #4 - beq _08020C08 - cmp r0, #5 - beq _08020C3C - b _08020C64 -_08020BCA: - ldr r5, _08020BF4 - ldr r1, [r5] - movs r0, #0xf6 - lsls r0, r0, #1 - adds r1, r1, r0 - lsls r0, r3, #0x10 - lsrs r0, r0, #0x10 - ldrh r1, [r1] - cmp r0, r1 - bls _08020C64 - adds r2, #0x25 - ldrb r0, [r2] - movs r1, #2 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r5] - ldr r1, [r4] - ldrh r1, [r1, #0x16] - movs r2, #0xf6 - lsls r2, r2, #1 - b _08020C30 - .align 2, 0 -_08020BF4: .4byte gUnknown_3005AF0 -_08020BF8: - ldr r5, _08020C04 - ldr r0, [r5] - movs r6, #0xf7 - lsls r6, r6, #1 - b _08020C44 - .align 2, 0 -_08020C04: .4byte gUnknown_3005AF0 -_08020C08: - ldr r5, _08020C38 - ldr r1, [r5] - movs r0, #0xf8 - lsls r0, r0, #1 - adds r1, r1, r0 - lsls r0, r3, #0x10 - lsrs r0, r0, #0x10 - ldrh r1, [r1] - cmp r0, r1 - bls _08020C64 - adds r2, #0x25 - ldrb r0, [r2] - movs r1, #2 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r5] - ldr r1, [r4] - ldrh r1, [r1, #0x16] - movs r2, #0xf8 - lsls r2, r2, #1 -_08020C30: - adds r0, r0, r2 - strh r1, [r0] - b _08020C64 - .align 2, 0 -_08020C38: .4byte gUnknown_3005AF0 -_08020C3C: - ldr r5, _08020C88 - ldr r0, [r5] - movs r6, #0xf9 - lsls r6, r6, #1 -_08020C44: - adds r1, r0, r6 - lsls r0, r3, #0x10 - lsrs r0, r0, #0x10 - ldrh r1, [r1] - cmp r0, r1 - bls _08020C64 - adds r2, #0x25 - ldrb r0, [r2] - movs r1, #2 - orrs r0, r1 - strb r0, [r2] - ldr r1, [r5] - ldr r0, [r4] - ldrh r0, [r0, #0x16] - adds r1, r1, r6 - strh r0, [r1] -_08020C64: - ldr r4, _08020C8C - ldr r1, [r4] - ldr r0, [r1, #0x68] - str r0, [r1, #0x1c] - bl GiveBerryPowder - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08020C82 - ldr r0, [r4] - adds r0, #0x25 - ldrb r1, [r0] - movs r2, #1 - orrs r1, r2 - strb r1, [r0] -_08020C82: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08020C88: .4byte gUnknown_3005AF0 -_08020C8C: .4byte gUnknown_2022944 - thumb_func_end sub_08020B74 - - thumb_func_start sub_08020C90 -sub_08020C90: @ 0x08020C90 - push {lr} - bl TransferPlttBuffer - bl LoadOam - bl ProcessSpriteCopyRequests - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08020C90 - - thumb_func_start PlaySE -PlaySE: @ 0x08020CA4 - push {lr} - bl RunTasks - bl sub_08004630 - bl AnimateSprites - bl BuildOamBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PlaySE - - thumb_func_start sub_08020CBC -sub_08020CBC: @ 0x08020CBC - push {r4, lr} - ldr r4, _08020CDC - ldr r0, [r4] - ldr r2, [r0, #4] - cmp r2, #0 - beq _08020CD0 - adds r1, r0, #0 - adds r1, #0x36 - bl _call_via_r2 -_08020CD0: - ldr r0, [r4] - bl sub_0802117C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08020CDC: .4byte gUnknown_2022944 - thumb_func_end sub_08020CBC - - thumb_func_start PutPokeblockListMenuString -PutPokeblockListMenuString: @ 0x08020CE0 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r5, #0 - b _08020D0A -_08020CE8: - lsls r1, r5, #3 - subs r1, r1, r5 - lsls r1, r1, #2 - adds r4, r1, r6 - adds r0, r4, #0 - adds r0, #0x98 - ldr r2, _08020D54 - adds r1, r1, r2 - movs r2, #7 - bl memcpy - adds r4, #0x9f - movs r0, #0xff - strb r0, [r4] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_08020D0A: - ldrb r0, [r6, #9] - cmp r5, r0 - blo _08020CE8 - cmp r5, #4 - bhi _08020D3A -_08020D14: - lsls r4, r5, #3 - subs r4, r4, r5 - lsls r4, r4, #2 - adds r0, r4, #0 - adds r0, #0x98 - adds r0, r6, r0 - movs r1, #1 - movs r2, #7 - bl memset - adds r4, r6, r4 - adds r4, #0x9f - movs r0, #0xff - strb r0, [r4] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #4 - bls _08020D14 -_08020D3A: - ldr r0, _08020D58 - ldr r0, [r0] - ldrb r0, [r0, #0x14] - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1d - cmp r0, #1 - beq _08020D66 - cmp r0, #1 - bgt _08020D5C - cmp r0, #0 - beq _08020D62 - b _08020D6E - .align 2, 0 -_08020D54: .4byte gUnknown_20226A8 -_08020D58: .4byte gUnknown_3005AF0 -_08020D5C: - cmp r0, #2 - beq _08020D6A - b _08020D6E -_08020D62: - movs r0, #8 - b _08020D6C -_08020D66: - movs r0, #4 - b _08020D6C -_08020D6A: - movs r0, #1 -_08020D6C: - strb r0, [r6, #0xb] -_08020D6E: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end PutPokeblockListMenuString - - thumb_func_start sub_08020D74 -sub_08020D74: @ 0x08020D74 - push {r4, r5, lr} - sub sp, #0xc - bl sub_08020918 - adds r5, r0, #0 - cmp r5, #0 - bne _08020D88 - movs r0, #1 - rsbs r0, r0, #0 - b _08021030 -_08020D88: - ldrb r0, [r5, #0xc] - cmp r0, #9 - bls _08020D90 - b _08021028 -_08020D90: - lsls r0, r0, #2 - ldr r1, _08020D9C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08020D9C: .4byte _08020DA0 -_08020DA0: @ jump table - .4byte _08020DC8 @ case 0 - .4byte _08020DE6 @ case 1 - .4byte _08020E0C @ case 2 - .4byte _08020E1A @ case 3 - .4byte _08020EA4 @ case 4 - .4byte _08020EEA @ case 5 - .4byte _08020F18 @ case 6 - .4byte _08020F48 @ case 7 - .4byte _08020FA4 @ case 8 - .4byte _08020FE0 @ case 9 -_08020DC8: - movs r0, #0 - bl SetVBlankCallback - movs r0, #0 - bl SetHBlankCallback - movs r0, #0 - movs r1, #0 - bl SetGpuReg - bl ScanlineEffect_Stop - bl reset_temp_tile_data_buffers - b _08021028 -_08020DE6: - add r0, sp, #8 - movs r4, #0 - strh r4, [r0] - movs r1, #0xe0 - lsls r1, r1, #0x13 - ldr r2, _08020E04 - bl CpuSet - ldr r0, _08020E08 - strb r4, [r0] - movs r0, #3 - bl sub_08034AAC - b _08021028 - .align 2, 0 -_08020E04: .4byte 0x01000200 -_08020E08: .4byte gUnknown_30030BC -_08020E0C: - bl ResetPaletteFade - bl ResetSpriteData - bl FreeAllSpritePalettes - b _08021028 -_08020E1A: - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _08020E98 - movs r0, #0 - movs r2, #4 - bl InitBgsFromTemplates - movs r0, #0xd6 - lsls r0, r0, #1 - adds r1, r5, r0 - movs r0, #1 - bl SetBgTilemapBuffer - ldr r0, _08020E9C - adds r1, r5, r0 - movs r0, #2 - bl SetBgTilemapBuffer - ldr r0, _08020EA0 - adds r1, r5, r0 - movs r0, #3 - bl SetBgTilemapBuffer - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - b _08021028 - .align 2, 0 -_08020E98: .4byte gUnknown_82C5EE0 -_08020E9C: .4byte 0x000021AC -_08020EA0: .4byte 0x000031AC -_08020EA4: - movs r4, #0x20 - str r4, [sp] - str r4, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - movs r0, #0x40 - str r0, [sp, #4] - movs r0, #1 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - str r4, [sp, #4] - movs r0, #2 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - str r4, [sp, #4] - movs r0, #3 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - b _08021028 -_08020EEA: - movs r0, #0 - bl CopyBgTilemapBufferToVram - movs r0, #1 - bl CopyBgTilemapBufferToVram - movs r0, #2 - bl CopyBgTilemapBufferToVram - movs r0, #3 - bl CopyBgTilemapBufferToVram - ldr r1, _08020F14 - movs r0, #0 - str r0, [sp] - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - b _08021028 - .align 2, 0 -_08020F14: .4byte gUnknown_82C6104 -_08020F18: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08020F24 - b _0802102E -_08020F24: - bl InitStandardTextBoxWindows - bl sub_08196DF4 - adds r0, r5, #0 - bl sub_080222E8 - adds r0, r5, #0 - bl sub_08022360 - ldr r0, _08020F44 - ldrb r1, [r0, #8] - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0, #8] - b _08021028 - .align 2, 0 -_08020F44: .4byte gUnknown_2037C74 -_08020F48: - ldr r0, _08020F94 - movs r2, #0xc0 - lsls r2, r2, #1 - movs r1, #0 - bl LoadPalette - ldr r1, _08020F98 - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - ldr r1, _08020F9C - movs r0, #2 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - ldr r1, _08020FA0 - movs r0, #3 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - adds r0, r5, #0 - bl sub_08022434 - movs r0, #1 - bl CopyBgTilemapBufferToVram - movs r0, #2 - bl CopyBgTilemapBufferToVram - movs r0, #3 - bl CopyBgTilemapBufferToVram - b _08021028 - .align 2, 0 -_08020F94: .4byte gUnknown_82C5F84 -_08020F98: .4byte gUnknown_82C74D4 -_08020F9C: .4byte gUnknown_82C7604 -_08020FA0: .4byte gUnknown_82C779C -_08020FA4: - bl LoadWirelessStatusIndicatorSpriteGfx - movs r0, #0 - movs r1, #0 - bl CreateWirelessStatusIndicatorSprite - adds r0, r5, #0 - bl sub_08022494 - ldr r0, _08020FDC - ldrh r1, [r0] - rsbs r1, r1, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x16 - bl SetGpuReg - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - b _08021028 - .align 2, 0 -_08020FDC: .4byte gUnknown_2021B3A -_08020FE0: - ldr r2, _08021024 - ldrb r1, [r2, #8] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #8] - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuRegBits - bl sub_08020B58 - movs r0, #0 - strb r0, [r5, #0xc] - movs r0, #1 - b _08021030 - .align 2, 0 -_08021024: .4byte gUnknown_2037C74 -_08021028: - ldrb r0, [r5, #0xc] - adds r0, #1 - strb r0, [r5, #0xc] -_0802102E: - movs r0, #0 -_08021030: - add sp, #0xc - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_08020D74 - - thumb_func_start sub_08021038 -sub_08021038: @ 0x08021038 - push {r4, r5, lr} - sub sp, #8 - bl sub_08020918 - adds r5, r0, #0 - cmp r5, #0 - bne _0802104C - movs r0, #1 - rsbs r0, r0, #0 - b _08021172 -_0802104C: - ldrb r0, [r5, #0xc] - cmp r0, #7 - bls _08021054 - b _0802116A -_08021054: - lsls r0, r0, #2 - ldr r1, _08021060 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08021060: .4byte _08021064 -_08021064: @ jump table - .4byte _08021084 @ case 0 - .4byte _0802108A @ case 1 - .4byte _08021094 @ case 2 - .4byte _080210AA @ case 3 - .4byte _080210B6 @ case 4 - .4byte _08021112 @ case 5 - .4byte _08021152 @ case 6 - .4byte _08021162 @ case 7 -_08021084: - bl sub_0800FF34 - b _0802116A -_0802108A: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08021170 -_08021094: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - bl UpdatePaletteFade - b _0802116A -_080210AA: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0802116A - b _08021170 -_080210B6: - movs r4, #0x20 - str r4, [sp] - str r4, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - str r4, [sp, #4] - movs r0, #1 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - str r4, [sp, #4] - movs r0, #2 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - str r4, [sp, #4] - movs r0, #3 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, #0 - bl CopyBgTilemapBufferToVram - movs r0, #1 - bl CopyBgTilemapBufferToVram - movs r0, #2 - bl CopyBgTilemapBufferToVram - movs r0, #3 - bl CopyBgTilemapBufferToVram - b _0802116A -_08021112: - bl FreeAllWindowBuffers - movs r0, #0 - bl HideBg - movs r0, #0 - bl UnsetBgTilemapBuffer - movs r0, #1 - bl HideBg - movs r0, #1 - bl UnsetBgTilemapBuffer - movs r0, #2 - bl HideBg - movs r0, #2 - bl UnsetBgTilemapBuffer - movs r0, #3 - bl HideBg - movs r0, #3 - bl UnsetBgTilemapBuffer - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl ClearGpuRegBits - b _0802116A -_08021152: - bl DestroyWirelessStatusIndicatorSprite - adds r0, r5, #0 - bl sub_080226C4 - bl sub_08034B20 - b _0802116A -_08021162: - movs r0, #0 - strb r0, [r5, #0xc] - movs r0, #1 - b _08021172 -_0802116A: - ldrb r0, [r5, #0xc] - adds r0, #1 - strb r0, [r5, #0xc] -_08021170: - movs r0, #0 -_08021172: - add sp, #8 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08021038 - - thumb_func_start sub_0802117C -sub_0802117C: @ 0x0802117C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080211B0 - ldrh r1, [r4, #0x2c] - ldrh r2, [r4, #0x2a] - adds r1, r1, r2 - strh r1, [r0] - rsbs r1, r1, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x16 - bl SetGpuReg - ldrh r0, [r4, #0x12] - cmp r0, #7 - bne _080211A8 - movs r1, #0x92 - lsls r1, r1, #1 - adds r0, r4, r1 - ldrh r1, [r4, #0x28] - bl sub_08022284 -_080211A8: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080211B0: .4byte gUnknown_2021B3A - thumb_func_end sub_0802117C - - thumb_func_start sub_080211B4 -sub_080211B4: @ 0x080211B4 - movs r1, #0 - ldr r2, _080211C8 - strh r2, [r0, #0x2a] - strh r1, [r0, #0x2c] - ldr r0, _080211CC - strh r1, [r0] - ldr r0, _080211D0 - strh r2, [r0] - bx lr - .align 2, 0 -_080211C8: .4byte 0x0000FF98 -_080211CC: .4byte gUnknown_2021B38 -_080211D0: .4byte gUnknown_2021B3A - thumb_func_end sub_080211B4 - - thumb_func_start sub_080211D4 -sub_080211D4: @ 0x080211D4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - mov sl, r0 - str r1, [sp] - movs r0, #0 - mov sb, r0 - mov r1, sl - ldrb r1, [r1, #9] - cmp sb, r1 - blo _080211F2 - b _08021314 -_080211F2: - ldr r1, _08021324 - mov r2, sb - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r2, [r0] - mov r1, sb - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - add r0, sl - adds r0, #0xa0 - ldrh r3, [r0] - adds r3, #0x85 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - ldr r0, _08021328 - adds r1, r2, #0 - bl AddCustomItemIconSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r2, sb - lsls r3, r2, #2 - ldr r1, [sp] - adds r1, #0x38 - adds r6, r1, r3 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _0802132C - adds r1, r1, r0 - str r1, [r6] - ldrb r0, [r1, #5] - movs r2, #0xc - orrs r0, r2 - strb r0, [r1, #5] - ldr r2, [r6] - adds r2, #0x2c - ldrb r0, [r2] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, [r6] - ldr r0, [sp] - adds r0, #0xc - adds r0, r0, r3 - mov r8, r0 - ldr r0, [r0] - ldrh r0, [r0, #8] - adds r0, #0x78 - strh r0, [r1, #0x20] - ldr r1, [r6] - ldr r0, _08021330 - strh r0, [r1, #0x22] - ldr r3, [r6] - adds r5, r3, #0 - adds r5, #0x2e - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r5, #2] - movs r0, #0x20 - strh r0, [r5, #4] - movs r0, #0x70 - strh r0, [r5, #0xe] - mov r2, r8 - ldr r1, [r2] - ldrh r0, [r1, #0xa] - ldrh r1, [r1, #8] - subs r0, r0, r1 - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - adds r0, r1, #0 - cmp r1, #0 - bge _08021288 - adds r0, r1, #3 -_08021288: - asrs r0, r0, #2 - strh r0, [r5, #0xc] - lsls r0, r1, #0x17 - lsrs r7, r0, #0x10 - movs r2, #0x80 - lsls r2, r2, #2 - adds r2, #0x20 - lsrs r2, r2, #1 - movs r0, #7 - movs r1, #0xfe - lsls r1, r1, #6 - str r3, [sp, #4] - bl sub_081515B0 - adds r4, r0, #0 - ldr r0, [r6] - ldrh r0, [r0, #0x20] - lsls r0, r0, #7 - ldr r3, [sp, #4] - strh r0, [r3, #0x2e] - lsls r1, r7, #0x10 - asrs r1, r1, #0x10 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - movs r0, #7 - adds r2, r4, #0 - bl sub_081515B0 - strh r0, [r5, #6] - movs r0, #7 - adds r1, r4, #0 - movs r2, #0x55 - bl sub_0815152C - adds r2, r0, #0 - movs r0, #0 - strh r0, [r5, #8] - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - movs r0, #7 - movs r1, #0xfe - lsls r1, r1, #6 - bl sub_081515B0 - strh r0, [r5, #0xa] - ldrh r0, [r5, #0xe] - ldr r2, _08021334 - adds r1, r2, #0 - orrs r0, r1 - strh r0, [r5, #0xe] - mov r1, r8 - ldr r0, [r1] - movs r2, #8 - ldrsh r0, [r0, r2] - cmp r0, #0 - bge _08021300 - ldr r0, [r6] - movs r1, #1 - bl StartSpriteAffineAnim -_08021300: - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - mov r0, sl - ldrb r0, [r0, #9] - cmp sb, r0 - bhs _08021314 - b _080211F2 -_08021314: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08021324: .4byte gUnknown_82C7A74 -_08021328: .4byte gUnknown_82C7BF8 -_0802132C: .4byte gUnknown_20205AC -_08021330: .4byte 0x0000FFF0 -_08021334: .4byte 0xFFFF8000 - thumb_func_end sub_080211D4 - - thumb_func_start sub_08021338 -sub_08021338: @ 0x08021338 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r5, #0 - adds r4, #0x2e - ldrh r0, [r4, #4] - ldrh r1, [r4, #2] - adds r0, r0, r1 - strh r0, [r4, #2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - ldrh r2, [r5, #0x26] - adds r0, r0, r2 - strh r0, [r5, #0x26] - movs r1, #0xe - ldrsh r0, [r4, r1] - movs r6, #0x80 - lsls r6, r6, #8 - ands r0, r6 - cmp r0, #0 - beq _0802139E - ldrh r0, [r4, #6] - ldrh r2, [r5, #0x2e] - adds r0, r0, r2 - strh r0, [r5, #0x2e] - ldrh r0, [r4, #0xa] - ldrh r1, [r4, #8] - adds r0, r0, r1 - strh r0, [r4, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x17 - movs r2, #0xc - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r5, #0x24] - movs r1, #0xe - ldrsh r0, [r4, r1] - ands r0, r6 - cmp r0, #0 - beq _0802139E - ldrh r0, [r4, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x17 - cmp r0, #0x7e - ble _0802139E - movs r0, #0 - strh r0, [r5, #0x24] - ldrh r1, [r4, #0xe] - ldr r0, _080213D0 - ands r0, r1 - strh r0, [r4, #0xe] -_0802139E: - ldrh r0, [r4] - lsls r0, r0, #0x10 - asrs r0, r0, #0x17 - strh r0, [r5, #0x20] - movs r2, #0x22 - ldrsh r1, [r5, r2] - movs r2, #0x26 - ldrsh r0, [r5, r2] - adds r1, r1, r0 - ldrh r2, [r4, #0xe] - ldr r0, _080213D0 - ands r0, r2 - cmp r1, r0 - blt _080213CA - ldr r0, _080213D4 - str r0, [r5, #0x1c] - adds r0, r5, #0 - bl FreeSpriteOamMatrix - adds r0, r5, #0 - bl DestroySprite -_080213CA: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080213D0: .4byte 0x00007FFF -_080213D4: .4byte sub_08007140 - thumb_func_end sub_08021338 - - thumb_func_start sub_080213D8 -sub_080213D8: @ 0x080213D8 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - movs r5, #0 - ldrb r0, [r6, #9] - cmp r5, r0 - bhs _08021404 - ldr r7, _0802140C -_080213E6: - lsls r0, r5, #1 - adds r0, r0, r7 - ldrh r4, [r0] - adds r0, r4, #0 - bl FreeSpritePaletteByTag - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldrb r0, [r6, #9] - cmp r5, r0 - blo _080213E6 -_08021404: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0802140C: .4byte gUnknown_82C7A74 - thumb_func_end sub_080213D8 - - thumb_func_start sub_08021410 -sub_08021410: @ 0x08021410 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - adds r6, r0, #0 - str r1, [sp] - movs r0, #0 - str r0, [sp, #4] - movs r1, #0x4e - adds r1, r1, r6 - mov sl, r1 - mov sb, r0 - ldrb r2, [r6, #9] - cmp r0, r2 - bhs _080214DE - ldr r7, _08021474 -_08021434: - mov r3, sl - ldrh r0, [r3, #0xa] - mov r4, sb - lsls r1, r4, #1 - add r1, sb - asrs r0, r1 - lsls r0, r0, #0x10 - movs r1, #0xe0 - lsls r1, r1, #0xb - ands r1, r0 - lsrs r1, r1, #0x10 - mov r8, r1 - cmp r1, #0 - beq _080214CE - ldr r0, [sp, #4] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08021478 - lsls r4, r4, #2 - ldr r5, [sp] - adds r5, #0x24 - adds r0, r5, r4 - ldr r0, [r0] - movs r1, #1 - bl StartSpriteAnim - b _0802148A - .align 2, 0 -_08021474: .4byte gUnknown_82C7A58 -_08021478: - mov r0, sb - lsls r4, r0, #2 - ldr r5, [sp] - adds r5, #0x24 - adds r0, r5, r4 - ldr r0, [r0] - movs r1, #0 - bl StartSpriteAnim -_0802148A: - adds r3, r5, r4 - ldr r2, [r3] - adds r2, #0x3e - ldrb r0, [r2] - movs r4, #5 - rsbs r4, r4, #0 - adds r1, r4, #0 - ands r0, r1 - strb r0, [r2] - ldr r2, [r3] - adds r2, #0x2c - ldrb r0, [r2] - subs r4, #0x3c - adds r1, r4, #0 - ands r0, r1 - strb r0, [r2] - ldr r2, [r3] - movs r0, #3 - mov r1, r8 - ands r1, r0 - mov r8, r1 - subs r1, #1 - lsls r1, r1, #1 - adds r0, r1, r7 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - strh r0, [r2, #0x24] - ldr r2, [r3] - ldr r3, _080214EC - adds r1, r1, r3 - movs r0, #0 - ldrsb r0, [r1, r0] - strh r0, [r2, #0x26] -_080214CE: - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldrb r4, [r6, #9] - cmp sb, r4 - blo _08021434 -_080214DE: - ldr r0, [sp, #4] - cmp r0, #0 - bne _080214F0 - adds r2, r6, #0 - adds r2, #0x25 - ldrb r1, [r2] - b _080215CC - .align 2, 0 -_080214EC: .4byte gUnknown_82C7A59 -_080214F0: - ldrh r0, [r6, #0x28] - movs r1, #3 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - mov r1, r8 - str r1, [sp, #8] - movs r2, #0 - mov sb, r2 - mov r3, sl - ldrh r1, [r3, #0xc] - lsls r0, r1, #1 - adds r0, #3 - adds r6, #0x25 - str r6, [sp, #0xc] - adds r3, r1, #0 - cmp sb, r0 - bge _080215C0 -_08021518: - mov r4, sb - lsls r1, r4, #2 - ldr r0, [sp] - adds r0, #0x4c - adds r7, r0, r1 - ldr r2, [r7] - adds r0, r2, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080215AE - ldr r0, _08021584 - str r0, [r2, #0x1c] - lsls r1, r4, #1 - ldr r3, _08021588 - adds r0, r1, r3 - movs r4, #0 - ldrsb r4, [r0, r4] - adds r0, r4, #0 - adds r0, #0x78 - strh r0, [r2, #0x20] - ldr r2, [r7] - ldr r0, _0802158C - adds r1, r1, r0 - movs r6, #0 - ldrsb r6, [r1, r6] - mov r1, r8 - lsls r0, r1, #2 - subs r0, #0x88 - subs r0, r6, r0 - strh r0, [r2, #0x22] - ldr r5, [r7] - ldr r2, [sp, #8] - lsls r1, r2, #2 - adds r0, r4, #0 - bl __divsi3 - adds r4, r4, r0 - strh r4, [r5, #0x24] - ldr r0, [r7] - strh r6, [r0, #0x26] - mov r3, sl - ldrb r1, [r3, #4] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08021590 - ldr r0, [r7] - movs r1, #1 - bl StartSpriteAnim - b _08021598 - .align 2, 0 -_08021584: .4byte sub_0802288C -_08021588: .4byte gUnknown_82C7A5E -_0802158C: .4byte gUnknown_82C7A5F -_08021590: - ldr r0, [r7] - movs r1, #0 - bl StartSpriteAnim -_08021598: - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - mov r4, sl - ldrh r3, [r4, #0xc] - cmp r0, #3 - bls _080215AE - movs r0, #0 - mov r8, r0 -_080215AE: - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - lsls r0, r3, #1 - adds r0, #3 - cmp sb, r0 - blt _08021518 -_080215C0: - ldr r2, [sp, #0xc] - ldrb r1, [r2] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080215D6 -_080215CC: - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - b _080215F4 -_080215D6: - ldr r3, [sp, #4] - cmp r3, #1 - bne _080215E4 - movs r0, #0x4e - bl sub_080A306C - b _080215EA -_080215E4: - movs r0, #0x4d - bl sub_080A306C -_080215EA: - ldr r4, [sp, #0xc] - ldrb r0, [r4] - movs r1, #4 - orrs r0, r1 - strb r0, [r4] -_080215F4: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08021410 - - thumb_func_start sub_08021604 -sub_08021604: @ 0x08021604 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r6, r1, #0 - movs r2, #0 - ldrb r0, [r5, #9] - cmp r2, r0 - bhs _08021636 - adds r4, r6, #0 - adds r4, #0x24 - movs r7, #4 - adds r3, r0, #0 -_0802161A: - lsls r0, r2, #2 - adds r0, r4, r0 - ldr r0, [r0] - adds r0, #0x3e - ldrb r1, [r0] - adds r0, r7, #0 - ands r0, r1 - cmp r0, #0 - beq _08021650 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, r3 - blo _0802161A -_08021636: - movs r2, #0 - adds r3, r6, #0 - adds r3, #0x4c - movs r4, #4 -_0802163E: - lsls r0, r2, #2 - adds r0, r3, r0 - ldr r0, [r0] - adds r0, #0x3e - ldrb r1, [r0] - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - bne _08021654 -_08021650: - movs r0, #0 - b _0802166C -_08021654: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xa - bls _0802163E - movs r1, #0x2c - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _0802166A - movs r0, #0 - strh r0, [r5, #0x2c] -_0802166A: - movs r0, #1 -_0802166C: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08021604 - - thumb_func_start sub_08021674 -sub_08021674: @ 0x08021674 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - lsls r4, r1, #0x10 - lsrs r4, r4, #0x10 - movs r7, #0 - movs r5, #0xe1 - lsls r5, r5, #4 - adds r0, r4, #0 - adds r1, r5, #0 - bl __udivsi3 - strh r0, [r6, #4] - adds r0, r4, #0 - adds r1, r5, #0 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x3c - bl __udivsi3 - strh r0, [r6, #6] - adds r0, r4, #0 - movs r1, #0x3c - bl __umodsi3 - lsls r0, r0, #0x18 - asrs r0, r0, #0x10 - movs r1, #4 - bl sub_08151510 - adds r2, r7, #0 - lsls r0, r0, #0x10 - asrs r3, r0, #0x10 - movs r0, #7 - mov ip, r0 - ldr r5, _080216F0 - movs r4, #1 -_080216C0: - mov r0, ip - subs r1, r0, r2 - adds r0, r3, #0 - asrs r0, r1 - ands r0, r4 - cmp r0, #0 - beq _080216D6 - lsls r0, r2, #2 - adds r0, r0, r5 - ldr r0, [r0] - adds r7, r7, r0 -_080216D6: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #7 - bls _080216C0 - ldr r1, _080216F4 - adds r0, r7, #0 - bl __udivsi3 - strh r0, [r6, #8] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080216F0: .4byte gUnknown_82C5F64 -_080216F4: .4byte 0x000F4240 - thumb_func_end sub_08021674 - - thumb_func_start sub_080216F8 -sub_080216F8: @ 0x080216F8 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0xc - adds r6, r0, #0 - adds r4, r1, #0 - adds r5, r2, #0 - mov r8, r3 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - movs r2, #1 - rsbs r2, r2, #0 - movs r0, #1 - mov r1, r8 - bl sub_08005DAC - lsls r4, r4, #2 - lsrs r0, r0, #1 - subs r4, r4, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r5, #1 - adds r0, r0, r5 - ldr r1, _08021754 - adds r0, r0, r1 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - mov r0, r8 - str r0, [sp, #8] - adds r0, r6, #0 - movs r1, #1 - adds r2, r4, #0 - movs r3, #0 - bl AddTextPrinterParameterized3 - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08021754: .4byte gUnknown_82C5EF0 - thumb_func_end sub_080216F8 - - thumb_func_start sub_08021758 -sub_08021758: @ 0x08021758 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x38 - str r0, [sp, #0xc] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp, #0x10] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x14] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r3, [sp, #0x18] - movs r7, #0 - movs r0, #0 - str r0, [sp, #0x1c] - movs r1, #0 - str r1, [sp, #0x20] - ldr r2, [sp, #0xc] - adds r2, #0x68 - str r2, [sp, #0x24] - ldr r4, [sp, #0xc] - ldrb r4, [r4, #9] - cmp r7, r4 - blo _08021792 - b _08021A9A -_08021792: - ldr r0, [sp, #0x10] - lsls r0, r0, #2 - str r0, [sp, #0x28] - movs r2, #0xd3 - lsls r2, r2, #1 - ldr r1, [sp, #0xc] - adds r2, r1, r2 - str r2, [sp, #0x2c] -_080217A2: - bl DynamicPlaceholderTextUtil_Reset - ldr r4, [sp, #0x10] - cmp r4, #1 - beq _0802188C - cmp r4, #1 - bgt _080217B6 - cmp r4, #0 - beq _080217CE - b _080217BE -_080217B6: - ldr r4, [sp, #0x10] - cmp r4, #2 - bne _080217BE - b _08021990 -_080217BE: - ldr r0, [sp, #0x20] - adds r0, #0xa2 - mov r8, r0 - ldr r1, [sp, #0x1c] - lsls r5, r1, #3 - adds r2, r7, #1 - mov sb, r2 - b _08021A0A -_080217CE: - ldr r0, [sp, #0x24] - adds r0, #0x20 - adds r0, r0, r7 - ldrb r0, [r0] - str r0, [sp, #0x1c] - lsls r3, r7, #1 - ldr r2, [sp, #0x24] - adds r2, #0xc - cmp r7, #0 - beq _080217F4 - adds r0, r2, r3 - subs r1, r7, #1 - lsls r1, r1, #1 - adds r1, r2, r1 - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - beq _080217F4 - str r7, [sp, #0x20] -_080217F4: - ldr r4, [sp, #0x28] - ldr r1, [sp, #0x10] - adds r0, r4, r1 - lsls r0, r0, #1 - adds r0, r3, r0 - adds r0, r2, r0 - ldrh r1, [r0] - ldr r0, _08021880 - movs r2, #1 - movs r3, #4 - bl sub_080089D8 - ldr r0, _08021884 - adds r0, r4, r0 - ldr r5, [r0] - movs r0, #1 - adds r1, r5, #0 - movs r2, #1 - rsbs r2, r2, #0 - bl sub_08005DAC - ldr r2, [sp, #0x14] - subs r0, r2, r0 - subs r0, #4 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r4, [sp, #0x2c] - ldrb r0, [r4] - movs r1, #0xd - adds r4, r7, #0 - muls r4, r1, r4 - ldr r1, [sp, #0x18] - adds r4, r1, r4 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r2, _08021888 - str r2, [sp] - movs r1, #0 - str r1, [sp, #4] - str r5, [sp, #8] - movs r1, #1 - adds r2, r6, #0 - adds r3, r4, #0 - bl AddTextPrinterParameterized3 - ldr r2, [sp, #0x2c] - ldrb r0, [r2] - adds r2, r6, #0 - subs r2, #0x21 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r1, _08021888 - str r1, [sp] - movs r1, #0 - str r1, [sp, #4] - ldr r1, _08021880 - str r1, [sp, #8] - movs r1, #0 - adds r3, r4, #0 - bl AddTextPrinterParameterized3 - ldr r2, [sp, #0x20] - adds r2, #0xa2 - mov r8, r2 - ldr r4, [sp, #0x1c] - lsls r5, r4, #3 - adds r0, r7, #1 - mov sb, r0 - b _08021A0A - .align 2, 0 -_08021880: .4byte gUnknown_2021C40 -_08021884: .4byte gUnknown_82C7C40 -_08021888: .4byte gUnknown_82C5EF0 -_0802188C: - ldr r1, [sp, #0x24] - adds r0, r1, r7 - adds r0, #0x28 - ldrb r0, [r0] - str r0, [sp, #0x1c] - lsls r3, r7, #1 - adds r2, r1, #0 - adds r2, #0xc - cmp r7, #0 - beq _080218B6 - adds r0, r3, #0 - adds r0, #0xa - adds r0, r2, r0 - adds r1, r3, #0 - adds r1, #8 - adds r1, r2, r1 - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - beq _080218B6 - str r7, [sp, #0x20] -_080218B6: - ldr r0, [sp, #0x28] - ldr r1, [sp, #0x10] - adds r4, r0, r1 - lsls r4, r4, #1 - adds r4, r3, r4 - adds r4, r2, r4 - ldrh r1, [r4] - lsrs r1, r1, #4 - ldr r0, _08021974 - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - movs r3, #0 - ldrb r0, [r4] - movs r6, #0xf - ands r6, r0 - movs r2, #0 - ldr r4, [sp, #0x10] - lsls r4, r4, #2 - str r4, [sp, #0x34] - ldr r0, [sp, #0x14] - subs r0, #0x34 - str r0, [sp, #0x30] - ldr r1, [sp, #0x20] - adds r1, #0xa2 - mov r8, r1 - ldr r4, [sp, #0x1c] - lsls r5, r4, #3 - adds r0, r7, #1 - mov sb, r0 - movs r1, #3 - mov sl, r1 - movs r4, #1 - mov ip, r4 - ldr r4, _08021978 -_080218FE: - mov r0, sl - subs r1, r0, r2 - adds r0, r6, #0 - asrs r0, r1 - mov r1, ip - ands r0, r1 - cmp r0, #0 - beq _08021916 - lsls r0, r2, #2 - adds r0, r0, r4 - ldr r0, [r0] - adds r3, r3, r0 -_08021916: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #3 - bls _080218FE - adds r0, r3, #0 - ldr r1, _0802197C - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _08021980 - adds r1, r6, #0 - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - ldr r0, _08021984 - ldr r2, [sp, #0x34] - adds r0, r2, r0 - ldr r1, [r0] - ldr r0, _08021988 - bl StringExpandPlaceholders - ldr r4, [sp, #0x2c] - ldrb r0, [r4] - ldr r1, [sp, #0x30] - lsls r2, r1, #0x18 - lsrs r2, r2, #0x18 - movs r1, #0xd - adds r3, r7, #0 - muls r3, r1, r3 - ldr r4, [sp, #0x18] - adds r3, r4, r3 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r1, _0802198C - str r1, [sp] - movs r4, #0 - str r4, [sp, #4] - ldr r1, _08021988 - str r1, [sp, #8] - movs r1, #0 - bl AddTextPrinterParameterized3 - b _08021A0A - .align 2, 0 -_08021974: .4byte gUnknown_2021C40 -_08021978: .4byte gUnknown_82C5F64 -_0802197C: .4byte 0x000F4240 -_08021980: .4byte gUnknown_2021C54 -_08021984: .4byte gUnknown_82C7C40 -_08021988: .4byte gUnknown_2021C7C -_0802198C: .4byte gUnknown_82C5EF0 -_08021990: - str r7, [sp, #0x1c] - str r7, [sp, #0x20] - lsls r4, r7, #3 - subs r0, r4, r7 - lsls r0, r0, #2 - ldr r2, [sp, #0xc] - adds r0, r2, r0 - adds r0, #0xa0 - ldrb r2, [r0] - cmp r2, #0x2b - bls _080219A8 - movs r2, #0 -_080219A8: - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - ldr r0, _08021A20 - adds r1, r1, r0 - ldr r0, _08021A24 - bl StringCopy - ldr r0, _08021A28 - ldr r1, [r0, #8] - ldr r0, _08021A2C - bl StringExpandPlaceholders - movs r0, #1 - ldr r1, _08021A2C - movs r2, #1 - rsbs r2, r2, #0 - bl sub_08005DAC - adds r2, r0, #0 - ldr r0, [sp, #0x14] - subs r2, r0, r2 - subs r2, #4 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r1, [sp, #0x2c] - ldrb r0, [r1] - movs r1, #0xd - adds r3, r7, #0 - muls r3, r1, r3 - ldr r1, [sp, #0x18] - adds r3, r1, r3 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r1, _08021A30 - str r1, [sp] - movs r1, #0 - str r1, [sp, #4] - ldr r1, _08021A2C - str r1, [sp, #8] - movs r1, #1 - bl AddTextPrinterParameterized3 - movs r2, #0xa2 - adds r2, r2, r7 - mov r8, r2 - adds r5, r4, #0 - adds r4, r7, #1 - mov sb, r4 -_08021A0A: - ldr r1, [sp, #0x1c] - ldr r0, [sp, #0xc] - ldrb r0, [r0, #8] - cmp r1, r0 - bne _08021A3C - ldr r0, _08021A34 - ldr r1, _08021A38 - bl StringCopy - b _08021A44 - .align 2, 0 -_08021A20: .4byte gUnknown_8563150 -_08021A24: .4byte gUnknown_2021C40 -_08021A28: .4byte gUnknown_82C7C40 -_08021A2C: .4byte gUnknown_2021C7C -_08021A30: .4byte gUnknown_82C5EF0 -_08021A34: .4byte gUnknown_2021C68 -_08021A38: .4byte gUnknown_85CC9C8 -_08021A3C: - ldr r0, _08021AAC - ldr r1, _08021AB0 - bl StringCopy -_08021A44: - ldr r4, _08021AAC - mov r1, r8 - strb r1, [r4] - ldr r2, [sp, #0x1c] - subs r1, r5, r2 - lsls r1, r1, #2 - adds r1, #0x98 - ldr r0, [sp, #0xc] - adds r1, r0, r1 - movs r0, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - ldr r0, _08021AB4 - adds r1, r4, #0 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - ldr r1, [sp, #0x2c] - ldrb r0, [r1] - movs r1, #0xd - adds r3, r7, #0 - muls r3, r1, r3 - ldr r2, [sp, #0x18] - adds r3, r2, r3 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r4, _08021AB8 - str r4, [sp] - movs r1, #0 - str r1, [sp, #4] - ldr r2, _08021AB4 - str r2, [sp, #8] - movs r1, #1 - movs r2, #4 - bl AddTextPrinterParameterized3 - mov r4, sb - lsls r0, r4, #0x18 - lsrs r7, r0, #0x18 - ldr r0, [sp, #0xc] - ldrb r0, [r0, #9] - cmp r7, r0 - bhs _08021A9A - b _080217A2 -_08021A9A: - add sp, #0x38 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08021AAC: .4byte gUnknown_2021C68 -_08021AB0: .4byte gUnknown_85CC9D4 -_08021AB4: .4byte gUnknown_2021C7C -_08021AB8: .4byte gUnknown_82C5EF0 - thumb_func_end sub_08021758 - - thumb_func_start sub_08021ABC -sub_08021ABC: @ 0x08021ABC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - mov r8, r0 - movs r0, #0 - mov sl, r0 - movs r6, #0 - movs r1, #0 - str r1, [sp, #0xc] - mov r2, r8 - adds r2, #0x68 - str r2, [sp, #0x10] - movs r4, #0xd3 - lsls r4, r4, #1 - add r4, r8 - mov sb, r4 - ldrb r0, [r4] - movs r1, #4 - bl GetWindowAttribute - lsls r0, r0, #0x1b - movs r1, #0xda - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r7, r0, #0x18 - movs r0, #0x92 - lsls r0, r0, #1 - add r0, r8 - ldr r2, [sp, #0x10] - ldrh r1, [r2, #4] - bl sub_08021674 - ldrb r0, [r4] - ldr r4, _08021CF4 - str r4, [sp] - str r6, [sp, #4] - ldr r1, _08021CF8 - str r1, [sp, #8] - movs r1, #1 - movs r2, #2 - adds r3, r7, #0 - bl AddTextPrinterParameterized3 - ldr r4, _08021CFC - movs r0, #1 - adds r1, r4, #0 - movs r2, #1 - rsbs r2, r2, #0 - bl sub_08005DAC - movs r1, #0xae - subs r0, r1, r0 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - mov r2, sb - ldrb r0, [r2] - ldr r1, _08021CF4 - str r1, [sp] - mov r2, sl - str r2, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - adds r2, r6, #0 - adds r3, r7, #0 - bl AddTextPrinterParameterized3 - adds r0, r6, #0 - subs r0, #0x29 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r0, #0x95 - lsls r0, r0, #1 - add r0, r8 - movs r4, #0 - ldrsh r1, [r0, r4] - ldr r0, _08021D00 - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - ldr r0, _08021D04 - movs r1, #0x96 - lsls r1, r1, #1 - add r1, r8 - movs r2, #0 - ldrsh r1, [r1, r2] - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - ldr r5, _08021D08 - ldr r1, _08021D0C - adds r0, r5, #0 - bl StringExpandPlaceholders - mov r4, sb - ldrb r0, [r4] - ldr r1, _08021CF4 - str r1, [sp] - mov r2, sl - str r2, [sp, #4] - str r5, [sp, #8] - movs r1, #0 - adds r2, r6, #0 - adds r3, r7, #0 - bl AddTextPrinterParameterized3 - ldr r4, _08021D10 - movs r0, #1 - adds r1, r4, #0 - movs r2, #1 - rsbs r2, r2, #0 - bl sub_08005DAC - subs r1, r6, #1 - subs r1, r1, r0 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - mov r1, sb - ldrb r0, [r1] - ldr r2, _08021CF4 - str r2, [sp] - mov r1, sl - str r1, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - adds r2, r6, #0 - adds r3, r7, #0 - bl AddTextPrinterParameterized3 - adds r0, r6, #0 - subs r0, #9 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r0, #0x94 - lsls r0, r0, #1 - add r0, r8 - movs r2, #0 - ldrsh r1, [r0, r2] - ldr r0, _08021D00 - movs r2, #2 - movs r3, #1 - bl sub_080089D8 - ldr r1, _08021D14 - adds r0, r5, #0 - bl StringExpandPlaceholders - mov r4, sb - ldrb r0, [r4] - ldr r1, _08021CF4 - str r1, [sp] - mov r2, sl - str r2, [sp, #4] - str r5, [sp, #8] - movs r1, #0 - adds r2, r6, #0 - adds r3, r7, #0 - bl AddTextPrinterParameterized3 - adds r0, r7, #0 - adds r0, #0xd - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldrb r0, [r4] - ldr r4, _08021CF4 - str r4, [sp] - mov r1, sl - str r1, [sp, #4] - ldr r1, _08021D18 - str r1, [sp, #8] - movs r1, #1 - movs r2, #2 - adds r3, r7, #0 - bl AddTextPrinterParameterized3 - ldr r4, _08021D1C - movs r0, #1 - adds r1, r4, #0 - movs r2, #1 - rsbs r2, r2, #0 - bl sub_08005DAC - movs r2, #0xae - subs r0, r2, r0 - lsls r0, r0, #0x18 - str r0, [sp, #0x18] - lsrs r6, r0, #0x18 - mov r1, sb - ldrb r0, [r1] - ldr r2, _08021CF4 - str r2, [sp] - mov r1, sl - str r1, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - adds r2, r6, #0 - adds r3, r7, #0 - bl AddTextPrinterParameterized3 - mov r4, r8 - ldrb r2, [r4, #0x16] - ldrh r0, [r4, #0x16] - mov ip, r0 - movs r1, #7 - mov sb, r1 - movs r5, #1 - ldr r3, _08021D20 -_08021C62: - mov r4, sb - mov r0, sl - subs r1, r4, r0 - adds r0, r2, #0 - asrs r0, r1 - ands r0, r5 - cmp r0, #0 - beq _08021C80 - mov r1, sl - lsls r0, r1, #2 - adds r0, r0, r3 - ldr r0, [r0] - ldr r4, [sp, #0xc] - adds r4, r4, r0 - str r4, [sp, #0xc] -_08021C80: - mov r0, sl - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - cmp r0, #7 - bls _08021C62 - ldr r0, _08021D00 - mov r2, ip - lsrs r1, r2, #8 - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - ldr r4, _08021D04 - ldr r1, _08021D24 - ldr r0, [sp, #0xc] - bl __udivsi3 - adds r1, r0, #0 - adds r0, r4, #0 - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - ldr r4, _08021D08 - ldr r1, _08021D28 - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r6, #0 - subs r0, #0x31 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - mov r0, r8 - adds r0, #0x25 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - beq _08021D30 - movs r0, #0xd3 - lsls r0, r0, #1 - add r0, r8 - ldrb r0, [r0] - ldr r1, _08021D2C - str r1, [sp] - movs r1, #0 - str r1, [sp, #4] - str r4, [sp, #8] - adds r2, r6, #0 - adds r3, r7, #0 - bl AddTextPrinterParameterized3 - b _08021D4A - .align 2, 0 -_08021CF4: .4byte gUnknown_82C5EF0 -_08021CF8: .4byte gUnknown_85CC9F0 -_08021CFC: .4byte gUnknown_85CCA14 -_08021D00: .4byte gUnknown_2021C40 -_08021D04: .4byte gUnknown_2021C54 -_08021D08: .4byte gUnknown_2021C7C -_08021D0C: .4byte gUnknown_85CCA0C -_08021D10: .4byte gUnknown_85CCA08 -_08021D14: .4byte gUnknown_85CCA04 -_08021D18: .4byte gUnknown_85CC9F4 -_08021D1C: .4byte gUnknown_85CCA20 -_08021D20: .4byte gUnknown_82C5F64 -_08021D24: .4byte 0x000F4240 -_08021D28: .4byte gUnknown_85CCA18 -_08021D2C: .4byte gUnknown_82C5EFF -_08021D30: - movs r0, #0xd3 - lsls r0, r0, #1 - add r0, r8 - ldrb r0, [r0] - ldr r1, _08021DC8 - str r1, [sp] - str r2, [sp, #4] - str r4, [sp, #8] - movs r1, #0 - adds r2, r6, #0 - adds r3, r7, #0 - bl AddTextPrinterParameterized3 -_08021D4A: - adds r0, r7, #0 - adds r0, #0xd - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r4, #0xd3 - lsls r4, r4, #1 - add r8, r4 - mov r1, r8 - ldrb r0, [r1] - ldr r2, _08021DC8 - mov sb, r2 - str r2, [sp] - movs r5, #0 - str r5, [sp, #4] - ldr r1, _08021DCC - str r1, [sp, #8] - movs r1, #1 - movs r2, #2 - adds r3, r7, #0 - bl AddTextPrinterParameterized3 - ldr r0, _08021DD0 - ldr r4, [sp, #0x10] - ldrh r1, [r4, #8] - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - ldr r4, _08021DD4 - ldr r1, _08021DD8 - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - bl StringLength - lsls r0, r0, #0x10 - lsrs r0, r0, #0xd - movs r2, #0x52 - rsbs r2, r2, #0 - adds r1, r2, #0 - subs r1, r1, r0 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - mov r1, r8 - ldrb r0, [r1] - mov r2, sb - str r2, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r1, #0 - adds r2, r6, #0 - adds r3, r7, #0 - bl AddTextPrinterParameterized3 - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08021DC8: .4byte gUnknown_82C5EF0 -_08021DCC: .4byte gUnknown_85CC9FC -_08021DD0: .4byte gUnknown_2021C40 -_08021DD4: .4byte gUnknown_2021C7C -_08021DD8: .4byte gUnknown_85CCA28 - thumb_func_end sub_08021ABC - - thumb_func_start sub_08021DDC -sub_08021DDC: @ 0x08021DDC - push {r4, r5, r6, lr} - sub sp, #8 - adds r4, r0, #0 - adds r6, r1, #0 - adds r0, r6, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #5 - bls _08021DF0 - b _08021F88 -_08021DF0: - lsls r0, r0, #2 - ldr r1, _08021DFC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08021DFC: .4byte _08021E00 -_08021E00: @ jump table - .4byte _08021E18 @ case 0 - .4byte _08021E64 @ case 1 - .4byte _08021E78 @ case 2 - .4byte _08021E9C @ case 3 - .4byte _08021F68 @ case 4 - .4byte _08021F70 @ case 5 -_08021E18: - ldrb r0, [r4, #9] - subs r0, #2 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r6, #0 - bl sub_080222B4 - ldrh r0, [r4, #0x12] - lsls r0, r0, #3 - ldr r2, _08021E40 - mov r1, sp - adds r0, r0, r2 - ldm r0!, {r2, r3} - stm r1!, {r2, r3} - ldrh r0, [r4, #0x12] - cmp r0, #0xd - bne _08021E48 - ldr r0, _08021E44 - adds r0, #4 - b _08021E4A - .align 2, 0 -_08021E40: .4byte gUnknown_82C5EE4 -_08021E44: .4byte gUnknown_82C5F5C -_08021E48: - ldr r0, _08021E60 -_08021E4A: - adds r0, r5, r0 - ldrb r1, [r0] - mov r0, sp - strb r1, [r0, #4] - mov r0, sp - bl AddWindow - adds r1, r6, #0 - adds r1, #0x82 - strb r0, [r1] - b _08021F88 - .align 2, 0 -_08021E60: .4byte gUnknown_82C5F5C -_08021E64: - adds r4, r6, #0 - adds r4, #0x82 - ldrb r0, [r4] - bl PutWindowTilemap - ldrb r0, [r4] - movs r1, #0 - bl FillWindowPixelBuffer - b _08021F88 -_08021E78: - adds r5, r6, #0 - adds r5, #0x82 - ldrb r0, [r5] - ldr r4, _08021E98 - adds r1, r4, #0 - movs r2, #0xd0 - bl LoadUserWindowBorderGfx_ - ldrb r0, [r5] - movs r1, #0 - adds r2, r4, #0 - movs r3, #0xd - bl DrawStdFrameWithCustomTileAndPalette - b _08021F88 - .align 2, 0 -_08021E98: .4byte 0x0000021D -_08021E9C: - ldrb r0, [r4, #9] - subs r0, #2 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldrh r0, [r4, #0x12] - cmp r0, #0xc - beq _08021EF8 - cmp r0, #0xc - bgt _08021EB4 - cmp r0, #0xb - beq _08021EBA - b _08021F88 -_08021EB4: - cmp r0, #0xd - beq _08021F44 - b _08021F88 -_08021EBA: - adds r0, r6, #0 - adds r0, #0x82 - ldrb r0, [r0] - ldr r3, _08021EF0 - movs r1, #0x14 - movs r2, #3 - bl sub_080216F8 - ldr r0, _08021EF4 - adds r0, r5, r0 - ldrb r3, [r0] - lsls r3, r3, #3 - ldrb r1, [r4, #9] - movs r0, #0xd - muls r0, r1, r0 - subs r3, r3, r0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r4, #0 - movs r1, #0 - movs r2, #0xa0 - bl sub_08021758 - adds r1, r6, #0 - adds r1, #0x80 - movs r0, #5 - b _08021F90 - .align 2, 0 -_08021EF0: .4byte gUnknown_85CCA30 -_08021EF4: .4byte gUnknown_82C5F5C -_08021EF8: - adds r0, r6, #0 - adds r0, #0x82 - ldrb r0, [r0] - ldr r2, _08021F3C - adds r1, r4, #0 - adds r1, #0x8f - ldrb r1, [r1] - adds r1, #3 - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r3, [r1] - movs r1, #0x14 - movs r2, #4 - bl sub_080216F8 - ldr r0, _08021F40 - adds r0, r5, r0 - ldrb r3, [r0] - lsls r3, r3, #3 - ldrb r1, [r4, #9] - movs r0, #0xd - muls r0, r1, r0 - subs r3, r3, r0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0xa0 - bl sub_08021758 - adds r1, r6, #0 - adds r1, #0x80 - movs r0, #5 - b _08021F90 - .align 2, 0 -_08021F3C: .4byte gUnknown_82C7C40 -_08021F40: .4byte gUnknown_82C5F5C -_08021F44: - adds r0, r6, #0 - adds r0, #0x82 - ldrb r0, [r0] - ldr r3, _08021F64 - movs r1, #0x16 - movs r2, #3 - bl sub_080216F8 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0xb0 - movs r3, #0x12 - bl sub_08021758 - b _08021F88 - .align 2, 0 -_08021F64: .4byte gUnknown_85CCA40 -_08021F68: - adds r0, r4, #0 - bl sub_08021ABC - b _08021F88 -_08021F70: - adds r0, r6, #0 - adds r0, #0x82 - ldrb r0, [r0] - movs r1, #3 - bl CopyWindowToVram - adds r1, r6, #0 - adds r1, #0x80 - movs r0, #0 - strb r0, [r1] - movs r0, #1 - b _08021F94 -_08021F88: - adds r1, r6, #0 - adds r1, #0x80 - ldrb r0, [r1] - adds r0, #1 -_08021F90: - strb r0, [r1] - movs r0, #0 -_08021F94: - add sp, #8 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_08021DDC - - thumb_func_start sub_08021F9C -sub_08021F9C: @ 0x08021F9C - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0xd3 - lsls r0, r0, #1 - adds r5, r4, r0 - ldrb r0, [r5] - movs r1, #1 - bl sub_08198134 - ldrb r0, [r5] - bl RemoveWindow - adds r0, r4, #0 - bl sub_08022360 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_08021F9C - - thumb_func_start sub_08021FC0 -sub_08021FC0: @ 0x08021FC0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #0 - mov sb, r0 - movs r1, #0 - str r1, [sp, #0xc] - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _08021FF4 - adds r6, r0, r1 - movs r1, #0 - ldrsh r0, [r6, r1] - cmp r0, #1 - beq _08022040 - cmp r0, #1 - bgt _08021FF8 - cmp r0, #0 - beq _08022006 - b _0802221A - .align 2, 0 -_08021FF4: .4byte gUnknown_3005B68 -_08021FF8: - cmp r0, #2 - bne _08021FFE - b _080221E0 -_08021FFE: - cmp r0, #3 - bne _08022004 - b _080221F4 -_08022004: - b _0802221A -_08022006: - ldr r0, _08022038 - bl AddWindow - strh r0, [r6, #2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl PutWindowTilemap - ldrb r0, [r6, #2] - movs r1, #0 - bl FillWindowPixelBuffer - ldrb r0, [r6, #2] - ldr r4, _0802203C - adds r1, r4, #0 - movs r2, #0xd0 - bl LoadUserWindowBorderGfx_ - ldrb r0, [r6, #2] - movs r1, #0 - adds r2, r4, #0 - movs r3, #0xd - bl DrawStdFrameWithCustomTileAndPalette - b _0802221A - .align 2, 0 -_08022038: .4byte gUnknown_82C5F04 -_0802203C: .4byte 0x0000021D -_08022040: - ldr r0, _080221B0 - mov sl, r0 - movs r1, #1 - rsbs r1, r1, #0 - mov r8, r1 - movs r0, #1 - mov r1, sl - mov r2, r8 - bl sub_08005DAC - lsrs r0, r0, #1 - movs r4, #0x60 - subs r0, r4, r0 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldrb r0, [r6, #2] - ldr r5, _080221B4 - str r5, [sp] - mov r1, sb - str r1, [sp, #4] - mov r1, sl - str r1, [sp, #8] - movs r1, #1 - adds r2, r7, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 - ldr r0, _080221B8 - mov sl, r0 - movs r0, #1 - mov r1, sl - mov r2, r8 - bl sub_08005DAC - lsrs r0, r0, #1 - subs r4, r4, r0 - lsls r4, r4, #0x18 - lsrs r7, r4, #0x18 - ldrb r0, [r6, #2] - str r5, [sp] - mov r1, sb - str r1, [sp, #4] - mov r1, sl - str r1, [sp, #8] - movs r1, #1 - adds r2, r7, #0 - movs r3, #0x12 - bl AddTextPrinterParameterized3 - movs r0, #0x2a - mov sl, r0 -_080220A6: - mov r1, sb - adds r1, #2 - ldr r0, _080221BC - movs r2, #0 - movs r3, #1 - bl sub_080089D8 - ldr r0, _080221C0 - ldr r1, _080221C4 - bl StringExpandPlaceholders - ldrb r0, [r6, #2] - ldr r1, _080221C8 - str r1, [sp] - movs r1, #0 - str r1, [sp, #4] - ldr r1, _080221C0 - str r1, [sp, #8] - movs r1, #1 - movs r2, #4 - mov r3, sl - bl AddTextPrinterParameterized3 - movs r0, #1 - ldr r1, _080221CC - movs r2, #1 - rsbs r2, r2, #0 - bl sub_08005DAC - movs r1, #0xbc - subs r1, r1, r0 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - ldrb r0, [r6, #2] - ldr r1, _080221C8 - str r1, [sp] - movs r1, #0 - str r1, [sp, #4] - ldr r1, _080221CC - str r1, [sp, #8] - movs r1, #1 - adds r2, r7, #0 - mov r3, sl - bl AddTextPrinterParameterized3 - movs r2, #0 - mov r0, sb - lsls r4, r0, #1 - mov r1, sl - adds r1, #0xd - str r1, [sp, #0x10] - movs r0, #1 - add sb, r0 - adds r0, r4, r6 - ldrb r3, [r0, #4] - movs r1, #1 - mov r8, r1 - ldr r5, _080221D0 -_0802211A: - movs r0, #7 - subs r1, r0, r2 - adds r0, r3, #0 - asrs r0, r1 - mov r1, r8 - ands r0, r1 - cmp r0, #0 - beq _08022136 - lsls r0, r2, #2 - adds r0, r0, r5 - ldr r0, [r0] - ldr r1, [sp, #0xc] - adds r1, r1, r0 - str r1, [sp, #0xc] -_08022136: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #7 - bls _0802211A - adds r0, r4, r6 - ldrh r1, [r0, #4] - lsrs r1, r1, #8 - ldr r0, _080221BC - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - ldr r0, [sp, #0xc] - ldr r1, _080221D4 - bl __udivsi3 - adds r1, r0, #0 - ldr r0, _080221D8 - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - ldr r0, _080221C0 - ldr r1, _080221DC - bl StringExpandPlaceholders - adds r0, r7, #0 - subs r0, #0x31 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldrb r0, [r6, #2] - ldr r1, _080221C8 - str r1, [sp] - movs r1, #0 - str r1, [sp, #4] - ldr r1, _080221C0 - str r1, [sp, #8] - movs r1, #0 - adds r2, r7, #0 - mov r3, sl - bl AddTextPrinterParameterized3 - ldr r1, [sp, #0x10] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - movs r0, #0 - str r0, [sp, #0xc] - mov r1, sb - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - cmp r0, #3 - bls _080220A6 - ldrb r0, [r6, #2] - movs r1, #3 - bl CopyWindowToVram - b _0802221A - .align 2, 0 -_080221B0: .4byte gUnknown_85CCA70 -_080221B4: .4byte gUnknown_82C5EF9 -_080221B8: .4byte gUnknown_85CCA7C -_080221BC: .4byte gUnknown_2021C40 -_080221C0: .4byte gUnknown_2021C7C -_080221C4: .4byte gUnknown_85CCA8C -_080221C8: .4byte gUnknown_82C5EF0 -_080221CC: .4byte gUnknown_85CCA20 -_080221D0: .4byte gUnknown_82C5F64 -_080221D4: .4byte 0x000F4240 -_080221D8: .4byte gUnknown_2021C54 -_080221DC: .4byte gUnknown_85CCA18 -_080221E0: - ldr r0, _080221F0 - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _0802221A - b _08022220 - .align 2, 0 -_080221F0: .4byte gUnknown_3002360 -_080221F4: - ldrb r0, [r6, #2] - movs r1, #1 - bl sub_08198134 - ldrb r0, [r6, #2] - bl ClearWindowTilemap - ldrb r0, [r6, #2] - bl RemoveWindow - adds r0, r4, #0 - bl DestroyTask - bl EnableBothScriptContexts - bl sub_080987E8 - mov r0, sb - b _0802221E -_0802221A: - ldrh r0, [r6] - adds r0, #1 -_0802221E: - strh r0, [r6] -_08022220: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08021FC0 - - thumb_func_start sub_08022230 -sub_08022230: @ 0x08022230 - push {lr} - bl sub_080987DC - ldr r0, _08022278 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0802227C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r0, _08022280 - ldr r2, [r0] - movs r3, #0xf6 - lsls r3, r3, #1 - adds r0, r2, r3 - ldrh r0, [r0] - strh r0, [r1, #0xc] - adds r3, #2 - adds r0, r2, r3 - ldrh r0, [r0] - strh r0, [r1, #0xe] - adds r3, #2 - adds r0, r2, r3 - ldrh r0, [r0] - strh r0, [r1, #0x10] - adds r3, #2 - adds r0, r2, r3 - ldrh r0, [r0] - strh r0, [r1, #0x12] - pop {r0} - bx r0 - .align 2, 0 -_08022278: .4byte sub_08021FC0 -_0802227C: .4byte gUnknown_3005B60 -_08022280: .4byte gUnknown_3005AF0 - thumb_func_end sub_08022230 - - thumb_func_start sub_08022284 -sub_08022284: @ 0x08022284 - push {r4, lr} - adds r4, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl sub_08021674 - movs r0, #4 - ldrsh r1, [r4, r0] - movs r0, #0 - bl sub_08034E9C - movs r0, #6 - ldrsh r1, [r4, r0] - movs r0, #1 - bl sub_08034E9C - movs r0, #8 - ldrsh r1, [r4, r0] - movs r0, #2 - bl sub_08034E9C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08022284 - - thumb_func_start sub_080222B4 -sub_080222B4: @ 0x080222B4 - push {lr} - ldr r2, [r0, #0x78] - adds r2, #0x3e - ldrb r1, [r2] - movs r3, #4 - orrs r1, r3 - strb r1, [r2] - ldr r1, [r0, #0x7c] - adds r1, #0x3e - ldrb r0, [r1] - orrs r0, r3 - strb r0, [r1] - movs r0, #2 - movs r1, #1 - bl sub_080352D4 - movs r0, #1 - movs r1, #1 - bl sub_080352D4 - movs r0, #0 - movs r1, #1 - bl sub_080352D4 - pop {r0} - bx r0 - thumb_func_end sub_080222B4 - - thumb_func_start sub_080222E8 -sub_080222E8: @ 0x080222E8 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - movs r6, #0 - ldrb r0, [r5, #9] - cmp r6, r0 - bhs _08022348 - ldr r7, _08022350 -_080222F6: - lsls r0, r6, #2 - movs r1, #0x98 - lsls r1, r1, #1 - adds r2, r5, r1 - adds r2, r2, r0 - ldrb r1, [r5, #9] - subs r1, #2 - lsls r0, r1, #2 - adds r0, r0, r1 - adds r0, r6, r0 - adds r0, r0, r7 - ldrb r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08022354 - adds r0, r0, r1 - str r0, [r2] - ldrb r0, [r0] - lsls r0, r0, #3 - ldr r1, _08022358 - adds r0, r0, r1 - bl AddWindow - ldr r1, _0802235C - adds r4, r5, r1 - adds r4, r4, r6 - strb r0, [r4] - ldrb r0, [r4] - bl PutWindowTilemap - ldrb r0, [r4] - movs r1, #0 - bl FillWindowPixelBuffer - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldrb r0, [r5, #9] - cmp r6, r0 - blo _080222F6 -_08022348: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08022350: .4byte gUnknown_82C7A08 -_08022354: .4byte gUnknown_82C7A1C -_08022358: .4byte gUnknown_82C5F0C -_0802235C: .4byte 0x000001A7 - thumb_func_end sub_080222E8 - - thumb_func_start sub_08022360 -sub_08022360: @ 0x08022360 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x14 - adds r7, r0, #0 - movs r6, #0 - ldrb r0, [r7, #9] - cmp r6, r0 - bhs _0802241A - mov r8, r6 -_08022374: - ldr r1, _080223C0 - adds r0, r7, r1 - adds r5, r0, r6 - ldrb r0, [r5] - bl PutWindowTilemap - ldrb r0, [r7, #8] - cmp r6, r0 - bne _080223C8 - lsls r4, r6, #3 - subs r4, r4, r6 - lsls r4, r4, #2 - adds r4, #0x98 - adds r4, r7, r4 - movs r0, #1 - adds r1, r4, #0 - movs r2, #0 - bl sub_08005DAC - lsrs r0, r0, #1 - movs r2, #0x24 - subs r2, r2, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r0, [r5] - mov r1, r8 - str r1, [sp] - str r1, [sp, #4] - ldr r1, _080223C4 - str r1, [sp, #8] - mov r1, r8 - str r1, [sp, #0xc] - str r4, [sp, #0x10] - movs r1, #1 - movs r3, #1 - bl AddTextPrinterParameterized4 - b _08022400 - .align 2, 0 -_080223C0: .4byte 0x000001A7 -_080223C4: .4byte gUnknown_82C5EF3 -_080223C8: - lsls r4, r6, #3 - subs r4, r4, r6 - lsls r4, r4, #2 - adds r4, #0x98 - adds r4, r7, r4 - movs r0, #1 - adds r1, r4, #0 - movs r2, #0 - bl sub_08005DAC - lsrs r0, r0, #1 - movs r2, #0x24 - subs r2, r2, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r0, [r5] - mov r1, r8 - str r1, [sp] - str r1, [sp, #4] - ldr r1, _0802242C - str r1, [sp, #8] - mov r1, r8 - str r1, [sp, #0xc] - str r4, [sp, #0x10] - movs r1, #1 - movs r3, #1 - bl AddTextPrinterParameterized4 -_08022400: - ldr r1, _08022430 - adds r0, r7, r1 - adds r0, r0, r6 - ldrb r0, [r0] - movs r1, #3 - bl CopyWindowToVram - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldrb r0, [r7, #9] - cmp r6, r0 - blo _08022374 -_0802241A: - movs r0, #0 - bl CopyBgTilemapBufferToVram - add sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0802242C: .4byte gUnknown_82C5EF6 -_08022430: .4byte 0x000001A7 - thumb_func_end sub_08022360 - - thumb_func_start sub_08022434 -sub_08022434: @ 0x08022434 - push {r4, r5, r6, lr} - sub sp, #8 - adds r6, r0, #0 - movs r5, #0 - ldr r0, _08022448 - ldr r4, _0802244C - adds r1, r4, #0 - bl LZ77UnCompWram - b _0802247E - .align 2, 0 -_08022448: .4byte gUnknown_82C79C4 -_0802244C: .4byte gUnknown_201C000 -_08022450: - lsls r1, r5, #2 - movs r2, #0x98 - lsls r2, r2, #1 - adds r0, r6, r2 - adds r0, r0, r1 - ldr r3, [r0] - ldrb r0, [r3] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r4, r1 - ldrb r2, [r3, #1] - ldrb r3, [r3, #2] - movs r0, #0xa - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #3 - bl CopyToBgTilemapBufferRect - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_0802247E: - ldrb r0, [r6, #9] - cmp r5, r0 - blo _08022450 - movs r0, #3 - bl CopyBgTilemapBufferToVram - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08022434 - - thumb_func_start sub_08022494 -sub_08022494: @ 0x08022494 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - movs r5, #0 - ldr r0, _08022694 - strh r0, [r6, #0x2a] - strh r5, [r6, #0x2c] - ldr r1, _08022698 - strh r5, [r1] - ldr r1, _0802269C - strh r0, [r1] - ldr r4, _080226A0 -_080224AA: - lsls r0, r5, #3 - adds r0, r0, r4 - bl LoadCompressedSpriteSheet - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #3 - bls _080224AA - ldr r0, _080226A4 - bl LoadSpritePalettes - ldr r0, _080226A8 - movs r1, #0x78 - movs r2, #0x58 - movs r3, #5 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - movs r0, #0xa2 - lsls r0, r0, #1 - adds r3, r6, r0 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r1, _080226AC - adds r0, r0, r1 - str r0, [r3] - ldrb r1, [r0, #5] - movs r2, #0xc - orrs r1, r2 - strb r1, [r0, #5] - ldr r1, [r3] - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #2 - orrs r0, r2 - strb r0, [r1] - ldr r1, [r3] - adds r1, #0x2c - ldrb r0, [r1] - movs r2, #0x40 - orrs r0, r2 - strb r0, [r1] - movs r5, #0 - ldrb r1, [r6, #9] - cmp r5, r1 - bhs _08022586 - movs r7, #4 -_0802250E: - lsls r4, r5, #2 - movs r3, #0x98 - lsls r3, r3, #1 - adds r0, r6, r3 - adds r0, r0, r4 - ldr r0, [r0] - ldrh r1, [r0, #4] - adds r1, #0x78 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldrh r2, [r0, #6] - adds r2, #0x20 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - ldr r0, _080226B0 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - movs r0, #0xa4 - lsls r0, r0, #1 - adds r3, r6, r0 - adds r3, r3, r4 - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - ldr r0, _080226AC - adds r1, r1, r0 - str r1, [r3] - ldrb r0, [r1, #5] - movs r4, #0xd - rsbs r4, r4, #0 - adds r2, r4, #0 - ands r0, r2 - orrs r0, r7 - strb r0, [r1, #5] - ldr r1, [r3] - adds r1, #0x3e - ldrb r0, [r1] - orrs r0, r7 - strb r0, [r1] - ldr r2, [r3] - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #2 - orrs r0, r1 - strb r0, [r2] - ldr r2, [r3] - adds r2, #0x2c - ldrb r0, [r2] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldrb r0, [r6, #9] - cmp r5, r0 - blo _0802250E -_08022586: - movs r5, #0 - ldr r4, _080226B4 - adds r7, r4, #1 -_0802258C: - lsls r2, r5, #1 - adds r0, r2, r4 - movs r1, #0 - ldrsb r1, [r0, r1] - adds r1, #0x78 - adds r2, r2, r7 - ldrb r2, [r2] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - adds r2, #0x88 - ldr r0, _080226B8 - movs r3, #6 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r5, #2 - movs r1, #0xb8 - lsls r1, r1, #1 - adds r3, r6, r1 - adds r3, r3, r0 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r1, _080226AC - adds r0, r0, r1 - str r0, [r3] - ldrb r1, [r0, #5] - movs r2, #0xc - orrs r1, r2 - strb r1, [r0, #5] - ldr r2, [r3] - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r2, [r3] - adds r2, #0x2c - ldrb r0, [r2] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r3] - strh r5, [r0, #0x2e] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0xa - bls _0802258C - movs r5, #0 -_080225F2: - lsls r1, r5, #1 - adds r1, r1, r5 - lsls r1, r1, #0x13 - movs r3, #0xb0 - lsls r3, r3, #0x10 - adds r1, r1, r3 - asrs r1, r1, #0x10 - ldr r0, _080226BC - movs r2, #8 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r5, #2 - movs r4, #0xce - lsls r4, r4, #1 - adds r3, r6, r4 - adds r3, r3, r0 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r1, _080226AC - adds r0, r0, r1 - str r0, [r3] - ldrb r1, [r0, #5] - movs r4, #0xd - rsbs r4, r4, #0 - adds r2, r4, #0 - ands r1, r2 - strb r1, [r0, #5] - ldr r2, [r3] - adds r2, #0x3e - ldrb r0, [r2] - adds r4, #8 - adds r1, r4, #0 - ands r0, r1 - strb r0, [r2] - ldr r2, [r3] - adds r2, #0x2c - ldrb r0, [r2] - movs r3, #0x41 - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r0, r1 - strb r0, [r2] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #1 - bls _080225F2 - ldr r4, _080226C0 - movs r0, #0 - movs r1, #0 - adds r2, r4, #0 - bl sub_08034B6C - adds r2, r4, #0 - adds r2, #0x10 - movs r0, #1 - movs r1, #0 - bl sub_08034B6C - adds r4, #0x20 - movs r0, #2 - movs r1, #0 - adds r2, r4, #0 - bl sub_08034B6C - ldrh r0, [r6, #0x12] - cmp r0, #1 - bne _0802268C - movs r4, #0x92 - lsls r4, r4, #1 - adds r0, r6, r4 - bl sub_080222B4 -_0802268C: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08022694: .4byte 0x0000FF98 -_08022698: .4byte gUnknown_2021B38 -_0802269C: .4byte gUnknown_2021B3A -_080226A0: .4byte gUnknown_82C7A80 -_080226A4: .4byte gUnknown_82C7AA8 -_080226A8: .4byte gUnknown_82C7B98 -_080226AC: .4byte gUnknown_20205AC -_080226B0: .4byte gUnknown_82C7BB0 -_080226B4: .4byte gUnknown_82C7A5E -_080226B8: .4byte gUnknown_82C7BC8 -_080226BC: .4byte gUnknown_82C7BE0 -_080226C0: .4byte gUnknown_82C7C10 - thumb_func_end sub_08022494 - - thumb_func_start sub_080226C4 -sub_080226C4: @ 0x080226C4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r4, #0 - movs r0, #4 - bl FreeSpriteTilesByTag - movs r0, #3 - bl FreeSpriteTilesByTag - movs r0, #2 - bl FreeSpriteTilesByTag - movs r0, #1 - bl FreeSpriteTilesByTag - movs r0, #4 - bl FreeSpritePaletteByTag - movs r0, #2 - bl FreeSpritePaletteByTag - movs r0, #1 - bl FreeSpritePaletteByTag - movs r0, #0xce - lsls r0, r0, #1 - adds r6, r5, r0 -_080226FA: - lsls r0, r4, #2 - adds r0, r6, r0 - ldr r0, [r0] - bl DestroySprite - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #1 - bls _080226FA - movs r0, #2 - bl sub_08035234 - movs r0, #1 - bl sub_08035234 - movs r0, #0 - bl sub_08035234 - movs r4, #0 - movs r1, #0xb8 - lsls r1, r1, #1 - adds r6, r5, r1 -_08022728: - lsls r0, r4, #2 - adds r0, r6, r0 - ldr r0, [r0] - bl DestroySprite - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xa - bls _08022728 - movs r4, #0 - ldrb r2, [r5, #9] - cmp r4, r2 - bhs _08022760 -_08022744: - lsls r1, r4, #2 - movs r2, #0xa4 - lsls r2, r2, #1 - adds r0, r5, r2 - adds r0, r0, r1 - ldr r0, [r0] - bl DestroySprite - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldrb r0, [r5, #9] - cmp r4, r0 - blo _08022744 -_08022760: - movs r1, #0xa2 - lsls r1, r1, #1 - adds r0, r5, r1 - ldr r2, [r0] - adds r0, r2, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0802277C - adds r0, r2, #0 - bl DestroySprite -_0802277C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080226C4 - - thumb_func_start sub_08022784 -sub_08022784: @ 0x08022784 - push {lr} - adds r3, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080227AA - adds r2, r3, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - subs r2, #0x12 - ldrb r0, [r2] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2] -_080227AA: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08022784 - - thumb_func_start sub_080227B0 -sub_080227B0: @ 0x080227B0 - push {r4, r5, lr} - adds r3, r0, #0 - movs r1, #0 - ldr r5, _080227F4 - adds r2, r3, #0 - adds r2, #0x2e - movs r4, #0 -_080227BE: - lsls r0, r1, #1 - adds r0, r2, r0 - strh r4, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #7 - bls _080227BE - movs r0, #0 - strh r0, [r3, #0x24] - strh r0, [r3, #0x26] - adds r2, r3, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - subs r2, #0x12 - ldrb r0, [r2] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2] - str r5, [r3, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080227F4: .4byte sub_08007140 - thumb_func_end sub_080227B0 - - thumb_func_start sub_080227F8 -sub_080227F8: @ 0x080227F8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r5, #0 - adds r4, #0x2e - ldrh r0, [r4, #4] - ldrh r1, [r4, #2] - adds r0, r0, r1 - strh r0, [r4, #2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - ldrh r2, [r5, #0x26] - adds r0, r0, r2 - strh r0, [r5, #0x26] - movs r1, #0xe - ldrsh r0, [r4, r1] - movs r6, #0x80 - lsls r6, r6, #8 - ands r0, r6 - cmp r0, #0 - beq _0802285E - ldrh r0, [r4, #6] - ldrh r2, [r5, #0x2e] - adds r0, r0, r2 - strh r0, [r5, #0x2e] - ldrh r0, [r4, #0xa] - ldrh r1, [r4, #8] - adds r0, r0, r1 - strh r0, [r4, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x17 - movs r2, #0xc - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r5, #0x24] - movs r1, #0xe - ldrsh r0, [r4, r1] - ands r0, r6 - cmp r0, #0 - beq _0802285E - ldrh r0, [r4, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x17 - cmp r0, #0x7e - ble _0802285E - movs r0, #0 - strh r0, [r5, #0x24] - ldrh r1, [r4, #0xe] - ldr r0, _08022884 - ands r0, r1 - strh r0, [r4, #0xe] -_0802285E: - ldrh r0, [r4] - lsls r0, r0, #0x10 - asrs r0, r0, #0x17 - strh r0, [r5, #0x20] - movs r2, #0x22 - ldrsh r1, [r5, r2] - movs r2, #0x26 - ldrsh r0, [r5, r2] - adds r1, r1, r0 - ldrh r2, [r4, #0xe] - ldr r0, _08022884 - ands r0, r2 - cmp r1, r0 - ble _0802287E - ldr r0, _08022888 - str r0, [r5, #0x1c] -_0802287E: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08022884: .4byte 0x00007FFF -_08022888: .4byte sub_080227B0 - thumb_func_end sub_080227F8 - - thumb_func_start sub_0802288C -sub_0802288C: @ 0x0802288C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - adds r7, r6, #0 - adds r7, #0x2e - movs r0, #0 - mov r8, r0 - movs r2, #0xa0 - lsls r2, r2, #2 - strh r2, [r7, #2] - movs r0, #0x20 - strh r0, [r7, #4] - movs r1, #0xa8 - strh r1, [r7, #0xe] - movs r0, #0x24 - ldrsh r4, [r6, r0] - lsls r4, r4, #0x17 - lsrs r4, r4, #0x10 - ldrh r0, [r6, #0x22] - subs r1, r1, r0 - lsls r1, r1, #0x17 - asrs r1, r1, #0x10 - adds r2, #0x20 - asrs r2, r2, #1 - movs r0, #7 - bl sub_081515B0 - adds r5, r0, #0 - ldrh r0, [r6, #0x20] - lsls r0, r0, #7 - strh r0, [r6, #0x2e] - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - movs r0, #7 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_081515B0 - strh r0, [r7, #6] - movs r0, #7 - adds r1, r5, #0 - movs r2, #0x55 - bl sub_0815152C - adds r2, r0, #0 - mov r1, r8 - strh r1, [r7, #8] - movs r1, #0xfe - lsls r1, r1, #6 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - movs r0, #7 - bl sub_081515B0 - strh r0, [r7, #0xa] - movs r2, #0x24 - ldrsh r0, [r6, r2] - cmp r0, #0 - bge _0802290A - adds r0, #3 -_0802290A: - asrs r0, r0, #2 - strh r0, [r7, #0xc] - ldrh r0, [r7, #0xe] - ldr r2, _08022948 - adds r1, r2, #0 - orrs r0, r1 - strh r0, [r7, #0xe] - mov r0, r8 - strh r0, [r6, #0x26] - strh r0, [r6, #0x24] - ldr r0, _0802294C - str r0, [r6, #0x1c] - adds r2, r6, #0 - adds r2, #0x2c - ldrb r1, [r2] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - adds r2, #0x12 - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08022948: .4byte 0xFFFF8000 -_0802294C: .4byte sub_080227F8 - thumb_func_end sub_0802288C - - thumb_func_start sub_08022950 -sub_08022950: @ 0x08022950 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r2, #0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - mov r8, r4 - bl sub_08020918 - adds r6, r0, #0 - cmp r5, #0x19 - bls _0802296E - movs r5, #0 -_0802296E: - cmp r4, #0 - beq _08022978 - cmp r4, #1 - beq _080229A4 - b _080229AE -_08022978: - cmp r5, #0 - beq _0802298C - ldr r0, _080229A0 - lsls r1, r5, #2 - adds r1, r1, r0 - ldr r2, [r1] - adds r0, r6, #0 - adds r1, r7, #0 - bl _call_via_r2 -_0802298C: - ldrb r0, [r6, #0xe] - cmp r0, #0x19 - bls _08022996 - mov r0, r8 - strb r0, [r6, #0xe] -_08022996: - ldr r0, _080229A0 - ldrb r1, [r6, #0xe] - lsls r1, r1, #2 - b _080229A8 - .align 2, 0 -_080229A0: .4byte gUnknown_82C7C58 -_080229A4: - ldr r0, _080229B8 - lsls r1, r5, #2 -_080229A8: - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r6, #4] -_080229AE: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080229B8: .4byte gUnknown_82C7C58 - thumb_func_end sub_08022950 - - thumb_func_start sub_080229BC -sub_080229BC: @ 0x080229BC - push {r4, r5, r6, lr} - sub sp, #4 - adds r6, r0, #0 - ldrb r2, [r1] - ldrb r3, [r1, #1] - lsls r3, r3, #8 - orrs r2, r3 - ldrb r3, [r1, #2] - lsls r3, r3, #0x10 - orrs r2, r3 - ldrb r3, [r1, #3] - lsls r3, r3, #0x18 - adds r0, r2, #0 - orrs r0, r3 - ldrb r2, [r1, #9] - strb r2, [r1] - ldrb r4, [r1, #8] - lsls r4, r4, #8 - ldrb r2, [r1, #7] - orrs r4, r2 - ldr r5, _08022A10 - ldrb r3, [r5, #8] - movs r2, #0x7f - ands r2, r3 - strb r2, [r5, #8] - movs r5, #4 - ldrsb r5, [r1, r5] - ldrb r2, [r1, #5] - ldrb r3, [r1, #6] - str r4, [sp] - adds r1, r5, #0 - bl BeginNormalPaletteFade - bl UpdatePaletteFade - movs r0, #2 - strb r0, [r6, #0xe] - movs r0, #0 - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08022A10: .4byte gUnknown_2037C74 - thumb_func_end sub_080229BC - - thumb_func_start sub_08022A14 -sub_08022A14: @ 0x08022A14 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _08022A48 - cmp r0, #1 - bgt _08022A2A - cmp r0, #0 - beq _08022A34 - b _08022A6A -_08022A2A: - cmp r0, #2 - beq _08022A4E - cmp r0, #3 - beq _08022A5A - b _08022A6A -_08022A34: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08022A70 - ldrb r0, [r5] - cmp r0, #0 - bne _08022A6A - movs r0, #3 - b _08022A6E -_08022A48: - bl sub_0800FF34 - b _08022A6A -_08022A4E: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08022A6A - b _08022A70 -_08022A5A: - ldrb r0, [r4, #0xf] - movs r1, #1 - movs r2, #0 - bl sub_08022950 - movs r0, #0 - strb r0, [r4, #0xc] - b _08022A72 -_08022A6A: - ldrb r0, [r4, #0xc] - adds r0, #1 -_08022A6E: - strb r0, [r4, #0xc] -_08022A70: - movs r0, #0 -_08022A72: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_08022A14 - - thumb_func_start sub_08022A78 -sub_08022A78: @ 0x08022A78 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x10 - adds r7, r0, #0 - adds r5, r1, #0 - ldrb r4, [r5, #3] - lsls r4, r4, #8 - ldrb r0, [r5, #2] - orrs r4, r0 - ldrb r6, [r7, #0xc] - cmp r6, #1 - beq _08022B24 - cmp r6, #1 - bgt _08022A9C - cmp r6, #0 - beq _08022AA6 - b _08022B6C -_08022A9C: - cmp r6, #2 - beq _08022B3C - cmp r6, #3 - beq _08022B4C - b _08022B6C -_08022AA6: - movs r0, #0 - movs r1, #0 - bl sub_08196FB8 - ldrb r1, [r5, #1] - movs r0, #2 - mov r8, r0 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - beq _08022AF4 - ldr r4, _08022AEC - ldr r1, _08022AF0 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl StringExpandPlaceholders - ldrb r3, [r7, #0xb] - str r6, [sp] - mov r0, r8 - str r0, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - movs r0, #3 - str r0, [sp, #0xc] - movs r0, #0 - movs r1, #1 - adds r2, r4, #0 - bl AddTextPrinterParameterized2 - b _08022B16 - .align 2, 0 -_08022AEC: .4byte gUnknown_2021C7C -_08022AF0: .4byte gUnknown_82C5EBC -_08022AF4: - ldr r1, _08022B20 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r2, [r0] - ldrb r3, [r7, #0xb] - str r4, [sp] - mov r0, r8 - str r0, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - movs r0, #3 - str r0, [sp, #0xc] - movs r0, #0 - movs r1, #1 - bl AddTextPrinterParameterized2 -_08022B16: - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - b _08022B6C - .align 2, 0 -_08022B20: .4byte gUnknown_82C5EBC -_08022B24: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08022B72 - cmp r4, #0 - bne _08022B6C - ldrb r0, [r7, #0xc] - adds r0, #1 - strb r0, [r7, #0xc] - b _08022B6C -_08022B3C: - ldr r0, _08022B48 - ldrh r0, [r0, #0x2e] - ands r4, r0 - cmp r4, #0 - bne _08022B6C - b _08022B72 - .align 2, 0 -_08022B48: .4byte gUnknown_3002360 -_08022B4C: - ldrb r1, [r5, #1] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08022B5E - movs r0, #0 - movs r1, #1 - bl sub_08197028 -_08022B5E: - ldrb r0, [r7, #0xe] - movs r1, #1 - movs r2, #0 - bl sub_08022950 - ldrb r0, [r5, #4] - b _08022B70 -_08022B6C: - ldrb r0, [r7, #0xc] - adds r0, #1 -_08022B70: - strb r0, [r7, #0xc] -_08022B72: - movs r0, #0 - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_08022A78 - - thumb_func_start sub_08022B80 -sub_08022B80: @ 0x08022B80 - push {r4, lr} - adds r4, r0, #0 - bl sub_08020D74 - cmp r0, #0 - beq _08022B98 - ldrb r0, [r4, #0xe] - adds r2, r4, #0 - adds r2, #0x36 - movs r1, #0 - bl sub_08022950 -_08022B98: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_08022B80 - - thumb_func_start sub_08022BA0 -sub_08022BA0: @ 0x08022BA0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08021038 - cmp r0, #0 - beq _08022BB8 - ldrb r0, [r4, #0xe] - adds r2, r4, #0 - adds r2, #0x36 - movs r1, #0 - bl sub_08022950 -_08022BB8: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_08022BA0 - - thumb_func_start sub_08022BC0 -sub_08022BC0: @ 0x08022BC0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - beq _08022BD0 - cmp r0, #1 - beq _08022BD6 - b _08022C00 -_08022BD0: - bl sub_0800FF34 - b _08022C00 -_08022BD6: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08022C06 - ldr r0, _08022BFC - bl PlayNewMapMusic - movs r0, #7 - movs r1, #1 - movs r2, #0 - bl sub_08022950 - movs r1, #0 - movs r0, #3 - strh r0, [r4, #0x12] - strb r1, [r4, #0xc] - b _08022C06 - .align 2, 0 -_08022BFC: .4byte 0x000001E5 -_08022C00: - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] -_08022C06: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08022BC0 - - thumb_func_start sub_08022C10 -sub_08022C10: @ 0x08022C10 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - beq _08022C26 - cmp r0, #1 - beq _08022C4C - adds r0, #1 - b _08022C5C -_08022C26: - adds r0, r4, #0 - bl sub_08024340 - movs r0, #1 - str r0, [sp] - adds r0, r5, #0 - movs r1, #0 - movs r2, #1 - movs r3, #0 - bl sub_08024410 - movs r0, #7 - strb r0, [r4, #0xe] - movs r0, #3 - movs r1, #1 - movs r2, #0 - bl sub_08022950 - b _08022C5E -_08022C4C: - movs r0, #8 - strb r0, [r4, #0xe] - movs r0, #5 - movs r1, #1 - movs r2, #0 - bl sub_08022950 - movs r0, #2 -_08022C5C: - strb r0, [r4, #0xc] -_08022C5E: - movs r0, #0 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_08022C10 - - thumb_func_start sub_08022C68 -sub_08022C68: @ 0x08022C68 - push {lr} - movs r1, #0 - str r1, [r0, #4] - ldr r0, _08022C7C - bl SetMainCallback2 - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_08022C7C: .4byte sub_08020B38 - thumb_func_end sub_08022C68 - - thumb_func_start sub_08022C80 -sub_08022C80: @ 0x08022C80 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r5, r0, #0 - adds r2, r1, #0 - ldrb r0, [r5, #0xc] - cmp r0, #5 - bls _08022C90 - b _08022DCC -_08022C90: - lsls r0, r0, #2 - ldr r1, _08022C9C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08022C9C: .4byte _08022CA0 -_08022CA0: @ jump table - .4byte _08022CB8 @ case 0 - .4byte _08022CD8 @ case 1 - .4byte _08022CDE @ case 2 - .4byte _08022D12 @ case 3 - .4byte _08022D22 @ case 4 - .4byte _08022DB0 @ case 5 -_08022CB8: - movs r0, #1 - str r0, [sp] - adds r0, r2, #0 - movs r1, #1 - movs r2, #0 - movs r3, #0 - bl sub_08024410 - movs r0, #9 - strb r0, [r5, #0xe] - movs r0, #3 - movs r1, #1 - movs r2, #0 - bl sub_08022950 - b _08022DD2 -_08022CD8: - bl sub_0800FF34 - b _08022DCC -_08022CDE: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08022DD2 - adds r4, r5, #0 - adds r4, #0x42 - adds r0, r4, #0 - movs r1, #0 - movs r2, #0xc - bl memset - ldrb r1, [r5, #8] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r5, r0 - adds r0, #0xa0 - ldrh r0, [r0] - strh r0, [r4] - movs r0, #0 - adds r1, r4, #0 - movs r2, #2 - bl SendBlock - b _08022DCC -_08022D12: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08022DD2 - movs r0, #0 - strh r0, [r5, #0x10] - b _08022DCC -_08022D22: - bl GetBlockReceivedStatus - ldr r2, _08022DA4 - ldrb r4, [r5, #9] - subs r1, r4, #2 - adds r1, r1, r2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1] - cmp r0, r1 - bne _08022DD2 - movs r3, #0 - cmp r3, r4 - bhs _08022D8A - ldr r7, _08022DA8 - movs r6, #0 - ldr r4, _08022DAC -_08022D44: - lsls r0, r3, #3 - subs r0, r0, r3 - lsls r0, r0, #2 - adds r0, r5, r0 - lsls r1, r3, #8 - adds r1, r1, r7 - ldrh r1, [r1] - adds r2, r0, #0 - adds r2, #0xa0 - strh r1, [r2] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - cmp r1, #0xb0 - bls _08022D62 - strh r6, [r2] -_08022D62: - ldrh r1, [r2] - lsls r1, r1, #2 - adds r1, r1, r4 - ldrh r0, [r5, #0x18] - ldrb r1, [r1] - adds r0, r0, r1 - strh r0, [r5, #0x18] - ldrh r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r0, #2] - ldr r0, [r5, #0x1c] - adds r0, r0, r1 - str r0, [r5, #0x1c] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldrb r0, [r5, #9] - cmp r3, r0 - blo _08022D44 -_08022D8A: - movs r0, #0 - strh r0, [r5, #0x10] - bl ResetBlockReceivedFlags - movs r1, #0x18 - ldrsh r0, [r5, r1] - lsls r0, r0, #8 - movs r1, #0x80 - lsls r1, r1, #6 - bl sub_081515D8 - str r0, [r5, #0x20] - b _08022DCC - .align 2, 0 -_08022DA4: .4byte gUnknown_82C7CD4 -_08022DA8: .4byte gUnknown_202207C -_08022DAC: .4byte gUnknown_8563604 -_08022DB0: - movs r0, #0 - movs r1, #1 - bl sub_08197028 - movs r0, #0xa - movs r1, #1 - movs r2, #0 - bl sub_08022950 - movs r1, #0 - movs r0, #4 - strh r0, [r5, #0x12] - strb r1, [r5, #0xc] - b _08022DD2 -_08022DCC: - ldrb r0, [r5, #0xc] - adds r0, #1 - strb r0, [r5, #0xc] -_08022DD2: - movs r0, #0 - add sp, #4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_08022C80 - - thumb_func_start sub_08022DDC -sub_08022DDC: @ 0x08022DDC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #6 - bls _08022DE8 - b _08022F14 -_08022DE8: - lsls r0, r0, #2 - ldr r1, _08022DF4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08022DF4: .4byte _08022DF8 -_08022DF8: @ jump table - .4byte _08022E14 @ case 0 - .4byte _08022E26 @ case 1 - .4byte _08022E54 @ case 2 - .4byte _08022E8C @ case 3 - .4byte _08022EBC @ case 4 - .4byte _08022EDE @ case 5 - .4byte _08022EF0 @ case 6 -_08022E14: - movs r0, #0x92 - lsls r0, r0, #1 - adds r1, r4, r0 - adds r0, r4, #0 - bl sub_080211D4 - bl sub_0800FF34 - b _08022F14 -_08022E26: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08022F1A - movs r2, #0x92 - lsls r2, r2, #1 - adds r1, r4, r2 - movs r0, #0 - strb r0, [r1] - ldr r3, _08022E50 - adds r1, r4, r3 - strb r0, [r1] - adds r2, #2 - adds r1, r4, r2 - strb r0, [r1] - adds r3, #2 - adds r1, r4, r3 - strb r0, [r1] - b _08022F14 - .align 2, 0 -_08022E50: .4byte 0x00000125 -_08022E54: - movs r0, #0x92 - lsls r0, r0, #1 - adds r3, r4, r0 - ldrb r0, [r3] - lsls r0, r0, #2 - movs r2, #0xae - lsls r2, r2, #1 - adds r1, r4, r2 - adds r0, r1, r0 - ldr r2, [r0] - ldr r0, _08022E88 - str r0, [r2, #0x1c] - ldrb r0, [r3] - lsls r0, r0, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r1, #0x2c - ldrb r2, [r1] - movs r0, #0x7f - ands r0, r2 - strb r0, [r1] - movs r0, #0x3d - bl sub_080A306C - b _08022F14 - .align 2, 0 -_08022E88: .4byte sub_08021338 -_08022E8C: - movs r3, #0x92 - lsls r3, r3, #1 - adds r2, r4, r3 - ldrb r0, [r2] - lsls r0, r0, #2 - adds r3, #0x38 - adds r1, r4, r3 - adds r3, r1, r0 - ldr r0, [r3] - ldr r1, [r0, #0x1c] - ldr r0, _08022EB8 - cmp r1, r0 - beq _08022F1A - movs r0, #0 - str r0, [r3] - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - bl sub_0800FF34 - b _08022F14 - .align 2, 0 -_08022EB8: .4byte sub_08021338 -_08022EBC: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08022F1A - movs r0, #0x92 - lsls r0, r0, #1 - adds r1, r4, r0 - ldrb r0, [r1] - ldrb r2, [r4, #9] - cmp r0, r2 - bhs _08022ED8 - movs r0, #2 - b _08022F18 -_08022ED8: - movs r0, #0 - strb r0, [r1] - b _08022F14 -_08022EDE: - movs r3, #0x92 - lsls r3, r3, #1 - adds r1, r4, r3 - adds r0, r4, #0 - bl sub_080213D8 - bl sub_0800FF34 - b _08022F14 -_08022EF0: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08022F1A - movs r0, #0x2b - bl sub_080A306C - movs r0, #0xb - movs r1, #1 - movs r2, #0 - bl sub_08022950 - movs r1, #0 - movs r0, #5 - strh r0, [r4, #0x12] - strb r1, [r4, #0xc] - b _08022F1A -_08022F14: - ldrb r0, [r4, #0xc] - adds r0, #1 -_08022F18: - strb r0, [r4, #0xc] -_08022F1A: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08022DDC - - thumb_func_start sub_08022F24 -sub_08022F24: @ 0x08022F24 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xc] - cmp r1, #1 - beq _08022F88 - cmp r1, #1 - bgt _08022F38 - cmp r1, #0 - beq _08022F42 - b _08023048 -_08022F38: - cmp r1, #2 - beq _08023008 - cmp r1, #3 - beq _0802302A - b _08023048 -_08022F42: - ldrh r0, [r4, #0x2a] - adds r0, #4 - strh r0, [r4, #0x2a] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _08022F50 - b _0802304E -_08022F50: - strh r1, [r4, #0x2a] - ldr r0, _08022F80 - adds r3, r4, r0 - movs r0, #4 - strb r0, [r3] - movs r2, #0x92 - lsls r2, r2, #1 - adds r1, r4, r2 - movs r0, #0 - strb r0, [r1] - ldr r2, _08022F84 - ldrb r1, [r3] - lsls r0, r1, #3 - subs r0, r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - movs r2, #0x93 - lsls r2, r2, #1 - adds r1, r4, r2 - strb r0, [r1] - movs r0, #0xd6 - bl sub_080A306C - b _08023048 - .align 2, 0 -_08022F80: .4byte 0x00000125 -_08022F84: .4byte gUnknown_82C5E84 -_08022F88: - ldr r7, _08023000 - movs r0, #0x92 - lsls r0, r0, #1 - adds r6, r4, r0 - ldr r1, _08023004 - adds r5, r4, r1 - ldrb r1, [r5] - lsls r0, r1, #3 - subs r0, r0, r1 - ldrb r2, [r6] - adds r0, r0, r2 - adds r0, r0, r7 - movs r1, #0 - ldrsb r1, [r0, r1] - strh r1, [r4, #0x2c] - rsbs r1, r1, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x12 - bl SetGpuReg - ldrh r1, [r4, #0x2c] - rsbs r1, r1, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x1a - bl SetGpuReg - ldrh r1, [r4, #0x2c] - rsbs r1, r1, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x1e - bl SetGpuReg - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] - movs r1, #0x93 - lsls r1, r1, #1 - adds r2, r4, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r2] - cmp r0, r1 - blo _0802304E - ldrb r0, [r5] - cmp r0, #0 - beq _08023048 - subs r0, #1 - strb r0, [r5] - ldrb r1, [r5] - lsls r0, r1, #3 - subs r0, r0, r1 - adds r0, r0, r7 - ldrb r0, [r0] - strb r0, [r2] - movs r0, #0 - strb r0, [r6] - b _0802304E - .align 2, 0 -_08023000: .4byte gUnknown_82C5E84 -_08023004: .4byte 0x00000125 -_08023008: - movs r0, #0 - strh r0, [r4, #0x2c] - movs r0, #0x12 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1a - movs r1, #0 - bl SetGpuReg - movs r0, #0x1e - movs r1, #0 - bl SetGpuReg - bl sub_0800FF34 - b _08023048 -_0802302A: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0802304E - movs r0, #0xc - movs r1, #1 - movs r2, #0 - bl sub_08022950 - movs r1, #0 - movs r0, #6 - strh r0, [r4, #0x12] - strb r1, [r4, #0xc] - b _0802304E -_08023048: - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] -_0802304E: - movs r0, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08022F24 - - thumb_func_start sub_08023058 -sub_08023058: @ 0x08023058 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _08023078 - cmp r0, #1 - bgt _0802306E - cmp r0, #0 - beq _0802309E - b _080230F8 -_0802306E: - cmp r0, #2 - beq _08023096 - cmp r0, #3 - beq _080230A4 - b _080230F8 -_08023078: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080230FE - movs r1, #0x80 - lsls r1, r1, #5 - movs r0, #0 - str r0, [sp] - adds r0, r1, #0 - movs r2, #0x78 - movs r3, #0x50 - bl sub_0802E788 - b _080230F8 -_08023096: - bl sub_0802E7E8 - cmp r0, #0 - bne _080230FE -_0802309E: - bl sub_0800FF34 - b _080230F8 -_080230A4: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080230FE - movs r0, #0x92 - lsls r0, r0, #1 - adds r1, r4, r0 - movs r0, #0 - strb r0, [r1] - ldr r2, _080230E0 - adds r1, r4, r2 - strb r0, [r1] - adds r2, #1 - adds r1, r4, r2 - strb r0, [r1] - adds r2, #1 - adds r1, r4, r2 - strb r0, [r1] - strh r0, [r4, #0x10] - ldrb r0, [r4, #8] - cmp r0, #0 - bne _080230E4 - movs r0, #0xd - movs r1, #1 - movs r2, #0 - bl sub_08022950 - b _080230EE - .align 2, 0 -_080230E0: .4byte 0x00000125 -_080230E4: - movs r0, #0xe - movs r1, #1 - movs r2, #0 - bl sub_08022950 -_080230EE: - movs r1, #0 - movs r0, #7 - strh r0, [r4, #0x12] - strb r1, [r4, #0xc] - b _080230FE -_080230F8: - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] -_080230FE: - movs r0, #0 - add sp, #4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_08023058 - - thumb_func_start sub_08023108 -sub_08023108: @ 0x08023108 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r5, r0, #0 - movs r0, #0 - mov r8, r0 - movs r2, #0 - adds r6, r2, #0 - ldrb r1, [r5, #9] - cmp r6, r1 - blo _08023124 - b _0802322E -_08023124: - movs r2, #0x5e - adds r2, r2, r5 - mov sb, r2 - ldr r3, _080231D4 - mov sl, r3 -_0802312E: - lsls r0, r6, #4 - ldr r1, _080231D8 - adds r2, r0, r1 - ldrh r1, [r2] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - movs r3, #0xbc - lsls r3, r3, #6 - cmp r0, r3 - bne _08023220 - ldrh r0, [r2, #2] - cmp r0, #2 - bne _08023220 - ldrb r1, [r2, #4] - movs r0, #4 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _08023214 - mov r0, sb - ldrb r2, [r0] - lsrs r1, r2, #3 - mov r3, sl - adds r0, r6, r3 - ldrb r0, [r0] - orrs r1, r0 - lsls r1, r1, #3 - movs r0, #7 - ands r0, r2 - orrs r0, r1 - mov r1, sb - strb r0, [r1] - lsls r2, r6, #3 - subs r0, r2, r6 - lsls r0, r0, #2 - adds r3, r5, r0 - adds r1, r3, #0 - adds r1, #0xb1 - movs r0, #1 - strb r0, [r1] - subs r1, #7 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - subs r1, #8 - ldrh r0, [r5, #0x28] - ldrh r1, [r1] - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r0, #0xa6 - adds r0, r0, r3 - mov ip, r0 - ldrh r1, [r0] - subs r0, r1, #1 - adds r7, r2, #0 - cmp r4, r0 - blt _080231DC - adds r0, r1, #1 - cmp r4, r0 - bgt _080231DC - adds r1, r3, #0 - adds r1, #0xa4 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - mov r2, ip - strh r4, [r2] - adds r0, r3, #0 - adds r0, #0xa8 - ldrh r1, [r1] - ldrh r3, [r0] - cmp r1, r3 - bls _080231EE - strh r1, [r0] - b _080231EE - .align 2, 0 -_080231D4: .4byte gUnknown_82C5E74 -_080231D8: .4byte gUnknown_3003130 -_080231DC: - subs r0, r7, r6 - lsls r0, r0, #2 - adds r0, r5, r0 - adds r2, r0, #0 - adds r2, #0xa4 - movs r1, #0 - strh r1, [r2] - adds r0, #0xa6 - strh r4, [r0] -_080231EE: - subs r0, r7, r6 - lsls r0, r0, #2 - adds r0, r5, r0 - ldrh r1, [r5, #0x28] - adds r3, r0, #0 - adds r3, #0xa2 - movs r4, #0 - strh r1, [r3] - adds r2, r0, #0 - adds r2, #0xb0 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bls _08023220 - strb r4, [r2] - b _08023220 -_08023214: - lsls r0, r6, #3 - subs r0, r0, r6 - lsls r0, r0, #2 - adds r0, r5, r0 - adds r0, #0xb1 - strb r1, [r0] -_08023220: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldrb r0, [r5, #9] - cmp r6, r0 - bhs _0802322E - b _0802312E -_0802322E: - mov r1, r8 - cmp r1, #1 - bls _08023268 - movs r6, #0 - ldrb r2, [r5, #9] - cmp r6, r2 - bhs _08023268 -_0802323C: - lsls r0, r6, #3 - subs r0, r0, r6 - lsls r0, r0, #2 - adds r1, r5, r0 - adds r3, r1, #0 - adds r3, #0xb1 - ldrb r2, [r3] - cmp r2, #0 - beq _0802325C - movs r0, #2 - orrs r0, r2 - strb r0, [r3] - adds r1, #0xac - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_0802325C: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldrb r3, [r5, #9] - cmp r6, r3 - blo _0802323C -_08023268: - mov r0, r8 - cmp r0, #0 - beq _080232D0 - ldrh r0, [r5, #0x2e] - add r0, r8 - strh r0, [r5, #0x2e] - ldr r1, _080232B8 - mov r0, r8 - subs r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - add r0, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldrh r0, [r5, #0x34] - add r0, r8 - strh r0, [r5, #0x34] - ldrh r0, [r5, #0x1a] - add r0, r8 - strh r0, [r5, #0x1a] - movs r1, #0x18 - ldrsh r0, [r5, r1] - movs r3, #0x1a - ldrsh r2, [r5, r3] - subs r0, r0, r2 - cmp r0, #0 - ble _080232BC - lsls r2, r2, #8 - ldr r1, [r5, #0x20] - adds r0, r2, #0 - bl sub_081515D8 - adds r2, r0, #0 - asrs r2, r2, #8 - adds r0, r5, #0 - adds r0, #0x24 - strb r2, [r0] - b _080232D0 - .align 2, 0 -_080232B8: .4byte gUnknown_82C5E7C -_080232BC: - adds r1, r5, #0 - adds r1, #0x24 - movs r0, #0x20 - strb r0, [r1] - adds r2, r5, #0 - adds r2, #0x5e - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] -_080232D0: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08023108 - - thumb_func_start sub_080232E0 -sub_080232E0: @ 0x080232E0 - push {r4, r5, r6, lr} - adds r3, r0, #0 - movs r6, #0 - movs r1, #0 - adds r4, r1, #0 - ldrb r0, [r3, #9] - cmp r4, r0 - bhs _0802333C - adds r5, r3, #0 - adds r5, #0x64 -_080232F4: - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - adds r1, r3, r0 - adds r0, r1, #0 - adds r0, #0xb1 - ldrb r2, [r0] - cmp r2, #0 - beq _08023330 - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r0, r1, #0 - adds r0, #0xb0 - ldrb r0, [r0] - adds r1, r0, #1 - movs r0, #2 - ands r0, r2 - cmp r0, #0 - beq _08023320 - movs r0, #4 - orrs r1, r0 -_08023320: - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r1, r0 - lsls r0, r1, #0x10 - lsrs r1, r0, #0x10 - ldrh r0, [r5] - orrs r1, r0 - strh r1, [r5] -_08023330: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldrb r1, [r3, #9] - cmp r4, r1 - blo _080232F4 -_0802333C: - adds r0, r3, #0 - adds r0, #0x24 - ldrb r1, [r0] - adds r0, #0x3c - strh r1, [r0] - cmp r6, #0 - bne _08023360 - ldr r2, _0802335C - adds r0, r3, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _0802342C - movs r4, #0x92 - lsls r4, r4, #1 - adds r1, r3, r4 - b _0802339E - .align 2, 0 -_0802335C: .4byte 0x00000127 -_08023360: - ldr r5, _0802338C - adds r2, r3, r5 - ldrb r0, [r2] - cmp r0, #0 - beq _080233A6 - ldr r0, _08023390 - adds r1, r3, r0 - ldrb r2, [r1] - cmp r6, r2 - beq _08023398 - subs r0, r6, #1 - strb r0, [r1] - ldr r1, _08023394 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0] - movs r4, #0x93 - lsls r4, r4, #1 - adds r1, r3, r4 - strb r0, [r1] - b _080233CC - .align 2, 0 -_0802338C: .4byte 0x00000127 -_08023390: .4byte 0x00000125 -_08023394: .4byte gUnknown_82C5EA8 -_08023398: - movs r5, #0x92 - lsls r5, r5, #1 - adds r1, r3, r5 -_0802339E: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080233CC -_080233A6: - movs r0, #0x92 - lsls r0, r0, #1 - adds r1, r3, r0 - movs r0, #0 - strb r0, [r1] - subs r0, r6, #1 - ldr r4, _080233FC - adds r1, r3, r4 - strb r0, [r1] - ldr r1, _08023400 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0] - movs r5, #0x93 - lsls r5, r5, #1 - adds r1, r3, r5 - strb r0, [r1] - movs r0, #1 - strb r0, [r2] -_080233CC: - ldr r0, _08023404 - adds r4, r3, r0 - ldrb r0, [r4] - cmp r0, #0 - beq _0802342C - movs r2, #0x92 - lsls r2, r2, #1 - adds r1, r3, r2 - movs r5, #0x93 - lsls r5, r5, #1 - adds r2, r3, r5 - ldrb r0, [r1] - ldrb r5, [r2] - cmp r0, r5 - blo _08023408 - movs r0, #0 - strb r0, [r1] - ldr r5, _080233FC - adds r1, r3, r5 - strb r0, [r1] - strb r0, [r2] - strb r0, [r4] - movs r1, #0 - b _0802341C - .align 2, 0 -_080233FC: .4byte 0x00000125 -_08023400: .4byte gUnknown_82C5EA8 -_08023404: .4byte 0x00000127 -_08023408: - ldr r2, _08023424 - ldrb r1, [r1] - ldr r4, _08023428 - adds r0, r3, r4 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, #1 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r1, [r1] -_0802341C: - adds r0, r3, #0 - adds r0, #0x5f - strb r1, [r0] - b _08023434 - .align 2, 0 -_08023424: .4byte gUnknown_82C5EA8 -_08023428: .4byte 0x00000125 -_0802342C: - adds r1, r3, #0 - adds r1, #0x5f - movs r0, #0 - strb r0, [r1] -_08023434: - ldrh r1, [r3, #0x26] - adds r0, r3, #0 - adds r0, #0x62 - strh r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080232E0 - - thumb_func_start sub_08023444 -sub_08023444: @ 0x08023444 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - ldr r3, _080234DC - ldrh r1, [r3, #0x2e] - movs r4, #1 - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - beq _08023466 - adds r2, r5, #0 - adds r2, #0x5e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] -_08023466: - ldrh r1, [r3, #0x2c] - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - beq _0802348A - ldrb r1, [r5, #8] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r5, r0 - adds r1, r0, #0 - adds r1, #0xae - ldrh r0, [r1] - ldrh r2, [r5, #0x28] - cmp r0, r2 - bhs _0802348A - adds r0, #1 - strh r0, [r1] -_0802348A: - ldrb r0, [r5, #8] - adds r7, r5, #0 - adds r7, #0x5e - cmp r0, #0 - beq _080234A0 - ldrb r1, [r7] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _080234A0 - b _080235DC -_080234A0: - adds r4, r5, #0 - adds r4, #0x5c - movs r0, #2 - strh r0, [r4] - ldrh r0, [r5, #0x28] - movs r1, #0x1e - bl __umodsi3 - lsls r0, r0, #0x10 - mov r8, r4 - adds r6, r5, #0 - adds r6, #0x25 - cmp r0, #0 - bne _080234F8 - movs r0, #0x2e - ldrsh r2, [r5, r0] - ldr r1, _080234E0 - ldrb r0, [r5, #9] - subs r0, #2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r2, r0 - ble _080234E4 - ldrh r0, [r5, #0x30] - adds r0, #1 - strh r0, [r5, #0x30] - ldrb r0, [r6] - movs r1, #0x10 - orrs r0, r1 - b _080234EC - .align 2, 0 -_080234DC: .4byte gUnknown_3002360 -_080234E0: .4byte gUnknown_82C7CD0 -_080234E4: - ldrb r1, [r6] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r1 -_080234EC: - strb r0, [r6] - movs r0, #0 - strh r0, [r5, #0x2e] - ldrh r0, [r5, #0x32] - adds r0, #1 - strh r0, [r5, #0x32] -_080234F8: - ldrh r0, [r5, #0x28] - movs r1, #0xf - bl __umodsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0802356E - movs r0, #0x34 - ldrsh r2, [r5, r0] - ldr r3, _08023524 - ldrb r0, [r5, #9] - subs r0, #2 - lsls r1, r0, #2 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r2, r0 - bge _08023528 - ldrb r1, [r6] - movs r0, #0x1f - ands r0, r1 - strb r0, [r6] - b _08023568 - .align 2, 0 -_08023524: .4byte gUnknown_82C7CC0 -_08023528: - adds r0, r3, #1 - adds r0, r1, r0 - ldrb r0, [r0] - cmp r2, r0 - bge _0802353C - ldrb r0, [r6] - movs r1, #0x1f - ands r1, r0 - movs r0, #0x20 - b _08023564 -_0802353C: - adds r0, r3, #2 - adds r0, r1, r0 - ldrb r0, [r0] - cmp r2, r0 - bge _0802354C - movs r0, #2 - strh r0, [r5, #0x34] - b _08023568 -_0802354C: - adds r0, r3, #3 - adds r0, r1, r0 - ldrb r0, [r0] - cmp r2, r0 - bge _0802355C - movs r0, #3 - strh r0, [r5, #0x34] - b _08023568 -_0802355C: - ldrb r0, [r6] - movs r1, #0x1f - ands r1, r0 - movs r0, #0x80 -_08023564: - orrs r1, r0 - strb r1, [r6] -_08023568: - movs r0, #0 - strh r0, [r5, #0x34] - b _0802359A -_0802356E: - ldrh r0, [r5, #0x10] - adds r0, #1 - strh r0, [r5, #0x10] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x3c - bls _0802359A - cmp r0, #0x46 - bls _0802358A - bl sub_080115B4 - movs r0, #0 - strh r0, [r5, #0x10] - b _0802359A -_0802358A: - ldrb r0, [r7] - movs r4, #0xf8 - ands r4, r0 - cmp r4, #0 - bne _0802359A - bl sub_080115B4 - strh r4, [r5, #0x10] -_0802359A: - ldrh r1, [r5, #0x28] - ldr r0, _080235E8 - cmp r1, r0 - bls _080235AA - ldrb r0, [r7] - movs r1, #1 - orrs r0, r1 - strb r0, [r7] -_080235AA: - ldrb r1, [r6] - lsls r1, r1, #0x1b - lsrs r1, r1, #0x1f - lsls r1, r1, #1 - ldrb r2, [r7] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r7] - ldrb r0, [r6] - lsrs r0, r0, #5 - adds r2, r5, #0 - adds r2, #0x66 - strh r0, [r2] - adds r4, r5, #0 - adds r4, #0x42 - adds r0, r4, #0 - mov r1, r8 - movs r2, #0xc - bl memcpy - adds r0, r4, #0 - bl sub_0800F934 -_080235DC: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080235E8: .4byte 0x00008C9F - thumb_func_end sub_08023444 - - thumb_func_start sub_080235EC -sub_080235EC: @ 0x080235EC - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - ldr r3, _0802363C - ldrb r0, [r5, #9] - cmp r4, r0 - bhs _08023614 - movs r1, #0 -_080235FC: - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - adds r0, r5, r0 - adds r0, #0xb1 - strb r1, [r0] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldrb r0, [r5, #9] - cmp r4, r0 - blo _080235FC -_08023614: - adds r2, r3, #0 - ldrh r0, [r2] - movs r1, #0xff - lsls r1, r1, #8 - ands r1, r0 - movs r0, #0xbc - lsls r0, r0, #6 - cmp r1, r0 - bne _0802362C - ldrh r0, [r2, #2] - cmp r0, #2 - beq _08023640 -_0802362C: - adds r2, r5, #0 - adds r2, #0x25 - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - b _0802367E - .align 2, 0 -_0802363C: .4byte gUnknown_3003130 -_08023640: - adds r4, r5, #0 - adds r4, #0x4e - adds r0, r4, #0 - adds r1, r3, #0 - movs r2, #0xe - bl memcpy - ldrh r0, [r4, #6] - strh r0, [r5, #0x2a] - movs r0, #5 - ldrsb r0, [r4, r0] - strh r0, [r5, #0x2c] - ldrh r0, [r4, #8] - strh r0, [r5, #0x28] - movs r0, #0x92 - lsls r0, r0, #1 - adds r1, r5, r0 - adds r0, r5, #0 - bl sub_08021410 - ldrb r1, [r4, #4] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0802367E - adds r0, r5, #0 - adds r0, #0x25 - ldrb r1, [r0] - movs r2, #8 - orrs r1, r2 - strb r1, [r0] -_0802367E: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_080235EC - - thumb_func_start sub_08023684 -sub_08023684: @ 0x08023684 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5c - movs r1, #0 - movs r2, #0xc - bl memset - adds r0, r4, #0 - adds r0, #0x4e - movs r1, #0 - movs r2, #0xe - bl memset - adds r0, r4, #0 - bl sub_080235EC - ldrh r1, [r4, #0x2c] - rsbs r1, r1, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x12 - bl SetGpuReg - ldrh r1, [r4, #0x2c] - rsbs r1, r1, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x1a - bl SetGpuReg - ldrh r1, [r4, #0x2c] - rsbs r1, r1, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x1e - bl SetGpuReg - adds r0, r4, #0 - adds r0, #0x25 - ldrb r1, [r0] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0802370C - ldrh r1, [r4, #0x28] - ldr r0, _080236F4 - cmp r1, r0 - bls _080236F8 - adds r0, #1 - strh r0, [r4, #0x28] - movs r0, #0x10 - movs r1, #1 - movs r2, #0 - bl sub_08022950 - b _08023702 - .align 2, 0 -_080236F4: .4byte 0x00008C9F -_080236F8: - movs r0, #0xf - movs r1, #1 - movs r2, #0 - bl sub_08022950 -_08023702: - movs r1, #0 - movs r0, #0 - strh r0, [r4, #0x10] - strb r1, [r4, #0xc] - b _08023726 -_0802370C: - ldrh r0, [r4, #0x26] - adds r0, #1 - strh r0, [r4, #0x26] - adds r0, r4, #0 - bl sub_08023108 - adds r0, r4, #0 - bl sub_080232E0 - adds r0, r4, #0 - bl sub_08023444 - movs r0, #0 -_08023726: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_08023684 - - thumb_func_start sub_0802372C -sub_0802372C: @ 0x0802372C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5c - movs r1, #0 - movs r2, #0xc - bl memset - adds r0, r4, #0 - adds r0, #0x4e - movs r1, #0 - movs r2, #0xe - bl memset - adds r0, r4, #0 - bl sub_080235EC - ldrh r1, [r4, #0x2c] - rsbs r1, r1, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x12 - bl SetGpuReg - ldrh r1, [r4, #0x2c] - rsbs r1, r1, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x1a - bl SetGpuReg - ldrh r1, [r4, #0x2c] - rsbs r1, r1, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x1e - bl SetGpuReg - adds r0, r4, #0 - adds r0, #0x25 - ldrb r1, [r0] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080237B4 - ldrh r1, [r4, #0x28] - ldr r0, _0802379C - cmp r1, r0 - bls _080237A0 - adds r0, #1 - strh r0, [r4, #0x28] - movs r0, #0x10 - movs r1, #1 - movs r2, #0 - bl sub_08022950 - b _080237AA - .align 2, 0 -_0802379C: .4byte 0x00008C9F -_080237A0: - movs r0, #0xf - movs r1, #1 - movs r2, #0 - bl sub_08022950 -_080237AA: - movs r1, #0 - movs r0, #0 - strh r0, [r4, #0x10] - strb r1, [r4, #0xc] - b _080237BC -_080237B4: - adds r0, r4, #0 - bl sub_08023444 - movs r0, #0 -_080237BC: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0802372C - - thumb_func_start sub_080237C4 -sub_080237C4: @ 0x080237C4 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #5 - bls _080237D0 - b _08023946 -_080237D0: - lsls r0, r0, #2 - ldr r1, _080237DC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080237DC: .4byte _080237E0 -_080237E0: @ jump table - .4byte _080237F8 @ case 0 - .4byte _08023820 @ case 1 - .4byte _08023870 @ case 2 - .4byte _080238F0 @ case 3 - .4byte _0802390E @ case 4 - .4byte _08023928 @ case 5 -_080237F8: - movs r0, #8 - strh r0, [r4, #0x12] - movs r0, #0xd6 - bl sub_080A306C - movs r0, #1 - rsbs r0, r0, #0 - ldr r2, _0802381C - movs r1, #8 - bl BlendPalettes - movs r0, #0x92 - lsls r0, r0, #1 - adds r1, r4, r0 - movs r0, #2 - strb r0, [r1] - b _08023946 - .align 2, 0 -_0802381C: .4byte 0x000003FF -_08023820: - movs r1, #0x92 - lsls r1, r1, #1 - adds r5, r4, r1 - ldrb r0, [r5] - subs r0, #1 - strb r0, [r5] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _08023836 - b _0802394C -_08023836: - movs r0, #1 - rsbs r0, r0, #0 - ldr r2, _08023864 - movs r1, #0 - bl BlendPalettes - ldr r2, _08023868 - adds r1, r4, r2 - movs r0, #4 - strb r0, [r1] - movs r0, #0 - strb r0, [r5] - ldr r2, _0802386C - ldrb r1, [r1] - lsls r0, r1, #3 - subs r0, r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - movs r2, #0x93 - lsls r2, r2, #1 - adds r1, r4, r2 - strb r0, [r1] - b _08023946 - .align 2, 0 -_08023864: .4byte 0x000003FF -_08023868: .4byte 0x00000125 -_0802386C: .4byte gUnknown_82C5E84 -_08023870: - ldr r7, _080238E8 - movs r0, #0x92 - lsls r0, r0, #1 - adds r6, r4, r0 - ldr r1, _080238EC - adds r5, r4, r1 - ldrb r1, [r5] - lsls r0, r1, #3 - subs r0, r0, r1 - ldrb r2, [r6] - adds r0, r0, r2 - adds r0, r0, r7 - movs r1, #0 - ldrsb r1, [r0, r1] - strh r1, [r4, #0x2c] - rsbs r1, r1, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x12 - bl SetGpuReg - ldrh r1, [r4, #0x2c] - rsbs r1, r1, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x1a - bl SetGpuReg - ldrh r1, [r4, #0x2c] - rsbs r1, r1, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x1e - bl SetGpuReg - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] - movs r1, #0x93 - lsls r1, r1, #1 - adds r2, r4, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r2] - cmp r0, r1 - blo _0802394C - ldrb r0, [r5] - cmp r0, #0 - beq _08023946 - subs r0, #1 - strb r0, [r5] - ldrb r1, [r5] - lsls r0, r1, #3 - subs r0, r0, r1 - adds r0, r0, r7 - ldrb r0, [r0] - strb r0, [r2] - movs r0, #0 - strb r0, [r6] - b _0802394C - .align 2, 0 -_080238E8: .4byte gUnknown_82C5E84 -_080238EC: .4byte 0x00000125 -_080238F0: - movs r0, #0 - strh r0, [r4, #0x2c] - movs r0, #0x12 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1a - movs r1, #0 - bl SetGpuReg - movs r0, #0x1e - movs r1, #0 - bl SetGpuReg - b _08023946 -_0802390E: - movs r2, #0x92 - lsls r2, r2, #1 - adds r1, r4, r2 - adds r0, r4, #0 - bl sub_08021604 - cmp r0, #0 - beq _0802394C - bl sub_0800FF34 - movs r0, #0 - strh r0, [r4, #0x10] - b _08023946 -_08023928: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0802394C - movs r0, #0x11 - movs r1, #1 - movs r2, #0 - bl sub_08022950 - movs r1, #0 - movs r0, #0 - strh r0, [r4, #0x10] - strb r1, [r4, #0xc] - b _0802394E -_08023946: - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] -_0802394C: - movs r0, #0 -_0802394E: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_080237C4 - - thumb_func_start sub_08023954 -sub_08023954: @ 0x08023954 - push {r4, r5, r6, lr} - sub sp, #4 - adds r5, r0, #0 - adds r6, r1, #0 - ldrb r0, [r5, #0xc] - cmp r0, #1 - beq _08023998 - cmp r0, #1 - bgt _0802396C - cmp r0, #0 - beq _08023976 - b _08023A30 -_0802396C: - cmp r0, #2 - beq _080239BE - cmp r0, #3 - beq _080239F0 - b _08023A30 -_08023976: - movs r0, #9 - strh r0, [r5, #0x12] - movs r0, #0x20 - bl sub_080A306C - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #8 - movs r2, #0x1f - bl BlendPalettes - movs r0, #0x92 - lsls r0, r0, #1 - adds r1, r5, r0 - movs r0, #4 - strb r0, [r1] - b _08023A30 -_08023998: - movs r0, #0x92 - lsls r0, r0, #1 - adds r4, r5, r0 - ldrb r0, [r4] - subs r0, #1 - strb r0, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08023A36 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - movs r2, #0x1f - bl BlendPalettes - movs r0, #0 - strb r0, [r4] - b _08023A30 -_080239BE: - movs r0, #0x92 - lsls r0, r0, #1 - adds r1, r5, r0 - adds r0, r5, #0 - bl sub_08021604 - cmp r0, #0 - beq _08023A36 - bl sub_0800FF34 - movs r0, #0 - strh r0, [r5, #0x10] - movs r0, #0x12 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1a - movs r1, #0 - bl SetGpuReg - movs r0, #0x1e - movs r1, #0 - bl SetGpuReg - b _08023A30 -_080239F0: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08023A36 - ldr r0, _08023A2C - ldr r1, [r5, #0x1c] - movs r2, #0 - movs r3, #6 - bl sub_080089D8 - movs r4, #0 - str r4, [sp] - adds r0, r6, #0 - movs r1, #7 - movs r2, #1 - movs r3, #0 - bl sub_08024410 - movs r0, #0x13 - strb r0, [r5, #0xe] - movs r0, #3 - movs r1, #1 - movs r2, #0 - bl sub_08022950 - movs r0, #0 - strh r4, [r5, #0x10] - b _08023A34 - .align 2, 0 -_08023A2C: .4byte gUnknown_2021C40 -_08023A30: - ldrb r0, [r5, #0xc] - adds r0, #1 -_08023A34: - strb r0, [r5, #0xc] -_08023A36: - movs r0, #0 - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_08023954 - - thumb_func_start sub_08023A40 -sub_08023A40: @ 0x08023A40 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - mov r8, r0 - ldrb r0, [r0, #0xc] - cmp r0, #7 - bls _08023A56 - b _08023DF4 -_08023A56: - lsls r0, r0, #2 - ldr r1, _08023A60 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08023A60: .4byte _08023A64 -_08023A64: @ jump table - .4byte _08023A84 @ case 0 - .4byte _08023ACA @ case 1 - .4byte _08023ADE @ case 2 - .4byte _08023B52 @ case 3 - .4byte _08023CE2 @ case 4 - .4byte _08023D8E @ case 5 - .4byte _08023DA0 @ case 6 - .4byte _08023DD4 @ case 7 -_08023A84: - mov r4, r8 - adds r4, #0x42 - adds r0, r4, #0 - movs r1, #0 - movs r2, #4 - bl memset - mov r1, r8 - ldrb r0, [r1, #8] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - add r1, r8 - adds r1, #0xae - mov r3, r8 - ldrh r2, [r3, #0x28] - ldrh r0, [r1] - cmp r0, r2 - bls _08023AAC - strh r2, [r1] -_08023AAC: - mov r5, r8 - ldrb r0, [r5, #8] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - add r1, r8 - adds r1, #0xae - ldrh r0, [r1] - strh r0, [r4] - movs r0, #0 - adds r1, r4, #0 - movs r2, #2 - bl SendBlock - b _08023DF4 -_08023ACA: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08023AD6 - b _08023DFC -_08023AD6: - movs r0, #0 - mov r6, r8 - strh r0, [r6, #0x10] - b _08023DF4 -_08023ADE: - bl GetBlockReceivedStatus - ldr r2, _08023B44 - mov r1, r8 - ldrb r3, [r1, #9] - subs r1, r3, #2 - adds r1, r1, r2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1] - cmp r0, r1 - beq _08023AF8 - b _08023DFC -_08023AF8: - movs r2, #0 - mov sb, r2 - mov r4, r8 - adds r4, #0x42 - cmp sb, r3 - bhs _08023B2C - ldr r2, _08023B48 -_08023B06: - mov r3, sb - lsls r1, r3, #3 - subs r1, r1, r3 - lsls r1, r1, #2 - add r1, r8 - lsls r0, r3, #8 - adds r0, r0, r2 - ldrh r0, [r0] - adds r1, #0xae - strh r0, [r1] - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - mov r5, r8 - ldrb r5, [r5, #9] - cmp sb, r5 - blo _08023B06 -_08023B2C: - movs r0, #0 - mov r6, r8 - strh r0, [r6, #0x10] - strh r0, [r4] - bl ResetBlockReceivedFlags - ldrb r0, [r6, #8] - cmp r0, #0 - bne _08023B4C - movs r0, #3 - strb r0, [r6, #0xc] - b _08023DFC - .align 2, 0 -_08023B44: .4byte gUnknown_82C7CD4 -_08023B48: .4byte gUnknown_202207C -_08023B4C: - movs r0, #6 - mov r1, r8 - b _08023DFA -_08023B52: - mov r0, r8 - adds r0, #0x68 - movs r1, #0 - movs r2, #0x30 - bl memset - mov r2, r8 - ldrh r1, [r2, #0x28] - mov r0, r8 - adds r0, #0x6c - strh r1, [r0] - movs r3, #0x18 - ldrsh r4, [r2, r3] - ldrh r0, [r2, #0x28] - movs r1, #0x3c - bl __udivsi3 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl __divsi3 - mov r1, r8 - adds r1, #0x6e - strh r0, [r1] - mov r5, r8 - movs r6, #0x30 - ldrsh r0, [r5, r6] - lsls r0, r0, #8 - movs r4, #0xc8 - lsls r4, r4, #6 - adds r1, r4, #0 - bl sub_08151550 - adds r2, r0, #0 - movs r0, #0x32 - ldrsh r1, [r5, r0] - lsls r1, r1, #8 - adds r0, r2, #0 - bl sub_081515D8 - adds r2, r0, r4 - asrs r2, r2, #8 - movs r1, #0x7f - adds r0, r2, #0 - ands r0, r1 - mov r1, r8 - adds r1, #0x70 - strh r0, [r1] - lsls r2, r2, #8 - movs r1, #0xc8 - lsls r1, r1, #7 - adds r0, r2, #0 - bl sub_081515D8 - adds r2, r0, #0 - ldrb r1, [r5, #9] - ldr r0, [r5, #0x1c] - muls r0, r1, r0 - lsls r4, r0, #8 - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_08151550 - adds r4, r0, #0 - asrs r0, r4, #8 - str r0, [r5, #0x68] - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - mov r1, r8 - adds r1, #0x8f - strb r0, [r1] - movs r2, #0 - mov sb, r2 - adds r7, r1, #0 - ldrb r3, [r5, #9] - cmp sb, r3 - blo _08023BFC - b _08023DF4 -_08023BFC: - mov r0, r8 - adds r0, #0x88 - add r0, sb - mov r5, sb - strb r5, [r0] - mov r0, r8 - adds r0, #0x90 - add r0, sb - strb r5, [r0] - mov r6, sb - lsls r2, r6, #1 - mov r1, r8 - adds r1, #0x74 - adds r1, r1, r2 - lsls r0, r6, #3 - subs r0, r0, r6 - lsls r0, r0, #2 - mov r5, r8 - adds r3, r5, r0 - adds r5, r3, #0 - adds r5, #0xaa - ldrh r0, [r5] - strh r0, [r1] - mov r1, r8 - adds r1, #0x72 - ldrh r6, [r1] - adds r0, r0, r6 - strh r0, [r1] - ldrb r0, [r7] - adds r6, r2, #0 - cmp r0, #1 - beq _08023C6A - cmp r0, #1 - bgt _08023C46 - cmp r0, #0 - beq _08023C4C - b _08023CC4 -_08023C46: - cmp r0, #2 - beq _08023C88 - b _08023CC4 -_08023C4C: - ldrh r0, [r5] - cmp r0, #0 - beq _08023C8E - adds r0, r3, #0 - adds r0, #0xa8 - ldrh r2, [r0] - lsls r2, r2, #8 - adds r0, r2, #0 - movs r1, #0xc8 - lsls r1, r1, #7 - bl sub_08151550 - adds r2, r0, #0 - ldrh r4, [r5] - b _08023CBA -_08023C6A: - ldrh r0, [r5] - cmp r0, #0 - beq _08023C8E - adds r0, r3, #0 - adds r0, #0xac - ldrh r2, [r0] - lsls r2, r2, #8 - adds r0, r2, #0 - movs r1, #0xc8 - lsls r1, r1, #7 - bl sub_08151550 - adds r2, r0, #0 - ldrh r4, [r5] - b _08023CBA -_08023C88: - ldrh r0, [r5] - cmp r0, #0 - bne _08023C92 -_08023C8E: - movs r4, #0 - b _08023CC4 -_08023C92: - adds r1, r3, #0 - adds r1, #0xae - ldrh r0, [r1] - mov r2, r8 - ldrh r2, [r2, #0x28] - cmp r0, r2 - blo _08023CA6 - movs r4, #0xc8 - lsls r4, r4, #7 - b _08023CC4 -_08023CA6: - ldrh r2, [r1] - lsls r2, r2, #8 - adds r0, r2, #0 - movs r1, #0xc8 - lsls r1, r1, #7 - bl sub_08151550 - adds r2, r0, #0 - mov r3, r8 - ldrh r4, [r3, #0x28] -_08023CBA: - lsls r4, r4, #8 - adds r1, r4, #0 - bl sub_081515D8 - adds r4, r0, #0 -_08023CC4: - asrs r4, r4, #4 - mov r0, r8 - adds r0, #0x7e - adds r0, r0, r6 - strh r4, [r0] - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - mov r5, r8 - ldrb r5, [r5, #9] - cmp sb, r5 - blo _08023BFC - b _08023DF4 -_08023CE2: - movs r6, #0 - mov sb, r6 - mov r1, r8 - ldrb r0, [r1, #9] - subs r0, #1 - adds r1, #0x68 - str r1, [sp, #0xc] - cmp sb, r0 - bge _08023D82 -_08023CF4: - mov r2, r8 - ldrb r0, [r2, #9] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - mov r3, sb - adds r3, #1 - str r3, [sp, #8] - cmp r4, sb - bls _08023D70 - adds r2, #0x74 - str r2, [sp] - mov r5, r8 - adds r5, #0x88 - str r5, [sp, #4] - movs r6, #0x90 - add r6, r8 - mov sl, r6 - movs r0, #0x7e - add r0, r8 - mov ip, r0 -_08023D1E: - subs r7, r4, #1 - lsls r6, r7, #1 - ldr r1, [sp] - adds r3, r1, r6 - lsls r5, r4, #1 - adds r1, r1, r5 - ldrh r2, [r3] - ldrh r0, [r1] - cmp r2, r0 - bhs _08023D46 - ldrh r0, [r1] - strh r2, [r1] - strh r0, [r3] - ldr r1, [sp, #4] - adds r2, r1, r4 - ldrb r3, [r2] - adds r1, r1, r7 - ldrb r0, [r1] - strb r0, [r2] - strb r3, [r1] -_08023D46: - mov r2, ip - adds r3, r2, r6 - adds r1, r2, r5 - ldrh r2, [r3] - ldrh r5, [r1] - cmp r2, r5 - bhs _08023D68 - ldrh r0, [r1] - strh r2, [r1] - strh r0, [r3] - mov r6, sl - adds r2, r6, r4 - ldrb r3, [r2] - adds r1, r6, r7 - ldrb r0, [r1] - strb r0, [r2] - strb r3, [r1] -_08023D68: - lsls r0, r7, #0x18 - lsrs r4, r0, #0x18 - cmp r4, sb - bhi _08023D1E -_08023D70: - ldr r1, [sp, #8] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - mov r2, r8 - ldrb r0, [r2, #9] - subs r0, #1 - cmp sb, r0 - blt _08023CF4 -_08023D82: - movs r0, #0 - ldr r1, [sp, #0xc] - movs r2, #0x30 - bl SendBlock - b _08023DF4 -_08023D8E: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08023DFC - movs r0, #0 - mov r3, r8 - strh r0, [r3, #0x10] - b _08023DF4 -_08023DA0: - bl GetBlockReceivedStatus - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08023DFC - mov r4, r8 - adds r4, #0x68 - adds r0, r4, #0 - movs r1, #0 - movs r2, #0x30 - bl memset - ldr r1, _08023DD0 - adds r0, r4, #0 - movs r2, #0x30 - bl memcpy - bl ResetBlockReceivedFlags - movs r0, #0 - mov r5, r8 - strh r0, [r5, #0x10] - b _08023DF4 - .align 2, 0 -_08023DD0: .4byte gUnknown_202207C -_08023DD4: - bl sub_08020B74 - movs r0, #0x12 - movs r1, #1 - movs r2, #0 - bl sub_08022950 - movs r0, #0 - movs r1, #0xb - mov r6, r8 - strh r1, [r6, #0x12] - strb r0, [r6, #0xc] - mov r1, r8 - adds r1, #0x24 - strb r0, [r1] - b _08023DFC -_08023DF4: - mov r1, r8 - ldrb r0, [r1, #0xc] - adds r0, #1 -_08023DFA: - strb r0, [r1, #0xc] -_08023DFC: - movs r0, #0 - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08023A40 - - thumb_func_start sub_08023E10 -sub_08023E10: @ 0x08023E10 - push {r4, r5, r6, lr} - sub sp, #4 - adds r5, r0, #0 - adds r6, r1, #0 - ldrb r0, [r5, #0xc] - cmp r0, #4 - bhi _08023EEC - lsls r0, r0, #2 - ldr r1, _08023E28 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08023E28: .4byte _08023E2C -_08023E2C: @ jump table - .4byte _08023E40 @ case 0 - .4byte _08023E52 @ case 1 - .4byte _08023E64 @ case 2 - .4byte _08023E94 @ case 3 - .4byte _08023EA4 @ case 4 -_08023E40: - movs r0, #0x92 - lsls r0, r0, #1 - adds r1, r5, r0 - adds r0, r5, #0 - bl sub_08021DDC - cmp r0, #0 - bne _08023EEC - b _08023EF2 -_08023E52: - movs r0, #0 - bl CopyBgTilemapBufferToVram - movs r0, #0x92 - lsls r0, r0, #1 - adds r1, r5, r0 - movs r0, #0x1e - strb r0, [r1] - b _08023EEC -_08023E64: - movs r0, #0x92 - lsls r0, r0, #1 - adds r1, r5, r0 - ldrb r0, [r1] - cmp r0, #0 - beq _08023E76 - subs r0, #1 - strb r0, [r1] - b _08023EF2 -_08023E76: - ldr r0, _08023E90 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08023EF2 - movs r0, #5 - bl sub_080A306C - adds r0, r5, #0 - bl sub_08021F9C - b _08023EEC - .align 2, 0 -_08023E90: .4byte gUnknown_3002360 -_08023E94: - ldrh r0, [r5, #0x12] - cmp r0, #0xc - bhi _08023EEC - adds r0, #1 - movs r1, #0 - strh r0, [r5, #0x12] - strb r1, [r5, #0xc] - b _08023EF2 -_08023EA4: - ldr r0, _08023EE4 - ldr r1, [r5, #0x1c] - movs r2, #0 - movs r3, #6 - bl sub_080089D8 - ldr r4, _08023EE8 - bl GetBerryPowder - adds r1, r0, #0 - adds r0, r4, #0 - movs r2, #0 - movs r3, #6 - bl sub_080089D8 - movs r4, #0 - str r4, [sp] - adds r0, r6, #0 - movs r1, #2 - movs r2, #3 - movs r3, #0 - bl sub_08024410 - movs r0, #0x13 - strb r0, [r5, #0xe] - movs r0, #3 - movs r1, #1 - movs r2, #0 - bl sub_08022950 - strb r4, [r5, #0xc] - b _08023EF2 - .align 2, 0 -_08023EE4: .4byte gUnknown_2021C40 -_08023EE8: .4byte gUnknown_2021C54 -_08023EEC: - ldrb r0, [r5, #0xc] - adds r0, #1 - strb r0, [r5, #0xc] -_08023EF2: - movs r0, #0 - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_08023E10 - - thumb_func_start sub_08023EFC -sub_08023EFC: @ 0x08023EFC - push {r4, r5, lr} - sub sp, #0x10 - adds r5, r0, #0 - adds r4, r1, #0 - ldrb r0, [r5, #0xc] - cmp r0, #4 - bhi _08023FE0 - lsls r0, r0, #2 - ldr r1, _08023F14 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08023F14: .4byte _08023F18 -_08023F18: @ jump table - .4byte _08023F2C @ case 0 - .4byte _08023F68 @ case 1 - .4byte _08023F6E @ case 2 - .4byte _08023FB8 @ case 3 - .4byte _08023FCC @ case 4 -_08023F2C: - ldrh r1, [r5, #0x28] - ldr r0, _08023F64 - cmp r1, r0 - bls _08023F3E - movs r1, #0x92 - lsls r1, r1, #1 - adds r0, r5, r1 - bl sub_080222B4 -_08023F3E: - movs r0, #1 - str r0, [sp] - adds r0, r4, #0 - movs r1, #8 - movs r2, #0 - movs r3, #0 - bl sub_08024410 - movs r4, #0 - movs r0, #0x13 - strb r0, [r5, #0xe] - movs r0, #3 - movs r1, #1 - movs r2, #0 - bl sub_08022950 - strb r4, [r5, #0xc] - b _08023FE6 - .align 2, 0 -_08023F64: .4byte 0x00008C9F -_08023F68: - bl sub_0800FF34 - b _08023FE0 -_08023F6E: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08023FE6 - movs r0, #0 - movs r1, #0 - bl sub_08196FB8 - ldr r2, _08023FB0 - movs r0, #0 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - movs r0, #3 - str r0, [sp, #0xc] - movs r0, #0 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized2 - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - ldr r0, _08023FB4 - movs r1, #0 - bl CreateTask - b _08023FE0 - .align 2, 0 -_08023FB0: .4byte gUnknown_8277071 -_08023FB4: .4byte sub_081535C4 -_08023FB8: - ldr r0, _08023FC8 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08023FE0 - b _08023FE6 - .align 2, 0 -_08023FC8: .4byte sub_081535C4 -_08023FCC: - movs r0, #0x14 - movs r1, #1 - movs r2, #0 - bl sub_08022950 - movs r1, #0 - movs r0, #0xf - strh r0, [r5, #0x12] - strb r1, [r5, #0xc] - b _08023FE6 -_08023FE0: - ldrb r0, [r5, #0xc] - adds r0, #1 - strb r0, [r5, #0xc] -_08023FE6: - movs r0, #0 - add sp, #0x10 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_08023EFC - - thumb_func_start sub_08023FF0 -sub_08023FF0: @ 0x08023FF0 - push {r4, r5, r6, lr} - sub sp, #4 - adds r5, r0, #0 - adds r6, r1, #0 - ldrb r0, [r5, #0xc] - cmp r0, #1 - beq _08024032 - cmp r0, #1 - bgt _08024008 - cmp r0, #0 - beq _0802400E - b _08024098 -_08024008: - cmp r0, #2 - beq _08024038 - b _08024098 -_0802400E: - movs r0, #1 - str r0, [sp] - adds r0, r6, #0 - movs r1, #4 - movs r2, #0 - movs r3, #0 - bl sub_08024410 - movs r0, #0x14 - strb r0, [r5, #0xe] - movs r0, #3 - movs r1, #1 - movs r2, #0 - bl sub_08022950 - movs r0, #0 - strb r0, [r5, #0xc] - b _080240A0 -_08024032: - bl sub_08197714 - b _08024098 -_08024038: - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r4, r0, #0x18 - movs r0, #2 - rsbs r0, r0, #0 - cmp r4, r0 - beq _0802409E - adds r0, r5, #0 - adds r0, #0x42 - movs r1, #0 - movs r2, #0xc - bl memset - cmp r4, #0 - bne _0802406A - bl HasAtLeastOneBerry - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08024066 - strh r4, [r5, #0x14] - b _0802406E -_08024066: - movs r0, #3 - b _0802406C -_0802406A: - movs r0, #1 -_0802406C: - strh r0, [r5, #0x14] -_0802406E: - movs r0, #0 - movs r1, #1 - bl sub_08197028 - movs r4, #0 - str r4, [sp] - adds r0, r6, #0 - movs r1, #8 - movs r2, #0 - movs r3, #0 - bl sub_08024410 - movs r0, #0x15 - strb r0, [r5, #0xe] - movs r0, #3 - movs r1, #1 - movs r2, #0 - bl sub_08022950 - strb r4, [r5, #0xc] - b _0802409E -_08024098: - ldrb r0, [r5, #0xc] - adds r0, #1 - strb r0, [r5, #0xc] -_0802409E: - movs r0, #0 -_080240A0: - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_08023FF0 - - thumb_func_start sub_080240A8 -sub_080240A8: @ 0x080240A8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - movs r5, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _080240CE - cmp r0, #1 - bgt _080240BE - cmp r0, #0 - beq _080240C8 - b _08024174 -_080240BE: - cmp r0, #2 - beq _080240F0 - cmp r0, #3 - beq _080240FE - b _08024174 -_080240C8: - bl sub_0800FF34 - b _08024174 -_080240CE: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0802417A - ldrh r0, [r4, #0x14] - adds r1, r4, #0 - adds r1, #0x42 - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x4e - strh r5, [r0] - movs r0, #0 - movs r2, #2 - bl SendBlock - b _08024174 -_080240F0: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0802417A - strh r5, [r4, #0x10] - b _08024174 -_080240FE: - bl GetBlockReceivedStatus - ldr r2, _08024150 - ldrb r3, [r4, #9] - subs r1, r3, #2 - adds r1, r1, r2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1] - cmp r0, r1 - bne _0802417A - adds r7, r4, #0 - adds r7, #0x42 - adds r6, r4, #0 - adds r6, #0x4e - cmp r5, r3 - bhs _0802413C - adds r1, r6, #0 - ldr r2, _08024154 -_08024124: - lsls r0, r5, #8 - adds r0, r0, r2 - ldrh r0, [r0] - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldrb r0, [r4, #9] - cmp r5, r0 - blo _08024124 -_0802413C: - ldrh r0, [r6] - cmp r0, #0 - beq _08024158 - movs r0, #0x17 - movs r1, #1 - movs r2, #0 - bl sub_08022950 - b _08024162 - .align 2, 0 -_08024150: .4byte gUnknown_82C7CD4 -_08024154: .4byte gUnknown_202207C -_08024158: - movs r0, #0x16 - movs r1, #1 - movs r2, #0 - bl sub_08022950 -_08024162: - bl ResetBlockReceivedFlags - movs r1, #0 - movs r0, #0 - strh r0, [r7] - strh r0, [r6] - strh r0, [r4, #0x10] - strb r1, [r4, #0xc] - b _0802417C -_08024174: - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] -_0802417A: - movs r0, #0 -_0802417C: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080240A8 - - thumb_func_start sub_08024184 -sub_08024184: @ 0x08024184 - push {r4, r5, lr} - sub sp, #4 - adds r5, r0, #0 - ldrb r4, [r5, #0xc] - cmp r4, #1 - beq _080241B2 - cmp r4, #1 - bgt _0802419A - cmp r4, #0 - beq _080241A4 - b _080241FC -_0802419A: - cmp r4, #2 - beq _080241BE - cmp r4, #3 - beq _080241E2 - b _080241FC -_080241A4: - movs r0, #1 - rsbs r0, r0, #0 - str r4, [sp] - movs r1, #1 - movs r2, #0 - movs r3, #0x10 - b _080241D8 -_080241B2: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080241FC - b _08024202 -_080241BE: - movs r0, #0 - movs r1, #1 - bl sub_08197028 - adds r0, r5, #0 - bl sub_080211B4 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 -_080241D8: - bl BeginNormalPaletteFade - bl UpdatePaletteFade - b _080241FC -_080241E2: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08024202 - movs r0, #7 - movs r1, #1 - movs r2, #0 - bl sub_08022950 - movs r0, #0 - strh r4, [r5, #0x12] - b _08024200 -_080241FC: - ldrb r0, [r5, #0xc] - adds r0, #1 -_08024200: - strb r0, [r5, #0xc] -_08024202: - movs r0, #0 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_08024184 - - thumb_func_start sub_0802420C -sub_0802420C: @ 0x0802420C - push {r4, r5, lr} - sub sp, #0x10 - adds r5, r0, #0 - ldrb r4, [r5, #0xc] - cmp r4, #1 - beq _08024284 - cmp r4, #1 - bgt _08024222 - cmp r4, #0 - beq _08024228 - b _080242BE -_08024222: - cmp r4, #2 - beq _0802429C - b _080242BE -_08024228: - movs r0, #0 - movs r1, #0 - bl sub_08196FB8 - ldrh r1, [r5, #0x14] - cmp r1, #3 - bne _08024258 - ldr r0, _08024254 - ldr r2, [r0, #0x14] - ldrb r3, [r5, #0xb] - str r4, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - str r1, [sp, #0xc] - movs r0, #0 - movs r1, #1 - bl AddTextPrinterParameterized2 - b _08024274 - .align 2, 0 -_08024254: .4byte gUnknown_82C5EBC -_08024258: - ldr r0, _08024280 - ldr r2, [r0, #0x18] - ldrb r3, [r5, #0xb] - str r4, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - movs r0, #3 - str r0, [sp, #0xc] - movs r0, #0 - movs r1, #1 - bl AddTextPrinterParameterized2 -_08024274: - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - b _080242BE - .align 2, 0 -_08024280: .4byte gUnknown_82C5EBC -_08024284: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080242C4 - movs r0, #0x92 - lsls r0, r0, #1 - adds r1, r5, r0 - movs r0, #0x78 - strb r0, [r1] - b _080242BE -_0802429C: - movs r0, #0x92 - lsls r0, r0, #1 - adds r1, r5, r0 - ldrb r0, [r1] - adds r4, r0, #0 - cmp r4, #0 - beq _080242B0 - subs r0, #1 - strb r0, [r1] - b _080242C4 -_080242B0: - movs r0, #0x18 - movs r1, #1 - movs r2, #0 - bl sub_08022950 - strb r4, [r5, #0xc] - b _080242C4 -_080242BE: - ldrb r0, [r5, #0xc] - adds r0, #1 - strb r0, [r5, #0xc] -_080242C4: - movs r0, #0 - add sp, #0x10 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0802420C - - thumb_func_start sub_080242D0 -sub_080242D0: @ 0x080242D0 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r4, [r5, #0xc] - cmp r4, #1 - beq _080242F0 - cmp r4, #1 - bgt _080242E4 - cmp r4, #0 - beq _080242EA - b _08024320 -_080242E4: - cmp r4, #2 - beq _08024300 - b _08024320 -_080242EA: - bl sub_0800FF34 - b _08024320 -_080242F0: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08024326 - bl sub_0800A7F8 - b _08024320 -_08024300: - ldr r0, _0802431C - ldrb r0, [r0] - cmp r0, #0 - bne _08024326 - movs r0, #0x19 - strb r0, [r5, #0xe] - movs r0, #5 - movs r1, #1 - movs r2, #0 - bl sub_08022950 - strb r4, [r5, #0xc] - b _08024326 - .align 2, 0 -_0802431C: .4byte gUnknown_30031C4 -_08024320: - ldrb r0, [r5, #0xc] - adds r0, #1 - strb r0, [r5, #0xc] -_08024326: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080242D0 - - thumb_func_start sub_08024330 -sub_08024330: @ 0x08024330 - push {lr} - movs r0, #0 - bl sub_08020924 - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08024330 - - thumb_func_start sub_08024340 -sub_08024340: @ 0x08024340 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r5, #0 - movs r0, #0x33 - bl IncrementGameStat - strb r5, [r4, #0xd] - movs r1, #0 - strh r5, [r4, #0x10] - movs r0, #2 - strh r0, [r4, #0x12] - strh r5, [r4, #0x14] - str r5, [r4, #0x1c] - strh r5, [r4, #0x18] - strh r5, [r4, #0x1a] - str r5, [r4, #0x20] - adds r0, r4, #0 - adds r0, #0x24 - strb r1, [r0] - adds r1, r4, #0 - adds r1, #0x25 - movs r0, #0 - strb r0, [r1] - strh r5, [r4, #0x26] - strh r5, [r4, #0x28] - strh r5, [r4, #0x2e] - ldr r0, _080243CC - strh r0, [r4, #0x32] - strh r5, [r4, #0x30] - strh r5, [r4, #0x34] - movs r6, #0 - movs r3, #0 -_08024380: - lsls r0, r5, #3 - subs r0, r0, r5 - lsls r0, r0, #2 - adds r2, r4, r0 - adds r1, r2, #0 - adds r1, #0xa0 - ldr r0, _080243CC - strh r0, [r1] - adds r0, r2, #0 - adds r0, #0xa2 - strh r3, [r0] - adds r0, #2 - strh r3, [r0] - adds r1, #6 - movs r0, #1 - strh r0, [r1] - adds r0, r2, #0 - adds r0, #0xa8 - strh r3, [r0] - adds r0, #2 - strh r3, [r0] - adds r0, #2 - strh r3, [r0] - adds r0, #2 - strh r3, [r0] - adds r0, #2 - strb r6, [r0] - adds r0, #1 - strb r6, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #4 - bls _08024380 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080243CC: .4byte 0x0000FFFF - thumb_func_end sub_08024340 - - thumb_func_start sub_080243D0 -sub_080243D0: @ 0x080243D0 - push {r4, r5, r6, lr} - sub sp, #8 - str r2, [sp, #4] - ldr r5, [sp, #0x18] - ldr r6, [sp, #0x1c] - ldr r4, [sp, #0x20] - mov r2, sp - strh r4, [r2] - add r4, sp, #4 - ldrb r2, [r4] - strb r2, [r0] - ldrb r2, [r4, #1] - strb r2, [r0, #1] - ldrb r2, [r4, #2] - strb r2, [r0, #2] - ldrb r2, [r4, #3] - strb r2, [r0, #3] - strb r3, [r0, #4] - strb r5, [r0, #5] - strb r6, [r0, #6] - mov r2, sp - ldrb r2, [r2] - strb r2, [r0, #7] - mov r2, sp - ldrb r2, [r2, #1] - strb r2, [r0, #8] - strb r1, [r0, #9] - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080243D0 - - thumb_func_start sub_08024410 -sub_08024410: @ 0x08024410 - push {r4, r5, lr} - sub sp, #4 - ldr r5, [sp, #0x10] - mov r4, sp - strh r3, [r4] - strb r1, [r0] - strb r2, [r0, #1] - mov r1, sp - ldrb r1, [r1] - strb r1, [r0, #2] - mov r1, sp - ldrb r1, [r1, #1] - strb r1, [r0, #3] - strb r5, [r0, #4] - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_08024410 - - thumb_func_start sub_08024434 -sub_08024434: @ 0x08024434 - ldr r1, _08024444 - ldr r1, [r1] - adds r1, #0xac - ldr r0, [r0] - ldr r1, [r1] - eors r0, r1 - bx lr - .align 2, 0 -_08024444: .4byte gUnknown_3005AF0 - thumb_func_end sub_08024434 - - thumb_func_start sub_08024448 -sub_08024448: @ 0x08024448 - ldr r2, _08024458 - ldr r2, [r2] - adds r2, #0xac - ldr r2, [r2] - eors r2, r1 - str r2, [r0] - bx lr - .align 2, 0 -_08024458: .4byte gUnknown_3005AF0 - thumb_func_end sub_08024448 - - thumb_func_start ApplyNewEncryptionKeyToBerryPowder -ApplyNewEncryptionKeyToBerryPowder: @ 0x0802445C - push {lr} - adds r1, r0, #0 - ldr r0, _08024474 - ldr r0, [r0] - movs r2, #0xfa - lsls r2, r2, #1 - adds r0, r0, r2 - bl ApplyNewEncryptionKeyToWord - pop {r0} - bx r0 - .align 2, 0 -_08024474: .4byte gUnknown_3005AF0 - thumb_func_end ApplyNewEncryptionKeyToBerryPowder - - thumb_func_start HasEnoughBerryPowder_ -HasEnoughBerryPowder_: @ 0x08024478 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08024494 - ldr r0, [r0] - movs r1, #0xfa - lsls r1, r1, #1 - adds r0, r0, r1 - bl sub_08024434 - cmp r0, r4 - blo _08024498 - movs r0, #1 - b _0802449A - .align 2, 0 -_08024494: .4byte gUnknown_3005AF0 -_08024498: - movs r0, #0 -_0802449A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end HasEnoughBerryPowder_ - - thumb_func_start HasEnoughBerryPowder -HasEnoughBerryPowder: @ 0x080244A0 - push {lr} - ldr r0, _080244BC - ldr r0, [r0] - movs r1, #0xfa - lsls r1, r1, #1 - adds r0, r0, r1 - bl sub_08024434 - ldr r1, _080244C0 - ldrh r1, [r1] - cmp r0, r1 - blo _080244C4 - movs r0, #1 - b _080244C6 - .align 2, 0 -_080244BC: .4byte gUnknown_3005AF0 -_080244C0: .4byte gUnknown_2037280 -_080244C4: - movs r0, #0 -_080244C6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end HasEnoughBerryPowder - - thumb_func_start GiveBerryPowder -GiveBerryPowder: @ 0x080244CC - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _080244F4 - ldr r0, [r0] - movs r1, #0xfa - lsls r1, r1, #1 - adds r5, r0, r1 - adds r0, r5, #0 - bl sub_08024434 - adds r1, r0, r4 - ldr r2, _080244F8 - cmp r1, r2 - bhi _080244FC - adds r0, r5, #0 - bl sub_08024448 - movs r0, #1 - b _08024506 - .align 2, 0 -_080244F4: .4byte gUnknown_3005AF0 -_080244F8: .4byte 0x0001869F -_080244FC: - adds r0, r5, #0 - adds r1, r2, #0 - bl sub_08024448 - movs r0, #0 -_08024506: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end GiveBerryPowder - - thumb_func_start TakeBerryPowder_ -TakeBerryPowder_: @ 0x0802450C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0802453C - ldr r0, [r0] - movs r1, #0xfa - lsls r1, r1, #1 - adds r4, r0, r1 - adds r0, r5, #0 - bl HasEnoughBerryPowder_ - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08024540 - adds r0, r4, #0 - bl sub_08024434 - adds r1, r0, #0 - subs r1, r1, r5 - adds r0, r4, #0 - bl sub_08024448 - movs r0, #1 - b _08024542 - .align 2, 0 -_0802453C: .4byte gUnknown_3005AF0 -_08024540: - movs r0, #0 -_08024542: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end TakeBerryPowder_ - - thumb_func_start TakeBerryPowder -TakeBerryPowder: @ 0x08024548 - push {r4, r5, lr} - ldr r0, _08024578 - ldr r0, [r0] - movs r1, #0xfa - lsls r1, r1, #1 - adds r4, r0, r1 - ldr r5, _0802457C - ldrh r0, [r5] - bl HasEnoughBerryPowder_ - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08024580 - adds r0, r4, #0 - bl sub_08024434 - adds r1, r0, #0 - ldrh r0, [r5] - subs r1, r1, r0 - adds r0, r4, #0 - bl sub_08024448 - movs r0, #1 - b _08024582 - .align 2, 0 -_08024578: .4byte gUnknown_3005AF0 -_0802457C: .4byte gUnknown_2037280 -_08024580: - movs r0, #0 -_08024582: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end TakeBerryPowder - - thumb_func_start GetBerryPowder -GetBerryPowder: @ 0x08024588 - push {lr} - ldr r0, _0802459C - ldr r0, [r0] - movs r1, #0xfa - lsls r1, r1, #1 - adds r0, r0, r1 - bl sub_08024434 - pop {r1} - bx r1 - .align 2, 0 -_0802459C: .4byte gUnknown_3005AF0 - thumb_func_end GetBerryPowder - - thumb_func_start PrintBerryPowderAmount -PrintBerryPowderAmount: @ 0x080245A0 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #0xc - adds r6, r0, #0 - mov r8, r2 - adds r4, r3, #0 - ldr r5, [sp, #0x24] - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov r0, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _080245F4 - mov sb, r0 - movs r2, #1 - movs r3, #5 - bl sub_080089D8 - str r4, [sp] - str r5, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - adds r0, r6, #0 - movs r1, #0 - mov r2, sb - mov r3, r8 - bl AddTextPrinterParameterized - add sp, #0xc - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080245F4: .4byte gUnknown_2021C40 - thumb_func_end PrintBerryPowderAmount - - thumb_func_start DrawPlayerPowderAmount -DrawPlayerPowderAmount: @ 0x080245F8 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0xc - adds r6, r0, #0 - adds r4, r1, #0 - adds r5, r2, #0 - mov r8, r3 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - adds r0, r6, #0 - movs r1, #0 - adds r2, r4, #0 - adds r3, r5, #0 - bl DrawStdFrameWithCustomTileAndPalette - ldr r2, _08024650 - movs r4, #0 - str r4, [sp] - movs r0, #0xff - str r0, [sp, #4] - str r4, [sp, #8] - adds r0, r6, #0 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - str r4, [sp] - adds r0, r6, #0 - mov r1, r8 - movs r2, #0x10 - movs r3, #0xc - bl PrintBerryPowderAmount - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08024650: .4byte gUnknown_85CCCEE - thumb_func_end DrawPlayerPowderAmount - - thumb_func_start sub_08024654 -sub_08024654: @ 0x08024654 - push {lr} - sub sp, #4 - bl GetBerryPowder - adds r1, r0, #0 - ldr r0, _08024674 - ldrb r0, [r0] - movs r2, #0 - str r2, [sp] - movs r2, #0x10 - movs r3, #0xc - bl PrintBerryPowderAmount - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_08024674: .4byte gUnknown_2022948 - thumb_func_end sub_08024654 - - thumb_func_start sub_08024678 -sub_08024678: @ 0x08024678 - push {r4, r5, lr} - sub sp, #0x18 - movs r0, #7 - str r0, [sp] - movs r0, #3 - str r0, [sp, #4] - movs r0, #0xf - str r0, [sp, #8] - movs r0, #0x20 - str r0, [sp, #0xc] - add r0, sp, #0x10 - movs r1, #0 - movs r2, #1 - movs r3, #1 - bl SetWindowTemplateFields - ldr r4, _080246D8 - add r0, sp, #0x10 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, #0 - bl FillWindowPixelBuffer - ldrb r0, [r4] - bl PutWindowTilemap - ldrb r0, [r4] - ldr r5, _080246DC - adds r1, r5, #0 - movs r2, #0xd0 - bl LoadUserWindowBorderGfx_ - ldrb r4, [r4] - bl GetBerryPowder - adds r3, r0, #0 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0xd - bl DrawPlayerPowderAmount - add sp, #0x18 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080246D8: .4byte gUnknown_2022948 -_080246DC: .4byte 0x0000021D - thumb_func_end sub_08024678 - - thumb_func_start RemoveBerryPowderVendorMenu -RemoveBerryPowderVendorMenu: @ 0x080246E0 - push {r4, lr} - ldr r4, _08024700 - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - movs r1, #1 - bl sub_08198134 - ldrb r0, [r4] - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08024700: .4byte gUnknown_2022948 - thumb_func_end RemoveBerryPowderVendorMenu - - thumb_func_start sub_08024704 -sub_08024704: @ 0x08024704 - push {r4, r5, r6, lr} - adds r5, r1, #0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r1, _080247AC - movs r0, #0 - str r0, [r1] - ldr r0, _080247B0 - ldrb r0, [r0] - cmp r0, #0 - beq _080247D8 - ldr r4, _080247B4 - ldr r0, _080247B8 - bl AllocZeroed - str r0, [r4] - cmp r0, #0 - beq _080247D8 - bl sub_080247E4 - ldr r0, [r4] - bl sub_080247F8 - ldr r0, [r4] - str r5, [r0] - bl GetMultiplayerId - ldr r1, [r4] - adds r1, #0x28 - strb r0, [r1] - ldr r1, [r4] - ldr r2, _080247BC - adds r0, r1, r2 - adds r2, r1, #0 - adds r2, #0x28 - ldrb r3, [r2] - lsls r2, r3, #4 - subs r2, r2, r3 - lsls r2, r2, #2 - adds r1, r1, r2 - ldr r2, _080247C0 - adds r1, r1, r2 - movs r2, #0x3c - bl memcpy - ldr r0, [r4] - adds r1, r0, #0 - adds r1, #0x28 - ldrb r1, [r1] - lsls r1, r1, #2 - ldr r2, _080247C4 - adds r1, r1, r2 - adds r0, r0, r1 - movs r1, #0x64 - muls r1, r6, r1 - ldr r2, _080247C8 - adds r1, r1, r2 - bl sub_08025FC0 - ldr r0, _080247CC - movs r1, #1 - bl CreateTask - ldr r0, _080247D0 - bl SetMainCallback2 - bl sub_080271B0 - ldr r2, [r4] - adds r0, r2, #0 - adds r0, #0x24 - ldrb r0, [r0] - adds r1, r2, #0 - adds r1, #0x44 - adds r2, #0x48 - bl sub_0802691C - bl StopMapMusic - ldr r0, _080247D4 - bl PlayNewMapMusic - b _080247DE - .align 2, 0 -_080247AC: .4byte gUnknown_3000DB0 -_080247B0: .4byte gUnknown_30031C4 -_080247B4: .4byte gUnknown_202294C -_080247B8: .4byte 0x00003330 -_080247BC: .4byte 0x000032CC -_080247C0: .4byte 0x000031A0 -_080247C4: .4byte 0x0000318C -_080247C8: .4byte gUnknown_2024190 -_080247CC: .4byte sub_08024990 -_080247D0: .4byte sub_08025F94 -_080247D4: .4byte 0x0000021E -_080247D8: - adds r0, r5, #0 - bl SetMainCallback2 -_080247DE: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_08024704 - - thumb_func_start sub_080247E4 -sub_080247E4: @ 0x080247E4 - push {lr} - bl ResetTasks - bl ResetSpriteData - bl FreeAllSpritePalettes - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080247E4 - - thumb_func_start sub_080247F8 -sub_080247F8: @ 0x080247F8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x28 - adds r2, r0, #0 - movs r0, #0 - strb r0, [r2, #0xc] - strb r0, [r2, #0x10] - strb r0, [r2, #0x14] - strb r0, [r2, #0x18] - strb r0, [r2, #0x1c] - movs r3, #0x8e - lsls r3, r3, #1 - adds r1, r2, r3 - str r0, [r1] - movs r7, #0x90 - lsls r7, r7, #1 - adds r1, r2, r7 - str r0, [r1] - adds r1, r2, #0 - adds r1, #0x30 - strb r0, [r1] - adds r1, #0x10 - strb r0, [r1] - subs r1, #4 - strb r0, [r1] - adds r3, #0x10 - adds r1, r2, r3 - str r0, [r1] - movs r5, #0 - adds r1, r2, #0 - adds r1, #0x98 - movs r3, #0 -_0802483E: - adds r0, r1, r5 - strb r3, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #3 - bls _0802483E - movs r5, #0 - adds r7, r2, #0 - adds r7, #0xa8 - str r7, [sp] - adds r0, r2, #0 - adds r0, #0xb0 - str r0, [sp, #0xc] - movs r1, #0x4a - adds r1, r1, r2 - mov sl, r1 - movs r3, #0x4c - adds r3, r3, r2 - mov sb, r3 - movs r7, #0x4e - adds r7, r7, r2 - mov ip, r7 - subs r0, #0x60 - str r0, [sp, #0x24] - adds r6, r2, #0 - adds r6, #0x54 - adds r1, r2, #0 - adds r1, #0xd0 - str r1, [sp, #0x1c] - adds r3, r2, #0 - adds r3, #0xdc - str r3, [sp, #0x20] - adds r7, r2, #0 - adds r7, #0xc4 - str r7, [sp, #0x14] - adds r0, #0xa4 - str r0, [sp, #4] - adds r1, #0x25 - str r1, [sp, #8] - subs r3, #0xbc - str r3, [sp, #0x10] - movs r7, #0x24 - adds r7, r7, r2 - mov r8, r7 - subs r0, #0xc0 - str r0, [sp, #0x18] - movs r3, #0 - movs r1, #0x86 - lsls r1, r1, #1 - adds r4, r2, r1 - movs r7, #0x98 - lsls r7, r7, #1 - adds r2, r2, r7 -_080248AA: - ldr r1, [sp] - adds r0, r1, r5 - strb r3, [r0] - ldr r7, [sp, #0xc] - adds r0, r7, r5 - strb r3, [r0] - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #2 - mov r7, sl - adds r1, r7, r0 - strh r3, [r1] - mov r7, sb - adds r1, r7, r0 - strh r3, [r1] - mov r7, ip - adds r1, r7, r0 - strh r3, [r1] - ldr r7, [sp, #0x24] - adds r1, r7, r0 - strh r3, [r1] - adds r0, r6, r0 - strh r3, [r0] - adds r0, r4, r5 - strb r3, [r0] - lsls r0, r5, #2 - adds r0, r2, r0 - str r3, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #4 - bls _080248AA - movs r5, #0 - movs r3, #0 - movs r4, #0xff - ldr r6, [sp, #0x1c] -_080248F4: - adds r0, r6, r5 - strb r3, [r0] - ldr r1, [sp, #0x20] - adds r0, r1, r5 - strb r3, [r0] - ldr r7, [sp, #0x14] - adds r0, r7, r5 - strb r3, [r0] - lsls r1, r5, #1 - ldr r0, [sp, #4] - adds r2, r0, r1 - ldrb r0, [r2] - orrs r0, r4 - strb r0, [r2] - ldr r7, [sp, #8] - adds r1, r7, r1 - ldrb r0, [r1] - orrs r0, r4 - strb r0, [r1] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0xa - bls _080248F4 - bl GetMultiplayerId - movs r1, #0 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08024932 - movs r1, #1 -_08024932: - ldr r0, [sp, #0x10] - strb r1, [r0] - bl GetLinkPlayerCount - mov r1, r8 - strb r0, [r1] - bl GetMultiplayerId - ldr r3, [sp, #0x18] - strb r0, [r3] - movs r5, #1 - mov r7, r8 - ldrb r7, [r7] - cmp r5, r7 - bhs _0802497E - ldr r7, [sp, #0x18] - mov r6, r8 -_08024954: - adds r4, r7, r5 - subs r0, r5, #1 - adds r0, r7, r0 - ldrb r0, [r0] - adds r0, #1 - strb r0, [r4] - ldrb r2, [r4] - ldrb r1, [r6] - subs r0, r1, #1 - cmp r2, r0 - ble _08024972 - adds r0, r2, #0 - bl __umodsi3 - strb r0, [r4] -_08024972: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldrb r0, [r6] - cmp r5, r0 - blo _08024954 -_0802497E: - add sp, #0x28 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080247F8 - - thumb_func_start sub_08024990 -sub_08024990: @ 0x08024990 - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r0, _080249B0 - ldr r0, [r0] - ldrb r0, [r0, #0xc] - cmp r0, #7 - bls _080249A4 - b _08024AFC -_080249A4: - lsls r0, r0, #2 - ldr r1, _080249B4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080249B0: .4byte gUnknown_202294C -_080249B4: .4byte _080249B8 -_080249B8: @ jump table - .4byte _080249D8 @ case 0 - .4byte _080249EC @ case 1 - .4byte _08024A14 @ case 2 - .4byte _08024A22 @ case 3 - .4byte _08024A48 @ case 4 - .4byte _08024A9C @ case 5 - .4byte _08024AAE @ case 6 - .4byte _08024AD8 @ case 7 -_080249D8: - movs r0, #0 - bl SetVBlankCallback - ldr r0, _080249E8 - movs r1, #4 - bl sub_08025FD4 - b _08024AE8 - .align 2, 0 -_080249E8: .4byte sub_080256D8 -_080249EC: - ldr r0, _08024A0C - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080249FA - b _08024B08 -_080249FA: - ldr r4, _08024A10 - ldr r0, [r4] - movs r1, #0xb0 - lsls r1, r1, #1 - adds r0, r0, r1 - bl sub_08028FA0 - ldr r1, [r4] - b _08024AEC - .align 2, 0 -_08024A0C: .4byte sub_080256D8 -_08024A10: .4byte gUnknown_202294C -_08024A14: - bl sub_0802A464 - cmp r0, #0 - bne _08024B08 - bl sub_0800FF34 - b _08024AE8 -_08024A22: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08024B08 - ldr r0, _08024A44 - ldrb r0, [r0] - cmp r0, #0 - beq _08024AE8 - bl LoadWirelessStatusIndicatorSpriteGfx - movs r0, #0 - movs r1, #0 - bl CreateWirelessStatusIndicatorSprite - b _08024AE8 - .align 2, 0 -_08024A44: .4byte gUnknown_30031C4 -_08024A48: - ldr r0, _08024A94 - ldr r0, [r0] - adds r0, #0x24 - ldrb r5, [r0] - bl sub_080280D4 - movs r4, #0 - cmp r4, r5 - bhs _08024A82 -_08024A5A: - ldr r0, _08024A94 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0x34 - adds r0, r0, r4 - ldrb r2, [r0] - lsls r0, r2, #2 - ldr r3, _08024A98 - adds r0, r0, r3 - adds r0, r1, r0 - adds r1, #0x24 - ldrb r3, [r1] - adds r1, r4, #0 - bl sub_08028134 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r5 - blo _08024A5A -_08024A82: - ldr r4, _08024A94 - ldr r0, [r4] - adds r0, #0x24 - ldrb r1, [r0] - movs r0, #0 - bl sub_080283B8 - ldr r1, [r4] - b _08024AEC - .align 2, 0 -_08024A94: .4byte gUnknown_202294C -_08024A98: .4byte 0x0000318C -_08024A9C: - bl sub_08028760 - bl sub_080287B4 - bl sub_08028A70 - bl sub_08028460 - b _08024AE8 -_08024AAE: - movs r4, #1 - rsbs r4, r4, #0 - adds r0, r4, #0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - movs r0, #0 - str r0, [sp] - adds r0, r4, #0 - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r0, _08024AD4 - bl SetVBlankCallback - b _08024AE8 - .align 2, 0 -_08024AD4: .4byte sub_08025FAC -_08024AD8: - bl UpdatePaletteFade - ldr r0, _08024AF4 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08024B08 -_08024AE8: - ldr r0, _08024AF8 - ldr r1, [r0] -_08024AEC: - ldrb r0, [r1, #0xc] - adds r0, #1 - strb r0, [r1, #0xc] - b _08024B08 - .align 2, 0 -_08024AF4: .4byte gUnknown_2037C74 -_08024AF8: .4byte gUnknown_202294C -_08024AFC: - adds r0, r1, #0 - bl DestroyTask - ldr r0, _08024B10 - bl sub_08025FE4 -_08024B08: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08024B10: .4byte sub_08025664 - thumb_func_end sub_08024990 - - thumb_func_start sub_08024B14 -sub_08024B14: @ 0x08024B14 - push {lr} - bl sub_08025ACC - ldr r1, _08024B40 - ldr r0, _08024B44 - ldr r0, [r0] - ldrb r0, [r0, #0x18] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - thumb_func_end sub_08024B14 - - thumb_func_start sub_08024B2C -sub_08024B2C: @ 0x08024B2C - ldr r0, _08024B48 - ldr r0, [r0] - cmp r0, #0 - bne _08024B38 - bl sub_080268B4 -_08024B38: - bl sub_08025B18 - pop {r0} - bx r0 - .align 2, 0 -_08024B40: .4byte gUnknown_82CB350 -_08024B44: .4byte gUnknown_202294C -_08024B48: .4byte gUnknown_3000DB0 - thumb_func_end sub_08024B2C - - thumb_func_start sub_08024B4C -sub_08024B4C: @ 0x08024B4C - push {lr} - bl sub_08025BD4 - ldr r1, _08024B78 - ldr r0, _08024B7C - ldr r0, [r0] - ldrb r0, [r0, #0x18] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - thumb_func_end sub_08024B4C - - thumb_func_start sub_08024B64 -sub_08024B64: @ 0x08024B64 - ldr r0, _08024B80 - ldr r0, [r0] - cmp r0, #0 - bne _08024B70 - bl sub_080268E8 -_08024B70: - bl sub_08025CA0 - pop {r0} - bx r0 - .align 2, 0 -_08024B78: .4byte gUnknown_82CB380 -_08024B7C: .4byte gUnknown_202294C -_08024B80: .4byte gUnknown_3000DB0 - thumb_func_end sub_08024B64 - - thumb_func_start sub_08024B84 -sub_08024B84: @ 0x08024B84 - push {r4, lr} - ldr r4, _08024B98 - ldr r0, [r4] - ldrb r0, [r0, #0x10] - cmp r0, #0 - beq _08024B9C - cmp r0, #1 - beq _08024BB2 - b _08024BC0 - .align 2, 0 -_08024B98: .4byte gUnknown_202294C -_08024B9C: - movs r0, #1 - bl sub_08028230 - movs r0, #1 - bl sub_0802900C - ldr r1, [r4] - ldrb r0, [r1, #0x10] - adds r0, #1 - strb r0, [r1, #0x10] - b _08024BC0 -_08024BB2: - bl sub_0802A464 - cmp r0, #0 - bne _08024BC0 - movs r0, #1 - bl sub_08026008 -_08024BC0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08024B84 - - thumb_func_start sub_08024BC8 -sub_08024BC8: @ 0x08024BC8 - push {r4, lr} - ldr r4, _08024BE4 - ldr r1, [r4] - ldrb r0, [r1, #0x10] - cmp r0, #0 - bne _08024BE8 - bl sub_08026088 - ldr r1, [r4] - ldrb r0, [r1, #0x10] - adds r0, #1 - strb r0, [r1, #0x10] - b _08024BF8 - .align 2, 0 -_08024BE4: .4byte gUnknown_202294C -_08024BE8: - movs r0, #0x8c - lsls r0, r0, #1 - adds r1, r1, r0 - movs r0, #1 - str r0, [r1] - movs r0, #2 - bl sub_08026008 -_08024BF8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08024BC8 - - thumb_func_start sub_08024C00 -sub_08024C00: @ 0x08024C00 - push {r4, lr} - sub sp, #4 - ldr r1, _08024C1C - ldr r0, [r1] - ldrb r0, [r0, #0x10] - adds r4, r1, #0 - cmp r0, #5 - bhi _08024CD0 - lsls r0, r0, #2 - ldr r1, _08024C20 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08024C1C: .4byte gUnknown_202294C -_08024C20: .4byte _08024C24 -_08024C24: @ jump table - .4byte _08024C3C @ case 0 - .4byte _08024C58 @ case 1 - .4byte _08024C68 @ case 2 - .4byte _08024C8C @ case 3 - .4byte _08024CA0 @ case 4 - .4byte _08024CC0 @ case 5 -_08024C3C: - movs r0, #0 - str r0, [sp] - movs r0, #7 - movs r1, #8 - movs r2, #0x78 - movs r3, #0x50 - bl sub_0802E788 - ldr r0, _08024C54 - ldr r1, [r0] - b _08024CB8 - .align 2, 0 -_08024C54: .4byte gUnknown_202294C -_08024C58: - bl sub_0800FF34 - ldr r0, _08024C64 - ldr r1, [r0] - b _08024CB8 - .align 2, 0 -_08024C64: .4byte gUnknown_202294C -_08024C68: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08024CD0 - ldr r2, _08024C88 - ldr r1, [r2] - ldrb r0, [r1, #0x10] - adds r0, #1 - movs r3, #0 - strb r0, [r1, #0x10] - ldr r0, [r2] - adds r0, #0x30 - strb r3, [r0] - b _08024CD0 - .align 2, 0 -_08024C88: .4byte gUnknown_202294C -_08024C8C: - bl sub_0802E7E8 - cmp r0, #0 - bne _08024CD0 - ldr r0, _08024C9C - ldr r1, [r0] - b _08024CB8 - .align 2, 0 -_08024C9C: .4byte gUnknown_202294C -_08024CA0: - ldr r1, [r4] - adds r1, #0x30 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #5 - bls _08024CD0 - bl sub_0800FF34 - ldr r1, [r4] -_08024CB8: - ldrb r0, [r1, #0x10] - adds r0, #1 - strb r0, [r1, #0x10] - b _08024CD0 -_08024CC0: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08024CD0 - movs r0, #3 - bl sub_08026008 -_08024CD0: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08024C00 - - thumb_func_start sub_08024CD8 -sub_08024CD8: @ 0x08024CD8 - push {lr} - ldr r0, _08024CFC - ldr r1, [r0] - ldrb r0, [r1, #0x10] - cmp r0, #0 - bne _08024CF6 - movs r2, #0x8e - lsls r2, r2, #1 - adds r0, r1, r2 - ldr r0, [r0] - cmp r0, #0 - beq _08024CF6 - movs r0, #4 - bl sub_08026008 -_08024CF6: - pop {r0} - bx r0 - .align 2, 0 -_08024CFC: .4byte gUnknown_202294C - thumb_func_end sub_08024CD8 - - thumb_func_start sub_08024D00 -sub_08024D00: @ 0x08024D00 - push {r4, lr} - ldr r4, _08024D40 - ldr r2, [r4] - ldrb r0, [r2, #0x10] - cmp r0, #0 - bne _08024DBE - adds r0, r2, #0 - adds r0, #0x40 - ldrb r0, [r0] - cmp r0, #9 - bhi _08024DB0 - adds r0, r2, #0 - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #0 - bne _08024DB6 - ldr r0, _08024D44 - ldrh r1, [r0, #0x2e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08024D50 - ldr r1, _08024D48 - adds r0, r2, r1 - ldrb r1, [r0] - cmp r1, #0 - bne _08024DB6 - ldr r3, _08024D4C - adds r0, r2, r3 - strb r1, [r0] - movs r0, #2 - b _08024D8A - .align 2, 0 -_08024D40: .4byte gUnknown_202294C -_08024D44: .4byte gUnknown_3002360 -_08024D48: .4byte 0x000031CC -_08024D4C: .4byte 0x000031D0 -_08024D50: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08024D70 - ldr r3, _08024D6C - adds r0, r2, r3 - ldrb r1, [r0] - cmp r1, #0 - bne _08024DB6 - adds r3, #4 - adds r0, r2, r3 - strb r1, [r0] - movs r0, #1 - b _08024D8A - .align 2, 0 -_08024D6C: .4byte 0x000031CC -_08024D70: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08024D9C - ldr r3, _08024D98 - adds r0, r2, r3 - ldrb r1, [r0] - cmp r1, #0 - bne _08024DB6 - adds r3, #4 - adds r0, r2, r3 - strb r1, [r0] - movs r0, #3 -_08024D8A: - bl sub_080272D8 - ldr r1, [r4] - ldr r2, _08024D98 - adds r1, r1, r2 - strb r0, [r1] - b _08024DB6 - .align 2, 0 -_08024D98: .4byte 0x000031CC -_08024D9C: - movs r0, #0 - bl sub_080272D8 - ldr r1, [r4] - ldr r3, _08024DAC - adds r1, r1, r3 - strb r0, [r1] - b _08024DB6 - .align 2, 0 -_08024DAC: .4byte 0x000031CC -_08024DB0: - movs r0, #0xb - bl sub_08026008 -_08024DB6: - bl sub_080264E4 - bl BagMenu_SwapItems -_08024DBE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08024D00 - - thumb_func_start sub_08024DC4 -sub_08024DC4: @ 0x08024DC4 - push {lr} - ldr r0, _08024E04 - ldr r2, [r0] - adds r0, r2, #0 - adds r0, #0x40 - ldrb r0, [r0] - cmp r0, #9 - bhi _08024E8C - ldr r0, _08024E08 - ldrh r1, [r0, #0x2e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08024E14 - adds r0, r2, #0 - adds r0, #0x28 - ldrb r1, [r0] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r2, r0 - ldr r1, _08024E0C - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _08024E92 - ldr r3, _08024E10 - adds r1, r2, r3 - movs r0, #2 - strb r0, [r1] - b _08024E92 - .align 2, 0 -_08024E04: .4byte gUnknown_202294C -_08024E08: .4byte gUnknown_3002360 -_08024E0C: .4byte 0x000031CC -_08024E10: .4byte 0x000032F8 -_08024E14: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08024E48 - adds r0, r2, #0 - adds r0, #0x28 - ldrb r1, [r0] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r2, r0 - ldr r1, _08024E40 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _08024E92 - ldr r3, _08024E44 - adds r1, r2, r3 - movs r0, #1 - strb r0, [r1] - b _08024E92 - .align 2, 0 -_08024E40: .4byte 0x000031CC -_08024E44: .4byte 0x000032F8 -_08024E48: - movs r0, #0x20 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - beq _08024E80 - adds r0, r2, #0 - adds r0, #0x28 - ldrb r1, [r0] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r2, r0 - ldr r1, _08024E78 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _08024E92 - ldr r3, _08024E7C - adds r1, r2, r3 - movs r0, #3 - strb r0, [r1] - b _08024E92 - .align 2, 0 -_08024E78: .4byte 0x000031CC -_08024E7C: .4byte 0x000032F8 -_08024E80: - ldr r3, _08024E88 - adds r0, r2, r3 - strb r1, [r0] - b _08024E92 - .align 2, 0 -_08024E88: .4byte 0x000032F8 -_08024E8C: - movs r0, #0xb - bl sub_08026008 -_08024E92: - bl sub_08025E0C - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08024DC4 - - thumb_func_start sub_08024E9C -sub_08024E9C: @ 0x08024E9C - push {r4, r5, lr} - bl sub_080264E4 - bl BagMenu_SwapItems - bl sub_08026A10 - cmp r0, #1 - bne _08024EBA - bl sub_08027064 - movs r0, #5 - bl sub_08026008 - b _08024F18 -_08024EBA: - ldr r0, _08024EE8 - ldr r2, [r0] - movs r1, #0x96 - lsls r1, r1, #1 - adds r4, r2, r1 - movs r1, #1 - str r1, [r4] - movs r3, #1 - adds r1, r2, #0 - adds r1, #0x24 - adds r5, r0, #0 - ldrb r1, [r1] - cmp r3, r1 - bhs _08024F18 - movs r1, #0x9a - lsls r1, r1, #1 - adds r0, r2, r1 - ldr r0, [r0] - cmp r0, #1 - beq _08024EEC - movs r0, #0 - str r0, [r4] - b _08024F18 - .align 2, 0 -_08024EE8: .4byte gUnknown_202294C -_08024EEC: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r2, [r5] - adds r0, r2, #0 - adds r0, #0x24 - ldrb r0, [r0] - cmp r3, r0 - bhs _08024F18 - lsls r0, r3, #2 - movs r4, #0x98 - lsls r4, r4, #1 - adds r1, r2, r4 - adds r1, r1, r0 - ldr r0, [r1] - cmp r0, #1 - beq _08024EEC - movs r0, #0x96 - lsls r0, r0, #1 - adds r1, r2, r0 - movs r0, #0 - str r0, [r1] -_08024F18: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08024E9C - - thumb_func_start sub_08024F20 -sub_08024F20: @ 0x08024F20 - push {lr} - bl sub_08025E0C - bl sub_08026A50 - cmp r0, #1 - bne _08024F34 - movs r0, #5 - bl sub_08026008 -_08024F34: - pop {r0} - bx r0 - thumb_func_end sub_08024F20 - - thumb_func_start sub_08024F38 -sub_08024F38: @ 0x08024F38 - push {r4, lr} - bl GetBlockReceivedStatus - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_0800A59C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - beq _08024F54 - movs r0, #0 - b _08024F5A -_08024F54: - bl ResetBlockReceivedFlags - movs r0, #1 -_08024F5A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_08024F38 - - thumb_func_start sub_08024F60 -sub_08024F60: @ 0x08024F60 - push {r4, r5, lr} - ldr r5, _08024F78 - ldr r1, [r5] - ldrb r4, [r1, #0x10] - cmp r4, #1 - beq _08024F98 - cmp r4, #1 - bgt _08024F7C - cmp r4, #0 - beq _08024F82 - b _08024FD4 - .align 2, 0 -_08024F78: .4byte gUnknown_202294C -_08024F7C: - cmp r4, #2 - beq _08024FA4 - b _08024FD4 -_08024F82: - adds r1, #0x4a - movs r0, #0 - movs r2, #0x3c - bl SendBlock - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08024FEE - ldr r0, [r5] - strb r4, [r0, #8] - b _08024FCA -_08024F98: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08024FEE - b _08024FCA -_08024FA4: - bl sub_08024F38 - cmp r0, #0 - beq _08024FB6 - ldr r0, [r5] - adds r1, r0, #0 - adds r1, #0x24 - ldrb r1, [r1] - strb r1, [r0, #8] -_08024FB6: - ldr r2, [r5] - adds r1, r2, #0 - adds r1, #0x24 - ldrb r0, [r2, #8] - ldrb r1, [r1] - cmp r0, r1 - blo _08024FEE - ldrb r0, [r2, #0x14] - adds r0, #1 - strb r0, [r2, #0x14] -_08024FCA: - ldr r1, [r5] - ldrb r0, [r1, #0x10] - adds r0, #1 - strb r0, [r1, #0x10] - b _08024FEE -_08024FD4: - movs r0, #1 - bl WaitFanfare - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08024FEE - movs r0, #6 - bl sub_08026008 - ldr r0, _08024FF4 - movs r1, #4 - bl FadeOutAndPlayNewMapMusic -_08024FEE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08024FF4: .4byte 0x0000020B - thumb_func_end sub_08024F60 - - thumb_func_start sub_08024FF8 -sub_08024FF8: @ 0x08024FF8 - push {r4, r5, lr} - ldr r5, _08025010 - ldr r2, [r5] - ldrb r4, [r2, #0x10] - cmp r4, #1 - beq _0802503C - cmp r4, #1 - bgt _08025014 - cmp r4, #0 - beq _0802501A - b _080250A4 - .align 2, 0 -_08025010: .4byte gUnknown_202294C -_08025014: - cmp r4, #2 - beq _0802504A - b _080250A4 -_0802501A: - ldrb r0, [r2, #0x14] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, #0x4a - adds r1, r2, r1 - movs r0, #0 - movs r2, #0x3c - bl SendBlock - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080250DE - ldr r0, [r5] - strb r4, [r0, #8] - ldr r1, [r5] - b _08025094 -_0802503C: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080250DE - ldr r1, [r5] - b _08025094 -_0802504A: - bl sub_08024F38 - cmp r0, #0 - beq _0802507C - movs r4, #0 - b _08025072 -_08025056: - ldr r0, [r5] - adds r0, #0x4a - ldr r1, _0802509C - movs r2, #0x3c - bl memcpy - ldr r1, [r5] - adds r0, r1, #0 - adds r0, #0x24 - ldrb r0, [r0] - strb r0, [r1, #8] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_08025072: - ldr r0, [r5] - adds r0, #0x24 - ldrb r0, [r0] - cmp r4, r0 - blo _08025056 -_0802507C: - ldr r3, _080250A0 - ldr r2, [r3] - adds r1, r2, #0 - adds r1, #0x24 - ldrb r0, [r2, #8] - ldrb r1, [r1] - cmp r0, r1 - blo _080250DE - ldrb r0, [r2, #0x14] - adds r0, #1 - strb r0, [r2, #0x14] - ldr r1, [r3] -_08025094: - ldrb r0, [r1, #0x10] - adds r0, #1 - strb r0, [r1, #0x10] - b _080250DE - .align 2, 0 -_0802509C: .4byte gUnknown_202207C -_080250A0: .4byte gUnknown_202294C -_080250A4: - movs r0, #1 - bl WaitFanfare - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080250DE - ldr r0, _080250E4 - ldr r2, [r0] - adds r0, r2, #0 - adds r0, #0x28 - ldrb r0, [r0] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r0, r2, #0 - adds r0, #0x54 - adds r0, r0, r1 - ldrh r1, [r0] - movs r3, #0x8a - lsls r3, r3, #1 - adds r0, r2, r3 - strh r1, [r0] - movs r0, #6 - bl sub_08026008 - ldr r0, _080250E8 - movs r1, #4 - bl FadeOutAndPlayNewMapMusic -_080250DE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080250E4: .4byte gUnknown_202294C -_080250E8: .4byte 0x0000020B - thumb_func_end sub_08024FF8 - - thumb_func_start sub_080250EC -sub_080250EC: @ 0x080250EC - push {r4, r5, lr} - sub sp, #4 - movs r1, #1 - mov r0, sp - strb r1, [r0] - ldr r0, _0802510C - ldr r0, [r0] - ldrb r0, [r0, #0x10] - cmp r0, #4 - bls _08025102 - b _08025220 -_08025102: - lsls r0, r0, #2 - ldr r1, _08025110 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802510C: .4byte gUnknown_202294C -_08025110: .4byte _08025114 -_08025114: @ jump table - .4byte _08025128 @ case 0 - .4byte _0802514C @ case 1 - .4byte _08025164 @ case 2 - .4byte _08025184 @ case 3 - .4byte _080251A4 @ case 4 -_08025128: - bl sub_0802725C - movs r0, #1 - bl sub_08028714 - bl sub_08028B28 - movs r0, #1 - bl sub_08028BF4 - movs r0, #2 - bl sub_0802900C - ldr r0, _08025148 - ldr r1, [r0] - b _08025210 - .align 2, 0 -_08025148: .4byte gUnknown_202294C -_0802514C: - bl sub_0802A464 - cmp r0, #0 - bne _0802522E - movs r0, #5 - bl sub_0802900C - ldr r0, _08025160 - ldr r1, [r0] - b _08025210 - .align 2, 0 -_08025160: .4byte gUnknown_202294C -_08025164: - bl sub_0802A488 - mov r1, sp - strb r0, [r1] - movs r0, #0 - movs r2, #1 - bl SendBlock - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0802522E - ldr r0, _08025180 - ldr r1, [r0] - b _08025210 - .align 2, 0 -_08025180: .4byte gUnknown_202294C -_08025184: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0802522E - ldr r3, _080251A0 - ldr r1, [r3] - ldrb r0, [r1, #0x10] - adds r0, #1 - movs r2, #0 - strb r0, [r1, #0x10] - ldr r0, [r3] - strb r2, [r0, #8] - b _0802522E - .align 2, 0 -_080251A0: .4byte gUnknown_202294C -_080251A4: - bl sub_08024F38 - cmp r0, #0 - beq _080251EA - movs r2, #0 - ldr r1, _08025218 - ldr r0, [r1] - adds r0, #0x24 - ldrb r0, [r0] - cmp r2, r0 - bhs _080251EA - adds r3, r1, #0 - movs r5, #0x86 - lsls r5, r5, #1 - ldr r4, _0802521C -_080251C2: - ldr r1, [r3] - adds r1, r2, r1 - adds r1, r1, r5 - lsls r0, r2, #8 - adds r0, r0, r4 - ldrb r0, [r0] - strb r0, [r1] - ldr r1, [r3] - adds r0, r1, #0 - adds r0, #0x24 - ldrb r0, [r0] - strb r0, [r1, #8] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, [r3] - adds r0, #0x24 - ldrb r0, [r0] - cmp r2, r0 - blo _080251C2 -_080251EA: - ldr r4, _08025218 - ldr r2, [r4] - adds r1, r2, #0 - adds r1, #0x24 - ldrb r0, [r2, #8] - ldrb r1, [r1] - cmp r0, r1 - blo _0802522E - ldrb r0, [r2, #0x14] - adds r0, #1 - strb r0, [r2, #0x14] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x77 - bls _0802522E - movs r0, #6 - bl sub_0802900C - ldr r1, [r4] -_08025210: - ldrb r0, [r1, #0x10] - adds r0, #1 - strb r0, [r1, #0x10] - b _0802522E - .align 2, 0 -_08025218: .4byte gUnknown_202294C -_0802521C: .4byte gUnknown_202207C -_08025220: - bl sub_0802A464 - cmp r0, #0 - bne _0802522E - movs r0, #7 - bl sub_08026008 -_0802522E: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080250EC - - thumb_func_start sub_08025238 -sub_08025238: @ 0x08025238 - push {r4, r5, lr} - sub sp, #4 - ldr r4, _08025254 - ldr r0, [r4] - ldrb r0, [r0, #0x10] - cmp r0, #7 - bls _08025248 - b _080253CE -_08025248: - lsls r0, r0, #2 - ldr r1, _08025258 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08025254: .4byte gUnknown_202294C -_08025258: .4byte _0802525C -_0802525C: @ jump table - .4byte _0802527C @ case 0 - .4byte _0802529C @ case 1 - .4byte _080252B8 @ case 2 - .4byte _080252CC @ case 3 - .4byte _080252E8 @ case 4 - .4byte _08025304 @ case 5 - .4byte _0802532C @ case 6 - .4byte _08025340 @ case 7 -_0802527C: - bl sub_08027508 - ldr r1, _08025294 - cmp r0, r1 - bls _0802528C - movs r0, #4 - bl sub_0802900C -_0802528C: - ldr r0, _08025298 - ldr r1, [r0] - b _080253B0 - .align 2, 0 -_08025294: .4byte 0x00000BB7 -_08025298: .4byte gUnknown_202294C -_0802529C: - bl sub_0802A464 - cmp r0, #0 - beq _080252A6 - b _08025404 -_080252A6: - movs r0, #3 - bl sub_0802900C - ldr r0, _080252B4 - ldr r1, [r0] - b _080253B0 - .align 2, 0 -_080252B4: .4byte gUnknown_202294C -_080252B8: - bl sub_08028CF8 - bl sub_080270A8 - ldr r0, _080252C8 - ldr r1, [r0] - b _080253B0 - .align 2, 0 -_080252C8: .4byte gUnknown_202294C -_080252CC: - bl sub_0802A488 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, sp - strb r0, [r1] - cmp r0, #0 - bne _080252DE - b _08025404 -_080252DE: - ldr r0, _080252E4 - ldr r1, [r0] - b _080253B0 - .align 2, 0 -_080252E4: .4byte gUnknown_202294C -_080252E8: - bl sub_0802A464 - cmp r0, #0 - beq _080252F2 - b _08025404 -_080252F2: - movs r0, #5 - bl sub_0802900C - ldr r0, _08025300 - ldr r1, [r0] - b _080253B0 - .align 2, 0 -_08025300: .4byte gUnknown_202294C -_08025304: - bl sub_0802A488 - mov r1, sp - strb r0, [r1] - movs r0, #0 - movs r2, #1 - bl SendBlock - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08025404 - ldr r2, _08025328 - ldr r1, [r2] - movs r0, #0 - strb r0, [r1, #8] - ldr r1, [r2] - b _080253B0 - .align 2, 0 -_08025328: .4byte gUnknown_202294C -_0802532C: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08025404 - ldr r0, _0802533C - ldr r1, [r0] - b _080253B0 - .align 2, 0 -_0802533C: .4byte gUnknown_202294C -_08025340: - bl sub_08024F38 - cmp r0, #0 - beq _08025386 - movs r2, #0 - ldr r1, _080253B8 - ldr r0, [r1] - adds r0, #0x24 - ldrb r0, [r0] - cmp r2, r0 - bhs _08025386 - adds r3, r1, #0 - movs r5, #0x86 - lsls r5, r5, #1 - ldr r4, _080253BC -_0802535E: - ldr r1, [r3] - adds r1, r2, r1 - adds r1, r1, r5 - lsls r0, r2, #8 - adds r0, r0, r4 - ldrb r0, [r0] - strb r0, [r1] - ldr r1, [r3] - adds r0, r1, #0 - adds r0, #0x24 - ldrb r0, [r0] - strb r0, [r1, #8] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, [r3] - adds r0, #0x24 - ldrb r0, [r0] - cmp r2, r0 - blo _0802535E -_08025386: - ldr r4, _080253B8 - ldr r2, [r4] - adds r1, r2, #0 - adds r1, #0x24 - ldrb r0, [r2, #8] - ldrb r1, [r1] - cmp r0, r1 - blo _080253C0 - ldrb r0, [r2, #0x14] - adds r0, #1 - strb r0, [r2, #0x14] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x77 - bls _08025404 - bl sub_080273C8 - movs r0, #6 - bl sub_0802900C - ldr r1, [r4] -_080253B0: - ldrb r0, [r1, #0x10] - adds r0, #1 - strb r0, [r1, #0x10] - b _08025404 - .align 2, 0 -_080253B8: .4byte gUnknown_202294C -_080253BC: .4byte gUnknown_202207C -_080253C0: - bl sub_08027314 - b _08025404 -_080253C6: - movs r0, #8 - bl sub_08026008 - b _08025404 -_080253CE: - bl sub_0802A464 - cmp r0, #0 - bne _08025404 - movs r2, #0 - ldr r1, [r4] - adds r0, r1, #0 - adds r0, #0x24 - ldrb r0, [r0] - cmp r2, r0 - bhs _080253FE - movs r4, #0x86 - lsls r4, r4, #1 - adds r3, r1, r4 - adds r1, r0, #0 -_080253EC: - adds r0, r3, r2 - ldrb r0, [r0] - cmp r0, #2 - beq _080253C6 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, r1 - blo _080253EC -_080253FE: - movs r0, #0xa - bl sub_08026008 -_08025404: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_08025238 - - thumb_func_start sub_0802540C -sub_0802540C: @ 0x0802540C - push {r4, lr} - ldr r4, _08025424 - ldr r0, [r4] - ldrb r0, [r0, #0x10] - cmp r0, #1 - beq _0802543A - cmp r0, #1 - bgt _08025428 - cmp r0, #0 - beq _0802542E - b _0802545A - .align 2, 0 -_08025424: .4byte gUnknown_202294C -_08025428: - cmp r0, #2 - beq _08025444 - b _0802545A -_0802542E: - bl sub_0800A7F8 - movs r0, #7 - bl sub_0802900C - b _08025450 -_0802543A: - bl sub_0802A464 - cmp r0, #0 - bne _08025468 - b _08025450 -_08025444: - bl sub_0802A488 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #5 - bne _08025468 -_08025450: - ldr r1, [r4] - ldrb r0, [r1, #0x10] - adds r0, #1 - strb r0, [r1, #0x10] - b _08025468 -_0802545A: - ldr r0, _08025470 - ldrb r0, [r0] - cmp r0, #0 - bne _08025468 - movs r0, #9 - bl sub_08026008 -_08025468: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08025470: .4byte gUnknown_30031C4 - thumb_func_end sub_0802540C - - thumb_func_start sub_08025474 -sub_08025474: @ 0x08025474 - push {r4, lr} - sub sp, #4 - ldr r4, _0802548C - ldr r0, [r4] - ldrb r1, [r0, #0x10] - cmp r1, #1 - beq _080254A8 - cmp r1, #1 - bgt _08025490 - cmp r1, #0 - beq _08025496 - b _080254F0 - .align 2, 0 -_0802548C: .4byte gUnknown_202294C -_08025490: - cmp r1, #2 - beq _080254C0 - b _080254F0 -_08025496: - movs r0, #1 - rsbs r0, r0, #0 - str r1, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - b _080254E2 -_080254A8: - bl UpdatePaletteFade - ldr r0, _080254BC - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08025514 - b _080254E2 - .align 2, 0 -_080254BC: .4byte gUnknown_2037C74 -_080254C0: - bl sub_080288AC - bl sub_08028510 - ldr r0, [r4] - adds r0, #0x24 - ldrb r0, [r0] - bl sub_08028340 - bl sub_08028BB0 - ldr r1, _080254EC - movs r0, #1 - str r0, [r1] - movs r0, #8 - bl sub_0802900C -_080254E2: - ldr r1, [r4] - ldrb r0, [r1, #0x10] - adds r0, #1 - strb r0, [r1, #0x10] - b _08025514 - .align 2, 0 -_080254EC: .4byte gUnknown_3000DB0 -_080254F0: - bl sub_0802A464 - cmp r0, #0 - bne _08025514 - ldr r4, _0802551C - ldr r0, [r4] - ldr r0, [r0] - bl SetMainCallback2 - ldr r0, [r4] - ldrb r0, [r0, #4] - bl DestroyTask - ldr r0, [r4] - bl Free - bl FreeAllWindowBuffers -_08025514: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802551C: .4byte gUnknown_202294C - thumb_func_end sub_08025474 - - thumb_func_start sub_08025520 -sub_08025520: @ 0x08025520 - push {r4, lr} - sub sp, #4 - ldr r4, _0802553C - ldr r1, [r4] - ldrb r0, [r1, #0x10] - cmp r0, #6 - bls _08025530 - b _08025624 -_08025530: - lsls r0, r0, #2 - ldr r1, _08025540 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802553C: .4byte gUnknown_202294C -_08025540: .4byte _08025544 -_08025544: @ jump table - .4byte _08025560 @ case 0 - .4byte _08025600 @ case 1 - .4byte _08025578 @ case 2 - .4byte _080255CA @ case 3 - .4byte _080255D0 @ case 4 - .4byte _080255E0 @ case 5 - .4byte _08025600 @ case 6 -_08025560: - movs r0, #9 - bl sub_0802900C - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - b _08025610 -_08025578: - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - b _08025610 -_080255CA: - bl StopMapMusic - b _08025610 -_080255D0: - ldr r0, _080255DC - bl PlayNewMapMusic - bl sub_08028B78 - b _08025610 - .align 2, 0 -_080255DC: .4byte 0x0000021E -_080255E0: - movs r4, #1 - rsbs r4, r4, #0 - adds r0, r4, #0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - movs r0, #0 - str r0, [sp] - adds r0, r4, #0 - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - b _08025610 -_08025600: - bl UpdatePaletteFade - ldr r0, _0802561C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08025654 -_08025610: - ldr r0, _08025620 - ldr r1, [r0] - ldrb r0, [r1, #0x10] - adds r0, #1 - strb r0, [r1, #0x10] - b _08025654 - .align 2, 0 -_0802561C: .4byte gUnknown_2037C74 -_08025620: .4byte gUnknown_202294C -_08025624: - ldrb r0, [r1, #4] - bl DestroyTask - ldr r0, _0802565C - bl sub_08025FE4 - bl sub_08028D68 - ldr r0, [r4] - bl sub_080247F8 - ldr r0, _08025660 - ldrb r0, [r0] - cmp r0, #0 - bne _0802564A - ldr r0, [r4] - adds r0, #0x24 - movs r1, #1 - strb r1, [r0] -_0802564A: - bl sub_080271B0 - movs r0, #0 - bl sub_08028BF4 -_08025654: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802565C: .4byte sub_08025664 -_08025660: .4byte gUnknown_30031C4 - thumb_func_end sub_08025520 - - thumb_func_start sub_08025664 -sub_08025664: @ 0x08025664 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _08025680 - ldr r0, [r1] - ldrb r0, [r0, #0x10] - adds r4, r1, #0 - cmp r0, #1 - beq _08025690 - cmp r0, #1 - bgt _08025684 - cmp r0, #0 - beq _0802568A - b _080256A8 - .align 2, 0 -_08025680: .4byte gUnknown_202294C -_08025684: - cmp r0, #2 - beq _08025696 - b _080256A8 -_0802568A: - bl sub_0802602C - b _0802569A -_08025690: - bl sub_08028410 - b _0802569E -_08025696: - bl sub_08028554 -_0802569A: - cmp r0, #1 - bne _080256CC -_0802569E: - ldr r1, [r4] - ldrb r0, [r1, #0x10] - adds r0, #1 - strb r0, [r1, #0x10] - b _080256CC -_080256A8: - ldr r0, [r4] - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0 - beq _080256C0 - ldr r0, _080256BC - bl sub_08025FE4 - b _080256C6 - .align 2, 0 -_080256BC: .4byte sub_08024B14 -_080256C0: - ldr r0, _080256D4 - bl sub_08025FE4 -_080256C6: - adds r0, r5, #0 - bl DestroyTask -_080256CC: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080256D4: .4byte sub_08024B4C - thumb_func_end sub_08025664 - - thumb_func_start sub_080256D8 -sub_080256D8: @ 0x080256D8 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _080256FC - adds r5, r0, r1 - movs r0, #0 - ldrsh r4, [r5, r0] - cmp r4, #1 - beq _08025734 - cmp r4, #1 - bgt _08025700 - cmp r4, #0 - beq _08025706 - b _080257B0 - .align 2, 0 -_080256FC: .4byte gUnknown_3005B68 -_08025700: - cmp r4, #2 - beq _08025746 - b _080257B0 -_08025706: - ldr r6, _0802572C - ldr r1, [r6] - adds r0, r1, #0 - adds r0, #0x28 - ldrb r0, [r0] - lsls r0, r0, #2 - ldr r2, _08025730 - adds r0, r0, r2 - adds r1, r1, r0 - movs r0, #0 - movs r2, #1 - bl SendBlock - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080257B0 - ldr r0, [r6] - strb r4, [r0, #8] - b _0802573E - .align 2, 0 -_0802572C: .4byte gUnknown_202294C -_08025730: .4byte 0x0000318C -_08025734: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080257B0 -_0802573E: - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - b _080257B0 -_08025746: - bl sub_08024F38 - cmp r0, #0 - beq _0802578C - movs r2, #0 - ldr r1, _080257B8 - ldr r0, [r1] - adds r0, #0x24 - ldrb r0, [r0] - cmp r2, r0 - bhs _0802578C - adds r3, r1, #0 - ldr r5, _080257BC - ldr r4, _080257C0 -_08025762: - ldr r0, [r3] - lsls r1, r2, #2 - adds r1, r1, r0 - adds r1, r1, r4 - lsls r0, r2, #8 - adds r0, r0, r5 - ldrb r0, [r0] - strb r0, [r1] - ldr r1, [r3] - adds r0, r1, #0 - adds r0, #0x24 - ldrb r0, [r0] - strb r0, [r1, #8] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, [r3] - adds r0, #0x24 - ldrb r0, [r0] - cmp r2, r0 - blo _08025762 -_0802578C: - ldr r4, _080257B8 - ldr r0, [r4] - adds r1, r0, #0 - adds r1, #0x24 - ldrb r0, [r0, #8] - ldrb r1, [r1] - cmp r0, r1 - blo _080257B0 - adds r0, r6, #0 - bl DestroyTask - movs r0, #6 - bl sub_0802900C - ldr r1, [r4] - ldrb r0, [r1, #0x10] - adds r0, #1 - strb r0, [r1, #0x10] -_080257B0: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080257B8: .4byte gUnknown_202294C -_080257BC: .4byte gUnknown_202207C -_080257C0: .4byte 0x0000318C - thumb_func_end sub_080256D8 - - thumb_func_start sub_080257C4 -sub_080257C4: @ 0x080257C4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x18 - ldr r6, _080258A0 - ldr r0, [r6] - adds r1, r0, #0 - adds r1, #0x24 - ldrb r7, [r1] - ldr r2, _080258A4 - adds r1, r0, r2 - ldr r3, _080258A8 - adds r2, r0, r3 - ldr r4, _080258AC - adds r3, r0, r4 - ldr r5, _080258B0 - adds r4, r0, r5 - str r4, [sp] - adds r5, #0x3c - adds r4, r0, r5 - str r4, [sp, #4] - adds r5, #0x3c - adds r4, r0, r5 - str r4, [sp, #8] - adds r4, r0, #0 - adds r4, #0x40 - str r4, [sp, #0xc] - movs r5, #0x90 - lsls r5, r5, #1 - adds r4, r0, r5 - str r4, [sp, #0x10] - movs r4, #0x96 - lsls r4, r4, #1 - adds r0, r0, r4 - str r0, [sp, #0x14] - movs r0, #0 - bl sub_08027E90 - ldr r1, [r6] - ldr r5, _080258B4 - adds r2, r1, r5 - str r0, [r2] - movs r0, #0x94 - lsls r0, r0, #1 - adds r1, r1, r0 - movs r0, #1 - strb r0, [r1] - movs r5, #1 - cmp r5, r7 - bhs _0802586C -_08025828: - ldr r1, [r6] - adds r0, r1, #0 - adds r0, #0xa8 - adds r0, r0, r5 - ldrb r0, [r0] - cmp r0, #0 - bne _08025862 - lsls r0, r5, #4 - subs r0, r0, r5 - lsls r4, r0, #2 - adds r1, r4, r1 - ldr r2, _080258A8 - adds r1, r1, r2 - adds r0, r5, #0 - bl sub_08028044 - adds r1, r0, #0 - cmp r1, #0 - bne _08025862 - ldr r0, [r6] - adds r0, r0, r4 - ldr r3, _080258A8 - adds r0, r0, r3 - strb r1, [r0] - ldr r0, [r6] - movs r4, #0x94 - lsls r4, r4, #1 - adds r0, r0, r4 - strb r1, [r0] -_08025862: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, r7 - blo _08025828 -_0802586C: - ldr r5, _080258A0 - ldr r1, [r5] - movs r6, #0x92 - lsls r6, r6, #1 - adds r1, r1, r6 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x3b - bls _080258CA - ldr r1, [r5] - movs r2, #0x94 - lsls r2, r2, #1 - adds r0, r1, r2 - ldrb r4, [r0] - cmp r4, #0 - beq _080258B8 - bl sub_080115B4 - ldr r0, [r5] - adds r0, r0, r6 - movs r1, #0 - strb r1, [r0] - b _080258CA - .align 2, 0 -_080258A0: .4byte gUnknown_202294C -_080258A4: .4byte 0x000031A0 -_080258A8: .4byte 0x000031CC -_080258AC: .4byte 0x00003208 -_080258B0: .4byte 0x00003244 -_080258B4: .4byte 0x000031B0 -_080258B8: - adds r0, r1, r6 - ldrb r0, [r0] - cmp r0, #0x46 - bls _080258CA - bl sub_080115B4 - ldr r0, [r5] - adds r0, r0, r6 - strb r4, [r0] -_080258CA: - movs r5, #0 - cmp r5, r7 - bhs _080259BE - ldr r3, _08025914 - mov ip, r3 - ldr r4, _08025918 - mov r8, r4 -_080258D8: - mov r6, r8 - ldr r2, [r6] - lsls r0, r5, #4 - subs r1, r0, r5 - lsls r1, r1, #2 - adds r1, r2, r1 - add r1, ip - ldrb r1, [r1] - adds r6, r0, #0 - cmp r1, #0 - beq _080258FE - adds r0, r2, #0 - adds r0, #0xa8 - adds r1, r0, r5 - ldrb r0, [r1] - cmp r0, #0 - bne _080258FE - movs r0, #1 - strb r0, [r1] -_080258FE: - adds r3, r4, #0 - ldr r1, [r3] - adds r0, r1, #0 - adds r0, #0xa8 - adds r0, r0, r5 - ldrb r0, [r0] - cmp r0, #3 - bgt _0802591C - cmp r0, #1 - bge _08025922 - b _080259B4 - .align 2, 0 -_08025914: .4byte 0x000031CC -_08025918: .4byte gUnknown_202294C -_0802591C: - cmp r0, #4 - beq _08025970 - b _080259B4 -_08025922: - adds r1, #0xb0 - adds r1, r1, r5 - ldrb r0, [r1] - adds r0, #1 - movs r2, #0 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #5 - bls _080259B4 - ldr r0, [r3] - adds r0, #0xb0 - adds r0, r0, r5 - strb r2, [r0] - ldr r0, [r3] - adds r0, #0xa8 - adds r0, r0, r5 - strb r2, [r0] - ldr r0, [r3] - subs r1, r6, r5 - lsls r1, r1, #2 - adds r0, r0, r1 - add r0, ip - strb r2, [r0] - ldr r0, [r3] - adds r0, r0, r1 - ldr r6, _08025968 - adds r0, r0, r6 - strb r2, [r0] - ldr r0, [r3] - adds r0, r0, r1 - ldr r1, _0802596C - adds r0, r0, r1 - b _080259B2 - .align 2, 0 -_08025968: .4byte 0x000031D0 -_0802596C: .4byte 0x000031D4 -_08025970: - adds r1, #0xb0 - adds r1, r1, r5 - ldrb r0, [r1] - adds r0, #1 - movs r2, #0 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x27 - bls _080259B4 - ldr r0, [r4] - adds r0, #0xb0 - adds r0, r0, r5 - strb r2, [r0] - ldr r0, [r4] - adds r0, #0xa8 - adds r0, r0, r5 - strb r2, [r0] - ldr r0, [r4] - subs r1, r6, r5 - lsls r1, r1, #2 - adds r0, r0, r1 - add r0, ip - strb r2, [r0] - ldr r0, [r4] - adds r0, r0, r1 - ldr r3, _080259CC - adds r0, r0, r3 - strb r2, [r0] - ldr r0, [r4] - adds r0, r0, r1 - ldr r6, _080259D0 - adds r0, r0, r6 -_080259B2: - strb r2, [r0] -_080259B4: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, r7 - blo _080258D8 -_080259BE: - add sp, #0x18 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080259CC: .4byte 0x000031D0 -_080259D0: .4byte 0x000031D4 - thumb_func_end sub_080257C4 - - thumb_func_start sub_080259D4 -sub_080259D4: @ 0x080259D4 - push {r4, r5, r6, r7, lr} - sub sp, #0x18 - ldr r5, _08025A98 - ldr r0, [r5] - adds r1, r0, #0 - adds r1, #0x24 - ldrb r6, [r1] - ldr r2, _08025A9C - adds r1, r0, r2 - ldr r3, _08025AA0 - adds r2, r0, r3 - ldr r4, _08025AA4 - adds r3, r0, r4 - ldr r7, _08025AA8 - adds r4, r0, r7 - str r4, [sp] - adds r7, #0x3c - adds r4, r0, r7 - str r4, [sp, #4] - adds r7, #0x3c - adds r4, r0, r7 - str r4, [sp, #8] - adds r4, r0, #0 - adds r4, #0x40 - str r4, [sp, #0xc] - movs r7, #0x90 - lsls r7, r7, #1 - adds r4, r0, r7 - str r4, [sp, #0x10] - movs r4, #0x96 - lsls r4, r4, #1 - adds r0, r0, r4 - str r0, [sp, #0x14] - movs r0, #0 - bl sub_08027E90 - ldr r1, [r5] - ldr r7, _08025AAC - adds r2, r1, r7 - str r0, [r2] - movs r0, #0x94 - lsls r0, r0, #1 - adds r1, r1, r0 - movs r0, #1 - strb r0, [r1] - movs r4, #1 - cmp r4, r6 - bhs _08025A64 -_08025A34: - adds r0, r4, #0 - bl sub_080280A0 - cmp r0, #0 - beq _08025A5A - ldr r0, _08025A98 - ldr r2, [r0] - lsls r1, r4, #2 - movs r3, #0x98 - lsls r3, r3, #1 - adds r0, r2, r3 - adds r0, r0, r1 - movs r1, #1 - str r1, [r0] - movs r7, #0x94 - lsls r7, r7, #1 - adds r1, r2, r7 - movs r0, #0 - strb r0, [r1] -_08025A5A: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r6 - blo _08025A34 -_08025A64: - ldr r5, _08025A98 - ldr r1, [r5] - movs r6, #0x92 - lsls r6, r6, #1 - adds r1, r1, r6 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x3b - bls _08025AC2 - ldr r1, [r5] - movs r2, #0x94 - lsls r2, r2, #1 - adds r0, r1, r2 - ldrb r4, [r0] - cmp r4, #0 - beq _08025AB0 - bl sub_080115B4 - ldr r0, [r5] - adds r0, r0, r6 - movs r1, #0 - strb r1, [r0] - b _08025AC2 - .align 2, 0 -_08025A98: .4byte gUnknown_202294C -_08025A9C: .4byte 0x000031A0 -_08025AA0: .4byte 0x000031CC -_08025AA4: .4byte 0x00003208 -_08025AA8: .4byte 0x00003244 -_08025AAC: .4byte 0x000031B0 -_08025AB0: - adds r0, r1, r6 - ldrb r0, [r0] - cmp r0, #0x46 - bls _08025AC2 - bl sub_080115B4 - ldr r0, [r5] - adds r0, r0, r6 - strb r4, [r0] -_08025AC2: - add sp, #0x18 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080259D4 - - thumb_func_start sub_08025ACC -sub_08025ACC: @ 0x08025ACC - push {r4, r5, lr} - ldr r5, _08025AE4 - ldr r0, [r5] - ldrb r0, [r0, #0x18] - cmp r0, #4 - beq _08025B08 - cmp r0, #4 - bgt _08025AE8 - cmp r0, #3 - beq _08025AEE - b _08025B12 - .align 2, 0 -_08025AE4: .4byte gUnknown_202294C -_08025AE8: - cmp r0, #0xb - beq _08025B0E - b _08025B12 -_08025AEE: - bl sub_08026978 - adds r4, r0, #0 - cmp r4, #1 - bne _08025B12 - bl sub_080269E8 - ldr r0, [r5] - movs r1, #0x8e - lsls r1, r1, #1 - adds r0, r0, r1 - str r4, [r0] - b _08025B12 -_08025B08: - bl sub_080257C4 - b _08025B12 -_08025B0E: - bl sub_080259D4 -_08025B12: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_08025ACC - - thumb_func_start sub_08025B18 -sub_08025B18: @ 0x08025B18 - push {r4, r5, r6, lr} - sub sp, #0x14 - ldr r0, _08025B2C - ldr r5, [r0] - ldrb r0, [r5, #0x18] - cmp r0, #4 - beq _08025B30 - cmp r0, #0xb - beq _08025B80 - b _08025BBC - .align 2, 0 -_08025B2C: .4byte gUnknown_202294C -_08025B30: - ldr r1, _08025B70 - adds r0, r5, r1 - ldr r2, _08025B74 - adds r1, r5, r2 - ldr r3, _08025B78 - adds r2, r5, r3 - ldr r4, _08025B7C - adds r3, r5, r4 - movs r6, #0xca - lsls r6, r6, #6 - adds r4, r5, r6 - str r4, [sp] - adds r6, #0x3c - adds r4, r5, r6 - str r4, [sp, #4] - adds r4, r5, #0 - adds r4, #0x40 - ldrb r4, [r4] - str r4, [sp, #8] - movs r6, #0x90 - lsls r6, r6, #1 - adds r4, r5, r6 - ldr r4, [r4] - str r4, [sp, #0xc] - adds r6, #0xc - adds r4, r5, r6 - ldr r4, [r4] - str r4, [sp, #0x10] - bl sub_08027B5C - b _08025BBC - .align 2, 0 -_08025B70: .4byte 0x000032CC -_08025B74: .4byte 0x000031CC -_08025B78: .4byte 0x00003208 -_08025B7C: .4byte 0x00003244 -_08025B80: - ldr r1, _08025BC4 - adds r0, r5, r1 - ldr r2, _08025BC8 - adds r1, r5, r2 - ldr r3, _08025BCC - adds r2, r5, r3 - ldr r4, _08025BD0 - adds r3, r5, r4 - movs r6, #0xca - lsls r6, r6, #6 - adds r4, r5, r6 - str r4, [sp] - adds r6, #0x3c - adds r4, r5, r6 - str r4, [sp, #4] - adds r4, r5, #0 - adds r4, #0x40 - ldrb r4, [r4] - str r4, [sp, #8] - movs r6, #0x90 - lsls r6, r6, #1 - adds r4, r5, r6 - ldr r4, [r4] - str r4, [sp, #0xc] - adds r6, #0xc - adds r4, r5, r6 - ldr r4, [r4] - str r4, [sp, #0x10] - bl sub_08027B5C -_08025BBC: - add sp, #0x14 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08025BC4: .4byte 0x000032CC -_08025BC8: .4byte 0x000031CC -_08025BCC: .4byte 0x00003208 -_08025BD0: .4byte 0x00003244 - thumb_func_end sub_08025B18 - - thumb_func_start sub_08025BD4 -sub_08025BD4: @ 0x08025BD4 - push {r4, r5, r6, lr} - sub sp, #0x18 - ldr r0, _08025BE8 - ldr r5, [r0] - ldrb r0, [r5, #0x18] - cmp r0, #4 - beq _08025BEC - cmp r0, #0xb - beq _08025C44 - b _08025C88 - .align 2, 0 -_08025BE8: .4byte gUnknown_202294C -_08025BEC: - adds r0, r5, #0 - adds r0, #0x28 - ldrb r0, [r0] - lsls r1, r0, #4 - subs r1, r1, r0 - lsls r1, r1, #2 - ldr r2, _08025C34 - adds r1, r1, r2 - adds r1, r5, r1 - ldr r3, _08025C38 - adds r2, r5, r3 - ldr r4, _08025C3C - adds r3, r5, r4 - ldr r6, _08025C40 - adds r4, r5, r6 - str r4, [sp] - adds r6, #0x3c - adds r4, r5, r6 - str r4, [sp, #4] - adds r6, #0x3c - adds r4, r5, r6 - str r4, [sp, #8] - adds r4, r5, #0 - adds r4, #0x40 - str r4, [sp, #0xc] - movs r6, #0x90 - lsls r6, r6, #1 - adds r4, r5, r6 - str r4, [sp, #0x10] - adds r6, #0xc - adds r4, r5, r6 - str r4, [sp, #0x14] - bl sub_08027E90 - b _08025C88 - .align 2, 0 -_08025C34: .4byte 0x000031A0 -_08025C38: .4byte 0x000031CC -_08025C3C: .4byte 0x00003208 -_08025C40: .4byte 0x00003244 -_08025C44: - adds r0, r5, #0 - adds r0, #0x28 - ldrb r0, [r0] - lsls r1, r0, #4 - subs r1, r1, r0 - lsls r1, r1, #2 - ldr r2, _08025C90 - adds r1, r1, r2 - adds r1, r5, r1 - ldr r3, _08025C94 - adds r2, r5, r3 - ldr r4, _08025C98 - adds r3, r5, r4 - ldr r6, _08025C9C - adds r4, r5, r6 - str r4, [sp] - adds r6, #0x3c - adds r4, r5, r6 - str r4, [sp, #4] - adds r6, #0x3c - adds r4, r5, r6 - str r4, [sp, #8] - adds r4, r5, #0 - adds r4, #0x40 - str r4, [sp, #0xc] - movs r6, #0x90 - lsls r6, r6, #1 - adds r4, r5, r6 - str r4, [sp, #0x10] - adds r6, #0xc - adds r4, r5, r6 - str r4, [sp, #0x14] - bl sub_08027E90 -_08025C88: - add sp, #0x18 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08025C90: .4byte 0x000031A0 -_08025C94: .4byte 0x000031CC -_08025C98: .4byte 0x00003208 -_08025C9C: .4byte 0x00003244 - thumb_func_end sub_08025BD4 - - thumb_func_start sub_08025CA0 -sub_08025CA0: @ 0x08025CA0 - push {r4, lr} - ldr r4, _08025CB8 - ldr r1, [r4] - ldrb r0, [r1, #0x18] - cmp r0, #4 - beq _08025CD6 - cmp r0, #4 - bgt _08025CBC - cmp r0, #3 - beq _08025CC2 - b _08025D08 - .align 2, 0 -_08025CB8: .4byte gUnknown_202294C -_08025CBC: - cmp r0, #0xb - beq _08025CEC - b _08025D08 -_08025CC2: - movs r0, #1 - bl sub_08027AFC - ldr r0, [r4] - movs r1, #0x8e - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #1 - str r1, [r0] - b _08025D08 -_08025CD6: - ldr r2, _08025CE8 - adds r1, r1, r2 - ldrb r0, [r1] - cmp r0, #0 - beq _08025D08 - bl sub_08028018 - b _08025D08 - .align 2, 0 -_08025CE8: .4byte 0x000032F8 -_08025CEC: - movs r2, #0x90 - lsls r2, r2, #1 - adds r0, r1, r2 - ldr r0, [r0] - cmp r0, #0 - bne _08025D08 - adds r2, #0xc - adds r0, r1, r2 - ldr r0, [r0] - cmp r0, #0 - bne _08025D08 - movs r0, #1 - bl sub_0802807C -_08025D08: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08025CA0 - - thumb_func_start BagMenu_SwapItems -BagMenu_SwapItems: @ 0x08025D10 - push {r4, r5, r6, lr} - ldr r6, _08025D48 - ldr r2, [r6] - adds r0, r2, #0 - adds r0, #0x28 - ldrb r1, [r0] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r2, r0 - ldr r3, _08025D4C - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, #0 - bne _08025D50 - bl IsSEPlaying - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _08025DB2 - ldr r0, [r6] - movs r2, #0xa2 - lsls r2, r2, #1 - adds r0, r0, r2 - strb r1, [r0] - b _08025DB2 - .align 2, 0 -_08025D48: .4byte gUnknown_202294C -_08025D4C: .4byte 0x000031CC -_08025D50: - ldr r3, _08025D7C - adds r0, r1, r3 - ldrb r4, [r0] - cmp r4, #1 - bne _08025D80 - movs r1, #0xa2 - lsls r1, r1, #1 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _08025DB2 - movs r0, #0x1f - bl m4aSongNumStop - movs r0, #0x1f - bl sub_080A306C - ldr r0, [r6] - movs r2, #0xa2 - lsls r2, r2, #1 - adds r0, r0, r2 - b _08025DB0 - .align 2, 0 -_08025D7C: .4byte 0x000031D0 -_08025D80: - ldr r3, _08025DDC - adds r0, r1, r3 - ldrb r4, [r0] - cmp r4, #1 - bne _08025DB2 - movs r5, #0xa2 - lsls r5, r5, #1 - adds r0, r2, r5 - ldrb r0, [r0] - cmp r0, #0 - bne _08025DB2 - bl IsSEPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08025DB2 - movs r0, #0x16 - bl sub_080A306C - movs r0, #1 - bl sub_080281F8 - ldr r0, [r6] - adds r0, r0, r5 -_08025DB0: - strb r4, [r0] -_08025DB2: - ldr r0, _08025DE0 - ldr r2, [r0] - movs r5, #0xaa - lsls r5, r5, #1 - adds r1, r2, r5 - ldrb r1, [r1] - adds r4, r0, #0 - cmp r1, #0 - bne _08025DE4 - adds r0, r2, #0 - adds r0, #0x40 - ldrb r0, [r0] - cmp r0, #9 - bls _08025DE4 - bl StopMapMusic - ldr r0, [r4] - adds r0, r0, r5 - movs r1, #1 - b _08025E02 - .align 2, 0 -_08025DDC: .4byte 0x000031D4 -_08025DE0: .4byte gUnknown_202294C -_08025DE4: - ldr r0, [r4] - movs r1, #0xaa - lsls r1, r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - bne _08025E04 - movs r0, #0xb - bl PlayFanfareByFanfareNum - ldr r0, [r4] - movs r2, #0xaa - lsls r2, r2, #1 - adds r0, r0, r2 - movs r1, #2 -_08025E02: - strb r1, [r0] -_08025E04: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BagMenu_SwapItems - - thumb_func_start sub_08025E0C -sub_08025E0C: @ 0x08025E0C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r6, _08025E58 - ldr r2, [r6] - adds r0, r2, #0 - adds r0, #0x44 - ldrb r0, [r0] - mov r8, r0 - adds r0, r2, #0 - adds r0, #0x48 - ldrb r7, [r0] - subs r0, #0x20 - ldrb r1, [r0] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r2, r0 - ldr r3, _08025E5C - adds r0, r1, r3 - ldrb r3, [r0] - cmp r3, #0 - bne _08025E64 - ldr r4, _08025E60 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, #1 - beq _08025EC6 - adds r4, #4 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, #1 - beq _08025EC6 - movs r1, #0xa2 - lsls r1, r1, #1 - adds r0, r2, r1 - strb r3, [r0] - b _08025EC6 - .align 2, 0 -_08025E58: .4byte gUnknown_202294C -_08025E5C: .4byte 0x000031CC -_08025E60: .4byte 0x000031D0 -_08025E64: - ldr r3, _08025E90 - adds r0, r1, r3 - ldrb r4, [r0] - cmp r4, #1 - bne _08025E94 - movs r1, #0xa2 - lsls r1, r1, #1 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _08025EC6 - movs r0, #0x1f - bl m4aSongNumStop - movs r0, #0x1f - bl sub_080A306C - ldr r0, [r6] - movs r3, #0xa2 - lsls r3, r3, #1 - adds r0, r0, r3 - b _08025EC4 - .align 2, 0 -_08025E90: .4byte 0x000031D0 -_08025E94: - ldr r4, _08025F18 - adds r0, r1, r4 - ldrb r4, [r0] - cmp r4, #1 - bne _08025EC6 - movs r5, #0xa2 - lsls r5, r5, #1 - adds r0, r2, r5 - ldrb r0, [r0] - cmp r0, #0 - bne _08025EC6 - bl IsSEPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08025EC6 - movs r0, #0x16 - bl sub_080A306C - movs r0, #1 - bl sub_080281F8 - ldr r0, [r6] - adds r0, r0, r5 -_08025EC4: - strb r4, [r0] -_08025EC6: - mov r4, r8 - cmp r4, r7 - bhs _08025F3A - ldr r5, _08025F1C -_08025ECE: - ldr r2, [r5] - adds r0, r2, #0 - adds r0, #0x28 - ldrb r1, [r0] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08025F20 - adds r0, r0, r1 - adds r0, r2, r0 - adds r1, r0, #0 - adds r1, #0x14 - adds r0, #0x1f - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #9 - bls _08025F24 - movs r3, #0xa4 - lsls r3, r3, #1 - adds r0, r2, r3 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0 - bne _08025F30 - adds r0, r1, r4 - ldrb r0, [r0] - adds r0, #0x4a - bl sub_080A306C - ldr r0, [r5] - movs r1, #0xa4 - lsls r1, r1, #1 - adds r0, r0, r1 - adds r0, r0, r4 - movs r1, #1 - b _08025F2E - .align 2, 0 -_08025F18: .4byte 0x000031D4 -_08025F1C: .4byte gUnknown_202294C -_08025F20: .4byte 0x000031A0 -_08025F24: - movs r3, #0xa4 - lsls r3, r3, #1 - adds r0, r2, r3 - adds r0, r0, r4 - movs r1, #0 -_08025F2E: - strb r1, [r0] -_08025F30: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r7 - blo _08025ECE -_08025F3A: - ldr r0, _08025F64 - ldr r2, [r0] - movs r5, #0xaa - lsls r5, r5, #1 - adds r1, r2, r5 - ldrb r1, [r1] - adds r4, r0, #0 - cmp r1, #0 - bne _08025F68 - adds r0, r2, #0 - adds r0, #0x40 - ldrb r0, [r0] - cmp r0, #9 - bls _08025F68 - bl StopMapMusic - ldr r0, [r4] - adds r0, r0, r5 - movs r1, #1 - b _08025F86 - .align 2, 0 -_08025F64: .4byte gUnknown_202294C -_08025F68: - ldr r0, [r4] - movs r1, #0xaa - lsls r1, r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - bne _08025F88 - movs r0, #0xb - bl PlayFanfareByFanfareNum - ldr r0, [r4] - movs r3, #0xaa - lsls r3, r3, #1 - adds r0, r0, r3 - movs r1, #2 -_08025F86: - strb r1, [r0] -_08025F88: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08025E0C - - thumb_func_start sub_08025F94 -sub_08025F94: @ 0x08025F94 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08025F94 - - thumb_func_start sub_08025FAC -sub_08025FAC: @ 0x08025FAC - push {lr} - bl TransferPlttBuffer - bl LoadOam - bl ProcessSpriteCopyRequests - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08025FAC - - thumb_func_start sub_08025FC0 -sub_08025FC0: @ 0x08025FC0 - push {r4, lr} - adds r4, r0, #0 - adds r0, r1, #0 - bl IsMonShiny - strb r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08025FC0 - - thumb_func_start sub_08025FD4 -sub_08025FD4: @ 0x08025FD4 - push {lr} - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08025FD4 - - thumb_func_start sub_08025FE4 -sub_08025FE4: @ 0x08025FE4 - push {lr} - movs r1, #1 - bl CreateTask - ldr r1, _08026004 - ldr r3, [r1] - movs r2, #0 - strb r0, [r3, #4] - ldr r0, [r1] - strb r2, [r0, #0x10] - ldr r0, [r1] - strb r2, [r0, #0xc] - ldr r0, [r1] - strb r2, [r0, #0x14] - pop {r0} - bx r0 - .align 2, 0 -_08026004: .4byte gUnknown_202294C - thumb_func_end sub_08025FE4 - - thumb_func_start sub_08026008 -sub_08026008: @ 0x08026008 - push {r4, lr} - ldr r2, _08026028 - ldr r1, [r2] - ldrb r3, [r1, #0x18] - movs r4, #0 - strb r3, [r1, #0x1c] - ldr r1, [r2] - strb r0, [r1, #0x18] - ldr r0, [r2] - strb r4, [r0, #0x10] - ldr r0, [r2] - strb r4, [r0, #0x14] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08026028: .4byte gUnknown_202294C - thumb_func_end sub_08026008 - - thumb_func_start sub_0802602C -sub_0802602C: @ 0x0802602C - push {r4, lr} - ldr r3, _08026060 - ldr r1, [r3] - ldrb r0, [r1, #0x14] - lsrs r2, r0, #2 - adds r0, #1 - strb r0, [r1, #0x14] - cmp r2, #0 - beq _08026080 - ldr r3, [r3] - ldrb r0, [r3, #0x14] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _08026080 - ldr r1, _08026064 - adds r0, r3, #0 - adds r0, #0x24 - ldrb r0, [r0] - subs r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r2, r0 - blo _08026068 - movs r0, #1 - b _08026082 - .align 2, 0 -_08026060: .4byte gUnknown_202294C -_08026064: .4byte gUnknown_82CB320 -_08026068: - lsls r4, r2, #3 - adds r1, r4, #0 - movs r0, #0x14 - bl SetGpuReg - rsbs r4, r4, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - movs r0, #0x18 - adds r1, r4, #0 - bl SetGpuReg -_08026080: - movs r0, #0 -_08026082: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0802602C - - thumb_func_start sub_08026088 -sub_08026088: @ 0x08026088 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r2, _080260E0 - ldr r0, [r2] - adds r1, r0, #0 - adds r1, #0x44 - adds r0, #0x48 - ldrb r5, [r0] - ldrb r1, [r1] - cmp r1, r5 - bhs _080260D4 - mov r8, r2 - ldr r0, _080260E4 - mov ip, r0 - movs r7, #0 - movs r6, #1 -_080260AA: - mov r2, r8 - ldr r0, [r2] - mov r2, ip - adds r4, r0, r2 - ldr r2, _080260E8 - adds r0, r0, r2 - adds r2, r0, r1 - movs r3, #0 - adds r0, r1, #0 - ands r0, r6 - cmp r0, #0 - bne _080260C4 - movs r3, #1 -_080260C4: - strb r3, [r2] - adds r0, r4, r1 - strb r7, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, r5 - blo _080260AA -_080260D4: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080260E0: .4byte gUnknown_202294C -_080260E4: .4byte 0x000032E0 -_080260E8: .4byte 0x000032EB - thumb_func_end sub_08026088 - - thumb_func_start sub_080260EC -sub_080260EC: @ 0x080260EC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - ldr r0, _080261C0 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0x44 - ldrb r0, [r0] - str r0, [sp] - adds r0, r1, #0 - adds r0, #0x48 - ldrb r0, [r0] - str r0, [sp, #4] - adds r0, r1, #0 - adds r0, #0x24 - ldrb r0, [r0] - str r0, [sp, #8] - adds r0, r1, #0 - adds r0, #0x40 - ldrb r0, [r0] - cmp r0, #9 - bls _08026120 - b _080263DC -_08026120: - movs r6, #0 - ldr r0, [sp, #8] - cmp r6, r0 - bhs _08026208 -_08026128: - ldr r3, _080261C0 - lsls r0, r6, #4 - subs r1, r0, r6 - lsls r1, r1, #2 - ldr r2, [r3] - adds r1, r1, r2 - ldr r4, _080261C4 - adds r4, r4, r1 - mov r8, r4 - ldrb r1, [r4] - mov sb, r0 - adds r0, r6, #1 - str r0, [sp, #0xc] - cmp r1, #0 - beq _080261FC - adds r0, r2, #0 - adds r0, #0xa8 - adds r0, r0, r6 - ldrb r0, [r0] - cmp r0, #1 - bne _080261FC - ldr r1, [sp] - mov sl, r1 - ldr r2, [sp, #4] - cmp sl, r2 - bhs _080261FC - adds r7, r3, #0 -_0802615E: - ldr r0, _080261C8 - add r0, sl - ldrb r5, [r0] - ldr r1, [r7] - lsls r4, r5, #1 - adds r0, r1, #0 - adds r0, #0xf4 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, r6 - beq _080261FC - adds r0, r1, #0 - adds r0, #0xf5 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, r6 - beq _080261FC - mov r0, r8 - ldrb r1, [r0] - adds r0, r6, #0 - adds r2, r5, #0 - bl sub_080263FC - cmp r0, #1 - bne _080261D8 - movs r2, #0 - ldr r3, _080261C0 - mov r8, r4 -_08026196: - ldr r0, [r3] - mov r4, r8 - adds r1, r2, r4 - adds r0, #0xf4 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, #0xff - bne _080261CC - strb r6, [r1] - ldr r0, [r3] - adds r0, #0xa8 - adds r0, r0, r6 - movs r1, #2 - strb r1, [r0] - ldr r0, [r3] - adds r0, #0xc4 - adds r0, r0, r5 - movs r1, #1 - strb r1, [r0] - b _080261FC - .align 2, 0 -_080261C0: .4byte gUnknown_202294C -_080261C4: .4byte 0x000031CC -_080261C8: .4byte gUnknown_82C7D28 -_080261CC: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #1 - bls _08026196 - b _080261FC -_080261D8: - ldr r0, [r7] - mov r2, sb - subs r1, r2, r6 - lsls r1, r1, #2 - adds r0, r0, r1 - ldr r4, _080262CC - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #1 - beq _080261FC - mov r0, sl - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - ldr r0, [sp, #4] - cmp sl, r0 - blo _0802615E -_080261FC: - ldr r1, [sp, #0xc] - lsls r0, r1, #0x18 - lsrs r6, r0, #0x18 - ldr r2, [sp, #8] - cmp r6, r2 - blo _08026128 -_08026208: - ldr r4, [sp] - mov sl, r4 - ldr r0, [sp, #4] - cmp sl, r0 - blo _08026214 - b _080263DC -_08026214: - ldr r1, _080262D0 - mov sb, r1 -_08026218: - movs r6, #0xff - ldr r0, _080262D4 - add r0, sl - ldrb r5, [r0] - mov r2, sb - ldr r0, [r2] - adds r0, #0xc4 - adds r0, r0, r5 - ldrb r0, [r0] - cmp r0, #1 - beq _08026230 - b _080263CA -_08026230: - adds r0, r5, #0 - bl sub_08026B4C - mov r1, sb - ldr r4, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r4, #0 - adds r1, #0x90 - adds r1, r1, r0 - ldrb r0, [r1] - movs r1, #7 - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #1 - bls _08026256 - movs r3, #2 -_08026256: - ldr r2, _080262D8 - ldr r0, _080262DC - adds r1, r4, r0 - adds r1, r1, r5 - lsls r0, r3, #1 - adds r0, r0, r3 - ldrb r1, [r1] - adds r0, r0, r1 - adds r0, r0, r2 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0xd0 - adds r0, r0, r5 - ldrb r0, [r0] - subs r2, r1, r0 - cmp r2, #5 - bgt _08026284 - adds r1, r4, #0 - adds r1, #0x9c - adds r1, r1, r5 - ldrb r0, [r1] - adds r0, r0, r2 - strb r0, [r1] -_08026284: - mov r2, sb - ldr r1, [r2] - adds r1, #0x9c - adds r1, r1, r5 - ldrb r0, [r1] - adds r0, #1 - movs r2, #0 - strb r0, [r1] - movs r4, #0xff - ands r0, r4 - cmp r0, #5 - bhi _0802629E - b _080263CA -_0802629E: - mov r1, sb - ldr r0, [r1] - adds r0, #0x9c - adds r0, r0, r5 - strb r2, [r0] - ldr r3, [r1] - lsls r1, r5, #1 - adds r0, r3, #0 - adds r0, #0xf4 - adds r2, r0, r1 - ldrb r0, [r2] - mov r8, r1 - cmp r0, #0xff - bne _080262E0 - adds r0, r3, #0 - adds r0, #0xf5 - add r0, r8 - ldrb r0, [r0] - cmp r0, #0xff - bne _080262C8 - b _080263CA -_080262C8: - b _080262F0 - .align 2, 0 -_080262CC: .4byte 0x000031D4 -_080262D0: .4byte gUnknown_202294C -_080262D4: .4byte gUnknown_82C7D28 -_080262D8: .4byte gUnknown_82CB314 -_080262DC: .4byte 0x000031B4 -_080262E0: - adds r0, r3, #0 - adds r0, #0xf5 - add r0, r8 - ldrb r0, [r0] - cmp r0, #0xff - bne _080262F0 - ldrb r4, [r2] - b _08026316 -_080262F0: - mov r2, sb - ldr r1, [r2] - adds r0, r1, #0 - adds r0, #0xf4 - add r0, r8 - ldrb r7, [r0] - adds r1, #0xf5 - add r1, r8 - ldrb r6, [r1] - bl Random - movs r1, #1 - ands r1, r0 - cmp r1, #0 - bne _08026312 - adds r4, r7, #0 - b _08026316 -_08026312: - adds r4, r6, #0 - adds r6, r7, #0 -_08026316: - mov r1, sb - ldr r0, [r1] - ldr r2, _080263EC - adds r0, r0, r2 - adds r0, r0, r5 - movs r1, #7 - strb r1, [r0] - mov r1, sb - ldr r0, [r1] - adds r0, #0xc4 - adds r0, r0, r5 - movs r1, #2 - strb r1, [r0] - mov r2, sb - ldr r0, [r2] - adds r0, #0xa8 - adds r0, r0, r4 - movs r1, #3 - strb r1, [r0] - ldr r0, [r2] - adds r0, #0xb8 - adds r0, r0, r5 - strb r4, [r0] - ldr r1, [r2] - lsls r0, r4, #4 - subs r0, r0, r4 - lsls r0, r0, #2 - adds r1, r1, r0 - ldr r2, _080263F0 - adds r1, r1, r2 - movs r0, #1 - strb r0, [r1] - mov r2, sb - ldr r1, [r2] - lsls r0, r6, #4 - subs r0, r0, r6 - lsls r0, r0, #2 - adds r1, r1, r0 - ldr r0, _080263F4 - adds r1, r1, r0 - movs r2, #1 - strb r2, [r1] - mov r0, sb - ldr r1, [r0] - lsls r0, r4, #1 - adds r1, #0x86 - adds r1, r1, r0 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - movs r0, #0 - adds r1, r5, #0 - adds r2, r4, #0 - bl sub_08026CDC - movs r0, #1 - bl sub_08026FF4 - adds r0, r4, #0 - bl sub_08026ADC - mov r1, sb - ldr r0, [r1] - adds r1, r0, #0 - adds r1, #0xe8 - adds r1, r1, r5 - ldr r2, _080263F8 - adds r0, r0, r2 - adds r0, r0, r5 - ldrb r0, [r0] - strb r0, [r1] - mov r4, sb - ldr r0, [r4] - adds r0, r0, r2 - adds r0, r0, r5 - movs r1, #3 - strb r1, [r0] - ldr r1, [r4] - adds r1, #0xf4 - add r1, r8 - ldrb r0, [r1] - movs r2, #0xff - orrs r0, r2 - strb r0, [r1] - ldr r1, [r4] - adds r1, #0xf5 - add r1, r8 - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] -_080263CA: - mov r0, sl - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - ldr r4, [sp, #4] - cmp sl, r4 - bhs _080263DC - b _08026218 -_080263DC: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080263EC: .4byte 0x000032EB -_080263F0: .4byte 0x000031D0 -_080263F4: .4byte 0x000031D4 -_080263F8: .4byte 0x000032E0 - thumb_func_end sub_080260EC - - thumb_func_start sub_080263FC -sub_080263FC: @ 0x080263FC - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - movs r7, #0 - ldr r2, _08026430 - ldr r1, [r2] - adds r0, r1, #0 - adds r0, #0x24 - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _08026434 - adds r1, r1, r0 - mov ip, r2 - cmp r3, #2 - beq _08026438 - cmp r3, #2 - bgt _0802643E - cmp r3, #1 - beq _0802643C - b _0802643E - .align 2, 0 -_08026430: .4byte gUnknown_202294C -_08026434: .4byte 0x000032E0 -_08026438: - movs r7, #1 - b _0802643E -_0802643C: - movs r7, #2 -_0802643E: - adds r0, r1, #0 - adds r0, #0xb - adds r0, r0, r6 - ldrb r0, [r0] - subs r0, #6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0802649C - ldr r0, _08026490 - lsls r1, r4, #1 - adds r1, r1, r4 - adds r1, r7, r1 - lsls r2, r5, #4 - subs r2, r2, r5 - adds r1, r1, r2 - adds r1, r1, r0 - ldrb r1, [r1] - cmp r6, r1 - bne _080264D2 - mov r0, ip - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0xc4 - adds r0, r0, r6 - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _08026498 - lsls r0, r4, #4 - subs r0, r0, r4 - lsls r0, r0, #2 - adds r0, r1, r0 - ldr r1, _08026494 - adds r0, r0, r1 - movs r1, #1 - strb r1, [r0] - b _080264D2 - .align 2, 0 -_08026490: .4byte gUnknown_82C7E3B -_08026494: .4byte 0x000031D4 -_08026498: - movs r0, #1 - b _080264D4 -_0802649C: - ldr r0, _080264DC - lsls r1, r4, #1 - adds r1, r1, r4 - adds r1, r7, r1 - lsls r2, r5, #4 - subs r2, r2, r5 - adds r1, r1, r2 - adds r1, r1, r0 - ldrb r1, [r1] - cmp r6, r1 - bne _080264D2 - mov r1, ip - ldr r0, [r1] - adds r0, #0xa8 - adds r0, r0, r4 - movs r1, #4 - strb r1, [r0] - mov r0, ip - ldr r1, [r0] - lsls r0, r4, #4 - subs r0, r0, r4 - lsls r0, r0, #2 - adds r1, r1, r0 - ldr r0, _080264E0 - adds r1, r1, r0 - movs r0, #1 - strb r0, [r1] -_080264D2: - movs r0, #0 -_080264D4: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080264DC: .4byte gUnknown_82C7E3B -_080264E0: .4byte 0x000031D4 - thumb_func_end sub_080263FC - - thumb_func_start sub_080264E4 -sub_080264E4: @ 0x080264E4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r2, _080265B8 - ldr r4, [r2] - adds r0, r4, #0 - adds r0, #0x44 - ldrb r1, [r0] - adds r0, #4 - ldrb r0, [r0] - mov sb, r0 - movs r3, #0 - mov sl, r3 - movs r5, #0x90 - lsls r5, r5, #1 - adds r0, r4, r5 - str r3, [r0] - adds r5, r1, #0 - mov r0, sb - subs r0, #1 - cmp r5, r0 - blt _08026516 - b _08026734 -_08026516: - mov r8, r2 -_08026518: - mov r0, r8 - ldr r4, [r0] - adds r0, r4, #0 - adds r0, #0xc4 - adds r0, r0, r5 - ldrb r0, [r0] - cmp r0, #1 - bls _0802652A - b _08026634 -_0802652A: - movs r1, #0x90 - lsls r1, r1, #1 - adds r0, r4, r1 - movs r2, #1 - str r2, [r0] - ldr r1, _080265BC - adds r0, r4, r1 - adds r6, r0, r5 - ldrb r0, [r6] - cmp r0, #9 - bls _080265C4 - movs r7, #0 - movs r0, #0xa - strb r0, [r6] - mov r1, r8 - ldr r0, [r1] - adds r0, #0xc4 - adds r0, r0, r5 - movs r1, #3 - strb r1, [r0] - mov r1, r8 - ldr r0, [r1] - movs r6, #0xa4 - lsls r6, r6, #1 - adds r0, r0, r6 - adds r1, r0, r5 - ldrb r0, [r1] - cmp r0, #0 - bne _08026574 - strb r2, [r1] - ldr r2, _080265C0 - adds r0, r4, r2 - adds r0, r0, r5 - ldrb r0, [r0] - adds r0, #0x4a - bl sub_080A306C -_08026574: - mov r0, r8 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0x40 - ldrb r0, [r0] - cmp r0, #9 - bls _0802658A - mov r2, sl - cmp r2, #1 - beq _0802658A - b _08026724 -_0802658A: - movs r0, #1 - mov sl, r0 - adds r0, r1, r6 - adds r0, r0, r5 - strb r7, [r0] - mov r1, r8 - ldr r0, [r1] - adds r1, r0, #0 - adds r1, #0x40 - ldrb r0, [r1] - cmp r0, #9 - bhi _080265A6 - adds r0, #1 - strb r0, [r1] -_080265A6: - movs r0, #3 - adds r1, r5, #0 - movs r2, #0 - bl sub_08026CDC - movs r0, #0 - bl sub_08026FF4 - b _08026724 - .align 2, 0 -_080265B8: .4byte gUnknown_202294C -_080265BC: .4byte 0x000032EB -_080265C0: .4byte 0x000032E0 -_080265C4: - adds r0, r5, #0 - bl sub_08026B4C - mov r2, r8 - ldr r7, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r7, #0 - adds r1, #0x90 - adds r1, r1, r0 - ldrb r0, [r1] - movs r1, #7 - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #1 - bls _080265EA - movs r3, #2 -_080265EA: - ldr r2, _0802662C - ldr r0, _08026630 - adds r1, r4, r0 - adds r1, r1, r5 - lsls r0, r3, #1 - adds r0, r0, r3 - ldrb r1, [r1] - adds r0, r0, r1 - adds r0, r0, r2 - ldrb r2, [r0] - adds r1, r7, #0 - adds r1, #0xd0 - adds r1, r1, r5 - ldrb r0, [r1] - adds r0, #1 - movs r3, #0 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r2 - blo _08026624 - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] - mov r1, r8 - ldr r0, [r1] - adds r0, #0xd0 - adds r0, r0, r5 - strb r3, [r0] -_08026624: - bl sub_080260EC - b _08026724 - .align 2, 0 -_0802662C: .4byte gUnknown_82CB314 -_08026630: .4byte 0x000032E0 -_08026634: - cmp r0, #2 - bne _080266B4 - adds r1, r4, #0 - adds r1, #0xdc - adds r1, r1, r5 - ldrb r0, [r1] - adds r0, #1 - movs r3, #0 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x13 - bls _08026724 - mov r0, r8 - ldr r2, [r0] - adds r0, r2, #0 - adds r0, #0xb8 - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r2, r2, r0 - ldr r1, _080266A8 - adds r2, r2, r1 - strb r3, [r2] - mov r2, r8 - ldr r0, [r2] - adds r0, #0xdc - adds r0, r0, r5 - strb r3, [r0] - ldr r0, [r2] - adds r0, #0xd0 - adds r0, r0, r5 - strb r3, [r0] - ldr r0, [r2] - adds r0, #0xc4 - adds r0, r0, r5 - strb r3, [r0] - ldr r1, _080266AC - adds r0, r4, r1 - adds r0, r0, r5 - movs r1, #1 - strb r1, [r0] - adds r0, r5, #0 - bl sub_08026B4C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r5, #0 - bl sub_08026B70 - ldr r2, _080266B0 - adds r1, r4, r2 - adds r1, r1, r5 - strb r0, [r1] - b _08026724 - .align 2, 0 -_080266A8: .4byte 0x000031D0 -_080266AC: .4byte 0x000032EB -_080266B0: .4byte 0x000032E0 -_080266B4: - cmp r0, #3 - bne _08026724 - adds r1, r4, #0 - adds r1, #0xdc - adds r1, r1, r5 - ldrb r0, [r1] - adds r0, #1 - movs r2, #0 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x13 - bls _08026724 - mov r0, r8 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0x40 - ldrb r0, [r0] - cmp r0, #9 - bhi _08026724 - adds r0, r1, #0 - adds r0, #0xdc - adds r0, r0, r5 - strb r2, [r0] - mov r1, r8 - ldr r0, [r1] - adds r0, #0xd0 - adds r0, r0, r5 - strb r2, [r0] - ldr r0, [r1] - adds r0, #0xc4 - adds r0, r0, r5 - strb r2, [r0] - ldr r2, _08026744 - adds r0, r4, r2 - adds r0, r0, r5 - movs r1, #1 - strb r1, [r0] - mov r0, r8 - ldr r1, [r0] - adds r1, #0xe8 - adds r1, r1, r5 - subs r2, #0xb - adds r4, r4, r2 - adds r4, r4, r5 - ldrb r0, [r4] - strb r0, [r1] - adds r0, r5, #0 - bl sub_08026B4C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r5, #0 - bl sub_08026B70 - strb r0, [r4] -_08026724: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - mov r0, sb - subs r0, #1 - cmp r5, r0 - bge _08026734 - b _08026518 -_08026734: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08026744: .4byte 0x000032EB - thumb_func_end sub_080264E4 - - thumb_func_start sub_08026748 -sub_08026748: @ 0x08026748 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r0, _080267B0 - ldr r0, [r0] - adds r1, r0, #0 - adds r1, #0x44 - adds r0, #0x48 - ldrb r0, [r0] - mov r8, r0 - ldrb r6, [r1] - cmp r6, r8 - bhs _0802683A - ldr r0, _080267B4 - mov sb, r0 -_08026768: - ldr r0, _080267B0 - ldr r3, [r0] - adds r0, r3, #0 - adds r0, #0x28 - ldrb r1, [r0] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r2, _080267B8 - adds r0, r0, r2 - adds r7, r3, r0 - movs r0, #0xb - adds r2, r1, #0 - muls r2, r0, r2 - adds r2, r6, r2 - adds r3, #0x24 - ldrb r1, [r3] - subs r1, #1 - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #3 - subs r0, r0, r1 - adds r2, r2, r0 - add r2, sb - ldrb r4, [r2] - adds r0, r7, #0 - adds r0, #0x1f - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0 - beq _080267BC - adds r0, r6, #0 - movs r1, #0 - bl sub_08028924 - b _080267C4 - .align 2, 0 -_080267B0: .4byte gUnknown_202294C -_080267B4: .4byte gUnknown_82C7D28 -_080267B8: .4byte 0x000031A0 -_080267BC: - adds r0, r6, #0 - movs r1, #1 - bl sub_08028924 -_080267C4: - adds r0, r7, #0 - adds r0, #0x1f - adds r5, r0, r4 - ldrb r0, [r5] - cmp r0, #9 - bls _080267F0 - adds r0, r7, #0 - adds r0, #0x14 - adds r0, r0, r4 - ldrb r1, [r0] - adds r1, #3 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r6, #0 - bl sub_080289D0 - ldrb r1, [r5] - lsls r1, r1, #0x19 - movs r0, #0xff - lsls r0, r0, #0x18 - adds r1, r1, r0 - b _08026812 -_080267F0: - adds r0, r7, #0 - adds r0, #0x14 - adds r3, r0, r4 - ldrb r0, [r3] - cmp r0, #3 - bne _0802681C - movs r0, #7 - strb r0, [r5] - adds r0, r6, #0 - movs r1, #6 - bl sub_080289D0 - ldrb r1, [r5] - lsls r1, r1, #0x19 - movs r2, #0xff - lsls r2, r2, #0x18 - adds r1, r1, r2 -_08026812: - lsrs r1, r1, #0x18 - adds r0, r6, #0 - bl sub_080289A8 - b _08026830 -_0802681C: - ldrb r1, [r3] - adds r0, r6, #0 - bl sub_080289D0 - ldrb r1, [r5] - lsls r1, r1, #0x19 - lsrs r1, r1, #0x18 - adds r0, r6, #0 - bl sub_080289A8 -_08026830: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, r8 - blo _08026768 -_0802683A: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08026748 - - thumb_func_start sub_08026848 -sub_08026848: @ 0x08026848 - push {r4, r5, r6, lr} - ldr r1, _08026880 - ldr r0, [r1] - adds r0, #0x24 - ldrb r5, [r0] - movs r4, #0 - cmp r4, r5 - bhs _0802687A - adds r6, r1, #0 -_0802685A: - lsls r0, r4, #4 - subs r0, r0, r4 - lsls r0, r0, #2 - ldr r1, [r6] - adds r0, r0, r1 - ldr r1, _08026884 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080283E0 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r5 - blo _0802685A -_0802687A: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08026880: .4byte gUnknown_202294C -_08026884: .4byte 0x000031CC - thumb_func_end sub_08026848 - - thumb_func_start sub_08026888 -sub_08026888: @ 0x08026888 - push {r4, r5, lr} - ldr r0, _080268B0 - ldr r0, [r0] - adds r0, #0x24 - ldrb r5, [r0] - movs r4, #0 - cmp r4, r5 - bhs _080268AA -_08026898: - adds r0, r4, #0 - movs r1, #4 - bl sub_080283E0 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r5 - blo _08026898 -_080268AA: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080268B0: .4byte gUnknown_202294C - thumb_func_end sub_08026888 - - thumb_func_start sub_080268B4 -sub_080268B4: @ 0x080268B4 - push {lr} - bl sub_08026748 - ldr r0, _080268CC - ldr r0, [r0] - adds r0, #0x40 - ldrb r0, [r0] - cmp r0, #9 - bls _080268D0 - bl sub_08026888 - b _080268D4 - .align 2, 0 -_080268CC: .4byte gUnknown_202294C -_080268D0: - bl sub_08026848 -_080268D4: - ldr r0, _080268E4 - ldr r0, [r0] - adds r0, #0x40 - ldrb r0, [r0] - bl sub_08028600 - pop {r0} - bx r0 - .align 2, 0 -_080268E4: .4byte gUnknown_202294C - thumb_func_end sub_080268B4 - - thumb_func_start sub_080268E8 -sub_080268E8: @ 0x080268E8 - push {lr} - bl sub_08026748 - ldr r0, _08026900 - ldr r0, [r0] - adds r0, #0x40 - ldrb r0, [r0] - cmp r0, #9 - bls _08026904 - bl sub_08026888 - b _08026908 - .align 2, 0 -_08026900: .4byte gUnknown_202294C -_08026904: - bl sub_08026848 -_08026908: - ldr r0, _08026918 - ldr r0, [r0] - adds r0, #0x40 - ldrb r0, [r0] - bl sub_08028600 - pop {r0} - bx r0 - .align 2, 0 -_08026918: .4byte gUnknown_202294C - thumb_func_end sub_080268E8 - - thumb_func_start sub_0802691C -sub_0802691C: @ 0x0802691C - push {lr} - adds r3, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, #1 - cmp r0, #4 - bhi _08026974 - lsls r0, r0, #2 - ldr r1, _08026934 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08026934: .4byte _08026938 -_08026938: @ jump table - .4byte _0802694C @ case 0 - .4byte _08026954 @ case 1 - .4byte _0802695C @ case 2 - .4byte _08026964 @ case 3 - .4byte _0802696C @ case 4 -_0802694C: - movs r0, #4 - strb r0, [r3] - movs r0, #7 - b _08026972 -_08026954: - movs r0, #3 - strb r0, [r3] - movs r0, #8 - b _08026972 -_0802695C: - movs r0, #2 - strb r0, [r3] - movs r0, #9 - b _08026972 -_08026964: - movs r0, #1 - strb r0, [r3] - movs r0, #0xa - b _08026972 -_0802696C: - movs r0, #0 - strb r0, [r3] - movs r0, #0xb -_08026972: - strb r0, [r2] -_08026974: - pop {r0} - bx r0 - thumb_func_end sub_0802691C - - thumb_func_start sub_08026978 -sub_08026978: @ 0x08026978 - push {r4, r5, r6, lr} - ldr r1, _080269D0 - ldr r0, [r1] - adds r0, #0x24 - ldrb r5, [r0] - movs r4, #1 - cmp r4, r5 - bhs _080269DE - adds r6, r1, #0 -_0802698A: - ldr r0, [r6] - movs r1, #0xac - lsls r1, r1, #1 - adds r0, r0, r1 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0 - bne _080269AC - adds r0, r4, #0 - bl sub_08027B28 - ldr r1, [r6] - movs r2, #0xac - lsls r2, r2, #1 - adds r1, r1, r2 - adds r1, r1, r4 - strb r0, [r1] -_080269AC: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r5 - blo _0802698A - cmp r4, r5 - bhs _080269DE - ldr r0, _080269D0 - ldr r0, [r0] - movs r2, #0xac - lsls r2, r2, #1 - adds r1, r0, r2 -_080269C4: - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, #0 - bne _080269D4 - movs r0, #0 - b _080269E0 - .align 2, 0 -_080269D0: .4byte gUnknown_202294C -_080269D4: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r5 - blo _080269C4 -_080269DE: - movs r0, #1 -_080269E0: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08026978 - - thumb_func_start sub_080269E8 -sub_080269E8: @ 0x080269E8 - push {r4, lr} - movs r1, #0 - ldr r4, _08026A0C - movs r3, #0xac - lsls r3, r3, #1 - movs r2, #0 -_080269F4: - ldr r0, [r4] - adds r0, r0, r3 - adds r0, r0, r1 - strb r2, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #4 - bls _080269F4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08026A0C: .4byte gUnknown_202294C - thumb_func_end sub_080269E8 - - thumb_func_start sub_08026A10 -sub_08026A10: @ 0x08026A10 - push {r4, lr} - ldr r3, _08026A44 - ldr r1, [r3] - adds r2, r1, #0 - adds r2, #0x40 - ldrb r0, [r2] - cmp r0, #9 - bls _08026A48 - movs r4, #0x90 - lsls r4, r4, #1 - adds r0, r1, r4 - ldr r0, [r0] - cmp r0, #0 - bne _08026A48 - movs r0, #0xa - strb r0, [r2] - ldr r0, [r3] - movs r1, #0x96 - lsls r1, r1, #1 - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #0 - beq _08026A48 - movs r0, #1 - b _08026A4A - .align 2, 0 -_08026A44: .4byte gUnknown_202294C -_08026A48: - movs r0, #0 -_08026A4A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_08026A10 - - thumb_func_start sub_08026A50 -sub_08026A50: @ 0x08026A50 - push {r4, r5, r6, lr} - ldr r4, _08026AC8 - ldr r1, [r4] - adds r2, r1, #0 - adds r2, #0x40 - ldrb r0, [r2] - cmp r0, #9 - bls _08026AD4 - adds r0, r1, #0 - adds r0, #0x44 - ldrb r3, [r0] - adds r0, #4 - ldrb r5, [r0] - movs r0, #0xa - strb r0, [r2] - ldr r4, [r4] - mov ip, r4 - movs r0, #0x96 - lsls r0, r0, #1 - add r0, ip - ldr r0, [r0] - cmp r0, #0 - beq _08026AD4 - adds r4, r3, #0 - cmp r4, r5 - bhs _08026AC4 - mov r0, ip - adds r0, #0x28 - ldrb r3, [r0] - lsls r1, r3, #4 - subs r1, r1, r3 - lsls r1, r1, #2 - ldr r6, _08026ACC - subs r0, #4 - ldrb r2, [r0] - subs r2, #1 - add r1, ip - movs r0, #0xb - muls r3, r0, r3 - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #3 - subs r2, r0, r2 - ldr r0, _08026AD0 - adds r1, r1, r0 -_08026AAA: - adds r0, r4, r3 - adds r0, r0, r2 - adds r0, r0, r6 - ldrb r0, [r0] - adds r0, r1, r0 - ldrb r0, [r0] - cmp r0, #0xa - bne _08026AD4 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r5 - blo _08026AAA -_08026AC4: - movs r0, #1 - b _08026AD6 - .align 2, 0 -_08026AC8: .4byte gUnknown_202294C -_08026ACC: .4byte gUnknown_82C7D28 -_08026AD0: .4byte 0x000031BF -_08026AD4: - movs r0, #0 -_08026AD6: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_08026A50 - - thumb_func_start sub_08026ADC -sub_08026ADC: @ 0x08026ADC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _08026B44 - mov r8, r0 - ldr r0, _08026B48 - ldr r6, [r0] - adds r0, r6, #0 - adds r0, #0x90 - adds r0, r0, r5 - mov sb, r0 - ldrb r7, [r0] - adds r0, r7, #0 - movs r1, #7 - bl __umodsi3 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - add r4, r8 - adds r0, r7, #0 - movs r1, #7 - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x64 - muls r0, r1, r0 - ldrb r4, [r4] - adds r0, r0, r4 - lsls r0, r0, #0x18 - lsls r5, r5, #1 - adds r6, #0x86 - adds r6, r6, r5 - ldrh r1, [r6] - lsrs r0, r0, #0x18 - cmp r1, r0 - blo _08026B36 - adds r0, r7, #1 - mov r1, sb - strb r0, [r1] -_08026B36: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08026B44: .4byte gUnknown_82CB328 -_08026B48: .4byte gUnknown_202294C - thumb_func_end sub_08026ADC - - thumb_func_start sub_08026B4C -sub_08026B4C: @ 0x08026B4C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _08026B68 - ldr r1, _08026B6C - ldr r1, [r1] - adds r1, #0x24 - ldrb r1, [r1] - subs r1, #1 - movs r2, #0xb - muls r1, r2, r1 - adds r0, r0, r1 - adds r0, r0, r3 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08026B68: .4byte gUnknown_82C7ED4 -_08026B6C: .4byte gUnknown_202294C - thumb_func_end sub_08026B4C - - thumb_func_start sub_08026B70 -sub_08026B70: @ 0x08026B70 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - ldr r4, _08026BF0 - ldr r1, [r4] - adds r1, #0x24 - ldrb r2, [r1] - subs r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r3, _08026BF4 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r0, r2, #4 - subs r0, r0, r2 - adds r1, r1, r0 - adds r0, r1, r3 - ldrb r0, [r0] - mov ip, r0 - adds r0, r3, #1 - adds r0, r1, r0 - ldrb r7, [r0] - adds r3, #2 - adds r1, r1, r3 - ldrb r1, [r1] - mov r8, r1 - movs r3, #0 - ldr r1, _08026BF8 - lsls r0, r2, #2 - adds r2, r0, r2 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _08026BD8 - adds r6, r1, #0 -_08026BBE: - adds r0, r3, r2 - adds r0, r0, r6 - ldrb r0, [r0] - cmp r5, r0 - beq _08026BFC - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - adds r0, r3, r2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _08026BBE -_08026BD8: - ldr r0, [r4] - adds r0, #0x90 - mov r1, ip - adds r2, r0, r1 - adds r1, r0, r7 - ldrb r0, [r2] - ldrb r3, [r1] - cmp r0, r3 - bls _08026C06 - adds r1, r0, #0 - b _08026C08 - .align 2, 0 -_08026BF0: .4byte gUnknown_202294C -_08026BF4: .4byte gUnknown_82C7E86 -_08026BF8: .4byte gUnknown_82C7F0B -_08026BFC: - ldr r0, [r4] - adds r0, #0x90 - adds r0, r0, r7 - ldrb r0, [r0] - b _08026C1A -_08026C06: - ldrb r1, [r1] -_08026C08: - ldr r0, [r4] - adds r0, #0x90 - mov r2, r8 - adds r4, r0, r2 - ldrb r0, [r4] - cmp r0, r1 - bls _08026C18 - adds r1, r0, #0 -_08026C18: - adds r0, r1, #0 -_08026C1A: - adds r1, r5, #0 - bl sub_08026C30 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08026B70 - - thumb_func_start sub_08026C30 -sub_08026C30: @ 0x08026C30 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _08026C5C - ldr r2, [r2] - adds r2, #0xe8 - adds r2, r2, r1 - ldrb r4, [r2] - movs r1, #7 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #6 - bhi _08026C9E - lsls r0, r0, #2 - ldr r1, _08026C60 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08026C5C: .4byte gUnknown_202294C -_08026C60: .4byte _08026C64 -_08026C64: @ jump table - .4byte _08026C9E @ case 0 - .4byte _08026C96 @ case 1 - .4byte _08026CA2 @ case 2 - .4byte _08026C80 @ case 3 - .4byte _08026C86 @ case 4 - .4byte _08026C8C @ case 5 - .4byte _08026C92 @ case 6 -_08026C80: - cmp r4, #0 - beq _08026C96 - b _08026C9E -_08026C86: - cmp r4, #0 - beq _08026CA2 - b _08026C9E -_08026C8C: - cmp r4, #2 - beq _08026C96 - b _08026CA2 -_08026C92: - cmp r4, #0 - bne _08026C9A -_08026C96: - movs r0, #1 - b _08026CA4 -_08026C9A: - cmp r4, #1 - beq _08026CA2 -_08026C9E: - movs r0, #0 - b _08026CA4 -_08026CA2: - movs r0, #2 -_08026CA4: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08026C30 - - thumb_func_start sub_08026CAC -sub_08026CAC: @ 0x08026CAC - push {r4, r5, r6, lr} - movs r6, #0 - movs r5, #0 - adds r4, r0, #0 - b _08026CBE -_08026CB6: - ldrh r0, [r4, #6] - adds r6, r6, r0 - adds r4, #0xc - adds r5, #1 -_08026CBE: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r5, r0 - blt _08026CB6 - cmp r6, #0xa - bgt _08026CD2 - movs r0, #0 - b _08026CD4 -_08026CD2: - movs r0, #1 -_08026CD4: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08026CAC - - thumb_func_start sub_08026CDC -sub_08026CDC: @ 0x08026CDC - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r6, _08026D04 - ldr r1, [r6] - adds r0, r1, #0 - adds r0, #0x24 - ldrb r5, [r0] - cmp r3, #0 - bge _08026CFA - b _08026FEC -_08026CFA: - cmp r3, #2 - ble _08026D08 - cmp r3, #3 - beq _08026D38 - b _08026FEC - .align 2, 0 -_08026D04: .4byte gUnknown_202294C -_08026D08: - ldr r3, _08026D30 - adds r0, r1, r3 - adds r0, r0, r4 - ldrb r4, [r0] - lsls r4, r4, #1 - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r4, r4, r0 - adds r0, r1, #0 - adds r0, #0x4a - adds r0, r0, r4 - ldrh r0, [r0] - ldr r1, _08026D34 - bl IncrementWithLimit - ldr r1, [r6] - adds r1, #0x4a - adds r1, r1, r4 - b _08026FEA - .align 2, 0 -_08026D30: .4byte 0x000031B4 -_08026D34: .4byte 0x00004E20 -_08026D38: - adds r0, r1, #0 - adds r0, #0x4a - bl sub_08026CAC - cmp r0, #0 - beq _08026D46 - b _08026FEC -_08026D46: - cmp r5, #3 - bne _08026D4C - b _08026F14 -_08026D4C: - cmp r5, #3 - bgt _08026D58 - cmp r5, #2 - bne _08026D56 - b _08026FA8 -_08026D56: - b _08026FEC -_08026D58: - cmp r5, #4 - bne _08026D5E - b _08026E50 -_08026D5E: - cmp r5, #5 - beq _08026D64 - b _08026FEC -_08026D64: - cmp r4, #9 - bls _08026D6A - b _08026FEC -_08026D6A: - lsls r0, r4, #2 - ldr r1, _08026D74 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08026D74: .4byte _08026D78 -_08026D78: @ jump table - .4byte _08026DA0 @ case 0 - .4byte _08026DB8 @ case 1 - .4byte _08026DC4 @ case 2 - .4byte _08026DDC @ case 3 - .4byte _08026DE8 @ case 4 - .4byte _08026E00 @ case 5 - .4byte _08026E0C @ case 6 - .4byte _08026E20 @ case 7 - .4byte _08026E2C @ case 8 - .4byte _08026E44 @ case 9 -_08026DA0: - ldr r0, _08026DB4 - ldr r1, [r0] - adds r2, r1, #0 - adds r2, #0x68 - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - adds r1, #0x74 - b _08026FE6 - .align 2, 0 -_08026DB4: .4byte gUnknown_202294C -_08026DB8: - ldr r0, _08026DC0 - ldr r1, [r0] - adds r1, #0x74 - b _08026FE6 - .align 2, 0 -_08026DC0: .4byte gUnknown_202294C -_08026DC4: - ldr r0, _08026DD8 - ldr r1, [r0] - adds r2, r1, #0 - adds r2, #0x74 - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - adds r1, #0x80 - b _08026FE6 - .align 2, 0 -_08026DD8: .4byte gUnknown_202294C -_08026DDC: - ldr r0, _08026DE4 - ldr r1, [r0] - adds r1, #0x80 - b _08026FE6 - .align 2, 0 -_08026DE4: .4byte gUnknown_202294C -_08026DE8: - ldr r0, _08026DFC - ldr r1, [r0] - adds r2, r1, #0 - adds r2, #0x80 - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - adds r1, #0x50 - b _08026FE6 - .align 2, 0 -_08026DFC: .4byte gUnknown_202294C -_08026E00: - ldr r0, _08026E08 - ldr r1, [r0] - adds r1, #0x50 - b _08026FE6 - .align 2, 0 -_08026E08: .4byte gUnknown_202294C -_08026E0C: - ldr r0, _08026E1C - ldr r1, [r0] - adds r2, r1, #0 - adds r2, #0x50 - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - b _08026FE4 - .align 2, 0 -_08026E1C: .4byte gUnknown_202294C -_08026E20: - ldr r0, _08026E28 - ldr r1, [r0] - b _08026FE4 - .align 2, 0 -_08026E28: .4byte gUnknown_202294C -_08026E2C: - ldr r0, _08026E40 - ldr r1, [r0] - adds r2, r1, #0 - adds r2, #0x5c - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - adds r1, #0x68 - b _08026FE6 - .align 2, 0 -_08026E40: .4byte gUnknown_202294C -_08026E44: - ldr r0, _08026E4C - ldr r1, [r0] - adds r1, #0x68 - b _08026FE6 - .align 2, 0 -_08026E4C: .4byte gUnknown_202294C -_08026E50: - subs r0, r4, #1 - cmp r0, #7 - bls _08026E58 - b _08026FEC -_08026E58: - lsls r0, r0, #2 - ldr r1, _08026E64 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08026E64: .4byte _08026E68 -_08026E68: @ jump table - .4byte _08026E88 @ case 0 - .4byte _08026EA0 @ case 1 - .4byte _08026EAC @ case 2 - .4byte _08026EC4 @ case 3 - .4byte _08026ED0 @ case 4 - .4byte _08026EE4 @ case 5 - .4byte _08026EF0 @ case 6 - .4byte _08026F08 @ case 7 -_08026E88: - ldr r0, _08026E9C - ldr r1, [r0] - adds r2, r1, #0 - adds r2, #0x68 - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - adds r1, #0x74 - b _08026FE6 - .align 2, 0 -_08026E9C: .4byte gUnknown_202294C -_08026EA0: - ldr r0, _08026EA8 - ldr r1, [r0] - adds r1, #0x74 - b _08026FE6 - .align 2, 0 -_08026EA8: .4byte gUnknown_202294C -_08026EAC: - ldr r0, _08026EC0 - ldr r1, [r0] - adds r2, r1, #0 - adds r2, #0x74 - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - adds r1, #0x50 - b _08026FE6 - .align 2, 0 -_08026EC0: .4byte gUnknown_202294C -_08026EC4: - ldr r0, _08026ECC - ldr r1, [r0] - adds r1, #0x50 - b _08026FE6 - .align 2, 0 -_08026ECC: .4byte gUnknown_202294C -_08026ED0: - ldr r0, _08026EE0 - ldr r1, [r0] - adds r2, r1, #0 - adds r2, #0x50 - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - b _08026FE4 - .align 2, 0 -_08026EE0: .4byte gUnknown_202294C -_08026EE4: - ldr r0, _08026EEC - ldr r1, [r0] - b _08026FE4 - .align 2, 0 -_08026EEC: .4byte gUnknown_202294C -_08026EF0: - ldr r0, _08026F04 - ldr r1, [r0] - adds r2, r1, #0 - adds r2, #0x5c - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - adds r1, #0x68 - b _08026FE6 - .align 2, 0 -_08026F04: .4byte gUnknown_202294C -_08026F08: - ldr r0, _08026F10 - ldr r1, [r0] - adds r1, #0x68 - b _08026FE6 - .align 2, 0 -_08026F10: .4byte gUnknown_202294C -_08026F14: - subs r0, r4, #2 - cmp r0, #5 - bhi _08026FEC - lsls r0, r0, #2 - ldr r1, _08026F24 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08026F24: .4byte _08026F28 -_08026F28: @ jump table - .4byte _08026F40 @ case 0 - .4byte _08026F58 @ case 1 - .4byte _08026F64 @ case 2 - .4byte _08026F7C @ case 3 - .4byte _08026F88 @ case 4 - .4byte _08026F9C @ case 5 -_08026F40: - ldr r0, _08026F54 - ldr r1, [r0] - adds r2, r1, #0 - adds r2, #0x5c - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - adds r1, #0x68 - b _08026FE6 - .align 2, 0 -_08026F54: .4byte gUnknown_202294C -_08026F58: - ldr r0, _08026F60 - ldr r1, [r0] - adds r1, #0x68 - b _08026FE6 - .align 2, 0 -_08026F60: .4byte gUnknown_202294C -_08026F64: - ldr r0, _08026F78 - ldr r1, [r0] - adds r2, r1, #0 - adds r2, #0x68 - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - adds r1, #0x50 - b _08026FE6 - .align 2, 0 -_08026F78: .4byte gUnknown_202294C -_08026F7C: - ldr r0, _08026F84 - ldr r1, [r0] - adds r1, #0x50 - b _08026FE6 - .align 2, 0 -_08026F84: .4byte gUnknown_202294C -_08026F88: - ldr r0, _08026F98 - ldr r1, [r0] - adds r2, r1, #0 - adds r2, #0x50 - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - b _08026FE4 - .align 2, 0 -_08026F98: .4byte gUnknown_202294C -_08026F9C: - ldr r0, _08026FA4 - ldr r1, [r0] - b _08026FE4 - .align 2, 0 -_08026FA4: .4byte gUnknown_202294C -_08026FA8: - cmp r4, #4 - beq _08026FCE - cmp r4, #4 - bgt _08026FB6 - cmp r4, #3 - beq _08026FC0 - b _08026FEC -_08026FB6: - cmp r4, #5 - beq _08026FD4 - cmp r4, #6 - beq _08026FE2 - b _08026FEC -_08026FC0: - ldr r1, [r6] - adds r2, r1, #0 - adds r2, #0x50 - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - b _08026FE4 -_08026FCE: - ldr r1, [r6] - adds r1, #0x50 - b _08026FE6 -_08026FD4: - ldr r1, [r6] - adds r2, r1, #0 - adds r2, #0x50 - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - b _08026FE4 -_08026FE2: - ldr r1, [r6] -_08026FE4: - adds r1, #0x5c -_08026FE6: - ldrh r0, [r1] - adds r0, #1 -_08026FEA: - strh r0, [r1] -_08026FEC: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08026CDC - - thumb_func_start sub_08026FF4 -sub_08026FF4: @ 0x08026FF4 - push {r4, r5, lr} - adds r1, r0, #0 - ldr r4, _08027038 - ldr r3, [r4] - adds r0, r3, #0 - adds r0, #0x24 - ldrb r0, [r0] - cmp r0, #5 - bne _0802705E - cmp r1, #1 - bne _08027040 - movs r5, #0x89 - lsls r5, r5, #1 - adds r1, r3, r5 - ldrh r0, [r1] - adds r2, r0, #1 - strh r2, [r1] - movs r0, #0x8a - lsls r0, r0, #1 - adds r1, r3, r0 - lsls r0, r2, #0x10 - lsrs r0, r0, #0x10 - ldrh r3, [r1] - cmp r0, r3 - bls _08027028 - strh r2, [r1] -_08027028: - ldr r0, [r4] - adds r2, r0, r5 - ldrh r0, [r2] - ldr r1, _0802703C - cmp r0, r1 - bls _0802705E - strh r1, [r2] - b _0802705E - .align 2, 0 -_08027038: .4byte gUnknown_202294C -_0802703C: .4byte 0x0000270F -_08027040: - movs r2, #0x89 - lsls r2, r2, #1 - adds r0, r3, r2 - movs r5, #0x8a - lsls r5, r5, #1 - adds r1, r3, r5 - ldrh r0, [r0] - ldrh r3, [r1] - cmp r0, r3 - bls _08027056 - strh r0, [r1] -_08027056: - ldr r0, [r4] - adds r0, r0, r2 - movs r1, #0 - strh r1, [r0] -_0802705E: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_08026FF4 - - thumb_func_start sub_08027064 -sub_08027064: @ 0x08027064 - push {r4, r5, lr} - movs r3, #0 - ldr r2, _080270A4 - ldr r0, [r2] - adds r0, #0x24 - ldrb r0, [r0] - cmp r3, r0 - bhs _0802709C - adds r5, r2, #0 - movs r4, #0x8a - lsls r4, r4, #1 -_0802707A: - ldr r2, [r5] - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r1, r2, #0 - adds r1, #0x54 - adds r1, r1, r0 - adds r0, r2, r4 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - adds r2, #0x24 - ldrb r2, [r2] - cmp r3, r2 - blo _0802707A -_0802709C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080270A4: .4byte gUnknown_202294C - thumb_func_end sub_08027064 - - thumb_func_start sub_080270A8 -sub_080270A8: @ 0x080270A8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - movs r5, #0 - ldr r7, _08027198 - movs r4, #0 - ldr r0, _0802719C - mov sl, r0 -_080270BC: - movs r2, #0 - lsls r6, r5, #4 - lsls r1, r5, #1 - mov r8, r1 - lsls r0, r5, #3 - mov ip, r0 - adds r1, r5, #1 - mov sb, r1 - subs r0, r6, r5 - lsls r3, r0, #2 -_080270D0: - ldr r0, [r7] - adds r1, r2, r3 - add r0, sl - adds r0, r0, r1 - strb r4, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xa - bls _080270D0 - ldr r0, [r7] - subs r1, r6, r5 - lsls r1, r1, #2 - adds r0, r0, r1 - ldr r2, _080271A0 - adds r0, r0, r2 - strb r4, [r0] - ldr r0, [r7] - adds r0, r0, r1 - ldr r1, _080271A4 - adds r0, r0, r1 - strb r4, [r0] - ldr r0, [r7] - adds r0, #0x90 - adds r0, r0, r5 - strb r4, [r0] - ldr r1, [r7] - adds r0, r1, #0 - adds r0, #0x86 - add r0, r8 - strh r4, [r0] - add r1, ip - ldr r2, _080271A8 - adds r1, r1, r2 - strb r4, [r1] - ldr r2, [r7] - ldr r1, _080271AC - adds r0, r2, r1 - add r0, ip - str r4, [r0] - mov r0, r8 - adds r1, r0, r5 - lsls r1, r1, #2 - adds r0, r2, #0 - adds r0, #0x4a - adds r0, r0, r1 - strh r4, [r0] - adds r0, r2, #0 - adds r0, #0x4c - adds r0, r0, r1 - strh r4, [r0] - adds r0, r2, #0 - adds r0, #0x4e - adds r0, r0, r1 - strh r4, [r0] - adds r0, r2, #0 - adds r0, #0x50 - adds r0, r0, r1 - strh r4, [r0] - adds r0, r2, #0 - adds r0, #0x52 - adds r0, r0, r1 - strh r4, [r0] - adds r0, r2, #0 - adds r0, #0x54 - adds r0, r0, r1 - strh r4, [r0] - mov r1, sb - lsls r0, r1, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #4 - bls _080270BC - ldr r2, _08027198 - ldr r0, [r2] - movs r1, #0xaa - lsls r1, r1, #1 - adds r0, r0, r1 - movs r2, #0 - strb r2, [r0] - ldr r1, _08027198 - ldr r0, [r1] - movs r1, #0x89 - lsls r1, r1, #1 - adds r3, r0, r1 - movs r1, #0 - strh r2, [r3] - adds r0, #0x40 - strb r1, [r0] - bl sub_08026848 - bl sub_08026748 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08027198: .4byte gUnknown_202294C -_0802719C: .4byte 0x000031BF -_080271A0: .4byte 0x000031CC -_080271A4: .4byte 0x000031D0 -_080271A8: .4byte 0x00003308 -_080271AC: .4byte 0x0000330C - thumb_func_end sub_080270A8 - - thumb_func_start sub_080271B0 -sub_080271B0: @ 0x080271B0 - push {r4, r5, lr} - movs r4, #0 - ldr r0, _080271C8 - ldr r0, [r0] - adds r0, #0x24 - ldrb r0, [r0] - cmp r0, #4 - beq _080271CC - cmp r0, #5 - beq _080271D0 - b _080271D2 - .align 2, 0 -_080271C8: .4byte gUnknown_202294C -_080271CC: - movs r4, #1 - b _080271D2 -_080271D0: - movs r4, #2 -_080271D2: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r3, #0 - lsls r1, r4, #2 - ldr r5, _08027214 - ldr r2, _08027218 - adds r1, r1, r4 - lsls r1, r1, #1 - adds r0, r0, r1 - adds r0, r0, r2 - ldrb r2, [r0] -_080271F6: - ldr r1, [r5] - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r1, #0x52 - adds r1, r1, r0 - strh r2, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #4 - bls _080271F6 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08027214: .4byte gUnknown_202294C -_08027218: .4byte gUnknown_82CB330 - thumb_func_end sub_080271B0 - - thumb_func_start sub_0802721C -sub_0802721C: @ 0x0802721C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08027254 - ldr r2, [r1] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r0, r2, #0 - adds r0, #0x4a - adds r0, r0, r1 - ldrh r3, [r0] - adds r0, r2, #0 - adds r0, #0x4c - adds r0, r0, r1 - ldrh r0, [r0] - adds r2, #0x4e - adds r2, r2, r1 - adds r3, r3, r0 - ldrh r2, [r2] - adds r0, r3, r2 - ldr r1, _08027258 - cmp r0, r1 - bls _0802724E - adds r0, r1, #0 -_0802724E: - pop {r1} - bx r1 - .align 2, 0 -_08027254: .4byte gUnknown_202294C -_08027258: .4byte 0x0000270F - thumb_func_end sub_0802721C - - thumb_func_start sub_0802725C -sub_0802725C: @ 0x0802725C - push {r4, r5, r6, lr} - ldr r5, _080272C4 - ldr r0, [r5] - adds r0, #0x28 - ldrb r0, [r0] - bl sub_0802721C - ldr r1, _080272C8 - bl Min - adds r4, r0, #0 - ldr r0, [r5] - adds r0, #0x28 - ldrb r0, [r0] - bl sub_08027480 - ldr r1, _080272CC - bl Min - adds r2, r0, #0 - ldr r3, _080272D0 - ldr r0, [r3] - movs r6, #0x83 - lsls r6, r6, #2 - adds r1, r0, r6 - ldr r0, [r1] - cmp r0, r2 - bhs _08027296 - str r2, [r1] -_08027296: - ldr r0, [r3] - movs r2, #0x84 - lsls r2, r2, #2 - adds r1, r0, r2 - ldrh r0, [r1] - cmp r0, r4 - bhs _080272A6 - strh r4, [r1] -_080272A6: - ldr r0, [r3] - ldr r6, _080272D4 - adds r2, r0, r6 - ldr r0, [r5] - movs r1, #0x8a - lsls r1, r1, #1 - adds r0, r0, r1 - ldrh r1, [r0] - ldrh r0, [r2] - cmp r0, r1 - bhs _080272BE - strh r1, [r2] -_080272BE: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080272C4: .4byte gUnknown_202294C -_080272C8: .4byte 0x0000270F -_080272CC: .4byte 0x000F4236 -_080272D0: .4byte gUnknown_3005AF0 -_080272D4: .4byte 0x00000212 - thumb_func_end sub_0802725C - - thumb_func_start sub_080272D8 -sub_080272D8: @ 0x080272D8 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r1, _08027310 - ldr r0, [r1] - adds r0, #0x9b - ldrb r6, [r0] - movs r3, #3 - adds r5, r1, #0 - adds r4, r5, #0 -_080272EC: - ldr r0, [r4] - adds r0, #0x98 - adds r2, r0, r3 - subs r1, r3, #1 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r2] - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - cmp r3, #0 - bne _080272EC - ldr r0, [r5] - adds r0, #0x98 - strb r7, [r0] - adds r0, r6, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08027310: .4byte gUnknown_202294C - thumb_func_end sub_080272D8 - - thumb_func_start sub_08027314 -sub_08027314: @ 0x08027314 - push {r4, lr} - ldr r4, _08027348 - ldr r3, [r4] - adds r0, r3, #0 - adds r0, #0x28 - ldrb r1, [r0] - adds r0, #0x88 - adds r2, r0, r1 - ldrb r0, [r2] - cmp r0, #0 - bne _080273BC - ldr r0, _0802734C - ldrh r2, [r0, #0x2e] - movs r0, #0x40 - ands r0, r2 - cmp r0, #0 - beq _08027354 - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r3, r0 - ldr r1, _08027350 - adds r0, r0, r1 - movs r1, #2 - b _0802738A - .align 2, 0 -_08027348: .4byte gUnknown_202294C -_0802734C: .4byte gUnknown_3002360 -_08027350: .4byte 0x000031CC -_08027354: - movs r0, #0x20 - ands r0, r2 - cmp r0, #0 - beq _08027370 - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r3, r0 - ldr r1, _0802736C - adds r0, r0, r1 - movs r1, #3 - b _0802738A - .align 2, 0 -_0802736C: .4byte 0x000031CC -_08027370: - movs r0, #0x10 - ands r0, r2 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0 - beq _080273A8 - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r3, r0 - ldr r1, _080273A4 - adds r0, r0, r1 - movs r1, #1 -_0802738A: - strb r1, [r0] - ldr r0, [r4] - adds r1, r0, #0 - adds r1, #0x28 - adds r0, #0xb0 - ldrb r1, [r1] - adds r0, r0, r1 - movs r1, #6 - strb r1, [r0] - movs r0, #0xd4 - bl sub_080A306C - b _080273C0 - .align 2, 0 -_080273A4: .4byte 0x000031CC -_080273A8: - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r3, r0 - ldr r1, _080273B8 - adds r0, r0, r1 - strb r2, [r0] - b _080273C0 - .align 2, 0 -_080273B8: .4byte 0x000031CC -_080273BC: - subs r0, #1 - strb r0, [r2] -_080273C0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08027314 - - thumb_func_start sub_080273C8 -sub_080273C8: @ 0x080273C8 - ldr r0, _080273E4 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0x28 - ldrb r2, [r0] - lsls r0, r2, #4 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r1, r1, r0 - ldr r0, _080273E8 - adds r1, r1, r0 - movs r0, #0 - strb r0, [r1] - bx lr - .align 2, 0 -_080273E4: .4byte gUnknown_202294C -_080273E8: .4byte 0x000031CC - thumb_func_end sub_080273C8 - - thumb_func_start sub_080273EC -sub_080273EC: @ 0x080273EC - ldr r0, _0802740C - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0x28 - ldrb r2, [r0] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r1, #0x52 - adds r1, r1, r0 - ldrh r0, [r1] - adds r0, #0x85 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bx lr - .align 2, 0 -_0802740C: .4byte gUnknown_202294C - thumb_func_end sub_080273EC - - thumb_func_start sub_08027410 -sub_08027410: @ 0x08027410 - ldr r0, _0802741C - ldr r0, [r0] - adds r0, #0x24 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0802741C: .4byte gUnknown_202294C - thumb_func_end sub_08027410 - - thumb_func_start sub_08027420 -sub_08027420: @ 0x08027420 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _08027440 - ldrb r0, [r0] - cmp r0, #0 - bne _0802744C - ldr r0, _08027444 - lsls r1, r2, #4 - subs r1, r1, r2 - lsls r1, r1, #2 - ldr r2, _08027448 - adds r1, r1, r2 - ldr r0, [r0] - b _08027454 - .align 2, 0 -_08027440: .4byte gUnknown_30031C4 -_08027444: .4byte gUnknown_202294C -_08027448: .4byte 0x000031A0 -_0802744C: - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - ldr r1, _0802745C -_08027454: - adds r0, r0, r1 - pop {r1} - bx r1 - .align 2, 0 -_0802745C: .4byte gUnknown_20226A8 - thumb_func_end sub_08027420 - - thumb_func_start sub_08027460 -sub_08027460: @ 0x08027460 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - ldr r2, _0802747C - ldr r3, [r2] - lsrs r1, r1, #0x17 - lsls r2, r0, #1 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r1, r1, r2 - adds r3, #0x4a - adds r3, r3, r1 - ldrh r0, [r3] - bx lr - .align 2, 0 -_0802747C: .4byte gUnknown_202294C - thumb_func_end sub_08027460 - - thumb_func_start sub_08027480 -sub_08027480: @ 0x08027480 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r5, #0 - movs r3, #0 - ldr r0, _080274EC - mov sb, r0 - ldr r2, _080274F0 - mov sl, r2 - ldr r2, [r0] - lsls r1, r4, #1 - adds r0, r1, r4 - lsls r0, r0, #2 - str r0, [sp] - adds r6, r2, #0 - adds r6, #0x4a - mov ip, r1 - mov r8, sl -_080274AE: - lsls r1, r3, #1 - ldr r7, [sp] - adds r0, r1, r7 - adds r0, r6, r0 - ldrh r2, [r0] - add r1, r8 - movs r7, #0 - ldrsh r0, [r1, r7] - muls r0, r2, r0 - adds r5, r5, r0 - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #2 - bls _080274AE - mov r0, sb - ldr r1, [r0] - mov r2, ip - adds r0, r2, r4 - lsls r0, r0, #2 - adds r1, #0x50 - adds r1, r1, r0 - ldrh r1, [r1] - mov r3, sl - movs r7, #6 - ldrsh r0, [r3, r7] - muls r0, r1, r0 - cmp r5, r0 - bls _080274F4 - subs r0, r5, r0 - b _080274F6 - .align 2, 0 -_080274EC: .4byte gUnknown_202294C -_080274F0: .4byte gUnknown_82CB3B0 -_080274F4: - movs r0, #0 -_080274F6: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08027480 - - thumb_func_start sub_08027508 -sub_08027508: @ 0x08027508 - push {r4, r5, r6, lr} - ldr r0, _08027544 - ldr r0, [r0] - adds r0, #0x24 - ldrb r6, [r0] - movs r0, #0 - bl sub_08027480 - adds r5, r0, #0 - movs r4, #1 - cmp r4, r6 - bhs _08027536 -_08027520: - adds r0, r4, #0 - bl sub_08027480 - cmp r0, r5 - bls _0802752C - adds r5, r0, #0 -_0802752C: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r6 - blo _08027520 -_08027536: - ldr r1, _08027548 - adds r0, r5, #0 - bl Min - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08027544: .4byte gUnknown_202294C -_08027548: .4byte 0x000F4236 - thumb_func_end sub_08027508 - - thumb_func_start sub_0802754C -sub_0802754C: @ 0x0802754C - push {r4, r5, lr} - lsls r0, r0, #0x18 - ldr r1, _0802758C - ldr r2, [r1] - adds r1, r2, #0 - adds r1, #0x24 - ldrb r5, [r1] - lsrs r4, r0, #0x17 - adds r2, #0x4a - adds r0, r2, r4 - ldrh r3, [r0] - movs r1, #0 - cmp r1, r5 - bhs _08027584 -_08027568: - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r4, r0 - adds r0, r2, r0 - ldrh r0, [r0] - cmp r0, r3 - bls _0802757A - adds r3, r0, #0 -_0802757A: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, r5 - blo _08027568 -_08027584: - adds r0, r3, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0802758C: .4byte gUnknown_202294C - thumb_func_end sub_0802754C - - thumb_func_start sub_08027590 -sub_08027590: @ 0x08027590 - push {r4, r5, r6, r7, lr} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r6, #1 - ldr r0, _08027608 - ldr r0, [r0] - adds r0, #0x24 - ldrb r5, [r0] - movs r4, #0 - cmp r4, r5 - bhs _080275BE -_080275A8: - adds r0, r4, #0 - bl sub_08027480 - lsls r1, r4, #2 - add r1, sp - str r0, [r1] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r5 - blo _080275A8 -_080275BE: - lsls r7, r7, #2 - mov ip, r7 - cmp r6, #0 - beq _080275F8 - subs r7, r5, #1 -_080275C8: - movs r6, #0 - movs r4, #0 - cmp r6, r7 - bge _080275F4 - adds r5, r7, #0 -_080275D2: - lsls r0, r4, #2 - mov r2, sp - adds r1, r2, r0 - adds r4, #1 - lsls r0, r4, #2 - adds r3, r2, r0 - ldr r0, [r1] - ldr r2, [r3] - cmp r0, r2 - bhs _080275EC - str r2, [r1] - str r0, [r3] - movs r6, #1 -_080275EC: - lsls r0, r4, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r5 - blt _080275D2 -_080275F4: - cmp r6, #0 - bne _080275C8 -_080275F8: - mov r0, sp - add r0, ip - ldr r0, [r0] - add sp, #0x14 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08027608: .4byte gUnknown_202294C - thumb_func_end sub_08027590 - - thumb_func_start sub_0802760C -sub_0802760C: @ 0x0802760C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - movs r0, #0 - mov sl, r0 - mov r8, r0 - mov sb, r0 - ldr r6, _080276EC - ldr r0, [r6] - adds r0, #0x24 - ldrb r5, [r0] - bl sub_08027508 - bl sub_08027508 - cmp r0, #0 - bne _08027660 - movs r4, #0 - cmp sb, r5 - bhs _08027660 - adds r2, r6, #0 - ldr r1, _080276F0 - mov ip, r1 - movs r7, #0 - movs r6, #4 - ldr r3, _080276F4 -_08027644: - ldr r0, [r2] - lsls r1, r4, #3 - adds r0, r0, r1 - add r0, ip - strb r6, [r0] - ldr r0, [r2] - adds r0, r0, r3 - adds r0, r0, r1 - str r7, [r0] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r5 - blo _08027644 -_08027660: - movs r4, #0 - cmp r4, r5 - bhs _0802768A -_08027666: - adds r0, r4, #0 - bl sub_08027480 - ldr r1, _080276F8 - bl Min - ldr r1, _080276EC - ldr r1, [r1] - lsls r2, r4, #3 - ldr r3, _080276F4 - adds r1, r1, r3 - adds r1, r1, r2 - str r0, [r1] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r5 - blo _08027666 -_0802768A: - mov r0, sl - bl sub_08027590 - adds r6, r0, #0 - mov r3, r8 - movs r4, #0 - cmp r4, r5 - bhs _080276D6 - ldr r7, _080276EC - mov sl, r7 -_0802769E: - mov r0, sl - ldr r2, [r0] - lsls r1, r4, #3 - ldr r7, _080276F4 - adds r0, r2, r7 - adds r0, r0, r1 - ldr r0, [r0] - cmp r6, r0 - bne _080276CC - adds r0, r2, r1 - ldr r1, _080276F0 - adds r0, r0, r1 - strb r3, [r0] - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 -_080276CC: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r5 - blo _0802769E -_080276D6: - mov sl, r8 - cmp sb, r5 - blo _0802768A - movs r0, #0 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080276EC: .4byte gUnknown_202294C -_080276F0: .4byte 0x00003308 -_080276F4: .4byte 0x0000330C -_080276F8: .4byte 0x000F4236 - thumb_func_end sub_0802760C - - thumb_func_start sub_080276FC -sub_080276FC: @ 0x080276FC - lsls r1, r1, #0x18 - ldr r2, _08027714 - ldr r2, [r2] - lsrs r1, r1, #0x15 - ldr r3, _08027718 - adds r2, r2, r3 - adds r2, r2, r1 - ldr r1, [r2] - ldr r2, [r2, #4] - str r1, [r0] - str r2, [r0, #4] - bx lr - .align 2, 0 -_08027714: .4byte gUnknown_202294C -_08027718: .4byte 0x00003308 - thumb_func_end sub_080276FC - - thumb_func_start sub_0802771C -sub_0802771C: @ 0x0802771C - push {r4, r5, r6, r7, lr} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r7, #0 - ldr r0, _08027784 - ldr r0, [r0] - adds r0, #0x24 - ldrb r5, [r0] - mov r0, sp - movs r1, #0 - movs r2, #0x14 - bl memset - movs r4, #0 - cmp r7, r5 - bhs _08027754 -_0802773E: - adds r0, r4, #0 - bl sub_08027480 - lsls r1, r4, #2 - add r1, sp - str r0, [r1] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r5 - blo _0802773E -_08027754: - lsls r0, r6, #2 - add r0, sp - ldr r1, [r0] - movs r4, #0 -_0802775C: - cmp r4, r6 - beq _08027770 - lsls r0, r4, #2 - add r0, sp - ldr r0, [r0] - cmp r1, r0 - bhs _08027770 - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 -_08027770: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #4 - bls _0802775C - adds r0, r7, #0 - add sp, #0x14 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08027784: .4byte gUnknown_202294C - thumb_func_end sub_0802771C - - thumb_func_start sub_08027788 -sub_08027788: @ 0x08027788 - push {r4, r5, r6, lr} - ldr r0, _080277B0 - ldr r0, [r0] - adds r0, #0x28 - ldrb r4, [r0] - bl sub_080273EC - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r6, r5, #0 - adds r0, r4, #0 - bl sub_08027480 - adds r4, r0, #0 - bl sub_08027508 - cmp r4, r0 - beq _080277B4 - movs r0, #3 - b _080277E2 - .align 2, 0 -_080277B0: .4byte gUnknown_202294C -_080277B4: - adds r0, r5, #0 - movs r1, #1 - bl CheckBagHasSpace - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080277C6 - movs r0, #2 - b _080277E2 -_080277C6: - adds r0, r6, #0 - movs r1, #1 - bl AddBagItem - adds r0, r6, #0 - movs r1, #1 - bl CheckBagHasSpace - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080277E0 - movs r0, #0 - b _080277E2 -_080277E0: - movs r0, #1 -_080277E2: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_08027788 - - thumb_func_start IncrementWithLimit -IncrementWithLimit: @ 0x080277E8 - push {lr} - adds r2, r0, #0 - adds r0, r1, #0 - cmp r2, r0 - bhs _080277F4 - adds r0, r2, #1 -_080277F4: - pop {r1} - bx r1 - thumb_func_end IncrementWithLimit - - thumb_func_start Min -Min: @ 0x080277F8 - push {lr} - adds r2, r0, #0 - adds r0, r1, #0 - cmp r2, r0 - bhs _08027804 - adds r0, r2, #0 -_08027804: - pop {r1} - bx r1 - thumb_func_end Min - - thumb_func_start sub_08027808 -sub_08027808: @ 0x08027808 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08027818 - ldr r1, [r1] - adds r1, #0x34 - adds r1, r1, r0 - ldrb r0, [r1] - bx lr - .align 2, 0 -_08027818: .4byte gUnknown_202294C - thumb_func_end sub_08027808 - - thumb_func_start sub_0802781C -sub_0802781C: @ 0x0802781C - push {r4, r5, r6, lr} - movs r5, #0 - ldr r6, _0802784C -_08027822: - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _08027850 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #5 - bl GetMonData - cmp r0, #0 - beq _08027854 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - cmp r0, #0x55 - bne _08027854 - movs r0, #1 - strh r0, [r6] - b _08027860 - .align 2, 0 -_0802784C: .4byte gUnknown_2037290 -_08027850: .4byte gUnknown_2024190 -_08027854: - adds r5, #1 - cmp r5, #5 - ble _08027822 - ldr r1, _08027868 - movs r0, #0 - strh r0, [r1] -_08027860: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08027868: .4byte gUnknown_2037290 - thumb_func_end sub_0802781C - - thumb_func_start sub_0802786C -sub_0802786C: @ 0x0802786C - push {r4, lr} - ldr r4, _08027888 - adds r0, r4, #0 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08027888: .4byte sub_0802788C - thumb_func_end sub_0802786C - - thumb_func_start sub_0802788C -sub_0802788C: @ 0x0802788C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080278B0 - adds r4, r0, r1 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _080278D8 - cmp r0, #1 - bgt _080278B4 - cmp r0, #0 - beq _080278BE - b _08027926 - .align 2, 0 -_080278B0: .4byte gUnknown_3005B68 -_080278B4: - cmp r0, #2 - beq _080278E4 - cmp r0, #3 - beq _0802790C - b _08027926 -_080278BE: - ldr r0, _080278D4 - bl AddWindow - strh r0, [r4, #2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_0802792C - ldrb r0, [r4, #2] - movs r1, #3 - b _080278FA - .align 2, 0 -_080278D4: .4byte gUnknown_82CB3B8 -_080278D8: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08027926 - b _080278FE -_080278E4: - ldr r0, _08027908 - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _08027926 - ldrb r0, [r4, #2] - bl rbox_fill_rectangle - ldrb r0, [r4, #2] - movs r1, #1 -_080278FA: - bl CopyWindowToVram -_080278FE: - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - b _08027926 - .align 2, 0 -_08027908: .4byte gUnknown_3002360 -_0802790C: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08027926 - ldrb r0, [r4, #2] - bl RemoveWindow - adds r0, r5, #0 - bl DestroyTask - bl EnableBothScriptContexts -_08027926: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_0802788C - - thumb_func_start sub_0802792C -sub_0802792C: @ 0x0802792C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _08027A28 - ldr r1, [r0] - movs r2, #0x84 - lsls r2, r2, #2 - adds r0, r1, r2 - ldrh r0, [r0] - str r0, [sp, #0xc] - subs r2, #4 - adds r0, r1, r2 - ldr r0, [r0] - str r0, [sp, #0x10] - ldr r0, _08027A2C - adds r1, r1, r0 - ldrh r0, [r1] - str r0, [sp, #0x14] - ldr r4, _08027A30 - adds r0, r7, #0 - adds r1, r4, #0 - movs r2, #0xd0 - bl LoadUserWindowBorderGfx_ - adds r0, r7, #0 - adds r1, r4, #0 - movs r2, #0xd - bl DrawTextBorderOuter - adds r0, r7, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r2, _08027A34 - movs r0, #2 - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - adds r0, r7, #0 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - movs r6, #0 - ldr r2, _08027A38 - mov r8, r2 - movs r0, #0xff - mov sl, r0 - mov sb, r6 - mov r2, sp - adds r2, #0xc - str r2, [sp, #0x18] -_080279A2: - lsls r4, r6, #2 - ldr r0, [sp, #0x18] - ldm r0!, {r1} - str r0, [sp, #0x18] - ldr r0, _08027A3C - adds r0, r6, r0 - ldrb r3, [r0] - mov r0, r8 - movs r2, #0 - bl sub_080089D8 - movs r0, #1 - mov r1, r8 - movs r2, #1 - rsbs r2, r2, #0 - bl sub_08005DAC - adds r5, r0, #0 - ldr r0, _08027A40 - adds r4, r4, r0 - ldr r2, [r4] - ldr r0, _08027A44 - lsls r4, r6, #1 - adds r0, r4, r0 - ldrb r0, [r0] - str r0, [sp] - mov r0, sl - str r0, [sp, #4] - mov r0, sb - str r0, [sp, #8] - adds r0, r7, #0 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - movs r3, #0xa0 - subs r3, r3, r5 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r0, _08027A48 - adds r4, r4, r0 - ldrb r0, [r4] - str r0, [sp] - mov r2, sl - str r2, [sp, #4] - mov r0, sb - str r0, [sp, #8] - adds r0, r7, #0 - movs r1, #1 - mov r2, r8 - bl AddTextPrinterParameterized - adds r6, #1 - cmp r6, #2 - ble _080279A2 - adds r0, r7, #0 - bl PutWindowTilemap - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08027A28: .4byte gUnknown_3005AF0 -_08027A2C: .4byte 0x00000212 -_08027A30: .4byte 0x0000021D -_08027A34: .4byte gUnknown_85CCCF5 -_08027A38: .4byte gUnknown_2021C40 -_08027A3C: .4byte gUnknown_82CB3CC -_08027A40: .4byte gUnknown_82CB3C0 -_08027A44: .4byte gUnknown_82CB3D0 -_08027A48: .4byte gUnknown_82CB3D6 - thumb_func_end sub_0802792C - - thumb_func_start AddWallpaperSetsMenu -AddWallpaperSetsMenu: @ 0x08027A4C - push {lr} - bl GetLinkPlayerCount - ldr r1, _08027A60 - ldr r1, [r1] - adds r1, #0x24 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08027A60: .4byte gUnknown_202294C - thumb_func_end AddWallpaperSetsMenu - - thumb_func_start sub_08027A64 -sub_08027A64: @ 0x08027A64 - push {r4, r5, r6, r7, lr} - ldr r0, _08027AEC - ldr r0, [r0] - adds r0, #0x24 - ldrb r4, [r0] - cmp r4, #4 - bhi _08027A92 - ldr r5, _08027AF0 -_08027A74: - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - ldr r1, _08027AF4 - adds r0, r0, r1 - lsls r1, r4, #2 - adds r1, r1, r5 - ldr r1, [r1] - bl StringCopy - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #4 - bls _08027A74 -_08027A92: - ldr r0, _08027AEC - ldr r1, [r0] - adds r1, #0x24 - movs r2, #5 - strb r2, [r1] - movs r1, #0 - mov ip, r0 -_08027AA0: - movs r4, #0 - mov r2, ip - ldr r0, [r2] - adds r0, #0x24 - adds r5, r1, #1 - ldrb r0, [r0] - cmp r4, r0 - bhs _08027ADE - ldr r7, _08027AEC - lsls r3, r1, #1 - ldr r6, _08027AF8 -_08027AB6: - ldr r2, [r7] - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r3, r0 - adds r1, r2, #0 - adds r1, #0x4a - adds r1, r1, r0 - lsls r0, r4, #3 - adds r0, r3, r0 - adds r0, r0, r6 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r2, #0x24 - ldrb r2, [r2] - cmp r4, r2 - blo _08027AB6 -_08027ADE: - lsls r0, r5, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #3 - bls _08027AA0 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08027AEC: .4byte gUnknown_202294C -_08027AF0: .4byte gUnknown_82CB41C -_08027AF4: .4byte gUnknown_20226A8 -_08027AF8: .4byte gUnknown_82CB3DC - thumb_func_end sub_08027A64 - - thumb_func_start sub_08027AFC -sub_08027AFC: @ 0x08027AFC - push {lr} - sub sp, #8 - ldr r3, _08027B24 - ldr r1, [sp] - ands r1, r3 - movs r2, #1 - orrs r1, r2 - str r1, [sp] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, [sp, #4] - ands r1, r3 - orrs r1, r0 - str r1, [sp, #4] - mov r0, sp - bl sub_0800F934 - add sp, #8 - pop {r0} - bx r0 - .align 2, 0 -_08027B24: .4byte 0xFFFFFF00 - thumb_func_end sub_08027AFC - - thumb_func_start sub_08027B28 -sub_08027B28: @ 0x08027B28 - push {lr} - adds r2, r0, #0 - ldr r3, _08027B50 - ldrh r0, [r3] - movs r1, #0xff - lsls r1, r1, #8 - ands r1, r0 - movs r0, #0xbc - lsls r0, r0, #6 - cmp r1, r0 - bne _08027B4A - lsls r0, r2, #4 - adds r1, r3, #2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, #1 - beq _08027B54 -_08027B4A: - movs r0, #0 - b _08027B56 - .align 2, 0 -_08027B50: .4byte gUnknown_3003130 -_08027B54: - ldrb r0, [r1, #4] -_08027B56: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08027B28 - - thumb_func_start sub_08027B5C -sub_08027B5C: @ 0x08027B5C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - ldr r4, [sp, #0x48] - lsls r4, r4, #0x18 - str r4, [sp, #0x1c] - movs r4, #0x14 - adds r4, r4, r0 - mov sb, r4 - mov r5, sp - movs r4, #2 - strb r4, [r5] - mov sl, sp - mov r5, sb - ldrb r4, [r5, #0xb] - movs r7, #0xf - adds r5, r7, #0 - ands r5, r4 - mov r6, sl - ldrb r6, [r6, #1] - mov r8, r6 - movs r4, #0x10 - rsbs r4, r4, #0 - mov r6, r8 - ands r4, r6 - orrs r4, r5 - mov r5, sl - strb r4, [r5, #1] - mov r8, sp - mov r6, sb - ldrb r5, [r6, #0xc] - lsls r5, r5, #4 - ands r4, r7 - orrs r4, r5 - mov r5, r8 - strb r4, [r5, #1] - ldrb r5, [r6, #0xd] - movs r6, #0xf - ands r5, r6 - mov r4, sl - ldrb r4, [r4, #2] - mov r8, r4 - movs r4, #0x10 - rsbs r4, r4, #0 - mov r6, r8 - ands r4, r6 - orrs r4, r5 - mov r5, sl - strb r4, [r5, #2] - mov r8, sp - mov r6, sb - ldrb r5, [r6, #0xe] - lsls r5, r5, #4 - ands r4, r7 - orrs r4, r5 - mov r5, r8 - strb r4, [r5, #2] - ldrb r5, [r6, #0xf] - movs r6, #0xf - ands r5, r6 - mov r4, sl - ldrb r4, [r4, #3] - mov r8, r4 - movs r4, #0x10 - rsbs r4, r4, #0 - mov r6, r8 - ands r4, r6 - orrs r4, r5 - mov r5, sl - strb r4, [r5, #3] - mov r8, sp - mov r6, sb - ldrb r5, [r6, #0x10] - lsls r5, r5, #4 - ands r4, r7 - orrs r4, r5 - mov r5, r8 - strb r4, [r5, #3] - ldrb r5, [r6, #0x11] - movs r6, #0xf - ands r5, r6 - mov r4, sl - ldrb r4, [r4, #4] - mov r8, r4 - movs r4, #0x10 - rsbs r4, r4, #0 - mov r6, r8 - ands r4, r6 - orrs r4, r5 - mov r5, sl - strb r4, [r5, #4] - mov r8, sp - mov r6, sb - ldrb r5, [r6, #0x12] - lsls r5, r5, #4 - ands r4, r7 - orrs r4, r5 - mov r5, r8 - strb r4, [r5, #4] - ldrb r4, [r6, #0x13] - movs r6, #0xf - ands r4, r6 - mov r6, r8 - ldrb r5, [r6, #5] - movs r6, #0x10 - rsbs r6, r6, #0 - ands r6, r5 - orrs r6, r4 - str r6, [sp, #0xc] - mov r4, r8 - strb r6, [r4, #5] - mov r5, sp - mov r6, sb - ldrb r4, [r6, #0x14] - lsls r4, r4, #4 - ldr r6, [sp, #0xc] - ands r6, r7 - orrs r6, r4 - strb r6, [r5, #5] - mov r7, sp - movs r4, #3 - mov r8, r4 - ldrb r0, [r0, #0x14] - mov r5, r8 - ands r0, r5 - ldrb r5, [r7, #6] - movs r6, #4 - rsbs r6, r6, #0 - mov sl, r6 - mov r4, sl - ands r4, r5 - orrs r4, r0 - strb r4, [r7, #6] - mov r5, sb - ldrb r0, [r5, #1] - mov r6, r8 - ands r0, r6 - lsls r0, r0, #2 - movs r5, #0xd - rsbs r5, r5, #0 - ands r5, r4 - orrs r5, r0 - strb r5, [r7, #6] - mov r0, sb - ldrb r4, [r0, #2] - ands r4, r6 - lsls r4, r4, #4 - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r5 - orrs r0, r4 - strb r0, [r7, #6] - mov r5, sp - mov r6, sb - ldrb r4, [r6, #3] - lsls r4, r4, #6 - movs r6, #0x3f - ands r0, r6 - orrs r0, r4 - strb r0, [r5, #6] - mov r4, sb - ldrb r0, [r4, #4] - mov r5, r8 - ands r0, r5 - ldrb r5, [r7, #7] - mov r4, sl - ands r4, r5 - orrs r4, r0 - strb r4, [r7, #7] - mov r6, sb - ldrb r0, [r6, #5] - mov r5, r8 - ands r0, r5 - lsls r0, r0, #2 - movs r5, #0xd - rsbs r5, r5, #0 - ands r5, r4 - orrs r5, r0 - strb r5, [r7, #7] - ldrb r4, [r6, #6] - mov r6, r8 - ands r4, r6 - lsls r4, r4, #4 - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r5 - orrs r0, r4 - strb r0, [r7, #7] - mov r5, sp - mov r6, sb - ldrb r4, [r6, #7] - lsls r4, r4, #6 - movs r6, #0x3f - ands r0, r6 - orrs r0, r4 - strb r0, [r5, #7] - mov r8, sp - mov r0, sb - ldrb r4, [r0, #8] - movs r7, #3 - adds r0, r7, #0 - ands r0, r4 - mov r4, r8 - ldrb r5, [r4, #8] - mov r4, sl - ands r4, r5 - orrs r4, r0 - mov r5, r8 - strb r4, [r5, #8] - mov r6, sb - ldrb r5, [r6, #9] - adds r0, r7, #0 - ands r0, r5 - lsls r0, r0, #2 - movs r5, #0xd - rsbs r5, r5, #0 - ands r5, r4 - orrs r5, r0 - mov r0, r8 - strb r5, [r0, #8] - ldrb r0, [r1] - adds r4, r7, #0 - ands r4, r0 - lsls r4, r4, #4 - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r5 - orrs r0, r4 - mov r4, r8 - strb r0, [r4, #8] - mov r5, sp - ldrb r4, [r2] - lsls r4, r4, #6 - movs r6, #0x3f - ands r0, r6 - orrs r0, r4 - strb r0, [r5, #8] - ldrb r4, [r3] - adds r0, r7, #0 - ands r0, r4 - ldrb r4, [r5, #9] - mov r6, sl - ands r6, r4 - orrs r6, r0 - mov sl, r6 - strb r6, [r5, #9] - ldr r0, [sp, #0x40] - ldrb r4, [r0] - adds r0, r7, #0 - ands r0, r4 - lsls r0, r0, #2 - movs r4, #0xd - rsbs r4, r4, #0 - ands r6, r4 - orrs r6, r0 - str r6, [sp, #0x10] - strb r6, [r5, #9] - mov r4, sp - ldr r5, [sp, #0x44] - ldrb r0, [r5] - adds r6, r7, #0 - ands r6, r0 - lsls r0, r6, #4 - subs r7, #0x34 - ldr r5, [sp, #0x10] - ands r7, r5 - orrs r7, r0 - strb r7, [r4, #9] - mov r5, sp - ldrb r0, [r1, #4] - movs r6, #1 - mov ip, r6 - mov r4, ip - ands r4, r0 - lsls r4, r4, #6 - movs r0, #0x41 - rsbs r0, r0, #0 - mov sl, r0 - ands r0, r7 - orrs r0, r4 - strb r0, [r5, #9] - ldrb r4, [r2, #4] - lsls r4, r4, #7 - movs r5, #0x7f - ands r0, r5 - orrs r0, r4 - mov r4, r8 - strb r0, [r4, #9] - ldrb r4, [r3, #4] - mov r0, ip - ands r0, r4 - mov r5, r8 - ldrb r4, [r5, #0xa] - movs r7, #2 - rsbs r7, r7, #0 - adds r5, r7, #0 - ands r5, r4 - orrs r5, r0 - mov r6, r8 - strb r5, [r6, #0xa] - mov sb, sp - ldr r4, [sp, #0x40] - ldrb r0, [r4, #4] - mov r4, ip - ands r4, r0 - lsls r4, r4, #1 - movs r6, #3 - rsbs r6, r6, #0 - mov r8, r6 - mov r0, r8 - ands r0, r5 - orrs r0, r4 - mov r4, sb - strb r0, [r4, #0xa] - ldr r6, [sp, #0x44] - ldrb r5, [r6, #4] - mov r4, ip - ands r4, r5 - lsls r4, r4, #2 - movs r5, #5 - rsbs r5, r5, #0 - ands r0, r5 - orrs r0, r4 - mov r4, sb - strb r0, [r4, #0xa] - mov r4, sp - ldrb r1, [r1, #8] - mov r0, ip - ands r0, r1 - lsls r0, r0, #2 - ldrb r1, [r4, #0xb] - ands r5, r1 - orrs r5, r0 - strb r5, [r4, #0xb] - ldrb r1, [r2, #8] - mov r0, ip - ands r0, r1 - lsls r0, r0, #3 - movs r1, #9 - rsbs r1, r1, #0 - ands r1, r5 - orrs r1, r0 - strb r1, [r4, #0xb] - ldrb r2, [r3, #8] - mov r0, ip - ands r0, r2 - lsls r0, r0, #4 - movs r2, #0x11 - rsbs r2, r2, #0 - ands r2, r1 - orrs r2, r0 - strb r2, [r4, #0xb] - mov r3, sp - ldr r5, [sp, #0x40] - ldrb r0, [r5, #8] - mov r1, ip - ands r1, r0 - lsls r1, r1, #5 - movs r0, #0x21 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0xb] - mov r2, sp - ldrb r1, [r6, #8] - mov r6, ip - ands r6, r1 - lsls r1, r6, #6 - mov r3, sl - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #0xb] - ldr r4, [sp, #0x1c] - lsrs r3, r4, #0x15 - ldrb r1, [r2, #0xa] - movs r0, #7 - ands r0, r1 - orrs r0, r3 - strb r0, [r2, #0xa] - mov r1, sp - ldr r5, [sp, #0x4c] - movs r6, #1 - ands r5, r6 - lsls r2, r5, #1 - ldrb r0, [r1, #0xb] - mov r3, r8 - ands r3, r0 - orrs r3, r2 - mov r8, r3 - strb r3, [r1, #0xb] - mov r0, sp - ldr r4, [sp, #0x50] - ands r4, r6 - mov r5, r8 - ands r5, r7 - orrs r5, r4 - strb r5, [r0, #0xb] - bl sub_0800F934 - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08027B5C - - thumb_func_start sub_08027E90 -sub_08027E90: @ 0x08027E90 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r1, #0 - adds r5, r2, #0 - adds r6, r3, #0 - ldr r0, [sp, #0x1c] - mov ip, r0 - ldr r1, [sp, #0x20] - mov r8, r1 - ldr r0, [sp, #0x24] - mov sb, r0 - adds r2, r7, #0 - adds r2, #0x14 - ldr r4, _08027ECC - ldrh r0, [r4] - movs r1, #0xff - lsls r1, r1, #8 - ands r1, r0 - movs r0, #0xbc - lsls r0, r0, #6 - cmp r1, r0 - bne _08027EC8 - adds r3, r4, #2 - ldrb r0, [r4, #2] - cmp r0, #2 - beq _08027ED0 -_08027EC8: - movs r0, #0 - b _0802800A - .align 2, 0 -_08027ECC: .4byte gUnknown_3003130 -_08027ED0: - ldrb r0, [r3, #1] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - strb r0, [r2, #0xb] - ldrb r0, [r3, #1] - lsrs r0, r0, #4 - strb r0, [r2, #0xc] - ldrb r0, [r3, #2] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - strb r0, [r2, #0xd] - ldrb r0, [r3, #2] - lsrs r0, r0, #4 - strb r0, [r2, #0xe] - ldrb r0, [r3, #3] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - strb r0, [r2, #0xf] - ldrb r0, [r3, #3] - lsrs r0, r0, #4 - strb r0, [r2, #0x10] - ldrb r0, [r3, #4] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - strb r0, [r2, #0x11] - ldrb r0, [r3, #4] - lsrs r0, r0, #4 - strb r0, [r2, #0x12] - ldrb r0, [r3, #5] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - strb r0, [r2, #0x13] - ldrb r0, [r3, #5] - lsrs r0, r0, #4 - strb r0, [r2, #0x14] - ldrb r0, [r3, #1] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - strb r0, [r2, #0x15] - ldrb r0, [r3, #6] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - strb r0, [r7, #0x14] - ldrb r0, [r3, #6] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1e - strb r0, [r2, #1] - ldrb r0, [r3, #6] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - strb r0, [r2, #2] - ldrb r0, [r3, #6] - lsrs r0, r0, #6 - strb r0, [r2, #3] - ldrb r0, [r3, #7] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - strb r0, [r2, #4] - ldrb r0, [r3, #7] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1e - strb r0, [r2, #5] - ldrb r0, [r3, #7] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - strb r0, [r2, #6] - ldrb r0, [r3, #7] - lsrs r0, r0, #6 - strb r0, [r2, #7] - ldrb r0, [r3, #8] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - strb r0, [r2, #8] - ldrb r0, [r3, #8] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1e - strb r0, [r2, #9] - ldrb r0, [r3, #6] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - strb r0, [r2, #0xa] - ldrb r0, [r3, #8] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - strb r0, [r5] - ldrb r0, [r3, #9] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1f - strb r0, [r5, #4] - ldrb r0, [r3, #0xb] - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1f - strb r0, [r5, #8] - ldrb r0, [r3, #8] - lsrs r0, r0, #6 - strb r0, [r6] - ldrb r0, [r3, #9] - lsrs r0, r0, #7 - strb r0, [r6, #4] - ldrb r0, [r3, #0xb] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1f - strb r0, [r6, #8] - ldrb r0, [r3, #9] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - mov r1, ip - strb r0, [r1] - ldrb r0, [r3, #0xa] - lsls r0, r0, #0x1f - lsrs r0, r0, #0x1f - strb r0, [r1, #4] - ldrb r0, [r3, #0xb] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1f - strb r0, [r1, #8] - ldrb r0, [r3, #9] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1e - mov r1, r8 - strb r0, [r1] - ldrb r0, [r3, #0xa] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1f - strb r0, [r1, #4] - ldrb r0, [r3, #0xb] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1f - strb r0, [r1, #8] - ldrb r0, [r3, #9] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - mov r1, sb - strb r0, [r1] - ldrb r0, [r3, #0xa] - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1f - strb r0, [r1, #4] - ldrb r0, [r3, #0xb] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1f - strb r0, [r1, #8] - ldrb r0, [r3, #0xa] - lsrs r0, r0, #3 - ldr r1, [sp, #0x28] - strb r0, [r1] - ldrb r0, [r3, #0xb] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1f - ldr r1, [sp, #0x2c] - str r0, [r1] - ldrb r0, [r3, #0xb] - lsls r0, r0, #0x1f - lsrs r0, r0, #0x1f - ldr r1, [sp, #0x30] - str r0, [r1] - movs r0, #1 -_0802800A: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08027E90 - - thumb_func_start sub_08028018 -sub_08028018: @ 0x08028018 - push {lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _08028040 - ldr r1, [sp] - ands r1, r3 - movs r2, #3 - orrs r1, r2 - str r1, [sp] - ldr r1, [sp, #4] - ands r1, r3 - orrs r1, r0 - str r1, [sp, #4] - mov r0, sp - bl sub_0800F934 - add sp, #8 - pop {r0} - bx r0 - .align 2, 0 -_08028040: .4byte 0xFFFFFF00 - thumb_func_end sub_08028018 - - thumb_func_start sub_08028044 -sub_08028044: @ 0x08028044 - push {r4, lr} - adds r2, r0, #0 - adds r4, r1, #0 - ldr r3, _0802806C - ldrh r0, [r3] - movs r1, #0xff - lsls r1, r1, #8 - ands r1, r0 - movs r0, #0xbc - lsls r0, r0, #6 - cmp r1, r0 - bne _08028068 - lsls r0, r2, #4 - adds r1, r3, #2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, #3 - beq _08028070 -_08028068: - movs r0, #0 - b _08028076 - .align 2, 0 -_0802806C: .4byte gUnknown_3003130 -_08028070: - ldrb r0, [r1, #4] - strb r0, [r4] - movs r0, #1 -_08028076: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_08028044 - - thumb_func_start sub_0802807C -sub_0802807C: @ 0x0802807C - push {lr} - sub sp, #8 - ldr r2, _0802809C - ldr r1, [sp] - ands r1, r2 - movs r2, #4 - orrs r1, r2 - str r1, [sp] - str r0, [sp, #4] - mov r0, sp - bl sub_0800F934 - add sp, #8 - pop {r0} - bx r0 - .align 2, 0 -_0802809C: .4byte 0xFFFFFF00 - thumb_func_end sub_0802807C - - thumb_func_start sub_080280A0 -sub_080280A0: @ 0x080280A0 - push {lr} - adds r2, r0, #0 - ldr r3, _080280C8 - ldrh r0, [r3] - movs r1, #0xff - lsls r1, r1, #8 - ands r1, r0 - movs r0, #0xbc - lsls r0, r0, #6 - cmp r1, r0 - bne _080280C2 - lsls r0, r2, #4 - adds r1, r3, #2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, #4 - beq _080280CC -_080280C2: - movs r0, #0 - b _080280CE - .align 2, 0 -_080280C8: .4byte gUnknown_3003130 -_080280CC: - ldr r0, [r1, #4] -_080280CE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080280A0 - - thumb_func_start sub_080280D4 -sub_080280D4: @ 0x080280D4 - push {r4, r5, lr} - sub sp, #0x18 - movs r5, #0xc0 - lsls r5, r5, #6 - adds r0, r5, #0 - bl AllocZeroed - adds r4, r0, #0 - ldr r0, _08028128 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [sp, #8] - str r1, [sp, #0xc] - ldr r0, _0802812C - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [sp, #0x10] - str r1, [sp, #0x14] - ldr r0, _08028130 - adds r1, r4, #0 - bl LZ77UnCompWram - cmp r4, #0 - beq _08028114 - str r4, [sp] - str r5, [sp, #4] - mov r0, sp - bl LoadSpriteSheet - adds r0, r4, #0 - bl Free -_08028114: - add r0, sp, #8 - bl LoadSpritePalette - add r0, sp, #0x10 - bl LoadSpritePalette - add sp, #0x18 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08028128: .4byte gUnknown_82CEB64 -_0802812C: .4byte gUnknown_82CEB6C -_08028130: .4byte gUnknown_82CD148 - thumb_func_end sub_080280D4 - - thumb_func_start sub_08028134 -sub_08028134: @ 0x08028134 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0x30 - adds r6, r1, #0 - mov r8, r2 - adds r5, r3, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov r1, r8 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - add r1, sp, #0x18 - movs r3, #0 - strh r3, [r1] - ldrb r2, [r0] - mov r0, sp - adds r0, #0x1a - strh r2, [r0] - ldr r0, _080281C0 - str r0, [sp, #0x1c] - ldr r0, _080281C4 - str r0, [sp, #0x20] - str r3, [sp, #0x24] - ldr r0, _080281C8 - str r0, [sp, #0x28] - ldr r0, _080281CC - str r0, [sp, #0x2c] - mov r0, sp - movs r2, #0x18 - bl memcpy - movs r0, #4 - bl AllocZeroed - ldr r1, _080281D0 - mov r2, r8 - lsls r4, r2, #2 - adds r4, r4, r1 - str r0, [r4] - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_08028C40 - adds r1, r0, #0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - mov r0, sp - movs r2, #0x88 - movs r3, #3 - bl CreateSprite - ldr r1, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r1] - movs r0, #1 - mov r1, r8 - bl sub_08028380 - add sp, #0x30 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080281C0: .4byte gUnknown_82CEA6C -_080281C4: .4byte gUnknown_82CEAB4 -_080281C8: .4byte gUnknown_82BF310 -_080281CC: .4byte sub_080281D4 -_080281D0: .4byte gUnknown_2022950 - thumb_func_end sub_08028134 - - thumb_func_start sub_080281D4 -sub_080281D4: @ 0x080281D4 - push {lr} - movs r2, #0x2e - ldrsh r1, [r0, r2] - cmp r1, #1 - beq _080281E8 - cmp r1, #1 - ble _080281F2 - cmp r1, #2 - beq _080281EE - b _080281F2 -_080281E8: - bl sub_08028268 - b _080281F2 -_080281EE: - bl sub_080282D8 -_080281F2: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080281D4 - - thumb_func_start sub_080281F8 -sub_080281F8: @ 0x080281F8 - push {lr} - bl GetMultiplayerId - ldr r1, _08028228 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r0, r0, r1 - ldr r0, [r0] - ldrh r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0802822C - adds r0, r0, r1 - movs r2, #0 - movs r1, #1 - strh r1, [r0, #0x2e] - strh r2, [r0, #0x30] - strh r2, [r0, #0x32] - strh r2, [r0, #0x34] - strh r2, [r0, #0x36] - pop {r0} - bx r0 - .align 2, 0 -_08028228: .4byte gUnknown_2022950 -_0802822C: .4byte gUnknown_20205AC - thumb_func_end sub_080281F8 - - thumb_func_start sub_08028230 -sub_08028230: @ 0x08028230 - push {lr} - bl GetMultiplayerId - ldr r1, _08028260 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r0, r0, r1 - ldr r0, [r0] - ldrh r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08028264 - adds r0, r0, r1 - movs r2, #0 - movs r1, #2 - strh r1, [r0, #0x2e] - strh r2, [r0, #0x30] - strh r2, [r0, #0x32] - strh r2, [r0, #0x34] - strh r2, [r0, #0x36] - pop {r0} - bx r0 - .align 2, 0 -_08028260: .4byte gUnknown_2022950 -_08028264: .4byte gUnknown_20205AC - thumb_func_end sub_08028230 - - thumb_func_start sub_08028268 -sub_08028268: @ 0x08028268 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r2, r0, #0x10 - lsrs r0, r0, #0x1f - adds r0, r2, r0 - asrs r1, r0, #1 - adds r0, r1, #0 - cmp r1, #0 - bge _08028284 - adds r0, r1, #3 -_08028284: - asrs r0, r0, #2 - lsls r0, r0, #2 - subs r0, r1, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r2, #2 - ble _080282CE - cmp r0, #2 - bgt _0802829A - cmp r0, #1 - bge _0802829E -_0802829A: - movs r0, #1 - b _080282A0 -_0802829E: - movs r0, #0xff -_080282A0: - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x20] - adds r0, r0, r1 - strh r0, [r4, #0x20] - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x27 - ble _080282CE - movs r0, #0 - strh r0, [r4, #0x2e] - bl sub_08027410 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0 - bl sub_08028C40 - strh r0, [r4, #0x20] -_080282CE: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08028268 - - thumb_func_start sub_080282D8 -sub_080282D8: @ 0x080282D8 - push {r4, r5, lr} - adds r5, r0, #0 - ldrh r0, [r5, #0x30] - adds r0, #1 - strh r0, [r5, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0xd - bl __divsi3 - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - adds r0, r1, #0 - cmp r1, #0 - bge _080282F8 - adds r0, r1, #3 -_080282F8: - asrs r0, r0, #2 - lsls r0, r0, #2 - subs r0, r1, r0 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r1, #0x30 - ldrsh r0, [r5, r1] - movs r1, #0xd - bl __modsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0802831C - cmp r4, #0 - beq _0802831C - movs r0, #0xd4 - bl sub_080A306C -_0802831C: - movs r1, #0x30 - ldrsh r0, [r5, r1] - cmp r0, #0x67 - ble _0802832A - movs r0, #0 - strh r0, [r5, #0x2e] - movs r4, #0 -_0802832A: - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r4, #0 - bl sub_080283E0 - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_080282D8 - - thumb_func_start sub_08028340 -sub_08028340: @ 0x08028340 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r4, #0 - cmp r4, r5 - bhs _08028372 - ldr r6, _08028378 -_0802834E: - lsls r0, r4, #2 - adds r0, r0, r6 - ldr r0, [r0] - ldrh r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0802837C - adds r0, r0, r1 - cmp r0, #0 - beq _08028368 - bl DestroySpriteAndFreeResources -_08028368: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r5 - blo _0802834E -_08028372: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08028378: .4byte gUnknown_2022950 -_0802837C: .4byte gUnknown_20205AC - thumb_func_end sub_08028340 - - thumb_func_start sub_08028380 -sub_08028380: @ 0x08028380 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - ldr r3, _080283B0 - ldr r2, _080283B4 - lsrs r1, r1, #0x16 - adds r1, r1, r2 - ldr r1, [r1] - ldrh r1, [r1] - lsls r2, r1, #4 - adds r2, r2, r1 - lsls r2, r2, #2 - adds r2, r2, r3 - adds r2, #0x3e - movs r1, #1 - ands r0, r1 - lsls r0, r0, #2 - ldrb r3, [r2] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r3 - orrs r1, r0 - strb r1, [r2] - bx lr - .align 2, 0 -_080283B0: .4byte gUnknown_20205AC -_080283B4: .4byte gUnknown_2022950 - thumb_func_end sub_08028380 - - thumb_func_start sub_080283B8 -sub_080283B8: @ 0x080283B8 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - movs r4, #0 - cmp r4, r5 - bhs _080283DA -_080283C8: - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_08028380 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r5 - blo _080283C8 -_080283DA: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_080283B8 - - thumb_func_start sub_080283E0 -sub_080283E0: @ 0x080283E0 - push {lr} - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _08028404 - lsrs r0, r0, #0x16 - adds r0, r0, r2 - ldr r0, [r0] - ldrh r2, [r0] - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _08028408 - adds r0, r0, r2 - bl StartSpriteAnim - pop {r0} - bx r0 - .align 2, 0 -_08028404: .4byte gUnknown_2022950 -_08028408: .4byte gUnknown_20205AC - thumb_func_end sub_080283E0 - - thumb_func_start sub_0802840C -sub_0802840C: @ 0x0802840C - bx lr - .align 2, 0 - thumb_func_end sub_0802840C - - thumb_func_start sub_08028410 -sub_08028410: @ 0x08028410 - push {r4, r5, r6, r7, lr} - movs r4, #0 - ldr r0, _08028458 - mov ip, r0 - movs r6, #0 - ldr r5, _0802845C -_0802841C: - ldr r3, [r5] - lsls r1, r4, #1 - adds r0, r3, #0 - adds r0, #0x2a - adds r0, r0, r1 - ldrh r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - add r1, ip - lsls r0, r4, #4 - adds r0, #0x30 - strh r0, [r1, #0x20] - lsls r2, r4, #3 - movs r7, #8 - rsbs r7, r7, #0 - adds r0, r7, #0 - subs r0, r0, r2 - strh r0, [r1, #0x22] - adds r3, #0xc - adds r3, r3, r4 - strb r6, [r3] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #9 - bls _0802841C - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08028458: .4byte gUnknown_20205AC -_0802845C: .4byte gUnknown_20229A8 - thumb_func_end sub_08028410 - - thumb_func_start sub_08028460 -sub_08028460: @ 0x08028460 - push {r4, r5, r6, lr} - sub sp, #0x28 - movs r4, #0xc0 - lsls r4, r4, #1 - adds r0, r4, #0 - bl AllocZeroed - adds r6, r0, #0 - ldr r0, _08028500 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [sp, #0x20] - str r1, [sp, #0x24] - ldr r0, _08028504 - adds r1, r6, #0 - bl LZ77UnCompWram - cmp r6, #0 - beq _080284F0 - str r6, [sp, #0x18] - add r5, sp, #0x18 - movs r0, #0x80 - lsls r0, r0, #9 - orrs r0, r4 - str r0, [r5, #4] - mov r1, sp - ldr r0, _08028508 - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - ldr r4, _0802850C - movs r0, #0x40 - bl AllocZeroed - str r0, [r4] - adds r0, r5, #0 - bl LoadSpriteSheet - add r0, sp, #0x20 - bl LoadSpritePalette - movs r4, #0 -_080284B6: - lsls r1, r4, #0x14 - movs r0, #0xc0 - lsls r0, r0, #0xe - adds r1, r1, r0 - asrs r1, r1, #0x10 - lsls r0, r4, #3 - movs r3, #8 - rsbs r3, r3, #0 - adds r2, r3, #0 - subs r2, r2, r0 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - mov r0, sp - movs r3, #0 - bl CreateSprite - ldr r1, _0802850C - ldr r1, [r1] - lsls r2, r4, #1 - adds r1, #0x2a - adds r1, r1, r2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r1] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #9 - bls _080284B6 -_080284F0: - adds r0, r6, #0 - bl Free - add sp, #0x28 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08028500: .4byte gUnknown_82CEB74 -_08028504: .4byte gUnknown_82CCF6C -_08028508: .4byte gUnknown_82CEB7C -_0802850C: .4byte gUnknown_20229A8 - thumb_func_end sub_08028460 - - thumb_func_start sub_08028510 -sub_08028510: @ 0x08028510 - push {r4, r5, lr} - movs r4, #0 -_08028514: - ldr r5, _0802854C - ldr r0, [r5] - lsls r1, r4, #1 - adds r0, #0x2a - adds r0, r0, r1 - ldrh r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08028550 - adds r0, r0, r1 - cmp r0, #0 - beq _08028532 - bl DestroySpriteAndFreeResources -_08028532: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #9 - bls _08028514 - ldr r0, [r5] - bl Free - movs r0, #0 - str r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0802854C: .4byte gUnknown_20229A8 -_08028550: .4byte gUnknown_20205AC - thumb_func_end sub_08028510 - - thumb_func_start sub_08028554 -sub_08028554: @ 0x08028554 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - movs r3, #0 - movs r6, #0 - ldr r0, _080285E4 - mov sb, r0 -_08028566: - mov r7, sb - ldr r2, [r7] - lsls r5, r6, #1 - adds r0, r2, #0 - adds r0, #0x2a - adds r0, r0, r5 - ldrh r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080285E8 - adds r4, r0, r1 - adds r0, r2, #0 - adds r0, #0x16 - adds r0, r0, r5 - movs r1, #2 - strh r1, [r0] - adds r0, r2, #0 - adds r0, #0xc - adds r2, r0, r6 - ldrb r1, [r2] - cmp r1, #0 - beq _0802859C - movs r7, #0x22 - ldrsh r0, [r4, r7] - cmp r0, #8 - beq _080285D2 -_0802859C: - movs r3, #1 - movs r7, #0x22 - ldrsh r0, [r4, r7] - cmp r0, #8 - bne _080285C2 - cmp r1, #0 - bne _080285D2 - strb r3, [r2] - mov r1, sb - ldr r0, [r1] - adds r0, #0x16 - adds r0, r0, r5 - ldr r1, _080285EC - strh r1, [r0] - movs r0, #0x24 - str r3, [sp] - bl sub_080A306C - ldr r3, [sp] -_080285C2: - mov r7, sb - ldr r0, [r7] - adds r0, #0x16 - adds r0, r0, r5 - ldrh r0, [r0] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] -_080285D2: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #9 - bls _08028566 - cmp r3, #0 - bne _080285F0 - movs r0, #1 - b _080285F2 - .align 2, 0 -_080285E4: .4byte gUnknown_20229A8 -_080285E8: .4byte gUnknown_20205AC -_080285EC: .4byte 0x0000FFF0 -_080285F0: - movs r0, #0 -_080285F2: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_08028554 - - thumb_func_start sub_08028600 -sub_08028600: @ 0x08028600 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0xa - bls _0802863C - movs r4, #0 -_0802860C: - ldr r0, _08028634 - ldr r0, [r0] - lsls r1, r4, #1 - adds r0, #0x2a - adds r0, r0, r1 - ldrh r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08028638 - adds r0, r0, r1 - movs r1, #1 - bl StartSpriteAnim - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #9 - bls _0802860C - b _08028706 - .align 2, 0 -_08028634: .4byte gUnknown_20229A8 -_08028638: .4byte gUnknown_20205AC -_0802863C: - movs r4, #0 - movs r0, #0xa - subs r0, r0, r5 - cmp r4, r0 - bge _08028702 - ldr r6, _0802866C -_08028648: - cmp r5, #6 - bls _080286B0 - ldr r0, _08028670 - ldr r2, [r0] - ldr r1, _08028674 - adds r0, r1, #0 - ldrh r1, [r2, #0x3e] - adds r0, r0, r1 - adds r0, r0, r5 - movs r1, #0 - strh r0, [r2, #0x3e] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x1e - bls _08028678 - strh r1, [r2, #0x3e] - b _080286CA - .align 2, 0 -_0802866C: .4byte gUnknown_20205AC -_08028670: .4byte gUnknown_20229A8 -_08028674: .4byte 0x0000FFFA -_08028678: - cmp r0, #0xa - bls _08028696 - lsls r1, r4, #1 - adds r0, r2, #0 - adds r0, #0x2a - adds r0, r0, r1 - ldrh r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #2 - bl StartSpriteAnim - b _080286CA -_08028696: - lsls r1, r4, #1 - adds r0, r2, #0 - adds r0, #0x2a - adds r0, r0, r1 - ldrh r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #0 - bl StartSpriteAnim - b _080286CA -_080286B0: - ldr r0, _080286DC - ldr r0, [r0] - lsls r1, r4, #1 - adds r0, #0x2a - adds r0, r0, r1 - ldrh r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #0 - bl StartSpriteAnim -_080286CA: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #0xa - subs r0, r0, r5 - cmp r4, r0 - blt _08028648 - b _08028702 - .align 2, 0 -_080286DC: .4byte gUnknown_20229A8 -_080286E0: - ldr r0, _0802870C - ldr r0, [r0] - lsls r1, r4, #1 - adds r0, #0x2a - adds r0, r0, r1 - ldrh r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08028710 - adds r0, r0, r1 - movs r1, #1 - bl StartSpriteAnim - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_08028702: - cmp r4, #9 - bls _080286E0 -_08028706: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0802870C: .4byte gUnknown_20229A8 -_08028710: .4byte gUnknown_20205AC - thumb_func_end sub_08028600 - - thumb_func_start sub_08028714 -sub_08028714: @ 0x08028714 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r3, #0 - ldr r7, _08028758 - movs r1, #1 - ands r0, r1 - lsls r4, r0, #2 - movs r6, #5 - rsbs r6, r6, #0 - ldr r5, _0802875C -_0802872A: - ldr r0, [r5] - lsls r1, r3, #1 - adds r0, #0x2a - adds r0, r0, r1 - ldrh r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r7 - adds r1, #0x3e - ldrb r2, [r1] - adds r0, r6, #0 - ands r0, r2 - orrs r0, r4 - strb r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #9 - bls _0802872A - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08028758: .4byte gUnknown_20205AC -_0802875C: .4byte gUnknown_20229A8 - thumb_func_end sub_08028714 - - thumb_func_start sub_08028760 -sub_08028760: @ 0x08028760 - push {r4, r5, lr} - sub sp, #0x10 - movs r5, #0x90 - lsls r5, r5, #3 - adds r0, r5, #0 - bl AllocZeroed - adds r4, r0, #0 - ldr r0, _080287AC - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [sp, #8] - str r1, [sp, #0xc] - ldr r0, _080287B0 - adds r1, r4, #0 - bl LZ77UnCompWram - cmp r4, #0 - beq _08028796 - str r4, [sp] - movs r0, #0x80 - lsls r0, r0, #0xa - orrs r0, r5 - str r0, [sp, #4] - mov r0, sp - bl LoadSpriteSheet -_08028796: - add r0, sp, #8 - bl LoadSpritePalette - adds r0, r4, #0 - bl Free - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080287AC: .4byte gUnknown_82CEBA0 -_080287B0: .4byte gUnknown_82CB73C - thumb_func_end sub_08028760 - - thumb_func_start sub_080287B4 -sub_080287B4: @ 0x080287B4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x30 - mov r1, sp - ldr r0, _08028844 - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} - add r2, sp, #0x18 - adds r1, r2, #0 - ldr r0, _08028848 - ldm r0!, {r3, r4, r5} - stm r1!, {r3, r4, r5} - ldm r0!, {r3, r4, r5} - stm r1!, {r3, r4, r5} - movs r5, #0 - mov sb, r2 -_080287DC: - movs r0, #4 - bl AllocZeroed - ldr r1, _0802884C - lsls r4, r5, #2 - adds r4, r4, r1 - str r0, [r4] - lsls r0, r5, #3 - lsls r1, r5, #4 - adds r1, r1, r0 - mov r0, sp - movs r2, #8 - movs r3, #1 - bl CreateSprite - ldr r1, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r1] - adds r0, r5, #0 - movs r1, #1 - bl sub_08028924 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0xa - bls _080287DC - movs r5, #0 - ldr r7, _08028850 - ldr r4, _08028854 - mov r8, r4 -_0802881C: - movs r0, #4 - bl AllocZeroed - lsls r1, r5, #2 - adds r4, r1, r7 - str r0, [r4] - adds r6, r1, #0 - cmp r5, #3 - bne _08028858 - mov r0, r8 - movs r2, #6 - ldrsh r1, [r0, r2] - mov r0, sb - movs r2, #0x39 - movs r3, #0 - bl CreateSprite - ldr r1, [r7, #0xc] - b _0802886C - .align 2, 0 -_08028844: .4byte gUnknown_82CEBB0 -_08028848: .4byte gUnknown_82CEBC8 -_0802884C: .4byte gUnknown_202296C -_08028850: .4byte gUnknown_2022998 -_08028854: .4byte gUnknown_82CEBA8 -_08028858: - lsls r0, r5, #1 - add r0, r8 - movs r3, #0 - ldrsh r1, [r0, r3] - mov r0, sb - movs r2, #0x3c - movs r3, #0 - bl CreateSprite - ldr r1, [r4] -_0802886C: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r1] - adds r0, r6, r7 - ldr r0, [r0] - ldrh r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080288A8 - adds r0, r0, r1 - adds r1, r5, #0 - bl StartSpriteAnim - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #3 - bls _0802881C - movs r0, #1 - bl sub_0802895C - add sp, #0x30 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080288A8: .4byte gUnknown_20205AC - thumb_func_end sub_080287B4 - - thumb_func_start sub_080288AC -sub_080288AC: @ 0x080288AC - push {r4, r5, r6, lr} - movs r5, #0 - ldr r6, _08028918 -_080288B2: - lsls r0, r5, #2 - adds r4, r0, r6 - ldr r0, [r4] - ldrh r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0802891C - adds r0, r0, r1 - cmp r0, #0 - beq _080288CC - bl DestroySprite -_080288CC: - ldr r0, [r4] - bl Free - movs r0, #0 - str r0, [r4] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0xa - bls _080288B2 - movs r5, #0 - ldr r6, _08028920 -_080288E4: - lsls r0, r5, #2 - adds r4, r0, r6 - ldr r0, [r4] - ldrh r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0802891C - adds r0, r0, r1 - cmp r0, #0 - beq _080288FE - bl DestroySprite -_080288FE: - ldr r0, [r4] - bl Free - movs r0, #0 - str r0, [r4] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #3 - bls _080288E4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08028918: .4byte gUnknown_202296C -_0802891C: .4byte gUnknown_20205AC -_08028920: .4byte gUnknown_2022998 - thumb_func_end sub_080288AC - - thumb_func_start sub_08028924 -sub_08028924: @ 0x08028924 - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r3, _08028954 - ldr r2, _08028958 - lsrs r0, r0, #0x16 - adds r0, r0, r2 - ldr r0, [r0] - ldrh r0, [r0] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r3 - adds r2, #0x3e - movs r0, #1 - ands r1, r0 - lsls r1, r1, #2 - ldrb r3, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - bx lr - .align 2, 0 -_08028954: .4byte gUnknown_20205AC -_08028958: .4byte gUnknown_202296C - thumb_func_end sub_08028924 - - thumb_func_start sub_0802895C -sub_0802895C: @ 0x0802895C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r3, #0 - ldr r7, _080289A0 - ldr r6, _080289A4 - movs r1, #1 - ands r0, r1 - lsls r4, r0, #2 - movs r5, #5 - rsbs r5, r5, #0 -_08028972: - lsls r0, r3, #2 - adds r0, r0, r6 - ldr r0, [r0] - ldrh r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r7 - adds r1, #0x3e - ldrb r2, [r1] - adds r0, r5, #0 - ands r0, r2 - orrs r0, r4 - strb r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #3 - bls _08028972 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080289A0: .4byte gUnknown_20205AC -_080289A4: .4byte gUnknown_2022998 - thumb_func_end sub_0802895C - - thumb_func_start sub_080289A8 -sub_080289A8: @ 0x080289A8 - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - ldr r3, _080289C8 - ldr r2, _080289CC - lsrs r0, r0, #0x16 - adds r0, r0, r2 - ldr r0, [r0] - ldrh r2, [r0] - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r3 - lsrs r1, r1, #0x15 - strh r1, [r0, #0x22] - bx lr - .align 2, 0 -_080289C8: .4byte gUnknown_20205AC -_080289CC: .4byte gUnknown_202296C - thumb_func_end sub_080289A8 - - thumb_func_start sub_080289D0 -sub_080289D0: @ 0x080289D0 - push {lr} - lsls r0, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _080289F4 - lsrs r0, r0, #0xe - adds r0, r0, r2 - ldr r0, [r0] - ldrh r2, [r0] - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _080289F8 - adds r0, r0, r2 - bl StartSpriteAnim - pop {r0} - bx r0 - .align 2, 0 -_080289F4: .4byte gUnknown_202296C -_080289F8: .4byte gUnknown_20205AC - thumb_func_end sub_080289D0 - - thumb_func_start sub_080289FC -sub_080289FC: @ 0x080289FC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08028A1C - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r1 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, #0x32 - strh r1, [r2, #0x20] - movs r0, #0x32 - strh r0, [r2, #0x22] - bx lr - .align 2, 0 -_08028A1C: .4byte gUnknown_20205AC - thumb_func_end sub_080289FC - - thumb_func_start sub_08028A20 -sub_08028A20: @ 0x08028A20 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r0, #0x42 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #1 - beq _08028A62 - movs r3, #0 - ldr r7, _08028A68 - ldr r6, _08028A6C - movs r5, #0 -_08028A36: - lsls r0, r3, #2 - adds r2, r0, r6 - ldr r1, [r2] - ldrh r0, [r1, #2] - adds r0, #1 - strh r0, [r1, #2] - adds r1, r3, r7 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r1] - cmp r0, r1 - bls _08028A58 - ldrh r0, [r4, #0x20] - subs r0, #1 - strh r0, [r4, #0x20] - ldr r0, [r2] - strh r5, [r0, #2] -_08028A58: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #1 - bls _08028A36 -_08028A62: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08028A68: .4byte gUnknown_82CEBE0 -_08028A6C: .4byte gUnknown_2022964 - thumb_func_end sub_08028A20 - - thumb_func_start sub_08028A70 -sub_08028A70: @ 0x08028A70 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x28 - movs r4, #0x80 - lsls r4, r4, #3 - adds r0, r4, #0 - bl AllocZeroed - adds r6, r0, #0 - ldr r0, _08028B14 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [sp, #0x20] - str r1, [sp, #0x24] - ldr r0, _08028B18 - adds r1, r6, #0 - bl LZ77UnCompWram - cmp r6, #0 - beq _08028AFE - str r6, [sp, #0x18] - add r0, sp, #0x18 - movs r1, #0xa0 - lsls r1, r1, #0xb - orrs r1, r4 - str r1, [r0, #4] - mov r2, sp - ldr r1, _08028B1C - ldm r1!, {r3, r4, r5} - stm r2!, {r3, r4, r5} - ldm r1!, {r3, r4, r5} - stm r2!, {r3, r4, r5} - bl LoadSpriteSheet - add r0, sp, #0x20 - bl LoadSpritePalette - movs r5, #0 - ldr r7, _08028B20 - adds r0, r7, #2 - mov sb, r0 - ldr r1, _08028B24 - mov r8, r1 -_08028ACA: - movs r0, #4 - bl AllocZeroed - lsls r2, r5, #2 - mov r3, r8 - adds r4, r2, r3 - str r0, [r4] - adds r0, r2, r7 - movs r3, #0 - ldrsh r1, [r0, r3] - add r2, sb - movs r0, #0 - ldrsh r2, [r2, r0] - mov r0, sp - movs r3, #4 - bl CreateSprite - ldr r1, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r1] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #1 - bls _08028ACA -_08028AFE: - adds r0, r6, #0 - bl Free - add sp, #0x28 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08028B14: .4byte gUnknown_82CEBEC -_08028B18: .4byte gUnknown_82CD000 -_08028B1C: .4byte gUnknown_82CEBF4 -_08028B20: .4byte gUnknown_82CEBE2 -_08028B24: .4byte gUnknown_2022964 - thumb_func_end sub_08028A70 - - thumb_func_start sub_08028B28 -sub_08028B28: @ 0x08028B28 - push {r4, r5, r6, r7, lr} - movs r3, #0 - ldr r0, _08028B6C - mov ip, r0 - ldr r4, _08028B70 - adds r7, r4, #2 - ldr r6, _08028B74 - movs r5, #1 -_08028B38: - lsls r2, r3, #2 - mov r1, ip - adds r0, r2, r1 - ldr r0, [r0] - ldrh r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - adds r0, r1, #0 - adds r0, #0x42 - strh r5, [r0] - adds r0, r2, r4 - ldrh r0, [r0] - strh r0, [r1, #0x20] - adds r2, r2, r7 - ldrh r0, [r2] - strh r0, [r1, #0x22] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #1 - bls _08028B38 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08028B6C: .4byte gUnknown_2022964 -_08028B70: .4byte gUnknown_82CEBE2 -_08028B74: .4byte gUnknown_20205AC - thumb_func_end sub_08028B28 - - thumb_func_start sub_08028B78 -sub_08028B78: @ 0x08028B78 - push {r4, r5, lr} - movs r2, #0 - ldr r5, _08028BA8 - ldr r4, _08028BAC - movs r3, #0 -_08028B82: - lsls r0, r2, #2 - adds r0, r0, r5 - ldr r0, [r0] - ldrh r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x42 - strh r3, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #1 - bls _08028B82 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08028BA8: .4byte gUnknown_2022964 -_08028BAC: .4byte gUnknown_20205AC - thumb_func_end sub_08028B78 - - thumb_func_start sub_08028BB0 -sub_08028BB0: @ 0x08028BB0 - push {r4, r5, r6, lr} - movs r5, #0 - ldr r6, _08028BEC -_08028BB6: - lsls r0, r5, #2 - adds r4, r0, r6 - ldr r0, [r4] - ldrh r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08028BF0 - adds r0, r0, r1 - cmp r0, #0 - beq _08028BD0 - bl DestroySprite -_08028BD0: - ldr r0, [r4] - bl Free - movs r0, #0 - str r0, [r4] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #1 - bls _08028BB6 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08028BEC: .4byte gUnknown_2022964 -_08028BF0: .4byte gUnknown_20205AC - thumb_func_end sub_08028BB0 - - thumb_func_start sub_08028BF4 -sub_08028BF4: @ 0x08028BF4 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r3, #0 - ldr r7, _08028C38 - ldr r6, _08028C3C - movs r1, #1 - ands r0, r1 - lsls r4, r0, #2 - movs r5, #5 - rsbs r5, r5, #0 -_08028C0A: - lsls r0, r3, #2 - adds r0, r0, r6 - ldr r0, [r0] - ldrh r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r7 - adds r1, #0x3e - ldrb r2, [r1] - adds r0, r5, #0 - ands r0, r2 - orrs r0, r4 - strb r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #1 - bls _08028C0A - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08028C38: .4byte gUnknown_20205AC -_08028C3C: .4byte gUnknown_2022964 - thumb_func_end sub_08028BF4 - - thumb_func_start sub_08028C40 -sub_08028C40: @ 0x08028C40 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r3, #0 - subs r0, r1, #1 - cmp r0, #4 - bhi _08028CF2 - lsls r0, r0, #2 - ldr r1, _08028C5C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08028C5C: .4byte _08028C60 -_08028C60: @ jump table - .4byte _08028CE0 @ case 0 - .4byte _08028C74 @ case 1 - .4byte _08028C7E @ case 2 - .4byte _08028C92 @ case 3 - .4byte _08028CBA @ case 4 -_08028C74: - cmp r2, #0 - beq _08028CAA - cmp r2, #1 - bne _08028CF2 - b _08028CAE -_08028C7E: - cmp r2, #1 - beq _08028CE4 - cmp r2, #1 - bgt _08028C8C - cmp r2, #0 - beq _08028CE0 - b _08028CF2 -_08028C8C: - cmp r2, #2 - bne _08028CF2 - b _08028CF0 -_08028C92: - cmp r2, #1 - beq _08028CAE - cmp r2, #1 - bgt _08028CA0 - cmp r2, #0 - beq _08028CAA - b _08028CF2 -_08028CA0: - cmp r2, #2 - beq _08028CB2 - cmp r2, #3 - beq _08028CB6 - b _08028CF2 -_08028CAA: - movs r3, #0xc - b _08028CF2 -_08028CAE: - movs r3, #0x12 - b _08028CF2 -_08028CB2: - movs r3, #0x18 - b _08028CF2 -_08028CB6: - movs r3, #6 - b _08028CF2 -_08028CBA: - cmp r2, #4 - bhi _08028CF2 - lsls r0, r2, #2 - ldr r1, _08028CC8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08028CC8: .4byte _08028CCC -_08028CCC: @ jump table - .4byte _08028CE0 @ case 0 - .4byte _08028CE4 @ case 1 - .4byte _08028CE8 @ case 2 - .4byte _08028CEC @ case 3 - .4byte _08028CF0 @ case 4 -_08028CE0: - movs r3, #0xf - b _08028CF2 -_08028CE4: - movs r3, #0x15 - b _08028CF2 -_08028CE8: - movs r3, #0x1b - b _08028CF2 -_08028CEC: - movs r3, #3 - b _08028CF2 -_08028CF0: - movs r3, #9 -_08028CF2: - lsls r0, r3, #3 - pop {r1} - bx r1 - thumb_func_end sub_08028C40 - - thumb_func_start sub_08028CF8 -sub_08028CF8: @ 0x08028CF8 - push {r4, lr} - movs r4, #0 -_08028CFC: - adds r0, r4, #0 - movs r1, #1 - bl sub_08028924 - adds r0, r4, #0 - movs r1, #1 - bl sub_080289A8 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xa - bls _08028CFC - movs r0, #0 - bl sub_08028714 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08028CF8 - - thumb_func_start sub_08028D24 -sub_08028D24: @ 0x08028D24 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl GetWindowFrameTilesPal - ldr r1, [r0] - movs r2, #0x90 - lsls r2, r2, #1 - movs r0, #0 - movs r3, #1 - bl LoadBgTiles - adds r0, r4, #0 - bl GetWindowFrameTilesPal - ldr r0, [r0, #4] - movs r1, #0xa0 - movs r2, #0x20 - bl LoadPalette - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08028D24 - - thumb_func_start sub_08028D58 -sub_08028D58: @ 0x08028D58 - push {lr} - movs r0, #0 - movs r1, #0xa - movs r2, #0xb0 - bl LoadUserWindowBorderGfx_ - pop {r0} - bx r0 - thumb_func_end sub_08028D58 - - thumb_func_start sub_08028D68 -sub_08028D68: @ 0x08028D68 - ldr r3, _08028D98 - ldr r0, [r3] - movs r2, #0xc0 - lsls r2, r2, #6 - adds r1, r0, r2 - movs r2, #0 - str r2, [r1] - ldr r1, _08028D9C - adds r0, r0, r1 - strb r2, [r0] - ldr r0, [r3] - adds r1, #4 - adds r0, r0, r1 - strb r2, [r0] - ldr r0, [r3] - adds r1, #8 - adds r0, r0, r1 - strb r2, [r0] - ldr r0, [r3] - adds r1, #4 - adds r0, r0, r1 - strb r2, [r0] - bx lr - .align 2, 0 -_08028D98: .4byte gUnknown_20229AC -_08028D9C: .4byte 0x00003014 - thumb_func_end sub_08028D68 - - thumb_func_start sub_08028DA0 -sub_08028DA0: @ 0x08028DA0 - push {r4, r5, r6, lr} - sub sp, #0xc - adds r4, r0, #0 - movs r6, #0xa - ldrb r2, [r4, #1] - subs r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r3, [r4, #2] - subs r3, #1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r5, #1 - str r5, [sp] - str r5, [sp, #4] - str r6, [sp, #8] - movs r0, #0 - movs r1, #1 - bl FillBgTilemapBufferRect - ldrb r2, [r4, #1] - ldrb r3, [r4, #2] - subs r3, #1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldrb r0, [r4, #3] - str r0, [sp] - str r5, [sp, #4] - str r6, [sp, #8] - movs r0, #0 - movs r1, #2 - bl FillBgTilemapBufferRect - ldrb r2, [r4, #3] - ldrb r0, [r4, #1] - adds r2, r2, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r3, [r4, #2] - subs r3, #1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r5, [sp] - str r5, [sp, #4] - str r6, [sp, #8] - movs r0, #0 - movs r1, #3 - bl FillBgTilemapBufferRect - ldrb r2, [r4, #1] - subs r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r3, [r4, #2] - str r5, [sp] - ldrb r0, [r4, #4] - str r0, [sp, #4] - str r6, [sp, #8] - movs r0, #0 - movs r1, #4 - bl FillBgTilemapBufferRect - ldrb r2, [r4, #3] - ldrb r0, [r4, #1] - adds r2, r2, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r3, [r4, #2] - str r5, [sp] - ldrb r0, [r4, #4] - str r0, [sp, #4] - str r6, [sp, #8] - movs r0, #0 - movs r1, #6 - bl FillBgTilemapBufferRect - ldrb r2, [r4, #1] - subs r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r3, [r4, #4] - ldrb r0, [r4, #2] - adds r3, r3, r0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r5, [sp] - str r5, [sp, #4] - str r6, [sp, #8] - movs r0, #0 - movs r1, #7 - bl FillBgTilemapBufferRect - ldrb r2, [r4, #1] - ldrb r3, [r4, #4] - ldrb r0, [r4, #2] - adds r3, r3, r0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldrb r0, [r4, #3] - str r0, [sp] - str r5, [sp, #4] - str r6, [sp, #8] - movs r0, #0 - movs r1, #8 - bl FillBgTilemapBufferRect - ldrb r2, [r4, #3] - ldrb r0, [r4, #1] - adds r2, r2, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r3, [r4, #4] - ldrb r4, [r4, #2] - adds r3, r3, r4 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r5, [sp] - str r5, [sp, #4] - str r6, [sp, #8] - movs r0, #0 - movs r1, #9 - bl FillBgTilemapBufferRect - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08028DA0 - - thumb_func_start sub_08028EA0 -sub_08028EA0: @ 0x08028EA0 - push {r4, r5, r6, lr} - sub sp, #0xc - adds r4, r0, #0 - movs r6, #0xb - ldrb r2, [r4, #1] - subs r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r3, [r4, #2] - subs r3, #1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r5, #1 - str r5, [sp] - str r5, [sp, #4] - str r6, [sp, #8] - movs r0, #0 - movs r1, #0xa - bl FillBgTilemapBufferRect - ldrb r2, [r4, #1] - ldrb r3, [r4, #2] - subs r3, #1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldrb r0, [r4, #3] - str r0, [sp] - str r5, [sp, #4] - str r6, [sp, #8] - movs r0, #0 - movs r1, #0xb - bl FillBgTilemapBufferRect - ldrb r2, [r4, #3] - ldrb r0, [r4, #1] - adds r2, r2, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r3, [r4, #2] - subs r3, #1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r5, [sp] - str r5, [sp, #4] - str r6, [sp, #8] - movs r0, #0 - movs r1, #0xc - bl FillBgTilemapBufferRect - ldrb r2, [r4, #1] - subs r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r3, [r4, #2] - str r5, [sp] - ldrb r0, [r4, #4] - str r0, [sp, #4] - str r6, [sp, #8] - movs r0, #0 - movs r1, #0xd - bl FillBgTilemapBufferRect - ldrb r2, [r4, #3] - ldrb r0, [r4, #1] - adds r2, r2, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r3, [r4, #2] - str r5, [sp] - ldrb r0, [r4, #4] - str r0, [sp, #4] - str r6, [sp, #8] - movs r0, #0 - movs r1, #0xf - bl FillBgTilemapBufferRect - ldrb r2, [r4, #1] - subs r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r3, [r4, #4] - ldrb r0, [r4, #2] - adds r3, r3, r0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r5, [sp] - str r5, [sp, #4] - str r6, [sp, #8] - movs r0, #0 - movs r1, #0x10 - bl FillBgTilemapBufferRect - ldrb r2, [r4, #1] - ldrb r3, [r4, #4] - ldrb r0, [r4, #2] - adds r3, r3, r0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldrb r0, [r4, #3] - str r0, [sp] - str r5, [sp, #4] - str r6, [sp, #8] - movs r0, #0 - movs r1, #0x11 - bl FillBgTilemapBufferRect - ldrb r2, [r4, #3] - ldrb r0, [r4, #1] - adds r2, r2, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r3, [r4, #4] - ldrb r4, [r4, #2] - adds r3, r3, r4 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r5, [sp] - str r5, [sp, #4] - str r6, [sp, #8] - movs r0, #0 - movs r1, #0x12 - bl FillBgTilemapBufferRect - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08028EA0 - - thumb_func_start sub_08028FA0 -sub_08028FA0: @ 0x08028FA0 - push {r4, lr} - ldr r4, _08028FE8 - str r0, [r4] - movs r2, #0xc0 - lsls r2, r2, #6 - adds r1, r0, r2 - movs r2, #0 - str r2, [r1] - ldr r3, _08028FEC - adds r1, r0, r3 - strb r2, [r1] - ldr r1, _08028FF0 - adds r0, r0, r1 - strb r2, [r0] - ldr r0, [r4] - adds r3, #0xc - adds r0, r0, r3 - strb r2, [r0] - ldr r0, [r4] - adds r1, #0xc - adds r0, r0, r1 - strb r2, [r0] - ldr r0, _08028FF4 - movs r1, #3 - bl CreateTask - ldr r1, [r4] - ldr r2, _08028FF8 - adds r1, r1, r2 - strb r0, [r1] - ldr r0, _08028FFC - bl sub_0802A420 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08028FE8: .4byte gUnknown_20229AC -_08028FEC: .4byte 0x00003014 -_08028FF0: .4byte 0x00003018 -_08028FF4: .4byte sub_08029040 -_08028FF8: .4byte 0x00003004 -_08028FFC: .4byte sub_08029064 - thumb_func_end sub_08028FA0 - - thumb_func_start sub_08029000 -sub_08029000: @ 0x08029000 - push {lr} - bl FreeAllWindowBuffers - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08029000 - - thumb_func_start sub_0802900C -sub_0802900C: @ 0x0802900C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r4, #0 - ldr r5, _0802903C - adds r7, r5, #4 -_08029018: - lsls r1, r4, #3 - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, r6 - bne _0802902A - adds r0, r1, r7 - ldr r0, [r0] - bl sub_0802A420 -_0802902A: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #9 - bls _08029018 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0802903C: .4byte gUnknown_82CEC98 - thumb_func_end sub_0802900C - - thumb_func_start sub_08029040 -sub_08029040: @ 0x08029040 - push {lr} - ldr r0, _08029060 - ldr r0, [r0] - movs r1, #0xc0 - lsls r1, r1, #6 - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #0 - bne _0802905A - bl sub_0802A450 - bl _call_via_r0 -_0802905A: - pop {r0} - bx r0 - .align 2, 0 -_08029060: .4byte gUnknown_20229AC - thumb_func_end sub_08029040 - - thumb_func_start sub_08029064 -sub_08029064: @ 0x08029064 - push {lr} - ldr r0, _08029080 - ldr r1, [r0] - ldr r2, _08029084 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #4 - bhi _0802915C - lsls r0, r0, #2 - ldr r1, _08029088 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08029080: .4byte gUnknown_20229AC -_08029084: .4byte 0x00003014 -_08029088: .4byte _0802908C -_0802908C: @ jump table - .4byte _080290A0 @ case 0 - .4byte _080290A6 @ case 1 - .4byte _080290C0 @ case 2 - .4byte _08029104 @ case 3 - .4byte _08029130 @ case 4 -_080290A0: - bl sub_0802A49C - b _08029140 -_080290A6: - bl sub_0802A5DC - cmp r0, #1 - bne _08029166 - ldr r0, _080290B8 - ldr r1, [r0] - ldr r2, _080290BC - adds r1, r1, r2 - b _08029148 - .align 2, 0 -_080290B8: .4byte gUnknown_20229AC -_080290BC: .4byte 0x00003014 -_080290C0: - ldr r1, _080290F8 - movs r0, #3 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - ldr r1, _080290FC - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - ldr r1, _08029100 - movs r0, #2 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - movs r0, #3 - bl CopyBgTilemapBufferToVram - movs r0, #1 - bl CopyBgTilemapBufferToVram - movs r0, #2 - bl CopyBgTilemapBufferToVram - b _08029140 - .align 2, 0 -_080290F8: .4byte gUnknown_82CE364 -_080290FC: .4byte gUnknown_82CE820 -_08029100: .4byte gUnknown_82CE5D0 -_08029104: - movs r0, #0 - bl ShowBg - movs r0, #3 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - ldr r0, _08029128 - ldr r1, [r0] - ldr r2, _0802912C - adds r1, r1, r2 - b _08029148 - .align 2, 0 -_08029128: .4byte gUnknown_20229AC -_0802912C: .4byte 0x00003014 -_08029130: - ldr r0, _08029150 - ldr r0, [r0] - ldrb r0, [r0, #0x14] - lsrs r0, r0, #3 - bl sub_08028D24 - bl sub_08028D58 -_08029140: - ldr r0, _08029154 - ldr r1, [r0] - ldr r0, _08029158 - adds r1, r1, r0 -_08029148: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _08029166 - .align 2, 0 -_08029150: .4byte gUnknown_3005AF0 -_08029154: .4byte gUnknown_20229AC -_08029158: .4byte 0x00003014 -_0802915C: - movs r2, #0xc0 - lsls r2, r2, #6 - adds r1, r1, r2 - movs r0, #1 - str r0, [r1] -_08029166: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08029064 - - thumb_func_start sub_0802916C -sub_0802916C: @ 0x0802916C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - ldr r4, _080291AC - ldr r0, [r4] - ldr r2, _080291B0 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, #0 - beq _080291B4 - cmp r0, #1 - bne _0802918C - b _08029318 -_0802918C: - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xb4 - bhi _0802919A - b _080293BA -_0802919A: - bl sub_08027410 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r6, #0 - cmp r6, r7 - blo _080291AA - b _08029392 -_080291AA: - b _0802936C - .align 2, 0 -_080291AC: .4byte gUnknown_20229AC -_080291B0: .4byte 0x00003014 -_080291B4: - bl sub_08027410 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r1, _080292F0 - subs r0, r7, #1 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r5, [r0] - ldr r2, _080292F4 - ldr r0, [sp, #0xc] - ands r0, r2 - ldr r1, _080292F8 - ands r0, r1 - movs r1, #0xe0 - lsls r1, r1, #0x13 - orrs r0, r1 - str r0, [sp, #0xc] - ldr r0, [sp, #0x10] - ands r0, r2 - movs r1, #2 - orrs r0, r1 - ldr r1, _080292FC - ands r0, r1 - movs r1, #0xd0 - lsls r1, r1, #4 - orrs r0, r1 - ldr r1, _08029300 - ands r0, r1 - movs r1, #0x98 - lsls r1, r1, #0xd - orrs r0, r1 - str r0, [sp, #0x10] - movs r6, #0 - cmp r6, r7 - bhs _080292E4 - mov r3, sp - adds r3, #0xc - str r3, [sp, #0x18] - mov sl, r4 - ldr r0, _08029304 - mov sb, r0 -_08029208: - movs r1, #0 - mov r8, r1 - adds r0, r6, #0 - bl sub_08027808 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r4, r0, #0 - bl sub_08027420 - adds r1, r0, #0 - movs r0, #0 - movs r2, #1 - rsbs r2, r2, #0 - bl sub_08005DAC - movs r1, #0x38 - subs r1, r1, r0 - lsrs r1, r1, #1 - str r1, [sp, #0x14] - ldrb r0, [r5] - lsls r0, r0, #8 - ldr r2, _080292FC - ldr r1, [sp, #0xc] - ands r1, r2 - orrs r1, r0 - str r1, [sp, #0xc] - ldrb r2, [r5, #1] - lsls r2, r2, #0x10 - ldr r0, _08029308 - ands r0, r1 - orrs r0, r2 - str r0, [sp, #0xc] - add r0, sp, #0xc - bl AddWindow - mov r2, sl - ldr r1, [r2] - add r1, sb - adds r1, r1, r6 - strb r0, [r1] - ldr r0, [r2] - add r0, sb - adds r0, r0, r6 - ldrb r0, [r0] - bl ClearWindowTilemap - mov r3, sl - ldr r0, [r3] - add r0, sb - adds r0, r0, r6 - ldrb r0, [r0] - movs r1, #0x11 - bl FillWindowPixelBuffer - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - bne _08029286 - movs r0, #2 - mov r8, r0 -_08029286: - adds r0, r4, #0 - bl sub_08027420 - adds r4, r0, #0 - mov r1, sl - ldr r0, [r1] - add r0, sb - adds r0, r0, r6 - ldrb r0, [r0] - ldr r3, [sp, #0x14] - lsls r2, r3, #0x18 - lsrs r2, r2, #0x18 - mov r3, r8 - lsls r1, r3, #1 - add r1, r8 - ldr r3, _0802930C - adds r1, r1, r3 - str r1, [sp] - movs r1, #1 - rsbs r1, r1, #0 - str r1, [sp, #4] - str r4, [sp, #8] - movs r1, #0 - movs r3, #1 - bl AddTextPrinterParameterized3 - mov r2, sl - ldr r0, [r2] - add r0, sb - adds r0, r0, r6 - ldrb r0, [r0] - movs r1, #2 - bl CopyWindowToVram - ldr r3, [sp, #0x18] - ldrh r0, [r3, #6] - adds r0, #0xe - strh r0, [r3, #6] - add r0, sp, #0xc - bl sub_08028EA0 - adds r5, #4 - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, r7 - blo _08029208 -_080292E4: - ldr r0, _08029310 - ldr r1, [r0] - ldr r0, _08029314 - adds r1, r1, r0 - b _08029356 - .align 2, 0 -_080292F0: .4byte gUnknown_82CEC54 -_080292F4: .4byte 0xFFFFFF00 -_080292F8: .4byte 0x00FFFFFF -_080292FC: .4byte 0xFFFF00FF -_08029300: .4byte 0x0000FFFF -_08029304: .4byte 0x00003008 -_08029308: .4byte 0xFF00FFFF -_0802930C: .4byte gUnknown_82CEC0C -_08029310: .4byte gUnknown_20229AC -_08029314: .4byte 0x00003014 -_08029318: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080293BA - bl sub_08027410 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r6, #0 - cmp r6, r7 - bhs _08029348 -_08029330: - ldr r0, [r4] - ldr r1, _08029360 - adds r0, r0, r1 - adds r0, r0, r6 - ldrb r0, [r0] - bl PutWindowTilemap - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, r7 - blo _08029330 -_08029348: - movs r0, #0 - bl CopyBgTilemapBufferToVram - ldr r0, _08029364 - ldr r1, [r0] - ldr r2, _08029368 - adds r1, r1, r2 -_08029356: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080293BA - .align 2, 0 -_08029360: .4byte 0x00003008 -_08029364: .4byte gUnknown_20229AC -_08029368: .4byte 0x00003014 -_0802936C: - ldr r5, _080293CC - ldr r0, [r5] - ldr r4, _080293D0 - adds r0, r0, r4 - adds r0, r0, r6 - ldrb r0, [r0] - bl ClearWindowTilemap - ldr r0, [r5] - adds r0, r0, r4 - adds r0, r0, r6 - ldrb r0, [r0] - bl RemoveWindow - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, r7 - blo _0802936C -_08029392: - movs r0, #0x1e - str r0, [sp] - movs r0, #0x14 - str r0, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, #0 - bl CopyBgTilemapBufferToVram - ldr r0, _080293CC - ldr r0, [r0] - movs r3, #0xc0 - lsls r3, r3, #6 - adds r0, r0, r3 - movs r1, #1 - str r1, [r0] -_080293BA: - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080293CC: .4byte gUnknown_20229AC -_080293D0: .4byte 0x00003008 - thumb_func_end sub_0802916C - - thumb_func_start sub_080293D4 -sub_080293D4: @ 0x080293D4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x68 - lsls r0, r0, #0x18 - movs r1, #0 - mov r8, r1 - movs r6, #0 - lsrs r7, r0, #0x18 - add r4, sp, #0x2c - ldr r1, _08029588 - adds r0, r4, #0 - movs r2, #5 - bl memcpy - movs r5, #0 - cmp r5, r7 - bhs _08029424 - add r4, sp, #0x34 -_080293FE: - mov r0, sp - adds r0, r0, r5 - adds r0, #0x2c - strb r5, [r0] - add r0, sp, #0x5c - adds r1, r5, #0 - bl sub_080276FC - lsls r2, r5, #3 - adds r2, r4, r2 - ldr r0, [sp, #0x5c] - ldr r1, [sp, #0x60] - str r0, [r2] - str r1, [r2, #4] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, r7 - blo _080293FE -_08029424: - bl sub_08027508 - cmp r0, #0 - beq _0802945A -_0802942C: - movs r5, #0 - cmp r5, r7 - bhs _08029454 - add r2, sp, #0x34 - add r1, sp, #0x2c -_08029436: - lsls r0, r5, #3 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, r8 - bne _0802944A - adds r0, r1, r6 - strb r5, [r0] - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_0802944A: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, r7 - blo _08029436 -_08029454: - mov r8, r6 - cmp r6, r7 - blo _0802942C -_0802945A: - movs r5, #0 - cmp r5, r7 - bhs _0802947E - add r6, sp, #0x34 - add r3, sp, #0x38 - subs r2, r7, #1 -_08029466: - lsls r1, r5, #3 - adds r0, r3, r1 - ldr r0, [r0] - cmp r0, #0 - bne _08029474 - adds r0, r6, r1 - strb r2, [r0] -_08029474: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, r7 - blo _08029466 -_0802947E: - movs r5, #0 - cmp r5, r7 - bhs _08029576 - mov r2, sp - adds r2, #0x34 - str r2, [sp, #0x64] - ldr r3, _0802958C - mov sl, r3 -_0802948E: - movs r0, #0 - mov r8, r0 - mov r0, sp - adds r0, r0, r5 - adds r0, #0x2c - ldrb r0, [r0] - adds r4, r0, #0 - lsls r1, r4, #3 - add r0, sp, #0x38 - adds r0, r0, r1 - ldr r0, [r0] - mov sb, r0 - ldr r2, _08029590 - ldr r0, [r2] - add r0, sl - ldrb r0, [r0] - ldr r2, _08029594 - ldr r3, [sp, #0x64] - adds r1, r3, r1 - ldrb r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r2, [r1] - ldr r3, _08029598 - lsls r1, r5, #1 - adds r1, r1, r3 - ldrb r6, [r1] - str r6, [sp] - movs r1, #0xff - str r1, [sp, #4] - mov r3, r8 - str r3, [sp, #8] - movs r1, #0 - movs r3, #8 - bl AddTextPrinterParameterized - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - bne _080294E6 - movs r0, #2 - mov r8, r0 -_080294E6: - adds r0, r4, #0 - bl sub_08027420 - adds r3, r0, #0 - ldr r1, _08029590 - ldr r0, [r1] - add r0, sl - ldrb r0, [r0] - mov r2, r8 - lsls r1, r2, #1 - add r1, r8 - ldr r2, _0802959C - adds r1, r1, r2 - str r1, [sp] - movs r1, #1 - rsbs r1, r1, #0 - str r1, [sp, #4] - str r3, [sp, #8] - movs r1, #0 - movs r2, #0x1c - adds r3, r6, #0 - bl AddTextPrinterParameterized3 - add r0, sp, #0xc - mov r1, sb - movs r2, #0 - movs r3, #7 - bl sub_080089D8 - movs r0, #0 - add r1, sp, #0xc - movs r2, #1 - rsbs r2, r2, #0 - bl sub_08005DAC - ldr r2, _08029590 - ldr r1, [r2] - add r1, sl - ldrb r1, [r1] - movs r3, #0x91 - subs r3, r3, r0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r6, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r2, #0 - str r2, [sp, #8] - adds r0, r1, #0 - movs r1, #0 - add r2, sp, #0xc - bl AddTextPrinterParameterized - ldr r3, _08029590 - ldr r0, [r3] - add r0, sl - ldrb r0, [r0] - str r6, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r2, #0 - str r2, [sp, #8] - movs r1, #0 - ldr r2, _080295A0 - movs r3, #0x9b - bl AddTextPrinterParameterized - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, r7 - blo _0802948E -_08029576: - add sp, #0x68 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08029588: .4byte gUnknown_82CECE8 -_0802958C: .4byte 0x00003009 -_08029590: .4byte gUnknown_20229AC -_08029594: .4byte gUnknown_82CEC68 -_08029598: .4byte gUnknown_82CEC8E -_0802959C: .4byte gUnknown_82CEC0C -_080295A0: .4byte gUnknown_85CCDE7 - thumb_func_end sub_080293D4 - - thumb_func_start sub_080295A4 -sub_080295A4: @ 0x080295A4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - bl sub_08027410 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0xc] - ldr r6, _080295D4 - ldr r1, [r6] - ldr r2, _080295D8 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0xb - bls _080295CA - b _08029CC0 -_080295CA: - lsls r0, r0, #2 - ldr r1, _080295DC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080295D4: .4byte gUnknown_20229AC -_080295D8: .4byte 0x00003014 -_080295DC: .4byte _080295E0 -_080295E0: @ jump table - .4byte _08029610 @ case 0 - .4byte _0802962C @ case 1 - .4byte _08029684 @ case 2 - .4byte _08029888 @ case 3 - .4byte _080298D4 @ case 4 - .4byte _08029918 @ case 5 - .4byte _0802997C @ case 6 - .4byte _080299B8 @ case 7 - .4byte _080299FC @ case 8 - .4byte _08029ABC @ case 9 - .4byte _08029C20 @ case 10 - .4byte _08029C74 @ case 11 -_08029610: - bl sub_0802760C - ldr r0, _08029624 - ldr r1, [r0] - ldr r0, _08029628 - adds r2, r1, r0 - movs r0, #0 - strh r0, [r2] - b _08029CA2 - .align 2, 0 -_08029624: .4byte gUnknown_20229AC -_08029628: .4byte 0x0000301C -_0802962C: - ldr r6, _08029674 - adds r0, r6, #0 - bl AddWindow - ldr r4, _08029678 - ldr r1, [r4] - ldr r2, _0802967C - mov r8, r2 - add r1, r8 - strb r0, [r1] - movs r0, #8 - adds r0, r0, r6 - mov sb, r0 - bl AddWindow - ldr r1, [r4] - ldr r5, _08029680 - adds r1, r1, r5 - strb r0, [r1] - ldr r0, [r4] - add r0, r8 - ldrb r0, [r0] - bl ClearWindowTilemap - ldr r0, [r4] - adds r0, r0, r5 - ldrb r0, [r0] - bl ClearWindowTilemap - adds r0, r6, #0 - bl sub_08028EA0 - mov r0, sb - bl sub_08028EA0 - b _08029CA0 - .align 2, 0 -_08029674: .4byte gUnknown_82CB448 -_08029678: .4byte gUnknown_20229AC -_0802967C: .4byte 0x00003008 -_08029680: .4byte 0x00003009 -_08029684: - ldr r4, _080297D0 - ldr r0, [r4] - ldr r5, _080297D4 - adds r0, r0, r5 - ldrb r0, [r0] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r0, [r4] - ldr r1, _080297D8 - mov sb, r1 - add r0, sb - ldrb r0, [r0] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r2, _080297DC - mov r8, r2 - movs r2, #1 - rsbs r2, r2, #0 - movs r0, #0 - mov r1, r8 - bl sub_08005DAC - adds r1, r0, #0 - movs r0, #0xe0 - subs r0, r0, r1 - lsrs r3, r0, #1 - ldr r0, [r4] - adds r0, r0, r5 - ldrb r0, [r0] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r1, #2 - str r1, [sp] - movs r6, #0xff - str r6, [sp, #4] - movs r5, #0 - str r5, [sp, #8] - movs r1, #0 - mov r2, r8 - bl AddTextPrinterParameterized - ldr r0, [r4] - add r0, sb - ldrb r0, [r0] - ldr r2, _080297E0 - movs r1, #0x10 - str r1, [sp] - str r6, [sp, #4] - str r5, [sp, #8] - movs r1, #0 - movs r3, #0x44 - bl AddTextPrinterParameterized - movs r0, #0 - mov sb, r0 - ldr r1, [sp, #0xc] - cmp sb, r1 - blo _080296FE - b _08029844 -_080296FE: - movs r4, #0 - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp sb, r0 - bne _0802970E - movs r4, #2 -_0802970E: - mov r0, sb - bl sub_08027420 - adds r6, r0, #0 - ldr r0, _080297D0 - ldr r0, [r0] - ldr r2, _080297D8 - adds r0, r0, r2 - ldrb r0, [r0] - mov r1, sb - lsls r5, r1, #1 - ldr r2, _080297E4 - adds r1, r5, r2 - ldrb r3, [r1] - lsls r1, r4, #1 - adds r1, r1, r4 - ldr r2, _080297E8 - adds r1, r1, r2 - str r1, [sp] - movs r4, #1 - rsbs r4, r4, #0 - str r4, [sp, #4] - str r6, [sp, #8] - movs r1, #0 - movs r2, #2 - bl AddTextPrinterParameterized3 - movs r7, #0 - mov r8, r5 - mov r0, sb - adds r0, #1 - str r0, [sp, #0x10] - ldr r1, _080297EC - mov sl, r1 -_08029752: - mov r0, sb - adds r1, r7, #0 - bl sub_08027460 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _080297F0 - bl Min - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r7, #0 - bl sub_0802754C - ldr r1, _080297F0 - bl Min - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - mov r0, sl - adds r1, r4, #0 - movs r2, #0 - movs r3, #4 - bl sub_080089D8 - movs r0, #0 - mov r1, sl - movs r2, #1 - rsbs r2, r2, #0 - bl sub_08005DAC - adds r5, r0, #0 - cmp r6, r4 - bne _080297FC - cmp r6, #0 - beq _080297FC - ldr r0, _080297D0 - ldr r0, [r0] - ldr r2, _080297D8 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r1, r7, #1 - ldr r2, _080297F4 - adds r1, r1, r2 - ldrb r2, [r1] - subs r2, r2, r5 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r1, _080297E4 - add r1, r8 - ldrb r3, [r1] - ldr r1, _080297F8 - str r1, [sp] - movs r1, #1 - rsbs r1, r1, #0 - str r1, [sp, #4] - mov r1, sl - str r1, [sp, #8] - movs r1, #0 - bl AddTextPrinterParameterized3 - b _0802982A - .align 2, 0 -_080297D0: .4byte gUnknown_20229AC -_080297D4: .4byte 0x00003008 -_080297D8: .4byte 0x00003009 -_080297DC: .4byte gUnknown_85CCD34 -_080297E0: .4byte gUnknown_85CCD45 -_080297E4: .4byte gUnknown_82CEC84 -_080297E8: .4byte gUnknown_82CEC0C -_080297EC: .4byte gUnknown_2021C7C -_080297F0: .4byte 0x0000270F -_080297F4: .4byte gUnknown_82CEC7C -_080297F8: .4byte gUnknown_82CEC0F -_080297FC: - ldr r0, _0802986C - ldr r0, [r0] - ldr r2, _08029870 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r1, r7, #1 - ldr r2, _08029874 - adds r1, r1, r2 - ldrb r3, [r1] - subs r3, r3, r5 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r1, _08029878 - add r1, r8 - ldrb r1, [r1] - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - ldr r2, _0802987C - bl AddTextPrinterParameterized -_0802982A: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #3 - bls _08029752 - ldr r1, [sp, #0x10] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldr r2, [sp, #0xc] - cmp sb, r2 - bhs _08029844 - b _080296FE -_08029844: - ldr r4, _0802986C - ldr r0, [r4] - ldr r1, _08029880 - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #2 - bl CopyWindowToVram - ldr r0, [r4] - ldr r2, _08029870 - adds r0, r0, r2 - ldrb r0, [r0] - movs r1, #2 - bl CopyWindowToVram - ldr r1, [r4] - ldr r0, _08029884 - adds r1, r1, r0 - b _08029CA6 - .align 2, 0 -_0802986C: .4byte gUnknown_20229AC -_08029870: .4byte 0x00003009 -_08029874: .4byte gUnknown_82CEC7C -_08029878: .4byte gUnknown_82CEC84 -_0802987C: .4byte gUnknown_2021C7C -_08029880: .4byte 0x00003008 -_08029884: .4byte 0x00003014 -_08029888: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080298AC - ldr r4, _080298C4 - ldr r0, [r4] - ldr r1, _080298C8 - adds r0, r0, r1 - ldrb r0, [r0] - bl PutWindowTilemap - ldr r0, [r4] - ldr r2, _080298CC - adds r0, r0, r2 - ldrb r0, [r0] - bl PutWindowTilemap -_080298AC: - movs r0, #0 - bl CopyBgTilemapBufferToVram - movs r0, #0 - bl sub_0802895C - ldr r0, _080298C4 - ldr r1, [r0] - ldr r0, _080298D0 - adds r1, r1, r0 - b _08029CA6 - .align 2, 0 -_080298C4: .4byte gUnknown_20229AC -_080298C8: .4byte 0x00003008 -_080298CC: .4byte 0x00003009 -_080298D0: .4byte 0x00003014 -_080298D4: - ldr r4, _0802990C - ldr r0, [r4] - ldr r1, _08029910 - adds r2, r0, r1 - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x1d - bhi _080298EC - b _08029D10 -_080298EC: - ldr r0, _08029914 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080298FA - b _08029D10 -_080298FA: - movs r0, #0 - strh r0, [r2] - movs r0, #5 - bl sub_080A306C - movs r0, #1 - bl sub_0802895C - b _08029CA0 - .align 2, 0 -_0802990C: .4byte gUnknown_20229AC -_08029910: .4byte 0x0000301C -_08029914: .4byte gUnknown_3002360 -_08029918: - ldr r4, _0802996C - ldr r0, [r4] - ldr r5, _08029970 - adds r0, r0, r5 - ldrb r0, [r0] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r0, [r4] - ldr r1, _08029974 - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r6, _08029978 - movs r2, #1 - rsbs r2, r2, #0 - movs r0, #0 - adds r1, r6, #0 - bl sub_08005DAC - adds r1, r0, #0 - movs r0, #0xe0 - subs r0, r0, r1 - lsrs r3, r0, #1 - ldr r0, [r4] - adds r0, r0, r5 - ldrb r0, [r0] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r1, #2 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - adds r2, r6, #0 - bl AddTextPrinterParameterized - b _08029CA0 - .align 2, 0 -_0802996C: .4byte gUnknown_20229AC -_08029970: .4byte 0x00003008 -_08029974: .4byte 0x00003009 -_08029978: .4byte gUnknown_85CCD5A -_0802997C: - ldr r0, [sp, #0xc] - bl sub_080293D4 - ldr r4, _080299A8 - ldr r0, [r4] - ldr r1, _080299AC - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #2 - bl CopyWindowToVram - ldr r0, [r4] - ldr r2, _080299B0 - adds r0, r0, r2 - ldrb r0, [r0] - movs r1, #2 - bl CopyWindowToVram - ldr r1, [r4] - ldr r0, _080299B4 - adds r1, r1, r0 - b _08029CA6 - .align 2, 0 -_080299A8: .4byte gUnknown_20229AC -_080299AC: .4byte 0x00003008 -_080299B0: .4byte 0x00003009 -_080299B4: .4byte 0x00003014 -_080299B8: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080299DC - ldr r4, _080299EC - ldr r0, [r4] - ldr r1, _080299F0 - adds r0, r0, r1 - ldrb r0, [r0] - bl PutWindowTilemap - ldr r0, [r4] - ldr r2, _080299F4 - adds r0, r0, r2 - ldrb r0, [r0] - bl PutWindowTilemap -_080299DC: - movs r0, #0 - bl CopyBgTilemapBufferToVram - ldr r0, _080299EC - ldr r1, [r0] - ldr r0, _080299F8 - adds r1, r1, r0 - b _08029CA6 - .align 2, 0 -_080299EC: .4byte gUnknown_20229AC -_080299F0: .4byte 0x00003008 -_080299F4: .4byte 0x00003009 -_080299F8: .4byte 0x00003014 -_080299FC: - ldr r4, _08029A44 - ldr r0, [r4] - ldr r1, _08029A48 - adds r2, r0, r1 - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x1d - bhi _08029A14 - b _08029D10 -_08029A14: - ldr r0, _08029A4C - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08029A22 - b _08029D10 -_08029A22: - movs r0, #0 - strh r0, [r2] - movs r0, #5 - bl sub_080A306C - bl sub_08027508 - ldr r1, _08029A50 - cmp r0, r1 - bhi _08029A58 - ldr r0, [r4] - ldr r2, _08029A54 - adds r0, r0, r2 - movs r1, #0x7f - strb r1, [r0] - b _08029A68 - .align 2, 0 -_08029A44: .4byte gUnknown_20229AC -_08029A48: .4byte 0x0000301C -_08029A4C: .4byte gUnknown_3002360 -_08029A50: .4byte 0x00000BB7 -_08029A54: .4byte 0x00003014 -_08029A58: - bl StopMapMusic - ldr r1, [r4] - ldr r0, _08029AAC - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_08029A68: - movs r0, #0x1e - str r0, [sp] - movs r0, #0xf - str r0, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #5 - bl FillBgTilemapBufferRect_Palette0 - ldr r5, _08029AB0 - ldr r0, [r5] - ldr r4, _08029AB4 - adds r0, r0, r4 - ldrb r0, [r0] - bl RemoveWindow - ldr r6, _08029AB8 - adds r0, r6, #0 - bl AddWindow - ldr r1, [r5] - adds r1, r1, r4 - strb r0, [r1] - ldr r0, [r5] - adds r0, r0, r4 - ldrb r0, [r0] - bl ClearWindowTilemap - adds r0, r6, #0 - bl sub_08028EA0 - b _08029D10 - .align 2, 0 -_08029AAC: .4byte 0x00003014 -_08029AB0: .4byte gUnknown_20229AC -_08029AB4: .4byte 0x00003009 -_08029AB8: .4byte gUnknown_82CB458 -_08029ABC: - ldr r0, _08029B94 - bl PlayNewMapMusic - ldr r4, _08029B98 - ldr r0, [r4] - ldr r6, _08029B9C - adds r0, r0, r6 - ldrb r0, [r0] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r0, [r4] - ldr r1, _08029BA0 - mov sl, r1 - add r0, sl - ldrb r0, [r0] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r5, _08029BA4 - movs r2, #1 - rsbs r2, r2, #0 - movs r0, #0 - adds r1, r5, #0 - bl sub_08005DAC - adds r1, r0, #0 - movs r0, #0xe0 - subs r0, r0, r1 - lsrs r3, r0, #1 - ldr r0, [r4] - adds r0, r0, r6 - ldrb r0, [r0] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r2, #2 - mov sb, r2 - str r2, [sp] - movs r1, #0xff - mov r8, r1 - str r1, [sp, #4] - movs r6, #0 - str r6, [sp, #8] - movs r1, #0 - adds r2, r5, #0 - bl AddTextPrinterParameterized - bl DynamicPlaceholderTextUtil_Reset - bl sub_080273EC - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r5, _08029BA8 - adds r1, r5, #0 - bl sub_080D5EC8 - movs r0, #0 - adds r1, r5, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - ldr r7, _08029BAC - ldr r1, _08029BB0 - adds r0, r7, #0 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - ldr r0, [r4] - add r0, sl - ldrb r0, [r0] - mov r2, sb - str r2, [sp] - mov r1, r8 - str r1, [sp, #4] - str r6, [sp, #8] - movs r1, #0 - adds r2, r7, #0 - movs r3, #8 - bl AddTextPrinterParameterized - bl sub_08027788 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r6, r4, #0 - cmp r4, #0 - beq _08029BE2 - cmp r4, #3 - beq _08029BE2 - bl DynamicPlaceholderTextUtil_Reset - bl sub_080273EC - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r5, #0 - bl sub_080D5EC8 - movs r0, #0 - adds r1, r5, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - cmp r4, #2 - bne _08029BB8 - ldr r1, _08029BB4 - adds r0, r7, #0 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - b _08029BC4 - .align 2, 0 -_08029B94: .4byte 0x0000016F -_08029B98: .4byte gUnknown_20229AC -_08029B9C: .4byte 0x00003008 -_08029BA0: .4byte 0x00003009 -_08029BA4: .4byte gUnknown_85CCD68 -_08029BA8: .4byte gUnknown_2021C40 -_08029BAC: .4byte gUnknown_2021C7C -_08029BB0: .4byte gUnknown_85CCD86 -_08029BB4: .4byte gUnknown_85CCD9F -_08029BB8: - cmp r6, #1 - bne _08029BC4 - ldr r1, _08029C08 - adds r0, r7, #0 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders -_08029BC4: - ldr r0, _08029C0C - ldr r0, [r0] - ldr r2, _08029C10 - adds r0, r0, r2 - ldrb r0, [r0] - ldr r2, _08029C14 - movs r1, #0x28 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r3, #8 - bl AddTextPrinterParameterized -_08029BE2: - ldr r4, _08029C0C - ldr r0, [r4] - ldr r1, _08029C18 - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #2 - bl CopyWindowToVram - ldr r0, [r4] - ldr r2, _08029C10 - adds r0, r0, r2 - ldrb r0, [r0] - movs r1, #2 - bl CopyWindowToVram - ldr r1, [r4] - ldr r0, _08029C1C - adds r1, r1, r0 - b _08029CA6 - .align 2, 0 -_08029C08: .4byte gUnknown_85CCDAB -_08029C0C: .4byte gUnknown_20229AC -_08029C10: .4byte 0x00003009 -_08029C14: .4byte gUnknown_2021C7C -_08029C18: .4byte 0x00003008 -_08029C1C: .4byte 0x00003014 -_08029C20: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08029C44 - ldr r4, _08029C60 - ldr r0, [r4] - ldr r1, _08029C64 - adds r0, r0, r1 - ldrb r0, [r0] - bl PutWindowTilemap - ldr r0, [r4] - ldr r2, _08029C68 - adds r0, r0, r2 - ldrb r0, [r0] - bl PutWindowTilemap -_08029C44: - movs r0, #0 - bl CopyBgTilemapBufferToVram - ldr r0, _08029C6C - movs r1, #0x14 - movs r2, #0xa - bl FadeOutAndFadeInNewMapMusic - ldr r0, _08029C60 - ldr r1, [r0] - ldr r0, _08029C70 - adds r1, r1, r0 - b _08029CA6 - .align 2, 0 -_08029C60: .4byte gUnknown_20229AC -_08029C64: .4byte 0x00003008 -_08029C68: .4byte 0x00003009 -_08029C6C: .4byte 0x0000020B -_08029C70: .4byte 0x00003014 -_08029C74: - ldr r4, _08029CB0 - ldr r0, [r4] - ldr r1, _08029CB4 - adds r2, r0, r1 - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x1d - bls _08029D10 - ldr r0, _08029CB8 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08029D10 - movs r0, #0 - strh r0, [r2] - movs r0, #5 - bl sub_080A306C -_08029CA0: - ldr r1, [r4] -_08029CA2: - ldr r2, _08029CBC - adds r1, r1, r2 -_08029CA6: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _08029D10 - .align 2, 0 -_08029CB0: .4byte gUnknown_20229AC -_08029CB4: .4byte 0x0000301C -_08029CB8: .4byte gUnknown_3002360 -_08029CBC: .4byte 0x00003014 -_08029CC0: - ldr r5, _08029D20 - adds r0, r1, r5 - ldrb r0, [r0] - bl ClearWindowTilemap - ldr r0, [r6] - ldr r4, _08029D24 - adds r0, r0, r4 - ldrb r0, [r0] - bl ClearWindowTilemap - ldr r0, [r6] - adds r0, r0, r5 - ldrb r0, [r0] - bl RemoveWindow - ldr r0, [r6] - adds r0, r0, r4 - ldrb r0, [r0] - bl RemoveWindow - movs r0, #0x1e - str r0, [sp] - movs r0, #0x14 - str r0, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, #0 - bl CopyBgTilemapBufferToVram - ldr r0, [r6] - movs r1, #0xc0 - lsls r1, r1, #6 - adds r0, r0, r1 - movs r1, #1 - str r1, [r0] -_08029D10: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08029D20: .4byte 0x00003008 -_08029D24: .4byte 0x00003009 - thumb_func_end sub_080295A4 - - thumb_func_start sub_08029D28 -sub_08029D28: @ 0x08029D28 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - ldr r1, _08029D50 - ldr r2, [r1] - ldr r3, _08029D54 - adds r0, r2, r3 - ldrb r7, [r0] - adds r6, r1, #0 - cmp r7, #1 - beq _08029DDC - cmp r7, #1 - bgt _08029D58 - cmp r7, #0 - beq _08029D66 - b _08029FF4 - .align 2, 0 -_08029D50: .4byte gUnknown_20229AC -_08029D54: .4byte 0x00003014 -_08029D58: - cmp r7, #2 - bne _08029D5E - b _08029EA0 -_08029D5E: - cmp r7, #3 - bne _08029D64 - b _08029ED4 -_08029D64: - b _08029FF4 -_08029D66: - ldr r0, _08029DC4 - bl AddWindow - ldr r1, [r6] - ldr r5, _08029DC8 - adds r1, r1, r5 - strb r0, [r1] - ldr r0, _08029DC4 - adds r0, #8 - mov r8, r0 - bl AddWindow - ldr r1, [r6] - ldr r4, _08029DCC - adds r1, r1, r4 - strb r0, [r1] - ldr r0, [r6] - adds r0, r0, r5 - ldrb r0, [r0] - bl ClearWindowTilemap - ldr r0, [r6] - adds r0, r0, r4 - ldrb r0, [r0] - bl ClearWindowTilemap - ldr r0, _08029DC4 - bl sub_08028EA0 - mov r0, r8 - bl sub_08028DA0 - ldr r1, [r6] - ldr r2, _08029DD0 - adds r1, r1, r2 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r0, [r6] - ldr r3, _08029DD4 - adds r0, r0, r3 - strb r7, [r0] - ldr r0, [r6] - ldr r1, _08029DD8 - adds r0, r0, r1 - strb r7, [r0] - b _0802A054 - .align 2, 0 -_08029DC4: .4byte gUnknown_82CB460 -_08029DC8: .4byte 0x00003008 -_08029DCC: .4byte 0x00003009 -_08029DD0: .4byte 0x00003014 -_08029DD4: .4byte 0x00003020 -_08029DD8: .4byte 0x00003024 -_08029DDC: - ldr r3, _08029E84 - mov r8, r3 - adds r0, r2, r3 - ldrb r0, [r0] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r0, [r6] - ldr r7, _08029E88 - adds r0, r0, r7 - ldrb r0, [r0] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r0, [r6] - add r0, r8 - ldrb r0, [r0] - ldr r2, _08029E8C - movs r1, #6 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r4, #0 - str r4, [sp, #8] - movs r1, #1 - movs r3, #8 - bl AddTextPrinterParameterized - ldr r0, [r6] - adds r0, r0, r7 - ldrb r0, [r0] - ldr r2, _08029E90 - movs r3, #2 - mov sb, r3 - str r3, [sp] - movs r1, #0xff - str r1, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #0xc - bl AddTextPrinterParameterized - ldr r0, [r6] - adds r0, r0, r7 - ldrb r0, [r0] - ldr r2, _08029E94 - movs r1, #0x12 - str r1, [sp] - movs r3, #0xff - str r3, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #0xc - bl AddTextPrinterParameterized - ldr r0, [r6] - adds r0, r0, r7 - ldrb r0, [r0] - ldr r2, _08029E98 - mov r1, sb - str r1, [sp] - movs r3, #0xff - str r3, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #2 - bl AddTextPrinterParameterized - ldr r0, [r6] - add r0, r8 - ldrb r0, [r0] - movs r1, #2 - bl CopyWindowToVram - ldr r0, [r6] - adds r0, r0, r7 - ldrb r0, [r0] - movs r1, #2 - bl CopyWindowToVram - ldr r1, [r6] - ldr r0, _08029E9C - adds r1, r1, r0 - b _08029FE8 - .align 2, 0 -_08029E84: .4byte 0x00003008 -_08029E88: .4byte 0x00003009 -_08029E8C: .4byte gUnknown_85CCDBD -_08029E90: .4byte gUnknown_85CAAD8 -_08029E94: .4byte gUnknown_85CAADB -_08029E98: .4byte gUnknown_85C9421 -_08029E9C: .4byte 0x00003014 -_08029EA0: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08029EC2 - ldr r0, [r6] - ldr r1, _08029ECC - adds r0, r0, r1 - ldrb r0, [r0] - bl PutWindowTilemap - ldr r0, [r6] - ldr r2, _08029ED0 - adds r0, r0, r2 - ldrb r0, [r0] - bl PutWindowTilemap -_08029EC2: - movs r0, #0 - bl CopyBgTilemapBufferToVram - b _08029FE2 - .align 2, 0 -_08029ECC: .4byte 0x00003008 -_08029ED0: .4byte 0x00003009 -_08029ED4: - ldr r0, _08029F7C - mov sl, r0 - adds r0, r2, r0 - ldrb r7, [r0] - cmp r7, #0 - bne _08029EE2 - movs r7, #1 -_08029EE2: - ldr r1, _08029F80 - mov r8, r1 - adds r0, r2, r1 - ldrb r0, [r0] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r0, [r6] - add r0, r8 - ldrb r0, [r0] - ldr r2, _08029F84 - movs r3, #2 - mov sb, r3 - str r3, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r4, #0 - str r4, [sp, #8] - movs r1, #1 - movs r3, #0xc - bl AddTextPrinterParameterized - ldr r0, [r6] - add r0, r8 - ldrb r0, [r0] - ldr r2, _08029F88 - movs r1, #0x12 - str r1, [sp] - movs r3, #0xff - str r3, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #0xc - bl AddTextPrinterParameterized - ldr r0, [r6] - add r0, r8 - ldrb r0, [r0] - ldr r2, _08029F8C - subs r1, r7, #1 - lsls r1, r1, #4 - adds r1, #2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #2 - bl AddTextPrinterParameterized - ldr r0, [r6] - add r0, r8 - ldrb r0, [r0] - movs r1, #3 - bl CopyWindowToVram - ldr r0, _08029F90 - ldrh r1, [r0, #0x2e] - movs r4, #1 - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08029F94 - movs r0, #5 - bl sub_080A306C - ldr r0, [r6] - mov r2, sl - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, #0 - bne _08029FE2 - strb r4, [r1] - b _08029FE2 - .align 2, 0 -_08029F7C: .4byte 0x00003020 -_08029F80: .4byte 0x00003009 -_08029F84: .4byte gUnknown_85CAAD8 -_08029F88: .4byte gUnknown_85CAADB -_08029F8C: .4byte gUnknown_85C9421 -_08029F90: .4byte gUnknown_3002360 -_08029F94: - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0 - beq _08029FCC - movs r0, #5 - bl sub_080A306C - ldr r0, [r6] - add r0, sl - ldrb r2, [r0] - cmp r2, #1 - beq _08029FC2 - cmp r2, #1 - bgt _08029FB6 - cmp r2, #0 - beq _08029FBC - b _0802A054 -_08029FB6: - cmp r2, #2 - beq _08029FC8 - b _0802A054 -_08029FBC: - mov r1, sb - strb r1, [r0] - b _0802A054 -_08029FC2: - mov r2, sb - strb r2, [r0] - b _0802A054 -_08029FC8: - strb r4, [r0] - b _0802A054 -_08029FCC: - mov r0, sb - ands r0, r1 - cmp r0, #0 - beq _0802A054 - movs r0, #5 - bl sub_080A306C - ldr r0, [r6] - add r0, sl - movs r1, #2 - strb r1, [r0] -_08029FE2: - ldr r1, [r6] - ldr r3, _08029FF0 - adds r1, r1, r3 -_08029FE8: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0802A054 - .align 2, 0 -_08029FF0: .4byte 0x00003014 -_08029FF4: - ldr r0, [r6] - ldr r2, _0802A064 - adds r1, r0, r2 - ldrb r1, [r1] - ldr r3, _0802A068 - adds r0, r0, r3 - strb r1, [r0] - ldr r0, [r6] - ldr r7, _0802A06C - adds r0, r0, r7 - ldrb r0, [r0] - bl ClearWindowTilemap - ldr r0, [r6] - ldr r4, _0802A070 - adds r0, r0, r4 - ldrb r0, [r0] - bl ClearWindowTilemap - ldr r0, [r6] - adds r0, r0, r7 - ldrb r0, [r0] - bl RemoveWindow - ldr r0, [r6] - adds r0, r0, r4 - ldrb r0, [r0] - bl RemoveWindow - movs r0, #0x1e - str r0, [sp] - movs r0, #0x14 - str r0, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, #0 - bl CopyBgTilemapBufferToVram - ldr r0, [r6] - movs r1, #0xc0 - lsls r1, r1, #6 - adds r0, r0, r1 - movs r1, #1 - str r1, [r0] -_0802A054: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0802A064: .4byte 0x00003020 -_0802A068: .4byte 0x00003024 -_0802A06C: .4byte 0x00003008 -_0802A070: .4byte 0x00003009 - thumb_func_end sub_08029D28 - - thumb_func_start sub_0802A074 -sub_0802A074: @ 0x0802A074 - push {r4, r5, r6, lr} - sub sp, #0x10 - ldr r5, _0802A090 - ldr r0, [r5] - ldr r6, _0802A094 - adds r0, r0, r6 - ldrb r4, [r0] - cmp r4, #1 - beq _0802A0CC - cmp r4, #1 - bgt _0802A098 - cmp r4, #0 - beq _0802A0A2 - b _0802A114 - .align 2, 0 -_0802A090: .4byte gUnknown_20229AC -_0802A094: .4byte 0x00003014 -_0802A098: - cmp r4, #2 - beq _0802A0E0 - cmp r4, #3 - beq _0802A0F8 - b _0802A114 -_0802A0A2: - movs r0, #0 - movs r1, #0 - bl sub_08196FB8 - ldr r2, _0802A0C8 - str r4, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - movs r0, #3 - str r0, [sp, #0xc] - movs r0, #0 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized2 - b _0802A104 - .align 2, 0 -_0802A0C8: .4byte gUnknown_8277071 -_0802A0CC: - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - ldr r1, [r5] - ldr r0, _0802A0DC - adds r1, r1, r0 - b _0802A108 - .align 2, 0 -_0802A0DC: .4byte 0x00003014 -_0802A0E0: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802A13C - ldr r0, _0802A0F4 - movs r1, #0 - bl CreateTask - b _0802A104 - .align 2, 0 -_0802A0F4: .4byte sub_081535C4 -_0802A0F8: - ldr r0, _0802A110 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802A13C -_0802A104: - ldr r1, [r5] - adds r1, r1, r6 -_0802A108: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0802A13C - .align 2, 0 -_0802A110: .4byte sub_081535C4 -_0802A114: - movs r0, #0x1e - str r0, [sp] - movs r0, #0x14 - str r0, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, #0 - bl CopyBgTilemapBufferToVram - ldr r0, _0802A144 - ldr r0, [r0] - movs r1, #0xc0 - lsls r1, r1, #6 - adds r0, r0, r1 - movs r1, #1 - str r1, [r0] -_0802A13C: - add sp, #0x10 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0802A144: .4byte gUnknown_20229AC - thumb_func_end sub_0802A074 - - thumb_func_start sub_0802A148 -sub_0802A148: @ 0x0802A148 - push {r4, r5, r6, lr} - sub sp, #0xc - ldr r1, _0802A168 - ldr r2, [r1] - ldr r6, _0802A16C - adds r0, r2, r6 - ldrb r0, [r0] - adds r5, r1, #0 - cmp r0, #1 - beq _0802A1A0 - cmp r0, #1 - bgt _0802A170 - cmp r0, #0 - beq _0802A176 - b _0802A214 - .align 2, 0 -_0802A168: .4byte gUnknown_20229AC -_0802A16C: .4byte 0x00003014 -_0802A170: - cmp r0, #2 - beq _0802A1E8 - b _0802A214 -_0802A176: - ldr r4, _0802A198 - adds r0, r4, #0 - bl AddWindow - ldr r1, [r5] - ldr r2, _0802A19C - adds r1, r1, r2 - strb r0, [r1] - ldr r0, [r5] - adds r0, r0, r2 - ldrb r0, [r0] - bl ClearWindowTilemap - adds r0, r4, #0 - bl sub_08028EA0 - b _0802A204 - .align 2, 0 -_0802A198: .4byte gUnknown_82CB478 -_0802A19C: .4byte 0x00003008 -_0802A1A0: - ldr r4, _0802A1DC - adds r0, r2, r4 - ldrb r0, [r0] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r0, [r5] - adds r0, r0, r4 - ldrb r0, [r0] - ldr r2, _0802A1E0 - movs r1, #6 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - movs r3, #4 - bl AddTextPrinterParameterized - ldr r0, [r5] - adds r0, r0, r4 - ldrb r0, [r0] - movs r1, #2 - bl CopyWindowToVram - ldr r1, [r5] - ldr r0, _0802A1E4 - adds r1, r1, r0 - b _0802A208 - .align 2, 0 -_0802A1DC: .4byte 0x00003008 -_0802A1E0: .4byte gUnknown_85CCDEA -_0802A1E4: .4byte 0x00003014 -_0802A1E8: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802A1FE - ldr r0, [r5] - ldr r1, _0802A210 - adds r0, r0, r1 - ldrb r0, [r0] - bl PutWindowTilemap -_0802A1FE: - movs r0, #0 - bl CopyBgTilemapBufferToVram -_0802A204: - ldr r1, [r5] - adds r1, r1, r6 -_0802A208: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0802A220 - .align 2, 0 -_0802A210: .4byte 0x00003008 -_0802A214: - ldr r0, [r5] - movs r1, #0xc0 - lsls r1, r1, #6 - adds r0, r0, r1 - movs r1, #1 - str r1, [r0] -_0802A220: - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_0802A148 - - thumb_func_start sub_0802A228 -sub_0802A228: @ 0x0802A228 - push {r4, r5, lr} - sub sp, #8 - ldr r5, _0802A274 - ldr r0, [r5] - ldr r4, _0802A278 - adds r0, r0, r4 - ldrb r0, [r0] - bl ClearWindowTilemap - ldr r0, [r5] - adds r0, r0, r4 - ldrb r0, [r0] - bl RemoveWindow - movs r0, #0x1e - str r0, [sp] - movs r0, #0x14 - str r0, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, #0 - bl CopyBgTilemapBufferToVram - ldr r0, [r5] - movs r1, #0xc0 - lsls r1, r1, #6 - adds r0, r0, r1 - movs r1, #1 - str r1, [r0] - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0802A274: .4byte gUnknown_20229AC -_0802A278: .4byte 0x00003008 - thumb_func_end sub_0802A228 - - thumb_func_start sub_0802A27C -sub_0802A27C: @ 0x0802A27C - push {r4, r5, r6, r7, lr} - sub sp, #0xc - ldr r0, _0802A29C - ldr r1, [r0] - ldr r7, _0802A2A0 - adds r2, r1, r7 - ldrb r5, [r2] - adds r6, r0, #0 - cmp r5, #1 - beq _0802A304 - cmp r5, #1 - bgt _0802A2A4 - cmp r5, #0 - beq _0802A2AE - b _0802A398 - .align 2, 0 -_0802A29C: .4byte gUnknown_20229AC -_0802A2A0: .4byte 0x00003014 -_0802A2A4: - cmp r5, #2 - beq _0802A34C - cmp r5, #3 - beq _0802A378 - b _0802A398 -_0802A2AE: - ldr r4, _0802A2F4 - adds r0, r4, #0 - bl AddWindow - ldr r1, [r6] - ldr r2, _0802A2F8 - adds r1, r1, r2 - strb r0, [r1] - ldr r0, [r6] - adds r0, r0, r2 - ldrb r0, [r0] - bl ClearWindowTilemap - adds r0, r4, #0 - bl sub_08028EA0 - ldr r1, [r6] - adds r1, r1, r7 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r0, [r6] - ldr r2, _0802A2FC - adds r1, r0, r2 - movs r2, #0 - strh r5, [r1] - ldr r1, _0802A300 - adds r0, r0, r1 - strb r2, [r0] - ldr r0, [r6] - adds r1, #4 - adds r0, r0, r1 - strb r2, [r0] - b _0802A3DE - .align 2, 0 -_0802A2F4: .4byte gUnknown_82CB470 -_0802A2F8: .4byte 0x00003008 -_0802A2FC: .4byte 0x0000301C -_0802A300: .4byte 0x00003020 -_0802A304: - ldr r4, _0802A340 - adds r0, r1, r4 - ldrb r0, [r0] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r0, [r6] - adds r0, r0, r4 - ldrb r0, [r0] - ldr r2, _0802A344 - movs r1, #6 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - movs r3, #2 - bl AddTextPrinterParameterized - ldr r0, [r6] - adds r0, r0, r4 - ldrb r0, [r0] - movs r1, #2 - bl CopyWindowToVram - ldr r1, [r6] - ldr r2, _0802A348 - adds r1, r1, r2 - b _0802A36C - .align 2, 0 -_0802A340: .4byte 0x00003008 -_0802A344: .4byte gUnknown_85CCDCB -_0802A348: .4byte 0x00003014 -_0802A34C: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802A362 - ldr r0, [r6] - ldr r1, _0802A374 - adds r0, r0, r1 - ldrb r0, [r0] - bl PutWindowTilemap -_0802A362: - movs r0, #0 - bl CopyBgTilemapBufferToVram - ldr r1, [r6] - adds r1, r1, r7 -_0802A36C: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0802A3DE - .align 2, 0 -_0802A374: .4byte 0x00003008 -_0802A378: - ldr r0, _0802A394 - adds r1, r1, r0 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x77 - bls _0802A3DE - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - b _0802A3DE - .align 2, 0 -_0802A394: .4byte 0x0000301C -_0802A398: - ldr r0, [r6] - ldr r1, _0802A3E8 - adds r0, r0, r1 - movs r1, #5 - strb r1, [r0] - ldr r0, [r6] - ldr r4, _0802A3EC - adds r0, r0, r4 - ldrb r0, [r0] - bl ClearWindowTilemap - ldr r0, [r6] - adds r0, r0, r4 - ldrb r0, [r0] - bl RemoveWindow - movs r0, #0x1e - str r0, [sp] - movs r0, #0x14 - str r0, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, #0 - bl CopyBgTilemapBufferToVram - ldr r0, [r6] - movs r2, #0xc0 - lsls r2, r2, #6 - adds r0, r0, r2 - movs r1, #1 - str r1, [r0] -_0802A3DE: - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0802A3E8: .4byte 0x00003024 -_0802A3EC: .4byte 0x00003008 - thumb_func_end sub_0802A27C - - thumb_func_start sub_0802A3F0 -sub_0802A3F0: @ 0x0802A3F0 - push {r4, lr} - ldr r4, _0802A414 - ldr r0, [r4] - ldr r1, _0802A418 - adds r0, r0, r1 - ldrb r0, [r0] - bl DestroyTask - ldr r0, [r4] - movs r1, #0xc0 - lsls r1, r1, #6 - adds r0, r0, r1 - movs r1, #1 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802A414: .4byte gUnknown_20229AC -_0802A418: .4byte 0x00003004 - thumb_func_end sub_0802A3F0 - - thumb_func_start sub_0802A41C -sub_0802A41C: @ 0x0802A41C - bx lr - .align 2, 0 - thumb_func_end sub_0802A41C - - thumb_func_start sub_0802A420 -sub_0802A420: @ 0x0802A420 - push {r4, lr} - ldr r2, _0802A444 - ldr r1, [r2] - ldr r3, _0802A448 - adds r1, r1, r3 - movs r3, #0 - strb r3, [r1] - ldr r1, [r2] - movs r4, #0xc0 - lsls r4, r4, #6 - adds r2, r1, r4 - str r3, [r2] - ldr r2, _0802A44C - adds r1, r1, r2 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802A444: .4byte gUnknown_20229AC -_0802A448: .4byte 0x00003014 -_0802A44C: .4byte 0x00003028 - thumb_func_end sub_0802A420 - - thumb_func_start sub_0802A450 -sub_0802A450: @ 0x0802A450 - ldr r0, _0802A45C - ldr r0, [r0] - ldr r1, _0802A460 - adds r0, r0, r1 - ldr r0, [r0] - bx lr - .align 2, 0 -_0802A45C: .4byte gUnknown_20229AC -_0802A460: .4byte 0x00003028 - thumb_func_end sub_0802A450 - - thumb_func_start sub_0802A464 -sub_0802A464: @ 0x0802A464 - push {lr} - ldr r0, _0802A47C - ldr r0, [r0] - movs r1, #0xc0 - lsls r1, r1, #6 - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #1 - beq _0802A480 - movs r0, #1 - b _0802A482 - .align 2, 0 -_0802A47C: .4byte gUnknown_20229AC -_0802A480: - movs r0, #0 -_0802A482: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0802A464 - - thumb_func_start sub_0802A488 -sub_0802A488: @ 0x0802A488 - ldr r0, _0802A494 - ldr r0, [r0] - ldr r1, _0802A498 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0802A494: .4byte gUnknown_20229AC -_0802A498: .4byte 0x00003024 - thumb_func_end sub_0802A488 - - thumb_func_start sub_0802A49C -sub_0802A49C: @ 0x0802A49C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - movs r3, #0xc0 - lsls r3, r3, #0x13 - movs r4, #0xc0 - lsls r4, r4, #9 - add r0, sp, #4 - mov r8, r0 - mov r2, sp - movs r6, #0 - ldr r1, _0802A5CC - movs r5, #0x80 - lsls r5, r5, #5 - ldr r7, _0802A5D0 - movs r0, #0x81 - lsls r0, r0, #0x18 - mov ip, r0 -_0802A4C2: - strh r6, [r2] - mov r0, sp - str r0, [r1] - str r3, [r1, #4] - str r7, [r1, #8] - ldr r0, [r1, #8] - adds r3, r3, r5 - subs r4, r4, r5 - cmp r4, r5 - bhi _0802A4C2 - strh r6, [r2] - mov r2, sp - str r2, [r1] - str r3, [r1, #4] - lsrs r0, r4, #1 - mov r2, ip - orrs r0, r2 - str r0, [r1, #8] - ldr r0, [r1, #8] - movs r0, #0xe0 - lsls r0, r0, #0x13 - movs r3, #0x80 - lsls r3, r3, #3 - movs r4, #0 - str r4, [sp, #4] - ldr r2, _0802A5CC - mov r1, r8 - str r1, [r2] - str r0, [r2, #4] - lsrs r0, r3, #2 - movs r1, #0x85 - lsls r1, r1, #0x18 - orrs r0, r1 - str r0, [r2, #8] - ldr r0, [r2, #8] - movs r1, #0xa0 - lsls r1, r1, #0x13 - mov r0, sp - strh r4, [r0] - str r0, [r2] - str r1, [r2, #4] - lsrs r3, r3, #1 - movs r0, #0x81 - lsls r0, r0, #0x18 - orrs r3, r0 - str r3, [r2, #8] - ldr r0, [r2, #8] - movs r0, #0 - movs r1, #0 - bl SetGpuReg - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _0802A5D4 - movs r0, #0 - movs r2, #4 - bl InitBgsFromTemplates - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - bl InitStandardTextBoxWindows - bl sub_08196DF4 - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - ldr r4, _0802A5D8 - ldr r1, [r4] - movs r0, #3 - bl SetBgTilemapBuffer - ldr r1, [r4] - movs r2, #0x80 - lsls r2, r2, #5 - adds r1, r1, r2 - movs r0, #1 - bl SetBgTilemapBuffer - ldr r1, [r4] - movs r0, #0x80 - lsls r0, r0, #6 - adds r1, r1, r0 - movs r0, #2 - bl SetBgTilemapBuffer - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0802A5CC: .4byte 0x040000D4 -_0802A5D0: .4byte 0x81000800 -_0802A5D4: .4byte gUnknown_82CB430 -_0802A5D8: .4byte gUnknown_20229AC - thumb_func_end sub_0802A49C - - thumb_func_start sub_0802A5DC -sub_0802A5DC: @ 0x0802A5DC - push {lr} - sub sp, #4 - ldr r0, _0802A5F8 - ldr r0, [r0] - ldr r2, _0802A5FC - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, #5 - bhi _0802A676 - lsls r0, r0, #2 - ldr r1, _0802A600 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802A5F8: .4byte gUnknown_20229AC -_0802A5FC: .4byte 0x00003018 -_0802A600: .4byte _0802A604 -_0802A604: @ jump table - .4byte _0802A61C @ case 0 - .4byte _0802A62C @ case 1 - .4byte _0802A632 @ case 2 - .4byte _0802A640 @ case 3 - .4byte _0802A658 @ case 4 - .4byte _0802A666 @ case 5 -_0802A61C: - ldr r0, _0802A628 - movs r1, #0 - movs r2, #0x40 - bl LoadPalette - b _0802A67E - .align 2, 0 -_0802A628: .4byte gUnknown_82CB67C -_0802A62C: - bl reset_temp_tile_data_buffers - b _0802A67E -_0802A632: - ldr r1, _0802A63C - movs r0, #0 - str r0, [sp] - movs r0, #3 - b _0802A648 - .align 2, 0 -_0802A63C: .4byte gUnknown_82CB910 -_0802A640: - ldr r1, _0802A654 - movs r0, #0 - str r0, [sp] - movs r0, #1 -_0802A648: - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - b _0802A67E - .align 2, 0 -_0802A654: .4byte gUnknown_82CC1A0 -_0802A658: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0802A67E - b _0802A68C -_0802A666: - movs r0, #3 - bl stdpal_get - movs r1, #0xd0 - movs r2, #0x20 - bl LoadPalette - b _0802A67E -_0802A676: - movs r0, #0 - strb r0, [r1] - movs r0, #1 - b _0802A68E -_0802A67E: - ldr r0, _0802A694 - ldr r1, [r0] - ldr r0, _0802A698 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_0802A68C: - movs r0, #0 -_0802A68E: - add sp, #4 - pop {r1} - bx r1 - .align 2, 0 -_0802A694: .4byte gUnknown_20229AC -_0802A698: .4byte 0x00003018 - thumb_func_end sub_0802A5DC - - thumb_func_start sub_0802A69C -sub_0802A69C: @ 0x0802A69C - push {r4, r5, r6, r7, lr} - adds r6, r1, #0 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - ldr r0, _0802A714 - ldrb r0, [r0] - cmp r0, #0 - beq _0802A730 - ldr r5, _0802A718 - ldr r0, _0802A71C - bl sub_08000BC8 - str r0, [r5] - cmp r0, #0 - beq _0802A730 - bl ResetTasks - ldr r0, _0802A720 - movs r1, #1 - bl CreateTask - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, [r5] - movs r1, #0 - strh r1, [r0, #8] - str r6, [r0] - strb r4, [r0, #4] - bl GetMultiplayerId - ldr r1, [r5] - strb r0, [r1, #6] - ldr r0, [r5] - ldrb r2, [r0, #6] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - ldr r2, _0802A724 - adds r1, r1, r2 - adds r0, r0, r1 - movs r1, #0x64 - muls r1, r7, r1 - ldr r2, _0802A728 - adds r1, r1, r2 - bl sub_0802A920 - ldr r0, [r5] - bl sub_0802A754 - ldr r2, [r5] - adds r0, r4, #0 - movs r1, #2 - bl SetWordTaskArg - ldr r0, _0802A72C - bl SetMainCallback2 - b _0802A736 - .align 2, 0 -_0802A714: .4byte gUnknown_30031C4 -_0802A718: .4byte gUnknown_20229B0 -_0802A71C: .4byte 0x0000839C -_0802A720: .4byte sub_0802A994 -_0802A724: .4byte 0x000082A8 -_0802A728: .4byte gUnknown_2024190 -_0802A72C: .4byte sub_0802A960 -_0802A730: - adds r0, r6, #0 - bl SetMainCallback2 -_0802A736: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_0802A69C - - thumb_func_start sub_0802A73C -sub_0802A73C: @ 0x0802A73C - push {lr} - bl sub_0802CDA0 - ldr r0, _0802A750 - ldr r0, [r0] - bl Free - pop {r0} - bx r0 - .align 2, 0 -_0802A750: .4byte gUnknown_20229B0 - thumb_func_end sub_0802A73C - - thumb_func_start sub_0802A754 -sub_0802A754: @ 0x0802A754 - push {r4, lr} - adds r4, r0, #0 - bl GetLinkPlayerCount - movs r2, #0 - strb r0, [r4, #5] - adds r1, r4, #0 - adds r1, #0x70 - movs r0, #5 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x72 - strh r2, [r0] - bl sub_0802A814 - adds r0, r4, #0 - bl sub_0802A788 - ldrb r0, [r4, #5] - cmp r0, #5 - bne _0802A782 - bl sub_0802E0A0 -_0802A782: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0802A754 - - thumb_func_start sub_0802A788 -sub_0802A788: @ 0x0802A788 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #6 - str r0, [r4, #0x14] - str r0, [r4, #0x18] - adds r0, r4, #0 - adds r0, #0x4a - movs r6, #0 - movs r5, #0 - strh r5, [r0] - str r5, [r4, #0x1c] - str r5, [r4, #0x5c] - bl GetMultiplayerId - movs r1, #0 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802A7AE - movs r1, #1 -_0802A7AE: - adds r0, r4, #0 - adds r0, #0x47 - strb r1, [r0] - strh r5, [r4, #8] - strh r5, [r4, #0xa] - strh r5, [r4, #0xc] - strh r5, [r4, #0xe] - str r5, [r4, #0x58] - strh r5, [r4, #0x3a] - subs r0, #3 - strb r6, [r0] - str r5, [r4, #0x54] - adds r0, #2 - strb r6, [r0] - adds r0, #3 - strb r6, [r0] - subs r0, #1 - movs r1, #1 - strb r1, [r0] - str r5, [r4, #0x78] - adds r0, #0x29 - strb r6, [r0] - adds r0, #3 - strh r5, [r0] - str r1, [r4, #0x60] - subs r0, #0x27 - strb r6, [r0] - str r5, [r4, #0x68] - str r5, [r4, #0x64] - str r5, [r4, #0x2c] - str r5, [r4, #0x30] - bl sub_0802A88C - bl sub_0802BDDC - movs r2, #0 - adds r5, r4, #0 - adds r5, #0x7c - movs r3, #0 - adds r1, r4, #0 - adds r1, #0x9a -_0802A800: - adds r0, r5, r2 - strb r3, [r0] - strh r3, [r1] - adds r1, #2 - adds r2, #1 - cmp r2, #4 - ble _0802A800 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_0802A788 - - thumb_func_start sub_0802A814 -sub_0802A814: @ 0x0802A814 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r7, _0802A874 - movs r6, #0 - movs r5, #0 - ldr r0, _0802A878 - mov r8, r0 - movs r4, #4 -_0802A826: - ldr r0, [r7] - adds r0, r0, r5 - ldr r1, _0802A87C - adds r0, r0, r1 - ldrh r0, [r0] - bl sub_0802A8F4 - lsls r0, r0, #0x10 - ldr r1, [r7] - adds r1, r1, r6 - asrs r0, r0, #0xe - add r0, r8 - ldrh r0, [r0, #2] - ldr r2, _0802A880 - adds r1, r1, r2 - strh r0, [r1] - adds r6, #0x24 - adds r5, #0xc - subs r4, #1 - cmp r4, #0 - bge _0802A826 - ldr r0, _0802A874 - ldr r1, [r0] - ldr r0, _0802A884 - adds r3, r1, r0 - ldrb r2, [r1, #6] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _0802A888 - adds r0, r0, r2 - adds r1, r1, r0 - str r1, [r3] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0802A874: .4byte gUnknown_20229B0 -_0802A878: .4byte gUnknown_82CECF0 -_0802A87C: .4byte 0x000082A8 -_0802A880: .4byte 0x000082F0 -_0802A884: .4byte 0x00008398 -_0802A888: .4byte 0x000082E4 - thumb_func_end sub_0802A814 - - thumb_func_start sub_0802A88C -sub_0802A88C: @ 0x0802A88C - push {r4, r5, r6, r7, lr} - movs r5, #0 - ldr r6, _0802A8DC - movs r4, #0 - movs r3, #0 -_0802A896: - ldr r2, [r6] - adds r1, r2, r3 - ldr r7, _0802A8E0 - adds r0, r1, r7 - strh r4, [r0] - adds r7, #2 - adds r0, r1, r7 - strh r4, [r0] - ldr r0, _0802A8E4 - adds r1, r1, r0 - strh r4, [r1] - ldr r1, _0802A8E8 - adds r0, r2, r1 - adds r0, r0, r3 - str r4, [r0] - subs r7, #0xc - adds r0, r2, r7 - adds r0, r0, r3 - ldr r1, _0802A8EC - str r1, [r0] - ldr r1, _0802A8F0 - adds r0, r2, r1 - adds r0, r0, r3 - str r4, [r0] - adds r2, #0x8b - adds r2, r2, r5 - movs r0, #9 - strb r0, [r2] - adds r3, #0x24 - adds r5, #1 - cmp r5, #4 - ble _0802A896 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0802A8DC: .4byte gUnknown_20229B0 -_0802A8E0: .4byte 0x000082F2 -_0802A8E4: .4byte 0x000082F6 -_0802A8E8: .4byte 0x000082E4 -_0802A8EC: .4byte 0x7FFFFFFF -_0802A8F0: .4byte 0x000082F8 - thumb_func_end sub_0802A88C - - thumb_func_start sub_0802A8F4 -sub_0802A8F4: @ 0x0802A8F4 - push {lr} - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - movs r1, #0 - ldr r2, _0802A90C -_0802A8FE: - ldrh r0, [r2] - cmp r0, r3 - bne _0802A910 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - b _0802A91C - .align 2, 0 -_0802A90C: .4byte gUnknown_82CECF0 -_0802A910: - adds r2, #4 - adds r1, #1 - cmp r1, #0x63 - bls _0802A8FE - movs r0, #1 - rsbs r0, r0, #0 -_0802A91C: - pop {r1} - bx r1 - thumb_func_end sub_0802A8F4 - - thumb_func_start sub_0802A920 -sub_0802A920: @ 0x0802A920 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - strh r0, [r5] - adds r0, r4, #0 - movs r1, #1 - bl GetMonData - str r0, [r5, #4] - adds r0, r4, #0 - movs r1, #0 - bl GetMonData - str r0, [r5, #8] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0802A920 - - thumb_func_start sub_0802A94C -sub_0802A94C: @ 0x0802A94C - push {lr} - bl TransferPlttBuffer - bl LoadOam - bl ProcessSpriteCopyRequests - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0802A94C - - thumb_func_start sub_0802A960 -sub_0802A960: @ 0x0802A960 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0802A960 - - thumb_func_start sub_0802A978 -sub_0802A978: @ 0x0802A978 - push {lr} - movs r1, #1 - bl CreateTask - ldr r2, _0802A990 - ldr r1, [r2] - movs r3, #0 - strb r0, [r1, #4] - ldr r0, [r2] - strh r3, [r0, #8] - pop {r0} - bx r0 - .align 2, 0 -_0802A990: .4byte gUnknown_20229B0 - thumb_func_end sub_0802A978 - - thumb_func_start sub_0802A994 -sub_0802A994: @ 0x0802A994 - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _0802A9B4 - ldr r0, [r1] - ldrh r0, [r0, #8] - adds r2, r1, #0 - cmp r0, #5 - bls _0802A9AA - b _0802AAFC -_0802A9AA: - lsls r0, r0, #2 - ldr r1, _0802A9B8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802A9B4: .4byte gUnknown_20229B0 -_0802A9B8: .4byte _0802A9BC -_0802A9BC: @ jump table - .4byte _0802A9D4 @ case 0 - .4byte _0802AA00 @ case 1 - .4byte _0802AA30 @ case 2 - .4byte _0802AA5C @ case 3 - .4byte _0802AA98 @ case 4 - .4byte _0802AAC4 @ case 5 -_0802A9D4: - movs r0, #0 - bl SetVBlankCallback - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r0, _0802A9F8 - movs r1, #5 - bl sub_0802BB54 - movs r0, #4 - bl FadeOutMapMusic - ldr r0, _0802A9FC - ldr r1, [r0] - b _0802AAB4 - .align 2, 0 -_0802A9F8: .4byte sub_0802BA78 -_0802A9FC: .4byte gUnknown_20229B0 -_0802AA00: - ldr r0, _0802AA28 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802AAFC - ldr r4, _0802AA2C - ldr r0, [r4] - adds r0, #0xa4 - bl sub_0802CD68 - bl LoadWirelessStatusIndicatorSpriteGfx - movs r0, #0 - movs r1, #0 - bl CreateWirelessStatusIndicatorSprite - ldr r1, [r4] - b _0802AAB4 - .align 2, 0 -_0802AA28: .4byte sub_0802BA78 -_0802AA2C: .4byte gUnknown_20229B0 -_0802AA30: - bl sub_0802CDE4 - cmp r0, #0 - bne _0802AAFC - bl IsNotWaitingForBGMStop - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0802AAFC - ldr r0, _0802AA54 - movs r1, #8 - bl FadeOutAndPlayNewMapMusic - ldr r0, _0802AA58 - ldr r1, [r0] - b _0802AAB4 - .align 2, 0 -_0802AA54: .4byte 0x0000021A -_0802AA58: .4byte gUnknown_20229B0 -_0802AA5C: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0802AAFC - movs r4, #1 - rsbs r4, r4, #0 - adds r0, r4, #0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - movs r0, #0 - str r0, [sp] - adds r0, r4, #0 - adds r1, r4, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r0, _0802AA90 - bl SetVBlankCallback - ldr r0, _0802AA94 - ldr r1, [r0] - b _0802AAB4 - .align 2, 0 -_0802AA90: .4byte sub_0802A94C -_0802AA94: .4byte gUnknown_20229B0 -_0802AA98: - bl UpdatePaletteFade - ldr r0, _0802AABC - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _0802AAFC - ldr r1, _0802AAC0 - ldr r0, [r1] - strb r2, [r0, #7] - ldr r1, [r1] -_0802AAB4: - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _0802AAFC - .align 2, 0 -_0802AABC: .4byte gUnknown_2037C74 -_0802AAC0: .4byte gUnknown_20229B0 -_0802AAC4: - ldr r0, [r2] - ldrb r1, [r0, #7] - adds r1, #1 - strb r1, [r0, #7] - ldr r1, [r2] - ldrb r0, [r1, #7] - cmp r0, #0x13 - bls _0802AAFC - adds r0, r1, #0 - adds r0, #0x47 - ldrb r0, [r0] - cmp r0, #0 - beq _0802AAEC - ldr r0, _0802AAE8 - bl sub_0802A978 - b _0802AAF2 - .align 2, 0 -_0802AAE8: .4byte sub_0802AC74 -_0802AAEC: - ldr r0, _0802AB04 - bl sub_0802A978 -_0802AAF2: - bl sub_0802BB74 - adds r0, r4, #0 - bl DestroyTask -_0802AAFC: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802AB04: .4byte sub_0802AE88 - thumb_func_end sub_0802A994 - - thumb_func_start sub_0802AB08 -sub_0802AB08: @ 0x0802AB08 - push {lr} - adds r1, r0, #0 - cmp r1, #0 - bne _0802AB28 - ldr r0, _0802AB20 - ldr r1, [r0] - ldr r0, _0802AB24 - str r0, [r1, #0x30] - movs r0, #1 - str r0, [r1, #0x2c] - b _0802AB3A - .align 2, 0 -_0802AB20: .4byte gUnknown_20229B0 -_0802AB24: .4byte 0x00001111 -_0802AB28: - ldr r0, _0802AB40 - ldr r2, [r0] - subs r1, #1 - movs r0, #1 - lsls r0, r1 - subs r0, #1 - str r0, [r2, #0x30] - movs r0, #0 - str r0, [r2, #0x2c] -_0802AB3A: - pop {r0} - bx r0 - .align 2, 0 -_0802AB40: .4byte gUnknown_20229B0 - thumb_func_end sub_0802AB08 - - thumb_func_start sub_0802AB44 -sub_0802AB44: @ 0x0802AB44 - push {r4, r5, r6, lr} - ldr r4, _0802AB90 - ldr r1, [r4] - adds r1, #0x70 - movs r2, #0 - strb r0, [r1] - ldr r0, [r4] - movs r3, #0 - strh r2, [r0, #8] - strh r2, [r0, #0xa] - adds r0, #0x48 - movs r1, #1 - strb r1, [r0] - ldr r0, [r4] - adds r0, #0x49 - strb r3, [r0] - movs r3, #1 - ldr r0, [r4] - ldrb r0, [r0, #5] - cmp r3, r0 - bge _0802AB88 - adds r6, r4, #0 - ldr r5, _0802AB94 - movs r4, #0 - movs r2, #0x24 -_0802AB76: - ldr r1, [r6] - adds r0, r1, r5 - adds r0, r0, r2 - str r4, [r0] - adds r2, #0x24 - adds r3, #1 - ldrb r1, [r1, #5] - cmp r3, r1 - blt _0802AB76 -_0802AB88: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0802AB90: .4byte gUnknown_20229B0 -_0802AB94: .4byte 0x000082FC - thumb_func_end sub_0802AB44 - - thumb_func_start sub_0802AB98 -sub_0802AB98: @ 0x0802AB98 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - movs r4, #1 - movs r0, #0 - str r0, [sp, #4] - ldr r7, _0802AC60 - ldr r0, [r7] - ldrb r0, [r0, #5] - cmp r4, r0 - bge _0802AC3C - adds r1, r7, #0 - mov sl, r1 - movs r2, #2 - add r2, sp - mov r8, r2 - ldr r3, _0802AC64 - mov sb, r3 - movs r6, #0x24 -_0802ABC4: - mov r1, sl - ldr r0, [r1] - adds r1, r0, r6 - ldr r2, _0802AC68 - adds r1, r1, r2 - ldrh r5, [r1] - add r0, sb - adds r1, r4, #0 - mov r2, sp - mov r3, r8 - bl sub_0802DF5C - cmp r0, #0 - beq _0802AC04 - ldr r2, [r7] - lsls r1, r4, #1 - adds r0, r2, #0 - adds r0, #0x90 - adds r0, r0, r1 - mov r3, r8 - ldrh r1, [r3] - strh r1, [r0] - adds r2, #0x8b - adds r2, r2, r4 - mov r0, sp - ldrb r0, [r0] - strb r0, [r2] - ldr r0, [r7] - adds r0, r0, r6 - ldr r1, _0802AC6C - adds r0, r0, r1 - strh r5, [r0] -_0802AC04: - mov r2, sl - ldr r1, [r2] - ldr r3, _0802AC70 - adds r0, r1, r3 - adds r0, r0, r6 - ldr r0, [r0] - cmp r0, #0 - beq _0802AC2A - adds r0, r1, #0 - adds r0, #0x8b - adds r0, r0, r4 - adds r1, #0x70 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bne _0802AC2A - ldr r0, [sp, #4] - adds r0, #1 - str r0, [sp, #4] -_0802AC2A: - movs r1, #0x24 - add sb, r1 - adds r6, #0x24 - adds r4, #1 - ldr r7, _0802AC60 - ldr r0, [r7] - ldrb r0, [r0, #5] - cmp r4, r0 - blt _0802ABC4 -_0802AC3C: - ldr r2, _0802AC60 - ldr r1, [r2] - ldrb r0, [r1, #5] - subs r0, #1 - ldr r3, [sp, #4] - cmp r3, r0 - bne _0802AC50 - adds r1, #0x49 - movs r0, #1 - strb r0, [r1] -_0802AC50: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0802AC60: .4byte gUnknown_20229B0 -_0802AC64: .4byte 0x00008308 -_0802AC68: .4byte 0x000082F4 -_0802AC6C: .4byte 0x000082F6 -_0802AC70: .4byte 0x000082FC - thumb_func_end sub_0802AB98 - - thumb_func_start sub_0802AC74 -sub_0802AC74: @ 0x0802AC74 - push {r4, r5, lr} - bl sub_0802AB98 - bl sub_0802C130 - ldr r0, _0802ACF0 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0x48 - ldrb r0, [r0] - cmp r0, #0 - bne _0802ACA6 - adds r0, r1, #0 - adds r0, #0x49 - ldrb r0, [r0] - cmp r0, #0 - beq _0802ACA6 - adds r0, r1, #0 - adds r0, #0x4c - ldrb r0, [r0] - bl sub_0802AB44 - movs r0, #3 - bl sub_0802AB08 -_0802ACA6: - ldr r4, _0802ACF0 - ldr r2, [r4] - adds r0, r2, #0 - adds r0, #0x48 - ldrb r5, [r0] - cmp r5, #1 - bne _0802ACE2 - ldr r1, _0802ACF4 - adds r0, #0x28 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - adds r1, r0, #0 - cmp r1, #0 - bne _0802ACE2 - ldr r0, [r4] - adds r0, #0x48 - strb r1, [r0] - ldr r1, [r4] - ldrb r2, [r1, #6] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _0802ACF8 - adds r1, r1, r2 - adds r1, r1, r0 - str r5, [r1] -_0802ACE2: - bl sub_0802BED0 - bl sub_0802ACFC - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0802ACF0: .4byte gUnknown_20229B0 -_0802ACF4: .4byte gUnknown_82CEE80 -_0802ACF8: .4byte 0x000082FC - thumb_func_end sub_0802AC74 - - thumb_func_start sub_0802ACFC -sub_0802ACFC: @ 0x0802ACFC - push {r4, lr} - ldr r4, _0802AD2C - ldr r1, [r4] - ldr r0, [r1, #0x2c] - cmp r0, #0 - bne _0802AD12 - ldr r2, _0802AD30 - adds r0, r1, r2 - adds r1, #0x70 - bl sub_0802DE30 -_0802AD12: - ldr r1, [r4] - ldr r2, [r1, #0x30] - ldr r0, _0802AD34 - cmp r2, r0 - beq _0802AD24 - ldr r0, [r1, #0x2c] - adds r0, #1 - ands r0, r2 - str r0, [r1, #0x2c] -_0802AD24: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802AD2C: .4byte gUnknown_20229B0 -_0802AD30: .4byte 0x000082E4 -_0802AD34: .4byte 0x00001111 - thumb_func_end sub_0802ACFC - - thumb_func_start sub_0802AD38 -sub_0802AD38: @ 0x0802AD38 - ldr r2, _0802AD64 - ldr r1, [r2] - adds r1, #0x70 - movs r3, #0 - strb r0, [r1] - ldr r0, [r2] - strh r3, [r0, #8] - strh r3, [r0, #0xa] - adds r0, #0x48 - movs r1, #1 - strb r1, [r0] - ldr r1, [r2] - ldrb r2, [r1, #6] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _0802AD68 - adds r1, r1, r2 - adds r1, r1, r0 - str r3, [r1] - bx lr - .align 2, 0 -_0802AD64: .4byte gUnknown_20229B0 -_0802AD68: .4byte 0x000082FC - thumb_func_end sub_0802AD38 - - thumb_func_start sub_0802AD6C -sub_0802AD6C: @ 0x0802AD6C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x10 - ldr r4, _0802ADE8 - ldr r0, [r4] - ldr r2, _0802ADEC - adds r1, r0, r2 - ldrh r1, [r1] - mov r8, r1 - ldr r3, _0802ADF0 - adds r0, r0, r3 - mov r1, sp - bl sub_0802DEB4 - cmp r0, #0 - beq _0802AE1C - ldr r2, [r4] - ldrb r0, [r2, #6] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r3, _0802ADF4 - adds r0, r2, r3 - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #1 - bne _0802ADBA - mov r0, sp - adds r1, r2, #0 - adds r1, #0x70 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - beq _0802ADBA - mov r0, sp - ldrb r0, [r0] - bl sub_0802AD38 -_0802ADBA: - ldr r3, _0802ADE8 - ldr r2, [r3] - ldr r0, [r2, #0x78] - ldr r1, [sp, #8] - cmp r0, r1 - beq _0802ADFC - str r1, [r2, #0x78] - movs r4, #1 - str r4, [r2, #0x5c] - mov r0, sp - ldrb r1, [r0, #1] - adds r0, r2, #0 - adds r0, #0x71 - strb r1, [r0] - ldr r0, [r3] - adds r1, r0, #0 - adds r1, #0x71 - ldrb r1, [r1] - cmp r1, #0 - beq _0802ADF8 - adds r0, #0x4d - strb r4, [r0] - b _0802ADFC - .align 2, 0 -_0802ADE8: .4byte gUnknown_20229B0 -_0802ADEC: .4byte 0x000082F4 -_0802ADF0: .4byte 0x000082E4 -_0802ADF4: .4byte 0x000082FC -_0802ADF8: - adds r0, #0x4d - strb r1, [r0] -_0802ADFC: - ldr r0, _0802AE78 - ldr r1, [r0] - mov r0, sp - ldrh r0, [r0, #2] - adds r2, r1, #0 - adds r2, #0x72 - strh r0, [r2] - mov r0, sp - ldrh r2, [r0, #4] - adds r0, r1, #0 - adds r0, #0x74 - strh r2, [r0] - ldr r0, _0802AE7C - adds r1, r1, r0 - mov r2, r8 - strh r2, [r1] -_0802AE1C: - movs r4, #1 - ldr r2, _0802AE78 - ldr r0, [r2] - ldrb r0, [r0, #5] - cmp r4, r0 - bge _0802AE6A - adds r7, r2, #0 - ldr r6, _0802AE80 - movs r5, #0x24 -_0802AE2E: - ldr r1, [r7] - ldrb r3, [r1, #6] - cmp r4, r3 - beq _0802AE5C - adds r0, r1, r5 - ldr r3, _0802AE84 - adds r0, r0, r3 - ldrh r0, [r0] - mov r8, r0 - adds r0, r1, r6 - adds r1, r4, #0 - str r2, [sp, #0xc] - bl sub_0802DFC8 - ldr r2, [sp, #0xc] - cmp r0, #0 - beq _0802AE5C - ldr r0, [r7] - adds r0, r0, r5 - ldr r1, _0802AE7C - adds r0, r0, r1 - mov r3, r8 - strh r3, [r0] -_0802AE5C: - adds r6, #0x24 - adds r5, #0x24 - adds r4, #1 - ldr r0, [r2] - ldrb r0, [r0, #5] - cmp r4, r0 - blt _0802AE2E -_0802AE6A: - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0802AE78: .4byte gUnknown_20229B0 -_0802AE7C: .4byte 0x000082F6 -_0802AE80: .4byte 0x00008308 -_0802AE84: .4byte 0x000082F4 - thumb_func_end sub_0802AD6C - - thumb_func_start sub_0802AE88 -sub_0802AE88: @ 0x0802AE88 - push {r4, lr} - bl sub_0802AD6C - ldr r4, _0802AEE4 - ldr r2, [r4] - adds r0, r2, #0 - adds r0, #0x48 - ldrb r0, [r0] - cmp r0, #0 - beq _0802AED4 - ldr r1, _0802AEE8 - adds r0, r2, #0 - adds r0, #0x70 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - adds r1, r0, #0 - cmp r1, #0 - bne _0802AED4 - ldr r0, [r4] - adds r0, #0x48 - strb r1, [r0] - ldr r1, [r4] - ldrb r2, [r1, #6] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _0802AEEC - adds r1, r1, r2 - adds r1, r1, r0 - movs r0, #1 - str r0, [r1] - movs r0, #3 - bl sub_0802AB08 -_0802AED4: - bl sub_0802BED0 - bl sub_0802AEF0 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802AEE4: .4byte gUnknown_20229B0 -_0802AEE8: .4byte gUnknown_82CEEA4 -_0802AEEC: .4byte 0x000082FC - thumb_func_end sub_0802AE88 - - thumb_func_start sub_0802AEF0 -sub_0802AEF0: @ 0x0802AEF0 - push {r4, lr} - ldr r4, _0802AF30 - ldr r2, [r4] - ldr r0, [r2, #0x2c] - cmp r0, #0 - bne _0802AF18 - ldrb r1, [r2, #6] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0802AF34 - adds r0, r0, r1 - adds r0, r2, r0 - adds r1, r2, #0 - adds r1, #0x70 - ldrb r1, [r1] - adds r2, #0x42 - ldrh r2, [r2] - bl sub_0802DF2C -_0802AF18: - ldr r1, [r4] - ldr r2, [r1, #0x30] - ldr r0, _0802AF38 - cmp r2, r0 - beq _0802AF2A - ldr r0, [r1, #0x2c] - adds r0, #1 - ands r0, r2 - str r0, [r1, #0x2c] -_0802AF2A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802AF30: .4byte gUnknown_20229B0 -_0802AF34: .4byte 0x000082E4 -_0802AF38: .4byte 0x00001111 - thumb_func_end sub_0802AEF0 - - thumb_func_start sub_0802AF3C -sub_0802AF3C: @ 0x0802AF3C - push {r4, lr} - ldr r4, _0802AF50 - ldr r0, [r4] - ldrh r0, [r0, #8] - cmp r0, #0 - beq _0802AF54 - cmp r0, #1 - beq _0802AF62 - b _0802AF88 - .align 2, 0 -_0802AF50: .4byte gUnknown_20229B0 -_0802AF54: - movs r0, #3 - bl sub_0802AB08 - ldr r1, [r4] - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] -_0802AF62: - bl sub_0802B4D4 - cmp r0, #0 - bne _0802AF88 - ldr r0, _0802AF84 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0x4a - ldrh r0, [r0] - adds r2, r1, #0 - adds r2, #0x72 - strh r0, [r2] - adds r1, #0x4c - movs r0, #1 - strb r0, [r1] - movs r0, #0 - b _0802AF8A - .align 2, 0 -_0802AF84: .4byte gUnknown_20229B0 -_0802AF88: - movs r0, #1 -_0802AF8A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0802AF3C - - thumb_func_start sub_0802AF90 -sub_0802AF90: @ 0x0802AF90 - push {r4, lr} - ldr r4, _0802AFA4 - ldr r0, [r4] - ldrh r0, [r0, #8] - cmp r0, #0 - beq _0802AFA8 - cmp r0, #1 - beq _0802AFBE - movs r0, #1 - b _0802AFC2 - .align 2, 0 -_0802AFA4: .4byte gUnknown_20229B0 -_0802AFA8: - movs r0, #0 - bl sub_0802AB08 - ldr r1, [r4] - adds r0, r1, #0 - adds r0, #0x72 - ldrh r0, [r0] - str r0, [r1, #0x24] - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] -_0802AFBE: - bl sub_0802B4D4 -_0802AFC2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0802AF90 - - thumb_func_start sub_0802AFC8 -sub_0802AFC8: @ 0x0802AFC8 - push {r4, lr} - ldr r4, _0802AFDC - ldr r1, [r4] - ldrh r0, [r1, #8] - cmp r0, #0 - beq _0802AFE0 - cmp r0, #1 - beq _0802AFF4 - b _0802B008 - .align 2, 0 -_0802AFDC: .4byte gUnknown_20229B0 -_0802AFE0: - bl sub_0802BDDC - movs r0, #5 - bl sub_0802AB08 - ldr r1, [r4] - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _0802B008 -_0802AFF4: - adds r0, r1, #0 - adds r0, #0x49 - ldrb r0, [r0] - cmp r0, #0 - beq _0802B008 - adds r1, #0x4c - movs r0, #2 - strb r0, [r1] - movs r0, #0 - b _0802B00A -_0802B008: - movs r0, #1 -_0802B00A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0802AFC8 - - thumb_func_start sub_0802B010 -sub_0802B010: @ 0x0802B010 - push {r4, lr} - ldr r4, _0802B024 - ldr r0, [r4] - ldrh r0, [r0, #8] - cmp r0, #0 - beq _0802B028 - cmp r0, #1 - beq _0802B046 - b _0802B052 - .align 2, 0 -_0802B024: .4byte gUnknown_20229B0 -_0802B028: - bl sub_0802BDDC - movs r0, #0 - bl sub_0802AB08 - ldr r1, [r4] - adds r0, r1, #0 - adds r0, #0x72 - ldrh r0, [r0] - adds r2, r1, #0 - adds r2, #0x4a - strh r0, [r2] - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] -_0802B046: - bl sub_0802C400 - cmp r0, #0 - beq _0802B052 - movs r0, #0 - b _0802B054 -_0802B052: - movs r0, #1 -_0802B054: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0802B010 - - thumb_func_start sub_0802B05C -sub_0802B05C: @ 0x0802B05C - push {lr} - bl sub_0802B5C0 - cmp r0, #0 - bne _0802B084 - ldr r0, _0802B080 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0x4a - ldrh r0, [r0] - adds r2, r1, #0 - adds r2, #0x72 - strh r0, [r2] - adds r1, #0x4c - movs r0, #1 - strb r0, [r1] - b _0802B09E - .align 2, 0 -_0802B080: .4byte gUnknown_20229B0 -_0802B084: - bl sub_0802C22C - cmp r0, #0 - beq _0802B090 - movs r0, #1 - b _0802B0A0 -_0802B090: - bl sub_0802BDAC - ldr r0, _0802B0A4 - ldr r0, [r0] - adds r0, #0x4c - movs r1, #3 - strb r1, [r0] -_0802B09E: - movs r0, #0 -_0802B0A0: - pop {r1} - bx r1 - .align 2, 0 -_0802B0A4: .4byte gUnknown_20229B0 - thumb_func_end sub_0802B05C - - thumb_func_start sub_0802B0A8 -sub_0802B0A8: @ 0x0802B0A8 - push {lr} - bl sub_0802B5C0 - cmp r0, #0 - beq _0802B0C2 - bl sub_0802C22C - cmp r0, #0 - beq _0802B0BE - movs r0, #1 - b _0802B0C4 -_0802B0BE: - bl sub_0802BDAC -_0802B0C2: - movs r0, #0 -_0802B0C4: - pop {r1} - bx r1 - thumb_func_end sub_0802B0A8 - - thumb_func_start sub_0802B0C8 -sub_0802B0C8: @ 0x0802B0C8 - push {r4, lr} - ldr r4, _0802B0E0 - ldr r0, [r4] - ldrh r0, [r0, #8] - cmp r0, #1 - beq _0802B100 - cmp r0, #1 - bgt _0802B0E4 - cmp r0, #0 - beq _0802B0EA - b _0802B15C - .align 2, 0 -_0802B0E0: .4byte gUnknown_20229B0 -_0802B0E4: - cmp r0, #2 - beq _0802B154 - b _0802B15C -_0802B0EA: - bl sub_0802C22C - bl sub_0802C2D0 - cmp r0, #0 - beq _0802B15C - ldr r1, [r4] - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _0802B15C -_0802B100: - bl sub_0802B658 - cmp r0, #0 - bne _0802B15C - bl sub_0802C4B0 - cmp r0, #0 - beq _0802B122 - bl sub_0802C4D4 - ldr r1, [r4] - adds r2, r1, #0 - adds r2, #0x72 - strh r0, [r2] - adds r1, #0x4c - movs r0, #7 - b _0802B148 -_0802B122: - ldr r1, [r4] - adds r0, r1, #0 - adds r0, #0x74 - ldrh r0, [r0] - cmp r0, #0xc7 - bls _0802B13C - ldrh r0, [r1, #0xe] - adds r2, r1, #0 - adds r2, #0x72 - strh r0, [r2] - adds r1, #0x4c - movs r0, #8 - b _0802B148 -_0802B13C: - ldrh r0, [r1, #0xe] - adds r2, r1, #0 - adds r2, #0x72 - strh r0, [r2] - adds r1, #0x4c - movs r0, #4 -_0802B148: - strb r0, [r1] - ldr r0, _0802B158 - ldr r1, [r0] - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] -_0802B154: - movs r0, #0 - b _0802B15E - .align 2, 0 -_0802B158: .4byte gUnknown_20229B0 -_0802B15C: - movs r0, #1 -_0802B15E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0802B0C8 - - thumb_func_start sub_0802B164 -sub_0802B164: @ 0x0802B164 - push {r4, lr} - ldr r4, _0802B17C - ldr r0, [r4] - ldrh r0, [r0, #8] - cmp r0, #1 - beq _0802B1A4 - cmp r0, #1 - bgt _0802B180 - cmp r0, #0 - beq _0802B186 - b _0802B1B8 - .align 2, 0 -_0802B17C: .4byte gUnknown_20229B0 -_0802B180: - cmp r0, #2 - beq _0802B1B4 - b _0802B1B8 -_0802B186: - bl sub_0802C22C - cmp r0, #0 - bne _0802B192 - bl sub_0802BDAC -_0802B192: - bl sub_0802C2D0 - cmp r0, #0 - beq _0802B1B8 - ldr r1, [r4] - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _0802B1B8 -_0802B1A4: - bl sub_0802B658 - cmp r0, #0 - bne _0802B1B8 - ldr r1, [r4] - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] -_0802B1B4: - movs r0, #0 - b _0802B1BA -_0802B1B8: - movs r0, #1 -_0802B1BA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0802B164 - - thumb_func_start sub_0802B1C0 -sub_0802B1C0: @ 0x0802B1C0 - push {r4, lr} - ldr r4, _0802B1D8 - ldr r0, [r4] - ldrh r1, [r0, #8] - cmp r1, #1 - beq _0802B1F4 - cmp r1, #1 - bgt _0802B1DC - cmp r1, #0 - beq _0802B1E6 - b _0802B254 - .align 2, 0 -_0802B1D8: .4byte gUnknown_20229B0 -_0802B1DC: - cmp r1, #2 - beq _0802B220 - cmp r1, #3 - beq _0802B24A - b _0802B254 -_0802B1E6: - movs r0, #4 - bl sub_0802AB08 - ldr r1, [r4] - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] -_0802B1F4: - bl sub_0802B878 - cmp r0, #0 - bne _0802B254 - ldr r4, _0802B21C - ldr r2, [r4] - ldr r0, [r2, #0x78] - adds r1, r2, #0 - adds r1, #0x74 - ldrh r1, [r1] - adds r2, #0x72 - ldrh r2, [r2] - bl sub_0802E04C - ldr r1, [r4] - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _0802B254 - .align 2, 0 -_0802B21C: .4byte gUnknown_20229B0 -_0802B220: - adds r0, #0x49 - ldrb r0, [r0] - cmp r0, #0 - beq _0802B254 - bl sub_0802C344 - cmp r0, #0 - beq _0802B238 - ldr r0, [r4] - adds r0, #0x4c - movs r1, #5 - b _0802B23E -_0802B238: - ldr r0, [r4] - adds r0, #0x4c - movs r1, #6 -_0802B23E: - strb r1, [r0] - ldr r0, _0802B250 - ldr r1, [r0] - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] -_0802B24A: - movs r0, #0 - b _0802B256 - .align 2, 0 -_0802B250: .4byte gUnknown_20229B0 -_0802B254: - movs r0, #1 -_0802B256: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0802B1C0 - - thumb_func_start sub_0802B25C -sub_0802B25C: @ 0x0802B25C - push {r4, lr} - ldr r4, _0802B270 - ldr r0, [r4] - ldrh r0, [r0, #8] - cmp r0, #0 - beq _0802B274 - cmp r0, #1 - beq _0802B282 - b _0802B2B4 - .align 2, 0 -_0802B270: .4byte gUnknown_20229B0 -_0802B274: - movs r0, #0 - bl sub_0802AB08 - ldr r1, [r4] - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] -_0802B282: - bl sub_0802B878 - cmp r0, #0 - bne _0802B2B4 - ldr r4, _0802B2B0 - ldr r2, [r4] - ldr r0, [r2, #0x78] - adds r1, r2, #0 - adds r1, #0x74 - ldrh r1, [r1] - adds r2, #0x72 - ldrh r2, [r2] - bl sub_0802E04C - ldr r0, [r4] - adds r1, r0, #0 - adds r1, #0x45 - ldrb r1, [r1] - adds r0, #0x42 - strh r1, [r0] - movs r0, #0 - b _0802B2B6 - .align 2, 0 -_0802B2B0: .4byte gUnknown_20229B0 -_0802B2B4: - movs r0, #1 -_0802B2B6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0802B25C - - thumb_func_start sub_0802B2BC -sub_0802B2BC: @ 0x0802B2BC - push {r4, lr} - ldr r4, _0802B2D0 - ldr r1, [r4] - ldrh r0, [r1, #8] - cmp r0, #0 - beq _0802B2D4 - cmp r0, #1 - beq _0802B2E6 - b _0802B312 - .align 2, 0 -_0802B2D0: .4byte gUnknown_20229B0 -_0802B2D4: - bl sub_0802BA24 - cmp r0, #0 - bne _0802B312 - ldr r1, [r4] - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _0802B312 -_0802B2E6: - adds r0, r1, #0 - adds r0, #0x49 - ldrb r0, [r0] - cmp r0, #0 - beq _0802B312 - adds r0, r1, #0 - bl sub_0802A788 - bl Random - ldr r1, [r4] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [r1, #0x24] - adds r3, r1, #0 - adds r3, #0x72 - movs r2, #0 - strh r0, [r3] - adds r1, #0x4c - strb r2, [r1] - movs r0, #0 - b _0802B314 -_0802B312: - movs r0, #1 -_0802B314: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0802B2BC - - thumb_func_start sub_0802B31C -sub_0802B31C: @ 0x0802B31C - push {r4, lr} - ldr r4, _0802B330 - ldr r0, [r4] - ldrh r0, [r0, #8] - cmp r0, #0 - beq _0802B334 - cmp r0, #1 - beq _0802B34A - b _0802B34E - .align 2, 0 -_0802B330: .4byte gUnknown_20229B0 -_0802B334: - bl sub_0802BA24 - cmp r0, #0 - bne _0802B34E - ldr r0, [r4] - bl sub_0802A788 - ldr r1, [r4] - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] -_0802B34A: - movs r0, #0 - b _0802B350 -_0802B34E: - movs r0, #1 -_0802B350: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0802B31C - - thumb_func_start sub_0802B358 -sub_0802B358: @ 0x0802B358 - push {r4, lr} - ldr r4, _0802B370 - ldr r1, [r4] - ldrh r0, [r1, #8] - cmp r0, #1 - beq _0802B380 - cmp r0, #1 - bgt _0802B374 - cmp r0, #0 - beq _0802B37A - b _0802B3A4 - .align 2, 0 -_0802B370: .4byte gUnknown_20229B0 -_0802B374: - cmp r0, #2 - beq _0802B390 - b _0802B3A4 -_0802B37A: - movs r0, #1 - strh r0, [r1, #8] - b _0802B3A4 -_0802B380: - movs r0, #0 - bl sub_0802AB08 - ldr r1, [r4] - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _0802B3A4 -_0802B390: - bl sub_0802B954 - cmp r0, #0 - bne _0802B3A4 - ldr r0, [r4] - ldr r0, [r0] - bl SetMainCallback2 - bl sub_0802A73C -_0802B3A4: - movs r0, #1 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0802B358 - - thumb_func_start sub_0802B3AC -sub_0802B3AC: @ 0x0802B3AC - push {r4, lr} - ldr r4, _0802B3C0 - ldr r0, [r4] - ldrh r0, [r0, #8] - cmp r0, #0 - beq _0802B3C4 - cmp r0, #1 - beq _0802B3D4 - b _0802B3F0 - .align 2, 0 -_0802B3C0: .4byte gUnknown_20229B0 -_0802B3C4: - movs r0, #4 - bl sub_0802AB08 - ldr r1, [r4] - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _0802B3F0 -_0802B3D4: - bl sub_0802B74C - cmp r0, #0 - bne _0802B3F0 - ldr r0, [r4] - ldrh r1, [r0, #0xe] - adds r2, r0, #0 - adds r2, #0x72 - strh r1, [r2] - adds r0, #0x4c - movs r1, #8 - strb r1, [r0] - movs r0, #0 - b _0802B3F2 -_0802B3F0: - movs r0, #1 -_0802B3F2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0802B3AC - - thumb_func_start sub_0802B3F8 -sub_0802B3F8: @ 0x0802B3F8 - push {lr} - movs r0, #0 - bl sub_0802AB08 - bl sub_0802B74C - cmp r0, #0 - beq _0802B40C - movs r0, #1 - b _0802B40E -_0802B40C: - movs r0, #0 -_0802B40E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0802B3F8 - - thumb_func_start sub_0802B414 -sub_0802B414: @ 0x0802B414 - push {r4, lr} - ldr r1, _0802B42C - ldr r0, [r1] - ldrh r0, [r0, #8] - adds r4, r1, #0 - cmp r0, #4 - bhi _0802B4CC - lsls r0, r0, #2 - ldr r1, _0802B430 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802B42C: .4byte gUnknown_20229B0 -_0802B430: .4byte _0802B434 -_0802B434: @ jump table - .4byte _0802B448 @ case 0 - .4byte _0802B464 @ case 1 - .4byte _0802B474 @ case 2 - .4byte _0802B48C @ case 3 - .4byte _0802B4B0 @ case 4 -_0802B448: - ldr r2, [r4] - ldr r0, [r2, #0x78] - adds r1, r2, #0 - adds r1, #0x74 - ldrh r1, [r1] - adds r2, #0x72 - ldrh r2, [r2] - bl sub_0802E04C - movs r0, #5 - bl sub_0802CDBC - ldr r1, [r4] - b _0802B4A0 -_0802B464: - bl sub_0802CDE4 - cmp r0, #0 - bne _0802B4CC - movs r0, #0 - bl sub_0802AB08 - b _0802B49C -_0802B474: - bl sub_0802C400 - cmp r0, #0 - beq _0802B4CC - ldr r0, _0802B488 - movs r1, #6 - bl CreateTask - b _0802B49C - .align 2, 0 -_0802B488: .4byte sub_081535C4 -_0802B48C: - ldr r0, _0802B4A8 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802B4CC - bl sub_0802D704 -_0802B49C: - ldr r0, _0802B4AC - ldr r1, [r0] -_0802B4A0: - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _0802B4CC - .align 2, 0 -_0802B4A8: .4byte sub_081535C4 -_0802B4AC: .4byte gUnknown_20229B0 -_0802B4B0: - bl sub_0802D734 - cmp r0, #0 - bne _0802B4CC - ldr r0, _0802B4C8 - ldr r0, [r0] - adds r0, #0x4c - movs r1, #4 - strb r1, [r0] - movs r0, #0 - b _0802B4CE - .align 2, 0 -_0802B4C8: .4byte gUnknown_20229B0 -_0802B4CC: - movs r0, #1 -_0802B4CE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0802B414 - - thumb_func_start sub_0802B4D4 -sub_0802B4D4: @ 0x0802B4D4 - push {r4, r5, lr} - ldr r1, _0802B4EC - ldr r0, [r1] - ldrh r0, [r0, #0xa] - adds r4, r1, #0 - cmp r0, #7 - bhi _0802B5B8 - lsls r0, r0, #2 - ldr r1, _0802B4F0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802B4EC: .4byte gUnknown_20229B0 -_0802B4F0: .4byte _0802B4F4 -_0802B4F4: @ jump table - .4byte _0802B514 @ case 0 - .4byte _0802B520 @ case 1 - .4byte _0802B540 @ case 2 - .4byte _0802B55A @ case 3 - .4byte _0802B56C @ case 4 - .4byte _0802B574 @ case 5 - .4byte _0802B594 @ case 6 - .4byte _0802B5AE @ case 7 -_0802B514: - movs r0, #2 - bl sub_0802CDBC - bl sub_0802DAD8 - b _0802B584 -_0802B520: - bl sub_0802CDE4 - adds r5, r0, #0 - cmp r5, #0 - bne _0802B5B8 - ldr r4, _0802B53C - ldr r0, [r4] - ldrb r0, [r0, #6] - bl sub_0802DAEC - ldr r1, [r4] - strh r5, [r1, #0x3c] - b _0802B588 - .align 2, 0 -_0802B53C: .4byte gUnknown_20229B0 -_0802B540: - ldr r1, [r4] - ldrh r0, [r1, #0x3c] - adds r0, #1 - strh r0, [r1, #0x3c] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x78 - bls _0802B5B8 - movs r0, #3 - bl sub_0802CDBC - ldr r1, [r4] - b _0802B588 -_0802B55A: - bl sub_0802CDE4 - cmp r0, #1 - beq _0802B5B8 - bl sub_0802DB00 - cmp r0, #1 - beq _0802B5B8 - b _0802B584 -_0802B56C: - movs r0, #9 - bl sub_0802CDBC - b _0802B584 -_0802B574: - bl sub_0802CDE4 - cmp r0, #0 - bne _0802B5B8 - bl sub_0802BF54 - bl sub_0802D458 -_0802B584: - ldr r0, _0802B590 - ldr r1, [r0] -_0802B588: - ldrh r0, [r1, #0xa] - adds r0, #1 - strh r0, [r1, #0xa] - b _0802B5B8 - .align 2, 0 -_0802B590: .4byte gUnknown_20229B0 -_0802B594: - bl sub_0802D47C - cmp r0, #0 - bne _0802B5B8 - bl sub_0802BF64 - bl sub_0802BB94 - ldr r0, _0802B5B4 - ldr r1, [r0] - ldrh r0, [r1, #0xa] - adds r0, #1 - strh r0, [r1, #0xa] -_0802B5AE: - movs r0, #0 - b _0802B5BA - .align 2, 0 -_0802B5B4: .4byte gUnknown_20229B0 -_0802B5B8: - movs r0, #1 -_0802B5BA: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_0802B4D4 - - thumb_func_start sub_0802B5C0 -sub_0802B5C0: @ 0x0802B5C0 - push {r4, r5, lr} - bl sub_0802BBD8 - ldr r5, _0802B5D8 - ldr r1, [r5] - ldrh r4, [r1, #0x36] - cmp r4, #0 - beq _0802B5DC - movs r0, #0 - strh r0, [r1, #0x36] - b _0802B650 - .align 2, 0 -_0802B5D8: .4byte gUnknown_20229B0 -_0802B5DC: - ldrh r0, [r1, #0xa] - cmp r0, #1 - beq _0802B608 - cmp r0, #1 - bgt _0802B5EC - cmp r0, #0 - beq _0802B5F6 - b _0802B64E -_0802B5EC: - cmp r0, #2 - beq _0802B62C - cmp r0, #3 - beq _0802B640 - b _0802B64E -_0802B5F6: - movs r0, #0 - bl sub_0802BE24 - cmp r0, #0 - beq _0802B64E - ldr r1, [r5] - ldrh r0, [r1, #0xa] - adds r0, #1 - strh r0, [r1, #0xa] -_0802B608: - ldr r0, _0802B624 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0802B64E - bl sub_0802BE58 - movs r0, #3 - bl sub_0802AB08 - ldr r0, _0802B628 - ldr r1, [r0] - b _0802B638 - .align 2, 0 -_0802B624: .4byte gUnknown_3002360 -_0802B628: .4byte gUnknown_20229B0 -_0802B62C: - movs r0, #1 - bl sub_0802BE24 - cmp r0, #1 - bne _0802B64E - ldr r1, [r5] -_0802B638: - ldrh r0, [r1, #0xa] - adds r0, #1 - strh r0, [r1, #0xa] - b _0802B64E -_0802B640: - movs r0, #0 - bl sub_0802BE24 - cmp r0, #1 - bne _0802B64E - ldr r0, [r5] - strh r4, [r0, #0xa] -_0802B64E: - movs r0, #1 -_0802B650: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0802B5C0 - - thumb_func_start sub_0802B658 -sub_0802B658: @ 0x0802B658 - push {r4, r5, r6, lr} - ldr r1, _0802B670 - ldr r0, [r1] - ldrh r0, [r0, #0xa] - adds r5, r1, #0 - cmp r0, #4 - bhi _0802B744 - lsls r0, r0, #2 - ldr r1, _0802B674 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802B670: .4byte gUnknown_20229B0 -_0802B674: .4byte _0802B678 -_0802B678: @ jump table - .4byte _0802B68C @ case 0 - .4byte _0802B6B0 @ case 1 - .4byte _0802B6F4 @ case 2 - .4byte _0802B718 @ case 3 - .4byte _0802B73A @ case 4 -_0802B68C: - movs r4, #0 - ldr r0, [r5] - ldrb r0, [r0, #5] - cmp r4, r0 - bge _0802B6AC - adds r6, r5, #0 -_0802B698: - adds r0, r4, #0 - bl sub_0802DAB0 - cmp r0, #1 - beq _0802B744 - adds r4, #1 - ldr r0, [r6] - ldrb r0, [r0, #5] - cmp r4, r0 - blt _0802B698 -_0802B6AC: - ldr r1, [r5] - b _0802B710 -_0802B6B0: - movs r4, #0 - ldr r0, [r5] - ldrb r0, [r0, #5] - cmp r4, r0 - bge _0802B6E0 - adds r6, r5, #0 - movs r5, #0 -_0802B6BE: - ldr r0, [r6] - adds r0, r0, r5 - ldr r1, _0802B6EC - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #2 - bne _0802B6D4 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl sub_0802DA98 -_0802B6D4: - adds r5, #0x24 - adds r4, #1 - ldr r0, [r6] - ldrb r0, [r0, #5] - cmp r4, r0 - blt _0802B6BE -_0802B6E0: - movs r0, #1 - bl sub_0802CDBC - ldr r0, _0802B6F0 - ldr r1, [r0] - b _0802B70C - .align 2, 0 -_0802B6EC: .4byte 0x000082F4 -_0802B6F0: .4byte gUnknown_20229B0 -_0802B6F4: - ldr r1, [r5] - ldrh r0, [r1, #0x3c] - adds r0, #1 - strh r0, [r1, #0x3c] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x64 - bls _0802B744 - movs r0, #3 - bl sub_0802CDBC - ldr r1, [r5] -_0802B70C: - movs r0, #0 - strh r0, [r1, #0x3c] -_0802B710: - ldrh r0, [r1, #0xa] - adds r0, #1 - strh r0, [r1, #0xa] - b _0802B744 -_0802B718: - bl sub_0802CDE4 - adds r5, r0, #0 - cmp r5, #0 - bne _0802B744 - bl sub_0802DAC4 - ldr r4, _0802B740 - ldr r0, [r4] - adds r0, #0x71 - strb r5, [r0] - bl sub_0802BE08 - ldr r1, [r4] - ldrh r0, [r1, #0xa] - adds r0, #1 - strh r0, [r1, #0xa] -_0802B73A: - movs r0, #0 - b _0802B746 - .align 2, 0 -_0802B740: .4byte gUnknown_20229B0 -_0802B744: - movs r0, #1 -_0802B746: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_0802B658 - - thumb_func_start sub_0802B74C -sub_0802B74C: @ 0x0802B74C - push {r4, lr} - ldr r1, _0802B768 - ldr r0, [r1] - ldrh r0, [r0, #0xa] - adds r4, r1, #0 - cmp r0, #6 - bls _0802B75C - b _0802B870 -_0802B75C: - lsls r0, r0, #2 - ldr r1, _0802B76C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802B768: .4byte gUnknown_20229B0 -_0802B76C: .4byte _0802B770 -_0802B770: @ jump table - .4byte _0802B78C @ case 0 - .4byte _0802B7AC @ case 1 - .4byte _0802B7C4 @ case 2 - .4byte _0802B7F4 @ case 3 - .4byte _0802B7AC @ case 4 - .4byte _0802B7C4 @ case 5 - .4byte _0802B864 @ case 6 -_0802B78C: - ldr r2, [r4] - adds r0, r2, #0 - adds r0, #0x72 - ldrh r0, [r0] - adds r1, r2, #0 - adds r1, #0x3e - adds r2, #0x40 - bl sub_0802C4FC - ldr r1, [r4] - ldrh r0, [r1, #0x3e] - adds r1, #0x40 - ldrh r1, [r1] - bl sub_0802D4DC - b _0802B7E4 -_0802B7AC: - bl sub_0802D664 - adds r2, r0, #0 - cmp r2, #0 - bne _0802B870 - ldr r0, _0802B7C0 - ldr r1, [r0] - strh r2, [r1, #0x3c] - b _0802B7E6 - .align 2, 0 -_0802B7C0: .4byte gUnknown_20229B0 -_0802B7C4: - ldr r1, [r4] - ldrh r0, [r1, #0x3c] - adds r2, r0, #1 - strh r2, [r1, #0x3c] - ldr r0, _0802B7F0 - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _0802B7E0 - lsls r0, r2, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xb4 - bls _0802B870 -_0802B7E0: - bl sub_0802D704 -_0802B7E4: - ldr r1, [r4] -_0802B7E6: - ldrh r0, [r1, #0xa] - adds r0, #1 - strh r0, [r1, #0xa] - b _0802B870 - .align 2, 0 -_0802B7F0: .4byte gUnknown_3002360 -_0802B7F4: - bl sub_0802D734 - cmp r0, #0 - bne _0802B870 - ldr r4, _0802B840 - ldr r1, [r4] - ldrh r0, [r1, #0x3e] - adds r1, #0x40 - ldrh r1, [r1] - bl sub_0802C574 - ldr r1, [r4] - adds r2, r1, #0 - adds r2, #0x40 - strh r0, [r2] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0802B84C - ldrh r0, [r1, #0x3e] - ldrh r1, [r2] - bl AddBagItem - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0802B84C - ldr r0, [r4] - ldrh r0, [r0, #0x3e] - movs r1, #1 - bl CheckBagHasSpace - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802B844 - ldr r0, [r4] - ldrh r0, [r0, #0x3e] - bl sub_0802D574 - b _0802B856 - .align 2, 0 -_0802B840: .4byte gUnknown_20229B0 -_0802B844: - ldr r1, [r4] - movs r0, #6 - strh r0, [r1, #0xa] - b _0802B870 -_0802B84C: - ldr r4, _0802B860 - ldr r0, [r4] - ldrh r0, [r0, #0x3e] - bl sub_0802D5EC -_0802B856: - ldr r1, [r4] - movs r0, #4 - strh r0, [r1, #0xa] - b _0802B870 - .align 2, 0 -_0802B860: .4byte gUnknown_20229B0 -_0802B864: - bl sub_0802D734 - cmp r0, #0 - bne _0802B870 - movs r0, #0 - b _0802B872 -_0802B870: - movs r0, #1 -_0802B872: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0802B74C - - thumb_func_start sub_0802B878 -sub_0802B878: @ 0x0802B878 - push {r4, lr} - ldr r0, _0802B890 - ldr r0, [r0] - ldrh r0, [r0, #0xa] - cmp r0, #6 - bhi _0802B94C - lsls r0, r0, #2 - ldr r1, _0802B894 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802B890: .4byte gUnknown_20229B0 -_0802B894: .4byte _0802B898 -_0802B898: @ jump table - .4byte _0802B8B4 @ case 0 - .4byte _0802B8B8 @ case 1 - .4byte _0802B8C2 @ case 2 - .4byte _0802B910 @ case 3 - .4byte _0802B91A @ case 4 - .4byte _0802B930 @ case 5 - .4byte _0802B942 @ case 6 -_0802B8B4: - movs r0, #4 - b _0802B91C -_0802B8B8: - bl sub_0802CDE4 - cmp r0, #0 - bne _0802B94C - b _0802B920 -_0802B8C2: - bl sub_0802D77C - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _0802B8F8 - cmp r1, #0 - bgt _0802B8DC - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0802B8E0 - b _0802B94C -_0802B8DC: - cmp r1, #1 - bne _0802B94C -_0802B8E0: - ldr r4, _0802B8F4 - ldr r0, [r4] - adds r0, #0x45 - movs r1, #1 - strb r1, [r0] - movs r0, #6 - bl sub_0802CDBC - ldr r1, [r4] - b _0802B924 - .align 2, 0 -_0802B8F4: .4byte gUnknown_20229B0 -_0802B8F8: - ldr r4, _0802B90C - ldr r0, [r4] - adds r0, #0x45 - movs r1, #2 - strb r1, [r0] - movs r0, #6 - bl sub_0802CDBC - ldr r1, [r4] - b _0802B924 - .align 2, 0 -_0802B90C: .4byte gUnknown_20229B0 -_0802B910: - bl sub_0802CDE4 - cmp r0, #0 - bne _0802B94C - b _0802B920 -_0802B91A: - movs r0, #8 -_0802B91C: - bl sub_0802CDBC -_0802B920: - ldr r0, _0802B92C - ldr r1, [r0] -_0802B924: - ldrh r0, [r1, #0xa] - adds r0, #1 - strh r0, [r1, #0xa] - b _0802B94C - .align 2, 0 -_0802B92C: .4byte gUnknown_20229B0 -_0802B930: - bl sub_0802CDE4 - cmp r0, #0 - bne _0802B94C - ldr r0, _0802B948 - ldr r1, [r0] - ldrh r0, [r1, #0xa] - adds r0, #1 - strh r0, [r1, #0xa] -_0802B942: - movs r0, #0 - b _0802B94E - .align 2, 0 -_0802B948: .4byte gUnknown_20229B0 -_0802B94C: - movs r0, #1 -_0802B94E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0802B878 - - thumb_func_start sub_0802B954 -sub_0802B954: @ 0x0802B954 - push {r4, lr} - sub sp, #4 - ldr r1, _0802B970 - ldr r0, [r1] - ldrh r0, [r0, #0xa] - adds r4, r1, #0 - cmp r0, #5 - bhi _0802BA18 - lsls r0, r0, #2 - ldr r1, _0802B974 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802B970: .4byte gUnknown_20229B0 -_0802B974: .4byte _0802B978 -_0802B978: @ jump table - .4byte _0802B990 @ case 0 - .4byte _0802B996 @ case 1 - .4byte _0802B9A6 @ case 2 - .4byte _0802B9BC @ case 3 - .4byte _0802B9E2 @ case 4 - .4byte _0802BA08 @ case 5 -_0802B990: - bl sub_0802D704 - b _0802B9F2 -_0802B996: - bl sub_0802D734 - cmp r0, #0 - bne _0802BA18 - movs r0, #7 - bl sub_0802CDBC - b _0802B9F2 -_0802B9A6: - bl sub_0802CDE4 - adds r2, r0, #0 - cmp r2, #0 - bne _0802BA18 - ldr r0, _0802B9B8 - ldr r1, [r0] - strh r2, [r1, #0x3c] - b _0802B9F6 - .align 2, 0 -_0802B9B8: .4byte gUnknown_20229B0 -_0802B9BC: - ldr r1, [r4] - ldrh r0, [r1, #0x3c] - adds r0, #1 - strh r0, [r1, #0x3c] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x78 - bls _0802BA18 - movs r1, #1 - rsbs r1, r1, #0 - movs r0, #0 - str r0, [sp] - adds r0, r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, [r4] - b _0802B9F6 -_0802B9E2: - ldr r0, _0802BA00 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0802BA18 - bl sub_0800A7F8 -_0802B9F2: - ldr r0, _0802BA04 - ldr r1, [r0] -_0802B9F6: - ldrh r0, [r1, #0xa] - adds r0, #1 - strh r0, [r1, #0xa] - b _0802BA18 - .align 2, 0 -_0802BA00: .4byte gUnknown_2037C74 -_0802BA04: .4byte gUnknown_20229B0 -_0802BA08: - ldr r0, _0802BA14 - ldrb r0, [r0] - cmp r0, #0 - bne _0802BA18 - movs r0, #0 - b _0802BA1A - .align 2, 0 -_0802BA14: .4byte gUnknown_30031C4 -_0802BA18: - movs r0, #1 -_0802BA1A: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0802B954 - - thumb_func_start sub_0802BA24 -sub_0802BA24: @ 0x0802BA24 - push {r4, lr} - ldr r4, _0802BA3C - ldr r0, [r4] - ldrh r0, [r0, #0xa] - cmp r0, #1 - beq _0802BA5A - cmp r0, #1 - bgt _0802BA40 - cmp r0, #0 - beq _0802BA46 - b _0802BA6E - .align 2, 0 -_0802BA3C: .4byte gUnknown_20229B0 -_0802BA40: - cmp r0, #2 - beq _0802BA6A - b _0802BA6E -_0802BA46: - bl sub_0802D704 - movs r0, #0 - bl sub_0802DA5C - ldr r1, [r4] - ldrh r0, [r1, #0xa] - adds r0, #1 - strh r0, [r1, #0xa] - b _0802BA6E -_0802BA5A: - bl sub_0802D734 - cmp r0, #0 - bne _0802BA6E - ldr r1, [r4] - ldrh r0, [r1, #0xa] - adds r0, #1 - strh r0, [r1, #0xa] -_0802BA6A: - movs r0, #0 - b _0802BA70 -_0802BA6E: - movs r0, #1 -_0802BA70: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0802BA24 - - thumb_func_start sub_0802BA78 -sub_0802BA78: @ 0x0802BA78 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - lsls r0, r0, #2 - add r0, sl - lsls r0, r0, #3 - ldr r1, _0802BAAC - adds r6, r0, r1 - mov r0, sl - movs r1, #0xe - bl GetWordTaskArg - mov r8, r0 - movs r1, #0 - ldrsh r0, [r6, r1] - cmp r0, #0 - beq _0802BABC - cmp r0, #1 - beq _0802BAD0 - b _0802BB3C - .align 2, 0 -_0802BAAC: .4byte gUnknown_3005B68 -_0802BAB0: - bl sub_0802A814 - mov r0, sl - bl DestroyTask - b _0802BB3C -_0802BABC: - movs r1, #0 - adds r0, r6, #0 - adds r0, #8 -_0802BAC2: - strh r1, [r0, #4] - subs r0, #2 - cmp r0, r6 - bge _0802BAC2 - ldrh r0, [r6] - adds r0, #1 - strh r0, [r6] -_0802BAD0: - mov r3, r8 - ldrb r1, [r3, #6] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _0802BB4C - adds r0, r0, r4 - add r0, r8 - bl sub_0802DDA4 - movs r2, #0 - adds r5, r6, #4 - mov sb, r2 - movs r7, #0x83 - lsls r7, r7, #8 - add r7, r8 - add r4, r8 -_0802BAF2: - movs r1, #0 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _0802BB2C - adds r0, r2, #0 - adds r1, r4, #0 - str r2, [sp] - bl sub_0802DDC8 - ldr r2, [sp] - cmp r0, #0 - beq _0802BB2C - ldr r1, _0802BB50 - add r1, sb - adds r0, r7, #0 - bl StringCopy - movs r0, #1 - strh r0, [r5] - ldrh r0, [r6, #2] - adds r0, #1 - strh r0, [r6, #2] - movs r3, #2 - ldrsh r0, [r6, r3] - ldr r2, [sp] - mov r1, r8 - ldrb r1, [r1, #5] - cmp r0, r1 - beq _0802BAB0 -_0802BB2C: - adds r5, #2 - movs r3, #0x1c - add sb, r3 - adds r7, #0x24 - adds r4, #0xc - adds r2, #1 - cmp r2, #4 - ble _0802BAF2 -_0802BB3C: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0802BB4C: .4byte 0x000082A8 -_0802BB50: .4byte gUnknown_20226A8 - thumb_func_end sub_0802BA78 - - thumb_func_start sub_0802BB54 -sub_0802BB54: @ 0x0802BB54 - push {lr} - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0802BB70 - ldr r2, [r1] - movs r1, #0xe - bl SetWordTaskArg - pop {r0} - bx r0 - .align 2, 0 -_0802BB70: .4byte gUnknown_20229B0 - thumb_func_end sub_0802BB54 - - thumb_func_start sub_0802BB74 -sub_0802BB74: @ 0x0802BB74 - ldr r0, _0802BB90 - ldr r2, [r0] - adds r0, r2, #0 - adds r0, #0x4a - movs r1, #0 - strh r1, [r0] - movs r0, #6 - str r0, [r2, #0x14] - strh r1, [r2, #0x34] - str r1, [r2, #0x1c] - strh r1, [r2, #0x36] - str r1, [r2, #0x10] - bx lr - .align 2, 0 -_0802BB90: .4byte gUnknown_20229B0 - thumb_func_end sub_0802BB74 - - thumb_func_start sub_0802BB94 -sub_0802BB94: @ 0x0802BB94 - push {r4, lr} - ldr r3, _0802BBD0 - ldr r0, [r3] - adds r1, r0, #0 - adds r1, #0x4a - movs r4, #0 - movs r2, #0 - strh r2, [r1] - ldr r1, _0802BBD4 - strh r1, [r0, #0x34] - movs r1, #7 - str r1, [r0, #0x14] - strh r2, [r0, #0x36] - str r2, [r0, #0x10] - adds r0, #0x51 - strb r4, [r0] - ldr r0, [r3] - adds r0, #0x50 - strb r4, [r0] - ldr r0, [r3] - str r2, [r0, #0x20] - adds r1, r0, #0 - adds r1, #0x4e - strh r2, [r1] - str r2, [r0, #0x6c] - bl sub_0802BC70 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802BBD0: .4byte gUnknown_20229B0 -_0802BBD4: .4byte 0x000006FF - thumb_func_end sub_0802BB94 - - thumb_func_start sub_0802BBD8 -sub_0802BBD8: @ 0x0802BBD8 - push {r4, lr} - ldr r4, _0802BC30 - ldr r1, [r4] - adds r0, r1, #0 - adds r0, #0x46 - ldrb r0, [r0] - cmp r0, #0 - beq _0802BC28 - adds r1, #0x4a - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - bl sub_0802BC3C - ldr r3, [r4] - ldrh r1, [r3, #0x34] - adds r2, r1, r0 - strh r2, [r3, #0x34] - lsls r1, r2, #0x10 - ldr r0, _0802BC34 - cmp r1, r0 - bls _0802BC0A - ldr r1, _0802BC38 - adds r0, r2, r1 - strh r0, [r3, #0x34] -_0802BC0A: - ldr r1, [r4] - ldr r2, [r1, #0x14] - str r2, [r1, #0x18] - ldrh r0, [r1, #0x34] - lsrs r0, r0, #8 - str r0, [r1, #0x14] - cmp r0, #6 - bls _0802BC28 - cmp r2, #6 - bhi _0802BC28 - ldrh r0, [r1, #0x36] - adds r0, #1 - strh r0, [r1, #0x36] - bl sub_0802BC70 -_0802BC28: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802BC30: .4byte gUnknown_20229B0 -_0802BC34: .4byte 0x09FE0000 -_0802BC38: .4byte 0xFFFFF601 - thumb_func_end sub_0802BBD8 - - thumb_func_start sub_0802BC3C -sub_0802BC3C: @ 0x0802BC3C - push {lr} - ldr r0, _0802BC4C - ldr r2, [r0] - ldr r0, [r2, #0x10] - cmp r0, #0 - beq _0802BC50 - movs r0, #0 - b _0802BC66 - .align 2, 0 -_0802BC4C: .4byte gUnknown_20229B0 -_0802BC50: - ldr r3, [r2, #0x1c] - ldrh r1, [r2, #0x34] - ldr r0, _0802BC6C - cmp r1, r0 - bhi _0802BC64 - ldr r0, [r2, #0x20] - adds r0, #0x50 - str r0, [r2, #0x20] - lsrs r0, r0, #8 - adds r3, r3, r0 -_0802BC64: - adds r0, r3, #0 -_0802BC66: - pop {r1} - bx r1 - .align 2, 0 -_0802BC6C: .4byte 0x000005FF - thumb_func_end sub_0802BC3C - - thumb_func_start sub_0802BC70 -sub_0802BC70: @ 0x0802BC70 - push {r4, lr} - ldr r4, _0802BCA0 - ldr r3, [r4] - movs r0, #0 - str r0, [r3, #0x20] - adds r1, r3, #0 - adds r1, #0x4e - ldrh r0, [r1] - cmp r0, #0 - beq _0802BCB4 - subs r0, #1 - strh r0, [r1] - ldr r0, [r3, #0x6c] - cmp r0, #0 - beq _0802BD7E - bl sub_0802BD8C - movs r1, #3 - ands r1, r0 - cmp r1, #0 - beq _0802BCA4 - ldr r1, [r4] - b _0802BD7A - .align 2, 0 -_0802BCA0: .4byte gUnknown_20229B0 -_0802BCA4: - ldr r1, [r4] - ldr r0, [r1, #0x28] - cmp r0, #0x36 - bls _0802BCB0 - movs r0, #0x1e - b _0802BD7C -_0802BCB0: - movs r0, #0x52 - b _0802BD7C -_0802BCB4: - adds r2, r3, #0 - adds r2, #0x50 - ldrb r1, [r2] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - bne _0802BD08 - ldr r0, _0802BD00 - ldrb r1, [r2] - lsls r1, r1, #1 - adds r1, r1, r0 - adds r0, r3, #0 - adds r0, #0x51 - ldrb r2, [r0] - lsls r0, r2, #3 - subs r0, r0, r2 - ldrh r1, [r1] - adds r0, r0, r1 - str r0, [r3, #0x28] - bl sub_0802BD8C - ldr r2, [r4] - ldr r3, _0802BD04 - movs r1, #3 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r3 - ldrh r0, [r1] - adds r0, #2 - adds r1, r2, #0 - adds r1, #0x4e - strh r0, [r1] - adds r2, #0x50 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - b _0802BD76 - .align 2, 0 -_0802BD00: .4byte gUnknown_82CEEC8 -_0802BD04: .4byte gUnknown_82CEED8 -_0802BD08: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #8 - bne _0802BD24 - adds r1, r3, #0 - adds r1, #0x51 - ldrb r0, [r1] - cmp r0, #2 - bhi _0802BD20 - adds r0, #1 - strb r0, [r1] - b _0802BD24 -_0802BD20: - movs r0, #1 - str r0, [r3, #0x6c] -_0802BD24: - ldr r2, _0802BD84 - ldr r4, _0802BD88 - ldr r0, [r4] - mov ip, r0 - mov r3, ip - adds r3, #0x50 - ldrb r0, [r3] - movs r1, #0xf - subs r1, r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - mov r0, ip - adds r0, #0x51 - ldrb r2, [r0] - lsls r0, r2, #3 - subs r0, r0, r2 - ldrh r1, [r1] - adds r0, r0, r1 - mov r1, ip - str r0, [r1, #0x28] - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xf - bls _0802BD76 - bl sub_0802BD8C - movs r1, #3 - ands r1, r0 - cmp r1, #0 - bne _0802BD6E - ldr r1, [r4] - ldr r0, [r1, #0x28] - subs r0, #5 - str r0, [r1, #0x28] -_0802BD6E: - ldr r0, [r4] - adds r0, #0x50 - movs r1, #0 - strb r1, [r0] -_0802BD76: - ldr r0, _0802BD88 - ldr r1, [r0] -_0802BD7A: - ldr r0, [r1, #0x28] -_0802BD7C: - str r0, [r1, #0x1c] -_0802BD7E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802BD84: .4byte gUnknown_82CEEC8 -_0802BD88: .4byte gUnknown_20229B0 - thumb_func_end sub_0802BC70 - - thumb_func_start sub_0802BD8C -sub_0802BD8C: @ 0x0802BD8C - ldr r0, _0802BDA0 - ldr r2, [r0] - ldr r1, [r2, #0x24] - ldr r0, _0802BDA4 - muls r0, r1, r0 - ldr r1, _0802BDA8 - adds r0, r0, r1 - str r0, [r2, #0x24] - lsrs r0, r0, #0x10 - bx lr - .align 2, 0 -_0802BDA0: .4byte gUnknown_20229B0 -_0802BDA4: .4byte 0x41C64E6D -_0802BDA8: .4byte 0x00006073 - thumb_func_end sub_0802BD8C - - thumb_func_start sub_0802BDAC -sub_0802BDAC: @ 0x0802BDAC - push {lr} - ldr r0, _0802BDC8 - ldr r1, [r0] - movs r0, #1 - str r0, [r1, #0x10] - movs r0, #6 - str r0, [r1, #0x14] - ldr r0, _0802BDCC - strh r0, [r1, #0x34] - bl sub_0802BF64 - pop {r0} - bx r0 - .align 2, 0 -_0802BDC8: .4byte gUnknown_20229B0 -_0802BDCC: .4byte 0x000005FF - thumb_func_end sub_0802BDAC - - thumb_func_start sub_0802BDD0 -sub_0802BDD0: @ 0x0802BDD0 - ldr r0, _0802BDD8 - ldr r0, [r0] - ldr r0, [r0, #0x10] - bx lr - .align 2, 0 -_0802BDD8: .4byte gUnknown_20229B0 - thumb_func_end sub_0802BDD0 - - thumb_func_start sub_0802BDDC -sub_0802BDDC: @ 0x0802BDDC - push {r4, r5, lr} - ldr r5, _0802BE00 - ldr r4, _0802BE04 - movs r3, #0 - movs r2, #0 - movs r1, #4 -_0802BDE8: - ldr r0, [r5] - adds r0, r0, r4 - adds r0, r0, r2 - str r3, [r0] - adds r2, #0x24 - subs r1, #1 - cmp r1, #0 - bge _0802BDE8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0802BE00: .4byte gUnknown_20229B0 -_0802BE04: .4byte 0x000082F8 - thumb_func_end sub_0802BDDC - - thumb_func_start sub_0802BE08 -sub_0802BE08: @ 0x0802BE08 - ldr r0, _0802BE1C - ldr r0, [r0] - ldr r1, _0802BE20 - adds r0, r0, r1 - ldr r1, [r0] - movs r2, #0 - strh r2, [r1, #0x10] - ldr r0, [r0] - strh r2, [r0, #0x12] - bx lr - .align 2, 0 -_0802BE1C: .4byte gUnknown_20229B0 -_0802BE20: .4byte 0x00008398 - thumb_func_end sub_0802BE08 - - thumb_func_start sub_0802BE24 -sub_0802BE24: @ 0x0802BE24 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _0802BE48 - ldr r2, [r1] - ldrb r3, [r2, #6] - lsls r1, r3, #3 - adds r1, r1, r3 - lsls r1, r1, #2 - adds r2, r2, r1 - ldr r1, _0802BE4C - adds r2, r2, r1 - ldrh r1, [r2] - cmp r1, r0 - beq _0802BE50 - movs r0, #0 - b _0802BE52 - .align 2, 0 -_0802BE48: .4byte gUnknown_20229B0 -_0802BE4C: .4byte 0x000082F4 -_0802BE50: - movs r0, #1 -_0802BE52: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0802BE24 - - thumb_func_start sub_0802BE58 -sub_0802BE58: @ 0x0802BE58 - ldr r0, _0802BE78 - ldr r0, [r0] - ldr r1, _0802BE7C - adds r2, r0, r1 - ldr r1, [r2] - adds r0, #0x4a - ldrh r0, [r0] - strh r0, [r1, #0xe] - ldr r1, [r2] - ldrh r0, [r1, #0x10] - strh r0, [r1, #0x12] - ldr r1, [r2] - movs r0, #1 - strh r0, [r1, #0x10] - bx lr - .align 2, 0 -_0802BE78: .4byte gUnknown_20229B0 -_0802BE7C: .4byte 0x00008398 - thumb_func_end sub_0802BE58 - - thumb_func_start sub_0802BE80 -sub_0802BE80: @ 0x0802BE80 - push {r4, lr} - ldr r0, _0802BEA8 - ldr r2, [r0] - ldr r0, _0802BEAC - adds r3, r2, r0 - ldr r1, [r3] - ldrh r0, [r1, #0x10] - strh r0, [r1, #0x12] - ldr r0, [r3] - movs r4, #2 - strh r4, [r0, #0x10] - ldr r1, [r3] - adds r2, #0x4a - ldrh r0, [r2] - strh r0, [r1, #0xe] - ldr r0, [r3] - str r4, [r0, #0x14] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802BEA8: .4byte gUnknown_20229B0 -_0802BEAC: .4byte 0x00008398 - thumb_func_end sub_0802BE80 - - thumb_func_start sub_0802BEB0 -sub_0802BEB0: @ 0x0802BEB0 - ldr r0, _0802BEC8 - ldr r0, [r0] - ldr r1, _0802BECC - adds r0, r0, r1 - ldr r1, [r0] - ldrh r2, [r1, #0x10] - movs r3, #0 - strh r2, [r1, #0x12] - ldr r0, [r0] - strh r3, [r0, #0x10] - bx lr - .align 2, 0 -_0802BEC8: .4byte gUnknown_20229B0 -_0802BECC: .4byte 0x00008398 - thumb_func_end sub_0802BEB0 - - thumb_func_start sub_0802BED0 -sub_0802BED0: @ 0x0802BED0 - push {r4, r5, lr} - ldr r4, _0802BF2C - ldr r1, [r4] - ldr r0, [r1, #0x5c] - cmp r0, #0 - beq _0802BF10 - ldr r0, [r1, #0x78] - bl sub_0802DA5C - ldr r1, [r4] - movs r5, #0 - str r5, [r1, #0x5c] - adds r0, r1, #0 - adds r0, #0x4d - ldrb r0, [r0] - cmp r0, #0 - beq _0802BF10 - adds r0, r1, #0 - adds r0, #0x71 - ldrb r0, [r0] - bl sub_0802D9C4 - ldr r1, _0802BF30 - subs r0, #2 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - bl sub_080A306C - ldr r0, [r4] - adds r0, #0x4d - strb r5, [r0] -_0802BF10: - ldr r0, _0802BF2C - ldr r0, [r0] - adds r0, #0x74 - ldrh r0, [r0] - bl sub_0802DA6C - bl sub_0802BF74 - bl sub_0802BF34 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0802BF2C: .4byte gUnknown_20229B0 -_0802BF30: .4byte gUnknown_82CEEE0 - thumb_func_end sub_0802BED0 - - thumb_func_start sub_0802BF34 -sub_0802BF34: @ 0x0802BF34 - push {lr} - ldr r0, _0802BF50 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0x46 - ldrb r0, [r0] - cmp r0, #0 - beq _0802BF4A - ldr r0, [r1, #0x14] - bl sub_0802D994 -_0802BF4A: - pop {r0} - bx r0 - .align 2, 0 -_0802BF50: .4byte gUnknown_20229B0 - thumb_func_end sub_0802BF34 - - thumb_func_start sub_0802BF54 -sub_0802BF54: @ 0x0802BF54 - ldr r0, _0802BF60 - ldr r0, [r0] - adds r0, #0x46 - movs r1, #0 - strb r1, [r0] - bx lr - .align 2, 0 -_0802BF60: .4byte gUnknown_20229B0 - thumb_func_end sub_0802BF54 - - thumb_func_start sub_0802BF64 -sub_0802BF64: @ 0x0802BF64 - ldr r0, _0802BF70 - ldr r0, [r0] - adds r0, #0x46 - movs r1, #1 - strb r1, [r0] - bx lr - .align 2, 0 -_0802BF70: .4byte gUnknown_20229B0 - thumb_func_end sub_0802BF64 - - thumb_func_start sub_0802BF74 -sub_0802BF74: @ 0x0802BF74 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - movs r6, #0 - ldr r2, _0802BFB0 - ldr r0, [r2] - ldrb r0, [r0, #5] - mov sb, r0 - movs r5, #0 - cmp r6, sb - bge _0802C054 - mov sl, r2 - mov r8, r5 - movs r7, #0 -_0802BF96: - mov r0, sl - ldr r3, [r0] - adds r1, r3, r7 - ldr r2, _0802BFB4 - adds r0, r1, r2 - ldrh r2, [r0] - cmp r2, #1 - beq _0802BFC8 - cmp r2, #1 - bgt _0802BFB8 - cmp r2, #0 - beq _0802BFBE - b _0802C048 - .align 2, 0 -_0802BFB0: .4byte gUnknown_20229B0 -_0802BFB4: .4byte 0x000082F4 -_0802BFB8: - cmp r2, #2 - beq _0802C02C - b _0802C048 -_0802BFBE: - adds r0, r5, #0 - movs r1, #0 - bl sub_0802D978 - b _0802C048 -_0802BFC8: - ldr r0, _0802C01C - adds r4, r1, r0 - ldrh r0, [r4] - cmp r0, #1 - bne _0802BFEA - ldr r0, _0802C020 - adds r0, r0, r1 - adds r1, r3, #0 - adds r1, #0x9a - add r1, r8 - str r1, [sp] - ldrh r1, [r0] - mov ip, r1 - ldr r0, [sp] - ldrh r0, [r0] - cmp ip, r0 - beq _0802C012 -_0802BFEA: - ldrb r3, [r3, #6] - cmp r5, r3 - bne _0802BFF2 - strh r2, [r4] -_0802BFF2: - orrs r6, r2 - mov r1, sl - ldr r2, [r1] - ldr r1, _0802C024 - adds r0, r2, r1 - adds r0, r0, r7 - ldr r1, _0802C028 - str r1, [r0] - adds r1, r2, #0 - adds r1, #0x9a - add r1, r8 - adds r2, r2, r7 - ldr r0, _0802C020 - adds r2, r2, r0 - ldrh r0, [r2] - strh r0, [r1] -_0802C012: - adds r0, r5, #0 - bl sub_0802C08C - b _0802C048 - .align 2, 0 -_0802C01C: .4byte 0x000082F6 -_0802C020: .4byte 0x000082F2 -_0802C024: .4byte 0x000082E8 -_0802C028: .4byte 0x7FFFFFFF -_0802C02C: - ldr r0, _0802C068 - adds r1, r1, r0 - ldrh r0, [r1] - cmp r0, #2 - beq _0802C048 - ldrb r3, [r3, #6] - cmp r5, r3 - bne _0802C03E - strh r2, [r1] -_0802C03E: - orrs r6, r2 - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - bl sub_0802DA80 -_0802C048: - movs r1, #2 - add r8, r1 - adds r7, #0x24 - adds r5, #1 - cmp r5, sb - blt _0802BF96 -_0802C054: - movs r0, #2 - ands r0, r6 - cmp r0, #0 - beq _0802C06C - movs r0, #0x83 - lsls r0, r0, #1 - bl sub_080A306C - b _0802C07A - .align 2, 0 -_0802C068: .4byte 0x000082F6 -_0802C06C: - movs r0, #1 - ands r6, r0 - cmp r6, #0 - beq _0802C07A - movs r0, #0xa - bl sub_080A306C -_0802C07A: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0802BF74 - - thumb_func_start sub_0802C08C -sub_0802C08C: @ 0x0802C08C - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r0, _0802C0B8 - ldr r2, [r0] - ldr r0, [r2, #0x68] - cmp r0, #0 - bne _0802C126 - lsls r0, r6, #3 - adds r0, r0, r6 - lsls r0, r0, #2 - ldr r1, _0802C0BC - adds r0, r0, r1 - adds r5, r2, r0 - ldr r1, [r5, #4] - ldr r0, _0802C0C0 - cmp r1, r0 - beq _0802C0C4 - adds r0, r1, #1 - str r0, [r5, #4] - adds r3, r0, #0 - b _0802C0DC - .align 2, 0 -_0802C0B8: .4byte gUnknown_20229B0 -_0802C0BC: .4byte 0x000082E4 -_0802C0C0: .4byte 0x7FFFFFFF -_0802C0C4: - adds r0, r2, #0 - adds r0, #0x4a - ldrh r1, [r0] - ldrh r0, [r5, #0xe] - subs r3, r1, r0 - ldr r0, _0802C0FC - cmp r3, r0 - ble _0802C0DA - ldr r0, _0802C100 - adds r3, r3, r0 - adds r3, r3, r1 -_0802C0DA: - str r3, [r5, #4] -_0802C0DC: - cmp r3, #3 - ble _0802C126 - subs r3, #4 - cmp r3, #0x2f - bgt _0802C108 - ldr r2, _0802C104 - ldrh r1, [r5, #0xc] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #4 - adds r0, r3, r0 - adds r0, r0, r2 - movs r4, #0 - ldrsb r4, [r0, r4] - b _0802C10A - .align 2, 0 -_0802C0FC: .4byte 0x0000FDE7 -_0802C100: .4byte 0xFFFF0218 -_0802C104: .4byte gUnknown_82CEEE8 -_0802C108: - movs r4, #0 -_0802C10A: - adds r1, r4, #0 - adds r0, r6, #0 - bl sub_0802D978 - cmp r4, #0 - bne _0802C124 - ldr r0, _0802C12C - ldr r0, [r0] - ldrb r0, [r0, #6] - cmp r6, r0 - bne _0802C124 - bl sub_0802BEB0 -_0802C124: - str r4, [r5] -_0802C126: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0802C12C: .4byte gUnknown_20229B0 - thumb_func_end sub_0802C08C - - thumb_func_start sub_0802C130 -sub_0802C130: @ 0x0802C130 - push {r4, r5, lr} - ldr r5, _0802C15C - ldr r1, [r5] - ldr r0, [r1, #0x14] - cmp r0, #8 - bne _0802C1C2 - ldr r0, [r1, #0x18] - cmp r0, #7 - bne _0802C1C2 - ldr r4, [r1, #0x58] - cmp r4, #0 - bne _0802C160 - bl sub_0802C474 - ldr r0, [r5] - str r4, [r0, #0x54] - movs r1, #1 - str r1, [r0, #0x58] - adds r0, #0x71 - strb r4, [r0] - b _0802C1C2 - .align 2, 0 -_0802C15C: .4byte gUnknown_20229B0 -_0802C160: - ldr r0, [r1, #0x54] - cmp r0, #5 - bne _0802C174 - ldrh r0, [r1, #0xc] - adds r0, #1 - strh r0, [r1, #0xc] - ldrh r0, [r1, #0xc] - bl sub_0802C494 - b _0802C178 -_0802C174: - movs r0, #0 - strh r0, [r1, #0xc] -_0802C178: - ldr r4, _0802C224 - ldr r1, [r4] - ldr r0, [r1, #0x54] - cmp r0, #1 - ble _0802C192 - movs r0, #1 - str r0, [r1, #0x64] - adds r0, r1, #0 - adds r0, #0x86 - adds r1, #0x81 - movs r2, #5 - bl memcpy -_0802C192: - bl sub_0802C474 - ldr r0, [r4] - movs r2, #0 - str r2, [r0, #0x54] - movs r1, #1 - str r1, [r0, #0x58] - adds r0, #0x71 - strb r2, [r0] - ldr r0, [r4] - adds r2, r0, #0 - adds r2, #0x74 - ldrh r1, [r2] - ldr r0, _0802C228 - cmp r1, r0 - bhi _0802C1B6 - adds r0, r1, #1 - strh r0, [r2] -_0802C1B6: - movs r0, #0xa - bl sub_0802C37C - movs r0, #3 - bl sub_0802AB08 -_0802C1C2: - ldr r4, _0802C224 - ldr r0, [r4] - ldr r0, [r0, #0x64] - cmp r0, #0 - beq _0802C1F8 - bl sub_0802C30C - cmp r0, #1 - beq _0802C1DC - ldr r0, [r4] - ldr r0, [r0, #0x14] - cmp r0, #0 - bne _0802C1F8 -_0802C1DC: - ldr r0, [r4] - adds r0, #0x86 - bl sub_0802C430 - bl sub_0802C484 - bl sub_0802C37C - movs r0, #3 - bl sub_0802AB08 - ldr r1, [r4] - movs r0, #0 - str r0, [r1, #0x64] -_0802C1F8: - ldr r4, _0802C224 - ldr r0, [r4] - ldr r0, [r0, #0x58] - cmp r0, #0 - beq _0802C21E - bl sub_0802C3A4 - adds r2, r0, #0 - ldr r1, [r4] - ldr r0, [r1, #0x54] - cmp r2, r0 - ble _0802C21E - str r2, [r1, #0x54] - adds r0, r1, #0 - adds r0, #0x81 - adds r1, #0x7c - movs r2, #5 - bl memcpy -_0802C21E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0802C224: .4byte gUnknown_20229B0 -_0802C228: .4byte 0x0000270E - thumb_func_end sub_0802C130 - - thumb_func_start sub_0802C22C -sub_0802C22C: @ 0x0802C22C - push {r4, r5, lr} - ldr r5, _0802C260 - ldr r1, [r5] - ldr r0, [r1, #0x14] - cmp r0, #6 - bne _0802C276 - ldr r4, _0802C264 - adds r0, r1, r4 - ldr r1, [r0] - ldr r0, [r1] - cmp r0, #0 - bne _0802C276 - ldrh r0, [r1, #0x12] - cmp r0, #1 - bne _0802C26C - bl sub_0802BDD0 - adds r1, r0, #0 - cmp r1, #1 - bne _0802C26C - ldr r0, [r5] - adds r0, r0, r4 - ldr r0, [r0] - str r1, [r0, #0x14] - b _0802C276 - .align 2, 0 -_0802C260: .4byte gUnknown_20229B0 -_0802C264: .4byte 0x00008398 -_0802C268: - movs r0, #0 - b _0802C2BE -_0802C26C: - bl sub_0802BE80 - movs r0, #3 - bl sub_0802AB08 -_0802C276: - ldr r0, _0802C2C4 - ldr r1, [r0] - ldr r0, [r1, #0x14] - cmp r0, #7 - bne _0802C29C - ldr r0, [r1, #0x18] - cmp r0, #6 - bne _0802C29C - ldr r2, _0802C2C8 - adds r0, r1, r2 - ldr r1, [r0] - ldrh r0, [r1, #0x10] - cmp r0, #2 - beq _0802C29C - movs r0, #1 - str r0, [r1, #0x14] - movs r0, #3 - bl sub_0802AB08 -_0802C29C: - movs r2, #0 - ldr r0, _0802C2C4 - ldr r0, [r0] - ldrb r1, [r0, #5] - cmp r2, r1 - bge _0802C2BC - adds r3, r1, #0 - ldr r4, _0802C2CC - adds r1, r0, r4 -_0802C2AE: - ldrh r0, [r1] - cmp r0, #2 - beq _0802C268 - adds r1, #0x24 - adds r2, #1 - cmp r2, r3 - blt _0802C2AE -_0802C2BC: - movs r0, #1 -_0802C2BE: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0802C2C4: .4byte gUnknown_20229B0 -_0802C2C8: .4byte 0x00008398 -_0802C2CC: .4byte 0x000082F4 - thumb_func_end sub_0802C22C - - thumb_func_start sub_0802C2D0 -sub_0802C2D0: @ 0x0802C2D0 - push {r4, lr} - ldr r0, _0802C304 - ldr r0, [r0] - ldrb r3, [r0, #5] - movs r4, #0 - cmp r4, r3 - bge _0802C2F4 - ldr r1, _0802C308 - adds r2, r0, r1 - adds r1, r3, #0 -_0802C2E4: - ldr r0, [r2] - cmp r0, #0 - beq _0802C2EC - adds r4, #1 -_0802C2EC: - adds r2, #0x24 - subs r1, #1 - cmp r1, #0 - bne _0802C2E4 -_0802C2F4: - movs r0, #0 - cmp r4, r3 - bne _0802C2FC - movs r0, #1 -_0802C2FC: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0802C304: .4byte gUnknown_20229B0 -_0802C308: .4byte 0x000082F8 - thumb_func_end sub_0802C2D0 - - thumb_func_start sub_0802C30C -sub_0802C30C: @ 0x0802C30C - push {r4, lr} - movs r2, #0 - ldr r0, _0802C32C - ldr r0, [r0] - ldrb r1, [r0, #5] - cmp r2, r1 - bge _0802C33C - adds r3, r1, #0 - ldr r4, _0802C330 - adds r1, r0, r4 -_0802C320: - ldr r0, [r1] - cmp r0, #1 - beq _0802C334 - movs r0, #0 - b _0802C33E - .align 2, 0 -_0802C32C: .4byte gUnknown_20229B0 -_0802C330: .4byte 0x000082F8 -_0802C334: - adds r1, #0x24 - adds r2, #1 - cmp r2, r3 - blt _0802C320 -_0802C33C: - movs r0, #1 -_0802C33E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0802C30C - - thumb_func_start sub_0802C344 -sub_0802C344: @ 0x0802C344 - push {lr} - ldr r0, _0802C358 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #1 - bne _0802C35C -_0802C354: - movs r0, #0 - b _0802C378 - .align 2, 0 -_0802C358: .4byte gUnknown_20229B0 -_0802C35C: - movs r2, #1 - ldrb r0, [r1, #5] - cmp r2, r0 - bge _0802C376 - adds r3, r0, #0 - adds r1, #0x92 -_0802C368: - ldrh r0, [r1] - cmp r0, #1 - beq _0802C354 - adds r1, #2 - adds r2, #1 - cmp r2, r3 - blt _0802C368 -_0802C376: - movs r0, #1 -_0802C378: - pop {r1} - bx r1 - thumb_func_end sub_0802C344 - - thumb_func_start sub_0802C37C -sub_0802C37C: @ 0x0802C37C - push {lr} - ldr r1, _0802C39C - ldr r2, [r1] - ldr r1, [r2, #0x78] - adds r1, r1, r0 - str r1, [r2, #0x78] - movs r0, #1 - str r0, [r2, #0x5c] - ldr r0, _0802C3A0 - cmp r1, r0 - bls _0802C396 - adds r0, #1 - str r0, [r2, #0x78] -_0802C396: - pop {r0} - bx r0 - .align 2, 0 -_0802C39C: .4byte gUnknown_20229B0 -_0802C3A0: .4byte 0x00018695 - thumb_func_end sub_0802C37C - - thumb_func_start sub_0802C3A4 -sub_0802C3A4: @ 0x0802C3A4 - push {r4, r5, r6, r7, lr} - movs r5, #0 - ldr r1, _0802C3DC - ldr r0, [r1] - ldrb r4, [r0, #5] - movs r2, #0 - cmp r5, r4 - bge _0802C3F6 - mov ip, r1 - movs r3, #0 - ldr r7, _0802C3E0 - movs r6, #0x1e - rsbs r6, r6, #0 -_0802C3BE: - mov r0, ip - ldr r1, [r0] - adds r0, r1, r7 - adds r0, r0, r3 - ldr r0, [r0] - cmp r0, r6 - bne _0802C3E4 - adds r0, r1, #0 - adds r0, #0x7c - adds r0, r0, r2 - movs r1, #1 - strb r1, [r0] - adds r5, #1 - b _0802C3EE - .align 2, 0 -_0802C3DC: .4byte gUnknown_20229B0 -_0802C3E0: .4byte 0x000082E4 -_0802C3E4: - adds r0, r1, #0 - adds r0, #0x7c - adds r0, r0, r2 - movs r1, #0 - strb r1, [r0] -_0802C3EE: - adds r3, #0x24 - adds r2, #1 - cmp r2, r4 - blt _0802C3BE -_0802C3F6: - adds r0, r5, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0802C3A4 - - thumb_func_start sub_0802C400 -sub_0802C400: @ 0x0802C400 - push {lr} - movs r2, #0 - ldr r1, _0802C424 - ldr r3, _0802C428 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, #0 - bne _0802C41C - ldr r3, _0802C42C - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, #0 - bne _0802C41C - movs r2, #1 -_0802C41C: - adds r0, r2, #0 - pop {r1} - bx r1 - .align 2, 0 -_0802C424: .4byte gUnknown_30050A0 -_0802C428: .4byte 0x0000069E -_0802C42C: .4byte 0x000008D2 - thumb_func_end sub_0802C400 - - thumb_func_start sub_0802C430 -sub_0802C430: @ 0x0802C430 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - ldr r6, _0802C470 - movs r5, #1 -_0802C43E: - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _0802C44E - adds r0, r5, #0 - lsls r0, r1 - orrs r2, r0 - adds r3, #1 -_0802C44E: - adds r1, #1 - cmp r1, #4 - ble _0802C43E - ldr r0, [r6] - adds r0, #0x71 - strb r2, [r0] - cmp r2, #0 - beq _0802C466 - ldr r0, [r6] - adds r0, #0x4d - movs r1, #1 - strb r1, [r0] -_0802C466: - adds r0, r3, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0802C470: .4byte gUnknown_20229B0 - thumb_func_end sub_0802C430 - - thumb_func_start sub_0802C474 -sub_0802C474: @ 0x0802C474 - ldr r0, _0802C480 - ldr r0, [r0] - adds r0, #0x44 - movs r1, #0 - strb r1, [r0] - bx lr - .align 2, 0 -_0802C480: .4byte gUnknown_20229B0 - thumb_func_end sub_0802C474 - - thumb_func_start sub_0802C484 -sub_0802C484: @ 0x0802C484 - ldr r1, _0802C490 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bx lr - .align 2, 0 -_0802C490: .4byte gUnknown_82CEF78 - thumb_func_end sub_0802C484 - - thumb_func_start sub_0802C494 -sub_0802C494: @ 0x0802C494 - push {lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r0, _0802C4AC - ldr r0, [r0] - ldrh r2, [r0, #0xe] - cmp r1, r2 - bls _0802C4A6 - strh r1, [r0, #0xe] -_0802C4A6: - pop {r0} - bx r0 - .align 2, 0 -_0802C4AC: .4byte gUnknown_20229B0 - thumb_func_end sub_0802C494 - - thumb_func_start sub_0802C4B0 -sub_0802C4B0: @ 0x0802C4B0 - push {lr} - ldr r0, _0802C4C4 - ldr r0, [r0] - ldr r1, _0802C4C8 - ldr r2, [r0, #0x78] - ldr r0, [r1] - cmp r2, r0 - bhs _0802C4CC - movs r0, #0 - b _0802C4CE - .align 2, 0 -_0802C4C4: .4byte gUnknown_20229B0 -_0802C4C8: .4byte gUnknown_82CEFA0 -_0802C4CC: - movs r0, #1 -_0802C4CE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0802C4B0 - - thumb_func_start sub_0802C4D4 -sub_0802C4D4: @ 0x0802C4D4 - push {r4, lr} - bl SafariHandleStatusAnimation - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - bl sub_0802C52C - lsls r0, r0, #0x10 - lsrs r0, r0, #4 - ldr r1, _0802C4F8 - ands r4, r1 - orrs r0, r4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0802C4F8: .4byte 0x00000FFF - thumb_func_end sub_0802C4D4 - - thumb_func_start sub_0802C4FC -sub_0802C4FC: @ 0x0802C4FC - lsls r0, r0, #0x10 - lsrs r3, r0, #0x1c - strh r3, [r2] - lsls r0, r0, #4 - lsrs r0, r0, #0x14 - strh r0, [r1] - bx lr - .align 2, 0 - thumb_func_end sub_0802C4FC - - thumb_func_start SafariHandleStatusAnimation -SafariHandleStatusAnimation: @ 0x0802C50C - push {lr} - bl Random - lsls r0, r0, #0x10 - movs r1, #0xe0 - lsls r1, r1, #0xb - ands r1, r0 - ldr r0, _0802C528 - lsrs r1, r1, #0xf - adds r1, r1, r0 - ldrh r0, [r1] - pop {r1} - bx r1 - .align 2, 0 -_0802C528: .4byte gUnknown_82CEF90 - thumb_func_end SafariHandleStatusAnimation - - thumb_func_start sub_0802C52C -sub_0802C52C: @ 0x0802C52C - push {r4, r5, r6, lr} - movs r5, #0 - movs r4, #0 - ldr r3, _0802C560 - ldr r0, [r3] - ldr r2, _0802C564 - ldr r1, [r0, #0x78] - ldr r0, [r2] - cmp r1, r0 - blo _0802C568 - ldr r5, [r2, #4] - adds r6, r3, #0 - adds r3, r2, #4 -_0802C546: - adds r3, #8 - adds r2, #8 - adds r4, #1 - cmp r4, #4 - bhi _0802C568 - ldr r0, [r6] - ldr r1, [r0, #0x78] - ldr r0, [r2] - cmp r1, r0 - blo _0802C568 - ldr r5, [r3] - b _0802C546 - .align 2, 0 -_0802C560: .4byte gUnknown_20229B0 -_0802C564: .4byte gUnknown_82CEFA0 -_0802C568: - lsls r0, r5, #0x10 - lsrs r0, r0, #0x10 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0802C52C - - thumb_func_start sub_0802C574 -sub_0802C574: @ 0x0802C574 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - b _0802C586 -_0802C580: - subs r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_0802C586: - cmp r4, #0 - beq _0802C598 - adds r0, r5, #0 - adds r1, r4, #0 - bl CheckBagHasSpace - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0802C580 -_0802C598: - adds r0, r4, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_0802C574 - - thumb_func_start sub_0802C5A0 -sub_0802C5A0: @ 0x0802C5A0 - push {lr} - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0802C5A0 - - thumb_func_start sub_0802C5B0 -sub_0802C5B0: @ 0x0802C5B0 - ldr r0, _0802C5B8 - ldr r0, [r0] - ldrb r0, [r0, #6] - bx lr - .align 2, 0 -_0802C5B8: .4byte gUnknown_20229B0 - thumb_func_end sub_0802C5B0 - - thumb_func_start sub_0802C5BC -sub_0802C5BC: @ 0x0802C5BC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0802C5D4 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _0802C5D8 - adds r1, r1, r0 - ldr r0, [r2] - adds r0, r0, r1 - bx lr - .align 2, 0 -_0802C5D4: .4byte gUnknown_20229B0 -_0802C5D8: .4byte 0x000082A8 - thumb_func_end sub_0802C5BC - - thumb_func_start sub_0802C5DC -sub_0802C5DC: @ 0x0802C5DC - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _0802C5F8 - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, [r2] - adds r0, r0, r1 - movs r1, #0x83 - lsls r1, r1, #8 - adds r0, r0, r1 - bx lr - .align 2, 0 -_0802C5F8: .4byte gUnknown_20229B0 - thumb_func_end sub_0802C5DC - - thumb_func_start sub_0802C5FC -sub_0802C5FC: @ 0x0802C5FC - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_0802A8F4 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mvns r0, r0 - lsrs r0, r0, #0x1f - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0802C5FC - - thumb_func_start sub_0802C614 -sub_0802C614: @ 0x0802C614 - push {r4, r5, lr} - movs r5, #0 -_0802C618: - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _0802C648 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #5 - bl GetMonData - cmp r0, #0 - beq _0802C650 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_0802C5FC - cmp r0, #0 - beq _0802C650 - ldr r1, _0802C64C - movs r0, #1 - b _0802C65A - .align 2, 0 -_0802C648: .4byte gUnknown_2024190 -_0802C64C: .4byte gUnknown_2037290 -_0802C650: - adds r5, #1 - cmp r5, #5 - ble _0802C618 - ldr r1, _0802C664 - movs r0, #0 -_0802C65A: - strh r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0802C664: .4byte gUnknown_2037290 - thumb_func_end sub_0802C614 - - thumb_func_start sub_0802C668 -sub_0802C668: @ 0x0802C668 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r4, #0 - ldr r5, _0802C6A8 -_0802C670: - adds r0, r5, #0 - bl LoadCompressedSpriteSheet - adds r5, #8 - adds r4, #1 - cmp r4, #4 - bls _0802C670 - movs r4, #0 - ldr r5, _0802C6AC -_0802C682: - adds r0, r5, #0 - bl LoadSpritePalette - adds r5, #8 - adds r4, #1 - cmp r4, #1 - bls _0802C682 - movs r0, #5 - bl IndexOfSpritePaletteTag - strb r0, [r6, #0xe] - movs r0, #6 - bl IndexOfSpritePaletteTag - strb r0, [r6, #0xf] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0802C6A8: .4byte gUnknown_82CF694 -_0802C6AC: .4byte gUnknown_82CF6BC - thumb_func_end sub_0802C668 - - thumb_func_start sub_0802C6B0 -sub_0802C6B0: @ 0x0802C6B0 - push {lr} - movs r2, #0 - movs r1, #7 - adds r0, #0x3c -_0802C6B8: - strh r2, [r0] - subs r0, #2 - subs r1, #1 - cmp r1, #0 - bge _0802C6B8 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0802C6B0 - - thumb_func_start sub_0802C6C8 -sub_0802C6C8: @ 0x0802C6C8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x34 - mov sb, r0 - adds r7, r1, #0 - ldr r0, [sp, #0x54] - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - str r2, [sp, #0x28] - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - str r3, [sp, #0x2c] - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - mov r1, sp - ldr r0, _0802C71C - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - movs r0, #0x80 - lsls r0, r0, #6 - bl sub_08000BC8 - mov r8, r0 - movs r0, #0x80 - lsls r0, r0, #4 - bl sub_08000BC8 - mov sl, r0 - bl sub_0802C5B0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r6, r0 - bne _0802C720 - movs r0, #3 - b _0802C726 - .align 2, 0 -_0802C71C: .4byte gUnknown_82CF6CC -_0802C720: - adds r0, r6, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_0802C726: - str r0, [sp, #0x30] - mov r1, r8 - cmp r1, #0 - beq _0802C7E8 - mov r2, sl - cmp r2, #0 - beq _0802C7E8 - ldrh r2, [r7] - lsls r0, r2, #3 - ldr r1, _0802C7D4 - adds r0, r0, r1 - ldr r3, [r7, #8] - mov r1, r8 - bl HandleLoadSpecialPokePic - mov r3, r8 - str r3, [sp, #0x18] - adds r4, r6, #0 - add r0, sp, #0x18 - ldr r5, _0802C7D8 - lsls r1, r4, #0x10 - movs r2, #0x80 - lsls r2, r2, #4 - orrs r1, r2 - str r1, [r0, #4] - bl LoadSpriteSheet - ldrh r0, [r7] - ldr r1, [r7, #4] - ldr r2, [r7, #8] - bl GetMonSpritePalFromSpeciesAndPersonality - str r0, [sp, #0x20] - add r0, sp, #0x20 - ldr r1, [r0, #4] - ands r1, r5 - orrs r1, r4 - str r1, [r0, #4] - bl LoadCompressedSpritePalette - mov r0, r8 - bl Free - mov r0, sl - bl Free - mov r1, sp - mov r0, sp - ldrh r0, [r0] - adds r0, r0, r6 - strh r0, [r1] - mov r0, sp - ldrh r0, [r0, #2] - adds r0, r0, r6 - strh r0, [r1, #2] - ldr r4, [sp, #0x28] - lsls r1, r4, #0x10 - asrs r1, r1, #0x10 - ldr r0, [sp, #0x2c] - lsls r2, r0, #0x10 - asrs r2, r2, #0x10 - mov r0, sp - ldr r3, [sp, #0x30] - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x40 - beq _0802C7E8 - lsls r0, r6, #2 - ldr r2, _0802C7DC - add r2, sb - adds r2, r2, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0802C7E0 - adds r0, r0, r1 - str r0, [r2] - ldr r0, _0802C7E4 - add r0, sb - adds r0, r0, r6 - add r1, sp, #0x30 - ldrb r1, [r1] - strb r1, [r0] - b _0802C7F4 - .align 2, 0 -_0802C7D4: .4byte gUnknown_82D4CA8 -_0802C7D8: .4byte 0xFFFF0000 -_0802C7DC: .4byte 0x000081A8 -_0802C7E0: .4byte gUnknown_20205AC -_0802C7E4: .4byte 0x000081FC -_0802C7E8: - lsls r0, r6, #2 - ldr r1, _0802C804 - add r1, sb - adds r1, r1, r0 - movs r0, #0 - str r0, [r1] -_0802C7F4: - add sp, #0x34 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0802C804: .4byte 0x000081A8 - thumb_func_end sub_0802C6C8 - - thumb_func_start sub_0802C808 -sub_0802C808: @ 0x0802C808 - push {r4, r5, r6, lr} - adds r4, r0, #0 - lsls r6, r1, #2 - ldr r0, _0802C860 - adds r5, r4, r0 - adds r5, r5, r6 - ldr r0, [r5] - bl sub_0802C6B0 - ldr r2, [r5] - ldr r0, _0802C864 - adds r4, r4, r0 - adds r4, r4, r6 - ldr r1, [r4] - ldr r0, _0802C868 - subs r1, r1, r0 - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r1, r0, #8 - adds r0, r0, r1 - lsls r1, r0, #0x10 - adds r0, r0, r1 - rsbs r0, r0, #0 - asrs r0, r0, #2 - strh r0, [r2, #0x3c] - ldr r1, [r5] - adds r1, #0x3e - ldrb r2, [r1] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r5] - movs r0, #0x60 - strh r0, [r1, #0x22] - ldr r0, [r5] - ldr r1, _0802C86C - str r1, [r0, #0x1c] - movs r1, #1 - bl StartSpriteAnim - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0802C860: .4byte 0x000081BC -_0802C864: .4byte 0x000081A8 -_0802C868: .4byte gUnknown_20205AC -_0802C86C: .4byte sub_0802C870 - thumb_func_end sub_0802C808 - - thumb_func_start sub_0802C870 -sub_0802C870: @ 0x0802C870 - push {lr} - adds r2, r0, #0 - movs r1, #0x2e - ldrsh r0, [r2, r1] - cmp r0, #1 - beq _0802C89C - cmp r0, #1 - bgt _0802C886 - cmp r0, #0 - beq _0802C88C - b _0802C8DA -_0802C886: - cmp r0, #2 - beq _0802C8BC - b _0802C8DA -_0802C88C: - adds r0, r2, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0802C8DA - b _0802C8CA -_0802C89C: - ldrh r1, [r2, #0x22] - subs r1, #1 - strh r1, [r2, #0x22] - ldrh r0, [r2, #0x30] - adds r0, #1 - strh r0, [r2, #0x30] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0x48 - bgt _0802C8DA - movs r0, #0x48 - strh r0, [r2, #0x22] - ldrh r0, [r2, #0x2e] - adds r0, #1 - strh r0, [r2, #0x2e] - b _0802C8DA -_0802C8BC: - ldrh r0, [r2, #0x30] - adds r0, #1 - strh r0, [r2, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x2f - ble _0802C8DA -_0802C8CA: - adds r3, r2, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r1, #4 - orrs r0, r1 - strb r0, [r3] - ldr r0, _0802C8E0 - str r0, [r2, #0x1c] -_0802C8DA: - pop {r0} - bx r0 - .align 2, 0 -_0802C8E0: .4byte sub_08007140 - thumb_func_end sub_0802C870 - - thumb_func_start sub_0802C8E4 -sub_0802C8E4: @ 0x0802C8E4 - push {lr} - lsls r1, r1, #2 - ldr r2, _0802C904 - adds r0, r0, r2 - adds r0, r0, r1 - ldr r2, [r0] - ldr r1, _0802C908 - str r1, [r2, #0x1c] - movs r1, #0 - strh r1, [r2, #0x26] - ldr r0, [r0] - bl sub_0802C6B0 - pop {r0} - bx r0 - .align 2, 0 -_0802C904: .4byte 0x000081A8 -_0802C908: .4byte sub_0802C934 - thumb_func_end sub_0802C8E4 - - thumb_func_start sub_0802C90C -sub_0802C90C: @ 0x0802C90C - push {lr} - movs r2, #0 - lsls r1, r1, #2 - ldr r3, _0802C92C - adds r0, r0, r3 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, [r0, #0x1c] - ldr r0, _0802C930 - cmp r1, r0 - bne _0802C924 - movs r2, #1 -_0802C924: - adds r0, r2, #0 - pop {r1} - bx r1 - .align 2, 0 -_0802C92C: .4byte 0x000081A8 -_0802C930: .4byte sub_0802C934 - thumb_func_end sub_0802C90C - - thumb_func_start sub_0802C934 -sub_0802C934: @ 0x0802C934 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x30] - adds r0, #1 - strh r0, [r2, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _0802C960 - ldrh r0, [r2, #0x32] - adds r0, #1 - strh r0, [r2, #0x32] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0802C958 - movs r0, #2 - b _0802C95A -_0802C958: - ldr r0, _0802C974 -_0802C95A: - strh r0, [r2, #0x26] - movs r0, #0 - strh r0, [r2, #0x30] -_0802C960: - movs r1, #0x32 - ldrsh r0, [r2, r1] - cmp r0, #0xc - ble _0802C970 - movs r0, #0 - strh r0, [r2, #0x26] - ldr r0, _0802C978 - str r0, [r2, #0x1c] -_0802C970: - pop {r0} - bx r0 - .align 2, 0 -_0802C974: .4byte 0x0000FFFE -_0802C978: .4byte sub_08007140 - thumb_func_end sub_0802C934 - - thumb_func_start sub_0802C97C -sub_0802C97C: @ 0x0802C97C - push {r4, lr} - adds r4, r0, #0 - lsls r1, r1, #2 - ldr r0, _0802C99C - adds r4, r4, r0 - adds r4, r4, r1 - ldr r0, [r4] - bl sub_0802C6B0 - ldr r1, [r4] - ldr r0, _0802C9A0 - str r0, [r1, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802C99C: .4byte 0x000081A8 -_0802C9A0: .4byte sub_0802C9FC - thumb_func_end sub_0802C97C - - thumb_func_start sub_0802C9A4 -sub_0802C9A4: @ 0x0802C9A4 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - bl sub_0802C5A0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - beq _0802C9E8 - movs r1, #5 - rsbs r1, r1, #0 - mov ip, r1 - ldr r1, _0802C9F0 - adds r3, r4, r1 - ldr r7, _0802C9F4 - ldr r6, _0802C9F8 - movs r5, #0xa - adds r4, r0, #0 -_0802C9C6: - ldr r2, [r3] - ldr r0, [r2, #0x1c] - cmp r0, r7 - bne _0802C9E0 - adds r2, #0x3e - ldrb r1, [r2] - mov r0, ip - ands r0, r1 - strb r0, [r2] - ldr r0, [r3] - str r6, [r0, #0x1c] - adds r0, #0x43 - strb r5, [r0] -_0802C9E0: - adds r3, #4 - subs r4, #1 - cmp r4, #0 - bne _0802C9C6 -_0802C9E8: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0802C9F0: .4byte 0x000081A8 -_0802C9F4: .4byte sub_0802C9FC -_0802C9F8: .4byte sub_08007140 - thumb_func_end sub_0802C9A4 - - thumb_func_start sub_0802C9FC -sub_0802C9FC: @ 0x0802C9FC - push {lr} - adds r3, r0, #0 - ldrh r0, [r3, #0x2e] - adds r0, #1 - strh r0, [r3, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - ble _0802CA2A - movs r0, #0 - strh r0, [r3, #0x2e] - adds r3, #0x3e - ldrb r2, [r3] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_0802CA2A: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0802C9FC - - thumb_func_start sub_0802CA30 -sub_0802CA30: @ 0x0802CA30 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0802C5A0 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - movs r2, #0 - cmp r2, r3 - bge _0802CA5A - ldr r0, _0802CA60 - adds r5, r4, r0 - subs r0, #0x54 - adds r4, r4, r0 -_0802CA4A: - ldm r4!, {r0} - adds r1, r5, r2 - ldrb r1, [r1] - adds r0, #0x43 - strb r1, [r0] - adds r2, #1 - cmp r2, r3 - blt _0802CA4A -_0802CA5A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0802CA60: .4byte 0x000081FC - thumb_func_end sub_0802CA30 - - thumb_func_start sub_0802CA64 -sub_0802CA64: @ 0x0802CA64 - push {r4, lr} - adds r4, r0, #0 - lsls r1, r1, #2 - ldr r0, _0802CA84 - adds r4, r4, r0 - adds r4, r4, r1 - ldr r0, [r4] - bl sub_0802C6B0 - ldr r1, [r4] - ldr r0, _0802CA88 - str r0, [r1, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802CA84: .4byte 0x000081A8 -_0802CA88: .4byte sub_0802CAC8 - thumb_func_end sub_0802CA64 - - thumb_func_start sub_0802CA8C -sub_0802CA8C: @ 0x0802CA8C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0802C5A0 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - movs r2, #0 - cmp r2, r3 - bge _0802CAC0 - ldr r5, _0802CAB0 - ldr r0, _0802CAB4 - adds r1, r4, r0 -_0802CAA4: - ldr r0, [r1] - ldr r0, [r0, #0x1c] - cmp r0, r5 - bne _0802CAB8 - movs r0, #1 - b _0802CAC2 - .align 2, 0 -_0802CAB0: .4byte sub_0802CAC8 -_0802CAB4: .4byte 0x000081A8 -_0802CAB8: - adds r1, #4 - adds r2, #1 - cmp r2, r3 - blt _0802CAA4 -_0802CAC0: - movs r0, #0 -_0802CAC2: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_0802CA8C - - thumb_func_start sub_0802CAC8 -sub_0802CAC8: @ 0x0802CAC8 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x2e - ldrsh r4, [r5, r0] - cmp r4, #0 - beq _0802CADA - cmp r4, #1 - beq _0802CAE8 - b _0802CB30 -_0802CADA: - movs r0, #0x22 - bl sub_080A306C - strh r4, [r5, #0x30] - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] -_0802CAE8: - ldrh r0, [r5, #0x30] - adds r0, #4 - strh r0, [r5, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x7f - ble _0802CAFA - movs r0, #0 - strh r0, [r5, #0x30] -_0802CAFA: - ldr r1, _0802CB28 - movs r2, #0x30 - ldrsh r0, [r5, r2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x13 - rsbs r0, r0, #0 - strh r0, [r5, #0x26] - movs r0, #0x30 - ldrsh r1, [r5, r0] - cmp r1, #0 - bne _0802CB30 - ldrh r0, [r5, #0x32] - adds r0, #1 - strh r0, [r5, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - bgt _0802CB2C - strh r1, [r5, #0x2e] - b _0802CB30 - .align 2, 0 -_0802CB28: .4byte gUnknown_82FA8CC -_0802CB2C: - ldr r0, _0802CB38 - str r0, [r5, #0x1c] -_0802CB30: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0802CB38: .4byte sub_08007140 - thumb_func_end sub_0802CAC8 - - thumb_func_start sub_0802CB3C -sub_0802CB3C: @ 0x0802CB3C - push {r4, r5, lr} - adds r5, r0, #0 - lsls r3, r3, #0x18 - lsrs r4, r3, #0x18 - ldr r0, _0802CB84 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x40 - beq _0802CB7C - ldr r0, _0802CB88 - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - adds r3, r1, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r2, #4 - orrs r0, r2 - strb r0, [r3] - lsls r2, r4, #2 - ldr r3, _0802CB8C - adds r0, r5, r3 - adds r0, r0, r2 - str r1, [r0] -_0802CB7C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0802CB84: .4byte gUnknown_82CF898 -_0802CB88: .4byte gUnknown_20205AC -_0802CB8C: .4byte 0x000081BC - thumb_func_end sub_0802CB3C - - thumb_func_start sub_0802CB90 -sub_0802CB90: @ 0x0802CB90 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - movs r5, #0 - movs r4, #0 - ldr r6, _0802CC30 -_0802CB9A: - ldr r1, _0802CC34 - lsls r0, r4, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r2, _0802CC38 - lsls r1, r5, #1 - adds r1, r1, r2 - movs r2, #0 - ldrsh r1, [r1, r2] - movs r3, #0 - ldrsh r2, [r6, r3] - movs r3, #2 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - lsls r0, r5, #2 - ldr r3, _0802CC3C - adds r2, r7, r3 - adds r2, r2, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0802CC40 - adds r0, r0, r1 - str r0, [r2] - adds r5, #1 - adds r6, #0x14 - adds r4, #1 - cmp r4, #3 - ble _0802CB9A - movs r4, #3 - movs r6, #0x3c -_0802CBDC: - ldr r1, _0802CC34 - lsls r0, r4, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r2, _0802CC38 - lsls r1, r5, #1 - adds r1, r1, r2 - movs r2, #0 - ldrsh r1, [r1, r2] - ldr r2, _0802CC30 - adds r2, r6, r2 - movs r3, #0 - ldrsh r2, [r2, r3] - movs r3, #2 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - lsls r0, r5, #2 - ldr r3, _0802CC3C - adds r2, r7, r3 - adds r2, r2, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0802CC40 - adds r0, r0, r1 - str r0, [r2] - adds r0, #0x3f - ldrb r1, [r0] - movs r2, #1 - orrs r1, r2 - strb r1, [r0] - adds r5, #1 - subs r6, #0x14 - subs r4, #1 - cmp r4, #0 - bge _0802CBDC - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0802CC30: .4byte gUnknown_82CF6E4 -_0802CC34: .4byte gUnknown_82CF744 -_0802CC38: .4byte gUnknown_82CF734 -_0802CC3C: .4byte 0x000081D0 -_0802CC40: .4byte gUnknown_20205AC - thumb_func_end sub_0802CB90 - - thumb_func_start sub_0802CC44 -sub_0802CC44: @ 0x0802CC44 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - str r0, [sp, #8] - cmp r1, #5 - ble _0802CC64 - movs r0, #0xa - subs r1, r0, r1 - movs r0, #3 - str r0, [sp] - ldr r2, [sp, #8] - ldrb r0, [r2, #0xf] - b _0802CC6C -_0802CC64: - movs r3, #2 - str r3, [sp] - ldr r7, [sp, #8] - ldrb r0, [r7, #0xe] -_0802CC6C: - movs r6, #0 - lsls r2, r1, #1 - str r2, [sp, #4] - lsls r0, r0, #4 - mov sb, r0 - lsls r1, r1, #0x18 - mov r8, r1 - ldr r0, _0802CD30 - adds r4, r2, r0 - ldr r3, [sp] - lsls r3, r3, #2 - mov sl, r3 - movs r5, #3 -_0802CC86: - lsls r0, r6, #2 - ldr r7, [sp, #8] - ldr r1, _0802CD34 - adds r2, r7, r1 - adds r2, r2, r0 - ldr r1, [r2] - ldrh r0, [r4] - strh r0, [r1, #0x22] - ldr r3, [r2] - ldrb r0, [r3, #5] - movs r7, #0xd - rsbs r7, r7, #0 - adds r1, r7, #0 - ands r0, r1 - mov r1, sl - orrs r0, r1 - strb r0, [r3, #5] - ldr r3, [r2] - ldrb r1, [r3, #5] - movs r0, #0xf - ands r0, r1 - mov r7, sb - orrs r0, r7 - strb r0, [r3, #5] - ldr r0, [r2] - mov r2, r8 - lsrs r1, r2, #0x18 - bl StartSpriteAnim - adds r6, #1 - adds r4, #0x14 - subs r5, #1 - cmp r5, #0 - bge _0802CC86 - movs r5, #3 - ldr r0, _0802CD30 - ldr r3, [sp, #4] - adds r0, r3, r0 - adds r4, r0, #0 - adds r4, #0x3c - ldr r7, [sp] - lsls r7, r7, #2 - mov sl, r7 -_0802CCDC: - lsls r0, r6, #2 - ldr r1, [sp, #8] - ldr r3, _0802CD34 - adds r2, r1, r3 - adds r2, r2, r0 - ldr r1, [r2] - ldrh r0, [r4] - strh r0, [r1, #0x22] - ldr r3, [r2] - ldrb r0, [r3, #5] - movs r7, #0xd - rsbs r7, r7, #0 - adds r1, r7, #0 - ands r0, r1 - mov r1, sl - orrs r0, r1 - strb r0, [r3, #5] - ldr r3, [r2] - ldrb r1, [r3, #5] - movs r0, #0xf - ands r0, r1 - mov r7, sb - orrs r0, r7 - strb r0, [r3, #5] - ldr r0, [r2] - mov r2, r8 - lsrs r1, r2, #0x18 - bl StartSpriteAnim - adds r6, #1 - subs r4, #0x14 - subs r5, #1 - cmp r5, #0 - bge _0802CCDC - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0802CD30: .4byte gUnknown_82CF6E4 -_0802CD34: .4byte 0x000081D0 - thumb_func_end sub_0802CC44 - - thumb_func_start sub_0802CD38 -sub_0802CD38: @ 0x0802CD38 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - movs r0, #0 - str r0, [sp] - movs r0, #9 - movs r1, #7 - movs r2, #0x78 - movs r3, #0x50 - bl sub_0802E788 - adds r0, r4, #0 - bl sub_0802CA30 - add sp, #4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0802CD38 - - thumb_func_start sub_0802CD5C -sub_0802CD5C: @ 0x0802CD5C - push {lr} - bl sub_0802E7E8 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0802CD5C - - thumb_func_start sub_0802CD68 -sub_0802CD68: @ 0x0802CD68 - push {r4, lr} - ldr r4, _0802CD94 - str r0, [r4] - bl sub_0802CDB0 - ldr r0, _0802CD98 - movs r1, #3 - bl CreateTask - ldr r1, [r4] - strb r0, [r1, #6] - ldr r2, [r4] - ldrb r0, [r2, #6] - movs r1, #2 - bl SetWordTaskArg - ldr r0, _0802CD9C - bl sub_0802CDFC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802CD94: .4byte gUnknown_20229B4 -_0802CD98: .4byte sub_0802CE20 -_0802CD9C: .4byte sub_0802CE44 - thumb_func_end sub_0802CD68 - - thumb_func_start sub_0802CDA0 -sub_0802CDA0: @ 0x0802CDA0 - push {lr} - bl FreeAllWindowBuffers - bl sub_08034B20 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0802CDA0 - - thumb_func_start sub_0802CDB0 -sub_0802CDB0: @ 0x0802CDB0 - movs r1, #0 - strh r1, [r0, #4] - str r1, [r0] - movs r1, #0xff - strh r1, [r0, #0x12] - bx lr - thumb_func_end sub_0802CDB0 - - thumb_func_start sub_0802CDBC -sub_0802CDBC: @ 0x0802CDBC - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r5, #0 - ldr r4, _0802CDE0 -_0802CDC4: - ldr r0, [r4] - cmp r0, r6 - bne _0802CDD0 - ldr r0, [r4, #4] - bl sub_0802CDFC -_0802CDD0: - adds r4, #8 - adds r5, #1 - cmp r5, #9 - bls _0802CDC4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0802CDE0: .4byte gUnknown_82D1A18 - thumb_func_end sub_0802CDBC - - thumb_func_start sub_0802CDE4 -sub_0802CDE4: @ 0x0802CDE4 - ldr r0, _0802CDF8 - ldr r0, [r0] - ldr r1, [r0] - movs r0, #1 - eors r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - bx lr - .align 2, 0 -_0802CDF8: .4byte gUnknown_20229B4 - thumb_func_end sub_0802CDE4 - - thumb_func_start sub_0802CDFC -sub_0802CDFC: @ 0x0802CDFC - push {r4, lr} - adds r2, r0, #0 - ldr r4, _0802CE1C - ldr r0, [r4] - ldrb r0, [r0, #6] - movs r1, #0 - bl SetWordTaskArg - ldr r1, [r4] - movs r0, #0 - strh r0, [r1, #4] - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802CE1C: .4byte gUnknown_20229B4 - thumb_func_end sub_0802CDFC - - thumb_func_start sub_0802CE20 -sub_0802CE20: @ 0x0802CE20 - push {lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r0, _0802CE40 - ldr r0, [r0] - ldr r0, [r0] - cmp r0, #0 - bne _0802CE3C - adds r0, r1, #0 - movs r1, #0 - bl GetWordTaskArg - bl _call_via_r0 -_0802CE3C: - pop {r0} - bx r0 - .align 2, 0 -_0802CE40: .4byte gUnknown_20229B4 - thumb_func_end sub_0802CE20 - - thumb_func_start sub_0802CE44 -sub_0802CE44: @ 0x0802CE44 - push {r4, r5, r6, lr} - sub sp, #8 - ldr r6, _0802CE60 - ldr r1, [r6] - ldrh r5, [r1, #4] - cmp r5, #1 - bne _0802CE54 - b _0802CF8C -_0802CE54: - cmp r5, #1 - bgt _0802CE64 - cmp r5, #0 - beq _0802CE6C - b _0802CFCE - .align 2, 0 -_0802CE60: .4byte gUnknown_20229B4 -_0802CE64: - cmp r5, #2 - bne _0802CE6A - b _0802CFCA -_0802CE6A: - b _0802CFCE -_0802CE6C: - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _0802CF5C - movs r0, #0 - movs r2, #4 - bl InitBgsFromTemplates - ldr r0, _0802CF60 - bl InitWindows - bl reset_temp_tile_data_buffers - ldr r0, [r6] - bl sub_0802C668 - bl sub_0802DA00 - ldr r0, _0802CF64 - movs r1, #0 - movs r2, #0x20 - bl LoadPalette - ldr r1, _0802CF68 - str r5, [sp] - movs r0, #3 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, _0802CF6C - movs r4, #1 - str r4, [sp] - movs r0, #3 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - ldr r0, _0802CF70 - movs r1, #0x30 - movs r2, #0x20 - bl LoadPalette - ldr r1, _0802CF74 - str r5, [sp] - movs r0, #2 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, _0802CF78 - str r4, [sp] - movs r0, #2 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - ldr r0, _0802CF7C - movs r1, #0x10 - movs r2, #0x20 - bl LoadPalette - ldr r1, _0802CF80 - str r5, [sp] - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, _0802CF84 - str r4, [sp] - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - ldr r0, _0802CF88 - movs r1, #0x20 - movs r2, #0x20 - bl LoadPalette - ldr r1, [r6] - movs r0, #0xd3 - lsls r0, r0, #1 - adds r1, r1, r0 - movs r0, #0 - bl SetBgTilemapBuffer - movs r0, #0x20 - str r0, [sp] - str r0, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - bl sub_0802D884 - movs r0, #0 - bl sub_0802DA5C - movs r0, #0 - movs r1, #1 - movs r2, #0xe0 - bl sub_080985F4 - movs r0, #0 - bl CopyBgTilemapBufferToVram - movs r0, #2 - bl CopyBgTilemapBufferToVram - movs r0, #1 - bl CopyBgTilemapBufferToVram - bl sub_08199A30 - b _0802CFC0 - .align 2, 0 -_0802CF5C: .4byte gUnknown_82D19F0 -_0802CF60: .4byte gUnknown_82D1A00 -_0802CF64: .4byte gUnknown_82CF8D0 -_0802CF68: .4byte gUnknown_82CF8F0 -_0802CF6C: .4byte gUnknown_82CFB1C -_0802CF70: .4byte gUnknown_82CFCCC -_0802CF74: .4byte gUnknown_82CFCEC -_0802CF78: .4byte gUnknown_82D063C -_0802CF7C: .4byte gUnknown_82D09F4 -_0802CF80: .4byte gUnknown_82D0A14 -_0802CF84: .4byte gUnknown_82D14C4 -_0802CF88: .4byte gUnknown_82CF8B0 -_0802CF8C: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802CFCE - bl sub_0802D8F0 - ldr r0, [r6] - bl sub_0802CB90 - ldr r0, [r6] - movs r1, #6 - bl sub_0802CC44 - movs r0, #3 - bl ShowBg - movs r0, #0 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #1 - bl HideBg -_0802CFC0: - ldr r1, [r6] - ldrh r0, [r1, #4] - adds r0, #1 - strh r0, [r1, #4] - b _0802CFCE -_0802CFCA: - movs r0, #1 - str r0, [r1] -_0802CFCE: - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0802CE44 - - thumb_func_start sub_0802CFD8 -sub_0802CFD8: @ 0x0802CFD8 - push {r4, lr} - ldr r4, _0802CFF0 - ldr r0, [r4] - ldrh r0, [r0, #4] - cmp r0, #1 - beq _0802D004 - cmp r0, #1 - bgt _0802CFF4 - cmp r0, #0 - beq _0802CFFE - b _0802D03E - .align 2, 0 -_0802CFF0: .4byte gUnknown_20229B4 -_0802CFF4: - cmp r0, #2 - beq _0802D016 - cmp r0, #3 - beq _0802D02E - b _0802D03E -_0802CFFE: - bl sub_0802DB14 - b _0802D024 -_0802D004: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802D03E - movs r0, #0 - bl sub_0802DC68 - b _0802D024 -_0802D016: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802D03E - bl sub_0802DCCC -_0802D024: - ldr r1, [r4] - ldrh r0, [r1, #4] - adds r0, #1 - strh r0, [r1, #4] - b _0802D03E -_0802D02E: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802D03E - ldr r1, [r4] - movs r0, #1 - str r0, [r1] -_0802D03E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0802CFD8 - - thumb_func_start sub_0802D044 -sub_0802D044: @ 0x0802D044 - push {r4, lr} - ldr r4, _0802D05C - ldr r0, [r4] - ldrh r0, [r0, #4] - cmp r0, #1 - beq _0802D070 - cmp r0, #1 - bgt _0802D060 - cmp r0, #0 - beq _0802D06A - b _0802D0AA - .align 2, 0 -_0802D05C: .4byte gUnknown_20229B4 -_0802D060: - cmp r0, #2 - beq _0802D082 - cmp r0, #3 - beq _0802D09A - b _0802D0AA -_0802D06A: - bl sub_0802DB14 - b _0802D090 -_0802D070: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802D0AA - movs r0, #1 - bl sub_0802DC68 - b _0802D090 -_0802D082: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802D0AA - bl sub_0802DCCC -_0802D090: - ldr r1, [r4] - ldrh r0, [r1, #4] - adds r0, #1 - strh r0, [r1, #4] - b _0802D0AA -_0802D09A: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802D0AA - ldr r1, [r4] - movs r0, #1 - str r0, [r1] -_0802D0AA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0802D044 - - thumb_func_start sub_0802D0B0 -sub_0802D0B0: @ 0x0802D0B0 - push {r4, r5, lr} - bl sub_0802C5A0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, _0802D0CC - ldr r0, [r0] - ldrh r0, [r0, #4] - cmp r0, #0 - beq _0802D0D0 - cmp r0, #1 - beq _0802D104 - b _0802D132 - .align 2, 0 -_0802D0CC: .4byte gUnknown_20229B4 -_0802D0D0: - movs r4, #0 - cmp r4, r5 - bge _0802D0EC -_0802D0D6: - ldr r0, _0802D100 - ldr r0, [r0] - lsls r1, r4, #1 - adds r0, #0x1c - adds r0, r0, r1 - ldrb r0, [r0] - bl ClearWindowTilemap - adds r4, #1 - cmp r4, r5 - blt _0802D0D6 -_0802D0EC: - movs r0, #0 - bl CopyBgTilemapBufferToVram - ldr r0, _0802D100 - ldr r1, [r0] - ldrh r0, [r1, #4] - adds r0, #1 - strh r0, [r1, #4] - b _0802D132 - .align 2, 0 -_0802D100: .4byte gUnknown_20229B4 -_0802D104: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802D132 - movs r4, #0 - cmp r4, r5 - bge _0802D12A -_0802D114: - ldr r0, _0802D138 - ldr r0, [r0] - lsls r1, r4, #1 - adds r0, #0x1c - adds r0, r0, r1 - ldrb r0, [r0] - bl RemoveWindow - adds r4, #1 - cmp r4, r5 - blt _0802D114 -_0802D12A: - ldr r0, _0802D138 - ldr r1, [r0] - movs r0, #1 - str r0, [r1] -_0802D132: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0802D138: .4byte gUnknown_20229B4 - thumb_func_end sub_0802D0B0 - - thumb_func_start sub_0802D13C -sub_0802D13C: @ 0x0802D13C - push {r4, r5, lr} - sub sp, #0xc - ldr r5, _0802D154 - ldr r0, [r5] - ldrh r4, [r0, #4] - cmp r4, #1 - beq _0802D198 - cmp r4, #1 - bgt _0802D158 - cmp r4, #0 - beq _0802D15E - b _0802D1E0 - .align 2, 0 -_0802D154: .4byte gUnknown_20229B4 -_0802D158: - cmp r4, #2 - beq _0802D1D0 - b _0802D1E0 -_0802D15E: - movs r0, #1 - movs r1, #8 - movs r2, #0x14 - movs r3, #2 - bl sub_0802D78C - ldr r1, [r5] - strh r0, [r1, #0x12] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0802D194 - movs r1, #2 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - ldr r0, [r5] - ldrb r0, [r0, #0x12] - movs r1, #2 - bl CopyWindowToVram - b _0802D1C6 - .align 2, 0 -_0802D194: .4byte gUnknown_85CCE71 -_0802D198: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802D1E0 - ldr r0, [r5] - ldrb r0, [r0, #0x12] - bl PutWindowTilemap - ldr r0, [r5] - ldrb r0, [r0, #0x12] - movs r1, #1 - movs r2, #0xe - bl DrawTextBorderOuter - movs r0, #0x17 - movs r1, #7 - movs r2, #0 - bl sub_0802D808 - movs r0, #0 - bl CopyBgTilemapBufferToVram -_0802D1C6: - ldr r1, [r5] - ldrh r0, [r1, #4] - adds r0, #1 - strh r0, [r1, #4] - b _0802D1E0 -_0802D1D0: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802D1E0 - ldr r1, [r5] - movs r0, #1 - str r0, [r1] -_0802D1E0: - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_0802D13C - - thumb_func_start sub_0802D1E8 -sub_0802D1E8: @ 0x0802D1E8 - push {r4, r5, lr} - sub sp, #0xc - ldr r5, _0802D200 - ldr r0, [r5] - ldrh r4, [r0, #4] - cmp r4, #1 - beq _0802D244 - cmp r4, #1 - bgt _0802D204 - cmp r4, #0 - beq _0802D20A - b _0802D282 - .align 2, 0 -_0802D200: .4byte gUnknown_20229B4 -_0802D204: - cmp r4, #2 - beq _0802D272 - b _0802D282 -_0802D20A: - movs r0, #2 - movs r1, #7 - movs r2, #0x1a - movs r3, #4 - bl sub_0802D78C - ldr r1, [r5] - strh r0, [r1, #0x12] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0802D240 - movs r1, #2 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - ldr r0, [r5] - ldrb r0, [r0, #0x12] - movs r1, #2 - bl CopyWindowToVram - b _0802D268 - .align 2, 0 -_0802D240: .4byte gUnknown_8277071 -_0802D244: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802D282 - ldr r0, [r5] - ldrb r0, [r0, #0x12] - bl PutWindowTilemap - ldr r0, [r5] - ldrb r0, [r0, #0x12] - movs r1, #1 - movs r2, #0xe - bl DrawTextBorderOuter - movs r0, #0 - bl CopyBgTilemapBufferToVram -_0802D268: - ldr r1, [r5] - ldrh r0, [r1, #4] - adds r0, #1 - strh r0, [r1, #4] - b _0802D282 -_0802D272: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802D282 - ldr r1, [r5] - movs r0, #1 - str r0, [r1] -_0802D282: - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0802D1E8 - - thumb_func_start sub_0802D28C -sub_0802D28C: @ 0x0802D28C - push {r4, r5, lr} - ldr r5, _0802D2A0 - ldr r0, [r5] - ldrh r4, [r0, #4] - cmp r4, #0 - beq _0802D2A4 - cmp r4, #1 - beq _0802D2BC - b _0802D2D2 - .align 2, 0 -_0802D2A0: .4byte gUnknown_20229B4 -_0802D2A4: - bl sub_0802D704 - bl MovementType_WalkSequenceUpLeftDownRight_callback - movs r0, #0 - bl CopyBgTilemapBufferToVram - ldr r1, [r5] - ldrh r0, [r1, #4] - adds r0, #1 - strh r0, [r1, #4] - b _0802D2D2 -_0802D2BC: - bl sub_0802D734 - cmp r0, #0 - bne _0802D2D2 - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802D2D2 - ldr r0, [r5] - str r4, [r0] -_0802D2D2: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_0802D28C - - thumb_func_start sub_0802D2D8 -sub_0802D2D8: @ 0x0802D2D8 - push {r4, r5, lr} - sub sp, #0xc - ldr r5, _0802D2F0 - ldr r0, [r5] - ldrh r4, [r0, #4] - cmp r4, #1 - beq _0802D334 - cmp r4, #1 - bgt _0802D2F4 - cmp r4, #0 - beq _0802D2FA - b _0802D372 - .align 2, 0 -_0802D2F0: .4byte gUnknown_20229B4 -_0802D2F4: - cmp r4, #2 - beq _0802D362 - b _0802D372 -_0802D2FA: - movs r0, #2 - movs r1, #8 - movs r2, #0x16 - movs r3, #4 - bl sub_0802D78C - ldr r1, [r5] - strh r0, [r1, #0x12] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0802D330 - movs r1, #2 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - ldr r0, [r5] - ldrb r0, [r0, #0x12] - movs r1, #2 - bl CopyWindowToVram - b _0802D358 - .align 2, 0 -_0802D330: .4byte gUnknown_85CCE7F -_0802D334: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802D372 - ldr r0, [r5] - ldrb r0, [r0, #0x12] - bl PutWindowTilemap - ldr r0, [r5] - ldrb r0, [r0, #0x12] - movs r1, #1 - movs r2, #0xe - bl DrawTextBorderOuter - movs r0, #0 - bl CopyBgTilemapBufferToVram -_0802D358: - ldr r1, [r5] - ldrh r0, [r1, #4] - adds r0, #1 - strh r0, [r1, #4] - b _0802D372 -_0802D362: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802D372 - ldr r1, [r5] - movs r0, #1 - str r0, [r1] -_0802D372: - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0802D2D8 - - thumb_func_start sub_0802D37C -sub_0802D37C: @ 0x0802D37C - push {r4, r5, lr} - sub sp, #0xc - ldr r5, _0802D394 - ldr r0, [r5] - ldrh r4, [r0, #4] - cmp r4, #1 - beq _0802D3D8 - cmp r4, #1 - bgt _0802D398 - cmp r4, #0 - beq _0802D39E - b _0802D416 - .align 2, 0 -_0802D394: .4byte gUnknown_20229B4 -_0802D398: - cmp r4, #2 - beq _0802D406 - b _0802D416 -_0802D39E: - movs r0, #7 - movs r1, #0xa - movs r2, #0x10 - movs r3, #2 - bl sub_0802D78C - ldr r1, [r5] - strh r0, [r1, #0x12] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0802D3D4 - movs r1, #2 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - ldr r0, [r5] - ldrb r0, [r0, #0x12] - movs r1, #2 - bl CopyWindowToVram - b _0802D3FC - .align 2, 0 -_0802D3D4: .4byte gUnknown_85CCE99 -_0802D3D8: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802D416 - ldr r0, [r5] - ldrb r0, [r0, #0x12] - bl PutWindowTilemap - ldr r0, [r5] - ldrb r0, [r0, #0x12] - movs r1, #1 - movs r2, #0xe - bl DrawTextBorderOuter - movs r0, #0 - bl CopyBgTilemapBufferToVram -_0802D3FC: - ldr r1, [r5] - ldrh r0, [r1, #4] - adds r0, #1 - strh r0, [r1, #4] - b _0802D416 -_0802D406: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802D416 - ldr r1, [r5] - movs r0, #1 - str r0, [r1] -_0802D416: - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0802D37C - - thumb_func_start sub_0802D420 -sub_0802D420: @ 0x0802D420 - push {r4, r5, lr} - ldr r5, _0802D434 - ldr r0, [r5] - ldrh r4, [r0, #4] - cmp r4, #0 - beq _0802D438 - cmp r4, #1 - beq _0802D446 - b _0802D452 - .align 2, 0 -_0802D434: .4byte gUnknown_20229B4 -_0802D438: - bl sub_0802CD38 - ldr r1, [r5] - ldrh r0, [r1, #4] - adds r0, #1 - strh r0, [r1, #4] - b _0802D452 -_0802D446: - bl sub_0802CD5C - cmp r0, #0 - bne _0802D452 - ldr r0, [r5] - str r4, [r0] -_0802D452: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_0802D420 - - thumb_func_start sub_0802D458 -sub_0802D458: @ 0x0802D458 - push {lr} - ldr r1, _0802D478 - ldr r0, [r1] - movs r2, #0 - strb r2, [r0, #0xa] - ldr r0, [r1] - strb r2, [r0, #0xb] - ldr r2, [r1] - movs r0, #6 - strb r0, [r2, #0xc] - ldr r0, [r1] - ldrb r0, [r0, #0xc] - bl sub_0802D994 - pop {r0} - bx r0 - .align 2, 0 -_0802D478: .4byte gUnknown_20229B4 - thumb_func_end sub_0802D458 - - thumb_func_start sub_0802D47C -sub_0802D47C: @ 0x0802D47C - push {r4, lr} - ldr r0, _0802D490 - ldr r2, [r0] - ldrb r3, [r2, #0xa] - adds r4, r0, #0 - cmp r3, #0 - beq _0802D494 - cmp r3, #1 - beq _0802D4CE - b _0802D4D2 - .align 2, 0 -_0802D490: .4byte gUnknown_20229B4 -_0802D494: - ldrb r0, [r2, #0xb] - adds r0, #1 - strb r0, [r2, #0xb] - ldr r1, [r4] - ldrb r0, [r1, #0xb] - cmp r0, #0xa - bls _0802D4BE - strb r3, [r1, #0xb] - ldr r0, [r4] - ldrb r1, [r0, #0xc] - adds r1, #1 - strb r1, [r0, #0xc] - ldr r1, [r4] - ldrb r0, [r1, #0xc] - cmp r0, #9 - bls _0802D4BE - strb r3, [r1, #0xc] - ldr r1, [r4] - ldrb r0, [r1, #0xa] - adds r0, #1 - strb r0, [r1, #0xa] -_0802D4BE: - ldr r0, [r4] - ldrb r0, [r0, #0xc] - bl sub_0802D994 - ldr r0, [r4] - ldrb r0, [r0, #0xc] - cmp r0, #7 - bne _0802D4D2 -_0802D4CE: - movs r0, #0 - b _0802D4D4 -_0802D4D2: - movs r0, #1 -_0802D4D4: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0802D47C - - thumb_func_start sub_0802D4DC -sub_0802D4DC: @ 0x0802D4DC - push {r4, r5, lr} - sub sp, #0xc - adds r4, r1, #0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r5, _0802D568 - ldr r1, [r5] - adds r1, #0x26 - bl sub_080D5EC8 - ldr r0, [r5] - adds r0, #0x66 - adds r1, r4, #0 - movs r2, #0 - movs r3, #1 - bl sub_080089D8 - bl DynamicPlaceholderTextUtil_Reset - ldr r1, [r5] - adds r1, #0x26 - movs r0, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - ldr r1, [r5] - adds r1, #0x66 - movs r0, #1 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - ldr r0, [r5] - adds r0, #0xa6 - ldr r1, _0802D56C - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - movs r0, #4 - movs r1, #8 - movs r2, #0x16 - movs r3, #4 - bl sub_0802D78C - ldr r2, [r5] - movs r4, #0 - movs r3, #0 - strh r0, [r2, #0x12] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r2, #0xa6 - movs r1, #2 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - str r3, [sp, #8] - movs r1, #1 - bl AddTextPrinterParameterized - ldr r0, [r5] - ldrb r0, [r0, #0x12] - movs r1, #2 - bl CopyWindowToVram - ldr r1, [r5] - ldr r0, _0802D570 - strh r0, [r1, #0x14] - strb r4, [r1, #0xd] - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0802D568: .4byte gUnknown_20229B4 -_0802D56C: .4byte gUnknown_85CCE36 -_0802D570: .4byte 0x0000016F - thumb_func_end sub_0802D4DC - - thumb_func_start sub_0802D574 -sub_0802D574: @ 0x0802D574 - push {r4, r5, r6, lr} - sub sp, #0xc - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _0802D5E4 - ldr r1, [r4] - adds r1, #0x26 - bl sub_080D5EC8 - bl DynamicPlaceholderTextUtil_Reset - ldr r1, [r4] - adds r1, #0x26 - movs r0, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - ldr r0, [r4] - adds r0, #0xa6 - ldr r1, _0802D5E8 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - movs r0, #4 - movs r1, #8 - movs r2, #0x16 - movs r3, #4 - bl sub_0802D78C - ldr r2, [r4] - movs r6, #0 - movs r5, #0 - strh r0, [r2, #0x12] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r2, #0xa6 - movs r1, #2 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - str r5, [sp, #8] - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - ldr r0, [r4] - ldrb r0, [r0, #0x12] - movs r1, #2 - bl CopyWindowToVram - ldr r0, [r4] - strh r5, [r0, #0x14] - strb r6, [r0, #0xd] - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0802D5E4: .4byte gUnknown_20229B4 -_0802D5E8: .4byte gUnknown_85CCE52 - thumb_func_end sub_0802D574 - - thumb_func_start sub_0802D5EC -sub_0802D5EC: @ 0x0802D5EC - push {r4, r5, r6, lr} - sub sp, #0xc - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _0802D65C - ldr r1, [r4] - adds r1, #0x26 - bl sub_080D5EC8 - bl DynamicPlaceholderTextUtil_Reset - ldr r1, [r4] - adds r1, #0x26 - movs r0, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - ldr r0, [r4] - adds r0, #0xa6 - ldr r1, _0802D660 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - movs r0, #4 - movs r1, #9 - movs r2, #0x16 - movs r3, #2 - bl sub_0802D78C - ldr r2, [r4] - movs r6, #0 - movs r5, #0 - strh r0, [r2, #0x12] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r2, #0xa6 - movs r1, #2 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - str r5, [sp, #8] - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - ldr r0, [r4] - ldrb r0, [r0, #0x12] - movs r1, #2 - bl CopyWindowToVram - ldr r0, [r4] - strh r5, [r0, #0x14] - strb r6, [r0, #0xd] - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0802D65C: .4byte gUnknown_20229B4 -_0802D660: .4byte gUnknown_85CCE65 - thumb_func_end sub_0802D5EC - - thumb_func_start sub_0802D664 -sub_0802D664: @ 0x0802D664 - push {r4, lr} - ldr r4, _0802D67C - ldr r0, [r4] - ldrb r0, [r0, #0xd] - cmp r0, #1 - beq _0802D6B8 - cmp r0, #1 - bgt _0802D680 - cmp r0, #0 - beq _0802D68A - b _0802D6FC - .align 2, 0 -_0802D67C: .4byte gUnknown_20229B4 -_0802D680: - cmp r0, #2 - beq _0802D6DE - cmp r0, #3 - beq _0802D6F2 - b _0802D6FC -_0802D68A: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802D6FC - ldr r0, [r4] - ldrb r0, [r0, #0x12] - bl PutWindowTilemap - ldr r0, [r4] - ldrb r0, [r0, #0x12] - movs r1, #1 - movs r2, #0xe - bl DrawTextBorderOuter - movs r0, #0 - bl CopyBgTilemapBufferToVram - ldr r1, [r4] - ldrb r0, [r1, #0xd] - adds r0, #1 - strb r0, [r1, #0xd] - b _0802D6FC -_0802D6B8: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802D6FC - ldr r1, [r4] - ldrh r0, [r1, #0x14] - cmp r0, #0 - bne _0802D6D0 - ldrb r0, [r1, #0xd] - adds r0, #2 - b _0802D6F0 -_0802D6D0: - ldrh r0, [r1, #0x14] - bl PlayFanfare - ldr r1, [r4] - ldrb r0, [r1, #0xd] - adds r0, #1 - strb r0, [r1, #0xd] -_0802D6DE: - bl IsFanfareTaskInactive - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0802D6FC - ldr r0, _0802D6F8 - ldr r1, [r0] - ldrb r0, [r1, #0xd] - adds r0, #1 -_0802D6F0: - strb r0, [r1, #0xd] -_0802D6F2: - movs r0, #0 - b _0802D6FE - .align 2, 0 -_0802D6F8: .4byte gUnknown_20229B4 -_0802D6FC: - movs r0, #1 -_0802D6FE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0802D664 - - thumb_func_start sub_0802D704 -sub_0802D704: @ 0x0802D704 - push {r4, lr} - ldr r4, _0802D730 - ldr r0, [r4] - ldrh r0, [r0, #0x12] - cmp r0, #0xff - beq _0802D728 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl rbox_fill_rectangle - ldr r0, [r4] - ldrb r0, [r0, #0x12] - movs r1, #1 - bl CopyWindowToVram - ldr r1, [r4] - movs r0, #0 - strb r0, [r1, #0xd] -_0802D728: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802D730: .4byte gUnknown_20229B4 - thumb_func_end sub_0802D704 - - thumb_func_start sub_0802D734 -sub_0802D734: @ 0x0802D734 - push {r4, lr} - ldr r4, _0802D744 - ldr r1, [r4] - ldrh r0, [r1, #0x12] - cmp r0, #0xff - bne _0802D748 -_0802D740: - movs r0, #0 - b _0802D774 - .align 2, 0 -_0802D744: .4byte gUnknown_20229B4 -_0802D748: - ldrb r0, [r1, #0xd] - cmp r0, #0 - bne _0802D76E - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802D772 - ldr r0, [r4] - ldrb r0, [r0, #0x12] - bl RemoveWindow - ldr r1, [r4] - movs r0, #0xff - strh r0, [r1, #0x12] - ldrb r0, [r1, #0xd] - adds r0, #1 - strb r0, [r1, #0xd] - b _0802D740 -_0802D76E: - cmp r0, #1 - beq _0802D740 -_0802D772: - movs r0, #1 -_0802D774: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0802D734 - - thumb_func_start sub_0802D77C -sub_0802D77C: @ 0x0802D77C - push {lr} - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0802D77C - - thumb_func_start sub_0802D78C -sub_0802D78C: @ 0x0802D78C - push {r4, r5, r6, lr} - sub sp, #8 - ldr r6, _0802D7F4 - ldr r4, [sp] - ands r4, r6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x10 - ldr r5, _0802D7F8 - ands r4, r5 - orrs r4, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #8 - ldr r0, _0802D7FC - ands r4, r0 - orrs r4, r1 - lsls r2, r2, #0x18 - ldr r0, _0802D800 - ands r4, r0 - orrs r4, r2 - str r4, [sp] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r0, [sp, #4] - ands r0, r6 - orrs r0, r3 - ands r0, r5 - movs r1, #0xf0 - lsls r1, r1, #4 - orrs r0, r1 - ldr r1, _0802D804 - ands r0, r1 - movs r1, #0xcc - lsls r1, r1, #0xe - orrs r0, r1 - str r0, [sp, #4] - mov r0, sp - bl AddWindow - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x11 - bl FillWindowPixelBuffer - adds r0, r4, #0 - add sp, #8 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0802D7F4: .4byte 0xFFFFFF00 -_0802D7F8: .4byte 0xFFFF00FF -_0802D7FC: .4byte 0xFF00FFFF -_0802D800: .4byte 0x00FFFFFF -_0802D804: .4byte 0x0000FFFF - thumb_func_end sub_0802D78C - - thumb_func_start sub_0802D808 -sub_0802D808: @ 0x0802D808 - push {r4, r5, lr} - sub sp, #0x14 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r5, _0802D870 - ldr r3, [sp, #0xc] - ands r3, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x10 - ldr r4, _0802D874 - ands r3, r4 - orrs r3, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #8 - ldr r0, _0802D878 - ands r3, r0 - orrs r3, r1 - ldr r0, _0802D87C - ands r3, r0 - movs r0, #0xc0 - lsls r0, r0, #0x13 - orrs r3, r0 - str r3, [sp, #0xc] - ldr r0, [sp, #0x10] - ands r0, r5 - movs r1, #4 - orrs r0, r1 - ands r0, r4 - movs r1, #0x80 - lsls r1, r1, #2 - orrs r0, r1 - ldr r1, _0802D880 - ands r0, r1 - movs r1, #0xd8 - lsls r1, r1, #0xd - orrs r0, r1 - str r0, [sp, #0x10] - movs r0, #1 - str r0, [sp] - movs r0, #0xd - str r0, [sp, #4] - str r2, [sp, #8] - add r0, sp, #0xc - movs r1, #1 - movs r2, #2 - movs r3, #2 - bl sub_08198C08 - add sp, #0x14 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0802D870: .4byte 0xFFFFFF00 -_0802D874: .4byte 0xFFFF00FF -_0802D878: .4byte 0xFF00FFFF -_0802D87C: .4byte 0x00FFFFFF -_0802D880: .4byte 0x0000FFFF - thumb_func_end sub_0802D808 - - thumb_func_start sub_0802D884 -sub_0802D884: @ 0x0802D884 - push {r4, lr} - sub sp, #0x10 - ldr r1, _0802D8E4 - add r0, sp, #0xc - movs r2, #3 - bl memcpy - movs r0, #0 - bl PutWindowTilemap - movs r0, #1 - bl PutWindowTilemap - movs r0, #0 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #1 - movs r1, #0 - bl FillWindowPixelBuffer - add r0, sp, #0xc - str r0, [sp] - movs r4, #0 - str r4, [sp, #4] - ldr r0, _0802D8E8 - str r0, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 - add r0, sp, #0xc - str r0, [sp] - str r4, [sp, #4] - ldr r0, _0802D8EC - str r0, [sp, #8] - movs r0, #1 - movs r1, #0 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 - add sp, #0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802D8E4: .4byte gUnknown_82D1A68 -_0802D8E8: .4byte gUnknown_85CCDF8 -_0802D8EC: .4byte gUnknown_85CCDFB - thumb_func_end sub_0802D884 - - thumb_func_start sub_0802D8F0 -sub_0802D8F0: @ 0x0802D8F0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - bl sub_0802C5A0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sl, r0 - ldr r1, _0802D96C - subs r0, #2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r5, [r0] - movs r6, #0 - cmp r6, sl - bge _0802D95A - ldr r0, _0802D970 - mov sb, r0 - ldr r1, _0802D974 - mov r8, r1 -_0802D91E: - lsls r4, r6, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl sub_0802C5BC - adds r1, r0, #0 - ldrh r0, [r1] - lsls r0, r0, #2 - add r0, sb - ldrb r3, [r0, #1] - mov r2, r8 - ldr r0, [r2] - movs r7, #0 - ldrsh r2, [r5, r7] - adds r3, #0x70 - str r4, [sp] - bl sub_0802C6C8 - mov r1, r8 - ldr r0, [r1] - movs r2, #0 - ldrsh r1, [r5, r2] - movs r2, #0x70 - adds r3, r4, #0 - bl sub_0802CB3C - adds r5, #2 - adds r6, #1 - cmp r6, sl - blt _0802D91E -_0802D95A: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0802D96C: .4byte gUnknown_82D1AEC -_0802D970: .4byte gUnknown_82D45C8 -_0802D974: .4byte gUnknown_20229B4 - thumb_func_end sub_0802D8F0 - - thumb_func_start sub_0802D978 -sub_0802D978: @ 0x0802D978 - ldr r2, _0802D98C - ldr r2, [r2] - lsls r0, r0, #2 - ldr r3, _0802D990 - adds r2, r2, r3 - adds r2, r2, r0 - ldr r0, [r2] - strh r1, [r0, #0x26] - bx lr - .align 2, 0 -_0802D98C: .4byte gUnknown_20229B4 -_0802D990: .4byte 0x000081A8 - thumb_func_end sub_0802D978 - - thumb_func_start sub_0802D994 -sub_0802D994: @ 0x0802D994 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0802D9BC - ldr r0, [r0] - adds r1, r4, #0 - bl sub_0802CC44 - ldr r0, _0802D9C0 - adds r4, r4, r0 - ldrb r0, [r4] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #0xd - movs r0, #2 - movs r2, #0 - bl ChangeBgY - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802D9BC: .4byte gUnknown_20229B4 -_0802D9C0: .4byte gUnknown_82D1A6B - thumb_func_end sub_0802D994 - - thumb_func_start sub_0802D9C4 -sub_0802D9C4: @ 0x0802D9C4 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r5, #0 - movs r6, #0 -_0802D9CE: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _0802D9E2 - ldr r0, _0802D9FC - ldr r0, [r0] - adds r1, r5, #0 - bl sub_0802C808 - adds r6, #1 -_0802D9E2: - lsrs r4, r4, #1 - adds r5, #1 - cmp r5, #4 - ble _0802D9CE - subs r0, r6, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_0802DD04 - adds r0, r6, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0802D9FC: .4byte gUnknown_20229B4 - thumb_func_end sub_0802D9C4 - - thumb_func_start sub_0802DA00 -sub_0802DA00: @ 0x0802DA00 - push {r4, lr} - sub sp, #0x10 - mov r1, sp - movs r0, #0x40 - strb r0, [r1] - movs r0, #5 - strb r0, [r1, #1] - movs r0, #8 - strb r0, [r1, #2] - movs r0, #0x6c - strh r0, [r1, #4] - movs r4, #6 - strh r4, [r1, #6] - ldr r0, _0802DA54 - str r0, [sp, #8] - ldr r0, _0802DA58 - str r0, [sp, #0xc] - movs r0, #2 - bl sub_08034AAC - movs r0, #0 - movs r1, #0 - mov r2, sp - bl sub_08034B6C - mov r1, sp - movs r0, #4 - strb r0, [r1, #1] - movs r0, #0x1e - strh r0, [r1, #4] - mov r0, sp - strh r4, [r0, #6] - movs r0, #1 - movs r1, #0 - mov r2, sp - bl sub_08034B6C - add sp, #0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802DA54: .4byte gUnknown_82D1A78 -_0802DA58: .4byte gUnknown_82D1A80 - thumb_func_end sub_0802DA00 - - thumb_func_start sub_0802DA5C -sub_0802DA5C: @ 0x0802DA5C - push {lr} - adds r1, r0, #0 - movs r0, #0 - bl sub_08034E9C - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0802DA5C - - thumb_func_start sub_0802DA6C -sub_0802DA6C: @ 0x0802DA6C - push {lr} - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #1 - bl sub_08034E9C - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0802DA6C - - thumb_func_start sub_0802DA80 -sub_0802DA80: @ 0x0802DA80 - push {lr} - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, _0802DA94 - ldr r0, [r0] - bl sub_0802C8E4 - pop {r0} - bx r0 - .align 2, 0 -_0802DA94: .4byte gUnknown_20229B4 - thumb_func_end sub_0802DA80 - - thumb_func_start sub_0802DA98 -sub_0802DA98: @ 0x0802DA98 - push {lr} - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, _0802DAAC - ldr r0, [r0] - bl sub_0802C97C - pop {r0} - bx r0 - .align 2, 0 -_0802DAAC: .4byte gUnknown_20229B4 - thumb_func_end sub_0802DA98 - - thumb_func_start sub_0802DAB0 -sub_0802DAB0: @ 0x0802DAB0 - push {lr} - adds r1, r0, #0 - ldr r0, _0802DAC0 - ldr r0, [r0] - bl sub_0802C90C - pop {r1} - bx r1 - .align 2, 0 -_0802DAC0: .4byte gUnknown_20229B4 - thumb_func_end sub_0802DAB0 - - thumb_func_start sub_0802DAC4 -sub_0802DAC4: @ 0x0802DAC4 - push {lr} - ldr r0, _0802DAD4 - ldr r0, [r0] - bl sub_0802C9A4 - pop {r0} - bx r0 - .align 2, 0 -_0802DAD4: .4byte gUnknown_20229B4 - thumb_func_end sub_0802DAC4 - - thumb_func_start sub_0802DAD8 -sub_0802DAD8: @ 0x0802DAD8 - push {lr} - ldr r0, _0802DAE8 - ldr r0, [r0] - bl sub_0802CA30 - pop {r0} - bx r0 - .align 2, 0 -_0802DAE8: .4byte gUnknown_20229B4 - thumb_func_end sub_0802DAD8 - - thumb_func_start sub_0802DAEC -sub_0802DAEC: @ 0x0802DAEC - push {lr} - adds r1, r0, #0 - ldr r0, _0802DAFC - ldr r0, [r0] - bl sub_0802CA64 - pop {r0} - bx r0 - .align 2, 0 -_0802DAFC: .4byte gUnknown_20229B4 - thumb_func_end sub_0802DAEC - - thumb_func_start sub_0802DB00 -sub_0802DB00: @ 0x0802DB00 - push {lr} - ldr r0, _0802DB10 - ldr r0, [r0] - bl sub_0802CA8C - pop {r1} - bx r1 - .align 2, 0 -_0802DB10: .4byte gUnknown_20229B4 - thumb_func_end sub_0802DB00 - - thumb_func_start sub_0802DB14 -sub_0802DB14: @ 0x0802DB14 - push {r4, r5, r6, r7, lr} - sub sp, #8 - bl sub_0802C5A0 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - ldr r1, _0802DBB4 - subs r0, r7, #2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r4, [r0] - ldr r2, _0802DBB8 - ldr r0, [sp] - ands r0, r2 - ldr r1, _0802DBBC - ands r0, r1 - movs r1, #0x80 - lsls r1, r1, #0x14 - orrs r0, r1 - str r0, [sp] - ldr r0, [sp, #4] - ands r0, r2 - movs r1, #2 - orrs r0, r1 - ldr r1, _0802DBC0 - ands r0, r1 - movs r1, #0x80 - lsls r1, r1, #2 - orrs r0, r1 - ldr r1, _0802DBC4 - ands r0, r1 - movs r1, #0xd8 - lsls r1, r1, #0xd - orrs r0, r1 - str r0, [sp, #4] - movs r5, #0 - cmp r5, r7 - bge _0802DBA4 - mov r6, sp -_0802DB62: - ldrb r0, [r4] - lsls r0, r0, #8 - ldr r2, _0802DBC0 - ldr r1, [sp] - ands r1, r2 - orrs r1, r0 - str r1, [sp] - ldrb r2, [r4, #2] - lsls r2, r2, #0x10 - ldr r0, _0802DBC8 - ands r0, r1 - orrs r0, r2 - str r0, [sp] - mov r0, sp - bl AddWindow - ldr r1, _0802DBCC - ldr r1, [r1] - lsls r2, r5, #1 - adds r1, #0x1c - adds r1, r1, r2 - strh r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl ClearWindowTilemap - ldrh r0, [r6, #6] - adds r0, #0x10 - strh r0, [r6, #6] - adds r4, #4 - adds r5, #1 - cmp r5, r7 - blt _0802DB62 -_0802DBA4: - movs r0, #0 - bl CopyBgTilemapBufferToVram - add sp, #8 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0802DBB4: .4byte gUnknown_82D1AC0 -_0802DBB8: .4byte 0xFFFFFF00 -_0802DBBC: .4byte 0x00FFFFFF -_0802DBC0: .4byte 0xFFFF00FF -_0802DBC4: .4byte 0x0000FFFF -_0802DBC8: .4byte 0xFF00FFFF -_0802DBCC: .4byte gUnknown_20229B4 - thumb_func_end sub_0802DB14 - - thumb_func_start sub_0802DBD0 -sub_0802DBD0: @ 0x0802DBD0 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #0x10 - adds r5, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - add r0, sp, #0xc - strb r1, [r0] - strb r2, [r0, #1] - strb r3, [r0, #2] - ldr r6, _0802DC64 - ldr r0, [r6] - lsls r1, r5, #1 - mov r8, r1 - adds r0, #0x1c - add r0, r8 - ldrb r0, [r0] - movs r1, #0 - bl FillWindowPixelBuffer - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - adds r0, r5, #0 - bl sub_0802C5DC - adds r1, r0, #0 - movs r2, #1 - rsbs r2, r2, #0 - mov sb, r2 - movs r0, #0 - bl sub_08005DAC - movs r4, #0x40 - subs r4, r4, r0 - lsrs r4, r4, #1 - adds r0, r5, #0 - bl sub_0802C5DC - adds r1, r0, #0 - ldr r0, [r6] - adds r0, #0x1c - add r0, r8 - ldrb r0, [r0] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - add r2, sp, #0xc - str r2, [sp] - mov r2, sb - str r2, [sp, #4] - str r1, [sp, #8] - movs r1, #0 - adds r2, r4, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 - ldr r0, [r6] - adds r0, #0x1c - add r0, r8 - ldrb r0, [r0] - movs r1, #2 - bl CopyWindowToVram - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0802DC64: .4byte gUnknown_20229B4 - thumb_func_end sub_0802DBD0 - - thumb_func_start sub_0802DC68 -sub_0802DC68: @ 0x0802DC68 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_0802C5A0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r4, #0 - bne _0802DC92 - movs r4, #0 - cmp r4, r5 - bge _0802DCC4 -_0802DC7E: - adds r0, r4, #0 - movs r1, #0 - movs r2, #2 - movs r3, #3 - bl sub_0802DBD0 - adds r4, #1 - cmp r4, r5 - blt _0802DC7E - b _0802DCC4 -_0802DC92: - bl sub_0802C5B0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - movs r4, #0 - cmp r4, r5 - bge _0802DCC4 -_0802DCA0: - cmp r6, r4 - beq _0802DCB2 - adds r0, r4, #0 - movs r1, #0 - movs r2, #2 - movs r3, #3 - bl sub_0802DBD0 - b _0802DCBE -_0802DCB2: - adds r0, r4, #0 - movs r1, #0 - movs r2, #4 - movs r3, #5 - bl sub_0802DBD0 -_0802DCBE: - adds r4, #1 - cmp r4, r5 - blt _0802DCA0 -_0802DCC4: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0802DC68 - - thumb_func_start sub_0802DCCC -sub_0802DCCC: @ 0x0802DCCC - push {r4, r5, lr} - bl sub_0802C5A0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - movs r4, #0 - cmp r4, r5 - bge _0802DCF2 -_0802DCDC: - ldr r0, _0802DD00 - ldr r0, [r0] - lsls r1, r4, #1 - adds r0, #0x1c - adds r0, r0, r1 - ldrb r0, [r0] - bl PutWindowTilemap - adds r4, #1 - cmp r4, r5 - blt _0802DCDC -_0802DCF2: - movs r0, #0 - bl CopyBgTilemapBufferToVram - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0802DD00: .4byte gUnknown_20229B4 - thumb_func_end sub_0802DCCC - - thumb_func_start sub_0802DD04 -sub_0802DD04: @ 0x0802DD04 - push {r4, lr} - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - ldr r0, _0802DD48 - ldr r2, [r0] - movs r0, #0 - str r0, [r2, #0x18] - lsrs r1, r1, #0x19 - lsls r1, r1, #0x10 - movs r0, #1 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - ands r4, r0 - lsls r4, r4, #8 - subs r4, #0x28 - lsls r4, r4, #8 - adds r1, r4, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #1 - bl ShowBg - ldr r0, _0802DD4C - movs r1, #4 - bl CreateTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802DD48: .4byte gUnknown_20229B4 -_0802DD4C: .4byte sub_0802DD88 - thumb_func_end sub_0802DD04 - - thumb_func_start sub_0802DD50 -sub_0802DD50: @ 0x0802DD50 - push {r4, lr} - ldr r4, _0802DD60 - ldr r0, [r4] - ldr r0, [r0, #0x18] - cmp r0, #0x1f - bls _0802DD64 - movs r0, #0 - b _0802DD82 - .align 2, 0 -_0802DD60: .4byte gUnknown_20229B4 -_0802DD64: - movs r0, #1 - movs r1, #0x80 - movs r2, #1 - bl ChangeBgY - ldr r1, [r4] - ldr r0, [r1, #0x18] - adds r0, #1 - str r0, [r1, #0x18] - cmp r0, #0x1f - bls _0802DD80 - movs r0, #1 - bl HideBg -_0802DD80: - movs r0, #1 -_0802DD82: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0802DD50 - - thumb_func_start sub_0802DD88 -sub_0802DD88: @ 0x0802DD88 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl sub_0802DD50 - cmp r0, #0 - bne _0802DD9C - adds r0, r4, #0 - bl DestroyTask -_0802DD9C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0802DD88 - - thumb_func_start sub_0802DDA4 -sub_0802DDA4: @ 0x0802DDA4 - push {lr} - sub sp, #0xc - mov r2, sp - movs r1, #1 - strb r1, [r2] - ldrh r1, [r0] - strh r1, [r2, #2] - ldr r1, [r0, #4] - str r1, [sp, #8] - ldr r0, [r0, #8] - str r0, [sp, #4] - mov r0, sp - bl sub_0800F934 - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0802DDA4 - - thumb_func_start sub_0802DDC8 -sub_0802DDC8: @ 0x0802DDC8 - push {r4, lr} - sub sp, #0xc - adds r4, r1, #0 - ldr r3, _0802DDFC - lsls r2, r0, #4 - adds r0, r2, r3 - ldrh r1, [r0] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - movs r1, #0xbc - lsls r1, r1, #6 - cmp r0, r1 - bne _0802DDF8 - adds r1, r3, #2 - adds r1, r2, r1 - mov r0, sp - movs r2, #0xc - bl memcpy - mov r0, sp - ldrb r0, [r0] - cmp r0, #1 - beq _0802DE00 -_0802DDF8: - movs r0, #0 - b _0802DE10 - .align 2, 0 -_0802DDFC: .4byte gUnknown_3003130 -_0802DE00: - mov r0, sp - ldrh r0, [r0, #2] - strh r0, [r4] - ldr r0, [sp, #8] - str r0, [r4, #4] - ldr r0, [sp, #4] - str r0, [r4, #8] - movs r0, #1 -_0802DE10: - add sp, #0xc - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0802DDC8 - - thumb_func_start sub_0802DE18 -sub_0802DE18: @ 0x0802DE18 - push {lr} - sub sp, #0xc - mov r2, sp - movs r1, #2 - strb r1, [r2] - str r0, [sp, #4] - mov r0, sp - bl sub_0800F934 - add sp, #0xc - pop {r0} - bx r0 - thumb_func_end sub_0802DE18 - - thumb_func_start sub_0802DE30 -sub_0802DE30: @ 0x0802DE30 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0xc - mov r3, sp - movs r2, #3 - strb r2, [r3] - ldr r3, [r1, #8] - lsls r3, r3, #0xf - ldr r2, [sp, #8] - ldr r4, _0802DEAC - mov r8, r4 - ands r2, r4 - orrs r2, r3 - str r2, [sp, #8] - mov r6, sp - ldrb r2, [r1, #1] - movs r5, #0x1f - adds r3, r5, #0 - ands r3, r2 - ldrb r4, [r6, #3] - movs r2, #0x20 - rsbs r2, r2, #0 - ands r2, r4 - orrs r2, r3 - strb r2, [r6, #3] - mov r3, sp - ldrb r2, [r1] - strb r2, [r3, #1] - ldrh r2, [r1, #2] - strh r2, [r3, #6] - mov r4, sp - ldrh r2, [r1, #4] - mov r1, r8 - ands r2, r1 - ldrh r3, [r4, #8] - ldr r1, _0802DEB0 - ands r1, r3 - orrs r1, r2 - strh r1, [r4, #8] - mov r2, sp - ldrh r1, [r0, #0x10] - strb r1, [r2, #2] - mov r3, sp - ldr r1, [r0, #0x14] - lsls r1, r1, #5 - ldrb r2, [r3, #3] - ands r5, r2 - orrs r5, r1 - strb r5, [r3, #3] - mov r1, sp - ldrh r0, [r0, #0xe] - strh r0, [r1, #4] - mov r0, sp - bl sub_0800F934 - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0802DEAC: .4byte 0x00007FFF -_0802DEB0: .4byte 0xFFFF8000 - thumb_func_end sub_0802DE30 - - thumb_func_start sub_0802DEB4 -sub_0802DEB4: @ 0x0802DEB4 - push {r4, r5, lr} - sub sp, #0xc - adds r5, r0, #0 - adds r4, r1, #0 - ldr r2, _0802DF1C - ldrh r0, [r2] - movs r1, #0xff - lsls r1, r1, #8 - ands r1, r0 - movs r0, #0xbc - lsls r0, r0, #6 - cmp r1, r0 - bne _0802DF20 - adds r1, r2, #2 - mov r0, sp - movs r2, #0xc - bl memcpy - mov r0, sp - ldrb r0, [r0] - cmp r0, #3 - bne _0802DF20 - ldr r0, [sp, #8] - lsrs r0, r0, #0xf - str r0, [r4, #8] - mov r0, sp - ldrb r1, [r0, #3] - lsls r0, r1, #0x1b - lsrs r0, r0, #0x1b - strb r0, [r4, #1] - mov r0, sp - ldrb r0, [r0, #1] - strb r0, [r4] - mov r0, sp - ldrh r0, [r0, #6] - strh r0, [r4, #2] - mov r0, sp - ldrh r0, [r0, #8] - lsls r0, r0, #0x11 - lsrs r0, r0, #0x11 - strh r0, [r4, #4] - mov r0, sp - ldrb r0, [r0, #2] - strh r0, [r5, #0x10] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x1d - str r1, [r5, #0x14] - mov r0, sp - ldrh r0, [r0, #4] - strh r0, [r5, #0xe] - movs r0, #1 - b _0802DF22 - .align 2, 0 -_0802DF1C: .4byte gUnknown_3003130 -_0802DF20: - movs r0, #0 -_0802DF22: - add sp, #0xc - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0802DEB4 - - thumb_func_start sub_0802DF2C -sub_0802DF2C: @ 0x0802DF2C - push {r4, lr} - sub sp, #0xc - mov r4, sp - movs r3, #4 - strb r3, [r4] - ldrh r3, [r0, #0x10] - strb r3, [r4, #1] - ldr r3, [r0, #0x14] - strb r3, [r4, #2] - ldr r3, [r0, #0x18] - strb r3, [r4, #3] - mov r3, sp - ldrh r0, [r0, #0xe] - strh r0, [r3, #4] - mov r0, sp - strb r1, [r0, #6] - strh r2, [r0, #8] - bl sub_0800F934 - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0802DF2C - - thumb_func_start sub_0802DF5C -sub_0802DF5C: @ 0x0802DF5C - push {r4, r5, r6, lr} - sub sp, #0xc - adds r4, r0, #0 - adds r5, r2, #0 - adds r6, r3, #0 - ldr r3, _0802DFB8 - lsls r2, r1, #4 - adds r0, r2, r3 - ldrh r1, [r0] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - movs r1, #0xbc - lsls r1, r1, #6 - cmp r0, r1 - bne _0802DFBC - adds r1, r3, #2 - adds r1, r2, r1 - mov r0, sp - movs r2, #0xc - bl memcpy - mov r0, sp - ldrb r0, [r0] - cmp r0, #4 - bne _0802DFBC - mov r0, sp - ldrb r0, [r0, #1] - strh r0, [r4, #0x10] - mov r0, sp - ldrb r0, [r0, #2] - str r0, [r4, #0x14] - mov r0, sp - ldrb r0, [r0, #3] - str r0, [r4, #0x18] - mov r0, sp - ldrh r0, [r0, #4] - strh r0, [r4, #0xe] - mov r0, sp - ldrb r0, [r0, #6] - strb r0, [r5] - mov r0, sp - ldrh r0, [r0, #8] - strh r0, [r6] - movs r0, #1 - b _0802DFBE - .align 2, 0 -_0802DFB8: .4byte gUnknown_3003130 -_0802DFBC: - movs r0, #0 -_0802DFBE: - add sp, #0xc - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0802DF5C - - thumb_func_start sub_0802DFC8 -sub_0802DFC8: @ 0x0802DFC8 - push {r4, lr} - sub sp, #0xc - adds r4, r0, #0 - ldr r3, _0802E014 - lsls r2, r1, #4 - adds r0, r2, r3 - ldrh r1, [r0] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - movs r1, #0xbc - lsls r1, r1, #6 - cmp r0, r1 - bne _0802E018 - adds r1, r3, #2 - adds r1, r2, r1 - mov r0, sp - movs r2, #0xc - bl memcpy - mov r0, sp - ldrb r0, [r0] - cmp r0, #4 - bne _0802E018 - mov r0, sp - ldrb r0, [r0, #1] - strh r0, [r4, #0x10] - mov r0, sp - ldrb r0, [r0, #2] - str r0, [r4, #0x14] - mov r0, sp - ldrb r0, [r0, #3] - str r0, [r4, #0x18] - mov r0, sp - ldrh r0, [r0, #4] - strh r0, [r4, #0xe] - movs r0, #1 - b _0802E01A - .align 2, 0 -_0802E014: .4byte gUnknown_3003130 -_0802E018: - movs r0, #0 -_0802E01A: - add sp, #0xc - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0802DFC8 - - thumb_func_start sub_0802E024 -sub_0802E024: @ 0x0802E024 - ldr r0, _0802E030 - ldr r0, [r0] - movs r1, #0xfe - lsls r1, r1, #1 - adds r0, r0, r1 - bx lr - .align 2, 0 -_0802E030: .4byte gUnknown_3005AF0 - thumb_func_end sub_0802E024 - - thumb_func_start ResetPokeJumpResults -ResetPokeJumpResults: @ 0x0802E034 - push {lr} - bl sub_0802E024 - movs r1, #0 - strh r1, [r0] - str r1, [r0, #0xc] - strh r1, [r0, #4] - strh r1, [r0, #6] - str r1, [r0, #8] - strh r1, [r0, #2] - pop {r0} - bx r0 - thumb_func_end ResetPokeJumpResults - - thumb_func_start sub_0802E04C -sub_0802E04C: @ 0x0802E04C - push {r4, r5, r6, lr} - adds r4, r0, #0 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r6, r2, #0x10 - bl sub_0802E024 - adds r1, r0, #0 - movs r2, #0 - ldr r0, [r1, #0xc] - cmp r0, r4 - bhs _0802E070 - ldr r0, _0802E098 - cmp r4, r0 - bhi _0802E070 - str r4, [r1, #0xc] - movs r2, #1 -_0802E070: - ldrh r0, [r1] - cmp r0, r5 - bhs _0802E080 - ldr r0, _0802E09C - cmp r5, r0 - bhi _0802E080 - strh r5, [r1] - movs r2, #1 -_0802E080: - ldrh r0, [r1, #4] - cmp r0, r6 - bhs _0802E090 - ldr r0, _0802E09C - cmp r6, r0 - bhi _0802E090 - strh r6, [r1, #4] - movs r2, #1 -_0802E090: - adds r0, r2, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0802E098: .4byte 0x00018696 -_0802E09C: .4byte 0x0000270F - thumb_func_end sub_0802E04C - - thumb_func_start sub_0802E0A0 -sub_0802E0A0: @ 0x0802E0A0 - push {lr} - bl sub_0802E024 - adds r2, r0, #0 - ldrh r1, [r2, #6] - ldr r0, _0802E0B8 - cmp r1, r0 - bhi _0802E0B4 - adds r0, r1, #1 - strh r0, [r2, #6] -_0802E0B4: - pop {r0} - bx r0 - .align 2, 0 -_0802E0B8: .4byte 0x0000270E - thumb_func_end sub_0802E0A0 - - thumb_func_start sub_0802E0BC -sub_0802E0BC: @ 0x0802E0BC - push {r4, lr} - ldr r4, _0802E0D8 - adds r0, r4, #0 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802E0D8: .4byte sub_0802E0DC - thumb_func_end sub_0802E0BC - - thumb_func_start sub_0802E0DC -sub_0802E0DC: @ 0x0802E0DC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _0802E100 - adds r4, r0, r1 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _0802E128 - cmp r0, #1 - bgt _0802E104 - cmp r0, #0 - beq _0802E10E - b _0802E176 - .align 2, 0 -_0802E100: .4byte gUnknown_3005B68 -_0802E104: - cmp r0, #2 - beq _0802E134 - cmp r0, #3 - beq _0802E15C - b _0802E176 -_0802E10E: - ldr r0, _0802E124 - bl AddWindow - strh r0, [r4, #2] - ldrh r0, [r4, #2] - bl sub_0802E17C - ldrb r0, [r4, #2] - movs r1, #3 - b _0802E14A - .align 2, 0 -_0802E124: .4byte gUnknown_82D1AFC -_0802E128: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802E176 - b _0802E14E -_0802E134: - ldr r0, _0802E158 - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _0802E176 - ldrb r0, [r4, #2] - bl rbox_fill_rectangle - ldrb r0, [r4, #2] - movs r1, #1 -_0802E14A: - bl CopyWindowToVram -_0802E14E: - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - b _0802E176 - .align 2, 0 -_0802E158: .4byte gUnknown_3002360 -_0802E15C: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802E176 - ldrb r0, [r4, #2] - bl RemoveWindow - adds r0, r5, #0 - bl DestroyTask - bl EnableBothScriptContexts -_0802E176: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_0802E0DC - - thumb_func_start sub_0802E17C -sub_0802E17C: @ 0x0802E17C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x18] - bl sub_0802E024 - ldrh r1, [r0] - str r1, [sp, #0xc] - ldr r1, [r0, #0xc] - str r1, [sp, #0x10] - ldrh r0, [r0, #4] - str r0, [sp, #0x14] - ldr r0, [sp, #0x18] - lsls r4, r0, #0x18 - lsrs r4, r4, #0x18 - ldr r5, _0802E274 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0xd0 - bl LoadUserWindowBorderGfx_ - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0xd - bl DrawTextBorderOuter - adds r0, r4, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r2, _0802E278 - movs r0, #2 - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - adds r0, r4, #0 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - movs r6, #0 - adds r7, r4, #0 - movs r1, #0xff - mov sl, r1 - mov sb, r6 - mov r0, sp - adds r0, #0xc - str r0, [sp, #0x1c] - movs r1, #0xd0 - lsls r1, r1, #0x15 - mov r8, r1 - ldr r5, _0802E27C -_0802E1F2: - ldr r1, _0802E280 - lsls r0, r6, #2 - adds r0, r0, r1 - ldr r2, [r0] - mov r0, r8 - lsrs r4, r0, #0x18 - str r4, [sp] - mov r1, sl - str r1, [sp, #4] - mov r0, sb - str r0, [sp, #8] - adds r0, r7, #0 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - ldr r0, [sp, #0x1c] - ldm r0!, {r1} - str r0, [sp, #0x1c] - adds r0, r5, #0 - movs r2, #0 - movs r3, #5 - bl sub_080089D8 - adds r0, r5, #0 - bl TruncateToFirstWordOnly - movs r0, #1 - adds r1, r5, #0 - movs r2, #0 - bl sub_08005DAC - movs r3, #0xa0 - subs r3, r3, r0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r4, [sp] - mov r1, sl - str r1, [sp, #4] - mov r0, sb - str r0, [sp, #8] - adds r0, r7, #0 - movs r1, #1 - adds r2, r5, #0 - bl AddTextPrinterParameterized - movs r1, #0x80 - lsls r1, r1, #0x15 - add r8, r1 - adds r6, #1 - ldr r1, [sp, #0x18] - lsls r0, r1, #0x18 - cmp r6, #2 - bls _0802E1F2 - lsrs r0, r0, #0x18 - bl PutWindowTilemap - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0802E274: .4byte 0x0000021D -_0802E278: .4byte gUnknown_85CCDFE -_0802E27C: .4byte gUnknown_2021C40 -_0802E280: .4byte gUnknown_82D1B04 - thumb_func_end sub_0802E17C - - thumb_func_start TruncateToFirstWordOnly -TruncateToFirstWordOnly: @ 0x0802E284 - push {lr} - adds r1, r0, #0 - b _0802E28C -_0802E28A: - adds r1, #1 -_0802E28C: - ldrb r0, [r1] - cmp r0, #0xff - beq _0802E29A - cmp r0, #0 - bne _0802E28A - movs r0, #0xff - strb r0, [r1] -_0802E29A: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end TruncateToFirstWordOnly - - thumb_func_start sub_0802E2A0 -sub_0802E2A0: @ 0x0802E2A0 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, _0802E2E0 - bl CreateTask - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _0802E2E4 - adds r0, r0, r1 - movs r1, #1 - strh r1, [r0, #8] - strh r5, [r0, #0xa] - ldr r0, _0802E2E8 - lsls r5, r5, #4 - adds r5, r5, r0 - ldr r1, [r5] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0802E2E0: .4byte sub_0802E334 -_0802E2E4: .4byte gUnknown_3005B60 -_0802E2E8: .4byte gUnknown_82D1FD4 - thumb_func_end sub_0802E2A0 - - thumb_func_start sub_0802E2EC -sub_0802E2EC: @ 0x0802E2EC - push {lr} - ldr r0, _0802E310 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xff - beq _0802E318 - ldr r0, _0802E314 - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #2 - strh r0, [r1, #8] - movs r0, #1 - b _0802E31A - .align 2, 0 -_0802E310: .4byte sub_0802E334 -_0802E314: .4byte gUnknown_3005B60 -_0802E318: - movs r0, #0 -_0802E31A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0802E2EC - - thumb_func_start sub_0802E320 -sub_0802E320: @ 0x0802E320 - push {lr} - ldr r0, _0802E330 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0802E330: .4byte sub_0802E334 - thumb_func_end sub_0802E320 - - thumb_func_start sub_0802E334 -sub_0802E334: @ 0x0802E334 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _0802E358 - adds r4, r0, r1 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #3 - beq _0802E380 - cmp r0, #3 - bgt _0802E35C - cmp r0, #2 - beq _0802E362 - b _0802E3B6 - .align 2, 0 -_0802E358: .4byte gUnknown_3005B68 -_0802E35C: - cmp r0, #4 - beq _0802E39C - b _0802E3B6 -_0802E362: - ldr r1, _0802E37C - movs r2, #2 - ldrsh r0, [r4, r2] - lsls r0, r0, #4 - adds r1, #8 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - movs r0, #3 - strh r0, [r4] - b _0802E3B6 - .align 2, 0 -_0802E37C: .4byte gUnknown_82D1FD4 -_0802E380: - ldr r0, _0802E398 - movs r2, #2 - ldrsh r1, [r4, r2] - lsls r1, r1, #4 - adds r0, #0xc - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r5, #0 - bl _call_via_r1 - b _0802E3B6 - .align 2, 0 -_0802E398: .4byte gUnknown_82D1FD4 -_0802E39C: - ldr r0, _0802E3BC - movs r2, #2 - ldrsh r1, [r4, r2] - lsls r1, r1, #4 - adds r0, #4 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r5, #0 - bl _call_via_r1 - adds r0, r5, #0 - bl DestroyTask -_0802E3B6: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0802E3BC: .4byte gUnknown_82D1FD4 - thumb_func_end sub_0802E334 - - thumb_func_start sub_0802E3C0 -sub_0802E3C0: @ 0x0802E3C0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r1, #6 - ldrsh r0, [r4, r1] - lsls r0, r0, #3 - ldr r1, _0802E490 - adds r0, r0, r1 - bl LoadCompressedSpriteSheet - movs r2, #8 - ldrsh r0, [r4, r2] - lsls r0, r0, #3 - ldr r1, _0802E494 - adds r0, r0, r1 - bl LoadSpritePalette - movs r5, #0 - movs r3, #0x10 - ldrsh r0, [r4, r3] - cmp r5, r0 - bge _0802E428 -_0802E3F4: - movs r0, #4 - ldrsh r1, [r4, r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - ldr r1, _0802E498 - adds r0, r0, r1 - movs r2, #0x12 - ldrsh r1, [r4, r2] - movs r3, #0x14 - ldrsh r2, [r4, r3] - ldrb r3, [r4, #0xe] - bl CreateSprite - lsls r1, r5, #1 - adds r1, r1, r4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r1, #0x1a] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r1, #0x10 - ldrsh r0, [r4, r1] - cmp r5, r0 - blt _0802E3F4 -_0802E428: - movs r5, #0 - movs r2, #0x10 - ldrsh r0, [r4, r2] - cmp r5, r0 - bge _0802E484 - movs r7, #3 - movs r3, #0xd - rsbs r3, r3, #0 - mov ip, r3 - ldr r6, _0802E49C -_0802E43C: - lsls r0, r5, #1 - adds r0, r0, r4 - movs r1, #0x1a - ldrsh r0, [r0, r1] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r6 - ldrb r1, [r4, #0xc] - ands r1, r7 - lsls r1, r1, #2 - ldrb r3, [r2, #5] - mov r0, ip - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #5] - adds r3, r2, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r1, #4 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r4, #0xa] - strh r0, [r2, #0x30] - mov r3, r8 - strh r3, [r2, #0x34] - strh r5, [r2, #0x36] - ldrh r0, [r4, #0x1a] - strh r0, [r2, #0x38] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r1, #0x10 - ldrsh r0, [r4, r1] - cmp r5, r0 - blt _0802E43C -_0802E484: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0802E490: .4byte gUnknown_82D1F54 -_0802E494: .4byte gUnknown_82D1F64 -_0802E498: .4byte gUnknown_82D1FBC -_0802E49C: .4byte gUnknown_20205AC - thumb_func_end sub_0802E3C0 - - thumb_func_start sub_0802E4A0 -sub_0802E4A0: @ 0x0802E4A0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r1, _0802E520 - adds r4, r4, r1 - movs r5, #0 - strh r5, [r4, #4] - strh r5, [r4, #6] - strh r5, [r4, #8] - movs r1, #0x3c - strh r1, [r4, #0xa] - strh r5, [r4, #0xc] - strh r5, [r4, #0xe] - movs r1, #3 - strh r1, [r4, #0x10] - movs r1, #0x78 - strh r1, [r4, #0x12] - movs r1, #0x58 - strh r1, [r4, #0x14] - adds r1, r4, #0 - bl sub_0802E3C0 - movs r0, #0x1c - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r5, _0802E524 - adds r0, r0, r5 - movs r1, #4 - bl StartSpriteAnim - movs r0, #0x1c - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _0802E528 - strh r1, [r0, #0x24] - movs r0, #0x1e - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #5 - bl StartSpriteAnim - movs r0, #0x1e - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0x20 - strh r1, [r0, #0x24] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0802E520: .4byte gUnknown_3005B68 -_0802E524: .4byte gUnknown_20205AC -_0802E528: .4byte 0x0000FFE0 - thumb_func_end sub_0802E4A0 - - thumb_func_start sub_0802E52C -sub_0802E52C: @ 0x0802E52C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r5, #0 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _0802E540 - adds r4, r1, r0 - b _0802E560 - .align 2, 0 -_0802E540: .4byte gUnknown_3005B68 -_0802E544: - lsls r0, r5, #1 - adds r0, r0, r4 - movs r2, #0x1a - ldrsh r1, [r0, r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0802E590 - adds r0, r0, r1 - bl DestroySprite - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_0802E560: - movs r1, #0x10 - ldrsh r0, [r4, r1] - cmp r5, r0 - blt _0802E544 - ldr r1, _0802E594 - movs r2, #6 - ldrsh r0, [r4, r2] - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r0, [r0, #6] - bl FreeSpriteTilesByTag - ldr r1, _0802E598 - movs r2, #8 - ldrsh r0, [r4, r2] - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r0, [r0, #4] - bl FreeSpritePaletteByTag - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0802E590: .4byte gUnknown_20205AC -_0802E594: .4byte gUnknown_82D1F54 -_0802E598: .4byte gUnknown_82D1F64 - thumb_func_end sub_0802E52C - - thumb_func_start sub_0802E59C -sub_0802E59C: @ 0x0802E59C - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r0, #0x34 - ldrsh r1, [r6, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - ldr r1, _0802E5E0 - adds r5, r0, r1 - movs r1, #0x16 - ldrsh r0, [r5, r1] - movs r2, #0xa - ldrsh r1, [r5, r2] - bl __modsi3 - cmp r0, #0 - bne _0802E6AE - ldrh r2, [r5, #0x16] - movs r3, #0x16 - ldrsh r1, [r5, r3] - movs r3, #0x14 - ldrsh r0, [r5, r3] - cmp r1, r0 - beq _0802E6AE - strh r2, [r5, #0x14] - movs r1, #0x32 - ldrsh r0, [r6, r1] - cmp r0, #4 - bhi _0802E6A8 - lsls r0, r0, #2 - ldr r1, _0802E5E4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802E5E0: .4byte gUnknown_3005B68 -_0802E5E4: .4byte _0802E5E8 -_0802E5E8: @ jump table - .4byte _0802E5FC @ case 0 - .4byte _0802E60A @ case 1 - .4byte _0802E60A @ case 2 - .4byte _0802E61E @ case 3 - .4byte _0802E668 @ case 4 -_0802E5FC: - adds r2, r6, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_0802E60A: - movs r0, #0x38 - bl sub_080A306C - ldrh r1, [r6, #0x32] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r6, #0 - bl StartSpriteAnim - b _0802E6A8 -_0802E61E: - movs r0, #0x15 - bl sub_080A306C - ldrh r1, [r6, #0x32] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r6, #0 - bl StartSpriteAnim - ldr r4, _0802E664 - movs r2, #0x1c - ldrsh r0, [r5, r2] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - adds r1, #0x3e - ldrb r3, [r1] - movs r2, #5 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r3 - strb r0, [r1] - movs r3, #0x1e - ldrsh r1, [r5, r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - b _0802E6A8 - .align 2, 0 -_0802E664: .4byte gUnknown_20205AC -_0802E668: - adds r1, r6, #0 - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - ldr r3, _0802E6A4 - movs r0, #0x1c - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - movs r0, #0x1e - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - movs r0, #4 - strh r0, [r5] - b _0802E6AE - .align 2, 0 -_0802E6A4: .4byte gUnknown_20205AC -_0802E6A8: - ldrh r0, [r6, #0x32] - adds r0, #1 - strh r0, [r6, #0x32] -_0802E6AE: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_0802E59C - - thumb_func_start sub_0802E6B4 -sub_0802E6B4: @ 0x0802E6B4 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r5, _0802E708 - adds r6, r4, r5 - movs r0, #0x38 - bl sub_080A306C - ldr r2, _0802E70C - movs r0, #0x1a - ldrsh r1, [r6, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r2, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _0802E710 - str r1, [r0] - movs r0, #0x1a - ldrsh r1, [r6, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - subs r5, #8 - adds r4, r4, r5 - movs r0, #3 - strh r0, [r4, #8] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0802E708: .4byte gUnknown_3005B68 -_0802E70C: .4byte gUnknown_20205AC -_0802E710: .4byte sub_0802E59C - thumb_func_end sub_0802E6B4 - - thumb_func_start sub_0802E714 -sub_0802E714: @ 0x0802E714 - push {r4, r5, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _0802E768 - adds r4, r1, r0 - ldr r0, _0802E76C - ldrb r0, [r0] - cmp r0, #0 - beq _0802E778 - ldr r1, _0802E770 - ldrh r0, [r1, #2] - ldr r5, _0802E774 - cmp r0, r5 - bne _0802E73C - ldrh r0, [r1, #4] - strh r0, [r4, #0x16] -_0802E73C: - bl GetMultiplayerId - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802E77E - ldrh r0, [r4, #0x18] - adds r0, #1 - strh r0, [r4, #0x18] - mov r0, sp - movs r1, #0 - movs r2, #0xc - bl memset - mov r0, sp - strh r5, [r0] - mov r1, sp - ldrh r0, [r4, #0x18] - strh r0, [r1, #2] - mov r0, sp - bl sub_0800F934 - b _0802E77E - .align 2, 0 -_0802E768: .4byte gUnknown_3005B68 -_0802E76C: .4byte gUnknown_30031C4 -_0802E770: .4byte gUnknown_3003130 -_0802E774: .4byte 0x00007FFF -_0802E778: - ldrh r0, [r4, #0x16] - adds r0, #1 - strh r0, [r4, #0x16] -_0802E77E: - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0802E714 - - thumb_func_start sub_0802E788 -sub_0802E788: @ 0x0802E788 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - ldr r0, [sp, #0x18] - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r0, _0802E7E0 - movs r1, #0x50 - str r3, [sp] - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0802E7E4 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #0xc] - strh r5, [r1, #0xe] - strh r6, [r1, #0x10] - ldr r3, [sp] - strh r3, [r1, #0x12] - mov r0, r8 - strh r0, [r1, #0x14] - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0802E7E0: .4byte sub_0802E7FC -_0802E7E4: .4byte gUnknown_3005B60 - thumb_func_end sub_0802E788 - - thumb_func_start sub_0802E7E8 -sub_0802E7E8: @ 0x0802E7E8 - push {lr} - ldr r0, _0802E7F8 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0802E7F8: .4byte sub_0802E7FC - thumb_func_end sub_0802E7E8 - - thumb_func_start sub_0802E7FC -sub_0802E7FC: @ 0x0802E7FC - push {r4, r5, r6, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _0802E820 - adds r5, r0, r1 - movs r1, #0 - ldrsh r0, [r5, r1] - cmp r0, #1 - beq _0802E86C - cmp r0, #1 - bgt _0802E824 - cmp r0, #0 - beq _0802E82A - b _0802E8EE - .align 2, 0 -_0802E820: .4byte gUnknown_3005B68 -_0802E824: - cmp r0, #2 - beq _0802E8B0 - b _0802E8EE -_0802E82A: - ldrh r0, [r5, #4] - ldrh r1, [r5, #6] - bl sub_0802EBB4 - ldrh r0, [r5, #4] - ldrh r1, [r5, #6] - movs r3, #8 - ldrsh r2, [r5, r3] - movs r4, #0xa - ldrsh r3, [r5, r4] - ldrb r4, [r5, #0xc] - str r4, [sp] - bl sub_0802EC0C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0xe] - ldrh r0, [r5, #4] - ldrh r1, [r5, #6] - movs r3, #8 - ldrsh r2, [r5, r3] - movs r4, #0xa - ldrsh r3, [r5, r4] - ldrb r4, [r5, #0xc] - str r4, [sp] - adds r4, r5, #0 - adds r4, #0x10 - str r4, [sp, #4] - adds r4, #2 - str r4, [sp, #8] - bl sub_0802EC60 - b _0802E8A2 -_0802E86C: - ldrb r0, [r5, #0xe] - bl sub_0802E8FC - cmp r0, #0 - bne _0802E8EE - ldrb r0, [r5, #0xe] - ldrb r1, [r5, #0x10] - ldrb r2, [r5, #0x12] - bl sub_0802EA30 - movs r0, #0xe - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _0802E8AC - adds r0, r0, r4 - bl FreeSpriteOamMatrix - movs r3, #0xe - ldrsh r1, [r5, r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite -_0802E8A2: - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - b _0802E8EE - .align 2, 0 -_0802E8AC: .4byte gUnknown_20205AC -_0802E8B0: - ldrb r0, [r5, #0x10] - bl sub_0802EA94 - cmp r0, #0 - bne _0802E8EE - movs r4, #0x10 - ldrsh r1, [r5, r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _0802E8F8 - adds r0, r0, r4 - bl DestroySprite - movs r0, #0x12 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - ldrh r0, [r5, #4] - bl FreeSpriteTilesByTag - ldrh r0, [r5, #6] - bl FreeSpritePaletteByTag - adds r0, r6, #0 - bl DestroyTask -_0802E8EE: - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0802E8F8: .4byte gUnknown_20205AC - thumb_func_end sub_0802E7FC - - thumb_func_start sub_0802E8FC -sub_0802E8FC: @ 0x0802E8FC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _0802E920 - adds r4, r1, r0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #7 - bls _0802E916 - b _0802EA28 -_0802E916: - lsls r0, r0, #2 - ldr r1, _0802E924 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802E920: .4byte gUnknown_20205AC -_0802E924: .4byte _0802E928 -_0802E928: @ jump table - .4byte _0802E948 @ case 0 - .4byte _0802E95A @ case 1 - .4byte _0802E980 @ case 2 - .4byte _0802E990 @ case 3 - .4byte _0802E9B2 @ case 4 - .4byte _0802E9EA @ case 5 - .4byte _0802EA10 @ case 6 - .4byte _0802E9E6 @ case 7 -_0802E948: - movs r1, #0x80 - lsls r1, r1, #4 - adds r0, r4, #0 - movs r2, #0x1a - bl sub_08007B30 - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] -_0802E95A: - movs r2, #0x32 - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _0802E968 - movs r0, #0x39 - bl sub_080A306C -_0802E968: - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x13 - ble _0802EA28 - movs r0, #0 - strh r0, [r4, #0x32] - adds r0, r4, #0 - movs r1, #1 - b _0802EA06 -_0802E980: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0802EA28 - b _0802EA0A -_0802E990: - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - ble _0802EA28 - movs r0, #0 - strh r0, [r4, #0x32] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - adds r0, r4, #0 - movs r1, #2 - bl StartSpriteAffineAnim - b _0802EA28 -_0802E9B2: - ldrh r0, [r4, #0x22] - subs r0, #4 - strh r0, [r4, #0x22] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #7 - ble _0802EA28 - ldrh r1, [r4, #0x36] - movs r2, #0x36 - ldrsh r0, [r4, r2] - cmp r0, #1 - bgt _0802E9E2 - adds r1, #1 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim - movs r0, #0 - strh r0, [r4, #0x32] - b _0802EA0A -_0802E9E2: - movs r0, #7 - strh r0, [r4, #0x2e] -_0802E9E6: - movs r0, #0 - b _0802EA2A -_0802E9EA: - ldrh r0, [r4, #0x22] - adds r0, #4 - strh r0, [r4, #0x22] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #7 - ble _0802EA28 - movs r0, #0 - strh r0, [r4, #0x32] - adds r0, r4, #0 - movs r1, #3 -_0802EA06: - bl StartSpriteAffineAnim -_0802EA0A: - ldrh r0, [r4, #0x2e] - adds r0, #1 - b _0802EA26 -_0802EA10: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0802EA28 - ldrh r0, [r4, #0x36] - adds r0, #1 - strh r0, [r4, #0x36] - movs r0, #1 -_0802EA26: - strh r0, [r4, #0x2e] -_0802EA28: - movs r0, #1 -_0802EA2A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0802E8FC - - thumb_func_start sub_0802EA30 -sub_0802EA30: @ 0x0802EA30 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r0, _0802EA88 - mov r8, r0 - lsls r4, r1, #4 - adds r4, r4, r1 - lsls r4, r4, #2 - adds r5, r4, r0 - ldr r0, _0802EA8C - strh r0, [r5, #0x26] - lsls r3, r2, #4 - adds r3, r3, r2 - lsls r3, r3, #2 - mov r1, r8 - adds r2, r3, r1 - strh r0, [r2, #0x26] - adds r5, #0x3e - ldrb r6, [r5] - movs r1, #5 - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r6 - strb r0, [r5] - adds r2, #0x3e - ldrb r0, [r2] - ands r1, r0 - strb r1, [r2] - movs r0, #0x1c - add r8, r0 - add r4, r8 - ldr r0, _0802EA90 - str r0, [r4] - add r3, r8 - str r0, [r3] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0802EA88: .4byte gUnknown_20205AC -_0802EA8C: .4byte 0x0000FFD8 -_0802EA90: .4byte sub_0802EAC0 - thumb_func_end sub_0802EA30 - - thumb_func_start sub_0802EA94 -sub_0802EA94: @ 0x0802EA94 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r3, #0 - ldr r2, _0802EAB8 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r2, #0x1c - adds r1, r1, r2 - ldr r1, [r1] - ldr r0, _0802EABC - cmp r1, r0 - bne _0802EAB2 - movs r3, #1 -_0802EAB2: - adds r0, r3, #0 - pop {r1} - bx r1 - .align 2, 0 -_0802EAB8: .4byte gUnknown_20205AC -_0802EABC: .4byte sub_0802EAC0 - thumb_func_end sub_0802EA94 - - thumb_func_start sub_0802EAC0 -sub_0802EAC0: @ 0x0802EAC0 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r5, #0 - adds r4, #0x2e - movs r1, #0x2e - ldrsh r0, [r5, r1] - cmp r0, #4 - bhi _0802EBAA - lsls r0, r0, #2 - ldr r1, _0802EADC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802EADC: .4byte _0802EAE0 -_0802EAE0: @ jump table - .4byte _0802EAF4 @ case 0 - .4byte _0802EB04 @ case 1 - .4byte _0802EB2C @ case 2 - .4byte _0802EB60 @ case 3 - .4byte _0802EB98 @ case 4 -_0802EAF4: - movs r0, #0x40 - strh r0, [r4, #8] - ldrh r0, [r5, #0x26] - lsls r0, r0, #4 - strh r0, [r4, #0xa] - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] -_0802EB04: - ldrh r1, [r4, #8] - ldrh r2, [r4, #0xa] - adds r0, r1, r2 - strh r0, [r4, #0xa] - adds r1, #1 - strh r1, [r4, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - strh r0, [r5, #0x26] - cmp r0, #0 - blt _0802EBAA - movs r0, #0x39 - bl sub_080A306C - movs r0, #0 - strh r0, [r5, #0x26] - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - b _0802EBAA -_0802EB2C: - ldrh r0, [r4, #2] - adds r0, #0xc - strh r0, [r4, #2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x7f - ble _0802EB4A - movs r0, #0x39 - bl sub_080A306C - movs r0, #0 - strh r0, [r4, #2] - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] -_0802EB4A: - ldr r0, _0802EB5C - movs r2, #2 - ldrsh r1, [r4, r2] - lsls r1, r1, #1 - adds r1, r1, r0 - movs r2, #0 - ldrsh r0, [r1, r2] - asrs r0, r0, #4 - b _0802EB8E - .align 2, 0 -_0802EB5C: .4byte gUnknown_82FA8CC -_0802EB60: - ldrh r0, [r4, #2] - adds r0, #0x10 - strh r0, [r4, #2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x7f - ble _0802EB7E - movs r0, #0x39 - bl sub_080A306C - movs r0, #0 - strh r0, [r4, #2] - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] -_0802EB7E: - ldr r1, _0802EB94 - movs r2, #2 - ldrsh r0, [r4, r2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x15 -_0802EB8E: - rsbs r0, r0, #0 - strh r0, [r5, #0x26] - b _0802EBAA - .align 2, 0 -_0802EB94: .4byte gUnknown_82FA8CC -_0802EB98: - ldrh r0, [r4, #2] - adds r0, #1 - strh r0, [r4, #2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x28 - ble _0802EBAA - ldr r0, _0802EBB0 - str r0, [r5, #0x1c] -_0802EBAA: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0802EBB0: .4byte sub_08007140 - thumb_func_end sub_0802EAC0 - - thumb_func_start sub_0802EBB4 -sub_0802EBB4: @ 0x0802EBB4 - push {r4, lr} - sub sp, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r2, _0802EBFC - ldr r3, [r2, #4] - ldr r2, [r2] - str r2, [sp] - str r3, [sp, #4] - ldr r2, _0802EC00 - ldr r3, [r2, #4] - ldr r2, [r2] - str r2, [sp, #8] - str r3, [sp, #0xc] - lsls r0, r0, #0x10 - ldr r3, _0802EC04 - ldr r2, [sp, #4] - ands r2, r3 - orrs r2, r0 - str r2, [sp, #4] - ldr r2, _0802EC08 - add r4, sp, #8 - ldr r0, [r4, #4] - ands r0, r2 - orrs r0, r1 - str r0, [r4, #4] - mov r0, sp - bl LoadCompressedSpriteSheet - adds r0, r4, #0 - bl LoadSpritePalette - add sp, #0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802EBFC: .4byte gUnknown_82D2458 -_0802EC00: .4byte gUnknown_82D2460 -_0802EC04: .4byte 0x0000FFFF -_0802EC08: .4byte 0xFFFF0000 - thumb_func_end sub_0802EBB4 - - thumb_func_start sub_0802EC0C -sub_0802EC0C: @ 0x0802EC0C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x18 - mov ip, r3 - ldr r3, [sp, #0x30] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r8, r3 - mov r5, sp - ldr r4, _0802EC5C - ldm r4!, {r3, r6, r7} - stm r5!, {r3, r6, r7} - ldm r4!, {r3, r6, r7} - stm r5!, {r3, r6, r7} - mov r4, sp - strh r0, [r4] - mov r0, sp - strh r1, [r0, #2] - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - mov r0, ip - lsls r6, r0, #0x10 - asrs r6, r6, #0x10 - mov r0, sp - adds r1, r2, #0 - adds r2, r6, #0 - mov r3, r8 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #0x18 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0802EC5C: .4byte gUnknown_82D251C - thumb_func_end sub_0802EC0C - - thumb_func_start sub_0802EC60 -sub_0802EC60: @ 0x0802EC60 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - mov ip, r3 - ldr r6, [sp, #0x38] - ldr r3, [sp, #0x3c] - mov sb, r3 - ldr r4, [sp, #0x40] - mov r8, r4 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov sl, r6 - mov r4, sp - ldr r3, _0802ED24 - ldm r3!, {r5, r6, r7} - stm r4!, {r5, r6, r7} - ldm r3!, {r5, r6, r7} - stm r4!, {r5, r6, r7} - mov r3, sp - strh r0, [r3] - mov r0, sp - strh r1, [r0, #2] - lsls r2, r2, #0x10 - asrs r4, r2, #0x10 - ldr r0, _0802ED28 - adds r2, r2, r0 - asrs r2, r2, #0x10 - mov r1, ip - lsls r5, r1, #0x10 - asrs r5, r5, #0x10 - mov r0, sp - adds r1, r2, #0 - adds r2, r5, #0 - mov r3, sl - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r3, sb - strh r0, [r3] - adds r4, #0x20 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - mov r0, sp - adds r1, r4, #0 - adds r2, r5, #0 - mov r3, sl - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r4, r8 - strh r0, [r4] - ldr r2, _0802ED2C - mov r5, sb - movs r6, #0 - ldrsh r1, [r5, r6] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r1, [r0] - movs r3, #4 - orrs r1, r3 - strb r1, [r0] - movs r7, #0 - ldrsh r1, [r4, r7] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - movs r0, #0 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #1 - bl StartSpriteAnim - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0802ED24: .4byte gUnknown_82D2534 -_0802ED28: .4byte 0xFFE00000 -_0802ED2C: .4byte gUnknown_20205AC - thumb_func_end sub_0802EC60 - - thumb_func_start RtcDisableInterrupts -RtcDisableInterrupts: @ 0x0802ED30 - ldr r2, _0802ED40 - ldr r1, _0802ED44 - ldrh r0, [r1] - strh r0, [r2] - movs r0, #0 - strh r0, [r1] - bx lr - .align 2, 0 -_0802ED40: .4byte gUnknown_3000DCE -_0802ED44: .4byte 0x04000208 - thumb_func_end RtcDisableInterrupts - - thumb_func_start RtcRestoreInterrupts -RtcRestoreInterrupts: @ 0x0802ED48 - ldr r0, _0802ED54 - ldr r1, _0802ED58 - ldrh r1, [r1] - strh r1, [r0] - bx lr - .align 2, 0 -_0802ED54: .4byte 0x04000208 -_0802ED58: .4byte gUnknown_3000DCE - thumb_func_end RtcRestoreInterrupts - - thumb_func_start ConvertBcdToBinary -ConvertBcdToBinary: @ 0x0802ED5C - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x9f - bhi _0802ED6E - movs r3, #0xf - ands r3, r2 - cmp r3, #9 - bls _0802ED72 -_0802ED6E: - movs r0, #0xff - b _0802ED80 -_0802ED72: - lsrs r1, r0, #0x1c - movs r0, #0xf - ands r1, r0 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r0, r0, r3 -_0802ED80: - pop {r1} - bx r1 - thumb_func_end ConvertBcdToBinary - - thumb_func_start IsLeapYear -IsLeapYear: @ 0x0802ED84 - push {r4, lr} - adds r4, r0, #0 - movs r0, #3 - ands r0, r4 - cmp r0, #0 - bne _0802ED9C - adds r0, r4, #0 - movs r1, #0x64 - bl __umodsi3 - cmp r0, #0 - bne _0802EDAA -_0802ED9C: - movs r1, #0xc8 - lsls r1, r1, #1 - adds r0, r4, #0 - bl __umodsi3 - cmp r0, #0 - bne _0802EDAE -_0802EDAA: - movs r0, #1 - b _0802EDB0 -_0802EDAE: - movs r0, #0 -_0802EDB0: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsLeapYear - - thumb_func_start ConvertDateToDayCount -ConvertDateToDayCount: @ 0x0802EDB8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r8, r2 - movs r5, #0 - subs r4, r7, #1 - cmp r4, #0 - blt _0802EDF6 -_0802EDD4: - ldr r1, _0802EE3C - adds r0, r5, r1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r4, #0 - bl IsLeapYear - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0802EDF0 - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_0802EDF0: - subs r4, #1 - cmp r4, #0 - bge _0802EDD4 -_0802EDF6: - subs r0, r6, #1 - cmp r0, #0 - ble _0802EE0E - ldr r1, _0802EE40 - adds r4, r0, #0 -_0802EE00: - ldm r1!, {r0} - adds r0, r5, r0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - subs r4, #1 - cmp r4, #0 - bne _0802EE00 -_0802EE0E: - cmp r6, #2 - bls _0802EE26 - adds r0, r7, #0 - bl IsLeapYear - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0802EE26 - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_0802EE26: - mov r1, r8 - adds r0, r5, r1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r5, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0802EE3C: .4byte 0x0000016D -_0802EE40: .4byte gUnknown_82D2558 - thumb_func_end ConvertDateToDayCount - - thumb_func_start RtcGetDayCount -RtcGetDayCount: @ 0x0802EE44 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldrb r0, [r6] - bl ConvertBcdToBinary - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldrb r0, [r6, #1] - bl ConvertBcdToBinary - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldrb r0, [r6, #2] - bl ConvertBcdToBinary - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r5, #0 - adds r1, r4, #0 - bl ConvertDateToDayCount - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end RtcGetDayCount - - thumb_func_start RtcInit -RtcInit: @ 0x0802EE80 - push {r4, r5, lr} - ldr r5, _0802EEAC - movs r0, #0 - strh r0, [r5] - bl RtcDisableInterrupts - bl SiiRtcUnprotect - bl SiiRtcProbe - ldr r4, _0802EEB0 - strb r0, [r4] - bl RtcRestoreInterrupts - ldrb r4, [r4] - movs r0, #0xf - ands r0, r4 - cmp r0, #1 - beq _0802EEB4 - movs r0, #1 - strh r0, [r5] - b _0802EED2 - .align 2, 0 -_0802EEAC: .4byte gUnknown_3000DB8 -_0802EEB0: .4byte gUnknown_3000DCC -_0802EEB4: - movs r0, #0xf0 - ands r0, r4 - cmp r0, #0 - beq _0802EEBE - movs r0, #2 -_0802EEBE: - strh r0, [r5] - ldr r4, _0802EED8 - adds r0, r4, #0 - bl RtcGetRawInfo - adds r0, r4, #0 - bl RtcCheckInfo - ldr r1, _0802EEDC - strh r0, [r1] -_0802EED2: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0802EED8: .4byte gUnknown_3000DC0 -_0802EEDC: .4byte gUnknown_3000DB8 - thumb_func_end RtcInit - - thumb_func_start sub_0802EEE0 -sub_0802EEE0: @ 0x0802EEE0 - ldr r0, _0802EEE8 - ldrh r0, [r0] - bx lr - .align 2, 0 -_0802EEE8: .4byte gUnknown_3000DB8 - thumb_func_end sub_0802EEE0 - - thumb_func_start RtcGetInfo -RtcGetInfo: @ 0x0802EEEC - push {r4, lr} - adds r2, r0, #0 - ldr r0, _0802EF08 - ldrh r1, [r0] - movs r0, #0xff - lsls r0, r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0802EF10 - adds r1, r2, #0 - ldr r0, _0802EF0C - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - b _0802EF16 - .align 2, 0 -_0802EF08: .4byte gUnknown_3000DB8 -_0802EF0C: .4byte gUnknown_82D254C -_0802EF10: - adds r0, r2, #0 - bl RtcGetRawInfo -_0802EF16: - pop {r4} - pop {r0} - bx r0 - thumb_func_end RtcGetInfo - - thumb_func_start RtcGetDateTime -RtcGetDateTime: @ 0x0802EF1C - push {r4, lr} - adds r4, r0, #0 - bl RtcDisableInterrupts - adds r0, r4, #0 - bl SiiRtcGetDateTime - bl RtcRestoreInterrupts - pop {r4} - pop {r0} - bx r0 - thumb_func_end RtcGetDateTime - - thumb_func_start RtcGetStatus -RtcGetStatus: @ 0x0802EF34 - push {r4, lr} - adds r4, r0, #0 - bl RtcDisableInterrupts - adds r0, r4, #0 - bl SiiRtcGetStatus - bl RtcRestoreInterrupts - pop {r4} - pop {r0} - bx r0 - thumb_func_end RtcGetStatus - - thumb_func_start RtcGetRawInfo -RtcGetRawInfo: @ 0x0802EF4C - push {r4, lr} - adds r4, r0, #0 - bl RtcGetStatus - adds r0, r4, #0 - bl RtcGetDateTime - pop {r4} - pop {r0} - bx r0 - thumb_func_end RtcGetRawInfo - - thumb_func_start RtcCheckInfo -RtcCheckInfo: @ 0x0802EF60 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - ldrb r1, [r7, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - rsbs r0, r0, #0 - asrs r4, r0, #0x1f - movs r0, #0x20 - ands r4, r0 - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _0802EF86 - movs r0, #0x10 - orrs r4, r0 -_0802EF86: - ldrb r0, [r7] - bl ConvertBcdToBinary - mov r8, r0 - cmp r0, #0xff - bne _0802EF9A - movs r0, #0x40 - orrs r4, r0 - lsls r0, r4, #0x10 - lsrs r4, r0, #0x10 -_0802EF9A: - ldrb r0, [r7, #1] - bl ConvertBcdToBinary - adds r6, r0, #0 - cmp r6, #0xff - beq _0802EFAE - cmp r6, #0 - beq _0802EFAE - cmp r6, #0xc - ble _0802EFB6 -_0802EFAE: - movs r0, #0x80 - orrs r4, r0 - lsls r0, r4, #0x10 - lsrs r4, r0, #0x10 -_0802EFB6: - ldrb r0, [r7, #2] - bl ConvertBcdToBinary - adds r5, r0, #0 - cmp r5, #0xff - bne _0802EFCE - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r1, #0 - orrs r4, r0 - lsls r0, r4, #0x10 - lsrs r4, r0, #0x10 -_0802EFCE: - cmp r6, #2 - bne _0802EFE8 - mov r0, r8 - bl IsLeapYear - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0802EFE4 - ldr r1, [r1, #4] - adds r0, r0, r1 - b _0802EFF2 - .align 2, 0 -_0802EFE4: .4byte gUnknown_82D2558 -_0802EFE8: - ldr r0, _0802F058 - subs r1, r6, #1 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] -_0802EFF2: - cmp r5, r0 - ble _0802F002 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r1, #0 - orrs r4, r0 - lsls r0, r4, #0x10 - lsrs r4, r0, #0x10 -_0802F002: - ldrb r0, [r7, #4] - bl ConvertBcdToBinary - adds r5, r0, #0 - cmp r5, #0x18 - ble _0802F01A - movs r1, #0x80 - lsls r1, r1, #2 - adds r0, r1, #0 - orrs r4, r0 - lsls r0, r4, #0x10 - lsrs r4, r0, #0x10 -_0802F01A: - ldrb r0, [r7, #5] - bl ConvertBcdToBinary - adds r5, r0, #0 - cmp r5, #0x3c - ble _0802F032 - movs r1, #0x80 - lsls r1, r1, #3 - adds r0, r1, #0 - orrs r4, r0 - lsls r0, r4, #0x10 - lsrs r4, r0, #0x10 -_0802F032: - ldrb r0, [r7, #6] - bl ConvertBcdToBinary - adds r5, r0, #0 - cmp r5, #0x3c - ble _0802F04A - movs r1, #0x80 - lsls r1, r1, #4 - adds r0, r1, #0 - orrs r4, r0 - lsls r0, r4, #0x10 - lsrs r4, r0, #0x10 -_0802F04A: - adds r0, r4, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0802F058: .4byte gUnknown_82D2558 - thumb_func_end RtcCheckInfo - - thumb_func_start RtcReset -RtcReset: @ 0x0802F05C - push {lr} - bl RtcDisableInterrupts - bl SiiRtcReset - bl RtcRestoreInterrupts - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RtcReset - - thumb_func_start sub_0802F070 -sub_0802F070: @ 0x0802F070 - push {r4, r5, r6, lr} - adds r5, r2, #0 - adds r6, r3, #0 - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - movs r4, #0xf0 - strb r4, [r0] - adds r0, #1 - adds r1, r5, #0 - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - strb r4, [r0] - adds r0, #1 - adds r1, r6, #0 - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - movs r1, #0xff - strb r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0802F070 - - thumb_func_start sub_0802F0A8 -sub_0802F0A8: @ 0x0802F0A8 - push {r4, r5, r6, lr} - adds r5, r2, #0 - adds r6, r3, #0 - movs r2, #2 - movs r3, #2 - bl sub_08008B18 - movs r4, #0xf0 - strb r4, [r0] - adds r0, #1 - adds r1, r5, #0 - movs r2, #2 - movs r3, #2 - bl sub_08008B18 - strb r4, [r0] - adds r0, #1 - adds r1, r6, #0 - movs r2, #2 - movs r3, #2 - bl sub_08008B18 - movs r1, #0xff - strb r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0802F0A8 - - thumb_func_start FormatHexRtcTime -FormatHexRtcTime: @ 0x0802F0E0 - push {lr} - ldr r3, _0802F0F4 - ldrb r1, [r3, #4] - ldrb r2, [r3, #5] - ldrb r3, [r3, #6] - bl sub_0802F0A8 - pop {r0} - bx r0 - .align 2, 0 -_0802F0F4: .4byte gUnknown_3000DC0 - thumb_func_end FormatHexRtcTime - - thumb_func_start sub_0802F0F8 -sub_0802F0F8: @ 0x0802F0F8 - push {r4, r5, r6, lr} - adds r5, r2, #0 - adds r6, r3, #0 - movs r2, #2 - movs r3, #4 - bl sub_080089D8 - movs r4, #0xae - strb r4, [r0] - adds r0, #1 - adds r1, r5, #0 - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - strb r4, [r0] - adds r0, #1 - adds r1, r6, #0 - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - movs r1, #0xff - strb r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0802F0F8 - - thumb_func_start sub_0802F130 -sub_0802F130: @ 0x0802F130 - push {r4, r5, r6, lr} - adds r5, r2, #0 - adds r6, r3, #0 - movs r2, #2 - movs r3, #4 - bl sub_08008B18 - movs r4, #0xae - strb r4, [r0] - adds r0, #1 - adds r1, r5, #0 - movs r2, #2 - movs r3, #2 - bl sub_08008B18 - strb r4, [r0] - adds r0, #1 - adds r1, r6, #0 - movs r2, #2 - movs r3, #2 - bl sub_08008B18 - movs r1, #0xff - strb r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0802F130 - - thumb_func_start RtcCalcTimeDifference -RtcCalcTimeDifference: @ 0x0802F168 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r7, r1, #0 - adds r6, r2, #0 - bl RtcGetDayCount - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldrb r0, [r5, #6] - bl ConvertBcdToBinary - ldrb r1, [r6, #4] - subs r0, r0, r1 - strb r0, [r7, #4] - ldrb r0, [r5, #5] - bl ConvertBcdToBinary - ldrb r1, [r6, #3] - subs r0, r0, r1 - strb r0, [r7, #3] - ldrb r0, [r5, #4] - bl ConvertBcdToBinary - ldrb r1, [r6, #2] - subs r0, r0, r1 - strb r0, [r7, #2] - ldrh r0, [r6] - subs r4, r4, r0 - strh r4, [r7] - ldrb r1, [r7, #4] - movs r0, #4 - ldrsb r0, [r7, r0] - cmp r0, #0 - bge _0802F1BA - adds r0, r1, #0 - adds r0, #0x3c - strb r0, [r7, #4] - ldrb r0, [r7, #3] - subs r0, #1 - strb r0, [r7, #3] -_0802F1BA: - ldrb r1, [r7, #3] - movs r0, #3 - ldrsb r0, [r7, r0] - cmp r0, #0 - bge _0802F1D0 - adds r0, r1, #0 - adds r0, #0x3c - strb r0, [r7, #3] - ldrb r0, [r7, #2] - subs r0, #1 - strb r0, [r7, #2] -_0802F1D0: - ldrb r1, [r7, #2] - movs r0, #2 - ldrsb r0, [r7, r0] - cmp r0, #0 - bge _0802F1E6 - adds r0, r1, #0 - adds r0, #0x18 - strb r0, [r7, #2] - ldrh r0, [r7] - subs r0, #1 - strh r0, [r7] -_0802F1E6: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end RtcCalcTimeDifference - - thumb_func_start RtcCalcLocalTime -RtcCalcLocalTime: @ 0x0802F1EC - push {r4, lr} - ldr r4, _0802F20C - adds r0, r4, #0 - bl RtcGetInfo - ldr r1, _0802F210 - ldr r0, _0802F214 - ldr r2, [r0] - adds r2, #0x98 - adds r0, r4, #0 - bl RtcCalcTimeDifference - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802F20C: .4byte gUnknown_3000DC0 -_0802F210: .4byte gUnknown_3005A50 -_0802F214: .4byte gUnknown_3005AF0 - thumb_func_end RtcCalcLocalTime - - thumb_func_start RtcInitLocalTimeOffset -RtcInitLocalTimeOffset: @ 0x0802F218 - push {lr} - adds r3, r0, #0 - adds r2, r1, #0 - movs r0, #0 - adds r1, r3, #0 - movs r3, #0 - bl RtcCalcLocalTimeOffset - pop {r0} - bx r0 - thumb_func_end RtcInitLocalTimeOffset - - thumb_func_start RtcCalcLocalTimeOffset -RtcCalcLocalTimeOffset: @ 0x0802F22C - push {r4, r5, lr} - ldr r4, _0802F254 - strh r0, [r4] - strb r1, [r4, #2] - strb r2, [r4, #3] - strb r3, [r4, #4] - ldr r5, _0802F258 - adds r0, r5, #0 - bl RtcGetInfo - ldr r0, _0802F25C - ldr r1, [r0] - adds r1, #0x98 - adds r0, r5, #0 - adds r2, r4, #0 - bl RtcCalcTimeDifference - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0802F254: .4byte gUnknown_3005A50 -_0802F258: .4byte gUnknown_3000DC0 -_0802F25C: .4byte gUnknown_3005AF0 - thumb_func_end RtcCalcLocalTimeOffset - - thumb_func_start CalcTimeDifference -CalcTimeDifference: @ 0x0802F260 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r3, [r2, #4] - ldrb r0, [r1, #4] - subs r5, r3, r0 - strb r5, [r4, #4] - ldrb r3, [r2, #3] - ldrb r0, [r1, #3] - subs r6, r3, r0 - strb r6, [r4, #3] - ldrb r0, [r2, #2] - ldrb r3, [r1, #2] - subs r0, r0, r3 - strb r0, [r4, #2] - ldrh r0, [r2] - ldrh r1, [r1] - subs r0, r0, r1 - strh r0, [r4] - lsls r0, r5, #0x18 - cmp r0, #0 - bge _0802F294 - adds r0, r5, #0 - adds r0, #0x3c - strb r0, [r4, #4] - subs r0, r6, #1 - strb r0, [r4, #3] -_0802F294: - ldrb r1, [r4, #3] - movs r0, #3 - ldrsb r0, [r4, r0] - cmp r0, #0 - bge _0802F2AA - adds r0, r1, #0 - adds r0, #0x3c - strb r0, [r4, #3] - ldrb r0, [r4, #2] - subs r0, #1 - strb r0, [r4, #2] -_0802F2AA: - ldrb r1, [r4, #2] - movs r0, #2 - ldrsb r0, [r4, r0] - cmp r0, #0 - bge _0802F2C0 - adds r0, r1, #0 - adds r0, #0x18 - strb r0, [r4, #2] - ldrh r0, [r4] - subs r0, #1 - strh r0, [r4] -_0802F2C0: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CalcTimeDifference - - thumb_func_start RtcGetMinuteCount -RtcGetMinuteCount: @ 0x0802F2C8 - push {r4, lr} - ldr r4, _0802F2FC - adds r0, r4, #0 - bl RtcGetInfo - adds r0, r4, #0 - bl RtcGetDayCount - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #5 - ldrb r2, [r4, #4] - lsls r1, r2, #4 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r0, r0, r1 - ldrb r4, [r4, #5] - adds r0, r0, r4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0802F2FC: .4byte gUnknown_3000DC0 - thumb_func_end RtcGetMinuteCount - - thumb_func_start RtcGetLocalDayCount -RtcGetLocalDayCount: @ 0x0802F300 - push {lr} - ldr r0, _0802F310 - bl RtcGetDayCount - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 -_0802F310: .4byte gUnknown_3000DC0 - thumb_func_end RtcGetLocalDayCount - - thumb_func_start CB2_MainMenu -CB2_MainMenu: @ 0x0802F314 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CB2_MainMenu - - thumb_func_start sub_0802F32C -sub_0802F32C: @ 0x0802F32C - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0802F32C - - thumb_func_start sub_0802F340 -sub_0802F340: @ 0x0802F340 - push {lr} - movs r0, #0 - bl InitMainMenu - pop {r0} - bx r0 - thumb_func_end sub_0802F340 - - thumb_func_start CB2_ReinitMainMenu -CB2_ReinitMainMenu: @ 0x0802F34C - push {lr} - movs r0, #1 - bl InitMainMenu - pop {r0} - bx r0 - thumb_func_end CB2_ReinitMainMenu - - thumb_func_start InitMainMenu -InitMainMenu: @ 0x0802F358 - push {r4, r5, lr} - sub sp, #0xc - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - bl SetVBlankCallback - movs r0, #0 - movs r1, #0 - bl SetGpuReg - movs r0, #0xc - movs r1, #0 - bl SetGpuReg - movs r0, #0xa - movs r1, #0 - bl SetGpuReg - movs r0, #8 - movs r1, #0 - bl SetGpuReg - movs r0, #0x18 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1a - movs r1, #0 - bl SetGpuReg - movs r0, #0x14 - movs r1, #0 - bl SetGpuReg - movs r0, #0x16 - movs r1, #0 - bl SetGpuReg - movs r0, #0x10 - movs r1, #0 - bl SetGpuReg - movs r0, #0x12 - movs r1, #0 - bl SetGpuReg - add r1, sp, #4 - movs r0, #0 - strh r0, [r1] - ldr r1, _0802F434 - add r0, sp, #4 - str r0, [r1] - movs r0, #0xc0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _0802F438 - str r0, [r1, #8] - ldr r0, [r1, #8] - movs r5, #0 - str r5, [sp, #8] - add r0, sp, #8 - str r0, [r1] - movs r0, #0xe0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _0802F43C - str r0, [r1, #8] - ldr r0, [r1, #8] - add r0, sp, #4 - strh r5, [r0] - str r0, [r1] - ldr r0, _0802F440 - str r0, [r1, #4] - ldr r0, _0802F444 - str r0, [r1, #8] - ldr r0, [r1, #8] - bl ResetPaletteFade - ldr r0, _0802F448 - movs r1, #0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _0802F44C - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - bl ScanlineEffect_Stop - bl ResetTasks - bl ResetSpriteData - bl FreeAllSpritePalettes - cmp r4, #0 - beq _0802F450 - movs r0, #1 - rsbs r0, r0, #0 - str r5, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - b _0802F462 - .align 2, 0 -_0802F434: .4byte 0x040000D4 -_0802F438: .4byte 0x8100C000 -_0802F43C: .4byte 0x85000100 -_0802F440: .4byte 0x05000002 -_0802F444: .4byte 0x810001FF -_0802F448: .4byte gUnknown_82D2930 -_0802F44C: .4byte gUnknown_82D2950 -_0802F450: - movs r0, #1 - rsbs r0, r0, #0 - ldr r1, _0802F520 - str r1, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade -_0802F462: - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _0802F524 - movs r0, #0 - movs r2, #2 - bl InitBgsFromTemplates - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - ldr r0, _0802F528 - bl InitWindows - bl sub_08004480 - ldr r1, _0802F52C - movs r0, #0 - bl LoadMainMenuWindowFrameTiles - movs r0, #0x40 - movs r1, #0 - bl SetGpuReg - movs r0, #0x44 - movs r1, #0 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0 - bl SetGpuReg - movs r0, #0x4a - movs r1, #0 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - movs r0, #1 - bl EnableInterrupts - ldr r0, _0802F530 - bl SetVBlankCallback - ldr r0, _0802F534 - bl SetMainCallback2 - movs r1, #0xc1 - lsls r1, r1, #6 - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #1 - bl HideBg - ldr r0, _0802F538 - movs r1, #0 - bl CreateTask - movs r0, #0 - add sp, #0xc - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0802F520: .4byte 0x0000FFFF -_0802F524: .4byte gUnknown_82D2978 -_0802F528: .4byte gUnknown_82D28C8 -_0802F52C: .4byte 0x000001D5 -_0802F530: .4byte sub_0802F32C -_0802F534: .4byte CB2_MainMenu -_0802F538: .4byte BuyMenuBuildListMenuTemplate - thumb_func_end InitMainMenu - - thumb_func_start BuyMenuBuildListMenuTemplate -BuyMenuBuildListMenuTemplate: @ 0x0802F53C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r6, r0, #3 - ldr r0, _0802F5C0 - mov r8, r0 - adds r4, r6, r0 - ldr r0, _0802F5C4 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - beq _0802F564 - b _0802F704 -_0802F564: - movs r0, #0x40 - movs r1, #0 - bl SetGpuReg - movs r0, #0x44 - movs r1, #0 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0x11 - bl SetGpuReg - movs r0, #0x4a - movs r1, #0x31 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0xc1 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #7 - bl SetGpuReg - bl LoadHeldItemIcons - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0802F5AA - movs r0, #1 - strh r0, [r4, #0x1e] -_0802F5AA: - ldr r0, _0802F5C8 - ldrh r0, [r0] - cmp r0, #2 - beq _0802F614 - cmp r0, #2 - bgt _0802F5CC - cmp r0, #0 - beq _0802F66C - cmp r0, #1 - beq _0802F5D6 - b _0802F66C - .align 2, 0 -_0802F5C0: .4byte gUnknown_3005B68 -_0802F5C4: .4byte gUnknown_2037C74 -_0802F5C8: .4byte gUnknown_3005F50 -_0802F5CC: - cmp r0, #4 - beq _0802F688 - cmp r0, #0xff - beq _0802F628 - b _0802F66C -_0802F5D6: - strh r0, [r4] - movs r1, #0x1e - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0802F5EE - bl IsMysteryEventEnabled - cmp r0, #0 - beq _0802F5EE - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] -_0802F5EE: - bl IsMysteryGiftEnabled - cmp r0, #0 - beq _0802F5FC - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] -_0802F5FC: - ldr r0, _0802F60C - lsls r1, r7, #2 - adds r1, r1, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _0802F610 - str r0, [r1] - b _0802F69A - .align 2, 0 -_0802F60C: .4byte gUnknown_3005B60 -_0802F610: .4byte Task_MainMenuCheckBattery -_0802F614: - ldr r0, _0802F624 - bl sub_08031B84 - strh r5, [r4] - mov r0, r8 - subs r0, #8 - adds r0, r6, r0 - b _0802F696 - .align 2, 0 -_0802F624: .4byte gUnknown_85C8D6B -_0802F628: - ldr r0, _0802F664 - bl sub_08031B84 - mov r0, r8 - subs r0, #8 - adds r0, r6, r0 - ldr r1, _0802F668 - str r1, [r0] - movs r0, #1 - strh r0, [r4] - movs r1, #0x1e - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0802F652 - bl IsMysteryEventEnabled - cmp r0, #1 - bne _0802F652 - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] -_0802F652: - bl IsMysteryGiftEnabled - cmp r0, #1 - bne _0802F69A - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - b _0802F69A - .align 2, 0 -_0802F664: .4byte gUnknown_85C8D44 -_0802F668: .4byte sub_0802F718 -_0802F66C: - movs r0, #0 - strh r0, [r4] - ldr r1, _0802F680 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0802F684 - b _0802F698 - .align 2, 0 -_0802F680: .4byte gUnknown_3005B60 -_0802F684: .4byte Task_MainMenuCheckBattery -_0802F688: - ldr r0, _0802F6BC - bl sub_08031B84 - mov r0, r8 - subs r0, #8 - adds r0, r6, r0 - strh r5, [r0, #8] -_0802F696: - ldr r1, _0802F6C0 -_0802F698: - str r1, [r0] -_0802F69A: - ldr r5, _0802F6C4 - ldrh r1, [r5] - movs r0, #0x80 - lsls r0, r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0802F6F2 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #2 - beq _0802F6D2 - cmp r0, #2 - ble _0802F6C8 - cmp r0, #3 - beq _0802F6EE - b _0802F6F2 - .align 2, 0 -_0802F6BC: .4byte gUnknown_85C8D80 -_0802F6C0: .4byte sub_0802F718 -_0802F6C4: .4byte gUnknown_20229BA -_0802F6C8: - cmp r0, #0 - blt _0802F6F2 - ldrh r0, [r4] - adds r0, #1 - b _0802F6F0 -_0802F6D2: - bl IsMysteryEventEnabled - cmp r0, #0 - bne _0802F6EA - movs r1, #0x1e - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0802F6F2 - bl IsMysteryGiftEnabled - cmp r0, #0 - beq _0802F6F2 -_0802F6EA: - movs r0, #3 - b _0802F6F0 -_0802F6EE: - movs r0, #4 -_0802F6F0: - strh r0, [r5] -_0802F6F2: - ldr r2, _0802F710 - ldrh r1, [r2] - ldr r0, _0802F714 - ands r0, r1 - strh r0, [r2] - strh r0, [r4, #2] - ldrh r0, [r4] - adds r0, #2 - strh r0, [r4, #0x18] -_0802F704: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0802F710: .4byte gUnknown_20229BA -_0802F714: .4byte 0x00007FFF - thumb_func_end BuyMenuBuildListMenuTemplate - - thumb_func_start sub_0802F718 -sub_0802F718: @ 0x0802F718 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl sub_08004630 - movs r0, #7 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0802F754 - ldr r0, _0802F75C - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0802F754 - movs r0, #7 - bl ClearWindowTilemap - ldr r0, _0802F760 - bl ClearMainMenuWindowTilemap - ldr r1, _0802F764 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0802F768 - str r1, [r0] -_0802F754: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802F75C: .4byte gUnknown_3002360 -_0802F760: .4byte gUnknown_82D2900 -_0802F764: .4byte gUnknown_3005B60 -_0802F768: .4byte Task_MainMenuCheckBattery - thumb_func_end sub_0802F718 - - thumb_func_start Task_MainMenuCheckBattery -Task_MainMenuCheckBattery: @ 0x0802F76C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, r4, #0 - ldr r0, _0802F7D8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0802F7F8 - movs r0, #0x40 - movs r1, #0 - bl SetGpuReg - movs r0, #0x44 - movs r1, #0 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0x11 - bl SetGpuReg - movs r0, #0x4a - movs r1, #0x31 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0xc1 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #7 - bl SetGpuReg - bl sub_0802EEE0 - movs r1, #0xff - lsls r1, r1, #4 - ands r1, r0 - cmp r1, #0 - bne _0802F7E4 - ldr r0, _0802F7DC - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _0802F7E0 - str r0, [r1] - b _0802F7F8 - .align 2, 0 -_0802F7D8: .4byte gUnknown_2037C74 -_0802F7DC: .4byte gUnknown_3005B60 -_0802F7E0: .4byte sub_0802F860 -_0802F7E4: - ldr r0, _0802F800 - bl sub_08031B84 - ldr r1, _0802F804 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0802F808 - str r1, [r0] -_0802F7F8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0802F800: .4byte gUnknown_85C8D93 -_0802F804: .4byte gUnknown_3005B60 -_0802F808: .4byte sub_0802F80C - thumb_func_end Task_MainMenuCheckBattery - - thumb_func_start sub_0802F80C -sub_0802F80C: @ 0x0802F80C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl sub_08004630 - movs r0, #7 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0802F848 - ldr r0, _0802F850 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0802F848 - movs r0, #7 - bl ClearWindowTilemap - ldr r0, _0802F854 - bl ClearMainMenuWindowTilemap - ldr r1, _0802F858 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0802F85C - str r1, [r0] -_0802F848: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802F850: .4byte gUnknown_3002360 -_0802F854: .4byte gUnknown_82D2900 -_0802F858: .4byte gUnknown_3005B60 -_0802F85C: .4byte sub_0802F860 - thumb_func_end sub_0802F80C - - thumb_func_start sub_0802F860 -sub_0802F860: @ 0x0802F860 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r0, r0, #2 - add r0, r8 - lsls r0, r0, #3 - ldr r1, _0802F924 - adds r6, r0, r1 - ldr r0, _0802F928 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - beq _0802F88C - b _0802FD6C -_0802F88C: - movs r0, #0x40 - movs r1, #0 - bl SetGpuReg - movs r0, #0x44 - movs r1, #0 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0x11 - bl SetGpuReg - movs r0, #0x4a - movs r1, #0x31 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0xc1 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #7 - bl SetGpuReg - add r0, sp, #0xc - strh r4, [r0] - movs r1, #0xfe - movs r2, #2 - bl LoadPalette - add r1, sp, #0xc - ldr r2, _0802F92C - adds r0, r2, #0 - strh r0, [r1] - adds r0, r1, #0 - movs r1, #0xfa - movs r2, #2 - bl LoadPalette - add r1, sp, #0xc - ldr r2, _0802F930 - adds r0, r2, #0 - strh r0, [r1] - adds r0, r1, #0 - movs r1, #0xfb - movs r2, #2 - bl LoadPalette - add r1, sp, #0xc - ldr r2, _0802F934 - adds r0, r2, #0 - strh r0, [r1] - adds r0, r1, #0 - movs r1, #0xfc - movs r2, #2 - bl LoadPalette - ldr r0, _0802F938 - ldr r0, [r0] - ldrb r0, [r0, #8] - cmp r0, #0 - bne _0802F940 - add r1, sp, #0xc - ldr r2, _0802F93C - adds r0, r2, #0 - strh r0, [r1] - adds r0, r1, #0 - movs r1, #0xf1 - movs r2, #2 - bl LoadPalette - b _0802F952 - .align 2, 0 -_0802F924: .4byte gUnknown_3005B68 -_0802F928: .4byte gUnknown_2037C74 -_0802F92C: .4byte 0x00007FFF -_0802F930: .4byte 0x0000318C -_0802F934: .4byte 0x0000675A -_0802F938: .4byte gUnknown_3005AF0 -_0802F93C: .4byte 0x00007E04 -_0802F940: - add r1, sp, #0xc - ldr r2, _0802F9E4 - adds r0, r2, #0 - strh r0, [r1] - adds r0, r1, #0 - movs r1, #0xf1 - movs r2, #2 - bl LoadPalette -_0802F952: - ldr r7, _0802F9E8 - mov r0, r8 - lsls r1, r0, #2 - adds r0, r1, r0 - lsls r0, r0, #3 - adds r0, r0, r7 - movs r2, #8 - ldrsh r0, [r0, r2] - mov sb, r1 - cmp r0, #1 - beq _0802FA00 - cmp r0, #1 - ble _0802F978 - cmp r0, #2 - bne _0802F972 - b _0802FABC -_0802F972: - cmp r0, #3 - bne _0802F978 - b _0802FBFC -_0802F978: - movs r0, #0 - movs r1, #0xaa - bl FillWindowPixelBuffer - movs r0, #1 - movs r1, #0xaa - bl FillWindowPixelBuffer - ldr r5, _0802F9EC - str r5, [sp] - movs r4, #1 - rsbs r4, r4, #0 - str r4, [sp, #4] - ldr r0, _0802F9F0 - str r0, [sp, #8] - movs r0, #0 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 - str r5, [sp] - str r4, [sp, #4] - ldr r0, _0802F9F4 - str r0, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 - movs r0, #0 - bl PutWindowTilemap - movs r0, #1 - bl PutWindowTilemap - movs r0, #0 - movs r1, #2 - bl CopyWindowToVram - movs r0, #1 - movs r1, #2 - bl CopyWindowToVram - ldr r4, _0802F9F8 - ldr r5, _0802F9FC - adds r0, r4, #0 - adds r1, r5, #0 - bl DrawMainMenuWindowBorder - adds r4, #8 - b _0802FBDC - .align 2, 0 -_0802F9E4: .4byte 0x0000547F -_0802F9E8: .4byte gUnknown_3005B60 -_0802F9EC: .4byte gUnknown_82D2970 -_0802F9F0: .4byte gUnknown_85C8C70 -_0802F9F4: .4byte gUnknown_85C8C87 -_0802F9F8: .4byte gUnknown_82D28C8 -_0802F9FC: .4byte 0x000001D5 -_0802FA00: - movs r0, #2 - movs r1, #0xaa - bl FillWindowPixelBuffer - movs r0, #3 - movs r1, #0xaa - bl FillWindowPixelBuffer - movs r0, #4 - movs r1, #0xaa - bl FillWindowPixelBuffer - ldr r5, _0802FAA4 - str r5, [sp] - movs r4, #1 - rsbs r4, r4, #0 - str r4, [sp, #4] - ldr r0, _0802FAA8 - str r0, [sp, #8] - movs r0, #2 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 - str r5, [sp] - str r4, [sp, #4] - ldr r0, _0802FAAC - str r0, [sp, #8] - movs r0, #3 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 - str r5, [sp] - str r4, [sp, #4] - ldr r0, _0802FAB0 - str r0, [sp, #8] - movs r0, #4 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 - bl sub_08031BE8 - movs r0, #2 - bl PutWindowTilemap - movs r0, #3 - bl PutWindowTilemap - movs r0, #4 - bl PutWindowTilemap - movs r0, #2 - movs r1, #2 - bl CopyWindowToVram - movs r0, #3 - movs r1, #2 - bl CopyWindowToVram - movs r0, #4 - movs r1, #2 - bl CopyWindowToVram - ldr r4, _0802FAB4 - ldr r5, _0802FAB8 - adds r0, r4, #0 - adds r1, r5, #0 - bl DrawMainMenuWindowBorder - adds r0, r4, #0 - adds r0, #8 - adds r1, r5, #0 - bl DrawMainMenuWindowBorder - adds r4, #0x10 - b _0802FBDC - .align 2, 0 -_0802FAA4: .4byte gUnknown_82D2970 -_0802FAA8: .4byte gUnknown_85C8C7C -_0802FAAC: .4byte gUnknown_85C8C70 -_0802FAB0: .4byte gUnknown_85C8C87 -_0802FAB4: .4byte gUnknown_82D28D8 -_0802FAB8: .4byte 0x000001D5 -_0802FABC: - movs r0, #2 - movs r1, #0xaa - bl FillWindowPixelBuffer - movs r0, #3 - movs r1, #0xaa - bl FillWindowPixelBuffer - movs r0, #4 - movs r1, #0xaa - bl FillWindowPixelBuffer - movs r0, #5 - movs r1, #0xaa - bl FillWindowPixelBuffer - ldr r4, _0802FB1C - str r4, [sp] - movs r5, #1 - rsbs r5, r5, #0 - str r5, [sp, #4] - ldr r0, _0802FB20 - str r0, [sp, #8] - movs r0, #2 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 - str r4, [sp] - str r5, [sp, #4] - ldr r0, _0802FB24 - str r0, [sp, #8] - movs r0, #3 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 - movs r1, #0x1e - ldrsh r0, [r6, r1] - cmp r0, #0 - beq _0802FB2C - str r4, [sp] - str r5, [sp, #4] - ldr r0, _0802FB28 - b _0802FB3A - .align 2, 0 -_0802FB1C: .4byte gUnknown_82D2970 -_0802FB20: .4byte gUnknown_85C8C7C -_0802FB24: .4byte gUnknown_85C8C70 -_0802FB28: .4byte gUnknown_85C8C91 -_0802FB2C: - bl IsMysteryEventEnabled - cmp r0, #0 - beq _0802FB50 - str r4, [sp] - str r5, [sp, #4] - ldr r0, _0802FB4C -_0802FB3A: - str r0, [sp, #8] - movs r0, #4 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 - b _0802FB64 - .align 2, 0 -_0802FB4C: .4byte gUnknown_85C8CA7 -_0802FB50: - str r4, [sp] - str r5, [sp, #4] - ldr r0, _0802FBE8 - str r0, [sp, #8] - movs r0, #4 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 -_0802FB64: - ldr r0, _0802FBEC - str r0, [sp] - movs r0, #1 - rsbs r0, r0, #0 - str r0, [sp, #4] - ldr r0, _0802FBF0 - str r0, [sp, #8] - movs r0, #5 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 - bl sub_08031BE8 - movs r0, #2 - bl PutWindowTilemap - movs r0, #3 - bl PutWindowTilemap - movs r0, #4 - bl PutWindowTilemap - movs r0, #5 - bl PutWindowTilemap - movs r0, #2 - movs r1, #2 - bl CopyWindowToVram - movs r0, #3 - movs r1, #2 - bl CopyWindowToVram - movs r0, #4 - movs r1, #2 - bl CopyWindowToVram - movs r0, #5 - movs r1, #2 - bl CopyWindowToVram - ldr r4, _0802FBF4 - ldr r5, _0802FBF8 - adds r0, r4, #0 - adds r1, r5, #0 - bl DrawMainMenuWindowBorder - adds r0, r4, #0 - adds r0, #8 - adds r1, r5, #0 - bl DrawMainMenuWindowBorder - adds r0, r4, #0 - adds r0, #0x10 - adds r1, r5, #0 - bl DrawMainMenuWindowBorder - adds r4, #0x18 -_0802FBDC: - adds r0, r4, #0 - adds r1, r5, #0 - bl DrawMainMenuWindowBorder - b _0802FD5E - .align 2, 0 -_0802FBE8: .4byte gUnknown_85C8C9C -_0802FBEC: .4byte gUnknown_82D2970 -_0802FBF0: .4byte gUnknown_85C8C87 -_0802FBF4: .4byte gUnknown_82D28D8 -_0802FBF8: .4byte 0x000001D5 -_0802FBFC: - movs r0, #2 - movs r1, #0xaa - bl FillWindowPixelBuffer - movs r0, #3 - movs r1, #0xaa - bl FillWindowPixelBuffer - movs r0, #4 - movs r1, #0xaa - bl FillWindowPixelBuffer - movs r0, #5 - movs r1, #0xaa - bl FillWindowPixelBuffer - movs r0, #6 - movs r1, #0xaa - bl FillWindowPixelBuffer - ldr r5, _0802FD7C - str r5, [sp] - movs r4, #1 - rsbs r4, r4, #0 - str r4, [sp, #4] - ldr r0, _0802FD80 - str r0, [sp, #8] - movs r0, #2 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 - str r5, [sp] - str r4, [sp, #4] - ldr r0, _0802FD84 - str r0, [sp, #8] - movs r0, #3 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 - str r5, [sp] - str r4, [sp, #4] - ldr r0, _0802FD88 - str r0, [sp, #8] - movs r0, #4 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 - str r5, [sp] - str r4, [sp, #4] - ldr r0, _0802FD8C - str r0, [sp, #8] - movs r0, #5 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 - str r5, [sp] - str r4, [sp, #4] - ldr r0, _0802FD90 - str r0, [sp, #8] - movs r0, #6 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 - bl sub_08031BE8 - movs r0, #2 - bl PutWindowTilemap - movs r0, #3 - bl PutWindowTilemap - movs r0, #4 - bl PutWindowTilemap - movs r0, #5 - bl PutWindowTilemap - movs r0, #6 - bl PutWindowTilemap - movs r0, #2 - movs r1, #2 - bl CopyWindowToVram - movs r0, #3 - movs r1, #2 - bl CopyWindowToVram - movs r0, #4 - movs r1, #2 - bl CopyWindowToVram - movs r0, #5 - movs r1, #2 - bl CopyWindowToVram - movs r0, #6 - movs r1, #2 - bl CopyWindowToVram - ldr r5, _0802FD94 - ldr r4, _0802FD98 - adds r0, r5, #0 - adds r1, r4, #0 - bl DrawMainMenuWindowBorder - adds r0, r5, #0 - adds r0, #8 - adds r1, r4, #0 - bl DrawMainMenuWindowBorder - adds r0, r5, #0 - adds r0, #0x10 - adds r1, r4, #0 - bl DrawMainMenuWindowBorder - adds r0, r5, #0 - adds r0, #0x18 - adds r1, r4, #0 - bl DrawMainMenuWindowBorder - adds r0, r5, #0 - adds r0, #0x20 - adds r1, r4, #0 - bl DrawMainMenuWindowBorder - ldr r0, _0802FD9C - ldr r4, _0802FDA0 - adds r1, r4, #0 - bl AddScrollIndicatorArrowPair - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r6, #0x1a] - movs r2, #0x1a - ldrsh r1, [r6, r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r7 - ldr r1, _0802FDA4 - str r1, [r0] - ldrh r0, [r4] - cmp r0, #4 - bne _0802FD5E - movs r4, #0x80 - lsls r4, r4, #6 - movs r0, #0 - adds r1, r4, #0 - movs r2, #1 - bl ChangeBgY - movs r0, #1 - adds r1, r4, #0 - movs r2, #1 - bl ChangeBgY - movs r0, #1 - strh r0, [r6, #0x1c] - movs r0, #0x1a - ldrsh r1, [r6, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r7 - movs r1, #1 - strh r1, [r0, #0x26] -_0802FD5E: - ldr r0, _0802FDA8 - mov r1, sb - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _0802FDAC - str r0, [r1] -_0802FD6C: - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0802FD7C: .4byte gUnknown_82D2970 -_0802FD80: .4byte gUnknown_85C8C7C -_0802FD84: .4byte gUnknown_85C8C70 -_0802FD88: .4byte gUnknown_85C8C9C -_0802FD8C: .4byte gUnknown_85C8CA7 -_0802FD90: .4byte gUnknown_85C8C87 -_0802FD94: .4byte gUnknown_82D28D8 -_0802FD98: .4byte 0x000001D5 -_0802FD9C: .4byte gUnknown_82D2984 -_0802FDA0: .4byte gUnknown_20229BA -_0802FDA4: .4byte Task_ScrollIndicatorArrowPairOnMainMenu -_0802FDA8: .4byte gUnknown_3005B60 -_0802FDAC: .4byte Task_HighlightSelectedMainMenuItem - thumb_func_end sub_0802F860 - - thumb_func_start Task_HighlightSelectedMainMenuItem -Task_HighlightSelectedMainMenuItem: @ 0x0802FDB0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0802FDD8 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - adds r4, r4, r1 - ldrb r0, [r4, #8] - ldrb r1, [r4, #0xa] - movs r3, #0x24 - ldrsh r2, [r4, r3] - bl HighlightSelectedMainMenuItem - ldr r0, _0802FDDC - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802FDD8: .4byte gUnknown_3005B60 -_0802FDDC: .4byte Task_HandleMainMenuInput - thumb_func_end Task_HighlightSelectedMainMenuItem - - thumb_func_start HandleMainMenuInput -HandleMainMenuInput: @ 0x0802FDE0 - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r4, r1, #3 - ldr r7, _0802FE24 - adds r5, r4, r7 - ldr r1, _0802FE28 - ldrh r2, [r1, #0x2e] - movs r0, #1 - ands r0, r2 - cmp r0, #0 - beq _0802FE30 - movs r0, #5 - bl sub_080A306C - bl LoadHeldItemIcons - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - adds r0, r7, #0 - subs r0, #8 - adds r0, r4, r0 - ldr r1, _0802FE2C - str r1, [r0] - b _0802FF40 - .align 2, 0 -_0802FE24: .4byte gUnknown_3005B68 -_0802FE28: .4byte gUnknown_3002360 -_0802FE2C: .4byte sub_0802FF7C -_0802FE30: - movs r0, #2 - ands r0, r2 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0 - beq _0802FE78 - movs r0, #5 - bl sub_080A306C - movs r0, #1 - rsbs r0, r0, #0 - ldr r1, _0802FE70 - str r1, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - movs r0, #0x40 - movs r1, #0xf0 - bl SetGpuReg - movs r0, #0x44 - movs r1, #0xa0 - bl SetGpuReg - adds r0, r7, #0 - subs r0, #8 - adds r0, r4, r0 - ldr r1, _0802FE74 - str r1, [r0] - b _0802FF40 - .align 2, 0 -_0802FE70: .4byte 0x0000FFFF -_0802FE74: .4byte Task_HandleMainMenuBPressed -_0802FE78: - movs r0, #0x40 - ands r0, r2 - cmp r0, #0 - beq _0802FECA - movs r0, #2 - ldrsh r2, [r5, r0] - cmp r2, #0 - ble _0802FECA - movs r1, #0 - ldrsh r0, [r5, r1] - cmp r0, #3 - bne _0802FEC4 - movs r1, #0x1c - ldrsh r0, [r5, r1] - cmp r0, #1 - bne _0802FEC4 - cmp r2, #1 - bne _0802FEC4 - movs r4, #0x80 - lsls r4, r4, #6 - movs r0, #0 - adds r1, r4, #0 - movs r2, #2 - bl ChangeBgY - movs r0, #1 - adds r1, r4, #0 - movs r2, #2 - bl ChangeBgY - movs r2, #0x1a - ldrsh r1, [r5, r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r7, r0 - strh r6, [r5, #0x1c] - strh r6, [r0, #0x1e] -_0802FEC4: - ldrh r0, [r5, #2] - subs r0, #1 - b _0802FF2C -_0802FECA: - ldrh r1, [r1, #0x2e] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0802FF40 - movs r0, #2 - ldrsh r1, [r5, r0] - movs r2, #0x18 - ldrsh r0, [r5, r2] - subs r0, #1 - cmp r1, r0 - bge _0802FF40 - movs r1, #0 - ldrsh r0, [r5, r1] - cmp r0, #3 - bne _0802FF28 - movs r2, #2 - ldrsh r0, [r5, r2] - cmp r0, #3 - bne _0802FF28 - movs r1, #0x1c - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _0802FF28 - movs r4, #0x80 - lsls r4, r4, #6 - movs r0, #0 - adds r1, r4, #0 - movs r2, #1 - bl ChangeBgY - movs r0, #1 - adds r1, r4, #0 - movs r2, #1 - bl ChangeBgY - ldr r2, _0802FF38 - movs r0, #0x1a - ldrsh r1, [r5, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r1, #1 - strh r1, [r5, #0x1c] - movs r1, #1 - strh r1, [r0, #0x26] -_0802FF28: - ldrh r0, [r5, #2] - adds r0, #1 -_0802FF2C: - strh r0, [r5, #2] - ldr r1, _0802FF3C - strh r0, [r1] - movs r0, #1 - b _0802FF42 - .align 2, 0 -_0802FF38: .4byte gUnknown_3005B60 -_0802FF3C: .4byte gUnknown_20229BA -_0802FF40: - movs r0, #0 -_0802FF42: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end HandleMainMenuInput - - thumb_func_start Task_HandleMainMenuInput -Task_HandleMainMenuInput: @ 0x0802FF4C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl HandleMainMenuInput - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0802FF6C - ldr r0, _0802FF74 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _0802FF78 - str r0, [r1] -_0802FF6C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802FF74: .4byte gUnknown_3005B60 -_0802FF78: .4byte Task_HighlightSelectedMainMenuItem - thumb_func_end Task_HandleMainMenuInput - - thumb_func_start sub_0802FF7C -sub_0802FF7C: @ 0x0802FF7C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r0, _08030024 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0802FF9A - b _08030272 -_0802FF9A: - ldr r2, _08030028 - mov r0, r8 - lsls r1, r0, #2 - adds r0, r1, r0 - lsls r0, r0, #3 - adds r6, r0, r2 - movs r2, #8 - ldrsh r0, [r6, r2] - mov sb, r1 - cmp r0, #3 - bne _0802FFBA - ldrh r0, [r6, #0x22] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl RemoveScrollIndicatorArrowPair -_0802FFBA: - movs r0, #0 - movs r1, #1 - bl sub_08197060 - movs r0, #1 - movs r1, #1 - bl sub_08197060 - movs r0, #2 - movs r1, #1 - bl sub_08197060 - movs r0, #3 - movs r1, #1 - bl sub_08197060 - movs r0, #4 - movs r1, #1 - bl sub_08197060 - movs r0, #5 - movs r1, #1 - bl sub_08197060 - movs r0, #6 - movs r1, #1 - bl sub_08197060 - movs r0, #7 - movs r1, #1 - bl sub_08197060 - bl LoadHeldItemIcons - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r3, #8 - ldrsh r0, [r6, r3] - cmp r0, #1 - beq _0803002C - cmp r0, #1 - ble _08030016 - cmp r0, #2 - beq _0803003E - cmp r0, #3 - beq _08030086 -_08030016: - movs r1, #0xa - ldrsh r0, [r6, r1] - cmp r0, #0 - beq _080300B4 - cmp r0, #1 - bne _080300B4 - b _0803010C - .align 2, 0 -_08030024: .4byte gUnknown_2037C74 -_08030028: .4byte gUnknown_3005B60 -_0803002C: - movs r2, #0xa - ldrsh r0, [r6, r2] - cmp r0, #1 - beq _080300B4 - cmp r0, #1 - ble _080300B0 - cmp r0, #2 - bne _080300B0 - b _0803010C -_0803003E: - movs r3, #0xa - ldrsh r4, [r6, r3] - cmp r4, #1 - beq _080300B4 - cmp r4, #1 - ble _080300B0 - cmp r4, #2 - beq _08030054 - cmp r4, #3 - beq _0803010C - b _080300B0 -_08030054: - bl IsMysteryGiftEnabled - cmp r0, #0 - beq _0803007C - movs r1, #0x26 - ldrsh r0, [r6, r1] - cmp r0, #0 - beq _08030070 - movs r7, #3 - cmp r5, #0 - bne _0803010E - movs r7, #6 - strh r5, [r6, #8] - b _0803010E -_08030070: - cmp r5, #0 - beq _080300E8 - movs r7, #6 - movs r0, #1 - strh r0, [r6, #8] - b _0803010E -_0803007C: - cmp r5, #0 - beq _08030108 - movs r7, #6 - strh r4, [r6, #8] - b _0803010E -_08030086: - movs r2, #0xa - ldrsh r0, [r6, r2] - cmp r0, #4 - bhi _080300B0 - lsls r0, r0, #2 - ldr r1, _08030098 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08030098: .4byte _0803009C -_0803009C: @ jump table - .4byte _080300B0 @ case 0 - .4byte _080300B4 @ case 1 - .4byte _080300B8 @ case 2 - .4byte _080300EC @ case 3 - .4byte _0803010C @ case 4 -_080300B0: - movs r7, #1 - b _0803010E -_080300B4: - movs r7, #0 - b _0803010E -_080300B8: - ldr r0, _080300D8 - mov r1, sb - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r3, #0x26 - ldrsh r0, [r1, r3] - cmp r0, #0 - beq _080300DC - movs r7, #3 - cmp r5, #0 - bne _0803010E - movs r7, #6 - strh r5, [r1, #8] - b _0803010E - .align 2, 0 -_080300D8: .4byte gUnknown_3005B60 -_080300DC: - cmp r5, #0 - beq _080300E8 - movs r7, #6 - movs r0, #1 - strh r0, [r1, #8] - b _0803010E -_080300E8: - movs r7, #5 - b _0803010E -_080300EC: - cmp r5, #0 - beq _08030108 - movs r7, #6 - ldr r0, _08030104 - mov r1, sb - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #2 - strh r0, [r1, #8] - b _0803010E - .align 2, 0 -_08030104: .4byte gUnknown_3005B60 -_08030108: - movs r7, #4 - b _0803010E -_0803010C: - movs r7, #2 -_0803010E: - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - cmp r7, #6 - bhi _08030150 - lsls r0, r7, #2 - ldr r1, _08030130 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08030130: .4byte _08030134 -_08030134: @ jump table - .4byte _08030150 @ case 0 - .4byte _0803017C @ case 1 - .4byte _08030198 @ case 2 - .4byte _080301B0 @ case 3 - .4byte _080301B8 @ case 4 - .4byte _080301C0 @ case 5 - .4byte _080301D4 @ case 6 -_08030150: - ldr r0, _0803016C - movs r1, #0 - strh r1, [r0] - ldr r0, _08030170 - strh r1, [r0] - ldr r1, _08030174 - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08030178 - str r1, [r0] - b _08030250 - .align 2, 0 -_0803016C: .4byte gUnknown_20373B4 -_08030170: .4byte gUnknown_20377B4 -_08030174: .4byte gUnknown_3005B60 -_08030178: .4byte Task_NewGameBirchSpeech_Init -_0803017C: - ldr r0, _0803018C - movs r1, #0 - strh r1, [r0] - ldr r0, _08030190 - strh r1, [r0] - ldr r0, _08030194 - b _080301C2 - .align 2, 0 -_0803018C: .4byte gUnknown_20373B4 -_08030190: .4byte gUnknown_20377B4 -_08030194: .4byte CB2_ContinueSavedGame -_08030198: - ldr r0, _080301A4 - ldr r1, _080301A8 - str r1, [r0, #8] - ldr r0, _080301AC - b _080301C2 - .align 2, 0 -_080301A4: .4byte gUnknown_3002360 -_080301A8: .4byte CB2_ReinitMainMenu -_080301AC: .4byte CB2_InitOptionMenu -_080301B0: - ldr r0, _080301B4 - b _080301C2 - .align 2, 0 -_080301B4: .4byte sub_080180E4 -_080301B8: - ldr r0, _080301BC - b _080301C2 - .align 2, 0 -_080301BC: .4byte CB2_InitMysteryEventMenu -_080301C0: - ldr r0, _080301D0 -_080301C2: - bl SetMainCallback2 - mov r0, r8 - bl DestroyTask - b _08030250 - .align 2, 0 -_080301D0: .4byte c2_ereader -_080301D4: - ldr r1, _0803023C - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r4, #0 - strh r4, [r0, #0xa] - ldr r1, _08030240 - str r1, [r0] - ldr r0, _08030244 - movs r2, #0xf1 - lsls r2, r2, #1 - adds r0, r0, r2 - ldr r1, _08030248 - strh r1, [r0] - ldr r0, _0803024C - adds r0, r0, r2 - strh r1, [r0] - movs r0, #0x18 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1a - movs r1, #0 - bl SetGpuReg - movs r0, #0x14 - movs r1, #0 - bl SetGpuReg - movs r0, #0x16 - movs r1, #0 - bl SetGpuReg - movs r0, #0x10 - movs r1, #0 - bl SetGpuReg - movs r0, #0x12 - movs r1, #0 - bl SetGpuReg - movs r0, #1 - rsbs r0, r0, #0 - str r4, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - b _08030272 - .align 2, 0 -_0803023C: .4byte gUnknown_3005B60 -_08030240: .4byte Task_DisplayMainMenuInvalidActionError -_08030244: .4byte gUnknown_20373B4 -_08030248: .4byte 0x00007FFF -_0803024C: .4byte gUnknown_20377B4 -_08030250: - bl FreeAllWindowBuffers - cmp r7, #2 - beq _08030264 - ldr r1, _08030260 - movs r0, #0 - strh r0, [r1] - b _08030272 - .align 2, 0 -_08030260: .4byte gUnknown_20229BA -_08030264: - ldr r0, _08030280 - ldrh r1, [r0] - movs r3, #0x80 - lsls r3, r3, #8 - adds r2, r3, #0 - orrs r1, r2 - strh r1, [r0] -_08030272: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08030280: .4byte gUnknown_20229BA - thumb_func_end sub_0802FF7C - - thumb_func_start Task_HandleMainMenuBPressed -Task_HandleMainMenuBPressed: @ 0x08030284 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r5, r2, #0 - ldr r0, _080302D4 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _080302CC - ldr r0, _080302D8 - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r2, #8 - ldrsh r0, [r1, r2] - cmp r0, #3 - bne _080302B8 - ldrh r0, [r1, #0x22] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl RemoveScrollIndicatorArrowPair -_080302B8: - ldr r0, _080302DC - strh r4, [r0] - bl FreeAllWindowBuffers - ldr r0, _080302E0 - bl SetMainCallback2 - adds r0, r5, #0 - bl DestroyTask -_080302CC: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080302D4: .4byte gUnknown_2037C74 -_080302D8: .4byte gUnknown_3005B60 -_080302DC: .4byte gUnknown_20229BA -_080302E0: .4byte sub_080AA06C - thumb_func_end Task_HandleMainMenuBPressed - - thumb_func_start Task_DisplayMainMenuInvalidActionError -Task_DisplayMainMenuInvalidActionError: @ 0x080302E4 - push {r4, r5, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _08030308 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r0, #0xa - ldrsh r1, [r4, r0] - cmp r1, #1 - beq _0803037C - cmp r1, #1 - bgt _0803030C - cmp r1, #0 - beq _08030316 - b _080303C8 - .align 2, 0 -_08030308: .4byte gUnknown_3005B60 -_0803030C: - cmp r1, #2 - beq _0803038C - cmp r1, #3 - beq _080303A4 - b _080303C8 -_08030316: - movs r0, #0x1e - str r0, [sp] - movs r0, #0x14 - str r0, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _08030350 - cmp r0, #1 - bgt _0803033C - cmp r0, #0 - beq _08030342 - b _08030362 -_0803033C: - cmp r0, #2 - beq _0803035C - b _08030362 -_08030342: - ldr r0, _0803034C - bl sub_08031B84 - b _08030362 - .align 2, 0 -_0803034C: .4byte gUnknown_85C8CB1 -_08030350: - ldr r0, _08030358 - bl sub_08031B84 - b _08030362 - .align 2, 0 -_08030358: .4byte gUnknown_85C8CC7 -_0803035C: - ldr r0, _08030374 - bl sub_08031B84 -_08030362: - ldr r0, _08030378 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0xa] - adds r0, #1 - strh r0, [r1, #0xa] - b _080303C8 - .align 2, 0 -_08030374: .4byte gUnknown_85C8CEB -_08030378: .4byte gUnknown_3005B60 -_0803037C: - ldr r0, _08030388 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - b _08030398 - .align 2, 0 -_08030388: .4byte gUnknown_2037C74 -_0803038C: - bl sub_08004630 - movs r0, #7 - bl sub_080046A8 - lsls r0, r0, #0x10 -_08030398: - cmp r0, #0 - bne _080303C8 - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - b _080303C8 -_080303A4: - ldr r0, _080303D0 - ldrh r0, [r0, #0x2e] - ands r1, r0 - cmp r1, #0 - beq _080303C8 - movs r0, #5 - bl sub_080A306C - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _080303D4 - str r0, [r4] -_080303C8: - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080303D0: .4byte gUnknown_3002360 -_080303D4: .4byte Task_HandleMainMenuBPressed - thumb_func_end Task_DisplayMainMenuInvalidActionError - - thumb_func_start HighlightSelectedMainMenuItem -HighlightSelectedMainMenuItem: @ 0x080303D8 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - lsls r2, r2, #0x10 - lsrs r6, r2, #0x10 - ldr r1, _0803040C - movs r0, #0x40 - bl SetGpuReg - cmp r5, #1 - beq _0803041C - cmp r5, #1 - ble _080303FE - cmp r5, #2 - beq _08030440 - cmp r5, #3 - beq _08030468 -_080303FE: - cmp r4, #0 - beq _08030406 - cmp r4, #1 - beq _08030414 -_08030406: - ldr r1, _08030410 - b _080304CE - .align 2, 0 -_0803040C: .4byte 0x000009E7 -_08030410: .4byte 0x0000011F -_08030414: - ldr r1, _08030418 - b _080304CE - .align 2, 0 -_08030418: .4byte 0x0000213F -_0803041C: - cmp r4, #1 - beq _08030430 - cmp r4, #1 - ble _08030428 - cmp r4, #2 - beq _08030438 -_08030428: - ldr r1, _0803042C - b _080304CE - .align 2, 0 -_0803042C: .4byte 0x0000013F -_08030430: - ldr r1, _08030434 - b _080304CE - .align 2, 0 -_08030434: .4byte 0x0000415F -_08030438: - ldr r1, _0803043C - b _080304CE - .align 2, 0 -_0803043C: .4byte 0x0000617F -_08030440: - cmp r4, #1 - beq _08030458 - cmp r4, #1 - ble _08030450 - cmp r4, #2 - beq _08030460 - cmp r4, #3 - beq _080304CC -_08030450: - ldr r1, _08030454 - b _080304CE - .align 2, 0 -_08030454: .4byte 0x0000013F -_08030458: - ldr r1, _0803045C - b _080304CE - .align 2, 0 -_0803045C: .4byte 0x0000415F -_08030460: - ldr r1, _08030464 - b _080304CE - .align 2, 0 -_08030464: .4byte 0x0000617F -_08030468: - cmp r4, #4 - bhi _08030490 - lsls r0, r4, #2 - ldr r1, _08030478 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08030478: .4byte _0803047C -_0803047C: @ jump table - .4byte _08030490 @ case 0 - .4byte _08030498 @ case 1 - .4byte _080304AC @ case 2 - .4byte _080304C0 @ case 3 - .4byte _080304DC @ case 4 -_08030490: - ldr r1, _08030494 - b _080304CE - .align 2, 0 -_08030494: .4byte 0x0000013F -_08030498: - cmp r6, #0 - beq _080304A4 - ldr r1, _080304A0 - b _080304CE - .align 2, 0 -_080304A0: .4byte 0x0000213F -_080304A4: - ldr r1, _080304A8 - b _080304CE - .align 2, 0 -_080304A8: .4byte 0x0000415F -_080304AC: - cmp r6, #0 - beq _080304B8 - ldr r1, _080304B4 - b _080304CE - .align 2, 0 -_080304B4: .4byte 0x0000415F -_080304B8: - ldr r1, _080304BC - b _080304CE - .align 2, 0 -_080304BC: .4byte 0x0000617F -_080304C0: - cmp r6, #0 - beq _080304CC - ldr r1, _080304C8 - b _080304CE - .align 2, 0 -_080304C8: .4byte 0x0000617F -_080304CC: - ldr r1, _080304D8 -_080304CE: - movs r0, #0x44 - bl SetGpuReg - b _080304E4 - .align 2, 0 -_080304D8: .4byte 0x0000819F -_080304DC: - ldr r1, _080304EC - movs r0, #0x44 - bl SetGpuReg -_080304E4: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080304EC: .4byte 0x0000819F - thumb_func_end HighlightSelectedMainMenuItem - - thumb_func_start Task_NewGameBirchSpeech_Init -Task_NewGameBirchSpeech_Init: @ 0x080304F0 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - movs r1, #0 - bl SetGpuReg - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - ldr r0, _080305D0 - bl InitBgFromTemplate - movs r0, #0x40 - movs r1, #0 - bl SetGpuReg - movs r0, #0x44 - movs r1, #0 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0 - bl SetGpuReg - movs r0, #0x4a - movs r1, #0 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - ldr r0, _080305D4 - movs r1, #0xc0 - lsls r1, r1, #0x13 - bl LZ77UnCompVram - ldr r0, _080305D8 - ldr r1, _080305DC - bl LZ77UnCompVram - ldr r0, _080305E0 - movs r1, #0 - movs r2, #0x40 - bl LoadPalette - ldr r0, _080305E4 - movs r1, #1 - movs r2, #0x10 - bl LoadPalette - bl ScanlineEffect_Stop - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetAllPicSprites - adds r0, r4, #0 - bl AddBirchSpeechObjects - movs r0, #1 - rsbs r0, r0, #0 - movs r5, #0 - thumb_func_end Task_NewGameBirchSpeech_Init - - thumb_func_start sub_0803058C -sub_0803058C: @ 0x0803058C - str r5, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r1, _080305E8 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r5, [r0, #0x10] - ldr r1, _080305EC - str r1, [r0] - movs r1, #0xff - strh r1, [r0, #0xc] - strh r1, [r0, #0xe] - movs r1, #0xd8 - strh r1, [r0, #0x16] - movs r0, #0xbb - lsls r0, r0, #1 - bl PlayBGM - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080305D0: .4byte gUnknown_82D2980 -_080305D4: .4byte gUnknown_82D25C8 -_080305D8: .4byte gUnknown_82D277C -_080305DC: .4byte 0x06003800 -_080305E0: .4byte gUnknown_82D2588 -_080305E4: .4byte gUnknown_82D28B6 -_080305E8: .4byte gUnknown_3005B60 -_080305EC: .4byte Task_NewGameBirchSpeech_WaitToShowBirch - thumb_func_end sub_0803058C - - thumb_func_start Task_NewGameBirchSpeech_WaitToShowBirch -Task_NewGameBirchSpeech_WaitToShowBirch: @ 0x080305F0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _08030610 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrh r1, [r4, #0x16] - movs r2, #0x16 - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _08030614 - subs r0, r1, #1 - strh r0, [r4, #0x16] - b _0803065A - .align 2, 0 -_08030610: .4byte gUnknown_3005B60 -_08030614: - ldrb r0, [r4, #0x18] - ldr r2, _08030660 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #0x88 - strh r0, [r1, #0x20] - movs r0, #0x3c - strh r0, [r1, #0x22] - adds r3, r1, #0 - adds r3, #0x3e - ldrb r2, [r3] - subs r0, #0x41 - ands r0, r2 - strb r0, [r3] - ldrb r2, [r1, #1] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - movs r2, #4 - orrs r0, r2 - strb r0, [r1, #1] - adds r0, r5, #0 - movs r1, #0xa - bl NewGameBirchSpeech_StartFadeInTarget1OutTarget2 - adds r0, r5, #0 - movs r1, #0x14 - bl NewGameBirchSpeech_StartFadePlatformOut - movs r0, #0x50 - strh r0, [r4, #0x16] - ldr r0, _08030664 - str r0, [r4] -_0803065A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08030660: .4byte gUnknown_20205AC -_08030664: .4byte Task_NewGameBirchSpeech_WaitForSpriteFadeInWelcome - thumb_func_end Task_NewGameBirchSpeech_WaitToShowBirch - - thumb_func_start Task_NewGameBirchSpeech_WaitForSpriteFadeInWelcome -Task_NewGameBirchSpeech_WaitForSpriteFadeInWelcome: @ 0x08030668 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080306A8 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 - movs r1, #0x12 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _080306F6 - ldr r2, _080306AC - movs r1, #0x18 - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r2, [r1, #1] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #1] - ldrh r1, [r4, #0x16] - movs r2, #0x16 - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _080306B0 - subs r0, r1, #1 - strh r0, [r4, #0x16] - b _080306F6 - .align 2, 0 -_080306A8: .4byte gUnknown_3005B60 -_080306AC: .4byte gUnknown_20205AC -_080306B0: - ldr r0, _080306FC - bl InitWindows - movs r0, #0 - movs r1, #0xdb - bl LoadMainMenuWindowFrameTiles - movs r0, #0 - movs r1, #0xe4 - movs r2, #0xf0 - bl LoadMessageBoxGfx - movs r0, #0 - movs r1, #1 - bl sub_0803213C - movs r0, #0 - bl PutWindowTilemap - movs r0, #0 - movs r1, #2 - bl CopyWindowToVram - movs r0, #0 - bl NewGameBirchSpeech_ClearWindow - ldr r0, _08030700 - ldr r1, _08030704 - bl StringExpandPlaceholders - movs r0, #1 - bl AddTextPrinterForMessage - ldr r0, _08030708 - str r0, [r4] -_080306F6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080306FC: .4byte gUnknown_82D2910 -_08030700: .4byte gUnknown_2021C7C -_08030704: .4byte gUnknown_8277095 -_08030708: .4byte Task_NewGameBirchSpeech_ThisIsAPokemon - thumb_func_end Task_NewGameBirchSpeech_WaitForSpriteFadeInWelcome - - thumb_func_start Task_NewGameBirchSpeech_ThisIsAPokemon -Task_NewGameBirchSpeech_ThisIsAPokemon: @ 0x0803070C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _08030750 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0803074A - bl RunTextPrintersAndIsPrinter0Active - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0803074A - ldr r1, _08030754 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08030758 - str r1, [r0] - ldr r0, _0803075C - ldr r1, _08030760 - bl StringExpandPlaceholders - ldr r1, _08030764 - movs r0, #1 - bl AddTextPrinterWithCallbackForMessage - ldr r0, _08030768 - strb r4, [r0] -_0803074A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08030750: .4byte gUnknown_2037C74 -_08030754: .4byte gUnknown_3005B60 -_08030758: .4byte Task_NewGameBirchSpeech_MainSpeech -_0803075C: .4byte gUnknown_2021C7C -_08030760: .4byte gUnknown_85C8F88 -_08030764: .4byte NewGameBirchSpeech_ShowPokeBallPrinterCallback -_08030768: .4byte gUnknown_3000DD0 - thumb_func_end Task_NewGameBirchSpeech_ThisIsAPokemon - - thumb_func_start Task_NewGameBirchSpeech_MainSpeech -Task_NewGameBirchSpeech_MainSpeech: @ 0x0803076C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl RunTextPrintersAndIsPrinter0Active - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08030798 - ldr r0, _080307A0 - ldr r1, _080307A4 - bl StringExpandPlaceholders - movs r0, #1 - bl AddTextPrinterForMessage - ldr r1, _080307A8 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080307AC - str r1, [r0] -_08030798: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080307A0: .4byte gUnknown_2021C7C -_080307A4: .4byte gUnknown_8277102 -_080307A8: .4byte gUnknown_3005B60 -_080307AC: .4byte Task_NewGameBirchSpeech_AndYouAre - thumb_func_end Task_NewGameBirchSpeech_MainSpeech - - thumb_func_start Task_NewGameBirchSpeechSub_InitPokeBall -Task_NewGameBirchSpeechSub_InitPokeBall: @ 0x080307B0 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0x14 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r6, _0803083C - ldr r0, _08030840 - mov r8, r0 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r6 - ldrb r0, [r0, #0x1a] - ldr r1, _08030844 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r1 - movs r5, #0 - movs r1, #0x64 - strh r1, [r2, #0x20] - movs r1, #0x4b - strh r1, [r2, #0x22] - movs r1, #0x3e - adds r1, r1, r2 - mov ip, r1 - ldrb r3, [r1] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r3 - mov r3, ip - strb r1, [r3] - strh r5, [r2, #0x2e] - ldrb r1, [r2, #5] - lsrs r1, r1, #4 - str r5, [sp] - str r5, [sp, #4] - movs r2, #0x20 - str r2, [sp, #8] - ldr r2, _08030848 - str r2, [sp, #0xc] - ldr r2, _0803084C - str r2, [sp, #0x10] - movs r2, #0x70 - movs r3, #0x3a - bl CreatePokeballSpriteToReleaseMon - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r6 - ldr r1, _08030850 - str r1, [r0] - mov r0, r8 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r6 - strh r5, [r0, #0x16] - add sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0803083C: .4byte gUnknown_3005B60 -_08030840: .4byte gUnknown_3000DD0 -_08030844: .4byte gUnknown_20205AC -_08030848: .4byte 0x0000FFFF -_0803084C: .4byte 0x00000127 -_08030850: .4byte Task_NewGameBirchSpeechSub_WaitForLotad - thumb_func_end Task_NewGameBirchSpeechSub_InitPokeBall - - thumb_func_start Task_NewGameBirchSpeechSub_WaitForLotad -Task_NewGameBirchSpeechSub_WaitForLotad: @ 0x08030854 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _08030898 - adds r5, r0, r1 - subs r1, #8 - mov r8, r1 - ldr r2, _0803089C - ldrb r1, [r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - mov r1, r8 - adds r6, r0, r1 - movs r0, #0x1a - ldrsh r1, [r6, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080308A0 - adds r3, r0, r1 - movs r1, #0 - ldrsh r0, [r5, r1] - adds r7, r2, #0 - cmp r0, #0 - beq _080308A4 - cmp r0, #1 - beq _080308BC - b _080308D8 - .align 2, 0 -_08030898: .4byte gUnknown_3005B68 -_0803089C: .4byte gUnknown_3000DD0 -_080308A0: .4byte gUnknown_20205AC -_080308A4: - ldr r1, [r3, #0x1c] - ldr r0, _080308B8 - cmp r1, r0 - bne _080308FA - ldrb r1, [r3, #1] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3, #1] - b _080308D8 - .align 2, 0 -_080308B8: .4byte sub_08007140 -_080308BC: - movs r1, #0x16 - ldrsh r0, [r6, r1] - cmp r0, #0x5f - ble _080308FA - adds r0, r4, #0 - bl DestroyTask - ldrb r1, [r7] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - mov r1, r8 - adds r2, r0, r1 - b _080308EA -_080308D8: - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - ldr r2, _08030904 - ldrb r1, [r7] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r2, r0, r2 -_080308EA: - ldrh r3, [r2, #0x16] - movs r0, #0x16 - ldrsh r1, [r2, r0] - ldr r0, _08030908 - cmp r1, r0 - bgt _080308FA - adds r0, r3, #1 - strh r0, [r2, #0x16] -_080308FA: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08030904: .4byte gUnknown_3005B60 -_08030908: .4byte 0x00003FFF - thumb_func_end Task_NewGameBirchSpeechSub_WaitForLotad - - thumb_func_start Task_NewGameBirchSpeech_AndYouAre -Task_NewGameBirchSpeech_AndYouAre: @ 0x0803090C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl RunTextPrintersAndIsPrinter0Active - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - bne _0803093E - ldr r0, _08030944 - strb r1, [r0] - ldr r0, _08030948 - ldr r1, _0803094C - bl StringExpandPlaceholders - movs r0, #1 - bl AddTextPrinterForMessage - ldr r1, _08030950 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08030954 - str r1, [r0] -_0803093E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08030944: .4byte gUnknown_20229B8 -_08030948: .4byte gUnknown_2021C7C -_0803094C: .4byte gUnknown_82771F4 -_08030950: .4byte gUnknown_3005B60 -_08030954: .4byte Task_NewGameBirchSpeech_StartBirchLotadPlatformFade - thumb_func_end Task_NewGameBirchSpeech_AndYouAre - - thumb_func_start Task_NewGameBirchSpeech_StartBirchLotadPlatformFade -Task_NewGameBirchSpeech_StartBirchLotadPlatformFade: @ 0x08030958 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - bl RunTextPrintersAndIsPrinter0Active - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080309BC - ldr r5, _080309C4 - ldr r0, _080309C8 - lsls r4, r6, #2 - adds r4, r4, r6 - lsls r4, r4, #3 - adds r4, r4, r0 - movs r1, #0x18 - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrb r3, [r1, #1] - movs r2, #0xd - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r3 - movs r3, #4 - orrs r0, r3 - strb r0, [r1, #1] - movs r0, #0x1a - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r1, [r0, #1] - ands r2, r1 - orrs r2, r3 - strb r2, [r0, #1] - adds r0, r6, #0 - movs r1, #2 - bl NewGameBirchSpeech_StartFadeOutTarget1InTarget2 - adds r0, r6, #0 - movs r1, #1 - bl NewGameBirchSpeech_StartFadePlatformIn - movs r0, #0x40 - strh r0, [r4, #0x16] - ldr r0, _080309CC - str r0, [r4] -_080309BC: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080309C4: .4byte gUnknown_20205AC -_080309C8: .4byte gUnknown_3005B60 -_080309CC: .4byte Task_NewGameBirchSpeech_SlidePlatformAway - thumb_func_end Task_NewGameBirchSpeech_StartBirchLotadPlatformFade - - thumb_func_start Task_NewGameBirchSpeech_SlidePlatformAway -Task_NewGameBirchSpeech_SlidePlatformAway: @ 0x080309D0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080309FC - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r2, r1, r2 - ldrh r3, [r2, #0x10] - movs r0, #0x10 - ldrsh r1, [r2, r0] - movs r0, #0x3c - rsbs r0, r0, #0 - cmp r1, r0 - beq _08030A00 - subs r0, r3, #2 - strh r0, [r2, #0x10] - ldrh r1, [r2, #0x10] - movs r0, #0x14 - bl SetGpuReg - b _08030A08 - .align 2, 0 -_080309FC: .4byte gUnknown_3005B60 -_08030A00: - ldr r0, _08030A0C - strh r0, [r2, #0x10] - ldr r0, _08030A10 - str r0, [r2] -_08030A08: - pop {r0} - bx r0 - .align 2, 0 -_08030A0C: .4byte 0x0000FFC4 -_08030A10: .4byte Task_NewGameBirchSpeech_StartPlayerFadeIn - thumb_func_end Task_NewGameBirchSpeech_SlidePlatformAway - - thumb_func_start Task_NewGameBirchSpeech_StartPlayerFadeIn -Task_NewGameBirchSpeech_StartPlayerFadeIn: @ 0x08030A14 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - ldr r1, _08030A6C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #0x12 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _08030ABA - ldr r2, _08030A70 - movs r0, #0x18 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r1, [r0] - movs r7, #4 - orrs r1, r7 - strb r1, [r0] - movs r0, #0x1a - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r7 - strb r1, [r0] - ldrh r0, [r4, #0x16] - movs r1, #0x16 - ldrsh r6, [r4, r1] - cmp r6, #0 - beq _08030A74 - subs r0, #1 - strh r0, [r4, #0x16] - b _08030ABA - .align 2, 0 -_08030A6C: .4byte gUnknown_3005B60 -_08030A70: .4byte gUnknown_20205AC -_08030A74: - ldrb r3, [r4, #0x1c] - lsls r1, r3, #4 - adds r1, r1, r3 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #0xb4 - strh r0, [r1, #0x20] - movs r0, #0x3c - strh r0, [r1, #0x22] - movs r2, #0x3e - adds r2, r2, r1 - mov ip, r2 - ldrb r2, [r2] - subs r0, #0x41 - ands r0, r2 - mov r2, ip - strb r0, [r2] - ldrb r2, [r1, #1] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r7 - strb r0, [r1, #1] - strh r3, [r4, #0xc] - strh r6, [r4, #0x14] - adds r0, r5, #0 - movs r1, #2 - bl NewGameBirchSpeech_StartFadeInTarget1OutTarget2 - adds r0, r5, #0 - movs r1, #1 - bl NewGameBirchSpeech_StartFadePlatformOut - ldr r0, _08030AC0 - str r0, [r4] -_08030ABA: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08030AC0: .4byte Task_NewGameBirchSpeech_WaitForPlayerFadeIn - thumb_func_end Task_NewGameBirchSpeech_StartPlayerFadeIn - - thumb_func_start Task_NewGameBirchSpeech_WaitForPlayerFadeIn -Task_NewGameBirchSpeech_WaitForPlayerFadeIn: @ 0x08030AC4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08030AFC - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r3, r1, r2 - movs r1, #0x12 - ldrsh r0, [r3, r1] - cmp r0, #0 - beq _08030AF8 - ldr r2, _08030B00 - movs r1, #0xc - ldrsh r0, [r3, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r2, [r1, #1] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #1] - ldr r0, _08030B04 - str r0, [r3] -_08030AF8: - pop {r0} - bx r0 - .align 2, 0 -_08030AFC: .4byte gUnknown_3005B60 -_08030B00: .4byte gUnknown_20205AC -_08030B04: .4byte Task_NewGameBirchSpeech_BoyOrGirl - thumb_func_end Task_NewGameBirchSpeech_WaitForPlayerFadeIn - - thumb_func_start Task_NewGameBirchSpeech_BoyOrGirl -Task_NewGameBirchSpeech_BoyOrGirl: @ 0x08030B08 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - bl NewGameBirchSpeech_ClearWindow - ldr r0, _08030B38 - ldr r1, _08030B3C - bl StringExpandPlaceholders - movs r0, #1 - bl AddTextPrinterForMessage - ldr r1, _08030B40 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08030B44 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08030B38: .4byte gUnknown_2021C7C -_08030B3C: .4byte gUnknown_8277200 -_08030B40: .4byte gUnknown_3005B60 -_08030B44: .4byte Task_NewGameBirchSpeech_WaitToShowGenderMenu - thumb_func_end Task_NewGameBirchSpeech_BoyOrGirl - - thumb_func_start Task_NewGameBirchSpeech_WaitToShowGenderMenu -Task_NewGameBirchSpeech_WaitToShowGenderMenu: @ 0x08030B48 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl RunTextPrintersAndIsPrinter0Active - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08030B6A - bl sub_08031AB4 - ldr r0, _08030B70 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _08030B74 - str r0, [r1] -_08030B6A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08030B70: .4byte gUnknown_3005B60 -_08030B74: .4byte Task_NewGameBirchSpeech_ChooseGender - thumb_func_end Task_NewGameBirchSpeech_WaitToShowGenderMenu - - thumb_func_start Task_NewGameBirchSpeech_ChooseGender -Task_NewGameBirchSpeech_ChooseGender: @ 0x08030B78 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - bl NewGameBirchSpeech_ProcessGenderMenuInput - lsls r0, r0, #0x18 - asrs r4, r0, #0x18 - cmp r4, #0 - beq _08030B92 - cmp r4, #1 - beq _08030B92 - lsls r4, r5, #2 - b _08030BB6 -_08030B92: - movs r0, #5 - bl sub_080A306C - ldr r0, _08030C00 - ldr r0, [r0] - strb r4, [r0, #8] - movs r0, #1 - movs r1, #1 - bl sub_08031FD8 - ldr r1, _08030C04 - lsls r2, r5, #2 - adds r0, r2, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08030C08 - str r1, [r0] - adds r4, r2, #0 -_08030BB6: - bl Menu_GetCursorPos - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r1, _08030C04 - adds r0, r4, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #0x14 - ldrsh r0, [r4, r1] - cmp r3, r0 - beq _08030BF8 - strh r3, [r4, #0x14] - ldr r2, _08030C0C - movs r0, #0xc - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r2, [r0, #1] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #4 - orrs r1, r2 - strb r1, [r0, #1] - adds r0, r5, #0 - movs r1, #0 - bl NewGameBirchSpeech_StartFadeOutTarget1InTarget2 - ldr r0, _08030C10 - str r0, [r4] -_08030BF8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08030C00: .4byte gUnknown_3005AF0 -_08030C04: .4byte gUnknown_3005B60 -_08030C08: .4byte sub_08030D14 -_08030C0C: .4byte gUnknown_20205AC -_08030C10: .4byte Task_NewGameBirchSpeech_SlideOutOldGenderSprite - thumb_func_end Task_NewGameBirchSpeech_ChooseGender - - thumb_func_start Task_NewGameBirchSpeech_SlideOutOldGenderSprite -Task_NewGameBirchSpeech_SlideOutOldGenderSprite: @ 0x08030C14 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _08030C44 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrb r5, [r4, #0xc] - movs r2, #0x12 - ldrsh r0, [r4, r2] - adds r7, r1, #0 - cmp r0, #0 - bne _08030C4C - ldr r0, _08030C48 - lsls r1, r5, #4 - adds r1, r1, r5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r0, [r1, #0x20] - adds r0, #4 - strh r0, [r1, #0x20] - b _08030CB2 - .align 2, 0 -_08030C44: .4byte gUnknown_3005B60 -_08030C48: .4byte gUnknown_20205AC -_08030C4C: - ldr r3, _08030C6C - lsls r0, r5, #4 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - movs r1, #0x14 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _08030C70 - ldrb r5, [r4, #0x1e] - b _08030C72 - .align 2, 0 -_08030C6C: .4byte gUnknown_20205AC -_08030C70: - ldrb r5, [r4, #0x1c] -_08030C72: - lsls r2, r5, #4 - adds r2, r2, r5 - lsls r2, r2, #2 - adds r2, r2, r3 - movs r0, #0xf0 - strh r0, [r2, #0x20] - movs r0, #0x3c - strh r0, [r2, #0x22] - adds r3, r2, #0 - adds r3, #0x3e - ldrb r1, [r3] - subs r0, #0x41 - ands r0, r1 - strb r0, [r3] - lsls r4, r6, #2 - adds r4, r4, r6 - lsls r4, r4, #3 - adds r4, r4, r7 - strh r5, [r4, #0xc] - ldrb r1, [r2, #1] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2, #1] - adds r0, r6, #0 - movs r1, #0 - bl NewGameBirchSpeech_StartFadeInTarget1OutTarget2 - ldr r0, _08030CB8 - str r0, [r4] -_08030CB2: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08030CB8: .4byte Task_NewGameBirchSpeech_SlideInNewGenderSprite - thumb_func_end Task_NewGameBirchSpeech_SlideOutOldGenderSprite - - thumb_func_start Task_NewGameBirchSpeech_SlideInNewGenderSprite -Task_NewGameBirchSpeech_SlideInNewGenderSprite: @ 0x08030CBC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08030CE8 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r3, r1, r2 - ldrb r1, [r3, #0xc] - ldr r2, _08030CEC - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, r0, r2 - ldrh r1, [r2, #0x20] - movs r4, #0x20 - ldrsh r0, [r2, r4] - cmp r0, #0xb4 - ble _08030CF0 - subs r0, r1, #4 - strh r0, [r2, #0x20] - b _08030D0A - .align 2, 0 -_08030CE8: .4byte gUnknown_3005B60 -_08030CEC: .4byte gUnknown_20205AC -_08030CF0: - movs r0, #0xb4 - strh r0, [r2, #0x20] - movs r1, #0x12 - ldrsh r0, [r3, r1] - cmp r0, #0 - beq _08030D0A - ldrb r0, [r2, #1] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r2, #1] - ldr r0, _08030D10 - str r0, [r3] -_08030D0A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08030D10: .4byte Task_NewGameBirchSpeech_ChooseGender - thumb_func_end Task_NewGameBirchSpeech_SlideInNewGenderSprite - - thumb_func_start sub_08030D14 -sub_08030D14: @ 0x08030D14 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - bl NewGameBirchSpeech_ClearWindow - ldr r0, _08030D44 - ldr r1, _08030D48 - bl StringExpandPlaceholders - movs r0, #1 - bl AddTextPrinterForMessage - ldr r1, _08030D4C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08030D50 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08030D44: .4byte gUnknown_2021C7C -_08030D48: .4byte gUnknown_8277213 -_08030D4C: .4byte gUnknown_3005B60 -_08030D50: .4byte Task_NewGameBirchSpeech_WaitForWhatsYourNameToPrint - thumb_func_end sub_08030D14 - - thumb_func_start Task_NewGameBirchSpeech_WaitForWhatsYourNameToPrint -Task_NewGameBirchSpeech_WaitForWhatsYourNameToPrint: @ 0x08030D54 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl RunTextPrintersAndIsPrinter0Active - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08030D72 - ldr r0, _08030D78 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _08030D7C - str r0, [r1] -_08030D72: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08030D78: .4byte gUnknown_3005B60 -_08030D7C: .4byte Task_NewGameBirchSpeech_WaitPressBeforeNameChoice - thumb_func_end Task_NewGameBirchSpeech_WaitForWhatsYourNameToPrint - - thumb_func_start Task_NewGameBirchSpeech_WaitPressBeforeNameChoice -Task_NewGameBirchSpeech_WaitPressBeforeNameChoice: @ 0x08030D80 - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _08030DC4 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08030D9C - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08030DBA -_08030D9C: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _08030DC8 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08030DCC - str r1, [r0] -_08030DBA: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08030DC4: .4byte gUnknown_3002360 -_08030DC8: .4byte gUnknown_3005B60 -_08030DCC: .4byte Task_NewGameBirchSpeech_StartNamingScreen - thumb_func_end Task_NewGameBirchSpeech_WaitPressBeforeNameChoice - - thumb_func_start Task_NewGameBirchSpeech_StartNamingScreen -Task_NewGameBirchSpeech_StartNamingScreen: @ 0x08030DD0 - push {r4, r5, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _08030E34 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _08030E2C - bl FreeAllWindowBuffers - ldr r1, _08030E38 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r0, [r0, #0x1a] - bl FreeAndDestroyMonPicSprite - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x14 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl NewGameBirchSpeech_SetDefaultPlayerName - adds r0, r4, #0 - bl DestroyTask - ldr r0, _08030E3C - ldr r1, [r0] - ldrb r2, [r1, #8] - str r5, [sp] - ldr r0, _08030E40 - str r0, [sp, #4] - movs r0, #0 - movs r3, #0 - bl DoNamingScreen -_08030E2C: - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08030E34: .4byte gUnknown_2037C74 -_08030E38: .4byte gUnknown_3005B60 -_08030E3C: .4byte gUnknown_3005AF0 -_08030E40: .4byte CB2_NewGameBirchSpeech_ReturnFromNamingScreen - thumb_func_end Task_NewGameBirchSpeech_StartNamingScreen - - thumb_func_start sub_08030E44 -sub_08030E44: @ 0x08030E44 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - bl NewGameBirchSpeech_ClearWindow - ldr r0, _08030E74 - ldr r1, _08030E78 - bl StringExpandPlaceholders - movs r0, #1 - bl AddTextPrinterForMessage - ldr r1, _08030E7C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08030E80 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08030E74: .4byte gUnknown_2021C7C -_08030E78: .4byte gUnknown_8277224 -_08030E7C: .4byte gUnknown_3005B60 -_08030E80: .4byte Task_NewGameBirchSpeech_CreateNameYesNo - thumb_func_end sub_08030E44 - - thumb_func_start Task_NewGameBirchSpeech_CreateNameYesNo -Task_NewGameBirchSpeech_CreateNameYesNo: @ 0x08030E84 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl RunTextPrintersAndIsPrinter0Active - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08030EB8 - movs r0, #2 - str r0, [sp] - movs r0, #0xf - str r0, [sp, #4] - movs r0, #2 - movs r1, #1 - movs r2, #0xdb - movs r3, #0xc7 - bl CreateYesNoMenuParameterized - ldr r1, _08030EC0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08030EC4 - str r1, [r0] -_08030EB8: - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08030EC0: .4byte gUnknown_3005B60 -_08030EC4: .4byte Task_NewGameBirchSpeech_ProcessNameYesNoMenu - thumb_func_end Task_NewGameBirchSpeech_CreateNameYesNo - - thumb_func_start Task_NewGameBirchSpeech_ProcessNameYesNoMenu -Task_NewGameBirchSpeech_ProcessNameYesNoMenu: @ 0x08030EC8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _08030EEE - cmp r1, #0 - bgt _08030EE8 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _08030F3C - b _08030F50 -_08030EE8: - cmp r1, #1 - beq _08030F3C - b _08030F50 -_08030EEE: - movs r0, #5 - bl sub_080A306C - ldr r2, _08030F30 - ldr r0, _08030F34 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - adds r4, r4, r0 - movs r0, #0xc - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r2, [r0, #1] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #4 - orrs r1, r2 - strb r1, [r0, #1] - adds r0, r5, #0 - movs r1, #2 - bl NewGameBirchSpeech_StartFadeOutTarget1InTarget2 - adds r0, r5, #0 - movs r1, #1 - bl NewGameBirchSpeech_StartFadePlatformIn - ldr r0, _08030F38 - str r0, [r4] - b _08030F50 - .align 2, 0 -_08030F30: .4byte gUnknown_20205AC -_08030F34: .4byte gUnknown_3005B60 -_08030F38: .4byte Task_NewGameBirchSpeech_SlidePlatformAway2 -_08030F3C: - movs r0, #5 - bl sub_080A306C - ldr r0, _08030F58 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _08030F5C - str r0, [r1] -_08030F50: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08030F58: .4byte gUnknown_3005B60 -_08030F5C: .4byte Task_NewGameBirchSpeech_BoyOrGirl - thumb_func_end Task_NewGameBirchSpeech_ProcessNameYesNoMenu - - thumb_func_start Task_NewGameBirchSpeech_SlidePlatformAway2 -Task_NewGameBirchSpeech_SlidePlatformAway2: @ 0x08030F60 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08030F88 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldrh r2, [r1, #0x10] - movs r3, #0x10 - ldrsh r0, [r1, r3] - cmp r0, #0 - beq _08030F8C - adds r0, r2, #2 - strh r0, [r1, #0x10] - ldrh r1, [r1, #0x10] - movs r0, #0x14 - bl SetGpuReg - b _08030F90 - .align 2, 0 -_08030F88: .4byte gUnknown_3005B60 -_08030F8C: - ldr r0, _08030F94 - str r0, [r1] -_08030F90: - pop {r0} - bx r0 - .align 2, 0 -_08030F94: .4byte Task_NewGameBirchSpeech_ReshowBirchLotad - thumb_func_end Task_NewGameBirchSpeech_SlidePlatformAway2 - - thumb_func_start Task_NewGameBirchSpeech_ReshowBirchLotad -Task_NewGameBirchSpeech_ReshowBirchLotad: @ 0x08030F98 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _08031068 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r7, r0, r1 - movs r1, #0x12 - ldrsh r0, [r7, r1] - cmp r0, #0 - beq _08031060 - ldr r5, _0803106C - movs r2, #0x1c - ldrsh r1, [r7, r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r1, [r0] - movs r3, #4 - mov ip, r3 - mov r2, ip - orrs r1, r2 - strb r1, [r0] - movs r3, #0x1e - ldrsh r1, [r7, r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - ldrb r0, [r7, #0x18] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - movs r0, #0x88 - strh r0, [r1, #0x20] - movs r0, #0x3c - strh r0, [r1, #0x22] - adds r3, r1, #0 - adds r3, #0x3e - ldrb r2, [r3] - movs r4, #5 - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r2 - strb r0, [r3] - ldrb r3, [r1, #1] - movs r2, #0xd - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r3 - mov r3, ip - orrs r0, r3 - strb r0, [r1, #1] - ldrb r1, [r7, #0x1a] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0x64 - strh r1, [r0, #0x20] - movs r1, #0x4b - strh r1, [r0, #0x22] - adds r3, r0, #0 - adds r3, #0x3e - ldrb r1, [r3] - ands r4, r1 - strb r4, [r3] - ldrb r1, [r0, #1] - ands r2, r1 - mov r1, ip - orrs r2, r1 - strb r2, [r0, #1] - adds r0, r6, #0 - movs r1, #2 - bl NewGameBirchSpeech_StartFadeInTarget1OutTarget2 - adds r0, r6, #0 - movs r1, #1 - bl NewGameBirchSpeech_StartFadePlatformOut - movs r0, #0 - bl NewGameBirchSpeech_ClearWindow - ldr r0, _08031070 - ldr r1, _08031074 - bl StringExpandPlaceholders - movs r0, #1 - bl AddTextPrinterForMessage - ldr r0, _08031078 - str r0, [r7] -_08031060: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08031068: .4byte gUnknown_3005B60 -_0803106C: .4byte gUnknown_20205AC -_08031070: .4byte gUnknown_2021C7C -_08031074: .4byte gUnknown_827722D -_08031078: .4byte Task_NewGameBirchSpeech_WaitForSpriteFadeInAndTextPrinter - thumb_func_end Task_NewGameBirchSpeech_ReshowBirchLotad - - thumb_func_start Task_NewGameBirchSpeech_WaitForSpriteFadeInAndTextPrinter -Task_NewGameBirchSpeech_WaitForSpriteFadeInAndTextPrinter: @ 0x0803107C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _08031118 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #0x12 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _08031112 - ldr r7, _0803111C - movs r1, #0x18 - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r7 - ldrb r2, [r1, #1] - movs r6, #0xd - rsbs r6, r6, #0 - adds r0, r6, #0 - ands r0, r2 - strb r0, [r1, #1] - movs r1, #0x1a - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r7 - ldrb r2, [r1, #1] - adds r0, r6, #0 - ands r0, r2 - strb r0, [r1, #1] - bl RunTextPrintersAndIsPrinter0Active - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08031112 - movs r0, #0x18 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrb r2, [r0, #1] - adds r1, r6, #0 - ands r1, r2 - movs r3, #4 - orrs r1, r3 - strb r1, [r0, #1] - movs r1, #0x1a - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r7 - ldrb r2, [r1, #1] - adds r0, r6, #0 - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #1] - adds r0, r5, #0 - movs r1, #2 - bl NewGameBirchSpeech_StartFadeOutTarget1InTarget2 - adds r0, r5, #0 - movs r1, #1 - bl NewGameBirchSpeech_StartFadePlatformIn - movs r0, #0x40 - strh r0, [r4, #0x16] - ldr r0, _08031120 - str r0, [r4] -_08031112: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08031118: .4byte gUnknown_3005B60 -_0803111C: .4byte gUnknown_20205AC -_08031120: .4byte Task_NewGameBirchSpeech_AreYouReady - thumb_func_end Task_NewGameBirchSpeech_WaitForSpriteFadeInAndTextPrinter - - thumb_func_start Task_NewGameBirchSpeech_AreYouReady -Task_NewGameBirchSpeech_AreYouReady: @ 0x08031124 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _0803117C - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r2, #0x12 - ldrsh r0, [r4, r2] - adds r7, r1, #0 - cmp r0, #0 - beq _080311F0 - ldr r2, _08031180 - movs r3, #0x18 - ldrsh r1, [r4, r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r1, [r0] - movs r3, #4 - orrs r1, r3 - strb r1, [r0] - movs r0, #0x1a - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - ldrh r1, [r4, #0x16] - movs r3, #0x16 - ldrsh r0, [r4, r3] - cmp r0, #0 - beq _08031184 - subs r0, r1, #1 - strh r0, [r4, #0x16] - b _080311F0 - .align 2, 0 -_0803117C: .4byte gUnknown_3005B60 -_08031180: .4byte gUnknown_20205AC -_08031184: - ldr r0, _08031194 - ldr r0, [r0] - ldrb r0, [r0, #8] - cmp r0, #0 - beq _08031198 - ldrb r5, [r4, #0x1e] - b _0803119A - .align 2, 0 -_08031194: .4byte gUnknown_3005AF0 -_08031198: - ldrb r5, [r4, #0x1c] -_0803119A: - lsls r1, r5, #4 - adds r1, r1, r5 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #0x78 - strh r0, [r1, #0x20] - movs r0, #0x3c - strh r0, [r1, #0x22] - adds r3, r1, #0 - adds r3, #0x3e - ldrb r2, [r3] - subs r0, #0x41 - ands r0, r2 - strb r0, [r3] - ldrb r2, [r1, #1] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - movs r2, #4 - orrs r0, r2 - strb r0, [r1, #1] - lsls r4, r6, #2 - adds r4, r4, r6 - lsls r4, r4, #3 - adds r4, r4, r7 - strh r5, [r4, #0xc] - adds r0, r6, #0 - movs r1, #2 - bl NewGameBirchSpeech_StartFadeInTarget1OutTarget2 - adds r0, r6, #0 - movs r1, #1 - bl NewGameBirchSpeech_StartFadePlatformOut - ldr r0, _080311F8 - ldr r1, _080311FC - bl StringExpandPlaceholders - movs r0, #1 - bl AddTextPrinterForMessage - ldr r0, _08031200 - str r0, [r4] -_080311F0: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080311F8: .4byte gUnknown_2021C7C -_080311FC: .4byte gUnknown_8277265 -_08031200: .4byte Task_NewGameBirchSpeech_ShrinkPlayer - thumb_func_end Task_NewGameBirchSpeech_AreYouReady - - thumb_func_start Task_NewGameBirchSpeech_ShrinkPlayer -Task_NewGameBirchSpeech_ShrinkPlayer: @ 0x08031204 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080312A8 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r6, r1, r2 - movs r1, #0x12 - ldrsh r0, [r6, r1] - cmp r0, #0 - beq _0803129C - ldr r7, _080312AC - movs r1, #0xc - ldrsh r0, [r6, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r7 - ldrb r2, [r1, #1] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #1] - bl RunTextPrintersAndIsPrinter0Active - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - cmp r0, #0 - bne _0803129C - ldrb r0, [r6, #0xc] - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - adds r5, r4, r7 - ldrb r1, [r5, #1] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r5, #1] - adds r0, r7, #0 - adds r0, #0x10 - adds r0, r4, r0 - ldr r1, _080312B0 - str r1, [r0] - adds r0, r5, #0 - bl InitSpriteAffineAnim - adds r0, r5, #0 - movs r1, #0 - bl StartSpriteAffineAnim - adds r0, r7, #0 - adds r0, #0x1c - adds r4, r4, r0 - ldr r0, _080312B4 - str r0, [r4] - ldr r0, _080312B8 - mov r1, r8 - str r1, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - movs r0, #4 - bl sub_080A2B08 - ldr r0, _080312BC - str r0, [r6] -_0803129C: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080312A8: .4byte gUnknown_3005B60 -_080312AC: .4byte gUnknown_20205AC -_080312B0: .4byte gUnknown_82D29A4 -_080312B4: .4byte SpriteCB_MovePlayerDownWhileShrinking -_080312B8: .4byte 0x0000FFFF -_080312BC: .4byte Task_NewGameBirchSpeech_WaitForPlayerShrink - thumb_func_end Task_NewGameBirchSpeech_ShrinkPlayer - - thumb_func_start Task_NewGameBirchSpeech_WaitForPlayerShrink -Task_NewGameBirchSpeech_WaitForPlayerShrink: @ 0x080312C0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080312F0 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r3, r1, r2 - ldrb r1, [r3, #0xc] - ldr r2, _080312F4 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3f - ldrb r0, [r0] - lsls r0, r0, #0x1a - cmp r0, #0 - bge _080312EA - ldr r0, _080312F8 - str r0, [r3] -_080312EA: - pop {r0} - bx r0 - .align 2, 0 -_080312F0: .4byte gUnknown_3005B60 -_080312F4: .4byte gUnknown_20205AC -_080312F8: .4byte Task_NewGameBirchSpeech_FadePlayerToWhite - thumb_func_end Task_NewGameBirchSpeech_WaitForPlayerShrink - - thumb_func_start Task_NewGameBirchSpeech_FadePlayerToWhite -Task_NewGameBirchSpeech_FadePlayerToWhite: @ 0x080312FC - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _08031354 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0803134A - ldr r0, _08031358 - lsls r4, r2, #2 - adds r4, r4, r2 - lsls r4, r4, #3 - adds r4, r4, r0 - ldrb r2, [r4, #0xc] - ldr r1, _0803135C - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _08031360 - str r1, [r0] - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - ldr r0, _08031364 - ldr r1, _08031368 - str r1, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _0803136C - str r0, [r4] -_0803134A: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08031354: .4byte gUnknown_2037C74 -_08031358: .4byte gUnknown_3005B60 -_0803135C: .4byte gUnknown_20205AC -_08031360: .4byte sub_08031614 -_08031364: .4byte 0xFFFF0000 -_08031368: .4byte 0x0000FFFF -_0803136C: .4byte sub_08031370 - thumb_func_end Task_NewGameBirchSpeech_FadePlayerToWhite - - thumb_func_start sub_08031370 -sub_08031370: @ 0x08031370 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080313AC - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080313A6 - bl FreeAllWindowBuffers - ldr r1, _080313B0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r0, [r0, #0x1a] - bl FreeAndDestroyMonPicSprite - bl ResetAllPicSprites - ldr r0, _080313B4 - bl SetMainCallback2 - adds r0, r4, #0 - bl DestroyTask -_080313A6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080313AC: .4byte gUnknown_2037C74 -_080313B0: .4byte gUnknown_3005B60 -_080313B4: .4byte CB2_NewGame - thumb_func_end sub_08031370 - - thumb_func_start CB2_NewGameBirchSpeech_ReturnFromNamingScreen -CB2_NewGameBirchSpeech_ReturnFromNamingScreen: @ 0x080313B8 - push {r4, r5, lr} - sub sp, #0xc - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - movs r0, #0 - movs r1, #0 - bl SetGpuReg - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - ldr r1, _080314E0 - movs r0, #0 - movs r2, #2 - bl InitBgsFromTemplates - ldr r0, _080314E4 - bl InitBgFromTemplate - movs r0, #0 - bl SetVBlankCallback - movs r0, #0xc - movs r1, #0 - bl SetGpuReg - movs r0, #0xa - movs r1, #0 - bl SetGpuReg - movs r0, #8 - movs r1, #0 - bl SetGpuReg - movs r0, #0x18 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1a - movs r1, #0 - bl SetGpuReg - movs r0, #0x14 - movs r1, #0 - bl SetGpuReg - movs r0, #0x16 - movs r1, #0 - bl SetGpuReg - movs r0, #0x10 - movs r1, #0 - bl SetGpuReg - movs r0, #0x12 - movs r1, #0 - bl SetGpuReg - add r0, sp, #4 - movs r4, #0 - strh r4, [r0] - ldr r1, _080314E8 - str r0, [r1] - movs r4, #0xc0 - lsls r4, r4, #0x13 - str r4, [r1, #4] - ldr r0, _080314EC - str r0, [r1, #8] - ldr r0, [r1, #8] - movs r2, #0 - str r2, [sp, #8] - add r0, sp, #8 - str r0, [r1] - movs r0, #0xe0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _080314F0 - str r0, [r1, #8] - ldr r0, [r1, #8] - add r0, sp, #4 - strh r2, [r0] - str r0, [r1] - movs r0, #0xa0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _080314F4 - str r0, [r1, #8] - ldr r0, [r1, #8] - bl ResetPaletteFade - ldr r0, _080314F8 - adds r1, r4, #0 - bl LZ77UnCompVram - ldr r0, _080314FC - ldr r1, _08031500 - bl LZ77UnCompVram - ldr r0, _08031504 - movs r1, #0 - movs r2, #0x40 - bl LoadPalette - ldr r0, _08031508 - movs r1, #1 - movs r2, #0x10 - bl LoadPalette - bl ResetTasks - ldr r0, _0803150C - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _08031510 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r0, #5 - strh r0, [r4, #0x16] - ldr r0, _08031514 - strh r0, [r4, #0x10] - bl ScanlineEffect_Stop - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetAllPicSprites - adds r0, r5, #0 - bl AddBirchSpeechObjects - ldr r0, _08031518 - ldr r0, [r0] - ldrb r0, [r0, #8] - cmp r0, #0 - beq _0803151C - movs r0, #1 - strh r0, [r4, #0x14] - ldrb r3, [r4, #0x1e] - b _08031520 - .align 2, 0 -_080314E0: .4byte gUnknown_82D2978 -_080314E4: .4byte gUnknown_82D2980 -_080314E8: .4byte 0x040000D4 -_080314EC: .4byte 0x8100C000 -_080314F0: .4byte 0x85000100 -_080314F4: .4byte 0x81000200 -_080314F8: .4byte gUnknown_82D25C8 -_080314FC: .4byte gUnknown_82D277C -_08031500: .4byte 0x06003800 -_08031504: .4byte gUnknown_82D2588 -_08031508: .4byte gUnknown_82D28A8 -_0803150C: .4byte Task_NewGameBirchSpeech_ReturnFromNamingScreenShowTextbox -_08031510: .4byte gUnknown_3005B60 -_08031514: .4byte 0x0000FFC4 -_08031518: .4byte gUnknown_3005AF0 -_0803151C: - strh r0, [r4, #0x14] - ldrb r3, [r4, #0x1c] -_08031520: - ldr r0, _080315F4 - lsls r1, r3, #4 - adds r1, r1, r3 - lsls r1, r1, #2 - adds r1, r1, r0 - movs r4, #0 - movs r0, #0xb4 - strh r0, [r1, #0x20] - movs r0, #0x3c - strh r0, [r1, #0x22] - adds r1, #0x3e - ldrb r2, [r1] - subs r0, #0x41 - ands r0, r2 - strb r0, [r1] - ldr r1, _080315F8 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r3, [r0, #0xc] - ldr r1, _080315FC - movs r0, #0x14 - bl SetGpuReg - movs r0, #1 - rsbs r0, r0, #0 - str r4, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - movs r0, #0x40 - movs r1, #0 - bl SetGpuReg - movs r0, #0x44 - movs r1, #0 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0 - bl SetGpuReg - movs r0, #0x4a - movs r1, #0 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - ldr r3, _08031600 - ldrh r2, [r3] - strh r4, [r3] - ldr r4, _08031604 - ldrh r0, [r4] - movs r1, #1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r0, _08031608 - bl SetVBlankCallback - ldr r0, _0803160C - bl SetMainCallback2 - ldr r0, _08031610 - bl InitWindows - movs r0, #0 - movs r1, #0xdb - bl LoadMainMenuWindowFrameTiles - movs r0, #0 - movs r1, #0xe4 - movs r2, #0xf0 - bl LoadMessageBoxGfx - movs r0, #0 - bl PutWindowTilemap - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080315F4: .4byte gUnknown_20205AC -_080315F8: .4byte gUnknown_3005B60 -_080315FC: .4byte 0x0000FFC4 -_08031600: .4byte 0x04000208 -_08031604: .4byte 0x04000200 -_08031608: .4byte sub_0802F32C -_0803160C: .4byte CB2_MainMenu -_08031610: .4byte gUnknown_82D2910 - thumb_func_end CB2_NewGameBirchSpeech_ReturnFromNamingScreen - - thumb_func_start sub_08031614 -sub_08031614: @ 0x08031614 - bx lr - .align 2, 0 - thumb_func_end sub_08031614 - - thumb_func_start SpriteCB_MovePlayerDownWhileShrinking -SpriteCB_MovePlayerDownWhileShrinking: @ 0x08031618 - movs r2, #0x22 - ldrsh r1, [r0, r2] - lsls r1, r1, #0x10 - movs r3, #0x2e - ldrsh r2, [r0, r3] - adds r1, r1, r2 - movs r2, #0xc0 - lsls r2, r2, #8 - adds r1, r1, r2 - lsrs r2, r1, #0x10 - strh r2, [r0, #0x22] - strh r1, [r0, #0x2e] - bx lr - .align 2, 0 - thumb_func_end SpriteCB_MovePlayerDownWhileShrinking - - thumb_func_start NewGameBirchSpeech_CreateLotadSprite -NewGameBirchSpeech_CreateLotadSprite: @ 0x08031634 - push {lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _08031664 - str r0, [sp] - str r1, [sp, #4] - movs r0, #0xe - str r0, [sp, #8] - ldr r0, _08031668 - str r0, [sp, #0xc] - adds r0, r2, #0 - movs r1, #8 - movs r2, #0 - movs r3, #1 - bl CreatePicSprite2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #0x10 - pop {r1} - bx r1 - .align 2, 0 -_08031664: .4byte 0x00000127 -_08031668: .4byte 0x0000FFFF - thumb_func_end NewGameBirchSpeech_CreateLotadSprite - - thumb_func_start AddBirchSpeechObjects -AddBirchSpeechObjects: @ 0x0803166C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0x88 - movs r1, #0x3c - movs r2, #1 - bl AddNewGameBirchObject - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0803178C - mov sb, r1 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - movs r3, #0x1c - add r3, sb - mov r8, r3 - adds r1, r2, r3 - ldr r7, _08031790 - str r7, [r1] - add r2, sb - ldrb r3, [r2, #5] - movs r6, #0xd - rsbs r6, r6, #0 - adds r1, r6, #0 - ands r1, r3 - strb r1, [r2, #5] - adds r2, #0x3e - ldrb r1, [r2] - movs r3, #4 - mov sl, r3 - mov r3, sl - orrs r1, r3 - strb r1, [r2] - ldr r1, _08031794 - lsls r5, r4, #2 - adds r5, r5, r4 - lsls r5, r5, #3 - adds r5, r5, r1 - strh r0, [r5, #0x18] - movs r0, #0x64 - movs r1, #0x4b - bl NewGameBirchSpeech_CreateLotadSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - mov r4, r8 - adds r1, r2, r4 - str r7, [r1] - add r2, sb - ldrb r3, [r2, #5] - adds r1, r6, #0 - ands r1, r3 - strb r1, [r2, #5] - adds r2, #0x3e - ldrb r1, [r2] - mov r3, sl - orrs r1, r3 - strb r1, [r2] - strh r0, [r5, #0x1a] - movs r0, #0x3c - bl sub_0806EA7C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _08031798 - str r4, [sp] - movs r1, #0x78 - movs r2, #0x3c - movs r3, #0 - bl CreateTrainerSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - mov r3, r8 - adds r1, r2, r3 - str r7, [r1] - add r2, sb - adds r3, r2, #0 - adds r3, #0x3e - ldrb r1, [r3] - mov r4, sl - orrs r1, r4 - strb r1, [r3] - ldrb r3, [r2, #5] - adds r1, r6, #0 - ands r1, r3 - strb r1, [r2, #5] - strh r0, [r5, #0x1c] - movs r0, #0x3f - bl sub_0806EA7C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08031798 - movs r2, #0x80 - lsls r2, r2, #4 - adds r4, r1, r2 - str r4, [sp] - movs r1, #0x78 - movs r2, #0x3c - movs r3, #0 - bl CreateTrainerSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - add r8, r2 - mov r3, r8 - str r7, [r3] - add r2, sb - adds r3, r2, #0 - adds r3, #0x3e - ldrb r1, [r3] - mov r4, sl - orrs r1, r4 - strb r1, [r3] - ldrb r1, [r2, #5] - ands r6, r1 - strb r6, [r2, #5] - strh r0, [r5, #0x1e] - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0803178C: .4byte gUnknown_20205AC -_08031790: .4byte sub_08031614 -_08031794: .4byte gUnknown_3005B60 -_08031798: .4byte gUnknown_201C000 - thumb_func_end AddBirchSpeechObjects - - thumb_func_start Task_NewGameBirchSpeech_FadeOutTarget1InTarget2 -Task_NewGameBirchSpeech_FadeOutTarget1InTarget2: @ 0x0803179C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r4, _080317D0 - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #3 - adds r2, r0, r4 - ldrh r1, [r2, #0xa] - movs r5, #0xa - ldrsh r0, [r2, r5] - cmp r0, #0 - bne _080317D4 - movs r1, #8 - ldrsh r0, [r2, r1] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r4 - movs r0, #1 - strh r0, [r1, #0x12] - adds r0, r3, #0 - bl DestroyTask - b _08031804 - .align 2, 0 -_080317D0: .4byte gUnknown_3005B60 -_080317D4: - ldrh r3, [r2, #0x10] - movs r4, #0x10 - ldrsh r0, [r2, r4] - cmp r0, #0 - beq _080317E4 - subs r0, r3, #1 - strh r0, [r2, #0x10] - b _08031804 -_080317E4: - ldrh r0, [r2, #0xe] - strh r0, [r2, #0x10] - subs r1, #1 - strh r1, [r2, #0xa] - ldrh r0, [r2, #0xc] - adds r0, #1 - strh r0, [r2, #0xc] - movs r5, #0xc - ldrsh r0, [r2, r5] - lsls r0, r0, #8 - adds r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg -_08031804: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Task_NewGameBirchSpeech_FadeOutTarget1InTarget2 - - thumb_func_start NewGameBirchSpeech_StartFadeOutTarget1InTarget2 -NewGameBirchSpeech_StartFadeOutTarget1InTarget2: @ 0x0803180C - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - movs r1, #0x94 - lsls r1, r1, #2 - movs r0, #0x50 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0x10 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - ldr r0, _08031874 - mov r8, r0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - add r0, r8 - movs r6, #0 - strh r6, [r0, #0x12] - ldr r0, _08031878 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - add r1, r8 - strh r4, [r1, #8] - movs r0, #0x10 - strh r0, [r1, #0xa] - strh r6, [r1, #0xc] - strh r5, [r1, #0xe] - strh r5, [r1, #0x10] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08031874: .4byte gUnknown_3005B60 -_08031878: .4byte Task_NewGameBirchSpeech_FadeOutTarget1InTarget2 - thumb_func_end NewGameBirchSpeech_StartFadeOutTarget1InTarget2 - - thumb_func_start Task_NewGameBirchSpeech_FadeInTarget1OutTarget2 -Task_NewGameBirchSpeech_FadeInTarget1OutTarget2: @ 0x0803187C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r4, _080318B0 - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #3 - adds r2, r0, r4 - ldrh r1, [r2, #0xa] - movs r5, #0xa - ldrsh r0, [r2, r5] - cmp r0, #0x10 - bne _080318B4 - movs r1, #8 - ldrsh r0, [r2, r1] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r4 - movs r0, #1 - strh r0, [r1, #0x12] - adds r0, r3, #0 - bl DestroyTask - b _080318E4 - .align 2, 0 -_080318B0: .4byte gUnknown_3005B60 -_080318B4: - ldrh r3, [r2, #0x10] - movs r4, #0x10 - ldrsh r0, [r2, r4] - cmp r0, #0 - beq _080318C4 - subs r0, r3, #1 - strh r0, [r2, #0x10] - b _080318E4 -_080318C4: - ldrh r0, [r2, #0xe] - strh r0, [r2, #0x10] - adds r1, #1 - strh r1, [r2, #0xa] - ldrh r0, [r2, #0xc] - subs r0, #1 - strh r0, [r2, #0xc] - movs r5, #0xc - ldrsh r0, [r2, r5] - lsls r0, r0, #8 - adds r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg -_080318E4: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Task_NewGameBirchSpeech_FadeInTarget1OutTarget2 - - thumb_func_start NewGameBirchSpeech_StartFadeInTarget1OutTarget2 -NewGameBirchSpeech_StartFadeInTarget1OutTarget2: @ 0x080318EC - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - movs r1, #0x94 - lsls r1, r1, #2 - movs r0, #0x50 - bl SetGpuReg - movs r1, #0x80 - lsls r1, r1, #5 - movs r0, #0x52 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - ldr r0, _08031954 - mov r8, r0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - add r0, r8 - movs r6, #0 - strh r6, [r0, #0x12] - ldr r0, _08031958 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - add r1, r8 - strh r4, [r1, #8] - strh r6, [r1, #0xa] - movs r0, #0x10 - strh r0, [r1, #0xc] - strh r5, [r1, #0xe] - strh r5, [r1, #0x10] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08031954: .4byte gUnknown_3005B60 -_08031958: .4byte Task_NewGameBirchSpeech_FadeInTarget1OutTarget2 - thumb_func_end NewGameBirchSpeech_StartFadeInTarget1OutTarget2 - - thumb_func_start Task_NewGameBirchSpeech_FadePlatformIn -Task_NewGameBirchSpeech_FadePlatformIn: @ 0x0803195C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _0803197C - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r1, r0, r1 - ldrh r3, [r1, #0xc] - movs r4, #0xc - ldrsh r0, [r1, r4] - cmp r0, #0 - beq _08031980 - subs r0, r3, #1 - strh r0, [r1, #0xc] - b _080319BC - .align 2, 0 -_0803197C: .4byte gUnknown_3005B60 -_08031980: - ldrh r3, [r1, #0xa] - movs r4, #0xa - ldrsh r0, [r1, r4] - cmp r0, #8 - bne _08031992 - adds r0, r2, #0 - bl DestroyTask - b _080319BC -_08031992: - ldrh r2, [r1, #0x10] - movs r4, #0x10 - ldrsh r0, [r1, r4] - cmp r0, #0 - beq _080319A2 - subs r0, r2, #1 - strh r0, [r1, #0x10] - b _080319BC -_080319A2: - ldrh r0, [r1, #0xe] - strh r0, [r1, #0x10] - adds r0, r3, #1 - strh r0, [r1, #0xa] - movs r2, #0xa - ldrsh r0, [r1, r2] - lsls r0, r0, #1 - ldr r1, _080319C4 - adds r0, r0, r1 - movs r1, #1 - movs r2, #0x10 - bl LoadPalette -_080319BC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080319C4: .4byte gUnknown_82D28A6 - thumb_func_end Task_NewGameBirchSpeech_FadePlatformIn - - thumb_func_start NewGameBirchSpeech_StartFadePlatformIn -NewGameBirchSpeech_StartFadePlatformIn: @ 0x080319C8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _08031A00 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08031A04 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r0, #0 - strh r4, [r1, #8] - strh r0, [r1, #0xa] - movs r0, #8 - strh r0, [r1, #0xc] - strh r5, [r1, #0xe] - strh r5, [r1, #0x10] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08031A00: .4byte Task_NewGameBirchSpeech_FadePlatformIn -_08031A04: .4byte gUnknown_3005B60 - thumb_func_end NewGameBirchSpeech_StartFadePlatformIn - - thumb_func_start Task_NewGameBirchSpeech_FadePlatformOut -Task_NewGameBirchSpeech_FadePlatformOut: @ 0x08031A08 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _08031A28 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r1, r0, r1 - ldrh r3, [r1, #0xc] - movs r4, #0xc - ldrsh r0, [r1, r4] - cmp r0, #0 - beq _08031A2C - subs r0, r3, #1 - strh r0, [r1, #0xc] - b _08031A68 - .align 2, 0 -_08031A28: .4byte gUnknown_3005B60 -_08031A2C: - ldrh r3, [r1, #0xa] - movs r4, #0xa - ldrsh r0, [r1, r4] - cmp r0, #0 - bne _08031A3E - adds r0, r2, #0 - bl DestroyTask - b _08031A68 -_08031A3E: - ldrh r2, [r1, #0x10] - movs r4, #0x10 - ldrsh r0, [r1, r4] - cmp r0, #0 - beq _08031A4E - subs r0, r2, #1 - strh r0, [r1, #0x10] - b _08031A68 -_08031A4E: - ldrh r0, [r1, #0xe] - strh r0, [r1, #0x10] - subs r0, r3, #1 - strh r0, [r1, #0xa] - movs r2, #0xa - ldrsh r0, [r1, r2] - lsls r0, r0, #1 - ldr r1, _08031A70 - adds r0, r0, r1 - movs r1, #1 - movs r2, #0x10 - bl LoadPalette -_08031A68: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08031A70: .4byte gUnknown_82D28A6 - thumb_func_end Task_NewGameBirchSpeech_FadePlatformOut - - thumb_func_start NewGameBirchSpeech_StartFadePlatformOut -NewGameBirchSpeech_StartFadePlatformOut: @ 0x08031A74 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _08031AAC - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08031AB0 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #8] - movs r0, #8 - strh r0, [r1, #0xa] - strh r0, [r1, #0xc] - strh r5, [r1, #0xe] - strh r5, [r1, #0x10] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08031AAC: .4byte Task_NewGameBirchSpeech_FadePlatformOut -_08031AB0: .4byte gUnknown_3005B60 - thumb_func_end NewGameBirchSpeech_StartFadePlatformOut - - thumb_func_start sub_08031AB4 -sub_08031AB4: @ 0x08031AB4 - push {r4, r5, lr} - sub sp, #0xc - ldr r0, _08031B18 - movs r1, #0xdb - bl DrawMainMenuWindowBorder - movs r0, #1 - movs r1, #0x11 - bl FillWindowPixelBuffer - movs r0, #1 - movs r1, #0 - bl sub_0800629C - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r5, #0x10 - str r5, [sp] - movs r4, #2 - str r4, [sp, #4] - ldr r0, _08031B1C - str r0, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r3, #2 - bl PrintTextArray - str r5, [sp] - str r4, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl sub_081984B0 - movs r0, #1 - bl PutWindowTilemap - movs r0, #1 - movs r1, #2 - bl CopyWindowToVram - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08031B18: .4byte gUnknown_82D2918 -_08031B1C: .4byte gUnknown_82D29A8 - thumb_func_end sub_08031AB4 - - thumb_func_start NewGameBirchSpeech_ProcessGenderMenuInput -NewGameBirchSpeech_ProcessGenderMenuInput: @ 0x08031B20 - push {lr} - bl Menu_ProcessInputNoWrap - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end NewGameBirchSpeech_ProcessGenderMenuInput - - thumb_func_start NewGameBirchSpeech_SetDefaultPlayerName -NewGameBirchSpeech_SetDefaultPlayerName: @ 0x08031B30 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _08031B48 - ldr r0, [r1] - ldrb r0, [r0, #8] - adds r5, r1, #0 - cmp r0, #0 - bne _08031B50 - ldr r1, _08031B4C - b _08031B52 - .align 2, 0 -_08031B48: .4byte gUnknown_3005AF0 -_08031B4C: .4byte gUnknown_82D29B8 -_08031B50: - ldr r1, _08031B7C -_08031B52: - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r3, [r0] - movs r2, #0 - ldr r4, _08031B80 -_08031B5C: - ldr r1, [r4] - adds r1, r1, r2 - adds r0, r3, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #4 - bls _08031B5C - ldr r1, [r5] - movs r0, #0xff - strb r0, [r1, #5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08031B7C: .4byte gUnknown_82D2A08 -_08031B80: .4byte gUnknown_3005AF0 - thumb_func_end NewGameBirchSpeech_SetDefaultPlayerName - - thumb_func_start sub_08031B84 -sub_08031B84: @ 0x08031B84 - push {r4, lr} - sub sp, #0xc - adds r4, r0, #0 - movs r0, #7 - movs r1, #0x11 - bl FillWindowPixelBuffer - movs r0, #2 - str r0, [sp] - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - movs r0, #7 - movs r1, #1 - adds r2, r4, #0 - movs r3, #0 - bl AddTextPrinterParameterized - movs r0, #7 - bl PutWindowTilemap - movs r0, #7 - movs r1, #2 - bl CopyWindowToVram - ldr r0, _08031BD8 - ldr r1, _08031BDC - bl DrawMainMenuWindowBorder - ldr r1, _08031BE0 - movs r0, #0x40 - bl SetGpuReg - ldr r1, _08031BE4 - movs r0, #0x44 - bl SetGpuReg - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08031BD8: .4byte gUnknown_82D2900 -_08031BDC: .4byte 0x000001D5 -_08031BE0: .4byte 0x000009E7 -_08031BE4: .4byte 0x0000719F - thumb_func_end sub_08031B84 - - thumb_func_start sub_08031BE8 -sub_08031BE8: @ 0x08031BE8 - push {lr} - bl sub_08031C00 - bl sub_08031CB0 - bl sub_08031C4C - bl sub_08031D28 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08031BE8 - - thumb_func_start sub_08031C00 -sub_08031C00: @ 0x08031C00 - push {r4, lr} - sub sp, #0xc - ldr r0, _08031C38 - ldr r1, _08031C3C - ldr r1, [r1] - bl StringCopy - ldr r4, _08031C40 - ldr r1, _08031C44 - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r0, _08031C48 - str r0, [sp] - movs r0, #1 - rsbs r0, r0, #0 - str r0, [sp, #4] - str r4, [sp, #8] - movs r0, #2 - movs r1, #1 - movs r2, #0 - movs r3, #0x11 - bl AddTextPrinterParameterized3 - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08031C38: .4byte gUnknown_2021C40 -_08031C3C: .4byte gUnknown_3005AF0 -_08031C40: .4byte gUnknown_2021C7C -_08031C44: .4byte gUnknown_85CCCBD -_08031C48: .4byte gUnknown_82D2973 - thumb_func_end sub_08031C00 - - thumb_func_start sub_08031C4C -sub_08031C4C: @ 0x08031C4C - push {r4, lr} - sub sp, #0xc - ldr r0, _08031C98 - ldr r4, _08031C9C - ldr r1, [r4] - ldrh r1, [r1, #0xe] - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - ldr r0, _08031CA0 - ldr r1, [r4] - ldrb r1, [r1, #0x10] - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - ldr r4, _08031CA4 - ldr r1, _08031CA8 - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r0, _08031CAC - str r0, [sp] - movs r0, #1 - rsbs r0, r0, #0 - str r0, [sp, #4] - str r4, [sp, #8] - movs r0, #2 - movs r1, #1 - movs r2, #0x67 - movs r3, #0x11 - bl AddTextPrinterParameterized3 - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08031C98: .4byte gUnknown_2021C40 -_08031C9C: .4byte gUnknown_3005AF0 -_08031CA0: .4byte gUnknown_2021C54 -_08031CA4: .4byte gUnknown_2021C7C -_08031CA8: .4byte gUnknown_85CCCC7 -_08031CAC: .4byte gUnknown_82D2973 - thumb_func_end sub_08031C4C - - thumb_func_start sub_08031CB0 -sub_08031CB0: @ 0x08031CB0 - push {r4, lr} - sub sp, #0xc - ldr r0, _08031CD4 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08031D0E - bl IsNationalPokedexEnabled - cmp r0, #0 - beq _08031CD8 - movs r0, #1 - bl GetNationalPokedexCount - b _08031CDE - .align 2, 0 -_08031CD4: .4byte 0x00000861 -_08031CD8: - movs r0, #1 - bl GetHoennPokedexCount -_08031CDE: - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r0, _08031D18 - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - ldr r4, _08031D1C - ldr r1, _08031D20 - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r0, _08031D24 - str r0, [sp] - movs r0, #1 - rsbs r0, r0, #0 - str r0, [sp, #4] - str r4, [sp, #8] - movs r0, #2 - movs r1, #1 - movs r2, #0 - movs r3, #0x21 - bl AddTextPrinterParameterized3 -_08031D0E: - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08031D18: .4byte gUnknown_2021C40 -_08031D1C: .4byte gUnknown_2021C7C -_08031D20: .4byte gUnknown_85CCCD4 -_08031D24: .4byte gUnknown_82D2973 - thumb_func_end sub_08031CB0 - - thumb_func_start sub_08031D28 -sub_08031D28: @ 0x08031D28 - push {r4, r5, lr} - sub sp, #0xc - movs r5, #0 - ldr r4, _08031D84 -_08031D30: - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08031D44 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_08031D44: - adds r4, #1 - ldr r0, _08031D88 - cmp r4, r0 - bls _08031D30 - ldr r0, _08031D8C - adds r1, r5, #0 - movs r2, #2 - movs r3, #1 - bl sub_080089D8 - ldr r4, _08031D90 - ldr r1, _08031D94 - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r0, _08031D98 - str r0, [sp] - movs r0, #1 - rsbs r0, r0, #0 - str r0, [sp, #4] - str r4, [sp, #8] - movs r0, #2 - movs r1, #1 - movs r2, #0x6f - movs r3, #0x21 - bl AddTextPrinterParameterized3 - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08031D84: .4byte 0x00000867 -_08031D88: .4byte 0x0000086E -_08031D8C: .4byte gUnknown_2021C40 -_08031D90: .4byte gUnknown_2021C7C -_08031D94: .4byte gUnknown_85CCCE1 -_08031D98: .4byte gUnknown_82D2973 - thumb_func_end sub_08031D28 - - thumb_func_start LoadMainMenuWindowFrameTiles -LoadMainMenuWindowFrameTiles: @ 0x08031D9C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - ldr r6, _08031DE0 - ldr r0, [r6] - ldrb r0, [r0, #0x14] - lsrs r0, r0, #3 - bl GetWindowFrameTilesPal - ldr r1, [r0] - movs r2, #0x90 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r3, r5, #0 - bl LoadBgTiles - ldr r0, [r6] - ldrb r0, [r0, #0x14] - lsrs r0, r0, #3 - bl GetWindowFrameTilesPal - ldr r0, [r0, #4] - movs r1, #0x20 - movs r2, #0x20 - bl LoadPalette - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08031DE0: .4byte gUnknown_3005AF0 - thumb_func_end LoadMainMenuWindowFrameTiles - - thumb_func_start DrawMainMenuWindowBorder -DrawMainMenuWindowBorder: @ 0x08031DE4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - adds r4, r0, #0 - lsls r6, r1, #0x10 - movs r0, #0x80 - lsls r0, r0, #9 - adds r0, r0, r6 - lsrs r0, r0, #0x10 - mov sb, r0 - movs r1, #0x80 - lsls r1, r1, #0xa - adds r1, r1, r6 - lsrs r1, r1, #0x10 - mov sl, r1 - movs r7, #0xc0 - lsls r7, r7, #0xa - adds r1, r6, r7 - lsrs r1, r1, #0x10 - str r1, [sp, #0x18] - movs r0, #0xa0 - lsls r0, r0, #0xb - adds r1, r6, r0 - lsrs r1, r1, #0x10 - str r1, [sp, #0xc] - movs r7, #0xc0 - lsls r7, r7, #0xb - adds r1, r6, r7 - lsrs r1, r1, #0x10 - str r1, [sp, #0x10] - movs r0, #0xe0 - lsls r0, r0, #0xb - adds r1, r6, r0 - lsrs r1, r1, #0x10 - str r1, [sp, #0x14] - lsrs r1, r6, #0x10 - movs r7, #0x80 - lsls r7, r7, #0xc - adds r6, r6, r7 - lsrs r6, r6, #0x10 - ldrb r0, [r4] - ldrb r2, [r4, #1] - subs r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r3, [r4, #2] - subs r3, #1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r5, #1 - str r5, [sp] - str r5, [sp, #4] - movs r7, #2 - mov r8, r7 - str r7, [sp, #8] - bl FillBgTilemapBufferRect - ldrb r0, [r4] - ldrb r2, [r4, #1] - ldrb r3, [r4, #2] - subs r3, #1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldrb r1, [r4, #3] - str r1, [sp] - str r5, [sp, #4] - str r7, [sp, #8] - mov r1, sb - bl FillBgTilemapBufferRect - ldrb r0, [r4] - ldrb r2, [r4, #3] - ldrb r1, [r4, #1] - adds r2, r2, r1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r3, [r4, #2] - subs r3, #1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r5, [sp] - str r5, [sp, #4] - str r7, [sp, #8] - mov r1, sl - bl FillBgTilemapBufferRect - ldrb r0, [r4] - ldrb r2, [r4, #1] - subs r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r3, [r4, #2] - str r5, [sp] - ldrb r1, [r4, #4] - str r1, [sp, #4] - str r7, [sp, #8] - ldr r1, [sp, #0x18] - bl FillBgTilemapBufferRect - ldrb r0, [r4] - ldrb r2, [r4, #3] - ldrb r7, [r4, #1] - adds r2, r2, r7 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r3, [r4, #2] - str r5, [sp] - ldrb r1, [r4, #4] - str r1, [sp, #4] - mov r1, r8 - str r1, [sp, #8] - ldr r1, [sp, #0xc] - bl FillBgTilemapBufferRect - ldrb r0, [r4] - ldrb r2, [r4, #1] - subs r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r3, [r4, #4] - ldrb r7, [r4, #2] - adds r3, r3, r7 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r5, [sp] - str r5, [sp, #4] - mov r1, r8 - str r1, [sp, #8] - ldr r1, [sp, #0x10] - bl FillBgTilemapBufferRect - ldrb r0, [r4] - ldrb r2, [r4, #1] - ldrb r3, [r4, #4] - ldrb r7, [r4, #2] - adds r3, r3, r7 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldrb r1, [r4, #3] - str r1, [sp] - str r5, [sp, #4] - mov r1, r8 - str r1, [sp, #8] - ldr r1, [sp, #0x14] - bl FillBgTilemapBufferRect - ldrb r0, [r4] - ldrb r2, [r4, #3] - ldrb r7, [r4, #1] - adds r2, r2, r7 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r3, [r4, #4] - ldrb r1, [r4, #2] - adds r3, r3, r1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r5, [sp] - str r5, [sp, #4] - mov r7, r8 - str r7, [sp, #8] - adds r1, r6, #0 - bl FillBgTilemapBufferRect - ldrb r0, [r4] - bl CopyBgTilemapBufferToVram - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end DrawMainMenuWindowBorder - - thumb_func_start ClearMainMenuWindowTilemap -ClearMainMenuWindowTilemap: @ 0x08031F48 - push {r4, r5, r6, lr} - sub sp, #0xc - adds r6, r0, #0 - ldrb r0, [r6] - ldrb r1, [r6, #1] - subs r2, r1, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r4, [r6, #2] - subs r3, r4, #1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldrb r5, [r6, #3] - adds r1, r1, r5 - adds r1, #1 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp] - ldrb r1, [r6, #4] - adds r4, r4, r1 - adds r4, #1 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp, #4] - movs r1, #2 - str r1, [sp, #8] - movs r1, #0 - bl FillBgTilemapBufferRect - ldrb r0, [r6] - bl CopyBgTilemapBufferToVram - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end ClearMainMenuWindowTilemap - - thumb_func_start NewGameBirchSpeech_ClearGenderWindowTilemap -NewGameBirchSpeech_ClearGenderWindowTilemap: @ 0x08031F90 - push {r4, r5, lr} - sub sp, #0xc - adds r4, r1, #0 - adds r5, r2, #0 - ldr r1, [sp, #0x18] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r4, #0x18 - lsls r5, r5, #0x18 - lsls r3, r3, #0x18 - lsls r1, r1, #0x18 - movs r2, #0xff - lsls r2, r2, #0x18 - adds r4, r4, r2 - lsrs r4, r4, #0x18 - adds r5, r5, r2 - lsrs r5, r5, #0x18 - movs r2, #0x80 - lsls r2, r2, #0x12 - adds r3, r3, r2 - lsrs r3, r3, #0x18 - str r3, [sp] - adds r1, r1, r2 - lsrs r1, r1, #0x18 - str r1, [sp, #4] - movs r1, #2 - str r1, [sp, #8] - movs r1, #0 - adds r2, r4, #0 - adds r3, r5, #0 - bl FillBgTilemapBufferRect - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end NewGameBirchSpeech_ClearGenderWindowTilemap - - thumb_func_start sub_08031FD8 -sub_08031FD8: @ 0x08031FD8 - push {r4, r5, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _0803200C - adds r0, r5, #0 - bl CallWindowFunction - adds r0, r5, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - adds r0, r5, #0 - bl ClearWindowTilemap - cmp r4, #1 - bne _08032006 - adds r0, r5, #0 - movs r1, #3 - bl CopyWindowToVram -_08032006: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0803200C: .4byte NewGameBirchSpeech_ClearGenderWindowTilemap - thumb_func_end sub_08031FD8 - - thumb_func_start NewGameBirchSpeech_ClearWindow -NewGameBirchSpeech_ClearWindow: @ 0x08032010 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #8 - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - movs r0, #1 - movs r1, #6 - bl GetFontAttribute - mov sb, r0 - mov r0, sb - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - movs r0, #1 - movs r1, #0 - bl GetFontAttribute - mov r8, r0 - mov r0, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r0, #1 - movs r1, #1 - bl GetFontAttribute - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - adds r0, r6, #0 - movs r1, #3 - bl GetWindowAttribute - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r6, #0 - movs r1, #4 - bl GetWindowAttribute - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, r8 - muls r1, r4, r1 - str r1, [sp] - muls r0, r5, r0 - str r0, [sp, #4] - adds r0, r6, #0 - mov r1, sb - movs r2, #0 - movs r3, #0 - bl sub_08003A34 - adds r0, r6, #0 - movs r1, #2 - bl CopyWindowToVram - add sp, #8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end NewGameBirchSpeech_ClearWindow - - thumb_func_start NewGameBirchSpeech_ShowPokeBallPrinterCallback -NewGameBirchSpeech_ShowPokeBallPrinterCallback: @ 0x08032098 - push {lr} - ldr r0, [r0] - subs r0, #2 - ldrb r0, [r0] - cmp r0, #8 - bne _080320B8 - ldr r1, _080320BC - ldrb r0, [r1] - cmp r0, #0 - bne _080320B8 - movs r0, #1 - strb r0, [r1] - ldr r0, _080320C0 - movs r1, #0 - bl CreateTask -_080320B8: - pop {r0} - bx r0 - .align 2, 0 -_080320BC: .4byte gUnknown_20229B8 -_080320C0: .4byte Task_NewGameBirchSpeechSub_InitPokeBall - thumb_func_end NewGameBirchSpeech_ShowPokeBallPrinterCallback - - thumb_func_start CreateYesNoMenuParameterized -CreateYesNoMenuParameterized: @ 0x080320C4 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0x20 - adds r4, r0, #0 - adds r5, r1, #0 - mov r8, r2 - ldr r6, [sp, #0x34] - ldr r1, [sp, #0x38] - lsls r4, r4, #0x18 - lsls r5, r5, #0x18 - mov r0, r8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0x80 - lsls r0, r0, #0x11 - adds r4, r4, r0 - lsrs r4, r4, #0x18 - adds r5, r5, r0 - lsrs r5, r5, #0x18 - movs r0, #5 - str r0, [sp] - movs r0, #4 - str r0, [sp, #4] - str r1, [sp, #8] - str r3, [sp, #0xc] - add r0, sp, #0x10 - movs r1, #0 - adds r2, r4, #0 - adds r3, r5, #0 - bl CreateWindowTemplate - ldr r0, [sp, #0x10] - ldr r1, [sp, #0x14] - str r0, [sp, #0x18] - str r1, [sp, #0x1c] - add r0, sp, #0x18 - mov r1, r8 - str r1, [sp] - str r6, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl sub_08198C08 - add sp, #0x20 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end CreateYesNoMenuParameterized - - thumb_func_start sub_0803213C -sub_0803213C: @ 0x0803213C - push {r4, r5, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _08032170 - adds r0, r5, #0 - bl CallWindowFunction - adds r0, r5, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - adds r0, r5, #0 - bl PutWindowTilemap - cmp r4, #1 - bne _0803216A - adds r0, r5, #0 - movs r1, #3 - bl CopyWindowToVram -_0803216A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08032170: .4byte sub_08032174 - thumb_func_end sub_0803213C - - thumb_func_start sub_08032174 -sub_08032174: @ 0x08032174 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x2c - mov r8, r0 - adds r5, r2, #0 - ldr r2, [sp, #0x4c] - ldr r6, [sp, #0x50] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r1, r1, #0x18 - lsls r5, r5, #0x18 - lsls r0, r3, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x10] - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x14] - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsrs r0, r1, #0x18 - str r0, [sp, #0xc] - movs r0, #0xfd - lsls r0, r0, #0x18 - adds r1, r1, r0 - lsrs r1, r1, #0x18 - str r1, [sp, #0x18] - lsrs r1, r5, #0x18 - mov sl, r1 - movs r0, #0xff - lsls r0, r0, #0x18 - adds r5, r5, r0 - lsrs r5, r5, #0x18 - movs r4, #1 - str r4, [sp] - str r4, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - movs r1, #0xe5 - ldr r2, [sp, #0x18] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - ldr r0, [sp, #0xc] - subs r0, #2 - lsls r2, r0, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x1c] - str r4, [sp] - str r4, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - movs r1, #0xe6 - adds r3, r5, #0 - bl FillBgTilemapBufferRect - ldr r0, [sp, #0xc] - subs r0, #1 - lsls r2, r0, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x20] - str r4, [sp] - str r4, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - movs r1, #0xe7 - adds r3, r5, #0 - bl FillBgTilemapBufferRect - ldr r1, [sp, #0x10] - str r1, [sp] - str r4, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - movs r1, #0xe8 - ldr r2, [sp, #0xc] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - ldr r0, [sp, #0xc] - ldr r1, [sp, #0x10] - adds r7, r0, r1 - lsls r2, r7, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x24] - str r4, [sp] - str r4, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - movs r1, #0xe9 - adds r3, r5, #0 - bl FillBgTilemapBufferRect - adds r0, r7, #1 - lsls r2, r0, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x28] - str r4, [sp] - str r4, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - movs r1, #0xe6 - adds r3, r5, #0 - bl FillBgTilemapBufferRect - adds r0, r7, #2 - lsls r2, r0, #0x18 - lsrs r7, r2, #0x18 - str r4, [sp] - str r4, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - movs r1, #0xea - adds r2, r7, #0 - adds r3, r5, #0 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - movs r1, #0xeb - ldr r2, [sp, #0x18] - mov r3, sl - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - movs r1, #0xf1 - ldr r2, [sp, #0x1c] - mov r3, sl - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - movs r1, #0xef - ldr r2, [sp, #0x20] - mov r3, sl - bl FillBgTilemapBufferRect - ldr r0, [sp, #0x10] - str r0, [sp] - str r4, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - movs r1, #0xed - ldr r2, [sp, #0xc] - mov r3, sl - bl FillBgTilemapBufferRect - ldr r1, _08032480 - str r4, [sp] - str r4, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x24] - mov r3, sl - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - movs r1, #0xf1 - ldr r2, [sp, #0x28] - mov r3, sl - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - movs r1, #0xee - adds r2, r7, #0 - mov r3, sl - bl FillBgTilemapBufferRect - mov r5, sl - adds r5, #1 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - str r4, [sp] - movs r1, #2 - mov sb, r1 - str r1, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - movs r1, #0xeb - ldr r2, [sp, #0x18] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - str r4, [sp] - mov r0, sb - str r0, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - movs r1, #0xec - ldr r2, [sp, #0x1c] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - ldr r0, [sp, #0x10] - adds r0, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - mov r1, sb - str r1, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - movs r1, #0xed - ldr r2, [sp, #0x20] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - str r4, [sp] - mov r0, sb - str r0, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - movs r1, #0xec - ldr r2, [sp, #0x28] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - str r4, [sp] - mov r1, sb - str r1, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - movs r1, #0xee - adds r2, r7, #0 - adds r3, r5, #0 - bl FillBgTilemapBufferRect - ldr r1, _08032484 - ldr r0, [sp, #0x14] - add sl, r0 - mov r5, sl - subs r5, #1 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - str r4, [sp] - str r4, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x18] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - ldr r1, _08032488 - mov sb, r1 - str r4, [sp] - str r4, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x1c] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - ldr r1, _0803248C - str r4, [sp] - str r4, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x20] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - ldr r1, _08032490 - str r4, [sp] - str r4, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0xc] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - ldr r1, _08032494 - str r4, [sp] - str r4, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x24] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - mov r1, sb - ldr r2, [sp, #0x28] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - ldr r1, _08032498 - str r4, [sp] - str r4, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - adds r2, r7, #0 - adds r3, r5, #0 - bl FillBgTilemapBufferRect - ldr r1, _0803249C - mov r0, sl - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - str r4, [sp] - str r4, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x18] - mov r3, sl - bl FillBgTilemapBufferRect - ldr r5, _080324A0 - str r4, [sp] - str r4, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - adds r1, r5, #0 - ldr r2, [sp, #0x1c] - mov r3, sl - bl FillBgTilemapBufferRect - ldr r1, _080324A4 - str r4, [sp] - str r4, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x20] - mov r3, sl - bl FillBgTilemapBufferRect - ldr r1, _080324A8 - ldr r0, [sp, #0x10] - str r0, [sp] - str r4, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0xc] - mov r3, sl - bl FillBgTilemapBufferRect - ldr r1, _080324AC - str r4, [sp] - str r4, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x24] - mov r3, sl - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - adds r1, r5, #0 - ldr r2, [sp, #0x28] - mov r3, sl - bl FillBgTilemapBufferRect - ldr r1, _080324B0 - str r4, [sp] - str r4, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - adds r2, r7, #0 - mov r3, sl - bl FillBgTilemapBufferRect - add sp, #0x2c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08032480: .4byte 0x000004EF -_08032484: .4byte 0x000008EB -_08032488: .4byte 0x000008F1 -_0803248C: .4byte 0x000008EF -_08032490: .4byte 0x000008ED -_08032494: .4byte 0x00000CEF -_08032498: .4byte 0x000008EE -_0803249C: .4byte 0x000008E5 -_080324A0: .4byte 0x000008E6 -_080324A4: .4byte 0x000008E7 -_080324A8: .4byte 0x000008E8 -_080324AC: .4byte 0x000008E9 -_080324B0: .4byte 0x000008EA - thumb_func_end sub_08032174 - - thumb_func_start Task_NewGameBirchSpeech_ReturnFromNamingScreenShowTextbox -Task_NewGameBirchSpeech_ReturnFromNamingScreenShowTextbox: @ 0x080324B4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080324E4 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 - ldrh r0, [r4, #0x16] - subs r1, r0, #1 - strh r1, [r4, #0x16] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _080324DC - movs r0, #0 - movs r1, #1 - bl sub_0803213C - ldr r0, _080324E8 - str r0, [r4] -_080324DC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080324E4: .4byte gUnknown_3005B60 -_080324E8: .4byte sub_08030E44 - thumb_func_end Task_NewGameBirchSpeech_ReturnFromNamingScreenShowTextbox - - thumb_func_start HandleLinkBattleSetup -HandleLinkBattleSetup: @ 0x080324EC - push {lr} - ldr r0, _08032524 - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _0803251E - ldr r0, _08032528 - ldrb r0, [r0] - cmp r0, #0 - beq _08032506 - bl sub_0800AF5C -_08032506: - ldr r0, _0803252C - ldrb r0, [r0] - cmp r0, #0 - bne _08032512 - bl OpenLink -_08032512: - ldr r0, _08032530 - movs r1, #0 - bl CreateTask - bl CreateTasksForSendRecvLinkBuffers -_0803251E: - pop {r0} - bx r0 - .align 2, 0 -_08032524: .4byte gUnknown_2022C90 -_08032528: .4byte gUnknown_300319C -_0803252C: .4byte gUnknown_30031C4 -_08032530: .4byte sub_080B3188 - thumb_func_end HandleLinkBattleSetup - - thumb_func_start SetUpBattleVarsAndBirchZigzagoon -SetUpBattleVarsAndBirchZigzagoon: @ 0x08032534 - push {r4, r5, r6, r7, lr} - sub sp, #0x14 - ldr r0, _080325D0 - ldr r1, _080325D4 - str r1, [r0] - movs r0, #0 - str r0, [sp, #0x10] - movs r1, #0 - ldr r7, _080325D8 - ldr r6, _080325DC - movs r2, #0 - ldr r5, _080325E0 - ldr r4, _080325E4 - ldr r3, _080325E8 -_08032550: - lsls r0, r1, #2 - adds r0, r0, r7 - str r4, [r0] - adds r1, r1, r3 - movs r0, #0xff - strb r0, [r1] - ldr r0, [sp, #0x10] - adds r0, r0, r6 - strb r2, [r0] - ldr r0, [sp, #0x10] - adds r0, r0, r5 - strb r2, [r0] - ldr r0, [sp, #0x10] - adds r0, #1 - str r0, [sp, #0x10] - adds r1, r0, #0 - cmp r1, #3 - ble _08032550 - bl HandleLinkBattleSetup - ldr r0, _080325EC - movs r5, #0 - str r5, [r0] - bl ClearBattleAnimationVars - bl ClearBattleMonForms - movs r0, #0xf - bl sub_08130920 - ldr r0, _080325F0 - ldr r0, [r0] - movs r1, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080325C0 - bl ZeroEnemyPartyMons - ldr r4, _080325F4 - movs r1, #0x90 - lsls r1, r1, #1 - str r5, [sp] - str r5, [sp, #4] - str r5, [sp, #8] - str r5, [sp, #0xc] - adds r0, r4, #0 - movs r2, #2 - movs r3, #0x20 - bl CreateMon - str r5, [sp, #0x10] - adds r0, r4, #0 - movs r1, #0xc - add r2, sp, #0x10 - bl SetMonData -_080325C0: - ldr r0, _080325F8 - str r5, [r0] - ldr r0, _080325FC - strb r5, [r0] - add sp, #0x14 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080325D0: .4byte gUnknown_3005A64 -_080325D4: .4byte sub_08039B0C -_080325D8: .4byte gUnknown_3005AC0 -_080325DC: .4byte gUnknown_2024150 -_080325E0: .4byte gUnknown_2024154 -_080325E4: .4byte sub_08057068 -_080325E8: .4byte gUnknown_2023D1A -_080325EC: .4byte gUnknown_2023D0C -_080325F0: .4byte gUnknown_2022C90 -_080325F4: .4byte gUnknown_20243E8 -_080325F8: .4byte gUnknown_2022C98 -_080325FC: .4byte gUnknown_2023F30 - thumb_func_end SetUpBattleVarsAndBirchZigzagoon - - thumb_func_start sub_08032600 -sub_08032600: @ 0x08032600 - push {r4, r5, lr} - ldr r0, _08032618 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - bne _0803261C - movs r0, #1 - bl sub_08184C50 - b _08032622 - .align 2, 0 -_08032618: .4byte gUnknown_2022C90 -_0803261C: - movs r0, #2 - bl sub_08184C50 -_08032622: - ldr r4, _08032644 - ldr r0, [r4] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - bne _08032634 - bl sub_08185C10 -_08032634: - ldr r0, [r4] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _08032648 - bl InitLinkBtlControllers - b _0803264C - .align 2, 0 -_08032644: .4byte gUnknown_2022C90 -_08032648: - bl InitSinglePlayerBtlControllers -_0803264C: - bl SetBattlePartyIds - ldr r0, _080326B0 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _0803267A - movs r4, #0 - ldr r0, _080326B4 - ldrb r1, [r0] - cmp r4, r1 - bge _0803267A - adds r5, r0, #0 -_08032668: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl sub_081B8A04 - adds r4, #1 - ldrb r0, [r5] - cmp r4, r0 - blt _08032668 -_0803267A: - movs r4, #0 - ldr r3, _080326B8 - movs r2, #0xd2 - lsls r2, r2, #1 - movs r1, #0 -_08032684: - ldr r0, [r3] - adds r0, r4, r0 - adds r0, r0, r2 - strb r1, [r0] - adds r4, #1 - cmp r4, #0x5f - bls _08032684 - movs r4, #0 - ldr r3, _080326B8 - movs r2, #0x81 - lsls r2, r2, #2 - movs r1, #0 -_0803269C: - ldr r0, [r3] - adds r0, r4, r0 - adds r0, r0, r2 - strb r1, [r0] - adds r4, #1 - cmp r4, #0x67 - bls _0803269C - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080326B0: .4byte gUnknown_2022C90 -_080326B4: .4byte gUnknown_2023D10 -_080326B8: .4byte gUnknown_2024140 - thumb_func_end sub_08032600 - - thumb_func_start InitSinglePlayerBtlControllers -InitSinglePlayerBtlControllers: @ 0x080326BC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _080326F4 - ldr r3, [r0] - movs r5, #0x80 - lsls r5, r5, #0xf - ands r5, r3 - cmp r5, #0 - beq _0803277C - ldr r1, _080326F8 - ldr r0, _080326FC - str r0, [r1] - movs r4, #0x80 - lsls r4, r4, #0x11 - ands r4, r3 - cmp r4, #0 - beq _0803270C - ldr r2, _08032700 - ldr r0, _08032704 - str r0, [r2] - ldr r1, _08032708 - movs r0, #0 - strb r0, [r1] - b _08032716 - .align 2, 0 -_080326F4: .4byte gUnknown_2022C90 -_080326F8: .4byte gUnknown_3005A64 -_080326FC: .4byte BeginBattleIntro -_08032700: .4byte gUnknown_3005AC0 -_08032704: .4byte sub_08189678 -_08032708: .4byte gUnknown_2023D1A -_0803270C: - ldr r2, _08032760 - ldr r0, _08032764 - str r0, [r2] - ldr r1, _08032768 - strb r4, [r1] -_08032716: - ldr r3, _0803276C - str r3, [r2, #4] - movs r0, #1 - strb r0, [r1, #1] - ldr r0, _08032770 - str r0, [r2, #8] - movs r0, #2 - strb r0, [r1, #2] - str r3, [r2, #0xc] - movs r0, #3 - strb r0, [r1, #3] - ldr r1, _08032774 - movs r0, #4 - strb r0, [r1] - movs r0, #0 - movs r1, #0 - bl sub_081B8A04 - movs r0, #1 - movs r1, #0 - bl sub_081B8A04 - movs r0, #2 - movs r1, #1 - bl sub_081B8A04 - movs r0, #3 - movs r1, #1 - bl sub_081B8A04 - ldr r0, _08032778 - movs r1, #0 - strh r1, [r0] - strh r1, [r0, #2] - movs r1, #3 - b _0803290E - .align 2, 0 -_08032760: .4byte gUnknown_3005AC0 -_08032764: .4byte SetControllerToPlayer -_08032768: .4byte gUnknown_2023D1A -_0803276C: .4byte sub_0805ED80 -_08032770: .4byte sub_081BAA90 -_08032774: .4byte gUnknown_2023D10 -_08032778: .4byte gUnknown_2023D12 -_0803277C: - movs r7, #1 - adds r0, r3, #0 - ands r0, r7 - cmp r0, #0 - beq _08032788 - b _08032878 -_08032788: - ldr r0, _080327A0 - ldr r2, _080327A4 - str r2, [r0] - movs r1, #0x80 - ands r1, r3 - mov ip, r2 - cmp r1, #0 - beq _080327B0 - ldr r1, _080327A8 - ldr r0, _080327AC - b _080327CC - .align 2, 0 -_080327A0: .4byte gUnknown_3005A64 -_080327A4: .4byte BeginBattleIntro -_080327A8: .4byte gUnknown_3005AC0 -_080327AC: .4byte sub_081592A8 -_080327B0: - movs r0, #0x80 - lsls r0, r0, #2 - ands r3, r0 - cmp r3, #0 - beq _080327C8 - ldr r1, _080327C0 - ldr r0, _080327C4 - b _080327CC - .align 2, 0 -_080327C0: .4byte gUnknown_3005AC0 -_080327C4: .4byte SetControllerToWally -_080327C8: - ldr r1, _08032828 - ldr r0, _0803282C -_080327CC: - str r0, [r1] - mov sl, r1 - ldr r4, _08032830 - movs r0, #0 - mov sb, r0 - mov r1, sb - strb r1, [r4] - mov r5, sl - ldr r2, _08032834 - mov r8, r2 - str r2, [r5, #4] - movs r6, #1 - strb r6, [r4, #1] - ldr r2, _08032838 - movs r7, #2 - strb r7, [r2] - ldr r0, _0803283C - ldr r3, [r0] - movs r0, #0x80 - lsls r0, r0, #0x11 - ands r0, r3 - cmp r0, #0 - bne _080327FC - b _08032B4A -_080327FC: - movs r1, #0x80 - lsls r1, r1, #0x12 - ands r1, r3 - cmp r1, #0 - beq _08032864 - movs r1, #0x80 - lsls r1, r1, #0x18 - ands r1, r3 - cmp r1, #0 - beq _0803284C - mov r1, ip - ldr r0, _08032840 - str r1, [r0] - ldr r0, _08032844 - str r0, [r5] - mov r1, sb - strb r1, [r4] - ldr r0, _08032848 - str r0, [r5, #4] - strb r6, [r4, #1] - strb r7, [r2] - b _08032B4A - .align 2, 0 -_08032828: .4byte gUnknown_3005AC0 -_0803282C: .4byte SetControllerToPlayer -_08032830: .4byte gUnknown_2023D1A -_08032834: .4byte sub_0805ED80 -_08032838: .4byte gUnknown_2023D10 -_0803283C: .4byte gUnknown_2022C90 -_08032840: .4byte gUnknown_3005A64 -_08032844: .4byte sub_08189678 -_08032848: .4byte sub_08186218 -_0803284C: - ldr r0, _0803285C - str r0, [r5, #4] - strb r1, [r4, #1] - ldr r0, _08032860 - str r0, [r5] - strb r6, [r4] - strb r7, [r2] - b _08032B4A - .align 2, 0 -_0803285C: .4byte sub_08189678 -_08032860: .4byte sub_08186218 -_08032864: - ldr r0, _08032874 - mov r2, sl - str r0, [r2] - strb r1, [r4] - mov r0, r8 - str r0, [r2, #4] - strb r6, [r4, #1] - b _08032B4A - .align 2, 0 -_08032874: .4byte sub_08189678 -_08032878: - ldr r1, _08032914 - ldr r2, _08032918 - str r1, [r2] - ldr r2, _0803291C - ldr r0, _08032920 - str r0, [r2] - ldr r4, _08032924 - strb r5, [r4] - ldr r6, _08032928 - str r6, [r2, #4] - strb r7, [r4, #1] - str r0, [r2, #8] - movs r0, #2 - mov ip, r0 - mov r1, ip - strb r1, [r4, #2] - str r6, [r2, #0xc] - movs r0, #3 - mov r8, r0 - mov r1, r8 - strb r1, [r4, #3] - ldr r0, _0803292C - mov sl, r0 - movs r1, #4 - mov sb, r1 - strb r1, [r0] - movs r0, #0x80 - lsls r0, r0, #0x11 - ands r0, r3 - cmp r0, #0 - bne _080328B8 - b _08032B4A -_080328B8: - movs r1, #0xa0 - lsls r1, r1, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, r1 - bne _08032938 - ldr r0, _08032914 - ldr r1, _08032918 - str r0, [r1] - ldr r0, _08032930 - str r0, [r2] - strb r5, [r4] - str r6, [r2, #4] - strb r7, [r4, #1] - str r0, [r2, #8] - mov r0, ip - strb r0, [r4, #2] - str r6, [r2, #0xc] - mov r1, r8 - strb r1, [r4, #3] - mov r0, sb - mov r2, sl - strb r0, [r2] - movs r0, #0 - movs r1, #0 - bl sub_081B8A04 - movs r0, #1 - movs r1, #0 - bl sub_081B8A04 - movs r0, #2 - movs r1, #1 - bl sub_081B8A04 - movs r0, #3 - movs r1, #1 - bl sub_081B8A04 - ldr r0, _08032934 - strh r5, [r0] - strh r5, [r0, #2] - mov r1, r8 -_0803290E: - strh r1, [r0, #4] - strh r1, [r0, #6] - b _08032B4A - .align 2, 0 -_08032914: .4byte BeginBattleIntro -_08032918: .4byte gUnknown_3005A64 -_0803291C: .4byte gUnknown_3005AC0 -_08032920: .4byte SetControllerToPlayer -_08032924: .4byte gUnknown_2023D1A -_08032928: .4byte sub_0805ED80 -_0803292C: .4byte gUnknown_2023D10 -_08032930: .4byte sub_08189678 -_08032934: .4byte gUnknown_2023D12 -_08032938: - movs r5, #0x40 - ands r5, r3 - cmp r5, #0 - bne _08032942 - b _08032AD4 -_08032942: - ldr r0, _08032970 - ldrb r5, [r0] - movs r0, #0 - mov sl, r0 - ldr r1, _08032974 - mov ip, r1 - adds r7, r4, #0 - mov r8, r0 - ldr r6, _08032978 - movs r4, #0 - movs r2, #3 - mov sb, r2 -_0803295A: - mov r1, ip - adds r0, r4, r1 - ldrh r0, [r0, #0x18] - cmp r0, #2 - bgt _0803297C - cmp r0, #1 - bge _08032994 - cmp r0, #0 - beq _08032980 - b _0803299E - .align 2, 0 -_08032970: .4byte gUnknown_203C480 -_08032974: .4byte gUnknown_20226A0 -_08032978: .4byte gUnknown_2023D12 -_0803297C: - cmp r0, #3 - bne _0803299E -_08032980: - ldr r0, _08032990 - adds r0, r4, r0 - ldrb r0, [r0, #0x18] - movs r1, #0 - bl sub_081B8A04 - b _0803299E - .align 2, 0 -_08032990: .4byte gUnknown_20226A0 -_08032994: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - bl sub_081B8A04 -_0803299E: - cmp sl, r5 - bne _080329EE - ldr r0, _080329C4 - adds r3, r4, r0 - ldrh r1, [r3, #0x18] - lsls r1, r1, #2 - ldr r2, _080329C8 - adds r1, r1, r2 - ldr r2, _080329CC - str r2, [r1] - ldrh r1, [r3, #0x18] - mov ip, r0 - cmp r1, #2 - bgt _080329D0 - cmp r1, #1 - bge _080329E4 - cmp r1, #0 - beq _080329D4 - b _08032AC4 - .align 2, 0 -_080329C4: .4byte gUnknown_20226A0 -_080329C8: .4byte gUnknown_3005AC0 -_080329CC: .4byte sub_08189678 -_080329D0: - cmp r1, #3 - bne _08032AC4 -_080329D4: - mov r1, ip - adds r0, r4, r1 - ldrh r1, [r0, #0x18] - adds r1, r1, r7 - mov r2, r8 - strb r2, [r1] - ldrh r0, [r0, #0x18] - b _08032AAA -_080329E4: - adds r1, r1, r7 - movs r0, #2 - strb r0, [r1] - ldrh r0, [r3, #0x18] - b _08032ABC -_080329EE: - ldr r2, _08032A14 - adds r0, r4, r2 - ldrh r1, [r0, #0x18] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - mov ip, r2 - cmp r0, #0 - bne _08032A18 - lsls r0, r5, #3 - subs r0, r0, r5 - lsls r0, r0, #2 - add r0, ip - ldrh r1, [r0, #0x18] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08032A2A - b _08032A70 - .align 2, 0 -_08032A14: .4byte gUnknown_20226A0 -_08032A18: - lsls r0, r5, #3 - subs r0, r0, r5 - lsls r0, r0, #2 - add r0, ip - ldrh r1, [r0, #0x18] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08032A70 -_08032A2A: - mov r0, ip - adds r2, r4, r0 - ldrh r0, [r2, #0x18] - lsls r0, r0, #2 - ldr r1, _08032A4C - adds r0, r0, r1 - ldr r1, _08032A50 - str r1, [r0] - ldrh r1, [r2, #0x18] - cmp r1, #2 - bgt _08032A54 - cmp r1, #1 - bge _08032A68 - cmp r1, #0 - beq _08032A58 - b _08032AC4 - .align 2, 0 -_08032A4C: .4byte gUnknown_3005AC0 -_08032A50: .4byte sub_08189678 -_08032A54: - cmp r1, #3 - bne _08032AC4 -_08032A58: - mov r2, ip - adds r0, r4, r2 - ldrh r1, [r0, #0x18] - adds r1, r1, r7 - mov r2, r8 - strb r2, [r1] - ldrh r0, [r0, #0x18] - b _08032AAA -_08032A68: - adds r1, r1, r7 - movs r0, #2 - strb r0, [r1] - b _08032ABA -_08032A70: - mov r0, ip - adds r2, r4, r0 - ldrh r0, [r2, #0x18] - lsls r0, r0, #2 - ldr r1, _08032A90 - adds r0, r0, r1 - ldr r1, _08032A94 - str r1, [r0] - ldrh r0, [r2, #0x18] - cmp r0, #2 - bgt _08032A98 - cmp r0, #1 - bge _08032AB4 - cmp r0, #0 - beq _08032A9C - b _08032AC4 - .align 2, 0 -_08032A90: .4byte gUnknown_3005AC0 -_08032A94: .4byte sub_08186218 -_08032A98: - cmp r0, #3 - bne _08032AC4 -_08032A9C: - mov r0, ip - adds r2, r4, r0 - ldrh r0, [r2, #0x18] - adds r0, r0, r7 - movs r1, #1 - strb r1, [r0] - ldrh r0, [r2, #0x18] -_08032AAA: - lsls r0, r0, #1 - adds r0, r0, r6 - mov r1, r8 - strh r1, [r0] - b _08032AC4 -_08032AB4: - adds r0, r0, r7 - mov r1, sb - strb r1, [r0] -_08032ABA: - ldrh r0, [r2, #0x18] -_08032ABC: - lsls r0, r0, #1 - adds r0, r0, r6 - mov r2, sb - strh r2, [r0] -_08032AC4: - adds r4, #0x1c - movs r0, #1 - add sl, r0 - mov r1, sl - cmp r1, #3 - bgt _08032AD2 - b _0803295A -_08032AD2: - b _08032B4A -_08032AD4: - movs r1, #4 - ands r1, r3 - cmp r1, #0 - beq _08032B14 - ldr r0, _08032B00 - str r0, [r2] - strb r5, [r4] - str r0, [r2, #8] - mov r0, ip - strb r0, [r4, #2] - movs r0, #0x80 - lsls r0, r0, #0x12 - ands r3, r0 - cmp r3, #0 - beq _08032B08 - ldr r0, _08032B04 - str r0, [r2, #4] - strb r7, [r4, #1] - str r0, [r2, #0xc] - mov r1, r8 - strb r1, [r4, #3] - b _08032B4A - .align 2, 0 -_08032B00: .4byte sub_08189678 -_08032B04: .4byte sub_08186218 -_08032B08: - str r6, [r2, #4] - strb r7, [r4, #1] - str r6, [r2, #0xc] - mov r2, r8 - strb r2, [r4, #3] - b _08032B4A -_08032B14: - ldr r0, _08032B38 - str r0, [r2, #4] - strb r1, [r4, #1] - str r0, [r2, #0xc] - mov r0, ip - strb r0, [r4, #3] - movs r0, #0x80 - lsls r0, r0, #0x12 - ands r3, r0 - cmp r3, #0 - beq _08032B40 - ldr r0, _08032B3C - str r0, [r2] - strb r7, [r4] - str r0, [r2, #8] - mov r1, r8 - strb r1, [r4, #2] - b _08032B4A - .align 2, 0 -_08032B38: .4byte sub_08189678 -_08032B3C: .4byte sub_08186218 -_08032B40: - str r6, [r2] - strb r7, [r4] - str r6, [r2, #8] - mov r2, r8 - strb r2, [r4, #2] -_08032B4A: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end InitSinglePlayerBtlControllers - - thumb_func_start InitLinkBtlControllers -InitLinkBtlControllers: @ 0x08032B58 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r4, _08032B94 - ldr r1, [r4] - movs r5, #1 - adds r3, r1, #0 - ands r3, r5 - cmp r3, #0 - bne _08032BE0 - movs r4, #4 - ands r4, r1 - cmp r4, #0 - beq _08032BB4 - ldr r1, _08032B98 - ldr r0, _08032B9C - str r0, [r1] - ldr r2, _08032BA0 - ldr r0, _08032BA4 - str r0, [r2] - ldr r1, _08032BA8 - strb r3, [r1] - ldr r0, _08032BAC - str r0, [r2, #4] - strb r5, [r1, #1] - ldr r1, _08032BB0 - movs r0, #2 - b _08032ED2 - .align 2, 0 -_08032B94: .4byte gUnknown_2022C90 -_08032B98: .4byte gUnknown_3005A64 -_08032B9C: .4byte BeginBattleIntro -_08032BA0: .4byte gUnknown_3005AC0 -_08032BA4: .4byte SetControllerToPlayer -_08032BA8: .4byte gUnknown_2023D1A -_08032BAC: .4byte sub_08063F78 -_08032BB0: .4byte gUnknown_2023D10 -_08032BB4: - ldr r2, _08032BCC - ldr r0, _08032BD0 - str r0, [r2, #4] - ldr r1, _08032BD4 - strb r4, [r1, #1] - ldr r0, _08032BD8 - str r0, [r2] - strb r5, [r1] - ldr r1, _08032BDC - movs r0, #2 - b _08032ED2 - .align 2, 0 -_08032BCC: .4byte gUnknown_3005AC0 -_08032BD0: .4byte SetControllerToPlayer -_08032BD4: .4byte gUnknown_2023D1A -_08032BD8: .4byte sub_08063F78 -_08032BDC: .4byte gUnknown_2023D10 -_08032BE0: - movs r0, #0x41 - ands r0, r1 - cmp r0, #1 - bne _08032C68 - movs r6, #4 - adds r3, r6, #0 - ands r3, r1 - cmp r3, #0 - beq _08032C30 - ldr r1, _08032C18 - ldr r0, _08032C1C - str r0, [r1] - ldr r2, _08032C20 - ldr r4, _08032C24 - str r4, [r2] - ldr r1, _08032C28 - movs r0, #0 - strb r0, [r1] - ldr r3, _08032C2C - str r3, [r2, #4] - strb r5, [r1, #1] - str r4, [r2, #8] - movs r0, #2 - strb r0, [r1, #2] - str r3, [r2, #0xc] - movs r0, #3 - strb r0, [r1, #3] - b _08032C4C - .align 2, 0 -_08032C18: .4byte gUnknown_3005A64 -_08032C1C: .4byte BeginBattleIntro -_08032C20: .4byte gUnknown_3005AC0 -_08032C24: .4byte SetControllerToPlayer -_08032C28: .4byte gUnknown_2023D1A -_08032C2C: .4byte sub_08063F78 -_08032C30: - ldr r2, _08032C54 - ldr r0, _08032C58 - str r0, [r2, #4] - ldr r1, _08032C5C - strb r3, [r1, #1] - ldr r3, _08032C60 - str r3, [r2] - strb r5, [r1] - str r0, [r2, #0xc] - movs r0, #2 - strb r0, [r1, #3] - str r3, [r2, #8] - movs r0, #3 - strb r0, [r1, #2] -_08032C4C: - ldr r0, _08032C64 - strb r6, [r0] - b _08032ED4 - .align 2, 0 -_08032C54: .4byte gUnknown_3005AC0 -_08032C58: .4byte SetControllerToPlayer -_08032C5C: .4byte gUnknown_2023D1A -_08032C60: .4byte sub_08063F78 -_08032C64: .4byte gUnknown_2023D10 -_08032C68: - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08032D24 - movs r4, #4 - adds r3, r4, #0 - ands r3, r1 - cmp r3, #0 - beq _08032CB4 - ldr r1, _08032C98 - ldr r0, _08032C9C - str r0, [r1] - ldr r2, _08032CA0 - ldr r0, _08032CA4 - str r0, [r2] - ldr r1, _08032CA8 - movs r0, #0 - strb r0, [r1] - ldr r3, _08032CAC - str r3, [r2, #4] - strb r5, [r1, #1] - ldr r0, _08032CB0 - b _08032CC6 - .align 2, 0 -_08032C98: .4byte gUnknown_3005A64 -_08032C9C: .4byte BeginBattleIntro -_08032CA0: .4byte gUnknown_3005AC0 -_08032CA4: .4byte SetControllerToPlayer -_08032CA8: .4byte gUnknown_2023D1A -_08032CAC: .4byte sub_0805ED80 -_08032CB0: .4byte sub_0814AF70 -_08032CB4: - ldr r2, _08032D08 - ldr r0, _08032D0C - str r0, [r2] - ldr r1, _08032D10 - strb r3, [r1] - ldr r3, _08032D14 - str r3, [r2, #4] - strb r5, [r1, #1] - ldr r0, _08032D18 -_08032CC6: - str r0, [r2, #8] - movs r0, #2 - strb r0, [r1, #2] - str r3, [r2, #0xc] - movs r0, #3 - strb r0, [r1, #3] - ldr r0, _08032D1C - strb r4, [r0] - movs r0, #0 - movs r1, #0 - bl sub_081B8A04 - movs r0, #1 - movs r1, #0 - bl sub_081B8A04 - movs r0, #2 - movs r1, #1 - bl sub_081B8A04 - movs r0, #3 - movs r1, #1 - bl sub_081B8A04 - ldr r0, _08032D20 - movs r1, #0 - strh r1, [r0] - strh r1, [r0, #2] - movs r1, #3 - strh r1, [r0, #4] - strh r1, [r0, #6] - b _08032ED4 - .align 2, 0 -_08032D08: .4byte gUnknown_3005AC0 -_08032D0C: .4byte sub_0814AF70 -_08032D10: .4byte gUnknown_2023D1A -_08032D14: .4byte sub_08063F78 -_08032D18: .4byte SetControllerToPlayer -_08032D1C: .4byte gUnknown_2023D10 -_08032D20: .4byte gUnknown_2023D12 -_08032D24: - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, [r4] - movs r1, #4 - ands r0, r1 - cmp r0, #0 - beq _08032D3C - ldr r1, _08032D64 - ldr r0, _08032D68 - str r0, [r1] -_08032D3C: - movs r0, #0 - mov sl, r0 - ldr r1, _08032D6C - mov ip, r1 - ldr r7, _08032D70 - mov r8, r0 - ldr r6, _08032D74 - movs r4, #0 - movs r2, #3 - mov sb, r2 -_08032D50: - mov r1, ip - adds r0, r4, r1 - ldrh r0, [r0, #0x18] - cmp r0, #2 - bgt _08032D78 - cmp r0, #1 - bge _08032D90 - cmp r0, #0 - beq _08032D7C - b _08032D9A - .align 2, 0 -_08032D64: .4byte gUnknown_3005A64 -_08032D68: .4byte BeginBattleIntro -_08032D6C: .4byte gUnknown_20226A0 -_08032D70: .4byte gUnknown_2023D1A -_08032D74: .4byte gUnknown_2023D12 -_08032D78: - cmp r0, #3 - bne _08032D9A -_08032D7C: - ldr r0, _08032D8C - adds r0, r4, r0 - ldrb r0, [r0, #0x18] - movs r1, #0 - bl sub_081B8A04 - b _08032D9A - .align 2, 0 -_08032D8C: .4byte gUnknown_20226A0 -_08032D90: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - bl sub_081B8A04 -_08032D9A: - cmp sl, r5 - bne _08032DEA - ldr r0, _08032DC0 - adds r3, r4, r0 - ldrh r1, [r3, #0x18] - lsls r1, r1, #2 - ldr r2, _08032DC4 - adds r1, r1, r2 - ldr r2, _08032DC8 - str r2, [r1] - ldrh r1, [r3, #0x18] - mov ip, r0 - cmp r1, #2 - bgt _08032DCC - cmp r1, #1 - bge _08032DE0 - cmp r1, #0 - beq _08032DD0 - b _08032EC0 - .align 2, 0 -_08032DC0: .4byte gUnknown_20226A0 -_08032DC4: .4byte gUnknown_3005AC0 -_08032DC8: .4byte SetControllerToPlayer -_08032DCC: - cmp r1, #3 - bne _08032EC0 -_08032DD0: - mov r1, ip - adds r0, r4, r1 - ldrh r1, [r0, #0x18] - adds r1, r1, r7 - mov r2, r8 - strb r2, [r1] - ldrh r0, [r0, #0x18] - b _08032EA6 -_08032DE0: - adds r1, r1, r7 - movs r0, #2 - strb r0, [r1] - ldrh r0, [r3, #0x18] - b _08032EB8 -_08032DEA: - ldr r2, _08032E10 - adds r0, r4, r2 - ldrh r1, [r0, #0x18] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - mov ip, r2 - cmp r0, #0 - bne _08032E14 - lsls r0, r5, #3 - subs r0, r0, r5 - lsls r0, r0, #2 - add r0, ip - ldrh r1, [r0, #0x18] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08032E26 - b _08032E6C - .align 2, 0 -_08032E10: .4byte gUnknown_20226A0 -_08032E14: - lsls r0, r5, #3 - subs r0, r0, r5 - lsls r0, r0, #2 - add r0, ip - ldrh r1, [r0, #0x18] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08032E6C -_08032E26: - mov r0, ip - adds r2, r4, r0 - ldrh r0, [r2, #0x18] - lsls r0, r0, #2 - ldr r1, _08032E48 - adds r0, r0, r1 - ldr r1, _08032E4C - str r1, [r0] - ldrh r1, [r2, #0x18] - cmp r1, #2 - bgt _08032E50 - cmp r1, #1 - bge _08032E64 - cmp r1, #0 - beq _08032E54 - b _08032EC0 - .align 2, 0 -_08032E48: .4byte gUnknown_3005AC0 -_08032E4C: .4byte sub_0814AF70 -_08032E50: - cmp r1, #3 - bne _08032EC0 -_08032E54: - mov r2, ip - adds r0, r4, r2 - ldrh r1, [r0, #0x18] - adds r1, r1, r7 - mov r2, r8 - strb r2, [r1] - ldrh r0, [r0, #0x18] - b _08032EA6 -_08032E64: - adds r1, r1, r7 - movs r0, #2 - strb r0, [r1] - b _08032EB6 -_08032E6C: - mov r0, ip - adds r2, r4, r0 - ldrh r0, [r2, #0x18] - lsls r0, r0, #2 - ldr r1, _08032E8C - adds r0, r0, r1 - ldr r1, _08032E90 - str r1, [r0] - ldrh r0, [r2, #0x18] - cmp r0, #2 - bgt _08032E94 - cmp r0, #1 - bge _08032EB0 - cmp r0, #0 - beq _08032E98 - b _08032EC0 - .align 2, 0 -_08032E8C: .4byte gUnknown_3005AC0 -_08032E90: .4byte sub_08063F78 -_08032E94: - cmp r0, #3 - bne _08032EC0 -_08032E98: - mov r0, ip - adds r2, r4, r0 - ldrh r0, [r2, #0x18] - adds r0, r0, r7 - movs r1, #1 - strb r1, [r0] - ldrh r0, [r2, #0x18] -_08032EA6: - lsls r0, r0, #1 - adds r0, r0, r6 - mov r1, r8 - strh r1, [r0] - b _08032EC0 -_08032EB0: - adds r0, r0, r7 - mov r1, sb - strb r1, [r0] -_08032EB6: - ldrh r0, [r2, #0x18] -_08032EB8: - lsls r0, r0, #1 - adds r0, r0, r6 - mov r2, sb - strh r2, [r0] -_08032EC0: - adds r4, #0x1c - movs r0, #1 - add sl, r0 - mov r1, sl - cmp r1, #3 - bgt _08032ECE - b _08032D50 -_08032ECE: - ldr r1, _08032EE4 - movs r0, #4 -_08032ED2: - strb r0, [r1] -_08032ED4: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08032EE4: .4byte gUnknown_2023D10 - thumb_func_end InitLinkBtlControllers - - thumb_func_start SetBattlePartyIds -SetBattlePartyIds: @ 0x08032EE8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _08032F08 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08032F00 - b _08033034 -_08032F00: - movs r0, #0 - mov r8, r0 - b _08033012 - .align 2, 0 -_08032F08: .4byte gUnknown_2022C90 -_08032F0C: - movs r5, #0 - movs r0, #1 - add r0, r8 - mov sl, r0 - ldr r0, _08032F38 - add r0, r8 - mov sb, r0 - mov r0, r8 - lsls r6, r0, #1 - movs r7, #0 -_08032F20: - mov r0, r8 - cmp r0, #1 - bgt _08032F88 - mov r0, sb - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08032F40 - ldr r0, _08032F3C - b _08032F42 - .align 2, 0 -_08032F38: .4byte gUnknown_2023D1A -_08032F3C: .4byte gUnknown_2024190 -_08032F40: - ldr r0, _08032F80 -_08032F42: - adds r4, r7, r0 - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _08033008 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - cmp r0, #0 - beq _08033008 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - movs r1, #0xce - lsls r1, r1, #1 - cmp r0, r1 - beq _08033008 - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - bne _08033008 - ldr r0, _08032F84 - adds r0, r6, r0 - strh r5, [r0] - b _08033010 - .align 2, 0 -_08032F80: .4byte gUnknown_20243E8 -_08032F84: .4byte gUnknown_2023D12 -_08032F88: - mov r0, sb - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08032FB0 - ldr r0, _08032FAC - adds r4, r7, r0 - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _08033008 - adds r0, r4, #0 - movs r1, #0xb - b _08032FC4 - .align 2, 0 -_08032FAC: .4byte gUnknown_2024190 -_08032FB0: - ldr r0, _08033000 - adds r4, r7, r0 - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _08033008 - adds r0, r4, #0 - movs r1, #0x41 -_08032FC4: - bl GetMonData - cmp r0, #0 - beq _08033008 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - movs r1, #0xce - lsls r1, r1, #1 - cmp r0, r1 - beq _08033008 - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - bne _08033008 - ldr r1, _08033004 - mov r0, r8 - subs r0, #2 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, r5 - beq _08033008 - adds r0, r6, r1 - strh r5, [r0] - b _08033010 - .align 2, 0 -_08033000: .4byte gUnknown_20243E8 -_08033004: .4byte gUnknown_2023D12 -_08033008: - adds r7, #0x64 - adds r5, #1 - cmp r5, #5 - ble _08032F20 -_08033010: - mov r8, sl -_08033012: - ldr r0, _08033044 - ldrb r0, [r0] - cmp r8, r0 - bge _0803301C - b _08032F0C -_0803301C: - ldr r0, _08033048 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - beq _08033034 - ldr r0, _0803304C - movs r1, #0 - strh r1, [r0, #2] - movs r1, #3 - strh r1, [r0, #6] -_08033034: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08033044: .4byte gUnknown_2023D10 -_08033048: .4byte gUnknown_2022C90 -_0803304C: .4byte gUnknown_2023D12 - thumb_func_end SetBattlePartyIds - - thumb_func_start PrepareBufferDataTransfer -PrepareBufferDataTransfer: @ 0x08033050 - push {r4, r5, r6, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - adds r5, r3, #0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldr r0, _08033078 - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _0803307C - adds r0, r3, #0 - adds r1, r2, #0 - adds r2, r4, #0 - bl PrepareBufferDataTransferLink - b _080330CE - .align 2, 0 -_08033078: .4byte gUnknown_2022C90 -_0803307C: - cmp r5, #0 - beq _08033086 - cmp r5, #1 - beq _080330B0 - b _080330CE -_08033086: - movs r3, #0 - cmp r3, r2 - bge _080330CE - ldr r6, _080330A8 - ldr r5, _080330AC -_08033090: - ldrb r0, [r5] - lsls r0, r0, #9 - adds r0, r3, r0 - adds r0, r0, r6 - ldrb r1, [r4] - strb r1, [r0] - adds r4, #1 - adds r3, #1 - cmp r3, r2 - blt _08033090 - b _080330CE - .align 2, 0 -_080330A8: .4byte gUnknown_2022D08 -_080330AC: .4byte gUnknown_2023D08 -_080330B0: - movs r3, #0 - cmp r3, r2 - bge _080330CE - ldr r6, _080330D4 - ldr r5, _080330D8 -_080330BA: - ldrb r0, [r5] - lsls r0, r0, #9 - adds r0, r3, r0 - adds r0, r0, r6 - ldrb r1, [r4] - strb r1, [r0] - adds r4, #1 - adds r3, #1 - cmp r3, r2 - blt _080330BA -_080330CE: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080330D4: .4byte gUnknown_2023508 -_080330D8: .4byte gUnknown_2023D08 - thumb_func_end PrepareBufferDataTransfer - - thumb_func_start CreateTasksForSendRecvLinkBuffers -CreateTasksForSendRecvLinkBuffers: @ 0x080330DC - push {r4, r5, r6, lr} - ldr r0, _08033174 - movs r1, #0 - bl CreateTask - ldr r2, _08033178 - strb r0, [r2] - ldr r5, _0803317C - ldrb r1, [r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r6, #0 - movs r4, #0 - strh r4, [r0, #0x1e] - ldrb r1, [r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - strh r4, [r0, #0x20] - ldrb r1, [r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - strh r4, [r0, #0x22] - ldrb r1, [r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - strh r4, [r0, #0x24] - ldrb r1, [r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - strh r4, [r0, #0x26] - ldr r0, _08033180 - movs r1, #0 - bl CreateTask - ldr r2, _08033184 - strb r0, [r2] - ldrb r1, [r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - strh r4, [r0, #0x20] - ldrb r1, [r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - strh r4, [r0, #0x22] - ldrb r1, [r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - strh r4, [r0, #0x24] - ldrb r1, [r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - strh r4, [r0, #0x26] - ldr r0, _08033188 - strb r6, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08033174: .4byte Task_HandleSendLinkBuffersData -_08033178: .4byte gUnknown_20229BC -_0803317C: .4byte gUnknown_3005B60 -_08033180: .4byte Task_HandleCopyReceivedLinkBuffersData -_08033184: .4byte gUnknown_20229BD -_08033188: .4byte gUnknown_20229BE - thumb_func_end CreateTasksForSendRecvLinkBuffers - - thumb_func_start PrepareBufferDataTransferLink -PrepareBufferDataTransferLink: @ 0x0803318C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sb, r2 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov ip, r1 - movs r1, #3 - mov r0, ip - bics r0, r1 - adds r0, #4 - mov r8, r0 - ldr r2, _080332EC - ldr r3, _080332F0 - ldrb r1, [r3] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r4, r0, r2 - movs r1, #0x24 - ldrsh r0, [r4, r1] - add r0, r8 - adds r0, #9 - movs r1, #0x80 - lsls r1, r1, #5 - adds r5, r2, #0 - cmp r0, r1 - ble _080331DE - ldrh r0, [r4, #0x24] - movs r2, #0 - strh r0, [r4, #0x20] - ldrb r1, [r3] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - strh r2, [r0, #0x24] -_080331DE: - ldrb r1, [r3] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r2, #0x24 - ldrsh r1, [r0, r2] - ldr r4, _080332F4 - ldr r0, [r4] - adds r0, r0, r1 - strb r6, [r0] - ldrb r1, [r3] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r7, #0x24 - ldrsh r1, [r0, r7] - ldr r0, [r4] - adds r1, r1, r0 - ldr r0, _080332F8 - ldrb r0, [r0] - strb r0, [r1, #1] - ldrb r1, [r3] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r2, #0x24 - ldrsh r1, [r0, r2] - ldr r0, [r4] - adds r1, r1, r0 - ldr r0, _080332FC - ldrb r0, [r0] - strb r0, [r1, #2] - ldrb r1, [r3] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r7, #0x24 - ldrsh r1, [r0, r7] - ldr r0, [r4] - adds r1, r1, r0 - ldr r0, _08033300 - ldrb r0, [r0] - strb r0, [r1, #3] - ldrb r1, [r3] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r1, #0x24 - ldrsh r0, [r0, r1] - ldr r1, [r4] - adds r0, r0, r1 - mov r2, r8 - strb r2, [r0, #4] - ldrb r1, [r3] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r7, #0x24 - ldrsh r1, [r0, r7] - ldr r0, [r4] - adds r1, r1, r0 - movs r0, #0xff - lsls r0, r0, #8 - mov r2, r8 - ands r0, r2 - asrs r0, r0, #8 - strb r0, [r1, #5] - ldrb r1, [r3] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r7, #0x24 - ldrsh r1, [r0, r7] - ldr r0, [r4] - adds r1, r1, r0 - ldr r0, _08033304 - ldrb r0, [r0] - strb r0, [r1, #6] - ldrb r1, [r3] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r2, #0x24 - ldrsh r1, [r0, r2] - ldr r0, [r4] - adds r1, r1, r0 - ldr r0, _08033308 - ldrb r0, [r0] - strb r0, [r1, #7] - movs r2, #0 - cmp r2, ip - bge _080332CC - mov sl, r5 - adds r6, r3, #0 -_080332AA: - ldrb r1, [r6] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - add r0, sl - movs r7, #0x24 - ldrsh r1, [r0, r7] - ldr r0, [r4] - adds r1, r2, r1 - adds r1, r1, r0 - mov r7, sb - adds r0, r7, r2 - ldrb r0, [r0] - strb r0, [r1, #8] - adds r2, #1 - cmp r2, ip - blt _080332AA -_080332CC: - ldrb r0, [r3] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r5 - ldrh r0, [r1, #0x24] - add r0, r8 - adds r0, #8 - strh r0, [r1, #0x24] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080332EC: .4byte gUnknown_3005B60 -_080332F0: .4byte gUnknown_20229BC -_080332F4: .4byte gUnknown_2024144 -_080332F8: .4byte gUnknown_2023D08 -_080332FC: .4byte gUnknown_2023EAF -_08033300: .4byte gUnknown_2023EB0 -_08033304: .4byte gUnknown_2023EB4 -_08033308: .4byte gUnknown_2023EB2 - thumb_func_end PrepareBufferDataTransferLink - - thumb_func_start Task_HandleSendLinkBuffersData -Task_HandleSendLinkBuffersData: @ 0x0803330C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08033334 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #0x1e - ldrsh r0, [r0, r2] - adds r7, r1, #0 - cmp r0, #5 - bls _08033328 - b _080334D8 -_08033328: - lsls r0, r0, #2 - ldr r1, _08033338 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08033334: .4byte gUnknown_3005B60 -_08033338: .4byte _0803333C -_0803333C: @ jump table - .4byte _08033354 @ case 0 - .4byte _08033362 @ case 1 - .4byte _0803337E @ case 2 - .4byte _08033408 @ case 3 - .4byte _0803347E @ case 4 - .4byte _080334BC @ case 5 -_08033354: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r7 - movs r1, #0x64 - strh r1, [r0, #0x1c] - b _0803338E -_08033362: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r1, r0, r7 - ldrh r0, [r1, #0x1c] - subs r0, #1 - strh r0, [r1, #0x1c] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08033378 - b _080334D8 -_08033378: - ldrh r0, [r1, #0x1e] - adds r0, #1 - b _080334D6 -_0803337E: - ldr r0, _08033398 - ldrb r0, [r0] - cmp r0, #0 - beq _0803339C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r7 -_0803338E: - ldrh r1, [r0, #0x1e] - adds r1, #1 - strh r1, [r0, #0x1e] - b _080334D8 - .align 2, 0 -_08033398: .4byte gUnknown_300319C -_0803339C: - ldr r0, _080333B0 - ldr r1, [r0] - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080333B4 - movs r5, #2 - b _080333C2 - .align 2, 0 -_080333B0: .4byte gUnknown_2022C90 -_080333B4: - movs r0, #0x40 - ands r1, r0 - movs r0, #2 - cmp r1, #0 - beq _080333C0 - movs r0, #4 -_080333C0: - adds r5, r0, #0 -_080333C2: - bl GetLinkPlayerCount_2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r5 - bhs _080333D0 - b _080334D8 -_080333D0: - bl IsLinkMaster - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080333F4 - bl CheckShouldAdvanceLinkState - ldr r0, _080333F0 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x1e] - adds r0, #1 - b _080334D6 - .align 2, 0 -_080333F0: .4byte gUnknown_3005B60 -_080333F4: - ldr r0, _08033404 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x1e] - adds r0, #1 - b _080334D6 - .align 2, 0 -_08033404: .4byte gUnknown_3005B60 -_08033408: - lsls r1, r4, #2 - adds r0, r1, r4 - lsls r0, r0, #3 - adds r2, r0, r7 - movs r3, #0x26 - ldrsh r5, [r2, r3] - movs r0, #0x24 - ldrsh r6, [r2, r0] - mov ip, r6 - cmp r5, ip - beq _080334D8 - ldrh r0, [r2, #0x22] - movs r6, #0x22 - ldrsh r3, [r2, r6] - cmp r3, #0 - bne _08033478 - cmp r5, ip - ble _08033438 - movs r6, #0x20 - ldrsh r0, [r2, r6] - cmp r5, r0 - bne _08033438 - strh r3, [r2, #0x20] - strh r3, [r2, #0x26] -_08033438: - adds r4, r1, r4 - lsls r4, r4, #3 - adds r4, r4, r7 - movs r0, #0x26 - ldrsh r1, [r4, r0] - ldr r5, _08033474 - ldr r0, [r5] - adds r1, r1, r0 - ldrb r0, [r1, #4] - ldrb r1, [r1, #5] - lsls r1, r1, #8 - orrs r0, r1 - adds r0, #8 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - bl bitmask_all_link_players_but_self - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x26 - ldrsh r2, [r4, r1] - ldr r1, [r5] - adds r1, r1, r2 - adds r2, r6, #0 - bl SendBlock - ldrh r0, [r4, #0x1e] - adds r0, #1 - strh r0, [r4, #0x1e] - b _080334D8 - .align 2, 0 -_08033474: .4byte gUnknown_2024144 -_08033478: - subs r0, #1 - strh r0, [r2, #0x22] - b _080334D8 -_0803347E: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080334D8 - ldr r0, _080334B4 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r3, #0x26 - ldrsh r2, [r1, r3] - ldr r0, _080334B8 - ldr r0, [r0] - adds r2, r2, r0 - ldrb r0, [r2, #4] - ldrb r2, [r2, #5] - lsls r2, r2, #8 - movs r3, #1 - strh r3, [r1, #0x22] - orrs r0, r2 - ldrh r6, [r1, #0x26] - adds r0, r0, r6 - adds r0, #8 - strh r0, [r1, #0x26] - b _080334D4 - .align 2, 0 -_080334B4: .4byte gUnknown_3005B60 -_080334B8: .4byte gUnknown_2024144 -_080334BC: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r1, r0, r7 - ldrh r0, [r1, #0x22] - subs r0, #1 - strh r0, [r1, #0x22] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080334D8 - movs r0, #1 - strh r0, [r1, #0x22] -_080334D4: - movs r0, #3 -_080334D6: - strh r0, [r1, #0x1e] -_080334D8: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Task_HandleSendLinkBuffersData - - thumb_func_start sub_080334E0 -sub_080334E0: @ 0x080334E0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _0803350C - ldrb r0, [r0] - cmp r0, #0 - beq _080335D0 - ldr r0, _08033510 - ldr r0, [r0] - movs r1, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080335D0 - bl sub_080116BC - movs r4, #0 - ldr r0, _08033514 - mov sl, r0 - b _080335C4 - .align 2, 0 -_0803350C: .4byte gUnknown_30031C4 -_08033510: .4byte gUnknown_2022C90 -_08033514: .4byte gUnknown_202207C -_08033518: - bl GetBlockReceivedStatus - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080335E0 - lsls r1, r4, #2 - adds r1, r1, r2 - ldr r1, [r1] - ands r0, r1 - adds r1, r4, #1 - mov sb, r1 - cmp r0, #0 - beq _080335BE - adds r0, r4, #0 - bl ResetBlockReceivedFlag - lsls r0, r4, #8 - mov r4, sl - adds r3, r0, r4 - ldr r1, _080335E4 - adds r0, r0, r1 - ldrh r6, [r0] - ldr r7, _080335E8 - ldr r4, _080335EC - mov ip, r4 - ldrb r1, [r4] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r2, r0, r7 - movs r0, #0x24 - ldrsh r1, [r2, r0] - adds r0, r6, #0 - adds r0, #9 - adds r1, r1, r0 - movs r0, #0x80 - lsls r0, r0, #5 - cmp r1, r0 - ble _08033578 - ldrh r0, [r2, #0x24] - strh r0, [r2, #0x20] - ldrb r1, [r4] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r7 - movs r1, #0 - strh r1, [r0, #0x24] -_08033578: - ldr r2, _080335F0 - mov r4, ip - ldrb r1, [r4] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r7 - movs r4, #0x24 - ldrsh r1, [r0, r4] - ldr r0, [r2] - adds r5, r0, r1 - adds r4, r3, #0 - movs r2, #0 - adds r3, r6, #0 - adds r3, #8 - mov r8, r7 - mov r7, ip - cmp r2, r3 - bge _080335AC -_0803359E: - adds r0, r5, r2 - adds r1, r4, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, r3 - blt _0803359E -_080335AC: - ldrb r0, [r7] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - add r1, r8 - ldrh r0, [r1, #0x24] - adds r0, r6, r0 - adds r0, #8 - strh r0, [r1, #0x24] -_080335BE: - mov r1, sb - lsls r0, r1, #0x18 - lsrs r4, r0, #0x18 -_080335C4: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - blo _08033518 -_080335D0: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080335E0: .4byte gUnknown_82FACB4 -_080335E4: .4byte gUnknown_2022080 -_080335E8: .4byte gUnknown_3005B60 -_080335EC: .4byte gUnknown_20229BD -_080335F0: .4byte gUnknown_2024148 - thumb_func_end sub_080334E0 - - thumb_func_start Task_HandleCopyReceivedLinkBuffersData -Task_HandleCopyReceivedLinkBuffersData: @ 0x080335F4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r1, _0803365C - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r3, r0, r1 - movs r0, #0x26 - ldrsh r2, [r3, r0] - movs r4, #0x24 - ldrsh r0, [r3, r4] - cmp r2, r0 - bne _08033618 - b _08033734 -_08033618: - cmp r2, r0 - ble _0803362A - movs r4, #0x20 - ldrsh r0, [r3, r4] - cmp r2, r0 - bne _0803362A - movs r0, #0 - strh r0, [r3, #0x20] - strh r0, [r3, #0x26] -_0803362A: - lsls r2, r7, #2 - adds r0, r2, r7 - lsls r0, r0, #3 - adds r5, r0, r1 - movs r0, #0x26 - ldrsh r1, [r5, r0] - ldr r3, _08033660 - mov r8, r3 - ldr r0, [r3] - adds r3, r1, r0 - ldrb r4, [r3, #1] - ldrb r6, [r3, #4] - ldrb r0, [r3, #5] - lsls r0, r0, #8 - orrs r6, r0 - ldrb r0, [r3] - mov sb, r2 - cmp r0, #1 - beq _080336F4 - cmp r0, #1 - bgt _08033664 - cmp r0, #0 - beq _0803366A - b _08033722 - .align 2, 0 -_0803365C: .4byte gUnknown_3005B60 -_08033660: .4byte gUnknown_2024148 -_08033664: - cmp r0, #2 - beq _0803370C - b _08033722 -_0803366A: - ldr r2, _080336D4 - ldr r1, _080336D8 - lsls r0, r4, #2 - adds r0, r0, r1 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _08033734 - lsls r0, r4, #9 - ldr r1, _080336DC - adds r0, r0, r1 - adds r1, r3, #0 - adds r1, #8 - adds r2, r6, #0 - bl memcpy - adds r0, r4, #0 - bl sub_0803F490 - ldr r0, _080336E0 - ldr r0, [r0] - movs r1, #4 - ands r0, r1 - cmp r0, #0 - bne _08033722 - ldr r2, _080336E4 - movs r4, #0x26 - ldrsh r0, [r5, r4] - mov r3, r8 - ldr r1, [r3] - adds r0, r0, r1 - ldrb r0, [r0, #2] - strb r0, [r2] - ldr r2, _080336E8 - movs r4, #0x26 - ldrsh r0, [r5, r4] - adds r0, r0, r1 - ldrb r0, [r0, #3] - strb r0, [r2] - ldr r2, _080336EC - movs r3, #0x26 - ldrsh r0, [r5, r3] - adds r0, r0, r1 - ldrb r0, [r0, #6] - strb r0, [r2] - ldr r2, _080336F0 - movs r4, #0x26 - ldrsh r0, [r5, r4] - adds r0, r0, r1 - ldrb r0, [r0, #7] - strb r0, [r2] - b _08033722 - .align 2, 0 -_080336D4: .4byte gUnknown_2023D0C -_080336D8: .4byte gUnknown_82FACB4 -_080336DC: .4byte gUnknown_2022D08 -_080336E0: .4byte gUnknown_2022C90 -_080336E4: .4byte gUnknown_2023EAF -_080336E8: .4byte gUnknown_2023EB0 -_080336EC: .4byte gUnknown_2023EB4 -_080336F0: .4byte gUnknown_2023EB2 -_080336F4: - lsls r0, r4, #9 - ldr r1, _08033708 - adds r0, r0, r1 - adds r1, r3, #0 - adds r1, #8 - adds r2, r6, #0 - bl memcpy - b _08033722 - .align 2, 0 -_08033708: .4byte gUnknown_2023508 -_0803370C: - ldrb r2, [r3, #8] - ldr r3, _08033740 - ldr r1, _08033744 - lsls r0, r4, #2 - adds r0, r0, r1 - lsls r2, r2, #2 - ldr r1, [r0] - lsls r1, r2 - ldr r0, [r3] - bics r0, r1 - str r0, [r3] -_08033722: - ldr r0, _08033748 - mov r2, sb - adds r1, r2, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x26] - adds r0, r6, r0 - adds r0, #8 - strh r0, [r1, #0x26] -_08033734: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08033740: .4byte gUnknown_2023D0C -_08033744: .4byte gUnknown_82FACB4 -_08033748: .4byte gUnknown_3005B60 - thumb_func_end Task_HandleCopyReceivedLinkBuffersData - - thumb_func_start BtlController_EmitGetMonData -BtlController_EmitGetMonData: @ 0x0803374C - push {r4, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0803376C - movs r3, #0 - strb r3, [r1] - strb r4, [r1, #1] - strb r2, [r1, #2] - strb r3, [r1, #3] - movs r2, #4 - bl PrepareBufferDataTransfer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0803376C: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitGetMonData - - thumb_func_start BtlController_EmitGetRawMonData -BtlController_EmitGetRawMonData: @ 0x08033770 - push {r4, r5, lr} - adds r5, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08033794 - movs r4, #0 - movs r3, #1 - strb r3, [r1] - strb r5, [r1, #1] - strb r2, [r1, #2] - strb r4, [r1, #3] - movs r2, #4 - bl PrepareBufferDataTransfer - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08033794: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitGetRawMonData - - thumb_func_start BtlController_EmitSetMonData -BtlController_EmitSetMonData: @ 0x08033798 - push {r4, r5, r6, lr} - ldr r4, [sp, #0x10] - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r3, r3, #0x18 - lsrs r5, r3, #0x18 - ldr r0, _080337D4 - movs r3, #2 - strb r3, [r0] - strb r1, [r0, #1] - strb r2, [r0, #2] - adds r1, r0, #0 - cmp r5, #0 - beq _080337C6 - adds r3, r1, #3 - adds r2, r5, #0 -_080337B8: - ldrb r0, [r4] - strb r0, [r3] - adds r4, #1 - adds r3, #1 - subs r2, #1 - cmp r2, #0 - bne _080337B8 -_080337C6: - adds r2, r5, #3 - adds r0, r6, #0 - bl PrepareBufferDataTransfer - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080337D4: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitSetMonData - - thumb_func_start BtlController_EmitSetRawMonData -BtlController_EmitSetRawMonData: @ 0x080337D8 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r2, r2, #0x18 - lsrs r4, r2, #0x18 - ldr r0, _08033814 - movs r2, #3 - strb r2, [r0] - strb r1, [r0, #1] - strb r4, [r0, #2] - adds r5, r0, #0 - cmp r4, #0 - beq _08033804 - adds r1, r5, #3 - adds r2, r4, #0 -_080337F6: - ldrb r0, [r3] - strb r0, [r1] - adds r3, #1 - adds r1, #1 - subs r2, #1 - cmp r2, #0 - bne _080337F6 -_08033804: - adds r2, r4, #3 - adds r0, r6, #0 - adds r1, r5, #0 - bl PrepareBufferDataTransfer - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08033814: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitSetRawMonData - - thumb_func_start BtlController_EmitLoadMonSprite -BtlController_EmitLoadMonSprite: @ 0x08033818 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08033834 - movs r2, #4 - strb r2, [r1] - strb r2, [r1, #1] - strb r2, [r1, #2] - strb r2, [r1, #3] - bl PrepareBufferDataTransfer - pop {r0} - bx r0 - .align 2, 0 -_08033834: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitLoadMonSprite - - thumb_func_start BtlController_EmitSwitchInAnim -BtlController_EmitSwitchInAnim: @ 0x08033838 - push {r4, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08033858 - movs r3, #5 - strb r3, [r1] - strb r4, [r1, #1] - strb r2, [r1, #2] - strb r3, [r1, #3] - movs r2, #4 - bl PrepareBufferDataTransfer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08033858: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitSwitchInAnim - - thumb_func_start BtlController_EmitReturnMonToBall -BtlController_EmitReturnMonToBall: @ 0x0803385C - push {lr} - adds r3, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08033878 - movs r2, #6 - strb r2, [r1] - strb r3, [r1, #1] - movs r2, #2 - bl PrepareBufferDataTransfer - pop {r0} - bx r0 - .align 2, 0 -_08033878: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitReturnMonToBall - - thumb_func_start BtlController_EmitDrawTrainerPic -BtlController_EmitDrawTrainerPic: @ 0x0803387C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08033898 - movs r2, #7 - strb r2, [r1] - strb r2, [r1, #1] - strb r2, [r1, #2] - strb r2, [r1, #3] - movs r2, #4 - bl PrepareBufferDataTransfer - pop {r0} - bx r0 - .align 2, 0 -_08033898: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitDrawTrainerPic - - thumb_func_start BtlController_EmitTrainerSlide -BtlController_EmitTrainerSlide: @ 0x0803389C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080338B8 - movs r2, #8 - strb r2, [r1] - strb r2, [r1, #1] - strb r2, [r1, #2] - strb r2, [r1, #3] - movs r2, #4 - bl PrepareBufferDataTransfer - pop {r0} - bx r0 - .align 2, 0 -_080338B8: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitTrainerSlide - - thumb_func_start BtlController_EmitTrainerSlideBack -BtlController_EmitTrainerSlideBack: @ 0x080338BC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080338D8 - movs r2, #9 - strb r2, [r1] - strb r2, [r1, #1] - strb r2, [r1, #2] - strb r2, [r1, #3] - movs r2, #4 - bl PrepareBufferDataTransfer - pop {r0} - bx r0 - .align 2, 0 -_080338D8: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitTrainerSlideBack - - thumb_func_start BtlController_EmitFaintAnimation -BtlController_EmitFaintAnimation: @ 0x080338DC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080338F8 - movs r2, #0xa - strb r2, [r1] - strb r2, [r1, #1] - strb r2, [r1, #2] - strb r2, [r1, #3] - movs r2, #4 - bl PrepareBufferDataTransfer - pop {r0} - bx r0 - .align 2, 0 -_080338F8: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitFaintAnimation - - thumb_func_start BtlController_EmitPaletteFade -BtlController_EmitPaletteFade: @ 0x080338FC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08033918 - movs r2, #0xb - strb r2, [r1] - strb r2, [r1, #1] - strb r2, [r1, #2] - strb r2, [r1, #3] - movs r2, #4 - bl PrepareBufferDataTransfer - pop {r0} - bx r0 - .align 2, 0 -_08033918: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitPaletteFade - - thumb_func_start BtlController_EmitSuccessBallThrowAnim -BtlController_EmitSuccessBallThrowAnim: @ 0x0803391C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08033938 - movs r2, #0xc - strb r2, [r1] - strb r2, [r1, #1] - strb r2, [r1, #2] - strb r2, [r1, #3] - movs r2, #4 - bl PrepareBufferDataTransfer - pop {r0} - bx r0 - .align 2, 0 -_08033938: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitSuccessBallThrowAnim - - thumb_func_start BtlController_EmitBallThrowAnim -BtlController_EmitBallThrowAnim: @ 0x0803393C - push {lr} - adds r3, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08033958 - movs r2, #0xd - strb r2, [r1] - strb r3, [r1, #1] - movs r2, #2 - bl PrepareBufferDataTransfer - pop {r0} - bx r0 - .align 2, 0 -_08033958: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitBallThrowAnim - - thumb_func_start BtlController_EmitPause -BtlController_EmitPause: @ 0x0803395C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - ldr r1, _080339A0 - movs r0, #0xe - strb r0, [r1] - strb r4, [r1, #1] - lsls r0, r4, #1 - adds r0, r0, r4 - adds r5, r1, #0 - cmp r0, #0 - beq _0803398A - adds r1, r5, #2 - adds r3, r0, #0 -_0803397C: - ldrb r0, [r2] - strb r0, [r1] - adds r2, #1 - adds r1, #1 - subs r3, #1 - cmp r3, #0 - bne _0803397C -_0803398A: - lsls r2, r4, #1 - adds r2, r2, r4 - adds r2, #2 - adds r0, r6, #0 - adds r1, r5, #0 - bl PrepareBufferDataTransfer - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080339A0: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitPause - - thumb_func_start BtlController_EmitMoveAnimation -BtlController_EmitMoveAnimation: @ 0x080339A4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - ldr r4, [sp, #0x20] - ldr r5, [sp, #0x24] - ldr r6, [sp, #0x2c] - mov r8, r6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - ldr r7, _08033A3C - movs r0, #0 - mov ip, r0 - movs r0, #0xf - strb r0, [r7] - strb r1, [r7, #1] - lsrs r1, r1, #8 - strb r1, [r7, #2] - strb r2, [r7, #3] - strb r3, [r7, #4] - movs r6, #0xff - lsls r6, r6, #8 - lsrs r3, r3, #8 - strb r3, [r7, #5] - strb r4, [r7, #6] - adds r0, r4, #0 - ands r0, r6 - asrs r0, r0, #8 - strb r0, [r7, #7] - movs r0, #0xff - lsls r0, r0, #0x10 - ands r0, r4 - asrs r0, r0, #0x10 - strb r0, [r7, #8] - lsrs r4, r4, #0x18 - strb r4, [r7, #9] - strb r5, [r7, #0xa] - mov r0, r8 - strb r0, [r7, #0xb] - mov r0, ip - str r0, [sp] - movs r0, #0xe - movs r1, #0 - movs r2, #0xd - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _08033A44 - str r0, [sp] - movs r0, #0xe - movs r1, #0 - movs r2, #0x4d - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08033A44 - ldr r0, _08033A40 - ldrh r0, [r0] - strb r0, [r7, #0xc] - ands r6, r0 - lsrs r0, r6, #8 - strb r0, [r7, #0xd] - adds r4, r7, #0 - b _08033A4E - .align 2, 0 -_08033A3C: .4byte gUnknown_20229C4 -_08033A40: .4byte gUnknown_2024070 -_08033A44: - ldr r0, _08033A78 - movs r1, #0 - strb r1, [r0, #0xc] - strb r1, [r0, #0xd] - adds r4, r0, #0 -_08033A4E: - movs r0, #0 - strb r0, [r4, #0xe] - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x10 - ldr r1, [sp, #0x28] - movs r2, #0x1c - bl memcpy - mov r0, sb - adds r1, r4, #0 - movs r2, #0x2c - bl PrepareBufferDataTransfer - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08033A78: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitMoveAnimation - - thumb_func_start BtlController_EmitPrintSelectionString -BtlController_EmitPrintSelectionString: @ 0x08033A7C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r2, _08033B40 - movs r0, #0x10 - strb r0, [r2] - ldr r0, _08033B44 - ldrb r0, [r0] - strb r0, [r2, #1] - strb r1, [r2, #2] - lsrs r1, r1, #8 - strb r1, [r2, #3] - adds r0, r2, #4 - mov ip, r0 - ldr r4, _08033B48 - ldrh r0, [r4] - strh r0, [r2, #4] - ldr r0, _08033B4C - ldrh r0, [r0] - mov r1, ip - strh r0, [r1, #2] - ldr r0, _08033B50 - ldrh r0, [r0] - strh r0, [r1, #4] - ldr r0, _08033B54 - ldrb r0, [r0] - strb r0, [r1, #6] - ldr r0, _08033B58 - ldrb r0, [r0, #0x17] - strb r0, [r1, #7] - ldr r0, _08033B5C - ldr r0, [r0] - adds r1, r0, #0 - adds r1, #0x52 - ldrb r1, [r1] - mov r3, ip - strb r1, [r3, #8] - adds r0, #0xb1 - ldrb r0, [r0] - strb r0, [r3, #9] - ldr r0, _08033B60 - ldrb r0, [r0] - strb r0, [r3, #0xa] - ldr r3, _08033B64 - ldrh r1, [r4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r0, [r0, #2] - mov r1, ip - strb r0, [r1, #0xb] - movs r3, #0 - adds r7, r2, #0 - adds r2, #0x10 - ldr r0, _08033B68 - adds r4, r0, #0 - adds r4, #0x20 -_08033AFA: - adds r1, r2, r3 - ldrb r0, [r4] - strb r0, [r1] - adds r4, #0x58 - adds r3, #1 - cmp r3, #3 - ble _08033AFA - movs r3, #0 - mov r4, ip - adds r4, #0x10 - ldr r6, _08033B6C - mov r2, ip - adds r2, #0x20 - ldr r5, _08033B70 -_08033B16: - adds r1, r4, r3 - adds r0, r3, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r1, r2, r3 - adds r0, r3, r5 - ldrb r0, [r0] - strb r0, [r1] - adds r3, #1 - cmp r3, #0xf - ble _08033B16 - mov r0, r8 - adds r1, r7, #0 - movs r2, #0x34 - bl PrepareBufferDataTransfer - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08033B40: .4byte gUnknown_20229C4 -_08033B44: .4byte gUnknown_2023FDE -_08033B48: .4byte gUnknown_2023E8E -_08033B4C: .4byte gUnknown_2023E90 -_08033B50: .4byte gUnknown_2023EAC -_08033B54: .4byte gUnknown_2023EAE -_08033B58: .4byte gUnknown_2024118 -_08033B5C: .4byte gUnknown_2024140 -_08033B60: .4byte gUnknown_2023EB3 -_08033B64: .4byte gUnknown_82ED220 -_08033B68: .4byte gUnknown_2023D28 -_08033B6C: .4byte gUnknown_2022C0C -_08033B70: .4byte gUnknown_2022C1C - thumb_func_end BtlController_EmitPrintSelectionString - - thumb_func_start sub_08033B74 -sub_08033B74: @ 0x08033B74 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r2, _08033C14 - movs r0, #0x11 - strb r0, [r2] - strb r0, [r2, #1] - strb r1, [r2, #2] - lsrs r1, r1, #8 - strb r1, [r2, #3] - adds r0, r2, #4 - mov ip, r0 - ldr r0, _08033C18 - ldrh r0, [r0] - strh r0, [r2, #4] - ldr r0, _08033C1C - ldrh r0, [r0] - mov r1, ip - strh r0, [r1, #2] - ldr r0, _08033C20 - ldrh r0, [r0] - strh r0, [r1, #4] - ldr r0, _08033C24 - ldrb r0, [r0] - strb r0, [r1, #6] - ldr r0, _08033C28 - ldrb r0, [r0, #0x17] - strb r0, [r1, #7] - ldr r0, _08033C2C - ldr r0, [r0] - adds r0, #0x52 - ldrb r0, [r0] - strb r0, [r1, #8] - movs r3, #0 - adds r7, r2, #0 - adds r4, r7, #0 - adds r4, #0x10 - ldr r0, _08033C30 - adds r2, r0, #0 - adds r2, #0x20 -_08033BCE: - adds r1, r4, r3 - ldrb r0, [r2] - strb r0, [r1] - adds r2, #0x58 - adds r3, #1 - cmp r3, #3 - ble _08033BCE - movs r3, #0 - mov r4, ip - adds r4, #0x10 - ldr r6, _08033C34 - mov r2, ip - adds r2, #0x20 - ldr r5, _08033C38 -_08033BEA: - adds r1, r4, r3 - adds r0, r3, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r1, r2, r3 - adds r0, r3, r5 - ldrb r0, [r0] - strb r0, [r1] - adds r3, #1 - cmp r3, #0xf - ble _08033BEA - mov r0, r8 - adds r1, r7, #0 - movs r2, #0x34 - bl PrepareBufferDataTransfer - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08033C14: .4byte gUnknown_20229C4 -_08033C18: .4byte gUnknown_2023E8E -_08033C1C: .4byte gUnknown_2023E90 -_08033C20: .4byte gUnknown_2023EAC -_08033C24: .4byte gUnknown_2023EAE -_08033C28: .4byte gUnknown_2024118 -_08033C2C: .4byte gUnknown_2024140 -_08033C30: .4byte gUnknown_2023D28 -_08033C34: .4byte gUnknown_2022C0C -_08033C38: .4byte gUnknown_2022C1C - thumb_func_end sub_08033B74 - - thumb_func_start BtlController_EmitChooseAction -BtlController_EmitChooseAction: @ 0x08033C3C - push {r4, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldr r1, _08033C64 - movs r3, #0x12 - strb r3, [r1] - strb r4, [r1, #1] - strb r2, [r1, #2] - lsrs r2, r2, #8 - strb r2, [r1, #3] - movs r2, #4 - bl PrepareBufferDataTransfer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08033C64: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitChooseAction - - thumb_func_start BtlController_EmitUnknownYesNoBox -BtlController_EmitUnknownYesNoBox: @ 0x08033C68 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08033C84 - movs r2, #0x13 - strb r2, [r1] - strb r2, [r1, #1] - strb r2, [r1, #2] - strb r2, [r1, #3] - movs r2, #4 - bl PrepareBufferDataTransfer - pop {r0} - bx r0 - .align 2, 0 -_08033C84: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitUnknownYesNoBox - - thumb_func_start BtlController_EmitChooseMove -BtlController_EmitChooseMove: @ 0x08033C88 - push {r4, r5, r6, lr} - adds r5, r3, #0 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r3, _08033CC0 - movs r4, #0 - movs r0, #0x14 - strb r0, [r3] - strb r1, [r3, #1] - strb r2, [r3, #2] - strb r4, [r3, #3] - movs r2, #0 - adds r1, r3, #0 - adds r4, r1, #4 -_08033CA4: - adds r0, r5, r2 - ldrb r0, [r0] - strb r0, [r4] - adds r4, #1 - adds r2, #1 - cmp r2, #0x13 - bls _08033CA4 - adds r0, r6, #0 - movs r2, #0x18 - bl PrepareBufferDataTransfer - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08033CC0: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitChooseMove - - thumb_func_start BtlController_EmitChooseItem -BtlController_EmitChooseItem: @ 0x08033CC4 - push {r4, r5, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _08033CF4 - movs r0, #0x15 - strb r0, [r1] - movs r2, #0 - adds r3, r1, #1 -_08033CD6: - adds r0, r4, r2 - ldrb r0, [r0] - strb r0, [r3] - adds r3, #1 - adds r2, #1 - cmp r2, #2 - ble _08033CD6 - adds r0, r5, #0 - movs r2, #4 - bl PrepareBufferDataTransfer - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08033CF4: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitChooseItem - - thumb_func_start BtlController_EmitChoosePokemon -BtlController_EmitChoosePokemon: @ 0x08033CF8 - push {r4, r5, r6, lr} - ldr r6, [sp, #0x10] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r4, _08033D30 - movs r0, #0x16 - strb r0, [r4] - strb r1, [r4, #1] - strb r2, [r4, #2] - strb r3, [r4, #3] - movs r2, #0 - adds r1, r4, #0 - adds r3, r1, #4 -_08033D12: - adds r0, r6, r2 - ldrb r0, [r0] - strb r0, [r3] - adds r3, #1 - adds r2, #1 - cmp r2, #2 - ble _08033D12 - adds r0, r5, #0 - movs r2, #8 - bl PrepareBufferDataTransfer - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08033D30: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitChoosePokemon - - thumb_func_start BtlController_EmitCmd23 -BtlController_EmitCmd23: @ 0x08033D34 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08033D50 - movs r2, #0x17 - strb r2, [r1] - strb r2, [r1, #1] - strb r2, [r1, #2] - strb r2, [r1, #3] - movs r2, #4 - bl PrepareBufferDataTransfer - pop {r0} - bx r0 - .align 2, 0 -_08033D50: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitCmd23 - - thumb_func_start BtlController_EmitHealthBarUpdate -BtlController_EmitHealthBarUpdate: @ 0x08033D54 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r3, _08033D88 - movs r4, #0 - movs r2, #0x18 - strb r2, [r3] - strb r4, [r3, #1] - strb r1, [r3, #2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r2, #0xff - lsls r2, r2, #8 - ands r1, r2 - asrs r1, r1, #8 - strb r1, [r3, #3] - adds r1, r3, #0 - movs r2, #4 - bl PrepareBufferDataTransfer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08033D88: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitHealthBarUpdate - - thumb_func_start BtlController_EmitExpUpdate -BtlController_EmitExpUpdate: @ 0x08033D8C - push {r4, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldr r1, _08033DBC - movs r3, #0x19 - strb r3, [r1] - strb r4, [r1, #1] - strb r2, [r1, #2] - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - movs r3, #0xff - lsls r3, r3, #8 - ands r2, r3 - asrs r2, r2, #8 - strb r2, [r1, #3] - movs r2, #4 - bl PrepareBufferDataTransfer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08033DBC: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitExpUpdate - - thumb_func_start BtlController_EmitStatusIconUpdate -BtlController_EmitStatusIconUpdate: @ 0x08033DC0 - push {r4, r5, r6, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08033E10 - movs r3, #0x1a - strb r3, [r1] - strb r4, [r1, #1] - movs r6, #0xff - lsls r6, r6, #8 - adds r3, r4, #0 - ands r3, r6 - lsrs r3, r3, #8 - strb r3, [r1, #2] - movs r5, #0xff - lsls r5, r5, #0x10 - adds r3, r4, #0 - ands r3, r5 - lsrs r3, r3, #0x10 - strb r3, [r1, #3] - lsrs r4, r4, #0x18 - strb r4, [r1, #4] - strb r2, [r1, #5] - adds r3, r2, #0 - ands r3, r6 - lsrs r3, r3, #8 - strb r3, [r1, #6] - adds r3, r2, #0 - ands r3, r5 - lsrs r3, r3, #0x10 - strb r3, [r1, #7] - lsrs r2, r2, #0x18 - strb r2, [r1, #8] - movs r2, #9 - bl PrepareBufferDataTransfer - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08033E10: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitStatusIconUpdate - - thumb_func_start BtlController_EmitStatusAnimation -BtlController_EmitStatusAnimation: @ 0x08033E14 - push {r4, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08033E4C - movs r3, #0x1b - strb r3, [r1] - strb r4, [r1, #1] - strb r2, [r1, #2] - movs r3, #0xff - lsls r3, r3, #8 - ands r3, r2 - lsrs r3, r3, #8 - strb r3, [r1, #3] - movs r3, #0xff - lsls r3, r3, #0x10 - ands r3, r2 - lsrs r3, r3, #0x10 - strb r3, [r1, #4] - lsrs r2, r2, #0x18 - strb r2, [r1, #5] - movs r2, #6 - bl PrepareBufferDataTransfer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08033E4C: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitStatusAnimation - - thumb_func_start BtlController_EmitStatusXor -BtlController_EmitStatusXor: @ 0x08033E50 - push {lr} - adds r3, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08033E6C - movs r2, #0x1c - strb r2, [r1] - strb r3, [r1, #1] - movs r2, #2 - bl PrepareBufferDataTransfer - pop {r0} - bx r0 - .align 2, 0 -_08033E6C: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitStatusXor - - thumb_func_start BtlController_EmitDataTransfer -BtlController_EmitDataTransfer: @ 0x08033E70 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - ldr r1, _08033EB4 - movs r0, #0x1d - strb r0, [r1] - strb r0, [r1, #1] - strb r4, [r1, #2] - lsrs r0, r4, #8 - strb r0, [r1, #3] - adds r5, r1, #0 - cmp r4, #0 - beq _08033EA0 - adds r1, r5, #4 - adds r3, r4, #0 -_08033E92: - ldrb r0, [r2] - strb r0, [r1] - adds r2, #1 - adds r1, #1 - subs r3, #1 - cmp r3, #0 - bne _08033E92 -_08033EA0: - adds r2, r4, #4 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - adds r0, r6, #0 - adds r1, r5, #0 - bl PrepareBufferDataTransfer - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08033EB4: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitDataTransfer - - thumb_func_start BtlController_EmitDMA3Transfer -BtlController_EmitDMA3Transfer: @ 0x08033EB8 - push {r4, r5, r6, lr} - adds r4, r3, #0 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r2, r2, #0x10 - lsrs r5, r2, #0x10 - ldr r2, _08033F1C - movs r0, #0x1e - strb r0, [r2] - strb r1, [r2, #1] - movs r3, #0xff - lsls r3, r3, #8 - adds r0, r1, #0 - ands r0, r3 - lsrs r0, r0, #8 - strb r0, [r2, #2] - movs r0, #0xff - lsls r0, r0, #0x10 - ands r0, r1 - lsrs r0, r0, #0x10 - strb r0, [r2, #3] - lsrs r1, r1, #0x18 - strb r1, [r2, #4] - strb r5, [r2, #5] - adds r0, r5, #0 - ands r0, r3 - lsrs r0, r0, #8 - strb r0, [r2, #6] - adds r1, r2, #0 - cmp r5, #0 - beq _08033F08 - adds r3, r1, #7 - adds r2, r5, #0 -_08033EFA: - ldrb r0, [r4] - strb r0, [r3] - adds r4, #1 - adds r3, #1 - subs r2, #1 - cmp r2, #0 - bne _08033EFA -_08033F08: - adds r2, r5, #7 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - adds r0, r6, #0 - bl PrepareBufferDataTransfer - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08033F1C: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitDMA3Transfer - - thumb_func_start BtlController_EmitPlayBGM -BtlController_EmitPlayBGM: @ 0x08033F20 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - ldr r1, _08033F64 - movs r0, #0x1f - strb r0, [r1] - strb r4, [r1, #1] - lsrs r0, r4, #8 - strb r0, [r1, #2] - adds r5, r1, #0 - cmp r4, #0 - beq _08033F4E - adds r1, r5, #3 - adds r3, r4, #0 -_08033F40: - ldrb r0, [r2] - strb r0, [r1] - adds r2, #1 - adds r1, #1 - subs r3, #1 - cmp r3, #0 - bne _08033F40 -_08033F4E: - adds r2, r4, #3 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - adds r0, r6, #0 - adds r1, r5, #0 - bl PrepareBufferDataTransfer - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08033F64: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitPlayBGM - - thumb_func_start BtlController_EmitCmd32 -BtlController_EmitCmd32: @ 0x08033F68 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - ldr r1, _08033FAC - movs r0, #0x20 - strb r0, [r1] - strb r4, [r1, #1] - lsrs r0, r4, #8 - strb r0, [r1, #2] - adds r5, r1, #0 - cmp r4, #0 - beq _08033F96 - adds r1, r5, #3 - adds r3, r4, #0 -_08033F88: - ldrb r0, [r2] - strb r0, [r1] - adds r2, #1 - adds r1, #1 - subs r3, #1 - cmp r3, #0 - bne _08033F88 -_08033F96: - adds r2, r4, #3 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - adds r0, r6, #0 - adds r1, r5, #0 - bl PrepareBufferDataTransfer - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08033FAC: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitCmd32 - - thumb_func_start BtlController_EmitTwoReturnValues -BtlController_EmitTwoReturnValues: @ 0x08033FB0 - push {r4, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldr r1, _08033FD8 - movs r3, #0x21 - strb r3, [r1] - strb r4, [r1, #1] - strb r2, [r1, #2] - lsrs r2, r2, #8 - strb r2, [r1, #3] - movs r2, #4 - bl PrepareBufferDataTransfer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08033FD8: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitTwoReturnValues - - thumb_func_start BtlController_EmitChosenMonReturnValue -BtlController_EmitChosenMonReturnValue: @ 0x08033FDC - push {r4, r5, lr} - adds r4, r2, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r2, _08034010 - movs r0, #0x22 - strb r0, [r2] - strb r1, [r2, #1] - movs r3, #0 - adds r1, r2, #2 -_08033FF0: - adds r0, r4, r3 - ldrb r0, [r0] - strb r0, [r1] - adds r1, #1 - adds r3, #1 - cmp r3, #2 - ble _08033FF0 - adds r0, r5, #0 - adds r1, r2, #0 - movs r2, #5 - bl PrepareBufferDataTransfer - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08034010: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitChosenMonReturnValue - - thumb_func_start BtlController_EmitOneReturnValue -BtlController_EmitOneReturnValue: @ 0x08034014 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r3, _0803403C - movs r4, #0 - movs r2, #0x23 - strb r2, [r3] - strb r1, [r3, #1] - lsrs r1, r1, #8 - strb r1, [r3, #2] - strb r4, [r3, #3] - adds r1, r3, #0 - movs r2, #4 - bl PrepareBufferDataTransfer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0803403C: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitOneReturnValue - - thumb_func_start BtlController_EmitOneReturnValue_Duplicate -BtlController_EmitOneReturnValue_Duplicate: @ 0x08034040 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r3, _08034068 - movs r4, #0 - movs r2, #0x24 - strb r2, [r3] - strb r1, [r3, #1] - lsrs r1, r1, #8 - strb r1, [r3, #2] - strb r4, [r3, #3] - adds r1, r3, #0 - movs r2, #4 - bl PrepareBufferDataTransfer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08034068: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitOneReturnValue_Duplicate - - thumb_func_start BtlController_EmitCmd37 -BtlController_EmitCmd37: @ 0x0803406C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08034088 - movs r2, #0x25 - strb r2, [r1] - strb r2, [r1, #1] - strb r2, [r1, #2] - strb r2, [r1, #3] - movs r2, #4 - bl PrepareBufferDataTransfer - pop {r0} - bx r0 - .align 2, 0 -_08034088: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitCmd37 - - thumb_func_start BtlController_EmitCmd38 -BtlController_EmitCmd38: @ 0x0803408C - push {lr} - adds r3, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080340A8 - movs r2, #0x26 - strb r2, [r1] - strb r3, [r1, #1] - movs r2, #2 - bl PrepareBufferDataTransfer - pop {r0} - bx r0 - .align 2, 0 -_080340A8: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitCmd38 - - thumb_func_start BtlController_EmitCmd39 -BtlController_EmitCmd39: @ 0x080340AC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080340C8 - movs r2, #0x27 - strb r2, [r1] - strb r2, [r1, #1] - strb r2, [r1, #2] - strb r2, [r1, #3] - movs r2, #4 - bl PrepareBufferDataTransfer - pop {r0} - bx r0 - .align 2, 0 -_080340C8: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitCmd39 - - thumb_func_start BtlController_EmitCmd40 -BtlController_EmitCmd40: @ 0x080340CC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080340E8 - movs r2, #0x28 - strb r2, [r1] - strb r2, [r1, #1] - strb r2, [r1, #2] - strb r2, [r1, #3] - movs r2, #4 - bl PrepareBufferDataTransfer - pop {r0} - bx r0 - .align 2, 0 -_080340E8: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitCmd40 - - thumb_func_start BtlController_EmitHitAnimation -BtlController_EmitHitAnimation: @ 0x080340EC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08034108 - movs r2, #0x29 - strb r2, [r1] - strb r2, [r1, #1] - strb r2, [r1, #2] - strb r2, [r1, #3] - movs r2, #4 - bl PrepareBufferDataTransfer - pop {r0} - bx r0 - .align 2, 0 -_08034108: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitHitAnimation - - thumb_func_start sub_0803410C -sub_0803410C: @ 0x0803410C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08034128 - movs r2, #0x2a - strb r2, [r1] - strb r2, [r1, #1] - strb r2, [r1, #2] - strb r2, [r1, #3] - movs r2, #4 - bl PrepareBufferDataTransfer - pop {r0} - bx r0 - .align 2, 0 -_08034128: .4byte gUnknown_20229C4 - thumb_func_end sub_0803410C - - thumb_func_start BtlController_EmitPlaySE -BtlController_EmitPlaySE: @ 0x0803412C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r3, _08034154 - movs r4, #0 - movs r2, #0x2b - strb r2, [r3] - strb r1, [r3, #1] - lsrs r1, r1, #8 - strb r1, [r3, #2] - strb r4, [r3, #3] - adds r1, r3, #0 - movs r2, #4 - bl PrepareBufferDataTransfer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08034154: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitPlaySE - - thumb_func_start BtlController_EmitPlayFanfareOrBGM -BtlController_EmitPlayFanfareOrBGM: @ 0x08034158 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r4, _08034180 - movs r3, #0x2c - strb r3, [r4] - strb r1, [r4, #1] - lsrs r1, r1, #8 - strb r1, [r4, #2] - strb r2, [r4, #3] - adds r1, r4, #0 - movs r2, #4 - bl PrepareBufferDataTransfer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08034180: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitPlayFanfareOrBGM - - thumb_func_start BtlController_EmitFaintingCry -BtlController_EmitFaintingCry: @ 0x08034184 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080341A0 - movs r2, #0x2d - strb r2, [r1] - strb r2, [r1, #1] - strb r2, [r1, #2] - strb r2, [r1, #3] - movs r2, #4 - bl PrepareBufferDataTransfer - pop {r0} - bx r0 - .align 2, 0 -_080341A0: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitFaintingCry - - thumb_func_start BtlController_EmitIntroSlide -BtlController_EmitIntroSlide: @ 0x080341A4 - push {lr} - adds r3, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080341C0 - movs r2, #0x2e - strb r2, [r1] - strb r3, [r1, #1] - movs r2, #2 - bl PrepareBufferDataTransfer - pop {r0} - bx r0 - .align 2, 0 -_080341C0: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitIntroSlide - - thumb_func_start BtlController_EmitIntroTrainerBallThrow -BtlController_EmitIntroTrainerBallThrow: @ 0x080341C4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080341E0 - movs r2, #0x2f - strb r2, [r1] - strb r2, [r1, #1] - strb r2, [r1, #2] - strb r2, [r1, #3] - movs r2, #4 - bl PrepareBufferDataTransfer - pop {r0} - bx r0 - .align 2, 0 -_080341E0: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitIntroTrainerBallThrow - - thumb_func_start BtlController_EmitDrawPartyStatusSummary -BtlController_EmitDrawPartyStatusSummary: @ 0x080341E4 - push {r4, r5, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r1, _08034228 - movs r3, #0x30 - strb r3, [r1] - movs r0, #0x7f - ands r0, r2 - strb r0, [r1, #1] - movs r0, #0x80 - ands r0, r2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1f - strb r0, [r1, #2] - strb r3, [r1, #3] - movs r2, #0 - adds r3, r1, #4 -_0803420C: - adds r0, r4, r2 - ldrb r0, [r0] - strb r0, [r3] - adds r3, #1 - adds r2, #1 - cmp r2, #0x2f - ble _0803420C - adds r0, r5, #0 - movs r2, #0x34 - bl PrepareBufferDataTransfer - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08034228: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitDrawPartyStatusSummary - - thumb_func_start BtlController_EmitHidePartyStatusSummary -BtlController_EmitHidePartyStatusSummary: @ 0x0803422C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08034248 - movs r2, #0x31 - strb r2, [r1] - strb r2, [r1, #1] - strb r2, [r1, #2] - strb r2, [r1, #3] - movs r2, #4 - bl PrepareBufferDataTransfer - pop {r0} - bx r0 - .align 2, 0 -_08034248: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitHidePartyStatusSummary - - thumb_func_start BtlController_EmitEndBounceEffect -BtlController_EmitEndBounceEffect: @ 0x0803424C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08034268 - movs r2, #0x32 - strb r2, [r1] - strb r2, [r1, #1] - strb r2, [r1, #2] - strb r2, [r1, #3] - movs r2, #4 - bl PrepareBufferDataTransfer - pop {r0} - bx r0 - .align 2, 0 -_08034268: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitEndBounceEffect - - thumb_func_start BtlController_EmitSpriteInvisibility -BtlController_EmitSpriteInvisibility: @ 0x0803426C - push {lr} - adds r3, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0803428C - movs r2, #0x33 - strb r2, [r1] - strb r3, [r1, #1] - strb r2, [r1, #2] - strb r2, [r1, #3] - movs r2, #4 - bl PrepareBufferDataTransfer - pop {r0} - bx r0 - .align 2, 0 -_0803428C: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitSpriteInvisibility - - thumb_func_start BtlController_EmitBattleAnimation -BtlController_EmitBattleAnimation: @ 0x08034290 - push {r4, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldr r1, _080342B8 - movs r3, #0x34 - strb r3, [r1] - strb r4, [r1, #1] - strb r2, [r1, #2] - lsrs r2, r2, #8 - strb r2, [r1, #3] - movs r2, #4 - bl PrepareBufferDataTransfer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080342B8: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitBattleAnimation - - thumb_func_start BtlController_EmitLinkStandbyMsg -BtlController_EmitLinkStandbyMsg: @ 0x080342BC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r4, _080342E0 - movs r0, #0x35 - strb r0, [r4] - strb r1, [r4, #1] - cmp r2, #0 - beq _080342E4 - adds r0, r4, #4 - bl sub_08184F3C - strb r0, [r4, #2] - strb r0, [r4, #3] - b _080342E8 - .align 2, 0 -_080342E0: .4byte gUnknown_20229C4 -_080342E4: - strb r2, [r4, #2] - strb r2, [r4, #3] -_080342E8: - ldr r1, _080342FC - ldrb r2, [r1, #2] - adds r2, #4 - adds r0, r5, #0 - bl PrepareBufferDataTransfer - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080342FC: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitLinkStandbyMsg - - thumb_func_start BtlController_EmitResetActionMoveSelection -BtlController_EmitResetActionMoveSelection: @ 0x08034300 - push {lr} - adds r3, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0803431C - movs r2, #0x36 - strb r2, [r1] - strb r3, [r1, #1] - movs r2, #2 - bl PrepareBufferDataTransfer - pop {r0} - bx r0 - .align 2, 0 -_0803431C: .4byte gUnknown_20229C4 - thumb_func_end BtlController_EmitResetActionMoveSelection - - thumb_func_start BtlController_EmitCmd55 -BtlController_EmitCmd55: @ 0x08034320 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r4, _08034364 - movs r0, #0x37 - strb r0, [r4] - strb r1, [r4, #1] - ldr r0, _08034368 - ldr r1, [r0] - ldr r0, _0803436C - adds r1, r1, r0 - ldrb r0, [r1] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1f - strb r0, [r4, #2] - ldrb r0, [r1] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1f - strb r0, [r4, #3] - adds r0, r4, #6 - bl sub_08184F3C - strb r0, [r4, #4] - strb r0, [r4, #5] - ldrb r2, [r4, #4] - adds r2, #6 - adds r0, r5, #0 - adds r1, r4, #0 - bl PrepareBufferDataTransfer - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08034364: .4byte gUnknown_20229C4 -_08034368: .4byte gUnknown_3005AF0 -_0803436C: .4byte 0x00000CA9 - thumb_func_end BtlController_EmitCmd55 - - thumb_func_start sub_08034370 -sub_08034370: @ 0x08034370 - push {lr} - bl LZ77UnCompWram - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08034370 - - thumb_func_start sub_0803437C -sub_0803437C: @ 0x0803437C - push {lr} - bl LZ77UnCompVram - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0803437C - - thumb_func_start LoadCompressedSpriteSheet -LoadCompressedSpriteSheet: @ 0x08034388 - push {r4, r5, lr} - sub sp, #8 - adds r4, r0, #0 - ldr r0, [r4] - ldr r5, _080343B8 - adds r1, r5, #0 - bl LZ77UnCompWram - str r5, [sp] - ldrh r1, [r4, #6] - lsls r1, r1, #0x10 - ldrh r0, [r4, #4] - orrs r0, r1 - str r0, [sp, #4] - mov r0, sp - bl LoadSpriteSheet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - add sp, #8 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080343B8: .4byte gUnknown_201C000 - thumb_func_end LoadCompressedSpriteSheet - - thumb_func_start LoadCompressedSpriteSheetOverrideBuffer -LoadCompressedSpriteSheetOverrideBuffer: @ 0x080343BC - push {r4, r5, lr} - sub sp, #8 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r0, [r4] - bl LZ77UnCompWram - str r5, [sp] - ldrh r1, [r4, #6] - lsls r1, r1, #0x10 - ldrh r0, [r4, #4] - orrs r0, r1 - str r0, [sp, #4] - mov r0, sp - bl LoadSpriteSheet - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end LoadCompressedSpriteSheetOverrideBuffer - - thumb_func_start LoadCompressedSpritePalette -LoadCompressedSpritePalette: @ 0x080343E4 - push {r4, r5, lr} - sub sp, #8 - adds r5, r0, #0 - ldr r0, [r5] - ldr r4, _08034410 - adds r1, r4, #0 - bl LZ77UnCompWram - str r4, [sp] - ldrh r2, [r5, #4] - ldr r1, _08034414 - ldr r0, [sp, #4] - ands r0, r1 - orrs r0, r2 - str r0, [sp, #4] - mov r0, sp - bl LoadSpritePalette - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08034410: .4byte gUnknown_201C000 -_08034414: .4byte 0xFFFF0000 - thumb_func_end LoadCompressedSpritePalette - - thumb_func_start LoadCompressedSpritePaletteOverrideBuffer -LoadCompressedSpritePaletteOverrideBuffer: @ 0x08034418 - push {r4, r5, lr} - sub sp, #8 - adds r5, r0, #0 - adds r4, r1, #0 - ldr r0, [r5] - bl LZ77UnCompWram - str r4, [sp] - ldrh r2, [r5, #4] - ldr r1, _08034444 - ldr r0, [sp, #4] - ands r0, r1 - orrs r0, r2 - str r0, [sp, #4] - mov r0, sp - bl LoadSpritePalette - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08034444: .4byte 0xFFFF0000 - thumb_func_end LoadCompressedSpritePaletteOverrideBuffer - - thumb_func_start DecompressPicFromTable -DecompressPicFromTable: @ 0x08034448 - push {r4, r5, lr} - adds r3, r0, #0 - adds r4, r1, #0 - adds r5, r2, #0 - movs r0, #0xce - lsls r0, r0, #1 - cmp r5, r0 - ble _08034468 - ldr r0, _08034464 - ldr r0, [r0] - bl LZ77UnCompWram - b _08034470 - .align 2, 0 -_08034464: .4byte gUnknown_82DDA1C -_08034468: - ldr r0, [r3] - adds r1, r4, #0 - bl LZ77UnCompWram -_08034470: - adds r0, r4, #0 - adds r1, r5, #0 - bl DuplicateDeoxysTiles - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end DecompressPicFromTable - - thumb_func_start HandleLoadSpecialPokePic -HandleLoadSpecialPokePic: @ 0x08034480 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - lsls r0, r2, #3 - ldr r1, _080344A8 - adds r0, r0, r1 - movs r1, #0 - cmp r4, r0 - bne _08034496 - movs r1, #1 -_08034496: - str r1, [sp] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08034898 - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080344A8: .4byte gUnknown_82DDA1C - thumb_func_end HandleLoadSpecialPokePic - - thumb_func_start sub_080344AC -sub_080344AC: @ 0x080344AC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - adds r4, r1, #0 - adds r7, r2, #0 - adds r5, r3, #0 - ldr r0, [sp, #0x18] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - cmp r7, #0xc9 - bne _08034528 - movs r0, #0xc0 - lsls r0, r0, #0x12 - ands r0, r5 - lsrs r0, r0, #0x12 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r5 - lsrs r1, r1, #0xc - orrs r0, r1 - movs r1, #0xc0 - lsls r1, r1, #2 - ands r1, r5 - lsrs r1, r1, #6 - orrs r0, r1 - movs r1, #3 - ands r1, r5 - orrs r0, r1 - movs r1, #0x1c - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - bne _080344FA - movs r1, #0xc9 - b _08034504 -_080344FA: - movs r2, #0xce - lsls r2, r2, #1 - adds r0, r1, r2 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 -_08034504: - mov r0, r8 - cmp r0, #0 - bne _08034518 - ldr r0, _08034514 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, [r1] - b _08034534 - .align 2, 0 -_08034514: .4byte gUnknown_82D6148 -_08034518: - ldr r0, _08034524 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, [r1] - b _08034534 - .align 2, 0 -_08034524: .4byte gUnknown_82DDA1C -_08034528: - movs r0, #0xce - lsls r0, r0, #1 - cmp r7, r0 - ble _08034540 - ldr r0, _0803453C - ldr r0, [r0] -_08034534: - adds r1, r4, #0 - bl LZ77UnCompWram - b _08034548 - .align 2, 0 -_0803453C: .4byte gUnknown_82DDA1C -_08034540: - ldr r0, [r6] - adds r1, r4, #0 - bl LZ77UnCompWram -_08034548: - adds r0, r4, #0 - adds r1, r7, #0 - bl DuplicateDeoxysTiles - lsls r0, r7, #0x10 - lsrs r0, r0, #0x10 - adds r1, r5, #0 - adds r2, r4, #0 - mov r3, r8 - bl DrawSpindaSpots - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_080344AC - - thumb_func_start Unused_LZDecompressWramIndirect -Unused_LZDecompressWramIndirect: @ 0x08034568 - push {lr} - ldr r0, [r0] - bl LZ77UnCompWram - pop {r0} - bx r0 - thumb_func_end Unused_LZDecompressWramIndirect - - thumb_func_start sub_08034574 -sub_08034574: @ 0x08034574 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x24 - mov sb, r0 - str r1, [sp] - str r2, [sp, #4] - adds r5, r3, #0 - movs r0, #1 - mov r1, sb - ands r0, r1 - cmp r0, #0 - bne _08034594 - b _0803472C -_08034594: - asrs r0, r1, #1 - adds r0, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #8] - movs r0, #0 - ldr r2, [sp] - cmp r0, r2 - blt _080345A8 - b _080347BC -_080345A8: - movs r4, #8 - subs r1, r4, r1 - str r1, [sp, #0x10] -_080345AE: - movs r7, #0 - adds r0, #1 - str r0, [sp, #0x14] - ldr r0, [sp, #0x10] - cmp r7, r0 - bge _0803462A - ldr r1, [sp, #8] - lsls r1, r1, #8 - str r1, [sp, #0x18] - movs r2, #0 - mov sl, r2 - mov r0, sb - movs r4, #8 - subs r0, r4, r0 - str r0, [sp, #0xc] -_080345CC: - movs r3, #0 - asrs r0, r7, #1 - adds r1, r7, #0 - movs r2, #1 - ands r1, r2 - str r1, [sp, #0x20] - lsls r0, r0, #8 - mov r8, r0 - mov ip, r5 -_080345DE: - lsls r1, r3, #5 - ldr r4, [sp, #0x18] - adds r0, r5, r4 - adds r0, r0, r1 - mov r1, r8 - adds r2, r0, r1 - mov r1, ip - add r1, r8 - movs r6, #0xf -_080345F0: - ldr r4, [sp, #0x20] - cmp r4, #0 - bne _08034600 - strb r4, [r1] - add r4, sp, #0x20 - ldrb r4, [r4] - strb r4, [r2, #0x10] - b _0803460E -_08034600: - mov r0, sl - strb r0, [r1, #0x10] - movs r4, #0x80 - lsls r4, r4, #1 - adds r4, r2, r4 - str r4, [sp, #0x1c] - strb r0, [r4] -_0803460E: - adds r2, #1 - adds r1, #1 - subs r6, #1 - cmp r6, #0 - bge _080345F0 - movs r0, #0x20 - add ip, r0 - adds r3, #1 - cmp r3, #7 - ble _080345DE - adds r7, #1 - ldr r1, [sp, #0xc] - cmp r7, r1 - blt _080345CC -_0803462A: - movs r7, #0 - movs r2, #0 -_0803462E: - movs r6, #0 - adds r4, r7, #1 - mov r8, r4 - lsls r4, r7, #5 -_08034636: - adds r0, r6, #1 - mov sl, r0 - lsls r1, r6, #8 - adds r0, r1, #0 - adds r0, #0xc0 - adds r0, r5, r0 - adds r0, r0, r4 - adds r1, r5, r1 - adds r1, r1, r4 - movs r3, #0x1f -_0803464A: - strb r2, [r1] - strb r2, [r0] - adds r0, #1 - adds r1, #1 - subs r3, #1 - cmp r3, #0 - bge _0803464A - mov r6, sl - cmp r6, #7 - ble _08034636 - mov r7, r8 - cmp r7, #1 - ble _0803462E - mov r1, sb - cmp r1, #5 - bne _08034670 - movs r2, #0x90 - lsls r2, r2, #1 - adds r5, r5, r2 -_08034670: - movs r7, #0 - cmp r7, sb - bge _08034706 -_08034676: - movs r3, #0 - adds r7, #1 - mov r8, r7 - cmp r3, sb - bge _080346E6 -_08034680: - adds r3, #1 - mov sl, r3 - ldr r4, [sp, #4] - adds r4, #0x20 - adds r7, r5, #0 - adds r7, #0x20 - movs r0, #0x12 - adds r0, r0, r5 - mov ip, r0 - ldr r2, [sp, #4] - adds r3, r5, #0 - movs r6, #3 -_08034698: - ldrb r0, [r2] - mov r1, ip - strb r0, [r1] - ldrb r0, [r2, #1] - strb r0, [r1, #1] - ldrb r0, [r2, #2] - strb r0, [r1, #0x1e] - ldrb r0, [r2, #3] - strb r0, [r1, #0x1f] - movs r0, #0x81 - lsls r0, r0, #1 - adds r1, r3, r0 - ldrb r0, [r2, #0x10] - strb r0, [r1] - ldr r0, _080346F0 - adds r1, r3, r0 - ldrb r0, [r2, #0x11] - strb r0, [r1] - movs r0, #0x90 - lsls r0, r0, #1 - adds r1, r3, r0 - ldrb r0, [r2, #0x12] - strb r0, [r1] - ldr r0, _080346F4 - adds r1, r3, r0 - ldrb r0, [r2, #0x13] - strb r0, [r1] - movs r1, #4 - add ip, r1 - adds r2, #4 - adds r3, #4 - subs r6, #1 - cmp r6, #0 - bge _08034698 - str r4, [sp, #4] - adds r5, r7, #0 - mov r3, sl - cmp r3, sb - blt _08034680 -_080346E6: - mov r2, sb - cmp r2, #7 - bne _080346F8 - adds r5, #0x20 - b _08034700 - .align 2, 0 -_080346F0: .4byte 0x00000103 -_080346F4: .4byte 0x00000121 -_080346F8: - mov r4, sb - cmp r4, #5 - bne _08034700 - adds r5, #0x60 -_08034700: - mov r7, r8 - cmp r7, sb - blt _08034676 -_08034706: - mov r0, sb - cmp r0, #7 - bne _08034714 - movs r1, #0x80 - lsls r1, r1, #1 - adds r5, r5, r1 - b _08034720 -_08034714: - mov r2, sb - cmp r2, #5 - bne _08034720 - movs r4, #0xf0 - lsls r4, r4, #1 - adds r5, r5, r4 -_08034720: - ldr r0, [sp, #0x14] - ldr r1, [sp] - cmp r0, r1 - bge _0803472A - b _080345AE -_0803472A: - b _080347BC -_0803472C: - movs r6, #0 - ldr r2, [sp] - cmp r6, r2 - bge _080347BC -_08034734: - adds r6, #1 - mov sl, r6 - mov r4, sb - cmp r4, #6 - bne _0803474C - movs r0, #0 - movs r3, #0xff -_08034742: - strb r0, [r5] - adds r5, #1 - subs r3, #1 - cmp r3, #0 - bge _08034742 -_0803474C: - movs r7, #0 - cmp r7, sb - bge _080347A0 -_08034752: - adds r7, #1 - mov r8, r7 - mov r1, sb - lsls r0, r1, #5 - cmp r1, #6 - bne _0803476C - movs r1, #0 - movs r3, #0x1f -_08034762: - strb r1, [r5] - adds r5, #1 - subs r3, #1 - cmp r3, #0 - bge _08034762 -_0803476C: - adds r1, r0, #0 - cmp r1, #0 - ble _08034786 - adds r3, r1, #0 -_08034774: - ldr r2, [sp, #4] - ldrb r0, [r2] - strb r0, [r5] - adds r2, #1 - str r2, [sp, #4] - adds r5, #1 - subs r3, #1 - cmp r3, #0 - bne _08034774 -_08034786: - mov r4, sb - cmp r4, #6 - bne _0803479A - movs r0, #0 - movs r3, #0x1f -_08034790: - strb r0, [r5] - adds r5, #1 - subs r3, #1 - cmp r3, #0 - bge _08034790 -_0803479A: - mov r7, r8 - cmp r7, sb - blt _08034752 -_080347A0: - mov r0, sb - cmp r0, #6 - bne _080347B4 - movs r0, #0 - movs r3, #0xff -_080347AA: - strb r0, [r5] - adds r5, #1 - subs r3, #1 - cmp r3, #0 - bge _080347AA -_080347B4: - mov r6, sl - ldr r1, [sp] - cmp r6, r1 - blt _08034734 -_080347BC: - add sp, #0x24 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08034574 - - thumb_func_start GetDecompressedDataSize -GetDecompressedDataSize: @ 0x080347CC - adds r2, r0, #0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - ldrb r1, [r2, #2] - lsls r1, r1, #8 - orrs r0, r1 - ldrb r1, [r2, #1] - orrs r0, r1 - bx lr - .align 2, 0 - thumb_func_end GetDecompressedDataSize - - thumb_func_start LoadCompressedSpriteSheetUsingHeap -LoadCompressedSpriteSheetUsingHeap: @ 0x080347E0 - push {r4, r5, lr} - sub sp, #8 - adds r4, r0, #0 - ldr r0, [r4] - ldr r0, [r0] - lsrs r0, r0, #8 - bl AllocZeroed - adds r5, r0, #0 - ldr r0, [r4] - adds r1, r5, #0 - bl LZ77UnCompWram - str r5, [sp] - ldrh r1, [r4, #6] - lsls r1, r1, #0x10 - ldrh r0, [r4, #4] - orrs r0, r1 - str r0, [sp, #4] - mov r0, sp - bl LoadSpriteSheet - adds r0, r5, #0 - bl Free - movs r0, #0 - add sp, #8 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end LoadCompressedSpriteSheetUsingHeap - - thumb_func_start LoadCompressedSpritePaletteUsingHeap -LoadCompressedSpritePaletteUsingHeap: @ 0x0803481C - push {r4, r5, lr} - sub sp, #8 - adds r4, r0, #0 - ldr r0, [r4] - ldr r0, [r0] - lsrs r0, r0, #8 - bl AllocZeroed - adds r5, r0, #0 - ldr r0, [r4] - adds r1, r5, #0 - bl LZ77UnCompWram - str r5, [sp] - ldrh r2, [r4, #4] - ldr r1, _0803485C - ldr r0, [sp, #4] - ands r0, r1 - orrs r0, r2 - str r0, [sp, #4] - mov r0, sp - bl LoadSpritePalette - adds r0, r5, #0 - bl Free - movs r0, #0 - add sp, #8 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0803485C: .4byte 0xFFFF0000 - thumb_func_end LoadCompressedSpritePaletteUsingHeap - - thumb_func_start sub_08034860 -sub_08034860: @ 0x08034860 - push {r4, r5, lr} - adds r3, r0, #0 - adds r4, r1, #0 - adds r5, r2, #0 - movs r0, #0xce - lsls r0, r0, #1 - cmp r5, r0 - ble _08034880 - ldr r0, _0803487C - ldr r0, [r0] - bl LZ77UnCompWram - b _08034888 - .align 2, 0 -_0803487C: .4byte gUnknown_82DDA1C -_08034880: - ldr r0, [r3] - adds r1, r4, #0 - bl LZ77UnCompWram -_08034888: - adds r0, r4, #0 - adds r1, r5, #0 - bl DuplicateDeoxysTiles - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08034860 - - thumb_func_start sub_08034898 -sub_08034898: @ 0x08034898 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - adds r4, r1, #0 - adds r7, r2, #0 - adds r5, r3, #0 - ldr r0, [sp, #0x18] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - cmp r7, #0xc9 - bne _08034914 - movs r0, #0xc0 - lsls r0, r0, #0x12 - ands r0, r5 - lsrs r0, r0, #0x12 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r5 - lsrs r1, r1, #0xc - orrs r0, r1 - movs r1, #0xc0 - lsls r1, r1, #2 - ands r1, r5 - lsrs r1, r1, #6 - orrs r0, r1 - movs r1, #3 - ands r1, r5 - orrs r0, r1 - movs r1, #0x1c - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - bne _080348E6 - movs r1, #0xc9 - b _080348F0 -_080348E6: - movs r2, #0xce - lsls r2, r2, #1 - adds r0, r1, r2 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 -_080348F0: - mov r0, r8 - cmp r0, #0 - bne _08034904 - ldr r0, _08034900 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, [r1] - b _08034920 - .align 2, 0 -_08034900: .4byte gUnknown_82D6148 -_08034904: - ldr r0, _08034910 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, [r1] - b _08034920 - .align 2, 0 -_08034910: .4byte gUnknown_82DDA1C -_08034914: - movs r0, #0xce - lsls r0, r0, #1 - cmp r7, r0 - ble _0803492C - ldr r0, _08034928 - ldr r0, [r0] -_08034920: - adds r1, r4, #0 - bl LZ77UnCompWram - b _08034934 - .align 2, 0 -_08034928: .4byte gUnknown_82DDA1C -_0803492C: - ldr r0, [r6] - adds r1, r4, #0 - bl LZ77UnCompWram -_08034934: - adds r0, r4, #0 - adds r1, r7, #0 - bl DuplicateDeoxysTiles - lsls r0, r7, #0x10 - lsrs r0, r0, #0x10 - adds r1, r5, #0 - adds r2, r4, #0 - mov r3, r8 - bl DrawSpindaSpots - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08034898 - - thumb_func_start HandleLoadSpecialPokePic_2 -HandleLoadSpecialPokePic_2: @ 0x08034954 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - lsls r0, r2, #3 - ldr r1, _0803497C - adds r0, r0, r1 - movs r1, #0 - cmp r4, r0 - bne _0803496A - movs r1, #1 -_0803496A: - str r1, [sp] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08034898 - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0803497C: .4byte gUnknown_82DDA1C - thumb_func_end HandleLoadSpecialPokePic_2 - - thumb_func_start DecompressPicFromTable_DontHandleDeoxys -DecompressPicFromTable_DontHandleDeoxys: @ 0x08034980 - push {lr} - adds r3, r0, #0 - movs r0, #0xce - lsls r0, r0, #1 - cmp r2, r0 - ble _0803499C - ldr r0, _08034998 - ldr r0, [r0] - bl LZ77UnCompWram - b _080349A2 - .align 2, 0 -_08034998: .4byte gUnknown_82DDA1C -_0803499C: - ldr r0, [r3] - bl LZ77UnCompWram -_080349A2: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end DecompressPicFromTable_DontHandleDeoxys - - thumb_func_start HandleLoadSpecialPokePic_DontHandleDeoxys -HandleLoadSpecialPokePic_DontHandleDeoxys: @ 0x080349A8 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - lsls r0, r2, #3 - ldr r1, _080349D0 - adds r0, r0, r1 - movs r1, #0 - cmp r4, r0 - bne _080349BE - movs r1, #1 -_080349BE: - str r1, [sp] - adds r0, r4, #0 - adds r1, r5, #0 - bl LoadSpecialPokePic_DontHandleDeoxys - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080349D0: .4byte gUnknown_82DDA1C - thumb_func_end HandleLoadSpecialPokePic_DontHandleDeoxys - - thumb_func_start LoadSpecialPokePic_DontHandleDeoxys -LoadSpecialPokePic_DontHandleDeoxys: @ 0x080349D4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - adds r5, r1, #0 - adds r7, r2, #0 - adds r4, r3, #0 - ldr r0, [sp, #0x18] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - cmp r7, #0xc9 - bne _08034A50 - movs r0, #0xc0 - lsls r0, r0, #0x12 - ands r0, r4 - lsrs r0, r0, #0x12 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r4 - lsrs r1, r1, #0xc - orrs r0, r1 - movs r1, #0xc0 - lsls r1, r1, #2 - ands r1, r4 - lsrs r1, r1, #6 - orrs r0, r1 - movs r1, #3 - ands r1, r4 - orrs r0, r1 - movs r1, #0x1c - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - bne _08034A22 - movs r1, #0xc9 - b _08034A2C -_08034A22: - movs r2, #0xce - lsls r2, r2, #1 - adds r0, r1, r2 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 -_08034A2C: - mov r0, r8 - cmp r0, #0 - bne _08034A40 - ldr r0, _08034A3C - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, [r1] - b _08034A5C - .align 2, 0 -_08034A3C: .4byte gUnknown_82D6148 -_08034A40: - ldr r0, _08034A4C - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, [r1] - b _08034A5C - .align 2, 0 -_08034A4C: .4byte gUnknown_82DDA1C -_08034A50: - movs r0, #0xce - lsls r0, r0, #1 - cmp r7, r0 - ble _08034A68 - ldr r0, _08034A64 - ldr r0, [r0] -_08034A5C: - adds r1, r5, #0 - bl LZ77UnCompWram - b _08034A70 - .align 2, 0 -_08034A64: .4byte gUnknown_82DDA1C -_08034A68: - ldr r0, [r6] - adds r1, r5, #0 - bl LZ77UnCompWram -_08034A70: - lsls r0, r7, #0x10 - lsrs r0, r0, #0x10 - adds r1, r4, #0 - adds r2, r5, #0 - mov r3, r8 - bl DrawSpindaSpots - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end LoadSpecialPokePic_DontHandleDeoxys - - thumb_func_start DuplicateDeoxysTiles -DuplicateDeoxysTiles: @ 0x08034A88 - push {lr} - adds r3, r0, #0 - movs r0, #0xcd - lsls r0, r0, #1 - cmp r1, r0 - bne _08034AA2 - movs r1, #0x80 - lsls r1, r1, #4 - adds r0, r3, r1 - ldr r2, _08034AA8 - adds r1, r3, #0 - bl CpuSet -_08034AA2: - pop {r0} - bx r0 - .align 2, 0 -_08034AA8: .4byte 0x04000200 - thumb_func_end DuplicateDeoxysTiles - - thumb_func_start sub_08034AAC -sub_08034AAC: @ 0x08034AAC - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r5, _08034ACC - ldr r0, [r5] - cmp r0, #0 - beq _08034ABC - bl sub_08034B20 -_08034ABC: - movs r0, #8 - bl sub_08000BC8 - str r0, [r5] - cmp r0, #0 - bne _08034AD0 - movs r0, #0 - b _08034B18 - .align 2, 0 -_08034ACC: .4byte gUnknown_2022AC4 -_08034AD0: - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - bl sub_08000BC8 - ldr r1, [r5] - str r0, [r1, #4] - cmp r0, #0 - bne _08034AEC - adds r0, r1, #0 - bl Free - movs r0, #0 - b _08034B18 -_08034AEC: - str r4, [r1] - movs r3, #0 - cmp r3, r4 - bhs _08034B16 - movs r7, #0 - movs r6, #0xff - movs r2, #0 -_08034AFA: - ldr r0, [r5] - ldr r0, [r0, #4] - adds r0, r2, r0 - strb r7, [r0] - ldr r0, [r5] - ldr r1, [r0, #4] - adds r1, r2, r1 - ldrb r0, [r1, #1] - orrs r0, r6 - strb r0, [r1, #1] - adds r2, #0x1c - adds r3, #1 - cmp r3, r4 - blo _08034AFA -_08034B16: - movs r0, #1 -_08034B18: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08034AAC - - thumb_func_start sub_08034B20 -sub_08034B20: @ 0x08034B20 - push {r4, r5, lr} - ldr r2, _08034B68 - ldr r1, [r2] - cmp r1, #0 - beq _08034B60 - ldr r0, [r1, #4] - cmp r0, #0 - beq _08034B54 - movs r4, #0 - ldr r0, [r1] - cmp r4, r0 - bhs _08034B4A - adds r5, r2, #0 -_08034B3A: - adds r0, r4, #0 - bl sub_08035234 - adds r4, #1 - ldr r0, [r5] - ldr r0, [r0] - cmp r4, r0 - blo _08034B3A -_08034B4A: - ldr r0, _08034B68 - ldr r0, [r0] - ldr r0, [r0, #4] - bl Free -_08034B54: - ldr r4, _08034B68 - ldr r0, [r4] - bl Free - movs r0, #0 - str r0, [r4] -_08034B60: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08034B68: .4byte gUnknown_2022AC4 - thumb_func_end sub_08034B20 - - thumb_func_start sub_08034B6C -sub_08034B6C: @ 0x08034B6C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - mov r8, r0 - mov sl, r1 - adds r5, r2, #0 - ldr r6, _08034BE4 - ldr r0, [r6] - cmp r0, #0 - beq _08034C2C - ldr r1, [r0, #4] - mov r0, r8 - lsls r2, r0, #3 - subs r0, r2, r0 - lsls r4, r0, #2 - adds r1, r4, r1 - ldrb r0, [r1] - mov sb, r2 - cmp r0, #0 - bne _08034C2C - ldrb r0, [r5, #1] - bl sub_08035370 - ldr r1, [r6] - ldr r1, [r1, #4] - adds r1, r4, r1 - strb r0, [r1, #1] - ldr r0, [r6] - ldr r0, [r0, #4] - adds r0, r4, r0 - ldrb r0, [r0, #1] - cmp r0, #0xff - beq _08034C2C - ldr r0, [r5, #8] - ldrh r0, [r0, #6] - bl GetSpriteTileStartByTag - ldr r2, [r6] - ldr r1, [r2, #4] - adds r1, r4, r1 - strh r0, [r1, #0xa] - ldr r0, [r2, #4] - adds r0, r4, r0 - ldrh r1, [r0, #0xa] - ldr r7, _08034BE8 - lsrs r0, r7, #0x10 - cmp r1, r0 - bne _08034C38 - ldr r2, [r5, #8] - ldrh r0, [r2, #4] - adds r1, r2, #0 - cmp r0, #0 - beq _08034BEC - adds r0, r1, #0 - bl LoadSpriteSheet - b _08034C0C - .align 2, 0 -_08034BE4: .4byte gUnknown_2022AC4 -_08034BE8: .4byte 0xFFFF0000 -_08034BEC: - ldr r0, [r2] - ldr r1, [r2, #4] - str r0, [sp] - str r1, [sp, #4] - ldr r0, [r2] - bl GetDecompressedDataSize - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, [sp, #4] - ands r1, r7 - orrs r1, r0 - str r1, [sp, #4] - mov r0, sp - bl LoadCompressedSpriteSheet -_08034C0C: - ldr r1, [r6] - ldr r1, [r1, #4] - adds r1, r4, r1 - strh r0, [r1, #0xa] - ldr r0, _08034C30 - ldr r0, [r0] - ldr r1, [r0, #4] - mov r2, sb - mov r3, r8 - subs r0, r2, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r1, [r0, #0xa] - ldr r0, _08034C34 - cmp r1, r0 - bne _08034C38 -_08034C2C: - movs r0, #0 - b _08034D40 - .align 2, 0 -_08034C30: .4byte gUnknown_2022AC4 -_08034C34: .4byte 0x0000FFFF -_08034C38: - ldr r0, [r5, #0xc] - ldrh r0, [r0, #4] - bl IndexOfSpritePaletteTag - ldr r6, _08034D50 - ldr r1, [r6] - ldr r1, [r1, #4] - mov r4, sb - mov r3, r8 - subs r2, r4, r3 - lsls r4, r2, #2 - adds r1, r4, r1 - strb r0, [r1, #4] - ldr r0, [r6] - ldr r0, [r0, #4] - adds r0, r4, r0 - ldrb r0, [r0, #4] - cmp r0, #0xff - bne _08034C6C - ldr r0, [r5, #0xc] - bl LoadSpritePalette - ldr r1, [r6] - ldr r1, [r1, #4] - adds r1, r4, r1 - strb r0, [r1, #4] -_08034C6C: - ldr r0, [r6] - ldr r1, [r0, #4] - adds r1, r4, r1 - ldrb r0, [r5] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - strb r0, [r1, #2] - ldr r0, [r6] - ldr r0, [r0, #4] - adds r0, r4, r0 - ldrb r1, [r5, #1] - strb r1, [r0, #3] - ldr r2, [r6] - ldr r0, [r2, #4] - adds r0, r4, r0 - ldrh r1, [r5, #4] - strh r1, [r0, #0xc] - ldr r0, [r2, #4] - adds r0, r4, r0 - ldrh r1, [r5, #6] - strh r1, [r0, #0xe] - ldr r1, [r2, #4] - adds r1, r4, r1 - ldrb r0, [r5] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1e - strb r0, [r1, #6] - ldr r0, [r6] - ldr r1, [r0, #4] - adds r1, r4, r1 - ldrb r0, [r5] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - strb r0, [r1, #5] - ldr r0, [r6] - ldr r1, [r0, #4] - adds r1, r4, r1 - ldrb r0, [r5] - lsrs r0, r0, #6 - strb r0, [r1, #7] - ldr r0, [r6] - ldr r0, [r0, #4] - adds r0, r4, r0 - ldrb r1, [r5, #2] - strb r1, [r0, #8] - ldrb r1, [r5] - lsls r0, r1, #0x1c - lsrs r0, r0, #0x1e - lsls r1, r1, #0x1a - lsrs r1, r1, #0x1e - bl sub_08035450 - ldr r1, [r6] - ldr r1, [r1, #4] - adds r1, r4, r1 - strb r0, [r1, #9] - ldr r2, [r6] - ldr r0, [r2, #4] - adds r0, r4, r0 - ldr r1, [r5, #8] - ldrh r1, [r1, #6] - strh r1, [r0, #0x10] - ldr r0, [r2, #4] - adds r0, r4, r0 - ldr r1, [r5, #0xc] - ldrh r1, [r1, #4] - strh r1, [r0, #0x12] - ldr r0, [r2, #4] - adds r0, r4, r0 - movs r1, #1 - strb r1, [r0] - ldr r0, [r6] - ldr r0, [r0, #4] - adds r0, r4, r0 - str r1, [r0, #0x14] - movs r3, #1 - ldrb r0, [r5, #1] - cmp r3, r0 - bhs _08034D22 -_08034D0A: - ldr r0, [r6] - ldr r2, [r0, #4] - adds r2, r4, r2 - ldr r1, [r2, #0x14] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #1 - str r0, [r2, #0x14] - adds r3, #1 - ldrb r2, [r5, #1] - cmp r3, r2 - blo _08034D0A -_08034D22: - ldr r0, _08034D50 - ldr r0, [r0] - mov r3, sb - mov r4, r8 - subs r1, r3, r4 - lsls r1, r1, #2 - ldr r0, [r0, #4] - adds r0, r0, r1 - bl sub_08034D54 - mov r0, r8 - mov r1, sl - bl sub_08034E9C - movs r0, #1 -_08034D40: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08034D50: .4byte gUnknown_2022AC4 - thumb_func_end sub_08034B6C - - thumb_func_start sub_08034D54 -sub_08034D54: @ 0x08034D54 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r4, r0, #0 - ldrb r5, [r4, #1] - movs r0, #0xc - ldrsh r7, [r4, r0] - ldrb r0, [r4, #3] - adds r0, #1 - mov r8, r0 - mov r1, sp - movs r0, #0 - strh r0, [r1] - lsls r1, r5, #3 - ldr r2, _08034E84 - mov sb, r2 - add r1, sb - mov r0, r8 - lsls r2, r0, #2 - movs r0, #0x80 - lsls r0, r0, #0x11 - orrs r2, r0 - mov r0, sp - bl CpuSet - movs r6, #0 - ldrb r5, [r4, #1] - cmp r6, r8 - bhs _08034E26 - movs r1, #0x3f - mov sl, r1 - movs r2, #0xd - rsbs r2, r2, #0 - mov sb, r2 -_08034D9E: - lsls r0, r5, #3 - ldr r1, _08034E88 - adds r3, r0, r1 - ldrh r1, [r4, #0xe] - adds r0, r3, #0 - adds r0, #0x38 - strb r1, [r0] - ldr r2, _08034E8C - adds r0, r2, #0 - adds r1, r7, #0 - ands r1, r0 - ldrh r2, [r3, #0x3a] - ldr r0, _08034E90 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, #0x3a] - ldrb r1, [r4, #6] - movs r0, #0x39 - adds r0, r0, r3 - mov ip, r0 - lsls r1, r1, #6 - ldrb r2, [r0] - mov r0, sl - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - ldrb r1, [r4, #5] - movs r2, #0x3b - adds r2, r2, r3 - mov ip, r2 - lsls r1, r1, #6 - ldrb r2, [r2] - mov r0, sl - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - ldrh r0, [r4, #0xa] - ldr r1, _08034E94 - ands r1, r0 - ldrh r2, [r3, #0x3c] - ldr r0, _08034E98 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, #0x3c] - adds r3, #0x3d - movs r0, #3 - ldrb r1, [r4, #7] - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r3] - mov r0, sb - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrb r2, [r4, #4] - lsls r2, r2, #4 - movs r1, #0xf - ands r0, r1 - orrs r0, r2 - strb r0, [r3] - ldrb r0, [r4, #8] - adds r7, r7, r0 - adds r6, #1 - adds r5, #1 - cmp r6, r8 - blo _08034D9E -_08034E26: - subs r5, #1 - ldr r0, _08034E88 - lsls r3, r5, #3 - adds r3, r3, r0 - movs r2, #0xc - ldrsh r1, [r4, r2] - ldrb r0, [r4, #8] - subs r1, r1, r0 - ldr r2, _08034E8C - adds r0, r2, #0 - ands r1, r0 - ldrh r2, [r3, #0x3a] - ldr r0, _08034E90 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, #0x3a] - adds r2, r3, #0 - adds r2, #0x39 - ldrb r1, [r2] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4, #9] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #1 - ldrh r4, [r4, #0xa] - adds r1, r1, r4 - ldr r2, _08034E94 - adds r0, r2, #0 - ands r1, r0 - ldrh r2, [r3, #0x3c] - ldr r0, _08034E98 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, #0x3c] - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08034E84: .4byte gUnknown_3002398 -_08034E88: .4byte gUnknown_3002360 -_08034E8C: .4byte 0x000001FF -_08034E90: .4byte 0xFFFFFE00 -_08034E94: .4byte 0x000003FF -_08034E98: .4byte 0xFFFFFC00 - thumb_func_end sub_08034D54 - - thumb_func_start sub_08034E9C -sub_08034E9C: @ 0x08034E9C - push {r4, r5, r6, lr} - adds r3, r0, #0 - adds r4, r1, #0 - ldr r0, _08034ECC - ldr r1, [r0] - adds r6, r0, #0 - cmp r1, #0 - beq _08034F00 - ldr r2, [r1, #4] - lsls r1, r3, #3 - subs r0, r1, r3 - lsls r0, r0, #2 - adds r2, r0, r2 - ldrb r0, [r2] - adds r5, r1, #0 - cmp r0, #0 - beq _08034F00 - str r4, [r2, #0x18] - cmp r4, #0 - bge _08034ED0 - movs r2, #1 - rsbs r4, r4, #0 - b _08034ED2 - .align 2, 0 -_08034ECC: .4byte gUnknown_2022AC4 -_08034ED0: - movs r2, #0 -_08034ED2: - ldr r0, [r6] - ldr r1, [r0, #4] - subs r0, r5, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r3, [r0, #2] - cmp r3, #1 - beq _08034EF2 - cmp r3, #1 - ble _08034EEA - cmp r3, #2 - beq _08034EFA -_08034EEA: - adds r1, r4, #0 - bl sub_08034F08 - b _08034F00 -_08034EF2: - adds r1, r4, #0 - bl sub_08034FBC - b _08034F00 -_08034EFA: - adds r1, r4, #0 - bl sub_08035118 -_08034F00: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08034E9C - - thumb_func_start sub_08034F08 -sub_08034F08: @ 0x08034F08 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov r8, r0 - mov sb, r1 - str r2, [sp] - ldr r5, [r0, #0x14] - ldrb r7, [r0, #1] - ldr r0, _08034F8C - mov sl, r0 - cmp r5, #0 - beq _08034F72 - lsls r0, r7, #3 - adds r0, #0x3c - mov r1, sl - adds r6, r0, r1 -_08034F2E: - mov r0, sb - adds r1, r5, #0 - bl __udivsi3 - adds r4, r0, #0 - adds r0, r4, #0 - muls r0, r5, r0 - mov r2, sb - subs r2, r2, r0 - mov sb, r2 - adds r0, r5, #0 - movs r1, #0xa - bl __udivsi3 - adds r5, r0, #0 - mov r1, r8 - ldrb r0, [r1, #9] - adds r1, r4, #0 - muls r1, r0, r1 - mov r2, r8 - ldrh r2, [r2, #0xa] - adds r1, r1, r2 - ldr r2, _08034F90 - adds r0, r2, #0 - ands r1, r0 - ldrh r0, [r6] - ldr r2, _08034F94 - ands r0, r2 - orrs r0, r1 - strh r0, [r6] - adds r6, #8 - adds r7, #1 - cmp r5, #0 - bne _08034F2E -_08034F72: - ldr r0, [sp] - cmp r0, #0 - beq _08034F98 - lsls r0, r7, #3 - add r0, sl - adds r0, #0x39 - ldrb r2, [r0] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - b _08034FAC - .align 2, 0 -_08034F8C: .4byte gUnknown_3002360 -_08034F90: .4byte 0x000003FF -_08034F94: .4byte 0xFFFFFC00 -_08034F98: - lsls r2, r7, #3 - add r2, sl - adds r2, #0x39 - ldrb r1, [r2] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r2] -_08034FAC: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08034F08 - - thumb_func_start sub_08034FBC -sub_08034FBC: @ 0x08034FBC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r6, r0, #0 - mov r8, r1 - str r2, [sp] - ldr r5, [r6, #0x14] - ldr r3, _08035064 - ldrb r0, [r6, #1] - str r0, [r3] - ldr r2, _08035068 - movs r0, #0 - str r0, [r2] - ldr r1, _0803506C - subs r0, #1 - str r0, [r1] - adds r7, r3, #0 - mov sl, r1 - ldr r0, _08035070 - mov sb, r0 - cmp r5, #0 - beq _080350A4 -_08034FEE: - mov r0, r8 - adds r1, r5, #0 - bl __udivsi3 - adds r4, r0, #0 - adds r0, r4, #0 - muls r0, r5, r0 - mov r1, r8 - subs r1, r1, r0 - mov r8, r1 - adds r0, r5, #0 - movs r1, #0xa - bl __udivsi3 - adds r5, r0, #0 - cmp r4, #0 - bne _08035020 - mov r2, sl - ldr r1, [r2] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _08035020 - cmp r5, #0 - bne _0803507C -_08035020: - ldr r2, [r7] - lsls r2, r2, #3 - add r2, sb - ldrb r0, [r6, #9] - adds r3, r4, #0 - muls r3, r0, r3 - ldrh r4, [r6, #0xa] - adds r3, r3, r4 - ldr r1, _08035074 - adds r0, r1, #0 - ands r3, r0 - ldrh r0, [r2, #0x3c] - ldr r4, _08035078 - adds r1, r4, #0 - ands r0, r1 - orrs r0, r3 - strh r0, [r2, #0x3c] - adds r2, #0x39 - ldrb r0, [r2] - movs r1, #4 - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r2] - mov r2, sl - ldr r1, [r2] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _08035092 - ldr r4, _08035068 - ldr r0, [r4] - str r0, [r2] - b _08035092 - .align 2, 0 -_08035064: .4byte gUnknown_3000DD4 -_08035068: .4byte gUnknown_3000DD8 -_0803506C: .4byte gUnknown_3000DDC -_08035070: .4byte gUnknown_3002360 -_08035074: .4byte 0x000003FF -_08035078: .4byte 0xFFFFFC00 -_0803507C: - ldr r0, [r7] - lsls r0, r0, #3 - add r0, sb - adds r0, #0x39 - ldrb r1, [r0] - movs r2, #4 - rsbs r2, r2, #0 - ands r1, r2 - movs r2, #2 - orrs r1, r2 - strb r1, [r0] -_08035092: - ldr r0, [r7] - adds r0, #1 - str r0, [r7] - ldr r4, _080350E4 - ldr r0, [r4] - adds r0, #1 - str r0, [r4] - cmp r5, #0 - bne _08034FEE -_080350A4: - ldr r0, [sp] - cmp r0, #0 - beq _080350F0 - ldr r1, [r7] - lsls r1, r1, #3 - add r1, sb - adds r1, #0x39 - ldrb r2, [r1] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r3, [r7] - lsls r3, r3, #3 - add r3, sb - movs r1, #0xc - ldrsh r2, [r6, r1] - mov r4, sl - ldr r0, [r4] - subs r0, #1 - ldrb r1, [r6, #8] - muls r0, r1, r0 - adds r2, r2, r0 - ldr r1, _080350E8 - adds r0, r1, #0 - ands r2, r0 - ldrh r1, [r3, #0x3a] - ldr r0, _080350EC - ands r0, r1 - orrs r0, r2 - strh r0, [r3, #0x3a] - b _08035106 - .align 2, 0 -_080350E4: .4byte gUnknown_3000DD8 -_080350E8: .4byte 0x000001FF -_080350EC: .4byte 0xFFFFFE00 -_080350F0: - ldr r0, [r7] - lsls r0, r0, #3 - add r0, sb - adds r0, #0x39 - ldrb r2, [r0] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #2 - orrs r1, r2 - strb r1, [r0] -_08035106: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08034FBC - - thumb_func_start sub_08035118 -sub_08035118: @ 0x08035118 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - mov r8, r0 - mov sl, r1 - str r2, [sp] - ldr r5, [r0, #0x14] - ldrb r3, [r0, #1] - movs r0, #0 - str r0, [sp, #4] - mov sb, r0 - cmp r5, #0 - beq _080351B2 -_08035138: - lsls r0, r3, #3 - adds r1, r0, #0 - adds r1, #0x39 - ldr r2, _080351FC - adds r7, r1, r2 - adds r0, #0x3c - adds r6, r0, r2 -_08035146: - mov r0, sl - adds r1, r5, #0 - str r3, [sp, #8] - bl __udivsi3 - adds r4, r0, #0 - adds r0, r4, #0 - muls r0, r5, r0 - mov r1, sl - subs r1, r1, r0 - mov sl, r1 - adds r0, r5, #0 - movs r1, #0xa - bl __udivsi3 - adds r5, r0, #0 - ldr r3, [sp, #8] - cmp r4, #0 - bne _08035176 - ldr r2, [sp, #4] - cmp r2, #0 - bne _08035176 - cmp r5, #0 - bne _08035138 -_08035176: - movs r0, #1 - str r0, [sp, #4] - mov r1, r8 - ldrb r0, [r1, #9] - adds r2, r4, #0 - muls r2, r0, r2 - ldrh r4, [r1, #0xa] - adds r2, r2, r4 - ldr r1, _08035200 - adds r0, r1, #0 - ands r2, r0 - ldrh r0, [r6] - ldr r4, _08035204 - adds r1, r4, #0 - ands r0, r1 - orrs r0, r2 - strh r0, [r6] - ldrb r0, [r7] - movs r2, #4 - rsbs r2, r2, #0 - adds r1, r2, #0 - ands r0, r1 - strb r0, [r7] - adds r7, #8 - adds r6, #8 - adds r3, #1 - movs r4, #1 - add sb, r4 - cmp r5, #0 - bne _08035146 -_080351B2: - mov r0, r8 - ldrb r0, [r0, #3] - cmp sb, r0 - bge _080351E2 - ldr r1, _080351FC - movs r5, #4 - rsbs r5, r5, #0 - movs r4, #2 - lsls r0, r3, #3 - adds r0, #0x39 - adds r2, r0, r1 -_080351C8: - ldrb r1, [r2] - adds r0, r5, #0 - ands r0, r1 - orrs r0, r4 - strb r0, [r2] - adds r2, #8 - adds r3, #1 - movs r1, #1 - add sb, r1 - mov r0, r8 - ldrb r0, [r0, #3] - cmp sb, r0 - blt _080351C8 -_080351E2: - ldr r1, [sp] - cmp r1, #0 - beq _08035208 - lsls r0, r3, #3 - ldr r2, _080351FC - adds r0, r0, r2 - adds r0, #0x39 - ldrb r2, [r0] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - b _0803521E - .align 2, 0 -_080351FC: .4byte gUnknown_3002360 -_08035200: .4byte 0x000003FF -_08035204: .4byte 0xFFFFFC00 -_08035208: - lsls r2, r3, #3 - ldr r4, _08035230 - adds r2, r2, r4 - adds r2, #0x39 - ldrb r1, [r2] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r2] -_0803521E: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08035230: .4byte gUnknown_3002360 - thumb_func_end sub_08035118 - - thumb_func_start sub_08035234 -sub_08035234: @ 0x08035234 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r0, _080352CC - ldr r0, [r0] - cmp r0, #0 - beq _080352C6 - ldr r2, [r0, #4] - lsls r1, r4, #3 - subs r0, r1, r4 - lsls r0, r0, #2 - adds r2, r0, r2 - ldrb r0, [r2] - adds r5, r1, #0 - cmp r0, #0 - beq _080352C6 - ldrb r3, [r2, #3] - adds r0, r3, #1 - ldrb r2, [r2, #1] - cmp r0, #0 - beq _0803527E - ldr r1, _080352D0 - movs r7, #4 - rsbs r7, r7, #0 - movs r6, #2 - adds r3, r0, #0 - lsls r0, r2, #3 - adds r0, #0x39 - adds r2, r0, r1 -_0803526C: - ldrb r1, [r2] - adds r0, r7, #0 - ands r0, r1 - orrs r0, r6 - strb r0, [r2] - subs r3, #1 - adds r2, #8 - cmp r3, #0 - bne _0803526C -_0803527E: - adds r0, r4, #0 - bl SharesTileWithAnyActive - cmp r0, #0 - bne _0803529A - ldr r0, _080352CC - ldr r0, [r0] - ldr r1, [r0, #4] - subs r0, r5, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0, #0x10] - bl FreeSpriteTilesByTag -_0803529A: - adds r0, r4, #0 - bl SharesPalWithAnyActive - cmp r0, #0 - bne _080352B6 - ldr r0, _080352CC - ldr r0, [r0] - ldr r1, [r0, #4] - subs r0, r5, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0, #0x12] - bl FreeSpritePaletteByTag -_080352B6: - ldr r0, _080352CC - ldr r0, [r0] - ldr r1, [r0, #4] - subs r0, r5, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] -_080352C6: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080352CC: .4byte gUnknown_2022AC4 -_080352D0: .4byte gUnknown_3002360 - thumb_func_end sub_08035234 - - thumb_func_start sub_080352D4 -sub_080352D4: @ 0x080352D4 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r0, _08035328 - ldr r1, [r0] - adds r7, r0, #0 - cmp r1, #0 - beq _08035364 - ldr r2, [r1, #4] - lsls r1, r4, #3 - subs r0, r1, r4 - lsls r0, r0, #2 - adds r2, r0, r2 - ldrb r0, [r2] - adds r6, r1, #0 - cmp r0, #0 - beq _08035364 - ldrb r3, [r2, #3] - adds r1, r3, #1 - ldrb r0, [r2, #1] - cmp r5, #0 - beq _08035330 - cmp r1, #0 - beq _08035364 - ldr r1, _0803532C - movs r5, #4 - rsbs r5, r5, #0 - movs r4, #2 - adds r3, #1 - lsls r0, r0, #3 - adds r0, #0x39 - adds r2, r0, r1 -_08035314: - ldrb r1, [r2] - adds r0, r5, #0 - ands r0, r1 - orrs r0, r4 - strb r0, [r2] - subs r3, #1 - adds r2, #8 - cmp r3, #0 - bne _08035314 - b _08035364 - .align 2, 0 -_08035328: .4byte gUnknown_2022AC4 -_0803532C: .4byte gUnknown_3002360 -_08035330: - cmp r1, #0 - beq _08035352 - ldr r1, _0803536C - movs r5, #4 - rsbs r5, r5, #0 - adds r3, #1 - lsls r0, r0, #3 - adds r0, #0x39 - adds r2, r0, r1 -_08035342: - ldrb r1, [r2] - adds r0, r5, #0 - ands r0, r1 - strb r0, [r2] - subs r3, #1 - adds r2, #8 - cmp r3, #0 - bne _08035342 -_08035352: - ldr r0, [r7] - ldr r1, [r0, #4] - subs r0, r6, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0, #0x18] - adds r0, r4, #0 - bl sub_08034E9C -_08035364: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0803536C: .4byte gUnknown_3002360 - thumb_func_end sub_080352D4 - - thumb_func_start sub_08035370 -sub_08035370: @ 0x08035370 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r5, #0x40 - movs r3, #0 - ldr r0, _0803539C - ldr r0, [r0] - ldr r2, [r0] - cmp r3, r2 - bhs _080353B2 - ldr r1, [r0, #4] -_08035386: - ldrb r0, [r1] - cmp r0, #0 - bne _080353A0 - ldrb r0, [r1, #1] - cmp r0, #0xff - beq _080353AA - ldrb r0, [r1, #3] - cmp r0, r4 - bhi _080353AA - ldrb r0, [r1, #1] - b _080353C2 - .align 2, 0 -_0803539C: .4byte gUnknown_2022AC4 -_080353A0: - adds r0, r5, #1 - ldrb r5, [r1, #3] - adds r0, r0, r5 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_080353AA: - adds r1, #0x1c - adds r3, #1 - cmp r3, r2 - blo _08035386 -_080353B2: - adds r0, r5, r4 - adds r0, #1 - cmp r0, #0x80 - bgt _080353C0 - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - b _080353C2 -_080353C0: - movs r0, #0xff -_080353C2: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_08035370 - - thumb_func_start SharesTileWithAnyActive -SharesTileWithAnyActive: @ 0x080353C8 - push {r4, r5, r6, lr} - adds r3, r0, #0 - movs r2, #0 - ldr r0, _080353F8 - ldr r0, [r0] - ldr r4, [r0] - cmp r2, r4 - bhs _08035404 - ldr r1, [r0, #4] - lsls r0, r3, #3 - subs r0, r0, r3 - lsls r0, r0, #2 - adds r5, r0, r1 -_080353E2: - ldrb r0, [r1] - cmp r0, #0 - beq _080353FC - cmp r2, r3 - beq _080353FC - ldrh r0, [r1, #0x10] - ldrh r6, [r5, #0x10] - cmp r0, r6 - bne _080353FC - movs r0, #1 - b _08035406 - .align 2, 0 -_080353F8: .4byte gUnknown_2022AC4 -_080353FC: - adds r1, #0x1c - adds r2, #1 - cmp r2, r4 - blo _080353E2 -_08035404: - movs r0, #0 -_08035406: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end SharesTileWithAnyActive - - thumb_func_start SharesPalWithAnyActive -SharesPalWithAnyActive: @ 0x0803540C - push {r4, r5, r6, lr} - adds r3, r0, #0 - movs r2, #0 - ldr r0, _0803543C - ldr r0, [r0] - ldr r4, [r0] - cmp r2, r4 - bhs _08035448 - ldr r1, [r0, #4] - lsls r0, r3, #3 - subs r0, r0, r3 - lsls r0, r0, #2 - adds r5, r0, r1 -_08035426: - ldrb r0, [r1] - cmp r0, #0 - beq _08035440 - cmp r2, r3 - beq _08035440 - ldrh r0, [r1, #0x12] - ldrh r6, [r5, #0x12] - cmp r0, r6 - bne _08035440 - movs r0, #1 - b _0803544A - .align 2, 0 -_0803543C: .4byte gUnknown_2022AC4 -_08035440: - adds r1, #0x1c - adds r2, #1 - cmp r2, r4 - blo _08035426 -_08035448: - movs r0, #0 -_0803544A: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end SharesPalWithAnyActive - - thumb_func_start sub_08035450 -sub_08035450: @ 0x08035450 - ldr r2, _0803545C - lsls r0, r0, #2 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - bx lr - .align 2, 0 -_0803545C: .4byte gUnknown_82D2A58 - thumb_func_end sub_08035450 - - thumb_func_start sub_08035460 -sub_08035460: @ 0x08035460 - push {lr} - bl ResetSpriteData - ldr r0, _08035494 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08035498 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - ldr r0, _0803549C - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_08035494: .4byte gUnknown_82EBAE0 -_08035498: .4byte gUnknown_20205AC -_0803549C: .4byte sub_080354A0 - thumb_func_end sub_08035460 - - thumb_func_start sub_080354A0 -sub_080354A0: @ 0x080354A0 - push {lr} - bl AnimateSprites - bl BuildOamBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080354A0 - - thumb_func_start BattleInitBgsAndWindows -BattleInitBgsAndWindows: @ 0x080354B0 - push {r4, lr} - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _080354EC - movs r0, #0 - movs r2, #4 - bl InitBgsFromTemplates - ldr r0, _080354F0 - ldr r1, [r0] - movs r0, #0x80 - lsls r0, r0, #0xb - ands r1, r0 - cmp r1, #0 - beq _080354FC - ldr r0, _080354F4 - adds r0, #0x24 - movs r1, #1 - strb r1, [r0] - ldr r4, _080354F8 - ldr r1, [r4] - movs r0, #1 - bl SetBgTilemapBuffer - ldr r1, [r4] - movs r0, #2 - bl SetBgTilemapBuffer - b _08035502 - .align 2, 0 -_080354EC: .4byte gUnknown_82EB860 -_080354F0: .4byte gUnknown_2022C90 -_080354F4: .4byte gUnknown_2024118 -_080354F8: .4byte gUnknown_2022D04 -_080354FC: - ldr r0, _08035520 - adds r0, #0x24 - strb r1, [r0] -_08035502: - ldr r1, _08035524 - ldr r0, _08035520 - adds r0, #0x24 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl InitWindows - bl sub_08004480 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08035520: .4byte gUnknown_2024118 -_08035524: .4byte gUnknown_82EB9F8 - thumb_func_end BattleInitBgsAndWindows - - thumb_func_start sub_08035528 -sub_08035528: @ 0x08035528 - push {lr} - movs r0, #2 - bl DisableInterrupts - movs r0, #0xc5 - bl EnableInterrupts - bl BattleInitBgsAndWindows - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - ldr r1, _08035560 - movs r0, #0 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 -_08035560: .4byte 0x0000B040 - thumb_func_end sub_08035528 - - thumb_func_start LoadBattleMenuWindowGfx -LoadBattleMenuWindowGfx: @ 0x08035564 - push {lr} - movs r0, #2 - movs r1, #0x12 - movs r2, #0x10 - bl LoadUserWindowBorderGfx - movs r0, #2 - movs r1, #0x22 - movs r2, #0x10 - bl LoadUserWindowBorderGfx - ldr r0, _080355B8 - movs r1, #0x50 - movs r2, #0x20 - bl LoadCompressedPalette - ldr r0, _080355BC - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xb - ands r0, r1 - cmp r0, #0 - beq _080355B2 - movs r0, #0x70 - bl Menu_LoadStdPalAt - movs r0, #0 - movs r1, #0x30 - movs r2, #0x70 - bl LoadMessageBoxGfx - ldr r0, _080355C0 - adds r0, #0xec - movs r1, #0 - strh r1, [r0] - ldr r1, _080355C4 - movs r2, #1 - bl CpuSet -_080355B2: - pop {r0} - bx r0 - .align 2, 0 -_080355B8: .4byte gUnknown_8D855E4 -_080355BC: .4byte gUnknown_2022C90 -_080355C0: .4byte gUnknown_20373B4 -_080355C4: .4byte gUnknown_20378A0 - thumb_func_end LoadBattleMenuWindowGfx - - thumb_func_start DrawMainBattleBackground -DrawMainBattleBackground: @ 0x080355C8 - push {r4, r5, lr} - ldr r0, _080355EC - ldr r1, [r0] - ldr r0, _080355F0 - ands r0, r1 - cmp r0, #0 - beq _08035608 - ldr r0, _080355F4 - ldr r1, _080355F8 - bl sub_0803437C - ldr r0, _080355FC - ldr r1, _08035600 - bl sub_0803437C - ldr r0, _08035604 - b _080358A6 - .align 2, 0 -_080355EC: .4byte gUnknown_2022C90 -_080355F0: .4byte 0x023F0902 -_080355F4: .4byte gUnknown_8D7C4E4 -_080355F8: .4byte 0x06008000 -_080355FC: .4byte gUnknown_8D7CACC -_08035600: .4byte 0x0600D000 -_08035604: .4byte gUnknown_8D7CA90 -_08035608: - movs r0, #0x80 - lsls r0, r0, #0x15 - ands r0, r1 - cmp r0, #0 - beq _0803563C - ldr r0, _08035628 - ldr r1, _0803562C - bl sub_0803437C - ldr r0, _08035630 - ldr r1, _08035634 - bl sub_0803437C - ldr r0, _08035638 - b _080358A6 - .align 2, 0 -_08035628: .4byte gUnknown_8D7BBB8 -_0803562C: .4byte 0x06008000 -_08035630: .4byte gUnknown_8D7C1F8 -_08035634: .4byte 0x0600D000 -_08035638: .4byte gUnknown_8D7DFD4 -_0803563C: - movs r0, #0x80 - lsls r0, r0, #0x16 - ands r0, r1 - cmp r0, #0 - beq _08035670 - ldr r0, _0803565C - ldr r1, _08035660 - bl sub_0803437C - ldr r0, _08035664 - ldr r1, _08035668 - bl sub_0803437C - ldr r0, _0803566C - b _080358A6 - .align 2, 0 -_0803565C: .4byte gUnknown_8D7A1AC -_08035660: .4byte 0x06008000 -_08035664: .4byte gUnknown_8D7A7C4 -_08035668: .4byte 0x0600D000 -_0803566C: .4byte gUnknown_8D7DF98 -_08035670: - movs r0, #0x80 - lsls r0, r0, #0x17 - ands r0, r1 - cmp r0, #0 - beq _080356A4 - ldr r0, _08035690 - ldr r1, _08035694 - bl sub_0803437C - ldr r0, _08035698 - ldr r1, _0803569C - bl sub_0803437C - ldr r0, _080356A0 - b _080358A6 - .align 2, 0 -_08035690: .4byte gUnknown_8D7D634 -_08035694: .4byte 0x06008000 -_08035698: .4byte gUnknown_8D7DCA8 -_0803569C: .4byte 0x0600D000 -_080356A0: .4byte gUnknown_8D7E2D8 -_080356A4: - movs r0, #8 - ands r1, r0 - cmp r1, #0 - beq _08035718 - ldr r1, _080356D0 - ldr r0, _080356D4 - ldrh r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r1 - ldrb r0, [r0, #1] - cmp r0, #0x20 - bne _080356EC - ldr r0, _080356D8 - ldr r1, _080356DC - bl sub_0803437C - ldr r0, _080356E0 - ldr r1, _080356E4 - bl sub_0803437C - ldr r0, _080356E8 - b _080358A6 - .align 2, 0 -_080356D0: .4byte gUnknown_82E383C -_080356D4: .4byte gUnknown_203886A -_080356D8: .4byte gUnknown_8D7C4E4 -_080356DC: .4byte 0x06008000 -_080356E0: .4byte gUnknown_8D7CACC -_080356E4: .4byte 0x0600D000 -_080356E8: .4byte gUnknown_8D7E068 -_080356EC: - cmp r0, #0x26 - bne _08035718 - ldr r0, _08035704 - ldr r1, _08035708 - bl sub_0803437C - ldr r0, _0803570C - ldr r1, _08035710 - bl sub_0803437C - ldr r0, _08035714 - b _080358A6 - .align 2, 0 -_08035704: .4byte gUnknown_8D7CD7C -_08035708: .4byte 0x06008000 -_0803570C: .4byte gUnknown_8D7D384 -_08035710: .4byte 0x0600D000 -_08035714: .4byte gUnknown_8D7E29C -_08035718: - bl GetCurrentMapBattleScene - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #8 - bhi _08035758 - lsls r0, r0, #2 - ldr r1, _08035730 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08035730: .4byte _08035734 -_08035734: @ jump table - .4byte _08035758 @ case 0 - .4byte _080357A4 @ case 1 - .4byte _080357CC @ case 2 - .4byte _080357F4 @ case 3 - .4byte _0803581C @ case 4 - .4byte _08035844 @ case 5 - .4byte _0803586C @ case 6 - .4byte _08035894 @ case 7 - .4byte _080358C4 @ case 8 -_08035758: - ldr r4, _08035794 - ldr r5, _08035798 - ldrb r1, [r5] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r0, [r0] - ldr r1, _0803579C - bl sub_0803437C - ldrb r1, [r5] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r4, #4 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _080357A0 - bl sub_0803437C - ldrb r1, [r5] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, #0x10 - adds r0, r0, r4 - ldr r0, [r0] - b _080358A6 - .align 2, 0 -_08035794: .4byte gUnknown_82EBA00 -_08035798: .4byte gUnknown_2022C94 -_0803579C: .4byte 0x06008000 -_080357A0: .4byte 0x0600D000 -_080357A4: - ldr r0, _080357B8 - ldr r1, _080357BC - bl sub_0803437C - ldr r0, _080357C0 - ldr r1, _080357C4 - bl sub_0803437C - ldr r0, _080357C8 - b _080358A6 - .align 2, 0 -_080357B8: .4byte gUnknown_8D7C4E4 -_080357BC: .4byte 0x06008000 -_080357C0: .4byte gUnknown_8D7CACC -_080357C4: .4byte 0x0600D000 -_080357C8: .4byte gUnknown_8D7E02C -_080357CC: - ldr r0, _080357E0 - ldr r1, _080357E4 - bl sub_0803437C - ldr r0, _080357E8 - ldr r1, _080357EC - bl sub_0803437C - ldr r0, _080357F0 - b _080358A6 - .align 2, 0 -_080357E0: .4byte gUnknown_8D7CD7C -_080357E4: .4byte 0x06008000 -_080357E8: .4byte gUnknown_8D7D384 -_080357EC: .4byte 0x0600D000 -_080357F0: .4byte gUnknown_8D7E104 -_080357F4: - ldr r0, _08035808 - ldr r1, _0803580C - bl sub_0803437C - ldr r0, _08035810 - ldr r1, _08035814 - bl sub_0803437C - ldr r0, _08035818 - b _080358A6 - .align 2, 0 -_08035808: .4byte gUnknown_8D7CD7C -_0803580C: .4byte 0x06008000 -_08035810: .4byte gUnknown_8D7D384 -_08035814: .4byte 0x0600D000 -_08035818: .4byte gUnknown_8D7E0A4 -_0803581C: - ldr r0, _08035830 - ldr r1, _08035834 - bl sub_0803437C - ldr r0, _08035838 - ldr r1, _0803583C - bl sub_0803437C - ldr r0, _08035840 - b _080358A6 - .align 2, 0 -_08035830: .4byte gUnknown_8D7CD7C -_08035834: .4byte 0x06008000 -_08035838: .4byte gUnknown_8D7D384 -_0803583C: .4byte 0x0600D000 -_08035840: .4byte gUnknown_8D7E170 -_08035844: - ldr r0, _08035858 - ldr r1, _0803585C - bl sub_0803437C - ldr r0, _08035860 - ldr r1, _08035864 - bl sub_0803437C - ldr r0, _08035868 - b _080358A6 - .align 2, 0 -_08035858: .4byte gUnknown_8D7CD7C -_0803585C: .4byte 0x06008000 -_08035860: .4byte gUnknown_8D7D384 -_08035864: .4byte 0x0600D000 -_08035868: .4byte gUnknown_8D7E1C0 -_0803586C: - ldr r0, _08035880 - ldr r1, _08035884 - bl sub_0803437C - ldr r0, _08035888 - ldr r1, _0803588C - bl sub_0803437C - ldr r0, _08035890 - b _080358A6 - .align 2, 0 -_08035880: .4byte gUnknown_8D7CD7C -_08035884: .4byte 0x06008000 -_08035888: .4byte gUnknown_8D7D384 -_0803588C: .4byte 0x0600D000 -_08035890: .4byte gUnknown_8D7E208 -_08035894: - ldr r0, _080358B0 - ldr r1, _080358B4 - bl sub_0803437C - ldr r0, _080358B8 - ldr r1, _080358BC - bl sub_0803437C - ldr r0, _080358C0 -_080358A6: - movs r1, #0x20 - movs r2, #0x60 - bl LoadCompressedPalette - b _080358DE - .align 2, 0 -_080358B0: .4byte gUnknown_8D7CD7C -_080358B4: .4byte 0x06008000 -_080358B8: .4byte gUnknown_8D7D384 -_080358BC: .4byte 0x0600D000 -_080358C0: .4byte gUnknown_8D7E24C -_080358C4: - ldr r0, _080358E4 - ldr r1, _080358E8 - bl sub_0803437C - ldr r0, _080358EC - ldr r1, _080358F0 - bl sub_0803437C - ldr r0, _080358F4 - movs r1, #0x20 - movs r2, #0x60 - bl LoadCompressedPalette -_080358DE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080358E4: .4byte gUnknown_8D7C4E4 -_080358E8: .4byte 0x06008000 -_080358EC: .4byte gUnknown_8D7CACC -_080358F0: .4byte 0x0600D000 -_080358F4: .4byte gUnknown_8D7CA90 - thumb_func_end DrawMainBattleBackground - - thumb_func_start sub_080358F8 -sub_080358F8: @ 0x080358F8 - push {lr} - movs r0, #0x8c - lsls r0, r0, #0x14 - movs r1, #0xc0 - lsls r1, r1, #0x13 - bl sub_0803437C - ldr r1, _08035930 - movs r0, #0 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - movs r0, #0 - bl CopyBgTilemapBufferToVram - ldr r0, _08035934 - movs r1, #0 - movs r2, #0x40 - bl LoadCompressedPalette - bl LoadBattleMenuWindowGfx - bl DrawMainBattleBackground - pop {r0} - bx r0 - .align 2, 0 -_08035930: .4byte gUnknown_8C00530 -_08035934: .4byte gUnknown_8C004EC - thumb_func_end sub_080358F8 - - thumb_func_start sub_08035938 -sub_08035938: @ 0x08035938 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x18 - ldr r4, [sp, #0x34] - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r7, r6, #0 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r8, r2 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov ip, r3 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov sb, r4 - movs r4, #0 - ldr r0, _08035990 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08035A20 - ldr r0, _08035994 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r2, #0x12 - ldrsh r0, [r1, r2] - cmp r0, #0 - beq _080359AA - cmp r5, #1 - beq _080359D2 - cmp r5, #1 - bgt _08035998 - cmp r5, #0 - beq _080359A2 - b _080359DC - .align 2, 0 -_08035990: .4byte gUnknown_2022C90 -_08035994: .4byte gUnknown_3005B60 -_08035998: - cmp r5, #2 - beq _080359A6 - cmp r5, #3 - beq _080359C6 - b _080359DC -_080359A2: - ldrh r0, [r1, #0xe] - b _080359C8 -_080359A6: - ldrh r1, [r1, #0xe] - b _080359D4 -_080359AA: - cmp r5, #1 - beq _080359C6 - cmp r5, #1 - bgt _080359B8 - cmp r5, #0 - beq _080359C2 - b _080359DC -_080359B8: - cmp r5, #2 - beq _080359CE - cmp r5, #3 - beq _080359D2 - b _080359DC -_080359C2: - ldrh r0, [r1, #0xe] - b _080359C8 -_080359C6: - ldrh r0, [r1, #0x10] -_080359C8: - movs r4, #0x3f - ands r4, r0 - b _080359DC -_080359CE: - ldrh r1, [r1, #0xe] - b _080359D4 -_080359D2: - ldrh r1, [r1, #0x10] -_080359D4: - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r1 - lsrs r4, r0, #6 -_080359DC: - movs r2, #0 - movs r6, #3 - ldr r0, _08035A1C - adds r5, r0, #0 - add r3, sp, #0xc -_080359E6: - lsls r1, r2, #1 - adds r0, r6, #0 - lsls r0, r1 - ands r0, r4 - asrs r0, r1 - adds r0, r0, r5 - strh r0, [r3] - adds r3, #2 - adds r2, #1 - cmp r2, #2 - ble _080359E6 - movs r0, #3 - str r0, [sp] - movs r0, #1 - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - mov r0, r8 - add r1, sp, #0xc - mov r2, ip - mov r3, sb - bl CopyToBgTilemapBufferRect_ChangePalette - mov r0, r8 - bl CopyBgTilemapBufferToVram - b _08035A8A - .align 2, 0 -_08035A1C: .4byte 0x00006001 -_08035A20: - ldr r0, _08035A38 - adds r0, #0x25 - ldrb r0, [r0] - cmp r5, r0 - bne _08035A40 - ldr r1, _08035A3C - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r4, [r0, #0xe] - b _08035A4C - .align 2, 0 -_08035A38: .4byte gUnknown_2024118 -_08035A3C: .4byte gUnknown_3005B60 -_08035A40: - ldr r1, _08035A98 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r4, [r0, #0x10] -_08035A4C: - movs r2, #0 - movs r6, #3 - ldr r0, _08035A9C - adds r5, r0, #0 - add r3, sp, #0xc -_08035A56: - lsls r1, r2, #1 - adds r0, r6, #0 - lsls r0, r1 - ands r0, r4 - asrs r0, r1 - adds r0, r0, r5 - strh r0, [r3] - adds r3, #2 - adds r2, #1 - cmp r2, #5 - ble _08035A56 - movs r0, #6 - str r0, [sp] - movs r0, #1 - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - mov r0, r8 - add r1, sp, #0xc - mov r2, ip - mov r3, sb - bl CopyToBgTilemapBufferRect_ChangePalette - mov r0, r8 - bl CopyBgTilemapBufferToVram -_08035A8A: - add sp, #0x18 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08035A98: .4byte gUnknown_3005B60 -_08035A9C: .4byte 0x00006001 - thumb_func_end sub_08035938 - - thumb_func_start sub_08035AA0 -sub_08035AA0: @ 0x08035AA0 - push {lr} - ldr r0, _08035AB4 - ldrb r2, [r0] - cmp r2, #3 - bne _08035ABC - ldr r0, _08035AB8 - movs r1, #0x15 - bl sub_0814FA04 - b _08035BBC - .align 2, 0 -_08035AB4: .4byte gUnknown_2023FDE -_08035AB8: .4byte gUnknown_85ABC8E -_08035ABC: - ldr r0, _08035AEC - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08035B36 - cmp r2, #1 - bne _08035B02 - ldr r2, _08035AF0 - ldr r0, _08035AF4 - adds r0, #0x25 - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0, #0x18] - cmp r0, #1 - beq _08035B50 - cmp r0, #1 - bgt _08035AF8 - cmp r0, #0 - beq _08035B8A - b _08035BBC - .align 2, 0 -_08035AEC: .4byte gUnknown_2022C90 -_08035AF0: .4byte gUnknown_20226A0 -_08035AF4: .4byte gUnknown_2024118 -_08035AF8: - cmp r0, #2 - beq _08035B8A - cmp r0, #3 - bne _08035BBC - b _08035B50 -_08035B02: - ldr r2, _08035B24 - ldr r0, _08035B28 - adds r0, #0x25 - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0, #0x18] - cmp r0, #1 - beq _08035B8A - cmp r0, #1 - bgt _08035B2C - cmp r0, #0 - beq _08035B50 - b _08035BBC - .align 2, 0 -_08035B24: .4byte gUnknown_20226A0 -_08035B28: .4byte gUnknown_2024118 -_08035B2C: - cmp r0, #2 - beq _08035B50 - cmp r0, #3 - bne _08035BBC - b _08035B8A -_08035B36: - cmp r2, #1 - bne _08035B74 - ldr r2, _08035B64 - ldr r0, _08035B68 - adds r0, #0x25 - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0, #0x18] - cmp r0, #0 - beq _08035B8A -_08035B50: - ldr r0, _08035B6C - movs r1, #0x17 - bl sub_0814FA04 - ldr r0, _08035B70 - movs r1, #0x16 - bl sub_0814FA04 - b _08035BBC - .align 2, 0 -_08035B64: .4byte gUnknown_20226A0 -_08035B68: .4byte gUnknown_2024118 -_08035B6C: .4byte gUnknown_85ABC82 -_08035B70: .4byte gUnknown_85ABC88 -_08035B74: - ldr r2, _08035B9C - ldr r0, _08035BA0 - adds r0, #0x25 - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0, #0x18] - cmp r0, #0 - beq _08035BAC -_08035B8A: - ldr r0, _08035BA4 - movs r1, #0x16 - bl sub_0814FA04 - ldr r0, _08035BA8 - movs r1, #0x17 - bl sub_0814FA04 - b _08035BBC - .align 2, 0 -_08035B9C: .4byte gUnknown_20226A0 -_08035BA0: .4byte gUnknown_2024118 -_08035BA4: .4byte gUnknown_85ABC82 -_08035BA8: .4byte gUnknown_85ABC88 -_08035BAC: - ldr r0, _08035BC0 - movs r1, #0x17 - bl sub_0814FA04 - ldr r0, _08035BC4 - movs r1, #0x16 - bl sub_0814FA04 -_08035BBC: - pop {r0} - bx r0 - .align 2, 0 -_08035BC0: .4byte gUnknown_85ABC82 -_08035BC4: .4byte gUnknown_85ABC88 - thumb_func_end sub_08035AA0 - - thumb_func_start UpdateFastPaletteFade -UpdateFastPaletteFade: @ 0x08035BC8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r1, _08035BF4 - lsls r0, r7, #2 - mov r8, r0 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r5, r0, r1 - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #1 - bne _08035BEA - b _08035D28 -_08035BEA: - cmp r0, #1 - bgt _08035BF8 - cmp r0, #0 - beq _08035C00 - b _08035F9C - .align 2, 0 -_08035BF4: .4byte gUnknown_3005B60 -_08035BF8: - cmp r0, #2 - bne _08035BFE - b _08035DC8 -_08035BFE: - b _08035F9C -_08035C00: - ldr r0, _08035C2C - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08035C9C - mov r6, r8 - ldr r4, _08035C30 - movs r5, #3 -_08035C12: - add r0, sp, #4 - adds r1, r4, #0 - bl StringCopy7 - ldrh r0, [r4, #0x10] - cmp r0, #1 - beq _08035C4C - cmp r0, #1 - bgt _08035C34 - cmp r0, #0 - beq _08035C3E - b _08035C92 - .align 2, 0 -_08035C2C: .4byte gUnknown_2022C90 -_08035C30: .4byte gUnknown_20226A8 -_08035C34: - cmp r0, #2 - beq _08035C60 - cmp r0, #3 - beq _08035C7A - b _08035C92 -_08035C3E: - add r0, sp, #4 - movs r1, #0x11 - bl sub_0814FA04 - ldrb r1, [r4, #0x10] - movs r0, #4 - b _08035C6C -_08035C4C: - add r0, sp, #4 - movs r1, #0x12 - bl sub_0814FA04 - ldrb r1, [r4, #0x10] - movs r0, #4 - str r0, [sp] - adds r0, r7, #0 - movs r2, #2 - b _08035C72 -_08035C60: - add r0, sp, #4 - movs r1, #0x13 - bl sub_0814FA04 - ldrb r1, [r4, #0x10] - movs r0, #8 -_08035C6C: - str r0, [sp] - adds r0, r7, #0 - movs r2, #1 -_08035C72: - movs r3, #2 - bl sub_08035938 - b _08035C92 -_08035C7A: - add r0, sp, #4 - movs r1, #0x14 - bl sub_0814FA04 - ldrb r1, [r4, #0x10] - movs r0, #8 - str r0, [sp] - adds r0, r7, #0 - movs r2, #2 - movs r3, #2 - bl sub_08035938 -_08035C92: - adds r4, #0x1c - subs r5, #1 - cmp r5, #0 - bge _08035C12 - b _08035D0C -_08035C9C: - ldr r0, _08035D1C - adds r0, #0x25 - ldrb r5, [r0] - movs r0, #1 - adds r6, r5, #0 - eors r6, r0 - adds r1, r6, #0 - ldr r4, _08035D20 - lsls r0, r5, #3 - subs r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r0, [r0, #0x18] - cmp r0, #0 - beq _08035CBE - adds r6, r5, #0 - adds r5, r1, #0 -_08035CBE: - lsls r1, r5, #3 - subs r1, r1, r5 - lsls r1, r1, #2 - adds r4, #8 - adds r1, r1, r4 - add r0, sp, #4 - bl StringCopy7 - add r0, sp, #4 - movs r1, #0xf - bl sub_0814FA04 - lsls r1, r6, #3 - subs r1, r1, r6 - lsls r1, r1, #2 - adds r1, r1, r4 - add r0, sp, #4 - bl StringCopy7 - add r0, sp, #4 - movs r1, #0x10 - bl sub_0814FA04 - movs r4, #7 - str r4, [sp] - adds r0, r7, #0 - adds r1, r5, #0 - movs r2, #1 - movs r3, #2 - bl sub_08035938 - str r4, [sp] - adds r0, r7, #0 - adds r1, r6, #0 - movs r2, #2 - movs r3, #2 - bl sub_08035938 - mov r6, r8 -_08035D0C: - ldr r0, _08035D24 - adds r1, r6, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _08035F9C - .align 2, 0 -_08035D1C: .4byte gUnknown_2024118 -_08035D20: .4byte gUnknown_20226A0 -_08035D24: .4byte gUnknown_3005B60 -_08035D28: - ldr r0, _08035DA4 - bl AllocSpritePalette - lsls r0, r0, #0x18 - ldr r2, _08035DA8 - lsrs r0, r0, #0x13 - ldr r3, _08035DAC - adds r0, r0, r3 - adds r2, r0, r2 - ldr r1, _08035DB0 - adds r0, r0, r1 - ldr r1, _08035DB4 - strh r1, [r0] - strh r1, [r2] - ldr r0, _08035DB8 - movs r1, #0x6f - movs r2, #0x50 - movs r3, #0 - bl CreateSprite - ldr r4, _08035DBC - ldr r1, [r4] - adds r1, #0x7d - strb r0, [r1] - ldr r0, _08035DC0 - movs r1, #0x81 - movs r2, #0x50 - movs r3, #0 - bl CreateSprite - ldr r1, [r4] - adds r1, #0x7e - strb r0, [r1] - ldr r3, _08035DC4 - ldr r0, [r4] - adds r0, #0x7d - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r4] - adds r0, #0x7e - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - b _08035F9C - .align 2, 0 -_08035DA4: .4byte 0x00002710 -_08035DA8: .4byte gUnknown_20373B4 -_08035DAC: .4byte 0x0000021E -_08035DB0: .4byte gUnknown_20377B4 -_08035DB4: .4byte 0x00007FFF -_08035DB8: .4byte gUnknown_82EB828 -_08035DBC: .4byte gUnknown_2024140 -_08035DC0: .4byte gUnknown_82EB840 -_08035DC4: .4byte gUnknown_20205AC -_08035DC8: - movs r1, #0x12 - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _08035E30 - ldr r4, _08035E1C - ldrh r0, [r5, #0xa] - bl Sin2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _08035DE2 - adds r0, #0x1f -_08035DE2: - asrs r1, r0, #5 - movs r2, #0x14 - rsbs r2, r2, #0 - adds r0, r2, #0 - subs r0, r0, r1 - strh r0, [r4] - ldr r4, _08035E20 - ldrh r0, [r5, #0xc] - bl Sin2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _08035E00 - adds r0, #0x1f -_08035E00: - asrs r1, r0, #5 - movs r3, #0x8c - rsbs r3, r3, #0 - adds r0, r3, #0 - subs r0, r0, r1 - strh r0, [r4] - ldr r0, _08035E24 - ldr r2, _08035E28 - adds r1, r2, #0 - strh r1, [r0] - ldr r0, _08035E2C - strh r1, [r0] - b _08035E9C - .align 2, 0 -_08035E1C: .4byte gUnknown_2022ACC -_08035E20: .4byte gUnknown_2022AD0 -_08035E24: .4byte gUnknown_2022ACE -_08035E28: .4byte 0x0000FFDC -_08035E2C: .4byte gUnknown_2022AD2 -_08035E30: - ldr r4, _08035EC0 - ldrh r0, [r5, #0xa] - bl Sin2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _08035E42 - adds r0, #0x1f -_08035E42: - asrs r1, r0, #5 - movs r3, #0x14 - rsbs r3, r3, #0 - adds r0, r3, #0 - subs r0, r0, r1 - strh r0, [r4] - ldr r4, _08035EC4 - ldrh r0, [r5, #0xa] - bl Cos2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _08035E60 - adds r0, #0x1f -_08035E60: - asrs r0, r0, #5 - subs r0, #0xa4 - strh r0, [r4] - ldr r4, _08035EC8 - ldrh r0, [r5, #0xc] - bl Sin2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _08035E78 - adds r0, #0x1f -_08035E78: - asrs r1, r0, #5 - movs r2, #0x8c - rsbs r2, r2, #0 - adds r0, r2, #0 - subs r0, r0, r1 - strh r0, [r4] - ldr r4, _08035ECC - ldrh r0, [r5, #0xc] - bl Cos2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _08035E96 - adds r0, #0x1f -_08035E96: - asrs r0, r0, #5 - subs r0, #0xa4 - strh r0, [r4] -_08035E9C: - ldr r1, _08035ED0 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r1, r0, r1 - ldrh r0, [r1, #0xc] - movs r2, #0xc - ldrsh r3, [r1, r2] - mov r8, r3 - cmp r3, #0 - beq _08035ED4 - subs r0, #2 - strh r0, [r1, #0xc] - ldrh r0, [r1, #0xa] - adds r0, #2 - strh r0, [r1, #0xa] - b _08035F9C - .align 2, 0 -_08035EC0: .4byte gUnknown_2022ACC -_08035EC4: .4byte gUnknown_2022ACE -_08035EC8: .4byte gUnknown_2022AD0 -_08035ECC: .4byte gUnknown_2022AD2 -_08035ED0: .4byte gUnknown_3005B60 -_08035ED4: - movs r3, #0x12 - ldrsh r0, [r1, r3] - cmp r0, #0 - beq _08035EE0 - bl sub_08035AA0 -_08035EE0: - movs r0, #0x78 - bl sub_080A306C - adds r0, r7, #0 - bl DestroyTask - ldr r4, _08035FA8 - ldr r5, _08035FAC - ldr r0, [r5] - adds r0, #0x7d - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - adds r1, #0x3e - ldrb r3, [r1] - movs r2, #5 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r3 - strb r0, [r1] - ldr r0, [r5] - adds r0, #0x7e - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - ldr r5, [r5] - adds r6, r5, #0 - adds r6, #0x7e - ldrb r0, [r6] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r4 - ldrh r3, [r2, #4] - lsls r1, r3, #0x16 - lsrs r1, r1, #0x16 - adds r1, #0x40 - ldr r7, _08035FB0 - adds r0, r7, #0 - ands r1, r0 - ldr r0, _08035FB4 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, #4] - adds r5, #0x7d - ldrb r1, [r5] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - mov r1, r8 - strh r1, [r0, #0x2e] - ldrb r1, [r6] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #1 - strh r1, [r0, #0x2e] - ldrb r1, [r5] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r0, #0x20] - strh r1, [r0, #0x30] - ldrb r1, [r6] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r0, #0x20] - strh r1, [r0, #0x30] - ldrb r1, [r5] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - mov r2, r8 - strh r2, [r0, #0x32] - ldrb r1, [r6] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - strh r2, [r0, #0x32] -_08035F9C: - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08035FA8: .4byte gUnknown_20205AC -_08035FAC: .4byte gUnknown_2024140 -_08035FB0: .4byte 0x000003FF -_08035FB4: .4byte 0xFFFFFC00 - thumb_func_end UpdateFastPaletteFade - - thumb_func_start DrawBattleEntryBackground -DrawBattleEntryBackground: @ 0x08035FB8 - push {r4, r5, lr} - ldr r0, _0803603C - ldr r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0803606C - ldr r0, _08036040 - ldr r1, _08036044 - bl sub_0803437C - ldr r0, _08036048 - ldr r1, _0803604C - bl sub_0803437C - ldr r0, _08036050 - movs r1, #0x60 - movs r2, #0x20 - bl LoadCompressedPalette - movs r0, #1 - movs r1, #3 - movs r2, #1 - bl SetBgAttribute - ldr r1, _08036054 - movs r0, #0xa - bl SetGpuReg - ldr r4, _08036058 - movs r0, #1 - adds r1, r4, #0 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - movs r0, #2 - adds r1, r4, #0 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - movs r0, #1 - bl CopyBgTilemapBufferToVram - movs r0, #2 - bl CopyBgTilemapBufferToVram - movs r0, #0x48 - movs r1, #0x36 - bl SetGpuReg - movs r0, #0x4a - movs r1, #0x36 - bl SetGpuReg - ldr r0, _0803605C - ldr r2, _08036060 - adds r1, r2, #0 - strh r1, [r0] - ldr r0, _08036064 - strh r1, [r0] - ldr r0, _08036068 - bl LoadCompressedSpriteSheetUsingHeap - b _0803620C - .align 2, 0 -_0803603C: .4byte gUnknown_2022C90 -_08036040: .4byte gUnknown_8D77994 -_08036044: .4byte 0x06004000 -_08036048: .4byte gUnknown_8D77BB0 -_0803604C: .4byte 0x06010000 -_08036050: .4byte gUnknown_8D77B88 -_08036054: .4byte 0x00005C04 -_08036058: .4byte gUnknown_8D77A7C -_0803605C: .4byte gUnknown_2022ACE -_08036060: .4byte 0x0000FF5C -_08036064: .4byte gUnknown_2022AD2 -_08036068: .4byte gUnknown_82EB858 -_0803606C: - ldr r0, _08036094 - ands r0, r1 - cmp r0, #0 - beq _080360F0 - movs r0, #0x80 - lsls r0, r0, #0xf - ands r1, r0 - cmp r1, #0 - beq _08036088 - ldr r0, _08036098 - ldrh r1, [r0] - ldr r0, _0803609C - cmp r1, r0 - bne _080360AC -_08036088: - ldr r0, _080360A0 - ldr r1, _080360A4 - bl sub_0803437C - ldr r0, _080360A8 - b _080361E2 - .align 2, 0 -_08036094: .4byte 0x023F0902 -_08036098: .4byte gUnknown_203886E -_0803609C: .4byte 0x00000C03 -_080360A0: .4byte gUnknown_8D82178 -_080360A4: .4byte 0x06004000 -_080360A8: .4byte gUnknown_8D82588 -_080360AC: - movs r0, #1 - movs r1, #1 - movs r2, #2 - bl SetBgAttribute - movs r0, #2 - movs r1, #1 - movs r2, #2 - bl SetBgAttribute - ldr r1, _080360E8 - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - ldr r1, _080360EC - movs r0, #2 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - movs r0, #1 - bl CopyBgTilemapBufferToVram - movs r0, #2 - bl CopyBgTilemapBufferToVram - b _0803620C - .align 2, 0 -_080360E8: .4byte gUnknown_8D8578C -_080360EC: .4byte gUnknown_8D85A00 -_080360F0: - movs r0, #0x80 - lsls r0, r0, #0x15 - ands r0, r1 - cmp r0, #0 - beq _08036114 - ldr r0, _08036108 - ldr r1, _0803610C - bl sub_0803437C - ldr r0, _08036110 - b _080361E2 - .align 2, 0 -_08036108: .4byte gUnknown_8D816B4 -_0803610C: .4byte 0x06004000 -_08036110: .4byte gUnknown_8D81ED0 -_08036114: - movs r0, #0x80 - lsls r0, r0, #0x16 - ands r0, r1 - cmp r0, #0 - beq _08036138 - ldr r0, _0803612C - ldr r1, _08036130 - bl sub_0803437C - ldr r0, _08036134 - b _080361E2 - .align 2, 0 -_0803612C: .4byte gUnknown_8D7FA9C -_08036130: .4byte 0x06004000 -_08036134: .4byte gUnknown_8D7FF68 -_08036138: - movs r0, #0x80 - lsls r0, r0, #0x17 - ands r0, r1 - cmp r0, #0 - beq _0803615C - ldr r0, _08036150 - ldr r1, _08036154 - bl sub_0803437C - ldr r0, _08036158 - b _080361E2 - .align 2, 0 -_08036150: .4byte gUnknown_8D826AC -_08036154: .4byte 0x06004000 -_08036158: .4byte gUnknown_8D82D14 -_0803615C: - movs r0, #8 - ands r1, r0 - cmp r1, #0 - beq _080361B0 - ldr r1, _08036180 - ldr r0, _08036184 - ldrh r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r1 - ldrb r0, [r0, #1] - cmp r0, #0x20 - bne _08036194 - ldr r0, _08036188 - ldr r1, _0803618C - bl sub_0803437C - ldr r0, _08036190 - b _080361E2 - .align 2, 0 -_08036180: .4byte gUnknown_82E383C -_08036184: .4byte gUnknown_203886A -_08036188: .4byte gUnknown_8D82178 -_0803618C: .4byte 0x06004000 -_08036190: .4byte gUnknown_8D82588 -_08036194: - cmp r0, #0x26 - bne _080361B0 - ldr r0, _080361A4 - ldr r1, _080361A8 - bl sub_0803437C - ldr r0, _080361AC - b _080361E2 - .align 2, 0 -_080361A4: .4byte gUnknown_8D82178 -_080361A8: .4byte 0x06004000 -_080361AC: .4byte gUnknown_8D82588 -_080361B0: - bl GetCurrentMapBattleScene - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080361FC - ldr r4, _080361EC - ldr r5, _080361F0 - ldrb r1, [r5] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #8 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _080361F4 - bl sub_0803437C - ldrb r1, [r5] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, #0xc - adds r0, r0, r4 - ldr r0, [r0] -_080361E2: - ldr r1, _080361F8 - bl sub_0803437C - b _0803620C - .align 2, 0 -_080361EC: .4byte gUnknown_82EBA00 -_080361F0: .4byte gUnknown_2022C94 -_080361F4: .4byte 0x06004000 -_080361F8: .4byte 0x0600E000 -_080361FC: - ldr r0, _08036214 - ldr r1, _08036218 - bl sub_0803437C - ldr r0, _0803621C - ldr r1, _08036220 - bl sub_0803437C -_0803620C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08036214: .4byte gUnknown_8D82178 -_08036218: .4byte 0x06004000 -_0803621C: .4byte gUnknown_8D82588 -_08036220: .4byte 0x0600E000 - thumb_func_end DrawBattleEntryBackground - - thumb_func_start sub_08036224 -sub_08036224: @ 0x08036224 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r4, #0 - cmp r0, #6 - bls _08036232 - b _080365AA -_08036232: - lsls r0, r0, #2 - ldr r1, _0803623C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803623C: .4byte _08036240 -_08036240: @ jump table - .4byte _0803625C @ case 0 - .4byte _0803626A @ case 1 - .4byte _08036284 @ case 2 - .4byte _08036294 @ case 3 - .4byte _08036388 @ case 4 - .4byte _08036490 @ case 5 - .4byte _080365A4 @ case 6 -_0803625C: - movs r0, #0x8c - lsls r0, r0, #0x14 - movs r1, #0xc0 - lsls r1, r1, #0x13 - bl sub_0803437C - b _080365AC -_0803626A: - ldr r1, _08036280 - movs r0, #0 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - movs r0, #0 - bl CopyBgTilemapBufferToVram - b _080365AC - .align 2, 0 -_08036280: .4byte gUnknown_8C00530 -_08036284: - ldr r0, _08036290 - movs r1, #0 - movs r2, #0x40 - bl LoadCompressedPalette - b _080365AC - .align 2, 0 -_08036290: .4byte gUnknown_8C004EC -_08036294: - ldr r0, _080362B0 - ldr r1, [r0] - ldr r0, _080362B4 - ands r0, r1 - cmp r0, #0 - bne _08036374 - movs r0, #0x80 - lsls r0, r0, #0x15 - ands r0, r1 - cmp r0, #0 - beq _080362BC - ldr r0, _080362B8 - b _08036376 - .align 2, 0 -_080362B0: .4byte gUnknown_2022C90 -_080362B4: .4byte 0x023F0902 -_080362B8: .4byte gUnknown_8D7BBB8 -_080362BC: - movs r0, #8 - ands r1, r0 - cmp r1, #0 - beq _080362E8 - ldr r1, _080362DC - ldr r0, _080362E0 - ldrh r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r1 - ldrb r0, [r0, #1] - cmp r0, #0x20 - beq _08036374 - cmp r0, #0x26 - bne _080362E8 - ldr r0, _080362E4 - b _08036376 - .align 2, 0 -_080362DC: .4byte gUnknown_82E383C -_080362E0: .4byte gUnknown_203886A -_080362E4: .4byte gUnknown_8D7CD7C -_080362E8: - bl GetCurrentMapBattleScene - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #8 - bhi _08036328 - lsls r0, r0, #2 - ldr r1, _08036300 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08036300: .4byte _08036304 -_08036304: @ jump table - .4byte _08036328 @ case 0 - .4byte _08036374 @ case 1 - .4byte _08036344 @ case 2 - .4byte _0803634C @ case 3 - .4byte _08036354 @ case 4 - .4byte _0803635C @ case 5 - .4byte _08036364 @ case 6 - .4byte _0803636C @ case 7 - .4byte _08036374 @ case 8 -_08036328: - ldr r2, _0803633C - ldr r0, _08036340 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - b _08036376 - .align 2, 0 -_0803633C: .4byte gUnknown_82EBA00 -_08036340: .4byte gUnknown_2022C94 -_08036344: - ldr r0, _08036348 - b _08036376 - .align 2, 0 -_08036348: .4byte gUnknown_8D7CD7C -_0803634C: - ldr r0, _08036350 - b _08036376 - .align 2, 0 -_08036350: .4byte gUnknown_8D7CD7C -_08036354: - ldr r0, _08036358 - b _08036376 - .align 2, 0 -_08036358: .4byte gUnknown_8D7CD7C -_0803635C: - ldr r0, _08036360 - b _08036376 - .align 2, 0 -_08036360: .4byte gUnknown_8D7CD7C -_08036364: - ldr r0, _08036368 - b _08036376 - .align 2, 0 -_08036368: .4byte gUnknown_8D7CD7C -_0803636C: - ldr r0, _08036370 - b _08036376 - .align 2, 0 -_08036370: .4byte gUnknown_8D7CD7C -_08036374: - ldr r0, _08036380 -_08036376: - ldr r1, _08036384 - bl sub_0803437C - b _080365AC - .align 2, 0 -_08036380: .4byte gUnknown_8D7C4E4 -_08036384: .4byte 0x06008000 -_08036388: - ldr r0, _080363AC - ldr r1, [r0] - ldr r0, _080363B0 - ands r0, r1 - cmp r0, #0 - beq _08036396 - b _0803647C -_08036396: - movs r0, #0x80 - lsls r0, r0, #5 - ands r0, r1 - cmp r0, #0 - beq _080363C4 - ldr r0, _080363B4 - ldrb r0, [r0] - cmp r0, #2 - bne _080363BC - ldr r0, _080363B8 - b _0803647E - .align 2, 0 -_080363AC: .4byte gUnknown_2022C90 -_080363B0: .4byte 0x023F0902 -_080363B4: .4byte gUnknown_829BDA4 -_080363B8: .4byte gUnknown_8D7C1F8 -_080363BC: - ldr r0, _080363C0 - b _0803647E - .align 2, 0 -_080363C0: .4byte gUnknown_8D7A7C4 -_080363C4: - movs r0, #8 - ands r1, r0 - cmp r1, #0 - beq _080363F0 - ldr r1, _080363E4 - ldr r0, _080363E8 - ldrh r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r1 - ldrb r0, [r0, #1] - cmp r0, #0x20 - beq _0803647C - cmp r0, #0x26 - bne _080363F0 - ldr r0, _080363EC - b _0803647E - .align 2, 0 -_080363E4: .4byte gUnknown_82E383C -_080363E8: .4byte gUnknown_203886A -_080363EC: .4byte gUnknown_8D7D384 -_080363F0: - bl GetCurrentMapBattleScene - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #8 - bhi _08036430 - lsls r0, r0, #2 - ldr r1, _08036408 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08036408: .4byte _0803640C -_0803640C: @ jump table - .4byte _08036430 @ case 0 - .4byte _0803647C @ case 1 - .4byte _0803644C @ case 2 - .4byte _08036454 @ case 3 - .4byte _0803645C @ case 4 - .4byte _08036464 @ case 5 - .4byte _0803646C @ case 6 - .4byte _08036474 @ case 7 - .4byte _0803647C @ case 8 -_08036430: - ldr r2, _08036444 - ldr r0, _08036448 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #4 - adds r0, r0, r2 - ldr r0, [r0] - b _0803647E - .align 2, 0 -_08036444: .4byte gUnknown_82EBA00 -_08036448: .4byte gUnknown_2022C94 -_0803644C: - ldr r0, _08036450 - b _0803647E - .align 2, 0 -_08036450: .4byte gUnknown_8D7D384 -_08036454: - ldr r0, _08036458 - b _0803647E - .align 2, 0 -_08036458: .4byte gUnknown_8D7D384 -_0803645C: - ldr r0, _08036460 - b _0803647E - .align 2, 0 -_08036460: .4byte gUnknown_8D7D384 -_08036464: - ldr r0, _08036468 - b _0803647E - .align 2, 0 -_08036468: .4byte gUnknown_8D7D384 -_0803646C: - ldr r0, _08036470 - b _0803647E - .align 2, 0 -_08036470: .4byte gUnknown_8D7D384 -_08036474: - ldr r0, _08036478 - b _0803647E - .align 2, 0 -_08036478: .4byte gUnknown_8D7D384 -_0803647C: - ldr r0, _08036488 -_0803647E: - ldr r1, _0803648C - bl sub_0803437C - b _080365AC - .align 2, 0 -_08036488: .4byte gUnknown_8D7CACC -_0803648C: .4byte 0x0600D000 -_08036490: - ldr r0, _080364B4 - ldr r1, [r0] - ldr r0, _080364B8 - ands r0, r1 - cmp r0, #0 - beq _0803649E - b _08036594 -_0803649E: - movs r0, #0x80 - lsls r0, r0, #5 - ands r0, r1 - cmp r0, #0 - beq _080364CC - ldr r0, _080364BC - ldrb r0, [r0] - cmp r0, #2 - bne _080364C4 - ldr r0, _080364C0 - b _08036596 - .align 2, 0 -_080364B4: .4byte gUnknown_2022C90 -_080364B8: .4byte 0x023F0902 -_080364BC: .4byte gUnknown_829BDA4 -_080364C0: .4byte gUnknown_8D7DFD4 -_080364C4: - ldr r0, _080364C8 - b _08036596 - .align 2, 0 -_080364C8: .4byte gUnknown_8D7DF98 -_080364CC: - movs r0, #8 - ands r1, r0 - cmp r1, #0 - beq _08036500 - ldr r1, _080364E8 - ldr r0, _080364EC - ldrh r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r1 - ldrb r0, [r0, #1] - cmp r0, #0x20 - bne _080364F4 - ldr r0, _080364F0 - b _08036596 - .align 2, 0 -_080364E8: .4byte gUnknown_82E383C -_080364EC: .4byte gUnknown_203886A -_080364F0: .4byte gUnknown_8D7E068 -_080364F4: - cmp r0, #0x26 - bne _08036500 - ldr r0, _080364FC - b _08036596 - .align 2, 0 -_080364FC: .4byte gUnknown_8D7E29C -_08036500: - bl GetCurrentMapBattleScene - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #8 - bhi _08036540 - lsls r0, r0, #2 - ldr r1, _08036518 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08036518: .4byte _0803651C -_0803651C: @ jump table - .4byte _08036540 @ case 0 - .4byte _0803655C @ case 1 - .4byte _08036564 @ case 2 - .4byte _0803656C @ case 3 - .4byte _08036574 @ case 4 - .4byte _0803657C @ case 5 - .4byte _08036584 @ case 6 - .4byte _0803658C @ case 7 - .4byte _08036594 @ case 8 -_08036540: - ldr r2, _08036554 - ldr r0, _08036558 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x10 - adds r0, r0, r2 - ldr r0, [r0] - b _08036596 - .align 2, 0 -_08036554: .4byte gUnknown_82EBA00 -_08036558: .4byte gUnknown_2022C94 -_0803655C: - ldr r0, _08036560 - b _08036596 - .align 2, 0 -_08036560: .4byte gUnknown_8D7E02C -_08036564: - ldr r0, _08036568 - b _08036596 - .align 2, 0 -_08036568: .4byte gUnknown_8D7E104 -_0803656C: - ldr r0, _08036570 - b _08036596 - .align 2, 0 -_08036570: .4byte gUnknown_8D7E0A4 -_08036574: - ldr r0, _08036578 - b _08036596 - .align 2, 0 -_08036578: .4byte gUnknown_8D7E170 -_0803657C: - ldr r0, _08036580 - b _08036596 - .align 2, 0 -_08036580: .4byte gUnknown_8D7E1C0 -_08036584: - ldr r0, _08036588 - b _08036596 - .align 2, 0 -_08036588: .4byte gUnknown_8D7E208 -_0803658C: - ldr r0, _08036590 - b _08036596 - .align 2, 0 -_08036590: .4byte gUnknown_8D7E24C -_08036594: - ldr r0, _080365A0 -_08036596: - movs r1, #0x20 - movs r2, #0x60 - bl LoadCompressedPalette - b _080365AC - .align 2, 0 -_080365A0: .4byte gUnknown_8D7CA90 -_080365A4: - bl LoadBattleMenuWindowGfx - b _080365AC -_080365AA: - movs r4, #1 -_080365AC: - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_08036224 - - thumb_func_start CB2_InitBattle -CB2_InitBattle: @ 0x080365B4 - push {lr} - bl MoveSaveBlocks_ResetHeap - bl AllocateBattleResources - bl GetSecretBaseMapName - bl AllocateMonSpritesGfx - bl sub_08185CDC - ldr r0, _080365E8 - ldr r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08036620 - movs r0, #0x80 - lsls r0, r0, #0x11 - ands r0, r1 - cmp r0, #0 - beq _080365EC - bl CB2_InitBattleInternal - b _0803660E - .align 2, 0 -_080365E8: .4byte gUnknown_2022C90 -_080365EC: - movs r0, #0x80 - lsls r0, r0, #0xf - ands r1, r0 - cmp r1, #0 - bne _08036608 - bl HandleLinkBattleSetup - ldr r0, _08036604 - bl SetMainCallback2 - b _0803660E - .align 2, 0 -_08036604: .4byte CB2_PreInitMultiBattle -_08036608: - ldr r0, _08036618 - bl SetMainCallback2 -_0803660E: - ldr r1, _0803661C - movs r0, #0 - strb r0, [r1] - b _08036624 - .align 2, 0 -_08036618: .4byte CB2_PreInitIngamePlayerPartnerBattle -_0803661C: .4byte gUnknown_2023FD6 -_08036620: - bl CB2_InitBattleInternal -_08036624: - pop {r0} - bx r0 - thumb_func_end CB2_InitBattle - - thumb_func_start CB2_InitBattleInternal -CB2_InitBattleInternal: @ 0x08036628 - push {r4, r5, lr} - sub sp, #4 - movs r0, #0 - bl SetHBlankCallback - movs r0, #0 - bl SetVBlankCallback - movs r0, #0 - str r0, [sp] - movs r1, #0xc0 - lsls r1, r1, #0x13 - ldr r2, _080366A0 - mov r0, sp - bl CpuSet - movs r0, #0x4c - movs r1, #0 - bl SetGpuReg - movs r0, #0x40 - movs r1, #0xf0 - bl SetGpuReg - ldr r1, _080366A4 - movs r0, #0x44 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0 - bl SetGpuReg - movs r0, #0x4a - movs r1, #0 - bl SetGpuReg - ldr r0, _080366A8 - movs r2, #0xf0 - strh r2, [r0] - ldr r0, _080366AC - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - beq _080366C4 - ldr r0, _080366B0 - ldrh r1, [r0] - ldr r0, _080366B4 - cmp r1, r0 - beq _080366C4 - ldr r1, _080366B8 - movs r0, #0x9f - strh r0, [r1] - ldr r0, _080366BC - strh r2, [r0] - ldr r1, _080366C0 - movs r0, #0x20 - strh r0, [r1] - b _08036712 - .align 2, 0 -_080366A0: .4byte 0x05006000 -_080366A4: .4byte 0x00005051 -_080366A8: .4byte gUnknown_2022AD8 -_080366AC: .4byte gUnknown_2022C90 -_080366B0: .4byte gUnknown_203886E -_080366B4: .4byte 0x00000C03 -_080366B8: .4byte gUnknown_2022ADA -_080366BC: .4byte gUnknown_2022ADC -_080366C0: .4byte gUnknown_2022ADE -_080366C4: - ldr r0, _0803679C - ldr r2, _080367A0 - adds r1, r2, #0 - strh r1, [r0] - bl ScanlineEffect_Clear - ldr r0, _080367A4 - movs r3, #0xf0 - movs r5, #0xf0 - lsls r5, r5, #3 - adds r2, r0, r5 - movs r1, #0x4f -_080366DC: - strh r3, [r0] - strh r3, [r2] - adds r2, #2 - adds r0, #2 - subs r1, #1 - cmp r1, #0 - bge _080366DC - movs r1, #0x50 - ldr r4, _080367A8 - ldr r0, _080367A4 - ldr r3, _080367AC - movs r5, #0x82 - lsls r5, r5, #4 - adds r2, r0, r5 - adds r0, #0xa0 -_080366FA: - strh r3, [r0] - strh r3, [r2] - adds r2, #2 - adds r0, #2 - adds r1, #1 - cmp r1, #0x9f - ble _080366FA - ldr r0, [r4] - ldr r1, [r4, #4] - ldr r2, [r4, #8] - bl ScanlineEffect_SetParams -_08036712: - bl ResetPaletteFade - ldr r0, _080367B0 - movs r1, #0 - strh r1, [r0] - ldr r0, _080367B4 - strh r1, [r0] - ldr r0, _080367B8 - strh r1, [r0] - ldr r0, _080367BC - strh r1, [r0] - ldr r0, _080367C0 - strh r1, [r0] - ldr r0, _080367C4 - strh r1, [r0] - ldr r0, _080367C8 - strh r1, [r0] - ldr r0, _080367CC - strh r1, [r0] - bl sub_080B04CC - ldr r2, _080367D0 - strb r0, [r2] - ldr r4, _080367D4 - ldr r0, [r4] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - beq _08036752 - movs r0, #8 - strb r0, [r2] -_08036752: - bl sub_08035528 - bl sub_080358F8 - bl ResetSpriteData - bl ResetTasks - bl DrawBattleEntryBackground - bl FreeAllSpritePalettes - ldr r1, _080367D8 - movs r0, #4 - strb r0, [r1] - ldr r0, _080367DC - bl SetVBlankCallback - bl SetUpBattleVarsAndBirchZigzagoon - ldr r2, [r4] - movs r1, #0xa0 - lsls r1, r1, #1 - adds r0, r2, #0 - ands r0, r1 - cmp r0, r1 - beq _08036792 - ldr r1, _080367E0 - adds r0, r2, #0 - ands r0, r1 - cmp r0, r1 - bne _080367E8 -_08036792: - ldr r0, _080367E4 - bl SetMainCallback2 - b _08036802 - .align 2, 0 -_0803679C: .4byte gUnknown_2022ADA -_080367A0: .4byte 0x00005051 -_080367A4: .4byte gUnknown_20388C8 -_080367A8: .4byte gUnknown_82EBAC8 -_080367AC: .4byte 0x0000FF10 -_080367B0: .4byte gUnknown_2022AC8 -_080367B4: .4byte gUnknown_2022ACA -_080367B8: .4byte gUnknown_2022ACC -_080367BC: .4byte gUnknown_2022ACE -_080367C0: .4byte gUnknown_2022AD0 -_080367C4: .4byte gUnknown_2022AD2 -_080367C8: .4byte gUnknown_2022AD4 -_080367CC: .4byte gUnknown_2022AD6 -_080367D0: .4byte gUnknown_2022C94 -_080367D4: .4byte gUnknown_2022C90 -_080367D8: .4byte gUnknown_30030BC -_080367DC: .4byte VBlankCB_Battle -_080367E0: .4byte 0x00400040 -_080367E4: .4byte sub_08037274 -_080367E8: - movs r0, #0x40 - ands r2, r0 - cmp r2, #0 - beq _080367FC - ldr r0, _080367F8 - bl SetMainCallback2 - b _08036802 - .align 2, 0 -_080367F8: .4byte CB2_HandleStartMultiBattle -_080367FC: - ldr r0, _08036880 - bl SetMainCallback2 -_08036802: - ldr r5, _08036884 - ldr r0, [r5] - ldr r1, _08036888 - ands r0, r1 - cmp r0, #0 - bne _0803683C - ldr r4, _0803688C - ldr r0, _08036890 - ldrh r1, [r0] - adds r0, r4, #0 - movs r2, #1 - bl sub_080382C4 - ldr r0, [r5] - movs r1, #0x80 - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - beq _08036838 - movs r1, #0x96 - lsls r1, r1, #1 - adds r0, r4, r1 - ldr r1, _08036894 - ldrh r1, [r1] - movs r2, #0 - bl sub_080382C4 -_08036838: - bl SetWildMonHeldItem -_0803683C: - ldr r1, _08036898 - ldr r2, _0803689C - adds r1, r1, r2 - ldrb r0, [r1] - movs r2, #2 - orrs r0, r2 - strb r0, [r1] - ldr r0, _080368A0 - ldr r1, [r0] - ldr r5, _080368A4 - adds r1, r1, r5 - ldrb r2, [r1] - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r4, _080368A8 - movs r0, #0xfa - lsls r0, r0, #1 - adds r5, r4, r0 -_08036864: - adds r0, r4, #0 - movs r1, #3 - bl AdjustFriendship - adds r4, #0x64 - cmp r4, r5 - ble _08036864 - movs r1, #0 - ldr r0, _080368AC - strb r1, [r0] - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08036880: .4byte CB2_HandleStartBattle -_08036884: .4byte gUnknown_2022C90 -_08036888: .4byte 0x01000002 -_0803688C: .4byte gUnknown_20243E8 -_08036890: .4byte gUnknown_203886A -_08036894: .4byte gUnknown_203886C -_08036898: .4byte gUnknown_3002360 -_0803689C: .4byte 0x00000439 -_080368A0: .4byte gUnknown_3005AF0 -_080368A4: .4byte 0x00000CA9 -_080368A8: .4byte gUnknown_2024190 -_080368AC: .4byte gUnknown_2023FD6 - thumb_func_end CB2_InitBattleInternal - - thumb_func_start sub_080368B0 -sub_080368B0: @ 0x080368B0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - movs r6, #0 - mov sb, r6 - movs r0, #0xce - lsls r0, r0, #1 - mov sl, r0 - mov r8, r6 -_080368C6: - movs r0, #0x64 - mov r4, sb - muls r4, r0, r4 - ldr r0, _08036988 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - adds r0, r4, #0 - movs r1, #0x37 - bl GetMonData - adds r1, r0, #0 - cmp r5, #0 - beq _08036942 - cmp r5, sl - beq _0803690E - cmp r7, #0 - beq _0803690E - cmp r1, #0 - bne _0803690E - movs r0, #1 - mov r2, r8 - lsls r0, r2 - orrs r6, r0 - lsls r0, r6, #0x10 - lsrs r6, r0, #0x10 -_0803690E: - cmp r5, #0 - beq _08036942 - cmp r7, #0 - beq _0803692A - cmp r5, sl - beq _0803691E - cmp r1, #0 - beq _0803692A -_0803691E: - movs r0, #2 - mov r1, r8 - lsls r0, r1 - orrs r6, r0 - lsls r0, r6, #0x10 - lsrs r6, r0, #0x10 -_0803692A: - cmp r5, #0 - beq _08036942 - cmp r5, sl - beq _08036942 - cmp r7, #0 - bne _08036942 - movs r0, #3 - mov r2, r8 - lsls r0, r2 - orrs r6, r0 - lsls r0, r6, #0x10 - lsrs r6, r0, #0x10 -_08036942: - movs r0, #2 - add r8, r0 - movs r1, #1 - add sb, r1 - mov r2, sb - cmp r2, #5 - ble _080368C6 - ldr r4, _0803698C - ldr r0, [r4] - movs r1, #0xc1 - lsls r1, r1, #1 - adds r0, r0, r1 - strb r6, [r0] - ldr r0, [r4] - ldr r5, _08036990 - adds r0, r0, r5 - lsrs r1, r6, #8 - strb r1, [r0] - ldr r0, _08036994 - bl FlagGet - ldr r1, [r4] - adds r1, r1, r5 - lsls r0, r0, #7 - ldrb r2, [r1] - orrs r0, r2 - strb r0, [r1] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08036988: .4byte gUnknown_2024190 -_0803698C: .4byte gUnknown_2024140 -_08036990: .4byte 0x00000183 -_08036994: .4byte 0x000008D2 - thumb_func_end sub_080368B0 - - thumb_func_start SetPlayerBerryDataInBattleStruct -SetPlayerBerryDataInBattleStruct: @ 0x08036998 - push {r4, r5, r6, r7, lr} - ldr r0, _08036A00 - ldr r5, [r0] - movs r0, #0xc2 - lsls r0, r0, #1 - adds r4, r5, r0 - bl IsEnigmaBerryValid - cmp r0, #1 - bne _08036A14 - movs r2, #0 - ldr r7, _08036A04 - movs r1, #0xc6 - lsls r1, r1, #1 - adds r5, r5, r1 - adds r6, r7, #0 - ldr r3, _08036A08 -_080369BA: - adds r0, r4, r2 - ldr r1, [r6] - adds r1, r1, r3 - adds r1, r1, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, #5 - ble _080369BA - adds r1, r4, r2 - movs r0, #0xff - strb r0, [r1] - movs r2, #0 - adds r3, r5, #0 - ldr r6, _08036A04 - ldr r5, _08036A0C -_080369DA: - adds r0, r3, r2 - ldr r1, [r6] - adds r1, r1, r5 - adds r1, r1, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, #0x11 - ble _080369DA - ldr r0, [r7] - ldr r1, _08036A10 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r4, #7] - ldr r0, [r7] - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - b _08036A54 - .align 2, 0 -_08036A00: .4byte gUnknown_2024140 -_08036A04: .4byte gUnknown_3005AEC -_08036A08: .4byte 0x000031F8 -_08036A0C: .4byte 0x00003214 -_08036A10: .4byte 0x00003226 -_08036A14: - movs r0, #0xaf - bl ItemIdToBerryType - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBerryInfo - adds r3, r0, #0 - movs r2, #0 - movs r0, #0xc6 - lsls r0, r0, #1 - adds r5, r5, r0 -_08036A2C: - adds r0, r4, r2 - adds r1, r3, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, #5 - ble _08036A2C - adds r1, r4, r2 - movs r0, #0xff - strb r0, [r1] - adds r0, r5, #0 - movs r2, #0 - adds r1, r0, #0 - adds r1, #0x11 -_08036A48: - strb r2, [r1] - subs r1, #1 - cmp r1, r0 - bge _08036A48 - movs r0, #0 - strb r0, [r4, #7] -_08036A54: - strb r0, [r4, #0x1a] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end SetPlayerBerryDataInBattleStruct - - thumb_func_start SetAllPlayersBerryData -SetAllPlayersBerryData: @ 0x08036A5C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _08036B14 - ldr r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08036A74 - b _08036BA0 -_08036A74: - bl IsEnigmaBerryValid - cmp r0, #1 - bne _08036B30 - movs r5, #0 - ldr r3, _08036B18 - ldr r0, _08036B1C - mov r8, r0 - adds r6, r3, #0 - mov r4, r8 - ldr r2, _08036B20 - adds r7, r3, #0 - adds r7, #0x38 -_08036A8E: - adds r1, r5, r6 - ldr r0, [r4] - adds r0, r0, r2 - adds r0, r0, r5 - ldrb r0, [r0] - strb r0, [r1] - adds r1, r5, r7 - ldr r0, [r4] - adds r0, r0, r2 - adds r0, r0, r5 - ldrb r0, [r0] - strb r0, [r1] - adds r5, #1 - cmp r5, #5 - ble _08036A8E - adds r1, r5, r3 - movs r0, #0xff - strb r0, [r1] - adds r0, r3, #0 - adds r0, #0x38 - adds r0, r5, r0 - movs r1, #1 - rsbs r1, r1, #0 - strb r1, [r0] - movs r5, #0 - adds r7, r3, #0 - adds r7, #8 - ldr r4, _08036B1C - ldr r2, _08036B24 - adds r6, r3, #0 - adds r6, #0x40 -_08036ACC: - adds r1, r5, r7 - ldr r0, [r4] - adds r0, r0, r2 - adds r0, r0, r5 - ldrb r0, [r0] - strb r0, [r1] - adds r1, r5, r6 - ldr r0, [r4] - adds r0, r0, r2 - adds r0, r0, r5 - ldrb r0, [r0] - strb r0, [r1] - adds r5, #1 - cmp r5, #0x11 - ble _08036ACC - mov r1, r8 - ldr r0, [r1] - ldr r2, _08036B28 - adds r0, r0, r2 - ldrb r1, [r0] - strb r1, [r3, #7] - ldrb r0, [r0] - adds r1, r3, #0 - adds r1, #0x3f - strb r0, [r1] - mov r4, r8 - ldr r0, [r4] - ldr r1, _08036B2C - adds r0, r0, r1 - ldrb r1, [r0] - strb r1, [r3, #0x1a] - ldrb r1, [r0] - adds r0, r3, #0 - adds r0, #0x52 - strb r1, [r0] - b _08036CF4 - .align 2, 0 -_08036B14: .4byte gUnknown_2022C90 -_08036B18: .4byte gUnknown_20240A8 -_08036B1C: .4byte gUnknown_3005AEC -_08036B20: .4byte 0x000031F8 -_08036B24: .4byte 0x00003214 -_08036B28: .4byte 0x00003226 -_08036B2C: .4byte 0x00003227 -_08036B30: - movs r0, #0xaf - bl ItemIdToBerryType - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBerryInfo - adds r6, r0, #0 - movs r5, #0 - ldr r4, _08036B9C - adds r7, r4, #0 - adds r7, #0x38 - adds r3, r4, #0 -_08036B4A: - adds r1, r5, r4 - adds r2, r6, r5 - ldrb r0, [r2] - strb r0, [r1] - adds r1, r5, r7 - ldrb r0, [r2] - strb r0, [r1] - adds r5, #1 - cmp r5, #5 - ble _08036B4A - adds r1, r5, r3 - movs r0, #0xff - strb r0, [r1] - adds r0, r3, #0 - adds r0, #0x38 - adds r0, r5, r0 - movs r1, #1 - rsbs r1, r1, #0 - strb r1, [r0] - movs r5, #0 - adds r4, r3, #0 - adds r4, #8 - movs r1, #0 - adds r2, r3, #0 - adds r2, #0x40 -_08036B7C: - adds r0, r5, r4 - strb r1, [r0] - adds r0, r5, r2 - strb r1, [r0] - adds r5, #1 - cmp r5, #0x11 - ble _08036B7C - movs r1, #0 - strb r1, [r3, #7] - adds r0, r3, #0 - adds r0, #0x3f - strb r1, [r0] - strb r1, [r3, #0x1a] - adds r0, #0x13 - strb r1, [r0] - b _08036CF4 - .align 2, 0 -_08036B9C: .4byte gUnknown_20240A8 -_08036BA0: - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08036C44 - movs r0, #0x80 - lsls r0, r0, #1 - ands r1, r0 - movs r2, #4 - mov r8, r2 - cmp r1, #0 - beq _08036BBA - movs r4, #2 - mov r8, r4 -_08036BBA: - movs r5, #0 - cmp r5, r8 - blt _08036BC2 - b _08036CF4 -_08036BC2: - ldr r0, _08036C38 - mov ip, r0 - ldr r3, _08036C3C - adds r6, r3, #0 - movs r1, #8 - adds r1, r1, r6 - mov sb, r1 -_08036BD0: - lsls r1, r5, #8 - ldr r0, _08036C40 - adds r7, r1, r0 - lsls r0, r5, #3 - subs r0, r0, r5 - lsls r0, r0, #2 - add r0, ip - ldrb r3, [r0, #0x18] - movs r4, #0 - adds r5, #1 - mov sl, r5 - lsls r1, r3, #3 - subs r0, r1, r3 - adds r5, r1, #0 - lsls r0, r0, #2 - adds r1, r0, r6 -_08036BF0: - adds r0, r7, r4 - ldrb r0, [r0] - strb r0, [r1] - adds r1, #1 - adds r4, #1 - cmp r4, #5 - ble _08036BF0 - subs r0, r5, r3 - lsls r0, r0, #2 - adds r1, r4, r0 - adds r1, r1, r6 - movs r2, #0xff - strb r2, [r1] - movs r4, #0 - mov r2, sb - adds r1, r0, r2 - adds r2, r7, #0 - adds r2, #8 -_08036C14: - adds r0, r2, r4 - ldrb r0, [r0] - strb r0, [r1] - adds r1, #1 - adds r4, #1 - cmp r4, #0x11 - ble _08036C14 - subs r0, r5, r3 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r1, [r7, #7] - strb r1, [r0, #7] - ldrb r1, [r7, #0x1a] - strb r1, [r0, #0x1a] - mov r5, sl - cmp r5, r8 - blt _08036BD0 - b _08036CF4 - .align 2, 0 -_08036C38: .4byte gUnknown_20226A0 -_08036C3C: .4byte gUnknown_20240A8 -_08036C40: .4byte gUnknown_2022080 -_08036C44: - movs r5, #0 - ldr r4, _08036D04 - mov sb, r4 -_08036C4A: - lsls r0, r5, #8 - ldr r1, _08036D08 - adds r7, r0, r1 - movs r4, #0 - adds r2, r5, #1 - mov sl, r2 - lsls r0, r5, #3 - mov r8, r0 - adds r1, r5, #2 - mov ip, r1 - subs r1, r0, r5 - mov r2, ip - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - mov r2, sb - adds r3, r0, r2 - lsls r1, r1, #2 - adds r2, r1, r2 -_08036C70: - adds r0, r7, r4 - ldrb r1, [r0] - strb r1, [r2] - ldrb r0, [r0] - strb r0, [r3] - adds r3, #1 - adds r2, #1 - adds r4, #1 - cmp r4, #5 - ble _08036C70 - mov r0, r8 - subs r3, r0, r5 - lsls r3, r3, #2 - adds r1, r4, r3 - add r1, sb - ldrb r0, [r1] - movs r2, #0xff - orrs r0, r2 - strb r0, [r1] - mov r0, ip - lsls r2, r0, #3 - subs r2, r2, r0 - lsls r2, r2, #2 - adds r1, r4, r2 - add r1, sb - ldrb r0, [r1] - movs r4, #0xff - orrs r0, r4 - strb r0, [r1] - movs r4, #0 - ldr r0, _08036D04 - adds r0, #8 - adds r2, r2, r0 - adds r3, r3, r0 - adds r6, r7, #0 - adds r6, #8 -_08036CB8: - adds r0, r6, r4 - ldrb r1, [r0] - strb r1, [r3] - ldrb r0, [r0] - strb r0, [r2] - adds r2, #1 - adds r3, #1 - adds r4, #1 - cmp r4, #0x11 - ble _08036CB8 - mov r0, r8 - subs r2, r0, r5 - lsls r2, r2, #2 - add r2, sb - ldrb r0, [r7, #7] - strb r0, [r2, #7] - mov r1, ip - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - add r0, sb - ldrb r1, [r7, #7] - strb r1, [r0, #7] - ldrb r1, [r7, #0x1a] - strb r1, [r2, #0x1a] - ldrb r1, [r7, #0x1a] - strb r1, [r0, #0x1a] - mov r5, sl - cmp r5, #1 - ble _08036C4A -_08036CF4: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08036D04: .4byte gUnknown_20240A8 -_08036D08: .4byte gUnknown_2022080 - thumb_func_end SetAllPlayersBerryData - - thumb_func_start sub_08036D0C -sub_08036D0C: @ 0x08036D0C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - movs r6, #0 - ldr r0, _08036D38 - ldrh r2, [r0] - movs r1, #0x80 - lsls r1, r1, #1 - mov ip, r0 - cmp r2, r1 - bne _08036D50 - cmp r3, #0 - bne _08036D40 - ldr r0, _08036D3C - ldr r1, [r0] - movs r2, #0xc - b _08036D46 - .align 2, 0 -_08036D38: .4byte gUnknown_202207C -_08036D3C: .4byte gUnknown_2022C90 -_08036D40: - ldr r0, _08036D84 - ldr r1, [r0] - movs r2, #8 -_08036D46: - orrs r1, r2 - str r1, [r0] - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_08036D50: - cmp r6, #0 - bne _08036DF4 - movs r2, #0 - cmp r2, r4 - bge _08036D74 - ldr r1, _08036D88 - mov r8, r1 - movs r5, #0x80 - lsls r5, r5, #1 -_08036D62: - adds r1, r1, r5 - adds r2, #1 - cmp r2, r4 - bge _08036D74 - mov r7, r8 - ldrh r0, [r7] - ldrh r7, [r1] - cmp r0, r7 - beq _08036D62 -_08036D74: - cmp r2, r4 - bne _08036D9C - cmp r3, #0 - bne _08036D8C - ldr r0, _08036D84 - ldr r1, [r0] - movs r2, #0xc - b _08036D92 - .align 2, 0 -_08036D84: .4byte gUnknown_2022C90 -_08036D88: .4byte gUnknown_202207C -_08036D8C: - ldr r0, _08036DE8 - ldr r1, [r0] - movs r2, #8 -_08036D92: - orrs r1, r2 - str r1, [r0] - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_08036D9C: - cmp r6, #0 - bne _08036DF4 - movs r2, #0 - ldr r5, _08036DE8 - cmp r2, r4 - bge _08036DDE - mov r0, ip - ldrh r1, [r0] - movs r0, #0xc0 - lsls r0, r0, #2 - cmp r1, r0 - beq _08036DD6 -_08036DB4: - lsls r0, r2, #8 - add r0, ip - ldrh r0, [r0] - movs r1, #0xc0 - lsls r1, r1, #2 - cmp r0, r1 - bls _08036DC6 - cmp r2, r3 - bne _08036DDE -_08036DC6: - adds r2, #1 - cmp r2, r4 - bge _08036DDE - lsls r0, r2, #8 - add r0, ip - ldrh r0, [r0] - cmp r0, r1 - bne _08036DB4 -_08036DD6: - cmp r2, r3 - beq _08036DB4 - cmp r2, r3 - bge _08036DB4 -_08036DDE: - cmp r2, r4 - bne _08036DEC - ldr r0, [r5] - movs r1, #0xc - b _08036DF0 - .align 2, 0 -_08036DE8: .4byte gUnknown_2022C90 -_08036DEC: - ldr r0, [r5] - movs r1, #8 -_08036DF0: - orrs r0, r1 - str r0, [r5] -_08036DF4: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08036D0C - - thumb_func_start CB2_HandleStartBattle -CB2_HandleStartBattle: @ 0x08036E00 - push {r4, r5, r6, lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _08036E38 - adds r0, #0x25 - strb r5, [r0] - movs r0, #1 - adds r4, r5, #0 - eors r4, r0 - ldr r0, _08036E3C - ldrb r0, [r0] - cmp r0, #0x12 - bls _08036E2C - b _08037268 -_08036E2C: - lsls r0, r0, #2 - ldr r1, _08036E40 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08036E38: .4byte gUnknown_2024118 -_08036E3C: .4byte gUnknown_2023FD6 -_08036E40: .4byte _08036E44 -_08036E44: @ jump table - .4byte _08036E90 @ case 0 - .4byte _08036ED4 @ case 1 - .4byte _08036F98 @ case 2 - .4byte _0803702C @ case 3 - .4byte _08037054 @ case 4 - .4byte _08037248 @ case 5 - .4byte _08037254 @ case 6 - .4byte _08037084 @ case 7 - .4byte _080370AC @ case 8 - .4byte _08037248 @ case 9 - .4byte _08037254 @ case 10 - .4byte _080370DC @ case 11 - .4byte _08037104 @ case 12 - .4byte _08037248 @ case 13 - .4byte _08037254 @ case 14 - .4byte _08037134 @ case 15 - .4byte _08037194 @ case 16 - .4byte _080371BC @ case 17 - .4byte _080371FC @ case 18 -_08036E90: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08036EBC - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg - bl sub_0805EB30 - ldr r1, _08036ECC - movs r0, #1 - strb r0, [r1] -_08036EBC: - ldr r0, _08036ED0 - ldrb r0, [r0] - cmp r0, #0 - bne _08036EC6 - b _08037268 -_08036EC6: - bl LoadWirelessStatusIndicatorSpriteGfx - b _08037268 - .align 2, 0 -_08036ECC: .4byte gUnknown_2023FD6 -_08036ED0: .4byte gUnknown_300319C -_08036ED4: - ldr r2, _08036F58 - ldr r1, [r2] - movs r6, #2 - adds r0, r1, #0 - ands r0, r6 - cmp r0, #0 - beq _08036F78 - ldr r0, _08036F5C - ldrb r0, [r0] - cmp r0, #0 - bne _08036EEC - b _08037268 -_08036EEC: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08036F42 - ldr r4, _08036F60 - ldr r0, [r4] - movs r5, #0xc0 - lsls r5, r5, #1 - adds r0, r0, r5 - movs r1, #0 - strb r1, [r0] - ldr r0, [r4] - ldr r2, _08036F64 - adds r1, r0, r2 - movs r0, #3 - strb r0, [r1] - bl sub_080368B0 - bl SetPlayerBerryDataInBattleStruct - ldr r0, _08036F68 - ldrh r1, [r0] - movs r0, #0xc0 - lsls r0, r0, #4 - cmp r1, r0 - bne _08036F2C - ldr r0, _08036F6C - movs r1, #0 - strh r1, [r0, #0x18] - movs r1, #1 - strh r1, [r0, #0x34] -_08036F2C: - bl bitmask_all_link_players_but_self - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, [r4] - adds r1, r1, r5 - movs r2, #0x20 - bl SendBlock - ldr r0, _08036F70 - strb r6, [r0] -_08036F42: - ldr r0, _08036F74 - ldrb r0, [r0] - cmp r0, #0 - bne _08036F4C - b _08037268 -_08036F4C: - movs r0, #0 - movs r1, #0 - bl CreateWirelessStatusIndicatorSprite - b _08037268 - .align 2, 0 -_08036F58: .4byte gUnknown_2022C90 -_08036F5C: .4byte gUnknown_30031C4 -_08036F60: .4byte gUnknown_2024140 -_08036F64: .4byte 0x00000181 -_08036F68: .4byte gUnknown_203886A -_08036F6C: .4byte gUnknown_20226A0 -_08036F70: .4byte gUnknown_2023FD6 -_08036F74: .4byte gUnknown_300319C -_08036F78: - movs r0, #0x80 - lsls r0, r0, #0x11 - ands r0, r1 - cmp r0, #0 - bne _08036F88 - movs r0, #4 - orrs r1, r0 - str r1, [r2] -_08036F88: - ldr r1, _08036F94 - movs r0, #0xf - strb r0, [r1] - bl SetAllPlayersBerryData - b _08037268 - .align 2, 0 -_08036F94: .4byte gUnknown_2023FD6 -_08036F98: - bl GetBlockReceivedStatus - movs r1, #3 - ands r1, r0 - cmp r1, #3 - beq _08036FA6 - b _08037268 -_08036FA6: - bl ResetBlockReceivedFlags - movs r0, #2 - adds r1, r5, #0 - bl sub_08036D0C - bl SetAllPlayersBerryData - ldr r0, _08037018 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0803701C - lsls r2, r0, #2 - adds r2, r2, r0 - lsls r2, r2, #3 - adds r2, r2, r1 - movs r1, #0 - movs r0, #0x87 - lsls r0, r0, #1 - strh r0, [r2, #0xa] - movs r0, #0x5a - strh r0, [r2, #0xc] - strh r1, [r2, #0x12] - ldr r0, _08037020 - ldr r3, [r0] - movs r6, #0xc1 - lsls r6, r6, #1 - adds r0, r3, r6 - ldrb r1, [r0] - adds r6, #1 - adds r0, r3, r6 - ldrb r0, [r0] - lsls r0, r0, #8 - orrs r1, r0 - strh r1, [r2, #0xe] - ldr r1, _08037024 - lsls r4, r4, #8 - adds r1, #2 - adds r4, r4, r1 - ldrh r0, [r4] - strh r0, [r2, #0x10] - lsls r0, r5, #8 - adds r0, r0, r1 - ldrh r0, [r0] - bl sub_08185CE8 - ldrh r0, [r4] - bl sub_08185CE8 - bl SetDeoxysStats - ldr r1, _08037028 - b _08037262 - .align 2, 0 -_08037018: .4byte UpdateFastPaletteFade -_0803701C: .4byte gUnknown_3005B60 -_08037020: .4byte gUnknown_2024140 -_08037024: .4byte gUnknown_202207C -_08037028: .4byte gUnknown_2023FD6 -_0803702C: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08037038 - b _08037268 -_08037038: - bl bitmask_all_link_players_but_self - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0803704C - movs r2, #0xc8 - bl SendBlock - ldr r1, _08037050 - b _08037262 - .align 2, 0 -_0803704C: .4byte gUnknown_2024190 -_08037050: .4byte gUnknown_2023FD6 -_08037054: - bl GetBlockReceivedStatus - movs r1, #3 - ands r1, r0 - cmp r1, #3 - beq _08037062 - b _08037268 -_08037062: - bl ResetBlockReceivedFlags - ldr r0, _08037078 - lsls r1, r4, #8 - ldr r2, _0803707C - adds r1, r1, r2 - movs r2, #0xc8 - bl memcpy - ldr r1, _08037080 - b _08037262 - .align 2, 0 -_08037078: .4byte gUnknown_20243E8 -_0803707C: .4byte gUnknown_202207C -_08037080: .4byte gUnknown_2023FD6 -_08037084: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08037090 - b _08037268 -_08037090: - bl bitmask_all_link_players_but_self - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080370A4 - movs r2, #0xc8 - bl SendBlock - ldr r1, _080370A8 - b _08037262 - .align 2, 0 -_080370A4: .4byte gUnknown_2024258 -_080370A8: .4byte gUnknown_2023FD6 -_080370AC: - bl GetBlockReceivedStatus - movs r1, #3 - ands r1, r0 - cmp r1, #3 - beq _080370BA - b _08037268 -_080370BA: - bl ResetBlockReceivedFlags - ldr r0, _080370D0 - lsls r1, r4, #8 - ldr r2, _080370D4 - adds r1, r1, r2 - movs r2, #0xc8 - bl memcpy - ldr r1, _080370D8 - b _08037262 - .align 2, 0 -_080370D0: .4byte gUnknown_20244B0 -_080370D4: .4byte gUnknown_202207C -_080370D8: .4byte gUnknown_2023FD6 -_080370DC: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080370E8 - b _08037268 -_080370E8: - bl bitmask_all_link_players_but_self - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080370FC - movs r2, #0xc8 - bl SendBlock - ldr r1, _08037100 - b _08037262 - .align 2, 0 -_080370FC: .4byte gUnknown_2024320 -_08037100: .4byte gUnknown_2023FD6 -_08037104: - bl GetBlockReceivedStatus - movs r1, #3 - ands r1, r0 - cmp r1, #3 - beq _08037112 - b _08037268 -_08037112: - bl ResetBlockReceivedFlags - ldr r0, _08037128 - lsls r1, r4, #8 - ldr r2, _0803712C - adds r1, r1, r2 - movs r2, #0xc8 - bl memcpy - ldr r1, _08037130 - b _08037262 - .align 2, 0 -_08037128: .4byte gUnknown_2024578 -_0803712C: .4byte gUnknown_202207C -_08037130: .4byte gUnknown_2023FD6 -_08037134: - bl sub_08032600 - bl sub_08184D04 - ldr r2, _0803717C - movs r0, #0 - strb r0, [r2, #1] - strb r0, [r2, #2] - ldr r0, _08037180 - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _0803718E - movs r3, #0 - ldr r1, _08037184 - ldrb r0, [r1] - adds r5, r2, #0 - cmp r0, #3 - bne _08037172 - movs r4, #0xff - adds r2, r1, #0 -_08037160: - adds r2, #0x1c - adds r3, #1 - cmp r3, #1 - bgt _08037172 - ldrh r1, [r2] - adds r0, r4, #0 - ands r0, r1 - cmp r0, #3 - beq _08037160 -_08037172: - cmp r3, #2 - bne _08037188 - movs r0, #0x10 - strb r0, [r5] - b _08037268 - .align 2, 0 -_0803717C: .4byte gUnknown_2023FD6 -_08037180: .4byte gUnknown_2022C90 -_08037184: .4byte gUnknown_20226A0 -_08037188: - movs r0, #0x12 - strb r0, [r5] - b _08037268 -_0803718E: - movs r0, #0x12 - strb r0, [r2] - b _08037268 -_08037194: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08037268 - bl bitmask_all_link_players_but_self - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080371B4 - movs r2, #4 - bl SendBlock - ldr r1, _080371B8 - b _08037262 - .align 2, 0 -_080371B4: .4byte gUnknown_203B9F8 -_080371B8: .4byte gUnknown_2023FD6 -_080371BC: - bl GetBlockReceivedStatus - movs r1, #3 - ands r1, r0 - cmp r1, #3 - bne _08037268 - bl ResetBlockReceivedFlags - ldr r0, _080371EC - ldr r0, [r0] - movs r1, #4 - ands r0, r1 - cmp r0, #0 - bne _080371E6 - ldr r0, _080371F0 - lsls r1, r4, #8 - ldr r2, _080371F4 - adds r1, r1, r2 - movs r2, #4 - bl memcpy -_080371E6: - ldr r1, _080371F8 - b _08037262 - .align 2, 0 -_080371EC: .4byte gUnknown_2022C90 -_080371F0: .4byte gUnknown_203B9F8 -_080371F4: .4byte gUnknown_202207C -_080371F8: .4byte gUnknown_2023FD6 -_080371FC: - ldr r0, _08037230 - adds r1, r0, #1 - bl BattleInitAllSprites - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08037268 - ldr r2, _08037234 - ldr r1, _08037238 - ldr r0, [r1] - str r0, [r2] - ldr r0, _0803723C - str r0, [r1] - ldr r0, _08037240 - bl SetMainCallback2 - ldr r2, _08037244 - ldr r1, [r2] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08037268 - movs r0, #0x20 - orrs r1, r0 - str r1, [r2] - b _08037268 - .align 2, 0 -_08037230: .4byte gUnknown_2023FD7 -_08037234: .4byte gUnknown_3005A60 -_08037238: .4byte gUnknown_3002360 -_0803723C: .4byte sub_08039B34 -_08037240: .4byte BattleMainCB2 -_08037244: .4byte gUnknown_2022C90 -_08037248: - ldr r0, _08037270 - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - movs r1, #1 - strb r1, [r0, #1] -_08037254: - ldr r1, _08037270 - ldrb r0, [r1, #1] - subs r0, #1 - strb r0, [r1, #1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08037268 -_08037262: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_08037268: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08037270: .4byte gUnknown_2023FD6 - thumb_func_end CB2_HandleStartBattle - - thumb_func_start sub_08037274 -sub_08037274: @ 0x08037274 - push {r4, r5, r6, r7, lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _080372AC - adds r0, #0x25 - strb r6, [r0] - movs r0, #1 - adds r7, r6, #0 - eors r7, r0 - ldr r0, _080372B0 - ldrb r0, [r0] - cmp r0, #0x10 - bls _080372A0 - b _08037752 -_080372A0: - lsls r0, r0, #2 - ldr r1, _080372B4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080372AC: .4byte gUnknown_2024118 -_080372B0: .4byte gUnknown_2023FD6 -_080372B4: .4byte _080372B8 -_080372B8: @ jump table - .4byte _080372FC @ case 0 - .4byte _08037334 @ case 1 - .4byte _08037414 @ case 2 - .4byte _08037468 @ case 3 - .4byte _0803748C @ case 4 - .4byte _08037508 @ case 5 - .4byte _0803752C @ case 6 - .4byte _080375A8 @ case 7 - .4byte _080375C4 @ case 8 - .4byte _080375F4 @ case 9 - .4byte _08037610 @ case 10 - .4byte _0803763C @ case 11 - .4byte _08037658 @ case 12 - .4byte _08037684 @ case 13 - .4byte _080376B6 @ case 14 - .4byte _080376D8 @ case 15 - .4byte _0803771C @ case 16 -_080372FC: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08037328 - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg - bl sub_0805EB30 - ldr r1, _080373D0 - movs r0, #1 - strb r0, [r1] -_08037328: - ldr r0, _080373D4 - ldrb r0, [r0] - cmp r0, #0 - beq _08037334 - bl LoadWirelessStatusIndicatorSpriteGfx -_08037334: - ldr r2, _080373D8 - ldr r1, [r2] - movs r3, #2 - adds r0, r1, #0 - ands r0, r3 - cmp r0, #0 - beq _080373F4 - ldr r0, _080373DC - ldrb r0, [r0] - cmp r0, #0 - bne _0803734C - b _08037752 -_0803734C: - ldr r4, _080373E0 - movs r0, #0 - strh r0, [r4, #0x18] - strh r3, [r4, #0x34] - adds r1, r4, #0 - adds r1, #0x50 - movs r0, #1 - strh r0, [r1] - adds r1, #0x1c - movs r0, #3 - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x40 - ldr r1, _080373E4 - ldrh r1, [r1] - bl sub_08162D24 - adds r0, r4, #0 - adds r0, #0x5c - ldr r1, _080373E8 - ldrh r1, [r1] - bl sub_08162D24 - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080373BC - ldr r4, _080373EC - ldr r0, [r4] - movs r5, #0xc0 - lsls r5, r5, #1 - adds r0, r0, r5 - movs r1, #0 - strb r1, [r0] - ldr r0, [r4] - ldr r2, _080373F0 - adds r1, r0, r2 - movs r0, #3 - strb r0, [r1] - bl sub_080368B0 - bl SetPlayerBerryDataInBattleStruct - bl bitmask_all_link_players_but_self - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, [r4] - adds r1, r1, r5 - movs r2, #0x20 - bl SendBlock - ldr r1, _080373D0 - movs r0, #2 - strb r0, [r1] -_080373BC: - ldr r0, _080373D4 - ldrb r0, [r0] - cmp r0, #0 - bne _080373C6 - b _08037752 -_080373C6: - movs r0, #0 - movs r1, #0 - bl CreateWirelessStatusIndicatorSprite - b _08037752 - .align 2, 0 -_080373D0: .4byte gUnknown_2023FD6 -_080373D4: .4byte gUnknown_300319C -_080373D8: .4byte gUnknown_2022C90 -_080373DC: .4byte gUnknown_30031C4 -_080373E0: .4byte gUnknown_20226A0 -_080373E4: .4byte gUnknown_203886A -_080373E8: .4byte gUnknown_203886C -_080373EC: .4byte gUnknown_2024140 -_080373F0: .4byte 0x00000181 -_080373F4: - movs r0, #0x80 - lsls r0, r0, #0x11 - ands r0, r1 - cmp r0, #0 - bne _08037404 - movs r0, #4 - orrs r1, r0 - str r1, [r2] -_08037404: - ldr r1, _08037410 - movs r0, #0xd - strb r0, [r1] - bl SetAllPlayersBerryData - b _08037752 - .align 2, 0 -_08037410: .4byte gUnknown_2023FD6 -_08037414: - bl GetBlockReceivedStatus - movs r1, #3 - ands r1, r0 - cmp r1, #3 - beq _08037422 - b _08037752 -_08037422: - bl ResetBlockReceivedFlags - movs r0, #2 - adds r1, r6, #0 - bl sub_08036D0C - bl SetAllPlayersBerryData - ldr r0, _08037460 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08037464 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r2, #0 - movs r0, #0x87 - lsls r0, r0, #1 - strh r0, [r1, #0xa] - movs r0, #0x5a - strh r0, [r1, #0xc] - strh r2, [r1, #0x12] - adds r0, #0xeb - strh r0, [r1, #0xe] - strh r0, [r1, #0x10] - b _08037702 - .align 2, 0 -_08037460: .4byte UpdateFastPaletteFade -_08037464: .4byte gUnknown_3005B60 -_08037468: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08037474 - b _08037752 -_08037474: - bl bitmask_all_link_players_but_self - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08037488 -_0803747E: - movs r2, #0xc8 - bl SendBlock - b _08037702 - .align 2, 0 -_08037488: .4byte gUnknown_2024190 -_0803748C: - bl GetBlockReceivedStatus - movs r1, #3 - ands r1, r0 - cmp r1, #3 - beq _0803749A - b _08037752 -_0803749A: - bl ResetBlockReceivedFlags - ldr r0, _080374D4 - lsls r1, r6, #3 - subs r1, r1, r6 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r0, [r1, #0x18] - cmp r0, #0 - beq _080374E0 - ldr r4, _080374D8 - lsls r1, r7, #8 - ldr r5, _080374DC - adds r1, r1, r5 - adds r0, r4, #0 - movs r2, #0xc8 - bl memcpy - movs r0, #0x96 - lsls r0, r0, #1 - adds r4, r4, r0 - lsls r1, r6, #8 - adds r1, r1, r5 - adds r0, r4, #0 - movs r2, #0xc8 - bl memcpy - b _08037702 - .align 2, 0 -_080374D4: .4byte gUnknown_20226A0 -_080374D8: .4byte gUnknown_2024190 -_080374DC: .4byte gUnknown_202207C -_080374E0: - ldr r4, _08037500 - lsls r1, r6, #8 - ldr r5, _08037504 - adds r1, r1, r5 - adds r0, r4, #0 - movs r2, #0xc8 - bl memcpy - movs r2, #0x96 - lsls r2, r2, #1 - adds r4, r4, r2 - lsls r1, r7, #8 - adds r1, r1, r5 - adds r0, r4, #0 - movs r2, #0xc8 - b _080376FE - .align 2, 0 -_08037500: .4byte gUnknown_2024190 -_08037504: .4byte gUnknown_202207C -_08037508: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08037514 - b _08037752 -_08037514: - bl bitmask_all_link_players_but_self - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08037528 - movs r2, #0x64 - bl SendBlock - b _08037702 - .align 2, 0 -_08037528: .4byte gUnknown_2024258 -_0803752C: - bl GetBlockReceivedStatus - movs r1, #3 - ands r1, r0 - cmp r1, #3 - beq _0803753A - b _08037752 -_0803753A: - bl ResetBlockReceivedFlags - ldr r0, _08037574 - lsls r1, r6, #3 - subs r1, r1, r6 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r0, [r1, #0x18] - cmp r0, #0 - beq _08037580 - ldr r4, _08037578 - lsls r1, r7, #8 - ldr r5, _0803757C - adds r1, r1, r5 - adds r0, r4, #0 - movs r2, #0x64 - bl memcpy - movs r0, #0x96 - lsls r0, r0, #1 - adds r4, r4, r0 - lsls r1, r6, #8 - adds r1, r1, r5 - adds r0, r4, #0 - movs r2, #0x64 - bl memcpy - b _08037702 - .align 2, 0 -_08037574: .4byte gUnknown_20226A0 -_08037578: .4byte gUnknown_2024258 -_0803757C: .4byte gUnknown_202207C -_08037580: - ldr r4, _080375A0 - lsls r1, r6, #8 - ldr r5, _080375A4 - adds r1, r1, r5 - adds r0, r4, #0 - movs r2, #0x64 - bl memcpy - movs r2, #0x96 - lsls r2, r2, #1 - adds r4, r4, r2 - lsls r1, r7, #8 - adds r1, r1, r5 - adds r0, r4, #0 - movs r2, #0x64 - b _080376FE - .align 2, 0 -_080375A0: .4byte gUnknown_2024258 -_080375A4: .4byte gUnknown_202207C -_080375A8: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080375B4 - b _08037752 -_080375B4: - bl bitmask_all_link_players_but_self - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080375C0 - b _0803747E - .align 2, 0 -_080375C0: .4byte gUnknown_20243E8 -_080375C4: - bl GetBlockReceivedStatus - movs r1, #3 - ands r1, r0 - cmp r1, #3 - beq _080375D2 - b _08037752 -_080375D2: - bl ResetBlockReceivedFlags - bl GetMultiplayerId - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080375E2 - b _08037702 -_080375E2: - ldr r0, _080375EC - ldr r1, _080375F0 - movs r2, #0xc8 - b _080376FE - .align 2, 0 -_080375EC: .4byte gUnknown_20243E8 -_080375F0: .4byte gUnknown_202207C -_080375F4: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08037600 - b _08037752 -_08037600: - bl bitmask_all_link_players_but_self - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0803760C - b _0803747E - .align 2, 0 -_0803760C: .4byte gUnknown_20244B0 -_08037610: - bl GetBlockReceivedStatus - movs r1, #3 - ands r1, r0 - cmp r1, #3 - beq _0803761E - b _08037752 -_0803761E: - bl ResetBlockReceivedFlags - bl GetMultiplayerId - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08037702 - ldr r0, _08037634 - ldr r1, _08037638 - movs r2, #0xc8 - b _080376FE - .align 2, 0 -_08037634: .4byte gUnknown_20244B0 -_08037638: .4byte gUnknown_202207C -_0803763C: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08037648 - b _08037752 -_08037648: - bl bitmask_all_link_players_but_self - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08037654 - b _0803747E - .align 2, 0 -_08037654: .4byte gUnknown_2024578 -_08037658: - bl GetBlockReceivedStatus - movs r1, #3 - ands r1, r0 - cmp r1, #3 - bne _08037752 - bl ResetBlockReceivedFlags - bl GetMultiplayerId - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08037702 - ldr r0, _0803767C - ldr r1, _08037680 - movs r2, #0xc8 - b _080376FE - .align 2, 0 -_0803767C: .4byte gUnknown_2024578 -_08037680: .4byte gUnknown_202207C -_08037684: - bl sub_08032600 - bl sub_08184D04 - ldr r2, _080376A8 - movs r0, #0 - strb r0, [r2, #1] - strb r0, [r2, #2] - ldr r0, _080376AC - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _080376B0 - movs r0, #0xe - strb r0, [r2] - b _08037752 - .align 2, 0 -_080376A8: .4byte gUnknown_2023FD6 -_080376AC: .4byte gUnknown_2022C90 -_080376B0: - movs r0, #0x10 - strb r0, [r2] - b _08037752 -_080376B6: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08037752 - bl bitmask_all_link_players_but_self - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080376D4 - movs r2, #4 - bl SendBlock - b _08037702 - .align 2, 0 -_080376D4: .4byte gUnknown_203B9F8 -_080376D8: - bl GetBlockReceivedStatus - movs r1, #3 - ands r1, r0 - cmp r1, #3 - bne _08037752 - bl ResetBlockReceivedFlags - ldr r0, _0803770C - ldr r0, [r0] - movs r1, #4 - ands r0, r1 - cmp r0, #0 - bne _08037702 - ldr r0, _08037710 - lsls r1, r7, #8 - ldr r2, _08037714 - adds r1, r1, r2 - movs r2, #4 -_080376FE: - bl memcpy -_08037702: - ldr r1, _08037718 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _08037752 - .align 2, 0 -_0803770C: .4byte gUnknown_2022C90 -_08037710: .4byte gUnknown_203B9F8 -_08037714: .4byte gUnknown_202207C -_08037718: .4byte gUnknown_2023FD6 -_0803771C: - ldr r0, _08037758 - adds r1, r0, #1 - bl BattleInitAllSprites - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08037752 - bl sub_08165F94 - ldr r2, _0803775C - ldr r1, _08037760 - ldr r0, [r1] - str r0, [r2] - ldr r0, _08037764 - str r0, [r1] - ldr r0, _08037768 - bl SetMainCallback2 - ldr r2, _0803776C - ldr r1, [r2] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08037752 - movs r0, #0x20 - orrs r1, r0 - str r1, [r2] -_08037752: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08037758: .4byte gUnknown_2023FD7 -_0803775C: .4byte gUnknown_3005A60 -_08037760: .4byte gUnknown_3002360 -_08037764: .4byte sub_08039B34 -_08037768: .4byte BattleMainCB2 -_0803776C: .4byte gUnknown_2022C90 - thumb_func_end sub_08037274 - - thumb_func_start sub_08037770 -sub_08037770: @ 0x08037770 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - movs r7, #0 - ldr r6, _08037820 - mov sb, r6 -_08037786: - mov r0, sl - adds r1, r7, r0 - movs r0, #0x64 - adds r4, r1, #0 - muls r4, r0, r4 - ldr r0, _08037824 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - lsls r5, r7, #5 - strh r0, [r6] - adds r0, r4, #0 - movs r1, #0xc - bl GetMonData - strh r0, [r6, #2] - movs r0, #4 - add r0, sb - mov r8, r0 - adds r2, r5, r0 - adds r0, r4, #0 - movs r1, #2 - bl GetMonData - adds r0, r4, #0 - movs r1, #0x38 - bl GetMonData - strb r0, [r6, #0xf] - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - strh r0, [r6, #0x10] - adds r0, r4, #0 - movs r1, #0x3a - bl GetMonData - strh r0, [r6, #0x12] - adds r0, r4, #0 - movs r1, #0x37 - bl GetMonData - mov r1, sb - adds r1, #0x14 - adds r5, r5, r1 - str r0, [r5] - adds r0, r4, #0 - movs r1, #0 - bl GetMonData - str r0, [r6, #0x18] - adds r0, r4, #0 - bl GetMonGender - strb r0, [r6, #0x1c] - adds r6, #0x20 - adds r7, #1 - cmp r7, #2 - ble _08037786 - ldr r0, _08037828 - ldr r0, [r0] - mov r1, r8 - subs r1, #4 - movs r2, #0x60 - bl memcpy - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08037820: .4byte gUnknown_2022C9C -_08037824: .4byte gUnknown_2024190 -_08037828: .4byte gUnknown_2022CFC - thumb_func_end sub_08037770 - - thumb_func_start CB2_PreInitMultiBattle -CB2_PreInitMultiBattle: @ 0x0803782C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - movs r0, #4 - mov sb, r0 - movs r4, #0xf - ldr r6, _08037890 - ldr r0, [r6] - movs r1, #0x80 - lsls r1, r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08037852 - movs r1, #2 - mov sb, r1 - movs r4, #3 -_08037852: - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _08037894 - adds r0, #0x25 - movs r2, #0 - mov r8, r2 - strb r7, [r0] - ldr r0, _08037898 - ldr r0, [r0] - adds r1, r0, #0 - adds r1, #0xb4 - str r1, [sp] - adds r0, #0xac - mov sl, r0 - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - ldr r5, _0803789C - ldrb r0, [r5] - cmp r0, #1 - beq _080378F4 - cmp r0, #1 - bgt _080378A0 - cmp r0, #0 - beq _080378AE - b _08037A5A - .align 2, 0 -_08037890: .4byte gUnknown_2022C90 -_08037894: .4byte gUnknown_2024118 -_08037898: .4byte gUnknown_2024140 -_0803789C: .4byte gUnknown_2023FD6 -_080378A0: - cmp r0, #2 - bne _080378A6 - b _080379B4 -_080378A6: - cmp r0, #3 - bne _080378AC - b _080379EE -_080378AC: - b _08037A5A -_080378AE: - ldr r0, _080378EC - ldrb r0, [r0] - cmp r0, #0 - bne _080378B8 - b _08037A5A -_080378B8: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080378C4 - b _08037A5A -_080378C4: - ldr r4, _080378F0 - movs r0, #0x60 - bl sub_08000BC8 - str r0, [r4] - movs r0, #0 - bl sub_08037770 - bl bitmask_all_link_players_but_self - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, [r4] - movs r2, #0x60 - bl SendBlock - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - b _08037A5A - .align 2, 0 -_080378EC: .4byte gUnknown_30031C4 -_080378F0: .4byte gUnknown_2022CFC -_080378F4: - bl GetBlockReceivedStatus - adds r1, r4, #0 - ands r1, r0 - cmp r1, r4 - beq _08037902 - b _08037A5A -_08037902: - bl ResetBlockReceivedFlags - movs r5, #0 - cmp r8, sb - bge _0803797E - lsls r0, r7, #3 - subs r0, r0, r7 - lsls r6, r0, #2 - mov r8, r5 - ldr r4, _08037940 -_08037916: - cmp r5, r7 - beq _0803796E - mov r2, sb - cmp r2, #4 - bne _08037964 - ldr r2, _08037944 - mov r1, r8 - adds r0, r1, r2 - ldrh r1, [r0, #0x18] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - bne _08037948 - adds r0, r6, r2 - ldrh r1, [r0, #0x18] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08037954 - b _0803796E - .align 2, 0 -_08037940: .4byte gUnknown_202207C -_08037944: .4byte gUnknown_20226A0 -_08037948: - adds r0, r6, r2 - ldrh r1, [r0, #0x18] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _0803796E -_08037954: - ldr r0, _08037960 - adds r1, r4, #0 - movs r2, #0x60 - bl memcpy - b _0803796E - .align 2, 0 -_08037960: .4byte gUnknown_2022C9C -_08037964: - ldr r0, _080379A0 - adds r1, r4, #0 - movs r2, #0x60 - bl memcpy -_0803796E: - movs r2, #0x80 - lsls r2, r2, #1 - adds r4, r4, r2 - movs r0, #0x1c - add r8, r0 - adds r5, #1 - cmp r5, sb - blt _08037916 -_0803797E: - ldr r1, _080379A4 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r1, _080379A8 - ldr r0, [r1, #8] - ldr r2, [sp] - str r0, [r2] - ldr r0, _080379AC - ldr r0, [r0] - mov r2, sl - str r0, [r2] - ldr r0, _080379B0 - str r0, [r1, #8] - bl sub_081B8DF0 - b _08037A5A - .align 2, 0 -_080379A0: .4byte gUnknown_2022C9C -_080379A4: .4byte gUnknown_2023FD6 -_080379A8: .4byte gUnknown_3002360 -_080379AC: .4byte gUnknown_2022C90 -_080379B0: .4byte CB2_PreInitMultiBattle -_080379B4: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08037A5A - ldr r0, _080379E0 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08037A5A - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - ldr r0, _080379E4 - ldrb r0, [r0] - cmp r0, #0 - beq _080379E8 - bl sub_0800A8D4 - b _08037A5A - .align 2, 0 -_080379E0: .4byte gUnknown_2037C74 -_080379E4: .4byte gUnknown_300319C -_080379E8: - bl sub_0800A7F8 - b _08037A5A -_080379EE: - ldr r0, _08037A24 - ldrb r0, [r0] - cmp r0, #0 - beq _08037A34 - bl sub_08010000 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08037A5A - mov r1, sl - ldr r0, [r1] - str r0, [r6] - ldr r1, _08037A28 - ldr r2, [sp] - ldr r0, [r2] - str r0, [r1, #8] - ldr r0, _08037A2C - bl SetMainCallback2 - ldr r4, _08037A30 - ldr r0, [r4] - bl Free - mov r0, r8 - str r0, [r4] - b _08037A5A - .align 2, 0 -_08037A24: .4byte gUnknown_300319C -_08037A28: .4byte gUnknown_3002360 -_08037A2C: .4byte CB2_InitBattleInternal -_08037A30: .4byte gUnknown_2022CFC -_08037A34: - ldr r0, _08037A6C - ldrb r5, [r0] - cmp r5, #0 - bne _08037A5A - mov r1, sl - ldr r0, [r1] - str r0, [r6] - ldr r1, _08037A70 - ldr r2, [sp] - ldr r0, [r2] - str r0, [r1, #8] - ldr r0, _08037A74 - bl SetMainCallback2 - ldr r4, _08037A78 - ldr r0, [r4] - bl Free - str r5, [r4] -_08037A5A: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08037A6C: .4byte gUnknown_30031C4 -_08037A70: .4byte gUnknown_3002360 -_08037A74: .4byte CB2_InitBattleInternal -_08037A78: .4byte gUnknown_2022CFC - thumb_func_end CB2_PreInitMultiBattle - - thumb_func_start CB2_PreInitIngamePlayerPartnerBattle -CB2_PreInitIngamePlayerPartnerBattle: @ 0x08037A7C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _08037AAC - ldr r0, [r0] - movs r1, #0xb4 - adds r1, r1, r0 - mov r8, r1 - adds r7, r0, #0 - adds r7, #0xac - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - ldr r5, _08037AB0 - ldrb r0, [r5] - cmp r0, #0 - beq _08037AB4 - cmp r0, #1 - beq _08037AF4 - b _08037B26 - .align 2, 0 -_08037AAC: .4byte gUnknown_2024140 -_08037AB0: .4byte gUnknown_2023FD6 -_08037AB4: - ldr r4, _08037AE4 - movs r0, #0x60 - bl sub_08000BC8 - str r0, [r4] - movs r0, #3 - bl sub_08037770 - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - ldr r1, _08037AE8 - ldr r0, [r1, #8] - mov r2, r8 - str r0, [r2] - ldr r0, _08037AEC - ldr r0, [r0] - str r0, [r7] - ldr r0, _08037AF0 - str r0, [r1, #8] - bl sub_081B8DF0 - b _08037B26 - .align 2, 0 -_08037AE4: .4byte gUnknown_2022CFC -_08037AE8: .4byte gUnknown_3002360 -_08037AEC: .4byte gUnknown_2022C90 -_08037AF0: .4byte CB2_PreInitIngamePlayerPartnerBattle -_08037AF4: - ldr r0, _08037B30 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - bne _08037B26 - movs r0, #2 - strb r0, [r5] - ldr r1, _08037B34 - ldr r0, [r7] - str r0, [r1] - ldr r1, _08037B38 - mov r2, r8 - ldr r0, [r2] - str r0, [r1, #8] - ldr r0, _08037B3C - bl SetMainCallback2 - ldr r4, _08037B40 - ldr r0, [r4] - bl Free - str r6, [r4] -_08037B26: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08037B30: .4byte gUnknown_2037C74 -_08037B34: .4byte gUnknown_2022C90 -_08037B38: .4byte gUnknown_3002360 -_08037B3C: .4byte CB2_InitBattleInternal -_08037B40: .4byte gUnknown_2022CFC - thumb_func_end CB2_PreInitIngamePlayerPartnerBattle - - thumb_func_start CB2_HandleStartMultiBattle -CB2_HandleStartMultiBattle: @ 0x08037B44 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _08037B7C - adds r0, #0x25 - strb r7, [r0] - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - ldr r0, _08037B80 - ldrb r0, [r0] - cmp r0, #0xa - bls _08037B70 - b _080380D4 -_08037B70: - lsls r0, r0, #2 - ldr r1, _08037B84 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08037B7C: .4byte gUnknown_2024118 -_08037B80: .4byte gUnknown_2023FD6 -_08037B84: .4byte _08037B88 -_08037B88: @ jump table - .4byte _08037BB4 @ case 0 - .4byte _08037BF8 @ case 1 - .4byte _08037CA0 @ case 2 - .4byte _08037D76 @ case 3 - .4byte _08037D9C @ case 4 - .4byte _08037E90 @ case 5 - .4byte _08037EB4 @ case 6 - .4byte _08037FA8 @ case 7 - .4byte _08038008 @ case 8 - .4byte _08038048 @ case 9 - .4byte _08038098 @ case 10 -_08037BB4: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08037BE0 - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg - bl sub_0805EB30 - ldr r1, _08037BF0 - movs r0, #1 - strb r0, [r1] -_08037BE0: - ldr r0, _08037BF4 - ldrb r0, [r0] - cmp r0, #0 - bne _08037BEA - b _080380D4 -_08037BEA: - bl LoadWirelessStatusIndicatorSpriteGfx - b _080380D4 - .align 2, 0 -_08037BF0: .4byte gUnknown_2023FD6 -_08037BF4: .4byte gUnknown_300319C -_08037BF8: - ldr r2, _08037C68 - ldr r1, [r2] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08037C80 - ldr r0, _08037C6C - ldrb r0, [r0] - cmp r0, #0 - bne _08037C0E - b _080380D4 -_08037C0E: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08037C52 - ldr r4, _08037C70 - ldr r0, [r4] - movs r5, #0xc0 - lsls r5, r5, #1 - adds r0, r0, r5 - movs r1, #0 - strb r1, [r0] - ldr r0, [r4] - ldr r2, _08037C74 - adds r1, r0, r2 - movs r0, #3 - strb r0, [r1] - bl sub_080368B0 - bl SetPlayerBerryDataInBattleStruct - bl bitmask_all_link_players_but_self - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, [r4] - adds r1, r1, r5 - movs r2, #0x20 - bl SendBlock - ldr r1, _08037C78 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_08037C52: - ldr r0, _08037C7C - ldrb r0, [r0] - cmp r0, #0 - bne _08037C5C - b _080380D4 -_08037C5C: - movs r0, #0 - movs r1, #0 - bl CreateWirelessStatusIndicatorSprite - b _080380D4 - .align 2, 0 -_08037C68: .4byte gUnknown_2022C90 -_08037C6C: .4byte gUnknown_30031C4 -_08037C70: .4byte gUnknown_2024140 -_08037C74: .4byte 0x00000181 -_08037C78: .4byte gUnknown_2023FD6 -_08037C7C: .4byte gUnknown_300319C -_08037C80: - movs r0, #0x80 - lsls r0, r0, #0x11 - ands r0, r1 - cmp r0, #0 - bne _08037C90 - movs r0, #4 - orrs r1, r0 - str r1, [r2] -_08037C90: - ldr r1, _08037C9C - movs r0, #7 - strb r0, [r1] - bl SetAllPlayersBerryData - b _080380D4 - .align 2, 0 -_08037C9C: .4byte gUnknown_2023FD6 -_08037CA0: - bl GetBlockReceivedStatus - movs r1, #0xf - ands r1, r0 - cmp r1, #0xf - beq _08037CAE - b _080380D4 -_08037CAE: - bl ResetBlockReceivedFlags - movs r0, #4 - adds r1, r7, #0 - bl sub_08036D0C - bl SetAllPlayersBerryData - bl SetDeoxysStats - ldr r0, _08037D14 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _08037D18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #0 - movs r1, #0x87 - lsls r1, r1, #1 - strh r1, [r0, #0xa] - movs r1, #0x5a - strh r1, [r0, #0xc] - strh r2, [r0, #0x12] - strh r2, [r0, #0xe] - strh r2, [r0, #0x10] - ldr r1, _08037D1C - adds r4, r0, #0 - adds r5, r1, #2 - movs r7, #0x3f - movs r6, #3 -_08037CF4: - ldrh r0, [r5] - str r2, [sp] - bl sub_08185CE8 - ldr r0, _08037D20 - ldr r2, [sp] - adds r0, r2, r0 - ldrh r0, [r0, #0x18] - cmp r0, #1 - beq _08037D36 - cmp r0, #1 - bgt _08037D24 - cmp r0, #0 - beq _08037D2E - b _08037D5C - .align 2, 0 -_08037D14: .4byte UpdateFastPaletteFade -_08037D18: .4byte gUnknown_3005B60 -_08037D1C: .4byte gUnknown_202207C -_08037D20: .4byte gUnknown_20226A0 -_08037D24: - cmp r0, #2 - beq _08037D3E - cmp r0, #3 - beq _08037D4E - b _08037D5C -_08037D2E: - ldrh r0, [r5] - adds r1, r7, #0 - ands r1, r0 - b _08037D46 -_08037D36: - ldrh r0, [r5] - adds r1, r7, #0 - ands r1, r0 - b _08037D56 -_08037D3E: - ldrh r0, [r5] - adds r1, r7, #0 - ands r1, r0 - lsls r1, r1, #6 -_08037D46: - ldrh r0, [r4, #0xe] - orrs r1, r0 - strh r1, [r4, #0xe] - b _08037D5C -_08037D4E: - ldrh r0, [r5] - adds r1, r7, #0 - ands r1, r0 - lsls r1, r1, #6 -_08037D56: - ldrh r0, [r4, #0x10] - orrs r1, r0 - strh r1, [r4, #0x10] -_08037D5C: - movs r0, #0x80 - lsls r0, r0, #1 - adds r5, r5, r0 - adds r2, #0x1c - subs r6, #1 - cmp r6, #0 - bge _08037CF4 - bl ZeroEnemyPartyMons - ldr r1, _08037D94 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_08037D76: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08037D82 - b _080380D4 -_08037D82: - bl bitmask_all_link_players_but_self - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08037D98 - movs r2, #0xc8 - bl SendBlock - b _08038082 - .align 2, 0 -_08037D94: .4byte gUnknown_2023FD6 -_08037D98: .4byte gUnknown_2024190 -_08037D9C: - bl GetBlockReceivedStatus - movs r1, #0xf - ands r1, r0 - cmp r1, #0xf - beq _08037DAA - b _080380D4 -_08037DAA: - bl ResetBlockReceivedFlags - movs r6, #0 - lsls r0, r7, #3 - subs r0, r0, r7 - lsls r0, r0, #2 - mov r8, r0 - ldr r4, _08037DD4 - movs r5, #0 -_08037DBC: - cmp r6, r7 - bne _08037DF0 - ldr r0, _08037DD8 - adds r0, r5, r0 - ldrh r0, [r0, #0x18] - cmp r0, #2 - bgt _08037DDC - cmp r0, #1 - bge _08037DE8 - cmp r0, #0 - beq _08037DE0 - b _08037E7A - .align 2, 0 -_08037DD4: .4byte gUnknown_202207C -_08037DD8: .4byte gUnknown_20226A0 -_08037DDC: - cmp r0, #3 - bne _08037E7A -_08037DE0: - ldr r0, _08037DE4 - b _08037E60 - .align 2, 0 -_08037DE4: .4byte gUnknown_2024190 -_08037DE8: - ldr r0, _08037DEC - b _08037E60 - .align 2, 0 -_08037DEC: .4byte gUnknown_20242BC -_08037DF0: - ldr r2, _08037E10 - adds r0, r5, r2 - ldrh r1, [r0, #0x18] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - bne _08037E14 - mov r1, r8 - adds r0, r1, r2 - ldrh r1, [r0, #0x18] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08037E22 - b _08037E48 - .align 2, 0 -_08037E10: .4byte gUnknown_20226A0 -_08037E14: - mov r1, r8 - adds r0, r1, r2 - ldrh r1, [r0, #0x18] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08037E48 -_08037E22: - adds r0, r5, r2 - ldrh r0, [r0, #0x18] - cmp r0, #2 - bgt _08037E34 - cmp r0, #1 - bge _08037E40 - cmp r0, #0 - beq _08037E38 - b _08037E7A -_08037E34: - cmp r0, #3 - bne _08037E7A -_08037E38: - ldr r0, _08037E3C - b _08037E60 - .align 2, 0 -_08037E3C: .4byte gUnknown_2024190 -_08037E40: - ldr r0, _08037E44 - b _08037E60 - .align 2, 0 -_08037E44: .4byte gUnknown_20242BC -_08037E48: - adds r0, r5, r2 - ldrh r0, [r0, #0x18] - cmp r0, #2 - bgt _08037E5A - cmp r0, #1 - bge _08037E70 - cmp r0, #0 - beq _08037E5E - b _08037E7A -_08037E5A: - cmp r0, #3 - bne _08037E7A -_08037E5E: - ldr r0, _08037E6C -_08037E60: - adds r1, r4, #0 - movs r2, #0xc8 - bl memcpy - b _08037E7A - .align 2, 0 -_08037E6C: .4byte gUnknown_20243E8 -_08037E70: - ldr r0, _08037E8C - adds r1, r4, #0 - movs r2, #0xc8 - bl memcpy -_08037E7A: - movs r2, #0x80 - lsls r2, r2, #1 - adds r4, r4, r2 - adds r5, #0x1c - adds r6, #1 - cmp r6, #3 - ble _08037DBC - b _08038082 - .align 2, 0 -_08037E8C: .4byte gUnknown_2024514 -_08037E90: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08037E9C - b _080380D4 -_08037E9C: - bl bitmask_all_link_players_but_self - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08037EB0 - movs r2, #0x64 - bl SendBlock - b _08038082 - .align 2, 0 -_08037EB0: .4byte gUnknown_2024258 -_08037EB4: - bl GetBlockReceivedStatus - movs r1, #0xf - ands r1, r0 - cmp r1, #0xf - beq _08037EC2 - b _080380D4 -_08037EC2: - bl ResetBlockReceivedFlags - movs r6, #0 - lsls r0, r7, #3 - subs r0, r0, r7 - lsls r0, r0, #2 - mov r8, r0 - ldr r4, _08037EEC - movs r5, #0 -_08037ED4: - cmp r6, r7 - bne _08037F08 - ldr r0, _08037EF0 - adds r0, r5, r0 - ldrh r0, [r0, #0x18] - cmp r0, #2 - bgt _08037EF4 - cmp r0, #1 - bge _08037F00 - cmp r0, #0 - beq _08037EF8 - b _08037F92 - .align 2, 0 -_08037EEC: .4byte gUnknown_202207C -_08037EF0: .4byte gUnknown_20226A0 -_08037EF4: - cmp r0, #3 - bne _08037F92 -_08037EF8: - ldr r0, _08037EFC - b _08037F78 - .align 2, 0 -_08037EFC: .4byte gUnknown_2024258 -_08037F00: - ldr r0, _08037F04 - b _08037F78 - .align 2, 0 -_08037F04: .4byte gUnknown_2024384 -_08037F08: - ldr r2, _08037F28 - adds r0, r5, r2 - ldrh r1, [r0, #0x18] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - bne _08037F2C - mov r1, r8 - adds r0, r1, r2 - ldrh r1, [r0, #0x18] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08037F3A - b _08037F60 - .align 2, 0 -_08037F28: .4byte gUnknown_20226A0 -_08037F2C: - mov r1, r8 - adds r0, r1, r2 - ldrh r1, [r0, #0x18] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08037F60 -_08037F3A: - adds r0, r5, r2 - ldrh r0, [r0, #0x18] - cmp r0, #2 - bgt _08037F4C - cmp r0, #1 - bge _08037F58 - cmp r0, #0 - beq _08037F50 - b _08037F92 -_08037F4C: - cmp r0, #3 - bne _08037F92 -_08037F50: - ldr r0, _08037F54 - b _08037F78 - .align 2, 0 -_08037F54: .4byte gUnknown_2024258 -_08037F58: - ldr r0, _08037F5C - b _08037F78 - .align 2, 0 -_08037F5C: .4byte gUnknown_2024384 -_08037F60: - adds r0, r5, r2 - ldrh r0, [r0, #0x18] - cmp r0, #2 - bgt _08037F72 - cmp r0, #1 - bge _08037F88 - cmp r0, #0 - beq _08037F76 - b _08037F92 -_08037F72: - cmp r0, #3 - bne _08037F92 -_08037F76: - ldr r0, _08037F84 -_08037F78: - adds r1, r4, #0 - movs r2, #0x64 - bl memcpy - b _08037F92 - .align 2, 0 -_08037F84: .4byte gUnknown_20244B0 -_08037F88: - ldr r0, _08037FA4 - adds r1, r4, #0 - movs r2, #0x64 - bl memcpy -_08037F92: - movs r2, #0x80 - lsls r2, r2, #1 - adds r4, r4, r2 - adds r5, #0x1c - adds r6, #1 - cmp r6, #3 - ble _08037ED4 - b _08038082 - .align 2, 0 -_08037FA4: .4byte gUnknown_20245DC -_08037FA8: - bl sub_08032600 - bl sub_08184D04 - ldr r3, _08037FF0 - movs r0, #0 - strb r0, [r3, #1] - strb r0, [r3, #2] - ldr r0, _08037FF4 - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _08038002 - movs r6, #0 - ldr r0, _08037FF8 - ldrb r1, [r0] - adds r4, r3, #0 - adds r2, r0, #0 - cmp r1, #3 - bne _08037FE6 - movs r3, #0xff -_08037FD4: - adds r2, #0x1c - adds r6, #1 - cmp r6, #3 - bgt _08037FE6 - ldrh r1, [r2] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #3 - beq _08037FD4 -_08037FE6: - cmp r6, #4 - bne _08037FFC - movs r0, #8 - strb r0, [r4] - b _080380D4 - .align 2, 0 -_08037FF0: .4byte gUnknown_2023FD6 -_08037FF4: .4byte gUnknown_2022C90 -_08037FF8: .4byte gUnknown_20226A0 -_08037FFC: - movs r0, #0xa - strb r0, [r4] - b _080380D4 -_08038002: - movs r0, #0xa - strb r0, [r3] - b _080380D4 -_08038008: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080380D4 - ldr r0, _0803803C - ldr r4, [r0] - movs r0, #0xc0 - lsls r0, r0, #1 - adds r4, r4, r0 - ldr r0, _08038040 - ldr r0, [r0] - str r0, [r4] - ldr r0, _08038044 - ldr r0, [r0] - str r0, [r4, #4] - bl bitmask_all_link_players_but_self - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r4, #0 - movs r2, #8 - bl SendBlock - b _08038082 - .align 2, 0 -_0803803C: .4byte gUnknown_2024140 -_08038040: .4byte gUnknown_2022C90 -_08038044: .4byte gUnknown_203B9F8 -_08038048: - bl GetBlockReceivedStatus - movs r1, #0xf - ands r1, r0 - cmp r1, #0xf - bne _080380D4 - bl ResetBlockReceivedFlags - movs r2, #0 - b _08038062 -_0803805C: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 -_08038062: - cmp r2, #3 - bhi _08038082 - ldr r4, _0803808C - lsls r3, r2, #8 - adds r0, r3, r4 - ldrh r0, [r0] - movs r1, #4 - ands r0, r1 - cmp r0, #0 - beq _0803805C - adds r1, r4, #4 - adds r1, r3, r1 - ldr r0, _08038090 - movs r2, #4 - bl memcpy -_08038082: - ldr r1, _08038094 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080380D4 - .align 2, 0 -_0803808C: .4byte gUnknown_202207C -_08038090: .4byte gUnknown_203B9F8 -_08038094: .4byte gUnknown_2023FD6 -_08038098: - ldr r0, _080380E0 - adds r1, r0, #1 - bl BattleInitAllSprites - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080380D4 - ldr r2, _080380E4 - ldr r1, _080380E8 - ldr r0, [r1] - str r0, [r2] - ldr r0, _080380EC - str r0, [r1] - ldr r0, _080380F0 - bl SetMainCallback2 - ldr r3, _080380F4 - ldr r2, [r3] - movs r0, #2 - ands r0, r2 - cmp r0, #0 - beq _080380D4 - ldr r0, _080380F8 - movs r4, #0x80 - lsls r4, r4, #4 - adds r1, r4, #0 - strh r1, [r0] - movs r0, #0x20 - orrs r2, r0 - str r2, [r3] -_080380D4: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080380E0: .4byte gUnknown_2023FD7 -_080380E4: .4byte gUnknown_3005A60 -_080380E8: .4byte gUnknown_3002360 -_080380EC: .4byte sub_08039B34 -_080380F0: .4byte BattleMainCB2 -_080380F4: .4byte gUnknown_2022C90 -_080380F8: .4byte gUnknown_203886A - thumb_func_end CB2_HandleStartMultiBattle - - thumb_func_start BattleMainCB2 -BattleMainCB2: @ 0x080380FC - push {lr} - sub sp, #4 - bl AnimateSprites - bl BuildOamBuffer - bl sub_08004630 - bl UpdatePaletteFade - bl RunTasks - ldr r0, _08038164 - ldrh r1, [r0, #0x2c] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0803815E - ldr r0, _08038168 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - beq _0803815E - bl sub_081861A8 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0803815E - ldr r2, _0803816C - ldr r1, _08038170 - movs r0, #5 - strb r0, [r1] - movs r0, #5 - strh r0, [r2] - bl ResetPaletteFadeControl - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _08038174 - bl SetMainCallback2 -_0803815E: - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_08038164: .4byte gUnknown_3002360 -_08038168: .4byte gUnknown_2022C90 -_0803816C: .4byte gUnknown_2037290 -_08038170: .4byte gUnknown_2023FDE -_08038174: .4byte CB2_QuitRecordedBattle - thumb_func_end BattleMainCB2 - - thumb_func_start FreeRestoreBattleData -FreeRestoreBattleData: @ 0x08038178 - push {lr} - ldr r1, _080381B0 - ldr r0, _080381B4 - ldr r0, [r0] - str r0, [r1] - ldr r2, _080381B8 - movs r0, #3 - strb r0, [r2, #0x15] - ldr r0, _080381BC - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - bl ZeroEnemyPartyMons - movs r0, #0x5a - bl m4aSongNumStop - bl FreeMonSpritesGfx - bl FreeBattleSpritesData - bl FreeBattleResources - pop {r0} - bx r0 - .align 2, 0 -_080381B0: .4byte gUnknown_3002360 -_080381B4: .4byte gUnknown_3005A60 -_080381B8: .4byte gUnknown_20397C8 -_080381BC: .4byte 0x00000439 - thumb_func_end FreeRestoreBattleData - - thumb_func_start CB2_QuitRecordedBattle -CB2_QuitRecordedBattle: @ 0x080381C0 - push {lr} - bl UpdatePaletteFade - ldr r0, _080381F4 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080381EE - ldr r0, _080381F8 - bl m4aMPlayStop - ldr r0, _080381FC - bl m4aMPlayStop - bl FreeRestoreBattleData - bl FreeAllWindowBuffers - ldr r0, _08038200 - ldr r0, [r0, #8] - bl SetMainCallback2 -_080381EE: - pop {r0} - bx r0 - .align 2, 0 -_080381F4: .4byte gUnknown_2037C74 -_080381F8: .4byte gUnknown_3007510 -_080381FC: .4byte gUnknown_3007550 -_08038200: .4byte gUnknown_3002360 - thumb_func_end CB2_QuitRecordedBattle - - thumb_func_start sub_08038204 -sub_08038204: @ 0x08038204 - movs r1, #0 - strh r1, [r0, #0x2e] - ldr r1, _08038210 - str r1, [r0, #0x1c] - bx lr - .align 2, 0 -_08038210: .4byte sub_08038214 - thumb_func_end sub_08038204 - - thumb_func_start sub_08038214 -sub_08038214: @ 0x08038214 - push {r4, r5, lr} - adds r3, r0, #0 - ldr r5, _0803822C - movs r0, #0x2e - ldrsh r1, [r3, r0] - cmp r1, #1 - beq _08038248 - cmp r1, #1 - bgt _08038230 - cmp r1, #0 - beq _08038236 - b _080382B8 - .align 2, 0 -_0803822C: .4byte gUnknown_201C000 -_08038230: - cmp r1, #2 - beq _080382A4 - b _080382B8 -_08038236: - ldrh r0, [r3, #0x2e] - adds r0, #1 - strh r0, [r3, #0x2e] - strh r1, [r3, #0x30] - ldr r0, _080382A0 - strh r0, [r3, #0x32] - strh r1, [r3, #0x34] - movs r0, #1 - strh r0, [r3, #0x36] -_08038248: - ldrh r0, [r3, #0x36] - subs r0, #1 - strh r0, [r3, #0x36] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080382B8 - movs r0, #2 - strh r0, [r3, #0x36] - movs r4, #0x30 - ldrsh r2, [r3, r4] - movs r0, #0x34 - ldrsh r1, [r3, r0] - lsls r1, r1, #5 - adds r2, r2, r1 - movs r4, #0x32 - ldrsh r0, [r3, r4] - subs r0, r0, r1 - movs r4, #0x3d - lsls r0, r0, #1 - adds r0, r0, r5 - lsls r2, r2, #1 - adds r2, r2, r5 - movs r1, #0x1c -_08038276: - strh r4, [r2] - strh r4, [r0] - adds r0, #4 - adds r2, #4 - subs r1, #2 - cmp r1, #0 - bge _08038276 - ldrh r0, [r3, #0x34] - adds r0, #1 - strh r0, [r3, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x15 - bne _080382B8 - ldrh r0, [r3, #0x2e] - adds r0, #1 - strh r0, [r3, #0x2e] - movs r0, #0x20 - strh r0, [r3, #0x30] - b _080382B8 - .align 2, 0 -_080382A0: .4byte 0x00000281 -_080382A4: - ldrh r0, [r3, #0x30] - subs r0, #1 - strh r0, [r3, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x14 - bne _080382B8 - ldr r0, _080382C0 - bl SetMainCallback2 -_080382B8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080382C0: .4byte CB2_InitBattle - thumb_func_end sub_08038214 - - thumb_func_start sub_080382C4 -sub_080382C4: @ 0x080382C4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x24 - str r0, [sp, #0x10] - lsls r1, r1, #0x10 - lsrs r3, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r0, #0 - mov sb, r0 - movs r0, #0x80 - lsls r0, r0, #3 - cmp r3, r0 - bne _080382EA - movs r0, #0 - b _08038696 -_080382EA: - ldr r4, _08038328 - ldr r0, [r4] - ldr r1, _0803832C - ands r0, r1 - lsls r3, r3, #5 - str r3, [sp, #0x20] - cmp r0, #8 - beq _080382FC - b _0803868E -_080382FC: - cmp r2, #1 - bne _08038304 - bl ZeroEnemyPartyMons -_08038304: - ldr r0, [r4] - movs r1, #0x80 - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - beq _08038334 - ldr r0, _08038330 - ldr r1, [sp, #0x20] - adds r2, r1, r0 - ldrb r1, [r2, #0x18] - movs r3, #3 - str r3, [sp, #0x18] - adds r4, r0, #0 - cmp r1, #3 - bhi _08038340 - adds r2, r1, #0 - str r2, [sp, #0x18] - b _08038340 - .align 2, 0 -_08038328: .4byte gUnknown_2022C90 -_0803832C: .4byte 0x043F0908 -_08038330: .4byte gUnknown_82E383C -_08038334: - ldr r1, _0803835C - ldr r2, [sp, #0x20] - adds r0, r2, r1 - ldrb r0, [r0, #0x18] - str r0, [sp, #0x18] - adds r4, r1, #0 -_08038340: - movs r3, #0 - str r3, [sp, #0x14] - ldr r0, [sp, #0x18] - cmp r3, r0 - blt _0803834C - b _0803867E -_0803834C: - ldr r2, [sp, #0x20] - adds r1, r2, r4 - ldrb r0, [r1, #0x12] - cmp r0, #1 - bne _08038360 - movs r3, #0x80 - mov sl, r3 - b _08038372 - .align 2, 0 -_0803835C: .4byte gUnknown_82E383C -_08038360: - ldrb r1, [r1, #2] - movs r0, #0x80 - ands r0, r1 - movs r1, #0x88 - mov sl, r1 - cmp r0, #0 - beq _08038372 - movs r2, #0x78 - mov sl, r2 -_08038372: - movs r6, #0 - ldr r2, [sp, #0x20] - adds r1, r4, #4 - adds r0, r2, r1 - ldrb r0, [r0] - ldr r3, [sp, #0x14] - adds r3, #1 - str r3, [sp, #0x1c] - cmp r0, #0xff - beq _0803839E - adds r3, r1, #0 -_08038388: - adds r1, r2, #0 - adds r0, r6, r2 - adds r0, r0, r3 - ldrb r0, [r0] - add sb, r0 - adds r6, #1 - adds r1, r6, r1 - adds r1, r1, r3 - ldrb r0, [r1] - cmp r0, #0xff - bne _08038388 -_0803839E: - ldr r1, [sp, #0x20] - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, #1 - beq _0803844C - cmp r0, #1 - bgt _080383B2 - cmp r0, #0 - beq _080383C0 - b _08038670 -_080383B2: - cmp r0, #2 - bne _080383B8 - b _08038510 -_080383B8: - cmp r0, #3 - bne _080383BE - b _080385A8 -_080383BE: - b _08038670 -_080383C0: - adds r0, r4, #0 - adds r0, #0x1c - ldr r2, [sp, #0x20] - adds r0, r2, r0 - ldr r4, [r0] - movs r6, #0 - ldr r3, [sp, #0x14] - lsls r2, r3, #3 - adds r0, r2, r4 - ldrh r1, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r1, _08038448 - adds r0, r0, r1 - ldrb r0, [r0] - adds r5, r2, #0 - cmp r0, #0xff - beq _08038406 - adds r3, r1, #0 -_080383E8: - adds r0, r2, r4 - ldrh r0, [r0, #4] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - adds r0, r6, r1 - adds r0, r0, r3 - ldrb r0, [r0] - add sb, r0 - adds r6, #1 - adds r1, r6, r1 - adds r1, r1, r3 - ldrb r0, [r1] - cmp r0, #0xff - bne _080383E8 -_08038406: - mov r2, sb - lsls r0, r2, #8 - add sl, r0 - adds r4, r5, r4 - ldrh r1, [r4] - lsls r0, r1, #5 - subs r0, r0, r1 - movs r1, #0xff - bl __divsi3 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r3, [sp, #0x14] - movs r1, #0x64 - adds r0, r3, #0 - muls r0, r1, r0 - ldr r2, [sp, #0x10] - adds r0, r2, r0 - ldrh r1, [r4, #4] - ldrb r2, [r4, #2] - movs r3, #1 - str r3, [sp] - mov r3, sl - str r3, [sp, #4] - movs r3, #2 - str r3, [sp, #8] - movs r3, #0 - str r3, [sp, #0xc] - adds r3, r6, #0 - bl CreateMon - b _08038670 - .align 2, 0 -_08038448: .4byte gUnknown_82EA31C -_0803844C: - adds r0, r4, #0 - adds r0, #0x1c - ldr r1, [sp, #0x20] - adds r0, r1, r0 - ldr r7, [r0] - movs r6, #0 - ldr r3, [sp, #0x14] - lsls r2, r3, #4 - adds r0, r2, r7 - ldrh r1, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r1, _08038508 - adds r0, r0, r1 - ldrb r0, [r0] - mov r8, r2 - cmp r0, #0xff - beq _08038492 - adds r3, r1, #0 -_08038474: - adds r0, r2, r7 - ldrh r0, [r0, #4] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - adds r0, r6, r1 - adds r0, r0, r3 - ldrb r0, [r0] - add sb, r0 - adds r6, #1 - adds r1, r6, r1 - adds r1, r1, r3 - ldrb r0, [r1] - cmp r0, #0xff - bne _08038474 -_08038492: - mov r2, sb - lsls r0, r2, #8 - add sl, r0 - mov r3, r8 - adds r4, r3, r7 - ldrh r1, [r4] - lsls r0, r1, #5 - subs r0, r0, r1 - movs r1, #0xff - bl __divsi3 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, [sp, #0x14] - movs r1, #0x64 - adds r5, r0, #0 - muls r5, r1, r5 - ldr r2, [sp, #0x10] - adds r5, r2, r5 - ldrh r1, [r4, #4] - ldrb r2, [r4, #2] - movs r0, #1 - str r0, [sp] - mov r3, sl - str r3, [sp, #4] - movs r0, #2 - str r0, [sp, #8] - movs r0, #0 - str r0, [sp, #0xc] - adds r0, r5, #0 - adds r3, r6, #0 - bl CreateMon - movs r6, #0 - mov r0, r8 - adds r0, #6 - adds r4, r7, r0 -_080384DC: - adds r1, r6, #0 - adds r1, #0xd - adds r0, r5, #0 - adds r2, r4, #0 - bl SetMonData - adds r1, r6, #0 - adds r1, #0x11 - ldrh r0, [r4] - lsls r2, r0, #1 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r0, _0803850C - adds r2, r2, r0 - adds r0, r5, #0 - bl SetMonData - adds r4, #2 - adds r6, #1 - cmp r6, #3 - ble _080384DC - b _08038670 - .align 2, 0 -_08038508: .4byte gUnknown_82EA31C -_0803850C: .4byte gUnknown_82ED224 -_08038510: - adds r0, r4, #0 - adds r0, #0x1c - ldr r1, [sp, #0x20] - adds r0, r1, r0 - ldr r4, [r0] - movs r6, #0 - ldr r3, [sp, #0x14] - lsls r2, r3, #3 - adds r0, r2, r4 - ldrh r1, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r1, _080385A4 - adds r0, r0, r1 - ldrb r0, [r0] - adds r5, r2, #0 - cmp r0, #0xff - beq _08038556 - adds r3, r1, #0 -_08038538: - adds r0, r2, r4 - ldrh r0, [r0, #4] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - adds r0, r6, r1 - adds r0, r0, r3 - ldrb r0, [r0] - add sb, r0 - adds r6, #1 - adds r1, r6, r1 - adds r1, r1, r3 - ldrb r0, [r1] - cmp r0, #0xff - bne _08038538 -_08038556: - mov r2, sb - lsls r0, r2, #8 - add sl, r0 - adds r5, r5, r4 - ldrh r1, [r5] - lsls r0, r1, #5 - subs r0, r0, r1 - movs r1, #0xff - bl __divsi3 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r3, [sp, #0x14] - movs r0, #0x64 - adds r4, r3, #0 - muls r4, r0, r4 - ldr r1, [sp, #0x10] - adds r4, r1, r4 - ldrh r1, [r5, #4] - ldrb r2, [r5, #2] - movs r0, #1 - str r0, [sp] - mov r3, sl - str r3, [sp, #4] - movs r0, #2 - str r0, [sp, #8] - movs r0, #0 - str r0, [sp, #0xc] - adds r0, r4, #0 - adds r3, r6, #0 - bl CreateMon - adds r5, #6 - adds r0, r4, #0 - movs r1, #0xc - adds r2, r5, #0 - bl SetMonData - b _08038670 - .align 2, 0 -_080385A4: .4byte gUnknown_82EA31C -_080385A8: - adds r0, r4, #0 - adds r0, #0x1c - ldr r1, [sp, #0x20] - adds r0, r1, r0 - ldr r7, [r0] - movs r6, #0 - ldr r3, [sp, #0x14] - lsls r2, r3, #4 - adds r0, r2, r7 - ldrh r1, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r1, _080386A8 - adds r0, r0, r1 - ldrb r0, [r0] - mov r8, r2 - cmp r0, #0xff - beq _080385EE - adds r3, r1, #0 -_080385D0: - adds r0, r2, r7 - ldrh r0, [r0, #4] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - adds r0, r6, r1 - adds r0, r0, r3 - ldrb r0, [r0] - add sb, r0 - adds r6, #1 - adds r1, r6, r1 - adds r1, r1, r3 - ldrb r0, [r1] - cmp r0, #0xff - bne _080385D0 -_080385EE: - mov r2, sb - lsls r0, r2, #8 - add sl, r0 - mov r3, r8 - adds r5, r3, r7 - ldrh r1, [r5] - lsls r0, r1, #5 - subs r0, r0, r1 - movs r1, #0xff - bl __divsi3 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, [sp, #0x14] - movs r1, #0x64 - adds r4, r0, #0 - muls r4, r1, r4 - ldr r2, [sp, #0x10] - adds r4, r2, r4 - ldrh r1, [r5, #4] - ldrb r2, [r5, #2] - movs r0, #1 - str r0, [sp] - mov r3, sl - str r3, [sp, #4] - movs r0, #2 - str r0, [sp, #8] - movs r0, #0 - str r0, [sp, #0xc] - adds r0, r4, #0 - adds r3, r6, #0 - bl CreateMon - adds r5, #6 - adds r0, r4, #0 - movs r1, #0xc - adds r2, r5, #0 - bl SetMonData - movs r6, #0 - adds r5, r4, #0 - mov r0, r8 - adds r0, #8 - adds r4, r7, r0 -_08038646: - adds r1, r6, #0 - adds r1, #0xd - adds r0, r5, #0 - adds r2, r4, #0 - bl SetMonData - adds r1, r6, #0 - adds r1, #0x11 - ldrh r0, [r4] - lsls r2, r0, #1 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r0, _080386AC - adds r2, r2, r0 - adds r0, r5, #0 - bl SetMonData - adds r4, #2 - adds r6, #1 - cmp r6, #3 - ble _08038646 -_08038670: - ldr r0, [sp, #0x1c] - str r0, [sp, #0x14] - ldr r4, _080386B0 - ldr r1, [sp, #0x18] - cmp r0, r1 - bge _0803867E - b _0803834C -_0803867E: - ldr r2, _080386B4 - ldr r0, _080386B0 - ldr r3, [sp, #0x20] - adds r0, r3, r0 - ldrb r1, [r0, #0x12] - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] -_0803868E: - ldr r0, _080386B0 - ldr r1, [sp, #0x20] - adds r0, r1, r0 - ldrb r0, [r0, #0x18] -_08038696: - add sp, #0x24 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080386A8: .4byte gUnknown_82EA31C -_080386AC: .4byte gUnknown_82ED224 -_080386B0: .4byte gUnknown_82E383C -_080386B4: .4byte gUnknown_2022C90 - thumb_func_end sub_080382C4 - - thumb_func_start sub_080386B8 -sub_080386B8: @ 0x080386B8 - push {lr} - ldr r0, _080386D8 - ldrh r0, [r0] - subs r0, #0x6f - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x30 - bhi _080386D2 - movs r1, #0x98 - lsls r1, r1, #8 - movs r0, #8 - bl SetGpuReg -_080386D2: - pop {r0} - bx r0 - .align 2, 0 -_080386D8: .4byte 0x04000006 - thumb_func_end sub_080386B8 - - thumb_func_start VBlankCB_Battle -VBlankCB_Battle: @ 0x080386DC - push {lr} - ldr r0, _0803877C - ldr r0, [r0] - ldr r1, _08038780 - ands r0, r1 - cmp r0, #0 - bne _080386EE - bl Random -_080386EE: - ldr r0, _08038784 - ldrh r1, [r0] - movs r0, #0x10 - bl SetGpuReg - ldr r0, _08038788 - ldrh r1, [r0] - movs r0, #0x12 - bl SetGpuReg - ldr r0, _0803878C - ldrh r1, [r0] - movs r0, #0x14 - bl SetGpuReg - ldr r0, _08038790 - ldrh r1, [r0] - movs r0, #0x16 - bl SetGpuReg - ldr r0, _08038794 - ldrh r1, [r0] - movs r0, #0x18 - bl SetGpuReg - ldr r0, _08038798 - ldrh r1, [r0] - movs r0, #0x1a - bl SetGpuReg - ldr r0, _0803879C - ldrh r1, [r0] - movs r0, #0x1c - bl SetGpuReg - ldr r0, _080387A0 - ldrh r1, [r0] - movs r0, #0x1e - bl SetGpuReg - ldr r0, _080387A4 - ldrh r1, [r0] - movs r0, #0x40 - bl SetGpuReg - ldr r0, _080387A8 - ldrh r1, [r0] - movs r0, #0x44 - bl SetGpuReg - ldr r0, _080387AC - ldrh r1, [r0] - movs r0, #0x42 - bl SetGpuReg - ldr r0, _080387B0 - ldrh r1, [r0] - movs r0, #0x46 - bl SetGpuReg - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl ScanlineEffect_InitHBlankDmaTransfer - pop {r0} - bx r0 - .align 2, 0 -_0803877C: .4byte gUnknown_2022C90 -_08038780: .4byte 0x013F0102 -_08038784: .4byte gUnknown_2022AC8 -_08038788: .4byte gUnknown_2022ACA -_0803878C: .4byte gUnknown_2022ACC -_08038790: .4byte gUnknown_2022ACE -_08038794: .4byte gUnknown_2022AD0 -_08038798: .4byte gUnknown_2022AD2 -_0803879C: .4byte gUnknown_2022AD4 -_080387A0: .4byte gUnknown_2022AD6 -_080387A4: .4byte gUnknown_2022AD8 -_080387A8: .4byte gUnknown_2022ADA -_080387AC: .4byte gUnknown_2022ADC -_080387B0: .4byte gUnknown_2022ADE - thumb_func_end VBlankCB_Battle - - thumb_func_start sub_080387B4 -sub_080387B4: @ 0x080387B4 - bx lr - .align 2, 0 - thumb_func_end sub_080387B4 - - thumb_func_start sub_080387B8 -sub_080387B8: @ 0x080387B8 - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _080387D8 - movs r1, #0x32 - ldrsh r0, [r5, r1] - movs r1, #0xff - lsls r1, r1, #8 - ands r0, r1 - lsrs r0, r0, #8 - ldrh r1, [r5, #0x30] - adds r0, r0, r1 - strh r0, [r5, #0x20] - b _080387EA -_080387D8: - movs r1, #0x32 - ldrsh r0, [r5, r1] - movs r1, #0xff - lsls r1, r1, #8 - ands r0, r1 - asrs r0, r0, #8 - ldrh r1, [r5, #0x30] - subs r1, r1, r0 - strh r1, [r5, #0x20] -_080387EA: - movs r1, #0xc0 - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r1, [r5, #0x32] - adds r0, r0, r1 - strh r0, [r5, #0x32] - adds r0, r5, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0803881E - ldr r4, _08038824 - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl FreeSpritePaletteByTag - adds r0, r5, #0 - bl FreeSpriteOamMatrix - adds r0, r5, #0 - bl DestroySprite -_0803881E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08038824: .4byte 0x00002710 - thumb_func_end sub_080387B8 - - thumb_func_start sub_08038828 -sub_08038828: @ 0x08038828 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl StartSpriteAffineAnim - ldr r0, _08038844 - str r0, [r4, #0x1c] - movs r0, #0x68 - bl sub_080A306C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08038844: .4byte sub_080387B8 - thumb_func_end sub_08038828 - - thumb_func_start sub_08038848 -sub_08038848: @ 0x08038848 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - ldr r0, _08038890 - adds r0, #0x25 - ldrb r2, [r0] - ldr r0, _08038894 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080388B8 - ldr r1, _08038898 - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0, #0x18] - cmp r0, #1 - beq _080388A4 - cmp r0, #1 - bgt _0803889C - cmp r0, #0 - beq _080388B8 - b _080388C0 - .align 2, 0 -_08038890: .4byte gUnknown_2024118 -_08038894: .4byte gUnknown_2022C90 -_08038898: .4byte gUnknown_20226A0 -_0803889C: - cmp r0, #2 - beq _080388B8 - cmp r0, #3 - bne _080388C0 -_080388A4: - ldr r0, _080388B0 - str r0, [sp, #4] - ldr r1, _080388B4 - str r1, [sp, #8] - b _080388C0 - .align 2, 0 -_080388B0: .4byte gUnknown_20243E8 -_080388B4: .4byte gUnknown_2024190 -_080388B8: - ldr r2, _08038A0C - str r2, [sp, #4] - ldr r3, _08038A10 - str r3, [sp, #8] -_080388C0: - movs r7, #0 - movs r0, #0 - mov r8, r0 - ldr r1, [sp] - lsls r1, r1, #2 - str r1, [sp, #0xc] - movs r2, #0xce - lsls r2, r2, #1 - mov sl, r2 - mov sb, r0 -_080388D4: - movs r0, #0x64 - mov r4, r8 - muls r4, r0, r4 - ldr r3, [sp, #4] - adds r4, r3, r4 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r0, r4, #0 - movs r1, #0x37 - bl GetMonData - adds r1, r0, #0 - cmp r5, #0 - beq _08038944 - cmp r5, sl - beq _08038918 - cmp r6, #0 - beq _08038918 - cmp r1, #0 - bne _08038918 - movs r0, #1 - mov r2, sb - lsls r0, r2 - orrs r7, r0 -_08038918: - cmp r5, #0 - beq _08038944 - cmp r6, #0 - beq _08038930 - cmp r5, sl - beq _08038928 - cmp r1, #0 - beq _08038930 -_08038928: - movs r0, #2 - mov r3, sb - lsls r0, r3 - orrs r7, r0 -_08038930: - cmp r5, #0 - beq _08038944 - cmp r5, sl - beq _08038944 - cmp r6, #0 - bne _08038944 - movs r0, #3 - mov r1, sb - lsls r0, r1 - orrs r7, r0 -_08038944: - movs r2, #2 - add sb, r2 - movs r3, #1 - add r8, r3 - mov r0, r8 - cmp r0, #5 - ble _080388D4 - ldr r1, _08038A14 - ldr r2, [sp, #0xc] - ldr r3, [sp] - adds r0, r2, r3 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r7, [r0, #0xe] - movs r7, #0 - movs r0, #0 - mov r8, r0 - movs r1, #0xce - lsls r1, r1, #1 - mov sl, r1 - mov sb, r0 -_0803896E: - movs r0, #0x64 - mov r4, r8 - muls r4, r0, r4 - ldr r2, [sp, #8] - adds r4, r2, r4 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r0, r4, #0 - movs r1, #0x37 - bl GetMonData - adds r1, r0, #0 - cmp r5, #0 - beq _080389DE - cmp r5, sl - beq _080389B2 - cmp r6, #0 - beq _080389B2 - cmp r1, #0 - bne _080389B2 - movs r0, #1 - mov r3, sb - lsls r0, r3 - orrs r7, r0 -_080389B2: - cmp r5, #0 - beq _080389DE - cmp r6, #0 - beq _080389CA - cmp r5, sl - beq _080389C2 - cmp r1, #0 - beq _080389CA -_080389C2: - movs r0, #2 - mov r1, sb - lsls r0, r1 - orrs r7, r0 -_080389CA: - cmp r5, #0 - beq _080389DE - cmp r5, sl - beq _080389DE - cmp r6, #0 - bne _080389DE - movs r0, #3 - mov r2, sb - lsls r0, r2 - orrs r7, r0 -_080389DE: - movs r3, #2 - add sb, r3 - movs r0, #1 - add r8, r0 - mov r1, r8 - cmp r1, #5 - ble _0803896E - ldr r1, _08038A14 - ldr r2, [sp, #0xc] - ldr r3, [sp] - adds r0, r2, r3 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r7, [r0, #0x10] - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08038A0C: .4byte gUnknown_2024190 -_08038A10: .4byte gUnknown_20243E8 -_08038A14: .4byte gUnknown_3005B60 - thumb_func_end sub_08038848 - - thumb_func_start sub_08038A18 -sub_08038A18: @ 0x08038A18 - push {r4, lr} - sub sp, #4 - movs r0, #0 - bl SetHBlankCallback - movs r0, #0 - bl SetVBlankCallback - ldr r0, _08038A54 - ldr r1, [r0] - movs r2, #0x21 - rsbs r2, r2, #0 - ands r1, r2 - str r1, [r0] - ldr r0, _08038A58 - ands r0, r1 - cmp r0, #0 - beq _08038A60 - ldr r0, _08038A5C - ldr r0, [r0, #8] - bl SetMainCallback2 - bl FreeBattleResources - bl FreeBattleSpritesData - bl FreeMonSpritesGfx - b _08038B6A - .align 2, 0 -_08038A54: .4byte gUnknown_2022C90 -_08038A58: .4byte 0x003F0100 -_08038A5C: .4byte gUnknown_3002360 -_08038A60: - str r0, [sp] - movs r1, #0xc0 - lsls r1, r1, #0x13 - ldr r2, _08038B74 - mov r0, sp - bl CpuSet - movs r0, #0x4c - movs r1, #0 - bl SetGpuReg - movs r0, #0x40 - movs r1, #0xf0 - bl SetGpuReg - ldr r4, _08038B78 - movs r0, #0x44 - adds r1, r4, #0 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0 - bl SetGpuReg - movs r0, #0x4a - movs r1, #0 - bl SetGpuReg - ldr r1, _08038B7C - movs r0, #0xf0 - strh r0, [r1] - ldr r0, _08038B80 - strh r4, [r0] - bl ScanlineEffect_Clear - ldr r0, _08038B84 - movs r3, #0xf0 - movs r1, #0xf0 - lsls r1, r1, #3 - adds r2, r0, r1 - movs r1, #0x4f -_08038AB2: - strh r3, [r0] - strh r3, [r2] - adds r2, #2 - adds r0, #2 - subs r1, #1 - cmp r1, #0 - bge _08038AB2 - movs r1, #0x50 - ldr r0, _08038B84 - ldr r3, _08038B88 - movs r4, #0x82 - lsls r4, r4, #4 - adds r2, r0, r4 - adds r0, #0xa0 -_08038ACE: - strh r3, [r0] - strh r3, [r2] - adds r2, #2 - adds r0, #2 - adds r1, #1 - cmp r1, #0x9f - ble _08038ACE - bl ResetPaletteFade - ldr r0, _08038B8C - movs r4, #0 - strh r4, [r0] - ldr r0, _08038B90 - strh r4, [r0] - ldr r0, _08038B94 - strh r4, [r0] - ldr r0, _08038B98 - strh r4, [r0] - ldr r0, _08038B9C - strh r4, [r0] - ldr r0, _08038BA0 - strh r4, [r0] - ldr r0, _08038BA4 - strh r4, [r0] - ldr r0, _08038BA8 - strh r4, [r0] - bl sub_08035528 - ldr r0, _08038BAC - movs r1, #0 - movs r2, #0x40 - bl LoadCompressedPalette - bl LoadBattleMenuWindowGfx - bl ResetSpriteData - bl ResetTasks - bl DrawBattleEntryBackground - movs r0, #0x4a - movs r1, #0x37 - bl SetGpuReg - bl FreeAllSpritePalettes - ldr r1, _08038BB0 - movs r0, #4 - strb r0, [r1] - ldr r0, _08038BB4 - bl SetVBlankCallback - ldr r0, _08038BB8 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08038BBC - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r2, #0x87 - lsls r2, r2, #1 - strh r2, [r1, #0xa] - movs r2, #0x5a - strh r2, [r1, #0xc] - movs r2, #1 - strh r2, [r1, #0x12] - bl sub_08038848 - ldr r0, _08038BC0 - bl SetMainCallback2 - ldr r0, _08038BC4 - strb r4, [r0] -_08038B6A: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08038B74: .4byte 0x05006000 -_08038B78: .4byte 0x00005051 -_08038B7C: .4byte gUnknown_2022AD8 -_08038B80: .4byte gUnknown_2022ADA -_08038B84: .4byte gUnknown_20388C8 -_08038B88: .4byte 0x0000FF10 -_08038B8C: .4byte gUnknown_2022AC8 -_08038B90: .4byte gUnknown_2022ACA -_08038B94: .4byte gUnknown_2022ACC -_08038B98: .4byte gUnknown_2022ACE -_08038B9C: .4byte gUnknown_2022AD0 -_08038BA0: .4byte gUnknown_2022AD2 -_08038BA4: .4byte gUnknown_2022AD4 -_08038BA8: .4byte gUnknown_2022AD6 -_08038BAC: .4byte gUnknown_8C004EC -_08038BB0: .4byte gUnknown_30030BC -_08038BB4: .4byte VBlankCB_Battle -_08038BB8: .4byte UpdateFastPaletteFade -_08038BBC: .4byte gUnknown_3005B60 -_08038BC0: .4byte sub_08038BC8 -_08038BC4: .4byte gUnknown_2023FD6 - thumb_func_end sub_08038A18 - - thumb_func_start sub_08038BC8 -sub_08038BC8: @ 0x08038BC8 - push {lr} - bl sub_08038BE8 - bl AnimateSprites - bl BuildOamBuffer - bl sub_08004630 - bl UpdatePaletteFade - bl RunTasks - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08038BC8 - - thumb_func_start sub_08038BE8 -sub_08038BE8: @ 0x08038BE8 - push {r4, r5, r6, lr} - sub sp, #8 - ldr r0, _08038C04 - ldrb r1, [r0] - adds r4, r0, #0 - cmp r1, #9 - bls _08038BF8 - b _08038E7A -_08038BF8: - lsls r0, r1, #2 - ldr r1, _08038C08 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08038C04: .4byte gUnknown_2023FD6 -_08038C08: .4byte _08038C0C -_08038C0C: @ jump table - .4byte _08038C34 @ case 0 - .4byte _08038C54 @ case 1 - .4byte _08038C76 @ case 2 - .4byte _08038D7C @ case 3 - .4byte _08038DB4 @ case 4 - .4byte _08038DCC @ case 5 - .4byte _08038DE0 @ case 6 - .4byte _08038E00 @ case 7 - .4byte _08038E1A @ case 8 - .4byte _08038E38 @ case 9 -_08038C34: - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - ldr r1, _08038C50 - movs r0, #0xff - strb r0, [r1, #1] - b _08038E28 - .align 2, 0 -_08038C50: .4byte gUnknown_2023FD6 -_08038C54: - ldrb r0, [r4, #1] - subs r0, #1 - strb r0, [r4, #1] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _08038C64 - b _08038E7A -_08038C64: - movs r0, #1 - rsbs r0, r0, #0 - str r1, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - b _08038DC0 -_08038C76: - ldr r0, _08038D04 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08038C84 - b _08038E7A -_08038C84: - bl sub_08185D04 - ldr r2, _08038D08 - ldr r1, _08038D0C - adds r2, r2, r1 - movs r1, #1 - ands r1, r0 - lsls r1, r1, #2 - ldrb r3, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08038D10 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - movs r3, #2 - cmp r0, #0 - beq _08038CB0 - movs r3, #4 -_08038CB0: - movs r4, #0 - ldr r6, _08038D14 - cmp r4, r3 - bge _08038CD6 - ldr r1, _08038D18 - ldrb r0, [r1] - cmp r0, #3 - bne _08038CD6 - movs r5, #0xff - adds r2, r1, #0 -_08038CC4: - adds r2, #0x1c - adds r4, #1 - cmp r4, r3 - bge _08038CD6 - ldrh r1, [r2] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #3 - beq _08038CC4 -_08038CD6: - ldr r0, [r6] - ldr r1, _08038D1C - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - bne _08038D60 - cmp r4, r3 - bne _08038D60 - ldr r0, _08038D20 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08038D28 - bl FreeAllWindowBuffers - ldr r0, _08038D24 - bl SetMainCallback2 - b _08038E7A - .align 2, 0 -_08038D04: .4byte gUnknown_2037C74 -_08038D08: .4byte gUnknown_3002360 -_08038D0C: .4byte 0x00000439 -_08038D10: .4byte gUnknown_2022C90 -_08038D14: .4byte gUnknown_3005AF0 -_08038D18: .4byte gUnknown_20226A0 -_08038D1C: .4byte 0x00000CA9 -_08038D20: .4byte 0x000008D2 -_08038D24: .4byte sub_08038F5C -_08038D28: - ldr r2, _08038D3C - ldr r1, _08038D40 - adds r0, r2, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _08038D44 - ldr r0, [r2, #8] - b _08038D64 - .align 2, 0 -_08038D3C: .4byte gUnknown_3002360 -_08038D40: .4byte 0x00000439 -_08038D44: - ldr r0, _08038D58 - ldrb r0, [r0] - cmp r0, #0 - bne _08038E26 - ldr r0, _08038D5C - movs r1, #5 - bl CreateTask - b _08038E26 - .align 2, 0 -_08038D58: .4byte gUnknown_30031C4 -_08038D5C: .4byte sub_080B3250 -_08038D60: - ldr r0, _08038D78 - ldr r0, [r0, #8] -_08038D64: - bl SetMainCallback2 - bl FreeBattleResources - bl FreeBattleSpritesData - bl FreeMonSpritesGfx - b _08038E7A - .align 2, 0 -_08038D78: .4byte gUnknown_3002360 -_08038D7C: - movs r0, #0 - str r0, [sp, #4] - movs r1, #0xc0 - lsls r1, r1, #0x13 - ldr r2, _08038DB0 - add r0, sp, #4 - bl CpuSet - movs r4, #0 -_08038D8E: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl sub_08036224 - adds r4, #1 - cmp r4, #1 - ble _08038D8E - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - b _08038E26 - .align 2, 0 -_08038DB0: .4byte 0x05006000 -_08038DB4: - ldr r0, _08038DC8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08038E7A -_08038DC0: - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - b _08038E7A - .align 2, 0 -_08038DC8: .4byte gUnknown_2037C74 -_08038DCC: - ldr r0, _08038DDC - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08038E7A - b _08038E26 - .align 2, 0 -_08038DDC: .4byte sub_080B3250 -_08038DE0: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08038E7A - bl sub_0800A8D4 - ldr r0, _08038DFC - movs r1, #0 - bl sub_0814FA04 - b _08038E26 - .align 2, 0 -_08038DFC: .4byte gUnknown_8226D53 -_08038E00: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08038E7A - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08038E7A - b _08038E26 -_08038E1A: - ldr r0, _08038E30 - ldrb r0, [r0] - cmp r0, #0 - bne _08038E26 - bl sub_0800A7F8 -_08038E26: - ldr r1, _08038E34 -_08038E28: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _08038E7A - .align 2, 0 -_08038E30: .4byte gUnknown_300319C -_08038E34: .4byte gUnknown_2023FD6 -_08038E38: - ldr r2, _08038E84 - ldr r1, _08038E88 - adds r0, r2, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - adds r3, r2, #0 - cmp r0, #0 - beq _08038E5A - ldr r0, _08038E8C - ldrb r0, [r0] - cmp r0, #0 - bne _08038E5A - ldr r0, _08038E90 - ldrb r0, [r0] - cmp r0, #1 - beq _08038E7A -_08038E5A: - ldr r0, _08038E88 - adds r2, r3, r0 - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldr r0, [r3, #8] - bl SetMainCallback2 - bl FreeBattleResources - bl FreeBattleSpritesData - bl FreeMonSpritesGfx -_08038E7A: - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08038E84: .4byte gUnknown_3002360 -_08038E88: .4byte 0x00000439 -_08038E8C: .4byte gUnknown_300319C -_08038E90: .4byte gUnknown_30031C4 - thumb_func_end sub_08038BE8 - - thumb_func_start sub_08038E94 -sub_08038E94: @ 0x08038E94 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0 - cmp r1, #6 - bhi _08038F54 - lsls r0, r1, #2 - ldr r1, _08038EB0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08038EB0: .4byte _08038EB4 -_08038EB4: @ jump table - .4byte _08038ED0 @ case 0 - .4byte _08038EE4 @ case 1 - .4byte _08038EF8 @ case 2 - .4byte _08038F0C @ case 3 - .4byte _08038F20 @ case 4 - .4byte _08038F34 @ case 5 - .4byte _08038F48 @ case 6 -_08038ED0: - ldr r0, _08038EE0 - lsls r1, r2, #2 - adds r1, r1, r0 - ldrb r0, [r1] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - b _08038F54 - .align 2, 0 -_08038EE0: .4byte gUnknown_82EB860 -_08038EE4: - ldr r0, _08038EF4 - lsls r1, r2, #2 - adds r1, r1, r0 - ldrb r0, [r1] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1e - b _08038F54 - .align 2, 0 -_08038EF4: .4byte gUnknown_82EB860 -_08038EF8: - ldr r0, _08038F08 - lsls r1, r2, #2 - adds r1, r1, r0 - ldrh r0, [r1] - lsls r0, r0, #0x17 - lsrs r0, r0, #0x1b - b _08038F54 - .align 2, 0 -_08038F08: .4byte gUnknown_82EB860 -_08038F0C: - ldr r0, _08038F1C - lsls r1, r2, #2 - adds r1, r1, r0 - ldrb r0, [r1, #1] - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1e - b _08038F54 - .align 2, 0 -_08038F1C: .4byte gUnknown_82EB860 -_08038F20: - ldr r0, _08038F30 - lsls r1, r2, #2 - adds r1, r1, r0 - ldrb r0, [r1, #1] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1f - b _08038F54 - .align 2, 0 -_08038F30: .4byte gUnknown_82EB860 -_08038F34: - ldr r0, _08038F44 - lsls r1, r2, #2 - adds r1, r1, r0 - ldrb r0, [r1, #1] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - b _08038F54 - .align 2, 0 -_08038F44: .4byte gUnknown_82EB860 -_08038F48: - ldr r0, _08038F58 - lsls r1, r2, #2 - adds r1, r1, r0 - ldr r0, [r1] - lsls r0, r0, #8 - lsrs r0, r0, #0x16 -_08038F54: - pop {r1} - bx r1 - .align 2, 0 -_08038F58: .4byte gUnknown_82EB860 - thumb_func_end sub_08038E94 - - thumb_func_start sub_08038F5C -sub_08038F5C: @ 0x08038F5C - push {r4, lr} - sub sp, #8 - movs r0, #0 - bl SetHBlankCallback - movs r0, #0 - bl SetVBlankCallback - movs r4, #0 - str r4, [sp, #4] - movs r1, #0xc0 - lsls r1, r1, #0x13 - ldr r2, _08038FFC - add r0, sp, #4 - bl CpuSet - bl ResetPaletteFade - ldr r0, _08039000 - strh r4, [r0] - ldr r0, _08039004 - strh r4, [r0] - ldr r0, _08039008 - strh r4, [r0] - ldr r0, _0803900C - strh r4, [r0] - ldr r0, _08039010 - strh r4, [r0] - ldr r0, _08039014 - strh r4, [r0] - ldr r0, _08039018 - strh r4, [r0] - ldr r0, _0803901C - strh r4, [r0] - bl sub_08035528 - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - bl LoadBattleMenuWindowGfx -_08038FB2: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl sub_08036224 - adds r4, #1 - cmp r4, #1 - ble _08038FB2 - bl ResetSpriteData - bl ResetTasks - bl FreeAllSpritePalettes - ldr r1, _08039020 - movs r0, #4 - strb r0, [r1] - ldr r0, _08039024 - bl SetVBlankCallback - ldr r0, _08039028 - bl SetMainCallback2 - movs r0, #1 - rsbs r0, r0, #0 - movs r4, #0 - str r4, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r0, _0803902C - strb r4, [r0] - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08038FFC: .4byte 0x05006000 -_08039000: .4byte gUnknown_2022AC8 -_08039004: .4byte gUnknown_2022ACA -_08039008: .4byte gUnknown_2022ACC -_0803900C: .4byte gUnknown_2022ACE -_08039010: .4byte gUnknown_2022AD0 -_08039014: .4byte gUnknown_2022AD2 -_08039018: .4byte gUnknown_2022AD4 -_0803901C: .4byte gUnknown_2022AD6 -_08039020: .4byte gUnknown_30030BC -_08039024: .4byte VBlankCB_Battle -_08039028: .4byte sub_08039030 -_0803902C: .4byte gUnknown_2023FD6 - thumb_func_end sub_08038F5C - - thumb_func_start sub_08039030 -sub_08039030: @ 0x08039030 - push {lr} - bl sub_08039050 - bl AnimateSprites - bl BuildOamBuffer - bl sub_08004630 - bl UpdatePaletteFade - bl RunTasks - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08039030 - - thumb_func_start sub_08039050 -sub_08039050: @ 0x08039050 - push {r4, r5, lr} - sub sp, #4 - ldr r0, _0803906C - ldrb r1, [r0] - adds r4, r0, #0 - cmp r1, #0xc - bls _08039060 - b _08039412 -_08039060: - lsls r0, r1, #2 - ldr r1, _08039070 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803906C: .4byte gUnknown_2023FD6 -_08039070: .4byte _08039074 -_08039074: @ jump table - .4byte _080390A8 @ case 0 - .4byte _080390C8 @ case 1 - .4byte _08039104 @ case 2 - .4byte _08039124 @ case 3 - .4byte _08039150 @ case 4 - .4byte _0803918C @ case 5 - .4byte _08039230 @ case 6 - .4byte _080393B8 @ case 7 - .4byte _08039280 @ case 8 - .4byte _080392C4 @ case 9 - .4byte _0803932C @ case 10 - .4byte _0803935C @ case 11 - .4byte _080393B8 @ case 12 -_080390A8: - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - ldr r1, _080390C4 - ldrb r0, [r1] - adds r0, #1 - b _08039410 - .align 2, 0 -_080390C4: .4byte gUnknown_2023FD6 -_080390C8: - ldr r0, _080390F0 - ldr r1, _080390F4 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080390E8 - ldr r0, _080390F8 - ldrb r0, [r0] - cmp r0, #0 - bne _080390E8 - ldr r0, _080390FC - movs r1, #5 - bl CreateTask -_080390E8: - ldr r1, _08039100 - ldrb r0, [r1] - adds r0, #1 - b _08039410 - .align 2, 0 -_080390F0: .4byte gUnknown_3002360 -_080390F4: .4byte 0x00000439 -_080390F8: .4byte gUnknown_30031C4 -_080390FC: .4byte sub_080B3250 -_08039100: .4byte gUnknown_2023FD6 -_08039104: - ldr r0, _0803911C - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08039112 - b _08039412 -_08039112: - ldr r1, _08039120 - ldrb r0, [r1] - adds r0, #1 - b _08039410 - .align 2, 0 -_0803911C: .4byte sub_080B3250 -_08039120: .4byte gUnknown_2023FD6 -_08039124: - ldr r0, _08039144 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08039132 - b _08039412 -_08039132: - ldr r0, _08039148 - movs r1, #0 - bl sub_0814FA04 - ldr r1, _0803914C - ldrb r0, [r1] - adds r0, #1 - b _08039410 - .align 2, 0 -_08039144: .4byte gUnknown_2037C74 -_08039148: .4byte gUnknown_85AC0DD -_0803914C: .4byte gUnknown_2023FD6 -_08039150: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - beq _08039160 - b _08039412 -_08039160: - str r0, [sp] - movs r0, #0x18 - movs r1, #8 - movs r2, #0x1d - movs r3, #0xd - bl HandleBattleWindow - ldr r0, _08039184 - movs r1, #0xc - bl sub_0814FA04 - ldr r4, _08039188 - movs r0, #1 - strb r0, [r4, #1] - bl BattleCreateYesNoCursorAt - b _0803939E - .align 2, 0 -_08039184: .4byte gUnknown_85ABBC9 -_08039188: .4byte gUnknown_2023FD6 -_0803918C: - ldr r0, _080391B0 - ldrh r1, [r0, #0x2e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080391B4 - ldrb r0, [r4, #1] - cmp r0, #0 - bne _080391A0 - b _08039412 -_080391A0: - movs r0, #5 - bl sub_080A306C - ldrb r0, [r4, #1] - bl BattleDestroyYesNoCursorAt - movs r0, #0 - b _080391D2 - .align 2, 0 -_080391B0: .4byte gUnknown_3002360 -_080391B4: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080391DA - ldrb r0, [r4, #1] - cmp r0, #0 - beq _080391C4 - b _08039412 -_080391C4: - movs r0, #5 - bl sub_080A306C - ldrb r0, [r4, #1] - bl BattleDestroyYesNoCursorAt - movs r0, #1 -_080391D2: - strb r0, [r4, #1] - bl BattleCreateYesNoCursorAt - b _08039412 -_080391DA: - movs r5, #1 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _08039214 - movs r0, #5 - bl sub_080A306C - ldr r4, _08039210 - ldrb r0, [r4, #1] - cmp r0, #0 - beq _080391F4 - b _0803939E -_080391F4: - str r5, [sp] - movs r0, #0x18 - movs r1, #8 - movs r2, #0x1d - movs r3, #0xd - bl HandleBattleWindow - bl MoveRecordedBattleToSaveData - strb r0, [r4, #1] - movs r0, #0xa - strb r0, [r4] - b _08039412 - .align 2, 0 -_08039210: .4byte gUnknown_2023FD6 -_08039214: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0803921E - b _08039412 -_0803921E: - movs r0, #5 - bl sub_080A306C - ldr r1, _0803922C - ldrb r0, [r1] - adds r0, #1 - b _08039410 - .align 2, 0 -_0803922C: .4byte gUnknown_2023FD6 -_08039230: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0803923E - b _08039412 -_0803923E: - str r0, [sp] - movs r0, #0x18 - movs r1, #8 - movs r2, #0x1d - movs r3, #0xd - bl HandleBattleWindow - ldr r0, _08039270 - ldr r1, _08039274 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08039268 - bl sub_0800A8D4 - ldr r0, _08039278 - movs r1, #0 - bl sub_0814FA04 -_08039268: - ldr r1, _0803927C - ldrb r0, [r1] - adds r0, #1 - b _08039410 - .align 2, 0 -_08039270: .4byte gUnknown_3002360 -_08039274: .4byte 0x00000439 -_08039278: .4byte gUnknown_8226D53 -_0803927C: .4byte gUnknown_2023FD6 -_08039280: - ldrb r0, [r4, #1] - subs r0, #1 - strb r0, [r4, #1] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0803928E - b _08039412 -_0803928E: - ldr r0, _080392B4 - ldr r1, _080392B8 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080392AA - ldr r0, _080392BC - ldrb r0, [r0] - cmp r0, #0 - bne _080392AA - bl sub_0800A7F8 -_080392AA: - ldr r1, _080392C0 - ldrb r0, [r1] - adds r0, #1 - b _08039410 - .align 2, 0 -_080392B4: .4byte gUnknown_3002360 -_080392B8: .4byte 0x00000439 -_080392BC: .4byte gUnknown_300319C -_080392C0: .4byte gUnknown_2023FD6 -_080392C4: - ldr r2, _08039318 - ldr r1, _0803931C - adds r0, r2, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - adds r3, r2, #0 - cmp r0, #0 - beq _080392E8 - ldr r0, _08039320 - ldrb r0, [r0] - cmp r0, #0 - bne _080392E8 - ldr r0, _08039324 - ldrb r0, [r0] - cmp r0, #1 - bne _080392E8 - b _08039412 -_080392E8: - ldr r0, _0803931C - adds r2, r3, r0 - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldr r0, _08039328 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08039304 - b _08039412 -_08039304: - ldr r0, [r3, #8] - bl SetMainCallback2 - bl FreeBattleResources - bl FreeBattleSpritesData - bl FreeMonSpritesGfx - b _08039412 - .align 2, 0 -_08039318: .4byte gUnknown_3002360 -_0803931C: .4byte 0x00000439 -_08039320: .4byte gUnknown_300319C -_08039324: .4byte gUnknown_30031C4 -_08039328: .4byte gUnknown_2037C74 -_0803932C: - ldrb r0, [r4, #1] - cmp r0, #1 - bne _08039354 - movs r0, #0x37 - bl sub_080A306C - ldr r0, _0803934C -_0803933A: - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r0, _08039350 - movs r1, #0 - bl sub_0814FA04 - movs r0, #0x80 - strb r0, [r4, #1] - b _0803939E - .align 2, 0 -_0803934C: .4byte gUnknown_85AC0FB -_08039350: .4byte gUnknown_2022AE0 -_08039354: - ldr r0, _08039358 - b _0803933A - .align 2, 0 -_08039358: .4byte gUnknown_822247E -_0803935C: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08039412 - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08039412 - ldr r4, _080393A8 - ldrb r0, [r4, #1] - subs r0, #1 - strb r0, [r4, #1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08039412 - ldr r0, _080393AC - ldr r1, _080393B0 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0803939E - bl sub_0800A8D4 - ldr r0, _080393B4 - movs r1, #0 - bl sub_0814FA04 -_0803939E: - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - b _08039412 - .align 2, 0 -_080393A8: .4byte gUnknown_2023FD6 -_080393AC: .4byte gUnknown_3002360 -_080393B0: .4byte 0x00000439 -_080393B4: .4byte gUnknown_8226D53 -_080393B8: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0 - bne _08039412 - ldr r0, _080393F0 - ldr r1, _080393F4 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _080393F8 - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08039412 - movs r0, #1 - rsbs r0, r0, #0 - str r4, [sp] - b _080393FE - .align 2, 0 -_080393F0: .4byte gUnknown_3002360 -_080393F4: .4byte 0x00000439 -_080393F8: - movs r0, #1 - rsbs r0, r0, #0 - str r1, [sp] -_080393FE: - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _0803941C - movs r0, #0x20 - strb r0, [r1, #1] - movs r0, #8 -_08039410: - strb r0, [r1] -_08039412: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0803941C: .4byte gUnknown_2023FD6 - thumb_func_end sub_08039050 - - thumb_func_start SpriteCb_WildMon -SpriteCb_WildMon: @ 0x08039420 - push {lr} - sub sp, #4 - ldr r1, _08039448 - str r1, [r0, #0x1c] - movs r1, #0 - bl StartSpriteAnimIfDifferent - movs r0, #0x80 - lsls r0, r0, #0xa - ldr r1, _0803944C - str r1, [sp] - movs r1, #0 - movs r2, #0xa - movs r3, #0xa - bl BeginNormalPaletteFade - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_08039448: .4byte SpriteCb_MoveWildMonToRight -_0803944C: .4byte 0x00002108 - thumb_func_end SpriteCb_WildMon - - thumb_func_start SpriteCb_MoveWildMonToRight -SpriteCb_MoveWildMonToRight: @ 0x08039450 - push {lr} - adds r2, r0, #0 - ldr r0, _08039474 - ldrh r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08039470 - ldrh r0, [r2, #0x24] - adds r0, #2 - strh r0, [r2, #0x24] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08039470 - ldr r0, _08039478 - str r0, [r2, #0x1c] -_08039470: - pop {r0} - bx r0 - .align 2, 0 -_08039474: .4byte gUnknown_20240A0 -_08039478: .4byte SpriteCb_WildMonShowHealthbox - thumb_func_end SpriteCb_MoveWildMonToRight - - thumb_func_start SpriteCb_WildMonShowHealthbox -SpriteCb_WildMonShowHealthbox: @ 0x0803947C - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080394C4 - ldrh r0, [r4, #0x2e] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_08076320 - ldr r1, _080394CC - movs r2, #0x2e - ldrsh r0, [r4, r2] - adds r0, r0, r1 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible - ldr r0, _080394D0 - str r0, [r4, #0x1c] - adds r0, r4, #0 - movs r1, #0 - bl StartSpriteAnimIfDifferent - movs r0, #0x80 - lsls r0, r0, #0xa - ldr r1, _080394D4 - str r1, [sp] - movs r1, #0 - movs r2, #0xa - movs r3, #0 - bl BeginNormalPaletteFade -_080394C4: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080394CC: .4byte gUnknown_3005AD0 -_080394D0: .4byte SpriteCb_WildMonAnimate -_080394D4: .4byte 0x00002108 - thumb_func_end SpriteCb_WildMonShowHealthbox - - thumb_func_start SpriteCb_WildMonAnimate -SpriteCb_WildMonAnimate: @ 0x080394D8 - push {lr} - adds r2, r0, #0 - ldr r0, _080394F8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080394F4 - ldrh r1, [r2, #0x32] - adds r0, r2, #0 - movs r2, #0 - movs r3, #1 - bl BattleAnimateFrontSprite -_080394F4: - pop {r0} - bx r0 - .align 2, 0 -_080394F8: .4byte gUnknown_2037C74 - thumb_func_end SpriteCb_WildMonAnimate - - thumb_func_start sub_080394FC -sub_080394FC: @ 0x080394FC - bx lr - .align 2, 0 - thumb_func_end sub_080394FC - - thumb_func_start sub_08039500 -sub_08039500: @ 0x08039500 - movs r1, #6 - strh r1, [r0, #0x34] - movs r1, #1 - strh r1, [r0, #0x36] - ldr r1, _08039510 - str r1, [r0, #0x1c] - bx lr - .align 2, 0 -_08039510: .4byte sub_08039514 - thumb_func_end sub_08039500 - - thumb_func_start sub_08039514 -sub_08039514: @ 0x08039514 - push {r4, lr} - adds r3, r0, #0 - ldrh r0, [r3, #0x36] - subs r0, #1 - strh r0, [r3, #0x36] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08039568 - movs r0, #8 - strh r0, [r3, #0x36] - movs r0, #0x3e - adds r0, r0, r3 - mov ip, r0 - ldrb r2, [r0] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r4, #5 - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - ldrh r0, [r3, #0x34] - subs r0, #1 - strh r0, [r3, #0x34] - lsls r0, r0, #0x10 - asrs r2, r0, #0x10 - cmp r2, #0 - bne _08039568 - ldrb r1, [r1] - adds r0, r4, #0 - ands r0, r1 - mov r1, ip - strb r0, [r1] - ldr r0, _08039570 - str r0, [r3, #0x1c] - ldr r0, _08039574 - str r2, [r0] -_08039568: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08039570: .4byte sub_080394FC -_08039574: .4byte gUnknown_2022C2C - thumb_func_end sub_08039514 - - thumb_func_start SpriteCB_FaintOpponentMon -SpriteCB_FaintOpponentMon: @ 0x08039578 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov sb, r0 - ldrh r0, [r0, #0x2e] - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _0803959C - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r6, #2 - adds r1, r0, r1 - ldrh r0, [r1, #2] - cmp r0, #0 - beq _080395A0 - adds r4, r0, #0 - b _080395A4 - .align 2, 0 -_0803959C: .4byte gUnknown_2024174 -_080395A0: - mov r0, sb - ldrh r4, [r0, #0x32] -_080395A4: - ldr r1, _0803960C - lsls r0, r6, #1 - adds r5, r0, r1 - ldrh r0, [r5] - movs r1, #0x64 - mov r8, r1 - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - ldr r7, _08039610 - adds r0, r0, r7 - movs r1, #0 - bl GetMonData - cmp r4, #0xc9 - bne _08039628 - ldrh r0, [r5] - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - adds r0, r0, r7 - movs r1, #0 - bl GetMonData - adds r2, r0, #0 - movs r0, #0xc0 - lsls r0, r0, #0x12 - ands r0, r2 - lsrs r0, r0, #0x12 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r2 - lsrs r1, r1, #0xc - orrs r0, r1 - movs r1, #0xc0 - lsls r1, r1, #2 - ands r1, r2 - lsrs r1, r1, #6 - orrs r0, r1 - movs r1, #3 - ands r1, r2 - orrs r0, r1 - movs r1, #0x1c - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - bne _08039614 - movs r0, #0xc9 - b _0803961E - .align 2, 0 -_0803960C: .4byte gUnknown_2023D12 -_08039610: .4byte gUnknown_20243E8 -_08039614: - movs r1, #0xce - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 -_0803961E: - ldr r1, _08039624 - lsls r0, r0, #2 - b _08039660 - .align 2, 0 -_08039624: .4byte gUnknown_82D45C8 -_08039628: - ldr r0, _08039640 - cmp r4, r0 - bne _0803964C - ldr r0, _08039644 - ldr r1, _08039648 - adds r1, r6, r1 - ldrb r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #1] - b _08039664 - .align 2, 0 -_08039640: .4byte 0x00000181 -_08039644: .4byte gUnknown_84FE684 -_08039648: .4byte gUnknown_2024188 -_0803964C: - movs r0, #0xce - lsls r0, r0, #1 - cmp r4, r0 - bls _0803965C - ldr r0, _08039658 - b _08039662 - .align 2, 0 -_08039658: .4byte gUnknown_82D45C8 -_0803965C: - ldr r1, _08039684 - lsls r0, r4, #2 -_08039660: - adds r0, r0, r1 -_08039662: - ldrb r0, [r0, #1] -_08039664: - lsrs r1, r0, #3 - movs r0, #8 - subs r0, r0, r1 - mov r1, sb - strh r0, [r1, #0x34] - movs r0, #1 - strh r0, [r1, #0x36] - ldr r0, _08039688 - str r0, [r1, #0x1c] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08039684: .4byte gUnknown_82D45C8 -_08039688: .4byte SpriteCB_AnimFaintOpponent - thumb_func_end SpriteCB_FaintOpponentMon - - thumb_func_start SpriteCB_AnimFaintOpponent -SpriteCB_AnimFaintOpponent: @ 0x0803968C - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x36] - subs r0, #1 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0803970C - movs r0, #2 - strh r0, [r4, #0x36] - ldrh r0, [r4, #0x26] - adds r0, #8 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x34] - subs r0, #1 - strh r0, [r4, #0x34] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _080396C0 - adds r0, r4, #0 - bl FreeSpriteOamMatrix - adds r0, r4, #0 - bl DestroySprite - b _0803970C -_080396C0: - ldrh r0, [r4, #0x2e] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_080A630C - ldr r1, _08039714 - ldr r1, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r1, #4 - adds r1, r1, r0 - ldr r2, _08039718 - movs r3, #0x2e - ldrsh r0, [r4, r3] - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0xb - ldr r1, [r1] - adds r1, r1, r0 - movs r2, #0x34 - ldrsh r0, [r4, r2] - lsls r0, r0, #8 - adds r1, r1, r0 - movs r2, #0 - movs r0, #0xff -_080396F2: - strb r2, [r1] - adds r1, #1 - subs r0, #1 - cmp r0, #0 - bge _080396F2 - ldr r0, _08039718 - movs r3, #0x2e - ldrsh r1, [r4, r3] - adds r1, r1, r0 - ldrb r1, [r1] - adds r0, r4, #0 - bl StartSpriteAnim -_0803970C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08039714: .4byte gUnknown_2024178 -_08039718: .4byte gUnknown_2024188 - thumb_func_end SpriteCB_AnimFaintOpponent - - thumb_func_start sub_0803971C -sub_0803971C: @ 0x0803971C - movs r1, #8 - strh r1, [r0, #0x34] - adds r1, r0, #0 - adds r1, #0x3e - ldrb r1, [r1] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1f - strh r1, [r0, #0x36] - ldr r1, _08039734 - str r1, [r0, #0x1c] - bx lr - .align 2, 0 -_08039734: .4byte sub_08039738 - thumb_func_end sub_0803971C - - thumb_func_start sub_08039738 -sub_08039738: @ 0x08039738 - push {lr} - adds r3, r0, #0 - ldrh r0, [r3, #0x34] - subs r0, #1 - strh r0, [r3, #0x34] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0803976A - movs r0, #0x3e - adds r0, r0, r3 - mov ip, r0 - ldrb r2, [r0] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - movs r0, #8 - strh r0, [r3, #0x34] -_0803976A: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08039738 - - thumb_func_start sub_08039770 -sub_08039770: @ 0x08039770 - movs r1, #0x3e - adds r1, r1, r0 - mov ip, r1 - movs r1, #1 - ldrh r2, [r0, #0x36] - ands r2, r1 - lsls r2, r2, #2 - mov r1, ip - ldrb r3, [r1] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r3 - orrs r1, r2 - mov r2, ip - strb r1, [r2] - movs r1, #0 - strh r1, [r0, #0x36] - ldr r1, _08039798 - str r1, [r0, #0x1c] - bx lr - .align 2, 0 -_08039798: .4byte sub_080394FC - thumb_func_end sub_08039770 - - thumb_func_start sub_0803979C -sub_0803979C: @ 0x0803979C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080397E4 - ldr r0, _080397EC - ldr r0, [r0] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080397C4 - ldr r0, _080397F0 - ldr r0, [r0] - ldr r1, _080397F4 - ands r0, r1 - cmp r0, #0 - beq _080397D8 -_080397C4: - ldrh r0, [r4, #0x32] - bl HasTwoFramesAnimation - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080397D8 - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAnim -_080397D8: - ldrh r1, [r4, #0x32] - adds r0, r4, #0 - movs r2, #1 - movs r3, #1 - bl BattleAnimateFrontSprite -_080397E4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080397EC: .4byte gUnknown_2023F24 -_080397F0: .4byte gUnknown_2022C90 -_080397F4: .4byte gUnknown_2000002 - thumb_func_end sub_0803979C - - thumb_func_start sub_080397F8 -sub_080397F8: @ 0x080397F8 - ldr r1, _08039800 - str r1, [r0, #0x1c] - bx lr - .align 2, 0 -_08039800: .4byte oac_poke_ally_ - thumb_func_end sub_080397F8 - - thumb_func_start oac_poke_ally_ -oac_poke_ally_: @ 0x08039804 - push {lr} - adds r2, r0, #0 - ldr r0, _0803982C - ldrh r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08039828 - ldrh r0, [r2, #0x24] - subs r0, #2 - strh r0, [r2, #0x24] - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - cmp r1, #0 - bne _08039828 - ldr r0, _08039830 - str r0, [r2, #0x1c] - strh r1, [r2, #0x30] -_08039828: - pop {r0} - bx r0 - .align 2, 0 -_0803982C: .4byte gUnknown_20240A0 -_08039830: .4byte sub_08039840 - thumb_func_end oac_poke_ally_ - - thumb_func_start sub_08039834 -sub_08039834: @ 0x08039834 - ldr r1, _0803983C - str r1, [r0, #0x1c] - bx lr - .align 2, 0 -_0803983C: .4byte sub_08039840 - thumb_func_end sub_08039834 - - thumb_func_start sub_08039840 -sub_08039840: @ 0x08039840 - bx lr - .align 2, 0 - thumb_func_end sub_08039840 - - thumb_func_start sub_08039844 -sub_08039844: @ 0x08039844 - push {lr} - adds r2, r0, #0 - ldr r0, _08039868 - ldrh r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08039864 - ldrh r0, [r2, #0x30] - ldrh r1, [r2, #0x24] - adds r0, r0, r1 - strh r0, [r2, #0x24] - ldrh r0, [r2, #0x32] - ldrh r1, [r2, #0x26] - adds r0, r0, r1 - strh r0, [r2, #0x26] -_08039864: - pop {r0} - bx r0 - .align 2, 0 -_08039868: .4byte gUnknown_20240A0 - thumb_func_end sub_08039844 - - thumb_func_start DoBounceEffect -DoBounceEffect: @ 0x0803986C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sb, r2 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov sl, r3 - cmp r1, #0 - beq _080398A8 - ldr r0, _080398A4 - ldr r0, [r0] - ldr r1, [r0, #4] - lsls r2, r4, #1 - adds r0, r2, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #2 - b _080398BA - .align 2, 0 -_080398A4: .4byte gUnknown_2024174 -_080398A8: - ldr r0, _08039904 - ldr r0, [r0] - ldr r1, [r0, #4] - lsls r2, r4, #1 - adds r0, r2, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 -_080398BA: - ands r0, r1 - adds r6, r2, #0 - cmp r0, #0 - bne _08039970 - ldr r0, _08039908 - bl CreateInvisibleSpriteWithCallback - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - mov r0, r8 - cmp r0, #1 - bne _08039914 - ldr r0, _0803990C - adds r0, r4, r0 - ldrb r7, [r0] - ldr r2, _08039904 - ldr r0, [r2] - ldr r0, [r0, #4] - adds r1, r6, r4 - lsls r1, r1, #2 - adds r0, r1, r0 - strb r5, [r0, #2] - ldr r0, [r2] - ldr r0, [r0, #4] - adds r1, r1, r0 - ldrb r0, [r1] - movs r2, #2 - orrs r0, r2 - strb r0, [r1] - ldr r2, _08039910 - lsls r3, r5, #4 - adds r0, r3, r5 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0x80 - b _08039942 - .align 2, 0 -_08039904: .4byte gUnknown_2024174 -_08039908: .4byte SpriteCB_BounceEffect -_0803990C: .4byte gUnknown_3005AD0 -_08039910: .4byte gUnknown_20205AC -_08039914: - ldr r0, _08039980 - adds r0, r4, r0 - ldrb r7, [r0] - ldr r2, _08039984 - ldr r0, [r2] - ldr r0, [r0, #4] - adds r1, r6, r4 - lsls r1, r1, #2 - adds r0, r1, r0 - strb r5, [r0, #3] - ldr r0, [r2] - ldr r0, [r0, #4] - adds r1, r1, r0 - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - ldr r2, _08039988 - lsls r3, r5, #4 - adds r0, r3, r5 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0xc0 -_08039942: - strh r1, [r0, #0x2e] - adds r4, r2, #0 - adds r1, r3, r5 - lsls r1, r1, #2 - adds r1, r1, r4 - mov r2, sb - lsls r0, r2, #0x18 - asrs r0, r0, #0x18 - movs r2, #0 - strh r0, [r1, #0x30] - mov r3, sl - lsls r0, r3, #0x18 - asrs r0, r0, #0x18 - strh r0, [r1, #0x32] - strh r7, [r1, #0x34] - mov r0, r8 - strh r0, [r1, #0x36] - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - adds r0, r0, r4 - strh r2, [r0, #0x24] - strh r2, [r0, #0x26] -_08039970: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08039980: .4byte gUnknown_2023E88 -_08039984: .4byte gUnknown_2024174 -_08039988: .4byte gUnknown_20205AC - thumb_func_end DoBounceEffect - - thumb_func_start EndBounceEffect -EndBounceEffect: @ 0x0803998C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #1 - bne _080399E0 - ldr r6, _080399D8 - ldr r0, [r6] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r5, r0, #2 - adds r3, r5, r1 - ldrb r1, [r3] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08039A2E - ldr r2, _080399DC - ldrb r1, [r3, #2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x34] - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - bl DestroySprite - ldr r0, [r6] - ldr r1, [r0, #4] - adds r1, r5, r1 - ldrb r2, [r1] - movs r0, #3 - rsbs r0, r0, #0 - b _08039A1A - .align 2, 0 -_080399D8: .4byte gUnknown_2024174 -_080399DC: .4byte gUnknown_20205AC -_080399E0: - ldr r6, _08039A34 - ldr r0, [r6] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r5, r0, #2 - adds r3, r5, r1 - ldrb r1, [r3] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08039A2E - ldr r2, _08039A38 - ldrb r1, [r3, #3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x34] - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - bl DestroySprite - ldr r0, [r6] - ldr r1, [r0, #4] - adds r1, r5, r1 - ldrb r2, [r1] - movs r0, #5 - rsbs r0, r0, #0 -_08039A1A: - ands r0, r2 - strb r0, [r1] - ldr r0, _08039A38 - lsls r1, r4, #4 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r1, r1, r0 - movs r0, #0 - strh r0, [r1, #0x24] - strh r0, [r1, #0x26] -_08039A2E: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08039A34: .4byte gUnknown_2024174 -_08039A38: .4byte gUnknown_20205AC - thumb_func_end EndBounceEffect - - thumb_func_start SpriteCB_BounceEffect -SpriteCB_BounceEffect: @ 0x08039A3C - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x34] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #1 - bne _08039A54 - movs r2, #0x2e - ldrsh r0, [r4, r2] - b _08039A58 -_08039A54: - movs r1, #0x2e - ldrsh r0, [r4, r1] -_08039A58: - movs r2, #0x32 - ldrsh r1, [r4, r2] - bl Sin - ldr r2, _08039A84 - lsls r1, r5, #4 - adds r1, r1, r5 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r2, [r4, #0x32] - adds r0, r0, r2 - strh r0, [r1, #0x26] - ldrh r0, [r4, #0x30] - ldrh r1, [r4, #0x2e] - adds r0, r0, r1 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x2e] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08039A84: .4byte gUnknown_20205AC - thumb_func_end SpriteCB_BounceEffect - - thumb_func_start sub_08039A88 -sub_08039A88: @ 0x08039A88 - push {lr} - adds r2, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08039AA0 - ldrh r1, [r2, #0x32] - adds r0, r2, #0 - bl BattleAnimateBackSprite -_08039AA0: - pop {r0} - bx r0 - thumb_func_end sub_08039A88 - - thumb_func_start sub_08039AA4 -sub_08039AA4: @ 0x08039AA4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08039AE0 - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08039ABE - ldr r0, _08039AC4 - str r0, [r4, #0x1c] -_08039ABE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08039AC4: .4byte sub_08039840 - thumb_func_end sub_08039AA4 - - thumb_func_start sub_08039AC8 -sub_08039AC8: @ 0x08039AC8 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl StartSpriteAnim - ldr r0, _08039ADC - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08039ADC: .4byte sub_08039AA4 - thumb_func_end sub_08039AC8 - - thumb_func_start sub_08039AE0 -sub_08039AE0: @ 0x08039AE0 - push {lr} - adds r2, r0, #0 - adds r0, #0x2c - ldrb r1, [r0] - movs r0, #0x3f - ands r0, r1 - cmp r0, #0 - bne _08039B02 - ldr r1, _08039B08 - adds r0, r2, #0 - adds r0, #0x2b - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r2, #0 - adds r0, #0x28 - strb r1, [r0] -_08039B02: - pop {r0} - bx r0 - .align 2, 0 -_08039B08: .4byte gUnknown_82EBB30 - thumb_func_end sub_08039AE0 - - thumb_func_start sub_08039B0C -sub_08039B0C: @ 0x08039B0C - bx lr - .align 2, 0 - thumb_func_end sub_08039B0C - - thumb_func_start BeginBattleIntro -BeginBattleIntro: @ 0x08039B10 - push {lr} - bl BattleStartClearSetData - ldr r1, _08039B28 - movs r0, #0 - strb r0, [r1, #1] - ldr r1, _08039B2C - ldr r0, _08039B30 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08039B28: .4byte gUnknown_2023FD6 -_08039B2C: .4byte gUnknown_3005A64 -_08039B30: .4byte BattleIntroGetMonsData - thumb_func_end BeginBattleIntro - - thumb_func_start sub_08039B34 -sub_08039B34: @ 0x08039B34 - push {r4, r5, lr} - ldr r0, _08039B74 - ldr r0, [r0] - bl _call_via_r0 - ldr r1, _08039B78 - thumb_func_end sub_08039B34 - - thumb_func_start sub_08039B40 -sub_08039B40: @ 0x08039B40 - movs r0, #0 - strb r0, [r1] - ldr r0, _08039B7C - ldrb r0, [r0] - cmp r0, #0 - beq _08039B6E - ldr r5, _08039B80 - adds r4, r1, #0 -_08039B50: - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r0, [r0] - bl _call_via_r0 - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - ldr r1, _08039B7C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1] - cmp r0, r1 - blo _08039B50 -_08039B6E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08039B74: .4byte gUnknown_3005A64 -_08039B78: .4byte gUnknown_2023D08 -_08039B7C: .4byte gUnknown_2023D10 -_08039B80: .4byte gUnknown_3005AC0 - thumb_func_end sub_08039B40 - - thumb_func_start BattleStartClearSetData -BattleStartClearSetData: @ 0x08039B84 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - movs r0, #0 - bl TurnValuesCleanUp - bl SpecialStatusesClear - movs r2, #0 - movs r3, #0 - ldr r0, _08039C80 - mov sl, r0 - ldr r1, _08039C84 - mov sb, r1 - ldr r0, _08039C88 - mov r8, r0 - ldr r1, _08039C8C - mov ip, r1 - ldr r5, _08039C90 - movs r4, #0 - ldr r7, _08039C94 - ldr r6, _08039C98 -_08039BB4: - ldr r0, _08039C9C - adds r0, r4, r0 - str r3, [r0] - movs r1, #0 -_08039BBC: - adds r0, r5, r1 - strb r3, [r0] - adds r1, #1 - cmp r1, #0x1b - bls _08039BBC - movs r0, #2 - strb r0, [r5, #0x16] - ldr r1, _08039CA0 - adds r0, r2, r1 - strb r3, [r0] - mov r0, ip - strh r3, [r0] - mov r1, r8 - strh r3, [r1] - mov r0, sb - strh r3, [r0] - mov r1, sl - strh r3, [r1] - ldr r0, _08039CA4 - adds r1, r2, r0 - movs r0, #0xff - strb r0, [r1] - strh r3, [r6] - strh r3, [r7] - ldr r1, _08039CA8 - ldr r0, [r1] - ldr r0, [r0, #4] - adds r0, r0, r4 - str r3, [r0] - ldr r1, _08039CAC - adds r0, r4, r1 - str r3, [r0] - movs r0, #2 - add sl, r0 - add sb, r0 - add r8, r0 - add ip, r0 - adds r5, #0x1c - adds r4, #4 - adds r7, #2 - adds r6, #2 - adds r2, #1 - cmp r2, #3 - ble _08039BB4 - movs r5, #0 - ldr r3, _08039CB0 - ldr r4, _08039CB4 - movs r2, #1 -_08039C1C: - strh r5, [r4] - movs r1, #0 -_08039C20: - adds r0, r3, r1 - strb r5, [r0] - adds r1, #1 - cmp r1, #0xb - bls _08039C20 - adds r3, #0xc - adds r4, #2 - subs r2, #1 - cmp r2, #0 - bge _08039C1C - movs r1, #0 - ldr r2, _08039CB8 - strb r1, [r2] - ldr r0, _08039CBC - strb r1, [r0] - ldr r2, _08039CC0 - strh r1, [r2] - ldr r1, _08039CC4 - movs r2, #0 - movs r3, #0 -_08039C48: - adds r0, r1, r2 - strb r3, [r0] - adds r2, #1 - cmp r2, #0x2b - bls _08039C48 - ldr r2, _08039CC8 - movs r0, #0 - str r0, [r2] - ldr r0, _08039CCC - ldr r1, [r0] - movs r0, #0x80 - lsls r0, r0, #0x11 - ands r0, r1 - cmp r0, #0 - bne _08039CD4 - movs r0, #2 - ands r1, r0 - cmp r1, #0 - bne _08039CF2 - ldr r0, _08039CD0 - ldr r0, [r0] - ldrb r1, [r0, #0x15] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08039CF2 - movs r0, #0x80 - b _08039CF0 - .align 2, 0 -_08039C80: .4byte gUnknown_2023F04 -_08039C84: .4byte gUnknown_2023EFC -_08039C88: .4byte gUnknown_2023EF4 -_08039C8C: .4byte gUnknown_2023EEC -_08039C90: .4byte gUnknown_2023F60 -_08039C94: .4byte gUnknown_2023EE4 -_08039C98: .4byte gUnknown_2023F0C -_08039C9C: .4byte gUnknown_2023F50 -_08039CA0: .4byte gUnknown_2023F28 -_08039CA4: .4byte gUnknown_2023F14 -_08039CA8: .4byte gUnknown_202414C -_08039CAC: .4byte gUnknown_2023ED4 -_08039CB0: .4byte gUnknown_2023F38 -_08039CB4: .4byte gUnknown_2023F32 -_08039CB8: .4byte gUnknown_2023EAF -_08039CBC: .4byte gUnknown_2023EB0 -_08039CC0: .4byte gUnknown_2024070 -_08039CC4: .4byte gUnknown_2024074 -_08039CC8: .4byte gUnknown_2023F24 -_08039CCC: .4byte gUnknown_2022C90 -_08039CD0: .4byte gUnknown_3005AF0 -_08039CD4: - ldr r0, _08039E70 - ands r1, r0 - cmp r1, #0 - bne _08039CF2 - bl sub_08185D10 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08039CF2 - ldr r1, _08039E74 - ldr r0, [r1] - movs r1, #0x80 - orrs r0, r1 - ldr r2, _08039E74 -_08039CF0: - str r0, [r2] -_08039CF2: - ldr r3, _08039E78 - ldr r0, _08039E7C - ldr r0, [r0] - ldrb r0, [r0, #0x15] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1f - movs r1, #0 - strb r0, [r3, #0x1d] - ldr r0, _08039E80 - strb r1, [r0] - ldr r0, _08039E84 - strb r1, [r0] - ldr r0, _08039E88 - str r1, [r0] - ldr r0, _08039E8C - movs r2, #0 - strh r1, [r0] - ldr r1, _08039E90 - ldr r0, [r1] - ldr r0, [r0, #8] - adds r0, #0x20 - strb r2, [r0] - ldr r0, [r1] - ldr r0, [r0, #0xc] - adds r0, #0x20 - strb r2, [r0] - ldr r5, _08039E94 - ldr r6, _08039E98 - ldr r7, _08039E9C - ldr r0, _08039EA0 - mov r8, r0 - ldr r1, _08039EA4 - mov sb, r1 - ldr r2, _08039EA8 - mov sl, r2 - ldr r1, _08039EAC - movs r2, #0 - adds r0, r1, #7 -_08039D3E: - strb r2, [r0] - subs r0, #1 - cmp r0, r1 - bge _08039D3E - movs r4, #0 - strh r4, [r5] - movs r0, #0 - str r0, [r6] - strh r0, [r7] - strb r4, [r3, #0x18] - strb r4, [r3, #0x19] - mov r0, r8 - strb r4, [r0] - mov r1, sb - strb r4, [r1] - ldr r5, _08039EB0 - ldr r0, [r5] - adds r0, #0x6c - strb r4, [r0] - ldr r0, [r5] - adds r0, #0x79 - strb r4, [r0] - ldr r0, [r5] - adds r0, #0x7a - strb r4, [r0] - mov r0, sl - movs r1, #0xb - bl GetMonData - ldr r6, [r5] - adds r6, #0x7c - ldr r2, _08039EB4 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r1, [r1, #8] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08039EB8 - bl __divsi3 - strb r0, [r6] - ldr r0, [r5] - adds r0, #0x7b - movs r1, #3 - strb r1, [r0] - ldr r0, [r5] - strb r4, [r0, #0x12] - ldr r0, [r5] - adds r0, #0x4a - movs r1, #1 - strb r1, [r0] - movs r2, #0 - movs r1, #0 - adds r6, r5, #0 -_08039DAE: - ldr r0, [r5] - adds r0, r2, r0 - adds r0, #0x98 - strb r1, [r0] - ldr r0, [r5] - adds r0, r2, r0 - adds r0, #0xb8 - strb r1, [r0] - ldr r0, [r5] - adds r0, r2, r0 - adds r0, #0xc8 - strb r1, [r0] - ldr r0, [r5] - adds r0, r2, r0 - adds r0, #0xd0 - strb r1, [r0] - ldr r0, [r5] - adds r0, r2, r0 - adds r0, #0xe0 - strb r1, [r0] - ldr r0, [r5] - adds r0, r2, r0 - adds r0, #0xe8 - strb r1, [r0] - ldr r0, [r5] - adds r0, r2, r0 - adds r0, #0xf0 - strb r1, [r0] - ldr r0, [r5] - adds r0, r2, r0 - adds r0, #0xf8 - strb r1, [r0] - adds r2, #1 - cmp r2, #7 - ble _08039DAE - movs r2, #0 - ldr r4, _08039EB0 - movs r3, #0xa5 - lsls r3, r3, #2 - movs r1, #6 -_08039DFE: - ldr r0, [r4] - adds r0, r2, r0 - adds r0, r0, r3 - strb r1, [r0] - adds r2, #1 - cmp r2, #3 - ble _08039DFE - ldr r0, [r6] - adds r0, #0xdf - movs r1, #0 - strb r1, [r0] - ldr r0, [r6] - adds r0, #0x92 - strb r1, [r0] - bl Random - ldr r1, _08039EBC - strh r0, [r1] - ldr r1, _08039EC0 - movs r2, #0 - movs r3, #0 -_08039E28: - adds r0, r1, r2 - strb r3, [r0] - adds r2, #1 - cmp r2, #0x43 - bls _08039E28 - ldr r0, _08039EA8 - bl IsMonShiny - ldr r3, _08039EC0 - movs r1, #1 - ands r1, r0 - lsls r1, r1, #6 - ldrb r2, [r3, #5] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #5] - ldr r2, _08039EB0 - ldr r0, [r2] - movs r1, #0xa8 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - ldr r0, [r2] - ldr r2, _08039EC4 - adds r0, r0, r2 - strb r1, [r0] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08039E70: .4byte gUnknown_2000002 -_08039E74: .4byte gUnknown_2023F24 -_08039E78: .4byte gUnknown_2024118 -_08039E7C: .4byte gUnknown_3005AF0 -_08039E80: .4byte gUnknown_2023EB6 -_08039E84: .4byte gUnknown_2023FDE -_08039E88: .4byte gUnknown_2023D0C -_08039E8C: .4byte gUnknown_2023FD2 -_08039E90: .4byte gUnknown_202414C -_08039E94: .4byte gUnknown_2023FD0 -_08039E98: .4byte gUnknown_2023E94 -_08039E9C: .4byte gUnknown_20240A0 -_08039EA0: .4byte gUnknown_3005AB4 -_08039EA4: .4byte gUnknown_2023EB4 -_08039EA8: .4byte gUnknown_20243E8 -_08039EAC: .4byte gUnknown_2023FD6 -_08039EB0: .4byte gUnknown_2024140 -_08039EB4: .4byte gUnknown_82F0D54 -_08039EB8: .4byte 0x000004FB -_08039EBC: .4byte gUnknown_2023FD4 -_08039EC0: .4byte gUnknown_3005A70 -_08039EC4: .4byte 0x000002A1 - thumb_func_end BattleStartClearSetData - - thumb_func_start SwitchInClearSetData -SwitchInClearSetData: @ 0x08039EC8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - ldr r4, _0803A02C - ldr r5, _0803A030 - ldrb r1, [r5] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - mov r1, sp - adds r0, r0, r4 - ldm r0!, {r2, r3, r6} - stm r1!, {r2, r3, r6} - ldm r0!, {r2, r3, r7} - stm r1!, {r2, r3, r7} - ldr r0, [r0] - str r0, [r1] - ldr r2, _0803A034 - ldr r3, _0803A038 - ldrh r1, [r3] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0] - mov ip, r4 - mov sb, r5 - ldr r6, _0803A03C - mov sl, r6 - cmp r0, #0x7f - beq _08039FA0 - movs r5, #0 - mov r6, sb - movs r4, #0x58 - ldr r2, _0803A040 - adds r2, #0x18 - movs r1, #6 -_08039F18: - ldrb r0, [r6] - muls r0, r4, r0 - adds r0, r5, r0 - adds r0, r0, r2 - strb r1, [r0] - adds r5, #1 - cmp r5, #7 - ble _08039F18 - movs r5, #0 - ldr r7, _0803A044 - ldrb r7, [r7] - cmp r5, r7 - bge _08039F8C - ldr r0, _0803A048 - mov r8, r0 - ldr r4, _0803A02C - ldr r3, _0803A03C -_08039F3A: - movs r0, #0x58 - muls r0, r5, r0 - mov r1, r8 - adds r2, r0, r1 - ldr r1, [r2] - movs r0, #0x80 - lsls r0, r0, #0x13 - ands r0, r1 - cmp r0, #0 - beq _08039F5E - ldrb r0, [r4, #0x14] - ldr r6, _0803A030 - ldrb r6, [r6] - cmp r0, r6 - bne _08039F5E - ldr r0, _0803A04C - ands r1, r0 - str r1, [r2] -_08039F5E: - ldr r1, [r3] - movs r0, #0x18 - ands r0, r1 - cmp r0, #0 - beq _08039F7E - ldrb r0, [r4, #0x15] - ldr r7, _0803A030 - ldrb r7, [r7] - cmp r0, r7 - bne _08039F7E - movs r0, #0x19 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r3] - movs r0, #0 - strb r0, [r4, #0x15] -_08039F7E: - adds r4, #0x1c - adds r3, #4 - adds r5, #1 - ldr r0, _0803A044 - ldrb r0, [r0] - cmp r5, r0 - blt _08039F3A -_08039F8C: - ldr r1, _0803A038 - ldrh r0, [r1] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r2, _0803A034 - adds r1, r1, r2 - ldrb r0, [r1] - cmp r0, #0x7f - bne _0803A058 -_08039FA0: - mov r3, sb - ldrb r1, [r3] - movs r0, #0x58 - adds r2, r1, #0 - muls r2, r0, r2 - ldr r0, _0803A040 - adds r0, #0x50 - adds r2, r2, r0 - ldr r0, [r2] - ldr r1, _0803A050 - ands r0, r1 - str r0, [r2] - ldrb r1, [r3] - lsls r1, r1, #2 - add r1, sl - ldr r0, [r1] - ldr r2, _0803A054 - ands r0, r2 - str r0, [r1] - movs r5, #0 - ldr r6, _0803A044 - ldrb r6, [r6] - cmp r5, r6 - bge _0803A074 - mov r7, sb - movs r6, #0 -_08039FD4: - ldrb r0, [r7] - bl GetBattlerSide - adds r4, r0, #0 - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerSide - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - beq _0803A014 - ldr r1, _0803A03C - lsls r0, r5, #2 - adds r2, r0, r1 - ldr r1, [r2] - movs r0, #0x18 - ands r0, r1 - cmp r0, #0 - beq _0803A014 - ldr r0, _0803A02C - adds r0, r6, r0 - ldrb r0, [r0, #0x15] - ldrb r3, [r7] - cmp r0, r3 - bne _0803A014 - movs r0, #0x19 - rsbs r0, r0, #0 - ands r1, r0 - movs r0, #0x10 - orrs r1, r0 - str r1, [r2] -_0803A014: - adds r6, #0x1c - adds r5, #1 - ldr r0, _0803A044 - ldrb r0, [r0] - cmp r5, r0 - blt _08039FD4 - ldr r6, _0803A02C - mov ip, r6 - ldr r7, _0803A030 - mov sb, r7 - b _0803A074 - .align 2, 0 -_0803A02C: .4byte gUnknown_2023F60 -_0803A030: .4byte gUnknown_2023D08 -_0803A034: .4byte gUnknown_82ED220 -_0803A038: .4byte gUnknown_2023E8E -_0803A03C: .4byte gUnknown_2023F50 -_0803A040: .4byte gUnknown_2023D28 -_0803A044: .4byte gUnknown_2023D10 -_0803A048: .4byte gUnknown_2023D78 -_0803A04C: .4byte 0xFBFFFFFF -_0803A050: .4byte 0x15100007 -_0803A054: .4byte 0x0003043F -_0803A058: - mov r0, sb - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - ldr r1, _0803A354 - adds r1, #0x50 - adds r0, r0, r1 - movs r1, #0 - str r1, [r0] - mov r2, sb - ldrb r0, [r2] - lsls r0, r0, #2 - add r0, sl - str r1, [r0] -_0803A074: - movs r5, #0 - ldr r3, _0803A358 - mov r8, r3 - ldr r6, _0803A35C - mov sl, r6 - ldr r7, _0803A360 - ldrb r7, [r7] - cmp r5, r7 - bge _0803A0D4 - ldr r3, _0803A364 - ldr r7, _0803A368 - ldr r6, _0803A36C -_0803A08C: - movs r0, #0x58 - muls r0, r5, r0 - adds r4, r0, r3 - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r7 - ldr r0, [r0] - lsls r2, r0, #0x10 - ldr r1, [r4] - adds r0, r1, #0 - ands r0, r2 - cmp r0, #0 - beq _0803A0AA - bics r1, r2 - str r1, [r4] -_0803A0AA: - ldr r1, [r4] - movs r0, #0xe0 - lsls r0, r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0803A0CA - mov r2, r8 - ldr r0, [r2] - adds r0, r5, r0 - ldrb r0, [r0, #0x14] - ldrb r2, [r6] - cmp r0, r2 - bne _0803A0CA - ldr r0, _0803A370 - ands r1, r0 - str r1, [r4] -_0803A0CA: - adds r5, #1 - ldr r0, _0803A360 - ldrb r0, [r0] - cmp r5, r0 - blt _0803A08C -_0803A0D4: - mov r1, sb - ldrb r0, [r1] - add r0, sl - movs r1, #0 - strb r1, [r0] - mov r2, sb - ldrb r0, [r2] - ldr r3, _0803A374 - adds r0, r0, r3 - strb r1, [r0] - ldrb r1, [r2] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - mov r6, ip - adds r1, r0, r6 - movs r5, #0 - movs r2, #0 -_0803A0F8: - adds r0, r1, r5 - strb r2, [r0] - adds r5, #1 - cmp r5, #0x1b - bls _0803A0F8 - ldr r7, _0803A378 - ldrh r0, [r7] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _0803A37C - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0x7f - bne _0803A184 - mov r2, sb - ldrb r1, [r2] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - add r0, ip - mov r1, sp - ldrb r1, [r1, #0xa] - strb r1, [r0, #0xa] - ldrb r1, [r2] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - add r0, ip - mov r1, sp - ldrb r1, [r1, #0x15] - strb r1, [r0, #0x15] - ldrb r0, [r2] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - add r1, ip - mov r0, sp - ldrb r2, [r0, #0xf] - lsls r2, r2, #0x1c - movs r4, #0xf - lsrs r2, r2, #0x1c - ldrb r3, [r1, #0xf] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, #0xf] - mov r3, sb - ldrb r1, [r3] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - add r0, ip - mov r1, sp - ldrb r1, [r1, #0xf] - lsrs r1, r1, #4 - lsls r1, r1, #4 - ldrb r2, [r0, #0xf] - ands r4, r2 - orrs r4, r1 - strb r4, [r0, #0xf] - ldrb r1, [r3] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - add r0, ip - mov r1, sp - ldrb r1, [r1, #0x14] - strb r1, [r0, #0x14] -_0803A184: - movs r0, #0 - ldr r6, _0803A380 - strb r0, [r6] - mov r7, sb - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - add r0, ip - movs r4, #0 - movs r1, #2 - strb r1, [r0, #0x16] - ldrb r0, [r7] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - add r1, ip - mov r0, sp - ldrb r0, [r0, #0x18] - movs r2, #2 - ands r2, r0 - ldrb r3, [r1, #0x18] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, #0x18] - ldrb r0, [r7] - lsls r0, r0, #1 - ldr r1, _0803A384 - adds r0, r0, r1 - movs r2, #0 - strh r4, [r0] - ldrb r0, [r7] - lsls r0, r0, #1 - ldr r3, _0803A388 - adds r0, r0, r3 - strh r4, [r0] - ldrb r0, [r7] - lsls r0, r0, #1 - ldr r6, _0803A38C - adds r0, r0, r6 - strh r4, [r0] - ldrb r0, [r7] - lsls r0, r0, #1 - ldr r7, _0803A390 - adds r0, r0, r7 - strh r4, [r0] - mov r1, sb - ldrb r0, [r1] - lsls r0, r0, #1 - ldr r3, _0803A394 - adds r0, r0, r3 - strh r4, [r0] - ldrb r0, [r1] - ldr r6, _0803A398 - adds r0, r0, r6 - movs r1, #0xff - strb r1, [r0] - mov r7, sb - ldrb r0, [r7] - mov r3, r8 - ldr r1, [r3] - lsls r0, r0, #1 - adds r0, r0, r1 - adds r0, #0x98 - strb r2, [r0] - ldrb r0, [r7] - ldr r1, [r3] - lsls r0, r0, #1 - adds r0, r0, r1 - adds r0, #0x99 - strb r2, [r0] - ldrb r0, [r7] - ldr r1, [r3] - lsls r0, r0, #3 - adds r0, r0, r1 - adds r0, #0xe0 - strb r2, [r0] - ldrb r0, [r7] - ldr r1, [r3] - lsls r0, r0, #3 - adds r0, r0, r1 - adds r0, #0xe1 - strb r2, [r0] - ldrb r0, [r7] - ldr r1, [r3] - lsls r0, r0, #3 - adds r0, r0, r1 - adds r0, #0xe2 - strb r2, [r0] - ldrb r0, [r7] - ldr r1, [r3] - lsls r0, r0, #3 - adds r0, r0, r1 - adds r0, #0xe3 - strb r2, [r0] - ldrb r0, [r7] - ldr r1, [r3] - lsls r0, r0, #3 - adds r0, r0, r1 - adds r0, #0xe4 - strb r2, [r0] - ldrb r0, [r7] - ldr r1, [r3] - lsls r0, r0, #3 - adds r0, r0, r1 - adds r0, #0xe5 - strb r2, [r0] - ldrb r0, [r7] - ldr r1, [r3] - lsls r0, r0, #3 - adds r0, r0, r1 - adds r0, #0xe6 - strb r2, [r0] - ldrb r0, [r7] - ldr r1, [r3] - lsls r0, r0, #3 - adds r0, r0, r1 - adds r0, #0xe7 - strb r2, [r0] - ldr r1, [r3] - adds r1, #0x92 - ldrb r0, [r7] - lsls r0, r0, #2 - ldr r6, _0803A368 - adds r0, r0, r6 - ldr r2, [r0] - ldrb r0, [r1] - bics r0, r2 - strb r0, [r1] - movs r5, #0 - ldr r7, _0803A360 - ldrb r7, [r7] - cmp r5, r7 - bge _0803A2F8 - mov r3, sb - mov r7, r8 - movs r6, #0 -_0803A29A: - ldrb r0, [r3] - cmp r5, r0 - beq _0803A2D0 - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - str r3, [sp, #0x1c] - bl GetBattlerSide - adds r4, r0, #0 - ldr r3, [sp, #0x1c] - ldrb r0, [r3] - bl GetBattlerSide - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - ldr r3, [sp, #0x1c] - cmp r4, r0 - beq _0803A2D0 - ldr r0, [r7] - lsls r1, r5, #1 - adds r0, r1, r0 - adds r0, #0x98 - strb r6, [r0] - ldr r0, [r7] - adds r1, r1, r0 - adds r1, #0x99 - strb r6, [r1] -_0803A2D0: - ldrb r0, [r3] - ldr r1, [r7] - lsls r0, r0, #1 - lsls r2, r5, #3 - adds r0, r0, r2 - adds r0, r0, r1 - adds r0, #0xe0 - strb r6, [r0] - ldrb r0, [r3] - ldr r1, [r7] - lsls r0, r0, #1 - adds r0, r0, r2 - adds r0, r0, r1 - adds r0, #0xe1 - strb r6, [r0] - adds r5, #1 - ldr r0, _0803A360 - ldrb r0, [r0] - cmp r5, r0 - blt _0803A29A -_0803A2F8: - mov r1, sb - ldrb r0, [r1] - mov r2, r8 - ldr r1, [r2] - lsls r0, r0, #1 - adds r0, r0, r1 - adds r0, #0xc8 - movs r2, #0 - strb r2, [r0] - mov r3, sb - ldrb r0, [r3] - mov r6, r8 - ldr r1, [r6] - lsls r0, r0, #1 - adds r0, r0, r1 - adds r0, #0xc9 - strb r2, [r0] - ldr r0, _0803A39C - ldr r0, [r0] - ldr r1, [r0, #4] - ldrb r0, [r3] - lsls r0, r0, #2 - adds r1, r1, r0 - movs r2, #0 - str r2, [r1] - ldr r0, _0803A378 - strh r2, [r0] - ldr r0, [r6] - adds r0, #0xda - movs r1, #0xff - strb r1, [r0] - ldrb r0, [r3] - bl ClearBattlerMoveHistory - mov r7, sb - ldrb r0, [r7] - bl ClearBattlerAbilityHistory - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0803A354: .4byte gUnknown_2023D28 -_0803A358: .4byte gUnknown_2024140 -_0803A35C: .4byte gUnknown_2024150 -_0803A360: .4byte gUnknown_2023D10 -_0803A364: .4byte gUnknown_2023D78 -_0803A368: .4byte gUnknown_82FACB4 -_0803A36C: .4byte gUnknown_2023D08 -_0803A370: .4byte 0xFFFF1FFF -_0803A374: .4byte gUnknown_2024154 -_0803A378: .4byte gUnknown_2023E8E -_0803A37C: .4byte gUnknown_82ED220 -_0803A380: .4byte gUnknown_2023F20 -_0803A384: .4byte gUnknown_2023EEC -_0803A388: .4byte gUnknown_2023EF4 -_0803A38C: .4byte gUnknown_2023EFC -_0803A390: .4byte gUnknown_2023F04 -_0803A394: .4byte gUnknown_2023EE4 -_0803A398: .4byte gUnknown_2023F14 -_0803A39C: .4byte gUnknown_202414C - thumb_func_end SwitchInClearSetData - - thumb_func_start FaintClearSetData -FaintClearSetData: @ 0x0803A3A0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - movs r5, #0 - ldr r6, _0803A764 - ldr r0, _0803A768 - mov r8, r0 - ldr r1, _0803A76C - mov ip, r1 - ldr r2, _0803A770 - mov sb, r2 - ldr r3, _0803A774 - mov sl, r3 - ldr r7, _0803A778 - ldr r4, _0803A77C - movs r3, #0x58 - adds r2, r6, #0 - adds r2, #0x18 - movs r1, #6 -_0803A3CC: - ldrb r0, [r4] - muls r0, r3, r0 - adds r0, r5, r0 - adds r0, r0, r2 - strb r1, [r0] - adds r5, #1 - cmp r5, #7 - ble _0803A3CC - ldr r0, _0803A77C - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r2, r6, #0 - adds r2, #0x50 - adds r0, r0, r2 - movs r1, #0 - str r1, [r0] - ldr r3, _0803A77C - ldrb r0, [r3] - lsls r0, r0, #2 - add r0, r8 - str r1, [r0] - movs r5, #0 - ldr r6, _0803A780 - ldrb r6, [r6] - cmp r5, r6 - bge _0803A474 - adds r3, r2, #0 - movs r4, #0 - ldr r0, _0803A784 - mov r8, r0 -_0803A40A: - ldr r1, [r3] - movs r0, #0x80 - lsls r0, r0, #0x13 - ands r0, r1 - cmp r0, #0 - beq _0803A42A - ldr r2, _0803A788 - adds r0, r4, r2 - ldrb r0, [r0, #0x14] - ldr r6, _0803A77C - ldrb r6, [r6] - cmp r0, r6 - bne _0803A42A - ldr r0, _0803A78C - ands r1, r0 - str r1, [r3] -_0803A42A: - ldr r1, _0803A77C - ldrb r0, [r1] - lsls r0, r0, #2 - add r0, r8 - ldr r0, [r0] - lsls r2, r0, #0x10 - ldr r1, [r3] - adds r0, r1, #0 - ands r0, r2 - cmp r0, #0 - beq _0803A444 - bics r1, r2 - str r1, [r3] -_0803A444: - ldr r1, [r3] - movs r0, #0xe0 - lsls r0, r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0803A466 - mov r2, ip - ldr r0, [r2] - adds r0, r5, r0 - ldrb r0, [r0, #0x14] - ldr r6, _0803A77C - ldrb r6, [r6] - cmp r0, r6 - bne _0803A466 - ldr r0, _0803A790 - ands r1, r0 - str r1, [r3] -_0803A466: - adds r3, #0x58 - adds r4, #0x1c - adds r5, #1 - ldr r0, _0803A780 - ldrb r0, [r0] - cmp r5, r0 - blt _0803A40A -_0803A474: - ldr r1, _0803A77C - ldrb r0, [r1] - add r0, sb - movs r1, #0 - strb r1, [r0] - ldr r2, _0803A77C - ldrb r0, [r2] - add r0, sl - strb r1, [r0] - ldrb r1, [r2] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r3, _0803A788 - adds r1, r0, r3 - movs r5, #0 - movs r2, #0 -_0803A496: - adds r0, r1, r5 - strb r2, [r0] - adds r5, #1 - cmp r5, #0x1b - bls _0803A496 - ldr r6, _0803A77C - ldrb r1, [r6] - lsls r1, r1, #4 - adds r1, r1, r7 - ldrb r2, [r1] - movs r0, #2 - rsbs r0, r0, #0 - mov sb, r0 - ands r0, r2 - strb r0, [r1] - ldrb r1, [r6] - lsls r1, r1, #4 - adds r1, r1, r7 - ldrb r2, [r1] - movs r3, #3 - rsbs r3, r3, #0 - mov r8, r3 - mov r0, r8 - ands r0, r2 - strb r0, [r1] - ldrb r1, [r6] - lsls r1, r1, #4 - adds r1, r1, r7 - ldrb r2, [r1] - movs r6, #5 - rsbs r6, r6, #0 - adds r0, r6, #0 - ands r0, r2 - strb r0, [r1] - ldr r0, _0803A77C - ldrb r1, [r0] - lsls r1, r1, #4 - adds r1, r1, r7 - ldrb r2, [r1] - subs r3, #6 - mov sl, r3 - mov r0, sl - ands r0, r2 - strb r0, [r1] - ldr r0, _0803A77C - ldrb r1, [r0] - lsls r1, r1, #4 - adds r1, r1, r7 - ldrb r2, [r1] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r2, _0803A77C - ldrb r1, [r2] - lsls r1, r1, #4 - adds r1, r1, r7 - ldrb r2, [r1] - movs r5, #0x21 - rsbs r5, r5, #0 - adds r0, r5, #0 - ands r0, r2 - strb r0, [r1] - ldr r3, _0803A77C - ldrb r1, [r3] - lsls r1, r1, #4 - adds r1, r1, r7 - ldrb r2, [r1] - movs r4, #0x41 - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r2 - strb r0, [r1] - ldrb r1, [r3] - lsls r1, r1, #4 - adds r1, r1, r7 - ldrb r2, [r1] - movs r3, #0x7f - adds r0, r3, #0 - ands r0, r2 - strb r0, [r1] - ldr r0, _0803A77C - ldrb r1, [r0] - lsls r1, r1, #4 - adds r1, r1, r7 - ldrb r2, [r1, #1] - mov r0, sb - ands r0, r2 - strb r0, [r1, #1] - ldr r2, _0803A77C - ldrb r1, [r2] - lsls r1, r1, #4 - adds r1, r1, r7 - ldrb r2, [r1, #1] - mov r0, r8 - ands r0, r2 - strb r0, [r1, #1] - ldr r0, _0803A77C - ldrb r1, [r0] - lsls r1, r1, #4 - adds r1, r1, r7 - ldrb r2, [r1, #1] - adds r0, r6, #0 - ands r0, r2 - strb r0, [r1, #1] - ldr r2, _0803A77C - ldrb r1, [r2] - lsls r1, r1, #4 - adds r1, r1, r7 - ldrb r2, [r1, #1] - movs r0, #0x19 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #1] - ldr r1, _0803A77C - ldrb r0, [r1] - lsls r0, r0, #4 - adds r0, r0, r7 - ldrb r1, [r0, #1] - ands r5, r1 - strb r5, [r0, #1] - ldr r2, _0803A77C - ldrb r0, [r2] - lsls r0, r0, #4 - adds r0, r0, r7 - ldrb r1, [r0, #1] - ands r4, r1 - strb r4, [r0, #1] - ldrb r0, [r2] - lsls r0, r0, #4 - adds r0, r0, r7 - ldrb r1, [r0, #1] - ands r3, r1 - strb r3, [r0, #1] - ldrb r0, [r2] - lsls r0, r0, #4 - adds r0, r0, r7 - ldrb r1, [r0, #2] - mov r3, sb - ands r3, r1 - strb r3, [r0, #2] - ldrb r0, [r2] - lsls r0, r0, #4 - adds r0, r0, r7 - ldrb r1, [r0, #2] - mov r2, r8 - ands r2, r1 - strb r2, [r0, #2] - ldr r3, _0803A77C - ldrb r0, [r3] - lsls r0, r0, #4 - adds r0, r0, r7 - ldrb r1, [r0, #2] - ands r6, r1 - strb r6, [r0, #2] - ldrb r0, [r3] - lsls r0, r0, #4 - adds r0, r0, r7 - ldrb r1, [r0, #2] - mov r6, sl - ands r6, r1 - strb r6, [r0, #2] - ldrb r1, [r3] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0803A788 - adds r0, r0, r1 - movs r2, #0 - movs r1, #2 - strb r1, [r0, #0x16] - ldrb r0, [r3] - lsls r0, r0, #1 - ldr r3, _0803A794 - adds r0, r0, r3 - movs r3, #0 - strh r2, [r0] - ldr r6, _0803A77C - ldrb r0, [r6] - lsls r0, r0, #1 - ldr r1, _0803A798 - adds r0, r0, r1 - strh r2, [r0] - ldrb r0, [r6] - lsls r0, r0, #1 - ldr r6, _0803A79C - adds r0, r0, r6 - strh r2, [r0] - ldr r1, _0803A77C - ldrb r0, [r1] - lsls r0, r0, #1 - ldr r6, _0803A7A0 - adds r0, r0, r6 - strh r2, [r0] - ldrb r0, [r1] - lsls r0, r0, #1 - ldr r1, _0803A7A4 - adds r0, r0, r1 - strh r2, [r0] - ldr r2, _0803A77C - ldrb r0, [r2] - ldr r6, _0803A7A8 - adds r0, r0, r6 - movs r1, #0xff - strb r1, [r0] - ldrb r0, [r2] - mov r2, ip - ldr r1, [r2] - lsls r0, r0, #1 - adds r0, r0, r1 - adds r0, #0xc8 - strb r3, [r0] - ldr r6, _0803A77C - ldrb r0, [r6] - ldr r1, [r2] - lsls r0, r0, #1 - adds r0, r0, r1 - adds r0, #0xc9 - strb r3, [r0] - ldrb r0, [r6] - ldr r1, [r2] - lsls r0, r0, #1 - adds r0, r0, r1 - adds r0, #0x98 - strb r3, [r0] - ldrb r0, [r6] - ldr r1, [r2] - lsls r0, r0, #1 - adds r0, r0, r1 - adds r0, #0x99 - strb r3, [r0] - ldrb r0, [r6] - ldr r1, [r2] - lsls r0, r0, #3 - adds r0, r0, r1 - adds r0, #0xe0 - strb r3, [r0] - ldrb r0, [r6] - ldr r1, [r2] - lsls r0, r0, #3 - adds r0, r0, r1 - adds r0, #0xe1 - strb r3, [r0] - ldrb r0, [r6] - ldr r1, [r2] - lsls r0, r0, #3 - adds r0, r0, r1 - adds r0, #0xe2 - strb r3, [r0] - ldrb r0, [r6] - ldr r1, [r2] - lsls r0, r0, #3 - adds r0, r0, r1 - adds r0, #0xe3 - strb r3, [r0] - ldrb r0, [r6] - ldr r1, [r2] - lsls r0, r0, #3 - adds r0, r0, r1 - adds r0, #0xe4 - strb r3, [r0] - ldrb r0, [r6] - ldr r1, [r2] - lsls r0, r0, #3 - adds r0, r0, r1 - adds r0, #0xe5 - strb r3, [r0] - ldrb r0, [r6] - ldr r1, [r2] - lsls r0, r0, #3 - adds r0, r0, r1 - adds r0, #0xe6 - strb r3, [r0] - ldrb r0, [r6] - ldr r1, [r2] - lsls r0, r0, #3 - adds r0, r0, r1 - adds r0, #0xe7 - strb r3, [r0] - ldr r1, [r2] - adds r1, #0x92 - ldrb r0, [r6] - lsls r0, r0, #2 - ldr r2, _0803A784 - adds r0, r0, r2 - ldr r2, [r0] - ldrb r0, [r1] - bics r0, r2 - strb r0, [r1] - movs r5, #0 - ldr r3, _0803A780 - ldrb r3, [r3] - cmp r5, r3 - bge _0803A746 - adds r3, r6, #0 - mov r7, ip - movs r6, #0 -_0803A6E8: - ldrb r0, [r3] - cmp r5, r0 - beq _0803A71E - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - str r3, [sp] - bl GetBattlerSide - adds r4, r0, #0 - ldr r3, [sp] - ldrb r0, [r3] - bl GetBattlerSide - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - ldr r3, [sp] - cmp r4, r0 - beq _0803A71E - ldr r0, [r7] - lsls r1, r5, #1 - adds r0, r1, r0 - adds r0, #0x98 - strb r6, [r0] - ldr r0, [r7] - adds r1, r1, r0 - adds r1, #0x99 - strb r6, [r1] -_0803A71E: - ldrb r0, [r3] - ldr r1, [r7] - lsls r0, r0, #1 - lsls r2, r5, #3 - adds r0, r0, r2 - adds r0, r0, r1 - adds r0, #0xe0 - strb r6, [r0] - ldrb r0, [r3] - ldr r1, [r7] - lsls r0, r0, #1 - adds r0, r0, r2 - adds r0, r0, r1 - adds r0, #0xe1 - strb r6, [r0] - adds r5, #1 - ldr r0, _0803A780 - ldrb r0, [r0] - cmp r5, r0 - blt _0803A6E8 -_0803A746: - ldr r0, _0803A7AC - ldr r0, [r0] - ldr r1, [r0, #4] - ldr r2, _0803A77C - ldrb r0, [r2] - lsls r0, r0, #2 - adds r1, r1, r0 - movs r0, #0 - str r0, [r1] - ldr r4, _0803A764 - ldrb r0, [r2] - movs r3, #0x58 - adds r2, r0, #0 - muls r2, r3, r2 - b _0803A7B0 - .align 2, 0 -_0803A764: .4byte gUnknown_2023D28 -_0803A768: .4byte gUnknown_2023F50 -_0803A76C: .4byte gUnknown_2024140 -_0803A770: .4byte gUnknown_2024150 -_0803A774: .4byte gUnknown_2024154 -_0803A778: .4byte gUnknown_2023FE0 -_0803A77C: .4byte gUnknown_2023D08 -_0803A780: .4byte gUnknown_2023D10 -_0803A784: .4byte gUnknown_82FACB4 -_0803A788: .4byte gUnknown_2023F60 -_0803A78C: .4byte 0xFBFFFFFF -_0803A790: .4byte 0xFFFF1FFF -_0803A794: .4byte gUnknown_2023EEC -_0803A798: .4byte gUnknown_2023EF4 -_0803A79C: .4byte gUnknown_2023EFC -_0803A7A0: .4byte gUnknown_2023F04 -_0803A7A4: .4byte gUnknown_2023EE4 -_0803A7A8: .4byte gUnknown_2023F14 -_0803A7AC: .4byte gUnknown_202414C -_0803A7B0: - adds r2, r2, r4 - ldr r5, _0803A7FC - ldrh r1, [r2] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r0, [r0, #6] - adds r2, #0x21 - strb r0, [r2] - ldr r6, _0803A800 - ldrb r0, [r6] - adds r1, r0, #0 - muls r1, r3, r1 - adds r1, r1, r4 - ldrh r2, [r1] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r0, [r0, #7] - adds r1, #0x22 - strb r0, [r1] - ldrb r0, [r6] - bl ClearBattlerMoveHistory - ldrb r0, [r6] - bl ClearBattlerAbilityHistory - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0803A7FC: .4byte gUnknown_82F0D54 -_0803A800: .4byte gUnknown_2023D08 - thumb_func_end FaintClearSetData - - thumb_func_start BattleIntroGetMonsData -BattleIntroGetMonsData: @ 0x0803A804 - push {r4, r5, lr} - ldr r5, _0803A814 - ldrb r0, [r5] - cmp r0, #0 - beq _0803A818 - cmp r0, #1 - beq _0803A83C - b _0803A872 - .align 2, 0 -_0803A814: .4byte gUnknown_2023FD6 -_0803A818: - ldr r4, _0803A838 - ldrb r0, [r5, #1] - strb r0, [r4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl BtlController_EmitGetMonData - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - b _0803A872 - .align 2, 0 -_0803A838: .4byte gUnknown_2023D08 -_0803A83C: - ldr r0, _0803A860 - ldr r2, [r0] - cmp r2, #0 - bne _0803A872 - ldrb r0, [r5, #1] - adds r0, #1 - strb r0, [r5, #1] - ldr r1, _0803A864 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1] - cmp r0, r1 - bne _0803A870 - ldr r1, _0803A868 - ldr r0, _0803A86C - str r0, [r1] - b _0803A872 - .align 2, 0 -_0803A860: .4byte gUnknown_2023D0C -_0803A864: .4byte gUnknown_2023D10 -_0803A868: .4byte gUnknown_3005A64 -_0803A86C: .4byte BattleIntroPrepareBackgroundSlide -_0803A870: - strb r2, [r5] -_0803A872: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end BattleIntroGetMonsData - - thumb_func_start BattleIntroPrepareBackgroundSlide -BattleIntroPrepareBackgroundSlide: @ 0x0803A878 - push {r4, r5, lr} - ldr r0, _0803A8B0 - ldr r5, [r0] - cmp r5, #0 - bne _0803A8A8 - movs r0, #0 - bl GetBattlerAtPosition - ldr r4, _0803A8B4 - strb r0, [r4] - ldr r0, _0803A8B8 - ldrb r1, [r0] - movs r0, #0 - bl BtlController_EmitIntroSlide - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldr r1, _0803A8BC - ldr r0, _0803A8C0 - str r0, [r1] - ldr r0, _0803A8C4 - strb r5, [r0] - strb r5, [r0, #1] -_0803A8A8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0803A8B0: .4byte gUnknown_2023D0C -_0803A8B4: .4byte gUnknown_2023D08 -_0803A8B8: .4byte gUnknown_2022C94 -_0803A8BC: .4byte gUnknown_3005A64 -_0803A8C0: .4byte BattleIntroDrawTrainersOrMonsSprites -_0803A8C4: .4byte gUnknown_2023FD6 - thumb_func_end BattleIntroPrepareBackgroundSlide - - thumb_func_start BattleIntroDrawTrainersOrMonsSprites -BattleIntroDrawTrainersOrMonsSprites: @ 0x0803A8C8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _0803A92C - ldr r1, [r0] - cmp r1, #0 - beq _0803A8DC - b _0803AB92 -_0803A8DC: - ldr r2, _0803A930 - strb r1, [r2] - ldr r0, _0803A934 - ldrb r0, [r0] - cmp r1, r0 - blo _0803A8EA - b _0803AB8C -_0803A8EA: - movs r7, #0x58 - ldr r0, _0803A938 - mov r8, r0 - mov sb, r2 - movs r1, #0x48 - add r1, r8 - mov sl, r1 -_0803A8F8: - ldr r0, _0803A93C - ldr r0, [r0] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803A940 - ldr r4, _0803A930 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803A940 - ldrb r0, [r4] - muls r0, r7, r0 - mov r2, r8 - adds r3, r0, r2 - movs r2, #0 - movs r1, #0 -_0803A91E: - adds r0, r3, r2 - strb r1, [r0] - adds r2, #1 - cmp r2, #0x57 - bls _0803A91E - b _0803AA0E - .align 2, 0 -_0803A92C: .4byte gUnknown_2023D0C -_0803A930: .4byte gUnknown_2023D08 -_0803A934: .4byte gUnknown_2023D10 -_0803A938: .4byte gUnknown_2023D28 -_0803A93C: .4byte gUnknown_2022C90 -_0803A940: - mov r1, sb - ldrb r0, [r1] - muls r0, r7, r0 - mov r2, r8 - adds r3, r0, r2 - movs r2, #0 - ldr r6, _0803AA88 - ldr r5, _0803AA8C - ldr r4, _0803AA90 -_0803A952: - adds r0, r3, r2 - ldrb r1, [r4] - lsls r1, r1, #9 - adds r1, #4 - adds r1, r2, r1 - adds r1, r1, r5 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, #0x57 - bls _0803A952 - mov r1, sb - ldrb r0, [r1] - adds r2, r0, #0 - muls r2, r7, r2 - add r2, r8 - ldrh r1, [r2] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r0, [r0, #6] - adds r2, #0x21 - strb r0, [r2] - mov r2, sb - ldrb r0, [r2] - adds r2, r0, #0 - muls r2, r7, r2 - add r2, r8 - ldrh r1, [r2] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r0, [r0, #7] - adds r2, #0x22 - strb r0, [r2] - mov r1, sb - ldrb r0, [r1] - adds r1, r0, #0 - muls r1, r7, r1 - add r1, r8 - ldrh r0, [r1] - ldrb r1, [r1, #0x17] - lsrs r1, r1, #7 - bl GetAbilityBySpecies - mov r2, sb - ldrb r1, [r2] - muls r1, r7, r1 - add r1, r8 - adds r1, #0x20 - strb r0, [r1] - ldrb r0, [r2] - bl GetBattlerSide - ldr r1, _0803AA94 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, #0xa8 - ldr r1, [r1] - adds r1, r1, r0 - mov r2, sb - ldrb r0, [r2] - muls r0, r7, r0 - add r0, r8 - ldrh r0, [r0, #0x28] - strh r0, [r1] - movs r2, #0 - ldr r4, _0803AA90 - movs r5, #0x58 - ldr r1, _0803AA98 - adds r6, r4, #0 - movs r0, #0x18 - rsbs r0, r0, #0 - adds r0, r0, r1 - mov ip, r0 - movs r3, #6 -_0803A9EE: - ldrb r0, [r4] - muls r0, r5, r0 - adds r0, r2, r0 - adds r0, r0, r1 - strb r3, [r0] - adds r2, #1 - cmp r2, #7 - ble _0803A9EE - ldrb r0, [r6] - adds r1, r0, #0 - muls r1, r7, r1 - mov r0, ip - adds r0, #0x50 - adds r1, r1, r0 - movs r0, #0 - str r0, [r1] -_0803AA0E: - ldr r4, _0803AA90 - ldrb r0, [r4] - bl sub_080A630C - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803AA28 - movs r0, #0 - bl BtlController_EmitDrawTrainerPic - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_0803AA28: - ldr r5, _0803AA9C - ldr r0, [r5] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _0803AAA4 - ldrb r0, [r4] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0803AA4E - movs r0, #0 - bl BtlController_EmitDrawTrainerPic - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_0803AA4E: - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0803AB04 - ldr r0, [r5] - ldr r1, _0803AAA0 - ands r0, r1 - cmp r0, #0 - bne _0803AB04 - ldrb r0, [r4] - muls r0, r7, r0 - add r0, r8 - ldrh r0, [r0] - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r4] - muls r1, r7, r1 - add r1, sl - ldr r2, [r1] - movs r1, #2 - bl HandleSetPokedexFlag - b _0803AB04 - .align 2, 0 -_0803AA88: .4byte gUnknown_82F0D54 -_0803AA8C: .4byte gUnknown_2023508 -_0803AA90: .4byte gUnknown_2023D08 -_0803AA94: .4byte gUnknown_2024140 -_0803AA98: .4byte gUnknown_2023D40 -_0803AA9C: .4byte gUnknown_2022C90 -_0803AAA0: .4byte 0x063F0902 -_0803AAA4: - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0803AB04 - ldr r0, [r5] - ldr r1, _0803ABA0 - ands r0, r1 - cmp r0, #0 - bne _0803AADA - ldrb r0, [r4] - muls r0, r7, r0 - add r0, r8 - ldrh r0, [r0] - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r4] - muls r1, r7, r1 - add r1, sl - ldr r2, [r1] - movs r1, #2 - bl HandleSetPokedexFlag -_0803AADA: - movs r0, #0 - bl BtlController_EmitLoadMonSprite - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldr r1, _0803ABA4 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0803ABA8 - adds r0, r0, r1 - movs r1, #0xb - movs r2, #0 - bl GetMonData - ldr r1, _0803ABAC - strh r0, [r1, #0x20] -_0803AB04: - ldr r0, _0803ABB0 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0803AB3A - ldr r4, _0803ABB4 - ldrb r0, [r4] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - beq _0803AB2E - ldrb r0, [r4] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bne _0803AB3A -_0803AB2E: - movs r0, #0 - bl BtlController_EmitDrawTrainerPic - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_0803AB3A: - ldr r0, _0803ABB0 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - beq _0803AB64 - ldr r4, _0803ABB4 - ldrb r0, [r4] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bne _0803AB64 - movs r0, #0 - bl BtlController_EmitDrawTrainerPic - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_0803AB64: - ldr r0, _0803ABB0 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xb - ands r0, r1 - cmp r0, #0 - beq _0803AB76 - bl BattleArena_InitPoints -_0803AB76: - mov r1, sb - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r1, _0803ABB8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1] - cmp r0, r1 - bhs _0803AB8C - b _0803A8F8 -_0803AB8C: - ldr r1, _0803ABBC - ldr r0, _0803ABC0 - str r0, [r1] -_0803AB92: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0803ABA0: .4byte 0x063F0902 -_0803ABA4: .4byte gUnknown_2023D12 -_0803ABA8: .4byte gUnknown_20243E8 -_0803ABAC: .4byte gUnknown_3005A70 -_0803ABB0: .4byte gUnknown_2022C90 -_0803ABB4: .4byte gUnknown_2023D08 -_0803ABB8: .4byte gUnknown_2023D10 -_0803ABBC: .4byte gUnknown_3005A64 -_0803ABC0: .4byte BattleIntroDrawPartySummaryScreens - thumb_func_end BattleIntroDrawTrainersOrMonsSprites - - thumb_func_start BattleIntroDrawPartySummaryScreens -BattleIntroDrawPartySummaryScreens: @ 0x0803ABC4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x30 - ldr r0, _0803AC1C - ldr r0, [r0] - cmp r0, #0 - beq _0803ABD6 - b _0803AD50 -_0803ABD6: - ldr r0, _0803AC20 - ldr r0, [r0] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - bne _0803ABE4 - b _0803ACF0 -_0803ABE4: - movs r7, #0 - add r0, sp, #4 - mov r8, r0 - mov r6, r8 - mov r5, sp -_0803ABEE: - movs r0, #0x64 - adds r1, r7, #0 - muls r1, r0, r1 - ldr r0, _0803AC24 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - cmp r0, #0 - beq _0803AC14 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - movs r1, #0xce - lsls r1, r1, #1 - cmp r0, r1 - bne _0803AC2C -_0803AC14: - ldr r0, _0803AC28 - strh r0, [r5] - movs r0, #0 - b _0803AC3E - .align 2, 0 -_0803AC1C: .4byte gUnknown_2023D0C -_0803AC20: .4byte gUnknown_2022C90 -_0803AC24: .4byte gUnknown_20243E8 -_0803AC28: .4byte 0x0000FFFF -_0803AC2C: - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - strh r0, [r5] - adds r0, r4, #0 - movs r1, #0x37 - bl GetMonData -_0803AC3E: - str r0, [r6] - adds r6, #8 - adds r5, #8 - adds r7, #1 - cmp r7, #5 - ble _0803ABEE - movs r0, #1 - bl GetBattlerAtPosition - ldr r4, _0803AC98 - strb r0, [r4] - movs r0, #0 - mov r1, sp - movs r2, #0x80 - bl BtlController_EmitDrawPartyStatusSummary - ldrb r0, [r4] - bl MarkBattlerForControllerExec - movs r7, #0 - mov r6, r8 - mov r5, sp -_0803AC6A: - movs r0, #0x64 - adds r1, r7, #0 - muls r1, r0, r1 - ldr r0, _0803AC9C - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - cmp r0, #0 - beq _0803AC90 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - movs r1, #0xce - lsls r1, r1, #1 - cmp r0, r1 - bne _0803ACA4 -_0803AC90: - ldr r0, _0803ACA0 - strh r0, [r5] - movs r0, #0 - b _0803ACB6 - .align 2, 0 -_0803AC98: .4byte gUnknown_2023D08 -_0803AC9C: .4byte gUnknown_2024190 -_0803ACA0: .4byte 0x0000FFFF -_0803ACA4: - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - strh r0, [r5] - adds r0, r4, #0 - movs r1, #0x37 - bl GetMonData -_0803ACB6: - str r0, [r6] - adds r6, #8 - adds r5, #8 - adds r7, #1 - cmp r7, #5 - ble _0803AC6A - movs r0, #0 - bl GetBattlerAtPosition - ldr r4, _0803ACE4 - strb r0, [r4] - movs r0, #0 - mov r1, sp - movs r2, #0x80 - bl BtlController_EmitDrawPartyStatusSummary - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldr r1, _0803ACE8 - ldr r0, _0803ACEC - b _0803AD4E - .align 2, 0 -_0803ACE4: .4byte gUnknown_2023D08 -_0803ACE8: .4byte gUnknown_3005A64 -_0803ACEC: .4byte BattleIntroPrintTrainerWantsToBattle -_0803ACF0: - movs r7, #0 - add r6, sp, #4 - mov r5, sp -_0803ACF6: - movs r0, #0x64 - adds r1, r7, #0 - muls r1, r0, r1 - ldr r0, _0803AD24 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - cmp r0, #0 - beq _0803AD1C - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - movs r1, #0xce - lsls r1, r1, #1 - cmp r0, r1 - bne _0803AD2C -_0803AD1C: - ldr r0, _0803AD28 - strh r0, [r5] - movs r0, #0 - b _0803AD3E - .align 2, 0 -_0803AD24: .4byte gUnknown_2024190 -_0803AD28: .4byte 0x0000FFFF -_0803AD2C: - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - strh r0, [r5] - adds r0, r4, #0 - movs r1, #0x37 - bl GetMonData -_0803AD3E: - str r0, [r6] - adds r6, #8 - adds r5, #8 - adds r7, #1 - cmp r7, #5 - ble _0803ACF6 - ldr r1, _0803AD5C - ldr r0, _0803AD60 -_0803AD4E: - str r0, [r1] -_0803AD50: - add sp, #0x30 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0803AD5C: .4byte gUnknown_3005A64 -_0803AD60: .4byte BattleIntroPrintWildMonAttacked - thumb_func_end BattleIntroDrawPartySummaryScreens - - thumb_func_start BattleIntroPrintTrainerWantsToBattle -BattleIntroPrintTrainerWantsToBattle: @ 0x0803AD64 - push {lr} - ldr r0, _0803AD8C - ldr r0, [r0] - cmp r0, #0 - bne _0803AD86 - movs r0, #1 - bl GetBattlerAtPosition - ldr r1, _0803AD90 - strb r0, [r1] - ldrb r1, [r1] - movs r0, #0 - bl PrepareStringBattle - ldr r1, _0803AD94 - ldr r0, _0803AD98 - str r0, [r1] -_0803AD86: - pop {r0} - bx r0 - .align 2, 0 -_0803AD8C: .4byte gUnknown_2023D0C -_0803AD90: .4byte gUnknown_2023D08 -_0803AD94: .4byte gUnknown_3005A64 -_0803AD98: .4byte BattleIntroPrintOpponentSendsOut - thumb_func_end BattleIntroPrintTrainerWantsToBattle - - thumb_func_start BattleIntroPrintWildMonAttacked -BattleIntroPrintWildMonAttacked: @ 0x0803AD9C - push {lr} - ldr r0, _0803ADB8 - ldr r0, [r0] - cmp r0, #0 - bne _0803ADB4 - ldr r1, _0803ADBC - ldr r0, _0803ADC0 - str r0, [r1] - movs r0, #0 - movs r1, #0 - bl PrepareStringBattle -_0803ADB4: - pop {r0} - bx r0 - .align 2, 0 -_0803ADB8: .4byte gUnknown_2023D0C -_0803ADBC: .4byte gUnknown_3005A64 -_0803ADC0: .4byte BattleIntroPrintPlayerSendsOut - thumb_func_end BattleIntroPrintWildMonAttacked - - thumb_func_start BattleIntroPrintOpponentSendsOut -BattleIntroPrintOpponentSendsOut: @ 0x0803ADC4 - push {lr} - ldr r0, _0803ADF4 - ldr r0, [r0] - cmp r0, #0 - bne _0803AE14 - ldr r0, _0803ADF8 - ldr r2, [r0] - movs r0, #0x80 - lsls r0, r0, #0x11 - ands r0, r2 - cmp r0, #0 - beq _0803ADFC - movs r0, #0x80 - lsls r0, r0, #0x12 - ands r0, r2 - cmp r0, #0 - beq _0803ADFC - movs r1, #0x80 - lsls r1, r1, #0x18 - ands r1, r2 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - b _0803ADFE - .align 2, 0 -_0803ADF4: .4byte gUnknown_2023D0C -_0803ADF8: .4byte gUnknown_2022C90 -_0803ADFC: - movs r0, #1 -_0803ADFE: - bl GetBattlerAtPosition - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #1 - bl PrepareStringBattle - ldr r1, _0803AE18 - ldr r0, _0803AE1C - str r0, [r1] -_0803AE14: - pop {r0} - bx r0 - .align 2, 0 -_0803AE18: .4byte gUnknown_3005A64 -_0803AE1C: .4byte BattleIntroOpponent1SendsOutMonAnimation - thumb_func_end BattleIntroPrintOpponentSendsOut - - thumb_func_start BattleIntroOpponent2SendsOutMonAnimation -BattleIntroOpponent2SendsOutMonAnimation: @ 0x0803AE20 - push {r4, r5, lr} - ldr r0, _0803AE8C - ldr r1, [r0] - movs r0, #0x80 - lsls r0, r0, #0x11 - ands r0, r1 - cmp r0, #0 - beq _0803AE40 - movs r0, #0x80 - lsls r0, r0, #0x12 - ands r0, r1 - cmp r0, #0 - beq _0803AE40 - movs r5, #2 - cmp r1, #0 - bge _0803AE42 -_0803AE40: - movs r5, #3 -_0803AE42: - ldr r1, _0803AE90 - movs r0, #0 - strb r0, [r1] - ldr r0, _0803AE94 - ldrb r0, [r0] - cmp r0, #0 - beq _0803AE7E - adds r4, r1, #0 -_0803AE52: - ldrb r0, [r4] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r5 - bne _0803AE6C - movs r0, #0 - bl BtlController_EmitIntroTrainerBallThrow - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_0803AE6C: - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - ldr r1, _0803AE94 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1] - cmp r0, r1 - blo _0803AE52 -_0803AE7E: - ldr r1, _0803AE98 - ldr r0, _0803AE9C - str r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0803AE8C: .4byte gUnknown_2022C90 -_0803AE90: .4byte gUnknown_2023D08 -_0803AE94: .4byte gUnknown_2023D10 -_0803AE98: .4byte gUnknown_3005A64 -_0803AE9C: .4byte BattleIntroRecordMonsToDex - thumb_func_end BattleIntroOpponent2SendsOutMonAnimation - - thumb_func_start BattleIntroOpponent1SendsOutMonAnimation -BattleIntroOpponent1SendsOutMonAnimation: @ 0x0803AEA0 - push {r4, r5, r6, lr} - ldr r0, _0803AEC8 - ldr r2, [r0] - movs r0, #0x80 - lsls r0, r0, #0x11 - ands r0, r2 - cmp r0, #0 - beq _0803AEDC - movs r0, #0x80 - lsls r0, r0, #0x12 - ands r0, r2 - cmp r0, #0 - beq _0803AEDC - movs r1, #0x80 - lsls r1, r1, #0x18 - ands r1, r2 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r5, r0, #0x1f - b _0803AEDE - .align 2, 0 -_0803AEC8: .4byte gUnknown_2022C90 -_0803AECC: - ldr r1, _0803AED4 - ldr r0, _0803AED8 - b _0803AF34 - .align 2, 0 -_0803AED4: .4byte gUnknown_3005A64 -_0803AED8: .4byte BattleIntroOpponent2SendsOutMonAnimation -_0803AEDC: - movs r5, #1 -_0803AEDE: - ldr r0, _0803AF3C - ldr r2, [r0] - cmp r2, #0 - bne _0803AF36 - ldr r0, _0803AF40 - strb r2, [r0] - ldr r1, _0803AF44 - adds r4, r0, #0 - ldrb r1, [r1] - cmp r2, r1 - bhs _0803AF30 - adds r6, r4, #0 -_0803AEF6: - ldrb r0, [r4] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r5 - bne _0803AF1C - movs r0, #0 - bl BtlController_EmitIntroTrainerBallThrow - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldr r0, _0803AF48 - ldr r0, [r0] - ldr r1, _0803AF4C - ands r0, r1 - cmp r0, #0 - bne _0803AECC -_0803AF1C: - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] - ldr r1, _0803AF44 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _0803AF40 - ldrb r1, [r1] - cmp r0, r1 - blo _0803AEF6 -_0803AF30: - ldr r1, _0803AF50 - ldr r0, _0803AF54 -_0803AF34: - str r0, [r1] -_0803AF36: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0803AF3C: .4byte gUnknown_2023D0C -_0803AF40: .4byte gUnknown_2023D08 -_0803AF44: .4byte gUnknown_2023D10 -_0803AF48: .4byte gUnknown_2022C90 -_0803AF4C: .4byte 0x00008040 -_0803AF50: .4byte gUnknown_3005A64 -_0803AF54: .4byte BattleIntroRecordMonsToDex - thumb_func_end BattleIntroOpponent1SendsOutMonAnimation - - thumb_func_start BattleIntroRecordMonsToDex -BattleIntroRecordMonsToDex: @ 0x0803AF58 - push {r4, r5, r6, r7, lr} - ldr r0, _0803AFD0 - ldr r1, [r0] - cmp r1, #0 - bne _0803AFC8 - ldr r2, _0803AFD4 - strb r1, [r2] - ldr r0, _0803AFD8 - ldrb r0, [r0] - cmp r1, r0 - bhs _0803AFC2 - adds r4, r2, #0 - ldr r6, _0803AFDC - movs r5, #0x58 - adds r7, r6, #0 - adds r7, #0x48 -_0803AF78: - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0803AFB0 - ldr r0, _0803AFE0 - ldr r0, [r0] - ldr r1, _0803AFE4 - ands r0, r1 - cmp r0, #0 - bne _0803AFB0 - ldrb r0, [r4] - muls r0, r5, r0 - adds r0, r0, r6 - ldrh r0, [r0] - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r4] - muls r1, r5, r1 - adds r1, r1, r7 - ldr r2, [r1] - movs r1, #2 - bl HandleSetPokedexFlag -_0803AFB0: - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - ldr r1, _0803AFD8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1] - cmp r0, r1 - blo _0803AF78 -_0803AFC2: - ldr r1, _0803AFE8 - ldr r0, _0803AFEC - str r0, [r1] -_0803AFC8: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0803AFD0: .4byte gUnknown_2023D0C -_0803AFD4: .4byte gUnknown_2023D08 -_0803AFD8: .4byte gUnknown_2023D10 -_0803AFDC: .4byte gUnknown_2023D28 -_0803AFE0: .4byte gUnknown_2022C90 -_0803AFE4: .4byte 0x063F0902 -_0803AFE8: .4byte gUnknown_3005A64 -_0803AFEC: .4byte BattleIntroPrintPlayerSendsOut - thumb_func_end BattleIntroRecordMonsToDex - - thumb_func_start sub_0803AFF0 -sub_0803AFF0: @ 0x0803AFF0 - push {lr} - ldr r0, _0803B004 - ldr r0, [r0] - cmp r0, #0 - bne _0803B000 - ldr r1, _0803B008 - ldr r0, _0803B00C - str r0, [r1] -_0803B000: - pop {r0} - bx r0 - .align 2, 0 -_0803B004: .4byte gUnknown_2023D0C -_0803B008: .4byte gUnknown_3005A64 -_0803B00C: .4byte BattleIntroPrintPlayerSendsOut - thumb_func_end sub_0803AFF0 - - thumb_func_start BattleIntroPrintPlayerSendsOut -BattleIntroPrintPlayerSendsOut: @ 0x0803B010 - push {lr} - ldr r0, _0803B060 - ldr r0, [r0] - cmp r0, #0 - bne _0803B05C - ldr r1, _0803B064 - ldr r2, [r1] - movs r0, #0x80 - lsls r0, r0, #0x11 - ands r0, r2 - cmp r0, #0 - beq _0803B038 - movs r0, #0x80 - lsls r0, r0, #0x12 - ands r0, r2 - cmp r0, #0 - beq _0803B038 - movs r3, #1 - cmp r2, #0 - bge _0803B03A -_0803B038: - movs r3, #0 -_0803B03A: - ldr r0, [r1] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0803B056 - adds r0, r3, #0 - bl GetBattlerAtPosition - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #1 - bl PrepareStringBattle -_0803B056: - ldr r1, _0803B068 - ldr r0, _0803B06C - str r0, [r1] -_0803B05C: - pop {r0} - bx r0 - .align 2, 0 -_0803B060: .4byte gUnknown_2023D0C -_0803B064: .4byte gUnknown_2022C90 -_0803B068: .4byte gUnknown_3005A64 -_0803B06C: .4byte BattleIntroPlayer1SendsOutMonAnimation - thumb_func_end BattleIntroPrintPlayerSendsOut - - thumb_func_start BattleIntroPlayer2SendsOutMonAnimation -BattleIntroPlayer2SendsOutMonAnimation: @ 0x0803B070 - push {r4, r5, lr} - ldr r0, _0803B0F4 - ldr r1, [r0] - movs r0, #0x80 - lsls r0, r0, #0x11 - ands r0, r1 - cmp r0, #0 - beq _0803B090 - movs r0, #0x80 - lsls r0, r0, #0x12 - ands r0, r1 - cmp r0, #0 - beq _0803B090 - movs r5, #3 - cmp r1, #0 - bge _0803B092 -_0803B090: - movs r5, #2 -_0803B092: - ldr r1, _0803B0F8 - movs r0, #0 - strb r0, [r1] - ldr r0, _0803B0FC - ldrb r0, [r0] - cmp r0, #0 - beq _0803B0CE - adds r4, r1, #0 -_0803B0A2: - ldrb r0, [r4] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r5 - bne _0803B0BC - movs r0, #0 - bl BtlController_EmitIntroTrainerBallThrow - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_0803B0BC: - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - ldr r1, _0803B0FC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1] - cmp r0, r1 - blo _0803B0A2 -_0803B0CE: - ldr r2, _0803B100 - ldr r0, [r2] - adds r0, #0x4c - movs r1, #0 - strb r1, [r0] - ldr r0, [r2] - adds r0, #0xd9 - strb r1, [r0] - ldr r0, [r2] - movs r2, #0xd1 - lsls r2, r2, #1 - adds r0, r0, r2 - strb r1, [r0] - ldr r1, _0803B104 - ldr r0, _0803B108 - str r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0803B0F4: .4byte gUnknown_2022C90 -_0803B0F8: .4byte gUnknown_2023D08 -_0803B0FC: .4byte gUnknown_2023D10 -_0803B100: .4byte gUnknown_2024140 -_0803B104: .4byte gUnknown_3005A64 -_0803B108: .4byte TryDoEventsBeforeFirstTurn - thumb_func_end BattleIntroPlayer2SendsOutMonAnimation - - thumb_func_start BattleIntroPlayer1SendsOutMonAnimation -BattleIntroPlayer1SendsOutMonAnimation: @ 0x0803B10C - push {r4, r5, r6, lr} - ldr r0, _0803B130 - ldr r1, [r0] - movs r0, #0x80 - lsls r0, r0, #0x11 - ands r0, r1 - cmp r0, #0 - beq _0803B144 - movs r0, #0x80 - lsls r0, r0, #0x12 - ands r0, r1 - cmp r0, #0 - beq _0803B144 - movs r6, #1 - cmp r1, #0 - bge _0803B146 - b _0803B144 - .align 2, 0 -_0803B130: .4byte gUnknown_2022C90 -_0803B134: - ldr r1, _0803B13C - ldr r0, _0803B140 - b _0803B1B6 - .align 2, 0 -_0803B13C: .4byte gUnknown_3005A64 -_0803B140: .4byte BattleIntroPlayer2SendsOutMonAnimation -_0803B144: - movs r6, #0 -_0803B146: - ldr r0, _0803B1C0 - ldr r2, [r0] - cmp r2, #0 - bne _0803B1B8 - ldr r0, _0803B1C4 - strb r2, [r0] - ldr r1, _0803B1C8 - adds r4, r0, #0 - ldrb r1, [r1] - cmp r2, r1 - bhs _0803B198 - adds r5, r4, #0 -_0803B15E: - ldrb r0, [r4] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r6 - bne _0803B184 - movs r0, #0 - bl BtlController_EmitIntroTrainerBallThrow - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldr r0, _0803B1CC - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _0803B134 -_0803B184: - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - ldr r1, _0803B1C8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _0803B1C4 - ldrb r1, [r1] - cmp r0, r1 - blo _0803B15E -_0803B198: - ldr r2, _0803B1D0 - ldr r0, [r2] - adds r0, #0x4c - movs r1, #0 - strb r1, [r0] - ldr r0, [r2] - adds r0, #0xd9 - strb r1, [r0] - ldr r0, [r2] - movs r2, #0xd1 - lsls r2, r2, #1 - adds r0, r0, r2 - strb r1, [r0] - ldr r1, _0803B1D4 - ldr r0, _0803B1D8 -_0803B1B6: - str r0, [r1] -_0803B1B8: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0803B1C0: .4byte gUnknown_2023D0C -_0803B1C4: .4byte gUnknown_2023D08 -_0803B1C8: .4byte gUnknown_2023D10 -_0803B1CC: .4byte gUnknown_2022C90 -_0803B1D0: .4byte gUnknown_2024140 -_0803B1D4: .4byte gUnknown_3005A64 -_0803B1D8: .4byte TryDoEventsBeforeFirstTurn - thumb_func_end BattleIntroPlayer1SendsOutMonAnimation - - thumb_func_start sub_0803B1DC -sub_0803B1DC: @ 0x0803B1DC - push {r4, r5, lr} - ldr r0, _0803B250 - ldr r1, [r0] - cmp r1, #0 - bne _0803B24A - ldr r2, _0803B254 - strb r1, [r2] - ldr r0, _0803B258 - ldrb r0, [r0] - cmp r1, r0 - bhs _0803B22A - adds r4, r2, #0 - ldr r5, _0803B25C -_0803B1F6: - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803B218 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrb r1, [r0] - movs r0, #0 - movs r2, #0 - bl BtlController_EmitSwitchInAnim - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_0803B218: - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - ldr r1, _0803B258 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1] - cmp r0, r1 - blo _0803B1F6 -_0803B22A: - ldr r2, _0803B260 - ldr r0, [r2] - adds r0, #0x4c - movs r1, #0 - strb r1, [r0] - ldr r0, [r2] - adds r0, #0xd9 - strb r1, [r0] - ldr r0, [r2] - movs r2, #0xd1 - lsls r2, r2, #1 - adds r0, r0, r2 - strb r1, [r0] - ldr r1, _0803B264 - ldr r0, _0803B268 - str r0, [r1] -_0803B24A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0803B250: .4byte gUnknown_2023D0C -_0803B254: .4byte gUnknown_2023D08 -_0803B258: .4byte gUnknown_2023D10 -_0803B25C: .4byte gUnknown_2023D12 -_0803B260: .4byte gUnknown_2024140 -_0803B264: .4byte gUnknown_3005A64 -_0803B268: .4byte TryDoEventsBeforeFirstTurn - thumb_func_end sub_0803B1DC - - thumb_func_start TryDoEventsBeforeFirstTurn -TryDoEventsBeforeFirstTurn: @ 0x0803B26C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - movs r0, #0 - mov sb, r0 - ldr r0, _0803B2B0 - ldr r0, [r0] - cmp r0, #0 - beq _0803B286 - b _0803B4F6 -_0803B286: - ldr r0, _0803B2B4 - ldr r0, [r0] - adds r0, #0x4c - ldrb r0, [r0] - cmp r0, #0 - bne _0803B306 - movs r5, #0 - ldr r1, _0803B2B8 - mov sl, r1 - ldrb r3, [r1] - cmp r5, r3 - bge _0803B2AC - ldr r2, _0803B2BC -_0803B2A0: - adds r0, r5, r2 - strb r5, [r0] - adds r5, #1 - ldrb r0, [r1] - cmp r5, r0 - blt _0803B2A0 -_0803B2AC: - movs r5, #0 - b _0803B2FC - .align 2, 0 -_0803B2B0: .4byte gUnknown_2023D0C -_0803B2B4: .4byte gUnknown_2024140 -_0803B2B8: .4byte gUnknown_2023D10 -_0803B2BC: .4byte gUnknown_2023D22 -_0803B2C0: - adds r4, r5, #1 - mov r8, r4 - ldrb r1, [r1] - cmp r8, r1 - bge _0803B2FA - ldr r6, _0803B334 - ldr r1, _0803B338 - mov sl, r1 - lsls r7, r5, #0x18 -_0803B2D2: - adds r0, r5, r6 - ldrb r0, [r0] - adds r1, r4, r6 - ldrb r1, [r1] - movs r2, #1 - bl GetWhoStrikesFirst - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0803B2F0 - lsls r1, r4, #0x18 - lsrs r1, r1, #0x18 - lsrs r0, r7, #0x18 - bl SwapTurnOrder -_0803B2F0: - adds r4, #1 - ldr r0, _0803B338 - ldrb r0, [r0] - cmp r4, r0 - blt _0803B2D2 -_0803B2FA: - mov r5, r8 -_0803B2FC: - mov r1, sl - ldrb r0, [r1] - subs r0, #1 - cmp r5, r0 - blt _0803B2C0 -_0803B306: - ldr r5, _0803B33C - ldr r0, [r5] - movs r4, #0xd1 - lsls r4, r4, #1 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0 - bne _0803B340 - str r0, [sp] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0xff - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0803B340 - ldr r0, [r5] - adds r0, r0, r4 - movs r1, #1 - strb r1, [r0] - b _0803B4F6 - .align 2, 0 -_0803B334: .4byte gUnknown_2023D22 -_0803B338: .4byte gUnknown_2023D10 -_0803B33C: .4byte gUnknown_2024140 -_0803B340: - ldr r2, _0803B508 - ldr r0, [r2] - adds r0, #0x4c - ldr r1, _0803B50C - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bhs _0803B39A - ldr r5, _0803B510 - adds r4, r2, #0 -_0803B354: - ldr r0, [r4] - adds r0, #0x4c - ldrb r0, [r0] - adds r0, r0, r5 - ldrb r1, [r0] - movs r0, #0 - str r0, [sp] - movs r2, #0 - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0803B37A - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 -_0803B37A: - ldr r1, [r4] - adds r1, #0x4c - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - mov r3, sb - cmp r3, #0 - beq _0803B38C - b _0803B4F6 -_0803B38C: - ldr r0, [r4] - adds r0, #0x4c - ldr r1, _0803B50C - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - blo _0803B354 -_0803B39A: - movs r0, #0 - str r0, [sp] - movs r0, #9 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _0803B3B4 - b _0803B4F6 -_0803B3B4: - str r0, [sp] - movs r0, #0xb - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0803B3CA - b _0803B4F6 -_0803B3CA: - ldr r2, _0803B508 - ldr r0, [r2] - adds r0, #0xd9 - ldr r1, _0803B50C - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bhs _0803B41E - ldr r5, _0803B510 - adds r4, r2, #0 -_0803B3DE: - ldr r0, [r4] - adds r0, #0xd9 - ldrb r0, [r0] - adds r0, r0, r5 - ldrb r1, [r0] - movs r0, #0 - movs r2, #0 - bl ItemBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0803B400 - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 -_0803B400: - ldr r1, [r4] - adds r1, #0xd9 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - mov r0, sb - cmp r0, #0 - bne _0803B4F6 - ldr r0, [r4] - adds r0, #0xd9 - ldr r1, _0803B50C - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - blo _0803B3DE -_0803B41E: - movs r5, #0 - ldr r1, _0803B508 - mov r8, r1 - movs r7, #6 - ldr r6, _0803B514 - ldr r2, _0803B518 - movs r4, #0xff - movs r3, #0 -_0803B42E: - mov r1, r8 - ldr r0, [r1] - adds r0, r5, r0 - adds r0, #0x5c - strb r7, [r0] - adds r1, r5, r6 - ldrb r0, [r1] - orrs r0, r4 - strb r0, [r1] - strh r3, [r2] - adds r2, #2 - adds r5, #1 - cmp r5, #3 - ble _0803B42E - movs r0, #0 - bl TurnValuesCleanUp - bl SpecialStatusesClear - ldr r0, _0803B508 - ldr r0, [r0] - adds r0, #0x91 - ldr r1, _0803B51C - ldrb r1, [r1] - strb r1, [r0] - ldr r0, _0803B520 - movs r1, #0 - bl sub_0814FA04 - ldr r1, _0803B524 - ldr r0, _0803B528 - str r0, [r1] - bl ResetSentPokesToOpponentValue - ldr r1, _0803B52C - movs r2, #0 - adds r0, r1, #7 -_0803B478: - strb r2, [r0] - subs r0, #1 - cmp r0, r1 - bge _0803B478 - movs r5, #0 - ldr r3, _0803B50C - ldr r2, _0803B508 - ldr r6, _0803B530 - ldr r7, _0803B534 - ldrb r0, [r3] - cmp r5, r0 - bge _0803B4AA - ldr r0, _0803B538 - movs r4, #9 - rsbs r4, r4, #0 - adds r1, r0, #0 - adds r1, #0x50 -_0803B49A: - ldr r0, [r1] - ands r0, r4 - str r0, [r1] - adds r1, #0x58 - adds r5, #1 - ldrb r0, [r3] - cmp r5, r0 - blt _0803B49A -_0803B4AA: - ldr r0, [r2] - movs r1, #0 - strb r1, [r0] - ldr r0, [r2] - strb r1, [r0, #1] - ldr r0, [r2] - movs r3, #0xd0 - lsls r3, r3, #1 - adds r0, r0, r3 - strb r1, [r0] - ldr r0, [r2] - adds r3, #1 - adds r0, r0, r3 - strb r1, [r0] - movs r1, #0 - strb r1, [r6, #0x14] - ldr r0, [r2] - adds r0, #0x4d - strb r1, [r0] - ldr r0, [r2] - strb r1, [r0, #3] - strb r1, [r7] - bl Random - ldr r1, _0803B53C - strh r0, [r1] - ldr r0, _0803B540 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xb - ands r0, r1 - cmp r0, #0 - beq _0803B4F6 - bl sub_080A2F64 - ldr r0, _0803B544 - bl BattleScriptExecute -_0803B4F6: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0803B508: .4byte gUnknown_2024140 -_0803B50C: .4byte gUnknown_2023D10 -_0803B510: .4byte gUnknown_2023D22 -_0803B514: .4byte gUnknown_2023EC0 -_0803B518: .4byte gUnknown_2023F18 -_0803B51C: .4byte gUnknown_2023EB4 -_0803B520: .4byte gUnknown_85AB3BD -_0803B524: .4byte gUnknown_3005A64 -_0803B528: .4byte HandleTurnActionSelectionState -_0803B52C: .4byte gUnknown_2023FD6 -_0803B530: .4byte gUnknown_2024118 -_0803B534: .4byte gUnknown_2023F20 -_0803B538: .4byte gUnknown_2023D28 -_0803B53C: .4byte gUnknown_2023FD4 -_0803B540: .4byte gUnknown_2022C90 -_0803B544: .4byte gUnknown_8289E46 - thumb_func_end TryDoEventsBeforeFirstTurn - - thumb_func_start HandleEndTurn_ContinueBattle -HandleEndTurn_ContinueBattle: @ 0x0803B548 - push {r4, r5, r6, lr} - ldr r0, _0803B5E0 - ldr r0, [r0] - cmp r0, #0 - bne _0803B5D8 - ldr r1, _0803B5E4 - ldr r0, _0803B5E8 - str r0, [r1] - ldr r3, _0803B5EC - ldr r1, _0803B5F0 - movs r2, #0 - adds r0, r1, #7 -_0803B560: - strb r2, [r0] - subs r0, #1 - cmp r0, r1 - bge _0803B560 - movs r4, #0 - ldrb r3, [r3] - cmp r4, r3 - bge _0803B5B2 - ldr r5, _0803B5F4 - adds r6, r5, #0 - adds r6, #0x4c -_0803B576: - movs r0, #0x58 - adds r2, r4, #0 - muls r2, r0, r2 - adds r1, r5, #0 - adds r1, #0x50 - adds r1, r2, r1 - ldr r3, [r1] - subs r0, #0x61 - ands r3, r0 - str r3, [r1] - adds r2, r2, r6 - ldr r0, [r2] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - beq _0803B5A8 - movs r0, #0x80 - lsls r0, r0, #5 - ands r3, r0 - cmp r3, #0 - beq _0803B5A8 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl CancelMultiTurnMoves -_0803B5A8: - adds r4, #1 - ldr r0, _0803B5EC - ldrb r0, [r0] - cmp r4, r0 - blt _0803B576 -_0803B5B2: - ldr r2, _0803B5F8 - ldr r0, [r2] - movs r1, #0 - strb r1, [r0] - ldr r0, [r2] - strb r1, [r0, #1] - ldr r0, [r2] - movs r3, #0xd0 - lsls r3, r3, #1 - adds r0, r0, r3 - strb r1, [r0] - ldr r0, [r2] - adds r3, #1 - adds r0, r0, r3 - strb r1, [r0] - ldr r0, [r2] - strb r1, [r0, #3] - ldr r0, _0803B5FC - strb r1, [r0] -_0803B5D8: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0803B5E0: .4byte gUnknown_2023D0C -_0803B5E4: .4byte gUnknown_3005A64 -_0803B5E8: .4byte BattleTurnPassed -_0803B5EC: .4byte gUnknown_2023D10 -_0803B5F0: .4byte gUnknown_2023FD6 -_0803B5F4: .4byte gUnknown_2023D28 -_0803B5F8: .4byte gUnknown_2024140 -_0803B5FC: .4byte gUnknown_2023F20 - thumb_func_end HandleEndTurn_ContinueBattle - - thumb_func_start BattleTurnPassed -BattleTurnPassed: @ 0x0803B600 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - movs r0, #1 - bl TurnValuesCleanUp - ldr r0, _0803B6A4 - ldrb r0, [r0] - cmp r0, #0 - bne _0803B62E - bl DoFieldEndTurnEffects - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0803B622 - b _0803B7BC -_0803B622: - bl DoBattlerEndTurnEffects - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0803B62E - b _0803B7BC -_0803B62E: - bl HandleFaintedMonActions - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _0803B63C - b _0803B7BC -_0803B63C: - ldr r0, _0803B6A8 - ldr r0, [r0] - adds r0, #0x4d - strb r1, [r0] - bl HandleWishPerishSongOnTurnEnd - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - beq _0803B652 - b _0803B7BC -_0803B652: - movs r0, #0 - bl TurnValuesCleanUp - ldr r2, _0803B6AC - ldr r0, [r2] - ldr r1, _0803B6B0 - ands r0, r1 - ldr r1, _0803B6B4 - ands r0, r1 - ldr r1, _0803B6B8 - ands r0, r1 - ldr r1, _0803B6BC - ands r0, r1 - str r0, [r2] - ldr r0, _0803B6C0 - strb r4, [r0, #0x18] - strb r4, [r0, #0x19] - strb r4, [r0, #0x14] - ldr r0, _0803B6C4 - str r4, [r0] - ldr r0, _0803B6C8 - strb r4, [r0] - ldr r1, _0803B6CC - movs r2, #0 - adds r0, r1, #4 -_0803B684: - strb r2, [r0] - subs r0, #1 - cmp r0, r1 - bge _0803B684 - ldr r0, _0803B6A4 - ldrb r0, [r0] - cmp r0, #0 - beq _0803B6DC - ldr r1, _0803B6D0 - movs r0, #0xc - strb r0, [r1] - ldr r1, _0803B6D4 - ldr r0, _0803B6D8 - str r0, [r1] - b _0803B7BC - .align 2, 0 -_0803B6A4: .4byte gUnknown_2023FDE -_0803B6A8: .4byte gUnknown_2024140 -_0803B6AC: .4byte gUnknown_2023F24 -_0803B6B0: .4byte 0xFFFFFDFF -_0803B6B4: .4byte 0xFFF7FFFF -_0803B6B8: .4byte 0xFFBFFFFF -_0803B6BC: .4byte 0xFFEFFFFF -_0803B6C0: .4byte gUnknown_2024118 -_0803B6C4: .4byte gUnknown_2023E94 -_0803B6C8: .4byte gUnknown_2023F20 -_0803B6CC: .4byte gUnknown_2023FD6 -_0803B6D0: .4byte gUnknown_2023D27 -_0803B6D4: .4byte gUnknown_3005A64 -_0803B6D8: .4byte RunTurnActionsFunctions -_0803B6DC: - ldr r1, _0803B770 - ldrb r0, [r1, #0x13] - ldr r2, _0803B774 - mov r8, r2 - cmp r0, #0xfe - bhi _0803B6F6 - adds r0, #1 - strb r0, [r1, #0x13] - ldr r1, [r2] - adds r1, #0xda - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_0803B6F6: - movs r2, #0 - ldr r4, _0803B778 - ldr r0, _0803B77C - mov ip, r0 - ldr r1, _0803B780 - mov sb, r1 - ldrb r0, [r4] - cmp r2, r0 - bge _0803B724 - ldr r7, _0803B784 - movs r6, #0xff - movs r5, #0 - ldr r3, _0803B788 -_0803B710: - adds r1, r2, r7 - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - strh r5, [r3] - adds r3, #2 - adds r2, #1 - ldrb r1, [r4] - cmp r2, r1 - blt _0803B710 -_0803B724: - movs r2, #0 - ldr r3, _0803B774 - movs r1, #6 -_0803B72A: - ldr r0, [r3] - adds r0, r2, r0 - adds r0, #0x5c - strb r1, [r0] - adds r2, #1 - cmp r2, #3 - ble _0803B72A - mov r2, r8 - ldr r0, [r2] - adds r0, #0x91 - mov r2, ip - ldrb r1, [r2] - strb r1, [r0] - mov r0, sb - movs r1, #0 - bl sub_0814FA04 - ldr r1, _0803B78C - ldr r0, _0803B790 - str r0, [r1] - bl Random - ldr r1, _0803B794 - strh r0, [r1] - ldr r0, _0803B798 - ldr r1, [r0] - movs r0, #0x80 - lsls r0, r0, #0xa - ands r0, r1 - cmp r0, #0 - beq _0803B7A0 - ldr r0, _0803B79C - bl BattleScriptExecute - b _0803B7BC - .align 2, 0 -_0803B770: .4byte gUnknown_3005A70 -_0803B774: .4byte gUnknown_2024140 -_0803B778: .4byte gUnknown_2023D10 -_0803B77C: .4byte gUnknown_2023EB4 -_0803B780: .4byte gUnknown_85AB3BD -_0803B784: .4byte gUnknown_2023EC0 -_0803B788: .4byte gUnknown_2023F18 -_0803B78C: .4byte gUnknown_3005A64 -_0803B790: .4byte HandleTurnActionSelectionState -_0803B794: .4byte gUnknown_2023FD4 -_0803B798: .4byte gUnknown_2022C90 -_0803B79C: .4byte gUnknown_8289E09 -_0803B7A0: - movs r0, #0x80 - lsls r0, r0, #0xb - ands r1, r0 - cmp r1, #0 - beq _0803B7BC - mov r1, r8 - ldr r0, [r1] - adds r0, #0xda - ldrb r0, [r0] - cmp r0, #0 - bne _0803B7BC - ldr r0, _0803B7C8 - bl BattleScriptExecute -_0803B7BC: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0803B7C8: .4byte gUnknown_8289E46 - thumb_func_end BattleTurnPassed - - thumb_func_start IsRunningFromBattleImpossible -IsRunningFromBattleImpossible: @ 0x0803B7CC - push {r4, r5, r6, r7, lr} - sub sp, #4 - ldr r1, _0803B7F0 - ldr r0, _0803B7F4 - ldrb r2, [r0] - movs r0, #0x58 - muls r0, r2, r0 - adds r1, r0, r1 - ldrh r0, [r1, #0x2e] - cmp r0, #0xaf - bne _0803B7FC - ldr r1, _0803B7F8 - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r2, [r0, #7] - b _0803B806 - .align 2, 0 -_0803B7F0: .4byte gUnknown_2023D28 -_0803B7F4: .4byte gUnknown_2023D08 -_0803B7F8: .4byte gUnknown_20240A8 -_0803B7FC: - ldrh r0, [r1, #0x2e] - bl sub_080D6CF8 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 -_0803B806: - ldr r1, _0803B91C - ldr r3, _0803B920 - ldrb r0, [r3] - strb r0, [r1] - cmp r2, #0x25 - bne _0803B814 - b _0803B990 -_0803B814: - ldr r0, _0803B924 - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _0803B822 - b _0803B990 -_0803B822: - ldr r1, _0803B928 - ldrb r2, [r3] - movs r0, #0x58 - muls r0, r2, r0 - adds r0, r0, r1 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x32 - bne _0803B836 - b _0803B990 -_0803B836: - adds r0, r2, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r5, #0 - ldr r0, _0803B92C - ldrb r0, [r0] - cmp r5, r0 - bge _0803B8CA - movs r7, #0 -_0803B84C: - lsrs r4, r7, #0x18 - adds r0, r4, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r6, r0 - beq _0803B870 - ldr r1, _0803B928 - movs r0, #0x58 - muls r0, r5, r0 - adds r0, r0, r1 - adds r2, r0, #0 - adds r2, #0x20 - ldrb r0, [r2] - cmp r0, #0x17 - bne _0803B870 - b _0803B998 -_0803B870: - adds r0, r4, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r6, r0 - beq _0803B8BA - ldr r3, _0803B928 - ldr r0, _0803B920 - ldrb r0, [r0] - movs r2, #0x58 - muls r0, r2, r0 - adds r1, r0, r3 - adds r0, r1, #0 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x1a - beq _0803B8BA - adds r0, r1, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #2 - beq _0803B8BA - adds r0, r1, #0 - adds r0, #0x22 - ldrb r0, [r0] - cmp r0, #2 - beq _0803B8BA - adds r0, r5, #0 - muls r0, r2, r0 - adds r0, r0, r3 - adds r2, r0, #0 - adds r2, #0x20 - ldrb r0, [r2] - cmp r0, #0x47 - bne _0803B8BA - b _0803B9B4 -_0803B8BA: - movs r0, #0x80 - lsls r0, r0, #0x11 - adds r7, r7, r0 - adds r5, #1 - ldr r0, _0803B92C - ldrb r0, [r0] - cmp r5, r0 - blt _0803B84C -_0803B8CA: - ldr r4, _0803B920 - ldrb r1, [r4] - movs r0, #0 - str r0, [sp] - movs r0, #0xf - movs r2, #0x2a - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - beq _0803B93C - ldr r6, _0803B928 - ldrb r0, [r4] - movs r3, #0x58 - muls r0, r3, r0 - adds r1, r0, r6 - adds r0, r1, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #8 - beq _0803B902 - adds r0, r1, #0 - adds r0, #0x22 - ldrb r0, [r0] - cmp r0, #8 - bne _0803B93C -_0803B902: - ldr r0, _0803B930 - subs r1, r5, #1 - strb r1, [r0, #0x17] - ldr r2, _0803B934 - adds r0, r1, #0 - muls r0, r3, r0 - adds r0, r0, r6 - adds r0, #0x20 - ldrb r0, [r0] - strb r0, [r2] - ldr r1, _0803B938 - movs r0, #2 - b _0803B9D4 - .align 2, 0 -_0803B91C: .4byte gUnknown_2023EB3 -_0803B920: .4byte gUnknown_2023D08 -_0803B924: .4byte gUnknown_2022C90 -_0803B928: .4byte gUnknown_2023D28 -_0803B92C: .4byte gUnknown_2023D10 -_0803B930: .4byte gUnknown_2024118 -_0803B934: .4byte gUnknown_2023EAE -_0803B938: .4byte gUnknown_2023FD6 -_0803B93C: - ldr r1, _0803B970 - ldr r0, _0803B974 - ldrb r2, [r0] - movs r0, #0x58 - muls r0, r2, r0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _0803B978 - ands r0, r1 - cmp r0, #0 - bne _0803B966 - ldr r1, _0803B97C - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _0803B984 -_0803B966: - ldr r1, _0803B980 - movs r0, #0 - strb r0, [r1, #5] - movs r0, #1 - b _0803B9D6 - .align 2, 0 -_0803B970: .4byte gUnknown_2023D28 -_0803B974: .4byte gUnknown_2023D08 -_0803B978: .4byte 0x0400E000 -_0803B97C: .4byte gUnknown_2023F50 -_0803B980: .4byte gUnknown_2023FD6 -_0803B984: - ldr r0, _0803B994 - ldr r0, [r0] - movs r1, #0x10 - ands r0, r1 - cmp r0, #0 - bne _0803B9D0 -_0803B990: - movs r0, #0 - b _0803B9D6 - .align 2, 0 -_0803B994: .4byte gUnknown_2022C90 -_0803B998: - ldr r0, _0803B9A8 - strb r5, [r0, #0x17] - ldr r1, _0803B9AC - ldrb r0, [r2] - strb r0, [r1] - ldr r1, _0803B9B0 - movs r0, #2 - b _0803B9D4 - .align 2, 0 -_0803B9A8: .4byte gUnknown_2024118 -_0803B9AC: .4byte gUnknown_2023EAE -_0803B9B0: .4byte gUnknown_2023FD6 -_0803B9B4: - ldr r0, _0803B9C4 - strb r5, [r0, #0x17] - ldr r1, _0803B9C8 - ldrb r0, [r2] - strb r0, [r1] - ldr r1, _0803B9CC - movs r0, #2 - b _0803B9D4 - .align 2, 0 -_0803B9C4: .4byte gUnknown_2024118 -_0803B9C8: .4byte gUnknown_2023EAE -_0803B9CC: .4byte gUnknown_2023FD6 -_0803B9D0: - ldr r1, _0803B9E0 - movs r0, #1 -_0803B9D4: - strb r0, [r1, #5] -_0803B9D6: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0803B9E0: .4byte gUnknown_2023FD6 - thumb_func_end IsRunningFromBattleImpossible - - thumb_func_start sub_0803B9E4 -sub_0803B9E4: @ 0x0803B9E4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r3, #0 - ldr r0, _0803BA80 - mov r8, r0 - ldr r1, _0803BA84 - mov ip, r1 - ldr r7, _0803BA88 - lsls r0, r5, #1 - adds r4, r0, r5 - adds r6, r0, #0 -_0803BA00: - mov r0, ip - adds r2, r3, r0 - ldr r1, [r7] - adds r0, r4, r3 - adds r0, r0, r1 - adds r0, #0x60 - ldrb r0, [r0] - strb r0, [r2] - adds r3, #1 - cmp r3, #2 - ble _0803BA00 - mov r1, r8 - adds r0, r6, r1 - ldrb r0, [r0] - bl pokemon_order_func - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r7, _0803BA88 - ldr r0, [r7] - adds r0, r5, r0 - adds r0, #0x5c - ldrb r0, [r0] - bl pokemon_order_func - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl sub_081B8C50 - ldr r0, _0803BA8C - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0803BA90 - movs r3, #0 - adds r4, r7, #0 - adds r6, r6, r5 - movs r0, #2 - adds r1, r5, #0 - eors r1, r0 - ldr r7, _0803BA84 - lsls r0, r1, #1 - adds r5, r0, r1 -_0803BA5E: - ldr r0, [r4] - adds r1, r6, r3 - adds r1, r1, r0 - adds r1, #0x60 - adds r2, r3, r7 - ldrb r0, [r2] - strb r0, [r1] - ldr r1, [r4] - adds r0, r5, r3 - adds r0, r0, r1 - adds r0, #0x60 - ldrb r1, [r2] - strb r1, [r0] - adds r3, #1 - cmp r3, #2 - ble _0803BA5E - b _0803BAAA - .align 2, 0 -_0803BA80: .4byte gUnknown_2023D12 -_0803BA84: .4byte gUnknown_203CBCC -_0803BA88: .4byte gUnknown_2024140 -_0803BA8C: .4byte gUnknown_2022C90 -_0803BA90: - movs r3, #0 - adds r2, r6, r5 - ldr r4, _0803BAB4 -_0803BA96: - ldr r0, [r7] - adds r1, r2, r3 - adds r1, r1, r0 - adds r1, #0x60 - adds r0, r3, r4 - ldrb r0, [r0] - strb r0, [r1] - adds r3, #1 - cmp r3, #2 - ble _0803BA96 -_0803BAAA: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0803BAB4: .4byte gUnknown_203CBCC - thumb_func_end sub_0803B9E4 - - thumb_func_start HandleTurnActionSelectionState -HandleTurnActionSelectionState: @ 0x0803BAB8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - ldr r0, _0803BAD4 - movs r1, #0 - strb r1, [r0, #4] - ldr r0, _0803BAD8 - strb r1, [r0] - ldr r0, _0803BADC - bl _0803C956 - .align 2, 0 -_0803BAD4: .4byte gUnknown_2023FD6 -_0803BAD8: .4byte gUnknown_2023D08 -_0803BADC: .4byte gUnknown_2023D10 - thumb_func_end HandleTurnActionSelectionState - - thumb_func_start sub_0803BAE0 -sub_0803BAE0: @ 0x0803BAE0 - ldr r4, _0803BB08 - ldrb r0, [r4] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _0803BB0C - ldrb r0, [r4] - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #8 - bls _0803BAFC - bl _0803C948 -_0803BAFC: - lsls r0, r0, #2 - ldr r1, _0803BB10 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803BB08: .4byte gUnknown_2023D08 -_0803BB0C: .4byte gUnknown_2023FD6 -_0803BB10: .4byte _0803BB14 -_0803BB14: @ jump table - .4byte _0803BB38 @ case 0 - .4byte _0803BB50 @ case 1 - .4byte _0803BC70 @ case 2 - .4byte _0803C41C @ case 3 - .4byte _0803C714 @ case 4 - .4byte _0803C7C8 @ case 5 - .4byte _0803C80C @ case 6 - .4byte _0803C838 @ case 7 - .4byte _0803C87C @ case 8 -_0803BB38: - bl RecordedBattle_CopyBattlerMoves - ldr r1, _0803BB48 - ldr r0, _0803BB4C - ldrb r0, [r0] - adds r0, r0, r1 - bl _0803C864 - .align 2, 0 -_0803BB48: .4byte gUnknown_2023FD6 -_0803BB4C: .4byte gUnknown_2023D08 -_0803BB50: - ldr r0, _0803BBE8 - ldrb r1, [r0] - ldr r4, _0803BBEC - ldr r0, [r4] - adds r1, r1, r0 - adds r1, #0x5c - movs r0, #6 - strb r0, [r1] - ldr r0, _0803BBF0 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _0803BBAC - movs r1, #2 - movs r0, #2 - ands r0, r5 - cmp r0, #0 - beq _0803BBAC - eors r5, r1 - adds r0, r5, #0 - bl GetBattlerAtPosition - ldr r1, [r4] - adds r1, #0x91 - ldrb r1, [r1] - ldr r2, _0803BBF4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _0803BBAC - ldr r4, _0803BBF8 - adds r0, r5, #0 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #5 - beq _0803BBAC - bl _0803C948 -_0803BBAC: - ldr r0, _0803BBEC - ldr r0, [r0] - adds r0, #0x91 - ldrb r3, [r0] - ldr r1, _0803BBF4 - ldr r4, _0803BBE8 - ldrb r2, [r4] - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - ands r3, r0 - cmp r3, #0 - beq _0803BC14 - ldr r0, _0803BBFC - adds r0, r2, r0 - movs r1, #0xd - strb r1, [r0] - ldr r0, _0803BBF0 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _0803BC00 - ldr r0, _0803BBF8 - ldrb r1, [r4] - adds r1, r1, r0 - movs r0, #5 - strb r0, [r1] - bl _0803C948 - .align 2, 0 -_0803BBE8: .4byte gUnknown_2023D08 -_0803BBEC: .4byte gUnknown_2024140 -_0803BBF0: .4byte gUnknown_2022C90 -_0803BBF4: .4byte gUnknown_82FACB4 -_0803BBF8: .4byte gUnknown_2023FD6 -_0803BBFC: .4byte gUnknown_2023EC0 -_0803BC00: - ldr r0, _0803BC10 - ldrb r1, [r4] - adds r1, r1, r0 - movs r0, #4 - strb r0, [r1] - bl _0803C948 - .align 2, 0 -_0803BC10: .4byte gUnknown_2023FD6 -_0803BC14: - ldr r1, _0803BC44 - movs r0, #0x58 - muls r0, r2, r0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r1, [r0] - movs r0, #0x80 - lsls r0, r0, #5 - ands r0, r1 - cmp r0, #0 - bne _0803BC34 - movs r0, #0x80 - lsls r0, r0, #0xf - ands r1, r0 - cmp r1, #0 - beq _0803BC50 -_0803BC34: - ldr r0, _0803BC48 - adds r0, r2, r0 - strb r3, [r0] - ldr r1, _0803BC4C - ldrb r0, [r4] - bl _0803C8B6 - .align 2, 0 -_0803BC44: .4byte gUnknown_2023D28 -_0803BC48: .4byte gUnknown_2023EC0 -_0803BC4C: .4byte gUnknown_2023FD6 -_0803BC50: - ldr r0, _0803BC68 - ldrb r1, [r0] - ldr r0, _0803BC6C - ldrb r2, [r0, #1] - ldrb r0, [r0, #2] - lsls r0, r0, #8 - orrs r2, r0 - movs r0, #0 - bl BtlController_EmitChooseAction - bl _0803C7AC - .align 2, 0 -_0803BC68: .4byte gUnknown_2023EC0 -_0803BC6C: .4byte gUnknown_2023508 -_0803BC70: - ldr r3, _0803BCD4 - ldr r1, _0803BCD8 - ldr r6, _0803BCDC - ldrb r5, [r6] - lsls r0, r5, #2 - adds r0, r0, r1 - ldr r2, [r0] - lsls r1, r2, #4 - movs r0, #0xf0 - lsls r0, r0, #0x18 - orrs r1, r0 - orrs r1, r2 - lsls r0, r2, #8 - orrs r1, r0 - lsls r2, r2, #0xc - orrs r1, r2 - ldr r0, [r3] - ands r0, r1 - cmp r0, #0 - beq _0803BC9C - bl _0803C948 -_0803BC9C: - ldr r4, _0803BCE0 - lsls r0, r5, #9 - adds r4, #1 - adds r0, r0, r4 - ldrb r1, [r0] - adds r0, r5, #0 - bl RecordedBattle_SetBattlerAction - ldr r1, _0803BCE4 - ldrb r0, [r6] - adds r1, r0, r1 - lsls r0, r0, #9 - adds r0, r0, r4 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r6] - lsls r0, r0, #9 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0xc - bls _0803BCC8 - b _0803C308 -_0803BCC8: - lsls r0, r0, #2 - ldr r1, _0803BCE8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803BCD4: .4byte gUnknown_2023D0C -_0803BCD8: .4byte gUnknown_82FACB4 -_0803BCDC: .4byte gUnknown_2023D08 -_0803BCE0: .4byte gUnknown_2023508 -_0803BCE4: .4byte gUnknown_2023EC0 -_0803BCE8: .4byte _0803BCEC -_0803BCEC: @ jump table - .4byte _0803BD20 @ case 0 - .4byte _0803BE74 @ case 1 - .4byte _0803BEAC @ case 2 - .4byte _0803C308 @ case 3 - .4byte _0803C308 @ case 4 - .4byte _0803C084 @ case 5 - .4byte _0803C0D0 @ case 6 - .4byte _0803C308 @ case 7 - .4byte _0803C308 @ case 8 - .4byte _0803C308 @ case 9 - .4byte _0803C308 @ case 10 - .4byte _0803C308 @ case 11 - .4byte _0803C0F8 @ case 12 -_0803BD20: - bl AreAllMovesUnusable - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0803BD78 - ldr r0, _0803BD68 - ldr r3, _0803BD6C - ldrb r1, [r3] - adds r1, r1, r0 - movs r4, #0 - movs r0, #6 - strb r0, [r1] - ldrb r1, [r3] - ldr r2, _0803BD70 - ldr r0, [r2] - adds r1, r1, r0 - adds r1, #0x54 - strb r4, [r1] - ldrb r1, [r3] - ldr r0, [r2] - adds r1, r1, r0 - adds r1, #0x84 - movs r0, #4 - strb r0, [r1] - ldrb r1, [r3] - ldr r2, [r2] - adds r2, r1, r2 - ldr r0, _0803BD74 - lsls r1, r1, #9 - adds r0, #3 - adds r1, r1, r0 - ldrb r0, [r1] - strb r0, [r2, #0xc] - bl _0803C9B4 - .align 2, 0 -_0803BD68: .4byte gUnknown_2023FD6 -_0803BD6C: .4byte gUnknown_2023D08 -_0803BD70: .4byte gUnknown_2024140 -_0803BD74: .4byte gUnknown_2023508 -_0803BD78: - ldr r3, _0803BDB8 - ldr r5, _0803BDBC - ldrb r4, [r5] - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r2, [r0, #6] - cmp r2, #0 - beq _0803BDCC - ldr r1, _0803BDC0 - lsls r0, r4, #1 - adds r0, r0, r1 - strh r2, [r0] - ldrb r2, [r5] - ldr r0, _0803BDC4 - ldr r1, [r0] - adds r1, r2, r1 - adds r1, #0x80 - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r0, [r0, #0xc] - strb r0, [r1] - ldr r1, _0803BDC8 - ldrb r0, [r5] - adds r0, r0, r1 - movs r1, #4 - strb r1, [r0] - bl _0803C9B4 - .align 2, 0 -_0803BDB8: .4byte gUnknown_2023F60 -_0803BDBC: .4byte gUnknown_2023D08 -_0803BDC0: .4byte gUnknown_2023F18 -_0803BDC4: .4byte gUnknown_2024140 -_0803BDC8: .4byte gUnknown_2023FD6 -_0803BDCC: - add r2, sp, #4 - ldr r3, _0803BE6C - movs r1, #0x58 - adds r0, r4, #0 - muls r0, r1, r0 - adds r0, r0, r3 - ldrh r0, [r0] - strh r0, [r2, #0x10] - ldrb r0, [r5] - muls r0, r1, r0 - adds r0, r0, r3 - adds r0, #0x21 - ldrb r0, [r0] - strb r0, [r2, #0x12] - ldrb r0, [r5] - muls r0, r1, r0 - adds r0, r0, r3 - adds r0, #0x22 - ldrb r0, [r0] - strb r0, [r2, #0x13] - movs r4, #0 - mov r1, sp - adds r1, #0xc - str r1, [sp, #0x18] - add r2, sp, #0x10 - mov sl, r2 - mov r8, r3 - adds r7, r5, #0 - movs r6, #0x58 - movs r0, #0xc - add r0, r8 - mov sb, r0 - add r5, sp, #4 -_0803BE0E: - lsls r2, r4, #1 - ldrb r0, [r7] - muls r0, r6, r0 - adds r0, r2, r0 - add r0, sb - ldrh r0, [r0] - strh r0, [r5] - ldr r1, [sp, #0x18] - adds r3, r1, r4 - ldrb r0, [r7] - muls r0, r6, r0 - adds r0, r4, r0 - mov r1, r8 - adds r1, #0x24 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r3] - ldrb r0, [r7] - adds r1, r0, #0 - muls r1, r6, r1 - adds r2, r2, r1 - add r2, sb - ldrh r0, [r2] - add r1, r8 - adds r1, #0x3b - ldrb r1, [r1] - lsls r2, r4, #0x18 - lsrs r2, r2, #0x18 - bl CalculatePPWithBonus - mov r2, sl - adds r1, r2, r4 - strb r0, [r1] - adds r5, #2 - adds r4, #1 - cmp r4, #3 - ble _0803BE0E - ldr r0, _0803BE70 - ldr r1, [r0] - movs r0, #1 - ands r1, r0 - movs r0, #0 - movs r2, #0 - add r3, sp, #4 - bl BtlController_EmitChooseMove - b _0803C072 - .align 2, 0 -_0803BE6C: .4byte gUnknown_2023D28 -_0803BE70: .4byte gUnknown_2022C90 -_0803BE74: - ldr r0, _0803BE98 - ldr r0, [r0] - ldr r1, _0803BE9C - ands r0, r1 - cmp r0, #0 - bne _0803BE82 - b _0803C0D0 -_0803BE82: - ldr r4, _0803BEA0 - ldrb r0, [r4] - movs r1, #1 - bl RecordedBattle_ClearBattlerAction - ldr r1, _0803BEA4 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0803BEA8 - b _0803C3C8 - .align 2, 0 -_0803BE98: .4byte gUnknown_2022C90 -_0803BE9C: .4byte 0x021F0902 -_0803BEA0: .4byte gUnknown_2023D08 -_0803BEA4: .4byte gUnknown_2023EC4 -_0803BEA8: .4byte gUnknown_8289E01 -_0803BEAC: - ldr r5, _0803BF14 - ldrb r0, [r5] - ldr r3, _0803BF18 - ldr r1, [r3] - adds r1, r0, r1 - adds r1, #0x58 - ldr r2, _0803BF1C - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strb r0, [r1] - ldr r7, _0803BF20 - ldrb r2, [r5] - movs r6, #0x58 - adds r0, r2, #0 - muls r0, r6, r0 - adds r1, r7, #0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r1, [r0] - ldr r0, _0803BF24 - ands r1, r0 - cmp r1, #0 - bne _0803BEFC - ldr r0, _0803BF28 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xb - ands r0, r1 - cmp r0, #0 - bne _0803BEFC - ldr r0, _0803BF2C - lsls r1, r2, #2 - adds r1, r1, r0 - ldr r1, [r1] - movs r0, #0x80 - lsls r0, r0, #3 - ands r1, r0 - cmp r1, #0 - beq _0803BF30 -_0803BEFC: - ldr r0, _0803BF14 - ldrb r0, [r0] - lsls r1, r0, #1 - adds r1, r1, r0 - adds r1, #0x60 - ldr r0, [r3] - adds r0, r0, r1 - str r0, [sp] - movs r0, #0 - movs r1, #2 - movs r2, #6 - b _0803C044 - .align 2, 0 -_0803BF14: .4byte gUnknown_2023D08 -_0803BF18: .4byte gUnknown_2024140 -_0803BF1C: .4byte gUnknown_2023D12 -_0803BF20: .4byte gUnknown_2023D28 -_0803BF24: .4byte 0x0400E000 -_0803BF28: .4byte gUnknown_2022C90 -_0803BF2C: .4byte gUnknown_2023F50 -_0803BF30: - str r1, [sp] - movs r0, #0xc - adds r1, r2, #0 - movs r2, #0x17 - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _0803BFB8 - ldrb r1, [r5] - str r4, [sp] - movs r0, #0xc - movs r2, #0x47 - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - beq _0803BF80 - ldrb r0, [r5] - muls r0, r6, r0 - adds r1, r0, r7 - adds r0, r1, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #2 - beq _0803BF80 - adds r0, r1, #0 - adds r0, #0x22 - ldrb r0, [r0] - cmp r0, #2 - beq _0803BF80 - adds r0, r1, #0 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x1a - bne _0803BFB8 -_0803BF80: - ldr r5, _0803BFE4 - ldrb r1, [r5] - movs r0, #0 - str r0, [sp] - movs r0, #0xf - movs r2, #0x2a - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - beq _0803BFF4 - ldr r2, _0803BFE8 - ldrb r1, [r5] - movs r0, #0x58 - muls r0, r1, r0 - adds r1, r0, r2 - adds r0, r1, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #8 - beq _0803BFB8 - adds r0, r1, #0 - adds r0, #0x22 - ldrb r0, [r0] - cmp r0, #8 - bne _0803BFF4 -_0803BFB8: - subs r1, r4, #1 - lsls r1, r1, #4 - movs r0, #4 - orrs r1, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, _0803BFEC - ldrb r3, [r0] - ldr r4, _0803BFF0 - ldr r0, _0803BFE4 - ldrb r0, [r0] - lsls r2, r0, #1 - adds r2, r2, r0 - adds r2, #0x60 - ldr r0, [r4] - adds r0, r0, r2 - str r0, [sp] - movs r0, #0 - movs r2, #6 - bl BtlController_EmitChoosePokemon - b _0803C072 - .align 2, 0 -_0803BFE4: .4byte gUnknown_2023D08 -_0803BFE8: .4byte gUnknown_2023D28 -_0803BFEC: .4byte gUnknown_2023EAE -_0803BFF0: .4byte gUnknown_2024140 -_0803BFF4: - ldr r0, _0803C010 - ldrb r1, [r0] - adds r4, r0, #0 - cmp r1, #2 - bne _0803C01C - ldr r0, _0803C014 - ldrb r0, [r0] - cmp r0, #2 - bne _0803C01C - ldr r0, _0803C018 - ldr r3, [r0] - adds r0, r3, #0 - adds r0, #0x5c - b _0803C032 - .align 2, 0 -_0803C010: .4byte gUnknown_2023D08 -_0803C014: .4byte gUnknown_2023EC0 -_0803C018: .4byte gUnknown_2024140 -_0803C01C: - ldrb r0, [r4] - cmp r0, #3 - bne _0803C054 - ldr r0, _0803C04C - ldrb r0, [r0, #1] - cmp r0, #2 - bne _0803C054 - ldr r0, _0803C050 - ldr r3, [r0] - adds r0, r3, #0 - adds r0, #0x5d -_0803C032: - ldrb r2, [r0] - ldrb r1, [r4] - lsls r0, r1, #1 - adds r0, r0, r1 - adds r0, #0x60 - adds r3, r3, r0 - str r3, [sp] - movs r0, #0 - movs r1, #0 -_0803C044: - movs r3, #0 - bl BtlController_EmitChoosePokemon - b _0803C072 - .align 2, 0 -_0803C04C: .4byte gUnknown_2023EC0 -_0803C050: .4byte gUnknown_2024140 -_0803C054: - ldr r2, _0803C07C - ldr r0, _0803C080 - ldrb r0, [r0] - lsls r1, r0, #1 - adds r1, r1, r0 - adds r1, #0x60 - ldr r0, [r2] - adds r0, r0, r1 - str r0, [sp] - movs r0, #0 - movs r1, #0 - movs r2, #6 - movs r3, #0 - bl BtlController_EmitChoosePokemon -_0803C072: - ldr r0, _0803C080 - ldrb r0, [r0] - bl MarkBattlerForControllerExec - b _0803C308 - .align 2, 0 -_0803C07C: .4byte gUnknown_2024140 -_0803C080: .4byte gUnknown_2023D08 -_0803C084: - bl IsPlayerPartyAndPokemonStorageFull - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803C090 - b _0803C308 -_0803C090: - ldr r1, _0803C0BC - ldr r3, _0803C0C0 - ldrb r0, [r3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0803C0C4 - str r1, [r0] - ldr r0, _0803C0C8 - ldrb r1, [r3] - adds r1, r1, r0 - movs r4, #0 - movs r0, #6 - strb r0, [r1] - ldrb r1, [r3] - ldr r2, _0803C0CC - ldr r0, [r2] - adds r1, r1, r0 - adds r1, #0x54 - strb r4, [r1] - ldrb r1, [r3] - b _0803C3E4 - .align 2, 0 -_0803C0BC: .4byte gUnknown_2023EC4 -_0803C0C0: .4byte gUnknown_2023D08 -_0803C0C4: .4byte gUnknown_8289099 -_0803C0C8: .4byte gUnknown_2023FD6 -_0803C0CC: .4byte gUnknown_2024140 -_0803C0D0: - ldr r2, _0803C0F0 - ldr r4, _0803C0F4 - ldrb r1, [r4] - lsls r0, r1, #1 - adds r0, r0, r1 - adds r0, #0x60 - ldr r1, [r2] - adds r1, r1, r0 - movs r0, #0 - bl BtlController_EmitChooseItem - ldrb r0, [r4] - bl MarkBattlerForControllerExec - b _0803C308 - .align 2, 0 -_0803C0F0: .4byte gUnknown_2024140 -_0803C0F4: .4byte gUnknown_2023D08 -_0803C0F8: - ldr r4, _0803C188 - ldr r5, _0803C18C - ldrb r0, [r5] - adds r0, r0, r4 - movs r1, #7 - strb r1, [r0] - ldrb r0, [r5] - bl sub_080A630C - movs r6, #2 - eors r0, r6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r4 - movs r1, #1 - strb r1, [r0] - ldrb r0, [r5] - bl RecordedBattle_ClearBattlerAction - ldrb r0, [r5] - bl sub_080A630C - eors r0, r6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - ldr r1, _0803C190 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r7, #0x58 - muls r0, r7, r0 - adds r4, r1, #0 - adds r4, #0x50 - adds r0, r0, r4 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #5 - ands r0, r1 - cmp r0, #0 - bne _0803C176 - ldrb r0, [r5] - bl sub_080A630C - eors r0, r6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - muls r0, r7, r0 - adds r0, r0, r4 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - beq _0803C194 -_0803C176: - movs r0, #0 - bl BtlController_EmitEndBounceEffect - ldrb r0, [r5] - bl MarkBattlerForControllerExec - bl _0803C9B4 - .align 2, 0 -_0803C188: .4byte gUnknown_2023FD6 -_0803C18C: .4byte gUnknown_2023D08 -_0803C190: .4byte gUnknown_2023D28 -_0803C194: - ldr r4, _0803C1D0 - ldrb r0, [r5] - bl sub_080A630C - eors r0, r6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #2 - bne _0803C1D4 - ldrb r0, [r5] - bl sub_080A630C - eors r0, r6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - bl RecordedBattle_ClearBattlerAction - b _0803C2F2 - .align 2, 0 -_0803C1D0: .4byte gUnknown_2023EC0 -_0803C1D4: - ldrb r0, [r5] - bl sub_080A630C - eors r0, r6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #3 - bne _0803C1FA - ldrb r0, [r5] - bl sub_080A630C - eors r0, r6 - b _0803C2AC -_0803C1FA: - ldrb r0, [r5] - bl sub_080A630C - eors r0, r6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0 - bne _0803C26C - ldr r4, _0803C264 - ldrb r0, [r5] - bl sub_080A630C - eors r0, r6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x14 - adds r0, r0, r4 - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - blt _0803C25A - ldr r4, _0803C268 - ldrb r0, [r5] - bl sub_080A630C - eors r0, r6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrh r0, [r1, #6] - cmp r0, #0 - beq _0803C26C -_0803C25A: - ldrb r0, [r5] - bl sub_080A630C - eors r0, r6 - b _0803C2AC - .align 2, 0 -_0803C264: .4byte gUnknown_2023FE0 -_0803C268: .4byte gUnknown_2023F60 -_0803C26C: - ldr r0, _0803C2C0 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xa - ands r0, r1 - cmp r0, #0 - beq _0803C2D4 - ldr r4, _0803C2C4 - ldr r6, _0803C2C8 - ldrb r0, [r6] - bl sub_080A630C - movs r5, #2 - eors r0, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0 - bne _0803C2D4 - ldr r1, _0803C2CC - ldr r0, _0803C2D0 - ldr r0, [r0] - str r0, [r1] - ldrb r0, [r6] - bl sub_080A630C - eors r0, r5 -_0803C2AC: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - bl RecordedBattle_ClearBattlerAction - b _0803C2F2 - .align 2, 0 -_0803C2C0: .4byte gUnknown_2022C90 -_0803C2C4: .4byte gUnknown_2023EC0 -_0803C2C8: .4byte gUnknown_2023D08 -_0803C2CC: .4byte gUnknown_3005AE0 -_0803C2D0: .4byte gUnknown_203B9FC -_0803C2D4: - ldr r0, _0803C304 - ldrb r0, [r0] - bl sub_080A630C - movs r1, #2 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #3 - bl RecordedBattle_ClearBattlerAction -_0803C2F2: - movs r0, #0 - bl BtlController_EmitEndBounceEffect - ldr r0, _0803C304 - ldrb r0, [r0] - bl MarkBattlerForControllerExec - b _0803C9B4 - .align 2, 0 -_0803C304: .4byte gUnknown_2023D08 -_0803C308: - ldr r1, _0803C348 - ldr r2, [r1] - movs r5, #8 - adds r0, r2, #0 - ands r0, r5 - adds r3, r1, #0 - cmp r0, #0 - beq _0803C364 - ldr r0, _0803C34C - ands r2, r0 - cmp r2, #0 - beq _0803C364 - ldr r0, _0803C350 - ldr r4, _0803C354 - ldrb r2, [r4] - lsls r1, r2, #9 - adds r0, #1 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #3 - bne _0803C364 - ldr r1, _0803C358 - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r1, _0803C35C - str r1, [r0] - ldr r1, _0803C360 - ldrb r0, [r4] - adds r0, r0, r1 - movs r3, #0 - strb r5, [r0] - b _0803C3D6 - .align 2, 0 -_0803C348: .4byte gUnknown_2022C90 -_0803C34C: .4byte 0x043F0100 -_0803C350: .4byte gUnknown_2023508 -_0803C354: .4byte gUnknown_2023D08 -_0803C358: .4byte gUnknown_2023EC4 -_0803C35C: .4byte gUnknown_8289F42 -_0803C360: .4byte gUnknown_2023FD6 -_0803C364: - ldr r0, [r3] - ldr r1, _0803C390 - ands r0, r1 - cmp r0, #8 - bne _0803C3A4 - ldr r0, _0803C394 - ldr r4, _0803C398 - ldrb r1, [r4] - lsls r1, r1, #9 - adds r0, #1 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #3 - bne _0803C3A4 - ldr r0, _0803C39C - bl BattleScriptExecute - ldr r1, _0803C3A0 - ldrb r0, [r4] - adds r0, r0, r1 - b _0803C864 - .align 2, 0 -_0803C390: .4byte gUnknown_200000A -_0803C394: .4byte gUnknown_2023508 -_0803C398: .4byte gUnknown_2023D08 -_0803C39C: .4byte gUnknown_8289086 -_0803C3A0: .4byte gUnknown_2023FD6 -_0803C3A4: - bl IsRunningFromBattleImpossible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0803C408 - ldr r0, _0803C3F0 - ldr r4, _0803C3F4 - ldrb r2, [r4] - lsls r1, r2, #9 - adds r0, #1 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #3 - bne _0803C408 - ldr r1, _0803C3F8 - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r1, _0803C3FC -_0803C3C8: - str r1, [r0] - ldr r0, _0803C400 - ldrb r1, [r4] - adds r1, r1, r0 - movs r3, #0 - movs r0, #6 - strb r0, [r1] -_0803C3D6: - ldrb r1, [r4] - ldr r2, _0803C404 - ldr r0, [r2] - adds r1, r1, r0 - adds r1, #0x54 - strb r3, [r1] - ldrb r1, [r4] -_0803C3E4: - ldr r0, [r2] - adds r1, r1, r0 - adds r1, #0x84 - movs r0, #1 - strb r0, [r1] - b _0803C9B4 - .align 2, 0 -_0803C3F0: .4byte gUnknown_2023508 -_0803C3F4: .4byte gUnknown_2023D08 -_0803C3F8: .4byte gUnknown_2023EC4 -_0803C3FC: .4byte gUnknown_8289093 -_0803C400: .4byte gUnknown_2023FD6 -_0803C404: .4byte gUnknown_2024140 -_0803C408: - ldr r2, _0803C414 - ldr r0, _0803C418 - ldrb r1, [r0] - adds r1, r1, r2 - b _0803C7B8 - .align 2, 0 -_0803C414: .4byte gUnknown_2023FD6 -_0803C418: .4byte gUnknown_2023D08 -_0803C41C: - ldr r4, _0803C460 - ldr r1, _0803C464 - ldr r3, _0803C468 - ldrb r5, [r3] - lsls r0, r5, #2 - adds r0, r0, r1 - ldr r2, [r0] - lsls r0, r2, #4 - movs r1, #0xf0 - lsls r1, r1, #0x18 - orrs r0, r1 - orrs r0, r2 - lsls r1, r2, #8 - orrs r0, r1 - lsls r2, r2, #0xc - orrs r0, r2 - ldr r1, [r4] - ands r1, r0 - adds r4, r3, #0 - cmp r1, #0 - beq _0803C448 - b _0803C948 -_0803C448: - ldr r1, _0803C46C - adds r0, r5, r1 - ldrb r0, [r0] - adds r2, r1, #0 - cmp r0, #9 - bls _0803C456 - b _0803C948 -_0803C456: - lsls r0, r0, #2 - ldr r1, _0803C470 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803C460: .4byte gUnknown_2023D0C -_0803C464: .4byte gUnknown_82FACB4 -_0803C468: .4byte gUnknown_2023D08 -_0803C46C: .4byte gUnknown_2023EC0 -_0803C470: .4byte _0803C474 -_0803C474: @ jump table - .4byte _0803C49C @ case 0 - .4byte _0803C5E0 @ case 1 - .4byte _0803C618 @ case 2 - .4byte _0803C64E @ case 3 - .4byte _0803C670 @ case 4 - .4byte _0803C684 @ case 5 - .4byte _0803C698 @ case 6 - .4byte _0803C6C8 @ case 7 - .4byte _0803C6DC @ case 8 - .4byte _0803C700 @ case 9 -_0803C49C: - ldr r1, _0803C4B8 - ldrb r3, [r4] - lsls r0, r3, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r1, [r0] - cmp r1, #3 - blt _0803C4CE - cmp r1, #9 - ble _0803C4BC - cmp r1, #0xf - beq _0803C4C2 - b _0803C4CE - .align 2, 0 -_0803C4B8: .4byte gUnknown_2023508 -_0803C4BC: - adds r0, r3, r2 - strb r1, [r0] - b _0803C9B4 -_0803C4C2: - adds r1, r3, r2 - movs r0, #2 - strb r0, [r1] - bl sub_0803CA3C - b _0803C9B4 -_0803C4CE: - movs r0, #2 - bl sub_08185D94 - ldr r4, _0803C504 - ldr r6, _0803C508 - ldrb r3, [r6] - lsls r1, r3, #9 - adds r5, r4, #2 - adds r0, r1, r5 - ldrb r2, [r0] - adds r7, r4, #3 - adds r1, r1, r7 - ldrb r0, [r1] - lsls r0, r0, #8 - orrs r2, r0 - ldr r0, _0803C50C - cmp r2, r0 - bne _0803C514 - ldr r0, _0803C510 - adds r0, r3, r0 - movs r1, #1 - strb r1, [r0] - ldrb r0, [r6] - bl RecordedBattle_ClearBattlerAction - b _0803C948 - .align 2, 0 -_0803C504: .4byte gUnknown_2023508 -_0803C508: .4byte gUnknown_2023D08 -_0803C50C: .4byte 0x0000FFFF -_0803C510: .4byte gUnknown_2023FD6 -_0803C514: - bl TrySetCantSelectMoveBattleScript - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0803C560 - ldrb r0, [r6] - movs r1, #1 - bl RecordedBattle_ClearBattlerAction - ldr r0, _0803C558 - ldrb r1, [r6] - adds r1, r1, r0 - movs r3, #0 - movs r0, #6 - strb r0, [r1] - ldrb r1, [r6] - ldr r2, _0803C55C - ldr r0, [r2] - adds r1, r1, r0 - adds r1, #0x54 - strb r3, [r1] - ldrb r0, [r6] - lsls r0, r0, #9 - adds r1, r4, #1 - adds r0, r0, r1 - strb r3, [r0] - ldrb r1, [r6] - ldr r0, [r2] - adds r1, r1, r0 - adds r1, #0x84 - movs r0, #2 - strb r0, [r1] - b _0803C9B4 - .align 2, 0 -_0803C558: .4byte gUnknown_2023FD6 -_0803C55C: .4byte gUnknown_2024140 -_0803C560: - ldr r0, _0803C5CC - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xa - ands r0, r1 - cmp r0, #0 - bne _0803C586 - ldrb r0, [r6] - lsls r1, r0, #9 - adds r1, r1, r5 - ldrb r1, [r1] - bl RecordedBattle_SetBattlerAction - ldrb r0, [r6] - lsls r1, r0, #9 - adds r1, r1, r7 - ldrb r1, [r1] - bl RecordedBattle_SetBattlerAction -_0803C586: - ldrb r0, [r6] - ldr r4, _0803C5D0 - ldr r1, [r4] - adds r1, r0, r1 - adds r1, #0x80 - lsls r0, r0, #9 - adds r0, r0, r5 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _0803C5D4 - ldrb r2, [r6] - lsls r5, r2, #1 - adds r5, r5, r0 - ldr r3, _0803C5D8 - ldr r4, [r4] - adds r0, r2, r4 - adds r0, #0x80 - ldrb r0, [r0] - lsls r0, r0, #1 - movs r1, #0x58 - muls r1, r2, r1 - adds r0, r0, r1 - adds r3, #0xc - adds r0, r0, r3 - ldrh r0, [r0] - strh r0, [r5] - ldrb r0, [r6] - adds r4, r0, r4 - lsls r0, r0, #9 - adds r0, r0, r7 - ldrb r0, [r0] - strb r0, [r4, #0xc] - ldr r0, _0803C5DC - ldrb r1, [r6] - b _0803C7B6 - .align 2, 0 -_0803C5CC: .4byte gUnknown_2022C90 -_0803C5D0: .4byte gUnknown_2024140 -_0803C5D4: .4byte gUnknown_2023F18 -_0803C5D8: .4byte gUnknown_2023D28 -_0803C5DC: .4byte gUnknown_2023FD6 -_0803C5E0: - ldr r2, _0803C608 - ldr r5, _0803C60C - ldrb r4, [r5] - lsls r1, r4, #9 - adds r0, r2, #1 - adds r0, r1, r0 - ldrb r3, [r0] - adds r2, #2 - adds r1, r1, r2 - ldrb r0, [r1] - lsls r0, r0, #8 - orrs r3, r0 - cmp r3, #0 - bne _0803C5FE - b _0803C860 -_0803C5FE: - ldr r0, _0803C610 - strh r3, [r0] - ldr r0, _0803C614 - ldrb r1, [r5] - b _0803C7B6 - .align 2, 0 -_0803C608: .4byte gUnknown_2023508 -_0803C60C: .4byte gUnknown_2023D08 -_0803C610: .4byte gUnknown_2023EAC -_0803C614: .4byte gUnknown_2023FD6 -_0803C618: - ldr r0, _0803C63C - ldr r4, _0803C640 - ldrb r2, [r4] - lsls r1, r2, #9 - adds r0, #1 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #6 - bne _0803C648 - ldr r0, _0803C644 - adds r0, r2, r0 - movs r1, #1 - strb r1, [r0] - ldrb r0, [r4] - bl RecordedBattle_ClearBattlerAction - b _0803C948 - .align 2, 0 -_0803C63C: .4byte gUnknown_2023508 -_0803C640: .4byte gUnknown_2023D08 -_0803C644: .4byte gUnknown_2023FD6 -_0803C648: - bl sub_0803CA3C - b _0803C7B2 -_0803C64E: - ldr r2, _0803C664 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #8 - orrs r0, r1 - str r0, [r2] - ldr r2, _0803C668 - ldr r0, _0803C66C - ldrb r1, [r0] - adds r1, r1, r2 - b _0803C7B8 - .align 2, 0 -_0803C664: .4byte gUnknown_2023F24 -_0803C668: .4byte gUnknown_2023FD6 -_0803C66C: .4byte gUnknown_2023D08 -_0803C670: - ldr r2, _0803C67C - ldr r0, _0803C680 - ldrb r1, [r0] - adds r1, r1, r2 - b _0803C7B8 - .align 2, 0 -_0803C67C: .4byte gUnknown_2023FD6 -_0803C680: .4byte gUnknown_2023D08 -_0803C684: - ldr r2, _0803C690 - ldr r0, _0803C694 - ldrb r1, [r0] - adds r1, r1, r2 - b _0803C7B8 - .align 2, 0 -_0803C690: .4byte gUnknown_2023FD6 -_0803C694: .4byte gUnknown_2023D08 -_0803C698: - ldr r3, _0803C6BC - ldr r0, _0803C6C0 - ldrb r4, [r0] - lsls r1, r4, #9 - adds r0, r3, #1 - adds r0, r1, r0 - ldrb r2, [r0] - adds r3, #2 - adds r1, r1, r3 - ldrb r0, [r1] - lsls r0, r0, #8 - orrs r2, r0 - cmp r2, #0 - bne _0803C6B6 - b _0803C860 -_0803C6B6: - ldr r1, _0803C6C4 - adds r1, r4, r1 - b _0803C7B8 - .align 2, 0 -_0803C6BC: .4byte gUnknown_2023508 -_0803C6C0: .4byte gUnknown_2023D08 -_0803C6C4: .4byte gUnknown_2023FD6 -_0803C6C8: - ldr r2, _0803C6D4 - ldr r0, _0803C6D8 - ldrb r1, [r0] - adds r1, r1, r2 - b _0803C7B8 - .align 2, 0 -_0803C6D4: .4byte gUnknown_2023FD6 -_0803C6D8: .4byte gUnknown_2023D08 -_0803C6DC: - ldr r2, _0803C6F4 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #8 - orrs r0, r1 - str r0, [r2] - ldr r2, _0803C6F8 - ldr r0, _0803C6FC - ldrb r1, [r0] - adds r1, r1, r2 - b _0803C7B8 - .align 2, 0 -_0803C6F4: .4byte gUnknown_2023F24 -_0803C6F8: .4byte gUnknown_2023FD6 -_0803C6FC: .4byte gUnknown_2023D08 -_0803C700: - ldr r2, _0803C70C - ldr r0, _0803C710 - ldrb r1, [r0] - adds r1, r1, r2 - b _0803C7B8 - .align 2, 0 -_0803C70C: .4byte gUnknown_2023FD6 -_0803C710: .4byte gUnknown_2023D08 -_0803C714: - ldr r3, _0803C78C - ldr r6, _0803C790 - ldr r0, _0803C794 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r2, [r0] - lsls r1, r2, #4 - movs r0, #0xf0 - lsls r0, r0, #0x18 - orrs r1, r0 - orrs r1, r2 - lsls r0, r2, #8 - orrs r1, r0 - lsls r2, r2, #0xc - orrs r1, r2 - ldr r0, [r3] - ands r0, r1 - cmp r0, #0 - beq _0803C73E - b _0803C948 -_0803C73E: - bl AllAtActionConfirmed - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r4, r1, #0x1f - ldr r0, _0803C798 - ldr r0, [r0] - movs r1, #0x41 - ands r0, r1 - cmp r0, #1 - bne _0803C780 - movs r1, #2 - movs r0, #2 - ands r0, r5 - cmp r0, #0 - bne _0803C780 - adds r0, r5, #0 - eors r0, r1 - bl GetBattlerAtPosition - ldr r1, _0803C79C - ldr r1, [r1] - adds r1, #0x91 - ldrb r1, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r0, r0, r6 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _0803C7A0 -_0803C780: - movs r0, #0 - movs r1, #0 - adds r2, r4, #0 - bl BtlController_EmitLinkStandbyMsg - b _0803C7AA - .align 2, 0 -_0803C78C: .4byte gUnknown_2023D0C -_0803C790: .4byte gUnknown_82FACB4 -_0803C794: .4byte gUnknown_2023D08 -_0803C798: .4byte gUnknown_2022C90 -_0803C79C: .4byte gUnknown_2024140 -_0803C7A0: - movs r0, #0 - movs r1, #1 - adds r2, r4, #0 - bl BtlController_EmitLinkStandbyMsg -_0803C7AA: - ldr r4, _0803C7C0 -_0803C7AC: - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_0803C7B2: - ldr r0, _0803C7C4 - ldrb r1, [r4] -_0803C7B6: - adds r1, r1, r0 -_0803C7B8: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0803C948 - .align 2, 0 -_0803C7C0: .4byte gUnknown_2023D08 -_0803C7C4: .4byte gUnknown_2023FD6 -_0803C7C8: - ldr r3, _0803C7FC - ldr r1, _0803C800 - ldr r0, _0803C804 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r2, [r0] - lsls r1, r2, #4 - movs r0, #0xf0 - lsls r0, r0, #0x18 - orrs r1, r0 - orrs r1, r2 - lsls r0, r2, #8 - orrs r1, r0 - lsls r2, r2, #0xc - orrs r1, r2 - ldr r0, [r3] - ands r0, r1 - cmp r0, #0 - beq _0803C7F2 - b _0803C948 -_0803C7F2: - ldr r1, _0803C808 - ldrb r0, [r1, #4] - adds r0, #1 - strb r0, [r1, #4] - b _0803C948 - .align 2, 0 -_0803C7FC: .4byte gUnknown_2023D0C -_0803C800: .4byte gUnknown_82FACB4 -_0803C804: .4byte gUnknown_2023D08 -_0803C808: .4byte gUnknown_2023FD6 -_0803C80C: - ldr r5, _0803C82C - ldrb r2, [r5] - ldr r0, _0803C830 - ldr r0, [r0] - adds r1, r2, r0 - adds r0, r1, #0 - adds r0, #0x54 - ldrb r0, [r0] - cmp r0, #0 - beq _0803C8F8 - ldr r0, _0803C834 - adds r0, r2, r0 - adds r1, #0x84 - ldrb r1, [r1] - strb r1, [r0] - b _0803C948 - .align 2, 0 -_0803C82C: .4byte gUnknown_2023D08 -_0803C830: .4byte gUnknown_2024140 -_0803C834: .4byte gUnknown_2023FD6 -_0803C838: - ldr r3, _0803C86C - ldr r1, _0803C870 - ldr r0, _0803C874 - ldrb r4, [r0] - lsls r0, r4, #2 - adds r0, r0, r1 - ldr r2, [r0] - lsls r1, r2, #4 - movs r0, #0xf0 - lsls r0, r0, #0x18 - orrs r1, r0 - orrs r1, r2 - lsls r0, r2, #8 - orrs r1, r0 - lsls r2, r2, #0xc - orrs r1, r2 - ldr r0, [r3] - ands r0, r1 - cmp r0, #0 - bne _0803C948 -_0803C860: - ldr r0, _0803C878 - adds r0, r4, r0 -_0803C864: - movs r1, #1 - strb r1, [r0] - b _0803C948 - .align 2, 0 -_0803C86C: .4byte gUnknown_2023D0C -_0803C870: .4byte gUnknown_82FACB4 -_0803C874: .4byte gUnknown_2023D08 -_0803C878: .4byte gUnknown_2023FD6 -_0803C87C: - ldr r5, _0803C8C0 - ldrb r2, [r5] - ldr r4, _0803C8C4 - ldr r0, [r4] - adds r0, r2, r0 - adds r0, #0x54 - ldrb r0, [r0] - cmp r0, #0 - beq _0803C8F8 - ldr r0, _0803C8C8 - lsls r1, r2, #9 - adds r0, #1 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0xd - bne _0803C8D8 - ldr r2, _0803C8CC - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #8 - orrs r0, r1 - str r0, [r2] - ldr r1, _0803C8D0 - ldrb r0, [r5] - adds r0, r0, r1 - movs r1, #3 - strb r1, [r0] - ldr r1, _0803C8D4 - ldrb r0, [r5] -_0803C8B6: - adds r0, r0, r1 - movs r1, #4 - strb r1, [r0] - b _0803C948 - .align 2, 0 -_0803C8C0: .4byte gUnknown_2023D08 -_0803C8C4: .4byte gUnknown_2024140 -_0803C8C8: .4byte gUnknown_2023508 -_0803C8CC: .4byte gUnknown_2023F24 -_0803C8D0: .4byte gUnknown_2023EC0 -_0803C8D4: .4byte gUnknown_2023FD6 -_0803C8D8: - adds r0, r2, #0 - movs r1, #1 - bl RecordedBattle_ClearBattlerAction - ldr r2, _0803C8F4 - ldrb r0, [r5] - adds r2, r0, r2 - ldr r1, [r4] - adds r0, r0, r1 - adds r0, #0x84 - ldrb r0, [r0] - strb r0, [r2] - b _0803C948 - .align 2, 0 -_0803C8F4: .4byte gUnknown_2023FD6 -_0803C8F8: - ldr r0, _0803C9C4 - strb r2, [r0] - ldr r7, _0803C9C8 - ldr r6, _0803C9CC - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r4, [r0] - str r4, [r7] - ldr r3, _0803C9D0 - ldr r1, _0803C9D4 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r2, [r0] - lsls r1, r2, #4 - movs r0, #0xf0 - lsls r0, r0, #0x18 - orrs r1, r0 - orrs r1, r2 - lsls r0, r2, #8 - orrs r1, r0 - lsls r2, r2, #0xc - orrs r1, r2 - ldr r0, [r3] - ands r0, r1 - cmp r0, #0 - bne _0803C93E - ldr r0, _0803C9D8 - ldrb r1, [r4] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl _call_via_r0 -_0803C93E: - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r1, [r7] - str r1, [r0] -_0803C948: - ldr r0, _0803C9DC - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - ldr r0, _0803C9E0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 -_0803C956: - adds r5, r0, #0 - ldrb r0, [r5] - cmp r1, r0 - bhs _0803C962 - bl sub_0803BAE0 -_0803C962: - ldr r0, _0803C9E4 - ldrb r0, [r0, #4] - ldrb r1, [r5] - cmp r0, r1 - bne _0803C9B4 - movs r0, #1 - bl sub_08185D94 - ldr r1, _0803C9E8 - ldr r0, _0803C9EC - str r0, [r1] - ldr r0, _0803C9F0 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - beq _0803C9B4 - movs r4, #0 - ldrb r5, [r5] - cmp r4, r5 - bge _0803C9B4 -_0803C98E: - ldr r0, _0803C9F4 - adds r0, r4, r0 - ldrb r0, [r0] - cmp r0, #2 - bne _0803C9AA - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0803C9F8 - ldr r1, [r1] - adds r1, r4, r1 - adds r1, #0x5c - ldrb r1, [r1] - bl sub_08056DEC -_0803C9AA: - adds r4, #1 - ldr r0, _0803C9E0 - ldrb r0, [r0] - cmp r4, r0 - blt _0803C98E -_0803C9B4: - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0803C9C4: .4byte gUnknown_2023EAF -_0803C9C8: .4byte gUnknown_2023EB8 -_0803C9CC: .4byte gUnknown_2023EC4 -_0803C9D0: .4byte gUnknown_2023D0C -_0803C9D4: .4byte gUnknown_82FACB4 -_0803C9D8: .4byte gUnknown_82EC694 -_0803C9DC: .4byte gUnknown_2023D08 -_0803C9E0: .4byte gUnknown_2023D10 -_0803C9E4: .4byte gUnknown_2023FD6 -_0803C9E8: .4byte gUnknown_3005A64 -_0803C9EC: .4byte SetActionsAndBattlersTurnOrder -_0803C9F0: .4byte gUnknown_2022C90 -_0803C9F4: .4byte gUnknown_2023EC0 -_0803C9F8: .4byte gUnknown_2024140 - thumb_func_end sub_0803BAE0 - - thumb_func_start AllAtActionConfirmed -AllAtActionConfirmed: @ 0x0803C9FC - push {r4, r5, lr} - movs r3, #0 - movs r1, #0 - ldr r0, _0803CA2C - ldrb r2, [r0] - adds r5, r0, #0 - cmp r3, r2 - bge _0803CA1E - ldr r4, _0803CA30 -_0803CA0E: - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, #5 - bne _0803CA18 - adds r3, #1 -_0803CA18: - adds r1, #1 - cmp r1, r2 - blt _0803CA0E -_0803CA1E: - adds r0, r3, #1 - ldrb r5, [r5] - cmp r0, r5 - beq _0803CA34 - movs r0, #0 - b _0803CA36 - .align 2, 0 -_0803CA2C: .4byte gUnknown_2023D10 -_0803CA30: .4byte gUnknown_2023FD6 -_0803CA34: - movs r0, #1 -_0803CA36: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end AllAtActionConfirmed - - thumb_func_start sub_0803CA3C -sub_0803CA3C: @ 0x0803CA3C - push {r4, r5, r6, r7, lr} - ldr r7, _0803CB10 - ldrb r0, [r7] - ldr r6, _0803CB14 - ldr r1, [r6] - adds r1, r0, r1 - adds r1, #0x5c - ldr r4, _0803CB18 - lsls r0, r0, #9 - adds r2, r4, #1 - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - lsls r1, r0, #9 - adds r1, r1, r2 - ldrb r1, [r1] - bl RecordedBattle_SetBattlerAction - ldr r0, _0803CB1C - ldr r0, [r0] - movs r1, #0x42 - ands r0, r1 - cmp r0, #0x42 - bne _0803CB0A - ldrb r0, [r7] - ldr r2, [r6] - lsls r1, r0, #1 - adds r1, r1, r0 - adds r1, r1, r2 - adds r1, #0x60 - ldrb r2, [r1] - movs r0, #0xf - ands r0, r2 - strb r0, [r1] - ldrb r0, [r7] - ldr r2, [r6] - lsls r1, r0, #1 - adds r1, r1, r0 - adds r1, r1, r2 - adds r1, #0x60 - lsls r0, r0, #9 - adds r5, r4, #2 - adds r0, r0, r5 - ldrb r2, [r0] - movs r3, #0xf0 - adds r0, r3, #0 - ands r0, r2 - ldrb r2, [r1] - orrs r0, r2 - strb r0, [r1] - ldrb r1, [r7] - ldr r2, [r6] - lsls r0, r1, #1 - adds r0, r0, r1 - adds r0, r0, r2 - adds r0, #0x61 - lsls r1, r1, #9 - adds r4, #3 - mov ip, r4 - add r1, ip - ldrb r1, [r1] - strb r1, [r0] - ldrb r0, [r7] - movs r4, #2 - eors r0, r4 - ldr r2, [r6] - lsls r1, r0, #1 - adds r1, r1, r0 - adds r1, r1, r2 - adds r1, #0x60 - ldrb r2, [r1] - adds r0, r3, #0 - ands r0, r2 - strb r0, [r1] - ldrb r0, [r7] - eors r0, r4 - ldr r2, [r6] - lsls r1, r0, #1 - adds r1, r1, r0 - adds r1, r1, r2 - adds r1, #0x60 - ldrb r0, [r7] - lsls r0, r0, #9 - adds r0, r0, r5 - ldrb r0, [r0] - ands r3, r0 - lsrs r3, r3, #4 - ldrb r0, [r1] - orrs r3, r0 - strb r3, [r1] - ldrb r0, [r7] - eors r4, r0 - ldr r0, [r6] - lsls r1, r4, #1 - adds r1, r1, r4 - adds r1, r1, r0 - adds r1, #0x62 - ldrb r0, [r7] - lsls r0, r0, #9 - add r0, ip - ldrb r0, [r0] - strb r0, [r1] -_0803CB0A: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0803CB10: .4byte gUnknown_2023D08 -_0803CB14: .4byte gUnknown_2024140 -_0803CB18: .4byte gUnknown_2023508 -_0803CB1C: .4byte gUnknown_2022C90 - thumb_func_end sub_0803CA3C - - thumb_func_start SwapTurnOrder -SwapTurnOrder: @ 0x0803CB20 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _0803CB4C - adds r4, r0, r2 - ldrb r5, [r4] - adds r2, r1, r2 - ldrb r3, [r2] - strb r3, [r4] - strb r5, [r2] - ldr r2, _0803CB50 - adds r0, r0, r2 - ldrb r5, [r0] - adds r1, r1, r2 - ldrb r2, [r1] - strb r2, [r0] - strb r5, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0803CB4C: .4byte gUnknown_2023D1E -_0803CB50: .4byte gUnknown_2023D22 - thumb_func_end SwapTurnOrder - - thumb_func_start GetWhoStrikesFirst -GetWhoStrikesFirst: @ 0x0803CB54 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sl, r1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - str r0, [sp] - movs r0, #0x13 - movs r1, #0 - movs r2, #0xd - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803CC1C - ldr r1, [sp, #8] - str r1, [sp] - movs r0, #0x13 - movs r1, #0 - movs r2, #0x4d - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803CC1C - ldr r1, _0803CBD4 - movs r0, #0x58 - mov r2, sb - muls r2, r0, r2 - adds r0, r2, #0 - adds r0, r0, r1 - adds r0, #0x20 - ldrb r3, [r0] - cmp r3, #0x21 - bne _0803CBC0 - ldr r0, _0803CBD8 - ldrh r1, [r0] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _0803CBD0 -_0803CBC0: - cmp r3, #0x22 - bne _0803CBDC - ldr r0, _0803CBD8 - ldrh r1, [r0] - movs r0, #0x60 - ands r0, r1 - cmp r0, #0 - beq _0803CBDC -_0803CBD0: - movs r3, #2 - b _0803CBDE - .align 2, 0 -_0803CBD4: .4byte gUnknown_2023D28 -_0803CBD8: .4byte gUnknown_2024070 -_0803CBDC: - movs r3, #1 -_0803CBDE: - movs r0, #0x58 - mov r1, sl - muls r1, r0, r1 - adds r0, r1, #0 - ldr r2, _0803CC14 - adds r0, r0, r2 - adds r0, #0x20 - ldrb r2, [r0] - cmp r2, #0x21 - bne _0803CBFE - ldr r0, _0803CC18 - ldrh r1, [r0] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _0803CC0E -_0803CBFE: - cmp r2, #0x22 - bne _0803CC1E - ldr r0, _0803CC18 - ldrh r1, [r0] - movs r0, #0x60 - ands r0, r1 - cmp r0, #0 - beq _0803CC1E -_0803CC0E: - movs r7, #2 - b _0803CC20 - .align 2, 0 -_0803CC14: .4byte gUnknown_2023D28 -_0803CC18: .4byte gUnknown_2024070 -_0803CC1C: - movs r3, #1 -_0803CC1E: - movs r7, #1 -_0803CC20: - ldr r1, _0803CC64 - movs r0, #0x58 - mov r2, sb - muls r2, r0, r2 - adds r0, r2, #0 - adds r4, r0, r1 - ldrh r0, [r4, #6] - muls r3, r0, r3 - ldr r2, _0803CC68 - movs r1, #0x1b - ldrsb r1, [r4, r1] - lsls r1, r1, #1 - adds r0, r1, r2 - ldrb r0, [r0] - muls r0, r3, r0 - adds r2, #1 - adds r1, r1, r2 - ldrb r1, [r1] - bl __divsi3 - mov r8, r0 - ldrh r0, [r4, #0x2e] - cmp r0, #0xaf - bne _0803CC70 - ldr r1, _0803CC6C - mov r3, sb - lsls r0, r3, #3 - subs r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r6, [r0, #7] - ldrb r5, [r0, #0x1a] - b _0803CC84 - .align 2, 0 -_0803CC64: .4byte gUnknown_2023D28 -_0803CC68: .4byte gUnknown_82FA6B6 -_0803CC6C: .4byte gUnknown_20240A8 -_0803CC70: - ldrh r0, [r4, #0x2e] - bl sub_080D6CF8 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldrh r0, [r4, #0x2e] - bl sub_080D6D1C - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_0803CC84: - ldr r0, _0803CD40 - ldr r0, [r0] - ldr r1, _0803CD44 - ands r0, r1 - cmp r0, #0 - bne _0803CCB8 - ldr r0, _0803CD48 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0803CCB8 - mov r0, sb - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803CCB8 - movs r0, #0x6e - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - movs r1, #0x64 - bl __udivsi3 - mov r8, r0 -_0803CCB8: - cmp r6, #0x18 - bne _0803CCC2 - mov r2, r8 - lsrs r2, r2, #1 - mov r8, r2 -_0803CCC2: - ldr r1, _0803CD4C - movs r0, #0x58 - mov r3, sb - muls r3, r0, r3 - adds r0, r3, #0 - adds r1, #0x4c - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0803CCE0 - mov r0, r8 - lsrs r0, r0, #2 - mov r8, r0 -_0803CCE0: - cmp r6, #0x1a - bne _0803CCFC - ldr r0, _0803CD50 - ldrh r4, [r0] - lsls r0, r5, #0x10 - subs r0, r0, r5 - movs r1, #0x64 - bl __divsi3 - cmp r4, r0 - bge _0803CCFC - movs r1, #1 - rsbs r1, r1, #0 - mov r8, r1 -_0803CCFC: - ldr r1, _0803CD4C - movs r0, #0x58 - mov r2, sl - muls r2, r0, r2 - adds r0, r2, #0 - adds r4, r0, r1 - ldrh r0, [r4, #6] - adds r3, r0, #0 - muls r3, r7, r3 - ldr r2, _0803CD54 - movs r1, #0x1b - ldrsb r1, [r4, r1] - lsls r1, r1, #1 - adds r0, r1, r2 - ldrb r0, [r0] - muls r0, r3, r0 - adds r2, #1 - adds r1, r1, r2 - ldrb r1, [r1] - bl __divsi3 - adds r7, r0, #0 - ldrh r0, [r4, #0x2e] - cmp r0, #0xaf - bne _0803CD5C - ldr r1, _0803CD58 - mov r3, sl - lsls r0, r3, #3 - subs r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r6, [r0, #7] - ldrb r5, [r0, #0x1a] - b _0803CD70 - .align 2, 0 -_0803CD40: .4byte gUnknown_2022C90 -_0803CD44: .4byte 0x023F0102 -_0803CD48: .4byte 0x00000869 -_0803CD4C: .4byte gUnknown_2023D28 -_0803CD50: .4byte gUnknown_2023FD4 -_0803CD54: .4byte gUnknown_82FA6B6 -_0803CD58: .4byte gUnknown_20240A8 -_0803CD5C: - ldrh r0, [r4, #0x2e] - bl sub_080D6CF8 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldrh r0, [r4, #0x2e] - bl sub_080D6D1C - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_0803CD70: - ldr r0, _0803CDE8 - ldr r0, [r0] - ldr r1, _0803CDEC - ands r0, r1 - cmp r0, #0 - bne _0803CDA0 - ldr r0, _0803CDF0 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0803CDA0 - mov r0, sl - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803CDA0 - movs r0, #0x6e - muls r0, r7, r0 - movs r1, #0x64 - bl __udivsi3 - adds r7, r0, #0 -_0803CDA0: - cmp r6, #0x18 - bne _0803CDA6 - lsrs r7, r7, #1 -_0803CDA6: - ldr r2, _0803CDF4 - movs r0, #0x58 - mov r1, sl - muls r1, r0, r1 - adds r0, r1, #0 - adds r1, r2, #0 - adds r1, #0x4c - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0803CDC2 - lsrs r7, r7, #2 -_0803CDC2: - cmp r6, #0x1a - bne _0803CDDC - ldr r0, _0803CDF8 - ldrh r4, [r0] - lsls r0, r5, #0x10 - subs r0, r0, r5 - movs r1, #0x64 - bl __divsi3 - cmp r4, r0 - bge _0803CDDC - movs r7, #1 - rsbs r7, r7, #0 -_0803CDDC: - ldr r2, [sp, #4] - cmp r2, #0 - beq _0803CDFC - movs r3, #0 - b _0803CE98 - .align 2, 0 -_0803CDE8: .4byte gUnknown_2022C90 -_0803CDEC: .4byte 0x023F0102 -_0803CDF0: .4byte 0x00000869 -_0803CDF4: .4byte gUnknown_2023D28 -_0803CDF8: .4byte gUnknown_2023FD4 -_0803CDFC: - ldr r0, _0803CE1C - mov r3, sb - adds r1, r3, r0 - ldrb r1, [r1] - adds r2, r0, #0 - cmp r1, #0 - bne _0803CE4C - ldr r0, _0803CE20 - lsls r1, r3, #4 - adds r1, r1, r0 - ldrb r0, [r1] - lsls r0, r0, #0x1d - cmp r0, #0 - bge _0803CE24 - movs r3, #0xa5 - b _0803CE4E - .align 2, 0 -_0803CE1C: .4byte gUnknown_2023EC0 -_0803CE20: .4byte gUnknown_2023FE0 -_0803CE24: - ldr r0, _0803CE44 - ldr r0, [r0] - add r0, sb - adds r0, #0x80 - ldrb r0, [r0] - lsls r0, r0, #1 - movs r1, #0x58 - mov r3, sb - muls r3, r1, r3 - adds r1, r3, #0 - adds r0, r0, r1 - ldr r1, _0803CE48 - adds r1, #0xc - adds r0, r0, r1 - ldrh r3, [r0] - b _0803CE4E - .align 2, 0 -_0803CE44: .4byte gUnknown_2024140 -_0803CE48: .4byte gUnknown_2023D28 -_0803CE4C: - movs r3, #0 -_0803CE4E: - mov r1, sl - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _0803CE98 - ldr r0, _0803CE6C - lsls r1, r1, #4 - adds r1, r1, r0 - ldrb r0, [r1] - lsls r0, r0, #0x1d - cmp r0, #0 - bge _0803CE70 - movs r2, #0xa5 - b _0803CE9A - .align 2, 0 -_0803CE6C: .4byte gUnknown_2023FE0 -_0803CE70: - ldr r0, _0803CE90 - ldr r0, [r0] - add r0, sl - adds r0, #0x80 - ldrb r0, [r0] - lsls r0, r0, #1 - movs r1, #0x58 - mov r2, sl - muls r2, r1, r2 - adds r1, r2, #0 - adds r0, r0, r1 - ldr r1, _0803CE94 - adds r1, #0xc - adds r0, r0, r1 - ldrh r2, [r0] - b _0803CE9A - .align 2, 0 -_0803CE90: .4byte gUnknown_2024140 -_0803CE94: .4byte gUnknown_2023D28 -_0803CE98: - movs r2, #0 -_0803CE9A: - ldr r4, _0803CEE4 - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #7 - ldrsb r1, [r0, r1] - lsls r3, r2, #1 - cmp r1, #0 - bne _0803CEBE - adds r0, r3, r2 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r0, [r0, #7] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _0803CEFC -_0803CEBE: - adds r0, r3, r2 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r0, [r0, #7] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r1, r0 - bne _0803CEF2 - cmp r8, r7 - bne _0803CEE8 - bl Random - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0803CEE8 - movs r3, #2 - b _0803CF18 - .align 2, 0 -_0803CEE4: .4byte gUnknown_82ED220 -_0803CEE8: - cmp r8, r7 - bhs _0803CF1A - movs r0, #1 - str r0, [sp, #8] - b _0803CF1A -_0803CEF2: - cmp r1, r0 - bge _0803CF1A - movs r1, #1 - str r1, [sp, #8] - b _0803CF1A -_0803CEFC: - cmp r8, r7 - bne _0803CF12 - bl Random - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0803CF12 - movs r2, #2 - str r2, [sp, #8] - b _0803CF1A -_0803CF12: - cmp r8, r7 - bhs _0803CF1A - movs r3, #1 -_0803CF18: - str r3, [sp, #8] -_0803CF1A: - ldr r0, [sp, #8] - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end GetWhoStrikesFirst - - thumb_func_start SetActionsAndBattlersTurnOrder -SetActionsAndBattlersTurnOrder: @ 0x0803CF2C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - movs r3, #0 - ldr r0, _0803CF80 - ldr r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803CF98 - ldr r0, _0803CF84 - strb r3, [r0] - ldr r4, _0803CF88 - mov r8, r0 - ldrb r0, [r4] - cmp r3, r0 - blo _0803CF54 - b _0803D18E -_0803CF54: - ldr r7, _0803CF8C - ldr r6, _0803CF90 - mov r2, r8 - ldr r5, _0803CF94 -_0803CF5C: - adds r1, r3, r7 - ldrb r0, [r2] - adds r0, r0, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r1, r3, r5 - ldrb r0, [r2] - strb r0, [r1] - adds r3, #1 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r4] - cmp r0, r1 - blo _0803CF5C - b _0803D18E - .align 2, 0 -_0803CF80: .4byte gUnknown_2022C90 -_0803CF84: .4byte gUnknown_2023D08 -_0803CF88: .4byte gUnknown_2023D10 -_0803CF8C: .4byte gUnknown_2023D1E -_0803CF90: .4byte gUnknown_2023EC0 -_0803CF94: .4byte gUnknown_2023D22 -_0803CF98: - movs r2, #2 - ands r1, r2 - cmp r1, #0 - beq _0803CFE8 - ldr r0, _0803CFDC - strb r3, [r0] - ldr r1, _0803CFE0 - mov r8, r0 - adds r2, r1, #0 - ldrb r2, [r2] - cmp r3, r2 - bhs _0803D004 - ldr r0, _0803CFE4 - ldrb r1, [r0] - adds r4, r0, #0 - cmp r1, #3 - beq _0803D002 -_0803CFBA: - mov r7, r8 - ldrb r0, [r7] - adds r0, #1 - strb r0, [r7] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0803CFE0 - ldrb r1, [r1] - cmp r0, r1 - bhs _0803D004 - ldrb r0, [r7] - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #3 - bne _0803CFBA - b _0803D002 - .align 2, 0 -_0803CFDC: .4byte gUnknown_2023D08 -_0803CFE0: .4byte gUnknown_2023D10 -_0803CFE4: .4byte gUnknown_2023EC0 -_0803CFE8: - ldr r1, _0803D06C - ldrb r0, [r1] - ldr r4, _0803D070 - mov r8, r4 - cmp r0, #3 - bne _0803CFF8 - strb r3, [r4] - movs r3, #5 -_0803CFF8: - ldrb r0, [r1, #2] - cmp r0, #3 - bne _0803D004 - mov r7, r8 - strb r2, [r7] -_0803D002: - movs r3, #5 -_0803D004: - cmp r3, #5 - bne _0803D08C - ldr r6, _0803D074 - ldr r1, _0803D06C - mov r2, r8 - ldrb r0, [r2] - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r6] - ldr r2, _0803D078 - mov r3, r8 - ldrb r0, [r3] - strb r0, [r2] - movs r3, #1 - movs r5, #0 - adds r4, r1, #0 - ldr r7, _0803D07C - mov sl, r7 - ldr r0, _0803D080 - mov ip, r0 - ldr r1, _0803D084 - mov sb, r1 - ldr r7, _0803D088 - ldrb r7, [r7] - cmp r5, r7 - bge _0803D05E - adds r7, r6, #0 - adds r6, r4, #0 - adds r4, r2, #0 - ldr r2, _0803D088 -_0803D040: - mov r0, r8 - ldrb r0, [r0] - cmp r5, r0 - beq _0803D056 - adds r1, r3, r7 - adds r0, r5, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, r4 - strb r5, [r0] - adds r3, #1 -_0803D056: - adds r5, #1 - ldrb r1, [r2] - cmp r5, r1 - blt _0803D040 -_0803D05E: - mov r2, ip - mov r3, sl - str r2, [r3] - mov r4, sb - ldr r0, [r4] - b _0803D198 - .align 2, 0 -_0803D06C: .4byte gUnknown_2023EC0 -_0803D070: .4byte gUnknown_2023D08 -_0803D074: .4byte gUnknown_2023D1E -_0803D078: .4byte gUnknown_2023D22 -_0803D07C: .4byte gUnknown_3005A64 -_0803D080: .4byte CheckFocusPunch_ClearVarsBeforeTurnStarts -_0803D084: .4byte gUnknown_2024140 -_0803D088: .4byte gUnknown_2023D10 -_0803D08C: - movs r0, #0 - mov r7, r8 - strb r0, [r7] - ldr r1, _0803D11C - ldrb r0, [r1] - cmp r0, #0 - beq _0803D0D2 - ldr r6, _0803D120 - mov r2, r8 - ldr r5, _0803D124 - ldr r4, _0803D128 -_0803D0A2: - ldrb r0, [r2] - adds r0, r0, r6 - ldrb r1, [r0] - subs r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0803D0C0 - adds r0, r3, r5 - strb r1, [r0] - adds r1, r3, r4 - mov r7, r8 - ldrb r0, [r7] - strb r0, [r1] - adds r3, #1 -_0803D0C0: - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0803D11C - ldrb r1, [r1] - cmp r0, r1 - blo _0803D0A2 -_0803D0D2: - movs r0, #0 - mov r2, r8 - strb r0, [r2] - ldr r4, _0803D11C - ldrb r0, [r4] - cmp r0, #0 - beq _0803D116 - ldr r6, _0803D120 - ldr r5, _0803D124 - ldr r4, _0803D128 -_0803D0E6: - ldrb r0, [r2] - adds r0, r0, r6 - ldrb r1, [r0] - subs r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _0803D104 - adds r0, r3, r5 - strb r1, [r0] - adds r1, r3, r4 - mov r7, r8 - ldrb r0, [r7] - strb r0, [r1] - adds r3, #1 -_0803D104: - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0803D11C - ldrb r1, [r1] - cmp r0, r1 - blo _0803D0E6 -_0803D116: - movs r5, #0 - b _0803D184 - .align 2, 0 -_0803D11C: .4byte gUnknown_2023D10 -_0803D120: .4byte gUnknown_2023EC0 -_0803D124: .4byte gUnknown_2023D1E -_0803D128: .4byte gUnknown_2023D22 -_0803D12C: - adds r4, r5, #1 - adds r7, r4, #0 - ldrb r1, [r1] - cmp r7, r1 - bge _0803D182 - ldr r6, _0803D1AC - lsls r2, r5, #0x18 - mov r8, r2 -_0803D13C: - ldr r0, _0803D1B0 - adds r1, r5, r0 - ldrb r3, [r1] - adds r0, r4, r0 - ldrb r1, [r0] - adds r0, r5, r6 - ldrb r2, [r0] - cmp r2, #1 - beq _0803D178 - adds r0, r4, r6 - ldrb r0, [r0] - cmp r0, #1 - beq _0803D178 - cmp r2, #2 - beq _0803D178 - cmp r0, #2 - beq _0803D178 - adds r0, r3, #0 - movs r2, #0 - bl GetWhoStrikesFirst - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0803D178 - lsls r1, r4, #0x18 - lsrs r1, r1, #0x18 - mov r3, r8 - lsrs r0, r3, #0x18 - bl SwapTurnOrder -_0803D178: - adds r4, #1 - ldr r0, _0803D1B4 - ldrb r0, [r0] - cmp r4, r0 - blt _0803D13C -_0803D182: - adds r5, r7, #0 -_0803D184: - ldr r1, _0803D1B4 - ldrb r0, [r1] - subs r0, #1 - cmp r5, r0 - blt _0803D12C -_0803D18E: - ldr r1, _0803D1B8 - ldr r0, _0803D1BC - str r0, [r1] - ldr r0, _0803D1C0 - ldr r0, [r0] -_0803D198: - adds r0, #0x48 - movs r1, #0 - strb r1, [r0] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0803D1AC: .4byte gUnknown_2023D1E -_0803D1B0: .4byte gUnknown_2023D22 -_0803D1B4: .4byte gUnknown_2023D10 -_0803D1B8: .4byte gUnknown_3005A64 -_0803D1BC: .4byte CheckFocusPunch_ClearVarsBeforeTurnStarts -_0803D1C0: .4byte gUnknown_2024140 - thumb_func_end SetActionsAndBattlersTurnOrder - - thumb_func_start TurnValuesCleanUp -TurnValuesCleanUp: @ 0x0803D1C4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldr r1, _0803D21C - movs r0, #0 - strb r0, [r1] - ldr r0, _0803D220 - ldrb r2, [r0] - adds r5, r1, #0 - cmp r2, #0 - beq _0803D2BC - ldr r7, _0803D224 - adds r6, r5, #0 - ldr r0, _0803D228 - mov ip, r0 - ldr r1, _0803D22C - mov r8, r1 - mov sl, r8 -_0803D1F2: - mov r2, sb - cmp r2, #0 - beq _0803D230 - ldrb r1, [r6] - lsls r1, r1, #4 - adds r1, r1, r7 - ldrb r2, [r1] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldrb r1, [r6] - lsls r1, r1, #4 - adds r1, r1, r7 - ldrb r2, [r1] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - b _0803D28C - .align 2, 0 -_0803D21C: .4byte gUnknown_2023D08 -_0803D220: .4byte gUnknown_2023D10 -_0803D224: .4byte gUnknown_2023FE0 -_0803D228: .4byte gUnknown_2023D78 -_0803D22C: .4byte gUnknown_2023F60 -_0803D230: - ldrb r0, [r6] - lsls r0, r0, #4 - adds r2, r0, r7 - movs r1, #0 - mov r4, sl - movs r3, #0 -_0803D23C: - adds r0, r2, r1 - strb r3, [r0] - adds r1, #1 - cmp r1, #0xf - bls _0803D23C - ldrb r1, [r5] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r4 - ldrb r0, [r1, #0x16] - cmp r0, #0 - beq _0803D25A - subs r0, #1 - strb r0, [r1, #0x16] -_0803D25A: - ldrb r1, [r5] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r4 - ldrb r0, [r1, #0x19] - cmp r0, #0 - beq _0803D28C - subs r0, #1 - strb r0, [r1, #0x19] - ldrb r2, [r5] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r0, [r0, #0x19] - cmp r0, #0 - bne _0803D28C - movs r0, #0x58 - muls r2, r0, r2 - add r2, ip - ldr r0, [r2] - ldr r1, _0803D2D4 - ands r0, r1 - str r0, [r2] -_0803D28C: - ldrb r2, [r5] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - add r0, r8 - ldrb r0, [r0, #0xa] - cmp r0, #0 - bne _0803D2AA - movs r0, #0x58 - muls r2, r0, r2 - add r2, ip - ldr r0, [r2] - ldr r1, _0803D2D8 - ands r0, r1 - str r0, [r2] -_0803D2AA: - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0803D2DC - ldrb r1, [r1] - cmp r0, r1 - blo _0803D1F2 -_0803D2BC: - movs r0, #0 - ldr r2, _0803D2E0 - strb r0, [r2, #8] - strb r0, [r2, #0x14] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0803D2D4: .4byte 0xFFBFFFFF -_0803D2D8: .4byte 0xFEFFFFFF -_0803D2DC: .4byte gUnknown_2023D10 -_0803D2E0: .4byte gUnknown_2023F38 - thumb_func_end TurnValuesCleanUp - - thumb_func_start SpecialStatusesClear -SpecialStatusesClear: @ 0x0803D2E4 - push {r4, r5, r6, lr} - ldr r2, _0803D328 - movs r0, #0 - strb r0, [r2] - ldr r0, _0803D32C - ldrb r1, [r0] - adds r6, r0, #0 - cmp r1, #0 - beq _0803D322 - adds r3, r2, #0 - movs r4, #0 - ldr r5, _0803D330 -_0803D2FC: - ldrb r1, [r3] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, r0, r5 - movs r1, #0 -_0803D308: - adds r0, r2, r1 - strb r4, [r0] - adds r1, #1 - cmp r1, #0x13 - bls _0803D308 - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r6] - cmp r0, r1 - blo _0803D2FC -_0803D322: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0803D328: .4byte gUnknown_2023D08 -_0803D32C: .4byte gUnknown_2023D10 -_0803D330: .4byte gUnknown_2024020 - thumb_func_end SpecialStatusesClear - - thumb_func_start CheckFocusPunch_ClearVarsBeforeTurnStarts -CheckFocusPunch_ClearVarsBeforeTurnStarts: @ 0x0803D334 - push {r4, r5, r6, r7, lr} - ldr r0, _0803D3BC - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - bne _0803D3F2 - ldr r2, _0803D3C0 - ldr r0, [r2] - adds r0, #0x48 - ldr r1, _0803D3C4 - ldrb r0, [r0] - mov ip, r2 - adds r6, r1, #0 - ldrb r1, [r6] - cmp r0, r1 - bhs _0803D3F2 - ldr r5, _0803D3C8 - ldr r4, _0803D3CC - movs r7, #0x84 - lsls r7, r7, #1 -_0803D360: - ldr r1, [r2] - adds r1, #0x48 - ldrb r0, [r1] - strb r0, [r4] - strb r0, [r5] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r1, _0803D3D0 - ldrb r3, [r5] - lsls r0, r3, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, r7 - bne _0803D3E4 - ldr r1, _0803D3D4 - movs r0, #0x58 - muls r0, r3, r0 - adds r1, #0x4c - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _0803D3E4 - ldr r2, _0803D3D8 - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #0x18] - lsls r0, r0, #0x1f - cmp r0, #0 - bne _0803D3E4 - ldr r0, _0803D3DC - lsls r1, r3, #4 - adds r1, r1, r0 - ldrb r0, [r1] - lsls r0, r0, #0x1d - cmp r0, #0 - blt _0803D3E4 - ldr r0, _0803D3E0 - bl BattleScriptExecute - b _0803D42C - .align 2, 0 -_0803D3BC: .4byte gUnknown_2023F24 -_0803D3C0: .4byte gUnknown_2024140 -_0803D3C4: .4byte gUnknown_2023D10 -_0803D3C8: .4byte gUnknown_2023D08 -_0803D3CC: .4byte gUnknown_2023EAF -_0803D3D0: .4byte gUnknown_2023F18 -_0803D3D4: .4byte gUnknown_2023D28 -_0803D3D8: .4byte gUnknown_2023F60 -_0803D3DC: .4byte gUnknown_2023FE0 -_0803D3E0: .4byte gUnknown_8289787 -_0803D3E4: - mov r2, ip - ldr r0, [r2] - adds r0, #0x48 - ldrb r0, [r0] - ldrb r1, [r6] - cmp r0, r1 - blo _0803D360 -_0803D3F2: - bl TryClearRageStatuses - ldr r1, _0803D434 - movs r0, #0 - strb r0, [r1] - ldr r1, _0803D438 - ldr r0, _0803D43C - movs r3, #0 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _0803D440 - movs r2, #0 - strh r3, [r0] - ldr r0, _0803D444 - ldr r0, [r0] - strb r2, [r0, #0x13] - ldr r1, _0803D448 - ldr r0, _0803D44C - str r0, [r1] - ldr r0, _0803D450 - strb r2, [r0, #3] - strb r2, [r0, #4] - ldr r0, _0803D454 - strb r2, [r0, #0x16] - ldr r0, _0803D458 - ldr r0, [r0] - ldr r0, [r0, #8] - adds r0, #0x20 - strb r2, [r0] -_0803D42C: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0803D434: .4byte gUnknown_2023D26 -_0803D438: .4byte gUnknown_2023D27 -_0803D43C: .4byte gUnknown_2023D1E -_0803D440: .4byte gUnknown_20240A4 -_0803D444: .4byte gUnknown_2024140 -_0803D448: .4byte gUnknown_3005A64 -_0803D44C: .4byte RunTurnActionsFunctions -_0803D450: .4byte gUnknown_2023FD6 -_0803D454: .4byte gUnknown_2024118 -_0803D458: .4byte gUnknown_202414C - thumb_func_end CheckFocusPunch_ClearVarsBeforeTurnStarts - - thumb_func_start RunTurnActionsFunctions -RunTurnActionsFunctions: @ 0x0803D45C - push {r4, r5, r6, lr} - ldr r6, _0803D4B0 - ldrb r0, [r6] - ldr r2, _0803D4B4 - cmp r0, #0 - beq _0803D46C - movs r0, #0xc - strb r0, [r2] -_0803D46C: - ldr r5, _0803D4B8 - ldr r0, [r5] - adds r0, #0x4b - ldr r4, _0803D4BC - ldrb r1, [r4] - strb r1, [r0] - ldr r1, _0803D4C0 - ldrb r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _0803D4C4 - thumb_func_end RunTurnActionsFunctions - - thumb_func_start sub_0803D488 -sub_0803D488: @ 0x0803D488 - ldrb r1, [r4] - ldrb r0, [r0] - cmp r1, r0 - blo _0803D4D8 - ldr r2, _0803D4C8 - ldr r0, [r2] - ldr r1, _0803D4CC - ands r0, r1 - str r0, [r2] - ldr r3, _0803D4D0 - ldr r2, _0803D4D4 - ldrb r1, [r6] - movs r0, #0x7f - ands r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r3] - b _0803D4F0 - .align 2, 0 -_0803D4B0: .4byte gUnknown_2023FDE -_0803D4B4: .4byte gUnknown_2023D27 -_0803D4B8: .4byte gUnknown_2024140 -_0803D4BC: .4byte gUnknown_2023D26 -_0803D4C0: .4byte gUnknown_82EC600 -_0803D4C4: .4byte gUnknown_2023D10 -_0803D4C8: .4byte gUnknown_2023F24 -_0803D4CC: .4byte 0xFFEFFFFF -_0803D4D0: .4byte gUnknown_3005A64 -_0803D4D4: .4byte gUnknown_82EC638 -_0803D4D8: - ldr r0, [r5] - adds r0, #0x4b - ldrb r0, [r0] - cmp r0, r1 - beq _0803D4F0 - ldr r2, _0803D4F8 - ldr r0, [r2] - ldr r1, _0803D4FC - ands r0, r1 - ldr r1, _0803D500 - ands r0, r1 - str r0, [r2] -_0803D4F0: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0803D4F8: .4byte gUnknown_2023F24 -_0803D4FC: .4byte 0xFFFFFDFF -_0803D500: .4byte 0xFFF7FFFF - thumb_func_end sub_0803D488 - - thumb_func_start HandleEndTurn_BattleWon -HandleEndTurn_BattleWon: @ 0x0803D504 - push {r4, lr} - ldr r1, _0803D540 - movs r0, #0 - strb r0, [r1] - ldr r1, _0803D544 - ldr r2, [r1] - ldr r0, _0803D548 - ands r0, r2 - cmp r0, #0 - beq _0803D564 - ldr r1, _0803D54C - ldr r4, _0803D550 - ldrb r0, [r4] - strh r0, [r1] - ldr r1, _0803D554 - ldrb r0, [r4] - strb r0, [r1] - movs r0, #0 - bl GetBattlerAtPosition - ldr r1, _0803D558 - strb r0, [r1] - ldr r1, _0803D55C - ldr r0, _0803D560 - str r0, [r1] - ldrb r1, [r4] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4] - b _0803D6E4 - .align 2, 0 -_0803D540: .4byte gUnknown_2023D27 -_0803D544: .4byte gUnknown_2022C90 -_0803D548: .4byte gUnknown_2000002 -_0803D54C: .4byte gUnknown_2037290 -_0803D550: .4byte gUnknown_2023FDE -_0803D554: .4byte gUnknown_2022C0C -_0803D558: .4byte gUnknown_2023EAF -_0803D55C: .4byte gUnknown_2023EB8 -_0803D560: .4byte gUnknown_8288FBD -_0803D564: - movs r0, #8 - ands r0, r2 - cmp r0, #0 - beq _0803D5A0 - ldr r0, _0803D58C - ands r2, r0 - cmp r2, #0 - beq _0803D5A0 - bl BattleStopLowHpSound - ldr r1, _0803D590 - ldr r0, _0803D594 - str r0, [r1] - ldr r0, _0803D598 - ldrh r1, [r0] - ldr r0, _0803D59C - cmp r1, r0 - bne _0803D58A - b _0803D6CA -_0803D58A: - b _0803D6D4 - .align 2, 0 -_0803D58C: .4byte 0x043F0900 -_0803D590: .4byte gUnknown_2023EB8 -_0803D594: .4byte gUnknown_828900F -_0803D598: .4byte gUnknown_203886A -_0803D59C: .4byte 0x000003FE -_0803D5A0: - ldr r0, [r1] - movs r1, #0xa - ands r0, r1 - cmp r0, #8 - beq _0803D5AC - b _0803D6DE -_0803D5AC: - bl BattleStopLowHpSound - ldr r1, _0803D5D4 - ldr r0, _0803D5D8 - str r0, [r1] - ldr r1, _0803D5DC - ldr r0, _0803D5E0 - ldrh r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r1 - ldrb r0, [r0, #1] - subs r0, #3 - cmp r0, #0x32 - bls _0803D5CA - b _0803D6D4 -_0803D5CA: - lsls r0, r0, #2 - ldr r1, _0803D5E4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803D5D4: .4byte gUnknown_2023EB8 -_0803D5D8: .4byte gUnknown_8288EB5 -_0803D5DC: .4byte gUnknown_82E383C -_0803D5E0: .4byte gUnknown_203886A -_0803D5E4: .4byte _0803D5E8 -_0803D5E8: @ jump table - .4byte _0803D6C0 @ case 0 - .4byte _0803D6D4 @ case 1 - .4byte _0803D6D4 @ case 2 - .4byte _0803D6D4 @ case 3 - .4byte _0803D6D4 @ case 4 - .4byte _0803D6D4 @ case 5 - .4byte _0803D6C0 @ case 6 - .4byte _0803D6D4 @ case 7 - .4byte _0803D6C0 @ case 8 - .4byte _0803D6D4 @ case 9 - .4byte _0803D6C0 @ case 10 - .4byte _0803D6D4 @ case 11 - .4byte _0803D6D4 @ case 12 - .4byte _0803D6D4 @ case 13 - .4byte _0803D6D4 @ case 14 - .4byte _0803D6D4 @ case 15 - .4byte _0803D6D4 @ case 16 - .4byte _0803D6D4 @ case 17 - .4byte _0803D6D4 @ case 18 - .4byte _0803D6D4 @ case 19 - .4byte _0803D6D4 @ case 20 - .4byte _0803D6D4 @ case 21 - .4byte _0803D6D4 @ case 22 - .4byte _0803D6D4 @ case 23 - .4byte _0803D6D4 @ case 24 - .4byte _0803D6D4 @ case 25 - .4byte _0803D6D4 @ case 26 - .4byte _0803D6D4 @ case 27 - .4byte _0803D6B4 @ case 28 - .4byte _0803D6CA @ case 29 - .4byte _0803D6D4 @ case 30 - .4byte _0803D6D4 @ case 31 - .4byte _0803D6D4 @ case 32 - .4byte _0803D6D4 @ case 33 - .4byte _0803D6D4 @ case 34 - .4byte _0803D6B4 @ case 35 - .4byte _0803D6D4 @ case 36 - .4byte _0803D6D4 @ case 37 - .4byte _0803D6D4 @ case 38 - .4byte _0803D6D4 @ case 39 - .4byte _0803D6D4 @ case 40 - .4byte _0803D6D4 @ case 41 - .4byte _0803D6D4 @ case 42 - .4byte _0803D6D4 @ case 43 - .4byte _0803D6D4 @ case 44 - .4byte _0803D6D4 @ case 45 - .4byte _0803D6C0 @ case 46 - .4byte _0803D6D4 @ case 47 - .4byte _0803D6D4 @ case 48 - .4byte _0803D6D4 @ case 49 - .4byte _0803D6C0 @ case 50 -_0803D6B4: - ldr r0, _0803D6BC - bl PlayBGM - b _0803D6E4 - .align 2, 0 -_0803D6BC: .4byte 0x00000163 -_0803D6C0: - movs r0, #0xd4 - lsls r0, r0, #1 - bl PlayBGM - b _0803D6E4 -_0803D6CA: - movs r0, #0xb1 - lsls r0, r0, #1 - bl PlayBGM - b _0803D6E4 -_0803D6D4: - movs r0, #0xce - lsls r0, r0, #1 - bl PlayBGM - b _0803D6E4 -_0803D6DE: - ldr r1, _0803D6F0 - ldr r0, _0803D6F4 - str r0, [r1] -_0803D6E4: - ldr r1, _0803D6F8 - ldr r0, _0803D6FC - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0803D6F0: .4byte gUnknown_2023EB8 -_0803D6F4: .4byte gUnknown_8288EF2 -_0803D6F8: .4byte gUnknown_3005A64 -_0803D6FC: .4byte HandleEndTurn_FinishBattle - thumb_func_end HandleEndTurn_BattleWon - - thumb_func_start HandleEndTurn_BattleLost -HandleEndTurn_BattleLost: @ 0x0803D700 - push {r4, lr} - ldr r1, _0803D748 - movs r0, #0 - strb r0, [r1] - ldr r0, _0803D74C - ldr r1, [r0] - ldr r0, _0803D750 - ands r0, r1 - cmp r0, #0 - beq _0803D7BC - ldr r0, _0803D754 - ands r1, r0 - cmp r1, #0 - beq _0803D784 - ldr r3, _0803D758 - ldrb r2, [r3] - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - beq _0803D76C - ldr r1, _0803D75C - ldr r0, _0803D760 - str r0, [r1] - movs r0, #0x7f - ands r0, r2 - strb r0, [r3] - ldr r0, _0803D764 - ldr r1, [r0] - ldr r0, _0803D768 - adds r1, r1, r0 - ldrb r0, [r1] - movs r2, #8 - orrs r0, r2 - strb r0, [r1] - b _0803D7C2 - .align 2, 0 -_0803D748: .4byte gUnknown_2023D27 -_0803D74C: .4byte gUnknown_2022C90 -_0803D750: .4byte gUnknown_2000002 -_0803D754: .4byte 0x003F0100 -_0803D758: .4byte gUnknown_2023FDE -_0803D75C: .4byte gUnknown_2023EB8 -_0803D760: .4byte gUnknown_8289F50 -_0803D764: .4byte gUnknown_3005AF0 -_0803D768: .4byte 0x00000CA9 -_0803D76C: - ldr r1, _0803D77C - ldr r0, _0803D780 - str r0, [r1] - movs r0, #0x7f - ands r0, r2 - strb r0, [r3] - b _0803D7C2 - .align 2, 0 -_0803D77C: .4byte gUnknown_2023EB8 -_0803D780: .4byte gUnknown_8288F93 -_0803D784: - ldr r1, _0803D7A8 - ldr r4, _0803D7AC - ldrb r0, [r4] - strb r0, [r1] - movs r0, #0 - bl GetBattlerAtPosition - ldr r1, _0803D7B0 - strb r0, [r1] - ldr r1, _0803D7B4 - ldr r0, _0803D7B8 - str r0, [r1] - ldrb r1, [r4] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4] - b _0803D7C2 - .align 2, 0 -_0803D7A8: .4byte gUnknown_2022C0C -_0803D7AC: .4byte gUnknown_2023FDE -_0803D7B0: .4byte gUnknown_2023EAF -_0803D7B4: .4byte gUnknown_2023EB8 -_0803D7B8: .4byte gUnknown_8288FBD -_0803D7BC: - ldr r1, _0803D7D0 - ldr r0, _0803D7D4 - str r0, [r1] -_0803D7C2: - ldr r1, _0803D7D8 - ldr r0, _0803D7DC - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0803D7D0: .4byte gUnknown_2023EB8 -_0803D7D4: .4byte gUnknown_8288EF5 -_0803D7D8: .4byte gUnknown_3005A64 -_0803D7DC: .4byte HandleEndTurn_FinishBattle - thumb_func_end HandleEndTurn_BattleLost - - thumb_func_start HandleEndTurn_RanFromBattle -HandleEndTurn_RanFromBattle: @ 0x0803D7E0 - push {lr} - ldr r1, _0803D81C - movs r0, #0 - strb r0, [r1] - ldr r1, _0803D820 - ldr r2, [r1] - ldr r0, _0803D824 - ands r0, r2 - cmp r0, #0 - beq _0803D83C - movs r0, #8 - ands r2, r0 - cmp r2, #0 - beq _0803D83C - ldr r1, _0803D828 - ldr r0, _0803D82C - str r0, [r1] - ldr r1, _0803D830 - movs r0, #9 - strb r0, [r1] - ldr r0, _0803D834 - ldr r1, [r0] - ldr r0, _0803D838 - adds r1, r1, r0 - ldrb r0, [r1] - movs r2, #8 - orrs r0, r2 - strb r0, [r1] - b _0803D8AA - .align 2, 0 -_0803D81C: .4byte gUnknown_2023D27 -_0803D820: .4byte gUnknown_2022C90 -_0803D824: .4byte 0x003F0100 -_0803D828: .4byte gUnknown_2023EB8 -_0803D82C: .4byte gUnknown_8289F49 -_0803D830: .4byte gUnknown_2023FDE -_0803D834: .4byte gUnknown_3005AF0 -_0803D838: .4byte 0x00000CA9 -_0803D83C: - ldr r0, [r1] - movs r1, #0x80 - lsls r1, r1, #0x13 - ands r0, r1 - cmp r0, #0 - beq _0803D864 - ldr r1, _0803D858 - ldr r0, _0803D85C - str r0, [r1] - ldr r1, _0803D860 - movs r0, #9 - strb r0, [r1] - b _0803D8AA - .align 2, 0 -_0803D858: .4byte gUnknown_2023EB8 -_0803D85C: .4byte gUnknown_8289F49 -_0803D860: .4byte gUnknown_2023FDE -_0803D864: - ldr r1, _0803D884 - ldr r0, _0803D888 - ldrb r0, [r0] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrb r0, [r0, #1] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1e - cmp r0, #1 - beq _0803D894 - cmp r0, #2 - beq _0803D8A4 - ldr r1, _0803D88C - ldr r0, _0803D890 - b _0803D8A8 - .align 2, 0 -_0803D884: .4byte gUnknown_2023FE0 -_0803D888: .4byte gUnknown_2023EAF -_0803D88C: .4byte gUnknown_2023EB8 -_0803D890: .4byte gUnknown_8289078 -_0803D894: - ldr r1, _0803D89C - ldr r0, _0803D8A0 - b _0803D8A8 - .align 2, 0 -_0803D89C: .4byte gUnknown_2023EB8 -_0803D8A0: .4byte gUnknown_8289063 -_0803D8A4: - ldr r1, _0803D8B4 - ldr r0, _0803D8B8 -_0803D8A8: - str r0, [r1] -_0803D8AA: - ldr r1, _0803D8BC - ldr r0, _0803D8C0 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0803D8B4: .4byte gUnknown_2023EB8 -_0803D8B8: .4byte gUnknown_8289071 -_0803D8BC: .4byte gUnknown_3005A64 -_0803D8C0: .4byte HandleEndTurn_FinishBattle - thumb_func_end HandleEndTurn_RanFromBattle - - thumb_func_start HandleEndTurn_MonFled -HandleEndTurn_MonFled: @ 0x0803D8C4 - ldr r1, _0803D8F8 - movs r0, #0 - strb r0, [r1] - ldr r1, _0803D8FC - movs r0, #0xfd - strb r0, [r1] - movs r0, #7 - strb r0, [r1, #1] - ldr r2, _0803D900 - ldrb r0, [r2] - strb r0, [r1, #2] - ldr r3, _0803D904 - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r0, [r0] - strb r0, [r1, #3] - movs r0, #0xff - strb r0, [r1, #4] - ldr r1, _0803D908 - ldr r0, _0803D90C - str r0, [r1] - ldr r1, _0803D910 - ldr r0, _0803D914 - str r0, [r1] - bx lr - .align 2, 0 -_0803D8F8: .4byte gUnknown_2023D27 -_0803D8FC: .4byte gUnknown_2022C0C -_0803D900: .4byte gUnknown_2023EAF -_0803D904: .4byte gUnknown_2023D12 -_0803D908: .4byte gUnknown_2023EB8 -_0803D90C: .4byte gUnknown_828907F -_0803D910: .4byte gUnknown_3005A64 -_0803D914: .4byte HandleEndTurn_FinishBattle - thumb_func_end HandleEndTurn_MonFled - - thumb_func_start HandleEndTurn_FinishBattle -HandleEndTurn_FinishBattle: @ 0x0803D918 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _0803D994 - ldrb r0, [r0] - subs r0, #0xb - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _0803D92E - b _0803DA50 -_0803D92E: - ldr r0, _0803D998 - ldr r1, [r0] - ldr r0, _0803D99C - ands r1, r0 - cmp r1, #0 - bne _0803D9F6 - ldr r2, _0803D9A0 - strb r1, [r2] - ldr r0, _0803D9A4 - ldrb r0, [r0] - cmp r1, r0 - bhs _0803D9F2 - adds r5, r2, #0 - ldr r0, _0803D9A8 - mov r8, r0 - movs r7, #0x64 - ldr r6, _0803D9AC -_0803D950: - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803D9E0 - ldr r4, _0803D9B0 - ldrh r0, [r4, #6] - cmp r0, #0 - bne _0803D9B4 - ldrb r0, [r5] - lsls r0, r0, #1 - add r0, r8 - ldrh r0, [r0] - muls r0, r7, r0 - adds r0, r0, r6 - movs r1, #0xb - movs r2, #0 - bl GetMonData - strh r0, [r4, #6] - ldrb r0, [r5] - lsls r0, r0, #1 - add r0, r8 - ldrh r0, [r0] - muls r0, r7, r0 - adds r0, r0, r6 - movs r1, #2 - adds r2, r4, #0 - adds r2, #8 - bl GetMonData - b _0803D9E0 - .align 2, 0 -_0803D994: .4byte gUnknown_2023D27 -_0803D998: .4byte gUnknown_2022C90 -_0803D99C: .4byte 0x023F0B92 -_0803D9A0: .4byte gUnknown_2023D08 -_0803D9A4: .4byte gUnknown_2023D10 -_0803D9A8: .4byte gUnknown_2023D12 -_0803D9AC: .4byte gUnknown_2024190 -_0803D9B0: .4byte gUnknown_3005A70 -_0803D9B4: - ldrb r0, [r5] - lsls r0, r0, #1 - add r0, r8 - ldrh r0, [r0] - muls r0, r7, r0 - adds r0, r0, r6 - movs r1, #0xb - movs r2, #0 - bl GetMonData - strh r0, [r4, #0x26] - ldrb r0, [r5] - lsls r0, r0, #1 - add r0, r8 - ldrh r0, [r0] - muls r0, r7, r0 - adds r0, r0, r6 - movs r1, #2 - adds r2, r4, #0 - adds r2, #0x14 - bl GetMonData -_0803D9E0: - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - ldr r1, _0803DA30 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1] - cmp r0, r1 - blo _0803D950 -_0803D9F2: - bl PutPokemonTodayCaughtOnAir -_0803D9F6: - ldr r0, _0803DA34 - ldr r0, [r0] - ldr r1, _0803DA38 - ands r0, r1 - cmp r0, #0 - bne _0803DA12 - ldr r0, _0803DA3C - ldrb r1, [r0, #5] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0803DA12 - bl sub_080EECA4 -_0803DA12: - bl sub_0818619C - movs r0, #3 - bl BeginFastPaletteFade - movs r0, #5 - bl FadeOutMapMusic - ldr r1, _0803DA40 - ldr r0, _0803DA44 - str r0, [r1] - ldr r1, _0803DA48 - ldr r0, _0803DA4C - str r0, [r1] - b _0803DA6A - .align 2, 0 -_0803DA30: .4byte gUnknown_2023D10 -_0803DA34: .4byte gUnknown_2022C90 -_0803DA38: .4byte 0x023F0B9A -_0803DA3C: .4byte gUnknown_3005A70 -_0803DA40: .4byte gUnknown_3005A64 -_0803DA44: .4byte FreeResetData_ReturnToOvOrDoEvolutions -_0803DA48: .4byte gUnknown_3005F28 -_0803DA4C: .4byte BattleMainCB2 -_0803DA50: - ldr r0, _0803DA74 - ldr r0, [r0] - cmp r0, #0 - bne _0803DA6A - ldr r1, _0803DA78 - ldr r0, _0803DA7C - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 -_0803DA6A: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0803DA74: .4byte gUnknown_2023D0C -_0803DA78: .4byte gUnknown_82EC694 -_0803DA7C: .4byte gUnknown_2023EB8 - thumb_func_end HandleEndTurn_FinishBattle - - thumb_func_start FreeResetData_ReturnToOvOrDoEvolutions -FreeResetData_ReturnToOvOrDoEvolutions: @ 0x0803DA80 - push {lr} - ldr r0, _0803DAAC - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0803DAC6 - bl ResetSpriteData - ldr r0, _0803DAB0 - ldrb r0, [r0] - cmp r0, #0 - beq _0803DAA2 - ldr r0, _0803DAB4 - ldrb r0, [r0] - cmp r0, #1 - beq _0803DAC0 -_0803DAA2: - ldr r1, _0803DAB8 - ldr r0, _0803DABC - str r0, [r1] - b _0803DAE2 - .align 2, 0 -_0803DAAC: .4byte gUnknown_2037C74 -_0803DAB0: .4byte gUnknown_3005AB4 -_0803DAB4: .4byte gUnknown_2023FDE -_0803DAB8: .4byte gUnknown_3005A64 -_0803DABC: .4byte ReturnFromBattleToOverworld -_0803DAC0: - ldr r1, _0803DAE8 - ldr r0, _0803DAEC - str r0, [r1] -_0803DAC6: - bl FreeAllWindowBuffers - ldr r0, _0803DAF0 - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - bne _0803DAE2 - bl FreeMonSpritesGfx - bl FreeBattleResources - bl FreeBattleSpritesData -_0803DAE2: - pop {r0} - bx r0 - .align 2, 0 -_0803DAE8: .4byte gUnknown_3005A64 -_0803DAEC: .4byte TryEvolvePokemon -_0803DAF0: .4byte gUnknown_2022C90 - thumb_func_end FreeResetData_ReturnToOvOrDoEvolutions - - thumb_func_start TryEvolvePokemon -TryEvolvePokemon: @ 0x0803DAF4 - push {r4, r5, r6, lr} - ldr r0, _0803DB4C - ldrb r1, [r0] - adds r3, r0, #0 - cmp r1, #0 - beq _0803DB6E -_0803DB00: - movs r6, #0 -_0803DB02: - ldrb r2, [r3] - ldr r0, _0803DB50 - lsls r1, r6, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0803DB60 - bics r2, r1 - strb r2, [r3] - movs r0, #0x64 - adds r1, r6, #0 - muls r1, r0, r1 - ldr r0, _0803DB54 - adds r5, r1, r0 - adds r0, r5, #0 - movs r1, #0 - bl GetEvolutionTargetSpecies - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0 - beq _0803DB60 - bl FreeAllWindowBuffers - ldr r0, _0803DB58 - ldr r1, _0803DB5C - str r1, [r0] - lsls r3, r6, #0x18 - lsrs r3, r3, #0x18 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #1 - bl EvolutionScene - b _0803DB74 - .align 2, 0 -_0803DB4C: .4byte gUnknown_3005AB4 -_0803DB50: .4byte gUnknown_82FACB4 -_0803DB54: .4byte gUnknown_2024190 -_0803DB58: .4byte gUnknown_3005A64 -_0803DB5C: .4byte WaitForEvoSceneToFinish -_0803DB60: - adds r6, #1 - ldr r3, _0803DB7C - cmp r6, #5 - ble _0803DB02 - ldrb r0, [r3] - cmp r0, #0 - bne _0803DB00 -_0803DB6E: - ldr r1, _0803DB80 - ldr r0, _0803DB84 - str r0, [r1] -_0803DB74: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0803DB7C: .4byte gUnknown_3005AB4 -_0803DB80: .4byte gUnknown_3005A64 -_0803DB84: .4byte ReturnFromBattleToOverworld - thumb_func_end TryEvolvePokemon - - thumb_func_start WaitForEvoSceneToFinish -WaitForEvoSceneToFinish: @ 0x0803DB88 - push {lr} - ldr r0, _0803DBA0 - ldr r1, [r0, #4] - ldr r0, _0803DBA4 - cmp r1, r0 - bne _0803DB9A - ldr r1, _0803DBA8 - ldr r0, _0803DBAC - str r0, [r1] -_0803DB9A: - pop {r0} - bx r0 - .align 2, 0 -_0803DBA0: .4byte gUnknown_3002360 -_0803DBA4: .4byte BattleMainCB2 -_0803DBA8: .4byte gUnknown_3005A64 -_0803DBAC: .4byte TryEvolvePokemon - thumb_func_end WaitForEvoSceneToFinish - - thumb_func_start ReturnFromBattleToOverworld -ReturnFromBattleToOverworld: @ 0x0803DBB0 - push {r4, r5, r6, lr} - ldr r6, _0803DC34 - ldr r0, [r6] - movs r5, #2 - ands r0, r5 - cmp r0, #0 - bne _0803DBCC - ldr r4, _0803DC38 - adds r0, r4, #0 - bl RandomlyGivePartyPokerus - adds r0, r4, #0 - bl PartySpreadPokerus -_0803DBCC: - ldr r4, [r6] - adds r0, r4, #0 - ands r0, r5 - cmp r0, #0 - beq _0803DBDE - ldr r0, _0803DC3C - ldrb r0, [r0] - cmp r0, #0 - bne _0803DC2C -_0803DBDE: - ldr r1, _0803DC40 - ldr r5, _0803DC44 - ldrb r0, [r5] - strh r0, [r1] - ldr r3, _0803DC48 - ldr r0, _0803DC4C - adds r2, r3, r0 - ldrb r1, [r2] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldr r0, _0803DC50 - ldr r0, [r0] - str r0, [r3] - movs r0, #0x80 - lsls r0, r0, #3 - ands r4, r0 - cmp r4, #0 - beq _0803DC1E - ldr r0, _0803DC54 - bl UpdateRoamerHPStatus - ldrb r1, [r5] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0803DC1A - cmp r1, #7 - bne _0803DC1E -_0803DC1A: - bl SetRoamerInactive -_0803DC1E: - movs r0, #0x5a - bl m4aSongNumStop - ldr r0, _0803DC48 - ldr r0, [r0, #8] - bl SetMainCallback2 -_0803DC2C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0803DC34: .4byte gUnknown_2022C90 -_0803DC38: .4byte gUnknown_2024190 -_0803DC3C: .4byte gUnknown_30031C4 -_0803DC40: .4byte gUnknown_2037290 -_0803DC44: .4byte gUnknown_2023FDE -_0803DC48: .4byte gUnknown_3002360 -_0803DC4C: .4byte 0x00000439 -_0803DC50: .4byte gUnknown_3005A60 -_0803DC54: .4byte gUnknown_20243E8 - thumb_func_end ReturnFromBattleToOverworld - - thumb_func_start RunBattleScriptCommands_PopCallbacksStack -RunBattleScriptCommands_PopCallbacksStack: @ 0x0803DC58 - push {lr} - ldr r0, _0803DC94 - ldrb r0, [r0] - subs r0, #0xb - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0803DCA0 - ldr r3, _0803DC98 - ldr r0, [r3] - ldr r0, [r0, #0xc] - adds r1, r0, #0 - adds r1, #0x20 - ldrb r0, [r1] - cmp r0, #0 - beq _0803DC7C - subs r0, #1 - strb r0, [r1] -_0803DC7C: - ldr r2, _0803DC9C - ldr r0, [r3] - ldr r1, [r0, #0xc] - adds r0, r1, #0 - adds r0, #0x20 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r2] - b _0803DCBA - .align 2, 0 -_0803DC94: .4byte gUnknown_2023D27 -_0803DC98: .4byte gUnknown_202414C -_0803DC9C: .4byte gUnknown_3005A64 -_0803DCA0: - ldr r0, _0803DCC0 - ldr r0, [r0] - cmp r0, #0 - bne _0803DCBA - ldr r1, _0803DCC4 - ldr r0, _0803DCC8 - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 -_0803DCBA: - pop {r0} - bx r0 - .align 2, 0 -_0803DCC0: .4byte gUnknown_2023D0C -_0803DCC4: .4byte gUnknown_82EC694 -_0803DCC8: .4byte gUnknown_2023EB8 - thumb_func_end RunBattleScriptCommands_PopCallbacksStack - - thumb_func_start sub_0803DCCC -sub_0803DCCC: @ 0x0803DCCC - push {lr} - ldr r0, _0803DCEC - ldr r0, [r0] - cmp r0, #0 - bne _0803DCE8 - ldr r1, _0803DCF0 - ldr r0, _0803DCF4 - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 -_0803DCE8: - pop {r0} - bx r0 - .align 2, 0 -_0803DCEC: .4byte gUnknown_2023D0C -_0803DCF0: .4byte gUnknown_82EC694 -_0803DCF4: .4byte gUnknown_2023EB8 - thumb_func_end sub_0803DCCC - - thumb_func_start HandleAction_UseMove -HandleAction_UseMove: @ 0x0803DCF8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - movs r0, #4 - str r0, [sp] - ldr r6, _0803DD38 - ldr r1, _0803DD3C - ldr r0, _0803DD40 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r6] - ldr r1, _0803DD44 - ldr r3, [r1] - adds r0, r3, #0 - adds r0, #0x91 - ldrb r2, [r0] - ldr r1, _0803DD48 - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ands r2, r0 - cmp r2, #0 - beq _0803DD50 - ldr r1, _0803DD4C - movs r0, #0xc - b _0803E47C - .align 2, 0 -_0803DD38: .4byte gUnknown_2023EAF -_0803DD3C: .4byte gUnknown_2023D22 -_0803DD40: .4byte gUnknown_2023D26 -_0803DD44: .4byte gUnknown_2024140 -_0803DD48: .4byte gUnknown_82FACB4 -_0803DD4C: .4byte gUnknown_2023D27 -_0803DD50: - ldr r1, _0803DDC8 - movs r0, #1 - strb r0, [r1] - ldr r1, _0803DDCC - movs r0, #1 - strb r0, [r1, #0xe] - ldr r5, _0803DDD0 - adds r0, r3, r5 - strb r2, [r0] - ldr r0, _0803DDD4 - strb r2, [r0] - ldr r0, _0803DDD8 - strb r2, [r0] - ldr r0, _0803DDDC - strb r2, [r0, #6] - ldr r2, _0803DDE0 - ldr r0, _0803DDE4 - mov sb, r0 - ldrb r0, [r6] - ldr r3, _0803DDE8 - ldr r1, [r3] - adds r0, r0, r1 - adds r0, #0x80 - ldrb r0, [r0] - mov r5, sb - strb r0, [r5] - strb r0, [r2] - ldr r1, _0803DDEC - ldrb r4, [r6] - lsls r0, r4, #4 - adds r3, r0, r1 - ldrb r1, [r3] - lsls r0, r1, #0x1d - mov r8, r2 - cmp r0, #0 - bge _0803DDFC - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3] - ldr r2, _0803DDF0 - ldr r1, _0803DDF4 - movs r0, #0xa5 - strh r0, [r1] - strh r0, [r2] - ldr r2, _0803DDF8 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #4 - orrs r0, r1 - str r0, [r2] - movs r0, #0xa5 - movs r1, #0 - bl GetMoveTarget - ldrb r1, [r6] - ldr r3, _0803DDE8 - ldr r2, [r3] - b _0803DF56 - .align 2, 0 -_0803DDC8: .4byte gUnknown_2023EB5 -_0803DDCC: .4byte gUnknown_2024118 -_0803DDD0: .4byte 0x000001A3 -_0803DDD4: .4byte gUnknown_2023F20 -_0803DDD8: .4byte gUnknown_2023EB6 -_0803DDDC: .4byte gUnknown_2023FD6 -_0803DDE0: .4byte gUnknown_2023E8C -_0803DDE4: .4byte gUnknown_2023E8D -_0803DDE8: .4byte gUnknown_2024140 -_0803DDEC: .4byte gUnknown_2023FE0 -_0803DDF0: .4byte gUnknown_2023E8E -_0803DDF4: .4byte gUnknown_2023E90 -_0803DDF8: .4byte gUnknown_2023F24 -_0803DDFC: - ldr r5, _0803DE34 - mov sl, r5 - movs r0, #0x58 - adds r5, r4, #0 - muls r5, r0, r5 - mov r0, sl - adds r0, #0x50 - adds r0, r5, r0 - ldr r1, [r0] - movs r0, #0x80 - lsls r0, r0, #5 - ands r0, r1 - cmp r0, #0 - bne _0803DE22 - movs r7, #0x80 - lsls r7, r7, #0xf - ands r7, r1 - cmp r7, #0 - beq _0803DE44 -_0803DE22: - ldr r3, _0803DE38 - ldr r2, _0803DE3C - ldr r1, _0803DE40 - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2] - strh r0, [r3] - b _0803DF7C - .align 2, 0 -_0803DE34: .4byte gUnknown_2023D28 -_0803DE38: .4byte gUnknown_2023E8E -_0803DE3C: .4byte gUnknown_2023E90 -_0803DE40: .4byte gUnknown_2023F0C -_0803DE44: - ldr r1, _0803DE98 - mov ip, r1 - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - add r0, ip - ldrh r3, [r0, #6] - adds r1, r3, #0 - cmp r1, #0 - beq _0803DF1C - ldrb r2, [r0, #0xc] - lsls r0, r2, #1 - adds r0, r0, r5 - mov r4, sl - adds r4, #0xc - adds r0, r0, r4 - ldrh r0, [r0] - cmp r1, r0 - bne _0803DEA8 - ldr r2, _0803DE9C - ldr r0, _0803DEA0 - strh r3, [r0] - strh r3, [r2] - ldrb r1, [r6] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - add r0, ip - ldrb r0, [r0, #0xc] - mov r3, sb - strb r0, [r3] - mov r5, r8 - strb r0, [r5] - ldrh r0, [r2] - movs r1, #0 - bl GetMoveTarget - ldrb r1, [r6] - ldr r3, _0803DEA4 - ldr r2, [r3] - b _0803DF56 - .align 2, 0 -_0803DE98: .4byte gUnknown_2023F60 -_0803DE9C: .4byte gUnknown_2023E8E -_0803DEA0: .4byte gUnknown_2023E90 -_0803DEA4: .4byte gUnknown_2024140 -_0803DEA8: - cmp r1, #0 - beq _0803DF1C - cmp r1, r0 - beq _0803DF1C - mov r5, sb - strb r2, [r5] - mov r0, r8 - strb r2, [r0] - ldr r3, _0803DF10 - ldr r2, _0803DF14 - ldrb r0, [r0] - lsls r0, r0, #1 - ldrb r1, [r6] - movs r5, #0x58 - muls r1, r5, r1 - adds r0, r0, r1 - adds r0, r0, r4 - ldrh r0, [r0] - strh r0, [r2] - strh r0, [r3] - ldrb r1, [r6] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - add r0, ip - movs r2, #0 - strh r7, [r0, #6] - ldrb r1, [r6] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - add r0, ip - strb r2, [r0, #0xc] - ldrb r0, [r6] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - add r1, ip - ldrb r2, [r1, #0xe] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #0xe] - ldrh r0, [r3] - movs r1, #0 - bl GetMoveTarget - ldrb r1, [r6] - ldr r3, _0803DF18 - ldr r2, [r3] - b _0803DF56 - .align 2, 0 -_0803DF10: .4byte gUnknown_2023E8E -_0803DF14: .4byte gUnknown_2023E90 -_0803DF18: .4byte gUnknown_2024140 -_0803DF1C: - ldr r3, _0803DF5C - mov r5, r8 - ldrb r0, [r5] - lsls r0, r0, #1 - ldr r4, _0803DF60 - ldrb r2, [r4] - movs r1, #0x58 - muls r1, r2, r1 - adds r0, r0, r1 - adds r3, #0xc - adds r0, r0, r3 - ldr r1, _0803DF64 - lsls r2, r2, #1 - adds r2, r2, r1 - ldrh r3, [r0] - ldrh r2, [r2] - cmp r3, r2 - beq _0803DF74 - ldr r1, _0803DF68 - ldr r0, _0803DF6C - strh r3, [r0] - strh r3, [r1] - ldrh r0, [r1] - movs r1, #0 - bl GetMoveTarget - ldrb r1, [r4] - ldr r2, _0803DF70 - ldr r2, [r2] -_0803DF56: - adds r1, r1, r2 - strb r0, [r1, #0xc] - b _0803DF7C - .align 2, 0 -_0803DF5C: .4byte gUnknown_2023D28 -_0803DF60: .4byte gUnknown_2023EAF -_0803DF64: .4byte gUnknown_2023F18 -_0803DF68: .4byte gUnknown_2023E8E -_0803DF6C: .4byte gUnknown_2023E90 -_0803DF70: .4byte gUnknown_2024140 -_0803DF74: - ldr r1, _0803DFA8 - ldr r0, _0803DFAC - strh r3, [r0] - strh r3, [r1] -_0803DF7C: - ldr r2, _0803DFB0 - ldr r1, _0803DFB4 - ldrb r3, [r1] - movs r0, #0x58 - muls r0, r3, r0 - adds r0, r0, r2 - ldrh r0, [r0, #0x28] - mov r8, r1 - cmp r0, #0 - beq _0803DFC4 - adds r0, r3, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803DFBC - ldr r0, _0803DFB8 - ldr r1, _0803DFA8 - ldrh r1, [r1] - strh r1, [r0, #0x22] - b _0803DFC4 - .align 2, 0 -_0803DFA8: .4byte gUnknown_2023E8E -_0803DFAC: .4byte gUnknown_2023E90 -_0803DFB0: .4byte gUnknown_2023D28 -_0803DFB4: .4byte gUnknown_2023EAF -_0803DFB8: .4byte gUnknown_3005A70 -_0803DFBC: - ldr r0, _0803E028 - ldr r1, _0803E02C - ldrh r1, [r1] - strh r1, [r0, #0x24] -_0803DFC4: - mov r1, r8 - ldrb r0, [r1] - bl GetBattlerSide - movs r1, #1 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _0803E030 - lsls r0, r6, #1 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r5, r0, r1 - ldrb r0, [r5, #8] - cmp r0, #0 - beq _0803E040 - ldr r2, _0803E034 - ldr r0, _0803E02C - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #6] - cmp r0, #0 - bne _0803E040 - mov r3, r8 - ldrb r0, [r3] - bl GetBattlerSide - adds r4, r0, #0 - ldrb r0, [r5, #9] - bl GetBattlerSide - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - beq _0803E040 - ldr r1, _0803E038 - ldrb r2, [r5, #9] - movs r0, #0x58 - muls r0, r2, r0 - adds r0, r0, r1 - ldrh r0, [r0, #0x28] - cmp r0, #0 - beq _0803E040 - ldr r0, _0803E03C - strb r2, [r0] - b _0803E3AA - .align 2, 0 -_0803E028: .4byte gUnknown_3005A70 -_0803E02C: .4byte gUnknown_2023E8E -_0803E030: .4byte gUnknown_2023F38 -_0803E034: .4byte gUnknown_82ED220 -_0803E038: .4byte gUnknown_2023D28 -_0803E03C: .4byte gUnknown_2023EB0 -_0803E040: - ldr r0, _0803E15C - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - ldr r5, _0803E160 - mov r8, r5 - cmp r0, #0 - bne _0803E052 - b _0803E320 -_0803E052: - ldr r1, _0803E164 - lsls r0, r6, #1 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r5, [r0, #8] - cmp r5, #0 - beq _0803E064 - b _0803E270 -_0803E064: - ldr r2, _0803E168 - ldr r0, _0803E16C - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, r0, r2 - ldrb r0, [r4, #1] - cmp r0, #0 - bne _0803E080 - ldrb r0, [r4, #6] - cmp r0, #0x10 - bne _0803E080 - b _0803E270 -_0803E080: - ldr r3, _0803E170 - ldr r2, _0803E160 - ldrb r6, [r2] - ldr r0, _0803E174 - ldr r0, [r0] - adds r0, r6, r0 - ldrb r1, [r0, #0xc] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r3 - adds r0, #0x20 - ldrb r0, [r0] - mov r8, r2 - cmp r0, #0x1f - bne _0803E0A0 - b _0803E270 -_0803E0A0: - ldrb r0, [r4, #2] - cmp r0, #0xd - beq _0803E0A8 - b _0803E270 -_0803E0A8: - adds r0, r6, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _0803E178 - strb r5, [r1] - ldr r0, _0803E17C - ldrb r0, [r0] - cmp r5, r0 - bhs _0803E120 - adds r4, r1, #0 -_0803E0C0: - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r6, r0 - beq _0803E10E - ldr r0, _0803E160 - ldrb r1, [r0] - ldr r0, _0803E174 - ldr r0, [r0] - adds r1, r1, r0 - ldrb r0, [r1, #0xc] - ldrb r1, [r4] - cmp r0, r1 - beq _0803E10E - ldr r1, _0803E170 - ldrb r2, [r4] - movs r0, #0x58 - muls r0, r2, r0 - adds r0, r0, r1 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x1f - bne _0803E10E - adds r0, r2, #0 - bl GetBattlerTurnOrderNum - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, [sp] - cmp r0, r3 - bhs _0803E10E - ldrb r0, [r4] - bl GetBattlerTurnOrderNum - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] -_0803E10E: - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - ldr r1, _0803E17C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1] - cmp r0, r1 - blo _0803E0C0 -_0803E120: - ldr r5, [sp] - cmp r5, #4 - beq _0803E128 - b _0803E222 -_0803E128: - ldr r2, _0803E168 - ldr r0, _0803E180 - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #6] - ands r5, r0 - cmp r5, #0 - beq _0803E1A8 - ldr r0, _0803E160 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803E188 - bl Random - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0803E184 - movs r0, #1 - b _0803E19A - .align 2, 0 -_0803E15C: .4byte gUnknown_2022C90 -_0803E160: .4byte gUnknown_2023EAF -_0803E164: .4byte gUnknown_2023F38 -_0803E168: .4byte gUnknown_82ED220 -_0803E16C: .4byte gUnknown_2023E8E -_0803E170: .4byte gUnknown_2023D28 -_0803E174: .4byte gUnknown_2024140 -_0803E178: .4byte gUnknown_2023D08 -_0803E17C: .4byte gUnknown_2023D10 -_0803E180: .4byte gUnknown_2023E90 -_0803E184: - movs r0, #3 - b _0803E19A -_0803E188: - bl Random - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0803E198 - movs r0, #0 - b _0803E19A -_0803E198: - movs r0, #2 -_0803E19A: - bl GetBattlerAtPosition - ldr r1, _0803E1A4 - strb r0, [r1] - b _0803E1B8 - .align 2, 0 -_0803E1A4: .4byte gUnknown_2023EB0 -_0803E1A8: - ldr r2, _0803E1F0 - ldr r0, _0803E1F4 - ldrb r0, [r0] - ldr r1, _0803E1F8 - ldr r1, [r1] - adds r0, r0, r1 - ldrb r0, [r0, #0xc] - strb r0, [r2] -_0803E1B8: - ldr r7, _0803E1FC - ldrb r0, [r7] - ldr r1, _0803E200 - mov r8, r1 - ldr r5, _0803E1F0 - ldrb r1, [r5] - lsls r1, r1, #2 - add r1, r8 - ldr r1, [r1] - ands r0, r1 - cmp r0, #0 - bne _0803E1D2 - b _0803E3AA -_0803E1D2: - ldr r6, _0803E1F4 - ldrb r0, [r6] - bl GetBattlerSide - adds r4, r0, #0 - ldrb r0, [r5] - bl GetBattlerSide - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - beq _0803E204 - ldrb r0, [r5] - b _0803E398 - .align 2, 0 -_0803E1F0: .4byte gUnknown_2023EB0 -_0803E1F4: .4byte gUnknown_2023EAF -_0803E1F8: .4byte gUnknown_2024140 -_0803E1FC: .4byte gUnknown_2023EB4 -_0803E200: .4byte gUnknown_82FACB4 -_0803E204: - ldrb r0, [r6] - bl sub_080A630C - movs r1, #1 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - strb r0, [r5] - ldrb r1, [r7] - ldrb r2, [r5] - lsls r0, r2, #2 - add r0, r8 - b _0803E38E -_0803E222: - ldr r4, _0803E25C - ldr r0, _0803E260 - ldr r3, [sp] - adds r0, r3, r0 - ldrb r0, [r0] - strb r0, [r4] - ldrb r0, [r4] - ldr r2, _0803E264 - movs r1, #0x58 - muls r1, r0, r1 - adds r1, r1, r2 - adds r1, #0x20 - ldrb r1, [r1] - bl RecordAbilityBattle - ldr r2, _0803E268 - ldrb r1, [r4] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r2, #2 - orrs r1, r2 - strb r1, [r0] - ldr r1, _0803E26C - ldrb r0, [r4] - strb r0, [r1] - b _0803E3AA - .align 2, 0 -_0803E25C: .4byte gUnknown_2023D08 -_0803E260: .4byte gUnknown_2023D22 -_0803E264: .4byte gUnknown_2023D28 -_0803E268: .4byte gUnknown_2024020 -_0803E26C: .4byte gUnknown_2023EB0 -_0803E270: - ldr r0, _0803E2B4 - ldr r0, [r0] - movs r4, #1 - ands r0, r4 - cmp r0, #0 - beq _0803E320 - ldr r2, _0803E2B8 - ldr r0, _0803E2BC - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #6] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0803E320 - mov r5, r8 - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803E2C4 - bl Random - adds r1, r4, #0 - ands r1, r0 - cmp r1, #0 - beq _0803E2C0 - movs r0, #1 - b _0803E2D6 - .align 2, 0 -_0803E2B4: .4byte gUnknown_2022C90 -_0803E2B8: .4byte gUnknown_82ED220 -_0803E2BC: .4byte gUnknown_2023E90 -_0803E2C0: - movs r0, #3 - b _0803E2D6 -_0803E2C4: - bl Random - adds r1, r4, #0 - ands r1, r0 - cmp r1, #0 - beq _0803E2D4 - movs r0, #0 - b _0803E2D6 -_0803E2D4: - movs r0, #2 -_0803E2D6: - bl GetBattlerAtPosition - ldr r1, _0803E310 - strb r0, [r1] - ldr r0, _0803E314 - ldrb r1, [r0] - ldr r2, _0803E318 - ldr r5, _0803E310 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _0803E3AA - ldr r0, _0803E31C - ldrb r0, [r0] - bl GetBattlerSide - adds r4, r0, #0 - ldrb r0, [r5] - bl GetBattlerSide - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - beq _0803E3AA - ldrb r0, [r5] - b _0803E398 - .align 2, 0 -_0803E310: .4byte gUnknown_2023EB0 -_0803E314: .4byte gUnknown_2023EB4 -_0803E318: .4byte gUnknown_82FACB4 -_0803E31C: .4byte gUnknown_2023EAF -_0803E320: - ldr r5, _0803E360 - mov r2, r8 - ldrb r0, [r2] - ldr r1, _0803E364 - ldr r1, [r1] - adds r0, r0, r1 - ldrb r0, [r0, #0xc] - strb r0, [r5] - ldr r6, _0803E368 - ldrb r1, [r6] - ldr r7, _0803E36C - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r7 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _0803E3AA - ldrb r0, [r2] - bl GetBattlerSide - adds r4, r0, #0 - ldrb r0, [r5] - bl GetBattlerSide - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - beq _0803E370 - ldrb r0, [r5] - b _0803E398 - .align 2, 0 -_0803E360: .4byte gUnknown_2023EB0 -_0803E364: .4byte gUnknown_2024140 -_0803E368: .4byte gUnknown_2023EB4 -_0803E36C: .4byte gUnknown_82FACB4 -_0803E370: - mov r1, r8 - ldrb r0, [r1] - bl sub_080A630C - movs r1, #1 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - strb r0, [r5] - ldrb r1, [r6] - ldrb r2, [r5] - lsls r0, r2, #2 - adds r0, r0, r7 -_0803E38E: - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _0803E3AA - adds r0, r2, #0 -_0803E398: - bl sub_080A630C - movs r1, #2 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - strb r0, [r5] -_0803E3AA: - ldr r0, _0803E3E0 - ldr r1, [r0] - movs r2, #0x80 - lsls r2, r2, #0xa - ands r1, r2 - adds r5, r0, #0 - cmp r1, #0 - beq _0803E448 - ldr r0, _0803E3E4 - ldr r4, _0803E3E8 - ldrb r2, [r4] - lsls r1, r2, #4 - adds r1, r1, r0 - ldrb r0, [r1, #2] - lsls r0, r0, #0x1b - cmp r0, #0 - bge _0803E448 - ldr r1, _0803E3EC - movs r0, #0x58 - muls r0, r2, r0 - adds r0, r0, r1 - ldrh r0, [r0, #0x28] - cmp r0, #0 - bne _0803E3F4 - ldr r1, _0803E3F0 - movs r0, #0xc - b _0803E47C - .align 2, 0 -_0803E3E0: .4byte gUnknown_2022C90 -_0803E3E4: .4byte gUnknown_2023FE0 -_0803E3E8: .4byte gUnknown_2023EAF -_0803E3EC: .4byte gUnknown_2023D28 -_0803E3F0: .4byte gUnknown_2023D27 -_0803E3F4: - ldr r3, _0803E420 - lsls r0, r2, #2 - adds r0, r0, r3 - ldr r0, [r0] - cmp r0, #0 - beq _0803E42C - ldr r1, _0803E424 - movs r2, #0 - movs r0, #4 - strb r0, [r1, #5] - ldr r1, _0803E428 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r3 - ldr r0, [r0] - str r0, [r1] - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r3 - str r2, [r0] - b _0803E464 - .align 2, 0 -_0803E420: .4byte gUnknown_2023ED4 -_0803E424: .4byte gUnknown_2023FD6 -_0803E428: .4byte gUnknown_2023EB8 -_0803E42C: - ldr r1, _0803E43C - movs r0, #4 - strb r0, [r1, #5] - ldr r1, _0803E440 - ldr r0, _0803E444 - str r0, [r1] - b _0803E464 - .align 2, 0 -_0803E43C: .4byte gUnknown_2023FD6 -_0803E440: .4byte gUnknown_2023EB8 -_0803E444: .4byte gUnknown_8289C35 -_0803E448: - ldr r4, _0803E490 - ldr r3, _0803E494 - ldr r2, _0803E498 - ldr r0, _0803E49C - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r3 - ldr r0, [r0] - str r0, [r4] -_0803E464: - ldr r0, [r5] - movs r1, #0x80 - lsls r1, r1, #0xb - ands r0, r1 - cmp r0, #0 - beq _0803E478 - ldr r0, _0803E4A0 - ldrb r0, [r0] - bl BattleArena_AddMindPoints -_0803E478: - ldr r1, _0803E4A4 - movs r0, #0xa -_0803E47C: - strb r0, [r1] - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0803E490: .4byte gUnknown_2023EB8 -_0803E494: .4byte gUnknown_8286C30 -_0803E498: .4byte gUnknown_82ED220 -_0803E49C: .4byte gUnknown_2023E8E -_0803E4A0: .4byte gUnknown_2023EAF -_0803E4A4: .4byte gUnknown_2023D27 - thumb_func_end HandleAction_UseMove - - thumb_func_start HandleAction_Switch -HandleAction_Switch: @ 0x0803E4A8 - push {r4, lr} - ldr r3, _0803E514 - ldr r1, _0803E518 - ldr r0, _0803E51C - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r3] - ldr r0, _0803E520 - movs r2, #0 - strh r2, [r0] - ldr r0, _0803E524 - strh r2, [r0] - ldr r1, _0803E528 - ldrb r0, [r3] - adds r0, r0, r1 - strb r2, [r0] - ldr r1, _0803E52C - ldrb r0, [r3] - adds r0, r0, r1 - strb r2, [r0] - ldr r2, _0803E530 - movs r0, #0xfd - strb r0, [r2] - movs r0, #7 - strb r0, [r2, #1] - ldrb r4, [r3] - strb r4, [r2, #2] - ldrb r0, [r3] - ldr r1, _0803E534 - ldr r1, [r1] - adds r0, r0, r1 - adds r0, #0x58 - ldrb r0, [r0] - strb r0, [r2, #3] - movs r0, #0xff - strb r0, [r2, #4] - ldr r0, _0803E538 - strb r4, [r0, #0x17] - ldr r1, _0803E53C - ldr r0, _0803E540 - str r0, [r1] - ldr r1, _0803E544 - movs r0, #0xa - strb r0, [r1] - ldr r1, _0803E548 - ldrb r0, [r1, #2] - cmp r0, #0xfe - bhi _0803E50E - adds r0, #1 - strb r0, [r1, #2] -_0803E50E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0803E514: .4byte gUnknown_2023EAF -_0803E518: .4byte gUnknown_2023D22 -_0803E51C: .4byte gUnknown_2023D26 -_0803E520: .4byte gUnknown_2022AC8 -_0803E524: .4byte gUnknown_2022ACA -_0803E528: .4byte gUnknown_2024150 -_0803E52C: .4byte gUnknown_2024154 -_0803E530: .4byte gUnknown_2022C0C -_0803E534: .4byte gUnknown_2024140 -_0803E538: .4byte gUnknown_2024118 -_0803E53C: .4byte gUnknown_2023EB8 -_0803E540: .4byte gUnknown_828909D -_0803E544: .4byte gUnknown_2023D27 -_0803E548: .4byte gUnknown_3005A70 - thumb_func_end HandleAction_Switch - - thumb_func_start HandleAction_UseItem -HandleAction_UseItem: @ 0x0803E54C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r4, _0803E5AC - ldr r2, _0803E5B0 - ldr r1, _0803E5B4 - ldr r0, _0803E5B8 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r2] - strb r0, [r4] - ldr r0, _0803E5BC - movs r1, #0 - strh r1, [r0] - ldr r0, _0803E5C0 - strh r1, [r0] - ldrb r0, [r4] - bl ClearFuryCutterDestinyBondGrudge - ldr r5, _0803E5C4 - ldr r2, _0803E5C8 - ldrb r1, [r4] - lsls r1, r1, #9 - adds r0, r2, #1 - adds r0, r1, r0 - ldrb r3, [r0] - adds r2, #2 - adds r1, r1, r2 - ldrb r0, [r1] - lsls r0, r0, #8 - orrs r3, r0 - strh r3, [r5] - cmp r3, #0xc - bhi _0803E5D8 - ldr r2, _0803E5CC - ldr r1, _0803E5D0 - ldrh r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r2] - ldr r0, _0803E5D4 - mov sl, r0 - b _0803E836 - .align 2, 0 -_0803E5AC: .4byte gUnknown_2023EAF -_0803E5B0: .4byte gUnknown_2023EB0 -_0803E5B4: .4byte gUnknown_2023D22 -_0803E5B8: .4byte gUnknown_2023D26 -_0803E5BC: .4byte gUnknown_2022AC8 -_0803E5C0: .4byte gUnknown_2022ACA -_0803E5C4: .4byte gUnknown_2023EAC -_0803E5C8: .4byte gUnknown_2023508 -_0803E5CC: .4byte gUnknown_2023EB8 -_0803E5D0: .4byte gUnknown_828A290 -_0803E5D4: .4byte gUnknown_2023D27 -_0803E5D8: - adds r0, r3, #0 - subs r0, #0x50 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bhi _0803E600 - ldr r0, _0803E5F4 - ldr r1, _0803E5F8 - ldr r1, [r1] - str r1, [r0] - ldr r1, _0803E5FC - mov sl, r1 - b _0803E836 - .align 2, 0 -_0803E5F4: .4byte gUnknown_2023EB8 -_0803E5F8: .4byte gUnknown_828A2DC -_0803E5FC: .4byte gUnknown_2023D27 -_0803E600: - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803E628 - ldr r0, _0803E61C - ldr r1, _0803E620 - ldr r1, [r1] - str r1, [r0] - ldr r2, _0803E624 - mov sl, r2 - b _0803E836 - .align 2, 0 -_0803E61C: .4byte gUnknown_2023EB8 -_0803E620: .4byte gUnknown_828A2C4 -_0803E624: .4byte gUnknown_2023D27 -_0803E628: - ldr r3, _0803E660 - ldrb r0, [r4] - strb r0, [r3, #0x17] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x19 - ldr r2, _0803E664 - ldr r1, [r2] - adds r0, r0, r1 - adds r0, #0xc4 - ldrb r0, [r0] - subs r0, #1 - mov r8, r4 - ldr r1, _0803E668 - mov sb, r1 - ldr r6, _0803E66C - mov ip, r3 - adds r7, r2, #0 - ldr r2, _0803E670 - mov sl, r2 - cmp r0, #4 - bls _0803E654 - b _0803E81E -_0803E654: - lsls r0, r0, #2 - ldr r1, _0803E674 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803E660: .4byte gUnknown_2024118 -_0803E664: .4byte gUnknown_2024140 -_0803E668: .4byte gUnknown_2023EB8 -_0803E66C: .4byte gUnknown_828A2C4 -_0803E670: .4byte gUnknown_2023D27 -_0803E674: .4byte _0803E678 -_0803E678: @ jump table - .4byte _0803E81E @ case 0 - .4byte _0803E81E @ case 1 - .4byte _0803E68C @ case 2 - .4byte _0803E720 @ case 3 - .4byte _0803E7F0 @ case 4 -_0803E68C: - ldr r5, _0803E6C4 - movs r0, #0 - strb r0, [r5, #5] - ldr r2, _0803E6C8 - ldrb r0, [r2] - lsrs r0, r0, #1 - ldr r1, [r7] - adds r0, r0, r1 - adds r0, #0xc6 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - mov r8, r2 - cmp r0, #0 - beq _0803E6D8 - movs r0, #0x3e - ands r0, r1 - ldr r1, _0803E6CC - mov sb, r1 - ldr r6, _0803E6D0 - ldr r2, _0803E6D4 - mov sl, r2 - cmp r0, #0 - bne _0803E6BE - b _0803E81E -_0803E6BE: - movs r0, #5 - strb r0, [r5, #5] - b _0803E81E - .align 2, 0 -_0803E6C4: .4byte gUnknown_2023FD6 -_0803E6C8: .4byte gUnknown_2023EAF -_0803E6CC: .4byte gUnknown_2023EB8 -_0803E6D0: .4byte gUnknown_828A2C4 -_0803E6D4: .4byte gUnknown_2023D27 -_0803E6D8: - ldr r0, _0803E714 - mov sb, r0 - ldr r6, _0803E718 - ldr r1, _0803E71C - mov sl, r1 - mov r4, r8 - adds r3, r7, #0 - adds r2, r5, #0 -_0803E6E8: - ldrb r1, [r4] - lsrs r1, r1, #1 - ldr r0, [r3] - adds r1, r1, r0 - adds r1, #0xc6 - ldrb r0, [r1] - lsrs r0, r0, #1 - strb r0, [r1] - ldrb r0, [r2, #5] - adds r0, #1 - strb r0, [r2, #5] - ldrb r0, [r4] - lsrs r0, r0, #1 - ldr r1, [r3] - adds r0, r0, r1 - adds r0, #0xc6 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0803E6E8 - b _0803E81E - .align 2, 0 -_0803E714: .4byte gUnknown_2023EB8 -_0803E718: .4byte gUnknown_828A2C4 -_0803E71C: .4byte gUnknown_2023D27 -_0803E720: - ldr r3, _0803E754 - movs r0, #4 - strb r0, [r3, #5] - ldr r2, _0803E758 - ldrb r0, [r2] - lsrs r0, r0, #1 - ldr r1, [r7] - adds r0, r0, r1 - adds r6, r0, #0 - adds r6, #0xc6 - ldrb r1, [r6] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - mov r8, r2 - cmp r5, #0 - beq _0803E768 - movs r0, #5 - strb r0, [r3, #5] - ldr r2, _0803E75C - mov sb, r2 - ldr r6, _0803E760 - ldr r0, _0803E764 - mov sl, r0 - b _0803E81E - .align 2, 0 -_0803E754: .4byte gUnknown_2023FD6 -_0803E758: .4byte gUnknown_2023EAF -_0803E75C: .4byte gUnknown_2023EB8 -_0803E760: .4byte gUnknown_828A2C4 -_0803E764: .4byte gUnknown_2023D27 -_0803E768: - ldr r3, _0803E7DC - movs r4, #0xfd - strb r4, [r3] - movs r0, #5 - strb r0, [r3, #1] - movs r2, #1 - strb r2, [r3, #2] - movs r0, #0xff - strb r0, [r3, #3] - ldr r1, _0803E7E0 - strb r4, [r1] - strb r5, [r1, #1] - movs r0, #0xd2 - strb r0, [r1, #2] - strb r5, [r1, #3] - subs r0, #0xd3 - strb r0, [r1, #4] - ldrb r0, [r6] - ands r2, r0 - ldr r1, _0803E7E4 - mov sb, r1 - ldr r6, _0803E7E8 - ldr r0, _0803E7EC - mov sl, r0 - cmp r2, #0 - bne _0803E7CC - mov r5, r8 - adds r4, r7, #0 - adds r2, r3, #0 -_0803E7A2: - ldrb r1, [r5] - lsrs r1, r1, #1 - ldr r0, [r4] - adds r1, r1, r0 - adds r1, #0xc6 - ldrb r0, [r1] - lsrs r0, r0, #1 - strb r0, [r1] - ldrb r0, [r2, #2] - adds r0, #1 - strb r0, [r2, #2] - ldrb r0, [r5] - lsrs r0, r0, #1 - ldr r1, [r4] - adds r0, r0, r1 - adds r0, #0xc6 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0803E7A2 -_0803E7CC: - ldrb r0, [r3, #2] - adds r0, #0xe - movs r1, #0 - mov r2, ip - strb r0, [r2, #0x10] - strb r1, [r2, #0x11] - b _0803E81E - .align 2, 0 -_0803E7DC: .4byte gUnknown_2022C0C -_0803E7E0: .4byte gUnknown_2022C1C -_0803E7E4: .4byte gUnknown_2023EB8 -_0803E7E8: .4byte gUnknown_828A2C4 -_0803E7EC: .4byte gUnknown_2023D27 -_0803E7F0: - ldr r0, _0803E804 - ldr r1, [r0] - movs r0, #1 - ands r1, r0 - cmp r1, #0 - beq _0803E80C - ldr r1, _0803E808 - movs r0, #2 - strb r0, [r1, #5] - b _0803E810 - .align 2, 0 -_0803E804: .4byte gUnknown_2022C90 -_0803E808: .4byte gUnknown_2023FD6 -_0803E80C: - ldr r0, _0803E84C - strb r1, [r0, #5] -_0803E810: - ldr r0, _0803E850 - mov r8, r0 - ldr r1, _0803E854 - mov sb, r1 - ldr r6, _0803E858 - ldr r2, _0803E85C - mov sl, r2 -_0803E81E: - mov r1, r8 - ldrb r0, [r1] - lsrs r0, r0, #1 - ldr r1, [r7] - adds r0, r0, r1 - adds r0, #0xc4 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r0, [r0] - mov r2, sb - str r0, [r2] -_0803E836: - movs r0, #0xa - mov r1, sl - strb r0, [r1] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0803E84C: .4byte gUnknown_2023FD6 -_0803E850: .4byte gUnknown_2023EAF -_0803E854: .4byte gUnknown_2023EB8 -_0803E858: .4byte gUnknown_828A2C4 -_0803E85C: .4byte gUnknown_2023D27 - thumb_func_end HandleAction_UseItem - - thumb_func_start TryRunFromBattle -TryRunFromBattle: @ 0x0803E860 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r7, #0 - ldr r1, _0803E88C - movs r0, #0x58 - muls r0, r5, r0 - adds r1, r0, r1 - ldrh r0, [r1, #0x2e] - cmp r0, #0xaf - bne _0803E894 - ldr r1, _0803E890 - lsls r0, r5, #3 - subs r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #7] - b _0803E89E - .align 2, 0 -_0803E88C: .4byte gUnknown_2023D28 -_0803E890: .4byte gUnknown_20240A8 -_0803E894: - ldrh r0, [r1, #0x2e] - bl sub_080D6CF8 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 -_0803E89E: - ldr r0, _0803E8CC - strb r5, [r0] - cmp r1, #0x25 - bne _0803E8DC - ldr r2, _0803E8D0 - ldr r1, _0803E8D4 - movs r0, #0x58 - muls r0, r5, r0 - adds r0, r0, r1 - ldrh r0, [r0, #0x2e] - strh r0, [r2] - ldr r0, _0803E8D8 - lsls r2, r5, #4 - adds r2, r2, r0 - ldrb r1, [r2, #1] - movs r0, #0x19 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2, #1] - b _0803E9B0 - .align 2, 0 -_0803E8CC: .4byte gUnknown_2023EB3 -_0803E8D0: .4byte gUnknown_2023EAC -_0803E8D4: .4byte gUnknown_2023D28 -_0803E8D8: .4byte gUnknown_2023FE0 -_0803E8DC: - ldr r0, _0803E968 - mov sl, r0 - movs r2, #0x58 - mov sb, r2 - mov r0, sb - muls r0, r5, r0 - add r0, sl - mov r8, r0 - adds r0, #0x20 - ldrb r6, [r0] - cmp r6, #0x32 - bne _0803E99C - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0803E978 - ldr r4, _0803E96C - ldr r1, [r4] - adds r1, #0x6c - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - bl GetPyramidRunMultiplier - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - mov r2, r8 - ldrh r0, [r2, #6] - muls r0, r1, r0 - movs r2, #1 - adds r1, r5, #0 - eors r1, r2 - mov r2, sb - muls r2, r1, r2 - adds r1, r2, #0 - add r1, sl - ldrh r1, [r1, #6] - bl __divsi3 - ldr r1, [r4] - adds r1, #0x6c - ldrb r2, [r1] - lsls r1, r2, #4 - subs r1, r1, r2 - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl Random - movs r1, #0xff - ands r1, r0 - cmp r4, r1 - bhi _0803E94C - b _0803EA52 -_0803E94C: - ldr r0, _0803E970 - strb r6, [r0] - ldr r0, _0803E974 - lsls r2, r5, #4 - adds r2, r2, r0 - ldrb r1, [r2, #1] - movs r0, #0x19 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r2, #1] - b _0803E9B0 - .align 2, 0 -_0803E968: .4byte gUnknown_2023D28 -_0803E96C: .4byte gUnknown_2024140 -_0803E970: .4byte gUnknown_2023EAE -_0803E974: .4byte gUnknown_2023FE0 -_0803E978: - ldr r0, _0803E994 - strb r6, [r0] - ldr r0, _0803E998 - lsls r2, r5, #4 - adds r2, r2, r0 - ldrb r1, [r2, #1] - movs r0, #0x19 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r2, #1] - b _0803E9B0 - .align 2, 0 -_0803E994: .4byte gUnknown_2023EAE -_0803E998: .4byte gUnknown_2023FE0 -_0803E99C: - ldr r1, _0803E9B8 - ldr r2, [r1] - ldr r0, _0803E9BC - ands r0, r2 - cmp r0, #0 - beq _0803E9C0 - movs r0, #8 - ands r2, r0 - cmp r2, #0 - beq _0803E9C0 -_0803E9B0: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - b _0803EA52 - .align 2, 0 -_0803E9B8: .4byte gUnknown_2022C90 -_0803E9BC: .4byte 0x043F0100 -_0803E9C0: - ldr r0, [r1] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _0803EA46 - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0803E9FC - bl GetPyramidRunMultiplier - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r4, _0803E9F8 - movs r3, #0x58 - adds r0, r5, #0 - muls r0, r3, r0 - adds r0, r0, r4 - ldrh r0, [r0, #6] - muls r0, r1, r0 - movs r2, #1 - adds r1, r5, #0 - eors r1, r2 - muls r1, r3, r1 - adds r1, r1, r4 - b _0803EA1A - .align 2, 0 -_0803E9F8: .4byte gUnknown_2023D28 -_0803E9FC: - ldr r3, _0803EA74 - movs r2, #0x58 - adds r0, r5, #0 - muls r0, r2, r0 - adds r4, r0, r3 - movs r1, #1 - adds r0, r5, #0 - eors r0, r1 - muls r0, r2, r0 - adds r1, r0, r3 - ldrh r0, [r4, #6] - ldrh r2, [r1, #6] - cmp r0, r2 - bhs _0803EA40 - lsls r0, r0, #7 -_0803EA1A: - ldrh r1, [r1, #6] - bl __divsi3 - ldr r1, _0803EA78 - ldr r1, [r1] - adds r1, #0x6c - ldrb r2, [r1] - lsls r1, r2, #4 - subs r1, r1, r2 - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl Random - movs r1, #0xff - ands r1, r0 - cmp r4, r1 - bls _0803EA46 -_0803EA40: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 -_0803EA46: - ldr r0, _0803EA78 - ldr r1, [r0] - adds r1, #0x6c - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_0803EA52: - cmp r7, #0 - beq _0803EA64 - ldr r1, _0803EA7C - ldr r0, _0803EA80 - ldrb r0, [r0] - strb r0, [r1] - ldr r1, _0803EA84 - movs r0, #4 - strb r0, [r1] -_0803EA64: - adds r0, r7, #0 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0803EA74: .4byte gUnknown_2023D28 -_0803EA78: .4byte gUnknown_2024140 -_0803EA7C: .4byte gUnknown_2023D26 -_0803EA80: .4byte gUnknown_2023D10 -_0803EA84: .4byte gUnknown_2023FDE - thumb_func_end TryRunFromBattle - - thumb_func_start HandleAction_Run -HandleAction_Run: @ 0x0803EA88 - push {r4, r5, r6, lr} - ldr r4, _0803EAD8 - ldr r1, _0803EADC - ldr r5, _0803EAE0 - ldrb r0, [r5] - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r4] - ldr r0, _0803EAE4 - ldr r0, [r0] - ldr r1, _0803EAE8 - ands r0, r1 - cmp r0, #0 - beq _0803EB4C - ldr r0, _0803EAEC - ldrb r1, [r0] - strb r1, [r5] - ldr r2, _0803EAF0 - movs r0, #0 - strb r0, [r2] - lsls r1, r1, #0x18 - cmp r1, #0 - beq _0803EB20 - adds r4, r2, #0 - ldr r6, _0803EAF4 - ldr r5, _0803EAF8 -_0803EABC: - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803EAFC - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r0, [r0] - cmp r0, #3 - bne _0803EB0E - ldrb r0, [r5] - movs r1, #2 - b _0803EB0A - .align 2, 0 -_0803EAD8: .4byte gUnknown_2023EAF -_0803EADC: .4byte gUnknown_2023D22 -_0803EAE0: .4byte gUnknown_2023D26 -_0803EAE4: .4byte gUnknown_2022C90 -_0803EAE8: .4byte gUnknown_2000002 -_0803EAEC: .4byte gUnknown_2023D10 -_0803EAF0: .4byte gUnknown_2023D08 -_0803EAF4: .4byte gUnknown_2023EC0 -_0803EAF8: .4byte gUnknown_2023FDE -_0803EAFC: - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r0, [r0] - cmp r0, #3 - bne _0803EB0E - ldrb r0, [r5] - movs r1, #1 -_0803EB0A: - orrs r0, r1 - strb r0, [r5] -_0803EB0E: - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - ldr r1, _0803EB3C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1] - cmp r0, r1 - blo _0803EABC -_0803EB20: - ldr r2, _0803EB40 - ldrb r0, [r2] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2] - ldr r0, _0803EB44 - ldr r1, [r0] - ldr r0, _0803EB48 - adds r1, r1, r0 - ldrb r0, [r1] - movs r2, #8 - orrs r0, r2 - b _0803EBD6 - .align 2, 0 -_0803EB3C: .4byte gUnknown_2023D10 -_0803EB40: .4byte gUnknown_2023FDE -_0803EB44: .4byte gUnknown_3005AF0 -_0803EB48: .4byte 0x00000CA9 -_0803EB4C: - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803EB8C - ldrb r0, [r4] - bl TryRunFromBattle - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803EBD8 - ldrb r0, [r4] - bl ClearFuryCutterDestinyBondGrudge - ldr r1, _0803EB7C - movs r0, #3 - strb r0, [r1, #5] - ldr r1, _0803EB80 - ldr r0, _0803EB84 - str r0, [r1] - ldr r1, _0803EB88 - movs r0, #0xa - b _0803EBD6 - .align 2, 0 -_0803EB7C: .4byte gUnknown_2023FD6 -_0803EB80: .4byte gUnknown_2023EB8 -_0803EB84: .4byte gUnknown_828908A -_0803EB88: .4byte gUnknown_2023D27 -_0803EB8C: - ldr r1, _0803EBB4 - ldrb r2, [r4] - movs r0, #0x58 - muls r0, r2, r0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _0803EBB8 - ands r0, r1 - cmp r0, #0 - beq _0803EBCC - ldr r1, _0803EBBC - movs r0, #4 - strb r0, [r1, #5] - ldr r1, _0803EBC0 - ldr r0, _0803EBC4 - str r0, [r1] - ldr r1, _0803EBC8 - movs r0, #0xa - b _0803EBD6 - .align 2, 0 -_0803EBB4: .4byte gUnknown_2023D28 -_0803EBB8: .4byte 0x0400E000 -_0803EBBC: .4byte gUnknown_2023FD6 -_0803EBC0: .4byte gUnknown_2023EB8 -_0803EBC4: .4byte gUnknown_828908A -_0803EBC8: .4byte gUnknown_2023D27 -_0803EBCC: - ldr r0, _0803EBE0 - ldrb r0, [r0] - strb r0, [r5] - ldr r1, _0803EBE4 - movs r0, #6 -_0803EBD6: - strb r0, [r1] -_0803EBD8: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0803EBE0: .4byte gUnknown_2023D10 -_0803EBE4: .4byte gUnknown_2023FDE - thumb_func_end HandleAction_Run - - thumb_func_start HandleAction_WatchesCarefully -HandleAction_WatchesCarefully: @ 0x0803EBE8 - ldr r2, _0803EC10 - ldr r1, _0803EC14 - ldr r0, _0803EC18 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r0, _0803EC1C - movs r1, #0 - strh r1, [r0] - ldr r0, _0803EC20 - strh r1, [r0] - ldr r1, _0803EC24 - ldr r0, _0803EC28 - ldr r0, [r0] - str r0, [r1] - ldr r1, _0803EC2C - movs r0, #0xa - strb r0, [r1] - bx lr - .align 2, 0 -_0803EC10: .4byte gUnknown_2023EAF -_0803EC14: .4byte gUnknown_2023D22 -_0803EC18: .4byte gUnknown_2023D26 -_0803EC1C: .4byte gUnknown_2022AC8 -_0803EC20: .4byte gUnknown_2022ACA -_0803EC24: .4byte gUnknown_2023EB8 -_0803EC28: .4byte gUnknown_828A2E0 -_0803EC2C: .4byte gUnknown_2023D27 - thumb_func_end HandleAction_WatchesCarefully - - thumb_func_start HandleAction_SafariZoneBallThrow -HandleAction_SafariZoneBallThrow: @ 0x0803EC30 - ldr r2, _0803EC68 - ldr r1, _0803EC6C - ldr r0, _0803EC70 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r0, _0803EC74 - movs r1, #0 - strh r1, [r0] - ldr r0, _0803EC78 - strh r1, [r0] - ldr r1, _0803EC7C - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - ldr r1, _0803EC80 - movs r0, #5 - strh r0, [r1] - ldr r1, _0803EC84 - ldr r0, _0803EC88 - ldr r0, [r0, #0x14] - str r0, [r1] - ldr r1, _0803EC8C - movs r0, #0xa - strb r0, [r1] - bx lr - .align 2, 0 -_0803EC68: .4byte gUnknown_2023EAF -_0803EC6C: .4byte gUnknown_2023D22 -_0803EC70: .4byte gUnknown_2023D26 -_0803EC74: .4byte gUnknown_2022AC8 -_0803EC78: .4byte gUnknown_2022ACA -_0803EC7C: .4byte gUnknown_2039D18 -_0803EC80: .4byte gUnknown_2023EAC -_0803EC84: .4byte gUnknown_2023EB8 -_0803EC88: .4byte gUnknown_828A290 -_0803EC8C: .4byte gUnknown_2023D27 - thumb_func_end HandleAction_SafariZoneBallThrow - - thumb_func_start HandleAction_ThrowPokeblock -HandleAction_ThrowPokeblock: @ 0x0803EC90 - push {r4, r5, r6, lr} - ldr r3, _0803ED10 - ldr r1, _0803ED14 - ldr r0, _0803ED18 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r3] - ldr r0, _0803ED1C - movs r1, #0 - strh r1, [r0] - ldr r0, _0803ED20 - strh r1, [r0] - ldr r6, _0803ED24 - ldr r2, _0803ED28 - ldrb r0, [r3] - lsls r0, r0, #9 - adds r1, r2, #1 - adds r0, r0, r1 - ldrb r0, [r0] - subs r0, #1 - strb r0, [r6, #5] - ldr r1, _0803ED2C - ldrb r0, [r3] - lsls r0, r0, #9 - adds r2, #2 - adds r0, r0, r2 - ldrb r0, [r0] - strh r0, [r1] - ldr r1, _0803ED30 - ldrb r0, [r1, #0x1f] - cmp r0, #0xfe - bhi _0803ECD6 - adds r0, #1 - strb r0, [r1, #0x1f] -_0803ECD6: - ldr r2, _0803ED34 - ldr r0, [r2] - adds r1, r0, #0 - adds r1, #0x7a - ldrb r0, [r1] - cmp r0, #2 - bhi _0803ECE8 - adds r0, #1 - strb r0, [r1] -_0803ECE8: - ldr r0, [r2] - adds r3, r0, #0 - adds r3, #0x7b - ldrb r5, [r3] - adds r4, r5, #0 - cmp r4, #1 - bls _0803ED40 - ldr r2, _0803ED38 - adds r0, #0x7a - ldrb r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - ldrb r6, [r6, #5] - adds r0, r0, r6 - adds r0, r0, r2 - ldrb r0, [r0] - cmp r4, r0 - bhs _0803ED3C - movs r0, #1 - b _0803ED3E - .align 2, 0 -_0803ED10: .4byte gUnknown_2023EAF -_0803ED14: .4byte gUnknown_2023D22 -_0803ED18: .4byte gUnknown_2023D26 -_0803ED1C: .4byte gUnknown_2022AC8 -_0803ED20: .4byte gUnknown_2022ACA -_0803ED24: .4byte gUnknown_2023FD6 -_0803ED28: .4byte gUnknown_2023508 -_0803ED2C: .4byte gUnknown_2023EAC -_0803ED30: .4byte gUnknown_3005A70 -_0803ED34: .4byte gUnknown_2024140 -_0803ED38: .4byte gUnknown_82EC664 -_0803ED3C: - subs r0, r5, r0 -_0803ED3E: - strb r0, [r3] -_0803ED40: - ldr r1, _0803ED54 - ldr r0, _0803ED58 - ldr r0, [r0, #8] - str r0, [r1] - ldr r1, _0803ED5C - movs r0, #0xa - strb r0, [r1] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0803ED54: .4byte gUnknown_2023EB8 -_0803ED58: .4byte gUnknown_828A2E0 -_0803ED5C: .4byte gUnknown_2023D27 - thumb_func_end HandleAction_ThrowPokeblock - - thumb_func_start HandleAction_GoNear -HandleAction_GoNear: @ 0x0803ED60 - push {r4, lr} - ldr r2, _0803EDE0 - ldr r1, _0803EDE4 - ldr r0, _0803EDE8 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r0, _0803EDEC - movs r4, #0 - strh r4, [r0] - ldr r0, _0803EDF0 - strh r4, [r0] - ldr r3, _0803EDF4 - ldr r0, [r3] - adds r2, r0, #0 - adds r2, #0x7c - ldr r1, _0803EDF8 - adds r0, #0x79 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - ldrb r1, [r2] - adds r0, r0, r1 - strb r0, [r2] - ldr r0, [r3] - adds r1, r0, #0 - adds r1, #0x7c - ldrb r0, [r1] - cmp r0, #0x14 - bls _0803EDA2 - movs r0, #0x14 - strb r0, [r1] -_0803EDA2: - ldr r0, [r3] - adds r2, r0, #0 - adds r2, #0x7b - ldr r1, _0803EDFC - adds r0, #0x79 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - ldrb r1, [r2] - adds r0, r0, r1 - strb r0, [r2] - ldr r0, [r3] - adds r1, r0, #0 - adds r1, #0x7b - ldrb r0, [r1] - cmp r0, #0x14 - bls _0803EDC8 - movs r0, #0x14 - strb r0, [r1] -_0803EDC8: - ldr r0, [r3] - adds r1, r0, #0 - adds r1, #0x79 - ldrb r0, [r1] - cmp r0, #2 - bhi _0803EE04 - adds r0, #1 - strb r0, [r1] - ldr r0, _0803EE00 - strb r4, [r0, #5] - b _0803EE0A - .align 2, 0 -_0803EDE0: .4byte gUnknown_2023EAF -_0803EDE4: .4byte gUnknown_2023D22 -_0803EDE8: .4byte gUnknown_2023D26 -_0803EDEC: .4byte gUnknown_2022AC8 -_0803EDF0: .4byte gUnknown_2022ACA -_0803EDF4: .4byte gUnknown_2024140 -_0803EDF8: .4byte gUnknown_82EC673 -_0803EDFC: .4byte gUnknown_82EC677 -_0803EE00: .4byte gUnknown_2023FD6 -_0803EE04: - ldr r1, _0803EE20 - movs r0, #1 - strb r0, [r1, #5] -_0803EE0A: - ldr r1, _0803EE24 - ldr r0, _0803EE28 - ldr r0, [r0, #4] - str r0, [r1] - ldr r1, _0803EE2C - movs r0, #0xa - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0803EE20: .4byte gUnknown_2023FD6 -_0803EE24: .4byte gUnknown_2023EB8 -_0803EE28: .4byte gUnknown_828A2E0 -_0803EE2C: .4byte gUnknown_2023D27 - thumb_func_end HandleAction_GoNear - - thumb_func_start HandleAction_SafariZoneRun -HandleAction_SafariZoneRun: @ 0x0803EE30 - push {r4, lr} - ldr r2, _0803EE58 - ldr r1, _0803EE5C - ldr r4, _0803EE60 - ldrb r0, [r4] - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r2] - movs r0, #0x11 - bl sub_080A306C - ldr r0, _0803EE64 - ldrb r0, [r0] - strb r0, [r4] - ldr r1, _0803EE68 - movs r0, #4 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0803EE58: .4byte gUnknown_2023EAF -_0803EE5C: .4byte gUnknown_2023D22 -_0803EE60: .4byte gUnknown_2023D26 -_0803EE64: .4byte gUnknown_2023D10 -_0803EE68: .4byte gUnknown_2023FDE - thumb_func_end HandleAction_SafariZoneRun - - thumb_func_start HandleAction_WallyBallThrow -HandleAction_WallyBallThrow: @ 0x0803EE6C - ldr r3, _0803EEB8 - ldr r1, _0803EEBC - ldr r0, _0803EEC0 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r2, [r0] - strb r2, [r3] - ldr r0, _0803EEC4 - movs r1, #0 - strh r1, [r0] - ldr r0, _0803EEC8 - strh r1, [r0] - ldr r1, _0803EECC - movs r0, #0xfd - strb r0, [r1] - movs r0, #7 - strb r0, [r1, #1] - strb r2, [r1, #2] - ldr r2, _0803EED0 - ldrb r0, [r3] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strb r0, [r1, #3] - movs r0, #0xff - strb r0, [r1, #4] - ldr r1, _0803EED4 - ldr r0, _0803EED8 - ldr r0, [r0, #0xc] - str r0, [r1] - ldr r1, _0803EEDC - movs r0, #0xa - strb r0, [r1] - ldr r1, _0803EEE0 - movs r0, #0xc - strb r0, [r1, #1] - bx lr - .align 2, 0 -_0803EEB8: .4byte gUnknown_2023EAF -_0803EEBC: .4byte gUnknown_2023D22 -_0803EEC0: .4byte gUnknown_2023D26 -_0803EEC4: .4byte gUnknown_2022AC8 -_0803EEC8: .4byte gUnknown_2022ACA -_0803EECC: .4byte gUnknown_2022C0C -_0803EED0: .4byte gUnknown_2023D12 -_0803EED4: .4byte gUnknown_2023EB8 -_0803EED8: .4byte gUnknown_828A2E0 -_0803EEDC: .4byte gUnknown_2023D27 -_0803EEE0: .4byte gUnknown_2023D1E - thumb_func_end HandleAction_WallyBallThrow - - thumb_func_start HandleAction_TryFinish -HandleAction_TryFinish: @ 0x0803EEE4 - push {lr} - bl HandleFaintedMonActions - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0803EF00 - ldr r0, _0803EF04 - ldr r0, [r0] - adds r0, #0x4d - strb r1, [r0] - ldr r1, _0803EF08 - movs r0, #0xc - strb r0, [r1] -_0803EF00: - pop {r0} - bx r0 - .align 2, 0 -_0803EF04: .4byte gUnknown_2024140 -_0803EF08: .4byte gUnknown_2023D27 - thumb_func_end HandleAction_TryFinish - - thumb_func_start HandleAction_NothingIsFainted -HandleAction_NothingIsFainted: @ 0x0803EF0C - ldr r1, _0803EF2C - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r3, _0803EF30 - ldr r2, _0803EF34 - ldrb r0, [r1] - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r3] - ldr r2, _0803EF38 - ldr r0, [r2] - ldr r1, _0803EF3C - ands r0, r1 - str r0, [r2] - bx lr - .align 2, 0 -_0803EF2C: .4byte gUnknown_2023D26 -_0803EF30: .4byte gUnknown_2023D27 -_0803EF34: .4byte gUnknown_2023D1E -_0803EF38: .4byte gUnknown_2023F24 -_0803EF3C: .4byte 0xF1E892AF - thumb_func_end HandleAction_NothingIsFainted - - thumb_func_start HandleAction_ActionFinished -HandleAction_ActionFinished: @ 0x0803EF40 - push {r4, r5, r6, lr} - ldr r1, _0803EFC8 - ldr r2, _0803EFCC - ldrb r0, [r2] - adds r0, r0, r1 - ldrb r0, [r0] - ldr r6, _0803EFD0 - ldr r1, [r6] - adds r0, r0, r1 - adds r0, #0x5c - movs r1, #6 - strb r1, [r0] - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - ldr r3, _0803EFD4 - ldr r1, _0803EFD8 - ldrb r0, [r2] - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r3] - bl SpecialStatusesClear - ldr r2, _0803EFDC - ldr r0, [r2] - ldr r1, _0803EFE0 - ands r0, r1 - str r0, [r2] - ldr r0, _0803EFE4 - movs r1, #0 - strh r1, [r0] - ldr r0, _0803EFE8 - movs r4, #0 - str r4, [r0] - ldr r0, _0803EFEC - strb r1, [r0] - ldr r5, _0803EFF0 - strb r1, [r5, #0x18] - strb r1, [r5, #0x19] - ldr r2, _0803EFF4 - ldr r3, _0803EFF8 - ldrb r0, [r3] - lsls r0, r0, #1 - adds r0, r0, r2 - strh r4, [r0] - ldr r2, _0803EFFC - ldrb r0, [r3] - lsls r0, r0, #1 - adds r0, r0, r2 - strh r4, [r0] - ldr r0, [r6] - strb r1, [r0, #0x13] - ldr r0, _0803F000 - strh r4, [r0] - strb r1, [r5, #0x14] - ldr r0, _0803F004 - strb r1, [r0, #3] - strb r1, [r0, #4] - strb r1, [r5, #0x16] - ldr r0, _0803F008 - ldr r0, [r0] - ldr r0, [r0, #8] - adds r0, #0x20 - strb r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0803EFC8: .4byte gUnknown_2023D22 -_0803EFCC: .4byte gUnknown_2023D26 -_0803EFD0: .4byte gUnknown_2024140 -_0803EFD4: .4byte gUnknown_2023D27 -_0803EFD8: .4byte gUnknown_2023D1E -_0803EFDC: .4byte gUnknown_2023F24 -_0803EFE0: .4byte 0xF1E892AF -_0803EFE4: .4byte gUnknown_2023E8E -_0803EFE8: .4byte gUnknown_2023E94 -_0803EFEC: .4byte gUnknown_2023F20 -_0803EFF0: .4byte gUnknown_2024118 -_0803EFF4: .4byte gUnknown_2023EF4 -_0803EFF8: .4byte gUnknown_2023EAF -_0803EFFC: .4byte gUnknown_2023EFC -_0803F000: .4byte gUnknown_20240A4 -_0803F004: .4byte gUnknown_2023FD6 -_0803F008: .4byte gUnknown_202414C - thumb_func_end HandleAction_ActionFinished - - thumb_func_start GetBattlerForBattleScript -GetBattlerForBattleScript: @ 0x0803F00C - push {lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r0, #0 - cmp r1, #0xe - bhi _0803F0BA - lsls r0, r1, #2 - ldr r1, _0803F024 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803F024: .4byte _0803F028 -_0803F028: @ jump table - .4byte _0803F064 @ case 0 - .4byte _0803F070 @ case 1 - .4byte _0803F07C @ case 2 - .4byte _0803F098 @ case 3 - .4byte _0803F0A4 @ case 4 - .4byte _0803F098 @ case 5 - .4byte _0803F0A4 @ case 6 - .4byte _0803F088 @ case 7 - .4byte _0803F0A4 @ case 8 - .4byte _0803F0A4 @ case 9 - .4byte _0803F08C @ case 10 - .4byte _0803F0A4 @ case 11 - .4byte _0803F0A8 @ case 12 - .4byte _0803F0AC @ case 13 - .4byte _0803F0B0 @ case 14 -_0803F064: - ldr r0, _0803F06C - ldrb r0, [r0] - b _0803F0BA - .align 2, 0 -_0803F06C: .4byte gUnknown_2023EB0 -_0803F070: - ldr r0, _0803F078 - ldrb r0, [r0] - b _0803F0BA - .align 2, 0 -_0803F078: .4byte gUnknown_2023EAF -_0803F07C: - ldr r0, _0803F084 - ldrb r0, [r0] - b _0803F0BA - .align 2, 0 -_0803F084: .4byte gUnknown_2023EB2 -_0803F088: - movs r0, #0 - b _0803F0BA -_0803F08C: - ldr r0, _0803F094 - ldrb r0, [r0, #0x17] - b _0803F0BA - .align 2, 0 -_0803F094: .4byte gUnknown_2024118 -_0803F098: - ldr r0, _0803F0A0 - ldrb r0, [r0] - b _0803F0BA - .align 2, 0 -_0803F0A0: .4byte gUnknown_2023EB1 -_0803F0A4: - movs r0, #0 - b _0803F0B2 -_0803F0A8: - movs r0, #1 - b _0803F0B2 -_0803F0AC: - movs r0, #2 - b _0803F0B2 -_0803F0B0: - movs r0, #3 -_0803F0B2: - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_0803F0BA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetBattlerForBattleScript - - thumb_func_start PressurePPLose -PressurePPLose: @ 0x0803F0C0 - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldr r1, _0803F0F0 - movs r4, #0x58 - muls r0, r4, r0 - adds r0, r0, r1 - adds r0, #0x20 - ldrb r0, [r0] - mov ip, r1 - cmp r0, #0x2e - bne _0803F172 - movs r3, #0 - adds r0, r5, #0 - muls r0, r4, r0 - adds r1, #0xc - adds r1, r0, r1 - b _0803F0FC - .align 2, 0 -_0803F0F0: .4byte gUnknown_2023D28 -_0803F0F4: - adds r1, #2 - adds r3, #1 - cmp r3, #3 - bgt _0803F102 -_0803F0FC: - ldrh r0, [r1] - cmp r0, r2 - bne _0803F0F4 -_0803F102: - cmp r3, #4 - beq _0803F172 - movs r7, #0x58 - adds r2, r5, #0 - muls r2, r7, r2 - adds r0, r3, r2 - mov r6, ip - adds r6, #0x24 - adds r1, r0, r6 - ldrb r0, [r1] - cmp r0, #0 - beq _0803F11E - subs r0, #1 - strb r0, [r1] -_0803F11E: - mov r0, ip - adds r0, #0x50 - adds r0, r2, r0 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xe - ands r0, r1 - cmp r0, #0 - bne _0803F172 - ldr r1, _0803F17C - lsls r0, r5, #3 - subs r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #0x18] - lsrs r1, r1, #4 - ldr r2, _0803F180 - lsls r0, r3, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _0803F172 - ldr r4, _0803F184 - strb r5, [r4] - adds r1, r3, #0 - adds r1, #9 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrb r0, [r4] - muls r0, r7, r0 - adds r0, r0, r6 - adds r0, r0, r3 - str r0, [sp] - movs r0, #0 - movs r2, #0 - movs r3, #1 - bl BtlController_EmitSetMonData - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_0803F172: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0803F17C: .4byte gUnknown_2023F60 -_0803F180: .4byte gUnknown_82FACB4 -_0803F184: .4byte gUnknown_2023D08 - thumb_func_end PressurePPLose - - thumb_func_start PressurePPLoseOnUsingImprison -PressurePPLoseOnUsingImprison: @ 0x0803F188 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r0, #4 - mov r8, r0 - adds r0, r5, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - movs r4, #0 - ldr r0, _0803F2A8 - ldrb r0, [r0] - cmp r4, r0 - bge _0803F230 - ldr r1, _0803F2AC - movs r0, #0x58 - adds r7, r5, #0 - muls r7, r0, r7 - adds r1, #0xc - mov sl, r1 -_0803F1BE: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r6, r4, #1 - cmp sb, r0 - beq _0803F226 - ldr r0, _0803F2AC - movs r3, #0x58 - adds r1, r4, #0 - muls r1, r3, r1 - adds r1, r1, r0 - adds r1, #0x20 - ldrb r1, [r1] - adds r4, r0, #0 - cmp r1, #0x2e - bne _0803F226 - movs r2, #0 - adds r0, r5, #0 - muls r0, r3, r0 - adds r1, r4, #0 - adds r1, #0xc - adds r0, r0, r1 - ldrh r0, [r0] - movs r1, #0x8f - lsls r1, r1, #1 - cmp r0, r1 - beq _0803F20E - adds r3, r1, #0 - mov r0, sl - adds r1, r7, r0 -_0803F200: - adds r1, #2 - adds r2, #1 - cmp r2, #3 - bgt _0803F20E - ldrh r0, [r1] - cmp r0, r3 - bne _0803F200 -_0803F20E: - cmp r2, #4 - beq _0803F226 - mov r8, r2 - adds r1, r2, r7 - adds r0, r4, #0 - adds r0, #0x24 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0 - beq _0803F226 - subs r0, #1 - strb r0, [r1] -_0803F226: - adds r4, r6, #0 - ldr r0, _0803F2A8 - ldrb r0, [r0] - cmp r4, r0 - blt _0803F1BE -_0803F230: - mov r1, r8 - cmp r1, #4 - beq _0803F298 - ldr r6, _0803F2AC - movs r3, #0x58 - adds r0, r5, #0 - muls r0, r3, r0 - adds r1, r6, #0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xe - ands r0, r1 - cmp r0, #0 - bne _0803F298 - ldr r1, _0803F2B0 - lsls r0, r5, #3 - subs r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #0x18] - lsrs r1, r1, #4 - ldr r2, _0803F2B4 - mov r4, r8 - lsls r0, r4, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _0803F298 - ldr r4, _0803F2B8 - strb r5, [r4] - mov r1, r8 - adds r1, #9 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrb r0, [r4] - muls r0, r3, r0 - adds r2, r6, #0 - adds r2, #0x24 - adds r0, r0, r2 - add r0, r8 - str r0, [sp] - movs r0, #0 - movs r2, #0 - movs r3, #1 - bl BtlController_EmitSetMonData - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_0803F298: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0803F2A8: .4byte gUnknown_2023D10 -_0803F2AC: .4byte gUnknown_2023D28 -_0803F2B0: .4byte gUnknown_2023F60 -_0803F2B4: .4byte gUnknown_82FACB4 -_0803F2B8: .4byte gUnknown_2023D08 - thumb_func_end PressurePPLoseOnUsingImprison - - thumb_func_start PressurePPLoseOnUsingPerishSong -PressurePPLoseOnUsingPerishSong: @ 0x0803F2BC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - movs r6, #4 - movs r1, #0 - ldr r0, _0803F3B4 - mov r8, r0 - ldrb r0, [r0] - cmp r1, r0 - bge _0803F33E - ldr r7, _0803F3B8 - movs r2, #0x58 - mov ip, r2 - mov r5, ip - muls r5, r3, r5 - adds r0, r7, #0 - adds r0, #0xc - adds r2, r5, r0 - mov sl, r2 - mov sb, r5 -_0803F2EE: - mov r0, ip - muls r0, r1, r0 - adds r0, r0, r7 - adds r0, #0x20 - ldrb r0, [r0] - adds r4, r1, #1 - cmp r0, #0x2e - bne _0803F334 - cmp r1, r3 - beq _0803F334 - movs r2, #0 - mov r1, sl - ldrh r0, [r1] - cmp r0, #0xc3 - beq _0803F31E - ldr r1, _0803F3BC - add r1, sb -_0803F310: - adds r1, #2 - adds r2, #1 - cmp r2, #3 - bgt _0803F31E - ldrh r0, [r1] - cmp r0, #0xc3 - bne _0803F310 -_0803F31E: - cmp r2, #4 - beq _0803F334 - adds r6, r2, #0 - adds r0, r6, r5 - ldr r2, _0803F3C0 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, #0 - beq _0803F334 - subs r0, #1 - strb r0, [r1] -_0803F334: - adds r1, r4, #0 - mov r0, r8 - ldrb r0, [r0] - cmp r1, r0 - blt _0803F2EE -_0803F33E: - cmp r6, #4 - beq _0803F3A2 - ldr r7, _0803F3B8 - movs r5, #0x58 - adds r0, r3, #0 - muls r0, r5, r0 - adds r1, r7, #0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xe - ands r0, r1 - cmp r0, #0 - bne _0803F3A2 - ldr r1, _0803F3C4 - lsls r0, r3, #3 - subs r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #0x18] - lsrs r1, r1, #4 - ldr r2, _0803F3C8 - lsls r0, r6, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _0803F3A2 - ldr r4, _0803F3CC - strb r3, [r4] - adds r1, r6, #0 - adds r1, #9 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrb r0, [r4] - muls r0, r5, r0 - adds r2, r7, #0 - adds r2, #0x24 - adds r0, r0, r2 - adds r0, r0, r6 - str r0, [sp] - movs r0, #0 - movs r2, #0 - movs r3, #1 - bl BtlController_EmitSetMonData - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_0803F3A2: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0803F3B4: .4byte gUnknown_2023D10 -_0803F3B8: .4byte gUnknown_2023D28 -_0803F3BC: .4byte gUnknown_2023D34 -_0803F3C0: .4byte gUnknown_2023D4C -_0803F3C4: .4byte gUnknown_2023F60 -_0803F3C8: .4byte gUnknown_82FACB4 -_0803F3CC: .4byte gUnknown_2023D08 - thumb_func_end PressurePPLoseOnUsingPerishSong - - thumb_func_start MarkAllBattlersForControllerExec -MarkAllBattlersForControllerExec: @ 0x0803F3D0 - push {r4, r5, lr} - ldr r0, _0803F400 - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _0803F410 - movs r2, #0 - ldr r4, _0803F404 - ldrb r0, [r4] - cmp r2, r0 - bge _0803F42E - ldr r3, _0803F408 - ldr r5, _0803F40C -_0803F3EC: - ldm r5!, {r1} - lsls r1, r1, #0x1c - ldr r0, [r3] - orrs r0, r1 - str r0, [r3] - adds r2, #1 - ldrb r0, [r4] - cmp r2, r0 - blt _0803F3EC - b _0803F42E - .align 2, 0 -_0803F400: .4byte gUnknown_2022C90 -_0803F404: .4byte gUnknown_2023D10 -_0803F408: .4byte gUnknown_2023D0C -_0803F40C: .4byte gUnknown_82FACB4 -_0803F410: - movs r2, #0 - ldr r4, _0803F434 - ldrb r0, [r4] - cmp r2, r0 - bge _0803F42E - ldr r3, _0803F438 - ldr r5, _0803F43C -_0803F41E: - ldr r0, [r3] - ldm r5!, {r1} - orrs r0, r1 - str r0, [r3] - adds r2, #1 - ldrb r0, [r4] - cmp r2, r0 - blt _0803F41E -_0803F42E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0803F434: .4byte gUnknown_2023D10 -_0803F438: .4byte gUnknown_2023D0C -_0803F43C: .4byte gUnknown_82FACB4 - thumb_func_end MarkAllBattlersForControllerExec - - thumb_func_start MarkBattlerForControllerExec -MarkBattlerForControllerExec: @ 0x0803F440 - push {lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r0, _0803F468 - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _0803F474 - ldr r2, _0803F46C - ldr r1, _0803F470 - lsls r0, r3, #2 - adds r0, r0, r1 - ldr r1, [r0] - lsls r1, r1, #0x1c - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - b _0803F484 - .align 2, 0 -_0803F468: .4byte gUnknown_2022C90 -_0803F46C: .4byte gUnknown_2023D0C -_0803F470: .4byte gUnknown_82FACB4 -_0803F474: - ldr r2, _0803F488 - ldr r1, _0803F48C - lsls r0, r3, #2 - adds r0, r0, r1 - ldr r1, [r2] - ldr r0, [r0] - orrs r1, r0 - str r1, [r2] -_0803F484: - pop {r0} - bx r0 - .align 2, 0 -_0803F488: .4byte gUnknown_2023D0C -_0803F48C: .4byte gUnknown_82FACB4 - thumb_func_end MarkBattlerForControllerExec - - thumb_func_start sub_0803F490 -sub_0803F490: @ 0x0803F490 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r4, #0 - ldr r5, _0803F4A4 - ldr r1, _0803F4A8 - lsls r0, r7, #2 - adds r6, r0, r1 - b _0803F4BA - .align 2, 0 -_0803F4A4: .4byte gUnknown_2023D0C -_0803F4A8: .4byte gUnknown_82FACB4 -_0803F4AC: - lsls r0, r4, #2 - ldr r1, [r6] - lsls r1, r0 - ldr r0, [r5] - orrs r0, r1 - str r0, [r5] - adds r4, #1 -_0803F4BA: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - blt _0803F4AC - ldr r2, _0803F4DC - movs r1, #0x80 - lsls r1, r1, #0x15 - lsls r1, r7 - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0803F4DC: .4byte gUnknown_2023D0C - thumb_func_end sub_0803F490 - - thumb_func_start CancelMultiTurnMoves -CancelMultiTurnMoves: @ 0x0803F4E0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0803F530 - movs r2, #0x58 - adds r3, r0, #0 - muls r3, r2, r3 - adds r1, #0x50 - adds r3, r3, r1 - ldr r1, [r3] - ldr r2, _0803F534 - ands r1, r2 - ldr r2, _0803F538 - ands r1, r2 - movs r2, #0x71 - rsbs r2, r2, #0 - ands r1, r2 - ldr r2, _0803F53C - ands r1, r2 - str r1, [r3] - ldr r1, _0803F540 - lsls r2, r0, #2 - adds r2, r2, r1 - ldr r1, [r2] - ldr r3, _0803F544 - ands r1, r3 - str r1, [r2] - ldr r2, _0803F548 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r2, [r1, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #0x11] - movs r0, #0 - strb r0, [r1, #0x10] - bx lr - .align 2, 0 -_0803F530: .4byte gUnknown_2023D28 -_0803F534: .4byte 0xFFFFEFFF -_0803F538: .4byte 0xFFFFF3FF -_0803F53C: .4byte 0xFFFFFCFF -_0803F540: .4byte gUnknown_2023F50 -_0803F544: .4byte 0xFFFBFF3F -_0803F548: .4byte gUnknown_2023F60 - thumb_func_end CancelMultiTurnMoves - - thumb_func_start WasUnableToUseMove -WasUnableToUseMove: @ 0x0803F54C - push {lr} - lsls r0, r0, #0x18 - ldr r1, _0803F598 - lsrs r0, r0, #0x14 - adds r1, r0, r1 - ldrb r0, [r1] - lsrs r0, r0, #7 - cmp r0, #0 - bne _0803F592 - ldrb r2, [r1, #1] - lsls r0, r2, #0x1e - cmp r0, #0 - blt _0803F592 - lsls r0, r2, #0x1a - cmp r0, #0 - blt _0803F592 - lsls r0, r2, #0x19 - cmp r0, #0 - blt _0803F592 - lsrs r0, r2, #7 - cmp r0, #0 - bne _0803F592 - ldrb r1, [r1, #2] - lsls r0, r1, #0x1f - cmp r0, #0 - bne _0803F592 - lsls r0, r1, #0x1e - cmp r0, #0 - blt _0803F592 - lsls r0, r1, #0x1d - cmp r0, #0 - blt _0803F592 - lsls r0, r2, #0x1f - cmp r0, #0 - beq _0803F59C -_0803F592: - movs r0, #1 - b _0803F59E - .align 2, 0 -_0803F598: .4byte gUnknown_2023FE0 -_0803F59C: - movs r0, #0 -_0803F59E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end WasUnableToUseMove - - thumb_func_start PrepareStringBattle -PrepareStringBattle: @ 0x0803F5A4 - push {r4, lr} - adds r2, r0, #0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldr r4, _0803F5C4 - strb r1, [r4] - movs r0, #0 - adds r1, r2, #0 - bl BtlController_EmitPrintSelectionString - ldrb r0, [r4] - bl MarkBattlerForControllerExec - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0803F5C4: .4byte gUnknown_2023D08 - thumb_func_end PrepareStringBattle - - thumb_func_start ResetSentPokesToOpponentValue -ResetSentPokesToOpponentValue: @ 0x0803F5C8 - push {r4, r5, r6, lr} - movs r3, #0 - ldr r0, _0803F61C - strb r3, [r0] - strb r3, [r0, #1] - movs r1, #0 - ldr r0, _0803F620 - ldrb r2, [r0] - adds r6, r0, #0 - cmp r1, r2 - bge _0803F5F6 - ldr r5, _0803F624 - adds r4, r2, #0 - ldr r2, _0803F628 -_0803F5E4: - ldrh r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r0, [r0] - orrs r3, r0 - adds r2, #4 - adds r1, #2 - cmp r1, r4 - blt _0803F5E4 -_0803F5F6: - movs r1, #1 - adds r2, r6, #0 - ldrb r0, [r2] - cmp r1, r0 - bge _0803F616 - ldr r5, _0803F61C - movs r4, #2 -_0803F604: - adds r0, r1, #0 - ands r0, r4 - asrs r0, r0, #1 - adds r0, r0, r5 - strb r3, [r0] - adds r1, #2 - ldrb r0, [r2] - cmp r1, r0 - blt _0803F604 -_0803F616: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0803F61C: .4byte gUnknown_20240A2 -_0803F620: .4byte gUnknown_2023D10 -_0803F624: .4byte gUnknown_82FACB4 -_0803F628: .4byte gUnknown_2023D12 - thumb_func_end ResetSentPokesToOpponentValue - - thumb_func_start sub_0803F62C -sub_0803F62C: @ 0x0803F62C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r4, #0 - adds r0, r5, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0803F690 - movs r0, #2 - ands r0, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x19 - mov ip, r0 - ldr r1, _0803F69C - adds r0, r0, r1 - strb r4, [r0] - adds r5, r4, #0 - ldr r0, _0803F6A0 - ldrb r2, [r0] - mov r8, r1 - cmp r4, r2 - bge _0803F68A - ldr r0, _0803F6A4 - ldrb r7, [r0] - ldr r1, _0803F6A8 - adds r6, r2, #0 - ldr r3, _0803F6AC - adds r2, r1, #0 -_0803F66E: - ldr r0, [r2] - ands r0, r7 - cmp r0, #0 - bne _0803F680 - ldrh r0, [r3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - orrs r4, r0 -_0803F680: - adds r3, #4 - adds r2, #8 - adds r5, #2 - cmp r5, r6 - blt _0803F66E -_0803F68A: - mov r0, ip - add r0, r8 - strb r4, [r0] -_0803F690: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0803F69C: .4byte gUnknown_20240A2 -_0803F6A0: .4byte gUnknown_2023D10 -_0803F6A4: .4byte gUnknown_2023EB4 -_0803F6A8: .4byte gUnknown_82FACB4 -_0803F6AC: .4byte gUnknown_2023D12 - thumb_func_end sub_0803F62C - - thumb_func_start sub_0803F6B0 -sub_0803F6B0: @ 0x0803F6B0 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0803F6CC - adds r0, r4, #0 - bl sub_0803F62C - b _0803F702 -_0803F6CC: - movs r3, #1 - ldr r5, _0803F708 - ldrb r0, [r5] - cmp r3, r0 - bge _0803F702 - ldr r0, _0803F70C - mov ip, r0 - movs r7, #2 - ldr r6, _0803F710 - ldr r1, _0803F714 - lsls r0, r4, #1 - adds r4, r0, r1 -_0803F6E4: - adds r2, r3, #0 - ands r2, r7 - asrs r2, r2, #1 - add r2, ip - ldrh r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - adds r3, #1 - ldrb r0, [r5] - cmp r3, r0 - blt _0803F6E4 -_0803F702: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0803F708: .4byte gUnknown_2023D10 -_0803F70C: .4byte gUnknown_20240A2 -_0803F710: .4byte gUnknown_82FACB4 -_0803F714: .4byte gUnknown_2023D12 - thumb_func_end sub_0803F6B0 - - thumb_func_start BattleScriptPush -BattleScriptPush: @ 0x0803F718 - push {r4, lr} - ldr r1, _0803F738 - ldr r1, [r1] - ldr r3, [r1, #8] - adds r4, r3, #0 - adds r4, #0x20 - ldrb r1, [r4] - adds r2, r1, #1 - strb r2, [r4] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x16 - adds r3, r3, r1 - str r0, [r3] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0803F738: .4byte gUnknown_202414C - thumb_func_end BattleScriptPush - - thumb_func_start BattleScriptPushCursor -BattleScriptPushCursor: @ 0x0803F73C - ldr r0, _0803F75C - ldr r0, [r0] - ldr r2, [r0, #8] - adds r3, r2, #0 - adds r3, #0x20 - ldrb r0, [r3] - adds r1, r0, #1 - strb r1, [r3] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r2, r2, r0 - ldr r0, _0803F760 - ldr r0, [r0] - str r0, [r2] - bx lr - .align 2, 0 -_0803F75C: .4byte gUnknown_202414C -_0803F760: .4byte gUnknown_2023EB8 - thumb_func_end BattleScriptPushCursor - - thumb_func_start BattleScriptPop -BattleScriptPop: @ 0x0803F764 - ldr r3, _0803F784 - ldr r0, _0803F788 - ldr r0, [r0] - ldr r1, [r0, #8] - adds r2, r1, #0 - adds r2, #0x20 - ldrb r0, [r2] - subs r0, #1 - strb r0, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r3] - bx lr - .align 2, 0 -_0803F784: .4byte gUnknown_2023EB8 -_0803F788: .4byte gUnknown_202414C - thumb_func_end BattleScriptPop - - thumb_func_start TrySetCantSelectMoveBattleScript -TrySetCantSelectMoveBattleScript: @ 0x0803F78C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r6, #0 - ldr r2, _0803F80C - ldr r1, _0803F810 - ldr r3, _0803F814 - ldrb r4, [r3] - lsls r0, r4, #9 - adds r1, #2 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #1 - movs r1, #0x58 - muls r1, r4, r1 - adds r0, r0, r1 - adds r2, #0xc - adds r0, r0, r2 - ldrh r5, [r0] - ldr r1, _0803F818 - lsls r0, r4, #1 - adds r0, #0xc8 - ldr r1, [r1] - adds r1, r1, r0 - mov r8, r1 - ldr r1, _0803F81C - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0, #4] - adds r7, r3, #0 - adds r3, r1, #0 - cmp r0, r5 - bne _0803F846 - cmp r5, #0 - beq _0803F846 - ldr r0, _0803F820 - strb r4, [r0, #0x17] - ldr r0, _0803F824 - strh r5, [r0] - ldr r0, _0803F828 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xa - ands r0, r1 - cmp r0, #0 - beq _0803F838 - ldr r1, _0803F82C - ldrb r0, [r7] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0803F830 - str r1, [r0] - ldr r0, _0803F834 - ldrb r1, [r7] - lsls r1, r1, #4 - adds r1, r1, r0 - ldrb r0, [r1, #2] - movs r2, #0x10 - orrs r0, r2 - strb r0, [r1, #2] - b _0803F846 - .align 2, 0 -_0803F80C: .4byte gUnknown_2023D28 -_0803F810: .4byte gUnknown_2023508 -_0803F814: .4byte gUnknown_2023D08 -_0803F818: .4byte gUnknown_2024140 -_0803F81C: .4byte gUnknown_2023F60 -_0803F820: .4byte gUnknown_2024118 -_0803F824: .4byte gUnknown_2023E8E -_0803F828: .4byte gUnknown_2022C90 -_0803F82C: .4byte gUnknown_2023ED4 -_0803F830: .4byte gUnknown_82893B2 -_0803F834: .4byte gUnknown_2023FE0 -_0803F838: - ldr r0, _0803F89C - ldrb r1, [r7] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, _0803F8A0 - str r0, [r1] - movs r6, #1 -_0803F846: - ldr r1, _0803F8A4 - ldrb r2, [r7] - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r5, r0 - bne _0803F8D0 - cmp r5, #0xa5 - beq _0803F8D0 - ldr r1, _0803F8A8 - movs r0, #0x58 - muls r0, r2, r0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #0 - bge _0803F8D0 - adds r0, r2, #0 - bl CancelMultiTurnMoves - ldr r0, _0803F8AC - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xa - ands r0, r1 - cmp r0, #0 - beq _0803F8BC - ldr r1, _0803F8B0 - ldrb r0, [r7] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0803F8B4 - str r1, [r0] - ldr r0, _0803F8B8 - ldrb r1, [r7] - lsls r1, r1, #4 - adds r1, r1, r0 - ldrb r0, [r1, #2] - movs r2, #0x10 - orrs r0, r2 - strb r0, [r1, #2] - b _0803F8CE - .align 2, 0 -_0803F89C: .4byte gUnknown_2023EC4 -_0803F8A0: .4byte gUnknown_82893A7 -_0803F8A4: .4byte gUnknown_2023EEC -_0803F8A8: .4byte gUnknown_2023D28 -_0803F8AC: .4byte gUnknown_2022C90 -_0803F8B0: .4byte gUnknown_2023ED4 -_0803F8B4: .4byte gUnknown_8289620 -_0803F8B8: .4byte gUnknown_2023FE0 -_0803F8BC: - ldr r1, _0803F924 - ldrb r0, [r7] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0803F928 - str r1, [r0] - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_0803F8CE: - ldr r3, _0803F92C -_0803F8D0: - ldrb r0, [r7] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrb r0, [r1, #0x13] - lsls r0, r0, #0x1c - cmp r0, #0 - beq _0803F95A - ldr r0, _0803F930 - lsls r1, r5, #1 - adds r1, r1, r5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #1] - cmp r0, #0 - bne _0803F95A - ldr r0, _0803F934 - strh r5, [r0] - ldr r0, _0803F938 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xa - ands r0, r1 - cmp r0, #0 - beq _0803F948 - ldr r1, _0803F93C - ldrb r0, [r7] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0803F940 - str r1, [r0] - ldr r0, _0803F944 - ldrb r1, [r7] - lsls r1, r1, #4 - adds r1, r1, r0 - ldrb r0, [r1, #2] - movs r2, #0x10 - orrs r0, r2 - strb r0, [r1, #2] - b _0803F95A - .align 2, 0 -_0803F924: .4byte gUnknown_2023EC4 -_0803F928: .4byte gUnknown_8289611 -_0803F92C: .4byte gUnknown_2023F60 -_0803F930: .4byte gUnknown_82ED220 -_0803F934: .4byte gUnknown_2023E8E -_0803F938: .4byte gUnknown_2022C90 -_0803F93C: .4byte gUnknown_2023ED4 -_0803F940: .4byte gUnknown_8289637 -_0803F944: .4byte gUnknown_2023FE0 -_0803F948: - ldr r1, _0803F99C - ldrb r0, [r7] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0803F9A0 - str r1, [r0] - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_0803F95A: - ldr r4, _0803F9A4 - ldrb r0, [r4] - adds r1, r5, #0 - bl GetImprisonedMovesCount - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0803F9CE - ldr r0, _0803F9A8 - strh r5, [r0] - ldr r0, _0803F9AC - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xa - ands r0, r1 - cmp r0, #0 - beq _0803F9BC - ldr r1, _0803F9B0 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0803F9B4 - str r1, [r0] - ldr r0, _0803F9B8 - ldrb r1, [r4] - lsls r1, r1, #4 - adds r1, r1, r0 - ldrb r0, [r1, #2] - movs r2, #0x10 - orrs r0, r2 - strb r0, [r1, #2] - b _0803F9CE - .align 2, 0 -_0803F99C: .4byte gUnknown_2023EC4 -_0803F9A0: .4byte gUnknown_8289628 -_0803F9A4: .4byte gUnknown_2023D08 -_0803F9A8: .4byte gUnknown_2023E8E -_0803F9AC: .4byte gUnknown_2022C90 -_0803F9B0: .4byte gUnknown_2023ED4 -_0803F9B4: .4byte gUnknown_828970D -_0803F9B8: .4byte gUnknown_2023FE0 -_0803F9BC: - ldr r1, _0803F9F0 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0803F9F4 - str r1, [r0] - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_0803F9CE: - ldr r1, _0803F9F8 - ldr r0, _0803F9FC - ldrb r2, [r0] - movs r0, #0x58 - muls r0, r2, r0 - adds r1, r0, r1 - ldrh r0, [r1, #0x2e] - cmp r0, #0xaf - bne _0803FA04 - ldr r1, _0803FA00 - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r4, [r0, #7] - b _0803FA0E - .align 2, 0 -_0803F9F0: .4byte gUnknown_2023EC4 -_0803F9F4: .4byte gUnknown_8289709 -_0803F9F8: .4byte gUnknown_2023D28 -_0803F9FC: .4byte gUnknown_2023D08 -_0803FA00: .4byte gUnknown_20240A8 -_0803FA04: - ldrh r0, [r1, #0x2e] - bl sub_080D6CF8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_0803FA0E: - ldr r2, _0803FA68 - ldr r1, _0803FA6C - ldrb r0, [r1] - strb r0, [r2] - ldr r0, _0803FA70 - mov ip, r0 - adds r7, r1, #0 - cmp r4, #0x1d - bne _0803FA98 - mov r0, r8 - ldrh r1, [r0] - adds r2, r1, #0 - cmp r2, #0 - beq _0803FA98 - ldr r0, _0803FA74 - cmp r2, r0 - beq _0803FA98 - cmp r2, r5 - beq _0803FA98 - ldr r0, _0803FA78 - strh r1, [r0] - ldr r2, _0803FA7C - ldrb r1, [r7] - movs r0, #0x58 - muls r0, r1, r0 - add r0, ip - ldrh r0, [r0, #0x2e] - strh r0, [r2] - ldr r0, _0803FA80 - ldr r1, [r0] - movs r0, #0x80 - lsls r0, r0, #0xa - ands r1, r0 - ldrb r2, [r7] - cmp r1, #0 - beq _0803FA88 - ldr r0, _0803FA84 - lsls r1, r2, #4 - adds r1, r1, r0 - ldrb r0, [r1, #2] - movs r2, #0x10 - orrs r0, r2 - strb r0, [r1, #2] - b _0803FA98 - .align 2, 0 -_0803FA68: .4byte gUnknown_2023EB3 -_0803FA6C: .4byte gUnknown_2023D08 -_0803FA70: .4byte gUnknown_2023D28 -_0803FA74: .4byte 0x0000FFFF -_0803FA78: .4byte gUnknown_2023E8E -_0803FA7C: .4byte gUnknown_2023EAC -_0803FA80: .4byte gUnknown_2022C90 -_0803FA84: .4byte gUnknown_2023FE0 -_0803FA88: - ldr r1, _0803FAD4 - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r1, _0803FAD8 - str r1, [r0] - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_0803FA98: - ldr r0, _0803FADC - ldrb r3, [r7] - lsls r1, r3, #9 - adds r0, #2 - adds r1, r1, r0 - movs r0, #0x58 - muls r0, r3, r0 - ldrb r1, [r1] - adds r0, r0, r1 - mov r1, ip - adds r1, #0x24 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _0803FAF8 - ldr r0, _0803FAE0 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xa - ands r0, r1 - cmp r0, #0 - beq _0803FAE8 - ldr r0, _0803FAE4 - lsls r1, r3, #4 - adds r1, r1, r0 - ldrb r0, [r1, #2] - movs r2, #0x10 - orrs r0, r2 - strb r0, [r1, #2] - b _0803FAF8 - .align 2, 0 -_0803FAD4: .4byte gUnknown_2023EC4 -_0803FAD8: .4byte gUnknown_8289D9A -_0803FADC: .4byte gUnknown_2023508 -_0803FAE0: .4byte gUnknown_2022C90 -_0803FAE4: .4byte gUnknown_2023FE0 -_0803FAE8: - ldr r1, _0803FB04 - lsls r0, r3, #2 - adds r0, r0, r1 - ldr r1, _0803FB08 - str r1, [r0] - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_0803FAF8: - adds r0, r6, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0803FB04: .4byte gUnknown_2023EC4 -_0803FB08: .4byte gUnknown_82895FE - thumb_func_end TrySetCantSelectMoveBattleScript - - thumb_func_start CheckMoveLimitations -CheckMoveLimitations: @ 0x0803FB0C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r3, r2, #0x18 - ldr r1, _0803FB50 - lsls r0, r7, #1 - adds r0, #0xc8 - ldr r1, [r1] - adds r1, r1, r0 - str r1, [sp, #4] - ldr r1, _0803FB54 - movs r0, #0x58 - muls r0, r7, r0 - adds r1, r0, r1 - ldrh r0, [r1, #0x2e] - cmp r0, #0xaf - bne _0803FB5C - ldr r2, _0803FB58 - lsls r1, r7, #3 - subs r0, r1, r7 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #7] - str r0, [sp] - b _0803FB6E - .align 2, 0 -_0803FB50: .4byte gUnknown_2024140 -_0803FB54: .4byte gUnknown_2023D28 -_0803FB58: .4byte gUnknown_20240A8 -_0803FB5C: - ldrh r0, [r1, #0x2e] - str r3, [sp, #0x14] - bl sub_080D6CF8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - lsls r1, r7, #3 - ldr r3, [sp, #0x14] -_0803FB6E: - ldr r0, _0803FCE8 - strb r7, [r0] - movs r0, #0 - mov sb, r0 - lsls r2, r7, #1 - str r2, [sp, #0xc] - ldr r5, _0803FCEC - mov ip, r5 - ldr r0, _0803FCF0 - movs r2, #0x58 - adds r6, r7, #0 - muls r6, r2, r6 - str r6, [sp, #8] - ldr r2, _0803FCF4 - adds r5, r6, r2 - movs r6, #0 - str r6, [sp, #0x10] - mov sl, r0 - subs r0, r1, r7 - lsls r0, r0, #2 - mov r8, r0 - ldr r6, _0803FCF8 -_0803FB9A: - ldrh r0, [r5] - cmp r0, #0 - bne _0803FBB0 - movs r0, #1 - ands r0, r3 - cmp r0, #0 - beq _0803FBB0 - ldr r0, [r6] - orrs r4, r0 - lsls r0, r4, #0x18 - lsrs r4, r0, #0x18 -_0803FBB0: - ldr r0, [sp, #8] - add r0, sb - mov r1, sl - adds r1, #0x24 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _0803FBD0 - movs r0, #2 - ands r0, r3 - cmp r0, #0 - beq _0803FBD0 - ldr r0, [r6] - orrs r4, r0 - lsls r0, r4, #0x18 - lsrs r4, r0, #0x18 -_0803FBD0: - mov r1, r8 - add r1, ip - ldrh r0, [r5] - ldrh r1, [r1, #4] - cmp r0, r1 - bne _0803FBEC - movs r0, #4 - ands r0, r3 - cmp r0, #0 - beq _0803FBEC - ldr r0, [r6] - orrs r4, r0 - lsls r0, r4, #0x18 - lsrs r4, r0, #0x18 -_0803FBEC: - movs r0, #0x58 - adds r2, r7, #0 - muls r2, r0, r2 - ldr r1, [sp, #0x10] - adds r0, r1, r2 - ldr r1, _0803FCF4 - adds r0, r0, r1 - mov ip, r0 - ldr r1, _0803FCFC - ldr r0, [sp, #0xc] - adds r1, r0, r1 - str r1, [sp, #0x18] - mov r1, ip - ldrh r1, [r1] - mov ip, r1 - ldr r0, [sp, #0x18] - ldrh r0, [r0] - cmp ip, r0 - bne _0803FC2E - movs r0, #8 - ands r0, r3 - cmp r0, #0 - beq _0803FC2E - mov r0, sl - adds r0, #0x50 - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, #0 - bge _0803FC2E - ldr r0, [r6] - orrs r4, r0 - lsls r0, r4, #0x18 - lsrs r4, r0, #0x18 -_0803FC2E: - ldr r0, _0803FCEC - add r0, r8 - ldrb r0, [r0, #0x13] - lsls r0, r0, #0x1c - cmp r0, #0 - beq _0803FC5C - movs r0, #0x10 - ands r0, r3 - cmp r0, #0 - beq _0803FC5C - ldr r2, _0803FD00 - ldrh r1, [r5] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #1] - cmp r0, #0 - bne _0803FC5C - ldr r0, [r6] - orrs r4, r0 - lsls r0, r4, #0x18 - lsrs r4, r0, #0x18 -_0803FC5C: - ldrh r1, [r5] - adds r0, r7, #0 - str r3, [sp, #0x14] - bl GetImprisonedMovesCount - lsls r0, r0, #0x18 - ldr r3, [sp, #0x14] - cmp r0, #0 - beq _0803FC7E - movs r0, #0x20 - ands r0, r3 - cmp r0, #0 - beq _0803FC7E - ldr r0, [r6] - orrs r4, r0 - lsls r0, r4, #0x18 - lsrs r4, r0, #0x18 -_0803FC7E: - ldr r1, _0803FCEC - mov r0, r8 - adds r2, r0, r1 - ldrb r0, [r2, #0xe] - lsls r0, r0, #0x1c - mov ip, r1 - cmp r0, #0 - beq _0803FC9E - ldrh r0, [r2, #6] - ldrh r1, [r5] - cmp r0, r1 - beq _0803FC9E - ldr r0, [r6] - orrs r4, r0 - lsls r0, r4, #0x18 - lsrs r4, r0, #0x18 -_0803FC9E: - ldr r2, [sp] - cmp r2, #0x1d - bne _0803FCC0 - ldr r0, [sp, #4] - ldrh r1, [r0] - cmp r1, #0 - beq _0803FCC0 - ldr r0, _0803FD04 - cmp r1, r0 - beq _0803FCC0 - ldrh r2, [r5] - cmp r1, r2 - beq _0803FCC0 - ldr r0, [r6] - orrs r4, r0 - lsls r0, r4, #0x18 - lsrs r4, r0, #0x18 -_0803FCC0: - adds r6, #4 - adds r5, #2 - ldr r0, [sp, #0x10] - adds r0, #2 - str r0, [sp, #0x10] - movs r1, #1 - add sb, r1 - mov r2, sb - cmp r2, #3 - bgt _0803FCD6 - b _0803FB9A -_0803FCD6: - adds r0, r4, #0 - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0803FCE8: .4byte gUnknown_2023EB3 -_0803FCEC: .4byte gUnknown_2023F60 -_0803FCF0: .4byte gUnknown_2023D28 -_0803FCF4: .4byte gUnknown_2023D34 -_0803FCF8: .4byte gUnknown_82FACB4 -_0803FCFC: .4byte gUnknown_2023EEC -_0803FD00: .4byte gUnknown_82ED220 -_0803FD04: .4byte 0x0000FFFF - thumb_func_end CheckMoveLimitations - - thumb_func_start AreAllMovesUnusable -AreAllMovesUnusable: @ 0x0803FD08 - push {r4, lr} - ldr r4, _0803FD3C - ldrb r0, [r4] - movs r1, #0 - movs r2, #0xff - bl CheckMoveLimitations - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0xf - bne _0803FD4C - ldr r0, _0803FD40 - ldrb r1, [r4] - lsls r1, r1, #4 - adds r1, r1, r0 - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - ldr r1, _0803FD44 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0803FD48 - str r1, [r0] - b _0803FD5E - .align 2, 0 -_0803FD3C: .4byte gUnknown_2023D08 -_0803FD40: .4byte gUnknown_2023FE0 -_0803FD44: .4byte gUnknown_2023EC4 -_0803FD48: .4byte gUnknown_82895FA -_0803FD4C: - ldr r0, _0803FD6C - ldrb r1, [r4] - lsls r1, r1, #4 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] -_0803FD5E: - movs r0, #0 - cmp r3, #0xf - bne _0803FD66 - movs r0, #1 -_0803FD66: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0803FD6C: .4byte gUnknown_2023FE0 - thumb_func_end AreAllMovesUnusable - - thumb_func_start GetImprisonedMovesCount -GetImprisonedMovesCount: @ 0x0803FD70 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - movs r6, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - movs r4, #0 - ldr r0, _0803FE04 - ldrb r0, [r0] - cmp r6, r0 - bge _0803FDF4 - ldr r7, _0803FE08 - mov r8, r7 -_0803FD9A: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r3, r4, #1 - cmp sb, r0 - beq _0803FDEA - ldr r1, _0803FE0C - lsls r0, r4, #2 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #6 - ands r0, r1 - cmp r0, #0 - beq _0803FDEA - movs r2, #0 - movs r0, #0x58 - adds r1, r4, #0 - muls r1, r0, r1 - adds r0, r1, r7 - ldrh r0, [r0] - cmp r5, r0 - beq _0803FDE0 - mov r4, r8 - adds r0, r1, r4 -_0803FDD2: - adds r0, #2 - adds r2, #1 - cmp r2, #3 - bgt _0803FDEA - ldrh r1, [r0] - cmp r5, r1 - bne _0803FDD2 -_0803FDE0: - cmp r2, #3 - bgt _0803FDEA - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_0803FDEA: - adds r4, r3, #0 - ldr r0, _0803FE04 - ldrb r0, [r0] - cmp r4, r0 - blt _0803FD9A -_0803FDF4: - adds r0, r6, #0 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0803FE04: .4byte gUnknown_2023D10 -_0803FE08: .4byte gUnknown_2023D34 -_0803FE0C: .4byte gUnknown_2023F50 - thumb_func_end GetImprisonedMovesCount - - thumb_func_start DoFieldEndTurnEffects -DoFieldEndTurnEffects: @ 0x0803FE10 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - movs r0, #0 - mov sb, r0 - ldr r1, _0803FEB4 - mov r2, sb - strb r2, [r1] - ldr r0, _0803FEB8 - ldrb r4, [r0] - adds r6, r1, #0 - mov sl, r0 - ldr r7, _0803FEBC - ldr r3, _0803FEC0 - mov ip, r3 - cmp sb, r4 - bhs _0803FE64 - ldr r2, _0803FEC4 - ldrb r1, [r2] - ldr r5, _0803FEC8 - ldr r0, [r5] - ands r1, r0 - cmp r1, #0 - beq _0803FE64 - adds r3, r6, #0 -_0803FE46: - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r4 - bhs _0803FE64 - ldrb r0, [r2] - ldrb r1, [r6] - lsls r1, r1, #2 - adds r1, r1, r5 - ldr r1, [r1] - ands r0, r1 - cmp r0, #0 - bne _0803FE46 -_0803FE64: - movs r0, #0 - strb r0, [r7] - mov r0, sl - ldrb r4, [r0] - cmp r4, #0 - beq _0803FE9E - ldr r2, _0803FEC4 - ldrb r1, [r2] - ldr r5, _0803FEC8 - ldr r0, [r5] - ands r1, r0 - cmp r1, #0 - beq _0803FE9E - adds r3, r7, #0 -_0803FE80: - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r4 - bhs _0803FE9E - ldrb r0, [r2] - ldrb r1, [r7] - lsls r1, r1, #2 - adds r1, r1, r5 - ldr r1, [r1] - ands r0, r1 - cmp r0, #0 - bne _0803FE80 -_0803FE9E: - mov r1, ip - ldr r0, [r1] - ldrb r0, [r0, #3] - cmp r0, #0xa - bls _0803FEAA - b _08040536 -_0803FEAA: - lsls r0, r0, #2 - ldr r1, _0803FECC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803FEB4: .4byte gUnknown_2023EAF -_0803FEB8: .4byte gUnknown_2023D10 -_0803FEBC: .4byte gUnknown_2023EB0 -_0803FEC0: .4byte gUnknown_2024140 -_0803FEC4: .4byte gUnknown_2023EB4 -_0803FEC8: .4byte gUnknown_82FACB4 -_0803FECC: .4byte _0803FED0 -_0803FED0: @ jump table - .4byte _0803FEFC @ case 0 - .4byte _0803FF82 @ case 1 - .4byte _08040048 @ case 2 - .4byte _08040114 @ case 3 - .4byte _080401F0 @ case 4 - .4byte _080402A8 @ case 5 - .4byte _0804035C @ case 6 - .4byte _080403E0 @ case 7 - .4byte _08040450 @ case 8 - .4byte _080404A8 @ case 9 - .4byte _0804052C @ case 10 -_0803FEFC: - movs r5, #0 - ldr r1, _0803FF1C - mov sl, r1 - ldrb r2, [r1] - cmp r5, r2 - bge _0803FF16 - ldr r2, _0803FF20 -_0803FF0A: - adds r0, r5, r2 - strb r5, [r0] - adds r5, #1 - ldrb r3, [r1] - cmp r5, r3 - blt _0803FF0A -_0803FF16: - movs r5, #0 - b _0803FF64 - .align 2, 0 -_0803FF1C: .4byte gUnknown_2023D10 -_0803FF20: .4byte gUnknown_2023D22 -_0803FF24: - adds r4, r5, #1 - adds r6, r4, #0 - ldrb r1, [r1] - cmp r6, r1 - bge _0803FF62 - ldr r7, _08040020 - ldr r0, _08040024 - mov sl, r0 - lsls r1, r5, #0x18 - mov r8, r1 -_0803FF38: - adds r0, r5, r7 - ldrb r0, [r0] - adds r1, r4, r7 - ldrb r1, [r1] - movs r2, #0 - bl GetWhoStrikesFirst - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0803FF58 - lsls r1, r4, #0x18 - lsrs r1, r1, #0x18 - mov r2, r8 - lsrs r0, r2, #0x18 - bl SwapTurnOrder -_0803FF58: - adds r4, #1 - ldr r0, _08040024 - ldrb r0, [r0] - cmp r4, r0 - blt _0803FF38 -_0803FF62: - adds r5, r6, #0 -_0803FF64: - mov r1, sl - ldrb r0, [r1] - subs r0, #1 - cmp r5, r0 - blt _0803FF24 - ldr r2, _08040028 - ldr r1, [r2] - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] - ldr r0, [r2] - adds r0, #0xdb - movs r1, #0 - strb r1, [r0] - mov ip, r2 -_0803FF82: - mov r1, ip - ldr r0, [r1] - adds r0, #0xdb - ldrb r0, [r0] - cmp r0, #1 - bls _0803FF90 - b _0804026C -_0803FF90: - ldr r3, _0804002C - mov r8, r3 - movs r7, #0 - ldr r6, _08040030 - ldr r5, _08040034 -_0803FF9A: - ldr r0, [r1] - adds r0, #0xdb - ldrb r4, [r0] - ldr r2, _08040038 - lsls r1, r4, #1 - adds r0, r1, r4 - lsls r0, r0, #2 - adds r2, r0, r2 - ldrb r0, [r2, #1] - strb r0, [r6] - mov r3, r8 - strb r0, [r3] - ldr r0, _0804003C - adds r3, r1, r0 - ldrh r1, [r3] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0803FFFC - ldrb r0, [r2] - subs r0, #1 - strb r0, [r2] - movs r4, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803FFFC - ldrh r0, [r3] - ldr r2, _08040040 - adds r1, r2, #0 - ands r0, r1 - strh r0, [r3] - ldr r0, _08040044 - bl BattleScriptExecute - movs r0, #0xfd - strb r0, [r5] - movs r0, #2 - strb r0, [r5, #1] - movs r0, #0x73 - strb r0, [r5, #2] - strb r7, [r5, #3] - ldrb r0, [r5, #4] - orrs r0, r4 - strb r0, [r5, #4] - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 -_0803FFFC: - ldr r2, _08040028 - ldr r1, [r2] - adds r1, #0xdb - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - mov ip, r2 - mov r3, sb - cmp r3, #0 - beq _08040012 - b _0804053E -_08040012: - mov r1, ip - ldr r0, [r1] - adds r0, #0xdb - ldrb r0, [r0] - cmp r0, #1 - bls _0803FF9A - b _0804026C - .align 2, 0 -_08040020: .4byte gUnknown_2023D22 -_08040024: .4byte gUnknown_2023D10 -_08040028: .4byte gUnknown_2024140 -_0804002C: .4byte gUnknown_2023D08 -_08040030: .4byte gUnknown_2023EAF -_08040034: .4byte gUnknown_2022C0C -_08040038: .4byte gUnknown_2023F38 -_0804003C: .4byte gUnknown_2023F32 -_08040040: .4byte 0x0000FFFE -_08040044: .4byte gUnknown_8289282 -_08040048: - mov r1, ip - ldr r0, [r1] - adds r0, #0xdb - ldrb r0, [r0] - cmp r0, #1 - bls _08040056 - b _080401B0 -_08040056: - movs r0, #2 - mov sl, r0 - movs r2, #0 - mov r8, r2 - ldr r7, _080400F0 - ldr r5, _080400F4 -_08040062: - ldr r0, [r1] - adds r0, #0xdb - ldrb r4, [r0] - ldr r2, _080400F8 - lsls r1, r4, #1 - adds r0, r1, r4 - lsls r0, r0, #2 - adds r2, r0, r2 - ldrb r0, [r2, #3] - strb r0, [r7] - ldr r3, _080400FC - strb r0, [r3] - ldr r0, _08040100 - adds r3, r1, r0 - ldrh r1, [r3] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080400CA - ldrb r0, [r2, #2] - subs r0, #1 - strb r0, [r2, #2] - movs r6, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080400CA - ldrh r0, [r3] - ldr r2, _08040104 - adds r1, r2, #0 - ands r0, r1 - strh r0, [r3] - ldr r0, _08040108 - bl BattleScriptExecute - ldr r0, _0804010C - strb r4, [r0, #5] - movs r0, #0xfd - strb r0, [r5] - mov r3, sl - strb r3, [r5, #1] - movs r0, #0x71 - strb r0, [r5, #2] - mov r0, r8 - strb r0, [r5, #3] - ldrb r0, [r5, #4] - orrs r0, r6 - strb r0, [r5, #4] - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 -_080400CA: - ldr r2, _08040110 - ldr r1, [r2] - adds r1, #0xdb - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - mov ip, r2 - mov r1, sb - cmp r1, #0 - beq _080400E0 - b _0804053E -_080400E0: - mov r1, ip - ldr r0, [r1] - adds r0, #0xdb - ldrb r0, [r0] - cmp r0, #1 - bls _08040062 - b _080401B0 - .align 2, 0 -_080400F0: .4byte gUnknown_2023EAF -_080400F4: .4byte gUnknown_2022C0C -_080400F8: .4byte gUnknown_2023F38 -_080400FC: .4byte gUnknown_2023D08 -_08040100: .4byte gUnknown_2023F32 -_08040104: .4byte 0x0000FFFD -_08040108: .4byte gUnknown_8289282 -_0804010C: .4byte gUnknown_2023FD6 -_08040110: .4byte gUnknown_2024140 -_08040114: - mov r1, ip - ldr r0, [r1] - adds r0, #0xdb - ldrb r0, [r0] - cmp r0, #1 - bhi _080401B0 - ldr r0, _080401CC - mov sl, r0 - movs r2, #0 - mov r8, r2 - ldr r7, _080401D0 - ldr r5, _080401D4 -_0804012C: - ldr r0, [r1] - adds r0, #0xdb - ldrb r4, [r0] - ldr r1, _080401D8 - lsls r3, r4, #1 - adds r0, r3, r4 - lsls r0, r0, #2 - adds r1, r0, r1 - ldrb r0, [r1, #5] - strb r0, [r7] - mov r2, sl - strb r0, [r2] - ldrb r0, [r1, #4] - cmp r0, #0 - beq _0804018E - subs r0, #1 - strb r0, [r1, #4] - movs r6, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0804018E - ldr r2, _080401DC - adds r2, r3, r2 - ldrh r0, [r2] - ldr r3, _080401E0 - adds r1, r3, #0 - ands r0, r1 - strh r0, [r2] - ldr r0, _080401E4 - bl BattleScriptExecute - ldr r0, _080401E8 - strb r4, [r0, #5] - movs r0, #0xfd - strb r0, [r5] - movs r0, #2 - strb r0, [r5, #1] - movs r0, #0x36 - strb r0, [r5, #2] - mov r0, r8 - strb r0, [r5, #3] - ldrb r0, [r5, #4] - orrs r0, r6 - strb r0, [r5, #4] - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 -_0804018E: - ldr r2, _080401EC - ldr r1, [r2] - adds r1, #0xdb - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - mov ip, r2 - mov r1, sb - cmp r1, #0 - beq _080401A4 - b _0804053E -_080401A4: - mov r1, ip - ldr r0, [r1] - adds r0, #0xdb - ldrb r0, [r0] - cmp r0, #1 - bls _0804012C -_080401B0: - mov r2, sb - cmp r2, #0 - beq _080401B8 - b _0804053E -_080401B8: - mov r3, ip - ldr r0, [r3] - ldrb r1, [r0, #3] - adds r1, #1 - strb r1, [r0, #3] - ldr r0, [r3] - adds r0, #0xdb - strb r2, [r0] - b _08040536 - .align 2, 0 -_080401CC: .4byte gUnknown_2023D08 -_080401D0: .4byte gUnknown_2023EAF -_080401D4: .4byte gUnknown_2022C0C -_080401D8: .4byte gUnknown_2023F38 -_080401DC: .4byte gUnknown_2023F32 -_080401E0: .4byte 0x0000FEFF -_080401E4: .4byte gUnknown_8289282 -_080401E8: .4byte gUnknown_2023FD6 -_080401EC: .4byte gUnknown_2024140 -_080401F0: - mov r1, ip - ldr r0, [r1] - adds r0, #0xdb - ldrb r0, [r0] - cmp r0, #1 - bhi _0804026C - ldr r6, _0804028C - ldr r5, _08040290 -_08040200: - ldr r0, [r1] - adds r0, #0xdb - ldrb r4, [r0] - ldr r2, _08040294 - lsls r1, r4, #1 - adds r0, r1, r4 - lsls r0, r0, #2 - adds r2, r0, r2 - ldrb r0, [r2, #7] - strb r0, [r5] - strb r0, [r6] - ldr r0, _08040298 - adds r3, r1, r0 - ldrh r1, [r3] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0804024A - ldrb r0, [r2, #6] - subs r0, #1 - strb r0, [r2, #6] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0804024A - ldrh r0, [r3] - ldr r2, _0804029C - adds r1, r2, #0 - ands r0, r1 - strh r0, [r3] - ldr r0, _080402A0 - bl BattleScriptExecute - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 -_0804024A: - ldr r2, _080402A4 - ldr r1, [r2] - adds r1, #0xdb - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - mov ip, r2 - mov r3, sb - cmp r3, #0 - beq _08040260 - b _0804053E -_08040260: - mov r1, ip - ldr r0, [r1] - adds r0, #0xdb - ldrb r0, [r0] - cmp r0, #1 - bls _08040200 -_0804026C: - mov r0, sb - cmp r0, #0 - beq _08040274 - b _0804053E -_08040274: - mov r1, ip - ldr r0, [r1] - ldrb r1, [r0, #3] - adds r1, #1 - strb r1, [r0, #3] - mov r2, ip - ldr r0, [r2] - adds r0, #0xdb - mov r3, sb - strb r3, [r0] - b _08040536 - .align 2, 0 -_0804028C: .4byte gUnknown_2023D08 -_08040290: .4byte gUnknown_2023EAF -_08040294: .4byte gUnknown_2023F38 -_08040298: .4byte gUnknown_2023F32 -_0804029C: .4byte 0x0000FFDF -_080402A0: .4byte gUnknown_8289293 -_080402A4: .4byte gUnknown_2024140 -_080402A8: - mov r2, ip - ldr r0, [r2] - adds r0, #0xdb - ldr r1, _0804033C - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bhs _08040328 - ldr r4, _08040340 - ldr r5, _08040344 -_080402BC: - ldr r0, [r2] - adds r0, #0xdb - ldrb r0, [r0] - adds r0, r0, r5 - ldrb r0, [r0] - strb r0, [r4] - ldr r0, _08040348 - adds r0, #0x20 - ldrb r2, [r4] - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, #0 - beq _08040304 - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08040304 - ldr r1, _0804034C - ldrb r2, [r4] - movs r0, #0x58 - muls r0, r2, r0 - adds r0, r0, r1 - ldrh r0, [r0, #0x28] - cmp r0, #0 - beq _08040304 - ldr r0, _08040350 - strb r2, [r0] - ldr r0, _08040354 - bl BattleScriptExecute - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 -_08040304: - ldr r2, _08040358 - ldr r1, [r2] - adds r1, #0xdb - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - mov ip, r2 - mov r3, sb - cmp r3, #0 - beq _0804031A - b _0804053E -_0804031A: - ldr r0, [r2] - adds r0, #0xdb - ldr r1, _0804033C - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - blo _080402BC -_08040328: - mov r0, sb - cmp r0, #0 - beq _08040330 - b _0804053E -_08040330: - mov r2, ip - ldr r1, [r2] - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] - b _08040536 - .align 2, 0 -_0804033C: .4byte gUnknown_2023D10 -_08040340: .4byte gUnknown_2023D08 -_08040344: .4byte gUnknown_2023D22 -_08040348: .4byte gUnknown_2024074 -_0804034C: .4byte gUnknown_2023D28 -_08040350: .4byte gUnknown_2023EB0 -_08040354: .4byte gUnknown_828963F -_08040358: .4byte gUnknown_2024140 -_0804035C: - ldr r3, _08040394 - ldrh r2, [r3] - movs r0, #7 - ands r0, r2 - cmp r0, #0 - bne _0804036A - b _08040508 -_0804036A: - movs r0, #4 - ands r0, r2 - cmp r0, #0 - bne _080403B6 - ldr r1, _08040398 - adds r1, #0x28 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080403A8 - ldr r0, _0804039C - ands r0, r2 - ldr r1, _080403A0 - ands r0, r1 - strh r0, [r3] - ldr r1, _080403A4 - movs r0, #2 - strb r0, [r1, #5] - b _080403D4 - .align 2, 0 -_08040394: .4byte gUnknown_2024070 -_08040398: .4byte gUnknown_2024074 -_0804039C: .4byte 0x0000FFFE -_080403A0: .4byte 0x0000FFFD -_080403A4: .4byte gUnknown_2023FD6 -_080403A8: - movs r0, #2 - ands r0, r2 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - bne _080403C2 - b _080403D0 -_080403B6: - movs r0, #2 - ands r0, r2 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - beq _080403D0 -_080403C2: - ldr r1, _080403CC - movs r0, #1 - strb r0, [r1, #5] - b _080403D4 - .align 2, 0 -_080403CC: .4byte gUnknown_2023FD6 -_080403D0: - ldr r0, _080403D8 - strb r1, [r0, #5] -_080403D4: - ldr r0, _080403DC - b _080404FA - .align 2, 0 -_080403D8: .4byte gUnknown_2023FD6 -_080403DC: .4byte gUnknown_82891B4 -_080403E0: - ldr r3, _08040414 - ldrh r2, [r3] - movs r0, #0x18 - ands r0, r2 - cmp r0, #0 - bne _080403EE - b _08040508 -_080403EE: - movs r0, #0x10 - ands r0, r2 - cmp r0, #0 - bne _08040428 - ldr r1, _08040418 - adds r1, #0x28 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08040428 - ldr r0, _0804041C - ands r0, r2 - strh r0, [r3] - ldr r1, _08040420 - ldr r0, _08040424 - b _0804042C - .align 2, 0 -_08040414: .4byte gUnknown_2024070 -_08040418: .4byte gUnknown_2024074 -_0804041C: .4byte 0x0000FFF7 -_08040420: .4byte gUnknown_2023EB8 -_08040424: .4byte gUnknown_8289251 -_08040428: - ldr r1, _08040440 - ldr r0, _08040444 -_0804042C: - str r0, [r1] - adds r3, r1, #0 - ldr r1, _08040448 - movs r2, #0 - movs r0, #0xc - strb r0, [r1, #0x10] - ldr r0, _0804044C - strb r2, [r0, #5] - b _080404F8 - .align 2, 0 -_08040440: .4byte gUnknown_2023EB8 -_08040444: .4byte gUnknown_82891CF -_08040448: .4byte gUnknown_2024118 -_0804044C: .4byte gUnknown_2023FD6 -_08040450: - ldr r3, _08040480 - ldrh r2, [r3] - movs r0, #0x60 - ands r0, r2 - cmp r0, #0 - beq _08040508 - movs r0, #0x40 - ands r0, r2 - cmp r0, #0 - bne _08040494 - ldr r1, _08040484 - adds r1, #0x28 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08040494 - ldr r0, _08040488 - ands r0, r2 - strh r0, [r3] - ldr r1, _0804048C - ldr r0, _08040490 - b _08040498 - .align 2, 0 -_08040480: .4byte gUnknown_2024070 -_08040484: .4byte gUnknown_2024074 -_08040488: .4byte 0x0000FFDF -_0804048C: .4byte gUnknown_2023EB8 -_08040490: .4byte gUnknown_8289268 -_08040494: - ldr r1, _080404A0 - ldr r0, _080404A4 -_08040498: - str r0, [r1] - adds r3, r1, #0 - b _080404F8 - .align 2, 0 -_080404A0: .4byte gUnknown_2023EB8 -_080404A4: .4byte gUnknown_828925A -_080404A8: - ldr r3, _080404D0 - ldrh r2, [r3] - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - beq _08040508 - ldr r1, _080404D4 - adds r1, #0x28 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080404E4 - ldr r0, _080404D8 - ands r0, r2 - strh r0, [r3] - ldr r1, _080404DC - ldr r0, _080404E0 - b _080404E8 - .align 2, 0 -_080404D0: .4byte gUnknown_2024070 -_080404D4: .4byte gUnknown_2024074 -_080404D8: .4byte 0x0000FF7F -_080404DC: .4byte gUnknown_2023EB8 -_080404E0: .4byte gUnknown_8289251 -_080404E4: - ldr r1, _08040518 - ldr r0, _0804051C -_080404E8: - str r0, [r1] - adds r3, r1, #0 - ldr r1, _08040520 - movs r0, #0xd - strb r0, [r1, #0x10] - ldr r1, _08040524 - movs r0, #1 - strb r0, [r1, #5] -_080404F8: - ldr r0, [r3] -_080404FA: - bl BattleScriptExecute - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 -_08040508: - ldr r2, _08040528 - ldr r1, [r2] - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] - mov ip, r2 - b _08040536 - .align 2, 0 -_08040518: .4byte gUnknown_2023EB8 -_0804051C: .4byte gUnknown_82891CF -_08040520: .4byte gUnknown_2024118 -_08040524: .4byte gUnknown_2023FD6 -_08040528: .4byte gUnknown_2024140 -_0804052C: - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 -_08040536: - mov r3, sb - cmp r3, #0 - bne _0804053E - b _0803FE9E -_0804053E: - ldr r0, _0804055C - ldr r1, [r0] - ldr r0, _08040560 - eors r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0804055C: .4byte gUnknown_3005A64 -_08040560: .4byte BattleTurnPassed - thumb_func_end DoFieldEndTurnEffects - - thumb_func_start DoBattlerEndTurnEffects -DoBattlerEndTurnEffects: @ 0x08040564 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - movs r0, #0 - mov sb, r0 - ldr r2, _08040598 - ldr r0, [r2] - ldr r1, _0804059C - orrs r0, r1 - str r0, [r2] - ldr r5, _080405A0 - ldr r2, [r5] - ldr r0, _080405A4 - ldrb r1, [r2, #1] - adds r7, r5, #0 - mov r8, r0 - ldrb r3, [r0] - cmp r1, r3 - blo _08040594 - bl _08040F78 -_08040594: - bl _08040F6E - .align 2, 0 -_08040598: .4byte gUnknown_2023F24 -_0804059C: .4byte 0x01000020 -_080405A0: .4byte gUnknown_2024140 -_080405A4: .4byte gUnknown_2023D10 - thumb_func_end DoBattlerEndTurnEffects - - thumb_func_start sub_080405A8 -sub_080405A8: @ 0x080405A8 - ldr r3, _080405DC - ldr r4, _080405E0 - ldr r1, _080405E4 - ldr r5, [r5] - ldrb r0, [r5, #1] - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r4] - strb r0, [r3] - ldr r0, _080405E8 - ldrb r1, [r0] - ldr r2, _080405EC - ldrb r0, [r3] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - adds r6, r3, #0 - cmp r1, #0 - beq _080405F0 - ldrb r0, [r5, #1] - adds r0, #1 - strb r0, [r5, #1] - bl _08040F5C - .align 2, 0 -_080405DC: .4byte gUnknown_2023D08 -_080405E0: .4byte gUnknown_2023EAF -_080405E4: .4byte gUnknown_2023D22 -_080405E8: .4byte gUnknown_2023EB4 -_080405EC: .4byte gUnknown_82FACB4 -_080405F0: - ldrb r0, [r5] - cmp r0, #0x13 - bls _080405FA - bl _08040F52 -_080405FA: - lsls r0, r0, #2 - ldr r1, _08040604 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08040604: .4byte _08040608 -_08040608: @ jump table - .4byte _08040658 @ case 0 - .4byte _080406B8 @ case 1 - .4byte _080406D6 @ case 2 - .4byte _08040706 @ case 3 - .4byte _08040784 @ case 4 - .4byte _080407CC @ case 5 - .4byte _0804084C @ case 6 - .4byte _08040894 @ case 7 - .4byte _080408F8 @ case 8 - .4byte _08040940 @ case 9 - .4byte _08040AA0 @ case 10 - .4byte _08040BBC @ case 11 - .4byte _08040C64 @ case 12 - .4byte _08040D28 @ case 13 - .4byte _08040DDC @ case 14 - .4byte _08040DFC @ case 15 - .4byte _08040E48 @ case 16 - .4byte _08040E78 @ case 17 - .4byte _080406EE @ case 18 - .4byte _08040F44 @ case 19 -_08040658: - ldr r1, _080406A8 - ldrb r3, [r6] - lsls r0, r3, #2 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - bne _08040670 - bl _08040F1E -_08040670: - ldr r0, _080406AC - movs r1, #0x58 - muls r1, r3, r1 - adds r0, r1, r0 - ldrh r2, [r0, #0x28] - ldrh r5, [r0, #0x2c] - cmp r2, r5 - bne _08040684 - bl _08040F1E -_08040684: - cmp r2, #0 - bne _0804068C - bl _08040F1E -_0804068C: - ldr r1, _080406B0 - ldrh r0, [r0, #0x2c] - lsrs r0, r0, #4 - str r0, [r1] - cmp r0, #0 - bne _0804069C - movs r0, #1 - str r0, [r1] -_0804069C: - ldr r0, [r1] - rsbs r0, r0, #0 - str r0, [r1] - ldr r0, _080406B4 - bl _08040F10 - .align 2, 0 -_080406A8: .4byte gUnknown_2023F50 -_080406AC: .4byte gUnknown_2023D28 -_080406B0: .4byte gUnknown_2023E94 -_080406B4: .4byte gUnknown_8289676 -_080406B8: - ldrb r1, [r6] - movs r0, #0 - str r0, [sp] - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080406D2 - bl _08040F1E -_080406D2: - bl _08040F14 -_080406D6: - ldrb r1, [r6] - movs r0, #1 - movs r2, #0 - bl ItemBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080406EA - bl _08040F1E -_080406EA: - bl _08040F14 -_080406EE: - ldrb r1, [r6] - movs r0, #1 - movs r2, #1 - bl ItemBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08040702 - bl _08040F1E -_08040702: - bl _08040F14 -_08040706: - ldr r0, _0804076C - ldrb r2, [r6] - lsls r1, r2, #2 - adds r1, r1, r0 - ldr r1, [r1] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _0804071C - bl _08040F1E -_0804071C: - ldr r3, _08040770 - movs r5, #3 - ands r5, r1 - movs r1, #0x58 - adds r0, r5, #0 - muls r0, r1, r0 - adds r0, r0, r3 - ldrh r0, [r0, #0x28] - cmp r0, #0 - bne _08040734 - bl _08040F1E -_08040734: - adds r0, r2, #0 - muls r0, r1, r0 - adds r0, r0, r3 - ldrh r0, [r0, #0x28] - cmp r0, #0 - bne _08040744 - bl _08040F1E -_08040744: - ldr r0, _08040774 - strb r5, [r0] - ldr r2, _08040778 - ldrb r0, [r6] - muls r0, r1, r0 - adds r0, r0, r3 - ldrh r0, [r0, #0x2c] - lsrs r0, r0, #3 - str r0, [r2] - cmp r0, #0 - bne _0804075E - movs r0, #1 - str r0, [r2] -_0804075E: - ldr r1, _0804077C - strb r5, [r1, #0x10] - ldrb r0, [r4] - strb r0, [r1, #0x11] - ldr r0, _08040780 - b _08040F10 - .align 2, 0 -_0804076C: .4byte gUnknown_2023F50 -_08040770: .4byte gUnknown_2023D28 -_08040774: .4byte gUnknown_2023EB0 -_08040778: .4byte gUnknown_2023E94 -_0804077C: .4byte gUnknown_2024118 -_08040780: .4byte gUnknown_828929D -_08040784: - ldr r2, _080407C0 - ldrb r1, [r6] - movs r0, #0x58 - adds r3, r1, #0 - muls r3, r0, r3 - adds r0, r2, #0 - adds r0, #0x4c - adds r0, r3, r0 - ldr r0, [r0] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - bne _080407A0 - b _08040F1E -_080407A0: - adds r1, r3, r2 - ldrh r0, [r1, #0x28] - cmp r0, #0 - bne _080407AA - b _08040F1E -_080407AA: - ldr r2, _080407C4 - ldrh r0, [r1, #0x2c] - lsrs r0, r0, #3 - str r0, [r2] - cmp r0, #0 - bne _080407BA - movs r0, #1 - str r0, [r2] -_080407BA: - ldr r0, _080407C8 - b _08040F10 - .align 2, 0 -_080407C0: .4byte gUnknown_2023D28 -_080407C4: .4byte gUnknown_2023E94 -_080407C8: .4byte gUnknown_82897C5 -_080407CC: - ldr r4, _08040840 - ldrb r0, [r6] - movs r7, #0x58 - mov r8, r7 - mov r2, r8 - muls r2, r0, r2 - adds r3, r4, #0 - adds r3, #0x4c - adds r0, r2, r3 - ldr r0, [r0] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080407EA - b _08040F1E -_080407EA: - adds r1, r2, r4 - ldrh r0, [r1, #0x28] - cmp r0, #0 - bne _080407F4 - b _08040F1E -_080407F4: - ldr r5, _08040844 - ldrh r0, [r1, #0x2c] - lsrs r0, r0, #4 - str r0, [r5] - cmp r0, #0 - bne _08040804 - movs r0, #1 - str r0, [r5] -_08040804: - ldrb r0, [r6] - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - adds r2, r0, r3 - ldr r1, [r2] - movs r4, #0xf0 - lsls r4, r4, #4 - adds r0, r1, #0 - ands r0, r4 - cmp r0, r4 - beq _08040824 - movs r7, #0x80 - lsls r7, r7, #1 - adds r0, r1, r7 - str r0, [r2] -_08040824: - ldrb r0, [r6] - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - adds r0, r0, r3 - ldr r0, [r0] - ands r0, r4 - lsrs r0, r0, #8 - ldr r1, [r5] - muls r0, r1, r0 - str r0, [r5] - ldr r0, _08040848 - b _08040F10 - .align 2, 0 -_08040840: .4byte gUnknown_2023D28 -_08040844: .4byte gUnknown_2023E94 -_08040848: .4byte gUnknown_82897C5 -_0804084C: - ldr r2, _08040888 - ldrb r1, [r6] - movs r0, #0x58 - adds r3, r1, #0 - muls r3, r0, r3 - adds r0, r2, #0 - adds r0, #0x4c - adds r0, r3, r0 - ldr r0, [r0] - movs r1, #0x10 - ands r0, r1 - cmp r0, #0 - bne _08040868 - b _08040F1E -_08040868: - adds r1, r3, r2 - ldrh r0, [r1, #0x28] - cmp r0, #0 - bne _08040872 - b _08040F1E -_08040872: - ldr r2, _0804088C - ldrh r0, [r1, #0x2c] - lsrs r0, r0, #3 - str r0, [r2] - cmp r0, #0 - bne _08040882 - movs r0, #1 - str r0, [r2] -_08040882: - ldr r0, _08040890 - b _08040F10 - .align 2, 0 -_08040888: .4byte gUnknown_2023D28 -_0804088C: .4byte gUnknown_2023E94 -_08040890: .4byte gUnknown_82897E7 -_08040894: - ldr r4, _080408E0 - ldrb r1, [r6] - movs r0, #0x58 - muls r1, r0, r1 - adds r0, r4, #0 - adds r0, #0x50 - adds r5, r1, r0 - ldr r2, [r5] - movs r0, #0x80 - lsls r0, r0, #0x14 - ands r0, r2 - cmp r0, #0 - bne _080408B0 - b _08040F1E -_080408B0: - adds r3, r1, r4 - ldrh r0, [r3, #0x28] - cmp r0, #0 - bne _080408BA - b _08040F1E -_080408BA: - adds r0, r4, #0 - adds r0, #0x4c - adds r0, r1, r0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - beq _080408EC - ldr r1, _080408E4 - ldrh r0, [r3, #0x2c] - lsrs r0, r0, #2 - str r0, [r1] - cmp r0, #0 - bne _080408DA - movs r0, #1 - str r0, [r1] -_080408DA: - ldr r0, _080408E8 - b _08040F10 - .align 2, 0 -_080408E0: .4byte gUnknown_2023D28 -_080408E4: .4byte gUnknown_2023E94 -_080408E8: .4byte gUnknown_82898C7 -_080408EC: - ldr r0, _080408F4 - ands r2, r0 - str r2, [r5] - b _08040F1E - .align 2, 0 -_080408F4: .4byte 0xF7FFFFFF -_080408F8: - ldr r2, _08040934 - ldrb r1, [r6] - movs r0, #0x58 - adds r3, r1, #0 - muls r3, r0, r3 - adds r0, r2, #0 - adds r0, #0x50 - adds r0, r3, r0 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x15 - ands r0, r1 - cmp r0, #0 - bne _08040916 - b _08040F1E -_08040916: - adds r1, r3, r2 - ldrh r0, [r1, #0x28] - cmp r0, #0 - bne _08040920 - b _08040F1E -_08040920: - ldr r2, _08040938 - ldrh r0, [r1, #0x2c] - lsrs r0, r0, #2 - str r0, [r2] - cmp r0, #0 - bne _08040930 - movs r0, #1 - str r0, [r2] -_08040930: - ldr r0, _0804093C - b _08040F10 - .align 2, 0 -_08040934: .4byte gUnknown_2023D28 -_08040938: .4byte gUnknown_2023E94 -_0804093C: .4byte gUnknown_82898D8 -_08040940: - ldr r3, _080409E0 - mov r8, r3 - ldrb r0, [r6] - movs r3, #0x58 - adds r1, r0, #0 - muls r1, r3, r1 - movs r5, #0x50 - add r5, r8 - mov sl, r5 - adds r4, r1, r5 - ldr r2, [r4] - movs r5, #0xe0 - lsls r5, r5, #8 - adds r0, r2, #0 - ands r0, r5 - cmp r0, #0 - bne _08040964 - b _08040F1E -_08040964: - mov r7, r8 - adds r0, r1, r7 - ldrh r0, [r0, #0x28] - cmp r0, #0 - bne _08040970 - b _08040F1E -_08040970: - ldr r1, _080409E4 - adds r0, r2, r1 - str r0, [r4] - ldrb r4, [r6] - adds r0, r4, #0 - muls r0, r3, r0 - add r0, sl - ldr r0, [r0] - ands r0, r5 - cmp r0, #0 - beq _08040A00 - ldr r1, _080409E8 - ldr r0, _080409EC - ldr r2, [r0] - lsls r0, r4, #1 - adds r0, r0, r2 - ldrb r0, [r0, #4] - strb r0, [r1, #0x10] - ldrb r0, [r6] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrb r0, [r0, #5] - strb r0, [r1, #0x11] - ldr r1, _080409F0 - movs r0, #0xfd - strb r0, [r1] - movs r0, #2 - strb r0, [r1, #1] - ldrb r0, [r6] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrb r0, [r0, #4] - strb r0, [r1, #2] - ldrb r0, [r6] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrb r0, [r0, #5] - strb r0, [r1, #3] - movs r0, #0xff - strb r0, [r1, #4] - ldr r1, _080409F4 - ldr r0, _080409F8 - str r0, [r1] - ldr r2, _080409FC - ldrb r0, [r6] - muls r0, r3, r0 - add r0, r8 - ldrh r0, [r0, #0x2c] - lsrs r0, r0, #4 - str r0, [r2] - cmp r0, #0 - bne _08040A2C - movs r0, #1 - str r0, [r2] - b _08040A2C - .align 2, 0 -_080409E0: .4byte gUnknown_2023D28 -_080409E4: .4byte 0xFFFFE000 -_080409E8: .4byte gUnknown_2024118 -_080409EC: .4byte gUnknown_2024140 -_080409F0: .4byte gUnknown_2022C0C -_080409F4: .4byte gUnknown_2023EB8 -_080409F8: .4byte gUnknown_8289896 -_080409FC: .4byte gUnknown_2023E94 -_08040A00: - ldr r2, _08040A30 - movs r0, #0xfd - strb r0, [r2] - movs r0, #2 - strb r0, [r2, #1] - ldrb r1, [r6] - ldr r0, _08040A34 - ldr r3, [r0] - lsls r1, r1, #1 - adds r1, r1, r3 - ldrb r0, [r1, #4] - strb r0, [r2, #2] - ldrb r0, [r6] - lsls r0, r0, #1 - adds r0, r0, r3 - ldrb r0, [r0, #5] - strb r0, [r2, #3] - movs r0, #0xff - strb r0, [r2, #4] - ldr r1, _08040A38 - ldr r0, _08040A3C - str r0, [r1] -_08040A2C: - ldr r0, [r1] - b _08040F10 - .align 2, 0 -_08040A30: .4byte gUnknown_2022C0C -_08040A34: .4byte gUnknown_2024140 -_08040A38: .4byte gUnknown_2023EB8 -_08040A3C: .4byte gUnknown_82898A8 -_08040A40: - movs r0, #8 - rsbs r0, r0, #0 - ands r3, r0 - str r3, [r2] - ldrb r0, [r6] - mov r2, r8 - muls r2, r0, r2 - mov r0, sl - adds r0, #0x50 - adds r2, r2, r0 - ldr r0, [r2] - ldr r1, _08040A90 - ands r0, r1 - str r0, [r2] - ldr r1, _08040A94 - movs r0, #1 - strb r0, [r1, #5] - ldr r0, _08040A98 - bl BattleScriptExecute - ldr r4, _08040A9C - ldrb r0, [r6] - strb r0, [r4] - ldrb r0, [r4] - mov r3, r8 - muls r3, r0, r3 - adds r0, r3, #0 - add r0, sb - str r0, [sp] - movs r0, #0 - movs r1, #0x28 - movs r2, #0 - movs r3, #4 - bl BtlController_EmitSetMonData - ldrb r0, [r4] - bl MarkBattlerForControllerExec - b _08040B08 - .align 2, 0 -_08040A90: .4byte 0xF7FFFFFF -_08040A94: .4byte gUnknown_2023FD6 -_08040A98: .4byte gUnknown_82897BC -_08040A9C: .4byte gUnknown_2023D08 -_08040AA0: - ldr r2, _08040B1C - ldrb r1, [r6] - movs r0, #0x58 - muls r0, r1, r0 - adds r1, r2, #0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r1, [r0] - movs r0, #0x70 - ands r1, r0 - adds r7, r2, #0 - cmp r1, #0 - beq _08040BAA - movs r0, #0 - strb r0, [r4] - mov r5, r8 - ldrb r0, [r5] - cmp r0, #0 - beq _08040B08 - mov sl, r7 - adds r6, r4, #0 - movs r1, #0x58 - mov r8, r1 - movs r3, #0x4c - adds r3, r3, r7 - mov sb, r3 - str r0, [sp, #4] - movs r5, #7 - mov ip, r5 -_08040ADA: - ldrb r4, [r6] - mov r1, r8 - muls r1, r4, r1 - mov r0, sb - adds r2, r1, r0 - ldr r3, [r2] - adds r0, r3, #0 - mov r5, ip - ands r0, r5 - cmp r0, #0 - beq _08040AFA - adds r0, r1, r7 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x2b - bne _08040A40 -_08040AFA: - adds r0, r4, #1 - strb r0, [r6] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, [sp, #4] - cmp r0, r1 - blo _08040ADA -_08040B08: - ldr r2, _08040B20 - ldr r1, _08040B24 - ldrb r0, [r2] - ldrb r1, [r1] - cmp r0, r1 - beq _08040B28 - movs r3, #2 - mov sb, r3 - b _08040F58 - .align 2, 0 -_08040B1C: .4byte gUnknown_2023D28 -_08040B20: .4byte gUnknown_2023EAF -_08040B24: .4byte gUnknown_2023D10 -_08040B28: - ldr r5, _08040B60 - ldrb r0, [r5] - strb r0, [r2] - ldr r2, _08040B64 - ldrb r0, [r5] - movs r7, #0x58 - adds r1, r0, #0 - muls r1, r7, r1 - adds r6, r2, #0 - adds r6, #0x50 - adds r1, r1, r6 - ldr r0, [r1] - subs r0, #0x10 - str r0, [r1] - ldrb r0, [r5] - bl WasUnableToUseMove - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - beq _08040B6C - ldrb r0, [r5] - bl CancelMultiTurnMoves - ldr r1, _08040B68 - movs r0, #1 - strb r0, [r1, #5] - b _08040BA0 - .align 2, 0 -_08040B60: .4byte gUnknown_2023D08 -_08040B64: .4byte gUnknown_2023D28 -_08040B68: .4byte gUnknown_2023FD6 -_08040B6C: - ldrb r3, [r5] - adds r0, r3, #0 - muls r0, r7, r0 - adds r2, r0, r6 - ldr r0, [r2] - movs r1, #0x70 - ands r0, r1 - cmp r0, #0 - beq _08040B94 - ldr r0, _08040B90 - strb r4, [r0, #5] - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #5 - orrs r0, r1 - str r0, [r2] - b _08040BA0 - .align 2, 0 -_08040B90: .4byte gUnknown_2023FD6 -_08040B94: - ldr r1, _08040BB4 - movs r0, #1 - strb r0, [r1, #5] - adds r0, r3, #0 - bl CancelMultiTurnMoves -_08040BA0: - ldr r0, _08040BB8 - bl BattleScriptExecute - movs r5, #1 - mov sb, r5 -_08040BAA: - mov r7, sb - cmp r7, #2 - bne _08040BB2 - b _08040F52 -_08040BB2: - b _08040F1E - .align 2, 0 -_08040BB4: .4byte gUnknown_2023FD6 -_08040BB8: .4byte gUnknown_828982E -_08040BBC: - ldr r1, _08040BF4 - ldrb r0, [r6] - movs r7, #0x58 - muls r0, r7, r0 - adds r5, r1, #0 - adds r5, #0x50 - adds r2, r0, r5 - ldr r1, [r2] - movs r4, #0xc0 - lsls r4, r4, #4 - adds r0, r1, #0 - ands r0, r4 - cmp r0, #0 - bne _08040BDA - b _08040F1E -_08040BDA: - ldr r3, _08040BF8 - adds r0, r1, r3 - str r0, [r2] - ldrb r0, [r6] - bl WasUnableToUseMove - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08040BFC - ldrb r0, [r6] - bl CancelMultiTurnMoves - b _08040F1E - .align 2, 0 -_08040BF4: .4byte gUnknown_2023D28 -_08040BF8: .4byte 0xFFFFFC00 -_08040BFC: - ldrb r0, [r6] - muls r0, r7, r0 - adds r2, r0, r5 - ldr r1, [r2] - adds r0, r1, #0 - ands r0, r4 - cmp r0, #0 - beq _08040C0E - b _08040F1E -_08040C0E: - movs r0, #0x80 - lsls r0, r0, #5 - ands r0, r1 - cmp r0, #0 - bne _08040C1A - b _08040F1E -_08040C1A: - ldr r0, _08040C58 - ands r1, r0 - str r1, [r2] - ldrb r0, [r6] - muls r0, r7, r0 - adds r0, r0, r5 - ldr r0, [r0] - movs r4, #7 - ands r0, r4 - cmp r0, #0 - beq _08040C32 - b _08040F1E -_08040C32: - ldr r1, _08040C5C - movs r0, #0x47 - strb r0, [r1, #3] - movs r0, #1 - movs r1, #0 - bl SetMoveEffect - ldrb r0, [r6] - muls r0, r7, r0 - adds r0, r0, r5 - ldr r0, [r0] - ands r0, r4 - cmp r0, #0 - bne _08040C50 - b _08040F14 -_08040C50: - ldr r0, _08040C60 - bl BattleScriptExecute - b _08040F14 - .align 2, 0 -_08040C58: .4byte 0xFFFFEFFF -_08040C5C: .4byte gUnknown_2023FD6 -_08040C60: .4byte gUnknown_8289837 -_08040C64: - ldr r0, _08040CE4 - ldrb r3, [r6] - lsls r1, r3, #3 - subs r1, r1, r3 - lsls r1, r1, #2 - adds r5, r1, r0 - ldrb r1, [r5, #0xb] - lsls r1, r1, #0x1c - adds r7, r0, #0 - cmp r1, #0 - bne _08040C7C - b _08040F1E -_08040C7C: - movs r4, #0 - ldr r2, _08040CE8 - movs r0, #0x58 - adds r1, r3, #0 - muls r1, r0, r1 - adds r2, #0xc - adds r1, r1, r2 - ldrh r0, [r5, #4] - ldrh r1, [r1] - cmp r0, r1 - beq _08040CBA - mov ip, r7 - mov r8, r2 - adds r5, r6, #0 - movs r3, #0x58 -_08040C9A: - adds r4, #1 - cmp r4, #3 - bgt _08040CBA - ldrb r2, [r5] - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - add r1, ip - lsls r0, r4, #1 - muls r2, r3, r2 - adds r0, r0, r2 - add r0, r8 - ldrh r1, [r1, #4] - ldrh r0, [r0] - cmp r1, r0 - bne _08040C9A -_08040CBA: - cmp r4, #4 - bne _08040CEC - ldrb r1, [r6] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - movs r1, #0 - strh r1, [r0, #4] - ldrb r0, [r6] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r7 - ldrb r2, [r1, #0xb] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #0xb] - b _08040F1E - .align 2, 0 -_08040CE4: .4byte gUnknown_2023F60 -_08040CE8: .4byte gUnknown_2023D28 -_08040CEC: - ldrb r0, [r6] - lsls r2, r0, #3 - subs r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r7 - ldrb r3, [r2, #0xb] - lsls r1, r3, #0x1c - lsrs r1, r1, #0x1c - subs r1, #1 - movs r0, #0xf - ands r1, r0 - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #0xb] - adds r2, r1, #0 - cmp r2, #0 - beq _08040D14 - b _08040F1E -_08040D14: - ldrb r1, [r6] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r2, [r0, #4] - ldr r0, _08040D24 - b _08040F10 - .align 2, 0 -_08040D24: .4byte gUnknown_82893AB -_08040D28: - ldr r3, _08040D74 - ldrb r1, [r6] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r2, r0, r3 - ldrb r5, [r2, #0xe] - lsls r4, r5, #0x1c - cmp r4, #0 - bne _08040D3E - b _08040F1E -_08040D3E: - ldr r7, _08040D78 - mov r8, r7 - ldrb r0, [r2, #0xc] - lsls r0, r0, #1 - movs r7, #0x58 - muls r1, r7, r1 - adds r0, r0, r1 - mov r1, r8 - adds r1, #0xc - adds r0, r0, r1 - ldrh r0, [r0] - ldrh r1, [r2, #6] - cmp r0, r1 - beq _08040D7C - movs r0, #0 - strh r0, [r2, #6] - ldrb r0, [r6] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrb r2, [r1, #0xe] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #0xe] - b _08040F1E - .align 2, 0 -_08040D74: .4byte gUnknown_2023F60 -_08040D78: .4byte gUnknown_2023D28 -_08040D7C: - lsrs r1, r4, #0x1c - subs r1, #1 - movs r0, #0xf - ands r1, r0 - movs r4, #0x10 - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r5 - orrs r0, r1 - strb r0, [r2, #0xe] - cmp r1, #0 - beq _08040DB2 - ldrb r1, [r6] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - muls r1, r7, r1 - ldrb r0, [r0, #0xc] - adds r1, r1, r0 - mov r0, r8 - adds r0, #0x24 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0 - beq _08040DB2 - b _08040F1E -_08040DB2: - ldrb r1, [r6] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r1, #0 - strh r1, [r0, #6] - ldrb r0, [r6] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrb r2, [r1, #0xe] - adds r0, r4, #0 - ands r0, r2 - strb r0, [r1, #0xe] - ldr r0, _08040DD8 - b _08040F10 - .align 2, 0 -_08040DD8: .4byte gUnknown_82893BF -_08040DDC: - ldr r0, _08040DF8 - ldrb r1, [r6] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r2, [r1] - movs r0, #0x18 - ands r0, r2 - cmp r0, #0 - beq _08040DF4 - adds r0, r2, #0 - subs r0, #8 - str r0, [r1] -_08040DF4: - ldr r1, [r7] - b _08040F22 - .align 2, 0 -_08040DF8: .4byte gUnknown_2023F50 -_08040DFC: - ldr r2, _08040E3C - ldrb r1, [r6] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r3, r0, r2 - ldrb r2, [r3, #0x12] - lsls r1, r2, #0x1c - cmp r1, #0 - beq _08040E36 - lsrs r1, r1, #0x1c - subs r1, #1 - movs r0, #0xf - ands r1, r0 - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x12] - cmp r1, #0 - bne _08040E36 - ldr r0, _08040E40 - ldrb r2, [r6] - lsls r2, r2, #2 - adds r2, r2, r0 - ldr r0, [r2] - ldr r1, _08040E44 - ands r0, r1 - str r0, [r2] -_08040E36: - ldr r1, [r7] - b _08040F22 - .align 2, 0 -_08040E3C: .4byte gUnknown_2023F60 -_08040E40: .4byte gUnknown_2023F50 -_08040E44: .4byte 0xFFFFFDFF -_08040E48: - ldr r2, _08040E74 - ldrb r1, [r6] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r3, r0, r2 - ldrb r2, [r3, #0x13] - lsls r1, r2, #0x1c - cmp r1, #0 - beq _08040E6E - lsrs r1, r1, #0x1c - subs r1, #1 - movs r0, #0xf - ands r1, r0 - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x13] -_08040E6E: - ldr r1, [r7] - b _08040F22 - .align 2, 0 -_08040E74: .4byte gUnknown_2023F60 -_08040E78: - ldr r4, _08040F2C - ldrb r0, [r6] - lsls r0, r0, #2 - adds r2, r0, r4 - ldr r1, [r2] - movs r3, #0xc0 - lsls r3, r3, #5 - adds r0, r1, #0 - ands r0, r3 - cmp r0, #0 - beq _08040F1E - ldr r5, _08040F30 - adds r0, r1, r5 - str r0, [r2] - ldrb r2, [r6] - lsls r0, r2, #2 - adds r0, r0, r4 - ldr r0, [r0] - ands r0, r3 - cmp r0, #0 - bne _08040F1E - ldr r3, _08040F34 - movs r5, #0x58 - adds r1, r2, #0 - muls r1, r5, r1 - adds r4, r3, #0 - adds r4, #0x4c - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, #0 - bne _08040F1E - adds r0, r1, r3 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x48 - beq _08040F1E - cmp r0, #0xf - beq _08040F1E - adds r0, r2, #0 - bl UproarWakeUpCheck - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08040F1E - ldrb r0, [r6] - bl CancelMultiTurnMoves - bl Random - ldrb r1, [r6] - adds r2, r1, #0 - muls r2, r5, r2 - adds r2, r2, r4 - movs r1, #3 - ands r1, r0 - adds r1, #2 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - ldrb r0, [r6] - muls r0, r5, r0 - adds r0, r0, r4 - str r0, [sp] - movs r0, #0 - movs r1, #0x28 - movs r2, #0 - movs r3, #4 - bl BtlController_EmitSetMonData - ldrb r0, [r6] - bl MarkBattlerForControllerExec - ldr r1, _08040F38 - ldrb r0, [r6] - strb r0, [r1] - ldr r0, _08040F3C -_08040F10: - bl BattleScriptExecute -_08040F14: - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 -_08040F1E: - ldr r0, _08040F40 - ldr r1, [r0] -_08040F22: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _08040F52 - .align 2, 0 -_08040F2C: .4byte gUnknown_2023F50 -_08040F30: .4byte 0xFFFFF800 -_08040F34: .4byte gUnknown_2023D28 -_08040F38: .4byte gUnknown_2023EB2 -_08040F3C: .4byte gUnknown_8289900 -_08040F40: .4byte gUnknown_2024140 -_08040F44: - ldr r1, [r7] - movs r0, #0 - strb r0, [r1] - ldr r1, [r7] - ldrb r0, [r1, #1] - adds r0, #1 - strb r0, [r1, #1] -_08040F52: - mov r7, sb - cmp r7, #0 - beq _08040F5C -_08040F58: - mov r0, sb - b _08040F84 -_08040F5C: - ldr r5, _08040F94 - ldr r2, [r5] - ldr r0, _08040F98 - ldrb r1, [r2, #1] - adds r7, r5, #0 - mov r8, r0 - ldrb r0, [r0] - cmp r1, r0 - bhs _08040F78 -_08040F6E: - ldrb r0, [r2] - cmp r0, #0x13 - bhi _08040F78 - bl sub_080405A8 -_08040F78: - ldr r0, _08040F9C - ldr r1, [r0] - ldr r2, _08040FA0 - ands r1, r2 - str r1, [r0] - movs r0, #0 -_08040F84: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08040F94: .4byte gUnknown_2024140 -_08040F98: .4byte gUnknown_2023D10 -_08040F9C: .4byte gUnknown_2023F24 -_08040FA0: .4byte 0xFEFFFFDF - thumb_func_end sub_080405A8 - - thumb_func_start HandleWishPerishSongOnTurnEnd -HandleWishPerishSongOnTurnEnd: @ 0x08040FA4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r2, _08040FD8 - ldr r0, [r2] - ldr r1, _08040FDC - orrs r0, r1 - str r0, [r2] - ldr r1, _08040FE0 - ldr r3, [r1] - movs r4, #0xd0 - lsls r4, r4, #1 - adds r0, r3, r4 - ldrb r0, [r0] - mov sl, r2 - adds r6, r1, #0 - cmp r0, #1 - bne _08040FCE - b _08041188 -_08040FCE: - cmp r0, #1 - bgt _08040FE4 - cmp r0, #0 - beq _08040FEC - b _08041348 - .align 2, 0 -_08040FD8: .4byte gUnknown_2023F24 -_08040FDC: .4byte 0x01000020 -_08040FE0: .4byte gUnknown_2024140 -_08040FE4: - cmp r0, #2 - bne _08040FEA - b _080412DA -_08040FEA: - b _08041348 -_08040FEC: - ldr r2, _08041030 - adds r0, r3, r2 - ldr r1, _08041034 - ldrb r0, [r0] - mov r8, r1 - ldrb r7, [r1] - cmp r0, r7 - blo _08040FFE - b _08041172 -_08040FFE: - ldr r4, _08041038 - ldr r5, _0804103C - ldr r7, _08041040 - movs r0, #0x18 - adds r0, r0, r7 - mov ip, r0 -_0804100A: - ldr r0, [r6] - adds r3, r0, r2 - ldrb r0, [r3] - strb r0, [r4] - ldr r0, _08041044 - ldrb r1, [r0] - ldr r2, _08041048 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _0804104C - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - b _08041160 - .align 2, 0 -_08041030: .4byte 0x000001A1 -_08041034: .4byte gUnknown_2023D10 -_08041038: .4byte gUnknown_2023D08 -_0804103C: .4byte gUnknown_2022C0C -_08041040: .4byte gUnknown_2024074 -_08041044: .4byte gUnknown_2023EB4 -_08041048: .4byte gUnknown_82FACB4 -_0804104C: - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - ldr r1, _08041090 - ldrb r0, [r4] - adds r2, r0, r1 - ldrb r0, [r2] - mov sb, r1 - cmp r0, #0 - bne _08041062 - b _08041160 -_08041062: - subs r0, #1 - strb r0, [r2] - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - bne _08041160 - ldr r1, _08041094 - ldrb r2, [r4] - movs r0, #0x58 - muls r0, r2, r0 - adds r0, r0, r1 - ldrh r0, [r0, #0x28] - cmp r0, #0 - beq _08041160 - lsls r0, r2, #1 - add r0, ip - ldrh r0, [r0] - cmp r0, #0xf8 - bne _0804109C - ldr r0, _08041098 - strb r3, [r0, #5] - b _080410A2 - .align 2, 0 -_08041090: .4byte gUnknown_2024074 -_08041094: .4byte gUnknown_2023D28 -_08041098: .4byte gUnknown_2023FD6 -_0804109C: - ldr r1, _0804113C - movs r0, #1 - strb r0, [r1, #5] -_080410A2: - movs r0, #0xfd - strb r0, [r5] - movs r6, #2 - movs r0, #2 - strb r0, [r5, #1] - ldrb r0, [r4] - lsls r0, r0, #1 - add r0, ip - ldrh r0, [r0] - strb r0, [r5, #2] - ldrb r0, [r4] - lsls r0, r0, #1 - add r0, ip - ldrh r0, [r0] - lsrs r0, r0, #8 - strb r0, [r5, #3] - movs r0, #0xff - strb r0, [r5, #4] - ldr r5, _08041140 - ldrb r0, [r4] - strb r0, [r5] - ldr r1, _08041144 - adds r0, r7, #4 - ldrb r2, [r4] - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r1] - ldr r2, _08041148 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r1, r7, #0 - adds r1, #8 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r2] - ldr r2, _0804114C - ldrb r1, [r5] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #4 - adds r0, r0, r2 - ldr r1, _08041150 - str r1, [r0] - ldr r0, _08041154 - bl BattleScriptExecute - ldrb r1, [r4] - adds r0, r1, r7 - ldrb r0, [r0] - cmp r0, #0 - beq _0804110C - b _080412A4 -_0804110C: - eors r1, r6 - mov r3, sb - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, #0 - beq _0804111A - b _080412A4 -_0804111A: - ldrb r0, [r5] - bl sub_080A630C - ldr r2, _08041158 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - ands r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r1, [r0] - ldr r4, _0804115C - adds r2, r4, #0 - ands r1, r2 - strh r1, [r0] - b _080412A4 - .align 2, 0 -_0804113C: .4byte gUnknown_2023FD6 -_08041140: .4byte gUnknown_2023EB0 -_08041144: .4byte gUnknown_2023EAF -_08041148: .4byte gUnknown_2023E94 -_0804114C: .4byte gUnknown_2024020 -_08041150: .4byte 0x0000FFFF -_08041154: .4byte gUnknown_828956C -_08041158: .4byte gUnknown_2023F32 -_0804115C: .4byte 0x0000FFBF -_08041160: - ldr r0, [r6] - ldr r2, _080411D8 - adds r0, r0, r2 - ldrb r0, [r0] - mov r1, r8 - ldrb r1, [r1] - cmp r0, r1 - bhs _08041172 - b _0804100A -_08041172: - ldr r0, [r6] - movs r2, #0xd0 - lsls r2, r2, #1 - adds r0, r0, r2 - movs r1, #1 - strb r1, [r0] - ldr r0, [r6] - ldr r3, _080411D8 - adds r1, r0, r3 - movs r0, #0 - strb r0, [r1] -_08041188: - adds r3, r6, #0 - ldr r0, [r6] - ldr r2, _080411D8 - adds r0, r0, r2 - ldr r1, _080411DC - ldrb r0, [r0] - mov r8, r1 - ldrb r4, [r1] - cmp r0, r4 - blo _0804119E - b _080412C4 -_0804119E: - ldr r5, _080411E0 - ldr r4, _080411E4 - ldr r7, _080411E8 - mov ip, r7 - ldr r0, _080411EC - mov sb, r0 -_080411AA: - ldr r1, _080411F0 - ldr r0, [r3] - adds r3, r0, r2 - ldrb r0, [r3] - adds r0, r0, r1 - ldrb r0, [r0] - mov r1, sb - strb r0, [r1] - strb r0, [r5] - ldr r0, _080411F4 - ldrb r1, [r0] - ldr r2, _080411F8 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _080411FC - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - b _080412B0 - .align 2, 0 -_080411D8: .4byte 0x000001A1 -_080411DC: .4byte gUnknown_2023D10 -_080411E0: .4byte gUnknown_2023D08 -_080411E4: .4byte gUnknown_2022C0C -_080411E8: .4byte gUnknown_2023F60 -_080411EC: .4byte gUnknown_2023EAF -_080411F0: .4byte gUnknown_2023D22 -_080411F4: .4byte gUnknown_2023EB4 -_080411F8: .4byte gUnknown_82FACB4 -_080411FC: - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - ldr r7, _08041270 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r7 - ldr r0, [r0] - movs r1, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080412B0 - movs r0, #0xfd - strb r0, [r4] - movs r0, #1 - strb r0, [r4, #1] - strb r0, [r4, #2] - strb r0, [r4, #3] - ldrb r1, [r5] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - add r0, ip - ldrb r0, [r0, #0xf] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - strb r0, [r4, #4] - movs r0, #0xff - strb r0, [r4, #5] - ldrb r2, [r5] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - mov r3, ip - adds r4, r0, r3 - ldrb r3, [r4, #0xf] - lsls r1, r3, #0x1c - cmp r1, #0 - bne _08041284 - lsls r2, r2, #2 - adds r2, r2, r7 - ldr r0, [r2] - movs r1, #0x21 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r2] - ldr r3, _08041274 - ldr r2, _08041278 - ldrb r1, [r5] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - ldrh r0, [r0, #0x28] - str r0, [r3] - ldr r1, _0804127C - ldr r0, _08041280 - b _0804129C - .align 2, 0 -_08041270: .4byte gUnknown_2023F50 -_08041274: .4byte gUnknown_2023E94 -_08041278: .4byte gUnknown_2023D28 -_0804127C: .4byte gUnknown_2023EB8 -_08041280: .4byte gUnknown_828948D -_08041284: - lsrs r1, r1, #0x1c - subs r1, #1 - movs r0, #0xf - ands r1, r0 - movs r7, #0x10 - rsbs r7, r7, #0 - adds r0, r7, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r4, #0xf] - ldr r1, _080412A8 - ldr r0, _080412AC -_0804129C: - str r0, [r1] - ldr r0, [r1] - bl BattleScriptExecute -_080412A4: - movs r0, #1 - b _08041354 - .align 2, 0 -_080412A8: .4byte gUnknown_2023EB8 -_080412AC: .4byte gUnknown_82894A8 -_080412B0: - adds r3, r6, #0 - ldr r0, [r6] - ldr r2, _08041330 - adds r0, r0, r2 - ldrb r0, [r0] - mov r1, r8 - ldrb r1, [r1] - cmp r0, r1 - bhs _080412C4 - b _080411AA -_080412C4: - ldr r0, [r6] - movs r2, #0xd0 - lsls r2, r2, #1 - adds r0, r0, r2 - movs r1, #2 - strb r1, [r0] - ldr r0, [r6] - ldr r3, _08041330 - adds r1, r0, r3 - movs r0, #0 - strb r0, [r1] -_080412DA: - ldr r0, _08041334 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xb - ands r0, r1 - cmp r0, #0 - beq _08041348 - ldr r0, [r6] - adds r0, #0xda - ldrb r0, [r0] - cmp r0, #2 - bne _08041348 - ldr r1, _08041338 - ldrh r0, [r1, #0x28] - cmp r0, #0 - beq _08041348 - adds r0, r1, #0 - adds r0, #0x80 - ldrh r0, [r0] - cmp r0, #0 - beq _08041348 - movs r4, #0 -_08041306: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl CancelMultiTurnMoves - adds r4, #1 - cmp r4, #1 - ble _08041306 - ldr r1, _0804133C - ldr r0, _08041340 - str r0, [r1] - bl BattleScriptExecute - ldr r0, _08041344 - ldr r1, [r0] - movs r4, #0xd0 - lsls r4, r4, #1 - adds r1, r1, r4 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080412A4 - .align 2, 0 -_08041330: .4byte 0x000001A1 -_08041334: .4byte gUnknown_2022C90 -_08041338: .4byte gUnknown_2023D28 -_0804133C: .4byte gUnknown_2023EB8 -_08041340: .4byte gUnknown_8289E7B -_08041344: .4byte gUnknown_2024140 -_08041348: - mov r7, sl - ldr r0, [r7] - ldr r1, _08041364 - ands r0, r1 - str r0, [r7] - movs r0, #0 -_08041354: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08041364: .4byte 0xFEFFFFDF - thumb_func_end HandleWishPerishSongOnTurnEnd - - thumb_func_start HandleFaintedMonActions -HandleFaintedMonActions: @ 0x08041368 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - ldr r0, _08041380 - ldr r0, [r0] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080413B0 - b _0804164A - .align 2, 0 -_08041380: .4byte gUnknown_2022C90 -_08041384: - ldr r0, _08041394 - bl BattleScriptExecute - ldr r0, [r5] - adds r0, #0x4d - movs r1, #2 - b _080413A4 - .align 2, 0 -_08041394: .4byte gUnknown_8288D4C -_08041398: - ldr r0, _080413AC - bl BattleScriptExecute - ldr r0, [r5] - adds r0, #0x4d - movs r1, #5 -_080413A4: - strb r1, [r0] -_080413A6: - movs r0, #1 - b _0804164C - .align 2, 0 -_080413AC: .4byte gUnknown_8288D55 -_080413B0: - ldr r0, _080413CC - mov r8, r0 -_080413B4: - mov r1, r8 - ldr r0, [r1] - adds r0, #0x4d - ldrb r0, [r0] - cmp r0, #7 - bls _080413C2 - b _0804163C -_080413C2: - lsls r0, r0, #2 - ldr r1, _080413D0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080413CC: .4byte gUnknown_2024140 -_080413D0: .4byte _080413D4 -_080413D4: @ jump table - .4byte _080413F4 @ case 0 - .4byte _08041446 @ case 1 - .4byte _080414E0 @ case 2 - .4byte _08041522 @ case 3 - .4byte _08041536 @ case 4 - .4byte _080415A0 @ case 5 - .4byte _080415D4 @ case 6 - .4byte _0804163C @ case 7 -_080413F4: - mov r4, r8 - ldr r0, [r4] - adds r0, #0x4e - movs r1, #0 - strb r1, [r0] - ldr r1, [r4] - adds r1, #0x4d - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r5, #0 - ldr r0, _080414C0 - ldrb r0, [r0] - cmp r5, r0 - bge _08041446 - ldr r6, _080414C4 -_08041414: - ldrb r0, [r6] - ldr r2, _080414C8 - lsls r1, r5, #2 - adds r1, r1, r2 - ldr r4, [r1] - ands r0, r4 - cmp r0, #0 - beq _0804143C - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - movs r1, #6 - movs r2, #6 - bl HasNoMonsToSwitch - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0804143C - ldrb r0, [r6] - bics r0, r4 - strb r0, [r6] -_0804143C: - adds r5, #1 - ldr r0, _080414C0 - ldrb r0, [r0] - cmp r5, r0 - blt _08041414 -_08041446: - ldr r0, _080414CC - mov r8, r0 - ldr r1, _080414D0 - mov ip, r1 - ldr r2, _080414D4 - mov r5, r8 - ldr r7, _080414D8 - ldr r6, _080414DC -_08041456: - ldr r3, [r5] - adds r1, r3, #0 - adds r1, #0x4e - ldrb r0, [r1] - strb r0, [r2] - mov r4, ip - strb r0, [r4] - ldrb r4, [r1] - movs r0, #0x58 - muls r0, r4, r0 - adds r0, r0, r7 - ldrh r0, [r0, #0x28] - cmp r0, #0 - bne _0804149E - adds r0, r3, #0 - adds r0, #0xdf - ldrb r1, [r0] - ldr r3, _080414C8 - lsls r0, r4, #1 - adds r0, r0, r6 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r3 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _0804149E - ldr r0, _080414C4 - ldrb r1, [r0] - lsls r0, r4, #2 - adds r0, r0, r3 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _0804149E - b _08041384 -_0804149E: - ldr r0, [r5] - adds r0, #0x4e - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - ldr r0, _080414C0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrb r0, [r0] - cmp r1, r0 - bne _08041456 - mov r1, r8 - ldr r0, [r1] - adds r0, #0x4d - movs r1, #3 - strb r1, [r0] - b _0804163C - .align 2, 0 -_080414C0: .4byte gUnknown_2023D10 -_080414C4: .4byte gUnknown_2023EB4 -_080414C8: .4byte gUnknown_82FACB4 -_080414CC: .4byte gUnknown_2024140 -_080414D0: .4byte gUnknown_2023EB1 -_080414D4: .4byte gUnknown_2023EB0 -_080414D8: .4byte gUnknown_2023D28 -_080414DC: .4byte gUnknown_2023D12 -_080414E0: - ldr r0, _0804150C - ldrb r0, [r0] - bl sub_0803F62C - ldr r2, _08041510 - ldr r1, [r2] - adds r1, #0x4e - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r1, _08041514 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1] - cmp r0, r1 - bne _08041518 - ldr r0, [r2] - adds r0, #0x4d - movs r1, #3 - strb r1, [r0] - b _0804163A - .align 2, 0 -_0804150C: .4byte gUnknown_2023EB1 -_08041510: .4byte gUnknown_2024140 -_08041514: .4byte gUnknown_2023D10 -_08041518: - ldr r0, [r2] - adds r0, #0x4d - movs r1, #1 - strb r1, [r0] - b _0804163A -_08041522: - mov r4, r8 - ldr r0, [r4] - adds r0, #0x4e - movs r1, #0 - strb r1, [r0] - ldr r1, [r4] - adds r1, #0x4d - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_08041536: - ldr r0, _08041584 - mov ip, r0 - ldr r7, _08041588 - ldr r5, _0804158C - ldr r2, _08041590 - ldr r6, _08041594 -_08041542: - ldr r0, [r5] - adds r4, r0, #0 - adds r4, #0x4e - ldrb r0, [r4] - strb r0, [r7] - mov r1, ip - strb r0, [r1] - ldrb r3, [r4] - movs r0, #0x58 - muls r0, r3, r0 - adds r0, r0, r2 - ldrh r0, [r0, #0x28] - cmp r0, #0 - bne _08041570 - ldr r0, _08041598 - ldrb r1, [r0] - lsls r0, r3, #2 - adds r0, r0, r6 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _08041570 - b _08041398 -_08041570: - adds r0, r3, #1 - strb r0, [r4] - ldr r1, _0804159C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1] - cmp r0, r1 - bne _08041542 - b _080415B8 - .align 2, 0 -_08041584: .4byte gUnknown_2023EB1 -_08041588: .4byte gUnknown_2023EB0 -_0804158C: .4byte gUnknown_2024140 -_08041590: .4byte gUnknown_2023D28 -_08041594: .4byte gUnknown_82FACB4 -_08041598: .4byte gUnknown_2023EB4 -_0804159C: .4byte gUnknown_2023D10 -_080415A0: - mov r1, r8 - ldr r0, [r1] - adds r0, #0x4e - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - ldr r0, _080415C4 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrb r0, [r0] - cmp r1, r0 - bne _080415C8 -_080415B8: - mov r4, r8 - ldr r0, [r4] - adds r0, #0x4d - movs r1, #6 - strb r1, [r0] - b _0804163C - .align 2, 0 -_080415C4: .4byte gUnknown_2023D10 -_080415C8: - mov r1, r8 - ldr r0, [r1] - adds r0, #0x4d - movs r1, #4 - strb r1, [r0] - b _0804163C -_080415D4: - movs r0, #0 - str r0, [sp] - movs r0, #9 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _080415EE - b _080413A6 -_080415EE: - str r0, [sp] - movs r0, #0xb - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08041604 - b _080413A6 -_08041604: - movs r0, #1 - movs r1, #0 - movs r2, #1 - bl ItemBattleEffects - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _08041618 - b _080413A6 -_08041618: - str r0, [sp] - movs r0, #6 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0804162E - b _080413A6 -_0804162E: - ldr r2, _08041658 - ldr r1, [r2] - adds r1, #0x4d - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_0804163A: - mov r8, r2 -_0804163C: - mov r4, r8 - ldr r0, [r4] - adds r0, #0x4d - ldrb r0, [r0] - cmp r0, #7 - beq _0804164A - b _080413B4 -_0804164A: - movs r0, #0 -_0804164C: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08041658: .4byte gUnknown_2024140 - thumb_func_end HandleFaintedMonActions - - thumb_func_start TryClearRageStatuses -TryClearRageStatuses: @ 0x0804165C - push {r4, r5, r6, lr} - movs r3, #0 - ldr r0, _0804169C - adds r5, r0, #0 - ldrb r0, [r5] - cmp r3, r0 - bge _08041694 - ldr r4, _080416A0 - movs r6, #0x80 - lsls r6, r6, #0x10 - ldr r2, _080416A4 -_08041672: - ldr r1, [r2] - adds r0, r1, #0 - ands r0, r6 - cmp r0, #0 - beq _08041688 - ldrh r0, [r4] - cmp r0, #0x63 - beq _08041688 - ldr r0, _080416A8 - ands r1, r0 - str r1, [r2] -_08041688: - adds r4, #2 - adds r2, #0x58 - adds r3, #1 - ldrb r0, [r5] - cmp r3, r0 - blt _08041672 -_08041694: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0804169C: .4byte gUnknown_2023D10 -_080416A0: .4byte gUnknown_2023F18 -_080416A4: .4byte gUnknown_2023D78 -_080416A8: .4byte 0xFF7FFFFF - thumb_func_end TryClearRageStatuses - - thumb_func_start sub_080416AC -sub_080416AC: @ 0x080416AC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - movs r0, #0 - mov sb, r0 - ldr r1, _080416C8 - mov sl, r1 - ldr r2, _080416CC - mov r8, r2 - b _080416DA - .align 2, 0 -_080416C8: .4byte gUnknown_202411C -_080416CC: .4byte gUnknown_2024140 - thumb_func_end sub_080416AC - - thumb_func_start sub_080416D0 -sub_080416D0: @ 0x080416D0 - mov r3, sb - cmp r3, #0 - beq _080416DA - bl _08041FC8 -_080416DA: - mov r4, r8 - ldr r0, [r4] - ldr r7, _080416F8 - adds r0, r0, r7 - ldrb r0, [r0] - cmp r0, #0xe - bls _080416EC - bl _08041FB6 -_080416EC: - lsls r0, r0, #2 - ldr r1, _080416FC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080416F8: .4byte 0x000001A3 -_080416FC: .4byte _08041700 -_08041700: @ jump table - .4byte _0804173C @ case 0 - .4byte _08041788 @ case 1 - .4byte _080418D0 @ case 2 - .4byte _08041990 @ case 3 - .4byte _08041A04 @ case 4 - .4byte _08041A80 @ case 5 - .4byte _08041AF8 @ case 6 - .4byte _08041B78 @ case 7 - .4byte _08041C00 @ case 8 - .4byte _08041C68 @ case 9 - .4byte _08041D54 @ case 10 - .4byte _08041DD4 @ case 11 - .4byte _08041E74 @ case 12 - .4byte _08041F5C @ case 13 - .4byte _08041FB6 @ case 14 -_0804173C: - ldr r1, _08041770 - ldr r3, _08041774 - ldrb r2, [r3] - movs r0, #0x58 - muls r2, r0, r2 - adds r1, #0x50 - adds r2, r2, r1 - ldr r0, [r2] - ldr r1, _08041778 - ands r0, r1 - str r0, [r2] - ldr r0, _0804177C - ldrb r2, [r3] - lsls r2, r2, #2 - adds r2, r2, r0 - ldr r0, [r2] - ldr r1, _08041780 - ands r0, r1 - str r0, [r2] - mov r1, r8 - ldr r0, [r1] - ldr r2, _08041784 - adds r1, r0, r2 - bl _08041FB0 - .align 2, 0 -_08041770: .4byte gUnknown_2023D28 -_08041774: .4byte gUnknown_2023EAF -_08041778: .4byte 0xFDFFFFFF -_0804177C: .4byte gUnknown_2023F50 -_08041780: .4byte 0xFFFFBFFF -_08041784: .4byte 0x000001A3 -_08041788: - ldr r7, _080417F0 - ldr r4, _080417F4 - ldrb r1, [r4] - movs r5, #0x58 - adds r0, r1, #0 - muls r0, r5, r0 - adds r6, r7, #0 - adds r6, #0x4c - adds r0, r0, r6 - ldr r0, [r0] - movs r3, #7 - mov r8, r3 - ands r0, r3 - cmp r0, #0 - bne _080417A8 - b _080418AE -_080417A8: - adds r0, r1, #0 - bl UproarWakeUpCheck - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08041808 - ldrb r0, [r4] - adds r2, r0, #0 - muls r2, r5, r2 - adds r2, r2, r6 - ldr r0, [r2] - movs r1, #8 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r2] - ldrb r0, [r4] - adds r2, r0, #0 - muls r2, r5, r2 - adds r0, r7, #0 - adds r0, #0x50 - adds r2, r2, r0 - ldr r0, [r2] - ldr r1, _080417F8 - ands r0, r1 - str r0, [r2] - bl BattleScriptPushCursor - ldr r1, _080417FC - movs r0, #1 - strb r0, [r1, #5] - ldr r1, _08041800 - ldr r0, _08041804 - str r0, [r1] - movs r4, #2 - mov sb, r4 - b _080418AE - .align 2, 0 -_080417F0: .4byte gUnknown_2023D28 -_080417F4: .4byte gUnknown_2023EAF -_080417F8: .4byte 0xF7FFFFFF -_080417FC: .4byte gUnknown_2023FD6 -_08041800: .4byte gUnknown_2023EB8 -_08041804: .4byte gUnknown_82897A8 -_08041808: - ldrb r0, [r4] - adds r1, r0, #0 - muls r1, r5, r1 - adds r0, r1, r7 - adds r0, #0x20 - ldrb r0, [r0] - movs r3, #1 - cmp r0, #0x30 - bne _0804181C - movs r3, #2 -_0804181C: - adds r2, r1, r6 - ldr r1, [r2] - adds r0, r1, #0 - mov r7, r8 - ands r0, r7 - cmp r0, r3 - bhs _08041834 - movs r0, #8 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r2] - b _08041838 -_08041834: - subs r0, r1, r3 - str r0, [r2] -_08041838: - ldr r2, _08041878 - ldr r0, _0804187C - ldrb r1, [r0] - movs r0, #0x58 - muls r1, r0, r1 - adds r0, r2, #0 - adds r0, #0x4c - adds r0, r1, r0 - ldr r4, [r0] - movs r0, #7 - ands r4, r0 - cmp r4, #0 - beq _08041890 - ldr r0, _08041880 - ldrh r0, [r0] - cmp r0, #0xad - beq _080418AE - cmp r0, #0xd6 - beq _080418AE - ldr r1, _08041884 - ldr r0, _08041888 - str r0, [r1] - ldr r2, _0804188C - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0xc - orrs r0, r1 - str r0, [r2] - movs r0, #2 - mov sb, r0 - b _080418AE - .align 2, 0 -_08041878: .4byte gUnknown_2023D28 -_0804187C: .4byte gUnknown_2023EAF -_08041880: .4byte gUnknown_2023E8E -_08041884: .4byte gUnknown_2023EB8 -_08041888: .4byte gUnknown_828979B -_0804188C: .4byte gUnknown_2023F24 -_08041890: - adds r2, #0x50 - adds r2, r1, r2 - ldr r0, [r2] - ldr r1, _080418B8 - ands r0, r1 - str r0, [r2] - bl BattleScriptPushCursor - ldr r0, _080418BC - strb r4, [r0, #5] - ldr r1, _080418C0 - ldr r0, _080418C4 - str r0, [r1] - movs r1, #2 - mov sb, r1 -_080418AE: - ldr r1, _080418C8 - ldr r0, [r1] - ldr r3, _080418CC - adds r2, r0, r3 - b _08041DAA - .align 2, 0 -_080418B8: .4byte 0xF7FFFFFF -_080418BC: .4byte gUnknown_2023FD6 -_080418C0: .4byte gUnknown_2023EB8 -_080418C4: .4byte gUnknown_82897A8 -_080418C8: .4byte gUnknown_2024140 -_080418CC: .4byte 0x000001A3 -_080418D0: - ldr r1, _0804192C - ldr r7, _08041930 - ldrb r0, [r7] - movs r6, #0x58 - muls r0, r6, r0 - adds r5, r1, #0 - adds r5, #0x4c - adds r0, r0, r5 - ldr r0, [r0] - movs r1, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08041970 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #5 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0 - beq _08041948 - ldr r2, _08041934 - ldr r0, _08041938 - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #0x7d - bne _08041916 - b _08041DA2 -_08041916: - ldr r1, _0804193C - ldr r0, _08041940 - str r0, [r1] - ldr r2, _08041944 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #2 - orrs r0, r1 - str r0, [r2] - b _08041968 - .align 2, 0 -_0804192C: .4byte gUnknown_2023D28 -_08041930: .4byte gUnknown_2023EAF -_08041934: .4byte gUnknown_82ED220 -_08041938: .4byte gUnknown_2023E8E -_0804193C: .4byte gUnknown_2023EB8 -_08041940: .4byte gUnknown_82897F2 -_08041944: .4byte gUnknown_2023F24 -_08041948: - ldrb r0, [r7] - adds r2, r0, #0 - muls r2, r6, r2 - adds r2, r2, r5 - ldr r0, [r2] - movs r1, #0x21 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r2] - bl BattleScriptPushCursor - ldr r1, _0804197C - ldr r0, _08041980 - str r0, [r1] - ldr r0, _08041984 - strb r4, [r0, #5] -_08041968: - movs r7, #2 - mov sb, r7 - ldr r0, _08041988 - mov r8, r0 -_08041970: - mov r1, r8 - ldr r0, [r1] - ldr r2, _0804198C - adds r1, r0, r2 - b _08041FB0 - .align 2, 0 -_0804197C: .4byte gUnknown_2023EB8 -_08041980: .4byte gUnknown_82897FF -_08041984: .4byte gUnknown_2023FD6 -_08041988: .4byte gUnknown_2024140 -_0804198C: .4byte 0x000001A3 -_08041990: - ldr r1, _080419E4 - ldr r0, _080419E8 - ldrb r2, [r0] - movs r0, #0x58 - muls r0, r2, r0 - adds r0, r0, r1 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x36 - beq _080419A6 - b _08041DA2 -_080419A6: - ldr r0, _080419EC - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #0x18] - lsls r0, r0, #0x1f - cmp r0, #0 - bne _080419BA - b _08041DA2 -_080419BA: - adds r0, r2, #0 - bl CancelMultiTurnMoves - ldr r2, _080419F0 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0xc - orrs r0, r1 - str r0, [r2] - ldr r1, _080419F4 - movs r0, #0 - strb r0, [r1, #5] - ldr r1, _080419F8 - ldr r0, _080419FC - str r0, [r1] - ldr r2, _08041A00 - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - b _08041D9E - .align 2, 0 -_080419E4: .4byte gUnknown_2023D28 -_080419E8: .4byte gUnknown_2023EAF -_080419EC: .4byte gUnknown_2023F60 -_080419F0: .4byte gUnknown_2023F24 -_080419F4: .4byte gUnknown_2023FD6 -_080419F8: .4byte gUnknown_2023EB8 -_080419FC: .4byte gUnknown_8289C35 -_08041A00: .4byte gUnknown_2023F20 -_08041A04: - ldr r1, _08041A5C - ldr r3, _08041A60 - ldrb r2, [r3] - movs r0, #0x58 - muls r0, r2, r0 - adds r1, #0x50 - adds r2, r0, r1 - ldr r1, [r2] - movs r0, #0x80 - lsls r0, r0, #0xf - ands r0, r1 - cmp r0, #0 - beq _08041A50 - ldr r0, _08041A64 - ands r1, r0 - str r1, [r2] - ldr r2, _08041A68 - ldrb r1, [r3] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0 - strb r1, [r0, #0x19] - ldrb r0, [r3] - bl CancelMultiTurnMoves - ldr r1, _08041A6C - ldr r0, _08041A70 - str r0, [r1] - ldr r2, _08041A74 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0xc - orrs r0, r1 - str r0, [r2] - movs r7, #1 - mov sb, r7 -_08041A50: - ldr r1, _08041A78 - ldr r0, [r1] - ldr r3, _08041A7C - adds r2, r0, r3 - b _08041DAA - .align 2, 0 -_08041A5C: .4byte gUnknown_2023D28 -_08041A60: .4byte gUnknown_2023EAF -_08041A64: .4byte 0xFFBFFFFF -_08041A68: .4byte gUnknown_2023F60 -_08041A6C: .4byte gUnknown_2023EB8 -_08041A70: .4byte gUnknown_82879EA -_08041A74: .4byte gUnknown_2023F24 -_08041A78: .4byte gUnknown_2024140 -_08041A7C: .4byte 0x000001A3 -_08041A80: - ldr r1, _08041AD8 - ldr r3, _08041ADC - ldrb r2, [r3] - movs r0, #0x58 - muls r0, r2, r0 - adds r1, #0x50 - adds r2, r0, r1 - ldr r1, [r2] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08041ACC - movs r0, #9 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r2] - ldr r0, _08041AE0 - ldrb r2, [r3] - lsls r2, r2, #4 - adds r2, r2, r0 - ldrb r0, [r2, #2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2, #2] - ldrb r0, [r3] - bl CancelMultiTurnMoves - ldr r1, _08041AE4 - ldr r0, _08041AE8 - str r0, [r1] - ldr r2, _08041AEC - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0xc - orrs r0, r1 - str r0, [r2] - movs r4, #1 - mov sb, r4 -_08041ACC: - ldr r1, _08041AF0 - ldr r0, [r1] - ldr r7, _08041AF4 - adds r2, r0, r7 - b _08041DAA - .align 2, 0 -_08041AD8: .4byte gUnknown_2023D28 -_08041ADC: .4byte gUnknown_2023EAF -_08041AE0: .4byte gUnknown_2023FE0 -_08041AE4: .4byte gUnknown_2023EB8 -_08041AE8: .4byte gUnknown_8289823 -_08041AEC: .4byte gUnknown_2023F24 -_08041AF0: .4byte gUnknown_2024140 -_08041AF4: .4byte 0x000001A3 -_08041AF8: - ldr r0, _08041B50 - ldr r3, _08041B54 - ldrb r2, [r3] - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, _08041B58 - ldrh r1, [r1, #4] - ldrh r0, [r0] - cmp r1, r0 - bne _08041B44 - cmp r1, #0 - beq _08041B44 - ldr r0, _08041B5C - lsls r2, r2, #4 - adds r2, r2, r0 - ldrb r0, [r2, #1] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #1] - ldr r1, _08041B60 - ldrb r0, [r3] - strb r0, [r1, #0x17] - ldrb r0, [r3] - bl CancelMultiTurnMoves - ldr r1, _08041B64 - ldr r0, _08041B68 - str r0, [r1] - ldr r2, _08041B6C - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0xc - orrs r0, r1 - str r0, [r2] - movs r0, #1 - mov sb, r0 -_08041B44: - ldr r1, _08041B70 - ldr r0, [r1] - ldr r3, _08041B74 - adds r2, r0, r3 - b _08041DAA - .align 2, 0 -_08041B50: .4byte gUnknown_2023F60 -_08041B54: .4byte gUnknown_2023EAF -_08041B58: .4byte gUnknown_2023E8E -_08041B5C: .4byte gUnknown_2023FE0 -_08041B60: .4byte gUnknown_2024118 -_08041B64: .4byte gUnknown_2023EB8 -_08041B68: .4byte gUnknown_828939C -_08041B6C: .4byte gUnknown_2023F24 -_08041B70: .4byte gUnknown_2024140 -_08041B74: .4byte 0x000001A3 -_08041B78: - ldr r0, _08041BD8 - ldr r4, _08041BDC - ldrb r3, [r4] - lsls r1, r3, #3 - subs r1, r1, r3 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #0x13] - lsls r0, r0, #0x1c - cmp r0, #0 - beq _08041BCC - ldr r2, _08041BE0 - ldr r0, _08041BE4 - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #1] - cmp r0, #0 - bne _08041BCC - ldr r0, _08041BE8 - lsls r2, r3, #4 - adds r2, r2, r0 - ldrb r0, [r2, #2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #2] - ldrb r0, [r4] - bl CancelMultiTurnMoves - ldr r1, _08041BEC - ldr r0, _08041BF0 - str r0, [r1] - ldr r2, _08041BF4 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0xc - orrs r0, r1 - str r0, [r2] - movs r4, #1 - mov sb, r4 -_08041BCC: - ldr r1, _08041BF8 - ldr r0, [r1] - ldr r7, _08041BFC - adds r2, r0, r7 - b _08041DAA - .align 2, 0 -_08041BD8: .4byte gUnknown_2023F60 -_08041BDC: .4byte gUnknown_2023EAF -_08041BE0: .4byte gUnknown_82ED220 -_08041BE4: .4byte gUnknown_2023E8E -_08041BE8: .4byte gUnknown_2023FE0 -_08041BEC: .4byte gUnknown_2023EB8 -_08041BF0: .4byte gUnknown_828962C -_08041BF4: .4byte gUnknown_2023F24 -_08041BF8: .4byte gUnknown_2024140 -_08041BFC: .4byte 0x000001A3 -_08041C00: - ldr r4, _08041C48 - ldrb r0, [r4] - ldr r1, _08041C4C - ldrh r1, [r1] - bl GetImprisonedMovesCount - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08041C3E - ldr r0, _08041C50 - ldrb r2, [r4] - lsls r2, r2, #4 - adds r2, r2, r0 - ldrb r0, [r2, #1] - movs r1, #0x20 - orrs r0, r1 - strb r0, [r2, #1] - ldrb r0, [r4] - bl CancelMultiTurnMoves - ldr r1, _08041C54 - ldr r0, _08041C58 - str r0, [r1] - ldr r2, _08041C5C - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0xc - orrs r0, r1 - str r0, [r2] - movs r0, #1 - mov sb, r0 -_08041C3E: - ldr r1, _08041C60 - ldr r0, [r1] - ldr r3, _08041C64 - adds r2, r0, r3 - b _08041DAA - .align 2, 0 -_08041C48: .4byte gUnknown_2023EAF -_08041C4C: .4byte gUnknown_2023E8E -_08041C50: .4byte gUnknown_2023FE0 -_08041C54: .4byte gUnknown_2023EB8 -_08041C58: .4byte gUnknown_82896FE -_08041C5C: .4byte gUnknown_2023F24 -_08041C60: .4byte gUnknown_2024140 -_08041C64: .4byte 0x000001A3 -_08041C68: - ldr r7, _08041CB0 - ldr r5, _08041CB4 - ldrb r0, [r5] - movs r6, #0x58 - muls r0, r6, r0 - adds r4, r7, #0 - adds r4, #0x50 - adds r2, r0, r4 - ldr r1, [r2] - movs r3, #7 - adds r0, r1, #0 - ands r0, r3 - cmp r0, #0 - beq _08041D3A - subs r0, r1, #1 - str r0, [r2] - ldrb r0, [r5] - muls r0, r6, r0 - adds r0, r0, r4 - ldr r0, [r0] - ands r0, r3 - cmp r0, #0 - beq _08041D28 - bl Random - movs r1, #1 - movs r2, #1 - ands r2, r0 - cmp r2, #0 - beq _08041CBC - ldr r1, _08041CB8 - movs r0, #0 - strb r0, [r1, #5] - bl BattleScriptPushCursor - b _08041D06 - .align 2, 0 -_08041CB0: .4byte gUnknown_2023D28 -_08041CB4: .4byte gUnknown_2023EAF -_08041CB8: .4byte gUnknown_2023FD6 -_08041CBC: - ldr r0, _08041D0C - movs r4, #1 - strb r1, [r0, #5] - ldr r1, _08041D10 - ldrb r0, [r5] - strb r0, [r1] - ldrb r0, [r5] - adds r1, r0, #0 - muls r1, r6, r1 - adds r1, r1, r7 - movs r0, #0x28 - str r0, [sp] - str r2, [sp, #4] - ldrb r0, [r5] - str r0, [sp, #8] - ldrb r0, [r5] - str r0, [sp, #0xc] - adds r0, r1, #0 - movs r2, #1 - movs r3, #0 - bl CalculateBaseDamage - ldr r1, _08041D14 - str r0, [r1] - ldr r0, _08041D18 - ldrb r1, [r5] - lsls r1, r1, #4 - adds r1, r1, r0 - ldrb r0, [r1, #1] - orrs r0, r4 - strb r0, [r1, #1] - ldr r2, _08041D1C - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0xc - orrs r0, r1 - str r0, [r2] -_08041D06: - ldr r1, _08041D20 - ldr r0, _08041D24 - b _08041D30 - .align 2, 0 -_08041D0C: .4byte gUnknown_2023FD6 -_08041D10: .4byte gUnknown_2023EB0 -_08041D14: .4byte gUnknown_2023E94 -_08041D18: .4byte gUnknown_2023FE0 -_08041D1C: .4byte gUnknown_2023F24 -_08041D20: .4byte gUnknown_2023EB8 -_08041D24: .4byte gUnknown_8289845 -_08041D28: - bl BattleScriptPushCursor - ldr r1, _08041D44 - ldr r0, _08041D48 -_08041D30: - str r0, [r1] - movs r4, #1 - mov sb, r4 - ldr r7, _08041D4C - mov r8, r7 -_08041D3A: - mov r1, r8 - ldr r0, [r1] - ldr r2, _08041D50 - adds r1, r0, r2 - b _08041FB0 - .align 2, 0 -_08041D44: .4byte gUnknown_2023EB8 -_08041D48: .4byte gUnknown_8289888 -_08041D4C: .4byte gUnknown_2024140 -_08041D50: .4byte 0x000001A3 -_08041D54: - ldr r1, _08041DB4 - ldr r4, _08041DB8 - ldrb r2, [r4] - movs r0, #0x58 - muls r0, r2, r0 - adds r1, #0x4c - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08041DA2 - bl Random - lsls r0, r0, #0x10 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r0 - cmp r1, #0 - bne _08041DA2 - ldr r0, _08041DBC - ldrb r2, [r4] - lsls r2, r2, #4 - adds r2, r2, r0 - ldrb r0, [r2] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, _08041DC0 - ldr r0, _08041DC4 - str r0, [r1] - ldr r2, _08041DC8 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0xc - orrs r0, r1 - str r0, [r2] -_08041D9E: - movs r3, #1 - mov sb, r3 -_08041DA2: - ldr r1, _08041DCC - ldr r0, [r1] - ldr r4, _08041DD0 - adds r2, r0, r4 -_08041DAA: - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - mov r8, r1 - b _08041FB6 - .align 2, 0 -_08041DB4: .4byte gUnknown_2023D28 -_08041DB8: .4byte gUnknown_2023EAF -_08041DBC: .4byte gUnknown_2023FE0 -_08041DC0: .4byte gUnknown_2023EB8 -_08041DC4: .4byte gUnknown_8289813 -_08041DC8: .4byte gUnknown_2023F24 -_08041DCC: .4byte gUnknown_2024140 -_08041DD0: .4byte 0x000001A3 -_08041DD4: - ldr r1, _08041E0C - ldr r4, _08041E10 - ldrb r2, [r4] - movs r0, #0x58 - muls r0, r2, r0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r1, [r0] - movs r0, #0xf0 - lsls r0, r0, #0xc - ands r1, r0 - cmp r1, #0 - beq _08041E4E - lsrs r0, r1, #0x10 - bl CountTrailingZeroBits - ldr r1, _08041E14 - strb r0, [r1, #0x17] - bl Random - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _08041E18 - bl BattleScriptPushCursor - b _08041E40 - .align 2, 0 -_08041E0C: .4byte gUnknown_2023D28 -_08041E10: .4byte gUnknown_2023EAF -_08041E14: .4byte gUnknown_2024118 -_08041E18: - ldr r0, _08041E58 - bl BattleScriptPush - ldr r2, _08041E5C - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0xc - orrs r0, r1 - str r0, [r2] - ldr r0, _08041E60 - ldrb r2, [r4] - lsls r2, r2, #4 - adds r2, r2, r0 - ldrb r0, [r2, #1] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2, #1] - ldrb r0, [r4] - bl CancelMultiTurnMoves -_08041E40: - ldr r1, _08041E64 - ldr r0, _08041E68 - str r0, [r1] - movs r7, #1 - mov sb, r7 - ldr r0, _08041E6C - mov r8, r0 -_08041E4E: - mov r1, r8 - ldr r0, [r1] - ldr r2, _08041E70 - adds r1, r0, r2 - b _08041FB0 - .align 2, 0 -_08041E58: .4byte gUnknown_82898BC -_08041E5C: .4byte gUnknown_2023F24 -_08041E60: .4byte gUnknown_2023FE0 -_08041E64: .4byte gUnknown_2023EB8 -_08041E68: .4byte gUnknown_82898AF -_08041E6C: .4byte gUnknown_2024140 -_08041E70: .4byte 0x000001A3 -_08041E74: - ldr r1, _08041EAC - ldr r6, _08041EB0 - ldrb r0, [r6] - movs r5, #0x58 - muls r0, r5, r0 - adds r1, #0x50 - adds r3, r0, r1 - ldr r2, [r3] - movs r4, #0xc0 - lsls r4, r4, #2 - adds r0, r2, #0 - ands r0, r4 - cmp r0, #0 - beq _08041F46 - ldr r7, _08041EB4 - adds r0, r2, r7 - str r0, [r3] - ldrb r2, [r6] - adds r0, r2, #0 - muls r0, r5, r0 - adds r0, r0, r1 - ldr r0, [r0] - ands r0, r4 - cmp r0, #0 - beq _08041EC0 - ldr r1, _08041EB8 - ldr r0, _08041EBC - b _08041F40 - .align 2, 0 -_08041EAC: .4byte gUnknown_2023D28 -_08041EB0: .4byte gUnknown_2023EAF -_08041EB4: .4byte 0xFFFFFF00 -_08041EB8: .4byte gUnknown_2023EB8 -_08041EBC: .4byte gUnknown_82892F9 -_08041EC0: - ldr r3, _08041F18 - lsls r0, r2, #2 - adds r0, r0, r3 - ldr r0, [r0] - cmp r0, #0 - beq _08041F3C - ldr r1, _08041F1C - movs r0, #0x75 - strh r0, [r1] - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r3 - ldr r0, [r0] - lsls r0, r0, #1 - mov r1, sl - str r0, [r1] - ldr r4, _08041F20 - ldr r1, _08041F24 - ldrb r0, [r6] - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r4] - ldr r0, _08041F28 - ldrb r1, [r0] - ldr r2, _08041F2C - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _08041F0A - movs r0, #0x75 - movs r1, #1 - bl GetMoveTarget - strb r0, [r4] -_08041F0A: - ldr r1, _08041F30 - ldr r0, _08041F34 - str r0, [r1] - ldr r2, _08041F38 - mov r8, r2 - b _08041F42 - .align 2, 0 -_08041F18: .4byte gUnknown_2023E9C -_08041F1C: .4byte gUnknown_2023E8E -_08041F20: .4byte gUnknown_2023EB0 -_08041F24: .4byte gUnknown_2023F2C -_08041F28: .4byte gUnknown_2023EB4 -_08041F2C: .4byte gUnknown_82FACB4 -_08041F30: .4byte gUnknown_2023EB8 -_08041F34: .4byte gUnknown_8289304 -_08041F38: .4byte gUnknown_2024140 -_08041F3C: - ldr r1, _08041F50 - ldr r0, _08041F54 -_08041F40: - str r0, [r1] -_08041F42: - movs r3, #1 - mov sb, r3 -_08041F46: - mov r4, r8 - ldr r0, [r4] - ldr r7, _08041F58 - adds r1, r0, r7 - b _08041FB0 - .align 2, 0 -_08041F50: .4byte gUnknown_2023EB8 -_08041F54: .4byte gUnknown_828934C -_08041F58: .4byte 0x000001A3 -_08041F5C: - ldr r1, _08042008 - ldr r0, _0804200C - ldrb r2, [r0] - movs r0, #0x58 - muls r0, r2, r0 - adds r1, #0x4c - adds r4, r0, r1 - ldr r3, [r4] - movs r0, #0x20 - ands r0, r3 - cmp r0, #0 - beq _08041FA8 - ldr r2, _08042010 - ldr r0, _08042014 - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #0x7d - bne _08041FA0 - movs r0, #0x21 - rsbs r0, r0, #0 - ands r3, r0 - str r3, [r4] - bl BattleScriptPushCursor - ldr r1, _08042018 - ldr r0, _0804201C - str r0, [r1] - ldr r1, _08042020 - movs r0, #1 - strb r0, [r1, #5] -_08041FA0: - movs r0, #2 - mov sb, r0 - ldr r1, _08042024 - mov r8, r1 -_08041FA8: - mov r2, r8 - ldr r0, [r2] - ldr r3, _08042028 - adds r1, r0, r3 -_08041FB0: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_08041FB6: - mov r4, r8 - ldr r0, [r4] - ldr r7, _08042028 - adds r0, r0, r7 - ldrb r0, [r0] - cmp r0, #0xe - beq _08041FC8 - bl sub_080416D0 -_08041FC8: - mov r0, sb - cmp r0, #2 - bne _08041FF4 - ldr r4, _0804202C - ldr r0, _0804200C - ldrb r0, [r0] - strb r0, [r4] - ldrb r1, [r4] - movs r0, #0x58 - muls r0, r1, r0 - ldr r1, _08042030 - adds r0, r0, r1 - str r0, [sp] - movs r0, #0 - movs r1, #0x28 - movs r2, #0 - movs r3, #4 - bl BtlController_EmitSetMonData - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_08041FF4: - mov r0, sb - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08042008: .4byte gUnknown_2023D28 -_0804200C: .4byte gUnknown_2023EAF -_08042010: .4byte gUnknown_82ED220 -_08042014: .4byte gUnknown_2023E8E -_08042018: .4byte gUnknown_2023EB8 -_0804201C: .4byte gUnknown_82897FF -_08042020: .4byte gUnknown_2023FD6 -_08042024: .4byte gUnknown_2024140 -_08042028: .4byte 0x000001A3 -_0804202C: .4byte gUnknown_2023D08 -_08042030: .4byte gUnknown_2023D74 - thumb_func_end sub_080416D0 - - thumb_func_start HasNoMonsToSwitch -HasNoMonsToSwitch: @ 0x08042034 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sl, r1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sb, r2 - ldr r0, _08042060 - ldr r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08042064 - movs r0, #0 - b _080422E0 - .align 2, 0 -_08042060: .4byte gUnknown_2022C90 -_08042064: - movs r0, #0x80 - lsls r0, r0, #0xf - ands r0, r1 - cmp r0, #0 - beq _080420DC - adds r0, r4, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - ldr r1, _080420D4 - mov r8, r1 - cmp r0, #0 - bne _08042082 - ldr r2, _080420D8 - mov r8, r2 -_08042082: - movs r0, #2 - ands r0, r4 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x19 - lsls r0, r6, #1 - adds r4, r0, r6 - adds r0, r4, #3 - cmp r4, r0 - bge _080420CC - adds r7, r0, #0 -_08042096: - movs r0, #0x64 - muls r0, r4, r0 - mov r1, r8 - adds r5, r1, r0 - adds r0, r5, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _080420C6 - adds r0, r5, #0 - movs r1, #0x41 - bl GetMonData - cmp r0, #0 - beq _080420C6 - adds r0, r5, #0 - movs r1, #0x41 - bl GetMonData - movs r1, #0xce - lsls r1, r1, #1 - cmp r0, r1 - bne _080420CC -_080420C6: - adds r4, #1 - cmp r4, r7 - blt _08042096 -_080420CC: - movs r1, #0 - lsls r0, r6, #1 - adds r0, r0, r6 - b _08042196 - .align 2, 0 -_080420D4: .4byte gUnknown_20243E8 -_080420D8: .4byte gUnknown_2024190 -_080420DC: - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080421AC - movs r0, #0x80 - lsls r0, r0, #0x10 - ands r1, r0 - cmp r1, #0 - beq _08042124 - adds r0, r4, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08042110 - ldr r2, _0804210C - mov r8, r2 - adds r0, r4, #0 - bl GetBattlerMultiplayerId - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - b _08042142 - .align 2, 0 -_0804210C: .4byte gUnknown_2024190 -_08042110: - ldr r0, _08042120 - mov r8, r0 - movs r1, #1 - eors r1, r4 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r6, r0, #0x1f - b _0804214C - .align 2, 0 -_08042120: .4byte gUnknown_20243E8 -_08042124: - adds r0, r4, #0 - bl GetBattlerMultiplayerId - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - adds r0, r4, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - ldr r1, _080421A4 - mov r8, r1 - cmp r0, #0 - bne _08042142 - ldr r2, _080421A8 - mov r8, r2 -_08042142: - adds r0, r7, #0 - bl GetLinkTrainerFlankId - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_0804214C: - lsls r0, r6, #1 - adds r4, r0, r6 - adds r1, r4, #3 - mov sb, r0 - cmp r4, r1 - bge _08042190 - adds r7, r1, #0 -_0804215A: - movs r0, #0x64 - muls r0, r4, r0 - mov r1, r8 - adds r5, r1, r0 - adds r0, r5, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _0804218A - adds r0, r5, #0 - movs r1, #0x41 - bl GetMonData - cmp r0, #0 - beq _0804218A - adds r0, r5, #0 - movs r1, #0x41 - bl GetMonData - movs r1, #0xce - lsls r1, r1, #1 - cmp r0, r1 - bne _08042190 -_0804218A: - adds r4, #1 - cmp r4, r7 - blt _0804215A -_08042190: - movs r1, #0 - mov r2, sb - adds r0, r2, r6 -_08042196: - adds r0, #3 - cmp r4, r0 - bne _0804219E - movs r1, #1 -_0804219E: - adds r0, r1, #0 - b _080422E0 - .align 2, 0 -_080421A4: .4byte gUnknown_20243E8 -_080421A8: .4byte gUnknown_2024190 -_080421AC: - movs r0, #0x80 - lsls r0, r0, #8 - ands r1, r0 - cmp r1, #0 - beq _0804221A - adds r0, r4, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0804221A - ldr r0, _080421D8 - mov r8, r0 - movs r6, #3 - cmp r4, #1 - bne _080421D0 - movs r6, #0 -_080421D0: - adds r4, r6, #0 - adds r6, r4, #3 - b _080421DE - .align 2, 0 -_080421D8: .4byte gUnknown_20243E8 -_080421DC: - adds r4, #1 -_080421DE: - cmp r4, r6 - bge _08042212 - movs r0, #0x64 - muls r0, r4, r0 - mov r1, r8 - adds r5, r1, r0 - adds r0, r5, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _080421DC - adds r0, r5, #0 - movs r1, #0x41 - bl GetMonData - cmp r0, #0 - beq _080421DC - adds r0, r5, #0 - movs r1, #0x41 - bl GetMonData - movs r1, #0xce - lsls r1, r1, #1 - cmp r0, r1 - beq _080421DC -_08042212: - movs r0, #0 - cmp r4, r6 - bne _080422E0 - b _080422DE -_0804221A: - adds r0, r4, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08042248 - movs r0, #1 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r0, #3 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r2, _08042244 - mov r8, r2 - b _08042260 - .align 2, 0 -_08042244: .4byte gUnknown_20243E8 -_08042248: - movs r0, #0 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r0, #2 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _080422F0 - mov r8, r0 -_08042260: - mov r1, sl - cmp r1, #6 - bne _08042270 - ldr r1, _080422F4 - lsls r0, r7, #1 - adds r0, r0, r1 - ldrb r0, [r0] - mov sl, r0 -_08042270: - mov r2, sb - cmp r2, #6 - bne _08042280 - ldr r1, _080422F4 - lsls r0, r6, #1 - adds r0, r0, r1 - ldrb r0, [r0] - mov sb, r0 -_08042280: - movs r4, #0 -_08042282: - movs r0, #0x64 - muls r0, r4, r0 - mov r1, r8 - adds r5, r1, r0 - adds r0, r5, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _080422D2 - adds r0, r5, #0 - movs r1, #0x41 - bl GetMonData - cmp r0, #0 - beq _080422D2 - adds r0, r5, #0 - movs r1, #0x41 - bl GetMonData - movs r1, #0xce - lsls r1, r1, #1 - cmp r0, r1 - beq _080422D2 - cmp r4, sl - beq _080422D2 - cmp r4, sb - beq _080422D2 - ldr r0, _080422F8 - ldr r1, [r0] - adds r0, r7, r1 - adds r0, #0x5c - ldrb r0, [r0] - cmp r4, r0 - beq _080422D2 - adds r0, r6, r1 - adds r0, #0x5c - ldrb r0, [r0] - cmp r4, r0 - bne _080422D8 -_080422D2: - adds r4, #1 - cmp r4, #5 - ble _08042282 -_080422D8: - movs r0, #0 - cmp r4, #6 - bne _080422E0 -_080422DE: - movs r0, #1 -_080422E0: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080422F0: .4byte gUnknown_2024190 -_080422F4: .4byte gUnknown_2023D12 -_080422F8: .4byte gUnknown_2024140 - thumb_func_end HasNoMonsToSwitch - - thumb_func_start CastformDataTypeChange -CastformDataTypeChange: @ 0x080422FC - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r5, #0 - ldr r1, _0804236C - movs r0, #0x58 - muls r0, r6, r0 - adds r4, r0, r1 - ldrh r1, [r4] - ldr r0, _08042370 - cmp r1, r0 - bne _080423A0 - adds r0, r4, #0 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x3b - bne _080423A0 - ldrh r0, [r4, #0x28] - cmp r0, #0 - beq _080423A0 - str r5, [sp] - movs r0, #0x13 - movs r1, #0 - movs r2, #0xd - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0804234E - str r5, [sp] - movs r0, #0x13 - movs r1, #0 - movs r2, #0x4d - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08042374 -_0804234E: - adds r2, r4, #0 - adds r2, #0x21 - ldrb r0, [r2] - cmp r0, #0 - beq _08042374 - adds r1, r4, #0 - adds r1, #0x22 - ldrb r0, [r1] - cmp r0, #0 - beq _08042374 - strb r5, [r2] - strb r5, [r1] - movs r0, #1 - b _08042458 - .align 2, 0 -_0804236C: .4byte gUnknown_2023D28 -_08042370: .4byte 0x00000181 -_08042374: - movs r0, #0 - str r0, [sp] - movs r0, #0x13 - movs r1, #0 - movs r2, #0xd - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _080423A0 - str r0, [sp] - movs r0, #0x13 - movs r1, #0 - movs r2, #0x4d - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080423A4 -_080423A0: - movs r0, #0 - b _08042458 -_080423A4: - ldr r1, _08042460 - ldrh r0, [r1] - movs r2, #0xe7 - ands r2, r0 - adds r4, r1, #0 - cmp r2, #0 - bne _080423D2 - ldr r1, _08042464 - movs r0, #0x58 - muls r0, r6, r0 - adds r1, r0, r1 - adds r3, r1, #0 - adds r3, #0x21 - ldrb r0, [r3] - cmp r0, #0 - beq _080423D2 - adds r1, #0x22 - ldrb r0, [r1] - cmp r0, #0 - beq _080423D2 - strb r2, [r3] - strb r2, [r1] - movs r5, #1 -_080423D2: - ldrh r1, [r4] - movs r0, #0x60 - ands r0, r1 - cmp r0, #0 - beq _080423FE - ldr r1, _08042464 - movs r0, #0x58 - muls r0, r6, r0 - adds r1, r0, r1 - adds r2, r1, #0 - adds r2, #0x21 - ldrb r0, [r2] - cmp r0, #0xa - beq _080423FE - adds r1, #0x22 - ldrb r0, [r1] - cmp r0, #0xa - beq _080423FE - movs r0, #0xa - strb r0, [r2] - strb r0, [r1] - movs r5, #2 -_080423FE: - ldrh r1, [r4] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - beq _0804242A - ldr r1, _08042464 - movs r0, #0x58 - muls r0, r6, r0 - adds r1, r0, r1 - adds r2, r1, #0 - adds r2, #0x21 - ldrb r0, [r2] - cmp r0, #0xb - beq _0804242A - adds r1, #0x22 - ldrb r0, [r1] - cmp r0, #0xb - beq _0804242A - movs r0, #0xb - strb r0, [r2] - strb r0, [r1] - movs r5, #3 -_0804242A: - ldrh r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08042456 - ldr r1, _08042464 - movs r0, #0x58 - muls r0, r6, r0 - adds r1, r0, r1 - adds r2, r1, #0 - adds r2, #0x21 - ldrb r0, [r2] - cmp r0, #0xf - beq _08042456 - adds r1, #0x22 - ldrb r0, [r1] - cmp r0, #0xf - beq _08042456 - movs r0, #0xf - strb r0, [r2] - strb r0, [r1] - movs r5, #4 -_08042456: - adds r0, r5, #0 -_08042458: - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08042460: .4byte gUnknown_2024070 -_08042464: .4byte gUnknown_2023D28 - thumb_func_end CastformDataTypeChange - - thumb_func_start AbilityBattleEffects -AbilityBattleEffects: @ 0x08042468 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x28 - ldr r4, [sp, #0x48] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sl, r1 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r8, r3 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - movs r0, #0 - mov sb, r0 - ldr r5, _080424C4 - ldr r1, _080424C8 - ldrb r0, [r5] - ldrb r1, [r1] - cmp r0, r1 - blo _080424A4 - mov r1, sl - strb r1, [r5] -_080424A4: - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080424D4 - ldr r1, _080424CC - ldrb r0, [r5] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _080424D0 - b _080424E4 - .align 2, 0 -_080424C4: .4byte gUnknown_2023EAF -_080424C8: .4byte gUnknown_2023D10 -_080424CC: .4byte gUnknown_2023D12 -_080424D0: .4byte gUnknown_2024190 -_080424D4: - ldr r1, _08042514 - ldrb r0, [r5] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _08042518 -_080424E4: - adds r7, r1, r0 - ldr r5, _0804251C - ldr r1, _08042520 - ldrb r0, [r5] - ldrb r1, [r1] - cmp r0, r1 - blo _080424F6 - mov r2, sl - strb r2, [r5] -_080424F6: - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08042528 - ldr r1, _08042514 - ldrb r0, [r5] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _08042524 - b _08042538 - .align 2, 0 -_08042514: .4byte gUnknown_2023D12 -_08042518: .4byte gUnknown_20243E8 -_0804251C: .4byte gUnknown_2023EB0 -_08042520: .4byte gUnknown_2023D10 -_08042524: .4byte gUnknown_2024190 -_08042528: - ldr r1, _08042588 - ldrb r0, [r5] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _0804258C -_08042538: - adds r5, r1, r0 - adds r0, r7, #0 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #8] - adds r0, r7, #0 - movs r1, #0 - bl GetMonData - str r0, [sp, #0x10] - adds r0, r5, #0 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0xc] - adds r0, r5, #0 - movs r1, #0 - bl GetMonData - str r0, [sp, #0x14] - ldr r0, _08042590 - ldr r0, [r0] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0804257A - bl _0804407A -_0804257A: - mov r3, r8 - cmp r3, #0 - beq _08042598 - ldr r0, _08042594 - strb r3, [r0] - adds r7, r0, #0 - b _080425AE - .align 2, 0 -_08042588: .4byte gUnknown_2023D12 -_0804258C: .4byte gUnknown_20243E8 -_08042590: .4byte gUnknown_2022C90 -_08042594: .4byte gUnknown_2023EAE -_08042598: - ldr r2, _080425B8 - ldr r1, _080425BC - movs r0, #0x58 - mov r5, sl - muls r5, r0, r5 - adds r0, r5, #0 - adds r0, r0, r1 - adds r0, #0x20 - ldrb r0, [r0] - strb r0, [r2] - adds r7, r2, #0 -_080425AE: - cmp r4, #0 - beq _080425C0 - adds r5, r4, #0 - b _080425C4 - .align 2, 0 -_080425B8: .4byte gUnknown_2023EAE -_080425BC: .4byte gUnknown_2023D28 -_080425C0: - ldr r0, _080425D8 - ldrh r5, [r0] -_080425C4: - ldr r1, _080425DC - ldr r0, [r1] - ldrb r0, [r0, #0x13] - mov r8, r1 - cmp r0, #0 - beq _080425E0 - movs r3, #0x3f - ands r3, r0 - b _080425EC - .align 2, 0 -_080425D8: .4byte gUnknown_2023E8E -_080425DC: .4byte gUnknown_2024140 -_080425E0: - ldr r1, _08042600 - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r3, [r0, #2] -_080425EC: - ldr r0, [sp, #4] - cmp r0, #0x13 - bls _080425F6 - bl _0804405E -_080425F6: - lsls r0, r0, #2 - ldr r1, _08042604 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08042600: .4byte gUnknown_82ED220 -_08042604: .4byte _08042608 -_08042608: @ jump table - .4byte _08042658 @ case 0 - .4byte _0804291C @ case 1 - .4byte _08042B38 @ case 2 - .4byte _08042BCC @ case 3 - .4byte _08042DEC @ case 4 - .4byte _08043548 @ case 5 - .4byte _080438AC @ case 6 - .4byte _080438FC @ case 7 - .4byte _08043980 @ case 8 - .4byte _08043A04 @ case 9 - .4byte _08043C24 @ case 10 - .4byte _08043A48 @ case 11 - .4byte _08043C68 @ case 12 - .4byte _08043CC4 @ case 13 - .4byte _08043D20 @ case 14 - .4byte _08043E1C @ case 15 - .4byte _08043E60 @ case 16 - .4byte _08043EBC @ case 17 - .4byte _0804402C @ case 18 - .4byte _08043DD6 @ case 19 -_08042658: - ldr r2, _0804268C - ldr r0, _08042690 - ldrb r1, [r2] - adds r5, r0, #0 - ldrb r3, [r5] - cmp r1, r3 - blo _0804266A - mov r0, sl - strb r0, [r2] -_0804266A: - ldrb r0, [r7] - cmp r0, #0x2d - bne _08042672 - b _080427E8 -_08042672: - cmp r0, #0x2d - bgt _080426A4 - cmp r0, #0xd - bne _0804267C - b _080428E4 -_0804267C: - cmp r0, #0xd - bgt _08042694 - cmp r0, #2 - bne _08042686 - b _080427B8 -_08042686: - bl _0804405E - .align 2, 0 -_0804268C: .4byte gUnknown_2023EAF -_08042690: .4byte gUnknown_2023D10 -_08042694: - cmp r0, #0x16 - bne _0804269A - b _08042848 -_0804269A: - cmp r0, #0x24 - bne _080426A0 - b _080428A8 -_080426A0: - bl _0804405E -_080426A4: - cmp r0, #0x46 - bne _080426AA - b _08042818 -_080426AA: - cmp r0, #0x46 - bgt _080426B8 - cmp r0, #0x3b - bne _080426B4 - b _0804287C -_080426B4: - bl _0804405E -_080426B8: - cmp r0, #0x4d - bne _080426BE - b _080428E4 -_080426BE: - cmp r0, #0xff - beq _080426C6 - bl _0804405E -_080426C6: - ldr r0, _080426EC - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - bne _0804278C - bl GetCurrentWeather - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, #3 - cmp r0, #0xa - bhi _0804278C - lsls r0, r0, #2 - ldr r1, _080426F0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080426EC: .4byte gUnknown_2022C90 -_080426F0: .4byte _080426F4 -_080426F4: @ jump table - .4byte _08042720 @ case 0 - .4byte _0804278C @ case 1 - .4byte _08042720 @ case 2 - .4byte _0804278C @ case 3 - .4byte _0804278C @ case 4 - .4byte _08042744 @ case 5 - .4byte _0804278C @ case 6 - .4byte _0804278C @ case 7 - .4byte _0804278C @ case 8 - .4byte _08042768 @ case 9 - .4byte _08042720 @ case 10 -_08042720: - ldr r2, _0804273C - ldrh r1, [r2] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _0804278C - movs r0, #5 - strh r0, [r2] - ldr r1, _08042740 - movs r0, #0xa - strb r0, [r1, #0x10] - mov r2, sl - strb r2, [r1, #0x17] - b _08042782 - .align 2, 0 -_0804273C: .4byte gUnknown_2024070 -_08042740: .4byte gUnknown_2024118 -_08042744: - ldr r3, _08042760 - ldrh r1, [r3] - movs r2, #0x18 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _0804278C - strh r2, [r3] - ldr r1, _08042764 - movs r0, #0xc - strb r0, [r1, #0x10] - mov r3, sl - strb r3, [r1, #0x17] - b _08042782 - .align 2, 0 -_08042760: .4byte gUnknown_2024070 -_08042764: .4byte gUnknown_2024118 -_08042768: - ldr r3, _080427A8 - ldrh r1, [r3] - movs r2, #0x60 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _0804278C - strh r2, [r3] - ldr r1, _080427AC - movs r0, #0xb - strb r0, [r1, #0x10] - mov r5, sl - strb r5, [r1, #0x17] -_08042782: - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 -_0804278C: - mov r0, sb - cmp r0, #0 - bne _08042796 - bl _0804407A -_08042796: - bl GetCurrentWeather - ldr r1, _080427B0 - strb r0, [r1, #5] - ldr r0, _080427B4 - bl BattleScriptPushCursorAndCallback - bl _0804405E - .align 2, 0 -_080427A8: .4byte gUnknown_2024070 -_080427AC: .4byte gUnknown_2024118 -_080427B0: .4byte gUnknown_2023FD6 -_080427B4: .4byte gUnknown_828926F -_080427B8: - ldr r2, _080427DC - ldrh r1, [r2] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080427C8 - bl _0804405E -_080427C8: - movs r0, #5 - strh r0, [r2] - ldr r0, _080427E0 - bl BattleScriptPushCursorAndCallback - ldr r0, _080427E4 - mov r1, sl - strb r1, [r0, #0x17] - bl _08044010 - .align 2, 0 -_080427DC: .4byte gUnknown_2024070 -_080427E0: .4byte gUnknown_82899B8 -_080427E4: .4byte gUnknown_2024118 -_080427E8: - ldr r2, _0804280C - ldrh r1, [r2] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080427F8 - bl _0804405E -_080427F8: - movs r0, #0x18 - strh r0, [r2] - ldr r0, _08042810 - bl BattleScriptPushCursorAndCallback - ldr r0, _08042814 - mov r2, sl - strb r2, [r0, #0x17] - bl _08044010 - .align 2, 0 -_0804280C: .4byte gUnknown_2024070 -_08042810: .4byte gUnknown_82899F8 -_08042814: .4byte gUnknown_2024118 -_08042818: - ldr r2, _0804283C - ldrh r1, [r2] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08042828 - bl _0804405E -_08042828: - movs r0, #0x60 - strh r0, [r2] - ldr r0, _08042840 - bl BattleScriptPushCursorAndCallback - ldr r0, _08042844 - mov r3, sl - strb r3, [r0, #0x17] - bl _08044010 - .align 2, 0 -_0804283C: .4byte gUnknown_2024070 -_08042840: .4byte gUnknown_8289AB2 -_08042844: .4byte gUnknown_2024118 -_08042848: - ldr r0, _08042874 - mov r5, sl - lsls r2, r5, #2 - adds r1, r2, r5 - lsls r1, r1, #2 - adds r3, r1, r0 - ldrb r0, [r3] - lsls r0, r0, #0x1c - cmp r0, #0 - bge _08042860 - bl _0804405E -_08042860: - ldr r1, _08042878 - adds r1, r2, r1 - ldr r0, [r1] - movs r2, #0x80 - lsls r2, r2, #0xc - orrs r0, r2 - str r0, [r1] - ldrb r0, [r3] - movs r1, #8 - b _080428D2 - .align 2, 0 -_08042874: .4byte gUnknown_2024020 -_08042878: .4byte gUnknown_2023F50 -_0804287C: - mov r0, sl - bl CastformDataTypeChange - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - cmp r0, #0 - bne _08042890 - bl _0804407A -_08042890: - ldr r0, _080428A0 - bl BattleScriptPushCursorAndCallback - ldr r0, _080428A4 - mov r1, sl - strb r1, [r0, #0x17] - bl _08043F22 - .align 2, 0 -_080428A0: .4byte gUnknown_8289A31 -_080428A4: .4byte gUnknown_2024118 -_080428A8: - ldr r0, _080428DC - mov r3, sl - lsls r2, r3, #2 - adds r1, r2, r3 - lsls r1, r1, #2 - adds r3, r1, r0 - ldrb r0, [r3] - lsls r0, r0, #0x1b - cmp r0, #0 - bge _080428C0 - bl _0804405E -_080428C0: - ldr r1, _080428E0 - adds r1, r2, r1 - ldr r0, [r1] - movs r2, #0x80 - lsls r2, r2, #0xd - orrs r0, r2 - str r0, [r1] - ldrb r0, [r3] - movs r1, #0x10 -_080428D2: - orrs r0, r1 - strb r0, [r3] - bl _0804405E - .align 2, 0 -_080428DC: .4byte gUnknown_2024020 -_080428E0: .4byte gUnknown_2023F50 -_080428E4: - movs r6, #0 - ldrb r5, [r5] - cmp r6, r5 - blo _080428F0 - bl _0804405E -_080428F0: - adds r0, r6, #0 - bl CastformDataTypeChange - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - cmp r0, #0 - beq _08042904 - bl sub_08043F18 -_08042904: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _08042918 - ldrb r0, [r0] - cmp r6, r0 - blo _080428F0 - bl _0804405E - .align 2, 0 -_08042918: .4byte gUnknown_2023D10 -_0804291C: - ldr r5, _0804294C - mov r8, r5 - movs r0, #0x58 - mov r6, sl - muls r6, r0, r6 - adds r4, r6, r5 - ldrh r0, [r4, #0x28] - cmp r0, #0 - bne _08042932 - bl _0804405E -_08042932: - ldr r0, _08042950 - mov r1, sl - strb r1, [r0] - ldrb r5, [r7] - cmp r5, #0x2c - beq _08042962 - cmp r5, #0x2c - bgt _08042954 - cmp r5, #3 - bne _08042948 - b _08042AC4 -_08042948: - bl _0804405E - .align 2, 0 -_0804294C: .4byte gUnknown_2023D28 -_08042950: .4byte gUnknown_2023EAF -_08042954: - cmp r5, #0x36 - bne _0804295A - b _08042B10 -_0804295A: - cmp r5, #0x3d - beq _080429E0 - bl _0804405E -_08042962: - movs r0, #0 - str r0, [sp] - movs r0, #0x13 - movs r1, #0 - movs r2, #0xd - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _0804297E - bl _0804405E -_0804297E: - str r0, [sp] - movs r0, #0x13 - movs r1, #0 - movs r2, #0x4d - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08042996 - bl _0804405E -_08042996: - ldr r0, _080429D4 - ldrh r1, [r0] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _080429A6 - bl _0804405E -_080429A6: - ldrh r0, [r4, #0x2c] - ldrh r2, [r4, #0x28] - cmp r0, r2 - bhi _080429B2 - bl _0804405E -_080429B2: - strb r5, [r7] - ldr r0, _080429D8 - bl BattleScriptPushCursorAndCallback - ldr r1, _080429DC - ldrh r0, [r4, #0x2c] - lsrs r0, r0, #4 - str r0, [r1] - cmp r0, #0 - bne _080429CA - movs r0, #1 - str r0, [r1] -_080429CA: - ldr r0, [r1] - rsbs r0, r0, #0 - str r0, [r1] - bl _08044010 - .align 2, 0 -_080429D4: .4byte gUnknown_2024070 -_080429D8: .4byte gUnknown_82899E4 -_080429DC: .4byte gUnknown_2023E94 -_080429E0: - mov r0, r8 - adds r0, #0x4c - adds r5, r6, r0 - ldrb r0, [r5] - cmp r0, #0 - bne _080429F0 - bl _0804405E -_080429F0: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0 - beq _08042A0A - bl _0804405E -_08042A0A: - ldr r0, [r5] - movs r1, #0x88 - ands r0, r1 - cmp r0, #0 - beq _08042A1C - ldr r0, _08042A9C - ldr r1, _08042AA0 - bl StringCopy -_08042A1C: - ldr r0, [r5] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - beq _08042A2E - ldr r0, _08042A9C - ldr r1, _08042AA4 - bl StringCopy -_08042A2E: - ldr r0, [r5] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08042A40 - ldr r0, _08042A9C - ldr r1, _08042AA8 - bl StringCopy -_08042A40: - ldr r0, [r5] - movs r1, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08042A52 - ldr r0, _08042A9C - ldr r1, _08042AAC - bl StringCopy -_08042A52: - ldr r0, [r5] - movs r1, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08042A64 - ldr r0, _08042A9C - ldr r1, _08042AB0 - bl StringCopy -_08042A64: - str r4, [r5] - mov r1, r8 - adds r1, #0x50 - adds r1, r6, r1 - ldr r0, [r1] - ldr r2, _08042AB4 - ands r0, r2 - str r0, [r1] - ldr r0, _08042AB8 - ldr r4, _08042ABC - mov r3, sl - strb r3, [r4] - strb r3, [r0, #0x17] - ldr r0, _08042AC0 - bl BattleScriptPushCursorAndCallback - str r5, [sp] - movs r0, #0 - movs r1, #0x28 - movs r2, #0 - movs r3, #4 - bl BtlController_EmitSetMonData - ldrb r0, [r4] - bl MarkBattlerForControllerExec - bl _08044010 - .align 2, 0 -_08042A9C: .4byte gUnknown_2022C0C -_08042AA0: .4byte gUnknown_85ABC54 -_08042AA4: .4byte gUnknown_85ABC50 -_08042AA8: .4byte gUnknown_85ABC5B -_08042AAC: .4byte gUnknown_85ABC57 -_08042AB0: .4byte gUnknown_85ABC5E -_08042AB4: .4byte 0xF7FFFFFF -_08042AB8: .4byte gUnknown_2024118 -_08042ABC: .4byte gUnknown_2023D08 -_08042AC0: .4byte gUnknown_8289A0C -_08042AC4: - ldrb r2, [r4, #0x1b] - movs r0, #0x1b - ldrsb r0, [r4, r0] - cmp r0, #0xb - ble _08042AD2 - bl _0804405E -_08042AD2: - ldr r0, _08042B04 - mov r5, sl - lsls r1, r5, #3 - subs r1, r1, r5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #0x16] - cmp r0, #2 - bne _08042AE8 - bl _0804405E -_08042AE8: - adds r0, r2, #1 - movs r1, #0 - strb r0, [r4, #0x1b] - ldr r4, _08042B08 - movs r0, #0x11 - strb r0, [r4, #0x10] - strb r1, [r4, #0x11] - ldr r0, _08042B0C - bl BattleScriptPushCursorAndCallback - strb r5, [r4, #0x17] - bl _08044010 - .align 2, 0 -_08042B04: .4byte gUnknown_2023F60 -_08042B08: .4byte gUnknown_2024118 -_08042B0C: .4byte gUnknown_82899CC -_08042B10: - ldr r2, _08042B34 - ldrb r0, [r0] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r3, [r1, #0x18] - lsls r0, r3, #0x1f - lsrs r0, r0, #0x1f - movs r2, #1 - eors r2, r0 - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, #0x18] - bl _0804405E - .align 2, 0 -_08042B34: .4byte gUnknown_2023F60 -_08042B38: - ldrb r0, [r7] - cmp r0, #0x2b - beq _08042B42 - bl _0804405E -_08042B42: - movs r4, #0 - ldr r0, _08042BB0 - ldrh r2, [r0] - ldr r3, _08042BB4 - adds r1, r0, #0 - cmp r2, r3 - bne _08042B54 - bl _0804405E -_08042B54: - cmp r2, r5 - beq _08042B6C - adds r2, r1, #0 -_08042B5A: - adds r2, #2 - adds r4, #1 - ldrh r0, [r2] - cmp r0, r3 - bne _08042B68 - bl _0804405E -_08042B68: - cmp r0, r5 - bne _08042B5A -_08042B6C: - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r0] - ldr r0, _08042BB4 - cmp r1, r0 - bne _08042B7C - bl _0804405E -_08042B7C: - ldr r1, _08042BB8 - ldr r0, _08042BBC - ldrb r2, [r0] - movs r0, #0x58 - muls r0, r2, r0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #5 - ands r0, r1 - cmp r0, #0 - beq _08042BA2 - ldr r0, _08042BC0 - ldr r1, [r0] - movs r2, #0x80 - lsls r2, r2, #4 - orrs r1, r2 - str r1, [r0] -_08042BA2: - ldr r1, _08042BC4 - ldr r0, _08042BC8 - str r0, [r1] - movs r0, #1 - mov sb, r0 - bl _08044064 - .align 2, 0 -_08042BB0: .4byte gUnknown_82EC67C -_08042BB4: .4byte 0x0000FFFF -_08042BB8: .4byte gUnknown_2023D28 -_08042BBC: .4byte gUnknown_2023EAF -_08042BC0: .4byte gUnknown_2023F24 -_08042BC4: .4byte gUnknown_2023EB8 -_08042BC8: .4byte gUnknown_8289BA7 -_08042BCC: - cmp r5, #0 - bne _08042BD4 - bl _0804405E -_08042BD4: - ldrb r0, [r7] - cmp r0, #0xb - beq _08042C44 - cmp r0, #0xb - bgt _08042BE4 - cmp r0, #0xa - beq _08042BEA - b _08042D66 -_08042BE4: - cmp r0, #0x12 - beq _08042C9C - b _08042D66 -_08042BEA: - cmp r3, #0xd - beq _08042BF0 - b _08042D66 -_08042BF0: - ldr r0, _08042C1C - lsls r1, r5, #1 - adds r1, r1, r5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #1] - cmp r0, #0 - bne _08042C02 - b _08042D66 -_08042C02: - ldr r1, _08042C20 - ldr r0, _08042C24 - ldrb r0, [r0] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrb r0, [r0, #2] - lsls r0, r0, #0x1c - cmp r0, #0 - bge _08042C30 - ldr r1, _08042C28 - ldr r0, _08042C2C - b _08042C34 - .align 2, 0 -_08042C1C: .4byte gUnknown_82ED220 -_08042C20: .4byte gUnknown_2023FE0 -_08042C24: .4byte gUnknown_2023EAF -_08042C28: .4byte gUnknown_2023EB8 -_08042C2C: .4byte gUnknown_8289AF7 -_08042C30: - ldr r1, _08042C3C - ldr r0, _08042C40 -_08042C34: - str r0, [r1] - movs r1, #1 - b _08042D64 - .align 2, 0 -_08042C3C: .4byte gUnknown_2023EB8 -_08042C40: .4byte gUnknown_8289AF6 -_08042C44: - cmp r3, #0xb - beq _08042C4A - b _08042D66 -_08042C4A: - ldr r0, _08042C74 - lsls r1, r5, #1 - adds r1, r1, r5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #1] - cmp r0, #0 - bne _08042C5C - b _08042D66 -_08042C5C: - ldr r1, _08042C78 - ldr r0, _08042C7C - ldrb r0, [r0] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrb r0, [r0, #2] - lsls r0, r0, #0x1c - cmp r0, #0 - bge _08042C88 - ldr r1, _08042C80 - ldr r0, _08042C84 - b _08042C8C - .align 2, 0 -_08042C74: .4byte gUnknown_82ED220 -_08042C78: .4byte gUnknown_2023FE0 -_08042C7C: .4byte gUnknown_2023EAF -_08042C80: .4byte gUnknown_2023EB8 -_08042C84: .4byte gUnknown_8289AF7 -_08042C88: - ldr r1, _08042C94 - ldr r0, _08042C98 -_08042C8C: - str r0, [r1] - movs r2, #1 - mov sb, r2 - b _08042D66 - .align 2, 0 -_08042C94: .4byte gUnknown_2023EB8 -_08042C98: .4byte gUnknown_8289AF6 -_08042C9C: - cmp r3, #0xa - bne _08042D66 - ldr r1, _08042CEC - movs r0, #0x58 - mov r3, sl - muls r3, r0, r3 - adds r0, r3, #0 - adds r1, #0x4c - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x20 - ands r0, r1 - cmp r0, #0 - bne _08042D66 - ldr r2, _08042CF0 - ldr r0, [r2] - ldr r0, [r0, #4] - mov r5, sl - lsls r1, r5, #2 - adds r0, r0, r1 - ldr r3, [r0] - movs r4, #1 - ands r3, r4 - adds r5, r1, #0 - cmp r3, #0 - bne _08042D2C - ldr r0, _08042CF4 - strb r3, [r0, #5] - ldr r1, _08042CF8 - ldr r0, _08042CFC - ldrb r0, [r0] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrb r0, [r0, #2] - lsls r0, r0, #0x1c - cmp r0, #0 - bge _08042D08 - ldr r1, _08042D00 - ldr r0, _08042D04 - b _08042D0C - .align 2, 0 -_08042CEC: .4byte gUnknown_2023D28 -_08042CF0: .4byte gUnknown_202414C -_08042CF4: .4byte gUnknown_2023FD6 -_08042CF8: .4byte gUnknown_2023FE0 -_08042CFC: .4byte gUnknown_2023EAF -_08042D00: .4byte gUnknown_2023EB8 -_08042D04: .4byte gUnknown_8289B30 -_08042D08: - ldr r1, _08042D24 - ldr r0, _08042D28 -_08042D0C: - str r0, [r1] - ldr r0, [r2] - ldr r1, [r0, #4] - adds r1, r1, r5 - ldr r0, [r1] - movs r2, #1 - orrs r0, r2 - str r0, [r1] - movs r0, #2 - mov sb, r0 - b _08042D66 - .align 2, 0 -_08042D24: .4byte gUnknown_2023EB8 -_08042D28: .4byte gUnknown_8289B2F -_08042D2C: - ldr r0, _08042D48 - strb r4, [r0, #5] - ldr r1, _08042D4C - ldr r0, _08042D50 - ldrb r0, [r0] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrb r0, [r0, #2] - lsls r0, r0, #0x1c - cmp r0, #0 - bge _08042D5C - ldr r1, _08042D54 - ldr r0, _08042D58 - b _08042D60 - .align 2, 0 -_08042D48: .4byte gUnknown_2023FD6 -_08042D4C: .4byte gUnknown_2023FE0 -_08042D50: .4byte gUnknown_2023EAF -_08042D54: .4byte gUnknown_2023EB8 -_08042D58: .4byte gUnknown_8289B30 -_08042D5C: - ldr r1, _08042DA0 - ldr r0, _08042DA4 -_08042D60: - str r0, [r1] - movs r1, #2 -_08042D64: - mov sb, r1 -_08042D66: - mov r2, sb - cmp r2, #1 - beq _08042D70 - bl _0804405E -_08042D70: - ldr r1, _08042DA8 - movs r0, #0x58 - mov r3, sl - muls r3, r0, r3 - adds r0, r3, #0 - adds r1, r0, r1 - ldrh r0, [r1, #0x2c] - ldrh r5, [r1, #0x28] - cmp r0, r5 - bne _08042DCC - ldr r1, _08042DAC - ldr r0, _08042DB0 - ldrb r0, [r0] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrb r0, [r0, #2] - lsls r0, r0, #0x1c - cmp r0, #0 - bge _08042DB8 - ldr r1, _08042DA0 - ldr r0, _08042DB4 - str r0, [r1] - bl _0804405E - .align 2, 0 -_08042DA0: .4byte gUnknown_2023EB8 -_08042DA4: .4byte gUnknown_8289B2F -_08042DA8: .4byte gUnknown_2023D28 -_08042DAC: .4byte gUnknown_2023FE0 -_08042DB0: .4byte gUnknown_2023EAF -_08042DB4: .4byte gUnknown_8289B1A -_08042DB8: - ldr r1, _08042DC4 - ldr r0, _08042DC8 - str r0, [r1] - bl _0804405E - .align 2, 0 -_08042DC4: .4byte gUnknown_2023EB8 -_08042DC8: .4byte gUnknown_8289B19 -_08042DCC: - ldr r2, _08042DE8 - ldrh r0, [r1, #0x2c] - lsrs r0, r0, #2 - str r0, [r2] - cmp r0, #0 - bne _08042DDC - mov r0, sb - str r0, [r2] -_08042DDC: - ldr r0, [r2] - rsbs r0, r0, #0 - str r0, [r2] - bl _0804405E - .align 2, 0 -_08042DE8: .4byte gUnknown_2023E94 -_08042DEC: - ldrb r0, [r7] - subs r0, #9 - cmp r0, #0x2f - bls _08042DF8 - bl _0804405E -_08042DF8: - lsls r0, r0, #2 - ldr r1, _08042E04 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08042E04: .4byte _08042E08 -_08042E08: @ jump table - .4byte _08043224 @ case 0 - .4byte _0804405E @ case 1 - .4byte _0804405E @ case 2 - .4byte _0804405E @ case 3 - .4byte _0804405E @ case 4 - .4byte _0804405E @ case 5 - .4byte _0804405E @ case 6 - .4byte _08042EC8 @ case 7 - .4byte _0804405E @ case 8 - .4byte _0804405E @ case 9 - .4byte _0804405E @ case 10 - .4byte _0804405E @ case 11 - .4byte _0804405E @ case 12 - .4byte _0804405E @ case 13 - .4byte _0804405E @ case 14 - .4byte _08042F90 @ case 15 - .4byte _0804405E @ case 16 - .4byte _0804405E @ case 17 - .4byte _08043050 @ case 18 - .4byte _0804405E @ case 19 - .4byte _0804405E @ case 20 - .4byte _0804405E @ case 21 - .4byte _0804405E @ case 22 - .4byte _0804405E @ case 23 - .4byte _0804405E @ case 24 - .4byte _0804405E @ case 25 - .4byte _0804405E @ case 26 - .4byte _0804405E @ case 27 - .4byte _0804405E @ case 28 - .4byte _08043148 @ case 29 - .4byte _0804405E @ case 30 - .4byte _0804405E @ case 31 - .4byte _0804405E @ case 32 - .4byte _0804405E @ case 33 - .4byte _0804405E @ case 34 - .4byte _0804405E @ case 35 - .4byte _0804405E @ case 36 - .4byte _0804405E @ case 37 - .4byte _0804405E @ case 38 - .4byte _0804405E @ case 39 - .4byte _08043300 @ case 40 - .4byte _0804405E @ case 41 - .4byte _0804405E @ case 42 - .4byte _0804405E @ case 43 - .4byte _0804405E @ case 44 - .4byte _0804405E @ case 45 - .4byte _0804405E @ case 46 - .4byte _080433DC @ case 47 -_08042EC8: - ldr r0, _08042F70 - ldrb r1, [r0] - movs r0, #0x29 - ands r0, r1 - cmp r0, #0 - beq _08042ED8 - bl _0804405E -_08042ED8: - cmp r5, #0xa5 - bne _08042EE0 - bl _0804405E -_08042EE0: - ldr r0, _08042F74 - lsls r1, r5, #1 - adds r1, r1, r5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #1] - cmp r0, #0 - bne _08042EF4 - bl _0804405E -_08042EF4: - ldr r2, _08042F78 - ldr r0, _08042F7C - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r1, r0, #2 - adds r0, r2, #0 - adds r0, #8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, #0 - bne _08042F1C - adds r0, r2, #0 - adds r0, #0xc - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, #0 - bne _08042F1C - bl _0804405E -_08042F1C: - ldr r1, _08042F80 - movs r0, #0x58 - mov r2, sl - muls r2, r0, r2 - adds r0, r2, #0 - adds r1, r0, r1 - adds r4, r1, #0 - adds r4, #0x21 - ldrb r0, [r4] - cmp r0, r3 - bne _08042F36 - bl _0804405E -_08042F36: - adds r2, r1, #0 - adds r2, #0x22 - ldrb r0, [r2] - cmp r0, r3 - bne _08042F44 - bl _0804405E -_08042F44: - ldrh r0, [r1, #0x28] - cmp r0, #0 - bne _08042F4E - bl _0804405E -_08042F4E: - strb r3, [r4] - strb r3, [r2] - ldr r1, _08042F84 - movs r0, #0xfd - strb r0, [r1] - movs r0, #3 - strb r0, [r1, #1] - strb r3, [r1, #2] - movs r0, #0xff - strb r0, [r1, #3] - bl BattleScriptPushCursor - ldr r1, _08042F88 - ldr r0, _08042F8C - str r0, [r1] - bl _08044010 - .align 2, 0 -_08042F70: .4byte gUnknown_2023F20 -_08042F74: .4byte gUnknown_82ED220 -_08042F78: .4byte gUnknown_2024020 -_08042F7C: .4byte gUnknown_2023EB0 -_08042F80: .4byte gUnknown_2023D28 -_08042F84: .4byte gUnknown_2022C0C -_08042F88: .4byte gUnknown_2023EB8 -_08042F8C: .4byte gUnknown_8289BD5 -_08042F90: - ldr r0, _08043028 - ldrb r1, [r0] - movs r0, #0x29 - ands r0, r1 - cmp r0, #0 - beq _08042FA0 - bl _0804405E -_08042FA0: - ldr r1, _0804302C - ldr r0, _08043030 - ldrb r2, [r0] - movs r0, #0x58 - muls r0, r2, r0 - adds r3, r0, r1 - ldrh r0, [r3, #0x28] - cmp r0, #0 - bne _08042FB6 - bl _0804405E -_08042FB6: - ldr r0, _08043034 - lsls r1, r2, #4 - adds r1, r1, r0 - ldrb r0, [r1, #1] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _08042FC8 - bl _0804405E -_08042FC8: - ldr r2, _08043038 - ldr r0, _0804303C - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r1, r0, #2 - adds r0, r2, #0 - adds r0, #8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, #0 - bne _08042FF0 - adds r0, r2, #0 - adds r0, #0xc - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, #0 - bne _08042FF0 - bl _0804405E -_08042FF0: - ldr r1, _08043040 - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #8] - movs r2, #1 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _0804300A - bl _0804405E -_0804300A: - ldr r1, _08043044 - ldrh r0, [r3, #0x2c] - lsrs r0, r0, #4 - str r0, [r1] - cmp r0, #0 - bne _08043018 - str r2, [r1] -_08043018: - bl BattleScriptPushCursor - ldr r1, _08043048 - ldr r0, _0804304C - str r0, [r1] - bl _08044010 - .align 2, 0 -_08043028: .4byte gUnknown_2023F20 -_0804302C: .4byte gUnknown_2023D28 -_08043030: .4byte gUnknown_2023EAF -_08043034: .4byte gUnknown_2023FE0 -_08043038: .4byte gUnknown_2024020 -_0804303C: .4byte gUnknown_2023EB0 -_08043040: .4byte gUnknown_82ED220 -_08043044: .4byte gUnknown_2023E94 -_08043048: .4byte gUnknown_2023EB8 -_0804304C: .4byte gUnknown_8289BDC -_08043050: - ldr r0, _0804311C - ldrb r1, [r0] - movs r0, #0x29 - ands r0, r1 - cmp r0, #0 - beq _08043060 - bl _0804405E -_08043060: - ldr r1, _08043120 - ldr r0, _08043124 - ldrb r2, [r0] - movs r0, #0x58 - muls r0, r2, r0 - adds r0, r0, r1 - ldrh r0, [r0, #0x28] - cmp r0, #0 - bne _08043076 - bl _0804405E -_08043076: - ldr r0, _08043128 - lsls r1, r2, #4 - adds r1, r1, r0 - ldrb r0, [r1, #1] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _08043088 - bl _0804405E -_08043088: - ldr r2, _0804312C - ldr r0, _08043130 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r1, r0, #2 - adds r0, r2, #0 - adds r0, #8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, #0 - bne _080430B0 - adds r0, r2, #0 - adds r0, #0xc - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, #0 - bne _080430B0 - bl _0804405E -_080430B0: - ldr r1, _08043134 - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #8] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080430C8 - bl _0804405E -_080430C8: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __umodsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080430E0 - bl _0804405E -_080430E0: - ldr r5, _08043138 - movs r4, #3 -_080430E4: - bl Random - ands r0, r4 - strb r0, [r5, #3] - cmp r0, #0 - beq _080430E4 - ldr r1, _08043138 - ldrb r0, [r1, #3] - cmp r0, #3 - bne _080430FC - adds r0, #2 - strb r0, [r1, #3] -_080430FC: - ldrb r0, [r1, #3] - adds r0, #0x40 - strb r0, [r1, #3] - bl BattleScriptPushCursor - ldr r1, _0804313C - ldr r0, _08043140 - str r0, [r1] - ldr r2, _08043144 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #6 - orrs r0, r1 - str r0, [r2] - bl _08044010 - .align 2, 0 -_0804311C: .4byte gUnknown_2023F20 -_08043120: .4byte gUnknown_2023D28 -_08043124: .4byte gUnknown_2023EAF -_08043128: .4byte gUnknown_2023FE0 -_0804312C: .4byte gUnknown_2024020 -_08043130: .4byte gUnknown_2023EB0 -_08043134: .4byte gUnknown_82ED220 -_08043138: .4byte gUnknown_2023FD6 -_0804313C: .4byte gUnknown_2023EB8 -_08043140: .4byte gUnknown_8289C04 -_08043144: .4byte gUnknown_2023F24 -_08043148: - ldr r0, _080431F8 - ldrb r1, [r0] - movs r0, #0x29 - ands r0, r1 - cmp r0, #0 - beq _08043158 - bl _0804405E -_08043158: - ldr r1, _080431FC - ldr r0, _08043200 - ldrb r2, [r0] - movs r0, #0x58 - muls r0, r2, r0 - adds r0, r0, r1 - ldrh r0, [r0, #0x28] - cmp r0, #0 - bne _0804316E - bl _0804405E -_0804316E: - ldr r0, _08043204 - lsls r1, r2, #4 - adds r1, r1, r0 - ldrb r0, [r1, #1] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _08043180 - bl _0804405E -_08043180: - ldr r2, _08043208 - ldr r0, _0804320C - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r1, r0, #2 - adds r0, r2, #0 - adds r0, #8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, #0 - bne _080431A8 - adds r0, r2, #0 - adds r0, #0xc - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, #0 - bne _080431A8 - bl _0804405E -_080431A8: - ldr r1, _08043210 - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #8] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080431C0 - bl _0804405E -_080431C0: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080431D8 - bl _0804405E -_080431D8: - ldr r1, _08043214 - movs r0, #0x42 - strb r0, [r1, #3] - bl BattleScriptPushCursor - ldr r1, _08043218 - ldr r0, _0804321C - str r0, [r1] - ldr r2, _08043220 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #6 - orrs r0, r1 - str r0, [r2] - bl _08044010 - .align 2, 0 -_080431F8: .4byte gUnknown_2023F20 -_080431FC: .4byte gUnknown_2023D28 -_08043200: .4byte gUnknown_2023EAF -_08043204: .4byte gUnknown_2023FE0 -_08043208: .4byte gUnknown_2024020 -_0804320C: .4byte gUnknown_2023EB0 -_08043210: .4byte gUnknown_82ED220 -_08043214: .4byte gUnknown_2023FD6 -_08043218: .4byte gUnknown_2023EB8 -_0804321C: .4byte gUnknown_8289C04 -_08043220: .4byte gUnknown_2023F24 -_08043224: - ldr r0, _080432D4 - ldrb r1, [r0] - movs r0, #0x29 - ands r0, r1 - cmp r0, #0 - beq _08043234 - bl _0804405E -_08043234: - ldr r1, _080432D8 - ldr r0, _080432DC - ldrb r2, [r0] - movs r0, #0x58 - muls r0, r2, r0 - adds r0, r0, r1 - ldrh r0, [r0, #0x28] - cmp r0, #0 - bne _0804324A - bl _0804405E -_0804324A: - ldr r0, _080432E0 - lsls r1, r2, #4 - adds r1, r1, r0 - ldrb r0, [r1, #1] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _0804325C - bl _0804405E -_0804325C: - ldr r2, _080432E4 - ldr r0, _080432E8 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r1, r0, #2 - adds r0, r2, #0 - adds r0, #8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, #0 - bne _08043284 - adds r0, r2, #0 - adds r0, #0xc - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, #0 - bne _08043284 - bl _0804405E -_08043284: - ldr r1, _080432EC - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #8] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0804329C - bl _0804405E -_0804329C: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080432B4 - bl _0804405E -_080432B4: - ldr r1, _080432F0 - movs r0, #0x45 - strb r0, [r1, #3] - bl BattleScriptPushCursor - ldr r1, _080432F4 - ldr r0, _080432F8 - str r0, [r1] - ldr r2, _080432FC - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #6 - orrs r0, r1 - str r0, [r2] - bl _08044010 - .align 2, 0 -_080432D4: .4byte gUnknown_2023F20 -_080432D8: .4byte gUnknown_2023D28 -_080432DC: .4byte gUnknown_2023EAF -_080432E0: .4byte gUnknown_2023FE0 -_080432E4: .4byte gUnknown_2024020 -_080432E8: .4byte gUnknown_2023EB0 -_080432EC: .4byte gUnknown_82ED220 -_080432F0: .4byte gUnknown_2023FD6 -_080432F4: .4byte gUnknown_2023EB8 -_080432F8: .4byte gUnknown_8289C04 -_080432FC: .4byte gUnknown_2023F24 -_08043300: - ldr r0, _080433B0 - ldrb r1, [r0] - movs r0, #0x29 - ands r0, r1 - cmp r0, #0 - beq _08043310 - bl _0804405E -_08043310: - ldr r1, _080433B4 - ldr r0, _080433B8 - ldrb r2, [r0] - movs r0, #0x58 - muls r0, r2, r0 - adds r0, r0, r1 - ldrh r0, [r0, #0x28] - cmp r0, #0 - bne _08043326 - bl _0804405E -_08043326: - ldr r0, _080433BC - lsls r1, r2, #4 - adds r1, r1, r0 - ldrb r0, [r1, #1] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _08043338 - bl _0804405E -_08043338: - ldr r1, _080433C0 - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #8] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08043350 - bl _0804405E -_08043350: - ldr r2, _080433C4 - ldr r0, _080433C8 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r1, r0, #2 - adds r0, r2, #0 - adds r0, #8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, #0 - bne _08043378 - adds r0, r2, #0 - adds r0, #0xc - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, #0 - bne _08043378 - bl _0804405E -_08043378: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08043390 - bl _0804405E -_08043390: - ldr r1, _080433CC - movs r0, #0x43 - strb r0, [r1, #3] - bl BattleScriptPushCursor - ldr r1, _080433D0 - ldr r0, _080433D4 - str r0, [r1] - ldr r2, _080433D8 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #6 - orrs r0, r1 - str r0, [r2] - bl _08044010 - .align 2, 0 -_080433B0: .4byte gUnknown_2023F20 -_080433B4: .4byte gUnknown_2023D28 -_080433B8: .4byte gUnknown_2023EAF -_080433BC: .4byte gUnknown_2023FE0 -_080433C0: .4byte gUnknown_82ED220 -_080433C4: .4byte gUnknown_2024020 -_080433C8: .4byte gUnknown_2023EB0 -_080433CC: .4byte gUnknown_2023FD6 -_080433D0: .4byte gUnknown_2023EB8 -_080433D4: .4byte gUnknown_8289C04 -_080433D8: .4byte gUnknown_2023F24 -_080433DC: - ldr r0, _08043520 - ldrb r1, [r0] - movs r0, #0x29 - ands r0, r1 - cmp r0, #0 - beq _080433EC - bl _0804405E -_080433EC: - ldr r6, _08043524 - ldr r3, _08043528 - mov r8, r3 - ldrb r1, [r3] - movs r7, #0x58 - adds r0, r1, #0 - muls r0, r7, r0 - adds r0, r0, r6 - ldrh r0, [r0, #0x28] - cmp r0, #0 - bne _08043406 - bl _0804405E -_08043406: - ldr r0, _0804352C - lsls r1, r1, #4 - adds r1, r1, r0 - ldrb r0, [r1, #1] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _08043418 - bl _0804405E -_08043418: - ldr r1, _08043530 - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #8] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08043430 - bl _0804405E -_08043430: - ldr r3, _08043534 - ldr r5, _08043538 - ldrb r1, [r5] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r2, r0, #2 - adds r0, r3, #0 - adds r0, #8 - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, #0 - bne _08043458 - adds r0, r3, #0 - adds r0, #0xc - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, #0 - bne _08043458 - bl _0804405E -_08043458: - adds r0, r1, #0 - muls r0, r7, r0 - adds r0, r0, r6 - ldrh r0, [r0, #0x28] - cmp r0, #0 - bne _08043468 - bl _0804405E -_08043468: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08043480 - bl _0804405E -_08043480: - mov r1, r8 - ldrb r0, [r1] - muls r0, r7, r0 - adds r0, r0, r6 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0xc - bne _08043494 - bl _0804405E -_08043494: - ldr r0, [sp, #8] - ldr r1, [sp, #0x10] - bl GetGenderFromSpeciesAndPersonality - adds r4, r0, #0 - ldr r0, [sp, #0xc] - ldr r1, [sp, #0x14] - bl GetGenderFromSpeciesAndPersonality - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - bne _080434B2 - bl _0804405E -_080434B2: - mov r2, r8 - ldrb r0, [r2] - muls r0, r7, r0 - adds r4, r6, #0 - adds r4, #0x50 - adds r0, r0, r4 - ldr r0, [r0] - movs r1, #0xf0 - lsls r1, r1, #0xc - ands r0, r1 - cmp r0, #0 - beq _080434CE - bl _0804405E -_080434CE: - ldr r0, [sp, #8] - ldr r1, [sp, #0x10] - bl GetGenderFromSpeciesAndPersonality - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080434E2 - bl _0804405E -_080434E2: - ldr r0, [sp, #0xc] - ldr r1, [sp, #0x14] - bl GetGenderFromSpeciesAndPersonality - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080434F6 - bl _0804405E -_080434F6: - mov r3, r8 - ldrb r0, [r3] - adds r2, r0, #0 - muls r2, r7, r2 - adds r2, r2, r4 - ldr r1, _0804353C - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - lsls r1, r1, #0x10 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - bl BattleScriptPushCursor - ldr r1, _08043540 - ldr r0, _08043544 - str r0, [r1] - bl _08044010 - .align 2, 0 -_08043520: .4byte gUnknown_2023F20 -_08043524: .4byte gUnknown_2023D28 -_08043528: .4byte gUnknown_2023EAF -_0804352C: .4byte gUnknown_2023FE0 -_08043530: .4byte gUnknown_82ED220 -_08043534: .4byte gUnknown_2024020 -_08043538: .4byte gUnknown_2023EB0 -_0804353C: .4byte gUnknown_82FACB4 -_08043540: .4byte gUnknown_2023EB8 -_08043544: .4byte gUnknown_8289BF7 -_08043548: - movs r5, #0 - mov sl, r5 - ldr r0, _0804357C - ldrb r0, [r0] - cmp sl, r0 - blo _08043558 - bl _0804405E -_08043558: - ldr r1, _08043580 - movs r0, #0x58 - mov r2, sl - muls r2, r0, r2 - adds r0, r2, #0 - adds r0, r0, r1 - adds r0, #0x20 - ldrb r0, [r0] - subs r0, #7 - adds r2, r1, #0 - cmp r0, #0x41 - bls _08043572 - b _080437D6 -_08043572: - lsls r0, r0, #2 - ldr r1, _08043584 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0804357C: .4byte gUnknown_2023D10 -_08043580: .4byte gUnknown_2023D28 -_08043584: .4byte _08043588 -_08043588: @ jump table - .4byte _080436EC @ case 0 - .4byte _080437D6 @ case 1 - .4byte _080437D6 @ case 2 - .4byte _080437D6 @ case 3 - .4byte _080437D6 @ case 4 - .4byte _080437B0 @ case 5 - .4byte _080437D6 @ case 6 - .4byte _080437D6 @ case 7 - .4byte _08043714 @ case 8 - .4byte _080437D6 @ case 9 - .4byte _08043690 @ case 10 - .4byte _080437D6 @ case 11 - .4byte _080437D6 @ case 12 - .4byte _080436BC @ case 13 - .4byte _080437D6 @ case 14 - .4byte _080437D6 @ case 15 - .4byte _080437D6 @ case 16 - .4byte _080437D6 @ case 17 - .4byte _080437D6 @ case 18 - .4byte _080437D6 @ case 19 - .4byte _080437D6 @ case 20 - .4byte _080437D6 @ case 21 - .4byte _080437D6 @ case 22 - .4byte _080437D6 @ case 23 - .4byte _080437D6 @ case 24 - .4byte _080437D6 @ case 25 - .4byte _080437D6 @ case 26 - .4byte _080437D6 @ case 27 - .4byte _080437D6 @ case 28 - .4byte _080437D6 @ case 29 - .4byte _080437D6 @ case 30 - .4byte _080437D6 @ case 31 - .4byte _080437D6 @ case 32 - .4byte _08043780 @ case 33 - .4byte _08043750 @ case 34 - .4byte _080437D6 @ case 35 - .4byte _080437D6 @ case 36 - .4byte _080437D6 @ case 37 - .4byte _080437D6 @ case 38 - .4byte _080437D6 @ case 39 - .4byte _080437D6 @ case 40 - .4byte _080437D6 @ case 41 - .4byte _080437D6 @ case 42 - .4byte _080437D6 @ case 43 - .4byte _080437D6 @ case 44 - .4byte _080437D6 @ case 45 - .4byte _080437D6 @ case 46 - .4byte _080437D6 @ case 47 - .4byte _080437D6 @ case 48 - .4byte _080437D6 @ case 49 - .4byte _080437D6 @ case 50 - .4byte _080437D6 @ case 51 - .4byte _080437D6 @ case 52 - .4byte _080437D6 @ case 53 - .4byte _080437D6 @ case 54 - .4byte _080437D6 @ case 55 - .4byte _080437D6 @ case 56 - .4byte _080437D6 @ case 57 - .4byte _080437D6 @ case 58 - .4byte _080437D6 @ case 59 - .4byte _080437D6 @ case 60 - .4byte _080437D6 @ case 61 - .4byte _080437D6 @ case 62 - .4byte _080437D6 @ case 63 - .4byte _080437D6 @ case 64 - .4byte _08043714 @ case 65 -_08043690: - movs r0, #0x58 - mov r3, sl - muls r3, r0, r3 - adds r0, r3, #0 - adds r1, r2, #0 - adds r1, #0x4c - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _080436B0 - ands r0, r1 - cmp r0, #0 - bne _080436AA - b _080437D6 -_080436AA: - ldr r0, _080436B4 - ldr r1, _080436B8 - b _0804379C - .align 2, 0 -_080436B0: .4byte 0x00000F88 -_080436B4: .4byte gUnknown_2022C0C -_080436B8: .4byte gUnknown_85ABC54 -_080436BC: - movs r0, #0x58 - mov r1, sl - muls r1, r0, r1 - adds r0, r1, #0 - adds r1, r2, #0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _080436D6 - b _080437D6 -_080436D6: - ldr r0, _080436E4 - ldr r1, _080436E8 - bl StringCopy - movs r2, #2 - mov sb, r2 - b _080437DC - .align 2, 0 -_080436E4: .4byte gUnknown_2022C0C -_080436E8: .4byte gUnknown_85ABC62 -_080436EC: - movs r0, #0x58 - mov r3, sl - muls r3, r0, r3 - adds r0, r3, #0 - adds r1, r2, #0 - adds r1, #0x4c - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080437D6 - ldr r0, _0804370C - ldr r1, _08043710 - b _0804379C - .align 2, 0 -_0804370C: .4byte gUnknown_2022C0C -_08043710: .4byte gUnknown_85ABC5B -_08043714: - movs r0, #0x58 - mov r3, sl - muls r3, r0, r3 - adds r0, r2, #0 - adds r0, #0x4c - adds r0, r3, r0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - beq _080437D6 - adds r2, #0x50 - adds r2, r3, r2 - ldr r0, [r2] - ldr r1, _08043744 - ands r0, r1 - str r0, [r2] - ldr r0, _08043748 - ldr r1, _0804374C - bl StringCopy - movs r0, #1 - mov sb, r0 - b _080437DC - .align 2, 0 -_08043744: .4byte 0xF7FFFFFF -_08043748: .4byte gUnknown_2022C0C -_0804374C: .4byte gUnknown_85ABC50 -_08043750: - movs r0, #0x58 - mov r1, sl - muls r1, r0, r1 - adds r0, r1, #0 - adds r1, r2, #0 - adds r1, #0x4c - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080437D6 - ldr r0, _08043778 - ldr r1, _0804377C - bl StringCopy - movs r2, #1 - mov sb, r2 - b _080437DC - .align 2, 0 -_08043778: .4byte gUnknown_2022C0C -_0804377C: .4byte gUnknown_85ABC57 -_08043780: - movs r0, #0x58 - mov r3, sl - muls r3, r0, r3 - adds r0, r3, #0 - adds r1, r2, #0 - adds r1, #0x4c - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080437D6 - ldr r0, _080437A8 - ldr r1, _080437AC -_0804379C: - bl StringCopy - movs r5, #1 - mov sb, r5 - b _080437DC - .align 2, 0 -_080437A8: .4byte gUnknown_2022C0C -_080437AC: .4byte gUnknown_85ABC5E -_080437B0: - movs r0, #0x58 - mov r1, sl - muls r1, r0, r1 - adds r0, r1, #0 - adds r1, r2, #0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0xf0 - lsls r1, r1, #0xc - ands r0, r1 - cmp r0, #0 - beq _080437D6 - ldr r0, _080437EC - ldr r1, _080437F0 - bl StringCopy - movs r2, #3 - mov sb, r2 -_080437D6: - mov r3, sb - cmp r3, #0 - beq _08043890 -_080437DC: - mov r5, sb - cmp r5, #2 - beq _08043810 - cmp r5, #2 - bgt _080437F4 - cmp r5, #1 - beq _080437FC - b _0804383C - .align 2, 0 -_080437EC: .4byte gUnknown_2022C0C -_080437F0: .4byte gUnknown_85ABC67 -_080437F4: - mov r0, sb - cmp r0, #3 - beq _08043828 - b _0804383C -_080437FC: - ldr r1, _0804380C - movs r0, #0x58 - mov r2, sl - muls r2, r0, r2 - adds r1, #0x4c - adds r2, r2, r1 - movs r0, #0 - b _0804383A - .align 2, 0 -_0804380C: .4byte gUnknown_2023D28 -_08043810: - ldr r1, _08043824 - movs r0, #0x58 - mov r2, sl - muls r2, r0, r2 - adds r1, #0x50 - adds r2, r2, r1 - ldr r0, [r2] - movs r1, #8 - rsbs r1, r1, #0 - b _08043838 - .align 2, 0 -_08043824: .4byte gUnknown_2023D28 -_08043828: - ldr r1, _08043874 - movs r0, #0x58 - mov r2, sl - muls r2, r0, r2 - adds r1, #0x50 - adds r2, r2, r1 - ldr r0, [r2] - ldr r1, _08043878 -_08043838: - ands r0, r1 -_0804383A: - str r0, [r2] -_0804383C: - bl BattleScriptPushCursor - ldr r1, _0804387C - ldr r0, _08043880 - str r0, [r1] - ldr r0, _08043884 - mov r1, sl - strb r1, [r0, #0x17] - ldr r4, _08043888 - strb r1, [r4] - ldrb r1, [r4] - movs r0, #0x58 - muls r0, r1, r0 - ldr r1, _0804388C - adds r0, r0, r1 - str r0, [sp] - movs r0, #0 - movs r1, #0x28 - movs r2, #0 - movs r3, #4 - bl BtlController_EmitSetMonData - ldrb r0, [r4] - bl MarkBattlerForControllerExec - bl _0804407A - .align 2, 0 -_08043874: .4byte gUnknown_2023D28 -_08043878: .4byte 0xFFF0FFFF -_0804387C: .4byte gUnknown_2023EB8 -_08043880: .4byte gUnknown_8289C14 -_08043884: .4byte gUnknown_2024118 -_08043888: .4byte gUnknown_2023D08 -_0804388C: .4byte gUnknown_2023D74 -_08043890: - mov r0, sl - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - ldr r0, _080438A8 - ldrb r0, [r0] - cmp sl, r0 - bhs _080438A4 - b _08043558 -_080438A4: - bl _0804405E - .align 2, 0 -_080438A8: .4byte gUnknown_2023D10 -_080438AC: - movs r2, #0 - mov sl, r2 - ldr r0, _080438F4 - ldrb r0, [r0] - cmp sl, r0 - blo _080438BA - b _0804405E -_080438BA: - ldr r4, _080438F8 -_080438BC: - movs r0, #0x58 - mov r3, sl - muls r3, r0, r3 - adds r0, r3, #0 - adds r0, r0, r4 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x3b - bne _080438E0 - mov r0, sl - bl CastformDataTypeChange - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - cmp r0, #0 - beq _080438E0 - b _08043F3C -_080438E0: - mov r0, sl - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - ldr r0, _080438F4 - ldrb r0, [r0] - cmp sl, r0 - blo _080438BC - b _0804405E - .align 2, 0 -_080438F4: .4byte gUnknown_2023D10 -_080438F8: .4byte gUnknown_2023D28 -_080438FC: - ldrb r0, [r7] - cmp r0, #0x1c - beq _08043904 - b _0804405E -_08043904: - ldr r4, _08043964 - ldr r1, [r4] - movs r0, #0x80 - lsls r0, r0, #7 - ands r0, r1 - cmp r0, #0 - bne _08043914 - b _0804405E -_08043914: - ldr r0, _08043968 - ands r1, r0 - str r1, [r4] - mov r5, r8 - ldr r1, [r5] - adds r1, #0xb2 - ldrb r2, [r1] - movs r0, #0x3f - ands r0, r2 - strb r0, [r1] - ldr r0, [r5] - adds r1, r0, #0 - adds r1, #0xb2 - ldrb r0, [r1] - cmp r0, #6 - bne _08043938 - movs r0, #2 - strb r0, [r1] -_08043938: - ldr r1, _0804396C - mov r2, r8 - ldr r0, [r2] - adds r0, #0xb2 - ldrb r0, [r0] - adds r0, #0x40 - strb r0, [r1, #3] - ldr r1, _08043970 - ldr r0, _08043974 - ldrb r0, [r0] - strb r0, [r1, #0x17] - bl BattleScriptPushCursor - ldr r1, _08043978 - ldr r0, _0804397C - str r0, [r1] - ldr r0, [r4] - movs r1, #0x80 - lsls r1, r1, #6 - orrs r0, r1 - str r0, [r4] - b _08044010 - .align 2, 0 -_08043964: .4byte gUnknown_2023F24 -_08043968: .4byte 0xFFFFBFFF -_0804396C: .4byte gUnknown_2023FD6 -_08043970: .4byte gUnknown_2024118 -_08043974: .4byte gUnknown_2023EB0 -_08043978: .4byte gUnknown_2023EB8 -_0804397C: .4byte gUnknown_8289C07 -_08043980: - ldrb r0, [r7] - cmp r0, #0x1c - beq _08043988 - b _0804405E -_08043988: - ldr r4, _080439E8 - ldr r1, [r4] - movs r0, #0x80 - lsls r0, r0, #7 - ands r0, r1 - cmp r0, #0 - bne _08043998 - b _0804405E -_08043998: - ldr r0, _080439EC - ands r1, r0 - str r1, [r4] - mov r3, r8 - ldr r1, [r3] - adds r1, #0xb2 - ldrb r2, [r1] - movs r0, #0x3f - ands r0, r2 - strb r0, [r1] - ldr r0, [r3] - adds r1, r0, #0 - adds r1, #0xb2 - ldrb r0, [r1] - cmp r0, #6 - bne _080439BC - movs r0, #2 - strb r0, [r1] -_080439BC: - ldr r1, _080439F0 - mov r3, r8 - ldr r0, [r3] - adds r0, #0xb2 - ldrb r0, [r0] - strb r0, [r1, #3] - ldr r1, _080439F4 - ldr r0, _080439F8 - ldrb r0, [r0] - strb r0, [r1, #0x17] - bl BattleScriptPushCursor - ldr r1, _080439FC - ldr r0, _08043A00 - str r0, [r1] - ldr r0, [r4] - movs r1, #0x80 - lsls r1, r1, #6 - orrs r0, r1 - str r0, [r4] - b _08044010 - .align 2, 0 -_080439E8: .4byte gUnknown_2023F24 -_080439EC: .4byte 0xFFFFBFFF -_080439F0: .4byte gUnknown_2023FD6 -_080439F4: .4byte gUnknown_2024118 -_080439F8: .4byte gUnknown_2023EAF -_080439FC: .4byte gUnknown_2023EB8 -_08043A00: .4byte gUnknown_8289C07 -_08043A04: - movs r4, #0 - ldr r0, _08043A3C - ldrb r1, [r0] - cmp r4, r1 - blt _08043A10 - b _0804405E -_08043A10: - ldr r0, _08043A40 - adds r5, r1, #0 - ldr r2, _08043A44 - adds r3, r0, #0 - adds r3, #0x20 - movs r6, #0x80 - lsls r6, r6, #0xc -_08043A1E: - ldrb r1, [r3] - cmp r1, #0x16 - bne _08043A2E - ldr r0, [r2] - ands r0, r6 - cmp r0, #0 - beq _08043A2E - b _08043F64 -_08043A2E: - adds r2, #4 - adds r3, #0x58 - adds r4, #1 - cmp r4, r5 - blt _08043A1E - b _0804405E - .align 2, 0 -_08043A3C: .4byte gUnknown_2023D10 -_08043A40: .4byte gUnknown_2023D28 -_08043A44: .4byte gUnknown_2023F50 -_08043A48: - movs r4, #0 - ldr r0, _08043B24 - ldrb r0, [r0] - cmp r4, r0 - blt _08043A54 - b _0804405E -_08043A54: - ldr r5, _08043B28 - mov r8, r5 - ldr r0, _08043B2C - adds r0, #0x20 - str r0, [sp, #0x1c] - movs r1, #0 - str r1, [sp, #0x20] -_08043A62: - ldr r2, [sp, #0x1c] - ldrb r0, [r2] - cmp r0, #0x24 - beq _08043A6C - b _08043BFE -_08043A6C: - ldr r0, _08043B30 - ldr r3, [sp, #0x20] - adds r0, r3, r0 - ldr r1, [r0] - movs r0, #0x80 - lsls r0, r0, #0xd - ands r1, r0 - str r3, [sp, #0x18] - cmp r1, #0 - bne _08043A82 - b _08043BFE -_08043A82: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl sub_080A630C - movs r1, #1 - adds r5, r0, #0 - eors r5, r1 - ands r5, r1 - adds r0, r5, #0 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r0, r5, #2 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _08043B34 - ldr r0, [r0] - movs r2, #1 - ands r0, r2 - cmp r0, #0 - bne _08043AB4 - b _08043BC4 -_08043AB4: - movs r1, #0x58 - adds r0, r6, #0 - muls r0, r1, r0 - ldr r3, _08043B2C - adds r1, r0, r3 - adds r0, r1, #0 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0 - beq _08043B80 - ldrh r0, [r1, #0x28] - cmp r0, #0 - beq _08043B3C - movs r1, #0x58 - adds r0, r7, #0 - muls r0, r1, r0 - adds r1, r0, r3 - adds r0, r1, #0 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0 - beq _08043B3C - ldrh r0, [r1, #0x28] - cmp r0, #0 - beq _08043B3C - str r2, [sp, #0x24] - bl Random - ldr r2, [sp, #0x24] - adds r1, r2, #0 - ands r1, r0 - lsls r1, r1, #1 - orrs r5, r1 - adds r0, r5, #0 - bl GetBattlerAtPosition - mov r2, r8 - strb r0, [r2] - ldrb r0, [r2] - movs r3, #0x58 - muls r0, r3, r0 - ldr r5, _08043B2C - adds r0, r0, r5 - adds r0, #0x20 - ldrb r0, [r0] - ldr r1, [sp, #0x1c] - strb r0, [r1] - ldrb r0, [r2] - muls r0, r3, r0 - adds r0, r0, r5 - adds r0, #0x20 - ldrb r0, [r0] - ldr r2, _08043B38 - strb r0, [r2] - b _08043BEC - .align 2, 0 -_08043B24: .4byte gUnknown_2023D10 -_08043B28: .4byte gUnknown_2023D08 -_08043B2C: .4byte gUnknown_2023D28 -_08043B30: .4byte gUnknown_2023F50 -_08043B34: .4byte gUnknown_2022C90 -_08043B38: .4byte gUnknown_2023EAE -_08043B3C: - ldr r3, _08043B7C - movs r2, #0x58 - adds r0, r6, #0 - muls r0, r2, r0 - adds r1, r0, r3 - adds r0, r1, #0 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0 - beq _08043B80 - ldrh r0, [r1, #0x28] - cmp r0, #0 - beq _08043B80 - mov r5, r8 - strb r6, [r5] - adds r1, r4, #0 - muls r1, r2, r1 - adds r1, r1, r3 - ldrb r0, [r5] - muls r0, r2, r0 - adds r0, r0, r3 - adds r0, #0x20 - ldrb r0, [r0] - adds r1, #0x20 - strb r0, [r1] - ldrb r0, [r5] - muls r0, r2, r0 - adds r0, r0, r3 - adds r0, #0x20 - ldrb r0, [r0] - b _08043BE8 - .align 2, 0 -_08043B7C: .4byte gUnknown_2023D28 -_08043B80: - ldr r3, _08043BC0 - movs r2, #0x58 - adds r0, r7, #0 - muls r0, r2, r0 - adds r1, r0, r3 - adds r0, r1, #0 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0 - beq _08043BF6 - ldrh r0, [r1, #0x28] - cmp r0, #0 - beq _08043BF6 - mov r5, r8 - strb r7, [r5] - adds r1, r4, #0 - muls r1, r2, r1 - adds r1, r1, r3 - ldrb r0, [r5] - muls r0, r2, r0 - adds r0, r0, r3 - adds r0, #0x20 - ldrb r0, [r0] - adds r1, #0x20 - strb r0, [r1] - ldrb r0, [r5] - muls r0, r2, r0 - adds r0, r0, r3 - adds r0, #0x20 - ldrb r0, [r0] - b _08043BE8 - .align 2, 0 -_08043BC0: .4byte gUnknown_2023D28 -_08043BC4: - mov r2, r8 - strb r6, [r2] - movs r3, #0x58 - adds r0, r6, #0 - muls r0, r3, r0 - ldr r5, _08043C18 - adds r0, r0, r5 - adds r2, r0, #0 - adds r2, #0x20 - ldrb r1, [r2] - cmp r1, #0 - beq _08043BF6 - ldrh r0, [r0, #0x28] - cmp r0, #0 - beq _08043BF6 - ldr r0, [sp, #0x1c] - strb r1, [r0] - ldrb r0, [r2] -_08043BE8: - ldr r1, _08043C1C - strb r0, [r1] -_08043BEC: - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 -_08043BF6: - mov r2, sb - cmp r2, #0 - beq _08043BFE - b _08043F80 -_08043BFE: - ldr r3, [sp, #0x1c] - adds r3, #0x58 - str r3, [sp, #0x1c] - ldr r5, [sp, #0x20] - adds r5, #4 - str r5, [sp, #0x20] - adds r4, #1 - ldr r0, _08043C20 - ldrb r0, [r0] - cmp r4, r0 - bge _08043C16 - b _08043A62 -_08043C16: - b _0804405E - .align 2, 0 -_08043C18: .4byte gUnknown_2023D28 -_08043C1C: .4byte gUnknown_2023EAE -_08043C20: .4byte gUnknown_2023D10 -_08043C24: - movs r4, #0 - ldr r0, _08043C5C - ldrb r1, [r0] - cmp r4, r1 - blt _08043C30 - b _0804405E -_08043C30: - ldr r0, _08043C60 - adds r5, r1, #0 - ldr r2, _08043C64 - adds r3, r0, #0 - adds r3, #0x20 - movs r6, #0x80 - lsls r6, r6, #0xc -_08043C3E: - ldrb r1, [r3] - cmp r1, #0x16 - bne _08043C4E - ldr r0, [r2] - ands r0, r6 - cmp r0, #0 - beq _08043C4E - b _08043FF4 -_08043C4E: - adds r2, #4 - adds r3, #0x58 - adds r4, #1 - cmp r4, r5 - blt _08043C3E - b _0804405E - .align 2, 0 -_08043C5C: .4byte gUnknown_2023D10 -_08043C60: .4byte gUnknown_2023D28 -_08043C64: .4byte gUnknown_2023F50 -_08043C68: - mov r0, sl - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r4, #0 - ldr r0, _08043CB8 - ldrb r0, [r0] - cmp r4, r0 - blt _08043C7E - b _0804405E -_08043C7E: - ldr r7, _08043CBC -_08043C80: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r3, r4, #1 - cmp r0, r5 - beq _08043CAA - movs r0, #0x58 - muls r0, r4, r0 - adds r0, r0, r7 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, r6 - bne _08043CAA - ldr r0, _08043CC0 - strb r6, [r0] - lsls r0, r3, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 -_08043CAA: - adds r4, r3, #0 - ldr r0, _08043CB8 - ldrb r0, [r0] - cmp r4, r0 - blt _08043C80 - b _0804405E - .align 2, 0 -_08043CB8: .4byte gUnknown_2023D10 -_08043CBC: .4byte gUnknown_2023D28 -_08043CC0: .4byte gUnknown_2023EAE -_08043CC4: - mov r0, sl - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r4, #0 - ldr r0, _08043D14 - ldrb r0, [r0] - cmp r4, r0 - blt _08043CDA - b _0804405E -_08043CDA: - ldr r7, _08043D18 -_08043CDC: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r3, r4, #1 - cmp r0, r5 - bne _08043D06 - movs r0, #0x58 - muls r0, r4, r0 - adds r0, r0, r7 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, r6 - bne _08043D06 - ldr r0, _08043D1C - strb r6, [r0] - lsls r0, r3, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 -_08043D06: - adds r4, r3, #0 - ldr r0, _08043D14 - ldrb r0, [r0] - cmp r4, r0 - blt _08043CDC - b _0804405E - .align 2, 0 -_08043D14: .4byte gUnknown_2023D10 -_08043D18: .4byte gUnknown_2023D28 -_08043D1C: .4byte gUnknown_2023EAE -_08043D20: - ldrb r0, [r7] - cmp r0, #0xfd - beq _08043D44 - cmp r0, #0xfe - beq _08043D7C - movs r4, #0 - ldr r0, _08043D3C - adds r5, r0, #0 - ldrb r0, [r5] - cmp r4, r0 - blt _08043D38 - b _0804405E -_08043D38: - ldr r2, _08043D40 - b _08043DB4 - .align 2, 0 -_08043D3C: .4byte gUnknown_2023D10 -_08043D40: .4byte gUnknown_2023D28 -_08043D44: - movs r4, #0 - ldr r0, _08043D74 - ldrb r0, [r0] - cmp r4, r0 - blt _08043D50 - b _0804405E -_08043D50: - ldr r5, _08043D78 - movs r2, #0x80 - lsls r2, r2, #9 - adds r1, r0, #0 -_08043D58: - lsls r0, r4, #2 - adds r0, r0, r5 - ldr r0, [r0] - ands r0, r2 - adds r3, r4, #1 - cmp r0, #0 - beq _08043D6C - lsls r0, r3, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 -_08043D6C: - adds r4, r3, #0 - cmp r4, r1 - blt _08043D58 - b _0804405E - .align 2, 0 -_08043D74: .4byte gUnknown_2023D10 -_08043D78: .4byte gUnknown_2023F50 -_08043D7C: - movs r4, #0 - ldr r0, _08043DAC - ldrb r0, [r0] - cmp r4, r0 - blt _08043D88 - b _0804405E -_08043D88: - ldr r5, _08043DB0 - movs r2, #0x80 - lsls r2, r2, #0xa - adds r1, r0, #0 -_08043D90: - lsls r0, r4, #2 - adds r0, r0, r5 - ldr r0, [r0] - ands r0, r2 - adds r3, r4, #1 - cmp r0, #0 - beq _08043DA4 - lsls r0, r3, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 -_08043DA4: - adds r4, r3, #0 - cmp r4, r1 - blt _08043D90 - b _0804405E - .align 2, 0 -_08043DAC: .4byte gUnknown_2023D10 -_08043DB0: .4byte gUnknown_2023F50 -_08043DB4: - movs r0, #0x58 - muls r0, r4, r0 - adds r0, r0, r2 - adds r0, #0x20 - ldrb r0, [r0] - adds r3, r4, #1 - cmp r0, r6 - bne _08043DCC - strb r6, [r7] - lsls r0, r3, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 -_08043DCC: - adds r4, r3, #0 - ldrb r1, [r5] - cmp r4, r1 - blt _08043DB4 - b _0804405E -_08043DD6: - movs r4, #0 - ldr r0, _08043E14 - ldrb r0, [r0] - cmp r4, r0 - blt _08043DE2 - b _0804405E -_08043DE2: - ldr r2, _08043E18 - mov r8, r2 - adds r2, r0, #0 - movs r5, #0x58 -_08043DEA: - adds r0, r4, #0 - muls r0, r5, r0 - mov r3, r8 - adds r1, r0, r3 - adds r0, r1, #0 - adds r0, #0x20 - ldrb r0, [r0] - adds r3, r4, #1 - cmp r0, r6 - bne _08043E0C - ldrh r0, [r1, #0x28] - cmp r0, #0 - beq _08043E0C - strb r6, [r7] - lsls r0, r3, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 -_08043E0C: - adds r4, r3, #0 - cmp r4, r2 - blt _08043DEA - b _0804405E - .align 2, 0 -_08043E14: .4byte gUnknown_2023D10 -_08043E18: .4byte gUnknown_2023D28 -_08043E1C: - movs r4, #0 - ldr r0, _08043E54 - ldrb r0, [r0] - cmp r4, r0 - blt _08043E28 - b _0804405E -_08043E28: - ldr r7, _08043E58 - adds r1, r0, #0 - movs r5, #0x58 - ldr r2, _08043E5C -_08043E30: - adds r0, r4, #0 - muls r0, r5, r0 - adds r0, r0, r7 - adds r0, #0x20 - ldrb r0, [r0] - adds r3, r4, #1 - cmp r0, r6 - bne _08043E4C - cmp r4, sl - beq _08043E4C - strb r6, [r2] - lsls r0, r3, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 -_08043E4C: - adds r4, r3, #0 - cmp r4, r1 - blt _08043E30 - b _0804405E - .align 2, 0 -_08043E54: .4byte gUnknown_2023D10 -_08043E58: .4byte gUnknown_2023D28 -_08043E5C: .4byte gUnknown_2023EAE -_08043E60: - mov r0, sl - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r4, #0 - ldr r0, _08043EB0 - ldrb r0, [r0] - cmp r4, r0 - blt _08043E76 - b _0804405E -_08043E76: - ldr r7, _08043EB4 -_08043E78: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r5 - beq _08043EA4 - movs r0, #0x58 - muls r0, r4, r0 - adds r0, r0, r7 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, r6 - bne _08043EA4 - ldr r0, _08043EB8 - strb r6, [r0] - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 -_08043EA4: - adds r4, #1 - ldr r0, _08043EB0 - ldrb r0, [r0] - cmp r4, r0 - blt _08043E78 - b _0804405E - .align 2, 0 -_08043EB0: .4byte gUnknown_2023D10 -_08043EB4: .4byte gUnknown_2023D28 -_08043EB8: .4byte gUnknown_2023EAE -_08043EBC: - mov r0, sl - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r4, #0 - ldr r0, _08043F0C - ldrb r0, [r0] - cmp r4, r0 - blt _08043ED2 - b _0804405E -_08043ED2: - ldr r7, _08043F10 -_08043ED4: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r5 - bne _08043F00 - movs r0, #0x58 - muls r0, r4, r0 - adds r0, r0, r7 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, r6 - bne _08043F00 - ldr r0, _08043F14 - strb r6, [r0] - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 -_08043F00: - adds r4, #1 - ldr r0, _08043F0C - ldrb r0, [r0] - cmp r4, r0 - blt _08043ED4 - b _0804405E - .align 2, 0 -_08043F0C: .4byte gUnknown_2023D10 -_08043F10: .4byte gUnknown_2023D28 -_08043F14: .4byte gUnknown_2023EAE - thumb_func_end AbilityBattleEffects - - thumb_func_start sub_08043F18 -sub_08043F18: @ 0x08043F18 - ldr r0, _08043F30 - bl BattleScriptPushCursorAndCallback - ldr r0, _08043F34 - strb r6, [r0, #0x17] -_08043F22: - ldr r0, _08043F38 - ldr r0, [r0] - adds r0, #0x7f - mov r1, sb - subs r1, #1 - strb r1, [r0] - b _0804405E - .align 2, 0 -_08043F30: .4byte gUnknown_8289A31 -_08043F34: .4byte gUnknown_2024118 -_08043F38: .4byte gUnknown_2024140 -_08043F3C: - ldr r0, _08043F58 - bl BattleScriptPushCursorAndCallback - ldr r0, _08043F5C - mov r5, sl - strb r5, [r0, #0x17] - ldr r0, _08043F60 - ldr r0, [r0] - adds r0, #0x7f - mov r1, sb - subs r1, #1 - strb r1, [r0] - b _0804407A - .align 2, 0 -_08043F58: .4byte gUnknown_8289A31 -_08043F5C: .4byte gUnknown_2024118 -_08043F60: .4byte gUnknown_2024140 -_08043F64: - strb r1, [r7] - ldr r0, [r2] - ldr r1, _08043F78 - ands r0, r1 - str r0, [r2] - ldr r0, _08043F7C - bl BattleScriptPushCursorAndCallback - b _08044008 - .align 2, 0 -_08043F78: .4byte 0xFFF7FFFF -_08043F7C: .4byte gUnknown_8289A40 -_08043F80: - ldr r0, _08043FD0 - bl BattleScriptPushCursorAndCallback - ldr r1, _08043FD4 - ldr r0, [sp, #0x18] - adds r1, r0, r1 - ldr r0, [r1] - ldr r2, _08043FD8 - ands r0, r2 - str r0, [r1] - ldr r0, _08043FDC - strb r4, [r0, #0x17] - ldr r1, _08043FE0 - movs r4, #0xfd - strb r4, [r1] - movs r0, #4 - strb r0, [r1, #1] - ldr r2, _08043FE4 - ldrb r0, [r2] - strb r0, [r1, #2] - ldr r3, _08043FE8 - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r0, [r0] - strb r0, [r1, #3] - movs r0, #0xff - strb r0, [r1, #4] - ldr r1, _08043FEC - strb r4, [r1] - movs r0, #9 - strb r0, [r1, #1] - ldr r0, _08043FF0 - ldrb r0, [r0] - strb r0, [r1, #2] - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r1, #3] - b _0804405E - .align 2, 0 -_08043FD0: .4byte gUnknown_82899DA -_08043FD4: .4byte gUnknown_2023F50 -_08043FD8: .4byte 0xFFEFFFFF -_08043FDC: .4byte gUnknown_2024118 -_08043FE0: .4byte gUnknown_2022C0C -_08043FE4: .4byte gUnknown_2023D08 -_08043FE8: .4byte gUnknown_2023D12 -_08043FEC: .4byte gUnknown_2022C1C -_08043FF0: .4byte gUnknown_2023EAE -_08043FF4: - strb r1, [r7] - ldr r0, [r2] - ldr r1, _0804401C - ands r0, r1 - str r0, [r2] - bl BattleScriptPushCursor - ldr r1, _08044020 - ldr r0, _08044024 - str r0, [r1] -_08044008: - ldr r0, _08044028 - ldr r0, [r0] - adds r0, #0xd8 - strb r4, [r0] -_08044010: - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - b _0804405E - .align 2, 0 -_0804401C: .4byte 0xFFF7FFFF -_08044020: .4byte gUnknown_2023EB8 -_08044024: .4byte gUnknown_8289A49 -_08044028: .4byte gUnknown_2024140 -_0804402C: - movs r4, #0 - ldr r0, _0804408C - ldrb r1, [r0] - cmp r4, r1 - bge _0804405E - ldr r0, _08044090 - adds r2, r1, #0 - adds r1, r0, #0 - adds r1, #0x20 - ldr r3, _08044094 -_08044040: - ldrb r0, [r1] - cmp r0, r6 - bne _08044056 - cmp r4, sl - beq _08044056 - strb r6, [r3] - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 -_08044056: - adds r1, #0x58 - adds r4, #1 - cmp r4, r2 - blt _08044040 -_0804405E: - mov r1, sb - cmp r1, #0 - beq _0804407A -_08044064: - ldr r2, [sp, #4] - cmp r2, #0xb - bhi _0804407A - ldr r1, _08044094 - ldrb r0, [r1] - cmp r0, #0xff - beq _0804407A - adds r1, r0, #0 - mov r0, sl - bl RecordAbilityBattle -_0804407A: - mov r0, sb - add sp, #0x28 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0804408C: .4byte gUnknown_2023D10 -_08044090: .4byte gUnknown_2023D28 -_08044094: .4byte gUnknown_2023EAE - thumb_func_end sub_08043F18 - - thumb_func_start BattleScriptExecute -BattleScriptExecute: @ 0x08044098 - ldr r1, _080440C4 - str r0, [r1] - ldr r0, _080440C8 - ldr r0, [r0] - ldr r2, [r0, #0xc] - adds r3, r2, #0 - adds r3, #0x20 - ldrb r0, [r3] - adds r1, r0, #1 - strb r1, [r3] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r2, r2, r0 - ldr r1, _080440CC - ldr r0, [r1] - str r0, [r2] - ldr r0, _080440D0 - str r0, [r1] - ldr r1, _080440D4 - movs r0, #0 - strb r0, [r1] - bx lr - .align 2, 0 -_080440C4: .4byte gUnknown_2023EB8 -_080440C8: .4byte gUnknown_202414C -_080440CC: .4byte gUnknown_3005A64 -_080440D0: .4byte RunBattleScriptCommands_PopCallbacksStack -_080440D4: .4byte gUnknown_2023D27 - thumb_func_end BattleScriptExecute - - thumb_func_start BattleScriptPushCursorAndCallback -BattleScriptPushCursorAndCallback: @ 0x080440D8 - push {r4, lr} - adds r4, r0, #0 - bl BattleScriptPushCursor - ldr r0, _0804410C - str r4, [r0] - ldr r0, _08044110 - ldr r0, [r0] - ldr r2, [r0, #0xc] - adds r3, r2, #0 - adds r3, #0x20 - ldrb r0, [r3] - adds r1, r0, #1 - strb r1, [r3] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r2, r2, r0 - ldr r1, _08044114 - ldr r0, [r1] - str r0, [r2] - ldr r0, _08044118 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804410C: .4byte gUnknown_2023EB8 -_08044110: .4byte gUnknown_202414C -_08044114: .4byte gUnknown_3005A64 -_08044118: .4byte sub_0803DCCC - thumb_func_end BattleScriptPushCursorAndCallback - - thumb_func_start ItemBattleEffects -ItemBattleEffects: @ 0x0804411C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x2c - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #8] - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - movs r0, #0 - mov sl, r0 - movs r1, #0 - str r1, [sp, #0xc] - add r0, sp, #4 - strb r1, [r0] - ldr r4, _08044168 - ldr r1, _0804416C - movs r0, #0x58 - muls r0, r7, r0 - adds r0, r0, r1 - ldrh r0, [r0, #0x2e] - strh r0, [r4] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xaf - bne _08044174 - ldr r1, _08044170 - lsls r0, r7, #3 - subs r0, r0, r7 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r5, [r0, #7] - ldrb r0, [r0, #0x1a] - b _08044188 - .align 2, 0 -_08044168: .4byte gUnknown_2023EAC -_0804416C: .4byte gUnknown_2023D28 -_08044170: .4byte gUnknown_20240A8 -_08044174: - ldrh r0, [r4] - bl sub_080D6CF8 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldrh r0, [r4] - bl sub_080D6D1C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_08044188: - mov sb, r0 - ldr r1, _080441B0 - ldr r0, _080441B4 - ldrb r2, [r0] - movs r0, #0x58 - muls r0, r2, r0 - adds r0, r0, r1 - ldrh r0, [r0, #0x2e] - str r0, [sp, #0x14] - cmp r0, #0xaf - bne _080441BC - ldr r1, _080441B8 - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r3, [r0, #7] - mov r8, r3 - ldrb r0, [r0, #0x1a] - b _080441D2 - .align 2, 0 -_080441B0: .4byte gUnknown_2023D28 -_080441B4: .4byte gUnknown_2023EAF -_080441B8: .4byte gUnknown_20240A8 -_080441BC: - ldr r0, [sp, #0x14] - bl sub_080D6CF8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r0, [sp, #0x14] - bl sub_080D6D1C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_080441D2: - str r0, [sp, #0x10] - ldr r2, _08044208 - ldr r0, _0804420C - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - ldrh r4, [r0, #0x2e] - cmp r4, #0xaf - beq _080441F2 - adds r0, r4, #0 - bl sub_080D6CF8 - adds r0, r4, #0 - bl sub_080D6D1C -_080441F2: - ldr r0, [sp, #8] - cmp r0, #4 - bls _080441FC - bl _0804546A -_080441FC: - lsls r0, r0, #2 - ldr r1, _08044210 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08044208: .4byte gUnknown_2023D28 -_0804420C: .4byte gUnknown_2023EB0 -_08044210: .4byte _08044214 -_08044214: @ jump table - .4byte _08044228 @ case 0 - .4byte _080442C8 @ case 1 - .4byte _0804546A @ case 2 - .4byte _08044EC0 @ case 3 - .4byte _08045310 @ case 4 -_08044228: - cmp r5, #0x17 - beq _08044258 - cmp r5, #0x20 - beq _08044234 - bl _0804546A -_08044234: - adds r0, r7, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08044244 - bl _0804546A -_08044244: - ldr r0, _08044254 - ldr r0, [r0] - adds r0, #0x4a - movs r1, #2 - strb r1, [r0] - bl _0804546A - .align 2, 0 -_08044254: .4byte gUnknown_2024140 -_08044258: - ldr r1, _080442B0 - mov r8, r1 - movs r0, #0x58 - adds r1, r7, #0 - muls r1, r0, r1 - mov r0, r8 - adds r0, #0x18 - adds r1, r1, r0 - movs r2, #6 - movs r3, #7 - mov sl, r3 -_0804426E: - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #5 - bgt _0804427C - strb r2, [r1] - movs r5, #5 - str r5, [sp, #0xc] -_0804427C: - adds r1, #1 - movs r0, #1 - rsbs r0, r0, #0 - add sl, r0 - mov r3, sl - cmp r3, #0 - bge _0804426E - ldr r5, [sp, #0xc] - cmp r5, #0 - bne _08044294 - bl _0804546A -_08044294: - ldr r0, _080442B4 - strb r7, [r0, #0x17] - ldr r0, _080442B8 - strb r7, [r0] - ldr r1, _080442BC - ldr r0, _080442C0 - strb r7, [r0] - strb r7, [r1] - ldr r0, _080442C4 - bl BattleScriptExecute - bl _0804546A - .align 2, 0 -_080442B0: .4byte gUnknown_2023D28 -_080442B4: .4byte gUnknown_2024118 -_080442B8: .4byte gUnknown_2023EB3 -_080442BC: .4byte gUnknown_2023D08 -_080442C0: .4byte gUnknown_2023EAF -_080442C4: .4byte gUnknown_8289D36 -_080442C8: - ldr r1, _080442F0 - movs r0, #0x58 - muls r0, r7, r0 - adds r0, r0, r1 - ldrh r0, [r0, #0x28] - mov r8, r1 - cmp r0, #0 - bne _080442DC - bl _0804546A -_080442DC: - subs r0, r5, #1 - cmp r0, #0x2a - bls _080442E6 - bl _08044E16 -_080442E6: - lsls r0, r0, #2 - ldr r1, _080442F4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080442F0: .4byte gUnknown_2023D28 -_080442F4: .4byte _080442F8 -_080442F8: @ jump table - .4byte _080443A4 @ case 0 - .4byte _08044B84 @ case 1 - .4byte _08044C48 @ case 2 - .4byte _08044BB4 @ case 3 - .4byte _08044BE8 @ case 4 - .4byte _08044C18 @ case 5 - .4byte _080443F0 @ case 6 - .4byte _08044C84 @ case 7 - .4byte _08044CB4 @ case 8 - .4byte _080445BC @ case 9 - .4byte _0804463C @ case 10 - .4byte _080446B8 @ case 11 - .4byte _0804474C @ case 12 - .4byte _080447E0 @ case 13 - .4byte _08044874 @ case 14 - .4byte _080448DC @ case 15 - .4byte _08044930 @ case 16 - .4byte _08044984 @ case 17 - .4byte _080449EC @ case 18 - .4byte _08044A50 @ case 19 - .4byte _08044A9C @ case 20 - .4byte _08044E16 @ case 21 - .4byte _080444F0 @ case 22 - .4byte _08044E16 @ case 23 - .4byte _08044E16 @ case 24 - .4byte _08044E16 @ case 25 - .4byte _08044E16 @ case 26 - .4byte _08044DE0 @ case 27 - .4byte _08044E16 @ case 28 - .4byte _08044E16 @ case 29 - .4byte _08044E16 @ case 30 - .4byte _08044E16 @ case 31 - .4byte _08044E16 @ case 32 - .4byte _08044E16 @ case 33 - .4byte _08044E16 @ case 34 - .4byte _08044E16 @ case 35 - .4byte _08044E16 @ case 36 - .4byte _08044E16 @ case 37 - .4byte _08044E16 @ case 38 - .4byte _08044E16 @ case 39 - .4byte _08044E16 @ case 40 - .4byte _08044E16 @ case 41 - .4byte _0804455C @ case 42 -_080443A4: - movs r0, #0x58 - muls r0, r7, r0 - mov r1, r8 - adds r2, r0, r1 - ldrh r0, [r2, #0x2c] - ldrh r1, [r2, #0x28] - lsrs r0, r0, #1 - cmp r1, r0 - bls _080443BA - bl _08044E16 -_080443BA: - cmp r6, #0 - beq _080443C2 - bl _08044E16 -_080443C2: - ldr r4, _080443E8 - mov r3, sb - str r3, [r4] - ldrh r3, [r2, #0x28] - mov r5, sb - adds r0, r3, r5 - ldrh r1, [r2, #0x2c] - cmp r0, r1 - ble _080443D8 - subs r0, r1, r3 - str r0, [r4] -_080443D8: - ldr r0, [r4] - rsbs r0, r0, #0 - str r0, [r4] - ldr r0, _080443EC - bl BattleScriptExecute - b _08044742 - .align 2, 0 -_080443E8: .4byte gUnknown_2023E94 -_080443EC: .4byte gUnknown_8289D4C -_080443F0: - cmp r6, #0 - beq _080443F8 - bl _08044E16 -_080443F8: - adds r0, r7, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0804441C - ldr r1, _08044414 - lsls r0, r7, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _08044418 - b _0804442A - .align 2, 0 -_08044414: .4byte gUnknown_2023D12 -_08044418: .4byte gUnknown_2024190 -_0804441C: - ldr r1, _08044498 - lsls r0, r7, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _0804449C -_0804442A: - adds r4, r1, r0 - movs r1, #0 - mov sl, r1 - add r5, sp, #4 -_08044432: - mov r1, sl - adds r1, #0xd - adds r0, r4, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - mov r1, sl - adds r1, #0x11 - adds r0, r4, #0 - bl GetMonData - strb r0, [r5] - adds r0, r4, #0 - movs r1, #0x15 - bl GetMonData - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r6, #0 - beq _08044462 - ldrb r0, [r5] - cmp r0, #0 - beq _0804446C -_08044462: - movs r2, #1 - add sl, r2 - mov r3, sl - cmp r3, #3 - ble _08044432 -_0804446C: - mov r5, sl - cmp r5, #4 - bne _08044476 - bl _08044E16 -_08044476: - lsls r2, r5, #0x18 - lsrs r2, r2, #0x18 - adds r0, r6, #0 - bl CalculatePPWithBonus - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - add r0, sp, #4 - ldrb r0, [r0] - mov r3, sb - adds r1, r0, r3 - cmp r1, r2 - ble _080444A0 - add r0, sp, #4 - strb r2, [r0] - b _080444A4 - .align 2, 0 -_08044498: .4byte gUnknown_2023D12 -_0804449C: .4byte gUnknown_20243E8 -_080444A0: - add r0, sp, #4 - strb r1, [r0] -_080444A4: - ldr r1, _080444E4 - movs r0, #0xfd - strb r0, [r1] - movs r0, #2 - strb r0, [r1, #1] - strb r6, [r1, #2] - lsrs r0, r6, #8 - strb r0, [r1, #3] - movs r0, #0xff - strb r0, [r1, #4] - ldr r0, _080444E8 - bl BattleScriptExecute - mov r1, sl - adds r1, #9 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - add r5, sp, #4 - str r5, [sp] - movs r0, #0 - movs r2, #0 - movs r3, #1 - bl BtlController_EmitSetMonData - ldr r0, _080444EC - ldrb r0, [r0] - bl MarkBattlerForControllerExec - movs r0, #3 - str r0, [sp, #0xc] - bl _08044E1E - .align 2, 0 -_080444E4: .4byte gUnknown_2022C0C -_080444E8: .4byte gUnknown_8289D69 -_080444EC: .4byte gUnknown_2023D08 -_080444F0: - ldr r0, _08044544 - movs r1, #0x58 - muls r1, r7, r1 - adds r0, #0x18 - adds r1, r1, r0 - movs r2, #6 - movs r3, #7 - mov sl, r3 -_08044500: - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #5 - bgt _0804450E - strb r2, [r1] - movs r5, #5 - str r5, [sp, #0xc] -_0804450E: - adds r1, #1 - movs r0, #1 - rsbs r0, r0, #0 - add sl, r0 - mov r3, sl - cmp r3, #0 - bge _08044500 - movs r5, #8 - mov sl, r5 - ldr r0, [sp, #0xc] - cmp r0, #0 - bne _0804452A - bl _0804546A -_0804452A: - ldr r0, _08044548 - strb r7, [r0, #0x17] - ldr r0, _0804454C - strb r7, [r0] - ldr r1, _08044550 - ldr r0, _08044554 - strb r7, [r0] - strb r7, [r1] - ldr r0, _08044558 - bl BattleScriptExecute - bl _08044E16 - .align 2, 0 -_08044544: .4byte gUnknown_2023D28 -_08044548: .4byte gUnknown_2024118 -_0804454C: .4byte gUnknown_2023EB3 -_08044550: .4byte gUnknown_2023D08 -_08044554: .4byte gUnknown_2023EAF -_08044558: .4byte gUnknown_8289D36 -_0804455C: - movs r0, #0x58 - muls r0, r7, r0 - mov r2, r8 - adds r1, r0, r2 - ldrh r0, [r1, #0x28] - ldrh r3, [r1, #0x2c] - cmp r0, r3 - blo _08044570 - bl _08044E16 -_08044570: - cmp r6, #0 - beq _08044578 - bl _08044E16 -_08044578: - ldr r3, _080445B4 - ldrh r0, [r1, #0x2c] - lsrs r0, r0, #4 - str r0, [r3] - cmp r0, #0 - bne _08044588 - movs r0, #1 - str r0, [r3] -_08044588: - ldrh r2, [r1, #0x28] - ldr r0, [r3] - adds r0, r2, r0 - ldrh r1, [r1, #0x2c] - cmp r0, r1 - ble _08044598 - subs r0, r1, r2 - str r0, [r3] -_08044598: - ldr r0, [r3] - rsbs r0, r0, #0 - str r0, [r3] - ldr r0, _080445B8 - bl BattleScriptExecute - movs r0, #4 - str r0, [sp, #0xc] - adds r0, r7, #0 - adds r1, r5, #0 - bl RecordItemEffectBattle - bl _08044E16 - .align 2, 0 -_080445B4: .4byte gUnknown_2023E94 -_080445B8: .4byte gUnknown_8289D79 -_080445BC: - movs r0, #0x58 - adds r1, r7, #0 - muls r1, r0, r1 - str r1, [sp, #0x18] - adds r4, r1, #0 - add r4, r8 - ldrh r0, [r4, #0x2c] - ldrh r1, [r4, #0x28] - lsrs r0, r0, #1 - cmp r1, r0 - bls _080445D6 - bl _08044E16 -_080445D6: - cmp r6, #0 - beq _080445DE - bl _08044E16 -_080445DE: - ldr r1, _08044634 - movs r0, #0xfd - strb r0, [r1] - movs r0, #8 - strb r0, [r1, #1] - strb r6, [r1, #2] - movs r0, #0xff - strb r0, [r1, #3] - ldr r5, _08044638 - ldrh r0, [r4, #0x2c] - mov r1, sb - bl __divsi3 - str r0, [r5] - cmp r0, #0 - bne _08044602 - movs r0, #1 - str r0, [r5] -_08044602: - ldrh r2, [r4, #0x28] - ldr r0, [r5] - adds r0, r2, r0 - ldrh r1, [r4, #0x2c] - cmp r0, r1 - ble _08044612 - subs r0, r1, r2 - str r0, [r5] -_08044612: - ldr r0, [r5] - rsbs r0, r0, #0 - str r0, [r5] - mov r0, r8 - adds r0, #0x48 - ldr r2, [sp, #0x18] - adds r0, r2, r0 - ldr r0, [r0] - movs r1, #0 - bl sub_0806E30C - lsls r0, r0, #0x18 - cmp r0, #0 - bge _08044630 - b _080447BC -_08044630: - b _080447D0 - .align 2, 0 -_08044634: .4byte gUnknown_2022C0C -_08044638: .4byte gUnknown_2023E94 -_0804463C: - movs r0, #0x58 - adds r5, r7, #0 - muls r5, r0, r5 - str r5, [sp, #0x1c] - add r5, r8 - ldrh r0, [r5, #0x2c] - ldrh r1, [r5, #0x28] - lsrs r0, r0, #1 - cmp r1, r0 - bls _08044654 - bl _08044E16 -_08044654: - cmp r6, #0 - beq _0804465C - bl _08044E16 -_0804465C: - ldr r1, _080446B0 - movs r0, #0xfd - strb r0, [r1] - movs r0, #8 - strb r0, [r1, #1] - movs r6, #1 - strb r6, [r1, #2] - movs r0, #0xff - strb r0, [r1, #3] - ldr r4, _080446B4 - ldrh r0, [r5, #0x2c] - mov r1, sb - bl __divsi3 - str r0, [r4] - cmp r0, #0 - bne _08044680 - str r6, [r4] -_08044680: - ldrh r2, [r5, #0x28] - ldr r0, [r4] - adds r0, r2, r0 - ldrh r1, [r5, #0x2c] - cmp r0, r1 - ble _08044690 - subs r0, r1, r2 - str r0, [r4] -_08044690: - ldr r0, [r4] - rsbs r0, r0, #0 - str r0, [r4] - mov r0, r8 - adds r0, #0x48 - ldr r1, [sp, #0x1c] - adds r0, r1, r0 - ldr r0, [r0] - movs r1, #1 - bl sub_0806E30C - lsls r0, r0, #0x18 - cmp r0, #0 - bge _080446AE - b _0804484E -_080446AE: - b _08044864 - .align 2, 0 -_080446B0: .4byte gUnknown_2022C0C -_080446B4: .4byte gUnknown_2023E94 -_080446B8: - movs r0, #0x58 - adds r3, r7, #0 - muls r3, r0, r3 - str r3, [sp, #0x20] - adds r5, r3, #0 - add r5, r8 - ldrh r0, [r5, #0x2c] - ldrh r1, [r5, #0x28] - lsrs r0, r0, #1 - cmp r1, r0 - bls _080446D0 - b _08044E16 -_080446D0: - cmp r6, #0 - beq _080446D6 - b _08044E16 -_080446D6: - ldr r1, _08044730 - movs r0, #0xfd - strb r0, [r1] - movs r0, #8 - strb r0, [r1, #1] - movs r0, #2 - strb r0, [r1, #2] - movs r0, #0xff - strb r0, [r1, #3] - ldr r4, _08044734 - ldrh r0, [r5, #0x2c] - mov r1, sb - bl __divsi3 - str r0, [r4] - cmp r0, #0 - bne _080446FC - movs r0, #1 - str r0, [r4] -_080446FC: - ldrh r2, [r5, #0x28] - ldr r0, [r4] - adds r0, r2, r0 - ldrh r1, [r5, #0x2c] - cmp r0, r1 - ble _0804470C - subs r0, r1, r2 - str r0, [r4] -_0804470C: - ldr r0, [r4] - rsbs r0, r0, #0 - str r0, [r4] - mov r0, r8 - adds r0, #0x48 - ldr r5, [sp, #0x20] - adds r0, r5, r0 - ldr r0, [r0] - movs r1, #2 - bl sub_0806E30C - lsls r0, r0, #0x18 - cmp r0, #0 - bge _0804473C - ldr r0, _08044738 - bl BattleScriptExecute - b _08044742 - .align 2, 0 -_08044730: .4byte gUnknown_2022C0C -_08044734: .4byte gUnknown_2023E94 -_08044738: .4byte gUnknown_8289DAC -_0804473C: - ldr r0, _08044748 - bl BattleScriptExecute -_08044742: - movs r0, #4 - str r0, [sp, #0xc] - b _08044E1E - .align 2, 0 -_08044748: .4byte gUnknown_8289D4C -_0804474C: - movs r0, #0x58 - adds r1, r7, #0 - muls r1, r0, r1 - str r1, [sp, #0x24] - adds r5, r1, #0 - add r5, r8 - ldrh r0, [r5, #0x2c] - ldrh r1, [r5, #0x28] - lsrs r0, r0, #1 - cmp r1, r0 - bls _08044764 - b _08044E16 -_08044764: - cmp r6, #0 - beq _0804476A - b _08044E16 -_0804476A: - ldr r1, _080447C4 - movs r0, #0xfd - strb r0, [r1] - movs r0, #8 - strb r0, [r1, #1] - movs r0, #3 - strb r0, [r1, #2] - movs r0, #0xff - strb r0, [r1, #3] - ldr r4, _080447C8 - ldrh r0, [r5, #0x2c] - mov r1, sb - bl __divsi3 - str r0, [r4] - cmp r0, #0 - bne _08044790 - movs r0, #1 - str r0, [r4] -_08044790: - ldrh r2, [r5, #0x28] - ldr r0, [r4] - adds r0, r2, r0 - ldrh r1, [r5, #0x2c] - cmp r0, r1 - ble _080447A0 - subs r0, r1, r2 - str r0, [r4] -_080447A0: - ldr r0, [r4] - rsbs r0, r0, #0 - str r0, [r4] - mov r0, r8 - adds r0, #0x48 - ldr r2, [sp, #0x24] - adds r0, r2, r0 - ldr r0, [r0] - movs r1, #3 - bl sub_0806E30C - lsls r0, r0, #0x18 - cmp r0, #0 - bge _080447D0 -_080447BC: - ldr r0, _080447CC - bl BattleScriptExecute - b _080447D6 - .align 2, 0 -_080447C4: .4byte gUnknown_2022C0C -_080447C8: .4byte gUnknown_2023E94 -_080447CC: .4byte gUnknown_8289DAC -_080447D0: - ldr r0, _080447DC - bl BattleScriptExecute -_080447D6: - movs r3, #4 - str r3, [sp, #0xc] - b _08044E1E - .align 2, 0 -_080447DC: .4byte gUnknown_8289D4C -_080447E0: - movs r0, #0x58 - adds r5, r7, #0 - muls r5, r0, r5 - str r5, [sp, #0x28] - add r5, r8 - ldrh r0, [r5, #0x2c] - ldrh r1, [r5, #0x28] - lsrs r0, r0, #1 - cmp r1, r0 - bls _080447F6 - b _08044E16 -_080447F6: - cmp r6, #0 - beq _080447FC - b _08044E16 -_080447FC: - ldr r1, _08044858 - movs r0, #0xfd - strb r0, [r1] - movs r0, #8 - strb r0, [r1, #1] - movs r0, #4 - strb r0, [r1, #2] - movs r0, #0xff - strb r0, [r1, #3] - ldr r4, _0804485C - ldrh r0, [r5, #0x2c] - mov r1, sb - bl __divsi3 - str r0, [r4] - cmp r0, #0 - bne _08044822 - movs r0, #1 - str r0, [r4] -_08044822: - ldrh r2, [r5, #0x28] - ldr r0, [r4] - adds r0, r2, r0 - ldrh r1, [r5, #0x2c] - cmp r0, r1 - ble _08044832 - subs r0, r1, r2 - str r0, [r4] -_08044832: - ldr r0, [r4] - rsbs r0, r0, #0 - str r0, [r4] - mov r0, r8 - adds r0, #0x48 - ldr r1, [sp, #0x28] - adds r0, r1, r0 - ldr r0, [r0] - movs r1, #4 - bl sub_0806E30C - lsls r0, r0, #0x18 - cmp r0, #0 - bge _08044864 -_0804484E: - ldr r0, _08044860 - bl BattleScriptExecute - b _0804486A - .align 2, 0 -_08044858: .4byte gUnknown_2022C0C -_0804485C: .4byte gUnknown_2023E94 -_08044860: .4byte gUnknown_8289DAC -_08044864: - ldr r0, _08044870 - bl BattleScriptExecute -_0804486A: - movs r2, #4 - str r2, [sp, #0xc] - b _08044E1E - .align 2, 0 -_08044870: .4byte gUnknown_8289D4C -_08044874: - movs r0, #0x58 - muls r0, r7, r0 - mov r3, r8 - adds r5, r0, r3 - ldrh r4, [r5, #0x28] - ldrh r0, [r5, #0x2c] - mov r1, sb - bl __divsi3 - cmp r4, r0 - ble _0804488C - b _08044E16 -_0804488C: - cmp r6, #0 - beq _08044892 - b _08044E16 -_08044892: - movs r0, #0x19 - ldrsb r0, [r5, r0] - cmp r0, #0xb - ble _0804489C - b _08044E16 -_0804489C: - ldr r1, _080448CC - movs r2, #0xfd - strb r2, [r1] - movs r0, #5 - strb r0, [r1, #1] - movs r0, #1 - strb r0, [r1, #2] - movs r0, #0xff - strb r0, [r1, #3] - ldr r1, _080448D0 - strb r2, [r1] - strb r6, [r1, #1] - movs r0, #0xd2 - strb r0, [r1, #2] - strb r6, [r1, #3] - subs r0, #0xd3 - strb r0, [r1, #4] - ldr r0, _080448D4 - strb r7, [r0] - ldr r1, _080448D8 - movs r0, #0x11 - strb r0, [r1, #0x1a] - movs r0, #0xf - b _08044A30 - .align 2, 0 -_080448CC: .4byte gUnknown_2022C0C -_080448D0: .4byte gUnknown_2022C1C -_080448D4: .4byte gUnknown_2023EB2 -_080448D8: .4byte gUnknown_2024118 -_080448DC: - movs r0, #0x58 - muls r0, r7, r0 - mov r1, r8 - adds r5, r0, r1 - ldrh r4, [r5, #0x28] - ldrh r0, [r5, #0x2c] - mov r1, sb - bl __divsi3 - cmp r4, r0 - ble _080448F4 - b _08044E16 -_080448F4: - cmp r6, #0 - beq _080448FA - b _08044E16 -_080448FA: - movs r0, #0x1a - ldrsb r0, [r5, r0] - cmp r0, #0xb - ble _08044904 - b _08044E16 -_08044904: - ldr r1, _08044924 - movs r0, #0xfd - strb r0, [r1] - movs r0, #5 - strb r0, [r1, #1] - movs r0, #2 - strb r0, [r1, #2] - movs r0, #0xff - strb r0, [r1, #3] - ldr r0, _08044928 - strb r7, [r0] - ldr r1, _0804492C - movs r0, #0x12 - strb r0, [r1, #0x1a] - movs r0, #0x10 - b _080449CA - .align 2, 0 -_08044924: .4byte gUnknown_2022C0C -_08044928: .4byte gUnknown_2023EB2 -_0804492C: .4byte gUnknown_2024118 -_08044930: - movs r0, #0x58 - muls r0, r7, r0 - mov r3, r8 - adds r5, r0, r3 - ldrh r4, [r5, #0x28] - ldrh r0, [r5, #0x2c] - mov r1, sb - bl __divsi3 - cmp r4, r0 - ble _08044948 - b _08044E16 -_08044948: - cmp r6, #0 - beq _0804494E - b _08044E16 -_0804494E: - movs r0, #0x1b - ldrsb r0, [r5, r0] - cmp r0, #0xb - ble _08044958 - b _08044E16 -_08044958: - ldr r1, _08044978 - movs r0, #0xfd - strb r0, [r1] - movs r0, #5 - strb r0, [r1, #1] - movs r0, #3 - strb r0, [r1, #2] - movs r0, #0xff - strb r0, [r1, #3] - ldr r0, _0804497C - strb r7, [r0] - ldr r1, _08044980 - movs r0, #0x13 - strb r0, [r1, #0x1a] - movs r0, #0x11 - b _08044A30 - .align 2, 0 -_08044978: .4byte gUnknown_2022C0C -_0804497C: .4byte gUnknown_2023EB2 -_08044980: .4byte gUnknown_2024118 -_08044984: - movs r0, #0x58 - muls r0, r7, r0 - mov r1, r8 - adds r5, r0, r1 - ldrh r4, [r5, #0x28] - ldrh r0, [r5, #0x2c] - mov r1, sb - bl __divsi3 - cmp r4, r0 - ble _0804499C - b _08044E16 -_0804499C: - cmp r6, #0 - beq _080449A2 - b _08044E16 -_080449A2: - movs r0, #0x1c - ldrsb r0, [r5, r0] - cmp r0, #0xb - ble _080449AC - b _08044E16 -_080449AC: - ldr r1, _080449DC - movs r0, #0xfd - strb r0, [r1] - movs r0, #5 - strb r0, [r1, #1] - movs r0, #4 - strb r0, [r1, #2] - movs r0, #0xff - strb r0, [r1, #3] - ldr r0, _080449E0 - strb r7, [r0] - ldr r1, _080449E4 - movs r0, #0x14 - strb r0, [r1, #0x1a] - movs r0, #0x12 -_080449CA: - strb r0, [r1, #0x10] - strb r6, [r1, #0x11] - ldr r0, _080449E8 - bl BattleScriptExecute - movs r2, #5 - str r2, [sp, #0xc] - b _08044E1E - .align 2, 0 -_080449DC: .4byte gUnknown_2022C0C -_080449E0: .4byte gUnknown_2023EB2 -_080449E4: .4byte gUnknown_2024118 -_080449E8: .4byte gUnknown_8289DD6 -_080449EC: - movs r0, #0x58 - muls r0, r7, r0 - mov r3, r8 - adds r5, r0, r3 - ldrh r4, [r5, #0x28] - ldrh r0, [r5, #0x2c] - mov r1, sb - bl __divsi3 - cmp r4, r0 - ble _08044A04 - b _08044E16 -_08044A04: - cmp r6, #0 - beq _08044A0A - b _08044E16 -_08044A0A: - movs r0, #0x1d - ldrsb r0, [r5, r0] - cmp r0, #0xb - ble _08044A14 - b _08044E16 -_08044A14: - ldr r1, _08044A40 - movs r0, #0xfd - strb r0, [r1] - movs r0, #5 - strb r0, [r1, #1] - strb r0, [r1, #2] - movs r0, #0xff - strb r0, [r1, #3] - ldr r0, _08044A44 - strb r7, [r0] - ldr r1, _08044A48 - movs r0, #0x15 - strb r0, [r1, #0x1a] - movs r0, #0x13 -_08044A30: - strb r0, [r1, #0x10] - strb r6, [r1, #0x11] - ldr r0, _08044A4C - bl BattleScriptExecute - movs r5, #5 - str r5, [sp, #0xc] - b _08044E1E - .align 2, 0 -_08044A40: .4byte gUnknown_2022C0C -_08044A44: .4byte gUnknown_2023EB2 -_08044A48: .4byte gUnknown_2024118 -_08044A4C: .4byte gUnknown_8289DD6 -_08044A50: - movs r0, #0x58 - adds r5, r7, #0 - muls r5, r0, r5 - mov r1, r8 - adds r0, r5, r1 - ldrh r4, [r0, #0x28] - ldrh r0, [r0, #0x2c] - mov r1, sb - bl __divsi3 - cmp r4, r0 - ble _08044A6A - b _08044E16 -_08044A6A: - cmp r6, #0 - beq _08044A70 - b _08044E16 -_08044A70: - mov r0, r8 - adds r0, #0x50 - adds r1, r5, r0 - ldr r2, [r1] - movs r3, #0x80 - lsls r3, r3, #0xd - adds r0, r2, #0 - ands r0, r3 - cmp r0, #0 - beq _08044A86 - b _08044E16 -_08044A86: - orrs r2, r3 - str r2, [r1] - ldr r0, _08044A98 - bl BattleScriptExecute - movs r2, #2 - str r2, [sp, #0xc] - b _08044E1E - .align 2, 0 -_08044A98: .4byte gUnknown_8289DF1 -_08044A9C: - cmp r6, #0 - beq _08044AA2 - b _08044E16 -_08044AA2: - movs r0, #0x58 - adds r5, r7, #0 - muls r5, r0, r5 - mov r3, r8 - adds r0, r5, r3 - ldrh r4, [r0, #0x28] - ldrh r0, [r0, #0x2c] - mov r1, sb - bl __divsi3 - cmp r4, r0 - ble _08044ABC - b _08044E16 -_08044ABC: - movs r0, #0 - mov sl, r0 - adds r0, r5, #1 - mov r1, r8 - adds r1, #0x18 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0xb - ble _08044AEC - mov r0, r8 - adds r0, #0x19 - adds r1, r5, r0 -_08044AD8: - adds r1, #1 - movs r2, #1 - add sl, r2 - mov r3, sl - cmp r3, #4 - bgt _08044AEC - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0xb - bgt _08044AD8 -_08044AEC: - mov r5, sl - cmp r5, #5 - bne _08044AF4 - b _08044E16 -_08044AF4: - movs r0, #0x58 - muls r0, r7, r0 - adds r4, r0, #1 - ldr r5, _08044B6C -_08044AFC: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #5 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sl, r0 - adds r0, r0, r4 - adds r0, r0, r5 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0xc - beq _08044AFC - ldr r1, _08044B70 - movs r2, #0 - movs r3, #0xfd - strb r3, [r1] - movs r0, #5 - strb r0, [r1, #1] - mov r0, sl - adds r0, #1 - strb r0, [r1, #2] - movs r0, #0xff - strb r0, [r1, #3] - ldr r0, _08044B74 - strb r3, [r0] - strb r2, [r0, #1] - movs r1, #0xd1 - strb r1, [r0, #2] - strb r2, [r0, #3] - strb r2, [r0, #4] - movs r1, #0xd2 - strb r1, [r0, #5] - strb r2, [r0, #6] - subs r1, #0xd3 - strb r1, [r0, #7] - ldr r0, _08044B78 - strb r7, [r0] - ldr r1, _08044B7C - mov r0, sl - adds r0, #0x21 - strb r0, [r1, #0x1a] - adds r0, #6 - strb r0, [r1, #0x10] - strb r2, [r1, #0x11] - ldr r0, _08044B80 - bl BattleScriptExecute - movs r0, #5 - str r0, [sp, #0xc] - b _08044E1E - .align 2, 0 -_08044B6C: .4byte gUnknown_2023D40 -_08044B70: .4byte gUnknown_2022C0C -_08044B74: .4byte gUnknown_2022C1C -_08044B78: .4byte gUnknown_2023EB2 -_08044B7C: .4byte gUnknown_2024118 -_08044B80: .4byte gUnknown_8289DD6 -_08044B84: - movs r0, #0x58 - adds r1, r7, #0 - muls r1, r0, r1 - mov r0, r8 - adds r0, #0x4c - adds r1, r1, r0 - ldr r2, [r1] - movs r0, #0x40 - ands r0, r2 - cmp r0, #0 - bne _08044B9C - b _08044E16 -_08044B9C: - movs r0, #0x41 - rsbs r0, r0, #0 - ands r2, r0 - str r2, [r1] - ldr r0, _08044BB0 - bl BattleScriptExecute - movs r1, #1 - str r1, [sp, #0xc] - b _08044E1E - .align 2, 0 -_08044BB0: .4byte gUnknown_8289C8E -_08044BB4: - movs r0, #0x58 - adds r1, r7, #0 - muls r1, r0, r1 - mov r0, r8 - adds r0, #0x4c - adds r1, r1, r0 - ldr r2, [r1] - movs r0, #0x88 - ands r0, r2 - cmp r0, #0 - bne _08044BCC - b _08044E16 -_08044BCC: - ldr r0, _08044BE0 - ands r2, r0 - str r2, [r1] - ldr r0, _08044BE4 - bl BattleScriptExecute - movs r2, #1 - str r2, [sp, #0xc] - b _08044E1E - .align 2, 0 -_08044BE0: .4byte 0xFFFFF077 -_08044BE4: .4byte gUnknown_8289CA6 -_08044BE8: - movs r0, #0x58 - adds r1, r7, #0 - muls r1, r0, r1 - mov r0, r8 - adds r0, #0x4c - adds r1, r1, r0 - ldr r2, [r1] - movs r0, #0x10 - ands r0, r2 - cmp r0, #0 - bne _08044C00 - b _08044E16 -_08044C00: - movs r0, #0x11 - rsbs r0, r0, #0 - ands r2, r0 - str r2, [r1] - ldr r0, _08044C14 - bl BattleScriptExecute - movs r3, #1 - str r3, [sp, #0xc] - b _08044E1E - .align 2, 0 -_08044C14: .4byte gUnknown_8289CBE -_08044C18: - movs r0, #0x58 - adds r1, r7, #0 - muls r1, r0, r1 - mov r0, r8 - adds r0, #0x4c - adds r1, r1, r0 - ldr r2, [r1] - movs r0, #0x20 - ands r0, r2 - cmp r0, #0 - bne _08044C30 - b _08044E16 -_08044C30: - movs r0, #0x21 - rsbs r0, r0, #0 - ands r2, r0 - str r2, [r1] - ldr r0, _08044C44 - bl BattleScriptExecute - movs r5, #1 - str r5, [sp, #0xc] - b _08044E1E - .align 2, 0 -_08044C44: .4byte gUnknown_8289CD6 -_08044C48: - movs r0, #0x58 - adds r3, r7, #0 - muls r3, r0, r3 - mov r0, r8 - adds r0, #0x4c - adds r2, r3, r0 - ldr r1, [r2] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _08044C60 - b _08044E16 -_08044C60: - movs r0, #8 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r2] - mov r1, r8 - adds r1, #0x50 - adds r1, r3, r1 - ldr r0, [r1] - ldr r2, _08044C7C - ands r0, r2 - str r0, [r1] - ldr r0, _08044C80 - b _08044DCA - .align 2, 0 -_08044C7C: .4byte 0xF7FFFFFF -_08044C80: .4byte gUnknown_8289CEE -_08044C84: - movs r0, #0x58 - adds r1, r7, #0 - muls r1, r0, r1 - mov r0, r8 - adds r0, #0x50 - adds r1, r1, r0 - ldr r2, [r1] - movs r0, #7 - ands r0, r2 - cmp r0, #0 - bne _08044C9C - b _08044E16 -_08044C9C: - movs r0, #8 - rsbs r0, r0, #0 - ands r2, r0 - str r2, [r1] - ldr r0, _08044CB0 - bl BattleScriptExecute - movs r1, #2 - str r1, [sp, #0xc] - b _08044E1E - .align 2, 0 -_08044CB0: .4byte gUnknown_8289D06 -_08044CB4: - movs r0, #0x58 - adds r5, r7, #0 - muls r5, r0, r5 - mov r0, r8 - adds r0, #0x4c - adds r4, r5, r0 - ldr r2, [r4] - ldrb r0, [r4] - cmp r0, #0 - bne _08044CDA - mov r0, r8 - adds r0, #0x50 - adds r0, r5, r0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _08044CDA - b _08044E16 -_08044CDA: - movs r3, #0 - mov sl, r3 - movs r0, #0x88 - ands r2, r0 - cmp r2, #0 - beq _08044CF2 - ldr r0, _08044D80 - ldr r1, _08044D84 - bl StringCopy - movs r0, #1 - mov sl, r0 -_08044CF2: - ldr r0, [r4] - movs r1, #7 - mov sb, r1 - ands r0, r1 - mov r6, r8 - adds r6, #0x50 - cmp r0, #0 - beq _08044D18 - adds r2, r5, r6 - ldr r0, [r2] - ldr r1, _08044D88 - ands r0, r1 - str r0, [r2] - ldr r0, _08044D80 - ldr r1, _08044D8C - bl StringCopy - movs r2, #1 - add sl, r2 -_08044D18: - ldr r0, [r4] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08044D2E - ldr r0, _08044D80 - ldr r1, _08044D90 - bl StringCopy - movs r3, #1 - add sl, r3 -_08044D2E: - ldr r0, [r4] - movs r1, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08044D44 - ldr r0, _08044D80 - ldr r1, _08044D94 - bl StringCopy - movs r0, #1 - add sl, r0 -_08044D44: - ldr r0, [r4] - movs r1, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08044D5A - ldr r0, _08044D80 - ldr r1, _08044D98 - bl StringCopy - movs r1, #1 - add sl, r1 -_08044D5A: - adds r0, r5, r6 - ldr r0, [r0] - mov r2, sb - ands r0, r2 - cmp r0, #0 - beq _08044D72 - ldr r0, _08044D80 - ldr r1, _08044D9C - bl StringCopy - movs r3, #1 - add sl, r3 -_08044D72: - mov r5, sl - cmp r5, #1 - bgt _08044DA4 - ldr r1, _08044DA0 - movs r0, #0 - b _08044DA8 - .align 2, 0 -_08044D80: .4byte gUnknown_2022C0C -_08044D84: .4byte gUnknown_85ABC54 -_08044D88: .4byte 0xF7FFFFFF -_08044D8C: .4byte gUnknown_85ABC50 -_08044D90: .4byte gUnknown_85ABC5B -_08044D94: .4byte gUnknown_85ABC57 -_08044D98: .4byte gUnknown_85ABC5E -_08044D9C: .4byte gUnknown_85ABC62 -_08044DA0: .4byte gUnknown_2023FD6 -_08044DA4: - ldr r1, _08044DD4 - movs r0, #1 -_08044DA8: - strb r0, [r1, #5] - ldr r2, _08044DD8 - movs r0, #0x58 - adds r3, r7, #0 - muls r3, r0, r3 - adds r0, r2, #0 - adds r0, #0x4c - adds r0, r3, r0 - movs r1, #0 - str r1, [r0] - adds r2, #0x50 - adds r3, r3, r2 - ldr r0, [r3] - subs r1, #8 - ands r0, r1 - str r0, [r3] - ldr r0, _08044DDC -_08044DCA: - bl BattleScriptExecute - movs r0, #1 - str r0, [sp, #0xc] - b _08044E1E - .align 2, 0 -_08044DD4: .4byte gUnknown_2023FD6 -_08044DD8: .4byte gUnknown_2023D28 -_08044DDC: .4byte gUnknown_8289D1C -_08044DE0: - movs r0, #0x58 - adds r1, r7, #0 - muls r1, r0, r1 - mov r0, r8 - adds r0, #0x50 - adds r1, r1, r0 - ldr r2, [r1] - movs r0, #0xf0 - lsls r0, r0, #0xc - ands r0, r2 - cmp r0, #0 - beq _08044E16 - ldr r0, _08044E3C - ands r2, r0 - str r2, [r1] - ldr r0, _08044E40 - ldr r1, _08044E44 - bl StringCopy - ldr r0, _08044E48 - bl BattleScriptExecute - ldr r1, _08044E4C - movs r0, #0 - strb r0, [r1, #5] - movs r1, #2 - str r1, [sp, #0xc] -_08044E16: - ldr r2, [sp, #0xc] - cmp r2, #0 - bne _08044E1E - b _0804546A -_08044E1E: - ldr r0, _08044E50 - strb r7, [r0, #0x17] - ldr r0, _08044E54 - strb r7, [r0] - ldr r4, _08044E58 - ldr r0, _08044E5C - strb r7, [r0] - strb r7, [r4] - ldr r3, [sp, #0xc] - cmp r3, #1 - beq _08044E60 - cmp r3, #3 - beq _08044E66 - b _0804546A - .align 2, 0 -_08044E3C: .4byte 0xFFF0FFFF -_08044E40: .4byte gUnknown_2022C0C -_08044E44: .4byte gUnknown_85ABC67 -_08044E48: .4byte gUnknown_8289D1C -_08044E4C: .4byte gUnknown_2023FD6 -_08044E50: .4byte gUnknown_2024118 -_08044E54: .4byte gUnknown_2023EB3 -_08044E58: .4byte gUnknown_2023D08 -_08044E5C: .4byte gUnknown_2023EAF -_08044E60: - movs r0, #0x58 - muls r0, r7, r0 - b _080452CC -_08044E66: - ldr r4, _08044EB4 - movs r0, #0x58 - adds r3, r7, #0 - muls r3, r0, r3 - adds r0, r4, #0 - adds r0, #0x50 - adds r0, r3, r0 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xe - ands r0, r1 - cmp r0, #0 - beq _08044E82 - b _0804546A -_08044E82: - ldr r1, _08044EB8 - lsls r0, r7, #3 - subs r0, r0, r7 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #0x18] - lsrs r1, r1, #4 - ldr r2, _08044EBC - mov r5, sl - lsls r0, r5, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _08044EA2 - b _0804546A -_08044EA2: - adds r1, r5, r3 - adds r0, r4, #0 - adds r0, #0x24 - adds r1, r1, r0 - add r0, sp, #4 - ldrb r0, [r0] - strb r0, [r1] - b _0804546A - .align 2, 0 -_08044EB4: .4byte gUnknown_2023D28 -_08044EB8: .4byte gUnknown_2023F60 -_08044EBC: .4byte gUnknown_82FACB4 -_08044EC0: - movs r7, #0 - ldr r0, _08044EF0 - ldrb r0, [r0] - cmp r7, r0 - blo _08044ECC - b _0804546A -_08044ECC: - ldr r4, _08044EF4 - ldr r1, _08044EF8 - movs r0, #0x58 - muls r0, r7, r0 - adds r0, r0, r1 - ldrh r0, [r0, #0x2e] - strh r0, [r4] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xaf - bne _08044F00 - ldr r1, _08044EFC - lsls r0, r7, #3 - subs r0, r0, r7 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r5, [r0, #7] - b _08044F10 - .align 2, 0 -_08044EF0: .4byte gUnknown_2023D10 -_08044EF4: .4byte gUnknown_2023EAC -_08044EF8: .4byte gUnknown_2023D28 -_08044EFC: .4byte gUnknown_20240A8 -_08044F00: - ldrh r0, [r4] - bl sub_080D6CF8 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldrh r0, [r4] - bl sub_080D6D1C -_08044F10: - subs r0, r5, #2 - cmp r0, #0x1a - bls _08044F18 - b _080452B4 -_08044F18: - lsls r0, r0, #2 - ldr r1, _08044F24 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08044F24: .4byte _08044F28 -_08044F28: @ jump table - .4byte _08044F94 @ case 0 - .4byte _08045084 @ case 1 - .4byte _08044FD0 @ case 2 - .4byte _0804500C @ case 3 - .4byte _08045048 @ case 4 - .4byte _080452B4 @ case 5 - .4byte _080450CC @ case 6 - .4byte _08045160 @ case 7 - .4byte _080452B4 @ case 8 - .4byte _080452B4 @ case 9 - .4byte _080452B4 @ case 10 - .4byte _080452B4 @ case 11 - .4byte _080452B4 @ case 12 - .4byte _080452B4 @ case 13 - .4byte _080452B4 @ case 14 - .4byte _080452B4 @ case 15 - .4byte _080452B4 @ case 16 - .4byte _080452B4 @ case 17 - .4byte _080452B4 @ case 18 - .4byte _080452B4 @ case 19 - .4byte _080452B4 @ case 20 - .4byte _08045254 @ case 21 - .4byte _080452B4 @ case 22 - .4byte _080452B4 @ case 23 - .4byte _080452B4 @ case 24 - .4byte _080452B4 @ case 25 - .4byte _08045108 @ case 26 -_08044F94: - ldr r1, _08044FC4 - movs r0, #0x58 - muls r0, r7, r0 - adds r1, #0x4c - adds r2, r0, r1 - ldr r1, [r2] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08044FAA - b _080452B4 -_08044FAA: - movs r0, #0x41 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r2] - bl BattleScriptPushCursor - ldr r1, _08044FC8 - ldr r0, _08044FCC - str r0, [r1] - movs r0, #1 - str r0, [sp, #0xc] - b _080452BA - .align 2, 0 -_08044FC4: .4byte gUnknown_2023D28 -_08044FC8: .4byte gUnknown_2023EB8 -_08044FCC: .4byte gUnknown_8289C94 -_08044FD0: - ldr r1, _08044FFC - movs r0, #0x58 - muls r0, r7, r0 - adds r1, #0x4c - adds r2, r0, r1 - ldr r1, [r2] - movs r0, #0x88 - ands r0, r1 - cmp r0, #0 - bne _08044FE6 - b _080452B4 -_08044FE6: - ldr r0, _08045000 - ands r1, r0 - str r1, [r2] - bl BattleScriptPushCursor - ldr r1, _08045004 - ldr r0, _08045008 - str r0, [r1] - movs r1, #1 - str r1, [sp, #0xc] - b _080452BA - .align 2, 0 -_08044FFC: .4byte gUnknown_2023D28 -_08045000: .4byte 0xFFFFF077 -_08045004: .4byte gUnknown_2023EB8 -_08045008: .4byte gUnknown_8289CAC -_0804500C: - ldr r1, _0804503C - movs r0, #0x58 - muls r0, r7, r0 - adds r1, #0x4c - adds r2, r0, r1 - ldr r1, [r2] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _08045022 - b _080452B4 -_08045022: - movs r0, #0x11 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r2] - bl BattleScriptPushCursor - ldr r1, _08045040 - ldr r0, _08045044 - str r0, [r1] - movs r2, #1 - str r2, [sp, #0xc] - b _080452BA - .align 2, 0 -_0804503C: .4byte gUnknown_2023D28 -_08045040: .4byte gUnknown_2023EB8 -_08045044: .4byte gUnknown_8289CC4 -_08045048: - ldr r1, _08045078 - movs r0, #0x58 - muls r0, r7, r0 - adds r1, #0x4c - adds r2, r0, r1 - ldr r1, [r2] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _0804505E - b _080452B4 -_0804505E: - movs r0, #0x21 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r2] - bl BattleScriptPushCursor - ldr r1, _0804507C - ldr r0, _08045080 - str r0, [r1] - movs r3, #1 - str r3, [sp, #0xc] - b _080452BA - .align 2, 0 -_08045078: .4byte gUnknown_2023D28 -_0804507C: .4byte gUnknown_2023EB8 -_08045080: .4byte gUnknown_8289CDC -_08045084: - ldr r2, _080450BC - movs r0, #0x58 - adds r4, r7, #0 - muls r4, r0, r4 - adds r0, r2, #0 - adds r0, #0x4c - adds r3, r4, r0 - ldr r1, [r3] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _0804509E - b _080452B4 -_0804509E: - movs r0, #8 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r3] - adds r2, #0x50 - adds r2, r4, r2 - ldr r0, [r2] - ldr r1, _080450C0 - ands r0, r1 - str r0, [r2] - bl BattleScriptPushCursor - ldr r1, _080450C4 - ldr r0, _080450C8 - b _0804521C - .align 2, 0 -_080450BC: .4byte gUnknown_2023D28 -_080450C0: .4byte 0xF7FFFFFF -_080450C4: .4byte gUnknown_2023EB8 -_080450C8: .4byte gUnknown_8289CF4 -_080450CC: - ldr r1, _080450FC - movs r0, #0x58 - muls r0, r7, r0 - adds r1, #0x50 - adds r2, r0, r1 - ldr r1, [r2] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _080450E2 - b _080452B4 -_080450E2: - movs r0, #8 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r2] - bl BattleScriptPushCursor - ldr r1, _08045100 - ldr r0, _08045104 - str r0, [r1] - movs r0, #2 - str r0, [sp, #0xc] - b _080452BA - .align 2, 0 -_080450FC: .4byte gUnknown_2023D28 -_08045100: .4byte gUnknown_2023EB8 -_08045104: .4byte gUnknown_8289D0C -_08045108: - ldr r1, _08045144 - movs r0, #0x58 - muls r0, r7, r0 - adds r1, #0x50 - adds r2, r0, r1 - ldr r1, [r2] - movs r0, #0xf0 - lsls r0, r0, #0xc - ands r0, r1 - cmp r0, #0 - bne _08045120 - b _080452B4 -_08045120: - ldr r0, _08045148 - ands r1, r0 - str r1, [r2] - ldr r0, _0804514C - ldr r1, _08045150 - bl StringCopy - bl BattleScriptPushCursor - ldr r1, _08045154 - movs r0, #0 - strb r0, [r1, #5] - ldr r1, _08045158 - ldr r0, _0804515C - str r0, [r1] - movs r1, #2 - str r1, [sp, #0xc] - b _080452BA - .align 2, 0 -_08045144: .4byte gUnknown_2023D28 -_08045148: .4byte 0xFFF0FFFF -_0804514C: .4byte gUnknown_2022C0C -_08045150: .4byte gUnknown_85ABC67 -_08045154: .4byte gUnknown_2023FD6 -_08045158: .4byte gUnknown_2023EB8 -_0804515C: .4byte gUnknown_8289D22 -_08045160: - ldr r4, _08045224 - movs r0, #0x58 - adds r5, r7, #0 - muls r5, r0, r5 - adds r0, r4, #0 - adds r0, #0x4c - adds r6, r5, r0 - ldr r2, [r6] - ldrb r0, [r6] - cmp r0, #0 - bne _08045188 - adds r0, r4, #0 - adds r0, #0x50 - adds r0, r5, r0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _08045188 - b _080452B4 -_08045188: - movs r0, #0x88 - ands r2, r0 - cmp r2, #0 - beq _08045198 - ldr r0, _08045228 - ldr r1, _0804522C - bl StringCopy -_08045198: - ldr r0, [r6] - movs r2, #7 - mov r8, r2 - ands r0, r2 - adds r4, #0x50 - cmp r0, #0 - beq _080451B8 - adds r2, r5, r4 - ldr r0, [r2] - ldr r1, _08045230 - ands r0, r1 - str r0, [r2] - ldr r0, _08045228 - ldr r1, _08045234 - bl StringCopy -_080451B8: - ldr r0, [r6] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080451CA - ldr r0, _08045228 - ldr r1, _08045238 - bl StringCopy -_080451CA: - ldr r0, [r6] - movs r1, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080451DC - ldr r0, _08045228 - ldr r1, _0804523C - bl StringCopy -_080451DC: - ldr r0, [r6] - movs r1, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080451EE - ldr r0, _08045228 - ldr r1, _08045240 - bl StringCopy -_080451EE: - adds r5, r5, r4 - ldr r0, [r5] - mov r3, r8 - ands r0, r3 - cmp r0, #0 - beq _08045202 - ldr r0, _08045228 - ldr r1, _08045244 - bl StringCopy -_08045202: - movs r4, #0 - str r4, [r6] - ldr r0, [r5] - movs r1, #8 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r5] - bl BattleScriptPushCursor - ldr r0, _08045248 - strb r4, [r0, #5] - ldr r1, _0804524C - ldr r0, _08045250 -_0804521C: - str r0, [r1] - movs r5, #1 - str r5, [sp, #0xc] - b _080452BA - .align 2, 0 -_08045224: .4byte gUnknown_2023D28 -_08045228: .4byte gUnknown_2022C0C -_0804522C: .4byte gUnknown_85ABC54 -_08045230: .4byte 0xF7FFFFFF -_08045234: .4byte gUnknown_85ABC50 -_08045238: .4byte gUnknown_85ABC5B -_0804523C: .4byte gUnknown_85ABC57 -_08045240: .4byte gUnknown_85ABC5E -_08045244: .4byte gUnknown_85ABC62 -_08045248: .4byte gUnknown_2023FD6 -_0804524C: .4byte gUnknown_2023EB8 -_08045250: .4byte gUnknown_8289D22 -_08045254: - ldr r0, _080452A0 - mov r8, r0 - movs r0, #0x58 - adds r1, r7, #0 - muls r1, r0, r1 - mov r0, r8 - adds r0, #0x18 - adds r1, r1, r0 - movs r2, #6 - movs r3, #7 - mov sl, r3 -_0804526A: - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #5 - bgt _08045278 - strb r2, [r1] - movs r5, #5 - str r5, [sp, #0xc] -_08045278: - adds r1, #1 - movs r0, #1 - rsbs r0, r0, #0 - add sl, r0 - mov r3, sl - cmp r3, #0 - bge _0804526A - ldr r5, [sp, #0xc] - cmp r5, #0 - beq _080452F8 - ldr r0, _080452A4 - strb r7, [r0, #0x17] - ldr r0, _080452A8 - strb r7, [r0] - bl BattleScriptPushCursor - ldr r1, _080452AC - ldr r0, _080452B0 - str r0, [r1] - b _0804546A - .align 2, 0 -_080452A0: .4byte gUnknown_2023D28 -_080452A4: .4byte gUnknown_2024118 -_080452A8: .4byte gUnknown_2023EB3 -_080452AC: .4byte gUnknown_2023EB8 -_080452B0: .4byte gUnknown_8289D3C -_080452B4: - ldr r0, [sp, #0xc] - cmp r0, #0 - beq _080452F8 -_080452BA: - ldr r0, _080452E8 - strb r7, [r0, #0x17] - ldr r0, _080452EC - strb r7, [r0] - ldr r4, _080452F0 - strb r7, [r4] - ldrb r1, [r4] - movs r0, #0x58 - muls r0, r1, r0 -_080452CC: - ldr r1, _080452F4 - adds r0, r0, r1 - str r0, [sp] - movs r0, #0 - movs r1, #0x28 - movs r2, #0 - movs r3, #4 - bl BtlController_EmitSetMonData - ldrb r0, [r4] - bl MarkBattlerForControllerExec - b _0804546A - .align 2, 0 -_080452E8: .4byte gUnknown_2024118 -_080452EC: .4byte gUnknown_2023EB3 -_080452F0: .4byte gUnknown_2023D08 -_080452F4: .4byte gUnknown_2023D74 -_080452F8: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _0804530C - ldrb r0, [r0] - cmp r7, r0 - bhs _08045308 - b _08044ECC -_08045308: - b _0804546A - .align 2, 0 -_0804530C: .4byte gUnknown_2023D10 -_08045310: - ldr r7, _08045328 - ldr r0, [r7] - cmp r0, #0 - bne _0804531A - b _0804546A -_0804531A: - mov r1, r8 - cmp r1, #0x1e - beq _0804532C - cmp r1, #0x3e - beq _080453D4 - b _0804546A - .align 2, 0 -_08045328: .4byte gUnknown_2023E94 -_0804532C: - ldr r0, _080453B8 - ldrb r1, [r0] - movs r0, #0x29 - ands r0, r1 - cmp r0, #0 - beq _0804533A - b _0804546A -_0804533A: - ldr r2, _080453BC - ldr r4, _080453C0 - ldrb r1, [r4] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r1, r0, #2 - adds r0, r2, #0 - adds r0, #8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, #0 - bne _08045360 - adds r0, r2, #0 - adds r0, #0xc - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, #0 - bne _08045360 - b _0804546A -_08045360: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r2, [sp, #0x10] - cmp r0, r2 - bhs _0804546A - ldr r2, _080453C4 - ldr r0, _080453C8 - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #8] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0804546A - ldr r2, _080453CC - ldrb r1, [r4] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - ldrh r0, [r0, #0x28] - cmp r0, #0 - beq _0804546A - ldr r1, _080453D0 - movs r0, #8 - strb r0, [r1, #3] - bl BattleScriptPushCursor - movs r0, #0 - movs r1, #0 - bl SetMoveEffect - bl BattleScriptPop - b _0804546A - .align 2, 0 -_080453B8: .4byte gUnknown_2023F20 -_080453BC: .4byte gUnknown_2024020 -_080453C0: .4byte gUnknown_2023EB0 -_080453C4: .4byte gUnknown_82ED220 -_080453C8: .4byte gUnknown_2023E8E -_080453CC: .4byte gUnknown_2023D28 -_080453D0: .4byte gUnknown_2023FD6 -_080453D4: - ldr r0, _0804547C - ldrb r0, [r0] - movs r5, #0x29 - ands r5, r0 - cmp r5, #0 - bne _0804546A - ldr r1, _08045480 - ldr r4, _08045484 - ldrb r2, [r4] - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r6, r1, #4 - adds r0, r0, r6 - ldr r1, [r0] - cmp r1, #0 - beq _0804546A - ldr r0, _08045488 - cmp r1, r0 - beq _0804546A - ldr r0, _0804548C - ldrb r3, [r0] - cmp r3, r2 - beq _0804546A - ldr r2, _08045490 - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - ldrh r1, [r0, #0x28] - ldrh r0, [r0, #0x2c] - cmp r1, r0 - beq _0804546A - cmp r1, #0 - beq _0804546A - ldr r0, _08045494 - mov r1, sp - ldrh r1, [r1, #0x14] - strh r1, [r0] - ldr r0, _08045498 - strb r3, [r0] - ldr r0, _0804549C - strb r3, [r0, #0x17] - ldrb r1, [r4] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r0, [r0] - ldr r1, [sp, #0x10] - bl __divsi3 - rsbs r0, r0, #0 - str r0, [r7] - ldrb r1, [r4] - cmp r0, #0 - bne _0804544C - movs r0, #1 - rsbs r0, r0, #0 - str r0, [r7] -_0804544C: - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - str r5, [r0] - bl BattleScriptPushCursor - ldr r1, _080454A0 - ldr r0, _080454A4 - str r0, [r1] - ldr r0, [sp, #0xc] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0xc] -_0804546A: - ldr r0, [sp, #0xc] - add sp, #0x2c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0804547C: .4byte gUnknown_2023F20 -_08045480: .4byte gUnknown_2024020 -_08045484: .4byte gUnknown_2023EB0 -_08045488: .4byte 0x0000FFFF -_0804548C: .4byte gUnknown_2023EAF -_08045490: .4byte gUnknown_2023D28 -_08045494: .4byte gUnknown_2023EAC -_08045498: .4byte gUnknown_2023EB3 -_0804549C: .4byte gUnknown_2024118 -_080454A0: .4byte gUnknown_2023EB8 -_080454A4: .4byte gUnknown_8289D7F - thumb_func_end ItemBattleEffects - - thumb_func_start ClearFuryCutterDestinyBondGrudge -ClearFuryCutterDestinyBondGrudge: @ 0x080454A8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080454E0 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r2, #0 - strb r2, [r1, #0x10] - ldr r1, _080454E4 - movs r2, #0x58 - adds r3, r0, #0 - muls r3, r2, r3 - adds r1, #0x50 - adds r3, r3, r1 - ldr r1, [r3] - ldr r2, _080454E8 - ands r1, r2 - str r1, [r3] - ldr r1, _080454EC - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - ldr r2, _080454F0 - ands r1, r2 - str r1, [r0] - bx lr - .align 2, 0 -_080454E0: .4byte gUnknown_2023F60 -_080454E4: .4byte gUnknown_2023D28 -_080454E8: .4byte 0xFDFFFFFF -_080454EC: .4byte gUnknown_2023F50 -_080454F0: .4byte 0xFFFFBFFF - thumb_func_end ClearFuryCutterDestinyBondGrudge - - thumb_func_start sub_080454F4 -sub_080454F4: @ 0x080454F4 - push {lr} - ldr r0, _08045514 - ldr r0, [r0] - cmp r0, #0 - bne _08045510 - ldr r1, _08045518 - ldr r0, _0804551C - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 -_08045510: - pop {r0} - bx r0 - .align 2, 0 -_08045514: .4byte gUnknown_2023D0C -_08045518: .4byte gUnknown_82EC694 -_0804551C: .4byte gUnknown_2023EB8 - thumb_func_end sub_080454F4 - - thumb_func_start GetMoveTarget -GetMoveTarget: @ 0x08045520 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r0, r1, #0x18 - movs r5, #0 - cmp r0, #0 - beq _0804553E - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - b _0804554A -_0804553E: - ldr r1, _0804555C - lsls r0, r7, #1 - adds r0, r0, r7 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r6, [r0, #6] -_0804554A: - cmp r6, #0x40 - bls _08045550 - b _08045860 -_08045550: - lsls r0, r6, #2 - ldr r1, _08045560 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0804555C: .4byte gUnknown_82ED220 -_08045560: .4byte _08045564 -_08045564: @ jump table - .4byte _08045668 @ case 0 - .4byte _08045768 @ case 1 - .4byte _0804585C @ case 2 - .4byte _08045860 @ case 3 - .4byte _08045780 @ case 4 - .4byte _08045860 @ case 5 - .4byte _08045860 @ case 6 - .4byte _08045860 @ case 7 - .4byte _08045768 @ case 8 - .4byte _08045860 @ case 9 - .4byte _08045860 @ case 10 - .4byte _08045860 @ case 11 - .4byte _08045860 @ case 12 - .4byte _08045860 @ case 13 - .4byte _08045860 @ case 14 - .4byte _08045860 @ case 15 - .4byte _0804585C @ case 16 - .4byte _08045860 @ case 17 - .4byte _08045860 @ case 18 - .4byte _08045860 @ case 19 - .4byte _08045860 @ case 20 - .4byte _08045860 @ case 21 - .4byte _08045860 @ case 22 - .4byte _08045860 @ case 23 - .4byte _08045860 @ case 24 - .4byte _08045860 @ case 25 - .4byte _08045860 @ case 26 - .4byte _08045860 @ case 27 - .4byte _08045860 @ case 28 - .4byte _08045860 @ case 29 - .4byte _08045860 @ case 30 - .4byte _08045860 @ case 31 - .4byte _08045768 @ case 32 - .4byte _08045860 @ case 33 - .4byte _08045860 @ case 34 - .4byte _08045860 @ case 35 - .4byte _08045860 @ case 36 - .4byte _08045860 @ case 37 - .4byte _08045860 @ case 38 - .4byte _08045860 @ case 39 - .4byte _08045860 @ case 40 - .4byte _08045860 @ case 41 - .4byte _08045860 @ case 42 - .4byte _08045860 @ case 43 - .4byte _08045860 @ case 44 - .4byte _08045860 @ case 45 - .4byte _08045860 @ case 46 - .4byte _08045860 @ case 47 - .4byte _08045860 @ case 48 - .4byte _08045860 @ case 49 - .4byte _08045860 @ case 50 - .4byte _08045860 @ case 51 - .4byte _08045860 @ case 52 - .4byte _08045860 @ case 53 - .4byte _08045860 @ case 54 - .4byte _08045860 @ case 55 - .4byte _08045860 @ case 56 - .4byte _08045860 @ case 57 - .4byte _08045860 @ case 58 - .4byte _08045860 @ case 59 - .4byte _08045860 @ case 60 - .4byte _08045860 @ case 61 - .4byte _08045860 @ case 62 - .4byte _08045860 @ case 63 - .4byte _08045768 @ case 64 -_08045668: - ldr r0, _08045748 - ldrb r0, [r0] - bl GetBattlerSide - movs r1, #1 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _0804574C - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r2, r0, r1 - ldrb r0, [r2, #8] - cmp r0, #0 - beq _0804569A - ldr r1, _08045750 - ldrb r4, [r2, #9] - movs r0, #0x58 - muls r0, r4, r0 - adds r0, r0, r1 - ldrh r0, [r0, #0x28] - cmp r0, #0 - beq _0804569A - b _080457B0 -_0804569A: - ldr r0, _08045748 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r7, #1 - mov r8, r0 -_080456AA: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _08045754 - ldrb r1, [r1] - bl __modsi3 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r6, _08045748 - ldrb r3, [r6] - cmp r5, r3 - beq _080456AA - adds r0, r5, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - beq _080456AA - ldr r0, _08045758 - ldrb r2, [r0] - ldr r1, _0804575C - lsls r0, r5, #2 - adds r0, r0, r1 - ldr r0, [r0] - ands r2, r0 - cmp r2, #0 - bne _080456AA - ldr r0, _08045760 - mov r3, r8 - adds r1, r3, r7 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #2] - cmp r0, #0xd - beq _080456F8 - b _08045860 -_080456F8: - ldrb r1, [r6] - str r2, [sp] - movs r0, #0x10 - movs r2, #0x1f - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0804570E - b _08045860 -_0804570E: - ldr r2, _08045750 - movs r1, #0x58 - adds r0, r5, #0 - muls r0, r1, r0 - adds r0, r0, r2 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x1f - bne _08045722 - b _08045860 -_08045722: - movs r4, #2 - eors r5, r4 - adds r0, r5, #0 - muls r0, r1, r0 - adds r0, r0, r2 - adds r0, #0x20 - ldrb r1, [r0] - adds r0, r5, #0 - bl RecordAbilityBattle - ldr r1, _08045764 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - orrs r1, r4 - strb r1, [r0] - b _08045860 - .align 2, 0 -_08045748: .4byte gUnknown_2023EAF -_0804574C: .4byte gUnknown_2023F38 -_08045750: .4byte gUnknown_2023D28 -_08045754: .4byte gUnknown_2023D10 -_08045758: .4byte gUnknown_2023EB4 -_0804575C: .4byte gUnknown_82FACB4 -_08045760: .4byte gUnknown_82ED220 -_08045764: .4byte gUnknown_2024020 -_08045768: - ldr r0, _0804577C - ldrb r0, [r0] - bl sub_080A630C - adds r1, r0, #0 - movs r2, #1 - movs r0, #1 - ands r0, r1 - eors r0, r2 - b _08045812 - .align 2, 0 -_0804577C: .4byte gUnknown_2023EAF -_08045780: - ldr r0, _080457B4 - ldrb r0, [r0] - bl GetBattlerSide - movs r1, #1 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _080457B8 - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r2, r0, r1 - ldrb r0, [r2, #8] - cmp r0, #0 - beq _080457C0 - ldr r1, _080457BC - ldrb r4, [r2, #9] - movs r0, #0x58 - muls r0, r4, r0 - adds r0, r0, r1 - ldrh r0, [r0, #0x28] - cmp r0, #0 - beq _080457C0 -_080457B0: - adds r5, r4, #0 - b _08045860 - .align 2, 0 -_080457B4: .4byte gUnknown_2023EAF -_080457B8: .4byte gUnknown_2023F38 -_080457BC: .4byte gUnknown_2023D28 -_080457C0: - ldr r0, _080457F4 - ldr r0, [r0] - movs r4, #1 - ands r0, r4 - cmp r0, #0 - beq _0804583C - movs r0, #4 - ands r6, r0 - cmp r6, #0 - beq _0804583C - ldr r0, _080457F8 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08045800 - bl Random - adds r1, r4, #0 - ands r1, r0 - cmp r1, #0 - beq _080457FC - movs r0, #1 - b _08045812 - .align 2, 0 -_080457F4: .4byte gUnknown_2022C90 -_080457F8: .4byte gUnknown_2023EAF -_080457FC: - movs r0, #3 - b _08045812 -_08045800: - bl Random - adds r1, r4, #0 - ands r1, r0 - cmp r1, #0 - beq _08045810 - movs r0, #0 - b _08045812 -_08045810: - movs r0, #2 -_08045812: - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _08045834 - ldrb r1, [r0] - ldr r2, _08045838 - lsls r0, r5, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _08045860 - movs r0, #2 - eors r5, r0 - b _08045860 - .align 2, 0 -_08045834: .4byte gUnknown_2023EB4 -_08045838: .4byte gUnknown_82FACB4 -_0804583C: - ldr r0, _08045858 - ldrb r0, [r0] - bl sub_080A630C - adds r1, r0, #0 - movs r2, #1 - movs r0, #1 - ands r0, r1 - eors r0, r2 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - b _08045860 - .align 2, 0 -_08045858: .4byte gUnknown_2023EAF -_0804585C: - ldr r0, _0804587C - ldrb r5, [r0] -_08045860: - ldr r0, _0804587C - ldrb r0, [r0] - ldr r1, _08045880 - ldr r1, [r1] - adds r0, r0, r1 - strb r5, [r0, #0xc] - adds r0, r5, #0 - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0804587C: .4byte gUnknown_2023EAF -_08045880: .4byte gUnknown_2024140 - thumb_func_end GetMoveTarget - - thumb_func_start HasObedientBitSet -HasObedientBitSet: @ 0x08045884 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080458CA - ldr r0, _080458D0 - lsls r4, r4, #1 - adds r5, r4, r0 - ldrh r0, [r5] - movs r7, #0x64 - muls r0, r7, r0 - ldr r6, _080458D4 - adds r0, r0, r6 - movs r1, #0xb - movs r2, #0 - bl GetMonData - movs r1, #0xcd - lsls r1, r1, #1 - cmp r0, r1 - beq _080458D8 - ldrh r0, [r5] - muls r0, r7, r0 - adds r0, r0, r6 - movs r1, #0xb - movs r2, #0 - bl GetMonData - cmp r0, #0x97 - beq _080458D8 -_080458CA: - movs r0, #1 - b _080458EE - .align 2, 0 -_080458D0: .4byte gUnknown_2023D12 -_080458D4: .4byte gUnknown_2024190 -_080458D8: - ldr r0, _080458F4 - adds r0, r4, r0 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080458F8 - adds r0, r0, r1 - movs r1, #0x50 - movs r2, #0 - bl GetMonData -_080458EE: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080458F4: .4byte gUnknown_2023D12 -_080458F8: .4byte gUnknown_2024190 - thumb_func_end HasObedientBitSet - - thumb_func_start IsMonDisobedient -IsMonDisobedient: @ 0x080458FC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x10 - movs r6, #0 - ldr r5, _080459F0 - ldr r0, [r5] - ldr r1, _080459F4 - ands r0, r1 - cmp r0, #0 - bne _080459EC - ldr r4, _080459F8 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080459EC - ldrb r0, [r4] - bl HasObedientBitSet - cmp r0, #0 - beq _080459B6 - ldr r0, [r5] - movs r1, #0x80 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - beq _08045948 - ldrb r0, [r4] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - beq _080459EC -_08045948: - ldr r0, _080459F0 - ldr r1, [r0] - ldr r0, _080459FC - ands r0, r1 - cmp r0, #0 - bne _080459EC - movs r0, #0x80 - lsls r0, r0, #0x11 - ands r1, r0 - cmp r1, #0 - bne _080459EC - ldr r2, _08045A00 - ldr r0, _080459F8 - ldrb r1, [r0] - movs r0, #0x58 - muls r1, r0, r1 - adds r0, r2, #0 - adds r0, #0x54 - adds r0, r1, r0 - ldr r0, [r0] - adds r2, #0x3c - adds r1, r1, r2 - bl IsOtherTrainer - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080459EC - ldr r0, _08045A04 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080459EC - movs r6, #0xa - ldr r0, _08045A08 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0804599A - movs r6, #0x1e -_0804599A: - ldr r0, _08045A0C - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080459A8 - movs r6, #0x32 -_080459A8: - ldr r0, _08045A10 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080459B6 - movs r6, #0x46 -_080459B6: - ldr r5, _08045A00 - ldr r0, _080459F8 - mov r8, r0 - ldrb r0, [r0] - movs r7, #0x58 - muls r0, r7, r0 - adds r0, r0, r5 - adds r0, #0x2a - ldrb r0, [r0] - cmp r0, r6 - bls _080459EC - bl Random - movs r1, #0xff - ands r1, r0 - mov r2, r8 - ldrb r0, [r2] - adds r2, r0, #0 - muls r2, r7, r2 - adds r0, r2, r5 - adds r0, #0x2a - ldrb r0, [r0] - adds r0, r0, r6 - muls r0, r1, r0 - asrs r4, r0, #8 - cmp r4, r6 - bge _08045A14 -_080459EC: - movs r0, #0 - b _08045C10 - .align 2, 0 -_080459F0: .4byte gUnknown_2022C90 -_080459F4: .4byte gUnknown_2000002 -_080459F8: .4byte gUnknown_2023EAF -_080459FC: .4byte 0x003F0100 -_08045A00: .4byte gUnknown_2023D28 -_08045A04: .4byte 0x0000086E -_08045A08: .4byte 0x00000868 -_08045A0C: .4byte 0x0000086A -_08045A10: .4byte 0x0000086C -_08045A14: - ldr r3, _08045A50 - ldrh r0, [r3] - cmp r0, #0x63 - bne _08045A2A - adds r0, r5, #0 - adds r0, #0x50 - adds r0, r2, r0 - ldr r1, [r0] - ldr r2, _08045A54 - ands r1, r2 - str r1, [r0] -_08045A2A: - mov r1, r8 - ldrb r0, [r1] - muls r0, r7, r0 - adds r1, r5, #0 - adds r1, #0x4c - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - beq _08045A60 - ldrh r0, [r3] - cmp r0, #0xad - beq _08045A4A - cmp r0, #0xd6 - bne _08045A60 -_08045A4A: - ldr r1, _08045A58 - ldr r0, _08045A5C - b _08045BBA - .align 2, 0 -_08045A50: .4byte gUnknown_2023E8E -_08045A54: .4byte 0xFF7FFFFF -_08045A58: .4byte gUnknown_2023EB8 -_08045A5C: .4byte gUnknown_8289C1D -_08045A60: - bl Random - movs r5, #0xff - adds r1, r5, #0 - ands r1, r0 - ldr r7, _08045B00 - ldr r2, _08045B04 - mov sb, r2 - ldrb r3, [r2] - movs r0, #0x58 - mov r8, r0 - mov r0, r8 - muls r0, r3, r0 - adds r0, r0, r7 - adds r0, #0x2a - ldrb r2, [r0] - adds r0, r2, r6 - muls r0, r1, r0 - asrs r4, r0, #8 - cmp r4, r6 - bge _08045B28 - ldr r6, _08045B08 - ldr r5, _08045B0C - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r1, [r0] - adds r0, r3, #0 - movs r2, #0xff - bl CheckMoveLimitations - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xf - bne _08045AA8 - b _08045BAA -_08045AA8: - ldr r1, _08045B10 - mov r8, r1 - movs r7, #3 -_08045AAE: - bl Random - ands r0, r7 - mov r2, r8 - strb r0, [r2] - strb r0, [r5] - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r0, [r0] - ands r0, r4 - cmp r0, #0 - bne _08045AAE - ldr r4, _08045B14 - ldr r3, _08045B00 - ldr r0, _08045B0C - ldrb r0, [r0] - lsls r0, r0, #1 - ldr r1, _08045B04 - ldrb r2, [r1] - movs r1, #0x58 - muls r1, r2, r1 - adds r0, r0, r1 - adds r3, #0xc - adds r0, r0, r3 - ldrh r0, [r0] - strh r0, [r4] - ldr r1, _08045B18 - ldr r0, _08045B1C - str r0, [r1] - ldrh r0, [r4] - movs r1, #0 - bl GetMoveTarget - ldr r1, _08045B20 - strb r0, [r1] - ldr r2, _08045B24 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0xe - b _08045C0A - .align 2, 0 -_08045B00: .4byte gUnknown_2023D28 -_08045B04: .4byte gUnknown_2023EAF -_08045B08: .4byte gUnknown_82FACB4 -_08045B0C: .4byte gUnknown_2023E8C -_08045B10: .4byte gUnknown_2023E8D -_08045B14: .4byte gUnknown_2023E92 -_08045B18: .4byte gUnknown_2023EB8 -_08045B1C: .4byte gUnknown_8289C2D -_08045B20: .4byte gUnknown_2023EB0 -_08045B24: .4byte gUnknown_2023F24 -_08045B28: - subs r0, r2, r6 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - bl Random - adds r4, r5, #0 - ands r4, r0 - cmp r4, r6 - bge _08045BA4 - mov r1, sb - ldrb r0, [r1] - mov r1, r8 - muls r1, r0, r1 - adds r0, r7, #0 - adds r0, #0x4c - adds r0, r1, r0 - ldr r0, [r0] - ands r0, r5 - cmp r0, #0 - bne _08045BA4 - adds r0, r1, r7 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x48 - beq _08045BA4 - cmp r0, #0xf - beq _08045BA4 - movs r2, #0 - ldr r0, _08045B98 - ldrb r3, [r0] - mov r8, r0 - cmp r2, r3 - bge _08045B8A - ldr r0, [r7, #0x50] - movs r1, #0x70 - ands r0, r1 - cmp r0, #0 - bne _08045B8A - adds r1, r7, #0 - adds r1, #0x50 - movs r5, #0x70 -_08045B7A: - adds r1, #0x58 - adds r2, #1 - cmp r2, r3 - bge _08045B8A - ldr r0, [r1] - ands r0, r5 - cmp r0, #0 - beq _08045B7A -_08045B8A: - mov r0, r8 - ldrb r0, [r0] - cmp r2, r0 - bne _08045BA4 - ldr r1, _08045B9C - ldr r0, _08045BA0 - b _08045BBA - .align 2, 0 -_08045B98: .4byte gUnknown_2023D10 -_08045B9C: .4byte gUnknown_2023EB8 -_08045BA0: .4byte gUnknown_8289C61 -_08045BA4: - subs r4, r4, r6 - cmp r4, r6 - blt _08045BCC -_08045BAA: - bl Random - ldr r2, _08045BC0 - movs r1, #3 - ands r1, r0 - strb r1, [r2, #5] - ldr r1, _08045BC4 - ldr r0, _08045BC8 -_08045BBA: - str r0, [r1] - movs r0, #1 - b _08045C10 - .align 2, 0 -_08045BC0: .4byte gUnknown_2023FD6 -_08045BC4: .4byte gUnknown_2023EB8 -_08045BC8: .4byte gUnknown_8289C35 -_08045BCC: - ldr r4, _08045C20 - ldrb r1, [r4] - movs r0, #0x58 - muls r1, r0, r1 - ldr r0, _08045C24 - adds r1, r1, r0 - movs r0, #0x28 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - ldrb r0, [r4] - str r0, [sp, #8] - ldrb r0, [r4] - str r0, [sp, #0xc] - adds r0, r1, #0 - movs r2, #1 - movs r3, #0 - bl CalculateBaseDamage - ldr r1, _08045C28 - str r0, [r1] - ldr r1, _08045C2C - ldrb r0, [r4] - strb r0, [r1] - ldr r1, _08045C30 - ldr r0, _08045C34 - str r0, [r1] - ldr r2, _08045C38 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0xc -_08045C0A: - orrs r0, r1 - str r0, [r2] - movs r0, #2 -_08045C10: - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08045C20: .4byte gUnknown_2023EAF -_08045C24: .4byte gUnknown_2023D28 -_08045C28: .4byte gUnknown_2023E94 -_08045C2C: .4byte gUnknown_2023EB0 -_08045C30: .4byte gUnknown_2023EB8 -_08045C34: .4byte gUnknown_8289C78 -_08045C38: .4byte gUnknown_2023F24 - thumb_func_end IsMonDisobedient - - thumb_func_start atk00_attackcanceler -atk00_attackcanceler: @ 0x08045C3C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - ldr r0, _08045C58 - ldrb r0, [r0] - cmp r0, #0 - beq _08045C60 - ldr r1, _08045C5C - movs r0, #0xc - strb r0, [r1] - b _08045FD8 - .align 2, 0 -_08045C58: .4byte gUnknown_2023FDE -_08045C5C: .4byte gUnknown_2023D27 -_08045C60: - ldr r2, _08045C90 - ldr r0, _08045C94 - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - ldrh r0, [r0, #0x28] - cmp r0, #0 - bne _08045CA4 - ldr r2, _08045C98 - ldr r1, [r2] - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08045CA4 - movs r0, #0x80 - lsls r0, r0, #0xc - orrs r1, r0 - str r1, [r2] - ldr r1, _08045C9C - ldr r0, _08045CA0 - b _08045FD6 - .align 2, 0 -_08045C90: .4byte gUnknown_2023D28 -_08045C94: .4byte gUnknown_2023EAF -_08045C98: .4byte gUnknown_2023F24 -_08045C9C: .4byte gUnknown_2023EB8 -_08045CA0: .4byte gUnknown_8286FD6 -_08045CA4: - bl sub_080416AC - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - beq _08045CB2 - b _08045FD8 -_08045CB2: - ldr r0, _08045D20 - ldrb r1, [r0] - str r2, [sp] - movs r0, #2 - movs r2, #0 - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08045CCA - b _08045FD8 -_08045CCA: - ldr r4, _08045D24 - ldr r0, _08045D28 - ldrb r1, [r0] - ldr r3, _08045D2C - ldrb r2, [r3] - movs r0, #0x58 - muls r2, r0, r2 - adds r1, r1, r2 - adds r0, r4, #0 - adds r0, #0x24 - adds r1, r1, r0 - ldrb r0, [r1] - ldr r5, _08045D30 - cmp r0, #0 - bne _08045D48 - ldr r0, _08045D34 - ldrh r0, [r0] - cmp r0, #0xa5 - beq _08045D48 - ldr r0, [r5] - ldr r1, _08045D38 - ands r0, r1 - cmp r0, #0 - bne _08045D48 - adds r0, r4, #0 - adds r0, #0x50 - adds r0, r2, r0 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #5 - ands r0, r1 - cmp r0, #0 - bne _08045D48 - ldr r1, _08045D3C - ldr r0, _08045D40 - str r0, [r1] - ldr r2, _08045D44 - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - b _08045FD8 - .align 2, 0 -_08045D20: .4byte gUnknown_2023EB0 -_08045D24: .4byte gUnknown_2023D28 -_08045D28: .4byte gUnknown_2023E8C -_08045D2C: .4byte gUnknown_2023EAF -_08045D30: .4byte gUnknown_2023F24 -_08045D34: .4byte gUnknown_2023E8E -_08045D38: .4byte 0x00800200 -_08045D3C: .4byte gUnknown_2023EB8 -_08045D40: .4byte gUnknown_8289602 -_08045D44: .4byte gUnknown_2023F20 -_08045D48: - ldr r0, [r5] - ldr r1, _08045D8C - ands r0, r1 - str r0, [r5] - movs r6, #0x80 - lsls r6, r6, #0x12 - ands r0, r6 - cmp r0, #0 - bne _08045DA0 - ldrb r1, [r3] - movs r0, #0x58 - muls r0, r1, r0 - adds r1, r4, #0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #5 - ands r0, r1 - cmp r0, #0 - bne _08045DA0 - bl IsMonDisobedient - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - beq _08045DA0 - cmp r2, #2 - bne _08045D90 - ldr r0, [r5] - orrs r0, r6 - str r0, [r5] - b _08045FD8 - .align 2, 0 -_08045D8C: .4byte 0xFF7FFFFF -_08045D90: - ldr r0, _08045D9C - ldrb r1, [r0] - movs r2, #1 - orrs r1, r2 - strb r1, [r0] - b _08045FD8 - .align 2, 0 -_08045D9C: .4byte gUnknown_2023F20 -_08045DA0: - ldr r2, _08045E04 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0x12 - orrs r0, r1 - str r0, [r2] - ldr r2, _08045E08 - ldr r1, _08045E0C - ldrb r3, [r1] - lsls r0, r3, #4 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1b - mov r8, r1 - mov sb, r2 - cmp r0, #0 - bge _08045E28 - ldr r2, _08045E10 - ldr r0, _08045E14 - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #8] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08045E28 - ldr r0, _08045E18 - ldrb r0, [r0] - ldr r2, _08045E1C - adds r1, r3, #0 - bl PressurePPLose - mov r0, r8 - ldrb r1, [r0] - lsls r1, r1, #4 - add r1, sb - ldrb r2, [r1] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - bl BattleScriptPushCursor - ldr r1, _08045E20 - ldr r0, _08045E24 - b _08045FD6 - .align 2, 0 -_08045E04: .4byte gUnknown_2023F24 -_08045E08: .4byte gUnknown_2023FE0 -_08045E0C: .4byte gUnknown_2023EB0 -_08045E10: .4byte gUnknown_82ED220 -_08045E14: .4byte gUnknown_2023E8E -_08045E18: .4byte gUnknown_2023EAF -_08045E1C: .4byte 0x00000115 -_08045E20: .4byte gUnknown_2023EB8 -_08045E24: .4byte gUnknown_828971C -_08045E28: - movs r2, #0 - ldr r0, _08045EA4 - ldrb r0, [r0] - cmp r2, r0 - bge _08045E6A - ldr r6, _08045EA8 - ldr r1, _08045EAC - mov ip, r1 - adds r5, r0, #0 - ldr r7, _08045EB0 -_08045E3C: - adds r4, r2, r7 - ldrb r3, [r4] - lsls r0, r3, #4 - adds r0, r0, r6 - ldrb r0, [r0] - lsls r0, r0, #0x1a - cmp r0, #0 - bge _08045E64 - ldr r0, _08045EB4 - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, ip - ldrb r1, [r0, #8] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08045E64 - b _08045F90 -_08045E64: - adds r2, #1 - cmp r2, r5 - blt _08045E3C -_08045E6A: - ldr r0, _08045EB8 - mov r1, r8 - ldrb r2, [r1] - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r3, [r1] - lsls r0, r3, #0x1e - cmp r0, #0 - bge _08045EC8 - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r3 - strb r0, [r1] - ldr r4, _08045EBC - movs r0, #0x1f - strb r0, [r4] - bl BattleScriptPushCursor - ldr r1, _08045EC0 - ldr r0, _08045EC4 - str r0, [r1] - mov r1, r8 - ldrb r0, [r1] - ldrb r1, [r4] - bl RecordAbilityBattle - b _08045FD8 - .align 2, 0 -_08045EA4: .4byte gUnknown_2023D10 -_08045EA8: .4byte gUnknown_2023FE0 -_08045EAC: .4byte gUnknown_82ED220 -_08045EB0: .4byte gUnknown_2023D22 -_08045EB4: .4byte gUnknown_2023E8E -_08045EB8: .4byte gUnknown_2024020 -_08045EBC: .4byte gUnknown_2023EAE -_08045EC0: .4byte gUnknown_2023EB8 -_08045EC4: .4byte gUnknown_8289AC6 -_08045EC8: - lsls r0, r2, #4 - add r0, sb - ldrb r0, [r0] - lsls r0, r0, #0x1f - cmp r0, #0 - bne _08045ED6 - b _08045FD0 -_08045ED6: - ldr r1, _08045F6C - ldr r2, _08045F70 - ldrh r3, [r2] - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #8] - movs r0, #2 - ands r0, r1 - adds r4, r2, #0 - cmp r0, #0 - beq _08045FD0 - cmp r3, #0xae - bne _08045F14 - ldr r2, _08045F74 - ldr r0, _08045F78 - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r1, r0, r2 - adds r0, r1, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #7 - beq _08045F14 - adds r0, r1, #0 - adds r0, #0x22 - ldrb r0, [r0] - cmp r0, #7 - bne _08045FD0 -_08045F14: - ldrh r0, [r4] - bl IsTwoTurnsMove - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08045F3A - ldr r1, _08045F74 - ldr r0, _08045F78 - ldrb r2, [r0] - movs r0, #0x58 - muls r0, r2, r0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #5 - ands r0, r1 - cmp r0, #0 - beq _08045FD0 -_08045F3A: - ldr r0, _08045F78 - ldrb r0, [r0] - bl CancelMultiTurnMoves - ldr r2, _08045F7C - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - ldr r1, _08045F80 - ldr r3, _08045F84 - ldrb r0, [r3] - lsls r0, r0, #1 - adds r0, r0, r1 - movs r2, #0 - strh r2, [r0] - ldr r1, _08045F88 - ldrb r0, [r3] - lsls r0, r0, #1 - adds r0, r0, r1 - strh r2, [r0] - ldr r1, _08045F8C - movs r0, #1 - strb r0, [r1, #6] - b _08045FD0 - .align 2, 0 -_08045F6C: .4byte gUnknown_82ED220 -_08045F70: .4byte gUnknown_2023E8E -_08045F74: .4byte gUnknown_2023D28 -_08045F78: .4byte gUnknown_2023EAF -_08045F7C: .4byte gUnknown_2023F20 -_08045F80: .4byte gUnknown_2023EF4 -_08045F84: .4byte gUnknown_2023EB0 -_08045F88: .4byte gUnknown_2023EFC -_08045F8C: .4byte gUnknown_2023FD6 -_08045F90: - ldr r0, _08045FBC - ldrb r0, [r0] - ldr r2, _08045FC0 - adds r1, r3, #0 - bl PressurePPLose - ldrb r1, [r4] - lsls r1, r1, #4 - adds r1, r1, r6 - ldrb r2, [r1] - movs r0, #0x21 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r1, _08045FC4 - ldrb r0, [r4] - strb r0, [r1, #0x17] - bl BattleScriptPushCursor - ldr r1, _08045FC8 - ldr r0, _08045FCC - b _08045FD6 - .align 2, 0 -_08045FBC: .4byte gUnknown_2023EAF -_08045FC0: .4byte 0x00000121 -_08045FC4: .4byte gUnknown_2024118 -_08045FC8: .4byte gUnknown_2023EB8 -_08045FCC: .4byte gUnknown_8289734 -_08045FD0: - ldr r1, _08045FE8 - ldr r0, [r1] - adds r0, #1 -_08045FD6: - str r0, [r1] -_08045FD8: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08045FE8: .4byte gUnknown_2023EB8 - thumb_func_end atk00_attackcanceler - - thumb_func_start JumpIfMoveFailed -JumpIfMoveFailed: @ 0x08045FEC - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - ldr r1, _08046038 - ldr r5, [r1] - adds r4, r5, r0 - ldr r0, _0804603C - ldrb r1, [r0] - movs r0, #0x29 - ands r0, r1 - cmp r0, #0 - beq _0804604C - ldr r1, _08046040 - ldr r3, _08046044 - ldrb r0, [r3] - lsls r0, r0, #1 - adds r0, r0, r1 - movs r2, #0 - strh r2, [r0] - ldr r1, _08046048 - ldrb r0, [r3] - lsls r0, r0, #1 - adds r0, r0, r1 - strh r2, [r0] - ldrb r4, [r5, #1] - ldrb r0, [r5, #2] - lsls r0, r0, #8 - orrs r4, r0 - ldrb r0, [r5, #3] - lsls r0, r0, #0x10 - orrs r4, r0 - ldrb r0, [r5, #4] - lsls r0, r0, #0x18 - orrs r4, r0 - b _08046066 - .align 2, 0 -_08046038: .4byte gUnknown_2023EB8 -_0804603C: .4byte gUnknown_2023F20 -_08046040: .4byte gUnknown_2023EF4 -_08046044: .4byte gUnknown_2023EB0 -_08046048: .4byte gUnknown_2023EFC -_0804604C: - bl TrySetDestinyBondToHappen - ldr r0, _08046074 - ldrb r1, [r0] - str r6, [sp] - movs r0, #3 - movs r2, #0 - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0804606A -_08046066: - ldr r0, _08046078 - str r4, [r0] -_0804606A: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08046074: .4byte gUnknown_2023EB0 -_08046078: .4byte gUnknown_2023EB8 - thumb_func_end JumpIfMoveFailed - - thumb_func_start atk40_jumpifaffectedbyprotect -atk40_jumpifaffectedbyprotect: @ 0x0804607C - push {lr} - ldr r1, _080460C4 - ldr r0, _080460C8 - ldrb r0, [r0] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _080460DC - ldr r2, _080460CC - ldr r0, _080460D0 - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #8] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080460DC - ldr r2, _080460D4 - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - movs r0, #5 - movs r1, #0 - bl JumpIfMoveFailed - ldr r1, _080460D8 - movs r0, #1 - strb r0, [r1, #6] - b _080460E4 - .align 2, 0 -_080460C4: .4byte gUnknown_2023FE0 -_080460C8: .4byte gUnknown_2023EB0 -_080460CC: .4byte gUnknown_82ED220 -_080460D0: .4byte gUnknown_2023E8E -_080460D4: .4byte gUnknown_2023F20 -_080460D8: .4byte gUnknown_2023FD6 -_080460DC: - ldr r1, _080460E8 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] -_080460E4: - pop {r0} - bx r0 - .align 2, 0 -_080460E8: .4byte gUnknown_2023EB8 - thumb_func_end atk40_jumpifaffectedbyprotect - - thumb_func_start JumpIfMoveAffectedByProtect -JumpIfMoveAffectedByProtect: @ 0x080460EC - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - movs r4, #0 - ldr r1, _08046140 - ldr r0, _08046144 - ldrb r0, [r0] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _08046138 - ldr r2, _08046148 - ldr r0, _0804614C - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #8] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08046138 - ldr r2, _08046150 - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - movs r0, #7 - adds r1, r3, #0 - bl JumpIfMoveFailed - ldr r1, _08046154 - movs r0, #1 - strb r0, [r1, #6] - movs r4, #1 -_08046138: - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08046140: .4byte gUnknown_2023FE0 -_08046144: .4byte gUnknown_2023EB0 -_08046148: .4byte gUnknown_82ED220 -_0804614C: .4byte gUnknown_2023E8E -_08046150: .4byte gUnknown_2023F20 -_08046154: .4byte gUnknown_2023FD6 - thumb_func_end JumpIfMoveAffectedByProtect - - thumb_func_start AccuracyCalcHelper -AccuracyCalcHelper: @ 0x08046158 - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r2, _080461B8 - ldr r3, _080461BC - ldrb r4, [r3] - lsls r0, r4, #2 - adds r0, r0, r2 - ldr r1, [r0] - movs r0, #0x18 - ands r1, r0 - adds r6, r2, #0 - cmp r1, #0 - beq _0804618A - ldr r1, _080461C0 - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _080461C4 - ldrb r0, [r0, #0x15] - ldrb r1, [r1] - cmp r0, r1 - beq _08046274 -_0804618A: - ldr r0, _080461C8 - ldr r1, [r0] - movs r2, #0x80 - lsls r2, r2, #9 - ands r1, r2 - adds r2, r0, #0 - cmp r1, #0 - bne _080461D0 - ldrb r0, [r3] - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080461D0 -_080461AA: - ldr r0, _080461CC - ldrb r1, [r0] - movs r2, #1 - orrs r1, r2 - strb r1, [r0] - b _08046274 - .align 2, 0 -_080461B8: .4byte gUnknown_2023F50 -_080461BC: .4byte gUnknown_2023EB0 -_080461C0: .4byte gUnknown_2023F60 -_080461C4: .4byte gUnknown_2023EAF -_080461C8: .4byte gUnknown_2023F24 -_080461CC: .4byte gUnknown_2023F20 -_080461D0: - ldr r0, [r2] - ldr r1, _08046280 - ands r0, r1 - str r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0xa - ands r0, r1 - cmp r0, #0 - bne _080461F2 - ldrb r0, [r3] - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r0, [r0] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080461AA -_080461F2: - ldr r0, [r2] - ldr r1, _08046284 - ands r0, r1 - str r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0xb - ands r0, r1 - cmp r0, #0 - bne _08046212 - ldrb r0, [r3] - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r0, [r0] - ands r0, r1 - cmp r0, #0 - bne _080461AA -_08046212: - ldr r0, [r2] - ldr r1, _08046288 - ands r0, r1 - str r0, [r2] - movs r0, #0 - str r0, [sp] - movs r0, #0x13 - movs r1, #0 - movs r2, #0xd - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r5, #1 - cmp r0, #0 - bne _08046262 - str r0, [sp] - movs r0, #0x13 - movs r1, #0 - movs r2, #0x4d - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08046262 - ldr r0, _0804628C - ldrh r1, [r0] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - beq _08046262 - ldr r0, _08046290 - adds r1, r4, r5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0x98 - beq _08046274 -_08046262: - ldr r1, _08046290 - adds r0, r4, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0x11 - beq _08046274 - cmp r0, #0x4e - bne _08046294 -_08046274: - movs r0, #7 - adds r1, r5, #0 - bl JumpIfMoveFailed - movs r0, #1 - b _08046296 - .align 2, 0 -_08046280: .4byte 0xFFFEFFFF -_08046284: .4byte 0xFFFDFFFF -_08046288: .4byte 0xFFFBFFFF -_0804628C: .4byte gUnknown_2024070 -_08046290: .4byte gUnknown_82ED220 -_08046294: - movs r0, #0 -_08046296: - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end AccuracyCalcHelper - - thumb_func_start atk01_accuracycheck -atk01_accuracycheck: @ 0x080462A0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - ldr r0, _080462F8 - ldr r5, [r0] - ldrb r6, [r5, #5] - ldrb r1, [r5, #6] - lsls r1, r1, #8 - orrs r6, r1 - adds r1, r6, #2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r7, r0, #0 - cmp r1, #1 - bhi _0804635C - ldr r2, _080462FC - ldr r3, _08046300 - ldrb r4, [r3] - lsls r0, r4, #2 - adds r0, r0, r2 - ldr r1, [r0] - movs r0, #0x18 - ands r1, r0 - cmp r1, #0 - beq _08046310 - ldr r0, _08046304 - cmp r6, r0 - bne _08046310 - ldr r1, _08046308 - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0804630C - ldrb r0, [r0, #0x15] - ldrb r1, [r1] - cmp r0, r1 - bne _08046310 - adds r0, r5, #7 - str r0, [r7] - b _08046612 - .align 2, 0 -_080462F8: .4byte gUnknown_2023EB8 -_080462FC: .4byte gUnknown_2023F50 -_08046300: .4byte gUnknown_2023EB0 -_08046304: .4byte 0x0000FFFF -_08046308: .4byte gUnknown_2023F60 -_0804630C: .4byte gUnknown_2023EAF -_08046310: - ldrb r0, [r3] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - ldr r1, _0804633C - ands r0, r1 - cmp r0, #0 - beq _08046340 - ldr r2, [r7] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r7] - b _08046612 - .align 2, 0 -_0804633C: .4byte 0x000400C0 -_08046340: - movs r0, #0 - bl JumpIfMoveAffectedByProtect - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0804634E - b _08046612 -_0804634E: - ldr r1, _08046358 - ldr r0, [r1] - adds r0, #7 - str r0, [r1] - b _08046612 - .align 2, 0 -_08046358: .4byte gUnknown_2023EB8 -_0804635C: - cmp r6, #0 - bne _08046364 - ldr r0, _0804637C - ldrh r6, [r0] -_08046364: - ldr r0, _08046380 - ldr r0, [r0] - ldrb r0, [r0, #0x13] - cmp r0, #0 - beq _08046384 - movs r1, #0x3f - mov sl, r1 - mov r2, sl - ands r2, r0 - mov sl, r2 - b _08046392 - .align 2, 0 -_0804637C: .4byte gUnknown_2023E8E -_08046380: .4byte gUnknown_2024140 -_08046384: - ldr r1, _080463D8 - lsls r0, r6, #1 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #2] - mov sl, r0 -_08046392: - adds r0, r6, #0 - bl JumpIfMoveAffectedByProtect - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080463A0 - b _08046612 -_080463A0: - adds r0, r6, #0 - bl AccuracyCalcHelper - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080463AE - b _08046612 -_080463AE: - ldr r3, _080463DC - ldr r0, _080463E0 - ldrb r0, [r0] - movs r2, #0x58 - adds r4, r0, #0 - muls r4, r2, r4 - adds r0, r3, #0 - adds r0, #0x50 - adds r0, r4, r0 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x16 - ands r0, r1 - cmp r0, #0 - beq _080463E8 - ldr r0, _080463E4 - ldrb r0, [r0] - muls r0, r2, r0 - adds r0, r0, r3 - ldrb r5, [r0, #0x1e] - b _080463FE - .align 2, 0 -_080463D8: .4byte gUnknown_82ED220 -_080463DC: .4byte gUnknown_2023D28 -_080463E0: .4byte gUnknown_2023EB0 -_080463E4: .4byte gUnknown_2023EAF -_080463E8: - ldr r0, _0804654C - ldrb r0, [r0] - muls r0, r2, r0 - adds r0, r0, r3 - ldrb r0, [r0, #0x1e] - adds r0, #6 - adds r1, r4, r3 - ldrb r1, [r1, #0x1f] - subs r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_080463FE: - lsls r0, r5, #0x18 - cmp r0, #0 - bge _08046406 - movs r5, #0 -_08046406: - lsls r0, r5, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0xc - ble _08046410 - movs r5, #0xc -_08046410: - ldr r1, _08046550 - lsls r4, r6, #1 - adds r0, r4, r6 - lsls r0, r0, #2 - adds r7, r0, r1 - ldrb r3, [r7, #3] - mov r8, r3 - movs r0, #0 - str r0, [sp] - movs r0, #0x13 - movs r1, #0 - movs r2, #0xd - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r4, [sp, #4] - cmp r0, #0 - bne _08046462 - str r0, [sp] - movs r0, #0x13 - movs r1, #0 - movs r2, #0x4d - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08046462 - ldr r0, _08046554 - ldrh r1, [r0] - movs r0, #0x60 - ands r0, r1 - cmp r0, #0 - beq _08046462 - ldrb r0, [r7] - cmp r0, #0x98 - bne _08046462 - movs r0, #0x32 - mov r8, r0 -_08046462: - ldr r1, _08046558 - lsls r0, r5, #0x18 - asrs r0, r0, #0x16 - adds r0, r0, r1 - ldrb r1, [r0] - mov r4, r8 - muls r4, r1, r4 - ldrb r1, [r0, #1] - adds r0, r4, #0 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r7, _0804655C - ldr r0, _0804654C - ldrb r0, [r0] - movs r5, #0x58 - muls r0, r5, r0 - adds r0, r0, r7 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0xe - bne _080464A0 - lsls r0, r4, #6 - adds r0, r0, r4 - lsls r0, r0, #1 - movs r1, #0x64 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_080464A0: - movs r0, #0 - str r0, [sp] - movs r0, #0x13 - movs r1, #0 - movs r2, #0xd - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _080464F8 - str r0, [sp] - movs r0, #0x13 - movs r1, #0 - movs r2, #0x4d - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080464F8 - ldr r0, _08046560 - ldrb r0, [r0] - muls r0, r5, r0 - adds r0, r0, r7 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #8 - bne _080464F8 - ldr r0, _08046554 - ldrh r1, [r0] - movs r0, #0x18 - ands r0, r1 - cmp r0, #0 - beq _080464F8 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #4 - movs r1, #0x64 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_080464F8: - ldr r2, _0804655C - ldr r0, _0804654C - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - adds r0, #0x20 - ldrb r0, [r0] - mov sb, r2 - cmp r0, #0x37 - bne _08046524 - mov r1, sl - cmp r1, #8 - bhi _08046524 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #4 - movs r1, #0x64 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_08046524: - ldr r2, _08046560 - mov r8, r2 - ldrb r2, [r2] - movs r7, #0x58 - adds r0, r2, #0 - muls r0, r7, r0 - mov r3, sb - adds r1, r0, r3 - ldrh r0, [r1, #0x2e] - cmp r0, #0xaf - bne _08046568 - ldr r1, _08046564 - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r5, [r0, #7] - ldrb r2, [r0, #0x1a] - b _08046584 - .align 2, 0 -_0804654C: .4byte gUnknown_2023EAF -_08046550: .4byte gUnknown_82ED220 -_08046554: .4byte gUnknown_2024070 -_08046558: .4byte gUnknown_82ECA78 -_0804655C: .4byte gUnknown_2023D28 -_08046560: .4byte gUnknown_2023EB0 -_08046564: .4byte gUnknown_20240A8 -_08046568: - ldrh r0, [r1, #0x2e] - bl sub_080D6CF8 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - mov r1, r8 - ldrb r0, [r1] - muls r0, r7, r0 - add r0, sb - ldrh r0, [r0, #0x2e] - bl sub_080D6D1C - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 -_08046584: - ldr r0, _080465E8 - ldr r1, _080465EC - ldrb r1, [r1] - strb r1, [r0] - cmp r5, #0x16 - bne _080465A0 - movs r0, #0x64 - subs r0, r0, r2 - muls r0, r4, r0 - movs r1, #0x64 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_080465A0: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r0, #1 - cmp r0, r4 - ble _0804660A - ldr r2, _080465F0 - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080465F4 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08046600 - ldr r1, _080465F8 - ldr r2, [sp, #4] - adds r0, r2, r6 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #6] - cmp r0, #8 - beq _080465E2 - cmp r0, #0x20 - bne _08046600 -_080465E2: - ldr r1, _080465FC - movs r0, #2 - b _08046604 - .align 2, 0 -_080465E8: .4byte gUnknown_2023EB3 -_080465EC: .4byte gUnknown_2023EB0 -_080465F0: .4byte gUnknown_2023F20 -_080465F4: .4byte gUnknown_2022C90 -_080465F8: .4byte gUnknown_82ED220 -_080465FC: .4byte gUnknown_2023FD6 -_08046600: - ldr r1, _08046624 - movs r0, #0 -_08046604: - strb r0, [r1, #6] - bl CheckWonderGuardAndLevitate -_0804660A: - movs r0, #7 - adds r1, r6, #0 - bl JumpIfMoveFailed -_08046612: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08046624: .4byte gUnknown_2023FD6 - thumb_func_end atk01_accuracycheck - - thumb_func_start atk02_attackstring -atk02_attackstring: @ 0x08046628 - push {r4, r5, lr} - ldr r0, _08046668 - ldr r5, [r0] - cmp r5, #0 - bne _08046660 - ldr r4, _0804666C - ldr r0, [r4] - movs r1, #0xc0 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - bne _08046654 - ldr r0, _08046670 - ldrb r1, [r0] - movs r0, #4 - bl PrepareStringBattle - ldr r0, [r4] - movs r1, #0x80 - lsls r1, r1, #3 - orrs r0, r1 - str r0, [r4] -_08046654: - ldr r0, _08046674 - ldr r1, [r0] - adds r1, #1 - str r1, [r0] - ldr r0, _08046678 - strb r5, [r0, #7] -_08046660: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08046668: .4byte gUnknown_2023D0C -_0804666C: .4byte gUnknown_2023F24 -_08046670: .4byte gUnknown_2023EAF -_08046674: .4byte gUnknown_2023EB8 -_08046678: .4byte gUnknown_2023FD6 - thumb_func_end atk02_attackstring - - thumb_func_start atk03_ppreduce -atk03_ppreduce: @ 0x0804667C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - movs r6, #1 - ldr r0, _080466CC - ldr r0, [r0] - cmp r0, #0 - beq _08046694 - b _0804682E -_08046694: - ldr r1, _080466D0 - ldr r2, _080466D4 - ldrb r3, [r2] - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r4, r0, #0x1f - mov sb, r2 - cmp r4, #0 - bne _08046736 - ldr r2, _080466D8 - ldr r0, _080466DC - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #6] - cmp r0, #0x20 - beq _080466E6 - cmp r0, #0x20 - bgt _080466E0 - cmp r0, #8 - beq _080466FC - b _08046716 - .align 2, 0 -_080466CC: .4byte gUnknown_2023D0C -_080466D0: .4byte gUnknown_2024020 -_080466D4: .4byte gUnknown_2023EAF -_080466D8: .4byte gUnknown_82ED220 -_080466DC: .4byte gUnknown_2023E8E -_080466E0: - cmp r0, #0x40 - beq _080466FC - b _08046716 -_080466E6: - str r4, [sp] - movs r0, #0x12 - adds r1, r3, #0 - movs r2, #0x2e - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r6, r0, #1 - b _08046736 -_080466FC: - mov r0, sb - ldrb r1, [r0] - movs r0, #0 - str r0, [sp] - movs r0, #0x10 - movs r2, #0x2e - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r6, r6, r0 - b _08046736 -_08046716: - ldr r1, _08046798 - mov r2, sb - ldrb r0, [r2] - ldrb r7, [r1] - cmp r0, r7 - beq _08046736 - ldr r2, _0804679C - ldrb r1, [r1] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x2e - bne _08046736 - adds r6, #1 -_08046736: - ldr r0, _080467A0 - ldr r4, [r0] - movs r0, #0xa0 - lsls r0, r0, #4 - ands r4, r0 - cmp r4, #0 - bne _0804681C - ldr r2, _0804679C - ldr r3, _080467A4 - ldr r1, _080467A8 - ldrb r5, [r1] - movs r0, #0x58 - mov r8, r0 - mov r0, r8 - muls r0, r5, r0 - ldrb r7, [r3] - adds r0, r0, r7 - movs r7, #0x24 - adds r7, r7, r2 - mov ip, r7 - add r0, ip - ldrb r0, [r0] - mov sb, r1 - mov sl, r2 - adds r7, r3, #0 - cmp r0, #0 - beq _0804681C - ldr r0, _080467AC - lsls r1, r5, #4 - adds r1, r1, r0 - ldrb r0, [r1, #2] - movs r2, #8 - orrs r0, r2 - strb r0, [r1, #2] - mov r1, sb - ldrb r0, [r1] - mov r2, r8 - muls r2, r0, r2 - adds r0, r2, #0 - ldrb r1, [r7] - adds r0, r0, r1 - mov r1, ip - adds r2, r0, r1 - ldrb r0, [r2] - cmp r0, r6 - ble _080467B0 - subs r0, r0, r6 - strb r0, [r2] - b _080467B2 - .align 2, 0 -_08046798: .4byte gUnknown_2023EB0 -_0804679C: .4byte gUnknown_2023D28 -_080467A0: .4byte gUnknown_2023F24 -_080467A4: .4byte gUnknown_2023E8C -_080467A8: .4byte gUnknown_2023EAF -_080467AC: .4byte gUnknown_2023FE0 -_080467B0: - strb r4, [r2] -_080467B2: - mov r2, sb - ldrb r3, [r2] - movs r4, #0x58 - adds r0, r3, #0 - muls r0, r4, r0 - mov r1, sl - adds r1, #0x50 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xe - ands r0, r1 - cmp r0, #0 - bne _0804681C - ldr r1, _08046840 - lsls r0, r3, #3 - subs r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #0x18] - lsrs r1, r1, #4 - ldr r2, _08046844 - ldrb r0, [r7] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _0804681C - ldr r0, _08046848 - strb r3, [r0] - ldrb r1, [r7] - adds r1, #9 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r2, sb - ldrb r0, [r2] - muls r0, r4, r0 - mov r2, sl - adds r2, #0x24 - adds r0, r0, r2 - ldrb r7, [r7] - adds r0, r0, r7 - str r0, [sp] - movs r0, #0 - movs r2, #0 - movs r3, #1 - bl BtlController_EmitSetMonData - mov r7, sb - ldrb r0, [r7] - bl MarkBattlerForControllerExec -_0804681C: - ldr r2, _0804684C - ldr r0, [r2] - ldr r1, _08046850 - ands r0, r1 - str r0, [r2] - ldr r1, _08046854 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] -_0804682E: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08046840: .4byte gUnknown_2023F60 -_08046844: .4byte gUnknown_82FACB4 -_08046848: .4byte gUnknown_2023D08 -_0804684C: .4byte gUnknown_2023F24 -_08046850: .4byte 0xFFFFF7FF -_08046854: .4byte gUnknown_2023EB8 - thumb_func_end atk03_ppreduce - - thumb_func_start atk04_critcalc -atk04_critcalc: @ 0x08046858 - push {r4, r5, r6, r7, lr} - ldr r1, _0804687C - ldr r0, _08046880 - ldrb r2, [r0] - movs r0, #0x58 - muls r0, r2, r0 - adds r0, r0, r1 - ldrh r0, [r0, #0x2e] - cmp r0, #0xaf - bne _08046888 - ldr r1, _08046884 - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r6, [r0, #7] - b _08046890 - .align 2, 0 -_0804687C: .4byte gUnknown_2023D28 -_08046880: .4byte gUnknown_2023EAF -_08046884: .4byte gUnknown_20240A8 -_08046888: - bl sub_080D6CF8 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_08046890: - ldr r1, _0804691C - ldr r3, _08046920 - ldrb r0, [r3] - strb r0, [r1] - ldr r4, _08046924 - ldrb r1, [r3] - movs r0, #0x58 - adds r7, r1, #0 - muls r7, r0, r7 - adds r0, r4, #0 - adds r0, #0x50 - adds r0, r7, r0 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xd - ands r0, r1 - rsbs r0, r0, #0 - asrs r5, r0, #0x1f - movs r0, #2 - ands r5, r0 - ldr r2, _08046928 - ldr r0, _0804692C - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - mov ip, r3 - cmp r1, #0x2b - bne _080468D0 - adds r5, #1 -_080468D0: - adds r0, r5, #0 - cmp r1, #0x4b - bne _080468D8 - adds r0, #1 -_080468D8: - cmp r1, #0xc8 - bne _080468DE - adds r0, #1 -_080468DE: - adds r2, r0, #0 - cmp r1, #0xd1 - bne _080468E6 - adds r2, #1 -_080468E6: - movs r1, #0 - cmp r6, #0x3f - bne _080468F6 - adds r0, r7, r4 - ldrh r0, [r0] - cmp r0, #0x71 - bne _080468F6 - movs r1, #1 -_080468F6: - lsls r5, r1, #1 - movs r3, #0 - cmp r6, #0x42 - bne _08046910 - mov r0, ip - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r4 - ldrh r0, [r0] - cmp r0, #0x53 - bne _08046910 - movs r3, #1 -_08046910: - lsls r1, r3, #1 - cmp r6, #0x29 - bne _08046930 - adds r0, r5, #1 - adds r0, r2, r0 - b _08046932 - .align 2, 0 -_0804691C: .4byte gUnknown_2023EB3 -_08046920: .4byte gUnknown_2023EAF -_08046924: .4byte gUnknown_2023D28 -_08046928: .4byte gUnknown_82ED220 -_0804692C: .4byte gUnknown_2023E8E -_08046930: - adds r0, r2, r5 -_08046932: - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r5, r0, #0 - cmp r5, #4 - bls _08046940 - movs r5, #4 -_08046940: - ldr r0, _0804699C - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r4 - adds r0, #0x20 - ldrb r4, [r0] - cmp r4, #4 - beq _080469B0 - cmp r4, #0x4b - beq _080469B0 - ldr r1, _080469A0 - mov r2, ip - ldrb r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - bne _080469B0 - ldr r0, _080469A4 - ldr r0, [r0] - movs r1, #0x84 - lsls r1, r1, #2 - ands r0, r1 - cmp r0, #0 - bne _080469B0 - bl Random - ldr r2, _080469A8 - lsls r1, r5, #1 - adds r1, r1, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrh r1, [r1] - bl __umodsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080469B0 - ldr r1, _080469AC - movs r0, #2 - b _080469B4 - .align 2, 0 -_0804699C: .4byte gUnknown_2023EB0 -_080469A0: .4byte gUnknown_2023F50 -_080469A4: .4byte gUnknown_2022C90 -_080469A8: .4byte gUnknown_82ECAAC -_080469AC: .4byte gUnknown_2023EB5 -_080469B0: - ldr r1, _080469C4 - movs r0, #1 -_080469B4: - strb r0, [r1] - ldr r1, _080469C8 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080469C4: .4byte gUnknown_2023EB5 -_080469C8: .4byte gUnknown_2023EB8 - thumb_func_end atk04_critcalc - - thumb_func_start atk05_damagecalc -atk05_damagecalc: @ 0x080469CC - push {r4, r5, r6, r7, lr} - sub sp, #0x10 - ldr r4, _08046A84 - ldr r5, _08046A88 - ldrb r0, [r5] - bl sub_080A630C - movs r1, #1 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r3, [r1] - ldr r6, _08046A8C - ldrb r0, [r6] - movs r4, #0x58 - muls r0, r4, r0 - ldr r2, _08046A90 - adds r0, r0, r2 - ldrb r1, [r5] - muls r1, r4, r1 - adds r1, r1, r2 - ldr r7, _08046A94 - ldrh r2, [r7] - ldr r4, _08046A98 - ldrh r4, [r4] - str r4, [sp] - ldr r4, _08046A9C - ldr r4, [r4] - ldrb r4, [r4, #0x13] - str r4, [sp, #4] - ldrb r4, [r6] - str r4, [sp, #8] - ldrb r4, [r5] - str r4, [sp, #0xc] - bl CalculateBaseDamage - ldr r4, _08046AA0 - ldr r1, _08046AA4 - ldrb r1, [r1] - muls r1, r0, r1 - ldr r0, _08046AA8 - ldrb r0, [r0, #0xe] - adds r3, r1, #0 - muls r3, r0, r3 - str r3, [r4] - ldr r1, _08046AAC - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #2 - ands r0, r1 - cmp r0, #0 - beq _08046A50 - ldr r2, _08046AB0 - ldrh r1, [r7] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #2] - cmp r0, #0xd - bne _08046A50 - lsls r0, r3, #1 - str r0, [r4] -_08046A50: - ldr r1, _08046AB4 - ldr r0, _08046A8C - ldrb r0, [r0] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1c - cmp r0, #0 - bge _08046A72 - ldr r4, _08046AA0 - ldr r1, [r4] - lsls r0, r1, #4 - subs r0, r0, r1 - movs r1, #0xa - bl __divsi3 - str r0, [r4] -_08046A72: - ldr r1, _08046AB8 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - add sp, #0x10 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08046A84: .4byte gUnknown_2023F32 -_08046A88: .4byte gUnknown_2023EB0 -_08046A8C: .4byte gUnknown_2023EAF -_08046A90: .4byte gUnknown_2023D28 -_08046A94: .4byte gUnknown_2023E8E -_08046A98: .4byte gUnknown_20240A4 -_08046A9C: .4byte gUnknown_2024140 -_08046AA0: .4byte gUnknown_2023E94 -_08046AA4: .4byte gUnknown_2023EB5 -_08046AA8: .4byte gUnknown_2024118 -_08046AAC: .4byte gUnknown_2023F50 -_08046AB0: .4byte gUnknown_82ED220 -_08046AB4: .4byte gUnknown_2023FE0 -_08046AB8: .4byte gUnknown_2023EB8 - thumb_func_end atk05_damagecalc - - thumb_func_start AI_CalcDmg -AI_CalcDmg: @ 0x08046ABC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x10 - adds r5, r1, #0 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r4, _08046B74 - adds r0, r5, #0 - bl sub_080A630C - movs r1, #1 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r3, [r1] - movs r1, #0x58 - adds r0, r7, #0 - muls r0, r1, r0 - ldr r2, _08046B78 - adds r0, r0, r2 - muls r1, r5, r1 - adds r1, r1, r2 - ldr r2, _08046B7C - mov r8, r2 - ldrh r2, [r2] - ldr r6, _08046B80 - ldrh r4, [r6] - str r4, [sp] - ldr r4, _08046B84 - ldr r4, [r4] - ldrb r4, [r4, #0x13] - str r4, [sp, #4] - str r7, [sp, #8] - str r5, [sp, #0xc] - bl CalculateBaseDamage - ldr r4, _08046B88 - movs r1, #0 - strh r1, [r6] - ldr r1, _08046B8C - ldrb r1, [r1] - muls r1, r0, r1 - ldr r0, _08046B90 - ldrb r0, [r0, #0xe] - adds r3, r1, #0 - muls r3, r0, r3 - str r3, [r4] - ldr r1, _08046B94 - lsls r0, r7, #2 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #2 - ands r0, r1 - cmp r0, #0 - beq _08046B4A - ldr r2, _08046B98 - mov r0, r8 - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #2] - cmp r0, #0xd - bne _08046B4A - lsls r0, r3, #1 - str r0, [r4] -_08046B4A: - ldr r0, _08046B9C - lsls r1, r7, #4 - adds r1, r1, r0 - ldrb r0, [r1] - lsls r0, r0, #0x1c - cmp r0, #0 - bge _08046B68 - ldr r4, _08046B88 - ldr r1, [r4] - lsls r0, r1, #4 - subs r0, r0, r1 - movs r1, #0xa - bl __divsi3 - str r0, [r4] -_08046B68: - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08046B74: .4byte gUnknown_2023F32 -_08046B78: .4byte gUnknown_2023D28 -_08046B7C: .4byte gUnknown_2023E8E -_08046B80: .4byte gUnknown_20240A4 -_08046B84: .4byte gUnknown_2024140 -_08046B88: .4byte gUnknown_2023E94 -_08046B8C: .4byte gUnknown_2023EB5 -_08046B90: .4byte gUnknown_2024118 -_08046B94: .4byte gUnknown_2023F50 -_08046B98: .4byte gUnknown_82ED220 -_08046B9C: .4byte gUnknown_2023FE0 - thumb_func_end AI_CalcDmg - - thumb_func_start ModulateDmgByType -ModulateDmgByType: @ 0x08046BA0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r5, _08046BD0 - ldr r0, [r5] - muls r0, r4, r0 - movs r1, #0xa - bl __divsi3 - str r0, [r5] - cmp r0, #0 - bne _08046BC0 - cmp r4, #0 - beq _08046BC0 - movs r0, #1 - str r0, [r5] -_08046BC0: - cmp r4, #5 - beq _08046BF0 - cmp r4, #5 - bgt _08046BD4 - cmp r4, #0 - beq _08046BDA - b _08046C72 - .align 2, 0 -_08046BD0: .4byte gUnknown_2023E94 -_08046BD4: - cmp r4, #0x14 - beq _08046C30 - b _08046C72 -_08046BDA: - ldr r2, _08046BEC - ldrb r0, [r2] - movs r1, #8 - orrs r0, r1 - movs r1, #0xfb - ands r0, r1 - movs r1, #0xfd - ands r0, r1 - b _08046C70 - .align 2, 0 -_08046BEC: .4byte gUnknown_2023F20 -_08046BF0: - ldr r2, _08046C20 - ldr r0, _08046C24 - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #1] - cmp r0, #0 - beq _08046C72 - ldr r2, _08046C28 - ldrb r1, [r2] - movs r0, #0x29 - ands r0, r1 - cmp r0, #0 - bne _08046C72 - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08046C2C - movs r0, #0xfd - ands r0, r1 - b _08046C70 - .align 2, 0 -_08046C20: .4byte gUnknown_82ED220 -_08046C24: .4byte gUnknown_2023E8E -_08046C28: .4byte gUnknown_2023F20 -_08046C2C: - movs r0, #4 - b _08046C6E -_08046C30: - ldr r2, _08046C60 - ldr r0, _08046C64 - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #1] - cmp r0, #0 - beq _08046C72 - ldr r2, _08046C68 - ldrb r1, [r2] - movs r0, #0x29 - ands r0, r1 - cmp r0, #0 - bne _08046C72 - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08046C6C - movs r0, #0xfb - ands r0, r1 - b _08046C70 - .align 2, 0 -_08046C60: .4byte gUnknown_82ED220 -_08046C64: .4byte gUnknown_2023E8E -_08046C68: .4byte gUnknown_2023F20 -_08046C6C: - movs r0, #2 -_08046C6E: - orrs r0, r1 -_08046C70: - strb r0, [r2] -_08046C72: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end ModulateDmgByType - - thumb_func_start atk06_typecalc -atk06_typecalc: @ 0x08046C78 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - movs r3, #0 - ldr r1, _08046CA0 - ldrh r0, [r1] - cmp r0, #0xa5 - bne _08046C8C - b _08046EA0 -_08046C8C: - ldr r0, _08046CA4 - ldr r0, [r0] - ldrb r0, [r0, #0x13] - cmp r0, #0 - beq _08046CA8 - movs r1, #0x3f - mov r8, r1 - ands r1, r0 - mov r8, r1 - b _08046CB8 - .align 2, 0 -_08046CA0: .4byte gUnknown_2023E8E -_08046CA4: .4byte gUnknown_2024140 -_08046CA8: - ldr r2, _08046D40 - ldrh r1, [r1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #2] - mov r8, r0 -_08046CB8: - ldr r2, _08046D44 - ldr r0, _08046D48 - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r1, r0, r2 - adds r0, r1, #0 - adds r0, #0x21 - ldrb r0, [r0] - adds r5, r2, #0 - cmp r0, r8 - beq _08046CDA - adds r0, r1, #0 - adds r0, #0x22 - ldrb r0, [r0] - cmp r0, r8 - bne _08046CF0 -_08046CDA: - ldr r4, _08046D4C - ldr r1, [r4] - lsls r0, r1, #4 - subs r0, r0, r1 - str r0, [r4] - movs r1, #0xa - str r3, [sp, #4] - bl __divsi3 - str r0, [r4] - ldr r3, [sp, #4] -_08046CF0: - ldr r2, _08046D50 - ldrb r1, [r2] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r5 - adds r0, #0x20 - ldrb r0, [r0] - adds r4, r2, #0 - cmp r0, #0x1a - bne _08046D68 - mov r1, r8 - cmp r1, #4 - bne _08046D68 - ldr r3, _08046D54 - strb r0, [r3] - ldr r2, _08046D58 - ldrb r0, [r2] - movs r1, #9 - orrs r0, r1 - strb r0, [r2] - ldr r1, _08046D5C - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r1 - movs r2, #0 - strh r2, [r0] - ldr r1, _08046D60 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r1 - strh r2, [r0] - ldr r0, _08046D64 - mov r1, r8 - strb r1, [r0, #6] - ldrb r0, [r4] - ldrb r1, [r3] - bl RecordAbilityBattle - b _08046E04 - .align 2, 0 -_08046D40: .4byte gUnknown_82ED220 -_08046D44: .4byte gUnknown_2023D28 -_08046D48: .4byte gUnknown_2023EAF -_08046D4C: .4byte gUnknown_2023E94 -_08046D50: .4byte gUnknown_2023EB0 -_08046D54: .4byte gUnknown_2023EAE -_08046D58: .4byte gUnknown_2023F20 -_08046D5C: .4byte gUnknown_2023EF4 -_08046D60: .4byte gUnknown_2023EFC -_08046D64: .4byte gUnknown_2023FD6 -_08046D68: - ldr r1, _08046D74 - adds r0, r3, r1 - ldrb r0, [r0] - adds r2, r1, #0 - b _08046DE4 - .align 2, 0 -_08046D74: .4byte gUnknown_82EBB38 -_08046D78: - adds r3, #3 - b _08046DE0 -_08046D7C: - ldr r5, _08046EB4 - adds r0, r3, r5 - ldrb r0, [r0] - cmp r0, r8 - bne _08046DD8 - adds r1, r3, #1 - adds r1, r1, r5 - ldr r2, _08046EB8 - ldr r7, _08046EBC - ldrb r0, [r7] - movs r6, #0x58 - muls r0, r6, r0 - adds r0, r0, r2 - adds r0, #0x21 - ldrb r4, [r1] - ldrb r0, [r0] - cmp r4, r0 - bne _08046DB2 - adds r0, r3, #2 - adds r0, r0, r5 - ldrb r0, [r0] - str r2, [sp] - str r3, [sp, #4] - bl ModulateDmgByType - ldr r3, [sp, #4] - ldr r2, [sp] -_08046DB2: - ldrb r0, [r7] - muls r0, r6, r0 - adds r0, r0, r2 - adds r1, r0, #0 - adds r1, #0x22 - ldrb r1, [r1] - cmp r4, r1 - bne _08046DD8 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, r4 - beq _08046DD8 - adds r0, r3, #2 - adds r0, r0, r5 - ldrb r0, [r0] - str r3, [sp, #4] - bl ModulateDmgByType - ldr r3, [sp, #4] -_08046DD8: - adds r3, #3 - ldr r5, _08046EB8 - ldr r4, _08046EBC - ldr r2, _08046EB4 -_08046DE0: - adds r0, r3, r2 - ldrb r0, [r0] -_08046DE4: - cmp r0, #0xff - beq _08046E04 - cmp r0, #0xfe - bne _08046D7C - ldrb r1, [r4] - movs r0, #0x58 - muls r0, r1, r0 - adds r1, r5, #0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x16 - ands r0, r1 - cmp r0, #0 - beq _08046D78 -_08046E04: - ldr r2, _08046EB8 - ldr r5, _08046EBC - ldrb r1, [r5] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - adds r0, #0x20 - ldrb r6, [r0] - cmp r6, #0x19 - bne _08046E82 - ldr r0, _08046EC0 - ldrb r0, [r0] - ldr r7, _08046EC4 - ldrh r1, [r7] - bl AttacksThisTurn - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _08046E82 - ldr r1, _08046EC8 - mov r8, r1 - ldrb r4, [r1] - ands r0, r4 - cmp r0, #0 - beq _08046E40 - movs r0, #6 - ands r0, r4 - cmp r0, #6 - bne _08046E82 -_08046E40: - ldr r2, _08046ECC - ldrh r1, [r7] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #1] - cmp r0, #0 - beq _08046E82 - ldr r3, _08046ED0 - strb r6, [r3] - movs r0, #1 - orrs r0, r4 - mov r1, r8 - strb r0, [r1] - ldr r1, _08046ED4 - ldrb r0, [r5] - lsls r0, r0, #1 - adds r0, r0, r1 - movs r2, #0 - strh r2, [r0] - ldr r1, _08046ED8 - ldrb r0, [r5] - lsls r0, r0, #1 - adds r0, r0, r1 - strh r2, [r0] - ldr r1, _08046EDC - movs r0, #3 - strb r0, [r1, #6] - ldrb r0, [r5] - ldrb r1, [r3] - bl RecordAbilityBattle -_08046E82: - ldr r0, _08046EC8 - ldrb r1, [r0] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08046EA0 - ldr r2, _08046EE0 - ldr r0, _08046EC0 - ldrb r1, [r0] - lsls r1, r1, #4 - adds r1, r1, r2 - ldrb r0, [r1, #1] - movs r2, #2 - orrs r0, r2 - strb r0, [r1, #1] -_08046EA0: - ldr r1, _08046EE4 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08046EB4: .4byte gUnknown_82EBB38 -_08046EB8: .4byte gUnknown_2023D28 -_08046EBC: .4byte gUnknown_2023EB0 -_08046EC0: .4byte gUnknown_2023EAF -_08046EC4: .4byte gUnknown_2023E8E -_08046EC8: .4byte gUnknown_2023F20 -_08046ECC: .4byte gUnknown_82ED220 -_08046ED0: .4byte gUnknown_2023EAE -_08046ED4: .4byte gUnknown_2023EF4 -_08046ED8: .4byte gUnknown_2023EFC -_08046EDC: .4byte gUnknown_2023FD6 -_08046EE0: .4byte gUnknown_2023FE0 -_08046EE4: .4byte gUnknown_2023EB8 - thumb_func_end atk06_typecalc - - thumb_func_start CheckWonderGuardAndLevitate -CheckWonderGuardAndLevitate: @ 0x08046EE8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - movs r6, #0 - movs r5, #0 - ldr r0, _08046F28 - ldrh r1, [r0] - mov sb, r0 - cmp r1, #0xa5 - bne _08046F00 - b _08047148 -_08046F00: - ldr r2, _08046F2C - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r2 - ldrb r0, [r1, #1] - cmp r0, #0 - bne _08046F12 - b _08047148 -_08046F12: - ldr r0, _08046F30 - ldr r0, [r0] - ldrb r0, [r0, #0x13] - cmp r0, #0 - beq _08046F34 - movs r1, #0x3f - mov ip, r1 - mov r2, ip - ands r2, r0 - mov ip, r2 - b _08046F38 - .align 2, 0 -_08046F28: .4byte gUnknown_2023E8E -_08046F2C: .4byte gUnknown_82ED220 -_08046F30: .4byte gUnknown_2024140 -_08046F34: - ldrb r1, [r1, #2] - mov ip, r1 -_08046F38: - ldr r2, _08046F6C - ldr r3, _08046F70 - ldrb r1, [r3] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - adds r0, #0x20 - ldrb r1, [r0] - adds r7, r2, #0 - mov r8, r3 - cmp r1, #0x1a - bne _08046F7C - mov r0, ip - cmp r0, #4 - bne _08046F7C - ldr r0, _08046F74 - strb r1, [r0] - ldr r0, _08046F78 - mov r1, ip - strb r1, [r0, #6] - ldrb r0, [r3] - movs r1, #0x1a - bl RecordAbilityBattle - b _08047148 - .align 2, 0 -_08046F6C: .4byte gUnknown_2023D28 -_08046F70: .4byte gUnknown_2023EB0 -_08046F74: .4byte gUnknown_2023EAE -_08046F78: .4byte gUnknown_2023FD6 -_08046F7C: - ldr r1, _08046F88 - adds r0, r5, r1 - ldrb r0, [r0] - adds r4, r1, #0 - b _080470CE - .align 2, 0 -_08046F88: .4byte gUnknown_82EBB38 -_08046F8C: - adds r0, r5, r4 - ldrb r0, [r0] - cmp r0, ip - beq _08046F96 - b _080470C8 -_08046F96: - adds r2, r5, #1 - adds r3, r2, r4 - mov r0, r8 - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r7 - adds r0, #0x21 - ldrb r1, [r3] - adds r3, r2, #0 - ldrb r0, [r0] - cmp r1, r0 - bne _08046FD6 - adds r0, r5, #2 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0 - bne _08046FD6 - ldr r2, _08047154 - ldrb r0, [r2] - movs r1, #8 - orrs r0, r1 - strb r0, [r2] - ldr r1, _08047158 - ldr r0, _0804715C - ldrb r2, [r0] - lsls r2, r2, #4 - adds r2, r2, r1 - ldrb r0, [r2, #1] - movs r1, #2 - orrs r0, r1 - strb r0, [r2, #1] -_08046FD6: - adds r2, r3, r4 - mov r0, r8 - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r7 - adds r1, r0, #0 - adds r1, #0x22 - ldrb r2, [r2] - ldrb r1, [r1] - cmp r2, r1 - bne _0804701C - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, r2 - beq _0804701C - adds r0, r5, #2 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0 - bne _0804701C - ldr r2, _08047154 - ldrb r0, [r2] - movs r1, #8 - orrs r0, r1 - strb r0, [r2] - ldr r1, _08047158 - ldr r0, _0804715C - ldrb r2, [r0] - lsls r2, r2, #4 - adds r2, r2, r1 - ldrb r0, [r2, #1] - movs r1, #2 - orrs r0, r1 - strb r0, [r2, #1] -_0804701C: - adds r2, r3, r4 - mov r0, r8 - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r7 - adds r0, #0x21 - ldrb r1, [r2] - ldrb r0, [r0] - cmp r1, r0 - bne _08047040 - adds r0, r5, #2 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0x14 - bne _08047040 - movs r0, #1 - orrs r6, r0 -_08047040: - adds r2, r3, r4 - mov r0, r8 - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r7 - adds r1, r0, #0 - adds r1, #0x22 - ldrb r2, [r2] - ldrb r1, [r1] - cmp r2, r1 - bne _0804706E - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, r2 - beq _0804706E - adds r0, r5, #2 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0x14 - bne _0804706E - movs r0, #1 - orrs r6, r0 -_0804706E: - adds r2, r3, r4 - mov r0, r8 - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r7 - adds r0, #0x21 - ldrb r1, [r2] - ldrb r0, [r0] - cmp r1, r0 - bne _08047096 - adds r0, r5, #2 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #5 - bne _08047096 - movs r0, #2 - orrs r6, r0 - lsls r0, r6, #0x18 - lsrs r6, r0, #0x18 -_08047096: - adds r2, r3, r4 - mov r0, r8 - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r7 - adds r1, r0, #0 - adds r1, #0x22 - ldrb r2, [r2] - ldrb r1, [r1] - cmp r2, r1 - bne _080470C8 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, r2 - beq _080470C8 - adds r0, r5, #2 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #5 - bne _080470C8 - movs r0, #2 - orrs r6, r0 - lsls r0, r6, #0x18 - lsrs r6, r0, #0x18 -_080470C8: - adds r5, #3 - adds r0, r5, r4 - ldrb r0, [r0] -_080470CE: - cmp r0, #0xff - beq _080470F2 - cmp r0, #0xfe - beq _080470D8 - b _08046F8C -_080470D8: - mov r2, r8 - ldrb r1, [r2] - movs r0, #0x58 - muls r0, r1, r0 - adds r1, r7, #0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x16 - ands r0, r1 - cmp r0, #0 - beq _080470C8 -_080470F2: - mov r0, r8 - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r7 - adds r0, #0x20 - ldrb r4, [r0] - cmp r4, #0x19 - bne _08047148 - ldr r0, _0804715C - ldrb r0, [r0] - mov r2, sb - ldrh r1, [r2] - bl AttacksThisTurn - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _08047148 - movs r0, #3 - ands r6, r0 - cmp r6, #1 - beq _08047148 - ldr r2, _08047160 - mov r0, sb - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #1] - cmp r0, #0 - beq _08047148 - ldr r0, _08047164 - strb r4, [r0] - ldr r1, _08047168 - movs r0, #3 - strb r0, [r1, #6] - mov r1, r8 - ldrb r0, [r1] - movs r1, #0x19 - bl RecordAbilityBattle -_08047148: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08047154: .4byte gUnknown_2023F20 -_08047158: .4byte gUnknown_2023FE0 -_0804715C: .4byte gUnknown_2023EAF -_08047160: .4byte gUnknown_82ED220 -_08047164: .4byte gUnknown_2023EAE -_08047168: .4byte gUnknown_2023FD6 - thumb_func_end CheckWonderGuardAndLevitate - - thumb_func_start ModulateDmgByType2 -ModulateDmgByType2: @ 0x0804716C - push {r4, r5, r6, r7, lr} - adds r6, r2, #0 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - ldr r7, _080471A0 - ldr r0, [r7] - muls r0, r4, r0 - movs r1, #0xa - bl __divsi3 - str r0, [r7] - cmp r0, #0 - bne _08047192 - cmp r4, #0 - beq _08047192 - movs r0, #1 - str r0, [r7] -_08047192: - cmp r4, #5 - beq _080471BA - cmp r4, #5 - bgt _080471A4 - cmp r4, #0 - beq _080471AA - b _0804721E - .align 2, 0 -_080471A0: .4byte gUnknown_2023E94 -_080471A4: - cmp r4, #0x14 - beq _080471EC - b _0804721E -_080471AA: - ldrb r0, [r6] - movs r1, #8 - orrs r0, r1 - movs r1, #0xfb - ands r0, r1 - movs r1, #0xfd - ands r0, r1 - b _0804721C -_080471BA: - ldr r0, _080471E4 - lsls r1, r5, #1 - adds r1, r1, r5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #1] - cmp r0, #0 - beq _0804721E - ldrb r1, [r6] - movs r0, #0x29 - ands r0, r1 - cmp r0, #0 - bne _0804721E - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080471E8 - movs r0, #0xfd - ands r0, r1 - b _0804721C - .align 2, 0 -_080471E4: .4byte gUnknown_82ED220 -_080471E8: - movs r0, #4 - b _0804721A -_080471EC: - ldr r0, _08047214 - lsls r1, r5, #1 - adds r1, r1, r5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #1] - cmp r0, #0 - beq _0804721E - ldrb r1, [r6] - movs r0, #0x29 - ands r0, r1 - cmp r0, #0 - bne _0804721E - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08047218 - movs r0, #0xfb - ands r0, r1 - b _0804721C - .align 2, 0 -_08047214: .4byte gUnknown_82ED220 -_08047218: - movs r0, #2 -_0804721A: - orrs r0, r1 -_0804721C: - strb r0, [r6] -_0804721E: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end ModulateDmgByType2 - - thumb_func_start TypeCalc -TypeCalc: @ 0x08047224 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sl, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp, #4] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sb, r2 - movs r0, #0 - mov r8, r0 - mov r0, sp - mov r1, r8 - strb r1, [r0] - mov r2, sl - cmp r2, #0xa5 - bne _08047256 - movs r0, #0 - b _080473DE -_08047256: - ldr r1, _080472C4 - mov r3, sl - lsls r2, r3, #1 - adds r0, r2, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #2] - str r0, [sp, #8] - ldr r1, _080472C8 - movs r0, #0x58 - ldr r3, [sp, #4] - muls r0, r3, r0 - adds r3, r0, r1 - adds r0, r3, #0 - adds r0, #0x21 - ldrb r0, [r0] - str r2, [sp, #0xc] - adds r5, r1, #0 - ldr r1, [sp, #8] - cmp r0, r1 - beq _0804728A - adds r0, r3, #0 - adds r0, #0x22 - ldrb r0, [r0] - cmp r0, r1 - bne _0804729C -_0804728A: - ldr r4, _080472CC - ldr r1, [r4] - lsls r0, r1, #4 - subs r0, r0, r1 - str r0, [r4] - movs r1, #0xa - bl __divsi3 - str r0, [r4] -_0804729C: - movs r0, #0x58 - mov r2, sb - muls r2, r0, r2 - adds r0, r2, #0 - adds r0, r0, r5 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x1a - bne _080472D0 - ldr r3, [sp, #8] - cmp r3, #4 - bne _080472D0 - movs r1, #9 - mov r0, sp - ldrb r0, [r0] - orrs r0, r1 - mov r1, sp - strb r0, [r1] - b _08047380 - .align 2, 0 -_080472C4: .4byte gUnknown_82ED220 -_080472C8: .4byte gUnknown_2023D28 -_080472CC: .4byte gUnknown_2023E94 -_080472D0: - ldr r1, _080472EC - mov r2, r8 - adds r0, r2, r1 - ldrb r0, [r0] - adds r2, r1, #0 - cmp r0, #0xff - beq _08047380 - cmp r0, #0xfe - bne _080472F6 - movs r0, #0x58 - mov r3, sb - muls r3, r0, r3 - adds r0, r3, #0 - b _0804736E - .align 2, 0 -_080472EC: .4byte gUnknown_82EBB38 -_080472F0: - movs r0, #3 - add r8, r0 - b _08047358 -_080472F6: - ldr r7, _080473F0 - mov r1, r8 - adds r0, r1, r7 - ldrb r0, [r0] - ldr r2, [sp, #8] - cmp r0, r2 - bne _08047350 - adds r1, #1 - adds r1, r1, r7 - ldr r2, _080473F4 - movs r0, #0x58 - mov r3, sb - muls r3, r0, r3 - adds r0, r3, #0 - adds r5, r0, r2 - adds r6, r5, #0 - adds r6, #0x21 - ldrb r4, [r1] - ldrb r0, [r6] - cmp r4, r0 - bne _08047330 - mov r0, r8 - adds r0, #2 - adds r0, r0, r7 - ldrb r0, [r0] - mov r1, sl - mov r2, sp - bl ModulateDmgByType2 -_08047330: - adds r0, r5, #0 - adds r0, #0x22 - ldrb r0, [r0] - cmp r4, r0 - bne _08047350 - ldrb r0, [r6] - cmp r0, r4 - beq _08047350 - mov r0, r8 - adds r0, #2 - adds r0, r0, r7 - ldrb r0, [r0] - mov r1, sl - mov r2, sp - bl ModulateDmgByType2 -_08047350: - movs r1, #3 - add r8, r1 - ldr r5, _080473F4 - ldr r2, _080473F0 -_08047358: - mov r3, r8 - adds r0, r3, r2 - ldrb r0, [r0] - cmp r0, #0xff - beq _08047380 - cmp r0, #0xfe - bne _080472F6 - movs r0, #0x58 - mov r1, sb - muls r1, r0, r1 - adds r0, r1, #0 -_0804736E: - adds r1, r5, #0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x16 - ands r0, r1 - cmp r0, #0 - beq _080472F0 -_08047380: - movs r0, #0x58 - mov r2, sb - muls r2, r0, r2 - adds r0, r2, #0 - adds r0, r0, r5 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x19 - bne _080473DA - mov r0, sp - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080473DA - ldr r0, [sp, #4] - mov r1, sl - bl AttacksThisTurn - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #2 - bne _080473DA - mov r0, sp - ldrb r3, [r0] - adds r0, r1, #0 - ands r0, r3 - cmp r0, #0 - beq _080473C2 - movs r0, #6 - ands r0, r3 - cmp r0, #6 - bne _080473DA -_080473C2: - ldr r0, _080473F8 - ldr r1, [sp, #0xc] - add r1, sl - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #1] - cmp r0, #0 - beq _080473DA - mov r0, sp - movs r1, #1 - orrs r1, r3 - strb r1, [r0] -_080473DA: - mov r0, sp - ldrb r0, [r0] -_080473DE: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080473F0: .4byte gUnknown_82EBB38 -_080473F4: .4byte gUnknown_2023D28 -_080473F8: .4byte gUnknown_82ED220 - thumb_func_end TypeCalc - - thumb_func_start AI_TypeCalc -AI_TypeCalc: @ 0x080473FC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #4] - movs r7, #0 - mov r0, sp - strb r7, [r0] - ldr r2, _08047438 - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #6] - mov sb, r1 - ldrb r0, [r0, #7] - mov r8, r0 - cmp r6, #0xa5 - bne _0804743C - movs r0, #0 - b _080474E0 - .align 2, 0 -_08047438: .4byte gUnknown_82F0D54 -_0804743C: - ldr r2, _08047460 - lsls r1, r6, #1 - adds r0, r1, r6 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #2] - mov sl, r0 - str r1, [sp, #8] - ldr r3, [sp, #4] - cmp r3, #0x1a - bne _08047464 - cmp r0, #4 - bne _08047464 - movs r1, #9 - mov r0, sp - strb r1, [r0] - b _080474AA - .align 2, 0 -_08047460: .4byte gUnknown_82ED220 -_08047464: - ldr r0, _080474F0 - adds r1, r7, r0 - ldrb r0, [r1] - cmp r0, #0xff - beq _080474AA - adds r4, r1, #0 -_08047470: - ldrb r0, [r4] - cmp r0, #0xfe - beq _0804749C - cmp r0, sl - bne _0804749C - ldrb r5, [r4, #1] - cmp r5, sb - bne _0804748A - ldrb r0, [r4, #2] - adds r1, r6, #0 - mov r2, sp - bl ModulateDmgByType2 -_0804748A: - cmp r5, r8 - bne _0804749C - cmp sb, r8 - beq _0804749C - ldrb r0, [r4, #2] - adds r1, r6, #0 - mov r2, sp - bl ModulateDmgByType2 -_0804749C: - adds r4, #3 - adds r7, #3 - ldr r1, _080474F0 - adds r0, r7, r1 - ldrb r0, [r0] - cmp r0, #0xff - bne _08047470 -_080474AA: - ldr r3, [sp, #4] - cmp r3, #0x19 - bne _080474DC - mov r0, sp - ldrb r2, [r0] - movs r0, #2 - ands r0, r2 - cmp r0, #0 - beq _080474C4 - movs r0, #6 - ands r0, r2 - cmp r0, #6 - bne _080474DC -_080474C4: - ldr r0, _080474F4 - ldr r3, [sp, #8] - adds r1, r3, r6 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #1] - cmp r0, #0 - beq _080474DC - mov r0, sp - movs r1, #8 - orrs r1, r2 - strb r1, [r0] -_080474DC: - mov r0, sp - ldrb r0, [r0] -_080474E0: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080474F0: .4byte gUnknown_82EBB38 -_080474F4: .4byte gUnknown_82ED220 - thumb_func_end AI_TypeCalc - - thumb_func_start Unused_ApplyRandomDmgMultiplier -Unused_ApplyRandomDmgMultiplier: @ 0x080474F8 - push {r4, lr} - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xf - ands r0, r1 - movs r1, #0x64 - subs r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r4, _08047530 - ldr r0, [r4] - cmp r0, #0 - beq _0804752A - muls r0, r1, r0 - str r0, [r4] - movs r1, #0x64 - bl __divsi3 - str r0, [r4] - cmp r0, #0 - bne _0804752A - movs r0, #1 - str r0, [r4] -_0804752A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08047530: .4byte gUnknown_2023E94 - thumb_func_end Unused_ApplyRandomDmgMultiplier - - thumb_func_start atk07_adjustnormaldamage -atk07_adjustnormaldamage: @ 0x08047534 - push {r4, r5, r6, r7, lr} - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xf - ands r0, r1 - movs r1, #0x64 - subs r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r4, _0804758C - ldr r0, [r4] - cmp r0, #0 - beq _08047566 - muls r0, r1, r0 - str r0, [r4] - movs r1, #0x64 - bl __divsi3 - str r0, [r4] - cmp r0, #0 - bne _08047566 - movs r0, #1 - str r0, [r4] -_08047566: - ldr r7, _08047590 - ldr r6, _08047594 - ldrb r2, [r6] - movs r5, #0x58 - adds r0, r2, #0 - muls r0, r5, r0 - adds r1, r0, r7 - ldrh r0, [r1, #0x2e] - cmp r0, #0xaf - bne _0804759C - ldr r1, _08047598 - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r4, [r0, #7] - ldrb r6, [r0, #0x1a] - b _080475B6 - .align 2, 0 -_0804758C: .4byte gUnknown_2023E94 -_08047590: .4byte gUnknown_2023D28 -_08047594: .4byte gUnknown_2023EB0 -_08047598: .4byte gUnknown_20240A8 -_0804759C: - ldrh r0, [r1, #0x2e] - bl sub_080D6CF8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldrb r0, [r6] - muls r0, r5, r0 - adds r0, r0, r7 - ldrh r0, [r0, #0x2e] - bl sub_080D6D1C - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_080475B6: - ldr r1, _08047678 - ldr r5, _0804767C - ldrb r0, [r5] - strb r0, [r1] - cmp r4, #0x27 - bne _080475F4 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r6 - bhs _080475F4 - ldrb r0, [r5] - movs r1, #0x27 - bl RecordItemEffectBattle - ldr r2, _08047680 - ldrb r1, [r5] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0] -_080475F4: - ldr r2, _08047684 - ldr r3, _0804767C - ldrb r4, [r3] - movs r0, #0x58 - muls r0, r4, r0 - adds r1, r2, #0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r1, [r0] - movs r0, #0x80 - lsls r0, r0, #0x11 - ands r1, r0 - adds r5, r2, #0 - cmp r1, #0 - bne _080476C4 - ldr r2, _08047688 - ldr r0, _0804768C - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #0x65 - beq _08047646 - ldr r0, _08047690 - lsls r1, r4, #4 - adds r1, r1, r0 - ldrb r0, [r1] - lsls r0, r0, #0x1e - cmp r0, #0 - blt _08047646 - ldr r0, _08047680 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1] - lsrs r0, r0, #7 - cmp r0, #0 - beq _080476C4 -_08047646: - ldrb r0, [r3] - movs r4, #0x58 - muls r0, r4, r0 - adds r0, r0, r5 - ldrh r1, [r0, #0x28] - ldr r2, _08047694 - ldr r0, [r2] - cmp r1, r0 - bgt _080476C4 - subs r0, r1, #1 - str r0, [r2] - ldr r1, _08047690 - ldrb r3, [r3] - lsls r0, r3, #4 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1e - cmp r0, #0 - bge _0804769C - ldr r0, _08047698 - ldrb r1, [r0] - movs r2, #0x40 - orrs r1, r2 - strb r1, [r0] - b _080476C4 - .align 2, 0 -_08047678: .4byte gUnknown_2023EB3 -_0804767C: .4byte gUnknown_2023EB0 -_08047680: .4byte gUnknown_2024020 -_08047684: .4byte gUnknown_2023D28 -_08047688: .4byte gUnknown_82ED220 -_0804768C: .4byte gUnknown_2023E8E -_08047690: .4byte gUnknown_2023FE0 -_08047694: .4byte gUnknown_2023E94 -_08047698: .4byte gUnknown_2023F20 -_0804769C: - ldr r0, _080476D4 - lsls r1, r3, #2 - adds r1, r1, r3 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1] - lsrs r0, r0, #7 - cmp r0, #0 - beq _080476C4 - ldr r2, _080476D8 - ldrb r0, [r2] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, _080476DC - adds r0, r3, #0 - muls r0, r4, r0 - adds r0, r0, r5 - ldrh r0, [r0, #0x2e] - strh r0, [r1] -_080476C4: - ldr r1, _080476E0 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080476D4: .4byte gUnknown_2024020 -_080476D8: .4byte gUnknown_2023F20 -_080476DC: .4byte gUnknown_2023EAC -_080476E0: .4byte gUnknown_2023EB8 - thumb_func_end atk07_adjustnormaldamage - - thumb_func_start atk08_adjustnormaldamage2 -atk08_adjustnormaldamage2: @ 0x080476E4 - push {r4, r5, r6, r7, lr} - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xf - ands r0, r1 - movs r1, #0x64 - subs r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r4, _0804773C - ldr r0, [r4] - cmp r0, #0 - beq _08047716 - muls r0, r1, r0 - str r0, [r4] - movs r1, #0x64 - bl __divsi3 - str r0, [r4] - cmp r0, #0 - bne _08047716 - movs r0, #1 - str r0, [r4] -_08047716: - ldr r7, _08047740 - ldr r6, _08047744 - ldrb r2, [r6] - movs r5, #0x58 - adds r0, r2, #0 - muls r0, r5, r0 - adds r1, r0, r7 - ldrh r0, [r1, #0x2e] - cmp r0, #0xaf - bne _0804774C - ldr r1, _08047748 - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r4, [r0, #7] - ldrb r6, [r0, #0x1a] - b _08047766 - .align 2, 0 -_0804773C: .4byte gUnknown_2023E94 -_08047740: .4byte gUnknown_2023D28 -_08047744: .4byte gUnknown_2023EB0 -_08047748: .4byte gUnknown_20240A8 -_0804774C: - ldrh r0, [r1, #0x2e] - bl sub_080D6CF8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldrb r0, [r6] - muls r0, r5, r0 - adds r0, r0, r7 - ldrh r0, [r0, #0x2e] - bl sub_080D6D1C - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_08047766: - ldr r1, _0804780C - ldr r5, _08047810 - ldrb r0, [r5] - strb r0, [r1] - cmp r4, #0x27 - bne _080477A4 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r6 - bhs _080477A4 - ldrb r0, [r5] - movs r1, #0x27 - bl RecordItemEffectBattle - ldr r2, _08047814 - ldrb r1, [r5] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0] -_080477A4: - ldr r4, _08047818 - ldr r6, _08047810 - ldrb r2, [r6] - movs r7, #0x58 - adds r3, r2, #0 - muls r3, r7, r3 - adds r0, r4, #0 - adds r0, #0x50 - adds r0, r3, r0 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - bne _08047850 - ldr r5, _0804781C - lsls r0, r2, #4 - adds r0, r0, r5 - ldrb r0, [r0] - lsls r0, r0, #0x1e - cmp r0, #0 - blt _080477E2 - ldr r0, _08047814 - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1] - lsrs r0, r0, #7 - cmp r0, #0 - beq _08047850 -_080477E2: - adds r0, r3, r4 - ldrh r1, [r0, #0x28] - ldr r2, _08047820 - ldr r0, [r2] - cmp r1, r0 - bgt _08047850 - subs r0, r1, #1 - str r0, [r2] - ldrb r3, [r6] - lsls r0, r3, #4 - adds r0, r0, r5 - ldrb r0, [r0] - lsls r0, r0, #0x1e - cmp r0, #0 - bge _08047828 - ldr r0, _08047824 - ldrb r1, [r0] - movs r2, #0x40 - orrs r1, r2 - strb r1, [r0] - b _08047850 - .align 2, 0 -_0804780C: .4byte gUnknown_2023EB3 -_08047810: .4byte gUnknown_2023EB0 -_08047814: .4byte gUnknown_2024020 -_08047818: .4byte gUnknown_2023D28 -_0804781C: .4byte gUnknown_2023FE0 -_08047820: .4byte gUnknown_2023E94 -_08047824: .4byte gUnknown_2023F20 -_08047828: - ldr r0, _08047860 - lsls r1, r3, #2 - adds r1, r1, r3 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1] - lsrs r0, r0, #7 - cmp r0, #0 - beq _08047850 - ldr r2, _08047864 - ldrb r0, [r2] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, _08047868 - adds r0, r3, #0 - muls r0, r7, r0 - adds r0, r0, r4 - ldrh r0, [r0, #0x2e] - strh r0, [r1] -_08047850: - ldr r1, _0804786C - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08047860: .4byte gUnknown_2024020 -_08047864: .4byte gUnknown_2023F20 -_08047868: .4byte gUnknown_2023EAC -_0804786C: .4byte gUnknown_2023EB8 - thumb_func_end atk08_adjustnormaldamage2 - - thumb_func_start atk09_attackanimation -atk09_attackanimation: @ 0x08047870 - push {r4, r5, r6, r7, lr} - sub sp, #0x10 - ldr r0, _080478B4 - ldr r0, [r0] - cmp r0, #0 - beq _0804787E - b _080479F6 -_0804787E: - ldr r0, _080478B8 - ldr r0, [r0] - movs r1, #0x80 - ands r0, r1 - ldr r5, _080478BC - cmp r0, #0 - beq _080478CC - ldrh r0, [r5] - cmp r0, #0x90 - beq _080478CC - cmp r0, #0xa4 - beq _080478CC - ldr r4, _080478C0 - ldr r0, [r4] - adds r0, #1 - bl BattleScriptPush - ldr r0, _080478C4 - str r0, [r4] - ldr r1, _080478C8 - ldrb r0, [r1, #0x18] - adds r0, #1 - strb r0, [r1, #0x18] - ldrb r0, [r1, #0x19] - adds r0, #1 - strb r0, [r1, #0x19] - b _080479F6 - .align 2, 0 -_080478B4: .4byte gUnknown_2023D0C -_080478B8: .4byte gUnknown_2023F24 -_080478BC: .4byte gUnknown_2023E8E -_080478C0: .4byte gUnknown_2023EB8 -_080478C4: .4byte gUnknown_8289141 -_080478C8: .4byte gUnknown_2024118 -_080478CC: - ldr r2, _08047938 - ldrh r1, [r5] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #6] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - bne _080478F2 - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _080478F2 - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080478FA -_080478F2: - ldr r0, _0804793C - ldrb r0, [r0, #0x19] - cmp r0, #0 - bne _080479C8 -_080478FA: - ldr r0, _08047940 - ldrb r1, [r0] - movs r0, #0x29 - ands r0, r1 - cmp r0, #0 - bne _080479E8 - ldr r1, _08047944 - ldr r3, _08047948 - ldrb r0, [r3] - strb r0, [r1] - ldr r2, _0804794C - ldr r0, _08047950 - ldrb r1, [r0] - movs r0, #0x58 - adds r4, r1, #0 - muls r4, r0, r4 - adds r0, r2, #0 - adds r0, #0x50 - adds r0, r4, r0 - ldr r1, [r0] - movs r0, #0x80 - lsls r0, r0, #0x11 - ands r1, r0 - adds r7, r3, #0 - mov ip, r2 - cmp r1, #0 - beq _08047958 - ldr r0, _08047954 - ldrb r6, [r0] - b _08047982 - .align 2, 0 -_08047938: .4byte gUnknown_82ED220 -_0804793C: .4byte gUnknown_2024118 -_08047940: .4byte gUnknown_2023F20 -_08047944: .4byte gUnknown_2023D08 -_08047948: .4byte gUnknown_2023EAF -_0804794C: .4byte gUnknown_2023D28 -_08047950: .4byte gUnknown_2023EB0 -_08047954: .4byte gUnknown_2023EB6 -_08047958: - ldr r3, _08047978 - ldrb r0, [r3] - cmp r0, #1 - bls _08047980 - mov r1, ip - adds r0, r4, r1 - ldrh r2, [r0, #0x28] - ldr r0, _0804797C - ldr r1, [r0] - movs r6, #1 - adds r4, r0, #0 - cmp r2, r1 - ble _08047984 - ldrb r6, [r3] - b _08047984 - .align 2, 0 -_08047978: .4byte gUnknown_2023EB6 -_0804797C: .4byte gUnknown_2023E94 -_08047980: - ldrb r6, [r3] -_08047982: - ldr r4, _080479D4 -_08047984: - ldrh r1, [r5] - ldr r5, _080479D8 - ldrb r2, [r5, #0x18] - ldr r0, _080479DC - ldrh r3, [r0] - ldr r0, [r4] - str r0, [sp] - ldrb r4, [r7] - movs r0, #0x58 - muls r0, r4, r0 - add r0, ip - adds r0, #0x2b - ldrb r0, [r0] - str r0, [sp, #4] - ldrb r4, [r7] - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - ldr r4, _080479E0 - adds r0, r0, r4 - str r0, [sp, #8] - str r6, [sp, #0xc] - movs r0, #0 - bl BtlController_EmitMoveAnimation - ldrb r0, [r5, #0x18] - adds r0, #1 - strb r0, [r5, #0x18] - ldrb r0, [r5, #0x19] - adds r0, #1 - strb r0, [r5, #0x19] - ldrb r0, [r7] - bl MarkBattlerForControllerExec -_080479C8: - ldr r1, _080479E4 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - b _080479F6 - .align 2, 0 -_080479D4: .4byte gUnknown_2023E94 -_080479D8: .4byte gUnknown_2024118 -_080479DC: .4byte gUnknown_2024184 -_080479E0: .4byte gUnknown_2023F60 -_080479E4: .4byte gUnknown_2023EB8 -_080479E8: - ldr r4, _08047A00 - ldr r0, [r4] - adds r0, #1 - bl BattleScriptPush - ldr r0, _08047A04 - str r0, [r4] -_080479F6: - add sp, #0x10 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08047A00: .4byte gUnknown_2023EB8 -_08047A04: .4byte gUnknown_8289141 - thumb_func_end atk09_attackanimation - - thumb_func_start sub_08047A08 -sub_08047A08: @ 0x08047A08 - push {lr} - ldr r0, _08047A20 - ldr r0, [r0] - cmp r0, #0 - bne _08047A1A - ldr r1, _08047A24 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] -_08047A1A: - pop {r0} - bx r0 - .align 2, 0 -_08047A20: .4byte gUnknown_2023D0C -_08047A24: .4byte gUnknown_2023EB8 - thumb_func_end sub_08047A08 - - thumb_func_start atk0B_healthbarupdate -atk0B_healthbarupdate: @ 0x08047A28 - push {r4, lr} - ldr r0, _08047A8C - ldr r0, [r0] - cmp r0, #0 - bne _08047AEA - ldr r0, _08047A90 - ldrb r1, [r0] - movs r0, #0x29 - ands r0, r1 - cmp r0, #0 - bne _08047AE2 - ldr r0, _08047A94 - ldr r0, [r0] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - ldr r2, _08047A98 - strb r0, [r2] - ldr r1, _08047A9C - ldrb r2, [r2] - movs r0, #0x58 - muls r0, r2, r0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - beq _08047AA8 - ldr r0, _08047AA0 - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #0xa] - cmp r0, #0 - beq _08047AA8 - ldr r0, _08047AA4 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08047AA8 - movs r0, #0x80 - adds r1, r2, #0 - bl PrepareStringBattle - b _08047AE2 - .align 2, 0 -_08047A8C: .4byte gUnknown_2023D0C -_08047A90: .4byte gUnknown_2023F20 -_08047A94: .4byte gUnknown_2023EB8 -_08047A98: .4byte gUnknown_2023D08 -_08047A9C: .4byte gUnknown_2023D28 -_08047AA0: .4byte gUnknown_2023F60 -_08047AA4: .4byte gUnknown_2023F24 -_08047AA8: - ldr r0, _08047AF0 - ldr r0, [r0] - ldr r1, _08047AF4 - cmp r0, r1 - bgt _08047AB6 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 -_08047AB6: - movs r0, #0 - bl BtlController_EmitHealthBarUpdate - ldr r4, _08047AF8 - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08047AE2 - ldr r0, _08047AF0 - ldr r0, [r0] - cmp r0, #0 - ble _08047AE2 - ldr r0, _08047AFC - ldrb r1, [r0, #5] - movs r2, #1 - orrs r1, r2 - strb r1, [r0, #5] -_08047AE2: - ldr r1, _08047B00 - ldr r0, [r1] - adds r0, #2 - str r0, [r1] -_08047AEA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08047AF0: .4byte gUnknown_2023E94 -_08047AF4: .4byte 0x00002710 -_08047AF8: .4byte gUnknown_2023D08 -_08047AFC: .4byte gUnknown_3005A70 -_08047B00: .4byte gUnknown_2023EB8 - thumb_func_end atk0B_healthbarupdate - - thumb_func_start atk0C_datahpupdate -atk0C_datahpupdate: @ 0x08047B04 - push {r4, r5, r6, r7, lr} - sub sp, #4 - ldr r0, _08047B2C - ldr r0, [r0] - cmp r0, #0 - beq _08047B12 - b _08047EE2 -_08047B12: - ldr r0, _08047B30 - ldr r0, [r0] - ldrb r1, [r0, #0x13] - cmp r1, #0 - beq _08047B34 - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08047B34 - movs r6, #0x3f - ands r6, r1 - b _08047B44 - .align 2, 0 -_08047B2C: .4byte gUnknown_2023D0C -_08047B30: .4byte gUnknown_2024140 -_08047B34: - ldr r2, _08047BD0 - ldr r0, _08047BD4 - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r6, [r0, #2] -_08047B44: - ldr r0, _08047BD8 - ldrb r1, [r0] - movs r0, #0x29 - ands r0, r1 - cmp r0, #0 - beq _08047B52 - b _08047EB4 -_08047B52: - ldr r0, _08047BDC - ldr r0, [r0] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - ldr r7, _08047BE0 - strb r0, [r7] - ldr r1, _08047BE4 - ldrb r2, [r7] - movs r0, #0x58 - muls r0, r2, r0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - beq _08047C68 - ldr r0, _08047BE8 - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r4, r1, r0 - ldrb r1, [r4, #0xa] - mov ip, r0 - cmp r1, #0 - beq _08047C68 - ldr r0, _08047BEC - ldr r3, [r0] - movs r0, #0x80 - lsls r0, r0, #1 - ands r3, r0 - cmp r3, #0 - bne _08047C68 - adds r5, r1, #0 - ldr r6, _08047BF0 - ldr r4, [r6] - cmp r5, r4 - blt _08047BFC - ldr r0, _08047BF4 - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r0, #4 - adds r1, r1, r0 - ldr r0, [r1] - cmp r0, #0 - bne _08047BB6 - str r4, [r1] -_08047BB6: - ldrb r0, [r7] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - add r1, ip - ldr r2, [r6] - ldrb r0, [r1, #0xa] - subs r0, r0, r2 - strb r0, [r1, #0xa] - ldr r1, _08047BF8 - ldr r0, [r6] - str r0, [r1] - b _08047C2C - .align 2, 0 -_08047BD0: .4byte gUnknown_82ED220 -_08047BD4: .4byte gUnknown_2023E8E -_08047BD8: .4byte gUnknown_2023F20 -_08047BDC: .4byte gUnknown_2023EB8 -_08047BE0: .4byte gUnknown_2023D08 -_08047BE4: .4byte gUnknown_2023D28 -_08047BE8: .4byte gUnknown_2023F60 -_08047BEC: .4byte gUnknown_2023F24 -_08047BF0: .4byte gUnknown_2023E94 -_08047BF4: .4byte gUnknown_2024020 -_08047BF8: .4byte gUnknown_2023E98 -_08047BFC: - ldr r0, _08047C54 - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r0, #4 - adds r1, r1, r0 - ldr r0, [r1] - cmp r0, #0 - bne _08047C10 - str r5, [r1] -_08047C10: - ldr r2, _08047C58 - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - add r0, ip - ldrb r0, [r0, #0xa] - str r0, [r2] - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - add r0, ip - strb r3, [r0, #0xa] -_08047C2C: - ldr r0, _08047C5C - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - add r0, ip - ldrb r0, [r0, #0xa] - cmp r0, #0 - beq _08047C40 - b _08047EDA -_08047C40: - ldr r4, _08047C60 - ldr r0, [r4] - adds r0, #2 - str r0, [r4] - bl BattleScriptPushCursor - ldr r0, _08047C64 - str r0, [r4] - b _08047EE2 - .align 2, 0 -_08047C54: .4byte gUnknown_2024020 -_08047C58: .4byte gUnknown_2023E98 -_08047C5C: .4byte gUnknown_2023D08 -_08047C60: .4byte gUnknown_2023EB8 -_08047C64: .4byte gUnknown_8289C83 -_08047C68: - ldr r0, _08047CA8 - ldr r2, [r0] - ldr r1, _08047CAC - ands r2, r1 - str r2, [r0] - ldr r1, _08047CB0 - ldr r5, [r1] - mov ip, r0 - adds r7, r1, #0 - cmp r5, #0 - bge _08047CBC - ldr r4, _08047CB4 - ldr r2, _08047CB8 - ldrb r0, [r2] - movs r3, #0x58 - adds r1, r0, #0 - muls r1, r3, r1 - adds r1, r1, r4 - ldrh r0, [r1, #0x28] - subs r0, r0, r5 - strh r0, [r1, #0x28] - ldrb r0, [r2] - muls r0, r3, r0 - adds r1, r0, r4 - ldrh r3, [r1, #0x2c] - ldrh r0, [r1, #0x28] - adds r5, r2, #0 - cmp r0, r3 - bhi _08047CA4 - b _08047E7A -_08047CA4: - strh r3, [r1, #0x28] - b _08047E7A - .align 2, 0 -_08047CA8: .4byte gUnknown_2023F24 -_08047CAC: .4byte 0xFFFFFEFF -_08047CB0: .4byte gUnknown_2023E94 -_08047CB4: .4byte gUnknown_2023D28 -_08047CB8: .4byte gUnknown_2023D08 -_08047CBC: - movs r0, #0x20 - ands r0, r2 - cmp r0, #0 - beq _08047CD8 - movs r0, #0x21 - rsbs r0, r0, #0 - ands r2, r0 - mov r0, ip - str r2, [r0] - ldr r5, _08047CD4 - b _08047D20 - .align 2, 0 -_08047CD4: .4byte gUnknown_2023D08 -_08047CD8: - ldr r0, _08047D00 - ldr r2, _08047D04 - ldrb r1, [r2] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - adds r0, r0, r5 - str r0, [r1] - ldr r0, _08047D08 - ldr r0, [r0] - ldrb r0, [r0, #1] - adds r5, r2, #0 - cmp r0, #0 - bne _08047D14 - ldr r1, _08047D0C - ldrb r0, [r5] - adds r0, r0, r1 - ldr r1, _08047D10 - b _08047D1C - .align 2, 0 -_08047D00: .4byte gUnknown_2023E9C -_08047D04: .4byte gUnknown_2023D08 -_08047D08: .4byte gUnknown_2023EB8 -_08047D0C: .4byte gUnknown_2023F2C -_08047D10: .4byte gUnknown_2023EAF -_08047D14: - ldr r1, _08047D40 - ldrb r0, [r5] - adds r0, r0, r1 - ldr r1, _08047D44 -_08047D1C: - ldrb r1, [r1] - strb r1, [r0] -_08047D20: - ldr r4, _08047D48 - ldrb r0, [r5] - movs r3, #0x58 - muls r0, r3, r0 - adds r2, r0, r4 - ldrh r0, [r2, #0x28] - ldr r1, [r7] - cmp r0, r1 - ble _08047D50 - subs r0, r0, r1 - strh r0, [r2, #0x28] - ldr r0, _08047D4C - str r1, [r0] - adds r7, r0, #0 - b _08047D60 - .align 2, 0 -_08047D40: .4byte gUnknown_2023F2C -_08047D44: .4byte gUnknown_2023EB0 -_08047D48: .4byte gUnknown_2023D28 -_08047D4C: .4byte gUnknown_2023E98 -_08047D50: - ldr r2, _08047DD4 - str r0, [r2] - ldrb r0, [r5] - muls r0, r3, r0 - adds r0, r0, r4 - movs r1, #0 - strh r1, [r0, #0x28] - adds r7, r2, #0 -_08047D60: - ldr r2, _08047DD8 - ldrb r1, [r5] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r2, #4 - adds r3, r0, r1 - ldr r0, [r3] - adds r4, r2, #0 - cmp r0, #0 - bne _08047D88 - mov r1, ip - ldr r0, [r1] - movs r1, #0x80 - lsls r1, r1, #0xd - ands r0, r1 - cmp r0, #0 - bne _08047D88 - ldr r0, [r7] - str r0, [r3] -_08047D88: - cmp r6, #8 - bhi _08047E10 - mov r1, ip - ldr r0, [r1] - movs r1, #0x80 - lsls r1, r1, #0xd - ands r0, r1 - cmp r0, #0 - bne _08047E0C - ldr r0, _08047DDC - ldrh r0, [r0] - cmp r0, #0xdc - beq _08047E0C - ldr r3, _08047DE0 - ldrb r0, [r5] - lsls r0, r0, #4 - adds r1, r3, #4 - adds r0, r0, r1 - ldr r2, [r7] - str r2, [r0] - ldrb r1, [r5] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #8 - adds r0, r0, r1 - str r2, [r0] - ldr r0, _08047DE4 - ldr r0, [r0] - ldrb r0, [r0, #1] - cmp r0, #0 - bne _08047DEC - ldrb r0, [r5] - lsls r0, r0, #4 - adds r0, r0, r3 - ldr r2, _08047DE8 - b _08047DF4 - .align 2, 0 -_08047DD4: .4byte gUnknown_2023E98 -_08047DD8: .4byte gUnknown_2024020 -_08047DDC: .4byte gUnknown_2023E8E -_08047DE0: .4byte gUnknown_2023FE0 -_08047DE4: .4byte gUnknown_2023EB8 -_08047DE8: .4byte gUnknown_2023EAF -_08047DEC: - ldrb r0, [r5] - lsls r0, r0, #4 - adds r0, r0, r3 - ldr r2, _08047E08 -_08047DF4: - ldrb r1, [r2] - strb r1, [r0, #0xc] - ldrb r1, [r5] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r1, [r2] - strb r1, [r0, #0x10] - b _08047E7A - .align 2, 0 -_08047E08: .4byte gUnknown_2023EB0 -_08047E0C: - cmp r6, #8 - bls _08047E7A -_08047E10: - mov r1, ip - ldr r0, [r1] - movs r1, #0x80 - lsls r1, r1, #0xd - ands r0, r1 - cmp r0, #0 - bne _08047E7A - ldr r3, _08047E54 - ldrb r0, [r5] - lsls r0, r0, #4 - adds r1, r3, #0 - adds r1, #8 - adds r0, r0, r1 - ldr r2, [r7] - str r2, [r0] - ldrb r1, [r5] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #0xc - adds r0, r0, r1 - str r2, [r0] - ldr r0, _08047E58 - ldr r0, [r0] - ldrb r0, [r0, #1] - cmp r0, #0 - bne _08047E60 - ldrb r0, [r5] - lsls r0, r0, #4 - adds r0, r0, r3 - ldr r2, _08047E5C - b _08047E68 - .align 2, 0 -_08047E54: .4byte gUnknown_2023FE0 -_08047E58: .4byte gUnknown_2023EB8 -_08047E5C: .4byte gUnknown_2023EAF -_08047E60: - ldrb r0, [r5] - lsls r0, r0, #4 - adds r0, r0, r3 - ldr r2, _08047EA8 -_08047E68: - ldrb r1, [r2] - strb r1, [r0, #0xd] - ldrb r1, [r5] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r1, [r2] - strb r1, [r0, #0x11] -_08047E7A: - mov r1, ip - ldr r0, [r1] - ldr r1, _08047EAC - ands r0, r1 - mov r1, ip - str r0, [r1] - ldrb r1, [r5] - movs r0, #0x58 - muls r0, r1, r0 - ldr r1, _08047EB0 - adds r0, r0, r1 - str r0, [sp] - movs r0, #0 - movs r1, #0x2a - movs r2, #0 - movs r3, #2 - bl BtlController_EmitSetMonData - ldrb r0, [r5] - bl MarkBattlerForControllerExec - b _08047EDA - .align 2, 0 -_08047EA8: .4byte gUnknown_2023EB0 -_08047EAC: .4byte 0xFFEFFFFF -_08047EB0: .4byte gUnknown_2023D50 -_08047EB4: - ldr r0, _08047EEC - ldr r0, [r0] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - ldr r1, _08047EF0 - strb r0, [r1] - ldr r2, _08047EF4 - ldrb r1, [r1] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #4 - adds r1, r0, r2 - ldr r0, [r1] - cmp r0, #0 - bne _08047EDA - ldr r0, _08047EF8 - str r0, [r1] -_08047EDA: - ldr r1, _08047EEC - ldr r0, [r1] - adds r0, #2 - str r0, [r1] -_08047EE2: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08047EEC: .4byte gUnknown_2023EB8 -_08047EF0: .4byte gUnknown_2023D08 -_08047EF4: .4byte gUnknown_2024020 -_08047EF8: .4byte 0x0000FFFF - thumb_func_end atk0C_datahpupdate - - thumb_func_start atk0D_critmessage -atk0D_critmessage: @ 0x08047EFC - push {lr} - ldr r0, _08047F38 - ldr r0, [r0] - cmp r0, #0 - bne _08047F32 - ldr r0, _08047F3C - ldrb r0, [r0] - cmp r0, #2 - bne _08047F2A - ldr r0, _08047F40 - ldrb r1, [r0] - movs r0, #0x29 - ands r0, r1 - cmp r0, #0 - bne _08047F2A - ldr r0, _08047F44 - ldrb r1, [r0] - movs r0, #0xd9 - bl PrepareStringBattle - ldr r1, _08047F48 - movs r0, #1 - strb r0, [r1, #7] -_08047F2A: - ldr r1, _08047F4C - ldr r0, [r1] - adds r0, #1 - str r0, [r1] -_08047F32: - pop {r0} - bx r0 - .align 2, 0 -_08047F38: .4byte gUnknown_2023D0C -_08047F3C: .4byte gUnknown_2023EB5 -_08047F40: .4byte gUnknown_2023F20 -_08047F44: .4byte gUnknown_2023EAF -_08047F48: .4byte gUnknown_2023FD6 -_08047F4C: .4byte gUnknown_2023EB8 - thumb_func_end atk0D_critmessage - - thumb_func_start atk0E_effectivenesssound -atk0E_effectivenesssound: @ 0x08047F50 - push {r4, lr} - ldr r0, _08047F88 - ldr r0, [r0] - cmp r0, #0 - bne _08048010 - ldr r4, _08047F8C - ldr r0, _08047F90 - ldrb r0, [r0] - strb r0, [r4] - ldr r1, _08047F94 - ldrb r2, [r1] - movs r0, #1 - ands r0, r2 - cmp r0, #0 - bne _08048008 - movs r0, #0xfe - ands r0, r2 - cmp r0, #0x10 - beq _08047FC2 - cmp r0, #0x10 - bgt _08047F9E - cmp r0, #4 - beq _08047FB2 - cmp r0, #4 - bgt _08047F98 - cmp r0, #2 - beq _08047FAC - b _08047FC2 - .align 2, 0 -_08047F88: .4byte gUnknown_2023D0C -_08047F8C: .4byte gUnknown_2023D08 -_08047F90: .4byte gUnknown_2023EB0 -_08047F94: .4byte gUnknown_2023F20 -_08047F98: - cmp r0, #8 - beq _08048008 - b _08047FC2 -_08047F9E: - cmp r0, #0x40 - beq _08047FC2 - cmp r0, #0x40 - bgt _08047FC2 - cmp r0, #0x20 - beq _08048008 - b _08047FC2 -_08047FAC: - movs r0, #0 - movs r1, #0xe - b _08047FB6 -_08047FB2: - movs r0, #0 - movs r1, #0xc -_08047FB6: - bl BtlController_EmitPlaySE - ldrb r0, [r4] - bl MarkBattlerForControllerExec - b _08048008 -_08047FC2: - ldrb r1, [r1] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08047FD2 - movs r0, #0 - movs r1, #0xe - b _08047FDE -_08047FD2: - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08047FF0 - movs r0, #0 - movs r1, #0xc -_08047FDE: - bl BtlController_EmitPlaySE - ldr r0, _08047FEC - ldrb r0, [r0] - bl MarkBattlerForControllerExec - b _08048008 - .align 2, 0 -_08047FEC: .4byte gUnknown_2023D08 -_08047FF0: - movs r0, #0x28 - ands r0, r1 - cmp r0, #0 - bne _08048008 - movs r0, #0 - movs r1, #0xd - bl BtlController_EmitPlaySE - ldr r0, _08048018 - ldrb r0, [r0] - bl MarkBattlerForControllerExec -_08048008: - ldr r1, _0804801C - ldr r0, [r1] - adds r0, #1 - str r0, [r1] -_08048010: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08048018: .4byte gUnknown_2023D08 -_0804801C: .4byte gUnknown_2023EB8 - thumb_func_end atk0E_effectivenesssound - - thumb_func_start atk0F_resultmessage -atk0F_resultmessage: @ 0x08048020 - push {r4, r5, r6, r7, lr} - movs r3, #0 - ldr r0, _0804805C - ldr r0, [r0] - cmp r0, #0 - beq _0804802E - b _080481C0 -_0804802E: - ldr r1, _08048060 - ldrb r2, [r1] - movs r4, #1 - adds r0, r4, #0 - ands r0, r2 - adds r6, r1, #0 - ldr r7, _08048064 - cmp r0, #0 - beq _0804806C - movs r0, #8 - ands r0, r2 - cmp r0, #0 - beq _0804804E - ldrb r0, [r7, #6] - cmp r0, #2 - bls _0804806C -_0804804E: - ldr r1, _08048068 - ldrb r0, [r7, #6] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r3, [r0] - strb r4, [r7, #7] - b _080481AA - .align 2, 0 -_0804805C: .4byte gUnknown_2023D0C -_08048060: .4byte gUnknown_2023F20 -_08048064: .4byte gUnknown_2023FD6 -_08048068: .4byte gUnknown_85AB9A0 -_0804806C: - movs r0, #1 - strb r0, [r7, #7] - ldrb r5, [r6] - movs r0, #0xfe - ands r0, r5 - cmp r0, #0x10 - beq _080480B0 - cmp r0, #0x10 - bgt _08048092 - cmp r0, #4 - beq _080480AC - cmp r0, #4 - bgt _0804808C - cmp r0, #2 - beq _080480A8 - b _080480F8 -_0804808C: - cmp r0, #8 - beq _08048104 - b _080480F8 -_08048092: - cmp r0, #0x40 - beq _080480B4 - cmp r0, #0x40 - bgt _080480A2 - cmp r0, #0x20 - bne _080480A0 - b _080481A4 -_080480A0: - b _080480F8 -_080480A2: - cmp r0, #0x80 - beq _080480B8 - b _080480F8 -_080480A8: - movs r3, #0xde - b _080481AE -_080480AC: - movs r3, #0xdd - b _080481AE -_080480B0: - movs r3, #0xda - b _080481AE -_080480B4: - movs r3, #0x99 - b _080481AE -_080480B8: - ldr r4, _080480E0 - ldr r2, _080480E4 - ldr r3, _080480E8 - ldrb r1, [r3] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - ldrh r0, [r0, #0x2e] - strh r0, [r4] - ldr r1, _080480EC - ldrb r0, [r3] - strb r0, [r1] - movs r0, #0x3f - ands r0, r5 - strb r0, [r6] - bl BattleScriptPushCursor - ldr r1, _080480F0 - ldr r0, _080480F4 - b _080481BE - .align 2, 0 -_080480E0: .4byte gUnknown_2023EAC -_080480E4: .4byte gUnknown_2023D28 -_080480E8: .4byte gUnknown_2023EB0 -_080480EC: .4byte gUnknown_2023EB3 -_080480F0: .4byte gUnknown_2023EB8 -_080480F4: .4byte gUnknown_8289D9E -_080480F8: - adds r2, r6, #0 - ldrb r5, [r2] - movs r0, #8 - ands r0, r5 - cmp r0, #0 - beq _08048108 -_08048104: - movs r3, #0x1b - b _080481AE -_08048108: - movs r0, #0x10 - ands r0, r5 - cmp r0, #0 - beq _08048130 - movs r0, #0xef - ands r0, r5 - movs r1, #0xfd - ands r0, r1 - movs r1, #0xfb - ands r0, r1 - strb r0, [r2] - bl BattleScriptPushCursor - ldr r1, _08048128 - ldr r0, _0804812C - b _080481BE - .align 2, 0 -_08048128: .4byte gUnknown_2023EB8 -_0804812C: .4byte gUnknown_8289756 -_08048130: - movs r0, #0x40 - ands r0, r5 - cmp r0, #0 - beq _08048150 - movs r0, #0x3f - ands r0, r5 - strb r0, [r2] - bl BattleScriptPushCursor - ldr r1, _08048148 - ldr r0, _0804814C - b _080481BE - .align 2, 0 -_08048148: .4byte gUnknown_2023EB8 -_0804814C: .4byte gUnknown_828974F -_08048150: - movs r0, #0x80 - ands r0, r5 - cmp r0, #0 - beq _08048198 - ldr r4, _08048180 - ldr r2, _08048184 - ldr r3, _08048188 - ldrb r1, [r3] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - ldrh r0, [r0, #0x2e] - strh r0, [r4] - ldr r1, _0804818C - ldrb r0, [r3] - strb r0, [r1] - movs r0, #0x3f - ands r0, r5 - strb r0, [r6] - bl BattleScriptPushCursor - ldr r1, _08048190 - ldr r0, _08048194 - b _080481BE - .align 2, 0 -_08048180: .4byte gUnknown_2023EAC -_08048184: .4byte gUnknown_2023D28 -_08048188: .4byte gUnknown_2023EB0 -_0804818C: .4byte gUnknown_2023EB3 -_08048190: .4byte gUnknown_2023EB8 -_08048194: .4byte gUnknown_8289D9E -_08048198: - movs r0, #0x20 - ands r0, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _080481A8 -_080481A4: - movs r3, #0xe5 - b _080481AE -_080481A8: - strb r0, [r7, #7] -_080481AA: - cmp r3, #0 - beq _080481B8 -_080481AE: - adds r0, r3, #0 - ldr r1, _080481C8 - ldrb r1, [r1] - bl PrepareStringBattle -_080481B8: - ldr r1, _080481CC - ldr r0, [r1] - adds r0, #1 -_080481BE: - str r0, [r1] -_080481C0: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080481C8: .4byte gUnknown_2023EAF -_080481CC: .4byte gUnknown_2023EB8 - thumb_func_end atk0F_resultmessage - - thumb_func_start atk10_printstring -atk10_printstring: @ 0x080481D0 - push {r4, lr} - ldr r0, _08048200 - ldr r0, [r0] - cmp r0, #0 - bne _080481FA - ldr r4, _08048204 - ldr r1, [r4] - ldrb r0, [r1, #1] - ldrb r1, [r1, #2] - lsls r1, r1, #8 - orrs r0, r1 - ldr r1, _08048208 - ldrb r1, [r1] - bl PrepareStringBattle - ldr r0, [r4] - adds r0, #3 - str r0, [r4] - ldr r1, _0804820C - movs r0, #1 - strb r0, [r1, #7] -_080481FA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08048200: .4byte gUnknown_2023D0C -_08048204: .4byte gUnknown_2023EB8 -_08048208: .4byte gUnknown_2023EAF -_0804820C: .4byte gUnknown_2023FD6 - thumb_func_end atk10_printstring - - thumb_func_start atk11_printselectionstring -atk11_printselectionstring: @ 0x08048210 - push {r4, r5, lr} - ldr r5, _08048244 - ldr r0, _08048248 - ldrb r0, [r0] - strb r0, [r5] - ldr r4, _0804824C - ldr r0, [r4] - ldrb r1, [r0, #1] - ldrb r0, [r0, #2] - lsls r0, r0, #8 - orrs r1, r0 - movs r0, #0 - bl sub_08033B74 - ldrb r0, [r5] - bl MarkBattlerForControllerExec - ldr r0, [r4] - adds r0, #3 - str r0, [r4] - ldr r1, _08048250 - movs r0, #1 - strb r0, [r1, #7] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08048244: .4byte gUnknown_2023D08 -_08048248: .4byte gUnknown_2023EAF -_0804824C: .4byte gUnknown_2023EB8 -_08048250: .4byte gUnknown_2023FD6 - thumb_func_end atk11_printselectionstring - - thumb_func_start atk12_waitmessage -atk12_waitmessage: @ 0x08048254 - push {r4, r5, r6, lr} - ldr r0, _08048270 - ldr r4, [r0] - cmp r4, #0 - bne _080482A2 - ldr r6, _08048274 - ldrb r0, [r6, #7] - cmp r0, #0 - bne _0804827C - ldr r1, _08048278 - ldr r0, [r1] - adds r0, #3 - str r0, [r1] - b _080482A2 - .align 2, 0 -_08048270: .4byte gUnknown_2023D0C -_08048274: .4byte gUnknown_2023FD6 -_08048278: .4byte gUnknown_2023EB8 -_0804827C: - ldr r5, _080482A8 - ldr r2, [r5] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldr r3, _080482AC - ldrh r0, [r3] - adds r0, #1 - strh r0, [r3] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r1 - blo _080482A2 - movs r1, #0 - strh r4, [r3] - adds r0, r2, #3 - str r0, [r5] - strb r1, [r6, #7] -_080482A2: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080482A8: .4byte gUnknown_2023EB8 -_080482AC: .4byte gUnknown_2023FD0 - thumb_func_end atk12_waitmessage - - thumb_func_start atk13_printfromtable -atk13_printfromtable: @ 0x080482B0 - push {r4, r5, lr} - ldr r0, _080482F4 - ldr r0, [r0] - cmp r0, #0 - bne _080482EE - ldr r4, _080482F8 - ldr r2, [r4] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - ldr r5, _080482FC - ldrb r0, [r5, #5] - lsls r0, r0, #1 - adds r1, r1, r0 - ldrh r0, [r1] - ldr r1, _08048300 - ldrb r1, [r1] - bl PrepareStringBattle - ldr r0, [r4] - adds r0, #5 - str r0, [r4] - movs r0, #1 - strb r0, [r5, #7] -_080482EE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080482F4: .4byte gUnknown_2023D0C -_080482F8: .4byte gUnknown_2023EB8 -_080482FC: .4byte gUnknown_2023FD6 -_08048300: .4byte gUnknown_2023EAF - thumb_func_end atk13_printfromtable - - thumb_func_start atk14_printselectionstringfromtable -atk14_printselectionstringfromtable: @ 0x08048304 - push {r4, r5, r6, lr} - ldr r0, _08048354 - ldr r0, [r0] - cmp r0, #0 - bne _0804834E - ldr r5, _08048358 - ldr r2, [r5] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - ldr r6, _0804835C - ldrb r0, [r6, #5] - lsls r0, r0, #1 - adds r1, r1, r0 - ldr r4, _08048360 - ldr r0, _08048364 - ldrb r0, [r0] - strb r0, [r4] - ldrh r1, [r1] - movs r0, #0 - bl sub_08033B74 - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldr r0, [r5] - adds r0, #5 - str r0, [r5] - movs r0, #1 - strb r0, [r6, #7] -_0804834E: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08048354: .4byte gUnknown_2023D0C -_08048358: .4byte gUnknown_2023EB8 -_0804835C: .4byte gUnknown_2023FD6 -_08048360: .4byte gUnknown_2023D08 -_08048364: .4byte gUnknown_2023EAF - thumb_func_end atk14_printselectionstringfromtable - - thumb_func_start GetBattlerTurnOrderNum -GetBattlerTurnOrderNum: @ 0x08048368 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - movs r1, #0 - ldr r0, _08048398 - ldrb r3, [r0] - cmp r1, r3 - bge _0804838E - ldr r4, _0804839C - ldrb r0, [r4] - cmp r0, r2 - beq _0804838E -_08048380: - adds r1, #1 - cmp r1, r3 - bge _0804838E - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, r2 - bne _08048380 -_0804838E: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08048398: .4byte gUnknown_2023D10 -_0804839C: .4byte gUnknown_2023D22 - thumb_func_end GetBattlerTurnOrderNum - - thumb_func_start SetMoveEffect -SetMoveEffect: @ 0x080483A0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - movs r0, #0 - mov sl, r0 - movs r7, #0 - movs r1, #1 - str r1, [sp, #4] - ldr r1, _080483E4 - ldrb r3, [r1, #3] - movs r0, #0x40 - ands r0, r3 - cmp r0, #0 - beq _080483F8 - ldr r2, _080483E8 - ldr r0, _080483EC - ldrb r0, [r0] - strb r0, [r2] - movs r0, #0xbf - ands r0, r3 - adds r3, r1, #0 - strb r0, [r3, #3] - movs r7, #0x40 - ldr r1, _080483F0 - ldr r0, _080483F4 - b _08048404 - .align 2, 0 -_080483E4: .4byte gUnknown_2023FD6 -_080483E8: .4byte gUnknown_2023EB2 -_080483EC: .4byte gUnknown_2023EAF -_080483F0: .4byte gUnknown_2024118 -_080483F4: .4byte gUnknown_2023EB0 -_080483F8: - ldr r2, _08048448 - ldr r0, _0804844C - ldrb r0, [r0] - strb r0, [r2] - ldr r1, _08048450 - ldr r0, _08048454 -_08048404: - ldrb r0, [r0] - strb r0, [r1, #0x17] - mov sb, r2 - ldr r2, _08048458 - mov r4, sb - ldrb r1, [r4] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x13 - bne _08048468 - ldr r0, _0804845C - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #6 - ands r0, r1 - cmp r0, #0 - bne _08048468 - cmp r5, #0 - bne _08048468 - ldr r1, _08048460 - ldrb r0, [r1, #3] - cmp r0, #9 - bhi _08048468 - ldr r1, _08048464 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - ldr r2, _08048460 - strb r5, [r2, #3] - bl _080495F8 - .align 2, 0 -_08048448: .4byte gUnknown_2023EB2 -_0804844C: .4byte gUnknown_2023EB0 -_08048450: .4byte gUnknown_2024118 -_08048454: .4byte gUnknown_2023EAF -_08048458: .4byte gUnknown_2023D28 -_0804845C: .4byte gUnknown_2023F24 -_08048460: .4byte gUnknown_2023FD6 -_08048464: .4byte gUnknown_2023EB8 -_08048468: - mov r3, sb - ldrb r0, [r3] - bl sub_080A630C - ldr r2, _080484B0 - movs r1, #1 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r1, [r1] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080484C0 - ldr r0, _080484B4 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #6 - ands r0, r1 - cmp r0, #0 - bne _080484C0 - cmp r5, #0 - bne _080484C0 - ldr r0, _080484B8 - ldrb r1, [r0, #3] - cmp r1, #7 - bhi _080484C0 - ldr r1, _080484BC - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - ldr r4, _080484B8 - strb r5, [r4, #3] - bl _080495F8 - .align 2, 0 -_080484B0: .4byte gUnknown_2023F32 -_080484B4: .4byte gUnknown_2023F24 -_080484B8: .4byte gUnknown_2023FD6 -_080484BC: .4byte gUnknown_2023EB8 -_080484C0: - ldr r3, _080484F4 - ldr r2, _080484F8 - ldrb r1, [r2] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r3 - ldrh r4, [r0, #0x28] - mov sb, r2 - mov r8, r3 - cmp r4, #0 - bne _08048504 - ldr r1, _080484FC - ldrb r0, [r1, #3] - cmp r0, #0xb - beq _08048504 - cmp r0, #0x1f - beq _08048504 - ldr r1, _08048500 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - ldr r2, _080484FC - strb r4, [r2, #3] - bl _080495F8 - .align 2, 0 -_080484F4: .4byte gUnknown_2023D28 -_080484F8: .4byte gUnknown_2023EB2 -_080484FC: .4byte gUnknown_2023FD6 -_08048500: .4byte gUnknown_2023EB8 -_08048504: - mov r3, sb - ldrb r1, [r3] - movs r0, #0x58 - muls r0, r1, r0 - mov r1, r8 - adds r1, #0x50 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - beq _0804853C - cmp r7, #0x40 - beq _0804853C - ldr r0, _08048534 - ldr r1, [r0] - adds r1, #1 - str r1, [r0] - movs r0, #0 - ldr r4, _08048538 - strb r0, [r4, #3] - bl _080495F8 - .align 2, 0 -_08048534: .4byte gUnknown_2023EB8 -_08048538: .4byte gUnknown_2023FD6 -_0804853C: - ldr r1, _08048568 - ldrb r0, [r1, #3] - cmp r0, #6 - bls _08048546 - b _08048B80 -_08048546: - ldr r1, _0804856C - ldr r2, _08048568 - ldrb r0, [r2, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #0x10 - bne _08048558 - b _0804873C -_08048558: - cmp r0, #0x10 - bhi _08048570 - cmp r0, #7 - beq _0804858A - cmp r0, #8 - beq _08048640 - b _08048A34 - .align 2, 0 -_08048568: .4byte gUnknown_2023FD6 -_0804856C: .4byte gUnknown_82ECAB8 -_08048570: - cmp r0, #0x40 - bne _08048576 - b _080488C4 -_08048576: - cmp r0, #0x40 - bhi _08048582 - cmp r0, #0x20 - bne _08048580 - b _0804882A -_08048580: - b _08048A34 -_08048582: - cmp r0, #0x80 - bne _08048588 - b _08048942 -_08048588: - b _08048A34 -_0804858A: - mov r3, sb - ldrb r1, [r3] - movs r0, #0x58 - muls r0, r1, r0 - add r0, r8 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x2b - beq _080485EC - ldr r0, _080485E4 - movs r1, #0 - strb r1, [r0] - ldr r1, _080485E8 - ldrb r3, [r1] - adds r7, r0, #0 - mov ip, r1 - cmp r3, #0 - beq _080485F8 - mov r4, r8 - ldr r0, [r4, #0x50] - movs r1, #0x70 - ands r0, r1 - cmp r0, #0 - bne _080485F8 - adds r1, r7, #0 - mov r6, r8 - adds r6, #0x50 - movs r5, #0x58 - movs r4, #0x70 -_080485C4: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r3 - bhs _080485F8 - ldrb r0, [r7] - muls r0, r5, r0 - adds r0, r0, r6 - ldr r0, [r0] - ands r0, r4 - cmp r0, #0 - beq _080485C4 - b _080485F8 - .align 2, 0 -_080485E4: .4byte gUnknown_2023D08 -_080485E8: .4byte gUnknown_2023D10 -_080485EC: - ldr r0, _08048638 - ldr r2, _0804863C - ldrb r1, [r2] - strb r1, [r0] - adds r7, r0, #0 - mov ip, r2 -_080485F8: - mov r0, sb - ldrb r2, [r0] - movs r0, #0x58 - adds r1, r2, #0 - muls r1, r0, r1 - mov r0, r8 - adds r0, #0x4c - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, #0 - beq _08048610 - b _08048A34 -_08048610: - ldrb r0, [r7] - mov r3, ip - ldrb r3, [r3] - cmp r0, r3 - beq _0804861C - b _08048A34 -_0804861C: - mov r4, r8 - adds r0, r1, r4 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x48 - bne _0804862A - b _08048A34 -_0804862A: - cmp r0, #0xf - bne _08048630 - b _08048A34 -_08048630: - adds r0, r2, #0 - bl CancelMultiTurnMoves - b _08048A24 - .align 2, 0 -_08048638: .4byte gUnknown_2023D08 -_0804863C: .4byte gUnknown_2023D10 -_08048640: - mov r2, sb - ldrb r1, [r2] - movs r0, #0x58 - muls r0, r1, r0 - add r0, r8 - adds r0, #0x20 - ldrb r1, [r0] - cmp r1, #0x11 - bne _080486B0 - cmp r5, #1 - beq _0804865A - cmp r6, #0x80 - bne _080486B0 -_0804865A: - ldr r0, _08048698 - strb r1, [r0] - mov r3, sb - ldrb r0, [r3] - movs r1, #0x11 - bl RecordAbilityBattle - ldr r4, _0804869C - ldr r0, [r4] - adds r0, #1 - bl BattleScriptPush - ldr r0, _080486A0 - str r0, [r4] - ldr r2, _080486A4 - ldr r1, [r2] - movs r0, #0x80 - lsls r0, r0, #6 - ands r0, r1 - cmp r0, #0 - bne _08048686 - b _08048960 -_08048686: - movs r0, #1 - ldr r4, _080486A8 - strb r0, [r4, #5] -_0804868C: - ldr r0, _080486AC - ands r1, r0 - str r1, [r2] - bl _080495F2 - .align 2, 0 -_08048698: .4byte gUnknown_2023EAE -_0804869C: .4byte gUnknown_2023EB8 -_080486A0: .4byte gUnknown_8289B71 -_080486A4: .4byte gUnknown_2023F24 -_080486A8: .4byte gUnknown_2023FD6 -_080486AC: .4byte 0xFFFFDFFF -_080486B0: - mov r2, sb - ldrb r0, [r2] - movs r1, #0x58 - muls r0, r1, r0 - add r0, r8 - adds r1, r0, #0 - adds r1, #0x21 - ldrb r1, [r1] - cmp r1, #3 - beq _080486D4 - adds r0, #0x22 - ldrb r0, [r0] - cmp r0, #3 - beq _080486D4 - cmp r1, #8 - beq _080486D4 - cmp r0, #8 - bne _080486EE -_080486D4: - ldr r0, _08048738 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #6 - ands r0, r1 - cmp r0, #0 - beq _080486EE - cmp r5, #1 - bne _080486E8 - b _080489A6 -_080486E8: - cmp r6, #0x80 - bne _080486EE - b _080489A6 -_080486EE: - mov r3, sb - ldrb r1, [r3] - movs r0, #0x58 - muls r1, r0, r1 - mov r4, r8 - adds r3, r1, r4 - adds r0, r3, #0 - adds r0, #0x21 - ldrb r4, [r0] - cmp r4, #3 - bne _08048706 - b _08048A34 -_08048706: - adds r0, #1 - ldrb r0, [r0] - cmp r0, #3 - bne _08048710 - b _08048A34 -_08048710: - cmp r4, #8 - bne _08048716 - b _08048A34 -_08048716: - cmp r0, #8 - bne _0804871C - b _08048A34 -_0804871C: - mov r0, r8 - adds r0, #0x4c - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, #0 - beq _0804872A - b _08048A34 -_0804872A: - adds r0, r3, #0 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x11 - bne _08048736 - b _08048A34 -_08048736: - b _08048A24 - .align 2, 0 -_08048738: .4byte gUnknown_2023F24 -_0804873C: - mov r2, sb - ldrb r1, [r2] - movs r0, #0x58 - muls r0, r1, r0 - add r0, r8 - adds r0, #0x20 - ldrb r1, [r0] - cmp r1, #0x29 - bne _08048794 - cmp r5, #1 - beq _08048756 - cmp r6, #0x80 - bne _08048794 -_08048756: - ldr r0, _08048784 - strb r1, [r0] - mov r3, sb - ldrb r0, [r3] - movs r1, #0x29 - bl RecordAbilityBattle - ldr r4, _08048788 - ldr r0, [r4] - adds r0, #1 - bl BattleScriptPush - ldr r0, _0804878C - str r0, [r4] - ldr r2, _08048790 - ldr r1, [r2] - movs r0, #0x80 - lsls r0, r0, #6 - ands r0, r1 - cmp r0, #0 - beq _08048782 - b _08048686 -_08048782: - b _08048960 - .align 2, 0 -_08048784: .4byte gUnknown_2023EAE -_08048788: .4byte gUnknown_2023EB8 -_0804878C: .4byte gUnknown_8289B59 -_08048790: .4byte gUnknown_2023F24 -_08048794: - mov r2, sb - ldrb r1, [r2] - movs r0, #0x58 - muls r0, r1, r0 - mov r3, r8 - adds r1, r0, r3 - adds r0, r1, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0xa - beq _080487B4 - adds r0, r1, #0 - adds r0, #0x22 - ldrb r0, [r0] - cmp r0, #0xa - bne _080487E4 -_080487B4: - ldr r0, _080487D8 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #6 - ands r0, r1 - cmp r0, #0 - beq _080487E4 - cmp r5, #1 - beq _080487CA - cmp r6, #0x80 - bne _080487E4 -_080487CA: - ldr r4, _080487DC - ldr r0, [r4] - adds r0, #1 - bl BattleScriptPush - ldr r0, _080487E0 - b _080489B2 - .align 2, 0 -_080487D8: .4byte gUnknown_2023F24 -_080487DC: .4byte gUnknown_2023EB8 -_080487E0: .4byte gUnknown_8289B59 -_080487E4: - mov r4, sb - ldrb r0, [r4] - movs r1, #0x58 - adds r2, r0, #0 - muls r2, r1, r2 - mov r0, r8 - adds r1, r2, r0 - adds r0, r1, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0xa - bne _080487FE - b _08048A34 -_080487FE: - adds r0, r1, #0 - adds r0, #0x22 - ldrb r0, [r0] - cmp r0, #0xa - bne _0804880A - b _08048A34 -_0804880A: - adds r0, r1, #0 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x29 - bne _08048816 - b _08048A34 -_08048816: - mov r0, r8 - adds r0, #0x4c - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, #0 - beq _08048824 - b _08048A34 -_08048824: - movs r1, #1 - mov sl, r1 - b _08048A34 -_0804882A: - movs r0, #0 - str r0, [sp] - movs r0, #0x13 - movs r1, #0 - movs r2, #0xd - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _08048866 - str r0, [sp] - movs r0, #0x13 - movs r1, #0 - movs r2, #0x4d - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08048866 - ldr r0, _080488B8 - ldrh r1, [r0] - movs r0, #0x60 - ands r0, r1 - cmp r0, #0 - beq _08048866 - movs r2, #0 - str r2, [sp, #4] -_08048866: - ldr r4, _080488BC - ldr r0, _080488C0 - ldrb r3, [r0] - movs r0, #0x58 - adds r2, r3, #0 - muls r2, r0, r2 - adds r1, r2, r4 - adds r0, r1, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0xf - bne _08048880 - b _08048A34 -_08048880: - adds r0, r1, #0 - adds r0, #0x22 - ldrb r0, [r0] - cmp r0, #0xf - bne _0804888C - b _08048A34 -_0804888C: - adds r0, r4, #0 - adds r0, #0x4c - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, #0 - beq _0804889A - b _08048A34 -_0804889A: - ldr r4, [sp, #4] - cmp r4, #0 - bne _080488A2 - b _08048A34 -_080488A2: - adds r0, r1, #0 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x28 - bne _080488AE - b _08048A34 -_080488AE: - adds r0, r3, #0 - bl CancelMultiTurnMoves - b _08048A24 - .align 2, 0 -_080488B8: .4byte gUnknown_2024070 -_080488BC: .4byte gUnknown_2023D28 -_080488C0: .4byte gUnknown_2023EB2 -_080488C4: - mov r2, sb - ldrb r1, [r2] - movs r0, #0x58 - muls r1, r0, r1 - mov r3, r8 - adds r0, r1, r3 - adds r0, #0x20 - ldrb r2, [r0] - cmp r2, #7 - bne _08048934 - cmp r5, #1 - beq _080488E2 - cmp r6, #0x80 - beq _080488E2 - b _08048A34 -_080488E2: - ldr r0, _08048914 - strb r2, [r0] - mov r4, sb - ldrb r0, [r4] - movs r1, #7 - bl RecordAbilityBattle - ldr r4, _08048918 - ldr r0, [r4] - adds r0, #1 - bl BattleScriptPush - ldr r0, _0804891C - str r0, [r4] - ldr r2, _08048920 - ldr r1, [r2] - movs r0, #0x80 - lsls r0, r0, #6 - ands r0, r1 - cmp r0, #0 - beq _08048928 - movs r0, #1 - ldr r3, _08048924 - strb r0, [r3, #5] - b _0804868C - .align 2, 0 -_08048914: .4byte gUnknown_2023EAE -_08048918: .4byte gUnknown_2023EB8 -_0804891C: .4byte gUnknown_8289B65 -_08048920: .4byte gUnknown_2023F24 -_08048924: .4byte gUnknown_2023FD6 -_08048928: - ldr r4, _08048930 - strb r0, [r4, #5] - bl _080495F2 - .align 2, 0 -_08048930: .4byte gUnknown_2023FD6 -_08048934: - mov r0, r8 - adds r0, #0x4c - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, #0 - bne _08048A34 - b _08048A24 -_08048942: - mov r2, sb - ldrb r1, [r2] - movs r0, #0x58 - muls r0, r1, r0 - add r0, r8 - adds r0, #0x20 - ldrb r1, [r0] - cmp r1, #0x11 - bne _0804896C - cmp r5, #1 - bne _0804895A - b _0804865A -_0804895A: - cmp r6, #0x80 - bne _0804896C - b _0804865A -_08048960: - ldr r1, _08048968 - strb r0, [r1, #5] - bl _080495F2 - .align 2, 0 -_08048968: .4byte gUnknown_2023FD6 -_0804896C: - mov r2, sb - ldrb r0, [r2] - movs r1, #0x58 - muls r0, r1, r0 - add r0, r8 - adds r1, r0, #0 - adds r1, #0x21 - ldrb r1, [r1] - cmp r1, #3 - beq _08048990 - adds r0, #0x22 - ldrb r0, [r0] - cmp r0, #3 - beq _08048990 - cmp r1, #8 - beq _08048990 - cmp r0, #8 - bne _080489D4 -_08048990: - ldr r0, _080489C4 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #6 - ands r0, r1 - cmp r0, #0 - beq _080489D4 - cmp r5, #1 - beq _080489A6 - cmp r6, #0x80 - bne _080489D4 -_080489A6: - ldr r4, _080489C8 - ldr r0, [r4] - adds r0, #1 - bl BattleScriptPush - ldr r0, _080489CC -_080489B2: - str r0, [r4] - ldr r1, _080489D0 - movs r2, #0 - movs r0, #2 - strb r0, [r1, #5] - strb r2, [r1, #3] - bl _080495F8 - .align 2, 0 -_080489C4: .4byte gUnknown_2023F24 -_080489C8: .4byte gUnknown_2023EB8 -_080489CC: .4byte gUnknown_8289B71 -_080489D0: .4byte gUnknown_2023FD6 -_080489D4: - mov r3, sb - ldrb r0, [r3] - movs r6, #0x58 - muls r0, r6, r0 - mov r2, r8 - adds r2, #0x4c - adds r5, r0, r2 - ldr r4, [r5] - cmp r4, #0 - bne _08048A34 - mov r3, r8 - adds r1, r0, r3 - adds r0, r1, #0 - adds r0, #0x21 - ldrb r3, [r0] - cmp r3, #3 - beq _08048A2A - adds r0, #1 - ldrb r0, [r0] - cmp r0, #3 - beq _08048A2A - cmp r3, #8 - beq _08048A2A - cmp r0, #8 - beq _08048A2A - adds r0, r1, #0 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x11 - beq _08048A34 - mov r4, sb - ldrb r0, [r4] - adds r1, r0, #0 - muls r1, r6, r1 - adds r1, r1, r2 - ldr r0, [r1] - movs r2, #9 - rsbs r2, r2, #0 - ands r0, r2 - str r0, [r1] -_08048A24: - movs r0, #1 - mov sl, r0 - b _08048A34 -_08048A2A: - ldr r0, _08048A78 - ldrb r1, [r0] - movs r2, #8 - orrs r1, r2 - strb r1, [r0] -_08048A34: - mov r1, sl - cmp r1, #1 - beq _08048A3C - b _08048B5C -_08048A3C: - ldr r0, _08048A7C - ldr r0, [r0] - adds r0, #1 - bl BattleScriptPush - ldr r1, _08048A80 - ldr r0, _08048A84 - ldrb r0, [r0, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r3, [r0] - cmp r3, #7 - bne _08048A90 - bl Random - ldr r2, _08048A88 - ldr r1, _08048A8C - ldrb r3, [r1] - movs r1, #0x58 - muls r3, r1, r3 - adds r2, #0x4c - adds r3, r3, r2 - movs r1, #3 - ands r1, r0 - adds r1, #2 - ldr r0, [r3] - orrs r0, r1 - str r0, [r3] - b _08048AA4 - .align 2, 0 -_08048A78: .4byte gUnknown_2023F20 -_08048A7C: .4byte gUnknown_2023EB8 -_08048A80: .4byte gUnknown_82ECAB8 -_08048A84: .4byte gUnknown_2023FD6 -_08048A88: .4byte gUnknown_2023D28 -_08048A8C: .4byte gUnknown_2023EB2 -_08048A90: - ldr r2, _08048AF4 - ldr r0, _08048AF8 - ldrb r1, [r0] - movs r0, #0x58 - muls r1, r0, r1 - adds r2, #0x4c - adds r1, r1, r2 - ldr r0, [r1] - orrs r0, r3 - str r0, [r1] -_08048AA4: - ldr r2, _08048AFC - ldr r1, _08048B00 - ldr r5, _08048B04 - ldrb r0, [r5, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r2] - ldr r4, _08048B08 - ldr r1, _08048AF8 - ldrb r0, [r1] - strb r0, [r4] - ldrb r1, [r1] - movs r0, #0x58 - muls r0, r1, r0 - ldr r1, _08048B0C - adds r0, r0, r1 - str r0, [sp] - movs r0, #0 - movs r1, #0x28 - movs r2, #0 - movs r3, #4 - bl BtlController_EmitSetMonData - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldr r2, _08048B10 - ldr r1, [r2] - movs r0, #0x80 - lsls r0, r0, #6 - ands r0, r1 - cmp r0, #0 - beq _08048B18 - movs r0, #1 - strb r0, [r5, #5] - ldr r0, _08048B14 - ands r1, r0 - str r1, [r2] - b _08048B1A - .align 2, 0 -_08048AF4: .4byte gUnknown_2023D28 -_08048AF8: .4byte gUnknown_2023EB2 -_08048AFC: .4byte gUnknown_2023EB8 -_08048B00: .4byte gUnknown_82ECBA8 -_08048B04: .4byte gUnknown_2023FD6 -_08048B08: .4byte gUnknown_2023D08 -_08048B0C: .4byte gUnknown_2023D74 -_08048B10: .4byte gUnknown_2023F24 -_08048B14: .4byte 0xFFFFDFFF -_08048B18: - strb r0, [r5, #5] -_08048B1A: - ldr r0, _08048B50 - ldrb r2, [r0, #3] - cmp r2, #2 - beq _08048B32 - cmp r2, #6 - beq _08048B32 - cmp r2, #5 - beq _08048B32 - cmp r2, #3 - beq _08048B32 - bl _080495F8 -_08048B32: - ldr r0, _08048B54 - ldr r0, [r0] - adds r0, #0xb2 - ldr r2, _08048B50 - ldrb r1, [r2, #3] - strb r1, [r0] - ldr r2, _08048B58 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #7 - orrs r0, r1 - str r0, [r2] - bl _080495F8 - .align 2, 0 -_08048B50: .4byte gUnknown_2023FD6 -_08048B54: .4byte gUnknown_2024140 -_08048B58: .4byte gUnknown_2023F24 -_08048B5C: - mov r3, sl - cmp r3, #0 - beq _08048B66 - bl _080495F8 -_08048B66: - ldr r0, _08048B78 - strb r3, [r0, #3] - ldr r1, _08048B7C - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - bl _080495F8 - .align 2, 0 -_08048B78: .4byte gUnknown_2023FD6 -_08048B7C: .4byte gUnknown_2023EB8 -_08048B80: - mov r4, sb - ldrb r1, [r4] - movs r0, #0x58 - muls r1, r0, r1 - mov r0, r8 - adds r0, #0x50 - adds r1, r1, r0 - ldr r2, _08048BBC - ldr r0, _08048BC0 - ldrb r3, [r0, #3] - lsls r0, r3, #2 - adds r0, r0, r2 - ldr r1, [r1] - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _08048BA6 - bl _080495D4 -_08048BA6: - subs r0, r3, #7 - cmp r0, #0x34 - bls _08048BB0 - bl _080495F2 -_08048BB0: - lsls r0, r0, #2 - ldr r1, _08048BC4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08048BBC: .4byte gUnknown_82ECAB8 -_08048BC0: .4byte gUnknown_2023FD6 -_08048BC4: .4byte _08048BC8 -_08048BC8: @ jump table - .4byte _08048C9C @ case 0 - .4byte _08048D10 @ case 1 - .4byte _08048E84 @ case 2 - .4byte _08048D9C @ case 3 - .4byte _08048E18 @ case 4 - .4byte _08048EBC @ case 5 - .4byte _08048F04 @ case 6 - .4byte _08048FD0 @ case 7 - .4byte _08049014 @ case 8 - .4byte _08049014 @ case 9 - .4byte _08049014 @ case 10 - .4byte _08049014 @ case 11 - .4byte _08049014 @ case 12 - .4byte _08049014 @ case 13 - .4byte _08049014 @ case 14 - .4byte _0804905C @ case 15 - .4byte _0804905C @ case 16 - .4byte _0804905C @ case 17 - .4byte _0804905C @ case 18 - .4byte _0804905C @ case 19 - .4byte _0804905C @ case 20 - .4byte _0804905C @ case 21 - .4byte _0804913C @ case 22 - .4byte _08049184 @ case 23 - .4byte _080491A4 @ case 24 - .4byte _08049360 @ case 25 - .4byte _0804939C @ case 26 - .4byte _080493B8 @ case 27 - .4byte _080493D0 @ case 28 - .4byte _080493E8 @ case 29 - .4byte _08049448 @ case 30 - .4byte _08049460 @ case 31 - .4byte _080490A8 @ case 32 - .4byte _080490A8 @ case 33 - .4byte _080490A8 @ case 34 - .4byte _080490A8 @ case 35 - .4byte _080490A8 @ case 36 - .4byte _080490A8 @ case 37 - .4byte _080490A8 @ case 38 - .4byte _080490F0 @ case 39 - .4byte _080490F0 @ case 40 - .4byte _080490F0 @ case 41 - .4byte _080490F0 @ case 42 - .4byte _080490F0 @ case 43 - .4byte _080490F0 @ case 44 - .4byte _080490F0 @ case 45 - .4byte _080494A4 @ case 46 - .4byte _08049500 @ case 47 - .4byte _080495F2 @ case 48 - .4byte _080495F2 @ case 49 - .4byte _080495F2 @ case 50 - .4byte _080495F2 @ case 51 - .4byte _080495E4 @ case 52 -_08048C9C: - mov r1, sb - ldrb r0, [r1] - movs r5, #0x58 - adds r1, r0, #0 - muls r1, r5, r1 - mov r2, r8 - adds r0, r1, r2 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x14 - bne _08048CB6 - bl _080495D4 -_08048CB6: - mov r4, r8 - adds r4, #0x50 - adds r0, r1, r4 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - beq _08048CCA - bl _080495D4 -_08048CCA: - bl Random - mov r3, sb - ldrb r1, [r3] - adds r2, r1, #0 - muls r2, r5, r2 - adds r2, r2, r4 - lsls r0, r0, #0x10 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r0 - lsrs r1, r1, #0x10 - adds r1, #2 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - ldr r4, _08048D04 - ldr r0, [r4] - adds r0, #1 - bl BattleScriptPush - ldr r1, _08048D08 - ldr r0, _08048D0C - ldrb r0, [r0, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _080495F0 - .align 2, 0 -_08048D04: .4byte gUnknown_2023EB8 -_08048D08: .4byte gUnknown_82ECBA8 -_08048D0C: .4byte gUnknown_2023FD6 -_08048D10: - mov r4, sb - ldrb r2, [r4] - movs r4, #0x58 - adds r0, r2, #0 - muls r0, r4, r0 - add r0, r8 - adds r0, #0x20 - ldrb r1, [r0] - cmp r1, #0x27 - bne _08048D54 - cmp r5, #1 - beq _08048D30 - cmp r6, #0x80 - beq _08048D30 - bl _080495D4 -_08048D30: - ldr r0, _08048D48 - strb r1, [r0] - mov r1, sb - ldrb r0, [r1] - movs r1, #0x27 - bl RecordAbilityBattle - ldr r1, _08048D4C - ldr r0, _08048D50 - str r0, [r1] - bl _080495F2 - .align 2, 0 -_08048D48: .4byte gUnknown_2023EAE -_08048D4C: .4byte gUnknown_2023EB8 -_08048D50: .4byte gUnknown_8289B8B -_08048D54: - adds r0, r2, #0 - bl GetBattlerTurnOrderNum - ldr r1, _08048D90 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1] - cmp r0, r1 - bhi _08048D6A - bl _080495D4 -_08048D6A: - mov r2, sb - ldrb r0, [r2] - adds r2, r0, #0 - muls r2, r4, r2 - mov r0, r8 - adds r0, #0x50 - adds r2, r2, r0 - ldr r1, _08048D94 - ldr r0, _08048D98 - ldrb r0, [r0, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r2] - ldr r0, [r0] - orrs r1, r0 - str r1, [r2] - bl _080495D4 - .align 2, 0 -_08048D90: .4byte gUnknown_2023D26 -_08048D94: .4byte gUnknown_82ECAB8 -_08048D98: .4byte gUnknown_2023FD6 -_08048D9C: - mov r3, sb - ldrb r0, [r3] - movs r5, #0x58 - muls r0, r5, r0 - mov r4, r8 - adds r4, #0x50 - adds r2, r0, r4 - ldr r1, [r2] - movs r0, #0x70 - ands r0, r1 - cmp r0, #0 - beq _08048DB8 - bl _080495D4 -_08048DB8: - movs r0, #0x80 - lsls r0, r0, #5 - orrs r1, r0 - str r1, [r2] - ldr r1, _08048E04 - ldrb r0, [r3] - lsls r0, r0, #1 - adds r0, r0, r1 - ldr r1, _08048E08 - ldrh r1, [r1] - strh r1, [r0] - bl Random - mov r2, sb - ldrb r1, [r2] - adds r2, r1, #0 - muls r2, r5, r2 - adds r2, r2, r4 - movs r1, #3 - ands r1, r0 - adds r1, #2 - lsls r1, r1, #4 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - ldr r4, _08048E0C - ldr r0, [r4] - adds r0, #1 - bl BattleScriptPush - ldr r1, _08048E10 - ldr r0, _08048E14 - ldrb r0, [r0, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _080495F0 - .align 2, 0 -_08048E04: .4byte gUnknown_2023F0C -_08048E08: .4byte gUnknown_2023E8E -_08048E0C: .4byte gUnknown_2023EB8 -_08048E10: .4byte gUnknown_82ECBA8 -_08048E14: .4byte gUnknown_2023FD6 -_08048E18: - ldr r5, _08048E68 - ldrb r0, [r5] - bl sub_080A630C - movs r1, #1 - ands r1, r0 - cmp r1, #0 - bne _08048E50 - ldr r4, _08048E6C - ldrh r3, [r4] - ldr r2, _08048E70 - ldrb r1, [r5] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - adds r0, #0x2a - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - adds r0, r3, r0 - strh r0, [r4] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r3, r0 - bls _08048E50 - ldr r3, _08048E74 - adds r0, r3, #0 - strh r0, [r4] -_08048E50: - ldr r4, _08048E78 - ldr r0, [r4] - adds r0, #1 - bl BattleScriptPush - ldr r1, _08048E7C - ldr r0, _08048E80 - ldrb r0, [r0, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - b _080495F0 - .align 2, 0 -_08048E68: .4byte gUnknown_2023EAF -_08048E6C: .4byte gUnknown_2023FD2 -_08048E70: .4byte gUnknown_2023D28 -_08048E74: .4byte 0x0000FFFF -_08048E78: .4byte gUnknown_2023EB8 -_08048E7C: .4byte gUnknown_82ECBA8 -_08048E80: .4byte gUnknown_2023FD6 -_08048E84: - mov r4, sb - ldrb r1, [r4] - movs r0, #0x58 - muls r0, r1, r0 - mov r1, r8 - adds r1, #0x4c - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #0 - beq _08048E9A - b _080495D4 -_08048E9A: - bl Random - ldr r4, _08048EB8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - adds r0, #3 - strb r0, [r4, #3] - movs r0, #0 - movs r1, #0 - bl SetMoveEffect - b _080495F2 - .align 2, 0 -_08048EB8: .4byte gUnknown_2023FD6 -_08048EBC: - mov r0, sb - ldrb r1, [r0] - movs r0, #0x58 - adds r2, r1, #0 - muls r2, r0, r2 - mov r0, r8 - adds r0, #0x50 - adds r2, r2, r0 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #5 - orrs r0, r1 - str r0, [r2] - ldr r1, _08048EF8 - mov r2, sb - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldr r1, _08048EFC - ldrh r1, [r1] - strh r1, [r0] - ldr r0, _08048F00 - ldrb r1, [r2] - lsls r1, r1, #4 - adds r1, r1, r0 - ldrb r0, [r1, #1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1, #1] - b _080495D4 - .align 2, 0 -_08048EF8: .4byte gUnknown_2023F0C -_08048EFC: .4byte gUnknown_2023E8E -_08048F00: .4byte gUnknown_2023FE0 -_08048F04: - mov r3, sb - ldrb r0, [r3] - movs r6, #0x58 - muls r0, r6, r0 - mov r4, r8 - adds r4, #0x50 - adds r0, r0, r4 - ldr r5, [r0] - movs r0, #0xe0 - lsls r0, r0, #8 - ands r5, r0 - cmp r5, #0 - beq _08048F20 - b _080495D4 -_08048F20: - bl Random - mov r2, sb - ldrb r1, [r2] - adds r2, r1, #0 - muls r2, r6, r2 - adds r2, r2, r4 - movs r1, #3 - ands r1, r0 - adds r1, #3 - lsls r1, r1, #0xd - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - mov r3, sb - ldrb r1, [r3] - ldr r2, _08048FB4 - ldr r0, [r2] - lsls r1, r1, #1 - adds r1, r1, r0 - ldr r6, _08048FB8 - ldrh r0, [r6] - strb r0, [r1, #4] - ldrb r1, [r3] - ldr r0, [r2] - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r6] - lsrs r0, r0, #8 - strb r0, [r1, #5] - ldrb r1, [r3] - ldr r0, [r2] - adds r1, r1, r0 - ldr r0, _08048FBC - ldrb r0, [r0] - strb r0, [r1, #0x14] - ldr r4, _08048FC0 - ldr r0, [r4] - adds r0, #1 - bl BattleScriptPush - ldr r1, _08048FC4 - ldr r2, _08048FC8 - ldrb r0, [r2, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r4] - strb r5, [r2, #5] - ldr r3, _08048FCC - ldrh r0, [r3] - ldrh r4, [r6] - cmp r0, r4 - bne _08048F8E - b _080495F2 -_08048F8E: - adds r1, r2, #0 - adds r2, r6, #0 -_08048F92: - ldrb r0, [r1, #5] - adds r0, #1 - strb r0, [r1, #5] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bls _08048FA2 - b _080495F2 -_08048FA2: - ldrb r0, [r1, #5] - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r0, [r0] - ldrh r4, [r2] - cmp r0, r4 - bne _08048F92 - b _080495F2 - .align 2, 0 -_08048FB4: .4byte gUnknown_2024140 -_08048FB8: .4byte gUnknown_2023E8E -_08048FBC: .4byte gUnknown_2023EAF -_08048FC0: .4byte gUnknown_2023EB8 -_08048FC4: .4byte gUnknown_82ECBA8 -_08048FC8: .4byte gUnknown_2023FD6 -_08048FCC: .4byte gUnknown_85ABAEE -_08048FD0: - ldr r1, _08049000 - ldr r0, _08049004 - ldr r0, [r0] - cmp r0, #0 - bge _08048FDC - adds r0, #3 -_08048FDC: - asrs r0, r0, #2 - str r0, [r1] - cmp r0, #0 - bne _08048FE8 - movs r0, #1 - str r0, [r1] -_08048FE8: - ldr r4, _08049008 - ldr r0, [r4] - adds r0, #1 - bl BattleScriptPush - ldr r1, _0804900C - ldr r0, _08049010 - ldrb r0, [r0, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - b _080495F0 - .align 2, 0 -_08049000: .4byte gUnknown_2023E94 -_08049004: .4byte gUnknown_2023E98 -_08049008: .4byte gUnknown_2023EB8 -_0804900C: .4byte gUnknown_82ECBA8 -_08049010: .4byte gUnknown_2023FD6 -_08049014: - ldr r4, _0804904C - ldrb r1, [r4, #3] - adds r1, #0xf2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0x10 - adds r2, r7, #0 - movs r3, #0 - bl ChangeStatBuffs - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - beq _08049032 - b _080495D4 -_08049032: - ldr r2, _08049050 - ldrb r1, [r4, #3] - movs r0, #0x3f - ands r0, r1 - strb r0, [r2, #0x10] - strb r3, [r2, #0x11] - ldr r4, _08049054 - ldr r0, [r4] - adds r0, #1 - bl BattleScriptPush - ldr r0, _08049058 - b _080495F0 - .align 2, 0 -_0804904C: .4byte gUnknown_2023FD6 -_08049050: .4byte gUnknown_2024118 -_08049054: .4byte gUnknown_2023EB8 -_08049058: .4byte gUnknown_828725C -_0804905C: - movs r0, #0x70 - rsbs r0, r0, #0 - ldr r4, _08049098 - ldrb r1, [r4, #3] - adds r1, #0xeb - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r2, r7, #0 - movs r3, #0 - bl ChangeStatBuffs - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - beq _0804907C - b _080495D4 -_0804907C: - ldr r2, _0804909C - ldrb r1, [r4, #3] - movs r0, #0x3f - ands r0, r1 - strb r0, [r2, #0x10] - strb r3, [r2, #0x11] - ldr r4, _080490A0 - ldr r0, [r4] - adds r0, #1 - bl BattleScriptPush - ldr r0, _080490A4 - b _080495F0 - .align 2, 0 -_08049098: .4byte gUnknown_2023FD6 -_0804909C: .4byte gUnknown_2024118 -_080490A0: .4byte gUnknown_2023EB8 -_080490A4: .4byte gUnknown_82872ED -_080490A8: - ldr r4, _080490E0 - ldrb r1, [r4, #3] - adds r1, #0xda - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0x20 - adds r2, r7, #0 - movs r3, #0 - bl ChangeStatBuffs - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - beq _080490C6 - b _080495D4 -_080490C6: - ldr r2, _080490E4 - ldrb r1, [r4, #3] - movs r0, #0x3f - ands r0, r1 - strb r0, [r2, #0x10] - strb r3, [r2, #0x11] - ldr r4, _080490E8 - ldr r0, [r4] - adds r0, #1 - bl BattleScriptPush - ldr r0, _080490EC - b _080495F0 - .align 2, 0 -_080490E0: .4byte gUnknown_2023FD6 -_080490E4: .4byte gUnknown_2024118 -_080490E8: .4byte gUnknown_2023EB8 -_080490EC: .4byte gUnknown_828725C -_080490F0: - movs r0, #0x60 - rsbs r0, r0, #0 - ldr r4, _0804912C - ldrb r1, [r4, #3] - adds r1, #0xd3 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r2, r7, #0 - movs r3, #0 - bl ChangeStatBuffs - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - beq _08049110 - b _080495D4 -_08049110: - ldr r2, _08049130 - ldrb r1, [r4, #3] - movs r0, #0x3f - ands r0, r1 - strb r0, [r2, #0x10] - strb r3, [r2, #0x11] - ldr r4, _08049134 - ldr r0, [r4] - adds r0, #1 - bl BattleScriptPush - ldr r0, _08049138 - b _080495F0 - .align 2, 0 -_0804912C: .4byte gUnknown_2023FD6 -_08049130: .4byte gUnknown_2024118 -_08049134: .4byte gUnknown_2023EB8 -_08049138: .4byte gUnknown_82872ED -_0804913C: - mov r0, sb - ldrb r1, [r0] - movs r0, #0x58 - adds r2, r1, #0 - muls r2, r0, r2 - mov r0, r8 - adds r0, #0x50 - adds r2, r2, r0 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r2] - ldr r2, _08049178 - mov r3, sb - ldrb r1, [r3] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #2 - strb r1, [r0, #0x19] - ldr r1, _0804917C - ldrb r0, [r3] - lsls r0, r0, #1 - adds r0, r0, r1 - ldr r1, _08049180 - ldrh r1, [r1] - strh r1, [r0] - b _080495D4 - .align 2, 0 -_08049178: .4byte gUnknown_2023F60 -_0804917C: .4byte gUnknown_2023F0C -_08049180: .4byte gUnknown_2023E8E -_08049184: - ldr r0, _080491A0 - ldrb r1, [r0] - movs r0, #0x58 - adds r2, r1, #0 - muls r2, r0, r2 - mov r0, r8 - adds r0, #0x50 - adds r2, r2, r0 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0x10 -_0804919A: - orrs r0, r1 - str r0, [r2] - b _080495D4 - .align 2, 0 -_080491A0: .4byte gUnknown_2023EAF -_080491A4: - ldr r5, _080491DC - ldr r0, [r5] - movs r1, #0x80 - lsls r1, r1, #0x13 - ands r0, r1 - cmp r0, #0 - beq _080491B4 - b _080495D4 -_080491B4: - ldr r6, _080491E0 - ldrb r0, [r6] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldrb r0, [r6] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080491E8 - ldr r0, [r5] - ldr r1, _080491E4 - ands r0, r1 - cmp r0, #0 - bne _08049214 - b _080495D4 - .align 2, 0 -_080491DC: .4byte gUnknown_2022C90 -_080491E0: .4byte gUnknown_2023EAF -_080491E4: .4byte 0x0A3F0902 -_080491E8: - ldr r0, [r5] - ldr r1, _08049258 - ands r0, r1 - cmp r0, #0 - bne _08049214 - ldr r0, _0804925C - adds r0, #0x29 - adds r0, r4, r0 - ldrb r1, [r0] - ldr r3, _08049260 - ldr r2, _08049264 - ldrb r0, [r6] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r3 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _08049214 - b _080495D4 -_08049214: - ldr r2, _08049268 - ldr r1, _0804926C - ldrb r0, [r1] - movs r5, #0x58 - muls r0, r5, r0 - adds r4, r0, r2 - ldrh r0, [r4, #0x2e] - adds r7, r1, #0 - mov r8, r2 - cmp r0, #0 - beq _0804927C - adds r0, r4, #0 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x3c - bne _0804927C - bl BattleScriptPushCursor - ldr r1, _08049270 - ldr r0, _08049274 - str r0, [r1] - ldr r1, _08049278 - ldrb r0, [r7] - muls r0, r5, r0 - add r0, r8 - adds r0, #0x20 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - ldrb r1, [r1] - bl RecordAbilityBattle - b _080495F2 - .align 2, 0 -_08049258: .4byte 0x0A3F0902 -_0804925C: .4byte gUnknown_2024074 -_08049260: .4byte gUnknown_82FACB4 -_08049264: .4byte gUnknown_2023D12 -_08049268: .4byte gUnknown_2023D28 -_0804926C: .4byte gUnknown_2023EB0 -_08049270: .4byte gUnknown_2023EB8 -_08049274: .4byte gUnknown_8289C0A -_08049278: .4byte gUnknown_2023EAE -_0804927C: - ldr r4, _08049348 - mov sl, r4 - ldrb r2, [r4] - movs r0, #0x58 - mov sb, r0 - mov r0, sb - muls r0, r2, r0 - add r0, r8 - ldrh r4, [r0, #0x2e] - cmp r4, #0 - beq _08049294 - b _080495D4 -_08049294: - ldrb r0, [r7] - mov r1, sb - muls r1, r0, r1 - adds r0, r1, #0 - add r0, r8 - ldrh r3, [r0, #0x2e] - adds r1, r3, #0 - cmp r1, #0xaf - bne _080492A8 - b _080495D4 -_080492A8: - adds r0, r3, #0 - subs r0, #0x79 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xb - bhi _080492B6 - b _080495D4 -_080492B6: - cmp r1, #0 - bne _080492BC - b _080495D4 -_080492BC: - ldr r5, _0804934C - lsls r0, r2, #1 - adds r0, #0xd0 - ldr r1, [r5] - adds r1, r1, r0 - ldr r2, _08049350 - strh r3, [r1] - strh r3, [r2] - ldrb r0, [r7] - mov r3, sb - muls r3, r0, r3 - adds r0, r3, #0 - add r0, r8 - movs r6, #0 - strh r4, [r0, #0x2e] - ldr r4, _08049354 - mov r1, sl - ldrb r0, [r1] - strb r0, [r4] - str r2, [sp] - movs r0, #0 - movs r1, #2 - movs r2, #0 - movs r3, #2 - bl BtlController_EmitSetMonData - mov r2, sl - ldrb r0, [r2] - bl MarkBattlerForControllerExec - ldrb r0, [r7] - strb r0, [r4] - ldrb r0, [r7] - mov r3, sb - muls r3, r0, r3 - adds r0, r3, #0 - mov r1, r8 - adds r1, #0x2e - adds r0, r0, r1 - str r0, [sp] - movs r0, #0 - movs r1, #2 - movs r2, #0 - movs r3, #2 - bl BtlController_EmitSetMonData - ldrb r0, [r7] - bl MarkBattlerForControllerExec - ldr r4, _08049358 - ldr r0, [r4] - adds r0, #1 - bl BattleScriptPush - ldr r0, _0804935C - str r0, [r4] - ldrb r0, [r7] - ldr r1, [r5] - lsls r0, r0, #1 - adds r0, r0, r1 - adds r0, #0xc8 - strb r6, [r0] - ldrb r0, [r7] - ldr r1, [r5] - lsls r0, r0, #1 - adds r0, r0, r1 - adds r0, #0xc9 - strb r6, [r0] - b _080495F2 - .align 2, 0 -_08049348: .4byte gUnknown_2023EAF -_0804934C: .4byte gUnknown_2024140 -_08049350: .4byte gUnknown_2023EAC -_08049354: .4byte gUnknown_2023D08 -_08049358: .4byte gUnknown_2023EB8 -_0804935C: .4byte gUnknown_82899AA -_08049360: - ldr r3, _08049390 - ldrb r1, [r3] - movs r0, #0x58 - adds r2, r1, #0 - muls r2, r0, r2 - mov r0, r8 - adds r0, #0x50 - adds r2, r2, r0 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0x13 - orrs r0, r1 - str r0, [r2] - ldr r2, _08049394 - ldrb r1, [r3] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, _08049398 - ldrb r1, [r1] - strb r1, [r0, #0x14] - b _080495D4 - .align 2, 0 -_08049390: .4byte gUnknown_2023EB0 -_08049394: .4byte gUnknown_2023F60 -_08049398: .4byte gUnknown_2023EAF -_0804939C: - ldr r0, _080493B4 - ldrb r1, [r0] - movs r0, #0x58 - adds r2, r1, #0 - muls r2, r0, r2 - mov r0, r8 - adds r0, #0x50 - adds r2, r2, r0 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0x14 - b _0804919A - .align 2, 0 -_080493B4: .4byte gUnknown_2023EB0 -_080493B8: - ldr r4, _080493C8 - ldr r0, [r4] - adds r0, #1 - bl BattleScriptPush - ldr r0, _080493CC - b _080495F0 - .align 2, 0 -_080493C8: .4byte gUnknown_2023EB8 -_080493CC: .4byte gUnknown_82894AF -_080493D0: - ldr r4, _080493E0 - ldr r0, [r4] - adds r0, #1 - bl BattleScriptPush - ldr r0, _080493E4 - b _080495F0 - .align 2, 0 -_080493E0: .4byte gUnknown_2023EB8 -_080493E4: .4byte gUnknown_828954B -_080493E8: - ldr r6, _08049438 - ldrb r0, [r6] - movs r2, #0x58 - muls r0, r2, r0 - mov r1, r8 - adds r1, #0x4c - adds r5, r0, r1 - ldr r4, [r5] - movs r0, #0x40 - ands r0, r4 - cmp r0, #0 - bne _08049402 - b _080495D4 -_08049402: - movs r0, #0x41 - rsbs r0, r0, #0 - ands r4, r0 - str r4, [r5] - ldr r4, _0804943C - ldrb r0, [r6] - strb r0, [r4] - ldrb r0, [r4] - muls r0, r2, r0 - adds r0, r0, r1 - str r0, [sp] - movs r0, #0 - movs r1, #0x28 - movs r2, #0 - movs r3, #4 - bl BtlController_EmitSetMonData - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldr r4, _08049440 - ldr r0, [r4] - adds r0, #1 - bl BattleScriptPush - ldr r0, _08049444 - b _080495F0 - .align 2, 0 -_08049438: .4byte gUnknown_2023EB0 -_0804943C: .4byte gUnknown_2023D08 -_08049440: .4byte gUnknown_2023EB8 -_08049444: .4byte gUnknown_82898E9 -_08049448: - ldr r4, _08049458 - ldr r0, [r4] - adds r0, #1 - bl BattleScriptPush - ldr r0, _0804945C - b _080495F0 - .align 2, 0 -_08049458: .4byte gUnknown_2023EB8 -_0804945C: .4byte gUnknown_828969F -_08049460: - ldr r4, _08049490 - ldr r0, _08049494 - ldr r0, [r0] - movs r1, #3 - bl __divsi3 - str r0, [r4] - cmp r0, #0 - bne _08049476 - movs r0, #1 - str r0, [r4] -_08049476: - ldr r4, _08049498 - ldr r0, [r4] - adds r0, #1 - bl BattleScriptPush - ldr r1, _0804949C - ldr r0, _080494A0 - ldrb r0, [r0, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - b _080495F0 - .align 2, 0 -_08049490: .4byte gUnknown_2023E94 -_08049494: .4byte gUnknown_2023E98 -_08049498: .4byte gUnknown_2023EB8 -_0804949C: .4byte gUnknown_82ECBA8 -_080494A0: .4byte gUnknown_2023FD6 -_080494A4: - mov r4, sb - ldrb r0, [r4] - movs r5, #0x58 - muls r0, r5, r0 - mov r4, r8 - adds r4, #0x50 - adds r2, r0, r4 - ldr r1, [r2] - movs r0, #0xc0 - lsls r0, r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080494C0 - b _080495D4 -_080494C0: - movs r0, #0x80 - lsls r0, r0, #5 - orrs r1, r0 - str r1, [r2] - ldr r1, _080494F8 - mov r2, sb - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldr r1, _080494FC - ldrh r1, [r1] - strh r1, [r0] - bl Random - mov r3, sb - ldrb r1, [r3] - adds r2, r1, #0 - muls r2, r5, r2 - adds r2, r2, r4 - movs r1, #1 - ands r1, r0 - adds r1, #2 - lsls r1, r1, #0xa - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - b _080495F2 - .align 2, 0 -_080494F8: .4byte gUnknown_2023F0C -_080494FC: .4byte gUnknown_2023E8E -_08049500: - mov r4, sb - ldrb r3, [r4] - movs r5, #0x58 - adds r0, r3, #0 - muls r0, r5, r0 - mov r2, r8 - adds r1, r0, r2 - adds r0, r1, #0 - adds r0, #0x20 - ldrb r2, [r0] - cmp r2, #0x3c - bne _08049540 - ldrh r0, [r1, #0x2e] - cmp r0, #0 - beq _080495D4 - ldr r0, _08049534 - strb r2, [r0] - ldr r1, _08049538 - ldr r0, _0804953C - str r0, [r1] - ldrb r0, [r4] - movs r1, #0x3c - bl RecordAbilityBattle - b _080495F2 - .align 2, 0 -_08049534: .4byte gUnknown_2023EAE -_08049538: .4byte gUnknown_2023EB8 -_0804953C: .4byte gUnknown_8289BC7 -_08049540: - ldrh r0, [r1, #0x2e] - cmp r0, #0 - beq _080495D4 - adds r0, r3, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _080495B8 - mov r3, sb - ldrb r0, [r3] - muls r0, r5, r0 - add r0, r8 - ldrh r0, [r0, #0x2e] - strh r0, [r1] - ldrb r0, [r3] - muls r0, r5, r0 - add r0, r8 - movs r5, #0 - movs r1, #0 - strh r1, [r0, #0x2e] - ldr r2, _080495BC - adds r2, #0x29 - adds r2, r4, r2 - ldr r3, _080495C0 - ldr r1, _080495C4 - mov r4, sb - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r3 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r4, _080495C8 - ldr r0, [r4] - adds r0, #1 - bl BattleScriptPush - ldr r0, _080495CC - str r0, [r4] - mov r1, sb - ldrb r0, [r1] - ldr r2, _080495D0 - ldr r1, [r2] - lsls r0, r0, #1 - adds r0, r0, r1 - adds r0, #0xc8 - strb r5, [r0] - mov r3, sb - ldrb r0, [r3] - ldr r1, [r2] - lsls r0, r0, #1 - adds r0, r0, r1 - adds r0, #0xc9 - strb r5, [r0] - b _080495F2 - .align 2, 0 -_080495B8: .4byte gUnknown_2023EAC -_080495BC: .4byte gUnknown_2024074 -_080495C0: .4byte gUnknown_82FACB4 -_080495C4: .4byte gUnknown_2023D12 -_080495C8: .4byte gUnknown_2023EB8 -_080495CC: .4byte gUnknown_82896F0 -_080495D0: .4byte gUnknown_2024140 -_080495D4: - ldr r1, _080495E0 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - b _080495F2 - .align 2, 0 -_080495E0: .4byte gUnknown_2023EB8 -_080495E4: - ldr r4, _08049608 - ldr r0, [r4] - adds r0, #1 - bl BattleScriptPush - ldr r0, _0804960C -_080495F0: - str r0, [r4] -_080495F2: - ldr r1, _08049610 - movs r0, #0 - strb r0, [r1, #3] -_080495F8: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08049608: .4byte gUnknown_2023EB8 -_0804960C: .4byte gUnknown_828975D -_08049610: .4byte gUnknown_2023FD6 - thumb_func_end SetMoveEffect - - thumb_func_start atk15_seteffectwithchance -atk15_seteffectwithchance: @ 0x08049614 - push {r4, lr} - ldr r2, _08049640 - ldr r0, _08049644 - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x20 - bne _08049650 - ldr r2, _08049648 - ldr r0, _0804964C - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #5] - lsls r4, r0, #1 - b _08049660 - .align 2, 0 -_08049640: .4byte gUnknown_2023D28 -_08049644: .4byte gUnknown_2023EAF -_08049648: .4byte gUnknown_82ED220 -_0804964C: .4byte gUnknown_2023E8E -_08049650: - ldr r2, _08049680 - ldr r0, _08049684 - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r4, [r0, #5] -_08049660: - ldr r3, _08049688 - ldrb r2, [r3, #3] - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - beq _08049690 - ldr r0, _0804968C - ldrb r1, [r0] - movs r0, #0x29 - ands r0, r1 - cmp r0, #0 - bne _08049690 - movs r0, #0x7f - ands r0, r2 - strb r0, [r3, #3] - b _080496BE - .align 2, 0 -_08049680: .4byte gUnknown_82ED220 -_08049684: .4byte gUnknown_2023E8E -_08049688: .4byte gUnknown_2023FD6 -_0804968C: .4byte gUnknown_2023F20 -_08049690: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r4 - bhs _080496DA - ldr r0, _080496C8 - ldrb r0, [r0, #3] - cmp r0, #0 - beq _080496DA - ldr r0, _080496CC - ldrb r1, [r0] - movs r0, #0x29 - ands r0, r1 - cmp r0, #0 - bne _080496DA - cmp r4, #0x63 - bls _080496D0 -_080496BE: - movs r0, #0 - movs r1, #0x80 - bl SetMoveEffect - b _080496E2 - .align 2, 0 -_080496C8: .4byte gUnknown_2023FD6 -_080496CC: .4byte gUnknown_2023F20 -_080496D0: - movs r0, #0 - movs r1, #0 - bl SetMoveEffect - b _080496E2 -_080496DA: - ldr r1, _080496F4 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] -_080496E2: - ldr r0, _080496F8 - movs r1, #0 - strb r1, [r0, #3] - ldr r0, _080496FC - strb r1, [r0, #0x16] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080496F4: .4byte gUnknown_2023EB8 -_080496F8: .4byte gUnknown_2023FD6 -_080496FC: .4byte gUnknown_2024118 - thumb_func_end atk15_seteffectwithchance - - thumb_func_start atk16_seteffectprimary -atk16_seteffectprimary: @ 0x08049700 - push {lr} - movs r0, #1 - movs r1, #0 - bl SetMoveEffect - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end atk16_seteffectprimary - - thumb_func_start atk17_seteffectsecondary -atk17_seteffectsecondary: @ 0x08049710 - push {lr} - movs r0, #0 - movs r1, #0 - bl SetMoveEffect - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end atk17_seteffectsecondary - - thumb_func_start atk18_clearstatusfromeffect -atk18_clearstatusfromeffect: @ 0x08049720 - push {lr} - ldr r0, _08049744 - ldr r0, [r0] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - ldr r2, _08049748 - strb r0, [r2] - ldr r3, _0804974C - ldrb r0, [r3, #3] - cmp r0, #6 - bhi _08049754 - ldr r1, _08049750 - ldrb r2, [r2] - movs r0, #0x58 - muls r2, r0, r2 - adds r1, #0x4c - b _0804975E - .align 2, 0 -_08049744: .4byte gUnknown_2023EB8 -_08049748: .4byte gUnknown_2023D08 -_0804974C: .4byte gUnknown_2023FD6 -_08049750: .4byte gUnknown_2023D28 -_08049754: - ldr r1, _08049788 - ldrb r2, [r2] - movs r0, #0x58 - muls r2, r0, r2 - adds r1, #0x50 -_0804975E: - adds r2, r2, r1 - ldr r1, _0804978C - ldrb r0, [r3, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - ldr r0, _08049790 - movs r2, #0 - strb r2, [r0, #3] - ldr r1, _08049794 - ldr r0, [r1] - adds r0, #2 - str r0, [r1] - ldr r0, _08049798 - strb r2, [r0, #0x16] - pop {r0} - bx r0 - .align 2, 0 -_08049788: .4byte gUnknown_2023D28 -_0804978C: .4byte gUnknown_82ECAB8 -_08049790: .4byte gUnknown_2023FD6 -_08049794: .4byte gUnknown_2023EB8 -_08049798: .4byte gUnknown_2024118 - thumb_func_end atk18_clearstatusfromeffect - - thumb_func_start atk19_tryfaintmon -atk19_tryfaintmon: @ 0x0804979C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - ldr r0, _08049808 - ldr r2, [r0] - ldrb r1, [r2, #2] - adds r6, r0, #0 - cmp r1, #0 - beq _08049820 - ldrb r0, [r2, #1] - bl GetBattlerForBattleScript - ldr r5, _0804980C - strb r0, [r5] - ldr r2, _08049810 - ldr r1, _08049814 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - lsls r1, r1, #0x1c - ldr r0, [r2] - ands r0, r1 - cmp r0, #0 - bne _080497D4 - b _08049A6C -_080497D4: - ldr r1, [r6] - ldrb r4, [r1, #3] - ldrb r0, [r1, #4] - lsls r0, r0, #8 - orrs r4, r0 - ldrb r0, [r1, #5] - lsls r0, r0, #0x10 - orrs r4, r0 - ldrb r0, [r1, #6] - lsls r0, r0, #0x18 - orrs r4, r0 - bl BattleScriptPop - str r4, [r6] - ldrb r0, [r5] - bl GetBattlerSide - ldr r1, _08049818 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r1 - ldrh r2, [r0] - ldr r1, _0804981C - ands r1, r2 - strh r1, [r0] - b _08049A72 - .align 2, 0 -_08049808: .4byte gUnknown_2023EB8 -_0804980C: .4byte gUnknown_2023D08 -_08049810: .4byte gUnknown_2023F24 -_08049814: .4byte gUnknown_82FACB4 -_08049818: .4byte gUnknown_2023F32 -_0804981C: .4byte 0x0000FDFF -_08049820: - ldrb r0, [r2, #1] - cmp r0, #1 - bne _08049848 - ldr r1, _08049838 - ldr r0, _0804983C - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _08049840 - ldrb r0, [r0] - mov sb, r0 - ldr r4, _08049844 - b _08049858 - .align 2, 0 -_08049838: .4byte gUnknown_2023D08 -_0804983C: .4byte gUnknown_2023EAF -_08049840: .4byte gUnknown_2023EB0 -_08049844: .4byte gUnknown_8288D32 -_08049848: - ldr r1, _080498C0 - ldr r0, _080498C4 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _080498C8 - ldrb r0, [r0] - mov sb, r0 - ldr r4, _080498CC -_08049858: - mov r8, r1 - ldr r0, _080498D0 - ldrb r1, [r0] - ldr r2, _080498D4 - mov r7, r8 - ldrb r3, [r7] - lsls r0, r3, #2 - adds r0, r0, r2 - ldr r2, [r0] - ands r1, r2 - cmp r1, #0 - beq _08049872 - b _08049A6C -_08049872: - ldr r1, _080498D8 - movs r0, #0x58 - muls r0, r3, r0 - adds r0, r0, r1 - ldrh r0, [r0, #0x28] - cmp r0, #0 - beq _08049882 - b _08049A6C -_08049882: - ldr r5, _080498DC - lsls r1, r2, #0x1c - ldr r0, [r5] - orrs r0, r1 - str r0, [r5] - ldr r0, [r6] - adds r0, #7 - bl BattleScriptPush - str r4, [r6] - ldrb r0, [r7] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080498E4 - ldr r0, [r5] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r5] - ldr r1, _080498E0 - ldrb r0, [r1] - cmp r0, #0xfe - bhi _080498B8 - adds r0, #1 - strb r0, [r1] -_080498B8: - ldrb r0, [r7] - bl AdjustFriendshipOnBattleFaint - b _0804990E - .align 2, 0 -_080498C0: .4byte gUnknown_2023D08 -_080498C4: .4byte gUnknown_2023EB0 -_080498C8: .4byte gUnknown_2023EAF -_080498CC: .4byte gUnknown_8288D3F -_080498D0: .4byte gUnknown_2023EB4 -_080498D4: .4byte gUnknown_82FACB4 -_080498D8: .4byte gUnknown_2023D28 -_080498DC: .4byte gUnknown_2023F24 -_080498E0: .4byte gUnknown_3005A70 -_080498E4: - ldr r4, _08049A2C - ldrb r0, [r4, #1] - cmp r0, #0xfe - bhi _080498F0 - adds r0, #1 - strb r0, [r4, #1] -_080498F0: - ldr r1, _08049A30 - mov r2, r8 - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08049A34 - adds r0, r0, r1 - movs r1, #0xb - movs r2, #0 - bl GetMonData - strh r0, [r4, #0x20] -_0804990E: - ldr r2, _08049A38 - ldr r1, [r2] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0804994C - ldr r6, _08049A3C - ldr r0, _08049A40 - ldrb r0, [r0] - movs r5, #0x58 - muls r0, r5, r0 - adds r0, r0, r6 - ldrh r0, [r0, #0x28] - cmp r0, #0 - beq _0804994C - movs r0, #0x41 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r2] - ldr r4, _08049A44 - ldr r0, [r4] - bl BattleScriptPush - ldr r1, _08049A48 - mov r0, sb - muls r0, r5, r0 - adds r0, r0, r6 - ldrh r0, [r0, #0x28] - str r0, [r1] - ldr r0, _08049A4C - str r0, [r4] -_0804994C: - ldr r1, _08049A50 - ldr r6, _08049A54 - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #7 - ands r0, r1 - cmp r0, #0 - bne _08049964 - b _08049A72 -_08049964: - ldr r0, _08049A38 - ldr r5, [r0] - movs r0, #0x80 - lsls r0, r0, #0x11 - ands r5, r0 - cmp r5, #0 - beq _08049974 - b _08049A72 -_08049974: - ldr r3, _08049A40 - mov r8, r3 - ldrb r0, [r3] - bl GetBattlerSide - adds r4, r0, #0 - ldrb r0, [r6] - bl GetBattlerSide - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - beq _08049A72 - ldr r0, _08049A3C - mov sb, r0 - mov r2, r8 - ldrb r1, [r2] - movs r7, #0x58 - adds r2, r1, #0 - muls r2, r7, r2 - adds r0, r2, r0 - ldrh r0, [r0, #0x28] - cmp r0, #0 - beq _08049A72 - ldr r0, _08049A58 - ldrh r0, [r0] - cmp r0, #0xa5 - beq _08049A72 - ldr r0, _08049A5C - ldr r0, [r0] - adds r0, r1, r0 - adds r0, #0x80 - ldrb r4, [r0] - adds r0, r4, r2 - mov r6, sb - adds r6, #0x24 - adds r0, r0, r6 - strb r5, [r0] - ldr r5, _08049A44 - ldr r0, [r5] - bl BattleScriptPush - ldr r0, _08049A60 - str r0, [r5] - ldr r5, _08049A64 - mov r3, r8 - ldrb r0, [r3] - strb r0, [r5] - adds r1, r4, #0 - adds r1, #9 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrb r0, [r5] - muls r0, r7, r0 - adds r0, r0, r6 - adds r0, r0, r4 - str r0, [sp] - movs r0, #0 - movs r2, #0 - movs r3, #1 - bl BtlController_EmitSetMonData - ldrb r0, [r5] - bl MarkBattlerForControllerExec - ldr r1, _08049A68 - movs r0, #0xfd - strb r0, [r1] - movs r0, #2 - strb r0, [r1, #1] - lsls r4, r4, #1 - mov r2, r8 - ldrb r0, [r2] - muls r0, r7, r0 - adds r0, r4, r0 - mov r2, sb - adds r2, #0xc - adds r0, r0, r2 - ldrh r0, [r0] - strb r0, [r1, #2] - mov r3, r8 - ldrb r0, [r3] - muls r0, r7, r0 - adds r4, r4, r0 - adds r4, r4, r2 - ldrh r0, [r4] - lsrs r0, r0, #8 - strb r0, [r1, #3] - movs r0, #0xff - strb r0, [r1, #4] - b _08049A72 - .align 2, 0 -_08049A2C: .4byte gUnknown_3005A70 -_08049A30: .4byte gUnknown_2023D12 -_08049A34: .4byte gUnknown_20243E8 -_08049A38: .4byte gUnknown_2023F24 -_08049A3C: .4byte gUnknown_2023D28 -_08049A40: .4byte gUnknown_2023EAF -_08049A44: .4byte gUnknown_2023EB8 -_08049A48: .4byte gUnknown_2023E94 -_08049A4C: .4byte gUnknown_82893C6 -_08049A50: .4byte gUnknown_2023F50 -_08049A54: .4byte gUnknown_2023EB0 -_08049A58: .4byte gUnknown_2023E8E -_08049A5C: .4byte gUnknown_2024140 -_08049A60: .4byte gUnknown_8289715 -_08049A64: .4byte gUnknown_2023D08 -_08049A68: .4byte gUnknown_2022C0C -_08049A6C: - ldr r0, [r6] - adds r0, #7 - str r0, [r6] -_08049A72: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end atk19_tryfaintmon - - thumb_func_start atk1A_dofaintanimation -atk1A_dofaintanimation: @ 0x08049A80 - push {r4, r5, lr} - ldr r0, _08049AB0 - ldr r0, [r0] - cmp r0, #0 - bne _08049AAA - ldr r5, _08049AB4 - ldr r0, [r5] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - ldr r4, _08049AB8 - strb r0, [r4] - movs r0, #0 - bl BtlController_EmitFaintAnimation - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldr r0, [r5] - adds r0, #2 - str r0, [r5] -_08049AAA: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08049AB0: .4byte gUnknown_2023D0C -_08049AB4: .4byte gUnknown_2023EB8 -_08049AB8: .4byte gUnknown_2023D08 - thumb_func_end atk1A_dofaintanimation - - thumb_func_start atk1B_cleareffectsonfaint -atk1B_cleareffectsonfaint: @ 0x08049ABC - push {r4, r5, lr} - sub sp, #4 - ldr r0, _08049B30 - ldr r5, [r0] - cmp r5, #0 - bne _08049B28 - ldr r0, _08049B34 - ldr r0, [r0] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - ldr r4, _08049B38 - strb r0, [r4] - ldr r0, _08049B3C - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xb - ands r0, r1 - cmp r0, #0 - beq _08049AF4 - ldr r2, _08049B40 - ldrb r1, [r4] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - ldrh r0, [r0, #0x28] - cmp r0, #0 - bne _08049B1C -_08049AF4: - ldr r1, _08049B40 - ldrb r0, [r4] - movs r2, #0x58 - muls r0, r2, r0 - adds r1, #0x4c - adds r0, r0, r1 - str r5, [r0] - ldrb r0, [r4] - muls r0, r2, r0 - adds r0, r0, r1 - str r0, [sp] - movs r0, #0 - movs r1, #0x28 - movs r2, #0 - movs r3, #4 - bl BtlController_EmitSetMonData - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_08049B1C: - bl FaintClearSetData - ldr r1, _08049B34 - ldr r0, [r1] - adds r0, #2 - str r0, [r1] -_08049B28: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08049B30: .4byte gUnknown_2023D0C -_08049B34: .4byte gUnknown_2023EB8 -_08049B38: .4byte gUnknown_2023D08 -_08049B3C: .4byte gUnknown_2022C90 -_08049B40: .4byte gUnknown_2023D28 - thumb_func_end atk1B_cleareffectsonfaint - - thumb_func_start atk1C_jumpifstatus -atk1C_jumpifstatus: @ 0x08049B44 - push {r4, r5, lr} - ldr r5, _08049BA0 - ldr r0, [r5] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, [r5] - ldrb r4, [r2, #2] - ldrb r1, [r2, #3] - lsls r1, r1, #8 - adds r4, r4, r1 - ldrb r1, [r2, #4] - lsls r1, r1, #0x10 - adds r4, r4, r1 - ldrb r1, [r2, #5] - lsls r1, r1, #0x18 - adds r4, r4, r1 - ldrb r3, [r2, #6] - ldrb r1, [r2, #7] - lsls r1, r1, #8 - adds r3, r3, r1 - ldrb r1, [r2, #8] - lsls r1, r1, #0x10 - adds r3, r3, r1 - ldrb r1, [r2, #9] - lsls r1, r1, #0x18 - adds r3, r3, r1 - ldr r2, _08049BA4 - movs r1, #0x58 - muls r1, r0, r1 - adds r0, r2, #0 - adds r0, #0x4c - adds r0, r1, r0 - ldr r0, [r0] - ands r0, r4 - cmp r0, #0 - beq _08049BA8 - adds r0, r1, r2 - ldrh r0, [r0, #0x28] - cmp r0, #0 - beq _08049BA8 - str r3, [r5] - b _08049BB0 - .align 2, 0 -_08049BA0: .4byte gUnknown_2023EB8 -_08049BA4: .4byte gUnknown_2023D28 -_08049BA8: - ldr r1, _08049BB8 - ldr r0, [r1] - adds r0, #0xa - str r0, [r1] -_08049BB0: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08049BB8: .4byte gUnknown_2023EB8 - thumb_func_end atk1C_jumpifstatus - - thumb_func_start atk1D_jumpifstatus2 -atk1D_jumpifstatus2: @ 0x08049BBC - push {r4, r5, lr} - ldr r5, _08049C18 - ldr r0, [r5] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, [r5] - ldrb r4, [r2, #2] - ldrb r1, [r2, #3] - lsls r1, r1, #8 - adds r4, r4, r1 - ldrb r1, [r2, #4] - lsls r1, r1, #0x10 - adds r4, r4, r1 - ldrb r1, [r2, #5] - lsls r1, r1, #0x18 - adds r4, r4, r1 - ldrb r3, [r2, #6] - ldrb r1, [r2, #7] - lsls r1, r1, #8 - adds r3, r3, r1 - ldrb r1, [r2, #8] - lsls r1, r1, #0x10 - adds r3, r3, r1 - ldrb r1, [r2, #9] - lsls r1, r1, #0x18 - adds r3, r3, r1 - ldr r2, _08049C1C - movs r1, #0x58 - muls r1, r0, r1 - adds r0, r2, #0 - adds r0, #0x50 - adds r0, r1, r0 - ldr r0, [r0] - ands r0, r4 - cmp r0, #0 - beq _08049C20 - adds r0, r1, r2 - ldrh r0, [r0, #0x28] - cmp r0, #0 - beq _08049C20 - str r3, [r5] - b _08049C28 - .align 2, 0 -_08049C18: .4byte gUnknown_2023EB8 -_08049C1C: .4byte gUnknown_2023D28 -_08049C20: - ldr r1, _08049C30 - ldr r0, [r1] - adds r0, #0xa - str r0, [r1] -_08049C28: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08049C30: .4byte gUnknown_2023EB8 - thumb_func_end atk1D_jumpifstatus2 - - thumb_func_start atk1E_jumpifability -atk1E_jumpifability: @ 0x08049C34 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - ldr r6, _08049C88 - ldr r2, [r6] - ldrb r5, [r2, #2] - mov r8, r5 - ldrb r1, [r2, #3] - ldrb r0, [r2, #4] - lsls r0, r0, #8 - adds r1, r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x10 - adds r1, r1, r0 - ldrb r0, [r2, #6] - lsls r0, r0, #0x18 - adds r7, r1, r0 - ldrb r0, [r2, #1] - cmp r0, #8 - bne _08049C94 - ldr r0, _08049C8C - ldrb r1, [r0] - movs r0, #0 - str r0, [sp] - movs r0, #0xd - adds r2, r5, #0 - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - beq _08049D08 - ldr r1, _08049C90 - strb r5, [r1] - str r7, [r6] - subs r4, #1 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1] - b _08049CF0 - .align 2, 0 -_08049C88: .4byte gUnknown_2023EB8 -_08049C8C: .4byte gUnknown_2023EAF -_08049C90: .4byte gUnknown_2023EAE -_08049C94: - cmp r0, #9 - bne _08049CCC - ldr r0, _08049CC4 - ldrb r1, [r0] - movs r0, #0 - str r0, [sp] - movs r0, #0xc - adds r2, r5, #0 - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - beq _08049D08 - ldr r1, _08049CC8 - strb r5, [r1] - str r7, [r6] - subs r4, #1 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1] - b _08049CF0 - .align 2, 0 -_08049CC4: .4byte gUnknown_2023EAF -_08049CC8: .4byte gUnknown_2023EAE -_08049CCC: - ldrb r0, [r2, #1] - bl GetBattlerForBattleScript - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08049CFC - movs r0, #0x58 - muls r0, r4, r0 - adds r0, r0, r1 - adds r0, #0x20 - ldrb r1, [r0] - cmp r1, r8 - bne _08049D08 - ldr r0, _08049D00 - strb r1, [r0] - str r7, [r6] - ldrb r1, [r0] - adds r0, r4, #0 -_08049CF0: - bl RecordAbilityBattle - ldr r0, _08049D04 - strb r4, [r0, #0x15] - b _08049D0E - .align 2, 0 -_08049CFC: .4byte gUnknown_2023D28 -_08049D00: .4byte gUnknown_2023EAE -_08049D04: .4byte gUnknown_2024118 -_08049D08: - ldr r0, [r6] - adds r0, #7 - str r0, [r6] -_08049D0E: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end atk1E_jumpifability - - thumb_func_start atk1F_jumpifsideaffecting -atk1F_jumpifsideaffecting: @ 0x08049D1C - push {r4, r5, r6, lr} - ldr r0, _08049D34 - ldr r0, [r0] - ldrb r4, [r0, #1] - cmp r4, #1 - bne _08049D3C - ldr r0, _08049D38 - ldrb r0, [r0] - bl sub_080A630C - b _08049D46 - .align 2, 0 -_08049D34: .4byte gUnknown_2023EB8 -_08049D38: .4byte gUnknown_2023EAF -_08049D3C: - ldr r0, _08049D7C - ldrb r0, [r0] - bl sub_080A630C - movs r4, #1 -_08049D46: - ands r4, r0 - ldr r6, _08049D80 - ldr r3, [r6] - ldrb r2, [r3, #2] - ldrb r0, [r3, #3] - lsls r0, r0, #8 - orrs r2, r0 - ldrb r1, [r3, #4] - ldrb r0, [r3, #5] - lsls r0, r0, #8 - adds r1, r1, r0 - ldrb r0, [r3, #6] - lsls r0, r0, #0x10 - adds r1, r1, r0 - ldrb r0, [r3, #7] - lsls r0, r0, #0x18 - adds r5, r1, r0 - ldr r1, _08049D84 - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r0, [r0] - ands r2, r0 - cmp r2, #0 - beq _08049D88 - str r5, [r6] - b _08049D8E - .align 2, 0 -_08049D7C: .4byte gUnknown_2023EB0 -_08049D80: .4byte gUnknown_2023EB8 -_08049D84: .4byte gUnknown_2023F32 -_08049D88: - adds r0, r3, #0 - adds r0, #8 - str r0, [r6] -_08049D8E: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end atk1F_jumpifsideaffecting - - thumb_func_start atk20_jumpifstat -atk20_jumpifstat: @ 0x08049D94 - push {r4, r5, lr} - movs r5, #0 - ldr r4, _08049DC8 - ldr r0, [r4] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08049DCC - ldr r3, [r4] - movs r1, #0x58 - muls r0, r1, r0 - ldrb r1, [r3, #3] - adds r0, r0, r1 - adds r2, #0x18 - adds r0, r0, r2 - ldrb r2, [r0] - ldrb r0, [r3, #2] - cmp r0, #5 - bhi _08049E52 - lsls r0, r0, #2 - ldr r1, _08049DD0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08049DC8: .4byte gUnknown_2023EB8 -_08049DCC: .4byte gUnknown_2023D28 -_08049DD0: .4byte _08049DD4 -_08049DD4: @ jump table - .4byte _08049DEC @ case 0 - .4byte _08049DFC @ case 1 - .4byte _08049E0C @ case 2 - .4byte _08049E1C @ case 3 - .4byte _08049E2C @ case 4 - .4byte _08049E40 @ case 5 -_08049DEC: - ldr r0, _08049DF8 - ldr r0, [r0] - ldrb r0, [r0, #4] - cmp r2, r0 - bne _08049E52 - b _08049E4C - .align 2, 0 -_08049DF8: .4byte gUnknown_2023EB8 -_08049DFC: - ldr r0, _08049E08 - ldr r0, [r0] - ldrb r0, [r0, #4] - cmp r2, r0 - beq _08049E52 - b _08049E4C - .align 2, 0 -_08049E08: .4byte gUnknown_2023EB8 -_08049E0C: - ldr r0, _08049E18 - ldr r0, [r0] - ldrb r0, [r0, #4] - cmp r2, r0 - bls _08049E52 - b _08049E4C - .align 2, 0 -_08049E18: .4byte gUnknown_2023EB8 -_08049E1C: - ldr r0, _08049E28 - ldr r0, [r0] - ldrb r0, [r0, #4] - cmp r2, r0 - bhs _08049E52 - b _08049E4C - .align 2, 0 -_08049E28: .4byte gUnknown_2023EB8 -_08049E2C: - ldr r0, _08049E3C - ldr r0, [r0] - ldrb r0, [r0, #4] - ands r2, r0 - cmp r2, #0 - beq _08049E52 - b _08049E4C - .align 2, 0 -_08049E3C: .4byte gUnknown_2023EB8 -_08049E40: - ldr r0, _08049E74 - ldr r0, [r0] - ldrb r0, [r0, #4] - ands r2, r0 - cmp r2, #0 - bne _08049E52 -_08049E4C: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_08049E52: - cmp r5, #0 - beq _08049E78 - ldr r3, _08049E74 - ldr r2, [r3] - ldrb r1, [r2, #5] - ldrb r0, [r2, #6] - lsls r0, r0, #8 - adds r1, r1, r0 - ldrb r0, [r2, #7] - lsls r0, r0, #0x10 - adds r1, r1, r0 - ldrb r0, [r2, #8] - lsls r0, r0, #0x18 - adds r1, r1, r0 - str r1, [r3] - b _08049E80 - .align 2, 0 -_08049E74: .4byte gUnknown_2023EB8 -_08049E78: - ldr r1, _08049E88 - ldr r0, [r1] - adds r0, #9 - str r0, [r1] -_08049E80: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08049E88: .4byte gUnknown_2023EB8 - thumb_func_end atk20_jumpifstat - - thumb_func_start atk21_jumpifstatus3condition -atk21_jumpifstatus3condition: @ 0x08049E8C - push {r4, r5, r6, lr} - ldr r4, _08049EE0 - ldr r0, [r4] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - ldr r5, _08049EE4 - strb r0, [r5] - ldr r2, [r4] - ldrb r1, [r2, #2] - ldrb r0, [r2, #3] - lsls r0, r0, #8 - adds r1, r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x10 - adds r1, r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x18 - adds r6, r1, r0 - ldrb r1, [r2, #7] - ldrb r0, [r2, #8] - lsls r0, r0, #8 - adds r1, r1, r0 - ldrb r0, [r2, #9] - lsls r0, r0, #0x10 - adds r1, r1, r0 - ldrb r0, [r2, #0xa] - lsls r0, r0, #0x18 - adds r3, r1, r0 - ldrb r0, [r2, #6] - cmp r0, #0 - beq _08049EEC - ldr r0, _08049EE8 - ldrb r1, [r5] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - ands r0, r6 - cmp r0, #0 - bne _08049F04 - b _08049EFC - .align 2, 0 -_08049EE0: .4byte gUnknown_2023EB8 -_08049EE4: .4byte gUnknown_2023D08 -_08049EE8: .4byte gUnknown_2023F50 -_08049EEC: - ldr r0, _08049F00 - ldrb r1, [r5] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - ands r0, r6 - cmp r0, #0 - beq _08049F04 -_08049EFC: - str r3, [r4] - b _08049F0A - .align 2, 0 -_08049F00: .4byte gUnknown_2023F50 -_08049F04: - adds r0, r2, #0 - adds r0, #0xb - str r0, [r4] -_08049F0A: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end atk21_jumpifstatus3condition - - thumb_func_start atk22_jumpiftype -atk22_jumpiftype: @ 0x08049F10 - push {r4, r5, r6, lr} - ldr r4, _08049F58 - ldr r0, [r4] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, [r4] - ldrb r5, [r3, #2] - ldrb r2, [r3, #3] - ldrb r1, [r3, #4] - lsls r1, r1, #8 - adds r2, r2, r1 - ldrb r1, [r3, #5] - lsls r1, r1, #0x10 - adds r2, r2, r1 - ldrb r1, [r3, #6] - lsls r1, r1, #0x18 - adds r6, r2, r1 - ldr r2, _08049F5C - movs r1, #0x58 - muls r0, r1, r0 - adds r1, r0, r2 - adds r0, r1, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, r5 - beq _08049F54 - adds r0, r1, #0 - adds r0, #0x22 - ldrb r0, [r0] - cmp r0, r5 - bne _08049F60 -_08049F54: - str r6, [r4] - b _08049F64 - .align 2, 0 -_08049F58: .4byte gUnknown_2023EB8 -_08049F5C: .4byte gUnknown_2023D28 -_08049F60: - adds r0, r3, #7 - str r0, [r4] -_08049F64: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end atk22_jumpiftype - - thumb_func_start atk23_getexp -atk23_getexp: @ 0x08049F6C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - movs r6, #0 - ldr r0, _08049FB4 - ldr r0, [r0] - adds r0, #0x50 - mov sb, r0 - ldr r0, _08049FB8 - ldr r0, [r0] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - ldr r1, _08049FBC - strb r0, [r1] - ldr r2, _08049FC0 - movs r1, #2 - ands r1, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x19 - adds r1, r1, r2 - ldrb r1, [r1] - mov r8, r1 - ldr r0, _08049FC4 - ldrb r0, [r0, #0x1c] - cmp r0, #6 - bls _08049FA8 - bl _0804A8E2 -_08049FA8: - lsls r0, r0, #2 - ldr r1, _08049FC8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08049FB4: .4byte gUnknown_2024140 -_08049FB8: .4byte gUnknown_2023EB8 -_08049FBC: .4byte gUnknown_2023EB1 -_08049FC0: .4byte gUnknown_20240A2 -_08049FC4: .4byte gUnknown_2024118 -_08049FC8: .4byte _08049FCC -_08049FCC: @ jump table - .4byte _08049FE8 @ case 0 - .4byte _0804A054 @ case 1 - .4byte _0804A16E @ case 2 - .4byte _0804A480 @ case 3 - .4byte _0804A584 @ case 4 - .4byte _0804A870 @ case 5 - .4byte _0804A8B8 @ case 6 -_08049FE8: - ldr r4, _0804A038 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08049FFC - bl _0804A8AC -_08049FFC: - ldr r0, _0804A03C - ldr r0, [r0] - ldr r1, _0804A040 - ands r0, r1 - cmp r0, #0 - beq _0804A00C - bl _0804A8AC -_0804A00C: - ldr r1, _0804A044 - ldrb r0, [r1, #0x1c] - adds r0, #1 - strb r0, [r1, #0x1c] - ldr r0, _0804A048 - ldr r2, [r0] - adds r2, #0xdf - ldr r3, _0804A04C - ldr r1, _0804A050 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r3 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - bl _0804A8E2 - .align 2, 0 -_0804A038: .4byte gUnknown_2023EB1 -_0804A03C: .4byte gUnknown_2022C90 -_0804A040: .4byte 0x063F0982 -_0804A044: .4byte gUnknown_2024118 -_0804A048: .4byte gUnknown_2024140 -_0804A04C: .4byte gUnknown_82FACB4 -_0804A050: .4byte gUnknown_2023D12 -_0804A054: - movs r5, #0 - movs r7, #0 -_0804A058: - movs r0, #0x64 - adds r1, r7, #0 - muls r1, r0, r1 - ldr r0, _0804A0A8 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _0804A0C6 - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _0804A0C6 - ldr r0, _0804A0AC - lsls r1, r7, #2 - adds r1, r1, r0 - ldr r0, [r1] - mov r1, r8 - ands r0, r1 - cmp r0, #0 - beq _0804A08C - adds r5, #1 -_0804A08C: - adds r0, r4, #0 - movs r1, #0xc - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xaf - bne _0804A0B8 - ldr r0, _0804A0B0 - ldr r0, [r0] - ldr r2, _0804A0B4 - adds r0, r0, r2 - ldrb r4, [r0] - b _0804A0C0 - .align 2, 0 -_0804A0A8: .4byte gUnknown_2024190 -_0804A0AC: .4byte gUnknown_82FACB4 -_0804A0B0: .4byte gUnknown_3005AEC -_0804A0B4: .4byte 0x00003226 -_0804A0B8: - bl sub_080D6CF8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_0804A0C0: - cmp r4, #0x19 - bne _0804A0C6 - adds r6, #1 -_0804A0C6: - adds r7, #1 - cmp r7, #5 - ble _0804A058 - ldr r3, _0804A12C - ldr r2, _0804A130 - ldr r0, _0804A134 - ldrb r1, [r0] - movs r0, #0x58 - muls r1, r0, r1 - adds r1, r1, r2 - ldrh r2, [r1] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r2, [r0, #9] - adds r1, #0x2a - ldrb r0, [r1] - muls r0, r2, r0 - movs r1, #7 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r6, #0 - beq _0804A13C - lsrs r4, r0, #0x11 - adds r0, r4, #0 - adds r1, r5, #0 - bl __divsi3 - mov r3, sb - strh r0, [r3] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0804A112 - movs r0, #1 - strh r0, [r3] -_0804A112: - ldr r5, _0804A138 - adds r0, r4, #0 - adds r1, r6, #0 - bl __divsi3 - strh r0, [r5] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0804A156 - movs r0, #1 - strh r0, [r5] - b _0804A156 - .align 2, 0 -_0804A12C: .4byte gUnknown_82F0D54 -_0804A130: .4byte gUnknown_2023D28 -_0804A134: .4byte gUnknown_2023EB1 -_0804A138: .4byte gUnknown_20240A6 -_0804A13C: - adds r0, r1, #0 - adds r1, r5, #0 - bl __divsi3 - mov r1, sb - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0804A152 - movs r0, #1 - strh r0, [r1] -_0804A152: - ldr r0, _0804A1A0 - strh r6, [r0] -_0804A156: - ldr r1, _0804A1A4 - ldrb r0, [r1, #0x1c] - adds r0, #1 - movs r2, #0 - strb r0, [r1, #0x1c] - ldr r1, _0804A1A8 - ldr r0, [r1] - strb r2, [r0, #0x10] - ldr r0, [r1] - adds r0, #0x53 - mov r2, r8 - strb r2, [r0] -_0804A16E: - ldr r0, _0804A1AC - ldr r0, [r0] - cmp r0, #0 - beq _0804A178 - b _0804A8E2 -_0804A178: - ldr r0, _0804A1A8 - ldr r0, [r0] - ldrb r1, [r0, #0x10] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0804A1B0 - adds r0, r0, r1 - movs r1, #0xc - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xaf - bne _0804A1BC - ldr r0, _0804A1B4 - ldr r0, [r0] - ldr r3, _0804A1B8 - adds r0, r0, r3 - ldrb r4, [r0] - b _0804A1C4 - .align 2, 0 -_0804A1A0: .4byte gUnknown_20240A6 -_0804A1A4: .4byte gUnknown_2024118 -_0804A1A8: .4byte gUnknown_2024140 -_0804A1AC: .4byte gUnknown_2023D0C -_0804A1B0: .4byte gUnknown_2024190 -_0804A1B4: .4byte gUnknown_3005AEC -_0804A1B8: .4byte 0x00003226 -_0804A1BC: - bl sub_080D6CF8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_0804A1C4: - ldr r5, _0804A1E4 - cmp r4, #0x19 - beq _0804A1EC - ldr r0, [r5] - adds r1, r0, #0 - adds r1, #0x53 - ldrb r0, [r1] - movs r2, #1 - ands r2, r0 - cmp r2, #0 - bne _0804A1EC - lsrs r0, r0, #1 - strb r0, [r1] - ldr r1, _0804A1E8 - b _0804A210 - .align 2, 0 -_0804A1E4: .4byte gUnknown_2024140 -_0804A1E8: .4byte gUnknown_2024118 -_0804A1EC: - ldr r0, [r5] - ldrb r1, [r0, #0x10] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0804A21C - adds r0, r0, r1 - movs r1, #0x38 - bl GetMonData - cmp r0, #0x64 - bne _0804A228 - ldr r1, [r5] - adds r1, #0x53 - ldrb r0, [r1] - lsrs r0, r0, #1 - strb r0, [r1] - ldr r1, _0804A220 - movs r2, #0 -_0804A210: - movs r0, #5 - strb r0, [r1, #0x1c] - ldr r0, _0804A224 - str r2, [r0] - b _0804A8E2 - .align 2, 0 -_0804A21C: .4byte gUnknown_2024190 -_0804A220: .4byte gUnknown_2024118 -_0804A224: .4byte gUnknown_2023E94 -_0804A228: - ldr r0, _0804A28C - ldr r0, [r0] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - bne _0804A256 - ldr r0, _0804A290 - ldrh r0, [r0, #0x28] - cmp r0, #0 - beq _0804A256 - ldr r0, [r5] - ldrb r0, [r0, #0x12] - cmp r0, #0 - bne _0804A256 - bl BattleStopLowHpSound - ldr r0, _0804A294 - bl PlayBGM - ldr r1, [r5] - ldrb r0, [r1, #0x12] - adds r0, #1 - strb r0, [r1, #0x12] -_0804A256: - ldr r5, _0804A298 - ldr r0, [r5] - ldrb r1, [r0, #0x10] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0804A29C - adds r0, r0, r1 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - bne _0804A270 - b _0804A45A -_0804A270: - ldr r0, [r5] - adds r0, #0x53 - ldrb r0, [r0] - movs r3, #1 - ands r3, r0 - cmp r3, #0 - beq _0804A2A4 - ldr r1, _0804A2A0 - mov r2, sb - ldrh r0, [r2] - str r0, [r1] - mov sb, r1 - b _0804A2AA - .align 2, 0 -_0804A28C: .4byte gUnknown_2022C90 -_0804A290: .4byte gUnknown_2023D28 -_0804A294: .4byte 0x00000161 -_0804A298: .4byte gUnknown_2024140 -_0804A29C: .4byte gUnknown_2024190 -_0804A2A0: .4byte gUnknown_2023E94 -_0804A2A4: - ldr r0, _0804A320 - str r3, [r0] - mov sb, r0 -_0804A2AA: - cmp r4, #0x19 - bne _0804A2BA - ldr r0, _0804A324 - ldrh r1, [r0] - mov r3, sb - ldr r0, [r3] - adds r0, r0, r1 - str r0, [r3] -_0804A2BA: - cmp r4, #0x28 - bne _0804A2D0 - mov r0, sb - ldr r1, [r0] - movs r0, #0x96 - muls r0, r1, r0 - movs r1, #0x64 - bl __divsi3 - mov r1, sb - str r0, [r1] -_0804A2D0: - ldr r5, _0804A328 - ldr r0, [r5] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _0804A2EC - ldr r4, _0804A320 - ldr r1, [r4] - movs r0, #0x96 - muls r0, r1, r0 - movs r1, #0x64 - bl __divsi3 - str r0, [r4] -_0804A2EC: - ldr r4, _0804A32C - ldr r0, [r4] - ldrb r1, [r0, #0x10] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0804A330 - adds r0, r0, r1 - bl IsTradedMon - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0804A354 - ldr r0, [r5] - movs r1, #0x80 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - beq _0804A338 - ldr r0, [r4] - ldrb r0, [r0, #0x10] - cmp r0, #2 - bls _0804A338 - ldr r7, _0804A334 - ldr r2, _0804A320 - mov sb, r2 - b _0804A35A - .align 2, 0 -_0804A320: .4byte gUnknown_2023E94 -_0804A324: .4byte gUnknown_20240A6 -_0804A328: .4byte gUnknown_2022C90 -_0804A32C: .4byte gUnknown_2024140 -_0804A330: .4byte gUnknown_2024190 -_0804A334: .4byte 0x00000149 -_0804A338: - ldr r4, _0804A350 - ldr r1, [r4] - movs r0, #0x96 - muls r0, r1, r0 - movs r1, #0x64 - bl __divsi3 - str r0, [r4] - movs r7, #0xa5 - lsls r7, r7, #1 - mov sb, r4 - b _0804A35A - .align 2, 0 -_0804A350: .4byte gUnknown_2023E94 -_0804A354: - ldr r7, _0804A390 - ldr r3, _0804A394 - mov sb, r3 -_0804A35A: - ldr r0, _0804A398 - ldr r1, [r0] - movs r0, #1 - ands r1, r0 - cmp r1, #0 - beq _0804A3C6 - ldr r0, _0804A39C - ldr r1, _0804A3A0 - ldr r4, [r1] - ldrh r0, [r0, #4] - adds r5, r1, #0 - ldr r3, _0804A3A4 - ldr r2, _0804A3A8 - ldrb r1, [r4, #0x10] - cmp r0, r1 - bne _0804A3AC - ldrb r1, [r2] - ldr r0, [r3, #8] - ands r1, r0 - cmp r1, #0 - bne _0804A3AC - adds r1, r4, #0 - adds r1, #0x8f - movs r0, #2 - strb r0, [r1] - b _0804A3CE - .align 2, 0 -_0804A390: .4byte 0x00000149 -_0804A394: .4byte gUnknown_2023E94 -_0804A398: .4byte gUnknown_2022C90 -_0804A39C: .4byte gUnknown_2023D12 -_0804A3A0: .4byte gUnknown_2024140 -_0804A3A4: .4byte gUnknown_82FACB4 -_0804A3A8: .4byte gUnknown_2023EB4 -_0804A3AC: - ldrb r2, [r2] - ldr r0, [r3] - ands r2, r0 - cmp r2, #0 - bne _0804A3BE - ldr r0, [r5] - adds r0, #0x8f - strb r2, [r0] - b _0804A3CE -_0804A3BE: - ldr r0, [r5] - adds r0, #0x8f - movs r1, #2 - b _0804A3CC -_0804A3C6: - ldr r0, _0804A468 - ldr r0, [r0] - adds r0, #0x8f -_0804A3CC: - strb r1, [r0] -_0804A3CE: - ldr r1, _0804A46C - movs r2, #0 - mov ip, r2 - movs r4, #0xfd - strb r4, [r1] - movs r5, #4 - strb r5, [r1, #1] - ldr r6, _0804A468 - ldr r2, [r6] - movs r3, #0x8f - adds r3, r3, r2 - mov r8, r3 - ldrb r0, [r3] - strb r0, [r1, #2] - ldrb r0, [r2, #0x10] - strb r0, [r1, #3] - mov r0, ip - strb r0, [r1, #4] - strb r7, [r1, #5] - movs r3, #0xff - lsls r3, r3, #8 - ands r7, r3 - asrs r0, r7, #8 - strb r0, [r1, #6] - movs r0, #0xff - strb r0, [r1, #7] - ldr r1, _0804A470 - strb r4, [r1] - movs r0, #1 - strb r0, [r1, #1] - strb r5, [r1, #2] - movs r0, #5 - strb r0, [r1, #3] - mov r0, sb - ldr r2, [r0] - strb r2, [r1, #4] - adds r0, r2, #0 - ands r0, r3 - asrs r0, r0, #8 - strb r0, [r1, #5] - movs r0, #0xff - lsls r0, r0, #0x10 - ands r0, r2 - asrs r0, r0, #0x10 - strb r0, [r1, #6] - lsrs r2, r2, #0x18 - strb r2, [r1, #7] - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r1, #8] - mov r2, r8 - ldrb r1, [r2] - movs r0, #0xd - bl PrepareStringBattle - ldr r0, [r6] - ldrb r1, [r0, #0x10] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0804A474 - adds r0, r0, r1 - ldr r3, _0804A478 - ldr r1, _0804A47C - ldrb r2, [r1] - movs r1, #0x58 - muls r1, r2, r1 - adds r1, r1, r3 - ldrh r1, [r1] - bl MonGainEVs -_0804A45A: - ldr r0, _0804A468 - ldr r1, [r0] - adds r1, #0x53 - ldrb r0, [r1] - lsrs r0, r0, #1 - strb r0, [r1] - b _0804A55A - .align 2, 0 -_0804A468: .4byte gUnknown_2024140 -_0804A46C: .4byte gUnknown_2022C0C -_0804A470: .4byte gUnknown_2022C1C -_0804A474: .4byte gUnknown_2024190 -_0804A478: .4byte gUnknown_2023D28 -_0804A47C: .4byte gUnknown_2023EB1 -_0804A480: - ldr r0, _0804A564 - ldr r2, [r0] - cmp r2, #0 - beq _0804A48A - b _0804A8E2 -_0804A48A: - ldr r1, _0804A568 - ldr r7, _0804A56C - ldr r0, [r7] - adds r0, #0x8f - ldrb r0, [r0] - lsls r0, r0, #9 - adds r0, r0, r1 - strb r2, [r0] - ldr r0, [r7] - ldrb r0, [r0, #0x10] - movs r6, #0x64 - muls r0, r6, r0 - ldr r5, _0804A570 - adds r0, r0, r5 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _0804A55A - ldr r0, [r7] - ldrb r0, [r0, #0x10] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #0x38 - bl GetMonData - cmp r0, #0x64 - beq _0804A55A - ldr r0, [r7] - ldrb r0, [r0, #0x10] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #0x3a - bl GetMonData - ldr r4, _0804A574 - ldr r1, [r4] - ldr r1, [r1, #0x10] - strh r0, [r1] - ldr r0, [r7] - ldrb r0, [r0, #0x10] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #0x3b - bl GetMonData - ldr r1, [r4] - ldr r1, [r1, #0x10] - strh r0, [r1, #2] - ldr r0, [r7] - ldrb r0, [r0, #0x10] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #0x3c - bl GetMonData - ldr r1, [r4] - ldr r1, [r1, #0x10] - strh r0, [r1, #4] - ldr r0, [r7] - ldrb r0, [r0, #0x10] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #0x3d - bl GetMonData - ldr r1, [r4] - ldr r1, [r1, #0x10] - strh r0, [r1, #6] - ldr r0, [r7] - ldrb r0, [r0, #0x10] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #0x3e - bl GetMonData - ldr r1, [r4] - ldr r1, [r1, #0x10] - strh r0, [r1, #8] - ldr r0, [r7] - ldrb r0, [r0, #0x10] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #0x3f - bl GetMonData - ldr r1, [r4] - ldr r1, [r1, #0x10] - strh r0, [r1, #0xa] - ldr r4, _0804A578 - ldr r1, [r7] - adds r0, r1, #0 - adds r0, #0x8f - ldrb r0, [r0] - strb r0, [r4] - ldrb r1, [r1, #0x10] - ldr r0, _0804A57C - ldrh r2, [r0] - movs r0, #0 - bl BtlController_EmitExpUpdate - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_0804A55A: - ldr r1, _0804A580 - ldrb r0, [r1, #0x1c] - adds r0, #1 - strb r0, [r1, #0x1c] - b _0804A8E2 - .align 2, 0 -_0804A564: .4byte gUnknown_2023D0C -_0804A568: .4byte gUnknown_2023508 -_0804A56C: .4byte gUnknown_2024140 -_0804A570: .4byte gUnknown_2024190 -_0804A574: .4byte gUnknown_202414C -_0804A578: .4byte gUnknown_2023D08 -_0804A57C: .4byte gUnknown_2023E94 -_0804A580: .4byte gUnknown_2024118 -_0804A584: - ldr r0, _0804A81C - ldr r0, [r0] - cmp r0, #0 - beq _0804A58E - b _0804A8E2 -_0804A58E: - ldr r1, _0804A820 - ldr r0, _0804A824 - ldr r4, [r0] - adds r0, r4, #0 - adds r0, #0x8f - ldrb r0, [r0] - strb r0, [r1] - ldr r3, _0804A828 - ldrb r2, [r1] - lsls r1, r2, #9 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, #0x21 - beq _0804A5AC - b _0804A858 -_0804A5AC: - adds r0, r3, #1 - adds r0, r1, r0 - ldrb r0, [r0] - cmp r0, #0xb - beq _0804A5B8 - b _0804A858 -_0804A5B8: - ldr r0, _0804A82C - ldr r0, [r0] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _0804A5E2 - ldr r0, _0804A830 - lsls r1, r2, #1 - adds r1, r1, r0 - ldrh r0, [r1] - ldrb r4, [r4, #0x10] - cmp r0, r4 - bne _0804A5E2 - adds r1, r0, #0 - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0804A834 - adds r0, r0, r1 - adds r1, r2, #0 - bl HandleLowHpMusicChange -_0804A5E2: - ldr r1, _0804A838 - movs r3, #0xfd - strb r3, [r1] - movs r0, #4 - strb r0, [r1, #1] - ldr r6, _0804A820 - ldrb r0, [r6] - strb r0, [r1, #2] - ldr r0, _0804A824 - mov sb, r0 - ldr r2, [r0] - ldrb r0, [r2, #0x10] - strb r0, [r1, #3] - movs r0, #0xff - strb r0, [r1, #4] - ldr r4, _0804A83C - strb r3, [r4] - movs r0, #1 - strb r0, [r4, #1] - strb r0, [r4, #2] - movs r0, #3 - strb r0, [r4, #3] - ldrb r0, [r2, #0x10] - movs r1, #0x64 - mov r8, r1 - mov r2, r8 - muls r2, r0, r2 - adds r0, r2, #0 - ldr r7, _0804A834 - adds r0, r0, r7 - movs r1, #0x38 - bl GetMonData - strb r0, [r4, #4] - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r4, #5] - bl BattleScriptPushCursor - ldr r2, _0804A840 - ldr r1, _0804A844 - mov r3, sb - ldr r5, [r3] - ldrb r0, [r5, #0x10] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r1, _0804A848 - ldr r0, _0804A84C - str r0, [r1] - ldr r4, _0804A850 - ldr r2, _0804A828 - ldrb r1, [r6] - lsls r1, r1, #9 - adds r0, r2, #2 - adds r0, r1, r0 - ldrb r3, [r0] - adds r2, #3 - adds r1, r1, r2 - ldrb r0, [r1] - lsls r0, r0, #8 - orrs r3, r0 - str r3, [r4] - ldrb r0, [r5, #0x10] - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - adds r0, r0, r7 - movs r1, #0 - bl AdjustFriendship - ldr r1, _0804A830 - mov r2, sb - ldr r0, [r2] - ldrb r2, [r0, #0x10] - ldrh r0, [r1] - cmp r0, r2 - bne _0804A74E - ldr r4, _0804A854 - ldrh r0, [r4, #0x28] - cmp r0, #0 - beq _0804A74E - mov r0, r8 - muls r0, r2, r0 - adds r0, r0, r7 - movs r1, #0x38 - bl GetMonData - adds r1, r4, #0 - adds r1, #0x2a - strb r0, [r1] - mov r3, sb - ldr r0, [r3] - ldrb r0, [r0, #0x10] - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - adds r0, r0, r7 - movs r1, #0x39 - bl GetMonData - strh r0, [r4, #0x28] - mov r2, sb - ldr r0, [r2] - ldrb r0, [r0, #0x10] - mov r3, r8 - muls r3, r0, r3 - adds r0, r3, #0 - adds r0, r0, r7 - movs r1, #0x3a - bl GetMonData - strh r0, [r4, #0x2c] - mov r1, sb - ldr r0, [r1] - ldrb r0, [r0, #0x10] - mov r2, r8 - muls r2, r0, r2 - adds r0, r2, #0 - adds r0, r0, r7 - movs r1, #0x3b - bl GetMonData - strh r0, [r4, #2] - mov r3, sb - ldr r0, [r3] - ldrb r0, [r0, #0x10] - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - adds r0, r0, r7 - movs r1, #0x3c - bl GetMonData - strh r0, [r4, #4] - mov r2, sb - ldr r0, [r2] - ldrb r0, [r0, #0x10] - mov r3, r8 - muls r3, r0, r3 - adds r0, r3, #0 - adds r0, r0, r7 - movs r1, #0x3d - bl GetMonData - strh r0, [r4, #6] - mov r1, sb - ldr r0, [r1] - ldrb r0, [r0, #0x10] - mov r2, r8 - muls r2, r0, r2 - adds r0, r2, #0 - adds r0, r0, r7 - movs r1, #0x3d - bl GetMonData - strh r0, [r4, #6] - mov r3, sb - ldr r0, [r3] - ldrb r0, [r0, #0x10] - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - adds r0, r0, r7 - movs r1, #0x3e - bl GetMonData - strh r0, [r4, #8] - mov r2, sb - ldr r0, [r2] - ldrb r0, [r0, #0x10] - mov r3, r8 - muls r3, r0, r3 - adds r0, r3, #0 - adds r0, r0, r7 - movs r1, #0x3f - bl GetMonData - strh r0, [r4, #0xa] -_0804A74E: - ldr r0, _0804A830 - ldr r7, _0804A824 - ldr r1, [r7] - ldrb r2, [r1, #0x10] - ldrh r0, [r0, #4] - cmp r0, r2 - beq _0804A75E - b _0804A85E -_0804A75E: - ldr r6, _0804A854 - movs r0, #0xd8 - adds r0, r0, r6 - mov r8, r0 - ldrh r0, [r0] - cmp r0, #0 - beq _0804A85E - ldr r0, _0804A82C - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0804A85E - movs r5, #0x64 - adds r0, r2, #0 - muls r0, r5, r0 - ldr r4, _0804A834 - adds r0, r0, r4 - movs r1, #0x38 - bl GetMonData - adds r1, r6, #0 - adds r1, #0xda - strb r0, [r1] - ldr r0, [r7] - ldrb r0, [r0, #0x10] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #0x39 - bl GetMonData - mov r1, r8 - strh r0, [r1] - ldr r0, [r7] - ldrb r0, [r0, #0x10] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #0x3a - bl GetMonData - adds r1, r6, #0 - adds r1, #0xdc - strh r0, [r1] - ldr r0, [r7] - ldrb r0, [r0, #0x10] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #0x3b - bl GetMonData - adds r1, r6, #0 - adds r1, #0xb2 - strh r0, [r1] - ldr r0, [r7] - ldrb r0, [r0, #0x10] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #0x3c - bl GetMonData - adds r1, r6, #0 - adds r1, #0xb4 - strh r0, [r1] - ldr r0, [r7] - ldrb r0, [r0, #0x10] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #0x3d - bl GetMonData - movs r2, #0xb6 - adds r2, r2, r6 - mov r8, r2 - strh r0, [r2] - ldr r0, [r7] - ldrb r0, [r0, #0x10] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #0x3d - bl GetMonData - mov r3, r8 - strh r0, [r3] - ldr r0, [r7] - ldrb r0, [r0, #0x10] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #0x3e - bl GetMonData - adds r1, r6, #0 - adds r1, #0xb8 - strh r0, [r1] - b _0804A85E - .align 2, 0 -_0804A81C: .4byte gUnknown_2023D0C -_0804A820: .4byte gUnknown_2023D08 -_0804A824: .4byte gUnknown_2024140 -_0804A828: .4byte gUnknown_2023508 -_0804A82C: .4byte gUnknown_2022C90 -_0804A830: .4byte gUnknown_2023D12 -_0804A834: .4byte gUnknown_2024190 -_0804A838: .4byte gUnknown_2022C0C -_0804A83C: .4byte gUnknown_2022C1C -_0804A840: .4byte gUnknown_3005AB4 -_0804A844: .4byte gUnknown_82FACB4 -_0804A848: .4byte gUnknown_2023EB8 -_0804A84C: .4byte gUnknown_8289145 -_0804A850: .4byte gUnknown_2023E94 -_0804A854: .4byte gUnknown_2023D28 -_0804A858: - ldr r1, _0804A868 - movs r0, #0 - str r0, [r1] -_0804A85E: - ldr r1, _0804A86C - movs r0, #5 - strb r0, [r1, #0x1c] - b _0804A8E2 - .align 2, 0 -_0804A868: .4byte gUnknown_2023E94 -_0804A86C: .4byte gUnknown_2024118 -_0804A870: - ldr r0, _0804A880 - ldr r0, [r0] - cmp r0, #0 - beq _0804A888 - ldr r1, _0804A884 - movs r0, #3 - strb r0, [r1, #0x1c] - b _0804A8E2 - .align 2, 0 -_0804A880: .4byte gUnknown_2023E94 -_0804A884: .4byte gUnknown_2024118 -_0804A888: - ldr r2, _0804A8A4 - ldr r1, [r2] - ldrb r0, [r1, #0x10] - adds r0, #1 - strb r0, [r1, #0x10] - ldr r0, [r2] - ldrb r0, [r0, #0x10] - cmp r0, #5 - bhi _0804A8AC - ldr r1, _0804A8A8 - movs r0, #2 - strb r0, [r1, #0x1c] - b _0804A8E2 - .align 2, 0 -_0804A8A4: .4byte gUnknown_2024140 -_0804A8A8: .4byte gUnknown_2024118 -_0804A8AC: - ldr r1, _0804A8B4 - movs r0, #6 - strb r0, [r1, #0x1c] - b _0804A8E2 - .align 2, 0 -_0804A8B4: .4byte gUnknown_2024118 -_0804A8B8: - ldr r0, _0804A8F0 - ldr r5, [r0] - cmp r5, #0 - bne _0804A8E2 - ldr r4, _0804A8F4 - ldr r2, _0804A8F8 - ldrb r0, [r2] - movs r1, #0x58 - muls r0, r1, r0 - adds r0, r0, r4 - movs r3, #0 - strh r5, [r0, #0x2e] - ldrb r0, [r2] - muls r0, r1, r0 - adds r0, r0, r4 - adds r0, #0x20 - strb r3, [r0] - ldr r1, _0804A8FC - ldr r0, [r1] - adds r0, #2 - str r0, [r1] -_0804A8E2: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0804A8F0: .4byte gUnknown_2023D0C -_0804A8F4: .4byte gUnknown_2023D28 -_0804A8F8: .4byte gUnknown_2023EB1 -_0804A8FC: .4byte gUnknown_2023EB8 - thumb_func_end atk23_getexp - - thumb_func_start atk24 -atk24: @ 0x0804A900 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r6, #0 - ldr r0, _0804A964 - ldr r0, [r0] - cmp r0, #0 - beq _0804A912 - b _0804AB52 -_0804A912: - ldr r0, _0804A968 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - beq _0804A978 - ldr r0, _0804A96C - ldrh r1, [r0] - ldr r0, _0804A970 - cmp r1, r0 - bne _0804A978 - movs r5, #0 -_0804A92C: - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _0804A974 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _0804A95C - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - bne _0804A95C - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - adds r0, r6, r0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_0804A95C: - adds r5, #1 - cmp r5, #2 - ble _0804A92C - b _0804A9D8 - .align 2, 0 -_0804A964: .4byte gUnknown_2023D0C -_0804A968: .4byte gUnknown_2022C90 -_0804A96C: .4byte gUnknown_203886E -_0804A970: .4byte 0x00000C03 -_0804A974: .4byte gUnknown_2024190 -_0804A978: - movs r5, #0 -_0804A97A: - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _0804AAF0 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _0804A9D2 - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - bne _0804A9D2 - ldr r0, _0804AAF4 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xb - ands r0, r1 - cmp r0, #0 - beq _0804A9C4 - ldr r0, _0804AAF8 - ldr r0, [r0] - movs r1, #0xa8 - lsls r1, r1, #2 - adds r0, r0, r1 - ldrb r1, [r0] - ldr r2, _0804AAFC - lsls r0, r5, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _0804A9D2 -_0804A9C4: - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - adds r0, r6, r0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_0804A9D2: - adds r5, #1 - cmp r5, #5 - ble _0804A97A -_0804A9D8: - cmp r6, #0 - bne _0804A9E6 - ldr r0, _0804AB00 - ldrb r1, [r0] - movs r2, #2 - orrs r1, r2 - strb r1, [r0] -_0804A9E6: - movs r6, #0 - movs r5, #0 -_0804A9EA: - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _0804AB04 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _0804AA40 - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - bne _0804AA40 - ldr r0, _0804AAF4 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xb - ands r0, r1 - cmp r0, #0 - beq _0804AA32 - ldr r0, _0804AAF8 - ldr r0, [r0] - ldr r1, _0804AB08 - adds r0, r0, r1 - ldrb r1, [r0] - ldr r2, _0804AAFC - lsls r0, r5, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _0804AA40 -_0804AA32: - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - adds r0, r6, r0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_0804AA40: - adds r5, #1 - cmp r5, #5 - ble _0804A9EA - ldr r2, _0804AB00 - cmp r6, #0 - bne _0804AA54 - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] -_0804AA54: - ldrb r0, [r2] - cmp r0, #0 - bne _0804AB4A - ldr r0, _0804AAF4 - ldr r1, [r0] - ldr r2, _0804AB0C - ands r1, r2 - mov r8, r0 - cmp r1, #0 - beq _0804AB4A - movs r3, #0 - movs r5, #0 - ldr r0, _0804AB10 - ldrb r1, [r0] - mov ip, r0 - ldr r7, _0804AB14 - cmp r3, r1 - bge _0804AAA0 - ldr r0, _0804AB18 - movs r6, #0x80 - lsls r6, r6, #0x15 - ldr r4, [r0] - adds r2, r1, #0 - ldr r1, _0804AB1C -_0804AA84: - adds r0, r6, #0 - lsls r0, r5 - ands r0, r4 - cmp r0, #0 - beq _0804AA98 - ldrb r0, [r1] - lsls r0, r0, #0x19 - cmp r0, #0 - blt _0804AA98 - adds r3, #1 -_0804AA98: - adds r1, #0x28 - adds r5, #2 - cmp r5, r2 - blt _0804AA84 -_0804AAA0: - movs r2, #0 - movs r5, #1 - mov r4, ip - ldrb r1, [r4] - cmp r5, r1 - bge _0804AADA - ldr r0, _0804AB18 - movs r4, #0x80 - lsls r4, r4, #0x15 - mov ip, r4 - ldr r6, [r0] - ldr r0, _0804AB1C - adds r4, r1, #0 - adds r1, r0, #0 - adds r1, #0x14 -_0804AABE: - mov r0, ip - lsls r0, r5 - ands r0, r6 - cmp r0, #0 - beq _0804AAD2 - ldrb r0, [r1] - lsls r0, r0, #0x19 - cmp r0, #0 - blt _0804AAD2 - adds r2, #1 -_0804AAD2: - adds r1, #0x28 - adds r5, #2 - cmp r5, r4 - blt _0804AABE -_0804AADA: - mov r1, r8 - ldr r0, [r1] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0804AB20 - adds r0, r2, r3 - cmp r0, #1 - bgt _0804AB28 - b _0804AB42 - .align 2, 0 -_0804AAF0: .4byte gUnknown_2024190 -_0804AAF4: .4byte gUnknown_2022C90 -_0804AAF8: .4byte gUnknown_2024140 -_0804AAFC: .4byte gUnknown_82FACB4 -_0804AB00: .4byte gUnknown_2023FDE -_0804AB04: .4byte gUnknown_20243E8 -_0804AB08: .4byte 0x000002A1 -_0804AB0C: .4byte gUnknown_2000002 -_0804AB10: .4byte gUnknown_2023D10 -_0804AB14: .4byte gUnknown_2023EB8 -_0804AB18: .4byte gUnknown_2023F24 -_0804AB1C: .4byte gUnknown_2024020 -_0804AB20: - cmp r2, #0 - beq _0804AB42 - cmp r3, #0 - beq _0804AB42 -_0804AB28: - ldr r2, [r7] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - adds r1, r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - adds r1, r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - adds r1, r1, r0 - str r1, [r7] - b _0804AB52 -_0804AB42: - ldr r0, [r7] - adds r0, #5 - str r0, [r7] - b _0804AB52 -_0804AB4A: - ldr r1, _0804AB5C - ldr r0, [r1] - adds r0, #5 - str r0, [r1] -_0804AB52: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0804AB5C: .4byte gUnknown_2023EB8 - thumb_func_end atk24 - - thumb_func_start MoveValuesCleanUp -MoveValuesCleanUp: @ 0x0804AB60 - ldr r1, _0804AB88 - movs r0, #0 - strb r0, [r1] - ldr r0, _0804AB8C - movs r2, #0 - movs r1, #1 - strb r1, [r0, #0xe] - ldr r0, _0804AB90 - strb r1, [r0] - ldr r0, _0804AB94 - strb r2, [r0, #3] - strb r2, [r0, #6] - ldr r2, _0804AB98 - ldr r0, [r2] - subs r1, #0x42 - ands r0, r1 - ldr r1, _0804AB9C - ands r0, r1 - str r0, [r2] - bx lr - .align 2, 0 -_0804AB88: .4byte gUnknown_2023F20 -_0804AB8C: .4byte gUnknown_2024118 -_0804AB90: .4byte gUnknown_2023EB5 -_0804AB94: .4byte gUnknown_2023FD6 -_0804AB98: .4byte gUnknown_2023F24 -_0804AB9C: .4byte 0xFFFFBFFF - thumb_func_end MoveValuesCleanUp - - thumb_func_start atk25_movevaluescleanup -atk25_movevaluescleanup: @ 0x0804ABA0 - push {lr} - bl MoveValuesCleanUp - ldr r1, _0804ABB4 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0804ABB4: .4byte gUnknown_2023EB8 - thumb_func_end atk25_movevaluescleanup - - thumb_func_start atk26_setmultihit -atk26_setmultihit: @ 0x0804ABB8 - ldr r3, _0804ABC8 - ldr r2, _0804ABCC - ldr r0, [r2] - ldrb r1, [r0, #1] - strb r1, [r3] - adds r0, #2 - str r0, [r2] - bx lr - .align 2, 0 -_0804ABC8: .4byte gUnknown_2023EB6 -_0804ABCC: .4byte gUnknown_2023EB8 - thumb_func_end atk26_setmultihit - - thumb_func_start atk27_decrementmultihit -atk27_decrementmultihit: @ 0x0804ABD0 - push {lr} - ldr r1, _0804ABEC - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0804ABF4 - ldr r1, _0804ABF0 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] - b _0804AC0E - .align 2, 0 -_0804ABEC: .4byte gUnknown_2023EB6 -_0804ABF0: .4byte gUnknown_2023EB8 -_0804ABF4: - ldr r3, _0804AC14 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - adds r1, r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - adds r1, r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - adds r1, r1, r0 - str r1, [r3] -_0804AC0E: - pop {r0} - bx r0 - .align 2, 0 -_0804AC14: .4byte gUnknown_2023EB8 - thumb_func_end atk27_decrementmultihit - - thumb_func_start atk28_goto -atk28_goto: @ 0x0804AC18 - ldr r3, _0804AC34 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - adds r1, r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - adds r1, r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - adds r1, r1, r0 - str r1, [r3] - bx lr - .align 2, 0 -_0804AC34: .4byte gUnknown_2023EB8 - thumb_func_end atk28_goto - - thumb_func_start atk29_jumpifbyte -atk29_jumpifbyte: @ 0x0804AC38 - push {r4, r5, r6, lr} - ldr r3, _0804AC7C - ldr r1, [r3] - ldrb r6, [r1, #1] - ldrb r2, [r1, #2] - ldrb r0, [r1, #3] - lsls r0, r0, #8 - adds r2, r2, r0 - ldrb r0, [r1, #4] - lsls r0, r0, #0x10 - adds r2, r2, r0 - ldrb r0, [r1, #5] - lsls r0, r0, #0x18 - adds r5, r2, r0 - ldrb r4, [r1, #6] - ldrb r2, [r1, #7] - ldrb r0, [r1, #8] - lsls r0, r0, #8 - adds r2, r2, r0 - ldrb r0, [r1, #9] - lsls r0, r0, #0x10 - adds r2, r2, r0 - ldrb r0, [r1, #0xa] - lsls r0, r0, #0x18 - adds r2, r2, r0 - adds r1, #0xb - str r1, [r3] - cmp r6, #5 - bhi _0804ACD0 - lsls r0, r6, #2 - ldr r1, _0804AC80 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0804AC7C: .4byte gUnknown_2023EB8 -_0804AC80: .4byte _0804AC84 -_0804AC84: @ jump table - .4byte _0804AC9C @ case 0 - .4byte _0804ACA4 @ case 1 - .4byte _0804ACAC @ case 2 - .4byte _0804ACB4 @ case 3 - .4byte _0804ACBC @ case 4 - .4byte _0804ACC6 @ case 5 -_0804AC9C: - ldrb r0, [r5] - cmp r0, r4 - bne _0804ACD0 - b _0804ACCE -_0804ACA4: - ldrb r0, [r5] - cmp r0, r4 - beq _0804ACD0 - b _0804ACCE -_0804ACAC: - ldrb r0, [r5] - cmp r0, r4 - bls _0804ACD0 - b _0804ACCE -_0804ACB4: - ldrb r0, [r5] - cmp r0, r4 - bhs _0804ACD0 - b _0804ACCE -_0804ACBC: - ldrb r0, [r5] - ands r4, r0 - cmp r4, #0 - beq _0804ACD0 - b _0804ACCE -_0804ACC6: - ldrb r0, [r5] - ands r4, r0 - cmp r4, #0 - bne _0804ACD0 -_0804ACCE: - str r2, [r3] -_0804ACD0: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end atk29_jumpifbyte - - thumb_func_start atk2A_jumpifhalfword -atk2A_jumpifhalfword: @ 0x0804ACD8 - push {r4, r5, r6, lr} - ldr r3, _0804AD24 - ldr r1, [r3] - ldrb r6, [r1, #1] - ldrb r2, [r1, #2] - ldrb r0, [r1, #3] - lsls r0, r0, #8 - adds r2, r2, r0 - ldrb r0, [r1, #4] - lsls r0, r0, #0x10 - adds r2, r2, r0 - ldrb r0, [r1, #5] - lsls r0, r0, #0x18 - adds r5, r2, r0 - ldrb r4, [r1, #6] - ldrb r0, [r1, #7] - lsls r0, r0, #8 - orrs r4, r0 - ldrb r2, [r1, #8] - ldrb r0, [r1, #9] - lsls r0, r0, #8 - adds r2, r2, r0 - ldrb r0, [r1, #0xa] - lsls r0, r0, #0x10 - adds r2, r2, r0 - ldrb r0, [r1, #0xb] - lsls r0, r0, #0x18 - adds r2, r2, r0 - adds r1, #0xc - str r1, [r3] - cmp r6, #5 - bhi _0804AD78 - lsls r0, r6, #2 - ldr r1, _0804AD28 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0804AD24: .4byte gUnknown_2023EB8 -_0804AD28: .4byte _0804AD2C -_0804AD2C: @ jump table - .4byte _0804AD44 @ case 0 - .4byte _0804AD4C @ case 1 - .4byte _0804AD54 @ case 2 - .4byte _0804AD5C @ case 3 - .4byte _0804AD64 @ case 4 - .4byte _0804AD6E @ case 5 -_0804AD44: - ldrh r0, [r5] - cmp r0, r4 - bne _0804AD78 - b _0804AD76 -_0804AD4C: - ldrh r0, [r5] - cmp r0, r4 - beq _0804AD78 - b _0804AD76 -_0804AD54: - ldrh r0, [r5] - cmp r0, r4 - bls _0804AD78 - b _0804AD76 -_0804AD5C: - ldrh r0, [r5] - cmp r0, r4 - bhs _0804AD78 - b _0804AD76 -_0804AD64: - ldrh r0, [r5] - ands r4, r0 - cmp r4, #0 - beq _0804AD78 - b _0804AD76 -_0804AD6E: - ldrh r0, [r5] - ands r4, r0 - cmp r4, #0 - bne _0804AD78 -_0804AD76: - str r2, [r3] -_0804AD78: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end atk2A_jumpifhalfword - - thumb_func_start atk2B_jumpifword -atk2B_jumpifword: @ 0x0804AD80 - push {r4, r5, r6, lr} - ldr r3, _0804ADD8 - ldr r1, [r3] - ldrb r6, [r1, #1] - ldrb r2, [r1, #2] - ldrb r0, [r1, #3] - lsls r0, r0, #8 - adds r2, r2, r0 - ldrb r0, [r1, #4] - lsls r0, r0, #0x10 - adds r2, r2, r0 - ldrb r0, [r1, #5] - lsls r0, r0, #0x18 - adds r5, r2, r0 - ldrb r4, [r1, #6] - ldrb r0, [r1, #7] - lsls r0, r0, #8 - orrs r4, r0 - ldrb r0, [r1, #8] - lsls r0, r0, #0x10 - orrs r4, r0 - ldrb r0, [r1, #9] - lsls r0, r0, #0x18 - orrs r4, r0 - ldrb r2, [r1, #0xa] - ldrb r0, [r1, #0xb] - lsls r0, r0, #8 - adds r2, r2, r0 - ldrb r0, [r1, #0xc] - lsls r0, r0, #0x10 - adds r2, r2, r0 - ldrb r0, [r1, #0xd] - lsls r0, r0, #0x18 - adds r2, r2, r0 - adds r1, #0xe - str r1, [r3] - cmp r6, #5 - bhi _0804AE2C - lsls r0, r6, #2 - ldr r1, _0804ADDC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0804ADD8: .4byte gUnknown_2023EB8 -_0804ADDC: .4byte _0804ADE0 -_0804ADE0: @ jump table - .4byte _0804ADF8 @ case 0 - .4byte _0804AE00 @ case 1 - .4byte _0804AE08 @ case 2 - .4byte _0804AE10 @ case 3 - .4byte _0804AE18 @ case 4 - .4byte _0804AE22 @ case 5 -_0804ADF8: - ldr r0, [r5] - cmp r0, r4 - bne _0804AE2C - b _0804AE2A -_0804AE00: - ldr r0, [r5] - cmp r0, r4 - beq _0804AE2C - b _0804AE2A -_0804AE08: - ldr r0, [r5] - cmp r0, r4 - bls _0804AE2C - b _0804AE2A -_0804AE10: - ldr r0, [r5] - cmp r0, r4 - bhs _0804AE2C - b _0804AE2A -_0804AE18: - ldr r0, [r5] - ands r0, r4 - cmp r0, #0 - beq _0804AE2C - b _0804AE2A -_0804AE22: - ldr r0, [r5] - ands r0, r4 - cmp r0, #0 - bne _0804AE2C -_0804AE2A: - str r2, [r3] -_0804AE2C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end atk2B_jumpifword - - thumb_func_start atk2C_jumpifarrayequal -atk2C_jumpifarrayequal: @ 0x0804AE34 - push {r4, r5, r6, r7, lr} - ldr r2, _0804AE8C - ldr r3, [r2] - ldrb r1, [r3, #1] - ldrb r0, [r3, #2] - lsls r0, r0, #8 - adds r1, r1, r0 - ldrb r0, [r3, #3] - lsls r0, r0, #0x10 - adds r1, r1, r0 - ldrb r0, [r3, #4] - lsls r0, r0, #0x18 - adds r5, r1, r0 - ldrb r1, [r3, #5] - ldrb r0, [r3, #6] - lsls r0, r0, #8 - adds r1, r1, r0 - ldrb r0, [r3, #7] - lsls r0, r0, #0x10 - adds r1, r1, r0 - ldrb r0, [r3, #8] - lsls r0, r0, #0x18 - adds r4, r1, r0 - ldrb r6, [r3, #9] - ldrb r1, [r3, #0xa] - ldrb r0, [r3, #0xb] - lsls r0, r0, #8 - adds r1, r1, r0 - ldrb r0, [r3, #0xc] - lsls r0, r0, #0x10 - adds r1, r1, r0 - ldrb r0, [r3, #0xd] - lsls r0, r0, #0x18 - adds r1, r1, r0 - mov ip, r1 - movs r1, #0 - cmp r1, r6 - bhs _0804AEAC - ldrb r0, [r5] - ldrb r7, [r4] - cmp r0, r7 - beq _0804AE90 - adds r0, r3, #0 - b _0804AEA8 - .align 2, 0 -_0804AE8C: .4byte gUnknown_2023EB8 -_0804AE90: - adds r5, #1 - adds r4, #1 - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, r6 - bhs _0804AEAC - ldrb r0, [r5] - ldrb r3, [r4] - cmp r0, r3 - beq _0804AE90 - ldr r0, [r2] -_0804AEA8: - adds r0, #0xe - str r0, [r2] -_0804AEAC: - cmp r1, r6 - bne _0804AEB4 - mov r7, ip - str r7, [r2] -_0804AEB4: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end atk2C_jumpifarrayequal - - thumb_func_start atk2D_jumpifarraynotequal -atk2D_jumpifarraynotequal: @ 0x0804AEBC - push {r4, r5, r6, r7, lr} - movs r7, #0 - ldr r3, _0804AF30 - ldr r1, [r3] - ldrb r2, [r1, #1] - ldrb r0, [r1, #2] - lsls r0, r0, #8 - adds r2, r2, r0 - ldrb r0, [r1, #3] - lsls r0, r0, #0x10 - adds r2, r2, r0 - ldrb r0, [r1, #4] - lsls r0, r0, #0x18 - adds r5, r2, r0 - ldrb r2, [r1, #5] - ldrb r0, [r1, #6] - lsls r0, r0, #8 - adds r2, r2, r0 - ldrb r0, [r1, #7] - lsls r0, r0, #0x10 - adds r2, r2, r0 - ldrb r0, [r1, #8] - lsls r0, r0, #0x18 - adds r4, r2, r0 - ldrb r6, [r1, #9] - ldrb r2, [r1, #0xa] - ldrb r0, [r1, #0xb] - lsls r0, r0, #8 - adds r2, r2, r0 - ldrb r0, [r1, #0xc] - lsls r0, r0, #0x10 - adds r2, r2, r0 - ldrb r0, [r1, #0xd] - lsls r0, r0, #0x18 - adds r2, r2, r0 - mov ip, r2 - movs r1, #0 - cmp r7, r6 - bhs _0804AF26 -_0804AF0A: - ldrb r0, [r5] - ldrb r2, [r4] - cmp r0, r2 - bne _0804AF18 - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 -_0804AF18: - adds r5, #1 - adds r4, #1 - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, r6 - blo _0804AF0A -_0804AF26: - cmp r7, r6 - beq _0804AF34 - mov r0, ip - b _0804AF38 - .align 2, 0 -_0804AF30: .4byte gUnknown_2023EB8 -_0804AF34: - ldr r0, [r3] - adds r0, #0xe -_0804AF38: - str r0, [r3] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end atk2D_jumpifarraynotequal - - thumb_func_start atk2E_setbyte -atk2E_setbyte: @ 0x0804AF40 - ldr r3, _0804AF64 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - adds r1, r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - adds r1, r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - adds r1, r1, r0 - ldrb r0, [r2, #5] - strb r0, [r1] - ldr r0, [r3] - adds r0, #6 - str r0, [r3] - bx lr - .align 2, 0 -_0804AF64: .4byte gUnknown_2023EB8 - thumb_func_end atk2E_setbyte - - thumb_func_start atk2F_addbyte -atk2F_addbyte: @ 0x0804AF68 - ldr r3, _0804AF90 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - adds r1, r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - adds r1, r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - adds r1, r1, r0 - ldrb r0, [r2, #5] - ldrb r2, [r1] - adds r0, r0, r2 - strb r0, [r1] - ldr r0, [r3] - adds r0, #6 - str r0, [r3] - bx lr - .align 2, 0 -_0804AF90: .4byte gUnknown_2023EB8 - thumb_func_end atk2F_addbyte - - thumb_func_start atk30_subbyte -atk30_subbyte: @ 0x0804AF94 - ldr r3, _0804AFBC - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - adds r1, r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - adds r1, r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - adds r1, r1, r0 - ldrb r0, [r1] - ldrb r2, [r2, #5] - subs r0, r0, r2 - strb r0, [r1] - ldr r0, [r3] - adds r0, #6 - str r0, [r3] - bx lr - .align 2, 0 -_0804AFBC: .4byte gUnknown_2023EB8 - thumb_func_end atk30_subbyte - - thumb_func_start atk31_copyarray -atk31_copyarray: @ 0x0804AFC0 - push {r4, r5, r6, lr} - ldr r3, _0804B010 - ldr r1, [r3] - ldrb r2, [r1, #1] - ldrb r0, [r1, #2] - lsls r0, r0, #8 - adds r2, r2, r0 - ldrb r0, [r1, #3] - lsls r0, r0, #0x10 - adds r2, r2, r0 - ldrb r0, [r1, #4] - lsls r0, r0, #0x18 - adds r6, r2, r0 - ldrb r2, [r1, #5] - ldrb r0, [r1, #6] - lsls r0, r0, #8 - adds r2, r2, r0 - ldrb r0, [r1, #7] - lsls r0, r0, #0x10 - adds r2, r2, r0 - ldrb r0, [r1, #8] - lsls r0, r0, #0x18 - adds r5, r2, r0 - ldrb r4, [r1, #9] - movs r2, #0 - cmp r2, r4 - bge _0804B004 -_0804AFF6: - adds r0, r6, r2 - adds r1, r5, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, r4 - blt _0804AFF6 -_0804B004: - ldr r0, [r3] - adds r0, #0xa - str r0, [r3] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0804B010: .4byte gUnknown_2023EB8 - thumb_func_end atk31_copyarray - - thumb_func_start atk32_copyarraywithindex -atk32_copyarraywithindex: @ 0x0804B014 - push {r4, r5, r6, r7, lr} - ldr r3, _0804B07C - ldr r1, [r3] - ldrb r2, [r1, #1] - ldrb r0, [r1, #2] - lsls r0, r0, #8 - adds r2, r2, r0 - ldrb r0, [r1, #3] - lsls r0, r0, #0x10 - adds r2, r2, r0 - ldrb r0, [r1, #4] - lsls r0, r0, #0x18 - adds r7, r2, r0 - ldrb r2, [r1, #5] - ldrb r0, [r1, #6] - lsls r0, r0, #8 - adds r2, r2, r0 - ldrb r0, [r1, #7] - lsls r0, r0, #0x10 - adds r2, r2, r0 - ldrb r0, [r1, #8] - lsls r0, r0, #0x18 - adds r6, r2, r0 - ldrb r2, [r1, #9] - ldrb r0, [r1, #0xa] - lsls r0, r0, #8 - adds r2, r2, r0 - ldrb r0, [r1, #0xb] - lsls r0, r0, #0x10 - adds r2, r2, r0 - ldrb r0, [r1, #0xc] - lsls r0, r0, #0x18 - adds r5, r2, r0 - ldrb r4, [r1, #0xd] - movs r2, #0 - cmp r2, r4 - bge _0804B070 -_0804B05E: - adds r0, r7, r2 - ldrb r1, [r5] - adds r1, r2, r1 - adds r1, r6, r1 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, r4 - blt _0804B05E -_0804B070: - ldr r0, [r3] - adds r0, #0xe - str r0, [r3] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0804B07C: .4byte gUnknown_2023EB8 - thumb_func_end atk32_copyarraywithindex - - thumb_func_start atk33_orbyte -atk33_orbyte: @ 0x0804B080 - ldr r3, _0804B0A8 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - adds r1, r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - adds r1, r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - adds r1, r1, r0 - ldrb r0, [r1] - ldrb r2, [r2, #5] - orrs r0, r2 - strb r0, [r1] - ldr r0, [r3] - adds r0, #6 - str r0, [r3] - bx lr - .align 2, 0 -_0804B0A8: .4byte gUnknown_2023EB8 - thumb_func_end atk33_orbyte - - thumb_func_start atk34_orhalfword -atk34_orhalfword: @ 0x0804B0AC - push {r4, lr} - ldr r4, _0804B0E0 - ldr r3, [r4] - ldrb r2, [r3, #1] - ldrb r0, [r3, #2] - lsls r0, r0, #8 - adds r2, r2, r0 - ldrb r0, [r3, #3] - lsls r0, r0, #0x10 - adds r2, r2, r0 - ldrb r0, [r3, #4] - lsls r0, r0, #0x18 - adds r2, r2, r0 - ldrb r1, [r3, #5] - ldrb r0, [r3, #6] - lsls r0, r0, #8 - orrs r1, r0 - ldrh r0, [r2] - orrs r1, r0 - strh r1, [r2] - ldr r0, [r4] - adds r0, #7 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804B0E0: .4byte gUnknown_2023EB8 - thumb_func_end atk34_orhalfword - - thumb_func_start atk35_orword -atk35_orword: @ 0x0804B0E4 - push {r4, lr} - ldr r4, _0804B124 - ldr r2, [r4] - ldrb r3, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - adds r3, r3, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - adds r3, r3, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - adds r3, r3, r0 - ldrb r1, [r2, #5] - ldrb r0, [r2, #6] - lsls r0, r0, #8 - adds r1, r1, r0 - ldrb r0, [r2, #7] - lsls r0, r0, #0x10 - adds r1, r1, r0 - ldrb r0, [r2, #8] - lsls r0, r0, #0x18 - adds r1, r1, r0 - ldr r0, [r3] - orrs r0, r1 - str r0, [r3] - ldr r0, [r4] - adds r0, #9 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804B124: .4byte gUnknown_2023EB8 - thumb_func_end atk35_orword - - thumb_func_start atk36_bicbyte -atk36_bicbyte: @ 0x0804B128 - ldr r3, _0804B150 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - adds r1, r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - adds r1, r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - adds r1, r1, r0 - ldrb r2, [r2, #5] - ldrb r0, [r1] - bics r0, r2 - strb r0, [r1] - ldr r0, [r3] - adds r0, #6 - str r0, [r3] - bx lr - .align 2, 0 -_0804B150: .4byte gUnknown_2023EB8 - thumb_func_end atk36_bicbyte - - thumb_func_start atk37_bichalfword -atk37_bichalfword: @ 0x0804B154 - push {r4, lr} - ldr r4, _0804B188 - ldr r3, [r4] - ldrb r1, [r3, #1] - ldrb r0, [r3, #2] - lsls r0, r0, #8 - adds r1, r1, r0 - ldrb r0, [r3, #3] - lsls r0, r0, #0x10 - adds r1, r1, r0 - ldrb r0, [r3, #4] - lsls r0, r0, #0x18 - adds r1, r1, r0 - ldrb r2, [r3, #5] - ldrb r0, [r3, #6] - lsls r0, r0, #8 - orrs r2, r0 - ldrh r0, [r1] - bics r0, r2 - strh r0, [r1] - ldr r0, [r4] - adds r0, #7 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804B188: .4byte gUnknown_2023EB8 - thumb_func_end atk37_bichalfword - - thumb_func_start atk38_bicword -atk38_bicword: @ 0x0804B18C - push {r4, lr} - ldr r4, _0804B1CC - ldr r2, [r4] - ldrb r3, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - adds r3, r3, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - adds r3, r3, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - adds r3, r3, r0 - ldrb r1, [r2, #5] - ldrb r0, [r2, #6] - lsls r0, r0, #8 - adds r1, r1, r0 - ldrb r0, [r2, #7] - lsls r0, r0, #0x10 - adds r1, r1, r0 - ldrb r0, [r2, #8] - lsls r0, r0, #0x18 - adds r1, r1, r0 - ldr r0, [r3] - bics r0, r1 - str r0, [r3] - ldr r0, [r4] - adds r0, #9 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804B1CC: .4byte gUnknown_2023EB8 - thumb_func_end atk38_bicword - - thumb_func_start atk39_pause -atk39_pause: @ 0x0804B1D0 - push {r4, r5, lr} - ldr r0, _0804B204 - ldr r4, [r0] - cmp r4, #0 - bne _0804B1FC - ldr r5, _0804B208 - ldr r2, [r5] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldr r3, _0804B20C - ldrh r0, [r3] - adds r0, #1 - strh r0, [r3] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r1 - blo _0804B1FC - strh r4, [r3] - adds r0, r2, #3 - str r0, [r5] -_0804B1FC: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0804B204: .4byte gUnknown_2023D0C -_0804B208: .4byte gUnknown_2023EB8 -_0804B20C: .4byte gUnknown_2023FD0 - thumb_func_end atk39_pause - - thumb_func_start sub_0804B210 -sub_0804B210: @ 0x0804B210 - push {lr} - ldr r0, _0804B228 - ldr r0, [r0] - cmp r0, #0 - bne _0804B222 - ldr r1, _0804B22C - ldr r0, [r1] - adds r0, #1 - str r0, [r1] -_0804B222: - pop {r0} - bx r0 - .align 2, 0 -_0804B228: .4byte gUnknown_2023D0C -_0804B22C: .4byte gUnknown_2023EB8 - thumb_func_end sub_0804B210 - - thumb_func_start atk3B_healthbar_update -atk3B_healthbar_update: @ 0x0804B230 - push {lr} - ldr r0, _0804B244 - ldr r0, [r0] - ldrb r0, [r0, #1] - cmp r0, #0 - bne _0804B250 - ldr r0, _0804B248 - ldr r1, _0804B24C - b _0804B254 - .align 2, 0 -_0804B244: .4byte gUnknown_2023EB8 -_0804B248: .4byte gUnknown_2023D08 -_0804B24C: .4byte gUnknown_2023EB0 -_0804B250: - ldr r0, _0804B278 - ldr r1, _0804B27C -_0804B254: - ldrb r1, [r1] - strb r1, [r0] - ldr r0, _0804B280 - ldrh r1, [r0] - movs r0, #0 - bl BtlController_EmitHealthBarUpdate - ldr r0, _0804B278 - ldrb r0, [r0] - bl MarkBattlerForControllerExec - ldr r1, _0804B284 - ldr r0, [r1] - adds r0, #2 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0804B278: .4byte gUnknown_2023D08 -_0804B27C: .4byte gUnknown_2023EAF -_0804B280: .4byte gUnknown_2023E94 -_0804B284: .4byte gUnknown_2023EB8 - thumb_func_end atk3B_healthbar_update - - thumb_func_start atk3C_return -atk3C_return: @ 0x0804B288 - push {lr} - bl BattleScriptPop - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end atk3C_return - - thumb_func_start atk3D_end -atk3D_end: @ 0x0804B294 - push {lr} - ldr r0, _0804B2C0 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xb - ands r0, r1 - cmp r0, #0 - beq _0804B2AC - ldr r0, _0804B2C4 - ldrb r0, [r0] - bl BattleArena_AddSkillPoints -_0804B2AC: - ldr r0, _0804B2C8 - movs r1, #0 - strb r1, [r0] - ldr r0, _0804B2CC - strb r1, [r0] - ldr r1, _0804B2D0 - movs r0, #0xb - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0804B2C0: .4byte gUnknown_2022C90 -_0804B2C4: .4byte gUnknown_2023EAF -_0804B2C8: .4byte gUnknown_2023F20 -_0804B2CC: .4byte gUnknown_2023D08 -_0804B2D0: .4byte gUnknown_2023D27 - thumb_func_end atk3D_end - - thumb_func_start atk3E_end2 -atk3E_end2: @ 0x0804B2D4 - ldr r1, _0804B2E4 - movs r0, #0 - strb r0, [r1] - ldr r1, _0804B2E8 - movs r0, #0xb - strb r0, [r1] - bx lr - .align 2, 0 -_0804B2E4: .4byte gUnknown_2023D08 -_0804B2E8: .4byte gUnknown_2023D27 - thumb_func_end atk3E_end2 - - thumb_func_start atk3F_end3 -atk3F_end3: @ 0x0804B2EC - push {lr} - bl BattleScriptPop - ldr r3, _0804B320 - ldr r0, [r3] - ldr r0, [r0, #0xc] - adds r1, r0, #0 - adds r1, #0x20 - ldrb r0, [r1] - cmp r0, #0 - beq _0804B306 - subs r0, #1 - strb r0, [r1] -_0804B306: - ldr r2, _0804B324 - ldr r0, [r3] - ldr r1, [r0, #0xc] - adds r0, r1, #0 - adds r0, #0x20 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r2] - pop {r0} - bx r0 - .align 2, 0 -_0804B320: .4byte gUnknown_202414C -_0804B324: .4byte gUnknown_3005A64 - thumb_func_end atk3F_end3 - - thumb_func_start atk41_call -atk41_call: @ 0x0804B328 - push {r4, lr} - ldr r4, _0804B354 - ldr r0, [r4] - adds r0, #5 - bl BattleScriptPush - ldr r2, [r4] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804B354: .4byte gUnknown_2023EB8 - thumb_func_end atk41_call - - thumb_func_start atk42_jumpiftype2 -atk42_jumpiftype2: @ 0x0804B358 - push {r4, lr} - ldr r4, _0804B3A0 - ldr r0, [r4] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, [r4] - ldr r2, _0804B3A4 - movs r1, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - adds r1, r0, #0 - adds r1, #0x21 - ldrb r2, [r3, #2] - ldrb r1, [r1] - cmp r2, r1 - beq _0804B386 - adds r0, #0x22 - ldrb r0, [r0] - cmp r2, r0 - bne _0804B3A8 -_0804B386: - ldrb r1, [r3, #3] - ldrb r0, [r3, #4] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r3, #5] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r3, #6] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _0804B3AC - .align 2, 0 -_0804B3A0: .4byte gUnknown_2023EB8 -_0804B3A4: .4byte gUnknown_2023D28 -_0804B3A8: - adds r0, r3, #7 - str r0, [r4] -_0804B3AC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end atk42_jumpiftype2 - - thumb_func_start atk43_jumpifabilitypresent -atk43_jumpifabilitypresent: @ 0x0804B3B4 - push {r4, lr} - sub sp, #4 - ldr r4, _0804B3EC - ldr r0, [r4] - ldrb r2, [r0, #1] - movs r0, #0 - str r0, [sp] - movs r0, #0x13 - movs r1, #0 - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0804B3F0 - ldr r2, [r4] - ldrb r1, [r2, #2] - ldrb r0, [r2, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _0804B3F6 - .align 2, 0 -_0804B3EC: .4byte gUnknown_2023EB8 -_0804B3F0: - ldr r0, [r4] - adds r0, #6 - str r0, [r4] -_0804B3F6: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end atk43_jumpifabilitypresent - - thumb_func_start atk44_endselectionscript -atk44_endselectionscript: @ 0x0804B400 - ldr r0, _0804B414 - ldrb r0, [r0] - ldr r1, _0804B418 - ldr r1, [r1] - adds r0, r0, r1 - adds r0, #0x54 - movs r1, #1 - strb r1, [r0] - bx lr - .align 2, 0 -_0804B414: .4byte gUnknown_2023EAF -_0804B418: .4byte gUnknown_2024140 - thumb_func_end atk44_endselectionscript - - thumb_func_start atk45_playanimation -atk45_playanimation: @ 0x0804B41C - push {r4, r5, r6, lr} - ldr r5, _0804B470 - ldr r0, [r5] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - ldr r6, _0804B474 - strb r0, [r6] - ldr r2, [r5] - ldrb r1, [r2, #3] - ldrb r0, [r2, #4] - lsls r0, r0, #8 - adds r1, r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x10 - adds r1, r1, r0 - ldrb r0, [r2, #6] - lsls r0, r0, #0x18 - adds r3, r1, r0 - ldrb r4, [r2, #2] - adds r0, r4, #0 - cmp r0, #1 - beq _0804B452 - cmp r0, #0x11 - beq _0804B452 - cmp r0, #2 - bne _0804B478 -_0804B452: - ldr r4, _0804B470 - ldr r0, [r4] - ldrb r1, [r0, #2] - ldrh r2, [r3] - movs r0, #0 - bl BtlController_EmitBattleAnimation - ldr r0, _0804B474 - ldrb r0, [r0] - bl MarkBattlerForControllerExec - ldr r0, [r4] - adds r0, #7 - str r0, [r4] - b _0804B4DA - .align 2, 0 -_0804B470: .4byte gUnknown_2023EB8 -_0804B474: .4byte gUnknown_2023D08 -_0804B478: - ldr r0, _0804B490 - ldr r0, [r0] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0804B498 - adds r0, r2, #7 - bl BattleScriptPush - ldr r0, _0804B494 - b _0804B4D8 - .align 2, 0 -_0804B490: .4byte gUnknown_2023F24 -_0804B494: .4byte gUnknown_8289141 -_0804B498: - adds r0, r4, #0 - subs r0, #0xa - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bls _0804B4C4 - ldr r1, _0804B4BC - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _0804B4C0 - ands r0, r1 - cmp r0, #0 - beq _0804B4C4 - adds r0, r2, #7 - b _0804B4D8 - .align 2, 0 -_0804B4BC: .4byte gUnknown_2023F50 -_0804B4C0: .4byte 0x000400C0 -_0804B4C4: - ldrb r1, [r2, #2] - ldrh r2, [r3] - movs r0, #0 - bl BtlController_EmitBattleAnimation - ldrb r0, [r6] - bl MarkBattlerForControllerExec - ldr r0, [r5] - adds r0, #7 -_0804B4D8: - str r0, [r5] -_0804B4DA: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end atk45_playanimation - - thumb_func_start atk46_playanimation2 -atk46_playanimation2: @ 0x0804B4E0 - push {r4, r5, r6, r7, lr} - ldr r6, _0804B548 - ldr r0, [r6] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - ldr r7, _0804B54C - strb r0, [r7] - ldr r2, [r6] - ldrb r1, [r2, #2] - ldrb r0, [r2, #3] - lsls r0, r0, #8 - adds r1, r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x10 - adds r1, r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x18 - adds r3, r1, r0 - ldrb r1, [r2, #6] - ldrb r0, [r2, #7] - lsls r0, r0, #8 - adds r1, r1, r0 - ldrb r0, [r2, #8] - lsls r0, r0, #0x10 - adds r1, r1, r0 - ldrb r0, [r2, #9] - lsls r0, r0, #0x18 - adds r4, r1, r0 - ldrb r5, [r3] - adds r0, r5, #0 - cmp r0, #1 - beq _0804B52A - cmp r0, #0x11 - beq _0804B52A - cmp r0, #2 - bne _0804B550 -_0804B52A: - ldrb r1, [r3] - ldrh r2, [r4] - movs r0, #0 - bl BtlController_EmitBattleAnimation - ldr r0, _0804B54C - ldrb r0, [r0] - bl MarkBattlerForControllerExec - ldr r1, _0804B548 - ldr r0, [r1] - adds r0, #0xa - str r0, [r1] - b _0804B5A6 - .align 2, 0 -_0804B548: .4byte gUnknown_2023EB8 -_0804B54C: .4byte gUnknown_2023D08 -_0804B550: - ldr r0, _0804B560 - ldr r0, [r0] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0804B564 - adds r0, r2, #0 - b _0804B5A2 - .align 2, 0 -_0804B560: .4byte gUnknown_2023F24 -_0804B564: - adds r0, r5, #0 - subs r0, #0xa - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bls _0804B590 - ldr r1, _0804B588 - ldrb r0, [r7] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _0804B58C - ands r0, r1 - cmp r0, #0 - beq _0804B590 - adds r0, r2, #0 - b _0804B5A2 - .align 2, 0 -_0804B588: .4byte gUnknown_2023F50 -_0804B58C: .4byte 0x000400C0 -_0804B590: - ldrb r1, [r3] - ldrh r2, [r4] - movs r0, #0 - bl BtlController_EmitBattleAnimation - ldrb r0, [r7] - bl MarkBattlerForControllerExec - ldr r0, [r6] -_0804B5A2: - adds r0, #0xa - str r0, [r6] -_0804B5A6: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end atk46_playanimation2 - - thumb_func_start atk47_setgraphicalstatchangevalues -atk47_setgraphicalstatchangevalues: @ 0x0804B5AC - push {r4, lr} - movs r3, #0 - ldr r1, _0804B5C8 - ldrb r0, [r1, #0x1a] - movs r2, #0xf0 - ands r2, r0 - adds r4, r1, #0 - cmp r2, #0x20 - beq _0804B5DA - cmp r2, #0x20 - bgt _0804B5CC - cmp r2, #0x10 - beq _0804B5D6 - b _0804B5E4 - .align 2, 0 -_0804B5C8: .4byte gUnknown_2024118 -_0804B5CC: - cmp r2, #0x90 - beq _0804B5DE - cmp r2, #0xa0 - beq _0804B5E2 - b _0804B5E4 -_0804B5D6: - movs r3, #0xf - b _0804B5E4 -_0804B5DA: - movs r3, #0x27 - b _0804B5E4 -_0804B5DE: - movs r3, #0x16 - b _0804B5E4 -_0804B5E2: - movs r3, #0x2e -_0804B5E4: - ldrb r1, [r4, #0x1a] - movs r0, #0xf - ands r0, r1 - adds r0, r3, r0 - subs r0, #1 - movs r1, #0 - strb r0, [r4, #0x10] - strb r1, [r4, #0x11] - ldr r1, _0804B604 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804B604: .4byte gUnknown_2023EB8 - thumb_func_end atk47_setgraphicalstatchangevalues - - thumb_func_start atk48_playstatchangeanimation -atk48_playstatchangeanimation: @ 0x0804B608 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - movs r7, #0 - movs r0, #0 - mov r8, r0 - movs r3, #0 - ldr r5, _0804B67C - ldr r0, [r5] - ldrb r0, [r0, #1] - str r3, [sp] - bl GetBattlerForBattleScript - ldr r2, _0804B680 - strb r0, [r2] - ldr r0, [r5] - ldrb r4, [r0, #2] - ldrb r1, [r0, #3] - movs r0, #1 - ands r0, r1 - ldr r3, [sp] - cmp r0, #0 - beq _0804B71C - movs r0, #2 - ands r0, r1 - movs r1, #0x15 - cmp r0, #0 - beq _0804B648 - movs r1, #0x2d -_0804B648: - cmp r4, #0 - beq _0804B6F0 - movs r0, #1 - mov sl, r0 - ldr r0, _0804B684 - mov sb, r0 - lsls r5, r1, #0x10 -_0804B656: - adds r0, r4, #0 - mov r1, sl - ands r0, r1 - cmp r0, #0 - beq _0804B6E2 - ldr r0, _0804B67C - ldr r0, [r0] - ldrb r1, [r0, #3] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0804B688 - ldr r0, _0804B680 - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r7, r0 - b _0804B6D0 - .align 2, 0 -_0804B67C: .4byte gUnknown_2023EB8 -_0804B680: .4byte gUnknown_2023D08 -_0804B684: .4byte gUnknown_2023D40 -_0804B688: - ldr r6, _0804B70C - ldrb r0, [r6] - str r3, [sp] - bl sub_080A630C - mov r1, sl - ands r1, r0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0804B710 - adds r0, r0, r1 - ldrb r0, [r0, #4] - ldr r3, [sp] - cmp r0, #0 - bne _0804B6E2 - ldr r0, _0804B714 - ldrb r2, [r6] - movs r1, #0x58 - muls r2, r1, r2 - adds r0, r2, r0 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x1d - beq _0804B6E2 - cmp r0, #0x49 - beq _0804B6E2 - cmp r0, #0x33 - bne _0804B6C6 - cmp r7, #6 - beq _0804B6E2 -_0804B6C6: - cmp r0, #0x34 - bne _0804B6CE - cmp r7, #1 - beq _0804B6E2 -_0804B6CE: - adds r0, r7, r2 -_0804B6D0: - add r0, sb - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _0804B6E2 - lsrs r0, r5, #0x10 - mov r8, r0 - adds r3, #1 -_0804B6E2: - lsrs r4, r4, #1 - movs r1, #0x80 - lsls r1, r1, #9 - adds r5, r5, r1 - adds r7, #1 - cmp r4, #0 - bne _0804B656 -_0804B6F0: - ldr r0, _0804B718 - mov sb, r0 - cmp r3, #1 - ble _0804B77E - ldr r0, [r0] - ldrb r1, [r0, #3] - movs r0, #2 - ands r0, r1 - movs r1, #0x39 - mov r8, r1 - cmp r0, #0 - beq _0804B77E - movs r0, #0x3a - b _0804B77C - .align 2, 0 -_0804B70C: .4byte gUnknown_2023D08 -_0804B710: .4byte gUnknown_2023F38 -_0804B714: .4byte gUnknown_2023D28 -_0804B718: .4byte gUnknown_2023EB8 -_0804B71C: - movs r0, #2 - ands r0, r1 - movs r1, #0xe - cmp r0, #0 - beq _0804B728 - movs r1, #0x26 -_0804B728: - mov sb, r5 - cmp r4, #0 - beq _0804B764 - ldr r6, _0804B798 - adds r5, r2, #0 - lsls r2, r1, #0x10 -_0804B734: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _0804B756 - ldrb r1, [r5] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r7, r0 - adds r0, r0, r6 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0xb - bgt _0804B756 - lsrs r1, r2, #0x10 - mov r8, r1 - adds r3, #1 -_0804B756: - lsrs r4, r4, #1 - movs r0, #0x80 - lsls r0, r0, #9 - adds r2, r2, r0 - adds r7, #1 - cmp r4, #0 - bne _0804B734 -_0804B764: - cmp r3, #1 - ble _0804B77E - mov r1, sb - ldr r0, [r1] - ldrb r1, [r0, #3] - movs r0, #2 - ands r0, r1 - movs r1, #0x37 - mov r8, r1 - cmp r0, #0 - beq _0804B77E - movs r0, #0x38 -_0804B77C: - mov r8, r0 -_0804B77E: - mov r1, sb - ldr r2, [r1] - ldrb r1, [r2, #3] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0804B79C - cmp r3, #1 - bgt _0804B79C - adds r0, r2, #4 - mov r1, sb - b _0804B7EA - .align 2, 0 -_0804B798: .4byte gUnknown_2023D40 -_0804B79C: - cmp r3, #0 - beq _0804B7E4 - ldr r4, _0804B7D8 - ldrb r0, [r4, #0x1b] - cmp r0, #0 - bne _0804B7E4 - movs r0, #0 - movs r1, #1 - mov r2, r8 - str r3, [sp] - bl BtlController_EmitBattleAnimation - ldr r0, _0804B7DC - ldrb r0, [r0] - bl MarkBattlerForControllerExec - ldr r0, _0804B7E0 - ldr r0, [r0] - ldrb r1, [r0, #3] - movs r0, #4 - ands r0, r1 - ldr r3, [sp] - cmp r0, #0 - beq _0804B7D4 - cmp r3, #1 - ble _0804B7D4 - movs r0, #1 - strb r0, [r4, #0x1b] -_0804B7D4: - ldr r1, _0804B7E0 - b _0804B7E6 - .align 2, 0 -_0804B7D8: .4byte gUnknown_2024118 -_0804B7DC: .4byte gUnknown_2023D08 -_0804B7E0: .4byte gUnknown_2023EB8 -_0804B7E4: - mov r1, sb -_0804B7E6: - ldr r0, [r1] - adds r0, #4 -_0804B7EA: - str r0, [r1] - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end atk48_playstatchangeanimation - - thumb_func_start atk49_moveend -atk49_moveend: @ 0x0804B7FC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - movs r0, #0 - mov sl, r0 - ldr r2, _0804B84C - ldrh r1, [r2] - ldr r0, _0804B850 - movs r3, #0 - str r3, [sp, #0x18] - cmp r1, r0 - beq _0804B81E - ldrh r2, [r2] - str r2, [sp, #0x18] -_0804B81E: - ldr r0, _0804B854 - ldr r0, [r0] - ldrb r4, [r0, #1] - str r4, [sp, #0x10] - ldrb r0, [r0, #2] - str r0, [sp, #0x14] - ldr r1, _0804B858 - ldr r0, _0804B85C - ldrb r2, [r0] - movs r0, #0x58 - muls r0, r2, r0 - adds r1, r0, r1 - ldrh r0, [r1, #0x2e] - cmp r0, #0xaf - bne _0804B864 - ldr r1, _0804B860 - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #7] - b _0804B86E - .align 2, 0 -_0804B84C: .4byte gUnknown_2023E90 -_0804B850: .4byte 0x0000FFFF -_0804B854: .4byte gUnknown_2023EB8 -_0804B858: .4byte gUnknown_2023D28 -_0804B85C: .4byte gUnknown_2023EAF -_0804B860: .4byte gUnknown_20240A8 -_0804B864: - ldrh r0, [r1, #0x2e] - bl sub_080D6CF8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_0804B86E: - str r0, [sp, #8] - ldr r1, _0804B890 - ldr r0, _0804B894 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, #0xc8 - ldr r1, [r1] - adds r0, r1, r0 - str r0, [sp, #0xc] - ldrb r0, [r1, #0x13] - cmp r0, #0 - beq _0804B920 - movs r5, #0x3f - ands r5, r0 - str r5, [sp, #4] - b _0804B932 - .align 2, 0 -_0804B890: .4byte gUnknown_2024140 -_0804B894: .4byte gUnknown_2023EAF -_0804B898: - ldr r4, _0804B8AC - strb r2, [r4] - movs r0, #0 - movs r1, #1 - bl BtlController_EmitSpriteInvisibility - ldrb r0, [r4] - bl MarkBattlerForControllerExec - b _0804BD8A - .align 2, 0 -_0804B8AC: .4byte gUnknown_2023D08 -_0804B8B0: - ldr r4, _0804B8D4 - strb r2, [r4] - movs r0, #0 - movs r1, #0 - bl BtlController_EmitSpriteInvisibility - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldrb r1, [r6] - lsls r1, r1, #2 - adds r1, r1, r5 - ldr r0, [r1] - ldr r2, _0804B8D8 - ands r0, r2 - str r0, [r1] - b _0804BD8A - .align 2, 0 -_0804B8D4: .4byte gUnknown_2023D08 -_0804B8D8: .4byte 0xFFFBFF3F - thumb_func_end atk49_moveend - - thumb_func_start sub_0804B8DC -sub_0804B8DC: @ 0x0804B8DC - strb r2, [r7] - ldr r0, [r5] - orrs r0, r6 - str r0, [r5] - ldr r0, _0804B910 - strb r4, [r0, #0x14] - bl MoveValuesCleanUp - ldr r2, _0804B914 - mov r0, r8 - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sb - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - bl BattleScriptPush - ldr r1, _0804B918 - ldr r0, _0804B91C - bl _0804C1E8 - .align 2, 0 -_0804B910: .4byte gUnknown_2024118 -_0804B914: .4byte gUnknown_8286C30 -_0804B918: .4byte gUnknown_2023EB8 -_0804B91C: .4byte gUnknown_8289E05 -_0804B920: - ldr r2, _0804B938 - ldr r0, _0804B93C - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #2] - str r0, [sp, #4] -_0804B932: - ldr r1, _0804B940 - mov ip, r1 - b _0804B94E - .align 2, 0 -_0804B938: .4byte gUnknown_82ED220 -_0804B93C: .4byte gUnknown_2023E8E -_0804B940: .4byte gUnknown_2024118 - thumb_func_end sub_0804B8DC - - thumb_func_start sub_0804B944 -sub_0804B944: @ 0x0804B944 - mov r2, sl - cmp r2, #0 - beq _0804B94E - bl _0804C1D4 -_0804B94E: - mov r3, ip - ldrb r0, [r3, #0x14] - cmp r0, #0x11 - bls _0804B95A - bl _0804C1A0 -_0804B95A: - lsls r0, r0, #2 - ldr r1, _0804B964 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0804B964: .4byte _0804B968 -_0804B968: @ jump table - .4byte _0804B9B0 @ case 0 - .4byte _0804BA8C @ case 1 - .4byte _0804BB48 @ case 2 - .4byte _0804BB6C @ case 3 - .4byte _0804BB84 @ case 4 - .4byte _0804BBAC @ case 5 - .4byte _0804BBD0 @ case 6 - .4byte _0804BC78 @ case 7 - .4byte _0804BCEE @ case 8 - .4byte _0804BD24 @ case 9 - .4byte _0804BDC4 @ case 10 - .4byte _0804BCB8 @ case 11 - .4byte _0804BCD8 @ case 12 - .4byte _0804BE08 @ case 13 - .4byte _0804BE4C @ case 14 - .4byte _0804C02C @ case 15 - .4byte _0804C114 @ case 16 - .4byte _0804C1A0 @ case 17 -_0804B9B0: - ldr r6, _0804BA68 - ldr r5, _0804BA6C - ldrb r3, [r5] - movs r7, #0x58 - adds r2, r3, #0 - muls r2, r7, r2 - adds r0, r6, #0 - adds r0, #0x50 - adds r0, r2, r0 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x10 - ands r0, r1 - cmp r0, #0 - bne _0804B9D0 - b _0804BDB4 -_0804B9D0: - adds r0, r2, r6 - ldrh r0, [r0, #0x28] - cmp r0, #0 - bne _0804B9DA - b _0804BDB4 -_0804B9DA: - ldr r0, _0804BA70 - ldrb r1, [r0] - cmp r1, r3 - bne _0804B9E4 - b _0804BDB4 -_0804B9E4: - adds r0, r1, #0 - bl GetBattlerSide - adds r4, r0, #0 - ldrb r0, [r5] - bl GetBattlerSide - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - bne _0804B9FC - b _0804BDB4 -_0804B9FC: - ldr r0, _0804BA74 - ldrb r1, [r0] - movs r0, #0x29 - ands r0, r1 - cmp r0, #0 - beq _0804BA0A - b _0804BDB4 -_0804BA0A: - ldr r2, _0804BA78 - ldrb r3, [r5] - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r1, r0, #2 - adds r0, r2, #0 - adds r0, #8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, #0 - bne _0804BA2E - adds r0, r2, #0 - adds r0, #0xc - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, #0 - bne _0804BA2E - b _0804BDB4 -_0804BA2E: - ldr r2, _0804BA7C - ldr r0, _0804BA80 - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #1] - cmp r0, #0 - bne _0804BA44 - b _0804BDB4 -_0804BA44: - adds r0, r3, #0 - muls r0, r7, r0 - adds r1, r0, r6 - ldrb r2, [r1, #0x19] - movs r0, #0x19 - ldrsb r0, [r1, r0] - cmp r0, #0xb - ble _0804BA56 - b _0804BDB4 -_0804BA56: - adds r0, r2, #1 - strb r0, [r1, #0x19] - bl BattleScriptPushCursor - ldr r1, _0804BA84 - ldr r0, _0804BA88 - str r0, [r1] - b _0804BCE8 - .align 2, 0 -_0804BA68: .4byte gUnknown_2023D28 -_0804BA6C: .4byte gUnknown_2023EB0 -_0804BA70: .4byte gUnknown_2023EAF -_0804BA74: .4byte gUnknown_2023F20 -_0804BA78: .4byte gUnknown_2024020 -_0804BA7C: .4byte gUnknown_82ED220 -_0804BA80: .4byte gUnknown_2023E8E -_0804BA84: .4byte gUnknown_2023EB8 -_0804BA88: .4byte gUnknown_8289395 -_0804BA8C: - ldr r4, _0804BB28 - ldr r6, _0804BB2C - ldrb r2, [r6] - movs r5, #0x58 - mov ip, r5 - mov r1, ip - muls r1, r2, r1 - adds r7, r4, #0 - adds r7, #0x4c - adds r5, r1, r7 - ldr r3, [r5] - movs r0, #0x20 - ands r0, r3 - cmp r0, #0 - bne _0804BAAC - b _0804BDB4 -_0804BAAC: - adds r0, r1, r4 - ldrh r0, [r0, #0x28] - cmp r0, #0 - bne _0804BAB6 - b _0804BDB4 -_0804BAB6: - ldr r0, _0804BB30 - ldrb r0, [r0] - cmp r0, r2 - bne _0804BAC0 - b _0804BDB4 -_0804BAC0: - ldr r0, _0804BB34 - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r0, #0xc - adds r1, r1, r0 - ldr r0, [r1] - cmp r0, #0 - bne _0804BAD4 - b _0804BDB4 -_0804BAD4: - ldr r0, _0804BB38 - ldrb r1, [r0] - movs r0, #0x29 - ands r0, r1 - cmp r0, #0 - beq _0804BAE2 - b _0804BDB4 -_0804BAE2: - ldr r0, [sp, #4] - cmp r0, #0xa - beq _0804BAEA - b _0804BDB4 -_0804BAEA: - movs r0, #0x21 - rsbs r0, r0, #0 - ands r3, r0 - str r3, [r5] - ldr r4, _0804BB3C - ldrb r0, [r6] - strb r0, [r4] - ldrb r0, [r6] - mov r1, ip - muls r1, r0, r1 - adds r0, r1, #0 - adds r0, r0, r7 - str r0, [sp] - movs r0, #0 - movs r1, #0x28 - movs r2, #0 - movs r3, #4 - bl BtlController_EmitSetMonData - ldrb r0, [r4] - bl MarkBattlerForControllerExec - bl BattleScriptPushCursor - ldr r1, _0804BB40 - ldr r0, _0804BB44 - str r0, [r1] - movs r2, #1 - mov sl, r2 - b _0804BDB4 - .align 2, 0 -_0804BB28: .4byte gUnknown_2023D28 -_0804BB2C: .4byte gUnknown_2023EB0 -_0804BB30: .4byte gUnknown_2023EAF -_0804BB34: .4byte gUnknown_2024020 -_0804BB38: .4byte gUnknown_2023F20 -_0804BB3C: .4byte gUnknown_2023D08 -_0804BB40: .4byte gUnknown_2023EB8 -_0804BB44: .4byte gUnknown_828980A -_0804BB48: - ldr r0, _0804BB68 - ldrb r1, [r0] - movs r0, #0 - str r0, [sp] - movs r0, #7 - movs r2, #0 - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0804BB62 - b _0804BDB4 -_0804BB62: - movs r3, #1 - mov sl, r3 - b _0804BDB4 - .align 2, 0 -_0804BB68: .4byte gUnknown_2023EB0 -_0804BB6C: - ldr r0, _0804BB80 - ldrb r1, [r0] - movs r0, #0 - str r0, [sp] - movs r0, #4 - movs r2, #0 - movs r3, #0 - bl AbilityBattleEffects - b _0804BCE2 - .align 2, 0 -_0804BB80: .4byte gUnknown_2023EB0 -_0804BB84: - movs r0, #0 - str r0, [sp] - movs r0, #5 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0804BB9C - b _0804BDB4 -_0804BB9C: - movs r5, #1 - mov sl, r5 - ldr r0, _0804BBA8 - mov ip, r0 - b _0804C1A0 - .align 2, 0 -_0804BBA8: .4byte gUnknown_2024118 -_0804BBAC: - ldr r0, _0804BBCC - ldrb r1, [r0] - movs r0, #0 - str r0, [sp] - movs r0, #8 - movs r2, #0 - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0804BBC6 - b _0804BDB4 -_0804BBC6: - movs r1, #1 - mov sl, r1 - b _0804BDB4 - .align 2, 0 -_0804BBCC: .4byte gUnknown_2023EAF -_0804BBD0: - ldr r0, _0804BC60 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x12 - ands r0, r1 - cmp r0, #0 - beq _0804BC14 - ldr r2, [sp, #8] - cmp r2, #0x1d - bne _0804BC14 - ldr r0, _0804BC64 - ldrh r2, [r0] - adds r3, r0, #0 - cmp r2, #0xa5 - beq _0804BC14 - ldr r4, [sp, #0xc] - ldrh r1, [r4] - cmp r1, #0 - beq _0804BBFC - ldr r0, _0804BC68 - cmp r1, r0 - bne _0804BC14 -_0804BBFC: - cmp r2, #0xe2 - bne _0804BC0E - ldr r0, _0804BC6C - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _0804BC0E - b _0804C0E6 -_0804BC0E: - ldrh r0, [r3] - ldr r1, [sp, #0xc] - strh r0, [r1] -_0804BC14: - movs r4, #0 - ldr r2, _0804BC70 - ldr r3, _0804BC74 - ldrb r1, [r3] - movs r0, #0x58 - muls r0, r1, r0 - adds r2, #0xc - adds r0, r0, r2 - ldrh r0, [r0] - ldr r5, [sp, #0xc] - ldrh r1, [r5] - mov sb, r3 - cmp r0, r1 - beq _0804BC4C - mov r6, sb - movs r3, #0x58 - adds r5, r1, #0 -_0804BC36: - adds r4, #1 - cmp r4, #3 - bgt _0804BC4C - lsls r0, r4, #1 - ldrb r1, [r6] - muls r1, r3, r1 - adds r0, r0, r1 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r0, r5 - bne _0804BC36 -_0804BC4C: - cmp r4, #4 - bne _0804BC56 - movs r0, #0 - ldr r1, [sp, #0xc] - strh r0, [r1] -_0804BC56: - mov r2, ip - ldrb r0, [r2, #0x14] - adds r0, #1 - strb r0, [r2, #0x14] - b _0804C1A0 - .align 2, 0 -_0804BC60: .4byte gUnknown_2023F24 -_0804BC64: .4byte gUnknown_2023E90 -_0804BC68: .4byte 0x0000FFFF -_0804BC6C: .4byte gUnknown_2023F20 -_0804BC70: .4byte gUnknown_2023D28 -_0804BC74: .4byte gUnknown_2023EAF -_0804BC78: - movs r4, #0 - ldr r0, _0804BCAC - ldrb r3, [r0] - cmp r4, r3 - blt _0804BC84 - b _0804BE32 -_0804BC84: - ldr r7, _0804BCB0 - movs r6, #0 - movs r3, #0xd0 - adds r5, r0, #0 - ldr r2, _0804BCB4 -_0804BC8E: - ldr r0, [r7] - adds r0, r0, r3 - ldrh r1, [r0] - cmp r1, #0 - beq _0804BC9C - strh r1, [r2, #0x2e] - strh r6, [r0] -_0804BC9C: - adds r3, #2 - adds r2, #0x58 - adds r4, #1 - ldrb r0, [r5] - cmp r4, r0 - blt _0804BC8E - b _0804BE32 - .align 2, 0 -_0804BCAC: .4byte gUnknown_2023D10 -_0804BCB0: .4byte gUnknown_2024140 -_0804BCB4: .4byte gUnknown_2023D28 -_0804BCB8: - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ItemBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0804BDB4 - movs r2, #1 - mov sl, r2 - ldr r3, _0804BCD4 - mov ip, r3 - b _0804C1A0 - .align 2, 0 -_0804BCD4: .4byte gUnknown_2024118 -_0804BCD8: - movs r0, #4 - movs r1, #0 - movs r2, #0 - bl ItemBattleEffects -_0804BCE2: - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0804BDB4 -_0804BCE8: - movs r4, #1 - mov sl, r4 - b _0804BDB4 -_0804BCEE: - ldr r1, _0804BD14 - ldr r0, _0804BD18 - ldrb r2, [r0] - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _0804BD1C - ands r0, r1 - cmp r0, #0 - bne _0804BD04 - b _0804C0E6 -_0804BD04: - ldr r0, _0804BD20 - ldr r0, [r0] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0804BD12 - b _0804B898 -_0804BD12: - b _0804C0E6 - .align 2, 0 -_0804BD14: .4byte gUnknown_2023F50 -_0804BD18: .4byte gUnknown_2023EAF -_0804BD1C: .4byte 0x000400C0 -_0804BD20: .4byte gUnknown_2023F24 -_0804BD24: - ldr r0, _0804BD94 - ldrb r1, [r0] - movs r0, #0x29 - ands r0, r1 - cmp r0, #0 - bne _0804BD50 - ldr r1, _0804BD98 - ldr r0, _0804BD9C - ldrb r2, [r0] - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _0804BDA0 - ands r0, r1 - cmp r0, #0 - beq _0804BD50 - adds r0, r2, #0 - bl WasUnableToUseMove - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0804BDB4 -_0804BD50: - ldr r4, _0804BDA4 - ldr r5, _0804BD9C - ldrb r0, [r5] - strb r0, [r4] - movs r0, #0 - movs r1, #0 - bl BtlController_EmitSpriteInvisibility - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldr r0, _0804BD98 - ldrb r2, [r5] - lsls r2, r2, #2 - adds r2, r2, r0 - ldr r0, [r2] - ldr r1, _0804BDA8 - ands r0, r1 - str r0, [r2] - ldr r2, _0804BDAC - ldrb r1, [r5] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_0804BD8A: - ldr r1, _0804BDB0 - ldrb r0, [r1, #0x14] - adds r0, #1 - strb r0, [r1, #0x14] - b _0804C1EA - .align 2, 0 -_0804BD94: .4byte gUnknown_2023F20 -_0804BD98: .4byte gUnknown_2023F50 -_0804BD9C: .4byte gUnknown_2023EAF -_0804BDA0: .4byte 0x000400C0 -_0804BDA4: .4byte gUnknown_2023D08 -_0804BDA8: .4byte 0xFFFBFF3F -_0804BDAC: .4byte gUnknown_2024020 -_0804BDB0: .4byte gUnknown_2024118 -_0804BDB4: - ldr r1, _0804BDC0 - ldrb r0, [r1, #0x14] - adds r0, #1 - strb r0, [r1, #0x14] - mov ip, r1 - b _0804C1A0 - .align 2, 0 -_0804BDC0: .4byte gUnknown_2024118 -_0804BDC4: - ldr r0, _0804BDF4 - ldr r6, _0804BDF8 - ldrb r2, [r6] - lsls r3, r2, #2 - adds r1, r3, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1] - lsls r0, r0, #0x1d - cmp r0, #0 - blt _0804BE32 - ldr r0, _0804BDFC - ldrb r0, [r0] - cmp r2, r0 - bhs _0804BE32 - ldr r5, _0804BE00 - adds r0, r3, r5 - ldr r0, [r0] - ldr r1, _0804BE04 - ands r0, r1 - cmp r0, #0 - bne _0804BDF2 - b _0804B8B0 -_0804BDF2: - b _0804BE32 - .align 2, 0 -_0804BDF4: .4byte gUnknown_2024020 -_0804BDF8: .4byte gUnknown_2023EB0 -_0804BDFC: .4byte gUnknown_2023D10 -_0804BE00: .4byte gUnknown_2023F50 -_0804BE04: .4byte 0x000400C0 -_0804BE08: - movs r4, #0 - ldr r0, _0804BE3C - ldrb r2, [r0] - cmp r4, r2 - bge _0804BE32 - ldr r2, _0804BE40 - ldr r5, _0804BE44 - adds r3, r0, #0 - ldr r1, _0804BE48 -_0804BE1A: - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _0804BE26 - ldr r0, [r1] - ands r0, r5 - str r0, [r1] -_0804BE26: - adds r2, #0x1c - adds r1, #0x58 - adds r4, #1 - ldrb r0, [r3] - cmp r4, r0 - blt _0804BE1A -_0804BE32: - mov r1, ip - ldrb r0, [r1, #0x14] - adds r0, #1 - strb r0, [r1, #0x14] - b _0804C1A0 - .align 2, 0 -_0804BE3C: .4byte gUnknown_2023D10 -_0804BE40: .4byte gUnknown_2023F60 -_0804BE44: .4byte 0xFEFFFFFF -_0804BE48: .4byte gUnknown_2023D78 -_0804BE4C: - ldr r1, _0804BF00 - ldr r3, [r1] - movs r0, #0x80 - lsls r0, r0, #5 - ands r0, r3 - ldr r2, _0804BF04 - mov sb, r2 - adds r5, r1, #0 - cmp r0, #0 - beq _0804BE76 - ldr r0, _0804BF08 - ldrb r2, [r2] - strb r2, [r0] - ldr r1, _0804BF0C - ldrb r0, [r1] - mov r4, sb - strb r0, [r4] - strb r2, [r1] - ldr r0, _0804BF10 - ands r3, r0 - str r3, [r5] -_0804BE76: - ldr r0, [r5] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _0804BE92 - ldr r0, _0804BF14 - mov r2, sb - ldrb r1, [r2] - lsls r1, r1, #1 - adds r1, r1, r0 - ldr r0, _0804BF18 - ldrh r0, [r0] - strh r0, [r1] -_0804BE92: - ldr r0, _0804BF1C - ldrb r1, [r0] - ldr r2, _0804BF20 - mov r3, sb - ldrb r4, [r3] - lsls r0, r4, #2 - adds r0, r0, r2 - ldr r3, [r0] - ands r1, r3 - adds r6, r2, #0 - cmp r1, #0 - beq _0804BEAC - b _0804C018 -_0804BEAC: - ldr r0, _0804BF24 - ldr r1, [r0] - adds r1, #0x91 - ldrb r1, [r1] - ands r1, r3 - adds r7, r0, #0 - cmp r1, #0 - beq _0804BEBE - b _0804C018 -_0804BEBE: - ldr r0, _0804BF28 - ldr r2, [sp, #0x18] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r1, [r1] - mov r8, r0 - cmp r1, #0x7f - bne _0804BED4 - b _0804C018 -_0804BED4: - ldr r0, [r5] - movs r1, #0x80 - lsls r1, r1, #0x12 - ands r0, r1 - cmp r0, #0 - beq _0804BF38 - ldr r0, _0804BF2C - lsls r1, r4, #1 - adds r1, r1, r0 - ldr r0, _0804BF18 - ldrh r0, [r0] - strh r0, [r1] - ldr r0, _0804BF30 - mov r3, sb - ldrb r1, [r3] - lsls r1, r1, #1 - adds r1, r1, r0 - ldr r0, _0804BF34 - ldrh r0, [r0] - strh r0, [r1] - b _0804BF52 - .align 2, 0 -_0804BF00: .4byte gUnknown_2023F24 -_0804BF04: .4byte gUnknown_2023EAF -_0804BF08: .4byte gUnknown_2023D08 -_0804BF0C: .4byte gUnknown_2023EB0 -_0804BF10: .4byte 0xFFFFEFFF -_0804BF14: .4byte gUnknown_2023EE4 -_0804BF18: .4byte gUnknown_2023E90 -_0804BF1C: .4byte gUnknown_2023EB4 -_0804BF20: .4byte gUnknown_82FACB4 -_0804BF24: .4byte gUnknown_2024140 -_0804BF28: .4byte gUnknown_82ED220 -_0804BF2C: .4byte gUnknown_2023EEC -_0804BF30: .4byte gUnknown_2023F04 -_0804BF34: .4byte gUnknown_2023E8E -_0804BF38: - ldr r1, _0804BFA0 - lsls r0, r4, #1 - adds r0, r0, r1 - ldr r1, _0804BFA4 - strh r1, [r0] - ldr r1, _0804BFA8 - mov r4, sb - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r1 - movs r1, #1 - rsbs r1, r1, #0 - strh r1, [r0] -_0804BF52: - ldr r2, _0804BFAC - ldrb r3, [r2] - lsls r0, r3, #2 - adds r0, r0, r6 - ldr r0, [r0] - lsls r0, r0, #0x1c - ldr r1, [r5] - ands r1, r0 - cmp r1, #0 - bne _0804BF70 - ldr r0, _0804BFB0 - adds r0, r3, r0 - mov r3, sb - ldrb r1, [r3] - strb r1, [r0] -_0804BF70: - ldr r0, [r5] - movs r1, #0x80 - lsls r1, r1, #0x12 - ands r0, r1 - cmp r0, #0 - beq _0804C00C - ldr r0, _0804BFB4 - ldrb r1, [r0] - movs r0, #0x29 - ands r0, r1 - cmp r0, #0 - bne _0804C00C - ldr r0, _0804BFB8 - ldrh r3, [r0] - ldr r0, _0804BFA4 - cmp r3, r0 - bne _0804BFC0 - ldr r1, _0804BFBC - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r1 - strh r3, [r0] - b _0804C018 - .align 2, 0 -_0804BFA0: .4byte gUnknown_2023EEC -_0804BFA4: .4byte 0x0000FFFF -_0804BFA8: .4byte gUnknown_2023F04 -_0804BFAC: .4byte gUnknown_2023EB0 -_0804BFB0: .4byte gUnknown_2023F14 -_0804BFB4: .4byte gUnknown_2023F20 -_0804BFB8: .4byte gUnknown_2023E90 -_0804BFBC: .4byte gUnknown_2023EF4 -_0804BFC0: - ldr r0, _0804BFE4 - ldrb r1, [r2] - lsls r1, r1, #1 - adds r1, r1, r0 - ldr r4, _0804BFE8 - ldrh r0, [r4] - strh r0, [r1] - ldr r0, [r7] - ldrb r3, [r0, #0x13] - cmp r3, #0 - beq _0804BFF0 - ldr r0, _0804BFEC - ldrb r1, [r2] - lsls r1, r1, #1 - adds r1, r1, r0 - movs r0, #0x3f - ands r0, r3 - b _0804C016 - .align 2, 0 -_0804BFE4: .4byte gUnknown_2023EF4 -_0804BFE8: .4byte gUnknown_2023E8E -_0804BFEC: .4byte gUnknown_2023EFC -_0804BFF0: - ldr r0, _0804C008 - ldrb r2, [r2] - lsls r2, r2, #1 - adds r2, r2, r0 - ldrh r1, [r4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - ldrb r0, [r0, #2] - strh r0, [r2] - b _0804C018 - .align 2, 0 -_0804C008: .4byte gUnknown_2023EFC -_0804C00C: - ldr r0, _0804C024 - ldrb r1, [r2] - lsls r1, r1, #1 - adds r1, r1, r0 - ldr r0, _0804C028 -_0804C016: - strh r0, [r1] -_0804C018: - mov r4, ip - ldrb r0, [r4, #0x14] - adds r0, #1 - strb r0, [r4, #0x14] - b _0804C1A0 - .align 2, 0 -_0804C024: .4byte gUnknown_2023EF4 -_0804C028: .4byte 0x0000FFFF -_0804C02C: - ldr r0, _0804C0F0 - ldrb r1, [r0] - ldr r7, _0804C0F4 - ldr r2, _0804C0F8 - ldrb r3, [r2] - lsls r0, r3, #2 - adds r0, r0, r7 - ldr r4, [r0] - ands r1, r4 - mov sb, r2 - cmp r1, #0 - bne _0804C0E6 - ldr r6, _0804C0FC - ldr r5, [r6] - adds r0, r5, #0 - adds r0, #0x91 - ldrb r0, [r0] - ands r0, r4 - cmp r0, #0 - bne _0804C0E6 - ldr r1, _0804C100 - ldr r2, [sp, #0x18] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #8] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0804C0E6 - ldr r0, _0804C104 - ldr r1, [r0] - movs r0, #0x80 - lsls r0, r0, #0x12 - ands r0, r1 - cmp r0, #0 - beq _0804C0E6 - ldr r4, _0804C108 - ldrb r0, [r4] - cmp r3, r0 - beq _0804C0E6 - ldrb r2, [r4] - lsls r0, r2, #2 - adds r0, r0, r7 - ldr r0, [r0] - lsls r0, r0, #0x1c - ands r1, r0 - cmp r1, #0 - bne _0804C0E6 - ldr r0, _0804C10C - ldrb r1, [r0] - movs r0, #0x29 - ands r0, r1 - cmp r0, #0 - bne _0804C0E6 - lsls r1, r2, #1 - adds r1, r1, r5 - adds r1, #0x98 - ldr r3, _0804C110 - ldrh r0, [r3] - strb r0, [r1] - ldrb r1, [r4] - ldr r0, [r6] - lsls r1, r1, #1 - adds r1, r1, r0 - adds r1, #0x99 - ldrh r0, [r3] - lsrs r0, r0, #8 - strb r0, [r1] - ldrb r0, [r4] - mov r2, sb - ldrb r1, [r2] - ldr r2, [r6] - lsls r0, r0, #3 - lsls r1, r1, #1 - adds r0, r0, r1 - adds r0, r0, r2 - adds r0, #0xe0 - ldrh r1, [r3] - strb r1, [r0] - ldrb r1, [r4] - mov r4, sb - ldrb r0, [r4] - ldr r2, [r6] - lsls r1, r1, #3 - lsls r0, r0, #1 - adds r1, r1, r0 - adds r1, r1, r2 - adds r1, #0xe1 - ldrh r0, [r3] - lsrs r0, r0, #8 - strb r0, [r1] -_0804C0E6: - mov r5, ip - ldrb r0, [r5, #0x14] - adds r0, #1 - strb r0, [r5, #0x14] - b _0804C1A0 - .align 2, 0 -_0804C0F0: .4byte gUnknown_2023EB4 -_0804C0F4: .4byte gUnknown_82FACB4 -_0804C0F8: .4byte gUnknown_2023EAF -_0804C0FC: .4byte gUnknown_2024140 -_0804C100: .4byte gUnknown_82ED220 -_0804C104: .4byte gUnknown_2023F24 -_0804C108: .4byte gUnknown_2023EB0 -_0804C10C: .4byte gUnknown_2023F20 -_0804C110: .4byte gUnknown_2023E90 -_0804C114: - ldr r5, _0804C1FC - ldr r2, [r5] - movs r0, #0x80 - lsls r0, r0, #0xc - ands r0, r2 - cmp r0, #0 - bne _0804C198 - ldr r0, _0804C200 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0804C198 - ldr r1, _0804C204 - ldr r0, _0804C208 - ldrb r0, [r0] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrb r0, [r0, #1] - lsls r0, r0, #0x1d - cmp r0, #0 - blt _0804C198 - ldr r0, _0804C20C - mov sb, r0 - ldr r1, _0804C210 - mov r8, r1 - ldrh r0, [r1] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - add r1, sb - ldrb r0, [r1, #6] - cmp r0, #8 - bne _0804C198 - movs r6, #0x80 - lsls r6, r6, #2 - adds r4, r6, #0 - ands r4, r2 - cmp r4, #0 - bne _0804C198 - ldr r7, _0804C214 - ldrb r0, [r7] - bl sub_080A630C - movs r1, #2 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _0804C218 - movs r0, #0x58 - muls r0, r2, r0 - adds r0, r0, r1 - ldrh r0, [r0, #0x28] - cmp r0, #0 - beq _0804C18E - bl sub_0804B8DC -_0804C18E: - ldr r0, [r5] - orrs r0, r6 - str r0, [r5] - ldr r2, _0804C21C - mov ip, r2 -_0804C198: - mov r3, ip - ldrb r0, [r3, #0x14] - adds r0, #1 - strb r0, [r3, #0x14] -_0804C1A0: - ldr r4, [sp, #0x10] - cmp r4, #1 - bne _0804C1B2 - mov r5, sl - cmp r5, #0 - bne _0804C1B2 - movs r0, #0x11 - mov r1, ip - strb r0, [r1, #0x14] -_0804C1B2: - ldr r2, [sp, #0x10] - cmp r2, #2 - bne _0804C1C8 - ldr r4, [sp, #0x14] - mov r3, ip - ldrb r3, [r3, #0x14] - cmp r4, r3 - bne _0804C1C8 - movs r0, #0x11 - mov r4, ip - strb r0, [r4, #0x14] -_0804C1C8: - mov r5, ip - ldrb r0, [r5, #0x14] - cmp r0, #0x11 - beq _0804C1D4 - bl sub_0804B944 -_0804C1D4: - mov r1, ip - ldrb r0, [r1, #0x14] - cmp r0, #0x11 - bne _0804C1EA - mov r2, sl - cmp r2, #0 - bne _0804C1EA - ldr r1, _0804C220 - ldr r0, [r1] - adds r0, #3 -_0804C1E8: - str r0, [r1] -_0804C1EA: - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0804C1FC: .4byte gUnknown_2023F24 -_0804C200: .4byte gUnknown_2022C90 -_0804C204: .4byte gUnknown_2023FE0 -_0804C208: .4byte gUnknown_2023EAF -_0804C20C: .4byte gUnknown_82ED220 -_0804C210: .4byte gUnknown_2023E8E -_0804C214: .4byte gUnknown_2023EB0 -_0804C218: .4byte gUnknown_2023D28 -_0804C21C: .4byte gUnknown_2024118 -_0804C220: .4byte gUnknown_2023EB8 - thumb_func_end sub_0804B944 - - thumb_func_start atk4A_typecalc2 -atk4A_typecalc2: @ 0x0804C224 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r4, #0 - movs r5, #0 - ldr r2, _0804C288 - ldr r0, _0804C28C - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #2] - mov r8, r0 - ldr r2, _0804C290 - ldr r3, _0804C294 - ldrb r1, [r3] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - adds r0, #0x20 - ldrb r0, [r0] - mov ip, r2 - adds r7, r3, #0 - cmp r0, #0x1a - bne _0804C2B8 - mov r1, r8 - cmp r1, #4 - bne _0804C2B8 - ldr r3, _0804C298 - strb r0, [r3] - ldr r2, _0804C29C - ldrb r0, [r2] - movs r1, #9 - orrs r0, r1 - strb r0, [r2] - ldr r1, _0804C2A0 - ldrb r0, [r7] - lsls r0, r0, #1 - adds r0, r0, r1 - strh r4, [r0] - ldr r0, _0804C2A4 - mov r2, r8 - strb r2, [r0, #6] - ldrb r0, [r7] - ldrb r1, [r3] - bl RecordAbilityBattle - b _0804C39A - .align 2, 0 -_0804C288: .4byte gUnknown_82ED220 -_0804C28C: .4byte gUnknown_2023E8E -_0804C290: .4byte gUnknown_2023D28 -_0804C294: .4byte gUnknown_2023EB0 -_0804C298: .4byte gUnknown_2023EAE -_0804C29C: .4byte gUnknown_2023F20 -_0804C2A0: .4byte gUnknown_2023EF4 -_0804C2A4: .4byte gUnknown_2023FD6 -_0804C2A8: - ldr r0, _0804C2B4 - ldrb r1, [r0] - movs r2, #8 - orrs r1, r2 - strb r1, [r0] - b _0804C39A - .align 2, 0 -_0804C2B4: .4byte gUnknown_2023F20 -_0804C2B8: - ldr r1, _0804C2C4 - adds r0, r5, r1 - ldrb r0, [r0] - adds r6, r1, #0 - b _0804C37A - .align 2, 0 -_0804C2C4: .4byte gUnknown_82EBB38 -_0804C2C8: - adds r0, r5, r6 - ldrb r0, [r0] - cmp r0, r8 - bne _0804C374 - adds r2, r5, #1 - adds r3, r2, r6 - ldrb r1, [r7] - movs r0, #0x58 - muls r0, r1, r0 - add r0, ip - adds r0, #0x21 - ldrb r1, [r3] - adds r3, r2, #0 - ldrb r0, [r0] - cmp r1, r0 - bne _0804C306 - adds r0, r5, #2 - adds r0, r0, r6 - ldrb r1, [r0] - cmp r1, #0 - beq _0804C2A8 - cmp r1, #5 - bne _0804C2FA - movs r0, #4 - orrs r4, r0 -_0804C2FA: - cmp r1, #0x14 - bne _0804C306 - movs r0, #2 - orrs r4, r0 - lsls r0, r4, #0x18 - lsrs r4, r0, #0x18 -_0804C306: - adds r2, r3, r6 - ldrb r1, [r7] - movs r0, #0x58 - muls r0, r1, r0 - add r0, ip - adds r1, r0, #0 - adds r1, #0x22 - ldrb r2, [r2] - ldrb r1, [r1] - cmp r2, r1 - bne _0804C374 - adds r0, #0x21 - ldrb r1, [r0] - cmp r1, r2 - beq _0804C32E - adds r0, r5, #2 - adds r0, r0, r6 - ldrb r0, [r0] - cmp r0, #0 - beq _0804C2A8 -_0804C32E: - cmp r1, r2 - beq _0804C344 - adds r0, r5, #2 - adds r0, r0, r6 - ldrb r0, [r0] - cmp r0, #5 - bne _0804C344 - movs r0, #4 - orrs r4, r0 - lsls r0, r4, #0x18 - lsrs r4, r0, #0x18 -_0804C344: - adds r2, r3, r6 - ldrb r1, [r7] - movs r0, #0x58 - muls r0, r1, r0 - add r0, ip - adds r1, r0, #0 - adds r1, #0x22 - ldrb r2, [r2] - ldrb r1, [r1] - cmp r2, r1 - bne _0804C374 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, r2 - beq _0804C374 - adds r0, r5, #2 - adds r0, r0, r6 - ldrb r0, [r0] - cmp r0, #0x14 - bne _0804C374 - movs r0, #2 - orrs r4, r0 - lsls r0, r4, #0x18 - lsrs r4, r0, #0x18 -_0804C374: - adds r5, #3 - adds r0, r5, r6 - ldrb r0, [r0] -_0804C37A: - cmp r0, #0xff - beq _0804C39A - cmp r0, #0xfe - bne _0804C2C8 - ldrb r1, [r7] - movs r0, #0x58 - muls r0, r1, r0 - mov r1, ip - adds r1, #0x50 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x16 - ands r0, r1 - cmp r0, #0 - beq _0804C374 -_0804C39A: - ldr r2, _0804C448 - ldr r0, _0804C44C - mov r8, r0 - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - adds r0, #0x20 - ldrb r6, [r0] - cmp r6, #0x19 - bne _0804C416 - movs r5, #0x29 - ands r5, r4 - cmp r5, #0 - bne _0804C416 - ldr r0, _0804C450 - ldrb r0, [r0] - ldr r7, _0804C454 - ldrh r1, [r7] - bl AttacksThisTurn - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #2 - bne _0804C416 - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - beq _0804C3DC - movs r0, #6 - ands r4, r0 - cmp r4, #6 - bne _0804C416 -_0804C3DC: - ldr r2, _0804C458 - ldrh r1, [r7] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #1] - cmp r0, #0 - beq _0804C416 - ldr r3, _0804C45C - strb r6, [r3] - ldr r2, _0804C460 - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - ldr r1, _0804C464 - mov r2, r8 - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r1 - strh r5, [r0] - ldr r1, _0804C468 - movs r0, #3 - strb r0, [r1, #6] - ldrb r0, [r2] - ldrb r1, [r3] - bl RecordAbilityBattle -_0804C416: - ldr r0, _0804C460 - ldrb r1, [r0] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0804C434 - ldr r2, _0804C46C - ldr r0, _0804C450 - ldrb r1, [r0] - lsls r1, r1, #4 - adds r1, r1, r2 - ldrb r0, [r1, #1] - movs r2, #2 - orrs r0, r2 - strb r0, [r1, #1] -_0804C434: - ldr r1, _0804C470 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0804C448: .4byte gUnknown_2023D28 -_0804C44C: .4byte gUnknown_2023EB0 -_0804C450: .4byte gUnknown_2023EAF -_0804C454: .4byte gUnknown_2023E8E -_0804C458: .4byte gUnknown_82ED220 -_0804C45C: .4byte gUnknown_2023EAE -_0804C460: .4byte gUnknown_2023F20 -_0804C464: .4byte gUnknown_2023EF4 -_0804C468: .4byte gUnknown_2023FD6 -_0804C46C: .4byte gUnknown_2023FE0 -_0804C470: .4byte gUnknown_2023EB8 - thumb_func_end atk4A_typecalc2 - - thumb_func_start atk4B_returnatktoball -atk4B_returnatktoball: @ 0x0804C474 - push {r4, lr} - ldr r4, _0804C4B0 - ldr r0, _0804C4B4 - ldrb r0, [r0] - strb r0, [r4] - ldr r2, _0804C4B8 - ldr r1, _0804C4BC - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - lsls r1, r1, #0x1c - ldr r0, [r2] - ands r0, r1 - cmp r0, #0 - bne _0804C4A2 - movs r0, #0 - movs r1, #0 - bl BtlController_EmitReturnMonToBall - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_0804C4A2: - ldr r1, _0804C4C0 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804C4B0: .4byte gUnknown_2023D08 -_0804C4B4: .4byte gUnknown_2023EAF -_0804C4B8: .4byte gUnknown_2023F24 -_0804C4BC: .4byte gUnknown_82FACB4 -_0804C4C0: .4byte gUnknown_2023EB8 - thumb_func_end atk4B_returnatktoball - - thumb_func_start atk4C_getswitchedmondata -atk4C_getswitchedmondata: @ 0x0804C4C4 - push {r4, r5, lr} - ldr r0, _0804C51C - ldr r0, [r0] - cmp r0, #0 - bne _0804C514 - ldr r5, _0804C520 - ldr r0, [r5] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - ldr r4, _0804C524 - strb r0, [r4] - ldr r3, _0804C528 - ldrb r0, [r4] - lsls r2, r0, #1 - adds r2, r2, r3 - ldr r1, _0804C52C - ldr r1, [r1] - adds r0, r0, r1 - adds r0, #0x5c - ldrb r0, [r0] - strh r0, [r2] - ldr r1, _0804C530 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r2, [r0] - movs r0, #0 - movs r1, #0 - bl BtlController_EmitGetMonData - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldr r0, [r5] - adds r0, #2 - str r0, [r5] -_0804C514: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0804C51C: .4byte gUnknown_2023D0C -_0804C520: .4byte gUnknown_2023EB8 -_0804C524: .4byte gUnknown_2023D08 -_0804C528: .4byte gUnknown_2023D12 -_0804C52C: .4byte gUnknown_2024140 -_0804C530: .4byte gUnknown_82FACB4 - thumb_func_end atk4C_getswitchedmondata - - thumb_func_start atk4D_switchindataupdate -atk4D_switchindataupdate: @ 0x0804C534 - push {r4, r5, r6, r7, lr} - sub sp, #0x58 - ldr r0, _0804C6DC - ldr r0, [r0] - cmp r0, #0 - beq _0804C542 - b _0804C6D4 -_0804C542: - ldr r0, _0804C6E0 - ldr r0, [r0] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - ldr r4, _0804C6E4 - strb r0, [r4] - ldr r6, _0804C6E8 - ldrb r0, [r4] - movs r5, #0x58 - adds r1, r0, #0 - muls r1, r5, r1 - adds r1, r1, r6 - mov r0, sp - movs r2, #0x58 - bl memcpy - ldrb r0, [r4] - muls r0, r5, r0 - adds r3, r0, r6 - movs r2, #0 - ldr r5, _0804C6EC -_0804C56E: - adds r0, r3, r2 - ldrb r1, [r4] - lsls r1, r1, #9 - adds r1, #4 - adds r1, r2, r1 - adds r1, r1, r5 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, #0x57 - bls _0804C56E - ldr r4, _0804C6E8 - ldr r6, _0804C6E4 - ldrb r0, [r6] - movs r7, #0x58 - adds r2, r0, #0 - muls r2, r7, r2 - adds r2, r2, r4 - ldr r3, _0804C6F0 - ldrh r1, [r2] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r0, [r0, #6] - adds r2, #0x21 - strb r0, [r2] - ldrb r0, [r6] - adds r1, r0, #0 - muls r1, r7, r1 - adds r1, r1, r4 - ldrh r2, [r1] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r0, [r0, #7] - adds r1, #0x22 - strb r0, [r1] - ldrb r0, [r6] - adds r1, r0, #0 - muls r1, r7, r1 - adds r1, r1, r4 - ldrh r0, [r1] - ldrb r1, [r1, #0x17] - lsrs r1, r1, #7 - bl GetAbilityBySpecies - ldrb r1, [r6] - muls r1, r7, r1 - adds r1, r1, r4 - adds r1, #0x20 - strb r0, [r1] - ldrb r0, [r6] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _0804C6F4 - adds r0, #0x29 - adds r0, r2, r0 - ldrb r1, [r0] - ldr r3, _0804C6F8 - ldr r2, _0804C6FC - ldrb r5, [r6] - lsls r0, r5, #1 - adds r0, r0, r2 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r3 - ldr r0, [r0] - ands r1, r0 - mov ip, r4 - cmp r1, #0 - beq _0804C60E - adds r0, r5, #0 - muls r0, r7, r0 - add r0, ip - movs r1, #0 - strh r1, [r0, #0x2e] -_0804C60E: - ldr r2, _0804C700 - ldr r0, _0804C704 - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #0x7f - bne _0804C656 - movs r2, #0 - adds r4, r6, #0 - movs r6, #0x58 - mov r5, ip - adds r5, #0x18 - add r3, sp, #0x18 -_0804C62E: - ldrb r0, [r4] - adds r1, r0, #0 - muls r1, r6, r1 - adds r1, r2, r1 - adds r1, r1, r5 - adds r0, r3, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r2, #1 - cmp r2, #7 - ble _0804C62E - ldr r0, _0804C6E4 - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - mov r1, ip - adds r1, #0x50 - adds r0, r0, r1 - ldr r1, [sp, #0x50] - str r1, [r0] -_0804C656: - bl SwitchInClearSetData - ldr r0, _0804C708 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xa - ands r0, r1 - cmp r0, #0 - beq _0804C6A8 - ldr r4, _0804C6E8 - ldr r0, _0804C6E4 - ldrb r3, [r0] - movs r0, #0x58 - adds r2, r3, #0 - muls r2, r0, r2 - adds r1, r2, r4 - ldrh r0, [r1, #0x2c] - lsrs r0, r0, #1 - ldrh r1, [r1, #0x28] - cmp r0, r1 - blo _0804C6A8 - cmp r1, #0 - beq _0804C6A8 - adds r0, r4, #0 - adds r0, #0x4c - adds r0, r2, r0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _0804C6A8 - ldr r0, _0804C70C - ldr r2, [r0] - adds r2, #0x92 - ldr r1, _0804C6F8 - lsls r0, r3, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] -_0804C6A8: - ldr r0, _0804C710 - ldr r3, _0804C6E4 - ldrb r2, [r3] - strb r2, [r0, #0x17] - ldr r1, _0804C714 - movs r0, #0xfd - strb r0, [r1] - movs r0, #7 - strb r0, [r1, #1] - strb r2, [r1, #2] - ldr r2, _0804C6FC - ldrb r0, [r3] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strb r0, [r1, #3] - movs r0, #0xff - strb r0, [r1, #4] - ldr r1, _0804C6E0 - ldr r0, [r1] - adds r0, #2 - str r0, [r1] -_0804C6D4: - add sp, #0x58 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0804C6DC: .4byte gUnknown_2023D0C -_0804C6E0: .4byte gUnknown_2023EB8 -_0804C6E4: .4byte gUnknown_2023D08 -_0804C6E8: .4byte gUnknown_2023D28 -_0804C6EC: .4byte gUnknown_2023508 -_0804C6F0: .4byte gUnknown_82F0D54 -_0804C6F4: .4byte gUnknown_2024074 -_0804C6F8: .4byte gUnknown_82FACB4 -_0804C6FC: .4byte gUnknown_2023D12 -_0804C700: .4byte gUnknown_82ED220 -_0804C704: .4byte gUnknown_2023E8E -_0804C708: .4byte gUnknown_2022C90 -_0804C70C: .4byte gUnknown_2024140 -_0804C710: .4byte gUnknown_2024118 -_0804C714: .4byte gUnknown_2022C0C - thumb_func_end atk4D_switchindataupdate - - thumb_func_start atk4E_switchinanim -atk4E_switchinanim: @ 0x0804C718 - push {r4, r5, r6, lr} - ldr r0, _0804C7BC - ldr r0, [r0] - cmp r0, #0 - bne _0804C7B6 - ldr r0, _0804C7C0 - ldr r0, [r0] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - ldr r6, _0804C7C4 - strb r0, [r6] - ldrb r0, [r6] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0804C76E - ldr r0, _0804C7C8 - ldr r0, [r0] - ldr r1, _0804C7CC - ands r0, r1 - cmp r0, #0 - bne _0804C76E - ldr r4, _0804C7D0 - ldrb r0, [r6] - movs r5, #0x58 - muls r0, r5, r0 - adds r0, r0, r4 - ldrh r0, [r0] - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r6] - muls r1, r5, r1 - adds r4, #0x48 - adds r1, r1, r4 - ldr r2, [r1] - movs r1, #2 - bl HandleSetPokedexFlag -_0804C76E: - ldr r2, _0804C7D4 - ldr r1, _0804C7D8 - ldr r5, _0804C7C4 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] - ldr r1, _0804C7DC - ldrb r0, [r5] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrb r1, [r0] - ldr r4, _0804C7C0 - ldr r0, [r4] - ldrb r2, [r0, #2] - movs r0, #0 - bl BtlController_EmitSwitchInAnim - ldrb r0, [r5] - bl MarkBattlerForControllerExec - ldr r0, [r4] - adds r0, #3 - str r0, [r4] - ldr r0, _0804C7C8 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xb - ands r0, r1 - cmp r0, #0 - beq _0804C7B6 - bl BattleArena_InitPoints -_0804C7B6: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0804C7BC: .4byte gUnknown_2023D0C -_0804C7C0: .4byte gUnknown_2023EB8 -_0804C7C4: .4byte gUnknown_2023D08 -_0804C7C8: .4byte gUnknown_2022C90 -_0804C7CC: .4byte 0x063F0902 -_0804C7D0: .4byte gUnknown_2023D28 -_0804C7D4: .4byte gUnknown_2023EB4 -_0804C7D8: .4byte gUnknown_82FACB4 -_0804C7DC: .4byte gUnknown_2023D12 - thumb_func_end atk4E_switchinanim - - thumb_func_start atk4F_jumpifcantswitch -atk4F_jumpifcantswitch: @ 0x0804C7E0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r4, _0804C844 - ldr r0, [r4] - ldrb r1, [r0, #1] - movs r0, #0x7f - ands r0, r1 - bl GetBattlerForBattleScript - ldr r3, _0804C848 - strb r0, [r3] - ldr r2, [r4] - ldrb r1, [r2, #1] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0804C858 - ldr r1, _0804C84C - ldrb r3, [r3] - movs r0, #0x58 - muls r0, r3, r0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _0804C850 - ands r0, r1 - cmp r0, #0 - bne _0804C82C - ldr r1, _0804C854 - lsls r0, r3, #2 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _0804C858 -_0804C82C: - ldrb r1, [r2, #2] - ldrb r0, [r2, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _0804CB30 - .align 2, 0 -_0804C844: .4byte gUnknown_2023EB8 -_0804C848: .4byte gUnknown_2023D08 -_0804C84C: .4byte gUnknown_2023D28 -_0804C850: .4byte 0x0400E000 -_0804C854: .4byte gUnknown_2023F50 -_0804C858: - ldr r0, _0804C8DC - ldr r1, [r0] - movs r0, #0x80 - lsls r0, r0, #0xf - ands r0, r1 - cmp r0, #0 - beq _0804C8F0 - ldr r5, _0804C8E0 - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0804C8E4 - mov r8, r1 - cmp r0, #1 - bne _0804C87E - ldr r0, _0804C8E8 - mov r8, r0 -_0804C87E: - movs r4, #0 - ldrb r1, [r5] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0804C88C - movs r4, #3 -_0804C88C: - adds r6, r4, #3 - cmp r4, r6 - bge _0804C8D4 - ldr r7, _0804C8EC -_0804C894: - movs r0, #0x64 - muls r0, r4, r0 - mov r1, r8 - adds r5, r1, r0 - adds r0, r5, #0 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _0804C8CE - adds r0, r5, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - bne _0804C8CE - adds r0, r5, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _0804C8CE - ldr r0, _0804C8E0 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r7 - ldrh r0, [r0] - cmp r0, r4 - bne _0804C8D4 -_0804C8CE: - adds r4, #1 - cmp r4, r6 - blt _0804C894 -_0804C8D4: - cmp r4, r6 - bne _0804C8DA - b _0804CB00 -_0804C8DA: - b _0804CB28 - .align 2, 0 -_0804C8DC: .4byte gUnknown_2022C90 -_0804C8E0: .4byte gUnknown_2023D08 -_0804C8E4: .4byte gUnknown_2024190 -_0804C8E8: .4byte gUnknown_20243E8 -_0804C8EC: .4byte gUnknown_2023D12 -_0804C8F0: - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0804C9BC - movs r0, #0x80 - lsls r0, r0, #0x10 - ands r1, r0 - cmp r1, #0 - beq _0804C930 - ldr r5, _0804C914 - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0804C91C - ldr r0, _0804C918 - b _0804C946 - .align 2, 0 -_0804C914: .4byte gUnknown_2023D08 -_0804C918: .4byte gUnknown_2024190 -_0804C91C: - ldr r1, _0804C92C - mov r8, r1 - ldrb r0, [r5] - movs r4, #3 - cmp r0, #1 - bne _0804C962 - movs r4, #0 - b _0804C962 - .align 2, 0 -_0804C92C: .4byte gUnknown_20243E8 -_0804C930: - ldr r5, _0804C9AC - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0804C9B0 - mov r8, r1 - cmp r0, #1 - bne _0804C948 - ldr r0, _0804C9B4 -_0804C946: - mov r8, r0 -_0804C948: - movs r4, #0 - ldrb r0, [r5] - bl GetBattlerMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetLinkTrainerFlankId - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bne _0804C962 - movs r4, #3 -_0804C962: - adds r6, r4, #3 - cmp r4, r6 - bge _0804C8D4 - ldr r7, _0804C9B8 -_0804C96A: - movs r0, #0x64 - muls r0, r4, r0 - mov r1, r8 - adds r5, r1, r0 - adds r0, r5, #0 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _0804C9A4 - adds r0, r5, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - bne _0804C9A4 - adds r0, r5, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _0804C9A4 - ldr r0, _0804C9AC - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r7 - ldrh r0, [r0] - cmp r0, r4 - bne _0804C8D4 -_0804C9A4: - adds r4, #1 - cmp r4, r6 - blt _0804C96A - b _0804C8D4 - .align 2, 0 -_0804C9AC: .4byte gUnknown_2023D08 -_0804C9B0: .4byte gUnknown_2024190 -_0804C9B4: .4byte gUnknown_20243E8 -_0804C9B8: .4byte gUnknown_2023D12 -_0804C9BC: - movs r0, #0x80 - lsls r0, r0, #8 - ands r1, r0 - cmp r1, #0 - beq _0804CA40 - ldr r5, _0804CA34 - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0804CA40 - ldr r0, _0804CA38 - mov r8, r0 - movs r4, #0 - ldrb r0, [r5] - cmp r0, #3 - bne _0804C9E4 - movs r4, #3 -_0804C9E4: - adds r6, r4, #3 - cmp r4, r6 - blt _0804C9EC - b _0804C8D4 -_0804C9EC: - ldr r7, _0804CA3C -_0804C9EE: - movs r0, #0x64 - muls r0, r4, r0 - mov r1, r8 - adds r5, r1, r0 - adds r0, r5, #0 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _0804CA2A - adds r0, r5, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - bne _0804CA2A - adds r0, r5, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _0804CA2A - ldr r0, _0804CA34 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r7 - ldrh r0, [r0] - cmp r0, r4 - beq _0804CA2A - b _0804C8D4 -_0804CA2A: - adds r4, #1 - cmp r4, r6 - blt _0804C9EE - b _0804C8D4 - .align 2, 0 -_0804CA34: .4byte gUnknown_2023D08 -_0804CA38: .4byte gUnknown_20243E8 -_0804CA3C: .4byte gUnknown_2023D12 -_0804CA40: - ldr r0, _0804CA70 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #1 - bne _0804CA84 - movs r0, #1 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _0804CA74 - ldr r0, [r0] - ands r0, r4 - cmp r0, #0 - beq _0804CA78 - movs r0, #3 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - b _0804CA7A - .align 2, 0 -_0804CA70: .4byte gUnknown_2023D08 -_0804CA74: .4byte gUnknown_2022C90 -_0804CA78: - adds r6, r7, #0 -_0804CA7A: - ldr r0, _0804CA80 - mov r8, r0 - b _0804CAB2 - .align 2, 0 -_0804CA80: .4byte gUnknown_20243E8 -_0804CA84: - movs r0, #0 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _0804CAA8 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0804CAAC - movs r0, #2 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - b _0804CAAE - .align 2, 0 -_0804CAA8: .4byte gUnknown_2022C90 -_0804CAAC: - adds r6, r7, #0 -_0804CAAE: - ldr r1, _0804CB1C - mov r8, r1 -_0804CAB2: - movs r4, #0 -_0804CAB4: - movs r0, #0x64 - muls r0, r4, r0 - mov r1, r8 - adds r5, r1, r0 - adds r0, r5, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _0804CAF6 - adds r0, r5, #0 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _0804CAF6 - adds r0, r5, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - bne _0804CAF6 - ldr r1, _0804CB20 - lsls r0, r7, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r4, r0 - beq _0804CAF6 - lsls r0, r6, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r4, r0 - bne _0804CAFC -_0804CAF6: - adds r4, #1 - cmp r4, #5 - ble _0804CAB4 -_0804CAFC: - cmp r4, #6 - bne _0804CB28 -_0804CB00: - ldr r3, _0804CB24 - ldr r2, [r3] - ldrb r1, [r2, #2] - ldrb r0, [r2, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _0804CB30 - .align 2, 0 -_0804CB1C: .4byte gUnknown_2024190 -_0804CB20: .4byte gUnknown_2023D12 -_0804CB24: .4byte gUnknown_2023EB8 -_0804CB28: - ldr r1, _0804CB3C - ldr r0, [r1] - adds r0, #6 - str r0, [r1] -_0804CB30: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0804CB3C: .4byte gUnknown_2023EB8 - thumb_func_end atk4F_jumpifcantswitch - - thumb_func_start sub_0804CB40 -sub_0804CB40: @ 0x0804CB40 - push {r4, r5, lr} - sub sp, #4 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r5, _0804CBA8 - ldrb r0, [r5] - ldr r4, _0804CBAC - ldr r1, [r4] - adds r1, r0, r1 - adds r1, #0x58 - ldr r3, _0804CBB0 - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r5] - ldr r1, [r4] - adds r0, r0, r1 - adds r0, #0x5c - movs r1, #6 - strb r1, [r0] - ldr r1, [r4] - adds r1, #0x93 - ldr r3, _0804CBB4 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r3 - ldr r3, [r0] - ldrb r0, [r1] - bics r0, r3 - strb r0, [r1] - ldrb r0, [r5] - lsls r1, r0, #1 - adds r1, r1, r0 - adds r1, #0x60 - ldr r0, [r4] - adds r0, r0, r1 - str r0, [sp] - movs r0, #0 - movs r1, #1 - movs r3, #0 - bl BtlController_EmitChoosePokemon - ldrb r0, [r5] - bl MarkBattlerForControllerExec - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0804CBA8: .4byte gUnknown_2023D08 -_0804CBAC: .4byte gUnknown_2024140 -_0804CBB0: .4byte gUnknown_2023D12 -_0804CBB4: .4byte gUnknown_82FACB4 - thumb_func_end sub_0804CB40 - - thumb_func_start sub_0804CBB8 -sub_0804CBB8: @ 0x0804CBB8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - movs r7, #0 - movs r0, #0 - mov sb, r0 - ldr r6, _0804CC68 - ldr r2, [r6] - ldrb r1, [r2, #2] - ldrb r0, [r2, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - mov r8, r1 - ldrb r1, [r2, #1] - adds r0, r1, #0 - mov ip, r6 - cmp r0, #5 - beq _0804CBEE - b _0804D094 -_0804CBEE: - ldr r0, _0804CC6C - ldr r0, [r0] - movs r1, #0x41 - ands r1, r0 - cmp r1, #1 - beq _0804CCE0 - ldr r1, _0804CC70 - strb r7, [r1] - ldr r0, _0804CC74 - ldrb r0, [r0] - cmp r7, r0 - blo _0804CC08 - b _0804D080 -_0804CC08: - ldr r7, _0804CC78 - ldr r6, _0804CC7C - adds r4, r1, #0 - ldr r2, _0804CC80 - mov r8, r2 -_0804CC12: - ldrb r2, [r4] - lsls r0, r2, #2 - adds r0, r0, r6 - ldr r1, [r0] - lsls r1, r1, #0x1c - ldr r0, [r7] - ands r0, r1 - cmp r0, #0 - beq _0804CCB8 - adds r0, r2, #0 - movs r1, #6 - movs r2, #6 - bl HasNoMonsToSwitch - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0804CC84 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r0, [r0] - mov r2, r8 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r1, [r0] - lsls r1, r1, #0x1c - ldr r0, [r7] - bics r0, r1 - str r0, [r7] - movs r0, #0 - movs r1, #2 - movs r2, #0 - bl BtlController_EmitLinkStandbyMsg - ldrb r0, [r4] - bl MarkBattlerForControllerExec - b _0804CCC8 - .align 2, 0 -_0804CC68: .4byte gUnknown_2023EB8 -_0804CC6C: .4byte gUnknown_2022C90 -_0804CC70: .4byte gUnknown_2023D08 -_0804CC74: .4byte gUnknown_2023D10 -_0804CC78: .4byte gUnknown_2023F24 -_0804CC7C: .4byte gUnknown_82FACB4 -_0804CC80: .4byte gUnknown_2023EB4 -_0804CC84: - ldr r5, _0804CCB4 - ldrb r0, [r4] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrb r0, [r1] - lsls r0, r0, #0x19 - cmp r0, #0 - blt _0804CCC8 - movs r0, #6 - bl sub_0804CB40 - ldrb r1, [r4] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r1, [r0] - movs r2, #0x40 - orrs r1, r2 - strb r1, [r0] - b _0804CCC8 - .align 2, 0 -_0804CCB4: .4byte gUnknown_2024020 -_0804CCB8: - movs r0, #0 - movs r1, #2 - movs r2, #0 - bl BtlController_EmitLinkStandbyMsg - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_0804CCC8: - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - ldr r1, _0804CCDC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1] - cmp r0, r1 - blo _0804CC12 - b _0804D080 - .align 2, 0 -_0804CCDC: .4byte gUnknown_2023D10 -_0804CCE0: - ands r0, r1 - cmp r0, #0 - bne _0804CCE8 - b _0804D080 -_0804CCE8: - ldr r0, _0804CD40 - mov r8, r0 - ldr r0, [r0] - lsrs r5, r0, #0x1c - ldr r6, _0804CD44 - ldr r0, [r6] - ands r0, r5 - cmp r0, #0 - beq _0804CDA0 - ldr r4, _0804CD48 - strb r7, [r4] - movs r0, #0 - movs r1, #6 - movs r2, #6 - bl HasNoMonsToSwitch - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0804CD50 - ldr r2, _0804CD4C - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r1, [r0] - lsls r1, r1, #0x1c - mov r2, r8 - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - movs r0, #0 - bl sub_0803410C - ldrb r0, [r4] - bl MarkBattlerForControllerExec - b _0804CDA0 - .align 2, 0 -_0804CD40: .4byte gUnknown_2023F24 -_0804CD44: .4byte gUnknown_82FACB4 -_0804CD48: .4byte gUnknown_2023D08 -_0804CD4C: .4byte gUnknown_2023EB4 -_0804CD50: - ldr r6, _0804CD84 - ldrb r0, [r4] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrb r0, [r1] - lsls r0, r0, #0x19 - cmp r0, #0 - blt _0804CD8C - ldr r0, _0804CD88 - ldr r0, [r0] - adds r0, #0x5e - ldrb r0, [r0] - bl sub_0804CB40 - ldrb r1, [r4] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r1, [r0] - movs r2, #0x40 - orrs r1, r2 - strb r1, [r0] - b _0804CDA0 - .align 2, 0 -_0804CD84: .4byte gUnknown_2024020 -_0804CD88: .4byte gUnknown_2024140 -_0804CD8C: - movs r0, #0 - movs r1, #2 - movs r2, #0 - bl BtlController_EmitLinkStandbyMsg - ldrb r0, [r4] - bl MarkBattlerForControllerExec - movs r0, #1 - mov sb, r0 -_0804CDA0: - ldr r6, _0804CDF8 - ldr r0, [r6, #8] - ands r0, r5 - cmp r0, #0 - beq _0804CE5E - ldr r0, [r6] - ands r0, r5 - cmp r0, #0 - bne _0804CE5E - ldr r4, _0804CDFC - movs r0, #2 - strb r0, [r4] - movs r0, #2 - movs r1, #6 - movs r2, #6 - bl HasNoMonsToSwitch - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0804CE08 - ldr r2, _0804CE00 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r2, _0804CE04 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r1, [r0] - lsls r1, r1, #0x1c - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - movs r0, #0 - bl sub_0803410C - ldrb r0, [r4] - bl MarkBattlerForControllerExec - b _0804CE5E - .align 2, 0 -_0804CDF8: .4byte gUnknown_82FACB4 -_0804CDFC: .4byte gUnknown_2023D08 -_0804CE00: .4byte gUnknown_2023EB4 -_0804CE04: .4byte gUnknown_2023F24 -_0804CE08: - ldr r6, _0804CE3C - ldrb r0, [r4] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrb r0, [r1] - lsls r0, r0, #0x19 - cmp r0, #0 - blt _0804CE44 - ldr r0, _0804CE40 - ldr r0, [r0] - adds r0, #0x5c - ldrb r0, [r0] - bl sub_0804CB40 - ldrb r1, [r4] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r1, [r0] - movs r2, #0x40 - orrs r1, r2 - strb r1, [r0] - b _0804CE5E - .align 2, 0 -_0804CE3C: .4byte gUnknown_2024020 -_0804CE40: .4byte gUnknown_2024140 -_0804CE44: - movs r0, #1 - mov r1, sb - ands r0, r1 - cmp r0, #0 - bne _0804CE5E - movs r0, #0 - movs r1, #2 - movs r2, #0 - bl BtlController_EmitLinkStandbyMsg - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_0804CE5E: - ldr r6, _0804CEB0 - ldr r0, [r6, #4] - ands r0, r5 - cmp r0, #0 - beq _0804CF14 - ldr r4, _0804CEB4 - movs r0, #1 - strb r0, [r4] - movs r0, #1 - movs r1, #6 - movs r2, #6 - bl HasNoMonsToSwitch - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0804CEC0 - ldr r2, _0804CEB8 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r2, _0804CEBC - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r1, [r0] - lsls r1, r1, #0x1c - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - movs r0, #0 - bl sub_0803410C - ldrb r0, [r4] - bl MarkBattlerForControllerExec - b _0804CF14 - .align 2, 0 -_0804CEB0: .4byte gUnknown_82FACB4 -_0804CEB4: .4byte gUnknown_2023D08 -_0804CEB8: .4byte gUnknown_2023EB4 -_0804CEBC: .4byte gUnknown_2023F24 -_0804CEC0: - ldr r6, _0804CEF4 - ldrb r0, [r4] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrb r0, [r1] - lsls r0, r0, #0x19 - cmp r0, #0 - blt _0804CEFC - ldr r0, _0804CEF8 - ldr r0, [r0] - adds r0, #0x5f - ldrb r0, [r0] - bl sub_0804CB40 - ldrb r1, [r4] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r1, [r0] - movs r2, #0x40 - orrs r1, r2 - strb r1, [r0] - b _0804CF14 - .align 2, 0 -_0804CEF4: .4byte gUnknown_2024020 -_0804CEF8: .4byte gUnknown_2024140 -_0804CEFC: - movs r0, #0 - movs r1, #2 - movs r2, #0 - bl BtlController_EmitLinkStandbyMsg - ldrb r0, [r4] - bl MarkBattlerForControllerExec - movs r0, #2 - mov r2, sb - orrs r2, r0 - mov sb, r2 -_0804CF14: - ldr r6, _0804CF6C - ldr r0, [r6, #0xc] - ands r0, r5 - cmp r0, #0 - beq _0804CFD2 - ldr r0, [r6, #4] - ands r0, r5 - cmp r0, #0 - bne _0804CFD2 - ldr r4, _0804CF70 - movs r0, #3 - strb r0, [r4] - movs r0, #3 - movs r1, #6 - movs r2, #6 - bl HasNoMonsToSwitch - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0804CF7C - ldr r2, _0804CF74 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r2, _0804CF78 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r1, [r0] - lsls r1, r1, #0x1c - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - movs r0, #0 - bl sub_0803410C - ldrb r0, [r4] - bl MarkBattlerForControllerExec - b _0804CFD2 - .align 2, 0 -_0804CF6C: .4byte gUnknown_82FACB4 -_0804CF70: .4byte gUnknown_2023D08 -_0804CF74: .4byte gUnknown_2023EB4 -_0804CF78: .4byte gUnknown_2023F24 -_0804CF7C: - ldr r6, _0804CFB0 - ldrb r0, [r4] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrb r0, [r1] - lsls r0, r0, #0x19 - cmp r0, #0 - blt _0804CFB8 - ldr r0, _0804CFB4 - ldr r0, [r0] - adds r0, #0x5d - ldrb r0, [r0] - bl sub_0804CB40 - ldrb r1, [r4] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r1, [r0] - movs r2, #0x40 - orrs r1, r2 - strb r1, [r0] - b _0804CFD2 - .align 2, 0 -_0804CFB0: .4byte gUnknown_2024020 -_0804CFB4: .4byte gUnknown_2024140 -_0804CFB8: - movs r0, #2 - mov r1, sb - ands r1, r0 - cmp r1, #0 - bne _0804CFD2 - movs r0, #0 - movs r1, #2 - movs r2, #0 - bl BtlController_EmitLinkStandbyMsg - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_0804CFD2: - ldr r1, _0804D004 - ldrb r0, [r1] - lsls r0, r0, #0x19 - cmp r0, #0 - blt _0804D02A - adds r0, r1, #0 - adds r0, #0x28 - ldrb r0, [r0] - lsls r0, r0, #0x19 - cmp r0, #0 - blt _0804D02A - cmp r5, #0 - beq _0804D02A - ldr r0, _0804D008 - ldrb r1, [r0] - ldr r0, _0804D00C - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _0804D014 - ldr r1, _0804D010 - movs r0, #2 - strb r0, [r1] - b _0804D018 - .align 2, 0 -_0804D004: .4byte gUnknown_2024020 -_0804D008: .4byte gUnknown_2023EB4 -_0804D00C: .4byte gUnknown_82FACB4 -_0804D010: .4byte gUnknown_2023D08 -_0804D014: - ldr r0, _0804D058 - strb r1, [r0] -_0804D018: - movs r0, #0 - movs r1, #2 - movs r2, #0 - bl BtlController_EmitLinkStandbyMsg - ldr r0, _0804D058 - ldrb r0, [r0] - bl MarkBattlerForControllerExec -_0804D02A: - ldr r1, _0804D05C - ldrb r0, [r1, #0x14] - lsls r0, r0, #0x19 - cmp r0, #0 - blt _0804D080 - adds r0, r1, #0 - adds r0, #0x3c - ldrb r0, [r0] - lsls r0, r0, #0x19 - cmp r0, #0 - blt _0804D080 - cmp r5, #0 - beq _0804D080 - ldr r0, _0804D060 - ldrb r0, [r0] - ldr r1, _0804D064 - ldr r1, [r1, #4] - ands r0, r1 - cmp r0, #0 - beq _0804D068 - ldr r1, _0804D058 - movs r0, #3 - b _0804D06C - .align 2, 0 -_0804D058: .4byte gUnknown_2023D08 -_0804D05C: .4byte gUnknown_2024020 -_0804D060: .4byte gUnknown_2023EB4 -_0804D064: .4byte gUnknown_82FACB4 -_0804D068: - ldr r1, _0804D08C - movs r0, #1 -_0804D06C: - strb r0, [r1] - movs r0, #0 - movs r1, #2 - movs r2, #0 - bl BtlController_EmitLinkStandbyMsg - ldr r0, _0804D08C - ldrb r0, [r0] - bl MarkBattlerForControllerExec -_0804D080: - ldr r1, _0804D090 - ldr r0, [r1] - adds r0, #6 - str r0, [r1] - b _0804D434 - .align 2, 0 -_0804D08C: .4byte gUnknown_2023D08 -_0804D090: .4byte gUnknown_2023EB8 -_0804D094: - cmp r0, #6 - beq _0804D09A - b _0804D288 -_0804D09A: - ldr r0, _0804D110 - ldr r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0804D0A8 - b _0804D224 -_0804D0A8: - movs r0, #1 - ands r1, r0 - cmp r1, #0 - bne _0804D0B2 - b _0804D224 -_0804D0B2: - ldr r7, _0804D114 - ldr r0, [r7] - lsrs r5, r0, #0x1c - ldr r4, _0804D118 - ldr r0, [r4, #8] - ands r0, r5 - cmp r0, #0 - beq _0804D15A - ldr r0, [r4] - ands r0, r5 - cmp r0, #0 - beq _0804D15A - ldr r6, _0804D11C - movs r0, #2 - strb r0, [r6] - ldr r0, _0804D120 - ldrb r1, [r0, #1] - movs r0, #2 - movs r2, #6 - bl HasNoMonsToSwitch - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0804D128 - ldr r2, _0804D124 - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - lsls r1, r1, #0x1c - ldr r0, [r7] - bics r0, r1 - str r0, [r7] - movs r0, #0 - bl sub_0803410C - ldrb r0, [r6] - bl MarkBattlerForControllerExec - b _0804D15A - .align 2, 0 -_0804D110: .4byte gUnknown_2022C90 -_0804D114: .4byte gUnknown_2023F24 -_0804D118: .4byte gUnknown_82FACB4 -_0804D11C: .4byte gUnknown_2023D08 -_0804D120: .4byte gUnknown_2023508 -_0804D124: .4byte gUnknown_2023EB4 -_0804D128: - ldr r4, _0804D1B8 - ldrb r0, [r6] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r0, [r1] - lsls r0, r0, #0x19 - cmp r0, #0 - blt _0804D15A - ldr r0, _0804D1BC - ldr r0, [r0] - adds r0, #0x5c - ldrb r0, [r0] - bl sub_0804CB40 - ldrb r1, [r6] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r1, [r0] - movs r2, #0x40 - orrs r1, r2 - strb r1, [r0] -_0804D15A: - ldr r4, _0804D1C0 - ldr r0, [r4, #0xc] - ands r0, r5 - cmp r0, #0 - beq _0804D20A - ldr r0, [r4, #4] - ands r5, r0 - cmp r5, #0 - beq _0804D20A - ldr r5, _0804D1C4 - movs r0, #3 - strb r0, [r5] - ldr r0, _0804D1C8 - ldr r2, _0804D1CC - adds r0, r0, r2 - ldrb r1, [r0] - movs r0, #3 - movs r2, #6 - bl HasNoMonsToSwitch - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0804D1D8 - ldr r2, _0804D1D0 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r2, _0804D1D4 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - lsls r1, r1, #0x1c - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - movs r0, #0 - bl sub_0803410C - ldrb r0, [r5] - bl MarkBattlerForControllerExec - b _0804D20A - .align 2, 0 -_0804D1B8: .4byte gUnknown_2024020 -_0804D1BC: .4byte gUnknown_2024140 -_0804D1C0: .4byte gUnknown_82FACB4 -_0804D1C4: .4byte gUnknown_2023D08 -_0804D1C8: .4byte gUnknown_2023508 -_0804D1CC: .4byte 0x00000201 -_0804D1D0: .4byte gUnknown_2023EB4 -_0804D1D4: .4byte gUnknown_2023F24 -_0804D1D8: - ldr r4, _0804D218 - ldrb r0, [r5] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r0, [r1] - lsls r0, r0, #0x19 - cmp r0, #0 - blt _0804D20A - ldr r0, _0804D21C - ldr r0, [r0] - adds r0, #0x5d - ldrb r0, [r0] - bl sub_0804CB40 - ldrb r1, [r5] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r1, [r0] - movs r2, #0x40 - orrs r1, r2 - strb r1, [r0] -_0804D20A: - ldr r1, _0804D220 - ldr r0, [r1] - adds r0, #6 - str r0, [r1] - mov ip, r1 - b _0804D228 - .align 2, 0 -_0804D218: .4byte gUnknown_2024020 -_0804D21C: .4byte gUnknown_2024140 -_0804D220: .4byte gUnknown_2023EB8 -_0804D224: - adds r0, r2, #6 - str r0, [r6] -_0804D228: - ldr r0, _0804D278 - ldr r0, [r0] - lsrs r5, r0, #0x1c - ldr r1, _0804D27C - movs r0, #0 - strb r0, [r1] - ldr r4, _0804D280 - ldr r2, [r4] - ands r2, r5 - ldr r6, _0804D284 - cmp r2, #0 - bne _0804D264 - adds r7, r6, #0 - ldrb r0, [r6] - cmp r2, r0 - bhs _0804D264 - adds r3, r1, #0 -_0804D24A: - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - ldrb r2, [r3] - lsls r0, r2, #2 - adds r0, r0, r4 - ldr r0, [r0] - ands r0, r5 - cmp r0, #0 - bne _0804D264 - ldrb r0, [r7] - cmp r2, r0 - blo _0804D24A -_0804D264: - ldrb r0, [r1] - ldrb r6, [r6] - cmp r0, r6 - beq _0804D26E - b _0804D434 -_0804D26E: - mov r1, r8 - mov r2, ip - str r1, [r2] - b _0804D434 - .align 2, 0 -_0804D278: .4byte gUnknown_2023F24 -_0804D27C: .4byte gUnknown_2023EB1 -_0804D280: .4byte gUnknown_82FACB4 -_0804D284: .4byte gUnknown_2023D10 -_0804D288: - movs r0, #0x80 - ands r0, r1 - movs r5, #1 - cmp r0, #0 - beq _0804D294 - movs r5, #0 -_0804D294: - movs r0, #0x7f - ands r0, r1 - bl GetBattlerForBattleScript - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r1, _0804D2BC - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x19 - cmp r0, #0 - bge _0804D2C0 - ldr r0, [r6] - adds r0, #6 - str r0, [r6] - b _0804D434 - .align 2, 0 -_0804D2BC: .4byte gUnknown_2024020 -_0804D2C0: - adds r0, r7, #0 - movs r1, #6 - movs r2, #6 - bl HasNoMonsToSwitch - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0804D310 - ldr r2, _0804D300 - strb r7, [r2] - ldr r3, _0804D304 - ldr r4, _0804D308 - ldrb r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r0, [r0] - ldrb r1, [r3] - orrs r0, r1 - strb r0, [r3] - ldr r3, _0804D30C - ldrb r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - lsls r1, r1, #0x1c - ldr r0, [r3] - bics r0, r1 - str r0, [r3] - mov r0, r8 - str r0, [r6] - b _0804D434 - .align 2, 0 -_0804D300: .4byte gUnknown_2023D08 -_0804D304: .4byte gUnknown_2023EB4 -_0804D308: .4byte gUnknown_82FACB4 -_0804D30C: .4byte gUnknown_2023F24 -_0804D310: - ldr r4, _0804D3D8 - strb r7, [r4] - ldrb r0, [r4] - ldr r3, _0804D3DC - ldr r1, [r3] - adds r1, r0, r1 - adds r1, #0x58 - ldr r2, _0804D3E0 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r4] - ldr r1, [r3] - adds r0, r0, r1 - adds r0, #0x5c - movs r1, #6 - strb r1, [r0] - ldr r1, [r3] - adds r1, #0x93 - ldr r2, _0804D3E4 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r2, [r0] - ldrb r0, [r1] - bics r0, r2 - strb r0, [r1] - ldrb r1, [r4] - movs r0, #2 - eors r0, r1 - ldr r3, [r3] - adds r0, r0, r3 - adds r0, #0x5c - ldrb r2, [r0] - ldrb r1, [r4] - lsls r0, r1, #1 - adds r0, r0, r1 - adds r0, #0x60 - adds r3, r3, r0 - str r3, [sp] - movs r0, #0 - adds r1, r5, #0 - movs r3, #0 - bl BtlController_EmitChoosePokemon - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldr r0, [r6] - adds r0, #6 - str r0, [r6] - ldrb r0, [r4] - bl sub_080A630C - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0804D390 - ldr r1, _0804D3E8 - ldrb r0, [r1, #2] - cmp r0, #0xfe - bhi _0804D390 - adds r0, #1 - strb r0, [r1, #2] -_0804D390: - ldr r0, _0804D3EC - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0804D3F4 - ldr r1, _0804D3D8 - movs r0, #0 - strb r0, [r1] - ldr r0, _0804D3F0 - ldrb r0, [r0] - cmp r0, #0 - beq _0804D434 - adds r4, r1, #0 -_0804D3AC: - ldrb r0, [r4] - cmp r0, r7 - beq _0804D3C2 - movs r0, #0 - movs r1, #2 - movs r2, #0 - bl BtlController_EmitLinkStandbyMsg - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_0804D3C2: - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - ldr r1, _0804D3F0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1] - cmp r0, r1 - blo _0804D3AC - b _0804D434 - .align 2, 0 -_0804D3D8: .4byte gUnknown_2023D08 -_0804D3DC: .4byte gUnknown_2024140 -_0804D3E0: .4byte gUnknown_2023D12 -_0804D3E4: .4byte gUnknown_82FACB4 -_0804D3E8: .4byte gUnknown_3005A70 -_0804D3EC: .4byte gUnknown_2022C90 -_0804D3F0: .4byte gUnknown_2023D10 -_0804D3F4: - adds r0, r7, #0 - bl sub_080A630C - movs r1, #1 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - ldr r4, _0804D444 - strb r0, [r4] - ldr r0, _0804D448 - ldrb r1, [r0] - ldr r2, _0804D44C - ldrb r3, [r4] - lsls r0, r3, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _0804D424 - movs r0, #2 - eors r3, r0 - strb r3, [r4] -_0804D424: - movs r0, #0 - movs r1, #2 - movs r2, #0 - bl BtlController_EmitLinkStandbyMsg - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_0804D434: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0804D444: .4byte gUnknown_2023D08 -_0804D448: .4byte gUnknown_2023EB4 -_0804D44C: .4byte gUnknown_82FACB4 - thumb_func_end sub_0804CBB8 - - thumb_func_start atk51_switchhandleorder -atk51_switchhandleorder: @ 0x0804D450 - push {r4, r5, r6, r7, lr} - ldr r0, _0804D47C - ldr r0, [r0] - cmp r0, #0 - beq _0804D45C - b _0804D6BA -_0804D45C: - ldr r4, _0804D480 - ldr r0, [r4] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - ldr r5, _0804D484 - strb r0, [r5] - ldr r0, [r4] - ldrb r0, [r0, #2] - cmp r0, #1 - beq _0804D4FC - cmp r0, #1 - bgt _0804D488 - cmp r0, #0 - beq _0804D492 - b _0804D6B2 - .align 2, 0 -_0804D47C: .4byte gUnknown_2023D0C -_0804D480: .4byte gUnknown_2023EB8 -_0804D484: .4byte gUnknown_2023D08 -_0804D488: - cmp r0, #2 - beq _0804D518 - cmp r0, #3 - beq _0804D552 - b _0804D6B2 -_0804D492: - movs r6, #0 - ldr r0, _0804D4EC - ldrb r0, [r0] - cmp r6, r0 - blt _0804D49E - b _0804D6B2 -_0804D49E: - ldr r7, _0804D4F0 -_0804D4A0: - ldrb r0, [r7] - cmp r0, #0x22 - bne _0804D4DA - ldr r5, _0804D4F4 - ldr r0, [r5] - adds r0, r6, r0 - adds r0, #0x5c - ldrb r1, [r7, #1] - strb r1, [r0] - ldr r0, [r5] - adds r0, #0x93 - ldrb r1, [r0] - ldr r2, _0804D4F8 - lsls r0, r6, #2 - adds r0, r0, r2 - ldr r4, [r0] - ands r1, r4 - cmp r1, #0 - bne _0804D4DA - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r7, #1] - bl RecordedBattle_SetBattlerAction - ldr r1, [r5] - adds r1, #0x93 - ldrb r0, [r1] - orrs r4, r0 - strb r4, [r1] -_0804D4DA: - movs r0, #0x80 - lsls r0, r0, #2 - adds r7, r7, r0 - adds r6, #1 - ldr r0, _0804D4EC - ldrb r0, [r0] - cmp r6, r0 - blt _0804D4A0 - b _0804D6B2 - .align 2, 0 -_0804D4EC: .4byte gUnknown_2023D10 -_0804D4F0: .4byte gUnknown_2023508 -_0804D4F4: .4byte gUnknown_2024140 -_0804D4F8: .4byte gUnknown_82FACB4 -_0804D4FC: - ldr r0, _0804D514 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0804D50A - b _0804D6B2 -_0804D50A: - ldrb r0, [r5] - bl sub_0803B9E4 - b _0804D6B2 - .align 2, 0 -_0804D514: .4byte gUnknown_2022C90 -_0804D518: - ldr r4, _0804D62C - ldr r0, [r4] - adds r0, #0x93 - ldrb r1, [r0] - ldr r6, _0804D630 - ldrb r2, [r5] - lsls r0, r2, #2 - adds r0, r0, r6 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _0804D552 - ldr r0, _0804D634 - lsls r1, r2, #9 - adds r0, #1 - adds r1, r1, r0 - ldrb r1, [r1] - adds r0, r2, #0 - bl RecordedBattle_SetBattlerAction - ldr r2, [r4] - adds r2, #0x93 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] -_0804D552: - ldr r1, _0804D638 - ldr r6, _0804D634 - ldr r7, _0804D63C - ldrb r0, [r7] - lsls r0, r0, #9 - adds r2, r6, #1 - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - ldr r1, _0804D62C - mov ip, r1 - ldr r1, [r1] - adds r1, r0, r1 - adds r1, #0x5c - lsls r0, r0, #9 - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _0804D640 - ldr r1, [r0] - movs r0, #0x42 - ands r0, r1 - cmp r0, #0x42 - bne _0804D644 - ldrb r0, [r7] - mov r3, ip - ldr r2, [r3] - lsls r1, r0, #1 - adds r1, r1, r0 - adds r1, r1, r2 - adds r1, #0x60 - ldrb r2, [r1] - movs r0, #0xf - ands r0, r2 - strb r0, [r1] - ldrb r0, [r7] - ldr r2, [r3] - lsls r1, r0, #1 - adds r1, r1, r0 - adds r1, r1, r2 - adds r1, #0x60 - lsls r0, r0, #9 - adds r5, r6, #2 - adds r0, r0, r5 - ldrb r2, [r0] - movs r3, #0xf0 - adds r0, r3, #0 - ands r0, r2 - ldrb r2, [r1] - orrs r0, r2 - strb r0, [r1] - ldrb r1, [r7] - mov r0, ip - ldr r2, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - adds r0, r0, r2 - adds r0, #0x61 - lsls r1, r1, #9 - adds r6, #3 - adds r1, r1, r6 - ldrb r1, [r1] - strb r1, [r0] - ldrb r0, [r7] - movs r4, #2 - eors r0, r4 - mov r1, ip - ldr r2, [r1] - lsls r1, r0, #1 - adds r1, r1, r0 - adds r1, r1, r2 - adds r1, #0x60 - ldrb r2, [r1] - adds r0, r3, #0 - ands r0, r2 - strb r0, [r1] - ldrb r0, [r7] - eors r0, r4 - mov r1, ip - ldr r2, [r1] - lsls r1, r0, #1 - adds r1, r1, r0 - adds r1, r1, r2 - adds r1, #0x60 - ldrb r0, [r7] - lsls r0, r0, #9 - adds r0, r0, r5 - ldrb r0, [r0] - ands r3, r0 - lsrs r3, r3, #4 - ldrb r0, [r1] - orrs r3, r0 - strb r3, [r1] - ldrb r0, [r7] - eors r4, r0 - mov r2, ip - ldr r0, [r2] - lsls r1, r4, #1 - adds r1, r1, r4 - adds r1, r1, r0 - adds r1, #0x62 - ldrb r0, [r7] - lsls r0, r0, #9 - adds r0, r0, r6 - ldrb r0, [r0] - strb r0, [r1] - b _0804D666 - .align 2, 0 -_0804D62C: .4byte gUnknown_2024140 -_0804D630: .4byte gUnknown_82FACB4 -_0804D634: .4byte gUnknown_2023508 -_0804D638: .4byte gUnknown_2023FD6 -_0804D63C: .4byte gUnknown_2023D08 -_0804D640: .4byte gUnknown_2022C90 -_0804D644: - movs r0, #0x80 - lsls r0, r0, #0xf - ands r1, r0 - cmp r1, #0 - beq _0804D660 - ldrb r0, [r7] - mov r3, ip - ldr r1, [r3] - adds r1, r0, r1 - adds r1, #0x5c - ldrb r1, [r1] - bl sub_08056DEC - b _0804D666 -_0804D660: - ldrb r0, [r7] - bl sub_0803B9E4 -_0804D666: - ldr r1, _0804D6C0 - movs r5, #0xfd - strb r5, [r1] - movs r0, #6 - strb r0, [r1, #1] - ldr r4, _0804D6C4 - ldr r3, _0804D6C8 - ldrb r0, [r3] - movs r2, #0x58 - muls r0, r2, r0 - adds r0, r0, r4 - ldrh r0, [r0] - strb r0, [r1, #2] - ldrb r0, [r3] - muls r0, r2, r0 - adds r0, r0, r4 - ldrh r0, [r0] - lsrs r0, r0, #8 - strb r0, [r1, #3] - movs r0, #0xff - strb r0, [r1, #4] - ldr r2, _0804D6CC - strb r5, [r2] - movs r0, #7 - strb r0, [r2, #1] - ldr r3, _0804D6D0 - ldrb r0, [r3] - strb r0, [r2, #2] - ldr r1, _0804D6D4 - ldrb r0, [r3] - lsls r0, r0, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r2, #3] - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r2, #4] -_0804D6B2: - ldr r1, _0804D6D8 - ldr r0, [r1] - adds r0, #3 - str r0, [r1] -_0804D6BA: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0804D6C0: .4byte gUnknown_2022C0C -_0804D6C4: .4byte gUnknown_2023D28 -_0804D6C8: .4byte gUnknown_2023EAF -_0804D6CC: .4byte gUnknown_2022C1C -_0804D6D0: .4byte gUnknown_2023D08 -_0804D6D4: .4byte gUnknown_2023508 -_0804D6D8: .4byte gUnknown_2023EB8 - thumb_func_end atk51_switchhandleorder - - thumb_func_start atk52_switchineffects -atk52_switchineffects: @ 0x0804D6DC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - ldr r0, _0804D814 - mov sb, r0 - ldr r0, [r0] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - ldr r4, _0804D818 - strb r0, [r4] - ldrb r0, [r4] - bl sub_0803F6B0 - ldr r1, _0804D81C - mov r8, r1 - ldr r1, _0804D820 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - lsls r1, r1, #0x1c - mov r2, r8 - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - ldr r2, _0804D824 - ldrb r0, [r4] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r2, [r1] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldrb r0, [r4] - bl GetBattlerSide - ldr r5, _0804D828 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r5 - ldrh r1, [r0] - movs r7, #0x80 - lsls r7, r7, #2 - mov sl, r7 - mov r0, sl - ands r0, r1 - cmp r0, #0 - beq _0804D74C - b _0804D860 -_0804D74C: - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r5 - ldrh r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _0804D764 - b _0804D860 -_0804D764: - ldr r7, _0804D82C - ldrb r2, [r4] - movs r6, #0x58 - adds r0, r2, #0 - muls r0, r6, r0 - adds r1, r0, r7 - adds r0, r1, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #2 - beq _0804D860 - adds r0, r1, #0 - adds r0, #0x22 - ldrb r0, [r0] - cmp r0, #2 - beq _0804D860 - adds r0, r1, #0 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x1a - beq _0804D860 - adds r0, r2, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r5 - ldrh r2, [r0] - mov r1, sl - orrs r1, r2 - strh r1, [r0] - ldrb r0, [r4] - adds r2, r0, #0 - muls r2, r6, r2 - adds r0, r7, #0 - adds r0, #0x50 - adds r2, r2, r0 - ldr r0, [r2] - ldr r1, _0804D830 - ands r0, r1 - str r0, [r2] - mov r1, r8 - ldr r0, [r1] - movs r2, #0x41 - rsbs r2, r2, #0 - ands r0, r2 - str r0, [r1] - ldrb r0, [r4] - bl GetBattlerSide - ldr r2, _0804D834 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r0, [r1, #0xa] - movs r1, #5 - subs r1, r1, r0 - lsls r1, r1, #0x19 - lsrs r1, r1, #0x18 - ldr r5, _0804D838 - ldrb r0, [r4] - muls r0, r6, r0 - adds r0, r0, r7 - ldrh r0, [r0, #0x2c] - bl __divsi3 - str r0, [r5] - cmp r0, #0 - bne _0804D7F8 - movs r0, #1 - str r0, [r5] -_0804D7F8: - ldr r0, _0804D83C - ldrb r1, [r4] - strb r1, [r0, #0x17] - bl BattleScriptPushCursor - mov r7, sb - ldr r0, [r7] - ldrb r0, [r0, #1] - cmp r0, #0 - bne _0804D844 - ldr r0, _0804D840 - str r0, [r7] - b _0804D9BE - .align 2, 0 -_0804D814: .4byte gUnknown_2023EB8 -_0804D818: .4byte gUnknown_2023D08 -_0804D81C: .4byte gUnknown_2023F24 -_0804D820: .4byte gUnknown_82FACB4 -_0804D824: .4byte gUnknown_2024020 -_0804D828: .4byte gUnknown_2023F32 -_0804D82C: .4byte gUnknown_2023D28 -_0804D830: .4byte 0xFDFFFFFF -_0804D834: .4byte gUnknown_2023F38 -_0804D838: .4byte gUnknown_2023E94 -_0804D83C: .4byte gUnknown_2024118 -_0804D840: .4byte gUnknown_8289418 -_0804D844: - cmp r0, #1 - bne _0804D854 - ldr r0, _0804D850 - mov r1, sb - str r0, [r1] - b _0804D9BE - .align 2, 0 -_0804D850: .4byte gUnknown_82893E1 -_0804D854: - ldr r0, _0804D85C - mov r2, sb - str r0, [r2] - b _0804D9BE - .align 2, 0 -_0804D85C: .4byte gUnknown_828944F -_0804D860: - ldr r2, _0804D95C - ldr r1, _0804D960 - ldrb r3, [r1] - movs r0, #0x58 - muls r0, r3, r0 - adds r0, r0, r2 - adds r0, #0x20 - ldrb r0, [r0] - adds r5, r1, #0 - ldr r4, _0804D964 - cmp r0, #0x36 - bne _0804D88E - lsls r0, r3, #3 - subs r0, r0, r3 - lsls r0, r0, #2 - adds r2, r0, r4 - ldrb r1, [r2, #0x18] - lsls r0, r1, #0x1e - cmp r0, #0 - blt _0804D88E - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #0x18] -_0804D88E: - ldrb r0, [r5] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r2, [r1, #0x18] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #0x18] - ldrb r1, [r5] - movs r0, #0 - str r0, [sp] - movs r2, #0 - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0804D8B8 - b _0804D9BE -_0804D8B8: - ldrb r1, [r5] - movs r0, #0 - movs r2, #0 - bl ItemBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0804D9BE - ldrb r0, [r5] - bl GetBattlerSide - ldr r1, _0804D968 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r1 - ldrh r2, [r0] - ldr r1, _0804D96C - ands r1, r2 - strh r1, [r0] - movs r4, #0 - ldr r0, _0804D970 - ldrb r7, [r0] - cmp r4, r7 - bge _0804D908 - ldr r6, _0804D974 - adds r1, r5, #0 - ldr r5, _0804D978 - movs r3, #0xc - adds r2, r0, #0 -_0804D8F2: - adds r0, r4, r6 - ldrb r0, [r0] - ldrb r7, [r1] - cmp r0, r7 - bne _0804D900 - adds r0, r4, r5 - strb r3, [r0] -_0804D900: - adds r4, #1 - ldrb r0, [r2] - cmp r4, r0 - blt _0804D8F2 -_0804D908: - movs r4, #0 - ldr r0, _0804D970 - ldrb r0, [r0] - cmp r4, r0 - bge _0804D93C - ldr r6, _0804D97C - ldr r5, _0804D95C -_0804D916: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, #0xa8 - ldr r1, [r6] - adds r1, r1, r0 - movs r0, #0x58 - muls r0, r4, r0 - adds r0, r0, r5 - ldrh r0, [r0, #0x28] - strh r0, [r1] - adds r4, #1 - ldr r0, _0804D970 - ldrb r0, [r0] - cmp r4, r0 - blt _0804D916 -_0804D93C: - ldr r0, _0804D980 - ldr r1, [r0] - ldrb r1, [r1, #1] - adds r5, r0, #0 - cmp r1, #5 - bne _0804D9B8 - ldr r0, _0804D984 - ldr r0, [r0] - lsrs r4, r0, #0x1c - ldr r1, _0804D988 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r2, _0804D98C - b _0804D99E - .align 2, 0 -_0804D95C: .4byte gUnknown_2023D28 -_0804D960: .4byte gUnknown_2023D08 -_0804D964: .4byte gUnknown_2023F60 -_0804D968: .4byte gUnknown_2023F32 -_0804D96C: .4byte 0x0000FDFF -_0804D970: .4byte gUnknown_2023D10 -_0804D974: .4byte gUnknown_2023D22 -_0804D978: .4byte gUnknown_2023D1E -_0804D97C: .4byte gUnknown_2024140 -_0804D980: .4byte gUnknown_2023EB8 -_0804D984: .4byte gUnknown_2023F24 -_0804D988: .4byte gUnknown_2023EB1 -_0804D98C: .4byte gUnknown_82FACB4 -_0804D990: - ldr r0, _0804D9D0 - ldrb r3, [r1] - ldrb r0, [r0] - cmp r3, r0 - bhs _0804D9B8 - adds r0, r3, #1 - strb r0, [r1] -_0804D99E: - ldrb r0, [r1] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r3, [r0] - adds r0, r4, #0 - ands r0, r3 - cmp r0, #0 - beq _0804D990 - ldr r0, _0804D9D4 - ldrb r0, [r0] - ands r0, r3 - cmp r0, #0 - bne _0804D990 -_0804D9B8: - ldr r0, [r5] - adds r0, #2 - str r0, [r5] -_0804D9BE: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0804D9D0: .4byte gUnknown_2023D10 -_0804D9D4: .4byte gUnknown_2023EB4 - thumb_func_end atk52_switchineffects - - thumb_func_start sub_0804D9D8 -sub_0804D9D8: @ 0x0804D9D8 - push {r4, r5, lr} - ldr r5, _0804DA00 - ldr r0, [r5] - ldrb r0, [r0, #1] - bl GetBattlerAtPosition - ldr r4, _0804DA04 - strb r0, [r4] - movs r0, #0 - bl BtlController_EmitTrainerSlide - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldr r0, [r5] - adds r0, #2 - str r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0804DA00: .4byte gUnknown_2023EB8 -_0804DA04: .4byte gUnknown_2023D08 - thumb_func_end sub_0804D9D8 - - thumb_func_start atk54_playse -atk54_playse: @ 0x0804DA08 - push {r4, r5, lr} - ldr r5, _0804DA38 - ldr r0, _0804DA3C - ldrb r0, [r0] - strb r0, [r5] - ldr r4, _0804DA40 - ldr r0, [r4] - ldrb r1, [r0, #1] - ldrb r0, [r0, #2] - lsls r0, r0, #8 - orrs r1, r0 - movs r0, #0 - bl BtlController_EmitPlaySE - ldrb r0, [r5] - bl MarkBattlerForControllerExec - ldr r0, [r4] - adds r0, #3 - str r0, [r4] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0804DA38: .4byte gUnknown_2023D08 -_0804DA3C: .4byte gUnknown_2023EAF -_0804DA40: .4byte gUnknown_2023EB8 - thumb_func_end atk54_playse - - thumb_func_start atk55_fanfare -atk55_fanfare: @ 0x0804DA44 - push {r4, r5, lr} - ldr r5, _0804DA74 - ldr r0, _0804DA78 - ldrb r0, [r0] - strb r0, [r5] - ldr r4, _0804DA7C - ldr r0, [r4] - ldrb r1, [r0, #1] - ldrb r0, [r0, #2] - lsls r0, r0, #8 - orrs r1, r0 - movs r0, #0 - movs r2, #0 - bl BtlController_EmitPlayFanfareOrBGM - ldrb r0, [r5] - bl MarkBattlerForControllerExec - ldr r0, [r4] - adds r0, #3 - str r0, [r4] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0804DA74: .4byte gUnknown_2023D08 -_0804DA78: .4byte gUnknown_2023EAF -_0804DA7C: .4byte gUnknown_2023EB8 - thumb_func_end atk55_fanfare - - thumb_func_start atk56_playfaintcry -atk56_playfaintcry: @ 0x0804DA80 - push {r4, r5, lr} - ldr r5, _0804DAA8 - ldr r0, [r5] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - ldr r4, _0804DAAC - strb r0, [r4] - movs r0, #0 - bl BtlController_EmitFaintingCry - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldr r0, [r5] - adds r0, #2 - str r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0804DAA8: .4byte gUnknown_2023EB8 -_0804DAAC: .4byte gUnknown_2023D08 - thumb_func_end atk56_playfaintcry - - thumb_func_start sub_0804DAB0 -sub_0804DAB0: @ 0x0804DAB0 - push {r4, lr} - movs r0, #0 - bl GetBattlerAtPosition - ldr r4, _0804DADC - strb r0, [r4] - ldr r0, _0804DAE0 - ldrb r1, [r0] - movs r0, #0 - bl BtlController_EmitCmd55 - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldr r1, _0804DAE4 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804DADC: .4byte gUnknown_2023D08 -_0804DAE0: .4byte gUnknown_2023FDE -_0804DAE4: .4byte gUnknown_2023EB8 - thumb_func_end sub_0804DAB0 - - thumb_func_start atk58_returntoball -atk58_returntoball: @ 0x0804DAE8 - push {r4, r5, lr} - ldr r5, _0804DB14 - ldr r0, [r5] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - ldr r4, _0804DB18 - strb r0, [r4] - movs r0, #0 - movs r1, #1 - bl BtlController_EmitReturnMonToBall - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldr r0, [r5] - adds r0, #2 - str r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0804DB14: .4byte gUnknown_2023EB8 -_0804DB18: .4byte gUnknown_2023D08 - thumb_func_end atk58_returntoball - - thumb_func_start atk59_handlelearnnewmove -atk59_handlelearnnewmove: @ 0x0804DB1C - push {r4, r5, r6, r7, lr} - ldr r0, _0804DB90 - ldr r2, [r0] - ldrb r6, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r6, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r6, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r6, r0 - ldrb r4, [r2, #5] - ldrb r0, [r2, #6] - lsls r0, r0, #8 - orrs r4, r0 - ldrb r0, [r2, #7] - lsls r0, r0, #0x10 - orrs r4, r0 - ldrb r0, [r2, #8] - lsls r0, r0, #0x18 - orrs r4, r0 - ldr r0, _0804DB94 - ldr r0, [r0] - ldrb r1, [r0, #0x10] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0804DB98 - adds r0, r0, r1 - ldrb r1, [r2, #9] - bl MonTryLearningNewMove - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, _0804DB9C - cmp r5, r0 - bne _0804DB86 - adds r7, r5, #0 -_0804DB6A: - ldr r0, _0804DB94 - ldr r0, [r0] - ldrb r1, [r0, #0x10] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0804DB98 - adds r0, r0, r1 - movs r1, #0 - bl MonTryLearningNewMove - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, r7 - beq _0804DB6A -_0804DB86: - cmp r5, #0 - bne _0804DBA0 - ldr r0, _0804DB90 - str r4, [r0] - b _0804DC48 - .align 2, 0 -_0804DB90: .4byte gUnknown_2023EB8 -_0804DB94: .4byte gUnknown_2024140 -_0804DB98: .4byte gUnknown_2024190 -_0804DB9C: .4byte 0x0000FFFE -_0804DBA0: - ldr r0, _0804DBB0 - cmp r5, r0 - bne _0804DBB8 - ldr r1, _0804DBB4 - ldr r0, [r1] - adds r0, #0xa - str r0, [r1] - b _0804DC48 - .align 2, 0 -_0804DBB0: .4byte 0x0000FFFF -_0804DBB4: .4byte gUnknown_2023EB8 -_0804DBB8: - movs r0, #0 - bl GetBattlerAtPosition - ldr r1, _0804DC50 - strb r0, [r1] - ldr r2, _0804DC54 - ldrb r3, [r1] - lsls r0, r3, #1 - adds r0, r0, r2 - ldr r1, _0804DC58 - ldr r1, [r1] - ldrh r0, [r0] - ldrb r1, [r1, #0x10] - cmp r0, r1 - bne _0804DBF8 - ldr r4, _0804DC5C - movs r0, #0x58 - adds r2, r3, #0 - muls r2, r0, r2 - adds r0, r4, #0 - adds r0, #0x50 - adds r0, r2, r0 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xe - ands r0, r1 - cmp r0, #0 - bne _0804DBF8 - adds r0, r2, r4 - adds r1, r5, #0 - bl GiveMoveToBattleMon -_0804DBF8: - ldr r0, _0804DC60 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0804DC44 - movs r0, #2 - bl GetBattlerAtPosition - ldr r1, _0804DC50 - strb r0, [r1] - ldr r2, _0804DC54 - ldrb r3, [r1] - lsls r0, r3, #1 - adds r0, r0, r2 - ldr r1, _0804DC58 - ldr r1, [r1] - ldrh r0, [r0] - ldrb r1, [r1, #0x10] - cmp r0, r1 - bne _0804DC44 - ldr r4, _0804DC5C - movs r0, #0x58 - adds r2, r3, #0 - muls r2, r0, r2 - adds r0, r4, #0 - adds r0, #0x50 - adds r0, r2, r0 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xe - ands r0, r1 - cmp r0, #0 - bne _0804DC44 - adds r0, r2, r4 - adds r1, r5, #0 - bl GiveMoveToBattleMon -_0804DC44: - ldr r0, _0804DC64 - str r6, [r0] -_0804DC48: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0804DC50: .4byte gUnknown_2023D08 -_0804DC54: .4byte gUnknown_2023D12 -_0804DC58: .4byte gUnknown_2024140 -_0804DC5C: .4byte gUnknown_2023D28 -_0804DC60: .4byte gUnknown_2022C90 -_0804DC64: .4byte gUnknown_2023EB8 - thumb_func_end atk59_handlelearnnewmove - - thumb_func_start atk5A_yesnoboxlearnmove -atk5A_yesnoboxlearnmove: @ 0x0804DC68 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - ldr r0, _0804DC8C - movs r1, #0 - strb r1, [r0] - ldr r0, _0804DC90 - ldrb r1, [r0, #0x1f] - adds r2, r0, #0 - cmp r1, #6 - bls _0804DC82 - b _0804DFE8 -_0804DC82: - lsls r0, r1, #2 - ldr r1, _0804DC94 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0804DC8C: .4byte gUnknown_2023D08 -_0804DC90: .4byte gUnknown_2024118 -_0804DC94: .4byte _0804DC98 -_0804DC98: @ jump table - .4byte _0804DCB4 @ case 0 - .4byte _0804DCEC @ case 1 - .4byte _0804DD92 @ case 2 - .4byte _0804DDE8 @ case 3 - .4byte _0804DE14 @ case 4 - .4byte _0804DFBC @ case 5 - .4byte _0804DFDC @ case 6 -_0804DCB4: - movs r4, #0 - str r4, [sp] - movs r0, #0x18 - movs r1, #8 - movs r2, #0x1d - movs r3, #0xd - bl HandleBattleWindow - ldr r0, _0804DCE0 - movs r1, #0xc - bl sub_0814FA04 - ldr r1, _0804DCE4 - ldrb r0, [r1, #0x1f] - adds r0, #1 - strb r0, [r1, #0x1f] - ldr r0, _0804DCE8 - strb r4, [r0, #1] - movs r0, #0 - bl BattleCreateYesNoCursorAt - b _0804DFE8 - .align 2, 0 -_0804DCE0: .4byte gUnknown_85ABBC9 -_0804DCE4: .4byte gUnknown_2024118 -_0804DCE8: .4byte gUnknown_2023FD6 -_0804DCEC: - ldr r0, _0804DD78 - ldrh r1, [r0, #0x2e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0804DD14 - ldr r4, _0804DD7C - ldrb r0, [r4, #1] - cmp r0, #0 - beq _0804DD14 - movs r0, #5 - bl sub_080A306C - ldrb r0, [r4, #1] - bl BattleDestroyYesNoCursorAt - movs r0, #0 - strb r0, [r4, #1] - bl BattleCreateYesNoCursorAt -_0804DD14: - ldr r0, _0804DD78 - ldrh r1, [r0, #0x2e] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0804DD3C - ldr r4, _0804DD7C - ldrb r0, [r4, #1] - cmp r0, #0 - bne _0804DD3C - movs r0, #5 - bl sub_080A306C - ldrb r0, [r4, #1] - bl BattleDestroyYesNoCursorAt - movs r0, #1 - strb r0, [r4, #1] - bl BattleCreateYesNoCursorAt -_0804DD3C: - ldr r0, _0804DD78 - ldrh r1, [r0, #0x2e] - movs r5, #1 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _0804DD80 - movs r0, #5 - bl sub_080A306C - ldr r0, _0804DD7C - ldrb r4, [r0, #1] - cmp r4, #0 - bne _0804DE3A - str r5, [sp] - movs r0, #0x18 - movs r1, #8 - movs r2, #0x1d - movs r3, #0xd - bl HandleBattleWindow - movs r0, #1 - rsbs r0, r0, #0 - str r4, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - b _0804DDC2 - .align 2, 0 -_0804DD78: .4byte gUnknown_3002360 -_0804DD7C: .4byte gUnknown_2023FD6 -_0804DD80: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0804DD8A - b _0804DFE8 -_0804DD8A: - movs r0, #5 - bl sub_080A306C - b _0804DE3A -_0804DD92: - ldr r0, _0804DDCC - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0804DDA0 - b _0804DFE8 -_0804DDA0: - bl FreeAllWindowBuffers - ldr r0, _0804DDD0 - ldr r1, _0804DDD4 - ldr r1, [r1] - ldrb r1, [r1, #0x10] - ldr r2, _0804DDD8 - ldrb r2, [r2] - subs r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r3, _0804DDDC - ldr r4, _0804DDE0 - ldrh r4, [r4] - str r4, [sp] - bl ShowSelectMovePokemonSummaryScreen -_0804DDC2: - ldr r1, _0804DDE4 - ldrb r0, [r1, #0x1f] - adds r0, #1 - strb r0, [r1, #0x1f] - b _0804DFE8 - .align 2, 0 -_0804DDCC: .4byte gUnknown_2037C74 -_0804DDD0: .4byte gUnknown_2024190 -_0804DDD4: .4byte gUnknown_2024140 -_0804DDD8: .4byte gUnknown_202418D -_0804DDDC: .4byte ReshowBattleScreenAfterMenu -_0804DDE0: .4byte gUnknown_2024186 -_0804DDE4: .4byte gUnknown_2024118 -_0804DDE8: - ldr r0, _0804DE08 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0804DDF6 - b _0804DFE8 -_0804DDF6: - ldr r0, _0804DE0C - ldr r1, [r0, #4] - ldr r0, _0804DE10 - cmp r1, r0 - beq _0804DE02 - b _0804DFE8 -_0804DE02: - ldrb r0, [r2, #0x1f] - adds r0, #1 - b _0804DFE6 - .align 2, 0 -_0804DE08: .4byte gUnknown_2037C74 -_0804DE0C: .4byte gUnknown_3002360 -_0804DE10: .4byte BattleMainCB2 -_0804DE14: - ldr r0, _0804DE44 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0804DE22 - b _0804DFE8 -_0804DE22: - ldr r0, _0804DE48 - ldr r1, [r0, #4] - ldr r0, _0804DE4C - cmp r1, r0 - beq _0804DE2E - b _0804DFE8 -_0804DE2E: - bl sub_081C14C8 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #4 - bne _0804DE54 -_0804DE3A: - ldr r1, _0804DE50 - movs r0, #5 - strb r0, [r1, #0x1f] - b _0804DFE8 - .align 2, 0 -_0804DE44: .4byte gUnknown_2037C74 -_0804DE48: .4byte gUnknown_3002360 -_0804DE4C: .4byte BattleMainCB2 -_0804DE50: .4byte gUnknown_2024118 -_0804DE54: - ldr r6, _0804DE90 - ldr r0, [r6] - ldrb r0, [r0, #0x10] - movs r1, #0x64 - mov r8, r1 - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - ldr r7, _0804DE94 - adds r0, r0, r7 - adds r1, r5, #0 - adds r1, #0xd - bl GetMonData - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r4, #0 - bl IsHMMove2 - cmp r0, #0 - beq _0804DEA4 - ldr r0, _0804DE98 - ldr r1, _0804DE9C - ldrb r1, [r1] - bl PrepareStringBattle - ldr r1, _0804DEA0 - movs r0, #6 - strb r0, [r1, #0x1f] - b _0804DFE8 - .align 2, 0 -_0804DE90: .4byte gUnknown_2024140 -_0804DE94: .4byte gUnknown_2024190 -_0804DE98: .4byte 0x0000013F -_0804DE9C: .4byte gUnknown_2023D08 -_0804DEA0: .4byte gUnknown_2024118 -_0804DEA4: - ldr r3, _0804DF98 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - ldr r1, _0804DF9C - movs r0, #0xfd - strb r0, [r1] - movs r0, #2 - strb r0, [r1, #1] - strb r4, [r1, #2] - lsrs r0, r4, #8 - strb r0, [r1, #3] - movs r0, #0xff - strb r0, [r1, #4] - ldr r0, [r6] - ldrb r0, [r0, #0x10] - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - adds r0, r0, r7 - adds r1, r5, #0 - bl RemoveMonPPBonus - ldr r0, [r6] - ldrb r0, [r0, #0x10] - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - adds r0, r0, r7 - ldr r7, _0804DFA0 - ldrh r1, [r7] - adds r2, r5, #0 - bl SetMonMoveSlot - ldr r0, _0804DFA4 - ldr r1, [r6] - ldrh r0, [r0] - ldrb r1, [r1, #0x10] - cmp r0, r1 - bne _0804DF3A - ldr r4, _0804DFA8 - ldr r0, [r4, #0x50] - movs r1, #0x80 - lsls r1, r1, #0xe - ands r0, r1 - cmp r0, #0 - bne _0804DF3A - ldr r0, _0804DFAC - ldrb r1, [r0, #0x18] - lsrs r1, r1, #4 - ldr r2, _0804DFB0 - lsls r0, r5, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _0804DF3A - adds r0, r4, #0 - adds r1, r5, #0 - bl RemoveBattleMonPPBonus - ldrh r1, [r7] - adds r0, r4, #0 - adds r2, r5, #0 - bl SetBattleMonMoveSlot -_0804DF3A: - ldr r0, _0804DFB4 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0804DFE8 - ldr r2, _0804DFA4 - ldr r0, _0804DFB8 - ldr r1, [r0] - ldrh r0, [r2, #4] - ldrb r1, [r1, #0x10] - cmp r0, r1 - bne _0804DFE8 - ldr r4, _0804DFA8 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xe - ands r0, r1 - cmp r0, #0 - bne _0804DFE8 - ldr r0, _0804DFAC - adds r0, #0x50 - ldrb r1, [r0] - lsrs r1, r1, #4 - ldr r2, _0804DFB0 - lsls r0, r5, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _0804DFE8 - adds r4, #0xb0 - adds r0, r4, #0 - adds r1, r5, #0 - bl RemoveBattleMonPPBonus - ldr r0, _0804DFA0 - ldrh r1, [r0] - adds r0, r4, #0 - adds r2, r5, #0 - bl SetBattleMonMoveSlot - b _0804DFE8 - .align 2, 0 -_0804DF98: .4byte gUnknown_2023EB8 -_0804DF9C: .4byte gUnknown_2022C1C -_0804DFA0: .4byte gUnknown_2024186 -_0804DFA4: .4byte gUnknown_2023D12 -_0804DFA8: .4byte gUnknown_2023D28 -_0804DFAC: .4byte gUnknown_2023F60 -_0804DFB0: .4byte gUnknown_82FACB4 -_0804DFB4: .4byte gUnknown_2022C90 -_0804DFB8: .4byte gUnknown_2024140 -_0804DFBC: - movs r0, #1 - str r0, [sp] - movs r0, #0x18 - movs r1, #8 - movs r2, #0x1d - movs r3, #0xd - bl HandleBattleWindow - ldr r1, _0804DFD8 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] - b _0804DFE8 - .align 2, 0 -_0804DFD8: .4byte gUnknown_2023EB8 -_0804DFDC: - ldr r0, _0804DFF4 - ldr r0, [r0] - cmp r0, #0 - bne _0804DFE8 - movs r0, #2 -_0804DFE6: - strb r0, [r2, #0x1f] -_0804DFE8: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0804DFF4: .4byte gUnknown_2023D0C - thumb_func_end atk5A_yesnoboxlearnmove - - thumb_func_start RegionMap_GetMarineCaveCoords -RegionMap_GetMarineCaveCoords: @ 0x0804DFF8 - push {r4, r5, lr} - sub sp, #4 - ldr r5, _0804E00C - ldrb r4, [r5, #0x1f] - cmp r4, #0 - beq _0804E010 - cmp r4, #1 - beq _0804E040 - b _0804E12A - .align 2, 0 -_0804E00C: .4byte gUnknown_2024118 -_0804E010: - str r4, [sp] - movs r0, #0x18 - movs r1, #8 - movs r2, #0x1d - movs r3, #0xd - bl HandleBattleWindow - ldr r0, _0804E038 - movs r1, #0xc - bl sub_0814FA04 - ldrb r0, [r5, #0x1f] - adds r0, #1 - strb r0, [r5, #0x1f] - ldr r0, _0804E03C - strb r4, [r0, #1] - movs r0, #0 - bl BattleCreateYesNoCursorAt - b _0804E12A - .align 2, 0 -_0804E038: .4byte gUnknown_85ABBC9 -_0804E03C: .4byte gUnknown_2023FD6 -_0804E040: - ldr r0, _0804E0C8 - ldrh r1, [r0, #0x2e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0804E068 - ldr r4, _0804E0CC - ldrb r0, [r4, #1] - cmp r0, #0 - beq _0804E068 - movs r0, #5 - bl sub_080A306C - ldrb r0, [r4, #1] - bl BattleDestroyYesNoCursorAt - movs r0, #0 - strb r0, [r4, #1] - bl BattleCreateYesNoCursorAt -_0804E068: - ldr r0, _0804E0C8 - ldrh r1, [r0, #0x2e] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0804E090 - ldr r4, _0804E0CC - ldrb r0, [r4, #1] - cmp r0, #0 - bne _0804E090 - movs r0, #5 - bl sub_080A306C - ldrb r0, [r4, #1] - bl BattleDestroyYesNoCursorAt - movs r0, #1 - strb r0, [r4, #1] - bl BattleCreateYesNoCursorAt -_0804E090: - ldr r0, _0804E0C8 - ldrh r1, [r0, #0x2e] - movs r4, #1 - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - beq _0804E0F4 - movs r0, #5 - bl sub_080A306C - ldr r0, _0804E0CC - ldrb r0, [r0, #1] - cmp r0, #0 - beq _0804E0D4 - ldr r3, _0804E0D0 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _0804E0DC - .align 2, 0 -_0804E0C8: .4byte gUnknown_3002360 -_0804E0CC: .4byte gUnknown_2023FD6 -_0804E0D0: .4byte gUnknown_2023EB8 -_0804E0D4: - ldr r1, _0804E0F0 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] -_0804E0DC: - movs r0, #1 - str r0, [sp] - movs r0, #0x18 - movs r1, #8 - movs r2, #0x1d - movs r3, #0xd - bl HandleBattleWindow - b _0804E12A - .align 2, 0 -_0804E0F0: .4byte gUnknown_2023EB8 -_0804E0F4: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0804E12A - movs r0, #5 - bl sub_080A306C - ldr r3, _0804E134 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - str r4, [sp] - movs r0, #0x18 - movs r1, #8 - movs r2, #0x1d - movs r3, #0xd - bl HandleBattleWindow -_0804E12A: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0804E134: .4byte gUnknown_2023EB8 - thumb_func_end RegionMap_GetMarineCaveCoords - - thumb_func_start atk5C_hitanimation -atk5C_hitanimation: @ 0x0804E138 - push {r4, lr} - ldr r4, _0804E1A4 - ldr r0, [r4] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - ldr r2, _0804E1A8 - strb r0, [r2] - ldr r0, _0804E1AC - ldrb r1, [r0] - movs r0, #0x29 - ands r0, r1 - cmp r0, #0 - bne _0804E1BC - ldr r0, _0804E1B0 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0804E18A - ldr r1, _0804E1B4 - ldrb r2, [r2] - movs r0, #0x58 - muls r0, r2, r0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - beq _0804E18A - ldr r0, _0804E1B8 - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #0xa] - cmp r0, #0 - bne _0804E1BC -_0804E18A: - movs r0, #0 - bl BtlController_EmitHitAnimation - ldr r0, _0804E1A8 - ldrb r0, [r0] - bl MarkBattlerForControllerExec - ldr r1, _0804E1A4 - ldr r0, [r1] - adds r0, #2 - str r0, [r1] - b _0804E1C2 - .align 2, 0 -_0804E1A4: .4byte gUnknown_2023EB8 -_0804E1A8: .4byte gUnknown_2023D08 -_0804E1AC: .4byte gUnknown_2023F20 -_0804E1B0: .4byte gUnknown_2023F24 -_0804E1B4: .4byte gUnknown_2023D28 -_0804E1B8: .4byte gUnknown_2023F60 -_0804E1BC: - ldr r0, [r4] - adds r0, #2 - str r0, [r4] -_0804E1C2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end atk5C_hitanimation - - thumb_func_start RubyBattleTowerRecordToEmerald -RubyBattleTowerRecordToEmerald: @ 0x0804E1C8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - movs r6, #0 - movs r5, #0 - movs r0, #0x80 - lsls r0, r0, #3 - cmp r1, r0 - bne _0804E204 - ldr r0, _0804E1FC - ldr r0, [r0] - ldr r0, [r0] - adds r0, #0x94 - ldrb r2, [r0] - ldr r0, _0804E200 - ldr r0, [r0] - adds r0, #0x4a - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - muls r0, r2, r0 - b _0804E2E4 - .align 2, 0 -_0804E1FC: .4byte gUnknown_202414C -_0804E200: .4byte gUnknown_2024140 -_0804E204: - ldr r0, _0804E220 - lsls r1, r1, #5 - adds r3, r1, r0 - ldrb r2, [r3] - mov ip, r0 - adds r4, r1, #0 - cmp r2, #1 - beq _0804E252 - cmp r2, #1 - bgt _0804E224 - cmp r2, #0 - beq _0804E22E - b _0804E264 - .align 2, 0 -_0804E220: .4byte gUnknown_82E383C -_0804E224: - cmp r2, #2 - beq _0804E240 - cmp r2, #3 - beq _0804E252 - b _0804E264 -_0804E22E: - mov r0, ip - adds r0, #0x1c - adds r0, r4, r0 - ldr r1, [r0] - ldrb r0, [r3, #0x18] - lsls r0, r0, #3 - adds r0, r0, r1 - subs r0, #8 - b _0804E262 -_0804E240: - mov r0, ip - adds r0, #0x1c - adds r0, r4, r0 - ldr r1, [r0] - ldrb r0, [r3, #0x18] - lsls r0, r0, #3 - adds r0, r0, r1 - subs r0, #8 - b _0804E262 -_0804E252: - mov r0, ip - adds r0, #0x1c - adds r0, r4, r0 - ldr r1, [r0] - ldrb r0, [r3, #0x18] - lsls r0, r0, #4 - adds r0, r0, r1 - subs r0, #0x10 -_0804E262: - ldrb r5, [r0, #2] -_0804E264: - ldr r1, _0804E2C4 - lsls r0, r6, #2 - adds r3, r0, r1 - ldrb r2, [r3] - ldr r7, _0804E2C8 - mov sb, r1 - ldr r0, _0804E2CC - mov r8, r0 - cmp r2, #0xff - beq _0804E296 - mov r1, ip - adds r0, r4, r1 - ldrb r1, [r0, #1] - cmp r2, r1 - beq _0804E296 - adds r1, r0, #0 - adds r0, r3, #0 -_0804E286: - adds r0, #4 - adds r6, #1 - ldrb r2, [r0] - cmp r2, #0xff - beq _0804E296 - ldrb r3, [r1, #1] - cmp r2, r3 - bne _0804E286 -_0804E296: - mov r0, r8 - ldr r1, [r0] - movs r0, #0x80 - lsls r0, r0, #8 - ands r0, r1 - cmp r0, #0 - bne _0804E2D0 - movs r0, #1 - ands r1, r0 - cmp r1, #0 - beq _0804E2D0 - ldr r0, [r7] - adds r0, #0x4a - ldrb r0, [r0] - lsls r0, r0, #2 - adds r1, r5, #0 - muls r1, r0, r1 - lsls r0, r6, #2 - add r0, sb - ldrb r0, [r0, #1] - lsls r0, r0, #1 - b _0804E2E2 - .align 2, 0 -_0804E2C4: .4byte gUnknown_82EBCE4 -_0804E2C8: .4byte gUnknown_2024140 -_0804E2CC: .4byte gUnknown_2022C90 -_0804E2D0: - ldr r0, [r7] - adds r0, #0x4a - ldrb r0, [r0] - lsls r0, r0, #2 - adds r1, r5, #0 - muls r1, r0, r1 - lsls r0, r6, #2 - add r0, sb - ldrb r0, [r0, #1] -_0804E2E2: - muls r0, r1, r0 -_0804E2E4: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end RubyBattleTowerRecordToEmerald - - thumb_func_start atk5D_getmoneyreward -atk5D_getmoneyreward: @ 0x0804E2F0 - push {r4, lr} - ldr r0, _0804E364 - ldrh r0, [r0] - bl RubyBattleTowerRecordToEmerald - adds r4, r0, #0 - ldr r0, _0804E368 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - beq _0804E314 - ldr r0, _0804E36C - ldrh r0, [r0] - bl RubyBattleTowerRecordToEmerald - adds r4, r4, r0 -_0804E314: - ldr r0, _0804E370 - ldr r0, [r0] - movs r1, #0x92 - lsls r1, r1, #3 - adds r0, r0, r1 - adds r1, r4, #0 - bl AddMoney - ldr r1, _0804E374 - movs r0, #0xfd - strb r0, [r1] - movs r0, #1 - strb r0, [r1, #1] - movs r0, #4 - strb r0, [r1, #2] - movs r0, #5 - strb r0, [r1, #3] - strb r4, [r1, #4] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r4 - lsrs r0, r0, #8 - strb r0, [r1, #5] - movs r0, #0xff - lsls r0, r0, #0x10 - ands r0, r4 - lsrs r0, r0, #0x10 - strb r0, [r1, #6] - lsrs r0, r4, #0x18 - strb r0, [r1, #7] - movs r0, #0xff - strb r0, [r1, #8] - ldr r1, _0804E378 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804E364: .4byte gUnknown_203886A -_0804E368: .4byte gUnknown_2022C90 -_0804E36C: .4byte gUnknown_203886C -_0804E370: .4byte gUnknown_3005AEC -_0804E374: .4byte gUnknown_2022C0C -_0804E378: .4byte gUnknown_2023EB8 - thumb_func_end atk5D_getmoneyreward - - thumb_func_start atk5E -atk5E: @ 0x0804E37C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r4, _0804E3A0 - ldr r0, [r4] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - ldr r6, _0804E3A4 - strb r0, [r6] - ldr r5, _0804E3A8 - ldrb r0, [r5] - mov r8, r4 - cmp r0, #0 - beq _0804E3AC - cmp r0, #1 - beq _0804E3C4 - b _0804E418 - .align 2, 0 -_0804E3A0: .4byte gUnknown_2023EB8 -_0804E3A4: .4byte gUnknown_2023D08 -_0804E3A8: .4byte gUnknown_2023FD6 -_0804E3AC: - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl BtlController_EmitGetMonData - ldrb r0, [r6] - bl MarkBattlerForControllerExec - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - b _0804E418 -_0804E3C4: - ldr r0, _0804E424 - ldr r0, [r0] - cmp r0, #0 - bne _0804E418 - ldrb r0, [r6] - lsls r0, r0, #9 - ldr r1, _0804E428 - adds r0, r0, r1 - mov ip, r0 - movs r2, #0 - adds r4, r6, #0 - movs r5, #0x58 - ldr r6, _0804E42C - adds r7, r6, #0 - subs r7, #0x18 - mov r3, ip - adds r3, #0xc -_0804E3E6: - lsls r1, r2, #1 - ldrb r0, [r4] - muls r0, r5, r0 - adds r1, r1, r0 - adds r1, r1, r7 - ldrh r0, [r3] - strh r0, [r1] - ldrb r0, [r4] - adds r1, r0, #0 - muls r1, r5, r1 - adds r1, r2, r1 - adds r1, r1, r6 - mov r0, ip - adds r0, #0x24 - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r3, #2 - adds r2, #1 - cmp r2, #3 - ble _0804E3E6 - mov r1, r8 - ldr r0, [r1] - adds r0, #2 - str r0, [r1] -_0804E418: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0804E424: .4byte gUnknown_2023D0C -_0804E428: .4byte gUnknown_202350C -_0804E42C: .4byte gUnknown_2023D4C - thumb_func_end atk5E - - thumb_func_start atk5F_swapattackerwithtarget -atk5F_swapattackerwithtarget: @ 0x0804E430 - push {lr} - ldr r0, _0804E458 - ldr r2, _0804E45C - ldrb r3, [r2] - strb r3, [r0] - ldr r1, _0804E460 - ldrb r0, [r1] - strb r0, [r2] - strb r3, [r1] - ldr r2, _0804E464 - ldr r1, [r2] - movs r3, #0x80 - lsls r3, r3, #5 - adds r0, r1, #0 - ands r0, r3 - cmp r0, #0 - beq _0804E46C - ldr r0, _0804E468 - ands r1, r0 - b _0804E46E - .align 2, 0 -_0804E458: .4byte gUnknown_2023D08 -_0804E45C: .4byte gUnknown_2023EAF -_0804E460: .4byte gUnknown_2023EB0 -_0804E464: .4byte gUnknown_2023F24 -_0804E468: .4byte 0xFFFFEFFF -_0804E46C: - orrs r1, r3 -_0804E46E: - str r1, [r2] - ldr r1, _0804E47C - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0804E47C: .4byte gUnknown_2023EB8 - thumb_func_end atk5F_swapattackerwithtarget - - thumb_func_start atk60_incrementgamestat -atk60_incrementgamestat: @ 0x0804E480 - push {lr} - ldr r0, _0804E4A8 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0804E49A - ldr r0, _0804E4AC - ldr r0, [r0] - ldrb r0, [r0, #1] - bl IncrementGameStat -_0804E49A: - ldr r1, _0804E4AC - ldr r0, [r1] - adds r0, #2 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0804E4A8: .4byte gUnknown_2023EAF -_0804E4AC: .4byte gUnknown_2023EB8 - thumb_func_end atk60_incrementgamestat - - thumb_func_start atk61_drawpartystatussummary -atk61_drawpartystatussummary: @ 0x0804E4B0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x30 - ldr r0, _0804E514 - ldr r0, [r0] - cmp r0, #0 - bne _0804E564 - ldr r0, _0804E518 - ldr r0, [r0] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - ldr r1, _0804E51C - strb r0, [r1] - ldrb r0, [r1] - bl GetBattlerSide - lsls r0, r0, #0x18 - ldr r1, _0804E520 - mov r8, r1 - cmp r0, #0 - bne _0804E4E2 - ldr r0, _0804E524 - mov r8, r0 -_0804E4E2: - movs r7, #0 - add r6, sp, #4 - mov r5, sp -_0804E4E8: - movs r0, #0x64 - muls r0, r7, r0 - mov r1, r8 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - cmp r0, #0 - beq _0804E50C - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - movs r1, #0xce - lsls r1, r1, #1 - cmp r0, r1 - bne _0804E52C -_0804E50C: - ldr r0, _0804E528 - strh r0, [r5] - movs r0, #0 - b _0804E53E - .align 2, 0 -_0804E514: .4byte gUnknown_2023D0C -_0804E518: .4byte gUnknown_2023EB8 -_0804E51C: .4byte gUnknown_2023D08 -_0804E520: .4byte gUnknown_20243E8 -_0804E524: .4byte gUnknown_2024190 -_0804E528: .4byte 0x0000FFFF -_0804E52C: - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - strh r0, [r5] - adds r0, r4, #0 - movs r1, #0x37 - bl GetMonData -_0804E53E: - str r0, [r6] - adds r6, #8 - adds r5, #8 - adds r7, #1 - cmp r7, #5 - ble _0804E4E8 - movs r0, #0 - mov r1, sp - movs r2, #1 - bl BtlController_EmitDrawPartyStatusSummary - ldr r0, _0804E570 - ldrb r0, [r0] - bl MarkBattlerForControllerExec - ldr r1, _0804E574 - ldr r0, [r1] - adds r0, #2 - str r0, [r1] -_0804E564: - add sp, #0x30 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0804E570: .4byte gUnknown_2023D08 -_0804E574: .4byte gUnknown_2023EB8 - thumb_func_end atk61_drawpartystatussummary - - thumb_func_start atk62_hidepartystatussummary -atk62_hidepartystatussummary: @ 0x0804E578 - push {r4, r5, lr} - ldr r5, _0804E5A0 - ldr r0, [r5] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - ldr r4, _0804E5A4 - strb r0, [r4] - movs r0, #0 - bl BtlController_EmitHidePartyStatusSummary - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldr r0, [r5] - adds r0, #2 - str r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0804E5A0: .4byte gUnknown_2023EB8 -_0804E5A4: .4byte gUnknown_2023D08 - thumb_func_end atk62_hidepartystatussummary - - thumb_func_start atk63_jumptocalledmove -atk63_jumptocalledmove: @ 0x0804E5A8 - push {r4, lr} - ldr r0, _0804E5C0 - ldr r1, [r0] - ldrb r1, [r1, #1] - adds r4, r0, #0 - cmp r1, #0 - beq _0804E5CC - ldr r0, _0804E5C4 - ldr r1, _0804E5C8 - ldrh r1, [r1] - strh r1, [r0] - b _0804E5DA - .align 2, 0 -_0804E5C0: .4byte gUnknown_2023EB8 -_0804E5C4: .4byte gUnknown_2023E8E -_0804E5C8: .4byte gUnknown_2023E92 -_0804E5CC: - ldr r2, _0804E5F8 - ldr r1, _0804E5FC - ldr r0, _0804E600 - ldrh r0, [r0] - strh r0, [r1] - strh r0, [r2] - adds r0, r1, #0 -_0804E5DA: - ldr r3, _0804E604 - ldr r2, _0804E608 - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r3 - ldr r0, [r0] - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804E5F8: .4byte gUnknown_2023E90 -_0804E5FC: .4byte gUnknown_2023E8E -_0804E600: .4byte gUnknown_2023E92 -_0804E604: .4byte gUnknown_8286C30 -_0804E608: .4byte gUnknown_82ED220 - thumb_func_end atk63_jumptocalledmove - - thumb_func_start atk64_statusanimation -atk64_statusanimation: @ 0x0804E60C - push {r4, lr} - ldr r0, _0804E67C - ldr r0, [r0] - cmp r0, #0 - bne _0804E674 - ldr r0, _0804E680 - ldr r0, [r0] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - ldr r4, _0804E684 - strb r0, [r4] - ldr r1, _0804E688 - ldrb r2, [r4] - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _0804E68C - ands r0, r1 - cmp r0, #0 - bne _0804E66C - ldr r0, _0804E690 - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #0xa] - cmp r0, #0 - bne _0804E66C - ldr r0, _0804E694 - ldr r0, [r0] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0804E66C - ldr r1, _0804E698 - movs r0, #0x58 - muls r0, r2, r0 - adds r1, #0x4c - adds r0, r0, r1 - ldr r2, [r0] - movs r0, #0 - movs r1, #0 - bl BtlController_EmitStatusAnimation - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_0804E66C: - ldr r1, _0804E680 - ldr r0, [r1] - adds r0, #2 - str r0, [r1] -_0804E674: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804E67C: .4byte gUnknown_2023D0C -_0804E680: .4byte gUnknown_2023EB8 -_0804E684: .4byte gUnknown_2023D08 -_0804E688: .4byte gUnknown_2023F50 -_0804E68C: .4byte 0x000400C0 -_0804E690: .4byte gUnknown_2023F60 -_0804E694: .4byte gUnknown_2023F24 -_0804E698: .4byte gUnknown_2023D28 - thumb_func_end atk64_statusanimation - - thumb_func_start atk65_status2animation -atk65_status2animation: @ 0x0804E69C - push {r4, r5, lr} - ldr r0, _0804E724 - ldr r0, [r0] - cmp r0, #0 - bne _0804E71C - ldr r4, _0804E728 - ldr r0, [r4] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - ldr r5, _0804E72C - strb r0, [r5] - ldr r1, [r4] - ldrb r3, [r1, #2] - ldrb r0, [r1, #3] - lsls r0, r0, #8 - orrs r3, r0 - ldrb r0, [r1, #4] - lsls r0, r0, #0x10 - orrs r3, r0 - ldrb r0, [r1, #5] - lsls r0, r0, #0x18 - orrs r3, r0 - ldr r1, _0804E730 - ldrb r2, [r5] - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _0804E734 - ands r0, r1 - cmp r0, #0 - bne _0804E714 - ldr r0, _0804E738 - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #0xa] - cmp r0, #0 - bne _0804E714 - ldr r0, _0804E73C - ldr r0, [r0] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0804E714 - ldr r1, _0804E740 - movs r0, #0x58 - muls r0, r2, r0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r2, [r0] - ands r2, r3 - movs r0, #0 - movs r1, #1 - bl BtlController_EmitStatusAnimation - ldrb r0, [r5] - bl MarkBattlerForControllerExec -_0804E714: - ldr r1, _0804E728 - ldr r0, [r1] - adds r0, #6 - str r0, [r1] -_0804E71C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0804E724: .4byte gUnknown_2023D0C -_0804E728: .4byte gUnknown_2023EB8 -_0804E72C: .4byte gUnknown_2023D08 -_0804E730: .4byte gUnknown_2023F50 -_0804E734: .4byte 0x000400C0 -_0804E738: .4byte gUnknown_2023F60 -_0804E73C: .4byte gUnknown_2023F24 -_0804E740: .4byte gUnknown_2023D28 - thumb_func_end atk65_status2animation - - thumb_func_start atk66_chosenstatusanimation -atk66_chosenstatusanimation: @ 0x0804E744 - push {r4, r5, lr} - ldr r0, _0804E7BC - ldr r0, [r0] - cmp r0, #0 - bne _0804E7B6 - ldr r4, _0804E7C0 - ldr r0, [r4] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - ldr r5, _0804E7C4 - strb r0, [r5] - ldr r4, [r4] - ldrb r2, [r4, #3] - ldrb r0, [r4, #4] - lsls r0, r0, #8 - orrs r2, r0 - ldrb r0, [r4, #5] - lsls r0, r0, #0x10 - orrs r2, r0 - ldrb r0, [r4, #6] - lsls r0, r0, #0x18 - orrs r2, r0 - ldr r1, _0804E7C8 - ldrb r3, [r5] - lsls r0, r3, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _0804E7CC - ands r0, r1 - cmp r0, #0 - bne _0804E7AE - ldr r0, _0804E7D0 - lsls r1, r3, #3 - subs r1, r1, r3 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #0xa] - cmp r0, #0 - bne _0804E7AE - ldr r0, _0804E7D4 - ldr r0, [r0] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0804E7AE - ldrb r1, [r4, #2] - movs r0, #0 - bl BtlController_EmitStatusAnimation - ldrb r0, [r5] - bl MarkBattlerForControllerExec -_0804E7AE: - ldr r1, _0804E7C0 - ldr r0, [r1] - adds r0, #7 - str r0, [r1] -_0804E7B6: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0804E7BC: .4byte gUnknown_2023D0C -_0804E7C0: .4byte gUnknown_2023EB8 -_0804E7C4: .4byte gUnknown_2023D08 -_0804E7C8: .4byte gUnknown_2023F50 -_0804E7CC: .4byte 0x000400C0 -_0804E7D0: .4byte gUnknown_2023F60 -_0804E7D4: .4byte gUnknown_2023F24 - thumb_func_end atk66_chosenstatusanimation - - thumb_func_start atk67_yesnobox -atk67_yesnobox: @ 0x0804E7D8 - push {r4, r5, lr} - sub sp, #4 - ldr r5, _0804E7EC - ldrb r4, [r5] - cmp r4, #0 - beq _0804E7F0 - cmp r4, #1 - beq _0804E81C - b _0804E8AE - .align 2, 0 -_0804E7EC: .4byte gUnknown_2023FD6 -_0804E7F0: - str r4, [sp] - movs r0, #0x18 - movs r1, #8 - movs r2, #0x1d - movs r3, #0xd - bl HandleBattleWindow - ldr r0, _0804E818 - movs r1, #0xc - bl sub_0814FA04 - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - strb r4, [r5, #1] - movs r0, #0 - bl BattleCreateYesNoCursorAt - b _0804E8AE - .align 2, 0 -_0804E818: .4byte gUnknown_85ABBC9 -_0804E81C: - ldr r0, _0804E880 - ldrh r1, [r0, #0x2e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0804E842 - ldrb r0, [r5, #1] - cmp r0, #0 - beq _0804E842 - movs r0, #5 - bl sub_080A306C - ldrb r0, [r5, #1] - bl BattleDestroyYesNoCursorAt - movs r0, #0 - strb r0, [r5, #1] - bl BattleCreateYesNoCursorAt -_0804E842: - ldr r0, _0804E880 - ldrh r1, [r0, #0x2e] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0804E86A - ldr r4, _0804E884 - ldrb r0, [r4, #1] - cmp r0, #0 - bne _0804E86A - movs r0, #5 - bl sub_080A306C - ldrb r0, [r4, #1] - bl BattleDestroyYesNoCursorAt - movs r0, #1 - strb r0, [r4, #1] - bl BattleCreateYesNoCursorAt -_0804E86A: - ldr r0, _0804E880 - ldrh r1, [r0, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0804E888 - ldr r0, _0804E884 - movs r4, #1 - strb r4, [r0, #1] - b _0804E892 - .align 2, 0 -_0804E880: .4byte gUnknown_3002360 -_0804E884: .4byte gUnknown_2023FD6 -_0804E888: - movs r4, #1 - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - beq _0804E8AE -_0804E892: - movs r0, #5 - bl sub_080A306C - str r4, [sp] - movs r0, #0x18 - movs r1, #8 - movs r2, #0x1d - movs r3, #0xd - bl HandleBattleWindow - ldr r1, _0804E8B8 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] -_0804E8AE: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0804E8B8: .4byte gUnknown_2023EB8 - thumb_func_end atk67_yesnobox - - thumb_func_start atk68_cancelallactions -atk68_cancelallactions: @ 0x0804E8BC - push {r4, r5, lr} - movs r1, #0 - ldr r2, _0804E8E8 - ldr r5, _0804E8EC - ldrb r0, [r2] - cmp r1, r0 - bge _0804E8DA - ldr r4, _0804E8F0 - movs r3, #0xc -_0804E8CE: - adds r0, r1, r4 - strb r3, [r0] - adds r1, #1 - ldrb r0, [r2] - cmp r1, r0 - blt _0804E8CE -_0804E8DA: - ldr r0, [r5] - adds r0, #1 - str r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0804E8E8: .4byte gUnknown_2023D10 -_0804E8EC: .4byte gUnknown_2023EB8 -_0804E8F0: .4byte gUnknown_2023D1E - thumb_func_end atk68_cancelallactions - - thumb_func_start atk69_adjustsetdamage -atk69_adjustsetdamage: @ 0x0804E8F4 - push {r4, r5, r6, r7, lr} - ldr r7, _0804E91C - ldr r6, _0804E920 - ldrb r2, [r6] - movs r5, #0x58 - adds r0, r2, #0 - muls r0, r5, r0 - adds r1, r0, r7 - ldrh r0, [r1, #0x2e] - cmp r0, #0xaf - bne _0804E928 - ldr r1, _0804E924 - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r4, [r0, #7] - ldrb r6, [r0, #0x1a] - b _0804E942 - .align 2, 0 -_0804E91C: .4byte gUnknown_2023D28 -_0804E920: .4byte gUnknown_2023EB0 -_0804E924: .4byte gUnknown_20240A8 -_0804E928: - ldrh r0, [r1, #0x2e] - bl sub_080D6CF8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldrb r0, [r6] - muls r0, r5, r0 - adds r0, r0, r7 - ldrh r0, [r0, #0x2e] - bl sub_080D6D1C - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_0804E942: - ldr r1, _0804EA04 - ldr r5, _0804EA08 - ldrb r0, [r5] - strb r0, [r1] - cmp r4, #0x27 - bne _0804E980 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r6 - bhs _0804E980 - ldrb r0, [r5] - movs r1, #0x27 - bl RecordItemEffectBattle - ldr r2, _0804EA0C - ldrb r1, [r5] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0] -_0804E980: - ldr r2, _0804EA10 - ldr r3, _0804EA08 - ldrb r4, [r3] - movs r0, #0x58 - muls r0, r4, r0 - adds r1, r2, #0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r1, [r0] - movs r0, #0x80 - lsls r0, r0, #0x11 - ands r1, r0 - adds r5, r2, #0 - cmp r1, #0 - bne _0804EA50 - ldr r2, _0804EA14 - ldr r0, _0804EA18 - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #0x65 - beq _0804E9D2 - ldr r0, _0804EA1C - lsls r1, r4, #4 - adds r1, r1, r0 - ldrb r0, [r1] - lsls r0, r0, #0x1e - cmp r0, #0 - blt _0804E9D2 - ldr r0, _0804EA0C - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1] - lsrs r0, r0, #7 - cmp r0, #0 - beq _0804EA50 -_0804E9D2: - ldrb r0, [r3] - movs r4, #0x58 - muls r0, r4, r0 - adds r0, r0, r5 - ldrh r1, [r0, #0x28] - ldr r2, _0804EA20 - ldr r0, [r2] - cmp r1, r0 - bgt _0804EA50 - subs r0, r1, #1 - str r0, [r2] - ldr r1, _0804EA1C - ldrb r3, [r3] - lsls r0, r3, #4 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1e - cmp r0, #0 - bge _0804EA28 - ldr r0, _0804EA24 - ldrb r1, [r0] - movs r2, #0x40 - orrs r1, r2 - strb r1, [r0] - b _0804EA50 - .align 2, 0 -_0804EA04: .4byte gUnknown_2023EB3 -_0804EA08: .4byte gUnknown_2023EB0 -_0804EA0C: .4byte gUnknown_2024020 -_0804EA10: .4byte gUnknown_2023D28 -_0804EA14: .4byte gUnknown_82ED220 -_0804EA18: .4byte gUnknown_2023E8E -_0804EA1C: .4byte gUnknown_2023FE0 -_0804EA20: .4byte gUnknown_2023E94 -_0804EA24: .4byte gUnknown_2023F20 -_0804EA28: - ldr r0, _0804EA60 - lsls r1, r3, #2 - adds r1, r1, r3 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1] - lsrs r0, r0, #7 - cmp r0, #0 - beq _0804EA50 - ldr r2, _0804EA64 - ldrb r0, [r2] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, _0804EA68 - adds r0, r3, #0 - muls r0, r4, r0 - adds r0, r0, r5 - ldrh r0, [r0, #0x2e] - strh r0, [r1] -_0804EA50: - ldr r1, _0804EA6C - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0804EA60: .4byte gUnknown_2024020 -_0804EA64: .4byte gUnknown_2023F20 -_0804EA68: .4byte gUnknown_2023EAC -_0804EA6C: .4byte gUnknown_2023EB8 - thumb_func_end atk69_adjustsetdamage - - thumb_func_start atk6A_removeitem -atk6A_removeitem: @ 0x0804EA70 - push {r4, r5, r6, lr} - sub sp, #4 - ldr r6, _0804EAD0 - ldr r0, [r6] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - ldr r5, _0804EAD4 - strb r0, [r5] - ldr r1, _0804EAD8 - ldrb r4, [r5] - lsls r0, r4, #1 - adds r0, #0xb8 - ldr r1, [r1] - adds r1, r1, r0 - ldr r2, _0804EADC - movs r3, #0x58 - adds r0, r4, #0 - muls r0, r3, r0 - adds r0, r0, r2 - ldrh r0, [r0, #0x2e] - strh r0, [r1] - ldrb r0, [r5] - muls r0, r3, r0 - adds r0, r0, r2 - movs r1, #0 - strh r1, [r0, #0x2e] - ldrb r0, [r5] - muls r0, r3, r0 - adds r2, #0x2e - adds r0, r0, r2 - str r0, [sp] - movs r0, #0 - movs r1, #2 - movs r2, #0 - movs r3, #2 - bl BtlController_EmitSetMonData - ldrb r0, [r5] - bl MarkBattlerForControllerExec - ldr r0, [r6] - adds r0, #2 - str r0, [r6] - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0804EAD0: .4byte gUnknown_2023EB8 -_0804EAD4: .4byte gUnknown_2023D08 -_0804EAD8: .4byte gUnknown_2024140 -_0804EADC: .4byte gUnknown_2023D28 - thumb_func_end atk6A_removeitem - - thumb_func_start atk6B_atknameinbuff1 -atk6B_atknameinbuff1: @ 0x0804EAE0 - ldr r1, _0804EB0C - movs r0, #0xfd - strb r0, [r1] - movs r0, #7 - strb r0, [r1, #1] - ldr r2, _0804EB10 - ldrb r0, [r2] - strb r0, [r1, #2] - ldr r3, _0804EB14 - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r0, [r0] - strb r0, [r1, #3] - movs r0, #0xff - strb r0, [r1, #4] - ldr r1, _0804EB18 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - bx lr - .align 2, 0 -_0804EB0C: .4byte gUnknown_2022C0C -_0804EB10: .4byte gUnknown_2023EAF -_0804EB14: .4byte gUnknown_2023D12 -_0804EB18: .4byte gUnknown_2023EB8 - thumb_func_end atk6B_atknameinbuff1 - - thumb_func_start atk6C_drawlvlupbox -atk6C_drawlvlupbox: @ 0x0804EB1C - push {r4, lr} - sub sp, #4 - ldr r0, _0804EB38 - ldrb r1, [r0, #0x1e] - adds r4, r0, #0 - cmp r1, #0 - bne _0804EB40 - bl IsMonGettingExpSentOut - cmp r0, #0 - beq _0804EB3C - movs r0, #3 - b _0804EB3E - .align 2, 0 -_0804EB38: .4byte gUnknown_2024118 -_0804EB3C: - movs r0, #1 -_0804EB3E: - strb r0, [r4, #0x1e] -_0804EB40: - ldrb r0, [r4, #0x1e] - subs r0, #1 - cmp r0, #9 - bls _0804EB4A - b _0804ED0A -_0804EB4A: - lsls r0, r0, #2 - ldr r1, _0804EB54 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0804EB54: .4byte _0804EB58 -_0804EB58: @ jump table - .4byte _0804EB80 @ case 0 - .4byte _0804EBAC @ case 1 - .4byte _0804EBC4 @ case 2 - .4byte _0804EC18 @ case 3 - .4byte _0804EC2C @ case 4 - .4byte _0804EC44 @ case 5 - .4byte _0804EC2C @ case 6 - .4byte _0804EC64 @ case 7 - .4byte _0804EC94 @ case 8 - .4byte _0804ECD8 @ case 9 -_0804EB80: - ldr r1, _0804EBA4 - movs r0, #0x60 - strh r0, [r1] - movs r0, #2 - movs r1, #7 - movs r2, #0 - bl SetBgAttribute - movs r0, #2 - bl ShowBg - bl sub_0804ED94 - ldr r1, _0804EBA8 - movs r0, #2 - strb r0, [r1, #0x1e] - b _0804ED0A - .align 2, 0 -_0804EBA4: .4byte gUnknown_2022AD2 -_0804EBA8: .4byte gUnknown_2024118 -_0804EBAC: - bl sub_0804EDE4 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0804EBB8 - b _0804ED0A -_0804EBB8: - ldr r1, _0804EBC0 - movs r0, #3 - strb r0, [r1, #0x1e] - b _0804ED0A - .align 2, 0 -_0804EBC0: .4byte gUnknown_2024118 -_0804EBC4: - ldr r1, _0804EC0C - movs r0, #0 - strh r0, [r1] - ldr r1, _0804EC10 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r2, #0 - strh r0, [r1] - movs r0, #0 - movs r1, #7 - movs r2, #1 - bl SetBgAttribute - movs r0, #1 - movs r1, #7 - movs r2, #0 - bl SetBgAttribute - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #0x80 - str r0, [sp] - movs r0, #0x12 - movs r1, #7 - movs r2, #0x1d - movs r3, #0x13 - bl HandleBattleWindow - ldr r1, _0804EC14 - movs r0, #4 - strb r0, [r1, #0x1e] - b _0804ED0A - .align 2, 0 -_0804EC0C: .4byte gUnknown_2022ACC -_0804EC10: .4byte gUnknown_2022ACE -_0804EC14: .4byte gUnknown_2024118 -_0804EC18: - bl DrawLevelUpWindow1 - movs r0, #0xd - bl PutWindowTilemap - movs r0, #0xd - movs r1, #3 - bl CopyWindowToVram - b _0804EC82 -_0804EC2C: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0804ED0A - ldr r0, _0804EC40 - strh r1, [r0] - b _0804EC82 - .align 2, 0 -_0804EC40: .4byte gUnknown_2022ACE -_0804EC44: - ldr r0, _0804EC60 - ldrh r0, [r0, #0x2e] - cmp r0, #0 - beq _0804ED0A - movs r0, #5 - bl sub_080A306C - bl DrawLevelUpWindow2 - movs r0, #0xd - movs r1, #2 - bl CopyWindowToVram - b _0804EC82 - .align 2, 0 -_0804EC60: .4byte gUnknown_3002360 -_0804EC64: - ldr r0, _0804EC8C - ldrh r0, [r0, #0x2e] - cmp r0, #0 - beq _0804ED0A - movs r0, #5 - bl sub_080A306C - movs r0, #0x81 - str r0, [sp] - movs r0, #0x12 - movs r1, #7 - movs r2, #0x1d - movs r3, #0x13 - bl HandleBattleWindow -_0804EC82: - ldr r1, _0804EC90 - ldrb r0, [r1, #0x1e] - adds r0, #1 - strb r0, [r1, #0x1e] - b _0804ED0A - .align 2, 0 -_0804EC8C: .4byte gUnknown_3002360 -_0804EC90: .4byte gUnknown_2024118 -_0804EC94: - bl sub_0804EF50 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0804ED0A - movs r0, #0xe - bl ClearWindowTilemap - movs r0, #0xe - movs r1, #1 - bl CopyWindowToVram - movs r0, #0xd - bl ClearWindowTilemap - movs r0, #0xd - movs r1, #1 - bl CopyWindowToVram - movs r0, #2 - movs r1, #7 - movs r2, #2 - bl SetBgAttribute - movs r0, #2 - bl ShowBg - ldr r1, _0804ECD4 - movs r0, #0xa - strb r0, [r1, #0x1e] - b _0804ED0A - .align 2, 0 -_0804ECD4: .4byte gUnknown_2024118 -_0804ECD8: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0804ED0A - movs r0, #0 - movs r1, #7 - movs r2, #0 - bl SetBgAttribute - movs r0, #1 - movs r1, #7 - movs r2, #1 - bl SetBgAttribute - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - ldr r1, _0804ED14 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] -_0804ED0A: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804ED14: .4byte gUnknown_2023EB8 - thumb_func_end atk6C_drawlvlupbox - - thumb_func_start DrawLevelUpWindow1 -DrawLevelUpWindow1: @ 0x0804ED18 - push {lr} - sub sp, #0x14 - ldr r0, _0804ED50 - ldr r0, [r0] - ldrb r1, [r0, #0x10] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0804ED54 - adds r0, r0, r1 - add r1, sp, #8 - bl GetMonLevelUpWindowStats - ldr r0, _0804ED58 - ldr r0, [r0] - ldr r1, [r0, #0x10] - movs r0, #0xd - str r0, [sp] - movs r0, #0xf - str r0, [sp, #4] - movs r0, #0xd - add r2, sp, #8 - movs r3, #0xe - bl DrawLevelUpWindowPg1 - add sp, #0x14 - pop {r0} - bx r0 - .align 2, 0 -_0804ED50: .4byte gUnknown_2024140 -_0804ED54: .4byte gUnknown_2024190 -_0804ED58: .4byte gUnknown_202414C - thumb_func_end DrawLevelUpWindow1 - - thumb_func_start DrawLevelUpWindow2 -DrawLevelUpWindow2: @ 0x0804ED5C - push {lr} - sub sp, #0x10 - ldr r0, _0804ED8C - ldr r0, [r0] - ldrb r1, [r0, #0x10] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0804ED90 - adds r0, r0, r1 - add r1, sp, #4 - bl GetMonLevelUpWindowStats - movs r0, #0xf - str r0, [sp] - movs r0, #0xd - add r1, sp, #4 - movs r2, #0xe - movs r3, #0xd - bl DrawLevelUpWindowPg2 - add sp, #0x10 - pop {r0} - bx r0 - .align 2, 0 -_0804ED8C: .4byte gUnknown_2024140 -_0804ED90: .4byte gUnknown_2024190 - thumb_func_end DrawLevelUpWindow2 - - thumb_func_start sub_0804ED94 -sub_0804ED94: @ 0x0804ED94 - push {lr} - ldr r1, _0804EDD4 - movs r0, #0 - strh r0, [r1] - ldr r1, _0804EDD8 - movs r2, #0xd0 - lsls r2, r2, #1 - adds r0, r2, #0 - strh r0, [r1] - ldr r0, _0804EDDC - movs r1, #0x60 - movs r2, #0x20 - bl LoadPalette - ldr r1, _0804EDE0 - movs r0, #0xe - movs r2, #0 - movs r3, #0 - bl CopyToWindowPixelBuffer - movs r0, #0xe - bl PutWindowTilemap - movs r0, #0xe - movs r1, #3 - bl CopyWindowToVram - bl PutMonIconOnLvlUpBox - pop {r0} - bx r0 - .align 2, 0 -_0804EDD4: .4byte gUnknown_2022AD2 -_0804EDD8: .4byte gUnknown_2022AD0 -_0804EDDC: .4byte gUnknown_82ECC4C -_0804EDE0: .4byte gUnknown_82ECC6C - thumb_func_end sub_0804ED94 - - thumb_func_start sub_0804EDE4 -sub_0804EDE4: @ 0x0804EDE4 - push {r4, r5, lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0804EDF4 - movs r0, #1 - b _0804EE2E -_0804EDF4: - ldr r4, _0804EE04 - ldrh r1, [r4] - movs r5, #0x80 - lsls r5, r5, #2 - cmp r1, r5 - bne _0804EE08 - movs r0, #0 - b _0804EE2E - .align 2, 0 -_0804EE04: .4byte gUnknown_2022AD0 -_0804EE08: - movs r0, #0xd0 - lsls r0, r0, #1 - cmp r1, r0 - bne _0804EE14 - bl PutLevelAndGenderOnLvlUpBox -_0804EE14: - ldrh r0, [r4] - adds r0, #8 - strh r0, [r4] - lsls r0, r0, #0x10 - ldr r1, _0804EE34 - cmp r0, r1 - bls _0804EE24 - strh r5, [r4] -_0804EE24: - ldrh r1, [r4] - eors r1, r5 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f -_0804EE2E: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0804EE34: .4byte 0x01FF0000 - thumb_func_end sub_0804EDE4 - - thumb_func_start PutLevelAndGenderOnLvlUpBox -PutLevelAndGenderOnLvlUpBox: @ 0x0804EE38 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x10 - ldr r6, _0804EF00 - ldr r0, [r6] - ldrb r0, [r0, #0x10] - movs r5, #0x64 - muls r0, r5, r0 - ldr r4, _0804EF04 - adds r0, r0, r4 - movs r1, #0x38 - bl GetMonData - mov r8, r0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - ldr r0, [r6] - ldrb r0, [r0, #0x10] - muls r0, r5, r0 - adds r0, r0, r4 - bl GetMonGender - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, [r6] - ldrb r0, [r0, #0x10] - muls r0, r5, r0 - adds r0, r0, r4 - ldr r5, _0804EF08 - adds r1, r5, #0 - bl GetMonNickname - str r5, [sp] - mov r2, sp - movs r1, #0 - movs r0, #0xe - strb r0, [r2, #4] - mov r0, sp - strb r1, [r0, #5] - movs r4, #0x20 - strb r4, [r0, #6] - strb r1, [r0, #7] - strb r4, [r0, #8] - strb r1, [r0, #9] - strb r1, [r0, #0xa] - strb r1, [r0, #0xb] - mov r3, sp - ldrb r2, [r3, #0xc] - subs r1, #0x10 - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3, #0xc] - mov r2, sp - movs r0, #0x10 - strb r0, [r2, #0xc] - ldrb r0, [r2, #0xd] - ands r1, r0 - strb r1, [r2, #0xd] - mov r0, sp - strb r4, [r0, #0xd] - movs r1, #0xff - movs r2, #0 - bl AddTextPrinter - movs r0, #0xf9 - strb r0, [r5] - adds r5, #1 - movs r0, #5 - strb r0, [r5] - adds r5, #1 - adds r0, r5, #0 - mov r1, r8 - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - adds r5, r0, #0 - movs r1, #0 - movs r2, #1 - bl StringFill - adds r5, r0, #0 - cmp r7, #0xff - beq _0804EF2C - cmp r7, #0 - bne _0804EF0C - movs r1, #0 - movs r2, #0xc - bl WriteColorChangeControlCode - adds r5, r0, #0 - movs r1, #1 - movs r2, #0xd - bl WriteColorChangeControlCode - adds r5, r0, #0 - movs r0, #0xb5 - b _0804EF24 - .align 2, 0 -_0804EF00: .4byte gUnknown_2024140 -_0804EF04: .4byte gUnknown_2024190 -_0804EF08: .4byte gUnknown_2021C7C -_0804EF0C: - adds r0, r5, #0 - movs r1, #0 - movs r2, #0xe - bl WriteColorChangeControlCode - adds r5, r0, #0 - movs r1, #1 - movs r2, #0xf - bl WriteColorChangeControlCode - adds r5, r0, #0 - movs r0, #0xb6 -_0804EF24: - strb r0, [r5] - adds r5, #1 - movs r0, #0xff - strb r0, [r5] -_0804EF2C: - mov r0, sp - movs r1, #0xa - strb r1, [r0, #7] - strb r1, [r0, #9] - movs r1, #0xff - movs r2, #0 - bl AddTextPrinter - movs r0, #0xe - movs r1, #2 - bl CopyWindowToVram - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end PutLevelAndGenderOnLvlUpBox - - thumb_func_start sub_0804EF50 -sub_0804EF50: @ 0x0804EF50 - push {lr} - ldr r0, _0804EF64 - ldrh r1, [r0] - movs r3, #0xd0 - lsls r3, r3, #1 - adds r2, r0, #0 - cmp r1, r3 - bne _0804EF68 - movs r0, #0 - b _0804EF8C - .align 2, 0 -_0804EF64: .4byte gUnknown_2022AD0 -_0804EF68: - ldrh r0, [r2] - adds r1, r0, #0 - subs r1, #0x10 - ldr r0, _0804EF78 - cmp r1, r0 - bgt _0804EF7C - strh r3, [r2] - b _0804EF7E - .align 2, 0 -_0804EF78: .4byte 0x0000019F -_0804EF7C: - strh r1, [r2] -_0804EF7E: - ldrh r1, [r2] - movs r0, #0xd0 - lsls r0, r0, #1 - eors r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f -_0804EF8C: - pop {r1} - bx r1 - thumb_func_end sub_0804EF50 - - thumb_func_start PutMonIconOnLvlUpBox -PutMonIconOnLvlUpBox: @ 0x0804EF90 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0x10 - ldr r0, _0804F038 - mov r8, r0 - ldr r0, [r0] - ldrb r0, [r0, #0x10] - movs r6, #0x64 - muls r0, r6, r0 - ldr r5, _0804F03C - adds r0, r0, r5 - movs r1, #0xb - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - mov r1, r8 - ldr r0, [r1] - ldrb r0, [r0, #0x10] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #0 - bl GetMonData - adds r1, r0, #0 - adds r0, r4, #0 - movs r2, #1 - bl GetMonIconPtr - str r0, [sp] - ldr r5, _0804F040 - ldr r0, [sp, #4] - ands r0, r5 - movs r1, #0x80 - lsls r1, r1, #2 - orrs r0, r1 - ldr r1, _0804F044 - ands r0, r1 - ldr r1, _0804F048 - orrs r0, r1 - str r0, [sp, #4] - adds r0, r4, #0 - bl GetValidMonIconPalettePtr - str r0, [sp, #8] - add r4, sp, #8 - ldr r0, [r4, #4] - ands r0, r5 - ldr r1, _0804F04C - orrs r0, r1 - str r0, [r4, #4] - mov r0, sp - bl LoadSpriteSheet - adds r0, r4, #0 - bl LoadSpritePalette - ldr r0, _0804F050 - movs r1, #0x80 - lsls r1, r1, #1 - movs r2, #0xa - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0804F054 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #0 - strh r0, [r1, #0x2e] - ldr r0, _0804F058 - ldrh r0, [r0] - strh r0, [r1, #0x30] - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0804F038: .4byte gUnknown_2024140 -_0804F03C: .4byte gUnknown_2024190 -_0804F040: .4byte 0xFFFF0000 -_0804F044: .4byte 0x0000FFFF -_0804F048: .4byte 0xD75A0000 -_0804F04C: .4byte 0x0000D75A -_0804F050: .4byte gUnknown_82ECD44 -_0804F054: .4byte gUnknown_20205AC -_0804F058: .4byte gUnknown_2022AD0 - thumb_func_end PutMonIconOnLvlUpBox - - thumb_func_start SpriteCB_MonIconOnLvlUpBox -SpriteCB_MonIconOnLvlUpBox: @ 0x0804F05C - push {r4, lr} - adds r2, r0, #0 - ldr r0, _0804F078 - ldrh r1, [r2, #0x30] - ldrh r0, [r0] - subs r1, r1, r0 - strh r1, [r2, #0x24] - lsls r1, r1, #0x10 - cmp r1, #0 - beq _0804F07C - movs r0, #1 - strh r0, [r2, #0x2e] - b _0804F098 - .align 2, 0 -_0804F078: .4byte gUnknown_2022AD0 -_0804F07C: - movs r1, #0x2e - ldrsh r0, [r2, r1] - cmp r0, #0 - beq _0804F098 - adds r0, r2, #0 - bl DestroySprite - ldr r4, _0804F0A0 - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl FreeSpritePaletteByTag -_0804F098: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804F0A0: .4byte 0x0000D75A - thumb_func_end SpriteCB_MonIconOnLvlUpBox - - thumb_func_start IsMonGettingExpSentOut -IsMonGettingExpSentOut: @ 0x0804F0A4 - push {lr} - ldr r3, _0804F0CC - ldr r0, _0804F0D0 - ldr r0, [r0] - ldrh r1, [r3] - ldrb r2, [r0, #0x10] - cmp r1, r2 - beq _0804F0C6 - ldr r0, _0804F0D4 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0804F0D8 - ldrh r0, [r3, #4] - cmp r0, r2 - bne _0804F0D8 -_0804F0C6: - movs r0, #1 - b _0804F0DA - .align 2, 0 -_0804F0CC: .4byte gUnknown_2023D12 -_0804F0D0: .4byte gUnknown_2024140 -_0804F0D4: .4byte gUnknown_2022C90 -_0804F0D8: - movs r0, #0 -_0804F0DA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsMonGettingExpSentOut - - thumb_func_start atk6D_resetsentmonsvalue -atk6D_resetsentmonsvalue: @ 0x0804F0E0 - push {lr} - bl ResetSentPokesToOpponentValue - ldr r1, _0804F0F4 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0804F0F4: .4byte gUnknown_2023EB8 - thumb_func_end atk6D_resetsentmonsvalue - - thumb_func_start atk6E_setatktoplayer0 -atk6E_setatktoplayer0: @ 0x0804F0F8 - push {lr} - movs r0, #0 - bl GetBattlerAtPosition - ldr r1, _0804F110 - strb r0, [r1] - ldr r1, _0804F114 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0804F110: .4byte gUnknown_2023EAF -_0804F114: .4byte gUnknown_2023EB8 - thumb_func_end atk6E_setatktoplayer0 - - thumb_func_start atk6F_makevisible -atk6F_makevisible: @ 0x0804F118 - push {r4, r5, lr} - ldr r5, _0804F144 - ldr r0, [r5] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - ldr r4, _0804F148 - strb r0, [r4] - movs r0, #0 - movs r1, #0 - bl BtlController_EmitSpriteInvisibility - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldr r0, [r5] - adds r0, #2 - str r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0804F144: .4byte gUnknown_2023EB8 -_0804F148: .4byte gUnknown_2023D08 - thumb_func_end atk6F_makevisible - - thumb_func_start atk70_recordlastability -atk70_recordlastability: @ 0x0804F14C - push {r4, lr} - ldr r4, _0804F174 - ldr r0, [r4] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - ldr r1, _0804F178 - strb r0, [r1] - ldrb r0, [r1] - ldr r1, _0804F17C - ldrb r1, [r1] - bl RecordAbilityBattle - ldr r0, [r4] - adds r0, #1 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804F174: .4byte gUnknown_2023EB8 -_0804F178: .4byte gUnknown_2023D08 -_0804F17C: .4byte gUnknown_2023EAE - thumb_func_end atk70_recordlastability - - thumb_func_start BufferMoveToLearnIntoBattleTextBuff2 -BufferMoveToLearnIntoBattleTextBuff2: @ 0x0804F180 - ldr r2, _0804F1A0 - movs r0, #0xfd - strb r0, [r2] - movs r0, #2 - strb r0, [r2, #1] - ldr r0, _0804F1A4 - ldrh r1, [r0] - strb r1, [r2, #2] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - lsrs r0, r0, #8 - strb r0, [r2, #3] - movs r0, #0xff - strb r0, [r2, #4] - bx lr - .align 2, 0 -_0804F1A0: .4byte gUnknown_2022C1C -_0804F1A4: .4byte gUnknown_2024186 - thumb_func_end BufferMoveToLearnIntoBattleTextBuff2 - - thumb_func_start atk71_buffermovetolearn -atk71_buffermovetolearn: @ 0x0804F1A8 - push {lr} - bl BufferMoveToLearnIntoBattleTextBuff2 - ldr r1, _0804F1BC - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0804F1BC: .4byte gUnknown_2023EB8 - thumb_func_end atk71_buffermovetolearn - - thumb_func_start atk72_jumpifplayerran -atk72_jumpifplayerran: @ 0x0804F1C0 - push {lr} - ldr r0, _0804F1EC - ldrb r0, [r0] - bl TryRunFromBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0804F1F4 - ldr r3, _0804F1F0 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _0804F1FC - .align 2, 0 -_0804F1EC: .4byte gUnknown_2023EB1 -_0804F1F0: .4byte gUnknown_2023EB8 -_0804F1F4: - ldr r1, _0804F200 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] -_0804F1FC: - pop {r0} - bx r0 - .align 2, 0 -_0804F200: .4byte gUnknown_2023EB8 - thumb_func_end atk72_jumpifplayerran - - thumb_func_start atk73_hpthresholds -atk73_hpthresholds: @ 0x0804F204 - push {r4, r5, r6, lr} - ldr r0, _0804F254 - ldr r4, [r0] - movs r6, #1 - ands r4, r6 - cmp r4, #0 - bne _0804F29A - ldr r0, _0804F258 - ldr r0, [r0] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - ldr r1, _0804F25C - strb r0, [r1] - movs r1, #1 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0804F260 - movs r1, #0x58 - muls r1, r0, r1 - adds r1, r1, r2 - ldrh r5, [r1, #0x28] - movs r0, #0x64 - muls r0, r5, r0 - ldrh r1, [r1, #0x2c] - bl __divsi3 - cmp r0, #0 - bne _0804F242 - movs r0, #1 -_0804F242: - cmp r0, #0x45 - bgt _0804F24A - cmp r5, #0 - bne _0804F268 -_0804F24A: - ldr r0, _0804F264 - ldr r0, [r0] - adds r0, #0xb1 - strb r4, [r0] - b _0804F29A - .align 2, 0 -_0804F254: .4byte gUnknown_2022C90 -_0804F258: .4byte gUnknown_2023EB8 -_0804F25C: .4byte gUnknown_2023D08 -_0804F260: .4byte gUnknown_2023D28 -_0804F264: .4byte gUnknown_2024140 -_0804F268: - cmp r0, #0x27 - ble _0804F27C - ldr r0, _0804F278 - ldr r0, [r0] - adds r0, #0xb1 - strb r6, [r0] - b _0804F29A - .align 2, 0 -_0804F278: .4byte gUnknown_2024140 -_0804F27C: - cmp r0, #9 - ble _0804F290 - ldr r0, _0804F28C - ldr r0, [r0] - adds r0, #0xb1 - movs r1, #2 - b _0804F298 - .align 2, 0 -_0804F28C: .4byte gUnknown_2024140 -_0804F290: - ldr r0, _0804F2A8 - ldr r0, [r0] - adds r0, #0xb1 - movs r1, #3 -_0804F298: - strb r1, [r0] -_0804F29A: - ldr r1, _0804F2AC - ldr r0, [r1] - adds r0, #2 - str r0, [r1] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0804F2A8: .4byte gUnknown_2024140 -_0804F2AC: .4byte gUnknown_2023EB8 - thumb_func_end atk73_hpthresholds - - thumb_func_start atk74_hpthresholds2 -atk74_hpthresholds2: @ 0x0804F2B0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _0804F314 - ldr r7, [r0] - movs r0, #1 - mov r8, r0 - ands r7, r0 - cmp r7, #0 - bne _0804F34A - ldr r0, _0804F318 - ldr r0, [r0] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - adds r4, r0, #0 - ldr r0, _0804F31C - strb r4, [r0] - movs r0, #1 - eors r4, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - ldr r1, _0804F320 - ldr r6, [r1] - lsrs r0, r0, #0x17 - adds r0, r0, r6 - adds r0, #0xa8 - ldrb r5, [r0] - ldr r1, _0804F324 - movs r0, #0x58 - muls r0, r4, r0 - adds r0, r0, r1 - ldrh r4, [r0, #0x28] - subs r1, r5, r4 - movs r0, #0x64 - muls r0, r1, r0 - adds r1, r5, #0 - bl __divsi3 - adds r1, r0, #0 - cmp r4, r5 - blo _0804F328 - adds r0, r6, #0 - adds r0, #0xb1 - strb r7, [r0] - b _0804F34A - .align 2, 0 -_0804F314: .4byte gUnknown_2022C90 -_0804F318: .4byte gUnknown_2023EB8 -_0804F31C: .4byte gUnknown_2023D08 -_0804F320: .4byte gUnknown_2024140 -_0804F324: .4byte gUnknown_2023D28 -_0804F328: - cmp r0, #0x1d - bgt _0804F336 - adds r0, r6, #0 - adds r0, #0xb1 - mov r1, r8 - strb r1, [r0] - b _0804F34A -_0804F336: - cmp r1, #0x45 - bgt _0804F342 - adds r1, r6, #0 - adds r1, #0xb1 - movs r0, #2 - b _0804F348 -_0804F342: - adds r1, r6, #0 - adds r1, #0xb1 - movs r0, #3 -_0804F348: - strb r0, [r1] -_0804F34A: - ldr r1, _0804F35C - ldr r0, [r1] - adds r0, #2 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0804F35C: .4byte gUnknown_2023EB8 - thumb_func_end atk74_hpthresholds2 - - thumb_func_start atk75_useitemonopponent -atk75_useitemonopponent: @ 0x0804F360 - push {lr} - sub sp, #4 - ldr r2, _0804F3A0 - ldr r1, _0804F3A4 - ldrb r0, [r1] - strb r0, [r2] - ldr r2, _0804F3A8 - ldrb r0, [r1] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r2, [r0] - movs r0, #0x64 - muls r0, r2, r0 - ldr r1, _0804F3AC - adds r0, r0, r1 - ldr r1, _0804F3B0 - ldrh r1, [r1] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r3, #1 - str r3, [sp] - movs r3, #0 - bl PokemonUseItemEffects - ldr r1, _0804F3B4 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_0804F3A0: .4byte gUnknown_202415C -_0804F3A4: .4byte gUnknown_2023EAF -_0804F3A8: .4byte gUnknown_2023D12 -_0804F3AC: .4byte gUnknown_20243E8 -_0804F3B0: .4byte gUnknown_2023EAC -_0804F3B4: .4byte gUnknown_2023EB8 - thumb_func_end atk75_useitemonopponent - - thumb_func_start atk76_various -atk76_various: @ 0x0804F3B8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r4, _0804F3E0 - ldr r0, [r4] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - ldr r1, _0804F3E4 - strb r0, [r1] - ldr r0, [r4] - ldrb r0, [r0, #2] - cmp r0, #0x1a - bls _0804F3D6 - b _0804F97C -_0804F3D6: - lsls r0, r0, #2 - ldr r1, _0804F3E8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0804F3E0: .4byte gUnknown_2023EB8 -_0804F3E4: .4byte gUnknown_2023D08 -_0804F3E8: .4byte _0804F3EC -_0804F3EC: @ jump table - .4byte _0804F458 @ case 0 - .4byte _0804F468 @ case 1 - .4byte _0804F4C8 @ case 2 - .4byte _0804F4D8 @ case 3 - .4byte _0804F4F0 @ case 4 - .4byte _0804F52C @ case 5 - .4byte _0804F564 @ case 6 - .4byte _0804F5EC @ case 7 - .4byte _0804F62C @ case 8 - .4byte _0804F6D8 @ case 9 - .4byte _0804F6F4 @ case 10 - .4byte _0804F748 @ case 11 - .4byte _0804F7A0 @ case 12 - .4byte _0804F824 @ case 13 - .4byte _0804F838 @ case 14 - .4byte _0804F83E @ case 15 - .4byte _0804F844 @ case 16 - .4byte _0804F86C @ case 17 - .4byte _0804F876 @ case 18 - .4byte _0804F884 @ case 19 - .4byte _0804F898 @ case 20 - .4byte _0804F8D0 @ case 21 - .4byte _0804F8E4 @ case 22 - .4byte _0804F8FC @ case 23 - .4byte _0804F928 @ case 24 - .4byte _0804F93C @ case 25 - .4byte _0804F968 @ case 26 -_0804F458: - ldr r0, _0804F464 - ldrb r0, [r0] - bl CancelMultiTurnMoves - b _0804F97C - .align 2, 0 -_0804F464: .4byte gUnknown_2023D08 -_0804F468: - ldr r1, _0804F4A4 - ldr r4, _0804F4A8 - ldrb r0, [r4] - strb r0, [r1] - ldrb r0, [r1] - bl GetBattlerSide - movs r1, #1 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0804F4AC - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r2, r1, r2 - ldrb r0, [r2, #8] - cmp r0, #0 - beq _0804F4B4 - ldr r1, _0804F4B0 - ldrb r2, [r2, #9] - movs r0, #0x58 - muls r0, r2, r0 - adds r0, r0, r1 - ldrh r0, [r0, #0x28] - cmp r0, #0 - beq _0804F4B4 - strb r2, [r4] - b _0804F97C - .align 2, 0 -_0804F4A4: .4byte gUnknown_2023EAF -_0804F4A8: .4byte gUnknown_2023EB0 -_0804F4AC: .4byte gUnknown_2023F38 -_0804F4B0: .4byte gUnknown_2023D28 -_0804F4B4: - ldr r0, _0804F4C0 - ldr r1, _0804F4C4 - ldrb r1, [r1] - strb r1, [r0] - b _0804F97C - .align 2, 0 -_0804F4C0: .4byte gUnknown_2023EB0 -_0804F4C4: .4byte gUnknown_2023D08 -_0804F4C8: - bl IsRunningFromBattleImpossible - ldr r1, _0804F4D4 - strb r0, [r1] - b _0804F97C - .align 2, 0 -_0804F4D4: .4byte gUnknown_2023FD6 -_0804F4D8: - ldr r0, _0804F4E8 - ldrh r0, [r0] - movs r1, #0 - bl GetMoveTarget - ldr r1, _0804F4EC - strb r0, [r1] - b _0804F97C - .align 2, 0 -_0804F4E8: .4byte gUnknown_2023E8E -_0804F4EC: .4byte gUnknown_2023EB0 -_0804F4F0: - ldr r2, _0804F510 - ldr r1, _0804F514 - ldr r0, _0804F518 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - lsls r0, r0, #0x1c - ldr r2, [r2] - ands r2, r0 - cmp r2, #0 - beq _0804F520 - ldr r1, _0804F51C - movs r0, #1 - strb r0, [r1] - b _0804F97C - .align 2, 0 -_0804F510: .4byte gUnknown_2023F24 -_0804F514: .4byte gUnknown_82FACB4 -_0804F518: .4byte gUnknown_2023D08 -_0804F51C: .4byte gUnknown_2023FD6 -_0804F520: - ldr r0, _0804F528 - strb r2, [r0] - b _0804F97C - .align 2, 0 -_0804F528: .4byte gUnknown_2023FD6 -_0804F52C: - ldr r4, _0804F55C - ldr r3, _0804F560 - ldrb r0, [r3] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r2, [r1] - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldrb r0, [r3] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r2, [r1] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - b _0804F97C - .align 2, 0 -_0804F55C: .4byte gUnknown_2024020 -_0804F560: .4byte gUnknown_2023D08 -_0804F564: - ldr r4, _0804F588 - ldr r1, _0804F58C - ldr r0, [r1] - ldrh r3, [r4] - ldrb r2, [r0, #0x10] - adds r6, r1, #0 - cmp r3, r2 - beq _0804F580 - ldrh r0, [r4, #4] - cmp r0, r2 - beq _0804F57C - b _0804F97C -_0804F57C: - cmp r3, r0 - bne _0804F594 -_0804F580: - ldr r1, _0804F590 - movs r0, #0 - b _0804F598 - .align 2, 0 -_0804F588: .4byte gUnknown_2023D12 -_0804F58C: .4byte gUnknown_2024140 -_0804F590: .4byte gUnknown_2023D08 -_0804F594: - ldr r1, _0804F5E4 - movs r0, #2 -_0804F598: - strb r0, [r1] - adds r5, r1, #0 - ldrb r2, [r5] - lsls r0, r2, #1 - adds r0, #0xc8 - ldr r1, [r6] - adds r4, r1, r0 - movs r3, #0 - ldr r1, _0804F5E8 - movs r0, #0x58 - muls r0, r2, r0 - adds r1, #0xc - adds r0, r0, r1 - ldrh r0, [r0] - ldrh r2, [r4] - cmp r0, r2 - beq _0804F5D8 - adds r6, r5, #0 - movs r5, #0x58 - adds r2, r1, #0 -_0804F5C0: - adds r3, #1 - cmp r3, #3 - bgt _0804F5D8 - lsls r1, r3, #1 - ldrb r0, [r6] - muls r0, r5, r0 - adds r1, r1, r0 - adds r1, r1, r2 - ldrh r0, [r1] - ldrh r1, [r4] - cmp r0, r1 - bne _0804F5C0 -_0804F5D8: - cmp r3, #4 - beq _0804F5DE - b _0804F97C -_0804F5DE: - movs r0, #0 - strh r0, [r4] - b _0804F97C - .align 2, 0 -_0804F5E4: .4byte gUnknown_2023D08 -_0804F5E8: .4byte gUnknown_2023D28 -_0804F5EC: - ldr r0, _0804F61C - ldr r0, [r0] - movs r1, #0xb - ands r0, r1 - cmp r0, #8 - beq _0804F5FA - b _0804F97C -_0804F5FA: - ldr r1, _0804F620 - ldrh r0, [r1, #0x28] - cmp r0, #0 - bne _0804F604 - b _0804F97C -_0804F604: - adds r0, r1, #0 - adds r0, #0x80 - ldrh r0, [r0] - cmp r0, #0 - bne _0804F610 - b _0804F97C -_0804F610: - ldr r0, _0804F624 - ldr r1, [r0] - ldr r2, _0804F628 - ands r1, r2 - str r1, [r0] - b _0804F97C - .align 2, 0 -_0804F61C: .4byte gUnknown_2022C90 -_0804F620: .4byte gUnknown_2023D28 -_0804F624: .4byte gUnknown_2023F24 -_0804F628: .4byte 0xFFBFFFFF -_0804F62C: - ldr r2, _0804F6BC - mov r8, r2 - movs r0, #0 - strb r0, [r2] - ldr r1, _0804F6C0 - ldr r6, _0804F6C4 - ldrb r0, [r2, #1] - strb r0, [r6] - strb r0, [r1, #0x17] - ldr r0, _0804F6C8 - ldr r0, [r0] - adds r7, r0, #0 - adds r7, #0x92 - ldrb r3, [r7] - ldr r1, _0804F6CC - ldrb r2, [r6] - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r5, [r0] - adds r0, r3, #0 - ands r0, r5 - cmp r0, #0 - beq _0804F65C - b _0804F97C -_0804F65C: - ldr r4, _0804F6D0 - movs r0, #0x58 - mov ip, r0 - mov r1, ip - muls r1, r2, r1 - adds r2, r1, #0 - adds r1, r2, r4 - ldrh r0, [r1, #0x2c] - lsrs r0, r0, #1 - ldrh r1, [r1, #0x28] - cmp r0, r1 - bhs _0804F676 - b _0804F97C -_0804F676: - cmp r1, #0 - bne _0804F67C - b _0804F97C -_0804F67C: - adds r0, r4, #0 - adds r0, #0x4c - adds r0, r2, r0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - beq _0804F68E - b _0804F97C -_0804F68E: - orrs r3, r5 - strb r3, [r7] - movs r0, #1 - mov r2, r8 - strb r0, [r2] - ldrb r0, [r6] - mov r1, ip - muls r1, r0, r1 - adds r0, r1, #0 - adds r1, r4, #0 - adds r1, #0x48 - adds r0, r0, r1 - ldr r0, [r0] - bl GetNatureFromPersonality - ldr r1, _0804F6D4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r1 - ldrb r0, [r0] - mov r2, r8 - strb r0, [r2, #5] - b _0804F97C - .align 2, 0 -_0804F6BC: .4byte gUnknown_2023FD6 -_0804F6C0: .4byte gUnknown_2024118 -_0804F6C4: .4byte gUnknown_2023D08 -_0804F6C8: .4byte gUnknown_2024140 -_0804F6CC: .4byte gUnknown_82FACB4 -_0804F6D0: .4byte gUnknown_2023D28 -_0804F6D4: .4byte gUnknown_82ECE7C -_0804F6D8: - ldr r4, _0804F6F0 - adds r0, r4, #0 - bl BattleArena_ShowJudgmentWindow - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - bne _0804F6EA - b _0804F984 -_0804F6EA: - strb r3, [r4, #1] - b _0804F97C - .align 2, 0 -_0804F6F0: .4byte gUnknown_2023FD6 -_0804F6F4: - ldr r0, _0804F72C - adds r0, #0x80 - movs r1, #0 - strh r1, [r0] - ldr r2, _0804F730 - ldr r3, _0804F734 - ldr r1, [r3, #4] - lsls r1, r1, #0x1c - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - ldr r0, _0804F738 - ldr r2, [r0] - ldr r0, _0804F73C - adds r2, r2, r0 - ldr r0, _0804F740 - ldrh r0, [r0, #2] - lsls r0, r0, #2 - adds r0, r0, r3 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r1, _0804F744 - adds r1, #0x34 - ldrb r0, [r1] - movs r2, #2 - b _0804F800 - .align 2, 0 -_0804F72C: .4byte gUnknown_2023D28 -_0804F730: .4byte gUnknown_2023F24 -_0804F734: .4byte gUnknown_82FACB4 -_0804F738: .4byte gUnknown_2024140 -_0804F73C: .4byte 0x000002A1 -_0804F740: .4byte gUnknown_2023D12 -_0804F744: .4byte gUnknown_2023F60 -_0804F748: - ldr r1, _0804F788 - movs r0, #0 - strh r0, [r1, #0x28] - ldr r2, _0804F78C - ldr r3, _0804F790 - ldr r1, [r3] - lsls r1, r1, #0x1c - ldr r0, [r2] - orrs r0, r1 - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r2] - ldr r0, _0804F794 - ldr r2, [r0] - movs r1, #0xa8 - lsls r1, r1, #2 - adds r2, r2, r1 - ldr r0, _0804F798 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r3 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r2, _0804F79C - ldrb r0, [r2, #0x18] - movs r1, #2 - orrs r0, r1 - strb r0, [r2, #0x18] - b _0804F97C - .align 2, 0 -_0804F788: .4byte gUnknown_2023D28 -_0804F78C: .4byte gUnknown_2023F24 -_0804F790: .4byte gUnknown_82FACB4 -_0804F794: .4byte gUnknown_2024140 -_0804F798: .4byte gUnknown_2023D12 -_0804F79C: .4byte gUnknown_2023F60 -_0804F7A0: - ldr r0, _0804F808 - movs r1, #0 - strh r1, [r0, #0x28] - adds r0, #0x80 - strh r1, [r0] - ldr r2, _0804F80C - ldr r3, _0804F810 - ldr r0, [r3] - lsls r0, r0, #0x1c - ldr r1, [r2] - orrs r1, r0 - ldr r0, [r3, #4] - lsls r0, r0, #0x1c - orrs r1, r0 - movs r0, #0x80 - lsls r0, r0, #0xf - orrs r1, r0 - str r1, [r2] - ldr r5, _0804F814 - ldr r2, [r5] - movs r0, #0xa8 - lsls r0, r0, #2 - adds r2, r2, r0 - ldr r4, _0804F818 - ldrh r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r3 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r2, [r5] - ldr r1, _0804F81C - adds r2, r2, r1 - ldrh r0, [r4, #2] - lsls r0, r0, #2 - adds r0, r0, r3 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r1, _0804F820 - ldrb r0, [r1, #0x18] - movs r2, #2 - orrs r0, r2 - strb r0, [r1, #0x18] - adds r1, #0x34 - ldrb r0, [r1] -_0804F800: - orrs r0, r2 - strb r0, [r1] - b _0804F97C - .align 2, 0 -_0804F808: .4byte gUnknown_2023D28 -_0804F80C: .4byte gUnknown_2023F24 -_0804F810: .4byte gUnknown_82FACB4 -_0804F814: .4byte gUnknown_2024140 -_0804F818: .4byte gUnknown_2023D12 -_0804F81C: .4byte 0x000002A1 -_0804F820: .4byte gUnknown_2023F60 -_0804F824: - movs r0, #0 - bl BtlController_EmitUnknownYesNoBox - ldr r0, _0804F834 - ldrb r0, [r0] - bl MarkBattlerForControllerExec - b _0804F97C - .align 2, 0 -_0804F834: .4byte gUnknown_2023D08 -_0804F838: - bl DrawArenaRefereeTextBox - b _0804F97C -_0804F83E: - bl sub_081A5AD8 - b _0804F97C -_0804F844: - ldr r1, _0804F860 - ldr r0, _0804F864 - ldr r0, [r0] - ldrb r0, [r0, #1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r0, _0804F868 - movs r1, #0x16 - bl sub_0814FA04 - b _0804F97C - .align 2, 0 -_0804F860: .4byte gUnknown_85AC04C -_0804F864: .4byte gUnknown_2023EB8 -_0804F868: .4byte gUnknown_2022AE0 -_0804F86C: - movs r0, #0x16 - bl sub_080046A8 - lsls r0, r0, #0x10 - b _0804F930 -_0804F876: - bl IsCryFinished - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0804F882 - b _0804F984 -_0804F882: - b _0804F97C -_0804F884: - ldr r4, _0804F890 - movs r0, #1 - strb r0, [r4] - ldr r0, _0804F894 - adds r0, #0x58 - b _0804F8AE - .align 2, 0 -_0804F890: .4byte gUnknown_2023D08 -_0804F894: .4byte gUnknown_2023D28 -_0804F898: - ldr r0, _0804F8C4 - ldrb r0, [r0] - cmp r0, #3 - bls _0804F97C - ldr r4, _0804F8C8 - movs r0, #3 - strb r0, [r4] - ldr r0, _0804F8CC - movs r2, #0x84 - lsls r2, r2, #1 - adds r0, r0, r2 -_0804F8AE: - ldrh r0, [r0, #0x28] - cmp r0, #0 - beq _0804F97C - movs r0, #0 - movs r1, #0 - bl BtlController_EmitReturnMonToBall - ldrb r0, [r4] - bl MarkBattlerForControllerExec - b _0804F97C - .align 2, 0 -_0804F8C4: .4byte gUnknown_2023D10 -_0804F8C8: .4byte gUnknown_2023D08 -_0804F8CC: .4byte gUnknown_2023D28 -_0804F8D0: - ldr r0, _0804F8DC - ldr r1, _0804F8E0 - movs r2, #0x55 - bl m4aMPlayVolumeControl - b _0804F97C - .align 2, 0 -_0804F8DC: .4byte gUnknown_30074D0 -_0804F8E0: .4byte 0x0000FFFF -_0804F8E4: - ldr r0, _0804F8F4 - ldr r1, _0804F8F8 - movs r2, #0x80 - lsls r2, r2, #1 - bl m4aMPlayVolumeControl - b _0804F97C - .align 2, 0 -_0804F8F4: .4byte gUnknown_30074D0 -_0804F8F8: .4byte 0x0000FFFF -_0804F8FC: - ldr r0, _0804F918 - ldr r2, [r0] - ldr r0, _0804F91C - adds r2, r2, r0 - ldr r1, _0804F920 - ldr r0, _0804F924 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - b _0804F97C - .align 2, 0 -_0804F918: .4byte gUnknown_2024140 -_0804F91C: .4byte 0x000002A2 -_0804F920: .4byte gUnknown_82FACB4 -_0804F924: .4byte gUnknown_2023D08 -_0804F928: - ldr r0, _0804F938 - ldrb r0, [r0] - bl sub_08056E6C -_0804F930: - cmp r0, #0 - bne _0804F984 - b _0804F97C - .align 2, 0 -_0804F938: .4byte gUnknown_2023D08 -_0804F93C: - ldr r0, _0804F954 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0804F95C - ldr r1, _0804F958 - movs r0, #5 - strb r0, [r1] - b _0804F97C - .align 2, 0 -_0804F954: .4byte gUnknown_2023D08 -_0804F958: .4byte gUnknown_2023FDE -_0804F95C: - ldr r1, _0804F964 - movs r0, #0xa - strb r0, [r1] - b _0804F97C - .align 2, 0 -_0804F964: .4byte gUnknown_2023FDE -_0804F968: - movs r1, #0xce - lsls r1, r1, #1 - movs r0, #0 - movs r2, #1 - bl BtlController_EmitPlayFanfareOrBGM - ldr r0, _0804F990 - ldrb r0, [r0] - bl MarkBattlerForControllerExec -_0804F97C: - ldr r1, _0804F994 - ldr r0, [r1] - adds r0, #3 - str r0, [r1] -_0804F984: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0804F990: .4byte gUnknown_2023D08 -_0804F994: .4byte gUnknown_2023EB8 - thumb_func_end atk76_various - - thumb_func_start atk77_setprotectlike -atk77_setprotectlike: @ 0x0804F998 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r6, #1 - ldr r2, _0804FA64 - ldr r1, _0804FA68 - ldrb r3, [r1] - lsls r0, r3, #1 - adds r0, r0, r2 - ldrh r0, [r0] - mov r8, r1 - ldr r7, _0804FA6C - cmp r0, #0xb6 - beq _0804F9C8 - cmp r0, #0xc5 - beq _0804F9C8 - cmp r0, #0xcb - beq _0804F9C8 - lsls r0, r3, #3 - subs r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r7 - movs r1, #0 - strb r1, [r0, #8] -_0804F9C8: - ldr r0, _0804FA70 - ldrb r1, [r0] - ldr r0, _0804FA74 - ldrb r0, [r0] - subs r0, #1 - cmp r1, r0 - bne _0804F9D8 - movs r6, #0 -_0804F9D8: - ldr r2, _0804FA78 - mov r5, r8 - ldrb r1, [r5] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrb r4, [r0, #8] - lsls r4, r4, #1 - adds r4, r4, r2 - bl Random - ldrh r1, [r4] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r1, r0 - blo _0804FA8C - cmp r6, #0 - beq _0804FA8C - ldr r4, _0804FA7C - ldr r3, _0804FA80 - ldrh r0, [r3] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r0, [r1] - cmp r0, #0x6f - bne _0804FA28 - ldr r0, _0804FA84 - ldrb r1, [r5] - lsls r1, r1, #4 - adds r1, r1, r0 - ldrb r0, [r1] - movs r2, #1 - orrs r0, r2 - strb r0, [r1] - ldr r1, _0804FA88 - movs r0, #0 - strb r0, [r1, #5] -_0804FA28: - ldrh r0, [r3] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r0, [r1] - cmp r0, #0x74 - bne _0804FA4E - ldr r0, _0804FA84 - ldrb r1, [r5] - lsls r1, r1, #4 - adds r1, r1, r0 - ldrb r0, [r1] - movs r2, #2 - orrs r0, r2 - strb r0, [r1] - ldr r1, _0804FA88 - movs r0, #1 - strb r0, [r1, #5] -_0804FA4E: - mov r1, r8 - ldrb r0, [r1] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r7 - ldrb r0, [r1, #8] - adds r0, #1 - strb r0, [r1, #8] - b _0804FAAE - .align 2, 0 -_0804FA64: .4byte gUnknown_2023F04 -_0804FA68: .4byte gUnknown_2023EAF -_0804FA6C: .4byte gUnknown_2023F60 -_0804FA70: .4byte gUnknown_2023D26 -_0804FA74: .4byte gUnknown_2023D10 -_0804FA78: .4byte gUnknown_82ECD5C -_0804FA7C: .4byte gUnknown_82ED220 -_0804FA80: .4byte gUnknown_2023E8E -_0804FA84: .4byte gUnknown_2023FE0 -_0804FA88: .4byte gUnknown_2023FD6 -_0804FA8C: - ldr r2, _0804FAC0 - ldr r0, _0804FAC4 - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0 - strb r1, [r0, #8] - ldr r1, _0804FAC8 - movs r0, #2 - strb r0, [r1, #5] - ldr r2, _0804FACC - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] -_0804FAAE: - ldr r1, _0804FAD0 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0804FAC0: .4byte gUnknown_2023F60 -_0804FAC4: .4byte gUnknown_2023EAF -_0804FAC8: .4byte gUnknown_2023FD6 -_0804FACC: .4byte gUnknown_2023F20 -_0804FAD0: .4byte gUnknown_2023EB8 - thumb_func_end atk77_setprotectlike - - thumb_func_start atk78_faintifabilitynotdamp -atk78_faintifabilitynotdamp: @ 0x0804FAD4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _0804FB90 - ldr r2, [r0] - cmp r2, #0 - bne _0804FBD8 - ldr r1, _0804FB94 - strb r2, [r1] - ldr r0, _0804FB98 - ldrb r3, [r0] - adds r5, r1, #0 - mov r8, r0 - ldr r6, _0804FB9C - cmp r2, r3 - bhs _0804FB20 - adds r0, r6, #0 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #6 - beq _0804FB20 - adds r2, r3, #0 - adds r4, r6, #0 - movs r3, #0x58 -_0804FB04: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r2 - bhs _0804FB20 - ldrb r0, [r5] - muls r0, r3, r0 - adds r0, r0, r4 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #6 - bne _0804FB04 -_0804FB20: - ldrb r0, [r5] - mov r1, r8 - ldrb r1, [r1] - cmp r0, r1 - bne _0804FBBC - ldr r4, _0804FBA0 - ldr r7, _0804FBA4 - ldrb r0, [r7] - strb r0, [r4] - ldr r2, _0804FBA8 - ldrb r1, [r4] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r6 - ldrh r0, [r0, #0x28] - str r0, [r2] - ldr r1, _0804FBAC - movs r0, #0 - bl BtlController_EmitHealthBarUpdate - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldr r1, _0804FBB0 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - movs r0, #0 - strb r0, [r5] - mov r2, r8 - ldrb r0, [r2] - cmp r0, #0 - beq _0804FBD8 - adds r3, r5, #0 - ldrb r5, [r7] - ldr r7, _0804FBB4 - adds r4, r0, #0 - ldr r6, _0804FBB8 -_0804FB6C: - ldrb r2, [r3] - cmp r2, r5 - beq _0804FB82 - ldrb r0, [r6] - ldrb r1, [r3] - lsls r1, r1, #2 - adds r1, r1, r7 - ldr r1, [r1] - ands r0, r1 - cmp r0, #0 - beq _0804FBD8 -_0804FB82: - adds r0, r2, #1 - strb r0, [r3] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r4 - blo _0804FB6C - b _0804FBD8 - .align 2, 0 -_0804FB90: .4byte gUnknown_2023D0C -_0804FB94: .4byte gUnknown_2023EB0 -_0804FB98: .4byte gUnknown_2023D10 -_0804FB9C: .4byte gUnknown_2023D28 -_0804FBA0: .4byte gUnknown_2023D08 -_0804FBA4: .4byte gUnknown_2023EAF -_0804FBA8: .4byte gUnknown_2023E94 -_0804FBAC: .4byte 0x00007FFF -_0804FBB0: .4byte gUnknown_2023EB8 -_0804FBB4: .4byte gUnknown_82FACB4 -_0804FBB8: .4byte gUnknown_2023EB4 -_0804FBBC: - ldr r1, _0804FBE4 - movs r0, #6 - strb r0, [r1] - ldrb r0, [r5] - movs r1, #0x58 - muls r1, r0, r1 - adds r1, r1, r6 - adds r1, #0x20 - ldrb r1, [r1] - bl RecordAbilityBattle - ldr r1, _0804FBE8 - ldr r0, _0804FBEC - str r0, [r1] -_0804FBD8: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0804FBE4: .4byte gUnknown_2023EAE -_0804FBE8: .4byte gUnknown_2023EB8 -_0804FBEC: .4byte gUnknown_8289AE8 - thumb_func_end atk78_faintifabilitynotdamp - - thumb_func_start atk79_setatkhptozero -atk79_setatkhptozero: @ 0x0804FBF0 - push {r4, lr} - sub sp, #4 - ldr r0, _0804FC3C - ldr r3, [r0] - cmp r3, #0 - bne _0804FC34 - ldr r4, _0804FC40 - ldr r0, _0804FC44 - ldrb r0, [r0] - strb r0, [r4] - ldr r1, _0804FC48 - ldrb r0, [r4] - movs r2, #0x58 - muls r0, r2, r0 - adds r0, r0, r1 - strh r3, [r0, #0x28] - ldrb r0, [r4] - muls r0, r2, r0 - adds r1, #0x28 - adds r0, r0, r1 - str r0, [sp] - movs r0, #0 - movs r1, #0x2a - movs r2, #0 - movs r3, #2 - bl BtlController_EmitSetMonData - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldr r1, _0804FC4C - ldr r0, [r1] - adds r0, #1 - str r0, [r1] -_0804FC34: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804FC3C: .4byte gUnknown_2023D0C -_0804FC40: .4byte gUnknown_2023D08 -_0804FC44: .4byte gUnknown_2023EAF -_0804FC48: .4byte gUnknown_2023D28 -_0804FC4C: .4byte gUnknown_2023EB8 - thumb_func_end atk79_setatkhptozero - - thumb_func_start atk7A_jumpifnexttargetvalid -atk7A_jumpifnexttargetvalid: @ 0x0804FC50 - push {r4, r5, r6, r7, lr} - ldr r3, _0804FCC8 - ldr r2, [r3] - ldrb r4, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r4, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r4, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r4, r0 - ldr r0, _0804FCCC - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - adds r7, r3, #0 - cmp r0, #0 - beq _0804FCE8 - ldr r0, _0804FCD0 - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - ldr r2, _0804FCD4 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r3, r0, #0 - ldr r6, _0804FCD8 - ldr r5, _0804FCDC - ldr r0, _0804FCE0 - mov ip, r0 - ldrb r0, [r2] - cmp r1, r0 - bne _0804FCA6 -_0804FC96: - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r2] - cmp r0, r1 - beq _0804FC96 -_0804FCA6: - ldrb r0, [r6] - ldrb r1, [r3] - lsls r1, r1, #2 - adds r1, r1, r5 - ldr r1, [r1] - ands r0, r1 - cmp r0, #0 - bne _0804FC96 - ldrb r0, [r3] - mov r2, ip - ldrb r2, [r2] - cmp r0, r2 - blo _0804FCE4 - ldr r0, [r7] - adds r0, #5 - str r0, [r7] - b _0804FCEC - .align 2, 0 -_0804FCC8: .4byte gUnknown_2023EB8 -_0804FCCC: .4byte gUnknown_2022C90 -_0804FCD0: .4byte gUnknown_2023EB0 -_0804FCD4: .4byte gUnknown_2023EAF -_0804FCD8: .4byte gUnknown_2023EB4 -_0804FCDC: .4byte gUnknown_82FACB4 -_0804FCE0: .4byte gUnknown_2023D10 -_0804FCE4: - str r4, [r7] - b _0804FCEC -_0804FCE8: - adds r0, r2, #5 - str r0, [r3] -_0804FCEC: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end atk7A_jumpifnexttargetvalid - - thumb_func_start atk7B_tryhealhalfhealth -atk7B_tryhealhalfhealth: @ 0x0804FCF4 - push {r4, r5, r6, lr} - ldr r4, _0804FD50 - ldr r1, [r4] - ldrb r2, [r1, #1] - ldrb r0, [r1, #2] - lsls r0, r0, #8 - orrs r2, r0 - ldrb r0, [r1, #3] - lsls r0, r0, #0x10 - orrs r2, r0 - ldrb r0, [r1, #4] - lsls r0, r0, #0x18 - orrs r2, r0 - ldrb r0, [r1, #5] - ldr r3, _0804FD54 - cmp r0, #1 - bne _0804FD1C - ldr r0, _0804FD58 - ldrb r0, [r0] - strb r0, [r3] -_0804FD1C: - ldr r1, _0804FD5C - ldr r6, _0804FD60 - ldrb r0, [r3] - movs r5, #0x58 - muls r0, r5, r0 - adds r0, r0, r6 - ldrh r0, [r0, #0x2c] - lsrs r0, r0, #1 - str r0, [r1] - cmp r0, #0 - bne _0804FD36 - movs r0, #1 - str r0, [r1] -_0804FD36: - ldr r0, [r1] - rsbs r0, r0, #0 - str r0, [r1] - ldrb r0, [r3] - muls r0, r5, r0 - adds r0, r0, r6 - ldrh r1, [r0, #0x28] - ldrh r0, [r0, #0x2c] - cmp r1, r0 - bne _0804FD64 - str r2, [r4] - b _0804FD6A - .align 2, 0 -_0804FD50: .4byte gUnknown_2023EB8 -_0804FD54: .4byte gUnknown_2023EB0 -_0804FD58: .4byte gUnknown_2023EAF -_0804FD5C: .4byte gUnknown_2023E94 -_0804FD60: .4byte gUnknown_2023D28 -_0804FD64: - ldr r0, [r4] - adds r0, #6 - str r0, [r4] -_0804FD6A: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end atk7B_tryhealhalfhealth - - thumb_func_start atk7C_trymirrormove -atk7C_trymirrormove: @ 0x0804FD70 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - ldr r2, _0804FE10 - ldr r0, _0804FE14 - mov sl, r0 - movs r1, #0 - add r0, sp, #4 -_0804FD86: - strh r1, [r0] - subs r0, #2 - cmp r0, sp - bge _0804FD86 - movs r1, #0 - mov r8, r1 - movs r5, #0 - ldrb r1, [r2] - cmp r5, r1 - bge _0804FDDC - ldr r0, _0804FE18 - ldrb r6, [r0] - ldr r2, _0804FE1C - mov sb, r2 - lsls r4, r6, #3 - mov r2, sp - ldr r0, _0804FE14 - mov ip, r0 - adds r7, r1, #0 -_0804FDAC: - cmp r5, r6 - beq _0804FDD4 - mov r1, ip - ldr r0, [r1] - adds r0, r4, r0 - adds r1, r0, #0 - adds r1, #0xe0 - ldrb r3, [r1] - adds r0, #0xe1 - ldrb r0, [r0] - lsls r0, r0, #8 - orrs r3, r0 - cmp r3, #0 - beq _0804FDD4 - cmp r3, sb - beq _0804FDD4 - strh r3, [r2] - adds r2, #2 - movs r0, #1 - add r8, r0 -_0804FDD4: - adds r4, #2 - adds r5, #1 - cmp r5, r7 - blt _0804FDAC -_0804FDDC: - ldr r1, _0804FE18 - ldrb r0, [r1] - mov r2, sl - ldr r1, [r2] - lsls r0, r0, #1 - adds r0, r0, r1 - adds r1, r0, #0 - adds r1, #0x98 - ldrb r3, [r1] - adds r0, #0x99 - ldrb r0, [r0] - lsls r0, r0, #8 - orrs r3, r0 - cmp r3, #0 - beq _0804FE2C - ldr r0, _0804FE1C - cmp r3, r0 - beq _0804FE2C - ldr r2, _0804FE20 - ldr r0, [r2] - ldr r1, _0804FE24 - ands r0, r1 - str r0, [r2] - ldr r4, _0804FE28 - strh r3, [r4] - b _0804FE56 - .align 2, 0 -_0804FE10: .4byte gUnknown_2023D10 -_0804FE14: .4byte gUnknown_2024140 -_0804FE18: .4byte gUnknown_2023EAF -_0804FE1C: .4byte 0x0000FFFF -_0804FE20: .4byte gUnknown_2023F24 -_0804FE24: .4byte 0xFFFFFBFF -_0804FE28: .4byte gUnknown_2023E8E -_0804FE2C: - mov r0, r8 - cmp r0, #0 - beq _0804FE9C - ldr r2, _0804FE80 - ldr r0, [r2] - ldr r1, _0804FE84 - ands r0, r1 - str r0, [r2] - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r1, r8 - bl __modsi3 - adds r5, r0, #0 - ldr r4, _0804FE88 - lsls r0, r5, #1 - add r0, sp - ldrh r0, [r0] - strh r0, [r4] -_0804FE56: - ldrh r0, [r4] - movs r1, #0 - bl GetMoveTarget - ldr r1, _0804FE8C - strb r0, [r1] - ldr r5, _0804FE90 - ldr r3, _0804FE94 - ldr r2, _0804FE98 - ldrh r1, [r4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r3 - ldr r0, [r0] - str r0, [r5] - b _0804FEBA - .align 2, 0 -_0804FE80: .4byte gUnknown_2023F24 -_0804FE84: .4byte 0xFFFFFBFF -_0804FE88: .4byte gUnknown_2023E8E -_0804FE8C: .4byte gUnknown_2023EB0 -_0804FE90: .4byte gUnknown_2023EB8 -_0804FE94: .4byte gUnknown_8286C30 -_0804FE98: .4byte gUnknown_82ED220 -_0804FE9C: - ldr r2, _0804FECC - ldr r0, _0804FED0 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r2, #0x20 - orrs r1, r2 - strb r1, [r0] - ldr r1, _0804FED4 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] -_0804FEBA: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0804FECC: .4byte gUnknown_2024020 -_0804FED0: .4byte gUnknown_2023EAF -_0804FED4: .4byte gUnknown_2023EB8 - thumb_func_end atk7C_trymirrormove - - thumb_func_start atk7D_setrain -atk7D_setrain: @ 0x0804FED8 - push {lr} - ldr r2, _0804FEF8 - ldrh r0, [r2] - movs r1, #7 - ands r1, r0 - cmp r1, #0 - beq _0804FF04 - ldr r2, _0804FEFC - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - ldr r1, _0804FF00 - movs r0, #2 - strb r0, [r1, #5] - b _0804FF14 - .align 2, 0 -_0804FEF8: .4byte gUnknown_2024070 -_0804FEFC: .4byte gUnknown_2023F20 -_0804FF00: .4byte gUnknown_2023FD6 -_0804FF04: - movs r0, #1 - strh r0, [r2] - ldr r0, _0804FF20 - strb r1, [r0, #5] - ldr r0, _0804FF24 - adds r0, #0x28 - movs r1, #5 - strb r1, [r0] -_0804FF14: - ldr r1, _0804FF28 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0804FF20: .4byte gUnknown_2023FD6 -_0804FF24: .4byte gUnknown_2024074 -_0804FF28: .4byte gUnknown_2023EB8 - thumb_func_end atk7D_setrain - - thumb_func_start atk7E_setreflect -atk7E_setreflect: @ 0x0804FF2C - push {r4, r5, r6, lr} - ldr r6, _0804FF5C - ldrb r0, [r6] - bl sub_080A630C - ldr r4, _0804FF60 - movs r5, #1 - adds r1, r5, #0 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r1, [r1] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _0804FF6C - ldr r2, _0804FF64 - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - ldr r1, _0804FF68 - movs r0, #0 - b _0804FFE0 - .align 2, 0 -_0804FF5C: .4byte gUnknown_2023EAF -_0804FF60: .4byte gUnknown_2023F32 -_0804FF64: .4byte gUnknown_2023F20 -_0804FF68: .4byte gUnknown_2023FD6 -_0804FF6C: - ldrb r0, [r6] - bl sub_080A630C - adds r1, r5, #0 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r0, [r1] - movs r2, #1 - orrs r0, r2 - strh r0, [r1] - ldrb r0, [r6] - bl sub_080A630C - ldr r4, _0804FFD0 - adds r1, r5, #0 - ands r1, r0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #5 - strb r1, [r0] - ldrb r0, [r6] - bl sub_080A630C - adds r1, r5, #0 - ands r1, r0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r1, [r6] - strb r1, [r0, #1] - ldr r0, _0804FFD4 - ldr r0, [r0] - ands r0, r5 - cmp r0, #0 - beq _0804FFDC - movs r0, #1 - bl CountAliveMonsInBattle - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #2 - bne _0804FFDC - ldr r0, _0804FFD8 - strb r1, [r0, #5] - b _0804FFE2 - .align 2, 0 -_0804FFD0: .4byte gUnknown_2023F38 -_0804FFD4: .4byte gUnknown_2022C90 -_0804FFD8: .4byte gUnknown_2023FD6 -_0804FFDC: - ldr r1, _0804FFF0 - movs r0, #1 -_0804FFE0: - strb r0, [r1, #5] -_0804FFE2: - ldr r1, _0804FFF4 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0804FFF0: .4byte gUnknown_2023FD6 -_0804FFF4: .4byte gUnknown_2023EB8 - thumb_func_end atk7E_setreflect - - thumb_func_start atk7F_setseeded -atk7F_setseeded: @ 0x0804FFF8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r7, _08050038 - ldrb r5, [r7] - movs r0, #0x29 - ands r0, r5 - cmp r0, #0 - bne _0805002A - ldr r0, _0805003C - mov sb, r0 - ldr r1, _08050040 - mov r8, r1 - ldrb r4, [r1] - lsls r0, r4, #2 - mov r2, sb - adds r6, r0, r2 - ldr r2, [r6] - movs r0, #4 - mov ip, r0 - adds r3, r2, #0 - ands r3, r0 - cmp r3, #0 - beq _08050048 -_0805002A: - movs r0, #1 - orrs r0, r5 - strb r0, [r7] - ldr r1, _08050044 - movs r0, #1 - strb r0, [r1, #5] - b _08050098 - .align 2, 0 -_08050038: .4byte gUnknown_2023F20 -_0805003C: .4byte gUnknown_2023F50 -_08050040: .4byte gUnknown_2023EB0 -_08050044: .4byte gUnknown_2023FD6 -_08050048: - ldr r1, _08050074 - movs r0, #0x58 - muls r0, r4, r0 - adds r1, r0, r1 - adds r0, r1, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0xc - beq _08050064 - adds r0, r1, #0 - adds r0, #0x22 - ldrb r0, [r0] - cmp r0, #0xc - bne _0805007C -_08050064: - movs r0, #1 - orrs r0, r5 - strb r0, [r7] - ldr r1, _08050078 - movs r0, #2 - strb r0, [r1, #5] - b _08050098 - .align 2, 0 -_08050074: .4byte gUnknown_2023D28 -_08050078: .4byte gUnknown_2023FD6 -_0805007C: - ldr r0, _080500AC - ldrb r0, [r0] - orrs r2, r0 - str r2, [r6] - mov r2, r8 - ldrb r1, [r2] - lsls r1, r1, #2 - add r1, sb - ldr r0, [r1] - mov r2, ip - orrs r0, r2 - str r0, [r1] - ldr r0, _080500B0 - strb r3, [r0, #5] -_08050098: - ldr r1, _080500B4 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080500AC: .4byte gUnknown_2023EAF -_080500B0: .4byte gUnknown_2023FD6 -_080500B4: .4byte gUnknown_2023EB8 - thumb_func_end atk7F_setseeded - - thumb_func_start atk80_manipulatedamage -atk80_manipulatedamage: @ 0x080500B8 - push {r4, lr} - ldr r1, _080500D0 - ldr r0, [r1] - ldrb r2, [r0, #1] - adds r4, r1, #0 - cmp r2, #1 - beq _080500E8 - cmp r2, #1 - bgt _080500D4 - cmp r2, #0 - beq _080500DA - b _08050128 - .align 2, 0 -_080500D0: .4byte gUnknown_2023EB8 -_080500D4: - cmp r2, #2 - beq _08050120 - b _08050128 -_080500DA: - ldr r1, _080500E4 - ldr r0, [r1] - rsbs r0, r0, #0 - b _08050126 - .align 2, 0 -_080500E4: .4byte gUnknown_2023E94 -_080500E8: - ldr r3, _08050114 - ldr r0, [r3] - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - str r0, [r3] - cmp r0, #0 - bne _080500FA - str r2, [r3] -_080500FA: - ldr r2, _08050118 - ldr r0, _0805011C - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - ldrh r0, [r0, #0x2c] - lsrs r1, r0, #1 - ldr r0, [r3] - cmp r1, r0 - bge _08050128 - str r1, [r3] - b _08050128 - .align 2, 0 -_08050114: .4byte gUnknown_2023E94 -_08050118: .4byte gUnknown_2023D28 -_0805011C: .4byte gUnknown_2023EB0 -_08050120: - ldr r1, _08050134 - ldr r0, [r1] - lsls r0, r0, #1 -_08050126: - str r0, [r1] -_08050128: - ldr r0, [r4] - adds r0, #2 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08050134: .4byte gUnknown_2023E94 - thumb_func_end atk80_manipulatedamage - - thumb_func_start atk81_trysetrest -atk81_trysetrest: @ 0x08050138 - push {r4, r5, r6, r7, lr} - sub sp, #4 - ldr r0, _08050190 - mov ip, r0 - ldr r1, [r0] - ldrb r6, [r1, #1] - ldrb r0, [r1, #2] - lsls r0, r0, #8 - orrs r6, r0 - ldrb r0, [r1, #3] - lsls r0, r0, #0x10 - orrs r6, r0 - ldrb r0, [r1, #4] - lsls r0, r0, #0x18 - orrs r6, r0 - ldr r5, _08050194 - ldr r2, _08050198 - ldr r0, _0805019C - ldrb r0, [r0] - strb r0, [r2] - strb r0, [r5] - ldr r4, _080501A0 - ldr r1, _080501A4 - ldrb r0, [r2] - movs r3, #0x58 - muls r0, r3, r0 - adds r0, r0, r1 - ldrh r0, [r0, #0x2c] - rsbs r0, r0, #0 - str r0, [r4] - ldrb r0, [r2] - adds r4, r0, #0 - muls r4, r3, r4 - adds r0, r4, r1 - ldrh r3, [r0, #0x28] - adds r7, r5, #0 - adds r5, r2, #0 - adds r2, r1, #0 - ldrh r0, [r0, #0x2c] - cmp r3, r0 - bne _080501A8 - mov r0, ip - str r6, [r0] - b _080501F8 - .align 2, 0 -_08050190: .4byte gUnknown_2023EB8 -_08050194: .4byte gUnknown_2023D08 -_08050198: .4byte gUnknown_2023EB0 -_0805019C: .4byte gUnknown_2023EAF -_080501A0: .4byte gUnknown_2023E94 -_080501A4: .4byte gUnknown_2023D28 -_080501A8: - adds r0, r2, #0 - adds r0, #0x4c - adds r0, r4, r0 - ldr r1, [r0] - movs r0, #0xf8 - ands r1, r0 - cmp r1, #0 - beq _080501C4 - ldr r1, _080501C0 - movs r0, #1 - strb r0, [r1, #5] - b _080501C8 - .align 2, 0 -_080501C0: .4byte gUnknown_2023FD6 -_080501C4: - ldr r0, _08050200 - strb r1, [r0, #5] -_080501C8: - ldrb r0, [r5] - movs r3, #0x58 - muls r0, r3, r0 - adds r2, #0x4c - adds r0, r0, r2 - movs r1, #3 - str r1, [r0] - ldrb r0, [r7] - muls r0, r3, r0 - adds r0, r0, r2 - str r0, [sp] - movs r0, #0 - movs r1, #0x28 - movs r2, #0 - movs r3, #4 - bl BtlController_EmitSetMonData - ldrb r0, [r7] - bl MarkBattlerForControllerExec - ldr r1, _08050204 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] -_080501F8: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08050200: .4byte gUnknown_2023FD6 -_08050204: .4byte gUnknown_2023EB8 - thumb_func_end atk81_trysetrest - - thumb_func_start atk82_jumpifnotfirstturn -atk82_jumpifnotfirstturn: @ 0x08050208 - push {r4, r5, lr} - ldr r5, _0805023C - ldr r4, [r5] - ldrb r3, [r4, #1] - ldrb r0, [r4, #2] - lsls r0, r0, #8 - orrs r3, r0 - ldrb r0, [r4, #3] - lsls r0, r0, #0x10 - orrs r3, r0 - ldrb r0, [r4, #4] - lsls r0, r0, #0x18 - orrs r3, r0 - ldr r2, _08050240 - ldr r0, _08050244 - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #0x16] - cmp r0, #0 - beq _08050248 - adds r0, r4, #5 - str r0, [r5] - b _0805024A - .align 2, 0 -_0805023C: .4byte gUnknown_2023EB8 -_08050240: .4byte gUnknown_2023F60 -_08050244: .4byte gUnknown_2023EAF -_08050248: - str r3, [r5] -_0805024A: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end atk82_jumpifnotfirstturn - - thumb_func_start atk83_nop -atk83_nop: @ 0x08050250 - ldr r1, _0805025C - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - bx lr - .align 2, 0 -_0805025C: .4byte gUnknown_2023EB8 - thumb_func_end atk83_nop - - thumb_func_start UproarWakeUpCheck -UproarWakeUpCheck: @ 0x08050260 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - movs r2, #0 - ldr r0, _080502B8 - ldrb r1, [r0] - mov r8, r0 - cmp r2, r1 - bge _080502D4 - ldr r0, _080502BC - mov ip, r0 - movs r0, #0x58 - muls r0, r3, r0 - add r0, ip - adds r5, r0, #0 - adds r5, #0x20 - adds r4, r1, #0 - movs r3, #0 - ldr r6, _080502C0 - ldr r7, _080502C4 -_0805028C: - mov r0, ip - adds r0, #0x50 - adds r0, r3, r0 - ldr r0, [r0] - movs r1, #0x70 - ands r0, r1 - cmp r0, #0 - beq _080502CC - ldrb r0, [r5] - cmp r0, #0x2b - beq _080502CC - movs r3, #0 - strb r2, [r6, #0x17] - ldr r1, _080502C8 - ldrb r0, [r1] - cmp r0, #0xff - beq _080502EC - cmp r0, r2 - beq _080502E0 - movs r0, #1 - strb r0, [r7, #5] - b _080502D4 - .align 2, 0 -_080502B8: .4byte gUnknown_2023D10 -_080502BC: .4byte gUnknown_2023D28 -_080502C0: .4byte gUnknown_2024118 -_080502C4: .4byte gUnknown_2023FD6 -_080502C8: .4byte gUnknown_2023EB0 -_080502CC: - adds r3, #0x58 - adds r2, #1 - cmp r2, r4 - blt _0805028C -_080502D4: - mov r1, r8 - ldrb r1, [r1] - cmp r2, r1 - beq _080502F0 - movs r0, #1 - b _080502F2 -_080502E0: - ldr r0, _080502E8 - strb r3, [r0, #5] - b _080502D4 - .align 2, 0 -_080502E8: .4byte gUnknown_2023FD6 -_080502EC: - strb r2, [r1] - b _080502D4 -_080502F0: - movs r0, #0 -_080502F2: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end UproarWakeUpCheck - - thumb_func_start atk84_jumpifcantmakeasleep -atk84_jumpifcantmakeasleep: @ 0x080502FC - push {r4, r5, r6, lr} - ldr r5, _08050328 - ldr r1, [r5] - ldrb r4, [r1, #1] - ldrb r0, [r1, #2] - lsls r0, r0, #8 - orrs r4, r0 - ldrb r0, [r1, #3] - lsls r0, r0, #0x10 - orrs r4, r0 - ldrb r0, [r1, #4] - lsls r0, r0, #0x18 - orrs r4, r0 - ldr r6, _0805032C - ldrb r0, [r6] - bl UproarWakeUpCheck - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08050330 - str r4, [r5] - b _08050372 - .align 2, 0 -_08050328: .4byte gUnknown_2023EB8 -_0805032C: .4byte gUnknown_2023EB0 -_08050330: - ldr r1, _08050360 - ldrb r3, [r6] - movs r0, #0x58 - muls r0, r3, r0 - adds r0, r0, r1 - adds r0, #0x20 - ldrb r0, [r0] - adds r1, r0, #0 - cmp r1, #0xf - beq _08050348 - cmp r1, #0x48 - bne _0805036C -_08050348: - ldr r2, _08050364 - strb r0, [r2] - ldr r1, _08050368 - movs r0, #2 - strb r0, [r1, #5] - str r4, [r5] - ldrb r1, [r2] - adds r0, r3, #0 - bl RecordAbilityBattle - b _08050372 - .align 2, 0 -_08050360: .4byte gUnknown_2023D28 -_08050364: .4byte gUnknown_2023EAE -_08050368: .4byte gUnknown_2023FD6 -_0805036C: - ldr r0, [r5] - adds r0, #5 - str r0, [r5] -_08050372: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end atk84_jumpifcantmakeasleep - - thumb_func_start atk85_stockpile -atk85_stockpile: @ 0x08050378 - push {r4, r5, lr} - ldr r5, _080503A0 - ldr r4, _080503A4 - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r5 - ldrb r0, [r1, #9] - cmp r0, #3 - bne _080503B0 - ldr r2, _080503A8 - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - ldr r1, _080503AC - movs r0, #1 - strb r0, [r1, #5] - b _080503DA - .align 2, 0 -_080503A0: .4byte gUnknown_2023F60 -_080503A4: .4byte gUnknown_2023EAF -_080503A8: .4byte gUnknown_2023F20 -_080503AC: .4byte gUnknown_2023FD6 -_080503B0: - adds r0, #1 - movs r3, #0 - strb r0, [r1, #9] - ldr r2, _080503E8 - movs r0, #0xfd - strb r0, [r2] - movs r0, #1 - strb r0, [r2, #1] - strb r0, [r2, #2] - strb r0, [r2, #3] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r0, [r0, #9] - strb r0, [r2, #4] - movs r0, #0xff - strb r0, [r2, #5] - ldr r0, _080503EC - strb r3, [r0, #5] -_080503DA: - ldr r1, _080503F0 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080503E8: .4byte gUnknown_2022C0C -_080503EC: .4byte gUnknown_2023FD6 -_080503F0: .4byte gUnknown_2023EB8 - thumb_func_end atk85_stockpile - - thumb_func_start atk86_stockpiletobasedamage -atk86_stockpiletobasedamage: @ 0x080503F4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x10 - ldr r3, _0805042C - ldr r1, [r3] - ldrb r2, [r1, #1] - ldrb r0, [r1, #2] - lsls r0, r0, #8 - orrs r2, r0 - ldrb r0, [r1, #3] - lsls r0, r0, #0x10 - orrs r2, r0 - ldrb r0, [r1, #4] - lsls r0, r0, #0x18 - orrs r2, r0 - ldr r7, _08050430 - ldr r6, _08050434 - ldrb r1, [r6] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrb r0, [r0, #9] - cmp r0, #0 - bne _08050438 - str r2, [r3] - b _080504DA - .align 2, 0 -_0805042C: .4byte gUnknown_2023EB8 -_08050430: .4byte gUnknown_2023F60 -_08050434: .4byte gUnknown_2023EAF -_08050438: - ldr r0, _080504E8 - ldrb r0, [r0, #6] - cmp r0, #1 - beq _080504C0 - ldr r0, _080504EC - mov r8, r0 - ldr r4, _080504F0 - ldr r5, _080504F4 - ldrb r0, [r5] - bl sub_080A630C - movs r1, #1 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r3, [r1] - ldrb r0, [r6] - movs r4, #0x58 - muls r0, r4, r0 - ldr r2, _080504F8 - adds r0, r0, r2 - ldrb r1, [r5] - muls r1, r4, r1 - adds r1, r1, r2 - ldr r2, _080504FC - ldrh r2, [r2] - movs r4, #0 - str r4, [sp] - str r4, [sp, #4] - ldrb r4, [r6] - str r4, [sp, #8] - ldrb r4, [r5] - str r4, [sp, #0xc] - bl CalculateBaseDamage - ldrb r2, [r6] - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r7 - ldrb r1, [r1, #9] - adds r3, r0, #0 - muls r3, r1, r3 - mov r1, r8 - str r3, [r1] - ldr r2, _08050500 - ldrb r1, [r6] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrb r0, [r0, #9] - strb r0, [r2, #0x18] - ldr r1, _08050504 - ldrb r0, [r6] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1c - cmp r0, #0 - bge _080504C0 - lsls r0, r3, #4 - subs r0, r0, r3 - movs r1, #0xa - bl __divsi3 - mov r1, r8 - str r0, [r1] -_080504C0: - ldr r2, _08050508 - ldr r0, _0805050C - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0 - strb r1, [r0, #9] - ldr r1, _08050510 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] -_080504DA: - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080504E8: .4byte gUnknown_2023FD6 -_080504EC: .4byte gUnknown_2023E94 -_080504F0: .4byte gUnknown_2023F32 -_080504F4: .4byte gUnknown_2023EB0 -_080504F8: .4byte gUnknown_2023D28 -_080504FC: .4byte gUnknown_2023E8E -_08050500: .4byte gUnknown_2024118 -_08050504: .4byte gUnknown_2023FE0 -_08050508: .4byte gUnknown_2023F60 -_0805050C: .4byte gUnknown_2023EAF -_08050510: .4byte gUnknown_2023EB8 - thumb_func_end atk86_stockpiletobasedamage - - thumb_func_start atk87_stockpiletohpheal -atk87_stockpiletohpheal: @ 0x08050514 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r7, _08050554 - ldr r1, [r7] - ldrb r2, [r1, #1] - ldrb r0, [r1, #2] - lsls r0, r0, #8 - orrs r2, r0 - ldrb r0, [r1, #3] - lsls r0, r0, #0x10 - orrs r2, r0 - ldrb r0, [r1, #4] - lsls r0, r0, #0x18 - orrs r2, r0 - ldr r0, _08050558 - mov r8, r0 - ldr r6, _0805055C - ldrb r3, [r6] - lsls r0, r3, #3 - subs r0, r0, r3 - lsls r0, r0, #2 - mov r1, r8 - adds r4, r0, r1 - ldrb r1, [r4, #9] - cmp r1, #0 - bne _08050564 - str r2, [r7] - ldr r0, _08050560 - strb r1, [r0, #5] - b _080505E0 - .align 2, 0 -_08050554: .4byte gUnknown_2023EB8 -_08050558: .4byte gUnknown_2023F60 -_0805055C: .4byte gUnknown_2023EAF -_08050560: .4byte gUnknown_2023FD6 -_08050564: - ldr r1, _08050588 - movs r0, #0x58 - muls r0, r3, r0 - adds r1, r0, r1 - ldrh r0, [r1, #0x2c] - ldrh r3, [r1, #0x28] - cmp r0, r3 - bne _08050594 - movs r0, #0 - strb r0, [r4, #9] - str r2, [r7] - ldr r1, _0805058C - ldrb r0, [r6] - strb r0, [r1] - ldr r1, _08050590 - movs r0, #1 - strb r0, [r1, #5] - b _080505E0 - .align 2, 0 -_08050588: .4byte gUnknown_2023D28 -_0805058C: .4byte gUnknown_2023EB0 -_08050590: .4byte gUnknown_2023FD6 -_08050594: - ldr r5, _080505EC - ldrh r0, [r1, #0x2c] - ldrb r1, [r4, #9] - movs r2, #3 - subs r2, r2, r1 - movs r4, #1 - adds r1, r4, #0 - lsls r1, r2 - bl __divsi3 - str r0, [r5] - cmp r0, #0 - bne _080505B0 - str r4, [r5] -_080505B0: - ldr r0, [r5] - rsbs r0, r0, #0 - str r0, [r5] - ldr r3, _080505F0 - ldrb r1, [r6] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - ldrb r0, [r0, #9] - movs r2, #0 - strb r0, [r3, #0x18] - ldrb r1, [r6] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - strb r2, [r0, #9] - ldr r0, [r7] - adds r0, #5 - str r0, [r7] - ldr r1, _080505F4 - ldrb r0, [r6] - strb r0, [r1] -_080505E0: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080505EC: .4byte gUnknown_2023E94 -_080505F0: .4byte gUnknown_2024118 -_080505F4: .4byte gUnknown_2023EB0 - thumb_func_end atk87_stockpiletohpheal - - thumb_func_start atk88_negativedamage -atk88_negativedamage: @ 0x080505F8 - push {lr} - ldr r2, _08050620 - ldr r0, _08050624 - ldr r0, [r0] - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - rsbs r0, r0, #0 - str r0, [r2] - cmp r0, #0 - bne _08050614 - movs r0, #1 - rsbs r0, r0, #0 - str r0, [r2] -_08050614: - ldr r1, _08050628 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08050620: .4byte gUnknown_2023E94 -_08050624: .4byte gUnknown_2023E98 -_08050628: .4byte gUnknown_2023EB8 - thumb_func_end atk88_negativedamage - - thumb_func_start ChangeStatBuffs -ChangeStatBuffs: @ 0x0805062C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov r8, r3 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - movs r0, #0 - mov sb, r0 - mov sl, r0 - movs r0, #0x40 - ands r0, r5 - cmp r0, #0 - beq _08050660 - ldr r0, _08050658 - ldr r1, _0805065C - b _08050664 - .align 2, 0 -_08050658: .4byte gUnknown_2023D08 -_0805065C: .4byte gUnknown_2023EAF -_08050660: - ldr r0, _08050704 - ldr r1, _08050708 -_08050664: - ldrb r1, [r1] - strb r1, [r0] - movs r0, #0xbf - ands r5, r0 - movs r0, #0x80 - ands r0, r5 - cmp r0, #0 - beq _0805067E - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 -_0805067E: - movs r0, #0x7f - ands r5, r0 - movs r0, #0x20 - ands r0, r5 - cmp r0, #0 - beq _08050694 - mov r0, sl - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 -_08050694: - movs r0, #0xdf - ands r5, r0 - ldr r1, _0805070C - movs r4, #0 - movs r2, #0xfd - strb r2, [r1] - movs r0, #5 - strb r0, [r1, #1] - strb r7, [r1, #2] - movs r3, #1 - rsbs r3, r3, #0 - mov ip, r3 - movs r0, #0xff - strb r0, [r1, #3] - lsls r0, r6, #0x18 - cmp r0, #0 - blt _080506B8 - b _0805099C -_080506B8: - ldr r4, _08050710 - ldr r1, _08050704 - ldrb r0, [r1] - bl sub_080A630C - movs r1, #1 - ands r1, r0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r0, [r0, #4] - cmp r0, #0 - beq _08050758 - mov r2, sb - cmp r2, #0 - bne _08050758 - ldr r0, _08050714 - ldrh r0, [r0] - cmp r0, #0xae - beq _08050788 - cmp r5, #1 - bne _08050778 - ldr r4, _08050718 - ldr r3, _08050704 - ldrb r0, [r3] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r0, [r1] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _08050720 - ldr r0, _0805071C - mov r4, r8 - str r4, [r0] - b _08050778 - .align 2, 0 -_08050704: .4byte gUnknown_2023D08 -_08050708: .4byte gUnknown_2023EB0 -_0805070C: .4byte gUnknown_2022C0C -_08050710: .4byte gUnknown_2023F38 -_08050714: .4byte gUnknown_2023E8E -_08050718: .4byte gUnknown_2024020 -_0805071C: .4byte gUnknown_2023EB8 -_08050720: - mov r0, r8 - bl BattleScriptPush - ldr r1, _08050748 - ldr r6, _0805074C - ldrb r0, [r6] - strb r0, [r1, #0x17] - ldr r1, _08050750 - ldr r0, _08050754 - str r0, [r1] - ldrb r1, [r6] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r1, [r0] - movs r2, #1 - orrs r1, r2 - strb r1, [r0] - b _08050778 - .align 2, 0 -_08050748: .4byte gUnknown_2024118 -_0805074C: .4byte gUnknown_2023D08 -_08050750: .4byte gUnknown_2023EB8 -_08050754: .4byte gUnknown_828938B -_08050758: - ldr r0, _0805077C - ldrh r0, [r0] - cmp r0, #0xae - beq _08050788 - mov r0, sl - cmp r0, #1 - beq _08050788 - movs r0, #0 - bl JumpIfMoveAffectedByProtect - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08050788 - ldr r1, _08050780 - ldr r0, _08050784 - str r0, [r1] -_08050778: - movs r0, #1 - b _08050A90 - .align 2, 0 -_0805077C: .4byte gUnknown_2023E8E -_08050780: .4byte gUnknown_2023EB8 -_08050784: .4byte gUnknown_82884A4 -_08050788: - ldr r2, _080507D0 - ldr r1, _080507D4 - ldrb r3, [r1] - movs r4, #0x58 - adds r0, r3, #0 - muls r0, r4, r0 - adds r0, r0, r2 - adds r0, #0x20 - ldrb r0, [r0] - mov sl, r2 - cmp r0, #0x1d - beq _080507A4 - cmp r0, #0x49 - bne _0805083C -_080507A4: - mov r0, sb - cmp r0, #0 - bne _0805083C - ldr r0, _080507D8 - ldrh r0, [r0] - cmp r0, #0xae - beq _0805083C - cmp r5, #1 - bne _08050778 - ldr r4, _080507DC - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r0, [r0] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _080507E4 - ldr r0, _080507E0 - mov r1, r8 - str r1, [r0] - b _08050778 - .align 2, 0 -_080507D0: .4byte gUnknown_2023D28 -_080507D4: .4byte gUnknown_2023D08 -_080507D8: .4byte gUnknown_2023E8E -_080507DC: .4byte gUnknown_2024020 -_080507E0: .4byte gUnknown_2023EB8 -_080507E4: - mov r0, r8 - bl BattleScriptPush - ldr r1, _08050828 - ldr r2, _0805082C - ldrb r0, [r2] - strb r0, [r1, #0x17] - ldr r1, _08050830 - ldr r0, _08050834 - str r0, [r1] - ldr r1, _08050838 - ldrb r0, [r2] - movs r3, #0x58 - muls r0, r3, r0 - add r0, sl - adds r0, #0x20 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r2] - ldrb r1, [r1] - bl RecordAbilityBattle - ldr r6, _0805082C - ldrb r1, [r6] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r1, [r0] - movs r2, #1 - orrs r1, r2 - strb r1, [r0] - b _08050778 - .align 2, 0 -_08050828: .4byte gUnknown_2024118 -_0805082C: .4byte gUnknown_2023D08 -_08050830: .4byte gUnknown_2023EB8 -_08050834: .4byte gUnknown_8289B4F -_08050838: .4byte gUnknown_2023EAE -_0805083C: - ldr r1, _08050888 - ldrb r0, [r1] - movs r4, #0x58 - muls r0, r4, r0 - add r0, sl - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x33 - bne _0805089C - mov r2, sb - cmp r2, #0 - bne _0805089C - cmp r7, #6 - bne _0805089C - cmp r5, #1 - bne _08050778 - mov r0, r8 - bl BattleScriptPush - ldr r1, _0805088C - ldr r3, _08050888 - ldrb r0, [r3] - strb r0, [r1, #0x17] - ldr r1, _08050890 - ldr r0, _08050894 - str r0, [r1] - ldr r1, _08050898 - ldrb r0, [r3] - muls r0, r4, r0 - add r0, sl - adds r0, #0x20 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r3] - ldrb r1, [r1] - bl RecordAbilityBattle - b _08050778 - .align 2, 0 -_08050888: .4byte gUnknown_2023D08 -_0805088C: .4byte gUnknown_2024118 -_08050890: .4byte gUnknown_2023EB8 -_08050894: .4byte gUnknown_8289BB7 -_08050898: .4byte gUnknown_2023EAE -_0805089C: - ldr r4, _080508EC - ldrb r0, [r4] - movs r4, #0x58 - muls r0, r4, r0 - add r0, sl - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x34 - bne _08050900 - mov r0, sb - cmp r0, #0 - bne _08050900 - cmp r7, #1 - bne _08050900 - cmp r5, #1 - beq _080508BE - b _08050778 -_080508BE: - mov r0, r8 - bl BattleScriptPush - ldr r1, _080508F0 - ldr r2, _080508EC - ldrb r0, [r2] - strb r0, [r1, #0x17] - ldr r1, _080508F4 - ldr r0, _080508F8 - str r0, [r1] - ldr r1, _080508FC - ldrb r0, [r2] - muls r0, r4, r0 - add r0, sl - adds r0, #0x20 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r2] - ldrb r1, [r1] - bl RecordAbilityBattle - b _08050778 - .align 2, 0 -_080508EC: .4byte gUnknown_2023D08 -_080508F0: .4byte gUnknown_2024118 -_080508F4: .4byte gUnknown_2023EB8 -_080508F8: .4byte gUnknown_8289BB7 -_080508FC: .4byte gUnknown_2023EAE -_08050900: - ldr r3, _0805098C - ldrb r1, [r3] - movs r0, #0x58 - muls r0, r1, r0 - add r0, sl - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x13 - bne _08050918 - cmp r5, #0 - bne _08050918 - b _08050778 -_08050918: - lsls r0, r6, #0x18 - asrs r0, r0, #0x1c - movs r1, #7 - ands r0, r1 - rsbs r0, r0, #0 - lsls r0, r0, #0x18 - ldr r3, _08050990 - movs r4, #0 - movs r1, #0xfd - strb r1, [r3] - movs r2, #1 - lsrs r6, r0, #0x18 - asrs r0, r0, #0x18 - subs r1, #0xff - cmp r0, r1 - bne _08050942 - strb r4, [r3, #1] - movs r0, #0xd3 - strb r0, [r3, #2] - strb r4, [r3, #3] - movs r2, #4 -_08050942: - adds r0, r2, r3 - strb r4, [r0] - adds r2, #1 - adds r1, r2, r3 - movs r0, #0xd4 - strb r0, [r1] - adds r2, #1 - adds r0, r2, r3 - strb r4, [r0] - adds r2, #1 - adds r1, r2, r3 - movs r0, #0xff - strb r0, [r1] - ldr r4, _0805098C - ldrb r2, [r4] - movs r0, #0x58 - muls r0, r2, r0 - adds r0, r7, r0 - mov r1, sl - adds r1, #0x18 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _080509F2 - movs r1, #0 - ldr r0, _08050994 - ldrb r0, [r0] - ldr r3, _08050998 - mov r8, r3 - cmp r0, r2 - bne _08050986 - movs r1, #1 -_08050986: - mov r4, r8 - strb r1, [r4, #5] - b _08050A20 - .align 2, 0 -_0805098C: .4byte gUnknown_2023D08 -_08050990: .4byte gUnknown_2022C1C -_08050994: .4byte gUnknown_2023EB0 -_08050998: .4byte gUnknown_2023FD6 -_0805099C: - asrs r6, r0, #0x1c - movs r0, #7 - ands r6, r0 - ldr r3, _080509FC - strb r2, [r3] - movs r2, #1 - cmp r6, #2 - bne _080509B6 - strb r4, [r3, #1] - movs r0, #0xd1 - strb r0, [r3, #2] - strb r4, [r3, #3] - movs r2, #4 -_080509B6: - adds r0, r2, r3 - strb r4, [r0] - adds r2, #1 - adds r1, r2, r3 - movs r0, #0xd2 - strb r0, [r1] - adds r2, #1 - adds r0, r2, r3 - strb r4, [r0] - adds r2, #1 - adds r1, r2, r3 - ldrb r0, [r1] - mov r2, ip - orrs r0, r2 - strb r0, [r1] - ldr r2, _08050A00 - ldr r4, _08050A04 - ldrb r3, [r4] - movs r0, #0x58 - muls r0, r3, r0 - adds r0, r7, r0 - adds r1, r2, #0 - adds r1, #0x18 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - mov sl, r2 - cmp r0, #0xc - bne _08050A0C -_080509F2: - ldr r1, _08050A08 - movs r0, #2 - strb r0, [r1, #5] - mov r8, r1 - b _08050A20 - .align 2, 0 -_080509FC: .4byte gUnknown_2022C1C -_08050A00: .4byte gUnknown_2023D28 -_08050A04: .4byte gUnknown_2023D08 -_08050A08: .4byte gUnknown_2023FD6 -_08050A0C: - movs r1, #0 - ldr r0, _08050AA0 - ldrb r0, [r0] - ldr r2, _08050AA4 - mov r8, r2 - cmp r0, r3 - bne _08050A1C - movs r1, #1 -_08050A1C: - mov r3, r8 - strb r1, [r3, #5] -_08050A20: - ldr r2, _08050AA8 - ldrb r0, [r2] - movs r4, #0x58 - adds r1, r0, #0 - muls r1, r4, r1 - adds r1, r7, r1 - mov r3, sl - adds r3, #0x18 - adds r1, r1, r3 - lsls r0, r6, #0x18 - asrs r0, r0, #0x18 - ldrb r6, [r1] - adds r0, r0, r6 - strb r0, [r1] - ldrb r0, [r2] - muls r0, r4, r0 - adds r0, r7, r0 - adds r1, r0, r3 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bge _08050A50 - movs r0, #0 - strb r0, [r1] -_08050A50: - ldr r1, _08050AA8 - ldrb r0, [r1] - muls r0, r4, r0 - adds r0, r7, r0 - adds r1, r0, r3 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0xc - ble _08050A66 - movs r0, #0xc - strb r0, [r1] -_08050A66: - mov r2, r8 - ldrb r0, [r2, #5] - cmp r0, #2 - bne _08050A8E - movs r3, #1 - ands r3, r5 - cmp r3, #0 - beq _08050A80 - ldr r0, _08050AAC - ldrb r1, [r0] - movs r2, #1 - orrs r1, r2 - strb r1, [r0] -_08050A80: - mov r4, r8 - ldrb r0, [r4, #5] - cmp r0, #2 - bne _08050A8E - cmp r3, #0 - bne _08050A8E - b _08050778 -_08050A8E: - movs r0, #0 -_08050A90: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08050AA0: .4byte gUnknown_2023EB0 -_08050AA4: .4byte gUnknown_2023FD6 -_08050AA8: .4byte gUnknown_2023D08 -_08050AAC: .4byte gUnknown_2023F20 - thumb_func_end ChangeStatBuffs - - thumb_func_start atk89_statbuffchange -atk89_statbuffchange: @ 0x08050AB0 - push {r4, r5, lr} - ldr r5, _08050AF4 - ldr r2, [r5] - ldrb r3, [r2, #2] - ldrb r0, [r2, #3] - lsls r0, r0, #8 - orrs r3, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x10 - orrs r3, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x18 - orrs r3, r0 - ldr r0, _08050AF8 - ldrb r4, [r0, #0x1a] - movs r0, #0xf0 - ands r0, r4 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #0xf - ands r1, r4 - ldrb r2, [r2, #1] - bl ChangeStatBuffs - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08050AEC - ldr r0, [r5] - adds r0, #6 - str r0, [r5] -_08050AEC: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08050AF4: .4byte gUnknown_2023EB8 -_08050AF8: .4byte gUnknown_2024118 - thumb_func_end atk89_statbuffchange - - thumb_func_start atk8A_normalisebuffs -atk8A_normalisebuffs: @ 0x08050AFC - push {r4, r5, r6, r7, lr} - movs r2, #0 - ldr r0, _08050B44 - ldrb r1, [r0] - ldr r0, _08050B48 - mov ip, r0 - cmp r2, r1 - bge _08050B34 - ldr r0, _08050B4C - movs r4, #6 - adds r5, r1, #0 - movs r7, #0x58 - adds r6, r0, #0 - adds r6, #0x18 -_08050B18: - adds r3, r2, #1 - movs r1, #7 - adds r0, r2, #0 - muls r0, r7, r0 - adds r0, r0, r6 - adds r0, #7 -_08050B24: - strb r4, [r0] - subs r0, #1 - subs r1, #1 - cmp r1, #0 - bge _08050B24 - adds r2, r3, #0 - cmp r2, r5 - blt _08050B18 -_08050B34: - mov r1, ip - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08050B44: .4byte gUnknown_2023D10 -_08050B48: .4byte gUnknown_2023EB8 -_08050B4C: .4byte gUnknown_2023D28 - thumb_func_end atk8A_normalisebuffs - - thumb_func_start atk8B_setbide -atk8B_setbide: @ 0x08050B50 - push {r4, r5, lr} - ldr r4, _08050BA8 - ldr r3, _08050BAC - ldrb r0, [r3] - movs r5, #0x58 - adds r2, r0, #0 - muls r2, r5, r2 - adds r4, #0x50 - adds r2, r2, r4 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #5 - orrs r0, r1 - str r0, [r2] - ldr r1, _08050BB0 - ldrb r0, [r3] - lsls r0, r0, #1 - adds r0, r0, r1 - ldr r1, _08050BB4 - ldrh r1, [r1] - movs r2, #0 - strh r1, [r0] - ldr r1, _08050BB8 - ldrb r0, [r3] - lsls r0, r0, #2 - adds r0, r0, r1 - str r2, [r0] - ldrb r0, [r3] - adds r1, r0, #0 - muls r1, r5, r1 - adds r1, r1, r4 - ldr r0, [r1] - movs r2, #0x80 - lsls r2, r2, #2 - orrs r0, r2 - str r0, [r1] - ldr r1, _08050BBC - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08050BA8: .4byte gUnknown_2023D28 -_08050BAC: .4byte gUnknown_2023EAF -_08050BB0: .4byte gUnknown_2023F0C -_08050BB4: .4byte gUnknown_2023E8E -_08050BB8: .4byte gUnknown_2023E9C -_08050BBC: .4byte gUnknown_2023EB8 - thumb_func_end atk8B_setbide - - thumb_func_start atk8C_confuseifrepeatingattackends -atk8C_confuseifrepeatingattackends: @ 0x08050BC0 - push {lr} - ldr r1, _08050BF0 - ldr r0, _08050BF4 - ldrb r2, [r0] - movs r0, #0x58 - muls r0, r2, r0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0xc0 - lsls r1, r1, #4 - ands r0, r1 - cmp r0, #0 - bne _08050BE2 - ldr r1, _08050BF8 - movs r0, #0x75 - strb r0, [r1, #3] -_08050BE2: - ldr r1, _08050BFC - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08050BF0: .4byte gUnknown_2023D28 -_08050BF4: .4byte gUnknown_2023EAF -_08050BF8: .4byte gUnknown_2023FD6 -_08050BFC: .4byte gUnknown_2023EB8 - thumb_func_end atk8C_confuseifrepeatingattackends - - thumb_func_start atk8D_setmultihitcounter -atk8D_setmultihitcounter: @ 0x08050C00 - push {r4, r5, lr} - ldr r0, _08050C14 - ldr r0, [r0] - ldrb r1, [r0, #1] - cmp r1, #0 - beq _08050C1C - ldr r0, _08050C18 - strb r1, [r0] - b _08050C36 - .align 2, 0 -_08050C14: .4byte gUnknown_2023EB8 -_08050C18: .4byte gUnknown_2023EB6 -_08050C1C: - ldr r4, _08050C44 - bl Random - movs r5, #3 - ands r0, r5 - strb r0, [r4] - cmp r0, #1 - bls _08050C32 - bl Random - ands r0, r5 -_08050C32: - adds r0, #2 - strb r0, [r4] -_08050C36: - ldr r1, _08050C48 - ldr r0, [r1] - adds r0, #2 - str r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08050C44: .4byte gUnknown_2023EB6 -_08050C48: .4byte gUnknown_2023EB8 - thumb_func_end atk8D_setmultihitcounter - - thumb_func_start atk8E_initmultihitstring -atk8E_initmultihitstring: @ 0x08050C4C - ldr r1, _08050C6C - movs r2, #0 - movs r0, #0xfd - strb r0, [r1, #8] - movs r0, #1 - strb r0, [r1, #9] - strb r0, [r1, #0xa] - strb r0, [r1, #0xb] - strb r2, [r1, #0xc] - movs r0, #0xff - strb r0, [r1, #0xd] - ldr r1, _08050C70 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - bx lr - .align 2, 0 -_08050C6C: .4byte gUnknown_2024118 -_08050C70: .4byte gUnknown_2023EB8 - thumb_func_end atk8E_initmultihitstring - - thumb_func_start TryDoForceSwitchOut -TryDoForceSwitchOut: @ 0x08050C74 - push {r4, r5, r6, r7, lr} - ldr r6, _08050CA8 - ldr r7, _08050CAC - ldrb r0, [r7] - movs r5, #0x58 - adds r1, r0, #0 - muls r1, r5, r1 - adds r1, r1, r6 - adds r1, #0x2a - ldr r4, _08050CB0 - ldrb r3, [r4] - adds r0, r3, #0 - muls r0, r5, r0 - adds r0, r0, r6 - adds r0, #0x2a - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - blo _08050CBC - ldr r0, _08050CB4 - ldr r1, [r0] - adds r1, r3, r1 - adds r1, #0x58 - ldr r2, _08050CB8 - lsls r0, r3, #1 - b _08050D18 - .align 2, 0 -_08050CA8: .4byte gUnknown_2023D28 -_08050CAC: .4byte gUnknown_2023EAF -_08050CB0: .4byte gUnknown_2023EB0 -_08050CB4: .4byte gUnknown_2024140 -_08050CB8: .4byte gUnknown_2023D12 -_08050CBC: - bl Random - movs r3, #0xff - ands r3, r0 - ldrb r0, [r7] - muls r0, r5, r0 - adds r0, r0, r6 - adds r0, #0x2a - ldrb r2, [r0] - ldrb r4, [r4] - adds r0, r4, #0 - muls r0, r5, r0 - adds r0, r0, r6 - adds r0, #0x2a - ldrb r1, [r0] - adds r2, r2, r1 - adds r0, r3, #0 - muls r0, r2, r0 - asrs r0, r0, #8 - adds r0, #1 - lsrs r1, r1, #2 - cmp r0, r1 - bhi _08050D0C - ldr r3, _08050D08 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - movs r0, #0 - b _08050D26 - .align 2, 0 -_08050D08: .4byte gUnknown_2023EB8 -_08050D0C: - ldr r0, _08050D2C - ldr r1, [r0] - adds r1, r4, r1 - adds r1, #0x58 - ldr r2, _08050D30 - lsls r0, r4, #1 -_08050D18: - adds r0, r0, r2 - ldrh r0, [r0] - strb r0, [r1] - ldr r1, _08050D34 - ldr r0, _08050D38 - str r0, [r1] - movs r0, #1 -_08050D26: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08050D2C: .4byte gUnknown_2024140 -_08050D30: .4byte gUnknown_2023D12 -_08050D34: .4byte gUnknown_2023EB8 -_08050D38: .4byte gUnknown_8289360 - thumb_func_end TryDoForceSwitchOut - - thumb_func_start atk8F_forcerandomswitch -atk8F_forcerandomswitch: @ 0x08050D3C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - movs r0, #0 - str r0, [sp, #4] - ldr r5, _08050DA8 - ldr r0, [r5] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - bne _08050D5A - b _08051020 -_08050D5A: - ldr r4, _08050DAC - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - ldr r1, _08050DB0 - str r1, [sp] - cmp r0, #0 - bne _08050D70 - ldr r0, _08050DB4 - str r0, [sp] -_08050D70: - ldr r2, [r5] - movs r1, #0x81 - lsls r1, r1, #1 - adds r0, r2, #0 - ands r0, r1 - cmp r0, r1 - beq _08050D92 - ldr r1, _08050DB8 - adds r0, r2, #0 - ands r0, r1 - cmp r0, r1 - beq _08050D92 - movs r0, #0x80 - lsls r0, r0, #0xf - ands r0, r2 - cmp r0, #0 - beq _08050DD8 -_08050D92: - ldr r2, _08050DAC - ldrb r1, [r2] - movs r0, #2 - ands r0, r1 - adds r1, r2, #0 - cmp r0, #0 - beq _08050DBC - movs r0, #3 - mov sb, r0 - movs r0, #6 - b _08050DC2 - .align 2, 0 -_08050DA8: .4byte gUnknown_2022C90 -_08050DAC: .4byte gUnknown_2023EB0 -_08050DB0: .4byte gUnknown_20243E8 -_08050DB4: .4byte gUnknown_2024190 -_08050DB8: .4byte gUnknown_2000100 -_08050DBC: - movs r0, #0 - mov sb, r0 - movs r0, #3 -_08050DC2: - mov r8, r0 - movs r0, #3 - mov sl, r0 - movs r0, #1 - str r0, [sp, #8] - ldr r2, _08050DD4 - ldrb r1, [r1] - b _08050E9E - .align 2, 0 -_08050DD4: .4byte gUnknown_2023D12 -_08050DD8: - movs r0, #0x42 - ands r0, r2 - cmp r0, #0x42 - beq _08050DEA - ldr r1, _08050E08 - adds r0, r2, #0 - ands r0, r1 - cmp r0, r1 - bne _08050E2C -_08050DEA: - ldrb r0, [r4] - bl GetBattlerMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetLinkTrainerFlankId - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bne _08050E0C - movs r1, #3 - mov sb, r1 - movs r0, #6 - b _08050E12 - .align 2, 0 -_08050E08: .4byte gUnknown_2000040 -_08050E0C: - movs r1, #0 - mov sb, r1 - movs r0, #3 -_08050E12: - mov r8, r0 - movs r1, #3 - mov sl, r1 - movs r0, #1 - str r0, [sp, #8] - ldr r2, _08050E24 - ldr r0, _08050E28 - ldrb r1, [r0] - b _08050E9E - .align 2, 0 -_08050E24: .4byte gUnknown_2023D12 -_08050E28: .4byte gUnknown_2023EB0 -_08050E2C: - movs r0, #0x80 - lsls r0, r0, #8 - ands r0, r2 - cmp r0, #0 - beq _08050E84 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08050E50 - movs r1, #0 - mov sb, r1 - movs r0, #6 - mov r8, r0 - mov sl, r0 - movs r1, #2 - b _08050E70 -_08050E50: - ldrb r1, [r4] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08050E62 - movs r0, #3 - mov sb, r0 - movs r1, #6 - b _08050E68 -_08050E62: - movs r0, #0 - mov sb, r0 - movs r1, #3 -_08050E68: - mov r8, r1 - movs r0, #3 - mov sl, r0 - movs r1, #1 -_08050E70: - str r1, [sp, #8] - ldr r2, _08050E7C - ldr r0, _08050E80 - ldrb r1, [r0] - b _08050E9E - .align 2, 0 -_08050E7C: .4byte gUnknown_2023D12 -_08050E80: .4byte gUnknown_2023EB0 -_08050E84: - movs r0, #1 - ands r2, r0 - cmp r2, #0 - beq _08050EB4 - movs r0, #0 - mov sb, r0 - movs r1, #6 - mov r8, r1 - mov sl, r1 - movs r0, #2 - str r0, [sp, #8] - ldr r2, _08050EB0 - ldrb r1, [r4] -_08050E9E: - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r7, [r0] - movs r0, #2 - eors r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r5, [r1] - b _08050ECE - .align 2, 0 -_08050EB0: .4byte gUnknown_2023D12 -_08050EB4: - movs r1, #0 - mov sb, r1 - movs r0, #6 - mov r8, r0 - mov sl, r0 - movs r1, #1 - str r1, [sp, #8] - ldr r1, _08050F30 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r5, [r0] - adds r7, r5, #0 -_08050ECE: - mov r6, sb - cmp r6, r8 - bge _08050F0C -_08050ED4: - movs r0, #0x64 - muls r0, r6, r0 - ldr r1, [sp] - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _08050F06 - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - bne _08050F06 - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _08050F06 - ldr r0, [sp, #4] - adds r0, #1 - str r0, [sp, #4] -_08050F06: - adds r6, #1 - cmp r6, r8 - blt _08050ED4 -_08050F0C: - ldr r1, [sp, #4] - ldr r0, [sp, #8] - cmp r1, r0 - bgt _08050F38 - ldr r3, _08050F34 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08051024 - .align 2, 0 -_08050F30: .4byte gUnknown_2023D12 -_08050F34: .4byte gUnknown_2023EB8 -_08050F38: - bl TryDoForceSwitchOut - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08050F88 -_08050F42: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r1, sl - bl __modsi3 - adds r6, r0, #0 - add r6, sb - cmp r6, r7 - beq _08050F42 - cmp r6, r5 - beq _08050F42 - movs r0, #0x64 - muls r0, r6, r0 - ldr r1, [sp] - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _08050F42 - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #1 - beq _08050F42 - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _08050F42 -_08050F88: - ldr r4, _0805100C - ldrb r0, [r4] - ldr r1, _08051010 - ldr r1, [r1] - adds r0, r0, r1 - adds r0, #0x5c - strb r6, [r0] - bl IsMultiBattle - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08050FA6 - ldrb r0, [r4] - bl sub_0803B9E4 -_08050FA6: - ldr r0, _08051014 - ldr r2, [r0] - movs r1, #0x81 - lsls r1, r1, #1 - adds r0, r2, #0 - ands r0, r1 - cmp r0, r1 - beq _08050FD0 - movs r0, #0x42 - ands r0, r2 - cmp r0, #0x42 - beq _08050FD0 - ldr r1, _08051018 - adds r0, r2, #0 - ands r0, r1 - cmp r0, r1 - beq _08050FD0 - ldr r0, _0805101C - ands r2, r0 - cmp r2, r0 - bne _08050FEE -_08050FD0: - ldr r5, _0805100C - ldrb r0, [r5] - lsls r4, r6, #0x18 - lsrs r4, r4, #0x18 - adds r1, r4, #0 - movs r2, #0 - bl sub_081B8B20 - ldrb r1, [r5] - movs r0, #2 - eors r0, r1 - adds r1, r4, #0 - movs r2, #1 - bl sub_081B8B20 -_08050FEE: - ldr r0, _08051014 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - beq _08051024 - ldr r0, _0805100C - ldrb r0, [r0] - lsls r1, r6, #0x18 - lsrs r1, r1, #0x18 - bl sub_08056DEC - b _08051024 - .align 2, 0 -_0805100C: .4byte gUnknown_2023EB0 -_08051010: .4byte gUnknown_2024140 -_08051014: .4byte gUnknown_2022C90 -_08051018: .4byte gUnknown_2000100 -_0805101C: .4byte gUnknown_2000040 -_08051020: - bl TryDoForceSwitchOut -_08051024: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end atk8F_forcerandomswitch - - thumb_func_start atk90_tryconversiontypechange -atk90_tryconversiontypechange: @ 0x08051034 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - movs r6, #0 - ldr r2, _080510C8 - ldr r3, _080510CC - ldrb r1, [r3] - movs r0, #0x58 - muls r0, r1, r0 - adds r1, r2, #0 - adds r1, #0xc - adds r0, r0, r1 - ldrh r0, [r0] - mov r8, r2 - cmp r0, #0 - beq _08051076 - movs r5, #0x58 - adds r2, r1, #0 -_0805105C: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #3 - bhi _08051076 - lsls r1, r6, #1 - ldrb r0, [r3] - muls r0, r5, r0 - adds r1, r1, r0 - adds r1, r1, r2 - ldrh r0, [r1] - cmp r0, #0 - bne _0805105C -_08051076: - movs r3, #0 - cmp r3, r6 - bhs _080510F8 - ldr r0, _080510D0 - mov sl, r0 - ldr r5, _080510C8 - mov ip, r5 - ldr r7, _080510CC - ldrb r0, [r7] - movs r4, #0x58 - adds r5, r0, #0 - muls r5, r4, r5 - movs r0, #0xc - add r0, ip - mov sb, r0 -_08051094: - lsls r0, r3, #1 - adds r0, r0, r5 - add r0, sb - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sl - ldrb r2, [r0, #2] - cmp r2, #9 - bne _080510D6 - mov r0, r8 - adds r1, r5, r0 - adds r0, r1, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #7 - beq _080510C2 - adds r0, r1, #0 - adds r0, #0x22 - ldrb r0, [r0] - cmp r0, #7 - bne _080510D4 -_080510C2: - movs r2, #7 - b _080510D6 - .align 2, 0 -_080510C8: .4byte gUnknown_2023D28 -_080510CC: .4byte gUnknown_2023EAF -_080510D0: .4byte gUnknown_82ED220 -_080510D4: - movs r2, #0 -_080510D6: - ldrb r0, [r7] - muls r0, r4, r0 - add r0, ip - adds r1, r0, #0 - adds r1, #0x21 - ldrb r1, [r1] - cmp r2, r1 - beq _080510EE - adds r0, #0x22 - ldrb r0, [r0] - cmp r2, r0 - bne _080510F8 -_080510EE: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, r6 - blo _08051094 -_080510F8: - cmp r3, r6 - bne _0805111C - ldr r3, _08051118 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _080511C0 - .align 2, 0 -_08051118: .4byte gUnknown_2023EB8 -_0805111C: - movs r7, #3 - ldr r5, _08051174 - mov sb, r5 -_08051122: - bl Random - adds r3, r0, #0 - ands r3, r7 - cmp r3, r6 - bhs _08051122 - ldr r4, _08051178 - lsls r1, r3, #1 - ldr r3, _0805117C - ldrb r2, [r3] - movs r0, #0x58 - adds r5, r2, #0 - muls r5, r0, r5 - adds r1, r1, r5 - adds r0, r4, #0 - adds r0, #0xc - adds r1, r1, r0 - ldrh r1, [r1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sb - ldrb r2, [r0, #2] - mov r8, r4 - adds r4, r3, #0 - cmp r2, #9 - bne _08051182 - mov r0, r8 - adds r2, r5, r0 - adds r0, r2, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #7 - beq _08051170 - adds r0, r2, #0 - adds r0, #0x22 - ldrb r0, [r0] - cmp r0, #7 - bne _08051180 -_08051170: - movs r2, #7 - b _08051182 - .align 2, 0 -_08051174: .4byte gUnknown_82ED220 -_08051178: .4byte gUnknown_2023D28 -_0805117C: .4byte gUnknown_2023EAF -_08051180: - movs r2, #0 -_08051182: - ldrb r0, [r4] - movs r3, #0x58 - muls r0, r3, r0 - add r0, r8 - adds r1, r0, #0 - adds r1, #0x21 - ldrb r5, [r1] - cmp r2, r5 - beq _08051122 - adds r0, #0x22 - ldrb r0, [r0] - cmp r2, r0 - beq _08051122 - strb r2, [r1] - ldrb r0, [r4] - muls r0, r3, r0 - add r0, r8 - adds r0, #0x22 - strb r2, [r0] - ldr r1, _080511D0 - movs r0, #0xfd - strb r0, [r1] - movs r0, #3 - strb r0, [r1, #1] - strb r2, [r1, #2] - movs r0, #0xff - strb r0, [r1, #3] - ldr r1, _080511D4 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] -_080511C0: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080511D0: .4byte gUnknown_2022C0C -_080511D4: .4byte gUnknown_2023EB8 - thumb_func_end atk90_tryconversiontypechange - - thumb_func_start atk91_givepaydaymoney -atk91_givepaydaymoney: @ 0x080511D8 - push {r4, lr} - ldr r0, _08051240 - ldr r0, [r0] - ldr r1, _08051244 - ands r0, r1 - cmp r0, #0 - bne _08051260 - ldr r1, _08051248 - ldrh r0, [r1] - cmp r0, #0 - beq _08051260 - adds r1, r0, #0 - ldr r0, _0805124C - ldr r0, [r0] - adds r0, #0x4a - ldrb r0, [r0] - adds r4, r1, #0 - muls r4, r0, r4 - ldr r0, _08051250 - ldr r0, [r0] - movs r1, #0x92 - lsls r1, r1, #3 - adds r0, r0, r1 - adds r1, r4, #0 - bl AddMoney - ldr r1, _08051254 - movs r0, #0xfd - strb r0, [r1] - movs r0, #1 - strb r0, [r1, #1] - movs r0, #2 - strb r0, [r1, #2] - movs r0, #5 - strb r0, [r1, #3] - strb r4, [r1, #4] - movs r0, #0xff - lsls r0, r0, #8 - ands r4, r0 - lsrs r4, r4, #8 - strb r4, [r1, #5] - movs r0, #0xff - strb r0, [r1, #6] - ldr r4, _08051258 - ldr r0, [r4] - adds r0, #1 - bl BattleScriptPush - ldr r0, _0805125C - str r0, [r4] - b _08051268 - .align 2, 0 -_08051240: .4byte gUnknown_2022C90 -_08051244: .4byte gUnknown_2000002 -_08051248: .4byte gUnknown_2023FD2 -_0805124C: .4byte gUnknown_2024140 -_08051250: .4byte gUnknown_3005AEC -_08051254: .4byte gUnknown_2022C0C -_08051258: .4byte gUnknown_2023EB8 -_0805125C: .4byte gUnknown_828988F -_08051260: - ldr r1, _08051270 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] -_08051268: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08051270: .4byte gUnknown_2023EB8 - thumb_func_end atk91_givepaydaymoney - - thumb_func_start atk92_setlightscreen -atk92_setlightscreen: @ 0x08051274 - push {r4, r5, r6, lr} - ldr r5, _080512A4 - ldrb r0, [r5] - bl sub_080A630C - ldr r4, _080512A8 - movs r6, #1 - adds r1, r6, #0 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r1, [r1] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080512B4 - ldr r2, _080512AC - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - ldr r1, _080512B0 - movs r0, #0 - b _08051328 - .align 2, 0 -_080512A4: .4byte gUnknown_2023EAF -_080512A8: .4byte gUnknown_2023F32 -_080512AC: .4byte gUnknown_2023F20 -_080512B0: .4byte gUnknown_2023FD6 -_080512B4: - ldrb r0, [r5] - bl sub_080A630C - adds r1, r6, #0 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r0, [r1] - movs r2, #2 - orrs r0, r2 - strh r0, [r1] - ldrb r0, [r5] - bl sub_080A630C - ldr r4, _08051318 - adds r1, r6, #0 - ands r1, r0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #5 - strb r1, [r0, #2] - ldrb r0, [r5] - bl sub_080A630C - adds r1, r6, #0 - ands r1, r0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r1, [r5] - strb r1, [r0, #3] - ldr r0, _0805131C - ldr r0, [r0] - ands r0, r6 - cmp r0, #0 - beq _08051324 - movs r0, #1 - bl CountAliveMonsInBattle - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _08051324 - ldr r1, _08051320 - movs r0, #4 - b _08051328 - .align 2, 0 -_08051318: .4byte gUnknown_2023F38 -_0805131C: .4byte gUnknown_2022C90 -_08051320: .4byte gUnknown_2023FD6 -_08051324: - ldr r1, _08051338 - movs r0, #3 -_08051328: - strb r0, [r1, #5] - ldr r1, _0805133C - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08051338: .4byte gUnknown_2023FD6 -_0805133C: .4byte gUnknown_2023EB8 - thumb_func_end atk92_setlightscreen - - thumb_func_start atk93_tryKO -atk93_tryKO: @ 0x08051340 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r7, _0805136C - ldr r6, _08051370 - ldrb r2, [r6] - movs r5, #0x58 - adds r0, r2, #0 - muls r0, r5, r0 - adds r1, r0, r7 - ldrh r0, [r1, #0x2e] - cmp r0, #0xaf - bne _08051378 - ldr r1, _08051374 - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r4, [r0, #7] - ldrb r6, [r0, #0x1a] - b _08051392 - .align 2, 0 -_0805136C: .4byte gUnknown_2023D28 -_08051370: .4byte gUnknown_2023EB0 -_08051374: .4byte gUnknown_20240A8 -_08051378: - ldrh r0, [r1, #0x2e] - bl sub_080D6CF8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldrb r0, [r6] - muls r0, r5, r0 - adds r0, r0, r7 - ldrh r0, [r0, #0x2e] - bl sub_080D6D1C - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_08051392: - ldr r1, _0805140C - ldr r5, _08051410 - ldrb r0, [r5] - strb r0, [r1] - cmp r4, #0x27 - bne _080513D0 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r6 - bhs _080513D0 - ldrb r0, [r5] - movs r1, #0x27 - bl RecordItemEffectBattle - ldr r2, _08051414 - ldrb r1, [r5] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0] -_080513D0: - ldr r1, _08051418 - ldr r2, _08051410 - ldrb r3, [r2] - movs r6, #0x58 - adds r0, r3, #0 - muls r0, r6, r0 - adds r5, r0, r1 - adds r0, r5, #0 - adds r0, #0x20 - ldrb r4, [r0] - mov r8, r1 - mov sb, r2 - cmp r4, #5 - bne _0805142C - ldr r2, _0805141C - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08051420 - strb r4, [r0] - ldr r1, _08051424 - ldr r0, _08051428 - str r0, [r1] - mov r1, sb - ldrb r0, [r1] - movs r1, #5 - bl RecordAbilityBattle - b _08051680 - .align 2, 0 -_0805140C: .4byte gUnknown_2023EB3 -_08051410: .4byte gUnknown_2023EB0 -_08051414: .4byte gUnknown_2024020 -_08051418: .4byte gUnknown_2023D28 -_0805141C: .4byte gUnknown_2023F20 -_08051420: .4byte gUnknown_2023EAE -_08051424: .4byte gUnknown_2023EB8 -_08051428: .4byte gUnknown_8289ADA -_0805142C: - ldr r1, _080514A0 - lsls r0, r3, #2 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x18 - ands r0, r1 - cmp r0, #0 - bne _080514B0 - ldr r1, _080514A4 - ldr r0, _080514A8 - ldrh r0, [r0] - lsls r2, r0, #1 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r1 - ldr r7, _080514AC - ldrb r0, [r7] - muls r0, r6, r0 - add r0, r8 - adds r0, #0x2a - ldrb r0, [r0] - adds r1, r5, #0 - adds r1, #0x2a - ldrb r1, [r1] - subs r0, r0, r1 - ldrb r2, [r2, #3] - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r0, #1 - cmp r0, r4 - blt _08051480 - b _08051618 -_08051480: - ldrb r0, [r7] - adds r1, r0, #0 - muls r1, r6, r1 - add r1, r8 - adds r1, #0x2a - mov r2, sb - ldrb r0, [r2] - muls r0, r6, r0 - add r0, r8 - adds r0, #0x2a - ldrb r1, [r1] - movs r4, #1 - ldrb r0, [r0] - cmp r1, r0 - bhs _08051546 - b _08051618 - .align 2, 0 -_080514A0: .4byte gUnknown_2023F50 -_080514A4: .4byte gUnknown_82ED220 -_080514A8: .4byte gUnknown_2023E8E -_080514AC: .4byte gUnknown_2023EAF -_080514B0: - ldr r1, _0805157C - lsls r0, r3, #3 - subs r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08051580 - ldrb r0, [r0, #0x15] - adds r7, r1, #0 - ldrb r3, [r7] - cmp r0, r3 - bne _080514DA - ldrb r0, [r7] - muls r0, r6, r0 - add r0, r8 - adds r0, #0x2a - adds r1, r5, #0 - adds r1, #0x2a - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bhs _08051552 -_080514DA: - ldr r1, _08051584 - ldr r0, _08051588 - ldrh r0, [r0] - lsls r2, r0, #1 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r1 - ldr r6, _0805158C - ldrb r0, [r7] - movs r5, #0x58 - muls r0, r5, r0 - adds r0, r0, r6 - adds r0, #0x2a - ldrb r1, [r0] - ldr r0, _08051590 - mov r8, r0 - ldrb r0, [r0] - muls r0, r5, r0 - adds r0, r0, r6 - adds r0, #0x2a - ldrb r0, [r0] - subs r1, r1, r0 - ldrb r2, [r2, #3] - adds r1, r1, r2 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r0, #1 - cmp r0, r4 - bge _08051544 - ldrb r0, [r7] - adds r1, r0, #0 - muls r1, r5, r1 - adds r1, r1, r6 - adds r1, #0x2a - mov r2, r8 - ldrb r0, [r2] - muls r0, r5, r0 - adds r0, r0, r6 - adds r0, #0x2a - ldrb r1, [r1] - movs r4, #1 - ldrb r0, [r0] - cmp r1, r0 - bhs _08051546 -_08051544: - movs r4, #0 -_08051546: - ldr r3, _0805158C - mov r8, r3 - ldr r0, _08051590 - mov sb, r0 - cmp r4, #0 - beq _08051618 -_08051552: - ldr r0, _08051594 - mov r1, sb - ldrb r2, [r1] - lsls r1, r2, #4 - adds r1, r1, r0 - ldrb r0, [r1] - lsls r0, r0, #0x1e - cmp r0, #0 - bge _080515A0 - ldr r1, _08051598 - movs r0, #0x58 - muls r0, r2, r0 - add r0, r8 - ldrh r0, [r0, #0x28] - subs r0, #1 - str r0, [r1] - ldr r2, _0805159C - ldrb r0, [r2] - movs r1, #0x40 - b _080515FE - .align 2, 0 -_0805157C: .4byte gUnknown_2023F60 -_08051580: .4byte gUnknown_2023EAF -_08051584: .4byte gUnknown_82ED220 -_08051588: .4byte gUnknown_2023E8E -_0805158C: .4byte gUnknown_2023D28 -_08051590: .4byte gUnknown_2023EB0 -_08051594: .4byte gUnknown_2023FE0 -_08051598: .4byte gUnknown_2023E94 -_0805159C: .4byte gUnknown_2023F20 -_080515A0: - ldr r0, _080515DC - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1] - lsrs r0, r0, #7 - cmp r0, #0 - beq _080515EC - ldr r1, _080515E0 - movs r3, #0x58 - adds r0, r2, #0 - muls r0, r3, r0 - add r0, r8 - ldrh r0, [r0, #0x28] - subs r0, #1 - str r0, [r1] - ldr r2, _080515E4 - ldrb r0, [r2] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, _080515E8 - mov r2, sb - ldrb r0, [r2] - muls r0, r3, r0 - add r0, r8 - ldrh r0, [r0, #0x2e] - strh r0, [r1] - b _08051602 - .align 2, 0 -_080515DC: .4byte gUnknown_2024020 -_080515E0: .4byte gUnknown_2023E94 -_080515E4: .4byte gUnknown_2023F20 -_080515E8: .4byte gUnknown_2023EAC -_080515EC: - ldr r1, _0805160C - movs r0, #0x58 - muls r0, r2, r0 - add r0, r8 - ldrh r0, [r0, #0x28] - str r0, [r1] - ldr r2, _08051610 - ldrb r0, [r2] - movs r1, #0x10 -_080515FE: - orrs r0, r1 - strb r0, [r2] -_08051602: - ldr r1, _08051614 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] - b _08051680 - .align 2, 0 -_0805160C: .4byte gUnknown_2023E94 -_08051610: .4byte gUnknown_2023F20 -_08051614: .4byte gUnknown_2023EB8 -_08051618: - ldr r2, _0805164C - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - ldr r3, _08051650 - ldr r0, _08051654 - ldrb r0, [r0] - movs r2, #0x58 - adds r1, r0, #0 - muls r1, r2, r1 - adds r1, r1, r3 - adds r1, #0x2a - ldr r0, _08051658 - ldrb r0, [r0] - muls r0, r2, r0 - adds r0, r0, r3 - adds r0, #0x2a - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - blo _08051660 - ldr r1, _0805165C - movs r0, #0 - b _08051664 - .align 2, 0 -_0805164C: .4byte gUnknown_2023F20 -_08051650: .4byte gUnknown_2023D28 -_08051654: .4byte gUnknown_2023EAF -_08051658: .4byte gUnknown_2023EB0 -_0805165C: .4byte gUnknown_2023FD6 -_08051660: - ldr r1, _0805168C - movs r0, #1 -_08051664: - strb r0, [r1, #5] - ldr r3, _08051690 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] -_08051680: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805168C: .4byte gUnknown_2023FD6 -_08051690: .4byte gUnknown_2023EB8 - thumb_func_end atk93_tryKO - - thumb_func_start atk94_damagetohalftargethp -atk94_damagetohalftargethp: @ 0x08051694 - push {lr} - ldr r3, _080516C0 - ldr r2, _080516C4 - ldr r0, _080516C8 - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - ldrh r0, [r0, #0x28] - lsrs r0, r0, #1 - str r0, [r3] - cmp r0, #0 - bne _080516B2 - movs r0, #1 - str r0, [r3] -_080516B2: - ldr r1, _080516CC - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080516C0: .4byte gUnknown_2023E94 -_080516C4: .4byte gUnknown_2023D28 -_080516C8: .4byte gUnknown_2023EB0 -_080516CC: .4byte gUnknown_2023EB8 - thumb_func_end atk94_damagetohalftargethp - - thumb_func_start atk95_setsandstorm -atk95_setsandstorm: @ 0x080516D0 - push {lr} - ldr r2, _080516F0 - ldrh r1, [r2] - movs r0, #0x18 - ands r0, r1 - cmp r0, #0 - beq _080516FC - ldr r2, _080516F4 - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - ldr r1, _080516F8 - movs r0, #2 - strb r0, [r1, #5] - b _0805170E - .align 2, 0 -_080516F0: .4byte gUnknown_2024070 -_080516F4: .4byte gUnknown_2023F20 -_080516F8: .4byte gUnknown_2023FD6 -_080516FC: - movs r0, #8 - strh r0, [r2] - ldr r1, _0805171C - movs r0, #3 - strb r0, [r1, #5] - ldr r0, _08051720 - adds r0, #0x28 - movs r1, #5 - strb r1, [r0] -_0805170E: - ldr r1, _08051724 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0805171C: .4byte gUnknown_2023FD6 -_08051720: .4byte gUnknown_2024074 -_08051724: .4byte gUnknown_2023EB8 - thumb_func_end atk95_setsandstorm - - thumb_func_start atk96_weatherdamage -atk96_weatherdamage: @ 0x08051728 - push {r4, r5, lr} - sub sp, #4 - movs r0, #0 - str r0, [sp] - movs r0, #0x13 - movs r1, #0 - movs r2, #0xd - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _08051746 - b _08051858 -_08051746: - str r0, [sp] - movs r0, #0x13 - movs r1, #0 - movs r2, #0x4d - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0805175C - b _08051858 -_0805175C: - ldr r2, _080517D0 - ldrh r1, [r2] - movs r0, #0x18 - ands r0, r1 - adds r4, r2, #0 - ldr r5, _080517D4 - cmp r0, #0 - beq _080517EA - ldr r0, _080517D8 - ldrb r2, [r5] - movs r1, #0x58 - muls r1, r2, r1 - adds r3, r1, r0 - adds r0, r3, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #5 - beq _080517E4 - cmp r0, #8 - beq _080517E4 - cmp r0, #4 - beq _080517E4 - adds r0, r3, #0 - adds r0, #0x22 - ldrb r0, [r0] - cmp r0, #5 - beq _080517E4 - cmp r0, #8 - beq _080517E4 - cmp r0, #4 - beq _080517E4 - adds r0, r3, #0 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #8 - beq _080517E4 - ldr r0, _080517DC - lsls r1, r2, #2 - adds r1, r1, r0 - ldr r1, [r1] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080517E4 - movs r0, #0x80 - lsls r0, r0, #0xb - ands r1, r0 - cmp r1, #0 - bne _080517E4 - ldr r1, _080517E0 - ldrh r0, [r3, #0x2c] - lsrs r0, r0, #4 - str r0, [r1] - cmp r0, #0 - bne _080517EA - movs r0, #1 - b _080517E8 - .align 2, 0 -_080517D0: .4byte gUnknown_2024070 -_080517D4: .4byte gUnknown_2023EAF -_080517D8: .4byte gUnknown_2023D28 -_080517DC: .4byte gUnknown_2023F50 -_080517E0: .4byte gUnknown_2023E94 -_080517E4: - ldr r1, _08051840 - movs r0, #0 -_080517E8: - str r0, [r1] -_080517EA: - ldrh r1, [r4] - movs r4, #0x80 - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - beq _08051860 - ldr r1, _08051844 - ldrb r3, [r5] - movs r0, #0x58 - muls r0, r3, r0 - adds r2, r0, r1 - adds r0, r2, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0xf - beq _0805184C - adds r0, r2, #0 - adds r0, #0x22 - ldrb r0, [r0] - cmp r0, #0xf - beq _0805184C - ldr r0, _08051848 - lsls r1, r3, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r1, #0 - ands r0, r4 - cmp r0, #0 - bne _0805184C - movs r0, #0x80 - lsls r0, r0, #0xb - ands r1, r0 - cmp r1, #0 - bne _0805184C - ldr r1, _08051840 - ldrh r0, [r2, #0x2c] - lsrs r0, r0, #4 - str r0, [r1] - cmp r0, #0 - bne _08051860 - movs r0, #1 - str r0, [r1] - b _08051860 - .align 2, 0 -_08051840: .4byte gUnknown_2023E94 -_08051844: .4byte gUnknown_2023D28 -_08051848: .4byte gUnknown_2023F50 -_0805184C: - ldr r1, _08051854 - movs r0, #0 - str r0, [r1] - b _08051860 - .align 2, 0 -_08051854: .4byte gUnknown_2023E94 -_08051858: - ldr r1, _0805188C - movs r0, #0 - str r0, [r1] - ldr r5, _08051890 -_08051860: - ldr r0, _08051894 - ldrb r1, [r0] - ldr r2, _08051898 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _0805187A - ldr r1, _0805188C - movs r0, #0 - str r0, [r1] -_0805187A: - ldr r1, _0805189C - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0805188C: .4byte gUnknown_2023E94 -_08051890: .4byte gUnknown_2023EAF -_08051894: .4byte gUnknown_2023EB4 -_08051898: .4byte gUnknown_82FACB4 -_0805189C: .4byte gUnknown_2023EB8 - thumb_func_end atk96_weatherdamage - - thumb_func_start atk97_tryinfatuating -atk97_tryinfatuating: @ 0x080518A0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r4, _080518CC - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080518D8 - ldr r1, _080518D0 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _080518D4 - b _080518E8 - .align 2, 0 -_080518CC: .4byte gUnknown_2023EAF -_080518D0: .4byte gUnknown_2023D12 -_080518D4: .4byte gUnknown_2024190 -_080518D8: - ldr r1, _0805190C - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _08051910 -_080518E8: - adds r5, r1, r0 - ldr r4, _08051914 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805191C - ldr r1, _0805190C - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _08051918 - b _0805192C - .align 2, 0 -_0805190C: .4byte gUnknown_2023D12 -_08051910: .4byte gUnknown_20243E8 -_08051914: .4byte gUnknown_2023EB0 -_08051918: .4byte gUnknown_2024190 -_0805191C: - ldr r1, _08051988 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _0805198C -_0805192C: - adds r4, r1, r0 - adds r0, r5, #0 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sl, r0 - adds r0, r5, #0 - movs r1, #0 - bl GetMonData - mov sb, r0 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - adds r0, r4, #0 - movs r1, #0 - bl GetMonData - adds r7, r0, #0 - ldr r5, _08051990 - ldrb r0, [r5] - movs r6, #0x58 - muls r0, r6, r0 - ldr r1, _08051994 - adds r0, r0, r1 - adds r0, #0x20 - ldrb r2, [r0] - cmp r2, #0xc - bne _080519A4 - ldr r1, _08051998 - ldr r0, _0805199C - str r0, [r1] - ldr r0, _080519A0 - strb r2, [r0] - ldrb r0, [r5] - movs r1, #0xc - bl RecordAbilityBattle - b _08051A3C - .align 2, 0 -_08051988: .4byte gUnknown_2023D12 -_0805198C: .4byte gUnknown_20243E8 -_08051990: .4byte gUnknown_2023EB0 -_08051994: .4byte gUnknown_2023D28 -_08051998: .4byte gUnknown_2023EB8 -_0805199C: .4byte gUnknown_8289B7D -_080519A0: .4byte gUnknown_2023EAE -_080519A4: - mov r0, sl - mov r1, sb - bl GetGenderFromSpeciesAndPersonality - adds r4, r0, #0 - mov r0, r8 - adds r1, r7, #0 - bl GetGenderFromSpeciesAndPersonality - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - beq _080519F4 - ldrb r0, [r5] - muls r0, r6, r0 - ldr r4, _08051A10 - adds r4, #0x50 - adds r0, r0, r4 - ldr r0, [r0] - movs r1, #0xf0 - lsls r1, r1, #0xc - ands r0, r1 - cmp r0, #0 - bne _080519F4 - mov r0, sl - mov r1, sb - bl GetGenderFromSpeciesAndPersonality - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _080519F4 - mov r0, r8 - adds r1, r7, #0 - bl GetGenderFromSpeciesAndPersonality - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08051A18 -_080519F4: - ldr r3, _08051A14 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08051A3C - .align 2, 0 -_08051A10: .4byte gUnknown_2023D28 -_08051A14: .4byte gUnknown_2023EB8 -_08051A18: - ldrb r0, [r5] - adds r2, r0, #0 - muls r2, r6, r2 - adds r2, r2, r4 - ldr r1, _08051A4C - ldr r0, _08051A50 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - lsls r1, r1, #0x10 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - ldr r1, _08051A54 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] -_08051A3C: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08051A4C: .4byte gUnknown_82FACB4 -_08051A50: .4byte gUnknown_2023EAF -_08051A54: .4byte gUnknown_2023EB8 - thumb_func_end atk97_tryinfatuating - - thumb_func_start atk98_updatestatusicon -atk98_updatestatusicon: @ 0x08051A58 - push {r4, r5, r6, r7, lr} - ldr r0, _08051AA0 - ldr r0, [r0] - cmp r0, #0 - bne _08051B44 - ldr r5, _08051AA4 - ldr r1, [r5] - ldrb r0, [r1, #1] - cmp r0, #4 - beq _08051AB0 - bl GetBattlerForBattleScript - ldr r4, _08051AA8 - strb r0, [r4] - ldr r3, _08051AAC - ldrb r1, [r4] - movs r0, #0x58 - adds r2, r1, #0 - muls r2, r0, r2 - adds r0, r3, #0 - adds r0, #0x4c - adds r0, r2, r0 - ldr r1, [r0] - adds r3, #0x50 - adds r2, r2, r3 - ldr r2, [r2] - movs r0, #0 - bl BtlController_EmitStatusIconUpdate - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldr r0, [r5] - adds r0, #2 - str r0, [r5] - b _08051B44 - .align 2, 0 -_08051AA0: .4byte gUnknown_2023D0C -_08051AA4: .4byte gUnknown_2023EB8 -_08051AA8: .4byte gUnknown_2023D08 -_08051AAC: .4byte gUnknown_2023D28 -_08051AB0: - ldr r4, _08051B4C - ldr r5, _08051B50 - ldrb r0, [r5] - strb r0, [r4] - ldr r6, _08051B54 - ldrb r1, [r6] - ldr r7, _08051B58 - ldrb r2, [r4] - lsls r0, r2, #2 - adds r0, r0, r7 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _08051AEC - ldr r3, _08051B5C - movs r0, #0x58 - muls r2, r0, r2 - adds r0, r3, #0 - adds r0, #0x4c - adds r0, r2, r0 - ldr r1, [r0] - adds r3, #0x50 - adds r2, r2, r3 - ldr r2, [r2] - movs r0, #0 - bl BtlController_EmitStatusIconUpdate - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_08051AEC: - ldr r0, _08051B60 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08051B3C - ldrb r0, [r5] - bl sub_080A630C - movs r1, #2 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - strb r0, [r4] - ldrb r1, [r6] - ldrb r2, [r4] - lsls r0, r2, #2 - adds r0, r0, r7 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _08051B3C - ldr r3, _08051B5C - movs r0, #0x58 - muls r2, r0, r2 - adds r0, r3, #0 - adds r0, #0x4c - adds r0, r2, r0 - ldr r1, [r0] - adds r3, #0x50 - adds r2, r2, r3 - ldr r2, [r2] - movs r0, #0 - bl BtlController_EmitStatusIconUpdate - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_08051B3C: - ldr r1, _08051B64 - ldr r0, [r1] - adds r0, #2 - str r0, [r1] -_08051B44: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08051B4C: .4byte gUnknown_2023D08 -_08051B50: .4byte gUnknown_2023EAF -_08051B54: .4byte gUnknown_2023EB4 -_08051B58: .4byte gUnknown_82FACB4 -_08051B5C: .4byte gUnknown_2023D28 -_08051B60: .4byte gUnknown_2022C90 -_08051B64: .4byte gUnknown_2023EB8 - thumb_func_end atk98_updatestatusicon - - thumb_func_start atk99_setmist -atk99_setmist: @ 0x08051B68 - push {r4, r5, r6, lr} - ldr r6, _08051B98 - ldr r4, _08051B9C - ldrb r0, [r4] - bl sub_080A630C - movs r5, #1 - adds r1, r5, #0 - ands r1, r0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r0, [r0, #4] - cmp r0, #0 - beq _08051BA8 - ldr r2, _08051BA0 - ldrb r0, [r2] - movs r1, #0x20 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08051BA4 - strb r5, [r0, #5] - b _08051BF6 - .align 2, 0 -_08051B98: .4byte gUnknown_2023F38 -_08051B9C: .4byte gUnknown_2023EAF -_08051BA0: .4byte gUnknown_2023F20 -_08051BA4: .4byte gUnknown_2023FD6 -_08051BA8: - ldrb r0, [r4] - bl sub_080A630C - adds r1, r5, #0 - ands r1, r0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #5 - strb r1, [r0, #4] - ldrb r0, [r4] - bl sub_080A630C - adds r1, r5, #0 - ands r1, r0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r1, [r4] - strb r1, [r0, #5] - ldrb r0, [r4] - bl sub_080A630C - ldr r2, _08051C04 - adds r1, r5, #0 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r2, [r1] - movs r3, #0x80 - lsls r3, r3, #1 - adds r0, r3, #0 - movs r3, #0 - orrs r0, r2 - strh r0, [r1] - ldr r0, _08051C08 - strb r3, [r0, #5] -_08051BF6: - ldr r1, _08051C0C - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08051C04: .4byte gUnknown_2023F32 -_08051C08: .4byte gUnknown_2023FD6 -_08051C0C: .4byte gUnknown_2023EB8 - thumb_func_end atk99_setmist - - thumb_func_start atk9A_setfocusenergy -atk9A_setfocusenergy: @ 0x08051C10 - push {lr} - ldr r1, _08051C40 - ldr r0, _08051C44 - ldrb r2, [r0] - movs r0, #0x58 - muls r0, r2, r0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r1, [r0] - movs r3, #0x80 - lsls r3, r3, #0xd - adds r2, r1, #0 - ands r2, r3 - cmp r2, #0 - beq _08051C50 - ldr r2, _08051C48 - ldrb r0, [r2] - movs r1, #0x20 - orrs r0, r1 - strb r0, [r2] - ldr r1, _08051C4C - movs r0, #1 - strb r0, [r1, #5] - b _08051C58 - .align 2, 0 -_08051C40: .4byte gUnknown_2023D28 -_08051C44: .4byte gUnknown_2023EAF -_08051C48: .4byte gUnknown_2023F20 -_08051C4C: .4byte gUnknown_2023FD6 -_08051C50: - orrs r1, r3 - str r1, [r0] - ldr r0, _08051C64 - strb r2, [r0, #5] -_08051C58: - ldr r1, _08051C68 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08051C64: .4byte gUnknown_2023FD6 -_08051C68: .4byte gUnknown_2023EB8 - thumb_func_end atk9A_setfocusenergy - - thumb_func_start atk9B_transformdataexecution -atk9B_transformdataexecution: @ 0x08051C6C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r1, _08051CC4 - ldr r2, _08051CC8 - adds r0, r2, #0 - strh r0, [r1] - ldr r1, _08051CCC - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - ldr r7, _08051CD0 - ldr r0, _08051CD4 - mov ip, r0 - ldrb r1, [r0] - movs r6, #0x58 - adds r0, r1, #0 - muls r0, r6, r0 - adds r5, r7, #0 - adds r5, #0x50 - adds r0, r0, r5 - ldr r0, [r0] - movs r4, #0x80 - lsls r4, r4, #0xe - ands r0, r4 - cmp r0, #0 - bne _08051CB2 - ldr r0, _08051CD8 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r2, [r1] - ldr r0, _08051CDC - ands r2, r0 - cmp r2, #0 - beq _08051CE8 -_08051CB2: - ldr r2, _08051CE0 - ldrb r0, [r2] - movs r1, #0x20 - orrs r0, r1 - strb r0, [r2] - ldr r1, _08051CE4 - movs r0, #1 - b _08051DFC - .align 2, 0 -_08051CC4: .4byte gUnknown_2023E90 -_08051CC8: .4byte 0x0000FFFF -_08051CCC: .4byte gUnknown_2023EB8 -_08051CD0: .4byte gUnknown_2023D28 -_08051CD4: .4byte gUnknown_2023EB0 -_08051CD8: .4byte gUnknown_2023F50 -_08051CDC: .4byte 0x000400C0 -_08051CE0: .4byte gUnknown_2023F20 -_08051CE4: .4byte gUnknown_2023FD6 -_08051CE8: - ldr r3, _08051DBC - ldrb r0, [r3] - adds r1, r0, #0 - muls r1, r6, r1 - adds r1, r1, r5 - ldr r0, [r1] - orrs r0, r4 - str r0, [r1] - ldr r4, _08051DC0 - ldrb r1, [r3] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - strh r2, [r0, #4] - ldrb r0, [r3] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r2, [r1, #0xb] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #0xb] - ldrb r1, [r3] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - mov r2, ip - ldrb r1, [r2] - muls r1, r6, r1 - adds r2, r7, #0 - adds r2, #0x48 - adds r1, r1, r2 - ldr r1, [r1] - str r1, [r0] - ldrb r0, [r3] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r2, [r1, #0x18] - movs r0, #0xf - ands r0, r2 - strb r0, [r1, #0x18] - ldr r1, _08051DC4 - movs r0, #0xfd - strb r0, [r1] - movs r0, #6 - strb r0, [r1, #1] - mov r2, ip - ldrb r0, [r2] - muls r0, r6, r0 - adds r0, r0, r7 - ldrh r0, [r0] - strb r0, [r1, #2] - ldrb r0, [r2] - muls r0, r6, r0 - adds r0, r0, r7 - ldrh r0, [r0] - lsrs r0, r0, #8 - strb r0, [r1, #3] - movs r0, #0xff - strb r0, [r1, #4] - ldrb r0, [r3] - muls r0, r6, r0 - adds r5, r0, r7 - ldrb r0, [r2] - muls r0, r6, r0 - adds r2, r0, r7 - movs r4, #0 - adds r6, r3, #0 - ldr r0, _08051DC8 - mov r8, r0 -_08051D80: - adds r0, r5, r4 - adds r1, r2, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r4, #1 - cmp r4, #0x23 - bls _08051D80 - movs r4, #0 - ldr r7, _08051DCC - ldr r3, _08051DD0 - adds r5, r3, #0 - adds r5, #0x18 -_08051D98: - lsls r1, r4, #1 - ldrb r2, [r6] - movs r0, #0x58 - muls r2, r0, r2 - adds r1, r1, r2 - adds r1, r1, r3 - ldrh r1, [r1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrb r1, [r0, #4] - cmp r1, #4 - bhi _08051DD4 - adds r0, r4, r2 - adds r0, r0, r5 - b _08051DDA - .align 2, 0 -_08051DBC: .4byte gUnknown_2023EAF -_08051DC0: .4byte gUnknown_2023F60 -_08051DC4: .4byte gUnknown_2022C0C -_08051DC8: .4byte gUnknown_2023D08 -_08051DCC: .4byte gUnknown_82ED220 -_08051DD0: .4byte gUnknown_2023D34 -_08051DD4: - adds r0, r4, r2 - adds r0, r0, r5 - movs r1, #5 -_08051DDA: - strb r1, [r0] - adds r4, #1 - cmp r4, #3 - ble _08051D98 - ldrb r0, [r6] - mov r1, r8 - strb r0, [r1] - movs r0, #0 - movs r1, #2 - bl BtlController_EmitResetActionMoveSelection - mov r2, r8 - ldrb r0, [r2] - bl MarkBattlerForControllerExec - ldr r1, _08051E08 - movs r0, #0 -_08051DFC: - strb r0, [r1, #5] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08051E08: .4byte gUnknown_2023FD6 - thumb_func_end atk9B_transformdataexecution - - thumb_func_start atk9C_setsubstitute -atk9C_setsubstitute: @ 0x08051E0C - push {r4, r5, r6, r7, lr} - ldr r7, _08051E3C - ldr r6, _08051E40 - ldrb r0, [r6] - movs r5, #0x58 - muls r0, r5, r0 - adds r3, r0, r7 - ldrh r0, [r3, #0x2c] - lsrs r1, r0, #2 - adds r2, r1, #0 - cmp r1, #0 - bne _08051E26 - movs r2, #1 -_08051E26: - ldrh r0, [r3, #0x28] - cmp r0, r2 - bhi _08051E4C - ldr r1, _08051E44 - movs r0, #0 - str r0, [r1] - ldr r1, _08051E48 - movs r0, #1 - strb r0, [r1, #5] - b _08051EA0 - .align 2, 0 -_08051E3C: .4byte gUnknown_2023D28 -_08051E40: .4byte gUnknown_2023EAF -_08051E44: .4byte gUnknown_2023E94 -_08051E48: .4byte gUnknown_2023FD6 -_08051E4C: - ldr r4, _08051EB0 - str r1, [r4] - cmp r1, #0 - bne _08051E58 - movs r0, #1 - str r0, [r4] -_08051E58: - ldrb r0, [r6] - adds r2, r0, #0 - muls r2, r5, r2 - adds r3, r7, #0 - adds r3, #0x50 - adds r2, r2, r3 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0x11 - orrs r0, r1 - str r0, [r2] - ldrb r0, [r6] - adds r1, r0, #0 - muls r1, r5, r1 - adds r1, r1, r3 - ldr r0, [r1] - ldr r2, _08051EB4 - ands r0, r2 - str r0, [r1] - ldr r2, _08051EB8 - ldrb r1, [r6] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, [r4] - movs r2, #0 - strb r1, [r0, #0xa] - ldr r0, _08051EBC - strb r2, [r0, #5] - ldr r2, _08051EC0 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #1 - orrs r0, r1 - str r0, [r2] -_08051EA0: - ldr r1, _08051EC4 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08051EB0: .4byte gUnknown_2023E94 -_08051EB4: .4byte 0xFFFF1FFF -_08051EB8: .4byte gUnknown_2023F60 -_08051EBC: .4byte gUnknown_2023FD6 -_08051EC0: .4byte gUnknown_2023F24 -_08051EC4: .4byte gUnknown_2023EB8 - thumb_func_end atk9C_setsubstitute - - thumb_func_start IsMoveUncopyableByMimic -IsMoveUncopyableByMimic: @ 0x08051EC8 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - movs r3, #0 - ldr r0, _08051F08 - ldrh r1, [r0] - ldr r4, _08051F0C - adds r5, r0, #0 - cmp r1, r4 - beq _08051EF0 - cmp r1, r2 - beq _08051EF0 - adds r1, r5, #0 -_08051EE2: - adds r1, #2 - adds r3, #1 - ldrh r0, [r1] - cmp r0, r4 - beq _08051EF0 - cmp r0, r2 - bne _08051EE2 -_08051EF0: - lsls r0, r3, #1 - adds r0, r0, r5 - ldrh r1, [r0] - ldr r0, _08051F0C - eors r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08051F08: .4byte gUnknown_82ECD64 -_08051F0C: .4byte 0x0000FFFE - thumb_func_end IsMoveUncopyableByMimic - - thumb_func_start atk9D_mimicattackcopy -atk9D_mimicattackcopy: @ 0x08051F10 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _08051F88 - ldr r1, _08051F8C - adds r7, r1, #0 - strh r7, [r0] - ldr r5, _08051F90 - ldr r6, _08051F94 - ldrb r0, [r6] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r0, [r0] - bl IsMoveUncopyableByMimic - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08051F6A - ldr r3, _08051F98 - ldr r2, _08051F9C - ldrb r1, [r2] - movs r0, #0x58 - adds r4, r1, #0 - muls r4, r0, r4 - adds r0, r3, #0 - adds r0, #0x50 - adds r0, r4, r0 - ldr r1, [r0] - movs r0, #0x80 - lsls r0, r0, #0xe - ands r1, r0 - mov ip, r3 - mov sb, r2 - cmp r1, #0 - bne _08051F6A - ldrb r0, [r6] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r1, [r0] - cmp r1, #0 - beq _08051F6A - cmp r1, r7 - bne _08051FA4 -_08051F6A: - ldr r3, _08051FA0 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _080520DC - .align 2, 0 -_08051F88: .4byte gUnknown_2023E90 -_08051F8C: .4byte 0x0000FFFF -_08051F90: .4byte gUnknown_2023EEC -_08051F94: .4byte gUnknown_2023EB0 -_08051F98: .4byte gUnknown_2023D28 -_08051F9C: .4byte gUnknown_2023EAF -_08051FA0: .4byte gUnknown_2023EB8 -_08051FA4: - movs r2, #0 - mov r3, ip - adds r3, #0xc - adds r0, r4, r3 - ldrh r0, [r0] - ldr r4, _08052034 - mov sl, r4 - cmp r0, r1 - beq _08051FDE - mov r8, r3 - adds r7, r5, #0 - adds r5, r6, #0 - mov r4, sb - movs r3, #0x58 -_08051FC0: - adds r2, #1 - cmp r2, #3 - bgt _08051FDE - lsls r1, r2, #1 - ldrb r0, [r4] - muls r0, r3, r0 - adds r1, r1, r0 - add r1, r8 - ldrb r0, [r5] - lsls r0, r0, #1 - adds r0, r0, r7 - ldrh r1, [r1] - ldrh r0, [r0] - cmp r1, r0 - bne _08051FC0 -_08051FDE: - cmp r2, #4 - bne _080520C0 - ldr r5, _08052038 - ldrb r1, [r5] - lsls r1, r1, #1 - mov r2, sb - ldrb r0, [r2] - movs r6, #0x58 - muls r0, r6, r0 - adds r1, r1, r0 - mov r0, ip - adds r0, #0xc - adds r1, r1, r0 - ldr r2, _0805203C - ldr r3, _08052040 - ldrb r0, [r3] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r1] - ldr r4, _08052044 - ldrb r0, [r3] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r4, [r0, #4] - cmp r4, #4 - bhi _08052048 - mov r1, sb - ldrb r0, [r1] - muls r0, r6, r0 - ldrb r1, [r5] - adds r0, r0, r1 - mov r1, ip - adds r1, #0x24 - adds r0, r0, r1 - strb r4, [r0] - b _0805205C - .align 2, 0 -_08052034: .4byte gUnknown_2023EB8 -_08052038: .4byte gUnknown_2023E8C -_0805203C: .4byte gUnknown_2023EEC -_08052040: .4byte gUnknown_2023EB0 -_08052044: .4byte gUnknown_82ED220 -_08052048: - mov r4, sb - ldrb r0, [r4] - muls r0, r6, r0 - ldrb r1, [r5] - adds r0, r0, r1 - mov r1, ip - adds r1, #0x24 - adds r0, r0, r1 - movs r1, #5 - strb r1, [r0] -_0805205C: - ldr r1, _080520B4 - movs r0, #0xfd - strb r0, [r1] - movs r0, #2 - strb r0, [r1, #1] - ldrb r0, [r3] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strb r0, [r1, #2] - ldrb r0, [r3] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - lsrs r0, r0, #8 - strb r0, [r1, #3] - movs r0, #0xff - strb r0, [r1, #4] - ldr r1, _080520B8 - mov r2, sb - ldrb r0, [r2] - lsls r2, r0, #3 - subs r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r1 - ldrb r4, [r2, #0x18] - lsrs r3, r4, #4 - ldr r1, _080520BC - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - orrs r1, r3 - lsls r1, r1, #4 - movs r0, #0xf - ands r0, r4 - orrs r0, r1 - strb r0, [r2, #0x18] - mov r4, sl - ldr r0, [r4] - adds r0, #5 - str r0, [r4] - b _080520DC - .align 2, 0 -_080520B4: .4byte gUnknown_2022C0C -_080520B8: .4byte gUnknown_2023F60 -_080520BC: .4byte gUnknown_82FACB4 -_080520C0: - mov r0, sl - ldr r2, [r0] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - mov r2, sl - str r1, [r2] -_080520DC: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end atk9D_mimicattackcopy - - thumb_func_start atk9E_metronome -atk9E_metronome: @ 0x080520EC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r7, _0805216C - movs r6, #0xb1 - lsls r6, r6, #1 - ldr r5, _08052170 - ldr r0, _08052174 - mov r8, r0 -_080520FE: - bl Random - ldr r2, _08052178 - adds r1, r2, #0 - ands r0, r1 - adds r0, #1 - strh r0, [r7] - cmp r0, r6 - bhi _080520FE - movs r0, #3 -_08052112: - subs r0, #1 - cmp r0, #0 - bge _08052112 - ldr r4, _0805216C - ldrh r2, [r4] - ldr r3, _0805217C - subs r0, r5, #2 -_08052120: - adds r0, #2 - ldrh r1, [r0] - cmp r1, r2 - beq _0805212C - cmp r1, r3 - bne _08052120 -_0805212C: - ldr r0, _0805217C - cmp r1, r0 - bne _080520FE - ldr r2, _08052180 - ldr r0, [r2] - ldr r1, _08052184 - ands r0, r1 - str r0, [r2] - ldr r3, _08052188 - ldr r2, _0805218C - ldrh r1, [r4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r3 - ldr r0, [r0] - mov r1, r8 - str r0, [r1] - ldrh r0, [r4] - movs r1, #0 - bl GetMoveTarget - ldr r1, _08052190 - strb r0, [r1] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805216C: .4byte gUnknown_2023E8E -_08052170: .4byte gUnknown_82ECD64 -_08052174: .4byte gUnknown_2023EB8 -_08052178: .4byte 0x000001FF -_0805217C: .4byte 0x0000FFFF -_08052180: .4byte gUnknown_2023F24 -_08052184: .4byte 0xFFFFFBFF -_08052188: .4byte gUnknown_8286C30 -_0805218C: .4byte gUnknown_82ED220 -_08052190: .4byte gUnknown_2023EB0 - thumb_func_end atk9E_metronome - - thumb_func_start atk9F_dmgtolevel -atk9F_dmgtolevel: @ 0x08052194 - ldr r3, _080521B4 - ldr r2, _080521B8 - ldr r0, _080521BC - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - adds r0, #0x2a - ldrb r0, [r0] - str r0, [r3] - ldr r1, _080521C0 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - bx lr - .align 2, 0 -_080521B4: .4byte gUnknown_2023E94 -_080521B8: .4byte gUnknown_2023D28 -_080521BC: .4byte gUnknown_2023EAF -_080521C0: .4byte gUnknown_2023EB8 - thumb_func_end atk9F_dmgtolevel - - thumb_func_start atkA0_psywavedamageeffect -atkA0_psywavedamageeffect: @ 0x080521C4 - push {r4, lr} - movs r4, #0xf -_080521C8: - bl Random - adds r3, r4, #0 - ands r3, r0 - cmp r3, #0xa - bgt _080521C8 - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r3, r0, #1 - ldr r4, _08052208 - ldr r2, _0805220C - ldr r0, _08052210 - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - adds r0, #0x2a - ldrb r1, [r0] - adds r0, r3, #0 - adds r0, #0x32 - muls r0, r1, r0 - movs r1, #0x64 - bl __divsi3 - str r0, [r4] - ldr r1, _08052214 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08052208: .4byte gUnknown_2023E94 -_0805220C: .4byte gUnknown_2023D28 -_08052210: .4byte gUnknown_2023EAF -_08052214: .4byte gUnknown_2023EB8 - thumb_func_end atkA0_psywavedamageeffect - - thumb_func_start atkA1_counterdamagecalculator -atkA1_counterdamagecalculator: @ 0x08052218 - push {r4, r5, r6, lr} - ldr r4, _08052288 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r5, _0805228C - ldrb r0, [r4] - lsls r0, r0, #4 - adds r0, r0, r5 - ldrb r0, [r0, #0xc] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldrb r0, [r4] - lsls r1, r0, #4 - adds r0, r5, #4 - adds r0, r1, r0 - ldr r3, [r0] - cmp r3, #0 - beq _080522CC - cmp r6, r2 - beq _080522CC - ldr r6, _08052290 - adds r0, r1, r5 - ldrb r0, [r0, #0xc] - movs r4, #0x58 - muls r0, r4, r0 - adds r0, r0, r6 - ldrh r0, [r0, #0x28] - cmp r0, #0 - beq _080522CC - ldr r1, _08052294 - lsls r0, r3, #1 - str r0, [r1] - ldr r1, _08052298 - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r1, r0, r1 - ldrb r0, [r1, #8] - cmp r0, #0 - beq _080522A0 - ldrb r1, [r1, #9] - adds r0, r1, #0 - muls r0, r4, r0 - adds r0, r0, r6 - ldrh r0, [r0, #0x28] - cmp r0, #0 - beq _080522A0 - ldr r0, _0805229C - strb r1, [r0] - b _080522B0 - .align 2, 0 -_08052288: .4byte gUnknown_2023EAF -_0805228C: .4byte gUnknown_2023FE0 -_08052290: .4byte gUnknown_2023D28 -_08052294: .4byte gUnknown_2023E94 -_08052298: .4byte gUnknown_2023F38 -_0805229C: .4byte gUnknown_2023EB0 -_080522A0: - ldr r2, _080522BC - ldr r1, _080522C0 - ldr r0, _080522C4 - ldrb r0, [r0] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrb r0, [r0, #0xc] - strb r0, [r2] -_080522B0: - ldr r1, _080522C8 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] - b _080522FC - .align 2, 0 -_080522BC: .4byte gUnknown_2023EB0 -_080522C0: .4byte gUnknown_2023FE0 -_080522C4: .4byte gUnknown_2023EAF -_080522C8: .4byte gUnknown_2023EB8 -_080522CC: - ldr r2, _08052304 - ldr r0, _08052308 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r2, #0x20 - orrs r1, r2 - strb r1, [r0] - ldr r3, _0805230C - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] -_080522FC: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08052304: .4byte gUnknown_2024020 -_08052308: .4byte gUnknown_2023EAF -_0805230C: .4byte gUnknown_2023EB8 - thumb_func_end atkA1_counterdamagecalculator - - thumb_func_start atkA2_mirrorcoatdamagecalculator -atkA2_mirrorcoatdamagecalculator: @ 0x08052310 - push {r4, r5, r6, lr} - ldr r4, _08052380 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r5, _08052384 - ldrb r0, [r4] - lsls r0, r0, #4 - adds r0, r0, r5 - ldrb r0, [r0, #0xd] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldrb r0, [r4] - lsls r1, r0, #4 - adds r0, r5, #0 - adds r0, #8 - adds r0, r1, r0 - ldr r3, [r0] - cmp r3, #0 - beq _080523C4 - cmp r6, r2 - beq _080523C4 - ldr r6, _08052388 - adds r0, r1, r5 - ldrb r0, [r0, #0xd] - movs r4, #0x58 - muls r0, r4, r0 - adds r0, r0, r6 - ldrh r0, [r0, #0x28] - cmp r0, #0 - beq _080523C4 - ldr r1, _0805238C - lsls r0, r3, #1 - str r0, [r1] - ldr r1, _08052390 - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r1, r0, r1 - ldrb r0, [r1, #8] - cmp r0, #0 - beq _08052398 - ldrb r1, [r1, #9] - adds r0, r1, #0 - muls r0, r4, r0 - adds r0, r0, r6 - ldrh r0, [r0, #0x28] - cmp r0, #0 - beq _08052398 - ldr r0, _08052394 - strb r1, [r0] - b _080523A8 - .align 2, 0 -_08052380: .4byte gUnknown_2023EAF -_08052384: .4byte gUnknown_2023FE0 -_08052388: .4byte gUnknown_2023D28 -_0805238C: .4byte gUnknown_2023E94 -_08052390: .4byte gUnknown_2023F38 -_08052394: .4byte gUnknown_2023EB0 -_08052398: - ldr r2, _080523B4 - ldr r1, _080523B8 - ldr r0, _080523BC - ldrb r0, [r0] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrb r0, [r0, #0xd] - strb r0, [r2] -_080523A8: - ldr r1, _080523C0 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] - b _080523F4 - .align 2, 0 -_080523B4: .4byte gUnknown_2023EB0 -_080523B8: .4byte gUnknown_2023FE0 -_080523BC: .4byte gUnknown_2023EAF -_080523C0: .4byte gUnknown_2023EB8 -_080523C4: - ldr r2, _080523FC - ldr r0, _08052400 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r2, #0x20 - orrs r1, r2 - strb r1, [r0] - ldr r3, _08052404 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] -_080523F4: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080523FC: .4byte gUnknown_2024020 -_08052400: .4byte gUnknown_2023EAF -_08052404: .4byte gUnknown_2023EB8 - thumb_func_end atkA2_mirrorcoatdamagecalculator - - thumb_func_start atkA3_disablelastusedattack -atkA3_disablelastusedattack: @ 0x08052408 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - movs r4, #0 - ldr r2, _08052508 - ldr r3, _0805250C - ldrb r1, [r3] - movs r0, #0x58 - muls r0, r1, r0 - adds r7, r2, #0 - adds r7, #0xc - adds r0, r0, r7 - ldr r5, _08052510 - lsls r1, r1, #1 - adds r1, r1, r5 - ldrh r0, [r0] - mov sb, r2 - adds r6, r3, #0 - ldr r2, _08052514 - mov r8, r2 - ldrh r1, [r1] - cmp r0, r1 - beq _0805245C - mov ip, r6 - movs r3, #0x58 -_0805243C: - adds r4, #1 - cmp r4, #3 - bgt _0805245C - lsls r2, r4, #1 - mov r0, ip - ldrb r1, [r0] - adds r0, r1, #0 - muls r0, r3, r0 - adds r2, r2, r0 - adds r2, r2, r7 - lsls r1, r1, #1 - adds r1, r1, r5 - ldrh r0, [r2] - ldrh r1, [r1] - cmp r0, r1 - bne _0805243C -_0805245C: - ldrb r1, [r6] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - ldrh r0, [r0, #4] - cmp r0, #0 - bne _08052520 - cmp r4, #4 - beq _08052520 - movs r5, #0x58 - adds r0, r1, #0 - muls r0, r5, r0 - adds r0, r4, r0 - mov r1, sb - adds r1, #0x24 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _08052520 - ldr r1, _08052518 - movs r0, #0xfd - strb r0, [r1] - movs r0, #2 - strb r0, [r1, #1] - lsls r2, r4, #1 - ldrb r0, [r6] - muls r0, r5, r0 - adds r0, r2, r0 - mov r3, sb - adds r3, #0xc - adds r0, r0, r3 - ldrh r0, [r0] - strb r0, [r1, #2] - ldrb r0, [r6] - muls r0, r5, r0 - adds r0, r2, r0 - adds r0, r0, r3 - ldrh r0, [r0] - lsrs r0, r0, #8 - strb r0, [r1, #3] - movs r0, #0xff - strb r0, [r1, #4] - ldrb r1, [r6] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - muls r1, r5, r1 - adds r2, r2, r1 - adds r2, r2, r3 - ldrh r1, [r2] - strh r1, [r0, #4] - bl Random - ldrb r2, [r6] - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - add r1, r8 - movs r2, #3 - ands r2, r0 - adds r2, #2 - ldrb r3, [r1, #0xb] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, #0xb] - ldrb r0, [r6] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - add r1, r8 - ldrb r3, [r1, #0xb] - lsls r2, r3, #0x1c - lsrs r2, r2, #0x18 - movs r0, #0xf - ands r0, r3 - orrs r0, r2 - strb r0, [r1, #0xb] - ldr r1, _0805251C - ldr r0, [r1] - adds r0, #5 - str r0, [r1] - b _0805253A - .align 2, 0 -_08052508: .4byte gUnknown_2023D28 -_0805250C: .4byte gUnknown_2023EB0 -_08052510: .4byte gUnknown_2023EEC -_08052514: .4byte gUnknown_2023F60 -_08052518: .4byte gUnknown_2022C0C -_0805251C: .4byte gUnknown_2023EB8 -_08052520: - ldr r3, _08052548 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] -_0805253A: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08052548: .4byte gUnknown_2023EB8 - thumb_func_end atkA3_disablelastusedattack - - thumb_func_start atkA4_trysetencore -atkA4_trysetencore: @ 0x0805254C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - movs r5, #0 - ldr r3, _08052640 - ldr r4, _08052644 - ldrb r1, [r4] - movs r0, #0x58 - muls r0, r1, r0 - adds r6, r3, #0 - adds r6, #0xc - adds r0, r0, r6 - ldr r2, _08052648 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r0, [r0] - mov sl, r3 - mov r8, r2 - ldr r2, _0805264C - mov sb, r2 - ldrh r1, [r1] - cmp r0, r1 - beq _080525A6 - mov ip, r4 - adds r7, r6, #0 - mov r6, r8 - movs r3, #0x58 -_08052586: - adds r5, #1 - cmp r5, #3 - bgt _080525A6 - lsls r2, r5, #1 - mov r0, ip - ldrb r1, [r0] - adds r0, r1, #0 - muls r0, r3, r0 - adds r2, r2, r0 - adds r2, r2, r7 - lsls r1, r1, #1 - adds r1, r1, r6 - ldrh r0, [r2] - ldrh r1, [r1] - cmp r0, r1 - bne _08052586 -_080525A6: - ldrb r0, [r4] - lsls r0, r0, #1 - add r0, r8 - ldrh r2, [r0] - cmp r2, #0xa5 - beq _080525BA - cmp r2, #0xe3 - beq _080525BA - cmp r2, #0x77 - bne _080525BC -_080525BA: - movs r5, #4 -_080525BC: - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - mov r2, sb - adds r3, r0, r2 - ldrh r0, [r3, #6] - cmp r0, #0 - bne _08052654 - cmp r5, #4 - beq _08052654 - movs r0, #0x58 - adds r2, r1, #0 - muls r2, r0, r2 - adds r0, r5, r2 - mov r1, sl - adds r1, #0x24 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _08052654 - lsls r0, r5, #1 - adds r0, r0, r2 - subs r1, #0x18 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r3, #6] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - add r0, sb - strb r5, [r0, #0xc] - bl Random - ldrb r2, [r4] - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - add r1, sb - movs r2, #3 - ands r2, r0 - adds r2, #3 - ldrb r3, [r1, #0xe] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, #0xe] - ldrb r0, [r4] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - add r1, sb - ldrb r3, [r1, #0xe] - lsls r2, r3, #0x1c - lsrs r2, r2, #0x18 - movs r0, #0xf - ands r0, r3 - orrs r0, r2 - strb r0, [r1, #0xe] - ldr r1, _08052650 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] - b _0805266E - .align 2, 0 -_08052640: .4byte gUnknown_2023D28 -_08052644: .4byte gUnknown_2023EB0 -_08052648: .4byte gUnknown_2023EEC -_0805264C: .4byte gUnknown_2023F60 -_08052650: .4byte gUnknown_2023EB8 -_08052654: - ldr r3, _0805267C - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] -_0805266E: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805267C: .4byte gUnknown_2023EB8 - thumb_func_end atkA4_trysetencore - - thumb_func_start atkA5_painsplitdmgcalc -atkA5_painsplitdmgcalc: @ 0x08052680 - push {r4, r5, r6, r7, lr} - ldr r6, _08052700 - ldr r0, _08052704 - mov ip, r0 - ldrb r0, [r0] - movs r7, #0x58 - adds r2, r0, #0 - muls r2, r7, r2 - adds r0, r6, #0 - adds r0, #0x50 - adds r0, r2, r0 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - bne _08052720 - ldr r5, _08052708 - ldrb r0, [r5] - muls r0, r7, r0 - adds r0, r0, r6 - ldrh r3, [r0, #0x28] - adds r0, r2, r6 - ldrh r1, [r0, #0x28] - adds r3, r3, r1 - asrs r3, r3, #1 - ldr r4, _0805270C - subs r1, r1, r3 - str r1, [r4] - ldr r2, _08052710 - strb r1, [r2] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - asrs r0, r0, #8 - strb r0, [r2, #1] - movs r0, #0xff - lsls r0, r0, #0x10 - ands r0, r1 - asrs r0, r0, #0x10 - strb r0, [r2, #2] - lsrs r1, r1, #0x18 - strb r1, [r2, #3] - ldrb r0, [r5] - muls r0, r7, r0 - adds r0, r0, r6 - ldrh r0, [r0, #0x28] - subs r0, r0, r3 - str r0, [r4] - ldr r2, _08052714 - mov r0, ip - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #4 - adds r0, r0, r2 - ldr r1, _08052718 - str r1, [r0] - ldr r1, _0805271C - ldr r0, [r1] - adds r0, #5 - str r0, [r1] - b _0805273A - .align 2, 0 -_08052700: .4byte gUnknown_2023D28 -_08052704: .4byte gUnknown_2023EB0 -_08052708: .4byte gUnknown_2023EAF -_0805270C: .4byte gUnknown_2023E94 -_08052710: .4byte gUnknown_2024118 -_08052714: .4byte gUnknown_2024020 -_08052718: .4byte 0x0000FFFF -_0805271C: .4byte gUnknown_2023EB8 -_08052720: - ldr r3, _08052740 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] -_0805273A: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08052740: .4byte gUnknown_2023EB8 - thumb_func_end atkA5_painsplitdmgcalc - - thumb_func_start atkA6_settypetorandomresistance -atkA6_settypetorandomresistance: @ 0x08052744 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r1, _080527AC - ldr r4, _080527B0 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r2, r0, r1 - ldrh r1, [r2] - cmp r1, #0 - beq _0805278E - ldr r0, _080527B4 - cmp r1, r0 - beq _0805278E - ldrh r0, [r2] - bl IsTwoTurnsMove - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0805282C - ldr r1, _080527B8 - ldr r2, _080527BC - ldrb r0, [r4] - adds r0, r0, r2 - ldrb r2, [r0] - movs r0, #0x58 - muls r0, r2, r0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #5 - ands r0, r1 - cmp r0, #0 - beq _0805282C -_0805278E: - ldr r3, _080527C0 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08052918 - .align 2, 0 -_080527AC: .4byte gUnknown_2023EF4 -_080527B0: .4byte gUnknown_2023EAF -_080527B4: .4byte 0x0000FFFF -_080527B8: .4byte gUnknown_2023D28 -_080527BC: .4byte gUnknown_2023F14 -_080527C0: .4byte gUnknown_2023EB8 -_080527C4: - mov r0, ip - strb r5, [r0] - mov r1, sl - ldrb r0, [r1] - muls r0, r2, r0 - adds r0, r0, r7 - adds r0, #0x22 - strb r5, [r0] - ldr r1, _080527E8 - movs r0, #0xfd - strb r0, [r1] - movs r0, #3 - strb r0, [r1, #1] - strb r5, [r1, #2] - movs r0, #0xff - strb r0, [r1, #3] - ldr r1, _080527EC - b _0805281A - .align 2, 0 -_080527E8: .4byte gUnknown_2022C0C -_080527EC: .4byte gUnknown_2023EB8 -_080527F0: - mov r0, r8 - adds r0, #1 - adds r0, r0, r3 - ldrb r2, [r0] - strb r2, [r4] - mov r4, sl - ldrb r0, [r4] - muls r0, r6, r0 - ldr r7, _08052824 - adds r0, r0, r7 - adds r0, #0x22 - strb r2, [r0] - ldr r1, _08052828 - movs r0, #0xfd - strb r0, [r1] - movs r0, #3 - strb r0, [r1, #1] - strb r2, [r1, #2] - movs r0, #0xff - strb r0, [r1, #3] - mov r1, ip -_0805281A: - ldr r0, [r1] - adds r0, #5 - str r0, [r1] - b _08052918 - .align 2, 0 -_08052824: .4byte gUnknown_2023D28 -_08052828: .4byte gUnknown_2022C0C -_0805282C: - movs r4, #0 - mov r8, r4 - movs r7, #0x7f - mov sb, r7 -_08052834: - bl Random - mov r4, sb - ands r4, r0 - cmp r4, #0x70 - bhi _08052834 - lsls r0, r4, #1 - adds r4, r0, r4 - ldr r6, _08052928 - adds r3, r4, r6 - ldr r1, _0805292C - ldr r2, _08052930 - ldrb r5, [r2] - lsls r0, r5, #1 - adds r0, r0, r1 - ldrb r1, [r3] - mov sl, r2 - ldrh r0, [r0] - cmp r1, r0 - bne _08052890 - adds r0, r4, #2 - adds r0, r0, r6 - ldrb r0, [r0] - cmp r0, #5 - bhi _08052890 - ldr r7, _08052934 - movs r2, #0x58 - adds r0, r5, #0 - muls r0, r2, r0 - adds r3, r0, r7 - movs r0, #0x21 - adds r0, r0, r3 - mov ip, r0 - adds r0, r4, #1 - adds r0, r0, r6 - ldrb r5, [r0] - mov r1, ip - ldrb r0, [r1] - adds r1, r5, #0 - cmp r0, r1 - beq _08052890 - adds r0, r3, #0 - adds r0, #0x22 - ldrb r0, [r0] - cmp r0, r1 - bne _080527C4 -_08052890: - movs r7, #1 - add r8, r7 - ldr r0, _08052938 - cmp r8, r0 - ble _08052834 - movs r0, #0 - mov r8, r0 - ldr r1, _0805293C - mov ip, r1 - ldr r3, _08052928 - adds r0, r4, #1 - adds r0, r0, r3 - mov sb, r0 - adds r5, r3, #0 -_080528AC: - ldrb r1, [r5] - cmp r1, #0xff - bgt _080528B6 - cmp r1, #0xfe - bge _080528F0 -_080528B6: - mov r4, sl - ldrb r2, [r4] - lsls r0, r2, #1 - ldr r7, _0805292C - adds r0, r0, r7 - ldrh r0, [r0] - cmp r1, r0 - bne _080528F0 - ldrb r0, [r5, #2] - cmp r0, #5 - bhi _080528F0 - movs r6, #0x58 - adds r0, r2, #0 - muls r0, r6, r0 - ldr r1, _08052934 - adds r2, r0, r1 - adds r4, r2, #0 - adds r4, #0x21 - ldrb r0, [r4] - mov r7, sb - ldrb r1, [r7] - cmp r0, r1 - beq _080528F0 - adds r0, r2, #0 - adds r0, #0x22 - ldrb r0, [r0] - cmp r0, r1 - beq _080528F0 - b _080527F0 -_080528F0: - adds r5, #3 - movs r0, #3 - add r8, r0 - ldr r0, _08052940 - cmp r8, r0 - bls _080528AC - mov r1, ip - ldr r2, [r1] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - mov r4, ip - str r1, [r4] -_08052918: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08052928: .4byte gUnknown_82EBB38 -_0805292C: .4byte gUnknown_2023EFC -_08052930: .4byte gUnknown_2023EAF -_08052934: .4byte gUnknown_2023D28 -_08052938: .4byte 0x000003E7 -_0805293C: .4byte gUnknown_2023EB8 -_08052940: .4byte 0x0000014F - thumb_func_end atkA6_settypetorandomresistance - - thumb_func_start atkA7_setalwayshitflag -atkA7_setalwayshitflag: @ 0x08052944 - push {r4, lr} - ldr r4, _08052988 - ldr r3, _0805298C - ldrb r1, [r3] - lsls r1, r1, #2 - adds r1, r1, r4 - ldr r0, [r1] - movs r2, #0x19 - rsbs r2, r2, #0 - ands r0, r2 - str r0, [r1] - ldrb r1, [r3] - lsls r1, r1, #2 - adds r1, r1, r4 - ldr r0, [r1] - movs r2, #0x10 - orrs r0, r2 - str r0, [r1] - ldr r2, _08052990 - ldrb r1, [r3] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, _08052994 - ldrb r1, [r1] - strb r1, [r0, #0x15] - ldr r1, _08052998 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08052988: .4byte gUnknown_2023F50 -_0805298C: .4byte gUnknown_2023EB0 -_08052990: .4byte gUnknown_2023F60 -_08052994: .4byte gUnknown_2023EAF -_08052998: .4byte gUnknown_2023EB8 - thumb_func_end atkA7_setalwayshitflag - - thumb_func_start atkA8_copymovepermanently -atkA8_copymovepermanently: @ 0x0805299C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - ldr r0, _08052AFC - ldr r1, _08052B00 - adds r5, r1, #0 - strh r5, [r0] - ldr r3, _08052B04 - ldr r2, _08052B08 - ldrb r1, [r2] - movs r0, #0x58 - adds r4, r1, #0 - muls r4, r0, r4 - adds r0, r3, #0 - adds r0, #0x50 - adds r0, r4, r0 - ldr r1, [r0] - movs r0, #0x80 - lsls r0, r0, #0xe - ands r1, r0 - mov ip, r3 - mov sl, r2 - cmp r1, #0 - beq _080529D4 - b _08052B28 -_080529D4: - ldr r0, _08052B0C - ldr r2, _08052B10 - ldrb r1, [r2] - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r1, [r1] - mov sb, r0 - mov r8, r2 - cmp r1, #0xa5 - bne _080529EA - b _08052B28 -_080529EA: - cmp r1, #0 - bne _080529F0 - b _08052B28 -_080529F0: - cmp r1, r5 - bne _080529F6 - b _08052B28 -_080529F6: - cmp r1, #0xa6 - bne _080529FC - b _08052B28 -_080529FC: - movs r7, #0 - mov r5, sb - mov r0, ip - adds r0, #0xc - adds r1, r4, r0 - mov r3, r8 -_08052A08: - ldrh r2, [r1] - cmp r2, #0xa6 - beq _08052A1A - ldrb r0, [r3] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r0, [r0] - cmp r2, r0 - beq _08052A22 -_08052A1A: - adds r1, #2 - adds r7, #1 - cmp r7, #3 - ble _08052A08 -_08052A22: - cmp r7, #4 - beq _08052A28 - b _08052B28 -_08052A28: - ldr r4, _08052B14 - ldrb r1, [r4] - lsls r1, r1, #1 - mov r2, sl - ldrb r0, [r2] - movs r3, #0x58 - muls r0, r3, r0 - adds r1, r1, r0 - mov r6, ip - adds r6, #0xc - adds r1, r1, r6 - mov r2, r8 - ldrb r0, [r2] - lsls r0, r0, #1 - add r0, sb - ldrh r0, [r0] - strh r0, [r1] - mov r1, sl - ldrb r0, [r1] - adds r2, r0, #0 - muls r2, r3, r2 - ldrb r4, [r4] - adds r2, r2, r4 - mov r5, ip - adds r5, #0x24 - adds r2, r2, r5 - ldr r4, _08052B18 - mov r1, r8 - ldrb r0, [r1] - lsls r0, r0, #1 - add r0, sb - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r0, [r0, #4] - strb r0, [r2] - ldr r1, _08052B1C - mov r2, sl - ldrb r0, [r2] - strb r0, [r1] - movs r7, #0 - ldrb r0, [r2] - muls r0, r3, r0 - adds r4, r0, r5 - adds r3, r0, #0 - add r2, sp, #4 - add r5, sp, #0xc -_08052A8A: - adds r0, r3, r6 - ldrh r0, [r0] - strh r0, [r2] - adds r1, r5, r7 - ldrb r0, [r4] - strb r0, [r1] - adds r4, #1 - adds r3, #2 - adds r2, #2 - adds r7, #1 - cmp r7, #3 - ble _08052A8A - add r2, sp, #4 - mov r0, sl - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - add r0, ip - adds r0, #0x3b - ldrb r0, [r0] - strb r0, [r2, #0xc] - str r2, [sp] - movs r0, #0 - movs r1, #3 - movs r2, #0 - movs r3, #0x10 - bl BtlController_EmitSetMonData - ldr r0, _08052B1C - ldrb r0, [r0] - bl MarkBattlerForControllerExec - ldr r1, _08052B20 - movs r0, #0xfd - strb r0, [r1] - movs r0, #2 - strb r0, [r1, #1] - ldr r3, _08052B0C - ldr r2, _08052B10 - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r0, [r0] - strb r0, [r1, #2] - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r0, [r0] - lsrs r0, r0, #8 - strb r0, [r1, #3] - movs r0, #0xff - strb r0, [r1, #4] - ldr r1, _08052B24 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] - b _08052B42 - .align 2, 0 -_08052AFC: .4byte gUnknown_2023E90 -_08052B00: .4byte 0x0000FFFF -_08052B04: .4byte gUnknown_2023D28 -_08052B08: .4byte gUnknown_2023EAF -_08052B0C: .4byte gUnknown_2023EE4 -_08052B10: .4byte gUnknown_2023EB0 -_08052B14: .4byte gUnknown_2023E8C -_08052B18: .4byte gUnknown_82ED220 -_08052B1C: .4byte gUnknown_2023D08 -_08052B20: .4byte gUnknown_2022C0C -_08052B24: .4byte gUnknown_2023EB8 -_08052B28: - ldr r3, _08052B54 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] -_08052B42: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08052B54: .4byte gUnknown_2023EB8 - thumb_func_end atkA8_copymovepermanently - - thumb_func_start IsTwoTurnsMove -IsTwoTurnsMove: @ 0x08052B58 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r2, _08052B88 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r0, [r1] - cmp r0, #0x91 - beq _08052B82 - cmp r0, #0x27 - beq _08052B82 - cmp r0, #0x4b - beq _08052B82 - cmp r0, #0x97 - beq _08052B82 - cmp r0, #0x9b - beq _08052B82 - cmp r0, #0x1a - bne _08052B8C -_08052B82: - movs r0, #1 - b _08052B8E - .align 2, 0 -_08052B88: .4byte gUnknown_82ED220 -_08052B8C: - movs r0, #0 -_08052B8E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsTwoTurnsMove - - thumb_func_start IsInvalidForSleepTalkOrAssist -IsInvalidForSleepTalkOrAssist: @ 0x08052B94 - push {lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - beq _08052BB2 - cmp r1, #0xd6 - beq _08052BB2 - movs r0, #0x89 - lsls r0, r0, #1 - cmp r1, r0 - beq _08052BB2 - cmp r1, #0x77 - beq _08052BB2 - cmp r1, #0x76 - bne _08052BB6 -_08052BB2: - movs r0, #1 - b _08052BB8 -_08052BB6: - movs r0, #0 -_08052BB8: - pop {r1} - bx r1 - thumb_func_end IsInvalidForSleepTalkOrAssist - - thumb_func_start AttacksThisTurn -AttacksThisTurn: @ 0x08052BBC - push {lr} - lsls r1, r1, #0x10 - lsrs r2, r1, #0x10 - ldr r1, _08052C14 - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0] - adds r3, r1, #0 - cmp r0, #0x97 - bne _08052BE0 - ldr r0, _08052C18 - ldrh r1, [r0] - movs r0, #0x60 - ands r0, r1 - cmp r0, #0 - bne _08052C20 -_08052BE0: - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r0, [r0] - cmp r0, #0x91 - beq _08052C02 - cmp r0, #0x27 - beq _08052C02 - cmp r0, #0x4b - beq _08052C02 - cmp r0, #0x97 - beq _08052C02 - cmp r0, #0x9b - beq _08052C02 - cmp r0, #0x1a - bne _08052C20 -_08052C02: - ldr r0, _08052C1C - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x14 - ands r0, r1 - cmp r0, #0 - beq _08052C20 - movs r0, #1 - b _08052C22 - .align 2, 0 -_08052C14: .4byte gUnknown_82ED220 -_08052C18: .4byte gUnknown_2024070 -_08052C1C: .4byte gUnknown_2023F24 -_08052C20: - movs r0, #2 -_08052C22: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end AttacksThisTurn - - thumb_func_start atkA9_trychoosesleeptalkmove -atkA9_trychoosesleeptalkmove: @ 0x08052C28 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - movs r6, #0 - movs r5, #0 - ldr r0, _08052CB8 - mov sb, r0 - movs r1, #0x58 - mov r8, r1 - ldr r7, _08052CBC - movs r0, #0x84 - lsls r0, r0, #1 - mov sl, r0 -_08052C46: - lsls r4, r5, #1 - mov r1, sb - ldrb r0, [r1] - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - adds r0, r4, r0 - adds r0, r0, r7 - ldrh r0, [r0] - bl IsInvalidForSleepTalkOrAssist - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08052C86 - mov r1, sb - ldrb r0, [r1] - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - adds r0, r4, r0 - adds r0, r0, r7 - ldrh r1, [r0] - cmp r1, sl - beq _08052C86 - cmp r1, #0xfd - beq _08052C86 - adds r0, r1, #0 - bl IsTwoTurnsMove - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08052C94 -_08052C86: - ldr r1, _08052CC0 - lsls r0, r5, #2 - adds r0, r0, r1 - ldr r0, [r0] - orrs r6, r0 - lsls r0, r6, #0x18 - lsrs r6, r0, #0x18 -_08052C94: - adds r5, #1 - cmp r5, #3 - ble _08052C46 - ldr r0, _08052CB8 - ldrb r0, [r0] - adds r1, r6, #0 - movs r2, #0xfd - bl CheckMoveLimitations - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0xf - bne _08052CC8 - ldr r1, _08052CC4 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] - b _08052D2C - .align 2, 0 -_08052CB8: .4byte gUnknown_2023EAF -_08052CBC: .4byte gUnknown_2023D34 -_08052CC0: .4byte gUnknown_82FACB4 -_08052CC4: .4byte gUnknown_2023EB8 -_08052CC8: - movs r7, #3 - ldr r4, _08052D3C -_08052CCC: - bl Random - adds r5, r7, #0 - ands r5, r0 - lsls r0, r5, #2 - adds r0, r0, r4 - ldr r0, [r0] - ands r0, r6 - cmp r0, #0 - bne _08052CCC - ldr r4, _08052D40 - ldr r2, _08052D44 - lsls r1, r5, #1 - ldr r0, _08052D48 - ldrb r3, [r0] - movs r0, #0x58 - muls r0, r3, r0 - adds r1, r1, r0 - adds r2, #0xc - adds r1, r1, r2 - ldrh r0, [r1] - strh r0, [r4] - ldr r0, _08052D4C - strb r5, [r0] - ldr r2, _08052D50 - ldr r0, [r2] - ldr r1, _08052D54 - ands r0, r1 - str r0, [r2] - ldrh r0, [r4] - movs r1, #0 - bl GetMoveTarget - ldr r1, _08052D58 - strb r0, [r1] - ldr r3, _08052D5C - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] -_08052D2C: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08052D3C: .4byte gUnknown_82FACB4 -_08052D40: .4byte gUnknown_2023E92 -_08052D44: .4byte gUnknown_2023D28 -_08052D48: .4byte gUnknown_2023EAF -_08052D4C: .4byte gUnknown_2023E8C -_08052D50: .4byte gUnknown_2023F24 -_08052D54: .4byte 0xFFFFFBFF -_08052D58: .4byte gUnknown_2023EB0 -_08052D5C: .4byte gUnknown_2023EB8 - thumb_func_end atkA9_trychoosesleeptalkmove - - thumb_func_start atkAA_setdestinybond -atkAA_setdestinybond: @ 0x08052D60 - ldr r1, _08052D84 - ldr r0, _08052D88 - ldrb r2, [r0] - movs r0, #0x58 - muls r2, r0, r2 - adds r1, #0x50 - adds r2, r2, r1 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0x12 - orrs r0, r1 - str r0, [r2] - ldr r1, _08052D8C - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - bx lr - .align 2, 0 -_08052D84: .4byte gUnknown_2023D28 -_08052D88: .4byte gUnknown_2023EAF -_08052D8C: .4byte gUnknown_2023EB8 - thumb_func_end atkAA_setdestinybond - - thumb_func_start TrySetDestinyBondToHappen -TrySetDestinyBondToHappen: @ 0x08052D90 - push {r4, r5, lr} - ldr r0, _08052DE0 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r4, _08052DE4 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r1, _08052DE8 - ldrb r2, [r4] - movs r0, #0x58 - muls r0, r2, r0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x12 - ands r0, r1 - cmp r0, #0 - beq _08052DDA - cmp r5, r3 - beq _08052DDA - ldr r2, _08052DEC - ldr r1, [r2] - movs r0, #0x80 - lsls r0, r0, #0x11 - ands r0, r1 - cmp r0, #0 - bne _08052DDA - movs r0, #0x40 - orrs r1, r0 - str r1, [r2] -_08052DDA: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08052DE0: .4byte gUnknown_2023EAF -_08052DE4: .4byte gUnknown_2023EB0 -_08052DE8: .4byte gUnknown_2023D28 -_08052DEC: .4byte gUnknown_2023F24 - thumb_func_end TrySetDestinyBondToHappen - - thumb_func_start atkAB_trysetdestinybondtohappen -atkAB_trysetdestinybondtohappen: @ 0x08052DF0 - push {lr} - bl TrySetDestinyBondToHappen - ldr r1, _08052E04 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08052E04: .4byte gUnknown_2023EB8 - thumb_func_end atkAB_trysetdestinybondtohappen - - thumb_func_start atkAC_remaininghptopower -atkAC_remaininghptopower: @ 0x08052E08 - push {lr} - ldr r2, _08052E5C - ldr r0, _08052E60 - ldrb r1, [r0] - movs r0, #0x58 - muls r1, r0, r1 - adds r1, r1, r2 - movs r2, #0x28 - ldrsh r0, [r1, r2] - movs r2, #0x2c - ldrsh r1, [r1, r2] - movs r2, #0x30 - bl GetScaledHPFraction - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r3, #0 - ldr r0, _08052E64 - ldrb r2, [r0] - cmp r1, r2 - ble _08052E42 - adds r2, r0, #0 -_08052E34: - adds r3, #2 - cmp r3, #0xb - bgt _08052E42 - adds r0, r3, r2 - ldrb r0, [r0] - cmp r1, r0 - bgt _08052E34 -_08052E42: - ldr r2, _08052E68 - ldr r1, _08052E64 - adds r0, r3, #1 - adds r0, r0, r1 - ldrb r0, [r0] - strh r0, [r2] - ldr r1, _08052E6C - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08052E5C: .4byte gUnknown_2023D28 -_08052E60: .4byte gUnknown_2023EAF -_08052E64: .4byte gUnknown_82ECD8C -_08052E68: .4byte gUnknown_20240A4 -_08052E6C: .4byte gUnknown_2023EB8 - thumb_func_end atkAC_remaininghptopower - - thumb_func_start atkAD_tryspiteppreduce -atkAD_tryspiteppreduce: @ 0x08052E70 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - ldr r4, _08052FF0 - ldr r1, _08052FF4 - ldrb r3, [r1] - lsls r0, r3, #1 - adds r0, r0, r4 - ldrh r2, [r0] - mov r8, r1 - cmp r2, #0 - bne _08052E90 - b _08053018 -_08052E90: - ldr r0, _08052FF8 - cmp r2, r0 - bne _08052E98 - b _08053018 -_08052E98: - movs r7, #0 - ldr r0, _08052FFC - movs r1, #0x58 - muls r1, r3, r1 - adds r3, r0, #0 - adds r3, #0xc - adds r1, r1, r3 - ldrh r1, [r1] - cmp r2, r1 - beq _08052ED0 - adds r6, r4, #0 - mov r5, r8 - adds r4, r3, #0 - movs r3, #0x58 -_08052EB4: - adds r7, #1 - cmp r7, #3 - bgt _08052ED0 - ldrb r0, [r5] - lsls r2, r0, #1 - adds r2, r2, r6 - lsls r1, r7, #1 - muls r0, r3, r0 - adds r1, r1, r0 - adds r1, r1, r4 - ldrh r0, [r2] - ldrh r1, [r1] - cmp r0, r1 - bne _08052EB4 -_08052ED0: - cmp r7, #4 - bne _08052ED6 - b _08053018 -_08052ED6: - mov r4, r8 - ldrb r0, [r4] - movs r1, #0x58 - mov sb, r1 - mov r3, sb - muls r3, r0, r3 - adds r0, r3, #0 - adds r0, r7, r0 - ldr r1, _08052FFC - adds r1, #0x24 - mov sl, r1 - add r0, sl - ldrb r0, [r0] - cmp r0, #1 - bhi _08052EF6 - b _08053018 -_08052EF6: - bl Random - movs r1, #3 - ands r1, r0 - adds r6, r1, #2 - ldrb r0, [r4] - mov r3, sb - muls r3, r0, r3 - adds r0, r3, #0 - adds r0, r7, r0 - add r0, sl - ldrb r0, [r0] - cmp r0, r6 - bge _08052F14 - adds r6, r0, #0 -_08052F14: - ldr r1, _08053000 - movs r5, #0xfd - strb r5, [r1] - movs r0, #2 - strb r0, [r1, #1] - ldr r2, _08052FF0 - mov r3, r8 - ldrb r0, [r3] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strb r0, [r1, #2] - ldrb r0, [r3] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - lsrs r0, r0, #8 - strb r0, [r1, #3] - movs r0, #0xff - strb r0, [r1, #4] - ldr r4, _08053004 - adds r0, r4, #0 - adds r1, r6, #0 - movs r2, #0 - movs r3, #1 - bl sub_080089D8 - strb r5, [r4] - movs r0, #1 - strb r0, [r4, #1] - strb r0, [r4, #2] - strb r0, [r4, #3] - strb r6, [r4, #4] - subs r0, #2 - strb r0, [r4, #5] - mov r1, r8 - ldrb r0, [r1] - mov r1, sb - muls r1, r0, r1 - adds r1, r7, r1 - add r1, sl - ldrb r0, [r1] - subs r0, r0, r6 - strb r0, [r1] - ldr r4, _08053008 - mov r3, r8 - ldrb r0, [r3] - strb r0, [r4] - ldr r1, _0805300C - ldrb r3, [r4] - lsls r0, r3, #3 - subs r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #0x18] - lsrs r1, r1, #4 - ldr r2, _08053010 - lsls r0, r7, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _08052FC8 - mov r2, sb - muls r2, r3, r2 - ldr r0, _08052FFC - adds r0, #0x50 - adds r0, r2, r0 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xe - ands r0, r1 - cmp r0, #0 - bne _08052FC8 - adds r1, r7, #0 - adds r1, #9 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r3, sl - adds r0, r2, r3 - adds r0, r0, r7 - str r0, [sp] - movs r0, #0 - movs r2, #0 - movs r3, #1 - bl BtlController_EmitSetMonData - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_08052FC8: - ldr r1, _08053014 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] - ldr r1, _08052FFC - ldr r0, _08052FF4 - ldrb r2, [r0] - movs r0, #0x58 - muls r0, r2, r0 - adds r0, r7, r0 - adds r1, #0x24 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _08053032 - adds r0, r2, #0 - bl CancelMultiTurnMoves - b _08053032 - .align 2, 0 -_08052FF0: .4byte gUnknown_2023EEC -_08052FF4: .4byte gUnknown_2023EB0 -_08052FF8: .4byte 0x0000FFFF -_08052FFC: .4byte gUnknown_2023D28 -_08053000: .4byte gUnknown_2022C0C -_08053004: .4byte gUnknown_2022C1C -_08053008: .4byte gUnknown_2023D08 -_0805300C: .4byte gUnknown_2023F60 -_08053010: .4byte gUnknown_82FACB4 -_08053014: .4byte gUnknown_2023EB8 -_08053018: - ldr r3, _08053044 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] -_08053032: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08053044: .4byte gUnknown_2023EB8 - thumb_func_end atkAD_tryspiteppreduce - - thumb_func_start atkAE_healpartystatus -atkAE_healpartystatus: @ 0x08053048 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - movs r4, #0 - str r4, [sp, #4] - mov r8, r4 - ldr r0, _080530B8 - ldrh r0, [r0] - cmp r0, #0xd7 - beq _08053064 - b _0805324E -_08053064: - ldr r6, _080530BC - mov r0, r8 - strb r0, [r6, #5] - ldr r5, _080530C0 - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, r0, #0x18 - ldr r1, _080530C4 - mov sl, r1 - cmp r0, #0 - bne _08053080 - ldr r2, _080530C8 - mov sl, r2 -_08053080: - ldr r4, _080530CC - ldrb r3, [r5] - movs r7, #0x58 - adds r2, r3, #0 - muls r2, r7, r2 - adds r0, r2, r4 - adds r1, r0, #0 - adds r1, #0x20 - ldrb r0, [r1] - cmp r0, #0x2b - beq _080530D4 - adds r0, r4, #0 - adds r0, #0x4c - adds r0, r2, r0 - mov r1, r8 - str r1, [r0] - ldrb r0, [r5] - adds r2, r0, #0 - muls r2, r7, r2 - adds r0, r4, #0 - adds r0, #0x50 - adds r2, r2, r0 - ldr r0, [r2] - ldr r1, _080530D0 - ands r0, r1 - str r0, [r2] - b _080530E4 - .align 2, 0 -_080530B8: .4byte gUnknown_2023E8E -_080530BC: .4byte gUnknown_2023FD6 -_080530C0: .4byte gUnknown_2023EAF -_080530C4: .4byte gUnknown_20243E8 -_080530C8: .4byte gUnknown_2024190 -_080530CC: .4byte gUnknown_2023D28 -_080530D0: .4byte 0xF7FFFFFF -_080530D4: - ldrb r1, [r1] - adds r0, r3, #0 - bl RecordAbilityBattle - ldrb r0, [r6, #5] - movs r1, #1 - orrs r0, r1 - strb r0, [r6, #5] -_080530E4: - ldr r7, _08053158 - ldr r0, _0805315C - ldrb r0, [r0] - bl sub_080A630C - movs r2, #2 - mov sb, r2 - mov r1, sb - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - ldr r1, _08053160 - strb r0, [r1, #0x17] - strb r0, [r7] - ldr r0, _08053164 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0805318A - ldr r0, _08053168 - ldrb r2, [r0] - ldr r1, _0805316C - ldrb r3, [r7] - lsls r0, r3, #2 - adds r0, r0, r1 - ldr r0, [r0] - ands r2, r0 - cmp r2, #0 - bne _0805318A - ldr r5, _08053170 - movs r6, #0x58 - adds r4, r3, #0 - muls r4, r6, r4 - adds r0, r4, r5 - adds r1, r0, #0 - adds r1, #0x20 - ldrb r0, [r1] - cmp r0, #0x2b - beq _08053178 - adds r0, r5, #0 - adds r0, #0x4c - adds r0, r4, r0 - str r2, [r0] - ldrb r0, [r7] - adds r2, r0, #0 - muls r2, r6, r2 - adds r0, r5, #0 - adds r0, #0x50 - adds r2, r2, r0 - ldr r0, [r2] - ldr r1, _08053174 - ands r0, r1 - str r0, [r2] - b _0805318A - .align 2, 0 -_08053158: .4byte gUnknown_2023D08 -_0805315C: .4byte gUnknown_2023EAF -_08053160: .4byte gUnknown_2024118 -_08053164: .4byte gUnknown_2022C90 -_08053168: .4byte gUnknown_2023EB4 -_0805316C: .4byte gUnknown_82FACB4 -_08053170: .4byte gUnknown_2023D28 -_08053174: .4byte 0xF7FFFFFF -_08053178: - ldrb r1, [r1] - adds r0, r3, #0 - bl RecordAbilityBattle - ldr r1, _080531D0 - ldrb r0, [r1, #5] - mov r2, sb - orrs r0, r2 - strb r0, [r1, #5] -_0805318A: - movs r6, #0 - ldr r7, _080531D4 -_0805318E: - movs r0, #0x64 - adds r4, r6, #0 - muls r4, r0, r4 - add r4, sl - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r4, #0 - movs r1, #0x2e - bl GetMonData - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r5, #0 - beq _08053246 - movs r0, #0xce - lsls r0, r0, #1 - cmp r5, r0 - beq _08053246 - ldr r2, _080531D8 - ldr r0, _080531DC - ldrb r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r0, r6 - bne _080531E0 - movs r0, #0x58 - muls r0, r1, r0 - b _08053210 - .align 2, 0 -_080531D0: .4byte gUnknown_2023FD6 -_080531D4: .4byte gUnknown_2023D28 -_080531D8: .4byte gUnknown_2023D12 -_080531DC: .4byte gUnknown_2023EAF -_080531E0: - ldr r0, _08053218 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08053228 - ldr r0, _0805321C - ldrb r3, [r0] - lsls r0, r3, #1 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r0, r6 - bne _08053228 - ldr r0, _08053220 - ldrb r1, [r0] - ldr r2, _08053224 - lsls r0, r3, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _08053228 - movs r0, #0x58 - muls r0, r3, r0 -_08053210: - adds r0, r0, r7 - adds r0, #0x20 - ldrb r0, [r0] - b _08053234 - .align 2, 0 -_08053218: .4byte gUnknown_2022C90 -_0805321C: .4byte gUnknown_2023D08 -_08053220: .4byte gUnknown_2023EB4 -_08053224: .4byte gUnknown_82FACB4 -_08053228: - adds r0, r5, #0 - adds r1, r4, #0 - bl GetAbilityBySpecies - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_08053234: - cmp r0, #0x2b - beq _08053246 - movs r0, #1 - lsls r0, r6 - mov r1, r8 - orrs r1, r0 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 -_08053246: - adds r6, #1 - cmp r6, #5 - ble _0805318E - b _080532CC -_0805324E: - ldr r1, _08053308 - movs r0, #4 - strb r0, [r1, #5] - movs r2, #0x3f - mov r8, r2 - ldr r3, _0805330C - ldr r2, _08053310 - ldrb r0, [r2] - movs r5, #0x58 - muls r0, r5, r0 - movs r1, #0x4c - adds r1, r1, r3 - mov sb, r1 - add r0, sb - str r4, [r0] - ldrb r0, [r2] - adds r1, r0, #0 - muls r1, r5, r1 - adds r7, r3, #0 - adds r7, #0x50 - adds r1, r1, r7 - ldr r0, [r1] - ldr r6, _08053314 - ands r0, r6 - str r0, [r1] - ldrb r0, [r2] - bl sub_080A630C - movs r1, #2 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - ldr r4, _08053318 - strb r0, [r4] - ldr r0, _0805331C - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _080532CC - ldr r0, _08053320 - ldrb r2, [r0] - ldr r1, _08053324 - ldrb r3, [r4] - lsls r0, r3, #2 - adds r0, r0, r1 - ldr r0, [r0] - ands r2, r0 - cmp r2, #0 - bne _080532CC - adds r0, r3, #0 - muls r0, r5, r0 - add r0, sb - str r2, [r0] - ldrb r0, [r4] - adds r1, r0, #0 - muls r1, r5, r1 - adds r1, r1, r7 - ldr r0, [r1] - ands r0, r6 - str r0, [r1] -_080532CC: - mov r2, r8 - cmp r2, #0 - beq _080532EE - ldr r4, _08053318 - ldr r0, _08053310 - ldrb r0, [r0] - strb r0, [r4] - add r0, sp, #4 - str r0, [sp] - movs r0, #0 - movs r1, #0x28 - movs r3, #4 - bl BtlController_EmitSetMonData - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_080532EE: - ldr r1, _08053328 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08053308: .4byte gUnknown_2023FD6 -_0805330C: .4byte gUnknown_2023D28 -_08053310: .4byte gUnknown_2023EAF -_08053314: .4byte 0xF7FFFFFF -_08053318: .4byte gUnknown_2023D08 -_0805331C: .4byte gUnknown_2022C90 -_08053320: .4byte gUnknown_2023EB4 -_08053324: .4byte gUnknown_82FACB4 -_08053328: .4byte gUnknown_2023EB8 - thumb_func_end atkAE_healpartystatus - - thumb_func_start atkAF_cursetarget -atkAF_cursetarget: @ 0x0805332C - push {r4, r5, lr} - ldr r5, _0805336C - ldr r0, _08053370 - ldrb r0, [r0] - movs r4, #0x58 - adds r1, r0, #0 - muls r1, r4, r1 - adds r0, r5, #0 - adds r0, #0x50 - adds r1, r1, r0 - ldr r2, [r1] - movs r3, #0x80 - lsls r3, r3, #0x15 - adds r0, r2, #0 - ands r0, r3 - cmp r0, #0 - beq _08053378 - ldr r3, _08053374 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _0805339C - .align 2, 0 -_0805336C: .4byte gUnknown_2023D28 -_08053370: .4byte gUnknown_2023EB0 -_08053374: .4byte gUnknown_2023EB8 -_08053378: - orrs r2, r3 - str r2, [r1] - ldr r1, _080533A4 - ldr r0, _080533A8 - ldrb r0, [r0] - muls r0, r4, r0 - adds r0, r0, r5 - ldrh r0, [r0, #0x2c] - lsrs r0, r0, #1 - str r0, [r1] - cmp r0, #0 - bne _08053394 - movs r0, #1 - str r0, [r1] -_08053394: - ldr r1, _080533AC - ldr r0, [r1] - adds r0, #5 - str r0, [r1] -_0805339C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080533A4: .4byte gUnknown_2023E94 -_080533A8: .4byte gUnknown_2023EAF -_080533AC: .4byte gUnknown_2023EB8 - thumb_func_end atkAF_cursetarget - - thumb_func_start atkB0_trysetspikes -atkB0_trysetspikes: @ 0x080533B0 - push {r4, lr} - ldr r4, _08053404 - ldrb r0, [r4] - bl GetBattlerSide - movs r1, #1 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08053408 - lsls r2, r0, #1 - adds r0, r2, r0 - lsls r0, r0, #2 - adds r3, r0, r1 - ldrb r0, [r3, #0xa] - cmp r0, #3 - bne _08053414 - ldr r2, _0805340C - ldrb r1, [r4] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r2, #0x20 - orrs r1, r2 - strb r1, [r0] - ldr r3, _08053410 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _0805342E - .align 2, 0 -_08053404: .4byte gUnknown_2023EAF -_08053408: .4byte gUnknown_2023F38 -_0805340C: .4byte gUnknown_2024020 -_08053410: .4byte gUnknown_2023EB8 -_08053414: - ldr r1, _08053434 - adds r1, r2, r1 - ldrh r2, [r1] - movs r0, #0x10 - orrs r0, r2 - strh r0, [r1] - ldrb r0, [r3, #0xa] - adds r0, #1 - strb r0, [r3, #0xa] - ldr r1, _08053438 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] -_0805342E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08053434: .4byte gUnknown_2023F32 -_08053438: .4byte gUnknown_2023EB8 - thumb_func_end atkB0_trysetspikes - - thumb_func_start atkB1_setforesight -atkB1_setforesight: @ 0x0805343C - ldr r1, _08053460 - ldr r0, _08053464 - ldrb r2, [r0] - movs r0, #0x58 - muls r2, r0, r2 - adds r1, #0x50 - adds r2, r2, r1 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0x16 - orrs r0, r1 - str r0, [r2] - ldr r1, _08053468 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - bx lr - .align 2, 0 -_08053460: .4byte gUnknown_2023D28 -_08053464: .4byte gUnknown_2023EB0 -_08053468: .4byte gUnknown_2023EB8 - thumb_func_end atkB1_setforesight - - thumb_func_start atkB2_trysetperishsong -atkB2_trysetperishsong: @ 0x0805346C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - movs r6, #0 - movs r3, #0 - ldr r0, _080534B0 - adds r7, r0, #0 - ldr r0, _080534B4 - mov r8, r0 - ldrb r1, [r7] - cmp r6, r1 - bge _080534D8 - movs r5, #0x20 - ldr r0, _080534B8 - mov ip, r0 - ldr r0, _080534BC - adds r4, r0, #0 - adds r4, #0xf - ldr r2, _080534C0 -_08053494: - ldr r1, [r2] - adds r0, r1, #0 - ands r0, r5 - cmp r0, #0 - bne _080534AC - movs r0, #0x58 - muls r0, r3, r0 - add r0, ip - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x2b - bne _080534C4 -_080534AC: - adds r6, #1 - b _080534CC - .align 2, 0 -_080534B0: .4byte gUnknown_2023D10 -_080534B4: .4byte gUnknown_2023EAF -_080534B8: .4byte gUnknown_2023D28 -_080534BC: .4byte gUnknown_2023F60 -_080534C0: .4byte gUnknown_2023F50 -_080534C4: - orrs r1, r5 - str r1, [r2] - movs r0, #0x33 - strb r0, [r4] -_080534CC: - adds r4, #0x1c - adds r2, #4 - adds r3, #1 - ldrb r0, [r7] - cmp r3, r0 - blt _08053494 -_080534D8: - mov r1, r8 - ldrb r0, [r1] - bl PressurePPLoseOnUsingPerishSong - ldr r0, _08053504 - ldrb r0, [r0] - cmp r6, r0 - bne _0805350C - ldr r3, _08053508 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08053514 - .align 2, 0 -_08053504: .4byte gUnknown_2023D10 -_08053508: .4byte gUnknown_2023EB8 -_0805350C: - ldr r1, _08053520 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] -_08053514: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08053520: .4byte gUnknown_2023EB8 - thumb_func_end atkB2_trysetperishsong - - thumb_func_start atkB3_rolloutdamagecalculation -atkB3_rolloutdamagecalculation: @ 0x08053524 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r0, _08053548 - ldrb r1, [r0] - movs r0, #0x29 - ands r0, r1 - cmp r0, #0 - beq _08053558 - ldr r0, _0805354C - ldrb r0, [r0] - bl CancelMultiTurnMoves - ldr r1, _08053550 - ldr r0, _08053554 - str r0, [r1] - b _08053670 - .align 2, 0 -_08053548: .4byte gUnknown_2023F20 -_0805354C: .4byte gUnknown_2023EAF -_08053550: .4byte gUnknown_2023EB8 -_08053554: .4byte gUnknown_8286FE8 -_08053558: - ldr r2, _0805367C - ldr r1, _08053680 - ldrb r3, [r1] - movs r5, #0x58 - adds r0, r3, #0 - muls r0, r5, r0 - adds r4, r2, #0 - adds r4, #0x50 - adds r0, r0, r4 - ldr r0, [r0] - movs r7, #0x80 - lsls r7, r7, #5 - ands r0, r7 - adds r6, r1, #0 - mov sb, r2 - ldr r1, _08053684 - mov ip, r1 - ldr r2, _08053688 - mov r8, r2 - cmp r0, #0 - bne _080535CA - lsls r0, r3, #3 - subs r0, r0, r3 - lsls r0, r0, #2 - add r0, ip - ldrb r2, [r0, #0x11] - movs r1, #0x10 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #5 - orrs r1, r2 - strb r1, [r0, #0x11] - ldrb r1, [r6] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - add r0, ip - ldrb r2, [r0, #0x11] - movs r1, #0xf - ands r1, r2 - movs r2, #0x50 - orrs r1, r2 - strb r1, [r0, #0x11] - ldrb r0, [r6] - adds r1, r0, #0 - muls r1, r5, r1 - adds r1, r1, r4 - ldr r0, [r1] - orrs r0, r7 - str r0, [r1] - ldr r1, _0805368C - ldrb r0, [r6] - lsls r0, r0, #1 - adds r0, r0, r1 - mov r2, r8 - ldrh r1, [r2] - strh r1, [r0] -_080535CA: - ldrb r0, [r6] - lsls r2, r0, #3 - subs r2, r2, r0 - lsls r2, r2, #2 - add r2, ip - ldrb r3, [r2, #0x11] - lsls r1, r3, #0x1c - lsrs r1, r1, #0x1c - subs r1, #1 - movs r0, #0xf - ands r1, r0 - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #0x11] - cmp r1, #0 - bne _080535FE - ldrb r0, [r6] - adds r1, r0, #0 - muls r1, r5, r1 - adds r1, r1, r4 - ldr r0, [r1] - ldr r2, _08053690 - ands r0, r2 - str r0, [r1] -_080535FE: - ldr r3, _08053694 - ldr r2, _08053698 - mov r0, r8 - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #1] - strh r0, [r3] - movs r2, #1 - ldrb r1, [r6] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - mov r1, ip - adds r4, r0, r1 - ldrb r0, [r4, #0x11] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - movs r1, #5 - subs r1, r1, r0 - ldr r7, _0805369C - adds r5, r3, #0 - cmp r2, r1 - bge _0805364C - adds r1, r5, #0 - adds r3, r4, #0 - movs r4, #5 -_08053638: - ldrh r0, [r1] - lsls r0, r0, #1 - strh r0, [r1] - adds r2, #1 - ldrb r0, [r3, #0x11] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - subs r0, r4, r0 - cmp r2, r0 - blt _08053638 -_0805364C: - ldrb r1, [r6] - movs r0, #0x58 - muls r0, r1, r0 - mov r1, sb - adds r1, #0x50 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x17 - ands r0, r1 - cmp r0, #0 - beq _0805366A - ldrh r0, [r5] - lsls r0, r0, #1 - strh r0, [r5] -_0805366A: - ldr r0, [r7] - adds r0, #1 - str r0, [r7] -_08053670: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805367C: .4byte gUnknown_2023D28 -_08053680: .4byte gUnknown_2023EAF -_08053684: .4byte gUnknown_2023F60 -_08053688: .4byte gUnknown_2023E8E -_0805368C: .4byte gUnknown_2023F0C -_08053690: .4byte 0xFFFFEFFF -_08053694: .4byte gUnknown_20240A4 -_08053698: .4byte gUnknown_82ED220 -_0805369C: .4byte gUnknown_2023EB8 - thumb_func_end atkB3_rolloutdamagecalculation - - thumb_func_start atkB4_jumpifconfusedandstatmaxed -atkB4_jumpifconfusedandstatmaxed: @ 0x080536A0 - push {r4, r5, lr} - ldr r5, _080536F0 - ldr r0, _080536F4 - ldrb r1, [r0] - movs r0, #0x58 - adds r3, r1, #0 - muls r3, r0, r3 - adds r0, r5, #0 - adds r0, #0x50 - adds r0, r3, r0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - ldr r4, _080536F8 - cmp r0, #0 - beq _080536FC - ldr r2, [r4] - ldrb r0, [r2, #1] - adds r0, r0, r3 - adds r1, r5, #0 - adds r1, #0x18 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0xc - bne _080536FC - ldrb r1, [r2, #2] - ldrb r0, [r2, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _08053702 - .align 2, 0 -_080536F0: .4byte gUnknown_2023D28 -_080536F4: .4byte gUnknown_2023EB0 -_080536F8: .4byte gUnknown_2023EB8 -_080536FC: - ldr r0, [r4] - adds r0, #6 - str r0, [r4] -_08053702: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end atkB4_jumpifconfusedandstatmaxed - - thumb_func_start atkB5_furycuttercalc -atkB5_furycuttercalc: @ 0x08053708 - push {r4, r5, lr} - ldr r0, _08053730 - ldrb r1, [r0] - movs r0, #0x29 - ands r0, r1 - cmp r0, #0 - beq _08053744 - ldr r2, _08053734 - ldr r0, _08053738 - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0 - strb r1, [r0, #0x10] - ldr r1, _0805373C - ldr r0, _08053740 - str r0, [r1] - b _0805379C - .align 2, 0 -_08053730: .4byte gUnknown_2023F20 -_08053734: .4byte gUnknown_2023F60 -_08053738: .4byte gUnknown_2023EAF -_0805373C: .4byte gUnknown_2023EB8 -_08053740: .4byte gUnknown_8286FE8 -_08053744: - ldr r5, _080537A4 - ldr r4, _080537A8 - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r5 - ldrb r0, [r1, #0x10] - cmp r0, #5 - beq _0805375C - adds r0, #1 - strb r0, [r1, #0x10] -_0805375C: - ldr r3, _080537AC - ldr r2, _080537B0 - ldr r0, _080537B4 - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #1] - strh r0, [r3] - movs r2, #1 - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r4, _080537B8 - ldrb r1, [r0, #0x10] - cmp r2, r1 - bge _08053796 - adds r1, r3, #0 - adds r3, r0, #0 -_08053788: - ldrh r0, [r1] - lsls r0, r0, #1 - strh r0, [r1] - adds r2, #1 - ldrb r0, [r3, #0x10] - cmp r2, r0 - blt _08053788 -_08053796: - ldr r0, [r4] - adds r0, #1 - str r0, [r4] -_0805379C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080537A4: .4byte gUnknown_2023F60 -_080537A8: .4byte gUnknown_2023EAF -_080537AC: .4byte gUnknown_20240A4 -_080537B0: .4byte gUnknown_82ED220 -_080537B4: .4byte gUnknown_2023E8E -_080537B8: .4byte gUnknown_2023EB8 - thumb_func_end atkB5_furycuttercalc - - thumb_func_start atkB6_happinesstodamagecalculation -atkB6_happinesstodamagecalculation: @ 0x080537BC - push {r4, lr} - ldr r2, _080537E8 - ldr r0, _080537EC - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #0x79 - bne _080537FC - ldr r4, _080537F0 - ldr r2, _080537F4 - ldr r0, _080537F8 - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - adds r0, #0x2b - ldrb r1, [r0] - b _08053812 - .align 2, 0 -_080537E8: .4byte gUnknown_82ED220 -_080537EC: .4byte gUnknown_2023E8E -_080537F0: .4byte gUnknown_20240A4 -_080537F4: .4byte gUnknown_2023D28 -_080537F8: .4byte gUnknown_2023EAF -_080537FC: - ldr r4, _08053830 - ldr r2, _08053834 - ldr r0, _08053838 - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - adds r0, #0x2b - ldrb r0, [r0] - movs r1, #0xff - subs r1, r1, r0 -_08053812: - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #1 - movs r1, #0x19 - bl __divsi3 - strh r0, [r4] - ldr r1, _0805383C - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08053830: .4byte gUnknown_20240A4 -_08053834: .4byte gUnknown_2023D28 -_08053838: .4byte gUnknown_2023EAF -_0805383C: .4byte gUnknown_2023EB8 - thumb_func_end atkB6_happinesstodamagecalculation - - thumb_func_start atkB7_presentdamagecalculation -atkB7_presentdamagecalculation: @ 0x08053840 - push {r4, lr} - bl Random - movs r4, #0xff - ands r4, r0 - cmp r4, #0x65 - bgt _0805385C - ldr r1, _08053858 - movs r0, #0x28 - strh r0, [r1] - b _0805389E - .align 2, 0 -_08053858: .4byte gUnknown_20240A4 -_0805385C: - cmp r4, #0xb1 - bgt _0805386C - ldr r1, _08053868 - movs r0, #0x50 - strh r0, [r1] - b _0805389E - .align 2, 0 -_08053868: .4byte gUnknown_20240A4 -_0805386C: - cmp r4, #0xcb - bgt _0805387C - ldr r1, _08053878 - movs r0, #0x78 - strh r0, [r1] - b _0805389E - .align 2, 0 -_08053878: .4byte gUnknown_20240A4 -_0805387C: - ldr r3, _080538A8 - ldr r2, _080538AC - ldr r0, _080538B0 - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - ldrh r0, [r0, #0x2c] - lsrs r0, r0, #2 - str r0, [r3] - cmp r0, #0 - bne _08053898 - movs r0, #1 - str r0, [r3] -_08053898: - ldr r0, [r3] - rsbs r0, r0, #0 - str r0, [r3] -_0805389E: - cmp r4, #0xcb - bgt _080538BC - ldr r1, _080538B4 - ldr r0, _080538B8 - b _080538F6 - .align 2, 0 -_080538A8: .4byte gUnknown_2023E94 -_080538AC: .4byte gUnknown_2023D28 -_080538B0: .4byte gUnknown_2023EB0 -_080538B4: .4byte gUnknown_2023EB8 -_080538B8: .4byte gUnknown_8286FB8 -_080538BC: - ldr r2, _080538D8 - ldr r0, _080538DC - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - ldrh r1, [r0, #0x2c] - ldrh r0, [r0, #0x28] - cmp r1, r0 - bne _080538E8 - ldr r1, _080538E0 - ldr r0, _080538E4 - b _080538F6 - .align 2, 0 -_080538D8: .4byte gUnknown_2023D28 -_080538DC: .4byte gUnknown_2023EB0 -_080538E0: .4byte gUnknown_2023EB8 -_080538E4: .4byte gUnknown_8288483 -_080538E8: - ldr r2, _08053900 - ldrb r1, [r2] - movs r0, #0xf7 - ands r0, r1 - strb r0, [r2] - ldr r1, _08053904 - ldr r0, _08053908 -_080538F6: - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08053900: .4byte gUnknown_2023F20 -_08053904: .4byte gUnknown_2023EB8 -_08053908: .4byte gUnknown_8288469 - thumb_func_end atkB7_presentdamagecalculation - - thumb_func_start atkB8_setsafeguard -atkB8_setsafeguard: @ 0x0805390C - push {r4, r5, r6, r7, lr} - ldr r7, _08053940 - ldrb r0, [r7] - bl sub_080A630C - ldr r4, _08053944 - movs r6, #1 - adds r1, r6, #0 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r1, [r1] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08053950 - ldr r2, _08053948 - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - ldr r1, _0805394C - movs r0, #0 - strb r0, [r1, #5] - b _08053998 - .align 2, 0 -_08053940: .4byte gUnknown_2023EAF -_08053944: .4byte gUnknown_2023F32 -_08053948: .4byte gUnknown_2023F20 -_0805394C: .4byte gUnknown_2023FD6 -_08053950: - ldrb r0, [r7] - bl sub_080A630C - adds r1, r6, #0 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r0, [r1] - movs r2, #0x20 - orrs r0, r2 - strh r0, [r1] - ldrb r0, [r7] - bl sub_080A630C - ldr r5, _080539A8 - adds r1, r6, #0 - ands r1, r0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r4, #5 - strb r4, [r0, #6] - ldrb r0, [r7] - bl sub_080A630C - adds r1, r6, #0 - ands r1, r0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r1, [r7] - strb r1, [r0, #7] - ldr r0, _080539AC - strb r4, [r0, #5] -_08053998: - ldr r1, _080539B0 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080539A8: .4byte gUnknown_2023F38 -_080539AC: .4byte gUnknown_2023FD6 -_080539B0: .4byte gUnknown_2023EB8 - thumb_func_end atkB8_setsafeguard - - thumb_func_start atkB9_magnitudedamagecalculation -atkB9_magnitudedamagecalculation: @ 0x080539B4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #4 - bgt _080539E0 - ldr r1, _080539DC - movs r0, #0xa - strh r0, [r1] - movs r3, #4 - b _08053A4C - .align 2, 0 -_080539DC: .4byte gUnknown_20240A4 -_080539E0: - cmp r3, #0xe - bgt _080539F4 - ldr r1, _080539F0 - movs r0, #0x1e - strh r0, [r1] - movs r3, #5 - b _08053A4C - .align 2, 0 -_080539F0: .4byte gUnknown_20240A4 -_080539F4: - cmp r3, #0x22 - bgt _08053A08 - ldr r1, _08053A04 - movs r0, #0x32 - strh r0, [r1] - movs r3, #6 - b _08053A4C - .align 2, 0 -_08053A04: .4byte gUnknown_20240A4 -_08053A08: - cmp r3, #0x40 - bgt _08053A1C - ldr r1, _08053A18 - movs r0, #0x46 - strh r0, [r1] - movs r3, #7 - b _08053A4C - .align 2, 0 -_08053A18: .4byte gUnknown_20240A4 -_08053A1C: - cmp r3, #0x54 - bgt _08053A30 - ldr r1, _08053A2C - movs r0, #0x5a - strh r0, [r1] - movs r3, #8 - b _08053A4C - .align 2, 0 -_08053A2C: .4byte gUnknown_20240A4 -_08053A30: - cmp r3, #0x5e - bgt _08053A44 - ldr r1, _08053A40 - movs r0, #0x6e - strh r0, [r1] - movs r3, #9 - b _08053A4C - .align 2, 0 -_08053A40: .4byte gUnknown_20240A4 -_08053A44: - ldr r1, _08053AB8 - movs r0, #0x96 - strh r0, [r1] - movs r3, #0xa -_08053A4C: - ldr r1, _08053ABC - movs r2, #0 - movs r0, #0xfd - strb r0, [r1] - movs r0, #1 - strb r0, [r1, #1] - strb r0, [r1, #2] - movs r0, #2 - strb r0, [r1, #3] - strb r3, [r1, #4] - movs r0, #0xff - strb r0, [r1, #5] - ldr r1, _08053AC0 - strb r2, [r1] - ldr r0, _08053AC4 - ldrb r3, [r0] - adds r6, r1, #0 - ldr r0, _08053AC8 - mov r8, r0 - cmp r2, r3 - bhs _08053AA4 - adds r4, r6, #0 - ldr r0, _08053ACC - ldrb r5, [r0] - ldr r1, _08053AD0 - mov ip, r1 - ldr r7, _08053AD4 -_08053A82: - ldrb r2, [r4] - cmp r2, r5 - beq _08053A98 - ldrb r0, [r7] - ldrb r1, [r6] - lsls r1, r1, #2 - add r1, ip - ldr r1, [r1] - ands r0, r1 - cmp r0, #0 - beq _08053AA4 -_08053A98: - adds r0, r2, #1 - strb r0, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r3 - blo _08053A82 -_08053AA4: - mov r1, r8 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08053AB8: .4byte gUnknown_20240A4 -_08053ABC: .4byte gUnknown_2022C0C -_08053AC0: .4byte gUnknown_2023EB0 -_08053AC4: .4byte gUnknown_2023D10 -_08053AC8: .4byte gUnknown_2023EB8 -_08053ACC: .4byte gUnknown_2023EAF -_08053AD0: .4byte gUnknown_82FACB4 -_08053AD4: .4byte gUnknown_2023EB4 - thumb_func_end atkB9_magnitudedamagecalculation - - thumb_func_start atkBA_jumpifnopursuitswitchdmg -atkBA_jumpifnopursuitswitchdmg: @ 0x08053AD8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _08053AFC - ldrb r0, [r0] - cmp r0, #1 - bne _08053B08 - ldr r0, _08053B00 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08053B04 - movs r0, #1 - b _08053B22 - .align 2, 0 -_08053AFC: .4byte gUnknown_2023EB6 -_08053B00: .4byte gUnknown_2023EAF -_08053B04: - movs r0, #0 - b _08053B22 -_08053B08: - ldr r0, _08053B1C - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08053B20 - movs r0, #3 - b _08053B22 - .align 2, 0 -_08053B1C: .4byte gUnknown_2023EAF -_08053B20: - movs r0, #2 -_08053B22: - bl GetBattlerAtPosition - ldr r1, _08053BFC - strb r0, [r1] - ldr r0, _08053C00 - ldr r1, _08053BFC - ldrb r3, [r1] - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, #0 - beq _08053B3A - b _08053C40 -_08053B3A: - ldr r5, _08053C04 - ldr r0, _08053C08 - ldr r1, [r0] - adds r1, r3, r1 - ldrb r2, [r5] - ldrb r1, [r1, #0xc] - cmp r2, r1 - bne _08053C40 - ldr r4, _08053C0C - movs r2, #0x58 - adds r0, r3, #0 - muls r0, r2, r0 - adds r1, r4, #0 - adds r1, #0x4c - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x27 - ands r0, r1 - cmp r0, #0 - bne _08053C40 - ldrb r0, [r5] - muls r0, r2, r0 - adds r0, r0, r4 - ldrh r0, [r0, #0x28] - cmp r0, #0 - beq _08053C40 - ldr r0, _08053C10 - lsls r1, r3, #3 - subs r1, r1, r3 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #0x18] - lsls r0, r0, #0x1f - cmp r0, #0 - bne _08053C40 - ldr r0, _08053C14 - lsls r1, r3, #1 - adds r1, r1, r0 - ldrh r0, [r1] - cmp r0, #0xe4 - bne _08053C40 - movs r1, #0 - ldr r0, _08053C18 - ldr r2, _08053C1C - mov r8, r2 - ldr r7, _08053C20 - mov sl, r7 - ldr r2, _08053C24 - mov sb, r2 - ldr r7, _08053C28 - mov ip, r7 - ldrb r2, [r0] - cmp r1, r2 - bge _08053BC6 - ldr r6, _08053C2C - ldr r5, _08053BFC - ldr r4, _08053C30 - movs r3, #0xb - adds r2, r0, #0 -_08053BB0: - adds r0, r1, r6 - ldrb r0, [r0] - ldrb r7, [r5] - cmp r0, r7 - bne _08053BBE - adds r0, r1, r4 - strb r3, [r0] -_08053BBE: - adds r1, #1 - ldrb r0, [r2] - cmp r1, r0 - blt _08053BB0 -_08053BC6: - movs r0, #0xe4 - mov r1, r8 - strh r0, [r1] - ldr r2, _08053BFC - ldrb r0, [r2] - ldr r7, _08053C08 - ldr r1, [r7] - adds r0, r0, r1 - adds r0, #0x80 - ldrb r0, [r0] - mov r1, sb - strb r0, [r1] - mov r2, sl - strb r0, [r2] - ldr r7, _08053C34 - ldr r0, [r7] - adds r0, #5 - str r0, [r7] - movs r0, #1 - ldr r1, _08053C38 - strb r0, [r1, #0x18] - mov r2, ip - ldr r0, [r2] - ldr r1, _08053C3C - ands r0, r1 - str r0, [r2] - b _08053C5A - .align 2, 0 -_08053BFC: .4byte gUnknown_2023EB0 -_08053C00: .4byte gUnknown_2023EC0 -_08053C04: .4byte gUnknown_2023EAF -_08053C08: .4byte gUnknown_2024140 -_08053C0C: .4byte gUnknown_2023D28 -_08053C10: .4byte gUnknown_2023F60 -_08053C14: .4byte gUnknown_2023F18 -_08053C18: .4byte gUnknown_2023D10 -_08053C1C: .4byte gUnknown_2023E8E -_08053C20: .4byte gUnknown_2023E8C -_08053C24: .4byte gUnknown_2023E8D -_08053C28: .4byte gUnknown_2023F24 -_08053C2C: .4byte gUnknown_2023D22 -_08053C30: .4byte gUnknown_2023D1E -_08053C34: .4byte gUnknown_2023EB8 -_08053C38: .4byte gUnknown_2024118 -_08053C3C: .4byte 0xFFFFFBFF -_08053C40: - ldr r3, _08053C68 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] -_08053C5A: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08053C68: .4byte gUnknown_2023EB8 - thumb_func_end atkBA_jumpifnopursuitswitchdmg - - thumb_func_start atkBB_setsunny -atkBB_setsunny: @ 0x08053C6C - push {lr} - ldr r2, _08053C8C - ldrh r1, [r2] - movs r0, #0x60 - ands r0, r1 - cmp r0, #0 - beq _08053C98 - ldr r2, _08053C90 - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - ldr r1, _08053C94 - movs r0, #2 - strb r0, [r1, #5] - b _08053CAA - .align 2, 0 -_08053C8C: .4byte gUnknown_2024070 -_08053C90: .4byte gUnknown_2023F20 -_08053C94: .4byte gUnknown_2023FD6 -_08053C98: - movs r0, #0x20 - strh r0, [r2] - ldr r1, _08053CB8 - movs r0, #4 - strb r0, [r1, #5] - ldr r0, _08053CBC - adds r0, #0x28 - movs r1, #5 - strb r1, [r0] -_08053CAA: - ldr r1, _08053CC0 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08053CB8: .4byte gUnknown_2023FD6 -_08053CBC: .4byte gUnknown_2024074 -_08053CC0: .4byte gUnknown_2023EB8 - thumb_func_end atkBB_setsunny - - thumb_func_start atkBC_maxattackhalvehp -atkBC_maxattackhalvehp: @ 0x08053CC4 - push {r4, r5, lr} - ldr r5, _08053D10 - ldr r4, _08053D14 - ldrb r0, [r4] - movs r3, #0x58 - muls r0, r3, r0 - adds r2, r0, r5 - ldrh r0, [r2, #0x2c] - lsrs r1, r0, #1 - cmp r1, #0 - bne _08053CDC - movs r1, #1 -_08053CDC: - movs r0, #0x19 - ldrsb r0, [r2, r0] - cmp r0, #0xb - bgt _08053D20 - ldrh r0, [r2, #0x28] - cmp r0, r1 - bls _08053D20 - movs r0, #0xc - strb r0, [r2, #0x19] - ldr r1, _08053D18 - ldrb r0, [r4] - muls r0, r3, r0 - adds r0, r0, r5 - ldrh r0, [r0, #0x2c] - lsrs r0, r0, #1 - str r0, [r1] - cmp r0, #0 - bne _08053D04 - movs r0, #1 - str r0, [r1] -_08053D04: - ldr r1, _08053D1C - ldr r0, [r1] - adds r0, #5 - str r0, [r1] - b _08053D3A - .align 2, 0 -_08053D10: .4byte gUnknown_2023D28 -_08053D14: .4byte gUnknown_2023EAF -_08053D18: .4byte gUnknown_2023E94 -_08053D1C: .4byte gUnknown_2023EB8 -_08053D20: - ldr r3, _08053D40 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] -_08053D3A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08053D40: .4byte gUnknown_2023EB8 - thumb_func_end atkBC_maxattackhalvehp - - thumb_func_start atkBD_copyfoestats -atkBD_copyfoestats: @ 0x08053D44 - push {r4, r5, r6, r7, lr} - movs r2, #0 - ldr r7, _08053D7C - ldr r6, _08053D80 - movs r4, #0x58 - ldr r3, _08053D84 - ldr r5, _08053D88 -_08053D52: - ldrb r0, [r6] - adds r1, r0, #0 - muls r1, r4, r1 - adds r1, r2, r1 - adds r1, r1, r3 - ldrb r0, [r5] - muls r0, r4, r0 - adds r0, r2, r0 - adds r0, r0, r3 - ldrb r0, [r0] - strb r0, [r1] - adds r2, #1 - cmp r2, #7 - ble _08053D52 - ldr r0, [r7] - adds r0, #5 - str r0, [r7] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08053D7C: .4byte gUnknown_2023EB8 -_08053D80: .4byte gUnknown_2023EAF -_08053D84: .4byte gUnknown_2023D40 -_08053D88: .4byte gUnknown_2023EB0 - thumb_func_end atkBD_copyfoestats - - thumb_func_start atkBE_rapidspinfree -atkBE_rapidspinfree: @ 0x08053D8C - push {r4, r5, r6, lr} - ldr r1, _08053DFC - ldr r5, _08053E00 - ldrb r2, [r5] - movs r6, #0x58 - adds r0, r2, #0 - muls r0, r6, r0 - adds r4, r1, #0 - adds r4, #0x50 - adds r0, r0, r4 - ldr r0, [r0] - movs r1, #0xe0 - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - beq _08053E20 - ldr r1, _08053E04 - ldr r3, _08053E08 - ldrb r0, [r3] - strb r0, [r1, #0x17] - ldrb r0, [r5] - adds r1, r0, #0 - muls r1, r6, r1 - adds r1, r1, r4 - ldr r0, [r1] - ldr r2, _08053E0C - ands r0, r2 - str r0, [r1] - ldrb r0, [r5] - ldr r1, _08053E10 - ldr r2, [r1] - adds r0, r0, r2 - ldrb r0, [r0, #0x14] - strb r0, [r3] - ldr r1, _08053E14 - movs r0, #0xfd - strb r0, [r1] - movs r0, #2 - strb r0, [r1, #1] - ldrb r0, [r5] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrb r0, [r0, #4] - strb r0, [r1, #2] - ldrb r0, [r5] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrb r0, [r0, #5] - strb r0, [r1, #3] - movs r0, #0xff - strb r0, [r1, #4] - bl BattleScriptPushCursor - ldr r1, _08053E18 - ldr r0, _08053E1C - b _08053ECA - .align 2, 0 -_08053DFC: .4byte gUnknown_2023D28 -_08053E00: .4byte gUnknown_2023EAF -_08053E04: .4byte gUnknown_2024118 -_08053E08: .4byte gUnknown_2023EB0 -_08053E0C: .4byte 0xFFFF1FFF -_08053E10: .4byte gUnknown_2024140 -_08053E14: .4byte gUnknown_2022C0C -_08053E18: .4byte gUnknown_2023EB8 -_08053E1C: .4byte gUnknown_828954D -_08053E20: - ldr r4, _08053E54 - lsls r0, r2, #2 - adds r3, r0, r4 - ldr r1, [r3] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08053E60 - movs r0, #5 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r3] - ldrb r1, [r5] - lsls r1, r1, #2 - adds r1, r1, r4 - ldr r0, [r1] - movs r2, #4 - rsbs r2, r2, #0 - ands r0, r2 - str r0, [r1] - bl BattleScriptPushCursor - ldr r1, _08053E58 - ldr r0, _08053E5C - b _08053ECA - .align 2, 0 -_08053E54: .4byte gUnknown_2023F50 -_08053E58: .4byte gUnknown_2023EB8 -_08053E5C: .4byte gUnknown_828955E -_08053E60: - adds r0, r2, #0 - bl GetBattlerSide - ldr r4, _08053EB0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r4 - ldrh r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08053EC4 - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r4 - ldrh r2, [r0] - ldr r1, _08053EB4 - ands r1, r2 - movs r4, #0 - strh r1, [r0] - ldrb r0, [r5] - bl GetBattlerSide - ldr r2, _08053EB8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - strb r4, [r1, #0xa] - bl BattleScriptPushCursor - ldr r1, _08053EBC - ldr r0, _08053EC0 - b _08053ECA - .align 2, 0 -_08053EB0: .4byte gUnknown_2023F32 -_08053EB4: .4byte 0x0000FFEF -_08053EB8: .4byte gUnknown_2023F38 -_08053EBC: .4byte gUnknown_2023EB8 -_08053EC0: .4byte gUnknown_8289565 -_08053EC4: - ldr r1, _08053ED4 - ldr r0, [r1] - adds r0, #1 -_08053ECA: - str r0, [r1] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08053ED4: .4byte gUnknown_2023EB8 - thumb_func_end atkBE_rapidspinfree - - thumb_func_start atkBF_setdefensecurlbit -atkBF_setdefensecurlbit: @ 0x08053ED8 - ldr r1, _08053EFC - ldr r0, _08053F00 - ldrb r2, [r0] - movs r0, #0x58 - muls r2, r0, r2 - adds r1, #0x50 - adds r2, r2, r1 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0x17 - orrs r0, r1 - str r0, [r2] - ldr r1, _08053F04 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - bx lr - .align 2, 0 -_08053EFC: .4byte gUnknown_2023D28 -_08053F00: .4byte gUnknown_2023EAF -_08053F04: .4byte gUnknown_2023EB8 - thumb_func_end atkBF_setdefensecurlbit - - thumb_func_start atkC0_recoverbasedonsunlight -atkC0_recoverbasedonsunlight: @ 0x08053F08 - push {r4, r5, r6, r7, lr} - sub sp, #4 - ldr r1, _08053F74 - ldr r5, _08053F78 - ldrb r0, [r5] - strb r0, [r1] - ldr r7, _08053F7C - ldrb r0, [r5] - movs r6, #0x58 - muls r0, r6, r0 - adds r0, r0, r7 - ldrh r1, [r0, #0x28] - ldrh r0, [r0, #0x2c] - cmp r1, r0 - beq _08053FE8 - ldr r4, _08053F80 - ldrh r0, [r4] - cmp r0, #0 - beq _08053F5A - movs r0, #0 - str r0, [sp] - movs r0, #0x13 - movs r1, #0 - movs r2, #0xd - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _08053F5A - str r0, [sp] - movs r0, #0x13 - movs r1, #0 - movs r2, #0x4d - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08053F88 -_08053F5A: - ldr r3, _08053F84 - ldr r2, _08053F7C - ldr r0, _08053F78 - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - ldrh r0, [r0, #0x2c] - lsrs r0, r0, #1 - str r0, [r3] - adds r1, r3, #0 - b _08053FC2 - .align 2, 0 -_08053F74: .4byte gUnknown_2023EB0 -_08053F78: .4byte gUnknown_2023EAF -_08053F7C: .4byte gUnknown_2023D28 -_08053F80: .4byte gUnknown_2024070 -_08053F84: .4byte gUnknown_2023E94 -_08053F88: - ldrh r1, [r4] - movs r0, #0x60 - ands r0, r1 - cmp r0, #0 - beq _08053FB4 - ldr r4, _08053FB0 - ldrb r0, [r5] - muls r0, r6, r0 - adds r0, r0, r7 - ldrh r1, [r0, #0x2c] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - movs r1, #0x1e - bl __divsi3 - str r0, [r4] - adds r1, r4, #0 - b _08053FC2 - .align 2, 0 -_08053FB0: .4byte gUnknown_2023E94 -_08053FB4: - ldr r1, _08053FE0 - ldrb r0, [r5] - muls r0, r6, r0 - adds r0, r0, r7 - ldrh r0, [r0, #0x2c] - lsrs r0, r0, #2 - str r0, [r1] -_08053FC2: - adds r2, r1, #0 - ldr r0, [r2] - cmp r0, #0 - bne _08053FCE - movs r0, #1 - str r0, [r2] -_08053FCE: - ldr r0, [r1] - rsbs r0, r0, #0 - str r0, [r1] - ldr r1, _08053FE4 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] - b _08054002 - .align 2, 0 -_08053FE0: .4byte gUnknown_2023E94 -_08053FE4: .4byte gUnknown_2023EB8 -_08053FE8: - ldr r3, _0805400C - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] -_08054002: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805400C: .4byte gUnknown_2023EB8 - thumb_func_end atkC0_recoverbasedonsunlight - - thumb_func_start atkC1_hiddenpowercalc -atkC1_hiddenpowercalc: @ 0x08054010 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r2, _08054120 - ldr r0, _08054124 - ldrb r1, [r0] - movs r0, #0x58 - adds r4, r1, #0 - muls r4, r0, r4 - adds r4, r4, r2 - ldrb r0, [r4, #0x14] - mov sl, r0 - mov r7, sl - lsls r7, r7, #0x1b - adds r0, r7, #0 - lsrs r0, r0, #0x1b - mov sl, r0 - movs r1, #2 - mov r2, sl - ands r2, r1 - asrs r2, r2, #1 - ldrh r7, [r4, #0x14] - mov sb, r7 - mov r0, sb - lsls r0, r0, #0x16 - mov sb, r0 - lsrs r3, r0, #0x1b - adds r0, r1, #0 - ands r0, r3 - orrs r2, r0 - ldrb r7, [r4, #0x15] - mov r8, r7 - mov r0, r8 - lsls r0, r0, #0x19 - mov r8, r0 - lsrs r3, r0, #0x1b - adds r0, r1, #0 - ands r0, r3 - lsls r0, r0, #1 - orrs r2, r0 - ldr r6, [r4, #0x14] - lsls r6, r6, #0xc - lsrs r3, r6, #0x1b - adds r0, r1, #0 - ands r0, r3 - lsls r0, r0, #2 - orrs r2, r0 - ldrh r5, [r4, #0x16] - lsls r5, r5, #0x17 - lsrs r3, r5, #0x1b - adds r0, r1, #0 - ands r0, r3 - lsls r0, r0, #3 - orrs r2, r0 - ldrb r3, [r4, #0x17] - lsls r3, r3, #0x1a - lsrs r0, r3, #0x1b - ands r1, r0 - lsls r1, r1, #4 - orrs r2, r1 - movs r1, #1 - adds r4, r1, #0 - mov r7, sl - ands r4, r7 - mov r0, sb - lsrs r0, r0, #0x1b - mov sb, r0 - adds r0, r1, #0 - mov r7, sb - ands r0, r7 - lsls r0, r0, #1 - orrs r4, r0 - mov r0, r8 - lsrs r0, r0, #0x1b - mov r8, r0 - adds r0, r1, #0 - mov r7, r8 - ands r0, r7 - lsls r0, r0, #2 - orrs r4, r0 - lsrs r6, r6, #0x1b - adds r0, r1, #0 - ands r0, r6 - lsls r0, r0, #3 - orrs r4, r0 - lsrs r5, r5, #0x1b - adds r0, r1, #0 - ands r0, r5 - lsls r0, r0, #4 - orrs r4, r0 - lsrs r3, r3, #0x1b - ands r1, r3 - lsls r1, r1, #5 - orrs r4, r1 - ldr r5, _08054128 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - movs r1, #0x3f - bl __divsi3 - adds r0, #0x1e - strh r0, [r5] - ldr r6, _0805412C - ldr r5, [r6] - lsls r0, r4, #4 - subs r0, r0, r4 - movs r1, #0x3f - bl __divsi3 - adds r0, #1 - strb r0, [r5, #0x13] - ldr r1, [r6] - ldrb r0, [r1, #0x13] - cmp r0, #8 - bls _08054100 - adds r0, #1 - strb r0, [r1, #0x13] -_08054100: - ldr r2, [r6] - ldrb r0, [r2, #0x13] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r2, #0x13] - ldr r1, _08054130 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08054120: .4byte gUnknown_2023D28 -_08054124: .4byte gUnknown_2023EAF -_08054128: .4byte gUnknown_20240A4 -_0805412C: .4byte gUnknown_2024140 -_08054130: .4byte gUnknown_2023EB8 - thumb_func_end atkC1_hiddenpowercalc - - thumb_func_start atkC2_selectfirstvalidtarget -atkC2_selectfirstvalidtarget: @ 0x08054134 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _08054190 - movs r1, #0 - strb r1, [r0] - ldr r1, _08054194 - ldrb r1, [r1] - adds r6, r0, #0 - ldr r0, _08054198 - mov r8, r0 - cmp r1, #0 - beq _0805417E - adds r3, r6, #0 - ldr r0, _0805419C - ldrb r5, [r0] - ldr r0, _080541A0 - mov ip, r0 - adds r4, r1, #0 - ldr r7, _080541A4 -_0805415C: - ldrb r2, [r3] - cmp r2, r5 - beq _08054172 - ldrb r0, [r7] - ldrb r1, [r6] - lsls r1, r1, #2 - add r1, ip - ldr r1, [r1] - ands r0, r1 - cmp r0, #0 - beq _0805417E -_08054172: - adds r0, r2, #1 - strb r0, [r3] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r4 - blo _0805415C -_0805417E: - mov r1, r8 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08054190: .4byte gUnknown_2023EB0 -_08054194: .4byte gUnknown_2023D10 -_08054198: .4byte gUnknown_2023EB8 -_0805419C: .4byte gUnknown_2023EAF -_080541A0: .4byte gUnknown_82FACB4 -_080541A4: .4byte gUnknown_2023EB4 - thumb_func_end atkC2_selectfirstvalidtarget - - thumb_func_start atkC3_trysetfutureattack -atkC3_trysetfutureattack: @ 0x080541A8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - ldr r0, _080541E0 - mov r8, r0 - ldr r6, _080541E4 - ldrb r1, [r6] - adds r0, r1, r0 - ldrb r7, [r0] - cmp r7, #0 - beq _080541EC - ldr r3, _080541E8 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _080542DC - .align 2, 0 -_080541E0: .4byte gUnknown_2024074 -_080541E4: .4byte gUnknown_2023EB0 -_080541E8: .4byte gUnknown_2023EB8 -_080541EC: - adds r0, r1, #0 - bl sub_080A630C - ldr r4, _080542B0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - mov sl, r1 - ands r0, r1 - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r2, [r0] - movs r1, #0x40 - movs r5, #0 - mov r3, sp - strh r5, [r3, #0x10] - orrs r1, r2 - strh r1, [r0] - ldrb r0, [r6] - lsls r0, r0, #1 - mov r1, r8 - adds r1, #0x18 - adds r0, r0, r1 - ldr r1, _080542B4 - mov sb, r1 - ldrh r1, [r1] - strh r1, [r0] - mov r0, r8 - adds r0, #4 - ldrb r2, [r6] - adds r0, r0, r2 - ldr r5, _080542B8 - ldrb r1, [r5] - strb r1, [r0] - ldrb r0, [r6] - add r0, r8 - movs r1, #3 - strb r1, [r0] - ldrb r0, [r6] - bl sub_080A630C - mov r1, sl - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r3, [r1] - ldrb r0, [r5] - movs r4, #0x58 - muls r0, r4, r0 - ldr r2, _080542BC - adds r0, r0, r2 - ldrb r1, [r6] - muls r1, r4, r1 - adds r1, r1, r2 - mov r4, sb - ldrh r2, [r4] - str r7, [sp] - str r7, [sp, #4] - ldrb r4, [r5] - str r4, [sp, #8] - ldrb r4, [r6] - str r4, [sp, #0xc] - bl CalculateBaseDamage - ldrb r1, [r6] - lsls r1, r1, #2 - mov r2, r8 - adds r2, #8 - adds r1, r1, r2 - str r0, [r1] - ldr r1, _080542C0 - ldrb r0, [r5] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1c - cmp r0, #0 - bge _0805429C - ldrb r4, [r6] - lsls r4, r4, #2 - adds r4, r4, r2 - ldr r1, [r4] - lsls r0, r1, #4 - subs r0, r0, r1 - movs r1, #0xa - bl __divsi3 - str r0, [r4] -_0805429C: - mov r5, sb - ldrh r1, [r5] - ldr r0, _080542C4 - cmp r1, r0 - bne _080542CC - ldr r0, _080542C8 - mov r1, sl - strb r1, [r0, #5] - b _080542D4 - .align 2, 0 -_080542B0: .4byte gUnknown_2023F32 -_080542B4: .4byte gUnknown_2023E8E -_080542B8: .4byte gUnknown_2023EAF -_080542BC: .4byte gUnknown_2023D28 -_080542C0: .4byte gUnknown_2023FE0 -_080542C4: .4byte 0x00000161 -_080542C8: .4byte gUnknown_2023FD6 -_080542CC: - ldr r0, _080542EC - mov r2, sp - ldrb r2, [r2, #0x10] - strb r2, [r0, #5] -_080542D4: - ldr r1, _080542F0 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] -_080542DC: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080542EC: .4byte gUnknown_2023FD6 -_080542F0: .4byte gUnknown_2023EB8 - thumb_func_end atkC3_trysetfutureattack - - thumb_func_start atkC4_trydobeatup -atkC4_trydobeatup: @ 0x080542F4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r0, _08054338 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - ldr r7, _0805433C - cmp r0, #0 - bne _0805430E - ldr r7, _08054340 -_0805430E: - ldr r2, _08054344 - ldr r0, _08054348 - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - ldrh r0, [r0, #0x28] - cmp r0, #0 - bne _08054350 - ldr r3, _0805434C - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - b _080544EC - .align 2, 0 -_08054338: .4byte gUnknown_2023EAF -_0805433C: .4byte gUnknown_20243E8 -_08054340: .4byte gUnknown_2024190 -_08054344: .4byte gUnknown_2023D28 -_08054348: .4byte gUnknown_2023EB0 -_0805434C: .4byte gUnknown_2023EB8 -_08054350: - ldr r6, _0805448C - ldrb r0, [r6] - mov r8, r0 - cmp r0, #5 - bls _0805435C - b _080544B8 -_0805435C: - adds r4, r6, #0 - movs r5, #0x64 -_08054360: - ldrb r0, [r4] - muls r0, r5, r0 - adds r0, r7, r0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _080543A4 - ldrb r0, [r6] - muls r0, r5, r0 - adds r0, r7, r0 - movs r1, #0x41 - bl GetMonData - cmp r0, #0 - beq _080543A4 - ldrb r0, [r4] - muls r0, r5, r0 - adds r0, r7, r0 - movs r1, #0x41 - bl GetMonData - movs r1, #0xce - lsls r1, r1, #1 - cmp r0, r1 - beq _080543A4 - ldrb r0, [r4] - muls r0, r5, r0 - adds r0, r7, r0 - movs r1, #0x37 - bl GetMonData - cmp r0, #0 - beq _080543B4 -_080543A4: - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - adds r6, r4, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #5 - bls _08054360 -_080543B4: - ldr r1, _0805448C - mov sb, r1 - ldrb r2, [r1] - cmp r2, #5 - bhi _080544B8 - ldr r1, _08054490 - movs r0, #0xfd - strb r0, [r1] - movs r0, #4 - strb r0, [r1, #1] - ldr r6, _08054494 - ldrb r0, [r6] - strb r0, [r1, #2] - strb r2, [r1, #3] - movs r0, #0xff - strb r0, [r1, #4] - ldr r1, _08054498 - ldr r0, [r1] - adds r0, #9 - str r0, [r1] - ldr r2, _0805449C - mov r8, r2 - ldr r5, _080544A0 - mov r1, sb - ldrb r0, [r1] - movs r4, #0x64 - muls r0, r4, r0 - adds r0, r7, r0 - movs r1, #0xb - bl GetMonData - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrb r3, [r1, #1] - mov r2, r8 - str r3, [r2] - ldr r2, _080544A4 - ldr r0, _080544A8 - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #1] - muls r0, r3, r0 - mov r1, r8 - str r0, [r1] - mov r2, sb - ldrb r0, [r2] - muls r0, r4, r0 - adds r0, r7, r0 - movs r1, #0x38 - bl GetMonData - lsls r0, r0, #1 - movs r1, #5 - bl __udivsi3 - adds r0, #2 - mov r2, r8 - ldr r1, [r2] - muls r0, r1, r0 - str r0, [r2] - ldr r3, _080544AC - ldr r1, _080544B0 - ldrb r2, [r1] - movs r1, #0x58 - muls r1, r2, r1 - adds r1, r1, r3 - ldrh r2, [r1] - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrb r1, [r1, #2] - bl __divsi3 - mov r1, r8 - str r0, [r1] - movs r1, #0x32 - bl __divsi3 - adds r2, r0, #2 - mov r0, r8 - str r2, [r0] - ldr r1, _080544B4 - ldrb r0, [r6] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1c - cmp r0, #0 - bge _08054480 - lsls r0, r2, #4 - subs r0, r0, r2 - movs r1, #0xa - bl __divsi3 - mov r1, r8 - str r0, [r1] -_08054480: - mov r2, sb - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - b _080544F2 - .align 2, 0 -_0805448C: .4byte gUnknown_2023FD6 -_08054490: .4byte gUnknown_2022C0C -_08054494: .4byte gUnknown_2023EAF -_08054498: .4byte gUnknown_2023EB8 -_0805449C: .4byte gUnknown_2023E94 -_080544A0: .4byte gUnknown_82F0D54 -_080544A4: .4byte gUnknown_82ED220 -_080544A8: .4byte gUnknown_2023E8E -_080544AC: .4byte gUnknown_2023D28 -_080544B0: .4byte gUnknown_2023EB0 -_080544B4: .4byte gUnknown_2023FE0 -_080544B8: - mov r0, r8 - cmp r0, #0 - beq _080544D8 - ldr r3, _080544D4 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - b _080544EC - .align 2, 0 -_080544D4: .4byte gUnknown_2023EB8 -_080544D8: - ldr r3, _08054500 - ldr r2, [r3] - ldrb r1, [r2, #5] - ldrb r0, [r2, #6] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #7] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #8] -_080544EC: - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] -_080544F2: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08054500: .4byte gUnknown_2023EB8 - thumb_func_end atkC4_trydobeatup - - thumb_func_start atkC5_setsemiinvulnerablebit -atkC5_setsemiinvulnerablebit: @ 0x08054504 - push {lr} - ldr r0, _08054518 - ldrh r1, [r0] - cmp r1, #0x5b - beq _08054544 - cmp r1, #0x5b - bgt _0805451C - cmp r1, #0x13 - beq _08054528 - b _08054570 - .align 2, 0 -_08054518: .4byte gUnknown_2023E8E -_0805451C: - ldr r0, _08054538 - cmp r1, r0 - beq _0805455C - adds r0, #0x31 - cmp r1, r0 - bne _08054570 -_08054528: - ldr r2, _0805453C - ldr r0, _08054540 - ldrb r1, [r0] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r0, [r1] - movs r2, #0x40 - b _0805456C - .align 2, 0 -_08054538: .4byte 0x00000123 -_0805453C: .4byte gUnknown_2023F50 -_08054540: .4byte gUnknown_2023EAF -_08054544: - ldr r2, _08054554 - ldr r0, _08054558 - ldrb r1, [r0] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r0, [r1] - movs r2, #0x80 - b _0805456C - .align 2, 0 -_08054554: .4byte gUnknown_2023F50 -_08054558: .4byte gUnknown_2023EAF -_0805455C: - ldr r2, _0805457C - ldr r0, _08054580 - ldrb r1, [r0] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r0, [r1] - movs r2, #0x80 - lsls r2, r2, #0xb -_0805456C: - orrs r0, r2 - str r0, [r1] -_08054570: - ldr r1, _08054584 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0805457C: .4byte gUnknown_2023F50 -_08054580: .4byte gUnknown_2023EAF -_08054584: .4byte gUnknown_2023EB8 - thumb_func_end atkC5_setsemiinvulnerablebit - - thumb_func_start atkC6_clearsemiinvulnerablebit -atkC6_clearsemiinvulnerablebit: @ 0x08054588 - push {lr} - ldr r0, _0805459C - ldrh r1, [r0] - cmp r1, #0x5b - beq _080545CC - cmp r1, #0x5b - bgt _080545A0 - cmp r1, #0x13 - beq _080545AC - b _080545FA - .align 2, 0 -_0805459C: .4byte gUnknown_2023E8E -_080545A0: - ldr r0, _080545C0 - cmp r1, r0 - beq _080545E8 - adds r0, #0x31 - cmp r1, r0 - bne _080545FA -_080545AC: - ldr r2, _080545C4 - ldr r0, _080545C8 - ldrb r1, [r0] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r0, [r1] - movs r2, #0x41 - rsbs r2, r2, #0 - b _080545F6 - .align 2, 0 -_080545C0: .4byte 0x00000123 -_080545C4: .4byte gUnknown_2023F50 -_080545C8: .4byte gUnknown_2023EAF -_080545CC: - ldr r2, _080545E0 - ldr r0, _080545E4 - ldrb r1, [r0] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r0, [r1] - movs r2, #0x81 - rsbs r2, r2, #0 - b _080545F6 - .align 2, 0 -_080545E0: .4byte gUnknown_2023F50 -_080545E4: .4byte gUnknown_2023EAF -_080545E8: - ldr r2, _08054608 - ldr r0, _0805460C - ldrb r1, [r0] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r0, [r1] - ldr r2, _08054610 -_080545F6: - ands r0, r2 - str r0, [r1] -_080545FA: - ldr r1, _08054614 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08054608: .4byte gUnknown_2023F50 -_0805460C: .4byte gUnknown_2023EAF -_08054610: .4byte 0xFFFBFFFF -_08054614: .4byte gUnknown_2023EB8 - thumb_func_end atkC6_clearsemiinvulnerablebit - - thumb_func_start atkC7_setminimize -atkC7_setminimize: @ 0x08054618 - push {lr} - ldr r0, _08054648 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x12 - ands r0, r1 - cmp r0, #0 - beq _0805463C - ldr r2, _0805464C - ldr r0, _08054650 - ldrb r1, [r0] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r0, [r1] - movs r2, #0x80 - lsls r2, r2, #1 - orrs r0, r2 - str r0, [r1] -_0805463C: - ldr r1, _08054654 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08054648: .4byte gUnknown_2023F24 -_0805464C: .4byte gUnknown_2023F50 -_08054650: .4byte gUnknown_2023EAF -_08054654: .4byte gUnknown_2023EB8 - thumb_func_end atkC7_setminimize - - thumb_func_start atkC8_sethail -atkC8_sethail: @ 0x08054658 - push {lr} - ldr r3, _0805467C - ldrh r1, [r3] - movs r2, #0x80 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _08054688 - ldr r2, _08054680 - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - ldr r1, _08054684 - movs r0, #2 - strb r0, [r1, #5] - b _08054696 - .align 2, 0 -_0805467C: .4byte gUnknown_2024070 -_08054680: .4byte gUnknown_2023F20 -_08054684: .4byte gUnknown_2023FD6 -_08054688: - strh r2, [r3] - ldr r0, _080546A4 - movs r1, #5 - strb r1, [r0, #5] - ldr r0, _080546A8 - adds r0, #0x28 - strb r1, [r0] -_08054696: - ldr r1, _080546AC - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080546A4: .4byte gUnknown_2023FD6 -_080546A8: .4byte gUnknown_2024074 -_080546AC: .4byte gUnknown_2023EB8 - thumb_func_end atkC8_sethail - - thumb_func_start atkC9_jumpifattackandspecialattackcannotfall -atkC9_jumpifattackandspecialattackcannotfall: @ 0x080546B0 - push {r4, lr} - ldr r2, _080546F4 - ldr r0, _080546F8 - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r1, r0, r2 - movs r0, #0x19 - ldrsb r0, [r1, r0] - adds r3, r2, #0 - cmp r0, #0 - bne _08054704 - movs r0, #0x1c - ldrsb r0, [r1, r0] - cmp r0, #0 - bne _08054704 - ldr r0, _080546FC - ldrb r0, [r0, #6] - cmp r0, #1 - beq _08054704 - ldr r3, _08054700 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08054730 - .align 2, 0 -_080546F4: .4byte gUnknown_2023D28 -_080546F8: .4byte gUnknown_2023EB0 -_080546FC: .4byte gUnknown_2023FD6 -_08054700: .4byte gUnknown_2023EB8 -_08054704: - ldr r4, _08054738 - ldr r0, _0805473C - ldrb r0, [r0] - strb r0, [r4] - ldr r2, _08054740 - ldrb r1, [r4] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r3 - ldrh r0, [r0, #0x28] - str r0, [r2] - ldr r1, _08054744 - movs r0, #0 - bl BtlController_EmitHealthBarUpdate - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldr r1, _08054748 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] -_08054730: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08054738: .4byte gUnknown_2023D08 -_0805473C: .4byte gUnknown_2023EAF -_08054740: .4byte gUnknown_2023E94 -_08054744: .4byte 0x00007FFF -_08054748: .4byte gUnknown_2023EB8 - thumb_func_end atkC9_jumpifattackandspecialattackcannotfall - - thumb_func_start atkCA_setforcedtarget -atkCA_setforcedtarget: @ 0x0805474C - push {r4, r5, lr} - ldr r4, _0805478C - ldrb r0, [r4] - bl GetBattlerSide - ldr r5, _08054790 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - movs r0, #1 - strb r0, [r1, #8] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrb r0, [r4] - strb r0, [r1, #9] - ldr r1, _08054794 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0805478C: .4byte gUnknown_2023EAF -_08054790: .4byte gUnknown_2023F38 -_08054794: .4byte gUnknown_2023EB8 - thumb_func_end atkCA_setforcedtarget - - thumb_func_start atkCB_setcharge -atkCB_setcharge: @ 0x08054798 - push {r4, lr} - ldr r0, _080547EC - ldr r3, _080547F0 - ldrb r1, [r3] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - movs r2, #0x80 - lsls r2, r2, #2 - orrs r0, r2 - str r0, [r1] - ldr r4, _080547F4 - ldrb r1, [r3] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r2, [r0, #0x12] - movs r1, #0x10 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #2 - orrs r1, r2 - strb r1, [r0, #0x12] - ldrb r1, [r3] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r2, [r0, #0x12] - movs r1, #0xf - ands r1, r2 - movs r2, #0x20 - orrs r1, r2 - strb r1, [r0, #0x12] - ldr r1, _080547F8 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080547EC: .4byte gUnknown_2023F50 -_080547F0: .4byte gUnknown_2023EAF -_080547F4: .4byte gUnknown_2023F60 -_080547F8: .4byte gUnknown_2023EB8 - thumb_func_end atkCB_setcharge - - thumb_func_start atkCC_callterrainattack -atkCC_callterrainattack: @ 0x080547FC - push {r4, lr} - ldr r2, _0805484C - ldr r0, [r2] - ldr r1, _08054850 - ands r0, r1 - str r0, [r2] - ldr r4, _08054854 - ldr r1, _08054858 - ldr r0, _0805485C - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r4] - ldrh r0, [r4] - movs r1, #0 - bl GetMoveTarget - ldr r1, _08054860 - strb r0, [r1] - ldr r3, _08054864 - ldr r2, _08054868 - ldrh r1, [r4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r3 - ldr r0, [r0] - bl BattleScriptPush - ldr r1, _0805486C - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805484C: .4byte gUnknown_2023F24 -_08054850: .4byte 0xFFFFFBFF -_08054854: .4byte gUnknown_2023E8E -_08054858: .4byte gUnknown_82ECD98 -_0805485C: .4byte gUnknown_2022C94 -_08054860: .4byte gUnknown_2023EB0 -_08054864: .4byte gUnknown_8286C30 -_08054868: .4byte gUnknown_82ED220 -_0805486C: .4byte gUnknown_2023EB8 - thumb_func_end atkCC_callterrainattack - - thumb_func_start atkCD_cureifburnedparalysedorpoisoned -atkCD_cureifburnedparalysedorpoisoned: @ 0x08054870 - push {r4, r5, r6, lr} - sub sp, #4 - ldr r1, _080548BC - ldr r3, _080548C0 - ldrb r0, [r3] - movs r6, #0x58 - muls r0, r6, r0 - adds r5, r1, #0 - adds r5, #0x4c - adds r2, r0, r5 - ldr r0, [r2] - movs r1, #0xd8 - ands r0, r1 - cmp r0, #0 - beq _080548CC - movs r0, #0 - str r0, [r2] - ldr r1, _080548C4 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] - ldr r4, _080548C8 - ldrb r0, [r3] - strb r0, [r4] - ldrb r0, [r4] - muls r0, r6, r0 - adds r0, r0, r5 - str r0, [sp] - movs r0, #0 - movs r1, #0x28 - movs r2, #0 - movs r3, #4 - bl BtlController_EmitSetMonData - ldrb r0, [r4] - bl MarkBattlerForControllerExec - b _080548E6 - .align 2, 0 -_080548BC: .4byte gUnknown_2023D28 -_080548C0: .4byte gUnknown_2023EAF -_080548C4: .4byte gUnknown_2023EB8 -_080548C8: .4byte gUnknown_2023D08 -_080548CC: - ldr r3, _080548F0 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] -_080548E6: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080548F0: .4byte gUnknown_2023EB8 - thumb_func_end atkCD_cureifburnedparalysedorpoisoned - - thumb_func_start atkCE_settorment -atkCE_settorment: @ 0x080548F4 - push {lr} - ldr r1, _0805492C - ldr r0, _08054930 - ldrb r2, [r0] - movs r0, #0x58 - muls r0, r2, r0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r1, [r0] - movs r2, #0x80 - lsls r2, r2, #0x18 - cmp r1, #0 - bge _08054938 - ldr r3, _08054934 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08054944 - .align 2, 0 -_0805492C: .4byte gUnknown_2023D28 -_08054930: .4byte gUnknown_2023EB0 -_08054934: .4byte gUnknown_2023EB8 -_08054938: - orrs r1, r2 - str r1, [r0] - ldr r1, _08054948 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] -_08054944: - pop {r0} - bx r0 - .align 2, 0 -_08054948: .4byte gUnknown_2023EB8 - thumb_func_end atkCE_settorment - - thumb_func_start atkCF_jumpifnodamage -atkCF_jumpifnodamage: @ 0x0805494C - push {lr} - ldr r2, _08054978 - ldr r0, _0805497C - ldrb r0, [r0] - lsls r1, r0, #4 - adds r0, r2, #4 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, #0 - bne _0805496C - adds r0, r2, #0 - adds r0, #8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, #0 - beq _08054984 -_0805496C: - ldr r1, _08054980 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] - b _0805499E - .align 2, 0 -_08054978: .4byte gUnknown_2023FE0 -_0805497C: .4byte gUnknown_2023EAF -_08054980: .4byte gUnknown_2023EB8 -_08054984: - ldr r3, _080549A4 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] -_0805499E: - pop {r0} - bx r0 - .align 2, 0 -_080549A4: .4byte gUnknown_2023EB8 - thumb_func_end atkCF_jumpifnodamage - - thumb_func_start atkD0_settaunt -atkD0_settaunt: @ 0x080549A8 - push {r4, lr} - ldr r4, _080549EC - ldr r3, _080549F0 - ldrb r0, [r3] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r2, r1, r4 - ldrb r1, [r2, #0x13] - lsls r0, r1, #0x1c - cmp r0, #0 - bne _080549F8 - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r2, #0x13] - ldrb r1, [r3] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r2, [r0, #0x13] - movs r1, #0xf - ands r1, r2 - movs r2, #0x20 - orrs r1, r2 - strb r1, [r0, #0x13] - ldr r1, _080549F4 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] - b _08054A12 - .align 2, 0 -_080549EC: .4byte gUnknown_2023F60 -_080549F0: .4byte gUnknown_2023EB0 -_080549F4: .4byte gUnknown_2023EB8 -_080549F8: - ldr r3, _08054A18 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] -_08054A12: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08054A18: .4byte gUnknown_2023EB8 - thumb_func_end atkD0_settaunt - - thumb_func_start atkD1_trysethelpinghand -atkD1_trysethelpinghand: @ 0x08054A1C - push {r4, lr} - ldr r4, _08054A84 - ldrb r0, [r4] - bl sub_080A630C - movs r1, #2 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - ldr r3, _08054A88 - strb r0, [r3] - ldr r0, _08054A8C - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08054AA0 - ldr r0, _08054A90 - ldrb r1, [r0] - ldr r2, _08054A94 - ldrb r3, [r3] - lsls r0, r3, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _08054AA0 - ldr r1, _08054A98 - ldrb r0, [r4] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1c - cmp r0, #0 - blt _08054AA0 - lsls r0, r3, #4 - adds r2, r0, r1 - ldrb r1, [r2] - lsls r0, r1, #0x1c - cmp r0, #0 - blt _08054AA0 - movs r0, #8 - orrs r0, r1 - strb r0, [r2] - ldr r1, _08054A9C - ldr r0, [r1] - adds r0, #5 - str r0, [r1] - b _08054ABA - .align 2, 0 -_08054A84: .4byte gUnknown_2023EAF -_08054A88: .4byte gUnknown_2023EB0 -_08054A8C: .4byte gUnknown_2022C90 -_08054A90: .4byte gUnknown_2023EB4 -_08054A94: .4byte gUnknown_82FACB4 -_08054A98: .4byte gUnknown_2023FE0 -_08054A9C: .4byte gUnknown_2023EB8 -_08054AA0: - ldr r3, _08054AC0 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] -_08054ABA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08054AC0: .4byte gUnknown_2023EB8 - thumb_func_end atkD1_trysethelpinghand - - thumb_func_start atkD2_tryswapitems -atkD2_tryswapitems: @ 0x08054AC4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - ldr r4, _08054BC8 - ldr r0, [r4] - movs r1, #0x80 - lsls r1, r1, #0x13 - ands r0, r1 - cmp r0, #0 - bne _08054BAA - ldr r0, _08054BCC - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08054AF8 - ldr r0, [r4] - ldr r1, _08054BD0 - ands r0, r1 - cmp r0, #0 - beq _08054BAA -_08054AF8: - ldr r6, _08054BCC - ldrb r0, [r6] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r7, _08054BD4 - ldrb r0, [r7] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _08054BC8 - ldr r0, [r0] - ldr r1, _08054BD0 - ands r0, r1 - cmp r0, #0 - bne _08054B56 - ldr r0, _08054BD8 - adds r2, r0, #0 - adds r2, #0x29 - adds r0, r4, r2 - ldrb r1, [r0] - ldr r4, _08054BDC - ldr r3, _08054BE0 - ldrb r0, [r6] - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _08054BAA - adds r0, r5, r2 - ldrb r1, [r0] - ldrb r0, [r7] - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _08054BAA -_08054B56: - ldr r0, _08054BE4 - mov r8, r0 - ldr r1, _08054BCC - ldrb r4, [r1] - movs r5, #0x58 - adds r0, r4, #0 - muls r0, r5, r0 - add r0, r8 - mov sb, r0 - ldrh r3, [r0, #0x2e] - adds r1, r3, #0 - cmp r1, #0 - bne _08054B7E - ldr r0, _08054BD4 - ldrb r0, [r0] - muls r0, r5, r0 - add r0, r8 - ldrh r0, [r0, #0x2e] - cmp r0, #0 - beq _08054BAA -_08054B7E: - cmp r1, #0xaf - beq _08054BAA - ldr r7, _08054BD4 - ldrb r0, [r7] - muls r0, r5, r0 - mov r2, r8 - adds r1, r0, r2 - ldrh r2, [r1, #0x2e] - cmp r2, #0xaf - beq _08054BAA - adds r0, r3, #0 - subs r0, #0x79 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xb - bls _08054BAA - adds r0, r2, #0 - subs r0, #0x79 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xb - bhi _08054BEC -_08054BAA: - ldr r3, _08054BE8 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08054D42 - .align 2, 0 -_08054BC8: .4byte gUnknown_2022C90 -_08054BCC: .4byte gUnknown_2023EAF -_08054BD0: .4byte 0x0A3F0902 -_08054BD4: .4byte gUnknown_2023EB0 -_08054BD8: .4byte gUnknown_2024074 -_08054BDC: .4byte gUnknown_82FACB4 -_08054BE0: .4byte gUnknown_2023D12 -_08054BE4: .4byte gUnknown_2023D28 -_08054BE8: .4byte gUnknown_2023EB8 -_08054BEC: - adds r0, r1, #0 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x3c - bne _08054C20 - ldr r1, _08054C14 - ldr r0, _08054C18 - str r0, [r1] - ldr r1, _08054C1C - ldrb r0, [r7] - muls r0, r5, r0 - add r0, r8 - adds r0, #0x20 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - ldrb r1, [r1] - bl RecordAbilityBattle - b _08054D42 - .align 2, 0 -_08054C14: .4byte gUnknown_2023EB8 -_08054C18: .4byte gUnknown_8289BC7 -_08054C1C: .4byte gUnknown_2023EAE -_08054C20: - ldr r3, _08054D0C - mov sl, r3 - lsls r0, r4, #1 - adds r0, #0xd0 - ldr r1, [r3] - adds r6, r1, r0 - mov r0, sb - ldrh r0, [r0, #0x2e] - mov sb, r0 - strh r2, [r6] - ldr r1, _08054D10 - ldrb r0, [r1] - muls r0, r5, r0 - add r0, r8 - movs r1, #0 - strh r1, [r0, #0x2e] - ldrb r0, [r7] - muls r0, r5, r0 - add r0, r8 - mov r2, sb - strh r2, [r0, #0x2e] - ldr r4, _08054D14 - ldr r3, _08054D10 - ldrb r0, [r3] - strb r0, [r4] - str r6, [sp] - movs r0, #0 - movs r1, #2 - movs r2, #0 - movs r3, #2 - bl BtlController_EmitSetMonData - ldr r1, _08054D10 - ldrb r0, [r1] - bl MarkBattlerForControllerExec - ldrb r0, [r7] - strb r0, [r4] - ldrb r0, [r7] - muls r0, r5, r0 - mov r1, r8 - adds r1, #0x2e - adds r0, r0, r1 - str r0, [sp] - movs r0, #0 - movs r1, #2 - movs r2, #0 - movs r3, #2 - bl BtlController_EmitSetMonData - ldrb r0, [r7] - bl MarkBattlerForControllerExec - ldrb r0, [r7] - mov r2, sl - ldr r1, [r2] - lsls r0, r0, #1 - adds r0, r0, r1 - adds r0, #0xc8 - movs r3, #0 - strb r3, [r0] - ldrb r0, [r7] - ldr r1, [r2] - lsls r0, r0, #1 - adds r0, r0, r1 - adds r0, #0xc9 - strb r3, [r0] - ldr r1, _08054D10 - ldrb r0, [r1] - ldr r1, [r2] - lsls r0, r0, #1 - adds r0, r0, r1 - adds r0, #0xc8 - strb r3, [r0] - ldr r2, _08054D10 - ldrb r0, [r2] - mov r3, sl - ldr r1, [r3] - lsls r0, r0, #1 - adds r0, r0, r1 - adds r0, #0xc9 - movs r1, #0 - strb r1, [r0] - ldr r1, _08054D18 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] - ldr r1, _08054D1C - movs r3, #0xfd - strb r3, [r1] - movs r2, #0xa - strb r2, [r1, #1] - ldrh r0, [r6] - strb r0, [r1, #2] - ldrh r0, [r6] - lsrs r0, r0, #8 - strb r0, [r1, #3] - movs r0, #0xff - strb r0, [r1, #4] - ldr r1, _08054D20 - strb r3, [r1] - strb r2, [r1, #1] - mov r2, sb - strb r2, [r1, #2] - mov r3, sb - lsrs r0, r3, #8 - strb r0, [r1, #3] - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r1, #4] - cmp r3, #0 - beq _08054D28 - ldrh r0, [r6] - cmp r0, #0 - beq _08054D3C - ldr r1, _08054D24 - movs r0, #2 - b _08054D40 - .align 2, 0 -_08054D0C: .4byte gUnknown_2024140 -_08054D10: .4byte gUnknown_2023EAF -_08054D14: .4byte gUnknown_2023D08 -_08054D18: .4byte gUnknown_2023EB8 -_08054D1C: .4byte gUnknown_2022C0C -_08054D20: .4byte gUnknown_2022C1C -_08054D24: .4byte gUnknown_2023FD6 -_08054D28: - ldrh r0, [r6] - cmp r0, #0 - beq _08054D3C - ldr r0, _08054D38 - movs r1, #0 - strb r1, [r0, #5] - b _08054D42 - .align 2, 0 -_08054D38: .4byte gUnknown_2023FD6 -_08054D3C: - ldr r1, _08054D54 - movs r0, #1 -_08054D40: - strb r0, [r1, #5] -_08054D42: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08054D54: .4byte gUnknown_2023FD6 - thumb_func_end atkD2_tryswapitems - - thumb_func_start atkD3_trycopyability -atkD3_trycopyability: @ 0x08054D58 - push {r4, lr} - ldr r3, _08054D98 - ldr r4, _08054D9C - ldrb r0, [r4] - movs r2, #0x58 - muls r0, r2, r0 - adds r0, r0, r3 - adds r0, #0x20 - ldrb r1, [r0] - adds r0, r1, #0 - cmp r0, #0 - beq _08054DAC - cmp r0, #0x19 - beq _08054DAC - ldr r0, _08054DA0 - ldrb r0, [r0] - muls r0, r2, r0 - adds r0, r0, r3 - adds r0, #0x20 - strb r1, [r0] - ldr r1, _08054DA4 - ldrb r0, [r4] - muls r0, r2, r0 - adds r0, r0, r3 - adds r0, #0x20 - ldrb r0, [r0] - strb r0, [r1] - ldr r1, _08054DA8 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] - b _08054DC6 - .align 2, 0 -_08054D98: .4byte gUnknown_2023D28 -_08054D9C: .4byte gUnknown_2023EB0 -_08054DA0: .4byte gUnknown_2023EAF -_08054DA4: .4byte gUnknown_2023EAE -_08054DA8: .4byte gUnknown_2023EB8 -_08054DAC: - ldr r3, _08054DCC - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] -_08054DC6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08054DCC: .4byte gUnknown_2023EB8 - thumb_func_end atkD3_trycopyability - - thumb_func_start atkD4_trywish -atkD4_trywish: @ 0x08054DD0 - push {r4, r5, r6, r7, lr} - ldr r7, _08054DE4 - ldr r2, [r7] - ldrb r3, [r2, #1] - cmp r3, #0 - beq _08054DE8 - cmp r3, #1 - beq _08054E20 - b _08054E9C - .align 2, 0 -_08054DE4: .4byte gUnknown_2023EB8 -_08054DE8: - ldr r1, _08054E14 - ldr r4, _08054E18 - adds r0, r1, #0 - adds r0, #0x20 - ldrb r5, [r4] - adds r3, r0, r5 - ldrb r0, [r3] - cmp r0, #0 - bne _08054E6C - movs r0, #2 - strb r0, [r3] - ldrb r0, [r4] - adds r1, #0x24 - adds r1, r0, r1 - ldr r2, _08054E1C - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strb r0, [r1] - ldr r0, [r7] - adds r0, #6 - b _08054E9A - .align 2, 0 -_08054E14: .4byte gUnknown_2024074 -_08054E18: .4byte gUnknown_2023EAF -_08054E1C: .4byte gUnknown_2023D12 -_08054E20: - ldr r1, _08054E84 - movs r0, #0xfd - strb r0, [r1] - movs r0, #4 - strb r0, [r1, #1] - ldr r4, _08054E88 - ldrb r0, [r4] - strb r0, [r1, #2] - ldr r0, _08054E8C - adds r0, #0x24 - ldrb r5, [r4] - adds r0, r0, r5 - ldrb r0, [r0] - strb r0, [r1, #3] - movs r0, #0xff - strb r0, [r1, #4] - ldr r1, _08054E90 - ldr r6, _08054E94 - ldrb r0, [r4] - movs r5, #0x58 - muls r0, r5, r0 - adds r0, r0, r6 - ldrh r0, [r0, #0x2c] - lsrs r0, r0, #1 - str r0, [r1] - cmp r0, #0 - bne _08054E58 - str r3, [r1] -_08054E58: - ldr r0, [r1] - rsbs r0, r0, #0 - str r0, [r1] - ldrb r0, [r4] - muls r0, r5, r0 - adds r0, r0, r6 - ldrh r1, [r0, #0x28] - ldrh r0, [r0, #0x2c] - cmp r1, r0 - bne _08054E98 -_08054E6C: - ldrb r1, [r2, #2] - ldrb r0, [r2, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r7] - b _08054E9C - .align 2, 0 -_08054E84: .4byte gUnknown_2022C0C -_08054E88: .4byte gUnknown_2023EB0 -_08054E8C: .4byte gUnknown_2024074 -_08054E90: .4byte gUnknown_2023E94 -_08054E94: .4byte gUnknown_2023D28 -_08054E98: - adds r0, r2, #6 -_08054E9A: - str r0, [r7] -_08054E9C: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end atkD4_trywish - - thumb_func_start atkD5_trysetroots -atkD5_trysetroots: @ 0x08054EA4 - push {lr} - ldr r1, _08054EDC - ldr r0, _08054EE0 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r2, r0, r1 - ldr r1, [r2] - movs r3, #0x80 - lsls r3, r3, #3 - adds r0, r1, #0 - ands r0, r3 - cmp r0, #0 - beq _08054EE8 - ldr r3, _08054EE4 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08054EF4 - .align 2, 0 -_08054EDC: .4byte gUnknown_2023F50 -_08054EE0: .4byte gUnknown_2023EAF -_08054EE4: .4byte gUnknown_2023EB8 -_08054EE8: - orrs r1, r3 - str r1, [r2] - ldr r1, _08054EF8 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] -_08054EF4: - pop {r0} - bx r0 - .align 2, 0 -_08054EF8: .4byte gUnknown_2023EB8 - thumb_func_end atkD5_trysetroots - - thumb_func_start atkD6_doubledamagedealtifdamaged -atkD6_doubledamagedealtifdamaged: @ 0x08054EFC - push {lr} - ldr r3, _08054F48 - ldr r0, _08054F4C - ldrb r0, [r0] - lsls r2, r0, #4 - adds r0, r3, #4 - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, #0 - beq _08054F1C - adds r0, r2, r3 - ldr r1, _08054F50 - ldrb r0, [r0, #0xc] - ldrb r1, [r1] - cmp r0, r1 - beq _08054F34 -_08054F1C: - adds r0, r3, #0 - adds r0, #8 - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, #0 - beq _08054F3A - adds r0, r2, r3 - ldr r1, _08054F50 - ldrb r0, [r0, #0xd] - ldrb r1, [r1] - cmp r0, r1 - bne _08054F3A -_08054F34: - ldr r1, _08054F54 - movs r0, #2 - strb r0, [r1, #0xe] -_08054F3A: - ldr r1, _08054F58 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08054F48: .4byte gUnknown_2023FE0 -_08054F4C: .4byte gUnknown_2023EAF -_08054F50: .4byte gUnknown_2023EB0 -_08054F54: .4byte gUnknown_2024118 -_08054F58: .4byte gUnknown_2023EB8 - thumb_func_end atkD6_doubledamagedealtifdamaged - - thumb_func_start atkD7_setyawn -atkD7_setyawn: @ 0x08054F5C - push {r4, lr} - ldr r1, _08054FA0 - ldr r0, _08054FA4 - ldrb r3, [r0] - lsls r0, r3, #2 - adds r4, r0, r1 - ldr r2, [r4] - movs r0, #0xc0 - lsls r0, r0, #5 - ands r0, r2 - cmp r0, #0 - bne _08054F84 - ldr r1, _08054FA8 - movs r0, #0x58 - muls r0, r3, r0 - adds r1, #0x4c - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _08054FB0 -_08054F84: - ldr r3, _08054FAC - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08054FC0 - .align 2, 0 -_08054FA0: .4byte gUnknown_2023F50 -_08054FA4: .4byte gUnknown_2023EB0 -_08054FA8: .4byte gUnknown_2023D28 -_08054FAC: .4byte gUnknown_2023EB8 -_08054FB0: - movs r0, #0x80 - lsls r0, r0, #5 - orrs r2, r0 - str r2, [r4] - ldr r1, _08054FC8 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] -_08054FC0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08054FC8: .4byte gUnknown_2023EB8 - thumb_func_end atkD7_setyawn - - thumb_func_start atkD8_setdamagetohealthdifference -atkD8_setdamagetohealthdifference: @ 0x08054FCC - push {lr} - ldr r2, _08055008 - ldr r0, _0805500C - ldrb r0, [r0] - movs r1, #0x58 - muls r0, r1, r0 - adds r3, r0, r2 - ldr r0, _08055010 - ldrb r0, [r0] - muls r0, r1, r0 - adds r1, r0, r2 - ldrh r0, [r3, #0x28] - ldrh r2, [r1, #0x28] - cmp r0, r2 - bhi _08055018 - ldr r3, _08055014 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _0805502A - .align 2, 0 -_08055008: .4byte gUnknown_2023D28 -_0805500C: .4byte gUnknown_2023EB0 -_08055010: .4byte gUnknown_2023EAF -_08055014: .4byte gUnknown_2023EB8 -_08055018: - ldr r2, _08055030 - ldrh r0, [r3, #0x28] - ldrh r1, [r1, #0x28] - subs r0, r0, r1 - str r0, [r2] - ldr r1, _08055034 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] -_0805502A: - pop {r0} - bx r0 - .align 2, 0 -_08055030: .4byte gUnknown_2023E94 -_08055034: .4byte gUnknown_2023EB8 - thumb_func_end atkD8_setdamagetohealthdifference - - thumb_func_start atkD9_scaledamagebyhealthratio -atkD9_scaledamagebyhealthratio: @ 0x08055038 - push {r4, lr} - ldr r4, _08055084 - ldrh r0, [r4] - cmp r0, #0 - bne _08055074 - ldr r2, _08055088 - ldr r0, _0805508C - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r3, [r0, #1] - ldr r2, _08055090 - ldr r0, _08055094 - ldrb r1, [r0] - movs r0, #0x58 - muls r1, r0, r1 - adds r1, r1, r2 - ldrh r0, [r1, #0x28] - muls r0, r3, r0 - ldrh r1, [r1, #0x2c] - bl __divsi3 - strh r0, [r4] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08055074 - movs r0, #1 - strh r0, [r4] -_08055074: - ldr r1, _08055098 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08055084: .4byte gUnknown_20240A4 -_08055088: .4byte gUnknown_82ED220 -_0805508C: .4byte gUnknown_2023E8E -_08055090: .4byte gUnknown_2023D28 -_08055094: .4byte gUnknown_2023EAF -_08055098: .4byte gUnknown_2023EB8 - thumb_func_end atkD9_scaledamagebyhealthratio - - thumb_func_start atkDA_tryswapabilities -atkDA_tryswapabilities: @ 0x0805509C - push {r4, r5, r6, lr} - ldr r5, _08055100 - ldr r0, _08055104 - ldrb r0, [r0] - movs r4, #0x58 - muls r0, r4, r0 - adds r0, r0, r5 - adds r2, r0, #0 - adds r2, #0x20 - ldrb r1, [r2] - cmp r1, #0 - bne _080550C4 - ldr r0, _08055108 - ldrb r0, [r0] - muls r0, r4, r0 - adds r0, r0, r5 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0 - beq _080550E4 -_080550C4: - cmp r1, #0x19 - beq _080550E4 - ldr r6, _08055108 - ldrb r0, [r6] - muls r0, r4, r0 - adds r0, r0, r5 - adds r0, #0x20 - ldrb r3, [r0] - cmp r3, #0x19 - beq _080550E4 - ldr r0, _0805510C - ldrb r1, [r0] - movs r0, #0x29 - ands r0, r1 - cmp r0, #0 - beq _08055114 -_080550E4: - ldr r3, _08055110 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _0805512A - .align 2, 0 -_08055100: .4byte gUnknown_2023D28 -_08055104: .4byte gUnknown_2023EAF -_08055108: .4byte gUnknown_2023EB0 -_0805510C: .4byte gUnknown_2023F20 -_08055110: .4byte gUnknown_2023EB8 -_08055114: - ldrb r1, [r2] - strb r3, [r2] - ldrb r0, [r6] - muls r0, r4, r0 - adds r0, r0, r5 - adds r0, #0x20 - strb r1, [r0] - ldr r1, _08055130 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] -_0805512A: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08055130: .4byte gUnknown_2023EB8 - thumb_func_end atkDA_tryswapabilities - - thumb_func_start atkDB_tryimprison -atkDB_tryimprison: @ 0x08055134 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r1, _08055154 - ldr r4, _08055158 - ldrb r2, [r4] - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #6 - ands r0, r1 - cmp r0, #0 - beq _08055184 - b _08055206 - .align 2, 0 -_08055154: .4byte gUnknown_2023F50 -_08055158: .4byte gUnknown_2023EAF -_0805515C: - ldr r0, _0805517C - mov r2, sb - ldrb r1, [r2] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - movs r2, #0x80 - lsls r2, r2, #6 - orrs r0, r2 - str r0, [r1] - ldr r1, _08055180 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] - b _080551FE - .align 2, 0 -_0805517C: .4byte gUnknown_2023F50 -_08055180: .4byte gUnknown_2023EB8 -_08055184: - adds r0, r2, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldrb r0, [r4] - bl PressurePPLoseOnUsingImprison - movs r6, #0 - b _080551F6 -_0805519A: - adds r0, r6, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r8, r0 - beq _080551F0 - movs r4, #0 - ldr r7, _0805522C - mov sb, r7 - ldr r0, _08055230 - mov ip, r0 - mov r1, sb - ldrb r0, [r1] - mov r2, ip - adds r2, #0xc - movs r1, #0x58 - muls r0, r1, r0 - adds r3, r0, r2 - adds r5, r6, #0 - muls r5, r1, r5 -_080551C4: - movs r2, #0 - ldrh r1, [r3] - mov r0, ip - adds r0, #0xc - adds r0, r5, r0 -_080551CE: - ldrh r7, [r0] - cmp r1, r7 - bne _080551D8 - cmp r1, #0 - bne _080551E0 -_080551D8: - adds r0, #2 - adds r2, #1 - cmp r2, #3 - ble _080551CE -_080551E0: - cmp r2, #4 - bne _080551EC - adds r3, #2 - adds r4, #1 - cmp r4, #3 - ble _080551C4 -_080551EC: - cmp r4, #4 - bne _0805515C -_080551F0: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_080551F6: - ldr r0, _08055234 - ldrb r0, [r0] - cmp r6, r0 - blo _0805519A -_080551FE: - ldr r0, _08055234 - ldrb r0, [r0] - cmp r6, r0 - bne _08055220 -_08055206: - ldr r3, _08055238 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] -_08055220: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805522C: .4byte gUnknown_2023EAF -_08055230: .4byte gUnknown_2023D28 -_08055234: .4byte gUnknown_2023D10 -_08055238: .4byte gUnknown_2023EB8 - thumb_func_end atkDB_tryimprison - - thumb_func_start atkDC_trysetgrudge -atkDC_trysetgrudge: @ 0x0805523C - push {lr} - ldr r1, _08055274 - ldr r0, _08055278 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r2, r0, r1 - ldr r1, [r2] - movs r3, #0x80 - lsls r3, r3, #7 - adds r0, r1, #0 - ands r0, r3 - cmp r0, #0 - beq _08055280 - ldr r3, _0805527C - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _0805528C - .align 2, 0 -_08055274: .4byte gUnknown_2023F50 -_08055278: .4byte gUnknown_2023EAF -_0805527C: .4byte gUnknown_2023EB8 -_08055280: - orrs r1, r3 - str r1, [r2] - ldr r1, _08055290 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] -_0805528C: - pop {r0} - bx r0 - .align 2, 0 -_08055290: .4byte gUnknown_2023EB8 - thumb_func_end atkDC_trysetgrudge - - thumb_func_start atkDD_weightdamagecalculation -atkDD_weightdamagecalculation: @ 0x08055294 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r5, #0 - ldr r2, _080552F8 - ldrh r0, [r2] - ldr r1, _080552FC - cmp r0, r1 - beq _0805530C - adds r6, r2, #0 - ldr r0, _08055300 - mov r8, r0 - adds r7, r1, #0 - adds r4, r6, #0 -_080552B0: - ldr r0, _08055304 - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - add r0, r8 - ldrh r0, [r0] - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - bl GetPokedexHeightWeight - ldrh r1, [r4] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r1, r0 - bhi _080552DE - adds r4, #4 - adds r5, #2 - ldrh r0, [r4] - cmp r0, r7 - bne _080552B0 -_080552DE: - lsls r0, r5, #1 - adds r0, r0, r6 - ldrh r1, [r0] - ldr r0, _080552FC - cmp r1, r0 - beq _0805530C - ldr r0, _08055308 - adds r1, r5, #1 - lsls r1, r1, #1 - adds r1, r1, r6 - ldrh r1, [r1] - strh r1, [r0] - b _08055312 - .align 2, 0 -_080552F8: .4byte gUnknown_82ECDAC -_080552FC: .4byte 0x0000FFFF -_08055300: .4byte gUnknown_2023D28 -_08055304: .4byte gUnknown_2023EB0 -_08055308: .4byte gUnknown_20240A4 -_0805530C: - ldr r1, _08055324 - movs r0, #0x78 - strh r0, [r1] -_08055312: - ldr r1, _08055328 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08055324: .4byte gUnknown_20240A4 -_08055328: .4byte gUnknown_2023EB8 - thumb_func_end atkDD_weightdamagecalculation - - thumb_func_start atkDE_assistattackselect -atkDE_assistattackselect: @ 0x0805532C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - movs r0, #0 - mov sl, r0 - ldr r0, _0805544C - ldr r0, [r0] - adds r0, #0x18 - str r0, [sp, #4] - ldr r0, _08055450 - ldrb r0, [r0] - bl sub_080A630C - movs r1, #1 - ands r1, r0 - ldr r0, _08055454 - str r0, [sp] - cmp r1, #0 - beq _0805535C - ldr r1, _08055458 - str r1, [sp] -_0805535C: - movs r2, #0 -_0805535E: - ldr r1, _0805545C - ldr r0, _08055450 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - adds r1, r2, #1 - str r1, [sp, #8] - ldrh r0, [r0] - cmp r2, r0 - beq _08055404 - movs r0, #0x64 - adds r6, r2, #0 - muls r6, r0, r6 - ldr r0, [sp] - adds r4, r0, r6 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - cmp r0, #0 - beq _08055404 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - movs r1, #0xce - lsls r1, r1, #1 - cmp r0, r1 - beq _08055404 - movs r5, #0 - ldr r1, _08055460 - mov r8, r1 - mov sb, r6 - mov r1, sl - lsls r0, r1, #1 - ldr r1, [sp, #4] - adds r6, r0, r1 -_080553A8: - movs r7, #0 - adds r1, r5, #0 - adds r1, #0xd - ldr r0, [sp] - add r0, sb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r4, #0 - bl IsInvalidForSleepTalkOrAssist - lsls r0, r0, #0x18 - adds r1, r5, #1 - cmp r0, #0 - bne _080553FE - ldr r0, _08055464 - ldrh r2, [r0] - adds r3, r0, #0 - cmp r2, r8 - beq _080553F2 - cmp r4, r2 - beq _080553E8 - ldr r5, _08055460 - adds r2, r3, #0 -_080553DA: - adds r2, #2 - adds r7, #1 - ldrh r0, [r2] - cmp r0, r5 - beq _080553F2 - cmp r4, r0 - bne _080553DA -_080553E8: - lsls r0, r7, #1 - adds r0, r0, r3 - ldrh r0, [r0] - cmp r0, r8 - bne _080553FE -_080553F2: - cmp r4, #0 - beq _080553FE - strh r4, [r6] - adds r6, #2 - movs r0, #1 - add sl, r0 -_080553FE: - adds r5, r1, #0 - cmp r5, #3 - ble _080553A8 -_08055404: - ldr r2, [sp, #8] - cmp r2, #5 - ble _0805535E - mov r1, sl - cmp r1, #0 - beq _0805547C - ldr r2, _08055468 - ldr r0, [r2] - ldr r1, _0805546C - ands r0, r1 - str r0, [r2] - ldr r4, _08055470 - bl Random - movs r1, #0xff - ands r1, r0 - mov r0, sl - muls r0, r1, r0 - asrs r0, r0, #8 - lsls r0, r0, #1 - ldr r1, [sp, #4] - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r4] - ldrh r0, [r4] - movs r1, #0 - bl GetMoveTarget - ldr r1, _08055474 - strb r0, [r1] - ldr r1, _08055478 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] - b _08055496 - .align 2, 0 -_0805544C: .4byte gUnknown_2024140 -_08055450: .4byte gUnknown_2023EAF -_08055454: .4byte gUnknown_2024190 -_08055458: .4byte gUnknown_20243E8 -_0805545C: .4byte gUnknown_2023D12 -_08055460: .4byte 0x0000FFFF -_08055464: .4byte gUnknown_82ECD64 -_08055468: .4byte gUnknown_2023F24 -_0805546C: .4byte 0xFFFFFBFF -_08055470: .4byte gUnknown_2023E92 -_08055474: .4byte gUnknown_2023EB0 -_08055478: .4byte gUnknown_2023EB8 -_0805547C: - ldr r3, _080554A8 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] -_08055496: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080554A8: .4byte gUnknown_2023EB8 - thumb_func_end atkDE_assistattackselect - - thumb_func_start atkDF_trysetmagiccoat -atkDF_trysetmagiccoat: @ 0x080554AC - push {lr} - ldr r1, _080554F4 - ldr r3, _080554F8 - ldrb r0, [r3] - strb r0, [r1] - ldr r2, _080554FC - ldrb r1, [r3] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r2, #0x20 - orrs r1, r2 - strb r1, [r0] - ldr r0, _08055500 - ldrb r1, [r0] - ldr r0, _08055504 - ldrb r0, [r0] - subs r0, #1 - cmp r1, r0 - bne _0805550C - ldr r3, _08055508 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08055524 - .align 2, 0 -_080554F4: .4byte gUnknown_2023EB0 -_080554F8: .4byte gUnknown_2023EAF -_080554FC: .4byte gUnknown_2024020 -_08055500: .4byte gUnknown_2023D26 -_08055504: .4byte gUnknown_2023D10 -_08055508: .4byte gUnknown_2023EB8 -_0805550C: - ldr r0, _08055528 - ldrb r1, [r3] - lsls r1, r1, #4 - adds r1, r1, r0 - ldrb r0, [r1] - movs r2, #0x10 - orrs r0, r2 - strb r0, [r1] - ldr r1, _0805552C - ldr r0, [r1] - adds r0, #5 - str r0, [r1] -_08055524: - pop {r0} - bx r0 - .align 2, 0 -_08055528: .4byte gUnknown_2023FE0 -_0805552C: .4byte gUnknown_2023EB8 - thumb_func_end atkDF_trysetmagiccoat - - thumb_func_start atkE0_trysetsnatch -atkE0_trysetsnatch: @ 0x08055530 - push {lr} - ldr r2, _08055574 - ldr r3, _08055578 - ldrb r1, [r3] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r2, #0x20 - orrs r1, r2 - strb r1, [r0] - ldr r0, _0805557C - ldrb r1, [r0] - ldr r0, _08055580 - ldrb r0, [r0] - subs r0, #1 - cmp r1, r0 - bne _08055588 - ldr r3, _08055584 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _0805559E - .align 2, 0 -_08055574: .4byte gUnknown_2024020 -_08055578: .4byte gUnknown_2023EAF -_0805557C: .4byte gUnknown_2023D26 -_08055580: .4byte gUnknown_2023D10 -_08055584: .4byte gUnknown_2023EB8 -_08055588: - ldr r0, _080555A4 - ldrb r1, [r3] - lsls r1, r1, #4 - adds r1, r1, r0 - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] - ldr r1, _080555A8 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] -_0805559E: - pop {r0} - bx r0 - .align 2, 0 -_080555A4: .4byte gUnknown_2023FE0 -_080555A8: .4byte gUnknown_2023EB8 - thumb_func_end atkE0_trysetsnatch - - thumb_func_start atkE1_trygetintimidatetarget -atkE1_trygetintimidatetarget: @ 0x080555AC - push {r4, r5, r6, lr} - ldr r4, _08055650 - ldr r0, _08055654 - ldr r0, [r0] - adds r0, #0xd8 - ldrb r0, [r0] - strb r0, [r4, #0x17] - ldrb r0, [r4, #0x17] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r2, _08055658 - movs r0, #0xfd - strb r0, [r2] - movs r0, #9 - strb r0, [r2, #1] - ldr r3, _0805565C - ldrb r1, [r4, #0x17] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r3 - adds r0, #0x20 - ldrb r0, [r0] - strb r0, [r2, #2] - movs r0, #0xff - strb r0, [r2, #3] - ldr r2, _08055660 - ldr r1, _08055664 - ldrb r0, [r2] - ldrb r1, [r1] - cmp r0, r1 - bhs _08055632 - adds r4, r2, #0 - ldr r6, _08055668 -_080555F2: - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r5 - beq _08055614 - ldr r0, _0805566C - ldrb r1, [r0] - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r0, [r0] - ands r1, r0 - ldr r2, _08055664 - cmp r1, #0 - beq _08055628 -_08055614: - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - ldr r1, _08055664 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r2, r1, #0 - ldrb r1, [r2] - cmp r0, r1 - blo _080555F2 -_08055628: - ldr r0, _08055660 - ldrb r0, [r0] - ldrb r2, [r2] - cmp r0, r2 - blo _08055674 -_08055632: - ldr r3, _08055670 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _0805567C - .align 2, 0 -_08055650: .4byte gUnknown_2024118 -_08055654: .4byte gUnknown_2024140 -_08055658: .4byte gUnknown_2022C0C -_0805565C: .4byte gUnknown_2023D28 -_08055660: .4byte gUnknown_2023EB0 -_08055664: .4byte gUnknown_2023D10 -_08055668: .4byte gUnknown_82FACB4 -_0805566C: .4byte gUnknown_2023EB4 -_08055670: .4byte gUnknown_2023EB8 -_08055674: - ldr r1, _08055684 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] -_0805567C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08055684: .4byte gUnknown_2023EB8 - thumb_func_end atkE1_trygetintimidatetarget - - thumb_func_start atkE2_switchoutabilities -atkE2_switchoutabilities: @ 0x08055688 - push {r4, r5, r6, lr} - sub sp, #4 - ldr r5, _080556F0 - ldr r0, [r5] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - ldr r4, _080556F4 - strb r0, [r4] - ldr r3, _080556F8 - ldrb r0, [r4] - movs r6, #0x58 - adds r1, r0, #0 - muls r1, r6, r1 - adds r0, r1, r3 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x1e - bne _080556E2 - adds r3, #0x4c - adds r1, r1, r3 - movs r0, #0 - str r0, [r1] - ldr r2, _080556FC - ldrb r1, [r4] - ldr r0, _08055700 - ldr r0, [r0] - adds r0, r1, r0 - adds r0, #0x58 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r2, [r0] - adds r0, r1, #0 - muls r0, r6, r0 - adds r0, r0, r3 - str r0, [sp] - movs r0, #0 - movs r1, #0x28 - movs r3, #4 - bl BtlController_EmitSetMonData - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_080556E2: - ldr r0, [r5] - adds r0, #2 - str r0, [r5] - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080556F0: .4byte gUnknown_2023EB8 -_080556F4: .4byte gUnknown_2023D08 -_080556F8: .4byte gUnknown_2023D28 -_080556FC: .4byte gUnknown_82FACB4 -_08055700: .4byte gUnknown_2024140 - thumb_func_end atkE2_switchoutabilities - - thumb_func_start atkE3_jumpifhasnohp -atkE3_jumpifhasnohp: @ 0x08055704 - push {r4, lr} - ldr r4, _08055740 - ldr r0, [r4] - ldrb r0, [r0, #1] - bl GetBattlerForBattleScript - ldr r1, _08055744 - strb r0, [r1] - ldr r2, _08055748 - ldrb r1, [r1] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - ldrh r0, [r0, #0x28] - cmp r0, #0 - bne _0805574C - ldr r2, [r4] - ldrb r1, [r2, #2] - ldrb r0, [r2, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _08055752 - .align 2, 0 -_08055740: .4byte gUnknown_2023EB8 -_08055744: .4byte gUnknown_2023D08 -_08055748: .4byte gUnknown_2023D28 -_0805574C: - ldr r0, [r4] - adds r0, #6 - str r0, [r4] -_08055752: - pop {r4} - pop {r0} - bx r0 - thumb_func_end atkE3_jumpifhasnohp - - thumb_func_start atkE4_getsecretpowereffect -atkE4_getsecretpowereffect: @ 0x08055758 - push {lr} - ldr r0, _0805576C - ldrb r0, [r0] - cmp r0, #7 - bhi _080557F4 - lsls r0, r0, #2 - ldr r1, _08055770 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0805576C: .4byte gUnknown_2022C94 -_08055770: .4byte _08055774 -_08055774: @ jump table - .4byte _08055794 @ case 0 - .4byte _080557A0 @ case 1 - .4byte _080557AC @ case 2 - .4byte _080557B8 @ case 3 - .4byte _080557C4 @ case 4 - .4byte _080557D0 @ case 5 - .4byte _080557DC @ case 6 - .4byte _080557E8 @ case 7 -_08055794: - ldr r1, _0805579C - movs r0, #2 - b _080557F8 - .align 2, 0 -_0805579C: .4byte gUnknown_2023FD6 -_080557A0: - ldr r1, _080557A8 - movs r0, #1 - b _080557F8 - .align 2, 0 -_080557A8: .4byte gUnknown_2023FD6 -_080557AC: - ldr r1, _080557B4 - movs r0, #0x1b - b _080557F8 - .align 2, 0 -_080557B4: .4byte gUnknown_2023FD6 -_080557B8: - ldr r1, _080557C0 - movs r0, #0x17 - b _080557F8 - .align 2, 0 -_080557C0: .4byte gUnknown_2023FD6 -_080557C4: - ldr r1, _080557CC - movs r0, #0x16 - b _080557F8 - .align 2, 0 -_080557CC: .4byte gUnknown_2023FD6 -_080557D0: - ldr r1, _080557D8 - movs r0, #0x18 - b _080557F8 - .align 2, 0 -_080557D8: .4byte gUnknown_2023FD6 -_080557DC: - ldr r1, _080557E4 - movs r0, #7 - b _080557F8 - .align 2, 0 -_080557E4: .4byte gUnknown_2023FD6 -_080557E8: - ldr r1, _080557F0 - movs r0, #8 - b _080557F8 - .align 2, 0 -_080557F0: .4byte gUnknown_2023FD6 -_080557F4: - ldr r1, _08055808 - movs r0, #5 -_080557F8: - strb r0, [r1, #3] - ldr r1, _0805580C - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08055808: .4byte gUnknown_2023FD6 -_0805580C: .4byte gUnknown_2023EB8 - thumb_func_end atkE4_getsecretpowereffect - - thumb_func_start atkE5_pickup -atkE5_pickup: @ 0x08055810 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - bl InBattlePike - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08055828 - b _080559E8 -_08055828: - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080558D4 - movs r6, #0 - mov r7, sp - ldr r0, _08055874 - mov r8, r0 -_0805583A: - movs r0, #0x64 - adds r4, r6, #0 - muls r4, r0, r4 - ldr r0, _08055878 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r4, #0 - movs r1, #0xc - bl GetMonData - strh r0, [r7] - adds r0, r4, #0 - movs r1, #0x2e - bl GetMonData - cmp r0, #0 - beq _0805587C - lsls r0, r5, #3 - subs r0, r0, r5 - lsls r0, r0, #2 - add r0, r8 - ldrb r0, [r0, #0x17] - b _08055886 - .align 2, 0 -_08055874: .4byte gUnknown_82F0D54 -_08055878: .4byte gUnknown_2024190 -_0805587C: - lsls r0, r5, #3 - subs r0, r0, r5 - lsls r0, r0, #2 - add r0, r8 - ldrb r0, [r0, #0x16] -_08055886: - cmp r0, #0x35 - bne _080558C6 - cmp r5, #0 - beq _080558C6 - movs r0, #0xce - lsls r0, r0, #1 - cmp r5, r0 - beq _080558C6 - ldrh r0, [r7] - cmp r0, #0 - bne _080558C6 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __umodsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080558C6 - bl GetBattlePyramidPickupItemId - strh r0, [r7] - movs r0, #0x64 - muls r0, r6, r0 - ldr r1, _080558D0 - adds r0, r0, r1 - movs r1, #0xc - mov r2, sp - bl SetMonData -_080558C6: - adds r6, #1 - cmp r6, #5 - ble _0805583A - b _080559E8 - .align 2, 0 -_080558D0: .4byte gUnknown_2024190 -_080558D4: - movs r6, #0 - movs r1, #0x64 - mov r8, r1 - ldr r7, _08055918 - mov sl, sp -_080558DE: - mov r4, r8 - muls r4, r6, r4 - adds r4, r4, r7 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r4, #0 - movs r1, #0xc - bl GetMonData - mov r1, sl - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0x2e - bl GetMonData - cmp r0, #0 - beq _08055940 - lsls r0, r5, #3 - subs r0, r0, r5 - lsls r0, r0, #2 - ldr r1, _0805591C - adds r0, r0, r1 - ldrb r0, [r0, #0x17] - b _0805594C - .align 2, 0 -_08055918: .4byte gUnknown_2024190 -_0805591C: .4byte gUnknown_82F0D54 -_08055920: - mov r0, r8 - muls r0, r6, r0 - adds r0, r0, r7 - adds r2, r1, #0 - adds r2, #0x63 - subs r2, r2, r4 - lsls r2, r2, #1 - ldr r1, _0805593C - adds r2, r2, r1 - movs r1, #0xc - bl SetMonData - b _080559E0 - .align 2, 0 -_0805593C: .4byte gUnknown_82ECDE8 -_08055940: - lsls r0, r5, #3 - subs r0, r0, r5 - lsls r0, r0, #2 - ldr r1, _080559B0 - adds r0, r0, r1 - ldrb r0, [r0, #0x16] -_0805594C: - adds r1, r6, #1 - mov sb, r1 - cmp r0, #0x35 - bne _080559E0 - cmp r5, #0 - beq _080559E0 - movs r0, #0xce - lsls r0, r0, #1 - cmp r5, r0 - beq _080559E0 - mov r1, sl - ldrh r0, [r1] - cmp r0, #0 - bne _080559E0 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __umodsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080559E0 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - mov r0, r8 - muls r0, r6, r0 - adds r0, r0, r7 - movs r1, #0x38 - bl GetMonData - subs r0, #1 - movs r1, #0xa - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #9 - bls _080559AC - movs r1, #9 -_080559AC: - movs r2, #0 - b _080559BE - .align 2, 0 -_080559B0: .4byte gUnknown_82F0D54 -_080559B4: - adds r0, r4, #0 - subs r0, #0x62 - cmp r0, #1 - bls _08055920 - adds r2, #1 -_080559BE: - cmp r2, #8 - bgt _080559E0 - ldr r0, _08055A00 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, r4 - ble _080559B4 - mov r0, r8 - muls r0, r6, r0 - adds r0, r0, r7 - adds r2, r1, r2 - lsls r2, r2, #1 - ldr r1, _08055A04 - adds r2, r2, r1 - movs r1, #0xc - bl SetMonData -_080559E0: - mov r6, sb - cmp r6, #5 - bgt _080559E8 - b _080558DE -_080559E8: - ldr r1, _08055A08 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08055A00: .4byte gUnknown_82ECDFE -_08055A04: .4byte gUnknown_82ECDC4 -_08055A08: .4byte gUnknown_2023EB8 - thumb_func_end atkE5_pickup - - thumb_func_start atkE6_docastformchangeanimation -atkE6_docastformchangeanimation: @ 0x08055A0C - push {r4, lr} - ldr r4, _08055A60 - ldr r0, _08055A64 - ldrb r0, [r0, #0x17] - strb r0, [r4] - ldr r1, _08055A68 - ldrb r2, [r4] - movs r0, #0x58 - muls r0, r2, r0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - ldr r3, _08055A6C - cmp r0, #0 - beq _08055A3C - ldr r0, [r3] - adds r0, #0x7f - ldrb r1, [r0] - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0] -_08055A3C: - ldr r0, [r3] - adds r0, #0x7f - ldrb r2, [r0] - movs r0, #0 - movs r1, #0 - bl BtlController_EmitBattleAnimation - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldr r1, _08055A70 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08055A60: .4byte gUnknown_2023D08 -_08055A64: .4byte gUnknown_2024118 -_08055A68: .4byte gUnknown_2023D28 -_08055A6C: .4byte gUnknown_2024140 -_08055A70: .4byte gUnknown_2023EB8 - thumb_func_end atkE6_docastformchangeanimation - - thumb_func_start atkE7_trycastformdatachange -atkE7_trycastformdatachange: @ 0x08055A74 - push {r4, lr} - ldr r1, _08055AA4 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - ldr r0, _08055AA8 - ldrb r0, [r0, #0x17] - bl CastformDataTypeChange - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - beq _08055A9E - ldr r0, _08055AAC - bl BattleScriptPushCursorAndCallback - ldr r0, _08055AB0 - ldr r0, [r0] - adds r0, #0x7f - subs r1, r4, #1 - strb r1, [r0] -_08055A9E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08055AA4: .4byte gUnknown_2023EB8 -_08055AA8: .4byte gUnknown_2024118 -_08055AAC: .4byte gUnknown_8289A31 -_08055AB0: .4byte gUnknown_2024140 - thumb_func_end atkE7_trycastformdatachange - - thumb_func_start atkE8_settypebasedhalvers -atkE8_settypebasedhalvers: @ 0x08055AB4 - push {r4, lr} - movs r4, #0 - ldr r2, _08055AF0 - ldr r0, _08055AF4 - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #0xc9 - bne _08055B04 - ldr r1, _08055AF8 - ldr r0, _08055AFC - ldrb r0, [r0] - lsls r0, r0, #2 - adds r2, r0, r1 - ldr r1, [r2] - movs r3, #0x80 - lsls r3, r3, #9 - adds r0, r1, #0 - ands r0, r3 - cmp r0, #0 - bne _08055B28 - orrs r1, r3 - str r1, [r2] - ldr r0, _08055B00 - strb r4, [r0, #5] - b _08055B2C - .align 2, 0 -_08055AF0: .4byte gUnknown_82ED220 -_08055AF4: .4byte gUnknown_2023E8E -_08055AF8: .4byte gUnknown_2023F50 -_08055AFC: .4byte gUnknown_2023EAF -_08055B00: .4byte gUnknown_2023FD6 -_08055B04: - ldr r1, _08055B38 - ldr r0, _08055B3C - ldrb r0, [r0] - lsls r0, r0, #2 - adds r2, r0, r1 - ldr r1, [r2] - movs r3, #0x80 - lsls r3, r3, #0xa - adds r0, r1, #0 - ands r0, r3 - cmp r0, #0 - bne _08055B28 - orrs r1, r3 - str r1, [r2] - ldr r1, _08055B40 - movs r0, #1 - strb r0, [r1, #5] - movs r4, #1 -_08055B28: - cmp r4, #0 - beq _08055B48 -_08055B2C: - ldr r1, _08055B44 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] - b _08055B62 - .align 2, 0 -_08055B38: .4byte gUnknown_2023F50 -_08055B3C: .4byte gUnknown_2023EAF -_08055B40: .4byte gUnknown_2023FD6 -_08055B44: .4byte gUnknown_2023EB8 -_08055B48: - ldr r3, _08055B68 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] -_08055B62: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08055B68: .4byte gUnknown_2023EB8 - thumb_func_end atkE8_settypebasedhalvers - - thumb_func_start atkE9_setweatherballtype -atkE9_setweatherballtype: @ 0x08055B6C - push {lr} - sub sp, #4 - movs r0, #0 - str r0, [sp] - movs r0, #0x13 - movs r1, #0 - movs r2, #0xd - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _08055C0C - str r0, [sp] - movs r0, #0x13 - movs r1, #0 - movs r2, #0x4d - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08055C0C - ldr r2, _08055BBC - ldrb r0, [r2] - cmp r0, #0 - beq _08055BAA - ldr r1, _08055BC0 - movs r0, #2 - strb r0, [r1, #0xe] -_08055BAA: - ldrh r1, [r2] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - beq _08055BC8 - ldr r0, _08055BC4 - ldr r1, [r0] - movs r0, #0x8b - b _08055C0A - .align 2, 0 -_08055BBC: .4byte gUnknown_2024070 -_08055BC0: .4byte gUnknown_2024118 -_08055BC4: .4byte gUnknown_2024140 -_08055BC8: - movs r0, #0x18 - ands r0, r1 - cmp r0, #0 - beq _08055BDC - ldr r0, _08055BD8 - ldr r1, [r0] - movs r0, #0x85 - b _08055C0A - .align 2, 0 -_08055BD8: .4byte gUnknown_2024140 -_08055BDC: - movs r0, #0x60 - ands r0, r1 - cmp r0, #0 - beq _08055BF0 - ldr r0, _08055BEC - ldr r1, [r0] - movs r0, #0x8a - b _08055C0A - .align 2, 0 -_08055BEC: .4byte gUnknown_2024140 -_08055BF0: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08055C04 - ldr r0, _08055C00 - ldr r1, [r0] - movs r0, #0x8f - b _08055C0A - .align 2, 0 -_08055C00: .4byte gUnknown_2024140 -_08055C04: - ldr r0, _08055C1C - ldr r1, [r0] - movs r0, #0x80 -_08055C0A: - strb r0, [r1, #0x13] -_08055C0C: - ldr r1, _08055C20 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_08055C1C: .4byte gUnknown_2024140 -_08055C20: .4byte gUnknown_2023EB8 - thumb_func_end atkE9_setweatherballtype - - thumb_func_start atkEA_tryrecycleitem -atkEA_tryrecycleitem: @ 0x08055C24 - push {r4, r5, r6, r7, lr} - sub sp, #4 - ldr r7, _08055C8C - ldr r0, _08055C90 - ldrb r0, [r0] - strb r0, [r7] - ldr r1, _08055C94 - ldrb r2, [r7] - lsls r0, r2, #1 - adds r0, #0xb8 - ldr r1, [r1] - adds r6, r1, r0 - ldrh r5, [r6] - cmp r5, #0 - beq _08055CA4 - ldr r4, _08055C98 - movs r3, #0x58 - adds r0, r2, #0 - muls r0, r3, r0 - adds r0, r0, r4 - ldrh r0, [r0, #0x2e] - cmp r0, #0 - bne _08055CA4 - ldr r1, _08055C9C - strh r5, [r1] - strh r0, [r6] - ldrb r0, [r7] - muls r0, r3, r0 - adds r0, r0, r4 - ldrh r1, [r1] - strh r1, [r0, #0x2e] - ldrb r0, [r7] - muls r0, r3, r0 - adds r1, r4, #0 - adds r1, #0x2e - adds r0, r0, r1 - str r0, [sp] - movs r0, #0 - movs r1, #2 - movs r2, #0 - movs r3, #2 - bl BtlController_EmitSetMonData - ldrb r0, [r7] - bl MarkBattlerForControllerExec - ldr r1, _08055CA0 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] - b _08055CBE - .align 2, 0 -_08055C8C: .4byte gUnknown_2023D08 -_08055C90: .4byte gUnknown_2023EAF -_08055C94: .4byte gUnknown_2024140 -_08055C98: .4byte gUnknown_2023D28 -_08055C9C: .4byte gUnknown_2023EAC -_08055CA0: .4byte gUnknown_2023EB8 -_08055CA4: - ldr r3, _08055CC8 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] -_08055CBE: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08055CC8: .4byte gUnknown_2023EB8 - thumb_func_end atkEA_tryrecycleitem - - thumb_func_start atkEB_settypetoterrain -atkEB_settypetoterrain: @ 0x08055CCC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _08055D3C - mov r8, r0 - ldr r7, _08055D40 - ldrb r0, [r7] - movs r6, #0x58 - muls r0, r6, r0 - mov r1, r8 - adds r3, r0, r1 - movs r0, #0x21 - adds r0, r0, r3 - mov ip, r0 - ldr r5, _08055D44 - ldr r4, _08055D48 - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r2, [r0] - mov r1, ip - ldrb r0, [r1] - adds r1, r2, #0 - cmp r0, r1 - beq _08055D54 - adds r0, r3, #0 - adds r0, #0x22 - ldrb r0, [r0] - cmp r0, r1 - beq _08055D54 - mov r0, ip - strb r2, [r0] - ldrb r0, [r7] - adds r1, r0, #0 - muls r1, r6, r1 - add r1, r8 - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r0, [r0] - adds r1, #0x22 - strb r0, [r1] - ldr r1, _08055D4C - movs r0, #0xfd - strb r0, [r1] - movs r0, #3 - strb r0, [r1, #1] - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r0, [r0] - strb r0, [r1, #2] - movs r0, #0xff - strb r0, [r1, #3] - ldr r1, _08055D50 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] - b _08055D6E - .align 2, 0 -_08055D3C: .4byte gUnknown_2023D28 -_08055D40: .4byte gUnknown_2023EAF -_08055D44: .4byte gUnknown_82ECE07 -_08055D48: .4byte gUnknown_2022C94 -_08055D4C: .4byte gUnknown_2022C0C -_08055D50: .4byte gUnknown_2023EB8 -_08055D54: - ldr r3, _08055D78 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] -_08055D6E: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08055D78: .4byte gUnknown_2023EB8 - thumb_func_end atkEB_settypetoterrain - - thumb_func_start atkEC_pursuitrelated -atkEC_pursuitrelated: @ 0x08055D7C - push {r4, r5, r6, lr} - ldr r5, _08055DF0 - ldrb r0, [r5] - bl sub_080A630C - movs r1, #2 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - ldr r4, _08055DF4 - strb r0, [r4] - ldr r0, _08055DF8 - ldr r0, [r0] - movs r6, #1 - ands r0, r6 - cmp r0, #0 - beq _08055E1C - ldr r0, _08055DFC - ldrb r1, [r0] - ldr r2, _08055E00 - ldrb r3, [r4] - lsls r0, r3, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _08055E1C - ldr r0, _08055E04 - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, #0 - bne _08055E1C - ldr r1, _08055E08 - lsls r0, r3, #1 - adds r0, r0, r1 - ldrh r2, [r0] - cmp r2, #0xe4 - bne _08055E1C - ldr r0, _08055E0C - adds r0, r3, r0 - movs r1, #0xb - strb r1, [r0] - ldr r0, _08055E10 - strh r2, [r0] - ldr r1, _08055E14 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] - ldr r0, _08055E18 - strb r6, [r0, #0x18] - ldrb r1, [r5] - adds r0, #0x20 - strb r1, [r0] - ldrb r0, [r4] - strb r0, [r5] - b _08055E36 - .align 2, 0 -_08055DF0: .4byte gUnknown_2023EAF -_08055DF4: .4byte gUnknown_2023D08 -_08055DF8: .4byte gUnknown_2022C90 -_08055DFC: .4byte gUnknown_2023EB4 -_08055E00: .4byte gUnknown_82FACB4 -_08055E04: .4byte gUnknown_2023EC0 -_08055E08: .4byte gUnknown_2023F18 -_08055E0C: .4byte gUnknown_2023D1E -_08055E10: .4byte gUnknown_2023E8E -_08055E14: .4byte gUnknown_2023EB8 -_08055E18: .4byte gUnknown_2024118 -_08055E1C: - ldr r3, _08055E3C - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] -_08055E36: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08055E3C: .4byte gUnknown_2023EB8 - thumb_func_end atkEC_pursuitrelated - - thumb_func_start atkEF_snatchsetbattlers -atkEF_snatchsetbattlers: @ 0x08055E40 - push {r4, lr} - ldr r1, _08055E64 - ldr r3, _08055E68 - ldrb r0, [r3] - strb r0, [r1] - ldr r2, _08055E6C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r4, r1, #0 - ldrb r1, [r2] - cmp r0, r1 - bne _08055E74 - ldr r1, _08055E70 - ldrb r0, [r1, #0x17] - strb r0, [r2] - strb r0, [r3] - b _08055E7A - .align 2, 0 -_08055E64: .4byte gUnknown_2023EB2 -_08055E68: .4byte gUnknown_2023EAF -_08055E6C: .4byte gUnknown_2023EB0 -_08055E70: .4byte gUnknown_2024118 -_08055E74: - ldr r1, _08055E8C - ldrb r0, [r1, #0x17] - strb r0, [r2] -_08055E7A: - ldrb r0, [r4] - strb r0, [r1, #0x17] - ldr r1, _08055E90 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08055E8C: .4byte gUnknown_2024118 -_08055E90: .4byte gUnknown_2023EB8 - thumb_func_end atkEF_snatchsetbattlers - - thumb_func_start atkEE_removelightscreenreflect -atkEE_removelightscreenreflect: @ 0x08055E94 - push {r4, lr} - ldr r0, _08055EDC - ldrb r0, [r0] - bl GetBattlerSide - movs r1, #1 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08055EE0 - lsls r3, r0, #1 - adds r0, r3, r0 - lsls r0, r0, #2 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, #0 - bne _08055EBC - ldrb r1, [r4, #2] - cmp r1, #0 - beq _08055EF4 -_08055EBC: - ldr r2, _08055EE4 - adds r2, r3, r2 - ldrh r1, [r2] - ldr r0, _08055EE8 - ands r0, r1 - movs r3, #0 - ldr r1, _08055EEC - ands r0, r1 - strh r0, [r2] - strb r3, [r4] - strb r3, [r4, #2] - ldr r1, _08055EF0 - movs r0, #1 - strb r0, [r1, #0x18] - strb r0, [r1, #0x19] - b _08055EFA - .align 2, 0 -_08055EDC: .4byte gUnknown_2023EAF -_08055EE0: .4byte gUnknown_2023F38 -_08055EE4: .4byte gUnknown_2023F32 -_08055EE8: .4byte 0x0000FFFE -_08055EEC: .4byte 0x0000FFFD -_08055EF0: .4byte gUnknown_2024118 -_08055EF4: - ldr r0, _08055F08 - strb r1, [r0, #0x18] - strb r1, [r0, #0x19] -_08055EFA: - ldr r1, _08055F0C - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08055F08: .4byte gUnknown_2024118 -_08055F0C: .4byte gUnknown_2023EB8 - thumb_func_end atkEE_removelightscreenreflect - - thumb_func_start atkEF_handleballthrow -atkEF_handleballthrow: @ 0x08055F10 - push {r4, r5, r6, lr} - movs r4, #0 - ldr r0, _08055F50 - ldr r0, [r0] - cmp r0, #0 - beq _08055F1E - b _080562A6 -_08055F1E: - ldr r5, _08055F54 - ldr r0, _08055F58 - ldrb r0, [r0] - strb r0, [r5] - ldr r6, _08055F5C - movs r1, #1 - eors r0, r1 - strb r0, [r6] - ldr r0, _08055F60 - ldr r1, [r0] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08055F6C - movs r0, #0 - movs r1, #5 - bl BtlController_EmitBallThrowAnim - ldrb r0, [r5] - bl MarkBattlerForControllerExec - ldr r1, _08055F64 - ldr r0, _08055F68 - b _080562A4 - .align 2, 0 -_08055F50: .4byte gUnknown_2023D0C -_08055F54: .4byte gUnknown_2023D08 -_08055F58: .4byte gUnknown_2023EAF -_08055F5C: .4byte gUnknown_2023EB0 -_08055F60: .4byte gUnknown_2022C90 -_08055F64: .4byte gUnknown_2023EB8 -_08055F68: .4byte gUnknown_828A38A -_08055F6C: - movs r0, #0x80 - lsls r0, r0, #2 - ands r1, r0 - cmp r1, #0 - beq _08055F94 - movs r0, #0 - movs r1, #4 - bl BtlController_EmitBallThrowAnim - ldrb r0, [r5] - bl MarkBattlerForControllerExec - ldr r1, _08055F8C - ldr r0, _08055F90 - b _080562A4 - .align 2, 0 -_08055F8C: .4byte gUnknown_2023EB8 -_08055F90: .4byte gUnknown_828A352 -_08055F94: - ldr r0, _08055FB8 - ldrh r0, [r0] - cmp r0, #5 - bne _08055FC0 - ldr r0, _08055FBC - ldr r0, [r0] - adds r0, #0x7c - ldrb r0, [r0] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r0, r1, #8 - subs r0, r0, r1 - movs r1, #0x64 - bl __divsi3 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - b _08055FD8 - .align 2, 0 -_08055FB8: .4byte gUnknown_2023EAC -_08055FBC: .4byte gUnknown_2024140 -_08055FC0: - ldr r3, _08055FF4 - ldr r2, _08055FF8 - ldrb r1, [r6] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - ldrh r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r5, [r0, #8] -_08055FD8: - ldr r2, _08055FFC - ldrh r0, [r2] - cmp r0, #5 - bhi _08055FE2 - b _080560D8 -_08055FE2: - subs r0, #6 - cmp r0, #6 - bls _08055FEA - b _080560E2 -_08055FEA: - lsls r0, r0, #2 - ldr r1, _08056000 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08055FF4: .4byte gUnknown_82F0D54 -_08055FF8: .4byte gUnknown_2023D28 -_08055FFC: .4byte gUnknown_2023EAC -_08056000: .4byte _08056004 -_08056004: @ jump table - .4byte _08056020 @ case 0 - .4byte _08056050 @ case 1 - .4byte _08056062 @ case 2 - .4byte _08056090 @ case 3 - .4byte _080560C0 @ case 4 - .4byte _08056082 @ case 5 - .4byte _08056082 @ case 6 -_08056020: - ldr r2, _08056048 - ldr r0, _0805604C - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - adds r1, r0, #0 - adds r1, #0x21 - ldrb r1, [r1] - cmp r1, #0xb - beq _080560B4 - adds r0, #0x22 - ldrb r0, [r0] - cmp r0, #0xb - beq _080560B4 - cmp r1, #6 - beq _080560B4 - cmp r0, #6 - beq _080560B4 - b _08056082 - .align 2, 0 -_08056048: .4byte gUnknown_2023D28 -_0805604C: .4byte gUnknown_2023EB0 -_08056050: - bl GetCurrentMapType - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r4, #0xa - cmp r0, #5 - bne _080560E2 - movs r4, #0x23 - b _080560E2 -_08056062: - ldr r2, _08056088 - ldr r0, _0805608C - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - adds r0, #0x2a - ldrb r1, [r0] - cmp r1, #0x27 - bhi _08056082 - movs r0, #0x28 - subs r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #9 - bhi _080560E2 -_08056082: - movs r4, #0xa - b _080560E2 - .align 2, 0 -_08056088: .4byte gUnknown_2023D28 -_0805608C: .4byte gUnknown_2023EB0 -_08056090: - ldr r2, _080560B8 - ldr r0, _080560BC - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - ldrh r0, [r0] - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - bl GetSetPokedexFlag - lsls r0, r0, #0x18 - movs r4, #0xa - cmp r0, #0 - beq _080560E2 -_080560B4: - movs r4, #0x1e - b _080560E2 - .align 2, 0 -_080560B8: .4byte gUnknown_2023D28 -_080560BC: .4byte gUnknown_2023EB0 -_080560C0: - ldr r0, _080560D4 - ldrb r0, [r0, #0x13] - adds r0, #0xa - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x28 - bls _080560E2 - movs r4, #0x28 - b _080560E2 - .align 2, 0 -_080560D4: .4byte gUnknown_3005A70 -_080560D8: - ldr r1, _0805614C - ldrh r0, [r2] - subs r0, #2 - adds r0, r0, r1 - ldrb r4, [r0] -_080560E2: - adds r0, r5, #0 - muls r0, r4, r0 - movs r1, #0xa - bl __divsi3 - ldr r5, _08056150 - ldr r1, _08056154 - ldrb r2, [r1] - movs r1, #0x58 - adds r4, r2, #0 - muls r4, r1, r4 - adds r3, r4, r5 - ldrh r2, [r3, #0x2c] - lsls r1, r2, #1 - adds r1, r1, r2 - ldrh r2, [r3, #0x28] - lsls r2, r2, #1 - subs r2, r1, r2 - muls r0, r2, r0 - bl __divsi3 - adds r6, r0, #0 - adds r5, #0x4c - adds r4, r4, r5 - ldr r4, [r4] - movs r0, #0x27 - ands r0, r4 - cmp r0, #0 - beq _0805611E - lsls r6, r6, #1 -_0805611E: - movs r0, #0xd8 - ands r4, r0 - cmp r4, #0 - beq _08056132 - lsls r0, r6, #4 - subs r0, r0, r6 - movs r1, #0xa - bl __udivsi3 - adds r6, r0, #0 -_08056132: - ldr r1, _08056158 - ldrh r0, [r1] - cmp r0, #5 - beq _08056174 - cmp r0, #1 - bne _08056160 - ldr r0, _0805615C - ldrb r1, [r0, #5] - movs r2, #2 - orrs r1, r2 - strb r1, [r0, #5] - b _08056174 - .align 2, 0 -_0805614C: .4byte gUnknown_82ECE11 -_08056150: .4byte gUnknown_2023D28 -_08056154: .4byte gUnknown_2023EB0 -_08056158: .4byte gUnknown_2023EAC -_0805615C: .4byte gUnknown_3005A70 -_08056160: - ldr r0, _080561B8 - ldrh r1, [r1] - adds r0, r0, r1 - adds r1, r0, #0 - adds r1, #0x34 - ldrb r0, [r1] - cmp r0, #0xfe - bhi _08056174 - adds r0, #1 - strb r0, [r1] -_08056174: - cmp r6, #0xfe - bls _080561D8 - movs r0, #0 - movs r1, #4 - bl BtlController_EmitBallThrowAnim - ldr r0, _080561BC - ldrb r0, [r0] - bl MarkBattlerForControllerExec - ldr r1, _080561C0 - ldr r0, _080561C4 - str r0, [r1] - ldr r1, _080561C8 - ldr r0, _080561CC - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080561D0 - adds r0, r0, r1 - ldr r2, _080561D4 - movs r1, #0x26 - bl SetMonData - bl sub_0806B004 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #6 - beq _08056266 - b _08056290 - .align 2, 0 -_080561B8: .4byte gUnknown_3005A70 -_080561BC: .4byte gUnknown_2023D08 -_080561C0: .4byte gUnknown_2023EB8 -_080561C4: .4byte gUnknown_828A30C -_080561C8: .4byte gUnknown_2023D12 -_080561CC: .4byte gUnknown_2023EB0 -_080561D0: .4byte gUnknown_20243E8 -_080561D4: .4byte gUnknown_2023EAC -_080561D8: - movs r0, #0xff - lsls r0, r0, #0x10 - adds r1, r6, #0 - bl __udivsi3 - bl Sqrt - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl Sqrt - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r0, _08056200 - adds r1, r6, #0 - bl __udivsi3 - adds r6, r0, #0 - movs r4, #0 - b _0805620A - .align 2, 0 -_08056200: .4byte 0x000FFFF0 -_08056204: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_0805620A: - cmp r4, #3 - bhi _0805621A - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r6 - blo _08056204 -_0805621A: - ldr r5, _08056270 - ldrh r0, [r5] - cmp r0, #1 - bne _08056224 - movs r4, #4 -_08056224: - movs r0, #0 - adds r1, r4, #0 - bl BtlController_EmitBallThrowAnim - ldr r0, _08056274 - ldrb r0, [r0] - bl MarkBattlerForControllerExec - cmp r4, #4 - bne _0805629C - ldr r1, _08056278 - ldr r0, _0805627C - str r0, [r1] - ldr r1, _08056280 - ldr r0, _08056284 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08056288 - adds r0, r0, r1 - movs r1, #0x26 - adds r2, r5, #0 - bl SetMonData - bl sub_0806B004 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #6 - bne _08056290 -_08056266: - ldr r1, _0805628C - movs r0, #0 - strb r0, [r1, #5] - b _080562A6 - .align 2, 0 -_08056270: .4byte gUnknown_2023EAC -_08056274: .4byte gUnknown_2023D08 -_08056278: .4byte gUnknown_2023EB8 -_0805627C: .4byte gUnknown_828A30C -_08056280: .4byte gUnknown_2023D12 -_08056284: .4byte gUnknown_2023EB0 -_08056288: .4byte gUnknown_20243E8 -_0805628C: .4byte gUnknown_2023FD6 -_08056290: - ldr r1, _08056298 - movs r0, #1 - strb r0, [r1, #5] - b _080562A6 - .align 2, 0 -_08056298: .4byte gUnknown_2023FD6 -_0805629C: - ldr r0, _080562AC - strb r4, [r0, #5] - ldr r1, _080562B0 - ldr r0, _080562B4 -_080562A4: - str r0, [r1] -_080562A6: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080562AC: .4byte gUnknown_2023FD6 -_080562B0: .4byte gUnknown_2023EB8 -_080562B4: .4byte gUnknown_828A35C - thumb_func_end atkEF_handleballthrow - - thumb_func_start atkF0_givecaughtmon -atkF0_givecaughtmon: @ 0x080562B8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _08056328 - mov sb, r0 - ldr r5, _0805632C - ldrb r0, [r5] - movs r6, #1 - eors r0, r6 - lsls r0, r0, #1 - add r0, sb - ldrh r0, [r0] - movs r7, #0x64 - muls r0, r7, r0 - ldr r1, _08056330 - mov r8, r1 - add r0, r8 - bl GiveMonToPlayer - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080563A2 - bl sub_0813B254 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _08056344 - ldr r0, _08056334 - strb r1, [r0, #5] - ldr r4, _08056338 - ldr r0, _0805633C - bl VarGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBoxNamePtr - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCopy - ldrb r0, [r5] - eors r0, r6 - lsls r0, r0, #1 - add r0, sb - ldrh r0, [r0] - muls r0, r7, r0 - add r0, r8 - ldr r2, _08056340 - movs r1, #2 - bl GetMonData - b _0805638E - .align 2, 0 -_08056328: .4byte gUnknown_2023D12 -_0805632C: .4byte gUnknown_2023EAF -_08056330: .4byte gUnknown_20243E8 -_08056334: .4byte gUnknown_2023FD6 -_08056338: .4byte gUnknown_2021C40 -_0805633C: .4byte 0x00004036 -_08056340: .4byte gUnknown_2021C54 -_08056344: - ldr r4, _08056434 - ldr r0, _08056438 - bl VarGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBoxNamePtr - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCopy - ldrb r0, [r5] - eors r0, r6 - lsls r0, r0, #1 - add r0, sb - ldrh r0, [r0] - muls r0, r7, r0 - add r0, r8 - ldr r2, _0805643C - movs r1, #2 - bl GetMonData - ldr r4, _08056440 - bl sub_0813B248 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBoxNamePtr - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCopy - ldr r1, _08056444 - movs r0, #2 - strb r0, [r1, #5] -_0805638E: - ldr r0, _08056448 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080563A2 - ldr r1, _08056444 - ldrb r0, [r1, #5] - adds r0, #1 - strb r0, [r1, #5] -_080563A2: - ldr r0, _0805644C - mov sl, r0 - ldr r1, _08056450 - mov sb, r1 - ldrb r0, [r1] - movs r4, #1 - eors r0, r4 - lsls r0, r0, #1 - add r0, sl - ldrh r0, [r0] - movs r1, #0x64 - mov r8, r1 - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - ldr r6, _08056454 - adds r0, r0, r6 - movs r1, #0xb - movs r2, #0 - bl GetMonData - ldr r5, _08056458 - strh r0, [r5, #0x28] - mov r1, sb - ldrb r0, [r1] - eors r0, r4 - lsls r0, r0, #1 - add r0, sl - ldrh r0, [r0] - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - adds r0, r0, r6 - adds r2, r5, #0 - adds r2, #0x2a - movs r1, #2 - bl GetMonData - mov r1, sb - ldrb r0, [r1] - eors r4, r0 - lsls r4, r4, #1 - add r4, sl - ldrh r0, [r4] - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - adds r0, r0, r6 - movs r1, #0x26 - movs r2, #0 - bl GetMonData - movs r1, #0xf - ands r0, r1 - lsls r0, r0, #2 - ldrb r2, [r5, #5] - movs r1, #0x3d - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, #5] - ldr r1, _0805645C - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08056434: .4byte gUnknown_2021C40 -_08056438: .4byte 0x00004036 -_0805643C: .4byte gUnknown_2021C54 -_08056440: .4byte gUnknown_2021C68 -_08056444: .4byte gUnknown_2023FD6 -_08056448: .4byte 0x000008AB -_0805644C: .4byte gUnknown_2023D12 -_08056450: .4byte gUnknown_2023EAF -_08056454: .4byte gUnknown_20243E8 -_08056458: .4byte gUnknown_3005A70 -_0805645C: .4byte gUnknown_2023EB8 - thumb_func_end atkF0_givecaughtmon - - thumb_func_start atkF1_trysetcaughtmondexflags -atkF1_trysetcaughtmondexflags: @ 0x08056460 - push {r4, r5, lr} - ldr r4, _080564B0 - adds r0, r4, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - adds r0, r5, #0 - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - bl GetSetPokedexFlag - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080564B8 - ldr r3, _080564B4 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _080564D2 - .align 2, 0 -_080564B0: .4byte gUnknown_20243E8 -_080564B4: .4byte gUnknown_2023EB8 -_080564B8: - adds r0, r5, #0 - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - adds r2, r4, #0 - bl HandleSetPokedexFlag - ldr r1, _080564D8 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] -_080564D2: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080564D8: .4byte gUnknown_2023EB8 - thumb_func_end atkF1_trysetcaughtmondexflags - - thumb_func_start atkF2_displaydexinfo -atkF2_displaydexinfo: @ 0x080564DC - push {r4, lr} - sub sp, #4 - ldr r0, _08056504 - movs r1, #0xb - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, _08056508 - ldrb r0, [r0] - cmp r0, #5 - bls _080564F8 - b _0805663C -_080564F8: - lsls r0, r0, #2 - ldr r1, _0805650C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08056504: .4byte gUnknown_20243E8 -_08056508: .4byte gUnknown_2023FD6 -_0805650C: .4byte _08056510 -_08056510: @ jump table - .4byte _08056528 @ case 0 - .4byte _0805653A @ case 1 - .4byte _08056588 @ case 2 - .4byte _080565D8 @ case 3 - .4byte _080565F0 @ case 4 - .4byte _08056628 @ case 5 -_08056528: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - b _08056616 -_0805653A: - ldr r0, _08056578 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08056548 - b _0805663C -_08056548: - bl FreeAllWindowBuffers - adds r0, r4, #0 - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r3, _0805657C - ldr r1, _08056580 - ldrb r2, [r1] - movs r1, #0x58 - muls r2, r1, r2 - adds r1, r3, #0 - adds r1, #0x54 - adds r1, r2, r1 - ldr r1, [r1] - adds r3, #0x48 - adds r2, r2, r3 - ldr r2, [r2] - bl CreateDexDisplayMonDataTask - ldr r1, _08056584 - strb r0, [r1, #1] - b _08056618 - .align 2, 0 -_08056578: .4byte gUnknown_2037C74 -_0805657C: .4byte gUnknown_2023D28 -_08056580: .4byte gUnknown_2023EB0 -_08056584: .4byte gUnknown_2023FD6 -_08056588: - ldr r0, _080565C0 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0805663C - ldr r0, _080565C4 - ldr r1, [r0, #4] - ldr r0, _080565C8 - cmp r1, r0 - bne _0805663C - ldr r2, _080565CC - ldr r4, _080565D0 - ldrb r1, [r4, #1] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrb r0, [r0, #4] - cmp r0, #0 - bne _0805663C - ldr r0, _080565D4 - bl SetVBlankCallback - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - b _0805663C - .align 2, 0 -_080565C0: .4byte gUnknown_2037C74 -_080565C4: .4byte gUnknown_3002360 -_080565C8: .4byte BattleMainCB2 -_080565CC: .4byte gUnknown_3005B60 -_080565D0: .4byte gUnknown_2023FD6 -_080565D4: .4byte VBlankCB_Battle -_080565D8: - bl sub_08035528 - bl sub_080358F8 - ldr r1, _080565EC - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r2, #0 - strh r0, [r1] - b _08056616 - .align 2, 0 -_080565EC: .4byte gUnknown_2022AD4 -_080565F0: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0805663C - ldr r0, _08056620 - str r1, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - movs r0, #0 - bl ShowBg - movs r0, #3 - bl ShowBg -_08056616: - ldr r1, _08056624 -_08056618: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0805663C - .align 2, 0 -_08056620: .4byte 0x0000FFFF -_08056624: .4byte gUnknown_2023FD6 -_08056628: - ldr r0, _08056644 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0805663C - ldr r1, _08056648 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] -_0805663C: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08056644: .4byte gUnknown_2037C74 -_08056648: .4byte gUnknown_2023EB8 - thumb_func_end atkF2_displaydexinfo - - thumb_func_start HandleBattleWindow -HandleBattleWindow: @ 0x0805664C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - ldr r4, [sp, #0x40] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp, #0x10] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x1c] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r3, [sp, #0x14] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov sl, r4 - movs r1, #0 - add r0, sp, #0xc - strh r1, [r0] - ldr r6, [sp, #0x10] - cmp r6, r3 - ble _08056686 - b _08056772 -_08056686: - mov r4, r8 - adds r0, r6, #1 - str r0, [sp, #0x18] - ldr r2, [sp, #0x1c] - cmp r4, r2 - bgt _08056768 - add r5, sp, #0xc - lsls r7, r6, #0x18 - mov sb, r7 -_08056698: - ldr r0, [sp, #0x10] - cmp r6, r0 - bne _080566C4 - cmp r4, r8 - bne _080566AC - ldr r0, _080566A8 - b _0805670E - .align 2, 0 -_080566A8: .4byte 0x00001022 -_080566AC: - ldr r2, [sp, #0x1c] - cmp r4, r2 - bne _080566BC - ldr r0, _080566B8 - b _0805670E - .align 2, 0 -_080566B8: .4byte 0x00001024 -_080566BC: - ldr r0, _080566C0 - b _0805670E - .align 2, 0 -_080566C0: .4byte 0x00001023 -_080566C4: - ldr r7, [sp, #0x14] - cmp r6, r7 - bne _080566F0 - cmp r4, r8 - bne _080566D8 - ldr r0, _080566D4 - b _0805670E - .align 2, 0 -_080566D4: .4byte 0x00001028 -_080566D8: - ldr r0, [sp, #0x1c] - cmp r4, r0 - bne _080566E8 - ldr r0, _080566E4 - b _0805670E - .align 2, 0 -_080566E4: .4byte 0x0000102A -_080566E8: - ldr r0, _080566EC - b _0805670E - .align 2, 0 -_080566EC: .4byte 0x00001029 -_080566F0: - cmp r4, r8 - bne _080566FC - ldr r0, _080566F8 - b _0805670E - .align 2, 0 -_080566F8: .4byte 0x00001025 -_080566FC: - ldr r2, [sp, #0x1c] - cmp r4, r2 - bne _0805670C - ldr r0, _08056708 - b _0805670E - .align 2, 0 -_08056708: .4byte 0x00001027 -_0805670C: - ldr r0, _08056744 -_0805670E: - strh r0, [r5] - movs r1, #1 - mov r0, sl - ands r0, r1 - cmp r0, #0 - beq _0805671E - movs r0, #0 - strh r0, [r5] -_0805671E: - movs r0, #0x80 - mov r7, sl - ands r0, r7 - cmp r0, #0 - beq _08056748 - lsls r2, r4, #0x18 - lsrs r2, r2, #0x18 - str r1, [sp] - str r1, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #1 - add r1, sp, #0xc - mov r7, sb - lsrs r3, r7, #0x18 - bl CopyToBgTilemapBufferRect_ChangePalette - b _08056760 - .align 2, 0 -_08056744: .4byte 0x00001026 -_08056748: - lsls r2, r4, #0x18 - lsrs r2, r2, #0x18 - str r1, [sp] - str r1, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #0 - add r1, sp, #0xc - mov r7, sb - lsrs r3, r7, #0x18 - bl CopyToBgTilemapBufferRect_ChangePalette -_08056760: - adds r4, #1 - ldr r0, [sp, #0x1c] - cmp r4, r0 - ble _08056698 -_08056768: - ldr r6, [sp, #0x18] - ldr r2, [sp, #0x14] - cmp r6, r2 - bgt _08056772 - b _08056686 -_08056772: - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end HandleBattleWindow - - thumb_func_start BattleCreateYesNoCursorAt -BattleCreateYesNoCursorAt: @ 0x08056784 - push {lr} - sub sp, #0x10 - adds r3, r0, #0 - add r0, sp, #0xc - movs r2, #1 - strh r2, [r0] - movs r1, #2 - strh r1, [r0, #2] - lsls r3, r3, #0x19 - movs r0, #0x90 - lsls r0, r0, #0x14 - adds r3, r3, r0 - lsrs r3, r3, #0x18 - str r2, [sp] - str r1, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #0 - add r1, sp, #0xc - movs r2, #0x19 - bl CopyToBgTilemapBufferRect_ChangePalette - movs r0, #0 - bl CopyBgTilemapBufferToVram - add sp, #0x10 - pop {r0} - bx r0 - thumb_func_end BattleCreateYesNoCursorAt - - thumb_func_start BattleDestroyYesNoCursorAt -BattleDestroyYesNoCursorAt: @ 0x080567BC - push {lr} - sub sp, #0x10 - adds r3, r0, #0 - add r0, sp, #0xc - ldr r1, _080567F8 - strh r1, [r0] - strh r1, [r0, #2] - lsls r3, r3, #0x19 - movs r0, #0x90 - lsls r0, r0, #0x14 - adds r3, r3, r0 - lsrs r3, r3, #0x18 - movs r0, #1 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #0 - add r1, sp, #0xc - movs r2, #0x19 - bl CopyToBgTilemapBufferRect_ChangePalette - movs r0, #0 - bl CopyBgTilemapBufferToVram - add sp, #0x10 - pop {r0} - bx r0 - .align 2, 0 -_080567F8: .4byte 0x00001016 - thumb_func_end BattleDestroyYesNoCursorAt - - thumb_func_start atkF3_trygivecaughtmonnick -atkF3_trygivecaughtmonnick: @ 0x080567FC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - ldr r0, _08056820 - ldrb r1, [r0] - adds r4, r0, #0 - cmp r1, #4 - bls _08056814 - b _08056A72 -_08056814: - lsls r0, r1, #2 - ldr r1, _08056824 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08056820: .4byte gUnknown_2023FD6 -_08056824: .4byte _08056828 -_08056828: @ jump table - .4byte _0805683C @ case 0 - .4byte _08056870 @ case 1 - .4byte _0805690C @ case 2 - .4byte _080569E4 @ case 3 - .4byte _08056A3C @ case 4 -_0805683C: - movs r4, #0 - str r4, [sp] - movs r0, #0x18 - movs r1, #8 - movs r2, #0x1d - movs r3, #0xd - bl HandleBattleWindow - ldr r0, _08056868 - movs r1, #0xc - bl sub_0814FA04 - ldr r1, _0805686C - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - strb r4, [r1, #1] - movs r0, #0 - bl BattleCreateYesNoCursorAt - b _08056A72 - .align 2, 0 -_08056868: .4byte gUnknown_85ABBC9 -_0805686C: .4byte gUnknown_2023FD6 -_08056870: - ldr r0, _080568E8 - ldrh r1, [r0, #0x2e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08056896 - ldrb r0, [r4, #1] - cmp r0, #0 - beq _08056896 - movs r0, #5 - bl sub_080A306C - ldrb r0, [r4, #1] - bl BattleDestroyYesNoCursorAt - movs r0, #0 - strb r0, [r4, #1] - bl BattleCreateYesNoCursorAt -_08056896: - ldr r0, _080568E8 - ldrh r1, [r0, #0x2e] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080568BE - ldr r4, _080568EC - ldrb r0, [r4, #1] - cmp r0, #0 - bne _080568BE - movs r0, #5 - bl sub_080A306C - ldrb r0, [r4, #1] - bl BattleDestroyYesNoCursorAt - movs r0, #1 - strb r0, [r4, #1] - bl BattleCreateYesNoCursorAt -_080568BE: - ldr r0, _080568E8 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080568F0 - movs r0, #5 - bl sub_080A306C - ldr r1, _080568EC - ldrb r0, [r1, #1] - cmp r0, #0 - bne _08056902 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #3 - bl BeginFastPaletteFade - b _08056A72 - .align 2, 0 -_080568E8: .4byte gUnknown_3002360 -_080568EC: .4byte gUnknown_2023FD6 -_080568F0: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _080568FA - b _08056A72 -_080568FA: - movs r0, #5 - bl sub_080A306C - ldr r1, _08056908 -_08056902: - movs r0, #4 - strb r0, [r1] - b _08056A72 - .align 2, 0 -_08056908: .4byte gUnknown_2023FD6 -_0805690C: - ldr r0, _080569C8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0805691A - b _08056A72 -_0805691A: - ldr r7, _080569CC - ldr r0, _080569D0 - mov sl, r0 - ldrb r0, [r0] - movs r4, #1 - eors r0, r4 - lsls r0, r0, #1 - adds r0, r0, r7 - ldrh r0, [r0] - movs r1, #0x64 - mov sb, r1 - mov r2, sb - muls r2, r0, r2 - adds r0, r2, #0 - ldr r1, _080569D4 - mov r8, r1 - add r0, r8 - ldr r1, _080569D8 - ldr r2, [r1] - adds r2, #0x6d - movs r1, #2 - bl GetMonData - bl FreeAllWindowBuffers - mov r2, sl - ldrb r0, [r2] - eors r0, r4 - lsls r0, r0, #1 - adds r0, r0, r7 - ldrh r0, [r0] - mov r1, sb - muls r1, r0, r1 - adds r0, r1, #0 - add r0, r8 - movs r1, #0xb - bl GetMonData - adds r6, r0, #0 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - mov r2, sl - ldrb r0, [r2] - eors r0, r4 - lsls r0, r0, #1 - adds r0, r0, r7 - ldrh r0, [r0] - mov r1, sb - muls r1, r0, r1 - adds r0, r1, #0 - add r0, r8 - bl GetMonGender - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - mov r2, sl - ldrb r0, [r2] - eors r4, r0 - lsls r4, r4, #1 - adds r4, r4, r7 - ldrh r0, [r4] - mov r1, sb - muls r1, r0, r1 - adds r0, r1, #0 - add r0, r8 - movs r1, #0 - movs r2, #0 - bl GetMonData - ldr r2, _080569D8 - ldr r1, [r2] - adds r1, #0x6d - str r0, [sp] - ldr r0, _080569DC - str r0, [sp, #4] - movs r0, #2 - adds r2, r6, #0 - adds r3, r5, #0 - bl DoNamingScreen - ldr r1, _080569E0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _08056A72 - .align 2, 0 -_080569C8: .4byte gUnknown_2037C74 -_080569CC: .4byte gUnknown_2023D12 -_080569D0: .4byte gUnknown_2023EAF -_080569D4: .4byte gUnknown_20243E8 -_080569D8: .4byte gUnknown_2024140 -_080569DC: .4byte BattleMainCB2 -_080569E0: .4byte gUnknown_2023FD6 -_080569E4: - ldr r0, _08056A20 - ldr r1, [r0, #4] - ldr r0, _08056A24 - cmp r1, r0 - bne _08056A72 - ldr r0, _08056A28 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08056A72 - ldr r2, _08056A2C - ldr r0, _08056A30 - ldrb r1, [r0] - movs r0, #1 - eors r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08056A34 - adds r0, r0, r1 - ldr r1, _08056A38 - ldr r2, [r1] - adds r2, #0x6d - movs r1, #2 - bl SetMonData - b _08056A58 - .align 2, 0 -_08056A20: .4byte gUnknown_3002360 -_08056A24: .4byte BattleMainCB2 -_08056A28: .4byte gUnknown_2037C74 -_08056A2C: .4byte gUnknown_2023D12 -_08056A30: .4byte gUnknown_2023EAF -_08056A34: .4byte gUnknown_20243E8 -_08056A38: .4byte gUnknown_2024140 -_08056A3C: - bl sub_0806B004 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #6 - bne _08056A58 - ldr r1, _08056A54 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] - b _08056A72 - .align 2, 0 -_08056A54: .4byte gUnknown_2023EB8 -_08056A58: - ldr r3, _08056A84 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] -_08056A72: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08056A84: .4byte gUnknown_2023EB8 - thumb_func_end atkF3_trygivecaughtmonnick - - thumb_func_start atkF4_subattackerhpbydmg -atkF4_subattackerhpbydmg: @ 0x08056A88 - ldr r2, _08056AA8 - ldr r0, _08056AAC - ldrb r1, [r0] - movs r0, #0x58 - muls r1, r0, r1 - adds r1, r1, r2 - ldr r0, _08056AB0 - ldr r2, [r0] - ldrh r0, [r1, #0x28] - subs r0, r0, r2 - strh r0, [r1, #0x28] - ldr r1, _08056AB4 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - bx lr - .align 2, 0 -_08056AA8: .4byte gUnknown_2023D28 -_08056AAC: .4byte gUnknown_2023EAF -_08056AB0: .4byte gUnknown_2023E94 -_08056AB4: .4byte gUnknown_2023EB8 - thumb_func_end atkF4_subattackerhpbydmg - - thumb_func_start atkF5_removeattackerstatus1 -atkF5_removeattackerstatus1: @ 0x08056AB8 - ldr r1, _08056AD4 - ldr r0, _08056AD8 - ldrb r2, [r0] - movs r0, #0x58 - muls r0, r2, r0 - adds r1, #0x4c - adds r0, r0, r1 - movs r1, #0 - str r1, [r0] - ldr r1, _08056ADC - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - bx lr - .align 2, 0 -_08056AD4: .4byte gUnknown_2023D28 -_08056AD8: .4byte gUnknown_2023EAF -_08056ADC: .4byte gUnknown_2023EB8 - thumb_func_end atkF5_removeattackerstatus1 - - thumb_func_start atkF6_finishaction -atkF6_finishaction: @ 0x08056AE0 - ldr r1, _08056AE8 - movs r0, #0xc - strb r0, [r1] - bx lr - .align 2, 0 -_08056AE8: .4byte gUnknown_2023D27 - thumb_func_end atkF6_finishaction - - thumb_func_start atkF7_finishturn -atkF7_finishturn: @ 0x08056AEC - ldr r1, _08056AFC - movs r0, #0xc - strb r0, [r1] - ldr r1, _08056B00 - ldr r0, _08056B04 - ldrb r0, [r0] - strb r0, [r1] - bx lr - .align 2, 0 -_08056AFC: .4byte gUnknown_2023D27 -_08056B00: .4byte gUnknown_2023D26 -_08056B04: .4byte gUnknown_2023D10 - thumb_func_end atkF7_finishturn - - thumb_func_start atkF8_trainerslideout -atkF8_trainerslideout: @ 0x08056B08 - push {r4, r5, lr} - ldr r5, _08056B30 - ldr r0, [r5] - ldrb r0, [r0, #1] - bl GetBattlerAtPosition - ldr r4, _08056B34 - strb r0, [r4] - movs r0, #0 - bl BtlController_EmitTrainerSlideBack - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldr r0, [r5] - adds r0, #2 - str r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08056B30: .4byte gUnknown_2023EB8 -_08056B34: .4byte gUnknown_2023D08 - thumb_func_end atkF8_trainerslideout - - thumb_func_start AllocateBattleResources -AllocateBattleResources: @ 0x08056B38 - push {r4, r5, r6, lr} - ldr r5, _08056C10 - ldr r6, _08056C14 - ldr r0, [r6] - movs r1, #0x80 - lsls r1, r1, #0x13 - ands r0, r1 - cmp r0, #0 - beq _08056B4E - bl sub_081D4C30 -_08056B4E: - ldr r4, _08056C18 - movs r0, #0xa9 - lsls r0, r0, #2 - bl AllocZeroed - str r0, [r4] - movs r0, #0x20 - bl AllocZeroed - str r0, [r5] - movs r0, #0xa0 - bl AllocZeroed - ldr r1, [r5] - str r0, [r1] - movs r0, #0x10 - bl AllocZeroed - ldr r1, [r5] - str r0, [r1, #4] - movs r0, #0x24 - bl AllocZeroed - ldr r1, [r5] - str r0, [r1, #8] - movs r0, #0x24 - bl AllocZeroed - ldr r1, [r5] - str r0, [r1, #0xc] - movs r0, #0xc - bl AllocZeroed - ldr r1, [r5] - str r0, [r1, #0x10] - movs r0, #0x1c - bl AllocZeroed - ldr r1, [r5] - str r0, [r1, #0x14] - movs r0, #0x54 - bl AllocZeroed - ldr r1, [r5] - str r0, [r1, #0x18] - movs r0, #0x24 - bl AllocZeroed - ldr r1, [r5] - str r0, [r1, #0x1c] - ldr r4, _08056C1C - movs r5, #0x80 - lsls r5, r5, #5 - adds r0, r5, #0 - bl AllocZeroed - str r0, [r4] - ldr r4, _08056C20 - adds r0, r5, #0 - bl AllocZeroed - str r0, [r4] - ldr r4, _08056C24 - movs r0, #0x80 - lsls r0, r0, #6 - bl AllocZeroed - str r0, [r4] - ldr r4, _08056C28 - adds r0, r5, #0 - bl AllocZeroed - str r0, [r4] - ldr r0, [r6] - movs r1, #0x80 - lsls r1, r1, #0x14 - ands r0, r1 - cmp r0, #0 - beq _08056C0A - ldr r0, _08056C2C - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r2, _08056C30 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #5 - ldr r0, _08056C34 - adds r1, r1, r0 - ldr r0, [r2] - adds r0, r0, r1 - bl CreateSecretBaseEnemyParty -_08056C0A: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08056C10: .4byte gUnknown_202414C -_08056C14: .4byte gUnknown_2022C90 -_08056C18: .4byte gUnknown_2024140 -_08056C1C: .4byte gUnknown_2024144 -_08056C20: .4byte gUnknown_2024148 -_08056C24: .4byte gUnknown_2022D00 -_08056C28: .4byte gUnknown_2022D04 -_08056C2C: .4byte 0x00004054 -_08056C30: .4byte gUnknown_3005AEC -_08056C34: .4byte 0x00001A9C - thumb_func_end AllocateBattleResources - - thumb_func_start FreeBattleResources -FreeBattleResources: @ 0x08056C38 - push {r4, r5, r6, lr} - ldr r0, _08056CE8 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x13 - ands r0, r1 - cmp r0, #0 - beq _08056C4C - bl sub_081D4CF0 -_08056C4C: - ldr r6, _08056CEC - ldr r0, [r6] - cmp r0, #0 - beq _08056CE0 - ldr r4, _08056CF0 - ldr r0, [r4] - bl Free - movs r5, #0 - str r5, [r4] - ldr r0, [r6] - ldr r0, [r0] - bl Free - ldr r0, [r6] - str r5, [r0] - ldr r0, [r0, #4] - bl Free - ldr r0, [r6] - str r5, [r0, #4] - ldr r0, [r0, #8] - bl Free - ldr r0, [r6] - str r5, [r0, #8] - ldr r0, [r0, #0xc] - bl Free - ldr r0, [r6] - str r5, [r0, #0xc] - ldr r0, [r0, #0x10] - bl Free - ldr r0, [r6] - str r5, [r0, #0x10] - ldr r0, [r0, #0x14] - bl Free - ldr r0, [r6] - str r5, [r0, #0x14] - ldr r0, [r0, #0x18] - bl Free - ldr r0, [r6] - str r5, [r0, #0x18] - ldr r0, [r0, #0x1c] - bl Free - ldr r0, [r6] - str r5, [r0, #0x1c] - bl Free - str r5, [r6] - ldr r4, _08056CF4 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _08056CF8 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _08056CFC - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _08056D00 - ldr r0, [r4] - bl Free - str r5, [r4] -_08056CE0: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08056CE8: .4byte gUnknown_2022C90 -_08056CEC: .4byte gUnknown_202414C -_08056CF0: .4byte gUnknown_2024140 -_08056CF4: .4byte gUnknown_2024144 -_08056CF8: .4byte gUnknown_2024148 -_08056CFC: .4byte gUnknown_2022D00 -_08056D00: .4byte gUnknown_2022D04 - thumb_func_end FreeBattleResources - - thumb_func_start AdjustFriendshipOnBattleFaint -AdjustFriendshipOnBattleFaint: @ 0x08056D04 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _08056D48 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08056D50 - movs r0, #1 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #3 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r2, _08056D4C - movs r0, #0x58 - adds r1, r3, #0 - muls r1, r0, r1 - adds r1, r1, r2 - adds r1, #0x2a - muls r0, r4, r0 - adds r0, r0, r2 - adds r0, #0x2a - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bls _08056D5A - adds r4, r3, #0 - b _08056D5A - .align 2, 0 -_08056D48: .4byte gUnknown_2022C90 -_08056D4C: .4byte gUnknown_2023D28 -_08056D50: - movs r0, #1 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_08056D5A: - ldr r2, _08056D9C - movs r1, #0x58 - adds r0, r4, #0 - muls r0, r1, r0 - adds r0, r0, r2 - adds r3, r0, #0 - adds r3, #0x2a - adds r0, r5, #0 - muls r0, r1, r0 - adds r0, r0, r2 - adds r1, r0, #0 - adds r1, #0x2a - ldrb r0, [r3] - ldrb r2, [r1] - cmp r0, r2 - bls _08056DC8 - ldrb r1, [r1] - subs r0, r0, r1 - cmp r0, #0x1d - ble _08056DA8 - ldr r1, _08056DA0 - lsls r0, r5, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08056DA4 - adds r0, r0, r1 - movs r1, #8 - bl AdjustFriendship - b _08056DDE - .align 2, 0 -_08056D9C: .4byte gUnknown_2023D28 -_08056DA0: .4byte gUnknown_2023D12 -_08056DA4: .4byte gUnknown_2024190 -_08056DA8: - ldr r1, _08056DC0 - lsls r0, r5, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08056DC4 - adds r0, r0, r1 - movs r1, #6 - bl AdjustFriendship - b _08056DDE - .align 2, 0 -_08056DC0: .4byte gUnknown_2023D12 -_08056DC4: .4byte gUnknown_2024190 -_08056DC8: - ldr r1, _08056DE4 - lsls r0, r5, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08056DE8 - adds r0, r0, r1 - movs r1, #6 - bl AdjustFriendship -_08056DDE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08056DE4: .4byte gUnknown_2023D12 -_08056DE8: .4byte gUnknown_2024190 - thumb_func_end AdjustFriendshipOnBattleFaint - - thumb_func_start sub_08056DEC -sub_08056DEC: @ 0x08056DEC - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - adds r0, r4, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08056E58 - movs r2, #0 - ldr r6, _08056E60 - lsls r3, r4, #1 - ldr r5, _08056E64 - ldr r4, _08056E68 -_08056E0E: - adds r0, r2, r5 - ldr r1, [r4] - adds r1, r2, r1 - adds r1, #0x60 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, #2 - ble _08056E0E - adds r0, r3, r6 - ldrb r0, [r0] - bl pokemon_order_func - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r7, #0 - bl pokemon_order_func - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl sub_081B8C50 - movs r2, #0 - ldr r4, _08056E68 - ldr r3, _08056E64 -_08056E46: - ldr r0, [r4] - adds r0, r2, r0 - adds r0, #0x60 - adds r1, r2, r3 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, #2 - ble _08056E46 -_08056E58: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08056E60: .4byte gUnknown_2023D12 -_08056E64: .4byte gUnknown_203CBCC -_08056E68: .4byte gUnknown_2024140 - thumb_func_end sub_08056DEC - - thumb_func_start sub_08056E6C -sub_08056E6C: @ 0x08056E6C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - movs r0, #0 - mov r8, r0 - ldr r1, _08056E88 - mov sl, r1 - b _08056E94 - .align 2, 0 -_08056E88: .4byte gUnknown_2023FD6 -_08056E8C: - mov r2, r8 - cmp r2, #0 - beq _08056E94 - b _08057016 -_08056E94: - mov r1, sl - ldrb r0, [r1] - cmp r0, #1 - bne _08056E9E - b _08056FA0 -_08056E9E: - cmp r0, #1 - ble _08056EA4 - b _0805700C -_08056EA4: - cmp r0, #0 - beq _08056EAA - b _0805700C -_08056EAA: - ldr r6, _08056EFC - movs r0, #0x58 - mov r5, sb - muls r5, r0, r5 - adds r0, r6, #0 - adds r0, #0x4c - adds r4, r5, r0 - ldr r0, [r4] - movs r7, #7 - ands r0, r7 - cmp r0, #0 - beq _08056F82 - mov r0, sb - bl UproarWakeUpCheck - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08056F0C - ldr r0, [r4] - movs r1, #8 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r4] - adds r2, r6, #0 - adds r2, #0x50 - adds r2, r5, r2 - ldr r0, [r2] - ldr r1, _08056F00 - ands r0, r1 - str r0, [r2] - bl BattleScriptPushCursor - movs r0, #1 - mov r2, sl - strb r0, [r2, #5] - ldr r1, _08056F04 - ldr r0, _08056F08 - str r0, [r1] - movs r0, #2 - mov r8, r0 - b _08056F82 - .align 2, 0 -_08056EFC: .4byte gUnknown_2023D28 -_08056F00: .4byte 0xF7FFFFFF -_08056F04: .4byte gUnknown_2023EB8 -_08056F08: .4byte gUnknown_82897A8 -_08056F0C: - adds r0, r5, r6 - adds r0, #0x20 - ldrb r0, [r0] - movs r2, #1 - cmp r0, #0x30 - bne _08056F1A - movs r2, #2 -_08056F1A: - ldr r1, [r4] - adds r0, r1, #0 - ands r0, r7 - cmp r0, r2 - bhs _08056F2E - movs r0, #8 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r4] - b _08056F32 -_08056F2E: - subs r0, r1, r2 - str r0, [r4] -_08056F32: - ldr r2, _08056F58 - movs r0, #0x58 - mov r1, sb - muls r1, r0, r1 - adds r0, r2, #0 - adds r0, #0x4c - adds r0, r1, r0 - ldr r4, [r0] - movs r0, #7 - ands r4, r0 - cmp r4, #0 - beq _08056F64 - ldr r1, _08056F5C - ldr r0, _08056F60 - str r0, [r1] - movs r1, #2 - mov r8, r1 - b _08056F82 - .align 2, 0 -_08056F58: .4byte gUnknown_2023D28 -_08056F5C: .4byte gUnknown_2023EB8 -_08056F60: .4byte gUnknown_828979B -_08056F64: - adds r2, #0x50 - adds r2, r1, r2 - ldr r0, [r2] - ldr r1, _08056F90 - ands r0, r1 - str r0, [r2] - bl BattleScriptPushCursor - ldr r0, _08056F94 - strb r4, [r0, #5] - ldr r1, _08056F98 - ldr r0, _08056F9C - str r0, [r1] - movs r2, #2 - mov r8, r2 -_08056F82: - ldr r1, _08056F94 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - mov sl, r1 - b _0805700C - .align 2, 0 -_08056F90: .4byte 0xF7FFFFFF -_08056F94: .4byte gUnknown_2023FD6 -_08056F98: .4byte gUnknown_2023EB8 -_08056F9C: .4byte gUnknown_82897A8 -_08056FA0: - ldr r1, _08056FD8 - movs r0, #0x58 - mov r2, sb - muls r2, r0, r2 - adds r0, r2, #0 - adds r1, #0x4c - adds r4, r0, r1 - ldr r0, [r4] - movs r1, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08057004 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #5 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0 - beq _08056FE4 - ldr r1, _08056FDC - ldr r0, _08056FE0 - str r0, [r1] - b _08056FFC - .align 2, 0 -_08056FD8: .4byte gUnknown_2023D28 -_08056FDC: .4byte gUnknown_2023EB8 -_08056FE0: .4byte gUnknown_82897F2 -_08056FE4: - ldr r0, [r4] - movs r1, #0x21 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r4] - bl BattleScriptPushCursor - ldr r1, _08057054 - ldr r0, _08057058 - str r0, [r1] - mov r0, sl - strb r5, [r0, #5] -_08056FFC: - movs r1, #2 - mov r8, r1 - ldr r2, _0805705C - mov sl, r2 -_08057004: - mov r1, sl - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_0805700C: - mov r2, sl - ldrb r0, [r2] - cmp r0, #2 - beq _08057016 - b _08056E8C -_08057016: - mov r0, r8 - cmp r0, #2 - bne _08057040 - ldr r4, _08057060 - mov r1, sb - strb r1, [r4] - ldrb r1, [r4] - movs r0, #0x58 - muls r0, r1, r0 - ldr r1, _08057064 - adds r0, r0, r1 - str r0, [sp] - movs r0, #0 - movs r1, #0x28 - movs r2, #0 - movs r3, #4 - bl BtlController_EmitSetMonData - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_08057040: - mov r0, r8 - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08057054: .4byte gUnknown_2023EB8 -_08057058: .4byte gUnknown_82897FF -_0805705C: .4byte gUnknown_2023FD6 -_08057060: .4byte gUnknown_2023D08 -_08057064: .4byte gUnknown_2023D74 - thumb_func_end sub_08056E6C - - thumb_func_start sub_08057068 -sub_08057068: @ 0x08057068 - bx lr - .align 2, 0 - thumb_func_end sub_08057068 - - thumb_func_start SetControllerToPlayer -SetControllerToPlayer: @ 0x0805706C - ldr r1, _08057088 - ldr r0, _0805708C - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08057090 - str r1, [r0] - ldr r0, _08057094 - movs r1, #0 - strb r1, [r0] - ldr r0, _08057098 - strb r1, [r0] - bx lr - .align 2, 0 -_08057088: .4byte gUnknown_3005AC0 -_0805708C: .4byte gUnknown_2023D08 -_08057090: .4byte sub_08057114 -_08057094: .4byte gUnknown_202415D -_08057098: .4byte gUnknown_2024170 - thumb_func_end SetControllerToPlayer - - thumb_func_start PlayerBufferExecCompleted -PlayerBufferExecCompleted: @ 0x0805709C - push {r4, lr} - sub sp, #4 - ldr r1, _080570DC - ldr r4, _080570E0 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _080570E4 - str r1, [r0] - ldr r0, _080570E8 - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _080570F0 - bl GetMultiplayerId - mov r1, sp - strb r0, [r1] - movs r0, #2 - movs r1, #4 - mov r2, sp - bl PrepareBufferDataTransferLink - ldr r1, _080570EC - ldrb r0, [r4] - lsls r0, r0, #9 - adds r0, r0, r1 - movs r1, #0x38 - strb r1, [r0] - b _08057102 - .align 2, 0 -_080570DC: .4byte gUnknown_3005AC0 -_080570E0: .4byte gUnknown_2023D08 -_080570E4: .4byte sub_08057114 -_080570E8: .4byte gUnknown_2022C90 -_080570EC: .4byte gUnknown_2022D08 -_080570F0: - ldr r2, _0805710C - ldr r1, _08057110 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - ldr r0, [r2] - bics r0, r1 - str r0, [r2] -_08057102: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805710C: .4byte gUnknown_2023D0C -_08057110: .4byte gUnknown_82FACB4 - thumb_func_end PlayerBufferExecCompleted - - thumb_func_start sub_08057114 -sub_08057114: @ 0x08057114 - push {lr} - ldr r2, _08057148 - ldr r1, _0805714C - ldr r0, _08057150 - ldrb r3, [r0] - lsls r0, r3, #2 - adds r0, r0, r1 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _08057160 - ldr r0, _08057154 - lsls r1, r3, #9 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0x38 - bhi _0805715C - ldr r0, _08057158 - ldrb r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl _call_via_r0 - b _08057160 - .align 2, 0 -_08057148: .4byte gUnknown_2023D0C -_0805714C: .4byte gUnknown_82FACB4 -_08057150: .4byte gUnknown_2023D08 -_08057154: .4byte gUnknown_2022D08 -_08057158: .4byte gUnknown_82ECE9C -_0805715C: - bl PlayerBufferExecCompleted -_08057160: - pop {r0} - bx r0 - thumb_func_end sub_08057114 - - thumb_func_start CompleteOnBankSpritePosX_0 -CompleteOnBankSpritePosX_0: @ 0x08057164 - push {lr} - ldr r2, _0805718C - ldr r1, _08057190 - ldr r0, _08057194 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0x24 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08057186 - bl PlayerBufferExecCompleted -_08057186: - pop {r0} - bx r0 - .align 2, 0 -_0805718C: .4byte gUnknown_20205AC -_08057190: .4byte gUnknown_2023E88 -_08057194: .4byte gUnknown_2023D08 - thumb_func_end CompleteOnBankSpritePosX_0 - - thumb_func_start sub_08057198 -sub_08057198: @ 0x08057198 - push {r4, r5, r6, r7, lr} - ldr r3, _080571E8 - ldr r4, _080571EC - ldrb r0, [r4] - lsls r2, r0, #9 - adds r1, r3, #2 - adds r1, r2, r1 - ldrb r5, [r1] - adds r3, #3 - adds r2, r2, r3 - ldrb r1, [r2] - lsls r1, r1, #8 - orrs r5, r1 - movs r1, #1 - movs r2, #7 - movs r3, #1 - bl DoBounceEffect - ldrb r0, [r4] - movs r1, #0 - movs r2, #7 - movs r3, #1 - bl DoBounceEffect - ldr r0, _080571F0 - ldrh r1, [r0, #0x30] - movs r0, #0xf0 - ands r0, r1 - cmp r0, #0 - beq _080571FC - ldr r0, _080571F4 - ldr r0, [r0] - ldrb r0, [r0, #0x13] - cmp r0, #2 - bne _080571FC - ldr r1, _080571F8 - ldrb r0, [r1] - adds r0, #1 - b _08057200 - .align 2, 0 -_080571E8: .4byte gUnknown_2022D08 -_080571EC: .4byte gUnknown_2023D08 -_080571F0: .4byte gUnknown_3002360 -_080571F4: .4byte gUnknown_3005AF0 -_080571F8: .4byte gUnknown_2024170 -_080571FC: - ldr r1, _08057230 - movs r0, #0 -_08057200: - strb r0, [r1] - ldr r0, _08057234 - ldrh r2, [r0, #0x2e] - movs r3, #1 - adds r0, r3, #0 - ands r0, r2 - cmp r0, #0 - beq _08057268 - movs r0, #5 - bl sub_080A306C - ldr r1, _08057238 - ldr r0, _0805723C - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - beq _08057250 - cmp r0, #1 - bgt _08057240 - cmp r0, #0 - beq _0805724A - b _080573D2 - .align 2, 0 -_08057230: .4byte gUnknown_2024170 -_08057234: .4byte gUnknown_3002360 -_08057238: .4byte gUnknown_2024150 -_0805723C: .4byte gUnknown_2023D08 -_08057240: - cmp r0, #2 - beq _08057256 - cmp r0, #3 - beq _0805725C - b _080573D2 -_0805724A: - movs r0, #1 - movs r1, #0 - b _080573CC -_08057250: - movs r0, #1 - movs r1, #1 - b _080573CC -_08057256: - movs r0, #1 - movs r1, #2 - b _080573CC -_0805725C: - movs r0, #1 - movs r1, #3 - movs r2, #0 - bl BtlController_EmitTwoReturnValues - b _080573D2 -_08057268: - movs r0, #0x20 - ands r0, r2 - cmp r0, #0 - beq _080572A8 - ldr r5, _080572A0 - ldr r4, _080572A4 - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - bne _08057284 - b _080573F8 -_08057284: - movs r0, #5 - bl sub_080A306C - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r0, [r0] - bl MoveSelectionDestroyCursorAt - ldrb r1, [r4] - adds r1, r1, r5 - ldrb r0, [r1] - movs r2, #1 - b _08057342 - .align 2, 0 -_080572A0: .4byte gUnknown_2024150 -_080572A4: .4byte gUnknown_2023D08 -_080572A8: - movs r0, #0x10 - ands r0, r2 - cmp r0, #0 - beq _080572E8 - ldr r5, _080572E0 - ldr r4, _080572E4 - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _080572C4 - b _080573F8 -_080572C4: - movs r0, #5 - bl sub_080A306C - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r0, [r0] - bl MoveSelectionDestroyCursorAt - ldrb r1, [r4] - adds r1, r1, r5 - ldrb r0, [r1] - movs r2, #1 - b _08057342 - .align 2, 0 -_080572E0: .4byte gUnknown_2024150 -_080572E4: .4byte gUnknown_2023D08 -_080572E8: - movs r7, #0x40 - adds r0, r7, #0 - ands r0, r2 - cmp r0, #0 - beq _08057310 - ldr r5, _08057308 - ldr r4, _0805730C - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080573F8 - b _0805732A - .align 2, 0 -_08057308: .4byte gUnknown_2024150 -_0805730C: .4byte gUnknown_2023D08 -_08057310: - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - beq _0805735C - ldr r5, _08057354 - ldr r4, _08057358 - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _080573F8 -_0805732A: - movs r0, #5 - bl sub_080A306C - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r0, [r0] - bl MoveSelectionDestroyCursorAt - ldrb r1, [r4] - adds r1, r1, r5 - ldrb r0, [r1] - movs r2, #2 -_08057342: - eors r0, r2 - strb r0, [r1] - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r0, [r0] - movs r1, #0 - bl ActionSelectionCreateCursorAt - b _080573F8 - .align 2, 0 -_08057354: .4byte gUnknown_2024150 -_08057358: .4byte gUnknown_2023D08 -_0805735C: - movs r0, #2 - ands r0, r2 - cmp r0, #0 - bne _0805736A - ldrb r0, [r1] - cmp r0, #0x3b - bls _080573EC -_0805736A: - ldr r4, _080573D8 - ldr r0, [r4] - ands r0, r3 - cmp r0, #0 - beq _080573F8 - ldr r6, _080573DC - ldrb r0, [r6] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _080573F8 - movs r0, #0 - bl GetBattlerAtPosition - ldr r1, _080573E0 - ldrb r1, [r1] - ldr r2, _080573E4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _080573F8 - ldr r0, [r4] - ands r0, r7 - cmp r0, #0 - bne _080573F8 - ldr r0, _080573E8 - ldrb r1, [r6] - lsls r1, r1, #9 - adds r0, #1 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #1 - bne _080573C2 - cmp r5, #0xc - bhi _080573F8 - adds r0, r5, #0 - movs r1, #1 - bl AddBagItem -_080573C2: - movs r0, #5 - bl sub_080A306C - movs r0, #1 - movs r1, #0xc -_080573CC: - movs r2, #0 - bl BtlController_EmitTwoReturnValues -_080573D2: - bl PlayerBufferExecCompleted - b _080573F8 - .align 2, 0 -_080573D8: .4byte gUnknown_2022C90 -_080573DC: .4byte gUnknown_2023D08 -_080573E0: .4byte gUnknown_2023EB4 -_080573E4: .4byte gUnknown_82FACB4 -_080573E8: .4byte gUnknown_2022D08 -_080573EC: - movs r0, #8 - ands r0, r2 - cmp r0, #0 - beq _080573F8 - bl sub_08072C10 -_080573F8: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08057198 - - thumb_func_start sub_08057400 -sub_08057400: @ 0x08057400 - push {r4, lr} - ldr r4, _08057428 - ldrb r0, [r4] - movs r1, #1 - bl EndBounceEffect - ldrb r0, [r4] - movs r1, #0 - bl EndBounceEffect - ldr r1, _0805742C - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08057430 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08057428: .4byte gUnknown_2023D08 -_0805742C: .4byte gUnknown_3005AC0 -_08057430: .4byte HandleInputChooseTarget - thumb_func_end sub_08057400 - - thumb_func_start HandleInputChooseTarget -HandleInputChooseTarget: @ 0x08057434 - push {r4, r5, lr} - sub sp, #4 - ldr r1, _08057494 - mov r0, sp - movs r2, #4 - bl memcpy - ldr r0, _08057498 - ldrb r0, [r0] - movs r1, #1 - movs r2, #0xf - movs r3, #1 - bl DoBounceEffect - movs r4, #0 - ldr r0, _0805749C - ldrb r0, [r0] - cmp r0, #0 - beq _08057476 -_0805745A: - ldr r0, _08057498 - ldrb r0, [r0] - cmp r4, r0 - beq _0805746C - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - bl EndBounceEffect -_0805746C: - adds r4, #1 - ldr r0, _0805749C - ldrb r0, [r0] - cmp r4, r0 - blt _0805745A -_08057476: - ldr r2, _080574A0 - ldrh r1, [r2, #0x2c] - movs r0, #0xf0 - ands r0, r1 - cmp r0, #0 - beq _080574AC - ldr r0, _080574A4 - ldr r0, [r0] - ldrb r0, [r0, #0x13] - cmp r0, #2 - bne _080574AC - ldr r1, _080574A8 - ldrb r0, [r1] - adds r0, #1 - b _080574B0 - .align 2, 0 -_08057494: .4byte gUnknown_82ECF80 -_08057498: .4byte gUnknown_3005AD4 -_0805749C: .4byte gUnknown_2023D10 -_080574A0: .4byte gUnknown_3002360 -_080574A4: .4byte gUnknown_3005AF0 -_080574A8: .4byte gUnknown_2024170 -_080574AC: - ldr r1, _08057504 - movs r0, #0 -_080574B0: - strb r0, [r1] - ldrh r2, [r2, #0x2e] - movs r0, #1 - ands r0, r2 - cmp r0, #0 - beq _08057520 - movs r0, #5 - bl sub_080A306C - ldr r2, _08057508 - ldr r1, _0805750C - ldr r4, _08057510 - ldrb r0, [r4] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, _08057514 - str r1, [r0] - ldr r1, _08057518 - ldr r0, _0805751C - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r2, [r0] - ldrb r0, [r4] - lsls r0, r0, #8 - orrs r2, r0 - movs r0, #1 - movs r1, #0xa - bl BtlController_EmitTwoReturnValues - ldrb r0, [r4] - movs r1, #1 - bl EndBounceEffect - bl PlayerBufferExecCompleted - b _080577D8 - .align 2, 0 -_08057504: .4byte gUnknown_2024170 -_08057508: .4byte gUnknown_20205AC -_0805750C: .4byte gUnknown_2023E88 -_08057510: .4byte gUnknown_3005AD4 -_08057514: .4byte sub_08039770 -_08057518: .4byte gUnknown_2024154 -_0805751C: .4byte gUnknown_2023D08 -_08057520: - movs r0, #2 - ands r0, r2 - cmp r0, #0 - bne _0805752E - ldrb r0, [r1] - cmp r0, #0x3b - bls _0805759C -_0805752E: - movs r0, #5 - bl sub_080A306C - ldr r2, _08057580 - ldr r1, _08057584 - ldr r5, _08057588 - ldrb r0, [r5] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, _0805758C - str r1, [r0] - ldr r1, _08057590 - ldr r4, _08057594 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08057598 - str r1, [r0] - ldrb r0, [r4] - movs r1, #1 - movs r2, #7 - movs r3, #1 - bl DoBounceEffect - ldrb r0, [r4] - movs r1, #0 - movs r2, #7 - movs r3, #1 - bl DoBounceEffect - ldrb r0, [r5] - movs r1, #1 - bl EndBounceEffect - b _080577D8 - .align 2, 0 -_08057580: .4byte gUnknown_20205AC -_08057584: .4byte gUnknown_2023E88 -_08057588: .4byte gUnknown_3005AD4 -_0805758C: .4byte sub_08039770 -_08057590: .4byte gUnknown_3005AC0 -_08057594: .4byte gUnknown_2023D08 -_08057598: .4byte HandleInputChooseMove -_0805759C: - movs r0, #0x60 - ands r0, r2 - cmp r0, #0 - bne _080575A6 - b _080576C0 -_080575A6: - movs r0, #5 - bl sub_080A306C - ldr r2, _080575D8 - ldr r1, _080575DC - ldr r3, _080575E0 - ldrb r0, [r3] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, _080575E4 - str r1, [r0] - adds r5, r3, #0 -_080575C8: - ldrb r0, [r5] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r4, #0 - mov r0, sp - b _080575F2 - .align 2, 0 -_080575D8: .4byte gUnknown_20205AC -_080575DC: .4byte gUnknown_2023E88 -_080575E0: .4byte gUnknown_3005AD4 -_080575E4: .4byte sub_08039770 -_080575E8: - adds r4, #1 - cmp r4, #3 - bgt _080575F8 - mov r2, sp - adds r0, r2, r4 -_080575F2: - ldrb r0, [r0] - cmp r1, r0 - bne _080575E8 -_080575F8: - subs r4, #1 - cmp r4, #0 - bge _08057600 - movs r4, #4 -_08057600: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - bl GetBattlerAtPosition - strb r0, [r5] - ldr r1, _08057634 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1] - cmp r0, r1 - beq _080575F8 - movs r4, #0 - ldrb r0, [r5] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0805767E - cmp r0, #1 - bgt _08057638 - cmp r0, #0 - beq _08057642 - b _08057680 - .align 2, 0 -_08057634: .4byte gUnknown_2023D10 -_08057638: - cmp r0, #2 - beq _08057642 - cmp r0, #3 - beq _0805767E - b _08057680 -_08057642: - ldr r2, _080576A0 - ldrb r0, [r2] - ldrb r1, [r5] - cmp r0, r1 - bne _0805767E - ldr r1, _080576A4 - ldrb r2, [r2] - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080576A8 - adds r0, r0, r1 - ldr r1, _080576AC - adds r2, r2, r1 - ldrb r1, [r2] - adds r1, #0xd - bl GetMonData - ldr r2, _080576B0 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r1, [r1, #6] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08057680 -_0805767E: - adds r4, #1 -_08057680: - ldr r0, _080576B4 - ldrb r1, [r0] - ldr r2, _080576B8 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - ldr r0, _080576BC - cmp r1, #0 - beq _08057698 - movs r4, #0 -_08057698: - cmp r4, #0 - beq _080575C8 - b _080577C0 - .align 2, 0 -_080576A0: .4byte gUnknown_2023D08 -_080576A4: .4byte gUnknown_2023D12 -_080576A8: .4byte gUnknown_2024190 -_080576AC: .4byte gUnknown_2024154 -_080576B0: .4byte gUnknown_82ED220 -_080576B4: .4byte gUnknown_2023EB4 -_080576B8: .4byte gUnknown_82FACB4 -_080576BC: .4byte gUnknown_3005AD4 -_080576C0: - movs r0, #0x90 - ands r0, r2 - cmp r0, #0 - bne _080576CA - b _080577D8 -_080576CA: - movs r0, #5 - bl sub_080A306C - ldr r2, _080576FC - ldr r1, _08057700 - ldr r3, _08057704 - ldrb r0, [r3] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, _08057708 - str r1, [r0] - adds r5, r3, #0 -_080576EC: - ldrb r0, [r5] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r4, #0 - mov r0, sp - b _08057716 - .align 2, 0 -_080576FC: .4byte gUnknown_20205AC -_08057700: .4byte gUnknown_2023E88 -_08057704: .4byte gUnknown_3005AD4 -_08057708: .4byte sub_08039770 -_0805770C: - adds r4, #1 - cmp r4, #3 - bgt _0805771C - mov r2, sp - adds r0, r2, r4 -_08057716: - ldrb r0, [r0] - cmp r1, r0 - bne _0805770C -_0805771C: - adds r4, #1 - cmp r4, #3 - ble _08057724 - movs r4, #0 -_08057724: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - bl GetBattlerAtPosition - strb r0, [r5] - ldr r1, _08057758 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1] - cmp r0, r1 - beq _0805771C - movs r4, #0 - ldrb r0, [r5] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080577A2 - cmp r0, #1 - bgt _0805775C - cmp r0, #0 - beq _08057766 - b _080577A4 - .align 2, 0 -_08057758: .4byte gUnknown_2023D10 -_0805775C: - cmp r0, #2 - beq _08057766 - cmp r0, #3 - beq _080577A2 - b _080577A4 -_08057766: - ldr r2, _080577E0 - ldrb r0, [r2] - ldrb r1, [r5] - cmp r0, r1 - bne _080577A2 - ldr r1, _080577E4 - ldrb r2, [r2] - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080577E8 - adds r0, r0, r1 - ldr r1, _080577EC - adds r2, r2, r1 - ldrb r1, [r2] - adds r1, #0xd - bl GetMonData - ldr r2, _080577F0 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r1, [r1, #6] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080577A4 -_080577A2: - adds r4, #1 -_080577A4: - ldr r0, _080577F4 - ldrb r1, [r0] - ldr r2, _080577F8 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - ldr r0, _080577FC - cmp r1, #0 - beq _080577BC - movs r4, #0 -_080577BC: - cmp r4, #0 - beq _080576EC -_080577C0: - ldr r2, _08057800 - ldr r1, _08057804 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, _08057808 - str r1, [r0] -_080577D8: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080577E0: .4byte gUnknown_2023D08 -_080577E4: .4byte gUnknown_2023D12 -_080577E8: .4byte gUnknown_2024190 -_080577EC: .4byte gUnknown_2024154 -_080577F0: .4byte gUnknown_82ED220 -_080577F4: .4byte gUnknown_2023EB4 -_080577F8: .4byte gUnknown_82FACB4 -_080577FC: .4byte gUnknown_3005AD4 -_08057800: .4byte gUnknown_20205AC -_08057804: .4byte gUnknown_2023E88 -_08057808: .4byte sub_0803971C - thumb_func_end HandleInputChooseTarget - - thumb_func_start HandleInputChooseMove -HandleInputChooseMove: @ 0x0805780C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r0, #0 - mov r8, r0 - ldr r3, _08057840 - ldrb r0, [r3] - lsls r0, r0, #9 - ldr r1, _08057844 - adds r6, r0, r1 - ldr r2, _08057848 - ldrh r1, [r2, #0x2c] - movs r0, #0xf0 - ands r0, r1 - adds r7, r3, #0 - cmp r0, #0 - beq _08057854 - ldr r0, _0805784C - ldr r0, [r0] - ldrb r0, [r0, #0x13] - cmp r0, #2 - bne _08057854 - ldr r1, _08057850 - ldrb r0, [r1] - adds r0, #1 - b _08057858 - .align 2, 0 -_08057840: .4byte gUnknown_2023D08 -_08057844: .4byte gUnknown_2022D0C -_08057848: .4byte gUnknown_3002360 -_0805784C: .4byte gUnknown_3005AF0 -_08057850: .4byte gUnknown_2024170 -_08057854: - ldr r1, _0805789C - movs r0, #0 -_08057858: - strb r0, [r1] - ldrh r2, [r2, #0x2e] - movs r5, #1 - adds r0, r5, #0 - ands r0, r2 - cmp r0, #0 - bne _08057868 - b _08057A14 -_08057868: - movs r0, #5 - bl sub_080A306C - ldr r1, _080578A0 - ldr r0, _080578A4 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r1, r6, r0 - ldrh r0, [r1] - cmp r0, #0xae - bne _080578A8 - ldrb r0, [r6, #0x12] - movs r4, #0 - cmp r0, #7 - beq _080578B6 - ldrb r1, [r6, #0x13] - movs r0, #7 - eors r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - asrs r4, r0, #0x1f - movs r0, #0x10 - ands r4, r0 - b _080578B6 - .align 2, 0 -_0805789C: .4byte gUnknown_2024170 -_080578A0: .4byte gUnknown_2024154 -_080578A4: .4byte gUnknown_2023D08 -_080578A8: - ldr r2, _080578C8 - ldrh r1, [r1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r4, [r0, #6] -_080578B6: - movs r0, #0x10 - ands r0, r4 - cmp r0, #0 - beq _080578D4 - ldr r0, _080578CC - ldr r1, _080578D0 - ldrb r1, [r1] - strb r1, [r0] - b _080578EE - .align 2, 0 -_080578C8: .4byte gUnknown_82ED220 -_080578CC: .4byte gUnknown_3005AD4 -_080578D0: .4byte gUnknown_2023D08 -_080578D4: - ldr r0, _0805791C - ldrb r0, [r0] - bl sub_080A630C - adds r1, r0, #0 - movs r2, #1 - movs r0, #1 - ands r0, r1 - eors r0, r2 - bl GetBattlerAtPosition - ldr r1, _08057920 - strb r0, [r1] -_080578EE: - ldr r5, _08057924 - ldr r0, _0805791C - ldrb r3, [r0] - lsls r2, r3, #9 - adds r1, r5, #1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r7, r0, #0 - cmp r1, #0 - bne _08057928 - movs r0, #2 - ands r0, r4 - cmp r0, #0 - beq _0805796A - adds r0, r5, #2 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, #0 - bne _0805796A - movs r0, #1 - add r8, r0 - b _0805796A - .align 2, 0 -_0805791C: .4byte gUnknown_2023D08 -_08057920: .4byte gUnknown_3005AD4 -_08057924: .4byte gUnknown_2022D08 -_08057928: - movs r0, #0x7d - ands r0, r4 - cmp r0, #0 - bne _08057934 - movs r0, #1 - add r8, r0 -_08057934: - ldr r0, _08057984 - adds r0, r3, r0 - adds r1, r6, #0 - adds r1, #8 - ldrb r0, [r0] - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0 - beq _08057972 - movs r0, #0x12 - ands r0, r4 - cmp r0, #0 - bne _0805796A - movs r0, #0 - bl CountAliveMonsInBattle - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0805796A - ldrb r0, [r7] - bl GetDefaultMoveTarget - ldr r1, _08057988 - strb r0, [r1] - movs r0, #0 - mov r8, r0 -_0805796A: - ldr r7, _0805798C - mov r0, r8 - cmp r0, #0 - bne _08057990 -_08057972: - ldr r1, _08057984 - ldrb r0, [r7] - adds r0, r0, r1 - ldrb r2, [r0] - ldr r0, _08057988 - ldrb r0, [r0] - lsls r0, r0, #8 - orrs r2, r0 - b _08057A2C - .align 2, 0 -_08057984: .4byte gUnknown_2024154 -_08057988: .4byte gUnknown_3005AD4 -_0805798C: .4byte gUnknown_2023D08 -_08057990: - ldr r1, _080579AC - ldrb r0, [r7] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _080579B0 - str r1, [r0] - movs r0, #0x12 - ands r4, r0 - cmp r4, #0 - beq _080579B8 - ldr r1, _080579B4 - ldrb r0, [r7] - b _080579E8 - .align 2, 0 -_080579AC: .4byte gUnknown_3005AC0 -_080579B0: .4byte HandleInputChooseTarget -_080579B4: .4byte gUnknown_3005AD4 -_080579B8: - movs r0, #1 - bl GetBattlerAtPosition - ldr r1, _080579D8 - ldrb r1, [r1] - ldr r2, _080579DC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _080579E0 - movs r0, #3 - b _080579E2 - .align 2, 0 -_080579D8: .4byte gUnknown_2023EB4 -_080579DC: .4byte gUnknown_82FACB4 -_080579E0: - movs r0, #1 -_080579E2: - bl GetBattlerAtPosition - ldr r1, _08057A04 -_080579E8: - strb r0, [r1] - ldr r2, _08057A08 - ldr r1, _08057A0C - ldr r0, _08057A04 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, _08057A10 - b _08057BAC - .align 2, 0 -_08057A04: .4byte gUnknown_3005AD4 -_08057A08: .4byte gUnknown_20205AC -_08057A0C: .4byte gUnknown_2023E88 -_08057A10: .4byte sub_0803971C -_08057A14: - movs r6, #2 - adds r0, r6, #0 - ands r0, r2 - cmp r0, #0 - bne _08057A24 - ldrb r0, [r1] - cmp r0, #0x3b - bls _08057A40 -_08057A24: - movs r0, #5 - bl sub_080A306C - ldr r2, _08057A3C -_08057A2C: - movs r0, #1 - movs r1, #0xa - bl BtlController_EmitTwoReturnValues - bl PlayerBufferExecCompleted - b _08057BAE - .align 2, 0 -_08057A3C: .4byte 0x0000FFFF -_08057A40: - movs r0, #0x20 - ands r0, r2 - cmp r0, #0 - beq _08057A70 - ldr r4, _08057A6C - ldrb r0, [r7] - adds r2, r0, r4 - ldrb r1, [r2] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - bne _08057A5A - b _08057BAE -_08057A5A: - ldrb r0, [r2] - bl sub_08059884 - ldrb r1, [r7] - adds r1, r1, r4 - ldrb r0, [r1] - movs r2, #1 - eors r0, r2 - b _08057B18 - .align 2, 0 -_08057A6C: .4byte gUnknown_2024154 -_08057A70: - movs r0, #0x10 - ands r0, r2 - cmp r0, #0 - beq _08057AB4 - ldr r4, _08057AAC - ldrb r0, [r7] - adds r3, r0, r4 - ldrb r2, [r3] - movs r6, #1 - adds r0, r5, #0 - ands r0, r2 - cmp r0, #0 - beq _08057A8C - b _08057BAE -_08057A8C: - ldr r1, _08057AB0 - adds r0, r6, #0 - eors r0, r2 - ldrb r1, [r1] - cmp r0, r1 - blo _08057A9A - b _08057BAE -_08057A9A: - ldrb r0, [r3] - bl sub_08059884 - ldrb r1, [r7] - adds r1, r1, r4 - ldrb r0, [r1] - eors r0, r6 - b _08057B18 - .align 2, 0 -_08057AAC: .4byte gUnknown_2024154 -_08057AB0: .4byte gUnknown_3005AD8 -_08057AB4: - movs r0, #0x40 - ands r0, r2 - cmp r0, #0 - beq _08057AE4 - ldr r4, _08057AE0 - ldrb r0, [r7] - adds r2, r0, r4 - ldrb r1, [r2] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _08057BAE - ldrb r0, [r2] - bl sub_08059884 - ldrb r1, [r7] - adds r1, r1, r4 - ldrb r0, [r1] - movs r2, #2 - eors r0, r2 - b _08057B18 - .align 2, 0 -_08057AE0: .4byte gUnknown_2024154 -_08057AE4: - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - beq _08057B40 - ldr r4, _08057B38 - ldrb r0, [r7] - adds r3, r0, r4 - ldrb r2, [r3] - movs r5, #2 - adds r0, r6, #0 - ands r0, r2 - cmp r0, #0 - bne _08057BAE - ldr r1, _08057B3C - adds r0, r5, #0 - eors r0, r2 - ldrb r1, [r1] - cmp r0, r1 - bhs _08057BAE - ldrb r0, [r3] - bl sub_08059884 - ldrb r1, [r7] - adds r1, r1, r4 - ldrb r0, [r1] - eors r0, r5 -_08057B18: - strb r0, [r1] - movs r0, #5 - bl sub_080A306C - ldrb r0, [r7] - adds r0, r0, r4 - ldrb r0, [r0] - movs r1, #0 - bl MoveSelectionCreateCursorAt - bl MoveSelectionDisplayPpNumber - bl sub_080597E0 - b _08057BAE - .align 2, 0 -_08057B38: .4byte gUnknown_2024154 -_08057B3C: .4byte gUnknown_3005AD8 -_08057B40: - movs r0, #4 - ands r0, r2 - cmp r0, #0 - beq _08057BAE - ldr r0, _08057B78 - ldrb r0, [r0] - cmp r0, #1 - bls _08057BAE - ldr r0, _08057B7C - ldr r5, [r0] - ands r5, r6 - cmp r5, #0 - bne _08057BAE - ldr r4, _08057B80 - ldrb r0, [r7] - adds r0, r0, r4 - ldrb r0, [r0] - movs r1, #0x1d - bl MoveSelectionCreateCursorAt - ldrb r0, [r7] - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0 - beq _08057B88 - ldr r0, _08057B84 - strb r5, [r0] - b _08057B90 - .align 2, 0 -_08057B78: .4byte gUnknown_3005AD8 -_08057B7C: .4byte gUnknown_2022C90 -_08057B80: .4byte gUnknown_2024154 -_08057B84: .4byte gUnknown_3005AD4 -_08057B88: - ldr r1, _08057BB8 - adds r0, #1 - strb r0, [r1] - adds r0, r1, #0 -_08057B90: - ldrb r0, [r0] - movs r1, #0x1b - bl MoveSelectionCreateCursorAt - ldr r0, _08057BBC - movs r1, #0xb - bl sub_0814FA04 - ldr r1, _08057BC0 - ldr r0, _08057BC4 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08057BC8 -_08057BAC: - str r1, [r0] -_08057BAE: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08057BB8: .4byte gUnknown_3005AD4 -_08057BBC: .4byte gUnknown_85ABBD8 -_08057BC0: .4byte gUnknown_3005AC0 -_08057BC4: .4byte gUnknown_2023D08 -_08057BC8: .4byte HandleMoveSwitching - thumb_func_end HandleInputChooseMove - - thumb_func_start sub_08057BCC -sub_08057BCC: @ 0x08057BCC - push {r4, r5, r6, r7, lr} - movs r7, #0 - ldr r4, _08057D30 - ldrh r1, [r4, #0x2e] - movs r6, #1 - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _08057BE6 - movs r0, #5 - bl sub_080A306C - movs r7, #1 -_08057BE6: - ldrh r1, [r4, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08057C08 - movs r0, #5 - bl sub_080A306C - ldr r1, _08057D34 - movs r0, #0 - strh r0, [r1] - ldr r1, _08057D38 - movs r2, #0xa0 - lsls r2, r2, #1 - adds r0, r2, #0 - strh r0, [r1] - movs r7, #0xff -_08057C08: - ldrh r1, [r4, #0x2e] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08057C48 - ldr r5, _08057D3C - ldr r4, _08057D40 - ldrb r0, [r4] - adds r2, r0, r5 - ldrb r1, [r2] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _08057C48 - ldrb r0, [r2] - bl sub_08059884 - ldrb r1, [r4] - adds r1, r1, r5 - ldrb r0, [r1] - movs r2, #1 - eors r0, r2 - strb r0, [r1] - movs r0, #5 - bl sub_080A306C - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r0, [r0] - movs r1, #0 - bl MoveSelectionCreateCursorAt -_08057C48: - ldr r0, _08057D30 - ldrh r1, [r0, #0x2e] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08057C96 - ldr r5, _08057D3C - ldr r4, _08057D40 - ldrb r0, [r4] - adds r3, r0, r5 - ldrb r2, [r3] - movs r6, #1 - movs r0, #1 - ands r0, r2 - cmp r0, #0 - bne _08057C96 - ldr r1, _08057D44 - adds r0, r6, #0 - eors r0, r2 - ldrb r1, [r1] - cmp r0, r1 - bhs _08057C96 - ldrb r0, [r3] - bl sub_08059884 - ldrb r1, [r4] - adds r1, r1, r5 - ldrb r0, [r1] - eors r0, r6 - strb r0, [r1] - movs r0, #5 - bl sub_080A306C - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r0, [r0] - movs r1, #0 - bl MoveSelectionCreateCursorAt -_08057C96: - ldr r0, _08057D30 - ldrh r1, [r0, #0x2e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08057CD8 - ldr r5, _08057D3C - ldr r4, _08057D40 - ldrb r0, [r4] - adds r2, r0, r5 - ldrb r1, [r2] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08057CD8 - ldrb r0, [r2] - bl sub_08059884 - ldrb r1, [r4] - adds r1, r1, r5 - ldrb r0, [r1] - movs r2, #2 - eors r0, r2 - strb r0, [r1] - movs r0, #5 - bl sub_080A306C - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r0, [r0] - movs r1, #0 - bl MoveSelectionCreateCursorAt -_08057CD8: - ldr r0, _08057D30 - ldrh r1, [r0, #0x2e] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08057D26 - ldr r5, _08057D3C - ldr r4, _08057D40 - ldrb r0, [r4] - adds r3, r0, r5 - ldrb r2, [r3] - movs r6, #2 - movs r0, #2 - ands r0, r2 - cmp r0, #0 - bne _08057D26 - ldr r1, _08057D44 - adds r0, r6, #0 - eors r0, r2 - ldrb r1, [r1] - cmp r0, r1 - bhs _08057D26 - ldrb r0, [r3] - bl sub_08059884 - ldrb r1, [r4] - adds r1, r1, r5 - ldrb r0, [r1] - eors r0, r6 - strb r0, [r1] - movs r0, #5 - bl sub_080A306C - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r0, [r0] - movs r1, #0 - bl MoveSelectionCreateCursorAt -_08057D26: - adds r0, r7, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08057D30: .4byte gUnknown_3002360 -_08057D34: .4byte gUnknown_2022AC8 -_08057D38: .4byte gUnknown_2022ACA -_08057D3C: .4byte gUnknown_2024154 -_08057D40: .4byte gUnknown_2023D08 -_08057D44: .4byte gUnknown_3005AD8 - thumb_func_end sub_08057BCC - - thumb_func_start HandleMoveSwitching -HandleMoveSwitching: @ 0x08057D48 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x24 - ldr r0, _080580E0 - ldrh r1, [r0, #0x2e] - movs r0, #5 - ands r0, r1 - cmp r0, #0 - bne _08057D62 - b _08058110 -_08057D62: - movs r0, #5 - bl sub_080A306C - ldr r0, _080580E4 - mov sl, r0 - ldr r1, _080580E8 - mov r8, r1 - ldrb r1, [r1] - adds r2, r1, r0 - ldr r5, _080580EC - ldrb r0, [r2] - ldrb r3, [r5] - cmp r0, r3 - bne _08057D80 - b _080580B8 -_08057D80: - lsls r1, r1, #9 - ldr r0, _080580F0 - adds r1, r1, r0 - mov sb, r1 - ldrb r1, [r2] - lsls r1, r1, #1 - add r1, sb - ldrh r6, [r1] - ldrb r0, [r5] - lsls r0, r0, #1 - add r0, sb - ldrh r0, [r0] - strh r0, [r1] - ldrb r0, [r5] - lsls r0, r0, #1 - add r0, sb - strh r6, [r0] - mov r1, r8 - ldrb r0, [r1] - add r0, sl - ldrb r1, [r0] - mov r7, sb - adds r7, #8 - adds r1, r7, r1 - ldrb r6, [r1] - ldrb r0, [r5] - adds r0, r7, r0 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r5] - adds r0, r7, r0 - strb r6, [r0] - mov r2, r8 - ldrb r0, [r2] - add r0, sl - ldrb r1, [r0] - mov r2, sb - adds r2, #0xc - adds r1, r2, r1 - ldrb r6, [r1] - ldrb r0, [r5] - adds r0, r2, r0 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r5] - adds r2, r2, r0 - strb r6, [r2] - mov r3, r8 - ldrb r1, [r3] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r2, _080580F4 - adds r6, r0, r2 - ldrb r4, [r6, #0x18] - lsls r3, r4, #0x18 - lsrs r2, r3, #0x1c - ldr r0, _080580F8 - mov ip, r0 - add r1, sl - ldrb r0, [r1] - lsls r0, r0, #2 - add r0, ip - ldr r0, [r0] - ands r2, r0 - cmp r2, #0 - beq _08057E3A - lsrs r1, r3, #0x1c - bics r1, r0 - lsls r1, r1, #4 - movs r2, #0xf - adds r0, r2, #0 - ands r0, r4 - orrs r0, r1 - strb r0, [r6, #0x18] - mov r1, r8 - ldrb r0, [r1] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - ldr r3, _080580F4 - adds r1, r1, r3 - ldrb r4, [r1, #0x18] - lsrs r3, r4, #4 - ldrb r0, [r5] - lsls r0, r0, #2 - add r0, ip - ldr r0, [r0] - orrs r0, r3 - lsls r0, r0, #4 - ands r2, r4 - orrs r2, r0 - strb r2, [r1, #0x18] -_08057E3A: - bl sub_080596BC - movs r6, #0 - mov ip, r7 - mov r5, sp - adds r5, #0x18 - str r5, [sp, #0x1c] - ldr r2, _080580FC - mov r0, r8 - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - adds r4, r0, #0 - adds r4, #0x3b - mov r7, r8 - mov sl, r2 - movs r5, #3 -_08057E5E: - mov r1, sp - adds r3, r1, r6 - ldrb r1, [r4] - lsls r2, r6, #1 - adds r0, r5, #0 - lsls r0, r2 - ands r1, r0 - asrs r1, r2 - strb r1, [r3] - adds r6, #1 - cmp r6, #3 - ble _08057E5E - ldr r1, _080580E4 - ldrb r0, [r7] - adds r0, r0, r1 - ldrb r0, [r0] - add r0, sp - ldrb r0, [r0] - ldr r2, [sp, #0x1c] - strb r0, [r2] - ldrb r0, [r7] - adds r0, r0, r1 - ldrb r0, [r0] - mov r3, sp - adds r2, r3, r0 - ldr r1, _080580EC - ldrb r0, [r1] - add r0, sp - ldrb r0, [r0] - movs r3, #0 - strb r0, [r2] - ldrb r0, [r1] - mov r5, sp - adds r1, r5, r0 - ldr r2, [sp, #0x1c] - ldrb r0, [r2] - strb r0, [r1] - strb r3, [r2] - movs r6, #0 - ldr r2, [sp, #0x1c] -_08057EAE: - mov r3, sp - adds r0, r3, r6 - ldrb r1, [r0] - lsls r0, r6, #1 - lsls r1, r0 - ldrb r0, [r2] - orrs r0, r1 - strb r0, [r2] - adds r6, #1 - cmp r6, #3 - ble _08057EAE - ldrb r1, [r7] - movs r0, #0x58 - muls r0, r1, r0 - add r0, sl - adds r0, #0x3b - ldr r5, [sp, #0x1c] - ldrb r1, [r5] - strb r1, [r0] - movs r6, #0 - adds r4, r7, #0 - movs r3, #0x58 - movs r0, #0x24 - add r0, sl - mov r8, r0 - mov r2, sb - mov r7, sl - adds r7, #0xc - mov r5, ip -_08057EE8: - lsls r1, r6, #1 - ldrb r0, [r4] - muls r0, r3, r0 - adds r1, r1, r0 - adds r1, r1, r7 - ldrh r0, [r2] - strh r0, [r1] - ldrb r0, [r4] - adds r1, r0, #0 - muls r1, r3, r1 - adds r1, r6, r1 - add r1, r8 - adds r0, r5, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r2, #2 - adds r6, #1 - cmp r6, #3 - ble _08057EE8 - ldr r2, _080580E8 - ldrb r1, [r2] - movs r0, #0x58 - muls r0, r1, r0 - mov r1, sl - adds r1, #0x50 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xe - ands r0, r1 - cmp r0, #0 - beq _08057F2A - b _080580B8 -_08057F2A: - movs r6, #0 - mov r1, sp - adds r1, #4 - str r1, [sp, #0x20] - add r3, sp, #0xc - mov sl, r3 - ldr r5, _08058100 - mov sb, r5 - mov r8, r2 - movs r7, #0x64 - ldr r5, _08058104 - adds r4, r1, #0 -_08057F42: - mov r1, r8 - ldrb r0, [r1] - lsls r0, r0, #1 - add r0, sb - ldrh r0, [r0] - muls r0, r7, r0 - adds r0, r0, r5 - adds r1, r6, #0 - adds r1, #0xd - bl GetMonData - strh r0, [r4] - mov r2, r8 - ldrb r0, [r2] - lsls r0, r0, #1 - add r0, sb - ldrh r0, [r0] - muls r0, r7, r0 - adds r0, r0, r5 - adds r1, r6, #0 - adds r1, #0x11 - bl GetMonData - mov r3, sl - adds r1, r3, r6 - strb r0, [r1] - adds r4, #2 - adds r6, #1 - cmp r6, #3 - ble _08057F42 - ldr r1, _08058100 - ldr r0, _080580E8 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08058104 - adds r0, r0, r1 - movs r1, #0x15 - bl GetMonData - ldr r5, [sp, #0x1c] - strb r0, [r5] - movs r6, #0 - movs r5, #3 - ldr r4, [sp, #0x1c] -_08057FA2: - mov r0, sp - adds r3, r0, r6 - lsls r2, r6, #1 - adds r1, r5, #0 - lsls r1, r2 - ldrb r0, [r4] - ands r0, r1 - asrs r0, r2 - strb r0, [r3] - adds r6, #1 - cmp r6, #3 - ble _08057FA2 - ldr r4, _080580E4 - ldr r3, _080580E8 - ldrb r0, [r3] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r1, r1, #1 - ldr r2, [sp, #0x20] - adds r1, r2, r1 - ldrh r6, [r1] - ldr r2, _080580EC - ldrb r0, [r2] - lsls r0, r0, #1 - ldr r5, [sp, #0x20] - adds r0, r5, r0 - ldrh r0, [r0] - movs r5, #0 - strh r0, [r1] - ldrb r0, [r2] - lsls r0, r0, #1 - ldr r1, [sp, #0x20] - adds r0, r1, r0 - strh r6, [r0] - ldrb r0, [r3] - adds r0, r0, r4 - ldrb r1, [r0] - add r1, sl - ldrb r6, [r1] - ldrb r0, [r2] - add r0, sl - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r2] - add r0, sl - strb r6, [r0] - ldrb r0, [r3] - adds r0, r0, r4 - ldrb r0, [r0] - add r0, sp - ldrb r0, [r0] - ldr r1, [sp, #0x1c] - strb r0, [r1] - ldrb r0, [r3] - adds r0, r0, r4 - ldrb r0, [r0] - mov r3, sp - adds r1, r3, r0 - ldrb r0, [r2] - add r0, sp - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r2] - adds r1, r3, r0 - ldr r2, [sp, #0x1c] - ldrb r0, [r2] - strb r0, [r1] - strb r5, [r2] - movs r6, #0 - ldr r2, [sp, #0x1c] -_0805802E: - mov r3, sp - adds r0, r3, r6 - ldrb r1, [r0] - lsls r0, r6, #1 - lsls r1, r0 - ldrb r0, [r2] - orrs r0, r1 - strb r0, [r2] - adds r6, #1 - cmp r6, #3 - ble _0805802E - movs r6, #0 - ldr r5, _08058100 - mov sl, r5 - ldr r0, _080580E8 - mov sb, r0 - movs r1, #0x64 - mov r8, r1 - ldr r7, _08058104 - ldr r5, [sp, #0x20] - adds r5, #8 - ldr r4, [sp, #0x20] -_0805805A: - mov r2, sb - ldrb r0, [r2] - lsls r0, r0, #1 - add r0, sl - ldrh r0, [r0] - mov r3, r8 - muls r3, r0, r3 - adds r0, r3, #0 - adds r0, r0, r7 - adds r1, r6, #0 - adds r1, #0xd - adds r2, r4, #0 - bl SetMonData - mov r1, sb - ldrb r0, [r1] - lsls r0, r0, #1 - add r0, sl - ldrh r0, [r0] - mov r2, r8 - muls r2, r0, r2 - adds r0, r2, #0 - adds r0, r0, r7 - adds r1, r6, #0 - adds r1, #0x11 - adds r2, r5, #0 - bl SetMonData - adds r5, #1 - adds r4, #2 - adds r6, #1 - cmp r6, #3 - ble _0805805A - ldr r1, _08058100 - ldr r0, _080580E8 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08058104 - adds r0, r0, r1 - movs r1, #0x15 - ldr r2, [sp, #0x1c] - bl SetMonData -_080580B8: - ldr r1, _08058108 - ldr r2, _080580E8 - ldrb r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805810C - str r1, [r0] - ldr r3, _080580E4 - ldrb r0, [r2] - adds r0, r0, r3 - ldr r1, _080580EC - ldrb r1, [r1] - strb r1, [r0] - ldrb r0, [r2] - adds r0, r0, r3 - ldrb r0, [r0] - movs r1, #0 - bl MoveSelectionCreateCursorAt - b _08058142 - .align 2, 0 -_080580E0: .4byte gUnknown_3002360 -_080580E4: .4byte gUnknown_2024154 -_080580E8: .4byte gUnknown_2023D08 -_080580EC: .4byte gUnknown_3005AD4 -_080580F0: .4byte gUnknown_2022D0C -_080580F4: .4byte gUnknown_2023F60 -_080580F8: .4byte gUnknown_82FACB4 -_080580FC: .4byte gUnknown_2023D28 -_08058100: .4byte gUnknown_2023D12 -_08058104: .4byte gUnknown_2024190 -_08058108: .4byte gUnknown_3005AC0 -_0805810C: .4byte HandleInputChooseMove -_08058110: - movs r0, #6 - ands r0, r1 - cmp r0, #0 - beq _08058164 - movs r0, #5 - bl sub_080A306C - ldr r0, _08058150 - ldrb r0, [r0] - bl sub_08059884 - ldr r1, _08058154 - ldr r4, _08058158 - ldrb r0, [r4] - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #0 - bl MoveSelectionCreateCursorAt - ldr r1, _0805815C - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08058160 - str r1, [r0] -_08058142: - bl sub_08059734 - bl MoveSelectionDisplayPpNumber - bl sub_080597E0 - b _080582F8 - .align 2, 0 -_08058150: .4byte gUnknown_3005AD4 -_08058154: .4byte gUnknown_2024154 -_08058158: .4byte gUnknown_2023D08 -_0805815C: .4byte gUnknown_3005AC0 -_08058160: .4byte HandleInputChooseMove -_08058164: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080581B4 - ldr r3, _08058194 - ldrb r2, [r3] - movs r0, #1 - ands r0, r2 - cmp r0, #0 - bne _0805817A - b _080582F8 -_0805817A: - ldr r0, _08058198 - ldr r1, _0805819C - ldrb r1, [r1] - adds r1, r1, r0 - ldrb r5, [r1] - cmp r2, r5 - bne _080581A0 -_08058188: - ldrb r0, [r1] - movs r1, #0x1d - bl MoveSelectionCreateCursorAt - b _080581A6 - .align 2, 0 -_08058194: .4byte gUnknown_3005AD4 -_08058198: .4byte gUnknown_2024154 -_0805819C: .4byte gUnknown_2023D08 -_080581A0: - ldrb r0, [r3] - bl sub_08059884 -_080581A6: - ldr r4, _080581B0 - ldrb r0, [r4] - movs r1, #1 - b _0805823C - .align 2, 0 -_080581B0: .4byte gUnknown_3005AD4 -_080581B4: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080581F8 - ldr r3, _080581E8 - ldrb r2, [r3] - movs r0, #1 - ands r0, r2 - cmp r0, #0 - beq _080581CA - b _080582F8 -_080581CA: - ldr r1, _080581EC - movs r0, #1 - eors r0, r2 - ldrb r1, [r1] - cmp r0, r1 - blo _080581D8 - b _080582F8 -_080581D8: - ldr r0, _080581F0 - ldr r1, _080581F4 - ldrb r1, [r1] - adds r1, r1, r0 - ldrb r0, [r1] - cmp r2, r0 - beq _08058188 - b _080581A0 - .align 2, 0 -_080581E8: .4byte gUnknown_3005AD4 -_080581EC: .4byte gUnknown_3005AD8 -_080581F0: .4byte gUnknown_2024154 -_080581F4: .4byte gUnknown_2023D08 -_080581F8: - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0805826C - ldr r3, _08058224 - ldrb r2, [r3] - movs r0, #2 - ands r0, r2 - cmp r0, #0 - beq _080582F8 - ldr r0, _08058228 - ldr r1, _0805822C - ldrb r1, [r1] - adds r1, r1, r0 - ldrb r5, [r1] - cmp r2, r5 - bne _08058230 - ldrb r0, [r1] - movs r1, #0x1d - bl MoveSelectionCreateCursorAt - b _08058236 - .align 2, 0 -_08058224: .4byte gUnknown_3005AD4 -_08058228: .4byte gUnknown_2024154 -_0805822C: .4byte gUnknown_2023D08 -_08058230: - ldrb r0, [r3] - bl sub_08059884 -_08058236: - ldr r4, _08058260 - ldrb r0, [r4] - movs r1, #2 -_0805823C: - eors r0, r1 - strb r0, [r4] - movs r0, #5 - bl sub_080A306C - ldr r1, _08058264 - ldr r0, _08058268 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r4] - ldrb r0, [r0] - cmp r1, r0 - beq _080582DA - ldrb r0, [r4] - movs r1, #0x1b - bl MoveSelectionCreateCursorAt - b _080582F8 - .align 2, 0 -_08058260: .4byte gUnknown_3005AD4 -_08058264: .4byte gUnknown_2024154 -_08058268: .4byte gUnknown_2023D08 -_0805826C: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080582F8 - ldr r3, _080582A4 - ldrb r2, [r3] - movs r0, #2 - ands r0, r2 - cmp r0, #0 - bne _080582F8 - ldr r1, _080582A8 - movs r0, #2 - eors r0, r2 - ldrb r1, [r1] - cmp r0, r1 - bhs _080582F8 - ldr r0, _080582AC - ldr r1, _080582B0 - ldrb r1, [r1] - adds r1, r1, r0 - ldrb r0, [r1] - cmp r2, r0 - bne _080582B4 - ldrb r0, [r1] - movs r1, #0x1d - bl MoveSelectionCreateCursorAt - b _080582BA - .align 2, 0 -_080582A4: .4byte gUnknown_3005AD4 -_080582A8: .4byte gUnknown_3005AD8 -_080582AC: .4byte gUnknown_2024154 -_080582B0: .4byte gUnknown_2023D08 -_080582B4: - ldrb r0, [r3] - bl sub_08059884 -_080582BA: - ldr r4, _080582E4 - ldrb r0, [r4] - movs r1, #2 - eors r0, r1 - strb r0, [r4] - movs r0, #5 - bl sub_080A306C - ldr r1, _080582E8 - ldr r0, _080582EC - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r4] - ldrb r0, [r0] - cmp r1, r0 - bne _080582F0 -_080582DA: - adds r0, r1, #0 - movs r1, #0 - bl MoveSelectionCreateCursorAt - b _080582F8 - .align 2, 0 -_080582E4: .4byte gUnknown_3005AD4 -_080582E8: .4byte gUnknown_2024154 -_080582EC: .4byte gUnknown_2023D08 -_080582F0: - ldrb r0, [r4] - movs r1, #0x1b - bl MoveSelectionCreateCursorAt -_080582F8: - add sp, #0x24 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end HandleMoveSwitching - - thumb_func_start sub_08058308 -sub_08058308: @ 0x08058308 - push {lr} - ldr r0, _08058350 - ldrb r0, [r0] - cmp r0, #0 - bne _0805836C - ldr r0, _08058354 - ldrb r0, [r0] - cmp r0, #0 - bne _080583A8 - movs r0, #0x5a - bl m4aSongNumStop - ldr r3, _08058358 - ldr r0, _0805835C - adds r2, r3, r0 - ldrb r1, [r2] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldr r0, _08058360 - ldr r0, [r0] - str r0, [r3] - ldr r0, _08058364 - bl SetMainCallback2 - ldr r0, _08058368 - ldrb r0, [r0] - cmp r0, #1 - bne _08058348 - bl TryPutLinkBattleTvShowOnAir -_08058348: - bl FreeAllWindowBuffers - b _080583A8 - .align 2, 0 -_08058350: .4byte gUnknown_300319C -_08058354: .4byte gUnknown_30031C4 -_08058358: .4byte gUnknown_3002360 -_0805835C: .4byte 0x00000439 -_08058360: .4byte gUnknown_3005A60 -_08058364: .4byte sub_08038A18 -_08058368: .4byte gUnknown_2023FDE -_0805836C: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080583A8 - movs r0, #0x5a - bl m4aSongNumStop - ldr r3, _080583AC - ldr r0, _080583B0 - adds r2, r3, r0 - ldrb r1, [r2] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldr r0, _080583B4 - ldr r0, [r0] - str r0, [r3] - ldr r0, _080583B8 - bl SetMainCallback2 - ldr r0, _080583BC - ldrb r0, [r0] - cmp r0, #1 - bne _080583A4 - bl TryPutLinkBattleTvShowOnAir -_080583A4: - bl FreeAllWindowBuffers -_080583A8: - pop {r0} - bx r0 - .align 2, 0 -_080583AC: .4byte gUnknown_3002360 -_080583B0: .4byte 0x00000439 -_080583B4: .4byte gUnknown_3005A60 -_080583B8: .4byte sub_08038A18 -_080583BC: .4byte gUnknown_2023FDE - thumb_func_end sub_08058308 - - thumb_func_start sub_080583C0 -sub_080583C0: @ 0x080583C0 - push {lr} - ldr r0, _080583F4 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08058442 - ldr r0, _080583F8 - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _08058420 - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08058442 - ldr r0, _080583FC - ldrb r0, [r0] - cmp r0, #0 - bne _08058400 - bl sub_0800A7F8 - b _08058404 - .align 2, 0 -_080583F4: .4byte gUnknown_2037C74 -_080583F8: .4byte gUnknown_2022C90 -_080583FC: .4byte gUnknown_300319C -_08058400: - bl sub_0800A8D4 -_08058404: - ldr r1, _08058414 - ldr r0, _08058418 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805841C - str r1, [r0] - b _08058442 - .align 2, 0 -_08058414: .4byte gUnknown_3005AC0 -_08058418: .4byte gUnknown_2023D08 -_0805841C: .4byte sub_08058308 -_08058420: - movs r0, #0x5a - bl m4aSongNumStop - ldr r2, _08058448 - ldr r0, _0805844C - adds r3, r2, r0 - ldrb r1, [r3] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3] - ldr r0, _08058450 - ldr r0, [r0] - str r0, [r2] - ldr r0, [r2, #8] - bl SetMainCallback2 -_08058442: - pop {r0} - bx r0 - .align 2, 0 -_08058448: .4byte gUnknown_3002360 -_0805844C: .4byte 0x00000439 -_08058450: .4byte gUnknown_3005A60 - thumb_func_end sub_080583C0 - - thumb_func_start sub_08058454 -sub_08058454: @ 0x08058454 - push {lr} - ldr r2, _0805847C - ldr r1, _08058480 - ldr r0, _08058484 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _08058488 - cmp r1, r0 - bne _08058478 - bl PlayerBufferExecCompleted -_08058478: - pop {r0} - bx r0 - .align 2, 0 -_0805847C: .4byte gUnknown_20205AC -_08058480: .4byte gUnknown_2023E88 -_08058484: .4byte gUnknown_2023D08 -_08058488: .4byte sub_08007140 - thumb_func_end sub_08058454 - - thumb_func_start sub_0805848C -sub_0805848C: @ 0x0805848C - push {lr} - ldr r2, _080584B4 - ldr r1, _080584B8 - ldr r0, _080584BC - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _080584C0 - cmp r1, r0 - bne _080584B0 - bl PlayerBufferExecCompleted -_080584B0: - pop {r0} - bx r0 - .align 2, 0 -_080584B4: .4byte gUnknown_20205AC -_080584B8: .4byte gUnknown_2023E88 -_080584BC: .4byte gUnknown_2023D08 -_080584C0: .4byte sub_08007140 - thumb_func_end sub_0805848C - - thumb_func_start sub_080584C4 -sub_080584C4: @ 0x080584C4 - push {r4, r5, r6, lr} - ldr r6, _08058520 - ldr r5, _08058524 - ldr r4, _08058528 - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r6, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, [r0] - ldr r0, _0805852C - cmp r1, r0 - bne _08058518 - ldr r0, _08058530 - ldr r0, [r0] - ldrb r0, [r0, #8] - bl sub_0805DBFC - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - bl FreeSpriteOamMatrix - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - bl DestroySprite - bl PlayerBufferExecCompleted -_08058518: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08058520: .4byte gUnknown_20205AC -_08058524: .4byte gUnknown_2023E88 -_08058528: .4byte gUnknown_2023D08 -_0805852C: .4byte sub_08007140 -_08058530: .4byte gUnknown_3005AF0 - thumb_func_end sub_080584C4 - - thumb_func_start sub_08058534 -sub_08058534: @ 0x08058534 - push {r4, lr} - ldr r4, _08058574 - ldr r1, [r4] - ldr r3, _08058578 - ldrb r0, [r3] - ldr r2, [r1, #4] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r0, [r1, #9] - subs r0, #1 - strb r0, [r1, #9] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _0805856C - ldr r0, [r4] - ldrb r1, [r3] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0 - strb r1, [r0, #9] - bl PlayerBufferExecCompleted -_0805856C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08058574: .4byte gUnknown_2024174 -_08058578: .4byte gUnknown_2023D08 - thumb_func_end sub_08058534 - - thumb_func_start sub_0805857C -sub_0805857C: @ 0x0805857C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - movs r7, #0 - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080585A8 - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080585E0 - ldr r0, _080585CC - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080585E0 -_080585A8: - ldr r2, _080585D0 - ldr r1, _080585D4 - ldr r3, _080585D8 - ldrb r0, [r3] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _080585DC - mov sl, r3 - cmp r1, r0 - bne _0805861A - b _0805861E - .align 2, 0 -_080585CC: .4byte gUnknown_2022C90 -_080585D0: .4byte gUnknown_20205AC -_080585D4: .4byte gUnknown_3005AD0 -_080585D8: .4byte gUnknown_2023D08 -_080585DC: .4byte sub_08007140 -_080585E0: - ldr r3, _08058728 - ldr r6, _0805872C - ldr r2, _08058730 - ldrb r4, [r2] - adds r0, r4, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r5, r3, #0 - adds r5, #0x1c - adds r0, r0, r5 - ldr r3, [r0] - ldr r0, _08058734 - mov sl, r2 - cmp r3, r0 - bne _0805861A - movs r0, #2 - eors r4, r0 - adds r0, r4, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r0, [r0] - cmp r0, r3 - bne _0805861A - movs r7, #1 -_0805861A: - cmp r7, #0 - beq _08058718 -_0805861E: - ldr r0, _08058738 - mov sb, r0 - ldr r0, [r0] - mov r6, sl - ldrb r2, [r6] - ldr r3, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r4, r0, r3 - ldrb r1, [r4, #1] - movs r5, #1 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _08058718 - movs r1, #2 - mov r8, r1 - mov r1, r8 - eors r1, r2 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0, #1] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _08058718 - ldrb r1, [r4] - movs r3, #0x7f - adds r0, r3, #0 - ands r0, r1 - strb r0, [r4] - mov r2, sb - ldr r0, [r2] - ldrb r2, [r6] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #1] - movs r4, #2 - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r2 - strb r0, [r1, #1] - mov r0, sb - ldr r2, [r0] - ldrb r0, [r6] - mov r1, r8 - eors r1, r0 - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - ands r3, r1 - strb r3, [r0] - mov r1, sb - ldr r2, [r1] - ldrb r0, [r6] - mov r1, r8 - eors r1, r0 - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #1] - ands r4, r1 - strb r4, [r0, #1] - ldr r4, _0805873C - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl FreeSpritePaletteByTag - ldr r7, _08058740 - ldrb r1, [r6] - lsls r0, r1, #1 - adds r0, r0, r7 - ldrh r0, [r0] - movs r5, #0x64 - muls r0, r5, r0 - ldr r4, _08058744 - adds r0, r0, r4 - bl HandleLowHpMusicChange - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080586F4 - ldrb r0, [r6] - mov r1, r8 - eors r1, r0 - lsls r0, r1, #1 - adds r0, r0, r7 - ldrh r0, [r0] - muls r0, r5, r0 - adds r0, r0, r4 - bl HandleLowHpMusicChange -_080586F4: - mov r2, sb - ldr r0, [r2] - mov r2, sl - ldrb r1, [r2] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #3 - strb r1, [r0, #9] - ldr r1, _08058748 - mov r2, sl - ldrb r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805874C - str r1, [r0] -_08058718: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08058728: .4byte gUnknown_20205AC -_0805872C: .4byte gUnknown_3005AD0 -_08058730: .4byte gUnknown_2023D08 -_08058734: .4byte sub_08007140 -_08058738: .4byte gUnknown_2024174 -_0805873C: .4byte 0x000027F9 -_08058740: .4byte gUnknown_2023D12 -_08058744: .4byte gUnknown_2024190 -_08058748: .4byte gUnknown_3005AC0 -_0805874C: .4byte sub_08058534 - thumb_func_end sub_0805857C - - thumb_func_start sub_08058750 -sub_08058750: @ 0x08058750 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - movs r0, #0 - mov sb, r0 - mov r8, r0 - ldr r4, _080588FC - ldr r0, [r4] - ldr r7, _08058900 - ldrb r2, [r7] - ldr r1, [r0, #4] - lsls r3, r2, #1 - adds r0, r3, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r5, #0x88 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - bne _08058790 - ldr r0, _08058904 - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _08058908 - adds r1, r1, r0 - adds r0, r2, #0 - bl sub_08172CD4 -_08058790: - ldr r1, [r4] - ldrb r0, [r7] - movs r6, #2 - adds r2, r6, #0 - eors r2, r0 - ldr r1, [r1, #4] - lsls r3, r2, #1 - adds r0, r3, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - bne _080587C2 - ldr r0, _08058904 - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _08058908 - adds r1, r1, r0 - adds r0, r2, #0 - bl sub_08172CD4 -_080587C2: - ldr r0, [r4] - ldrb r2, [r7] - ldr r3, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r4, r0, r3 - ldrb r1, [r4] - movs r5, #8 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - bne _08058892 - adds r1, r6, #0 - eors r1, r2 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - bne _08058892 - ldrb r1, [r4, #1] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08058878 - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08058848 - ldr r0, _0805890C - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08058848 - ldr r4, _08058910 - ldrb r0, [r7] - adds r1, r6, #0 - eors r1, r0 - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, _08058904 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _08058908 - adds r1, r1, r2 - movs r2, #0 - bl UpdateHealthboxAttribute - ldrb r0, [r7] - eors r0, r6 - bl sub_08076320 - ldrb r0, [r7] - eors r0, r6 - adds r0, r0, r4 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible -_08058848: - ldr r5, _08058910 - ldr r4, _08058900 - ldrb r1, [r4] - adds r0, r1, r5 - ldrb r0, [r0] - ldr r2, _08058904 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _08058908 - adds r1, r1, r2 - movs r2, #0 - bl UpdateHealthboxAttribute - ldrb r0, [r4] - bl sub_08076320 - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible -_08058878: - ldr r0, _080588FC - ldr r2, [r0] - ldr r0, _08058900 - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #1] - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0, #1] -_08058892: - ldr r5, _080588FC - ldr r0, [r5] - ldr r4, _08058900 - ldrb r2, [r4] - ldr r3, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0, #1] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0x80 - bne _08058942 - movs r1, #2 - eors r1, r2 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0, #1] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08058942 - bl IsCryPlayingOrClearCrySongs - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08058942 - ldr r0, [r5] - ldrb r1, [r4] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #1] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _08058924 - ldr r0, _0805890C - ldr r0, [r0] - movs r1, #0x42 - ands r0, r1 - cmp r0, #0x42 - bne _08058918 - ldr r0, _08058914 - bl m4aMPlayContinue - b _08058924 - .align 2, 0 -_080588FC: .4byte gUnknown_2024174 -_08058900: .4byte gUnknown_2023D08 -_08058904: .4byte gUnknown_2023D12 -_08058908: .4byte gUnknown_2024190 -_0805890C: .4byte gUnknown_2022C90 -_08058910: .4byte gUnknown_3005AD0 -_08058914: .4byte gUnknown_30074D0 -_08058918: - ldr r0, _08058998 - ldr r1, _0805899C - movs r2, #0x80 - lsls r2, r2, #1 - bl m4aMPlayVolumeControl -_08058924: - ldr r0, _080589A0 - ldr r2, [r0] - ldr r0, _080589A4 - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #1] - movs r2, #0x20 - orrs r1, r2 - strb r1, [r0, #1] - movs r0, #1 - mov sb, r0 -_08058942: - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08058962 - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080589BC - ldr r0, _080589A8 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080589BC -_08058962: - ldr r2, _080589AC - ldr r0, _080589B0 - ldr r1, _080589A4 - ldrb r4, [r1] - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r3, [r0] - ldr r0, _080589B4 - cmp r3, r0 - bne _08058A1A - ldr r0, _080589B8 - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - cmp r0, r3 - bne _08058A1A - b _08058A16 - .align 2, 0 -_08058998: .4byte gUnknown_30074D0 -_0805899C: .4byte 0x0000FFFF -_080589A0: .4byte gUnknown_2024174 -_080589A4: .4byte gUnknown_2023D08 -_080589A8: .4byte gUnknown_2022C90 -_080589AC: .4byte gUnknown_20205AC -_080589B0: .4byte gUnknown_3005ADC -_080589B4: .4byte sub_08007140 -_080589B8: .4byte gUnknown_2023E88 -_080589BC: - ldr r2, _08058AC8 - ldr r7, _08058ACC - ldr r0, _08058AD0 - ldrb r3, [r0] - adds r0, r3, r7 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r4, [r0] - ldr r0, _08058AD4 - cmp r4, r0 - bne _08058A1A - ldr r6, _08058AD8 - adds r0, r3, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r5, [r0] - cmp r5, r4 - bne _08058A1A - movs r0, #2 - eors r3, r0 - adds r0, r3, r7 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r4, [r0] - cmp r4, r5 - bne _08058A1A - adds r0, r3, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - cmp r0, r4 - bne _08058A1A -_08058A16: - movs r0, #1 - mov r8, r0 -_08058A1A: - mov r0, sb - cmp r0, #0 - beq _08058ABA - mov r0, r8 - cmp r0, #0 - beq _08058ABA - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08058A58 - ldr r0, _08058ADC - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08058A58 - ldr r2, _08058ACC - ldr r0, _08058AD0 - ldrb r1, [r0] - movs r0, #2 - eors r0, r1 - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08058AC8 - adds r0, r0, r1 - bl DestroySprite -_08058A58: - ldr r1, _08058ACC - ldr r4, _08058AD0 - ldrb r0, [r4] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08058AC8 - adds r0, r0, r1 - bl DestroySprite - ldr r3, _08058AE0 - ldr r0, [r3] - ldr r2, [r0, #8] - ldrb r1, [r2, #9] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #9] - ldr r0, [r3] - ldrb r2, [r4] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #1] - movs r0, #0x21 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #1] - ldr r0, [r3] - ldrb r2, [r4] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #1] - movs r0, #0x7f - ands r0, r2 - strb r0, [r1, #1] - ldr r1, _08058AE4 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08058AE8 - str r1, [r0] -_08058ABA: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08058AC8: .4byte gUnknown_20205AC -_08058ACC: .4byte gUnknown_3005ADC -_08058AD0: .4byte gUnknown_2023D08 -_08058AD4: .4byte sub_08007140 -_08058AD8: .4byte gUnknown_2023E88 -_08058ADC: .4byte gUnknown_2022C90 -_08058AE0: .4byte gUnknown_2024174 -_08058AE4: .4byte gUnknown_3005AC0 -_08058AE8: .4byte sub_0805857C - thumb_func_end sub_08058750 - - thumb_func_start sub_08058AEC -sub_08058AEC: @ 0x08058AEC - push {r4, r5, r6, lr} - ldr r2, _08058BAC - ldr r0, _08058BB0 - ldr r6, _08058BB4 - ldrb r3, [r6] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r4, [r0] - ldr r0, _08058BB8 - cmp r4, r0 - bne _08058BA4 - ldr r5, _08058BBC - ldr r0, [r5] - ldr r1, [r0, #4] - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #1] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08058BA4 - ldr r0, _08058BC0 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - cmp r0, r4 - bne _08058BA4 - adds r0, r3, #0 - bl CopyBattleSpriteInvisibility - ldr r0, [r5] - ldrb r2, [r6] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #0x7f - ands r0, r2 - strb r0, [r1] - ldr r0, [r5] - ldrb r2, [r6] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #1] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #1] - ldr r4, _08058BC4 - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl FreeSpritePaletteByTag - ldr r0, [r5] - ldrb r2, [r6] - ldr r1, [r0] - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08058B98 - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #6 - bl InitAndLaunchSpecialAnimation -_08058B98: - ldr r0, _08058BC8 - ldrb r1, [r6] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, _08058BCC - str r0, [r1] -_08058BA4: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08058BAC: .4byte gUnknown_20205AC -_08058BB0: .4byte gUnknown_3005AD0 -_08058BB4: .4byte gUnknown_2023D08 -_08058BB8: .4byte sub_08007140 -_08058BBC: .4byte gUnknown_2024174 -_08058BC0: .4byte gUnknown_2023E88 -_08058BC4: .4byte 0x000027F9 -_08058BC8: .4byte gUnknown_3005AC0 -_08058BCC: .4byte sub_08058BD0 - thumb_func_end sub_08058AEC - - thumb_func_start sub_08058BD0 -sub_08058BD0: @ 0x08058BD0 - push {r4, lr} - ldr r0, _08058C24 - ldr r0, [r0] - ldr r4, _08058C28 - ldrb r1, [r4] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08058C1E - bl IsCryPlayingOrClearCrySongs - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08058C1E - ldr r0, _08058C2C - ldr r1, _08058C30 - movs r2, #0x80 - lsls r2, r2, #1 - bl m4aMPlayVolumeControl - ldr r2, _08058C34 - ldrb r1, [r4] - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r2, [r0] - movs r0, #0x64 - muls r0, r2, r0 - ldr r2, _08058C38 - adds r0, r0, r2 - bl HandleLowHpMusicChange - bl PlayerBufferExecCompleted -_08058C1E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08058C24: .4byte gUnknown_2024174 -_08058C28: .4byte gUnknown_2023D08 -_08058C2C: .4byte gUnknown_30074D0 -_08058C30: .4byte 0x0000FFFF -_08058C34: .4byte gUnknown_2023D12 -_08058C38: .4byte gUnknown_2024190 - thumb_func_end sub_08058BD0 - - thumb_func_start sub_08058C3C -sub_08058C3C: @ 0x08058C3C - push {r4, r5, r6, lr} - ldr r6, _08058CE8 - ldr r0, [r6] - ldr r5, _08058CEC - ldrb r2, [r5] - ldr r1, [r0, #4] - lsls r3, r2, #1 - adds r0, r3, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x88 - ands r0, r1 - cmp r0, #0 - bne _08058C6E - ldr r0, _08058CF0 - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _08058CF4 - adds r1, r1, r0 - adds r0, r2, #0 - bl sub_08172CD4 -_08058C6E: - ldr r4, _08058CF8 - ldr r0, _08058CFC - ldrb r2, [r5] - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r3, r0, #2 - adds r0, r4, #0 - adds r0, #0x1c - adds r0, r3, r0 - ldr r1, [r0] - ldr r0, _08058D00 - cmp r1, r0 - bne _08058CE2 - ldr r0, [r6] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - bne _08058CE2 - adds r0, r3, r4 - bl DestroySprite - ldr r4, _08058D04 - ldrb r1, [r5] - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, _08058CF0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _08058CF4 - adds r1, r1, r2 - movs r2, #0 - bl UpdateHealthboxAttribute - ldrb r0, [r5] - bl sub_08076320 - ldrb r0, [r5] - adds r0, r0, r4 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible - ldr r1, _08058D08 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08058D0C - str r1, [r0] -_08058CE2: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08058CE8: .4byte gUnknown_2024174 -_08058CEC: .4byte gUnknown_2023D08 -_08058CF0: .4byte gUnknown_2023D12 -_08058CF4: .4byte gUnknown_2024190 -_08058CF8: .4byte gUnknown_20205AC -_08058CFC: .4byte gUnknown_3005ADC -_08058D00: .4byte sub_08007140 -_08058D04: .4byte gUnknown_3005AD0 -_08058D08: .4byte gUnknown_3005AC0 -_08058D0C: .4byte sub_08058AEC - thumb_func_end sub_08058C3C - - thumb_func_start sub_08058D10 -sub_08058D10: @ 0x08058D10 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl IsCryPlayingOrClearCrySongs - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08058D32 - ldr r0, _08058D38 - ldr r1, _08058D3C - movs r2, #0x80 - lsls r2, r2, #1 - bl m4aMPlayVolumeControl - adds r0, r4, #0 - bl DestroyTask -_08058D32: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08058D38: .4byte gUnknown_30074D0 -_08058D3C: .4byte 0x0000FFFF - thumb_func_end sub_08058D10 - - thumb_func_start sub_08058D40 -sub_08058D40: @ 0x08058D40 - push {r4, r5, r6, lr} - ldr r5, _08058D80 - ldrb r0, [r5] - ldr r6, _08058D84 - adds r1, r0, r6 - ldrb r1, [r1] - movs r2, #0 - movs r3, #0 - bl MoveBattleBar - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible - lsls r4, r4, #0x10 - asrs r1, r4, #0x10 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _08058D88 - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r0, [r0] - movs r2, #0 - bl sub_080726F4 - b _08058DA2 - .align 2, 0 -_08058D80: .4byte gUnknown_2023D08 -_08058D84: .4byte gUnknown_3005AD0 -_08058D88: - ldr r2, _08058DA8 - ldrb r1, [r5] - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r2, [r0] - movs r0, #0x64 - muls r0, r2, r0 - ldr r2, _08058DAC - adds r0, r0, r2 - bl HandleLowHpMusicChange - bl PlayerBufferExecCompleted -_08058DA2: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08058DA8: .4byte gUnknown_2023D12 -_08058DAC: .4byte gUnknown_2024190 - thumb_func_end sub_08058D40 - - thumb_func_start sub_08058DB0 -sub_08058DB0: @ 0x08058DB0 - push {lr} - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08058DC2 - bl PlayerBufferExecCompleted -_08058DC2: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08058DB0 - - thumb_func_start sub_08058DC8 -sub_08058DC8: @ 0x08058DC8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldr r1, _08058EC8 - lsls r0, r0, #2 - add r0, sb - lsls r0, r0, #3 - adds r0, r0, r1 - mov r8, r0 - ldrb r0, [r0, #8] - mov sl, r0 - mov r1, r8 - ldrb r7, [r1, #0xc] - str r7, [sp, #8] - ldrh r2, [r1, #0xa] - str r2, [sp, #0xc] - bl IsDoubleBattle - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08058E0E - ldr r1, _08058ECC - lsls r0, r7, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp sl, r0 - bne _08058E0E - b _08058F24 -_08058E0E: - movs r0, #0x64 - mov r1, sl - muls r1, r0, r1 - ldr r0, _08058ED0 - adds r6, r1, r0 - adds r0, r6, #0 - movs r1, #0xb - bl GetMonData - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - adds r0, r6, #0 - movs r1, #0x38 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r6, #0 - movs r1, #0x19 - bl GetMonData - str r0, [sp, #4] - ldr r3, _08058ED4 - adds r4, #1 - lsls r4, r4, #2 - ldr r2, _08058ED8 - lsls r1, r5, #3 - subs r1, r1, r5 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r2, [r1, #0x13] - movs r1, #0xca - lsls r1, r1, #1 - muls r1, r2, r1 - adds r4, r4, r1 - adds r4, r4, r3 - ldr r2, [r4] - str r2, [sp] - ldr r3, [sp, #0xc] - lsls r1, r3, #0x10 - asrs r1, r1, #0x10 - adds r0, r0, r1 - cmp r0, r2 - blo _08058EFC - adds r0, r6, #0 - movs r1, #0x19 - mov r2, sp - bl SetMonData - adds r0, r6, #0 - bl CalculateMonStats - ldr r2, [sp] - add r0, sp, #4 - ldrh r0, [r0] - subs r2, r2, r0 - ldr r0, [sp, #0xc] - subs r2, r0, r2 - ldr r4, _08058EDC - ldrb r5, [r4] - strb r7, [r4] - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - movs r0, #1 - movs r1, #0xb - bl BtlController_EmitTwoReturnValues - strb r5, [r4] - bl IsDoubleBattle - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08058EE4 - ldr r2, _08058ECC - lsls r0, r7, #1 - adds r0, r0, r2 - mov r1, sl - ldrh r0, [r0] - cmp r1, r0 - beq _08058EC2 - movs r0, #2 - eors r7, r0 - lsls r0, r7, #1 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r1, r0 - bne _08058EE4 -_08058EC2: - ldr r0, _08058EE0 - b _08058F26 - .align 2, 0 -_08058EC8: .4byte gUnknown_3005B60 -_08058ECC: .4byte gUnknown_2023D12 -_08058ED0: .4byte gUnknown_2024190 -_08058ED4: .4byte gUnknown_82F00B4 -_08058ED8: .4byte gUnknown_82F0D54 -_08058EDC: .4byte gUnknown_2023D08 -_08058EE0: .4byte Task_LaunchLvlUpAnim -_08058EE4: - ldr r0, _08058EF4 - mov r2, sb - lsls r1, r2, #2 - add r1, sb - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _08058EF8 - b _08058F28 - .align 2, 0 -_08058EF4: .4byte gUnknown_3005B60 -_08058EF8: .4byte DestroyExpTaskAndCompleteOnInactiveTextPrinter -_08058EFC: - str r0, [sp, #4] - add r2, sp, #4 - adds r0, r6, #0 - movs r1, #0x19 - bl SetMonData - ldr r1, _08058F1C - ldr r3, [sp, #8] - lsls r0, r3, #2 - adds r0, r0, r1 - ldr r1, _08058F20 - str r1, [r0] - mov r0, sb - bl DestroyTask - b _08058F2A - .align 2, 0 -_08058F1C: .4byte gUnknown_3005AC0 -_08058F20: .4byte sub_08058DB0 -_08058F24: - ldr r0, _08058F3C -_08058F26: - mov r1, r8 -_08058F28: - str r0, [r1] -_08058F2A: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08058F3C: .4byte Task_PrepareToGiveExpWithExpBar - thumb_func_end sub_08058DC8 - - thumb_func_start Task_PrepareToGiveExpWithExpBar -Task_PrepareToGiveExpWithExpBar: @ 0x08058F40 - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08058FF8 - lsls r2, r0, #2 - mov r8, r2 - add r8, r0 - mov r0, r8 - lsls r0, r0, #3 - mov r8, r0 - add r8, r1 - mov r2, r8 - ldrb r1, [r2, #8] - movs r0, #0xa - ldrsh r2, [r2, r0] - mov sb, r2 - mov r2, r8 - ldrb r2, [r2, #0xc] - mov sl, r2 - movs r0, #0x64 - adds r6, r1, #0 - muls r6, r0, r6 - ldr r0, _08058FFC - adds r6, r6, r0 - adds r0, r6, #0 - movs r1, #0x38 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r6, #0 - movs r1, #0xb - bl GetMonData - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - adds r0, r6, #0 - movs r1, #0x19 - bl GetMonData - adds r3, r0, #0 - ldr r6, _08059000 - lsls r1, r4, #2 - ldr r2, _08059004 - lsls r0, r5, #3 - subs r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r2, [r0, #0x13] - movs r0, #0xca - lsls r0, r0, #1 - muls r0, r2, r0 - adds r1, r1, r0 - adds r1, r1, r6 - ldr r1, [r1] - subs r3, r3, r1 - adds r4, #1 - lsls r4, r4, #2 - adds r4, r4, r0 - adds r4, r4, r6 - ldr r2, [r4] - subs r2, r2, r1 - ldr r0, _08059008 - add r0, sl - ldrb r1, [r0] - mov r0, sb - rsbs r0, r0, #0 - str r0, [sp] - mov r0, sl - bl SetBattleBarStruct - movs r0, #0x21 - bl sub_080A306C - ldr r0, _0805900C - mov r1, r8 - str r0, [r1] - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08058FF8: .4byte gUnknown_3005B60 -_08058FFC: .4byte gUnknown_2024190 -_08059000: .4byte gUnknown_82F00B4 -_08059004: .4byte gUnknown_82F0D54 -_08059008: .4byte gUnknown_3005AD0 -_0805900C: .4byte sub_08059010 - thumb_func_end Task_PrepareToGiveExpWithExpBar - - thumb_func_start sub_08059010 -sub_08059010: @ 0x08059010 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r1, _0805903C - lsls r0, r0, #2 - add r0, r8 - lsls r0, r0, #3 - adds r6, r0, r1 - ldrh r1, [r6, #0x1c] - movs r2, #0x1c - ldrsh r0, [r6, r2] - cmp r0, #0xc - bgt _08059040 - adds r0, r1, #1 - strh r0, [r6, #0x1c] - b _0805913C - .align 2, 0 -_0805903C: .4byte gUnknown_3005B60 -_08059040: - ldrb r0, [r6, #8] - mov sb, r0 - ldrh r2, [r6, #0xa] - mov sl, r2 - ldrb r7, [r6, #0xc] - ldr r5, _08059108 - adds r5, r7, r5 - ldrb r1, [r5] - adds r0, r7, #0 - movs r2, #1 - movs r3, #0 - bl MoveBattleBar - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldrb r0, [r5] - bl SetHealthboxSpriteVisible - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - movs r0, #1 - rsbs r0, r0, #0 - cmp r4, r0 - bne _0805913C - movs r0, #0x21 - bl m4aSongNumStop - movs r0, #0x64 - mov r1, sb - muls r1, r0, r1 - ldr r0, _0805910C - adds r5, r1, r0 - adds r0, r5, #0 - movs r1, #0x38 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - movs r1, #0x19 - bl GetMonData - str r0, [sp, #4] - adds r0, r5, #0 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r3, _08059110 - adds r4, #1 - lsls r4, r4, #2 - ldr r2, _08059114 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r1, [r1, #0x13] - movs r0, #0xca - lsls r0, r0, #1 - muls r0, r1, r0 - adds r4, r4, r0 - adds r4, r4, r3 - ldr r1, [r4] - str r1, [sp] - mov r2, sl - lsls r0, r2, #0x10 - asrs r4, r0, #0x10 - ldr r0, [sp, #4] - adds r0, r0, r4 - cmp r0, r1 - blt _08059120 - adds r0, r5, #0 - movs r1, #0x19 - mov r2, sp - bl SetMonData - adds r0, r5, #0 - bl CalculateMonStats - ldr r2, [sp] - add r0, sp, #4 - ldrh r0, [r0] - subs r2, r2, r0 - subs r2, r4, r2 - ldr r4, _08059118 - ldrb r5, [r4] - strb r7, [r4] - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - movs r0, #1 - movs r1, #0xb - bl BtlController_EmitTwoReturnValues - strb r5, [r4] - ldr r0, _0805911C - str r0, [r6] - b _0805913C - .align 2, 0 -_08059108: .4byte gUnknown_3005AD0 -_0805910C: .4byte gUnknown_2024190 -_08059110: .4byte gUnknown_82F00B4 -_08059114: .4byte gUnknown_82F0D54 -_08059118: .4byte gUnknown_2023D08 -_0805911C: .4byte Task_LaunchLvlUpAnim -_08059120: - str r0, [sp, #4] - add r2, sp, #4 - adds r0, r5, #0 - movs r1, #0x19 - bl SetMonData - ldr r1, _0805914C - lsls r0, r7, #2 - adds r0, r0, r1 - ldr r1, _08059150 - str r1, [r0] - mov r0, r8 - bl DestroyTask -_0805913C: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805914C: .4byte gUnknown_3005AC0 -_08059150: .4byte sub_08058DB0 - thumb_func_end sub_08059010 - - thumb_func_start Task_LaunchLvlUpAnim -Task_LaunchLvlUpAnim: @ 0x08059154 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _080591A8 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r4, [r0, #0xc] - ldrb r6, [r0, #8] - bl IsDoubleBattle - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08059188 - ldr r1, _080591AC - movs r0, #2 - adds r2, r4, #0 - eors r2, r0 - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r6, r0 - bne _08059188 - adds r4, r2, #0 -_08059188: - adds r0, r4, #0 - adds r1, r4, #0 - adds r2, r4, #0 - movs r3, #0 - bl InitAndLaunchSpecialAnimation - ldr r0, _080591A8 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080591B0 - str r0, [r1] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080591A8: .4byte gUnknown_3005B60 -_080591AC: .4byte gUnknown_2023D12 -_080591B0: .4byte Task_UpdateLvlInHealthbox - thumb_func_end Task_LaunchLvlUpAnim - - thumb_func_start Task_UpdateLvlInHealthbox -Task_UpdateLvlInHealthbox: @ 0x080591B4 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _08059220 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r2, r0, r1 - ldrb r5, [r2, #0xc] - ldr r0, _08059224 - ldr r0, [r0] - ldr r1, [r0, #4] - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08059256 - ldrb r4, [r2, #8] - movs r0, #0x64 - adds r1, r4, #0 - muls r1, r0, r1 - ldr r0, _08059228 - adds r7, r1, r0 - adds r0, r7, #0 - movs r1, #0x38 - bl GetMonData - bl IsDoubleBattle - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08059234 - ldr r1, _0805922C - movs r0, #2 - adds r2, r5, #0 - eors r2, r0 - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r4, r0 - bne _08059234 - ldr r0, _08059230 - adds r0, r2, r0 - ldrb r0, [r0] - adds r1, r7, #0 - movs r2, #0 - bl UpdateHealthboxAttribute - b _08059248 - .align 2, 0 -_08059220: .4byte gUnknown_3005B60 -_08059224: .4byte gUnknown_2024174 -_08059228: .4byte gUnknown_2024190 -_0805922C: .4byte gUnknown_2023D12 -_08059230: .4byte gUnknown_3005AD0 -_08059234: - ldr r0, _0805925C - adds r0, r5, r0 - ldrb r0, [r0] - movs r1, #0x64 - muls r1, r4, r1 - ldr r2, _08059260 - adds r1, r1, r2 - movs r2, #0 - bl UpdateHealthboxAttribute -_08059248: - ldr r0, _08059264 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _08059268 - str r0, [r1] -_08059256: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805925C: .4byte gUnknown_3005AD0 -_08059260: .4byte gUnknown_2024190 -_08059264: .4byte gUnknown_3005B60 -_08059268: .4byte DestroyExpTaskAndCompleteOnInactiveTextPrinter - thumb_func_end Task_UpdateLvlInHealthbox - - thumb_func_start DestroyExpTaskAndCompleteOnInactiveTextPrinter -DestroyExpTaskAndCompleteOnInactiveTextPrinter: @ 0x0805926C - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _080592A8 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - adds r4, r4, r0 - ldrb r1, [r4, #8] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080592AC - adds r0, r0, r1 - movs r1, #0x38 - bl GetMonData - ldrb r0, [r4, #0xc] - ldr r1, _080592B0 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _080592B4 - str r1, [r0] - adds r0, r5, #0 - bl DestroyTask - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080592A8: .4byte gUnknown_3005B60 -_080592AC: .4byte gUnknown_2024190 -_080592B0: .4byte gUnknown_3005AC0 -_080592B4: .4byte sub_08058DB0 - thumb_func_end DestroyExpTaskAndCompleteOnInactiveTextPrinter - - thumb_func_start sub_080592B8 -sub_080592B8: @ 0x080592B8 - push {r4, r5, r6, lr} - ldr r6, _0805933C - ldr r5, _08059340 - ldr r4, _08059344 - ldrb r2, [r4] - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r3, #0x22 - ldrsh r1, [r0, r3] - movs r3, #0x26 - ldrsh r0, [r0, r3] - adds r1, r1, r0 - cmp r1, #0xa0 - ble _08059334 - ldr r1, _08059348 - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0805934C - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_0805DB50 - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r0, [r0, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - bl DestroySprite - ldr r1, _08059350 - ldrb r0, [r4] - adds r0, r0, r1 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible - bl PlayerBufferExecCompleted -_08059334: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0805933C: .4byte gUnknown_20205AC -_08059340: .4byte gUnknown_2023E88 -_08059344: .4byte gUnknown_2023D08 -_08059348: .4byte gUnknown_2023D12 -_0805934C: .4byte gUnknown_2024190 -_08059350: .4byte gUnknown_3005AD0 - thumb_func_end sub_080592B8 - - thumb_func_start sub_08059354 -sub_08059354: @ 0x08059354 - push {r4, r5, r6, lr} - ldr r0, _080593B0 - ldr r0, [r0] - ldr r6, _080593B4 - ldrb r2, [r6] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _080593A8 - ldr r5, _080593B8 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _080593BC - adds r0, r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - ldr r1, _080593C0 - ldrb r0, [r6] - adds r0, r0, r1 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible - bl PlayerBufferExecCompleted -_080593A8: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080593B0: .4byte gUnknown_2024174 -_080593B4: .4byte gUnknown_2023D08 -_080593B8: .4byte gUnknown_2023E88 -_080593BC: .4byte gUnknown_20205AC -_080593C0: .4byte gUnknown_3005AD0 - thumb_func_end sub_08059354 - - thumb_func_start sub_080593C4 -sub_080593C4: @ 0x080593C4 - push {lr} - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080593D6 - bl PlayerBufferExecCompleted -_080593D6: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080593C4 - - thumb_func_start OpenPartyMenuToChooseMon -OpenPartyMenuToChooseMon: @ 0x080593DC - push {r4, lr} - ldr r0, _08059420 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0805941A - ldr r1, _08059424 - ldr r2, _08059428 - ldrb r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805942C - str r1, [r0] - ldr r3, _08059430 - ldr r1, _08059434 - ldrb r0, [r2] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r3 - ldrb r4, [r1, #8] - bl DestroyTask - bl FreeAllWindowBuffers - adds r0, r4, #0 - bl OpenPartyMenuInBattle -_0805941A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08059420: .4byte gUnknown_2037C74 -_08059424: .4byte gUnknown_3005AC0 -_08059428: .4byte gUnknown_2023D08 -_0805942C: .4byte WaitForMonSelection -_08059430: .4byte gUnknown_3005B60 -_08059434: .4byte gUnknown_3005ADC - thumb_func_end OpenPartyMenuToChooseMon - - thumb_func_start WaitForMonSelection -WaitForMonSelection: @ 0x08059438 - push {lr} - ldr r0, _08059468 - ldr r1, [r0, #4] - ldr r0, _0805946C - cmp r1, r0 - bne _080594A8 - ldr r0, _08059470 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080594A8 - ldr r0, _08059474 - ldrb r0, [r0] - cmp r0, #1 - bne _08059480 - ldr r0, _08059478 - ldrb r1, [r0] - ldr r2, _0805947C - movs r0, #1 - bl BtlController_EmitChosenMonReturnValue - b _0805948A - .align 2, 0 -_08059468: .4byte gUnknown_3002360 -_0805946C: .4byte BattleMainCB2 -_08059470: .4byte gUnknown_2037C74 -_08059474: .4byte gUnknown_203CBB4 -_08059478: .4byte gUnknown_203CBB5 -_0805947C: .4byte gUnknown_203CBCC -_08059480: - movs r0, #1 - movs r1, #6 - movs r2, #0 - bl BtlController_EmitChosenMonReturnValue -_0805948A: - ldr r1, _080594AC - ldr r0, _080594B0 - ldrb r0, [r0] - lsls r0, r0, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - bne _080594A4 - bl PrintLinkStandbyMsg -_080594A4: - bl PlayerBufferExecCompleted -_080594A8: - pop {r0} - bx r0 - .align 2, 0 -_080594AC: .4byte gUnknown_2022D08 -_080594B0: .4byte gUnknown_2023D08 - thumb_func_end WaitForMonSelection - - thumb_func_start OpenBagAndChooseItem -OpenBagAndChooseItem: @ 0x080594B4 - push {lr} - ldr r0, _080594E0 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080594DC - ldr r1, _080594E4 - ldr r0, _080594E8 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _080594EC - str r1, [r0] - bl sub_080A8BBC - bl FreeAllWindowBuffers - bl sub_081AA928 -_080594DC: - pop {r0} - bx r0 - .align 2, 0 -_080594E0: .4byte gUnknown_2037C74 -_080594E4: .4byte gUnknown_3005AC0 -_080594E8: .4byte gUnknown_2023D08 -_080594EC: .4byte CompleteWhenChoseItem - thumb_func_end OpenBagAndChooseItem - - thumb_func_start CompleteWhenChoseItem -CompleteWhenChoseItem: @ 0x080594F0 - push {lr} - ldr r0, _0805951C - ldr r1, [r0, #4] - ldr r0, _08059520 - cmp r1, r0 - bne _08059516 - ldr r0, _08059524 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08059516 - ldr r0, _08059528 - ldrh r1, [r0] - movs r0, #1 - bl BtlController_EmitOneReturnValue - bl PlayerBufferExecCompleted -_08059516: - pop {r0} - bx r0 - .align 2, 0 -_0805951C: .4byte gUnknown_3002360 -_08059520: .4byte BattleMainCB2 -_08059524: .4byte gUnknown_2037C74 -_08059528: .4byte gUnknown_203CB48 - thumb_func_end CompleteWhenChoseItem - - thumb_func_start sub_0805952C -sub_0805952C: @ 0x0805952C - push {lr} - ldr r0, _0805955C - ldrb r0, [r0] - cmp r0, #0 - beq _08059552 - ldr r0, _08059560 - ldr r2, [r0] - ldr r0, _08059564 - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08059556 -_08059552: - bl PlayerBufferExecCompleted -_08059556: - pop {r0} - bx r0 - .align 2, 0 -_0805955C: .4byte gUnknown_202415D -_08059560: .4byte gUnknown_2024174 -_08059564: .4byte gUnknown_2023D08 - thumb_func_end sub_0805952C - - thumb_func_start sub_08059568 -sub_08059568: @ 0x08059568 - push {r4, lr} - ldr r1, _080595A4 - ldr r0, _080595A8 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - ldr r2, _080595AC - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, r0, r2 - movs r1, #0x30 - ldrsh r0, [r4, r1] - cmp r0, #0x20 - bne _080595B4 - movs r3, #0 - movs r0, #0 - strh r0, [r4, #0x30] - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - subs r0, #5 - ands r0, r1 - strb r0, [r2] - ldr r0, _080595B0 - strb r3, [r0] - bl PlayerBufferExecCompleted - b _080595DE - .align 2, 0 -_080595A4: .4byte gUnknown_2023E88 -_080595A8: .4byte gUnknown_2023D08 -_080595AC: .4byte gUnknown_20205AC -_080595B0: .4byte gUnknown_202415D -_080595B4: - ldrh r0, [r4, #0x30] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _080595D8 - adds r3, r4, #0 - adds r3, #0x3e - ldrb r2, [r3] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080595D8: - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] -_080595DE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08059568 - - thumb_func_start PlayerHandleUnknownYesNoInput -PlayerHandleUnknownYesNoInput: @ 0x080595E4 - push {r4, lr} - sub sp, #4 - ldr r0, _08059674 - ldrh r1, [r0, #0x2e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08059612 - ldr r4, _08059678 - ldrb r0, [r4] - cmp r0, #0 - beq _08059612 - movs r0, #5 - bl sub_080A306C - ldrb r0, [r4] - bl BattleDestroyYesNoCursorAt - movs r0, #0 - strb r0, [r4] - movs r0, #0 - bl BattleCreateYesNoCursorAt -_08059612: - ldr r0, _08059674 - ldrh r1, [r0, #0x2e] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0805963C - ldr r4, _08059678 - ldrb r0, [r4] - cmp r0, #0 - bne _0805963C - movs r0, #5 - bl sub_080A306C - ldrb r0, [r4] - bl BattleDestroyYesNoCursorAt - movs r0, #1 - strb r0, [r4] - movs r0, #1 - bl BattleCreateYesNoCursorAt -_0805963C: - ldr r0, _08059674 - ldrh r1, [r0, #0x2e] - movs r2, #1 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0805968A - str r2, [sp] - movs r0, #0x18 - movs r1, #8 - movs r2, #0x1d - movs r3, #0xd - bl HandleBattleWindow - movs r0, #5 - bl sub_080A306C - ldr r0, _08059678 - ldrb r0, [r0] - cmp r0, #0 - beq _0805967C - movs r0, #1 - movs r1, #0xe - movs r2, #0 - bl BtlController_EmitTwoReturnValues - b _08059686 - .align 2, 0 -_08059674: .4byte gUnknown_3002360 -_08059678: .4byte gUnknown_3005AD4 -_0805967C: - movs r0, #1 - movs r1, #0xd - movs r2, #0 - bl BtlController_EmitTwoReturnValues -_08059686: - bl PlayerBufferExecCompleted -_0805968A: - ldr r0, _080596B8 - ldrh r1, [r0, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080596B0 - movs r0, #1 - str r0, [sp] - movs r0, #0x18 - movs r1, #8 - movs r2, #0x1d - movs r3, #0xd - bl HandleBattleWindow - movs r0, #5 - bl sub_080A306C - bl PlayerBufferExecCompleted -_080596B0: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080596B8: .4byte gUnknown_3002360 - thumb_func_end PlayerHandleUnknownYesNoInput - - thumb_func_start sub_080596BC -sub_080596BC: @ 0x080596BC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _08059720 - ldrb r1, [r0] - lsls r1, r1, #9 - ldr r3, _08059724 - ldr r2, _08059728 - movs r0, #0 - strb r0, [r2] - movs r5, #0 - ldr r0, _0805972C - mov r8, r0 - adds r4, r1, r3 - adds r7, r2, #0 - movs r6, #0xc0 - lsls r6, r6, #0x12 -_080596DE: - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - bl sub_08059884 - ldrh r1, [r4] - lsls r1, r1, #3 - ldr r0, _08059730 - adds r1, r1, r0 - mov r0, r8 - bl StringCopy - lsrs r1, r6, #0x18 - mov r0, r8 - bl sub_0814FA04 - ldrh r0, [r4] - cmp r0, #0 - beq _08059708 - ldrb r0, [r7] - adds r0, #1 - strb r0, [r7] -_08059708: - adds r4, #2 - movs r0, #0x80 - lsls r0, r0, #0x11 - adds r6, r6, r0 - adds r5, #1 - cmp r5, #3 - ble _080596DE - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08059720: .4byte gUnknown_2023D08 -_08059724: .4byte gUnknown_2022D0C -_08059728: .4byte gUnknown_3005AD8 -_0805972C: .4byte gUnknown_2022AE0 -_08059730: .4byte gUnknown_82EACC4 - thumb_func_end sub_080596BC - - thumb_func_start sub_08059734 -sub_08059734: @ 0x08059734 - push {r4, lr} - ldr r4, _08059760 - ldr r1, _08059764 - adds r0, r4, #0 - bl StringCopy - adds r0, r4, #0 - movs r1, #7 - bl sub_0814FA04 - ldr r1, _08059768 - adds r0, r4, #0 - bl StringCopy - adds r0, r4, #0 - movs r1, #8 - bl sub_0814FA04 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08059760: .4byte gUnknown_2022AE0 -_08059764: .4byte gUnknown_85ABB9B -_08059768: .4byte gUnknown_85ABBA1 - thumb_func_end sub_08059734 - - thumb_func_start MoveSelectionDisplayPpNumber -MoveSelectionDisplayPpNumber: @ 0x0805976C - push {r4, r5, r6, r7, lr} - ldr r5, _080597D0 - ldr r7, _080597D4 - ldrb r0, [r7] - lsls r0, r0, #9 - adds r1, r5, #2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - beq _080597C8 - bl sub_0814FB80 - ldrb r1, [r7] - lsls r4, r1, #9 - adds r0, r5, #4 - adds r4, r4, r0 - ldr r6, _080597D8 - ldr r5, _080597DC - adds r1, r1, r5 - adds r0, r4, #0 - adds r0, #8 - ldrb r1, [r1] - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r6, #0 - movs r2, #1 - movs r3, #2 - bl sub_080089D8 - movs r1, #0xba - strb r1, [r0] - adds r0, #1 - ldrb r1, [r7] - adds r1, r1, r5 - adds r4, #0xc - ldrb r1, [r1] - adds r4, r4, r1 - ldrb r1, [r4] - movs r2, #1 - movs r3, #2 - bl sub_080089D8 - adds r0, r6, #0 - movs r1, #9 - bl sub_0814FA04 -_080597C8: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080597D0: .4byte gUnknown_2022D08 -_080597D4: .4byte gUnknown_2023D08 -_080597D8: .4byte gUnknown_2022AE0 -_080597DC: .4byte gUnknown_2024154 - thumb_func_end MoveSelectionDisplayPpNumber - - thumb_func_start sub_080597E0 -sub_080597E0: @ 0x080597E0 - push {r4, lr} - ldr r0, _08059824 - ldrb r1, [r0] - lsls r2, r1, #9 - ldr r0, _08059828 - adds r2, r2, r0 - ldr r4, _0805982C - ldr r3, _08059830 - ldr r0, _08059834 - adds r1, r1, r0 - ldrb r0, [r1] - lsls r0, r0, #1 - adds r2, r2, r0 - ldrh r1, [r2] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r0, [r0, #2] - lsls r1, r0, #2 - adds r1, r1, r0 - ldr r0, _08059838 - adds r1, r1, r0 - adds r0, r4, #0 - bl StringCopy - adds r0, r4, #0 - movs r1, #0xa - bl sub_0814FA04 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08059824: .4byte gUnknown_2023D08 -_08059828: .4byte gUnknown_2022D0C -_0805982C: .4byte gUnknown_2022AE0 -_08059830: .4byte gUnknown_82ED220 -_08059834: .4byte gUnknown_2024154 -_08059838: .4byte gUnknown_82EBC88 - thumb_func_end sub_080597E0 - - thumb_func_start MoveSelectionCreateCursorAt -MoveSelectionCreateCursorAt: @ 0x0805983C - push {lr} - sub sp, #0x10 - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - add r2, sp, #0xc - adds r0, r1, #1 - strh r0, [r2] - adds r0, r2, #0 - adds r1, #2 - strh r1, [r0, #2] - movs r1, #1 - adds r2, r3, #0 - ands r2, r1 - lsls r2, r2, #3 - adds r2, #1 - movs r0, #2 - ands r3, r0 - adds r3, #0x37 - str r1, [sp] - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #0 - add r1, sp, #0xc - bl CopyToBgTilemapBufferRect_ChangePalette - movs r0, #0 - bl CopyBgTilemapBufferToVram - add sp, #0x10 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end MoveSelectionCreateCursorAt - - thumb_func_start sub_08059884 -sub_08059884: @ 0x08059884 - push {lr} - sub sp, #0x10 - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - add r0, sp, #0xc - ldr r1, _080598C4 - strh r1, [r0] - strh r1, [r0, #2] - movs r1, #1 - adds r2, r3, #0 - ands r2, r1 - lsls r2, r2, #3 - adds r2, #1 - movs r0, #2 - ands r3, r0 - adds r3, #0x37 - str r1, [sp] - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #0 - add r1, sp, #0xc - bl CopyToBgTilemapBufferRect_ChangePalette - movs r0, #0 - bl CopyBgTilemapBufferToVram - add sp, #0x10 - pop {r0} - bx r0 - .align 2, 0 -_080598C4: .4byte 0x00001016 - thumb_func_end sub_08059884 - - thumb_func_start ActionSelectionCreateCursorAt -ActionSelectionCreateCursorAt: @ 0x080598C8 - push {r4, lr} - sub sp, #0x10 - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - add r0, sp, #0xc - movs r4, #1 - strh r4, [r0] - movs r1, #2 - strh r1, [r0, #2] - adds r0, r3, #0 - ands r0, r4 - lsls r2, r0, #1 - adds r2, r2, r0 - lsls r2, r2, #0x19 - movs r0, #0x90 - lsls r0, r0, #0x15 - adds r2, r2, r0 - lsrs r2, r2, #0x18 - ands r3, r1 - adds r3, #0x23 - str r4, [sp] - str r1, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #0 - add r1, sp, #0xc - bl CopyToBgTilemapBufferRect_ChangePalette - movs r0, #0 - bl CopyBgTilemapBufferToVram - add sp, #0x10 - pop {r4} - pop {r0} - bx r0 - thumb_func_end ActionSelectionCreateCursorAt - - thumb_func_start MoveSelectionDestroyCursorAt -MoveSelectionDestroyCursorAt: @ 0x08059910 - push {lr} - sub sp, #0x10 - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - add r0, sp, #0xc - ldr r1, _08059958 - strh r1, [r0] - strh r1, [r0, #2] - movs r1, #1 - adds r0, r3, #0 - ands r0, r1 - lsls r2, r0, #1 - adds r2, r2, r0 - lsls r2, r2, #0x19 - movs r0, #0x90 - lsls r0, r0, #0x15 - adds r2, r2, r0 - lsrs r2, r2, #0x18 - movs r0, #2 - ands r3, r0 - adds r3, #0x23 - str r1, [sp] - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #0 - add r1, sp, #0xc - bl CopyToBgTilemapBufferRect_ChangePalette - movs r0, #0 - bl CopyBgTilemapBufferToVram - add sp, #0x10 - pop {r0} - bx r0 - .align 2, 0 -_08059958: .4byte 0x00001016 - thumb_func_end MoveSelectionDestroyCursorAt - - thumb_func_start sub_0805995C -sub_0805995C: @ 0x0805995C - push {lr} - ldr r0, _08059968 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_08059968: .4byte ReshowBattleScreenAfterMenu - thumb_func_end sub_0805995C - - thumb_func_start sub_0805996C -sub_0805996C: @ 0x0805996C - push {lr} - ldr r0, _08059978 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_08059978: .4byte ReshowBattleScreenAfterMenu - thumb_func_end sub_0805996C - - thumb_func_start sub_0805997C -sub_0805997C: @ 0x0805997C - push {lr} - ldr r0, _080599A4 - ldr r2, [r0] - ldr r0, _080599A8 - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _0805999E - bl PlayerBufferExecCompleted -_0805999E: - pop {r0} - bx r0 - .align 2, 0 -_080599A4: .4byte gUnknown_2024174 -_080599A8: .4byte gUnknown_2023D08 - thumb_func_end sub_0805997C - - thumb_func_start sub_080599AC -sub_080599AC: @ 0x080599AC - push {lr} - ldr r0, _080599D4 - ldr r2, [r0] - ldr r0, _080599D8 - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _080599CE - bl PlayerBufferExecCompleted -_080599CE: - pop {r0} - bx r0 - .align 2, 0 -_080599D4: .4byte gUnknown_2024174 -_080599D8: .4byte gUnknown_2023D08 - thumb_func_end sub_080599AC - - thumb_func_start PrintLinkStandbyMsg -PrintLinkStandbyMsg: @ 0x080599DC - push {lr} - ldr r0, _08059A00 - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _080599FC - ldr r0, _08059A04 - movs r1, #0 - strh r1, [r0] - ldr r0, _08059A08 - strh r1, [r0] - ldr r0, _08059A0C - movs r1, #0 - bl sub_0814FA04 -_080599FC: - pop {r0} - bx r0 - .align 2, 0 -_08059A00: .4byte gUnknown_2022C90 -_08059A04: .4byte gUnknown_2022AC8 -_08059A08: .4byte gUnknown_2022ACA -_08059A0C: .4byte gUnknown_85ABB62 - thumb_func_end PrintLinkStandbyMsg - - thumb_func_start sub_08059A10 -sub_08059A10: @ 0x08059A10 - push {r4, r5, r6, lr} - sub sp, #0x100 - movs r6, #0 - ldr r1, _08059A3C - ldr r0, _08059A40 - ldrb r2, [r0] - lsls r0, r2, #9 - adds r1, #2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, #0 - bne _08059A48 - ldr r0, _08059A44 - lsls r1, r2, #1 - adds r1, r1, r0 - ldrb r0, [r1] - mov r1, sp - bl CopyPlayerMonData - adds r6, r0, #0 - b _08059A6A - .align 2, 0 -_08059A3C: .4byte gUnknown_2022D08 -_08059A40: .4byte gUnknown_2023D08 -_08059A44: .4byte gUnknown_2023D12 -_08059A48: - ldrb r4, [r1] - movs r5, #0 -_08059A4C: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _08059A62 - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - mov r2, sp - adds r1, r2, r6 - bl CopyPlayerMonData - adds r6, r6, r0 -_08059A62: - lsrs r4, r4, #1 - adds r5, #1 - cmp r5, #5 - ble _08059A4C -_08059A6A: - lsls r1, r6, #0x10 - lsrs r1, r1, #0x10 - movs r0, #1 - mov r2, sp - bl BtlController_EmitDataTransfer - bl PlayerBufferExecCompleted - add sp, #0x100 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08059A10 - - thumb_func_start CopyPlayerMonData -CopyPlayerMonData: @ 0x08059A84 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x90 - adds r7, r1, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r6, #0 - ldr r2, _08059AB8 - ldr r3, _08059ABC - ldrb r0, [r3] - lsls r0, r0, #9 - adds r1, r2, #1 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0x3b - bls _08059AAE - bl _0805A21A -_08059AAE: - lsls r0, r0, #2 - ldr r1, _08059AC0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08059AB8: .4byte gUnknown_2022D08 -_08059ABC: .4byte gUnknown_2023D08 -_08059AC0: .4byte _08059AC4 -_08059AC4: @ jump table - .4byte _08059BB4 @ case 0 - .4byte _08059DD8 @ case 1 - .4byte _08059DE8 @ case 2 - .4byte _08059DF8 @ case 3 - .4byte _08059E60 @ case 4 - .4byte _08059E60 @ case 5 - .4byte _08059E60 @ case 6 - .4byte _08059E60 @ case 7 - .4byte _08059E7C @ case 8 - .4byte _08059EB8 @ case 9 - .4byte _08059EB8 @ case 10 - .4byte _08059EB8 @ case 11 - .4byte _08059EB8 @ case 12 - .4byte _0805A21A @ case 13 - .4byte _0805A21A @ case 14 - .4byte _0805A21A @ case 15 - .4byte _0805A21A @ case 16 - .4byte _08059ED4 @ case 17 - .4byte _08059EE4 @ case 18 - .4byte _08059F14 @ case 19 - .4byte _08059F24 @ case 20 - .4byte _08059F34 @ case 21 - .4byte _08059F44 @ case 22 - .4byte _08059F54 @ case 23 - .4byte _08059F64 @ case 24 - .4byte _08059F74 @ case 25 - .4byte _08059F84 @ case 26 - .4byte _08059F94 @ case 27 - .4byte _08059FA4 @ case 28 - .4byte _08059FB4 @ case 29 - .4byte _08059FC4 @ case 30 - .4byte _08059FD4 @ case 31 - .4byte _0805A024 @ case 32 - .4byte _0805A034 @ case 33 - .4byte _0805A044 @ case 34 - .4byte _0805A054 @ case 35 - .4byte _0805A064 @ case 36 - .4byte _0805A074 @ case 37 - .4byte _0805A084 @ case 38 - .4byte _0805A094 @ case 39 - .4byte _0805A0A4 @ case 40 - .4byte _0805A0D8 @ case 41 - .4byte _0805A0E8 @ case 42 - .4byte _0805A0F8 @ case 43 - .4byte _0805A108 @ case 44 - .4byte _0805A118 @ case 45 - .4byte _0805A128 @ case 46 - .4byte _0805A138 @ case 47 - .4byte _0805A148 @ case 48 - .4byte _0805A168 @ case 49 - .4byte _0805A178 @ case 50 - .4byte _0805A188 @ case 51 - .4byte _0805A198 @ case 52 - .4byte _0805A1A8 @ case 53 - .4byte _0805A1B8 @ case 54 - .4byte _0805A1C8 @ case 55 - .4byte _0805A1D8 @ case 56 - .4byte _0805A1E8 @ case 57 - .4byte _0805A1F8 @ case 58 - .4byte _0805A208 @ case 59 -_08059BB4: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _08059DC8 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - mov r1, sp - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0xc - bl GetMonData - mov r1, sp - strh r0, [r1, #0x2e] - movs r6, #0 - add r0, sp, #0x24 - mov sb, r0 - movs r1, #0x3b - add r1, sp - mov sl, r1 - mov r2, sp - adds r2, #0x2b - str r2, [sp, #0x80] - mov r0, sp - adds r0, #0x2a - str r0, [sp, #0x7c] - mov r1, sp - adds r1, #0x68 - str r1, [sp, #0x8c] - adds r2, #5 - str r2, [sp, #0x84] - adds r0, #0x12 - str r0, [sp, #0x88] - mov r8, r4 - add r4, sp, #0xc -_08059C00: - adds r1, r6, #0 - adds r1, #0xd - mov r0, r8 - bl GetMonData - strh r0, [r4] - adds r1, r6, #0 - adds r1, #0x11 - mov r0, r8 - bl GetMonData - mov r2, sb - adds r1, r2, r6 - strb r0, [r1] - adds r4, #2 - adds r6, #1 - cmp r6, #3 - ble _08059C00 - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _08059DC8 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x15 - bl GetMonData - mov r1, sl - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x20 - bl GetMonData - ldr r2, [sp, #0x80] - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0x19 - bl GetMonData - str r0, [sp, #0x44] - adds r0, r4, #0 - movs r1, #0x27 - bl GetMonData - mov r3, sp - movs r5, #0x1f - ands r0, r5 - ldrb r2, [r3, #0x14] - movs r1, #0x20 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x14] - adds r0, r4, #0 - movs r1, #0x28 - bl GetMonData - mov r3, sp - movs r6, #0x1f - ands r0, r6 - lsls r0, r0, #5 - ldrh r2, [r3, #0x14] - ldr r1, _08059DCC - ands r1, r2 - orrs r1, r0 - strh r1, [r3, #0x14] - adds r0, r4, #0 - movs r1, #0x29 - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, r0, #2 - ldrb r2, [r3, #0x15] - movs r1, #0x7d - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x15] - adds r0, r4, #0 - movs r1, #0x2a - bl GetMonData - movs r1, #0x1f - ands r1, r0 - lsls r1, r1, #0xf - ldr r0, [sp, #0x14] - ldr r2, _08059DD0 - ands r0, r2 - orrs r0, r1 - str r0, [sp, #0x14] - adds r0, r4, #0 - movs r1, #0x2b - bl GetMonData - mov r3, sp - ands r0, r6 - lsls r0, r0, #4 - ldrh r2, [r3, #0x16] - ldr r1, _08059DD4 - ands r1, r2 - orrs r1, r0 - strh r1, [r3, #0x16] - adds r0, r4, #0 - movs r1, #0x2c - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, r0, #1 - ldrb r2, [r3, #0x17] - movs r1, #0x3f - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x17] - adds r0, r4, #0 - movs r1, #0 - bl GetMonData - str r0, [sp, #0x48] - adds r0, r4, #0 - movs r1, #0x37 - bl GetMonData - str r0, [sp, #0x4c] - adds r0, r4, #0 - movs r1, #0x38 - bl GetMonData - ldr r1, [sp, #0x7c] - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - mov r1, sp - strh r0, [r1, #0x28] - adds r0, r4, #0 - movs r1, #0x3a - bl GetMonData - mov r1, sp - strh r0, [r1, #0x2c] - adds r0, r4, #0 - movs r1, #0x3b - bl GetMonData - mov r1, sp - strh r0, [r1, #2] - adds r0, r4, #0 - movs r1, #0x3c - bl GetMonData - mov r1, sp - strh r0, [r1, #4] - adds r0, r4, #0 - movs r1, #0x3d - bl GetMonData - mov r1, sp - strh r0, [r1, #6] - adds r0, r4, #0 - movs r1, #0x3e - bl GetMonData - mov r1, sp - strh r0, [r1, #8] - adds r0, r4, #0 - movs r1, #0x3f - bl GetMonData - mov r1, sp - strh r0, [r1, #0xa] - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - mov r3, sp - movs r1, #1 - ands r0, r1 - lsls r0, r0, #6 - ldrb r2, [r3, #0x17] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x17] - adds r0, r4, #0 - movs r1, #0x2e - bl GetMonData - mov r3, sp - lsls r0, r0, #7 - ldrb r2, [r3, #0x17] - movs r1, #0x7f - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x17] - adds r0, r4, #0 - movs r1, #1 - bl GetMonData - str r0, [sp, #0x54] - adds r0, r4, #0 - movs r1, #2 - ldr r2, [sp, #0x8c] - bl GetMonData - ldr r0, [sp, #0x84] - ldr r1, [sp, #0x8c] - bl StringCopy10 - adds r0, r4, #0 - movs r1, #7 - ldr r2, [sp, #0x88] - bl GetMonData - mov r2, sp - movs r6, #0 -_08059DB8: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, #1 - cmp r6, #0x57 - bls _08059DB8 - b _0805A21A - .align 2, 0 -_08059DC8: .4byte gUnknown_2024190 -_08059DCC: .4byte 0xFFFFFC1F -_08059DD0: .4byte 0xFFF07FFF -_08059DD4: .4byte 0xFFFFFE0F -_08059DD8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08059DE4 - adds r0, r0, r1 - movs r1, #0xb - b _0805A152 - .align 2, 0 -_08059DE4: .4byte gUnknown_2024190 -_08059DE8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08059DF4 - adds r0, r0, r1 - movs r1, #0xc - b _0805A152 - .align 2, 0 -_08059DF4: .4byte gUnknown_2024190 -_08059DF8: - movs r6, #0 - add r2, sp, #0x58 - mov sb, r2 - add r0, sp, #0x60 - mov sl, r0 - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _08059E5C - adds r4, r1, r0 - mov r8, sb -_08059E0E: - adds r1, r6, #0 - adds r1, #0xd - adds r0, r4, #0 - bl GetMonData - mov r1, r8 - strh r0, [r1] - adds r1, r6, #0 - adds r1, #0x11 - adds r0, r4, #0 - bl GetMonData - mov r2, sl - adds r1, r2, r6 - strb r0, [r1] - movs r0, #2 - add r8, r0 - adds r6, #1 - cmp r6, #3 - ble _08059E0E - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08059E5C - adds r0, r0, r1 - movs r1, #0x15 - bl GetMonData - mov r1, sb - strb r0, [r1, #0xc] - mov r2, sb - movs r6, #0 -_08059E4C: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, #1 - cmp r6, #0xf - bls _08059E4C - b _0805A21A - .align 2, 0 -_08059E5C: .4byte gUnknown_2024190 -_08059E60: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08059E78 - adds r0, r0, r1 - ldrb r1, [r3] - lsls r1, r1, #9 - adds r2, #1 - adds r1, r1, r2 - ldrb r1, [r1] - adds r1, #9 - b _0805A152 - .align 2, 0 -_08059E78: .4byte gUnknown_2024190 -_08059E7C: - movs r6, #0 - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r2, _08059EB4 - mov r8, r2 -_08059E88: - adds r1, r6, #0 - adds r1, #0x11 - mov r2, r8 - adds r0, r4, r2 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, #1 - cmp r6, #3 - ble _08059E88 - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08059EB4 - adds r0, r0, r1 - movs r1, #0x15 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, #1 - b _0805A21A - .align 2, 0 -_08059EB4: .4byte gUnknown_2024190 -_08059EB8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08059ED0 - adds r0, r0, r1 - ldrb r1, [r3] - lsls r1, r1, #9 - adds r2, #1 - adds r1, r1, r2 - ldrb r1, [r1] - adds r1, #8 - b _0805A212 - .align 2, 0 -_08059ED0: .4byte gUnknown_2024190 -_08059ED4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08059EE0 - adds r0, r0, r1 - movs r1, #1 - b _08059EEE - .align 2, 0 -_08059EE0: .4byte gUnknown_2024190 -_08059EE4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08059F10 - adds r0, r0, r1 - movs r1, #0x19 -_08059EEE: - bl GetMonData - adds r1, r0, #0 - strb r1, [r7] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - lsrs r0, r0, #8 - strb r0, [r7, #1] - movs r0, #0xff - lsls r0, r0, #0x10 - ands r0, r1 - lsrs r0, r0, #0x10 - strb r0, [r7, #2] - movs r6, #3 - b _0805A21A - .align 2, 0 -_08059F10: .4byte gUnknown_2024190 -_08059F14: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08059F20 - adds r0, r0, r1 - movs r1, #0x1a - b _0805A212 - .align 2, 0 -_08059F20: .4byte gUnknown_2024190 -_08059F24: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08059F30 - adds r0, r0, r1 - movs r1, #0x1b - b _0805A212 - .align 2, 0 -_08059F30: .4byte gUnknown_2024190 -_08059F34: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08059F40 - adds r0, r0, r1 - movs r1, #0x1c - b _0805A212 - .align 2, 0 -_08059F40: .4byte gUnknown_2024190 -_08059F44: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08059F50 - adds r0, r0, r1 - movs r1, #0x1d - b _0805A212 - .align 2, 0 -_08059F50: .4byte gUnknown_2024190 -_08059F54: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08059F60 - adds r0, r0, r1 - movs r1, #0x1e - b _0805A212 - .align 2, 0 -_08059F60: .4byte gUnknown_2024190 -_08059F64: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08059F70 - adds r0, r0, r1 - movs r1, #0x1f - b _0805A212 - .align 2, 0 -_08059F70: .4byte gUnknown_2024190 -_08059F74: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08059F80 - adds r0, r0, r1 - movs r1, #0x20 - b _0805A212 - .align 2, 0 -_08059F80: .4byte gUnknown_2024190 -_08059F84: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08059F90 - adds r0, r0, r1 - movs r1, #0x22 - b _0805A212 - .align 2, 0 -_08059F90: .4byte gUnknown_2024190 -_08059F94: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08059FA0 - adds r0, r0, r1 - movs r1, #0x23 - b _0805A212 - .align 2, 0 -_08059FA0: .4byte gUnknown_2024190 -_08059FA4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08059FB0 - adds r0, r0, r1 - movs r1, #0x24 - b _0805A212 - .align 2, 0 -_08059FB0: .4byte gUnknown_2024190 -_08059FB4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08059FC0 - adds r0, r0, r1 - movs r1, #0x25 - b _0805A212 - .align 2, 0 -_08059FC0: .4byte gUnknown_2024190 -_08059FC4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08059FD0 - adds r0, r0, r1 - movs r1, #0x26 - b _0805A212 - .align 2, 0 -_08059FD0: .4byte gUnknown_2024190 -_08059FD4: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _0805A020 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x27 - bl GetMonData - strb r0, [r7] - adds r0, r4, #0 - movs r1, #0x28 - bl GetMonData - strb r0, [r7, #1] - adds r0, r4, #0 - movs r1, #0x29 - bl GetMonData - strb r0, [r7, #2] - adds r0, r4, #0 - movs r1, #0x2a - bl GetMonData - strb r0, [r7, #3] - adds r0, r4, #0 - movs r1, #0x2b - bl GetMonData - strb r0, [r7, #4] - adds r0, r4, #0 - movs r1, #0x2c - bl GetMonData - strb r0, [r7, #5] - movs r6, #6 - b _0805A21A - .align 2, 0 -_0805A020: .4byte gUnknown_2024190 -_0805A024: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A030 - adds r0, r0, r1 - movs r1, #0x27 - b _0805A212 - .align 2, 0 -_0805A030: .4byte gUnknown_2024190 -_0805A034: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A040 - adds r0, r0, r1 - movs r1, #0x28 - b _0805A212 - .align 2, 0 -_0805A040: .4byte gUnknown_2024190 -_0805A044: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A050 - adds r0, r0, r1 - movs r1, #0x29 - b _0805A212 - .align 2, 0 -_0805A050: .4byte gUnknown_2024190 -_0805A054: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A060 - adds r0, r0, r1 - movs r1, #0x2a - b _0805A212 - .align 2, 0 -_0805A060: .4byte gUnknown_2024190 -_0805A064: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A070 - adds r0, r0, r1 - movs r1, #0x2b - b _0805A212 - .align 2, 0 -_0805A070: .4byte gUnknown_2024190 -_0805A074: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A080 - adds r0, r0, r1 - movs r1, #0x2c - b _0805A212 - .align 2, 0 -_0805A080: .4byte gUnknown_2024190 -_0805A084: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A090 - adds r0, r0, r1 - movs r1, #0 - b _0805A0AE - .align 2, 0 -_0805A090: .4byte gUnknown_2024190 -_0805A094: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A0A0 - adds r0, r0, r1 - movs r1, #9 - b _0805A152 - .align 2, 0 -_0805A0A0: .4byte gUnknown_2024190 -_0805A0A4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A0D4 - adds r0, r0, r1 - movs r1, #0x37 -_0805A0AE: - bl GetMonData - adds r1, r0, #0 - strb r1, [r7] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - lsrs r0, r0, #8 - strb r0, [r7, #1] - movs r0, #0xff - lsls r0, r0, #0x10 - ands r0, r1 - lsrs r0, r0, #0x10 - strb r0, [r7, #2] - lsrs r0, r1, #0x18 - strb r0, [r7, #3] - movs r6, #4 - b _0805A21A - .align 2, 0 -_0805A0D4: .4byte gUnknown_2024190 -_0805A0D8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A0E4 - adds r0, r0, r1 - movs r1, #0x38 - b _0805A212 - .align 2, 0 -_0805A0E4: .4byte gUnknown_2024190 -_0805A0E8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A0F4 - adds r0, r0, r1 - movs r1, #0x39 - b _0805A152 - .align 2, 0 -_0805A0F4: .4byte gUnknown_2024190 -_0805A0F8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A104 - adds r0, r0, r1 - movs r1, #0x3a - b _0805A152 - .align 2, 0 -_0805A104: .4byte gUnknown_2024190 -_0805A108: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A114 - adds r0, r0, r1 - movs r1, #0x3b - b _0805A152 - .align 2, 0 -_0805A114: .4byte gUnknown_2024190 -_0805A118: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A124 - adds r0, r0, r1 - movs r1, #0x3c - b _0805A152 - .align 2, 0 -_0805A124: .4byte gUnknown_2024190 -_0805A128: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A134 - adds r0, r0, r1 - movs r1, #0x3d - b _0805A152 - .align 2, 0 -_0805A134: .4byte gUnknown_2024190 -_0805A138: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A144 - adds r0, r0, r1 - movs r1, #0x3e - b _0805A152 - .align 2, 0 -_0805A144: .4byte gUnknown_2024190 -_0805A148: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A164 - adds r0, r0, r1 - movs r1, #0x3f -_0805A152: - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - strb r0, [r7] - lsrs r0, r0, #8 - strb r0, [r7, #1] - movs r6, #2 - b _0805A21A - .align 2, 0 -_0805A164: .4byte gUnknown_2024190 -_0805A168: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A174 - adds r0, r0, r1 - movs r1, #0x16 - b _0805A212 - .align 2, 0 -_0805A174: .4byte gUnknown_2024190 -_0805A178: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A184 - adds r0, r0, r1 - movs r1, #0x17 - b _0805A212 - .align 2, 0 -_0805A184: .4byte gUnknown_2024190 -_0805A188: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A194 - adds r0, r0, r1 - movs r1, #0x18 - b _0805A212 - .align 2, 0 -_0805A194: .4byte gUnknown_2024190 -_0805A198: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A1A4 - adds r0, r0, r1 - movs r1, #0x21 - b _0805A212 - .align 2, 0 -_0805A1A4: .4byte gUnknown_2024190 -_0805A1A8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A1B4 - adds r0, r0, r1 - movs r1, #0x2f - b _0805A212 - .align 2, 0 -_0805A1B4: .4byte gUnknown_2024190 -_0805A1B8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A1C4 - adds r0, r0, r1 - movs r1, #0x30 - b _0805A212 - .align 2, 0 -_0805A1C4: .4byte gUnknown_2024190 -_0805A1C8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A1D4 - adds r0, r0, r1 - movs r1, #0x32 - b _0805A212 - .align 2, 0 -_0805A1D4: .4byte gUnknown_2024190 -_0805A1D8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A1E4 - adds r0, r0, r1 - movs r1, #0x33 - b _0805A212 - .align 2, 0 -_0805A1E4: .4byte gUnknown_2024190 -_0805A1E8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A1F4 - adds r0, r0, r1 - movs r1, #0x34 - b _0805A212 - .align 2, 0 -_0805A1F4: .4byte gUnknown_2024190 -_0805A1F8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A204 - adds r0, r0, r1 - movs r1, #0x35 - b _0805A212 - .align 2, 0 -_0805A204: .4byte gUnknown_2024190 -_0805A208: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A22C - adds r0, r0, r1 - movs r1, #0x36 -_0805A212: - bl GetMonData - strb r0, [r7] - movs r6, #1 -_0805A21A: - adds r0, r6, #0 - add sp, #0x90 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0805A22C: .4byte gUnknown_2024190 - thumb_func_end CopyPlayerMonData - - thumb_func_start PlayerHandleGetRawMonData -PlayerHandleGetRawMonData: @ 0x0805A230 - push {r4, r5, r6, r7, lr} - sub sp, #0x58 - ldr r2, _0805A2A8 - ldr r5, _0805A2AC - ldrb r1, [r5] - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r2, [r0] - movs r0, #0x64 - adds r4, r2, #0 - muls r4, r0, r4 - ldr r3, _0805A2B0 - lsls r1, r1, #9 - adds r0, r3, #1 - adds r0, r1, r0 - ldrb r2, [r0] - ldr r0, _0805A2B4 - adds r0, r2, r0 - adds r6, r4, r0 - mov r0, sp - adds r4, r0, r2 - movs r2, #0 - adds r0, r3, #2 - adds r1, r1, r0 - adds r7, r5, #0 - mov ip, r3 - ldrb r1, [r1] - cmp r2, r1 - bhs _0805A286 - adds r3, r0, #0 -_0805A26C: - adds r1, r4, r2 - adds r0, r6, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldrb r0, [r5] - lsls r0, r0, #9 - adds r0, r0, r3 - ldrb r0, [r0] - cmp r2, r0 - blo _0805A26C -_0805A286: - ldrb r0, [r7] - lsls r0, r0, #9 - mov r1, ip - adds r1, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - adds r2, r4, #0 - bl BtlController_EmitDataTransfer - bl PlayerBufferExecCompleted - add sp, #0x58 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805A2A8: .4byte gUnknown_2023D12 -_0805A2AC: .4byte gUnknown_2023D08 -_0805A2B0: .4byte gUnknown_2022D08 -_0805A2B4: .4byte gUnknown_2024190 - thumb_func_end PlayerHandleGetRawMonData - - thumb_func_start sub_0805A2B8 -sub_0805A2B8: @ 0x0805A2B8 - push {r4, r5, lr} - ldr r1, _0805A2DC - ldr r0, _0805A2E0 - ldrb r2, [r0] - lsls r0, r2, #9 - adds r1, #2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, #0 - bne _0805A2E8 - ldr r0, _0805A2E4 - lsls r1, r2, #1 - adds r1, r1, r0 - ldrb r0, [r1] - bl SetPlayerMonData - b _0805A306 - .align 2, 0 -_0805A2DC: .4byte gUnknown_2022D08 -_0805A2E0: .4byte gUnknown_2023D08 -_0805A2E4: .4byte gUnknown_2023D12 -_0805A2E8: - ldrb r4, [r1] - movs r5, #0 -_0805A2EC: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _0805A2FA - adds r0, r5, #0 - bl SetPlayerMonData -_0805A2FA: - lsrs r4, r4, #1 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #5 - bls _0805A2EC -_0805A306: - bl PlayerBufferExecCompleted - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_0805A2B8 - - thumb_func_start SetPlayerMonData -SetPlayerMonData: @ 0x0805A310 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x34 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _0805A348 - ldrb r0, [r0] - lsls r0, r0, #9 - ldr r2, _0805A34C - adds r3, r0, r2 - adds r6, r3, #0 - subs r1, r2, #2 - adds r0, r0, r1 - ldrb r0, [r0] - adds r7, r2, #0 - cmp r0, #0x3b - bls _0805A33C - bl _0805ACD6 -_0805A33C: - lsls r0, r0, #2 - ldr r1, _0805A350 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0805A348: .4byte gUnknown_2023D08 -_0805A34C: .4byte gUnknown_2022D0B -_0805A350: .4byte _0805A354 -_0805A354: @ jump table - .4byte _0805A444 @ case 0 - .4byte _0805A5DC @ case 1 - .4byte _0805A5FC @ case 2 - .4byte _0805A61C @ case 3 - .4byte _0805A674 @ case 4 - .4byte _0805A674 @ case 5 - .4byte _0805A674 @ case 6 - .4byte _0805A674 @ case 7 - .4byte _0805A69C @ case 8 - .4byte _0805A700 @ case 9 - .4byte _0805A700 @ case 10 - .4byte _0805A700 @ case 11 - .4byte _0805A700 @ case 12 - .4byte _0805ACD6 @ case 13 - .4byte _0805ACD6 @ case 14 - .4byte _0805ACD6 @ case 15 - .4byte _0805ACD6 @ case 16 - .4byte _0805A730 @ case 17 - .4byte _0805A750 @ case 18 - .4byte _0805A770 @ case 19 - .4byte _0805A790 @ case 20 - .4byte _0805A7B0 @ case 21 - .4byte _0805A7D0 @ case 22 - .4byte _0805A7F0 @ case 23 - .4byte _0805A810 @ case 24 - .4byte _0805A830 @ case 25 - .4byte _0805A850 @ case 26 - .4byte _0805A870 @ case 27 - .4byte _0805A890 @ case 28 - .4byte _0805A8B0 @ case 29 - .4byte _0805A8D0 @ case 30 - .4byte _0805A8F0 @ case 31 - .4byte _0805A960 @ case 32 - .4byte _0805A980 @ case 33 - .4byte _0805A9A0 @ case 34 - .4byte _0805A9C0 @ case 35 - .4byte _0805A9E0 @ case 36 - .4byte _0805AA00 @ case 37 - .4byte _0805AA20 @ case 38 - .4byte _0805AA40 @ case 39 - .4byte _0805AA60 @ case 40 - .4byte _0805AA80 @ case 41 - .4byte _0805AAA0 @ case 42 - .4byte _0805AAC0 @ case 43 - .4byte _0805AAE0 @ case 44 - .4byte _0805AB00 @ case 45 - .4byte _0805AB20 @ case 46 - .4byte _0805AB40 @ case 47 - .4byte _0805AB60 @ case 48 - .4byte _0805AB80 @ case 49 - .4byte _0805ABA0 @ case 50 - .4byte _0805ABC0 @ case 51 - .4byte _0805ABE0 @ case 52 - .4byte _0805AC00 @ case 53 - .4byte _0805AC20 @ case 54 - .4byte _0805AC40 @ case 55 - .4byte _0805AC60 @ case 56 - .4byte _0805AC80 @ case 57 - .4byte _0805ACA0 @ case 58 - .4byte _0805ACC0 @ case 59 -_0805A444: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _0805A5D8 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0xb - adds r2, r6, #0 - bl SetMonData - adds r2, r6, #0 - adds r2, #0x2e - adds r0, r4, #0 - movs r1, #0xc - bl SetMonData - movs r0, #0 - mov r8, r0 - movs r0, #0x3b - adds r0, r0, r6 - mov sl, r0 - adds r0, r6, #0 - adds r0, #0x2b - str r0, [sp, #0x20] - adds r0, #0x19 - str r0, [sp, #0x28] - adds r0, #4 - str r0, [sp, #0x2c] - adds r0, #4 - str r0, [sp, #0x30] - subs r0, #0x22 - str r0, [sp, #0x1c] - subs r0, #2 - str r0, [sp, #0x18] - adds r0, #4 - str r0, [sp, #0x24] - adds r0, r6, #2 - str r0, [sp, #4] - adds r0, r6, #4 - str r0, [sp, #8] - adds r0, r6, #6 - str r0, [sp, #0xc] - adds r0, #2 - str r0, [sp, #0x10] - adds r0, #2 - str r0, [sp, #0x14] - mov sb, r4 - adds r7, r6, #0 - adds r7, #0x24 - adds r4, r6, #0 - adds r4, #0xc -_0805A4AA: - mov r1, r8 - adds r1, #0xd - mov r0, sb - adds r2, r4, #0 - bl SetMonData - mov r1, r8 - adds r1, #0x11 - mov r0, sb - adds r2, r7, #0 - bl SetMonData - adds r7, #1 - adds r4, #2 - movs r0, #1 - add r8, r0 - mov r0, r8 - cmp r0, #3 - ble _0805A4AA - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _0805A5D8 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x15 - mov r2, sl - bl SetMonData - adds r0, r4, #0 - movs r1, #0x20 - ldr r2, [sp, #0x20] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x19 - ldr r2, [sp, #0x28] - bl SetMonData - ldrb r0, [r6, #0x14] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1b - mov r1, sp - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x27 - mov r2, sp - bl SetMonData - mov r1, sp - ldrh r0, [r6, #0x14] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x28 - mov r2, sp - bl SetMonData - mov r1, sp - ldrb r0, [r6, #0x15] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x29 - mov r2, sp - bl SetMonData - mov r1, sp - ldr r0, [r6, #0x14] - lsls r0, r0, #0xc - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x2a - mov r2, sp - bl SetMonData - mov r1, sp - ldrh r0, [r6, #0x16] - lsls r0, r0, #0x17 - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x2b - mov r2, sp - bl SetMonData - mov r1, sp - ldrb r0, [r6, #0x17] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x2c - mov r2, sp - bl SetMonData - adds r0, r4, #0 - movs r1, #0 - ldr r2, [sp, #0x2c] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x37 - ldr r2, [sp, #0x30] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x38 - ldr r2, [sp, #0x1c] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x39 - ldr r2, [sp, #0x18] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3a - ldr r2, [sp, #0x24] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3b - ldr r2, [sp, #4] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3c - ldr r2, [sp, #8] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3d - ldr r2, [sp, #0xc] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3e - ldr r2, [sp, #0x10] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3f - ldr r2, [sp, #0x14] - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805A5D8: .4byte gUnknown_2024190 -_0805A5DC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A5F4 - adds r0, r0, r1 - ldr r1, _0805A5F8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0xb - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805A5F4: .4byte gUnknown_2024190 -_0805A5F8: .4byte gUnknown_2023D08 -_0805A5FC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A614 - adds r0, r0, r1 - ldr r1, _0805A618 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0xc - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805A614: .4byte gUnknown_2024190 -_0805A618: .4byte gUnknown_2023D08 -_0805A61C: - movs r0, #0 - mov r8, r0 - movs r0, #0xc - adds r0, r0, r3 - mov sb, r0 - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _0805A670 - adds r7, r1, r0 - adds r6, r3, #0 - adds r6, #8 - adds r4, r3, #0 -_0805A636: - mov r1, r8 - adds r1, #0xd - adds r0, r7, #0 - adds r2, r4, #0 - bl SetMonData - mov r1, r8 - adds r1, #0x11 - adds r0, r7, #0 - adds r2, r6, #0 - bl SetMonData - adds r6, #1 - adds r4, #2 - movs r0, #1 - add r8, r0 - mov r0, r8 - cmp r0, #3 - ble _0805A636 - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A670 - adds r0, r0, r1 - movs r1, #0x15 - mov r2, sb - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805A670: .4byte gUnknown_2024190 -_0805A674: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A690 - adds r0, r0, r1 - ldr r3, _0805A694 - ldr r1, _0805A698 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r1, r3, #1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, #9 - b _0805A718 - .align 2, 0 -_0805A690: .4byte gUnknown_2024190 -_0805A694: .4byte gUnknown_2022D08 -_0805A698: .4byte gUnknown_2023D08 -_0805A69C: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _0805A6F8 - adds r4, r4, r0 - ldr r5, _0805A6FC - ldrb r2, [r5] - lsls r2, r2, #9 - adds r2, r2, r7 - adds r0, r4, #0 - movs r1, #0x11 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #1 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x12 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #2 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x13 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #3 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x14 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #4 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x15 - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805A6F8: .4byte gUnknown_2024190 -_0805A6FC: .4byte gUnknown_2023D08 -_0805A700: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A724 - adds r0, r0, r1 - ldr r3, _0805A728 - ldr r1, _0805A72C - ldrb r2, [r1] - lsls r2, r2, #9 - adds r1, r3, #1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, #8 -_0805A718: - adds r3, #3 - adds r2, r2, r3 - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805A724: .4byte gUnknown_2024190 -_0805A728: .4byte gUnknown_2022D08 -_0805A72C: .4byte gUnknown_2023D08 -_0805A730: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A748 - adds r0, r0, r1 - ldr r1, _0805A74C - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #1 - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805A748: .4byte gUnknown_2024190 -_0805A74C: .4byte gUnknown_2023D08 -_0805A750: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A768 - adds r0, r0, r1 - ldr r1, _0805A76C - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x19 - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805A768: .4byte gUnknown_2024190 -_0805A76C: .4byte gUnknown_2023D08 -_0805A770: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A788 - adds r0, r0, r1 - ldr r1, _0805A78C - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x1a - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805A788: .4byte gUnknown_2024190 -_0805A78C: .4byte gUnknown_2023D08 -_0805A790: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A7A8 - adds r0, r0, r1 - ldr r1, _0805A7AC - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x1b - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805A7A8: .4byte gUnknown_2024190 -_0805A7AC: .4byte gUnknown_2023D08 -_0805A7B0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A7C8 - adds r0, r0, r1 - ldr r1, _0805A7CC - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x1c - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805A7C8: .4byte gUnknown_2024190 -_0805A7CC: .4byte gUnknown_2023D08 -_0805A7D0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A7E8 - adds r0, r0, r1 - ldr r1, _0805A7EC - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x1d - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805A7E8: .4byte gUnknown_2024190 -_0805A7EC: .4byte gUnknown_2023D08 -_0805A7F0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A808 - adds r0, r0, r1 - ldr r1, _0805A80C - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x1e - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805A808: .4byte gUnknown_2024190 -_0805A80C: .4byte gUnknown_2023D08 -_0805A810: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A828 - adds r0, r0, r1 - ldr r1, _0805A82C - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x1f - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805A828: .4byte gUnknown_2024190 -_0805A82C: .4byte gUnknown_2023D08 -_0805A830: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A848 - adds r0, r0, r1 - ldr r1, _0805A84C - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x20 - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805A848: .4byte gUnknown_2024190 -_0805A84C: .4byte gUnknown_2023D08 -_0805A850: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A868 - adds r0, r0, r1 - ldr r1, _0805A86C - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x22 - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805A868: .4byte gUnknown_2024190 -_0805A86C: .4byte gUnknown_2023D08 -_0805A870: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A888 - adds r0, r0, r1 - ldr r1, _0805A88C - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x23 - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805A888: .4byte gUnknown_2024190 -_0805A88C: .4byte gUnknown_2023D08 -_0805A890: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A8A8 - adds r0, r0, r1 - ldr r1, _0805A8AC - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x24 - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805A8A8: .4byte gUnknown_2024190 -_0805A8AC: .4byte gUnknown_2023D08 -_0805A8B0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A8C8 - adds r0, r0, r1 - ldr r1, _0805A8CC - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x25 - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805A8C8: .4byte gUnknown_2024190 -_0805A8CC: .4byte gUnknown_2023D08 -_0805A8D0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A8E8 - adds r0, r0, r1 - ldr r1, _0805A8EC - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x26 - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805A8E8: .4byte gUnknown_2024190 -_0805A8EC: .4byte gUnknown_2023D08 -_0805A8F0: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _0805A958 - adds r4, r4, r0 - ldr r5, _0805A95C - ldrb r2, [r5] - lsls r2, r2, #9 - adds r2, r2, r7 - adds r0, r4, #0 - movs r1, #0x27 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #1 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x28 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #2 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x29 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #3 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x2a - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #4 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x2b - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #5 - adds r2, r2, r0 - adds r0, r4, #0 - b _0805AA10 - .align 2, 0 -_0805A958: .4byte gUnknown_2024190 -_0805A95C: .4byte gUnknown_2023D08 -_0805A960: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A978 - adds r0, r0, r1 - ldr r1, _0805A97C - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x27 - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805A978: .4byte gUnknown_2024190 -_0805A97C: .4byte gUnknown_2023D08 -_0805A980: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A998 - adds r0, r0, r1 - ldr r1, _0805A99C - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x28 - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805A998: .4byte gUnknown_2024190 -_0805A99C: .4byte gUnknown_2023D08 -_0805A9A0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A9B8 - adds r0, r0, r1 - ldr r1, _0805A9BC - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x29 - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805A9B8: .4byte gUnknown_2024190 -_0805A9BC: .4byte gUnknown_2023D08 -_0805A9C0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A9D8 - adds r0, r0, r1 - ldr r1, _0805A9DC - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x2a - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805A9D8: .4byte gUnknown_2024190 -_0805A9DC: .4byte gUnknown_2023D08 -_0805A9E0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805A9F8 - adds r0, r0, r1 - ldr r1, _0805A9FC - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x2b - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805A9F8: .4byte gUnknown_2024190 -_0805A9FC: .4byte gUnknown_2023D08 -_0805AA00: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805AA18 - adds r0, r0, r1 - ldr r1, _0805AA1C - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 -_0805AA10: - movs r1, #0x2c - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805AA18: .4byte gUnknown_2024190 -_0805AA1C: .4byte gUnknown_2023D08 -_0805AA20: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805AA38 - adds r0, r0, r1 - ldr r1, _0805AA3C - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0 - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805AA38: .4byte gUnknown_2024190 -_0805AA3C: .4byte gUnknown_2023D08 -_0805AA40: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805AA58 - adds r0, r0, r1 - ldr r1, _0805AA5C - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #9 - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805AA58: .4byte gUnknown_2024190 -_0805AA5C: .4byte gUnknown_2023D08 -_0805AA60: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805AA78 - adds r0, r0, r1 - ldr r1, _0805AA7C - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x37 - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805AA78: .4byte gUnknown_2024190 -_0805AA7C: .4byte gUnknown_2023D08 -_0805AA80: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805AA98 - adds r0, r0, r1 - ldr r1, _0805AA9C - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x38 - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805AA98: .4byte gUnknown_2024190 -_0805AA9C: .4byte gUnknown_2023D08 -_0805AAA0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805AAB8 - adds r0, r0, r1 - ldr r1, _0805AABC - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x39 - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805AAB8: .4byte gUnknown_2024190 -_0805AABC: .4byte gUnknown_2023D08 -_0805AAC0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805AAD8 - adds r0, r0, r1 - ldr r1, _0805AADC - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x3a - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805AAD8: .4byte gUnknown_2024190 -_0805AADC: .4byte gUnknown_2023D08 -_0805AAE0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805AAF8 - adds r0, r0, r1 - ldr r1, _0805AAFC - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x3b - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805AAF8: .4byte gUnknown_2024190 -_0805AAFC: .4byte gUnknown_2023D08 -_0805AB00: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805AB18 - adds r0, r0, r1 - ldr r1, _0805AB1C - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x3c - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805AB18: .4byte gUnknown_2024190 -_0805AB1C: .4byte gUnknown_2023D08 -_0805AB20: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805AB38 - adds r0, r0, r1 - ldr r1, _0805AB3C - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x3d - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805AB38: .4byte gUnknown_2024190 -_0805AB3C: .4byte gUnknown_2023D08 -_0805AB40: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805AB58 - adds r0, r0, r1 - ldr r1, _0805AB5C - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x3e - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805AB58: .4byte gUnknown_2024190 -_0805AB5C: .4byte gUnknown_2023D08 -_0805AB60: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805AB78 - adds r0, r0, r1 - ldr r1, _0805AB7C - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x3f - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805AB78: .4byte gUnknown_2024190 -_0805AB7C: .4byte gUnknown_2023D08 -_0805AB80: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805AB98 - adds r0, r0, r1 - ldr r1, _0805AB9C - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x16 - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805AB98: .4byte gUnknown_2024190 -_0805AB9C: .4byte gUnknown_2023D08 -_0805ABA0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805ABB8 - adds r0, r0, r1 - ldr r1, _0805ABBC - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x17 - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805ABB8: .4byte gUnknown_2024190 -_0805ABBC: .4byte gUnknown_2023D08 -_0805ABC0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805ABD8 - adds r0, r0, r1 - ldr r1, _0805ABDC - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x18 - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805ABD8: .4byte gUnknown_2024190 -_0805ABDC: .4byte gUnknown_2023D08 -_0805ABE0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805ABF8 - adds r0, r0, r1 - ldr r1, _0805ABFC - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x21 - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805ABF8: .4byte gUnknown_2024190 -_0805ABFC: .4byte gUnknown_2023D08 -_0805AC00: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805AC18 - adds r0, r0, r1 - ldr r1, _0805AC1C - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x2f - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805AC18: .4byte gUnknown_2024190 -_0805AC1C: .4byte gUnknown_2023D08 -_0805AC20: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805AC38 - adds r0, r0, r1 - ldr r1, _0805AC3C - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x30 - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805AC38: .4byte gUnknown_2024190 -_0805AC3C: .4byte gUnknown_2023D08 -_0805AC40: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805AC58 - adds r0, r0, r1 - ldr r1, _0805AC5C - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x32 - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805AC58: .4byte gUnknown_2024190 -_0805AC5C: .4byte gUnknown_2023D08 -_0805AC60: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805AC78 - adds r0, r0, r1 - ldr r1, _0805AC7C - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x33 - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805AC78: .4byte gUnknown_2024190 -_0805AC7C: .4byte gUnknown_2023D08 -_0805AC80: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805AC98 - adds r0, r0, r1 - ldr r1, _0805AC9C - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x34 - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805AC98: .4byte gUnknown_2024190 -_0805AC9C: .4byte gUnknown_2023D08 -_0805ACA0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805ACB8 - adds r0, r0, r1 - ldr r1, _0805ACBC - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x35 - bl SetMonData - b _0805ACD6 - .align 2, 0 -_0805ACB8: .4byte gUnknown_2024190 -_0805ACBC: .4byte gUnknown_2023D08 -_0805ACC0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805AD00 - adds r0, r0, r1 - ldr r1, _0805AD04 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x36 - bl SetMonData -_0805ACD6: - ldr r2, _0805AD08 - ldr r0, _0805AD04 - ldrb r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r2, [r0] - movs r0, #0x64 - muls r0, r2, r0 - ldr r2, _0805AD00 - adds r0, r0, r2 - bl HandleLowHpMusicChange - add sp, #0x34 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805AD00: .4byte gUnknown_2024190 -_0805AD04: .4byte gUnknown_2023D08 -_0805AD08: .4byte gUnknown_2023D12 - thumb_func_end SetPlayerMonData - - thumb_func_start PlayerHandleSetRawMonData -PlayerHandleSetRawMonData: @ 0x0805AD0C - push {r4, r5, r6, r7, lr} - ldr r1, _0805AD70 - ldr r7, _0805AD74 - ldrb r2, [r7] - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - adds r3, r1, #0 - muls r3, r0, r3 - ldr r4, _0805AD78 - lsls r2, r2, #9 - adds r0, r4, #1 - adds r0, r2, r0 - ldrb r0, [r0] - ldr r1, _0805AD7C - adds r0, r0, r1 - adds r5, r3, r0 - movs r3, #0 - adds r0, r4, #2 - adds r2, r2, r0 - ldrb r2, [r2] - cmp r3, r2 - bhs _0805AD64 - adds r6, r4, #0 - adds r2, r7, #0 - adds r4, r0, #0 -_0805AD42: - adds r1, r5, r3 - ldrb r0, [r2] - lsls r0, r0, #9 - adds r0, #3 - adds r0, r3, r0 - adds r0, r0, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldrb r0, [r2] - lsls r0, r0, #9 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r3, r0 - blo _0805AD42 -_0805AD64: - bl PlayerBufferExecCompleted - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805AD70: .4byte gUnknown_2023D12 -_0805AD74: .4byte gUnknown_2023D08 -_0805AD78: .4byte gUnknown_2022D08 -_0805AD7C: .4byte gUnknown_2024190 - thumb_func_end PlayerHandleSetRawMonData - - thumb_func_start PlayerHandleLoadMonSprite -PlayerHandleLoadMonSprite: @ 0x0805AD80 - push {r4, lr} - ldr r2, _0805ADCC - ldr r4, _0805ADD0 - ldrb r1, [r4] - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r2, [r0] - movs r0, #0x64 - muls r0, r2, r0 - ldr r2, _0805ADD4 - adds r0, r0, r2 - bl BattleLoadPlayerMonSpriteGfx - ldr r2, _0805ADD8 - ldr r0, _0805ADDC - ldrb r3, [r4] - adds r0, r3, r0 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - lsls r3, r3, #4 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #5] - ldr r1, _0805ADE0 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805ADE4 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805ADCC: .4byte gUnknown_2023D12 -_0805ADD0: .4byte gUnknown_2023D08 -_0805ADD4: .4byte gUnknown_2024190 -_0805ADD8: .4byte gUnknown_20205AC -_0805ADDC: .4byte gUnknown_2023E88 -_0805ADE0: .4byte gUnknown_3005AC0 -_0805ADE4: .4byte CompleteOnBankSpritePosX_0 - thumb_func_end PlayerHandleLoadMonSprite - - thumb_func_start PlayerHandleSwitchInAnim -PlayerHandleSwitchInAnim: @ 0x0805ADE8 - push {r4, r5, r6, lr} - ldr r5, _0805AE54 - ldrb r0, [r5] - ldr r4, _0805AE58 - lsls r1, r0, #9 - adds r6, r4, #2 - adds r1, r1, r6 - ldrb r1, [r1] - bl ClearTemporarySpeciesSpriteData - ldr r2, _0805AE5C - ldrb r0, [r5] - lsls r1, r0, #1 - adds r1, r1, r2 - lsls r0, r0, #9 - adds r4, #1 - adds r0, r0, r4 - ldrb r0, [r0] - movs r4, #0 - strh r0, [r1] - ldrb r1, [r5] - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r2, [r0] - movs r0, #0x64 - muls r0, r2, r0 - ldr r2, _0805AE60 - adds r0, r0, r2 - bl BattleLoadPlayerMonSpriteGfx - ldr r1, _0805AE64 - ldrb r0, [r5] - adds r0, r0, r1 - strb r4, [r0] - ldr r1, _0805AE68 - ldrb r0, [r5] - adds r0, r0, r1 - strb r4, [r0] - ldrb r0, [r5] - lsls r1, r0, #9 - adds r1, r1, r6 - ldrb r1, [r1] - bl sub_0805AE74 - ldr r1, _0805AE6C - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805AE70 - str r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0805AE54: .4byte gUnknown_2023D08 -_0805AE58: .4byte gUnknown_2022D08 -_0805AE5C: .4byte gUnknown_2023D12 -_0805AE60: .4byte gUnknown_2024190 -_0805AE64: .4byte gUnknown_2024150 -_0805AE68: .4byte gUnknown_2024154 -_0805AE6C: .4byte gUnknown_3005AC0 -_0805AE70: .4byte sub_08058C3C - thumb_func_end PlayerHandleSwitchInAnim - - thumb_func_start sub_0805AE74 -sub_0805AE74: @ 0x0805AE74 - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r6, #0 - bl ClearTemporarySpeciesSpriteData - ldr r0, _0805AFC8 - lsls r2, r6, #1 - adds r2, r2, r0 - ldr r0, _0805AFCC - lsls r1, r6, #9 - adds r0, #1 - adds r1, r1, r0 - ldrb r0, [r1] - strh r0, [r2] - ldrh r1, [r2] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0805AFD0 - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - mov r8, r0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - ldr r0, _0805AFD4 - bl CreateInvisibleSpriteWithCallback - ldr r1, _0805AFD8 - mov sb, r1 - add sb, r6 - mov r1, sb - strb r0, [r1] - adds r0, r6, #0 - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r0, r8 - bl SetMultiuseSpriteTemplateToPokemon - ldr r0, _0805AFDC - mov sl, r0 - adds r0, r6, #0 - movs r1, #2 - bl GetBattlerSpriteCoord - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - adds r0, r6, #0 - bl GetBattlerSpriteDefault_Y - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r6, #0 - bl GetBattlerSpriteSubpriority - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r0, sl - adds r1, r5, #0 - adds r2, r4, #0 - bl CreateSprite - ldr r4, _0805AFE0 - adds r4, r6, r4 - strb r0, [r4] - ldr r5, _0805AFE4 - mov r0, sb - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r1, [r4] - strh r1, [r0, #0x30] - mov r0, sb - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r6, [r0, #0x32] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r6, [r0, #0x2e] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - mov r1, r8 - strh r1, [r0, #0x32] - ldrb r0, [r4] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - lsls r3, r6, #4 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #5] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _0805AFE8 - adds r6, r6, r1 - ldrb r1, [r6] - bl StartSpriteAnim - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r5, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _0805AFEC - str r1, [r0] - movs r0, #0 - movs r1, #0xff - bl DoPokeballSendOutAnimation - mov r1, sb - ldrb r2, [r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r1, #0x2e] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0805AFC8: .4byte gUnknown_2023D12 -_0805AFCC: .4byte gUnknown_2022D08 -_0805AFD0: .4byte gUnknown_2024190 -_0805AFD4: .4byte sub_0805D330 -_0805AFD8: .4byte gUnknown_3005ADC -_0805AFDC: .4byte gUnknown_2024640 -_0805AFE0: .4byte gUnknown_2023E88 -_0805AFE4: .4byte gUnknown_20205AC -_0805AFE8: .4byte gUnknown_2024188 -_0805AFEC: .4byte sub_08007140 - thumb_func_end sub_0805AE74 - - thumb_func_start PlayerHandleReturnMonToBall -PlayerHandleReturnMonToBall: @ 0x0805AFF0 - push {r4, r5, r6, lr} - ldr r1, _0805B024 - ldr r6, _0805B028 - ldrb r2, [r6] - lsls r0, r2, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r3, [r0] - cmp r3, #0 - bne _0805B038 - ldr r0, _0805B02C - ldr r0, [r0] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - strb r3, [r0, #4] - ldr r1, _0805B030 - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805B034 - str r1, [r0] - b _0805B06E - .align 2, 0 -_0805B024: .4byte gUnknown_2022D08 -_0805B028: .4byte gUnknown_2023D08 -_0805B02C: .4byte gUnknown_2024174 -_0805B030: .4byte gUnknown_3005AC0 -_0805B034: .4byte sub_0805B080 -_0805B038: - ldr r5, _0805B074 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _0805B078 - adds r0, r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - ldr r1, _0805B07C - ldrb r0, [r6] - adds r0, r0, r1 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible - bl PlayerBufferExecCompleted -_0805B06E: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0805B074: .4byte gUnknown_2023E88 -_0805B078: .4byte gUnknown_20205AC -_0805B07C: .4byte gUnknown_3005AD0 - thumb_func_end PlayerHandleReturnMonToBall - - thumb_func_start sub_0805B080 -sub_0805B080: @ 0x0805B080 - push {r4, r5, r6, lr} - ldr r6, _0805B0A0 - ldr r4, [r6] - ldr r5, _0805B0A4 - ldrb r2, [r5] - ldr r1, [r4, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r3, r0, r1 - ldrb r0, [r3, #4] - cmp r0, #0 - beq _0805B0A8 - cmp r0, #1 - beq _0805B0D6 - b _0805B0FE - .align 2, 0 -_0805B0A0: .4byte gUnknown_2024174 -_0805B0A4: .4byte gUnknown_2023D08 -_0805B0A8: - ldr r1, [r4] - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0805B0C2 - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #5 - bl InitAndLaunchSpecialAnimation -_0805B0C2: - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #1 - strb r1, [r0, #4] - b _0805B0FE -_0805B0D6: - ldrb r1, [r3] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0805B0FE - strb r0, [r3, #4] - ldrb r2, [r5] - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #1 - bl InitAndLaunchSpecialAnimation - ldr r1, _0805B104 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805B108 - str r1, [r0] -_0805B0FE: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0805B104: .4byte gUnknown_3005AC0 -_0805B108: .4byte sub_08059354 - thumb_func_end sub_0805B080 - - thumb_func_start PlayerHandleDrawTrainerPic -PlayerHandleDrawTrainerPic: @ 0x0805B10C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r0, _0805B16C - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _0805B1D0 - bl GetMultiplayerId - ldr r5, _0805B170 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - movs r4, #0xff - ldrb r0, [r1] - cmp r0, #4 - beq _0805B154 - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrh r1, [r1] - adds r0, r4, #0 - ands r0, r1 - cmp r0, #5 - bne _0805B174 -_0805B154: - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrb r0, [r1, #0x13] - adds r4, r0, #2 - b _0805B1D6 - .align 2, 0 -_0805B16C: .4byte gUnknown_2022C90 -_0805B170: .4byte gUnknown_20226A0 -_0805B174: - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrh r1, [r1] - adds r0, r4, #0 - ands r0, r1 - cmp r0, #2 - beq _0805B1A6 - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrh r0, [r1] - ands r4, r0 - cmp r4, #1 - bne _0805B1BC -_0805B1A6: - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrb r0, [r1, #0x13] - adds r4, r0, #4 - b _0805B1D6 -_0805B1BC: - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrb r4, [r1, #0x13] - b _0805B1D6 -_0805B1D0: - ldr r0, _0805B21C - ldr r0, [r0] - ldrb r4, [r0, #8] -_0805B1D6: - ldr r0, _0805B220 - ldr r1, [r0] - movs r2, #0x40 - ands r1, r2 - adds r5, r0, #0 - cmp r1, #0 - beq _0805B258 - ldr r0, _0805B224 - ldrb r0, [r0] - bl sub_080A630C - movs r1, #2 - ands r1, r0 - movs r0, #0x20 - mov sb, r0 - cmp r1, #0 - beq _0805B1FC - movs r1, #0x5a - mov sb, r1 -_0805B1FC: - ldr r0, [r5] - movs r1, #0x80 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - beq _0805B234 - ldr r0, _0805B228 - ldrh r1, [r0] - ldr r0, _0805B22C - cmp r1, r0 - beq _0805B234 - movs r0, #0x5a - mov sb, r0 - ldr r1, _0805B230 - b _0805B25E - .align 2, 0 -_0805B21C: .4byte gUnknown_3005AF0 -_0805B220: .4byte gUnknown_2022C90 -_0805B224: .4byte gUnknown_2023D08 -_0805B228: .4byte gUnknown_203886E -_0805B22C: .4byte 0x00000C03 -_0805B230: .4byte gUnknown_82D8D70 -_0805B234: - ldr r1, _0805B250 - lsls r0, r4, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #8 - subs r0, r0, r1 - lsls r0, r0, #0x12 - movs r1, #0xa0 - lsls r1, r1, #0xf - adds r0, r0, r1 - lsrs r7, r0, #0x10 - ldr r5, _0805B254 - b _0805B272 - .align 2, 0 -_0805B250: .4byte gUnknown_82D95BC -_0805B254: .4byte gUnknown_2022C90 -_0805B258: - movs r0, #0x50 - mov sb, r0 - ldr r1, _0805B384 -_0805B25E: - lsls r0, r4, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #8 - subs r0, r0, r1 - lsls r0, r0, #0x12 - movs r1, #0xa0 - lsls r1, r1, #0xf - adds r0, r0, r1 - lsrs r7, r0, #0x10 -_0805B272: - ldr r0, [r5] - movs r1, #0x80 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _0805B280 - b _0805B3B0 -_0805B280: - ldr r0, _0805B388 - ldrh r1, [r0] - ldr r0, _0805B38C - cmp r1, r0 - bne _0805B28C - b _0805B3B0 -_0805B28C: - ldr r0, _0805B390 - ldr r0, [r0] - ldrb r0, [r0, #8] - bl PlayerGenderToFrontTrainerPicId - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r5, r4, #0 - ldr r6, _0805B394 - ldrb r1, [r6] - adds r0, r5, #0 - bl DecompressTrainerFrontPic - ldrb r0, [r6] - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl SetMultiuseSpriteTemplateToTrainerFront - ldr r0, _0805B398 - mov r8, r0 - lsls r4, r7, #0x10 - asrs r4, r4, #0x10 - ldrb r0, [r6] - bl GetBattlerSpriteSubpriority - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r0, r8 - mov r1, sb - adds r2, r4, #0 - bl CreateSprite - ldr r4, _0805B39C - ldrb r1, [r6] - adds r1, r1, r4 - strb r0, [r1] - ldr r0, _0805B3A0 - lsls r5, r5, #3 - adds r5, r5, r0 - ldrh r0, [r5, #4] - bl IndexOfSpritePaletteTag - ldr r5, _0805B3A4 - ldrb r1, [r6] - adds r1, r1, r4 - ldrb r1, [r1] - lsls r2, r1, #4 - adds r2, r2, r1 - lsls r2, r2, #2 - adds r2, r2, r5 - lsls r0, r0, #4 - ldrb r3, [r2, #5] - movs r1, #0xf - ands r1, r3 - orrs r1, r0 - strb r1, [r2, #5] - ldrb r0, [r6] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0xf0 - strh r1, [r0, #0x24] - ldrb r0, [r6] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0x30 - strh r1, [r0, #0x26] - ldrb r0, [r6] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _0805B3A8 - strh r1, [r0, #0x2e] - ldrb r0, [r6] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r5, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _0805B3AC - str r1, [r0] - ldrb r0, [r6] - adds r0, r0, r4 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrb r2, [r1, #1] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #1] - ldrb r0, [r6] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3f - ldrb r1, [r0] - movs r2, #1 - orrs r1, r2 - strb r1, [r0] - b _0805B446 - .align 2, 0 -_0805B384: .4byte gUnknown_82D95BC -_0805B388: .4byte gUnknown_203886E -_0805B38C: .4byte 0x00000C03 -_0805B390: .4byte gUnknown_3005AF0 -_0805B394: .4byte gUnknown_2023D08 -_0805B398: .4byte gUnknown_2024640 -_0805B39C: .4byte gUnknown_2023E88 -_0805B3A0: .4byte gUnknown_82D91CC -_0805B3A4: .4byte gUnknown_20205AC -_0805B3A8: .4byte 0x0000FFFE -_0805B3AC: .4byte sub_0805D3C8 -_0805B3B0: - ldr r5, _0805B460 - ldrb r1, [r5] - adds r0, r4, #0 - bl DecompressTrainerBackPic - ldrb r0, [r5] - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl SetMultiuseSpriteTemplateToTrainerBack - ldr r6, _0805B464 - mov r8, sb - lsls r4, r7, #0x10 - asrs r4, r4, #0x10 - ldrb r0, [r5] - bl GetBattlerSpriteSubpriority - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r6, #0 - mov r1, r8 - adds r2, r4, #0 - bl CreateSprite - ldr r6, _0805B468 - ldrb r1, [r5] - adds r1, r1, r6 - strb r0, [r1] - ldr r4, _0805B46C - ldrb r3, [r5] - adds r0, r3, r6 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - lsls r3, r3, #4 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #5] - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0xf0 - strh r1, [r0, #0x24] - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _0805B470 - strh r1, [r0, #0x2e] - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, #0x1c - adds r0, r0, r4 - ldr r1, _0805B474 - str r1, [r0] -_0805B446: - ldr r1, _0805B478 - ldr r0, _0805B460 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805B47C - str r1, [r0] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805B460: .4byte gUnknown_2023D08 -_0805B464: .4byte gUnknown_2024640 -_0805B468: .4byte gUnknown_2023E88 -_0805B46C: .4byte gUnknown_20205AC -_0805B470: .4byte 0x0000FFFE -_0805B474: .4byte sub_0805D3C8 -_0805B478: .4byte gUnknown_3005AC0 -_0805B47C: .4byte sub_08058454 - thumb_func_end PlayerHandleDrawTrainerPic - - thumb_func_start PlayerHandleTrainerSlide -PlayerHandleTrainerSlide: @ 0x0805B480 - push {r4, r5, r6, lr} - ldr r0, _0805B4D8 - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _0805B53C - bl GetMultiplayerId - ldr r5, _0805B4DC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - movs r4, #0xff - ldrb r0, [r1] - cmp r0, #4 - beq _0805B4C2 - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrh r1, [r1] - adds r0, r4, #0 - ands r0, r1 - cmp r0, #5 - bne _0805B4E0 -_0805B4C2: - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrb r0, [r1, #0x13] - adds r4, r0, #2 - b _0805B542 - .align 2, 0 -_0805B4D8: .4byte gUnknown_2022C90 -_0805B4DC: .4byte gUnknown_20226A0 -_0805B4E0: - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrh r1, [r1] - adds r0, r4, #0 - ands r0, r1 - cmp r0, #2 - beq _0805B512 - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrh r0, [r1] - ands r4, r0 - cmp r4, #1 - bne _0805B528 -_0805B512: - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrb r0, [r1, #0x13] - adds r4, r0, #4 - b _0805B542 -_0805B528: - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrb r4, [r1, #0x13] - b _0805B542 -_0805B53C: - ldr r0, _0805B5EC - ldr r0, [r0] - ldrb r4, [r0, #8] -_0805B542: - ldr r5, _0805B5F0 - ldrb r1, [r5] - adds r0, r4, #0 - bl DecompressTrainerBackPic - ldrb r0, [r5] - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl SetMultiuseSpriteTemplateToTrainerBack - ldr r0, _0805B5F4 - ldr r1, _0805B5F8 - lsls r4, r4, #2 - adds r4, r4, r1 - ldrb r1, [r4] - movs r2, #8 - subs r2, r2, r1 - lsls r2, r2, #0x12 - movs r1, #0xa0 - lsls r1, r1, #0xf - adds r2, r2, r1 - asrs r2, r2, #0x10 - movs r1, #0x50 - movs r3, #0x1e - bl CreateSprite - ldr r6, _0805B5FC - ldrb r1, [r5] - adds r1, r1, r6 - strb r0, [r1] - ldr r4, _0805B600 - ldrb r3, [r5] - adds r0, r3, r6 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - lsls r3, r3, #4 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #5] - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _0805B604 - strh r1, [r0, #0x24] - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #2 - strh r1, [r0, #0x2e] - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, #0x1c - adds r0, r0, r4 - ldr r1, _0805B608 - str r1, [r0] - ldr r1, _0805B60C - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805B610 - str r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0805B5EC: .4byte gUnknown_3005AF0 -_0805B5F0: .4byte gUnknown_2023D08 -_0805B5F4: .4byte gUnknown_2024640 -_0805B5F8: .4byte gUnknown_82D95BC -_0805B5FC: .4byte gUnknown_2023E88 -_0805B600: .4byte gUnknown_20205AC -_0805B604: .4byte 0x0000FFA0 -_0805B608: .4byte sub_0805D3C8 -_0805B60C: .4byte gUnknown_3005AC0 -_0805B610: .4byte sub_0805848C - thumb_func_end PlayerHandleTrainerSlide - - thumb_func_start PlayerHandleTrainerSlideBack -PlayerHandleTrainerSlideBack: @ 0x0805B614 - push {r4, r5, r6, lr} - ldr r5, _0805B6B4 - ldr r6, _0805B6B8 - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _0805B6BC - adds r0, r0, r4 - bl SetSpritePrimaryCoordsFromSecondaryCoords - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0x32 - strh r1, [r0, #0x2e] - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _0805B6C0 - strh r1, [r0, #0x32] - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r0, #0x22] - strh r1, [r0, #0x36] - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _0805B6C4 - str r1, [r0] - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _0805B6C8 - bl StoreSpriteCallbackInData6 - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #1 - bl StartSpriteAnim - ldr r1, _0805B6CC - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805B6D0 - str r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0805B6B4: .4byte gUnknown_2023E88 -_0805B6B8: .4byte gUnknown_2023D08 -_0805B6BC: .4byte gUnknown_20205AC -_0805B6C0: .4byte 0x0000FFD8 -_0805B6C4: .4byte sub_080A67B4 -_0805B6C8: .4byte sub_08007140 -_0805B6CC: .4byte gUnknown_3005AC0 -_0805B6D0: .4byte sub_080584C4 - thumb_func_end PlayerHandleTrainerSlideBack - - thumb_func_start PlayerHandleFaintAnimation -PlayerHandleFaintAnimation: @ 0x0805B6D4 - push {r4, r5, r6, lr} - ldr r6, _0805B720 - ldr r4, [r6] - ldr r5, _0805B724 - ldrb r2, [r5] - ldr r0, [r4, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r3, r1, r0 - ldrb r0, [r3, #4] - cmp r0, #0 - bne _0805B728 - ldr r1, [r4] - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0805B708 - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #5 - bl InitAndLaunchSpecialAnimation -_0805B708: - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #4] - adds r1, #1 - strb r1, [r0, #4] - b _0805B79E - .align 2, 0 -_0805B720: .4byte gUnknown_2024174 -_0805B724: .4byte gUnknown_2023D08 -_0805B728: - ldrb r1, [r3] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _0805B79E - strb r4, [r3, #4] - ldr r2, _0805B7A4 - ldrb r1, [r5] - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r2, [r0] - movs r0, #0x64 - muls r0, r2, r0 - ldr r2, _0805B7A8 - adds r0, r0, r2 - bl HandleLowHpMusicChange - movs r1, #0x40 - rsbs r1, r1, #0 - movs r0, #0x10 - bl PlaySE12WithPanning - ldr r2, _0805B7AC - ldr r3, _0805B7B0 - ldrb r0, [r5] - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r4, [r0, #0x30] - ldrb r0, [r5] - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #5 - strh r1, [r0, #0x32] - ldrb r0, [r5] - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, _0805B7B4 - str r1, [r0] - ldr r1, _0805B7B8 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805B7BC - str r1, [r0] -_0805B79E: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0805B7A4: .4byte gUnknown_2023D12 -_0805B7A8: .4byte gUnknown_2024190 -_0805B7AC: .4byte gUnknown_20205AC -_0805B7B0: .4byte gUnknown_2023E88 -_0805B7B4: .4byte sub_08039844 -_0805B7B8: .4byte gUnknown_3005AC0 -_0805B7BC: .4byte sub_080592B8 - thumb_func_end PlayerHandleFaintAnimation - - thumb_func_start PlayerHandlePaletteFade -PlayerHandlePaletteFade: @ 0x0805B7C0 - push {lr} - sub sp, #4 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r1, #2 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - bl PlayerBufferExecCompleted - add sp, #4 - pop {r0} - bx r0 - thumb_func_end PlayerHandlePaletteFade - - thumb_func_start PlayerHandleSuccessBallThrowAnim -PlayerHandleSuccessBallThrowAnim: @ 0x0805B7E0 - push {r4, r5, lr} - ldr r0, _0805B820 - ldr r0, [r0] - ldr r1, [r0, #8] - movs r0, #4 - strb r0, [r1, #8] - ldr r1, _0805B824 - movs r0, #1 - strb r0, [r1] - ldr r5, _0805B828 - ldrb r4, [r5] - movs r0, #1 - bl GetBattlerAtPosition - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r4, #0 - movs r3, #3 - bl InitAndLaunchSpecialAnimation - ldr r1, _0805B82C - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805B830 - str r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0805B820: .4byte gUnknown_2024174 -_0805B824: .4byte gUnknown_202415D -_0805B828: .4byte gUnknown_2023D08 -_0805B82C: .4byte gUnknown_3005AC0 -_0805B830: .4byte sub_0805952C - thumb_func_end PlayerHandleSuccessBallThrowAnim - - thumb_func_start PlayerHandleBallThrowAnim -PlayerHandleBallThrowAnim: @ 0x0805B834 - push {r4, r5, lr} - ldr r1, _0805B87C - ldr r5, _0805B880 - ldrb r0, [r5] - lsls r0, r0, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r1, [r0] - ldr r0, _0805B884 - ldr r0, [r0] - ldr r0, [r0, #8] - strb r1, [r0, #8] - ldr r1, _0805B888 - movs r0, #1 - strb r0, [r1] - ldrb r4, [r5] - movs r0, #1 - bl GetBattlerAtPosition - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r4, #0 - movs r3, #3 - bl InitAndLaunchSpecialAnimation - ldr r1, _0805B88C - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805B890 - str r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0805B87C: .4byte gUnknown_2022D08 -_0805B880: .4byte gUnknown_2023D08 -_0805B884: .4byte gUnknown_2024174 -_0805B888: .4byte gUnknown_202415D -_0805B88C: .4byte gUnknown_3005AC0 -_0805B890: .4byte sub_0805952C - thumb_func_end PlayerHandleBallThrowAnim - - thumb_func_start PlayerHandlePause -PlayerHandlePause: @ 0x0805B894 - push {lr} - ldr r1, _0805B8BC - ldr r0, _0805B8C0 - ldrb r0, [r0] - lsls r0, r0, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _0805B8B2 -_0805B8A8: - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0805B8A8 -_0805B8B2: - bl PlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_0805B8BC: .4byte gUnknown_2022D08 -_0805B8C0: .4byte gUnknown_2023D08 - thumb_func_end PlayerHandlePause - - thumb_func_start PlayerHandleMoveAnimation -PlayerHandleMoveAnimation: @ 0x0805B8C4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r5, _0805B9B4 - ldrb r0, [r5] - bl mplay_80342A4 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0805B8DA - b _0805BA00 -_0805B8DA: - ldr r0, _0805B9B8 - mov ip, r0 - ldrb r1, [r5] - lsls r1, r1, #9 - adds r0, #1 - adds r0, r1, r0 - ldrb r6, [r0] - mov r0, ip - adds r0, #2 - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, r0, #8 - orrs r6, r0 - ldr r0, _0805B9BC - mov r8, r0 - mov r0, ip - adds r0, #3 - adds r1, r1, r0 - ldrb r0, [r1] - mov r1, r8 - strb r0, [r1] - ldr r3, _0805B9C0 - ldrb r1, [r5] - lsls r1, r1, #9 - mov r0, ip - adds r0, #4 - adds r0, r1, r0 - ldrb r2, [r0] - mov r0, ip - adds r0, #5 - adds r1, r1, r0 - ldrb r0, [r1] - lsls r0, r0, #8 - orrs r2, r0 - strh r2, [r3] - ldr r3, _0805B9C4 - ldrb r1, [r5] - lsls r1, r1, #9 - mov r0, ip - adds r0, #6 - adds r0, r1, r0 - ldrb r2, [r0] - mov r0, ip - adds r0, #7 - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, r0, #8 - orrs r2, r0 - mov r0, ip - adds r0, #8 - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, r0, #0x10 - orrs r2, r0 - mov r0, ip - adds r0, #9 - adds r1, r1, r0 - ldrb r0, [r1] - lsls r0, r0, #0x18 - orrs r2, r0 - str r2, [r3] - ldr r2, _0805B9C8 - ldrb r0, [r5] - lsls r0, r0, #9 - mov r1, ip - adds r1, #0xa - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r4, _0805B9CC - ldrb r1, [r5] - lsls r1, r1, #9 - mov r0, ip - adds r0, #0xc - adds r0, r1, r0 - ldrb r2, [r0] - mov r0, ip - adds r0, #0xd - adds r1, r1, r0 - ldrb r0, [r1] - lsls r0, r0, #8 - orrs r2, r0 - strh r2, [r4] - ldr r7, _0805B9D0 - ldrb r1, [r5] - lsls r1, r1, #9 - mov r0, ip - adds r0, #0x10 - adds r1, r1, r0 - str r1, [r7] - ldr r2, _0805B9D4 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, [r1] - str r1, [r0] - mov r0, r8 - ldrb r1, [r0] - adds r0, r6, #0 - bl sub_0805D7A8 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - beq _0805B9D8 - bl PlayerBufferExecCompleted - b _0805BA00 - .align 2, 0 -_0805B9B4: .4byte gUnknown_2023D08 -_0805B9B8: .4byte gUnknown_2022D08 -_0805B9BC: .4byte gUnknown_20380D2 -_0805B9C0: .4byte gUnknown_20380A8 -_0805B9C4: .4byte gUnknown_20380A4 -_0805B9C8: .4byte gUnknown_20380BA -_0805B9CC: .4byte gUnknown_20380BC -_0805B9D0: .4byte gUnknown_20380A0 -_0805B9D4: .4byte gUnknown_2024160 -_0805B9D8: - ldr r0, _0805BA0C - ldr r0, [r0] - ldrb r1, [r5] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strb r3, [r0, #4] - ldr r1, _0805BA10 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805BA14 - str r1, [r0] - ldrh r1, [r4] - ldr r2, [r7] - adds r0, r6, #0 - bl BattleTv_SetDataBasedOnMove -_0805BA00: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805BA0C: .4byte gUnknown_2024174 -_0805BA10: .4byte gUnknown_3005AC0 -_0805BA14: .4byte sub_0805BA18 - thumb_func_end PlayerHandleMoveAnimation - - thumb_func_start sub_0805BA18 -sub_0805BA18: @ 0x0805BA18 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r2, _0805BA64 - ldr r6, _0805BA68 - ldrb r3, [r6] - lsls r1, r3, #9 - adds r0, r2, #1 - mov sl, r0 - adds r0, r1, r0 - ldrb r4, [r0] - adds r5, r2, #2 - mov sb, r5 - adds r0, r1, r5 - ldrb r0, [r0] - lsls r0, r0, #8 - orrs r4, r0 - adds r2, #0xb - adds r1, r1, r2 - ldrb r1, [r1] - mov r8, r1 - ldr r7, _0805BA6C - ldr r5, [r7] - ldr r1, [r5, #4] - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r2, [r0, #4] - cmp r2, #1 - beq _0805BAB0 - cmp r2, #1 - bgt _0805BA70 - cmp r2, #0 - beq _0805BA7A - b _0805BB8C - .align 2, 0 -_0805BA64: .4byte gUnknown_2022D08 -_0805BA68: .4byte gUnknown_2023D08 -_0805BA6C: .4byte gUnknown_2024174 -_0805BA70: - cmp r2, #2 - beq _0805BADA - cmp r2, #3 - beq _0805BB50 - b _0805BB8C -_0805BA7A: - ldr r1, [r5] - lsls r0, r3, #2 - adds r1, r0, r1 - ldrb r2, [r1] - movs r0, #0xc - ands r0, r2 - cmp r0, #4 - bne _0805BA9C - movs r0, #8 - orrs r0, r2 - strb r0, [r1] - ldrb r2, [r6] - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #5 - bl InitAndLaunchSpecialAnimation -_0805BA9C: - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #1 - strb r1, [r0, #4] - b _0805BB8C -_0805BAB0: - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _0805BB8C - movs r0, #0 - bl sub_0805E7B8 - adds r0, r4, #0 - bl DoMoveAnim - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #2 - strb r1, [r0, #4] - b _0805BB8C -_0805BADA: - ldr r0, _0805BB40 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _0805BB44 - ldrb r0, [r0] - cmp r0, #0 - bne _0805BB8C - movs r0, #1 - bl sub_0805E7B8 - ldr r0, [r7] - ldrb r2, [r6] - ldr r1, [r0] - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0805BB28 - mov r0, r8 - cmp r0, #1 - bhi _0805BB28 - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #6 - bl InitAndLaunchSpecialAnimation - ldr r0, [r7] - ldrb r1, [r6] - ldr r0, [r0] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] -_0805BB28: - ldr r0, _0805BB48 - ldr r2, [r0] - ldr r0, _0805BB4C - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #3 - strb r1, [r0, #4] - b _0805BB8C - .align 2, 0 -_0805BB40: .4byte gUnknown_2038098 -_0805BB44: .4byte gUnknown_203809D -_0805BB48: .4byte gUnknown_2024174 -_0805BB4C: .4byte gUnknown_2023D08 -_0805BB50: - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _0805BB8C - bl CopyAllBattleSpritesInvisibilities - ldrb r0, [r6] - lsls r2, r0, #9 - mov r3, sl - adds r1, r2, r3 - ldrb r1, [r1] - add r2, sb - ldrb r2, [r2] - lsls r2, r2, #8 - orrs r1, r2 - bl TrySetBehindSubstituteSpriteBit - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strb r4, [r0, #4] - bl PlayerBufferExecCompleted -_0805BB8C: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0805BA18 - - thumb_func_start PlayerHandlePrintString -PlayerHandlePrintString: @ 0x0805BB9C - push {r4, r5, lr} - ldr r0, _0805BBE0 - movs r1, #0 - strh r1, [r0] - ldr r0, _0805BBE4 - strh r1, [r0] - ldr r5, _0805BBE8 - ldrb r4, [r5] - lsls r4, r4, #9 - ldr r0, _0805BBEC - adds r4, r4, r0 - ldrh r0, [r4] - bl PrintOnTrainerHillRecordsWindow - ldr r0, _0805BBF0 - movs r1, #0 - bl sub_0814FA04 - ldr r1, _0805BBF4 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805BBF8 - str r1, [r0] - ldrh r0, [r4] - bl BattleTv_SetDataBasedOnString - ldrb r0, [r5] - ldrh r1, [r4] - bl BattleArena_DeductMindPoints - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0805BBE0: .4byte gUnknown_2022AC8 -_0805BBE4: .4byte gUnknown_2022ACA -_0805BBE8: .4byte gUnknown_2023D08 -_0805BBEC: .4byte gUnknown_2022D0A -_0805BBF0: .4byte gUnknown_2022AE0 -_0805BBF4: .4byte gUnknown_3005AC0 -_0805BBF8: .4byte sub_080593C4 - thumb_func_end PlayerHandlePrintString - - thumb_func_start PlayerHandlePrintSelectionString -PlayerHandlePrintSelectionString: @ 0x0805BBFC - push {lr} - ldr r0, _0805BC14 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805BC18 - bl PlayerHandlePrintString - b _0805BC1C - .align 2, 0 -_0805BC14: .4byte gUnknown_2023D08 -_0805BC18: - bl PlayerBufferExecCompleted -_0805BC1C: - pop {r0} - bx r0 - thumb_func_end PlayerHandlePrintSelectionString - - thumb_func_start sub_0805BC20 -sub_0805BC20: @ 0x0805BC20 - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0805BC46 - ldr r0, _0805BC4C - strh r1, [r0] - ldr r1, _0805BC50 - movs r0, #0xa0 - strh r0, [r1] - ldr r1, _0805BC54 - ldr r0, _0805BC58 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805BC5C - str r1, [r0] -_0805BC46: - pop {r0} - bx r0 - .align 2, 0 -_0805BC4C: .4byte gUnknown_2022AC8 -_0805BC50: .4byte gUnknown_2022ACA -_0805BC54: .4byte gUnknown_3005AC0 -_0805BC58: .4byte gUnknown_2023D08 -_0805BC5C: .4byte sub_08057198 - thumb_func_end sub_0805BC20 - - thumb_func_start PlayerHandleChooseAction -PlayerHandleChooseAction: @ 0x0805BC60 - push {r4, lr} - ldr r1, _0805BCB0 - ldr r0, _0805BCB4 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805BCB8 - str r1, [r0] - bl BattleTv_ClearExplosionFaintCause - ldr r0, _0805BCBC - movs r1, #2 - bl sub_0814FA04 - movs r4, #0 -_0805BC7E: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl MoveSelectionDestroyCursorAt - adds r4, #1 - cmp r4, #3 - ble _0805BC7E - ldr r1, _0805BCC0 - ldr r0, _0805BCB4 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #0 - bl ActionSelectionCreateCursorAt - ldr r0, _0805BCC4 - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r0, _0805BCC8 - movs r1, #1 - bl sub_0814FA04 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805BCB0: .4byte gUnknown_3005AC0 -_0805BCB4: .4byte gUnknown_2023D08 -_0805BCB8: .4byte sub_0805BC20 -_0805BCBC: .4byte gUnknown_85ABB72 -_0805BCC0: .4byte gUnknown_2024150 -_0805BCC4: .4byte gUnknown_85ABB43 -_0805BCC8: .4byte gUnknown_2022AE0 - thumb_func_end PlayerHandleChooseAction - - thumb_func_start PlayerHandleUnknownYesNoBox -PlayerHandleUnknownYesNoBox: @ 0x0805BCCC - push {r4, lr} - sub sp, #4 - ldr r4, _0805BD10 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0805BD24 - str r0, [sp] - movs r0, #0x18 - movs r1, #8 - movs r2, #0x1d - movs r3, #0xd - bl HandleBattleWindow - ldr r0, _0805BD14 - movs r1, #0xc - bl sub_0814FA04 - ldr r1, _0805BD18 - movs r0, #1 - strb r0, [r1] - movs r0, #1 - bl BattleCreateYesNoCursorAt - ldr r1, _0805BD1C - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805BD20 - str r1, [r0] - b _0805BD28 - .align 2, 0 -_0805BD10: .4byte gUnknown_2023D08 -_0805BD14: .4byte gUnknown_85ABBC9 -_0805BD18: .4byte gUnknown_3005AD4 -_0805BD1C: .4byte gUnknown_3005AC0 -_0805BD20: .4byte PlayerHandleUnknownYesNoInput -_0805BD24: - bl PlayerBufferExecCompleted -_0805BD28: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end PlayerHandleUnknownYesNoBox - - thumb_func_start HandleChooseMoveAfterDma3 -HandleChooseMoveAfterDma3: @ 0x0805BD30 - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0805BD5A - ldr r0, _0805BD60 - strh r1, [r0] - ldr r1, _0805BD64 - movs r2, #0xa0 - lsls r2, r2, #1 - adds r0, r2, #0 - strh r0, [r1] - ldr r1, _0805BD68 - ldr r0, _0805BD6C - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805BD70 - str r1, [r0] -_0805BD5A: - pop {r0} - bx r0 - .align 2, 0 -_0805BD60: .4byte gUnknown_2022AC8 -_0805BD64: .4byte gUnknown_2022ACA -_0805BD68: .4byte gUnknown_3005AC0 -_0805BD6C: .4byte gUnknown_2023D08 -_0805BD70: .4byte HandleInputChooseMove - thumb_func_end HandleChooseMoveAfterDma3 - - thumb_func_start PlayerChooseMoveInBattlePalace -PlayerChooseMoveInBattlePalace: @ 0x0805BD74 - push {lr} - ldr r0, _0805BDB4 - ldrb r1, [r0] - ldr r0, _0805BDB8 - ldr r0, [r0] - adds r1, r1, r0 - movs r0, #0xa6 - lsls r0, r0, #2 - adds r1, r1, r0 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805BDB0 - ldr r1, _0805BDBC - ldr r0, _0805BDC0 - ldr r0, [r0] - str r0, [r1] - bl ChooseMoveAndTargetInBattlePalace - adds r2, r0, #0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - movs r0, #1 - movs r1, #0xa - bl BtlController_EmitTwoReturnValues - bl PlayerBufferExecCompleted -_0805BDB0: - pop {r0} - bx r0 - .align 2, 0 -_0805BDB4: .4byte gUnknown_2023D08 -_0805BDB8: .4byte gUnknown_2024140 -_0805BDBC: .4byte gUnknown_203B9FC -_0805BDC0: .4byte gUnknown_3005AE0 - thumb_func_end PlayerChooseMoveInBattlePalace - - thumb_func_start PlayerHandleChooseMove -PlayerHandleChooseMove: @ 0x0805BDC4 - push {lr} - ldr r0, _0805BDF4 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xa - ands r0, r1 - cmp r0, #0 - beq _0805BE08 - ldr r2, _0805BDF8 - ldrb r0, [r2] - ldr r1, _0805BDFC - ldr r1, [r1] - adds r0, r0, r1 - movs r1, #0xa6 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r1, #8 - strb r1, [r0] - ldr r1, _0805BE00 - ldrb r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805BE04 - b _0805BE18 - .align 2, 0 -_0805BDF4: .4byte gUnknown_2022C90 -_0805BDF8: .4byte gUnknown_2023D08 -_0805BDFC: .4byte gUnknown_2024140 -_0805BE00: .4byte gUnknown_3005AC0 -_0805BE04: .4byte PlayerChooseMoveInBattlePalace -_0805BE08: - bl InitMoveSelectionsVarsAndStrings - ldr r1, _0805BE20 - ldr r0, _0805BE24 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805BE28 -_0805BE18: - str r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_0805BE20: .4byte gUnknown_3005AC0 -_0805BE24: .4byte gUnknown_2023D08 -_0805BE28: .4byte HandleChooseMoveAfterDma3 - thumb_func_end PlayerHandleChooseMove - - thumb_func_start InitMoveSelectionsVarsAndStrings -InitMoveSelectionsVarsAndStrings: @ 0x0805BE2C - push {lr} - bl sub_080596BC - ldr r1, _0805BE58 - movs r0, #0xff - strb r0, [r1] - ldr r1, _0805BE5C - ldr r0, _0805BE60 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #0 - bl MoveSelectionCreateCursorAt - bl sub_08059734 - bl MoveSelectionDisplayPpNumber - bl sub_080597E0 - pop {r0} - bx r0 - .align 2, 0 -_0805BE58: .4byte gUnknown_3005AD4 -_0805BE5C: .4byte gUnknown_2024154 -_0805BE60: .4byte gUnknown_2023D08 - thumb_func_end InitMoveSelectionsVarsAndStrings - - thumb_func_start PlayerHandleChooseItem -PlayerHandleChooseItem: @ 0x0805BE64 - push {r4, r5, lr} - sub sp, #4 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _0805BEB0 - ldr r2, _0805BEB4 - ldrb r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805BEB8 - str r1, [r0] - ldr r1, _0805BEBC - ldrb r0, [r2] - strb r0, [r1] - movs r3, #0 - ldr r5, _0805BEC0 - ldr r4, _0805BEC4 -_0805BE92: - adds r0, r3, r5 - ldrb r1, [r2] - lsls r1, r1, #9 - adds r1, #1 - adds r1, r3, r1 - adds r1, r1, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r3, #1 - cmp r3, #2 - ble _0805BE92 - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0805BEB0: .4byte gUnknown_3005AC0 -_0805BEB4: .4byte gUnknown_2023D08 -_0805BEB8: .4byte OpenBagAndChooseItem -_0805BEBC: .4byte gUnknown_202415C -_0805BEC0: .4byte gUnknown_203CBCC -_0805BEC4: .4byte gUnknown_2022D08 - thumb_func_end PlayerHandleChooseItem - - thumb_func_start PlayerHandleChoosePokemon -PlayerHandleChoosePokemon: @ 0x0805BEC8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - movs r3, #0 - ldr r0, _0805BF38 - mov ip, r0 - ldr r1, _0805BF3C - mov r8, r1 - ldr r2, _0805BF40 - ldr r7, _0805BF44 - mov r6, ip - mov r5, r8 - adds r4, r2, #0 -_0805BEE4: - adds r0, r3, r6 - ldrb r1, [r4] - lsls r1, r1, #9 - adds r1, #4 - adds r1, r3, r1 - adds r1, r1, r5 - ldrb r1, [r1] - strb r1, [r0] - adds r3, #1 - cmp r3, #2 - ble _0805BEE4 - ldr r0, [r7] - movs r1, #0x80 - lsls r1, r1, #0xb - ands r0, r1 - cmp r0, #0 - beq _0805BF4C - ldrb r3, [r2] - lsls r0, r3, #9 - mov r1, r8 - adds r1, #1 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0xf - ands r0, r1 - cmp r0, #2 - beq _0805BF4C - ldr r1, _0805BF48 - lsls r0, r3, #1 - adds r0, r0, r1 - ldrb r1, [r0] - adds r1, #1 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #1 - mov r2, ip - bl BtlController_EmitChosenMonReturnValue - bl PlayerBufferExecCompleted - b _0805BFD8 - .align 2, 0 -_0805BF38: .4byte gUnknown_203CBCC -_0805BF3C: .4byte gUnknown_2022D08 -_0805BF40: .4byte gUnknown_2023D08 -_0805BF44: .4byte gUnknown_2022C90 -_0805BF48: .4byte gUnknown_2023D12 -_0805BF4C: - ldr r0, _0805BFE4 - movs r1, #0xff - bl CreateTask - ldr r3, _0805BFE8 - ldr r4, _0805BFEC - ldrb r1, [r4] - adds r1, r1, r3 - movs r2, #0 - mov r8, r2 - strb r0, [r1] - ldr r5, _0805BFF0 - ldrb r2, [r4] - adds r3, r2, r3 - ldrb r0, [r3] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r5 - ldr r5, _0805BFF4 - lsls r2, r2, #9 - adds r6, r5, #1 - adds r2, r2, r6 - ldrb r2, [r2] - movs r0, #0xf - ands r0, r2 - strh r0, [r1, #8] - ldr r3, _0805BFF8 - ldr r1, [r3] - adds r1, #0x49 - ldrb r0, [r4] - lsls r0, r0, #9 - adds r0, r0, r6 - ldrb r0, [r0] - lsrs r0, r0, #4 - strb r0, [r1] - ldr r2, [r3] - adds r2, #0x8b - ldrb r0, [r4] - lsls r0, r0, #9 - adds r1, r5, #2 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r1, [r3] - adds r1, #0xb0 - ldrb r0, [r4] - lsls r0, r0, #9 - adds r5, #3 - adds r0, r0, r5 - ldrb r0, [r0] - strb r0, [r1] - movs r0, #1 - rsbs r0, r0, #0 - mov r1, r8 - str r1, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _0805BFFC - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805C000 - str r1, [r0] - ldr r1, _0805C004 - ldrb r0, [r4] - strb r0, [r1] -_0805BFD8: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805BFE4: .4byte sub_080A8A40 -_0805BFE8: .4byte gUnknown_3005ADC -_0805BFEC: .4byte gUnknown_2023D08 -_0805BFF0: .4byte gUnknown_3005B60 -_0805BFF4: .4byte gUnknown_2022D08 -_0805BFF8: .4byte gUnknown_2024140 -_0805BFFC: .4byte gUnknown_3005AC0 -_0805C000: .4byte OpenPartyMenuToChooseMon -_0805C004: .4byte gUnknown_202415C - thumb_func_end PlayerHandleChoosePokemon - - thumb_func_start PlayerHandleCmd23 -PlayerHandleCmd23: @ 0x0805C008 - push {lr} - sub sp, #4 - bl BattleStopLowHpSound - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r1, #2 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - bl PlayerBufferExecCompleted - add sp, #4 - pop {r0} - bx r0 - thumb_func_end PlayerHandleCmd23 - - thumb_func_start PlayerHandleHealthBarUpdate -PlayerHandleHealthBarUpdate: @ 0x0805C02C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - movs r0, #0 - bl LoadBattleBarGfx - ldr r3, _0805C0B4 - ldr r0, _0805C0B8 - mov sb, r0 - ldrb r1, [r0] - lsls r1, r1, #9 - adds r0, r3, #2 - adds r0, r1, r0 - ldrb r2, [r0] - adds r3, #3 - adds r1, r1, r3 - ldrb r0, [r1] - lsls r0, r0, #8 - orrs r2, r0 - lsls r2, r2, #0x10 - asrs r7, r2, #0x10 - cmp r7, #0 - ble _0805C066 - ldr r1, _0805C0BC - ldr r0, [r1] - adds r0, r0, r7 - str r0, [r1] -_0805C066: - ldr r0, _0805C0C0 - cmp r7, r0 - beq _0805C0D0 - ldr r6, _0805C0C4 - mov r1, sb - ldrb r0, [r1] - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r0, [r0] - movs r5, #0x64 - muls r0, r5, r0 - ldr r4, _0805C0C8 - adds r0, r0, r4 - movs r1, #0x3a - bl GetMonData - mov r8, r0 - mov r2, sb - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r0, [r0] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #0x39 - bl GetMonData - adds r3, r0, #0 - mov r1, sb - ldrb r0, [r1] - ldr r1, _0805C0CC - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - mov r2, r8 - bl SetBattleBarStruct - b _0805C10E - .align 2, 0 -_0805C0B4: .4byte gUnknown_2022D08 -_0805C0B8: .4byte gUnknown_2023D08 -_0805C0BC: .4byte gUnknown_203CA3C -_0805C0C0: .4byte 0x00007FFF -_0805C0C4: .4byte gUnknown_2023D12 -_0805C0C8: .4byte gUnknown_2024190 -_0805C0CC: .4byte gUnknown_3005AD0 -_0805C0D0: - ldr r1, _0805C12C - mov r2, sb - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0805C130 - adds r0, r0, r1 - movs r1, #0x3a - bl GetMonData - adds r2, r0, #0 - mov r1, sb - ldrb r0, [r1] - ldr r4, _0805C134 - adds r1, r0, r4 - ldrb r1, [r1] - str r7, [sp] - movs r3, #0 - bl SetBattleBarStruct - mov r2, sb - ldrb r0, [r2] - adds r0, r0, r4 - ldrb r0, [r0] - movs r1, #0 - movs r2, #0 - bl sub_080726F4 -_0805C10E: - ldr r1, _0805C138 - ldr r0, _0805C13C - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805C140 - str r1, [r0] - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805C12C: .4byte gUnknown_2023D12 -_0805C130: .4byte gUnknown_2024190 -_0805C134: .4byte gUnknown_3005AD0 -_0805C138: .4byte gUnknown_3005AC0 -_0805C13C: .4byte gUnknown_2023D08 -_0805C140: .4byte sub_08058D40 - thumb_func_end PlayerHandleHealthBarUpdate - - thumb_func_start PlayerHandleExpUpdate -PlayerHandleExpUpdate: @ 0x0805C144 - push {r4, r5, r6, r7, lr} - ldr r5, _0805C170 - ldr r6, _0805C174 - ldrb r0, [r6] - lsls r0, r0, #9 - adds r1, r5, #1 - adds r0, r0, r1 - ldrb r7, [r0] - movs r0, #0x64 - adds r1, r7, #0 - muls r1, r0, r1 - ldr r0, _0805C178 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0x38 - bl GetMonData - cmp r0, #0x63 - bls _0805C17C - bl PlayerBufferExecCompleted - b _0805C1C8 - .align 2, 0 -_0805C170: .4byte gUnknown_2022D08 -_0805C174: .4byte gUnknown_2023D08 -_0805C178: .4byte gUnknown_2024190 -_0805C17C: - movs r0, #1 - bl LoadBattleBarGfx - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - ldrb r1, [r6] - lsls r1, r1, #9 - adds r0, r5, #2 - adds r0, r1, r0 - ldrb r4, [r0] - adds r0, r5, #3 - adds r1, r1, r0 - ldrb r0, [r1] - lsls r0, r0, #8 - orrs r4, r0 - ldr r0, _0805C1D0 - movs r1, #0xa - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0805C1D4 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r7, [r1, #8] - strh r4, [r1, #0xa] - ldrb r0, [r6] - strh r0, [r1, #0xc] - ldr r1, _0805C1D8 - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805C1DC - str r1, [r0] -_0805C1C8: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805C1D0: .4byte sub_08058DC8 -_0805C1D4: .4byte gUnknown_3005B60 -_0805C1D8: .4byte gUnknown_3005AC0 -_0805C1DC: .4byte sub_08057068 - thumb_func_end PlayerHandleExpUpdate - - thumb_func_start PlayerHandleStatusIconUpdate -PlayerHandleStatusIconUpdate: @ 0x0805C1E0 - push {r4, lr} - ldr r4, _0805C23C - ldrb r0, [r4] - bl mplay_80342A4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805C234 - ldr r0, _0805C240 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - ldr r2, _0805C244 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _0805C248 - adds r1, r1, r2 - movs r2, #9 - bl UpdateHealthboxAttribute - ldrb r2, [r4] - ldr r0, _0805C24C - ldr r0, [r0] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r1, _0805C250 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805C254 - str r1, [r0] -_0805C234: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805C23C: .4byte gUnknown_2023D08 -_0805C240: .4byte gUnknown_3005AD0 -_0805C244: .4byte gUnknown_2023D12 -_0805C248: .4byte gUnknown_2024190 -_0805C24C: .4byte gUnknown_2024174 -_0805C250: .4byte gUnknown_3005AC0 -_0805C254: .4byte sub_0805997C - thumb_func_end PlayerHandleStatusIconUpdate - - thumb_func_start PlayerHandleStatusAnimation -PlayerHandleStatusAnimation: @ 0x0805C258 - push {r4, r5, lr} - ldr r5, _0805C2B0 - ldrb r0, [r5] - bl mplay_80342A4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805C2A8 - ldr r4, _0805C2B4 - ldrb r3, [r5] - lsls r3, r3, #9 - adds r0, r4, #1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, #2 - adds r1, r3, r1 - ldrb r1, [r1] - adds r2, r4, #3 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, r2, #8 - orrs r1, r2 - adds r2, r4, #4 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, r2, #0x10 - orrs r1, r2 - adds r4, #5 - adds r3, r3, r4 - ldrb r2, [r3] - lsls r2, r2, #0x18 - orrs r1, r2 - bl InitAndLaunchChosenStatusAnimation - ldr r1, _0805C2B8 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805C2BC - str r1, [r0] -_0805C2A8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0805C2B0: .4byte gUnknown_2023D08 -_0805C2B4: .4byte gUnknown_2022D08 -_0805C2B8: .4byte gUnknown_3005AC0 -_0805C2BC: .4byte sub_0805997C - thumb_func_end PlayerHandleStatusAnimation - - thumb_func_start PlayerHandleStatusXor -PlayerHandleStatusXor: @ 0x0805C2C0 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #4 - ldr r0, _0805C31C - mov r8, r0 - ldr r4, _0805C320 - ldrb r0, [r4] - lsls r0, r0, #1 - add r0, r8 - ldrh r0, [r0] - movs r6, #0x64 - muls r0, r6, r0 - ldr r5, _0805C324 - adds r0, r0, r5 - movs r1, #0x37 - bl GetMonData - ldr r2, _0805C328 - ldrb r1, [r4] - lsls r1, r1, #9 - adds r2, #1 - adds r1, r1, r2 - ldrb r1, [r1] - eors r0, r1 - mov r1, sp - strb r0, [r1] - ldrb r0, [r4] - lsls r0, r0, #1 - add r0, r8 - ldrh r0, [r0] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #0x37 - mov r2, sp - bl SetMonData - bl PlayerBufferExecCompleted - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0805C31C: .4byte gUnknown_2023D12 -_0805C320: .4byte gUnknown_2023D08 -_0805C324: .4byte gUnknown_2024190 -_0805C328: .4byte gUnknown_2022D08 - thumb_func_end PlayerHandleStatusXor - - thumb_func_start sub_0805C32C -sub_0805C32C: @ 0x0805C32C - push {lr} - bl PlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0805C32C - - thumb_func_start PlayerHandleDMA3Transfer -PlayerHandleDMA3Transfer: @ 0x0805C338 - push {r4, r5, lr} - ldr r3, _0805C39C - ldr r0, _0805C3A0 - ldrb r2, [r0] - lsls r2, r2, #9 - adds r0, r3, #1 - adds r0, r2, r0 - ldrb r5, [r0] - adds r0, r3, #2 - adds r0, r2, r0 - ldrb r0, [r0] - lsls r0, r0, #8 - orrs r5, r0 - adds r0, r3, #3 - adds r0, r2, r0 - ldrb r0, [r0] - lsls r0, r0, #0x10 - orrs r5, r0 - adds r0, r3, #4 - adds r0, r2, r0 - ldrb r4, [r0] - lsls r4, r4, #0x18 - adds r0, r3, #5 - adds r0, r2, r0 - ldrb r1, [r0] - adds r0, r3, #6 - adds r0, r2, r0 - ldrb r0, [r0] - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - adds r3, #7 - adds r2, r2, r3 - orrs r5, r4 - lsrs r4, r1, #0x10 - movs r0, #0x80 - lsls r0, r0, #5 - cmp r4, r0 - bhi _0805C3A8 - ldr r0, _0805C3A4 - str r2, [r0] - str r5, [r0, #4] - lsrs r1, r1, #0x11 - movs r2, #0x80 - lsls r2, r2, #0x18 - orrs r1, r2 - str r1, [r0, #8] - ldr r0, [r0, #8] - b _0805C3D4 - .align 2, 0 -_0805C39C: .4byte gUnknown_2022D08 -_0805C3A0: .4byte gUnknown_2023D08 -_0805C3A4: .4byte 0x040000D4 -_0805C3A8: - ldr r3, _0805C3E0 - str r2, [r3] - str r5, [r3, #4] - ldr r0, _0805C3E4 - str r0, [r3, #8] - ldr r0, [r3, #8] - movs r0, #0x80 - lsls r0, r0, #5 - adds r2, r2, r0 - adds r5, r5, r0 - ldr r1, _0805C3E8 - adds r4, r4, r1 - cmp r4, r0 - bhi _0805C3A8 - str r2, [r3] - str r5, [r3, #4] - lsrs r0, r4, #1 - movs r1, #0x80 - lsls r1, r1, #0x18 - orrs r0, r1 - str r0, [r3, #8] - ldr r0, [r3, #8] -_0805C3D4: - bl PlayerBufferExecCompleted - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0805C3E0: .4byte 0x040000D4 -_0805C3E4: .4byte 0x80000800 -_0805C3E8: .4byte 0xFFFFF000 - thumb_func_end PlayerHandleDMA3Transfer - - thumb_func_start PlayerHandlePlayBGM -PlayerHandlePlayBGM: @ 0x0805C3EC - push {lr} - ldr r2, _0805C414 - ldr r0, _0805C418 - ldrb r1, [r0] - lsls r1, r1, #9 - adds r0, r2, #1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, #2 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - bl PlayBGM - bl PlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_0805C414: .4byte gUnknown_2022D08 -_0805C418: .4byte gUnknown_2023D08 - thumb_func_end PlayerHandlePlayBGM - - thumb_func_start ScrCmd_choosecontestmon -ScrCmd_choosecontestmon: @ 0x0805C41C - push {lr} - bl PlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ScrCmd_choosecontestmon - - thumb_func_start sub_0805C428 -sub_0805C428: @ 0x0805C428 - push {lr} - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl BtlController_EmitTwoReturnValues - bl PlayerBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_0805C428 - - thumb_func_start sub_0805C43C -sub_0805C43C: @ 0x0805C43C - push {lr} - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl BtlController_EmitChosenMonReturnValue - bl PlayerBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_0805C43C - - thumb_func_start sub_0805C450 -sub_0805C450: @ 0x0805C450 - push {lr} - movs r0, #1 - movs r1, #0 - bl BtlController_EmitOneReturnValue - bl PlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0805C450 - - thumb_func_start sub_0805C464 -sub_0805C464: @ 0x0805C464 - push {lr} - movs r0, #1 - movs r1, #0 - bl BtlController_EmitOneReturnValue_Duplicate - bl PlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0805C464 - - thumb_func_start sub_0805C478 -sub_0805C478: @ 0x0805C478 - push {lr} - ldr r2, _0805C490 - ldrb r1, [r2] - movs r0, #0x80 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - bl PlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_0805C490: .4byte gUnknown_20229C0 - thumb_func_end sub_0805C478 - - thumb_func_start PlayerHandleCmd38 -PlayerHandleCmd38: @ 0x0805C494 - push {lr} - ldr r3, _0805C4C0 - ldr r1, _0805C4C4 - ldr r0, _0805C4C8 - ldrb r0, [r0] - lsls r0, r0, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - ldrb r2, [r3] - movs r0, #0x80 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl PlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_0805C4C0: .4byte gUnknown_20229C0 -_0805C4C4: .4byte gUnknown_2022D08 -_0805C4C8: .4byte gUnknown_2023D08 - thumb_func_end PlayerHandleCmd38 - - thumb_func_start PlayerHandleCmd39 -PlayerHandleCmd39: @ 0x0805C4CC - push {lr} - ldr r2, _0805C4E0 - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - bl PlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_0805C4E0: .4byte gUnknown_20229C0 - thumb_func_end PlayerHandleCmd39 - - thumb_func_start PlayerHandleCmd40 -PlayerHandleCmd40: @ 0x0805C4E4 - push {lr} - ldr r3, _0805C508 - ldr r1, [r3] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x1f - movs r0, #1 - eors r1, r0 - lsls r1, r1, #7 - ldrb r2, [r3] - movs r0, #0x7f - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl PlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_0805C508: .4byte gUnknown_20229C0 - thumb_func_end PlayerHandleCmd40 - - thumb_func_start sub_0805C50C -sub_0805C50C: @ 0x0805C50C - push {r4, lr} - ldr r3, _0805C534 - ldr r2, _0805C538 - ldr r4, _0805C53C - ldrb r0, [r4] - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - bge _0805C540 - bl PlayerBufferExecCompleted - b _0805C56A - .align 2, 0 -_0805C534: .4byte gUnknown_20205AC -_0805C538: .4byte gUnknown_2023E88 -_0805C53C: .4byte gUnknown_2023D08 -_0805C540: - ldr r1, _0805C570 - movs r0, #1 - strb r0, [r1] - ldrb r0, [r4] - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r1, #0 - strh r1, [r0, #0x30] - ldrb r0, [r4] - bl sub_080763FC - ldr r1, _0805C574 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805C578 - str r1, [r0] -_0805C56A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805C570: .4byte gUnknown_202415D -_0805C574: .4byte gUnknown_3005AC0 -_0805C578: .4byte sub_08059568 - thumb_func_end sub_0805C50C - - thumb_func_start sub_0805C57C -sub_0805C57C: @ 0x0805C57C - push {lr} - bl PlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0805C57C - - thumb_func_start PlayerHandlePlaySE -PlayerHandlePlaySE: @ 0x0805C588 - push {r4, lr} - ldr r4, _0805C5C4 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - movs r3, #0x3f - cmp r0, #0 - bne _0805C59C - movs r3, #0xc0 -_0805C59C: - ldr r2, _0805C5C8 - ldrb r1, [r4] - lsls r1, r1, #9 - adds r0, r2, #1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, #2 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - lsls r1, r3, #0x18 - asrs r1, r1, #0x18 - bl PlaySE12WithPanning - bl PlayerBufferExecCompleted - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805C5C4: .4byte gUnknown_2023D08 -_0805C5C8: .4byte gUnknown_2022D08 - thumb_func_end PlayerHandlePlaySE - - thumb_func_start PlayerHandlePlayFanfareOrBGM -PlayerHandlePlayFanfareOrBGM: @ 0x0805C5CC - push {r4, r5, lr} - ldr r4, _0805C600 - ldr r5, _0805C604 - ldrb r0, [r5] - lsls r3, r0, #9 - adds r0, r4, #3 - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, #0 - beq _0805C608 - bl BattleStopLowHpSound - ldrb r1, [r5] - lsls r1, r1, #9 - adds r0, r4, #1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, r4, #2 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - bl PlayBGM - b _0805C61C - .align 2, 0 -_0805C600: .4byte gUnknown_2022D08 -_0805C604: .4byte gUnknown_2023D08 -_0805C608: - adds r0, r4, #1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, #2 - adds r1, r3, r1 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - bl PlayFanfare -_0805C61C: - bl PlayerBufferExecCompleted - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PlayerHandlePlayFanfareOrBGM - - thumb_func_start PlayerHandleFaintingCry -PlayerHandleFaintingCry: @ 0x0805C628 - push {lr} - ldr r1, _0805C65C - ldr r0, _0805C660 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0805C664 - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x19 - rsbs r1, r1, #0 - movs r2, #5 - bl PlayCry3 - bl PlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_0805C65C: .4byte gUnknown_2023D12 -_0805C660: .4byte gUnknown_2023D08 -_0805C664: .4byte gUnknown_2024190 - thumb_func_end PlayerHandleFaintingCry - - thumb_func_start sub_0805C668 -sub_0805C668: @ 0x0805C668 - push {lr} - ldr r1, _0805C690 - ldr r0, _0805C694 - ldrb r0, [r0] - lsls r0, r0, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - bl HandleIntroSlide - ldr r2, _0805C698 - ldrh r0, [r2] - movs r1, #1 - orrs r0, r1 - strh r0, [r2] - bl PlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_0805C690: .4byte gUnknown_2022D08 -_0805C694: .4byte gUnknown_2023D08 -_0805C698: .4byte gUnknown_20240A0 - thumb_func_end sub_0805C668 - - thumb_func_start PlayerHandleIntroTrainerBallThrow -PlayerHandleIntroTrainerBallThrow: @ 0x0805C69C - push {r4, r5, r6, r7, lr} - ldr r6, _0805C7DC - ldr r7, _0805C7E0 - ldrb r0, [r7] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r5, _0805C7E4 - adds r0, r0, r5 - bl SetSpritePrimaryCoordsFromSecondaryCoords - ldrb r0, [r7] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0x32 - strh r1, [r0, #0x2e] - ldrb r0, [r7] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _0805C7E8 - strh r1, [r0, #0x32] - ldrb r0, [r7] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrh r1, [r0, #0x22] - strh r1, [r0, #0x36] - ldrb r0, [r7] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r5, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _0805C7EC - str r1, [r0] - ldrb r2, [r7] - adds r0, r2, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r2, [r0, #0x38] - ldrb r0, [r7] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _0805C7F0 - bl StoreSpriteCallbackInData6 - ldrb r0, [r7] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #1 - bl StartSpriteAnim - ldr r0, _0805C7F4 - bl AllocSpritePalette - adds r4, r0, #0 - lsls r4, r4, #0x18 - ldr r1, _0805C7F8 - ldr r0, _0805C7FC - ldr r0, [r0] - ldrb r0, [r0, #8] - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r0, [r0] - lsrs r4, r4, #0x14 - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r4, r2 - movs r2, #0x20 - bl LoadCompressedPalette - ldrb r0, [r7] - adds r0, r0, r6 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r4 - strb r0, [r1, #5] - ldr r0, _0805C800 - movs r1, #5 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _0805C804 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r4 - ldrb r0, [r7] - strh r0, [r1, #8] - ldr r3, _0805C808 - ldr r0, [r3] - ldrb r2, [r7] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0805C7BE - ldr r0, _0805C80C - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r4 - ldr r1, _0805C810 - str r1, [r0] -_0805C7BE: - ldr r0, [r3] - ldr r2, [r0, #8] - ldrb r0, [r2, #9] - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #9] - ldr r1, _0805C814 - ldrb r0, [r7] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805C818 - str r1, [r0] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805C7DC: .4byte gUnknown_2023E88 -_0805C7E0: .4byte gUnknown_2023D08 -_0805C7E4: .4byte gUnknown_20205AC -_0805C7E8: .4byte 0x0000FFD8 -_0805C7EC: .4byte sub_080A67B4 -_0805C7F0: .4byte sub_0805C81C -_0805C7F4: .4byte 0x0000D6F8 -_0805C7F8: .4byte gUnknown_82D961C -_0805C7FC: .4byte gUnknown_3005AF0 -_0805C800: .4byte task05_08033660 -_0805C804: .4byte gUnknown_3005B60 -_0805C808: .4byte gUnknown_2024174 -_0805C80C: .4byte gUnknown_2024158 -_0805C810: .4byte Task_HidePartyStatusSummary -_0805C814: .4byte gUnknown_3005AC0 -_0805C818: .4byte sub_08057068 - thumb_func_end PlayerHandleIntroTrainerBallThrow - - thumb_func_start sub_0805C81C -sub_0805C81C: @ 0x0805C81C - push {r4, r5, lr} - adds r5, r0, #0 - ldrh r4, [r5, #0x38] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl FreeSpriteOamMatrix - ldrb r0, [r5, #5] - lsrs r0, r0, #4 - bl sub_08008554 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl FreeSpritePaletteByTag - adds r0, r5, #0 - bl DestroySprite - ldr r1, _0805C874 - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0805C878 - adds r0, r0, r1 - adds r1, r4, #0 - bl BattleLoadPlayerMonSpriteGfx - ldr r0, _0805C87C - adds r4, r4, r0 - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0805C880 - adds r0, r0, r1 - movs r1, #0 - bl StartSpriteAnim - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0805C874: .4byte gUnknown_2023D12 -_0805C878: .4byte gUnknown_2024190 -_0805C87C: .4byte gUnknown_2023E88 -_0805C880: .4byte gUnknown_20205AC - thumb_func_end sub_0805C81C - - thumb_func_start task05_08033660 -task05_08033660: @ 0x0805C884 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r1, _0805C8AC - lsls r0, r0, #2 - add r0, r8 - lsls r0, r0, #3 - adds r1, r0, r1 - ldrh r2, [r1, #0xa] - movs r3, #0xa - ldrsh r0, [r1, r3] - cmp r0, #0x1e - bgt _0805C8B0 - adds r0, r2, #1 - strh r0, [r1, #0xa] - b _0805C96C - .align 2, 0 -_0805C8AC: .4byte gUnknown_3005B60 -_0805C8B0: - ldr r7, _0805C8F0 - ldrb r0, [r7] - mov sb, r0 - ldrh r0, [r1, #8] - strb r0, [r7] - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0805C8D0 - ldr r0, _0805C8F4 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0805C900 -_0805C8D0: - ldr r0, _0805C8F8 - ldrb r1, [r7] - lsls r2, r1, #9 - adds r0, #1 - adds r2, r2, r0 - ldr r0, _0805C8FC - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - strb r0, [r2] - ldrb r0, [r7] - movs r1, #0 - bl sub_0805AE74 - b _0805C954 - .align 2, 0 -_0805C8F0: .4byte gUnknown_2023D08 -_0805C8F4: .4byte gUnknown_2022C90 -_0805C8F8: .4byte gUnknown_2022D08 -_0805C8FC: .4byte gUnknown_2023D12 -_0805C900: - ldr r4, _0805C978 - ldrb r0, [r7] - lsls r1, r0, #9 - adds r4, #1 - adds r1, r1, r4 - ldr r5, _0805C97C - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - movs r1, #0 - bl sub_0805AE74 - ldrb r0, [r7] - movs r6, #2 - eors r0, r6 - strb r0, [r7] - ldrb r0, [r7] - lsls r1, r0, #9 - adds r1, r1, r4 - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r0, [r0] - strb r0, [r1] - ldrb r1, [r7] - lsls r0, r1, #1 - adds r0, r0, r5 - ldrh r2, [r0] - movs r0, #0x64 - muls r0, r2, r0 - ldr r2, _0805C980 - adds r0, r0, r2 - bl BattleLoadPlayerMonSpriteGfx - ldrb r0, [r7] - movs r1, #0 - bl sub_0805AE74 - ldrb r0, [r7] - eors r0, r6 - strb r0, [r7] -_0805C954: - ldr r1, _0805C984 - ldr r2, _0805C988 - ldrb r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805C98C - str r1, [r0] - mov r3, sb - strb r3, [r2] - mov r0, r8 - bl DestroyTask -_0805C96C: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805C978: .4byte gUnknown_2022D08 -_0805C97C: .4byte gUnknown_2023D12 -_0805C980: .4byte gUnknown_2024190 -_0805C984: .4byte gUnknown_3005AC0 -_0805C988: .4byte gUnknown_2023D08 -_0805C98C: .4byte sub_08058750 - thumb_func_end task05_08033660 - - thumb_func_start PlayerHandleDrawPartyStatusSummary -PlayerHandleDrawPartyStatusSummary: @ 0x0805C990 - push {r4, r5, r6, lr} - ldr r1, _0805C9B8 - ldr r0, _0805C9BC - ldrb r2, [r0] - lsls r0, r2, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _0805C9C0 - adds r0, r2, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805C9C0 - bl PlayerBufferExecCompleted - b _0805CA34 - .align 2, 0 -_0805C9B8: .4byte gUnknown_2022D08 -_0805C9BC: .4byte gUnknown_2023D08 -_0805C9C0: - ldr r6, _0805CA3C - ldr r0, [r6] - ldr r5, _0805CA40 - ldrb r1, [r5] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r2, #1 - orrs r1, r2 - strb r1, [r0] - ldrb r0, [r5] - lsls r3, r0, #9 - ldr r4, _0805CA44 - adds r1, r3, r4 - subs r2, r4, #3 - adds r2, r3, r2 - ldrb r2, [r2] - subs r4, #2 - adds r3, r3, r4 - ldrb r3, [r3] - bl CreatePartyStatusSummarySprites - ldr r2, _0805CA48 - ldrb r1, [r5] - adds r1, r1, r2 - movs r3, #0 - strb r0, [r1] - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strb r3, [r0, #5] - ldrb r2, [r5] - lsls r0, r2, #9 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0 - beq _0805CA28 - ldr r0, [r6] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - movs r1, #0x5d - strb r1, [r0, #5] -_0805CA28: - ldr r0, _0805CA4C - ldrb r1, [r5] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, _0805CA50 - str r0, [r1] -_0805CA34: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0805CA3C: .4byte gUnknown_2024174 -_0805CA40: .4byte gUnknown_2023D08 -_0805CA44: .4byte gUnknown_2022D0C -_0805CA48: .4byte gUnknown_2024158 -_0805CA4C: .4byte gUnknown_3005AC0 -_0805CA50: .4byte sub_0805CA54 - thumb_func_end PlayerHandleDrawPartyStatusSummary - - thumb_func_start sub_0805CA54 -sub_0805CA54: @ 0x0805CA54 - push {r4, lr} - ldr r4, _0805CA94 - ldr r0, [r4] - ldr r3, _0805CA98 - ldrb r1, [r3] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #5] - adds r2, r1, #1 - strb r2, [r0, #5] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #0x5c - bls _0805CA8C - ldr r0, [r4] - ldrb r1, [r3] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0 - strb r1, [r0, #5] - bl PlayerBufferExecCompleted -_0805CA8C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805CA94: .4byte gUnknown_2024174 -_0805CA98: .4byte gUnknown_2023D08 - thumb_func_end sub_0805CA54 - - thumb_func_start PlayerHandleHidePartyStatusSummary -PlayerHandleHidePartyStatusSummary: @ 0x0805CA9C - push {lr} - ldr r0, _0805CAD8 - ldr r1, [r0] - ldr r0, _0805CADC - ldrb r3, [r0] - ldr r1, [r1, #4] - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0805CACE - ldr r2, _0805CAE0 - ldr r0, _0805CAE4 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldr r1, _0805CAE8 - str r1, [r0] -_0805CACE: - bl PlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_0805CAD8: .4byte gUnknown_2024174 -_0805CADC: .4byte gUnknown_2023D08 -_0805CAE0: .4byte gUnknown_3005B60 -_0805CAE4: .4byte gUnknown_2024158 -_0805CAE8: .4byte Task_HidePartyStatusSummary - thumb_func_end PlayerHandleHidePartyStatusSummary - - thumb_func_start PlayerHandleEndBounceEffect -PlayerHandleEndBounceEffect: @ 0x0805CAEC - push {r4, lr} - ldr r4, _0805CB0C - ldrb r0, [r4] - movs r1, #1 - bl EndBounceEffect - ldrb r0, [r4] - movs r1, #0 - bl EndBounceEffect - bl PlayerBufferExecCompleted - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805CB0C: .4byte gUnknown_2023D08 - thumb_func_end PlayerHandleEndBounceEffect - - thumb_func_start PlayerHandleSpriteInvisibility -PlayerHandleSpriteInvisibility: @ 0x0805CB10 - push {r4, lr} - ldr r4, _0805CB60 - ldrb r0, [r4] - bl IsBattlerSpritePresent - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0805CB56 - ldr r3, _0805CB64 - ldr r0, _0805CB68 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r0, _0805CB6C - lsls r1, r1, #9 - adds r0, #1 - adds r1, r1, r0 - adds r2, #0x3e - movs r0, #1 - ldrb r1, [r1] - ands r1, r0 - lsls r1, r1, #2 - ldrb r3, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4] - bl CopyBattleSpriteInvisibility -_0805CB56: - bl PlayerBufferExecCompleted - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805CB60: .4byte gUnknown_2023D08 -_0805CB64: .4byte gUnknown_20205AC -_0805CB68: .4byte gUnknown_2023E88 -_0805CB6C: .4byte gUnknown_2022D08 - thumb_func_end PlayerHandleSpriteInvisibility - - thumb_func_start PlayerHandleBattleAnimation -PlayerHandleBattleAnimation: @ 0x0805CB70 - push {r4, r5, r6, lr} - sub sp, #4 - ldr r5, _0805CBB8 - ldrb r0, [r5] - bl mplay_80342A4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805CBD2 - ldr r4, _0805CBBC - ldrb r2, [r5] - lsls r1, r2, #9 - adds r0, r4, #1 - adds r0, r1, r0 - ldrb r6, [r0] - adds r0, r4, #2 - adds r0, r1, r0 - ldrb r3, [r0] - adds r4, #3 - adds r1, r1, r4 - ldrb r0, [r1] - lsls r0, r0, #8 - orrs r3, r0 - str r3, [sp] - adds r0, r2, #0 - adds r1, r2, #0 - adds r3, r6, #0 - bl TryHandleLaunchBattleTableAnimation - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0805CBC0 - bl PlayerBufferExecCompleted - b _0805CBCC - .align 2, 0 -_0805CBB8: .4byte gUnknown_2023D08 -_0805CBBC: .4byte gUnknown_2022D08 -_0805CBC0: - ldr r0, _0805CBDC - ldrb r1, [r5] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, _0805CBE0 - str r0, [r1] -_0805CBCC: - adds r0, r6, #0 - bl BattleTv_SetDataBasedOnAnimation -_0805CBD2: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0805CBDC: .4byte gUnknown_3005AC0 -_0805CBE0: .4byte sub_080599AC - thumb_func_end PlayerHandleBattleAnimation - - thumb_func_start PlayerHandleLinkStandbyMsg -PlayerHandleLinkStandbyMsg: @ 0x0805CBE4 - push {r4, r5, lr} - ldr r5, _0805CC0C - ldrb r0, [r5] - lsls r0, r0, #9 - ldr r4, _0805CC10 - adds r0, r0, r4 - bl sub_08185008 - ldrb r0, [r5] - lsls r0, r0, #9 - subs r4, #1 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #1 - beq _0805CC1E - cmp r0, #1 - bgt _0805CC14 - cmp r0, #0 - beq _0805CC1A - b _0805CC3C - .align 2, 0 -_0805CC0C: .4byte gUnknown_2023D08 -_0805CC10: .4byte gUnknown_2022D0A -_0805CC14: - cmp r0, #2 - beq _0805CC38 - b _0805CC3C -_0805CC1A: - bl PrintLinkStandbyMsg -_0805CC1E: - ldr r4, _0805CC34 - ldrb r0, [r4] - movs r1, #1 - bl EndBounceEffect - ldrb r0, [r4] - movs r1, #0 - bl EndBounceEffect - b _0805CC3C - .align 2, 0 -_0805CC34: .4byte gUnknown_2023D08 -_0805CC38: - bl PrintLinkStandbyMsg -_0805CC3C: - bl PlayerBufferExecCompleted - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PlayerHandleLinkStandbyMsg - - thumb_func_start PlayerHandleResetActionMoveSelection -PlayerHandleResetActionMoveSelection: @ 0x0805CC48 - push {r4, lr} - ldr r1, _0805CC68 - ldr r4, _0805CC6C - ldrb r3, [r4] - lsls r0, r3, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r2, [r0] - cmp r2, #1 - beq _0805CC90 - cmp r2, #1 - bgt _0805CC70 - cmp r2, #0 - beq _0805CC76 - b _0805CCA0 - .align 2, 0 -_0805CC68: .4byte gUnknown_2022D08 -_0805CC6C: .4byte gUnknown_2023D08 -_0805CC70: - cmp r2, #2 - beq _0805CC98 - b _0805CCA0 -_0805CC76: - ldr r0, _0805CC88 - adds r0, r3, r0 - strb r2, [r0] - ldr r1, _0805CC8C - ldrb r0, [r4] - adds r0, r0, r1 - strb r2, [r0] - b _0805CCA0 - .align 2, 0 -_0805CC88: .4byte gUnknown_2024150 -_0805CC8C: .4byte gUnknown_2024154 -_0805CC90: - ldr r0, _0805CC94 - b _0805CC9A - .align 2, 0 -_0805CC94: .4byte gUnknown_2024150 -_0805CC98: - ldr r0, _0805CCAC -_0805CC9A: - adds r0, r3, r0 - movs r1, #0 - strb r1, [r0] -_0805CCA0: - bl PlayerBufferExecCompleted - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805CCAC: .4byte gUnknown_2024154 - thumb_func_end PlayerHandleResetActionMoveSelection - - thumb_func_start PlayerHandleCmd55 -PlayerHandleCmd55: @ 0x0805CCB0 - push {r4, r5, lr} - ldr r5, _0805CD14 - ldrb r0, [r5] - lsls r0, r0, #9 - ldr r4, _0805CD18 - adds r0, r0, r4 - bl sub_08185008 - ldr r2, _0805CD1C - ldrb r0, [r5] - lsls r0, r0, #9 - subs r1, r4, #3 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r0, _0805CD20 - ldr r3, [r0] - ldrb r0, [r5] - lsls r0, r0, #9 - subs r4, #2 - adds r0, r0, r4 - ldrb r0, [r0] - ldr r1, _0805CD24 - adds r3, r3, r1 - movs r1, #1 - ands r1, r0 - lsls r1, r1, #3 - ldrb r2, [r3] - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r0, #5 - bl FadeOutMapMusic - movs r0, #3 - bl BeginFastPaletteFade - bl PlayerBufferExecCompleted - ldr r1, _0805CD28 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805CD2C - str r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0805CD14: .4byte gUnknown_2023D08 -_0805CD18: .4byte gUnknown_2022D0C -_0805CD1C: .4byte gUnknown_2023FDE -_0805CD20: .4byte gUnknown_3005AF0 -_0805CD24: .4byte 0x00000CA9 -_0805CD28: .4byte gUnknown_3005AC0 -_0805CD2C: .4byte sub_080583C0 - thumb_func_end PlayerHandleCmd55 - - thumb_func_start sub_0805CD30 -sub_0805CD30: @ 0x0805CD30 - bx lr - .align 2, 0 - thumb_func_end sub_0805CD30 - - thumb_func_start GetSecretBaseMapName -GetSecretBaseMapName: @ 0x0805CD34 - push {r4, lr} - ldr r4, _0805CD70 - movs r0, #0x10 - bl AllocZeroed - str r0, [r4] - movs r0, #0x10 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1] - movs r0, #0x30 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, #4] - movs r0, #0x10 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, #8] - movs r0, #0x50 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, #0xc] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805CD70: .4byte gUnknown_2024174 - thumb_func_end GetSecretBaseMapName - - thumb_func_start FreeBattleSpritesData -FreeBattleSpritesData: @ 0x0805CD74 - push {r4, r5, lr} - ldr r5, _0805CDB4 - ldr r0, [r5] - cmp r0, #0 - beq _0805CDAE - ldr r0, [r0, #0xc] - bl Free - ldr r0, [r5] - movs r4, #0 - str r4, [r0, #0xc] - ldr r0, [r0, #8] - bl Free - ldr r0, [r5] - str r4, [r0, #8] - ldr r0, [r0, #4] - bl Free - ldr r0, [r5] - str r4, [r0, #4] - ldr r0, [r0] - bl Free - ldr r0, [r5] - str r4, [r0] - bl Free - str r4, [r5] -_0805CDAE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0805CDB4: .4byte gUnknown_2024174 - thumb_func_end FreeBattleSpritesData - - thumb_func_start ChooseMoveAndTargetInBattlePalace -ChooseMoveAndTargetInBattlePalace: @ 0x0805CDB8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - movs r0, #1 - rsbs r0, r0, #0 - mov sb, r0 - ldr r4, _0805CE18 - ldrb r0, [r4] - lsls r2, r0, #9 - ldr r1, _0805CE1C - adds r2, r2, r1 - mov sl, r2 - movs r1, #0 - movs r2, #0xff - bl CheckMoveLimitations - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - ldr r0, _0805CE20 - ldr r0, [r0] - adds r0, #0x92 - ldrb r1, [r0] - ldr r2, _0805CE24 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - asrs r4, r0, #0x1f - movs r0, #2 - ands r4, r0 - adds r6, r4, #0 - adds r5, r4, #2 - b _0805CE2A - .align 2, 0 -_0805CE18: .4byte gUnknown_2023D08 -_0805CE1C: .4byte gUnknown_2022D0C -_0805CE20: .4byte gUnknown_2024140 -_0805CE24: .4byte gUnknown_82FACB4 -_0805CE28: - adds r4, #1 -_0805CE2A: - cmp r4, r5 - bge _0805CE50 - ldr r0, _0805CF8C - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - ldr r1, _0805CF90 - adds r0, r0, r1 - ldr r0, [r0] - bl GetNatureFromPersonality - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r0, r4, r0 - ldr r2, _0805CF94 - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, r7 - ble _0805CE28 -_0805CE50: - subs r7, r4, r6 - cmp r4, r5 - bne _0805CE58 - movs r7, #2 -_0805CE58: - movs r6, #0 - movs r4, #0 - mov r1, sl - ldrh r0, [r1] - cmp r0, #0 - beq _0805CE98 - mov r5, sl -_0805CE66: - ldrh r0, [r5] - bl sub_0805D0C4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r7, r0 - bne _0805CE8A - mov r0, sl - adds r0, #8 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0 - beq _0805CE8A - ldr r0, _0805CF98 - lsls r1, r4, #2 - adds r1, r1, r0 - ldr r0, [r1] - orrs r6, r0 -_0805CE8A: - adds r5, #2 - adds r4, #1 - cmp r4, #3 - bgt _0805CE98 - ldrh r0, [r5] - cmp r0, #0 - bne _0805CE66 -_0805CE98: - cmp r6, #0 - beq _0805CEC8 - ldr r3, _0805CF9C - ldr r1, [r3] - adds r1, #0x92 - ldrb r2, [r1] - movs r0, #0xf - ands r0, r2 - strb r0, [r1] - ldr r1, [r3] - adds r1, #0x92 - lsls r0, r6, #4 - ldrb r2, [r1] - orrs r0, r2 - strb r0, [r1] - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - bl BattleAI_SetupAIData - bl sub_08130BEC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 -_0805CEC8: - movs r0, #1 - rsbs r0, r0, #0 - cmp sb, r0 - beq _0805CED2 - b _0805D028 -_0805CED2: - mov r2, r8 - cmp r2, #0xf - bne _0805CEDA - b _0805D006 -_0805CEDA: - movs r5, #0 - movs r6, #0 - ldr r7, _0805CF98 - mov r4, sl -_0805CEE2: - ldrh r0, [r4] - bl sub_0805D0C4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805CEFA - ldr r0, [r7] - mov r1, r8 - ands r0, r1 - cmp r0, #0 - bne _0805CEFA - adds r5, #1 -_0805CEFA: - ldrh r0, [r4] - bl sub_0805D0C4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0805CF14 - ldr r0, [r7] - mov r2, r8 - ands r0, r2 - cmp r0, #0 - bne _0805CF14 - adds r5, #0x10 -_0805CF14: - ldrh r0, [r4] - bl sub_0805D0C4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _0805CF32 - ldr r0, [r7] - mov r1, r8 - ands r0, r1 - cmp r0, #0 - bne _0805CF32 - movs r2, #0x80 - lsls r2, r2, #1 - adds r5, r5, r2 -_0805CF32: - adds r7, #4 - adds r4, #2 - ldr r0, _0805CF98 - adds r0, #0xc - cmp r7, r0 - ble _0805CEE2 - movs r1, #0xf - ands r1, r5 - cmp r1, #1 - ble _0805CF48 - adds r6, #1 -_0805CF48: - movs r0, #0xf0 - ands r0, r5 - cmp r0, #0x1f - ble _0805CF52 - adds r6, #1 -_0805CF52: - ldr r2, _0805CFA0 - cmp r0, r2 - ble _0805CF5A - adds r6, #1 -_0805CF5A: - cmp r6, #1 - bgt _0805CF62 - cmp r6, #0 - bne _0805CFA4 -_0805CF62: - ldr r5, _0805CF98 -_0805CF64: - bl Random - lsls r0, r0, #0x10 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r0 - lsrs r4, r1, #0x10 - lsls r0, r4, #2 - adds r0, r0, r5 - ldr r0, [r0] - mov r1, r8 - ands r0, r1 - cmp r0, #0 - bne _0805CF82 - mov sb, r4 -_0805CF82: - movs r0, #1 - rsbs r0, r0, #0 - cmp sb, r0 - beq _0805CF64 - b _0805CFF0 - .align 2, 0 -_0805CF8C: .4byte gUnknown_2023D08 -_0805CF90: .4byte gUnknown_2023D70 -_0805CF94: .4byte gUnknown_82ECE18 -_0805CF98: .4byte gUnknown_82FACB4 -_0805CF9C: .4byte gUnknown_2024140 -_0805CFA0: .4byte 0x000001FF -_0805CFA4: - cmp r1, #1 - ble _0805CFAA - movs r6, #0 -_0805CFAA: - cmp r0, #0x1f - ble _0805CFB0 - movs r6, #1 -_0805CFB0: - cmp r0, r2 - ble _0805CFB6 - movs r6, #2 -_0805CFB6: - bl Random - lsls r0, r0, #0x10 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r0 - lsrs r4, r1, #0x10 - ldr r1, _0805D01C - lsls r0, r4, #2 - adds r0, r0, r1 - ldr r0, [r0] - mov r2, r8 - ands r0, r2 - cmp r0, #0 - bne _0805CFE8 - lsls r0, r4, #1 - add r0, sl - ldrh r0, [r0] - bl sub_0805D0C4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r6, r0 - bne _0805CFE8 - mov sb, r4 -_0805CFE8: - movs r0, #1 - rsbs r0, r0, #0 - cmp sb, r0 - beq _0805CFB6 -_0805CFF0: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x31 - bls _0805D028 -_0805D006: - ldr r2, _0805D020 - ldr r0, _0805D024 - ldrb r1, [r0] - lsls r1, r1, #4 - adds r1, r1, r2 - ldrb r0, [r1, #2] - movs r2, #0x10 - orrs r0, r2 - strb r0, [r1, #2] - movs r0, #0 - b _0805D0B2 - .align 2, 0 -_0805D01C: .4byte gUnknown_82FACB4 -_0805D020: .4byte gUnknown_2023FE0 -_0805D024: .4byte gUnknown_2023D08 -_0805D028: - mov r1, sb - lsls r0, r1, #1 - mov r2, sl - adds r1, r2, r0 - ldrh r0, [r1] - cmp r0, #0xae - bne _0805D050 - ldrb r0, [r2, #0x12] - movs r5, #0 - cmp r0, #7 - beq _0805D05E - ldrb r1, [r2, #0x13] - movs r0, #7 - eors r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - asrs r5, r0, #0x1f - movs r0, #0x10 - ands r5, r0 - b _0805D05E -_0805D050: - ldr r2, _0805D070 - ldrh r1, [r1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r5, [r0, #6] -_0805D05E: - movs r0, #0x10 - ands r0, r5 - cmp r0, #0 - beq _0805D078 - ldr r0, _0805D074 - ldrb r0, [r0] - lsls r0, r0, #8 - b _0805D0A6 - .align 2, 0 -_0805D070: .4byte gUnknown_82ED220 -_0805D074: .4byte gUnknown_2023D08 -_0805D078: - cmp r5, #0 - bne _0805D08C - bl BattlePalaceGetTargetRetValue - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r2, sb - orrs r2, r0 - mov sb, r2 - b _0805D0AC -_0805D08C: - ldr r0, _0805D0C0 - ldrb r0, [r0] - bl sub_080A630C - adds r1, r0, #0 - movs r2, #1 - movs r0, #1 - ands r0, r1 - eors r0, r2 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x10 -_0805D0A6: - mov r1, sb - orrs r1, r0 - mov sb, r1 -_0805D0AC: - mov r2, sb - lsls r0, r2, #0x10 - lsrs r0, r0, #0x10 -_0805D0B2: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0805D0C0: .4byte gUnknown_2023D08 - thumb_func_end ChooseMoveAndTargetInBattlePalace - - thumb_func_start sub_0805D0C4 -sub_0805D0C4: @ 0x0805D0C4 - push {lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r1, _0805D0E8 - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #6] - adds r3, r1, #0 - cmp r0, #0x40 - bls _0805D0DE - b _0805D20A -_0805D0DE: - lsls r0, r0, #2 - ldr r1, _0805D0EC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0805D0E8: .4byte gUnknown_82ED220 -_0805D0EC: .4byte _0805D0F0 -_0805D0F0: @ jump table - .4byte _0805D1F4 @ case 0 - .4byte _0805D202 @ case 1 - .4byte _0805D1F4 @ case 2 - .4byte _0805D20A @ case 3 - .4byte _0805D1F4 @ case 4 - .4byte _0805D20A @ case 5 - .4byte _0805D20A @ case 6 - .4byte _0805D20A @ case 7 - .4byte _0805D1F4 @ case 8 - .4byte _0805D20A @ case 9 - .4byte _0805D20A @ case 10 - .4byte _0805D20A @ case 11 - .4byte _0805D20A @ case 12 - .4byte _0805D20A @ case 13 - .4byte _0805D20A @ case 14 - .4byte _0805D20A @ case 15 - .4byte _0805D206 @ case 16 - .4byte _0805D20A @ case 17 - .4byte _0805D20A @ case 18 - .4byte _0805D20A @ case 19 - .4byte _0805D20A @ case 20 - .4byte _0805D20A @ case 21 - .4byte _0805D20A @ case 22 - .4byte _0805D20A @ case 23 - .4byte _0805D20A @ case 24 - .4byte _0805D20A @ case 25 - .4byte _0805D20A @ case 26 - .4byte _0805D20A @ case 27 - .4byte _0805D20A @ case 28 - .4byte _0805D20A @ case 29 - .4byte _0805D20A @ case 30 - .4byte _0805D20A @ case 31 - .4byte _0805D1F4 @ case 32 - .4byte _0805D20A @ case 33 - .4byte _0805D20A @ case 34 - .4byte _0805D20A @ case 35 - .4byte _0805D20A @ case 36 - .4byte _0805D20A @ case 37 - .4byte _0805D20A @ case 38 - .4byte _0805D20A @ case 39 - .4byte _0805D20A @ case 40 - .4byte _0805D20A @ case 41 - .4byte _0805D20A @ case 42 - .4byte _0805D20A @ case 43 - .4byte _0805D20A @ case 44 - .4byte _0805D20A @ case 45 - .4byte _0805D20A @ case 46 - .4byte _0805D20A @ case 47 - .4byte _0805D20A @ case 48 - .4byte _0805D20A @ case 49 - .4byte _0805D20A @ case 50 - .4byte _0805D20A @ case 51 - .4byte _0805D20A @ case 52 - .4byte _0805D20A @ case 53 - .4byte _0805D20A @ case 54 - .4byte _0805D20A @ case 55 - .4byte _0805D20A @ case 56 - .4byte _0805D20A @ case 57 - .4byte _0805D20A @ case 58 - .4byte _0805D20A @ case 59 - .4byte _0805D20A @ case 60 - .4byte _0805D20A @ case 61 - .4byte _0805D20A @ case 62 - .4byte _0805D20A @ case 63 - .4byte _0805D202 @ case 64 -_0805D1F4: - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r0, [r0, #1] - cmp r0, #0 - bne _0805D20A -_0805D202: - movs r0, #2 - b _0805D20C -_0805D206: - movs r0, #1 - b _0805D20C -_0805D20A: - movs r0, #0 -_0805D20C: - pop {r1} - bx r1 - thumb_func_end sub_0805D0C4 - - thumb_func_start BattlePalaceGetTargetRetValue -BattlePalaceGetTargetRetValue: @ 0x0805D210 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r0, _0805D244 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0805D316 - ldr r0, _0805D248 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805D24C - movs r0, #1 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r0, #3 - b _0805D25A - .align 2, 0 -_0805D244: .4byte gUnknown_2022C90 -_0805D248: .4byte gUnknown_2023D08 -_0805D24C: - movs r0, #0 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r0, #2 -_0805D25A: - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r1, _0805D294 - movs r2, #0x58 - mov r0, r8 - muls r0, r2, r0 - adds r5, r0, r1 - adds r0, r7, #0 - muls r0, r2, r0 - adds r6, r0, r1 - ldrh r0, [r5, #0x28] - ldrh r3, [r6, #0x28] - cmp r0, r3 - bne _0805D29C - bl Random - adds r3, r0, #0 - ldr r0, _0805D298 - ldrb r1, [r0] - movs r2, #1 - movs r0, #1 - ands r0, r1 - eors r0, r2 - movs r1, #2 - ands r1, r3 - adds r0, r0, r1 - b _0805D31E - .align 2, 0 -_0805D294: .4byte gUnknown_2023D28 -_0805D298: .4byte gUnknown_2023D08 -_0805D29C: - ldr r4, _0805D2C8 - ldr r0, _0805D2CC - mov sb, r0 - ldrb r0, [r0] - muls r0, r2, r0 - adds r1, #0x48 - adds r0, r0, r1 - ldr r0, [r0] - bl GetNatureFromPersonality - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r4 - ldrb r4, [r0] - cmp r4, #1 - beq _0805D2E8 - cmp r4, #1 - bgt _0805D2D0 - cmp r4, #0 - beq _0805D2D6 - b _0805D316 - .align 2, 0 -_0805D2C8: .4byte gUnknown_82ECF8C -_0805D2CC: .4byte gUnknown_2023D08 -_0805D2D0: - cmp r4, #2 - beq _0805D2FA - b _0805D316 -_0805D2D6: - ldrh r0, [r5, #0x28] - ldrh r6, [r6, #0x28] - cmp r0, r6 - bls _0805D2E4 - mov r1, r8 - lsls r0, r1, #8 - b _0805D320 -_0805D2E4: - lsls r0, r7, #8 - b _0805D320 -_0805D2E8: - ldrh r0, [r5, #0x28] - ldrh r6, [r6, #0x28] - cmp r0, r6 - bhs _0805D2F6 - mov r3, r8 - lsls r0, r3, #8 - b _0805D320 -_0805D2F6: - lsls r0, r7, #8 - b _0805D320 -_0805D2FA: - bl Random - adds r3, r0, #0 - mov r0, sb - ldrb r1, [r0] - movs r2, #1 - movs r0, #1 - ands r0, r1 - eors r0, r2 - ands r4, r3 - adds r0, r0, r4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x10 - b _0805D320 -_0805D316: - ldr r0, _0805D32C - ldrb r1, [r0] - movs r0, #1 - eors r0, r1 -_0805D31E: - lsls r0, r0, #8 -_0805D320: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0805D32C: .4byte gUnknown_2023D08 - thumb_func_end BattlePalaceGetTargetRetValue - - thumb_func_start sub_0805D330 -sub_0805D330: @ 0x0805D330 - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x30] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _0805D374 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r2 - adds r0, r1, #0 - adds r0, #0x3f - ldrb r3, [r0] - lsls r0, r3, #0x1a - cmp r0, #0 - bge _0805D382 - adds r0, r1, #0 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - blt _0805D382 - adds r2, r1, #0 - adds r2, #0x2c - ldrb r1, [r2] - lsls r0, r1, #0x19 - cmp r0, #0 - bge _0805D378 - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - b _0805D382 - .align 2, 0 -_0805D374: .4byte gUnknown_20205AC -_0805D378: - lsls r0, r3, #0x1b - cmp r0, #0 - bge _0805D382 - ldr r0, _0805D388 - str r0, [r4, #0x1c] -_0805D382: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805D388: .4byte sub_08007140 - thumb_func_end sub_0805D330 - - thumb_func_start sub_0805D38C -sub_0805D38C: @ 0x0805D38C - push {r4, lr} - adds r4, r0, #0 - lsls r1, r1, #0x18 - adds r3, r4, #0 - adds r3, #0x2c - ldrb r0, [r3] - movs r2, #0x40 - orrs r0, r2 - strb r0, [r3] - ldr r0, _0805D3B0 - str r0, [r4, #0x1c] - cmp r1, #0 - bne _0805D3B4 - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAffineAnim - b _0805D3BC - .align 2, 0 -_0805D3B0: .4byte sub_08007140 -_0805D3B4: - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAffineAnim -_0805D3BC: - adds r0, r4, #0 - bl AnimateSprite - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0805D38C - - thumb_func_start sub_0805D3C8 -sub_0805D3C8: @ 0x0805D3C8 - push {lr} - adds r2, r0, #0 - ldr r0, _0805D3F4 - ldrh r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0805D400 - ldrh r0, [r2, #0x2e] - ldrh r1, [r2, #0x24] - adds r0, r0, r1 - strh r0, [r2, #0x24] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0805D400 - movs r1, #0x26 - ldrsh r0, [r2, r1] - cmp r0, #0 - beq _0805D3FC - ldr r0, _0805D3F8 - b _0805D3FE - .align 2, 0 -_0805D3F4: .4byte gUnknown_20240A0 -_0805D3F8: .4byte sub_0805D408 -_0805D3FC: - ldr r0, _0805D404 -_0805D3FE: - str r0, [r2, #0x1c] -_0805D400: - pop {r0} - bx r0 - .align 2, 0 -_0805D404: .4byte sub_08007140 - thumb_func_end sub_0805D3C8 - - thumb_func_start sub_0805D408 -sub_0805D408: @ 0x0805D408 - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0x26] - subs r0, #2 - strh r0, [r1, #0x26] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0805D41C - ldr r0, _0805D420 - str r0, [r1, #0x1c] -_0805D41C: - pop {r0} - bx r0 - .align 2, 0 -_0805D420: .4byte sub_08007140 - thumb_func_end sub_0805D408 - - thumb_func_start InitAndLaunchChosenStatusAnimation -InitAndLaunchChosenStatusAnimation: @ 0x0805D424 - push {r4, r5, r6, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - ldr r6, _0805D458 - ldr r1, [r6] - ldr r5, _0805D45C - ldrb r2, [r5] - ldr r3, [r1, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrb r2, [r1] - movs r3, #0x10 - orrs r2, r3 - strb r2, [r1] - cmp r0, #0 - bne _0805D4A4 - cmp r4, #0x20 - bne _0805D460 - ldrb r0, [r5] - movs r1, #6 - bl LaunchStatusAnimation - b _0805D51E - .align 2, 0 -_0805D458: .4byte gUnknown_2024174 -_0805D45C: .4byte gUnknown_2023D08 -_0805D460: - cmp r4, #8 - beq _0805D46C - movs r0, #0x80 - ands r0, r4 - cmp r0, #0 - beq _0805D476 -_0805D46C: - ldrb r0, [r5] - movs r1, #0 - bl LaunchStatusAnimation - b _0805D51E -_0805D476: - cmp r4, #0x10 - bne _0805D484 - ldrb r0, [r5] - movs r1, #2 - bl LaunchStatusAnimation - b _0805D51E -_0805D484: - movs r0, #7 - ands r0, r4 - cmp r0, #0 - beq _0805D496 - ldrb r0, [r5] - movs r1, #4 - bl LaunchStatusAnimation - b _0805D51E -_0805D496: - cmp r4, #0x40 - bne _0805D506 - ldrb r0, [r5] - movs r1, #5 - bl LaunchStatusAnimation - b _0805D51E -_0805D4A4: - movs r0, #0xf0 - lsls r0, r0, #0xc - ands r0, r4 - cmp r0, #0 - beq _0805D4B8 - ldrb r0, [r5] - movs r1, #3 - bl LaunchStatusAnimation - b _0805D51E -_0805D4B8: - movs r0, #7 - ands r0, r4 - cmp r0, #0 - beq _0805D4CA - ldrb r0, [r5] - movs r1, #1 - bl LaunchStatusAnimation - b _0805D51E -_0805D4CA: - movs r0, #0x80 - lsls r0, r0, #0x15 - ands r0, r4 - cmp r0, #0 - beq _0805D4DE - ldrb r0, [r5] - movs r1, #7 - bl LaunchStatusAnimation - b _0805D51E -_0805D4DE: - movs r0, #0x80 - lsls r0, r0, #0x14 - ands r0, r4 - cmp r0, #0 - beq _0805D4F2 - ldrb r0, [r5] - movs r1, #8 - bl LaunchStatusAnimation - b _0805D51E -_0805D4F2: - movs r0, #0xe0 - lsls r0, r0, #8 - ands r0, r4 - cmp r0, #0 - beq _0805D506 - ldrb r0, [r5] - movs r1, #9 - bl LaunchStatusAnimation - b _0805D51E -_0805D506: - ldr r0, [r6] - ldrb r2, [r5] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] -_0805D51E: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end InitAndLaunchChosenStatusAnimation - - thumb_func_start TryHandleLaunchBattleTableAnimation -TryHandleLaunchBattleTableAnimation: @ 0x0805D524 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - ldr r4, [sp, #0x24] - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sl, r1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp] - lsls r3, r3, #0x18 - lsrs r5, r3, #0x18 - lsls r4, r4, #0x10 - lsrs r7, r4, #0x10 - cmp r5, #0 - bne _0805D56C - movs r0, #0x80 - ands r0, r7 - cmp r0, #0 - beq _0805D56C - ldr r0, _0805D568 - adds r0, r6, r0 - movs r2, #0x7f - adds r1, r7, #0 - ands r1, r2 - strb r1, [r0] - movs r0, #1 - b _0805D63A - .align 2, 0 -_0805D568: .4byte gUnknown_2024188 -_0805D56C: - ldr r0, _0805D598 - mov sb, r0 - ldr r0, [r0] - ldr r0, [r0] - lsls r4, r6, #2 - adds r0, r4, r0 - ldrb r1, [r0] - movs r2, #4 - mov r8, r2 - mov r0, r8 - ands r0, r1 - cmp r0, #0 - beq _0805D5E8 - adds r0, r5, #0 - bl ShouldAnimBeDoneRegardlessOfSubsitute - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805D59C - movs r0, #1 - b _0805D63A - .align 2, 0 -_0805D598: .4byte gUnknown_2024174 -_0805D59C: - mov r1, sb - ldr r0, [r1] - ldr r0, [r0] - adds r0, r4, r0 - ldrb r1, [r0] - mov r0, r8 - ands r0, r1 - cmp r0, #0 - beq _0805D5E8 - cmp r5, #2 - bne _0805D5E8 - ldr r1, _0805D5E0 - ldr r0, _0805D5E4 - adds r0, r6, r0 - ldrb r2, [r0] - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - bge _0805D5E8 - adds r0, r6, #0 - movs r1, #1 - bl LoadBattleMonGfxAndAnimate - adds r0, r6, #0 - bl ClearBehindSubstituteBit - movs r0, #1 - b _0805D63A - .align 2, 0 -_0805D5E0: .4byte gUnknown_20205AC -_0805D5E4: .4byte gUnknown_2023E88 -_0805D5E8: - ldr r0, _0805D64C - mov r2, sl - strb r2, [r0] - ldr r0, _0805D650 - mov r1, sp - ldrb r1, [r1] - strb r1, [r0] - ldr r4, _0805D654 - ldr r0, [r4] - ldr r0, [r0, #8] - strh r7, [r0] - ldr r0, _0805D658 - adds r1, r5, #0 - movs r2, #0 - bl LaunchBattleAnimation - ldr r0, _0805D65C - movs r1, #0xa - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0805D660 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r6, [r1, #8] - ldr r0, [r4] - movs r2, #8 - ldrsh r1, [r1, r2] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r2, #0x20 - orrs r1, r2 - strb r1, [r0] - movs r0, #0 -_0805D63A: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0805D64C: .4byte gUnknown_20380D6 -_0805D650: .4byte gUnknown_20380D7 -_0805D654: .4byte gUnknown_2024174 -_0805D658: .4byte gUnknown_82778AC -_0805D65C: .4byte sub_0805D664 -_0805D660: .4byte gUnknown_3005B60 - thumb_func_end TryHandleLaunchBattleTableAnimation - - thumb_func_start sub_0805D664 -sub_0805D664: @ 0x0805D664 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0805D6AC - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _0805D6B0 - thumb_func_end sub_0805D664 - - thumb_func_start sub_0805D674 -sub_0805D674: @ 0x0805D674 - ldrb r0, [r0] - cmp r0, #0 - bne _0805D6A6 - ldr r0, _0805D6B4 - ldr r2, [r0] - ldr r1, _0805D6B8 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #8 - ldrsh r0, [r0, r1] - ldr r2, [r2, #4] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r2, [r1] - movs r0, #0x21 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - adds r0, r4, #0 - bl DestroyTask -_0805D6A6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805D6AC: .4byte gUnknown_2038098 -_0805D6B0: .4byte gUnknown_203809D -_0805D6B4: .4byte gUnknown_2024174 -_0805D6B8: .4byte gUnknown_3005B60 - thumb_func_end sub_0805D674 - - thumb_func_start ShouldAnimBeDoneRegardlessOfSubsitute -ShouldAnimBeDoneRegardlessOfSubsitute: @ 0x0805D6BC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xd - bgt _0805D6D0 - cmp r0, #0xa - bge _0805D6D4 - cmp r0, #2 - beq _0805D6D4 - b _0805D6D8 -_0805D6D0: - cmp r0, #0x11 - bne _0805D6D8 -_0805D6D4: - movs r0, #1 - b _0805D6DA -_0805D6D8: - movs r0, #0 -_0805D6DA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ShouldAnimBeDoneRegardlessOfSubsitute - - thumb_func_start InitAndLaunchSpecialAnimation -InitAndLaunchSpecialAnimation: @ 0x0805D6E0 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r0, _0805D738 - strb r1, [r0] - ldr r0, _0805D73C - strb r2, [r0] - ldr r0, _0805D740 - adds r1, r3, #0 - movs r2, #0 - bl LaunchBattleAnimation - ldr r0, _0805D744 - movs r1, #0xa - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0805D748 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #8] - ldr r0, _0805D74C - ldr r0, [r0] - movs r2, #8 - ldrsh r1, [r1, r2] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r2, #0x40 - orrs r1, r2 - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805D738: .4byte gUnknown_20380D6 -_0805D73C: .4byte gUnknown_20380D7 -_0805D740: .4byte gUnknown_8277908 -_0805D744: .4byte sub_0805D750 -_0805D748: .4byte gUnknown_3005B60 -_0805D74C: .4byte gUnknown_2024174 - thumb_func_end InitAndLaunchSpecialAnimation - - thumb_func_start sub_0805D750 -sub_0805D750: @ 0x0805D750 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0805D798 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _0805D79C - thumb_func_end sub_0805D750 - - thumb_func_start sub_0805D760 -sub_0805D760: @ 0x0805D760 - ldrb r0, [r0] - cmp r0, #0 - bne _0805D792 - ldr r0, _0805D7A0 - ldr r2, [r0] - ldr r1, _0805D7A4 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #8 - ldrsh r0, [r0, r1] - ldr r2, [r2, #4] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r2, [r1] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - adds r0, r4, #0 - bl DestroyTask -_0805D792: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805D798: .4byte gUnknown_2038098 -_0805D79C: .4byte gUnknown_203809D -_0805D7A0: .4byte gUnknown_2024174 -_0805D7A4: .4byte gUnknown_3005B60 - thumb_func_end sub_0805D760 - - thumb_func_start sub_0805D7A8 -sub_0805D7A8: @ 0x0805D7A8 - movs r0, #0 - bx lr - thumb_func_end sub_0805D7A8 - - thumb_func_start mplay_80342A4 -mplay_80342A4: @ 0x0805D7AC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r5, #0 - bl IsSEPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0805D7F4 - ldr r2, _0805D7FC - ldr r0, [r2] - ldr r1, [r0, #4] - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #8] - adds r1, #1 - strb r1, [r0, #8] - ldr r2, [r2] - ldr r0, _0805D800 - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #8] - cmp r0, #0x1d - bls _0805D7F8 - ldr r0, _0805D804 - bl m4aMPlayStop - ldr r0, _0805D808 - bl m4aMPlayStop -_0805D7F4: - cmp r5, #0 - beq _0805D80C -_0805D7F8: - movs r0, #1 - b _0805D81E - .align 2, 0 -_0805D7FC: .4byte gUnknown_2024174 -_0805D800: .4byte gUnknown_2023D08 -_0805D804: .4byte gUnknown_3007510 -_0805D808: .4byte gUnknown_3007550 -_0805D80C: - ldr r0, _0805D824 - ldr r0, [r0] - ldr r1, [r0, #4] - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - strb r5, [r0, #8] - movs r0, #0 -_0805D81E: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0805D824: .4byte gUnknown_2024174 - thumb_func_end mplay_80342A4 - - thumb_func_start BattleLoadOpponentMonSpriteGfx -BattleLoadOpponentMonSpriteGfx: @ 0x0805D828 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - movs r1, #0 - bl GetMonData - str r0, [sp] - ldr r0, _0805D868 - ldr r0, [r0] - ldr r0, [r0] - mov r2, r8 - lsls r1, r2, #2 - adds r2, r1, r0 - ldrh r0, [r2, #2] - cmp r0, #0 - bne _0805D86C - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r6, [sp] - b _0805D874 - .align 2, 0 -_0805D868: .4byte gUnknown_2024174 -_0805D86C: - ldrh r5, [r2, #2] - ldr r0, _0805D8C8 - adds r0, r1, r0 - ldr r6, [r0] -_0805D874: - adds r0, r4, #0 - movs r1, #1 - bl GetMonData - mov sl, r0 - mov r0, r8 - bl sub_080A630C - lsls r0, r0, #0x18 - lsls r2, r5, #3 - ldr r1, _0805D8CC - adds r2, r2, r1 - ldr r1, _0805D8D0 - ldr r1, [r1] - lsrs r0, r0, #0x16 - adds r1, #4 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - adds r2, r5, #0 - adds r3, r6, #0 - bl HandleLoadSpecialPokePic_DontHandleDeoxys - mov r3, r8 - lsls r2, r3, #4 - movs r0, #0x80 - lsls r0, r0, #1 - adds r7, r2, r0 - ldr r0, _0805D8D4 - ldr r0, [r0] - ldr r0, [r0] - lsls r1, r3, #2 - adds r0, r1, r0 - ldrh r0, [r0, #2] - str r1, [sp, #4] - mov sb, r2 - cmp r0, #0 - bne _0805D8D8 - adds r0, r4, #0 - bl sub_0806E194 - b _0805D8E2 - .align 2, 0 -_0805D8C8: .4byte gUnknown_2024160 -_0805D8CC: .4byte gUnknown_82DDA1C -_0805D8D0: .4byte gUnknown_2024178 -_0805D8D4: .4byte gUnknown_2024174 -_0805D8D8: - adds r0, r5, #0 - mov r1, sl - ldr r2, [sp] - bl GetMonSpritePalFromSpeciesAndPersonality -_0805D8E2: - adds r6, r0, #0 - ldr r4, _0805D974 - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_08034370 - adds r0, r4, #0 - adds r1, r7, #0 - movs r2, #0x20 - bl LoadPalette - mov r1, sb - adds r1, #0x80 - adds r0, r4, #0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _0805D978 - cmp r5, r0 - bne _0805D936 - movs r7, #0x80 - lsls r7, r7, #1 - add r7, sb - ldr r5, _0805D97C - ldr r1, [r5] - movs r4, #0x80 - lsls r4, r4, #1 - adds r1, r1, r4 - adds r0, r6, #0 - bl sub_08034370 - ldr r0, _0805D980 - add r0, r8 - ldrb r1, [r0] - lsls r1, r1, #5 - adds r1, r1, r4 - ldr r0, [r5] - adds r0, r0, r1 - adds r1, r7, #0 - movs r2, #0x20 - bl LoadPalette -_0805D936: - ldr r0, _0805D984 - ldr r0, [r0] - ldr r0, [r0] - ldr r1, [sp, #4] - adds r0, r1, r0 - ldrh r0, [r0, #2] - cmp r0, #0 - beq _0805D962 - ldr r3, _0805D988 - adds r0, r7, #0 - movs r1, #0x10 - movs r2, #6 - bl BlendPalette - lsls r1, r7, #1 - ldr r0, _0805D98C - adds r0, r1, r0 - ldr r2, _0805D990 - adds r1, r1, r2 - ldr r2, _0805D994 - bl CpuSet -_0805D962: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805D974: .4byte gUnknown_201C000 -_0805D978: .4byte 0x00000181 -_0805D97C: .4byte gUnknown_2024140 -_0805D980: .4byte gUnknown_2024188 -_0805D984: .4byte gUnknown_2024174 -_0805D988: .4byte 0x00007FFF -_0805D98C: .4byte gUnknown_20377B4 -_0805D990: .4byte gUnknown_20373B4 -_0805D994: .4byte 0x04000008 - thumb_func_end BattleLoadOpponentMonSpriteGfx - - thumb_func_start BattleLoadPlayerMonSpriteGfx -BattleLoadPlayerMonSpriteGfx: @ 0x0805D998 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - adds r6, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - movs r1, #0 - bl GetMonData - str r0, [sp] - ldr r0, _0805D9D8 - ldr r0, [r0] - ldr r0, [r0] - mov r2, r8 - lsls r1, r2, #2 - adds r2, r1, r0 - ldrh r0, [r2, #2] - cmp r0, #0 - bne _0805D9DC - adds r0, r6, #0 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r4, [sp] - b _0805D9E4 - .align 2, 0 -_0805D9D8: .4byte gUnknown_2024174 -_0805D9DC: - ldrh r5, [r2, #2] - ldr r0, _0805DA38 - adds r0, r1, r0 - ldr r4, [r0] -_0805D9E4: - adds r0, r6, #0 - movs r1, #1 - bl GetMonData - str r0, [sp, #4] - mov r0, r8 - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r0, #1 - mov r1, r8 - bl sub_08068438 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, r8 - lsls r1, r1, #2 - mov sl, r1 - cmp r0, #1 - beq _0805DA1C - ldr r0, _0805DA3C - ldr r0, [r0] - ldr r0, [r0] - add r0, sl - ldrh r0, [r0, #2] - cmp r0, #0 - beq _0805DA48 -_0805DA1C: - lsls r0, r5, #3 - ldr r1, _0805DA40 - adds r0, r0, r1 - ldr r1, _0805DA44 - ldr r1, [r1] - lsls r2, r7, #2 - adds r1, #4 - adds r1, r1, r2 - ldr r1, [r1] - adds r2, r5, #0 - adds r3, r4, #0 - bl HandleLoadSpecialPokePic_DontHandleDeoxys - b _0805DA62 - .align 2, 0 -_0805DA38: .4byte gUnknown_2024160 -_0805DA3C: .4byte gUnknown_2024174 -_0805DA40: .4byte gUnknown_82D6148 -_0805DA44: .4byte gUnknown_2024178 -_0805DA48: - lsls r0, r5, #3 - ldr r1, _0805DA84 - adds r0, r0, r1 - ldr r1, _0805DA88 - ldr r1, [r1] - lsls r2, r7, #2 - adds r1, #4 - adds r1, r1, r2 - ldr r1, [r1] - adds r2, r5, #0 - adds r3, r4, #0 - bl HandleLoadSpecialPokePic -_0805DA62: - mov r2, r8 - lsls r1, r2, #4 - movs r0, #0x80 - lsls r0, r0, #1 - adds r7, r1, r0 - ldr r0, _0805DA8C - ldr r0, [r0] - ldr r0, [r0] - add r0, sl - ldrh r0, [r0, #2] - mov sb, r1 - cmp r0, #0 - bne _0805DA90 - adds r0, r6, #0 - bl sub_0806E194 - b _0805DA9A - .align 2, 0 -_0805DA84: .4byte gUnknown_82D6148 -_0805DA88: .4byte gUnknown_2024178 -_0805DA8C: .4byte gUnknown_2024174 -_0805DA90: - adds r0, r5, #0 - ldr r1, [sp, #4] - ldr r2, [sp] - bl GetMonSpritePalFromSpeciesAndPersonality -_0805DA9A: - adds r6, r0, #0 - ldr r4, _0805DB28 - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_08034370 - adds r0, r4, #0 - adds r1, r7, #0 - movs r2, #0x20 - bl LoadPalette - mov r1, sb - adds r1, #0x80 - adds r0, r4, #0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _0805DB2C - cmp r5, r0 - bne _0805DAEE - movs r7, #0x80 - lsls r7, r7, #1 - add r7, sb - ldr r5, _0805DB30 - ldr r1, [r5] - movs r4, #0x80 - lsls r4, r4, #1 - adds r1, r1, r4 - adds r0, r6, #0 - bl sub_08034370 - ldr r0, _0805DB34 - add r0, r8 - ldrb r1, [r0] - lsls r1, r1, #5 - adds r1, r1, r4 - ldr r0, [r5] - adds r0, r0, r1 - adds r1, r7, #0 - movs r2, #0x20 - bl LoadPalette -_0805DAEE: - ldr r0, _0805DB38 - ldr r0, [r0] - ldr r0, [r0] - add r0, sl - ldrh r0, [r0, #2] - cmp r0, #0 - beq _0805DB18 - ldr r3, _0805DB3C - adds r0, r7, #0 - movs r1, #0x10 - movs r2, #6 - bl BlendPalette - lsls r1, r7, #1 - ldr r0, _0805DB40 - adds r0, r1, r0 - ldr r2, _0805DB44 - adds r1, r1, r2 - ldr r2, _0805DB48 - bl CpuSet -_0805DB18: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805DB28: .4byte gUnknown_201C000 -_0805DB2C: .4byte 0x00000181 -_0805DB30: .4byte gUnknown_2024140 -_0805DB34: .4byte gUnknown_2024188 -_0805DB38: .4byte gUnknown_2024174 -_0805DB3C: .4byte 0x00007FFF -_0805DB40: .4byte gUnknown_20377B4 -_0805DB44: .4byte gUnknown_20373B4 -_0805DB48: .4byte 0x04000008 - thumb_func_end BattleLoadPlayerMonSpriteGfx - - thumb_func_start sub_0805DB4C -sub_0805DB4C: @ 0x0805DB4C - bx lr - .align 2, 0 - thumb_func_end sub_0805DB4C - - thumb_func_start sub_0805DB50 -sub_0805DB50: @ 0x0805DB50 - bx lr - .align 2, 0 - thumb_func_end sub_0805DB50 - - thumb_func_start DecompressTrainerFrontPic -DecompressTrainerFrontPic: @ 0x0805DB54 - push {r4, lr} - adds r4, r0, #0 - adds r0, r1, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_080A630C - lsls r0, r0, #0x18 - lsls r4, r4, #3 - ldr r2, _0805DB94 - adds r2, r4, r2 - ldr r1, _0805DB98 - ldr r1, [r1] - lsrs r0, r0, #0x16 - adds r1, #4 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - movs r2, #0 - bl sub_08034860 - ldr r0, _0805DB9C - adds r4, r4, r0 - adds r0, r4, #0 - bl LoadCompressedSpritePalette - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805DB94: .4byte gUnknown_82D8EE4 -_0805DB98: .4byte gUnknown_2024178 -_0805DB9C: .4byte gUnknown_82D91CC - thumb_func_end DecompressTrainerFrontPic - - thumb_func_start DecompressTrainerBackPic -DecompressTrainerBackPic: @ 0x0805DBA0 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl sub_080A630C - lsls r0, r0, #0x18 - lsls r5, r5, #3 - ldr r2, _0805DBF0 - adds r2, r5, r2 - ldr r1, _0805DBF4 - ldr r1, [r1] - lsrs r0, r0, #0x16 - adds r1, #4 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - movs r2, #0 - bl sub_08034860 - ldr r0, _0805DBF8 - adds r5, r5, r0 - ldr r0, [r5] - lsls r4, r4, #0x14 - movs r1, #0x80 - lsls r1, r1, #0x11 - adds r4, r4, r1 - lsrs r4, r4, #0x10 - adds r1, r4, #0 - movs r2, #0x20 - bl LoadCompressedPalette - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0805DBF0: .4byte gUnknown_82D95DC -_0805DBF4: .4byte gUnknown_2024178 -_0805DBF8: .4byte gUnknown_82D961C - thumb_func_end DecompressTrainerBackPic - - thumb_func_start sub_0805DBFC -sub_0805DBFC: @ 0x0805DBFC - bx lr - .align 2, 0 - thumb_func_end sub_0805DBFC - - thumb_func_start FreeTrainerFrontPicPalette -FreeTrainerFrontPicPalette: @ 0x0805DC00 - push {lr} - lsls r0, r0, #0x10 - ldr r1, _0805DC14 - lsrs r0, r0, #0xd - adds r0, r0, r1 - ldrh r0, [r0, #4] - bl FreeSpritePaletteByTag - pop {r0} - bx r0 - .align 2, 0 -_0805DC14: .4byte gUnknown_82D91CC - thumb_func_end FreeTrainerFrontPicPalette - - thumb_func_start BattleLoadAllHealthBoxesGfxAtOnce -BattleLoadAllHealthBoxesGfxAtOnce: @ 0x0805DC18 - push {r4, r5, r6, r7, lr} - ldr r4, _0805DC44 - adds r0, r4, #0 - bl LoadSpritePalette - adds r4, #8 - adds r0, r4, #0 - bl LoadSpritePalette - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805DC50 - ldr r0, _0805DC48 - bl LoadCompressedSpriteSheet - ldr r0, _0805DC4C - bl LoadCompressedSpriteSheet - movs r5, #2 - b _0805DC72 - .align 2, 0 -_0805DC44: .4byte gUnknown_82FCB20 -_0805DC48: .4byte gUnknown_82FCAC8 -_0805DC4C: .4byte gUnknown_82FCAD0 -_0805DC50: - ldr r4, _0805DC98 - adds r0, r4, #0 - bl LoadCompressedSpriteSheet - adds r4, #8 - adds r0, r4, #0 - bl LoadCompressedSpriteSheet - ldr r4, _0805DC9C - adds r0, r4, #0 - bl LoadCompressedSpriteSheet - adds r4, #8 - adds r0, r4, #0 - bl LoadCompressedSpriteSheet - movs r5, #4 -_0805DC72: - movs r4, #0 - cmp r4, r5 - bhs _0805DC92 - ldr r7, _0805DCA0 - ldr r6, _0805DCA4 -_0805DC7C: - adds r0, r4, r7 - ldrb r0, [r0] - lsls r0, r0, #3 - adds r0, r0, r6 - bl LoadCompressedSpriteSheet - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r5 - blo _0805DC7C -_0805DC92: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805DC98: .4byte gUnknown_82FCAD8 -_0805DC9C: .4byte gUnknown_82FCAE8 -_0805DCA0: .4byte gUnknown_2023D1A -_0805DCA4: .4byte gUnknown_82FCB00 - thumb_func_end BattleLoadAllHealthBoxesGfxAtOnce - - thumb_func_start BattleLoadAllHealthBoxesGfx -BattleLoadAllHealthBoxesGfx: @ 0x0805DCA8 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, r4, #0 - movs r6, #0 - cmp r4, #0 - bne _0805DCB8 - b _0805DDCA -_0805DCB8: - cmp r4, #1 - bne _0805DCD4 - ldr r4, _0805DCD0 - adds r0, r4, #0 - bl LoadSpritePalette - adds r4, #8 - adds r0, r4, #0 - bl LoadSpritePalette - b _0805DDCA - .align 2, 0 -_0805DCD0: .4byte gUnknown_82FCB20 -_0805DCD4: - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805DD3C - cmp r4, #2 - bne _0805DD0C - ldr r0, _0805DCF8 - ldr r0, [r0] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0805DD00 - ldr r0, _0805DCFC - bl LoadCompressedSpriteSheet - b _0805DDCA - .align 2, 0 -_0805DCF8: .4byte gUnknown_2022C90 -_0805DCFC: .4byte gUnknown_82FCAF8 -_0805DD00: - ldr r0, _0805DD08 - bl LoadCompressedSpriteSheet - b _0805DDCA - .align 2, 0 -_0805DD08: .4byte gUnknown_82FCAC8 -_0805DD0C: - cmp r4, #3 - bne _0805DD1C - ldr r0, _0805DD18 - bl LoadCompressedSpriteSheet - b _0805DDCA - .align 2, 0 -_0805DD18: .4byte gUnknown_82FCAD0 -_0805DD1C: - cmp r4, #4 - bne _0805DD2C - ldr r0, _0805DD28 - ldrb r0, [r0] - b _0805DDB4 - .align 2, 0 -_0805DD28: .4byte gUnknown_2023D1A -_0805DD2C: - cmp r4, #5 - bne _0805DDC8 - ldr r0, _0805DD38 - ldrb r0, [r0, #1] - b _0805DDB4 - .align 2, 0 -_0805DD38: .4byte gUnknown_2023D1A -_0805DD3C: - cmp r4, #2 - bne _0805DD4C - ldr r0, _0805DD48 - bl LoadCompressedSpriteSheet - b _0805DDCA - .align 2, 0 -_0805DD48: .4byte gUnknown_82FCAD8 -_0805DD4C: - cmp r4, #3 - bne _0805DD5C - ldr r0, _0805DD58 - bl LoadCompressedSpriteSheet - b _0805DDCA - .align 2, 0 -_0805DD58: .4byte gUnknown_82FCAE0 -_0805DD5C: - cmp r4, #4 - bne _0805DD6C - ldr r0, _0805DD68 - bl LoadCompressedSpriteSheet - b _0805DDCA - .align 2, 0 -_0805DD68: .4byte gUnknown_82FCAE8 -_0805DD6C: - cmp r4, #5 - bne _0805DD7C - ldr r0, _0805DD78 - bl LoadCompressedSpriteSheet - b _0805DDCA - .align 2, 0 -_0805DD78: .4byte gUnknown_82FCAF0 -_0805DD7C: - cmp r4, #6 - bne _0805DD8C - ldr r0, _0805DD88 - ldrb r0, [r0] - b _0805DDB4 - .align 2, 0 -_0805DD88: .4byte gUnknown_2023D1A -_0805DD8C: - cmp r4, #7 - bne _0805DD9C - ldr r0, _0805DD98 - ldrb r0, [r0, #1] - b _0805DDB4 - .align 2, 0 -_0805DD98: .4byte gUnknown_2023D1A -_0805DD9C: - cmp r4, #8 - bne _0805DDAC - ldr r0, _0805DDA8 - ldrb r0, [r0, #2] - b _0805DDB4 - .align 2, 0 -_0805DDA8: .4byte gUnknown_2023D1A -_0805DDAC: - cmp r5, #9 - bne _0805DDC8 - ldr r0, _0805DDC0 - ldrb r0, [r0, #3] -_0805DDB4: - lsls r0, r0, #3 - ldr r1, _0805DDC4 - adds r0, r0, r1 - bl LoadCompressedSpriteSheet - b _0805DDCA - .align 2, 0 -_0805DDC0: .4byte gUnknown_2023D1A -_0805DDC4: .4byte gUnknown_82FCB00 -_0805DDC8: - movs r6, #1 -_0805DDCA: - adds r0, r6, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end BattleLoadAllHealthBoxesGfx - - thumb_func_start LoadBattleBarGfx -LoadBattleBarGfx: @ 0x0805DDD4 - push {lr} - ldr r0, _0805DDEC - ldr r1, _0805DDF0 - ldr r1, [r1] - movs r2, #0xba - lsls r2, r2, #1 - adds r1, r1, r2 - ldr r1, [r1] - bl sub_08034370 - pop {r0} - bx r0 - .align 2, 0 -_0805DDEC: .4byte gUnknown_8C093F8 -_0805DDF0: .4byte gUnknown_2024178 - thumb_func_end LoadBattleBarGfx - - thumb_func_start BattleInitAllSprites -BattleInitAllSprites: @ 0x0805DDF4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - movs r6, #0 - ldrb r0, [r5] - cmp r0, #6 - bls _0805DE04 - b _0805DF62 -_0805DE04: - lsls r0, r0, #2 - ldr r1, _0805DE10 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0805DE10: .4byte _0805DE14 -_0805DE14: @ jump table - .4byte _0805DE30 @ case 0 - .4byte _0805DE36 @ case 1 - .4byte _0805DF40 @ case 2 - .4byte _0805DE4C @ case 3 - .4byte _0805DE7C @ case 4 - .4byte _0805DEB8 @ case 5 - .4byte _0805DF58 @ case 6 -_0805DE30: - bl ClearSpritesBattlerHealthboxAnimData - b _0805DF40 -_0805DE36: - ldrb r0, [r4] - bl BattleLoadAllHealthBoxesGfx - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0805DE44 - b _0805DF3C -_0805DE44: - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - b _0805DF62 -_0805DE4C: - ldr r0, _0805DE64 - ldr r0, [r0] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0805DE68 - ldrb r0, [r4] - cmp r0, #0 - bne _0805DE68 - bl CreateSafariPlayerHealthboxSprites - b _0805DE6E - .align 2, 0 -_0805DE64: .4byte gUnknown_2022C90 -_0805DE68: - ldrb r0, [r4] - bl CreateBattlerHealthboxSprites -_0805DE6E: - ldr r2, _0805DE78 - ldrb r1, [r4] - adds r1, r1, r2 - strb r0, [r1] - b _0805DF2A - .align 2, 0 -_0805DE78: .4byte gUnknown_3005AD0 -_0805DE7C: - ldrb r0, [r4] - bl InitBattlerHealthboxCoords - ldr r0, _0805DE9C - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - cmp r0, #1 - bhi _0805DEA4 - ldr r0, _0805DEA0 - adds r0, r1, r0 - ldrb r0, [r0] - movs r1, #0 - bl sub_08072494 - b _0805DF2A - .align 2, 0 -_0805DE9C: .4byte gUnknown_2023D1A -_0805DEA0: .4byte gUnknown_3005AD0 -_0805DEA4: - ldr r0, _0805DEB4 - adds r0, r1, r0 - ldrb r0, [r0] - movs r1, #1 - bl sub_08072494 - b _0805DF2A - .align 2, 0 -_0805DEB4: .4byte gUnknown_3005AD0 -_0805DEB8: - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805DF00 - ldr r0, _0805DEF0 - ldr r0, [r0] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0805DF1E - ldr r0, _0805DEF4 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - ldr r2, _0805DEF8 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _0805DEFC - adds r1, r1, r2 - movs r2, #0 - bl UpdateHealthboxAttribute - b _0805DF1E - .align 2, 0 -_0805DEF0: .4byte gUnknown_2022C90 -_0805DEF4: .4byte gUnknown_3005AD0 -_0805DEF8: .4byte gUnknown_2023D12 -_0805DEFC: .4byte gUnknown_2024190 -_0805DF00: - ldr r0, _0805DF48 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - ldr r2, _0805DF4C - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _0805DF50 - adds r1, r1, r2 - movs r2, #0 - bl UpdateHealthboxAttribute -_0805DF1E: - ldr r1, _0805DF48 - ldrb r0, [r4] - adds r0, r0, r1 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible -_0805DF2A: - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - ldr r1, _0805DF54 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1] - cmp r0, r1 - bne _0805DF62 -_0805DF3C: - movs r0, #0 - strb r0, [r4] -_0805DF40: - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - b _0805DF62 - .align 2, 0 -_0805DF48: .4byte gUnknown_3005AD0 -_0805DF4C: .4byte gUnknown_2023D12 -_0805DF50: .4byte gUnknown_20243E8 -_0805DF54: .4byte gUnknown_2023D10 -_0805DF58: - bl LoadAndCreateEnemyShadowSprites - bl sub_081B8908 - movs r6, #1 -_0805DF62: - adds r0, r6, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end BattleInitAllSprites - - thumb_func_start ClearSpritesHealthboxAnimData -ClearSpritesHealthboxAnimData: @ 0x0805DF6C - push {r4, lr} - ldr r4, _0805DF90 - ldr r0, [r4] - ldr r0, [r0, #4] - movs r1, #0 - movs r2, #0x30 - bl memset - ldr r0, [r4] - ldr r0, [r0, #8] - movs r1, #0 - movs r2, #0x10 - bl memset - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805DF90: .4byte gUnknown_2024174 - thumb_func_end ClearSpritesHealthboxAnimData - - thumb_func_start ClearSpritesBattlerHealthboxAnimData -ClearSpritesBattlerHealthboxAnimData: @ 0x0805DF94 - push {lr} - bl ClearSpritesHealthboxAnimData - ldr r0, _0805DFAC - ldr r0, [r0] - ldr r0, [r0] - movs r1, #0 - movs r2, #0x10 - bl memset - pop {r0} - bx r0 - .align 2, 0 -_0805DFAC: .4byte gUnknown_2024174 - thumb_func_end ClearSpritesBattlerHealthboxAnimData - - thumb_func_start CopyAllBattleSpritesInvisibilities -CopyAllBattleSpritesInvisibilities: @ 0x0805DFB0 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - movs r4, #0 - ldr r5, _0805E014 - ldrb r0, [r5] - cmp r4, r0 - bge _0805E006 - ldr r0, _0805E018 - mov sb, r0 - movs r0, #1 - mov ip, r0 - movs r0, #2 - rsbs r0, r0, #0 - mov r8, r0 - ldr r7, _0805E01C - ldr r6, _0805E020 -_0805DFD4: - ldr r0, [r7] - ldr r0, [r0] - lsls r3, r4, #2 - adds r3, r3, r0 - adds r0, r4, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sb - adds r0, #0x3e - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1f - mov r0, ip - ands r1, r0 - ldrb r2, [r3] - mov r0, r8 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - adds r4, #1 - ldrb r0, [r5] - cmp r4, r0 - blt _0805DFD4 -_0805E006: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805E014: .4byte gUnknown_2023D10 -_0805E018: .4byte gUnknown_20205AC -_0805E01C: .4byte gUnknown_2024174 -_0805E020: .4byte gUnknown_2023E88 - thumb_func_end CopyAllBattleSpritesInvisibilities - - thumb_func_start CopyBattleSpriteInvisibility -CopyBattleSpriteInvisibility: @ 0x0805E024 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0805E058 - ldr r1, [r1] - ldr r1, [r1] - lsls r3, r0, #2 - adds r3, r3, r1 - ldr r2, _0805E05C - ldr r1, _0805E060 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1f - ldrb r2, [r3] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bx lr - .align 2, 0 -_0805E058: .4byte gUnknown_2024174 -_0805E05C: .4byte gUnknown_20205AC -_0805E060: .4byte gUnknown_2023E88 - thumb_func_end CopyBattleSpriteInvisibility - - thumb_func_start HandleSpeciesGfxDataChange -HandleSpeciesGfxDataChange: @ 0x0805E064 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp] - lsls r2, r2, #0x18 - cmp r2, #0 - beq _0805E138 - ldr r0, _0805E114 - adds r5, r7, r0 - ldrb r1, [r5] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0805E118 - mov r8, r1 - add r0, r8 - ldr r4, _0805E11C - ldr r1, [r4] - ldr r1, [r1, #8] - ldrb r1, [r1] - bl StartSpriteAnim - lsls r0, r7, #0x14 - movs r2, #0x80 - lsls r2, r2, #0x11 - adds r0, r0, r2 - lsrs r6, r0, #0x10 - ldr r2, _0805E120 - ldr r0, [r4] - ldr r0, [r0, #8] - ldrh r1, [r0] - lsls r1, r1, #5 - movs r3, #0x80 - lsls r3, r3, #1 - adds r1, r1, r3 - ldr r0, [r2] - adds r0, r0, r1 - adds r1, r6, #0 - movs r2, #0x20 - bl LoadPalette - ldr r1, _0805E124 - adds r1, r7, r1 - ldr r0, [r4] - ldr r0, [r0, #8] - ldrh r0, [r0] - strb r0, [r1] - ldr r0, [r4] - ldr r1, [r0] - lsls r0, r7, #2 - adds r0, r0, r1 - ldrh r0, [r0, #2] - cmp r0, #0 - beq _0805E0FA - ldr r3, _0805E128 - adds r0, r6, #0 - movs r1, #0x10 - movs r2, #6 - bl BlendPalette - lsls r1, r6, #1 - ldr r0, _0805E12C - adds r0, r1, r0 - ldr r2, _0805E130 - adds r1, r1, r2 - ldr r2, _0805E134 - bl CpuSet -_0805E0FA: - adds r0, r7, #0 - bl GetBattlerSpriteDefault_Y - ldrb r2, [r5] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - add r1, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r1, #0x22] - b _0805E396 - .align 2, 0 -_0805E114: .4byte gUnknown_2023E88 -_0805E118: .4byte gUnknown_20205AC -_0805E11C: .4byte gUnknown_2024174 -_0805E120: .4byte gUnknown_2024140 -_0805E124: .4byte gUnknown_2024188 -_0805E128: .4byte 0x00007FFF -_0805E12C: .4byte gUnknown_20377B4 -_0805E130: .4byte gUnknown_20373B4 -_0805E134: .4byte 0x04000008 -_0805E138: - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0805E174 - movs r0, #0 - mov sl, r0 - ldr r0, _0805E168 - ldr r0, [r0] - ldr r2, [r0, #0x18] - ldrh r1, [r2, #2] - mov r8, r1 - ldr r3, [r2, #8] - mov sb, r3 - ldr r4, [r2, #0xc] - lsls r0, r1, #3 - ldr r1, _0805E16C - adds r0, r0, r1 - ldr r1, _0805E170 - ldr r1, [r1] - ldr r1, [r1, #4] - ldr r3, [r2, #0x10] - b _0805E216 - .align 2, 0 -_0805E168: .4byte gUnknown_2039BD4 -_0805E16C: .4byte gUnknown_82D6148 -_0805E170: .4byte gUnknown_2024178 -_0805E174: - adds r0, r7, #0 - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - ldr r0, [sp] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0805E1A8 - ldr r1, _0805E1A0 - ldr r2, [sp] - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0805E1A4 - b _0805E1B8 - .align 2, 0 -_0805E1A0: .4byte gUnknown_2023D12 -_0805E1A4: .4byte gUnknown_20243E8 -_0805E1A8: - ldr r1, _0805E220 - ldr r3, [sp] - lsls r0, r3, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0805E224 -_0805E1B8: - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - adds r0, r7, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805E234 - ldr r0, _0805E220 - lsls r4, r7, #1 - adds r4, r4, r0 - ldrh r0, [r4] - movs r6, #0x64 - muls r0, r6, r0 - ldr r5, _0805E224 - adds r0, r0, r5 - movs r1, #0 - bl GetMonData - mov sb, r0 - ldrh r0, [r4] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #1 - bl GetMonData - adds r4, r0, #0 - mov r1, r8 - lsls r0, r1, #3 - ldr r1, _0805E228 - adds r0, r0, r1 - ldr r1, _0805E22C - ldr r1, [r1] - mov r3, sl - lsls r2, r3, #2 - adds r1, #4 - adds r1, r1, r2 - ldr r1, [r1] - ldr r3, _0805E230 - lsls r2, r7, #2 - adds r2, r2, r3 - ldr r3, [r2] -_0805E216: - mov r2, r8 - bl HandleLoadSpecialPokePic_DontHandleDeoxys - b _0805E27E - .align 2, 0 -_0805E220: .4byte gUnknown_2023D12 -_0805E224: .4byte gUnknown_2024190 -_0805E228: .4byte gUnknown_82D6148 -_0805E22C: .4byte gUnknown_2024178 -_0805E230: .4byte gUnknown_2024160 -_0805E234: - ldr r0, _0805E3A8 - lsls r4, r7, #1 - adds r4, r4, r0 - ldrh r0, [r4] - movs r6, #0x64 - muls r0, r6, r0 - ldr r5, _0805E3AC - adds r0, r0, r5 - movs r1, #0 - bl GetMonData - mov sb, r0 - ldrh r0, [r4] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #1 - bl GetMonData - adds r4, r0, #0 - mov r1, r8 - lsls r0, r1, #3 - ldr r1, _0805E3B0 - adds r0, r0, r1 - ldr r1, _0805E3B4 - ldr r1, [r1] - mov r3, sl - lsls r2, r3, #2 - adds r1, #4 - adds r1, r1, r2 - ldr r1, [r1] - ldr r3, _0805E3B8 - lsls r2, r7, #2 - adds r2, r2, r3 - ldr r3, [r2] - mov r2, r8 - bl HandleLoadSpecialPokePic_DontHandleDeoxys -_0805E27E: - ldr r0, _0805E3B4 - ldr r0, [r0] - mov r2, sl - lsls r1, r2, #2 - adds r0, #4 - adds r0, r0, r1 - ldr r2, [r0] - ldr r0, _0805E3BC - adds r0, r0, r7 - mov sl, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r3, _0805E3C0 - adds r0, r0, r3 - ldrh r0, [r0, #4] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x11 - ldr r1, _0805E3C4 - adds r0, r0, r1 - ldr r1, _0805E3C8 - str r2, [r1] - str r0, [r1, #4] - ldr r0, _0805E3CC - str r0, [r1, #8] - ldr r0, [r1, #8] - lsls r0, r7, #0x14 - movs r1, #0x80 - lsls r1, r1, #0x11 - adds r0, r0, r1 - lsrs r6, r0, #0x10 - mov r0, r8 - adds r1, r4, #0 - mov r2, sb - bl GetMonSpritePalFromSpeciesAndPersonality - mov sb, r0 - ldr r4, _0805E3D0 - adds r1, r4, #0 - bl sub_08034370 - adds r0, r4, #0 - adds r1, r6, #0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _0805E3D4 - cmp r8, r0 - bne _0805E326 - mov r2, sl - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0805E3C0 - adds r1, #8 - adds r0, r0, r1 - ldr r1, _0805E3D8 - mov r3, r8 - lsls r2, r3, #2 - adds r1, r1, r2 - ldr r1, [r1] - str r1, [r0] - ldr r5, _0805E3DC - ldr r1, [r5] - movs r4, #0x80 - lsls r4, r4, #1 - adds r1, r1, r4 - mov r0, sb - bl sub_08034370 - ldr r0, _0805E3E0 - ldr r1, [sp] - adds r0, r1, r0 - ldrb r1, [r0] - lsls r1, r1, #5 - adds r1, r1, r4 - ldr r0, [r5] - adds r0, r0, r1 - adds r1, r6, #0 - movs r2, #0x20 - bl LoadPalette -_0805E326: - ldr r3, _0805E3E4 - adds r0, r6, #0 - movs r1, #0x10 - movs r2, #6 - bl BlendPalette - lsls r1, r6, #1 - ldr r0, _0805E3E8 - adds r0, r1, r0 - ldr r2, _0805E3EC - adds r1, r1, r2 - ldr r2, _0805E3F0 - bl CpuSet - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805E366 - ldr r0, _0805E3F4 - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r7, #2 - adds r0, r0, r1 - mov r2, r8 - strh r2, [r0, #2] - ldr r0, _0805E3E0 - adds r1, r7, r0 - ldr r3, [sp] - adds r0, r3, r0 - ldrb r0, [r0] - strb r0, [r1] -_0805E366: - adds r0, r7, #0 - bl GetBattlerSpriteDefault_Y - mov r1, sl - ldrb r2, [r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - ldr r2, _0805E3C0 - adds r1, r1, r2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r1, #0x22] - mov r3, sl - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, _0805E3E0 - adds r1, r7, r1 - ldrb r1, [r1] - bl StartSpriteAnim -_0805E396: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805E3A8: .4byte gUnknown_2023D12 -_0805E3AC: .4byte gUnknown_20243E8 -_0805E3B0: .4byte gUnknown_82DDA1C -_0805E3B4: .4byte gUnknown_2024178 -_0805E3B8: .4byte gUnknown_2024160 -_0805E3BC: .4byte gUnknown_2023E88 -_0805E3C0: .4byte gUnknown_20205AC -_0805E3C4: .4byte 0x06010000 -_0805E3C8: .4byte 0x040000D4 -_0805E3CC: .4byte 0x84000200 -_0805E3D0: .4byte gUnknown_201C000 -_0805E3D4: .4byte 0x00000181 -_0805E3D8: .4byte gUnknown_82DD33C -_0805E3DC: .4byte gUnknown_2024140 -_0805E3E0: .4byte gUnknown_2024188 -_0805E3E4: .4byte 0x00007FFF -_0805E3E8: .4byte gUnknown_20377B4 -_0805E3EC: .4byte gUnknown_20373B4 -_0805E3F0: .4byte 0x04000008 -_0805E3F4: .4byte gUnknown_2024174 - thumb_func_end HandleSpeciesGfxDataChange - - thumb_func_start sub_0805E3F8 -sub_0805E3F8: @ 0x0805E3F8 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, r4, #0 - lsls r1, r1, #0x18 - cmp r1, #0 - bne _0805E4B4 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0805E414 - movs r4, #0 - b _0805E41E -_0805E414: - adds r0, r4, #0 - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_0805E41E: - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0805E430 - ldr r0, _0805E42C - b _0805E43E - .align 2, 0 -_0805E42C: .4byte gUnknown_8C2D1C4 -_0805E430: - adds r0, r5, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0805E458 - ldr r0, _0805E450 -_0805E43E: - ldr r1, _0805E454 - ldr r1, [r1] - lsls r4, r4, #2 - adds r1, #4 - adds r1, r1, r4 - ldr r1, [r1] - bl sub_0803437C - b _0805E46A - .align 2, 0 -_0805E450: .4byte gUnknown_8C2CF84 -_0805E454: .4byte gUnknown_2024178 -_0805E458: - ldr r0, _0805E4A0 - ldr r1, _0805E4A4 - ldr r1, [r1] - lsls r4, r4, #2 - adds r1, #4 - adds r1, r1, r4 - ldr r1, [r1] - bl sub_0803437C -_0805E46A: - movs r3, #1 - lsls r6, r5, #4 - ldr r0, _0805E4A4 - ldr r0, [r0] - adds r0, #4 - adds r4, r0, r4 - ldr r2, _0805E4A8 - ldr r5, _0805E4AC -_0805E47A: - ldr r0, [r4] - lsls r1, r3, #0xb - adds r1, r0, r1 - str r0, [r2] - str r1, [r2, #4] - str r5, [r2, #8] - ldr r0, [r2, #8] - adds r3, #1 - cmp r3, #3 - ble _0805E47A - movs r0, #0x80 - lsls r0, r0, #1 - adds r1, r6, r0 - ldr r0, _0805E4B0 - movs r2, #0x20 - bl LoadCompressedPalette - b _0805E502 - .align 2, 0 -_0805E4A0: .4byte gUnknown_8C2D1C4 -_0805E4A4: .4byte gUnknown_2024178 -_0805E4A8: .4byte 0x040000D4 -_0805E4AC: .4byte 0x84000200 -_0805E4B0: .4byte gUnknown_8C2CF60 -_0805E4B4: - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805E502 - adds r0, r4, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0805E4EC - ldr r1, _0805E4E4 - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0805E4E8 - adds r0, r0, r1 - adds r1, r4, #0 - bl BattleLoadOpponentMonSpriteGfx - b _0805E502 - .align 2, 0 -_0805E4E4: .4byte gUnknown_2023D12 -_0805E4E8: .4byte gUnknown_20243E8 -_0805E4EC: - ldr r1, _0805E508 - lsls r0, r5, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0805E50C - adds r0, r0, r1 - adds r1, r5, #0 - bl BattleLoadPlayerMonSpriteGfx -_0805E502: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0805E508: .4byte gUnknown_2023D12 -_0805E50C: .4byte gUnknown_2024190 - thumb_func_end sub_0805E3F8 - - thumb_func_start LoadBattleMonGfxAndAnimate -LoadBattleMonGfxAndAnimate: @ 0x0805E510 - push {r4, r5, r6, lr} - adds r5, r1, #0 - adds r4, r2, #0 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_0805E3F8 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - ldr r1, _0805E54C - adds r4, r0, r1 - ldr r0, _0805E550 - adds r0, r6, r0 - ldrb r1, [r0] - adds r0, r4, #0 - bl StartSpriteAnim - cmp r5, #0 - bne _0805E554 - adds r0, r6, #0 - bl GetSubstituteSpriteDefault_Y - b _0805E55A - .align 2, 0 -_0805E54C: .4byte gUnknown_20205AC -_0805E550: .4byte gUnknown_2024188 -_0805E554: - adds r0, r6, #0 - bl GetBattlerSpriteDefault_Y -_0805E55A: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x22] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LoadBattleMonGfxAndAnimate - - thumb_func_start TrySetBehindSubstituteSpriteBit -TrySetBehindSubstituteSpriteBit: @ 0x0805E568 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - cmp r1, #0xa4 - bne _0805E588 - ldr r0, _0805E58C - ldr r0, [r0] - ldr r0, [r0] - lsls r1, r2, #2 - adds r1, r1, r0 - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] -_0805E588: - pop {r0} - bx r0 - .align 2, 0 -_0805E58C: .4byte gUnknown_2024174 - thumb_func_end TrySetBehindSubstituteSpriteBit - - thumb_func_start ClearBehindSubstituteBit -ClearBehindSubstituteBit: @ 0x0805E590 - lsls r0, r0, #0x18 - ldr r1, _0805E5A8 - ldr r1, [r1] - ldr r1, [r1] - lsrs r0, r0, #0x16 - adds r0, r0, r1 - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 -_0805E5A8: .4byte gUnknown_2024174 - thumb_func_end ClearBehindSubstituteBit - - thumb_func_start HandleLowHpMusicChange -HandleLowHpMusicChange: @ 0x0805E5AC - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - adds r7, r6, #0 - movs r1, #0x39 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - movs r1, #0x3a - bl GetMonData - adds r1, r0, #0 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r4, #0 - bl GetHPBarLevel - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0805E624 - ldr r7, _0805E620 - ldr r0, [r7] - ldr r2, [r0] - lsls r4, r6, #2 - adds r0, r4, r2 - ldrb r1, [r0] - movs r5, #2 - movs r3, #2 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - bne _0805E676 - adds r0, r6, #0 - eors r0, r5 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - bne _0805E612 - movs r0, #0x5a - bl sub_080A306C -_0805E612: - ldr r0, [r7] - ldr r1, [r0] - adds r1, r4, r1 - ldrb r0, [r1] - orrs r0, r5 - strb r0, [r1] - b _0805E676 - .align 2, 0 -_0805E620: .4byte gUnknown_2024174 -_0805E624: - ldr r4, _0805E64C - ldr r0, [r4] - ldr r0, [r0] - lsls r1, r6, #2 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805E650 - movs r0, #0x5a - bl m4aSongNumStop - b _0805E676 - .align 2, 0 -_0805E64C: .4byte gUnknown_2024174 -_0805E650: - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0805E676 - ldr r1, [r4] - movs r0, #2 - eors r7, r0 - ldr r1, [r1] - lsls r0, r7, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0805E676 - movs r0, #0x5a - bl m4aSongNumStop -_0805E676: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end HandleLowHpMusicChange - - thumb_func_start BattleStopLowHpSound -BattleStopLowHpSound: @ 0x0805E67C - push {r4, r5, r6, lr} - movs r0, #0 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r5, _0805E6CC - ldr r0, [r5] - ldr r0, [r0] - lsls r1, r4, #2 - adds r1, r1, r0 - ldrb r2, [r1] - movs r6, #3 - rsbs r6, r6, #0 - adds r0, r6, #0 - ands r0, r2 - strb r0, [r1] - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0805E6BE - ldr r2, [r5] - movs r0, #2 - adds r1, r4, #0 - eors r1, r0 - ldr r0, [r2] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1] - adds r0, r6, #0 - ands r0, r2 - strb r0, [r1] -_0805E6BE: - movs r0, #0x5a - bl m4aSongNumStop - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0805E6CC: .4byte gUnknown_2024174 - thumb_func_end BattleStopLowHpSound - - thumb_func_start GetMonHPBarLevel -GetMonHPBarLevel: @ 0x0805E6D0 - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0x39 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - movs r1, #0x3a - bl GetMonData - adds r1, r0, #0 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r4, #0 - bl GetHPBarLevel - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetMonHPBarLevel - - thumb_func_start HandleBattleLowHpMusicChange -HandleBattleLowHpMusicChange: @ 0x0805E704 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r0, _0805E7A8 - ldr r1, _0805E7AC - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0805E79A - movs r0, #0 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r0, #2 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldr r5, _0805E7B0 - mov r1, r8 - lsls r0, r1, #1 - adds r0, r0, r5 - ldrb r0, [r0] - bl pokemon_order_func - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r1, sb - lsls r0, r1, #1 - adds r0, r0, r5 - ldrb r0, [r0] - bl pokemon_order_func - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r7, #0x64 - adds r0, r4, #0 - muls r0, r7, r0 - ldr r6, _0805E7B4 - adds r4, r0, r6 - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _0805E776 - adds r0, r4, #0 - mov r1, r8 - bl HandleLowHpMusicChange -_0805E776: - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0805E79A - adds r0, r5, #0 - muls r0, r7, r0 - adds r4, r0, r6 - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _0805E79A - adds r0, r4, #0 - mov r1, sb - bl HandleLowHpMusicChange -_0805E79A: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805E7A8: .4byte gUnknown_3002360 -_0805E7AC: .4byte 0x00000439 -_0805E7B0: .4byte gUnknown_2023D12 -_0805E7B4: .4byte gUnknown_2024190 - thumb_func_end HandleBattleLowHpMusicChange - - thumb_func_start sub_0805E7B8 -sub_0805E7B8: @ 0x0805E7B8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r5, #0 - ldr r0, _0805E848 - ldrb r0, [r0] - cmp r5, r0 - bge _0805E888 - movs r0, #3 - mov sl, r8 - mov r1, sl - ands r1, r0 - mov sl, r1 - movs r6, #0 - movs r2, #0x3f - rsbs r2, r2, #0 - mov sb, r2 -_0805E7E4: - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - bl IsBattlerSpritePresent - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0805E87C - ldr r4, _0805E84C - ldr r0, _0805E850 - adds r3, r5, r0 - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r1, [r0, #1] - movs r7, #4 - rsbs r7, r7, #0 - adds r2, r7, #0 - ands r1, r2 - mov r2, sl - orrs r1, r2 - strb r1, [r0, #1] - mov r7, r8 - cmp r7, #0 - bne _0805E858 - ldr r0, _0805E854 - ldr r0, [r0] - ldr r2, [r0, #4] - adds r2, r6, r2 - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r0, [r0, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - strb r0, [r2, #6] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r1, [r0, #3] - mov r2, sb - ands r1, r2 - strb r1, [r0, #3] - b _0805E87C - .align 2, 0 -_0805E848: .4byte gUnknown_2023D10 -_0805E84C: .4byte gUnknown_20205AC -_0805E850: .4byte gUnknown_2023E88 -_0805E854: .4byte gUnknown_2024174 -_0805E858: - ldrb r0, [r3] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r4 - ldr r0, _0805E898 - ldr r0, [r0] - ldr r0, [r0, #4] - adds r0, r6, r0 - ldrb r1, [r0, #6] - movs r0, #0x1f - ands r1, r0 - lsls r1, r1, #1 - ldrb r0, [r2, #3] - mov r3, sb - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #3] -_0805E87C: - adds r6, #0xc - adds r5, #1 - ldr r0, _0805E89C - ldrb r0, [r0] - cmp r5, r0 - blt _0805E7E4 -_0805E888: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805E898: .4byte gUnknown_2024174 -_0805E89C: .4byte gUnknown_2023D10 - thumb_func_end sub_0805E7B8 - - thumb_func_start LoadAndCreateEnemyShadowSprites -LoadAndCreateEnemyShadowSprites: @ 0x0805E8A0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _0805E97C - bl LoadCompressedSpriteSheet - movs r0, #1 - bl GetBattlerAtPosition - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _0805E980 - mov r8, r0 - adds r0, r5, #0 - movs r1, #0 - bl GetBattlerSpriteCoord - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - movs r1, #1 - bl GetBattlerSpriteCoord - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #8 - movs r0, #0xe8 - lsls r0, r0, #0xd - adds r2, r2, r0 - asrs r2, r2, #0x10 - mov r0, r8 - adds r1, r4, #0 - movs r3, #0xc8 - bl CreateSprite - ldr r6, _0805E984 - ldr r1, [r6] - ldr r2, [r1, #4] - lsls r1, r5, #1 - adds r1, r1, r5 - lsls r1, r1, #2 - adds r2, r1, r2 - strb r0, [r2, #7] - ldr r7, _0805E988 - ldr r0, [r6] - ldr r0, [r0, #4] - adds r1, r1, r0 - ldrb r1, [r1, #7] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r5, [r0, #0x2e] - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0805E972 - movs r0, #3 - bl GetBattlerAtPosition - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - adds r0, r5, #0 - movs r1, #0 - bl GetBattlerSpriteCoord - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - movs r1, #1 - bl GetBattlerSpriteCoord - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #8 - movs r0, #0xe8 - lsls r0, r0, #0xd - adds r2, r2, r0 - asrs r2, r2, #0x10 - mov r0, r8 - adds r1, r4, #0 - movs r3, #0xc8 - bl CreateSprite - ldr r1, [r6] - ldr r2, [r1, #4] - lsls r1, r5, #1 - adds r1, r1, r5 - lsls r1, r1, #2 - adds r2, r1, r2 - strb r0, [r2, #7] - ldr r0, [r6] - ldr r0, [r0, #4] - adds r1, r1, r0 - ldrb r1, [r1, #7] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r5, [r0, #0x2e] -_0805E972: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805E97C: .4byte gUnknown_82ED028 -_0805E980: .4byte gUnknown_82ED038 -_0805E984: .4byte gUnknown_2024174 -_0805E988: .4byte gUnknown_20205AC - thumb_func_end LoadAndCreateEnemyShadowSprites - - thumb_func_start SpriteCB_EnemyShadow -SpriteCB_EnemyShadow: @ 0x0805E98C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - movs r0, #0 - mov r8, r0 - ldrh r0, [r5, #0x2e] - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0805E9D0 - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0805E9D4 - adds r7, r0, r1 - adds r6, r7, #0 - adds r6, #0x3e - ldrb r1, [r6] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0805E9C8 - adds r0, r4, #0 - bl IsBattlerSpritePresent - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805E9DC -_0805E9C8: - ldr r0, _0805E9D8 - str r0, [r5, #0x1c] - b _0805EA52 - .align 2, 0 -_0805E9D0: .4byte gUnknown_2023E88 -_0805E9D4: .4byte gUnknown_20205AC -_0805E9D8: .4byte sub_0805EA64 -_0805E9DC: - ldr r0, _0805E9F8 - ldrb r0, [r0] - cmp r0, #0 - bne _0805E9EE - ldrb r1, [r6] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0805EA00 -_0805E9EE: - movs r0, #1 - mov r8, r0 - ldr r2, _0805E9FC - lsls r4, r4, #2 - b _0805EA22 - .align 2, 0 -_0805E9F8: .4byte gUnknown_203809D -_0805E9FC: .4byte gUnknown_2024174 -_0805EA00: - ldr r2, _0805EA5C - ldr r0, [r2] - ldr r0, [r0] - lsls r1, r4, #2 - adds r3, r1, r0 - ldrh r0, [r3, #2] - adds r4, r1, #0 - cmp r0, #0 - beq _0805EA22 - ldr r0, _0805EA60 - ldrh r1, [r3, #2] - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0 - bne _0805EA22 - movs r0, #1 - mov r8, r0 -_0805EA22: - ldr r0, [r2] - ldr r0, [r0] - adds r0, r4, r0 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0805EA36 - movs r0, #1 - mov r8, r0 -_0805EA36: - ldrh r0, [r7, #0x20] - strh r0, [r5, #0x20] - ldrh r0, [r7, #0x24] - strh r0, [r5, #0x24] - adds r2, r5, #0 - adds r2, #0x3e - mov r0, r8 - lsls r3, r0, #2 - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2] -_0805EA52: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805EA5C: .4byte gUnknown_2024174 -_0805EA60: .4byte gUnknown_82D965C - thumb_func_end SpriteCB_EnemyShadow - - thumb_func_start sub_0805EA64 -sub_0805EA64: @ 0x0805EA64 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - bx lr - thumb_func_end sub_0805EA64 - - thumb_func_start SetBattlerShadowSpriteCallback -SetBattlerShadowSpriteCallback: @ 0x0805EA70 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r6, r4, #0 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - adds r0, r4, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0805EAEC - ldr r0, _0805EAC0 - ldr r3, [r0] - ldr r1, [r3] - lsls r0, r4, #2 - adds r1, r0, r1 - ldrh r0, [r1, #2] - cmp r0, #0 - beq _0805EA9A - adds r5, r0, #0 -_0805EA9A: - ldr r0, _0805EAC4 - adds r0, r5, r0 - ldrb r0, [r0] - cmp r0, #0 - beq _0805EAD0 - ldr r2, _0805EAC8 - ldr r1, [r3, #4] - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #7] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, _0805EACC - b _0805EAEA - .align 2, 0 -_0805EAC0: .4byte gUnknown_2024174 -_0805EAC4: .4byte gUnknown_82D965C -_0805EAC8: .4byte gUnknown_20205AC -_0805EACC: .4byte SpriteCB_EnemyShadow -_0805EAD0: - ldr r2, _0805EAF4 - ldr r1, [r3, #4] - lsls r0, r6, #1 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #7] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, _0805EAF8 -_0805EAEA: - str r1, [r0] -_0805EAEC: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0805EAF4: .4byte gUnknown_20205AC -_0805EAF8: .4byte sub_0805EA64 - thumb_func_end SetBattlerShadowSpriteCallback - - thumb_func_start HideBattlerShadowSprite -HideBattlerShadowSprite: @ 0x0805EAFC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0805EB24 - ldr r1, _0805EB28 - ldr r1, [r1] - ldr r3, [r1, #4] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrb r1, [r1, #7] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, _0805EB2C - str r1, [r0] - bx lr - .align 2, 0 -_0805EB24: .4byte gUnknown_20205AC -_0805EB28: .4byte gUnknown_2024174 -_0805EB2C: .4byte sub_0805EA64 - thumb_func_end HideBattlerShadowSprite - - thumb_func_start sub_0805EB30 -sub_0805EB30: @ 0x0805EB30 - push {r4, r5, r6, lr} - ldr r3, _0805EB9C - movs r0, #0 - movs r6, #0xf0 - lsls r6, r6, #8 -_0805EB3A: - adds r5, r0, #1 - movs r4, #0xf -_0805EB3E: - ldrh r1, [r3] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - bne _0805EB4E - adds r0, r6, #0 - orrs r0, r1 - strh r0, [r3] -_0805EB4E: - ldrh r1, [r3] - movs r2, #0xf0 - lsls r2, r2, #4 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _0805EB62 - adds r0, r2, #0 - orrs r0, r1 - strh r0, [r3] -_0805EB62: - ldrh r1, [r3] - movs r2, #0xf0 - movs r0, #0xf0 - ands r0, r1 - cmp r0, #0 - bne _0805EB74 - adds r0, r1, #0 - orrs r0, r2 - strh r0, [r3] -_0805EB74: - ldrh r1, [r3] - movs r2, #0xf - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _0805EB86 - adds r0, r1, #0 - orrs r0, r2 - strh r0, [r3] -_0805EB86: - adds r3, #2 - subs r4, #1 - cmp r4, #0 - bge _0805EB3E - adds r0, r5, #0 - cmp r0, #8 - ble _0805EB3A - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0805EB9C: .4byte 0x06000240 - thumb_func_end sub_0805EB30 - - thumb_func_start ClearTemporarySpeciesSpriteData -ClearTemporarySpeciesSpriteData: @ 0x0805EBA0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - ldr r0, _0805EBD0 - ldr r0, [r0] - ldr r2, [r0] - lsls r0, r4, #2 - adds r0, r0, r2 - movs r3, #0 - movs r2, #0 - strh r2, [r0, #2] - ldr r0, _0805EBD4 - adds r0, r4, r0 - strb r3, [r0] - cmp r1, #0 - bne _0805EBC8 - adds r0, r4, #0 - bl ClearBehindSubstituteBit -_0805EBC8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805EBD0: .4byte gUnknown_2024174 -_0805EBD4: .4byte gUnknown_2024188 - thumb_func_end ClearTemporarySpeciesSpriteData - - thumb_func_start AllocateMonSpritesGfx -AllocateMonSpritesGfx: @ 0x0805EBD8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - movs r6, #0 - ldr r4, _0805ECA8 - str r6, [r4] - movs r0, #0xc0 - lsls r0, r0, #1 - bl AllocZeroed - str r0, [r4] - movs r0, #0x80 - lsls r0, r0, #8 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1] -_0805EBFE: - ldr r0, _0805ECA8 - ldr r1, [r0] - lsls r4, r6, #2 - adds r2, r1, #4 - adds r2, r2, r4 - lsls r3, r6, #0xd - ldr r0, [r1] - adds r0, r0, r3 - str r0, [r2] - lsls r3, r6, #1 - adds r0, r3, r6 - lsls r0, r0, #3 - adds r1, r0, r1 - ldr r2, _0805ECAC - adds r1, #0x14 - adds r0, r0, r2 - ldm r0!, {r2, r5, r7} - stm r1!, {r2, r5, r7} - ldm r0!, {r2, r5, r7} - stm r1!, {r2, r5, r7} - movs r5, #0 - mov sb, r3 - lsls r0, r6, #5 - mov r8, r0 - adds r1, r6, #1 - mov sl, r1 - mov ip, r8 - adds r7, r4, #0 -_0805EC36: - ldr r2, _0805ECA8 - ldr r1, [r2] - lsls r4, r5, #3 - add r4, ip - adds r3, r1, #0 - adds r3, #0x74 - adds r3, r3, r4 - adds r0, r1, #4 - adds r0, r0, r7 - lsls r2, r5, #0xb - ldr r0, [r0] - adds r0, r0, r2 - str r0, [r3] - adds r1, r1, r4 - adds r1, #0x78 - movs r0, #0x80 - lsls r0, r0, #4 - strh r0, [r1] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #3 - bls _0805EC36 - ldr r1, _0805ECA8 - ldr r2, [r1] - mov r5, sb - adds r0, r5, r6 - lsls r0, r0, #3 - adds r1, r2, #0 - adds r1, #0x20 - adds r1, r1, r0 - mov r0, r8 - adds r0, #0x74 - adds r2, r2, r0 - str r2, [r1] - mov r7, sl - lsls r0, r7, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #3 - bls _0805EBFE - movs r0, #0x80 - lsls r0, r0, #5 - bl AllocZeroed - ldr r1, _0805ECA8 - ldr r1, [r1] - movs r2, #0xba - lsls r2, r2, #1 - adds r1, r1, r2 - str r0, [r1] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805ECA8: .4byte gUnknown_2024178 -_0805ECAC: .4byte gUnknown_82FA724 - thumb_func_end AllocateMonSpritesGfx - - thumb_func_start FreeMonSpritesGfx -FreeMonSpritesGfx: @ 0x0805ECB0 - push {r4, r5, r6, lr} - ldr r6, _0805ED28 - ldr r0, [r6] - cmp r0, #0 - beq _0805ED22 - movs r1, #0xbe - lsls r1, r1, #1 - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #0 - beq _0805ECD6 - bl Free - ldr r0, [r6] - movs r1, #0xbe - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #0 - str r1, [r0] -_0805ECD6: - ldr r0, [r6] - movs r1, #0xbc - lsls r1, r1, #1 - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #0 - beq _0805ECF4 - bl Free - ldr r0, [r6] - movs r1, #0xbc - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #0 - str r1, [r0] -_0805ECF4: - ldr r0, [r6] - movs r5, #0xba - lsls r5, r5, #1 - adds r0, r0, r5 - ldr r0, [r0] - bl Free - ldr r0, [r6] - adds r5, r0, r5 - movs r4, #0 - str r4, [r5] - ldr r0, [r0] - bl Free - ldr r0, [r6] - str r4, [r0] - str r4, [r0, #4] - str r4, [r0, #8] - str r4, [r0, #0xc] - str r4, [r0, #0x10] - bl Free - str r4, [r6] -_0805ED22: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0805ED28: .4byte gUnknown_2024178 - thumb_func_end FreeMonSpritesGfx - - thumb_func_start ShouldPlayNormalMonCry -ShouldPlayNormalMonCry: @ 0x0805ED2C - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0x37 - bl GetMonData - ldr r1, _0805ED70 - ands r1, r0 - cmp r1, #0 - bne _0805ED74 - adds r0, r5, #0 - movs r1, #0x39 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - movs r1, #0x3a - bl GetMonData - adds r1, r0, #0 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r4, #0 - bl GetHPBarLevel - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - ble _0805ED74 - movs r0, #1 - b _0805ED76 - .align 2, 0 -_0805ED70: .4byte 0x00000FFF -_0805ED74: - movs r0, #0 -_0805ED76: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end ShouldPlayNormalMonCry - - thumb_func_start sub_0805ED7C -sub_0805ED7C: @ 0x0805ED7C - bx lr - .align 2, 0 - thumb_func_end sub_0805ED7C - - thumb_func_start sub_0805ED80 -sub_0805ED80: @ 0x0805ED80 - ldr r1, _0805ED90 - ldr r0, _0805ED94 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805ED98 - str r1, [r0] - bx lr - .align 2, 0 -_0805ED90: .4byte gUnknown_3005AC0 -_0805ED94: .4byte gUnknown_2023D08 -_0805ED98: .4byte sub_0805ED9C - thumb_func_end sub_0805ED80 - - thumb_func_start sub_0805ED9C -sub_0805ED9C: @ 0x0805ED9C - push {lr} - ldr r2, _0805EDD0 - ldr r1, _0805EDD4 - ldr r0, _0805EDD8 - ldrb r3, [r0] - lsls r0, r3, #2 - adds r0, r0, r1 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _0805EDE8 - ldr r0, _0805EDDC - lsls r1, r3, #9 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0x38 - bhi _0805EDE4 - ldr r0, _0805EDE0 - ldrb r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl _call_via_r0 - b _0805EDE8 - .align 2, 0 -_0805EDD0: .4byte gUnknown_2023D0C -_0805EDD4: .4byte gUnknown_82FACB4 -_0805EDD8: .4byte gUnknown_2023D08 -_0805EDDC: .4byte gUnknown_2022D08 -_0805EDE0: .4byte gUnknown_82ED050 -_0805EDE4: - bl OpponentBufferExecCompleted -_0805EDE8: - pop {r0} - bx r0 - thumb_func_end sub_0805ED9C - - thumb_func_start sub_0805EDEC -sub_0805EDEC: @ 0x0805EDEC - push {lr} - ldr r2, _0805EE14 - ldr r1, _0805EE18 - ldr r0, _0805EE1C - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _0805EE20 - cmp r1, r0 - bne _0805EE10 - bl OpponentBufferExecCompleted -_0805EE10: - pop {r0} - bx r0 - .align 2, 0 -_0805EE14: .4byte gUnknown_20205AC -_0805EE18: .4byte gUnknown_2023E88 -_0805EE1C: .4byte gUnknown_2023D08 -_0805EE20: .4byte sub_08007140 - thumb_func_end sub_0805EDEC - - thumb_func_start sub_0805EE24 -sub_0805EE24: @ 0x0805EE24 - push {lr} - ldr r2, _0805EE4C - ldr r1, _0805EE50 - ldr r0, _0805EE54 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _0805EE58 - cmp r1, r0 - bne _0805EE48 - bl OpponentBufferExecCompleted -_0805EE48: - pop {r0} - bx r0 - .align 2, 0 -_0805EE4C: .4byte gUnknown_20205AC -_0805EE50: .4byte gUnknown_2023E88 -_0805EE54: .4byte gUnknown_2023D08 -_0805EE58: .4byte sub_08007140 - thumb_func_end sub_0805EE24 - - thumb_func_start sub_0805EE5C -sub_0805EE5C: @ 0x0805EE5C - push {r4, r5, r6, lr} - ldr r5, _0805EEB4 - ldr r6, _0805EEB8 - ldr r4, _0805EEBC - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r2, r0, #2 - adds r0, r5, #0 - adds r0, #0x1c - adds r0, r2, r0 - ldr r1, [r0] - ldr r0, _0805EEC0 - cmp r1, r0 - bne _0805EEAE - adds r0, r2, r5 - ldrh r0, [r0, #6] - bl FreeTrainerFrontPicPalette - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - bl FreeSpriteOamMatrix - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - bl DestroySprite - bl OpponentBufferExecCompleted -_0805EEAE: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0805EEB4: .4byte gUnknown_20205AC -_0805EEB8: .4byte gUnknown_2023E88 -_0805EEBC: .4byte gUnknown_2023D08 -_0805EEC0: .4byte sub_08007140 - thumb_func_end sub_0805EE5C - - thumb_func_start sub_0805EEC4 -sub_0805EEC4: @ 0x0805EEC4 - push {r4, lr} - ldr r4, _0805EF04 - ldr r1, [r4] - ldr r3, _0805EF08 - ldrb r0, [r3] - ldr r2, [r1, #4] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r0, [r1, #9] - subs r0, #1 - strb r0, [r1, #9] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _0805EEFC - ldr r0, [r4] - ldrb r1, [r3] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0 - strb r1, [r0, #9] - bl OpponentBufferExecCompleted -_0805EEFC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805EF04: .4byte gUnknown_2024174 -_0805EF08: .4byte gUnknown_2023D08 - thumb_func_end sub_0805EEC4 - - thumb_func_start sub_0805EF0C -sub_0805EF0C: @ 0x0805EF0C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - movs r0, #0 - mov sb, r0 - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0805EF48 - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0805EF3A - ldr r0, _0805EF70 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _0805EF48 -_0805EF3A: - ldr r0, _0805EF70 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - beq _0805EF84 -_0805EF48: - ldr r2, _0805EF74 - ldr r1, _0805EF78 - ldr r3, _0805EF7C - ldrb r0, [r3] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _0805EF80 - mov sl, r3 - cmp r1, r0 - bne _0805EF6C - movs r1, #1 - mov sb, r1 -_0805EF6C: - movs r6, #0 - b _0805EFC0 - .align 2, 0 -_0805EF70: .4byte gUnknown_2022C90 -_0805EF74: .4byte gUnknown_20205AC -_0805EF78: .4byte gUnknown_3005AD0 -_0805EF7C: .4byte gUnknown_2023D08 -_0805EF80: .4byte sub_08007140 -_0805EF84: - ldr r3, _0805F090 - ldr r6, _0805F094 - ldr r2, _0805F098 - ldrb r4, [r2] - adds r0, r4, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r3, #0x1c - adds r0, r0, r3 - ldr r5, [r0] - ldr r0, _0805F09C - mov sl, r2 - cmp r5, r0 - bne _0805EFBE - movs r0, #2 - eors r4, r0 - adds r0, r4, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldr r0, [r0] - cmp r0, r5 - bne _0805EFBE - movs r0, #1 - mov sb, r0 -_0805EFBE: - movs r6, #1 -_0805EFC0: - ldr r3, _0805F0A0 - ldr r1, _0805F0A4 - mov r8, r1 - ldr r2, [r1] - mov r7, sl - ldrb r1, [r7] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r5, [r2, #4] - adds r0, r5, r0 - str r0, [r3] - ldr r2, _0805F0A8 - ldrb r0, [r7] - movs r1, #2 - mov ip, r1 - mov r1, ip - eors r1, r0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r5, r0 - str r0, [r2] - mov r0, sb - cmp r0, #0 - bne _0805EFF6 - b _0805F12A -_0805EFF6: - cmp r6, #1 - bne _0805F0B0 - ldrb r2, [r7] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r4, r0, r5 - ldrb r1, [r4, #1] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - bne _0805F010 - b _0805F12A -_0805F010: - mov r0, ip - eors r0, r2 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrb r0, [r1, #1] - ands r6, r0 - cmp r6, #0 - bne _0805F026 - b _0805F12A -_0805F026: - ldrb r1, [r4] - movs r3, #0x7f - adds r0, r3, #0 - ands r0, r1 - strb r0, [r4] - mov r1, r8 - ldr r0, [r1] - ldrb r2, [r7] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #1] - movs r4, #2 - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r2 - strb r0, [r1, #1] - mov r0, r8 - ldr r2, [r0] - ldrb r0, [r7] - mov r1, ip - eors r1, r0 - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - ands r3, r1 - strb r3, [r0] - mov r1, r8 - ldr r2, [r1] - ldrb r0, [r7] - mov r1, ip - eors r1, r0 - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #1] - ands r4, r1 - strb r4, [r0, #1] - ldr r4, _0805F0AC - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl FreeSpritePaletteByTag - b _0805F108 - .align 2, 0 -_0805F090: .4byte gUnknown_20205AC -_0805F094: .4byte gUnknown_3005AD0 -_0805F098: .4byte gUnknown_2023D08 -_0805F09C: .4byte sub_08007140 -_0805F0A0: .4byte gUnknown_202417C -_0805F0A4: .4byte gUnknown_2024174 -_0805F0A8: .4byte gUnknown_2024180 -_0805F0AC: .4byte 0x000027F9 -_0805F0B0: - mov r0, sl - ldrb r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, r0, r5 - ldrb r1, [r2, #1] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0805F12A - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - mov r1, r8 - ldr r0, [r1] - mov r1, sl - ldrb r2, [r1] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #1] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #1] - mov r1, sl - ldrb r0, [r1] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bne _0805F108 - ldr r4, _0805F138 - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl FreeSpritePaletteByTag -_0805F108: - ldr r0, _0805F13C - ldr r0, [r0] - ldr r3, _0805F140 - ldrb r1, [r3] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #3 - strb r1, [r0, #9] - ldr r1, _0805F144 - ldrb r0, [r3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805F148 - str r1, [r0] -_0805F12A: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805F138: .4byte 0x000027F9 -_0805F13C: .4byte gUnknown_2024174 -_0805F140: .4byte gUnknown_2023D08 -_0805F144: .4byte gUnknown_3005AC0 -_0805F148: .4byte sub_0805EEC4 - thumb_func_end sub_0805EF0C - - thumb_func_start sub_0805F14C -sub_0805F14C: @ 0x0805F14C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - movs r0, #0 - str r0, [sp] - mov sl, r0 - ldr r5, _0805F334 - ldr r0, [r5] - ldr r4, _0805F338 - ldrb r2, [r4] - ldr r1, [r0, #4] - lsls r3, r2, #1 - adds r0, r3, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r1, [r0] - movs r6, #0xc4 - lsls r6, r6, #1 - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - bne _0805F192 - ldr r0, _0805F33C - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _0805F340 - adds r1, r1, r0 - adds r0, r2, #0 - bl sub_08172CD4 -_0805F192: - ldr r0, _0805F344 - ldr r0, [r0] - ldr r1, _0805F348 - ands r0, r1 - cmp r0, #0 - bne _0805F1DA - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0805F1DA - ldr r2, [r5] - ldrb r1, [r4] - movs r0, #2 - adds r3, r0, #0 - eors r3, r1 - ldr r1, [r2, #4] - lsls r2, r3, #1 - adds r0, r2, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r1, [r0] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - bne _0805F1DA - ldr r0, _0805F33C - adds r0, r2, r0 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _0805F340 - adds r1, r1, r0 - adds r0, r3, #0 - bl sub_08172CD4 -_0805F1DA: - ldr r2, _0805F334 - ldr r0, [r2] - ldr r1, _0805F338 - mov r8, r1 - ldrb r4, [r1] - ldr r5, [r0, #4] - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r3, r0, r5 - ldrb r1, [r3] - movs r6, #8 - adds r0, r6, #0 - ands r0, r1 - mov sb, r2 - cmp r0, #0 - bne _0805F2BC - movs r7, #2 - adds r1, r7, #0 - eors r1, r4 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r1, [r0] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - bne _0805F2BC - ldrb r1, [r3, #1] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0805F2A0 - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0805F270 - ldr r0, _0805F344 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _0805F270 - ldr r4, _0805F34C - mov r1, r8 - ldrb r0, [r1] - adds r1, r7, #0 - eors r1, r0 - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, _0805F33C - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _0805F340 - adds r1, r1, r2 - movs r2, #0 - bl UpdateHealthboxAttribute - mov r1, r8 - ldrb r0, [r1] - eors r0, r7 - bl sub_08076320 - mov r1, r8 - ldrb r0, [r1] - eors r0, r7 - adds r0, r0, r4 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible -_0805F270: - ldr r5, _0805F34C - ldr r4, _0805F338 - ldrb r1, [r4] - adds r0, r1, r5 - ldrb r0, [r0] - ldr r2, _0805F33C - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _0805F340 - adds r1, r1, r2 - movs r2, #0 - bl UpdateHealthboxAttribute - ldrb r0, [r4] - bl sub_08076320 - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible -_0805F2A0: - ldr r3, _0805F334 - ldr r2, [r3] - ldr r0, _0805F338 - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #1] - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0, #1] - mov sb, r3 -_0805F2BC: - mov r1, sb - ldr r0, [r1] - ldr r4, _0805F338 - ldrb r2, [r4] - ldr r3, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0, #1] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0x80 - bne _0805F37E - movs r1, #2 - eors r1, r2 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0, #1] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _0805F37E - bl IsCryPlayingOrClearCrySongs - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805F37E - mov r1, sb - ldr r0, [r1] - ldrb r4, [r4] - ldr r1, [r0, #4] - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #1] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _0805F360 - ldr r0, _0805F344 - ldr r0, [r0] - movs r1, #0x42 - ands r0, r1 - cmp r0, #0x42 - bne _0805F354 - adds r0, r4, #0 - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0805F360 - ldr r0, _0805F350 - bl m4aMPlayContinue - b _0805F360 - .align 2, 0 -_0805F334: .4byte gUnknown_2024174 -_0805F338: .4byte gUnknown_2023D08 -_0805F33C: .4byte gUnknown_2023D12 -_0805F340: .4byte gUnknown_20243E8 -_0805F344: .4byte gUnknown_2022C90 -_0805F348: .4byte 0x00008040 -_0805F34C: .4byte gUnknown_3005AD0 -_0805F350: .4byte gUnknown_30074D0 -_0805F354: - ldr r0, _0805F3D8 - ldr r1, _0805F3DC - movs r2, #0x80 - lsls r2, r2, #1 - bl m4aMPlayVolumeControl -_0805F360: - ldr r0, _0805F3E0 - ldr r2, [r0] - ldr r0, _0805F3E4 - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #1] - movs r2, #0x20 - orrs r1, r2 - strb r1, [r0, #1] - movs r0, #1 - str r0, [sp] -_0805F37E: - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0805F39E - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0805F3FC - ldr r0, _0805F3E8 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0805F3FC -_0805F39E: - ldr r2, _0805F3EC - ldr r0, _0805F3F0 - ldr r1, _0805F3E4 - ldrb r4, [r1] - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r3, [r0] - ldr r0, _0805F3F4 - cmp r3, r0 - bne _0805F45A - ldr r0, _0805F3F8 - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - cmp r0, r3 - bne _0805F45A - movs r1, #1 - mov sl, r1 - b _0805F45A - .align 2, 0 -_0805F3D8: .4byte gUnknown_30074D0 -_0805F3DC: .4byte 0x0000FFFF -_0805F3E0: .4byte gUnknown_2024174 -_0805F3E4: .4byte gUnknown_2023D08 -_0805F3E8: .4byte gUnknown_2022C90 -_0805F3EC: .4byte gUnknown_20205AC -_0805F3F0: .4byte gUnknown_3005ADC -_0805F3F4: .4byte sub_08007140 -_0805F3F8: .4byte gUnknown_2023E88 -_0805F3FC: - ldr r2, _0805F554 - ldr r7, _0805F558 - ldr r0, _0805F55C - ldrb r3, [r0] - adds r0, r3, r7 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r4, [r0] - ldr r0, _0805F560 - cmp r4, r0 - bne _0805F45A - ldr r6, _0805F564 - adds r0, r3, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r5, [r0] - cmp r5, r4 - bne _0805F45A - movs r0, #2 - eors r3, r0 - adds r0, r3, r7 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r4, [r0] - cmp r4, r5 - bne _0805F45A - adds r0, r3, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - cmp r0, r4 - bne _0805F45A - movs r0, #1 - mov sl, r0 -_0805F45A: - ldr r1, [sp] - cmp r1, #0 - beq _0805F544 - mov r0, sl - cmp r0, #0 - beq _0805F544 - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0805F4BE - ldr r0, _0805F568 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _0805F4BE - ldr r1, _0805F558 - ldr r5, _0805F55C - ldrb r0, [r5] - movs r4, #2 - eors r0, r4 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0805F554 - adds r0, r0, r1 - bl DestroySprite - ldrb r0, [r5] - eors r4, r0 - ldr r1, _0805F56C - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0805F570 - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl SetBattlerShadowSpriteCallback -_0805F4BE: - ldr r1, _0805F558 - ldr r4, _0805F55C - ldrb r0, [r4] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0805F554 - adds r0, r0, r1 - bl DestroySprite - ldrb r5, [r4] - ldr r1, _0805F56C - lsls r0, r5, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0805F570 - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r5, #0 - bl SetBattlerShadowSpriteCallback - ldr r3, _0805F574 - ldr r0, [r3] - ldr r2, [r0, #8] - ldrb r1, [r2, #9] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #9] - ldr r0, [r3] - ldrb r2, [r4] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #1] - movs r0, #0x21 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #1] - ldr r0, [r3] - ldrb r2, [r4] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #1] - movs r0, #0x7f - ands r0, r2 - strb r0, [r1, #1] - ldr r1, _0805F578 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805F57C - str r1, [r0] -_0805F544: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805F554: .4byte gUnknown_20205AC -_0805F558: .4byte gUnknown_3005ADC -_0805F55C: .4byte gUnknown_2023D08 -_0805F560: .4byte sub_08007140 -_0805F564: .4byte gUnknown_2023E88 -_0805F568: .4byte gUnknown_2022C90 -_0805F56C: .4byte gUnknown_2023D12 -_0805F570: .4byte gUnknown_20243E8 -_0805F574: .4byte gUnknown_2024174 -_0805F578: .4byte gUnknown_3005AC0 -_0805F57C: .4byte sub_0805EF0C - thumb_func_end sub_0805F14C - - thumb_func_start sub_0805F580 -sub_0805F580: @ 0x0805F580 - push {r4, r5, lr} - ldr r2, _0805F63C - ldr r0, _0805F640 - ldr r1, _0805F644 - ldrb r3, [r1] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0x24 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _0805F5CC - ldr r0, _0805F648 - ldr r0, [r0] - ldr r1, [r0, #4] - lsls r2, r3, #1 - adds r0, r2, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0xc0 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0805F5CC - ldr r0, _0805F64C - adds r0, r2, r0 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _0805F650 - adds r1, r1, r0 - adds r0, r3, #0 - bl sub_08172CD4 -_0805F5CC: - ldr r2, _0805F63C - ldr r0, _0805F640 - ldr r5, _0805F644 - ldrb r3, [r5] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _0805F654 - cmp r1, r0 - bne _0805F634 - ldr r4, _0805F648 - ldr r0, [r4] - ldr r1, [r0, #4] - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r2, r0, r1 - ldrb r1, [r2, #1] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0805F634 - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - ldr r0, [r4] - ldrb r2, [r5] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #1] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #1] - ldr r4, _0805F658 - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl FreeSpritePaletteByTag - bl OpponentBufferExecCompleted -_0805F634: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0805F63C: .4byte gUnknown_20205AC -_0805F640: .4byte gUnknown_2023E88 -_0805F644: .4byte gUnknown_2023D08 -_0805F648: .4byte gUnknown_2024174 -_0805F64C: .4byte gUnknown_2023D12 -_0805F650: .4byte gUnknown_20243E8 -_0805F654: .4byte sub_08007140 -_0805F658: .4byte 0x000027F9 - thumb_func_end sub_0805F580 - - thumb_func_start sub_0805F65C -sub_0805F65C: @ 0x0805F65C - push {r4, r5, r6, lr} - ldr r6, _0805F69C - ldrb r0, [r6] - ldr r5, _0805F6A0 - adds r1, r0, r5 - ldrb r1, [r1] - movs r2, #0 - movs r3, #0 - bl MoveBattleBar - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible - lsls r4, r4, #0x10 - asrs r1, r4, #0x10 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0805F6A4 - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r0, [r0] - movs r2, #0 - bl sub_080726F4 - b _0805F6A8 - .align 2, 0 -_0805F69C: .4byte gUnknown_2023D08 -_0805F6A0: .4byte gUnknown_3005AD0 -_0805F6A4: - bl OpponentBufferExecCompleted -_0805F6A8: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0805F65C - - thumb_func_start sub_0805F6B0 -sub_0805F6B0: @ 0x0805F6B0 - push {lr} - ldr r2, _0805F6E4 - ldr r0, _0805F6E8 - ldr r1, _0805F6EC - ldrb r3, [r1] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1f - cmp r0, #0 - bne _0805F6DE - ldr r0, _0805F6F0 - adds r0, r3, r0 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible - bl OpponentBufferExecCompleted -_0805F6DE: - pop {r0} - bx r0 - .align 2, 0 -_0805F6E4: .4byte gUnknown_20205AC -_0805F6E8: .4byte gUnknown_2023E88 -_0805F6EC: .4byte gUnknown_2023D08 -_0805F6F0: .4byte gUnknown_3005AD0 - thumb_func_end sub_0805F6B0 - - thumb_func_start sub_0805F6F4 -sub_0805F6F4: @ 0x0805F6F4 - push {r4, r5, r6, lr} - ldr r0, _0805F754 - ldr r0, [r0] - ldr r6, _0805F758 - ldrb r2, [r6] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _0805F74E - ldr r5, _0805F75C - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _0805F760 - adds r0, r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - ldrb r0, [r6] - bl HideBattlerShadowSprite - ldr r1, _0805F764 - ldrb r0, [r6] - adds r0, r0, r1 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible - bl OpponentBufferExecCompleted -_0805F74E: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0805F754: .4byte gUnknown_2024174 -_0805F758: .4byte gUnknown_2023D08 -_0805F75C: .4byte gUnknown_2023E88 -_0805F760: .4byte gUnknown_20205AC -_0805F764: .4byte gUnknown_3005AD0 - thumb_func_end sub_0805F6F4 - - thumb_func_start sub_0805F768 -sub_0805F768: @ 0x0805F768 - push {lr} - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0805F77A - bl OpponentBufferExecCompleted -_0805F77A: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0805F768 - - thumb_func_start sub_0805F780 -sub_0805F780: @ 0x0805F780 - push {r4, lr} - ldr r1, _0805F7BC - ldr r0, _0805F7C0 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - ldr r2, _0805F7C4 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, r0, r2 - movs r1, #0x30 - ldrsh r0, [r4, r1] - cmp r0, #0x20 - bne _0805F7CC - movs r3, #0 - movs r0, #0 - strh r0, [r4, #0x30] - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - subs r0, #5 - ands r0, r1 - strb r0, [r2] - ldr r0, _0805F7C8 - strb r3, [r0] - bl OpponentBufferExecCompleted - b _0805F7F6 - .align 2, 0 -_0805F7BC: .4byte gUnknown_2023E88 -_0805F7C0: .4byte gUnknown_2023D08 -_0805F7C4: .4byte gUnknown_20205AC -_0805F7C8: .4byte gUnknown_202415D -_0805F7CC: - ldrh r0, [r4, #0x30] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0805F7F0 - adds r3, r4, #0 - adds r3, #0x3e - ldrb r2, [r3] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_0805F7F0: - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] -_0805F7F6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0805F780 - - thumb_func_start sub_0805F7FC -sub_0805F7FC: @ 0x0805F7FC - push {r4, lr} - ldr r2, _0805F850 - ldr r0, _0805F854 - ldr r4, _0805F858 - ldrb r3, [r4] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _0805F85C - cmp r1, r0 - bne _0805F848 - ldr r0, _0805F860 - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r3, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0805F83C - adds r0, r3, #0 - adds r1, r3, #0 - adds r2, r3, #0 - movs r3, #6 - bl InitAndLaunchSpecialAnimation -_0805F83C: - ldr r0, _0805F864 - ldrb r1, [r4] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, _0805F868 - str r0, [r1] -_0805F848: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805F850: .4byte gUnknown_20205AC -_0805F854: .4byte gUnknown_3005AD0 -_0805F858: .4byte gUnknown_2023D08 -_0805F85C: .4byte sub_08007140 -_0805F860: .4byte gUnknown_2024174 -_0805F864: .4byte gUnknown_3005AC0 -_0805F868: .4byte sub_0805F86C - thumb_func_end sub_0805F7FC - - thumb_func_start sub_0805F86C -sub_0805F86C: @ 0x0805F86C - push {r4, lr} - ldr r0, _0805F8CC - ldr r0, [r0] - ldr r4, _0805F8D0 - ldrb r1, [r4] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _0805F8C6 - bl IsCryPlayingOrClearCrySongs - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805F8C6 - ldr r2, _0805F8D4 - ldr r1, _0805F8D8 - ldrb r0, [r4] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _0805F8DC - cmp r1, r0 - beq _0805F8B6 - ldr r0, _0805F8E0 - cmp r1, r0 - bne _0805F8C6 -_0805F8B6: - ldr r0, _0805F8E4 - ldr r1, _0805F8E8 - movs r2, #0x80 - lsls r2, r2, #1 - bl m4aMPlayVolumeControl - bl OpponentBufferExecCompleted -_0805F8C6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805F8CC: .4byte gUnknown_2024174 -_0805F8D0: .4byte gUnknown_2023D08 -_0805F8D4: .4byte gUnknown_20205AC -_0805F8D8: .4byte gUnknown_2023E88 -_0805F8DC: .4byte sub_08007140 -_0805F8E0: .4byte sub_080394FC -_0805F8E4: .4byte gUnknown_30074D0 -_0805F8E8: .4byte 0x0000FFFF - thumb_func_end sub_0805F86C - - thumb_func_start sub_0805F8EC -sub_0805F8EC: @ 0x0805F8EC - push {r4, r5, r6, r7, lr} - ldr r4, _0805F9B0 - ldr r0, [r4] - ldr r5, _0805F9B4 - ldrb r2, [r5] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r3, r0, r1 - ldrb r1, [r3, #1] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0805F9A8 - ldr r7, _0805F9B8 - ldr r6, _0805F9BC - adds r0, r2, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r7, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, [r0] - ldr r0, _0805F9C0 - cmp r1, r0 - bne _0805F9A8 - ldrb r1, [r3] - movs r0, #0x7f - ands r0, r1 - strb r0, [r3] - ldr r0, [r4] - ldrb r2, [r5] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #1] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #1] - ldr r4, _0805F9C4 - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl FreeSpritePaletteByTag - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - movs r1, #0 - bl StartSpriteAnim - ldr r4, _0805F9C8 - ldrb r1, [r5] - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, _0805F9CC - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _0805F9D0 - adds r1, r1, r2 - movs r2, #0 - bl UpdateHealthboxAttribute - ldrb r0, [r5] - bl sub_08076320 - ldrb r0, [r5] - adds r0, r0, r4 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible - ldrb r0, [r5] - bl CopyBattleSpriteInvisibility - ldr r1, _0805F9D4 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805F9D8 - str r1, [r0] -_0805F9A8: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805F9B0: .4byte gUnknown_2024174 -_0805F9B4: .4byte gUnknown_2023D08 -_0805F9B8: .4byte gUnknown_20205AC -_0805F9BC: .4byte gUnknown_2023E88 -_0805F9C0: .4byte sub_08007140 -_0805F9C4: .4byte 0x000027F9 -_0805F9C8: .4byte gUnknown_3005AD0 -_0805F9CC: .4byte gUnknown_2023D12 -_0805F9D0: .4byte gUnknown_20243E8 -_0805F9D4: .4byte gUnknown_3005AC0 -_0805F9D8: .4byte sub_0805F7FC - thumb_func_end sub_0805F8EC - - thumb_func_start sub_0805F9DC -sub_0805F9DC: @ 0x0805F9DC - push {r4, r5, r6, lr} - ldr r6, _0805FA80 - ldr r0, [r6] - ldr r5, _0805FA84 - ldrb r2, [r5] - ldr r1, [r0, #4] - lsls r3, r2, #1 - adds r0, r3, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x88 - ands r0, r1 - cmp r0, #0 - bne _0805FA0E - ldr r0, _0805FA88 - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _0805FA8C - adds r1, r1, r0 - adds r0, r2, #0 - bl sub_08172CD4 -_0805FA0E: - ldr r4, _0805FA90 - ldr r0, _0805FA94 - ldrb r2, [r5] - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r3, r0, #2 - adds r0, r4, #0 - adds r0, #0x1c - adds r0, r3, r0 - ldr r1, [r0] - ldr r0, _0805FA98 - cmp r1, r0 - bne _0805FA78 - ldr r0, [r6] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - bne _0805FA78 - adds r0, r3, r4 - bl DestroySprite - ldrb r4, [r5] - ldr r1, _0805FA88 - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0805FA8C - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl SetBattlerShadowSpriteCallback - ldr r1, _0805FA9C - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805FAA0 - str r1, [r0] -_0805FA78: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0805FA80: .4byte gUnknown_2024174 -_0805FA84: .4byte gUnknown_2023D08 -_0805FA88: .4byte gUnknown_2023D12 -_0805FA8C: .4byte gUnknown_20243E8 -_0805FA90: .4byte gUnknown_20205AC -_0805FA94: .4byte gUnknown_3005ADC -_0805FA98: .4byte sub_08007140 -_0805FA9C: .4byte gUnknown_3005AC0 -_0805FAA0: .4byte sub_0805F8EC - thumb_func_end sub_0805F9DC - - thumb_func_start sub_0805FAA4 -sub_0805FAA4: @ 0x0805FAA4 - push {lr} - ldr r0, _0805FACC - ldr r2, [r0] - ldr r0, _0805FAD0 - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _0805FAC6 - bl OpponentBufferExecCompleted -_0805FAC6: - pop {r0} - bx r0 - .align 2, 0 -_0805FACC: .4byte gUnknown_2024174 -_0805FAD0: .4byte gUnknown_2023D08 - thumb_func_end sub_0805FAA4 - - thumb_func_start sub_0805FAD4 -sub_0805FAD4: @ 0x0805FAD4 - push {lr} - ldr r0, _0805FAFC - ldr r2, [r0] - ldr r0, _0805FB00 - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _0805FAF6 - bl OpponentBufferExecCompleted -_0805FAF6: - pop {r0} - bx r0 - .align 2, 0 -_0805FAFC: .4byte gUnknown_2024174 -_0805FB00: .4byte gUnknown_2023D08 - thumb_func_end sub_0805FAD4 - - thumb_func_start OpponentBufferExecCompleted -OpponentBufferExecCompleted: @ 0x0805FB04 - push {r4, lr} - sub sp, #4 - ldr r1, _0805FB44 - ldr r4, _0805FB48 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0805FB4C - str r1, [r0] - ldr r0, _0805FB50 - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _0805FB58 - bl GetMultiplayerId - mov r1, sp - strb r0, [r1] - movs r0, #2 - movs r1, #4 - mov r2, sp - bl PrepareBufferDataTransferLink - ldr r1, _0805FB54 - ldrb r0, [r4] - lsls r0, r0, #9 - adds r0, r0, r1 - movs r1, #0x38 - strb r1, [r0] - b _0805FB6A - .align 2, 0 -_0805FB44: .4byte gUnknown_3005AC0 -_0805FB48: .4byte gUnknown_2023D08 -_0805FB4C: .4byte sub_0805ED9C -_0805FB50: .4byte gUnknown_2022C90 -_0805FB54: .4byte gUnknown_2022D08 -_0805FB58: - ldr r2, _0805FB74 - ldr r1, _0805FB78 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - ldr r0, [r2] - bics r0, r1 - str r0, [r2] -_0805FB6A: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805FB74: .4byte gUnknown_2023D0C -_0805FB78: .4byte gUnknown_82FACB4 - thumb_func_end OpponentBufferExecCompleted - - thumb_func_start OpponentHandleGetMonData -OpponentHandleGetMonData: @ 0x0805FB7C - push {r4, r5, r6, lr} - sub sp, #0x100 - movs r6, #0 - ldr r1, _0805FBA8 - ldr r0, _0805FBAC - ldrb r2, [r0] - lsls r0, r2, #9 - adds r1, #2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, #0 - bne _0805FBB4 - ldr r0, _0805FBB0 - lsls r1, r2, #1 - adds r1, r1, r0 - ldrb r0, [r1] - mov r1, sp - bl sub_0805FBF0 - adds r6, r0, #0 - b _0805FBD6 - .align 2, 0 -_0805FBA8: .4byte gUnknown_2022D08 -_0805FBAC: .4byte gUnknown_2023D08 -_0805FBB0: .4byte gUnknown_2023D12 -_0805FBB4: - ldrb r4, [r1] - movs r5, #0 -_0805FBB8: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _0805FBCE - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - mov r2, sp - adds r1, r2, r6 - bl sub_0805FBF0 - adds r6, r6, r0 -_0805FBCE: - lsrs r4, r4, #1 - adds r5, #1 - cmp r5, #5 - ble _0805FBB8 -_0805FBD6: - lsls r1, r6, #0x10 - lsrs r1, r1, #0x10 - movs r0, #1 - mov r2, sp - bl BtlController_EmitDataTransfer - bl OpponentBufferExecCompleted - add sp, #0x100 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end OpponentHandleGetMonData - - thumb_func_start sub_0805FBF0 -sub_0805FBF0: @ 0x0805FBF0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x90 - adds r7, r1, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r6, #0 - ldr r2, _0805FC24 - ldr r3, _0805FC28 - ldrb r0, [r3] - lsls r0, r0, #9 - adds r1, r2, #1 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0x3b - bls _0805FC1A - bl _08060386 -_0805FC1A: - lsls r0, r0, #2 - ldr r1, _0805FC2C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0805FC24: .4byte gUnknown_2022D08 -_0805FC28: .4byte gUnknown_2023D08 -_0805FC2C: .4byte _0805FC30 -_0805FC30: @ jump table - .4byte _0805FD20 @ case 0 - .4byte _0805FF44 @ case 1 - .4byte _0805FF54 @ case 2 - .4byte _0805FF64 @ case 3 - .4byte _0805FFCC @ case 4 - .4byte _0805FFCC @ case 5 - .4byte _0805FFCC @ case 6 - .4byte _0805FFCC @ case 7 - .4byte _0805FFE8 @ case 8 - .4byte _08060024 @ case 9 - .4byte _08060024 @ case 10 - .4byte _08060024 @ case 11 - .4byte _08060024 @ case 12 - .4byte _08060386 @ case 13 - .4byte _08060386 @ case 14 - .4byte _08060386 @ case 15 - .4byte _08060386 @ case 16 - .4byte _08060040 @ case 17 - .4byte _08060050 @ case 18 - .4byte _08060080 @ case 19 - .4byte _08060090 @ case 20 - .4byte _080600A0 @ case 21 - .4byte _080600B0 @ case 22 - .4byte _080600C0 @ case 23 - .4byte _080600D0 @ case 24 - .4byte _080600E0 @ case 25 - .4byte _080600F0 @ case 26 - .4byte _08060100 @ case 27 - .4byte _08060110 @ case 28 - .4byte _08060120 @ case 29 - .4byte _08060130 @ case 30 - .4byte _08060140 @ case 31 - .4byte _08060190 @ case 32 - .4byte _080601A0 @ case 33 - .4byte _080601B0 @ case 34 - .4byte _080601C0 @ case 35 - .4byte _080601D0 @ case 36 - .4byte _080601E0 @ case 37 - .4byte _080601F0 @ case 38 - .4byte _08060200 @ case 39 - .4byte _08060210 @ case 40 - .4byte _08060244 @ case 41 - .4byte _08060254 @ case 42 - .4byte _08060264 @ case 43 - .4byte _08060274 @ case 44 - .4byte _08060284 @ case 45 - .4byte _08060294 @ case 46 - .4byte _080602A4 @ case 47 - .4byte _080602B4 @ case 48 - .4byte _080602D4 @ case 49 - .4byte _080602E4 @ case 50 - .4byte _080602F4 @ case 51 - .4byte _08060304 @ case 52 - .4byte _08060314 @ case 53 - .4byte _08060324 @ case 54 - .4byte _08060334 @ case 55 - .4byte _08060344 @ case 56 - .4byte _08060354 @ case 57 - .4byte _08060364 @ case 58 - .4byte _08060374 @ case 59 -_0805FD20: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _0805FF34 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - mov r1, sp - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0xc - bl GetMonData - mov r1, sp - strh r0, [r1, #0x2e] - movs r6, #0 - add r0, sp, #0x24 - mov sb, r0 - movs r1, #0x3b - add r1, sp - mov sl, r1 - mov r2, sp - adds r2, #0x2b - str r2, [sp, #0x80] - mov r0, sp - adds r0, #0x2a - str r0, [sp, #0x7c] - mov r1, sp - adds r1, #0x68 - str r1, [sp, #0x8c] - adds r2, #5 - str r2, [sp, #0x84] - adds r0, #0x12 - str r0, [sp, #0x88] - mov r8, r4 - add r4, sp, #0xc -_0805FD6C: - adds r1, r6, #0 - adds r1, #0xd - mov r0, r8 - bl GetMonData - strh r0, [r4] - adds r1, r6, #0 - adds r1, #0x11 - mov r0, r8 - bl GetMonData - mov r2, sb - adds r1, r2, r6 - strb r0, [r1] - adds r4, #2 - adds r6, #1 - cmp r6, #3 - ble _0805FD6C - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _0805FF34 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x15 - bl GetMonData - mov r1, sl - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x20 - bl GetMonData - ldr r2, [sp, #0x80] - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0x19 - bl GetMonData - str r0, [sp, #0x44] - adds r0, r4, #0 - movs r1, #0x27 - bl GetMonData - mov r3, sp - movs r5, #0x1f - ands r0, r5 - ldrb r2, [r3, #0x14] - movs r1, #0x20 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x14] - adds r0, r4, #0 - movs r1, #0x28 - bl GetMonData - mov r3, sp - movs r6, #0x1f - ands r0, r6 - lsls r0, r0, #5 - ldrh r2, [r3, #0x14] - ldr r1, _0805FF38 - ands r1, r2 - orrs r1, r0 - strh r1, [r3, #0x14] - adds r0, r4, #0 - movs r1, #0x29 - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, r0, #2 - ldrb r2, [r3, #0x15] - movs r1, #0x7d - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x15] - adds r0, r4, #0 - movs r1, #0x2a - bl GetMonData - movs r1, #0x1f - ands r1, r0 - lsls r1, r1, #0xf - ldr r0, [sp, #0x14] - ldr r2, _0805FF3C - ands r0, r2 - orrs r0, r1 - str r0, [sp, #0x14] - adds r0, r4, #0 - movs r1, #0x2b - bl GetMonData - mov r3, sp - ands r0, r6 - lsls r0, r0, #4 - ldrh r2, [r3, #0x16] - ldr r1, _0805FF40 - ands r1, r2 - orrs r1, r0 - strh r1, [r3, #0x16] - adds r0, r4, #0 - movs r1, #0x2c - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, r0, #1 - ldrb r2, [r3, #0x17] - movs r1, #0x3f - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x17] - adds r0, r4, #0 - movs r1, #0 - bl GetMonData - str r0, [sp, #0x48] - adds r0, r4, #0 - movs r1, #0x37 - bl GetMonData - str r0, [sp, #0x4c] - adds r0, r4, #0 - movs r1, #0x38 - bl GetMonData - ldr r1, [sp, #0x7c] - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - mov r1, sp - strh r0, [r1, #0x28] - adds r0, r4, #0 - movs r1, #0x3a - bl GetMonData - mov r1, sp - strh r0, [r1, #0x2c] - adds r0, r4, #0 - movs r1, #0x3b - bl GetMonData - mov r1, sp - strh r0, [r1, #2] - adds r0, r4, #0 - movs r1, #0x3c - bl GetMonData - mov r1, sp - strh r0, [r1, #4] - adds r0, r4, #0 - movs r1, #0x3d - bl GetMonData - mov r1, sp - strh r0, [r1, #6] - adds r0, r4, #0 - movs r1, #0x3e - bl GetMonData - mov r1, sp - strh r0, [r1, #8] - adds r0, r4, #0 - movs r1, #0x3f - bl GetMonData - mov r1, sp - strh r0, [r1, #0xa] - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - mov r3, sp - movs r1, #1 - ands r0, r1 - lsls r0, r0, #6 - ldrb r2, [r3, #0x17] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x17] - adds r0, r4, #0 - movs r1, #0x2e - bl GetMonData - mov r3, sp - lsls r0, r0, #7 - ldrb r2, [r3, #0x17] - movs r1, #0x7f - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x17] - adds r0, r4, #0 - movs r1, #1 - bl GetMonData - str r0, [sp, #0x54] - adds r0, r4, #0 - movs r1, #2 - ldr r2, [sp, #0x8c] - bl GetMonData - ldr r0, [sp, #0x84] - ldr r1, [sp, #0x8c] - bl StringCopy10 - adds r0, r4, #0 - movs r1, #7 - ldr r2, [sp, #0x88] - bl GetMonData - mov r2, sp - movs r6, #0 -_0805FF24: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, #1 - cmp r6, #0x57 - bls _0805FF24 - b _08060386 - .align 2, 0 -_0805FF34: .4byte gUnknown_20243E8 -_0805FF38: .4byte 0xFFFFFC1F -_0805FF3C: .4byte 0xFFF07FFF -_0805FF40: .4byte 0xFFFFFE0F -_0805FF44: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805FF50 - adds r0, r0, r1 - movs r1, #0xb - b _080602BE - .align 2, 0 -_0805FF50: .4byte gUnknown_20243E8 -_0805FF54: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805FF60 - adds r0, r0, r1 - movs r1, #0xc - b _080602BE - .align 2, 0 -_0805FF60: .4byte gUnknown_20243E8 -_0805FF64: - movs r6, #0 - add r2, sp, #0x58 - mov sb, r2 - add r0, sp, #0x60 - mov sl, r0 - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _0805FFC8 - adds r4, r1, r0 - mov r8, sb -_0805FF7A: - adds r1, r6, #0 - adds r1, #0xd - adds r0, r4, #0 - bl GetMonData - mov r1, r8 - strh r0, [r1] - adds r1, r6, #0 - adds r1, #0x11 - adds r0, r4, #0 - bl GetMonData - mov r2, sl - adds r1, r2, r6 - strb r0, [r1] - movs r0, #2 - add r8, r0 - adds r6, #1 - cmp r6, #3 - ble _0805FF7A - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805FFC8 - adds r0, r0, r1 - movs r1, #0x15 - bl GetMonData - mov r1, sb - strb r0, [r1, #0xc] - mov r2, sb - movs r6, #0 -_0805FFB8: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, #1 - cmp r6, #0xf - bls _0805FFB8 - b _08060386 - .align 2, 0 -_0805FFC8: .4byte gUnknown_20243E8 -_0805FFCC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0805FFE4 - adds r0, r0, r1 - ldrb r1, [r3] - lsls r1, r1, #9 - adds r2, #1 - adds r1, r1, r2 - ldrb r1, [r1] - adds r1, #9 - b _080602BE - .align 2, 0 -_0805FFE4: .4byte gUnknown_20243E8 -_0805FFE8: - movs r6, #0 - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r2, _08060020 - mov r8, r2 -_0805FFF4: - adds r1, r6, #0 - adds r1, #0x11 - mov r2, r8 - adds r0, r4, r2 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, #1 - cmp r6, #3 - ble _0805FFF4 - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060020 - adds r0, r0, r1 - movs r1, #0x15 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, #1 - b _08060386 - .align 2, 0 -_08060020: .4byte gUnknown_20243E8 -_08060024: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0806003C - adds r0, r0, r1 - ldrb r1, [r3] - lsls r1, r1, #9 - adds r2, #1 - adds r1, r1, r2 - ldrb r1, [r1] - adds r1, #8 - b _0806037E - .align 2, 0 -_0806003C: .4byte gUnknown_20243E8 -_08060040: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0806004C - adds r0, r0, r1 - movs r1, #1 - b _0806005A - .align 2, 0 -_0806004C: .4byte gUnknown_20243E8 -_08060050: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0806007C - adds r0, r0, r1 - movs r1, #0x19 -_0806005A: - bl GetMonData - adds r1, r0, #0 - strb r1, [r7] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - lsrs r0, r0, #8 - strb r0, [r7, #1] - movs r0, #0xff - lsls r0, r0, #0x10 - ands r0, r1 - lsrs r0, r0, #0x10 - strb r0, [r7, #2] - movs r6, #3 - b _08060386 - .align 2, 0 -_0806007C: .4byte gUnknown_20243E8 -_08060080: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0806008C - adds r0, r0, r1 - movs r1, #0x1a - b _0806037E - .align 2, 0 -_0806008C: .4byte gUnknown_20243E8 -_08060090: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0806009C - adds r0, r0, r1 - movs r1, #0x1b - b _0806037E - .align 2, 0 -_0806009C: .4byte gUnknown_20243E8 -_080600A0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080600AC - adds r0, r0, r1 - movs r1, #0x1c - b _0806037E - .align 2, 0 -_080600AC: .4byte gUnknown_20243E8 -_080600B0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080600BC - adds r0, r0, r1 - movs r1, #0x1d - b _0806037E - .align 2, 0 -_080600BC: .4byte gUnknown_20243E8 -_080600C0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080600CC - adds r0, r0, r1 - movs r1, #0x1e - b _0806037E - .align 2, 0 -_080600CC: .4byte gUnknown_20243E8 -_080600D0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080600DC - adds r0, r0, r1 - movs r1, #0x1f - b _0806037E - .align 2, 0 -_080600DC: .4byte gUnknown_20243E8 -_080600E0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080600EC - adds r0, r0, r1 - movs r1, #0x20 - b _0806037E - .align 2, 0 -_080600EC: .4byte gUnknown_20243E8 -_080600F0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080600FC - adds r0, r0, r1 - movs r1, #0x22 - b _0806037E - .align 2, 0 -_080600FC: .4byte gUnknown_20243E8 -_08060100: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0806010C - adds r0, r0, r1 - movs r1, #0x23 - b _0806037E - .align 2, 0 -_0806010C: .4byte gUnknown_20243E8 -_08060110: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0806011C - adds r0, r0, r1 - movs r1, #0x24 - b _0806037E - .align 2, 0 -_0806011C: .4byte gUnknown_20243E8 -_08060120: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0806012C - adds r0, r0, r1 - movs r1, #0x25 - b _0806037E - .align 2, 0 -_0806012C: .4byte gUnknown_20243E8 -_08060130: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0806013C - adds r0, r0, r1 - movs r1, #0x26 - b _0806037E - .align 2, 0 -_0806013C: .4byte gUnknown_20243E8 -_08060140: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _0806018C - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x27 - bl GetMonData - strb r0, [r7] - adds r0, r4, #0 - movs r1, #0x28 - bl GetMonData - strb r0, [r7, #1] - adds r0, r4, #0 - movs r1, #0x29 - bl GetMonData - strb r0, [r7, #2] - adds r0, r4, #0 - movs r1, #0x2a - bl GetMonData - strb r0, [r7, #3] - adds r0, r4, #0 - movs r1, #0x2b - bl GetMonData - strb r0, [r7, #4] - adds r0, r4, #0 - movs r1, #0x2c - bl GetMonData - strb r0, [r7, #5] - movs r6, #6 - b _08060386 - .align 2, 0 -_0806018C: .4byte gUnknown_20243E8 -_08060190: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0806019C - adds r0, r0, r1 - movs r1, #0x27 - b _0806037E - .align 2, 0 -_0806019C: .4byte gUnknown_20243E8 -_080601A0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080601AC - adds r0, r0, r1 - movs r1, #0x28 - b _0806037E - .align 2, 0 -_080601AC: .4byte gUnknown_20243E8 -_080601B0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080601BC - adds r0, r0, r1 - movs r1, #0x29 - b _0806037E - .align 2, 0 -_080601BC: .4byte gUnknown_20243E8 -_080601C0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080601CC - adds r0, r0, r1 - movs r1, #0x2a - b _0806037E - .align 2, 0 -_080601CC: .4byte gUnknown_20243E8 -_080601D0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080601DC - adds r0, r0, r1 - movs r1, #0x2b - b _0806037E - .align 2, 0 -_080601DC: .4byte gUnknown_20243E8 -_080601E0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080601EC - adds r0, r0, r1 - movs r1, #0x2c - b _0806037E - .align 2, 0 -_080601EC: .4byte gUnknown_20243E8 -_080601F0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080601FC - adds r0, r0, r1 - movs r1, #0 - b _0806021A - .align 2, 0 -_080601FC: .4byte gUnknown_20243E8 -_08060200: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0806020C - adds r0, r0, r1 - movs r1, #9 - b _080602BE - .align 2, 0 -_0806020C: .4byte gUnknown_20243E8 -_08060210: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060240 - adds r0, r0, r1 - movs r1, #0x37 -_0806021A: - bl GetMonData - adds r1, r0, #0 - strb r1, [r7] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - lsrs r0, r0, #8 - strb r0, [r7, #1] - movs r0, #0xff - lsls r0, r0, #0x10 - ands r0, r1 - lsrs r0, r0, #0x10 - strb r0, [r7, #2] - lsrs r0, r1, #0x18 - strb r0, [r7, #3] - movs r6, #4 - b _08060386 - .align 2, 0 -_08060240: .4byte gUnknown_20243E8 -_08060244: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060250 - adds r0, r0, r1 - movs r1, #0x38 - b _0806037E - .align 2, 0 -_08060250: .4byte gUnknown_20243E8 -_08060254: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060260 - adds r0, r0, r1 - movs r1, #0x39 - b _080602BE - .align 2, 0 -_08060260: .4byte gUnknown_20243E8 -_08060264: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060270 - adds r0, r0, r1 - movs r1, #0x3a - b _080602BE - .align 2, 0 -_08060270: .4byte gUnknown_20243E8 -_08060274: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060280 - adds r0, r0, r1 - movs r1, #0x3b - b _080602BE - .align 2, 0 -_08060280: .4byte gUnknown_20243E8 -_08060284: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060290 - adds r0, r0, r1 - movs r1, #0x3c - b _080602BE - .align 2, 0 -_08060290: .4byte gUnknown_20243E8 -_08060294: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080602A0 - adds r0, r0, r1 - movs r1, #0x3d - b _080602BE - .align 2, 0 -_080602A0: .4byte gUnknown_20243E8 -_080602A4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080602B0 - adds r0, r0, r1 - movs r1, #0x3e - b _080602BE - .align 2, 0 -_080602B0: .4byte gUnknown_20243E8 -_080602B4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080602D0 - adds r0, r0, r1 - movs r1, #0x3f -_080602BE: - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - strb r0, [r7] - lsrs r0, r0, #8 - strb r0, [r7, #1] - movs r6, #2 - b _08060386 - .align 2, 0 -_080602D0: .4byte gUnknown_20243E8 -_080602D4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080602E0 - adds r0, r0, r1 - movs r1, #0x16 - b _0806037E - .align 2, 0 -_080602E0: .4byte gUnknown_20243E8 -_080602E4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080602F0 - adds r0, r0, r1 - movs r1, #0x17 - b _0806037E - .align 2, 0 -_080602F0: .4byte gUnknown_20243E8 -_080602F4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060300 - adds r0, r0, r1 - movs r1, #0x18 - b _0806037E - .align 2, 0 -_08060300: .4byte gUnknown_20243E8 -_08060304: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060310 - adds r0, r0, r1 - movs r1, #0x21 - b _0806037E - .align 2, 0 -_08060310: .4byte gUnknown_20243E8 -_08060314: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060320 - adds r0, r0, r1 - movs r1, #0x2f - b _0806037E - .align 2, 0 -_08060320: .4byte gUnknown_20243E8 -_08060324: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060330 - adds r0, r0, r1 - movs r1, #0x30 - b _0806037E - .align 2, 0 -_08060330: .4byte gUnknown_20243E8 -_08060334: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060340 - adds r0, r0, r1 - movs r1, #0x32 - b _0806037E - .align 2, 0 -_08060340: .4byte gUnknown_20243E8 -_08060344: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060350 - adds r0, r0, r1 - movs r1, #0x33 - b _0806037E - .align 2, 0 -_08060350: .4byte gUnknown_20243E8 -_08060354: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060360 - adds r0, r0, r1 - movs r1, #0x34 - b _0806037E - .align 2, 0 -_08060360: .4byte gUnknown_20243E8 -_08060364: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060370 - adds r0, r0, r1 - movs r1, #0x35 - b _0806037E - .align 2, 0 -_08060370: .4byte gUnknown_20243E8 -_08060374: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060398 - adds r0, r0, r1 - movs r1, #0x36 -_0806037E: - bl GetMonData - strb r0, [r7] - movs r6, #1 -_08060386: - adds r0, r6, #0 - add sp, #0x90 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08060398: .4byte gUnknown_20243E8 - thumb_func_end sub_0805FBF0 - - thumb_func_start OpponentHandleGetRawMonData -OpponentHandleGetRawMonData: @ 0x0806039C - push {r4, r5, r6, r7, lr} - sub sp, #0x58 - ldr r2, _08060414 - ldr r5, _08060418 - ldrb r1, [r5] - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r2, [r0] - movs r0, #0x64 - adds r4, r2, #0 - muls r4, r0, r4 - ldr r3, _0806041C - lsls r1, r1, #9 - adds r0, r3, #1 - adds r0, r1, r0 - ldrb r2, [r0] - ldr r0, _08060420 - adds r0, r2, r0 - adds r6, r4, r0 - mov r0, sp - adds r4, r0, r2 - movs r2, #0 - adds r0, r3, #2 - adds r1, r1, r0 - adds r7, r5, #0 - mov ip, r3 - ldrb r1, [r1] - cmp r2, r1 - bhs _080603F2 - adds r3, r0, #0 -_080603D8: - adds r1, r4, r2 - adds r0, r6, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldrb r0, [r5] - lsls r0, r0, #9 - adds r0, r0, r3 - ldrb r0, [r0] - cmp r2, r0 - blo _080603D8 -_080603F2: - ldrb r0, [r7] - lsls r0, r0, #9 - mov r1, ip - adds r1, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - adds r2, r4, #0 - bl BtlController_EmitDataTransfer - bl OpponentBufferExecCompleted - add sp, #0x58 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08060414: .4byte gUnknown_2023D12 -_08060418: .4byte gUnknown_2023D08 -_0806041C: .4byte gUnknown_2022D08 -_08060420: .4byte gUnknown_20243E8 - thumb_func_end OpponentHandleGetRawMonData - - thumb_func_start sub_08060424 -sub_08060424: @ 0x08060424 - push {r4, r5, lr} - ldr r1, _08060448 - ldr r0, _0806044C - ldrb r2, [r0] - lsls r0, r2, #9 - adds r1, #2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, #0 - bne _08060454 - ldr r0, _08060450 - lsls r1, r2, #1 - adds r1, r1, r0 - ldrb r0, [r1] - bl SetOpponentMonData - b _08060472 - .align 2, 0 -_08060448: .4byte gUnknown_2022D08 -_0806044C: .4byte gUnknown_2023D08 -_08060450: .4byte gUnknown_2023D12 -_08060454: - ldrb r4, [r1] - movs r5, #0 -_08060458: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _08060466 - adds r0, r5, #0 - bl SetOpponentMonData -_08060466: - lsrs r4, r4, #1 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #5 - bls _08060458 -_08060472: - bl OpponentBufferExecCompleted - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_08060424 - - thumb_func_start SetOpponentMonData -SetOpponentMonData: @ 0x0806047C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x38 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r3, _080604B4 - ldrb r0, [r3] - lsls r0, r0, #9 - ldr r2, _080604B8 - adds r4, r0, r2 - adds r7, r4, #0 - subs r1, r2, #2 - adds r0, r0, r1 - ldrb r0, [r0] - adds r6, r3, #0 - adds r3, r2, #0 - cmp r0, #0x3b - bls _080604AA - bl _08060D88 -_080604AA: - lsls r0, r0, #2 - ldr r1, _080604BC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080604B4: .4byte gUnknown_2023D08 -_080604B8: .4byte gUnknown_2022D0B -_080604BC: .4byte _080604C0 -_080604C0: @ jump table - .4byte _080605B0 @ case 0 - .4byte _08060748 @ case 1 - .4byte _08060764 @ case 2 - .4byte _08060780 @ case 3 - .4byte _080607D4 @ case 4 - .4byte _080607D4 @ case 5 - .4byte _080607D4 @ case 6 - .4byte _080607D4 @ case 7 - .4byte _080607F4 @ case 8 - .4byte _0806085C @ case 9 - .4byte _0806085C @ case 10 - .4byte _0806085C @ case 11 - .4byte _0806085C @ case 12 - .4byte _08060D88 @ case 13 - .4byte _08060D88 @ case 14 - .4byte _08060D88 @ case 15 - .4byte _08060D88 @ case 16 - .4byte _08060884 @ case 17 - .4byte _080608A0 @ case 18 - .4byte _080608BC @ case 19 - .4byte _080608D8 @ case 20 - .4byte _080608F4 @ case 21 - .4byte _08060910 @ case 22 - .4byte _0806092C @ case 23 - .4byte _08060948 @ case 24 - .4byte _08060964 @ case 25 - .4byte _08060980 @ case 26 - .4byte _0806099C @ case 27 - .4byte _080609B8 @ case 28 - .4byte _080609D4 @ case 29 - .4byte _080609F0 @ case 30 - .4byte _08060A0C @ case 31 - .4byte _08060A80 @ case 32 - .4byte _08060A9C @ case 33 - .4byte _08060AB8 @ case 34 - .4byte _08060AD4 @ case 35 - .4byte _08060AF0 @ case 36 - .4byte _08060B0C @ case 37 - .4byte _08060B28 @ case 38 - .4byte _08060B44 @ case 39 - .4byte _08060B60 @ case 40 - .4byte _08060B7C @ case 41 - .4byte _08060B98 @ case 42 - .4byte _08060BB4 @ case 43 - .4byte _08060BD0 @ case 44 - .4byte _08060BEC @ case 45 - .4byte _08060C08 @ case 46 - .4byte _08060C24 @ case 47 - .4byte _08060C40 @ case 48 - .4byte _08060C5C @ case 49 - .4byte _08060C78 @ case 50 - .4byte _08060C94 @ case 51 - .4byte _08060CB0 @ case 52 - .4byte _08060CCC @ case 53 - .4byte _08060CE8 @ case 54 - .4byte _08060D04 @ case 55 - .4byte _08060D20 @ case 56 - .4byte _08060D3C @ case 57 - .4byte _08060D58 @ case 58 - .4byte _08060D74 @ case 59 -_080605B0: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _08060744 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0xb - adds r2, r7, #0 - bl SetMonData - adds r2, r7, #0 - adds r2, #0x2e - adds r0, r4, #0 - movs r1, #0xc - bl SetMonData - movs r0, #0 - mov r8, r0 - movs r0, #0x3b - adds r0, r0, r7 - mov sl, r0 - adds r0, r7, #0 - adds r0, #0x2b - str r0, [sp, #0x20] - adds r0, #0x19 - str r0, [sp, #0x28] - adds r0, #4 - str r0, [sp, #0x2c] - adds r0, #4 - str r0, [sp, #0x30] - subs r0, #0x22 - str r0, [sp, #0x1c] - subs r0, #2 - str r0, [sp, #0x18] - adds r0, #4 - str r0, [sp, #0x24] - adds r0, r7, #2 - str r0, [sp, #4] - adds r0, r7, #4 - str r0, [sp, #8] - adds r0, r7, #6 - str r0, [sp, #0xc] - adds r0, #2 - str r0, [sp, #0x10] - adds r0, #2 - str r0, [sp, #0x14] - mov sb, r4 - adds r6, r7, #0 - adds r6, #0x24 - adds r4, r7, #0 - adds r4, #0xc -_08060616: - mov r1, r8 - adds r1, #0xd - mov r0, sb - adds r2, r4, #0 - bl SetMonData - mov r1, r8 - adds r1, #0x11 - mov r0, sb - adds r2, r6, #0 - bl SetMonData - adds r6, #1 - adds r4, #2 - movs r0, #1 - add r8, r0 - mov r0, r8 - cmp r0, #3 - ble _08060616 - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _08060744 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x15 - mov r2, sl - bl SetMonData - adds r0, r4, #0 - movs r1, #0x20 - ldr r2, [sp, #0x20] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x19 - ldr r2, [sp, #0x28] - bl SetMonData - ldrb r0, [r7, #0x14] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1b - mov r1, sp - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x27 - mov r2, sp - bl SetMonData - mov r1, sp - ldrh r0, [r7, #0x14] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x28 - mov r2, sp - bl SetMonData - mov r1, sp - ldrb r0, [r7, #0x15] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x29 - mov r2, sp - bl SetMonData - mov r1, sp - ldr r0, [r7, #0x14] - lsls r0, r0, #0xc - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x2a - mov r2, sp - bl SetMonData - mov r1, sp - ldrh r0, [r7, #0x16] - lsls r0, r0, #0x17 - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x2b - mov r2, sp - bl SetMonData - mov r1, sp - ldrb r0, [r7, #0x17] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x2c - mov r2, sp - bl SetMonData - adds r0, r4, #0 - movs r1, #0 - ldr r2, [sp, #0x2c] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x37 - ldr r2, [sp, #0x30] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x38 - ldr r2, [sp, #0x1c] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x39 - ldr r2, [sp, #0x18] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3a - ldr r2, [sp, #0x24] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3b - ldr r2, [sp, #4] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3c - ldr r2, [sp, #8] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3d - ldr r2, [sp, #0xc] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3e - ldr r2, [sp, #0x10] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3f - ldr r2, [sp, #0x14] - bl SetMonData - b _08060D88 - .align 2, 0 -_08060744: .4byte gUnknown_20243E8 -_08060748: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060760 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0xb - bl SetMonData - b _08060D88 - .align 2, 0 -_08060760: .4byte gUnknown_20243E8 -_08060764: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0806077C - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0xc - bl SetMonData - b _08060D88 - .align 2, 0 -_0806077C: .4byte gUnknown_20243E8 -_08060780: - movs r0, #0 - mov r8, r0 - movs r0, #0xc - adds r0, r0, r4 - mov sb, r0 - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _080607D0 - adds r7, r1, r0 - adds r6, r4, #0 - adds r6, #8 -_08060798: - mov r1, r8 - adds r1, #0xd - adds r0, r7, #0 - adds r2, r4, #0 - bl SetMonData - mov r1, r8 - adds r1, #0x11 - adds r0, r7, #0 - adds r2, r6, #0 - bl SetMonData - adds r6, #1 - adds r4, #2 - movs r0, #1 - add r8, r0 - mov r0, r8 - cmp r0, #3 - ble _08060798 - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080607D0 - adds r0, r0, r1 - movs r1, #0x15 - mov r2, sb - bl SetMonData - b _08060D88 - .align 2, 0 -_080607D0: .4byte gUnknown_20243E8 -_080607D4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080607EC - adds r0, r0, r1 - ldr r3, _080607F0 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r1, r3, #1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, #9 - b _08060872 - .align 2, 0 -_080607EC: .4byte gUnknown_20243E8 -_080607F0: .4byte gUnknown_2022D08 -_080607F4: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _08060858 - adds r4, r4, r0 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - adds r0, r4, #0 - movs r1, #0x11 - str r3, [sp, #0x34] - bl SetMonData - ldrb r2, [r6] - lsls r2, r2, #9 - ldr r3, [sp, #0x34] - adds r0, r3, #1 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x12 - bl SetMonData - ldrb r2, [r6] - lsls r2, r2, #9 - ldr r3, [sp, #0x34] - adds r0, r3, #2 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x13 - bl SetMonData - ldrb r2, [r6] - lsls r2, r2, #9 - ldr r3, [sp, #0x34] - adds r0, r3, #3 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x14 - bl SetMonData - ldrb r2, [r6] - lsls r2, r2, #9 - ldr r3, [sp, #0x34] - adds r0, r3, #4 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x15 - bl SetMonData - b _08060D88 - .align 2, 0 -_08060858: .4byte gUnknown_20243E8 -_0806085C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0806087C - adds r0, r0, r1 - ldr r3, _08060880 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r1, r3, #1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, #8 -_08060872: - adds r3, #3 - adds r2, r2, r3 - bl SetMonData - b _08060D88 - .align 2, 0 -_0806087C: .4byte gUnknown_20243E8 -_08060880: .4byte gUnknown_2022D08 -_08060884: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0806089C - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #1 - bl SetMonData - b _08060D88 - .align 2, 0 -_0806089C: .4byte gUnknown_20243E8 -_080608A0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080608B8 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x19 - bl SetMonData - b _08060D88 - .align 2, 0 -_080608B8: .4byte gUnknown_20243E8 -_080608BC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080608D4 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x1a - bl SetMonData - b _08060D88 - .align 2, 0 -_080608D4: .4byte gUnknown_20243E8 -_080608D8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080608F0 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x1b - bl SetMonData - b _08060D88 - .align 2, 0 -_080608F0: .4byte gUnknown_20243E8 -_080608F4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0806090C - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x1c - bl SetMonData - b _08060D88 - .align 2, 0 -_0806090C: .4byte gUnknown_20243E8 -_08060910: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060928 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x1d - bl SetMonData - b _08060D88 - .align 2, 0 -_08060928: .4byte gUnknown_20243E8 -_0806092C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060944 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x1e - bl SetMonData - b _08060D88 - .align 2, 0 -_08060944: .4byte gUnknown_20243E8 -_08060948: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060960 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x1f - bl SetMonData - b _08060D88 - .align 2, 0 -_08060960: .4byte gUnknown_20243E8 -_08060964: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0806097C - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x20 - bl SetMonData - b _08060D88 - .align 2, 0 -_0806097C: .4byte gUnknown_20243E8 -_08060980: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060998 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x22 - bl SetMonData - b _08060D88 - .align 2, 0 -_08060998: .4byte gUnknown_20243E8 -_0806099C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080609B4 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x23 - bl SetMonData - b _08060D88 - .align 2, 0 -_080609B4: .4byte gUnknown_20243E8 -_080609B8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080609D0 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x24 - bl SetMonData - b _08060D88 - .align 2, 0 -_080609D0: .4byte gUnknown_20243E8 -_080609D4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080609EC - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x25 - bl SetMonData - b _08060D88 - .align 2, 0 -_080609EC: .4byte gUnknown_20243E8 -_080609F0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060A08 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x26 - bl SetMonData - b _08060D88 - .align 2, 0 -_08060A08: .4byte gUnknown_20243E8 -_08060A0C: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _08060A7C - adds r4, r4, r0 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - adds r0, r4, #0 - movs r1, #0x27 - str r3, [sp, #0x34] - bl SetMonData - ldrb r2, [r6] - lsls r2, r2, #9 - ldr r3, [sp, #0x34] - adds r0, r3, #1 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x28 - bl SetMonData - ldrb r2, [r6] - lsls r2, r2, #9 - ldr r3, [sp, #0x34] - adds r0, r3, #2 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x29 - bl SetMonData - ldrb r2, [r6] - lsls r2, r2, #9 - ldr r3, [sp, #0x34] - adds r0, r3, #3 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x2a - bl SetMonData - ldrb r2, [r6] - lsls r2, r2, #9 - ldr r3, [sp, #0x34] - adds r0, r3, #4 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x2b - bl SetMonData - ldrb r2, [r6] - lsls r2, r2, #9 - ldr r3, [sp, #0x34] - adds r0, r3, #5 - adds r2, r2, r0 - adds r0, r4, #0 - b _08060B1A - .align 2, 0 -_08060A7C: .4byte gUnknown_20243E8 -_08060A80: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060A98 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x27 - bl SetMonData - b _08060D88 - .align 2, 0 -_08060A98: .4byte gUnknown_20243E8 -_08060A9C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060AB4 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x28 - bl SetMonData - b _08060D88 - .align 2, 0 -_08060AB4: .4byte gUnknown_20243E8 -_08060AB8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060AD0 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x29 - bl SetMonData - b _08060D88 - .align 2, 0 -_08060AD0: .4byte gUnknown_20243E8 -_08060AD4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060AEC - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x2a - bl SetMonData - b _08060D88 - .align 2, 0 -_08060AEC: .4byte gUnknown_20243E8 -_08060AF0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060B08 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x2b - bl SetMonData - b _08060D88 - .align 2, 0 -_08060B08: .4byte gUnknown_20243E8 -_08060B0C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060B24 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 -_08060B1A: - movs r1, #0x2c - bl SetMonData - b _08060D88 - .align 2, 0 -_08060B24: .4byte gUnknown_20243E8 -_08060B28: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060B40 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0 - bl SetMonData - b _08060D88 - .align 2, 0 -_08060B40: .4byte gUnknown_20243E8 -_08060B44: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060B5C - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #9 - bl SetMonData - b _08060D88 - .align 2, 0 -_08060B5C: .4byte gUnknown_20243E8 -_08060B60: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060B78 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x37 - bl SetMonData - b _08060D88 - .align 2, 0 -_08060B78: .4byte gUnknown_20243E8 -_08060B7C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060B94 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x38 - bl SetMonData - b _08060D88 - .align 2, 0 -_08060B94: .4byte gUnknown_20243E8 -_08060B98: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060BB0 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x39 - bl SetMonData - b _08060D88 - .align 2, 0 -_08060BB0: .4byte gUnknown_20243E8 -_08060BB4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060BCC - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x3a - bl SetMonData - b _08060D88 - .align 2, 0 -_08060BCC: .4byte gUnknown_20243E8 -_08060BD0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060BE8 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x3b - bl SetMonData - b _08060D88 - .align 2, 0 -_08060BE8: .4byte gUnknown_20243E8 -_08060BEC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060C04 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x3c - bl SetMonData - b _08060D88 - .align 2, 0 -_08060C04: .4byte gUnknown_20243E8 -_08060C08: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060C20 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x3d - bl SetMonData - b _08060D88 - .align 2, 0 -_08060C20: .4byte gUnknown_20243E8 -_08060C24: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060C3C - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x3e - bl SetMonData - b _08060D88 - .align 2, 0 -_08060C3C: .4byte gUnknown_20243E8 -_08060C40: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060C58 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x3f - bl SetMonData - b _08060D88 - .align 2, 0 -_08060C58: .4byte gUnknown_20243E8 -_08060C5C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060C74 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x16 - bl SetMonData - b _08060D88 - .align 2, 0 -_08060C74: .4byte gUnknown_20243E8 -_08060C78: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060C90 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x17 - bl SetMonData - b _08060D88 - .align 2, 0 -_08060C90: .4byte gUnknown_20243E8 -_08060C94: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060CAC - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x18 - bl SetMonData - b _08060D88 - .align 2, 0 -_08060CAC: .4byte gUnknown_20243E8 -_08060CB0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060CC8 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x21 - bl SetMonData - b _08060D88 - .align 2, 0 -_08060CC8: .4byte gUnknown_20243E8 -_08060CCC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060CE4 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x2f - bl SetMonData - b _08060D88 - .align 2, 0 -_08060CE4: .4byte gUnknown_20243E8 -_08060CE8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060D00 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x30 - bl SetMonData - b _08060D88 - .align 2, 0 -_08060D00: .4byte gUnknown_20243E8 -_08060D04: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060D1C - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x32 - bl SetMonData - b _08060D88 - .align 2, 0 -_08060D1C: .4byte gUnknown_20243E8 -_08060D20: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060D38 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x33 - bl SetMonData - b _08060D88 - .align 2, 0 -_08060D38: .4byte gUnknown_20243E8 -_08060D3C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060D54 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x34 - bl SetMonData - b _08060D88 - .align 2, 0 -_08060D54: .4byte gUnknown_20243E8 -_08060D58: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060D70 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x35 - bl SetMonData - b _08060D88 - .align 2, 0 -_08060D70: .4byte gUnknown_20243E8 -_08060D74: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08060D98 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x36 - bl SetMonData -_08060D88: - add sp, #0x38 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08060D98: .4byte gUnknown_20243E8 - thumb_func_end SetOpponentMonData - - thumb_func_start OpponentHandleSetRawMonData -OpponentHandleSetRawMonData: @ 0x08060D9C - push {r4, r5, r6, r7, lr} - ldr r1, _08060E00 - ldr r7, _08060E04 - ldrb r2, [r7] - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - adds r3, r1, #0 - muls r3, r0, r3 - ldr r4, _08060E08 - lsls r2, r2, #9 - adds r0, r4, #1 - adds r0, r2, r0 - ldrb r0, [r0] - ldr r1, _08060E0C - adds r0, r0, r1 - adds r5, r3, r0 - movs r3, #0 - adds r0, r4, #2 - adds r2, r2, r0 - ldrb r2, [r2] - cmp r3, r2 - bhs _08060DF4 - adds r6, r4, #0 - adds r2, r7, #0 - adds r4, r0, #0 -_08060DD2: - adds r1, r5, r3 - ldrb r0, [r2] - lsls r0, r0, #9 - adds r0, #3 - adds r0, r3, r0 - adds r0, r0, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldrb r0, [r2] - lsls r0, r0, #9 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r3, r0 - blo _08060DD2 -_08060DF4: - bl OpponentBufferExecCompleted - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08060E00: .4byte gUnknown_2023D12 -_08060E04: .4byte gUnknown_2023D08 -_08060E08: .4byte gUnknown_2022D08 -_08060E0C: .4byte gUnknown_20243E8 - thumb_func_end OpponentHandleSetRawMonData - - thumb_func_start OpponentHandleLoadMonSprite -OpponentHandleLoadMonSprite: @ 0x08060E10 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r6, _08060F40 - ldrb r0, [r6] - lsls r0, r0, #1 - ldr r1, _08060F44 - adds r0, r0, r1 - ldrh r0, [r0] - movs r7, #0x64 - muls r0, r7, r0 - ldr r2, _08060F48 - mov sl, r2 - add r0, sl - movs r1, #0xb - bl GetMonData - mov r8, r0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - ldrb r1, [r6] - lsls r0, r1, #1 - ldr r2, _08060F44 - adds r0, r0, r2 - ldrh r0, [r0] - muls r0, r7, r0 - add r0, sl - bl BattleLoadOpponentMonSpriteGfx - ldrb r0, [r6] - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r0, r8 - bl SetMultiuseSpriteTemplateToPokemon - ldr r0, _08060F4C - mov sb, r0 - ldrb r0, [r6] - movs r1, #2 - bl GetBattlerSpriteCoord - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldrb r0, [r6] - bl GetBattlerSpriteDefault_Y - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldrb r0, [r6] - bl GetBattlerSpriteSubpriority - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r0, sb - adds r1, r5, #0 - adds r2, r4, #0 - bl CreateSprite - ldr r4, _08060F50 - ldrb r1, [r6] - adds r1, r1, r4 - strb r0, [r1] - ldr r5, _08060F54 - ldrb r0, [r6] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _08060F58 - strh r1, [r0, #0x24] - ldrb r2, [r6] - adds r0, r2, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r2, [r0, #0x2e] - ldrb r0, [r6] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - mov r1, r8 - strh r1, [r0, #0x32] - ldrb r3, [r6] - adds r0, r3, r4 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - lsls r3, r3, #4 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #5] - ldrb r2, [r6] - adds r4, r2, r4 - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _08060F5C - adds r2, r2, r1 - ldrb r1, [r2] - bl StartSpriteAnim - ldrb r4, [r6] - lsls r0, r4, #1 - ldr r2, _08060F44 - adds r0, r0, r2 - ldrh r0, [r0] - muls r0, r7, r0 - add r0, sl - movs r1, #0xb - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl SetBattlerShadowSpriteCallback - ldr r1, _08060F60 - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08060F64 - str r1, [r0] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08060F40: .4byte gUnknown_2023D08 -_08060F44: .4byte gUnknown_2023D12 -_08060F48: .4byte gUnknown_20243E8 -_08060F4C: .4byte gUnknown_2024640 -_08060F50: .4byte gUnknown_2023E88 -_08060F54: .4byte gUnknown_20205AC -_08060F58: .4byte 0x0000FF10 -_08060F5C: .4byte gUnknown_2024188 -_08060F60: .4byte gUnknown_3005AC0 -_08060F64: .4byte sub_0805F580 - thumb_func_end OpponentHandleLoadMonSprite - - thumb_func_start OpponentHandleSwitchInAnim -OpponentHandleSwitchInAnim: @ 0x08060F68 - push {r4, lr} - ldr r4, _08060FB0 - ldrb r0, [r4] - ldr r1, _08060FB4 - ldr r1, [r1] - adds r0, r0, r1 - adds r0, #0x5c - movs r1, #6 - strb r1, [r0] - ldr r1, _08060FB8 - ldrb r0, [r4] - lsls r2, r0, #1 - adds r2, r2, r1 - ldr r3, _08060FBC - lsls r0, r0, #9 - adds r1, r3, #1 - adds r0, r0, r1 - ldrb r0, [r0] - strh r0, [r2] - ldrb r0, [r4] - lsls r1, r0, #9 - adds r3, #2 - adds r1, r1, r3 - ldrb r1, [r1] - bl sub_08060FC8 - ldr r1, _08060FC0 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08060FC4 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08060FB0: .4byte gUnknown_2023D08 -_08060FB4: .4byte gUnknown_2024140 -_08060FB8: .4byte gUnknown_2023D12 -_08060FBC: .4byte gUnknown_2022D08 -_08060FC0: .4byte gUnknown_3005AC0 -_08060FC4: .4byte sub_0805F9DC - thumb_func_end OpponentHandleSwitchInAnim - - thumb_func_start sub_08060FC8 -sub_08060FC8: @ 0x08060FC8 - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r6, #0 - bl ClearTemporarySpeciesSpriteData - ldr r0, _08061130 - lsls r4, r6, #1 - adds r4, r4, r0 - ldr r0, _08061134 - lsls r1, r6, #9 - adds r0, #1 - adds r1, r1, r0 - ldrb r0, [r1] - strh r0, [r4] - ldrh r0, [r4] - movs r1, #0x64 - mov sb, r1 - mov r1, sb - muls r1, r0, r1 - adds r0, r1, #0 - ldr r5, _08061138 - adds r0, r0, r5 - movs r1, #0xb - bl GetMonData - mov r8, r0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - ldr r0, _0806113C - bl CreateInvisibleSpriteWithCallback - ldr r1, _08061140 - mov sl, r1 - add sl, r6 - mov r1, sl - strb r0, [r1] - ldrh r0, [r4] - mov r1, sb - muls r1, r0, r1 - adds r0, r1, #0 - adds r0, r0, r5 - adds r1, r6, #0 - bl BattleLoadOpponentMonSpriteGfx - adds r0, r6, #0 - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r0, r8 - bl SetMultiuseSpriteTemplateToPokemon - ldr r0, _08061144 - mov sb, r0 - adds r0, r6, #0 - movs r1, #2 - bl GetBattlerSpriteCoord - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - adds r0, r6, #0 - bl GetBattlerSpriteDefault_Y - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r6, #0 - bl GetBattlerSpriteSubpriority - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r0, sb - adds r1, r5, #0 - adds r2, r4, #0 - bl CreateSprite - ldr r4, _08061148 - adds r4, r6, r4 - strb r0, [r4] - ldr r5, _0806114C - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r6, [r0, #0x2e] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - mov r1, r8 - strh r1, [r0, #0x32] - mov r0, sl - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r1, [r4] - strh r1, [r0, #0x30] - mov r0, sl - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r6, [r0, #0x32] - ldrb r0, [r4] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - lsls r3, r6, #4 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #5] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _08061150 - adds r6, r6, r1 - ldrb r1, [r6] - bl StartSpriteAnim - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r5, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _08061154 - str r1, [r0] - movs r0, #0 - movs r1, #0xfe - bl DoPokeballSendOutAnimation - mov r1, sl - ldrb r2, [r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r1, #0x2e] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08061130: .4byte gUnknown_2023D12 -_08061134: .4byte gUnknown_2022D08 -_08061138: .4byte gUnknown_20243E8 -_0806113C: .4byte sub_0805D330 -_08061140: .4byte gUnknown_3005ADC -_08061144: .4byte gUnknown_2024640 -_08061148: .4byte gUnknown_2023E88 -_0806114C: .4byte gUnknown_20205AC -_08061150: .4byte gUnknown_2024188 -_08061154: .4byte sub_08007140 - thumb_func_end sub_08060FC8 - - thumb_func_start OpponentHandleReturnMonToBall -OpponentHandleReturnMonToBall: @ 0x08061158 - push {r4, r5, r6, lr} - ldr r1, _0806118C - ldr r6, _08061190 - ldrb r2, [r6] - lsls r0, r2, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r3, [r0] - cmp r3, #0 - bne _080611A0 - ldr r0, _08061194 - ldr r0, [r0] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - strb r3, [r0, #4] - ldr r1, _08061198 - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0806119C - str r1, [r0] - b _080611DC - .align 2, 0 -_0806118C: .4byte gUnknown_2022D08 -_08061190: .4byte gUnknown_2023D08 -_08061194: .4byte gUnknown_2024174 -_08061198: .4byte gUnknown_3005AC0 -_0806119C: .4byte sub_080611F0 -_080611A0: - ldr r5, _080611E4 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _080611E8 - adds r0, r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - ldrb r0, [r6] - bl HideBattlerShadowSprite - ldr r1, _080611EC - ldrb r0, [r6] - adds r0, r0, r1 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible - bl OpponentBufferExecCompleted -_080611DC: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080611E4: .4byte gUnknown_2023E88 -_080611E8: .4byte gUnknown_20205AC -_080611EC: .4byte gUnknown_3005AD0 - thumb_func_end OpponentHandleReturnMonToBall - - thumb_func_start sub_080611F0 -sub_080611F0: @ 0x080611F0 - push {r4, r5, r6, lr} - ldr r6, _08061210 - ldr r4, [r6] - ldr r5, _08061214 - ldrb r2, [r5] - ldr r1, [r4, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r3, r0, r1 - ldrb r0, [r3, #4] - cmp r0, #0 - beq _08061218 - cmp r0, #1 - beq _08061246 - b _0806126E - .align 2, 0 -_08061210: .4byte gUnknown_2024174 -_08061214: .4byte gUnknown_2023D08 -_08061218: - ldr r1, [r4] - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08061232 - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #5 - bl InitAndLaunchSpecialAnimation -_08061232: - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #1 - strb r1, [r0, #4] - b _0806126E -_08061246: - ldrb r1, [r3] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0806126E - strb r0, [r3, #4] - ldrb r2, [r5] - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #2 - bl InitAndLaunchSpecialAnimation - ldr r1, _08061274 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08061278 - str r1, [r0] -_0806126E: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08061274: .4byte gUnknown_3005AC0 -_08061278: .4byte sub_0805F6F4 - thumb_func_end sub_080611F0 - - thumb_func_start OpponentHandleDrawTrainerPic -OpponentHandleDrawTrainerPic: @ 0x0806127C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r0, _08061298 - ldr r2, [r0] - movs r0, #0x80 - lsls r0, r0, #0x14 - ands r0, r2 - cmp r0, #0 - beq _0806129C - bl sub_0806B2F8 - b _08061346 - .align 2, 0 -_08061298: .4byte gUnknown_2022C90 -_0806129C: - ldr r3, _080612AC - ldrh r1, [r3] - ldr r0, _080612B0 - cmp r1, r0 - bne _080612B4 - bl sub_081A48AC - b _08061346 - .align 2, 0 -_080612AC: .4byte gUnknown_203886A -_080612B0: .4byte 0x000003FE -_080612B4: - movs r0, #0x80 - lsls r0, r0, #0x13 - ands r0, r2 - cmp r0, #0 - beq _080612F4 - movs r0, #0x80 - lsls r0, r0, #8 - ands r2, r0 - cmp r2, #0 - beq _080612EC - ldr r0, _080612D8 - ldrb r0, [r0] - cmp r0, #1 - bne _080612DC - ldrh r0, [r3] - bl GetTrainerHillTrainerFrontSpriteId - b _08061346 - .align 2, 0 -_080612D8: .4byte gUnknown_2023D08 -_080612DC: - ldr r0, _080612E8 - ldrh r0, [r0] - bl GetTrainerHillTrainerFrontSpriteId - b _08061346 - .align 2, 0 -_080612E8: .4byte gUnknown_203886C -_080612EC: - ldrh r0, [r3] - bl GetTrainerHillTrainerFrontSpriteId - b _08061346 -_080612F4: - ldr r0, _08061314 - ands r0, r2 - cmp r0, #0 - beq _08061338 - ldr r0, _08061318 - ands r2, r0 - cmp r2, #0 - beq _08061330 - ldr r0, _0806131C - ldrb r0, [r0] - cmp r0, #1 - bne _08061320 - ldrh r0, [r3] - bl GetFrontierTrainerFrontSpriteId - b _08061346 - .align 2, 0 -_08061314: .4byte 0x003F0100 -_08061318: .4byte 0x00808000 -_0806131C: .4byte gUnknown_2023D08 -_08061320: - ldr r0, _0806132C - ldrh r0, [r0] - bl GetFrontierTrainerFrontSpriteId - b _08061346 - .align 2, 0 -_0806132C: .4byte gUnknown_203886C -_08061330: - ldrh r0, [r3] - bl GetFrontierTrainerFrontSpriteId - b _08061346 -_08061338: - movs r0, #0x80 - lsls r0, r0, #4 - ands r0, r2 - cmp r0, #0 - beq _0806134C - bl sub_081650C0 -_08061346: - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - b _0806137E -_0806134C: - movs r0, #0x80 - lsls r0, r0, #8 - ands r2, r0 - cmp r2, #0 - beq _08061374 - ldr r0, _08061368 - ldrb r0, [r0] - cmp r0, #1 - beq _08061374 - ldr r1, _0806136C - ldr r0, _08061370 - ldrh r0, [r0] - b _08061378 - .align 2, 0 -_08061368: .4byte gUnknown_2023D08 -_0806136C: .4byte gUnknown_82E383C -_08061370: .4byte gUnknown_203886C -_08061374: - ldr r1, _080613A0 - ldrh r0, [r3] -_08061378: - lsls r0, r0, #5 - adds r0, r0, r1 - ldrb r4, [r0, #3] -_0806137E: - ldr r0, _080613A4 - ldr r0, [r0] - ldr r1, _080613A8 - ands r0, r1 - cmp r0, #0 - beq _080613B0 - ldr r0, _080613AC - ldrb r0, [r0] - bl sub_080A630C - movs r1, #2 - ands r1, r0 - movs r7, #0xc8 - cmp r1, #0 - beq _080613B2 - movs r7, #0x98 - b _080613B2 - .align 2, 0 -_080613A0: .4byte gUnknown_82E383C -_080613A4: .4byte gUnknown_2022C90 -_080613A8: .4byte 0x00008040 -_080613AC: .4byte gUnknown_2023D08 -_080613B0: - movs r7, #0xb0 -_080613B2: - mov r8, r4 - ldr r5, _08061498 - ldrb r1, [r5] - mov r0, r8 - bl DecompressTrainerFrontPic - ldrb r0, [r5] - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r0, r8 - bl SetMultiuseSpriteTemplateToTrainerBack - ldr r6, _0806149C - mov sb, r7 - ldr r1, _080614A0 - mov r2, r8 - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r0, [r0] - movs r4, #8 - subs r4, r4, r0 - lsls r4, r4, #0x12 - movs r0, #0xa0 - lsls r0, r0, #0xe - adds r4, r4, r0 - asrs r4, r4, #0x10 - ldrb r0, [r5] - bl GetBattlerSpriteSubpriority - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r6, #0 - mov r1, sb - adds r2, r4, #0 - bl CreateSprite - ldr r6, _080614A4 - ldrb r1, [r5] - adds r1, r1, r6 - strb r0, [r1] - ldr r4, _080614A8 - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _080614AC - strh r1, [r0, #0x24] - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #2 - strh r1, [r0, #0x2e] - ldr r1, _080614B0 - mov r2, r8 - lsls r0, r2, #3 - adds r0, r0, r1 - ldrh r0, [r0, #4] - bl IndexOfSpritePaletteTag - ldrb r1, [r5] - adds r1, r1, r6 - ldrb r1, [r1] - lsls r2, r1, #4 - adds r2, r2, r1 - lsls r2, r2, #2 - adds r2, r2, r4 - lsls r0, r0, #4 - ldrb r3, [r2, #5] - movs r1, #0xf - ands r1, r3 - orrs r1, r0 - strb r1, [r2, #5] - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - mov r1, r8 - strh r1, [r0, #6] - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, #0x1c - adds r0, r0, r4 - ldr r1, _080614B4 - str r1, [r0] - ldr r1, _080614B8 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _080614BC - str r1, [r0] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08061498: .4byte gUnknown_2023D08 -_0806149C: .4byte gUnknown_2024640 -_080614A0: .4byte gUnknown_82D8D70 -_080614A4: .4byte gUnknown_2023E88 -_080614A8: .4byte gUnknown_20205AC -_080614AC: .4byte 0x0000FF10 -_080614B0: .4byte gUnknown_82D91CC -_080614B4: .4byte sub_0805D3C8 -_080614B8: .4byte gUnknown_3005AC0 -_080614BC: .4byte sub_0805EDEC - thumb_func_end OpponentHandleDrawTrainerPic - - thumb_func_start sub_080614C0 -sub_080614C0: @ 0x080614C0 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - ldr r0, _080614DC - ldr r2, [r0] - movs r0, #0x80 - lsls r0, r0, #0x14 - ands r0, r2 - cmp r0, #0 - beq _080614E0 - bl sub_0806B2F8 - b _0806158A - .align 2, 0 -_080614DC: .4byte gUnknown_2022C90 -_080614E0: - ldr r3, _080614F0 - ldrh r1, [r3] - ldr r0, _080614F4 - cmp r1, r0 - bne _080614F8 - bl sub_081A48AC - b _0806158A - .align 2, 0 -_080614F0: .4byte gUnknown_203886A -_080614F4: .4byte 0x000003FE -_080614F8: - movs r0, #0x80 - lsls r0, r0, #0x13 - ands r0, r2 - cmp r0, #0 - beq _08061538 - movs r0, #0x80 - lsls r0, r0, #8 - ands r2, r0 - cmp r2, #0 - beq _08061530 - ldr r0, _0806151C - ldrb r0, [r0] - cmp r0, #1 - bne _08061520 - ldrh r0, [r3] - bl GetTrainerHillTrainerFrontSpriteId - b _0806158A - .align 2, 0 -_0806151C: .4byte gUnknown_2023D08 -_08061520: - ldr r0, _0806152C - ldrh r0, [r0] - bl GetTrainerHillTrainerFrontSpriteId - b _0806158A - .align 2, 0 -_0806152C: .4byte gUnknown_203886C -_08061530: - ldrh r0, [r3] - bl GetTrainerHillTrainerFrontSpriteId - b _0806158A -_08061538: - ldr r0, _08061558 - ands r0, r2 - cmp r0, #0 - beq _0806157C - ldr r0, _0806155C - ands r2, r0 - cmp r2, #0 - beq _08061574 - ldr r0, _08061560 - ldrb r0, [r0] - cmp r0, #1 - bne _08061564 - ldrh r0, [r3] - bl GetFrontierTrainerFrontSpriteId - b _0806158A - .align 2, 0 -_08061558: .4byte 0x003F0100 -_0806155C: .4byte 0x00808000 -_08061560: .4byte gUnknown_2023D08 -_08061564: - ldr r0, _08061570 - ldrh r0, [r0] - bl GetFrontierTrainerFrontSpriteId - b _0806158A - .align 2, 0 -_08061570: .4byte gUnknown_203886C -_08061574: - ldrh r0, [r3] - bl GetFrontierTrainerFrontSpriteId - b _0806158A -_0806157C: - movs r0, #0x80 - lsls r0, r0, #4 - ands r0, r2 - cmp r0, #0 - beq _08061590 - bl sub_081650C0 -_0806158A: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _080615C2 -_08061590: - movs r0, #0x80 - lsls r0, r0, #8 - ands r2, r0 - cmp r2, #0 - beq _080615B8 - ldr r0, _080615AC - ldrb r0, [r0] - cmp r0, #1 - beq _080615B8 - ldr r1, _080615B0 - ldr r0, _080615B4 - ldrh r0, [r0] - b _080615BC - .align 2, 0 -_080615AC: .4byte gUnknown_2023D08 -_080615B0: .4byte gUnknown_82E383C -_080615B4: .4byte gUnknown_203886C -_080615B8: - ldr r1, _080616A8 - ldrh r0, [r3] -_080615BC: - lsls r0, r0, #5 - adds r0, r0, r1 - ldrb r0, [r0, #3] -_080615C2: - mov r8, r0 - ldr r6, _080616AC - ldrb r1, [r6] - bl DecompressTrainerFrontPic - ldrb r0, [r6] - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r0, r8 - bl SetMultiuseSpriteTemplateToTrainerBack - ldr r0, _080616B0 - ldr r2, _080616B4 - mov r3, r8 - lsls r1, r3, #2 - adds r1, r1, r2 - ldrb r1, [r1] - movs r2, #8 - subs r2, r2, r1 - lsls r2, r2, #0x12 - movs r1, #0xa0 - lsls r1, r1, #0xe - adds r2, r2, r1 - asrs r2, r2, #0x10 - movs r1, #0xb0 - movs r3, #0x1e - bl CreateSprite - ldr r5, _080616B8 - ldrb r1, [r6] - adds r1, r1, r5 - strb r0, [r1] - ldr r4, _080616BC - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0x60 - strh r1, [r0, #0x24] - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r0, #0x20] - adds r1, #0x20 - strh r1, [r0, #0x20] - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _080616C0 - strh r1, [r0, #0x2e] - ldr r1, _080616C4 - mov r2, r8 - lsls r0, r2, #3 - adds r0, r0, r1 - ldrh r0, [r0, #4] - bl IndexOfSpritePaletteTag - ldrb r1, [r6] - adds r1, r1, r5 - ldrb r1, [r1] - lsls r2, r1, #4 - adds r2, r2, r1 - lsls r2, r2, #2 - adds r2, r2, r4 - lsls r0, r0, #4 - ldrb r3, [r2, #5] - movs r1, #0xf - ands r1, r3 - orrs r1, r0 - strb r1, [r2, #5] - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - mov r3, r8 - strh r3, [r0, #6] - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, #0x1c - adds r0, r0, r4 - ldr r1, _080616C8 - str r1, [r0] - ldr r1, _080616CC - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _080616D0 - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080616A8: .4byte gUnknown_82E383C -_080616AC: .4byte gUnknown_2023D08 -_080616B0: .4byte gUnknown_2024640 -_080616B4: .4byte gUnknown_82D8D70 -_080616B8: .4byte gUnknown_2023E88 -_080616BC: .4byte gUnknown_20205AC -_080616C0: .4byte 0x0000FFFE -_080616C4: .4byte gUnknown_82D91CC -_080616C8: .4byte sub_0805D3C8 -_080616CC: .4byte gUnknown_3005AC0 -_080616D0: .4byte sub_0805EE24 - thumb_func_end sub_080614C0 - - thumb_func_start OpponentHandleTrainerSlideBack -OpponentHandleTrainerSlideBack: @ 0x080616D4 - push {r4, r5, r6, lr} - ldr r6, _08061764 - ldr r4, _08061768 - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r5, _0806176C - adds r0, r0, r5 - bl SetSpritePrimaryCoordsFromSecondaryCoords - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0x23 - strh r1, [r0, #0x2e] - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0x8c - lsls r1, r1, #1 - strh r1, [r0, #0x32] - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrh r1, [r0, #0x22] - strh r1, [r0, #0x36] - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r5, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _08061770 - str r1, [r0] - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _08061774 - bl StoreSpriteCallbackInData6 - ldr r1, _08061778 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0806177C - str r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08061764: .4byte gUnknown_2023E88 -_08061768: .4byte gUnknown_2023D08 -_0806176C: .4byte gUnknown_20205AC -_08061770: .4byte sub_080A67B4 -_08061774: .4byte sub_08007140 -_08061778: .4byte gUnknown_3005AC0 -_0806177C: .4byte sub_0805EE5C - thumb_func_end OpponentHandleTrainerSlideBack - - thumb_func_start sub_08061780 -sub_08061780: @ 0x08061780 - push {r4, r5, r6, lr} - ldr r6, _080617CC - ldr r4, [r6] - ldr r5, _080617D0 - ldrb r2, [r5] - ldr r0, [r4, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r3, r1, r0 - ldrb r0, [r3, #4] - cmp r0, #0 - bne _080617D4 - ldr r1, [r4] - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080617B4 - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #5 - bl InitAndLaunchSpecialAnimation -_080617B4: - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #4] - adds r1, #1 - strb r1, [r0, #4] - b _08061810 - .align 2, 0 -_080617CC: .4byte gUnknown_2024174 -_080617D0: .4byte gUnknown_2023D08 -_080617D4: - ldrb r1, [r3] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _08061810 - strb r0, [r3, #4] - movs r0, #0x10 - movs r1, #0x3f - bl PlaySE12WithPanning - ldr r2, _08061818 - ldr r1, _0806181C - ldrb r0, [r5] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, _08061820 - str r1, [r0] - ldr r1, _08061824 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08061828 - str r1, [r0] -_08061810: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08061818: .4byte gUnknown_20205AC -_0806181C: .4byte gUnknown_2023E88 -_08061820: .4byte SpriteCB_FaintOpponentMon -_08061824: .4byte gUnknown_3005AC0 -_08061828: .4byte sub_0805F6B0 - thumb_func_end sub_08061780 - - thumb_func_start RunSaveCallback -RunSaveCallback: @ 0x0806182C - push {lr} - bl OpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RunSaveCallback - - thumb_func_start sub_08061838 -sub_08061838: @ 0x08061838 - push {lr} - bl OpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08061838 - - thumb_func_start sub_08061844 -sub_08061844: @ 0x08061844 - push {lr} - bl OpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08061844 - - thumb_func_start sub_08061850 -sub_08061850: @ 0x08061850 - push {lr} - bl OpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08061850 - - thumb_func_start OpponentHandleMoveAnimation -OpponentHandleMoveAnimation: @ 0x0806185C - push {r4, r5, r6, lr} - ldr r6, _08061940 - ldrb r0, [r6] - bl mplay_80342A4 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0806186E - b _08061982 -_0806186E: - ldr r0, _08061944 - mov ip, r0 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r0, #1 - adds r0, r2, r0 - ldrb r0, [r0] - mov r1, ip - adds r1, #2 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - ldr r5, _08061948 - mov r1, ip - adds r1, #3 - adds r2, r2, r1 - ldrb r1, [r2] - strb r1, [r5] - ldr r4, _0806194C - ldrb r2, [r6] - lsls r2, r2, #9 - mov r1, ip - adds r1, #4 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, ip - adds r1, #5 - adds r2, r2, r1 - ldrb r1, [r2] - lsls r1, r1, #8 - orrs r3, r1 - strh r3, [r4] - ldr r4, _08061950 - ldrb r2, [r6] - lsls r2, r2, #9 - mov r1, ip - adds r1, #6 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, ip - adds r1, #7 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r3, r1 - mov r1, ip - adds r1, #8 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, r1, #0x10 - orrs r3, r1 - mov r1, ip - adds r1, #9 - adds r2, r2, r1 - ldrb r1, [r2] - lsls r1, r1, #0x18 - orrs r3, r1 - str r3, [r4] - ldr r3, _08061954 - ldrb r1, [r6] - lsls r1, r1, #9 - mov r2, ip - adds r2, #0xa - adds r1, r1, r2 - ldrb r1, [r1] - strb r1, [r3] - ldr r4, _08061958 - ldrb r2, [r6] - lsls r2, r2, #9 - mov r1, ip - adds r1, #0xc - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, ip - adds r1, #0xd - adds r2, r2, r1 - ldrb r1, [r2] - lsls r1, r1, #8 - orrs r3, r1 - strh r3, [r4] - ldr r3, _0806195C - ldrb r2, [r6] - lsls r2, r2, #9 - mov r1, ip - adds r1, #0x10 - adds r2, r2, r1 - str r2, [r3] - ldr r3, _08061960 - ldrb r1, [r6] - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r2, [r2] - str r2, [r1] - ldrb r1, [r5] - bl sub_0805D7A8 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - beq _08061964 - bl OpponentBufferExecCompleted - b _08061982 - .align 2, 0 -_08061940: .4byte gUnknown_2023D08 -_08061944: .4byte gUnknown_2022D08 -_08061948: .4byte gUnknown_20380D2 -_0806194C: .4byte gUnknown_20380A8 -_08061950: .4byte gUnknown_20380A4 -_08061954: .4byte gUnknown_20380BA -_08061958: .4byte gUnknown_20380BC -_0806195C: .4byte gUnknown_20380A0 -_08061960: .4byte gUnknown_2024160 -_08061964: - ldr r0, _08061988 - ldr r0, [r0] - ldrb r1, [r6] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strb r3, [r0, #4] - ldr r1, _0806198C - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08061990 - str r1, [r0] -_08061982: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08061988: .4byte gUnknown_2024174 -_0806198C: .4byte gUnknown_3005AC0 -_08061990: .4byte sub_08061994 - thumb_func_end OpponentHandleMoveAnimation - - thumb_func_start sub_08061994 -sub_08061994: @ 0x08061994 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r2, _080619E0 - ldr r6, _080619E4 - ldrb r3, [r6] - lsls r1, r3, #9 - adds r0, r2, #1 - mov sl, r0 - adds r0, r1, r0 - ldrb r4, [r0] - adds r5, r2, #2 - mov sb, r5 - adds r0, r1, r5 - ldrb r0, [r0] - lsls r0, r0, #8 - orrs r4, r0 - adds r2, #0xb - adds r1, r1, r2 - ldrb r1, [r1] - mov r8, r1 - ldr r7, _080619E8 - ldr r5, [r7] - ldr r1, [r5, #4] - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r2, [r0, #4] - cmp r2, #1 - beq _08061A2C - cmp r2, #1 - bgt _080619EC - cmp r2, #0 - beq _080619F6 - b _08061B08 - .align 2, 0 -_080619E0: .4byte gUnknown_2022D08 -_080619E4: .4byte gUnknown_2023D08 -_080619E8: .4byte gUnknown_2024174 -_080619EC: - cmp r2, #2 - beq _08061A56 - cmp r2, #3 - beq _08061ACC - b _08061B08 -_080619F6: - ldr r1, [r5] - lsls r0, r3, #2 - adds r1, r0, r1 - ldrb r2, [r1] - movs r0, #0xc - ands r0, r2 - cmp r0, #4 - bne _08061A18 - movs r0, #8 - orrs r0, r2 - strb r0, [r1] - ldrb r2, [r6] - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #5 - bl InitAndLaunchSpecialAnimation -_08061A18: - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #1 - strb r1, [r0, #4] - b _08061B08 -_08061A2C: - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08061B08 - movs r0, #0 - bl sub_0805E7B8 - adds r0, r4, #0 - bl DoMoveAnim - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #2 - strb r1, [r0, #4] - b _08061B08 -_08061A56: - ldr r0, _08061ABC - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _08061AC0 - ldrb r0, [r0] - cmp r0, #0 - bne _08061B08 - movs r0, #1 - bl sub_0805E7B8 - ldr r0, [r7] - ldrb r2, [r6] - ldr r1, [r0] - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08061AA4 - mov r0, r8 - cmp r0, #1 - bhi _08061AA4 - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #6 - bl InitAndLaunchSpecialAnimation - ldr r0, [r7] - ldrb r1, [r6] - ldr r0, [r0] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] -_08061AA4: - ldr r0, _08061AC4 - ldr r2, [r0] - ldr r0, _08061AC8 - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #3 - strb r1, [r0, #4] - b _08061B08 - .align 2, 0 -_08061ABC: .4byte gUnknown_2038098 -_08061AC0: .4byte gUnknown_203809D -_08061AC4: .4byte gUnknown_2024174 -_08061AC8: .4byte gUnknown_2023D08 -_08061ACC: - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _08061B08 - bl CopyAllBattleSpritesInvisibilities - ldrb r0, [r6] - lsls r2, r0, #9 - mov r3, sl - adds r1, r2, r3 - ldrb r1, [r1] - add r2, sb - ldrb r2, [r2] - lsls r2, r2, #8 - orrs r1, r2 - bl TrySetBehindSubstituteSpriteBit - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strb r4, [r0, #4] - bl OpponentBufferExecCompleted -_08061B08: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08061994 - - thumb_func_start OpponentHandlePrintString -OpponentHandlePrintString: @ 0x08061B18 - push {r4, r5, lr} - ldr r0, _08061B58 - movs r1, #0 - strh r1, [r0] - ldr r0, _08061B5C - strh r1, [r0] - ldr r5, _08061B60 - ldrb r4, [r5] - lsls r4, r4, #9 - ldr r0, _08061B64 - adds r4, r4, r0 - ldrh r0, [r4] - bl PrintOnTrainerHillRecordsWindow - ldr r0, _08061B68 - movs r1, #0 - bl sub_0814FA04 - ldr r1, _08061B6C - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08061B70 - str r1, [r0] - ldrb r0, [r5] - ldrh r1, [r4] - bl BattleArena_DeductMindPoints - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08061B58: .4byte gUnknown_2022AC8 -_08061B5C: .4byte gUnknown_2022ACA -_08061B60: .4byte gUnknown_2023D08 -_08061B64: .4byte gUnknown_2022D0A -_08061B68: .4byte gUnknown_2022AE0 -_08061B6C: .4byte gUnknown_3005AC0 -_08061B70: .4byte sub_0805F768 - thumb_func_end OpponentHandlePrintString - - thumb_func_start sub_08061B74 -sub_08061B74: @ 0x08061B74 - push {lr} - bl OpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08061B74 - - thumb_func_start OpponentHandleChooseAction -OpponentHandleChooseAction: @ 0x08061B80 - push {lr} - bl AI_TrySwitchOrUseItem - bl OpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end OpponentHandleChooseAction - - thumb_func_start sub_08061B90 -sub_08061B90: @ 0x08061B90 - push {lr} - bl OpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08061B90 - - thumb_func_start OpponentHandleChooseMove -OpponentHandleChooseMove: @ 0x08061B9C - push {r4, r5, r6, lr} - ldr r0, _08061BC4 - ldr r2, [r0] - movs r0, #0x80 - lsls r0, r0, #0xa - ands r0, r2 - cmp r0, #0 - beq _08061BC8 - bl ChooseMoveAndTargetInBattlePalace - adds r2, r0, #0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - movs r0, #1 - movs r1, #0xa -_08061BBA: - bl BtlController_EmitTwoReturnValues -_08061BBE: - bl OpponentBufferExecCompleted - b _08061D3A - .align 2, 0 -_08061BC4: .4byte gUnknown_2022C90 -_08061BC8: - ldr r0, _08061BF8 - ldrb r0, [r0] - lsls r0, r0, #9 - ldr r1, _08061BFC - adds r5, r0, r1 - movs r0, #0x93 - lsls r0, r0, #3 - ands r2, r0 - cmp r2, #0 - beq _08061CA8 - movs r0, #0xf - bl BattleAI_SetupAIData - bl sub_08130BEC - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #5 - beq _08061C06 - cmp r4, #5 - bgt _08061C00 - cmp r4, #4 - beq _08061C0C - b _08061C24 - .align 2, 0 -_08061BF8: .4byte gUnknown_2023D08 -_08061BFC: .4byte gUnknown_2022D0C -_08061C00: - cmp r4, #6 - beq _08061C14 - b _08061C24 -_08061C06: - movs r0, #1 - movs r1, #4 - b _08061C10 -_08061C0C: - movs r0, #1 - movs r1, #3 -_08061C10: - movs r2, #0 - b _08061BBA -_08061C14: - ldr r0, _08061C20 - ldrb r2, [r0] - movs r0, #1 - movs r1, #0xf - b _08061BBA - .align 2, 0 -_08061C20: .4byte gUnknown_2023EB0 -_08061C24: - ldr r3, _08061C94 - lsls r0, r4, #1 - adds r2, r5, r0 - ldrh r1, [r2] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0, #6] - movs r0, #0x12 - ands r0, r1 - cmp r0, #0 - beq _08061C46 - ldr r0, _08061C98 - ldr r1, _08061C9C - ldrb r1, [r1] - strb r1, [r0] -_08061C46: - ldrh r1, [r2] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0, #6] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08061C80 - movs r0, #0 - bl GetBattlerAtPosition - ldr r5, _08061C98 - strb r0, [r5] - ldr r0, _08061CA0 - ldrb r1, [r0] - ldr r2, _08061CA4 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _08061C80 - movs r0, #2 - bl GetBattlerAtPosition - strb r0, [r5] -_08061C80: - ldr r0, _08061C98 - ldrb r0, [r0] - lsls r0, r0, #8 - orrs r4, r0 - movs r0, #1 - movs r1, #0xa - adds r2, r4, #0 - bl BtlController_EmitTwoReturnValues - b _08061BBE - .align 2, 0 -_08061C94: .4byte gUnknown_82ED220 -_08061C98: .4byte gUnknown_2023EB0 -_08061C9C: .4byte gUnknown_2023D08 -_08061CA0: .4byte gUnknown_2023EB4 -_08061CA4: .4byte gUnknown_82FACB4 -_08061CA8: - movs r6, #3 -_08061CAA: - bl Random - adds r4, r0, #0 - ands r4, r6 - lsls r0, r4, #1 - adds r0, r5, r0 - ldrh r2, [r0] - cmp r2, #0 - beq _08061CAA - ldr r1, _08061CE4 - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #6] - movs r0, #0x12 - ands r0, r1 - cmp r0, #0 - beq _08061CEC - ldr r0, _08061CE8 - ldrb r0, [r0] - lsls r0, r0, #8 - orrs r4, r0 - movs r0, #1 - movs r1, #0xa - adds r2, r4, #0 - bl BtlController_EmitTwoReturnValues - b _08061D36 - .align 2, 0 -_08061CE4: .4byte gUnknown_82ED220 -_08061CE8: .4byte gUnknown_2023D08 -_08061CEC: - ldr r0, _08061D1C - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08061D20 - bl Random - movs r1, #2 - ands r1, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r1, #0 - bl GetBattlerAtPosition - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x10 - orrs r2, r4 - movs r0, #1 - movs r1, #0xa - bl BtlController_EmitTwoReturnValues - b _08061D36 - .align 2, 0 -_08061D1C: .4byte gUnknown_2022C90 -_08061D20: - movs r0, #0 - bl GetBattlerAtPosition - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x10 - orrs r2, r4 - movs r0, #1 - movs r1, #0xa - bl BtlController_EmitTwoReturnValues -_08061D36: - bl OpponentBufferExecCompleted -_08061D3A: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end OpponentHandleChooseMove - - thumb_func_start OpponentHandleChooseItem -OpponentHandleChooseItem: @ 0x08061D40 - push {lr} - ldr r0, _08061D64 - ldrb r0, [r0] - lsrs r0, r0, #1 - ldr r1, _08061D68 - ldr r1, [r1] - lsls r0, r0, #1 - adds r0, r0, r1 - adds r0, #0xc0 - ldrb r1, [r0] - movs r0, #1 - bl BtlController_EmitOneReturnValue - bl OpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_08061D64: .4byte gUnknown_2023D08 -_08061D68: .4byte gUnknown_2024140 - thumb_func_end OpponentHandleChooseItem - - thumb_func_start OpponentHandleChoosePokemon -OpponentHandleChoosePokemon: @ 0x08061D6C - push {r4, r5, r6, r7, lr} - ldr r0, _08061DAC - ldrb r0, [r0] - ldr r1, _08061DB0 - ldr r1, [r1] - adds r0, r0, r1 - movs r2, #0xa5 - lsls r2, r2, #2 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, #6 - bne _08061E38 - bl GetMostSuitableMonToSwitchInto - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #6 - bne _08061E3E - ldr r0, _08061DB4 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08061DB8 - movs r0, #1 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r7, r5, #0 - b _08061DCC - .align 2, 0 -_08061DAC: .4byte gUnknown_2023D08 -_08061DB0: .4byte gUnknown_2024140 -_08061DB4: .4byte gUnknown_2022C90 -_08061DB8: - movs r0, #1 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r0, #3 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_08061DCC: - ldr r0, _08061DE8 - ldr r0, [r0] - ldr r1, _08061DEC - ands r0, r1 - cmp r0, #0 - beq _08061DF8 - ldr r0, _08061DF0 - ldrb r0, [r0] - cmp r0, #1 - bne _08061DF4 - movs r0, #0 - movs r6, #3 - b _08061DFC - .align 2, 0 -_08061DE8: .4byte gUnknown_2022C90 -_08061DEC: .4byte 0x00808000 -_08061DF0: .4byte gUnknown_2023D08 -_08061DF4: - movs r0, #3 - b _08061DFA -_08061DF8: - movs r0, #0 -_08061DFA: - movs r6, #6 -_08061DFC: - adds r4, r0, #0 - b _08061E02 -_08061E00: - adds r4, #1 -_08061E02: - cmp r4, r6 - bge _08061E3E - movs r0, #0x64 - muls r0, r4, r0 - ldr r1, _08061E30 - adds r0, r0, r1 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _08061E00 - ldr r1, _08061E34 - lsls r0, r7, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r4, r0 - beq _08061E00 - lsls r0, r5, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r4, r0 - beq _08061E00 - b _08061E3E - .align 2, 0 -_08061E30: .4byte gUnknown_20243E8 -_08061E34: .4byte gUnknown_2023D12 -_08061E38: - ldrb r4, [r1] - movs r0, #6 - strb r0, [r1] -_08061E3E: - ldr r0, _08061E64 - ldrb r0, [r0] - ldr r1, _08061E68 - ldr r1, [r1] - adds r0, r0, r1 - adds r0, #0x5c - strb r4, [r0] - lsls r1, r4, #0x18 - lsrs r1, r1, #0x18 - movs r0, #1 - movs r2, #0 - bl BtlController_EmitChosenMonReturnValue - bl OpponentBufferExecCompleted - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08061E64: .4byte gUnknown_2023D08 -_08061E68: .4byte gUnknown_2024140 - thumb_func_end OpponentHandleChoosePokemon - - thumb_func_start sub_08061E6C -sub_08061E6C: @ 0x08061E6C - push {lr} - bl OpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08061E6C - - thumb_func_start OpponentHandleHealthBarUpdate -OpponentHandleHealthBarUpdate: @ 0x08061E78 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - movs r0, #0 - bl LoadBattleBarGfx - ldr r3, _08061EF0 - ldr r0, _08061EF4 - mov sb, r0 - ldrb r4, [r0] - lsls r2, r4, #9 - adds r0, r3, #3 - adds r0, r2, r0 - ldrb r1, [r0] - lsls r1, r1, #8 - adds r3, #2 - adds r2, r2, r3 - ldrb r0, [r2] - orrs r0, r1 - lsls r0, r0, #0x10 - asrs r7, r0, #0x10 - ldr r0, _08061EF8 - cmp r7, r0 - beq _08061F08 - ldr r6, _08061EFC - lsls r0, r4, #1 - adds r0, r0, r6 - ldrh r0, [r0] - movs r5, #0x64 - muls r0, r5, r0 - ldr r4, _08061F00 - adds r0, r0, r4 - movs r1, #0x3a - bl GetMonData - mov r8, r0 - mov r1, sb - ldrb r0, [r1] - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r0, [r0] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #0x39 - bl GetMonData - adds r3, r0, #0 - mov r1, sb - ldrb r0, [r1] - ldr r1, _08061F04 - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - mov r2, r8 - bl SetBattleBarStruct - b _08061F32 - .align 2, 0 -_08061EF0: .4byte gUnknown_2022D08 -_08061EF4: .4byte gUnknown_2023D08 -_08061EF8: .4byte 0x00007FFF -_08061EFC: .4byte gUnknown_2023D12 -_08061F00: .4byte gUnknown_20243E8 -_08061F04: .4byte gUnknown_3005AD0 -_08061F08: - ldr r1, _08061F50 - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08061F54 - adds r0, r0, r1 - movs r1, #0x3a - bl GetMonData - adds r2, r0, #0 - mov r1, sb - ldrb r0, [r1] - ldr r1, _08061F58 - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - movs r3, #0 - bl SetBattleBarStruct -_08061F32: - ldr r1, _08061F5C - ldr r0, _08061F60 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08061F64 - str r1, [r0] - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08061F50: .4byte gUnknown_2023D12 -_08061F54: .4byte gUnknown_20243E8 -_08061F58: .4byte gUnknown_3005AD0 -_08061F5C: .4byte gUnknown_3005AC0 -_08061F60: .4byte gUnknown_2023D08 -_08061F64: .4byte sub_0805F65C - thumb_func_end OpponentHandleHealthBarUpdate - - thumb_func_start sub_08061F68 -sub_08061F68: @ 0x08061F68 - push {lr} - bl OpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08061F68 - - thumb_func_start OpponentHandleStatusIconUpdate -OpponentHandleStatusIconUpdate: @ 0x08061F74 - push {r4, lr} - ldr r4, _08061FD0 - ldrb r0, [r4] - bl mplay_80342A4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08061FC8 - ldr r0, _08061FD4 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - ldr r2, _08061FD8 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _08061FDC - adds r1, r1, r2 - movs r2, #9 - bl UpdateHealthboxAttribute - ldrb r2, [r4] - ldr r0, _08061FE0 - ldr r0, [r0] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r1, _08061FE4 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08061FE8 - str r1, [r0] -_08061FC8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08061FD0: .4byte gUnknown_2023D08 -_08061FD4: .4byte gUnknown_3005AD0 -_08061FD8: .4byte gUnknown_2023D12 -_08061FDC: .4byte gUnknown_20243E8 -_08061FE0: .4byte gUnknown_2024174 -_08061FE4: .4byte gUnknown_3005AC0 -_08061FE8: .4byte sub_0805FAA4 - thumb_func_end OpponentHandleStatusIconUpdate - - thumb_func_start OpponentHandleStatusAnimation -OpponentHandleStatusAnimation: @ 0x08061FEC - push {r4, r5, lr} - ldr r5, _08062044 - ldrb r0, [r5] - bl mplay_80342A4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806203C - ldr r4, _08062048 - ldrb r3, [r5] - lsls r3, r3, #9 - adds r0, r4, #1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, #2 - adds r1, r3, r1 - ldrb r1, [r1] - adds r2, r4, #3 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, r2, #8 - orrs r1, r2 - adds r2, r4, #4 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, r2, #0x10 - orrs r1, r2 - adds r4, #5 - adds r3, r3, r4 - ldrb r2, [r3] - lsls r2, r2, #0x18 - orrs r1, r2 - bl InitAndLaunchChosenStatusAnimation - ldr r1, _0806204C - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08062050 - str r1, [r0] -_0806203C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08062044: .4byte gUnknown_2023D08 -_08062048: .4byte gUnknown_2022D08 -_0806204C: .4byte gUnknown_3005AC0 -_08062050: .4byte sub_0805FAA4 - thumb_func_end OpponentHandleStatusAnimation - - thumb_func_start sub_08062054 -sub_08062054: @ 0x08062054 - push {lr} - bl OpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08062054 - - thumb_func_start sub_08062060 -sub_08062060: @ 0x08062060 - push {lr} - bl OpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08062060 - - thumb_func_start sub_0806206C -sub_0806206C: @ 0x0806206C - push {lr} - bl OpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0806206C - - thumb_func_start sub_08062078 -sub_08062078: @ 0x08062078 - push {lr} - bl OpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08062078 - - thumb_func_start sub_08062084 -sub_08062084: @ 0x08062084 - push {lr} - bl OpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08062084 - - thumb_func_start RfuVSync -RfuVSync: @ 0x08062090 - push {lr} - bl OpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RfuVSync - - thumb_func_start SwapRentalMons -SwapRentalMons: @ 0x0806209C - push {lr} - bl OpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SwapRentalMons - - thumb_func_start sub_080620A8 -sub_080620A8: @ 0x080620A8 - push {lr} - bl OpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080620A8 - - thumb_func_start sub_080620B4 -sub_080620B4: @ 0x080620B4 - push {lr} - bl OpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080620B4 - - thumb_func_start sub_080620C0 -sub_080620C0: @ 0x080620C0 - push {lr} - ldr r2, _080620D8 - ldrb r1, [r2] - movs r0, #0x80 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - bl OpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_080620D8: .4byte gUnknown_20229C0 - thumb_func_end sub_080620C0 - - thumb_func_start sub_080620DC -sub_080620DC: @ 0x080620DC - push {lr} - ldr r3, _08062108 - ldr r1, _0806210C - ldr r0, _08062110 - ldrb r0, [r0] - lsls r0, r0, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - ldrb r2, [r3] - movs r0, #0x80 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl OpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_08062108: .4byte gUnknown_20229C0 -_0806210C: .4byte gUnknown_2022D08 -_08062110: .4byte gUnknown_2023D08 - thumb_func_end sub_080620DC - - thumb_func_start sub_08062114 -sub_08062114: @ 0x08062114 - push {lr} - ldr r2, _08062128 - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - bl OpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_08062128: .4byte gUnknown_20229C0 - thumb_func_end sub_08062114 - - thumb_func_start sub_0806212C -sub_0806212C: @ 0x0806212C - push {lr} - ldr r3, _08062150 - ldr r1, [r3] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x1f - movs r0, #1 - eors r1, r0 - lsls r1, r1, #7 - ldrb r2, [r3] - movs r0, #0x7f - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl OpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_08062150: .4byte gUnknown_20229C0 - thumb_func_end sub_0806212C - - thumb_func_start sub_08062154 -sub_08062154: @ 0x08062154 - push {r4, lr} - ldr r3, _0806217C - ldr r2, _08062180 - ldr r4, _08062184 - ldrb r0, [r4] - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - bge _08062188 - bl OpponentBufferExecCompleted - b _080621B2 - .align 2, 0 -_0806217C: .4byte gUnknown_20205AC -_08062180: .4byte gUnknown_2023E88 -_08062184: .4byte gUnknown_2023D08 -_08062188: - ldr r1, _080621B8 - movs r0, #1 - strb r0, [r1] - ldrb r0, [r4] - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r1, #0 - strh r1, [r0, #0x30] - ldrb r0, [r4] - bl sub_080763FC - ldr r1, _080621BC - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _080621C0 - str r1, [r0] -_080621B2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080621B8: .4byte gUnknown_202415D -_080621BC: .4byte gUnknown_3005AC0 -_080621C0: .4byte sub_0805F780 - thumb_func_end sub_08062154 - - thumb_func_start sub_080621C4 -sub_080621C4: @ 0x080621C4 - push {lr} - bl OpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080621C4 - - thumb_func_start OpponentHandlePlaySE -OpponentHandlePlaySE: @ 0x080621D0 - push {r4, lr} - ldr r4, _0806220C - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - movs r3, #0x3f - cmp r0, #0 - bne _080621E4 - movs r3, #0xc0 -_080621E4: - ldr r2, _08062210 - ldrb r1, [r4] - lsls r1, r1, #9 - adds r0, r2, #1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, #2 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - lsls r1, r3, #0x18 - asrs r1, r1, #0x18 - bl PlaySE12WithPanning - bl OpponentBufferExecCompleted - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806220C: .4byte gUnknown_2023D08 -_08062210: .4byte gUnknown_2022D08 - thumb_func_end OpponentHandlePlaySE - - thumb_func_start sub_08062214 -sub_08062214: @ 0x08062214 - push {r4, r5, lr} - ldr r4, _08062248 - ldr r5, _0806224C - ldrb r0, [r5] - lsls r3, r0, #9 - adds r0, r4, #3 - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, #0 - beq _08062250 - bl BattleStopLowHpSound - ldrb r1, [r5] - lsls r1, r1, #9 - adds r0, r4, #1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, r4, #2 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - bl PlayBGM - b _08062264 - .align 2, 0 -_08062248: .4byte gUnknown_2022D08 -_0806224C: .4byte gUnknown_2023D08 -_08062250: - adds r0, r4, #1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, #2 - adds r1, r3, r1 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - bl PlayFanfare -_08062264: - bl OpponentBufferExecCompleted - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08062214 - - thumb_func_start OpponentHandleFaintingCry -OpponentHandleFaintingCry: @ 0x08062270 - push {lr} - ldr r1, _080622A0 - ldr r0, _080622A4 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080622A8 - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x19 - movs r2, #5 - bl PlayCry3 - bl OpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_080622A0: .4byte gUnknown_2023D12 -_080622A4: .4byte gUnknown_2023D08 -_080622A8: .4byte gUnknown_20243E8 - thumb_func_end OpponentHandleFaintingCry - - thumb_func_start sub_080622AC -sub_080622AC: @ 0x080622AC - push {lr} - ldr r1, _080622D4 - ldr r0, _080622D8 - ldrb r0, [r0] - lsls r0, r0, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - bl HandleIntroSlide - ldr r2, _080622DC - ldrh r0, [r2] - movs r1, #1 - orrs r0, r1 - strh r0, [r2] - bl OpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_080622D4: .4byte gUnknown_2022D08 -_080622D8: .4byte gUnknown_2023D08 -_080622DC: .4byte gUnknown_20240A0 - thumb_func_end sub_080622AC - - thumb_func_start sub_080622E0 -sub_080622E0: @ 0x080622E0 - push {r4, r5, r6, lr} - ldr r5, _080623C0 - ldr r6, _080623C4 - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _080623C8 - adds r0, r0, r4 - bl SetSpritePrimaryCoordsFromSecondaryCoords - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0x23 - strh r1, [r0, #0x2e] - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0x8c - lsls r1, r1, #1 - strh r1, [r0, #0x32] - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r0, #0x22] - strh r1, [r0, #0x36] - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _080623CC - str r1, [r0] - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _080623D0 - bl StoreSpriteCallbackInData6 - ldr r0, _080623D4 - movs r1, #5 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _080623D8 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r4 - ldrb r0, [r6] - strh r0, [r1, #8] - ldr r3, _080623DC - ldr r0, [r3] - ldrb r2, [r6] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080623A2 - ldr r0, _080623E0 - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r4 - ldr r1, _080623E4 - str r1, [r0] -_080623A2: - ldr r0, [r3] - ldr r2, [r0, #8] - ldrb r0, [r2, #9] - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #9] - ldr r1, _080623E8 - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _080623EC - str r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080623C0: .4byte gUnknown_2023E88 -_080623C4: .4byte gUnknown_2023D08 -_080623C8: .4byte gUnknown_20205AC -_080623CC: .4byte sub_080A67B4 -_080623D0: .4byte sub_080623F0 -_080623D4: .4byte sub_0806240C -_080623D8: .4byte gUnknown_3005B60 -_080623DC: .4byte gUnknown_2024174 -_080623E0: .4byte gUnknown_2024158 -_080623E4: .4byte Task_HidePartyStatusSummary -_080623E8: .4byte gUnknown_3005AC0 -_080623EC: .4byte sub_0805ED7C - thumb_func_end sub_080622E0 - - thumb_func_start sub_080623F0 -sub_080623F0: @ 0x080623F0 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #6] - bl FreeTrainerFrontPicPalette - adds r0, r4, #0 - bl FreeSpriteOamMatrix - adds r0, r4, #0 - bl DestroySprite - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080623F0 - - thumb_func_start sub_0806240C -sub_0806240C: @ 0x0806240C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r7, _08062470 - ldrb r0, [r7] - mov sb, r0 - ldr r1, _08062474 - mov r2, r8 - lsls r0, r2, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r0, [r0, #8] - strb r0, [r7] - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08062450 - ldr r0, _08062478 - ldr r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08062450 - movs r0, #0x80 - lsls r0, r0, #8 - ands r1, r0 - cmp r1, #0 - beq _08062484 -_08062450: - ldr r0, _0806247C - ldrb r1, [r7] - lsls r2, r1, #9 - adds r0, #1 - adds r2, r2, r0 - ldr r0, _08062480 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - strb r0, [r2] - ldrb r0, [r7] - movs r1, #0 - bl sub_08060FC8 - b _080624C4 - .align 2, 0 -_08062470: .4byte gUnknown_2023D08 -_08062474: .4byte gUnknown_3005B60 -_08062478: .4byte gUnknown_2022C90 -_0806247C: .4byte gUnknown_2022D08 -_08062480: .4byte gUnknown_2023D12 -_08062484: - ldr r4, _080624E8 - ldrb r0, [r7] - lsls r1, r0, #9 - adds r4, #1 - adds r1, r1, r4 - ldr r6, _080624EC - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - movs r1, #0 - bl sub_08060FC8 - ldrb r0, [r7] - movs r5, #2 - eors r0, r5 - strb r0, [r7] - ldrb r0, [r7] - lsls r1, r0, #9 - adds r1, r1, r4 - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - movs r1, #0 - bl sub_08060FC8 - ldrb r0, [r7] - eors r0, r5 - strb r0, [r7] -_080624C4: - ldr r1, _080624F0 - ldr r2, _080624F4 - ldrb r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _080624F8 - str r1, [r0] - mov r0, sb - strb r0, [r2] - mov r0, r8 - bl DestroyTask - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080624E8: .4byte gUnknown_2022D08 -_080624EC: .4byte gUnknown_2023D12 -_080624F0: .4byte gUnknown_3005AC0 -_080624F4: .4byte gUnknown_2023D08 -_080624F8: .4byte sub_0805F14C - thumb_func_end sub_0806240C - - thumb_func_start sub_080624FC -sub_080624FC: @ 0x080624FC - push {r4, r5, r6, r7, lr} - ldr r1, _08062524 - ldr r0, _08062528 - ldrb r2, [r0] - lsls r0, r2, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _0806252C - adds r0, r2, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806252C - bl OpponentBufferExecCompleted - b _080625F6 - .align 2, 0 -_08062524: .4byte gUnknown_2022D08 -_08062528: .4byte gUnknown_2023D08 -_0806252C: - ldr r4, _08062584 - ldr r0, [r4] - ldr r3, _08062588 - ldrb r1, [r3] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r2, #1 - orrs r1, r2 - strb r1, [r0] - ldr r1, _0806258C - ldrb r2, [r3] - lsls r0, r2, #9 - adds r1, #2 - adds r0, r0, r1 - ldrb r0, [r0] - adds r7, r3, #0 - cmp r0, #0 - beq _08062598 - ldr r0, [r4] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r3, r0, r1 - ldrb r2, [r3, #1] - lsls r1, r2, #0x1b - lsrs r0, r1, #0x1c - cmp r0, #1 - bhi _08062590 - adds r0, #1 - movs r1, #0xf - ands r0, r1 - lsls r0, r0, #1 - movs r1, #0x1f - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #1] - b _080625F6 - .align 2, 0 -_08062584: .4byte gUnknown_2024174 -_08062588: .4byte gUnknown_2023D08 -_0806258C: .4byte gUnknown_2022D08 -_08062590: - movs r0, #0x1f - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r3, #1] -_08062598: - adds r5, r7, #0 - ldrb r0, [r5] - lsls r3, r0, #9 - ldr r4, _080625FC - adds r1, r3, r4 - subs r2, r4, #3 - adds r2, r3, r2 - ldrb r2, [r2] - subs r4, #2 - adds r3, r3, r4 - ldrb r3, [r3] - bl CreatePartyStatusSummarySprites - ldr r2, _08062600 - ldrb r1, [r5] - adds r1, r1, r2 - movs r3, #0 - strb r0, [r1] - ldr r6, _08062604 - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strb r3, [r0, #5] - ldrb r2, [r5] - lsls r0, r2, #9 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0 - beq _080625EA - ldr r0, [r6] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - movs r1, #0x5d - strb r1, [r0, #5] -_080625EA: - ldr r0, _08062608 - ldrb r1, [r7] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, _0806260C - str r0, [r1] -_080625F6: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080625FC: .4byte gUnknown_2022D0C -_08062600: .4byte gUnknown_2024158 -_08062604: .4byte gUnknown_2024174 -_08062608: .4byte gUnknown_3005AC0 -_0806260C: .4byte sub_08062610 - thumb_func_end sub_080624FC - - thumb_func_start sub_08062610 -sub_08062610: @ 0x08062610 - push {r4, lr} - ldr r4, _08062650 - ldr r0, [r4] - ldr r3, _08062654 - ldrb r1, [r3] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #5] - adds r2, r1, #1 - strb r2, [r0, #5] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #0x5c - bls _08062648 - ldr r0, [r4] - ldrb r1, [r3] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0 - strb r1, [r0, #5] - bl OpponentBufferExecCompleted -_08062648: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08062650: .4byte gUnknown_2024174 -_08062654: .4byte gUnknown_2023D08 - thumb_func_end sub_08062610 - - thumb_func_start sub_08062658 -sub_08062658: @ 0x08062658 - push {lr} - ldr r0, _08062694 - ldr r1, [r0] - ldr r0, _08062698 - ldrb r3, [r0] - ldr r1, [r1, #4] - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0806268A - ldr r2, _0806269C - ldr r0, _080626A0 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldr r1, _080626A4 - str r1, [r0] -_0806268A: - bl OpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_08062694: .4byte gUnknown_2024174 -_08062698: .4byte gUnknown_2023D08 -_0806269C: .4byte gUnknown_3005B60 -_080626A0: .4byte gUnknown_2024158 -_080626A4: .4byte Task_HidePartyStatusSummary - thumb_func_end sub_08062658 - - thumb_func_start sub_080626A8 -sub_080626A8: @ 0x080626A8 - push {lr} - bl OpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080626A8 - - thumb_func_start OpponentHandleSpriteInvisibility -OpponentHandleSpriteInvisibility: @ 0x080626B4 - push {r4, lr} - ldr r4, _08062704 - ldrb r0, [r4] - bl IsBattlerSpritePresent - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080626FA - ldr r3, _08062708 - ldr r0, _0806270C - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r0, _08062710 - lsls r1, r1, #9 - adds r0, #1 - adds r1, r1, r0 - adds r2, #0x3e - movs r0, #1 - ldrb r1, [r1] - ands r1, r0 - lsls r1, r1, #2 - ldrb r3, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4] - bl CopyBattleSpriteInvisibility -_080626FA: - bl OpponentBufferExecCompleted - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08062704: .4byte gUnknown_2023D08 -_08062708: .4byte gUnknown_20205AC -_0806270C: .4byte gUnknown_2023E88 -_08062710: .4byte gUnknown_2022D08 - thumb_func_end OpponentHandleSpriteInvisibility - - thumb_func_start OpponentHandleBattleAnimation -OpponentHandleBattleAnimation: @ 0x08062714 - push {r4, r5, r6, lr} - sub sp, #4 - ldr r6, _08062758 - ldrb r0, [r6] - bl mplay_80342A4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806276C - ldr r5, _0806275C - ldrb r2, [r6] - lsls r1, r2, #9 - adds r0, r5, #1 - adds r0, r1, r0 - ldrb r3, [r0] - adds r0, r5, #2 - adds r0, r1, r0 - ldrb r4, [r0] - adds r5, #3 - adds r1, r1, r5 - ldrb r0, [r1] - lsls r0, r0, #8 - orrs r4, r0 - str r4, [sp] - adds r0, r2, #0 - adds r1, r2, #0 - bl TryHandleLaunchBattleTableAnimation - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08062760 - bl OpponentBufferExecCompleted - b _0806276C - .align 2, 0 -_08062758: .4byte gUnknown_2023D08 -_0806275C: .4byte gUnknown_2022D08 -_08062760: - ldr r0, _08062774 - ldrb r1, [r6] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, _08062778 - str r0, [r1] -_0806276C: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08062774: .4byte gUnknown_3005AC0 -_08062778: .4byte sub_0805FAD4 - thumb_func_end OpponentHandleBattleAnimation - - thumb_func_start WallyHandleCmd38 -WallyHandleCmd38: @ 0x0806277C - push {lr} - bl OpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WallyHandleCmd38 - - thumb_func_start sub_08062788 -sub_08062788: @ 0x08062788 - push {lr} - bl OpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08062788 - - thumb_func_start OpponentHandleCmd55 -OpponentHandleCmd55: @ 0x08062794 - push {lr} - ldr r0, _080627C8 - ldr r0, [r0] - movs r1, #6 - ands r0, r1 - cmp r0, #2 - bne _080627BE - ldr r2, _080627CC - ldr r0, _080627D0 - adds r3, r2, r0 - ldrb r1, [r3] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3] - ldr r0, _080627D4 - ldr r0, [r0] - str r0, [r2] - ldr r0, [r2, #8] - bl SetMainCallback2 -_080627BE: - bl OpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_080627C8: .4byte gUnknown_2022C90 -_080627CC: .4byte gUnknown_3002360 -_080627D0: .4byte 0x00000439 -_080627D4: .4byte gUnknown_3005A60 - thumb_func_end OpponentHandleCmd55 - - thumb_func_start sub_080627D8 -sub_080627D8: @ 0x080627D8 - bx lr - .align 2, 0 - thumb_func_end sub_080627D8 - - thumb_func_start ShouldSwitchIfPerishSong -ShouldSwitchIfPerishSong: @ 0x080627DC - push {lr} - ldr r1, _08062824 - ldr r0, _08062828 - ldrb r2, [r0] - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08062834 - ldr r0, _0806282C - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #0xf] - lsls r0, r0, #0x1c - cmp r0, #0 - bne _08062834 - ldr r0, _08062830 - ldr r0, [r0] - adds r0, r2, r0 - movs r1, #0xa5 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r1, #6 - strb r1, [r0] - movs r0, #1 - movs r1, #2 - movs r2, #0 - bl BtlController_EmitTwoReturnValues - movs r0, #1 - b _08062836 - .align 2, 0 -_08062824: .4byte gUnknown_2023F50 -_08062828: .4byte gUnknown_2023D08 -_0806282C: .4byte gUnknown_2023F60 -_08062830: .4byte gUnknown_2024140 -_08062834: - movs r0, #0 -_08062836: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ShouldSwitchIfPerishSong - - thumb_func_start ShouldSwitchIfWonderGuard -ShouldSwitchIfWonderGuard: @ 0x0806283C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - ldr r0, _080628F4 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08062856 - b _08062A10 -_08062856: - ldr r0, _080628F8 - ldrb r0, [r0] - bl sub_080A630C - movs r1, #1 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - ldr r4, _080628FC - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x58 - muls r0, r1, r0 - adds r0, r0, r4 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x19 - beq _08062882 - b _08062A10 -_08062882: - mov r0, sl - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - movs r6, #0 - mov r8, r4 - movs r7, #0x58 - adds r0, r2, #0 - muls r0, r7, r0 - adds r4, r0, r4 - movs r0, #0x20 - adds r0, r0, r4 - mov sb, r0 -_0806289E: - lsls r1, r6, #1 - ldr r5, _080628F8 - ldrb r0, [r5] - muls r0, r7, r0 - adds r1, r1, r0 - mov r0, r8 - adds r0, #0xc - adds r1, r1, r0 - ldrh r0, [r1] - cmp r0, #0 - beq _080628CC - ldrh r1, [r4] - mov r3, sb - ldrb r2, [r3] - bl AI_TypeCalc - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r0, #2 - ands r1, r0 - cmp r1, #0 - beq _080628CC - b _08062A10 -_080628CC: - adds r6, #1 - cmp r6, #3 - ble _0806289E - ldr r0, _080628F4 - ldr r0, [r0] - ldr r1, _08062900 - ands r0, r1 - cmp r0, #0 - beq _08062934 - ldrb r1, [r5] - movs r0, #2 - ands r0, r1 - adds r1, r5, #0 - cmp r0, #0 - bne _08062904 - movs r4, #0 - movs r0, #3 - str r0, [sp] - b _0806293C - .align 2, 0 -_080628F4: .4byte gUnknown_2022C90 -_080628F8: .4byte gUnknown_2023D08 -_080628FC: .4byte gUnknown_2023D28 -_08062900: .4byte 0x00808000 -_08062904: - movs r4, #3 - movs r3, #6 - str r3, [sp] - b _0806293C -_0806290C: - ldr r0, _0806292C - ldrb r0, [r0] - ldr r1, _08062930 - ldr r1, [r1] - adds r0, r0, r1 - movs r1, #0xa5 - lsls r1, r1, #2 - adds r0, r0, r1 - strb r6, [r0] - movs r0, #1 - movs r1, #2 - movs r2, #0 - bl BtlController_EmitTwoReturnValues - movs r0, #1 - b _08062A12 - .align 2, 0 -_0806292C: .4byte gUnknown_2023D08 -_08062930: .4byte gUnknown_2024140 -_08062934: - movs r4, #0 - movs r3, #6 - str r3, [sp] - adds r1, r5, #0 -_0806293C: - ldrb r0, [r1] - bl GetBattlerSide - lsls r0, r0, #0x18 - ldr r1, _08062A24 - mov sb, r1 - cmp r0, #0 - bne _08062950 - ldr r3, _08062A28 - mov sb, r3 -_08062950: - adds r6, r4, #0 - ldr r0, [sp] - cmp r6, r0 - bge _08062A10 -_08062958: - movs r0, #0x64 - adds r5, r6, #0 - muls r5, r0, r5 - mov r1, sb - adds r4, r1, r5 - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _08062A08 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - cmp r0, #0 - beq _08062A08 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - movs r1, #0xce - lsls r1, r1, #1 - cmp r0, r1 - beq _08062A08 - ldr r1, _08062A2C - ldr r0, _08062A30 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r6, r0 - beq _08062A08 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - adds r0, r4, #0 - movs r1, #0x2e - bl GetMonData - mov r0, sl - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - movs r4, #0 - mov r8, r5 - ldr r1, _08062A34 - movs r0, #0x58 - muls r0, r2, r0 - adds r5, r0, r1 - adds r7, r5, #0 - adds r7, #0x20 -_080629C4: - adds r1, r4, #0 - adds r1, #0xd - mov r0, sb - add r0, r8 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - beq _08062A02 - ldrh r1, [r5] - ldrb r2, [r7] - bl AI_TypeCalc - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r0, #2 - ands r1, r0 - cmp r1, #0 - beq _08062A02 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bls _0806290C -_08062A02: - adds r4, #1 - cmp r4, #3 - ble _080629C4 -_08062A08: - adds r6, #1 - ldr r3, [sp] - cmp r6, r3 - blt _08062958 -_08062A10: - movs r0, #0 -_08062A12: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08062A24: .4byte gUnknown_20243E8 -_08062A28: .4byte gUnknown_2024190 -_08062A2C: .4byte gUnknown_2023D12 -_08062A30: .4byte gUnknown_2023D08 -_08062A34: .4byte gUnknown_2023D28 - thumb_func_end ShouldSwitchIfWonderGuard - - thumb_func_start FindMonThatAbsorbsOpponentsMove -FindMonThatAbsorbsOpponentsMove: @ 0x08062A38 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - movs r0, #1 - bl HasSuperEffectiveMoveAgainstOpponents - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08062A66 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08062A66 - b _08062C90 -_08062A66: - ldr r1, _08062ACC - ldr r5, _08062AD0 - ldrb r3, [r5] - lsls r0, r3, #1 - adds r4, r0, r1 - ldrh r1, [r4] - cmp r1, #0 - bne _08062A78 - b _08062C90 -_08062A78: - ldr r0, _08062AD4 - cmp r1, r0 - bne _08062A80 - b _08062C90 -_08062A80: - ldr r2, _08062AD8 - ldrh r1, [r4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #1] - cmp r0, #0 - bne _08062A94 - b _08062C90 -_08062A94: - ldr r0, _08062ADC - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08062AFE - mov r8, r3 - mov r0, r8 - bl sub_080A630C - movs r4, #2 - eors r0, r4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - ldr r1, _08062AE0 - ldrb r1, [r1] - ldr r2, _08062AE4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _08062AE8 - ldrb r7, [r5] - b _08062B02 - .align 2, 0 -_08062ACC: .4byte gUnknown_2023EF4 -_08062AD0: .4byte gUnknown_2023D08 -_08062AD4: .4byte 0x0000FFFF -_08062AD8: .4byte gUnknown_82ED220 -_08062ADC: .4byte gUnknown_2022C90 -_08062AE0: .4byte gUnknown_2023EB4 -_08062AE4: .4byte gUnknown_82FACB4 -_08062AE8: - ldrb r0, [r5] - bl sub_080A630C - eors r0, r4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - b _08062B02 -_08062AFE: - adds r7, r3, #0 - mov r8, r7 -_08062B02: - ldr r3, _08062B24 - ldr r1, _08062B28 - ldr r2, _08062B2C - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r0, [r0, #2] - cmp r0, #0xa - bne _08062B30 - movs r0, #0x12 - b _08062B42 - .align 2, 0 -_08062B24: .4byte gUnknown_82ED220 -_08062B28: .4byte gUnknown_2023EF4 -_08062B2C: .4byte gUnknown_2023D08 -_08062B30: - cmp r0, #0xb - bne _08062B3A - movs r1, #0xb - str r1, [sp] - b _08062B44 -_08062B3A: - cmp r0, #0xd - beq _08062B40 - b _08062C90 -_08062B40: - movs r0, #0xa -_08062B42: - str r0, [sp] -_08062B44: - ldr r1, _08062B74 - ldrb r3, [r2] - movs r0, #0x58 - muls r0, r3, r0 - adds r0, r0, r1 - adds r0, #0x20 - ldrb r0, [r0] - ldr r1, [sp] - cmp r0, r1 - bne _08062B5A - b _08062C90 -_08062B5A: - ldr r0, _08062B78 - ldr r0, [r0] - ldr r1, _08062B7C - ands r0, r1 - cmp r0, #0 - beq _08062BB0 - movs r0, #2 - ands r3, r0 - cmp r3, #0 - bne _08062B80 - movs r4, #0 - movs r0, #3 - b _08062BB4 - .align 2, 0 -_08062B74: .4byte gUnknown_2023D28 -_08062B78: .4byte gUnknown_2022C90 -_08062B7C: .4byte 0x00808000 -_08062B80: - movs r4, #3 - movs r1, #6 - mov sl, r1 - b _08062BB6 -_08062B88: - ldr r0, _08062BA8 - ldrb r0, [r0] - ldr r1, _08062BAC - ldr r1, [r1] - adds r0, r0, r1 - movs r2, #0xa5 - lsls r2, r2, #2 - adds r0, r0, r2 - strb r5, [r0] - movs r0, #1 - movs r1, #2 - movs r2, #0 - bl BtlController_EmitTwoReturnValues - movs r0, #1 - b _08062C92 - .align 2, 0 -_08062BA8: .4byte gUnknown_2023D08 -_08062BAC: .4byte gUnknown_2024140 -_08062BB0: - movs r4, #0 - movs r0, #6 -_08062BB4: - mov sl, r0 -_08062BB6: - ldrb r0, [r2] - bl GetBattlerSide - lsls r0, r0, #0x18 - ldr r1, _08062C58 - str r1, [sp, #4] - cmp r0, #0 - bne _08062BCA - ldr r2, _08062C5C - str r2, [sp, #4] -_08062BCA: - adds r5, r4, #0 - cmp r5, sl - bge _08062C90 - ldr r0, _08062C60 - mov sb, r0 -_08062BD4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, [sp, #4] - adds r6, r1, r0 - adds r0, r6, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _08062C8A - adds r0, r6, #0 - movs r1, #0x41 - bl GetMonData - cmp r0, #0 - beq _08062C8A - adds r0, r6, #0 - movs r1, #0x41 - bl GetMonData - movs r1, #0xce - lsls r1, r1, #1 - cmp r0, r1 - beq _08062C8A - ldr r1, _08062C64 - mov r2, r8 - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r5, r0 - beq _08062C8A - lsls r0, r7, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r5, r0 - beq _08062C8A - ldr r0, _08062C68 - ldr r1, [r0] - adds r0, r2, r1 - adds r0, #0x5c - ldrb r0, [r0] - cmp r5, r0 - beq _08062C8A - adds r0, r7, r1 - adds r0, #0x5c - ldrb r0, [r0] - cmp r5, r0 - beq _08062C8A - adds r0, r6, #0 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r6, #0 - movs r1, #0x2e - bl GetMonData - cmp r0, #0 - beq _08062C6C - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - add r0, sb - ldrb r0, [r0, #0x17] - b _08062C76 - .align 2, 0 -_08062C58: .4byte gUnknown_20243E8 -_08062C5C: .4byte gUnknown_2024190 -_08062C60: .4byte gUnknown_82F0D54 -_08062C64: .4byte gUnknown_2023D12 -_08062C68: .4byte gUnknown_2024140 -_08062C6C: - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - add r0, sb - ldrb r0, [r0, #0x16] -_08062C76: - ldr r1, [sp] - cmp r1, r0 - bne _08062C8A - bl Random - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _08062C8A - b _08062B88 -_08062C8A: - adds r5, #1 - cmp r5, sl - blt _08062BD4 -_08062C90: - movs r0, #0 -_08062C92: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end FindMonThatAbsorbsOpponentsMove - - thumb_func_start ShouldSwitchIfNaturalCure -ShouldSwitchIfNaturalCure: @ 0x08062CA4 - push {r4, r5, lr} - ldr r3, _08062CFC - ldr r5, _08062D00 - ldrb r4, [r5] - movs r0, #0x58 - adds r2, r4, #0 - muls r2, r0, r2 - adds r0, r3, #0 - adds r0, #0x4c - adds r0, r2, r0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - beq _08062D6C - adds r1, r2, r3 - adds r0, r1, #0 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x1e - bne _08062D6C - ldrh r0, [r1, #0x2c] - ldrh r1, [r1, #0x28] - lsrs r0, r0, #1 - cmp r1, r0 - blo _08062D6C - ldr r1, _08062D04 - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r0] - cmp r1, #0 - beq _08062CEA - ldr r0, _08062D08 - cmp r1, r0 - bne _08062D0C -_08062CEA: - bl Random - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _08062D0C - ldrb r0, [r5] - b _08062D74 - .align 2, 0 -_08062CFC: .4byte gUnknown_2023D28 -_08062D00: .4byte gUnknown_2023D08 -_08062D04: .4byte gUnknown_2023EF4 -_08062D08: .4byte 0x0000FFFF -_08062D0C: - ldr r2, _08062D38 - ldr r1, _08062D3C - ldr r4, _08062D40 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #1] - cmp r0, #0 - bne _08062D44 - bl Random - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _08062D44 - ldrb r0, [r4] - b _08062D74 - .align 2, 0 -_08062D38: .4byte gUnknown_82ED220 -_08062D3C: .4byte gUnknown_2023EF4 -_08062D40: .4byte gUnknown_2023D08 -_08062D44: - movs r0, #8 - movs r1, #1 - bl FindMonWithFlagsAndSuperEffective - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08062D8E - movs r0, #4 - movs r1, #1 - bl FindMonWithFlagsAndSuperEffective - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08062D8E - bl Random - movs r1, #1 - ands r1, r0 - cmp r1, #0 - bne _08062D70 -_08062D6C: - movs r0, #0 - b _08062D90 -_08062D70: - ldr r0, _08062D98 - ldrb r0, [r0] -_08062D74: - ldr r1, _08062D9C - ldr r1, [r1] - adds r0, r0, r1 - movs r1, #0xa5 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r1, #6 - strb r1, [r0] - movs r0, #1 - movs r1, #2 - movs r2, #0 - bl BtlController_EmitTwoReturnValues -_08062D8E: - movs r0, #1 -_08062D90: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08062D98: .4byte gUnknown_2023D08 -_08062D9C: .4byte gUnknown_2024140 - thumb_func_end ShouldSwitchIfNaturalCure - - thumb_func_start HasSuperEffectiveMoveAgainstOpponents -HasSuperEffectiveMoveAgainstOpponents: @ 0x08062DA0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldr r0, _08062E48 - ldrb r0, [r0] - bl sub_080A630C - movs r1, #1 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r0, _08062E4C - ldrb r1, [r0] - ldr r2, _08062E50 - lsls r0, r3, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _08062E3A - movs r4, #0 - ldr r6, _08062E54 - movs r7, #0x58 - adds r0, r3, #0 - muls r0, r7, r0 - adds r5, r0, r6 - movs r0, #0x20 - adds r0, r0, r5 - mov r8, r0 -_08062DEE: - lsls r1, r4, #1 - ldr r0, _08062E48 - ldrb r0, [r0] - muls r0, r7, r0 - adds r1, r1, r0 - adds r0, r6, #0 - adds r0, #0xc - adds r1, r1, r0 - ldrh r0, [r1] - cmp r0, #0 - beq _08062E34 - ldrh r1, [r5] - mov r3, r8 - ldrb r2, [r3] - bl AI_TypeCalc - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r0, #2 - ands r1, r0 - cmp r1, #0 - beq _08062E34 - mov r0, sb - cmp r0, #0 - bne _08062E5C - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __umodsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08062E5C -_08062E34: - adds r4, #1 - cmp r4, #3 - ble _08062DEE -_08062E3A: - ldr r0, _08062E58 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08062E60 - b _08062EDE - .align 2, 0 -_08062E48: .4byte gUnknown_2023D08 -_08062E4C: .4byte gUnknown_2023EB4 -_08062E50: .4byte gUnknown_82FACB4 -_08062E54: .4byte gUnknown_2023D28 -_08062E58: .4byte gUnknown_2022C90 -_08062E5C: - movs r0, #1 - b _08062EE0 -_08062E60: - movs r1, #2 - mov r0, sl - eors r0, r1 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r0, _08062EF0 - ldrb r1, [r0] - ldr r2, _08062EF4 - lsls r0, r3, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _08062EDE - movs r4, #0 - ldr r6, _08062EF8 - movs r7, #0x58 - adds r0, r3, #0 - muls r0, r7, r0 - adds r5, r0, r6 - movs r3, #0x20 - adds r3, r3, r5 - mov r8, r3 -_08062E92: - lsls r1, r4, #1 - ldr r0, _08062EFC - ldrb r0, [r0] - muls r0, r7, r0 - adds r1, r1, r0 - adds r0, r6, #0 - adds r0, #0xc - adds r1, r1, r0 - ldrh r0, [r1] - cmp r0, #0 - beq _08062ED8 - ldrh r1, [r5] - mov r3, r8 - ldrb r2, [r3] - bl AI_TypeCalc - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r0, #2 - ands r1, r0 - cmp r1, #0 - beq _08062ED8 - mov r0, sb - cmp r0, #0 - bne _08062E5C - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __umodsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08062E5C -_08062ED8: - adds r4, #1 - cmp r4, #3 - ble _08062E92 -_08062EDE: - movs r0, #0 -_08062EE0: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08062EF0: .4byte gUnknown_2023EB4 -_08062EF4: .4byte gUnknown_82FACB4 -_08062EF8: .4byte gUnknown_2023D28 -_08062EFC: .4byte gUnknown_2023D08 - thumb_func_end HasSuperEffectiveMoveAgainstOpponents - - thumb_func_start AreStatsRaised -AreStatsRaised: @ 0x08062F00 - push {r4, lr} - movs r4, #0 - ldr r1, _08062F40 - ldr r0, _08062F44 - ldrb r2, [r0] - movs r0, #0x58 - muls r0, r2, r0 - adds r1, #0x18 - adds r2, r0, r1 - movs r3, #7 -_08062F14: - ldrb r1, [r2] - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #6 - ble _08062F2A - subs r1, #6 - lsls r0, r4, #0x18 - asrs r0, r0, #0x18 - adds r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_08062F2A: - adds r2, #1 - subs r3, #1 - cmp r3, #0 - bge _08062F14 - movs r0, #0 - cmp r4, #3 - bls _08062F3A - movs r0, #1 -_08062F3A: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08062F40: .4byte gUnknown_2023D28 -_08062F44: .4byte gUnknown_2023D08 - thumb_func_end AreStatsRaised - - thumb_func_start FindMonWithFlagsAndSuperEffective -FindMonWithFlagsAndSuperEffective: @ 0x08062F48 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp, #4] - ldr r2, _08062FD8 - ldr r1, _08062FDC - ldrb r3, [r1] - lsls r0, r3, #1 - adds r4, r0, r2 - ldrh r2, [r4] - adds r5, r1, #0 - cmp r2, #0 - bne _08062F74 - b _080631D2 -_08062F74: - ldr r0, _08062FE0 - cmp r2, r0 - bne _08062F7C - b _080631D2 -_08062F7C: - ldr r0, _08062FE4 - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, #0xff - bne _08062F88 - b _080631D2 -_08062F88: - ldr r2, _08062FE8 - ldrh r1, [r4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #1] - cmp r0, #0 - bne _08062F9C - b _080631D2 -_08062F9C: - ldr r0, _08062FEC - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08063010 - mov sb, r3 - mov r0, sb - bl sub_080A630C - movs r4, #2 - eors r0, r4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - ldr r1, _08062FF0 - ldrb r1, [r1] - ldr r2, _08062FF4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _08062FF8 - ldrb r5, [r5] - mov sl, r5 - b _08063014 - .align 2, 0 -_08062FD8: .4byte gUnknown_2023EF4 -_08062FDC: .4byte gUnknown_2023D08 -_08062FE0: .4byte 0x0000FFFF -_08062FE4: .4byte gUnknown_2023F14 -_08062FE8: .4byte gUnknown_82ED220 -_08062FEC: .4byte gUnknown_2022C90 -_08062FF0: .4byte gUnknown_2023EB4 -_08062FF4: .4byte gUnknown_82FACB4 -_08062FF8: - ldrb r0, [r5] - bl sub_080A630C - eors r0, r4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - b _08063014 -_08063010: - mov sb, r3 - mov sl, sb -_08063014: - ldr r0, _08063038 - ldr r0, [r0] - ldr r1, _0806303C - ands r0, r1 - cmp r0, #0 - beq _08063074 - ldr r2, _08063040 - ldrb r1, [r2] - movs r0, #2 - ands r0, r1 - adds r5, r2, #0 - cmp r0, #0 - bne _08063044 - movs r4, #0 - movs r0, #3 - str r0, [sp, #8] - b _0806307C - .align 2, 0 -_08063038: .4byte gUnknown_2022C90 -_0806303C: .4byte 0x00808000 -_08063040: .4byte gUnknown_2023D08 -_08063044: - movs r4, #3 - movs r1, #6 - str r1, [sp, #8] - b _0806307C -_0806304C: - ldr r0, _0806306C - ldrb r0, [r0] - ldr r1, _08063070 - ldr r1, [r1] - adds r0, r0, r1 - movs r2, #0xa5 - lsls r2, r2, #2 - adds r0, r0, r2 - strb r6, [r0] - movs r0, #1 - movs r1, #2 - movs r2, #0 - bl BtlController_EmitTwoReturnValues - movs r0, #1 - b _080631D4 - .align 2, 0 -_0806306C: .4byte gUnknown_2023D08 -_08063070: .4byte gUnknown_2024140 -_08063074: - movs r4, #0 - movs r0, #6 - str r0, [sp, #8] - ldr r5, _08063094 -_0806307C: - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, r0, #0x18 - ldr r1, _08063098 - str r1, [sp, #0xc] - cmp r0, #0 - bne _08063090 - ldr r2, _0806309C - str r2, [sp, #0xc] -_08063090: - adds r6, r4, #0 - b _080631CA - .align 2, 0 -_08063094: .4byte gUnknown_2023D08 -_08063098: .4byte gUnknown_20243E8 -_0806309C: .4byte gUnknown_2024190 -_080630A0: - movs r0, #0x64 - muls r0, r6, r0 - ldr r1, [sp, #0xc] - adds r5, r1, r0 - adds r0, r5, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - bne _080630B6 - b _080631C8 -_080630B6: - adds r0, r5, #0 - movs r1, #0x41 - bl GetMonData - cmp r0, #0 - bne _080630C4 - b _080631C8 -_080630C4: - adds r0, r5, #0 - movs r1, #0x41 - bl GetMonData - movs r1, #0xce - lsls r1, r1, #1 - cmp r0, r1 - beq _080631C8 - ldr r1, _08063130 - mov r2, sb - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r6, r0 - beq _080631C8 - mov r2, sl - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r6, r0 - beq _080631C8 - ldr r0, _08063134 - ldr r1, [r0] - mov r2, sb - adds r0, r2, r1 - adds r0, #0x5c - ldrb r0, [r0] - cmp r6, r0 - beq _080631C8 - mov r2, sl - adds r0, r2, r1 - adds r0, #0x5c - ldrb r0, [r0] - cmp r6, r0 - beq _080631C8 - adds r0, r5, #0 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r5, #0 - movs r1, #0x2e - bl GetMonData - cmp r0, #0 - beq _0806313C - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - ldr r1, _08063138 - adds r0, r0, r1 - ldrb r2, [r0, #0x17] - b _08063148 - .align 2, 0 -_08063130: .4byte gUnknown_2023D12 -_08063134: .4byte gUnknown_2024140 -_08063138: .4byte gUnknown_82F0D54 -_0806313C: - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - ldr r2, _080631E4 - adds r0, r0, r2 - ldrb r2, [r0, #0x16] -_08063148: - ldr r1, _080631E8 - ldr r5, _080631EC - ldrb r0, [r5] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - adds r1, r4, #0 - bl AI_TypeCalc - ldr r1, [sp] - ands r1, r0 - cmp r1, #0 - beq _080631C8 - ldr r1, _080631F0 - ldrb r0, [r5] - adds r0, r0, r1 - ldrb r0, [r0] - mov sb, r0 - movs r4, #0 - movs r0, #0x64 - adds r1, r6, #0 - muls r1, r0, r1 - mov r8, r1 - ldr r1, _080631F4 - movs r0, #0x58 - mov r2, sb - muls r2, r0, r2 - adds r0, r2, #0 - adds r5, r0, r1 - adds r7, r5, #0 - adds r7, #0x20 -_08063186: - adds r1, r4, #0 - adds r1, #0xd - ldr r0, [sp, #0xc] - add r0, r8 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - beq _080631C2 - ldrh r1, [r5] - ldrb r2, [r7] - bl AI_TypeCalc - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r0, #2 - ands r1, r0 - cmp r1, #0 - beq _080631C2 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, [sp, #4] - bl __modsi3 - cmp r0, #0 - bne _080631C2 - b _0806304C -_080631C2: - adds r4, #1 - cmp r4, #3 - ble _08063186 -_080631C8: - adds r6, #1 -_080631CA: - ldr r0, [sp, #8] - cmp r6, r0 - bge _080631D2 - b _080630A0 -_080631D2: - movs r0, #0 -_080631D4: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080631E4: .4byte gUnknown_82F0D54 -_080631E8: .4byte gUnknown_2023EF4 -_080631EC: .4byte gUnknown_2023D08 -_080631F0: .4byte gUnknown_2023F14 -_080631F4: .4byte gUnknown_2023D28 - thumb_func_end FindMonWithFlagsAndSuperEffective - - thumb_func_start ShouldSwitch -ShouldSwitch: @ 0x080631F8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - ldr r6, _080632E0 - ldr r4, _080632E4 - ldrb r2, [r4] - movs r5, #0x58 - adds r0, r2, #0 - muls r0, r5, r0 - adds r1, r6, #0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _080632E8 - ands r0, r1 - cmp r0, #0 - beq _08063222 - b _08063450 -_08063222: - ldr r0, _080632EC - lsls r1, r2, #2 - adds r1, r1, r0 - ldr r1, [r1] - movs r0, #0x80 - lsls r0, r0, #3 - ands r1, r0 - cmp r1, #0 - beq _08063236 - b _08063450 -_08063236: - str r1, [sp] - movs r0, #0xc - adds r1, r2, #0 - movs r2, #0x17 - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _0806324E - b _08063450 -_0806324E: - ldrb r1, [r4] - str r0, [sp] - movs r0, #0xc - movs r2, #0x47 - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _08063266 - b _08063450 -_08063266: - str r0, [sp] - movs r0, #0xe - movs r1, #0 - movs r2, #0x2a - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08063298 - ldrb r0, [r4] - muls r0, r5, r0 - adds r1, r0, r6 - adds r0, r1, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #8 - bne _0806328C - b _08063450 -_0806328C: - adds r0, r1, #0 - adds r0, #0x22 - ldrb r0, [r0] - cmp r0, #8 - bne _08063298 - b _08063450 -_08063298: - ldr r0, _080632F0 - ldr r1, [r0] - movs r0, #0x80 - lsls r0, r0, #0xb - ands r0, r1 - cmp r0, #0 - beq _080632A8 - b _08063450 -_080632A8: - movs r0, #0 - mov sl, r0 - movs r0, #1 - ands r1, r0 - cmp r1, #0 - beq _08063312 - ldrb r7, [r4] - adds r0, r7, #0 - bl sub_080A630C - movs r5, #2 - eors r0, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - ldr r1, _080632F4 - ldrb r1, [r1] - ldr r2, _080632F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _080632FC - ldrb r6, [r4] - b _08063316 - .align 2, 0 -_080632E0: .4byte gUnknown_2023D28 -_080632E4: .4byte gUnknown_2023D08 -_080632E8: .4byte 0x0400E000 -_080632EC: .4byte gUnknown_2023F50 -_080632F0: .4byte gUnknown_2022C90 -_080632F4: .4byte gUnknown_2023EB4 -_080632F8: .4byte gUnknown_82FACB4 -_080632FC: - ldrb r0, [r4] - bl sub_080A630C - eors r0, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - b _08063316 -_08063312: - ldrb r6, [r4] - adds r7, r6, #0 -_08063316: - ldr r0, _08063338 - ldr r0, [r0] - ldr r1, _0806333C - ands r0, r1 - cmp r0, #0 - beq _0806334C - ldr r2, _08063340 - ldrb r1, [r2] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08063344 - movs r4, #0 - movs r1, #3 - mov r8, r1 - b _08063354 - .align 2, 0 -_08063338: .4byte gUnknown_2022C90 -_0806333C: .4byte 0x00808000 -_08063340: .4byte gUnknown_2023D08 -_08063344: - movs r4, #3 - movs r0, #6 - mov r8, r0 - b _08063354 -_0806334C: - movs r4, #0 - movs r1, #6 - mov r8, r1 - ldr r2, _0806343C -_08063354: - ldrb r0, [r2] - bl GetBattlerSide - lsls r0, r0, #0x18 - ldr r1, _08063440 - mov sb, r1 - cmp r0, #0 - bne _08063368 - ldr r0, _08063444 - mov sb, r0 -_08063368: - adds r5, r4, #0 - cmp r5, r8 - bge _080633D6 -_0806336E: - movs r0, #0x64 - muls r0, r5, r0 - mov r1, sb - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _080633D0 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - cmp r0, #0 - beq _080633D0 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - movs r1, #0xce - lsls r1, r1, #1 - cmp r0, r1 - beq _080633D0 - ldr r1, _08063448 - lsls r0, r7, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r5, r0 - beq _080633D0 - lsls r0, r6, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r5, r0 - beq _080633D0 - ldr r0, _0806344C - ldr r1, [r0] - adds r0, r7, r1 - adds r0, #0x5c - ldrb r0, [r0] - cmp r5, r0 - beq _080633D0 - adds r0, r6, r1 - adds r0, #0x5c - ldrb r0, [r0] - cmp r5, r0 - beq _080633D0 - movs r0, #1 - add sl, r0 -_080633D0: - adds r5, #1 - cmp r5, r8 - blt _0806336E -_080633D6: - mov r1, sl - cmp r1, #0 - beq _08063450 - bl ShouldSwitchIfPerishSong - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08063436 - bl ShouldSwitchIfWonderGuard - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08063436 - bl FindMonThatAbsorbsOpponentsMove - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08063436 - bl ShouldSwitchIfNaturalCure - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08063436 - movs r0, #0 - bl HasSuperEffectiveMoveAgainstOpponents - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08063450 - bl AreStatsRaised - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08063450 - movs r0, #8 - movs r1, #2 - bl FindMonWithFlagsAndSuperEffective - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08063436 - movs r0, #4 - movs r1, #3 - bl FindMonWithFlagsAndSuperEffective - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08063450 -_08063436: - movs r0, #1 - b _08063452 - .align 2, 0 -_0806343C: .4byte gUnknown_2023D08 -_08063440: .4byte gUnknown_20243E8 -_08063444: .4byte gUnknown_2024190 -_08063448: .4byte gUnknown_2023D12 -_0806344C: .4byte gUnknown_2024140 -_08063450: - movs r0, #0 -_08063452: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ShouldSwitch - - thumb_func_start AI_TrySwitchOrUseItem -AI_TrySwitchOrUseItem: @ 0x08063464 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r4, _080634E0 - ldrb r0, [r4] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r5, r6, #0 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - ldr r1, _080634E4 - mov r8, r1 - cmp r0, #0 - bne _0806348C - ldr r2, _080634E8 - mov r8, r2 -_0806348C: - ldr r7, _080634EC - ldr r0, [r7] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - bne _0806349A - b _080635CA -_0806349A: - bl ShouldSwitch - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080634A6 - b _080635C0 -_080634A6: - ldrb r0, [r4] - ldr r2, _080634F0 - ldr r1, [r2] - adds r0, r0, r1 - movs r1, #0xa5 - lsls r1, r1, #2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #6 - bne _0806359C - bl GetMostSuitableMonToSwitchInto - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #6 - bne _0806358A - ldr r0, [r7] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _080634F4 - adds r0, r6, #0 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r6, r5, #0 - b _0806350C - .align 2, 0 -_080634E0: .4byte gUnknown_2023D08 -_080634E4: .4byte gUnknown_20243E8 -_080634E8: .4byte gUnknown_2024190 -_080634EC: .4byte gUnknown_2022C90 -_080634F0: .4byte gUnknown_2024140 -_080634F4: - adds r0, r5, #0 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r0, #2 - eors r5, r0 - adds r0, r5, #0 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_0806350C: - ldr r0, _0806352C - ldr r0, [r0] - ldr r1, _08063530 - ands r0, r1 - cmp r0, #0 - beq _0806353C - ldr r0, _08063534 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08063538 - movs r0, #0 - movs r7, #3 - b _08063540 - .align 2, 0 -_0806352C: .4byte gUnknown_2022C90 -_08063530: .4byte 0x00808000 -_08063534: .4byte gUnknown_2023D08 -_08063538: - movs r0, #3 - b _0806353E -_0806353C: - movs r0, #0 -_0806353E: - movs r7, #6 -_08063540: - adds r4, r0, #0 - cmp r4, r7 - bge _0806358A -_08063546: - movs r0, #0x64 - muls r0, r4, r0 - add r0, r8 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _08063584 - ldr r1, _080635B4 - lsls r0, r6, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r4, r0 - beq _08063584 - lsls r0, r5, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r4, r0 - beq _08063584 - ldr r0, _080635B8 - ldr r1, [r0] - adds r0, r6, r1 - adds r0, #0x5c - ldrb r0, [r0] - cmp r4, r0 - beq _08063584 - adds r0, r5, r1 - adds r0, #0x5c - ldrb r0, [r0] - cmp r4, r0 - bne _0806358A -_08063584: - adds r4, #1 - cmp r4, r7 - blt _08063546 -_0806358A: - ldr r0, _080635BC - ldrb r0, [r0] - ldr r2, _080635B8 - ldr r1, [r2] - adds r0, r0, r1 - movs r1, #0xa5 - lsls r1, r1, #2 - adds r0, r0, r1 - strb r4, [r0] -_0806359C: - ldr r0, _080635BC - ldrb r1, [r0] - ldr r0, [r2] - adds r0, r1, r0 - adds r1, r0, #0 - adds r1, #0x5c - movs r2, #0xa5 - lsls r2, r2, #2 - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r1] - b _080635DC - .align 2, 0 -_080635B4: .4byte gUnknown_2023D12 -_080635B8: .4byte gUnknown_2024140 -_080635BC: .4byte gUnknown_2023D08 -_080635C0: - bl ShouldUseItem - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080635DC -_080635CA: - ldr r0, _080635E8 - ldrb r0, [r0] - movs r2, #1 - eors r2, r0 - lsls r2, r2, #8 - movs r0, #1 - movs r1, #0 - bl BtlController_EmitTwoReturnValues -_080635DC: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080635E8: .4byte gUnknown_2023D08 - thumb_func_end AI_TrySwitchOrUseItem - - thumb_func_start ModulateByTypeEffectiveness -ModulateByTypeEffectiveness: @ 0x080635EC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r6, r3, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sb, r1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r8, r2 - movs r7, #0 - ldr r0, _08063670 - mov sl, r0 - ldrb r0, [r0] - cmp r0, #0xff - beq _0806365E - mov r5, sl -_0806361A: - ldrb r0, [r5] - cmp r0, #0xfe - beq _08063650 - ldr r1, [sp] - cmp r0, r1 - bne _08063650 - ldrb r4, [r5, #1] - cmp r4, sb - bne _0806363A - ldrb r1, [r6] - ldrb r0, [r5, #2] - muls r0, r1, r0 - movs r1, #0xa - bl __divsi3 - strb r0, [r6] -_0806363A: - cmp r4, r8 - bne _08063650 - cmp sb, r8 - beq _08063650 - ldrb r1, [r6] - ldrb r0, [r5, #2] - muls r0, r1, r0 - movs r1, #0xa - bl __divsi3 - strb r0, [r6] -_08063650: - adds r5, #3 - adds r7, #3 - mov r1, sl - adds r0, r7, r1 - ldrb r0, [r0] - cmp r0, #0xff - bne _0806361A -_0806365E: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08063670: .4byte gUnknown_82EBB38 - thumb_func_end ModulateByTypeEffectiveness - - thumb_func_start GetMostSuitableMonToSwitchInto -GetMostSuitableMonToSwitchInto: @ 0x08063674 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x24 - ldr r4, _080636B4 - ldrb r2, [r4] - ldr r0, _080636B8 - ldr r0, [r0] - adds r0, r2, r0 - adds r1, r0, #0 - adds r1, #0x5c - ldrb r0, [r1] - cmp r0, #6 - beq _08063696 - b _08063A34 -_08063696: - ldr r0, _080636BC - ldr r1, [r0] - movs r0, #0x80 - lsls r0, r0, #0xb - ands r0, r1 - cmp r0, #0 - beq _080636C4 - ldr r1, _080636C0 - lsls r0, r2, #1 - adds r0, r0, r1 - ldrb r0, [r0] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _08063A34 - .align 2, 0 -_080636B4: .4byte gUnknown_2023D08 -_080636B8: .4byte gUnknown_2024140 -_080636BC: .4byte gUnknown_2022C90 -_080636C0: .4byte gUnknown_2023D12 -_080636C4: - movs r0, #1 - ands r1, r0 - cmp r1, #0 - beq _08063750 - str r2, [sp, #0x10] - adds r0, r2, #0 - bl sub_080A630C - movs r5, #2 - eors r0, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - ldr r1, _080636FC - ldrb r1, [r1] - ldr r2, _08063700 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _08063704 - ldrb r4, [r4] - str r4, [sp, #0x14] - b _0806371A - .align 2, 0 -_080636FC: .4byte gUnknown_2023EB4 -_08063700: .4byte gUnknown_82FACB4 -_08063704: - ldrb r0, [r4] - bl sub_080A630C - eors r0, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x14] -_0806371A: - bl Random - movs r3, #2 - ands r0, r3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - ldr r0, _08063748 - ldrb r1, [r0] - ldr r2, _0806374C - ldr r4, [sp, #4] - lsls r0, r4, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _0806376E - eors r4, r3 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - b _0806376E - .align 2, 0 -_08063748: .4byte gUnknown_2023EB4 -_0806374C: .4byte gUnknown_82FACB4 -_08063750: - adds r0, r2, #0 - bl sub_080A630C - movs r1, #1 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - ldrb r4, [r4] - str r4, [sp, #0x14] - str r4, [sp, #0x10] -_0806376E: - ldr r0, _08063790 - ldr r0, [r0] - ldr r1, _08063794 - ands r0, r1 - cmp r0, #0 - beq _080637A6 - ldr r2, _08063798 - ldrb r1, [r2] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0806379C - movs r0, #0 - str r0, [sp, #0x18] - movs r1, #3 - str r1, [sp, #0x1c] - b _080637B0 - .align 2, 0 -_08063790: .4byte gUnknown_2022C90 -_08063794: .4byte 0x00808000 -_08063798: .4byte gUnknown_2023D08 -_0806379C: - movs r4, #3 - str r4, [sp, #0x18] - movs r0, #6 - str r0, [sp, #0x1c] - b _080637B0 -_080637A6: - movs r1, #0 - str r1, [sp, #0x18] - movs r2, #6 - str r2, [sp, #0x1c] - ldr r2, _0806389C -_080637B0: - ldrb r0, [r2] - bl GetBattlerSide - lsls r0, r0, #0x18 - ldr r4, _080638A0 - str r4, [sp, #0x20] - cmp r0, #0 - bne _080637C4 - ldr r0, _080638A4 - str r0, [sp, #0x20] -_080637C4: - movs r1, #0 - mov sb, r1 -_080637C8: - movs r2, #0 - str r2, [sp, #8] - movs r4, #6 - str r4, [sp, #0xc] - ldr r7, [sp, #0x18] - ldr r0, [sp, #0x1c] - cmp r7, r0 - blt _080637DA - b _080638D6 -_080637DA: - lsls r0, r7, #2 - ldr r1, _080638A8 - adds r0, r0, r1 - mov r8, r0 - mov sl, sp -_080637E4: - movs r0, #0x64 - muls r0, r7, r0 - ldr r2, [sp, #0x20] - adds r4, r2, r0 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0 - beq _080638BC - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _080638BC - mov r4, r8 - ldr r0, [r4] - mov r1, sb - ands r0, r1 - cmp r0, #0 - bne _080638BC - ldr r1, _080638AC - ldr r2, [sp, #0x10] - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, r7 - beq _080638BC - ldr r4, [sp, #0x14] - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, r7 - beq _080638BC - ldr r0, _080638B0 - ldr r1, [r0] - adds r0, r2, r1 - adds r0, #0x5c - ldrb r0, [r0] - cmp r7, r0 - beq _080638BC - adds r0, r4, r1 - adds r0, #0x5c - ldrb r0, [r0] - cmp r7, r0 - beq _080638BC - ldr r1, _080638B4 - lsls r0, r5, #3 - subs r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r5, [r0, #6] - ldrb r6, [r0, #7] - movs r0, #0xa - mov r1, sl - strb r0, [r1] - movs r0, #0x58 - ldr r2, [sp, #4] - adds r4, r2, #0 - muls r4, r0, r4 - ldr r0, _080638B8 - adds r4, r4, r0 - adds r0, r4, #0 - adds r0, #0x21 - ldrb r0, [r0] - adds r1, r5, #0 - adds r2, r6, #0 - mov r3, sp - bl ModulateByTypeEffectiveness - adds r4, #0x22 - ldrb r0, [r4] - adds r1, r5, #0 - adds r2, r6, #0 - mov r3, sp - bl ModulateByTypeEffectiveness - ldr r2, [sp, #8] - mov r1, sl - ldrb r1, [r1] - cmp r2, r1 - bhs _080638CA - mov r2, sl - ldrb r2, [r2] - str r2, [sp, #8] - lsls r0, r7, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0xc] - b _080638CA - .align 2, 0 -_0806389C: .4byte gUnknown_2023D08 -_080638A0: .4byte gUnknown_20243E8 -_080638A4: .4byte gUnknown_2024190 -_080638A8: .4byte gUnknown_82FACB4 -_080638AC: .4byte gUnknown_2023D12 -_080638B0: .4byte gUnknown_2024140 -_080638B4: .4byte gUnknown_82F0D54 -_080638B8: .4byte gUnknown_2023D28 -_080638BC: - mov r4, r8 - ldr r0, [r4] - mov r1, sb - orrs r1, r0 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 -_080638CA: - movs r2, #4 - add r8, r2 - adds r7, #1 - ldr r4, [sp, #0x1c] - cmp r7, r4 - blt _080637E4 -_080638D6: - ldr r0, [sp, #0xc] - cmp r0, #6 - beq _08063938 - movs r7, #0 - movs r0, #0x64 - ldr r1, [sp, #0xc] - adds r5, r1, #0 - muls r5, r0, r5 -_080638E6: - adds r1, r7, #0 - adds r1, #0xd - ldr r2, [sp, #0x20] - adds r0, r2, r5 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0 - beq _0806390E - ldr r0, _08063930 - ldrb r1, [r0] - adds r0, r4, #0 - ldr r2, [sp, #4] - bl TypeCalc - movs r1, #2 - ands r1, r0 - cmp r1, #0 - bne _08063914 -_0806390E: - adds r7, #1 - cmp r7, #3 - ble _080638E6 -_08063914: - cmp r7, #4 - beq _0806391A - b _08063A32 -_0806391A: - ldr r4, [sp, #0xc] - lsls r0, r4, #2 - ldr r1, _08063934 - adds r0, r0, r1 - ldr r0, [r0] - mov r2, sb - orrs r2, r0 - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - b _0806393C - .align 2, 0 -_08063930: .4byte gUnknown_2023D08 -_08063934: .4byte gUnknown_82FACB4 -_08063938: - movs r4, #0x3f - mov sb, r4 -_0806393C: - mov r0, sb - cmp r0, #0x3f - beq _08063944 - b _080637C8 -_08063944: - ldr r0, _08063A44 - movs r1, #0 - strh r1, [r0] - ldr r0, _08063A48 - ldr r0, [r0] - strb r1, [r0, #0x13] - ldr r0, _08063A4C - movs r2, #1 - strb r2, [r0, #0xe] - ldr r0, _08063A50 - strb r1, [r0] - ldr r0, _08063A54 - strb r2, [r0] - movs r1, #0 - str r1, [sp, #8] - movs r2, #6 - str r2, [sp, #0xc] - ldr r7, [sp, #0x18] - ldr r4, [sp, #0x1c] - cmp r7, r4 - bge _08063A32 -_0806396E: - movs r0, #0x64 - adds r6, r7, #0 - muls r6, r0, r6 - ldr r0, [sp, #0x20] - adds r4, r0, r6 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - adds r1, r7, #1 - mov sl, r1 - cmp r0, #0 - beq _08063A2A - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _08063A2A - ldr r1, _08063A58 - ldr r2, [sp, #0x10] - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, r7 - beq _08063A2A - ldr r4, [sp, #0x14] - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, r7 - beq _08063A2A - ldr r0, _08063A48 - ldr r1, [r0] - adds r0, r2, r1 - adds r0, #0x5c - ldrb r0, [r0] - cmp r7, r0 - beq _08063A2A - adds r0, r4, r1 - adds r0, #0x5c - ldrb r0, [r0] - cmp r7, r0 - beq _08063A2A - movs r5, #0 - mov sb, r6 - ldr r0, _08063A5C - mov r8, r0 - ldr r6, _08063A60 -_080639D2: - adds r1, r5, #0 - adds r1, #0xd - ldr r0, [sp, #0x20] - add r0, sb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r0, #0 - mov r1, r8 - str r0, [r1] - cmp r4, #0 - beq _08063A0E - ldr r0, _08063A64 - lsls r1, r4, #1 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #1] - cmp r0, #1 - beq _08063A0E - ldrb r0, [r6] - ldr r1, [sp, #4] - bl AI_CalcDmg - ldrb r1, [r6] - adds r0, r4, #0 - ldr r2, [sp, #4] - bl TypeCalc -_08063A0E: - mov r2, r8 - ldr r0, [r2] - ldr r4, [sp, #8] - cmp r4, r0 - bge _08063A24 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #8] - lsls r0, r7, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0xc] -_08063A24: - adds r5, #1 - cmp r5, #3 - ble _080639D2 -_08063A2A: - mov r7, sl - ldr r0, [sp, #0x1c] - cmp r7, r0 - blt _0806396E -_08063A32: - ldr r0, [sp, #0xc] -_08063A34: - add sp, #0x24 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08063A44: .4byte gUnknown_20240A4 -_08063A48: .4byte gUnknown_2024140 -_08063A4C: .4byte gUnknown_2024118 -_08063A50: .4byte gUnknown_2023F20 -_08063A54: .4byte gUnknown_2023EB5 -_08063A58: .4byte gUnknown_2023D12 -_08063A5C: .4byte gUnknown_2023E94 -_08063A60: .4byte gUnknown_2023D08 -_08063A64: .4byte gUnknown_82ED220 - thumb_func_end GetMostSuitableMonToSwitchInto - - thumb_func_start GetAI_ItemType -GetAI_ItemType: @ 0x08063A68 - push {r4, lr} - adds r2, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x13 - bne _08063A78 - movs r0, #1 - b _08063ABE -_08063A78: - ldrb r1, [r2, #4] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08063A86 - movs r0, #2 - b _08063ABE -_08063A86: - ldrb r4, [r2, #3] - movs r3, #0x3f - adds r0, r3, #0 - ands r0, r4 - cmp r0, #0 - beq _08063A96 - movs r0, #3 - b _08063ABE -_08063A96: - ldrb r1, [r2] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - bne _08063AAC - ldrb r0, [r2, #1] - cmp r0, #0 - bne _08063AAC - ldrb r0, [r2, #2] - cmp r0, #0 - beq _08063AB0 -_08063AAC: - movs r0, #4 - b _08063ABE -_08063AB0: - movs r0, #0x80 - ands r0, r4 - cmp r0, #0 - bne _08063ABC - movs r0, #6 - b _08063ABE -_08063ABC: - movs r0, #5 -_08063ABE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetAI_ItemType - - thumb_func_start ShouldUseItem -ShouldUseItem: @ 0x08063AC4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - movs r0, #0 - mov sl, r0 - movs r7, #0 - ldr r0, _08063BAC - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - beq _08063AF6 - ldr r0, _08063BB0 - ldrb r0, [r0] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _08063AF6 - b _08063F60 -_08063AF6: - ldr r0, _08063BB0 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - ldr r5, _08063BB4 - cmp r0, #0 - bne _08063B08 - ldr r5, _08063BB8 -_08063B08: - movs r1, #0 - mov r8, r1 -_08063B0C: - movs r0, #0x64 - mov r2, r8 - muls r2, r0, r2 - adds r0, r2, #0 - adds r4, r5, r0 - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _08063B48 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - cmp r0, #0 - beq _08063B48 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - movs r1, #0xce - lsls r1, r1, #1 - cmp r0, r1 - beq _08063B48 - mov r0, sl - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 -_08063B48: - movs r0, #1 - add r8, r0 - mov r1, r8 - cmp r1, #5 - ble _08063B0C - movs r2, #0 - mov r8, r2 -_08063B56: - ldr r1, _08063BBC - mov r0, r8 - cmp r0, #0 - beq _08063B72 - ldr r0, [r1] - ldr r0, [r0, #0x18] - adds r0, #0x50 - ldrb r0, [r0] - mov r2, r8 - subs r0, r0, r2 - adds r0, #1 - cmp sl, r0 - ble _08063B72 - b _08063F54 -_08063B72: - ldr r0, [r1] - ldr r0, [r0, #0x18] - mov r2, r8 - lsls r1, r2, #1 - adds r0, #0x48 - adds r0, r0, r1 - ldrh r0, [r0] - mov sb, r0 - str r1, [sp] - cmp r0, #0 - bne _08063B8A - b _08063F54 -_08063B8A: - ldr r1, _08063BC0 - subs r0, #0xd - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - cmp r1, #0 - bne _08063B9A - b _08063F54 -_08063B9A: - mov r0, sb - cmp r0, #0xaf - bne _08063BCC - ldr r0, _08063BC4 - ldr r0, [r0] - ldr r1, _08063BC8 - adds r5, r0, r1 - b _08063BCE - .align 2, 0 -_08063BAC: .4byte gUnknown_2022C90 -_08063BB0: .4byte gUnknown_2023D08 -_08063BB4: .4byte gUnknown_20243E8 -_08063BB8: .4byte gUnknown_2024190 -_08063BBC: .4byte gUnknown_202414C -_08063BC0: .4byte gUnknown_82EEF14 -_08063BC4: .4byte gUnknown_3005AEC -_08063BC8: .4byte 0x00003214 -_08063BCC: - adds r5, r1, #0 -_08063BCE: - mov r2, sb - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - adds r1, r5, #0 - bl GetAI_ItemType - ldr r4, _08063C08 - ldrb r1, [r4] - lsrs r1, r1, #1 - ldr r3, _08063C0C - ldr r2, [r3] - adds r1, r1, r2 - adds r1, #0xc4 - strb r0, [r1] - ldrb r0, [r4] - lsrs r0, r0, #1 - ldr r1, [r3] - adds r0, r0, r1 - adds r0, #0xc4 - ldrb r0, [r0] - subs r0, #1 - cmp r0, #5 - bls _08063BFE - b _08063F08 -_08063BFE: - lsls r0, r0, #2 - ldr r1, _08063C10 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08063C08: .4byte gUnknown_2023D08 -_08063C0C: .4byte gUnknown_2024140 -_08063C10: .4byte _08063C14 -_08063C14: @ jump table - .4byte _08063C2C @ case 0 - .4byte _08063C58 @ case 1 - .4byte _08063CA0 @ case 2 - .4byte _08063DF8 @ case 3 - .4byte _08063ED8 @ case 4 - .4byte _08063F60 @ case 5 -_08063C2C: - ldr r2, _08063C50 - ldr r0, _08063C54 - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - ldrh r1, [r0, #0x2c] - ldrh r0, [r0, #0x28] - lsrs r1, r1, #2 - cmp r0, r1 - blo _08063C44 - b _08063F08 -_08063C44: - cmp r0, #0 - bne _08063C4A - b _08063F08 -_08063C4A: - movs r7, #1 - b _08063F0C - .align 2, 0 -_08063C50: .4byte gUnknown_2023D28 -_08063C54: .4byte gUnknown_2023D08 -_08063C58: - mov r0, sb - movs r1, #4 - movs r2, #4 - bl GetItemEffectParamOffset - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _08063C6C - b _08063F08 -_08063C6C: - ldr r2, _08063C98 - ldr r0, _08063C9C - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r1, r0, r2 - ldrh r2, [r1, #0x28] - cmp r2, #0 - bne _08063C80 - b _08063F08 -_08063C80: - ldrh r3, [r1, #0x2c] - lsrs r0, r3, #2 - cmp r2, r0 - blo _08063C4A - adds r0, r2, #0 - subs r0, r3, r0 - adds r1, r5, r4 - ldrb r1, [r1] - cmp r0, r1 - bgt _08063C96 - b _08063F08 -_08063C96: - b _08063C4A - .align 2, 0 -_08063C98: .4byte gUnknown_2023D28 -_08063C9C: .4byte gUnknown_2023D08 -_08063CA0: - ldr r3, _08063DEC - ldrb r0, [r3] - lsrs r0, r0, #1 - ldr r2, _08063DF0 - ldr r1, [r2] - adds r0, r0, r1 - adds r0, #0xc6 - movs r1, #0 - strb r1, [r0] - ldrb r1, [r5, #3] - movs r6, #0x20 - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08063CE4 - ldr r1, _08063DF4 - ldrb r4, [r3] - movs r0, #0x58 - muls r0, r4, r0 - adds r1, #0x4c - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - beq _08063CE4 - lsrs r1, r4, #1 - ldr r0, [r2] - adds r1, r1, r0 - adds r1, #0xc6 - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - movs r7, #1 -_08063CE4: - ldrb r1, [r5, #3] - movs r6, #0x10 - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08063D1E - ldr r1, _08063DF4 - ldrb r4, [r3] - movs r0, #0x58 - muls r0, r4, r0 - adds r1, #0x4c - adds r0, r0, r1 - ldr r1, [r0] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - bne _08063D0E - movs r0, #0x80 - ands r1, r0 - cmp r1, #0 - beq _08063D1E -_08063D0E: - lsrs r1, r4, #1 - ldr r0, [r2] - adds r1, r1, r0 - adds r1, #0xc6 - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - movs r7, #1 -_08063D1E: - ldrb r1, [r5, #3] - movs r6, #8 - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08063D50 - ldr r1, _08063DF4 - ldrb r4, [r3] - movs r0, #0x58 - muls r0, r4, r0 - adds r1, #0x4c - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08063D50 - lsrs r1, r4, #1 - ldr r0, [r2] - adds r1, r1, r0 - adds r1, #0xc6 - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - movs r7, #1 -_08063D50: - ldrb r1, [r5, #3] - movs r6, #4 - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08063D82 - ldr r1, _08063DF4 - ldrb r4, [r3] - movs r0, #0x58 - muls r0, r4, r0 - adds r1, #0x4c - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08063D82 - lsrs r1, r4, #1 - ldr r0, [r2] - adds r1, r1, r0 - adds r1, #0xc6 - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - movs r7, #1 -_08063D82: - ldrb r1, [r5, #3] - movs r6, #2 - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08063DB4 - ldr r1, _08063DF4 - ldrb r4, [r3] - movs r0, #0x58 - muls r0, r4, r0 - adds r1, #0x4c - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08063DB4 - lsrs r1, r4, #1 - ldr r0, [r2] - adds r1, r1, r0 - adds r1, #0xc6 - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - movs r7, #1 -_08063DB4: - ldrb r1, [r5, #3] - movs r4, #1 - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08063DC2 - b _08063F08 -_08063DC2: - ldr r1, _08063DF4 - ldrb r3, [r3] - movs r0, #0x58 - muls r0, r3, r0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _08063DDA - b _08063F08 -_08063DDA: - lsrs r1, r3, #1 - ldr r0, [r2] - adds r1, r1, r0 - adds r1, #0xc6 - ldrb r0, [r1] - orrs r0, r4 - strb r0, [r1] - b _08063C4A - .align 2, 0 -_08063DEC: .4byte gUnknown_2023D08 -_08063DF0: .4byte gUnknown_2024140 -_08063DF4: .4byte gUnknown_2023D28 -_08063DF8: - ldr r4, _08063ECC - ldrb r0, [r4] - lsrs r0, r0, #1 - ldr r3, _08063ED0 - ldr r1, [r3] - adds r0, r0, r1 - adds r0, #0xc6 - movs r1, #0 - strb r1, [r0] - ldr r1, _08063ED4 - ldrb r2, [r4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #0x16] - cmp r0, #0 - beq _08063F08 - ldrb r1, [r5] - movs r6, #0xf - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _08063E38 - lsrs r2, r2, #1 - ldr r0, [r3] - adds r2, r2, r0 - adds r2, #0xc6 - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] -_08063E38: - ldrb r1, [r5, #1] - movs r7, #0xf0 - adds r0, r7, #0 - ands r0, r1 - cmp r0, #0 - beq _08063E56 - ldrb r0, [r4] - lsrs r0, r0, #1 - ldr r1, [r3] - adds r0, r0, r1 - adds r0, #0xc6 - ldrb r1, [r0] - movs r2, #2 - orrs r1, r2 - strb r1, [r0] -_08063E56: - ldrb r1, [r5, #1] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _08063E72 - ldrb r0, [r4] - lsrs r0, r0, #1 - ldr r1, [r3] - adds r0, r0, r1 - adds r0, #0xc6 - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_08063E72: - ldrb r1, [r5, #2] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _08063E8E - ldrb r0, [r4] - lsrs r0, r0, #1 - ldr r1, [r3] - adds r0, r0, r1 - adds r0, #0xc6 - ldrb r1, [r0] - movs r2, #8 - orrs r1, r2 - strb r1, [r0] -_08063E8E: - ldrb r1, [r5, #2] - adds r0, r7, #0 - ands r0, r1 - cmp r0, #0 - beq _08063EAA - ldrb r0, [r4] - lsrs r0, r0, #1 - ldr r1, [r3] - adds r0, r0, r1 - adds r0, #0xc6 - ldrb r1, [r0] - movs r2, #0x20 - orrs r1, r2 - strb r1, [r0] -_08063EAA: - ldrb r1, [r5] - movs r0, #0x30 - ands r0, r1 - cmp r0, #0 - bne _08063EB6 - b _08063C4A -_08063EB6: - ldrb r0, [r4] - lsrs r0, r0, #1 - ldr r1, [r3] - adds r0, r0, r1 - adds r0, #0xc6 - ldrb r1, [r0] - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0] - b _08063C4A - .align 2, 0 -_08063ECC: .4byte gUnknown_2023D08 -_08063ED0: .4byte gUnknown_2024140 -_08063ED4: .4byte gUnknown_2023F60 -_08063ED8: - ldr r4, _08063F40 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r2, _08063F44 - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #0x16] - cmp r0, #0 - beq _08063F08 - ldr r0, _08063F48 - lsls r1, r3, #1 - adds r1, r1, r3 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #4] - cmp r0, #0 - bne _08063F08 - b _08063C4A -_08063F08: - cmp r7, #0 - beq _08063F54 -_08063F0C: - movs r0, #1 - movs r1, #1 - movs r2, #0 - bl BtlController_EmitTwoReturnValues - ldr r0, _08063F40 - ldrb r0, [r0] - lsrs r0, r0, #1 - ldr r1, _08063F4C - ldr r1, [r1] - lsls r0, r0, #1 - adds r0, r0, r1 - adds r0, #0xc0 - mov r1, sb - strb r1, [r0] - ldr r0, _08063F50 - ldr r0, [r0] - ldr r0, [r0, #0x18] - adds r0, #0x48 - ldr r2, [sp] - adds r0, r0, r2 - movs r1, #0 - strh r1, [r0] - adds r0, r7, #0 - b _08063F62 - .align 2, 0 -_08063F40: .4byte gUnknown_2023D08 -_08063F44: .4byte gUnknown_2023F60 -_08063F48: .4byte gUnknown_2023F38 -_08063F4C: .4byte gUnknown_2024140 -_08063F50: .4byte gUnknown_202414C -_08063F54: - movs r0, #1 - add r8, r0 - mov r1, r8 - cmp r1, #3 - bgt _08063F60 - b _08063B56 -_08063F60: - movs r0, #0 -_08063F62: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ShouldUseItem - - thumb_func_start sub_08063F74 -sub_08063F74: @ 0x08063F74 - bx lr - .align 2, 0 - thumb_func_end sub_08063F74 - - thumb_func_start sub_08063F78 -sub_08063F78: @ 0x08063F78 - ldr r1, _08063F88 - ldr r0, _08063F8C - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08063F90 - str r1, [r0] - bx lr - .align 2, 0 -_08063F88: .4byte gUnknown_3005AC0 -_08063F8C: .4byte gUnknown_2023D08 -_08063F90: .4byte sub_08063F94 - thumb_func_end sub_08063F78 - - thumb_func_start sub_08063F94 -sub_08063F94: @ 0x08063F94 - push {lr} - ldr r2, _08063FC8 - ldr r1, _08063FCC - ldr r0, _08063FD0 - ldrb r3, [r0] - lsls r0, r3, #2 - adds r0, r0, r1 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _08063FE0 - ldr r0, _08063FD4 - lsls r1, r3, #9 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0x38 - bhi _08063FDC - ldr r0, _08063FD8 - ldrb r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl _call_via_r0 - b _08063FE0 - .align 2, 0 -_08063FC8: .4byte gUnknown_2023D0C -_08063FCC: .4byte gUnknown_82FACB4 -_08063FD0: .4byte gUnknown_2023D08 -_08063FD4: .4byte gUnknown_2022D08 -_08063FD8: .4byte gUnknown_82ED13C -_08063FDC: - bl LinkOpponentBufferExecCompleted -_08063FE0: - pop {r0} - bx r0 - thumb_func_end sub_08063F94 - - thumb_func_start sub_08063FE4 -sub_08063FE4: @ 0x08063FE4 - push {lr} - ldr r2, _0806400C - ldr r1, _08064010 - ldr r0, _08064014 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _08064018 - cmp r1, r0 - bne _08064008 - bl LinkOpponentBufferExecCompleted -_08064008: - pop {r0} - bx r0 - .align 2, 0 -_0806400C: .4byte gUnknown_20205AC -_08064010: .4byte gUnknown_2023E88 -_08064014: .4byte gUnknown_2023D08 -_08064018: .4byte sub_08007140 - thumb_func_end sub_08063FE4 - - thumb_func_start sub_0806401C -sub_0806401C: @ 0x0806401C - push {lr} - ldr r2, _08064044 - ldr r1, _08064048 - ldr r0, _0806404C - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _08064050 - cmp r1, r0 - bne _08064040 - bl LinkOpponentBufferExecCompleted -_08064040: - pop {r0} - bx r0 - .align 2, 0 -_08064044: .4byte gUnknown_20205AC -_08064048: .4byte gUnknown_2023E88 -_0806404C: .4byte gUnknown_2023D08 -_08064050: .4byte sub_08007140 - thumb_func_end sub_0806401C - - thumb_func_start sub_08064054 -sub_08064054: @ 0x08064054 - push {r4, r5, r6, lr} - ldr r5, _080640AC - ldr r6, _080640B0 - ldr r4, _080640B4 - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r2, r0, #2 - adds r0, r5, #0 - adds r0, #0x1c - adds r0, r2, r0 - ldr r1, [r0] - ldr r0, _080640B8 - cmp r1, r0 - bne _080640A6 - adds r0, r2, r5 - ldrh r0, [r0, #6] - bl FreeTrainerFrontPicPalette - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - bl FreeSpriteOamMatrix - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - bl DestroySprite - bl LinkOpponentBufferExecCompleted -_080640A6: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080640AC: .4byte gUnknown_20205AC -_080640B0: .4byte gUnknown_2023E88 -_080640B4: .4byte gUnknown_2023D08 -_080640B8: .4byte sub_08007140 - thumb_func_end sub_08064054 - - thumb_func_start sub_080640BC -sub_080640BC: @ 0x080640BC - push {r4, lr} - ldr r4, _080640FC - ldr r1, [r4] - ldr r3, _08064100 - ldrb r0, [r3] - ldr r2, [r1, #4] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r0, [r1, #9] - subs r0, #1 - strb r0, [r1, #9] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080640F4 - ldr r0, [r4] - ldrb r1, [r3] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0 - strb r1, [r0, #9] - bl LinkOpponentBufferExecCompleted -_080640F4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080640FC: .4byte gUnknown_2024174 -_08064100: .4byte gUnknown_2023D08 - thumb_func_end sub_080640BC - - thumb_func_start sub_08064104 -sub_08064104: @ 0x08064104 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r0, #0 - mov r8, r0 - movs r4, #0 - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08064130 - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08064168 - ldr r0, _08064154 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08064168 -_08064130: - ldr r2, _08064158 - ldr r1, _0806415C - ldr r3, _08064160 - ldrb r0, [r3] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _08064164 - adds r7, r3, #0 - cmp r1, r0 - bne _080641A6 - b _080641AE - .align 2, 0 -_08064154: .4byte gUnknown_2022C90 -_08064158: .4byte gUnknown_20205AC -_0806415C: .4byte gUnknown_3005AD0 -_08064160: .4byte gUnknown_2023D08 -_08064164: .4byte sub_08007140 -_08064168: - ldr r3, _08064268 - ldr r6, _0806426C - ldr r2, _08064270 - ldrb r4, [r2] - adds r0, r4, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r5, r3, #0 - adds r5, #0x1c - adds r0, r0, r5 - ldr r3, [r0] - ldr r0, _08064274 - adds r7, r2, #0 - cmp r3, r0 - bne _080641A4 - movs r0, #2 - eors r4, r0 - adds r0, r4, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r0, [r0] - cmp r0, r3 - bne _080641A4 - movs r1, #1 - mov r8, r1 -_080641A4: - movs r4, #1 -_080641A6: - mov r0, r8 - cmp r0, #0 - bne _080641AE - b _080642F8 -_080641AE: - cmp r4, #0 - bne _080641C2 - ldrb r1, [r7] - movs r0, #2 - eors r0, r1 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08064280 -_080641C2: - ldr r1, _08064278 - mov ip, r1 - ldr r0, [r1] - ldr r7, _08064270 - ldrb r2, [r7] - ldr r3, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r4, r0, r3 - ldrb r1, [r4, #1] - movs r5, #1 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - bne _080641E4 - b _080642F8 -_080641E4: - movs r6, #2 - adds r1, r6, #0 - eors r1, r2 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0, #1] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _080642F8 - ldrb r1, [r4] - movs r3, #0x7f - adds r0, r3, #0 - ands r0, r1 - strb r0, [r4] - mov r1, ip - ldr r0, [r1] - ldrb r2, [r7] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #1] - movs r4, #2 - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r2 - strb r0, [r1, #1] - mov r0, ip - ldr r2, [r0] - ldrb r0, [r7] - adds r1, r6, #0 - eors r1, r0 - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - ands r3, r1 - strb r3, [r0] - mov r1, ip - ldr r2, [r1] - ldrb r0, [r7] - adds r1, r6, #0 - eors r1, r0 - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #1] - ands r4, r1 - strb r4, [r0, #1] - ldr r4, _0806427C - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl FreeSpritePaletteByTag - b _080642D6 - .align 2, 0 -_08064268: .4byte gUnknown_20205AC -_0806426C: .4byte gUnknown_3005AD0 -_08064270: .4byte gUnknown_2023D08 -_08064274: .4byte sub_08007140 -_08064278: .4byte gUnknown_2024174 -_0806427C: .4byte 0x000027F9 -_08064280: - ldr r3, _08064304 - ldr r0, [r3] - ldrb r1, [r7] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, r0, r2 - ldrb r1, [r2, #1] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080642F8 - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - ldr r0, [r3] - ldrb r2, [r7] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #1] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #1] - ldrb r0, [r7] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bne _080642D6 - ldr r4, _08064308 - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl FreeSpritePaletteByTag -_080642D6: - ldr r0, _08064304 - ldr r0, [r0] - ldr r3, _0806430C - ldrb r1, [r3] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #3 - strb r1, [r0, #9] - ldr r1, _08064310 - ldrb r0, [r3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08064314 - str r1, [r0] -_080642F8: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08064304: .4byte gUnknown_2024174 -_08064308: .4byte 0x000027F9 -_0806430C: .4byte gUnknown_2023D08 -_08064310: .4byte gUnknown_3005AC0 -_08064314: .4byte sub_080640BC - thumb_func_end sub_08064104 - - thumb_func_start sub_08064318 -sub_08064318: @ 0x08064318 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - movs r0, #0 - mov sl, r0 - ldr r5, _080644F8 - ldr r0, [r5] - ldr r4, _080644FC - ldrb r2, [r4] - ldr r1, [r0, #4] - lsls r3, r2, #1 - adds r0, r3, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r1, [r0] - movs r6, #0xc4 - lsls r6, r6, #1 - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - bne _0806435A - ldr r0, _08064500 - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _08064504 - adds r1, r1, r0 - adds r0, r2, #0 - bl sub_08172CD4 -_0806435A: - ldr r0, _08064508 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08064398 - ldr r2, [r5] - ldrb r1, [r4] - movs r0, #2 - adds r3, r0, #0 - eors r3, r1 - ldr r1, [r2, #4] - lsls r2, r3, #1 - adds r0, r2, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r1, [r0] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - bne _08064398 - ldr r0, _08064500 - adds r0, r2, r0 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _08064504 - adds r1, r1, r0 - adds r0, r3, #0 - bl sub_08172CD4 -_08064398: - ldr r3, _080644F8 - ldr r0, [r3] - ldr r2, _080644FC - ldrb r5, [r2] - ldr r4, [r0, #4] - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r6, r0, r4 - ldrb r1, [r6] - movs r0, #8 - mov ip, r0 - ands r0, r1 - mov r8, r3 - mov sb, r2 - cmp r0, #0 - bne _0806447C - movs r7, #2 - adds r1, r7, #0 - eors r1, r5 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r1, [r0] - mov r0, ip - ands r0, r1 - cmp r0, #0 - bne _0806447C - ldrb r1, [r6, #1] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0806445E - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0806442E - ldr r0, _08064508 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _0806442E - ldr r4, _0806450C - mov r1, sb - ldrb r0, [r1] - adds r1, r7, #0 - eors r1, r0 - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, _08064500 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _08064504 - adds r1, r1, r2 - movs r2, #0 - bl UpdateHealthboxAttribute - mov r1, sb - ldrb r0, [r1] - eors r0, r7 - bl sub_08076320 - mov r1, sb - ldrb r0, [r1] - eors r0, r7 - adds r0, r0, r4 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible -_0806442E: - ldr r5, _0806450C - ldr r4, _080644FC - ldrb r1, [r4] - adds r0, r1, r5 - ldrb r0, [r0] - ldr r2, _08064500 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _08064504 - adds r1, r1, r2 - movs r2, #0 - bl UpdateHealthboxAttribute - ldrb r0, [r4] - bl sub_08076320 - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible -_0806445E: - ldr r4, _080644F8 - ldr r0, [r4] - ldr r3, _080644FC - ldrb r1, [r3] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #1] - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0, #1] - mov r8, r4 - mov sb, r3 -_0806447C: - mov r1, r8 - ldr r0, [r1] - mov r1, sb - ldrb r2, [r1] - ldr r3, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0, #1] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0x80 - bne _0806453E - movs r1, #2 - eors r1, r2 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0, #1] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _0806453E - bl IsCryPlayingOrClearCrySongs - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806453E - mov r1, r8 - ldr r0, [r1] - mov r1, sb - ldrb r2, [r1] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #1] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _08064520 - ldr r0, _08064508 - ldr r0, [r0] - movs r1, #0x42 - ands r0, r1 - cmp r0, #0x42 - bne _08064514 - adds r0, r2, #0 - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08064520 - ldr r0, _08064510 - bl m4aMPlayContinue - b _08064520 - .align 2, 0 -_080644F8: .4byte gUnknown_2024174 -_080644FC: .4byte gUnknown_2023D08 -_08064500: .4byte gUnknown_2023D12 -_08064504: .4byte gUnknown_20243E8 -_08064508: .4byte gUnknown_2022C90 -_0806450C: .4byte gUnknown_3005AD0 -_08064510: .4byte gUnknown_30074D0 -_08064514: - ldr r0, _080646B4 - ldr r1, _080646B8 - movs r2, #0x80 - lsls r2, r2, #1 - bl m4aMPlayVolumeControl -_08064520: - ldr r0, _080646BC - ldr r2, [r0] - ldr r0, _080646C0 - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #1] - movs r2, #0x20 - orrs r1, r2 - strb r1, [r0, #1] - movs r0, #1 - mov sl, r0 -_0806453E: - mov r1, sl - cmp r1, #0 - bne _08064546 - b _080646A4 -_08064546: - ldr r2, _080646C4 - ldr r0, _080646C8 - ldr r5, _080646C0 - ldrb r3, [r5] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r4, [r0] - ldr r0, _080646CC - cmp r4, r0 - beq _08064566 - b _080646A4 -_08064566: - ldr r0, _080646D0 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - cmp r0, r4 - beq _0806457C - b _080646A4 -_0806457C: - ldr r0, _080646D4 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080645C6 - adds r0, r3, #0 - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bne _080645C6 - ldr r3, _080646BC - ldr r0, [r3] - ldrb r2, [r5] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #9] - adds r0, #1 - strb r0, [r1, #9] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080646A4 - ldr r0, [r3] - ldrb r1, [r5] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0 - strb r1, [r0, #9] -_080645C6: - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0806461E - ldr r0, _080646D4 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _0806461E - ldr r1, _080646C8 - ldr r5, _080646C0 - ldrb r0, [r5] - movs r4, #2 - eors r0, r4 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080646C4 - adds r0, r0, r1 - bl DestroySprite - ldrb r0, [r5] - eors r4, r0 - ldr r1, _080646D8 - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080646DC - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl SetBattlerShadowSpriteCallback -_0806461E: - ldr r1, _080646C8 - ldr r4, _080646C0 - ldrb r0, [r4] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080646C4 - adds r0, r0, r1 - bl DestroySprite - ldrb r5, [r4] - ldr r1, _080646D8 - lsls r0, r5, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080646DC - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r5, #0 - bl SetBattlerShadowSpriteCallback - ldr r3, _080646BC - ldr r0, [r3] - ldr r2, [r0, #8] - ldrb r1, [r2, #9] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #9] - ldr r0, [r3] - ldrb r2, [r4] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #1] - movs r0, #0x21 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #1] - ldr r0, [r3] - ldrb r2, [r4] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #1] - movs r0, #0x7f - ands r0, r2 - strb r0, [r1, #1] - ldr r1, _080646E0 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _080646E4 - str r1, [r0] -_080646A4: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080646B4: .4byte gUnknown_30074D0 -_080646B8: .4byte 0x0000FFFF -_080646BC: .4byte gUnknown_2024174 -_080646C0: .4byte gUnknown_2023D08 -_080646C4: .4byte gUnknown_20205AC -_080646C8: .4byte gUnknown_3005ADC -_080646CC: .4byte sub_08007140 -_080646D0: .4byte gUnknown_2023E88 -_080646D4: .4byte gUnknown_2022C90 -_080646D8: .4byte gUnknown_2023D12 -_080646DC: .4byte gUnknown_20243E8 -_080646E0: .4byte gUnknown_3005AC0 -_080646E4: .4byte sub_08064104 - thumb_func_end sub_08064318 - - thumb_func_start sub_080646E8 -sub_080646E8: @ 0x080646E8 - push {r4, r5, r6, r7, lr} - ldr r4, _08064744 - ldr r0, _08064748 - ldr r7, _0806474C - ldrb r3, [r7] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r2, r0, #2 - adds r0, r4, #0 - adds r0, #0x1c - adds r0, r2, r0 - ldr r1, [r0] - ldr r0, _08064750 - cmp r1, r0 - bne _0806479A - adds r0, r2, r4 - movs r1, #0x24 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _0806479A - ldr r6, _08064754 - ldr r0, [r6] - ldr r1, [r0, #4] - lsls r4, r3, #1 - adds r0, r4, r3 - lsls r0, r0, #2 - adds r2, r0, r1 - ldrb r5, [r2] - movs r0, #0x80 - ands r0, r5 - cmp r0, #0 - bne _08064760 - ldr r0, _08064758 - adds r0, r4, r0 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _0806475C - adds r1, r1, r0 - adds r0, r3, #0 - bl sub_08172CD4 - b _0806479A - .align 2, 0 -_08064744: .4byte gUnknown_20205AC -_08064748: .4byte gUnknown_2023E88 -_0806474C: .4byte gUnknown_2023D08 -_08064750: .4byte sub_08007140 -_08064754: .4byte gUnknown_2024174 -_08064758: .4byte gUnknown_2023D12 -_0806475C: .4byte gUnknown_20243E8 -_08064760: - ldrb r1, [r2, #1] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0806479A - movs r0, #0x7f - ands r0, r5 - strb r0, [r2] - ldr r0, [r6] - ldrb r2, [r7] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #1] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #1] - ldr r4, _080647A0 - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl FreeSpritePaletteByTag - bl LinkOpponentBufferExecCompleted -_0806479A: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080647A0: .4byte 0x000027F9 - thumb_func_end sub_080646E8 - - thumb_func_start sub_080647A4 -sub_080647A4: @ 0x080647A4 - push {r4, r5, r6, lr} - ldr r6, _080647E4 - ldrb r0, [r6] - ldr r5, _080647E8 - adds r1, r0, r5 - ldrb r1, [r1] - movs r2, #0 - movs r3, #0 - bl MoveBattleBar - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible - lsls r4, r4, #0x10 - asrs r1, r4, #0x10 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _080647EC - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r0, [r0] - movs r2, #0 - bl sub_080726F4 - b _080647F0 - .align 2, 0 -_080647E4: .4byte gUnknown_2023D08 -_080647E8: .4byte gUnknown_3005AD0 -_080647EC: - bl LinkOpponentBufferExecCompleted -_080647F0: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080647A4 - - thumb_func_start sub_080647F8 -sub_080647F8: @ 0x080647F8 - push {lr} - ldr r2, _0806482C - ldr r0, _08064830 - ldr r1, _08064834 - ldrb r3, [r1] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1f - cmp r0, #0 - bne _08064826 - ldr r0, _08064838 - adds r0, r3, r0 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible - bl LinkOpponentBufferExecCompleted -_08064826: - pop {r0} - bx r0 - .align 2, 0 -_0806482C: .4byte gUnknown_20205AC -_08064830: .4byte gUnknown_2023E88 -_08064834: .4byte gUnknown_2023D08 -_08064838: .4byte gUnknown_3005AD0 - thumb_func_end sub_080647F8 - - thumb_func_start sub_0806483C -sub_0806483C: @ 0x0806483C - push {r4, r5, r6, lr} - ldr r0, _0806489C - ldr r0, [r0] - ldr r6, _080648A0 - ldrb r2, [r6] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08064896 - ldr r5, _080648A4 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _080648A8 - adds r0, r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - ldrb r0, [r6] - bl HideBattlerShadowSprite - ldr r1, _080648AC - ldrb r0, [r6] - adds r0, r0, r1 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible - bl LinkOpponentBufferExecCompleted -_08064896: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0806489C: .4byte gUnknown_2024174 -_080648A0: .4byte gUnknown_2023D08 -_080648A4: .4byte gUnknown_2023E88 -_080648A8: .4byte gUnknown_20205AC -_080648AC: .4byte gUnknown_3005AD0 - thumb_func_end sub_0806483C - - thumb_func_start sub_080648B0 -sub_080648B0: @ 0x080648B0 - push {lr} - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080648C2 - bl LinkOpponentBufferExecCompleted -_080648C2: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080648B0 - - thumb_func_start sub_080648C8 -sub_080648C8: @ 0x080648C8 - push {r4, lr} - ldr r1, _08064904 - ldr r0, _08064908 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - ldr r2, _0806490C - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, r0, r2 - movs r1, #0x30 - ldrsh r0, [r4, r1] - cmp r0, #0x20 - bne _08064914 - movs r3, #0 - movs r0, #0 - strh r0, [r4, #0x30] - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - subs r0, #5 - ands r0, r1 - strb r0, [r2] - ldr r0, _08064910 - strb r3, [r0] - bl LinkOpponentBufferExecCompleted - b _0806493E - .align 2, 0 -_08064904: .4byte gUnknown_2023E88 -_08064908: .4byte gUnknown_2023D08 -_0806490C: .4byte gUnknown_20205AC -_08064910: .4byte gUnknown_202415D -_08064914: - ldrh r0, [r4, #0x30] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _08064938 - adds r3, r4, #0 - adds r3, #0x3e - ldrb r2, [r3] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_08064938: - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] -_0806493E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080648C8 - - thumb_func_start sub_08064944 -sub_08064944: @ 0x08064944 - push {r4, lr} - ldr r2, _08064998 - ldr r0, _0806499C - ldr r4, _080649A0 - ldrb r3, [r4] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _080649A4 - cmp r1, r0 - bne _08064990 - ldr r0, _080649A8 - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r3, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08064984 - adds r0, r3, #0 - adds r1, r3, #0 - adds r2, r3, #0 - movs r3, #6 - bl InitAndLaunchSpecialAnimation -_08064984: - ldr r0, _080649AC - ldrb r1, [r4] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, _080649B0 - str r0, [r1] -_08064990: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08064998: .4byte gUnknown_20205AC -_0806499C: .4byte gUnknown_3005AD0 -_080649A0: .4byte gUnknown_2023D08 -_080649A4: .4byte sub_08007140 -_080649A8: .4byte gUnknown_2024174 -_080649AC: .4byte gUnknown_3005AC0 -_080649B0: .4byte sub_080649B4 - thumb_func_end sub_08064944 - - thumb_func_start sub_080649B4 -sub_080649B4: @ 0x080649B4 - push {r4, lr} - ldr r0, _08064A14 - ldr r0, [r0] - ldr r4, _08064A18 - ldrb r1, [r4] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08064A0E - bl IsCryPlayingOrClearCrySongs - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08064A0E - ldr r2, _08064A1C - ldr r1, _08064A20 - ldrb r0, [r4] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _08064A24 - cmp r1, r0 - beq _080649FE - ldr r0, _08064A28 - cmp r1, r0 - bne _08064A0E -_080649FE: - ldr r0, _08064A2C - ldr r1, _08064A30 - movs r2, #0x80 - lsls r2, r2, #1 - bl m4aMPlayVolumeControl - bl LinkOpponentBufferExecCompleted -_08064A0E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08064A14: .4byte gUnknown_2024174 -_08064A18: .4byte gUnknown_2023D08 -_08064A1C: .4byte gUnknown_20205AC -_08064A20: .4byte gUnknown_2023E88 -_08064A24: .4byte sub_08007140 -_08064A28: .4byte sub_080394FC -_08064A2C: .4byte gUnknown_30074D0 -_08064A30: .4byte 0x0000FFFF - thumb_func_end sub_080649B4 - - thumb_func_start sub_08064A34 -sub_08064A34: @ 0x08064A34 - push {r4, r5, r6, r7, lr} - ldr r4, _08064AF8 - ldr r0, [r4] - ldr r5, _08064AFC - ldrb r2, [r5] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r3, r0, r1 - ldrb r1, [r3, #1] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08064AF0 - ldr r7, _08064B00 - ldr r6, _08064B04 - adds r0, r2, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r7, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, [r0] - ldr r0, _08064B08 - cmp r1, r0 - bne _08064AF0 - ldrb r1, [r3] - movs r0, #0x7f - ands r0, r1 - strb r0, [r3] - ldr r0, [r4] - ldrb r2, [r5] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #1] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #1] - ldr r4, _08064B0C - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl FreeSpritePaletteByTag - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - movs r1, #0 - bl StartSpriteAnim - ldr r4, _08064B10 - ldrb r1, [r5] - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, _08064B14 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _08064B18 - adds r1, r1, r2 - movs r2, #0 - bl UpdateHealthboxAttribute - ldrb r0, [r5] - bl sub_08076320 - ldrb r0, [r5] - adds r0, r0, r4 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible - ldrb r0, [r5] - bl CopyBattleSpriteInvisibility - ldr r1, _08064B1C - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08064B20 - str r1, [r0] -_08064AF0: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08064AF8: .4byte gUnknown_2024174 -_08064AFC: .4byte gUnknown_2023D08 -_08064B00: .4byte gUnknown_20205AC -_08064B04: .4byte gUnknown_2023E88 -_08064B08: .4byte sub_08007140 -_08064B0C: .4byte 0x000027F9 -_08064B10: .4byte gUnknown_3005AD0 -_08064B14: .4byte gUnknown_2023D12 -_08064B18: .4byte gUnknown_20243E8 -_08064B1C: .4byte gUnknown_3005AC0 -_08064B20: .4byte sub_08064944 - thumb_func_end sub_08064A34 - - thumb_func_start sub_08064B24 -sub_08064B24: @ 0x08064B24 - push {r4, r5, r6, lr} - ldr r6, _08064BC8 - ldr r0, [r6] - ldr r5, _08064BCC - ldrb r2, [r5] - ldr r1, [r0, #4] - lsls r3, r2, #1 - adds r0, r3, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x88 - ands r0, r1 - cmp r0, #0 - bne _08064B56 - ldr r0, _08064BD0 - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _08064BD4 - adds r1, r1, r0 - adds r0, r2, #0 - bl sub_08172CD4 -_08064B56: - ldr r4, _08064BD8 - ldr r0, _08064BDC - ldrb r2, [r5] - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r3, r0, #2 - adds r0, r4, #0 - adds r0, #0x1c - adds r0, r3, r0 - ldr r1, [r0] - ldr r0, _08064BE0 - cmp r1, r0 - bne _08064BC0 - ldr r0, [r6] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - bne _08064BC0 - adds r0, r3, r4 - bl DestroySprite - ldrb r4, [r5] - ldr r1, _08064BD0 - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08064BD4 - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl SetBattlerShadowSpriteCallback - ldr r1, _08064BE4 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08064BE8 - str r1, [r0] -_08064BC0: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08064BC8: .4byte gUnknown_2024174 -_08064BCC: .4byte gUnknown_2023D08 -_08064BD0: .4byte gUnknown_2023D12 -_08064BD4: .4byte gUnknown_20243E8 -_08064BD8: .4byte gUnknown_20205AC -_08064BDC: .4byte gUnknown_3005ADC -_08064BE0: .4byte sub_08007140 -_08064BE4: .4byte gUnknown_3005AC0 -_08064BE8: .4byte sub_08064A34 - thumb_func_end sub_08064B24 - - thumb_func_start sub_08064BEC -sub_08064BEC: @ 0x08064BEC - push {lr} - ldr r0, _08064C14 - ldr r2, [r0] - ldr r0, _08064C18 - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _08064C0E - bl LinkOpponentBufferExecCompleted -_08064C0E: - pop {r0} - bx r0 - .align 2, 0 -_08064C14: .4byte gUnknown_2024174 -_08064C18: .4byte gUnknown_2023D08 - thumb_func_end sub_08064BEC - - thumb_func_start sub_08064C1C -sub_08064C1C: @ 0x08064C1C - push {lr} - ldr r0, _08064C44 - ldr r2, [r0] - ldr r0, _08064C48 - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _08064C3E - bl LinkOpponentBufferExecCompleted -_08064C3E: - pop {r0} - bx r0 - .align 2, 0 -_08064C44: .4byte gUnknown_2024174 -_08064C48: .4byte gUnknown_2023D08 - thumb_func_end sub_08064C1C - - thumb_func_start LinkOpponentBufferExecCompleted -LinkOpponentBufferExecCompleted: @ 0x08064C4C - push {r4, lr} - sub sp, #4 - ldr r1, _08064C8C - ldr r4, _08064C90 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08064C94 - str r1, [r0] - ldr r0, _08064C98 - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _08064CA0 - bl GetMultiplayerId - mov r1, sp - strb r0, [r1] - movs r0, #2 - movs r1, #4 - mov r2, sp - bl PrepareBufferDataTransferLink - ldr r1, _08064C9C - ldrb r0, [r4] - lsls r0, r0, #9 - adds r0, r0, r1 - movs r1, #0x38 - strb r1, [r0] - b _08064CB2 - .align 2, 0 -_08064C8C: .4byte gUnknown_3005AC0 -_08064C90: .4byte gUnknown_2023D08 -_08064C94: .4byte sub_08063F94 -_08064C98: .4byte gUnknown_2022C90 -_08064C9C: .4byte gUnknown_2022D08 -_08064CA0: - ldr r2, _08064CBC - ldr r1, _08064CC0 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - ldr r0, [r2] - bics r0, r1 - str r0, [r2] -_08064CB2: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08064CBC: .4byte gUnknown_2023D0C -_08064CC0: .4byte gUnknown_82FACB4 - thumb_func_end LinkOpponentBufferExecCompleted - - thumb_func_start sub_08064CC4 -sub_08064CC4: @ 0x08064CC4 - push {r4, r5, r6, lr} - sub sp, #0x100 - movs r6, #0 - ldr r1, _08064CF0 - ldr r0, _08064CF4 - ldrb r2, [r0] - lsls r0, r2, #9 - adds r1, #2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, #0 - bne _08064CFC - ldr r0, _08064CF8 - lsls r1, r2, #1 - adds r1, r1, r0 - ldrb r0, [r1] - mov r1, sp - bl CopyLinkOpponentMonData - adds r6, r0, #0 - b _08064D1E - .align 2, 0 -_08064CF0: .4byte gUnknown_2022D08 -_08064CF4: .4byte gUnknown_2023D08 -_08064CF8: .4byte gUnknown_2023D12 -_08064CFC: - ldrb r4, [r1] - movs r5, #0 -_08064D00: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _08064D16 - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - mov r2, sp - adds r1, r2, r6 - bl CopyLinkOpponentMonData - adds r6, r6, r0 -_08064D16: - lsrs r4, r4, #1 - adds r5, #1 - cmp r5, #5 - ble _08064D00 -_08064D1E: - lsls r1, r6, #0x10 - lsrs r1, r1, #0x10 - movs r0, #1 - mov r2, sp - bl BtlController_EmitDataTransfer - bl LinkOpponentBufferExecCompleted - add sp, #0x100 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08064CC4 - - thumb_func_start CopyLinkOpponentMonData -CopyLinkOpponentMonData: @ 0x08064D38 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x90 - adds r7, r1, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r6, #0 - ldr r2, _08064D6C - ldr r3, _08064D70 - ldrb r0, [r3] - lsls r0, r0, #9 - adds r1, r2, #1 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0x3b - bls _08064D62 - bl _080654CE -_08064D62: - lsls r0, r0, #2 - ldr r1, _08064D74 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08064D6C: .4byte gUnknown_2022D08 -_08064D70: .4byte gUnknown_2023D08 -_08064D74: .4byte _08064D78 -_08064D78: @ jump table - .4byte _08064E68 @ case 0 - .4byte _0806508C @ case 1 - .4byte _0806509C @ case 2 - .4byte _080650AC @ case 3 - .4byte _08065114 @ case 4 - .4byte _08065114 @ case 5 - .4byte _08065114 @ case 6 - .4byte _08065114 @ case 7 - .4byte _08065130 @ case 8 - .4byte _0806516C @ case 9 - .4byte _0806516C @ case 10 - .4byte _0806516C @ case 11 - .4byte _0806516C @ case 12 - .4byte _080654CE @ case 13 - .4byte _080654CE @ case 14 - .4byte _080654CE @ case 15 - .4byte _080654CE @ case 16 - .4byte _08065188 @ case 17 - .4byte _08065198 @ case 18 - .4byte _080651C8 @ case 19 - .4byte _080651D8 @ case 20 - .4byte _080651E8 @ case 21 - .4byte _080651F8 @ case 22 - .4byte _08065208 @ case 23 - .4byte _08065218 @ case 24 - .4byte _08065228 @ case 25 - .4byte _08065238 @ case 26 - .4byte _08065248 @ case 27 - .4byte _08065258 @ case 28 - .4byte _08065268 @ case 29 - .4byte _08065278 @ case 30 - .4byte _08065288 @ case 31 - .4byte _080652D8 @ case 32 - .4byte _080652E8 @ case 33 - .4byte _080652F8 @ case 34 - .4byte _08065308 @ case 35 - .4byte _08065318 @ case 36 - .4byte _08065328 @ case 37 - .4byte _08065338 @ case 38 - .4byte _08065348 @ case 39 - .4byte _08065358 @ case 40 - .4byte _0806538C @ case 41 - .4byte _0806539C @ case 42 - .4byte _080653AC @ case 43 - .4byte _080653BC @ case 44 - .4byte _080653CC @ case 45 - .4byte _080653DC @ case 46 - .4byte _080653EC @ case 47 - .4byte _080653FC @ case 48 - .4byte _0806541C @ case 49 - .4byte _0806542C @ case 50 - .4byte _0806543C @ case 51 - .4byte _0806544C @ case 52 - .4byte _0806545C @ case 53 - .4byte _0806546C @ case 54 - .4byte _0806547C @ case 55 - .4byte _0806548C @ case 56 - .4byte _0806549C @ case 57 - .4byte _080654AC @ case 58 - .4byte _080654BC @ case 59 -_08064E68: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _0806507C - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - mov r1, sp - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0xc - bl GetMonData - mov r1, sp - strh r0, [r1, #0x2e] - movs r6, #0 - add r0, sp, #0x24 - mov sb, r0 - movs r1, #0x3b - add r1, sp - mov sl, r1 - mov r2, sp - adds r2, #0x2b - str r2, [sp, #0x80] - mov r0, sp - adds r0, #0x2a - str r0, [sp, #0x7c] - mov r1, sp - adds r1, #0x68 - str r1, [sp, #0x8c] - adds r2, #5 - str r2, [sp, #0x84] - adds r0, #0x12 - str r0, [sp, #0x88] - mov r8, r4 - add r4, sp, #0xc -_08064EB4: - adds r1, r6, #0 - adds r1, #0xd - mov r0, r8 - bl GetMonData - strh r0, [r4] - adds r1, r6, #0 - adds r1, #0x11 - mov r0, r8 - bl GetMonData - mov r2, sb - adds r1, r2, r6 - strb r0, [r1] - adds r4, #2 - adds r6, #1 - cmp r6, #3 - ble _08064EB4 - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _0806507C - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x15 - bl GetMonData - mov r1, sl - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x20 - bl GetMonData - ldr r2, [sp, #0x80] - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0x19 - bl GetMonData - str r0, [sp, #0x44] - adds r0, r4, #0 - movs r1, #0x27 - bl GetMonData - mov r3, sp - movs r5, #0x1f - ands r0, r5 - ldrb r2, [r3, #0x14] - movs r1, #0x20 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x14] - adds r0, r4, #0 - movs r1, #0x28 - bl GetMonData - mov r3, sp - movs r6, #0x1f - ands r0, r6 - lsls r0, r0, #5 - ldrh r2, [r3, #0x14] - ldr r1, _08065080 - ands r1, r2 - orrs r1, r0 - strh r1, [r3, #0x14] - adds r0, r4, #0 - movs r1, #0x29 - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, r0, #2 - ldrb r2, [r3, #0x15] - movs r1, #0x7d - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x15] - adds r0, r4, #0 - movs r1, #0x2a - bl GetMonData - movs r1, #0x1f - ands r1, r0 - lsls r1, r1, #0xf - ldr r0, [sp, #0x14] - ldr r2, _08065084 - ands r0, r2 - orrs r0, r1 - str r0, [sp, #0x14] - adds r0, r4, #0 - movs r1, #0x2b - bl GetMonData - mov r3, sp - ands r0, r6 - lsls r0, r0, #4 - ldrh r2, [r3, #0x16] - ldr r1, _08065088 - ands r1, r2 - orrs r1, r0 - strh r1, [r3, #0x16] - adds r0, r4, #0 - movs r1, #0x2c - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, r0, #1 - ldrb r2, [r3, #0x17] - movs r1, #0x3f - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x17] - adds r0, r4, #0 - movs r1, #0 - bl GetMonData - str r0, [sp, #0x48] - adds r0, r4, #0 - movs r1, #0x37 - bl GetMonData - str r0, [sp, #0x4c] - adds r0, r4, #0 - movs r1, #0x38 - bl GetMonData - ldr r1, [sp, #0x7c] - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - mov r1, sp - strh r0, [r1, #0x28] - adds r0, r4, #0 - movs r1, #0x3a - bl GetMonData - mov r1, sp - strh r0, [r1, #0x2c] - adds r0, r4, #0 - movs r1, #0x3b - bl GetMonData - mov r1, sp - strh r0, [r1, #2] - adds r0, r4, #0 - movs r1, #0x3c - bl GetMonData - mov r1, sp - strh r0, [r1, #4] - adds r0, r4, #0 - movs r1, #0x3d - bl GetMonData - mov r1, sp - strh r0, [r1, #6] - adds r0, r4, #0 - movs r1, #0x3e - bl GetMonData - mov r1, sp - strh r0, [r1, #8] - adds r0, r4, #0 - movs r1, #0x3f - bl GetMonData - mov r1, sp - strh r0, [r1, #0xa] - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - mov r3, sp - movs r1, #1 - ands r0, r1 - lsls r0, r0, #6 - ldrb r2, [r3, #0x17] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x17] - adds r0, r4, #0 - movs r1, #0x2e - bl GetMonData - mov r3, sp - lsls r0, r0, #7 - ldrb r2, [r3, #0x17] - movs r1, #0x7f - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x17] - adds r0, r4, #0 - movs r1, #1 - bl GetMonData - str r0, [sp, #0x54] - adds r0, r4, #0 - movs r1, #2 - ldr r2, [sp, #0x8c] - bl GetMonData - ldr r0, [sp, #0x84] - ldr r1, [sp, #0x8c] - bl StringCopy10 - adds r0, r4, #0 - movs r1, #7 - ldr r2, [sp, #0x88] - bl GetMonData - mov r2, sp - movs r6, #0 -_0806506C: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, #1 - cmp r6, #0x57 - bls _0806506C - b _080654CE - .align 2, 0 -_0806507C: .4byte gUnknown_20243E8 -_08065080: .4byte 0xFFFFFC1F -_08065084: .4byte 0xFFF07FFF -_08065088: .4byte 0xFFFFFE0F -_0806508C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065098 - adds r0, r0, r1 - movs r1, #0xb - b _08065406 - .align 2, 0 -_08065098: .4byte gUnknown_20243E8 -_0806509C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080650A8 - adds r0, r0, r1 - movs r1, #0xc - b _08065406 - .align 2, 0 -_080650A8: .4byte gUnknown_20243E8 -_080650AC: - movs r6, #0 - add r2, sp, #0x58 - mov sb, r2 - add r0, sp, #0x60 - mov sl, r0 - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _08065110 - adds r4, r1, r0 - mov r8, sb -_080650C2: - adds r1, r6, #0 - adds r1, #0xd - adds r0, r4, #0 - bl GetMonData - mov r1, r8 - strh r0, [r1] - adds r1, r6, #0 - adds r1, #0x11 - adds r0, r4, #0 - bl GetMonData - mov r2, sl - adds r1, r2, r6 - strb r0, [r1] - movs r0, #2 - add r8, r0 - adds r6, #1 - cmp r6, #3 - ble _080650C2 - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065110 - adds r0, r0, r1 - movs r1, #0x15 - bl GetMonData - mov r1, sb - strb r0, [r1, #0xc] - mov r2, sb - movs r6, #0 -_08065100: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, #1 - cmp r6, #0xf - bls _08065100 - b _080654CE - .align 2, 0 -_08065110: .4byte gUnknown_20243E8 -_08065114: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0806512C - adds r0, r0, r1 - ldrb r1, [r3] - lsls r1, r1, #9 - adds r2, #1 - adds r1, r1, r2 - ldrb r1, [r1] - adds r1, #9 - b _08065406 - .align 2, 0 -_0806512C: .4byte gUnknown_20243E8 -_08065130: - movs r6, #0 - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r2, _08065168 - mov r8, r2 -_0806513C: - adds r1, r6, #0 - adds r1, #0x11 - mov r2, r8 - adds r0, r4, r2 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, #1 - cmp r6, #3 - ble _0806513C - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065168 - adds r0, r0, r1 - movs r1, #0x15 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, #1 - b _080654CE - .align 2, 0 -_08065168: .4byte gUnknown_20243E8 -_0806516C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065184 - adds r0, r0, r1 - ldrb r1, [r3] - lsls r1, r1, #9 - adds r2, #1 - adds r1, r1, r2 - ldrb r1, [r1] - adds r1, #8 - b _080654C6 - .align 2, 0 -_08065184: .4byte gUnknown_20243E8 -_08065188: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065194 - adds r0, r0, r1 - movs r1, #1 - b _080651A2 - .align 2, 0 -_08065194: .4byte gUnknown_20243E8 -_08065198: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080651C4 - adds r0, r0, r1 - movs r1, #0x19 -_080651A2: - bl GetMonData - adds r1, r0, #0 - strb r1, [r7] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - lsrs r0, r0, #8 - strb r0, [r7, #1] - movs r0, #0xff - lsls r0, r0, #0x10 - ands r0, r1 - lsrs r0, r0, #0x10 - strb r0, [r7, #2] - movs r6, #3 - b _080654CE - .align 2, 0 -_080651C4: .4byte gUnknown_20243E8 -_080651C8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080651D4 - adds r0, r0, r1 - movs r1, #0x1a - b _080654C6 - .align 2, 0 -_080651D4: .4byte gUnknown_20243E8 -_080651D8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080651E4 - adds r0, r0, r1 - movs r1, #0x1b - b _080654C6 - .align 2, 0 -_080651E4: .4byte gUnknown_20243E8 -_080651E8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080651F4 - adds r0, r0, r1 - movs r1, #0x1c - b _080654C6 - .align 2, 0 -_080651F4: .4byte gUnknown_20243E8 -_080651F8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065204 - adds r0, r0, r1 - movs r1, #0x1d - b _080654C6 - .align 2, 0 -_08065204: .4byte gUnknown_20243E8 -_08065208: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065214 - adds r0, r0, r1 - movs r1, #0x1e - b _080654C6 - .align 2, 0 -_08065214: .4byte gUnknown_20243E8 -_08065218: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065224 - adds r0, r0, r1 - movs r1, #0x1f - b _080654C6 - .align 2, 0 -_08065224: .4byte gUnknown_20243E8 -_08065228: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065234 - adds r0, r0, r1 - movs r1, #0x20 - b _080654C6 - .align 2, 0 -_08065234: .4byte gUnknown_20243E8 -_08065238: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065244 - adds r0, r0, r1 - movs r1, #0x22 - b _080654C6 - .align 2, 0 -_08065244: .4byte gUnknown_20243E8 -_08065248: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065254 - adds r0, r0, r1 - movs r1, #0x23 - b _080654C6 - .align 2, 0 -_08065254: .4byte gUnknown_20243E8 -_08065258: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065264 - adds r0, r0, r1 - movs r1, #0x24 - b _080654C6 - .align 2, 0 -_08065264: .4byte gUnknown_20243E8 -_08065268: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065274 - adds r0, r0, r1 - movs r1, #0x25 - b _080654C6 - .align 2, 0 -_08065274: .4byte gUnknown_20243E8 -_08065278: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065284 - adds r0, r0, r1 - movs r1, #0x26 - b _080654C6 - .align 2, 0 -_08065284: .4byte gUnknown_20243E8 -_08065288: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _080652D4 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x27 - bl GetMonData - strb r0, [r7] - adds r0, r4, #0 - movs r1, #0x28 - bl GetMonData - strb r0, [r7, #1] - adds r0, r4, #0 - movs r1, #0x29 - bl GetMonData - strb r0, [r7, #2] - adds r0, r4, #0 - movs r1, #0x2a - bl GetMonData - strb r0, [r7, #3] - adds r0, r4, #0 - movs r1, #0x2b - bl GetMonData - strb r0, [r7, #4] - adds r0, r4, #0 - movs r1, #0x2c - bl GetMonData - strb r0, [r7, #5] - movs r6, #6 - b _080654CE - .align 2, 0 -_080652D4: .4byte gUnknown_20243E8 -_080652D8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080652E4 - adds r0, r0, r1 - movs r1, #0x27 - b _080654C6 - .align 2, 0 -_080652E4: .4byte gUnknown_20243E8 -_080652E8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080652F4 - adds r0, r0, r1 - movs r1, #0x28 - b _080654C6 - .align 2, 0 -_080652F4: .4byte gUnknown_20243E8 -_080652F8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065304 - adds r0, r0, r1 - movs r1, #0x29 - b _080654C6 - .align 2, 0 -_08065304: .4byte gUnknown_20243E8 -_08065308: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065314 - adds r0, r0, r1 - movs r1, #0x2a - b _080654C6 - .align 2, 0 -_08065314: .4byte gUnknown_20243E8 -_08065318: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065324 - adds r0, r0, r1 - movs r1, #0x2b - b _080654C6 - .align 2, 0 -_08065324: .4byte gUnknown_20243E8 -_08065328: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065334 - adds r0, r0, r1 - movs r1, #0x2c - b _080654C6 - .align 2, 0 -_08065334: .4byte gUnknown_20243E8 -_08065338: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065344 - adds r0, r0, r1 - movs r1, #0 - b _08065362 - .align 2, 0 -_08065344: .4byte gUnknown_20243E8 -_08065348: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065354 - adds r0, r0, r1 - movs r1, #9 - b _08065406 - .align 2, 0 -_08065354: .4byte gUnknown_20243E8 -_08065358: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065388 - adds r0, r0, r1 - movs r1, #0x37 -_08065362: - bl GetMonData - adds r1, r0, #0 - strb r1, [r7] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - lsrs r0, r0, #8 - strb r0, [r7, #1] - movs r0, #0xff - lsls r0, r0, #0x10 - ands r0, r1 - lsrs r0, r0, #0x10 - strb r0, [r7, #2] - lsrs r0, r1, #0x18 - strb r0, [r7, #3] - movs r6, #4 - b _080654CE - .align 2, 0 -_08065388: .4byte gUnknown_20243E8 -_0806538C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065398 - adds r0, r0, r1 - movs r1, #0x38 - b _080654C6 - .align 2, 0 -_08065398: .4byte gUnknown_20243E8 -_0806539C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080653A8 - adds r0, r0, r1 - movs r1, #0x39 - b _08065406 - .align 2, 0 -_080653A8: .4byte gUnknown_20243E8 -_080653AC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080653B8 - adds r0, r0, r1 - movs r1, #0x3a - b _08065406 - .align 2, 0 -_080653B8: .4byte gUnknown_20243E8 -_080653BC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080653C8 - adds r0, r0, r1 - movs r1, #0x3b - b _08065406 - .align 2, 0 -_080653C8: .4byte gUnknown_20243E8 -_080653CC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080653D8 - adds r0, r0, r1 - movs r1, #0x3c - b _08065406 - .align 2, 0 -_080653D8: .4byte gUnknown_20243E8 -_080653DC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080653E8 - adds r0, r0, r1 - movs r1, #0x3d - b _08065406 - .align 2, 0 -_080653E8: .4byte gUnknown_20243E8 -_080653EC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080653F8 - adds r0, r0, r1 - movs r1, #0x3e - b _08065406 - .align 2, 0 -_080653F8: .4byte gUnknown_20243E8 -_080653FC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065418 - adds r0, r0, r1 - movs r1, #0x3f -_08065406: - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - strb r0, [r7] - lsrs r0, r0, #8 - strb r0, [r7, #1] - movs r6, #2 - b _080654CE - .align 2, 0 -_08065418: .4byte gUnknown_20243E8 -_0806541C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065428 - adds r0, r0, r1 - movs r1, #0x16 - b _080654C6 - .align 2, 0 -_08065428: .4byte gUnknown_20243E8 -_0806542C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065438 - adds r0, r0, r1 - movs r1, #0x17 - b _080654C6 - .align 2, 0 -_08065438: .4byte gUnknown_20243E8 -_0806543C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065448 - adds r0, r0, r1 - movs r1, #0x18 - b _080654C6 - .align 2, 0 -_08065448: .4byte gUnknown_20243E8 -_0806544C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065458 - adds r0, r0, r1 - movs r1, #0x21 - b _080654C6 - .align 2, 0 -_08065458: .4byte gUnknown_20243E8 -_0806545C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065468 - adds r0, r0, r1 - movs r1, #0x2f - b _080654C6 - .align 2, 0 -_08065468: .4byte gUnknown_20243E8 -_0806546C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065478 - adds r0, r0, r1 - movs r1, #0x30 - b _080654C6 - .align 2, 0 -_08065478: .4byte gUnknown_20243E8 -_0806547C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065488 - adds r0, r0, r1 - movs r1, #0x32 - b _080654C6 - .align 2, 0 -_08065488: .4byte gUnknown_20243E8 -_0806548C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065498 - adds r0, r0, r1 - movs r1, #0x33 - b _080654C6 - .align 2, 0 -_08065498: .4byte gUnknown_20243E8 -_0806549C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080654A8 - adds r0, r0, r1 - movs r1, #0x34 - b _080654C6 - .align 2, 0 -_080654A8: .4byte gUnknown_20243E8 -_080654AC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080654B8 - adds r0, r0, r1 - movs r1, #0x35 - b _080654C6 - .align 2, 0 -_080654B8: .4byte gUnknown_20243E8 -_080654BC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080654E0 - adds r0, r0, r1 - movs r1, #0x36 -_080654C6: - bl GetMonData - strb r0, [r7] - movs r6, #1 -_080654CE: - adds r0, r6, #0 - add sp, #0x90 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080654E0: .4byte gUnknown_20243E8 - thumb_func_end CopyLinkOpponentMonData - - thumb_func_start sub_080654E4 -sub_080654E4: @ 0x080654E4 - push {lr} - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080654E4 - - thumb_func_start sub_080654F0 -sub_080654F0: @ 0x080654F0 - push {r4, r5, lr} - ldr r1, _08065514 - ldr r0, _08065518 - ldrb r2, [r0] - lsls r0, r2, #9 - adds r1, #2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, #0 - bne _08065520 - ldr r0, _0806551C - lsls r1, r2, #1 - adds r1, r1, r0 - ldrb r0, [r1] - bl sub_08065548 - b _0806553E - .align 2, 0 -_08065514: .4byte gUnknown_2022D08 -_08065518: .4byte gUnknown_2023D08 -_0806551C: .4byte gUnknown_2023D12 -_08065520: - ldrb r4, [r1] - movs r5, #0 -_08065524: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _08065532 - adds r0, r5, #0 - bl sub_08065548 -_08065532: - lsrs r4, r4, #1 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #5 - bls _08065524 -_0806553E: - bl LinkOpponentBufferExecCompleted - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_080654F0 - - thumb_func_start sub_08065548 -sub_08065548: @ 0x08065548 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x38 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r3, _08065580 - ldrb r0, [r3] - lsls r0, r0, #9 - ldr r2, _08065584 - adds r4, r0, r2 - adds r7, r4, #0 - subs r1, r2, #2 - adds r0, r0, r1 - ldrb r0, [r0] - adds r6, r3, #0 - adds r3, r2, #0 - cmp r0, #0x3b - bls _08065576 - bl _08065E54 -_08065576: - lsls r0, r0, #2 - ldr r1, _08065588 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08065580: .4byte gUnknown_2023D08 -_08065584: .4byte gUnknown_2022D0B -_08065588: .4byte _0806558C -_0806558C: @ jump table - .4byte _0806567C @ case 0 - .4byte _08065814 @ case 1 - .4byte _08065830 @ case 2 - .4byte _0806584C @ case 3 - .4byte _080658A0 @ case 4 - .4byte _080658A0 @ case 5 - .4byte _080658A0 @ case 6 - .4byte _080658A0 @ case 7 - .4byte _080658C0 @ case 8 - .4byte _08065928 @ case 9 - .4byte _08065928 @ case 10 - .4byte _08065928 @ case 11 - .4byte _08065928 @ case 12 - .4byte _08065E54 @ case 13 - .4byte _08065E54 @ case 14 - .4byte _08065E54 @ case 15 - .4byte _08065E54 @ case 16 - .4byte _08065950 @ case 17 - .4byte _0806596C @ case 18 - .4byte _08065988 @ case 19 - .4byte _080659A4 @ case 20 - .4byte _080659C0 @ case 21 - .4byte _080659DC @ case 22 - .4byte _080659F8 @ case 23 - .4byte _08065A14 @ case 24 - .4byte _08065A30 @ case 25 - .4byte _08065A4C @ case 26 - .4byte _08065A68 @ case 27 - .4byte _08065A84 @ case 28 - .4byte _08065AA0 @ case 29 - .4byte _08065ABC @ case 30 - .4byte _08065AD8 @ case 31 - .4byte _08065B4C @ case 32 - .4byte _08065B68 @ case 33 - .4byte _08065B84 @ case 34 - .4byte _08065BA0 @ case 35 - .4byte _08065BBC @ case 36 - .4byte _08065BD8 @ case 37 - .4byte _08065BF4 @ case 38 - .4byte _08065C10 @ case 39 - .4byte _08065C2C @ case 40 - .4byte _08065C48 @ case 41 - .4byte _08065C64 @ case 42 - .4byte _08065C80 @ case 43 - .4byte _08065C9C @ case 44 - .4byte _08065CB8 @ case 45 - .4byte _08065CD4 @ case 46 - .4byte _08065CF0 @ case 47 - .4byte _08065D0C @ case 48 - .4byte _08065D28 @ case 49 - .4byte _08065D44 @ case 50 - .4byte _08065D60 @ case 51 - .4byte _08065D7C @ case 52 - .4byte _08065D98 @ case 53 - .4byte _08065DB4 @ case 54 - .4byte _08065DD0 @ case 55 - .4byte _08065DEC @ case 56 - .4byte _08065E08 @ case 57 - .4byte _08065E24 @ case 58 - .4byte _08065E40 @ case 59 -_0806567C: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _08065810 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0xb - adds r2, r7, #0 - bl SetMonData - adds r2, r7, #0 - adds r2, #0x2e - adds r0, r4, #0 - movs r1, #0xc - bl SetMonData - movs r0, #0 - mov r8, r0 - movs r0, #0x3b - adds r0, r0, r7 - mov sl, r0 - adds r0, r7, #0 - adds r0, #0x2b - str r0, [sp, #0x20] - adds r0, #0x19 - str r0, [sp, #0x28] - adds r0, #4 - str r0, [sp, #0x2c] - adds r0, #4 - str r0, [sp, #0x30] - subs r0, #0x22 - str r0, [sp, #0x1c] - subs r0, #2 - str r0, [sp, #0x18] - adds r0, #4 - str r0, [sp, #0x24] - adds r0, r7, #2 - str r0, [sp, #4] - adds r0, r7, #4 - str r0, [sp, #8] - adds r0, r7, #6 - str r0, [sp, #0xc] - adds r0, #2 - str r0, [sp, #0x10] - adds r0, #2 - str r0, [sp, #0x14] - mov sb, r4 - adds r6, r7, #0 - adds r6, #0x24 - adds r4, r7, #0 - adds r4, #0xc -_080656E2: - mov r1, r8 - adds r1, #0xd - mov r0, sb - adds r2, r4, #0 - bl SetMonData - mov r1, r8 - adds r1, #0x11 - mov r0, sb - adds r2, r6, #0 - bl SetMonData - adds r6, #1 - adds r4, #2 - movs r0, #1 - add r8, r0 - mov r0, r8 - cmp r0, #3 - ble _080656E2 - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _08065810 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x15 - mov r2, sl - bl SetMonData - adds r0, r4, #0 - movs r1, #0x20 - ldr r2, [sp, #0x20] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x19 - ldr r2, [sp, #0x28] - bl SetMonData - ldrb r0, [r7, #0x14] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1b - mov r1, sp - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x27 - mov r2, sp - bl SetMonData - mov r1, sp - ldrh r0, [r7, #0x14] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x28 - mov r2, sp - bl SetMonData - mov r1, sp - ldrb r0, [r7, #0x15] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x29 - mov r2, sp - bl SetMonData - mov r1, sp - ldr r0, [r7, #0x14] - lsls r0, r0, #0xc - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x2a - mov r2, sp - bl SetMonData - mov r1, sp - ldrh r0, [r7, #0x16] - lsls r0, r0, #0x17 - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x2b - mov r2, sp - bl SetMonData - mov r1, sp - ldrb r0, [r7, #0x17] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x2c - mov r2, sp - bl SetMonData - adds r0, r4, #0 - movs r1, #0 - ldr r2, [sp, #0x2c] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x37 - ldr r2, [sp, #0x30] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x38 - ldr r2, [sp, #0x1c] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x39 - ldr r2, [sp, #0x18] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3a - ldr r2, [sp, #0x24] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3b - ldr r2, [sp, #4] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3c - ldr r2, [sp, #8] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3d - ldr r2, [sp, #0xc] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3e - ldr r2, [sp, #0x10] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3f - ldr r2, [sp, #0x14] - bl SetMonData - b _08065E54 - .align 2, 0 -_08065810: .4byte gUnknown_20243E8 -_08065814: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0806582C - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0xb - bl SetMonData - b _08065E54 - .align 2, 0 -_0806582C: .4byte gUnknown_20243E8 -_08065830: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065848 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0xc - bl SetMonData - b _08065E54 - .align 2, 0 -_08065848: .4byte gUnknown_20243E8 -_0806584C: - movs r0, #0 - mov r8, r0 - movs r0, #0xc - adds r0, r0, r4 - mov sb, r0 - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _0806589C - adds r7, r1, r0 - adds r6, r4, #0 - adds r6, #8 -_08065864: - mov r1, r8 - adds r1, #0xd - adds r0, r7, #0 - adds r2, r4, #0 - bl SetMonData - mov r1, r8 - adds r1, #0x11 - adds r0, r7, #0 - adds r2, r6, #0 - bl SetMonData - adds r6, #1 - adds r4, #2 - movs r0, #1 - add r8, r0 - mov r0, r8 - cmp r0, #3 - ble _08065864 - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0806589C - adds r0, r0, r1 - movs r1, #0x15 - mov r2, sb - bl SetMonData - b _08065E54 - .align 2, 0 -_0806589C: .4byte gUnknown_20243E8 -_080658A0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080658B8 - adds r0, r0, r1 - ldr r3, _080658BC - ldrb r2, [r6] - lsls r2, r2, #9 - adds r1, r3, #1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, #9 - b _0806593E - .align 2, 0 -_080658B8: .4byte gUnknown_20243E8 -_080658BC: .4byte gUnknown_2022D08 -_080658C0: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _08065924 - adds r4, r4, r0 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - adds r0, r4, #0 - movs r1, #0x11 - str r3, [sp, #0x34] - bl SetMonData - ldrb r2, [r6] - lsls r2, r2, #9 - ldr r3, [sp, #0x34] - adds r0, r3, #1 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x12 - bl SetMonData - ldrb r2, [r6] - lsls r2, r2, #9 - ldr r3, [sp, #0x34] - adds r0, r3, #2 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x13 - bl SetMonData - ldrb r2, [r6] - lsls r2, r2, #9 - ldr r3, [sp, #0x34] - adds r0, r3, #3 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x14 - bl SetMonData - ldrb r2, [r6] - lsls r2, r2, #9 - ldr r3, [sp, #0x34] - adds r0, r3, #4 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x15 - bl SetMonData - b _08065E54 - .align 2, 0 -_08065924: .4byte gUnknown_20243E8 -_08065928: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065948 - adds r0, r0, r1 - ldr r3, _0806594C - ldrb r2, [r6] - lsls r2, r2, #9 - adds r1, r3, #1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, #8 -_0806593E: - adds r3, #3 - adds r2, r2, r3 - bl SetMonData - b _08065E54 - .align 2, 0 -_08065948: .4byte gUnknown_20243E8 -_0806594C: .4byte gUnknown_2022D08 -_08065950: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065968 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #1 - bl SetMonData - b _08065E54 - .align 2, 0 -_08065968: .4byte gUnknown_20243E8 -_0806596C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065984 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x19 - bl SetMonData - b _08065E54 - .align 2, 0 -_08065984: .4byte gUnknown_20243E8 -_08065988: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080659A0 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x1a - bl SetMonData - b _08065E54 - .align 2, 0 -_080659A0: .4byte gUnknown_20243E8 -_080659A4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080659BC - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x1b - bl SetMonData - b _08065E54 - .align 2, 0 -_080659BC: .4byte gUnknown_20243E8 -_080659C0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080659D8 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x1c - bl SetMonData - b _08065E54 - .align 2, 0 -_080659D8: .4byte gUnknown_20243E8 -_080659DC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _080659F4 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x1d - bl SetMonData - b _08065E54 - .align 2, 0 -_080659F4: .4byte gUnknown_20243E8 -_080659F8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065A10 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x1e - bl SetMonData - b _08065E54 - .align 2, 0 -_08065A10: .4byte gUnknown_20243E8 -_08065A14: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065A2C - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x1f - bl SetMonData - b _08065E54 - .align 2, 0 -_08065A2C: .4byte gUnknown_20243E8 -_08065A30: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065A48 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x20 - bl SetMonData - b _08065E54 - .align 2, 0 -_08065A48: .4byte gUnknown_20243E8 -_08065A4C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065A64 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x22 - bl SetMonData - b _08065E54 - .align 2, 0 -_08065A64: .4byte gUnknown_20243E8 -_08065A68: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065A80 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x23 - bl SetMonData - b _08065E54 - .align 2, 0 -_08065A80: .4byte gUnknown_20243E8 -_08065A84: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065A9C - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x24 - bl SetMonData - b _08065E54 - .align 2, 0 -_08065A9C: .4byte gUnknown_20243E8 -_08065AA0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065AB8 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x25 - bl SetMonData - b _08065E54 - .align 2, 0 -_08065AB8: .4byte gUnknown_20243E8 -_08065ABC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065AD4 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x26 - bl SetMonData - b _08065E54 - .align 2, 0 -_08065AD4: .4byte gUnknown_20243E8 -_08065AD8: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _08065B48 - adds r4, r4, r0 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - adds r0, r4, #0 - movs r1, #0x27 - str r3, [sp, #0x34] - bl SetMonData - ldrb r2, [r6] - lsls r2, r2, #9 - ldr r3, [sp, #0x34] - adds r0, r3, #1 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x28 - bl SetMonData - ldrb r2, [r6] - lsls r2, r2, #9 - ldr r3, [sp, #0x34] - adds r0, r3, #2 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x29 - bl SetMonData - ldrb r2, [r6] - lsls r2, r2, #9 - ldr r3, [sp, #0x34] - adds r0, r3, #3 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x2a - bl SetMonData - ldrb r2, [r6] - lsls r2, r2, #9 - ldr r3, [sp, #0x34] - adds r0, r3, #4 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x2b - bl SetMonData - ldrb r2, [r6] - lsls r2, r2, #9 - ldr r3, [sp, #0x34] - adds r0, r3, #5 - adds r2, r2, r0 - adds r0, r4, #0 - b _08065BE6 - .align 2, 0 -_08065B48: .4byte gUnknown_20243E8 -_08065B4C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065B64 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x27 - bl SetMonData - b _08065E54 - .align 2, 0 -_08065B64: .4byte gUnknown_20243E8 -_08065B68: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065B80 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x28 - bl SetMonData - b _08065E54 - .align 2, 0 -_08065B80: .4byte gUnknown_20243E8 -_08065B84: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065B9C - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x29 - bl SetMonData - b _08065E54 - .align 2, 0 -_08065B9C: .4byte gUnknown_20243E8 -_08065BA0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065BB8 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x2a - bl SetMonData - b _08065E54 - .align 2, 0 -_08065BB8: .4byte gUnknown_20243E8 -_08065BBC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065BD4 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x2b - bl SetMonData - b _08065E54 - .align 2, 0 -_08065BD4: .4byte gUnknown_20243E8 -_08065BD8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065BF0 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 -_08065BE6: - movs r1, #0x2c - bl SetMonData - b _08065E54 - .align 2, 0 -_08065BF0: .4byte gUnknown_20243E8 -_08065BF4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065C0C - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0 - bl SetMonData - b _08065E54 - .align 2, 0 -_08065C0C: .4byte gUnknown_20243E8 -_08065C10: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065C28 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #9 - bl SetMonData - b _08065E54 - .align 2, 0 -_08065C28: .4byte gUnknown_20243E8 -_08065C2C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065C44 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x37 - bl SetMonData - b _08065E54 - .align 2, 0 -_08065C44: .4byte gUnknown_20243E8 -_08065C48: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065C60 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x38 - bl SetMonData - b _08065E54 - .align 2, 0 -_08065C60: .4byte gUnknown_20243E8 -_08065C64: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065C7C - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x39 - bl SetMonData - b _08065E54 - .align 2, 0 -_08065C7C: .4byte gUnknown_20243E8 -_08065C80: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065C98 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x3a - bl SetMonData - b _08065E54 - .align 2, 0 -_08065C98: .4byte gUnknown_20243E8 -_08065C9C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065CB4 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x3b - bl SetMonData - b _08065E54 - .align 2, 0 -_08065CB4: .4byte gUnknown_20243E8 -_08065CB8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065CD0 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x3c - bl SetMonData - b _08065E54 - .align 2, 0 -_08065CD0: .4byte gUnknown_20243E8 -_08065CD4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065CEC - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x3d - bl SetMonData - b _08065E54 - .align 2, 0 -_08065CEC: .4byte gUnknown_20243E8 -_08065CF0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065D08 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x3e - bl SetMonData - b _08065E54 - .align 2, 0 -_08065D08: .4byte gUnknown_20243E8 -_08065D0C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065D24 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x3f - bl SetMonData - b _08065E54 - .align 2, 0 -_08065D24: .4byte gUnknown_20243E8 -_08065D28: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065D40 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x16 - bl SetMonData - b _08065E54 - .align 2, 0 -_08065D40: .4byte gUnknown_20243E8 -_08065D44: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065D5C - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x17 - bl SetMonData - b _08065E54 - .align 2, 0 -_08065D5C: .4byte gUnknown_20243E8 -_08065D60: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065D78 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x18 - bl SetMonData - b _08065E54 - .align 2, 0 -_08065D78: .4byte gUnknown_20243E8 -_08065D7C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065D94 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x21 - bl SetMonData - b _08065E54 - .align 2, 0 -_08065D94: .4byte gUnknown_20243E8 -_08065D98: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065DB0 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x2f - bl SetMonData - b _08065E54 - .align 2, 0 -_08065DB0: .4byte gUnknown_20243E8 -_08065DB4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065DCC - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x30 - bl SetMonData - b _08065E54 - .align 2, 0 -_08065DCC: .4byte gUnknown_20243E8 -_08065DD0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065DE8 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x32 - bl SetMonData - b _08065E54 - .align 2, 0 -_08065DE8: .4byte gUnknown_20243E8 -_08065DEC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065E04 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x33 - bl SetMonData - b _08065E54 - .align 2, 0 -_08065E04: .4byte gUnknown_20243E8 -_08065E08: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065E20 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x34 - bl SetMonData - b _08065E54 - .align 2, 0 -_08065E20: .4byte gUnknown_20243E8 -_08065E24: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065E3C - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x35 - bl SetMonData - b _08065E54 - .align 2, 0 -_08065E3C: .4byte gUnknown_20243E8 -_08065E40: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08065E64 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x36 - bl SetMonData -_08065E54: - add sp, #0x38 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08065E64: .4byte gUnknown_20243E8 - thumb_func_end sub_08065548 - - thumb_func_start sub_08065E68 -sub_08065E68: @ 0x08065E68 - push {r4, r5, r6, r7, lr} - ldr r1, _08065ECC - ldr r7, _08065ED0 - ldrb r2, [r7] - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - adds r3, r1, #0 - muls r3, r0, r3 - ldr r4, _08065ED4 - lsls r2, r2, #9 - adds r0, r4, #1 - adds r0, r2, r0 - ldrb r0, [r0] - ldr r1, _08065ED8 - adds r0, r0, r1 - adds r5, r3, r0 - movs r3, #0 - adds r0, r4, #2 - adds r2, r2, r0 - ldrb r2, [r2] - cmp r3, r2 - bhs _08065EC0 - adds r6, r4, #0 - adds r2, r7, #0 - adds r4, r0, #0 -_08065E9E: - adds r1, r5, r3 - ldrb r0, [r2] - lsls r0, r0, #9 - adds r0, #3 - adds r0, r3, r0 - adds r0, r0, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldrb r0, [r2] - lsls r0, r0, #9 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r3, r0 - blo _08065E9E -_08065EC0: - bl LinkOpponentBufferExecCompleted - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08065ECC: .4byte gUnknown_2023D12 -_08065ED0: .4byte gUnknown_2023D08 -_08065ED4: .4byte gUnknown_2022D08 -_08065ED8: .4byte gUnknown_20243E8 - thumb_func_end sub_08065E68 - - thumb_func_start LinkOpponentHandleLoadMonSprite -LinkOpponentHandleLoadMonSprite: @ 0x08065EDC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r7, _08066004 - ldr r6, _08066008 - ldrb r0, [r6] - lsls r0, r0, #1 - adds r0, r0, r7 - ldrh r0, [r0] - movs r1, #0x64 - mov sl, r1 - mov r2, sl - muls r2, r0, r2 - adds r0, r2, #0 - ldr r1, _0806600C - mov sb, r1 - add r0, sb - movs r1, #0xb - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldrb r1, [r6] - lsls r0, r1, #1 - adds r0, r0, r7 - ldrh r0, [r0] - mov r2, sl - muls r2, r0, r2 - adds r0, r2, #0 - add r0, sb - bl BattleLoadOpponentMonSpriteGfx - ldrb r0, [r6] - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl SetMultiuseSpriteTemplateToPokemon - ldr r0, _08066010 - mov r8, r0 - ldrb r0, [r6] - movs r1, #2 - bl GetBattlerSpriteCoord - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldrb r0, [r6] - bl GetBattlerSpriteDefault_Y - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldrb r0, [r6] - bl GetBattlerSpriteSubpriority - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r0, r8 - adds r1, r5, #0 - adds r2, r4, #0 - bl CreateSprite - ldr r4, _08066014 - ldrb r1, [r6] - adds r1, r1, r4 - strb r0, [r1] - ldr r5, _08066018 - ldrb r0, [r6] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _0806601C - strh r1, [r0, #0x24] - ldrb r2, [r6] - adds r0, r2, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r2, [r0, #0x2e] - ldrb r3, [r6] - adds r0, r3, r4 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - lsls r3, r3, #4 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #5] - ldrb r2, [r6] - adds r4, r2, r4 - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _08066020 - adds r2, r2, r1 - ldrb r1, [r2] - bl StartSpriteAnim - ldrb r4, [r6] - lsls r0, r4, #1 - adds r0, r0, r7 - ldrh r0, [r0] - mov r1, sl - muls r1, r0, r1 - adds r0, r1, #0 - add r0, sb - movs r1, #0xb - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl SetBattlerShadowSpriteCallback - ldr r1, _08066024 - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08066028 - str r1, [r0] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08066004: .4byte gUnknown_2023D12 -_08066008: .4byte gUnknown_2023D08 -_0806600C: .4byte gUnknown_20243E8 -_08066010: .4byte gUnknown_2024640 -_08066014: .4byte gUnknown_2023E88 -_08066018: .4byte gUnknown_20205AC -_0806601C: .4byte 0x0000FF10 -_08066020: .4byte gUnknown_2024188 -_08066024: .4byte gUnknown_3005AC0 -_08066028: .4byte sub_080646E8 - thumb_func_end LinkOpponentHandleLoadMonSprite - - thumb_func_start sub_0806602C -sub_0806602C: @ 0x0806602C - push {r4, lr} - ldr r1, _08066064 - ldr r4, _08066068 - ldrb r0, [r4] - lsls r2, r0, #1 - adds r2, r2, r1 - ldr r3, _0806606C - lsls r0, r0, #9 - adds r1, r3, #1 - adds r0, r0, r1 - ldrb r0, [r0] - strh r0, [r2] - ldrb r0, [r4] - lsls r1, r0, #9 - adds r3, #2 - adds r1, r1, r3 - ldrb r1, [r1] - bl sub_08066078 - ldr r1, _08066070 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08066074 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08066064: .4byte gUnknown_2023D12 -_08066068: .4byte gUnknown_2023D08 -_0806606C: .4byte gUnknown_2022D08 -_08066070: .4byte gUnknown_3005AC0 -_08066074: .4byte sub_08064B24 - thumb_func_end sub_0806602C - - thumb_func_start sub_08066078 -sub_08066078: @ 0x08066078 - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r6, #0 - bl ClearTemporarySpeciesSpriteData - ldr r0, _080661E0 - lsls r4, r6, #1 - adds r4, r4, r0 - ldr r0, _080661E4 - lsls r1, r6, #9 - adds r0, #1 - adds r1, r1, r0 - ldrb r0, [r1] - strh r0, [r4] - ldrh r0, [r4] - movs r1, #0x64 - mov sb, r1 - mov r1, sb - muls r1, r0, r1 - adds r0, r1, #0 - ldr r5, _080661E8 - adds r0, r0, r5 - movs r1, #0xb - bl GetMonData - mov r8, r0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - ldr r0, _080661EC - bl CreateInvisibleSpriteWithCallback - ldr r1, _080661F0 - mov sl, r1 - add sl, r6 - mov r1, sl - strb r0, [r1] - ldrh r0, [r4] - mov r1, sb - muls r1, r0, r1 - adds r0, r1, #0 - adds r0, r0, r5 - adds r1, r6, #0 - bl BattleLoadOpponentMonSpriteGfx - adds r0, r6, #0 - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r0, r8 - bl SetMultiuseSpriteTemplateToPokemon - ldr r0, _080661F4 - mov sb, r0 - adds r0, r6, #0 - movs r1, #2 - bl GetBattlerSpriteCoord - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - adds r0, r6, #0 - bl GetBattlerSpriteDefault_Y - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r6, #0 - bl GetBattlerSpriteSubpriority - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r0, sb - adds r1, r5, #0 - adds r2, r4, #0 - bl CreateSprite - ldr r4, _080661F8 - adds r4, r6, r4 - strb r0, [r4] - ldr r5, _080661FC - mov r0, sl - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r1, [r4] - strh r1, [r0, #0x30] - mov r0, sl - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r6, [r0, #0x32] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r6, [r0, #0x2e] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - mov r1, r8 - strh r1, [r0, #0x32] - ldrb r0, [r4] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - lsls r3, r6, #4 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #5] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _08066200 - adds r6, r6, r1 - ldrb r1, [r6] - bl StartSpriteAnim - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r5, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _08066204 - str r1, [r0] - movs r0, #0 - movs r1, #0xfe - bl DoPokeballSendOutAnimation - mov r1, sl - ldrb r2, [r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r1, #0x2e] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080661E0: .4byte gUnknown_2023D12 -_080661E4: .4byte gUnknown_2022D08 -_080661E8: .4byte gUnknown_20243E8 -_080661EC: .4byte sub_0805D330 -_080661F0: .4byte gUnknown_3005ADC -_080661F4: .4byte gUnknown_2024640 -_080661F8: .4byte gUnknown_2023E88 -_080661FC: .4byte gUnknown_20205AC -_08066200: .4byte gUnknown_2024188 -_08066204: .4byte sub_08007140 - thumb_func_end sub_08066078 - - thumb_func_start LinkOpponentHandleReturnMonToBall -LinkOpponentHandleReturnMonToBall: @ 0x08066208 - push {r4, r5, r6, lr} - ldr r1, _0806623C - ldr r6, _08066240 - ldrb r2, [r6] - lsls r0, r2, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r3, [r0] - cmp r3, #0 - bne _08066250 - ldr r0, _08066244 - ldr r0, [r0] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - strb r3, [r0, #4] - ldr r1, _08066248 - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0806624C - str r1, [r0] - b _0806628C - .align 2, 0 -_0806623C: .4byte gUnknown_2022D08 -_08066240: .4byte gUnknown_2023D08 -_08066244: .4byte gUnknown_2024174 -_08066248: .4byte gUnknown_3005AC0 -_0806624C: .4byte sub_080662A0 -_08066250: - ldr r5, _08066294 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _08066298 - adds r0, r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - ldrb r0, [r6] - bl HideBattlerShadowSprite - ldr r1, _0806629C - ldrb r0, [r6] - adds r0, r0, r1 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible - bl LinkOpponentBufferExecCompleted -_0806628C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08066294: .4byte gUnknown_2023E88 -_08066298: .4byte gUnknown_20205AC -_0806629C: .4byte gUnknown_3005AD0 - thumb_func_end LinkOpponentHandleReturnMonToBall - - thumb_func_start sub_080662A0 -sub_080662A0: @ 0x080662A0 - push {r4, r5, r6, lr} - ldr r6, _080662C0 - ldr r4, [r6] - ldr r5, _080662C4 - ldrb r2, [r5] - ldr r1, [r4, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r3, r0, r1 - ldrb r0, [r3, #4] - cmp r0, #0 - beq _080662C8 - cmp r0, #1 - beq _080662F6 - b _0806631E - .align 2, 0 -_080662C0: .4byte gUnknown_2024174 -_080662C4: .4byte gUnknown_2023D08 -_080662C8: - ldr r1, [r4] - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080662E2 - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #5 - bl InitAndLaunchSpecialAnimation -_080662E2: - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #1 - strb r1, [r0, #4] - b _0806631E -_080662F6: - ldrb r1, [r3] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0806631E - strb r0, [r3, #4] - ldrb r2, [r5] - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #2 - bl InitAndLaunchSpecialAnimation - ldr r1, _08066324 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08066328 - str r1, [r0] -_0806631E: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08066324: .4byte gUnknown_3005AC0 -_08066328: .4byte sub_0806483C - thumb_func_end sub_080662A0 - - thumb_func_start LinkOpponentHandleDrawTrainerPic -LinkOpponentHandleDrawTrainerPic: @ 0x0806632C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r4, _0806636C - ldr r0, [r4] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08066424 - ldr r5, _08066370 - ldrb r0, [r5] - bl sub_080A630C - movs r1, #2 - ands r1, r0 - movs r7, #0xc8 - cmp r1, #0 - beq _08066354 - movs r7, #0x98 -_08066354: - ldr r0, [r4] - movs r1, #0x80 - lsls r1, r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0806638C - ldrb r0, [r5] - cmp r0, #1 - bne _08066378 - ldr r0, _08066374 - b _0806637A - .align 2, 0 -_0806636C: .4byte gUnknown_2022C90 -_08066370: .4byte gUnknown_2023D08 -_08066374: .4byte gUnknown_203886A -_08066378: - ldr r0, _08066388 -_0806637A: - ldrh r0, [r0] - bl GetFrontierTrainerFrontSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _08066530 - .align 2, 0 -_08066388: .4byte gUnknown_203886C -_0806638C: - ldrb r0, [r5] - bl GetBattlerMultiplayerId - ldr r6, _080663D4 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - movs r4, #0xff - ldrb r0, [r1] - cmp r0, #4 - beq _080663BC - ldrb r0, [r5] - bl GetBattlerMultiplayerId - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrh r1, [r1] - adds r0, r4, #0 - ands r0, r1 - cmp r0, #5 - bne _080663D8 -_080663BC: - ldrb r0, [r5] - bl GetBattlerMultiplayerId - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrb r0, [r1, #0x13] - cmp r0, #0 - bne _0806648E - b _080664A0 - .align 2, 0 -_080663D4: .4byte gUnknown_20226A0 -_080663D8: - ldrb r0, [r5] - bl GetBattlerMultiplayerId - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrh r1, [r1] - adds r0, r4, #0 - ands r0, r1 - cmp r0, #2 - beq _08066406 - ldrb r0, [r5] - bl GetBattlerMultiplayerId - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrh r0, [r1] - ands r4, r0 - cmp r4, #1 - bne _0806641C -_08066406: - ldrb r0, [r5] - bl GetBattlerMultiplayerId - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrb r0, [r1, #0x13] - cmp r0, #0 - bne _080664FA - b _08066508 -_0806641C: - ldrb r0, [r5] - bl GetBattlerMultiplayerId - b _0806651E -_08066424: - movs r7, #0xb0 - ldr r0, _08066438 - ldrh r1, [r0] - movs r0, #0xc0 - lsls r0, r0, #4 - cmp r1, r0 - bne _0806643C - bl sub_08068688 - b _0806652C - .align 2, 0 -_08066438: .4byte gUnknown_203886A -_0806643C: - bl GetMultiplayerId - ldr r6, _08066498 - movs r5, #1 - eors r0, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - movs r4, #0xff - ldrb r0, [r1] - cmp r0, #4 - beq _08066476 - bl GetMultiplayerId - eors r0, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrh r1, [r1] - adds r0, r4, #0 - ands r0, r1 - cmp r0, #5 - bne _080664AC -_08066476: - bl GetMultiplayerId - eors r0, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrb r0, [r1, #0x13] - cmp r0, #0 - beq _080664A0 -_0806648E: - ldr r0, _0806649C - adds r0, #0x4f - ldrb r0, [r0] - b _08066530 - .align 2, 0 -_08066498: .4byte gUnknown_20226A0 -_0806649C: .4byte gUnknown_82EFF00 -_080664A0: - ldr r0, _080664A8 - adds r0, #0x4e - ldrb r0, [r0] - b _08066530 - .align 2, 0 -_080664A8: .4byte gUnknown_82EFF00 -_080664AC: - bl GetMultiplayerId - eors r0, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrh r1, [r1] - adds r0, r4, #0 - ands r0, r1 - cmp r0, #2 - beq _080664E2 - bl GetMultiplayerId - eors r0, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrh r0, [r1] - ands r4, r0 - cmp r4, #1 - bne _08066514 -_080664E2: - bl GetMultiplayerId - eors r0, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrb r0, [r1, #0x13] - cmp r0, #0 - beq _08066508 -_080664FA: - ldr r0, _08066504 - adds r0, #0x51 - ldrb r0, [r0] - b _08066530 - .align 2, 0 -_08066504: .4byte gUnknown_82EFF00 -_08066508: - ldr r0, _08066510 - adds r0, #0x50 - ldrb r0, [r0] - b _08066530 - .align 2, 0 -_08066510: .4byte gUnknown_82EFF00 -_08066514: - bl GetMultiplayerId - eors r0, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_0806651E: - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrb r0, [r1, #0x13] - bl PlayerGenderToFrontTrainerPicId -_0806652C: - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 -_08066530: - mov r8, r0 - ldr r5, _08066614 - ldrb r1, [r5] - bl DecompressTrainerFrontPic - ldrb r0, [r5] - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r0, r8 - bl SetMultiuseSpriteTemplateToTrainerBack - ldr r6, _08066618 - mov sb, r7 - ldr r1, _0806661C - mov r2, r8 - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r0, [r0] - movs r4, #8 - subs r4, r4, r0 - lsls r4, r4, #0x12 - movs r0, #0xa0 - lsls r0, r0, #0xe - adds r4, r4, r0 - asrs r4, r4, #0x10 - ldrb r0, [r5] - bl GetBattlerSpriteSubpriority - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r6, #0 - mov r1, sb - adds r2, r4, #0 - bl CreateSprite - ldr r6, _08066620 - ldrb r1, [r5] - adds r1, r1, r6 - strb r0, [r1] - ldr r4, _08066624 - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _08066628 - strh r1, [r0, #0x24] - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #2 - strh r1, [r0, #0x2e] - ldr r1, _0806662C - mov r2, r8 - lsls r0, r2, #3 - adds r0, r0, r1 - ldrh r0, [r0, #4] - bl IndexOfSpritePaletteTag - ldrb r1, [r5] - adds r1, r1, r6 - ldrb r1, [r1] - lsls r2, r1, #4 - adds r2, r2, r1 - lsls r2, r2, #2 - adds r2, r2, r4 - lsls r0, r0, #4 - ldrb r3, [r2, #5] - movs r1, #0xf - ands r1, r3 - orrs r1, r0 - strb r1, [r2, #5] - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - mov r1, r8 - strh r1, [r0, #6] - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, #0x1c - adds r0, r0, r4 - ldr r1, _08066630 - str r1, [r0] - ldr r1, _08066634 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08066638 - str r1, [r0] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08066614: .4byte gUnknown_2023D08 -_08066618: .4byte gUnknown_2024640 -_0806661C: .4byte gUnknown_82D8D70 -_08066620: .4byte gUnknown_2023E88 -_08066624: .4byte gUnknown_20205AC -_08066628: .4byte 0x0000FF10 -_0806662C: .4byte gUnknown_82D91CC -_08066630: .4byte sub_0805D3C8 -_08066634: .4byte gUnknown_3005AC0 -_08066638: .4byte sub_08063FE4 - thumb_func_end LinkOpponentHandleDrawTrainerPic - - thumb_func_start LinkOpponentHandleTrainerSlide -LinkOpponentHandleTrainerSlide: @ 0x0806663C - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - ldr r0, _08066650 - ldrb r0, [r0] - cmp r0, #1 - bne _08066658 - ldr r0, _08066654 - b _0806665A - .align 2, 0 -_08066650: .4byte gUnknown_2023D08 -_08066654: .4byte gUnknown_203886A -_08066658: - ldr r0, _0806674C -_0806665A: - ldrh r0, [r0] - bl GetFrontierTrainerFrontSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r6, _08066750 - ldrb r1, [r6] - bl DecompressTrainerFrontPic - ldrb r0, [r6] - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r0, r8 - bl SetMultiuseSpriteTemplateToTrainerBack - ldr r0, _08066754 - ldr r2, _08066758 - mov r3, r8 - lsls r1, r3, #2 - adds r1, r1, r2 - ldrb r1, [r1] - movs r2, #8 - subs r2, r2, r1 - lsls r2, r2, #0x12 - movs r1, #0xa0 - lsls r1, r1, #0xe - adds r2, r2, r1 - asrs r2, r2, #0x10 - movs r1, #0xb0 - movs r3, #0x1e - bl CreateSprite - ldr r5, _0806675C - ldrb r1, [r6] - adds r1, r1, r5 - strb r0, [r1] - ldr r4, _08066760 - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0x60 - strh r1, [r0, #0x24] - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r0, #0x20] - adds r1, #0x20 - strh r1, [r0, #0x20] - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _08066764 - strh r1, [r0, #0x2e] - ldr r1, _08066768 - mov r2, r8 - lsls r0, r2, #3 - adds r0, r0, r1 - ldrh r0, [r0, #4] - bl IndexOfSpritePaletteTag - ldrb r1, [r6] - adds r1, r1, r5 - ldrb r1, [r1] - lsls r2, r1, #4 - adds r2, r2, r1 - lsls r2, r2, #2 - adds r2, r2, r4 - lsls r0, r0, #4 - ldrb r3, [r2, #5] - movs r1, #0xf - ands r1, r3 - orrs r1, r0 - strb r1, [r2, #5] - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - mov r3, r8 - strh r3, [r0, #6] - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, #0x1c - adds r0, r0, r4 - ldr r1, _0806676C - str r1, [r0] - ldr r1, _08066770 - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08066774 - str r1, [r0] - bl LinkOpponentBufferExecCompleted - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0806674C: .4byte gUnknown_203886C -_08066750: .4byte gUnknown_2023D08 -_08066754: .4byte gUnknown_2024640 -_08066758: .4byte gUnknown_82D8D70 -_0806675C: .4byte gUnknown_2023E88 -_08066760: .4byte gUnknown_20205AC -_08066764: .4byte 0x0000FFFE -_08066768: .4byte gUnknown_82D91CC -_0806676C: .4byte sub_0805D3C8 -_08066770: .4byte gUnknown_3005AC0 -_08066774: .4byte sub_0806401C - thumb_func_end LinkOpponentHandleTrainerSlide - - thumb_func_start sub_08066778 -sub_08066778: @ 0x08066778 - push {r4, r5, r6, lr} - ldr r6, _08066808 - ldr r4, _0806680C - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r5, _08066810 - adds r0, r0, r5 - bl SetSpritePrimaryCoordsFromSecondaryCoords - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0x23 - strh r1, [r0, #0x2e] - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0x8c - lsls r1, r1, #1 - strh r1, [r0, #0x32] - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrh r1, [r0, #0x22] - strh r1, [r0, #0x36] - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r5, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _08066814 - str r1, [r0] - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _08066818 - bl StoreSpriteCallbackInData6 - ldr r1, _0806681C - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08066820 - str r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08066808: .4byte gUnknown_2023E88 -_0806680C: .4byte gUnknown_2023D08 -_08066810: .4byte gUnknown_20205AC -_08066814: .4byte sub_080A67B4 -_08066818: .4byte sub_08007140 -_0806681C: .4byte gUnknown_3005AC0 -_08066820: .4byte sub_08064054 - thumb_func_end sub_08066778 - - thumb_func_start LinkOpponentHandleFaintAnimation -LinkOpponentHandleFaintAnimation: @ 0x08066824 - push {r4, r5, r6, lr} - ldr r6, _08066870 - ldr r4, [r6] - ldr r5, _08066874 - ldrb r2, [r5] - ldr r0, [r4, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r3, r1, r0 - ldrb r0, [r3, #4] - cmp r0, #0 - bne _08066878 - ldr r1, [r4] - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08066858 - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #5 - bl InitAndLaunchSpecialAnimation -_08066858: - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #4] - adds r1, #1 - strb r1, [r0, #4] - b _080668B4 - .align 2, 0 -_08066870: .4byte gUnknown_2024174 -_08066874: .4byte gUnknown_2023D08 -_08066878: - ldrb r1, [r3] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _080668B4 - strb r0, [r3, #4] - movs r0, #0x10 - movs r1, #0x3f - bl PlaySE12WithPanning - ldr r2, _080668BC - ldr r1, _080668C0 - ldrb r0, [r5] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, _080668C4 - str r1, [r0] - ldr r1, _080668C8 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _080668CC - str r1, [r0] -_080668B4: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080668BC: .4byte gUnknown_20205AC -_080668C0: .4byte gUnknown_2023E88 -_080668C4: .4byte SpriteCB_FaintOpponentMon -_080668C8: .4byte gUnknown_3005AC0 -_080668CC: .4byte sub_080647F8 - thumb_func_end LinkOpponentHandleFaintAnimation - - thumb_func_start sub_080668D0 -sub_080668D0: @ 0x080668D0 - push {lr} - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080668D0 - - thumb_func_start sub_080668DC -sub_080668DC: @ 0x080668DC - push {lr} - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080668DC - - thumb_func_start LinkOpponentHandleBallThrowAnim -LinkOpponentHandleBallThrowAnim: @ 0x080668E8 - push {lr} - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkOpponentHandleBallThrowAnim - - thumb_func_start LinkOpponentHandlePause -LinkOpponentHandlePause: @ 0x080668F4 - push {lr} - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkOpponentHandlePause - - thumb_func_start sub_08066900 -sub_08066900: @ 0x08066900 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r5, _080669F0 - ldrb r0, [r5] - bl mplay_80342A4 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08066916 - b _08066A3C -_08066916: - ldr r0, _080669F4 - mov ip, r0 - ldrb r1, [r5] - lsls r1, r1, #9 - adds r0, #1 - adds r0, r1, r0 - ldrb r6, [r0] - mov r0, ip - adds r0, #2 - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, r0, #8 - orrs r6, r0 - ldr r0, _080669F8 - mov r8, r0 - mov r0, ip - adds r0, #3 - adds r1, r1, r0 - ldrb r0, [r1] - mov r1, r8 - strb r0, [r1] - ldr r3, _080669FC - ldrb r1, [r5] - lsls r1, r1, #9 - mov r0, ip - adds r0, #4 - adds r0, r1, r0 - ldrb r2, [r0] - mov r0, ip - adds r0, #5 - adds r1, r1, r0 - ldrb r0, [r1] - lsls r0, r0, #8 - orrs r2, r0 - strh r2, [r3] - ldr r3, _08066A00 - ldrb r1, [r5] - lsls r1, r1, #9 - mov r0, ip - adds r0, #6 - adds r0, r1, r0 - ldrb r2, [r0] - mov r0, ip - adds r0, #7 - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, r0, #8 - orrs r2, r0 - mov r0, ip - adds r0, #8 - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, r0, #0x10 - orrs r2, r0 - mov r0, ip - adds r0, #9 - adds r1, r1, r0 - ldrb r0, [r1] - lsls r0, r0, #0x18 - orrs r2, r0 - str r2, [r3] - ldr r2, _08066A04 - ldrb r0, [r5] - lsls r0, r0, #9 - mov r1, ip - adds r1, #0xa - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r4, _08066A08 - ldrb r1, [r5] - lsls r1, r1, #9 - mov r0, ip - adds r0, #0xc - adds r0, r1, r0 - ldrb r2, [r0] - mov r0, ip - adds r0, #0xd - adds r1, r1, r0 - ldrb r0, [r1] - lsls r0, r0, #8 - orrs r2, r0 - strh r2, [r4] - ldr r7, _08066A0C - ldrb r1, [r5] - lsls r1, r1, #9 - mov r0, ip - adds r0, #0x10 - adds r1, r1, r0 - str r1, [r7] - ldr r2, _08066A10 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, [r1] - str r1, [r0] - mov r0, r8 - ldrb r1, [r0] - adds r0, r6, #0 - bl sub_0805D7A8 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - beq _08066A14 - bl LinkOpponentBufferExecCompleted - b _08066A3C - .align 2, 0 -_080669F0: .4byte gUnknown_2023D08 -_080669F4: .4byte gUnknown_2022D08 -_080669F8: .4byte gUnknown_20380D2 -_080669FC: .4byte gUnknown_20380A8 -_08066A00: .4byte gUnknown_20380A4 -_08066A04: .4byte gUnknown_20380BA -_08066A08: .4byte gUnknown_20380BC -_08066A0C: .4byte gUnknown_20380A0 -_08066A10: .4byte gUnknown_2024160 -_08066A14: - ldr r0, _08066A48 - ldr r0, [r0] - ldrb r1, [r5] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strb r3, [r0, #4] - ldr r1, _08066A4C - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08066A50 - str r1, [r0] - ldrh r1, [r4] - ldr r2, [r7] - adds r0, r6, #0 - bl BattleTv_SetDataBasedOnMove -_08066A3C: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08066A48: .4byte gUnknown_2024174 -_08066A4C: .4byte gUnknown_3005AC0 -_08066A50: .4byte sub_08066A54 - thumb_func_end sub_08066900 - - thumb_func_start sub_08066A54 -sub_08066A54: @ 0x08066A54 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r2, _08066AA0 - ldr r6, _08066AA4 - ldrb r3, [r6] - lsls r1, r3, #9 - adds r0, r2, #1 - mov sl, r0 - adds r0, r1, r0 - ldrb r4, [r0] - adds r5, r2, #2 - mov sb, r5 - adds r0, r1, r5 - ldrb r0, [r0] - lsls r0, r0, #8 - orrs r4, r0 - adds r2, #0xb - adds r1, r1, r2 - ldrb r1, [r1] - mov r8, r1 - ldr r7, _08066AA8 - ldr r5, [r7] - ldr r1, [r5, #4] - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r2, [r0, #4] - cmp r2, #1 - beq _08066AEC - cmp r2, #1 - bgt _08066AAC - cmp r2, #0 - beq _08066AB6 - b _08066BC8 - .align 2, 0 -_08066AA0: .4byte gUnknown_2022D08 -_08066AA4: .4byte gUnknown_2023D08 -_08066AA8: .4byte gUnknown_2024174 -_08066AAC: - cmp r2, #2 - beq _08066B16 - cmp r2, #3 - beq _08066B8C - b _08066BC8 -_08066AB6: - ldr r1, [r5] - lsls r0, r3, #2 - adds r1, r0, r1 - ldrb r2, [r1] - movs r0, #0xc - ands r0, r2 - cmp r0, #4 - bne _08066AD8 - movs r0, #8 - orrs r0, r2 - strb r0, [r1] - ldrb r2, [r6] - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #5 - bl InitAndLaunchSpecialAnimation -_08066AD8: - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #1 - strb r1, [r0, #4] - b _08066BC8 -_08066AEC: - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08066BC8 - movs r0, #0 - bl sub_0805E7B8 - adds r0, r4, #0 - bl DoMoveAnim - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #2 - strb r1, [r0, #4] - b _08066BC8 -_08066B16: - ldr r0, _08066B7C - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _08066B80 - ldrb r0, [r0] - cmp r0, #0 - bne _08066BC8 - movs r0, #1 - bl sub_0805E7B8 - ldr r0, [r7] - ldrb r2, [r6] - ldr r1, [r0] - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08066B64 - mov r0, r8 - cmp r0, #1 - bhi _08066B64 - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #6 - bl InitAndLaunchSpecialAnimation - ldr r0, [r7] - ldrb r1, [r6] - ldr r0, [r0] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] -_08066B64: - ldr r0, _08066B84 - ldr r2, [r0] - ldr r0, _08066B88 - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #3 - strb r1, [r0, #4] - b _08066BC8 - .align 2, 0 -_08066B7C: .4byte gUnknown_2038098 -_08066B80: .4byte gUnknown_203809D -_08066B84: .4byte gUnknown_2024174 -_08066B88: .4byte gUnknown_2023D08 -_08066B8C: - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _08066BC8 - bl CopyAllBattleSpritesInvisibilities - ldrb r0, [r6] - lsls r2, r0, #9 - mov r3, sl - adds r1, r2, r3 - ldrb r1, [r1] - add r2, sb - ldrb r2, [r2] - lsls r2, r2, #8 - orrs r1, r2 - bl TrySetBehindSubstituteSpriteBit - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strb r4, [r0, #4] - bl LinkOpponentBufferExecCompleted -_08066BC8: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08066A54 - - thumb_func_start LinkOpponentHandlePrintString -LinkOpponentHandlePrintString: @ 0x08066BD8 - push {r4, r5, lr} - ldr r0, _08066C14 - movs r1, #0 - strh r1, [r0] - ldr r0, _08066C18 - strh r1, [r0] - ldr r5, _08066C1C - ldrb r4, [r5] - lsls r4, r4, #9 - ldr r0, _08066C20 - adds r4, r4, r0 - ldrh r0, [r4] - bl PrintOnTrainerHillRecordsWindow - ldr r0, _08066C24 - movs r1, #0 - bl sub_0814FA04 - ldr r1, _08066C28 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08066C2C - str r1, [r0] - ldrh r0, [r4] - bl BattleTv_SetDataBasedOnString - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08066C14: .4byte gUnknown_2022AC8 -_08066C18: .4byte gUnknown_2022ACA -_08066C1C: .4byte gUnknown_2023D08 -_08066C20: .4byte gUnknown_2022D0A -_08066C24: .4byte gUnknown_2022AE0 -_08066C28: .4byte gUnknown_3005AC0 -_08066C2C: .4byte sub_080648B0 - thumb_func_end LinkOpponentHandlePrintString - - thumb_func_start sub_08066C30 -sub_08066C30: @ 0x08066C30 - push {lr} - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08066C30 - - thumb_func_start LinkOpponentHandleChooseAction -LinkOpponentHandleChooseAction: @ 0x08066C3C - push {lr} - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkOpponentHandleChooseAction - - thumb_func_start LinkOpponentHandleUnknownYesNoBox -LinkOpponentHandleUnknownYesNoBox: @ 0x08066C48 - push {lr} - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkOpponentHandleUnknownYesNoBox - - thumb_func_start LinkOpponentHandleChooseMove -LinkOpponentHandleChooseMove: @ 0x08066C54 - push {lr} - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkOpponentHandleChooseMove - - thumb_func_start LinkOpponentHandleChooseItem -LinkOpponentHandleChooseItem: @ 0x08066C60 - push {lr} - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkOpponentHandleChooseItem - - thumb_func_start LinkOpponentHandleChoosePokemon -LinkOpponentHandleChoosePokemon: @ 0x08066C6C - push {lr} - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkOpponentHandleChoosePokemon - - thumb_func_start LinkOpponentHandleCmd23 -LinkOpponentHandleCmd23: @ 0x08066C78 - push {lr} - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkOpponentHandleCmd23 - - thumb_func_start LinkOpponentHandleHealthBarUpdate -LinkOpponentHandleHealthBarUpdate: @ 0x08066C84 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - movs r0, #0 - bl LoadBattleBarGfx - ldr r3, _08066CFC - ldr r0, _08066D00 - mov sb, r0 - ldrb r4, [r0] - lsls r2, r4, #9 - adds r0, r3, #2 - adds r0, r2, r0 - ldrb r1, [r0] - adds r3, #3 - adds r2, r2, r3 - ldrb r0, [r2] - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - asrs r7, r1, #0x10 - ldr r0, _08066D04 - cmp r7, r0 - beq _08066D14 - ldr r6, _08066D08 - lsls r0, r4, #1 - adds r0, r0, r6 - ldrh r0, [r0] - movs r5, #0x64 - muls r0, r5, r0 - ldr r4, _08066D0C - adds r0, r0, r4 - movs r1, #0x3a - bl GetMonData - mov r8, r0 - mov r1, sb - ldrb r0, [r1] - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r0, [r0] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #0x39 - bl GetMonData - adds r3, r0, #0 - mov r1, sb - ldrb r0, [r1] - ldr r1, _08066D10 - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - mov r2, r8 - bl SetBattleBarStruct - b _08066D3E - .align 2, 0 -_08066CFC: .4byte gUnknown_2022D08 -_08066D00: .4byte gUnknown_2023D08 -_08066D04: .4byte 0x00007FFF -_08066D08: .4byte gUnknown_2023D12 -_08066D0C: .4byte gUnknown_20243E8 -_08066D10: .4byte gUnknown_3005AD0 -_08066D14: - ldr r1, _08066D5C - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08066D60 - adds r0, r0, r1 - movs r1, #0x3a - bl GetMonData - adds r2, r0, #0 - mov r1, sb - ldrb r0, [r1] - ldr r1, _08066D64 - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - movs r3, #0 - bl SetBattleBarStruct -_08066D3E: - ldr r1, _08066D68 - ldr r0, _08066D6C - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08066D70 - str r1, [r0] - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08066D5C: .4byte gUnknown_2023D12 -_08066D60: .4byte gUnknown_20243E8 -_08066D64: .4byte gUnknown_3005AD0 -_08066D68: .4byte gUnknown_3005AC0 -_08066D6C: .4byte gUnknown_2023D08 -_08066D70: .4byte sub_080647A4 - thumb_func_end LinkOpponentHandleHealthBarUpdate - - thumb_func_start LinkOpponentHandleExpUpdate -LinkOpponentHandleExpUpdate: @ 0x08066D74 - push {lr} - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkOpponentHandleExpUpdate - - thumb_func_start LinkOpponentHandleStatusIconUpdate -LinkOpponentHandleStatusIconUpdate: @ 0x08066D80 - push {r4, lr} - ldr r4, _08066DDC - ldrb r0, [r4] - bl mplay_80342A4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08066DD4 - ldr r0, _08066DE0 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - ldr r2, _08066DE4 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _08066DE8 - adds r1, r1, r2 - movs r2, #9 - bl UpdateHealthboxAttribute - ldrb r2, [r4] - ldr r0, _08066DEC - ldr r0, [r0] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r1, _08066DF0 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08066DF4 - str r1, [r0] -_08066DD4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08066DDC: .4byte gUnknown_2023D08 -_08066DE0: .4byte gUnknown_3005AD0 -_08066DE4: .4byte gUnknown_2023D12 -_08066DE8: .4byte gUnknown_20243E8 -_08066DEC: .4byte gUnknown_2024174 -_08066DF0: .4byte gUnknown_3005AC0 -_08066DF4: .4byte sub_08064BEC - thumb_func_end LinkOpponentHandleStatusIconUpdate - - thumb_func_start LinkOpponentHandleStatusAnimation -LinkOpponentHandleStatusAnimation: @ 0x08066DF8 - push {r4, r5, lr} - ldr r5, _08066E50 - ldrb r0, [r5] - bl mplay_80342A4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08066E48 - ldr r4, _08066E54 - ldrb r3, [r5] - lsls r3, r3, #9 - adds r0, r4, #1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, #2 - adds r1, r3, r1 - ldrb r1, [r1] - adds r2, r4, #3 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, r2, #8 - orrs r1, r2 - adds r2, r4, #4 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, r2, #0x10 - orrs r1, r2 - adds r4, #5 - adds r3, r3, r4 - ldrb r2, [r3] - lsls r2, r2, #0x18 - orrs r1, r2 - bl InitAndLaunchChosenStatusAnimation - ldr r1, _08066E58 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08066E5C - str r1, [r0] -_08066E48: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08066E50: .4byte gUnknown_2023D08 -_08066E54: .4byte gUnknown_2022D08 -_08066E58: .4byte gUnknown_3005AC0 -_08066E5C: .4byte sub_08064BEC - thumb_func_end LinkOpponentHandleStatusAnimation - - thumb_func_start LinkOpponentHandleStatusXor -LinkOpponentHandleStatusXor: @ 0x08066E60 - push {lr} - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkOpponentHandleStatusXor - - thumb_func_start LinkOpponentHandleDataTransfer -LinkOpponentHandleDataTransfer: @ 0x08066E6C - push {lr} - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkOpponentHandleDataTransfer - - thumb_func_start LinkOpponentHandleDMA3Transfer -LinkOpponentHandleDMA3Transfer: @ 0x08066E78 - push {lr} - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkOpponentHandleDMA3Transfer - - thumb_func_start LinkOpponentHandlePlayBGM -LinkOpponentHandlePlayBGM: @ 0x08066E84 - push {lr} - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkOpponentHandlePlayBGM - - thumb_func_start LinkOpponentHandleCmd32 -LinkOpponentHandleCmd32: @ 0x08066E90 - push {lr} - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkOpponentHandleCmd32 - - thumb_func_start LinkOpponentHandleTwoReturnValues -LinkOpponentHandleTwoReturnValues: @ 0x08066E9C - push {lr} - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkOpponentHandleTwoReturnValues - - thumb_func_start LinkOpponentHandleChosenMonReturnValue -LinkOpponentHandleChosenMonReturnValue: @ 0x08066EA8 - push {lr} - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkOpponentHandleChosenMonReturnValue - - thumb_func_start LinkOpponentHandleOneReturnValue -LinkOpponentHandleOneReturnValue: @ 0x08066EB4 - push {lr} - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkOpponentHandleOneReturnValue - - thumb_func_start LinkOpponentHandleOneReturnValue_Duplicate -LinkOpponentHandleOneReturnValue_Duplicate: @ 0x08066EC0 - push {lr} - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkOpponentHandleOneReturnValue_Duplicate - - thumb_func_start LinkOpponentHandleCmd37 -LinkOpponentHandleCmd37: @ 0x08066ECC - push {lr} - ldr r2, _08066EE4 - ldrb r1, [r2] - movs r0, #0x80 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_08066EE4: .4byte gUnknown_20229C0 - thumb_func_end LinkOpponentHandleCmd37 - - thumb_func_start LinkOpponentHandleCmd38 -LinkOpponentHandleCmd38: @ 0x08066EE8 - push {lr} - ldr r3, _08066F14 - ldr r1, _08066F18 - ldr r0, _08066F1C - ldrb r0, [r0] - lsls r0, r0, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - ldrb r2, [r3] - movs r0, #0x80 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_08066F14: .4byte gUnknown_20229C0 -_08066F18: .4byte gUnknown_2022D08 -_08066F1C: .4byte gUnknown_2023D08 - thumb_func_end LinkOpponentHandleCmd38 - - thumb_func_start LinkOpponentHandleCmd39 -LinkOpponentHandleCmd39: @ 0x08066F20 - push {lr} - ldr r2, _08066F34 - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_08066F34: .4byte gUnknown_20229C0 - thumb_func_end LinkOpponentHandleCmd39 - - thumb_func_start LinkOpponentHandleCmd40 -LinkOpponentHandleCmd40: @ 0x08066F38 - push {lr} - ldr r3, _08066F5C - ldr r1, [r3] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x1f - movs r0, #1 - eors r1, r0 - lsls r1, r1, #7 - ldrb r2, [r3] - movs r0, #0x7f - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_08066F5C: .4byte gUnknown_20229C0 - thumb_func_end LinkOpponentHandleCmd40 - - thumb_func_start LinkOpponentHandleHitAnimation -LinkOpponentHandleHitAnimation: @ 0x08066F60 - push {r4, lr} - ldr r3, _08066F88 - ldr r2, _08066F8C - ldr r4, _08066F90 - ldrb r0, [r4] - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - bge _08066F94 - bl LinkOpponentBufferExecCompleted - b _08066FBE - .align 2, 0 -_08066F88: .4byte gUnknown_20205AC -_08066F8C: .4byte gUnknown_2023E88 -_08066F90: .4byte gUnknown_2023D08 -_08066F94: - ldr r1, _08066FC4 - movs r0, #1 - strb r0, [r1] - ldrb r0, [r4] - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r1, #0 - strh r1, [r0, #0x30] - ldrb r0, [r4] - bl sub_080763FC - ldr r1, _08066FC8 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08066FCC - str r1, [r0] -_08066FBE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08066FC4: .4byte gUnknown_202415D -_08066FC8: .4byte gUnknown_3005AC0 -_08066FCC: .4byte sub_080648C8 - thumb_func_end LinkOpponentHandleHitAnimation - - thumb_func_start LinkOpponentHandleCmd42 -LinkOpponentHandleCmd42: @ 0x08066FD0 - push {lr} - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkOpponentHandleCmd42 - - thumb_func_start LinkOpponentHandlePlaySE -LinkOpponentHandlePlaySE: @ 0x08066FDC - push {r4, lr} - ldr r4, _08067018 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - movs r3, #0x3f - cmp r0, #0 - bne _08066FF0 - movs r3, #0xc0 -_08066FF0: - ldr r2, _0806701C - ldrb r1, [r4] - lsls r1, r1, #9 - adds r0, r2, #1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, #2 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - lsls r1, r3, #0x18 - asrs r1, r1, #0x18 - bl PlaySE12WithPanning - bl LinkOpponentBufferExecCompleted - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08067018: .4byte gUnknown_2023D08 -_0806701C: .4byte gUnknown_2022D08 - thumb_func_end LinkOpponentHandlePlaySE - - thumb_func_start sub_08067020 -sub_08067020: @ 0x08067020 - push {r4, r5, lr} - ldr r4, _08067054 - ldr r5, _08067058 - ldrb r0, [r5] - lsls r3, r0, #9 - adds r0, r4, #3 - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, #0 - beq _0806705C - bl BattleStopLowHpSound - ldrb r1, [r5] - lsls r1, r1, #9 - adds r0, r4, #1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, r4, #2 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - bl PlayBGM - b _08067070 - .align 2, 0 -_08067054: .4byte gUnknown_2022D08 -_08067058: .4byte gUnknown_2023D08 -_0806705C: - adds r0, r4, #1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, #2 - adds r1, r3, r1 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - bl PlayFanfare -_08067070: - bl LinkOpponentBufferExecCompleted - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08067020 - - thumb_func_start sub_0806707C -sub_0806707C: @ 0x0806707C - push {lr} - ldr r1, _080670AC - ldr r0, _080670B0 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080670B4 - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x19 - movs r2, #5 - bl PlayCry3 - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_080670AC: .4byte gUnknown_2023D12 -_080670B0: .4byte gUnknown_2023D08 -_080670B4: .4byte gUnknown_20243E8 - thumb_func_end sub_0806707C - - thumb_func_start sub_080670B8 -sub_080670B8: @ 0x080670B8 - push {lr} - ldr r1, _080670E0 - ldr r0, _080670E4 - ldrb r0, [r0] - lsls r0, r0, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - bl HandleIntroSlide - ldr r2, _080670E8 - ldrh r0, [r2] - movs r1, #1 - orrs r0, r1 - strh r0, [r2] - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_080670E0: .4byte gUnknown_2022D08 -_080670E4: .4byte gUnknown_2023D08 -_080670E8: .4byte gUnknown_20240A0 - thumb_func_end sub_080670B8 - - thumb_func_start LinkOpponentHandleIntroTrainerBallThrow -LinkOpponentHandleIntroTrainerBallThrow: @ 0x080670EC - push {r4, r5, r6, lr} - ldr r5, _080671CC - ldr r6, _080671D0 - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _080671D4 - adds r0, r0, r4 - bl SetSpritePrimaryCoordsFromSecondaryCoords - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0x23 - strh r1, [r0, #0x2e] - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0x8c - lsls r1, r1, #1 - strh r1, [r0, #0x32] - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r0, #0x22] - strh r1, [r0, #0x36] - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _080671D8 - str r1, [r0] - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _080671DC - bl StoreSpriteCallbackInData6 - ldr r0, _080671E0 - movs r1, #5 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _080671E4 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r4 - ldrb r0, [r6] - strh r0, [r1, #8] - ldr r3, _080671E8 - ldr r0, [r3] - ldrb r2, [r6] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080671AE - ldr r0, _080671EC - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r4 - ldr r1, _080671F0 - str r1, [r0] -_080671AE: - ldr r0, [r3] - ldr r2, [r0, #8] - ldrb r0, [r2, #9] - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #9] - ldr r1, _080671F4 - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _080671F8 - str r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080671CC: .4byte gUnknown_2023E88 -_080671D0: .4byte gUnknown_2023D08 -_080671D4: .4byte gUnknown_20205AC -_080671D8: .4byte sub_080A67B4 -_080671DC: .4byte sub_080672E0 -_080671E0: .4byte sub_080671FC -_080671E4: .4byte gUnknown_3005B60 -_080671E8: .4byte gUnknown_2024174 -_080671EC: .4byte gUnknown_2024158 -_080671F0: .4byte Task_HidePartyStatusSummary -_080671F4: .4byte gUnknown_3005AC0 -_080671F8: .4byte sub_08063F74 - thumb_func_end LinkOpponentHandleIntroTrainerBallThrow - - thumb_func_start sub_080671FC -sub_080671FC: @ 0x080671FC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r7, _08067254 - ldrb r0, [r7] - mov sb, r0 - ldr r1, _08067258 - mov r2, r8 - lsls r0, r2, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r0, [r0, #8] - strb r0, [r7] - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08067236 - ldr r0, _0806725C - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08067268 -_08067236: - ldr r0, _08067260 - ldrb r1, [r7] - lsls r2, r1, #9 - adds r0, #1 - adds r2, r2, r0 - ldr r0, _08067264 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - strb r0, [r2] - ldrb r0, [r7] - movs r1, #0 - bl sub_08066078 - b _080672A8 - .align 2, 0 -_08067254: .4byte gUnknown_2023D08 -_08067258: .4byte gUnknown_3005B60 -_0806725C: .4byte gUnknown_2022C90 -_08067260: .4byte gUnknown_2022D08 -_08067264: .4byte gUnknown_2023D12 -_08067268: - ldr r4, _080672CC - ldrb r0, [r7] - lsls r1, r0, #9 - adds r4, #1 - adds r1, r1, r4 - ldr r6, _080672D0 - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - movs r1, #0 - bl sub_08066078 - ldrb r0, [r7] - movs r5, #2 - eors r0, r5 - strb r0, [r7] - ldrb r0, [r7] - lsls r1, r0, #9 - adds r1, r1, r4 - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - movs r1, #0 - bl sub_08066078 - ldrb r0, [r7] - eors r0, r5 - strb r0, [r7] -_080672A8: - ldr r1, _080672D4 - ldr r2, _080672D8 - ldrb r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _080672DC - str r1, [r0] - mov r0, sb - strb r0, [r2] - mov r0, r8 - bl DestroyTask - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080672CC: .4byte gUnknown_2022D08 -_080672D0: .4byte gUnknown_2023D12 -_080672D4: .4byte gUnknown_3005AC0 -_080672D8: .4byte gUnknown_2023D08 -_080672DC: .4byte sub_08064318 - thumb_func_end sub_080671FC - - thumb_func_start sub_080672E0 -sub_080672E0: @ 0x080672E0 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #6] - bl FreeTrainerFrontPicPalette - adds r0, r4, #0 - bl FreeSpriteOamMatrix - adds r0, r4, #0 - bl DestroySprite - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080672E0 - - thumb_func_start sub_080672FC -sub_080672FC: @ 0x080672FC - push {r4, r5, r6, r7, lr} - ldr r1, _08067324 - ldr r0, _08067328 - ldrb r2, [r0] - lsls r0, r2, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _0806732C - adds r0, r2, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806732C - bl LinkOpponentBufferExecCompleted - b _080673F6 - .align 2, 0 -_08067324: .4byte gUnknown_2022D08 -_08067328: .4byte gUnknown_2023D08 -_0806732C: - ldr r4, _08067384 - ldr r0, [r4] - ldr r3, _08067388 - ldrb r1, [r3] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r2, #1 - orrs r1, r2 - strb r1, [r0] - ldr r1, _0806738C - ldrb r2, [r3] - lsls r0, r2, #9 - adds r1, #2 - adds r0, r0, r1 - ldrb r0, [r0] - adds r7, r3, #0 - cmp r0, #0 - beq _08067398 - ldr r0, [r4] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r3, r0, r1 - ldrb r2, [r3, #1] - lsls r1, r2, #0x1b - lsrs r0, r1, #0x1c - cmp r0, #1 - bhi _08067390 - adds r0, #1 - movs r1, #0xf - ands r0, r1 - lsls r0, r0, #1 - movs r1, #0x1f - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #1] - b _080673F6 - .align 2, 0 -_08067384: .4byte gUnknown_2024174 -_08067388: .4byte gUnknown_2023D08 -_0806738C: .4byte gUnknown_2022D08 -_08067390: - movs r0, #0x1f - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r3, #1] -_08067398: - adds r5, r7, #0 - ldrb r0, [r5] - lsls r3, r0, #9 - ldr r4, _080673FC - adds r1, r3, r4 - subs r2, r4, #3 - adds r2, r3, r2 - ldrb r2, [r2] - subs r4, #2 - adds r3, r3, r4 - ldrb r3, [r3] - bl CreatePartyStatusSummarySprites - ldr r2, _08067400 - ldrb r1, [r5] - adds r1, r1, r2 - movs r3, #0 - strb r0, [r1] - ldr r6, _08067404 - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strb r3, [r0, #5] - ldrb r2, [r5] - lsls r0, r2, #9 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0 - beq _080673EA - ldr r0, [r6] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - movs r1, #0x5d - strb r1, [r0, #5] -_080673EA: - ldr r0, _08067408 - ldrb r1, [r7] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, _0806740C - str r0, [r1] -_080673F6: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080673FC: .4byte gUnknown_2022D0C -_08067400: .4byte gUnknown_2024158 -_08067404: .4byte gUnknown_2024174 -_08067408: .4byte gUnknown_3005AC0 -_0806740C: .4byte sub_08067410 - thumb_func_end sub_080672FC - - thumb_func_start sub_08067410 -sub_08067410: @ 0x08067410 - push {r4, lr} - ldr r4, _08067450 - ldr r0, [r4] - ldr r3, _08067454 - ldrb r1, [r3] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #5] - adds r2, r1, #1 - strb r2, [r0, #5] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #0x5c - bls _08067448 - ldr r0, [r4] - ldrb r1, [r3] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0 - strb r1, [r0, #5] - bl LinkOpponentBufferExecCompleted -_08067448: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08067450: .4byte gUnknown_2024174 -_08067454: .4byte gUnknown_2023D08 - thumb_func_end sub_08067410 - - thumb_func_start LinkOpponentHandleHidePartyStatusSummary -LinkOpponentHandleHidePartyStatusSummary: @ 0x08067458 - push {lr} - ldr r0, _08067494 - ldr r1, [r0] - ldr r0, _08067498 - ldrb r3, [r0] - ldr r1, [r1, #4] - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0806748A - ldr r2, _0806749C - ldr r0, _080674A0 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldr r1, _080674A4 - str r1, [r0] -_0806748A: - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_08067494: .4byte gUnknown_2024174 -_08067498: .4byte gUnknown_2023D08 -_0806749C: .4byte gUnknown_3005B60 -_080674A0: .4byte gUnknown_2024158 -_080674A4: .4byte Task_HidePartyStatusSummary - thumb_func_end LinkOpponentHandleHidePartyStatusSummary - - thumb_func_start LinkOpponentHandleEndBounceEffect -LinkOpponentHandleEndBounceEffect: @ 0x080674A8 - push {lr} - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkOpponentHandleEndBounceEffect - - thumb_func_start LinkOpponentHandleSpriteInvisibility -LinkOpponentHandleSpriteInvisibility: @ 0x080674B4 - push {r4, lr} - ldr r4, _08067504 - ldrb r0, [r4] - bl IsBattlerSpritePresent - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080674FA - ldr r3, _08067508 - ldr r0, _0806750C - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r0, _08067510 - lsls r1, r1, #9 - adds r0, #1 - adds r1, r1, r0 - adds r2, #0x3e - movs r0, #1 - ldrb r1, [r1] - ands r1, r0 - lsls r1, r1, #2 - ldrb r3, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4] - bl CopyBattleSpriteInvisibility -_080674FA: - bl LinkOpponentBufferExecCompleted - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08067504: .4byte gUnknown_2023D08 -_08067508: .4byte gUnknown_20205AC -_0806750C: .4byte gUnknown_2023E88 -_08067510: .4byte gUnknown_2022D08 - thumb_func_end LinkOpponentHandleSpriteInvisibility - - thumb_func_start LinkOpponentHandleBattleAnimation -LinkOpponentHandleBattleAnimation: @ 0x08067514 - push {r4, r5, r6, lr} - sub sp, #4 - ldr r5, _0806755C - ldrb r0, [r5] - bl mplay_80342A4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08067576 - ldr r4, _08067560 - ldrb r2, [r5] - lsls r1, r2, #9 - adds r0, r4, #1 - adds r0, r1, r0 - ldrb r6, [r0] - adds r0, r4, #2 - adds r0, r1, r0 - ldrb r3, [r0] - adds r4, #3 - adds r1, r1, r4 - ldrb r0, [r1] - lsls r0, r0, #8 - orrs r3, r0 - str r3, [sp] - adds r0, r2, #0 - adds r1, r2, #0 - adds r3, r6, #0 - bl TryHandleLaunchBattleTableAnimation - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08067564 - bl LinkOpponentBufferExecCompleted - b _08067570 - .align 2, 0 -_0806755C: .4byte gUnknown_2023D08 -_08067560: .4byte gUnknown_2022D08 -_08067564: - ldr r0, _08067580 - ldrb r1, [r5] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, _08067584 - str r0, [r1] -_08067570: - adds r0, r6, #0 - bl BattleTv_SetDataBasedOnAnimation -_08067576: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08067580: .4byte gUnknown_3005AC0 -_08067584: .4byte sub_08064C1C - thumb_func_end LinkOpponentHandleBattleAnimation - - thumb_func_start LinkOpponentHandleLinkStandbyMsg -LinkOpponentHandleLinkStandbyMsg: @ 0x08067588 - push {lr} - ldr r0, _080675A0 - ldrb r0, [r0] - lsls r0, r0, #9 - ldr r1, _080675A4 - adds r0, r0, r1 - bl sub_08185008 - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_080675A0: .4byte gUnknown_2023D08 -_080675A4: .4byte gUnknown_2022D0A - thumb_func_end LinkOpponentHandleLinkStandbyMsg - - thumb_func_start LinkOpponentHandleResetActionMoveSelection -LinkOpponentHandleResetActionMoveSelection: @ 0x080675A8 - push {lr} - bl LinkOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkOpponentHandleResetActionMoveSelection - - thumb_func_start LinkOpponentHandleCmd55 -LinkOpponentHandleCmd55: @ 0x080675B4 - push {r4, r5, lr} - ldr r5, _080675D8 - ldrb r0, [r5] - lsls r0, r0, #9 - ldr r4, _080675DC - adds r0, r0, r4 - bl sub_08185008 - ldrb r0, [r5] - lsls r0, r0, #9 - subs r4, #3 - adds r0, r0, r4 - ldrb r2, [r0] - cmp r2, #3 - bne _080675E4 - ldr r0, _080675E0 - strb r2, [r0] - b _080675EC - .align 2, 0 -_080675D8: .4byte gUnknown_2023D08 -_080675DC: .4byte gUnknown_2022D0C -_080675E0: .4byte gUnknown_2023FDE -_080675E4: - ldr r0, _08067638 - movs r1, #3 - eors r1, r2 - strb r1, [r0] -_080675EC: - ldr r0, _0806763C - ldr r3, [r0] - ldr r1, _08067640 - ldr r4, _08067644 - ldrb r0, [r4] - lsls r0, r0, #9 - adds r1, #2 - adds r0, r0, r1 - ldrb r0, [r0] - ldr r1, _08067648 - adds r3, r3, r1 - movs r1, #1 - ands r1, r0 - lsls r1, r1, #3 - ldrb r2, [r3] - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r0, #5 - bl FadeOutMapMusic - movs r0, #3 - bl BeginFastPaletteFade - bl LinkOpponentBufferExecCompleted - ldr r1, _0806764C - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08067650 - str r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08067638: .4byte gUnknown_2023FDE -_0806763C: .4byte gUnknown_3005AF0 -_08067640: .4byte gUnknown_2022D08 -_08067644: .4byte gUnknown_2023D08 -_08067648: .4byte 0x00000CA9 -_0806764C: .4byte gUnknown_3005AC0 -_08067650: .4byte sub_080583C0 - thumb_func_end LinkOpponentHandleCmd55 - - thumb_func_start sub_08067654 -sub_08067654: @ 0x08067654 - bx lr - .align 2, 0 - thumb_func_end sub_08067654 - - thumb_func_start ZeroBoxMonData -ZeroBoxMonData: @ 0x08067658 - push {lr} - adds r2, r0, #0 - movs r1, #0 - movs r3, #0 -_08067660: - adds r0, r2, r1 - strb r3, [r0] - adds r1, #1 - cmp r1, #0x4f - bls _08067660 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ZeroBoxMonData - - thumb_func_start ZeroMonData -ZeroMonData: @ 0x08067670 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - bl ZeroBoxMonData - movs r0, #0 - str r0, [sp] - adds r0, r4, #0 - movs r1, #0x37 - mov r2, sp - bl SetMonData - adds r0, r4, #0 - movs r1, #0x38 - mov r2, sp - bl SetMonData - adds r0, r4, #0 - movs r1, #0x39 - mov r2, sp - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3a - mov r2, sp - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3b - mov r2, sp - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3c - mov r2, sp - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3d - mov r2, sp - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3e - mov r2, sp - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3f - mov r2, sp - bl SetMonData - movs r0, #0xff - str r0, [sp] - adds r0, r4, #0 - movs r1, #0x40 - mov r2, sp - bl SetMonData - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ZeroMonData - - thumb_func_start ZeroPlayerPartyMons -ZeroPlayerPartyMons: @ 0x080676F0 - push {r4, r5, lr} - ldr r4, _0806770C - movs r0, #0xfa - lsls r0, r0, #1 - adds r5, r4, r0 -_080676FA: - adds r0, r4, #0 - bl ZeroMonData - adds r4, #0x64 - cmp r4, r5 - ble _080676FA - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0806770C: .4byte gUnknown_2024190 - thumb_func_end ZeroPlayerPartyMons - - thumb_func_start ZeroEnemyPartyMons -ZeroEnemyPartyMons: @ 0x08067710 - push {r4, r5, lr} - ldr r4, _0806772C - movs r0, #0xfa - lsls r0, r0, #1 - adds r5, r4, r0 -_0806771A: - adds r0, r4, #0 - bl ZeroMonData - adds r4, #0x64 - cmp r4, r5 - ble _0806771A - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0806772C: .4byte gUnknown_20243E8 - thumb_func_end ZeroEnemyPartyMons - - thumb_func_start CreateMon -CreateMon: @ 0x08067730 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x1c - mov r8, r0 - adds r6, r1, #0 - ldr r4, [sp, #0x34] - ldr r7, [sp, #0x38] - ldr r5, [sp, #0x3c] - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - add r0, sp, #0x10 - strb r2, [r0] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - mov r0, r8 - str r3, [sp, #0x18] - bl ZeroMonData - str r4, [sp] - str r7, [sp, #4] - str r5, [sp, #8] - ldr r0, [sp, #0x40] - str r0, [sp, #0xc] - mov r0, r8 - adds r1, r6, #0 - add r2, sp, #0x10 - ldrb r2, [r2] - ldr r3, [sp, #0x18] - bl CreateBoxMon - mov r0, r8 - movs r1, #0x38 - add r2, sp, #0x10 - bl SetMonData - movs r0, #0xff - str r0, [sp, #0x14] - add r2, sp, #0x14 - mov r0, r8 - movs r1, #0x40 - bl SetMonData - mov r0, r8 - bl CalculateMonStats - add sp, #0x1c - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end CreateMon - - thumb_func_start CreateBoxMon -CreateBoxMon: @ 0x080677A0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - adds r7, r0, #0 - ldr r4, [sp, #0x40] - ldr r0, [sp, #0x48] - movs r5, #0xe - add r5, sp - strh r1, [r5] - add r6, sp, #0x10 - strb r2, [r6] - mov r5, sp - adds r5, #0x11 - strb r3, [r5] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - adds r0, r7, #0 - bl ZeroBoxMonData - cmp r4, #0 - beq _080677DC - ldr r0, [sp, #0x44] - str r0, [sp, #0x14] - b _080677F0 -_080677DC: - bl Random - adds r4, r0, #0 - bl Random - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r0, r0, #0x10 - orrs r4, r0 - str r4, [sp, #0x14] -_080677F0: - add r2, sp, #0x14 - adds r0, r7, #0 - movs r1, #0 - bl SetBoxMonData - add r0, sp, #0x18 - mov sb, r0 - add r5, sp, #0xc - mov r1, sl - cmp r1, #2 - bne _08067848 - ldr r2, _08067840 - mov r8, r2 - ldr r6, _08067844 -_0806780C: - bl Random - adds r4, r0, #0 - bl Random - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r0, r0, #0x10 - orrs r4, r0 - str r4, [sp, #0x18] - adds r1, r4, #0 - mov r3, r8 - ands r1, r3 - lsrs r1, r1, #0x10 - ands r4, r6 - eors r1, r4 - ldr r2, [sp, #0x14] - adds r0, r2, #0 - ands r0, r3 - lsrs r0, r0, #0x10 - eors r1, r0 - ands r2, r6 - eors r1, r2 - cmp r1, #7 - bls _0806780C - b _0806786E - .align 2, 0 -_08067840: .4byte 0xFFFF0000 -_08067844: .4byte 0x0000FFFF -_08067848: - mov r0, sl - cmp r0, #1 - bne _08067854 - ldr r0, [sp, #0x4c] - str r0, [sp, #0x18] - b _0806786E -_08067854: - ldr r0, _08067998 - ldr r2, [r0] - ldrb r1, [r2, #0xa] - ldrb r0, [r2, #0xb] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #0xc] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #0xd] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [sp, #0x18] -_0806786E: - adds r0, r7, #0 - movs r1, #1 - mov r2, sb - bl SetBoxMonData - adds r0, r7, #0 - bl CalculateBoxMonChecksum - strh r0, [r5] - adds r0, r7, #0 - movs r1, #9 - adds r2, r5, #0 - bl SetBoxMonData - adds r0, r7, #0 - bl EncryptBoxMon - mov r0, sp - ldrh r1, [r0, #0xe] - bl sub_0806B3DC - adds r0, r7, #0 - movs r1, #2 - mov r2, sp - bl SetBoxMonData - ldr r2, _0806799C - adds r0, r7, #0 - movs r1, #3 - bl SetBoxMonData - ldr r5, _08067998 - ldr r2, [r5] - adds r0, r7, #0 - movs r1, #7 - bl SetBoxMonData - adds r0, r7, #0 - movs r1, #0xb - mov r2, sp - adds r2, #0xe - bl SetBoxMonData - ldr r4, _080679A0 - mov r2, sp - ldrh r1, [r2, #0xe] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r1, [r0, #0x13] - movs r0, #0xca - lsls r0, r0, #1 - adds r2, r1, #0 - muls r2, r0, r2 - mov r3, sp - ldrb r0, [r3, #0x10] - lsls r0, r0, #2 - ldr r1, _080679A4 - adds r0, r0, r1 - adds r2, r2, r0 - adds r0, r7, #0 - movs r1, #0x19 - bl SetBoxMonData - mov r1, sp - ldrh r0, [r1, #0xe] - lsls r2, r0, #3 - subs r2, r2, r0 - lsls r2, r2, #2 - adds r4, #0x12 - adds r2, r2, r4 - adds r0, r7, #0 - movs r1, #0x20 - bl SetBoxMonData - bl GetCurrentRegionMapSectionId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x18] - adds r0, r7, #0 - movs r1, #0x23 - mov r2, sb - bl SetBoxMonData - adds r0, r7, #0 - movs r1, #0x24 - add r2, sp, #0x10 - bl SetBoxMonData - ldr r2, _080679A8 - adds r0, r7, #0 - movs r1, #0x25 - bl SetBoxMonData - movs r0, #4 - str r0, [sp, #0x18] - adds r0, r7, #0 - movs r1, #0x26 - mov r2, sb - bl SetBoxMonData - ldr r2, [r5] - adds r2, #8 - adds r0, r7, #0 - movs r1, #0x31 - bl SetBoxMonData - mov r2, sp - ldrb r0, [r2, #0x11] - cmp r0, #0x1f - bhi _080679AC - adds r0, r7, #0 - movs r1, #0x27 - adds r2, #0x11 - bl SetBoxMonData - adds r0, r7, #0 - movs r1, #0x28 - mov r2, sp - adds r2, #0x11 - bl SetBoxMonData - adds r0, r7, #0 - movs r1, #0x29 - mov r2, sp - adds r2, #0x11 - bl SetBoxMonData - adds r0, r7, #0 - movs r1, #0x2a - mov r2, sp - adds r2, #0x11 - bl SetBoxMonData - adds r0, r7, #0 - movs r1, #0x2b - mov r2, sp - adds r2, #0x11 - bl SetBoxMonData - adds r0, r7, #0 - movs r1, #0x2c - mov r2, sp - adds r2, #0x11 - bl SetBoxMonData - b _08067A34 - .align 2, 0 -_08067998: .4byte gUnknown_3005AF0 -_0806799C: .4byte gUnknown_829BDA5 -_080679A0: .4byte gUnknown_82F0D54 -_080679A4: .4byte gUnknown_82F00B4 -_080679A8: .4byte gUnknown_829BDA4 -_080679AC: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x18] - movs r3, #0x1f - mov r8, r3 - ands r0, r3 - str r0, [sp, #0x1c] - add r4, sp, #0x1c - adds r0, r7, #0 - movs r1, #0x27 - adds r2, r4, #0 - bl SetBoxMonData - ldr r0, [sp, #0x18] - movs r6, #0xf8 - lsls r6, r6, #2 - ands r0, r6 - lsrs r0, r0, #5 - str r0, [sp, #0x1c] - adds r0, r7, #0 - movs r1, #0x28 - adds r2, r4, #0 - bl SetBoxMonData - ldr r0, [sp, #0x18] - movs r5, #0xf8 - lsls r5, r5, #7 - ands r0, r5 - lsrs r0, r0, #0xa - str r0, [sp, #0x1c] - adds r0, r7, #0 - movs r1, #0x29 - adds r2, r4, #0 - bl SetBoxMonData - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x18] - mov r1, r8 - ands r0, r1 - str r0, [sp, #0x1c] - adds r0, r7, #0 - movs r1, #0x2a - adds r2, r4, #0 - bl SetBoxMonData - ldr r0, [sp, #0x18] - ands r0, r6 - lsrs r0, r0, #5 - str r0, [sp, #0x1c] - adds r0, r7, #0 - movs r1, #0x2b - adds r2, r4, #0 - bl SetBoxMonData - ldr r0, [sp, #0x18] - ands r0, r5 - lsrs r0, r0, #0xa - str r0, [sp, #0x1c] - adds r0, r7, #0 - movs r1, #0x2c - adds r2, r4, #0 - bl SetBoxMonData -_08067A34: - ldr r2, _08067A70 - mov r3, sp - ldrh r1, [r3, #0xe] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #0x17] - cmp r0, #0 - beq _08067A5A - ldr r0, [sp, #0x14] - movs r1, #1 - ands r0, r1 - str r0, [sp, #0x18] - adds r0, r7, #0 - movs r1, #0x2e - mov r2, sb - bl SetBoxMonData -_08067A5A: - adds r0, r7, #0 - bl GiveBoxMonInitialMoveset - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08067A70: .4byte gUnknown_82F0D54 - thumb_func_end CreateBoxMon - - thumb_func_start CreateMonWithNature -CreateMonWithNature: @ 0x08067A74 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x10 - mov sb, r0 - ldr r0, [sp, #0x2c] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r8, r1 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r6, r3, #0x18 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_08067A94: - bl Random - adds r4, r0, #0 - bl Random - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r0, r0, #0x10 - orrs r4, r0 - adds r0, r4, #0 - bl GetNatureFromPersonality - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r5, r0 - bne _08067A94 - movs r0, #1 - str r0, [sp] - str r4, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - str r0, [sp, #0xc] - mov r0, sb - mov r1, r8 - adds r2, r7, #0 - adds r3, r6, #0 - bl CreateMon - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CreateMonWithNature - - thumb_func_start CreateMonWithGenderNatureLetter -CreateMonWithGenderNatureLetter: @ 0x08067ADC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - str r0, [sp, #0x10] - ldr r4, [sp, #0x38] - ldr r5, [sp, #0x3c] - ldr r0, [sp, #0x40] - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x14] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov sl, r3 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r8, r4 - lsls r5, r5, #0x18 - lsrs r6, r5, #0x18 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - mov sb, r1 - movs r1, #0xff - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - cmp r0, #0x1b - bhi _08067B82 -_08067B1C: - bl Random - adds r4, r0, #0 - bl Random - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r0, r0, #0x10 - orrs r4, r0 - movs r0, #0xc0 - lsls r0, r0, #0x12 - ands r0, r4 - lsrs r0, r0, #0x12 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r4 - lsrs r1, r1, #0xc - orrs r0, r1 - movs r1, #0xc0 - lsls r1, r1, #2 - ands r1, r4 - lsrs r1, r1, #6 - orrs r0, r1 - movs r1, #3 - ands r1, r4 - orrs r0, r1 - movs r1, #0x1c - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r4, #0 - bl GetNatureFromPersonality - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r6, r0 - bne _08067B1C - adds r0, r7, #0 - adds r1, r4, #0 - bl GetGenderFromSpeciesAndPersonality - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r8, r0 - bne _08067B1C - mov r0, sb - subs r0, #1 - cmp r5, r0 - bne _08067B1C - b _08067BB2 -_08067B82: - bl Random - adds r4, r0, #0 - bl Random - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r0, r0, #0x10 - orrs r4, r0 - adds r0, r4, #0 - bl GetNatureFromPersonality - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r6, r0 - bne _08067B82 - adds r0, r7, #0 - adds r1, r4, #0 - bl GetGenderFromSpeciesAndPersonality - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r8, r0 - bne _08067B82 -_08067BB2: - movs r0, #1 - str r0, [sp] - str r4, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - str r0, [sp, #0xc] - ldr r0, [sp, #0x10] - adds r1, r7, #0 - ldr r2, [sp, #0x14] - mov r3, sl - bl CreateMon - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CreateMonWithGenderNatureLetter - - thumb_func_start CreateMaleMon -CreateMaleMon: @ 0x08067BDC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x10 - mov r8, r0 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 -_08067BEE: - bl Random - adds r4, r0, #0 - bl Random - lsls r4, r4, #0x10 - lsrs r5, r4, #0x10 - lsls r0, r0, #0x10 - orrs r5, r0 - bl Random - adds r4, r0, #0 - bl Random - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r0, r0, #0x10 - orrs r4, r0 - adds r0, r6, #0 - adds r1, r4, #0 - bl GetGenderFromSpeciesAndPersonality - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08067BEE - movs r0, #1 - str r0, [sp] - str r4, [sp, #4] - str r0, [sp, #8] - str r5, [sp, #0xc] - mov r0, r8 - adds r1, r6, #0 - adds r2, r7, #0 - movs r3, #0x20 - bl CreateMon - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CreateMaleMon - - thumb_func_start CreateMonWithIVsPersonality -CreateMonWithIVsPersonality: @ 0x08067C44 - push {r4, lr} - sub sp, #0x14 - adds r4, r0, #0 - str r3, [sp, #0x10] - ldr r3, [sp, #0x1c] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r0, #1 - str r0, [sp] - str r3, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - str r0, [sp, #0xc] - adds r0, r4, #0 - movs r3, #0 - bl CreateMon - adds r0, r4, #0 - movs r1, #0x42 - add r2, sp, #0x10 - bl SetMonData - adds r0, r4, #0 - bl CalculateMonStats - add sp, #0x14 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CreateMonWithIVsPersonality - - thumb_func_start CreateMonWithIVsOTID -CreateMonWithIVsOTID: @ 0x08067C84 - push {r4, r5, lr} - sub sp, #0x10 - adds r5, r0, #0 - adds r4, r3, #0 - ldr r3, [sp, #0x1c] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - str r3, [sp, #0xc] - adds r0, r5, #0 - movs r3, #0 - bl CreateMon - adds r0, r5, #0 - movs r1, #0x27 - adds r2, r4, #0 - bl SetMonData - adds r2, r4, #1 - adds r0, r5, #0 - movs r1, #0x28 - bl SetMonData - adds r2, r4, #2 - adds r0, r5, #0 - movs r1, #0x29 - bl SetMonData - adds r2, r4, #3 - adds r0, r5, #0 - movs r1, #0x2a - bl SetMonData - adds r2, r4, #4 - adds r0, r5, #0 - movs r1, #0x2b - bl SetMonData - adds r4, #5 - adds r0, r5, #0 - movs r1, #0x2c - adds r2, r4, #0 - bl SetMonData - adds r0, r5, #0 - bl CalculateMonStats - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CreateMonWithIVsOTID - - thumb_func_start CreateMonWithEVSpread -CreateMonWithEVSpread: @ 0x08067CF8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x14 - adds r7, r0, #0 - ldr r0, [sp, #0x2c] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r6, #0 - str r6, [sp] - str r6, [sp, #4] - str r6, [sp, #8] - str r6, [sp, #0xc] - adds r0, r7, #0 - bl CreateMon - mov r4, r8 - movs r1, #1 - movs r5, #5 -_08067D2C: - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - beq _08067D36 - adds r6, #1 -_08067D36: - lsrs r4, r4, #1 - subs r5, #1 - cmp r5, #0 - bge _08067D2C - movs r0, #0xff - lsls r0, r0, #1 - adds r1, r6, #0 - bl __divsi3 - add r1, sp, #0x10 - strh r0, [r1] - movs r4, #1 - movs r5, #0 -_08067D50: - mov r0, r8 - ands r0, r4 - cmp r0, #0 - beq _08067D64 - adds r1, r5, #0 - adds r1, #0x1a - adds r0, r7, #0 - add r2, sp, #0x10 - bl SetMonData -_08067D64: - lsls r0, r4, #0x19 - lsrs r4, r0, #0x18 - adds r5, #1 - cmp r5, #5 - ble _08067D50 - adds r0, r7, #0 - bl CalculateMonStats - add sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end CreateMonWithEVSpread - - thumb_func_start sub_08067D80 -sub_08067D80: @ 0x08067D80 - push {r4, r5, r6, r7, lr} - sub sp, #0x14 - adds r7, r0, #0 - adds r6, r1, #0 - ldrh r1, [r6] - ldrb r2, [r6, #0xc] - movs r3, #1 - str r3, [sp] - ldr r0, [r6, #0x1c] - str r0, [sp, #4] - str r3, [sp, #8] - ldr r0, [r6, #0x14] - str r0, [sp, #0xc] - adds r0, r7, #0 - movs r3, #0 - bl CreateMon - movs r5, #0 - adds r4, r6, #4 -_08067DA6: - ldrh r1, [r4] - lsls r2, r5, #0x18 - lsrs r2, r2, #0x18 - adds r0, r7, #0 - bl SetMonMoveSlot - adds r4, #2 - adds r5, #1 - cmp r5, #3 - ble _08067DA6 - adds r2, r6, #0 - adds r2, #0xd - adds r0, r7, #0 - movs r1, #0x15 - bl SetMonData - adds r2, r6, #2 - adds r0, r7, #0 - movs r1, #0xc - bl SetMonData - adds r2, r6, #0 - adds r2, #0x20 - adds r0, r7, #0 - movs r1, #2 - bl SetMonData - adds r2, r6, #0 - adds r2, #0x2b - adds r0, r7, #0 - movs r1, #0x20 - bl SetMonData - adds r2, r6, #0 - adds r2, #0xe - adds r0, r7, #0 - movs r1, #0x1a - bl SetMonData - adds r2, r6, #0 - adds r2, #0xf - adds r0, r7, #0 - movs r1, #0x1b - bl SetMonData - adds r2, r6, #0 - adds r2, #0x10 - adds r0, r7, #0 - movs r1, #0x1c - bl SetMonData - adds r2, r6, #0 - adds r2, #0x11 - adds r0, r7, #0 - movs r1, #0x1d - bl SetMonData - adds r2, r6, #0 - adds r2, #0x12 - adds r0, r7, #0 - movs r1, #0x1e - bl SetMonData - adds r2, r6, #0 - adds r2, #0x13 - adds r0, r7, #0 - movs r1, #0x1f - bl SetMonData - ldrb r0, [r6, #0x1b] - lsrs r0, r0, #7 - add r1, sp, #0x10 - strb r0, [r1] - adds r0, r7, #0 - movs r1, #0x2e - add r2, sp, #0x10 - bl SetMonData - add r1, sp, #0x10 - ldrb r0, [r6, #0x18] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r7, #0 - movs r1, #0x27 - add r2, sp, #0x10 - bl SetMonData - add r1, sp, #0x10 - ldrh r0, [r6, #0x18] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r7, #0 - movs r1, #0x28 - add r2, sp, #0x10 - bl SetMonData - add r1, sp, #0x10 - ldrb r0, [r6, #0x19] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r7, #0 - movs r1, #0x29 - add r2, sp, #0x10 - bl SetMonData - add r1, sp, #0x10 - ldr r0, [r6, #0x18] - lsls r0, r0, #0xc - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r7, #0 - movs r1, #0x2a - add r2, sp, #0x10 - bl SetMonData - add r1, sp, #0x10 - ldrh r0, [r6, #0x1a] - lsls r0, r0, #0x17 - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r7, #0 - movs r1, #0x2b - add r2, sp, #0x10 - bl SetMonData - add r1, sp, #0x10 - ldrb r0, [r6, #0x1b] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r7, #0 - movs r1, #0x2c - add r2, sp, #0x10 - bl SetMonData - adds r0, r7, #0 - bl sub_0806E3B0 - adds r0, r7, #0 - bl CalculateMonStats - add sp, #0x14 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08067D80 - - thumb_func_start CreateBattleTowerMon2 -CreateBattleTowerMon2: @ 0x08067ED0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x30 - adds r7, r0, #0 - adds r5, r1, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r0, _08067F04 - ldr r0, [r0] - ldr r1, _08067F08 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _08067F0C - lsls r0, r1, #0x1e - lsrs r0, r0, #0x1e - bl GetFrontierEnemyMonLevel - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - b _08067F14 - .align 2, 0 -_08067F04: .4byte gUnknown_3005AF0 -_08067F08: .4byte 0x00000CA9 -_08067F0C: - movs r3, #0x32 - cmp r2, #0 - bne _08067F14 - ldrb r3, [r5, #0xc] -_08067F14: - ldrh r1, [r5] - movs r2, #1 - str r2, [sp] - ldr r0, [r5, #0x1c] - str r0, [sp, #4] - str r2, [sp, #8] - ldr r0, [r5, #0x14] - str r0, [sp, #0xc] - adds r0, r7, #0 - adds r2, r3, #0 - movs r3, #0 - bl CreateMon - movs r6, #0 - movs r0, #0xd - adds r0, r0, r5 - mov r8, r0 - adds r1, r5, #2 - mov sb, r1 - movs r0, #0x20 - adds r0, r0, r5 - mov sl, r0 - adds r1, #0x29 - str r1, [sp, #0x2c] - adds r0, r5, #0 - adds r0, #0xe - str r0, [sp, #0x14] - subs r1, #0x1c - str r1, [sp, #0x18] - adds r0, #2 - str r0, [sp, #0x1c] - adds r1, #2 - str r1, [sp, #0x20] - adds r0, #2 - str r0, [sp, #0x24] - adds r1, #2 - str r1, [sp, #0x28] - adds r4, r5, #4 -_08067F60: - ldrh r1, [r4] - lsls r2, r6, #0x18 - lsrs r2, r2, #0x18 - adds r0, r7, #0 - bl SetMonMoveSlot - adds r4, #2 - adds r6, #1 - cmp r6, #3 - ble _08067F60 - adds r0, r7, #0 - movs r1, #0x15 - mov r2, r8 - bl SetMonData - adds r0, r7, #0 - movs r1, #0xc - mov r2, sb - bl SetMonData - adds r0, r7, #0 - movs r1, #2 - mov r2, sl - bl SetMonData - adds r0, r7, #0 - movs r1, #0x20 - ldr r2, [sp, #0x2c] - bl SetMonData - adds r0, r7, #0 - movs r1, #0x1a - ldr r2, [sp, #0x14] - bl SetMonData - adds r0, r7, #0 - movs r1, #0x1b - ldr r2, [sp, #0x18] - bl SetMonData - adds r0, r7, #0 - movs r1, #0x1c - ldr r2, [sp, #0x1c] - bl SetMonData - adds r0, r7, #0 - movs r1, #0x1d - ldr r2, [sp, #0x20] - bl SetMonData - adds r0, r7, #0 - movs r1, #0x1e - ldr r2, [sp, #0x24] - bl SetMonData - adds r0, r7, #0 - movs r1, #0x1f - ldr r2, [sp, #0x28] - bl SetMonData - ldrb r0, [r5, #0x1b] - lsrs r0, r0, #7 - add r1, sp, #0x10 - strb r0, [r1] - adds r0, r7, #0 - movs r1, #0x2e - add r2, sp, #0x10 - bl SetMonData - add r1, sp, #0x10 - ldrb r0, [r5, #0x18] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r7, #0 - movs r1, #0x27 - add r2, sp, #0x10 - bl SetMonData - add r1, sp, #0x10 - ldrh r0, [r5, #0x18] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r7, #0 - movs r1, #0x28 - add r2, sp, #0x10 - bl SetMonData - add r1, sp, #0x10 - ldrb r0, [r5, #0x19] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r7, #0 - movs r1, #0x29 - add r2, sp, #0x10 - bl SetMonData - add r1, sp, #0x10 - ldr r0, [r5, #0x18] - lsls r0, r0, #0xc - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r7, #0 - movs r1, #0x2a - add r2, sp, #0x10 - bl SetMonData - add r1, sp, #0x10 - ldrh r0, [r5, #0x1a] - lsls r0, r0, #0x17 - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r7, #0 - movs r1, #0x2b - add r2, sp, #0x10 - bl SetMonData - add r1, sp, #0x10 - ldrb r0, [r5, #0x1b] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r7, #0 - movs r1, #0x2c - add r2, sp, #0x10 - bl SetMonData - adds r0, r7, #0 - bl sub_0806E3B0 - adds r0, r7, #0 - bl CalculateMonStats - add sp, #0x30 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CreateBattleTowerMon2 - - thumb_func_start sub_08068080 -sub_08068080: @ 0x08068080 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x14 - adds r7, r0, #0 - mov sb, r1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r6, _08068170 - ldrb r0, [r1] - lsls r5, r0, #0x1b - lsrs r3, r5, #0x1b - lsls r1, r3, #1 - adds r1, r1, r3 - lsls r1, r1, #4 - adds r1, r1, r6 - ldrh r1, [r1, #8] - mov r8, r1 - lsls r1, r3, #1 - adds r1, r1, r3 - lsls r1, r1, #4 - adds r1, r1, r6 - ldrh r4, [r1, #8] - lsrs r4, r4, #8 - adds r5, r3, #0 - lsls r1, r5, #1 - adds r1, r1, r5 - lsls r1, r1, #4 - adds r1, r1, r6 - ldrb r1, [r1, #8] - lsls r1, r1, #8 - lsls r5, r2, #1 - adds r5, r5, r2 - lsls r5, r5, #2 - mov r2, sb - adds r6, r2, r5 - orrs r4, r1 - ldrh r1, [r6, #4] - adds r4, r4, r1 - ldrb r1, [r2, #2] - adds r4, r4, r1 - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1e - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetFrontierEnemyMonLevel - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrh r1, [r6, #4] - movs r0, #1 - str r0, [sp] - str r4, [sp, #4] - str r0, [sp, #8] - mov r0, r8 - str r0, [sp, #0xc] - adds r0, r7, #0 - movs r3, #0x1f - bl CreateMon - mov r1, sb - adds r2, r5, r1 - adds r2, #0xe - adds r0, r7, #0 - movs r1, #0xc - bl SetMonData - movs r4, #0 - mov r6, sb - adds r6, #6 -_08068112: - adds r0, r6, r5 - ldrh r1, [r0] - lsls r2, r4, #0x18 - lsrs r2, r2, #0x18 - adds r0, r7, #0 - bl SetMonMoveSlot - adds r5, #2 - adds r4, #1 - cmp r4, #3 - ble _08068112 - movs r1, #0x55 - add r0, sp, #0x10 - strh r1, [r0] - movs r4, #0 -_08068130: - adds r1, r4, #0 - adds r1, #0x1a - adds r0, r7, #0 - add r2, sp, #0x10 - bl SetMonData - adds r4, #1 - cmp r4, #5 - ble _08068130 - mov r2, sb - ldrb r0, [r2] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1b - lsls r2, r0, #1 - adds r2, r2, r0 - lsls r2, r2, #4 - ldr r0, _08068170 - adds r2, r2, r0 - adds r0, r7, #0 - movs r1, #7 - bl SetMonData - adds r0, r7, #0 - bl CalculateMonStats - add sp, #0x14 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08068170: .4byte gUnknown_85DC21C - thumb_func_end sub_08068080 - - thumb_func_start CreateMonWithEVSpreadNatureOTID -CreateMonWithEVSpreadNatureOTID: @ 0x08068174 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - adds r7, r0, #0 - ldr r0, [sp, #0x38] - ldr r4, [sp, #0x3c] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp, #0x14] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sl, r2 - lsls r3, r3, #0x18 - lsrs r5, r3, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r8, r4 - movs r6, #0 -_080681A4: - bl Random - adds r4, r0, #0 - bl Random - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r0, r0, #0x10 - orrs r4, r0 - adds r0, r4, #0 - bl GetNatureFromPersonality - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r5, r0 - bne _080681A4 - movs r0, #1 - str r0, [sp] - str r4, [sp, #4] - str r0, [sp, #8] - ldr r0, [sp, #0x40] - str r0, [sp, #0xc] - adds r0, r7, #0 - ldr r1, [sp, #0x14] - mov r2, sl - mov r3, sb - bl CreateMon - mov r5, r8 - movs r1, #1 - movs r4, #5 -_080681E2: - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _080681EC - adds r6, #1 -_080681EC: - lsrs r5, r5, #1 - subs r4, #1 - cmp r4, #0 - bge _080681E2 - movs r0, #0xff - lsls r0, r0, #1 - adds r1, r6, #0 - bl __divsi3 - add r1, sp, #0x10 - strh r0, [r1] - movs r5, #1 - movs r4, #0 -_08068206: - mov r0, r8 - ands r0, r5 - cmp r0, #0 - beq _0806821A - adds r1, r4, #0 - adds r1, #0x1a - adds r0, r7, #0 - add r2, sp, #0x10 - bl SetMonData -_0806821A: - lsls r0, r5, #0x19 - lsrs r5, r0, #0x18 - adds r4, #1 - cmp r4, #5 - ble _08068206 - adds r0, r7, #0 - bl CalculateMonStats - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CreateMonWithEVSpreadNatureOTID - - thumb_func_start sub_0806823C -sub_0806823C: @ 0x0806823C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - adds r6, r1, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - strh r0, [r6] - adds r0, r7, #0 - movs r1, #0xc - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xaf - bne _08068266 - movs r0, #0 -_08068266: - strh r0, [r6, #2] - movs r5, #0 - movs r0, #0x2b - adds r0, r0, r6 - mov r8, r0 - movs r1, #0x20 - adds r1, r1, r6 - mov sb, r1 - adds r4, r6, #4 -_08068278: - adds r1, r5, #0 - adds r1, #0xd - adds r0, r7, #0 - movs r2, #0 - bl GetMonData - strh r0, [r4] - adds r4, #2 - adds r5, #1 - cmp r5, #3 - ble _08068278 - adds r0, r7, #0 - movs r1, #0x38 - movs r2, #0 - bl GetMonData - strb r0, [r6, #0xc] - adds r0, r7, #0 - movs r1, #0x15 - movs r2, #0 - bl GetMonData - strb r0, [r6, #0xd] - adds r0, r7, #0 - movs r1, #1 - movs r2, #0 - bl GetMonData - str r0, [r6, #0x14] - adds r0, r7, #0 - movs r1, #0x1a - movs r2, #0 - bl GetMonData - strb r0, [r6, #0xe] - adds r0, r7, #0 - movs r1, #0x1b - movs r2, #0 - bl GetMonData - strb r0, [r6, #0xf] - adds r0, r7, #0 - movs r1, #0x1c - movs r2, #0 - bl GetMonData - strb r0, [r6, #0x10] - adds r0, r7, #0 - movs r1, #0x1d - movs r2, #0 - bl GetMonData - strb r0, [r6, #0x11] - adds r0, r7, #0 - movs r1, #0x1e - movs r2, #0 - bl GetMonData - strb r0, [r6, #0x12] - adds r0, r7, #0 - movs r1, #0x1f - movs r2, #0 - bl GetMonData - strb r0, [r6, #0x13] - adds r0, r7, #0 - movs r1, #0x20 - movs r2, #0 - bl GetMonData - mov r1, r8 - strb r0, [r1] - adds r0, r7, #0 - movs r1, #0x27 - movs r2, #0 - bl GetMonData - movs r4, #0x1f - ands r0, r4 - ldrb r2, [r6, #0x18] - movs r1, #0x20 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r6, #0x18] - adds r0, r7, #0 - movs r1, #0x28 - movs r2, #0 - bl GetMonData - movs r5, #0x1f - ands r0, r5 - lsls r0, r0, #5 - ldrh r2, [r6, #0x18] - ldr r1, _080683DC - ands r1, r2 - orrs r1, r0 - strh r1, [r6, #0x18] - adds r0, r7, #0 - movs r1, #0x29 - movs r2, #0 - bl GetMonData - ands r0, r4 - lsls r0, r0, #2 - ldrb r2, [r6, #0x19] - movs r1, #0x7d - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r6, #0x19] - adds r0, r7, #0 - movs r1, #0x2a - movs r2, #0 - bl GetMonData - movs r1, #0x1f - ands r1, r0 - lsls r1, r1, #0xf - ldr r0, [r6, #0x18] - ldr r2, _080683E0 - ands r0, r2 - orrs r0, r1 - str r0, [r6, #0x18] - adds r0, r7, #0 - movs r1, #0x2b - movs r2, #0 - bl GetMonData - ands r0, r5 - lsls r0, r0, #4 - ldrh r2, [r6, #0x1a] - ldr r1, _080683E4 - ands r1, r2 - orrs r1, r0 - strh r1, [r6, #0x1a] - adds r0, r7, #0 - movs r1, #0x2c - movs r2, #0 - bl GetMonData - ands r0, r4 - lsls r0, r0, #1 - ldrb r2, [r6, #0x1b] - movs r1, #0x3f - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r6, #0x1b] - adds r0, r7, #0 - movs r1, #0x2e - movs r2, #0 - bl GetMonData - lsls r0, r0, #7 - ldrb r2, [r6, #0x1b] - movs r1, #0x7f - ands r1, r2 - orrs r1, r0 - strb r1, [r6, #0x1b] - adds r0, r7, #0 - movs r1, #0 - movs r2, #0 - bl GetMonData - str r0, [r6, #0x1c] - adds r0, r7, #0 - movs r1, #2 - mov r2, sb - bl GetMonData - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080683DC: .4byte 0xFFFFFC1F -_080683E0: .4byte 0xFFF07FFF -_080683E4: .4byte 0xFFFFFE0F - thumb_func_end sub_0806823C - - thumb_func_start CreateObedientMon -CreateObedientMon: @ 0x080683E8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x14 - mov r8, r0 - ldr r4, [sp, #0x2c] - ldr r6, [sp, #0x30] - ldr r5, [sp, #0x34] - ldr r7, [sp, #0x38] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - movs r0, #1 - str r0, [sp, #0x10] - str r4, [sp] - str r6, [sp, #4] - str r5, [sp, #8] - str r7, [sp, #0xc] - mov r0, r8 - bl CreateMon - mov r0, r8 - movs r1, #0x50 - add r2, sp, #0x10 - bl SetMonData - add sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CreateObedientMon - - thumb_func_start sub_08068438 -sub_08068438: @ 0x08068438 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - cmp r0, #5 - bhi _0806850E - lsls r0, r0, #2 - ldr r1, _08068450 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08068450: .4byte _08068454 -_08068454: @ jump table - .4byte _0806850E @ case 0 - .4byte _0806846C @ case 1 - .4byte _08068540 @ case 2 - .4byte _08068498 @ case 3 - .4byte _08068540 @ case 4 - .4byte _080684D0 @ case 5 -_0806846C: - ldr r0, _0806848C - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0806850E - ldr r0, _08068490 - ldr r1, _08068494 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806850E - b _080684F6 - .align 2, 0 -_0806848C: .4byte gUnknown_2022C90 -_08068490: .4byte gUnknown_3002360 -_08068494: .4byte 0x00000439 -_08068498: - ldr r0, _080684C4 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0806850E - ldr r0, _080684C8 - ldr r1, _080684CC - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806850E - cmp r5, #1 - beq _08068540 - cmp r5, #4 - beq _08068540 - cmp r5, #5 - beq _08068540 - b _0806850E - .align 2, 0 -_080684C4: .4byte gUnknown_2022C90 -_080684C8: .4byte gUnknown_3002360 -_080684CC: .4byte 0x00000439 -_080684D0: - ldr r0, _08068514 - ldr r2, [r0] - movs r3, #2 - adds r0, r2, #0 - ands r0, r3 - cmp r0, #0 - beq _08068524 - ldr r0, _08068518 - ldr r1, _0806851C - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _0806850E - movs r0, #0x40 - ands r2, r0 - cmp r2, #0 - beq _08068534 -_080684F6: - ldr r4, _08068520 - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrh r0, [r1, #0x18] - cmp r0, r5 - bne _08068540 -_0806850E: - movs r0, #0 - b _08068542 - .align 2, 0 -_08068514: .4byte gUnknown_2022C90 -_08068518: .4byte gUnknown_3002360 -_0806851C: .4byte 0x00000439 -_08068520: .4byte gUnknown_20226A0 -_08068524: - ldr r0, _08068548 - ldr r1, _0806854C - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _0806850E -_08068534: - adds r0, r5, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0806850E -_08068540: - movs r0, #1 -_08068542: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08068548: .4byte gUnknown_3002360 -_0806854C: .4byte 0x00000439 - thumb_func_end sub_08068438 - - thumb_func_start GetDeoxysStat -GetDeoxysStat: @ 0x08068550 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - ldr r0, _08068578 - ldr r0, [r0] - movs r1, #0x20 - ands r0, r1 - cmp r0, #0 - bne _08068574 - adds r0, r5, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - movs r1, #0xcd - lsls r1, r1, #1 - cmp r0, r1 - beq _0806857C -_08068574: - movs r0, #0 - b _080685DA - .align 2, 0 -_08068578: .4byte gUnknown_2022C90 -_0806857C: - adds r1, r6, #0 - adds r1, #0x27 - adds r0, r5, #0 - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - adds r1, r6, #0 - adds r1, #0x1a - adds r0, r5, #0 - movs r2, #0 - bl GetMonData - ldr r2, _080685E0 - lsls r1, r6, #1 - adds r1, r1, r2 - ldrh r1, [r1] - lsls r1, r1, #1 - adds r1, r1, r4 - cmp r0, #0 - bge _080685A8 - adds r0, #3 -_080685A8: - asrs r0, r0, #2 - adds r0, r1, r0 - adds r1, r5, #0 - adds r1, #0x54 - ldrb r1, [r1] - muls r0, r1, r0 - movs r1, #0x64 - bl __divsi3 - adds r0, #5 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r5, #0 - bl GetNature - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r6, #0x18 - lsrs r2, r2, #0x18 - adds r1, r4, #0 - bl ModifyStatByNature - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r4, #0 -_080685DA: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080685E0: .4byte gUnknown_82FA6D6 - thumb_func_end GetDeoxysStat - - thumb_func_start SetDeoxysStats -SetDeoxysStats: @ 0x080685E4 - push {r4, r5, lr} - sub sp, #4 - movs r5, #0 -_080685EA: - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _08068684 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - movs r1, #0xcd - lsls r1, r1, #1 - cmp r0, r1 - bne _08068674 - adds r0, r4, #0 - movs r1, #0x3b - movs r2, #0 - bl GetMonData - str r0, [sp] - adds r0, r4, #0 - movs r1, #0x3b - mov r2, sp - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3c - movs r2, #0 - bl GetMonData - str r0, [sp] - adds r0, r4, #0 - movs r1, #0x3c - mov r2, sp - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3d - movs r2, #0 - bl GetMonData - str r0, [sp] - adds r0, r4, #0 - movs r1, #0x3d - mov r2, sp - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3e - movs r2, #0 - bl GetMonData - str r0, [sp] - adds r0, r4, #0 - movs r1, #0x3e - mov r2, sp - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3f - movs r2, #0 - bl GetMonData - str r0, [sp] - adds r0, r4, #0 - movs r1, #0x3f - mov r2, sp - bl SetMonData -_08068674: - adds r5, #1 - cmp r5, #5 - ble _080685EA - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08068684: .4byte gUnknown_2024190 - thumb_func_end SetDeoxysStats - - thumb_func_start sub_08068688 -sub_08068688: @ 0x08068688 - push {lr} - ldr r0, _080686A4 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x12 - ands r0, r1 - cmp r0, #0 - beq _080686AC - ldr r0, _080686A8 - ldrb r1, [r0] - movs r0, #1 - eors r0, r1 - b _080686B8 - .align 2, 0 -_080686A4: .4byte gUnknown_2022C90 -_080686A8: .4byte gUnknown_203C480 -_080686AC: - bl GetMultiplayerId - movs r1, #1 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_080686B8: - ldr r3, _080686E8 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r0, r3, #4 - adds r0, r1, r0 - ldr r2, [r0] - movs r0, #7 - ands r2, r0 - adds r1, r1, r3 - ldrb r0, [r1, #0x13] - lsls r0, r0, #3 - orrs r2, r0 - ldr r0, _080686EC - lsls r2, r2, #1 - adds r2, r2, r0 - ldrh r0, [r2] - bl sub_0806EA7C - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 -_080686E8: .4byte gUnknown_20226A0 -_080686EC: .4byte gUnknown_82FA6E2 - thumb_func_end sub_08068688 - - thumb_func_start sub_080686F0 -sub_080686F0: @ 0x080686F0 - push {lr} - ldr r0, _0806870C - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x12 - ands r0, r1 - cmp r0, #0 - beq _08068714 - ldr r0, _08068710 - ldrb r1, [r0] - movs r0, #1 - eors r0, r1 - b _08068720 - .align 2, 0 -_0806870C: .4byte gUnknown_2022C90 -_08068710: .4byte gUnknown_203C480 -_08068714: - bl GetMultiplayerId - movs r1, #1 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_08068720: - ldr r3, _0806874C - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r0, r3, #4 - adds r0, r1, r0 - ldr r2, [r0] - movs r0, #7 - ands r2, r0 - adds r1, r1, r3 - ldrb r0, [r1, #0x13] - lsls r0, r0, #3 - orrs r2, r0 - ldr r1, _08068750 - ldr r0, _08068754 - lsls r2, r2, #1 - adds r2, r2, r0 - ldrh r0, [r2] - adds r0, r0, r1 - ldrb r0, [r0] - pop {r1} - bx r1 - .align 2, 0 -_0806874C: .4byte gUnknown_20226A0 -_08068750: .4byte gUnknown_82EFF52 -_08068754: .4byte gUnknown_82FA6E2 - thumb_func_end sub_080686F0 - - thumb_func_start CreateObedientEnemyMon -CreateObedientEnemyMon: @ 0x08068758 - push {r4, r5, r6, r7, lr} - sub sp, #0x14 - ldr r0, _080687A8 - ldrh r5, [r0] - ldr r0, _080687AC - ldrh r4, [r0] - ldr r0, _080687B0 - ldrh r6, [r0] - bl ZeroEnemyPartyMons - ldr r7, _080687B4 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - str r0, [sp, #8] - str r0, [sp, #0xc] - adds r0, r7, #0 - adds r1, r5, #0 - adds r2, r4, #0 - movs r3, #0x20 - bl CreateObedientMon - cmp r6, #0 - beq _080687A0 - add r0, sp, #0x10 - strb r6, [r0] - adds r1, r0, #0 - asrs r0, r6, #8 - strb r0, [r1, #1] - adds r0, r7, #0 - movs r1, #0xc - add r2, sp, #0x10 - bl SetMonData -_080687A0: - add sp, #0x14 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080687A8: .4byte gUnknown_2037280 -_080687AC: .4byte gUnknown_2037282 -_080687B0: .4byte gUnknown_2037284 -_080687B4: .4byte gUnknown_20243E8 - thumb_func_end CreateObedientEnemyMon - - thumb_func_start CalculateBoxMonChecksum -CalculateBoxMonChecksum: @ 0x080687B8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - movs r6, #0 - ldr r1, [r4] - movs r2, #0 - bl GetSubstruct - adds r5, r0, #0 - ldr r1, [r4] - adds r0, r4, #0 - movs r2, #1 - bl GetSubstruct - adds r7, r0, #0 - ldr r1, [r4] - adds r0, r4, #0 - movs r2, #2 - bl GetSubstruct - mov r8, r0 - ldr r1, [r4] - adds r0, r4, #0 - movs r2, #3 - bl GetSubstruct - adds r3, r0, #0 - movs r1, #5 -_080687F2: - ldrh r0, [r5] - adds r0, r6, r0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r5, #2 - subs r1, #1 - cmp r1, #0 - bge _080687F2 - adds r2, r7, #0 - movs r1, #5 -_08068806: - ldrh r0, [r2] - adds r0, r6, r0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r2, #2 - subs r1, #1 - cmp r1, #0 - bge _08068806 - mov r2, r8 - movs r1, #5 -_0806881A: - ldrh r0, [r2] - adds r0, r6, r0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r2, #2 - subs r1, #1 - cmp r1, #0 - bge _0806881A - adds r2, r3, #0 - movs r1, #5 -_0806882E: - ldrh r0, [r2] - adds r0, r6, r0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r2, #2 - subs r1, #1 - cmp r1, #0 - bge _0806882E - adds r0, r6, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CalculateBoxMonChecksum - - thumb_func_start CalculateMonStats -CalculateMonStats: @ 0x0806884C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x40 - adds r5, r0, #0 - movs r1, #0x3a - movs r2, #0 - bl GetMonData - mov r8, r0 - adds r0, r5, #0 - movs r1, #0x39 - movs r2, #0 - bl GetMonData - str r0, [sp, #0x1c] - adds r0, r5, #0 - movs r1, #0x27 - movs r2, #0 - bl GetMonData - adds r6, r0, #0 - adds r0, r5, #0 - movs r1, #0x1a - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - adds r0, r5, #0 - movs r1, #0x28 - movs r2, #0 - bl GetMonData - mov sl, r0 - adds r0, r5, #0 - movs r1, #0x1b - movs r2, #0 - bl GetMonData - mov sb, r0 - adds r0, r5, #0 - movs r1, #0x29 - movs r2, #0 - bl GetMonData - str r0, [sp, #0x20] - adds r0, r5, #0 - movs r1, #0x1c - movs r2, #0 - bl GetMonData - str r0, [sp, #0x24] - adds r0, r5, #0 - movs r1, #0x2a - movs r2, #0 - bl GetMonData - str r0, [sp, #0x28] - adds r0, r5, #0 - movs r1, #0x1d - movs r2, #0 - bl GetMonData - str r0, [sp, #0x2c] - adds r0, r5, #0 - movs r1, #0x2b - movs r2, #0 - bl GetMonData - str r0, [sp, #0x30] - adds r0, r5, #0 - movs r1, #0x1e - movs r2, #0 - bl GetMonData - str r0, [sp, #0x34] - adds r0, r5, #0 - movs r1, #0x2c - movs r2, #0 - bl GetMonData - str r0, [sp, #0x38] - adds r0, r5, #0 - movs r1, #0x1f - movs r2, #0 - bl GetMonData - str r0, [sp, #0x3c] - adds r0, r5, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - adds r0, r5, #0 - bl GetLevelFromMonExp - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - adds r0, r5, #0 - movs r1, #0x38 - mov r2, sp - bl SetMonData - ldr r0, _08068934 - cmp r7, r0 - bne _08068938 - movs r0, #1 - str r0, [sp, #4] - lsls r6, r7, #3 - b _08068966 - .align 2, 0 -_08068934: .4byte 0x0000012F -_08068938: - ldr r1, _08068B04 - lsls r2, r7, #3 - subs r0, r2, r7 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r1, r0, r6 - adds r0, r4, #0 - adds r6, r2, #0 - cmp r0, #0 - bge _08068952 - adds r0, #3 -_08068952: - asrs r0, r0, #2 - adds r0, r1, r0 - ldr r4, [sp] - muls r0, r4, r0 - movs r1, #0x64 - bl __divsi3 - adds r0, r0, r4 - adds r0, #0xa - str r0, [sp, #4] -_08068966: - ldr r1, _08068B08 - add r2, sp, #4 - ldrb r0, [r2] - mov r3, r8 - subs r0, r0, r3 - adds r1, #0x23 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806897E - movs r0, #1 - strb r0, [r1] -_0806897E: - adds r0, r5, #0 - movs r1, #0x3a - bl SetMonData - ldr r0, _08068B04 - subs r1, r6, r7 - lsls r1, r1, #2 - adds r6, r1, r0 - ldrb r0, [r6, #1] - lsls r0, r0, #1 - mov r2, sl - adds r1, r0, r2 - mov r0, sb - cmp r0, #0 - bge _0806899E - adds r0, #3 -_0806899E: - asrs r0, r0, #2 - adds r0, r1, r0 - ldr r1, [sp] - muls r0, r1, r0 - movs r1, #0x64 - bl __divsi3 - adds r0, #5 - str r0, [sp, #8] - adds r0, r5, #0 - bl GetNature - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add r4, sp, #8 - ldrh r1, [r4] - movs r2, #1 - bl ModifyStatByNature - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #8] - adds r0, r5, #0 - movs r1, #0x3b - adds r2, r4, #0 - bl SetMonData - ldrb r0, [r6, #2] - lsls r0, r0, #1 - ldr r3, [sp, #0x20] - adds r1, r0, r3 - ldr r0, [sp, #0x24] - cmp r0, #0 - bge _080689E4 - adds r0, #3 -_080689E4: - asrs r0, r0, #2 - adds r0, r1, r0 - ldr r1, [sp] - muls r0, r1, r0 - movs r1, #0x64 - bl __divsi3 - adds r0, #5 - str r0, [sp, #0xc] - adds r0, r5, #0 - bl GetNature - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add r4, sp, #0xc - ldrh r1, [r4] - movs r2, #2 - bl ModifyStatByNature - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0xc] - adds r0, r5, #0 - movs r1, #0x3c - adds r2, r4, #0 - bl SetMonData - ldrb r0, [r6, #3] - lsls r0, r0, #1 - ldr r2, [sp, #0x28] - adds r1, r0, r2 - ldr r0, [sp, #0x2c] - cmp r0, #0 - bge _08068A2A - adds r0, #3 -_08068A2A: - asrs r0, r0, #2 - adds r0, r1, r0 - ldr r1, [sp] - muls r0, r1, r0 - movs r1, #0x64 - bl __divsi3 - adds r0, #5 - str r0, [sp, #0x10] - adds r0, r5, #0 - bl GetNature - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add r4, sp, #0x10 - ldrh r1, [r4] - movs r2, #3 - bl ModifyStatByNature - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x10] - adds r0, r5, #0 - movs r1, #0x3d - adds r2, r4, #0 - bl SetMonData - ldrb r0, [r6, #4] - lsls r0, r0, #1 - ldr r3, [sp, #0x30] - adds r1, r0, r3 - ldr r0, [sp, #0x34] - cmp r0, #0 - bge _08068A70 - adds r0, #3 -_08068A70: - asrs r0, r0, #2 - adds r0, r1, r0 - ldr r1, [sp] - muls r0, r1, r0 - movs r1, #0x64 - bl __divsi3 - adds r0, #5 - str r0, [sp, #0x14] - adds r0, r5, #0 - bl GetNature - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add r4, sp, #0x14 - ldrh r1, [r4] - movs r2, #4 - bl ModifyStatByNature - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x14] - adds r0, r5, #0 - movs r1, #0x3e - adds r2, r4, #0 - bl SetMonData - ldrb r0, [r6, #5] - lsls r0, r0, #1 - ldr r2, [sp, #0x38] - adds r1, r0, r2 - ldr r0, [sp, #0x3c] - cmp r0, #0 - bge _08068AB6 - adds r0, #3 -_08068AB6: - asrs r0, r0, #2 - adds r0, r1, r0 - ldr r1, [sp] - muls r0, r1, r0 - movs r1, #0x64 - bl __divsi3 - adds r0, #5 - str r0, [sp, #0x18] - adds r0, r5, #0 - bl GetNature - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add r4, sp, #0x18 - ldrh r1, [r4] - movs r2, #5 - bl ModifyStatByNature - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x18] - adds r0, r5, #0 - movs r1, #0x3f - adds r2, r4, #0 - bl SetMonData - ldr r0, _08068B0C - cmp r7, r0 - bne _08068B10 - ldr r0, [sp, #0x1c] - cmp r0, #0 - bne _08068AFE - mov r3, r8 - cmp r3, #0 - bne _08068B34 -_08068AFE: - movs r0, #1 - b _08068B28 - .align 2, 0 -_08068B04: .4byte gUnknown_82F0D54 -_08068B08: .4byte gUnknown_2024118 -_08068B0C: .4byte 0x0000012F -_08068B10: - ldr r1, [sp, #0x1c] - cmp r1, #0 - bne _08068B20 - mov r0, r8 - cmp r0, #0 - bne _08068B34 - ldr r0, [sp, #4] - b _08068B28 -_08068B20: - ldr r0, [sp, #4] - mov r2, r8 - subs r0, r0, r2 - adds r0, r1, r0 -_08068B28: - str r0, [sp, #0x1c] - add r2, sp, #0x1c - adds r0, r5, #0 - movs r1, #0x39 - bl SetMonData -_08068B34: - add sp, #0x40 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end CalculateMonStats - - thumb_func_start BoxMonToMon -BoxMonToMon: @ 0x08068B44 - push {r4, lr} - sub sp, #4 - adds r2, r0, #0 - adds r4, r1, #0 - movs r0, #0 - str r0, [sp] - adds r0, r4, #0 - adds r1, r2, #0 - movs r2, #0x50 - bl memcpy - adds r0, r4, #0 - movs r1, #0x37 - mov r2, sp - bl SetMonData - adds r0, r4, #0 - movs r1, #0x39 - mov r2, sp - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3a - mov r2, sp - bl SetMonData - movs r0, #0xff - str r0, [sp] - adds r0, r4, #0 - movs r1, #0x40 - mov r2, sp - bl SetMonData - adds r0, r4, #0 - bl CalculateMonStats - add sp, #4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end BoxMonToMon - - thumb_func_start GetLevelFromMonExp -GetLevelFromMonExp: @ 0x08068B94 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - movs r1, #0x19 - movs r2, #0 - bl GetMonData - adds r3, r0, #0 - movs r2, #1 - ldr r6, _08068BF8 - ldr r1, _08068BFC - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - adds r1, r0, r1 - ldrb r0, [r1, #0x13] - movs r5, #0xca - lsls r5, r5, #1 - muls r0, r5, r0 - adds r0, #4 - adds r0, r0, r6 - ldr r0, [r0] - cmp r0, r3 - bhi _08068BEA - adds r4, r1, #0 -_08068BD4: - adds r2, #1 - cmp r2, #0x64 - bgt _08068BEA - lsls r1, r2, #2 - ldrb r0, [r4, #0x13] - muls r0, r5, r0 - adds r1, r1, r0 - adds r1, r1, r6 - ldr r0, [r1] - cmp r0, r3 - bls _08068BD4 -_08068BEA: - subs r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08068BF8: .4byte gUnknown_82F00B4 -_08068BFC: .4byte gUnknown_82F0D54 - thumb_func_end GetLevelFromMonExp - - thumb_func_start GetLevelFromBoxMonExp -GetLevelFromBoxMonExp: @ 0x08068C00 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r1, #0xb - movs r2, #0 - bl sub_0806A1B4 - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - movs r1, #0x19 - movs r2, #0 - bl sub_0806A1B4 - adds r3, r0, #0 - movs r2, #1 - ldr r6, _08068C64 - ldr r1, _08068C68 - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - adds r1, r0, r1 - ldrb r0, [r1, #0x13] - movs r5, #0xca - lsls r5, r5, #1 - muls r0, r5, r0 - adds r0, #4 - adds r0, r0, r6 - ldr r0, [r0] - cmp r0, r3 - bhi _08068C56 - adds r4, r1, #0 -_08068C40: - adds r2, #1 - cmp r2, #0x64 - bgt _08068C56 - lsls r1, r2, #2 - ldrb r0, [r4, #0x13] - muls r0, r5, r0 - adds r1, r1, r0 - adds r1, r1, r6 - ldr r0, [r1] - cmp r0, r3 - bls _08068C40 -_08068C56: - subs r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08068C64: .4byte gUnknown_82F00B4 -_08068C68: .4byte gUnknown_82F0D54 - thumb_func_end GetLevelFromBoxMonExp - - thumb_func_start GiveMoveToMon -GiveMoveToMon: @ 0x08068C6C - push {lr} - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl GiveMoveToBoxMon - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GiveMoveToMon - - thumb_func_start GiveMoveToBoxMon -GiveMoveToBoxMon: @ 0x08068C80 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r7, r0, #0 - mov r0, sp - strh r1, [r0] - movs r5, #0 - mov r6, sp -_08068C8E: - adds r4, r5, #0 - adds r4, #0xd - adds r0, r7, #0 - adds r1, r4, #0 - movs r2, #0 - bl sub_0806A1B4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - bne _08068CCC - adds r0, r7, #0 - adds r1, r4, #0 - mov r2, sp - bl SetBoxMonData - adds r1, r5, #0 - adds r1, #0x11 - ldrh r0, [r6] - lsls r2, r0, #1 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r0, _08068CC8 - adds r2, r2, r0 - adds r0, r7, #0 - bl SetBoxMonData - ldrh r0, [r6] - b _08068CE4 - .align 2, 0 -_08068CC8: .4byte gUnknown_82ED224 -_08068CCC: - ldrh r1, [r6] - cmp r0, r1 - bne _08068CDC - ldr r0, _08068CD8 - b _08068CE4 - .align 2, 0 -_08068CD8: .4byte 0x0000FFFE -_08068CDC: - adds r5, #1 - cmp r5, #3 - ble _08068C8E - ldr r0, _08068CEC -_08068CE4: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08068CEC: .4byte 0x0000FFFF - thumb_func_end GiveMoveToBoxMon - - thumb_func_start GiveMoveToBattleMon -GiveMoveToBattleMon: @ 0x08068CF0 - push {r4, r5, lr} - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - movs r3, #0 - adds r5, r0, #0 - adds r5, #0x24 - ldr r2, _08068D1C - lsls r1, r4, #1 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r2, r1, r2 - adds r1, r0, #0 - adds r1, #0xc -_08068D0A: - ldrh r0, [r1] - cmp r0, #0 - bne _08068D20 - strh r4, [r1] - adds r1, r5, r3 - ldrb r0, [r2, #4] - strb r0, [r1] - adds r0, r4, #0 - b _08068D2A - .align 2, 0 -_08068D1C: .4byte gUnknown_82ED220 -_08068D20: - adds r1, #2 - adds r3, #1 - cmp r3, #3 - ble _08068D0A - ldr r0, _08068D30 -_08068D2A: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08068D30: .4byte 0x0000FFFF - thumb_func_end GiveMoveToBattleMon - - thumb_func_start SetMonMoveSlot -SetMonMoveSlot: @ 0x08068D34 - push {r4, r5, lr} - sub sp, #4 - adds r5, r0, #0 - adds r4, r2, #0 - mov r0, sp - strh r1, [r0] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r1, r4, #0 - adds r1, #0xd - adds r0, r5, #0 - mov r2, sp - bl SetMonData - adds r4, #0x11 - mov r0, sp - ldrh r0, [r0] - lsls r2, r0, #1 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r0, _08068D70 - adds r2, r2, r0 - adds r0, r5, #0 - adds r1, r4, #0 - bl SetMonData - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08068D70: .4byte gUnknown_82ED224 - thumb_func_end SetMonMoveSlot - - thumb_func_start SetBattleMonMoveSlot -SetBattleMonMoveSlot: @ 0x08068D74 - push {r4, lr} - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r4, r2, #1 - adds r3, r0, #0 - adds r3, #0xc - adds r3, r3, r4 - strh r1, [r3] - adds r0, #0x24 - adds r0, r0, r2 - ldr r3, _08068DA0 - lsls r2, r1, #1 - adds r2, r2, r1 - lsls r2, r2, #2 - adds r2, r2, r3 - ldrb r1, [r2, #4] - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08068DA0: .4byte gUnknown_82ED220 - thumb_func_end SetBattleMonMoveSlot - - thumb_func_start sub_08068DA4 -sub_08068DA4: @ 0x08068DA4 - push {lr} - bl GiveBoxMonInitialMoveset - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08068DA4 - - thumb_func_start GiveBoxMonInitialMoveset -GiveBoxMonInitialMoveset: @ 0x08068DB0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov r8, r0 - movs r1, #0xb - movs r2, #0 - bl sub_0806A1B4 - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - mov r0, r8 - bl GetLevelFromBoxMonExp - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - ldr r0, _08068E4C - lsls r6, r4, #2 - adds r0, r6, r0 - ldr r0, [r0] - ldrh r1, [r0] - ldr r2, _08068E50 - lsrs r0, r2, #0x10 - cmp r1, r0 - beq _08068E3C - mov sb, r2 - movs r3, #0 -_08068DEE: - ldr r0, _08068E4C - adds r7, r6, r0 - ldr r0, [r7] - adds r0, r3, r0 - ldrh r2, [r0] - movs r1, #0xfe - lsls r1, r1, #8 - adds r0, r1, #0 - ands r0, r2 - mov r4, sl - lsls r1, r4, #9 - cmp r0, r1 - bgt _08068E3C - ldr r1, _08068E54 - adds r0, r1, #0 - adds r4, r0, #0 - ands r4, r2 - mov r0, r8 - adds r1, r4, #0 - str r3, [sp] - bl GiveMoveToBoxMon - lsls r0, r0, #0x10 - mov r1, sb - lsrs r5, r1, #0x10 - ldr r3, [sp] - cmp r0, sb - bne _08068E30 - mov r0, r8 - adds r1, r4, #0 - bl DeleteFirstMoveAndGiveMoveToBoxMon - ldr r3, [sp] -_08068E30: - adds r3, #2 - ldr r0, [r7] - adds r0, r3, r0 - ldrh r0, [r0] - cmp r0, r5 - bne _08068DEE -_08068E3C: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08068E4C: .4byte gUnknown_82F9D04 -_08068E50: .4byte 0xFFFF0000 -_08068E54: .4byte 0x000001FF - thumb_func_end GiveBoxMonInitialMoveset - - thumb_func_start MonTryLearningNewMove -MonTryLearningNewMove: @ 0x08068E58 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov r8, r0 - lsls r4, r1, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - str r0, [sp] - mov r0, r8 - movs r1, #0xb - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - mov r0, r8 - movs r1, #0x38 - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - cmp r4, #0 - beq _08068EF0 - ldr r4, _08068EDC - mov r1, sp - ldrb r1, [r1] - strb r1, [r4] - ldr r2, _08068EE0 - mov r5, sb - lsls r3, r5, #2 - adds r5, r3, r2 - ldr r0, [r5] - ldrh r1, [r0] - movs r7, #0xfe - lsls r7, r7, #8 - adds r0, r7, #0 - ands r0, r1 - adds r6, r4, #0 - mov ip, r2 - mov r1, sl - lsls r4, r1, #9 - cmp r0, r4 - beq _08068F18 - adds r2, r6, #0 - ldr r0, _08068EE4 - mov ip, r0 - adds r6, r7, #0 - adds r3, r5, #0 -_08068EC4: - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - ldrb r0, [r2] - ldr r1, [r3] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - cmp r1, ip - bne _08068EE8 - movs r0, #0 - b _08068F44 - .align 2, 0 -_08068EDC: .4byte gUnknown_202418C -_08068EE0: .4byte gUnknown_82F9D04 -_08068EE4: .4byte 0x0000FFFF -_08068EE8: - adds r0, r6, #0 - ands r0, r1 - cmp r0, r4 - bne _08068EC4 -_08068EF0: - ldr r3, _08068F54 - mov r1, sb - lsls r4, r1, #2 - adds r1, r4, r3 - ldr r2, _08068F58 - ldrb r0, [r2] - ldr r1, [r1] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0xfe - lsls r0, r0, #8 - ands r0, r1 - mov r5, sl - lsls r1, r5, #9 - adds r6, r2, #0 - mov ip, r3 - adds r3, r4, #0 - cmp r0, r1 - bne _08068F42 -_08068F18: - ldr r2, _08068F5C - mov r0, ip - adds r1, r3, r0 - ldrb r0, [r6] - ldr r1, [r1] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - ldr r0, _08068F60 - ands r0, r1 - strh r0, [r2] - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] - ldrh r1, [r2] - mov r0, r8 - bl GiveMoveToMon - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp] -_08068F42: - ldr r0, [sp] -_08068F44: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08068F54: .4byte gUnknown_82F9D04 -_08068F58: .4byte gUnknown_202418C -_08068F5C: .4byte gUnknown_2024186 -_08068F60: .4byte 0x000001FF - thumb_func_end MonTryLearningNewMove - - thumb_func_start DeleteFirstMoveAndGiveMoveToMon -DeleteFirstMoveAndGiveMoveToMon: @ 0x08068F64 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x10 - adds r6, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r8, r1 - movs r4, #0 - add r7, sp, #8 - add r0, sp, #0xc - mov sb, r0 - mov r5, sp -_08068F80: - adds r1, r4, #0 - adds r1, #0xe - adds r0, r6, #0 - movs r2, #0 - bl GetMonData - strh r0, [r5] - adds r1, r4, #0 - adds r1, #0x12 - adds r0, r6, #0 - movs r2, #0 - bl GetMonData - adds r1, r7, r4 - strb r0, [r1] - adds r5, #2 - adds r4, #1 - cmp r4, #2 - ble _08068F80 - adds r0, r6, #0 - movs r1, #0x15 - movs r2, #0 - bl GetMonData - mov r1, sb - strb r0, [r1] - ldrb r0, [r1] - lsrs r0, r0, #2 - strb r0, [r1] - mov r0, sp - mov r2, r8 - strh r2, [r0, #6] - ldr r1, _0806900C - mov r2, r8 - lsls r0, r2, #1 - add r0, r8 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #4] - strb r0, [r7, #3] - movs r4, #0 - mov r5, sp -_08068FD4: - adds r1, r4, #0 - adds r1, #0xd - adds r0, r6, #0 - adds r2, r5, #0 - bl SetMonData - adds r1, r4, #0 - adds r1, #0x11 - adds r2, r7, r4 - adds r0, r6, #0 - bl SetMonData - adds r5, #2 - adds r4, #1 - cmp r4, #3 - ble _08068FD4 - adds r0, r6, #0 - movs r1, #0x15 - mov r2, sb - bl SetMonData - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0806900C: .4byte gUnknown_82ED220 - thumb_func_end DeleteFirstMoveAndGiveMoveToMon - - thumb_func_start DeleteFirstMoveAndGiveMoveToBoxMon -DeleteFirstMoveAndGiveMoveToBoxMon: @ 0x08069010 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x10 - adds r6, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r8, r1 - movs r4, #0 - add r7, sp, #8 - add r0, sp, #0xc - mov sb, r0 - mov r5, sp -_0806902C: - adds r1, r4, #0 - adds r1, #0xe - adds r0, r6, #0 - movs r2, #0 - bl sub_0806A1B4 - strh r0, [r5] - adds r1, r4, #0 - adds r1, #0x12 - adds r0, r6, #0 - movs r2, #0 - bl sub_0806A1B4 - adds r1, r7, r4 - strb r0, [r1] - adds r5, #2 - adds r4, #1 - cmp r4, #2 - ble _0806902C - adds r0, r6, #0 - movs r1, #0x15 - movs r2, #0 - bl sub_0806A1B4 - mov r1, sb - strb r0, [r1] - ldrb r0, [r1] - lsrs r0, r0, #2 - strb r0, [r1] - mov r0, sp - mov r2, r8 - strh r2, [r0, #6] - ldr r1, _080690B8 - mov r2, r8 - lsls r0, r2, #1 - add r0, r8 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #4] - strb r0, [r7, #3] - movs r4, #0 - mov r5, sp -_08069080: - adds r1, r4, #0 - adds r1, #0xd - adds r0, r6, #0 - adds r2, r5, #0 - bl SetBoxMonData - adds r1, r4, #0 - adds r1, #0x11 - adds r2, r7, r4 - adds r0, r6, #0 - bl SetBoxMonData - adds r5, #2 - adds r4, #1 - cmp r4, #3 - ble _08069080 - adds r0, r6, #0 - movs r1, #0x15 - mov r2, sb - bl SetBoxMonData - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080690B8: .4byte gUnknown_82ED220 - thumb_func_end DeleteFirstMoveAndGiveMoveToBoxMon - - thumb_func_start CalculateBaseDamage -CalculateBaseDamage: @ 0x080690BC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x30 - adds r6, r0, #0 - str r1, [sp, #4] - str r2, [sp, #8] - ldr r0, [sp, #0x50] - ldr r1, [sp, #0x54] - ldr r2, [sp, #0x58] - ldr r4, [sp, #0x5c] - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - str r3, [sp, #0xc] - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x10] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp, #0x14] - movs r5, #0 - cmp r3, #0 - bne _08069114 - ldr r2, _0806910C - ldr r1, _08069110 - ldr r3, [sp, #8] - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #1] - strh r0, [r2] - b _08069118 - .align 2, 0 -_0806910C: .4byte gUnknown_2024184 -_08069110: .4byte gUnknown_82ED220 -_08069114: - ldr r0, _08069130 - strh r3, [r0] -_08069118: - cmp r7, #0 - bne _08069138 - ldr r1, _08069134 - ldr r7, [sp, #8] - lsls r0, r7, #1 - adds r0, r0, r7 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #2] - mov sl, r0 - b _08069142 - .align 2, 0 -_08069130: .4byte gUnknown_2024184 -_08069134: .4byte gUnknown_82ED220 -_08069138: - movs r0, #0x3f - mov sl, r0 - mov r1, sl - ands r1, r7 - mov sl, r1 -_08069142: - ldrh r7, [r6, #2] - ldr r2, [sp, #4] - ldrh r2, [r2, #4] - str r2, [sp, #0x18] - ldrh r3, [r6, #8] - mov r8, r3 - ldr r0, [sp, #4] - ldrh r0, [r0, #0xa] - str r0, [sp, #0x1c] - ldrh r0, [r6, #0x2e] - cmp r0, #0xaf - bne _08069174 - ldr r1, _08069170 - ldr r2, [sp, #0x10] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r3, [r0, #7] - mov sb, r3 - ldrb r0, [r0, #0x1a] - b _0806918A - .align 2, 0 -_08069170: .4byte gUnknown_20240A8 -_08069174: - ldrh r0, [r6, #0x2e] - bl sub_080D6CF8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldrh r0, [r6, #0x2e] - bl sub_080D6D1C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_0806918A: - str r0, [sp, #0x24] - ldr r1, [sp, #4] - ldrh r0, [r1, #0x2e] - cmp r0, #0xaf - bne _080691BE - ldr r1, _080691A8 - ldr r2, [sp, #0x14] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #7] - str r0, [sp, #0x20] - b _080691D4 - .align 2, 0 -_080691A8: .4byte gUnknown_20240A8 -_080691AC: - ldr r0, [sp, #0x24] - adds r0, #0x64 - muls r0, r7, r0 - movs r1, #0x64 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - b _080692BC -_080691BE: - ldr r3, [sp, #4] - ldrh r0, [r3, #0x2e] - bl sub_080D6CF8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x20] - ldr r1, [sp, #4] - ldrh r0, [r1, #0x2e] - bl sub_080D6D1C -_080691D4: - adds r0, r6, #0 - adds r0, #0x20 - ldrb r1, [r0] - str r0, [sp, #0x28] - cmp r1, #0x25 - beq _080691E4 - cmp r1, #0x4a - bne _080691E8 -_080691E4: - lsls r0, r7, #0x11 - lsrs r7, r0, #0x10 -_080691E8: - ldr r0, _080692A4 - ldr r1, [sp, #0x10] - bl ShouldGetStatBadgeBoost - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08069204 - movs r0, #0x6e - muls r0, r7, r0 - movs r1, #0x64 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 -_08069204: - ldr r0, _080692A8 - ldr r1, [sp, #0x14] - bl ShouldGetStatBadgeBoost - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08069224 - movs r0, #0x6e - ldr r2, [sp, #0x18] - muls r0, r2, r0 - movs r1, #0x64 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x18] -_08069224: - ldr r4, _080692AC - adds r0, r4, #0 - ldr r1, [sp, #0x10] - bl ShouldGetStatBadgeBoost - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08069248 - movs r0, #0x6e - mov r3, r8 - muls r3, r0, r3 - adds r0, r3, #0 - movs r1, #0x64 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 -_08069248: - adds r0, r4, #0 - ldr r1, [sp, #0x14] - bl ShouldGetStatBadgeBoost - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08069268 - movs r0, #0x6e - ldr r1, [sp, #0x1c] - muls r0, r1, r0 - movs r1, #0x64 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x1c] -_08069268: - movs r2, #0 - ldr r4, _080692B0 - ldr r3, [sp, #4] - adds r3, #0x20 - str r3, [sp, #0x2c] - adds r3, r4, #0 -_08069274: - lsls r1, r2, #1 - ldrb r0, [r3] - cmp sb, r0 - bne _080692B4 - adds r0, r4, #1 - adds r0, r1, r0 - ldrb r0, [r0] - cmp sl, r0 - bne _080692B4 - mov r1, sl - cmp r1, #8 - bls _080691AC - ldr r0, [sp, #0x24] - adds r0, #0x64 - mov r2, r8 - muls r2, r0, r2 - adds r0, r2, #0 - movs r1, #0x64 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - b _080692BC - .align 2, 0 -_080692A4: .4byte 0x00000867 -_080692A8: .4byte 0x0000086B -_080692AC: .4byte 0x0000086D -_080692B0: .4byte gUnknown_82FA702 -_080692B4: - adds r3, #2 - adds r2, #1 - cmp r2, #0x10 - bls _08069274 -_080692BC: - mov r3, sb - cmp r3, #0x1d - bne _080692D0 - movs r0, #0x96 - muls r0, r7, r0 - movs r1, #0x64 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 -_080692D0: - mov r0, sb - cmp r0, #0x22 - bne _08069306 - ldr r0, _080695B8 - ldr r0, [r0] - ldr r1, _080695BC - ands r0, r1 - cmp r0, #0 - bne _08069306 - ldr r1, _080695C0 - adds r0, r1, #0 - ldrh r2, [r6] - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bhi _08069306 - movs r0, #0x96 - mov r3, r8 - muls r3, r0, r3 - adds r0, r3, #0 - movs r1, #0x64 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 -_08069306: - ldr r0, [sp, #0x20] - cmp r0, #0x22 - bne _0806933C - ldr r0, _080695B8 - ldr r0, [r0] - ldr r1, _080695BC - ands r0, r1 - cmp r0, #0 - bne _0806933C - ldr r1, _080695C0 - adds r0, r1, #0 - ldr r2, [sp, #4] - ldrh r2, [r2] - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bhi _0806933C - movs r0, #0x96 - ldr r3, [sp, #0x1c] - muls r0, r3, r0 - movs r1, #0x64 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x1c] -_0806933C: - mov r0, sb - cmp r0, #0x23 - bne _08069352 - ldrh r1, [r6] - ldr r0, _080695C4 - cmp r1, r0 - bne _08069352 - mov r1, r8 - lsls r0, r1, #0x11 - lsrs r0, r0, #0x10 - mov r8, r0 -_08069352: - ldr r2, [sp, #0x20] - cmp r2, #0x24 - bne _0806936A - ldr r3, [sp, #4] - ldrh r1, [r3] - ldr r0, _080695C4 - cmp r1, r0 - bne _0806936A - ldr r1, [sp, #0x1c] - lsls r0, r1, #0x11 - lsrs r0, r0, #0x10 - str r0, [sp, #0x1c] -_0806936A: - mov r2, sb - cmp r2, #0x2d - bne _0806937E - ldrh r0, [r6] - cmp r0, #0x19 - bne _0806937E - mov r3, r8 - lsls r0, r3, #0x11 - lsrs r0, r0, #0x10 - mov r8, r0 -_0806937E: - ldr r0, [sp, #0x20] - cmp r0, #0x40 - bne _08069394 - ldr r1, [sp, #4] - ldrh r0, [r1] - cmp r0, #0x84 - bne _08069394 - ldr r2, [sp, #0x18] - lsls r0, r2, #0x11 - lsrs r0, r0, #0x10 - str r0, [sp, #0x18] -_08069394: - mov r3, sb - cmp r3, #0x41 - bne _080693AA - ldrh r0, [r6] - subs r0, #0x68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bhi _080693AA - lsls r0, r7, #0x11 - lsrs r7, r0, #0x10 -_080693AA: - ldr r1, [sp, #0x2c] - ldrb r0, [r1] - cmp r0, #0x2f - bne _080693C2 - mov r2, sl - cmp r2, #0xa - beq _080693BC - cmp r2, #0xf - bne _080693C2 -_080693BC: - mov r3, r8 - lsrs r3, r3, #1 - mov r8, r3 -_080693C2: - ldr r0, [sp, #0x28] - ldrb r4, [r0] - cmp r4, #0x37 - bne _080693D8 - movs r0, #0x96 - muls r0, r7, r0 - movs r1, #0x64 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 -_080693D8: - cmp r4, #0x39 - bne _08069406 - movs r0, #0 - str r0, [sp] - movs r0, #0xe - movs r1, #0 - movs r2, #0x3a - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08069406 - movs r0, #0x96 - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - movs r1, #0x64 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 -_08069406: - ldr r2, [sp, #0x28] - ldrb r0, [r2] - cmp r0, #0x3a - bne _08069438 - movs r0, #0 - str r0, [sp] - movs r0, #0xe - movs r1, #0 - movs r2, #0x39 - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08069438 - movs r0, #0x96 - mov r3, r8 - muls r3, r0, r3 - adds r0, r3, #0 - movs r1, #0x64 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 -_08069438: - ldr r1, [sp, #0x28] - ldrb r0, [r1] - cmp r0, #0x3e - bne _08069454 - ldr r0, [r6, #0x4c] - cmp r0, #0 - beq _08069454 - movs r0, #0x96 - muls r0, r7, r0 - movs r1, #0x64 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 -_08069454: - ldr r2, [sp, #0x2c] - ldrb r0, [r2] - cmp r0, #0x3f - bne _08069476 - ldr r3, [sp, #4] - ldr r0, [r3, #0x4c] - cmp r0, #0 - beq _08069476 - movs r0, #0x96 - ldr r1, [sp, #0x18] - muls r0, r1, r0 - movs r1, #0x64 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x18] -_08069476: - mov r2, sl - cmp r2, #0xd - bne _0806949A - movs r0, #0 - str r0, [sp] - movs r0, #0xe - movs r1, #0 - movs r2, #0 - movs r3, #0xfd - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0806949A - ldr r1, _080695C8 - ldrh r0, [r1] - lsrs r0, r0, #1 - strh r0, [r1] -_0806949A: - mov r3, sl - cmp r3, #0xa - bne _080694BE - movs r0, #0 - str r0, [sp] - movs r0, #0xe - movs r1, #0 - movs r2, #0 - movs r3, #0xfe - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080694BE - ldr r1, _080695C8 - ldrh r0, [r1] - lsrs r0, r0, #1 - strh r0, [r1] -_080694BE: - mov r0, sl - cmp r0, #0xc - bne _080694EE - ldr r1, [sp, #0x28] - ldrb r0, [r1] - cmp r0, #0x41 - bne _080694EE - ldrh r0, [r6, #0x2c] - movs r1, #3 - bl __udivsi3 - ldrh r1, [r6, #0x28] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r1, r0 - bhi _080694EE - ldr r4, _080695C8 - ldrh r1, [r4] - movs r0, #0x96 - muls r0, r1, r0 - movs r1, #0x64 - bl __divsi3 - strh r0, [r4] -_080694EE: - mov r2, sl - cmp r2, #0xa - bne _0806951E - ldr r3, [sp, #0x28] - ldrb r0, [r3] - cmp r0, #0x42 - bne _0806951E - ldrh r0, [r6, #0x2c] - movs r1, #3 - bl __udivsi3 - ldrh r1, [r6, #0x28] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r1, r0 - bhi _0806951E - ldr r4, _080695C8 - ldrh r1, [r4] - movs r0, #0x96 - muls r0, r1, r0 - movs r1, #0x64 - bl __divsi3 - strh r0, [r4] -_0806951E: - mov r0, sl - cmp r0, #0xb - bne _0806954E - ldr r1, [sp, #0x28] - ldrb r0, [r1] - cmp r0, #0x43 - bne _0806954E - ldrh r0, [r6, #0x2c] - movs r1, #3 - bl __udivsi3 - ldrh r1, [r6, #0x28] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r1, r0 - bhi _0806954E - ldr r4, _080695C8 - ldrh r1, [r4] - movs r0, #0x96 - muls r0, r1, r0 - movs r1, #0x64 - bl __divsi3 - strh r0, [r4] -_0806954E: - mov r2, sl - cmp r2, #6 - bne _0806957E - ldr r3, [sp, #0x28] - ldrb r0, [r3] - cmp r0, #0x44 - bne _0806957E - ldrh r0, [r6, #0x2c] - movs r1, #3 - bl __udivsi3 - ldrh r1, [r6, #0x28] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r1, r0 - bhi _0806957E - ldr r4, _080695C8 - ldrh r1, [r4] - movs r0, #0x96 - muls r0, r1, r0 - movs r1, #0x64 - bl __divsi3 - strh r0, [r4] -_0806957E: - ldr r2, _080695CC - ldr r0, _080695D0 - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #7 - bne _08069598 - ldr r0, [sp, #0x18] - lsrs r0, r0, #1 - str r0, [sp, #0x18] -_08069598: - mov r1, sl - cmp r1, #8 - bls _080695A0 - b _08069702 -_080695A0: - ldr r0, _080695D4 - ldrb r1, [r0] - adds r4, r0, #0 - cmp r1, #2 - bne _080695E0 - movs r0, #0x19 - ldrsb r0, [r6, r0] - cmp r0, #6 - ble _080695DC - ldr r2, _080695D8 - b _080695E6 - .align 2, 0 -_080695B8: .4byte gUnknown_2022C90 -_080695BC: .4byte 0x003F0100 -_080695C0: .4byte 0xFFFFFE69 -_080695C4: .4byte 0x00000175 -_080695C8: .4byte gUnknown_2024184 -_080695CC: .4byte gUnknown_82ED220 -_080695D0: .4byte gUnknown_2023E8E -_080695D4: .4byte gUnknown_2023EB5 -_080695D8: .4byte gUnknown_82FA6B6 -_080695DC: - adds r5, r7, #0 - b _080695FE -_080695E0: - ldr r2, _08069630 - movs r0, #0x19 - ldrsb r0, [r6, r0] -_080695E6: - lsls r0, r0, #1 - adds r1, r0, r2 - ldrb r1, [r1] - adds r5, r7, #0 - muls r5, r1, r5 - adds r2, #1 - adds r0, r0, r2 - ldrb r1, [r0] - adds r0, r5, #0 - bl __divsi3 - adds r5, r0, #0 -_080695FE: - ldr r0, _08069634 - ldrh r0, [r0] - muls r5, r0, r5 - adds r0, r6, #0 - adds r0, #0x2a - ldrb r0, [r0] - lsls r0, r0, #1 - movs r1, #5 - bl __divsi3 - adds r0, #2 - muls r5, r0, r5 - ldrb r0, [r4] - cmp r0, #2 - bne _0806963C - ldr r2, [sp, #4] - movs r0, #0x1a - ldrsb r0, [r2, r0] - cmp r0, #5 - bgt _08069638 - ldr r2, _08069630 - ldr r3, [sp, #4] - movs r0, #0x1a - ldrsb r0, [r3, r0] - b _08069644 - .align 2, 0 -_08069630: .4byte gUnknown_82FA6B6 -_08069634: .4byte gUnknown_2024184 -_08069638: - ldr r3, [sp, #0x18] - b _0806965E -_0806963C: - ldr r2, _080696BC - ldr r1, [sp, #4] - movs r0, #0x1a - ldrsb r0, [r1, r0] -_08069644: - lsls r0, r0, #1 - adds r1, r0, r2 - ldrb r1, [r1] - ldr r7, [sp, #0x18] - adds r3, r7, #0 - muls r3, r1, r3 - adds r2, #1 - adds r0, r0, r2 - ldrb r1, [r0] - adds r0, r3, #0 - bl __divsi3 - adds r3, r0, #0 -_0806965E: - adds r0, r5, #0 - adds r1, r3, #0 - bl __divsi3 - adds r5, r0, #0 - movs r1, #0x32 - bl __divsi3 - adds r5, r0, #0 - ldr r0, [r6, #0x4c] - movs r1, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08069688 - ldr r1, [sp, #0x28] - ldrb r0, [r1] - cmp r0, #0x3e - beq _08069688 - lsrs r0, r5, #0x1f - adds r0, r5, r0 - asrs r5, r0, #1 -_08069688: - movs r0, #1 - ldr r2, [sp, #0xc] - ands r0, r2 - cmp r0, #0 - beq _080696CA - ldrb r1, [r4] - cmp r1, #1 - bne _080696CA - ldr r0, _080696C0 - ldr r0, [r0] - ands r0, r1 - cmp r0, #0 - beq _080696C4 - movs r0, #2 - bl CountAliveMonsInBattle - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _080696C4 - adds r0, r5, #0 - movs r1, #3 - bl __divsi3 - lsls r5, r0, #1 - b _080696CA - .align 2, 0 -_080696BC: .4byte gUnknown_82FA6B6 -_080696C0: .4byte gUnknown_2022C90 -_080696C4: - lsrs r0, r5, #0x1f - adds r0, r5, r0 - asrs r5, r0, #1 -_080696CA: - ldr r0, _08069728 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _080696FC - ldr r0, _0806972C - ldr r3, [sp, #8] - lsls r1, r3, #1 - adds r1, r1, r3 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #6] - cmp r0, #8 - bne _080696FC - movs r0, #2 - bl CountAliveMonsInBattle - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _080696FC - lsrs r0, r5, #0x1f - adds r0, r5, r0 - asrs r5, r0, #1 -_080696FC: - cmp r5, #0 - bne _08069702 - movs r5, #1 -_08069702: - mov r7, sl - cmp r7, #9 - bne _0806970A - movs r5, #0 -_0806970A: - mov r0, sl - cmp r0, #9 - bhi _08069712 - b _08069914 -_08069712: - ldr r0, _08069730 - ldrb r1, [r0] - adds r4, r0, #0 - cmp r1, #2 - bne _0806973C - movs r0, #0x1c - ldrsb r0, [r6, r0] - cmp r0, #6 - ble _08069738 - ldr r2, _08069734 - b _08069742 - .align 2, 0 -_08069728: .4byte gUnknown_2022C90 -_0806972C: .4byte gUnknown_82ED220 -_08069730: .4byte gUnknown_2023EB5 -_08069734: .4byte gUnknown_82FA6B6 -_08069738: - mov r5, r8 - b _0806975A -_0806973C: - ldr r2, _08069788 - movs r0, #0x1c - ldrsb r0, [r6, r0] -_08069742: - lsls r0, r0, #1 - adds r1, r0, r2 - ldrb r1, [r1] - mov r5, r8 - muls r5, r1, r5 - adds r2, #1 - adds r0, r0, r2 - ldrb r1, [r0] - adds r0, r5, #0 - bl __divsi3 - adds r5, r0, #0 -_0806975A: - ldr r0, _0806978C - ldrh r0, [r0] - muls r5, r0, r5 - adds r0, r6, #0 - adds r0, #0x2a - ldrb r0, [r0] - lsls r0, r0, #1 - movs r1, #5 - bl __divsi3 - adds r0, #2 - muls r5, r0, r5 - ldrb r0, [r4] - cmp r0, #2 - bne _08069794 - ldr r1, [sp, #4] - movs r0, #0x1d - ldrsb r0, [r1, r0] - cmp r0, #5 - bgt _08069790 - ldr r2, _08069788 - b _0806979C - .align 2, 0 -_08069788: .4byte gUnknown_82FA6B6 -_0806978C: .4byte gUnknown_2024184 -_08069790: - ldr r3, [sp, #0x1c] - b _080697B6 -_08069794: - ldr r2, _080697FC - ldr r7, [sp, #4] - movs r0, #0x1d - ldrsb r0, [r7, r0] -_0806979C: - lsls r0, r0, #1 - adds r1, r0, r2 - ldrb r1, [r1] - ldr r6, [sp, #0x1c] - adds r3, r6, #0 - muls r3, r1, r3 - adds r2, #1 - adds r0, r0, r2 - ldrb r1, [r0] - adds r0, r3, #0 - bl __divsi3 - adds r3, r0, #0 -_080697B6: - adds r0, r5, #0 - adds r1, r3, #0 - bl __divsi3 - adds r5, r0, #0 - movs r1, #0x32 - bl __divsi3 - adds r5, r0, #0 - movs r0, #2 - ldr r7, [sp, #0xc] - ands r0, r7 - cmp r0, #0 - beq _0806980A - ldrb r1, [r4] - cmp r1, #1 - bne _0806980A - ldr r0, _08069800 - ldr r0, [r0] - ands r0, r1 - cmp r0, #0 - beq _08069804 - movs r0, #2 - bl CountAliveMonsInBattle - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _08069804 - adds r0, r5, #0 - movs r1, #3 - bl __divsi3 - lsls r5, r0, #1 - b _0806980A - .align 2, 0 -_080697FC: .4byte gUnknown_82FA6B6 -_08069800: .4byte gUnknown_2022C90 -_08069804: - lsrs r0, r5, #0x1f - adds r0, r5, r0 - asrs r5, r0, #1 -_0806980A: - ldr r0, _08069884 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0806983C - ldr r0, _08069888 - ldr r2, [sp, #8] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #6] - cmp r0, #8 - bne _0806983C - movs r0, #2 - bl CountAliveMonsInBattle - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _0806983C - lsrs r0, r5, #0x1f - adds r0, r5, r0 - asrs r5, r0, #1 -_0806983C: - movs r0, #0 - str r0, [sp] - movs r0, #0xe - movs r1, #0 - movs r2, #0xd - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _080698EC - str r0, [sp] - movs r0, #0xe - movs r1, #0 - movs r2, #0x4d - movs r3, #0 - bl AbilityBattleEffects - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080698EC - ldr r2, _0806988C - ldrh r1, [r2] - movs r0, #1 - ands r0, r1 - adds r4, r2, #0 - cmp r0, #0 - beq _080698A4 - mov r3, sl - cmp r3, #0xa - beq _08069890 - cmp r3, #0xb - beq _08069898 - b _080698A4 - .align 2, 0 -_08069884: .4byte gUnknown_2022C90 -_08069888: .4byte gUnknown_82ED220 -_0806988C: .4byte gUnknown_2024070 -_08069890: - lsrs r0, r5, #0x1f - adds r0, r5, r0 - asrs r5, r0, #1 - b _080698A4 -_08069898: - lsls r0, r5, #4 - subs r0, r0, r5 - movs r1, #0xa - bl __divsi3 - adds r5, r0, #0 -_080698A4: - ldrh r1, [r4] - movs r0, #0x9f - ands r0, r1 - cmp r0, #0 - beq _080698BC - ldr r0, _080698D4 - ldrh r0, [r0] - cmp r0, #0x4c - bne _080698BC - lsrs r0, r5, #0x1f - adds r0, r5, r0 - asrs r5, r0, #1 -_080698BC: - ldrh r1, [r4] - movs r0, #0x60 - ands r0, r1 - cmp r0, #0 - beq _080698EC - mov r6, sl - cmp r6, #0xa - beq _080698D8 - cmp r6, #0xb - beq _080698E6 - b _080698EC - .align 2, 0 -_080698D4: .4byte gUnknown_2023E8E -_080698D8: - lsls r0, r5, #4 - subs r0, r0, r5 - movs r1, #0xa - bl __divsi3 - adds r5, r0, #0 - b _080698EC -_080698E6: - lsrs r0, r5, #0x1f - adds r0, r5, r0 - asrs r5, r0, #1 -_080698EC: - ldr r0, _08069928 - ldr r0, [r0] - ldr r0, [r0, #4] - ldr r7, [sp, #0x10] - lsls r1, r7, #2 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08069914 - mov r0, sl - cmp r0, #0xa - bne _08069914 - lsls r0, r5, #4 - subs r0, r0, r5 - movs r1, #0xa - bl __divsi3 - adds r5, r0, #0 -_08069914: - adds r0, r5, #2 - add sp, #0x30 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08069928: .4byte gUnknown_202414C - thumb_func_end CalculateBaseDamage - - thumb_func_start CountAliveMonsInBattle -CountAliveMonsInBattle: @ 0x0806992C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - movs r6, #0 - cmp r0, #1 - beq _08069980 - cmp r0, #1 - bgt _08069944 - cmp r0, #0 - beq _0806994A - b _08069A02 -_08069944: - cmp r1, #2 - beq _080699C8 - b _08069A02 -_0806994A: - movs r5, #0 - ldr r0, _08069974 - ldrb r3, [r0] - ldr r4, _08069978 - ldr r2, _0806997C -_08069954: - cmp r5, r3 - beq _08069968 - ldrb r0, [r4] - ldr r1, [r2] - ands r0, r1 - cmp r0, #0 - bne _08069968 - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_08069968: - adds r2, #4 - adds r5, #1 - cmp r5, #3 - ble _08069954 - b _08069A02 - .align 2, 0 -_08069974: .4byte gUnknown_2023D08 -_08069978: .4byte gUnknown_2023EB4 -_0806997C: .4byte gUnknown_82FACB4 -_08069980: - movs r5, #0 -_08069982: - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerSide - adds r4, r0, #0 - ldr r0, _080699BC - ldrb r0, [r0] - bl GetBattlerSide - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - bne _080699B4 - ldr r0, _080699C0 - ldrb r1, [r0] - ldr r2, _080699C4 - lsls r0, r5, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _080699B4 - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_080699B4: - adds r5, #1 - cmp r5, #3 - ble _08069982 - b _08069A02 - .align 2, 0 -_080699BC: .4byte gUnknown_2023EAF -_080699C0: .4byte gUnknown_2023EB4 -_080699C4: .4byte gUnknown_82FACB4 -_080699C8: - movs r5, #0 -_080699CA: - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerSide - adds r4, r0, #0 - ldr r0, _08069A0C - ldrb r0, [r0] - bl GetBattlerSide - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - bne _080699FC - ldr r0, _08069A10 - ldrb r1, [r0] - ldr r2, _08069A14 - lsls r0, r5, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _080699FC - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_080699FC: - adds r5, #1 - cmp r5, #3 - ble _080699CA -_08069A02: - adds r0, r6, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08069A0C: .4byte gUnknown_2023EB0 -_08069A10: .4byte gUnknown_2023EB4 -_08069A14: .4byte gUnknown_82FACB4 - thumb_func_end CountAliveMonsInBattle - - thumb_func_start ShouldGetStatBadgeBoost -ShouldGetStatBadgeBoost: @ 0x08069A18 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r2, r1, #0x18 - ldr r4, _08069A60 - ldr r0, [r4] - ldr r1, _08069A64 - ands r0, r1 - cmp r0, #0 - bne _08069A5C - adds r0, r2, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08069A5C - ldr r0, [r4] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _08069A50 - ldr r0, _08069A68 - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #3 - cmp r1, r0 - beq _08069A5C -_08069A50: - adds r0, r5, #0 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08069A6C -_08069A5C: - movs r0, #0 - b _08069A6E - .align 2, 0 -_08069A60: .4byte gUnknown_2022C90 -_08069A64: .4byte 0x023F0902 -_08069A68: .4byte gUnknown_203886A -_08069A6C: - movs r0, #1 -_08069A6E: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end ShouldGetStatBadgeBoost - - thumb_func_start GetDefaultMoveTarget -GetDefaultMoveTarget: @ 0x08069A74 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_080A630C - movs r1, #1 - movs r6, #1 - adds r4, r6, #0 - ands r4, r0 - eors r4, r1 - adds r5, r4, #0 - ldr r0, _08069A98 - ldr r0, [r0] - ands r0, r6 - cmp r0, #0 - bne _08069A9C - adds r0, r4, #0 - b _08069AE6 - .align 2, 0 -_08069A98: .4byte gUnknown_2022C90 -_08069A9C: - movs r0, #0 - bl CountAliveMonsInBattle - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _08069AC0 - bl Random - adds r1, r6, #0 - ands r1, r0 - cmp r1, #0 - bne _08069ABC - movs r0, #2 - eors r0, r4 - b _08069AE6 -_08069ABC: - adds r0, r4, #0 - b _08069AE6 -_08069AC0: - ldr r0, _08069AD8 - ldrb r1, [r0] - ldr r2, _08069ADC - lsls r0, r4, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _08069AE0 - adds r0, r4, #0 - b _08069AE6 - .align 2, 0 -_08069AD8: .4byte gUnknown_2023EB4 -_08069ADC: .4byte gUnknown_82FACB4 -_08069AE0: - movs r0, #2 - eors r5, r0 - adds r0, r5, #0 -_08069AE6: - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end GetDefaultMoveTarget - - thumb_func_start GetMonGender -GetMonGender: @ 0x08069AF4 - push {lr} - bl GetBoxMonGender - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetMonGender - - thumb_func_start GetBoxMonGender -GetBoxMonGender: @ 0x08069B04 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0xb - movs r2, #0 - bl sub_0806A1B4 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - bl sub_0806A1B4 - adds r2, r0, #0 - ldr r1, _08069B54 - lsls r0, r5, #3 - subs r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #0x10] - cmp r0, #0 - beq _08069B5A - cmp r0, #0 - blt _08069B3C - cmp r0, #0xff - bgt _08069B3C - cmp r0, #0xfe - bge _08069B5A -_08069B3C: - ldr r1, _08069B54 - lsls r0, r5, #3 - subs r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #0x10] - movs r0, #0xff - ands r0, r2 - cmp r1, r0 - bhi _08069B58 - movs r0, #0 - b _08069B5A - .align 2, 0 -_08069B54: .4byte gUnknown_82F0D54 -_08069B58: - movs r0, #0xfe -_08069B5A: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end GetBoxMonGender - - thumb_func_start GetGenderFromSpeciesAndPersonality -GetGenderFromSpeciesAndPersonality: @ 0x08069B60 - push {lr} - adds r3, r1, #0 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r1, _08069B9C - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #0x10] - cmp r0, #0 - beq _08069BA2 - cmp r0, #0 - blt _08069B84 - cmp r0, #0xff - bgt _08069B84 - cmp r0, #0xfe - bge _08069BA2 -_08069B84: - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #0x10] - movs r0, #0xff - ands r0, r3 - cmp r1, r0 - bhi _08069BA0 - movs r0, #0 - b _08069BA2 - .align 2, 0 -_08069B9C: .4byte gUnknown_82F0D54 -_08069BA0: - movs r0, #0xfe -_08069BA2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetGenderFromSpeciesAndPersonality - - thumb_func_start SetMultiuseSpriteTemplateToPokemon -SetMultiuseSpriteTemplateToPokemon: @ 0x08069BA8 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - ldr r0, _08069BD4 - ldr r2, [r0] - cmp r2, #0 - beq _08069BDC - ldr r0, _08069BD8 - lsls r1, r4, #1 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r2, r1 - adds r2, r0, #0 - adds r1, #0x14 - ldm r1!, {r3, r6, r7} - stm r2!, {r3, r6, r7} - ldm r1!, {r3, r6, r7} - stm r2!, {r3, r6, r7} - adds r3, r0, #0 - b _08069C1A - .align 2, 0 -_08069BD4: .4byte gUnknown_2024178 -_08069BD8: .4byte gUnknown_2024640 -_08069BDC: - ldr r1, _08069BEC - ldr r0, [r1] - cmp r0, #0 - beq _08069BF4 - ldr r3, _08069BF0 - ldr r2, [r0, #0xc] - b _08069C08 - .align 2, 0 -_08069BEC: .4byte gUnknown_2024658 -_08069BF0: .4byte gUnknown_2024640 -_08069BF4: - ldr r0, [r1, #4] - cmp r0, #0 - beq _08069C04 - ldr r3, _08069C00 - ldr r2, [r0, #0xc] - b _08069C08 - .align 2, 0 -_08069C00: .4byte gUnknown_2024640 -_08069C04: - ldr r3, _08069C2C - ldr r2, _08069C30 -_08069C08: - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r1, r3, #0 - adds r0, r0, r2 - ldm r0!, {r2, r6, r7} - stm r1!, {r2, r6, r7} - ldm r0!, {r2, r6, r7} - stm r1!, {r2, r6, r7} -_08069C1A: - adds r2, r3, #0 - strh r5, [r2, #2] - cmp r4, #0 - beq _08069C26 - cmp r4, #2 - bne _08069C38 -_08069C26: - ldr r0, _08069C34 - str r0, [r2, #8] - b _08069C62 - .align 2, 0 -_08069C2C: .4byte gUnknown_2024640 -_08069C30: .4byte gUnknown_82FA724 -_08069C34: .4byte gUnknown_82D2F9C -_08069C38: - movs r0, #0xfa - lsls r0, r0, #1 - cmp r5, r0 - bls _08069C58 - ldr r0, _08069C50 - ldr r3, _08069C54 - adds r1, r5, r3 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r2, #8] - b _08069C62 - .align 2, 0 -_08069C50: .4byte gUnknown_82DD33C -_08069C54: .4byte 0xFFFFFE0C -_08069C58: - ldr r0, _08069C68 - lsls r1, r5, #2 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r3, #8] -_08069C62: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08069C68: .4byte gUnknown_82DD33C - thumb_func_end SetMultiuseSpriteTemplateToPokemon - - thumb_func_start SetMultiuseSpriteTemplateToTrainerBack -SetMultiuseSpriteTemplateToTrainerBack: @ 0x08069C6C - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - ldr r0, _08069CA4 - strh r4, [r0, #2] - adds r5, r0, #0 - cmp r3, #0 - beq _08069C84 - cmp r3, #2 - bne _08069CB0 -_08069C84: - ldr r2, _08069CA8 - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r1, r5, #0 - adds r0, r0, r2 - ldm r0!, {r2, r3, r6} - stm r1!, {r2, r3, r6} - ldm r0!, {r2, r3, r6} - stm r1!, {r2, r3, r6} - ldr r1, _08069CAC - lsls r0, r4, #2 - adds r0, r0, r1 - ldr r0, [r0] - b _08069CF0 - .align 2, 0 -_08069CA4: .4byte gUnknown_2024640 -_08069CA8: .4byte gUnknown_82FA784 -_08069CAC: .4byte gUnknown_82D959C -_08069CB0: - ldr r0, _08069CD0 - ldr r1, [r0] - cmp r1, #0 - beq _08069CD4 - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #3 - adds r0, r1, r0 - adds r1, r5, #0 - adds r0, #0x14 - ldm r0!, {r2, r3, r6} - stm r1!, {r2, r3, r6} - ldm r0!, {r2, r3, r6} - stm r1!, {r2, r3, r6} - b _08069CE8 - .align 2, 0 -_08069CD0: .4byte gUnknown_2024178 -_08069CD4: - ldr r0, _08069CF8 - lsls r1, r3, #1 - adds r1, r1, r3 - lsls r1, r1, #3 - adds r2, r5, #0 - adds r1, r1, r0 - ldm r1!, {r0, r3, r6} - stm r2!, {r0, r3, r6} - ldm r1!, {r0, r3, r6} - stm r2!, {r0, r3, r6} -_08069CE8: - ldr r0, _08069CFC - lsls r1, r4, #2 - adds r1, r1, r0 - ldr r0, [r1] -_08069CF0: - str r0, [r5, #8] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08069CF8: .4byte gUnknown_82FA724 -_08069CFC: .4byte gUnknown_82D8BFC - thumb_func_end SetMultiuseSpriteTemplateToTrainerBack - - thumb_func_start SetMultiuseSpriteTemplateToTrainerFront -SetMultiuseSpriteTemplateToTrainerFront: @ 0x08069D00 - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - ldr r0, _08069D2C - ldr r2, [r0] - cmp r2, #0 - beq _08069D34 - ldr r0, _08069D30 - lsls r1, r4, #1 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r2, r1 - adds r2, r0, #0 - adds r1, #0x14 - ldm r1!, {r3, r4, r6} - stm r2!, {r3, r4, r6} - ldm r1!, {r3, r4, r6} - stm r2!, {r3, r4, r6} - adds r3, r0, #0 - b _08069D4A - .align 2, 0 -_08069D2C: .4byte gUnknown_2024178 -_08069D30: .4byte gUnknown_2024640 -_08069D34: - ldr r3, _08069D5C - ldr r2, _08069D60 - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r1, r3, #0 - adds r0, r0, r2 - ldm r0!, {r2, r4, r6} - stm r1!, {r2, r4, r6} - ldm r0!, {r2, r4, r6} - stm r1!, {r2, r4, r6} -_08069D4A: - strh r5, [r3, #2] - ldr r0, _08069D64 - lsls r1, r5, #2 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r3, #8] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08069D5C: .4byte gUnknown_2024640 -_08069D60: .4byte gUnknown_82FA724 -_08069D64: .4byte gUnknown_82D8BFC - thumb_func_end SetMultiuseSpriteTemplateToTrainerFront - - thumb_func_start EncryptBoxMon -EncryptBoxMon: @ 0x08069D68 - push {r4, lr} - adds r3, r0, #0 - movs r4, #0 - adds r2, r3, #0 - adds r2, #0x20 -_08069D72: - ldr r0, [r2] - ldr r1, [r3] - eors r0, r1 - str r0, [r2] - ldr r1, [r3, #4] - eors r0, r1 - stm r2!, {r0} - adds r4, #1 - cmp r4, #0xb - bls _08069D72 - pop {r4} - pop {r0} - bx r0 - thumb_func_end EncryptBoxMon - - thumb_func_start DecryptBoxMon -DecryptBoxMon: @ 0x08069D8C - push {r4, lr} - adds r3, r0, #0 - movs r4, #0 - adds r2, r3, #0 - adds r2, #0x20 -_08069D96: - ldr r0, [r2] - ldr r1, [r3, #4] - eors r0, r1 - str r0, [r2] - ldr r1, [r3] - eors r0, r1 - stm r2!, {r0} - adds r4, #1 - cmp r4, #0xb - bls _08069D96 - pop {r4} - pop {r0} - bx r0 - thumb_func_end DecryptBoxMon - - thumb_func_start GetSubstruct -GetSubstruct: @ 0x08069DB0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r0, r1, #0 - lsls r2, r2, #0x18 - lsrs r4, r2, #0x18 - movs r6, #0 - movs r1, #0x18 - bl __umodsi3 - cmp r0, #0x17 - bls _08069DC8 - b _0806A050 -_08069DC8: - lsls r0, r0, #2 - ldr r1, _08069DD4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08069DD4: .4byte _08069DD8 -_08069DD8: @ jump table - .4byte _08069E38 @ case 0 - .4byte _08069E5C @ case 1 - .4byte _08069E78 @ case 2 - .4byte _08069E8E @ case 3 - .4byte _08069EA4 @ case 4 - .4byte _08069EC0 @ case 5 - .4byte _08069ED6 @ case 6 - .4byte _08069EEC @ case 7 - .4byte _08069EFC @ case 8 - .4byte _08069F1A @ case 9 - .4byte _08069F32 @ case 10 - .4byte _08069F42 @ case 11 - .4byte _08069F56 @ case 12 - .4byte _08069F68 @ case 13 - .4byte _08069F7A @ case 14 - .4byte _08069F8C @ case 15 - .4byte _08069F9E @ case 16 - .4byte _08069FB0 @ case 17 - .4byte _08069FC2 @ case 18 - .4byte _08069FD8 @ case 19 - .4byte _08069FEC @ case 20 - .4byte _08069FFA @ case 21 - .4byte _0806A00C @ case 22 - .4byte _0806A020 @ case 23 -_08069E38: - adds r0, r5, #0 - adds r0, #0x20 - cmp r4, #1 - bne _08069E42 - b _0806A048 -_08069E42: - cmp r4, #1 - bgt _08069E4E -_08069E46: - cmp r4, #0 - bne _08069E4C - b _0806A04E -_08069E4C: - b _0806A050 -_08069E4E: - cmp r4, #2 - bne _08069E54 - b _0806A042 -_08069E54: - cmp r4, #3 - beq _08069E5A - b _0806A050 -_08069E5A: - b _0806A03C -_08069E5C: - adds r0, r5, #0 - adds r0, #0x20 - cmp r4, #1 - bne _08069E66 - b _0806A048 -_08069E66: - cmp r4, #1 - ble _08069E46 -_08069E6A: - cmp r4, #2 - bne _08069E70 - b _0806A03C -_08069E70: - cmp r4, #3 - beq _08069E76 - b _0806A050 -_08069E76: - b _0806A042 -_08069E78: - adds r0, r5, #0 - adds r0, #0x20 - cmp r4, #1 - bne _08069E82 - b _0806A042 -_08069E82: - cmp r4, #1 - ble _08069E46 - cmp r4, #2 - bne _08069E8C - b _0806A048 -_08069E8C: - b _08069E54 -_08069E8E: - adds r0, r5, #0 - adds r0, #0x20 - cmp r4, #1 - bne _08069E98 - b _0806A03C -_08069E98: - cmp r4, #1 - ble _08069E46 - cmp r4, #2 - bne _08069EA2 - b _0806A048 -_08069EA2: - b _08069E70 -_08069EA4: - adds r0, r5, #0 - adds r0, #0x20 - cmp r4, #1 - bne _08069EAE - b _0806A042 -_08069EAE: - cmp r4, #1 - ble _08069E46 -_08069EB2: - cmp r4, #2 - bne _08069EB8 - b _0806A03C -_08069EB8: - cmp r4, #3 - beq _08069EBE - b _0806A050 -_08069EBE: - b _0806A048 -_08069EC0: - adds r0, r5, #0 - adds r0, #0x20 - cmp r4, #1 - bne _08069ECA - b _0806A03C -_08069ECA: - cmp r4, #1 - ble _08069E46 - cmp r4, #2 - bne _08069ED4 - b _0806A042 -_08069ED4: - b _08069EB8 -_08069ED6: - adds r0, r5, #0 - adds r0, #0x20 - cmp r4, #1 - bne _08069EE0 - b _0806A04E -_08069EE0: - cmp r4, #1 - bgt _08069E4E -_08069EE4: - cmp r4, #0 - bne _08069EEA - b _0806A048 -_08069EEA: - b _0806A050 -_08069EEC: - adds r0, r5, #0 - adds r0, #0x20 - cmp r4, #1 - bne _08069EF6 - b _0806A04E -_08069EF6: - cmp r4, #1 - ble _08069EE4 - b _08069E6A -_08069EFC: - adds r0, r5, #0 - adds r0, #0x20 - cmp r4, #1 - bne _08069F06 - b _0806A04E -_08069F06: - cmp r4, #1 - bgt _08069F12 -_08069F0A: - cmp r4, #0 - bne _08069F10 - b _0806A042 -_08069F10: - b _0806A050 -_08069F12: - cmp r4, #2 - bne _08069F18 - b _0806A048 -_08069F18: - b _08069E54 -_08069F1A: - adds r0, r5, #0 - adds r0, #0x20 - cmp r4, #1 - bne _08069F24 - b _0806A04E -_08069F24: - cmp r4, #1 - bgt _08069F2A - b _0806A02C -_08069F2A: - cmp r4, #2 - bne _08069F30 - b _0806A048 -_08069F30: - b _08069E70 -_08069F32: - adds r0, r5, #0 - adds r0, #0x20 - cmp r4, #1 - bne _08069F3C - b _0806A04E -_08069F3C: - cmp r4, #1 - ble _08069F0A - b _08069EB2 -_08069F42: - adds r0, r5, #0 - adds r0, #0x20 - cmp r4, #1 - bne _08069F4C - b _0806A04E -_08069F4C: - cmp r4, #1 - ble _0806A02C - cmp r4, #2 - beq _0806A042 - b _08069EB8 -_08069F56: - adds r0, r5, #0 - adds r0, #0x20 - cmp r4, #1 - beq _0806A042 - cmp r4, #1 - ble _08069EE4 - cmp r4, #2 - beq _0806A04E - b _08069E54 -_08069F68: - adds r0, r5, #0 - adds r0, #0x20 - cmp r4, #1 - beq _0806A03C - cmp r4, #1 - ble _08069EE4 - cmp r4, #2 - beq _0806A04E - b _08069E70 -_08069F7A: - adds r0, r5, #0 - adds r0, #0x20 - cmp r4, #1 - beq _0806A048 - cmp r4, #1 - ble _08069F0A - cmp r4, #2 - beq _0806A04E - b _08069E54 -_08069F8C: - adds r0, r5, #0 - adds r0, #0x20 - cmp r4, #1 - beq _0806A048 - cmp r4, #1 - ble _0806A02C - cmp r4, #2 - beq _0806A04E - b _08069E70 -_08069F9E: - adds r0, r5, #0 - adds r0, #0x20 - cmp r4, #1 - beq _0806A03C - cmp r4, #1 - ble _08069F0A - cmp r4, #2 - beq _0806A04E - b _08069EB8 -_08069FB0: - adds r0, r5, #0 - adds r0, #0x20 - cmp r4, #1 - beq _0806A042 - cmp r4, #1 - ble _0806A02C - cmp r4, #2 - beq _0806A04E - b _08069EB8 -_08069FC2: - adds r0, r5, #0 - adds r0, #0x20 - cmp r4, #1 - beq _0806A042 - cmp r4, #1 - ble _08069EE4 -_08069FCE: - cmp r4, #2 - beq _0806A03C -_08069FD2: - cmp r4, #3 - bne _0806A050 - b _0806A04E -_08069FD8: - adds r0, r5, #0 - adds r0, #0x20 - cmp r4, #1 - beq _0806A03C - cmp r4, #1 - bgt _08069FE6 - b _08069EE4 -_08069FE6: - cmp r4, #2 - beq _0806A042 - b _08069FD2 -_08069FEC: - adds r0, r5, #0 - adds r0, #0x20 - cmp r4, #1 - beq _0806A048 - cmp r4, #1 - ble _08069F0A - b _08069FCE -_08069FFA: - adds r0, r5, #0 - adds r0, #0x20 - cmp r4, #1 - beq _0806A048 - cmp r4, #1 - ble _0806A02C - cmp r4, #2 - beq _0806A042 - b _08069FD2 -_0806A00C: - adds r0, r5, #0 - adds r0, #0x20 - cmp r4, #1 - beq _0806A03C - cmp r4, #1 - bgt _0806A01A - b _08069F0A -_0806A01A: - cmp r4, #2 - beq _0806A048 - b _08069FD2 -_0806A020: - adds r0, r5, #0 - adds r0, #0x20 - cmp r4, #1 - beq _0806A042 - cmp r4, #1 - bgt _0806A032 -_0806A02C: - cmp r4, #0 - beq _0806A03C - b _0806A050 -_0806A032: - cmp r4, #2 - beq _0806A048 - cmp r4, #3 - beq _0806A04E - b _0806A050 -_0806A03C: - adds r6, r5, #0 - adds r6, #0x44 - b _0806A050 -_0806A042: - adds r6, r5, #0 - adds r6, #0x38 - b _0806A050 -_0806A048: - adds r6, r5, #0 - adds r6, #0x2c - b _0806A050 -_0806A04E: - adds r6, r0, #0 -_0806A050: - adds r0, r6, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end GetSubstruct - - thumb_func_start GetMonData -GetMonData: @ 0x0806A058 - push {r4, lr} - adds r4, r0, #0 - adds r3, r1, #0 - adds r0, r3, #0 - subs r0, #0x37 - cmp r0, #0x21 - bls _0806A068 - b _0806A1A6 -_0806A068: - lsls r0, r0, #2 - ldr r1, _0806A074 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806A074: .4byte _0806A078 -_0806A078: @ jump table - .4byte _0806A100 @ case 0 - .4byte _0806A104 @ case 1 - .4byte _0806A10C @ case 2 - .4byte _0806A114 @ case 3 - .4byte _0806A11C @ case 4 - .4byte _0806A12E @ case 5 - .4byte _0806A140 @ case 6 - .4byte _0806A152 @ case 7 - .4byte _0806A164 @ case 8 - .4byte _0806A19E @ case 9 - .4byte _0806A1A6 @ case 10 - .4byte _0806A1A6 @ case 11 - .4byte _0806A1A6 @ case 12 - .4byte _0806A1A6 @ case 13 - .4byte _0806A1A6 @ case 14 - .4byte _0806A1A6 @ case 15 - .4byte _0806A1A6 @ case 16 - .4byte _0806A1A6 @ case 17 - .4byte _0806A1A6 @ case 18 - .4byte _0806A1A6 @ case 19 - .4byte _0806A1A6 @ case 20 - .4byte _0806A1A6 @ case 21 - .4byte _0806A1A6 @ case 22 - .4byte _0806A1A6 @ case 23 - .4byte _0806A1A6 @ case 24 - .4byte _0806A1A6 @ case 25 - .4byte _0806A1A6 @ case 26 - .4byte _0806A1A6 @ case 27 - .4byte _0806A1A6 @ case 28 - .4byte _0806A176 @ case 29 - .4byte _0806A17E @ case 30 - .4byte _0806A186 @ case 31 - .4byte _0806A18E @ case 32 - .4byte _0806A196 @ case 33 -_0806A100: - ldr r0, [r4, #0x50] - b _0806A1AE -_0806A104: - adds r0, r4, #0 - adds r0, #0x54 - ldrb r0, [r0] - b _0806A1AE -_0806A10C: - adds r0, r4, #0 - adds r0, #0x56 - ldrh r0, [r0] - b _0806A1AE -_0806A114: - adds r0, r4, #0 - adds r0, #0x58 - ldrh r0, [r0] - b _0806A1AE -_0806A11C: - adds r0, r4, #0 - movs r1, #1 - bl GetDeoxysStat - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - bne _0806A1AE - b _0806A176 -_0806A12E: - adds r0, r4, #0 - movs r1, #2 - bl GetDeoxysStat - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - bne _0806A1AE - b _0806A17E -_0806A140: - adds r0, r4, #0 - movs r1, #3 - bl GetDeoxysStat - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - bne _0806A1AE - b _0806A186 -_0806A152: - adds r0, r4, #0 - movs r1, #4 - bl GetDeoxysStat - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - bne _0806A1AE - b _0806A18E -_0806A164: - adds r0, r4, #0 - movs r1, #5 - bl GetDeoxysStat - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - bne _0806A1AE - b _0806A196 -_0806A176: - adds r0, r4, #0 - adds r0, #0x5a - ldrh r0, [r0] - b _0806A1AE -_0806A17E: - adds r0, r4, #0 - adds r0, #0x5c - ldrh r0, [r0] - b _0806A1AE -_0806A186: - adds r0, r4, #0 - adds r0, #0x5e - ldrh r0, [r0] - b _0806A1AE -_0806A18E: - adds r0, r4, #0 - adds r0, #0x60 - ldrh r0, [r0] - b _0806A1AE -_0806A196: - adds r0, r4, #0 - adds r0, #0x62 - ldrh r0, [r0] - b _0806A1AE -_0806A19E: - adds r0, r4, #0 - adds r0, #0x55 - ldrb r0, [r0] - b _0806A1AE -_0806A1A6: - adds r0, r4, #0 - adds r1, r3, #0 - bl sub_0806A1B4 -_0806A1AE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetMonData - - thumb_func_start sub_0806A1B4 -sub_0806A1B4: @ 0x0806A1B4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov sb, r0 - str r1, [sp] - adds r7, r2, #0 - movs r4, #0 - mov r8, r4 - mov sl, r4 - movs r6, #0 - movs r5, #0 - cmp r1, #0xa - ble _0806A232 - ldr r1, [r0] - movs r2, #0 - bl GetSubstruct - mov r8, r0 - mov r0, sb - ldr r1, [r0] - movs r2, #1 - bl GetSubstruct - mov sl, r0 - mov r2, sb - ldr r1, [r2] - mov r0, sb - movs r2, #2 - bl GetSubstruct - adds r6, r0, #0 - mov r0, sb - ldr r1, [r0] - movs r2, #3 - bl GetSubstruct - adds r5, r0, #0 - mov r0, sb - bl DecryptBoxMon - mov r0, sb - bl CalculateBoxMonChecksum - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r1, sb - ldrh r1, [r1, #0x1c] - cmp r0, r1 - beq _0806A232 - mov r2, sb - ldrb r0, [r2, #0x13] - movs r1, #1 - orrs r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2, #0x13] - ldrb r0, [r5, #7] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r5, #7] -_0806A232: - ldr r0, [sp] - cmp r0, #0x53 - bls _0806A23A - b _0806A754 -_0806A23A: - lsls r0, r0, #2 - ldr r1, _0806A244 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806A244: .4byte _0806A248 -_0806A248: @ jump table - .4byte _0806A398 @ case 0 - .4byte _0806A39E @ case 1 - .4byte _0806A3A4 @ case 2 - .4byte _0806A3DE @ case 3 - .4byte _0806A3E4 @ case 4 - .4byte _0806A3EA @ case 5 - .4byte _0806A3F0 @ case 6 - .4byte _0806A3F6 @ case 7 - .4byte _0806A412 @ case 8 - .4byte _0806A418 @ case 9 - .4byte _0806A41E @ case 10 - .4byte _0806A424 @ case 11 - .4byte _0806A43C @ case 12 - .4byte _0806A454 @ case 13 - .4byte _0806A454 @ case 14 - .4byte _0806A454 @ case 15 - .4byte _0806A454 @ case 16 - .4byte _0806A460 @ case 17 - .4byte _0806A460 @ case 18 - .4byte _0806A460 @ case 19 - .4byte _0806A460 @ case 20 - .4byte _0806A448 @ case 21 - .4byte _0806A482 @ case 22 - .4byte _0806A486 @ case 23 - .4byte _0806A48A @ case 24 - .4byte _0806A442 @ case 25 - .4byte _0806A46A @ case 26 - .4byte _0806A46E @ case 27 - .4byte _0806A472 @ case 28 - .4byte _0806A476 @ case 29 - .4byte _0806A47A @ case 30 - .4byte _0806A47E @ case 31 - .4byte _0806A44E @ case 32 - .4byte _0806A48E @ case 33 - .4byte _0806A49A @ case 34 - .4byte _0806A49E @ case 35 - .4byte _0806A4A2 @ case 36 - .4byte _0806A4AA @ case 37 - .4byte _0806A4B2 @ case 38 - .4byte _0806A4BC @ case 39 - .4byte _0806A4C4 @ case 40 - .4byte _0806A4CC @ case 41 - .4byte _0806A4D4 @ case 42 - .4byte _0806A4DC @ case 43 - .4byte _0806A4E4 @ case 44 - .4byte _0806A4EC @ case 45 - .4byte _0806A4F0 @ case 46 - .4byte _0806A492 @ case 47 - .4byte _0806A496 @ case 48 - .4byte _0806A4B6 @ case 49 - .4byte _0806A4F6 @ case 50 - .4byte _0806A4FE @ case 51 - .4byte _0806A506 @ case 52 - .4byte _0806A50E @ case 53 - .4byte _0806A516 @ case 54 - .4byte _0806A754 @ case 55 - .4byte _0806A754 @ case 56 - .4byte _0806A754 @ case 57 - .4byte _0806A754 @ case 58 - .4byte _0806A754 @ case 59 - .4byte _0806A754 @ case 60 - .4byte _0806A754 @ case 61 - .4byte _0806A754 @ case 62 - .4byte _0806A754 @ case 63 - .4byte _0806A754 @ case 64 - .4byte _0806A57C @ case 65 - .4byte _0806A5A2 @ case 66 - .4byte _0806A51E @ case 67 - .4byte _0806A524 @ case 68 - .4byte _0806A528 @ case 69 - .4byte _0806A52C @ case 70 - .4byte _0806A530 @ case 71 - .4byte _0806A538 @ case 72 - .4byte _0806A540 @ case 73 - .4byte _0806A548 @ case 74 - .4byte _0806A550 @ case 75 - .4byte _0806A556 @ case 76 - .4byte _0806A55E @ case 77 - .4byte _0806A566 @ case 78 - .4byte _0806A56E @ case 79 - .4byte _0806A576 @ case 80 - .4byte _0806A5DC @ case 81 - .4byte _0806A638 @ case 82 - .4byte _0806A6BA @ case 83 -_0806A398: - mov r1, sb - ldr r4, [r1] - b _0806A754 -_0806A39E: - mov r2, sb - ldr r4, [r2, #4] - b _0806A754 -_0806A3A4: - mov r0, sb - ldrb r1, [r0, #0x13] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0806A3C8 - movs r4, #0 - ldr r2, _0806A3C4 -_0806A3B4: - adds r0, r7, r4 - adds r1, r4, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r4, #1 - cmp r4, #4 - bls _0806A3B4 - b _0806A40A - .align 2, 0 -_0806A3C4: .4byte gUnknown_85ABC78 -_0806A3C8: - movs r4, #0 - mov r2, sb - adds r2, #8 -_0806A3CE: - adds r0, r7, r4 - adds r1, r2, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r4, #1 - cmp r4, #9 - bls _0806A3CE - b _0806A40A -_0806A3DE: - mov r1, sb - ldrb r4, [r1, #0x12] - b _0806A754 -_0806A3E4: - mov r2, sb - ldrb r0, [r2, #0x13] - b _0806A558 -_0806A3EA: - mov r7, sb - ldrb r0, [r7, #0x13] - b _0806A560 -_0806A3F0: - mov r1, sb - ldrb r0, [r1, #0x13] - b _0806A568 -_0806A3F6: - movs r4, #0 - mov r2, sb - adds r2, #0x14 -_0806A3FC: - adds r0, r7, r4 - adds r1, r2, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r4, #1 - cmp r4, #6 - bls _0806A3FC -_0806A40A: - adds r1, r7, r4 - movs r0, #0xff - strb r0, [r1] - b _0806A754 -_0806A412: - mov r2, sb - ldrb r4, [r2, #0x1b] - b _0806A754 -_0806A418: - mov r7, sb - ldrh r4, [r7, #0x1c] - b _0806A754 -_0806A41E: - mov r0, sb - ldrh r4, [r0, #0x1e] - b _0806A754 -_0806A424: - mov r2, sb - ldrb r1, [r2, #0x13] - movs r0, #1 - ands r0, r1 - movs r4, #0xce - lsls r4, r4, #1 - cmp r0, #0 - beq _0806A436 - b _0806A754 -_0806A436: - mov r7, r8 - ldrh r4, [r7] - b _0806A754 -_0806A43C: - mov r0, r8 - ldrh r4, [r0, #2] - b _0806A754 -_0806A442: - mov r1, r8 - ldr r4, [r1, #4] - b _0806A754 -_0806A448: - mov r2, r8 - ldrb r4, [r2, #8] - b _0806A754 -_0806A44E: - mov r7, r8 - ldrb r4, [r7, #9] - b _0806A754 -_0806A454: - ldr r0, [sp] - subs r0, #0xd - lsls r0, r0, #1 - add r0, sl - ldrh r4, [r0] - b _0806A754 -_0806A460: - ldr r0, [sp] - add r0, sl - subs r0, #9 - ldrb r4, [r0] - b _0806A754 -_0806A46A: - ldrb r4, [r6] - b _0806A754 -_0806A46E: - ldrb r4, [r6, #1] - b _0806A754 -_0806A472: - ldrb r4, [r6, #2] - b _0806A754 -_0806A476: - ldrb r4, [r6, #3] - b _0806A754 -_0806A47A: - ldrb r4, [r6, #4] - b _0806A754 -_0806A47E: - ldrb r4, [r6, #5] - b _0806A754 -_0806A482: - ldrb r4, [r6, #6] - b _0806A754 -_0806A486: - ldrb r4, [r6, #7] - b _0806A754 -_0806A48A: - ldrb r4, [r6, #8] - b _0806A754 -_0806A48E: - ldrb r4, [r6, #9] - b _0806A754 -_0806A492: - ldrb r4, [r6, #0xa] - b _0806A754 -_0806A496: - ldrb r4, [r6, #0xb] - b _0806A754 -_0806A49A: - ldrb r4, [r5] - b _0806A754 -_0806A49E: - ldrb r4, [r5, #1] - b _0806A754 -_0806A4A2: - ldrb r0, [r5, #2] - lsls r0, r0, #0x19 - lsrs r4, r0, #0x19 - b _0806A754 -_0806A4AA: - ldrh r0, [r5, #2] - lsls r0, r0, #0x15 - lsrs r4, r0, #0x1c - b _0806A754 -_0806A4B2: - ldrb r0, [r5, #3] - b _0806A570 -_0806A4B6: - ldrb r0, [r5, #3] - lsrs r4, r0, #7 - b _0806A754 -_0806A4BC: - ldrb r0, [r5, #4] - lsls r0, r0, #0x1b - lsrs r4, r0, #0x1b - b _0806A754 -_0806A4C4: - ldrh r0, [r5, #4] - lsls r0, r0, #0x16 - lsrs r4, r0, #0x1b - b _0806A754 -_0806A4CC: - ldrb r0, [r5, #5] - lsls r0, r0, #0x19 - lsrs r4, r0, #0x1b - b _0806A754 -_0806A4D4: - ldr r0, [r5, #4] - lsls r0, r0, #0xc - lsrs r4, r0, #0x1b - b _0806A754 -_0806A4DC: - ldrh r0, [r5, #6] - lsls r0, r0, #0x17 - lsrs r4, r0, #0x1b - b _0806A754 -_0806A4E4: - ldrb r0, [r5, #7] - lsls r0, r0, #0x1a - lsrs r4, r0, #0x1b - b _0806A754 -_0806A4EC: - ldrb r0, [r5, #7] - b _0806A54A -_0806A4F0: - ldrb r0, [r5, #7] - lsrs r4, r0, #7 - b _0806A754 -_0806A4F6: - ldrb r0, [r5, #8] - lsls r0, r0, #0x1d - lsrs r4, r0, #0x1d - b _0806A754 -_0806A4FE: - ldrb r0, [r5, #8] - lsls r0, r0, #0x1a - lsrs r4, r0, #0x1d - b _0806A754 -_0806A506: - ldrh r0, [r5, #8] - lsls r0, r0, #0x17 - lsrs r4, r0, #0x1d - b _0806A754 -_0806A50E: - ldrb r0, [r5, #9] - lsls r0, r0, #0x1c - lsrs r4, r0, #0x1d - b _0806A754 -_0806A516: - ldrb r0, [r5, #9] - lsls r0, r0, #0x19 - lsrs r4, r0, #0x1d - b _0806A754 -_0806A51E: - ldrb r0, [r5, #9] - lsrs r4, r0, #7 - b _0806A754 -_0806A524: - ldrb r0, [r5, #0xa] - b _0806A558 -_0806A528: - ldrb r0, [r5, #0xa] - b _0806A560 -_0806A52C: - ldrb r0, [r5, #0xa] - b _0806A568 -_0806A530: - ldrb r0, [r5, #0xa] - lsls r0, r0, #0x1c - lsrs r4, r0, #0x1f - b _0806A754 -_0806A538: - ldrb r0, [r5, #0xa] - lsls r0, r0, #0x1b - lsrs r4, r0, #0x1f - b _0806A754 -_0806A540: - ldrb r0, [r5, #0xa] - lsls r0, r0, #0x1a - lsrs r4, r0, #0x1f - b _0806A754 -_0806A548: - ldrb r0, [r5, #0xa] -_0806A54A: - lsls r0, r0, #0x19 - lsrs r4, r0, #0x1f - b _0806A754 -_0806A550: - ldrb r0, [r5, #0xa] - lsrs r4, r0, #7 - b _0806A754 -_0806A556: - ldrb r0, [r5, #0xb] -_0806A558: - lsls r0, r0, #0x1f - lsrs r4, r0, #0x1f - b _0806A754 -_0806A55E: - ldrb r0, [r5, #0xb] -_0806A560: - lsls r0, r0, #0x1e - lsrs r4, r0, #0x1f - b _0806A754 -_0806A566: - ldrb r0, [r5, #0xb] -_0806A568: - lsls r0, r0, #0x1d - lsrs r4, r0, #0x1f - b _0806A754 -_0806A56E: - ldrb r0, [r5, #0xb] -_0806A570: - lsls r0, r0, #0x19 - lsrs r4, r0, #0x1c - b _0806A754 -_0806A576: - ldrb r0, [r5, #0xb] - lsrs r4, r0, #7 - b _0806A754 -_0806A57C: - mov r0, r8 - ldrh r4, [r0] - cmp r4, #0 - bne _0806A586 - b _0806A754 -_0806A586: - ldrb r0, [r5, #7] - lsls r0, r0, #0x19 - cmp r0, #0 - blt _0806A59C - mov r2, sb - ldrb r1, [r2, #0x13] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0806A59C - b _0806A754 -_0806A59C: - movs r4, #0xce - lsls r4, r4, #1 - b _0806A754 -_0806A5A2: - ldrb r0, [r5, #4] - lsls r0, r0, #0x1b - lsrs r4, r0, #0x1b - ldrh r1, [r5, #4] - movs r0, #0xf8 - lsls r0, r0, #2 - ands r0, r1 - orrs r4, r0 - ldrb r0, [r5, #5] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1b - lsls r0, r0, #0xa - orrs r4, r0 - ldr r0, [r5, #4] - movs r1, #0xf8 - lsls r1, r1, #0xc - ands r0, r1 - orrs r4, r0 - ldrh r0, [r5, #6] - lsls r0, r0, #0x17 - lsrs r0, r0, #0x1b - lsls r0, r0, #0x14 - orrs r4, r0 - ldrb r0, [r5, #7] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - lsls r0, r0, #0x19 - orrs r4, r0 - b _0806A754 -_0806A5DC: - mov r1, r8 - ldrh r0, [r1] - cmp r0, #0 - bne _0806A5E6 - b _0806A754 -_0806A5E6: - ldrb r0, [r5, #7] - lsls r0, r0, #0x19 - cmp r0, #0 - bge _0806A5F0 - b _0806A754 -_0806A5F0: - ldrh r0, [r7] - ldr r1, _0806A630 - cmp r0, r1 - bne _0806A5FA - b _0806A754 -_0806A5FA: - mov r2, sl - ldrh r5, [r2] - adds r6, r1, #0 - adds r2, r7, #0 - ldr r1, _0806A634 -_0806A604: - ldrh r3, [r2] - cmp r5, r3 - beq _0806A61E - mov r7, sl - ldrh r0, [r7, #2] - cmp r0, r3 - beq _0806A61E - ldrh r0, [r7, #4] - cmp r0, r3 - beq _0806A61E - ldrh r0, [r7, #6] - cmp r0, r3 - bne _0806A622 -_0806A61E: - ldr r0, [r1] - orrs r4, r0 -_0806A622: - adds r2, #2 - adds r1, #4 - ldrh r0, [r2] - cmp r0, r6 - bne _0806A604 - b _0806A754 - .align 2, 0 -_0806A630: .4byte 0x00000163 -_0806A634: .4byte gUnknown_82FACB4 -_0806A638: - movs r4, #0 - mov r1, r8 - ldrh r0, [r1] - cmp r0, #0 - bne _0806A644 - b _0806A754 -_0806A644: - ldrb r0, [r5, #7] - lsls r0, r0, #0x19 - cmp r0, #0 - bge _0806A64E - b _0806A754 -_0806A64E: - ldrb r0, [r5, #8] - lsls r1, r0, #0x1d - lsrs r4, r1, #0x1d - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1d - adds r4, r4, r0 - ldrh r0, [r5, #8] - lsls r0, r0, #0x17 - lsrs r0, r0, #0x1d - adds r4, r4, r0 - ldrb r1, [r5, #9] - lsls r0, r1, #0x1c - lsrs r0, r0, #0x1d - adds r4, r4, r0 - lsls r0, r1, #0x19 - lsrs r0, r0, #0x1d - adds r4, r4, r0 - lsrs r1, r1, #7 - adds r4, r4, r1 - ldrb r1, [r5, #0xa] - lsls r0, r1, #0x1f - lsrs r0, r0, #0x1f - adds r4, r4, r0 - lsls r0, r1, #0x1e - lsrs r0, r0, #0x1f - adds r4, r4, r0 - lsls r0, r1, #0x1d - lsrs r0, r0, #0x1f - adds r4, r4, r0 - lsls r0, r1, #0x1c - lsrs r0, r0, #0x1f - adds r4, r4, r0 - lsls r0, r1, #0x1b - lsrs r0, r0, #0x1f - adds r4, r4, r0 - lsls r0, r1, #0x1a - lsrs r0, r0, #0x1f - adds r4, r4, r0 - lsls r0, r1, #0x19 - lsrs r0, r0, #0x1f - adds r4, r4, r0 - lsrs r1, r1, #7 - adds r4, r4, r1 - ldrb r1, [r5, #0xb] - lsls r0, r1, #0x1f - lsrs r0, r0, #0x1f - adds r4, r4, r0 - lsls r0, r1, #0x1e - lsrs r0, r0, #0x1f - adds r4, r4, r0 - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1f - adds r4, r4, r1 - b _0806A754 -_0806A6BA: - movs r4, #0 - mov r2, r8 - ldrh r0, [r2] - cmp r0, #0 - beq _0806A754 - ldrb r0, [r5, #7] - lsls r0, r0, #0x19 - cmp r0, #0 - blt _0806A754 - ldrb r2, [r5, #9] - lsrs r4, r2, #7 - ldrb r1, [r5, #8] - lsls r0, r1, #0x1d - lsrs r0, r0, #0x1c - orrs r4, r0 - lsls r1, r1, #0x1a - lsrs r1, r1, #0x1d - lsls r1, r1, #4 - orrs r4, r1 - ldrh r0, [r5, #8] - lsls r0, r0, #0x17 - lsrs r0, r0, #0x1d - lsls r0, r0, #7 - orrs r4, r0 - lsls r0, r2, #0x1c - lsrs r0, r0, #0x1d - lsls r0, r0, #0xa - orrs r4, r0 - lsls r2, r2, #0x19 - lsrs r2, r2, #0x1d - lsls r2, r2, #0xd - orrs r4, r2 - ldrb r1, [r5, #0xa] - lsls r0, r1, #0x1f - lsrs r0, r0, #0x1f - lsls r0, r0, #0x10 - orrs r4, r0 - lsls r0, r1, #0x1e - lsrs r0, r0, #0x1f - lsls r0, r0, #0x11 - orrs r4, r0 - lsls r0, r1, #0x1d - lsrs r0, r0, #0x1f - lsls r0, r0, #0x12 - orrs r4, r0 - lsls r0, r1, #0x1c - lsrs r0, r0, #0x1f - lsls r0, r0, #0x13 - orrs r4, r0 - lsls r0, r1, #0x1b - lsrs r0, r0, #0x1f - lsls r0, r0, #0x14 - orrs r4, r0 - lsls r0, r1, #0x1a - lsrs r0, r0, #0x1f - lsls r0, r0, #0x15 - orrs r4, r0 - lsls r0, r1, #0x19 - lsrs r0, r0, #0x1f - lsls r0, r0, #0x16 - orrs r4, r0 - lsrs r1, r1, #7 - lsls r1, r1, #0x17 - orrs r4, r1 - ldrb r1, [r5, #0xb] - lsls r0, r1, #0x1f - lsrs r0, r0, #0x1f - lsls r0, r0, #0x18 - orrs r4, r0 - lsls r0, r1, #0x1e - lsrs r0, r0, #0x1f - lsls r0, r0, #0x19 - orrs r4, r0 - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1f - lsls r1, r1, #0x1a - orrs r4, r1 -_0806A754: - ldr r7, [sp] - cmp r7, #0xa - ble _0806A760 - mov r0, sb - bl EncryptBoxMon -_0806A760: - adds r0, r4, #0 - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0806A1B4 - - thumb_func_start SetMonData -SetMonData: @ 0x0806A774 - push {lr} - adds r3, r0, #0 - adds r0, r1, #0 - subs r0, #0x37 - cmp r0, #0xa - bhi _0806A858 - lsls r0, r0, #2 - ldr r1, _0806A78C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806A78C: .4byte _0806A790 -_0806A790: @ jump table - .4byte _0806A7BC @ case 0 - .4byte _0806A7D4 @ case 1 - .4byte _0806A7DE @ case 2 - .4byte _0806A7EE @ case 3 - .4byte _0806A7FE @ case 4 - .4byte _0806A80E @ case 5 - .4byte _0806A81E @ case 6 - .4byte _0806A82E @ case 7 - .4byte _0806A83E @ case 8 - .4byte _0806A84E @ case 9 - .4byte _0806A85E @ case 10 -_0806A7BC: - ldrb r1, [r2] - ldrb r0, [r2, #1] - lsls r0, r0, #8 - adds r1, r1, r0 - ldrb r0, [r2, #2] - lsls r0, r0, #0x10 - adds r1, r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x18 - adds r1, r1, r0 - str r1, [r3, #0x50] - b _0806A85E -_0806A7D4: - ldrb r1, [r2] - adds r0, r3, #0 - adds r0, #0x54 - strb r1, [r0] - b _0806A85E -_0806A7DE: - ldrb r0, [r2] - ldrb r1, [r2, #1] - lsls r1, r1, #8 - adds r0, r0, r1 - adds r1, r3, #0 - adds r1, #0x56 - strh r0, [r1] - b _0806A85E -_0806A7EE: - ldrb r0, [r2] - ldrb r1, [r2, #1] - lsls r1, r1, #8 - adds r0, r0, r1 - adds r1, r3, #0 - adds r1, #0x58 - strh r0, [r1] - b _0806A85E -_0806A7FE: - ldrb r0, [r2] - ldrb r1, [r2, #1] - lsls r1, r1, #8 - adds r0, r0, r1 - adds r1, r3, #0 - adds r1, #0x5a - strh r0, [r1] - b _0806A85E -_0806A80E: - ldrb r0, [r2] - ldrb r1, [r2, #1] - lsls r1, r1, #8 - adds r0, r0, r1 - adds r1, r3, #0 - adds r1, #0x5c - strh r0, [r1] - b _0806A85E -_0806A81E: - ldrb r0, [r2] - ldrb r1, [r2, #1] - lsls r1, r1, #8 - adds r0, r0, r1 - adds r1, r3, #0 - adds r1, #0x5e - strh r0, [r1] - b _0806A85E -_0806A82E: - ldrb r0, [r2] - ldrb r1, [r2, #1] - lsls r1, r1, #8 - adds r0, r0, r1 - adds r1, r3, #0 - adds r1, #0x60 - strh r0, [r1] - b _0806A85E -_0806A83E: - ldrb r0, [r2] - ldrb r1, [r2, #1] - lsls r1, r1, #8 - adds r0, r0, r1 - adds r1, r3, #0 - adds r1, #0x62 - strh r0, [r1] - b _0806A85E -_0806A84E: - ldrb r1, [r2] - adds r0, r3, #0 - adds r0, #0x55 - strb r1, [r0] - b _0806A85E -_0806A858: - adds r0, r3, #0 - bl SetBoxMonData -_0806A85E: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetMonData - - thumb_func_start SetBoxMonData -SetBoxMonData: @ 0x0806A864 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r7, r0, #0 - mov sl, r1 - adds r4, r2, #0 - movs r0, #0 - mov r8, r0 - mov sb, r0 - movs r6, #0 - movs r5, #0 - cmp r1, #0xa - ble _0806A8E4 - ldr r1, [r7] - adds r0, r7, #0 - movs r2, #0 - bl GetSubstruct - mov r8, r0 - ldr r1, [r7] - adds r0, r7, #0 - movs r2, #1 - bl GetSubstruct - mov sb, r0 - ldr r1, [r7] - adds r0, r7, #0 - movs r2, #2 - bl GetSubstruct - adds r6, r0, #0 - ldr r1, [r7] - adds r0, r7, #0 - movs r2, #3 - bl GetSubstruct - adds r5, r0, #0 - adds r0, r7, #0 - bl DecryptBoxMon - adds r0, r7, #0 - bl CalculateBoxMonChecksum - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrh r1, [r7, #0x1c] - cmp r0, r1 - beq _0806A8E4 - ldrb r0, [r7, #0x13] - movs r1, #1 - orrs r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r7, #0x13] - ldrb r0, [r5, #7] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r5, #7] - adds r0, r7, #0 - bl EncryptBoxMon - b _0806AEB4 -_0806A8E4: - mov r0, sl - cmp r0, #0x50 - bls _0806A8EC - b _0806AEA0 -_0806A8EC: - lsls r0, r0, #2 - ldr r1, _0806A8F8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806A8F8: .4byte _0806A8FC -_0806A8FC: @ jump table - .4byte _0806AA40 @ case 0 - .4byte _0806AA58 @ case 1 - .4byte _0806AA70 @ case 2 - .4byte _0806AA86 @ case 3 - .4byte _0806AA8C @ case 4 - .4byte _0806AA9C @ case 5 - .4byte _0806AAAE @ case 6 - .4byte _0806AAC0 @ case 7 - .4byte _0806AAD6 @ case 8 - .4byte _0806AADC @ case 9 - .4byte _0806AAE8 @ case 10 - .4byte _0806AAF4 @ case 11 - .4byte _0806AB14 @ case 12 - .4byte _0806AB4C @ case 13 - .4byte _0806AB4C @ case 14 - .4byte _0806AB4C @ case 15 - .4byte _0806AB4C @ case 16 - .4byte _0806AB60 @ case 17 - .4byte _0806AB60 @ case 18 - .4byte _0806AB60 @ case 19 - .4byte _0806AB60 @ case 20 - .4byte _0806AB3C @ case 21 - .4byte _0806AB90 @ case 22 - .4byte _0806AB96 @ case 23 - .4byte _0806AB9C @ case 24 - .4byte _0806AB22 @ case 25 - .4byte _0806AB6C @ case 26 - .4byte _0806AB72 @ case 27 - .4byte _0806AB78 @ case 28 - .4byte _0806AB7E @ case 29 - .4byte _0806AB84 @ case 30 - .4byte _0806AB8A @ case 31 - .4byte _0806AB44 @ case 32 - .4byte _0806ABA2 @ case 33 - .4byte _0806ABB4 @ case 34 - .4byte _0806ABBA @ case 35 - .4byte _0806ABC0 @ case 36 - .4byte _0806ABD4 @ case 37 - .4byte _0806ABEC @ case 38 - .4byte _0806AC12 @ case 39 - .4byte _0806AC26 @ case 40 - .4byte _0806AC40 @ case 41 - .4byte _0806AC56 @ case 42 - .4byte _0806AC70 @ case 43 - .4byte _0806AC88 @ case 44 - .4byte _0806AC9C @ case 45 - .4byte _0806ACCC @ case 46 - .4byte _0806ABA8 @ case 47 - .4byte _0806ABAE @ case 48 - .4byte _0806AC02 @ case 49 - .4byte _0806ACDC @ case 50 - .4byte _0806ACEA @ case 51 - .4byte _0806AD00 @ case 52 - .4byte _0806AD18 @ case 53 - .4byte _0806AD28 @ case 54 - .4byte _0806AEA0 @ case 55 - .4byte _0806AEA0 @ case 56 - .4byte _0806AEA0 @ case 57 - .4byte _0806AEA0 @ case 58 - .4byte _0806AEA0 @ case 59 - .4byte _0806AEA0 @ case 60 - .4byte _0806AEA0 @ case 61 - .4byte _0806AEA0 @ case 62 - .4byte _0806AEA0 @ case 63 - .4byte _0806AEA0 @ case 64 - .4byte _0806AEA0 @ case 65 - .4byte _0806AE26 @ case 66 - .4byte _0806AD3E @ case 67 - .4byte _0806AD4E @ case 68 - .4byte _0806AD5C @ case 69 - .4byte _0806AD6C @ case 70 - .4byte _0806AD7C @ case 71 - .4byte _0806AD8C @ case 72 - .4byte _0806AD9C @ case 73 - .4byte _0806ADAC @ case 74 - .4byte _0806ADC2 @ case 75 - .4byte _0806ADD2 @ case 76 - .4byte _0806ADE0 @ case 77 - .4byte _0806ADF0 @ case 78 - .4byte _0806AE00 @ case 79 - .4byte _0806AE16 @ case 80 -_0806AA40: - ldrb r1, [r4] - ldrb r0, [r4, #1] - lsls r0, r0, #8 - adds r1, r1, r0 - ldrb r0, [r4, #2] - lsls r0, r0, #0x10 - adds r1, r1, r0 - ldrb r0, [r4, #3] - lsls r0, r0, #0x18 - adds r1, r1, r0 - str r1, [r7] - b _0806AEA0 -_0806AA58: - ldrb r1, [r4] - ldrb r0, [r4, #1] - lsls r0, r0, #8 - adds r1, r1, r0 - ldrb r0, [r4, #2] - lsls r0, r0, #0x10 - adds r1, r1, r0 - ldrb r0, [r4, #3] - lsls r0, r0, #0x18 - adds r1, r1, r0 - str r1, [r7, #4] - b _0806AEA0 -_0806AA70: - movs r2, #0 - adds r3, r7, #0 - adds r3, #8 -_0806AA76: - adds r0, r3, r2 - adds r1, r4, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, #9 - ble _0806AA76 - b _0806AEA0 -_0806AA86: - ldrb r0, [r4] - strb r0, [r7, #0x12] - b _0806AEA0 -_0806AA8C: - ldrb r0, [r4] - movs r1, #1 - ands r1, r0 - ldrb r2, [r7, #0x13] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - b _0806ACBA -_0806AA9C: - ldrb r0, [r4] - movs r1, #1 - ands r1, r0 - lsls r1, r1, #1 - ldrb r2, [r7, #0x13] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r2 - b _0806ACBA -_0806AAAE: - ldrb r0, [r4] - movs r1, #1 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r7, #0x13] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - b _0806ACBA -_0806AAC0: - movs r2, #0 - adds r3, r7, #0 - adds r3, #0x14 -_0806AAC6: - adds r0, r3, r2 - adds r1, r4, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, #6 - ble _0806AAC6 - b _0806AEA0 -_0806AAD6: - ldrb r0, [r4] - strb r0, [r7, #0x1b] - b _0806AEA0 -_0806AADC: - ldrb r1, [r4] - ldrb r0, [r4, #1] - lsls r0, r0, #8 - adds r1, r1, r0 - strh r1, [r7, #0x1c] - b _0806AEA0 -_0806AAE8: - ldrb r1, [r4] - ldrb r0, [r4, #1] - lsls r0, r0, #8 - adds r1, r1, r0 - strh r1, [r7, #0x1e] - b _0806AEA0 -_0806AAF4: - ldrb r1, [r4] - ldrb r0, [r4, #1] - lsls r0, r0, #8 - adds r1, r1, r0 - mov r0, r8 - strh r1, [r0] - lsls r1, r1, #0x10 - cmp r1, #0 - beq _0806AB0C - ldrb r0, [r7, #0x13] - movs r1, #2 - b _0806ACBA -_0806AB0C: - ldrb r1, [r7, #0x13] - movs r0, #3 - rsbs r0, r0, #0 - b _0806ACC6 -_0806AB14: - ldrb r1, [r4] - ldrb r0, [r4, #1] - lsls r0, r0, #8 - adds r1, r1, r0 - mov r0, r8 - strh r1, [r0, #2] - b _0806AEA0 -_0806AB22: - ldrb r1, [r4] - ldrb r0, [r4, #1] - lsls r0, r0, #8 - adds r1, r1, r0 - ldrb r0, [r4, #2] - lsls r0, r0, #0x10 - adds r1, r1, r0 - ldrb r0, [r4, #3] - lsls r0, r0, #0x18 - adds r1, r1, r0 - mov r0, r8 - str r1, [r0, #4] - b _0806AEA0 -_0806AB3C: - ldrb r0, [r4] - mov r1, r8 - strb r0, [r1, #8] - b _0806AEA0 -_0806AB44: - ldrb r0, [r4] - mov r1, r8 - strb r0, [r1, #9] - b _0806AEA0 -_0806AB4C: - mov r2, sl - subs r2, #0xd - lsls r2, r2, #1 - add r2, sb - ldrb r1, [r4] - ldrb r0, [r4, #1] - lsls r0, r0, #8 - adds r1, r1, r0 - strh r1, [r2] - b _0806AEA0 -_0806AB60: - mov r0, sb - add r0, sl - subs r0, #9 - ldrb r1, [r4] - strb r1, [r0] - b _0806AEA0 -_0806AB6C: - ldrb r0, [r4] - strb r0, [r6] - b _0806AEA0 -_0806AB72: - ldrb r0, [r4] - strb r0, [r6, #1] - b _0806AEA0 -_0806AB78: - ldrb r0, [r4] - strb r0, [r6, #2] - b _0806AEA0 -_0806AB7E: - ldrb r0, [r4] - strb r0, [r6, #3] - b _0806AEA0 -_0806AB84: - ldrb r0, [r4] - strb r0, [r6, #4] - b _0806AEA0 -_0806AB8A: - ldrb r0, [r4] - strb r0, [r6, #5] - b _0806AEA0 -_0806AB90: - ldrb r0, [r4] - strb r0, [r6, #6] - b _0806AEA0 -_0806AB96: - ldrb r0, [r4] - strb r0, [r6, #7] - b _0806AEA0 -_0806AB9C: - ldrb r0, [r4] - strb r0, [r6, #8] - b _0806AEA0 -_0806ABA2: - ldrb r0, [r4] - strb r0, [r6, #9] - b _0806AEA0 -_0806ABA8: - ldrb r0, [r4] - strb r0, [r6, #0xa] - b _0806AEA0 -_0806ABAE: - ldrb r0, [r4] - strb r0, [r6, #0xb] - b _0806AEA0 -_0806ABB4: - ldrb r0, [r4] - strb r0, [r5] - b _0806AEA0 -_0806ABBA: - ldrb r0, [r4] - strb r0, [r5, #1] - b _0806AEA0 -_0806ABC0: - ldrb r1, [r4] - movs r0, #0x7f - ands r1, r0 - ldrb r2, [r5, #2] - movs r0, #0x80 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #2] - b _0806AEA0 -_0806ABD4: - ldrb r1, [r4] - movs r0, #0xf - ands r1, r0 - lsls r1, r1, #7 - ldrh r2, [r5, #2] - ldr r0, _0806ABE8 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, #2] - b _0806AEA0 - .align 2, 0 -_0806ABE8: .4byte 0xFFFFF87F -_0806ABEC: - ldrb r1, [r4] - movs r0, #0xf - ands r1, r0 - lsls r1, r1, #3 - ldrb r2, [r5, #3] - movs r0, #0x79 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #3] - b _0806AEA0 -_0806AC02: - ldrb r0, [r4] - lsls r0, r0, #7 - ldrb r2, [r5, #3] - movs r1, #0x7f - ands r1, r2 - orrs r1, r0 - strb r1, [r5, #3] - b _0806AEA0 -_0806AC12: - ldrb r1, [r4] - movs r0, #0x1f - ands r1, r0 - ldrb r2, [r5, #4] - movs r0, #0x20 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #4] - b _0806AEA0 -_0806AC26: - ldrb r1, [r4] - movs r0, #0x1f - ands r1, r0 - lsls r1, r1, #5 - ldrh r2, [r5, #4] - ldr r0, _0806AC3C - ands r0, r2 - orrs r0, r1 - strh r0, [r5, #4] - b _0806AEA0 - .align 2, 0 -_0806AC3C: .4byte 0xFFFFFC1F -_0806AC40: - ldrb r1, [r4] - movs r0, #0x1f - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r5, #5] - movs r0, #0x7d - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #5] - b _0806AEA0 -_0806AC56: - ldrb r2, [r4] - movs r0, #0x1f - ands r2, r0 - lsls r2, r2, #0xf - ldr r0, [r5, #4] - ldr r1, _0806AC6C - ands r0, r1 - orrs r0, r2 - str r0, [r5, #4] - b _0806AEA0 - .align 2, 0 -_0806AC6C: .4byte 0xFFF07FFF -_0806AC70: - ldrb r1, [r4] - movs r0, #0x1f - ands r1, r0 - lsls r1, r1, #4 - ldrh r2, [r5, #6] - ldr r0, _0806AC84 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, #6] - b _0806AEA0 - .align 2, 0 -_0806AC84: .4byte 0xFFFFFE0F -_0806AC88: - ldrb r1, [r4] - movs r0, #0x1f - ands r1, r0 - lsls r1, r1, #1 - ldrb r2, [r5, #7] - movs r0, #0x3f - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - b _0806AE9E -_0806AC9C: - ldrb r1, [r4] - movs r0, #1 - ands r1, r0 - lsls r1, r1, #6 - ldrb r2, [r5, #7] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #7] - lsls r0, r0, #0x19 - cmp r0, #0 - bge _0806ACC0 - ldrb r0, [r7, #0x13] - movs r1, #4 -_0806ACBA: - orrs r0, r1 - strb r0, [r7, #0x13] - b _0806AEA0 -_0806ACC0: - ldrb r1, [r7, #0x13] - movs r0, #5 - rsbs r0, r0, #0 -_0806ACC6: - ands r0, r1 - strb r0, [r7, #0x13] - b _0806AEA0 -_0806ACCC: - ldrb r0, [r4] - lsls r0, r0, #7 - ldrb r2, [r5, #7] - movs r1, #0x7f - ands r1, r2 - orrs r1, r0 - strb r1, [r5, #7] - b _0806AEA0 -_0806ACDC: - ldrb r1, [r4] - movs r0, #7 - ands r1, r0 - ldrb r2, [r5, #8] - movs r0, #8 - rsbs r0, r0, #0 - b _0806ACF8 -_0806ACEA: - ldrb r1, [r4] - movs r0, #7 - ands r1, r0 - lsls r1, r1, #3 - ldrb r2, [r5, #8] - movs r0, #0x39 - rsbs r0, r0, #0 -_0806ACF8: - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #8] - b _0806AEA0 -_0806AD00: - ldrb r1, [r4] - movs r0, #7 - ands r1, r0 - lsls r1, r1, #6 - ldrh r2, [r5, #8] - ldr r0, _0806AD14 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, #8] - b _0806AEA0 - .align 2, 0 -_0806AD14: .4byte 0xFFFFFE3F -_0806AD18: - ldrb r1, [r4] - movs r0, #7 - ands r1, r0 - lsls r1, r1, #1 - ldrb r2, [r5, #9] - movs r0, #0xf - rsbs r0, r0, #0 - b _0806AD36 -_0806AD28: - ldrb r1, [r4] - movs r0, #7 - ands r1, r0 - lsls r1, r1, #4 - ldrb r2, [r5, #9] - movs r0, #0x71 - rsbs r0, r0, #0 -_0806AD36: - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #9] - b _0806AEA0 -_0806AD3E: - ldrb r0, [r4] - lsls r0, r0, #7 - ldrb r2, [r5, #9] - movs r1, #0x7f - ands r1, r2 - orrs r1, r0 - strb r1, [r5, #9] - b _0806AEA0 -_0806AD4E: - ldrb r1, [r4] - movs r0, #1 - ands r1, r0 - ldrb r2, [r5, #0xa] - movs r0, #2 - rsbs r0, r0, #0 - b _0806ADBA -_0806AD5C: - ldrb r1, [r4] - movs r0, #1 - ands r1, r0 - lsls r1, r1, #1 - ldrb r2, [r5, #0xa] - movs r0, #3 - rsbs r0, r0, #0 - b _0806ADBA -_0806AD6C: - ldrb r1, [r4] - movs r0, #1 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r5, #0xa] - movs r0, #5 - rsbs r0, r0, #0 - b _0806ADBA -_0806AD7C: - ldrb r1, [r4] - movs r0, #1 - ands r1, r0 - lsls r1, r1, #3 - ldrb r2, [r5, #0xa] - movs r0, #9 - rsbs r0, r0, #0 - b _0806ADBA -_0806AD8C: - ldrb r1, [r4] - movs r0, #1 - ands r1, r0 - lsls r1, r1, #4 - ldrb r2, [r5, #0xa] - movs r0, #0x11 - rsbs r0, r0, #0 - b _0806ADBA -_0806AD9C: - ldrb r1, [r4] - movs r0, #1 - ands r1, r0 - lsls r1, r1, #5 - ldrb r2, [r5, #0xa] - movs r0, #0x21 - rsbs r0, r0, #0 - b _0806ADBA -_0806ADAC: - ldrb r1, [r4] - movs r0, #1 - ands r1, r0 - lsls r1, r1, #6 - ldrb r2, [r5, #0xa] - movs r0, #0x41 - rsbs r0, r0, #0 -_0806ADBA: - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0xa] - b _0806AEA0 -_0806ADC2: - ldrb r0, [r4] - lsls r0, r0, #7 - ldrb r2, [r5, #0xa] - movs r1, #0x7f - ands r1, r2 - orrs r1, r0 - strb r1, [r5, #0xa] - b _0806AEA0 -_0806ADD2: - ldrb r1, [r4] - movs r0, #1 - ands r1, r0 - ldrb r2, [r5, #0xb] - movs r0, #2 - rsbs r0, r0, #0 - b _0806AE0E -_0806ADE0: - ldrb r1, [r4] - movs r0, #1 - ands r1, r0 - lsls r1, r1, #1 - ldrb r2, [r5, #0xb] - movs r0, #3 - rsbs r0, r0, #0 - b _0806AE0E -_0806ADF0: - ldrb r1, [r4] - movs r0, #1 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r5, #0xb] - movs r0, #5 - rsbs r0, r0, #0 - b _0806AE0E -_0806AE00: - ldrb r1, [r4] - movs r0, #0xf - ands r1, r0 - lsls r1, r1, #3 - ldrb r2, [r5, #0xb] - movs r0, #0x79 - rsbs r0, r0, #0 -_0806AE0E: - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0xb] - b _0806AEA0 -_0806AE16: - ldrb r0, [r4] - lsls r0, r0, #7 - ldrb r2, [r5, #0xb] - movs r1, #0x7f - ands r1, r2 - orrs r1, r0 - strb r1, [r5, #0xb] - b _0806AEA0 -_0806AE26: - ldrb r3, [r4] - ldrb r0, [r4, #1] - lsls r0, r0, #8 - orrs r3, r0 - ldrb r0, [r4, #2] - lsls r0, r0, #0x10 - orrs r3, r0 - ldrb r0, [r4, #3] - lsls r0, r0, #0x18 - orrs r3, r0 - movs r4, #0x1f - adds r1, r3, #0 - ands r1, r4 - ldrb r2, [r5, #4] - movs r0, #0x20 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #4] - lsrs r1, r3, #5 - ands r1, r4 - lsls r1, r1, #5 - ldrh r2, [r5, #4] - ldr r0, _0806AEC4 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, #4] - lsrs r1, r3, #0xa - ands r1, r4 - lsls r1, r1, #2 - ldrb r2, [r5, #5] - movs r0, #0x7d - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #5] - lsrs r1, r3, #0xf - ands r1, r4 - lsls r1, r1, #0xf - ldr r0, [r5, #4] - ldr r2, _0806AEC8 - ands r0, r2 - orrs r0, r1 - str r0, [r5, #4] - lsrs r1, r3, #0x14 - ands r1, r4 - lsls r1, r1, #4 - ldrh r2, [r5, #6] - ldr r0, _0806AECC - ands r0, r2 - orrs r0, r1 - strh r0, [r5, #6] - lsrs r3, r3, #0x19 - ands r3, r4 - lsls r3, r3, #1 - ldrb r1, [r5, #7] - movs r0, #0x3f - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r3 -_0806AE9E: - strb r0, [r5, #7] -_0806AEA0: - mov r0, sl - cmp r0, #0xa - ble _0806AEB4 - adds r0, r7, #0 - bl CalculateBoxMonChecksum - strh r0, [r7, #0x1c] - adds r0, r7, #0 - bl EncryptBoxMon -_0806AEB4: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0806AEC4: .4byte 0xFFFFFC1F -_0806AEC8: .4byte 0xFFF07FFF -_0806AECC: .4byte 0xFFFFFE0F - thumb_func_end SetBoxMonData - - thumb_func_start sub_0806AED0 -sub_0806AED0: @ 0x0806AED0 - push {lr} - bl memcpy - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0806AED0 - - thumb_func_start GiveMonToPlayer -GiveMonToPlayer: @ 0x0806AEDC - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r4, _0806AF08 - ldr r2, [r4] - movs r1, #7 - bl SetMonData - ldr r2, [r4] - adds r2, #8 - adds r0, r6, #0 - movs r1, #0x31 - bl SetMonData - ldr r2, [r4] - adds r2, #0xa - adds r0, r6, #0 - movs r1, #1 - bl SetMonData - movs r5, #0 - b _0806AF0E - .align 2, 0 -_0806AF08: .4byte gUnknown_3005AF0 -_0806AF0C: - adds r5, #1 -_0806AF0E: - cmp r5, #5 - bgt _0806AF48 - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _0806AF40 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - cmp r0, #0 - bne _0806AF0C - adds r0, r4, #0 - adds r1, r6, #0 - movs r2, #0x64 - bl sub_0806AED0 - ldr r1, _0806AF44 - adds r0, r5, #1 - strb r0, [r1] - movs r0, #0 - b _0806AF52 - .align 2, 0 -_0806AF40: .4byte gUnknown_2024190 -_0806AF44: .4byte gUnknown_202418D -_0806AF48: - adds r0, r6, #0 - bl SendMonToPC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_0806AF52: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end GiveMonToPlayer - - thumb_func_start SendMonToPC -SendMonToPC: @ 0x0806AF58 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r0 - ldr r0, _0806AFCC - bl VarGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_0813B23C - bl sub_080D15AC - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_0806AF76: - movs r6, #0 - lsls r7, r5, #0x18 -_0806AF7A: - lsls r1, r6, #0x18 - lsrs r1, r1, #0x18 - lsrs r0, r7, #0x18 - bl GetBoxedMonPtr - adds r4, r0, #0 - movs r1, #0xb - movs r2, #0 - bl sub_0806A1B4 - cmp r0, #0 - bne _0806AFDC - mov r0, r8 - bl sub_0806E3B0 - adds r0, r4, #0 - mov r1, r8 - movs r2, #0x50 - bl sub_0806AED0 - ldr r0, _0806AFD0 - strh r5, [r0] - ldr r0, _0806AFD4 - strh r6, [r0] - bl sub_0813B248 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r5 - beq _0806AFBC - ldr r0, _0806AFD8 - bl FlagClear -_0806AFBC: - lsls r1, r5, #0x10 - ldr r0, _0806AFCC - lsrs r1, r1, #0x10 - bl VarSet - movs r0, #1 - b _0806AFF8 - .align 2, 0 -_0806AFCC: .4byte 0x00004036 -_0806AFD0: .4byte gUnknown_2037296 -_0806AFD4: .4byte gUnknown_2037298 -_0806AFD8: .4byte 0x000008D7 -_0806AFDC: - adds r6, #1 - cmp r6, #0x1d - ble _0806AF7A - adds r5, #1 - cmp r5, #0xe - bne _0806AFEA - movs r5, #0 -_0806AFEA: - bl sub_080D15AC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r5, r0 - bne _0806AF76 - movs r0, #2 -_0806AFF8: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end SendMonToPC - - thumb_func_start sub_0806B004 -sub_0806B004: @ 0x0806B004 - push {r4, lr} - ldr r0, _0806B010 - movs r1, #0 - strb r1, [r0] - b _0806B01C - .align 2, 0 -_0806B010: .4byte gUnknown_202418D -_0806B014: - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - adds r0, r4, #0 -_0806B01C: - adds r4, r0, #0 - ldrb r0, [r4] - cmp r0, #5 - bhi _0806B03A - adds r1, r0, #0 - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0806B044 - adds r0, r0, r1 - movs r1, #0xb - movs r2, #0 - bl GetMonData - cmp r0, #0 - bne _0806B014 -_0806B03A: - ldrb r0, [r4] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806B044: .4byte gUnknown_2024190 - thumb_func_end sub_0806B004 - - thumb_func_start sub_0806B048 -sub_0806B048: @ 0x0806B048 - push {r4, lr} - ldr r0, _0806B054 - movs r1, #0 - strb r1, [r0] - b _0806B060 - .align 2, 0 -_0806B054: .4byte gUnknown_202418E -_0806B058: - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - adds r0, r4, #0 -_0806B060: - adds r4, r0, #0 - ldrb r0, [r4] - cmp r0, #5 - bhi _0806B07E - adds r1, r0, #0 - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0806B088 - adds r0, r0, r1 - movs r1, #0xb - movs r2, #0 - bl GetMonData - cmp r0, #0 - bne _0806B058 -_0806B07E: - ldrb r0, [r4] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806B088: .4byte gUnknown_20243E8 - thumb_func_end sub_0806B048 - - thumb_func_start GetMonsStateToDoubles -GetMonsStateToDoubles: @ 0x0806B08C - push {r4, r5, r6, lr} - movs r6, #0 - bl sub_0806B004 - ldr r1, _0806B0F8 - ldrb r0, [r1] - cmp r0, #1 - beq _0806B0F0 - movs r5, #0 - ldrb r1, [r1] - cmp r6, r1 - bge _0806B0E8 -_0806B0A4: - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _0806B0FC - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0x41 - movs r2, #0 - bl GetMonData - movs r1, #0xce - lsls r1, r1, #1 - cmp r0, r1 - beq _0806B0DE - adds r0, r4, #0 - movs r1, #0x39 - movs r2, #0 - bl GetMonData - cmp r0, #0 - beq _0806B0DE - adds r0, r4, #0 - movs r1, #0x41 - movs r2, #0 - bl GetMonData - cmp r0, #0 - beq _0806B0DE - adds r6, #1 -_0806B0DE: - adds r5, #1 - ldr r0, _0806B0F8 - ldrb r0, [r0] - cmp r5, r0 - blt _0806B0A4 -_0806B0E8: - movs r0, #0 - cmp r6, #1 - bgt _0806B0F0 - movs r0, #2 -_0806B0F0: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0806B0F8: .4byte gUnknown_202418D -_0806B0FC: .4byte gUnknown_2024190 - thumb_func_end GetMonsStateToDoubles - - thumb_func_start GetMonsStateToDoubles_2 -GetMonsStateToDoubles_2: @ 0x0806B100 - push {r4, r5, r6, lr} - movs r6, #0 - movs r5, #0 -_0806B106: - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _0806B148 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0x41 - movs r2, #0 - bl GetMonData - adds r1, r0, #0 - movs r0, #0xce - lsls r0, r0, #1 - cmp r1, r0 - beq _0806B138 - cmp r1, #0 - beq _0806B138 - adds r0, r4, #0 - movs r1, #0x39 - movs r2, #0 - bl GetMonData - cmp r0, #0 - beq _0806B138 - adds r6, #1 -_0806B138: - adds r5, #1 - cmp r5, #5 - ble _0806B106 - cmp r6, #1 - bne _0806B14C - movs r0, #1 - b _0806B154 - .align 2, 0 -_0806B148: .4byte gUnknown_2024190 -_0806B14C: - movs r0, #0 - cmp r6, #1 - bgt _0806B154 - movs r0, #2 -_0806B154: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetMonsStateToDoubles_2 - - thumb_func_start GetAbilityBySpecies -GetAbilityBySpecies: @ 0x0806B15C - push {lr} - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - lsls r1, r1, #0x18 - cmp r1, #0 - beq _0806B180 - ldr r2, _0806B178 - ldr r1, _0806B17C - lsls r0, r3, #3 - subs r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #0x17] - b _0806B18E - .align 2, 0 -_0806B178: .4byte gUnknown_2023EAE -_0806B17C: .4byte gUnknown_82F0D54 -_0806B180: - ldr r2, _0806B198 - ldr r1, _0806B19C - lsls r0, r3, #3 - subs r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #0x16] -_0806B18E: - strb r0, [r2] - ldrb r0, [r2] - pop {r1} - bx r1 - .align 2, 0 -_0806B198: .4byte gUnknown_2023EAE -_0806B19C: .4byte gUnknown_82F0D54 - thumb_func_end GetAbilityBySpecies - - thumb_func_start GetMonAbility -GetMonAbility: @ 0x0806B1A0 - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - movs r1, #0x2e - movs r2, #0 - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl GetAbilityBySpecies - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetMonAbility - - thumb_func_start CreateSecretBaseEnemyParty -CreateSecretBaseEnemyParty: @ 0x0806B1D4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - adds r5, r0, #0 - bl ZeroEnemyPartyMons - ldr r4, _0806B2EC - ldr r0, [r4] - ldr r0, [r0] - adds r1, r5, #0 - movs r2, #0xa0 - bl memcpy - movs r0, #0 - mov sb, r0 -_0806B1F8: - ldr r1, _0806B2EC - ldr r3, [r1] - ldr r2, [r3] - mov r4, sb - lsls r7, r4, #1 - adds r0, r2, #0 - adds r0, #0x7c - adds r1, r0, r7 - ldrh r0, [r1] - adds r4, #1 - str r4, [sp, #0x10] - cmp r0, #0 - beq _0806B2D2 - movs r0, #0x64 - mov r6, sb - muls r6, r0, r6 - ldr r4, _0806B2F0 - mov r8, r4 - adds r5, r6, r4 - ldrh r1, [r1] - adds r0, r2, #0 - adds r0, #0x94 - add r0, sb - ldrb r2, [r0] - movs r0, #1 - str r0, [sp] - ldr r0, [r3] - mov r3, sb - lsls r4, r3, #2 - adds r0, #0x34 - adds r0, r0, r4 - ldr r0, [r0] - str r0, [sp, #4] - movs r0, #2 - str r0, [sp, #8] - movs r0, #0 - str r0, [sp, #0xc] - adds r0, r5, #0 - movs r3, #0xf - bl CreateMon - ldr r1, _0806B2EC - ldr r0, [r1] - adds r1, r7, #0 - adds r1, #0x88 - ldr r2, [r0] - adds r2, r2, r1 - adds r0, r5, #0 - movs r1, #0xc - bl SetMonData - movs r5, #0 - mov sl, r4 - mov r7, sb - adds r7, #0x9a - mov r4, r8 -_0806B268: - adds r1, r5, #0 - adds r1, #0x1a - ldr r2, _0806B2EC - ldr r0, [r2] - ldr r2, [r0] - adds r2, r2, r7 - adds r0, r6, r4 - bl SetMonData - adds r5, #1 - cmp r5, #5 - ble _0806B268 - movs r5, #0 - movs r3, #0x64 - mov r0, sb - muls r0, r3, r0 - ldr r1, _0806B2F0 - adds r7, r0, r1 - mov r4, sl - lsls r0, r4, #1 - adds r6, r0, #0 - adds r6, #0x4c - adds r4, r0, #0 -_0806B296: - adds r1, r5, #0 - adds r1, #0xd - ldr r2, _0806B2EC - ldr r0, [r2] - ldr r2, [r0] - adds r2, r2, r6 - adds r0, r7, #0 - bl SetMonData - adds r1, r5, #0 - adds r1, #0x11 - ldr r3, _0806B2EC - ldr r0, [r3] - ldr r0, [r0] - adds r0, #0x4c - adds r0, r0, r4 - ldrh r0, [r0] - lsls r2, r0, #1 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r0, _0806B2F4 - adds r2, r2, r0 - adds r0, r7, #0 - bl SetMonData - adds r6, #2 - adds r4, #2 - adds r5, #1 - cmp r5, #3 - ble _0806B296 -_0806B2D2: - ldr r4, [sp, #0x10] - mov sb, r4 - cmp r4, #5 - ble _0806B1F8 - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0806B2EC: .4byte gUnknown_202414C -_0806B2F0: .4byte gUnknown_20243E8 -_0806B2F4: .4byte gUnknown_82ED224 - thumb_func_end CreateSecretBaseEnemyParty - - thumb_func_start sub_0806B2F8 -sub_0806B2F8: @ 0x0806B2F8 - push {r4, r5, lr} - ldr r5, _0806B32C - ldr r0, _0806B330 - ldr r0, [r0] - ldr r4, [r0] - ldrb r0, [r4, #9] - movs r1, #5 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r2, [r4, #1] - lsls r2, r2, #0x1b - lsrs r2, r2, #0x1f - lsls r1, r2, #2 - adds r1, r1, r2 - adds r0, r0, r1 - adds r0, r0, r5 - ldrb r0, [r0] - ldr r1, _0806B334 - adds r0, r0, r1 - ldrb r0, [r0] - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0806B32C: .4byte gUnknown_82FA844 -_0806B330: .4byte gUnknown_202414C -_0806B334: .4byte gUnknown_82EFF00 - thumb_func_end sub_0806B2F8 - - thumb_func_start sub_0806B338 -sub_0806B338: @ 0x0806B338 - push {r4, r5, lr} - ldr r5, _0806B36C - ldr r0, _0806B370 - ldr r0, [r0] - ldr r4, [r0] - ldrb r0, [r4, #9] - movs r1, #5 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r2, [r4, #1] - lsls r2, r2, #0x1b - lsrs r2, r2, #0x1f - lsls r1, r2, #2 - adds r1, r1, r2 - adds r0, r0, r1 - adds r0, r0, r5 - ldrb r0, [r0] - ldr r1, _0806B374 - adds r0, r0, r1 - ldrb r0, [r0] - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0806B36C: .4byte gUnknown_82FA844 -_0806B370: .4byte gUnknown_202414C -_0806B374: .4byte gUnknown_82EFF52 - thumb_func_end sub_0806B338 - - thumb_func_start IsPlayerPartyAndPokemonStorageFull -IsPlayerPartyAndPokemonStorageFull: @ 0x0806B378 - push {r4, lr} - movs r4, #0 -_0806B37C: - movs r0, #0x64 - muls r0, r4, r0 - ldr r1, _0806B394 - adds r0, r0, r1 - movs r1, #0xb - movs r2, #0 - bl GetMonData - cmp r0, #0 - bne _0806B398 - movs r0, #0 - b _0806B3A6 - .align 2, 0 -_0806B394: .4byte gUnknown_2024190 -_0806B398: - adds r4, #1 - cmp r4, #5 - ble _0806B37C - bl IsPokemonStorageFull - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_0806B3A6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end IsPlayerPartyAndPokemonStorageFull - - thumb_func_start IsPokemonStorageFull -IsPokemonStorageFull: @ 0x0806B3AC - push {r4, r5, r6, lr} - movs r6, #0 -_0806B3B0: - movs r4, #0 - lsls r5, r6, #0x18 -_0806B3B4: - lsls r1, r4, #0x18 - lsrs r1, r1, #0x18 - lsrs r0, r5, #0x18 - movs r2, #0xb - bl GetBoxMonDataAt - cmp r0, #0 - bne _0806B3C8 - movs r0, #0 - b _0806B3D6 -_0806B3C8: - adds r4, #1 - cmp r4, #0x1d - ble _0806B3B4 - adds r6, #1 - cmp r6, #0xd - ble _0806B3B0 - movs r0, #1 -_0806B3D6: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end IsPokemonStorageFull - - thumb_func_start sub_0806B3DC -sub_0806B3DC: @ 0x0806B3DC - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - movs r1, #0 - movs r7, #0xce - lsls r7, r7, #1 - ldr r5, _0806B400 - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #1 - adds r2, r6, #0 - adds r3, r0, r5 -_0806B3F6: - cmp r4, r7 - bls _0806B404 - adds r0, r1, r5 - ldrb r0, [r0] - b _0806B406 - .align 2, 0 -_0806B400: .4byte gUnknown_82EA31C -_0806B404: - ldrb r0, [r3] -_0806B406: - strb r0, [r2] - ldrb r0, [r2] - cmp r0, #0xff - beq _0806B418 - adds r2, #1 - adds r3, #1 - adds r1, #1 - cmp r1, #0xa - ble _0806B3F6 -_0806B418: - adds r1, r6, r1 - movs r0, #0xff - strb r0, [r1] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_0806B3DC - - thumb_func_start CalculatePPWithBonus -CalculatePPWithBonus: @ 0x0806B424 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r4, _0806B464 - lsls r3, r0, #1 - adds r3, r3, r0 - lsls r3, r3, #2 - adds r3, r3, r4 - ldrb r4, [r3, #4] - ldr r0, _0806B468 - adds r0, r2, r0 - ldrb r3, [r0] - ands r3, r1 - lsls r2, r2, #1 - asrs r3, r2 - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #2 - muls r0, r4, r0 - movs r1, #0x64 - bl __divsi3 - adds r4, r4, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806B464: .4byte gUnknown_82ED220 -_0806B468: .4byte gUnknown_82FA6AA - thumb_func_end CalculatePPWithBonus - - thumb_func_start RemoveMonPPBonus -RemoveMonPPBonus: @ 0x0806B46C - push {r4, r5, lr} - sub sp, #4 - adds r5, r0, #0 - lsls r4, r1, #0x18 - lsrs r4, r4, #0x18 - movs r1, #0x15 - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, sp - strb r0, [r1] - ldr r1, _0806B4A4 - adds r4, r4, r1 - ldrb r1, [r4] - ands r1, r0 - mov r0, sp - strb r1, [r0] - adds r0, r5, #0 - movs r1, #0x15 - mov r2, sp - bl SetMonData - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0806B4A4: .4byte gUnknown_82FA6AE - thumb_func_end RemoveMonPPBonus - - thumb_func_start RemoveBattleMonPPBonus -RemoveBattleMonPPBonus: @ 0x0806B4A8 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, #0x3b - ldr r2, _0806B4BC - adds r1, r1, r2 - ldrb r2, [r0] - ldrb r1, [r1] - ands r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 -_0806B4BC: .4byte gUnknown_82FA6AE - thumb_func_end RemoveBattleMonPPBonus - - thumb_func_start CopyPlayerPartyMonToBattleData -CopyPlayerPartyMonToBattleData: @ 0x0806B4C0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x14] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sb, r1 - movs r0, #0x64 - mov r5, sb - muls r5, r0, r5 - ldr r0, _0806B7AC - adds r5, r5, r0 - adds r0, r5, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - ldr r1, _0806B7B0 - mov r8, r1 - movs r1, #0x58 - ldr r2, [sp, #0x14] - adds r4, r2, #0 - muls r4, r1, r4 - mov r3, r8 - adds r6, r4, r3 - strh r0, [r6] - adds r0, r5, #0 - movs r1, #0xc - movs r2, #0 - bl GetMonData - strh r0, [r6, #0x2e] - movs r6, #0 - mov r0, r8 - adds r0, #0x24 - adds r7, r4, r0 -_0806B512: - adds r1, r6, #0 - adds r1, #0xd - adds r0, r5, #0 - movs r2, #0 - bl GetMonData - movs r1, #0xc - add r1, r8 - mov sl, r1 - adds r1, r4, r1 - strh r0, [r1] - adds r1, r6, #0 - adds r1, #0x11 - adds r0, r5, #0 - movs r2, #0 - bl GetMonData - strb r0, [r7] - adds r7, #1 - adds r4, #2 - adds r6, #1 - cmp r6, #3 - ble _0806B512 - movs r0, #0x64 - mov r4, sb - muls r4, r0, r4 - ldr r0, _0806B7AC - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x15 - movs r2, #0 - bl GetMonData - movs r2, #0xc - rsbs r2, r2, #0 - add r2, sl - mov sb, r2 - movs r1, #0x58 - ldr r3, [sp, #0x14] - adds r5, r3, #0 - muls r5, r1, r5 - adds r7, r5, r2 - adds r1, r7, #0 - adds r1, #0x3b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x20 - movs r2, #0 - bl GetMonData - adds r1, r7, #0 - adds r1, #0x2b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x19 - movs r2, #0 - bl GetMonData - mov r1, sl - adds r1, #0x38 - adds r1, r5, r1 - str r0, [r1] - adds r0, r4, #0 - movs r1, #0x27 - movs r2, #0 - bl GetMonData - movs r6, #0x1f - ands r0, r6 - ldrb r2, [r7, #0x14] - movs r1, #0x20 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r7, #0x14] - adds r0, r4, #0 - movs r1, #0x28 - movs r2, #0 - bl GetMonData - movs r1, #0x1f - mov r8, r1 - mov r2, r8 - ands r0, r2 - lsls r0, r0, #5 - ldrh r2, [r7, #0x14] - ldr r1, _0806B7B4 - ands r1, r2 - orrs r1, r0 - strh r1, [r7, #0x14] - adds r0, r4, #0 - movs r1, #0x29 - movs r2, #0 - bl GetMonData - ands r0, r6 - lsls r0, r0, #2 - ldrb r2, [r7, #0x15] - movs r1, #0x7d - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r7, #0x15] - adds r0, r4, #0 - movs r1, #0x2a - movs r2, #0 - bl GetMonData - movs r1, #0x1f - ands r1, r0 - lsls r1, r1, #0xf - ldr r0, [r7, #0x14] - ldr r2, _0806B7B8 - ands r0, r2 - orrs r0, r1 - str r0, [r7, #0x14] - adds r0, r4, #0 - movs r1, #0x2b - movs r2, #0 - bl GetMonData - mov r3, r8 - ands r0, r3 - lsls r0, r0, #4 - ldrh r2, [r7, #0x16] - ldr r1, _0806B7BC - ands r1, r2 - orrs r1, r0 - strh r1, [r7, #0x16] - adds r0, r4, #0 - movs r1, #0x2c - movs r2, #0 - bl GetMonData - ands r0, r6 - lsls r0, r0, #1 - ldrb r2, [r7, #0x17] - movs r1, #0x3f - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r7, #0x17] - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - bl GetMonData - mov r1, sl - adds r1, #0x3c - adds r1, r5, r1 - str r0, [r1] - adds r0, r4, #0 - movs r1, #0x37 - movs r2, #0 - bl GetMonData - mov r1, sl - adds r1, #0x40 - adds r1, r5, r1 - str r0, [r1] - adds r0, r4, #0 - movs r1, #0x38 - movs r2, #0 - bl GetMonData - adds r1, r7, #0 - adds r1, #0x2a - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x39 - movs r2, #0 - bl GetMonData - strh r0, [r7, #0x28] - adds r0, r4, #0 - movs r1, #0x3a - movs r2, #0 - bl GetMonData - strh r0, [r7, #0x2c] - adds r0, r4, #0 - movs r1, #0x3b - movs r2, #0 - bl GetMonData - strh r0, [r7, #2] - adds r0, r4, #0 - movs r1, #0x3c - movs r2, #0 - bl GetMonData - strh r0, [r7, #4] - adds r0, r4, #0 - movs r1, #0x3d - movs r2, #0 - bl GetMonData - strh r0, [r7, #6] - adds r0, r4, #0 - movs r1, #0x3e - movs r2, #0 - bl GetMonData - strh r0, [r7, #8] - adds r0, r4, #0 - movs r1, #0x3f - movs r2, #0 - bl GetMonData - strh r0, [r7, #0xa] - adds r0, r4, #0 - movs r1, #0x2d - movs r2, #0 - bl GetMonData - movs r1, #1 - ands r0, r1 - lsls r0, r0, #6 - ldrb r2, [r7, #0x17] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r7, #0x17] - adds r0, r4, #0 - movs r1, #0x2e - movs r2, #0 - bl GetMonData - lsls r0, r0, #7 - ldrb r2, [r7, #0x17] - movs r1, #0x7f - ands r1, r2 - orrs r1, r0 - strb r1, [r7, #0x17] - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl GetMonData - mov r1, sl - adds r1, #0x48 - adds r1, r5, r1 - str r0, [r1] - ldr r2, _0806B7C0 - ldrh r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #6] - adds r1, r7, #0 - adds r1, #0x21 - strb r0, [r1] - ldrh r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #7] - adds r1, r7, #0 - adds r1, #0x22 - strb r0, [r1] - ldrh r0, [r7] - ldrb r1, [r7, #0x17] - lsrs r1, r1, #7 - bl GetAbilityBySpecies - adds r1, r7, #0 - adds r1, #0x20 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #2 - mov r2, sp - bl GetMonData - mov r0, sl - adds r0, #0x24 - adds r0, r5, r0 - mov r1, sp - bl StringCopy10 - mov r2, sl - adds r2, #0x30 - adds r2, r5, r2 - adds r0, r4, #0 - movs r1, #7 - bl GetMonData - ldr r0, [sp, #0x14] - bl GetBattlerSide - ldr r1, _0806B7C4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, #0xa8 - ldr r1, [r1] - adds r1, r1, r0 - ldrh r0, [r7, #0x28] - strh r0, [r1] - movs r2, #6 - mov r1, sb - movs r6, #7 - add r5, sl - adds r0, r5, #0 - adds r0, #0x13 -_0806B776: - strb r2, [r0] - subs r0, #1 - subs r6, #1 - cmp r6, #0 - bge _0806B776 - movs r2, #0 - movs r0, #0x58 - ldr r3, [sp, #0x14] - muls r0, r3, r0 - adds r1, #0x50 - adds r0, r0, r1 - str r2, [r0] - ldr r0, [sp, #0x14] - bl sub_0803F6B0 - ldr r0, [sp, #0x14] - movs r1, #0 - bl ClearTemporarySpeciesSpriteData - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0806B7AC: .4byte gUnknown_2024190 -_0806B7B0: .4byte gUnknown_2023D28 -_0806B7B4: .4byte 0xFFFFFC1F -_0806B7B8: .4byte 0xFFF07FFF -_0806B7BC: .4byte 0xFFFFFE0F -_0806B7C0: .4byte gUnknown_82F0D54 -_0806B7C4: .4byte gUnknown_2024140 - thumb_func_end CopyPlayerPartyMonToBattleData - - thumb_func_start ExecuteTableBasedItemEffect -ExecuteTableBasedItemEffect: @ 0x0806B7C8 - push {r4, lr} - sub sp, #4 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r4, #0 - str r4, [sp] - bl PokemonUseItemEffects - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ExecuteTableBasedItemEffect - - thumb_func_start PokemonUseItemEffects -PokemonUseItemEffects: @ 0x0806B7EC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x44 - mov r8, r0 - ldr r0, [sp, #0x64] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp, #0xc] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x10] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r3, [sp, #0x14] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x18] - movs r0, #1 - str r0, [sp, #0x20] - movs r1, #6 - str r1, [sp, #0x28] - movs r2, #0 - str r2, [sp, #0x30] - movs r3, #4 - str r3, [sp, #0x38] - movs r5, #0 - str r5, [sp, #0x3c] - mov r0, r8 - movs r1, #0xc - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xaf - bne _0806B880 - ldr r0, _0806B85C - ldr r1, _0806B860 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806B86C - ldr r2, _0806B864 - ldr r0, _0806B868 - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #7] - b _0806B888 - .align 2, 0 -_0806B85C: .4byte gUnknown_3002360 -_0806B860: .4byte 0x00000439 -_0806B864: .4byte gUnknown_20240A8 -_0806B868: .4byte gUnknown_202415C -_0806B86C: - ldr r0, _0806B878 - ldr r0, [r0] - ldr r2, _0806B87C - adds r0, r0, r2 - ldrb r0, [r0] - b _0806B888 - .align 2, 0 -_0806B878: .4byte gUnknown_3005AEC -_0806B87C: .4byte 0x00003226 -_0806B880: - bl sub_080D6CF8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_0806B888: - str r0, [sp, #0x34] - ldr r1, _0806B8E4 - ldr r0, _0806B8E8 - ldrb r2, [r0] - strb r2, [r1] - ldr r0, _0806B8EC - ldr r3, _0806B8F0 - adds r0, r0, r3 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _0806B928 - ldr r0, _0806B8F4 - strb r2, [r0] - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - str r1, [sp, #0x1c] - ldr r0, _0806B8F8 - ldr r4, [sp, #0xc] - subs r4, #0xd - ldrb r0, [r0] - cmp r1, r0 - bge _0806B934 - ldr r2, _0806B8FC - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r3, [r0] - ldr r5, [sp, #0x10] - lsls r0, r5, #0x10 - lsrs r1, r0, #0x10 - adds r5, r0, #0 - cmp r3, r1 - bne _0806B900 - ldr r0, [sp, #0x1c] - str r0, [sp, #0x38] - b _0806B934 - .align 2, 0 -_0806B8E4: .4byte gUnknown_2023EB3 -_0806B8E8: .4byte gUnknown_202415C -_0806B8EC: .4byte gUnknown_3002360 -_0806B8F0: .4byte 0x00000439 -_0806B8F4: .4byte gUnknown_2023D08 -_0806B8F8: .4byte gUnknown_2023D10 -_0806B8FC: .4byte gUnknown_2023D12 -_0806B900: - ldr r1, [sp, #0x1c] - adds r1, #2 - str r1, [sp, #0x1c] - ldr r0, _0806B924 - ldrb r0, [r0] - cmp r1, r0 - bge _0806B934 - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r1, [r0] - lsrs r0, r5, #0x10 - cmp r1, r0 - bne _0806B900 - ldr r2, [sp, #0x1c] - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x38] - b _0806B934 - .align 2, 0 -_0806B924: .4byte gUnknown_2023D10 -_0806B928: - ldr r0, _0806B950 - strb r1, [r0] - movs r3, #4 - str r3, [sp, #0x38] - ldr r4, [sp, #0xc] - subs r4, #0xd -_0806B934: - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xa5 - bhi _0806B9B4 - ldr r1, _0806B954 - lsls r0, r4, #2 - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #0 - bne _0806B958 - ldr r5, [sp, #0xc] - cmp r5, #0xaf - beq _0806B95E - b _0806B9B4 - .align 2, 0 -_0806B950: .4byte gUnknown_2023D08 -_0806B954: .4byte gUnknown_82EEF14 -_0806B958: - ldr r1, [sp, #0xc] - cmp r1, #0xaf - bne _0806B9BA -_0806B95E: - ldr r0, _0806B980 - ldr r2, _0806B984 - adds r0, r0, r2 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806B990 - ldr r0, _0806B988 - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0806B98C - adds r0, r0, r1 - b _0806B9BA - .align 2, 0 -_0806B980: .4byte gUnknown_3002360 -_0806B984: .4byte 0x00000439 -_0806B988: .4byte gUnknown_2023D08 -_0806B98C: .4byte gUnknown_20240B0 -_0806B990: - ldr r0, _0806B99C - ldr r0, [r0] - ldr r3, _0806B9A0 - adds r3, r0, r3 - str r3, [sp, #0x24] - b _0806B9BC - .align 2, 0 -_0806B99C: .4byte gUnknown_3005AEC -_0806B9A0: .4byte 0x00003214 - thumb_func_end PokemonUseItemEffects - - thumb_func_start sub_0806B9A4 -sub_0806B9A4: @ 0x0806B9A4 - mov r0, r8 - movs r2, #0 - ldr r3, [sp, #0x10] - bl BeginEvolutionScene - movs r0, #0 - bl sub_0806C820 -_0806B9B4: - movs r0, #1 - bl sub_0806C820 -_0806B9BA: - str r0, [sp, #0x24] -_0806B9BC: - movs r5, #0 - str r5, [sp, #0x1c] - thumb_func_end sub_0806B9A4 - - thumb_func_start sub_0806B9C0 -sub_0806B9C0: @ 0x0806B9C0 - ldr r0, [sp, #0x1c] - cmp r0, #5 - bls _0806B9CA - bl _0806C810 -_0806B9CA: - lsls r0, r0, #2 - ldr r1, _0806B9D4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806B9D4: .4byte _0806B9D8 -_0806B9D8: @ jump table - .4byte _0806B9F0 @ case 0 - .4byte _0806BAC0 @ case 1 - .4byte _0806BB50 @ case 2 - .4byte _0806BBE4 @ case 3 - .4byte _0806BDC4 @ case 4 - .4byte _0806C482 @ case 5 -_0806B9F0: - ldr r1, [sp, #0x24] - ldr r3, [sp, #0x1c] - adds r2, r1, r3 - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - adds r6, r2, #0 - cmp r0, #0 - beq _0806BA3A - ldr r0, _0806BAAC - ldr r5, _0806BAB0 - adds r0, r0, r5 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806BA3A - ldr r0, [sp, #0x38] - cmp r0, #4 - beq _0806BA3A - ldr r1, _0806BAB4 - movs r0, #0x58 - ldr r2, [sp, #0x38] - muls r0, r2, r0 - adds r1, #0x50 - adds r2, r0, r1 - ldr r1, [r2] - movs r0, #0xf0 - lsls r0, r0, #0xc - ands r0, r1 - cmp r0, #0 - beq _0806BA3A - ldr r0, _0806BAB8 - ands r1, r0 - str r1, [r2] - movs r3, #0 - str r3, [sp, #0x20] -_0806BA3A: - ldrb r1, [r6] - movs r0, #0x30 - ands r0, r1 - cmp r0, #0 - beq _0806BA68 - ldr r1, _0806BAB4 - ldr r0, _0806BABC - ldrb r2, [r0] - movs r0, #0x58 - muls r0, r2, r0 - adds r1, #0x50 - adds r2, r0, r1 - ldr r1, [r2] - movs r3, #0x80 - lsls r3, r3, #0xd - adds r0, r1, #0 - ands r0, r3 - cmp r0, #0 - bne _0806BA68 - orrs r1, r3 - str r1, [r2] - movs r5, #0 - str r5, [sp, #0x20] -_0806BA68: - ldrb r0, [r6] - movs r3, #0xf - ands r3, r0 - cmp r3, #0 - bne _0806BA76 - bl _0806C810 -_0806BA76: - ldr r6, _0806BAB4 - ldr r5, _0806BABC - ldrb r0, [r5] - movs r4, #0x58 - muls r0, r4, r0 - adds r1, r0, r6 - ldrb r2, [r1, #0x19] - movs r0, #0x19 - ldrsb r0, [r1, r0] - cmp r0, #0xb - ble _0806BA90 - bl _0806C810 -_0806BA90: - adds r0, r2, r3 - strb r0, [r1, #0x19] - ldrb r0, [r5] - muls r0, r4, r0 - adds r1, r0, r6 - movs r0, #0x19 - ldrsb r0, [r1, r0] - cmp r0, #0xc - bgt _0806BAA4 - b _0806BBD4 -_0806BAA4: - movs r0, #0xc - strb r0, [r1, #0x19] - b _0806BBD4 - .align 2, 0 -_0806BAAC: .4byte gUnknown_3002360 -_0806BAB0: .4byte 0x00000439 -_0806BAB4: .4byte gUnknown_2023D28 -_0806BAB8: .4byte 0xFFF0FFFF -_0806BABC: .4byte gUnknown_2023D08 -_0806BAC0: - ldr r1, [sp, #0x24] - ldr r3, [sp, #0x1c] - adds r2, r1, r3 - ldrb r1, [r2] - movs r0, #0xf0 - ands r0, r1 - lsls r3, r0, #0x18 - adds r6, r2, #0 - cmp r3, #0 - beq _0806BB06 - ldr r7, _0806BB48 - ldr r5, _0806BB4C - ldrb r0, [r5] - movs r4, #0x58 - muls r0, r4, r0 - adds r1, r0, r7 - ldrb r2, [r1, #0x1a] - movs r0, #0x1a - ldrsb r0, [r1, r0] - cmp r0, #0xb - bgt _0806BB06 - lsrs r0, r3, #0x1c - adds r0, r2, r0 - strb r0, [r1, #0x1a] - ldrb r0, [r5] - muls r0, r4, r0 - adds r1, r0, r7 - movs r0, #0x1a - ldrsb r0, [r1, r0] - cmp r0, #0xc - ble _0806BB02 - movs r0, #0xc - strb r0, [r1, #0x1a] -_0806BB02: - movs r5, #0 - str r5, [sp, #0x20] -_0806BB06: - ldrb r0, [r6] - movs r3, #0xf - ands r3, r0 - cmp r3, #0 - bne _0806BB14 - bl _0806C810 -_0806BB14: - ldr r6, _0806BB48 - ldr r5, _0806BB4C - ldrb r0, [r5] - movs r4, #0x58 - muls r0, r4, r0 - adds r1, r0, r6 - ldrb r2, [r1, #0x1b] - movs r0, #0x1b - ldrsb r0, [r1, r0] - cmp r0, #0xb - ble _0806BB2E - bl _0806C810 -_0806BB2E: - adds r0, r2, r3 - strb r0, [r1, #0x1b] - ldrb r0, [r5] - muls r0, r4, r0 - adds r1, r0, r6 - movs r0, #0x1b - ldrsb r0, [r1, r0] - cmp r0, #0xc - ble _0806BBD4 - movs r0, #0xc - strb r0, [r1, #0x1b] - b _0806BBD4 - .align 2, 0 -_0806BB48: .4byte gUnknown_2023D28 -_0806BB4C: .4byte gUnknown_2023D08 -_0806BB50: - ldr r1, [sp, #0x24] - ldr r3, [sp, #0x1c] - adds r2, r1, r3 - ldrb r1, [r2] - movs r0, #0xf0 - ands r0, r1 - lsls r3, r0, #0x18 - adds r6, r2, #0 - cmp r3, #0 - beq _0806BB96 - ldr r7, _0806BBDC - ldr r5, _0806BBE0 - ldrb r0, [r5] - movs r4, #0x58 - muls r0, r4, r0 - adds r1, r0, r7 - ldrb r2, [r1, #0x1e] - movs r0, #0x1e - ldrsb r0, [r1, r0] - cmp r0, #0xb - bgt _0806BB96 - lsrs r0, r3, #0x1c - adds r0, r2, r0 - strb r0, [r1, #0x1e] - ldrb r0, [r5] - muls r0, r4, r0 - adds r1, r0, r7 - movs r0, #0x1e - ldrsb r0, [r1, r0] - cmp r0, #0xc - ble _0806BB92 - movs r0, #0xc - strb r0, [r1, #0x1e] -_0806BB92: - movs r5, #0 - str r5, [sp, #0x20] -_0806BB96: - ldrb r0, [r6] - movs r3, #0xf - ands r3, r0 - cmp r3, #0 - bne _0806BBA4 - bl _0806C810 -_0806BBA4: - ldr r6, _0806BBDC - ldr r5, _0806BBE0 - ldrb r0, [r5] - movs r4, #0x58 - muls r0, r4, r0 - adds r1, r0, r6 - ldrb r2, [r1, #0x1c] - movs r0, #0x1c - ldrsb r0, [r1, r0] - cmp r0, #0xb - ble _0806BBBE - bl _0806C810 -_0806BBBE: - adds r0, r2, r3 - strb r0, [r1, #0x1c] - ldrb r0, [r5] - muls r0, r4, r0 - adds r1, r0, r6 - movs r0, #0x1c - ldrsb r0, [r1, r0] - cmp r0, #0xc - ble _0806BBD4 - movs r0, #0xc - strb r0, [r1, #0x1c] -_0806BBD4: - movs r0, #0 - str r0, [sp, #0x20] - bl _0806C810 - .align 2, 0 -_0806BBDC: .4byte gUnknown_2023D28 -_0806BBE0: .4byte gUnknown_2023D08 -_0806BBE4: - ldr r1, [sp, #0x24] - ldr r3, [sp, #0x1c] - adds r2, r1, r3 - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - adds r6, r2, #0 - cmp r0, #0 - beq _0806BC2C - ldr r5, _0806BDA0 - ldr r4, _0806BDA4 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrb r0, [r1, #4] - cmp r0, #0 - bne _0806BC2C - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - movs r0, #5 - strb r0, [r1, #4] - movs r5, #0 - str r5, [sp, #0x20] -_0806BC2C: - ldrb r1, [r6] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0806BC8E - mov r0, r8 - movs r1, #0x38 - movs r2, #0 - bl GetMonData - cmp r0, #0x64 - beq _0806BC8E - ldr r5, _0806BDA8 - mov r0, r8 - movs r1, #0x38 - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - mov r0, r8 - movs r1, #0xb - movs r2, #0 - bl GetMonData - adds r4, #1 - lsls r4, r4, #2 - ldr r2, _0806BDAC - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r1, [r1, #0x13] - movs r0, #0xca - lsls r0, r0, #1 - muls r0, r1, r0 - adds r4, r4, r0 - adds r4, r4, r5 - ldr r0, [r4] - str r0, [sp] - mov r0, r8 - movs r1, #0x19 - mov r2, sp - bl SetMonData - mov r0, r8 - bl CalculateMonStats - movs r0, #0 - str r0, [sp, #0x20] -_0806BC8E: - ldrb r1, [r6] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0806BCCA - mov r0, r8 - ldr r1, [sp, #0x10] - movs r2, #7 - ldr r3, [sp, #0x38] - bl sub_0806C830 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806BCCA - ldr r1, [sp, #0x38] - cmp r1, #4 - beq _0806BCC6 - ldr r1, _0806BDB0 - movs r0, #0x58 - ldr r3, [sp, #0x38] - adds r2, r3, #0 - muls r2, r0, r2 - adds r1, #0x50 - adds r2, r2, r1 - ldr r0, [r2] - ldr r1, _0806BDB4 - ands r0, r1 - str r0, [r2] -_0806BCC6: - movs r5, #0 - str r5, [sp, #0x20] -_0806BCCA: - ldrb r1, [r6] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0806BCEA - ldr r2, _0806BDB8 - mov r0, r8 - ldr r1, [sp, #0x10] - ldr r3, [sp, #0x38] - bl sub_0806C830 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806BCEA - movs r0, #0 - str r0, [sp, #0x20] -_0806BCEA: - ldrb r1, [r6] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0806BD0A - mov r0, r8 - ldr r1, [sp, #0x10] - movs r2, #0x10 - ldr r3, [sp, #0x38] - bl sub_0806C830 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806BD0A - movs r1, #0 - str r1, [sp, #0x20] -_0806BD0A: - ldrb r1, [r6] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0806BD2A - mov r0, r8 - ldr r1, [sp, #0x10] - movs r2, #0x20 - ldr r3, [sp, #0x38] - bl sub_0806C830 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806BD2A - movs r2, #0 - str r2, [sp, #0x20] -_0806BD2A: - ldrb r1, [r6] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806BD4A - mov r0, r8 - ldr r1, [sp, #0x10] - movs r2, #0x40 - ldr r3, [sp, #0x38] - bl sub_0806C830 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806BD4A - movs r3, #0 - str r3, [sp, #0x20] -_0806BD4A: - ldrb r1, [r6] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0806BD58 - bl _0806C810 -_0806BD58: - ldr r0, _0806BDBC - ldr r5, _0806BDC0 - adds r0, r0, r5 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0806BD6C - bl _0806C810 -_0806BD6C: - ldr r0, [sp, #0x38] - cmp r0, #4 - bne _0806BD76 - bl _0806C810 -_0806BD76: - ldr r1, _0806BDB0 - movs r0, #0x58 - ldr r2, [sp, #0x38] - muls r0, r2, r0 - adds r1, #0x50 - adds r2, r0, r1 - ldr r1, [r2] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _0806BD90 - bl _0806C810 -_0806BD90: - movs r0, #8 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r2] - movs r3, #0 - str r3, [sp, #0x20] - bl _0806C810 - .align 2, 0 -_0806BDA0: .4byte gUnknown_2023F38 -_0806BDA4: .4byte gUnknown_2023D08 -_0806BDA8: .4byte gUnknown_82F00B4 -_0806BDAC: .4byte gUnknown_82F0D54 -_0806BDB0: .4byte gUnknown_2023D28 -_0806BDB4: .4byte 0xF7FFFFFF -_0806BDB8: .4byte 0x00000F88 -_0806BDBC: .4byte gUnknown_3002360 -_0806BDC0: .4byte 0x00000439 -_0806BDC4: - ldr r5, [sp, #0x24] - ldr r1, [sp, #0x1c] - adds r0, r5, r1 - ldrb r0, [r0] - mov sl, r0 - movs r0, #0x20 - mov r2, sl - ands r0, r2 - cmp r0, #0 - beq _0806BE9C - movs r0, #0xdf - ands r2, r0 - mov sl, r2 - mov r0, r8 - movs r1, #0x15 - movs r2, #0 - bl GetMonData - ldr r1, _0806BEC8 - ldr r3, [sp, #0x14] - adds r1, r3, r1 - ldrb r1, [r1] - ands r0, r1 - lsls r1, r3, #1 - lsrs r0, r1 - str r0, [sp] - adds r5, r3, #0 - adds r5, #0xd - mov r0, r8 - adds r1, r5, #0 - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - mov r0, r8 - movs r1, #0x15 - movs r2, #0 - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - ldr r2, [sp, #0x14] - bl CalculatePPWithBonus - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x2c] - ldr r0, [sp] - cmp r0, #2 - bhi _0806BE9C - ldr r0, [sp, #0x2c] - cmp r0, #4 - bls _0806BE9C - mov r0, r8 - movs r1, #0x15 - movs r2, #0 - bl GetMonData - ldr r1, _0806BECC - ldr r2, [sp, #0x14] - adds r1, r2, r1 - ldrb r1, [r1] - adds r0, r0, r1 - str r0, [sp] - mov r0, r8 - movs r1, #0x15 - mov r2, sp - bl SetMonData - mov r0, r8 - adds r1, r5, #0 - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, [sp] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, [sp, #0x14] - bl CalculatePPWithBonus - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, [sp, #0x2c] - subs r0, r0, r3 - str r0, [sp] - ldr r4, [sp, #0x14] - adds r4, #0x11 - mov r0, r8 - adds r1, r4, #0 - movs r2, #0 - bl GetMonData - ldr r1, [sp] - adds r0, r0, r1 - str r0, [sp] - mov r0, r8 - adds r1, r4, #0 - mov r2, sp - bl SetMonData - movs r5, #0 - str r5, [sp, #0x20] -_0806BE9C: - movs r0, #0 - str r0, [sp, #0x2c] - mov r1, sl - cmp r1, #0 - bne _0806BEAA - bl _0806C810 -_0806BEAA: - movs r0, #1 - mov r2, sl - ands r0, r2 - cmp r0, #0 - bne _0806BEB6 - b _0806C46E -_0806BEB6: - ldr r3, [sp, #0x2c] - cmp r3, #7 - bls _0806BEBE - b _0806C46E -_0806BEBE: - lsls r0, r3, #2 - ldr r1, _0806BED0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806BEC8: .4byte gUnknown_82FA6AA -_0806BECC: .4byte gUnknown_82FA6B2 -_0806BED0: .4byte _0806BED4 -_0806BED4: @ jump table - .4byte _0806BEF4 @ case 0 - .4byte _0806BEF4 @ case 1 - .4byte _0806BFA0 @ case 2 - .4byte _0806C1C4 @ case 3 - .4byte _0806C46E @ case 4 - .4byte _0806C46E @ case 5 - .4byte _0806C46E @ case 6 - .4byte _0806C458 @ case 7 -_0806BEF4: - mov r0, r8 - bl GetMonEVCount - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r5, [sp, #0x24] - ldr r1, [sp, #0x28] - adds r0, r5, r1 - ldrb r5, [r0] - ldr r0, _0806BF40 - ldr r2, [sp, #0x2c] - adds r0, r2, r0 - ldrb r1, [r0] - mov r0, r8 - movs r2, #0 - bl GetMonData - adds r1, r0, #0 - str r1, [sp, #4] - lsls r0, r5, #0x18 - asrs r2, r0, #0x18 - cmp r2, #0 - ble _0806BF5C - ldr r0, _0806BF44 - cmp r6, r0 - bls _0806BF2A - b _0806B9B4 -_0806BF2A: - adds r3, r1, #0 - cmp r3, #0x63 - ble _0806BF32 - b _0806C46E -_0806BF32: - adds r1, r3, r2 - cmp r1, #0x64 - ble _0806BF48 - adds r0, r2, #0 - adds r0, #0x64 - subs r5, r0, r1 - b _0806BF4A - .align 2, 0 -_0806BF40: .4byte gUnknown_82FA84E -_0806BF44: .4byte 0x000001FD -_0806BF48: - adds r5, r2, #0 -_0806BF4A: - adds r1, r6, r5 - movs r0, #0xff - lsls r0, r0, #1 - cmp r1, r0 - bls _0806BF58 - adds r0, r5, r0 - subs r5, r0, r1 -_0806BF58: - adds r0, r3, r5 - b _0806BF76 -_0806BF5C: - cmp r1, #0 - bne _0806BF6C - movs r3, #1 - str r3, [sp, #0x3c] - ldr r0, [sp, #0x28] - adds r0, #1 - lsls r0, r0, #0x18 - b _0806C302 -_0806BF6C: - adds r0, r1, r2 - str r0, [sp, #4] - cmp r0, #0 - bge _0806BF78 - movs r0, #0 -_0806BF76: - str r0, [sp, #4] -_0806BF78: - ldr r0, _0806BF9C - ldr r5, [sp, #0x2c] - adds r0, r5, r0 - ldrb r1, [r0] - add r2, sp, #4 - mov r0, r8 - bl SetMonData - mov r0, r8 - bl CalculateMonStats - ldr r0, [sp, #0x28] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x28] - b _0806C43C - .align 2, 0 -_0806BF9C: .4byte gUnknown_82FA84E -_0806BFA0: - movs r0, #0x10 - mov r1, sl - ands r0, r1 - cmp r0, #0 - beq _0806C060 - mov r0, r8 - movs r1, #0x39 - movs r2, #0 - bl GetMonData - cmp r0, #0 - beq _0806BFC0 - ldr r0, [sp, #0x28] - adds r0, #1 - lsls r0, r0, #0x18 - b _0806C302 -_0806BFC0: - ldr r0, _0806C008 - ldr r2, _0806C00C - adds r0, r0, r2 - ldrb r1, [r0] - movs r4, #2 - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806C076 - ldr r3, [sp, #0x38] - cmp r3, #4 - beq _0806C020 - ldr r2, _0806C010 - ldr r1, _0806C014 - lsls r0, r3, #2 - adds r0, r0, r1 - ldr r1, [r0] - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] - ldr r1, _0806C018 - lsls r0, r3, #1 - adds r0, r0, r1 - ldrb r0, [r0] - bl pokemon_order_func - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, [sp, #0x38] - bl CopyPlayerPartyMonToBattleData - ldr r0, _0806C01C - ldrb r0, [r0] - b _0806C038 - .align 2, 0 -_0806C008: .4byte gUnknown_3002360 -_0806C00C: .4byte 0x00000439 -_0806C010: .4byte gUnknown_2023EB4 -_0806C014: .4byte gUnknown_82FACB4 -_0806C018: .4byte gUnknown_2023D12 -_0806C01C: .4byte gUnknown_2023D08 -_0806C020: - ldr r3, _0806C050 - ldr r1, _0806C054 - ldr r2, _0806C058 - ldrb r0, [r2] - eors r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - ldrb r0, [r3] - bics r0, r1 - strb r0, [r3] - ldrb r0, [r2] -_0806C038: - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806C076 - ldr r1, _0806C05C - ldrb r0, [r1, #4] - cmp r0, #0xfe - bhi _0806C076 - adds r0, #1 - strb r0, [r1, #4] - b _0806C076 - .align 2, 0 -_0806C050: .4byte gUnknown_2023EB4 -_0806C054: .4byte gUnknown_82FACB4 -_0806C058: .4byte gUnknown_2023D08 -_0806C05C: .4byte gUnknown_3005A70 -_0806C060: - mov r0, r8 - movs r1, #0x39 - movs r2, #0 - bl GetMonData - cmp r0, #0 - bne _0806C076 - ldr r0, [sp, #0x28] - adds r0, #1 - lsls r0, r0, #0x18 - b _0806C302 -_0806C076: - ldr r1, [sp, #0x28] - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x28] - ldr r5, [sp, #0x24] - adds r1, r5, r1 - ldrb r1, [r1] - str r1, [sp] - adds r0, r1, #0 - cmp r0, #0xfe - beq _0806C0B8 - cmp r0, #0xfe - bhi _0806C098 - cmp r0, #0xfd - beq _0806C0CE - b _0806C0D6 -_0806C098: - cmp r1, #0xff - bne _0806C0D6 - mov r0, r8 - movs r1, #0x3a - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - mov r0, r8 - movs r1, #0x39 - movs r2, #0 - bl GetMonData - subs r4, r4, r0 - str r4, [sp] - b _0806C0D6 -_0806C0B8: - mov r0, r8 - movs r1, #0x3a - movs r2, #0 - bl GetMonData - lsrs r0, r0, #1 - str r0, [sp] - cmp r0, #0 - bne _0806C0D6 - movs r0, #1 - b _0806C0D4 -_0806C0CE: - ldr r0, _0806C190 - adds r0, #0x23 - ldrb r0, [r0] -_0806C0D4: - str r0, [sp] -_0806C0D6: - mov r0, r8 - movs r1, #0x3a - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - mov r0, r8 - movs r1, #0x39 - movs r2, #0 - bl GetMonData - cmp r4, r0 - beq _0806C1B4 - ldr r0, [sp, #0x18] - cmp r0, #0 - bne _0806C1A8 - mov r0, r8 - movs r1, #0x39 - movs r2, #0 - bl GetMonData - ldr r1, [sp] - adds r0, r0, r1 - str r0, [sp] - mov r0, r8 - movs r1, #0x3a - movs r2, #0 - bl GetMonData - ldr r1, [sp] - cmp r1, r0 - bls _0806C122 - mov r0, r8 - movs r1, #0x3a - movs r2, #0 - bl GetMonData - str r0, [sp] -_0806C122: - mov r0, r8 - movs r1, #0x39 - mov r2, sp - bl SetMonData - ldr r0, _0806C194 - ldr r1, _0806C198 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806C1B0 - ldr r2, [sp, #0x38] - cmp r2, #4 - beq _0806C1B0 - ldr r1, _0806C19C - movs r0, #0x58 - muls r0, r2, r0 - adds r0, r0, r1 - ldr r1, [sp] - strh r1, [r0, #0x28] - movs r0, #0x10 - mov r3, sl - ands r0, r3 - cmp r0, #0 - bne _0806C1B0 - ldr r4, _0806C1A0 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806C1B0 - ldr r1, _0806C1A4 - ldrb r0, [r1, #3] - cmp r0, #0xfe - bhi _0806C172 - adds r0, #1 - strb r0, [r1, #3] -_0806C172: - ldrb r5, [r4] - add r0, sp, #0x38 - ldrb r0, [r0] - strb r0, [r4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl BtlController_EmitGetMonData - ldrb r0, [r4] - bl MarkBattlerForControllerExec - strb r5, [r4] - b _0806C1B0 - .align 2, 0 -_0806C190: .4byte gUnknown_2024118 -_0806C194: .4byte gUnknown_3002360 -_0806C198: .4byte 0x00000439 -_0806C19C: .4byte gUnknown_2023D28 -_0806C1A0: .4byte gUnknown_2023D08 -_0806C1A4: .4byte gUnknown_3005A70 -_0806C1A8: - ldr r1, _0806C1C0 - ldr r0, [sp] - rsbs r0, r0, #0 - str r0, [r1] -_0806C1B0: - movs r1, #0 - str r1, [sp, #0x20] -_0806C1B4: - movs r0, #0xef - mov r2, sl - ands r2, r0 - mov sl, r2 - b _0806C46E - .align 2, 0 -_0806C1C0: .4byte gUnknown_2023E94 -_0806C1C4: - movs r7, #2 - mov r0, sl - ands r0, r7 - cmp r0, #0 - beq _0806C1D0 - b _0806C31C -_0806C1D0: - movs r5, #0 - ldr r3, [sp, #0x28] - adds r3, #1 - str r3, [sp, #0x40] -_0806C1D8: - movs r0, #0x11 - adds r0, r0, r5 - mov sb, r0 - mov r0, r8 - mov r1, sb - movs r2, #0 - bl GetMonData - str r0, [sp] - adds r7, r5, #0 - adds r7, #0xd - mov r0, r8 - adds r1, r7, #0 - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - mov r0, r8 - movs r1, #0x15 - movs r2, #0 - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r5, #0x18 - lsrs r6, r0, #0x18 - adds r0, r4, #0 - adds r2, r6, #0 - bl CalculatePPWithBonus - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, [sp] - cmp r1, r0 - beq _0806C2F6 - ldr r2, [sp, #0x24] - ldr r3, [sp, #0x28] - adds r0, r2, r3 - ldrb r0, [r0] - adds r0, r1, r0 - str r0, [sp] - mov r0, r8 - adds r1, r7, #0 - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - mov r0, r8 - movs r1, #0x15 - movs r2, #0 - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - adds r2, r6, #0 - bl CalculatePPWithBonus - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, [sp] - cmp r1, r0 - bls _0806C290 - mov r0, r8 - adds r1, r7, #0 - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - mov r0, r8 - movs r1, #0x15 - movs r2, #0 - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - adds r2, r6, #0 - bl CalculatePPWithBonus - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] -_0806C290: - mov r0, r8 - mov r1, sb - mov r2, sp - bl SetMonData - ldr r0, _0806C308 - ldr r1, _0806C30C - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806C2F2 - ldr r2, [sp, #0x38] - cmp r2, #4 - beq _0806C2F2 - ldr r4, _0806C310 - movs r0, #0x58 - adds r3, r2, #0 - muls r3, r0, r3 - adds r0, r4, #0 - adds r0, #0x50 - adds r0, r3, r0 - ldr r1, [r0] - movs r0, #0x80 - lsls r0, r0, #0xe - ands r1, r0 - cmp r1, #0 - bne _0806C2F2 - ldr r1, _0806C314 - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #0x18] - lsrs r1, r1, #4 - ldr r2, _0806C318 - lsls r0, r5, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _0806C2F2 - adds r0, r5, r3 - adds r1, r4, #0 - adds r1, #0x24 - adds r0, r0, r1 - ldr r1, [sp] - strb r1, [r0] -_0806C2F2: - movs r3, #0 - str r3, [sp, #0x20] -_0806C2F6: - adds r5, #1 - cmp r5, #3 - bgt _0806C2FE - b _0806C1D8 -_0806C2FE: - ldr r5, [sp, #0x40] - lsls r0, r5, #0x18 -_0806C302: - lsrs r0, r0, #0x18 - str r0, [sp, #0x28] - b _0806C46E - .align 2, 0 -_0806C308: .4byte gUnknown_3002360 -_0806C30C: .4byte 0x00000439 -_0806C310: .4byte gUnknown_2023D28 -_0806C314: .4byte gUnknown_2023F60 -_0806C318: .4byte gUnknown_82FACB4 -_0806C31C: - ldr r6, [sp, #0x14] - adds r6, #0x11 - mov r0, r8 - adds r1, r6, #0 - movs r2, #0 - bl GetMonData - str r0, [sp] - ldr r5, [sp, #0x14] - adds r5, #0xd - mov r0, r8 - adds r1, r5, #0 - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - mov r0, r8 - movs r1, #0x15 - movs r2, #0 - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - ldr r2, [sp, #0x14] - bl CalculatePPWithBonus - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, [sp] - cmp r2, r0 - bne _0806C364 - b _0806C46E -_0806C364: - ldr r1, [sp, #0x28] - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x28] - ldr r0, [sp, #0x24] - adds r1, r0, r1 - ldrb r0, [r1] - adds r0, r2, r0 - str r0, [sp] - mov r0, r8 - adds r1, r5, #0 - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - mov r0, r8 - movs r1, #0x15 - movs r2, #0 - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - ldr r2, [sp, #0x14] - bl CalculatePPWithBonus - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, [sp] - cmp r1, r0 - bls _0806C3D8 - mov r0, r8 - adds r1, r5, #0 - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - mov r0, r8 - movs r1, #0x15 - movs r2, #0 - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - ldr r2, [sp, #0x14] - bl CalculatePPWithBonus - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] -_0806C3D8: - mov r0, r8 - adds r1, r6, #0 - mov r2, sp - bl SetMonData - ldr r0, _0806C444 - ldr r1, _0806C448 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r7, #0 - ands r0, r1 - cmp r0, #0 - beq _0806C43C - ldr r2, [sp, #0x38] - cmp r2, #4 - beq _0806C43C - ldr r4, _0806C44C - movs r0, #0x58 - adds r3, r2, #0 - muls r3, r0, r3 - adds r0, r4, #0 - adds r0, #0x50 - adds r0, r3, r0 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xe - ands r0, r1 - cmp r0, #0 - bne _0806C43C - ldr r1, _0806C450 - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #0x18] - lsrs r1, r1, #4 - ldr r2, _0806C454 - ldr r5, [sp, #0x14] - lsls r0, r5, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _0806C43C - adds r0, r5, r3 - adds r1, r4, #0 - adds r1, #0x24 - adds r0, r0, r1 - ldr r1, [sp] - strb r1, [r0] -_0806C43C: - movs r0, #0 - str r0, [sp, #0x20] - b _0806C46E - .align 2, 0 -_0806C444: .4byte gUnknown_3002360 -_0806C448: .4byte 0x00000439 -_0806C44C: .4byte gUnknown_2023D28 -_0806C450: .4byte gUnknown_2023F60 -_0806C454: .4byte gUnknown_82FACB4 -_0806C458: - mov r0, r8 - movs r1, #2 - ldr r2, [sp, #0xc] - bl GetEvolutionTargetSpecies - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - beq _0806C46E - bl sub_0806B9A4 -_0806C46E: - ldr r1, [sp, #0x2c] - adds r1, #1 - str r1, [sp, #0x2c] - mov r2, sl - lsrs r2, r2, #1 - mov sl, r2 - cmp r2, #0 - beq _0806C480 - b _0806BEAA -_0806C480: - b _0806C810 -_0806C482: - ldr r3, [sp, #0x24] - ldr r5, [sp, #0x1c] - adds r0, r3, r5 - ldrb r0, [r0] - mov sl, r0 - movs r0, #0 - str r0, [sp, #0x2c] - mov r1, sl - cmp r1, #0 - bne _0806C498 - b _0806C810 -_0806C498: - movs r0, #1 - mov r2, sl - ands r0, r2 - cmp r0, #0 - bne _0806C4A4 - b _0806C7FE -_0806C4A4: - ldr r3, [sp, #0x2c] - cmp r3, #7 - bls _0806C4AC - b _0806C7FE -_0806C4AC: - lsls r0, r3, #2 - ldr r1, _0806C4B8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806C4B8: .4byte _0806C4BC -_0806C4BC: @ jump table - .4byte _0806C4DC @ case 0 - .4byte _0806C4DC @ case 1 - .4byte _0806C4DC @ case 2 - .4byte _0806C4DC @ case 3 - .4byte _0806C57C @ case 4 - .4byte _0806C658 @ case 5 - .4byte _0806C6C4 @ case 6 - .4byte _0806C72C @ case 7 -_0806C4DC: - mov r0, r8 - bl GetMonEVCount - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r5, [sp, #0x24] - ldr r1, [sp, #0x28] - adds r0, r5, r1 - ldrb r5, [r0] - ldr r0, _0806C52C - ldr r4, [sp, #0x2c] - adds r4, #2 - adds r0, r4, r0 - ldrb r1, [r0] - mov r0, r8 - movs r2, #0 - bl GetMonData - adds r1, r0, #0 - str r1, [sp, #4] - lsls r0, r5, #0x18 - asrs r2, r0, #0x18 - cmp r2, #0 - ble _0806C548 - ldr r0, _0806C530 - cmp r6, r0 - bls _0806C516 - bl _0806B9B4 -_0806C516: - adds r3, r1, #0 - cmp r3, #0x63 - ble _0806C51E - b _0806C7FE -_0806C51E: - adds r1, r3, r2 - cmp r1, #0x64 - ble _0806C534 - adds r0, r2, #0 - adds r0, #0x64 - subs r5, r0, r1 - b _0806C536 - .align 2, 0 -_0806C52C: .4byte gUnknown_82FA84E -_0806C530: .4byte 0x000001FD -_0806C534: - adds r5, r2, #0 -_0806C536: - adds r1, r6, r5 - movs r0, #0xff - lsls r0, r0, #1 - cmp r1, r0 - bls _0806C544 - adds r0, r5, r0 - subs r5, r0, r1 -_0806C544: - adds r0, r3, r5 - b _0806C55C -_0806C548: - cmp r1, #0 - bne _0806C552 - movs r2, #1 - str r2, [sp, #0x3c] - b _0806C7F4 -_0806C552: - adds r0, r1, r2 - str r0, [sp, #4] - cmp r0, #0 - bge _0806C55E - movs r0, #0 -_0806C55C: - str r0, [sp, #4] -_0806C55E: - ldr r0, _0806C578 - adds r0, r4, r0 - ldrb r1, [r0] - add r2, sp, #4 - mov r0, r8 - bl SetMonData - mov r0, r8 - bl CalculateMonStats - movs r3, #0 - str r3, [sp, #0x20] - b _0806C7F4 - .align 2, 0 -_0806C578: .4byte gUnknown_82FA84E -_0806C57C: - mov r0, r8 - movs r1, #0x15 - movs r2, #0 - bl GetMonData - ldr r1, _0806C64C - ldr r5, [sp, #0x14] - adds r1, r5, r1 - ldrb r1, [r1] - ands r0, r1 - lsls r1, r5, #1 - lsrs r0, r1 - str r0, [sp] - adds r6, r5, #0 - adds r6, #0xd - mov r0, r8 - adds r1, r6, #0 - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - mov r0, r8 - movs r1, #0x15 - movs r2, #0 - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - ldr r2, [sp, #0x14] - bl CalculatePPWithBonus - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, [sp] - cmp r0, #2 - bls _0806C5CE - b _0806C7FE -_0806C5CE: - cmp r5, #4 - bhi _0806C5D4 - b _0806C7FE -_0806C5D4: - mov r0, r8 - movs r1, #0x15 - movs r2, #0 - bl GetMonData - str r0, [sp] - ldr r1, _0806C650 - ldr r2, [sp, #0x14] - adds r1, r2, r1 - ldrb r2, [r1] - ands r2, r0 - str r2, [sp] - ldr r0, _0806C654 - ldr r3, [sp, #0x14] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - adds r2, r2, r0 - str r2, [sp] - mov r0, r8 - movs r1, #0x15 - mov r2, sp - bl SetMonData - mov r0, r8 - adds r1, r6, #0 - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, [sp] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, [sp, #0x14] - bl CalculatePPWithBonus - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, r0, r5 - str r0, [sp] - ldr r4, [sp, #0x14] - adds r4, #0x11 - mov r0, r8 - adds r1, r4, #0 - movs r2, #0 - bl GetMonData - ldr r1, [sp] - adds r0, r0, r1 - str r0, [sp] - mov r0, r8 - adds r1, r4, #0 - mov r2, sp - bl SetMonData - movs r5, #0 - str r5, [sp, #0x20] - b _0806C7FE - .align 2, 0 -_0806C64C: .4byte gUnknown_82FA6AA -_0806C650: .4byte gUnknown_82FA6AE -_0806C654: .4byte gUnknown_82FA6B2 -_0806C658: - mov r0, r8 - movs r1, #0x20 - movs r2, #0 - bl GetMonData - cmp r0, #0x63 - bls _0806C668 - b _0806C7F4 -_0806C668: - ldr r0, [sp, #0x20] - cmp r0, #0 - beq _0806C676 - ldr r1, [sp, #0x3c] - cmp r1, #0 - bne _0806C676 - b _0806C7F4 -_0806C676: - bl sub_0806EB88 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0806C682 - b _0806C7F4 -_0806C682: - ldr r2, [sp, #0x30] - cmp r2, #0 - beq _0806C68A - b _0806C7F4 -_0806C68A: - ldr r3, [sp, #0x24] - ldr r5, [sp, #0x28] - adds r0, r3, r5 - ldrb r0, [r0] - str r0, [sp, #0x30] - mov r0, r8 - movs r1, #0x20 - movs r2, #0 - bl GetMonData - adds r5, r0, #0 - str r5, [sp, #8] - ldr r0, [sp, #0x30] - lsls r4, r0, #0x18 - asrs r1, r4, #0x18 - cmp r1, #0 - ble _0806C790 - ldr r2, [sp, #0x34] - cmp r2, #0x1b - bne _0806C790 - movs r0, #0x96 - muls r0, r1, r0 - movs r1, #0x64 - bl __divsi3 - adds r0, r5, r0 - str r0, [sp, #8] - adds r2, r4, #0 - b _0806C79C -_0806C6C4: - mov r0, r8 - movs r1, #0x20 - movs r2, #0 - bl GetMonData - cmp r0, #0x63 - bhi _0806C6D4 - b _0806C7F4 -_0806C6D4: - mov r0, r8 - movs r1, #0x20 - movs r2, #0 - bl GetMonData - cmp r0, #0xc7 - bls _0806C6E4 - b _0806C7F4 -_0806C6E4: - ldr r0, [sp, #0x20] - cmp r0, #0 - beq _0806C6F2 - ldr r1, [sp, #0x3c] - cmp r1, #0 - bne _0806C6F2 - b _0806C7F4 -_0806C6F2: - bl sub_0806EB88 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806C7F4 - ldr r2, [sp, #0x30] - cmp r2, #0 - bne _0806C7F4 - ldr r3, [sp, #0x24] - ldr r5, [sp, #0x28] - adds r0, r3, r5 - ldrb r0, [r0] - str r0, [sp, #0x30] - mov r0, r8 - movs r1, #0x20 - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - str r4, [sp, #8] - ldr r0, [sp, #0x30] - lsls r5, r0, #0x18 - asrs r1, r5, #0x18 - cmp r1, #0 - ble _0806C790 - ldr r2, [sp, #0x34] - cmp r2, #0x1b - beq _0806C77E - b _0806C790 -_0806C72C: - mov r0, r8 - movs r1, #0x20 - movs r2, #0 - bl GetMonData - cmp r0, #0xc7 - bls _0806C7F4 - ldr r0, [sp, #0x20] - cmp r0, #0 - beq _0806C746 - ldr r1, [sp, #0x3c] - cmp r1, #0 - beq _0806C7F4 -_0806C746: - bl sub_0806EB88 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806C7F4 - ldr r2, [sp, #0x30] - cmp r2, #0 - bne _0806C7F4 - ldr r3, [sp, #0x24] - ldr r5, [sp, #0x28] - adds r0, r3, r5 - ldrb r0, [r0] - str r0, [sp, #0x30] - mov r0, r8 - movs r1, #0x20 - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - str r4, [sp, #8] - ldr r0, [sp, #0x30] - lsls r5, r0, #0x18 - asrs r1, r5, #0x18 - cmp r1, #0 - ble _0806C790 - ldr r2, [sp, #0x34] - cmp r2, #0x1b - bne _0806C790 -_0806C77E: - movs r0, #0x96 - muls r0, r1, r0 - movs r1, #0x64 - bl __divsi3 - adds r0, r4, r0 - str r0, [sp, #8] - adds r2, r5, #0 - b _0806C79C -_0806C790: - ldr r3, [sp, #0x30] - lsls r2, r3, #0x18 - asrs r1, r2, #0x18 - ldr r0, [sp, #8] - adds r0, r0, r1 - str r0, [sp, #8] -_0806C79C: - cmp r2, #0 - ble _0806C7D2 - mov r0, r8 - movs r1, #0x26 - movs r2, #0 - bl GetMonData - cmp r0, #0xb - bne _0806C7B4 - ldr r0, [sp, #8] - adds r0, #1 - str r0, [sp, #8] -_0806C7B4: - mov r0, r8 - movs r1, #0x23 - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - bl GetCurrentRegionMapSectionId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - bne _0806C7D2 - ldr r0, [sp, #8] - adds r0, #1 - str r0, [sp, #8] -_0806C7D2: - ldr r0, [sp, #8] - cmp r0, #0 - bge _0806C7DC - movs r0, #0 - str r0, [sp, #8] -_0806C7DC: - ldr r0, [sp, #8] - cmp r0, #0xff - ble _0806C7E6 - movs r0, #0xff - str r0, [sp, #8] -_0806C7E6: - add r2, sp, #8 - mov r0, r8 - movs r1, #0x20 - bl SetMonData - movs r5, #0 - str r5, [sp, #0x20] -_0806C7F4: - ldr r0, [sp, #0x28] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x28] -_0806C7FE: - ldr r0, [sp, #0x2c] - adds r0, #1 - str r0, [sp, #0x2c] - mov r1, sl - lsrs r1, r1, #1 - mov sl, r1 - cmp r1, #0 - beq _0806C810 - b _0806C498 -_0806C810: - ldr r2, [sp, #0x1c] - adds r2, #1 - str r2, [sp, #0x1c] - cmp r2, #5 - bgt _0806C81E - bl sub_0806B9C0 -_0806C81E: - ldr r0, [sp, #0x20] - thumb_func_end sub_0806B9C0 - - thumb_func_start sub_0806C820 -sub_0806C820: @ 0x0806C820 - add sp, #0x44 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_0806C820 - - thumb_func_start sub_0806C830 -sub_0806C830: @ 0x0806C830 - push {r4, r5, r6, lr} - sub sp, #4 - adds r5, r0, #0 - adds r4, r2, #0 - lsls r3, r3, #0x18 - lsrs r6, r3, #0x18 - movs r1, #0x37 - movs r2, #0 - bl GetMonData - adds r1, r0, #0 - str r1, [sp] - ands r0, r4 - cmp r0, #0 - beq _0806C894 - mvns r4, r4 - ands r1, r4 - str r1, [sp] - adds r0, r5, #0 - movs r1, #0x37 - mov r2, sp - bl SetMonData - ldr r0, _0806C888 - ldr r1, _0806C88C - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806C882 - cmp r6, #4 - beq _0806C882 - ldr r0, _0806C890 - movs r1, #0x58 - muls r1, r6, r1 - adds r0, #0x4c - adds r1, r1, r0 - ldr r0, [r1] - ands r0, r4 - str r0, [r1] -_0806C882: - movs r0, #0 - b _0806C896 - .align 2, 0 -_0806C888: .4byte gUnknown_3002360 -_0806C88C: .4byte 0x00000439 -_0806C890: .4byte gUnknown_2023D28 -_0806C894: - movs r0, #1 -_0806C896: - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0806C830 - - thumb_func_start GetItemEffectParamOffset -GetItemEffectParamOffset: @ 0x0806C8A0 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - movs r7, #6 - ldr r1, _0806C8C8 - adds r0, r3, #0 - subs r0, #0xd - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #0 - bne _0806C8CC - cmp r3, #0xaf - beq _0806C8D0 -_0806C8C4: - movs r0, #0 - b _0806C9E0 - .align 2, 0 -_0806C8C8: .4byte gUnknown_82EEF14 -_0806C8CC: - cmp r3, #0xaf - bne _0806C8DE -_0806C8D0: - ldr r0, _0806C8F0 - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0806C8F4 - adds r0, r0, r1 -_0806C8DE: - mov ip, r0 - movs r2, #0 -_0806C8E2: - cmp r2, #4 - beq _0806C902 - cmp r2, #4 - ble _0806C8F8 - cmp r2, #5 - beq _0806C98C - b _0806C9D6 - .align 2, 0 -_0806C8F0: .4byte gUnknown_2023D08 -_0806C8F4: .4byte gUnknown_20240B0 -_0806C8F8: - cmp r2, #0 - blt _0806C9D6 - cmp r2, r4 - bne _0806C9D6 - b _0806C8C4 -_0806C902: - mov r0, ip - ldrb r3, [r0, #4] - movs r0, #0x20 - ands r0, r3 - cmp r0, #0 - beq _0806C912 - movs r0, #0xdf - ands r3, r0 -_0806C912: - movs r6, #0 - cmp r3, #0 - beq _0806C9D6 -_0806C918: - movs r0, #1 - ands r0, r3 - cmp r0, #0 - beq _0806C978 - cmp r6, #7 - bhi _0806C978 - lsls r0, r6, #2 - ldr r1, _0806C930 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806C930: .4byte _0806C934 -_0806C934: @ jump table - .4byte _0806C960 @ case 0 - .4byte _0806C960 @ case 1 - .4byte _0806C954 @ case 2 - .4byte _0806C960 @ case 3 - .4byte _0806C978 @ case 4 - .4byte _0806C978 @ case 5 - .4byte _0806C978 @ case 6 - .4byte _0806C974 @ case 7 -_0806C954: - movs r0, #0x10 - ands r0, r3 - cmp r0, #0 - beq _0806C960 - movs r0, #0xef - ands r3, r0 -_0806C960: - cmp r2, r4 - bne _0806C96C - adds r0, r3, #0 - ands r0, r5 - cmp r0, #0 - bne _0806C9DE -_0806C96C: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - b _0806C978 -_0806C974: - cmp r2, r4 - beq _0806C8C4 -_0806C978: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsrs r3, r3, #1 - cmp r2, r4 - bne _0806C986 - lsrs r5, r5, #1 -_0806C986: - cmp r3, #0 - bne _0806C918 - b _0806C9D6 -_0806C98C: - mov r0, ip - ldrb r3, [r0, #5] - movs r6, #0 -_0806C992: - cmp r3, #0 - beq _0806C9D6 - movs r0, #1 - ands r0, r3 - cmp r0, #0 - beq _0806C9C6 - cmp r6, #0 - blt _0806C9C6 - cmp r6, #6 - ble _0806C9AC - cmp r6, #7 - beq _0806C9C0 - b _0806C9C6 -_0806C9AC: - cmp r2, r4 - bne _0806C9B8 - adds r0, r3, #0 - ands r0, r5 - cmp r0, #0 - bne _0806C9DE -_0806C9B8: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - b _0806C9C6 -_0806C9C0: - cmp r2, r4 - bne _0806C9C6 - b _0806C8C4 -_0806C9C6: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsrs r3, r3, #1 - cmp r2, r4 - bne _0806C992 - lsrs r5, r5, #1 - b _0806C992 -_0806C9D6: - adds r2, #1 - cmp r2, #5 - bgt _0806C9DE - b _0806C8E2 -_0806C9DE: - adds r0, r7, #0 -_0806C9E0: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetItemEffectParamOffset - - thumb_func_start sub_0806C9E8 -sub_0806C9E8: @ 0x0806C9E8 - push {lr} - ldr r2, _0806CA1C - ldr r1, _0806CA20 - ldrb r1, [r1] - strb r1, [r2] - ldr r3, _0806CA24 - ldr r2, _0806CA28 - ldr r1, _0806CA2C - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, [r0] - adds r0, r3, #0 - bl StringCopy - ldr r0, _0806CA30 - ldr r1, _0806CA34 - bl StringCopy - ldr r0, _0806CA38 - bl BattleStringExpandPlaceholdersToDisplayedString - pop {r0} - bx r0 - .align 2, 0 -_0806CA1C: .4byte gUnknown_2023EB0 -_0806CA20: .4byte gUnknown_202415C -_0806CA24: .4byte gUnknown_2022C0C -_0806CA28: .4byte gUnknown_85AB08C -_0806CA2C: .4byte gUnknown_82FA854 -_0806CA30: .4byte gUnknown_2022C1C -_0806CA34: .4byte gUnknown_85AA877 -_0806CA38: .4byte gUnknown_85AA894 - thumb_func_end sub_0806C9E8 - - thumb_func_start sub_0806CA3C -sub_0806CA3C: @ 0x0806CA3C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xaf - bne _0806CA90 - ldr r0, _0806CA6C - ldr r1, _0806CA70 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806CA7C - ldr r2, _0806CA74 - ldrb r1, [r2] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0806CA78 - adds r7, r0, r1 - b _0806CA9C - .align 2, 0 -_0806CA6C: .4byte gUnknown_3002360 -_0806CA70: .4byte 0x00000439 -_0806CA74: .4byte gUnknown_202415C -_0806CA78: .4byte gUnknown_20240B0 -_0806CA7C: - ldr r0, _0806CA88 - ldr r0, [r0] - ldr r1, _0806CA8C - adds r7, r0, r1 - b _0806CA9A - .align 2, 0 -_0806CA88: .4byte gUnknown_3005AEC -_0806CA8C: .4byte 0x00003214 -_0806CA90: - ldr r1, _0806CAD4 - subs r0, #0xd - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r7, [r0] -_0806CA9A: - ldr r2, _0806CAD8 -_0806CA9C: - ldr r1, _0806CADC - ldrb r0, [r2] - strb r0, [r1] - movs r5, #0 - ldr r0, _0806CAE0 - mov r8, r0 - movs r6, #0 -_0806CAAA: - adds r4, r7, r5 - ldrb r1, [r4] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - beq _0806CABC - adds r0, r6, #0 - bl sub_0806C9E8 -_0806CABC: - ldrb r1, [r4] - movs r0, #0xf0 - ands r0, r1 - cmp r0, #0 - beq _0806CAF2 - cmp r5, #0 - beq _0806CAE4 - adds r0, r6, #1 - bl sub_0806C9E8 - b _0806CAF2 - .align 2, 0 -_0806CAD4: .4byte gUnknown_82EEF14 -_0806CAD8: .4byte gUnknown_202415C -_0806CADC: .4byte gUnknown_2023EB3 -_0806CAE0: .4byte gUnknown_2023EAF -_0806CAE4: - ldr r0, _0806CB20 - ldrb r0, [r0] - mov r1, r8 - strb r0, [r1] - ldr r0, _0806CB24 - bl BattleStringExpandPlaceholdersToDisplayedString -_0806CAF2: - adds r6, #2 - adds r5, #1 - cmp r5, #2 - ble _0806CAAA - ldrb r1, [r7, #3] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806CB12 - ldr r1, _0806CB28 - ldr r0, _0806CB20 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _0806CB2C - bl BattleStringExpandPlaceholdersToDisplayedString -_0806CB12: - ldr r0, _0806CB30 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0806CB20: .4byte gUnknown_202415C -_0806CB24: .4byte gUnknown_85A9D39 -_0806CB28: .4byte gUnknown_2023EAF -_0806CB2C: .4byte gUnknown_85A9D15 -_0806CB30: .4byte gUnknown_2022AE0 - thumb_func_end sub_0806CA3C - - thumb_func_start GetNature -GetNature: @ 0x0806CB34 - push {lr} - movs r1, #0 - movs r2, #0 - bl GetMonData - movs r1, #0x19 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - thumb_func_end GetNature - - thumb_func_start GetNatureFromPersonality -GetNatureFromPersonality: @ 0x0806CB4C - push {lr} - movs r1, #0x19 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - thumb_func_end GetNatureFromPersonality - - thumb_func_start GetEvolutionTargetSpecies -GetEvolutionTargetSpecies: @ 0x0806CB5C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - mov r8, r0 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - mov sb, r2 - movs r0, #0 - mov sl, r0 - mov r0, r8 - movs r1, #0xb - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - mov r0, r8 - movs r1, #0xc - movs r2, #0 - bl GetMonData - mov r1, sp - strh r0, [r1] - mov r0, r8 - movs r1, #0 - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - mov r0, r8 - movs r1, #0x17 - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0xc] - lsrs r4, r4, #0x10 - str r4, [sp, #0x10] - mov r0, sp - ldrh r0, [r0] - cmp r0, #0xaf - bne _0806CBD0 - ldr r0, _0806CBC8 - ldr r0, [r0] - ldr r1, _0806CBCC - adds r0, r0, r1 - ldrb r0, [r0] - b _0806CBD8 - .align 2, 0 -_0806CBC8: .4byte gUnknown_3005AEC -_0806CBCC: .4byte 0x00003226 -_0806CBD0: - bl sub_080D6CF8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_0806CBD8: - cmp r0, #0x26 - bne _0806CBE4 - cmp r5, #3 - beq _0806CBE4 - movs r0, #0 - b _0806CE74 -_0806CBE4: - cmp r5, #1 - bne _0806CBEA - b _0806CE04 -_0806CBEA: - cmp r5, #1 - bgt _0806CBF4 - cmp r5, #0 - beq _0806CC08 - b _0806CE72 -_0806CBF4: - cmp r5, #3 - ble _0806CBFA - b _0806CE72 -_0806CBFA: - movs r2, #0 - str r2, [sp, #4] - ldr r3, _0806CC04 - lsls r6, r7, #2 - b _0806CE52 - .align 2, 0 -_0806CC04: .4byte gUnknown_82F5CA4 -_0806CC08: - mov r0, r8 - movs r1, #0x38 - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - mov r0, r8 - movs r1, #0x20 - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #8] - movs r0, #0 - str r0, [sp, #4] - lsls r6, r7, #2 -_0806CC2E: - ldr r1, _0806CC54 - ldr r0, [sp, #4] - lsls r2, r0, #3 - adds r0, r6, r7 - lsls r0, r0, #3 - adds r0, r2, r0 - adds r0, r0, r1 - ldrh r0, [r0] - subs r0, #1 - adds r3, r1, #0 - adds r4, r2, #0 - cmp r0, #0xe - bls _0806CC4A - b _0806CDF6 -_0806CC4A: - lsls r0, r0, #2 - ldr r1, _0806CC58 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806CC54: .4byte gUnknown_82F5CA4 -_0806CC58: .4byte _0806CC5C -_0806CC5C: @ jump table - .4byte _0806CC98 @ case 0 - .4byte _0806CCAA @ case 1 - .4byte _0806CCCC @ case 2 - .4byte _0806CCFC @ case 3 - .4byte _0806CDF6 @ case 4 - .4byte _0806CDF6 @ case 5 - .4byte _0806CDF6 @ case 6 - .4byte _0806CD0C @ case 7 - .4byte _0806CD36 @ case 8 - .4byte _0806CD60 @ case 9 - .4byte _0806CD8E @ case 10 - .4byte _0806CDAE @ case 11 - .4byte _0806CDD2 @ case 12 - .4byte _0806CDF6 @ case 13 - .4byte _0806CDE2 @ case 14 -_0806CC98: - ldr r1, [sp, #8] - cmp r1, #0xdb - bhi _0806CCA0 - b _0806CDF6 -_0806CCA0: - adds r0, r6, r7 - lsls r0, r0, #3 - adds r0, r4, r0 - adds r0, r0, r3 - b _0806CCEC -_0806CCAA: - bl RtcCalcLocalTime - ldr r0, _0806CCC8 - ldrb r0, [r0, #2] - subs r0, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xb - bls _0806CCBE - b _0806CDF6 -_0806CCBE: - ldr r2, [sp, #8] - cmp r2, #0xdb - bhi _0806CCC6 - b _0806CDF6 -_0806CCC6: - b _0806CCE2 - .align 2, 0 -_0806CCC8: .4byte gUnknown_3005A50 -_0806CCCC: - bl RtcCalcLocalTime - ldr r0, _0806CCF4 - ldrb r0, [r0, #2] - cmp r0, #0xb - bls _0806CCDA - b _0806CDF6 -_0806CCDA: - ldr r0, [sp, #8] - cmp r0, #0xdb - bhi _0806CCE2 - b _0806CDF6 -_0806CCE2: - ldr r1, _0806CCF8 - adds r0, r6, r7 - lsls r0, r0, #3 - adds r0, r4, r0 - adds r0, r0, r1 -_0806CCEC: - ldrh r0, [r0, #4] - mov sl, r0 - b _0806CDF6 - .align 2, 0 -_0806CCF4: .4byte gUnknown_3005A50 -_0806CCF8: .4byte gUnknown_82F5CA4 -_0806CCFC: - adds r0, r6, r7 - lsls r0, r0, #3 - adds r0, r4, r0 - adds r1, r0, r3 - ldrh r0, [r1, #2] - cmp r0, sb - bhi _0806CDF6 - b _0806CDF2 -_0806CD0C: - adds r0, r6, r7 - lsls r0, r0, #3 - adds r0, r4, r0 - adds r5, r0, r3 - ldrh r0, [r5, #2] - cmp r0, sb - bhi _0806CDF6 - mov r0, r8 - movs r1, #0x3b - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - mov r0, r8 - movs r1, #0x3c - movs r2, #0 - bl GetMonData - cmp r4, r0 - bls _0806CDF6 - b _0806CD88 -_0806CD36: - adds r0, r6, r7 - lsls r0, r0, #3 - adds r0, r4, r0 - adds r5, r0, r3 - ldrh r0, [r5, #2] - cmp r0, sb - bhi _0806CDF6 - mov r0, r8 - movs r1, #0x3b - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - mov r0, r8 - movs r1, #0x3c - movs r2, #0 - bl GetMonData - cmp r4, r0 - bne _0806CDF6 - b _0806CD88 -_0806CD60: - adds r0, r6, r7 - lsls r0, r0, #3 - adds r0, r4, r0 - adds r5, r0, r3 - ldrh r0, [r5, #2] - cmp r0, sb - bhi _0806CDF6 - mov r0, r8 - movs r1, #0x3b - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - mov r0, r8 - movs r1, #0x3c - movs r2, #0 - bl GetMonData - cmp r4, r0 - bhs _0806CDF6 -_0806CD88: - ldrh r5, [r5, #4] - mov sl, r5 - b _0806CDF6 -_0806CD8E: - adds r0, r6, r7 - lsls r0, r0, #3 - adds r0, r4, r0 - adds r4, r0, r3 - ldrh r0, [r4, #2] - cmp r0, sb - bhi _0806CDF6 - ldr r0, [sp, #0x10] - movs r1, #0xa - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #4 - bhi _0806CDF6 - b _0806CDCC -_0806CDAE: - adds r0, r6, r7 - lsls r0, r0, #3 - adds r0, r4, r0 - adds r4, r0, r3 - ldrh r0, [r4, #2] - cmp r0, sb - bhi _0806CDF6 - ldr r0, [sp, #0x10] - movs r1, #0xa - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #4 - bls _0806CDF6 -_0806CDCC: - ldrh r4, [r4, #4] - mov sl, r4 - b _0806CDF6 -_0806CDD2: - adds r0, r6, r7 - lsls r0, r0, #3 - adds r0, r4, r0 - adds r1, r0, r3 - ldrh r0, [r1, #2] - cmp r0, sb - bhi _0806CDF6 - b _0806CDF2 -_0806CDE2: - adds r0, r6, r7 - lsls r0, r0, #3 - adds r0, r4, r0 - adds r1, r0, r3 - ldrh r0, [r1, #2] - ldr r2, [sp, #0xc] - cmp r0, r2 - bhi _0806CDF6 -_0806CDF2: - ldrh r1, [r1, #4] - mov sl, r1 -_0806CDF6: - ldr r0, [sp, #4] - adds r0, #1 - str r0, [sp, #4] - cmp r0, #4 - bgt _0806CE02 - b _0806CC2E -_0806CE02: - b _0806CE72 -_0806CE04: - lsls r6, r7, #2 - ldr r1, _0806CE48 - adds r0, r6, r7 - lsls r0, r0, #3 - adds r4, r0, r1 - mov r5, sp - movs r1, #4 - str r1, [sp, #4] -_0806CE14: - ldrh r0, [r4] - cmp r0, #5 - beq _0806CE34 - cmp r0, #6 - bne _0806CE38 - ldrh r0, [r4, #2] - ldrh r1, [r5] - cmp r0, r1 - bne _0806CE38 - movs r0, #0 - strh r0, [r5] - mov r0, r8 - movs r1, #0xc - mov r2, sp - bl SetMonData -_0806CE34: - ldrh r2, [r4, #4] - mov sl, r2 -_0806CE38: - adds r4, #8 - ldr r0, [sp, #4] - subs r0, #1 - str r0, [sp, #4] - cmp r0, #0 - bge _0806CE14 - b _0806CE72 - .align 2, 0 -_0806CE48: .4byte gUnknown_82F5CA4 -_0806CE4C: - ldrh r1, [r1, #4] - mov sl, r1 - b _0806CE72 -_0806CE52: - adds r0, r6, r7 - ldr r1, [sp, #4] - adds r0, r0, r1 - lsls r0, r0, #3 - adds r1, r0, r3 - ldrh r0, [r1] - cmp r0, #7 - bne _0806CE68 - ldrh r0, [r1, #2] - cmp r0, sb - beq _0806CE4C -_0806CE68: - ldr r2, [sp, #4] - adds r2, #1 - str r2, [sp, #4] - cmp r2, #4 - ble _0806CE52 -_0806CE72: - mov r0, sl -_0806CE74: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end GetEvolutionTargetSpecies - - thumb_func_start sub_0806CE84 -sub_0806CE84: @ 0x0806CE84 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0 - beq _0806CEC8 - movs r1, #0 - ldr r3, _0806CEC0 - ldrh r0, [r3] - cmp r0, r2 - beq _0806CEB0 - movs r4, #0xcd - lsls r4, r4, #1 -_0806CE9C: - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, r4 - bhi _0806CEB0 - lsls r0, r1, #1 - adds r0, r0, r3 - ldrh r0, [r0] - cmp r0, r2 - bne _0806CE9C -_0806CEB0: - ldr r0, _0806CEC4 - cmp r1, r0 - beq _0806CEC8 - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b _0806CECA - .align 2, 0 -_0806CEC0: .4byte gUnknown_82EE2D4 -_0806CEC4: .4byte 0x0000019B -_0806CEC8: - movs r0, #0 -_0806CECA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0806CE84 - - thumb_func_start sub_0806CED0 -sub_0806CED0: @ 0x0806CED0 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0 - beq _0806CF14 - movs r1, #0 - ldr r3, _0806CF0C - ldrh r0, [r3] - cmp r0, r2 - beq _0806CEFC - movs r4, #0xcd - lsls r4, r4, #1 -_0806CEE8: - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, r4 - bhi _0806CEFC - lsls r0, r1, #1 - adds r0, r0, r3 - ldrh r0, [r0] - cmp r0, r2 - bne _0806CEE8 -_0806CEFC: - ldr r0, _0806CF10 - cmp r1, r0 - beq _0806CF14 - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b _0806CF16 - .align 2, 0 -_0806CF0C: .4byte gUnknown_82EE60A -_0806CF10: .4byte 0x0000019B -_0806CF14: - movs r0, #0 -_0806CF16: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0806CED0 - - thumb_func_start sub_0806CF1C -sub_0806CF1C: @ 0x0806CF1C - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0 - beq _0806CF60 - movs r1, #0 - ldr r3, _0806CF58 - ldrh r0, [r3] - cmp r0, r2 - beq _0806CF48 - movs r4, #0xcd - lsls r4, r4, #1 -_0806CF34: - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, r4 - bhi _0806CF48 - lsls r0, r1, #1 - adds r0, r0, r3 - ldrh r0, [r0] - cmp r0, r2 - bne _0806CF34 -_0806CF48: - ldr r0, _0806CF5C - cmp r1, r0 - beq _0806CF60 - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b _0806CF62 - .align 2, 0 -_0806CF58: .4byte gUnknown_82EE940 -_0806CF5C: .4byte 0x0000019B -_0806CF60: - movs r0, #0 -_0806CF62: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0806CF1C - - thumb_func_start sub_0806CF68 -sub_0806CF68: @ 0x0806CF68 - push {lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - beq _0806CF84 - ldr r0, _0806CF80 - subs r1, #1 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - b _0806CF86 - .align 2, 0 -_0806CF80: .4byte gUnknown_82EE60A -_0806CF84: - movs r0, #0 -_0806CF86: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0806CF68 - - thumb_func_start sub_0806CF8C -sub_0806CF8C: @ 0x0806CF8C - push {lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - beq _0806CFA8 - ldr r0, _0806CFA4 - subs r1, #1 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - b _0806CFAA - .align 2, 0 -_0806CFA4: .4byte gUnknown_82EE2D4 -_0806CFA8: - movs r0, #0 -_0806CFAA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0806CF8C - - thumb_func_start sub_0806CFB0 -sub_0806CFB0: @ 0x0806CFB0 - push {lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - beq _0806CFCC - ldr r0, _0806CFC8 - subs r1, #1 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - b _0806CFCE - .align 2, 0 -_0806CFC8: .4byte gUnknown_82EE940 -_0806CFCC: - movs r0, #0 -_0806CFCE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0806CFB0 - - thumb_func_start SpeciesToCryId -SpeciesToCryId: @ 0x0806CFD4 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r0, #0 - cmp r0, #0xfa - bls _0806D002 - ldr r0, _0806CFF4 - cmp r1, r0 - bls _0806D000 - ldr r0, _0806CFF8 - ldr r2, _0806CFFC - adds r1, r1, r2 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - b _0806D002 - .align 2, 0 -_0806CFF4: .4byte 0x00000113 -_0806CFF8: .4byte gUnknown_82EFFA4 -_0806CFFC: .4byte 0xFFFFFEEC -_0806D000: - movs r0, #0xc8 -_0806D002: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end SpeciesToCryId - - thumb_func_start sub_0806D008 -sub_0806D008: @ 0x0806D008 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - adds r6, r1, #0 - mov sl, r2 - lsls r0, r0, #0x10 - movs r1, #0x9a - lsls r1, r1, #0x11 - cmp r0, r1 - bne _0806D116 - ldr r0, _0806D0D8 - ldr r1, [r0] - ldr r0, [r1, #4] - cmp sl, r0 - beq _0806D116 - ldr r0, [r1, #0xc] - cmp sl, r0 - beq _0806D116 - movs r5, #0 -_0806D034: - lsls r3, r5, #3 - adds r3, r3, r5 - lsls r3, r3, #2 - ldr r0, _0806D0DC - adds r4, r3, r0 - ldrb r1, [r4] - adds r1, #0xf8 - movs r2, #0xf - adds r0, r6, #0 - ands r0, r2 - adds r1, r1, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov ip, r1 - ldrb r1, [r4, #1] - adds r1, #0xf8 - movs r0, #0xf0 - ands r0, r6 - lsrs r0, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r2, #0 - lsrs r6, r6, #8 - str r6, [sp, #4] - adds r5, #1 - str r5, [sp] - mov sb, r3 -_0806D06C: - lsls r0, r2, #1 - add r0, sb - ldr r3, _0806D0E0 - adds r0, r0, r3 - ldrh r3, [r0] - mov r4, ip - adds r0, r4, #0 - adds r0, #0x10 - adds r7, r1, #1 - adds r2, #1 - mov r8, r2 - cmp r4, r0 - bge _0806D104 - lsrs r0, r1, #3 - lsls r6, r0, #8 - movs r0, #7 - ands r1, r0 - lsls r5, r1, #2 -_0806D090: - adds r0, r4, #0 - cmp r4, #0 - bge _0806D098 - adds r0, r4, #7 -_0806D098: - asrs r0, r0, #3 - lsls r2, r0, #5 - add r2, sl - lsls r0, r0, #3 - subs r0, r4, r0 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - adds r2, r2, r0 - adds r2, r2, r6 - adds r2, r2, r5 - movs r1, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _0806D0F8 - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - beq _0806D0E4 - ldrb r1, [r2] - movs r0, #0xf0 - ands r0, r1 - subs r0, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x20 - bhi _0806D0F8 - adds r0, r1, #0 - adds r0, #0x40 - b _0806D0F6 - .align 2, 0 -_0806D0D8: .4byte gUnknown_2024178 -_0806D0DC: .4byte gUnknown_82EEC78 -_0806D0E0: .4byte gUnknown_82EEC7A -_0806D0E4: - ldrb r1, [r2] - movs r0, #0xf - ands r0, r1 - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bhi _0806D0F8 - adds r0, r1, #4 -_0806D0F6: - strb r0, [r2] -_0806D0F8: - asrs r3, r3, #1 - adds r4, #1 - mov r0, ip - adds r0, #0x10 - cmp r4, r0 - blt _0806D090 -_0806D104: - lsls r0, r7, #0x18 - lsrs r1, r0, #0x18 - mov r2, r8 - cmp r2, #0xf - ble _0806D06C - ldr r6, [sp, #4] - ldr r5, [sp] - cmp r5, #3 - ble _0806D034 -_0806D116: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0806D008 - - thumb_func_start DrawSpindaSpots -DrawSpindaSpots: @ 0x0806D128 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - adds r5, r1, #0 - str r2, [sp] - lsls r0, r0, #0x10 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r1, #0x9a - lsls r1, r1, #0x11 - cmp r0, r1 - bne _0806D22A - cmp r3, #0 - beq _0806D22A - movs r6, #0 -_0806D14C: - lsls r3, r6, #3 - adds r3, r3, r6 - lsls r3, r3, #2 - ldr r0, _0806D1F0 - adds r4, r3, r0 - ldrb r1, [r4] - adds r1, #0xf8 - movs r2, #0xf - adds r0, r5, #0 - ands r0, r2 - adds r1, r1, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov ip, r1 - ldrb r1, [r4, #1] - adds r1, #0xf8 - movs r0, #0xf0 - ands r0, r5 - lsrs r0, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r2, #0 - lsrs r5, r5, #8 - str r5, [sp, #4] - adds r6, #1 - mov sl, r6 - mov sb, r3 -_0806D184: - lsls r0, r2, #1 - add r0, sb - ldr r3, _0806D1F4 - adds r0, r0, r3 - ldrh r3, [r0] - mov r4, ip - adds r0, r4, #0 - adds r0, #0x10 - adds r7, r1, #1 - adds r2, #1 - mov r8, r2 - cmp r4, r0 - bge _0806D218 - lsrs r0, r1, #3 - lsls r6, r0, #8 - movs r0, #7 - ands r1, r0 - lsls r5, r1, #2 -_0806D1A8: - adds r0, r4, #0 - cmp r4, #0 - bge _0806D1B0 - adds r0, r4, #7 -_0806D1B0: - asrs r0, r0, #3 - lsls r2, r0, #5 - ldr r1, [sp] - adds r2, r1, r2 - lsls r0, r0, #3 - subs r0, r4, r0 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - adds r2, r2, r0 - adds r2, r2, r6 - adds r2, r2, r5 - movs r1, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _0806D20C - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - beq _0806D1F8 - ldrb r1, [r2] - movs r0, #0xf0 - ands r0, r1 - subs r0, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x20 - bhi _0806D20C - adds r0, r1, #0 - adds r0, #0x40 - b _0806D20A - .align 2, 0 -_0806D1F0: .4byte gUnknown_82EEC78 -_0806D1F4: .4byte gUnknown_82EEC7A -_0806D1F8: - ldrb r1, [r2] - movs r0, #0xf - ands r0, r1 - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bhi _0806D20C - adds r0, r1, #4 -_0806D20A: - strb r0, [r2] -_0806D20C: - asrs r3, r3, #1 - adds r4, #1 - mov r0, ip - adds r0, #0x10 - cmp r4, r0 - blt _0806D1A8 -_0806D218: - lsls r0, r7, #0x18 - lsrs r1, r0, #0x18 - mov r2, r8 - cmp r2, #0xf - ble _0806D184 - ldr r5, [sp, #4] - mov r6, sl - cmp r6, #3 - ble _0806D14C -_0806D22A: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end DrawSpindaSpots - - thumb_func_start sub_0806D23C -sub_0806D23C: @ 0x0806D23C - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r4, r1, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r2, r2, #0x10 - lsrs r6, r2, #0x10 - ldr r5, _0806D280 - movs r1, #2 - adds r2, r5, #0 - bl GetMonData - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #1 - ldr r4, _0806D284 - adds r0, r0, r4 - adds r1, r5, #0 - bl StringCompare - cmp r0, #0 - bne _0806D278 - lsls r2, r6, #1 - adds r2, r2, r6 - lsls r2, r2, #1 - adds r2, r2, r4 - adds r0, r7, #0 - movs r1, #2 - bl SetMonData -_0806D278: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0806D280: .4byte gUnknown_2021C40 -_0806D284: .4byte gUnknown_82EA31C - thumb_func_end sub_0806D23C - - thumb_func_start sub_0806D288 -sub_0806D288: @ 0x0806D288 - push {r4, r5, lr} - movs r5, #0 - ldr r4, _0806D2B0 - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrh r0, [r1, #0x18] - cmp r0, #2 - bgt _0806D2B4 - cmp r0, #1 - bge _0806D2BC - cmp r0, #0 - beq _0806D2B8 - b _0806D2BE - .align 2, 0 -_0806D2B0: .4byte gUnknown_20226A0 -_0806D2B4: - cmp r0, #3 - bne _0806D2BE -_0806D2B8: - movs r5, #0 - b _0806D2BE -_0806D2BC: - movs r5, #1 -_0806D2BE: - adds r0, r5, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0806D288 - - thumb_func_start GetLinkTrainerFlankId -GetLinkTrainerFlankId: @ 0x0806D2C8 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r3, #0 - ldr r2, _0806D2EC - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r0, [r1, #0x18] - cmp r0, #2 - bgt _0806D2F0 - cmp r0, #1 - bge _0806D2F8 - cmp r0, #0 - beq _0806D2F4 - b _0806D2FA - .align 2, 0 -_0806D2EC: .4byte gUnknown_20226A0 -_0806D2F0: - cmp r0, #3 - bne _0806D2FA -_0806D2F4: - movs r3, #0 - b _0806D2FA -_0806D2F8: - movs r3, #1 -_0806D2FA: - adds r0, r3, #0 - pop {r1} - bx r1 - thumb_func_end GetLinkTrainerFlankId - - thumb_func_start GetBattlerMultiplayerId -GetBattlerMultiplayerId: @ 0x0806D300 - push {lr} - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - movs r2, #0 - ldr r1, _0806D30C - b _0806D318 - .align 2, 0 -_0806D30C: .4byte gUnknown_20226A0 -_0806D310: - adds r1, #0x1c - adds r2, #1 - cmp r2, #3 - bgt _0806D31E -_0806D318: - ldrh r0, [r1, #0x18] - cmp r0, r3 - bne _0806D310 -_0806D31E: - adds r0, r2, #0 - pop {r1} - bx r1 - thumb_func_end GetBattlerMultiplayerId - - thumb_func_start sub_0806D324 -sub_0806D324: @ 0x0806D324 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r5, r4, #0 - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0806D33E - adds r0, r4, #0 - bl GetBattlePyramindTrainerEncounterMusicId - b _0806D362 -_0806D33E: - bl sub_081D52F0 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806D35C - ldr r1, _0806D358 - lsls r0, r4, #5 - adds r0, r0, r1 - ldrb r1, [r0, #2] - movs r0, #0x7f - ands r0, r1 - b _0806D366 - .align 2, 0 -_0806D358: .4byte gUnknown_82E383C -_0806D35C: - adds r0, r5, #0 - bl sub_081D5D64 -_0806D362: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_0806D366: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_0806D324 - - thumb_func_start ModifyStatByNature -ModifyStatByNature: @ 0x0806D36C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r3, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - movs r0, #0xff - lsls r0, r0, #0x18 - adds r2, r2, r0 - lsrs r2, r2, #0x18 - cmp r2, #4 - bls _0806D38A - adds r0, r3, #0 - b _0806D3C6 -_0806D38A: - ldr r0, _0806D3AC - lsls r1, r4, #2 - adds r1, r1, r4 - subs r1, #1 - adds r1, r5, r1 - adds r1, r1, r0 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0806D3B0 - cmp r1, #1 - bne _0806D3C4 - movs r0, #0x6e - b _0806D3B2 - .align 2, 0 -_0806D3AC: .4byte gUnknown_82EF1A0 -_0806D3B0: - movs r0, #0x5a -_0806D3B2: - muls r0, r3, r0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b _0806D3C6 -_0806D3C4: - adds r0, r3, #0 -_0806D3C6: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end ModifyStatByNature - - thumb_func_start AdjustFriendship -AdjustFriendship: @ 0x0806D3CC - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r7, r0, #0 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - bl sub_0806EB88 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0806D3E2 - b _0806D556 -_0806D3E2: - adds r0, r7, #0 - movs r1, #0x41 - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r0, r7, #0 - movs r1, #0xc - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xaf - bne _0806D438 - ldr r0, _0806D418 - ldr r1, _0806D41C - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806D424 - ldr r0, _0806D420 - ldrb r4, [r0, #7] - b _0806D440 - .align 2, 0 -_0806D418: .4byte gUnknown_3002360 -_0806D41C: .4byte 0x00000439 -_0806D420: .4byte gUnknown_20240A8 -_0806D424: - ldr r0, _0806D430 - ldr r0, [r0] - ldr r1, _0806D434 - adds r0, r0, r1 - ldrb r4, [r0] - b _0806D440 - .align 2, 0 -_0806D430: .4byte gUnknown_3005AEC -_0806D434: .4byte 0x00003226 -_0806D438: - bl sub_080D6CF8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_0806D440: - cmp r6, #0 - bne _0806D446 - b _0806D556 -_0806D446: - movs r0, #0xce - lsls r0, r0, #1 - cmp r6, r0 - bne _0806D450 - b _0806D556 -_0806D450: - movs r6, #0 - adds r0, r7, #0 - movs r1, #0x20 - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r1, sp - strh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x63 - ble _0806D46E - movs r6, #1 -_0806D46E: - cmp r0, #0xc7 - ble _0806D478 - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_0806D478: - cmp r5, #5 - bne _0806D488 - bl Random - movs r1, #1 - ands r1, r0 - cmp r1, #0 - bne _0806D556 -_0806D488: - cmp r5, #3 - bne _0806D4B4 - ldr r0, _0806D560 - ldr r0, [r0] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _0806D556 - ldr r1, _0806D564 - ldr r0, _0806D568 - ldrh r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r1 - ldrb r1, [r0, #1] - adds r0, r1, #0 - subs r0, #0x1f - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _0806D4B4 - cmp r1, #0x26 - bne _0806D556 -_0806D4B4: - ldr r1, _0806D56C - lsls r0, r5, #1 - adds r0, r0, r5 - adds r0, r6, r0 - adds r0, r0, r1 - ldrb r2, [r0] - movs r1, #0 - ldrsb r1, [r0, r1] - cmp r1, #0 - ble _0806D4DA - cmp r4, #0x1b - bne _0806D4DA - movs r0, #0x96 - muls r0, r1, r0 - movs r1, #0x64 - bl __divsi3 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 -_0806D4DA: - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - adds r0, r0, r2 - mov r1, sp - strh r0, [r1] - cmp r2, #0 - ble _0806D52C - adds r0, r7, #0 - movs r1, #0x26 - movs r2, #0 - bl GetMonData - cmp r0, #0xb - bne _0806D508 - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - adds r0, #1 - mov r1, sp - strh r0, [r1] -_0806D508: - adds r0, r7, #0 - movs r1, #0x23 - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - bl GetCurrentRegionMapSectionId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - bne _0806D52C - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - adds r0, #1 - mov r1, sp - strh r0, [r1] -_0806D52C: - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bge _0806D53C - movs r1, #0 - mov r0, sp - strh r1, [r0] -_0806D53C: - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0xff - ble _0806D54C - movs r1, #0xff - mov r0, sp - strh r1, [r0] -_0806D54C: - adds r0, r7, #0 - movs r1, #0x20 - mov r2, sp - bl SetMonData -_0806D556: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0806D560: .4byte gUnknown_2022C90 -_0806D564: .4byte gUnknown_82E383C -_0806D568: .4byte gUnknown_203886A -_0806D56C: .4byte gUnknown_82FA85A - thumb_func_end AdjustFriendship - - thumb_func_start MonGainEVs -MonGainEVs: @ 0x0806D570 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - mov r8, r0 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - movs r4, #0 - movs r7, #0 - movs r6, #0 -_0806D584: - adds r1, r6, #0 - adds r1, #0x1a - mov r0, r8 - movs r2, #0 - bl GetMonData - mov r2, sp - adds r1, r2, r6 - strb r0, [r1] - ldrb r0, [r1] - adds r0, r7, r0 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - adds r6, #1 - cmp r6, #5 - ble _0806D584 - movs r6, #0 - b _0806D706 -_0806D5A8: - mov r0, r8 - movs r1, #0 - bl CheckPartyHasHadPokerus - lsls r0, r0, #0x18 - movs r2, #1 - cmp r0, #0 - beq _0806D5BA - movs r2, #2 -_0806D5BA: - cmp r6, #5 - bhi _0806D65C - lsls r0, r6, #2 - ldr r1, _0806D5C8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806D5C8: .4byte _0806D5CC -_0806D5CC: @ jump table - .4byte _0806D5E4 @ case 0 - .4byte _0806D5F8 @ case 1 - .4byte _0806D60C @ case 2 - .4byte _0806D620 @ case 3 - .4byte _0806D634 @ case 4 - .4byte _0806D648 @ case 5 -_0806D5E4: - ldr r0, _0806D5F4 - lsls r1, r5, #3 - subs r1, r1, r5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #0xa] - lsls r0, r0, #0x1e - b _0806D656 - .align 2, 0 -_0806D5F4: .4byte gUnknown_82F0D54 -_0806D5F8: - ldr r0, _0806D608 - lsls r1, r5, #3 - subs r1, r1, r5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #0xa] - b _0806D654 - .align 2, 0 -_0806D608: .4byte gUnknown_82F0D54 -_0806D60C: - ldr r0, _0806D61C - lsls r1, r5, #3 - subs r1, r1, r5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #0xa] - lsls r0, r0, #0x1a - b _0806D656 - .align 2, 0 -_0806D61C: .4byte gUnknown_82F0D54 -_0806D620: - ldr r0, _0806D630 - lsls r1, r5, #3 - subs r1, r1, r5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #0xa] - lsrs r0, r0, #6 - b _0806D658 - .align 2, 0 -_0806D630: .4byte gUnknown_82F0D54 -_0806D634: - ldr r0, _0806D644 - lsls r1, r5, #3 - subs r1, r1, r5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #0xb] - lsls r0, r0, #0x1e - b _0806D656 - .align 2, 0 -_0806D644: .4byte gUnknown_82F0D54 -_0806D648: - ldr r0, _0806D684 - lsls r1, r5, #3 - subs r1, r1, r5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #0xb] -_0806D654: - lsls r0, r0, #0x1c -_0806D656: - lsrs r0, r0, #0x1e -_0806D658: - adds r4, r0, #0 - muls r4, r2, r4 -_0806D65C: - mov r0, r8 - movs r1, #0xc - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xaf - bne _0806D6A8 - ldr r0, _0806D688 - ldr r1, _0806D68C - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806D694 - ldr r0, _0806D690 - ldrb r0, [r0, #7] - b _0806D6B0 - .align 2, 0 -_0806D684: .4byte gUnknown_82F0D54 -_0806D688: .4byte gUnknown_3002360 -_0806D68C: .4byte 0x00000439 -_0806D690: .4byte gUnknown_20240A8 -_0806D694: - ldr r0, _0806D6A0 - ldr r0, [r0] - ldr r2, _0806D6A4 - adds r0, r0, r2 - ldrb r0, [r0] - b _0806D6B0 - .align 2, 0 -_0806D6A0: .4byte gUnknown_3005AEC -_0806D6A4: .4byte 0x00003226 -_0806D6A8: - bl sub_080D6CF8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_0806D6B0: - cmp r0, #0x18 - bne _0806D6B8 - lsls r0, r4, #0x11 - lsrs r4, r0, #0x10 -_0806D6B8: - lsls r0, r4, #0x10 - asrs r2, r0, #0x10 - adds r1, r7, r2 - movs r0, #0xff - lsls r0, r0, #1 - cmp r1, r0 - ble _0806D6D0 - adds r0, r2, r0 - adds r1, r7, r4 - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_0806D6D0: - mov r0, sp - adds r2, r0, r6 - ldrb r3, [r2] - lsls r0, r4, #0x10 - asrs r1, r0, #0x10 - adds r0, r3, r1 - cmp r0, #0xff - ble _0806D6EC - adds r0, r1, #0 - adds r0, #0xff - adds r1, r3, r4 - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_0806D6EC: - adds r0, r3, r4 - strb r0, [r2] - adds r0, r7, r4 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - adds r1, r6, #0 - adds r1, #0x1a - mov r0, r8 - bl SetMonData - adds r6, #1 - cmp r6, #5 - bgt _0806D70E -_0806D706: - ldr r0, _0806D71C - cmp r7, r0 - bhi _0806D70E - b _0806D5A8 -_0806D70E: - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0806D71C: .4byte 0x000001FD - thumb_func_end MonGainEVs - - thumb_func_start GetMonEVCount -GetMonEVCount: @ 0x0806D720 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r5, #0 - movs r4, #0 -_0806D728: - adds r1, r4, #0 - adds r1, #0x1a - adds r0, r6, #0 - movs r2, #0 - bl GetMonData - adds r0, r5, r0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r4, #1 - cmp r4, #5 - ble _0806D728 - adds r0, r5, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end GetMonEVCount - - thumb_func_start RandomlyGivePartyPokerus -RandomlyGivePartyPokerus: @ 0x0806D748 - push {r4, r5, r6, lr} - sub sp, #4 - adds r6, r0, #0 - bl Random - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - movs r0, #0x80 - lsls r0, r0, #7 - cmp r5, r0 - beq _0806D76E - movs r0, #0x80 - lsls r0, r0, #8 - cmp r5, r0 - beq _0806D76E - movs r0, #0xc0 - lsls r0, r0, #8 - cmp r5, r0 - bne _0806D804 -_0806D76E: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #6 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - movs r0, #0x64 - muls r0, r5, r0 - adds r4, r6, r0 - adds r0, r4, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - cmp r0, #0 - beq _0806D76E - adds r0, r4, #0 - movs r1, #0x2d - movs r2, #0 - bl GetMonData - cmp r0, #0 - bne _0806D76E - ldr r1, _0806D80C - lsls r0, r5, #2 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r6, #0 - bl CheckPartyHasHadPokerus - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806D804 - movs r4, #7 -_0806D7B8: - bl Random - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, sp - strb r0, [r1] - adds r2, r0, #0 - adds r1, r2, #0 - ands r1, r4 - cmp r1, #0 - beq _0806D7B8 - movs r0, #0xf0 - ands r0, r2 - cmp r0, #0 - beq _0806D7DA - mov r0, sp - strb r1, [r0] -_0806D7DA: - mov r0, sp - ldrb r0, [r0] - lsls r1, r0, #4 - orrs r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, sp - strb r0, [r1] - movs r1, #0xf3 - ands r1, r0 - mov r0, sp - strb r1, [r0] - adds r1, #1 - strb r1, [r0] - movs r0, #0x64 - muls r0, r5, r0 - adds r0, r6, r0 - movs r1, #0x22 - mov r2, sp - bl SetMonData -_0806D804: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0806D80C: .4byte gUnknown_82FACB4 - thumb_func_end RandomlyGivePartyPokerus - - thumb_func_start CheckPartyPokerus -CheckPartyPokerus: @ 0x0806D810 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r7, r0, #0 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - movs r3, #0 - movs r6, #1 - movs r5, #0 - cmp r4, #0 - beq _0806D858 -_0806D824: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _0806D84C - movs r0, #0x64 - muls r0, r3, r0 - adds r0, r7, r0 - movs r1, #0x22 - movs r2, #0 - str r3, [sp] - bl GetMonData - movs r1, #0xf - ands r1, r0 - ldr r3, [sp] - cmp r1, #0 - beq _0806D84C - orrs r5, r6 - lsls r0, r5, #0x18 - lsrs r5, r0, #0x18 -_0806D84C: - adds r3, #1 - lsls r6, r6, #1 - lsrs r4, r4, #1 - cmp r4, #0 - bne _0806D824 - b _0806D86C -_0806D858: - adds r0, r7, #0 - movs r1, #0x22 - movs r2, #0 - bl GetMonData - movs r1, #0xf - ands r1, r0 - cmp r1, #0 - beq _0806D86C - movs r5, #1 -_0806D86C: - adds r0, r5, #0 - add sp, #4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CheckPartyPokerus - - thumb_func_start CheckPartyHasHadPokerus -CheckPartyHasHadPokerus: @ 0x0806D878 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r7, r0, #0 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - movs r3, #0 - movs r6, #1 - movs r5, #0 - cmp r4, #0 - beq _0806D8BC -_0806D88C: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _0806D8B0 - movs r0, #0x64 - muls r0, r3, r0 - adds r0, r7, r0 - movs r1, #0x22 - movs r2, #0 - str r3, [sp] - bl GetMonData - ldr r3, [sp] - cmp r0, #0 - beq _0806D8B0 - orrs r5, r6 - lsls r0, r5, #0x18 - lsrs r5, r0, #0x18 -_0806D8B0: - adds r3, #1 - lsls r6, r6, #1 - lsrs r4, r4, #1 - cmp r4, #0 - bne _0806D88C - b _0806D8CC -_0806D8BC: - adds r0, r7, #0 - movs r1, #0x22 - movs r2, #0 - bl GetMonData - cmp r0, #0 - beq _0806D8CC - movs r5, #1 -_0806D8CC: - adds r0, r5, #0 - add sp, #4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CheckPartyHasHadPokerus - - thumb_func_start UpdatePartyPokerusTime -UpdatePartyPokerusTime: @ 0x0806D8D8 - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - movs r6, #0 - mov r5, sp -_0806D8E4: - movs r0, #0x64 - adds r1, r6, #0 - muls r1, r0, r1 - ldr r0, _0806D924 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - cmp r0, #0 - beq _0806D946 - adds r0, r4, #0 - movs r1, #0x22 - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strb r0, [r5] - movs r1, #0xf - adds r2, r0, #0 - ands r1, r2 - cmp r1, #0 - beq _0806D946 - cmp r1, r7 - blo _0806D91E - cmp r7, #4 - bls _0806D928 -_0806D91E: - movs r0, #0xf0 - ands r0, r2 - b _0806D92A - .align 2, 0 -_0806D924: .4byte gUnknown_2024190 -_0806D928: - subs r0, r2, r7 -_0806D92A: - strb r0, [r5] - ldrb r0, [r5] - cmp r0, #0 - bne _0806D936 - movs r0, #0x10 - strb r0, [r5] -_0806D936: - movs r0, #0x64 - muls r0, r6, r0 - ldr r1, _0806D954 - adds r0, r0, r1 - movs r1, #0x22 - mov r2, sp - bl SetMonData -_0806D946: - adds r6, #1 - cmp r6, #5 - ble _0806D8E4 - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0806D954: .4byte gUnknown_2024190 - thumb_func_end UpdatePartyPokerusTime - - thumb_func_start PartySpreadPokerus -PartySpreadPokerus: @ 0x0806D958 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r7, r0, #0 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0806D9FE - movs r5, #0 -_0806D974: - movs r0, #0x64 - adds r6, r5, #0 - muls r6, r0, r6 - adds r4, r7, r6 - adds r0, r4, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - cmp r0, #0 - beq _0806D9F8 - adds r0, r4, #0 - movs r1, #0x22 - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - mov r0, sp - strb r1, [r0] - cmp r1, #0 - beq _0806D9F8 - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - beq _0806D9F8 - cmp r5, #0 - beq _0806D9CE - adds r0, r6, #0 - subs r0, #0x64 - adds r4, r7, r0 - adds r0, r4, #0 - movs r1, #0x22 - movs r2, #0 - bl GetMonData - movs r1, #0xf0 - ands r1, r0 - cmp r1, #0 - bne _0806D9CE - adds r0, r4, #0 - movs r1, #0x22 - mov r2, sp - bl SetMonData -_0806D9CE: - cmp r5, #5 - beq _0806D9F8 - movs r0, #0x64 - muls r0, r5, r0 - adds r0, #0x64 - adds r4, r7, r0 - adds r0, r4, #0 - movs r1, #0x22 - movs r2, #0 - bl GetMonData - movs r1, #0xf0 - ands r1, r0 - cmp r1, #0 - bne _0806D9F8 - adds r0, r4, #0 - movs r1, #0x22 - mov r2, sp - bl SetMonData - adds r5, #1 -_0806D9F8: - adds r5, #1 - cmp r5, #5 - ble _0806D974 -_0806D9FE: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PartySpreadPokerus - - thumb_func_start TryIncrementMonLevel -TryIncrementMonLevel: @ 0x0806DA08 - push {r4, r5, r6, lr} - sub sp, #8 - adds r5, r0, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - movs r1, #0x38 - movs r2, #0 - bl GetMonData - adds r0, #1 - mov r1, sp - strb r0, [r1] - adds r0, r5, #0 - movs r1, #0x19 - movs r2, #0 - bl GetMonData - str r0, [sp, #4] - ldr r6, _0806DA84 - ldr r2, _0806DA88 - lsls r1, r4, #3 - subs r1, r1, r4 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r2, [r1, #0x13] - movs r1, #0xca - lsls r1, r1, #1 - adds r4, r2, #0 - muls r4, r1, r4 - movs r2, #0xc8 - lsls r2, r2, #1 - adds r1, r6, r2 - adds r1, r4, r1 - ldr r1, [r1] - cmp r0, r1 - bls _0806DA68 - str r1, [sp, #4] - add r2, sp, #4 - adds r0, r5, #0 - movs r1, #0x19 - bl SetMonData -_0806DA68: - mov r0, sp - ldrb r0, [r0] - cmp r0, #0x64 - bhi _0806DA7E - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, r0, r6 - ldr r1, [sp, #4] - ldr r0, [r0] - cmp r1, r0 - bhs _0806DA8C -_0806DA7E: - movs r0, #0 - b _0806DA98 - .align 2, 0 -_0806DA84: .4byte gUnknown_82F00B4 -_0806DA88: .4byte gUnknown_82F0D54 -_0806DA8C: - adds r0, r5, #0 - movs r1, #0x38 - mov r2, sp - bl SetMonData - movs r0, #1 -_0806DA98: - add sp, #8 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end TryIncrementMonLevel - - thumb_func_start CanMonLearnTMHM -CanMonLearnTMHM: @ 0x0806DAA0 - push {r4, r5, lr} - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - adds r5, r4, #0 - movs r1, #0x41 - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - adds r3, r1, #0 - movs r0, #0xce - lsls r0, r0, #1 - cmp r1, r0 - bne _0806DAC2 - movs r0, #0 - b _0806DAEE -_0806DAC2: - cmp r4, #0x1f - bls _0806DAE0 - adds r0, r4, #0 - subs r0, #0x20 - movs r2, #1 - lsls r2, r0 - ldr r0, _0806DADC - lsls r1, r1, #3 - adds r0, #4 - adds r1, r1, r0 - ldr r0, [r1] - ands r0, r2 - b _0806DAEE - .align 2, 0 -_0806DADC: .4byte gUnknown_82EF220 -_0806DAE0: - movs r1, #1 - lsls r1, r5 - ldr r2, _0806DAF4 - lsls r0, r3, #3 - adds r0, r0, r2 - ldr r0, [r0] - ands r0, r1 -_0806DAEE: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0806DAF4: .4byte gUnknown_82EF220 - thumb_func_end CanMonLearnTMHM - - thumb_func_start CanSpeciesLearnTMHM -CanSpeciesLearnTMHM: @ 0x0806DAF8 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - adds r4, r3, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r2, r1, #0 - movs r0, #0xce - lsls r0, r0, #1 - cmp r3, r0 - bne _0806DB12 - movs r0, #0 - b _0806DB3E -_0806DB12: - cmp r1, #0x1f - bls _0806DB30 - adds r0, r1, #0 - subs r0, #0x20 - movs r2, #1 - lsls r2, r0 - ldr r0, _0806DB2C - lsls r1, r3, #3 - adds r0, #4 - adds r1, r1, r0 - ldr r0, [r1] - ands r0, r2 - b _0806DB3E - .align 2, 0 -_0806DB2C: .4byte gUnknown_82EF220 -_0806DB30: - movs r1, #1 - lsls r1, r2 - ldr r2, _0806DB44 - lsls r0, r4, #3 - adds r0, r0, r2 - ldr r0, [r0] - ands r0, r1 -_0806DB3E: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806DB44: .4byte gUnknown_82EF220 - thumb_func_end CanSpeciesLearnTMHM - - thumb_func_start GetMoveRelearnerMoves -GetMoveRelearnerMoves: @ 0x0806DB48 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - adds r6, r0, #0 - str r1, [sp, #8] - movs r0, #0 - mov sl, r0 - adds r0, r6, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - adds r0, r6, #0 - movs r1, #0x38 - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0xc] - movs r5, #0 - mov r4, sp -_0806DB7E: - adds r1, r5, #0 - adds r1, #0xd - adds r0, r6, #0 - movs r2, #0 - bl GetMonData - strh r0, [r4] - adds r4, #2 - adds r5, #1 - cmp r5, #3 - ble _0806DB7E - movs r5, #0 - ldr r6, _0806DC8C - lsls r1, r7, #2 - adds r2, r1, r6 - ldr r3, [r2] - ldrh r0, [r3] - ldr r4, _0806DC90 - str r1, [sp, #0x14] - cmp r0, r4 - beq _0806DC78 - mov sb, r2 - str r3, [sp, #0x10] -_0806DBAC: - lsls r2, r5, #1 - ldr r1, [sp, #0x10] - adds r0, r2, r1 - ldrh r3, [r0] - movs r0, #0xfe - lsls r0, r0, #8 - ands r0, r3 - ldr r4, [sp, #0xc] - lsls r1, r4, #9 - adds r7, r2, #0 - adds r5, #1 - mov ip, r5 - cmp r0, r1 - bgt _0806DC62 - movs r4, #0 - mov r0, sp - ldrh r1, [r0] - ldr r0, _0806DC94 - ands r0, r3 - cmp r1, r0 - beq _0806DBFC - ldr r0, [sp, #0x14] - ldr r1, _0806DC8C - adds r6, r0, r1 - ldr r2, _0806DC94 - mov r8, r2 - mov r3, sp - adds r5, r7, #0 -_0806DBE4: - adds r3, #2 - adds r4, #1 - cmp r4, #3 - bgt _0806DBFC - ldr r0, [r6] - adds r0, r5, r0 - ldrh r1, [r0] - ldrh r2, [r3] - mov r0, r8 - ands r0, r1 - cmp r2, r0 - bne _0806DBE4 -_0806DBFC: - cmp r4, #4 - bne _0806DC62 - movs r4, #0 - cmp r4, sl - bge _0806DC40 - mov r1, sb - ldr r0, [r1] - adds r0, r7, r0 - ldrh r1, [r0] - ldr r0, [sp, #8] - ldrh r2, [r0] - ldr r0, _0806DC94 - ands r0, r1 - cmp r2, r0 - beq _0806DC40 - ldr r1, [sp, #0x14] - ldr r2, _0806DC8C - adds r6, r1, r2 - ldr r0, _0806DC94 - mov r8, r0 - ldr r3, [sp, #8] - adds r5, r7, #0 -_0806DC28: - adds r3, #2 - adds r4, #1 - cmp r4, sl - bge _0806DC40 - ldr r0, [r6] - adds r0, r5, r0 - ldrh r1, [r0] - ldrh r2, [r3] - mov r0, r8 - ands r0, r1 - cmp r2, r0 - bne _0806DC28 -_0806DC40: - cmp r4, sl - bne _0806DC62 - mov r0, sl - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - lsls r2, r4, #1 - ldr r1, [sp, #8] - adds r2, r2, r1 - mov r4, sb - ldr r0, [r4] - adds r0, r7, r0 - ldrh r1, [r0] - ldr r0, _0806DC94 - ands r0, r1 - strh r0, [r2] -_0806DC62: - mov r5, ip - cmp r5, #0x13 - bgt _0806DC78 - mov r1, sb - ldr r0, [r1] - lsls r1, r5, #1 - adds r1, r1, r0 - ldrh r0, [r1] - ldr r2, _0806DC90 - cmp r0, r2 - bne _0806DBAC -_0806DC78: - mov r0, sl - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0806DC8C: .4byte gUnknown_82F9D04 -_0806DC90: .4byte 0x0000FFFF -_0806DC94: .4byte 0x000001FF - thumb_func_end GetMoveRelearnerMoves - - thumb_func_start GetLevelUpMovesBySpecies -GetLevelUpMovesBySpecies: @ 0x0806DC98 - push {r4, r5, r6, r7, lr} - adds r6, r1, #0 - lsls r0, r0, #0x10 - movs r5, #0 - movs r4, #0 - ldr r1, _0806DCE4 - lsrs r0, r0, #0xe - adds r0, r0, r1 - ldr r2, [r0] - ldrh r0, [r2] - ldr r1, _0806DCE8 - cmp r0, r1 - beq _0806DCDC - ldr r0, _0806DCEC - mov ip, r0 - adds r7, r1, #0 - adds r3, r2, #0 -_0806DCBA: - adds r1, r5, #0 - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #1 - adds r1, r1, r6 - ldrh r2, [r3] - mov r0, ip - ands r0, r2 - strh r0, [r1] - adds r3, #2 - adds r4, #1 - cmp r4, #0x13 - bgt _0806DCDC - ldrh r0, [r3] - cmp r0, r7 - bne _0806DCBA -_0806DCDC: - adds r0, r5, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0806DCE4: .4byte gUnknown_82F9D04 -_0806DCE8: .4byte 0x0000FFFF -_0806DCEC: .4byte 0x000001FF - thumb_func_end GetLevelUpMovesBySpecies - - thumb_func_start GetNumberOfRelearnableMoves -GetNumberOfRelearnableMoves: @ 0x0806DCF0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x3c - adds r6, r0, #0 - movs r0, #0 - mov sl, r0 - adds r0, r6, #0 - movs r1, #0x41 - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r6, #0 - movs r1, #0x38 - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x30] - movs r0, #0xce - lsls r0, r0, #1 - cmp r4, r0 - bne _0806DD2C - movs r0, #0 - b _0806DE36 -_0806DD2C: - movs r5, #0 - lsls r4, r4, #2 - str r4, [sp, #0x38] - mov r4, sp -_0806DD34: - adds r1, r5, #0 - adds r1, #0xd - adds r0, r6, #0 - movs r2, #0 - bl GetMonData - strh r0, [r4] - adds r4, #2 - adds r5, #1 - cmp r5, #3 - ble _0806DD34 - movs r5, #0 - ldr r3, _0806DE48 - ldr r2, [sp, #0x38] - adds r1, r2, r3 - ldr r0, [r1] - ldrh r0, [r0] - ldr r2, _0806DE4C - cmp r0, r2 - beq _0806DE34 - mov sb, r1 - mov r4, sp - adds r4, #8 - str r4, [sp, #0x34] -_0806DD64: - mov r1, sb - ldr r0, [r1] - lsls r2, r5, #1 - adds r0, r2, r0 - ldrh r3, [r0] - movs r0, #0xfe - lsls r0, r0, #8 - ands r0, r3 - ldr r4, [sp, #0x30] - lsls r1, r4, #9 - adds r7, r2, #0 - adds r5, #1 - mov ip, r5 - cmp r0, r1 - bgt _0806DE1E - movs r4, #0 - mov r0, sp - ldrh r1, [r0] - ldr r0, _0806DE50 - ands r0, r3 - cmp r1, r0 - beq _0806DDB6 - ldr r0, [sp, #0x38] - ldr r1, _0806DE48 - adds r6, r0, r1 - ldr r2, _0806DE50 - mov r8, r2 - mov r3, sp - adds r5, r7, #0 -_0806DD9E: - adds r3, #2 - adds r4, #1 - cmp r4, #3 - bgt _0806DDB6 - ldr r0, [r6] - adds r0, r5, r0 - ldrh r1, [r0] - ldrh r2, [r3] - mov r0, r8 - ands r0, r1 - cmp r2, r0 - bne _0806DD9E -_0806DDB6: - cmp r4, #4 - bne _0806DE1E - movs r4, #0 - cmp r4, sl - bge _0806DDFC - mov r1, sb - ldr r0, [r1] - adds r0, r7, r0 - ldrh r1, [r0] - ldr r0, [sp, #0x34] - ldrh r2, [r0] - ldr r0, _0806DE50 - ands r0, r1 - add r1, sp, #8 - cmp r2, r0 - beq _0806DDFC - ldr r2, [sp, #0x38] - ldr r0, _0806DE48 - adds r6, r2, r0 - ldr r2, _0806DE50 - mov r8, r2 - adds r3, r1, #0 - adds r5, r7, #0 -_0806DDE4: - adds r3, #2 - adds r4, #1 - cmp r4, sl - bge _0806DDFC - ldr r0, [r6] - adds r0, r5, r0 - ldrh r1, [r0] - ldrh r2, [r3] - mov r0, r8 - ands r0, r1 - cmp r2, r0 - bne _0806DDE4 -_0806DDFC: - cmp r4, sl - bne _0806DE1E - mov r0, sl - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - lsls r2, r4, #1 - ldr r4, [sp, #0x34] - adds r2, r4, r2 - mov r1, sb - ldr r0, [r1] - adds r0, r7, r0 - ldrh r1, [r0] - ldr r0, _0806DE50 - ands r0, r1 - strh r0, [r2] -_0806DE1E: - mov r5, ip - cmp r5, #0x13 - bgt _0806DE34 - mov r2, sb - ldr r0, [r2] - lsls r1, r5, #1 - adds r1, r1, r0 - ldrh r0, [r1] - ldr r4, _0806DE4C - cmp r0, r4 - bne _0806DD64 -_0806DE34: - mov r0, sl -_0806DE36: - add sp, #0x3c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0806DE48: .4byte gUnknown_82F9D04 -_0806DE4C: .4byte 0x0000FFFF -_0806DE50: .4byte 0x000001FF - thumb_func_end GetNumberOfRelearnableMoves - - thumb_func_start SpeciesToPokedexNum -SpeciesToPokedexNum: @ 0x0806DE54 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - bl IsNationalPokedexEnabled - cmp r0, #0 - beq _0806DE6E - adds r0, r4, #0 - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b _0806DE86 -_0806DE6E: - adds r0, r4, #0 - bl sub_0806CF8C - adds r4, r0, #0 - cmp r4, #0xca - bls _0806DE84 - ldr r0, _0806DE80 - b _0806DE86 - .align 2, 0 -_0806DE80: .4byte 0x0000FFFF -_0806DE84: - adds r0, r4, #0 -_0806DE86: - pop {r4} - pop {r1} - bx r1 - thumb_func_end SpeciesToPokedexNum - - thumb_func_start MainMenu_FormatSavegameText -MainMenu_FormatSavegameText: @ 0x0806DE8C - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_0806CF8C - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xca - bhi _0806DEA2 - movs r0, #1 - b _0806DEA4 -_0806DEA2: - movs r0, #0 -_0806DEA4: - pop {r1} - bx r1 - thumb_func_end MainMenu_FormatSavegameText - - thumb_func_start ClearBattleMonForms -ClearBattleMonForms: @ 0x0806DEA8 - push {lr} - ldr r1, _0806DEBC - movs r2, #0 - adds r0, r1, #3 -_0806DEB0: - strb r2, [r0] - subs r0, #1 - cmp r0, r1 - bge _0806DEB0 - pop {r0} - bx r0 - .align 2, 0 -_0806DEBC: .4byte gUnknown_2024188 - thumb_func_end ClearBattleMonForms - - thumb_func_start GetBattleBGM -GetBattleBGM: @ 0x0806DEC0 - push {lr} - ldr r0, _0806DED8 - ldr r1, [r0] - movs r0, #0x80 - lsls r0, r0, #5 - ands r0, r1 - cmp r0, #0 - beq _0806DEDC - movs r0, #0xf0 - lsls r0, r0, #1 - b _0806E0D2 - .align 2, 0 -_0806DED8: .4byte gUnknown_2022C90 -_0806DEDC: - movs r0, #0x80 - lsls r0, r0, #7 - ands r0, r1 - cmp r0, #0 - beq _0806DEF0 - ldr r0, _0806DEEC - b _0806E0D2 - .align 2, 0 -_0806DEEC: .4byte 0x000001DF -_0806DEF0: - ldr r0, _0806DF1C - ands r0, r1 - cmp r0, #0 - beq _0806DEFA - b _0806E0C8 -_0806DEFA: - movs r0, #8 - ands r0, r1 - cmp r0, #0 - bne _0806DF04 - b _0806E0CE -_0806DF04: - ldr r0, _0806DF20 - ands r0, r1 - cmp r0, #0 - beq _0806DF28 - ldr r0, _0806DF24 - ldrh r0, [r0] - bl GetFrontierOpponentClass - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0806DF42 - .align 2, 0 -_0806DF1C: .4byte gUnknown_2000002 -_0806DF20: .4byte 0x003F0100 -_0806DF24: .4byte gUnknown_203886A -_0806DF28: - movs r0, #0x80 - lsls r0, r0, #0x13 - ands r1, r0 - cmp r1, #0 - beq _0806DF36 - movs r0, #0xa - b _0806DF42 -_0806DF36: - ldr r1, _0806DF54 - ldr r0, _0806DF58 - ldrh r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r1 - ldrb r0, [r0, #1] -_0806DF42: - subs r0, #3 - cmp r0, #0x3d - bls _0806DF4A - b _0806E0C8 -_0806DF4A: - lsls r0, r0, #2 - ldr r1, _0806DF5C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806DF54: .4byte gUnknown_82E383C -_0806DF58: .4byte gUnknown_203886A -_0806DF5C: .4byte _0806DF60 -_0806DF60: @ jump table - .4byte _0806E060 @ case 0 - .4byte _0806E0C8 @ case 1 - .4byte _0806E0C8 @ case 2 - .4byte _0806E0C8 @ case 3 - .4byte _0806E0C8 @ case 4 - .4byte _0806E0C8 @ case 5 - .4byte _0806E060 @ case 6 - .4byte _0806E0C8 @ case 7 - .4byte _0806E060 @ case 8 - .4byte _0806E0C8 @ case 9 - .4byte _0806E058 @ case 10 - .4byte _0806E0C8 @ case 11 - .4byte _0806E0C8 @ case 12 - .4byte _0806E0C8 @ case 13 - .4byte _0806E0C8 @ case 14 - .4byte _0806E0C8 @ case 15 - .4byte _0806E0C8 @ case 16 - .4byte _0806E0C8 @ case 17 - .4byte _0806E0C8 @ case 18 - .4byte _0806E0C8 @ case 19 - .4byte _0806E0C8 @ case 20 - .4byte _0806E0C8 @ case 21 - .4byte _0806E0C8 @ case 22 - .4byte _0806E0C8 @ case 23 - .4byte _0806E0C8 @ case 24 - .4byte _0806E0C8 @ case 25 - .4byte _0806E0C8 @ case 26 - .4byte _0806E0C8 @ case 27 - .4byte _0806E0B8 @ case 28 - .4byte _0806E068 @ case 29 - .4byte _0806E0C8 @ case 30 - .4byte _0806E0C8 @ case 31 - .4byte _0806E0C8 @ case 32 - .4byte _0806E0C8 @ case 33 - .4byte _0806E0C8 @ case 34 - .4byte _0806E070 @ case 35 - .4byte _0806E0C8 @ case 36 - .4byte _0806E0C8 @ case 37 - .4byte _0806E0C8 @ case 38 - .4byte _0806E0C8 @ case 39 - .4byte _0806E0C8 @ case 40 - .4byte _0806E0C8 @ case 41 - .4byte _0806E0C8 @ case 42 - .4byte _0806E0C8 @ case 43 - .4byte _0806E0C8 @ case 44 - .4byte _0806E0C8 @ case 45 - .4byte _0806E060 @ case 46 - .4byte _0806E076 @ case 47 - .4byte _0806E0C8 @ case 48 - .4byte _0806E0C8 @ case 49 - .4byte _0806E058 @ case 50 - .4byte _0806E0C8 @ case 51 - .4byte _0806E0C8 @ case 52 - .4byte _0806E0C8 @ case 53 - .4byte _0806E0C8 @ case 54 - .4byte _0806E0BE @ case 55 - .4byte _0806E0BE @ case 56 - .4byte _0806E0BE @ case 57 - .4byte _0806E0BE @ case 58 - .4byte _0806E0BE @ case 59 - .4byte _0806E0BE @ case 60 - .4byte _0806E0BE @ case 61 -_0806E058: - ldr r0, _0806E05C - b _0806E0D2 - .align 2, 0 -_0806E05C: .4byte 0x000001E3 -_0806E060: - ldr r0, _0806E064 - b _0806E0D2 - .align 2, 0 -_0806E064: .4byte 0x000001DB -_0806E068: - ldr r0, _0806E06C - b _0806E0D2 - .align 2, 0 -_0806E06C: .4byte 0x000001DD -_0806E070: - movs r0, #0xef - lsls r0, r0, #1 - b _0806E0D2 -_0806E076: - ldr r0, _0806E088 - ldr r0, [r0] - ldr r1, _0806E08C - ands r0, r1 - cmp r0, #0 - beq _0806E094 -_0806E082: - ldr r0, _0806E090 - b _0806E0D2 - .align 2, 0 -_0806E088: .4byte gUnknown_2022C90 -_0806E08C: .4byte 0x003F0100 -_0806E090: .4byte 0x000001E1 -_0806E094: - ldr r0, _0806E0AC - ldrh r0, [r0] - lsls r0, r0, #5 - ldr r1, _0806E0B0 - adds r0, r0, r1 - ldr r1, _0806E0B4 - bl StringCompare - cmp r0, #0 - beq _0806E0C8 - b _0806E082 - .align 2, 0 -_0806E0AC: .4byte gUnknown_203886A -_0806E0B0: .4byte gUnknown_82E3840 -_0806E0B4: .4byte gUnknown_85ABC7E -_0806E0B8: - movs r0, #0xf1 - lsls r0, r0, #1 - b _0806E0D2 -_0806E0BE: - ldr r0, _0806E0C4 - b _0806E0D2 - .align 2, 0 -_0806E0C4: .4byte 0x000001D7 -_0806E0C8: - movs r0, #0xee - lsls r0, r0, #1 - b _0806E0D2 -_0806E0CE: - movs r0, #0xed - lsls r0, r0, #1 -_0806E0D2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetBattleBGM - - thumb_func_start sub_0806E0D8 -sub_0806E0D8: @ 0x0806E0D8 - push {lr} - bl ResetMapMusic - bl m4aMPlayAllStop - bl GetBattleBGM - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl PlayBGM - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0806E0D8 - - thumb_func_start PlayMapChosenOrBattleBGM -PlayMapChosenOrBattleBGM: @ 0x0806E0F4 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - bl ResetMapMusic - bl m4aMPlayAllStop - cmp r4, #0 - beq _0806E10E - adds r0, r4, #0 - bl PlayNewMapMusic - b _0806E11A -_0806E10E: - bl GetBattleBGM - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl PlayNewMapMusic -_0806E11A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end PlayMapChosenOrBattleBGM - - thumb_func_start sub_0806E120 -sub_0806E120: @ 0x0806E120 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - bl ResetMapMusic - bl m4aMPlayAllStop - ldr r0, _0806E150 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0806E154 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806E150: .4byte sub_0806E158 -_0806E154: .4byte gUnknown_3005B60 - thumb_func_end sub_0806E120 - - thumb_func_start sub_0806E158 -sub_0806E158: @ 0x0806E158 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _0806E178 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r1, r0, r1 - movs r2, #8 - ldrsh r0, [r1, r2] - cmp r0, #0 - beq _0806E17C - ldrh r0, [r1, #8] - bl PlayNewMapMusic - b _0806E188 - .align 2, 0 -_0806E178: .4byte gUnknown_3005B60 -_0806E17C: - bl GetBattleBGM - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl PlayNewMapMusic -_0806E188: - adds r0, r4, #0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0806E158 - - thumb_func_start sub_0806E194 -sub_0806E194: @ 0x0806E194 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r1, #0x41 - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - movs r1, #1 - movs r2, #0 - bl GetMonData - adds r6, r0, #0 - adds r0, r5, #0 - movs r1, #0 - movs r2, #0 - bl GetMonData - adds r2, r0, #0 - adds r0, r4, #0 - adds r1, r6, #0 - bl GetMonSpritePalFromSpeciesAndPersonality - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_0806E194 - - thumb_func_start GetMonSpritePalFromSpeciesAndPersonality -GetMonSpritePalFromSpeciesAndPersonality: @ 0x0806E1CC - push {r4, r5, lr} - adds r3, r2, #0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r5, r4, #0 - movs r0, #0xce - lsls r0, r0, #1 - cmp r4, r0 - bls _0806E1E8 - ldr r0, _0806E1E4 - ldr r0, [r0] - b _0806E214 - .align 2, 0 -_0806E1E4: .4byte gUnknown_82D6F08 -_0806E1E8: - lsrs r0, r1, #0x10 - ldr r2, _0806E204 - ands r1, r2 - eors r0, r1 - lsrs r1, r3, #0x10 - eors r0, r1 - ands r3, r2 - eors r0, r3 - cmp r0, #7 - bls _0806E20C - ldr r0, _0806E208 - lsls r1, r4, #3 - b _0806E210 - .align 2, 0 -_0806E204: .4byte 0x0000FFFF -_0806E208: .4byte gUnknown_82D6F08 -_0806E20C: - ldr r0, _0806E21C - lsls r1, r5, #3 -_0806E210: - adds r1, r1, r0 - ldr r0, [r1] -_0806E214: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0806E21C: .4byte gUnknown_82D7CC8 - thumb_func_end GetMonSpritePalFromSpeciesAndPersonality - - thumb_func_start sub_0806E220 -sub_0806E220: @ 0x0806E220 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r1, #0x41 - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - movs r1, #1 - movs r2, #0 - bl GetMonData - adds r6, r0, #0 - adds r0, r5, #0 - movs r1, #0 - movs r2, #0 - bl GetMonData - adds r2, r0, #0 - adds r0, r4, #0 - adds r1, r6, #0 - bl GetMonSpritePalStructFromOtIdPersonality - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_0806E220 - - thumb_func_start GetMonSpritePalStructFromOtIdPersonality -GetMonSpritePalStructFromOtIdPersonality: @ 0x0806E258 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - lsrs r0, r1, #0x10 - ldr r3, _0806E278 - ands r1, r3 - eors r0, r1 - lsrs r1, r2, #0x10 - eors r0, r1 - ands r2, r3 - eors r0, r2 - cmp r0, #7 - bls _0806E280 - lsls r0, r4, #3 - ldr r1, _0806E27C - b _0806E284 - .align 2, 0 -_0806E278: .4byte 0x0000FFFF -_0806E27C: .4byte gUnknown_82D6F08 -_0806E280: - lsls r0, r4, #3 - ldr r1, _0806E28C -_0806E284: - adds r0, r0, r1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806E28C: .4byte gUnknown_82D7CC8 - thumb_func_end GetMonSpritePalStructFromOtIdPersonality - - thumb_func_start IsHMMove2 -IsHMMove2: @ 0x0806E290 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldr r2, _0806E2B4 - ldrh r0, [r2] - ldr r1, _0806E2B8 - cmp r0, r1 - beq _0806E2C2 - adds r4, r1, #0 - adds r1, r2, #0 -_0806E2A4: - ldrh r0, [r2] - adds r1, #2 - adds r2, #2 - cmp r0, r3 - bne _0806E2BC - movs r0, #1 - b _0806E2C4 - .align 2, 0 -_0806E2B4: .4byte gUnknown_82FA876 -_0806E2B8: .4byte 0x0000FFFF -_0806E2BC: - ldrh r0, [r1] - cmp r0, r4 - bne _0806E2A4 -_0806E2C2: - movs r0, #0 -_0806E2C4: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsHMMove2 - - thumb_func_start IsMonSpriteNotFlipped -IsMonSpriteNotFlipped: @ 0x0806E2CC - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r2, _0806E2E0 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r0, [r1, #0x19] - lsrs r0, r0, #7 - bx lr - .align 2, 0 -_0806E2E0: .4byte gUnknown_82F0D54 - thumb_func_end IsMonSpriteNotFlipped - - thumb_func_start sub_0806E2E4 -sub_0806E2E4: @ 0x0806E2E4 - push {r4, lr} - lsls r4, r1, #0x18 - lsrs r4, r4, #0x18 - bl GetNature - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0806E308 - lsls r1, r0, #2 - adds r1, r1, r0 - adds r1, r1, r4 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806E308: .4byte gUnknown_8591FEC - thumb_func_end sub_0806E2E4 - - thumb_func_start sub_0806E30C -sub_0806E30C: @ 0x0806E30C - push {r4, lr} - lsls r4, r1, #0x18 - lsrs r4, r4, #0x18 - bl GetNatureFromPersonality - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0806E330 - lsls r1, r0, #2 - adds r1, r1, r0 - adds r1, r1, r4 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806E330: .4byte gUnknown_8591FEC - thumb_func_end sub_0806E30C - - thumb_func_start IsTradedMon -IsTradedMon: @ 0x0806E334 - push {r4, lr} - sub sp, #8 - adds r4, r0, #0 - movs r1, #7 - mov r2, sp - bl GetMonData - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl GetMonData - mov r1, sp - bl IsOtherTrainer - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsTradedMon - - thumb_func_start IsOtherTrainer -IsOtherTrainer: @ 0x0806E360 - push {r4, r5, lr} - adds r5, r1, #0 - ldr r1, _0806E3A4 - ldr r3, [r1] - ldrb r2, [r3, #0xa] - ldrb r1, [r3, #0xb] - lsls r1, r1, #8 - orrs r2, r1 - ldrb r1, [r3, #0xc] - lsls r1, r1, #0x10 - orrs r2, r1 - ldrb r1, [r3, #0xd] - lsls r1, r1, #0x18 - orrs r2, r1 - cmp r0, r2 - bne _0806E3A8 - movs r4, #0 - ldrb r0, [r5] - cmp r0, #0xff - beq _0806E39E - adds r2, r5, #0 -_0806E38A: - adds r1, r3, r4 - ldrb r0, [r2] - ldrb r1, [r1] - cmp r0, r1 - bne _0806E3A8 - adds r2, #1 - adds r4, #1 - ldrb r0, [r2] - cmp r0, #0xff - bne _0806E38A -_0806E39E: - movs r0, #0 - b _0806E3AA - .align 2, 0 -_0806E3A4: .4byte gUnknown_3005AF0 -_0806E3A8: - movs r0, #1 -_0806E3AA: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end IsOtherTrainer - - thumb_func_start sub_0806E3B0 -sub_0806E3B0: @ 0x0806E3B0 - push {lr} - bl BoxMonRestorePP - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0806E3B0 - - thumb_func_start BoxMonRestorePP -BoxMonRestorePP: @ 0x0806E3BC - push {r4, r5, r6, lr} - sub sp, #4 - adds r5, r0, #0 - movs r6, #0 -_0806E3C4: - adds r4, r6, #0 - adds r4, #0xd - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - bl sub_0806A1B4 - cmp r0, #0 - beq _0806E410 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - bl sub_0806A1B4 - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - movs r1, #0x15 - movs r2, #0 - bl sub_0806A1B4 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r6, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - bl CalculatePPWithBonus - mov r1, sp - strb r0, [r1] - adds r1, r6, #0 - adds r1, #0x11 - adds r0, r5, #0 - mov r2, sp - bl SetBoxMonData -_0806E410: - adds r6, #1 - cmp r6, #3 - ble _0806E3C4 - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BoxMonRestorePP - - thumb_func_start SetMonPreventsSwitchingString -SetMonPreventsSwitchingString: @ 0x0806E420 - push {r4, r5, lr} - ldr r2, _0806E464 - ldr r5, _0806E468 - ldr r1, [r5] - adds r0, r1, #0 - adds r0, #0xb0 - ldrb r0, [r0] - strb r0, [r2] - ldr r4, _0806E46C - movs r0, #0xfd - strb r0, [r4] - movs r0, #4 - strb r0, [r4, #1] - adds r1, #0x49 - ldrb r0, [r1] - strb r0, [r4, #2] - movs r0, #0xff - strb r0, [r4, #4] - ldrb r0, [r1] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806E474 - ldr r1, _0806E470 - ldr r0, [r5] - adds r0, #0x49 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - bl pokemon_order_func - b _0806E482 - .align 2, 0 -_0806E464: .4byte gUnknown_2023EAE -_0806E468: .4byte gUnknown_2024140 -_0806E46C: .4byte gUnknown_2022C0C -_0806E470: .4byte gUnknown_2023D12 -_0806E474: - ldr r1, _0806E4B8 - ldr r0, [r5] - adds r0, #0x49 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] -_0806E482: - strb r0, [r4, #3] - ldr r4, _0806E4BC - movs r0, #0xfd - strb r0, [r4] - movs r0, #4 - strb r0, [r4, #1] - ldr r1, _0806E4C0 - ldrb r0, [r1] - strb r0, [r4, #2] - ldr r2, _0806E4B8 - ldrb r0, [r1] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrb r0, [r0] - bl pokemon_order_func - strb r0, [r4, #3] - movs r0, #0xff - strb r0, [r4, #4] - ldr r0, _0806E4C4 - ldr r1, _0806E4C8 - bl BattleStringExpandPlaceholders - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0806E4B8: .4byte gUnknown_2023D12 -_0806E4BC: .4byte gUnknown_2022C1C -_0806E4C0: .4byte gUnknown_202415C -_0806E4C4: .4byte gUnknown_85AA7DF -_0806E4C8: .4byte gUnknown_2021C7C - thumb_func_end SetMonPreventsSwitchingString - - thumb_func_start GetWildMonTableIdInAlteringCave -GetWildMonTableIdInAlteringCave: @ 0x0806E4CC - push {lr} - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - movs r1, #0 - ldr r2, _0806E4E0 -_0806E4D6: - ldrh r0, [r2] - cmp r0, r3 - bne _0806E4E4 - adds r0, r1, #0 - b _0806E4EE - .align 2, 0 -_0806E4E0: .4byte gUnknown_82FA888 -_0806E4E4: - adds r2, #4 - adds r1, #1 - cmp r1, #8 - ble _0806E4D6 - movs r0, #0 -_0806E4EE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetWildMonTableIdInAlteringCave - - thumb_func_start SetWildMonHeldItem -SetWildMonHeldItem: @ 0x0806E4F4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _0806E578 - ldr r0, [r0] - ldr r1, _0806E57C - ands r0, r1 - cmp r0, #0 - beq _0806E508 - b _0806E61C -_0806E508: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r0, _0806E580 - movs r1, #0xb - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r0, #0x2d - mov r8, r0 - movs r7, #0x5f - ldr r5, _0806E584 - adds r0, r5, #0 - movs r1, #6 - movs r2, #0 - bl GetMonData - cmp r0, #0 - bne _0806E552 - adds r0, r5, #0 - bl GetMonAbility - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xe - bne _0806E552 - movs r2, #0x14 - mov r8, r2 - movs r7, #0x50 -_0806E552: - ldr r0, _0806E588 - ldrh r1, [r0, #0x12] - movs r0, #0xd2 - lsls r0, r0, #1 - cmp r1, r0 - bne _0806E5B8 - adds r0, r4, #0 - bl GetWildMonTableIdInAlteringCave - adds r2, r0, #0 - cmp r2, #0 - beq _0806E590 - cmp r6, r7 - blo _0806E61C - ldr r0, _0806E580 - lsls r2, r2, #2 - ldr r1, _0806E58C - b _0806E5F8 - .align 2, 0 -_0806E578: .4byte gUnknown_2022C90 -_0806E57C: .4byte 0x00302008 -_0806E580: .4byte gUnknown_20243E8 -_0806E584: .4byte gUnknown_2024190 -_0806E588: .4byte gUnknown_2036FB8 -_0806E58C: .4byte gUnknown_82FA88A -_0806E590: - cmp r6, r8 - blo _0806E61C - cmp r6, r7 - bhs _0806E5A4 - ldr r0, _0806E5A0 - lsls r2, r4, #3 - b _0806E5F2 - .align 2, 0 -_0806E5A0: .4byte gUnknown_20243E8 -_0806E5A4: - ldr r0, _0806E5B0 - lsls r2, r4, #3 - subs r2, r2, r4 - lsls r2, r2, #2 - ldr r1, _0806E5B4 - b _0806E5F8 - .align 2, 0 -_0806E5B0: .4byte gUnknown_20243E8 -_0806E5B4: .4byte gUnknown_82F0D62 -_0806E5B8: - ldr r0, _0806E5E0 - mov ip, r0 - lsls r0, r4, #3 - subs r1, r0, r4 - lsls r5, r1, #2 - mov r2, ip - adds r1, r5, r2 - ldrh r3, [r1, #0xc] - adds r2, r0, #0 - ldrh r1, [r1, #0xe] - cmp r3, r1 - bne _0806E5E8 - cmp r3, #0 - beq _0806E5E8 - ldr r0, _0806E5E4 - mov r2, ip - adds r2, #0xc - adds r2, r5, r2 - b _0806E5FA - .align 2, 0 -_0806E5E0: .4byte gUnknown_82F0D54 -_0806E5E4: .4byte gUnknown_20243E8 -_0806E5E8: - cmp r6, r8 - blo _0806E61C - cmp r6, r7 - bhs _0806E60C - ldr r0, _0806E604 -_0806E5F2: - subs r2, r2, r4 - lsls r2, r2, #2 - ldr r1, _0806E608 -_0806E5F8: - adds r2, r2, r1 -_0806E5FA: - movs r1, #0xc - bl SetMonData - b _0806E61C - .align 2, 0 -_0806E604: .4byte gUnknown_20243E8 -_0806E608: .4byte gUnknown_82F0D60 -_0806E60C: - ldr r0, _0806E628 - subs r2, r2, r4 - lsls r2, r2, #2 - ldr r1, _0806E62C - adds r2, r2, r1 - movs r1, #0xc - bl SetMonData -_0806E61C: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0806E628: .4byte gUnknown_20243E8 -_0806E62C: .4byte gUnknown_82F0D62 - thumb_func_end SetWildMonHeldItem - - thumb_func_start IsMonShiny -IsMonShiny: @ 0x0806E630 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #1 - movs r2, #0 - bl GetMonData - adds r5, r0, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - bl GetMonData - adds r1, r0, #0 - adds r0, r5, #0 - bl IsShinyOtIdPersonality - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsMonShiny - - thumb_func_start IsShinyOtIdPersonality -IsShinyOtIdPersonality: @ 0x0806E65C - push {r4, lr} - movs r4, #0 - lsrs r2, r0, #0x10 - ldr r3, _0806E680 - ands r0, r3 - eors r2, r0 - lsrs r0, r1, #0x10 - eors r2, r0 - ands r1, r3 - eors r2, r1 - cmp r2, #7 - bhi _0806E676 - movs r4, #1 -_0806E676: - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806E680: .4byte 0x0000FFFF - thumb_func_end IsShinyOtIdPersonality - - thumb_func_start GetTrainerPartnerName -GetTrainerPartnerName: @ 0x0806E684 - push {r4, lr} - ldr r0, _0806E6A4 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - beq _0806E6C8 - ldr r2, _0806E6A8 - ldrh r1, [r2] - ldr r0, _0806E6AC - cmp r1, r0 - bne _0806E6B4 - ldr r0, _0806E6B0 - b _0806E6F0 - .align 2, 0 -_0806E6A4: .4byte gUnknown_2022C90 -_0806E6A8: .4byte gUnknown_203886E -_0806E6AC: .4byte 0x00000C03 -_0806E6B0: .4byte gUnknown_82E9CC0 -_0806E6B4: - ldr r4, _0806E6C4 - ldrh r1, [r2] - adds r0, r4, #0 - bl sub_08162D24 - adds r0, r4, #0 - b _0806E6F0 - .align 2, 0 -_0806E6C4: .4byte gUnknown_2021C40 -_0806E6C8: - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _0806E6F8 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrh r1, [r1, #0x18] - movs r0, #2 - eors r0, r1 - bl GetBattlerMultiplayerId - adds r1, r0, #0 - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r4, #8 - adds r0, r0, r4 -_0806E6F0: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806E6F8: .4byte gUnknown_20226A0 - thumb_func_end GetTrainerPartnerName - - thumb_func_start Task_AnimateAfterDelay -Task_AnimateAfterDelay: @ 0x0806E6FC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _0806E734 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r2, r0, r1 - ldrh r0, [r2, #0xe] - subs r0, #1 - strh r0, [r2, #0xe] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0806E72C - ldrh r0, [r2, #8] - ldrh r1, [r2, #0xa] - lsls r1, r1, #0x10 - orrs r0, r1 - ldrb r1, [r2, #0xc] - bl LaunchAnimationTaskForFrontSprite - adds r0, r4, #0 - bl DestroyTask -_0806E72C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806E734: .4byte gUnknown_3005B60 - thumb_func_end Task_AnimateAfterDelay - - thumb_func_start Task_PokemonSummaryAnimateAfterDelay -Task_PokemonSummaryAnimateAfterDelay: @ 0x0806E738 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _0806E774 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r2, r0, r1 - ldrh r0, [r2, #0xe] - subs r0, #1 - strh r0, [r2, #0xe] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0806E76E - ldrh r0, [r2, #8] - ldrh r1, [r2, #0xa] - lsls r1, r1, #0x10 - orrs r0, r1 - ldrb r1, [r2, #0xc] - bl StartMonSummaryAnimation - movs r0, #0xff - bl sub_081C4094 - adds r0, r4, #0 - bl DestroyTask -_0806E76E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806E774: .4byte gUnknown_3005B60 - thumb_func_end Task_PokemonSummaryAnimateAfterDelay - - thumb_func_start BattleAnimateFrontSprite -BattleAnimateFrontSprite: @ 0x0806E778 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r0, _0806E7B0 - ldr r0, [r0] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806E7BC - ldr r0, _0806E7B4 - ldr r0, [r0] - ldr r1, _0806E7B8 - ands r0, r1 - cmp r0, #0 - bne _0806E7BC - movs r0, #0x80 - orrs r3, r0 - adds r0, r5, #0 - adds r1, r4, #0 - bl DoMonFrontSpriteAnimation - b _0806E7C4 - .align 2, 0 -_0806E7B0: .4byte gUnknown_2023F24 -_0806E7B4: .4byte gUnknown_2022C90 -_0806E7B8: .4byte gUnknown_2000002 -_0806E7BC: - adds r0, r5, #0 - adds r1, r4, #0 - bl DoMonFrontSpriteAnimation -_0806E7C4: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BattleAnimateFrontSprite - - thumb_func_start DoMonFrontSpriteAnimation -DoMonFrontSpriteAnimation: @ 0x0806E7CC - push {r4, r5, r6, lr} - adds r5, r0, #0 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #0x7f - ands r0, r3 - cmp r0, #0 - beq _0806E7EC - cmp r0, #1 - beq _0806E7F0 - movs r1, #0 - b _0806E7F2 -_0806E7EC: - movs r1, #0xe7 - b _0806E7F2 -_0806E7F0: - movs r1, #0x19 -_0806E7F2: - movs r0, #0x80 - ands r0, r3 - cmp r0, #0 - beq _0806E810 - cmp r2, #0 - bne _0806E808 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r4, #0 - bl PlayCry1 -_0806E808: - ldr r0, _0806E80C - b _0806E886 - .align 2, 0 -_0806E80C: .4byte sub_08007140 -_0806E810: - cmp r2, #0 - bne _0806E832 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r4, #0 - bl PlayCry1 - adds r0, r4, #0 - bl HasTwoFramesAnimation - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0806E832 - adds r0, r5, #0 - movs r1, #1 - bl StartSpriteAnim -_0806E832: - ldr r0, _0806E868 - subs r4, #1 - adds r6, r4, r0 - ldrb r0, [r6] - cmp r0, #0 - beq _0806E878 - ldr r0, _0806E86C - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0806E870 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r5, [r1, #8] - lsrs r0, r5, #0x10 - strh r0, [r1, #0xa] - ldr r0, _0806E874 - adds r0, r4, r0 - ldrb r0, [r0] - strh r0, [r1, #0xc] - ldrb r0, [r6] - strh r0, [r1, #0xe] - b _0806E884 - .align 2, 0 -_0806E868: .4byte gUnknown_82FA50F -_0806E86C: .4byte Task_AnimateAfterDelay -_0806E870: .4byte gUnknown_3005B60 -_0806E874: .4byte gUnknown_82FA374 -_0806E878: - ldr r0, _0806E890 - adds r0, r4, r0 - ldrb r1, [r0] - adds r0, r5, #0 - bl LaunchAnimationTaskForFrontSprite -_0806E884: - ldr r0, _0806E894 -_0806E886: - str r0, [r5, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0806E890: .4byte gUnknown_82FA374 -_0806E894: .4byte sub_080394FC - thumb_func_end DoMonFrontSpriteAnimation - - thumb_func_start PokemonSummaryDoMonAnimation -PokemonSummaryDoMonAnimation: @ 0x0806E898 - push {r4, r5, r6, lr} - adds r5, r0, #0 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - lsls r2, r2, #0x18 - cmp r2, #0 - bne _0806E8BA - adds r0, r4, #0 - bl HasTwoFramesAnimation - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0806E8BA - adds r0, r5, #0 - movs r1, #1 - bl StartSpriteAnim -_0806E8BA: - ldr r0, _0806E8FC - subs r4, #1 - adds r6, r4, r0 - ldrb r0, [r6] - cmp r0, #0 - beq _0806E90C - ldr r0, _0806E900 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0806E904 - lsls r2, r0, #2 - adds r2, r2, r0 - lsls r2, r2, #3 - adds r2, r2, r1 - strh r5, [r2, #8] - lsrs r1, r5, #0x10 - strh r1, [r2, #0xa] - ldr r1, _0806E908 - adds r1, r4, r1 - ldrb r1, [r1] - strh r1, [r2, #0xc] - ldrb r1, [r6] - strh r1, [r2, #0xe] - bl sub_081C4094 - adds r0, r5, #0 - bl sub_0817F4B8 - b _0806E918 - .align 2, 0 -_0806E8FC: .4byte gUnknown_82FA50F -_0806E900: .4byte Task_PokemonSummaryAnimateAfterDelay -_0806E904: .4byte gUnknown_3005B60 -_0806E908: .4byte gUnknown_82FA374 -_0806E90C: - ldr r0, _0806E920 - adds r0, r4, r0 - ldrb r1, [r0] - adds r0, r5, #0 - bl StartMonSummaryAnimation -_0806E918: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0806E920: .4byte gUnknown_82FA374 - thumb_func_end PokemonSummaryDoMonAnimation - - thumb_func_start StopPokemonAnimationDelayTask -StopPokemonAnimationDelayTask: @ 0x0806E924 - push {lr} - ldr r0, _0806E93C - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _0806E938 - bl DestroyTask -_0806E938: - pop {r0} - bx r0 - .align 2, 0 -_0806E93C: .4byte Task_PokemonSummaryAnimateAfterDelay - thumb_func_end StopPokemonAnimationDelayTask - - thumb_func_start BattleAnimateBackSprite -BattleAnimateBackSprite: @ 0x0806E940 - push {r4, lr} - adds r4, r0, #0 - lsls r1, r1, #0x10 - lsrs r2, r1, #0x10 - ldr r0, _0806E964 - ldr r0, [r0] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806E974 - ldr r0, _0806E968 - ldr r0, [r0] - ldr r1, _0806E96C - ands r0, r1 - cmp r0, #0 - bne _0806E974 - ldr r0, _0806E970 - b _0806E988 - .align 2, 0 -_0806E964: .4byte gUnknown_2023F24 -_0806E968: .4byte gUnknown_2022C90 -_0806E96C: .4byte gUnknown_2000002 -_0806E970: .4byte sub_08007140 -_0806E974: - adds r0, r2, #0 - bl GetSpeciesBackAnimSet - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl LaunchAnimationTaskForBackSprite - ldr r0, _0806E990 -_0806E988: - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806E990: .4byte sub_080394FC - thumb_func_end BattleAnimateBackSprite - - thumb_func_start sub_0806E994 -sub_0806E994: @ 0x0806E994 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r5, #0 - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0806E9C0 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r0, [r1, #0x18] - cmp r0, #1 - beq _0806E9D8 - cmp r0, #1 - bgt _0806E9C4 - cmp r0, #0 - beq _0806E9CE - b _0806E9E2 - .align 2, 0 -_0806E9C0: .4byte gUnknown_20226A0 -_0806E9C4: - cmp r0, #2 - beq _0806E9CE - cmp r0, #3 - beq _0806E9D8 - b _0806E9E2 -_0806E9CE: - movs r5, #3 - cmp r4, #0 - beq _0806E9E2 - movs r5, #1 - b _0806E9E2 -_0806E9D8: - rsbs r0, r4, #0 - orrs r0, r4 - asrs r5, r0, #0x1f - movs r0, #2 - ands r5, r0 -_0806E9E2: - movs r2, #0 - ldr r4, _0806EA0C - ldrh r0, [r4, #0x18] - adds r1, r5, #0 - cmp r0, r1 - beq _0806EA00 - adds r3, r1, #0 - adds r1, r4, #0 -_0806E9F2: - adds r1, #0x1c - adds r2, #1 - cmp r2, #3 - bgt _0806EA00 - ldrh r0, [r1, #0x18] - cmp r0, r3 - bne _0806E9F2 -_0806EA00: - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0806EA0C: .4byte gUnknown_20226A0 - thumb_func_end sub_0806E994 - - thumb_func_start sub_0806EA10 -sub_0806EA10: @ 0x0806EA10 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r4, #0 - ldr r2, _0806EA38 - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0, #0x18] - cmp r0, #1 - beq _0806EA50 - cmp r0, #1 - bgt _0806EA3C - cmp r0, #0 - beq _0806EA46 - b _0806EA5A - .align 2, 0 -_0806EA38: .4byte gUnknown_20226A0 -_0806EA3C: - cmp r0, #2 - beq _0806EA46 - cmp r0, #3 - beq _0806EA50 - b _0806EA5A -_0806EA46: - movs r4, #3 - cmp r3, #0 - beq _0806EA5A - movs r4, #1 - b _0806EA5A -_0806EA50: - rsbs r0, r3, #0 - orrs r0, r3 - asrs r4, r0, #0x1f - movs r0, #2 - ands r4, r0 -_0806EA5A: - movs r3, #0 - ldrh r0, [r2, #0x18] - adds r1, r4, #0 - cmp r0, r1 - beq _0806EA72 -_0806EA64: - adds r2, #0x1c - adds r3, #1 - cmp r3, #3 - bgt _0806EA72 - ldrh r0, [r2, #0x18] - cmp r0, r1 - bne _0806EA64 -_0806EA72: - lsls r0, r3, #0x18 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0806EA10 - - thumb_func_start sub_0806EA7C -sub_0806EA7C: @ 0x0806EA7C - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _0806EA88 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0806EA88: .4byte gUnknown_82EFF00 - thumb_func_end sub_0806EA7C - - thumb_func_start PlayerGenderToFrontTrainerPicId -PlayerGenderToFrontTrainerPicId: @ 0x0806EA8C - push {lr} - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806EA98 - movs r0, #0x3c - b _0806EA9A -_0806EA98: - movs r0, #0x3f -_0806EA9A: - bl sub_0806EA7C - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end PlayerGenderToFrontTrainerPicId - - thumb_func_start HandleSetPokedexFlag -HandleSetPokedexFlag: @ 0x0806EAA8 - push {r4, r5, r6, r7, lr} - adds r7, r2, #0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r6, r4, #0 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - movs r0, #2 - eors r0, r5 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - adds r0, r4, #0 - bl GetSetPokedexFlag - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806EAFE - adds r0, r4, #0 - adds r1, r5, #0 - bl GetSetPokedexFlag - adds r0, r4, #0 - bl sub_0806CED0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xc9 - bne _0806EAE8 - ldr r0, _0806EB04 - ldr r0, [r0] - str r7, [r0, #0x1c] -_0806EAE8: - adds r0, r6, #0 - bl sub_0806CED0 - lsls r0, r0, #0x10 - movs r1, #0x9a - lsls r1, r1, #0x11 - cmp r0, r1 - bne _0806EAFE - ldr r0, _0806EB04 - ldr r0, [r0] - str r7, [r0, #0x20] -_0806EAFE: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0806EB04: .4byte gUnknown_3005AF0 - thumb_func_end HandleSetPokedexFlag - - thumb_func_start sub_0806EB08 -sub_0806EB08: @ 0x0806EB08 - push {lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, _0806EB2C - cmp r2, r0 - bls _0806EB16 - movs r2, #0 -_0806EB16: - ldr r1, _0806EB30 - lsls r0, r2, #5 - adds r0, r0, r1 - ldrb r1, [r0, #1] - movs r0, #0xb - muls r0, r1, r0 - ldr r1, _0806EB34 - adds r0, r0, r1 - pop {r1} - bx r1 - .align 2, 0 -_0806EB2C: .4byte 0x00000356 -_0806EB30: .4byte gUnknown_82E383C -_0806EB34: .4byte gUnknown_82E3564 - thumb_func_end sub_0806EB08 - - thumb_func_start sub_0806EB38 -sub_0806EB38: @ 0x0806EB38 - push {lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r0, _0806EB50 - cmp r1, r0 - bls _0806EB46 - movs r1, #0 -_0806EB46: - lsls r0, r1, #5 - ldr r1, _0806EB54 - adds r0, r0, r1 - pop {r1} - bx r1 - .align 2, 0 -_0806EB50: .4byte 0x00000356 -_0806EB54: .4byte gUnknown_82E3840 - thumb_func_end sub_0806EB38 - - thumb_func_start HasTwoFramesAnimation -HasTwoFramesAnimation: @ 0x0806EB58 - push {lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - movs r1, #0 - ldr r0, _0806EB84 - cmp r2, r0 - beq _0806EB7C - adds r0, #0x19 - cmp r2, r0 - beq _0806EB7C - subs r0, #0x66 - cmp r2, r0 - beq _0806EB7C - movs r1, #0xc9 - eors r1, r2 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r1, r0, #0x1f -_0806EB7C: - adds r0, r1, #0 - pop {r1} - bx r1 - .align 2, 0 -_0806EB84: .4byte 0x00000181 - thumb_func_end HasTwoFramesAnimation - - thumb_func_start sub_0806EB88 -sub_0806EB88: @ 0x0806EB88 - push {lr} - ldr r2, _0806EBCC - ldr r1, _0806EBD0 - adds r0, r2, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806EBA6 - ldr r0, _0806EBD4 - ldr r0, [r0] - ldr r1, _0806EBD8 - ands r0, r1 - cmp r0, #0 - bne _0806EBC8 -_0806EBA6: - ldr r1, _0806EBD0 - adds r0, r2, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0806EBDC - bl InBattlePike - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806EBC8 - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0806EBDC -_0806EBC8: - movs r0, #1 - b _0806EBDE - .align 2, 0 -_0806EBCC: .4byte gUnknown_3002360 -_0806EBD0: .4byte 0x00000439 -_0806EBD4: .4byte gUnknown_2022C90 -_0806EBD8: .4byte 0x003F0100 -_0806EBDC: - movs r0, #0 -_0806EBDE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0806EB88 - - thumb_func_start sub_0806EBE4 -sub_0806EBE4: @ 0x0806EBE4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r6, r0, #0 - ldrb r0, [r6] - lsls r0, r0, #0x1c - movs r4, #0 - cmp r0, #0 - beq _0806EC6E -_0806EBFA: - ldr r0, [r6, #0xc] - lsls r2, r4, #1 - adds r1, r2, r4 - lsls r1, r1, #3 - adds r0, r1, r0 - ldr r3, _0806EC7C - adds r1, r1, r3 - ldm r1!, {r3, r5, r7} - stm r0!, {r3, r5, r7} - ldm r1!, {r3, r5, r7} - stm r0!, {r3, r5, r7} - movs r5, #0 - ldrb r3, [r6, #1] - ldr r7, [r6, #0xc] - mov sb, r7 - mov r8, r2 - ldr r0, [r6, #0x10] - mov ip, r0 - adds r1, r4, #1 - mov sl, r1 - cmp r5, r3 - bhs _0806EC4C - mov r7, ip - ldr r1, [r6, #8] - lsls r0, r4, #2 - adds r0, r0, r1 - ldr r2, [r0] -_0806EC30: - adds r0, r4, #0 - muls r0, r3, r0 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r7 - lsls r1, r5, #0xb - adds r1, r2, r1 - str r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldrb r3, [r6, #1] - cmp r5, r3 - blo _0806EC30 -_0806EC4C: - mov r3, r8 - adds r1, r3, r4 - lsls r1, r1, #3 - add r1, sb - ldrb r0, [r6, #1] - muls r0, r4, r0 - lsls r0, r0, #3 - add r0, ip - str r0, [r1, #0xc] - mov r5, sl - lsls r0, r5, #0x10 - lsrs r4, r0, #0x10 - ldrb r0, [r6] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - cmp r4, r0 - blt _0806EBFA -_0806EC6E: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0806EC7C: .4byte gUnknown_82FA724 - thumb_func_end sub_0806EBE4 - - thumb_func_start sub_0806EC80 -sub_0806EC80: @ 0x0806EC80 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r4, r0, #0 - ldrb r0, [r4] - lsls r0, r0, #0x1c - movs r3, #0 - cmp r0, #0 - beq _0806ED1A - ldr r0, _0806ED28 - mov sl, r0 -_0806EC9A: - ldr r0, [r4, #0xc] - lsls r2, r3, #1 - adds r1, r2, r3 - lsls r1, r1, #3 - adds r1, r1, r0 - mov r0, sl - ldm r0!, {r5, r6, r7} - stm r1!, {r5, r6, r7} - ldm r0!, {r5, r6, r7} - stm r1!, {r5, r6, r7} - movs r5, #0 - ldr r0, [r4, #0xc] - mov r8, r0 - mov ip, r2 - ldr r7, [r4, #0x10] - adds r1, r3, #1 - mov sb, r1 - ldrb r6, [r4, #1] - cmp r5, r6 - bhs _0806ECEE - adds r6, r7, #0 - ldr r1, [r4, #8] - lsls r0, r3, #2 - adds r0, r0, r1 - ldr r2, [r0] -_0806ECCC: - ldrb r0, [r4] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - adds r1, r3, #0 - muls r1, r0, r1 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r6 - lsls r0, r5, #0xb - adds r0, r2, r0 - str r0, [r1] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldrb r0, [r4, #1] - cmp r5, r0 - blo _0806ECCC -_0806ECEE: - mov r5, ip - adds r1, r5, r3 - lsls r1, r1, #3 - add r1, r8 - ldrb r0, [r4] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - muls r0, r3, r0 - lsls r0, r0, #3 - adds r0, r7, r0 - str r0, [r1, #0xc] - ldr r6, _0806ED2C - str r6, [r1, #8] - strh r3, [r1, #2] - mov r7, sb - lsls r0, r7, #0x10 - lsrs r3, r0, #0x10 - ldrb r0, [r4] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - cmp r3, r0 - blt _0806EC9A -_0806ED1A: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0806ED28: .4byte gUnknown_82FA8B4 -_0806ED2C: .4byte gUnknown_82D2F9C - thumb_func_end sub_0806EC80 - - thumb_func_start sub_0806ED30 -sub_0806ED30: @ 0x0806ED30 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - movs r7, #0 - movs r0, #1 - ands r6, r0 - movs r0, #0x14 - bl AllocZeroed - adds r4, r0, #0 - cmp r4, #0 - bne _0806ED54 - movs r0, #0 - b _0806EEF2 -_0806ED54: - cmp r5, #0 - beq _0806ED6A - cmp r5, #2 - bne _0806ED6A - movs r0, #0x77 - strb r0, [r4] - movs r0, #4 - strb r0, [r4, #1] - movs r0, #0x21 - strb r0, [r4, #3] - b _0806ED92 -_0806ED6A: - ldrb r1, [r4] - movs r2, #0x10 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - movs r3, #0xf - ands r0, r3 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4] - movs r0, #4 - strb r0, [r4, #1] - ldrb r0, [r4, #3] - ands r2, r0 - movs r0, #1 - orrs r2, r0 - ands r2, r3 - strb r2, [r4, #3] -_0806ED92: - ldrb r1, [r4, #3] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - ldrb r0, [r4] - lsls r0, r0, #0x1c - lsrs r0, r0, #0xf - muls r0, r1, r0 - bl AllocZeroed - str r0, [r4, #4] - ldrb r0, [r4] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x17 - bl AllocZeroed - adds r1, r0, #0 - str r1, [r4, #8] - ldr r2, [r4, #4] - cmp r2, #0 - beq _0806EDBE - cmp r1, #0 - bne _0806EDC8 -_0806EDBE: - movs r0, #1 - orrs r7, r0 - lsls r6, r6, #2 - mov r8, r6 - b _0806EDFC -_0806EDC8: - ldrb r0, [r4] - lsls r0, r0, #0x1c - movs r3, #0 - lsls r6, r6, #2 - mov r8, r6 - cmp r0, #0 - beq _0806EDFC - adds r6, r1, #0 - adds r5, r2, #0 -_0806EDDA: - lsls r2, r3, #2 - adds r2, r2, r6 - ldrb r0, [r4, #3] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - lsls r1, r3, #0xd - muls r0, r1, r0 - adds r0, r5, r0 - str r0, [r2] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldrb r0, [r4] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - cmp r3, r0 - blt _0806EDDA -_0806EDFC: - ldrb r1, [r4] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - bl AllocZeroed - str r0, [r4, #0xc] - ldrb r1, [r4] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - ldrb r0, [r4, #1] - lsls r0, r0, #3 - muls r0, r1, r0 - bl AllocZeroed - adds r1, r0, #0 - str r1, [r4, #0x10] - ldr r0, [r4, #0xc] - cmp r0, #0 - beq _0806EE2C - cmp r1, #0 - bne _0806EE36 -_0806EE2C: - movs r0, #2 - orrs r7, r0 - lsls r0, r7, #0x18 - lsrs r7, r0, #0x18 - b _0806EE84 -_0806EE36: - movs r3, #0 - ldrb r0, [r4, #1] - ldrb r1, [r4] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - muls r0, r1, r0 - cmp r3, r0 - bge _0806EE66 - movs r2, #0x80 - lsls r2, r2, #4 -_0806EE4A: - ldr r1, [r4, #0x10] - lsls r0, r3, #3 - adds r0, r0, r1 - strh r2, [r0, #4] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldrb r1, [r4, #1] - ldrb r0, [r4] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - muls r0, r1, r0 - cmp r3, r0 - blt _0806EE4A -_0806EE66: - ldrb r0, [r4, #3] - lsrs r0, r0, #4 - cmp r0, #0 - blt _0806EE7E - cmp r0, #1 - ble _0806EE7E - cmp r0, #2 - bne _0806EE7E - adds r0, r4, #0 - bl sub_0806EC80 - b _0806EE84 -_0806EE7E: - adds r0, r4, #0 - bl sub_0806EBE4 -_0806EE84: - movs r0, #2 - ands r0, r7 - cmp r0, #0 - beq _0806EEA8 - ldr r0, [r4, #0x10] - cmp r0, #0 - beq _0806EE9A - bl Free - movs r0, #0 - str r0, [r4, #0x10] -_0806EE9A: - ldr r0, [r4, #0xc] - cmp r0, #0 - beq _0806EEA8 - bl Free - movs r0, #0 - str r0, [r4, #0xc] -_0806EEA8: - movs r0, #1 - ands r0, r7 - cmp r0, #0 - beq _0806EECC - ldr r0, [r4, #8] - cmp r0, #0 - beq _0806EEBE - bl Free - movs r0, #0 - str r0, [r4, #8] -_0806EEBE: - ldr r0, [r4, #4] - cmp r0, #0 - beq _0806EECC - bl Free - movs r0, #0 - str r0, [r4, #4] -_0806EECC: - cmp r7, #0 - beq _0806EEE2 - adds r0, r4, #0 - movs r1, #0 - movs r2, #0x14 - bl memset - adds r0, r4, #0 - bl Free - b _0806EEEC -_0806EEE2: - movs r0, #0xa3 - strb r0, [r4, #2] - ldr r0, _0806EEFC - add r0, r8 - str r4, [r0] -_0806EEEC: - ldr r0, _0806EEFC - add r0, r8 - ldr r0, [r0] -_0806EEF2: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0806EEFC: .4byte gUnknown_2024658 - thumb_func_end sub_0806ED30 - - thumb_func_start sub_0806EF00 -sub_0806EF00: @ 0x0806EF00 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - ands r0, r1 - ldr r1, _0806EF28 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r4, [r0] - cmp r4, #0 - beq _0806EF74 - ldrb r0, [r4, #2] - cmp r0, #0xa3 - beq _0806EF2C - adds r0, r4, #0 - movs r1, #0 - movs r2, #0x14 - bl memset - b _0806EF74 - .align 2, 0 -_0806EF28: .4byte gUnknown_2024658 -_0806EF2C: - ldr r0, [r4, #0x10] - cmp r0, #0 - beq _0806EF3A - bl Free - movs r0, #0 - str r0, [r4, #0x10] -_0806EF3A: - ldr r0, [r4, #0xc] - cmp r0, #0 - beq _0806EF48 - bl Free - movs r0, #0 - str r0, [r4, #0xc] -_0806EF48: - ldr r0, [r4, #8] - cmp r0, #0 - beq _0806EF56 - bl Free - movs r0, #0 - str r0, [r4, #8] -_0806EF56: - ldr r0, [r4, #4] - cmp r0, #0 - beq _0806EF64 - bl Free - movs r0, #0 - str r0, [r4, #4] -_0806EF64: - adds r0, r4, #0 - movs r1, #0 - movs r2, #0x14 - bl memset - adds r0, r4, #0 - bl Free -_0806EF74: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0806EF00 - - thumb_func_start sub_0806EF7C -sub_0806EF7C: @ 0x0806EF7C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - ldr r2, _0806EF9C - movs r1, #1 - ands r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, [r0] - ldrb r0, [r1, #2] - cmp r0, #0xa3 - beq _0806EFA0 - movs r0, #0 - b _0806EFB4 - .align 2, 0 -_0806EF9C: .4byte gUnknown_2024658 -_0806EFA0: - ldrb r0, [r1] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - cmp r3, r0 - blt _0806EFAC - movs r3, #0 -_0806EFAC: - ldr r0, [r1, #8] - lsls r1, r3, #2 - adds r1, r1, r0 - ldr r0, [r1] -_0806EFB4: - pop {r1} - bx r1 - thumb_func_end sub_0806EF7C - - thumb_func_start Sin -Sin: @ 0x0806EFB8 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldr r2, _0806EFD0 - lsls r0, r0, #0x10 - asrs r0, r0, #0xf - adds r0, r0, r2 - movs r2, #0 - ldrsh r0, [r0, r2] - muls r0, r1, r0 - lsls r0, r0, #8 - asrs r0, r0, #0x10 - bx lr - .align 2, 0 -_0806EFD0: .4byte gUnknown_82FA8CC - thumb_func_end Sin - - thumb_func_start Cos -Cos: @ 0x0806EFD4 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldr r2, _0806EFF0 - lsls r0, r0, #0x10 - asrs r0, r0, #0xf - adds r0, #0x80 - adds r0, r0, r2 - movs r2, #0 - ldrsh r0, [r0, r2] - muls r0, r1, r0 - lsls r0, r0, #8 - asrs r0, r0, #0x10 - bx lr - .align 2, 0 -_0806EFF0: .4byte gUnknown_82FA8CC - thumb_func_end Cos - - thumb_func_start Sin2 -Sin2: @ 0x0806EFF4 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - adds r0, r5, #0 - movs r1, #0xb4 - bl __umodsi3 - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - movs r1, #0xb4 - bl __udivsi3 - movs r1, #1 - ands r0, r1 - ldr r1, _0806F028 - lsls r4, r4, #1 - adds r4, r4, r1 - ldrh r1, [r4] - cmp r0, #0 - bne _0806F02C - lsls r0, r1, #0x10 - b _0806F030 - .align 2, 0 -_0806F028: .4byte gUnknown_82FAB4C -_0806F02C: - lsls r0, r1, #0x10 - rsbs r0, r0, #0 -_0806F030: - asrs r0, r0, #0x10 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end Sin2 - - thumb_func_start Cos2 -Cos2: @ 0x0806F038 - push {lr} - lsls r0, r0, #0x10 - movs r1, #0xb4 - lsls r1, r1, #0xf - adds r0, r0, r1 - lsrs r0, r0, #0x10 - bl Sin2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - pop {r1} - bx r1 - thumb_func_end Cos2 - - thumb_func_start Random -Random: @ 0x0806F050 - ldr r2, _0806F06C - ldr r1, [r2] - ldr r0, _0806F070 - muls r0, r1, r0 - ldr r1, _0806F074 - adds r0, r0, r1 - str r0, [r2] - ldr r2, _0806F078 - ldr r1, [r2] - adds r1, #1 - str r1, [r2] - lsrs r0, r0, #0x10 - bx lr - .align 2, 0 -_0806F06C: .4byte gUnknown_3005AE0 -_0806F070: .4byte 0x41C64E6D -_0806F074: .4byte 0x00006073 -_0806F078: .4byte gUnknown_2024664 - thumb_func_end Random - - thumb_func_start SeedRng -SeedRng: @ 0x0806F07C - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _0806F08C - str r0, [r1] - ldr r1, _0806F090 - movs r0, #0 - strb r0, [r1] - bx lr - .align 2, 0 -_0806F08C: .4byte gUnknown_3005AE0 -_0806F090: .4byte gUnknown_2024660 - thumb_func_end SeedRng - - thumb_func_start sub_0806F094 -sub_0806F094: @ 0x0806F094 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _0806F0A0 - str r0, [r1] - bx lr - .align 2, 0 -_0806F0A0: .4byte gUnknown_3005AE4 - thumb_func_end sub_0806F094 - - thumb_func_start sub_0806F0A4 -sub_0806F0A4: @ 0x0806F0A4 - ldr r2, _0806F0B8 - ldr r1, [r2] - ldr r0, _0806F0BC - muls r0, r1, r0 - ldr r1, _0806F0C0 - adds r0, r0, r1 - str r0, [r2] - lsrs r0, r0, #0x10 - bx lr - .align 2, 0 -_0806F0B8: .4byte gUnknown_3005AE4 -_0806F0BC: .4byte 0x41C64E6D -_0806F0C0: .4byte 0x00006073 - thumb_func_end sub_0806F0A4 - - thumb_func_start CreateInvisibleSpriteWithCallback -CreateInvisibleSpriteWithCallback: @ 0x0806F0C4 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r0, _0806F0F8 - movs r1, #0xf8 - movs r2, #0xa8 - movs r3, #0xe - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _0806F0FC - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r3, r2, r5 - adds r3, #0x3e - ldrb r1, [r3] - movs r4, #4 - orrs r1, r4 - strb r1, [r3] - adds r5, #0x1c - adds r2, r2, r5 - str r6, [r2] - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0806F0F8: .4byte gUnknown_82FAD34 -_0806F0FC: .4byte gUnknown_20205AC - thumb_func_end CreateInvisibleSpriteWithCallback - - thumb_func_start StoreWordInTwoHalfwords -StoreWordInTwoHalfwords: @ 0x0806F100 - strh r1, [r0] - lsrs r1, r1, #0x10 - strh r1, [r0, #2] - bx lr - thumb_func_end StoreWordInTwoHalfwords - - thumb_func_start LoadWordFromTwoHalfwords -LoadWordFromTwoHalfwords: @ 0x0806F108 - ldrh r2, [r0] - movs r3, #2 - ldrsh r0, [r0, r3] - lsls r0, r0, #0x10 - orrs r2, r0 - str r2, [r1] - bx lr - .align 2, 0 - thumb_func_end LoadWordFromTwoHalfwords - - thumb_func_start SetBgAffineStruct -SetBgAffineStruct: @ 0x0806F118 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r4, [sp, #0x18] - ldr r5, [sp, #0x1c] - ldr r6, [sp, #0x20] - ldr r7, [sp, #0x24] - mov r8, r7 - str r1, [r0] - str r2, [r0, #4] - strh r3, [r0, #8] - strh r4, [r0, #0xa] - strh r5, [r0, #0xc] - strh r6, [r0, #0xe] - mov r1, r8 - strh r1, [r0, #0x10] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetBgAffineStruct - - thumb_func_start DoBgAffineSet -DoBgAffineSet: @ 0x0806F144 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0x24 - mov r8, r0 - ldr r0, [sp, #0x38] - ldr r4, [sp, #0x3c] - ldr r5, [sp, #0x40] - ldr r6, [sp, #0x44] - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - str r0, [sp] - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - str r4, [sp, #4] - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - str r5, [sp, #8] - str r6, [sp, #0xc] - add r0, sp, #0x10 - bl SetBgAffineStruct - add r0, sp, #0x10 - mov r1, r8 - movs r2, #1 - bl BgAffineSet - add sp, #0x24 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end DoBgAffineSet - - thumb_func_start CopySpriteTiles -CopySpriteTiles: @ 0x0806F190 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x38 - str r2, [sp, #0x20] - adds r4, r3, #0 - ldr r7, [sp, #0x58] - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - ldr r2, _0806F1C0 - lsrs r1, r1, #0x17 - lsrs r0, r0, #0x15 - adds r1, r1, r0 - adds r0, r2, #1 - adds r0, r1, r0 - ldrb r0, [r0] - str r0, [sp, #0x24] - adds r1, r1, r2 - ldrb r1, [r1] - str r1, [sp, #0x28] - movs r0, #0 - b _0806F310 - .align 2, 0 -_0806F1C0: .4byte gUnknown_82FAD4C -_0806F1C4: - movs r5, #0 - adds r0, #1 - str r0, [sp, #0x30] - b _0806F2F8 -_0806F1CC: - ldrh r0, [r4] - ldr r2, _0806F204 - adds r1, r2, #0 - ands r1, r0 - lsls r1, r1, #5 - mov r8, r1 - movs r2, #0xc0 - lsls r2, r2, #4 - adds r1, r2, #0 - ands r1, r0 - mov r2, sp - strh r0, [r2, #0x34] - cmp r1, #0 - bne _0806F20C - ldr r0, [sp, #0x20] - add r0, r8 - adds r1, r7, #0 - ldr r2, _0806F208 - bl CpuSet - adds r4, #2 - str r4, [sp, #0x2c] - adds r7, #0x20 - mov sl, r7 - adds r5, #1 - mov sb, r5 - b _0806F2EE - .align 2, 0 -_0806F204: .4byte 0x000003FF -_0806F208: .4byte 0x04000008 -_0806F20C: - movs r0, #0x80 - lsls r0, r0, #4 - cmp r1, r0 - bne _0806F250 - movs r1, #0 - adds r4, #2 - str r4, [sp, #0x2c] - movs r2, #0x20 - adds r2, r2, r7 - mov sl, r2 - adds r5, #1 - mov sb, r5 -_0806F224: - lsls r4, r1, #0x18 - asrs r4, r4, #0x18 - movs r0, #7 - subs r0, r0, r4 - lsls r0, r0, #2 - add r0, r8 - ldr r1, [sp, #0x20] - adds r0, r1, r0 - lsls r1, r4, #2 - adds r1, r7, r1 - ldr r2, _0806F24C - bl CpuSet - adds r4, #1 - lsls r4, r4, #0x18 - lsrs r1, r4, #0x18 - asrs r4, r4, #0x18 - cmp r4, #7 - ble _0806F224 - b _0806F2EE - .align 2, 0 -_0806F24C: .4byte 0x04000001 -_0806F250: - movs r1, #0 - adds r4, #2 - str r4, [sp, #0x2c] - movs r2, #0x20 - adds r2, r2, r7 - mov sl, r2 - adds r5, #1 - mov sb, r5 - movs r0, #0xf - mov ip, r0 -_0806F264: - movs r2, #0 - lsls r4, r1, #0x18 - lsls r0, r4, #2 - lsrs r0, r0, #0x18 - adds r6, r0, #3 - mov r1, r8 - adds r5, r1, r0 -_0806F272: - lsls r1, r2, #0x18 - asrs r1, r1, #0x18 - subs r0, r6, r1 - mov r2, sp - adds r3, r2, r0 - adds r0, r5, r1 - ldr r2, [sp, #0x20] - adds r0, r2, r0 - ldrb r2, [r0] - mov r0, ip - ands r0, r2 - lsls r0, r0, #4 - lsrs r2, r2, #4 - orrs r0, r2 - strb r0, [r3] - adds r1, #1 - lsls r1, r1, #0x18 - lsrs r2, r1, #0x18 - asrs r1, r1, #0x18 - cmp r1, #3 - ble _0806F272 - movs r1, #0x80 - lsls r1, r1, #0x11 - adds r0, r4, r1 - lsrs r1, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #7 - ble _0806F264 - mov r2, sp - ldrh r0, [r2, #0x34] - movs r2, #0x80 - lsls r2, r2, #4 - ands r0, r2 - cmp r0, #0 - beq _0806F2E4 - movs r1, #0 -_0806F2BA: - lsls r4, r1, #0x18 - asrs r4, r4, #0x18 - movs r0, #7 - subs r0, r0, r4 - lsls r0, r0, #2 - add r0, sp - lsls r1, r4, #2 - adds r1, r7, r1 - ldr r2, _0806F2E0 - bl CpuSet - adds r4, #1 - lsls r4, r4, #0x18 - lsrs r1, r4, #0x18 - asrs r4, r4, #0x18 - cmp r4, #7 - ble _0806F2BA - b _0806F2EE - .align 2, 0 -_0806F2E0: .4byte 0x04000001 -_0806F2E4: - mov r0, sp - adds r1, r7, #0 - ldr r2, _0806F328 - bl CpuSet -_0806F2EE: - ldr r4, [sp, #0x2c] - mov r7, sl - mov r1, sb - lsls r0, r1, #0x18 - lsrs r5, r0, #0x18 -_0806F2F8: - ldr r2, [sp, #0x28] - cmp r5, r2 - bhs _0806F300 - b _0806F1CC -_0806F300: - movs r0, #0x20 - ldr r1, [sp, #0x28] - subs r0, r0, r1 - lsls r0, r0, #1 - adds r4, r4, r0 - ldr r2, [sp, #0x30] - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 -_0806F310: - ldr r1, [sp, #0x24] - cmp r0, r1 - bhs _0806F318 - b _0806F1C4 -_0806F318: - add sp, #0x38 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0806F328: .4byte 0x04000008 - thumb_func_end CopySpriteTiles - - thumb_func_start CountTrailingZeroBits -CountTrailingZeroBits: @ 0x0806F32C - push {lr} - adds r2, r0, #0 - movs r1, #0 - movs r3, #1 -_0806F334: - adds r0, r2, #0 - ands r0, r3 - cmp r0, #0 - beq _0806F340 - adds r0, r1, #0 - b _0806F34E -_0806F340: - lsrs r2, r2, #1 - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x1f - bls _0806F334 - movs r0, #0 -_0806F34E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CountTrailingZeroBits - - thumb_func_start CalcCRC16 -CalcCRC16: @ 0x0806F354 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r4, r1, #0 - ldr r2, _0806F384 - movs r3, #0 - cmp r3, r4 - bge _0806F3A0 - movs r6, #1 - ldr r0, _0806F388 - adds r5, r0, #0 -_0806F368: - adds r0, r7, r3 - ldrb r0, [r0] - eors r2, r0 - movs r1, #0 - adds r3, #1 -_0806F372: - adds r0, r2, #0 - ands r0, r6 - cmp r0, #0 - beq _0806F38C - lsrs r0, r2, #1 - eors r0, r5 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - b _0806F38E - .align 2, 0 -_0806F384: .4byte 0x00001121 -_0806F388: .4byte 0x00008408 -_0806F38C: - lsrs r2, r2, #1 -_0806F38E: - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #7 - bls _0806F372 - lsls r0, r3, #0x10 - lsrs r3, r0, #0x10 - cmp r3, r4 - blt _0806F368 -_0806F3A0: - mvns r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end CalcCRC16 - - thumb_func_start CalcCRC16WithTable -CalcCRC16WithTable: @ 0x0806F3AC - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - ldr r2, _0806F3E8 - movs r3, #0 - cmp r3, r4 - bhs _0806F3DA - ldr r6, _0806F3EC -_0806F3BC: - lsrs r1, r2, #8 - adds r0, r5, r3 - ldrb r0, [r0] - eors r2, r0 - lsls r0, r2, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r6 - ldrh r0, [r0] - adds r2, r0, #0 - eors r2, r1 - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, r4 - blo _0806F3BC -_0806F3DA: - mvns r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0806F3E8: .4byte 0x00001121 -_0806F3EC: .4byte gUnknown_82FAD64 - thumb_func_end CalcCRC16WithTable - - thumb_func_start CalcByteArraySum -CalcByteArraySum: @ 0x0806F3F0 - push {r4, lr} - adds r4, r0, #0 - movs r3, #0 - movs r2, #0 - cmp r3, r1 - bhs _0806F408 -_0806F3FC: - adds r0, r4, r2 - ldrb r0, [r0] - adds r3, r3, r0 - adds r2, #1 - cmp r2, r1 - blo _0806F3FC -_0806F408: - adds r0, r3, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end CalcByteArraySum - - thumb_func_start BlendPalette -BlendPalette: @ 0x0806F410 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov ip, r1 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - mov r0, sp - strh r3, [r0] - movs r6, #0 - cmp r6, ip - bhs _0806F496 - ldr r0, _0806F4A8 - mov sl, r0 - ldr r1, _0806F4AC - mov sb, r1 -_0806F43E: - mov r0, r8 - adds r5, r6, r0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0xf - mov r1, sl - adds r0, r5, r1 - ldr r3, [r0] - lsls r4, r3, #0x1b - lsls r2, r3, #0x16 - lsls r3, r3, #0x11 - add r5, sb - lsrs r4, r4, #0x1b - ldr r1, [sp] - lsls r0, r1, #0x1b - lsrs r0, r0, #0x1b - subs r0, r0, r4 - muls r0, r7, r0 - asrs r0, r0, #4 - adds r4, r4, r0 - lsrs r2, r2, #0x1b - lsls r0, r1, #0x16 - lsrs r0, r0, #0x1b - subs r0, r0, r2 - muls r0, r7, r0 - asrs r0, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #5 - orrs r4, r2 - lsrs r3, r3, #0x1b - lsls r1, r1, #0x11 - lsrs r1, r1, #0x1b - subs r1, r1, r3 - adds r0, r1, #0 - muls r0, r7, r0 - asrs r0, r0, #4 - adds r3, r3, r0 - lsls r3, r3, #0xa - orrs r4, r3 - strh r4, [r5] - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, ip - blo _0806F43E -_0806F496: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0806F4A8: .4byte gUnknown_20373B4 -_0806F4AC: .4byte gUnknown_20377B4 - thumb_func_end BlendPalette - - thumb_func_start sub_0806F4B0 -sub_0806F4B0: @ 0x0806F4B0 - push {r4, lr} - sub sp, #0x14 - adds r4, r1, #0 - movs r1, #2 - mov r2, sp - bl GetMonData - adds r0, r4, #0 - mov r1, sp - bl StringCopy10 - add sp, #0x14 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0806F4B0 - - thumb_func_start sub_0806F4D0 -sub_0806F4D0: @ 0x0806F4D0 - push {r4, lr} - sub sp, #0x14 - adds r4, r1, #0 - movs r1, #2 - mov r2, sp - bl sub_0806A1B4 - adds r0, r4, #0 - mov r1, sp - bl StringCopy10 - add sp, #0x14 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0806F4D0 - - thumb_func_start CountPokemonInDaycare -CountPokemonInDaycare: @ 0x0806F4F0 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r5, #0 - movs r4, #0 -_0806F4F8: - movs r0, #0x8c - muls r0, r4, r0 - adds r0, r6, r0 - movs r1, #0xb - bl sub_0806A1B4 - cmp r0, #0 - beq _0806F50E - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_0806F50E: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #1 - bls _0806F4F8 - adds r0, r5, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end CountPokemonInDaycare - - thumb_func_start InitDaycareMailRecordMixing -InitDaycareMailRecordMixing: @ 0x0806F520 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sb, r0 - mov sl, r1 - movs r7, #0 - movs r5, #0 - mov r6, sl - adds r6, #0x74 - movs r0, #1 - mov r8, r0 -_0806F53A: - movs r0, #0x8c - muls r0, r5, r0 - mov r1, sb - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0xb - bl sub_0806A1B4 - cmp r0, #0 - beq _0806F568 - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - adds r0, r4, #0 - movs r1, #0xc - bl sub_0806A1B4 - adds r1, r0, #0 - cmp r1, #0 - bne _0806F568 - lsls r0, r5, #1 - adds r0, r6, r0 - b _0806F56E -_0806F568: - lsls r0, r5, #1 - adds r0, r6, r0 - mov r1, r8 -_0806F56E: - strh r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #1 - bls _0806F53A - mov r0, sl - str r7, [r0, #0x70] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end InitDaycareMailRecordMixing - - thumb_func_start Daycare_FindEmptySpot -Daycare_FindEmptySpot: @ 0x0806F58C - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 -_0806F592: - movs r0, #0x8c - muls r0, r4, r0 - adds r0, r5, r0 - movs r1, #0xb - bl sub_0806A1B4 - cmp r0, #0 - bne _0806F5A8 - lsls r0, r4, #0x18 - asrs r0, r0, #0x18 - b _0806F5B6 -_0806F5A8: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #1 - bls _0806F592 - movs r0, #1 - rsbs r0, r0, #0 -_0806F5B6: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end Daycare_FindEmptySpot - - thumb_func_start sub_0806F5BC -sub_0806F5BC: @ 0x0806F5BC - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl MonHasMail - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0806F614 - adds r0, r4, #0 - adds r0, #0x74 - ldr r1, _0806F640 - ldr r1, [r1] - bl StringCopy - adds r1, r4, #0 - adds r1, #0x7c - adds r0, r5, #0 - bl sub_0806F4B0 - adds r0, r5, #0 - movs r1, #0x40 - bl GetMonData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0806F644 - ldr r1, [r1] - lsls r2, r0, #3 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r1, r1, r2 - adds r0, r4, #0 - adds r0, #0x50 - ldr r2, _0806F648 - adds r1, r1, r2 - ldm r1!, {r2, r3, r6} - stm r0!, {r2, r3, r6} - ldm r1!, {r2, r3, r6} - stm r0!, {r2, r3, r6} - ldm r1!, {r2, r3, r6} - stm r0!, {r2, r3, r6} - adds r0, r5, #0 - bl TakeMailFromMon -_0806F614: - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0x50 - bl memcpy - adds r0, r4, #0 - bl BoxMonRestorePP - adds r1, r4, #0 - adds r1, #0x88 - movs r0, #0 - str r0, [r1] - adds r0, r5, #0 - bl ZeroMonData - bl CompactPartySlots - bl sub_0806B004 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0806F640: .4byte gUnknown_3005AF0 -_0806F644: .4byte gUnknown_3005AEC -_0806F648: .4byte 0x00002BE0 - thumb_func_end sub_0806F5BC - - thumb_func_start StorePokemonInEmptyDaycareSlot -StorePokemonInEmptyDaycareSlot: @ 0x0806F64C - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r0, r4, #0 - bl Daycare_FindEmptySpot - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #0x8c - muls r0, r1, r0 - adds r4, r4, r0 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806F5BC - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end StorePokemonInEmptyDaycareSlot - - thumb_func_start StoreSelectedPokemonInDaycare -StoreSelectedPokemonInDaycare: @ 0x0806F670 - push {lr} - bl GetCursorSelectionMonId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x64 - muls r0, r1, r0 - ldr r1, _0806F694 - adds r0, r0, r1 - ldr r1, _0806F698 - ldr r1, [r1] - ldr r2, _0806F69C - adds r1, r1, r2 - bl StorePokemonInEmptyDaycareSlot - pop {r0} - bx r0 - .align 2, 0 -_0806F694: .4byte gUnknown_2024190 -_0806F698: .4byte gUnknown_3005AEC -_0806F69C: .4byte 0x00003030 - thumb_func_end StoreSelectedPokemonInDaycare - - thumb_func_start ShiftDaycareSlots -ShiftDaycareSlots: @ 0x0806F6A0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r5, #0 - adds r4, #0x8c - adds r0, r4, #0 - movs r1, #0xb - bl sub_0806A1B4 - cmp r0, #0 - beq _0806F6F6 - adds r0, r5, #0 - movs r1, #0xb - bl sub_0806A1B4 - adds r6, r0, #0 - cmp r6, #0 - bne _0806F6F6 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x50 - bl memcpy - adds r0, r4, #0 - bl ZeroBoxMonData - adds r4, #0x50 - adds r0, r5, #0 - adds r0, #0x50 - adds r1, r4, #0 - movs r2, #0x38 - bl memcpy - adds r2, r5, #0 - adds r2, #0x88 - movs r0, #0x8a - lsls r0, r0, #1 - adds r1, r5, r0 - ldr r0, [r1] - str r0, [r2] - str r6, [r1] - adds r0, r4, #0 - bl ClearDaycareMonMail -_0806F6F6: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end ShiftDaycareSlots - - thumb_func_start ApplyDaycareExperience -ApplyDaycareExperience: @ 0x0806F6FC - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - movs r5, #0 - ldr r7, _0806F718 -_0806F704: - adds r0, r4, #0 - bl TryIncrementMonLevel - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0806F740 - movs r6, #1 - adds r5, #1 - b _0806F72C - .align 2, 0 -_0806F718: .4byte 0x0000FFFF -_0806F71C: - movs r6, #0 - cmp r0, r7 - bne _0806F72C - ldr r0, _0806F74C - ldrh r1, [r0] - adds r0, r4, #0 - bl DeleteFirstMoveAndGiveMoveToMon -_0806F72C: - adds r0, r4, #0 - adds r1, r6, #0 - bl MonTryLearningNewMove - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - bne _0806F71C - cmp r5, #0x63 - ble _0806F704 -_0806F740: - adds r0, r4, #0 - bl CalculateMonStats - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0806F74C: .4byte gUnknown_2024186 - thumb_func_end ApplyDaycareExperience - - thumb_func_start TakeSelectedPokemonFromDaycare -TakeSelectedPokemonFromDaycare: @ 0x0806F750 - push {r4, r5, r6, r7, lr} - sub sp, #0x68 - adds r5, r0, #0 - ldr r1, _0806F7EC - bl sub_0806F4D0 - adds r0, r5, #0 - movs r1, #0xb - bl sub_0806A1B4 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - adds r0, r5, #0 - mov r1, sp - bl BoxMonToMon - mov r0, sp - movs r1, #0x38 - bl GetMonData - cmp r0, #0x64 - beq _0806F79E - mov r0, sp - movs r1, #0x19 - bl GetMonData - adds r1, r5, #0 - adds r1, #0x88 - ldr r1, [r1] - adds r0, r0, r1 - str r0, [sp, #0x64] - add r2, sp, #0x64 - mov r0, sp - movs r1, #0x19 - bl SetMonData - mov r0, sp - bl ApplyDaycareExperience -_0806F79E: - ldr r0, _0806F7F0 - movs r1, #0xfa - lsls r1, r1, #1 - adds r6, r0, r1 - adds r0, r6, #0 - mov r1, sp - movs r2, #0x64 - bl memcpy - adds r0, r5, #0 - adds r0, #0x70 - ldrh r0, [r0] - cmp r0, #0 - beq _0806F7CC - adds r4, r5, #0 - adds r4, #0x50 - adds r0, r6, #0 - adds r1, r4, #0 - bl GiveMailToMon2 - adds r0, r4, #0 - bl ClearDaycareMonMail -_0806F7CC: - adds r0, r5, #0 - bl ZeroBoxMonData - adds r1, r5, #0 - adds r1, #0x88 - movs r0, #0 - str r0, [r1] - bl CompactPartySlots - bl sub_0806B004 - adds r0, r7, #0 - add sp, #0x68 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0806F7EC: .4byte gUnknown_2021C40 -_0806F7F0: .4byte gUnknown_2024190 - thumb_func_end TakeSelectedPokemonFromDaycare - - thumb_func_start TakeSelectedPokemonMonFromDaycareShiftSlots -TakeSelectedPokemonMonFromDaycareShiftSlots: @ 0x0806F7F4 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0x8c - muls r0, r1, r0 - adds r0, r5, r0 - bl TakeSelectedPokemonFromDaycare - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - bl ShiftDaycareSlots - adds r0, r4, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end TakeSelectedPokemonMonFromDaycareShiftSlots - - thumb_func_start TakePokemonFromDaycare -TakePokemonFromDaycare: @ 0x0806F81C - push {lr} - ldr r0, _0806F838 - ldr r0, [r0] - ldr r1, _0806F83C - adds r0, r0, r1 - ldr r1, _0806F840 - ldrb r1, [r1] - bl TakeSelectedPokemonMonFromDaycareShiftSlots - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 -_0806F838: .4byte gUnknown_3005AEC -_0806F83C: .4byte 0x00003030 -_0806F840: .4byte gUnknown_2037280 - thumb_func_end TakePokemonFromDaycare - - thumb_func_start GetLevelAfterDaycareSteps -GetLevelAfterDaycareSteps: @ 0x0806F844 - push {r4, r5, lr} - sub sp, #0x54 - adds r4, r0, #0 - adds r5, r1, #0 - mov r0, sp - adds r1, r4, #0 - movs r2, #0x50 - bl memcpy - adds r0, r4, #0 - movs r1, #0x19 - bl sub_0806A1B4 - adds r0, r0, r5 - str r0, [sp, #0x50] - add r2, sp, #0x50 - mov r0, sp - movs r1, #0x19 - bl SetBoxMonData - mov r0, sp - bl GetLevelFromBoxMonExp - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #0x54 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetLevelAfterDaycareSteps - - thumb_func_start GetNumLevelsGainedFromSteps -GetNumLevelsGainedFromSteps: @ 0x0806F880 - push {r4, r5, lr} - adds r5, r0, #0 - bl GetLevelFromBoxMonExp - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - adds r0, #0x88 - ldr r1, [r0] - adds r0, r5, #0 - bl GetLevelAfterDaycareSteps - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, r0, r4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetNumLevelsGainedFromSteps - - thumb_func_start GetNumLevelsGainedForDaycareMon -GetNumLevelsGainedForDaycareMon: @ 0x0806F8AC - push {r4, r5, lr} - adds r5, r0, #0 - bl GetNumLevelsGainedFromSteps - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _0806F8D8 - adds r1, r4, #0 - movs r2, #0 - movs r3, #2 - bl sub_080089D8 - ldr r1, _0806F8DC - adds r0, r5, #0 - bl sub_0806F4D0 - adds r0, r4, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0806F8D8: .4byte gUnknown_2021C54 -_0806F8DC: .4byte gUnknown_2021C40 - thumb_func_end GetNumLevelsGainedForDaycareMon - - thumb_func_start GetDaycareCostForSelectedMon -GetDaycareCostForSelectedMon: @ 0x0806F8E0 - push {r4, r5, lr} - adds r5, r0, #0 - bl GetNumLevelsGainedFromSteps - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _0806F910 - adds r0, r5, #0 - bl sub_0806F4D0 - movs r0, #0x64 - muls r4, r0, r4 - adds r4, #0x64 - ldr r0, _0806F914 - adds r1, r4, #0 - movs r2, #0 - movs r3, #5 - bl sub_080089D8 - adds r0, r4, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0806F910: .4byte gUnknown_2021C40 -_0806F914: .4byte gUnknown_2021C54 - thumb_func_end GetDaycareCostForSelectedMon - - thumb_func_start GetDaycareCostForMon -GetDaycareCostForMon: @ 0x0806F918 - push {lr} - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r2, #0x8c - muls r1, r2, r1 - adds r0, r0, r1 - bl GetDaycareCostForSelectedMon - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - thumb_func_end GetDaycareCostForMon - - thumb_func_start GetDaycareCost -GetDaycareCost: @ 0x0806F930 - push {lr} - ldr r0, _0806F94C - ldr r0, [r0] - ldr r1, _0806F950 - adds r0, r0, r1 - ldr r1, _0806F954 - ldrb r1, [r1] - bl GetDaycareCostForMon - ldr r1, _0806F958 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0806F94C: .4byte gUnknown_3005AEC -_0806F950: .4byte 0x00003030 -_0806F954: .4byte gUnknown_2037280 -_0806F958: .4byte gUnknown_2037282 - thumb_func_end GetDaycareCost - - thumb_func_start Debug_AddDaycareSteps -Debug_AddDaycareSteps: @ 0x0806F95C - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _0806F97C - ldr r2, [r1] - ldr r1, _0806F980 - adds r3, r2, r1 - ldr r1, [r3] - adds r1, r1, r0 - str r1, [r3] - ldr r1, _0806F984 - adds r2, r2, r1 - ldr r1, [r2] - adds r1, r1, r0 - str r1, [r2] - bx lr - .align 2, 0 -_0806F97C: .4byte gUnknown_3005AEC -_0806F980: .4byte 0x000030B8 -_0806F984: .4byte 0x00003144 - thumb_func_end Debug_AddDaycareSteps - - thumb_func_start GetNumLevelsGainedFromDaycare -GetNumLevelsGainedFromDaycare: @ 0x0806F988 - push {r4, r5, r6, lr} - ldr r6, _0806F9AC - ldr r5, _0806F9B0 - ldrh r0, [r5] - movs r4, #0x8c - adds r1, r0, #0 - muls r1, r4, r1 - ldr r0, _0806F9B4 - adds r1, r1, r0 - ldr r0, [r6] - adds r0, r0, r1 - movs r1, #0xb - bl sub_0806A1B4 - cmp r0, #0 - bne _0806F9B8 - movs r0, #0 - b _0806F9CE - .align 2, 0 -_0806F9AC: .4byte gUnknown_3005AEC -_0806F9B0: .4byte gUnknown_2037280 -_0806F9B4: .4byte 0x00003030 -_0806F9B8: - ldrh r0, [r5] - adds r1, r0, #0 - muls r1, r4, r1 - ldr r0, _0806F9D4 - adds r1, r1, r0 - ldr r0, [r6] - adds r0, r0, r1 - bl GetNumLevelsGainedForDaycareMon - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_0806F9CE: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0806F9D4: .4byte 0x00003030 - thumb_func_end GetNumLevelsGainedFromDaycare - - thumb_func_start ClearDaycareMonMail -ClearDaycareMonMail: @ 0x0806F9D8 - push {lr} - movs r3, #0 - movs r2, #7 - adds r1, r0, #0 - adds r1, #0x2b -_0806F9E2: - strb r3, [r1] - subs r1, #1 - subs r2, #1 - cmp r2, #0 - bge _0806F9E2 - adds r2, r0, #0 - adds r2, #0x2c - movs r3, #0 - adds r1, r0, #0 - adds r1, #0x36 -_0806F9F6: - strb r3, [r1] - subs r1, #1 - cmp r1, r2 - bge _0806F9F6 - bl ClearMailStruct - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ClearDaycareMonMail - - thumb_func_start ClearDaycareMon -ClearDaycareMon: @ 0x0806FA08 - push {r4, lr} - adds r4, r0, #0 - bl ZeroBoxMonData - adds r1, r4, #0 - adds r1, #0x88 - movs r0, #0 - str r0, [r1] - adds r4, #0x50 - adds r0, r4, #0 - bl ClearDaycareMonMail - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ClearDaycareMon - - thumb_func_start ClearAllDaycareData -ClearAllDaycareData: @ 0x0806FA28 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r4, #0 - movs r6, #0x8c -_0806FA30: - adds r0, r4, #0 - muls r0, r6, r0 - adds r0, r5, r0 - bl ClearDaycareMon - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #1 - bls _0806FA30 - movs r1, #0x8c - lsls r1, r1, #1 - adds r0, r5, r1 - movs r1, #0 - str r1, [r0] - movs r2, #0x8e - lsls r2, r2, #1 - adds r0, r5, r2 - strb r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end ClearAllDaycareData - - thumb_func_start GetEggSpecies -GetEggSpecies: @ 0x0806FA5C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - movs r0, #0 - mov r8, r0 - ldr r0, _0806FA88 - mov ip, r0 -_0806FA6E: - movs r7, #0 - movs r6, #1 - movs r4, #0x80 - lsls r4, r4, #9 - movs r5, #0x28 - mov r3, ip - adds r3, #0x28 -_0806FA7C: - movs r1, #0 - ldrh r0, [r3, #4] - cmp r0, r2 - bne _0806FA8C - lsrs r2, r4, #0x10 - b _0806FAB8 - .align 2, 0 -_0806FA88: .4byte gUnknown_82F5CA4 -_0806FA8C: - adds r1, #1 - cmp r1, #4 - bgt _0806FAA2 - lsls r0, r1, #3 - adds r0, r0, r5 - add r0, ip - ldrh r0, [r0, #4] - cmp r0, r2 - bne _0806FA8C - lsrs r2, r4, #0x10 - movs r7, #1 -_0806FAA2: - cmp r7, #0 - bne _0806FAB8 - movs r0, #0x80 - lsls r0, r0, #9 - adds r4, r4, r0 - adds r5, #0x28 - adds r3, #0x28 - adds r6, #1 - ldr r0, _0806FAD8 - cmp r6, r0 - ble _0806FA7C -_0806FAB8: - movs r0, #0xce - lsls r0, r0, #1 - cmp r6, r0 - beq _0806FACA - movs r0, #1 - add r8, r0 - mov r0, r8 - cmp r0, #4 - ble _0806FA6E -_0806FACA: - adds r0, r2, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0806FAD8: .4byte 0x0000019B - thumb_func_end GetEggSpecies - - thumb_func_start GetSlotToInheritNature -GetSlotToInheritNature: @ 0x0806FADC - push {r4, r5, r6, r7, lr} - sub sp, #8 - adds r6, r0, #0 - movs r7, #1 - rsbs r7, r7, #0 - movs r4, #0 -_0806FAE8: - movs r0, #0x8c - muls r0, r4, r0 - adds r0, r6, r0 - bl GetBoxMonGender - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xfe - bne _0806FAFC - adds r7, r4, #0 -_0806FAFC: - adds r4, #1 - cmp r4, #1 - ble _0806FAE8 - movs r5, #0 - movs r4, #0 -_0806FB06: - movs r0, #0x8c - muls r0, r4, r0 - adds r0, r6, r0 - movs r1, #0xb - bl sub_0806A1B4 - lsls r1, r4, #2 - add r1, sp - str r0, [r1] - cmp r0, #0x84 - bne _0806FB20 - adds r5, #1 - adds r7, r4, #0 -_0806FB20: - adds r4, #1 - cmp r4, #1 - ble _0806FB06 - cmp r5, #2 - bne _0806FB3A - bl Random - lsls r0, r0, #0x10 - ldr r1, _0806FB5C - movs r7, #1 - cmp r0, r1 - bls _0806FB3A - movs r7, #0 -_0806FB3A: - movs r0, #0x8c - muls r0, r7, r0 - adds r0, r6, r0 - movs r1, #0xc - bl sub_0806A1B4 - cmp r0, #0xc3 - bne _0806FB56 - bl Random - lsls r0, r0, #0x10 - ldr r1, _0806FB5C - cmp r0, r1 - bls _0806FB60 -_0806FB56: - movs r0, #1 - rsbs r0, r0, #0 - b _0806FB62 - .align 2, 0 -_0806FB5C: .4byte 0x7FFE0000 -_0806FB60: - adds r0, r7, #0 -_0806FB62: - add sp, #8 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetSlotToInheritNature - - thumb_func_start _TriggerPendingDaycareEgg -_TriggerPendingDaycareEgg: @ 0x0806FB6C - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - movs r6, #0 - ldr r0, _0806FBB0 - ldrh r0, [r0, #0x24] - bl sub_0806F094 - adds r0, r5, #0 - bl GetSlotToInheritNature - adds r1, r0, #0 - cmp r1, #0 - bge _0806FBB8 - bl sub_0806F0A4 - adds r4, r0, #0 - bl Random - movs r1, #0x8c - lsls r1, r1, #1 - adds r5, r5, r1 - lsls r4, r4, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _0806FBB4 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r0, #1 - orrs r4, r0 - str r4, [r5] - b _0806FC04 - .align 2, 0 -_0806FBB0: .4byte gUnknown_3002360 -_0806FBB4: .4byte 0x0000FFFE -_0806FBB8: - movs r0, #0x8c - muls r0, r1, r0 - adds r0, r5, r0 - movs r1, #0 - movs r2, #0 - bl sub_0806A1B4 - bl GetNatureFromPersonality - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 -_0806FBCE: - bl sub_0806F0A4 - adds r4, r0, #0 - bl Random - lsls r4, r4, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - orrs r4, r0 - adds r0, r4, #0 - bl GetNatureFromPersonality - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r7, r0 - bne _0806FBF2 - cmp r4, #0 - bne _0806FBFC -_0806FBF2: - adds r6, #1 - movs r0, #0x96 - lsls r0, r0, #4 - cmp r6, r0 - ble _0806FBCE -_0806FBFC: - movs r1, #0x8c - lsls r1, r1, #1 - adds r0, r5, r1 - str r4, [r0] -_0806FC04: - movs r0, #0x86 - bl FlagSet - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end _TriggerPendingDaycareEgg - - thumb_func_start _TriggerPendingDaycareMaleEgg -_TriggerPendingDaycareMaleEgg: @ 0x0806FC10 - push {r4, lr} - adds r4, r0, #0 - bl Random - movs r1, #0x8c - lsls r1, r1, #1 - adds r4, r4, r1 - movs r2, #0x80 - lsls r2, r2, #8 - adds r1, r2, #0 - orrs r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [r4] - movs r0, #0x86 - bl FlagSet - pop {r4} - pop {r0} - bx r0 - thumb_func_end _TriggerPendingDaycareMaleEgg - - thumb_func_start TriggerPendingDaycareEgg -TriggerPendingDaycareEgg: @ 0x0806FC38 - push {lr} - ldr r0, _0806FC4C - ldr r0, [r0] - ldr r1, _0806FC50 - adds r0, r0, r1 - bl _TriggerPendingDaycareEgg - pop {r0} - bx r0 - .align 2, 0 -_0806FC4C: .4byte gUnknown_3005AEC -_0806FC50: .4byte 0x00003030 - thumb_func_end TriggerPendingDaycareEgg - - thumb_func_start TriggerPendingDaycareMaleEgg -TriggerPendingDaycareMaleEgg: @ 0x0806FC54 - push {lr} - ldr r0, _0806FC68 - ldr r0, [r0] - ldr r1, _0806FC6C - adds r0, r0, r1 - bl _TriggerPendingDaycareMaleEgg - pop {r0} - bx r0 - .align 2, 0 -_0806FC68: .4byte gUnknown_3005AEC -_0806FC6C: .4byte 0x00003030 - thumb_func_end TriggerPendingDaycareMaleEgg - - thumb_func_start RemoveIVIndexFromList -RemoveIVIndexFromList: @ 0x0806FC70 - push {r4, lr} - sub sp, #8 - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r1, r4, r1 - movs r0, #0xff - strb r0, [r1] - movs r2, #0 -_0806FC82: - mov r1, sp - adds r0, r1, r2 - adds r1, r4, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, #5 - ble _0806FC82 - movs r3, #0 - movs r2, #0 -_0806FC96: - mov r1, sp - adds r0, r1, r2 - ldrb r1, [r0] - adds r0, r1, #0 - cmp r0, #0xff - beq _0806FCA8 - adds r0, r4, r3 - strb r1, [r0] - adds r3, #1 -_0806FCA8: - adds r2, #1 - cmp r2, #5 - ble _0806FC96 - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RemoveIVIndexFromList - - thumb_func_start InheritIVs -InheritIVs: @ 0x0806FCB8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x14 - mov sb, r0 - mov r8, r1 - movs r5, #0 - add r1, sp, #4 - add r7, sp, #0xc - adds r2, r1, #0 -_0806FCCE: - adds r0, r2, r5 - strb r5, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #5 - bls _0806FCCE - movs r5, #0 - adds r6, r1, #0 -_0806FCE0: - bl Random - mov r1, sp - adds r4, r1, r5 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #6 - subs r1, r1, r5 - bl __modsi3 - adds r0, r6, r0 - ldrb r0, [r0] - strb r0, [r4] - adds r0, r6, #0 - adds r1, r5, #0 - bl RemoveIVIndexFromList - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #2 - bls _0806FCE0 - movs r5, #0 - movs r4, #1 -_0806FD10: - bl Random - adds r1, r7, r5 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ands r0, r4 - strb r0, [r1] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #2 - bls _0806FD10 - movs r5, #0 -_0806FD2A: - mov r1, sp - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, #5 - bhi _0806FE06 - lsls r0, r0, #2 - ldr r1, _0806FD40 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806FD40: .4byte _0806FD44 -_0806FD44: @ jump table - .4byte _0806FD5C @ case 0 - .4byte _0806FD7A @ case 1 - .4byte _0806FD94 @ case 2 - .4byte _0806FDAE @ case 3 - .4byte _0806FDC8 @ case 4 - .4byte _0806FDE8 @ case 5 -_0806FD5C: - adds r0, r7, r5 - ldrb r1, [r0] - movs r0, #0x8c - muls r0, r1, r0 - add r0, r8 - movs r1, #0x27 - bl sub_0806A1B4 - add r2, sp, #0x10 - strb r0, [r2] - mov r0, sb - movs r1, #0x27 - bl SetMonData - b _0806FE06 -_0806FD7A: - add r4, sp, #0x10 - adds r0, r7, r5 - ldrb r1, [r0] - movs r0, #0x8c - muls r0, r1, r0 - add r0, r8 - movs r1, #0x28 - bl sub_0806A1B4 - strb r0, [r4] - mov r0, sb - movs r1, #0x28 - b _0806FDE0 -_0806FD94: - add r4, sp, #0x10 - adds r0, r7, r5 - ldrb r1, [r0] - movs r0, #0x8c - muls r0, r1, r0 - add r0, r8 - movs r1, #0x29 - bl sub_0806A1B4 - strb r0, [r4] - mov r0, sb - movs r1, #0x29 - b _0806FDE0 -_0806FDAE: - add r4, sp, #0x10 - adds r0, r7, r5 - ldrb r1, [r0] - movs r0, #0x8c - muls r0, r1, r0 - add r0, r8 - movs r1, #0x2a - bl sub_0806A1B4 - strb r0, [r4] - mov r0, sb - movs r1, #0x2a - b _0806FDE0 -_0806FDC8: - add r4, sp, #0x10 - adds r0, r7, r5 - ldrb r1, [r0] - movs r0, #0x8c - muls r0, r1, r0 - add r0, r8 - movs r1, #0x2b - bl sub_0806A1B4 - strb r0, [r4] - mov r0, sb - movs r1, #0x2b -_0806FDE0: - adds r2, r4, #0 - bl SetMonData - b _0806FE06 -_0806FDE8: - add r4, sp, #0x10 - adds r0, r7, r5 - ldrb r1, [r0] - movs r0, #0x8c - muls r0, r1, r0 - add r0, r8 - movs r1, #0x2c - bl sub_0806A1B4 - strb r0, [r4] - mov r0, sb - movs r1, #0x2c - adds r2, r4, #0 - bl SetMonData -_0806FE06: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #2 - bls _0806FD2A - add sp, #0x14 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end InheritIVs - - thumb_func_start GetEggMoves -GetEggMoves: @ 0x0806FE20 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r1 - movs r6, #0 - movs r4, #0 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - movs r2, #0 - ldr r5, _0806FE48 - ldrh r1, [r5] - ldr r7, _0806FE4C - adds r0, r3, r7 - cmp r1, r0 - bne _0806FE50 - movs r4, #1 - b _0806FE72 - .align 2, 0 -_0806FE48: .4byte gUnknown_82FB764 -_0806FE4C: .4byte 0x00004E20 -_0806FE50: - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, _0806FEBC - ldr r5, _0806FEC0 - cmp r2, r0 - bhi _0806FE72 - lsls r0, r2, #1 - adds r0, r0, r5 - ldrh r1, [r0] - ldr r7, _0806FEC4 - adds r0, r3, r7 - cmp r1, r0 - bne _0806FE50 - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_0806FE72: - movs r2, #0 - lsls r0, r4, #1 - adds r0, r0, r5 - ldrh r0, [r0] - ldr r1, _0806FEC4 - cmp r0, r1 - bhi _0806FEAE - adds r7, r5, #0 - adds r3, r1, #0 -_0806FE84: - lsls r1, r2, #1 - add r1, r8 - adds r0, r4, r2 - lsls r0, r0, #1 - adds r0, r0, r7 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #9 - bhi _0806FEAE - adds r0, r4, r2 - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r0, [r0] - cmp r0, r3 - bls _0806FE84 -_0806FEAE: - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0806FEBC: .4byte 0x00000471 -_0806FEC0: .4byte gUnknown_82FB764 -_0806FEC4: .4byte 0x00004E20 - thumb_func_end GetEggMoves - - thumb_func_start BuildEggMoveset -BuildEggMoveset: @ 0x0806FEC8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - adds r7, r0, #0 - mov sl, r1 - mov sb, r2 - movs r0, #0 - str r0, [sp] - movs r6, #0 - ldr r5, _0806FFCC - movs r2, #0 - ldr r4, _0806FFD0 - ldr r3, _0806FFD4 -_0806FEE8: - lsls r1, r6, #1 - adds r0, r1, r5 - strh r2, [r0] - adds r0, r1, r4 - strh r2, [r0] - adds r1, r1, r3 - strh r2, [r1] - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #3 - bls _0806FEE8 - movs r6, #0 - ldr r2, _0806FFD8 - movs r1, #0 -_0806FF06: - lsls r0, r6, #1 - adds r0, r0, r2 - strh r1, [r0] - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #9 - bls _0806FF06 - movs r6, #0 - ldr r2, _0806FFDC - movs r1, #0 -_0806FF1C: - lsls r0, r6, #1 - adds r0, r0, r2 - strh r1, [r0] - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0x31 - bls _0806FF1C - adds r0, r7, #0 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _0806FFDC - bl GetLevelUpMovesBySpecies - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - movs r6, #0 - ldr r1, _0806FFD0 - mov r8, r1 -_0806FF4A: - adds r5, r6, #0 - adds r5, #0xd - mov r0, sl - adds r1, r5, #0 - bl sub_0806A1B4 - lsls r4, r6, #1 - mov r2, r8 - adds r1, r4, r2 - strh r0, [r1] - mov r0, sb - adds r1, r5, #0 - bl sub_0806A1B4 - ldr r1, _0806FFCC - adds r4, r4, r1 - strh r0, [r4] - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #3 - bls _0806FF4A - ldr r1, _0806FFD8 - adds r0, r7, #0 - bl GetEggMoves - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r6, #0 -_0806FF86: - ldr r0, _0806FFD0 - lsls r1, r6, #1 - adds r2, r1, r0 - ldrh r1, [r2] - mov sb, r0 - cmp r1, #0 - beq _0806FFFC - movs r5, #0 - cmp r5, r8 - bhs _0806FFEE - adds r4, r2, #0 - ldr r2, _0806FFE0 -_0806FF9E: - ldr r0, _0806FFD8 - lsls r1, r5, #1 - adds r1, r1, r0 - ldrh r0, [r4] - ldrh r1, [r1] - cmp r0, r1 - bne _0806FFE4 - adds r1, r0, #0 - adds r0, r7, #0 - str r2, [sp, #8] - bl GiveMoveToMon - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r2, [sp, #8] - cmp r0, r2 - bne _0806FFEE - ldrh r1, [r4] - adds r0, r7, #0 - bl DeleteFirstMoveAndGiveMoveToMon - b _0806FFEE - .align 2, 0 -_0806FFCC: .4byte gUnknown_20246F0 -_0806FFD0: .4byte gUnknown_20246CC -_0806FFD4: .4byte gUnknown_20246D4 -_0806FFD8: .4byte gUnknown_20246DC -_0806FFDC: .4byte gUnknown_2024668 -_0806FFE0: .4byte 0x0000FFFF -_0806FFE4: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, r8 - blo _0806FF9E -_0806FFEE: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r3, _08070118 - mov sb, r3 - cmp r6, #3 - bls _0806FF86 -_0806FFFC: - movs r6, #0 -_0806FFFE: - lsls r0, r6, #1 - mov r2, sb - adds r1, r0, r2 - ldrh r1, [r1] - adds r2, r0, #0 - adds r6, #1 - mov r8, r6 - cmp r1, #0 - beq _08070060 - movs r5, #0 - ldr r0, _08070118 - adds r4, r2, r0 - ldr r6, _0807011C - mov sb, r0 -_0807001A: - ldr r3, _08070120 - adds r0, r5, r3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl ItemIdToBattleMoveId - ldrh r1, [r4] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r1, r0 - bne _08070056 - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - adds r0, r7, #0 - bl CanMonLearnTMHM - cmp r0, #0 - beq _08070056 - ldrh r1, [r4] - adds r0, r7, #0 - bl GiveMoveToMon - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r6 - bne _08070056 - ldrh r1, [r4] - adds r0, r7, #0 - bl DeleteFirstMoveAndGiveMoveToMon -_08070056: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0x39 - bls _0807001A -_08070060: - mov r1, r8 - lsls r0, r1, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #3 - bls _0806FFFE - movs r6, #0 - mov r2, sb - ldrh r0, [r2] - ldr r3, _08070124 - mov sl, r3 - cmp r0, #0 - beq _080700CA - mov r4, sb - ldr r0, _08070128 - mov sb, r0 - mov ip, sl -_08070080: - movs r5, #0 - lsls r2, r6, #1 - adds r6, #1 - mov r8, r6 - adds r3, r2, r4 -_0807008A: - lsls r0, r5, #1 - add r0, sb - ldrh r2, [r3] - adds r1, r2, #0 - ldrh r0, [r0] - cmp r1, r0 - bne _080700AC - cmp r1, #0 - beq _080700AC - ldr r1, [sp] - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp] - lsls r1, r1, #1 - add r1, ip - strh r2, [r1] -_080700AC: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #3 - bls _0807008A - mov r1, r8 - lsls r0, r1, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #3 - bhi _080700CA - lsls r0, r6, #1 - adds r0, r0, r4 - ldrh r0, [r0] - cmp r0, #0 - bne _08070080 -_080700CA: - movs r6, #0 - mov r2, sl - ldrh r0, [r2] - cmp r0, #0 - beq _08070154 -_080700D4: - movs r5, #0 - adds r3, r6, #1 - mov r8, r3 - ldr r0, [sp, #4] - cmp r5, r0 - bhs _0807013C - ldr r2, _0807011C -_080700E2: - ldr r1, _0807012C - lsls r0, r5, #1 - adds r0, r0, r1 - ldrh r1, [r0] - cmp r1, #0 - beq _08070130 - lsls r0, r6, #1 - mov r3, sl - adds r4, r0, r3 - ldrh r0, [r4] - cmp r0, r1 - bne _08070130 - adds r1, r0, #0 - adds r0, r7, #0 - str r2, [sp, #8] - bl GiveMoveToMon - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r2, [sp, #8] - cmp r0, r2 - bne _0807013C - ldrh r1, [r4] - adds r0, r7, #0 - bl DeleteFirstMoveAndGiveMoveToMon - b _0807013C - .align 2, 0 -_08070118: .4byte gUnknown_20246CC -_0807011C: .4byte 0x0000FFFF -_08070120: .4byte 0x00000121 -_08070124: .4byte gUnknown_20246D4 -_08070128: .4byte gUnknown_20246F0 -_0807012C: .4byte gUnknown_2024668 -_08070130: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, [sp, #4] - cmp r5, r0 - blo _080700E2 -_0807013C: - mov r1, r8 - lsls r0, r1, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #3 - bhi _08070154 - ldr r0, _08070164 - lsls r1, r6, #1 - adds r1, r1, r0 - ldrh r1, [r1] - mov sl, r0 - cmp r1, #0 - bne _080700D4 -_08070154: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08070164: .4byte gUnknown_20246D4 - thumb_func_end BuildEggMoveset - - thumb_func_start RemoveEggFromDayCare -RemoveEggFromDayCare: @ 0x08070168 - adds r2, r0, #0 - movs r1, #0x8c - lsls r1, r1, #1 - adds r0, r2, r1 - movs r1, #0 - str r1, [r0] - movs r3, #0x8e - lsls r3, r3, #1 - adds r0, r2, r3 - strb r1, [r0] - bx lr - .align 2, 0 - thumb_func_end RemoveEggFromDayCare - - thumb_func_start RejectEggFromDayCare -RejectEggFromDayCare: @ 0x08070180 - push {lr} - ldr r0, _08070194 - ldr r0, [r0] - ldr r1, _08070198 - adds r0, r0, r1 - bl RemoveEggFromDayCare - pop {r0} - bx r0 - .align 2, 0 -_08070194: .4byte gUnknown_3005AEC -_08070198: .4byte 0x00003030 - thumb_func_end RejectEggFromDayCare - - thumb_func_start AlterEggSpeciesWithIncenseItem -AlterEggSpeciesWithIncenseItem: @ 0x0807019C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrh r1, [r4] - movs r7, #0xb4 - lsls r7, r7, #1 - cmp r1, r7 - beq _080701B4 - movs r0, #0xaf - lsls r0, r0, #1 - cmp r1, r0 - bne _080701F6 -_080701B4: - adds r0, r5, #0 - movs r1, #0xc - bl sub_0806A1B4 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r0, r5, #0 - adds r0, #0x8c - movs r1, #0xc - bl sub_0806A1B4 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldrh r0, [r4] - cmp r0, r7 - bne _080701E0 - cmp r6, #0xdd - beq _080701E0 - cmp r2, #0xdd - beq _080701E0 - movs r0, #0xca - strh r0, [r4] -_080701E0: - ldrh r1, [r4] - movs r0, #0xaf - lsls r0, r0, #1 - cmp r1, r0 - bne _080701F6 - cmp r6, #0xdc - beq _080701F6 - cmp r2, #0xdc - beq _080701F6 - movs r0, #0xb7 - strh r0, [r4] -_080701F6: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end AlterEggSpeciesWithIncenseItem - - thumb_func_start GiveVoltTackleIfLightBall -GiveVoltTackleIfLightBall: @ 0x080701FC - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r4, r1, #0 - adds r0, r4, #0 - movs r1, #0xc - bl sub_0806A1B4 - adds r5, r0, #0 - adds r4, #0x8c - adds r0, r4, #0 - movs r1, #0xc - bl sub_0806A1B4 - cmp r5, #0xca - beq _0807021E - cmp r0, #0xca - bne _0807023A -_0807021E: - movs r4, #0xac - lsls r4, r4, #1 - adds r0, r6, #0 - adds r1, r4, #0 - bl GiveMoveToMon - lsls r0, r0, #0x10 - ldr r1, _08070240 - cmp r0, r1 - bne _0807023A - adds r0, r6, #0 - adds r1, r4, #0 - bl DeleteFirstMoveAndGiveMoveToMon -_0807023A: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08070240: .4byte 0xFFFF0000 - thumb_func_end GiveVoltTackleIfLightBall - - thumb_func_start DetermineEggSpeciesAndParentSlots -DetermineEggSpeciesAndParentSlots: @ 0x08070244 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r7, r0, #0 - adds r6, r1, #0 - movs r4, #0 - movs r0, #1 - mov r8, r0 -_08070256: - movs r0, #0x8c - muls r0, r4, r0 - adds r5, r7, r0 - adds r0, r5, #0 - movs r1, #0xb - bl sub_0806A1B4 - lsls r1, r4, #1 - add r1, sp - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x84 - bne _0807027E - adds r0, r4, #0 - mov r1, r8 - eors r0, r1 - strb r0, [r6] - strb r4, [r6, #1] - b _08070296 -_0807027E: - adds r0, r5, #0 - bl GetBoxMonGender - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xfe - bne _08070296 - strb r4, [r6] - adds r0, r4, #0 - mov r1, r8 - eors r0, r1 - strb r0, [r6, #1] -_08070296: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #1 - bls _08070256 - ldrb r0, [r6] - lsls r0, r0, #1 - add r0, sp - ldrh r0, [r0] - bl GetEggSpecies - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x1d - bne _080702C8 - movs r1, #0x8c - lsls r1, r1, #1 - adds r0, r7, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - beq _080702C8 - movs r4, #0x20 -_080702C8: - ldr r0, _0807031C - cmp r4, r0 - bne _080702E4 - movs r1, #0x8c - lsls r1, r1, #1 - adds r0, r7, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - beq _080702E4 - movs r4, #0xc1 - lsls r4, r4, #1 -_080702E4: - ldrb r0, [r6, #1] - lsls r0, r0, #1 - add r0, sp - ldrh r0, [r0] - cmp r0, #0x84 - bne _0807030C - ldrb r1, [r6] - movs r0, #0x8c - muls r0, r1, r0 - adds r0, r7, r0 - bl GetBoxMonGender - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xfe - beq _0807030C - ldrb r1, [r6, #1] - ldrb r0, [r6] - strb r0, [r6, #1] - strb r1, [r6] -_0807030C: - adds r0, r4, #0 - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0807031C: .4byte 0x00000183 - thumb_func_end DetermineEggSpeciesAndParentSlots - - thumb_func_start _GiveEggFromDaycare -_GiveEggFromDaycare: @ 0x08070320 - push {r4, r5, r6, lr} - sub sp, #0x6c - adds r6, r0, #0 - add r5, sp, #0x64 - adds r1, r5, #0 - bl DetermineEggSpeciesAndParentSlots - add r4, sp, #0x68 - strh r0, [r4] - adds r0, r4, #0 - adds r1, r6, #0 - bl AlterEggSpeciesWithIncenseItem - ldrh r1, [r4] - mov r0, sp - adds r2, r6, #0 - bl AnimSolarbeamSmallOrb - mov r0, sp - adds r1, r6, #0 - bl InheritIVs - ldrb r0, [r5, #1] - movs r2, #0x8c - adds r1, r0, #0 - muls r1, r2, r1 - adds r1, r6, r1 - ldrb r0, [r5] - muls r2, r0, r2 - adds r2, r6, r2 - mov r0, sp - bl BuildEggMoveset - ldrh r0, [r4] - cmp r0, #0xac - bne _08070370 - mov r0, sp - adds r1, r6, #0 - bl GiveVoltTackleIfLightBall -_08070370: - mov r2, sp - adds r2, #0x6a - movs r0, #1 - strb r0, [r2] - mov r0, sp - movs r1, #0x2d - bl SetMonData - ldr r0, _080703A8 - movs r1, #0xfa - lsls r1, r1, #1 - adds r0, r0, r1 - mov r1, sp - movs r2, #0x64 - bl memcpy - bl CompactPartySlots - bl sub_0806B004 - adds r0, r6, #0 - bl RemoveEggFromDayCare - add sp, #0x6c - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080703A8: .4byte gUnknown_2024190 - thumb_func_end _GiveEggFromDaycare - - thumb_func_start sub_080703AC -sub_080703AC: @ 0x080703AC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x18 - adds r7, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - movs r4, #0 - str r4, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - str r4, [sp, #0xc] - adds r1, r5, #0 - movs r2, #5 - movs r3, #0x20 - bl CreateMon - movs r0, #0x12 - add r0, sp - mov r8, r0 - strb r4, [r0] - movs r1, #4 - add r0, sp, #0x10 - strh r1, [r0] - adds r0, r7, #0 - movs r1, #0x26 - add r2, sp, #0x10 - bl SetMonData - ldr r2, _08070444 - adds r0, r7, #0 - movs r1, #2 - bl SetMonData - lsls r2, r5, #3 - subs r2, r2, r5 - lsls r2, r2, #2 - ldr r0, _08070448 - adds r2, r2, r0 - adds r0, r7, #0 - movs r1, #0x20 - bl SetMonData - adds r0, r7, #0 - movs r1, #0x24 - mov r2, r8 - bl SetMonData - cmp r6, #0 - beq _08070428 - mov r2, sp - adds r2, #0x13 - movs r0, #0xfd - strb r0, [r2] - adds r0, r7, #0 - movs r1, #0x23 - bl SetMonData -_08070428: - add r2, sp, #0x14 - movs r0, #1 - strb r0, [r2] - adds r0, r7, #0 - movs r1, #0x2d - bl SetMonData - add sp, #0x18 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08070444: .4byte gUnknown_85C8C62 -_08070448: .4byte gUnknown_82F0D65 - thumb_func_end sub_080703AC - - thumb_func_start AnimSolarbeamSmallOrb -AnimSolarbeamSmallOrb: @ 0x0807044C - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0x14 - adds r6, r0, #0 - adds r5, r1, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - movs r0, #0x8c - lsls r0, r0, #1 - adds r2, r2, r0 - ldr r1, [r2] - movs r0, #1 - str r0, [sp] - str r1, [sp, #4] - movs r4, #0 - str r4, [sp, #8] - str r4, [sp, #0xc] - adds r0, r6, #0 - adds r1, r5, #0 - movs r2, #5 - movs r3, #0x20 - bl CreateMon - movs r0, #0x12 - add r0, sp - mov r8, r0 - strb r4, [r0] - movs r1, #4 - add r0, sp, #0x10 - strh r1, [r0] - adds r0, r6, #0 - movs r1, #0x26 - add r2, sp, #0x10 - bl SetMonData - ldr r2, _080704C8 - adds r0, r6, #0 - movs r1, #2 - bl SetMonData - lsls r2, r5, #3 - subs r2, r2, r5 - lsls r2, r2, #2 - ldr r0, _080704CC - adds r2, r2, r0 - adds r0, r6, #0 - movs r1, #0x20 - bl SetMonData - adds r0, r6, #0 - movs r1, #0x24 - mov r2, r8 - bl SetMonData - add sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080704C8: .4byte gUnknown_85C8C62 -_080704CC: .4byte gUnknown_82F0D65 - thumb_func_end AnimSolarbeamSmallOrb - - thumb_func_start sub_080704D0 -sub_080704D0: @ 0x080704D0 - push {lr} - ldr r0, _080704E4 - ldr r0, [r0] - ldr r1, _080704E8 - adds r0, r0, r1 - bl _GiveEggFromDaycare - pop {r0} - bx r0 - .align 2, 0 -_080704E4: .4byte gUnknown_3005AEC -_080704E8: .4byte 0x00003030 - thumb_func_end sub_080704D0 - - thumb_func_start _DoEggActions_CheckHatch -_DoEggActions_CheckHatch: @ 0x080704EC - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r6, r0, #0 - movs r7, #0 - movs r5, #0 -_080704F6: - movs r0, #0x8c - adds r4, r5, #0 - muls r4, r0, r4 - adds r0, r6, r4 - movs r1, #5 - bl sub_0806A1B4 - cmp r0, #0 - beq _08070516 - adds r1, r6, #0 - adds r1, #0x88 - adds r1, r1, r4 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - adds r7, #1 -_08070516: - adds r5, #1 - cmp r5, #1 - bls _080704F6 - movs r1, #0x8c - lsls r1, r1, #1 - adds r0, r6, r1 - ldr r0, [r0] - cmp r0, #0 - bne _0807055C - cmp r7, #2 - bne _0807055C - subs r1, #4 - adds r0, r6, r1 - ldrb r0, [r0] - cmp r0, #0xff - bne _0807055C - adds r0, r6, #0 - bl GetDaycareCompatibilityScore - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - muls r0, r1, r0 - ldr r1, _080705B4 - bl __udivsi3 - cmp r4, r0 - bls _0807055C - bl TriggerPendingDaycareEgg -_0807055C: - movs r0, #0x8e - lsls r0, r0, #1 - adds r1, r6, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080705E8 - bl GetEggStepsToSubtract - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r5, #0 - ldr r0, _080705B8 - ldrb r0, [r0] - cmp r5, r0 - bhs _080705E8 - ldr r4, _080705BC -_08070584: - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - beq _080705DC - adds r0, r4, #0 - movs r1, #4 - bl GetMonData - cmp r0, #0 - bne _080705DC - adds r0, r4, #0 - movs r1, #0x20 - bl GetMonData - adds r1, r0, #0 - str r1, [sp] - cmp r0, #0 - beq _080705D0 - cmp r0, r6 - blo _080705C0 - subs r0, r0, r6 - b _080705C2 - .align 2, 0 -_080705B4: .4byte 0x0000FFFF -_080705B8: .4byte gUnknown_202418D -_080705BC: .4byte gUnknown_2024190 -_080705C0: - subs r0, r1, #1 -_080705C2: - str r0, [sp] - adds r0, r4, #0 - movs r1, #0x20 - mov r2, sp - bl SetMonData - b _080705DC -_080705D0: - ldr r0, _080705D8 - strh r5, [r0] - movs r0, #1 - b _080705EA - .align 2, 0 -_080705D8: .4byte gUnknown_2037280 -_080705DC: - adds r4, #0x64 - adds r5, #1 - ldr r0, _080705F4 - ldrb r0, [r0] - cmp r5, r0 - blo _08070584 -_080705E8: - movs r0, #0 -_080705EA: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080705F4: .4byte gUnknown_202418D - thumb_func_end _DoEggActions_CheckHatch - - thumb_func_start ShouldEggHatch -ShouldEggHatch: @ 0x080705F8 - push {lr} - ldr r0, _08070610 - ldr r0, [r0] - ldr r1, _08070614 - adds r0, r0, r1 - bl _DoEggActions_CheckHatch - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_08070610: .4byte gUnknown_3005AEC -_08070614: .4byte 0x00003030 - thumb_func_end ShouldEggHatch - - thumb_func_start IsEggPending -IsEggPending: @ 0x08070618 - push {lr} - movs r1, #0x8c - lsls r1, r1, #1 - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #0 - beq _08070628 - movs r0, #1 -_08070628: - pop {r1} - bx r1 - thumb_func_end IsEggPending - - thumb_func_start _GetDaycareMonNicknames -_GetDaycareMonNicknames: @ 0x0807062C - push {r4, lr} - sub sp, #0xc - adds r4, r0, #0 - movs r1, #0xb - bl sub_0806A1B4 - cmp r0, #0 - beq _08070656 - ldr r1, _08070674 - adds r0, r4, #0 - bl sub_0806F4D0 - adds r0, r4, #0 - movs r1, #7 - mov r2, sp - bl sub_0806A1B4 - ldr r0, _08070678 - mov r1, sp - bl StringCopy -_08070656: - adds r4, #0x8c - adds r0, r4, #0 - movs r1, #0xb - bl sub_0806A1B4 - cmp r0, #0 - beq _0807066C - ldr r1, _0807067C - adds r0, r4, #0 - bl sub_0806F4D0 -_0807066C: - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08070674: .4byte gUnknown_2021C40 -_08070678: .4byte gUnknown_2021C68 -_0807067C: .4byte gUnknown_2021C54 - thumb_func_end _GetDaycareMonNicknames - - thumb_func_start GetSelectedMonNickAndSpecies -GetSelectedMonNickAndSpecies: @ 0x08070680 - push {r4, r5, lr} - bl GetCursorSelectionMonId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r5, #0x64 - muls r0, r5, r0 - ldr r4, _080706B4 - adds r0, r0, r4 - ldr r1, _080706B8 - bl sub_0806F4D0 - bl GetCursorSelectionMonId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #0xb - bl sub_0806A1B4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080706B4: .4byte gUnknown_2024190 -_080706B8: .4byte gUnknown_2021C40 - thumb_func_end GetSelectedMonNickAndSpecies - - thumb_func_start GetDaycareMonNicknames -GetDaycareMonNicknames: @ 0x080706BC - push {lr} - ldr r0, _080706D0 - ldr r0, [r0] - ldr r1, _080706D4 - adds r0, r0, r1 - bl _GetDaycareMonNicknames - pop {r0} - bx r0 - .align 2, 0 -_080706D0: .4byte gUnknown_3005AEC -_080706D4: .4byte 0x00003030 - thumb_func_end GetDaycareMonNicknames - - thumb_func_start GetDaycareState -GetDaycareState: @ 0x080706D8 - push {r4, lr} - ldr r4, _080706F0 - ldr r0, [r4] - ldr r1, _080706F4 - adds r0, r0, r1 - bl IsEggPending - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080706F8 - movs r0, #1 - b _0807071A - .align 2, 0 -_080706F0: .4byte gUnknown_3005AEC -_080706F4: .4byte 0x00003030 -_080706F8: - ldr r0, [r4] - ldr r1, _08070710 - adds r0, r0, r1 - bl CountPokemonInDaycare - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _08070714 - movs r0, #0 - b _0807071A - .align 2, 0 -_08070710: .4byte 0x00003030 -_08070714: - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_0807071A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetDaycareState - - thumb_func_start GetDaycarePokemonCount -GetDaycarePokemonCount: @ 0x08070720 - push {lr} - ldr r0, _0807073C - ldr r0, [r0] - ldr r1, _08070740 - adds r0, r0, r1 - bl CountPokemonInDaycare - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _08070738 - movs r0, #0 -_08070738: - pop {r1} - bx r1 - .align 2, 0 -_0807073C: .4byte gUnknown_3005AEC -_08070740: .4byte 0x00003030 - thumb_func_end GetDaycarePokemonCount - - thumb_func_start EggGroupsOverlap -EggGroupsOverlap: @ 0x08070744 - push {r4, r5, r6, lr} - adds r5, r1, #0 - movs r4, #0 - adds r1, r0, #0 -_0807074C: - movs r3, #0 - ldrh r0, [r1] - adds r2, r5, #0 -_08070752: - ldrh r6, [r2] - cmp r0, r6 - bne _0807075C - movs r0, #1 - b _0807076E -_0807075C: - adds r2, #2 - adds r3, #1 - cmp r3, #1 - ble _08070752 - adds r1, #2 - adds r4, #1 - cmp r4, #1 - ble _0807074C - movs r0, #0 -_0807076E: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end EggGroupsOverlap - - thumb_func_start GetDaycareCompatibilityScore -GetDaycareCompatibilityScore: @ 0x08070774 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x30 - str r0, [sp, #0x1c] - movs r7, #0 - mov r0, sp - adds r0, #8 - str r0, [sp, #0x20] - add r1, sp, #0xc - mov sb, r1 - mov r2, sp - adds r2, #0x14 - str r2, [sp, #0x24] - subs r0, #6 - ldr r1, _08070828 - mov sl, r1 - ldr r5, [sp, #0x20] - mov r8, r0 - mov r6, sp - str r2, [sp, #0x28] - mov r2, sb - str r2, [sp, #0x2c] -_080707A6: - movs r0, #0x8c - adds r4, r7, #0 - muls r4, r0, r4 - ldr r0, [sp, #0x1c] - adds r4, r0, r4 - adds r0, r4, #0 - movs r1, #0xb - bl sub_0806A1B4 - strh r0, [r5] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806A1B4 - ldr r1, [sp, #0x2c] - stm r1!, {r0} - str r1, [sp, #0x2c] - adds r0, r4, #0 - movs r1, #0 - bl sub_0806A1B4 - adds r1, r0, #0 - ldrh r0, [r5] - bl GetGenderFromSpeciesAndPersonality - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, [sp, #0x28] - stm r2!, {r0} - str r2, [sp, #0x28] - ldrh r1, [r5] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - add r0, sl - ldrb r0, [r0, #0x14] - strh r0, [r6] - ldrh r1, [r5] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - add r0, sl - ldrb r0, [r0, #0x15] - mov r1, r8 - strh r0, [r1] - adds r5, #2 - movs r2, #4 - add r8, r2 - adds r6, #4 - adds r7, #1 - cmp r7, #1 - bls _080707A6 - mov r0, sp - ldrh r1, [r0] - cmp r1, #0xf - beq _08070824 - ldrh r0, [r0, #4] - cmp r0, #0xf - beq _08070824 - cmp r1, #0xd - bne _0807082C - cmp r0, #0xd - bne _08070830 -_08070824: - movs r0, #0 - b _08070884 - .align 2, 0 -_08070828: .4byte gUnknown_82F0D54 -_0807082C: - cmp r0, #0xd - bne _0807083C -_08070830: - ldr r1, [sp, #0xc] - mov r2, sb - ldr r0, [r2, #4] - cmp r1, r0 - beq _0807087E - b _08070882 -_0807083C: - ldr r0, [sp, #0x14] - ldr r2, [sp, #0x24] - ldr r1, [r2, #4] - cmp r0, r1 - beq _08070824 - cmp r0, #0xff - beq _08070824 - cmp r1, #0xff - beq _08070824 - add r1, sp, #4 - mov r0, sp - bl EggGroupsOverlap - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08070824 - ldr r0, [sp, #0x20] - ldrh r1, [r0, #2] - ldrh r0, [r0] - cmp r0, r1 - bne _08070874 - ldr r1, [sp, #0xc] - mov r2, sb - ldr r0, [r2, #4] - cmp r1, r0 - beq _08070882 - movs r0, #0x46 - b _08070884 -_08070874: - ldr r1, [sp, #0xc] - mov r2, sb - ldr r0, [r2, #4] - cmp r1, r0 - bne _08070882 -_0807087E: - movs r0, #0x14 - b _08070884 -_08070882: - movs r0, #0x32 -_08070884: - add sp, #0x30 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end GetDaycareCompatibilityScore - - thumb_func_start GetDaycareCompatibilityScoreFromSave -GetDaycareCompatibilityScoreFromSave: @ 0x08070894 - push {lr} - ldr r0, _080708AC - ldr r0, [r0] - ldr r1, _080708B0 - adds r0, r0, r1 - bl GetDaycareCompatibilityScore - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_080708AC: .4byte gUnknown_3005AEC -_080708B0: .4byte 0x00003030 - thumb_func_end GetDaycareCompatibilityScoreFromSave - - thumb_func_start SetDaycareCompatibilityString -SetDaycareCompatibilityString: @ 0x080708B4 - push {lr} - bl GetDaycareCompatibilityScoreFromSave - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r2, r0, #0 - movs r1, #0 - cmp r0, #0 - bne _080708C8 - movs r1, #3 -_080708C8: - cmp r0, #0x14 - bne _080708CE - movs r1, #2 -_080708CE: - cmp r0, #0x32 - bne _080708D4 - movs r1, #1 -_080708D4: - cmp r2, #0x46 - bne _080708DA - movs r1, #0 -_080708DA: - ldr r0, _080708EC - ldr r2, _080708F0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl StringCopy - pop {r0} - bx r0 - .align 2, 0 -_080708EC: .4byte gUnknown_2021C7C -_080708F0: .4byte gUnknown_82FC0E8 - thumb_func_end SetDaycareCompatibilityString - - thumb_func_start NameHasGenderSymbol -NameHasGenderSymbol: @ 0x080708F4 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - mov r2, sp - mov r1, sp - movs r0, #0 - strb r0, [r1, #1] - strb r0, [r2] - movs r3, #0 - ldrb r0, [r4] - cmp r0, #0xff - beq _08070938 -_08070910: - adds r1, r4, r3 - ldrb r0, [r1] - cmp r0, #0xb5 - bne _0807091E - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] -_0807091E: - ldrb r0, [r1] - cmp r0, #0xb6 - bne _0807092A - ldrb r0, [r2, #1] - adds r0, #1 - strb r0, [r2, #1] -_0807092A: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - adds r0, r4, r3 - ldrb r0, [r0] - cmp r0, #0xff - bne _08070910 -_08070938: - cmp r5, #0 - bne _0807094C - mov r0, sp - ldrb r0, [r0] - cmp r0, #0 - beq _0807094C - mov r0, sp - ldrb r0, [r0, #1] - cmp r0, #0 - beq _08070960 -_0807094C: - cmp r5, #0xfe - bne _08070964 - mov r0, sp - ldrb r0, [r0, #1] - cmp r0, #0 - beq _08070964 - mov r0, sp - ldrb r0, [r0] - cmp r0, #0 - bne _08070964 -_08070960: - movs r0, #1 - b _08070966 -_08070964: - movs r0, #0 -_08070966: - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end NameHasGenderSymbol - - thumb_func_start AppendGenderSymbol -AppendGenderSymbol: @ 0x08070970 - push {r4, lr} - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #0 - bne _08070990 - movs r1, #0 - bl NameHasGenderSymbol - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080709AC - ldr r1, _0807098C - b _080709AE - .align 2, 0 -_0807098C: .4byte gUnknown_8300A95 -_08070990: - cmp r1, #0xfe - bne _080709AC - adds r0, r4, #0 - movs r1, #0xfe - bl NameHasGenderSymbol - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080709AC - ldr r1, _080709A8 - b _080709AE - .align 2, 0 -_080709A8: .4byte gUnknown_8300A97 -_080709AC: - ldr r1, _080709BC -_080709AE: - adds r0, r4, #0 - bl StringAppend - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080709BC: .4byte gUnknown_8300A99 - thumb_func_end AppendGenderSymbol - - thumb_func_start AppendMonGenderSymbol -AppendMonGenderSymbol: @ 0x080709C0 - push {r4, lr} - adds r4, r0, #0 - adds r0, r1, #0 - bl GetBoxMonGender - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl AppendGenderSymbol - pop {r4} - pop {r1} - bx r1 - thumb_func_end AppendMonGenderSymbol - - thumb_func_start GetDaycareLevelMenuText -GetDaycareLevelMenuText: @ 0x080709DC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x28 - mov r8, r0 - adds r7, r1, #0 - movs r0, #0xff - strb r0, [r7] - movs r6, #0 - add r0, sp, #0x14 - mov sb, r0 -_080709F4: - movs r0, #0x8c - adds r4, r6, #0 - muls r4, r0, r4 - add r4, r8 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #2 - mov r1, sp - adds r5, r1, r0 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806F4D0 - adds r0, r5, #0 - adds r1, r4, #0 - bl AppendMonGenderSymbol - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #1 - bls _080709F4 - adds r0, r7, #0 - mov r1, sp - bl StringCopy - ldr r4, _08070A58 - adds r0, r7, #0 - adds r1, r4, #0 - bl StringAppend - adds r0, r7, #0 - mov r1, sb - bl StringAppend - adds r0, r7, #0 - adds r1, r4, #0 - bl StringAppend - ldr r1, _08070A5C - adds r0, r7, #0 - bl StringAppend - add sp, #0x28 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08070A58: .4byte gUnknown_82FC0F8 -_08070A5C: .4byte gUnknown_82FC0FA - thumb_func_end GetDaycareLevelMenuText - - thumb_func_start GetDaycareLevelMenuLevelText -GetDaycareLevelMenuLevelText: @ 0x08070A60 - push {r4, r5, r6, lr} - sub sp, #0x14 - adds r6, r0, #0 - adds r4, r1, #0 - movs r0, #0xff - strb r0, [r4] - movs r5, #0 -_08070A6E: - adds r0, r4, #0 - ldr r1, _08070ABC - bl StringAppend - movs r0, #0x8c - adds r2, r5, #0 - muls r2, r0, r2 - adds r0, r6, r2 - adds r1, r6, #0 - adds r1, #0x88 - adds r1, r1, r2 - ldr r1, [r1] - bl GetLevelAfterDaycareSteps - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r0, sp - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - adds r0, r4, #0 - mov r1, sp - bl StringAppend - adds r0, r4, #0 - ldr r1, _08070AC0 - bl StringAppend - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #1 - bls _08070A6E - add sp, #0x14 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08070ABC: .4byte gUnknown_82FC0FE -_08070AC0: .4byte gUnknown_82FC0F8 - thumb_func_end GetDaycareLevelMenuLevelText - - thumb_func_start DaycareAddTextPrinter -DaycareAddTextPrinter: @ 0x08070AC4 - push {r4, r5, r6, lr} - sub sp, #0x10 - str r1, [sp] - mov r1, sp - movs r5, #0 - strb r0, [r1, #4] - mov r0, sp - movs r6, #1 - movs r4, #1 - strb r4, [r0, #5] - strb r2, [r0, #6] - strb r3, [r0, #7] - strb r2, [r0, #8] - strb r3, [r0, #9] - mov r3, sp - ldrb r1, [r3, #0xc] - movs r2, #0x10 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r1 - strb r0, [r3, #0xc] - ldr r3, _08070B34 - ldrb r1, [r3] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3] - mov r0, sp - strb r5, [r0, #0xa] - strb r4, [r0, #0xb] - mov r3, sp - ldrb r1, [r3, #0xc] - movs r4, #0xf - adds r0, r4, #0 - ands r0, r1 - movs r1, #0x20 - orrs r0, r1 - strb r0, [r3, #0xc] - mov r1, sp - ldrb r0, [r1, #0xd] - ands r2, r0 - orrs r2, r6 - strb r2, [r1, #0xd] - ands r2, r4 - movs r0, #0x30 - orrs r2, r0 - strb r2, [r1, #0xd] - mov r0, sp - movs r1, #0xff - movs r2, #0 - bl AddTextPrinter - add sp, #0x10 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08070B34: .4byte gUnknown_30030B4 - thumb_func_end DaycareAddTextPrinter - - thumb_func_start DaycarePrintMonNick -DaycarePrintMonNick: @ 0x08070B38 - push {r4, r5, r6, lr} - sub sp, #0x14 - adds r5, r0, #0 - adds r4, r1, #0 - adds r6, r3, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0x8c - muls r0, r2, r0 - adds r5, r5, r0 - adds r0, r5, #0 - mov r1, sp - bl sub_0806F4D0 - mov r0, sp - adds r1, r5, #0 - bl AppendMonGenderSymbol - adds r6, #2 - adds r0, r4, #0 - mov r1, sp - movs r2, #0xc - adds r3, r6, #0 - bl DaycareAddTextPrinter - add sp, #0x14 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end DaycarePrintMonNick - - thumb_func_start sub_08070B74 -sub_08070B74: @ 0x08070B74 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0x14 - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - mov r8, r3 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r1, _08070BD4 - mov r0, sp - bl strcpy - movs r0, #0x8c - adds r1, r6, #0 - muls r1, r0, r1 - adds r0, r4, r1 - adds r4, #0x88 - adds r4, r4, r1 - ldr r1, [r4] - bl GetLevelAfterDaycareSteps - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - add r4, sp, #0xc - adds r0, r4, #0 - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - mov r0, sp - adds r1, r4, #0 - bl StringAppend - adds r0, r5, #0 - mov r1, sp - movs r2, #0x59 - mov r3, r8 - bl DaycareAddTextPrinter - add sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08070BD4: .4byte gUnknown_82FC0FE - thumb_func_end sub_08070B74 - - thumb_func_start DaycarePrintMonInfo -DaycarePrintMonInfo: @ 0x08070BD8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r1, #0 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - cmp r6, #1 - bhi _08070C10 - ldr r0, _08070C1C - mov r8, r0 - ldr r0, [r0] - ldr r4, _08070C20 - adds r0, r0, r4 - adds r1, r7, #0 - adds r2, r6, #0 - adds r3, r5, #0 - bl DaycarePrintMonNick - mov r1, r8 - ldr r0, [r1] - adds r0, r0, r4 - adds r1, r7, #0 - adds r2, r6, #0 - adds r3, r5, #0 - bl sub_08070B74 -_08070C10: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08070C1C: .4byte gUnknown_3005AEC -_08070C20: .4byte 0x00003030 - thumb_func_end DaycarePrintMonInfo - - thumb_func_start Task_HandleDaycareLevelMenuInput -Task_HandleDaycareLevelMenuInput: @ 0x08070C24 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - ldr r1, _08070C54 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrb r0, [r4, #8] - bl ListMenu_ProcessInput - adds r1, r0, #0 - ldr r0, _08070C58 - ldrh r2, [r0, #0x2e] - movs r0, #1 - ands r0, r2 - cmp r0, #0 - beq _08070CA4 - cmp r1, #1 - bls _08070C5C - cmp r1, #5 - beq _08070C68 - b _08070C6E - .align 2, 0 -_08070C54: .4byte gUnknown_3005B60 -_08070C58: .4byte gUnknown_3002360 -_08070C5C: - ldr r0, _08070C64 - strh r1, [r0] - b _08070C6E - .align 2, 0 -_08070C64: .4byte gUnknown_2037290 -_08070C68: - ldr r1, _08070C9C - movs r0, #2 - strh r0, [r1] -_08070C6E: - ldr r0, _08070CA0 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - adds r4, r4, r0 - ldrb r0, [r4, #8] - movs r1, #0 - movs r2, #0 - bl DestroyListMenuTask - ldrb r0, [r4, #0xa] - movs r1, #1 - bl sub_08197060 - ldrb r0, [r4, #0xa] - bl RemoveWindow - adds r0, r5, #0 - bl DestroyTask - bl EnableBothScriptContexts - b _08070CD4 - .align 2, 0 -_08070C9C: .4byte gUnknown_2037290 -_08070CA0: .4byte gUnknown_3005B60 -_08070CA4: - movs r1, #2 - adds r0, r1, #0 - ands r0, r2 - cmp r0, #0 - beq _08070CD4 - ldr r0, _08070CDC - strh r1, [r0] - ldrb r0, [r4, #8] - movs r1, #0 - movs r2, #0 - bl DestroyListMenuTask - ldrb r0, [r4, #0xa] - movs r1, #1 - bl sub_08197060 - ldrb r0, [r4, #0xa] - bl RemoveWindow - adds r0, r5, #0 - bl DestroyTask - bl EnableBothScriptContexts -_08070CD4: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08070CDC: .4byte gUnknown_2037290 - thumb_func_end Task_HandleDaycareLevelMenuInput - - thumb_func_start ShowDaycareLevelMenu -ShowDaycareLevelMenu: @ 0x08070CE0 - push {r4, r5, lr} - sub sp, #0x18 - ldr r0, _08070D40 - bl AddWindow - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #0 - bl sub_08196FF0 - mov r1, sp - ldr r0, _08070D44 - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} - mov r0, sp - strb r4, [r0, #0x10] - movs r1, #0 - movs r2, #0 - bl ListMenuInit - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - adds r0, r4, #0 - movs r1, #3 - bl CopyWindowToVram - ldr r0, _08070D48 - movs r1, #3 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08070D4C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r5, [r1, #8] - strh r4, [r1, #0xa] - add sp, #0x18 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08070D40: .4byte gUnknown_82FC04C -_08070D44: .4byte gUnknown_82FC06C -_08070D48: .4byte Task_HandleDaycareLevelMenuInput -_08070D4C: .4byte gUnknown_3005B60 - thumb_func_end ShowDaycareLevelMenu - - thumb_func_start FieldCallback_SecretBaseCave -FieldCallback_SecretBaseCave: @ 0x08070D50 - push {lr} - bl sub_081B8FC8 - ldr r1, _08070D60 - ldr r0, _08070D64 - str r0, [r1, #8] - pop {r0} - bx r0 - .align 2, 0 -_08070D60: .4byte gUnknown_3002360 -_08070D64: .4byte sub_08085A30 - thumb_func_end FieldCallback_SecretBaseCave - - thumb_func_start CreatedHatchedMon -CreatedHatchedMon: @ 0x08070D68 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x50 - adds r5, r0, #0 - adds r6, r1, #0 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x3c] - movs r4, #0 - add r7, sp, #0x18 - add r0, sp, #0x30 - mov sb, r0 - movs r1, #0x31 - add r1, sp - mov sl, r1 - mov r0, sp - adds r0, #0x32 - str r0, [sp, #0x40] - mov r1, sp - adds r1, #0x34 - str r1, [sp, #0x48] - adds r0, #1 - str r0, [sp, #0x44] - adds r1, #4 - str r1, [sp, #0x4c] -_08070DA6: - adds r1, r4, #0 - adds r1, #0xd - adds r0, r5, #0 - bl GetMonData - lsls r1, r4, #1 - add r1, sp - adds r1, #0x10 - strh r0, [r1] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _08070DA6 - adds r0, r5, #0 - movs r1, #0 - bl GetMonData - mov r8, r0 - movs r4, #0 -_08070DCE: - adds r1, r4, #0 - adds r1, #0x27 - adds r0, r5, #0 - bl GetMonData - lsls r1, r4, #2 - adds r1, r7, r1 - str r0, [r1] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #5 - bls _08070DCE - adds r0, r5, #0 - movs r1, #3 - bl GetMonData - mov r1, sb - strb r0, [r1] - adds r0, r5, #0 - movs r1, #0x25 - bl GetMonData - mov r1, sl - strb r0, [r1] - adds r0, r5, #0 - movs r1, #8 - bl GetMonData - ldr r1, [sp, #0x40] - strb r0, [r1] - adds r0, r5, #0 - movs r1, #0x22 - bl GetMonData - str r0, [sp, #0x38] - adds r0, r5, #0 - movs r1, #0x50 - bl GetMonData - ldr r1, [sp, #0x48] - strb r0, [r1] - movs r0, #1 - str r0, [sp] - mov r0, r8 - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - str r0, [sp, #0xc] - adds r0, r6, #0 - ldr r1, [sp, #0x3c] - movs r2, #5 - movs r3, #0x20 - bl CreateMon - movs r4, #0 -_08070E3E: - adds r1, r4, #0 - adds r1, #0xd - lsls r0, r4, #1 - mov r2, sp - adds r2, r2, r0 - adds r2, #0x10 - adds r0, r6, #0 - bl SetMonData - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _08070E3E - movs r4, #0 -_08070E5C: - adds r1, r4, #0 - adds r1, #0x27 - lsls r2, r4, #2 - adds r2, r7, r2 - adds r0, r6, #0 - bl SetMonData - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #5 - bls _08070E5C - adds r0, r6, #0 - movs r1, #3 - mov r2, sb - bl SetMonData - adds r0, r6, #0 - movs r1, #0x25 - mov r2, sl - bl SetMonData - adds r0, r6, #0 - movs r1, #8 - ldr r2, [sp, #0x40] - bl SetMonData - movs r0, #0x78 - ldr r1, [sp, #0x44] - strb r0, [r1] - adds r0, r6, #0 - movs r1, #0x20 - ldr r2, [sp, #0x44] - bl SetMonData - adds r0, r6, #0 - movs r1, #0x22 - ldr r2, [sp, #0x4c] - bl SetMonData - adds r0, r6, #0 - movs r1, #0x50 - ldr r2, [sp, #0x48] - bl SetMonData - adds r0, r5, #0 - adds r1, r6, #0 - movs r2, #0x64 - bl memcpy - add sp, #0x50 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end CreatedHatchedMon - - thumb_func_start AddHatchedMonToParty -AddHatchedMonToParty: @ 0x08070ED0 - push {r4, r5, lr} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add r4, sp, #0xc - movs r1, #0x46 - strb r1, [r4] - movs r1, #0x64 - adds r5, r0, #0 - muls r5, r1, r5 - ldr r0, _08070F84 - adds r5, r5, r0 - ldr r1, _08070F88 - adds r0, r5, #0 - bl CreatedHatchedMon - adds r0, r5, #0 - movs r1, #0x2d - adds r2, r4, #0 - bl SetMonData - adds r0, r5, #0 - movs r1, #0xb - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - mov r0, sp - adds r1, r4, #0 - bl sub_0806B3DC - adds r0, r5, #0 - movs r1, #2 - mov r2, sp - bl SetMonData - adds r0, r4, #0 - bl sub_0806CF68 - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r4, #0 - movs r1, #2 - bl GetSetPokedexFlag - adds r0, r4, #0 - movs r1, #3 - bl GetSetPokedexFlag - ldr r1, _08070F8C - adds r0, r5, #0 - bl sub_0806F4B0 - mov r2, sp - adds r2, #0xe - movs r0, #4 - strh r0, [r2] - adds r0, r5, #0 - movs r1, #0x26 - bl SetMonData - add r2, sp, #0x10 - movs r0, #0 - strh r0, [r2] - adds r0, r5, #0 - movs r1, #0x24 - bl SetMonData - bl GetCurrentRegionMapSectionId - mov r2, sp - adds r2, #0x12 - strb r0, [r2] - adds r0, r5, #0 - movs r1, #0x23 - bl SetMonData - adds r0, r5, #0 - bl sub_0806E3B0 - adds r0, r5, #0 - bl CalculateMonStats - add sp, #0x14 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08070F84: .4byte gUnknown_2024190 -_08070F88: .4byte gUnknown_20243E8 -_08070F8C: .4byte gUnknown_2021C40 - thumb_func_end AddHatchedMonToParty - - thumb_func_start ScriptHatchMon -ScriptHatchMon: @ 0x08070F90 - push {lr} - ldr r0, _08070FA0 - ldrb r0, [r0] - bl AddHatchedMonToParty - pop {r0} - bx r0 - .align 2, 0 -_08070FA0: .4byte gUnknown_2037280 - thumb_func_end ScriptHatchMon - - thumb_func_start sub_08070FA4 -sub_08070FA4: @ 0x08070FA4 - push {r4, r5, lr} - sub sp, #0x20 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r2, #0x8c - muls r1, r2, r1 - adds r4, r0, r1 - adds r0, r4, #0 - mov r1, sp - bl sub_0806F4D0 - adds r0, r4, #0 - adds r0, #0x70 - ldrh r0, [r0] - cmp r0, #0 - beq _08071010 - adds r5, r4, #0 - adds r5, #0x7c - mov r0, sp - adds r1, r5, #0 - bl StringCompare - adds r4, #0x74 - cmp r0, #0 - bne _08070FE4 - ldr r0, _08071000 - ldr r0, [r0] - adds r1, r4, #0 - bl StringCompare - cmp r0, #0 - beq _08071010 -_08070FE4: - ldr r0, _08071004 - mov r1, sp - bl StringCopy - ldr r0, _08071008 - adds r1, r4, #0 - bl StringCopy - ldr r0, _0807100C - adds r1, r5, #0 - bl StringCopy - movs r0, #1 - b _08071012 - .align 2, 0 -_08071000: .4byte gUnknown_3005AF0 -_08071004: .4byte gUnknown_2021C40 -_08071008: .4byte gUnknown_2021C54 -_0807100C: .4byte gUnknown_2021C68 -_08071010: - movs r0, #0 -_08071012: - add sp, #0x20 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08070FA4 - - thumb_func_start sub_0807101C -sub_0807101C: @ 0x0807101C - push {lr} - ldr r0, _08071038 - ldr r0, [r0] - ldr r1, _0807103C - adds r0, r0, r1 - ldr r1, _08071040 - ldrb r1, [r1] - bl sub_08070FA4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_08071038: .4byte gUnknown_3005AEC -_0807103C: .4byte 0x00003030 -_08071040: .4byte gUnknown_2037280 - thumb_func_end sub_0807101C - - thumb_func_start EggHatchCreateMonSprite -EggHatchCreateMonSprite: @ 0x08071044 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov sb, r3 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - mov r8, r3 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r1, r2, #0x18 - adds r2, r1, #0 - movs r4, #0 - movs r7, #0 - movs r5, #0 - cmp r3, #0 - bne _08071072 - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _0807108C - adds r5, r1, r0 - movs r4, #1 -_08071072: - cmp r3, #1 - bne _08071082 - movs r0, #0x64 - adds r1, r2, #0 - muls r1, r0, r1 - ldr r0, _0807108C - adds r5, r1, r0 - movs r4, #3 -_08071082: - cmp r6, #0 - beq _08071090 - cmp r6, #1 - beq _080710E0 - b _0807111A - .align 2, 0 -_0807108C: .4byte gUnknown_2024190 -_08071090: - adds r0, r5, #0 - movs r1, #0xb - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - movs r1, #0 - bl GetMonData - adds r3, r0, #0 - lsls r0, r4, #3 - ldr r1, _080710D8 - adds r0, r0, r1 - ldr r1, _080710DC - ldr r2, [r1] - mov r6, r8 - lsls r1, r6, #1 - adds r1, #1 - lsls r1, r1, #2 - adds r2, #4 - adds r2, r2, r1 - ldr r1, [r2] - adds r2, r4, #0 - bl HandleLoadSpecialPokePic_DontHandleDeoxys - adds r0, r5, #0 - bl sub_0806E220 - bl LoadCompressedSpritePalette - mov r0, sb - strh r4, [r0] - b _0807111A - .align 2, 0 -_080710D8: .4byte gUnknown_82DDA1C -_080710DC: .4byte gUnknown_2024178 -_080710E0: - adds r0, r5, #0 - bl sub_0806E220 - ldrh r0, [r0, #4] - adds r1, r4, #0 - bl SetMultiuseSpriteTemplateToPokemon - ldr r0, _08071128 - movs r1, #0x78 - movs r2, #0x4b - movs r3, #6 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r4, _0807112C - lsls r1, r7, #4 - adds r1, r1, r7 - lsls r1, r1, #2 - adds r2, r1, r4 - adds r2, #0x3e - ldrb r0, [r2] - movs r3, #4 - orrs r0, r3 - strb r0, [r2] - adds r4, #0x1c - adds r1, r1, r4 - ldr r0, _08071130 - str r0, [r1] -_0807111A: - adds r0, r7, #0 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08071128: .4byte gUnknown_2024640 -_0807112C: .4byte gUnknown_20205AC -_08071130: .4byte sub_08007140 - thumb_func_end EggHatchCreateMonSprite - - thumb_func_start VBlankCB_EggHatch -VBlankCB_EggHatch: @ 0x08071134 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end VBlankCB_EggHatch - - thumb_func_start EggHatch -EggHatch: @ 0x08071148 - push {lr} - bl sub_080987DC - ldr r0, _08071164 - movs r1, #0xa - bl CreateTask - movs r0, #1 - movs r1, #0 - bl FadeScreen - pop {r0} - bx r0 - .align 2, 0 -_08071164: .4byte Task_EggHatch - thumb_func_end EggHatch - - thumb_func_start Task_EggHatch -Task_EggHatch: @ 0x08071168 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _08071198 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08071190 - bl CleanupOverworldWindowsAndTilemaps - ldr r0, _0807119C - bl SetMainCallback2 - ldr r1, _080711A0 - ldr r0, _080711A4 - str r0, [r1] - adds r0, r4, #0 - bl DestroyTask -_08071190: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08071198: .4byte gUnknown_2037C74 -_0807119C: .4byte sub_080711A8 -_080711A0: .4byte gUnknown_3005B0C -_080711A4: .4byte FieldCallback_ReturnToEventScript2 - thumb_func_end Task_EggHatch - - thumb_func_start sub_080711A8 -sub_080711A8: @ 0x080711A8 - push {r4, lr} - sub sp, #4 - ldr r0, _080711C8 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #8 - bls _080711BC - b _080713DA -_080711BC: - lsls r0, r0, #2 - ldr r1, _080711CC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080711C8: .4byte gUnknown_3002360 -_080711CC: .4byte _080711D0 -_080711D0: @ jump table - .4byte _080711F4 @ case 0 - .4byte _080712C0 @ case 1 - .4byte _080712D8 @ case 2 - .4byte _08071308 @ case 3 - .4byte _08071328 @ case 4 - .4byte _08071340 @ case 5 - .4byte _08071358 @ case 6 - .4byte _08071374 @ case 7 - .4byte _080713CC @ case 8 -_080711F4: - movs r0, #0 - movs r1, #0 - bl SetGpuReg - ldr r4, _080712AC - movs r0, #0x14 - bl sub_08000BC8 - str r0, [r4] - bl AllocateMonSpritesGfx - ldr r2, [r4] - ldr r0, _080712B0 - ldrh r0, [r0] - movs r1, #0 - strb r0, [r2, #4] - ldr r0, [r4] - strb r1, [r0, #7] - ldr r0, _080712B4 - bl SetVBlankCallback - bl sub_080A27CC - ldr r1, _080712B8 - strh r0, [r1] - bl reset_temp_tile_data_buffers - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _080712BC - movs r0, #0 - movs r2, #2 - bl InitBgsFromTemplates - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #1 - movs r1, #7 - movs r2, #2 - bl SetBgAttribute - movs r0, #0x80 - lsls r0, r0, #5 - bl sub_08000BC8 - adds r1, r0, #0 - movs r0, #1 - bl SetBgTilemapBuffer - movs r0, #0x80 - lsls r0, r0, #6 - bl sub_08000BC8 - adds r1, r0, #0 - movs r0, #0 - bl SetBgTilemapBuffer - bl sub_08004480 - bl ResetPaletteFade - bl FreeAllSpritePalettes - bl ResetSpriteData - bl ResetTasks - bl ScanlineEffect_Stop - bl m4aSoundVSyncOn - b _080713AA - .align 2, 0 -_080712AC: .4byte gUnknown_3000DE0 -_080712B0: .4byte gUnknown_2037280 -_080712B4: .4byte VBlankCB_EggHatch -_080712B8: .4byte gUnknown_2037282 -_080712BC: .4byte gUnknown_82FCA5C -_080712C0: - ldr r0, _080712D0 - bl InitWindows - ldr r0, _080712D4 - ldr r1, [r0] - movs r0, #0 - strb r0, [r1, #8] - b _080713AA - .align 2, 0 -_080712D0: .4byte gUnknown_82FCA64 -_080712D4: .4byte gUnknown_3000DE0 -_080712D8: - movs r1, #0x8c - lsls r1, r1, #0x14 - movs r0, #0 - str r0, [sp] - movs r2, #0 - movs r3, #0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r1, _08071300 - movs r0, #0 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - ldr r0, _08071304 - movs r1, #0 - movs r2, #0x20 - bl LoadCompressedPalette - b _080713AA - .align 2, 0 -_08071300: .4byte gUnknown_8C00530 -_08071304: .4byte gUnknown_8C004EC -_08071308: - ldr r0, _0807131C - bl LoadSpriteSheet - ldr r0, _08071320 - bl LoadSpriteSheet - ldr r0, _08071324 - bl LoadSpritePalette - b _080713AA - .align 2, 0 -_0807131C: .4byte gUnknown_82FC9DC -_08071320: .4byte gUnknown_82FC9E4 -_08071324: .4byte gUnknown_82FC9EC -_08071328: - movs r0, #0 - bl CopyBgTilemapBufferToVram - ldr r0, _0807133C - ldr r0, [r0] - ldrb r0, [r0, #4] - bl AddHatchedMonToParty - b _080713AA - .align 2, 0 -_0807133C: .4byte gUnknown_3000DE0 -_08071340: - ldr r0, _08071354 - ldr r3, [r0] - ldrb r2, [r3, #4] - adds r3, #0xc - movs r0, #0 - movs r1, #0 - bl EggHatchCreateMonSprite - b _080713AA - .align 2, 0 -_08071354: .4byte gUnknown_3000DE0 -_08071358: - ldr r4, _08071370 - ldr r3, [r4] - ldrb r2, [r3, #4] - adds r3, #0xc - movs r0, #0 - movs r1, #1 - bl EggHatchCreateMonSprite - ldr r1, [r4] - strb r0, [r1, #1] - b _080713AA - .align 2, 0 -_08071370: .4byte gUnknown_3000DE0 -_08071374: - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - ldr r0, _080713BC - movs r1, #0x10 - movs r2, #0xa0 - bl LoadPalette - ldr r1, _080713C0 - movs r2, #0x98 - lsls r2, r2, #5 - movs r0, #1 - movs r3, #0 - bl LoadBgTiles - ldr r1, _080713C4 - movs r2, #0x80 - lsls r2, r2, #5 - movs r0, #1 - movs r3, #0 - bl CopyToBgTilemapBuffer - movs r0, #1 - bl CopyBgTilemapBufferToVram -_080713AA: - ldr r1, _080713C8 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080713DA - .align 2, 0 -_080713BC: .4byte gUnknown_8305D24 -_080713C0: .4byte gUnknown_8305D84 -_080713C4: .4byte gUnknown_8304D04 -_080713C8: .4byte gUnknown_3002360 -_080713CC: - ldr r0, _080713F8 - bl SetMainCallback2 - ldr r0, _080713FC - ldr r1, [r0] - movs r0, #0 - strb r0, [r1, #2] -_080713DA: - bl RunTasks - bl sub_08004630 - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080713F8: .4byte CB2_EggHatch_1 -_080713FC: .4byte gUnknown_3000DE0 - thumb_func_end sub_080711A8 - - thumb_func_start EggHatchSetMonNickname -EggHatchSetMonNickname: @ 0x08071400 - push {lr} - ldr r0, _0807142C - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08071430 - adds r0, r0, r1 - ldr r2, _08071434 - movs r1, #2 - bl SetMonData - bl FreeMonSpritesGfx - ldr r0, _08071438 - ldr r0, [r0] - bl Free - ldr r0, _0807143C - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0807142C: .4byte gUnknown_2037280 -_08071430: .4byte gUnknown_2024190 -_08071434: .4byte gUnknown_2021C68 -_08071438: .4byte gUnknown_3000DE0 -_0807143C: .4byte sub_08085A30 - thumb_func_end EggHatchSetMonNickname - - thumb_func_start Task_EggHatchPlayBGM -Task_EggHatchPlayBGM: @ 0x08071440 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _08071490 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08071460 - bl StopMapMusic - bl PlayRainStoppingSoundEffect -_08071460: - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #1 - bne _08071470 - movs r0, #0xbc - lsls r0, r0, #1 - bl PlayBGM -_08071470: - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0x3c - ble _08071484 - ldr r0, _08071494 - bl PlayBGM - adds r0, r5, #0 - bl DestroyTask -_08071484: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08071490: .4byte gUnknown_3005B60 -_08071494: .4byte 0x00000179 - thumb_func_end Task_EggHatchPlayBGM - - thumb_func_start CB2_EggHatch_1 -CB2_EggHatch_1: @ 0x08071498 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0xc - ldr r1, _080714BC - ldr r0, [r1] - ldrb r0, [r0, #2] - adds r5, r1, #0 - cmp r0, #0xc - bls _080714B0 - b _08071816 -_080714B0: - lsls r0, r0, #2 - ldr r1, _080714C0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080714BC: .4byte gUnknown_3000DE0 -_080714C0: .4byte _080714C4 -_080714C4: @ jump table - .4byte _080714F8 @ case 0 - .4byte _08071544 @ case 1 - .4byte _0807156C @ case 2 - .4byte _080715A4 @ case 3 - .4byte _080715FC @ case 4 - .4byte _08071628 @ case 5 - .4byte _0807168C @ case 6 - .4byte _0807169A @ case 7 - .4byte _080716A8 @ case 8 - .4byte _080716EC @ case 9 - .4byte _0807172C @ case 10 - .4byte _080717C4 @ case 11 - .4byte _080717E4 @ case 12 -_080714F8: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r0, _08071538 - movs r1, #0x78 - movs r2, #0x4b - movs r3, #5 - bl CreateSprite - ldr r4, _0807153C - ldr r1, [r4] - strb r0, [r1] - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - ldr r1, [r4] - ldrb r0, [r1, #2] - adds r0, #1 - strb r0, [r1, #2] - ldr r0, _08071540 - movs r1, #5 - bl CreateTask - b _08071816 - .align 2, 0 -_08071538: .4byte gUnknown_82FC9F4 -_0807153C: .4byte gUnknown_3000DE0 -_08071540: .4byte Task_EggHatchPlayBGM -_08071544: - ldr r0, _08071568 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - beq _08071556 - b _08071816 -_08071556: - ldr r0, [r5] - ldrb r0, [r0, #8] - movs r1, #0 - bl FillWindowPixelBuffer - ldr r0, [r5] - strb r4, [r0, #3] - ldr r1, [r5] - b _080717D8 - .align 2, 0 -_08071568: .4byte gUnknown_2037C74 -_0807156C: - ldr r1, [r5] - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1e - bhi _0807157E - b _08071816 -_0807157E: - ldr r1, [r5] - ldrb r0, [r1, #2] - adds r0, #1 - strb r0, [r1, #2] - ldr r2, _0807159C - ldr r0, [r5] - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, _080715A0 - str r1, [r0] - b _08071816 - .align 2, 0 -_0807159C: .4byte gUnknown_20205AC -_080715A0: .4byte SpriteCB_Egg_0 -_080715A4: - ldr r4, _080715F0 - ldr r2, [r5] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, [r0] - ldr r0, _080715F4 - cmp r1, r0 - beq _080715C0 - b _08071816 -_080715C0: - ldrb r1, [r2, #4] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080715F8 - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - ldr r0, [r5] - ldrb r1, [r0, #1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r1, r7, #0 - movs r2, #0 - movs r3, #1 - bl DoMonFrontSpriteAnimation - ldr r1, [r5] - b _080717D8 - .align 2, 0 -_080715F0: .4byte gUnknown_20205AC -_080715F4: .4byte sub_08007140 -_080715F8: .4byte gUnknown_2024190 -_080715FC: - ldr r2, _08071620 - ldr r3, [r5] - ldrb r1, [r3, #1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _08071624 - cmp r1, r0 - beq _08071616 - b _08071816 -_08071616: - ldrb r0, [r3, #2] - adds r0, #1 - strb r0, [r3, #2] - b _08071816 - .align 2, 0 -_08071620: .4byte gUnknown_20205AC -_08071624: .4byte sub_08007140 -_08071628: - ldr r0, [r5] - ldrb r1, [r0, #4] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08071678 - adds r0, r0, r1 - ldr r1, _0807167C - bl sub_0806F4B0 - ldr r4, _08071680 - ldr r1, _08071684 - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r0, [r5] - ldrb r0, [r0, #8] - movs r1, #0xff - str r1, [sp] - adds r1, r4, #0 - movs r2, #0 - movs r3, #3 - bl EggHatchPrintMessage - ldr r0, _08071688 - bl PlayFanfare - ldr r1, [r5] - ldrb r0, [r1, #2] - adds r0, #1 - strb r0, [r1, #2] - ldr r0, [r5] - ldrb r0, [r0, #8] - bl PutWindowTilemap - ldr r0, [r5] - ldrb r0, [r0, #8] - movs r1, #3 - bl CopyWindowToVram - b _08071816 - .align 2, 0 -_08071678: .4byte gUnknown_2024190 -_0807167C: .4byte gUnknown_2021C40 -_08071680: .4byte gUnknown_2021C7C -_08071684: .4byte gUnknown_85CC874 -_08071688: .4byte 0x00000173 -_0807168C: - bl IsFanfareTaskInactive - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08071698 - b _08071816 -_08071698: - b _080717D4 -_0807169A: - bl IsFanfareTaskInactive - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080716A6 - b _08071816 -_080716A6: - b _080717D4 -_080716A8: - ldr r0, [r5] - ldrb r1, [r0, #4] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080716DC - adds r0, r0, r1 - ldr r1, _080716E0 - bl sub_0806F4B0 - ldr r4, _080716E4 - ldr r1, _080716E8 - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r0, [r5] - ldrb r0, [r0, #8] - movs r1, #1 - str r1, [sp] - adds r1, r4, #0 - movs r2, #0 - movs r3, #2 - bl EggHatchPrintMessage - ldr r1, [r5] - b _080717D8 - .align 2, 0 -_080716DC: .4byte gUnknown_2024190 -_080716E0: .4byte gUnknown_2021C40 -_080716E4: .4byte gUnknown_2021C7C -_080716E8: .4byte gUnknown_85CC888 -_080716EC: - ldr r0, [r5] - ldrb r0, [r0, #8] - bl sub_080046A8 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0 - beq _080716FE - b _08071816 -_080716FE: - ldr r0, [r5] - ldrb r0, [r0, #8] - movs r4, #0xa0 - lsls r4, r4, #1 - adds r1, r4, #0 - movs r2, #0xe0 - bl LoadUserWindowBorderGfx - ldr r0, _08071728 - str r4, [sp] - movs r1, #0xe - str r1, [sp, #4] - str r6, [sp, #8] - movs r1, #1 - movs r2, #2 - movs r3, #2 - bl sub_08198C08 - ldr r1, [r5] - b _080717D8 - .align 2, 0 -_08071728: .4byte gUnknown_82FCA74 -_0807172C: - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _0807174C - cmp r1, #0 - bgt _08071746 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _080717D4 - b _08071816 -_08071746: - cmp r1, #1 - beq _080717D4 - b _08071816 -_0807174C: - ldr r0, _080717B4 - mov r8, r0 - ldr r0, [r0] - ldrb r0, [r0, #4] - movs r6, #0x64 - muls r0, r6, r0 - ldr r5, _080717B8 - adds r0, r0, r5 - ldr r1, _080717BC - mov sb, r1 - bl sub_0806F4B0 - mov r1, r8 - ldr r0, [r1] - ldrb r0, [r0, #4] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - mov r1, r8 - ldr r0, [r1] - ldrb r0, [r0, #4] - muls r0, r6, r0 - adds r0, r0, r5 - bl GetMonGender - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r1, r8 - ldr r0, [r1] - ldrb r0, [r0, #4] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #0 - movs r2, #0 - bl GetMonData - str r0, [sp] - ldr r0, _080717C0 - str r0, [sp, #4] - movs r0, #3 - mov r1, sb - adds r2, r7, #0 - adds r3, r4, #0 - bl DoNamingScreen - b _08071816 - .align 2, 0 -_080717B4: .4byte gUnknown_3000DE0 -_080717B8: .4byte gUnknown_2024190 -_080717BC: .4byte gUnknown_2021C68 -_080717C0: .4byte EggHatchSetMonNickname -_080717C4: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade -_080717D4: - ldr r0, _080717E0 - ldr r1, [r0] -_080717D8: - ldrb r0, [r1, #2] - adds r0, #1 - strb r0, [r1, #2] - b _08071816 - .align 2, 0 -_080717E0: .4byte gUnknown_3000DE0 -_080717E4: - ldr r0, _08071838 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08071816 - bl FreeMonSpritesGfx - ldr r4, _0807183C - ldr r0, [r4] - ldrb r0, [r0, #8] - bl RemoveWindow - movs r0, #0 - bl UnsetBgTilemapBuffer - movs r0, #1 - bl UnsetBgTilemapBuffer - ldr r0, [r4] - bl Free - ldr r0, _08071840 - bl SetMainCallback2 -_08071816: - bl RunTasks - bl sub_08004630 - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - add sp, #0xc - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08071838: .4byte gUnknown_2037C74 -_0807183C: .4byte gUnknown_3000DE0 -_08071840: .4byte sub_08085A30 - thumb_func_end CB2_EggHatch_1 - - thumb_func_start SpriteCB_Egg_0 -SpriteCB_Egg_0: @ 0x08071844 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x14 - ble _08071864 - ldr r0, _08071860 - str r0, [r4, #0x1c] - movs r0, #0 - strh r0, [r4, #0x2e] - b _08071894 - .align 2, 0 -_08071860: .4byte SpriteCB_Egg_1 -_08071864: - ldrh r0, [r4, #0x30] - adds r0, #0x14 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x30] - movs r1, #0x30 - ldrsh r0, [r4, r1] - movs r1, #1 - bl Sin - strh r0, [r4, #0x24] - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0xf - bne _08071894 - movs r0, #0x17 - bl sub_080A306C - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAnim - bl CreateRandomEggShardSprite -_08071894: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SpriteCB_Egg_0 - - thumb_func_start SpriteCB_Egg_1 -SpriteCB_Egg_1: @ 0x0807189C - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x32] - adds r0, #1 - movs r1, #0 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1e - ble _080718F8 - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x14 - ble _080718CC - ldr r0, _080718C8 - str r0, [r4, #0x1c] - strh r1, [r4, #0x2e] - strh r1, [r4, #0x32] - b _080718F8 - .align 2, 0 -_080718C8: .4byte SpriteCB_Egg_2 -_080718CC: - ldrh r0, [r4, #0x30] - adds r0, #0x14 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x30] - movs r1, #0x30 - ldrsh r0, [r4, r1] - movs r1, #2 - bl Sin - strh r0, [r4, #0x24] - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0xf - bne _080718F8 - movs r0, #0x17 - bl sub_080A306C - adds r0, r4, #0 - movs r1, #2 - bl StartSpriteAnim -_080718F8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SpriteCB_Egg_1 - - thumb_func_start SpriteCB_Egg_2 -SpriteCB_Egg_2: @ 0x08071900 - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x32] - adds r0, #1 - movs r5, #0 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1e - ble _080719AE - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x26 - ble _0807196C - ldr r0, _0807195C - str r0, [r4, #0x1c] - strh r5, [r4, #0x2e] - ldr r4, _08071960 - ldr r0, [r4] - ldrb r1, [r0, #4] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08071964 - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - ldr r3, _08071968 - ldr r2, [r4] - ldrb r1, [r2, #1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r5, [r0, #0x24] - ldrb r1, [r2, #1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r5, [r0, #0x26] - b _080719AE - .align 2, 0 -_0807195C: .4byte SpriteCB_Egg_3 -_08071960: .4byte gUnknown_3000DE0 -_08071964: .4byte gUnknown_2024190 -_08071968: .4byte gUnknown_20205AC -_0807196C: - ldrh r0, [r4, #0x30] - adds r0, #0x14 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x30] - movs r1, #0x30 - ldrsh r0, [r4, r1] - movs r1, #2 - bl Sin - strh r0, [r4, #0x24] - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0xf - bne _080719A0 - movs r0, #0x17 - bl sub_080A306C - adds r0, r4, #0 - movs r1, #2 - bl StartSpriteAnim - bl CreateRandomEggShardSprite - bl CreateRandomEggShardSprite -_080719A0: - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0x1e - bne _080719AE - movs r0, #0x17 - bl sub_080A306C -_080719AE: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end SpriteCB_Egg_2 - - thumb_func_start SpriteCB_Egg_3 -SpriteCB_Egg_3: @ 0x080719B4 - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0x2e] - adds r0, #1 - strh r0, [r1, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x32 - ble _080719CE - ldr r0, _080719D4 - str r0, [r1, #0x1c] - movs r0, #0 - strh r0, [r1, #0x2e] -_080719CE: - pop {r0} - bx r0 - .align 2, 0 -_080719D4: .4byte SpriteCB_Egg_4 - thumb_func_end SpriteCB_Egg_3 - - thumb_func_start SpriteCB_Egg_4 -SpriteCB_Egg_4: @ 0x080719D8 - push {r4, r5, lr} - sub sp, #4 - adds r5, r0, #0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _080719F8 - movs r1, #1 - rsbs r1, r1, #0 - ldr r0, _08071A4C - str r0, [sp] - adds r0, r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade -_080719F8: - ldrh r0, [r5, #0x2e] - cmp r0, #3 - bhi _08071A14 - movs r4, #0 -_08071A00: - bl CreateRandomEggShardSprite - lsls r0, r4, #0x10 - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r0, r1 - lsrs r4, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - ble _08071A00 -_08071A14: - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] - ldr r0, _08071A50 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _08071A42 - movs r0, #0x71 - bl sub_080A306C - adds r2, r5, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08071A54 - str r0, [r5, #0x1c] - strh r4, [r5, #0x2e] -_08071A42: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08071A4C: .4byte 0x0000FFFF -_08071A50: .4byte gUnknown_2037C74 -_08071A54: .4byte SpriteCB_Egg_5 - thumb_func_end SpriteCB_Egg_4 - - thumb_func_start SpriteCB_Egg_5 -SpriteCB_Egg_5: @ 0x08071A58 - push {r4, r5, lr} - sub sp, #4 - adds r5, r0, #0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _08071A94 - ldr r4, _08071AE8 - ldr r3, _08071AEC - ldr r0, [r3] - ldrb r1, [r0, #1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - ldr r0, [r3] - ldrb r1, [r0, #1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #1 - bl StartSpriteAffineAnim -_08071A94: - movs r2, #0x2e - ldrsh r0, [r5, r2] - cmp r0, #8 - bne _08071AAE - movs r1, #1 - rsbs r1, r1, #0 - ldr r0, _08071AF0 - str r0, [sp] - adds r0, r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade -_08071AAE: - movs r1, #0x2e - ldrsh r0, [r5, r1] - cmp r0, #9 - bgt _08071ACC - ldr r2, _08071AE8 - ldr r0, _08071AEC - ldr r0, [r0] - ldrb r1, [r0, #1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x22] - subs r1, #1 - strh r1, [r0, #0x22] -_08071ACC: - ldrh r1, [r5, #0x2e] - movs r2, #0x2e - ldrsh r0, [r5, r2] - cmp r0, #0x28 - ble _08071ADA - ldr r0, _08071AF4 - str r0, [r5, #0x1c] -_08071ADA: - adds r0, r1, #1 - strh r0, [r5, #0x2e] - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08071AE8: .4byte gUnknown_20205AC -_08071AEC: .4byte gUnknown_3000DE0 -_08071AF0: .4byte 0x0000FFFF -_08071AF4: .4byte sub_08007140 - thumb_func_end SpriteCB_Egg_5 - - thumb_func_start SpriteCB_EggShard -SpriteCB_EggShard: @ 0x08071AF8 - push {r4, lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x30] - ldrh r1, [r2, #0x36] - adds r0, r0, r1 - strh r0, [r2, #0x36] - ldrh r1, [r2, #0x32] - ldrh r3, [r2, #0x38] - adds r0, r1, r3 - strh r0, [r2, #0x38] - movs r4, #0x36 - ldrsh r0, [r2, r4] - cmp r0, #0 - bge _08071B16 - adds r0, #0xff -_08071B16: - asrs r0, r0, #8 - strh r0, [r2, #0x24] - movs r3, #0x38 - ldrsh r0, [r2, r3] - cmp r0, #0 - bge _08071B24 - adds r0, #0xff -_08071B24: - asrs r0, r0, #8 - strh r0, [r2, #0x26] - ldrh r0, [r2, #0x34] - adds r3, r1, r0 - strh r3, [r2, #0x32] - movs r4, #0x22 - ldrsh r1, [r2, r4] - movs r4, #0x26 - ldrsh r0, [r2, r4] - adds r0, r1, r0 - adds r1, #0x14 - cmp r0, r1 - ble _08071B4A - lsls r0, r3, #0x10 - cmp r0, #0 - ble _08071B4A - adds r0, r2, #0 - bl DestroySprite -_08071B4A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end SpriteCB_EggShard - - thumb_func_start CreateRandomEggShardSprite -CreateRandomEggShardSprite: @ 0x08071B50 - push {r4, r5, r6, lr} - sub sp, #8 - ldr r2, _08071B9C - ldr r0, _08071BA0 - ldr r6, [r0] - ldrb r3, [r6, #7] - lsls r0, r3, #2 - adds r1, r0, r2 - ldrh r5, [r1] - adds r2, #2 - adds r0, r0, r2 - ldrh r4, [r0] - adds r3, #1 - strb r3, [r6, #7] - bl Random - lsls r0, r0, #0x10 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r0 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - movs r0, #0x64 - str r0, [sp] - lsrs r1, r1, #0x10 - str r1, [sp, #4] - movs r0, #0x78 - movs r1, #0x3c - adds r2, r5, #0 - adds r3, r4, #0 - bl CreateEggShardSprite - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08071B9C: .4byte gUnknown_82FCA7C -_08071BA0: .4byte gUnknown_3000DE0 - thumb_func_end CreateRandomEggShardSprite - - thumb_func_start CreateEggShardSprite -CreateEggShardSprite: @ 0x08071BA4 - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - mov r8, r3 - ldr r0, [sp, #0x1c] - mov sb, r0 - ldr r1, [sp, #0x20] - mov sl, r1 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - mov r0, r8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - mov r1, sb - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sb, r1 - mov r0, sl - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - ldr r0, _08071C1C - adds r1, r4, #0 - adds r2, r5, #0 - movs r3, #4 - bl CreateSprite - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _08071C20 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r6, [r0, #0x30] - mov r1, r8 - strh r1, [r0, #0x32] - mov r1, sb - strh r1, [r0, #0x34] - mov r1, sl - bl StartSpriteAnim - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08071C1C: .4byte gUnknown_82FCA44 -_08071C20: .4byte gUnknown_20205AC - thumb_func_end CreateEggShardSprite - - thumb_func_start EggHatchPrintMessage -EggHatchPrintMessage: @ 0x08071C24 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #0x14 - adds r5, r0, #0 - mov sb, r1 - adds r6, r2, #0 - mov r8, r3 - ldr r4, [sp, #0x2c] - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov r0, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - movs r1, #0xff - bl FillWindowPixelBuffer - ldr r3, _08071C98 - ldr r0, [r3] - movs r2, #0 - strb r2, [r0, #0xe] - ldr r1, [r3] - movs r0, #5 - strb r0, [r1, #0xf] - ldr r1, [r3] - movs r0, #6 - strb r0, [r1, #0x10] - str r2, [sp] - str r2, [sp, #4] - ldr r0, [r3] - adds r0, #0xe - str r0, [sp, #8] - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - str r4, [sp, #0xc] - mov r0, sb - str r0, [sp, #0x10] - adds r0, r5, #0 - movs r1, #1 - adds r2, r6, #0 - mov r3, r8 - bl AddTextPrinterParameterized4 - add sp, #0x14 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08071C98: .4byte gUnknown_3000DE0 - thumb_func_end EggHatchPrintMessage - - thumb_func_start GetEggStepsToSubtract -GetEggStepsToSubtract: @ 0x08071C9C - push {r4, r5, r6, lr} - bl sub_0806B004 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r5, #0 - cmp r5, r6 - bhs _08071CE6 -_08071CAC: - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _08071CD8 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #6 - bl GetMonData - cmp r0, #0 - bne _08071CDC - adds r0, r4, #0 - bl GetMonAbility - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x28 - beq _08071CD4 - cmp r0, #0x31 - bne _08071CDC -_08071CD4: - movs r0, #2 - b _08071CE8 - .align 2, 0 -_08071CD8: .4byte gUnknown_2024190 -_08071CDC: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, r6 - blo _08071CAC -_08071CE6: - movs r0, #1 -_08071CE8: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetEggStepsToSubtract - - thumb_func_start sub_08071CF0 -sub_08071CF0: @ 0x08071CF0 - push {r4, lr} - bl CountStorageNonEggMons - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - movs r0, #6 - bl CountPartyAliveNonEggMonsExcept - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r4, r4, r0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_08071CF0 - - thumb_func_start DummiedOutFunction -DummiedOutFunction: @ 0x08071D14 - movs r0, #9 - bx lr - thumb_func_end DummiedOutFunction - - thumb_func_start sub_08071D18 -sub_08071D18: @ 0x08071D18 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r7, r1, #0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sl, r2 - movs r3, #0 - movs r2, #0 -_08071D34: - lsls r0, r3, #0x18 - asrs r0, r0, #0x18 - mov r3, sp - adds r1, r3, r0 - strb r2, [r1] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #3 - ble _08071D34 - movs r3, #3 - movs r0, #1 - rsbs r0, r0, #0 - mov sb, r0 - mov r8, sp -_08071D54: - lsls r0, r5, #0x10 - asrs r6, r0, #0x10 - cmp r6, #0 - ble _08071D82 - lsls r4, r3, #0x18 - asrs r4, r4, #0x18 - mov r1, sp - adds r5, r1, r4 - adds r0, r6, #0 - movs r1, #0xa - bl __modsi3 - strb r0, [r5] - adds r0, r6, #0 - movs r1, #0xa - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - subs r4, #1 - lsls r4, r4, #0x18 - lsrs r3, r4, #0x18 - b _08071D54 -_08071D82: - lsls r1, r3, #0x18 - asrs r0, r1, #0x18 - cmp r0, sb - ble _08071DA6 - movs r4, #0xff - movs r3, #1 - rsbs r3, r3, #0 -_08071D90: - asrs r2, r1, #0x18 - mov r5, sp - adds r1, r5, r2 - ldrb r0, [r1] - orrs r0, r4 - strb r0, [r1] - subs r2, #1 - lsls r1, r2, #0x18 - asrs r0, r1, #0x18 - cmp r0, r3 - bgt _08071D90 -_08071DA6: - mov r1, r8 - ldrb r0, [r1, #3] - cmp r0, #0xff - bne _08071DB2 - movs r0, #0 - strb r0, [r1, #3] -_08071DB2: - mov r2, sl - cmp r2, #0 - bne _08071E42 - movs r3, #0 - movs r1, #0 - movs r6, #0xfc - lsls r6, r6, #8 - movs r5, #0x1e - mov ip, r5 -_08071DC4: - lsls r1, r1, #0x18 - asrs r2, r1, #0x18 - mov r0, sp - adds r5, r0, r2 - ldrb r0, [r5] - mov r8, r1 - cmp r0, #0xff - bne _08071DFA - lsls r1, r2, #1 - adds r1, r1, r7 - ldrh r2, [r1] - adds r0, r6, #0 - ands r0, r2 - mov r2, ip - orrs r0, r2 - strh r0, [r1] - lsls r3, r3, #0x18 - asrs r1, r3, #0x17 - adds r1, r1, r7 - adds r1, #0x40 - ldrh r2, [r1] - adds r0, r6, #0 - ands r0, r2 - mov r5, ip - orrs r0, r5 - strh r0, [r1] - b _08071E2A -_08071DFA: - lsls r2, r2, #1 - adds r2, r2, r7 - ldrh r0, [r2] - adds r1, r6, #0 - ands r1, r0 - ldrb r0, [r5] - adds r0, #0x14 - orrs r1, r0 - strh r1, [r2] - lsls r4, r3, #0x18 - asrs r3, r4, #0x18 - lsls r2, r3, #1 - adds r2, r2, r7 - adds r2, #0x40 - ldrh r0, [r2] - adds r1, r6, #0 - ands r1, r0 - mov r5, sp - adds r0, r5, r3 - ldrb r0, [r0] - adds r0, #0x34 - orrs r1, r0 - strh r1, [r2] - adds r3, r4, #0 -_08071E2A: - movs r0, #0x80 - lsls r0, r0, #0x11 - add r0, r8 - lsrs r1, r0, #0x18 - movs r2, #0x80 - lsls r2, r2, #0x11 - adds r0, r3, r2 - lsrs r3, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #3 - ble _08071DC4 - b _08071EA6 -_08071E42: - movs r3, #0 - movs r4, #0xfc - lsls r4, r4, #8 - movs r6, #0x1e -_08071E4A: - lsls r1, r3, #0x18 - asrs r2, r1, #0x18 - mov r3, sp - adds r5, r3, r2 - ldrb r0, [r5] - adds r3, r1, #0 - cmp r0, #0xff - bne _08071E76 - lsls r1, r2, #1 - adds r1, r1, r7 - ldrh r2, [r1] - adds r0, r4, #0 - ands r0, r2 - orrs r0, r6 - strh r0, [r1] - adds r1, #0x40 - ldrh r2, [r1] - adds r0, r4, #0 - ands r0, r2 - orrs r0, r6 - strh r0, [r1] - b _08071E98 -_08071E76: - lsls r2, r2, #1 - adds r2, r2, r7 - ldrh r0, [r2] - adds r1, r4, #0 - ands r1, r0 - ldrb r0, [r5] - adds r0, #0x14 - orrs r1, r0 - strh r1, [r2] - adds r2, #0x40 - ldrh r0, [r2] - adds r1, r4, #0 - ands r1, r0 - ldrb r0, [r5] - adds r0, #0x34 - orrs r1, r0 - strh r1, [r2] -_08071E98: - movs r5, #0x80 - lsls r5, r5, #0x11 - adds r0, r3, r5 - lsrs r3, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #3 - ble _08071E4A -_08071EA6: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08071D18 - - thumb_func_start sub_08071EB8 -sub_08071EB8: @ 0x08071EB8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, r1, #0 - adds r5, r2, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - movs r1, #0x1e - strh r1, [r5, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r5, #0 - movs r2, #0 - bl sub_08071D18 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - adds r5, #0xa - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #1 - bl sub_08071D18 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08071EB8 - - thumb_func_start CreateBattlerHealthboxSprites -CreateBattlerHealthboxSprites: @ 0x08071EEC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - movs r0, #0 - str r0, [sp] - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08072000 - mov r0, sl - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08071F84 - ldr r4, _08071F74 - adds r0, r4, #0 - movs r1, #0xf0 - movs r2, #0xa0 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r0, r4, #0 - movs r1, #0xf0 - movs r2, #0xa0 - movs r3, #1 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r4, _08071F78 - lsls r1, r6, #4 - adds r1, r1, r6 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r2, [r1, #1] - movs r3, #0x3f - adds r0, r3, #0 - ands r0, r2 - strb r0, [r1, #1] - lsls r2, r7, #4 - adds r2, r2, r7 - lsls r2, r2, #2 - adds r2, r2, r4 - ldrb r0, [r2, #1] - ands r3, r0 - strb r3, [r2, #1] - ldrh r3, [r2, #4] - lsls r1, r3, #0x16 - lsrs r1, r1, #0x16 - adds r1, #0x40 - ldr r4, _08071F7C - adds r0, r4, #0 - ands r1, r0 - ldr r0, _08071F80 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, #4] - b _08071FCA - .align 2, 0 -_08071F74: .4byte gUnknown_82FCB38 -_08071F78: .4byte gUnknown_20205AC -_08071F7C: .4byte 0x000003FF -_08071F80: .4byte 0xFFFFFC00 -_08071F84: - ldr r4, _08071FEC - adds r0, r4, #0 - movs r1, #0xf0 - movs r2, #0xa0 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r0, r4, #0 - movs r1, #0xf0 - movs r2, #0xa0 - movs r3, #1 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _08071FF0 - lsls r2, r7, #4 - adds r2, r2, r7 - lsls r2, r2, #2 - adds r2, r2, r0 - ldrh r3, [r2, #4] - lsls r1, r3, #0x16 - lsrs r1, r1, #0x16 - adds r1, #0x20 - ldr r5, _08071FF4 - adds r0, r5, #0 - ands r1, r0 - ldr r0, _08071FF8 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, #4] - movs r0, #2 - str r0, [sp] -_08071FCA: - ldr r2, _08071FF0 - lsls r0, r6, #4 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r7, [r0, #6] - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - adds r1, r0, r2 - strh r6, [r1, #0x38] - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, _08071FFC - str r1, [r0] - b _08072128 - .align 2, 0 -_08071FEC: .4byte gUnknown_82FCB68 -_08071FF0: .4byte gUnknown_20205AC -_08071FF4: .4byte 0x000003FF -_08071FF8: .4byte 0xFFFFFC00 -_08071FFC: .4byte SpriteCB_HealthBoxOther -_08072000: - mov r0, sl - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080720A4 - mov r0, sl - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x19 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - ldr r4, _08072090 - adds r0, r0, r4 - movs r1, #0xf0 - movs r2, #0xa0 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - mov r0, sl - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x19 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r4 - movs r1, #0xf0 - movs r2, #0xa0 - movs r3, #1 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r4, _08072094 - lsls r0, r6, #4 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r0, r0, r4 - strh r7, [r0, #6] - lsls r2, r7, #4 - adds r2, r2, r7 - lsls r2, r2, #2 - adds r3, r2, r4 - strh r6, [r3, #0x38] - ldrh r1, [r3, #4] - mov r8, r1 - mov r5, r8 - lsls r1, r5, #0x16 - lsrs r1, r1, #0x16 - adds r1, #0x20 - ldr r5, _08072098 - adds r0, r5, #0 - ands r1, r0 - ldr r0, _0807209C - mov r5, r8 - ands r0, r5 - orrs r0, r1 - strh r0, [r3, #4] - adds r4, #0x1c - adds r2, r2, r4 - ldr r0, _080720A0 - str r0, [r2] - movs r0, #1 - b _08072126 - .align 2, 0 -_08072090: .4byte gUnknown_82FCB38 -_08072094: .4byte gUnknown_20205AC -_08072098: .4byte 0x000003FF -_0807209C: .4byte 0xFFFFFC00 -_080720A0: .4byte SpriteCB_HealthBoxOther -_080720A4: - mov r0, sl - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x19 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - ldr r4, _080721EC - adds r0, r0, r4 - movs r1, #0xf0 - movs r2, #0xa0 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - mov r0, sl - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x19 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r4 - movs r1, #0xf0 - movs r2, #0xa0 - movs r3, #1 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r4, _080721F0 - lsls r0, r6, #4 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r0, r0, r4 - strh r7, [r0, #6] - lsls r2, r7, #4 - adds r2, r2, r7 - lsls r2, r2, #2 - adds r3, r2, r4 - strh r6, [r3, #0x38] - ldrh r1, [r3, #4] - mov r8, r1 - mov r5, r8 - lsls r1, r5, #0x16 - lsrs r1, r1, #0x16 - adds r1, #0x20 - ldr r5, _080721F4 - adds r0, r5, #0 - ands r1, r0 - ldr r0, _080721F8 - mov r5, r8 - ands r0, r5 - orrs r0, r1 - strh r0, [r3, #4] - adds r4, #0x1c - adds r2, r2, r4 - ldr r0, _080721FC - str r0, [r2] - movs r0, #2 -_08072126: - str r0, [sp] -_08072128: - ldr r0, _08072200 - add r0, sl - ldrb r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - ldr r1, _08072204 - adds r0, r0, r1 - movs r1, #0x8c - movs r2, #0x3c - movs r3, #0 - bl CreateSpriteAtEnd - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r5, #4 - adds r4, r4, r5 - lsls r4, r4, #2 - ldr r1, _080721F0 - mov r8, r1 - add r4, r8 - mov r0, sl - bl GetBattlerSide - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x15 - ldr r0, _08072208 - adds r1, r1, r0 - adds r0, r4, #0 - bl SetSubspriteTables - adds r2, r4, #0 - adds r2, #0x42 - ldrb r1, [r2] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r4, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r2, #4 - mov sb, r2 - mov r1, sb - orrs r0, r1 - strb r0, [r4, #5] - movs r0, #1 - bl GetHealthboxElementGfxPtr - ldrh r1, [r4, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x11 - ldr r2, _0807220C - adds r1, r1, r2 - ldr r2, _08072210 - bl CpuSet - lsls r0, r6, #4 - adds r0, r0, r6 - lsls r0, r0, #2 - add r0, r8 - strh r5, [r0, #0x38] - mov r2, sl - strh r2, [r0, #0x3a] - adds r0, #0x3e - ldrb r1, [r0] - mov r5, sb - orrs r1, r5 - strb r1, [r0] - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - add r0, r8 - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r5 - strb r1, [r0] - strh r6, [r4, #0x38] - mov r0, sp - ldrh r0, [r0] - strh r0, [r4, #0x3a] - adds r4, #0x3e - ldrb r0, [r4] - orrs r0, r5 - strb r0, [r4] - adds r0, r6, #0 - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080721EC: .4byte gUnknown_82FCB68 -_080721F0: .4byte gUnknown_20205AC -_080721F4: .4byte 0x000003FF -_080721F8: .4byte 0xFFFFFC00 -_080721FC: .4byte SpriteCB_HealthBoxOther -_08072200: .4byte gUnknown_2023D1A -_08072204: .4byte gUnknown_82FCBB8 -_08072208: .4byte gUnknown_82FCC84 -_0807220C: .4byte 0x06010000 -_08072210: .4byte 0x04000010 - thumb_func_end CreateBattlerHealthboxSprites - - thumb_func_start CreateSafariPlayerHealthboxSprites -CreateSafariPlayerHealthboxSprites: @ 0x08072214 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r4, _080722A0 - adds r0, r4, #0 - movs r1, #0xf0 - movs r2, #0xa0 - movs r3, #1 - bl CreateSprite - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - adds r0, r4, #0 - movs r1, #0xf0 - movs r2, #0xa0 - movs r3, #1 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080722A4 - mov sb, r1 - lsls r4, r6, #4 - adds r4, r4, r6 - lsls r4, r4, #2 - add r4, sb - ldrb r3, [r4, #1] - movs r2, #0x3f - adds r1, r2, #0 - ands r1, r3 - strb r1, [r4, #1] - lsls r3, r0, #4 - adds r3, r3, r0 - lsls r3, r3, #2 - mov r7, sb - adds r5, r3, r7 - ldrb r1, [r5, #1] - ands r2, r1 - strb r2, [r5, #1] - ldrh r1, [r5, #4] - mov r8, r1 - mov r7, r8 - lsls r2, r7, #0x16 - lsrs r2, r2, #0x16 - adds r2, #0x40 - ldr r7, _080722A8 - adds r1, r7, #0 - ands r2, r1 - ldr r1, _080722AC - mov r7, r8 - ands r1, r7 - orrs r1, r2 - strh r1, [r5, #4] - strh r0, [r4, #6] - strh r6, [r5, #0x38] - movs r0, #0x1c - add sb, r0 - add r3, sb - ldr r0, _080722B0 - str r0, [r3] - adds r0, r6, #0 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080722A0: .4byte gUnknown_82FCB98 -_080722A4: .4byte gUnknown_20205AC -_080722A8: .4byte 0x000003FF -_080722AC: .4byte 0xFFFFFC00 -_080722B0: .4byte SpriteCB_HealthBoxOther - thumb_func_end CreateSafariPlayerHealthboxSprites - - thumb_func_start GetHealthboxElementGfxPtr -GetHealthboxElementGfxPtr: @ 0x080722B4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x13 - ldr r1, _080722C0 - adds r0, r0, r1 - bx lr - .align 2, 0 -_080722C0: .4byte gUnknown_8C11BE4 - thumb_func_end GetHealthboxElementGfxPtr - - thumb_func_start SpriteCB_HealthBar -SpriteCB_HealthBar: @ 0x080722C4 - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x38] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r1, #0x3a - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _080722F4 - cmp r0, #1 - bgt _08072308 - cmp r0, #0 - bne _08072308 - ldr r2, _080722F0 - lsls r3, r5, #4 - adds r1, r3, r5 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r0, [r1, #0x20] - adds r0, #0x10 - b _08072316 - .align 2, 0 -_080722F0: .4byte gUnknown_20205AC -_080722F4: - ldr r2, _08072304 - lsls r3, r5, #4 - adds r1, r3, r5 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r0, [r1, #0x20] - adds r0, #0x10 - b _08072316 - .align 2, 0 -_08072304: .4byte gUnknown_20205AC -_08072308: - ldr r2, _08072330 - lsls r3, r5, #4 - adds r1, r3, r5 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r0, [r1, #0x20] - adds r0, #8 -_08072316: - strh r0, [r4, #0x20] - ldrh r0, [r1, #0x22] - strh r0, [r4, #0x22] - adds r0, r3, r5 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x24] - strh r1, [r4, #0x24] - ldrh r0, [r0, #0x26] - strh r0, [r4, #0x26] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08072330: .4byte gUnknown_20205AC - thumb_func_end SpriteCB_HealthBar - - thumb_func_start SpriteCB_HealthBoxOther -SpriteCB_HealthBoxOther: @ 0x08072334 - ldrh r1, [r0, #0x38] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r3, _08072358 - lsls r2, r1, #4 - adds r2, r2, r1 - lsls r2, r2, #2 - adds r2, r2, r3 - ldrh r1, [r2, #0x20] - adds r1, #0x40 - strh r1, [r0, #0x20] - ldrh r1, [r2, #0x22] - strh r1, [r0, #0x22] - ldrh r1, [r2, #0x24] - strh r1, [r0, #0x24] - ldrh r1, [r2, #0x26] - strh r1, [r0, #0x26] - bx lr - .align 2, 0 -_08072358: .4byte gUnknown_20205AC - thumb_func_end SpriteCB_HealthBoxOther - - thumb_func_start SetBattleBarStruct -SetBattleBarStruct: @ 0x0807235C - push {r4, r5, r6, r7, lr} - ldr r7, [sp, #0x14] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r6, _0807238C - ldr r4, [r6] - ldr r5, [r4, #0xc] - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #2 - adds r5, r4, r5 - strb r1, [r5] - ldr r0, [r6] - ldr r0, [r0, #0xc] - adds r4, r4, r0 - str r2, [r4, #4] - str r3, [r4, #8] - str r7, [r4, #0xc] - ldr r0, _08072390 - str r0, [r4, #0x10] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0807238C: .4byte gUnknown_2024174 -_08072390: .4byte 0xFFFF8000 - thumb_func_end SetBattleBarStruct - - thumb_func_start SetHealthboxSpriteInvisible -SetHealthboxSpriteInvisible: @ 0x08072394 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _080723DC - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r4 - adds r1, r2, #0 - adds r1, #0x3e - ldrb r0, [r1] - movs r3, #4 - orrs r0, r3 - strb r0, [r1] - movs r0, #0x38 - ldrsh r1, [r2, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - ldrh r1, [r2, #6] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080723DC: .4byte gUnknown_20205AC - thumb_func_end SetHealthboxSpriteInvisible - - thumb_func_start SetHealthboxSpriteVisible -SetHealthboxSpriteVisible: @ 0x080723E0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _08072430 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r5 - adds r4, r2, #0 - adds r4, #0x3e - ldrb r1, [r4] - movs r3, #5 - rsbs r3, r3, #0 - adds r0, r3, #0 - ands r0, r1 - strb r0, [r4] - movs r0, #0x38 - ldrsh r1, [r2, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r4, [r0] - adds r1, r3, #0 - ands r1, r4 - strb r1, [r0] - ldrh r1, [r2, #6] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r1, [r0] - ands r3, r1 - strb r3, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08072430: .4byte gUnknown_20205AC - thumb_func_end SetHealthboxSpriteVisible - - thumb_func_start UpdateSpritePos -UpdateSpritePos: @ 0x08072434 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _08072450 - lsls r3, r0, #4 - adds r3, r3, r0 - lsls r3, r3, #2 - adds r3, r3, r4 - strh r1, [r3, #0x20] - strh r2, [r3, #0x22] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08072450: .4byte gUnknown_20205AC - thumb_func_end UpdateSpritePos - - thumb_func_start DestoryHealthboxSprite -DestoryHealthboxSprite: @ 0x08072454 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _08072490 - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - adds r4, r4, r5 - ldrh r1, [r4, #6] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - bl DestroySprite - movs r0, #0x38 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - bl DestroySprite - adds r0, r4, #0 - bl DestroySprite - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08072490: .4byte gUnknown_20205AC - thumb_func_end DestoryHealthboxSprite - - thumb_func_start sub_08072494 -sub_08072494: @ 0x08072494 - bx lr - .align 2, 0 - thumb_func_end sub_08072494 - - thumb_func_start UpdateOamPriorityInAllHealthboxes -UpdateOamPriorityInAllHealthboxes: @ 0x08072498 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r6, #0 - ldr r1, _0807251C - mov r8, r1 - ldrb r2, [r1] - cmp r6, r2 - bge _08072510 - ldr r1, _08072520 - mov ip, r1 - movs r1, #3 - ands r0, r1 - lsls r5, r0, #2 - movs r7, #0xd - rsbs r7, r7, #0 - ldr r2, _08072524 - mov sb, r2 -_080724C2: - mov r1, sb - adds r0, r6, r1 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - add r1, ip - ldrb r4, [r1, #6] - ldrh r3, [r1, #0x38] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldrb r2, [r1, #5] - adds r0, r7, #0 - ands r0, r2 - orrs r0, r5 - strb r0, [r1, #5] - lsls r1, r4, #4 - adds r1, r1, r4 - lsls r1, r1, #2 - add r1, ip - ldrb r2, [r1, #5] - adds r0, r7, #0 - ands r0, r2 - orrs r0, r5 - strb r0, [r1, #5] - lsls r1, r3, #4 - adds r1, r1, r3 - lsls r1, r1, #2 - add r1, ip - ldrb r2, [r1, #5] - adds r0, r7, #0 - ands r0, r2 - orrs r0, r5 - strb r0, [r1, #5] - adds r6, #1 - mov r2, r8 - ldrb r2, [r2] - cmp r6, r2 - blt _080724C2 -_08072510: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0807251C: .4byte gUnknown_2023D10 -_08072520: .4byte gUnknown_20205AC -_08072524: .4byte gUnknown_3005AD0 - thumb_func_end UpdateOamPriorityInAllHealthboxes - - thumb_func_start InitBattlerHealthboxCoords -InitBattlerHealthboxCoords: @ 0x08072528 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r5, #0 - movs r4, #0 - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08072554 - adds r0, r6, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0807254E - movs r5, #0x2c - movs r4, #0x1e - b _0807258C -_0807254E: - movs r5, #0x9e - movs r4, #0x58 - b _0807258C -_08072554: - adds r0, r6, #0 - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08072582 - cmp r0, #1 - bgt _0807256C - cmp r0, #0 - beq _08072576 - b _0807258C -_0807256C: - cmp r0, #2 - beq _0807257C - cmp r0, #3 - beq _08072588 - b _0807258C -_08072576: - movs r5, #0x9f - movs r4, #0x4c - b _0807258C -_0807257C: - movs r5, #0xab - movs r4, #0x65 - b _0807258C -_08072582: - movs r5, #0x2c - movs r4, #0x13 - b _0807258C -_08072588: - movs r5, #0x20 - movs r4, #0x2c -_0807258C: - ldr r0, _080725A0 - adds r0, r6, r0 - ldrb r0, [r0] - adds r1, r5, #0 - adds r2, r4, #0 - bl UpdateSpritePos - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080725A0: .4byte gUnknown_3005AD0 - thumb_func_end InitBattlerHealthboxCoords - - thumb_func_start sub_080725A4 -sub_080725A4: @ 0x080725A4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x20 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - ldr r1, _080725EC - mov r0, sp - movs r2, #0x1e - bl memcpy - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080725F4 - ldr r1, _080725F0 - lsls r4, r6, #4 - adds r0, r4, r6 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0, #0x3a] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerSide - lsls r0, r0, #0x18 - movs r5, #0x28 - adds r7, r4, #0 - cmp r0, #0 - bne _08072614 - movs r5, #0x49 - b _08072614 - .align 2, 0 -_080725EC: .4byte gUnknown_82FCDBC -_080725F0: .4byte gUnknown_20205AC -_080725F4: - ldr r1, _08072630 - lsls r4, r6, #4 - adds r0, r4, r6 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0, #0x3a] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerSide - lsls r0, r0, #0x18 - movs r5, #0x28 - adds r7, r4, #0 - cmp r0, #0 - bne _08072614 - movs r5, #0x29 -_08072614: - mov r0, r8 - cmp r0, #0x64 - bne _08072634 - mov r0, sp - adds r0, #6 - movs r1, #0x64 - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - movs r1, #3 - mov r8, r1 - b _0807267E - .align 2, 0 -_08072630: .4byte gUnknown_20205AC -_08072634: - movs r0, #0x2a - bl GetHealthboxElementGfxPtr - ldr r2, _080726E0 - adds r1, r7, r6 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r1, [r1, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x16 - adds r1, r1, r5 - lsls r1, r1, #5 - ldr r2, _080726E4 - adds r1, r1, r2 - ldr r2, _080726E8 - bl CpuSet - mov r0, sp - adds r0, #6 - mov r1, r8 - movs r2, #0 - movs r3, #2 - bl sub_080089D8 - mov r2, r8 - cmp r2, #9 - bhi _08072674 - mov r0, sp - adds r0, #7 - ldr r1, _080726EC - bl StringCopy -_08072674: - movs r0, #2 - mov r8, r0 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_0807267E: - ldr r0, _080726F0 - ldr r0, [r0] - movs r1, #0xba - lsls r1, r1, #1 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #7 - mov r2, sp - bl RenderTextFont9 - movs r4, #0 - cmp r4, r8 - bhs _080726D2 - ldr r1, _080726E0 - adds r0, r7, r6 - lsls r0, r0, #2 - adds r6, r0, r1 -_080726A0: - ldr r0, _080726F0 - ldr r0, [r0] - movs r2, #0xba - lsls r2, r2, #1 - adds r0, r0, r2 - lsls r1, r4, #6 - ldr r0, [r0] - adds r0, r0, r1 - adds r0, #0x20 - ldrh r1, [r6, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x16 - adds r1, r1, r5 - adds r1, r1, r4 - lsls r1, r1, #5 - ldr r2, _080726E4 - adds r1, r1, r2 - ldr r2, _080726E8 - bl CpuSet - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r8 - blo _080726A0 -_080726D2: - add sp, #0x20 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080726E0: .4byte gUnknown_20205AC -_080726E4: .4byte 0x06010000 -_080726E8: .4byte 0x04000008 -_080726EC: .4byte gUnknown_85CC4EE -_080726F0: .4byte gUnknown_2024178 - thumb_func_end sub_080725A4 - - thumb_func_start sub_080726F4 -sub_080726F4: @ 0x080726F4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r8, r1 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - ldr r1, _08072750 - mov r0, sp - movs r2, #0x14 - bl memcpy - ldr r1, _08072754 - lsls r0, r6, #4 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r7, r0, r1 - ldrh r0, [r7, #0x3a] - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl IsDoubleBattle - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0807273E - adds r0, r4, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08072758 -_0807273E: - mov r0, r8 - lsls r1, r0, #0x10 - asrs r1, r1, #0x10 - adds r0, r6, #0 - adds r2, r5, #0 - bl SwapHpBarsWithHpText - b _080727DE - .align 2, 0 -_08072750: .4byte gUnknown_82FCDDA -_08072754: .4byte gUnknown_20205AC -_08072758: - ldrh r0, [r7, #0x3a] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08072772 - movs r7, #0x59 - cmp r5, #0 - bne _0807277A - movs r7, #0x1d - b _0807277A -_08072772: - movs r7, #0x30 - cmp r5, #0 - bne _0807277A - movs r7, #0x14 -_0807277A: - mov r0, sp - adds r0, #6 - mov r2, r8 - lsls r1, r2, #0x10 - asrs r1, r1, #0x10 - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - ldr r0, _080727EC - ldr r0, [r0] - movs r1, #0xba - lsls r1, r1, #1 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #7 - mov r2, sp - bl RenderTextFont9 - movs r4, #0 - lsls r0, r6, #4 - ldr r1, _080727F0 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r5, r0, r1 -_080727AC: - ldr r0, _080727EC - ldr r0, [r0] - movs r2, #0xba - lsls r2, r2, #1 - adds r0, r0, r2 - lsls r1, r4, #6 - adds r1, #0x20 - ldr r0, [r0] - adds r0, r0, r1 - ldrh r1, [r5, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x16 - adds r1, r1, r7 - adds r1, r1, r4 - lsls r1, r1, #5 - ldr r2, _080727F4 - adds r1, r1, r2 - ldr r2, _080727F8 - bl CpuSet - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #2 - bls _080727AC -_080727DE: - add sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080727EC: .4byte gUnknown_2024178 -_080727F0: .4byte gUnknown_20205AC -_080727F4: .4byte 0x06010000 -_080727F8: .4byte 0x04000008 - thumb_func_end sub_080726F4 - - thumb_func_start SwapHpBarsWithHpText -SwapHpBarsWithHpText: @ 0x080727FC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r8, r2 - ldr r1, _080728D0 - mov r0, sp - movs r2, #0x14 - bl memcpy - ldr r5, _080728D4 - mov r1, sb - lsls r0, r1, #4 - add r0, sb - lsls r0, r0, #2 - adds r2, r0, r5 - ldrh r0, [r2, #0x3a] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - ldr r0, _080728D8 - ldr r0, [r0] - ldr r1, [r0] - mov r3, sl - lsls r0, r3, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _0807284E - b _080729B4 -_0807284E: - movs r6, #4 - mov r1, r8 - rsbs r0, r1, #0 - orrs r0, r1 - asrs r0, r0, #0x1f - ands r6, r0 - ldrh r0, [r2, #0x38] - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - mov r0, sp - adds r0, #6 - lsls r1, r4, #0x10 - asrs r1, r1, #0x10 - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - mov r2, r8 - cmp r2, #0 - bne _0807287C - ldr r1, _080728DC - bl StringCopy -_0807287C: - ldr r0, _080728E0 - ldr r0, [r0] - movs r3, #0xba - lsls r3, r3, #1 - adds r0, r0, r3 - ldr r0, [r0] - movs r1, #7 - mov r2, sp - bl RenderTextFont9 - adds r4, r6, #0 - adds r0, r4, #3 - cmp r4, r0 - bge _08072920 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - adds r5, r0, r5 -_080728A0: - cmp r4, #2 - bhi _080728EC - ldr r0, _080728E0 - ldr r0, [r0] - movs r1, #0xba - lsls r1, r1, #1 - adds r0, r0, r1 - subs r1, r4, r6 - lsls r1, r1, #6 - adds r1, #0x20 - ldr r0, [r0] - adds r0, r0, r1 - ldrh r1, [r5, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x16 - adds r4, #1 - adds r1, r1, r4 - lsls r1, r1, #5 - ldr r2, _080728E4 - adds r1, r1, r2 - ldr r2, _080728E8 - bl CpuSet - b _08072916 - .align 2, 0 -_080728D0: .4byte gUnknown_82FCDEE -_080728D4: .4byte gUnknown_20205AC -_080728D8: .4byte gUnknown_2024174 -_080728DC: .4byte gUnknown_85C93FF -_080728E0: .4byte gUnknown_2024178 -_080728E4: .4byte 0x06010000 -_080728E8: .4byte 0x04000008 -_080728EC: - ldr r0, _08072968 - ldr r0, [r0] - movs r3, #0xba - lsls r3, r3, #1 - adds r0, r0, r3 - subs r1, r4, r6 - lsls r1, r1, #6 - adds r1, #0x20 - ldr r0, [r0] - adds r0, r0, r1 - ldrh r1, [r5, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x16 - adds r1, r4, r1 - lsls r1, r1, #5 - ldr r2, _0807296C - adds r1, r1, r2 - ldr r2, _08072970 - bl CpuSet - adds r4, #1 -_08072916: - lsls r0, r4, #0x18 - lsrs r4, r0, #0x18 - adds r0, r6, #3 - cmp r4, r0 - blt _080728A0 -_08072920: - mov r3, r8 - cmp r3, #0 - bne _08072980 - ldr r0, _08072968 - ldr r0, [r0] - movs r1, #0xba - lsls r1, r1, #1 - adds r0, r0, r1 - ldr r0, [r0] - adds r0, #0xe0 - ldr r1, _08072974 - lsls r4, r7, #4 - adds r4, r4, r7 - lsls r4, r4, #2 - adds r4, r4, r1 - ldrh r1, [r4, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x11 - adds r1, #0x80 - ldr r5, _08072978 - adds r1, r1, r5 - ldr r2, _08072970 - bl CpuSet - mov r2, r8 - str r2, [sp, #0x14] - add r0, sp, #0x14 - ldrh r1, [r4, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x11 - adds r1, r1, r5 - ldr r2, _0807297C - bl CpuSet - b _080729B4 - .align 2, 0 -_08072968: .4byte gUnknown_2024178 -_0807296C: .4byte 0x06010020 -_08072970: .4byte 0x04000008 -_08072974: .4byte gUnknown_20205AC -_08072978: .4byte 0x06010000 -_0807297C: .4byte 0x05000008 -_08072980: - mov r0, sl - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080729B4 - movs r0, #0x74 - bl GetHealthboxElementGfxPtr - ldr r2, _080729C4 - mov r3, sb - lsls r1, r3, #4 - add r1, sb - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r1, [r1, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x11 - movs r2, #0xd0 - lsls r2, r2, #3 - adds r1, r1, r2 - ldr r2, _080729C8 - adds r1, r1, r2 - ldr r2, _080729CC - bl CpuSet -_080729B4: - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080729C4: .4byte gUnknown_20205AC -_080729C8: .4byte 0x06010000 -_080729CC: .4byte 0x04000008 - thumb_func_end SwapHpBarsWithHpText - - thumb_func_start PrintSafariMonInfo -PrintSafariMonInfo: @ 0x080729D0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x14] - ldr r1, _08072A78 - mov r0, sp - movs r2, #0x14 - bl memcpy - ldr r1, _08072A7C - ldr r2, [sp, #0x14] - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0, #0x3a] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_080A630C - ldr r1, _08072A80 - ldr r2, [r1] - movs r3, #0xba - lsls r3, r3, #1 - adds r2, r2, r3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #7 - movs r0, #0xa4 - lsls r0, r0, #3 - adds r1, r1, r0 - ldr r0, [r2] - adds r6, r0, r1 - movs r1, #5 - mov r8, r1 - adds r0, r4, #0 - bl GetNature - lsls r0, r0, #0x18 - mov r4, sp - adds r4, #6 - ldr r1, _08072A84 - lsrs r0, r0, #0x16 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl StringCopy - adds r0, r6, #0 - movs r1, #7 - mov r2, sp - bl RenderTextFont9 - movs r7, #6 - movs r5, #0 - mov r2, sp - adds r2, #9 - str r2, [sp, #0x1c] -_08072A54: - mov r3, sp - adds r0, r3, r7 - ldrb r1, [r0] - adds r0, r1, #0 - subs r0, #0x37 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x13 - bls _08072A72 - adds r0, r1, #0 - adds r0, #0x79 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x13 - bhi _08072A88 -_08072A72: - movs r0, #0x2c - b _08072AA6 - .align 2, 0 -_08072A78: .4byte gUnknown_82FCDDA -_08072A7C: .4byte gUnknown_20205AC -_08072A80: .4byte gUnknown_2024178 -_08072A84: .4byte gUnknown_85ECE24 -_08072A88: - adds r0, r1, #0 - subs r0, #0x4b - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bls _08072AA0 - adds r0, r1, #0 - adds r0, #0x65 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _08072AA4 -_08072AA0: - movs r0, #0x2d - b _08072AA6 -_08072AA4: - movs r0, #0x2b -_08072AA6: - bl GetHealthboxElementGfxPtr - lsls r1, r5, #6 - adds r1, r6, r1 - ldr r2, _08072BBC - bl CpuSet - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r7, #1 - cmp r5, r8 - blo _08072A54 - movs r7, #1 - ldr r0, [sp, #0x14] - lsls r0, r0, #4 - str r0, [sp, #0x18] - movs r1, #1 - add r1, r8 - mov sb, r1 - cmp r7, sb - bge _08072B32 - ldr r1, _08072BC0 - ldr r2, _08072BBC - mov sl, r2 - ldr r3, [sp, #0x14] - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - mov r8, r0 -_08072AE2: - mov r1, r8 - ldrh r0, [r1, #4] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - adds r5, r7, #0 - cmp r7, #0 - bge _08072AF2 - adds r5, r7, #7 -_08072AF2: - asrs r5, r5, #3 - lsls r4, r5, #3 - subs r4, r7, r4 - adds r0, r0, r4 - lsls r5, r5, #6 - adds r0, r0, r5 - lsls r0, r0, #5 - ldr r2, _08072BC4 - adds r1, r0, r2 - adds r0, r6, #0 - mov r2, sl - bl CpuSet - adds r6, #0x20 - mov r3, r8 - ldrh r0, [r3, #4] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - adds r4, #8 - adds r0, r0, r4 - adds r0, r0, r5 - lsls r0, r0, #5 - ldr r2, _08072BC4 - adds r1, r0, r2 - adds r0, r6, #0 - mov r2, sl - bl CpuSet - adds r6, #0x20 - adds r7, #1 - cmp r7, sb - blt _08072AE2 -_08072B32: - ldr r6, _08072BC0 - ldr r3, [sp, #0x18] - ldr r1, [sp, #0x14] - adds r0, r3, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrh r4, [r0, #0x38] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r5, _08072BC8 - ldr r0, [r5] - adds r0, #0x7c - ldrb r1, [r0] - mov r0, sp - adds r0, #6 - movs r2, #1 - movs r3, #2 - bl sub_080089D8 - ldr r0, [r5] - adds r0, #0x7b - ldrb r1, [r0] - ldr r0, [sp, #0x1c] - movs r2, #1 - movs r3, #2 - bl sub_080089D8 - mov r1, sp - movs r0, #0 - strb r0, [r1, #5] - movs r0, #0xba - strb r0, [r1, #8] - ldr r5, _08072BCC - ldr r0, [r5] - movs r2, #0xba - lsls r2, r2, #1 - adds r0, r0, r2 - ldr r0, [r0] - movs r1, #7 - mov r2, sp - bl RenderTextFont9 - movs r7, #0 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r6, r0, r6 - movs r4, #0x20 -_08072B92: - cmp r7, #1 - bgt _08072BD0 - ldr r0, [r5] - movs r3, #0xba - lsls r3, r3, #1 - adds r0, r0, r3 - ldr r0, [r0] - adds r0, r0, r4 - ldrh r1, [r6, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x16 - adds r2, r7, #2 - adds r1, r1, r2 - lsls r1, r1, #5 - ldr r2, _08072BC4 - adds r1, r1, r2 - ldr r2, _08072BBC - bl CpuSet - b _08072BF0 - .align 2, 0 -_08072BBC: .4byte 0x04000008 -_08072BC0: .4byte gUnknown_20205AC -_08072BC4: .4byte 0x06010000 -_08072BC8: .4byte gUnknown_2024140 -_08072BCC: .4byte gUnknown_2024178 -_08072BD0: - ldr r0, [r5] - movs r3, #0xba - lsls r3, r3, #1 - adds r0, r0, r3 - ldr r0, [r0] - adds r0, r0, r4 - ldrh r1, [r6, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x16 - adds r1, r7, r1 - lsls r1, r1, #5 - ldr r2, _08072C08 - adds r1, r1, r2 - ldr r2, _08072C0C - bl CpuSet -_08072BF0: - adds r4, #0x40 - adds r7, #1 - cmp r7, #4 - ble _08072B92 - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08072C08: .4byte 0x060100C0 -_08072C0C: .4byte 0x04000008 - thumb_func_end PrintSafariMonInfo - - thumb_func_start sub_08072C10 -sub_08072C10: @ 0x08072C10 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - movs r0, #0 - mov sb, r0 - ldr r0, _08072D3C - ldrb r0, [r0] - cmp sb, r0 - blt _08072C2A - b _08072EB6 -_08072C2A: - ldr r1, _08072D40 - mov sl, r1 - ldr r2, _08072D44 - mov r8, r2 -_08072C32: - ldr r0, _08072D48 - mov r1, sb - adds r6, r1, r0 - ldrb r1, [r6] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - mov r1, sl - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, [r0] - ldr r0, _08072D4C - cmp r1, r0 - beq _08072C50 - b _08072EA4 -_08072C50: - mov r2, sb - lsls r0, r2, #0x18 - lsrs r7, r0, #0x18 - adds r0, r7, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08072C66 - b _08072EA4 -_08072C66: - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08072C7E - adds r0, r7, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08072C7E - b _08072EA4 -_08072C7E: - ldr r5, _08072D50 - ldr r0, [r5] - ldr r3, [r0] - mov r0, sb - lsls r4, r0, #2 - adds r3, r4, r3 - ldr r0, [r3] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1f - movs r2, #1 - eors r2, r0 - lsls r2, r2, #4 - mov ip, r2 - ldrb r0, [r3] - movs r2, #0x11 - rsbs r2, r2, #0 - adds r1, r2, #0 - ands r0, r1 - mov r1, ip - orrs r0, r1 - strb r0, [r3] - ldr r0, [r5] - ldr r0, [r0] - adds r4, r4, r0 - ldr r0, [r4] - lsls r0, r0, #0x1b - lsrs r4, r0, #0x1f - adds r0, r7, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08072DAC - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08072CCC - b _08072EA4 -_08072CCC: - ldr r0, _08072D54 - ldr r2, [r0] - movs r0, #0x80 - ands r2, r0 - cmp r2, #0 - beq _08072CDA - b _08072EA4 -_08072CDA: - cmp r4, #1 - bne _08072D64 - ldrb r1, [r6] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sl - ldrh r0, [r0, #0x38] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - str r2, [sp] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sl - ldrh r1, [r0, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x11 - ldr r2, _08072D58 - adds r1, r1, r2 - mov r0, sp - ldr r2, _08072D5C - bl CpuSet - ldrb r4, [r6] - mov r1, r8 - ldrh r0, [r1] - movs r2, #0x64 - muls r0, r2, r0 - ldr r1, _08072D60 - adds r0, r0, r1 - movs r1, #0x39 - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r4, #0 - movs r2, #0 - bl SwapHpBarsWithHpText - ldrb r4, [r6] - mov r2, r8 - ldrh r0, [r2] - movs r1, #0x64 - muls r0, r1, r0 - ldr r2, _08072D60 - b _08072E32 - .align 2, 0 -_08072D3C: .4byte gUnknown_2023D10 -_08072D40: .4byte gUnknown_20205AC -_08072D44: .4byte gUnknown_2023D12 -_08072D48: .4byte gUnknown_3005AD0 -_08072D4C: .4byte sub_08007140 -_08072D50: .4byte gUnknown_2024174 -_08072D54: .4byte gUnknown_2022C90 -_08072D58: .4byte 0x06010000 -_08072D5C: .4byte 0x05000040 -_08072D60: .4byte gUnknown_2024190 -_08072D64: - ldrb r0, [r6] - bl UpdateStatusIconInHealthbox - ldrb r0, [r6] - mov r2, r8 - ldrh r1, [r2] - movs r2, #0x64 - muls r1, r2, r1 - ldr r2, _08072DA0 - adds r1, r1, r2 - movs r2, #5 - bl UpdateHealthboxAttribute - movs r0, #0x75 - bl GetHealthboxElementGfxPtr - ldrb r2, [r6] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - add r1, sl - ldrh r1, [r1, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x11 - ldr r2, _08072DA4 - adds r1, r1, r2 - ldr r2, _08072DA8 - bl CpuSet - b _08072E8E - .align 2, 0 -_08072DA0: .4byte gUnknown_2024190 -_08072DA4: .4byte 0x06010680 -_08072DA8: .4byte 0x04000008 -_08072DAC: - cmp r4, #1 - bne _08072E58 - ldr r0, _08072DD0 - ldr r2, [r0] - movs r0, #0x80 - ands r2, r0 - cmp r2, #0 - beq _08072DD8 - ldrb r0, [r6] - mov r2, r8 - ldrh r1, [r2] - movs r2, #0x64 - muls r1, r2, r1 - ldr r2, _08072DD4 - adds r1, r1, r2 - bl PrintSafariMonInfo - b _08072E8E - .align 2, 0 -_08072DD0: .4byte gUnknown_2022C90 -_08072DD4: .4byte gUnknown_20243E8 -_08072DD8: - ldrb r1, [r6] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sl - ldrh r0, [r0, #0x38] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - str r2, [sp] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sl - ldrh r1, [r0, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x11 - ldr r0, _08072E4C - adds r1, r1, r0 - mov r0, sp - ldr r2, _08072E50 - bl CpuSet - ldrb r4, [r6] - mov r1, r8 - ldrh r0, [r1] - movs r2, #0x64 - muls r0, r2, r0 - ldr r1, _08072E54 - adds r0, r0, r1 - movs r1, #0x39 - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r4, #0 - movs r2, #0 - bl SwapHpBarsWithHpText - ldrb r4, [r6] - mov r2, r8 - ldrh r0, [r2] - movs r1, #0x64 - muls r0, r1, r0 - ldr r2, _08072E54 -_08072E32: - adds r0, r0, r2 - movs r1, #0x3a - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r4, #0 - movs r2, #1 - bl SwapHpBarsWithHpText - b _08072E8E - .align 2, 0 -_08072E4C: .4byte 0x06010000 -_08072E50: .4byte 0x05000040 -_08072E54: .4byte gUnknown_20243E8 -_08072E58: - ldrb r0, [r6] - bl UpdateStatusIconInHealthbox - ldrb r0, [r6] - mov r2, r8 - ldrh r1, [r2] - movs r5, #0x64 - muls r1, r5, r1 - ldr r4, _08072EC8 - adds r1, r1, r4 - movs r2, #5 - bl UpdateHealthboxAttribute - ldr r0, _08072ECC - ldr r0, [r0] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08072E8E - ldrb r0, [r6] - mov r2, r8 - ldrh r1, [r2] - muls r1, r5, r1 - adds r1, r1, r4 - movs r2, #4 - bl UpdateHealthboxAttribute -_08072E8E: - ldr r0, _08072ED0 - add r0, sb - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sl - ldrh r1, [r0, #0x3c] - movs r2, #1 - eors r1, r2 - strh r1, [r0, #0x3c] -_08072EA4: - movs r0, #2 - add r8, r0 - movs r1, #1 - add sb, r1 - ldr r0, _08072ED4 - ldrb r0, [r0] - cmp sb, r0 - bge _08072EB6 - b _08072C32 -_08072EB6: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08072EC8: .4byte gUnknown_20243E8 -_08072ECC: .4byte gUnknown_2022C90 -_08072ED0: .4byte gUnknown_3005AD0 -_08072ED4: .4byte gUnknown_2023D10 - thumb_func_end sub_08072C10 - - thumb_func_start CreatePartyStatusSummarySprites -CreatePartyStatusSummarySprites: @ 0x08072ED8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x24 - str r1, [sp, #0xc] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #8] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r4, r2, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r3, [sp, #0x10] - cmp r4, #0 - beq _08072F08 - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - beq _08072F58 -_08072F08: - ldr r0, [sp, #8] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08072F2C - movs r0, #0 - mov sb, r0 - movs r5, #0x88 - movs r4, #0x60 - movs r1, #0x64 - mov sl, r1 - ldr r2, _08072F28 - mov r8, r2 - b _08072F68 - .align 2, 0 -_08072F28: .4byte 0x0000FFFB -_08072F2C: - movs r3, #1 - mov sb, r3 - cmp r4, #0 - beq _08072F3E - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08072F44 -_08072F3E: - movs r5, #0x68 - movs r4, #0x28 - b _08072F48 -_08072F44: - movs r5, #0x68 - movs r4, #0x10 -_08072F48: - ldr r6, _08072F54 - mov sl, r6 - movs r0, #5 - mov r8, r0 - b _08072F68 - .align 2, 0 -_08072F54: .4byte 0x0000FF9C -_08072F58: - movs r1, #1 - mov sb, r1 - movs r5, #0x68 - movs r4, #0x28 - ldr r2, _08072FDC - mov sl, r2 - movs r3, #5 - mov r8, r3 -_08072F68: - ldr r0, _08072FE0 - bl LoadCompressedSpriteSheetUsingHeap - ldr r0, _08072FE4 - bl LoadSpriteSheet - ldr r0, _08072FE8 - bl LoadSpritePalette - ldr r0, _08072FEC - bl LoadSpritePalette - mov r0, sb - lsls r6, r0, #1 - adds r0, r6, r0 - lsls r0, r0, #3 - ldr r1, _08072FF0 - adds r0, r0, r1 - lsls r5, r5, #0x10 - asrs r1, r5, #0x10 - lsls r4, r4, #0x10 - asrs r2, r4, #0x10 - movs r3, #0xa - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x14] - lsls r0, r0, #4 - ldr r1, [sp, #0x14] - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08072FF4 - adds r7, r0, r1 - ldr r1, _08072FF8 - adds r0, r7, #0 - bl SetSubspriteTables - mov r2, sl - strh r2, [r7, #0x24] - mov r3, r8 - strh r3, [r7, #0x2e] - str r5, [sp, #0x1c] - str r4, [sp, #0x20] - mov r5, sb - cmp r5, #0 - beq _08072FFC - ldrh r0, [r7, #0x20] - subs r0, #0x60 - strh r0, [r7, #0x20] - ldrb r1, [r7, #3] - movs r0, #0x3f - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r7, #3] - b _08073002 - .align 2, 0 -_08072FDC: .4byte 0x0000FF9C -_08072FE0: .4byte gUnknown_82FCD2C -_08072FE4: .4byte gUnknown_82FCD44 -_08072FE8: .4byte gUnknown_82FCD34 -_08072FEC: .4byte gUnknown_82FCD3C -_08072FF0: .4byte gUnknown_82FCD5C -_08072FF4: .4byte gUnknown_20205AC -_08072FF8: .4byte gUnknown_82FCCBC -_08072FFC: - ldrh r0, [r7, #0x20] - adds r0, #0x60 - strh r0, [r7, #0x20] -_08073002: - movs r0, #0 - mov r8, r0 - ldr r1, _080730B0 - mov sl, r1 - mov r7, sp - mov r2, sb - adds r0, r6, r2 - lsls r0, r0, #3 - str r0, [sp, #0x18] - movs r6, #0xa - movs r5, #0 -_08073018: - ldr r0, _080730B4 - ldr r3, [sp, #0x20] - ldr r1, _080730B8 - adds r2, r3, r1 - ldr r3, [sp, #0x18] - adds r0, r3, r0 - ldr r3, [sp, #0x1c] - asrs r1, r3, #0x10 - asrs r2, r2, #0x10 - movs r3, #9 - bl CreateSpriteAtEnd - strb r0, [r7] - ldr r0, [sp, #0x10] - cmp r0, #0 - bne _08073048 - ldrb r0, [r7] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r2, _080730BC - adds r1, r1, r2 - ldr r0, _080730C0 - str r0, [r1] -_08073048: - ldr r4, _080730B0 - mov r3, sb - cmp r3, #0 - bne _0807306A - ldrb r1, [r7] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sl - strh r3, [r0, #0x24] - ldrb r1, [r7] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sl - mov r1, sb - strh r1, [r0, #0x26] -_0807306A: - ldrb r1, [r7] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0 - mov r2, sp - ldrh r2, [r2, #0x14] - strh r2, [r0, #0x2e] - mov r3, sb - cmp r3, #0 - bne _080730C4 - ldrb r0, [r7] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrh r0, [r1, #0x20] - adds r0, #0x18 - adds r0, r0, r5 - strh r0, [r1, #0x20] - ldrb r1, [r7] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - strh r6, [r0, #0x30] - ldrb r1, [r7] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0x78 - b _08073106 - .align 2, 0 -_080730B0: .4byte gUnknown_20205AC -_080730B4: .4byte gUnknown_82FCD8C -_080730B8: .4byte 0xFFFC0000 -_080730BC: .4byte gUnknown_20205C8 -_080730C0: .4byte SpriteCB_StatusSummaryBallsOnSwitchout -_080730C4: - ldrb r0, [r7] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r4 - ldrh r3, [r2, #0x20] - subs r3, #0x18 - movs r1, #5 - mov r0, r8 - subs r1, r1, r0 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #1 - subs r3, r3, r0 - strh r3, [r2, #0x20] - ldrb r0, [r7] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r4 - movs r1, #6 - mov r3, r8 - subs r1, r1, r3 - lsls r0, r1, #3 - subs r0, r0, r1 - adds r0, #0xa - strh r0, [r2, #0x30] - ldrb r1, [r7] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _0807318C -_08073106: - strh r1, [r0, #0x24] - ldrb r1, [r7] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - mov r1, sb - strh r1, [r0, #0x32] - adds r7, #1 - adds r6, #7 - adds r5, #0xa - movs r2, #1 - add r8, r2 - mov r3, r8 - cmp r3, #5 - bgt _08073128 - b _08073018 -_08073128: - ldr r0, [sp, #8] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08073136 - b _080732E4 -_08073136: - ldr r0, _08073190 - ldr r1, [r0] - movs r2, #0x40 - ands r1, r2 - cmp r1, #0 - beq _080731F0 - ldr r5, _08073194 - mov sl, r5 - ldr r6, _08073198 - ldr r0, _0807319C - adds r7, r0, #0 - ldr r1, _080731A0 - mov sb, r1 - mov r4, sp - ldr r5, [sp, #0xc] - movs r2, #5 - mov r8, r2 -_08073158: - ldrh r0, [r5] - cmp r0, sl - bne _080731A4 - ldrb r0, [r4] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r6 - ldrh r3, [r2, #4] - lsls r1, r3, #0x16 - lsrs r1, r1, #0x16 - adds r1, #1 - ands r1, r7 - mov r0, sb - ands r0, r3 - orrs r0, r1 - strh r0, [r2, #4] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #1 - strh r1, [r0, #0x3c] - b _080731DE - .align 2, 0 -_0807318C: .4byte 0x0000FF88 -_08073190: .4byte gUnknown_2022C90 -_08073194: .4byte 0x0000FFFF -_08073198: .4byte gUnknown_20205AC -_0807319C: .4byte 0x000003FF -_080731A0: .4byte 0xFFFFFC00 -_080731A4: - cmp r0, #0 - bne _080731BC - ldrb r0, [r4] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r6 - ldrh r3, [r2, #4] - lsls r1, r3, #0x16 - lsrs r1, r1, #0x16 - adds r1, #3 - b _080731D4 -_080731BC: - ldr r0, [r5, #4] - cmp r0, #0 - beq _080731DE - ldrb r0, [r4] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r6 - ldrh r3, [r2, #4] - lsls r1, r3, #0x16 - lsrs r1, r1, #0x16 - adds r1, #2 -_080731D4: - ands r1, r7 - mov r0, sb - ands r0, r3 - orrs r0, r1 - strh r0, [r2, #4] -_080731DE: - adds r4, #1 - adds r5, #8 - movs r3, #1 - rsbs r3, r3, #0 - add r8, r3 - mov r0, r8 - cmp r0, #0 - bge _08073158 - b _08073496 -_080731F0: - movs r1, #5 - mov sl, r1 - movs r7, #0 - ldr r2, _08073244 - mov r8, r2 - ldr r3, _08073248 - mov sb, r3 - ldr r5, _0807324C - mov ip, r5 - ldr r6, [sp, #0xc] - mov r5, sp -_08073206: - ldrh r0, [r6] - ldr r1, _08073250 - cmp r0, r1 - bne _08073254 - mov r4, sp - add r4, sl - ldrb r0, [r4] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - add r2, r8 - ldrh r3, [r2, #4] - lsls r1, r3, #0x16 - lsrs r1, r1, #0x16 - adds r1, #1 - mov r0, sb - ands r1, r0 - mov r0, ip - ands r0, r3 - orrs r0, r1 - strh r0, [r2, #4] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - movs r1, #1 - strh r1, [r0, #0x3c] - subs r1, #2 - add sl, r1 - b _080732DA - .align 2, 0 -_08073244: .4byte gUnknown_20205AC -_08073248: .4byte 0x000003FF -_0807324C: .4byte 0xFFFFFC00 -_08073250: .4byte 0x0000FFFF -_08073254: - cmp r0, #0 - bne _0807326C - ldrb r0, [r5] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - add r2, r8 - ldrh r3, [r2, #4] - lsls r1, r3, #0x16 - lsrs r1, r1, #0x16 - adds r1, #3 - b _080732CC -_0807326C: - ldr r1, _080732A8 - ldr r0, [r1] - movs r1, #0x80 - lsls r1, r1, #0xb - ands r0, r1 - cmp r0, #0 - beq _080732B4 - ldr r0, _080732AC - ldr r0, [r0] - movs r2, #0xa8 - lsls r2, r2, #2 - adds r0, r0, r2 - ldrb r1, [r0] - ldr r2, _080732B0 - lsls r0, r7, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _080732B4 - ldrb r0, [r5] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - add r2, r8 - ldrh r3, [r2, #4] - lsls r1, r3, #0x16 - lsrs r1, r1, #0x16 - adds r1, #3 - b _080732CC - .align 2, 0 -_080732A8: .4byte gUnknown_2022C90 -_080732AC: .4byte gUnknown_2024140 -_080732B0: .4byte gUnknown_82FACB4 -_080732B4: - ldr r0, [r6, #4] - cmp r0, #0 - beq _080732D8 - ldrb r0, [r5] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - add r2, r8 - ldrh r3, [r2, #4] - lsls r1, r3, #0x16 - lsrs r1, r1, #0x16 - adds r1, #2 -_080732CC: - mov r0, sb - ands r1, r0 - mov r0, ip - ands r0, r3 - orrs r0, r1 - strh r0, [r2, #4] -_080732D8: - adds r5, #1 -_080732DA: - adds r6, #8 - adds r7, #1 - cmp r7, #5 - ble _08073206 - b _08073496 -_080732E4: - ldr r0, _0807333C - ldr r1, [r0] - ldr r2, _08073340 - ands r1, r2 - cmp r1, #0 - beq _080733A0 - ldr r1, _08073344 - mov sl, r1 - ldr r6, _08073348 - ldr r2, _0807334C - adds r7, r2, #0 - ldr r3, _08073350 - mov sb, r3 - ldr r5, [sp, #0xc] - mov r4, sp - adds r4, #5 - movs r0, #5 - mov r8, r0 -_08073308: - ldrh r0, [r5] - cmp r0, sl - bne _08073354 - ldrb r0, [r4] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r6 - ldrh r3, [r2, #4] - lsls r1, r3, #0x16 - lsrs r1, r1, #0x16 - adds r1, #1 - ands r1, r7 - mov r0, sb - ands r0, r3 - orrs r0, r1 - strh r0, [r2, #4] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #1 - strh r1, [r0, #0x3c] - b _0807338E - .align 2, 0 -_0807333C: .4byte gUnknown_2022C90 -_08073340: .4byte 0x00008040 -_08073344: .4byte 0x0000FFFF -_08073348: .4byte gUnknown_20205AC -_0807334C: .4byte 0x000003FF -_08073350: .4byte 0xFFFFFC00 -_08073354: - cmp r0, #0 - bne _0807336C - ldrb r0, [r4] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r6 - ldrh r3, [r2, #4] - lsls r1, r3, #0x16 - lsrs r1, r1, #0x16 - adds r1, #3 - b _08073384 -_0807336C: - ldr r0, [r5, #4] - cmp r0, #0 - beq _0807338E - ldrb r0, [r4] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r6 - ldrh r3, [r2, #4] - lsls r1, r3, #0x16 - lsrs r1, r1, #0x16 - adds r1, #2 -_08073384: - ands r1, r7 - mov r0, sb - ands r0, r3 - orrs r0, r1 - strh r0, [r2, #4] -_0807338E: - subs r4, #1 - adds r5, #8 - movs r1, #1 - rsbs r1, r1, #0 - add r8, r1 - mov r2, r8 - cmp r2, #0 - bge _08073308 - b _08073496 -_080733A0: - movs r3, #0 - mov r8, r3 - movs r7, #0 - ldr r5, _080733F4 - mov sb, r5 - ldr r6, _080733F8 - mov ip, r6 - ldr r0, _080733FC - mov sl, r0 - ldr r6, [sp, #0xc] - mov r5, sp - adds r5, #5 -_080733B8: - ldrh r0, [r6] - ldr r1, _08073400 - cmp r0, r1 - bne _08073404 - mov r4, sp - add r4, r8 - ldrb r0, [r4] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - add r2, sb - ldrh r3, [r2, #4] - lsls r1, r3, #0x16 - lsrs r1, r1, #0x16 - adds r1, #1 - mov r0, ip - ands r1, r0 - mov r0, sl - ands r0, r3 - orrs r0, r1 - strh r0, [r2, #4] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sb - movs r1, #1 - strh r1, [r0, #0x3c] - add r8, r1 - b _0807348E - .align 2, 0 -_080733F4: .4byte gUnknown_20205AC -_080733F8: .4byte 0x000003FF -_080733FC: .4byte 0xFFFFFC00 -_08073400: .4byte 0x0000FFFF -_08073404: - cmp r0, #0 - bne _0807341C - ldrb r0, [r5] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - add r2, sb - ldrh r3, [r2, #4] - lsls r1, r3, #0x16 - lsrs r1, r1, #0x16 - adds r1, #3 - b _08073480 -_0807341C: - ldr r1, _08073458 - ldr r0, [r1] - movs r1, #0x80 - lsls r1, r1, #0xb - ands r0, r1 - cmp r0, #0 - beq _08073468 - ldr r2, _0807345C - ldr r0, [r2] - ldr r3, _08073460 - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r7, #2 - ldr r2, _08073464 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _08073468 - ldrb r0, [r5] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - add r2, sb - ldrh r3, [r2, #4] - lsls r1, r3, #0x16 - lsrs r1, r1, #0x16 - adds r1, #3 - b _08073480 - .align 2, 0 -_08073458: .4byte gUnknown_2022C90 -_0807345C: .4byte gUnknown_2024140 -_08073460: .4byte 0x000002A1 -_08073464: .4byte gUnknown_82FACB4 -_08073468: - ldr r0, [r6, #4] - cmp r0, #0 - beq _0807348C - ldrb r0, [r5] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - add r2, sb - ldrh r3, [r2, #4] - lsls r1, r3, #0x16 - lsrs r1, r1, #0x16 - adds r1, #2 -_08073480: - mov r0, ip - ands r1, r0 - mov r0, sl - ands r0, r3 - orrs r0, r1 - strh r0, [r2, #4] -_0807348C: - subs r5, #1 -_0807348E: - adds r6, #8 - adds r7, #1 - cmp r7, #5 - ble _080733B8 -_08073496: - ldr r0, _08073520 - movs r1, #5 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r2, _08073524 - lsls r3, r4, #2 - adds r1, r3, r4 - lsls r1, r1, #3 - adds r0, r1, r2 - mov r5, sp - ldrh r5, [r5, #8] - strh r5, [r0, #8] - mov r6, sp - ldrh r6, [r6, #0x14] - strh r6, [r0, #0xa] - movs r0, #0 - mov r8, r0 - adds r0, r2, #0 - adds r0, #0xe - adds r1, r1, r0 -_080734C2: - mov r0, sp - add r0, r8 - ldrb r0, [r0] - strh r0, [r1] - adds r1, #2 - movs r5, #1 - add r8, r5 - mov r6, r8 - cmp r6, #5 - ble _080734C2 - adds r0, r3, r4 - lsls r0, r0, #3 - adds r0, r0, r2 - mov r1, sp - ldrh r1, [r1, #0x10] - strh r1, [r0, #0x1c] - ldr r2, [sp, #0x10] - cmp r2, #0 - beq _08073506 - ldr r0, _08073528 - ldr r0, [r0] - ldr r3, [r0, #8] - ldrb r2, [r3, #9] - lsls r1, r2, #0x1b - lsrs r1, r1, #0x1d - adds r1, #1 - movs r0, #7 - ands r1, r0 - lsls r1, r1, #2 - movs r0, #0x1d - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #9] -_08073506: - movs r0, #0x72 - movs r1, #0 - bl PlaySE12WithPanning - adds r0, r4, #0 - add sp, #0x24 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08073520: .4byte sub_080A8A40 -_08073524: .4byte gUnknown_3005B60 -_08073528: .4byte gUnknown_2024174 - thumb_func_end CreatePartyStatusSummarySprites - - thumb_func_start Task_HidePartyStatusSummary -Task_HidePartyStatusSummary: @ 0x0807352C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r2, _0807363C - lsls r3, r0, #2 - adds r1, r3, r0 - lsls r1, r1, #3 - adds r0, r1, r2 - ldrb r7, [r0, #0x1c] - ldrb r4, [r0, #0xa] - mov sl, r4 - ldrb r0, [r0, #8] - str r0, [sp, #8] - movs r5, #0 - str r3, [sp, #0xc] - adds r2, #0xe - adds r2, r1, r2 -_0807355A: - mov r0, sp - adds r1, r0, r5 - ldrh r0, [r2] - strb r0, [r1] - adds r2, #2 - adds r5, #1 - cmp r5, #5 - ble _0807355A - movs r1, #0xfd - lsls r1, r1, #6 - movs r0, #0x50 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0x10 - bl SetGpuReg - ldr r1, _0807363C - ldr r0, [sp, #0xc] - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0x10 - strh r1, [r0, #0x26] - movs r5, #0 - mov r1, sl - lsls r1, r1, #4 - str r1, [sp, #0x10] - ldr r3, _08073640 - movs r6, #0xd - rsbs r6, r6, #0 - mov ip, r3 - movs r4, #4 -_0807359C: - mov r2, sp - adds r0, r2, r5 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrb r2, [r1, #1] - adds r0, r6, #0 - ands r0, r2 - orrs r0, r4 - strb r0, [r1, #1] - adds r5, #1 - cmp r5, #5 - ble _0807359C - ldr r2, [sp, #0x10] - add r2, sl - lsls r2, r2, #2 - add r2, ip - ldrb r1, [r2, #1] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2, #1] - cmp r7, #0 - bne _080735D6 - b _080736DC -_080735D6: - movs r5, #0 - mov r6, ip - mov sb, r5 - adds r3, r6, #0 - adds r3, #0x1c - mov r4, sp - movs r7, #0 -_080735E4: - ldr r0, [sp, #8] - str r3, [sp, #0x14] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r3, [sp, #0x14] - cmp r2, #0 - beq _08073648 - movs r0, #5 - subs r0, r0, r5 - mov r1, sp - adds r2, r1, r0 - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - strh r7, [r0, #0x30] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - mov r1, sb - strh r1, [r0, #0x34] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - mov r1, sb - strh r1, [r0, #0x36] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldr r1, _08073644 - str r1, [r0] - ldr r2, _08073640 - mov ip, r2 - b _0807367E - .align 2, 0 -_0807363C: .4byte gUnknown_3005B60 -_08073640: .4byte gUnknown_20205AC -_08073644: .4byte sub_08073A54 -_08073648: - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - strh r7, [r0, #0x30] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - strh r2, [r0, #0x34] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - strh r2, [r0, #0x36] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldr r1, _080736C4 - str r1, [r0] - ldr r0, _080736C8 - mov ip, r0 -_0807367E: - adds r4, #1 - adds r7, #7 - adds r5, #1 - cmp r5, #5 - ble _080735E4 - ldr r3, [sp, #0x10] - add r3, sl - lsls r3, r3, #2 - mov r1, ip - adds r0, r3, r1 - movs r2, #0x2e - ldrsh r1, [r0, r2] - lsrs r2, r1, #0x1f - adds r1, r1, r2 - asrs r1, r1, #1 - movs r2, #0 - strh r1, [r0, #0x2e] - strh r2, [r0, #0x30] - mov r1, ip - adds r1, #0x1c - adds r3, r3, r1 - ldr r1, _080736CC - str r1, [r3] - ldr r1, _080736D0 - bl SetSubspriteTables - ldr r1, _080736D4 - ldr r0, [sp, #0xc] - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080736D8 - str r1, [r0] - b _080736EA - .align 2, 0 -_080736C4: .4byte sub_08073A54 -_080736C8: .4byte gUnknown_20205AC -_080736CC: .4byte sub_0807398C -_080736D0: .4byte gUnknown_82FCCC4 -_080736D4: .4byte gUnknown_3005B60 -_080736D8: .4byte sub_08073704 -_080736DC: - ldr r0, _080736FC - ldr r1, [sp, #0xc] - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _08073700 - str r0, [r1] -_080736EA: - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080736FC: .4byte gUnknown_3005B60 -_08073700: .4byte sub_08073894 - thumb_func_end Task_HidePartyStatusSummary - - thumb_func_start sub_08073704 -sub_08073704: @ 0x08073704 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08073758 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 - ldrh r0, [r4, #0x1e] - adds r1, r0, #1 - strh r1, [r4, #0x1e] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08073744 - ldrh r0, [r4, #0x26] - subs r1, r0, #1 - strh r1, [r4, #0x26] - lsls r0, r1, #0x10 - cmp r0, #0 - blt _08073750 - movs r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg -_08073744: - movs r1, #0x26 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08073750 - ldr r0, _0807375C - str r0, [r4] -_08073750: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08073758: .4byte gUnknown_3005B60 -_0807375C: .4byte sub_08073760 - thumb_func_end sub_08073704 - - thumb_func_start sub_08073760 -sub_08073760: @ 0x08073760 - push {r4, r5, r6, r7, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r7, _080737EC - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r3, r0, #3 - adds r4, r3, r7 - ldrb r2, [r4, #8] - ldrh r0, [r4, #0x26] - subs r0, #1 - strh r0, [r4, #0x26] - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _08073850 - ldrb r5, [r4, #0xa] - movs r4, #0 - ldr r6, _080737F0 - adds r0, r7, #0 - adds r0, #0xe - adds r2, r3, r0 -_08073792: - mov r0, sp - adds r1, r0, r4 - ldrh r0, [r2] - strb r0, [r1] - adds r2, #2 - adds r4, #1 - cmp r4, #5 - ble _08073792 - ldr r0, [r6] - ldr r3, [r0, #8] - ldrb r2, [r3, #9] - lsls r1, r2, #0x1b - lsrs r1, r1, #0x1d - subs r1, #1 - movs r0, #7 - ands r1, r0 - lsls r1, r1, #2 - movs r0, #0x1d - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #9] - ldr r0, [r6] - ldr r0, [r0, #8] - ldrb r1, [r0, #9] - movs r0, #0x1c - ands r0, r1 - cmp r0, #0 - bne _080737F8 - lsls r0, r5, #4 - adds r0, r0, r5 - lsls r0, r0, #2 - ldr r4, _080737F4 - adds r0, r0, r4 - bl DestroySpriteAndFreeResources - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySpriteAndFreeResources - b _0807382E - .align 2, 0 -_080737EC: .4byte gUnknown_3005B60 -_080737F0: .4byte gUnknown_2024174 -_080737F4: .4byte gUnknown_20205AC -_080737F8: - lsls r4, r5, #4 - adds r4, r4, r5 - lsls r4, r4, #2 - ldr r5, _0807384C - adds r4, r4, r5 - adds r0, r4, #0 - bl FreeSpriteOamMatrix - adds r0, r4, #0 - bl DestroySprite - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - bl FreeSpriteOamMatrix - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - bl DestroySprite -_0807382E: - movs r4, #1 - ldr r5, _0807384C -_08073832: - mov r1, sp - adds r0, r1, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - bl DestroySprite - adds r4, #1 - cmp r4, #5 - ble _08073832 - b _08073886 - .align 2, 0 -_0807384C: .4byte gUnknown_20205AC -_08073850: - movs r0, #3 - rsbs r0, r0, #0 - cmp r1, r0 - bne _08073886 - ldr r0, _08073890 - ldr r0, [r0] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - adds r0, r5, #0 - bl DestroyTask -_08073886: - add sp, #8 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08073890: .4byte gUnknown_2024174 - thumb_func_end sub_08073760 - - thumb_func_start sub_08073894 -sub_08073894: @ 0x08073894 - push {r4, r5, r6, r7, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r4, r0, #0 - ldr r7, _080738CC - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r6, r0, #3 - adds r3, r6, r7 - ldrb r5, [r3, #8] - ldrh r0, [r3, #0x26] - subs r1, r0, #1 - strh r1, [r3, #0x26] - lsls r0, r1, #0x10 - asrs r2, r0, #0x10 - cmp r2, #0 - blt _080738D0 - movs r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - b _08073966 - .align 2, 0 -_080738CC: .4byte gUnknown_3005B60 -_080738D0: - movs r0, #1 - rsbs r0, r0, #0 - cmp r2, r0 - bne _08073930 - ldrb r3, [r3, #0xa] - movs r5, #0 - adds r0, r7, #0 - adds r0, #0xe - adds r2, r6, r0 -_080738E2: - mov r0, sp - adds r1, r0, r5 - ldrh r0, [r2] - strb r0, [r1] - adds r2, #2 - adds r5, #1 - cmp r5, #5 - ble _080738E2 - lsls r0, r3, #4 - adds r0, r0, r3 - lsls r0, r0, #2 - ldr r4, _0807392C - adds r0, r0, r4 - bl DestroySpriteAndFreeResources - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySpriteAndFreeResources - movs r5, #1 -_08073912: - mov r1, sp - adds r0, r1, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - adds r5, #1 - cmp r5, #5 - ble _08073912 - b _08073966 - .align 2, 0 -_0807392C: .4byte gUnknown_20205AC -_08073930: - movs r0, #3 - rsbs r0, r0, #0 - cmp r2, r0 - bne _08073966 - ldr r0, _08073970 - ldr r0, [r0] - ldr r0, [r0, #4] - lsls r1, r5, #1 - adds r1, r1, r5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - adds r0, r4, #0 - bl DestroyTask -_08073966: - add sp, #8 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08073970: .4byte gUnknown_2024174 - thumb_func_end sub_08073894 - - thumb_func_start SpriteCB_StatusSummaryBar -SpriteCB_StatusSummaryBar: @ 0x08073974 - push {lr} - adds r1, r0, #0 - ldrh r2, [r1, #0x24] - movs r3, #0x24 - ldrsh r0, [r1, r3] - cmp r0, #0 - beq _08073988 - ldrh r0, [r1, #0x2e] - adds r0, r2, r0 - strh r0, [r1, #0x24] -_08073988: - pop {r0} - bx r0 - thumb_func_end SpriteCB_StatusSummaryBar - - thumb_func_start sub_0807398C -sub_0807398C: @ 0x0807398C - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x30] - adds r1, r0, #0 - adds r1, #0x20 - strh r1, [r2, #0x30] - movs r3, #0x2e - ldrsh r0, [r2, r3] - cmp r0, #0 - ble _080739AA - lsls r0, r1, #0x10 - asrs r0, r0, #0x14 - ldrh r1, [r2, #0x24] - adds r0, r0, r1 - b _080739B2 -_080739AA: - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - ldrh r0, [r2, #0x24] - subs r0, r0, r1 -_080739B2: - strh r0, [r2, #0x24] - ldrh r1, [r2, #0x30] - movs r0, #0xf - ands r0, r1 - strh r0, [r2, #0x30] - pop {r0} - bx r0 - thumb_func_end sub_0807398C - - thumb_func_start SpriteCB_StatusSummaryBallsOnBattleStart -SpriteCB_StatusSummaryBallsOnBattleStart: @ 0x080739C0 - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x30] - movs r2, #0x30 - ldrsh r0, [r4, r2] - cmp r0, #0 - ble _080739D4 - subs r0, r1, #1 - strh r0, [r4, #0x30] - b _08073A4A -_080739D4: - ldrh r0, [r4, #0x32] - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldrh r2, [r4, #0x34] - adds r0, r2, #0 - adds r0, #0x38 - lsls r1, r0, #0x10 - lsrs r2, r1, #0x10 - ldr r0, _08073A04 - ands r2, r0 - strh r2, [r4, #0x34] - cmp r3, #0 - beq _08073A08 - lsrs r0, r1, #0x14 - ldrh r1, [r4, #0x24] - adds r0, r0, r1 - strh r0, [r4, #0x24] - lsls r0, r0, #0x10 - cmp r0, #0 - ble _08073A18 - movs r0, #0 - strh r0, [r4, #0x24] - b _08073A18 - .align 2, 0 -_08073A04: .4byte 0x0000FFF0 -_08073A08: - lsrs r1, r1, #0x14 - ldrh r0, [r4, #0x24] - subs r0, r0, r1 - strh r0, [r4, #0x24] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _08073A18 - strh r3, [r4, #0x24] -_08073A18: - movs r2, #0x24 - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _08073A4A - movs r1, #0x3f - cmp r3, #0 - beq _08073A28 - movs r1, #0xc0 -_08073A28: - movs r2, #0x3c - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _08073A3C - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r0, #0x74 - bl sub_080A3104 - b _08073A46 -_08073A3C: - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r0, #0x73 - bl sub_080A30D0 -_08073A46: - ldr r0, _08073A50 - str r0, [r4, #0x1c] -_08073A4A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08073A50: .4byte sub_08007140 - thumb_func_end SpriteCB_StatusSummaryBallsOnBattleStart - - thumb_func_start sub_08073A54 -sub_08073A54: @ 0x08073A54 - push {r4, lr} - adds r3, r0, #0 - ldrh r1, [r3, #0x30] - movs r2, #0x30 - ldrsh r0, [r3, r2] - cmp r0, #0 - ble _08073A68 - subs r0, r1, #1 - strh r0, [r3, #0x30] - b _08073AB8 -_08073A68: - ldrh r0, [r3, #0x32] - lsls r0, r0, #0x18 - ldrh r2, [r3, #0x34] - adds r1, r2, #0 - adds r1, #0x38 - lsls r4, r1, #0x10 - lsrs r2, r4, #0x10 - ldr r1, _08073A88 - ands r2, r1 - strh r2, [r3, #0x34] - cmp r0, #0 - beq _08073A8C - lsrs r0, r4, #0x14 - ldrh r1, [r3, #0x24] - adds r0, r0, r1 - b _08073A92 - .align 2, 0 -_08073A88: .4byte 0x0000FFF0 -_08073A8C: - lsrs r1, r4, #0x14 - ldrh r0, [r3, #0x24] - subs r0, r0, r1 -_08073A92: - strh r0, [r3, #0x24] - movs r2, #0x24 - ldrsh r0, [r3, r2] - movs r2, #0x20 - ldrsh r1, [r3, r2] - adds r0, r0, r1 - adds r0, #8 - movs r1, #0x80 - lsls r1, r1, #1 - cmp r0, r1 - bls _08073AB8 - adds r2, r3, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08073AC0 - str r0, [r3, #0x1c] -_08073AB8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08073AC0: .4byte sub_08007140 - thumb_func_end sub_08073A54 - - thumb_func_start SpriteCB_StatusSummaryBallsOnSwitchout -SpriteCB_StatusSummaryBallsOnSwitchout: @ 0x08073AC4 - ldrh r2, [r0, #0x2e] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r3, _08073AE0 - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrh r2, [r1, #0x24] - strh r2, [r0, #0x24] - ldrh r1, [r1, #0x26] - strh r1, [r0, #0x26] - bx lr - .align 2, 0 -_08073AE0: .4byte gUnknown_20205AC - thumb_func_end SpriteCB_StatusSummaryBallsOnSwitchout - - thumb_func_start sub_08073AE4 -sub_08073AE4: @ 0x08073AE4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - movs r0, #0 - str r0, [sp, #0xc] - ldr r5, _08073B64 - ldr r1, _08073B68 - adds r0, r5, #0 - bl StringCopy - adds r0, r4, #0 - movs r1, #2 - mov r2, sp - bl GetMonData - mov r0, sp - bl StringGetEnd10 - adds r0, r5, #0 - mov r1, sp - bl StringAppend - adds r7, r0, #0 - adds r0, r4, #0 - bl GetMonGender - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r2, r0, #0 - cmp r0, #0x1d - beq _08073B40 - cmp r0, #0x20 - bne _08073B56 -_08073B40: - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r0, _08073B6C - adds r1, r1, r0 - mov r0, sp - bl StringCompare - cmp r0, #0 - bne _08073B56 - movs r5, #0x64 -_08073B56: - cmp r5, #0 - beq _08073B74 - cmp r5, #0xfe - beq _08073B7C - ldr r1, _08073B70 - b _08073B7E - .align 2, 0 -_08073B64: .4byte gUnknown_2022AE0 -_08073B68: .4byte gUnknown_85CC4EA -_08073B6C: .4byte gUnknown_82EA31C -_08073B70: .4byte gUnknown_85CC4FA -_08073B74: - ldr r1, _08073B78 - b _08073B7E - .align 2, 0 -_08073B78: .4byte gUnknown_85CC4F0 -_08073B7C: - ldr r1, _08073C20 -_08073B7E: - adds r0, r7, #0 - bl StringCopy - ldr r1, _08073C24 - mov r2, sl - lsls r5, r2, #4 - adds r0, r5, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0, #0x3a] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_080A630C - ldr r1, _08073C28 - ldr r2, [r1] - movs r1, #0xba - lsls r1, r1, #1 - adds r2, r2, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #7 - movs r0, #0xa4 - lsls r0, r0, #3 - adds r1, r1, r0 - ldr r0, [r2] - adds r7, r0, r1 - ldr r4, _08073C2C - adds r0, r4, #0 - bl StringLength - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - mov r6, r8 - subs r6, #6 - movs r1, #0 - mov sb, r1 - mov r2, r8 - adds r0, r2, r4 - movs r2, #6 - subs r2, r2, r6 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - bl StringFill - adds r0, r4, #0 - bl StringLength - lsls r0, r0, #0x10 - ldr r1, _08073C30 - adds r0, r0, r1 - lsrs r0, r0, #0x10 - mov r8, r0 - adds r0, r7, #0 - movs r1, #7 - adds r2, r4, #0 - bl RenderTextFont9 - movs r6, #3 - cmp sb, r8 - bhs _08073C72 -_08073BFE: - ldr r0, _08073C2C - adds r0, r6, r0 - ldrb r1, [r0] - adds r0, r1, #0 - subs r0, #0x37 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x13 - bls _08073C1C - adds r0, r1, #0 - adds r0, #0x79 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x13 - bhi _08073C34 -_08073C1C: - movs r0, #0x2c - b _08073C52 - .align 2, 0 -_08073C20: .4byte gUnknown_85CC4F5 -_08073C24: .4byte gUnknown_20205AC -_08073C28: .4byte gUnknown_2024178 -_08073C2C: .4byte gUnknown_2022AE0 -_08073C30: .4byte 0xFFFA0000 -_08073C34: - adds r0, r1, #0 - subs r0, #0x4b - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bls _08073C4C - adds r0, r1, #0 - adds r0, #0x65 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _08073C50 -_08073C4C: - movs r0, #0x2d - b _08073C52 -_08073C50: - movs r0, #0x2b -_08073C52: - bl GetHealthboxElementGfxPtr - mov r2, sb - lsls r1, r2, #6 - adds r1, r7, r1 - ldr r2, _08073CE8 - bl CpuSet - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - adds r6, #1 - cmp sb, r8 - blo _08073BFE -_08073C72: - ldr r1, _08073CEC - mov r2, sl - adds r0, r5, r2 - lsls r0, r0, #2 - adds r4, r0, r1 - ldrh r0, [r4, #0x3a] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08073CF4 - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08073CF4 - movs r6, #0 - cmp r6, r8 - bge _08073D64 - ldr r0, _08073CF0 - mov sb, r0 - ldr r5, _08073CE8 -_08073CA2: - ldrh r0, [r4, #4] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - adds r1, r6, #2 - adds r0, r0, r1 - ldr r1, [sp, #0xc] - adds r0, r0, r1 - lsls r0, r0, #5 - mov r2, sb - adds r1, r0, r2 - adds r0, r7, #0 - adds r2, r5, #0 - bl CpuSet - adds r7, #0x20 - ldrh r0, [r4, #4] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - adds r1, r6, #0 - adds r1, #0xa - adds r0, r0, r1 - ldr r1, [sp, #0xc] - adds r0, r0, r1 - lsls r0, r0, #5 - mov r2, sb - adds r1, r0, r2 - adds r0, r7, #0 - adds r2, r5, #0 - bl CpuSet - adds r7, #0x20 - adds r6, #1 - cmp r6, r8 - blt _08073CA2 - b _08073D64 - .align 2, 0 -_08073CE8: .4byte 0x04000008 -_08073CEC: .4byte gUnknown_20205AC -_08073CF0: .4byte 0x06010000 -_08073CF4: - ldr r1, _08073D74 - mov r2, sl - adds r0, r5, r2 - lsls r0, r0, #2 - adds r5, r0, r1 - ldrh r0, [r5, #0x3a] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08073D12 - movs r0, #1 - str r0, [sp, #0xc] -_08073D12: - movs r6, #0 - cmp r6, r8 - bge _08073D64 - ldr r1, _08073D78 - mov sl, r1 - ldr r2, _08073D7C - mov sb, r2 -_08073D20: - ldrh r0, [r5, #4] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - adds r4, r6, #1 - adds r0, r0, r4 - ldr r1, [sp, #0xc] - adds r0, r0, r1 - lsls r0, r0, #5 - mov r2, sl - adds r1, r0, r2 - adds r0, r7, #0 - mov r2, sb - bl CpuSet - adds r7, #0x20 - ldrh r0, [r5, #4] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - adds r1, r6, #0 - adds r1, #9 - adds r0, r0, r1 - ldr r1, [sp, #0xc] - adds r0, r0, r1 - lsls r0, r0, #5 - mov r2, sl - adds r1, r0, r2 - adds r0, r7, #0 - mov r2, sb - bl CpuSet - adds r7, #0x20 - adds r6, r4, #0 - cmp r6, r8 - blt _08073D20 -_08073D64: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08073D74: .4byte gUnknown_20205AC -_08073D78: .4byte 0x06010000 -_08073D7C: .4byte 0x04000008 - thumb_func_end sub_08073AE4 - - thumb_func_start TryAddPokeballIconToHealthbox -TryAddPokeballIconToHealthbox: @ 0x08073D80 - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - ldr r0, _08073E1C - ldr r1, [r0] - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08073E56 - movs r0, #8 - ands r1, r0 - cmp r1, #0 - bne _08073E56 - ldr r6, _08073E20 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r5, r0, r6 - ldrh r0, [r5, #0x3a] - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08073E56 - ldr r1, _08073E24 - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08073E28 - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - bl GetSetPokedexFlag - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08073E56 - ldrh r0, [r5, #0x38] - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r7, #0 - beq _08073E34 - movs r0, #0x46 - bl GetHealthboxElementGfxPtr - lsls r1, r4, #4 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrh r1, [r1, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x11 - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r1, r2 - ldr r2, _08073E2C - adds r1, r1, r2 - ldr r2, _08073E30 - bl CpuSet - b _08073E56 - .align 2, 0 -_08073E1C: .4byte gUnknown_2022C90 -_08073E20: .4byte gUnknown_20205AC -_08073E24: .4byte gUnknown_2023D12 -_08073E28: .4byte gUnknown_20243E8 -_08073E2C: .4byte 0x06010000 -_08073E30: .4byte 0x04000008 -_08073E34: - str r7, [sp] - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrh r1, [r0, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x11 - movs r0, #0x80 - lsls r0, r0, #1 - adds r1, r1, r0 - ldr r0, _08073E60 - adds r1, r1, r0 - ldr r2, _08073E64 - mov r0, sp - bl CpuSet -_08073E56: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08073E60: .4byte 0x06010000 -_08073E64: .4byte 0x05000008 - thumb_func_end TryAddPokeballIconToHealthbox - - thumb_func_start UpdateStatusIconInHealthbox -UpdateStatusIconInHealthbox: @ 0x08073E68 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldr r0, _08073ECC - mov r2, sb - lsls r1, r2, #4 - add r1, sb - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r0, [r1, #0x3a] - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldrh r0, [r1, #0x38] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - adds r0, r7, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08073ED8 - ldr r1, _08073ED0 - lsls r0, r7, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08073ED4 - adds r0, r0, r1 - movs r1, #0x37 - bl GetMonData - adds r4, r0, #0 - bl IsDoubleBattle - lsls r0, r0, #0x18 - movs r3, #0x12 - mov r8, r3 - cmp r0, #0 - bne _08073EF4 - movs r0, #0x1a - mov r8, r0 - b _08073EF4 - .align 2, 0 -_08073ECC: .4byte gUnknown_20205AC -_08073ED0: .4byte gUnknown_2023D12 -_08073ED4: .4byte gUnknown_2024190 -_08073ED8: - ldr r1, _08073F14 - lsls r0, r7, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08073F18 - adds r0, r0, r1 - movs r1, #0x37 - bl GetMonData - adds r4, r0, #0 - movs r1, #0x11 - mov r8, r1 -_08073EF4: - movs r0, #7 - ands r0, r4 - cmp r0, #0 - beq _08073F1C - movs r0, #0x1b - adds r1, r7, #0 - bl GetStatusIconForBattlerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetHealthboxElementGfxPtr - adds r6, r0, #0 - movs r0, #2 - b _08074028 - .align 2, 0 -_08073F14: .4byte gUnknown_2023D12 -_08073F18: .4byte gUnknown_20243E8 -_08073F1C: - movs r0, #0x88 - ands r0, r4 - cmp r0, #0 - beq _08073F3A - movs r0, #0x15 - adds r1, r7, #0 - bl GetStatusIconForBattlerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetHealthboxElementGfxPtr - adds r6, r0, #0 - movs r0, #0 - b _08074028 -_08073F3A: - movs r0, #0x10 - ands r0, r4 - cmp r0, #0 - beq _08073F58 - movs r0, #0x21 - adds r1, r7, #0 - bl GetStatusIconForBattlerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetHealthboxElementGfxPtr - adds r6, r0, #0 - movs r0, #4 - b _08074028 -_08073F58: - movs r0, #0x20 - ands r0, r4 - cmp r0, #0 - beq _08073F76 - movs r0, #0x1e - adds r1, r7, #0 - bl GetStatusIconForBattlerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetHealthboxElementGfxPtr - adds r6, r0, #0 - movs r0, #3 - b _08074028 -_08073F76: - movs r0, #0x40 - ands r0, r4 - cmp r0, #0 - beq _08073F94 - movs r0, #0x18 - adds r1, r7, #0 - bl GetStatusIconForBattlerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetHealthboxElementGfxPtr - adds r6, r0, #0 - movs r0, #1 - b _08074028 -_08073F94: - movs r0, #0x27 - bl GetHealthboxElementGfxPtr - adds r6, r0, #0 - movs r4, #0 - mov r2, sb - lsls r0, r2, #4 - mov r3, r8 - lsls r3, r3, #0x10 - mov r8, r3 - lsls r7, r7, #2 - ldr r1, _08074014 - add r0, sb - lsls r0, r0, #2 - adds r5, r0, r1 -_08073FB2: - ldrh r1, [r5, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x16 - mov r2, r8 - asrs r0, r2, #0x10 - adds r1, r1, r0 - adds r1, r1, r4 - lsls r1, r1, #5 - ldr r3, _08074018 - adds r1, r1, r3 - adds r0, r6, #0 - ldr r2, _0807401C - bl CpuSet - adds r4, #1 - cmp r4, #2 - ble _08073FB2 - ldr r0, _08074020 - ldr r0, [r0] - ldr r0, [r0] - adds r0, r7, r0 - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _08074008 - movs r0, #1 - bl GetHealthboxElementGfxPtr - ldr r2, _08074014 - mov r3, sl - lsls r1, r3, #4 - add r1, sl - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r1, [r1, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x11 - ldr r2, _08074018 - adds r1, r1, r2 - ldr r2, _08074024 - bl CpuSet -_08074008: - mov r0, sb - movs r1, #1 - bl TryAddPokeballIconToHealthbox - b _080740EA - .align 2, 0 -_08074014: .4byte gUnknown_20205AC -_08074018: .4byte 0x06010000 -_0807401C: .4byte 0x04000008 -_08074020: .4byte gUnknown_2024174 -_08074024: .4byte 0x04000010 -_08074028: - mov r1, sb - lsls r5, r1, #4 - add r5, sb - lsls r5, r5, #2 - ldr r2, _080740F8 - adds r5, r5, r2 - ldrb r4, [r5, #5] - lsrs r4, r4, #4 - lsls r4, r4, #4 - adds r4, #0xc - adds r4, r4, r7 - ldr r1, _080740FC - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - movs r3, #0x80 - lsls r3, r3, #1 - adds r1, r4, r3 - movs r2, #2 - bl FillPalette - lsls r4, r4, #1 - ldr r0, _08074100 - adds r0, r4, r0 - ldr r1, _08074104 - adds r4, r4, r1 - adds r1, r4, #0 - movs r2, #1 - bl CpuSet - ldrh r1, [r5, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x16 - add r1, r8 - lsls r1, r1, #5 - ldr r2, _08074108 - mov r8, r2 - add r1, r8 - ldr r2, _0807410C - adds r0, r6, #0 - bl CpuSet - bl IsDoubleBattle - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08074096 - adds r0, r7, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080740E2 -_08074096: - ldr r0, _08074110 - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r7, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _080740E2 - movs r0, #0 - bl GetHealthboxElementGfxPtr - mov r3, sl - lsls r4, r3, #4 - add r4, sl - lsls r4, r4, #2 - ldr r1, _080740F8 - adds r4, r4, r1 - ldrh r1, [r4, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x11 - add r1, r8 - ldr r5, _08074114 - adds r2, r5, #0 - bl CpuSet - movs r0, #0x41 - bl GetHealthboxElementGfxPtr - ldrh r1, [r4, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x11 - adds r1, #0x20 - add r1, r8 - adds r2, r5, #0 - bl CpuSet -_080740E2: - mov r0, sb - movs r1, #0 - bl TryAddPokeballIconToHealthbox -_080740EA: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080740F8: .4byte gUnknown_20205AC -_080740FC: .4byte gUnknown_82FCE02 -_08074100: .4byte gUnknown_20375B4 -_08074104: .4byte 0x05000200 -_08074108: .4byte 0x06010000 -_0807410C: .4byte 0x04000018 -_08074110: .4byte gUnknown_2024174 -_08074114: .4byte 0x04000008 - thumb_func_end UpdateStatusIconInHealthbox - - thumb_func_start GetStatusIconForBattlerId -GetStatusIconForBattlerId: @ 0x08074118 - push {lr} - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - lsrs r2, r0, #0x18 - adds r0, r2, #0 - subs r0, #0x15 - cmp r0, #0xc - bhi _080741D8 - lsls r0, r0, #2 - ldr r1, _08074134 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08074134: .4byte _08074138 -_08074138: @ jump table - .4byte _0807416C @ case 0 - .4byte _080741D8 @ case 1 - .4byte _080741D8 @ case 2 - .4byte _08074182 @ case 3 - .4byte _080741D8 @ case 4 - .4byte _080741D8 @ case 5 - .4byte _08074198 @ case 6 - .4byte _080741D8 @ case 7 - .4byte _080741D8 @ case 8 - .4byte _080741AE @ case 9 - .4byte _080741D8 @ case 10 - .4byte _080741D8 @ case 11 - .4byte _080741C4 @ case 12 -_0807416C: - movs r2, #0x15 - cmp r3, #0 - beq _080741D8 - movs r2, #0x47 - cmp r3, #1 - beq _080741D8 - movs r2, #0x65 - cmp r3, #2 - bne _080741D8 - movs r2, #0x56 - b _080741D8 -_08074182: - movs r2, #0x18 - cmp r3, #0 - beq _080741D8 - movs r2, #0x4a - cmp r3, #1 - beq _080741D8 - movs r2, #0x68 - cmp r3, #2 - bne _080741D8 - movs r2, #0x59 - b _080741D8 -_08074198: - movs r2, #0x1b - cmp r3, #0 - beq _080741D8 - movs r2, #0x4d - cmp r3, #1 - beq _080741D8 - movs r2, #0x6b - cmp r3, #2 - bne _080741D8 - movs r2, #0x5c - b _080741D8 -_080741AE: - movs r2, #0x1e - cmp r3, #0 - beq _080741D8 - movs r2, #0x50 - cmp r3, #1 - beq _080741D8 - movs r2, #0x6e - cmp r3, #2 - bne _080741D8 - movs r2, #0x5f - b _080741D8 -_080741C4: - movs r2, #0x21 - cmp r3, #0 - beq _080741D8 - movs r2, #0x53 - cmp r3, #1 - beq _080741D8 - movs r2, #0x71 - cmp r3, #2 - bne _080741D8 - movs r2, #0x62 -_080741D8: - adds r0, r2, #0 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetStatusIconForBattlerId - - thumb_func_start sub_080741E0 -sub_080741E0: @ 0x080741E0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _08074254 - lsls r0, r5, #4 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0, #0x3a] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_080A630C - ldr r1, _08074258 - ldr r2, [r1] - movs r1, #0xba - lsls r1, r1, #1 - adds r2, r2, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #7 - movs r0, #0xa4 - lsls r0, r0, #3 - adds r1, r1, r0 - ldr r0, [r2] - adds r6, r0, r1 - movs r1, #7 - mov r8, r1 - ldr r2, _0807425C - adds r0, r6, #0 - bl RenderTextFont9 - movs r7, #3 - movs r4, #0 -_08074230: - ldr r0, _0807425C - adds r0, r7, r0 - ldrb r1, [r0] - adds r0, r1, #0 - subs r0, #0x37 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x13 - bls _0807424E - adds r0, r1, #0 - adds r0, #0x79 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x13 - bhi _08074260 -_0807424E: - movs r0, #0x2c - b _0807427E - .align 2, 0 -_08074254: .4byte gUnknown_20205AC -_08074258: .4byte gUnknown_2024178 -_0807425C: .4byte gUnknown_85ABC38 -_08074260: - adds r0, r1, #0 - subs r0, #0x4b - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bls _08074278 - adds r0, r1, #0 - adds r0, #0x65 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _0807427C -_08074278: - movs r0, #0x2d - b _0807427E -_0807427C: - movs r0, #0x2b -_0807427E: - bl GetHealthboxElementGfxPtr - lsls r1, r4, #6 - adds r1, r6, r1 - ldr r2, _08074314 - bl CpuSet - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r7, #1 - cmp r4, r8 - blo _08074230 - movs r7, #3 - movs r2, #3 - add r2, r8 - mov sb, r2 - cmp r7, sb - bge _08074304 - ldr r1, _08074318 - ldr r0, _08074314 - mov sl, r0 - lsls r0, r5, #4 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - mov r8, r0 -_080742B4: - mov r1, r8 - ldrh r0, [r1, #4] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - adds r5, r7, #0 - cmp r7, #0 - bge _080742C4 - adds r5, r7, #7 -_080742C4: - asrs r5, r5, #3 - lsls r4, r5, #3 - subs r4, r7, r4 - adds r0, r0, r4 - lsls r5, r5, #6 - adds r0, r0, r5 - lsls r0, r0, #5 - ldr r2, _0807431C - adds r1, r0, r2 - adds r0, r6, #0 - mov r2, sl - bl CpuSet - adds r6, #0x20 - mov r1, r8 - ldrh r0, [r1, #4] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - adds r4, #8 - adds r0, r0, r4 - adds r0, r0, r5 - lsls r0, r0, #5 - ldr r2, _0807431C - adds r1, r0, r2 - adds r0, r6, #0 - mov r2, sl - bl CpuSet - adds r6, #0x20 - adds r7, #1 - cmp r7, sb - blt _080742B4 -_08074304: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08074314: .4byte 0x04000008 -_08074318: .4byte gUnknown_20205AC -_0807431C: .4byte 0x06010000 - thumb_func_end sub_080741E0 - - thumb_func_start sub_08074320 -sub_08074320: @ 0x08074320 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _080743D0 - mov r8, r0 - ldr r1, _080743D4 - bl StringCopy - adds r7, r0, #0 - ldr r0, _080743D8 - ldrb r1, [r0] - adds r0, r7, #0 - movs r2, #1 - movs r3, #2 - bl sub_080089D8 - adds r7, r0, #0 - ldr r1, _080743DC - bl StringAppend - ldr r0, _080743E0 - lsls r4, r5, #4 - adds r4, r4, r5 - lsls r4, r4, #2 - adds r4, r4, r0 - ldrh r0, [r4, #0x3a] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_080A630C - ldr r1, _080743E4 - ldr r2, [r1] - movs r1, #0xba - lsls r1, r1, #1 - adds r2, r2, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #7 - movs r0, #0xa4 - lsls r0, r0, #3 - adds r1, r1, r0 - ldr r0, [r2] - adds r7, r0, r1 - movs r6, #7 - adds r0, r7, #0 - movs r1, #7 - mov r2, r8 - bl RenderTextFont9 - adds r7, #0x20 - movs r5, #4 -_08074390: - ldrh r0, [r4, #4] - lsls r0, r0, #0x16 - lsrs r2, r0, #0x16 - adds r0, r5, #0 - cmp r5, #0 - bge _0807439E - adds r0, r5, #7 -_0807439E: - asrs r0, r0, #3 - lsls r1, r0, #3 - subs r1, r5, r1 - adds r1, #0x18 - adds r1, r2, r1 - lsls r0, r0, #6 - adds r1, r1, r0 - lsls r1, r1, #5 - ldr r0, _080743E8 - adds r1, r1, r0 - adds r0, r7, #0 - ldr r2, _080743EC - bl CpuSet - adds r7, #0x40 - adds r5, #1 - adds r0, r6, #4 - cmp r5, r0 - blt _08074390 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080743D0: .4byte gUnknown_2022AE0 -_080743D4: .4byte gUnknown_85ABC43 -_080743D8: .4byte gUnknown_2039D18 -_080743DC: .4byte gUnknown_85ABC4B -_080743E0: .4byte gUnknown_20205AC -_080743E4: .4byte gUnknown_2024178 -_080743E8: .4byte 0x06010000 -_080743EC: .4byte 0x04000008 - thumb_func_end sub_08074320 - - thumb_func_start UpdateHealthboxAttribute -UpdateHealthboxAttribute: @ 0x080743F0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov r8, r1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - ldr r1, _0807459C - lsls r0, r6, #4 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0, #0x3a] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - cmp r7, #0 - bne _0807442C - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0807442C - mov r0, sb - bl GetBattlerSide -_0807442C: - ldr r1, _0807459C - lsls r0, r6, #4 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0, #0x3a] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08074448 - b _080745A8 -_08074448: - cmp r7, #3 - beq _08074450 - cmp r7, #0 - bne _08074464 -_08074450: - mov r0, r8 - movs r1, #0x38 - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r6, #0 - bl sub_080725A4 -_08074464: - cmp r7, #1 - bhi _0807447E - mov r0, r8 - movs r1, #0x39 - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r6, #0 - movs r2, #0 - bl sub_080726F4 -_0807447E: - cmp r7, #2 - beq _08074486 - cmp r7, #0 - bne _0807449C -_08074486: - mov r0, r8 - movs r1, #0x3a - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r6, #0 - movs r2, #1 - bl sub_080726F4 -_0807449C: - cmp r7, #5 - beq _080744A4 - cmp r7, #0 - bne _080744D8 -_080744A4: - movs r0, #0 - bl LoadBattleBarGfx - mov r0, r8 - movs r1, #0x3a - bl GetMonData - adds r4, r0, #0 - mov r0, r8 - movs r1, #0x39 - bl GetMonData - adds r3, r0, #0 - movs r0, #0 - str r0, [sp] - mov r0, sb - adds r1, r6, #0 - adds r2, r4, #0 - bl SetBattleBarStruct - mov r0, sb - adds r1, r6, #0 - movs r2, #0 - movs r3, #0 - bl MoveBattleBar -_080744D8: - bl IsDoubleBattle - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - cmp r0, #0 - bne _0807455E - cmp r7, #6 - beq _080744EE - cmp r7, #0 - bne _0807455E -_080744EE: - movs r0, #3 - bl LoadBattleBarGfx - mov r0, r8 - movs r1, #0xb - bl GetMonData - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - mov r0, r8 - movs r1, #0x38 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r0, r8 - movs r1, #0x19 - bl GetMonData - adds r3, r0, #0 - ldr r0, _080745A0 - mov ip, r0 - lsls r1, r4, #2 - ldr r2, _080745A4 - lsls r0, r5, #3 - subs r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r2, [r0, #0x13] - movs r0, #0xca - lsls r0, r0, #1 - muls r0, r2, r0 - adds r1, r1, r0 - add r1, ip - ldr r1, [r1] - subs r3, r3, r1 - adds r4, #1 - lsls r4, r4, #2 - adds r4, r4, r0 - add r4, ip - ldr r2, [r4] - subs r2, r2, r1 - mov r0, sl - str r0, [sp] - mov r0, sb - adds r1, r6, #0 - bl SetBattleBarStruct - mov r0, sb - adds r1, r6, #0 - movs r2, #1 - movs r3, #0 - bl MoveBattleBar -_0807455E: - cmp r7, #4 - beq _08074566 - cmp r7, #0 - bne _0807456E -_08074566: - adds r0, r6, #0 - mov r1, r8 - bl sub_08073AE4 -_0807456E: - cmp r7, #9 - beq _08074576 - cmp r7, #0 - bne _0807457C -_08074576: - adds r0, r6, #0 - bl UpdateStatusIconInHealthbox -_0807457C: - cmp r7, #0xa - bne _08074586 - adds r0, r6, #0 - bl sub_080741E0 -_08074586: - adds r0, r7, #0 - subs r0, #0xa - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0807461E - adds r0, r6, #0 - bl sub_08074320 - b _0807461E - .align 2, 0 -_0807459C: .4byte gUnknown_20205AC -_080745A0: .4byte gUnknown_82F00B4 -_080745A4: .4byte gUnknown_82F0D54 -_080745A8: - cmp r7, #3 - beq _080745B0 - cmp r7, #0 - bne _080745C4 -_080745B0: - mov r0, r8 - movs r1, #0x38 - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r6, #0 - bl sub_080725A4 -_080745C4: - cmp r7, #5 - beq _080745CC - cmp r7, #0 - bne _08074600 -_080745CC: - movs r0, #0 - bl LoadBattleBarGfx - mov r0, r8 - movs r1, #0x3a - bl GetMonData - adds r4, r0, #0 - mov r0, r8 - movs r1, #0x39 - bl GetMonData - adds r3, r0, #0 - movs r0, #0 - str r0, [sp] - mov r0, sb - adds r1, r6, #0 - adds r2, r4, #0 - bl SetBattleBarStruct - mov r0, sb - adds r1, r6, #0 - movs r2, #0 - movs r3, #0 - bl MoveBattleBar -_08074600: - cmp r7, #4 - beq _08074608 - cmp r7, #0 - bne _08074610 -_08074608: - adds r0, r6, #0 - mov r1, r8 - bl sub_08073AE4 -_08074610: - cmp r7, #9 - beq _08074618 - cmp r7, #0 - bne _0807461E -_08074618: - adds r0, r6, #0 - bl UpdateStatusIconInHealthbox -_0807461E: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end UpdateHealthboxAttribute - - thumb_func_start MoveBattleBar -MoveBattleBar: @ 0x08074630 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sb, r2 - cmp r2, #0 - bne _0807467C - ldr r0, _08074678 - ldr r0, [r0] - ldr r0, [r0, #0xc] - mov r1, r8 - lsls r5, r1, #2 - adds r3, r5, r1 - lsls r3, r3, #2 - adds r3, r3, r0 - ldr r0, [r3, #4] - ldr r1, [r3, #8] - ldr r2, [r3, #0xc] - adds r3, #0x10 - movs r4, #6 - str r4, [sp] - movs r4, #1 - str r4, [sp, #4] - bl CalcNewBarValue - adds r4, r0, #0 - adds r7, r5, #0 - b _080746D8 - .align 2, 0 -_08074678: .4byte gUnknown_2024174 -_0807467C: - ldr r2, _08074728 - mov sl, r2 - ldr r0, [r2] - ldr r2, [r0, #0xc] - mov r0, r8 - lsls r4, r0, #2 - adds r0, r4, r0 - lsls r6, r0, #2 - adds r2, r6, r2 - ldr r0, [r2, #8] - ldr r1, [r2, #0xc] - ldr r2, [r2, #4] - movs r3, #8 - bl GetScaledExpFraction - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r7, r4, #0 - cmp r5, #0 - bne _080746A6 - movs r5, #1 -_080746A6: - mov r1, sl - ldr r0, [r1] - ldr r0, [r0, #0xc] - adds r4, r6, r0 - ldr r6, [r4, #0xc] - adds r0, r6, #0 - adds r1, r5, #0 - bl __divsi3 - cmp r0, #0 - bge _080746BE - rsbs r0, r0, #0 -_080746BE: - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, [r4, #4] - ldr r1, [r4, #8] - adds r3, r4, #0 - adds r3, #0x10 - movs r2, #8 - str r2, [sp] - str r5, [sp, #4] - adds r2, r6, #0 - bl CalcNewBarValue - adds r4, r0, #0 -_080746D8: - mov r2, sb - cmp r2, #1 - beq _080746F4 - cmp r2, #0 - bne _080746FC - ldr r0, _08074728 - ldr r0, [r0] - ldr r0, [r0] - adds r0, r7, r0 - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _080746FC -_080746F4: - mov r0, r8 - mov r1, sb - bl MoveBattleBarGraphically -_080746FC: - movs r0, #1 - rsbs r0, r0, #0 - cmp r4, r0 - bne _08074716 - ldr r0, _08074728 - ldr r0, [r0] - ldr r1, [r0, #0xc] - mov r2, r8 - adds r0, r7, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - movs r1, #0 - str r1, [r0, #0x10] -_08074716: - adds r0, r4, #0 - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08074728: .4byte gUnknown_2024174 - thumb_func_end MoveBattleBar - - thumb_func_start MoveBattleBarGraphically -MoveBattleBarGraphically: @ 0x0807472C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #0 - beq _08074748 - cmp r1, #1 - beq _08074830 - b _0807492E -_08074748: - ldr r0, _080747DC - ldr r0, [r0] - ldr r0, [r0, #0xc] - lsls r5, r6, #2 - adds r3, r5, r6 - lsls r3, r3, #2 - adds r3, r3, r0 - ldr r0, [r3, #4] - ldr r1, [r3, #8] - ldr r2, [r3, #0xc] - adds r3, #0x10 - add r4, sp, #8 - str r4, [sp] - movs r4, #6 - str r4, [sp, #4] - bl CalcBarFilledPixels - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #3 - mov sb, r1 - adds r7, r5, #0 - cmp r0, #0x18 - bhi _08074784 - movs r2, #0x38 - mov sb, r2 - cmp r0, #9 - bls _08074784 - movs r4, #0x2f - mov sb, r4 -_08074784: - movs r5, #0 - ldr r0, _080747E0 - mov r8, r0 -_0807478A: - ldr r0, _080747DC - ldr r0, [r0] - ldr r1, [r0, #0xc] - adds r0, r7, r6 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - ldrh r0, [r0, #0x38] - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r5, #1 - bhi _080747EC - mov r0, sb - bl GetHealthboxElementGfxPtr - mov r1, sp - adds r1, r1, r5 - adds r1, #8 - ldrb r1, [r1] - lsls r1, r1, #5 - adds r0, r0, r1 - lsls r1, r4, #4 - adds r1, r1, r4 - lsls r1, r1, #2 - add r1, r8 - ldrh r1, [r1, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x16 - adds r2, r5, #2 - adds r1, r1, r2 - lsls r1, r1, #5 - ldr r2, _080747E4 - adds r1, r1, r2 - ldr r2, _080747E8 - bl CpuSet - b _0807481A - .align 2, 0 -_080747DC: .4byte gUnknown_2024174 -_080747E0: .4byte gUnknown_20205AC -_080747E4: .4byte 0x06010000 -_080747E8: .4byte 0x04000008 -_080747EC: - mov r0, sb - bl GetHealthboxElementGfxPtr - mov r1, sp - adds r1, r1, r5 - adds r1, #8 - ldrb r1, [r1] - lsls r1, r1, #5 - adds r0, r0, r1 - lsls r1, r4, #4 - adds r1, r1, r4 - lsls r1, r1, #2 - add r1, r8 - ldrh r1, [r1, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x16 - adds r1, r5, r1 - lsls r1, r1, #5 - ldr r4, _08074828 - adds r1, r1, r4 - ldr r2, _0807482C - bl CpuSet -_0807481A: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #5 - bls _0807478A - b _0807492E - .align 2, 0 -_08074828: .4byte 0x06010040 -_0807482C: .4byte 0x04000008 -_08074830: - ldr r0, _080748D4 - ldr r0, [r0] - ldr r0, [r0, #0xc] - lsls r5, r6, #2 - adds r3, r5, r6 - lsls r3, r3, #2 - adds r3, r3, r0 - ldr r0, [r3, #4] - ldr r1, [r3, #8] - ldr r2, [r3, #0xc] - adds r3, #0x10 - add r4, sp, #8 - str r4, [sp] - movs r4, #8 - str r4, [sp, #4] - bl CalcBarFilledPixels - ldr r1, _080748D8 - lsls r0, r6, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080748DC - adds r0, r0, r1 - movs r1, #0x38 - bl GetMonData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r7, r5, #0 - cmp r0, #0x64 - bne _08074888 - movs r5, #0 - movs r1, #0 -_08074876: - mov r0, sp - adds r0, r0, r5 - adds r0, #8 - strb r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #7 - bls _08074876 -_08074888: - movs r5, #0 - ldr r0, _080748E0 - mov r8, r0 - adds r0, r7, r6 - lsls r4, r0, #2 -_08074892: - cmp r5, #3 - bhi _080748EC - movs r0, #0xc - bl GetHealthboxElementGfxPtr - mov r1, sp - adds r1, r1, r5 - adds r1, #8 - ldrb r1, [r1] - lsls r1, r1, #5 - adds r0, r0, r1 - ldr r1, _080748D4 - ldr r1, [r1] - ldr r1, [r1, #0xc] - adds r1, r4, r1 - ldrb r2, [r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - add r1, r8 - ldrh r1, [r1, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x16 - adds r2, r5, #0 - adds r2, #0x24 - adds r1, r1, r2 - lsls r1, r1, #5 - ldr r2, _080748E4 - adds r1, r1, r2 - ldr r2, _080748E8 - bl CpuSet - b _08074924 - .align 2, 0 -_080748D4: .4byte gUnknown_2024174 -_080748D8: .4byte gUnknown_2023D12 -_080748DC: .4byte gUnknown_2024190 -_080748E0: .4byte gUnknown_20205AC -_080748E4: .4byte 0x06010000 -_080748E8: .4byte 0x04000008 -_080748EC: - movs r0, #0xc - bl GetHealthboxElementGfxPtr - mov r1, sp - adds r1, r1, r5 - adds r1, #8 - ldrb r1, [r1] - lsls r1, r1, #5 - adds r0, r0, r1 - ldr r1, _0807493C - ldr r1, [r1] - ldr r1, [r1, #0xc] - adds r1, r4, r1 - ldrb r2, [r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - add r1, r8 - ldrh r1, [r1, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x16 - adds r1, r5, r1 - lsls r1, r1, #5 - ldr r2, _08074940 - adds r1, r1, r2 - ldr r2, _08074944 - bl CpuSet -_08074924: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #7 - bls _08074892 -_0807492E: - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0807493C: .4byte gUnknown_2024174 -_08074940: .4byte 0x06010B80 -_08074944: .4byte 0x04000008 - thumb_func_end MoveBattleBarGraphically - - thumb_func_start CalcNewBarValue -CalcNewBarValue: @ 0x08074948 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - adds r4, r1, #0 - mov r8, r2 - adds r5, r3, #0 - ldr r1, [sp, #0x18] - ldr r0, [sp, #0x1c] - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - lsls r1, r1, #0x1b - lsrs r2, r1, #0x18 - ldr r1, [r5] - ldr r0, _08074974 - cmp r1, r0 - bne _0807497A - cmp r7, r2 - bge _08074978 - lsls r0, r4, #8 - str r0, [r5] - b _0807497A - .align 2, 0 -_08074974: .4byte 0xFFFF8000 -_08074978: - str r4, [r5] -_0807497A: - mov r0, r8 - subs r4, r4, r0 - cmp r4, #0 - bge _08074986 - movs r4, #0 - b _0807498C -_08074986: - cmp r4, r7 - ble _0807498C - adds r4, r7, #0 -_0807498C: - cmp r7, r2 - bge _080749A8 - ldr r0, [r5] - asrs r1, r0, #8 - adds r6, r0, #0 - cmp r4, r1 - bne _080749B4 - movs r0, #0xff - ands r0, r6 - cmp r0, #0 - bne _080749B4 - movs r0, #1 - rsbs r0, r0, #0 - b _08074A10 -_080749A8: - ldr r6, [r5] - cmp r4, r6 - bne _080749B4 - movs r0, #1 - rsbs r0, r0, #0 - b _08074A10 -_080749B4: - cmp r7, r2 - bge _080749EE - lsls r0, r7, #8 - adds r1, r2, #0 - bl __divsi3 - mov r1, r8 - cmp r1, #0 - bge _080749D2 - adds r0, r6, r0 - str r0, [r5] - asrs r2, r0, #8 - cmp r2, r4 - blt _08074A0E - b _080749E6 -_080749D2: - subs r0, r6, r0 - str r0, [r5] - asrs r2, r0, #8 - movs r1, #0xff - ands r0, r1 - cmp r0, #0 - ble _080749E2 - adds r2, #1 -_080749E2: - cmp r2, r4 - bgt _08074A0E -_080749E6: - lsls r0, r4, #8 - str r0, [r5] - adds r2, r4, #0 - b _08074A0E -_080749EE: - mov r0, r8 - cmp r0, #0 - bge _08074A00 - ldr r0, [r5] - adds r0, r0, r3 - str r0, [r5] - cmp r0, r4 - ble _08074A0C - b _08074A0A -_08074A00: - ldr r0, [r5] - subs r0, r0, r3 - str r0, [r5] - cmp r0, r4 - bge _08074A0C -_08074A0A: - str r4, [r5] -_08074A0C: - ldr r2, [r5] -_08074A0E: - adds r0, r2, #0 -_08074A10: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CalcNewBarValue - - thumb_func_start CalcBarFilledPixels -CalcBarFilledPixels: @ 0x08074A1C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - mov ip, r3 - ldr r7, [sp, #0x14] - ldr r0, [sp, #0x18] - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - subs r5, r1, r2 - cmp r5, #0 - bge _08074A34 - movs r5, #0 - b _08074A3A -_08074A34: - cmp r5, r4 - ble _08074A3A - adds r5, r4, #0 -_08074A3A: - lsls r0, r6, #0x1b - lsrs r3, r0, #0x18 - movs r1, #0 - cmp r1, r6 - bhs _08074A54 - movs r2, #0 -_08074A46: - adds r0, r7, r1 - strb r2, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, r6 - blo _08074A46 -_08074A54: - cmp r4, r3 - bge _08074A68 - mov r1, ip - ldr r0, [r1] - muls r0, r3, r0 - adds r1, r4, #0 - bl __divsi3 - asrs r0, r0, #8 - b _08074A74 -_08074A68: - mov r1, ip - ldr r0, [r1] - muls r0, r3, r0 - adds r1, r4, #0 - bl __divsi3 -_08074A74: - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r3, r2, #0 - cmp r3, #0 - bne _08074A8A - cmp r5, #0 - ble _08074A8A - movs r0, #1 - strb r0, [r7] - movs r3, #1 - b _08074AAE -_08074A8A: - movs r1, #0 - movs r4, #8 -_08074A8E: - cmp r1, r6 - bhs _08074AAE - cmp r2, #7 - bls _08074AAA - adds r0, r7, r1 - strb r4, [r0] - adds r0, r2, #0 - subs r0, #8 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - b _08074A8E -_08074AAA: - adds r0, r7, r1 - strb r2, [r0] -_08074AAE: - adds r0, r3, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CalcBarFilledPixels - - thumb_func_start sub_08074AB8 -sub_08074AB8: @ 0x08074AB8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - adds r5, r0, #0 - adds r6, r1, #0 - adds r4, r2, #0 - mov r8, r3 - ldr r0, [r5] - ldr r1, [r5, #4] - ldr r2, [r5, #8] - movs r3, #6 - str r3, [sp] - movs r3, #1 - str r3, [sp, #4] - adds r3, r6, #0 - bl CalcNewBarValue - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - adds r0, r5, #0 - adds r1, r6, #0 - adds r2, r4, #0 - bl sub_08074B18 - ldr r0, [r5] - cmp r0, #0x2f - bgt _08074AF8 - ldr r0, [r6] - lsls r0, r0, #8 - lsrs r1, r0, #0x10 - b _08074AFA -_08074AF8: - ldrh r1, [r6] -_08074AFA: - movs r2, #0 - ldrsh r0, [r5, r2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - mov r2, r8 - bl DummiedOutFunction - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_08074AB8 - - thumb_func_start sub_08074B18 -sub_08074B18: @ 0x08074B18 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x1c - adds r5, r0, #0 - adds r3, r1, #0 - mov r8, r2 - ldr r0, [r5] - ldr r1, [r5, #4] - ldr r2, [r5, #8] - add r4, sp, #8 - str r4, [sp] - movs r4, #6 - str r4, [sp, #4] - bl CalcBarFilledPixels - movs r3, #0 - add r7, sp, #0x10 - mov ip, r7 - ldrb r0, [r5, #0xc] - lsls r6, r0, #0x1b - ldr r4, [r5, #0x10] -_08074B44: - lsls r2, r3, #1 - add r2, ip - lsrs r1, r6, #0xf - mov r0, sp - adds r0, r0, r3 - adds r0, #8 - ldrb r0, [r0] - adds r0, r4, r0 - orrs r1, r0 - strh r1, [r2] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #5 - bls _08074B44 - adds r0, r7, #0 - mov r1, r8 - movs r2, #6 - bl CpuSet - add sp, #0x1c - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08074B18 - - thumb_func_start GetScaledExpFraction -GetScaledExpFraction: @ 0x08074B78 - push {r4, r5, r6, r7, lr} - adds r6, r2, #0 - lsls r3, r3, #0x1b - lsrs r7, r3, #0x18 - subs r5, r0, r1 - cmp r5, #0 - bge _08074B8A - movs r5, #0 - b _08074B90 -_08074B8A: - cmp r5, r6 - ble _08074B90 - adds r5, r6, #0 -_08074B90: - muls r0, r7, r0 - adds r1, r6, #0 - bl __divsi3 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - muls r0, r7, r0 - adds r1, r6, #0 - bl __divsi3 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r4, r0 - cmp r0, #0 - bge _08074BB8 - rsbs r0, r0, #0 -_08074BB8: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetScaledExpFraction - - thumb_func_start GetScaledHPFraction -GetScaledHPFraction: @ 0x08074BC4 - push {r4, lr} - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r0, r0, #0x10 - asrs r4, r0, #0x10 - adds r0, r4, #0 - muls r0, r2, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl __divsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _08074BE8 - cmp r4, #0 - ble _08074BE8 - movs r0, #1 -_08074BE8: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetScaledHPFraction - - thumb_func_start GetHPBarLevel -GetHPBarLevel: @ 0x08074BF0 - push {lr} - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r0, r1 - bne _08074C02 - movs r0, #4 - b _08074C1E -_08074C02: - movs r2, #0x30 - bl GetScaledHPFraction - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r0, #3 - cmp r1, #0x18 - bhi _08074C1E - movs r0, #2 - cmp r1, #9 - bhi _08074C1E - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f -_08074C1E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetHPBarLevel - - thumb_func_start sub_08074C24 -sub_08074C24: @ 0x08074C24 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r4, r2, #0x18 - ldr r5, _08074D5C - ldrh r0, [r5, #6] - bl GetSpriteTileStartByTag - lsls r0, r0, #0x10 - ldr r1, _08074D60 - cmp r0, r1 - bne _08074C56 - adds r0, r5, #0 - bl LoadCompressedSpriteSheetUsingHeap - ldr r0, _08074D64 - bl LoadCompressedSpritePaletteUsingHeap -_08074C56: - ldr r0, _08074D68 - bl CreateInvisibleSpriteWithCallback - mov r8, r0 - mov r0, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r5, r0, #4 - add r5, r8 - lsls r5, r5, #2 - ldr r0, _08074D6C - adds r5, r5, r0 - strh r4, [r5, #0x30] - ldr r0, _08074D70 - mov sb, r0 - lsls r6, r6, #0x10 - asrs r0, r6, #0x10 - mov sl, r0 - ldr r0, _08074D74 - adds r6, r6, r0 - asrs r6, r6, #0x10 - lsls r4, r7, #0x10 - asrs r7, r4, #0x10 - adds r4, r4, r0 - asrs r4, r4, #0x10 - mov r0, sb - adds r1, r6, #0 - adds r2, r4, #0 - movs r3, #2 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _08074D6C - adds r1, r1, r0 - mov r0, r8 - strh r0, [r1, #0x2e] - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] - adds r0, r1, #0 - bl AnimateSprite - mov r0, sb - mov r1, sl - adds r2, r4, #0 - movs r3, #2 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _08074D6C - adds r4, r4, r0 - mov r0, r8 - strh r0, [r4, #0x2e] - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAnim - adds r0, r4, #0 - bl AnimateSprite - mov r0, sb - adds r1, r6, #0 - adds r2, r7, #0 - movs r3, #2 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _08074D6C - adds r4, r4, r0 - mov r0, r8 - strh r0, [r4, #0x2e] - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] - adds r0, r4, #0 - movs r1, #2 - bl StartSpriteAnim - adds r0, r4, #0 - bl AnimateSprite - mov r0, sb - mov r1, sl - adds r2, r7, #0 - movs r3, #2 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _08074D6C - adds r4, r4, r0 - mov r0, r8 - strh r0, [r4, #0x2e] - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] - adds r0, r4, #0 - movs r1, #3 - bl StartSpriteAnim - adds r0, r4, #0 - bl AnimateSprite - mov r0, r8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08074D5C: .4byte gUnknown_82ECFA8 -_08074D60: .4byte 0xFFFF0000 -_08074D64: .4byte gUnknown_82ECFB0 -_08074D68: .4byte sub_08074D78 -_08074D6C: .4byte gUnknown_20205AC -_08074D70: .4byte gUnknown_82ED010 -_08074D74: .4byte 0xFFF00000 - thumb_func_end sub_08074C24 - - thumb_func_start sub_08074D78 -sub_08074D78: @ 0x08074D78 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08074DB0 - ldr r0, _08074DA4 - ldrh r0, [r0, #6] - bl FreeSpriteTilesByTag - ldr r0, _08074DA8 - ldrh r0, [r0, #4] - bl FreeSpritePaletteByTag - movs r1, #0x30 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08074DAC - adds r0, r4, #0 - bl DestroySprite - b _08074DB0 - .align 2, 0 -_08074DA4: .4byte gUnknown_82ECFA8 -_08074DA8: .4byte gUnknown_82ECFB0 -_08074DAC: - ldr r0, _08074DB8 - str r0, [r4, #0x1c] -_08074DB0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08074DB8: .4byte sub_08007140 - thumb_func_end sub_08074D78 - - thumb_func_start sub_08074DBC -sub_08074DBC: @ 0x08074DBC - push {lr} - adds r3, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08074DE6 - ldr r2, _08074DEC - movs r0, #0x2e - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x2e] - subs r1, #1 - strh r1, [r0, #0x2e] - adds r0, r3, #0 - bl DestroySprite -_08074DE6: - pop {r0} - bx r0 - .align 2, 0 -_08074DEC: .4byte gUnknown_20205AC - thumb_func_end sub_08074DBC - - thumb_func_start DoPokeballSendOutAnimation -DoPokeballSendOutAnimation: @ 0x08074DF0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r1, _08074E44 - movs r0, #1 - strb r0, [r1] - ldr r0, _08074E48 - ldr r0, [r0] - ldr r6, _08074E4C - ldrb r1, [r6] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r2, #8 - orrs r1, r2 - strb r1, [r0] - ldr r0, _08074E50 - movs r1, #5 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08074E54 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #0xa] - strh r5, [r1, #0xc] - ldrb r0, [r6] - strh r0, [r1, #0xe] - movs r0, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08074E44: .4byte gUnknown_202415D -_08074E48: .4byte gUnknown_2024174 -_08074E4C: .4byte gUnknown_2023D08 -_08074E50: .4byte Task_DoPokeballSendOutAnim -_08074E54: .4byte gUnknown_3005B60 - thumb_func_end DoPokeballSendOutAnimation - - thumb_func_start Task_DoPokeballSendOutAnim -Task_DoPokeballSendOutAnim: @ 0x08074E58 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - movs r0, #0 - str r0, [sp] - ldr r1, _08074E8C - mov r2, sl - lsls r0, r2, #2 - add r0, sl - lsls r0, r0, #3 - adds r1, r0, r1 - ldrh r2, [r1, #8] - movs r3, #8 - ldrsh r0, [r1, r3] - cmp r0, #0 - bne _08074E90 - adds r0, r2, #1 - strh r0, [r1, #8] - b _0807500A - .align 2, 0 -_08074E8C: .4byte gUnknown_3005B60 -_08074E90: - ldrh r0, [r1, #0xc] - mov r8, r0 - ldrb r5, [r1, #0xe] - adds r0, r5, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08074EBC - ldr r1, _08074EB4 - lsls r0, r5, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08074EB8 - b _08074ECA - .align 2, 0 -_08074EB4: .4byte gUnknown_2023D12 -_08074EB8: .4byte gUnknown_20243E8 -_08074EBC: - ldr r1, _08074F38 - lsls r0, r5, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08074F3C -_08074ECA: - adds r0, r0, r1 - movs r1, #0x26 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl ItemIdToBallId - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl LoadBallGfx - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _08074F40 - adds r0, r0, r1 - movs r1, #0x20 - movs r2, #0x50 - movs r3, #0x1d - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r2, _08074F44 - mov sb, r2 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r6, r0, #2 - adds r4, r6, r2 - movs r0, #0x80 - strh r0, [r4, #0x2e] - movs r3, #0 - strh r3, [r4, #0x30] - mov r0, r8 - strh r0, [r4, #0x3c] - mov r2, r8 - cmp r2, #0xfe - beq _08074F50 - cmp r2, #0xff - bne _08074F8C - ldr r0, _08074F48 - strb r5, [r0] - movs r0, #0x18 - strh r0, [r4, #0x20] - movs r0, #0x44 - strh r0, [r4, #0x22] - mov r0, sb - adds r0, #0x1c - adds r0, r6, r0 - ldr r1, _08074F4C - str r1, [r0] - b _08074F9A - .align 2, 0 -_08074F38: .4byte gUnknown_2023D12 -_08074F3C: .4byte gUnknown_2024190 -_08074F40: .4byte gUnknown_82FCF94 -_08074F44: .4byte gUnknown_20205AC -_08074F48: .4byte gUnknown_2023EB0 -_08074F4C: .4byte SpriteCB_PlayerMonSendOut_1 -_08074F50: - adds r0, r5, #0 - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x20] - adds r0, r5, #0 - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #0x18 - strh r0, [r4, #0x22] - ldr r0, _08074F84 - strb r5, [r0] - movs r3, #0 - strh r3, [r4, #0x2e] - mov r0, sb - adds r0, #0x1c - adds r0, r6, r0 - ldr r1, _08074F88 - str r1, [r0] - b _08074F9A - .align 2, 0 -_08074F84: .4byte gUnknown_2023EB0 -_08074F88: .4byte SpriteCB_OpponentMonSendOut -_08074F8C: - movs r0, #1 - bl GetBattlerAtPosition - ldr r1, _08074FB8 - strb r0, [r1] - movs r0, #1 - str r0, [sp] -_08074F9A: - ldr r0, _08074FBC - lsls r1, r7, #4 - adds r1, r1, r7 - lsls r1, r1, #2 - adds r4, r1, r0 - ldr r5, _08074FB8 - ldrb r0, [r5] - strh r0, [r4, #0x3a] - ldr r2, [sp] - cmp r2, #0 - bne _08074FC0 - mov r0, sl - bl DestroyTask - b _0807500A - .align 2, 0 -_08074FB8: .4byte gUnknown_2023EB0 -_08074FBC: .4byte gUnknown_20205AC -_08074FC0: - movs r0, #0x22 - strh r0, [r4, #0x2e] - ldrb r0, [r5] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x32] - ldrb r0, [r5] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, #0x10 - strh r0, [r4, #0x36] - ldr r0, _0807501C - strh r0, [r4, #0x38] - adds r0, r4, #0 - bl InitAnimArcTranslation - mov r3, sl - strh r3, [r4, #6] - ldr r1, _08075020 - mov r2, sl - lsls r0, r2, #2 - add r0, sl - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r1, [r5] - strh r1, [r0, #0x10] - ldr r1, _08075024 - str r1, [r0] - movs r0, #0x3d - bl sub_080A306C -_0807500A: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0807501C: .4byte 0x0000FFD8 -_08075020: .4byte gUnknown_3005B60 -_08075024: .4byte sub_080A8A40 - thumb_func_end Task_DoPokeballSendOutAnim - - thumb_func_start SpriteCB_TestBallThrow -SpriteCB_TestBallThrow: @ 0x08075028 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r7, r0, #0 - bl TranslateAnimHorizontalArc - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080750C8 - ldrb r6, [r7, #6] - ldr r1, _080750D4 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r5, [r0, #0x10] - ldrb r0, [r0, #0xc] - mov r8, r0 - adds r0, r7, #0 - movs r1, #1 - bl StartSpriteAnim - adds r2, r7, #0 - adds r2, #0x2c - ldrb r0, [r2] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r7, #0x24] - ldrh r1, [r7, #0x20] - adds r0, r0, r1 - movs r1, #0 - strh r0, [r7, #0x20] - ldrh r0, [r7, #0x26] - ldrh r2, [r7, #0x22] - adds r0, r0, r2 - strh r0, [r7, #0x22] - strh r1, [r7, #0x24] - strh r1, [r7, #0x26] - strh r1, [r7, #0x38] - adds r0, r5, #0 - bl GetBattlerPokeballItemId - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl ItemIdToBallId - adds r4, r0, #0 - ldrh r0, [r7, #0x20] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r7, #0x22] - subs r1, #5 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp] - movs r2, #1 - movs r3, #0x1c - bl AnimateBallOpenParticles - movs r0, #0 - adds r1, r5, #0 - movs r2, #0xe - adds r3, r4, #0 - bl LaunchBallFadeMonTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r7, #0x2e] - strh r5, [r7, #0x3a] - mov r0, r8 - strh r0, [r7, #0x3c] - adds r0, r6, #0 - bl DestroyTask - ldr r0, _080750D8 - str r0, [r7, #0x1c] -_080750C8: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080750D4: .4byte gUnknown_3005B60 -_080750D8: .4byte sub_080750DC - thumb_func_end SpriteCB_TestBallThrow - - thumb_func_start sub_080750DC -sub_080750DC: @ 0x080750DC - ldr r1, _080750E4 - str r1, [r0, #0x1c] - bx lr - .align 2, 0 -_080750E4: .4byte sub_080750E8 - thumb_func_end sub_080750DC - - thumb_func_start sub_080750E8 -sub_080750E8: @ 0x080750E8 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldrh r0, [r6, #0x38] - adds r0, #1 - movs r7, #0 - strh r0, [r6, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xa - bne _08075142 - strh r7, [r6, #0x38] - ldr r0, _08075148 - str r0, [r6, #0x1c] - ldr r5, _0807514C - movs r1, #0x3a - ldrsh r0, [r6, r1] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _08075150 - adds r0, r0, r4 - movs r1, #2 - bl StartSpriteAffineAnim - movs r1, #0x3a - ldrsh r0, [r6, r1] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl AnimateSprite - movs r1, #0x3a - ldrsh r0, [r6, r1] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - strh r7, [r0, #0x30] -_08075142: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08075148: .4byte sub_08075154 -_0807514C: .4byte gUnknown_2023E88 -_08075150: .4byte gUnknown_20205AC - thumb_func_end sub_080750E8 - - thumb_func_start sub_08075154 -sub_08075154: @ 0x08075154 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x38] - adds r0, #1 - strh r0, [r4, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xb - bne _0807516C - movs r0, #0x3c - bl sub_080A306C -_0807516C: - ldr r6, _080751B8 - ldr r5, _080751BC - movs r1, #0x3a - ldrsh r0, [r4, r1] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r6 - adds r0, r1, #0 - adds r0, #0x3f - ldrb r0, [r0] - lsls r0, r0, #0x1a - cmp r0, #0 - bge _080751C4 - adds r0, r4, #0 - movs r1, #2 - bl StartSpriteAnim - movs r2, #0x3a - ldrsh r0, [r4, r2] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - movs r0, #0 - strh r0, [r4, #0x38] - ldr r0, _080751C0 - str r0, [r4, #0x1c] - b _080751E4 - .align 2, 0 -_080751B8: .4byte gUnknown_20205AC -_080751BC: .4byte gUnknown_2023E88 -_080751C0: .4byte sub_080751EC -_080751C4: - ldrh r0, [r1, #0x30] - adds r0, #0x60 - strh r0, [r1, #0x30] - movs r1, #0x3a - ldrsh r0, [r4, r1] - adds r0, r0, r5 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - movs r2, #0x30 - ldrsh r0, [r1, r2] - rsbs r0, r0, #0 - asrs r0, r0, #8 - strh r0, [r1, #0x26] -_080751E4: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08075154 - - thumb_func_start sub_080751EC -sub_080751EC: @ 0x080751EC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08075234 - ldrh r0, [r4, #0x38] - adds r0, #1 - movs r1, #0 - strh r0, [r4, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - bne _08075234 - strh r1, [r4, #0x34] - movs r0, #0x20 - strh r0, [r4, #0x36] - strh r1, [r4, #0x38] - movs r0, #0 - movs r1, #0x20 - bl Cos - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #0 - bl Cos - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - ldr r0, _0807523C - str r0, [r4, #0x1c] -_08075234: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0807523C: .4byte sub_08075240 - thumb_func_end sub_080751EC - - thumb_func_start sub_08075240 -sub_08075240: @ 0x08075240 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #0 - ldrh r0, [r4, #0x34] - movs r1, #0xff - ands r1, r0 - cmp r1, #0 - beq _08075256 - cmp r1, #1 - beq _080752CA - b _080752F6 -_08075256: - movs r1, #0x38 - ldrsh r0, [r4, r1] - movs r2, #0x36 - ldrsh r1, [r4, r2] - bl Cos - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - ldrh r1, [r4, #0x38] - adds r1, #4 - ldrh r2, [r4, #0x34] - lsls r0, r2, #0x10 - asrs r0, r0, #0x18 - adds r1, r1, r0 - strh r1, [r4, #0x38] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0x3f - ble _080752F6 - ldrh r0, [r4, #0x36] - subs r0, #0xa - strh r0, [r4, #0x36] - ldr r1, _080752A0 - adds r0, r2, r1 - strh r0, [r4, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - cmp r0, #4 - bne _08075292 - movs r5, #1 -_08075292: - cmp r0, #2 - beq _080752B2 - cmp r0, #2 - bgt _080752A4 - cmp r0, #1 - beq _080752AA - b _080752C2 - .align 2, 0 -_080752A0: .4byte 0x00000101 -_080752A4: - cmp r0, #3 - beq _080752BA - b _080752C2 -_080752AA: - movs r0, #0x38 - bl sub_080A306C - b _080752F6 -_080752B2: - movs r0, #0x39 - bl sub_080A306C - b _080752F6 -_080752BA: - movs r0, #0x3a - bl sub_080A306C - b _080752F6 -_080752C2: - movs r0, #0x3b - bl sub_080A306C - b _080752F6 -_080752CA: - movs r2, #0x38 - ldrsh r0, [r4, r2] - movs r2, #0x36 - ldrsh r1, [r4, r2] - bl Cos - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - ldrh r1, [r4, #0x38] - subs r1, #4 - ldrh r2, [r4, #0x34] - lsls r0, r2, #0x10 - asrs r0, r0, #0x18 - subs r1, r1, r0 - strh r1, [r4, #0x38] - lsls r1, r1, #0x10 - cmp r1, #0 - bgt _080752F6 - strh r5, [r4, #0x38] - ldr r0, _0807531C - ands r0, r2 - strh r0, [r4, #0x34] -_080752F6: - cmp r5, #0 - beq _0807532E - movs r5, #0 - strh r5, [r4, #0x34] - movs r0, #0x40 - movs r1, #0x20 - bl Cos - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] - strh r5, [r4, #0x26] - movs r2, #0x3c - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _08075324 - ldr r0, _08075320 - str r0, [r4, #0x1c] - b _0807532E - .align 2, 0 -_0807531C: .4byte 0xFFFFFF00 -_08075320: .4byte SpriteCB_ReleaseMonFromBall -_08075324: - ldr r0, _08075334 - str r0, [r4, #0x1c] - movs r0, #1 - strh r0, [r4, #0x36] - strh r5, [r4, #0x38] -_0807532E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08075334: .4byte sub_08075338 - thumb_func_end sub_08075240 - - thumb_func_start sub_08075338 -sub_08075338: @ 0x08075338 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x34] - adds r0, #1 - strh r0, [r4, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1f - bne _0807536C - movs r0, #0 - strh r0, [r4, #0x34] - adds r2, r4, #0 - adds r2, #0x2c - ldrb r0, [r2] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAffineAnim - ldr r0, _08075374 - str r0, [r4, #0x1c] - movs r0, #0x17 - bl sub_080A306C -_0807536C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08075374: .4byte sub_08075378 - thumb_func_end sub_08075338 - - thumb_func_start sub_08075378 -sub_08075378: @ 0x08075378 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x34] - movs r1, #0xff - ands r1, r0 - cmp r1, #4 - bhi _08075478 - lsls r0, r1, #2 - ldr r1, _08075390 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08075390: .4byte _08075394 -_08075394: @ jump table - .4byte _080753A8 @ case 0 - .4byte _080753DA @ case 1 - .4byte _080753A8 @ case 2 - .4byte _0807542E @ case 3 - .4byte _08075478 @ case 4 -_080753A8: - ldrh r0, [r4, #0x36] - ldrh r2, [r4, #0x24] - adds r1, r0, r2 - strh r1, [r4, #0x24] - ldrh r1, [r4, #0x38] - adds r0, r0, r1 - strh r0, [r4, #0x38] - adds r2, r4, #0 - adds r2, #0x2c - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - ldrh r0, [r4, #0x38] - adds r0, #3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #6 - bls _080754BE - ldrh r0, [r4, #0x34] - adds r0, #1 - strh r0, [r4, #0x34] - movs r0, #0 - strh r0, [r4, #0x38] - b _080754BE -_080753DA: - ldrh r0, [r4, #0x38] - adds r0, #1 - strh r0, [r4, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - bne _08075420 - movs r0, #0 - strh r0, [r4, #0x38] - ldrh r0, [r4, #0x36] - rsbs r0, r0, #0 - strh r0, [r4, #0x36] - ldrh r0, [r4, #0x34] - adds r0, #1 - strh r0, [r4, #0x34] - adds r2, r4, #0 - adds r2, #0x2c - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - movs r2, #0x36 - ldrsh r0, [r4, r2] - cmp r0, #0 - bge _08075416 - adds r0, r4, #0 - movs r1, #2 - bl ChangeSpriteAffineAnim - b _080754BE -_08075416: - adds r0, r4, #0 - movs r1, #1 - bl ChangeSpriteAffineAnim - b _080754BE -_08075420: - adds r0, r4, #0 - adds r0, #0x2c - ldrb r1, [r0] - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0] - b _080754BE -_0807542E: - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r2, [r4, #0x34] - adds r0, r0, r2 - strh r0, [r4, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - movs r2, #0x3c - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _08075450 - ldr r0, _0807544C - str r0, [r4, #0x1c] - b _080754BE - .align 2, 0 -_0807544C: .4byte SpriteCB_ReleaseMonFromBall -_08075450: - cmp r1, #4 - bne _08075464 - cmp r0, #3 - bne _08075464 - ldr r0, _08075460 - str r0, [r4, #0x1c] - b _0807546A - .align 2, 0 -_08075460: .4byte sub_080759BC -_08075464: - ldrh r0, [r4, #0x34] - adds r0, #1 - strh r0, [r4, #0x34] -_0807546A: - adds r2, r4, #0 - adds r2, #0x2c - ldrb r0, [r2] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2] - b _080754BE -_08075478: - ldrh r0, [r4, #0x38] - adds r0, #1 - strh r0, [r4, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1f - bne _080754BE - movs r0, #0 - strh r0, [r4, #0x38] - ldrh r1, [r4, #0x34] - ldr r0, _080754AC - ands r0, r1 - strh r0, [r4, #0x34] - adds r0, r4, #0 - movs r1, #3 - bl StartSpriteAffineAnim - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bge _080754B0 - adds r0, r4, #0 - movs r1, #2 - bl StartSpriteAffineAnim - b _080754B8 - .align 2, 0 -_080754AC: .4byte 0xFFFFFF00 -_080754B0: - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAffineAnim -_080754B8: - movs r0, #0x17 - bl sub_080A306C -_080754BE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08075378 - - thumb_func_start Task_PlayCryWhenReleasedFromBall -Task_PlayCryWhenReleasedFromBall: @ 0x080754C4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r2, _08075504 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrb r1, [r0, #0xc] - mov ip, r1 - ldrb r5, [r0, #0xa] - ldrh r6, [r0, #8] - ldrb r3, [r0, #0xe] - mov r8, r3 - ldrb r7, [r0, #0x10] - movs r3, #0x12 - ldrsh r1, [r0, r3] - lsls r3, r1, #0x10 - ldrh r1, [r0, #0x14] - orrs r3, r1 - movs r1, #0x26 - ldrsh r0, [r0, r1] - cmp r0, #0x20 - bhi _08075590 - lsls r0, r0, #2 - ldr r1, _08075508 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08075504: .4byte gUnknown_3005B60 -_08075508: .4byte _0807550C -_0807550C: @ jump table - .4byte _08075590 @ case 0 - .4byte _080755BC @ case 1 - .4byte _080755E2 @ case 2 - .4byte _0807565C @ case 3 - .4byte _08075590 @ case 4 - .4byte _08075590 @ case 5 - .4byte _08075590 @ case 6 - .4byte _08075590 @ case 7 - .4byte _08075590 @ case 8 - .4byte _08075590 @ case 9 - .4byte _08075590 @ case 10 - .4byte _08075590 @ case 11 - .4byte _08075590 @ case 12 - .4byte _08075590 @ case 13 - .4byte _08075590 @ case 14 - .4byte _08075590 @ case 15 - .4byte _08075590 @ case 16 - .4byte _08075590 @ case 17 - .4byte _08075590 @ case 18 - .4byte _08075590 @ case 19 - .4byte _08075600 @ case 20 - .4byte _08075590 @ case 21 - .4byte _08075590 @ case 22 - .4byte _08075590 @ case 23 - .4byte _08075590 @ case 24 - .4byte _08075590 @ case 25 - .4byte _08075590 @ case 26 - .4byte _08075590 @ case 27 - .4byte _08075590 @ case 28 - .4byte _08075590 @ case 29 - .4byte _0807566E @ case 30 - .4byte _08075686 @ case 31 - .4byte _080756B0 @ case 32 -_08075590: - ldr r0, _080755B8 - lsls r1, r7, #4 - adds r1, r1, r7 - lsls r1, r1, #2 - adds r1, r1, r0 - adds r1, #0x3f - ldrb r0, [r1] - lsls r0, r0, #0x1a - cmp r0, #0 - blt _080755A6 - b _0807570C -_080755A6: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r2 - mov r1, ip - adds r1, #1 - strh r1, [r0, #0x26] - b _0807570C - .align 2, 0 -_080755B8: .4byte gUnknown_20205AC -_080755BC: - adds r0, r3, #0 - bl ShouldPlayNormalMonCry - cmp r0, #1 - bne _080755D4 - lsls r1, r5, #0x18 - asrs r1, r1, #0x18 - adds r0, r6, #0 - movs r2, #0 - bl PlayCry3 - b _08075636 -_080755D4: - lsls r1, r5, #0x18 - asrs r1, r1, #0x18 - adds r0, r6, #0 - movs r2, #0xb - bl PlayCry3 - b _08075636 -_080755E2: - bl sub_080A2F64 - ldr r1, _080755FC - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #3 - strh r1, [r0, #0x1c] - movs r1, #0x14 - strh r1, [r0, #0x26] - b _0807570C - .align 2, 0 -_080755FC: .4byte gUnknown_3005B60 -_08075600: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r1, r0, r2 - ldrh r2, [r1, #0x1c] - movs r7, #0x1c - ldrsh r0, [r1, r7] - cmp r0, #0 - bne _080756C2 - adds r0, r3, #0 - bl ShouldPlayNormalMonCry - cmp r0, #1 - bne _0807562A - lsls r1, r5, #0x18 - asrs r1, r1, #0x18 - adds r0, r6, #0 - movs r2, #1 - bl PlayCry4 - b _08075636 -_0807562A: - lsls r1, r5, #0x18 - asrs r1, r1, #0x18 - adds r0, r6, #0 - movs r2, #0xc - bl PlayCry4 -_08075636: - ldr r0, _08075658 - ldr r0, [r0] - ldr r0, [r0, #4] - mov r2, r8 - lsls r1, r2, #1 - add r1, r8 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #1] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #1] - adds r0, r4, #0 - bl DestroyTask - b _0807570C - .align 2, 0 -_08075658: .4byte gUnknown_2024174 -_0807565C: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r1, #6 - strh r1, [r0, #0x1c] - movs r1, #0x1e - strh r1, [r0, #0x26] - b _0807570C -_0807566E: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r1, r0, r2 - ldrh r2, [r1, #0x1c] - movs r3, #0x1c - ldrsh r0, [r1, r3] - cmp r0, #0 - bne _080756C2 - ldrh r0, [r1, #0x26] - adds r0, #1 - strh r0, [r1, #0x26] -_08075686: - bl IsCryPlayingOrClearCrySongs - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0807570C - bl sub_080A2F64 - ldr r0, _080756AC - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #3 - strh r0, [r1, #0x1c] - ldrh r0, [r1, #0x26] - adds r0, #1 - strh r0, [r1, #0x26] - b _0807570C - .align 2, 0 -_080756AC: .4byte gUnknown_3005B60 -_080756B0: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r1, r0, r2 - ldrh r2, [r1, #0x1c] - movs r7, #0x1c - ldrsh r0, [r1, r7] - cmp r0, #0 - beq _080756C8 -_080756C2: - subs r0, r2, #1 - strh r0, [r1, #0x1c] - b _0807570C -_080756C8: - adds r0, r3, #0 - bl ShouldPlayNormalMonCry - cmp r0, #1 - bne _080756E0 - lsls r1, r5, #0x18 - asrs r1, r1, #0x18 - adds r0, r6, #0 - movs r2, #0 - bl PlayCry4 - b _080756EC -_080756E0: - lsls r1, r5, #0x18 - asrs r1, r1, #0x18 - adds r0, r6, #0 - movs r2, #0xb - bl PlayCry4 -_080756EC: - ldr r0, _08075718 - ldr r0, [r0] - ldr r0, [r0, #4] - mov r2, r8 - lsls r1, r2, #1 - add r1, r8 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #1] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #1] - adds r0, r4, #0 - bl DestroyTask -_0807570C: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08075718: .4byte gUnknown_2024174 - thumb_func_end Task_PlayCryWhenReleasedFromBall - - thumb_func_start SpriteCB_ReleaseMonFromBall -SpriteCB_ReleaseMonFromBall: @ 0x0807571C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r6, r0, #0 - ldrh r0, [r6, #0x3a] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r6, #0 - movs r1, #1 - bl StartSpriteAnim - adds r0, r5, #0 - bl GetBattlerPokeballItemId - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl ItemIdToBallId - adds r4, r0, #0 - ldrh r0, [r6, #0x20] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r6, #0x22] - subs r1, #5 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp] - movs r2, #1 - movs r3, #0x1c - bl AnimateBallOpenParticles - ldrh r1, [r6, #0x3a] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #1 - movs r2, #0xe - adds r3, r4, #0 - bl LaunchBallFadeMonTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r6, #0x2e] - ldr r0, _080757B4 - str r0, [r6, #0x1c] - ldr r0, _080757B8 - ldr r1, _080757BC - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08075790 - b _080758FC -_08075790: - adds r0, r5, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080757C8 - ldr r0, _080757C0 - lsls r2, r5, #1 - adds r0, r2, r0 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _080757C4 - adds r7, r1, r0 - movs r4, #0x19 - mov sl, r4 - b _080757DC - .align 2, 0 -_080757B4: .4byte HandleBallAnimEnd -_080757B8: .4byte gUnknown_3002360 -_080757BC: .4byte 0x00000439 -_080757C0: .4byte gUnknown_2023D12 -_080757C4: .4byte gUnknown_20243E8 -_080757C8: - ldr r0, _08075840 - lsls r2, r5, #1 - adds r0, r2, r0 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _08075844 - adds r7, r1, r0 - movs r0, #0xe7 - mov sl, r0 -_080757DC: - mov r8, r2 - adds r0, r7, #0 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - movs r0, #0 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r5, r0 - beq _08075808 - movs r0, #1 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r5, r0 - bne _0807585E -_08075808: - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0807585E - ldr r0, _08075848 - ldr r0, [r0] - ldr r0, [r0, #8] - ldrb r1, [r0, #9] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0807585E - ldr r0, _0807584C - ldr r0, [r0] - movs r1, #0x42 - ands r0, r1 - cmp r0, #0x42 - bne _08075854 - bl sub_080A31AC - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0807585E - ldr r0, _08075850 - bl m4aMPlayStop - b _0807585E - .align 2, 0 -_08075840: .4byte gUnknown_2023D12 -_08075844: .4byte gUnknown_2024190 -_08075848: .4byte gUnknown_2024174 -_0807584C: .4byte gUnknown_2022C90 -_08075850: .4byte gUnknown_30074D0 -_08075854: - ldr r0, _0807587C - ldr r1, _08075880 - movs r2, #0x80 - bl m4aMPlayVolumeControl -_0807585E: - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08075878 - ldr r0, _08075884 - ldr r0, [r0] - ldr r0, [r0, #8] - ldrb r1, [r0, #9] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08075888 -_08075878: - movs r4, #0 - b _080758AA - .align 2, 0 -_0807587C: .4byte gUnknown_30074D0 -_08075880: .4byte 0x0000FFFF -_08075884: .4byte gUnknown_2024174 -_08075888: - movs r0, #0 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r5, r0 - beq _080758A4 - movs r0, #1 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r5, r0 - bne _080758A8 -_080758A4: - movs r4, #1 - b _080758AA -_080758A8: - movs r4, #2 -_080758AA: - ldr r0, _08075940 - ldr r0, [r0] - ldr r0, [r0, #4] - mov r2, r8 - adds r1, r2, r5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #1] - movs r2, #0x40 - orrs r0, r2 - strb r0, [r1, #1] - ldr r0, _08075944 - movs r1, #3 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08075948 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r3, #0 - mov r0, sb - strh r0, [r1, #8] - mov r2, sl - lsls r0, r2, #0x18 - asrs r0, r0, #0x18 - strh r0, [r1, #0xa] - strh r4, [r1, #0xc] - strh r5, [r1, #0xe] - ldr r2, _0807594C - movs r4, #0x3a - ldrsh r0, [r6, r4] - adds r0, r0, r2 - ldrb r0, [r0] - strh r0, [r1, #0x10] - lsrs r0, r7, #0x10 - strh r0, [r1, #0x12] - strh r7, [r1, #0x14] - strh r3, [r1, #0x26] -_080758FC: - ldr r4, _0807594C - movs r1, #0x3a - ldrsh r0, [r6, r1] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r5, _08075950 - adds r0, r0, r5 - movs r1, #1 - bl StartSpriteAffineAnim - ldrh r0, [r6, #0x3a] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08075958 - movs r2, #0x3a - ldrsh r0, [r6, r2] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r5, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _08075954 - b _0807596E - .align 2, 0 -_08075940: .4byte gUnknown_2024174 -_08075944: .4byte Task_PlayCryWhenReleasedFromBall -_08075948: .4byte gUnknown_3005B60 -_0807594C: .4byte gUnknown_2023E88 -_08075950: .4byte gUnknown_20205AC -_08075954: .4byte sub_0803979C -_08075958: - movs r1, #0x3a - ldrsh r0, [r6, r1] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r5, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _080759B0 -_0807596E: - str r1, [r0] - ldr r5, _080759B4 - movs r2, #0x3a - ldrsh r0, [r6, r2] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _080759B8 - adds r0, r0, r4 - bl AnimateSprite - movs r1, #0x3a - ldrsh r0, [r6, r1] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0x80 - lsls r1, r1, #5 - strh r1, [r0, #0x30] - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080759B0: .4byte sub_08039A88 -_080759B4: .4byte gUnknown_2023E88 -_080759B8: .4byte gUnknown_20205AC - thumb_func_end SpriteCB_ReleaseMonFromBall - - thumb_func_start sub_080759BC -sub_080759BC: @ 0x080759BC - adds r3, r0, #0 - adds r3, #0x2c - ldrb r1, [r3] - movs r2, #0x40 - orrs r1, r2 - strb r1, [r3] - ldr r1, _080759D8 - str r1, [r0, #0x1c] - movs r1, #0 - strh r1, [r0, #0x34] - strh r1, [r0, #0x36] - strh r1, [r0, #0x38] - bx lr - .align 2, 0 -_080759D8: .4byte sub_08075B00 - thumb_func_end sub_080759BC - - thumb_func_start HandleBallAnimEnd -HandleBallAnimEnd: @ 0x080759DC - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - movs r7, #0 - ldrh r0, [r5, #0x3a] - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r4, _08075A40 - ldr r0, _08075A44 - adds r3, r6, r0 - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - adds r0, r5, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08075A1E - adds r2, r5, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] -_08075A1E: - ldrb r0, [r3] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - adds r0, r1, #0 - adds r0, #0x3f - ldrb r0, [r0] - lsls r0, r0, #0x1a - cmp r0, #0 - bge _08075A48 - adds r0, r1, #0 - movs r1, #0 - bl StartSpriteAffineAnim - movs r7, #1 - b _08075A64 - .align 2, 0 -_08075A40: .4byte gUnknown_20205AC -_08075A44: .4byte gUnknown_2023E88 -_08075A48: - ldr r2, _08075AEC - adds r0, r2, #0 - ldrh r2, [r1, #0x30] - adds r0, r0, r2 - strh r0, [r1, #0x30] - ldrb r0, [r3] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrh r0, [r1, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - strh r0, [r1, #0x26] -_08075A64: - adds r0, r5, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08075AE6 - cmp r7, #0 - beq _08075AE6 - ldr r2, _08075AF0 - ldr r0, _08075AF4 - adds r0, r6, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r2, #0 - movs r1, #0 - strh r1, [r0, #0x26] - ldr r0, _08075AF8 - strb r2, [r0] - ldr r4, _08075AFC - ldr r0, [r4] - ldr r0, [r0, #4] - lsls r1, r6, #1 - adds r1, r1, r6 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - adds r0, r5, #0 - bl FreeSpriteOamMatrix - adds r0, r5, #0 - bl DestroySprite - movs r3, #0 - ldr r0, [r4] - ldr r2, [r0, #4] - movs r5, #8 - movs r4, #3 -_08075ABE: - ldrb r1, [r2] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - bne _08075ACA - adds r3, #1 -_08075ACA: - adds r2, #0xc - subs r4, #1 - cmp r4, #0 - bge _08075ABE - cmp r3, #4 - bne _08075AE6 - movs r4, #0 -_08075AD8: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl FreeBallGfx - adds r4, #1 - cmp r4, #0xb - ble _08075AD8 -_08075AE6: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08075AEC: .4byte 0xFFFFFEE0 -_08075AF0: .4byte gUnknown_20205AC -_08075AF4: .4byte gUnknown_2023E88 -_08075AF8: .4byte gUnknown_202415D -_08075AFC: .4byte gUnknown_2024174 - thumb_func_end HandleBallAnimEnd - - thumb_func_start sub_08075B00 -sub_08075B00: @ 0x08075B00 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldrh r0, [r6, #0x3a] - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldrh r0, [r6, #0x36] - adds r0, #1 - strh r0, [r6, #0x36] - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - cmp r1, #0x28 - beq _08075B9E - cmp r1, #0x5f - bne _08075B38 - ldr r0, _08075B30 - movs r1, #0 - strb r1, [r0] - bl m4aMPlayAllStop - ldr r0, _08075B34 - bl sub_080A306C - b _08075B9E - .align 2, 0 -_08075B30: .4byte gUnknown_202415D -_08075B34: .4byte 0x00000173 -_08075B38: - ldr r0, _08075BA4 - cmp r1, r0 - bne _08075B9E - ldr r5, _08075BA8 - ldr r4, _08075BAC - movs r1, #0x3a - ldrsh r0, [r6, r1] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r0, [r0, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - movs r1, #0x3a - ldrsh r0, [r6, r1] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - bl DestroySprite - adds r0, r6, #0 - bl DestroySpriteAndFreeResources - ldr r0, _08075BB0 - ldr r1, _08075BB4 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08075B9E - ldr r0, _08075BB8 - ldr r0, [r0] - ldr r0, [r0, #4] - lsls r1, r7, #1 - adds r1, r1, r7 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] -_08075B9E: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08075BA4: .4byte 0x0000013B -_08075BA8: .4byte gUnknown_20205AC -_08075BAC: .4byte gUnknown_2023E88 -_08075BB0: .4byte gUnknown_3002360 -_08075BB4: .4byte 0x00000439 -_08075BB8: .4byte gUnknown_2024174 - thumb_func_end sub_08075B00 - - thumb_func_start SpriteCB_PlayerMonSendOut_1 -SpriteCB_PlayerMonSendOut_1: @ 0x08075BBC - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x19 - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x3a] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x32] - ldrh r0, [r4, #0x3a] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #0x18 - strh r0, [r4, #0x36] - ldr r0, _08075C04 - strh r0, [r4, #0x38] - ldrh r0, [r4, #0x3a] - strh r0, [r4, #6] - adds r0, r4, #0 - bl InitAnimArcTranslation - ldr r0, _08075C08 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08075C04: .4byte 0x0000FFE2 -_08075C08: .4byte SpriteCB_PlayerMonSendOut_2 - thumb_func_end SpriteCB_PlayerMonSendOut_1 - - thumb_func_start SpriteCB_PlayerMonSendOut_2 -SpriteCB_PlayerMonSendOut_2: @ 0x08075C0C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - ldrh r0, [r5, #0x3c] - movs r1, #0xff - mov r8, r1 - lsrs r0, r0, #8 - subs r0, #0x23 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x2c - bhi _08075D00 - ldrh r1, [r5, #6] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - cmp r0, #0 - bne _08075C6E - ldrh r0, [r5, #0x30] - movs r1, #1 - adds r6, r1, #0 - ands r6, r0 - ldrh r0, [r5, #0x32] - adds r7, r1, #0 - ands r7, r0 - movs r2, #0x30 - ldrsh r0, [r5, r2] - movs r1, #3 - bl __divsi3 - movs r1, #2 - rsbs r1, r1, #0 - adds r4, r1, #0 - ands r0, r4 - orrs r6, r0 - strh r6, [r5, #0x30] - movs r2, #0x32 - ldrsh r0, [r5, r2] - movs r1, #3 - bl __divsi3 - ands r0, r4 - orrs r7, r0 - strh r7, [r5, #0x32] - adds r0, r5, #0 - movs r1, #4 - bl StartSpriteAffineAnim -_08075C6E: - ldrh r4, [r5, #0x2e] - adds r0, r5, #0 - bl AnimTranslateLinear - movs r1, #0x3a - ldrsh r0, [r5, r1] - movs r1, #3 - bl __divsi3 - adds r1, r0, #0 - ldrh r0, [r5, #0x3c] - adds r0, r0, r1 - strh r0, [r5, #0x3c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - mov r2, r8 - ands r0, r2 - movs r2, #0x38 - ldrsh r1, [r5, r2] - bl Sin - ldrh r1, [r5, #0x26] - adds r0, r0, r1 - strh r0, [r5, #0x26] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r2, #0 - ldrh r1, [r5, #6] - adds r0, r0, r1 - strh r0, [r5, #6] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - movs r1, #3 - bl __umodsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08075CBE - strh r4, [r5, #0x2e] - b _08075CC6 -_08075CBE: - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - subs r0, #1 - strh r0, [r5, #0x2e] -_08075CC6: - ldrh r0, [r5, #0x3c] - lsrs r0, r0, #8 - cmp r0, #0x4f - ble _08075D6C - ldrh r0, [r5, #0x30] - movs r1, #1 - adds r6, r1, #0 - ands r6, r0 - ldrh r0, [r5, #0x32] - adds r7, r1, #0 - ands r7, r0 - movs r2, #0x30 - ldrsh r1, [r5, r2] - lsls r0, r1, #1 - adds r0, r0, r1 - movs r1, #2 - rsbs r1, r1, #0 - adds r2, r1, #0 - ands r0, r2 - orrs r0, r6 - strh r0, [r5, #0x30] - movs r0, #0x32 - ldrsh r1, [r5, r0] - lsls r0, r1, #1 - adds r0, r0, r1 - ands r0, r2 - orrs r0, r7 - strh r0, [r5, #0x32] - b _08075D6C -_08075D00: - adds r0, r5, #0 - bl TranslateAnimHorizontalArc - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08075D6C - ldrh r0, [r5, #0x24] - ldrh r1, [r5, #0x20] - adds r0, r0, r1 - movs r1, #0 - strh r0, [r5, #0x20] - ldrh r0, [r5, #0x26] - ldrh r2, [r5, #0x22] - adds r0, r0, r2 - strh r0, [r5, #0x22] - strh r1, [r5, #0x26] - strh r1, [r5, #0x24] - ldrb r0, [r5, #6] - strh r0, [r5, #0x3a] - strh r1, [r5, #0x2e] - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08075D60 - ldr r0, _08075D58 - ldr r0, [r0] - ldr r0, [r0, #8] - ldrb r1, [r0, #9] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08075D60 - movs r0, #0x3a - ldrsh r4, [r5, r0] - movs r0, #2 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - bne _08075D60 - ldr r0, _08075D5C - b _08075D62 - .align 2, 0 -_08075D58: .4byte gUnknown_2024174 -_08075D5C: .4byte SpriteCB_ReleaseMon2FromBall -_08075D60: - ldr r0, _08075D78 -_08075D62: - str r0, [r5, #0x1c] - adds r0, r5, #0 - movs r1, #0 - bl StartSpriteAffineAnim -_08075D6C: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08075D78: .4byte SpriteCB_ReleaseMonFromBall - thumb_func_end SpriteCB_PlayerMonSendOut_2 - - thumb_func_start SpriteCB_ReleaseMon2FromBall -SpriteCB_ReleaseMon2FromBall: @ 0x08075D7C - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x2e] - adds r1, r0, #1 - strh r1, [r2, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x18 - ble _08075D96 - movs r0, #0 - strh r0, [r2, #0x2e] - ldr r0, _08075D9C - str r0, [r2, #0x1c] -_08075D96: - pop {r0} - bx r0 - .align 2, 0 -_08075D9C: .4byte SpriteCB_ReleaseMonFromBall - thumb_func_end SpriteCB_ReleaseMon2FromBall - - thumb_func_start SpriteCB_OpponentMonSendOut -SpriteCB_OpponentMonSendOut: @ 0x08075DA0 - push {r4, r5, lr} - adds r5, r0, #0 - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xf - ble _08075DF4 - movs r0, #0 - strh r0, [r5, #0x2e] - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08075DF0 - ldr r0, _08075DE8 - ldr r0, [r0] - ldr r0, [r0, #8] - ldrb r1, [r0, #9] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08075DF0 - movs r0, #0x3a - ldrsh r4, [r5, r0] - movs r0, #3 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - bne _08075DF0 - ldr r0, _08075DEC - b _08075DF2 - .align 2, 0 -_08075DE8: .4byte gUnknown_2024174 -_08075DEC: .4byte SpriteCB_ReleaseMon2FromBall -_08075DF0: - ldr r0, _08075DFC -_08075DF2: - str r0, [r5, #0x1c] -_08075DF4: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08075DFC: .4byte SpriteCB_ReleaseMonFromBall - thumb_func_end SpriteCB_OpponentMonSendOut - - thumb_func_start AnimateBallOpenParticlesForPokeball -AnimateBallOpenParticlesForPokeball: @ 0x08075E00 - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r4, #0 - str r4, [sp] - bl AnimateBallOpenParticles - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end AnimateBallOpenParticlesForPokeball - - thumb_func_start LaunchBallFadeMonTaskForPokeball -LaunchBallFadeMonTaskForPokeball: @ 0x08075E28 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r3, #0 - bl LaunchBallFadeMonTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - thumb_func_end LaunchBallFadeMonTaskForPokeball - - thumb_func_start CreatePokeballSpriteToReleaseMon -CreatePokeballSpriteToReleaseMon: @ 0x08075E40 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - adds r5, r0, #0 - mov sb, r2 - mov sl, r3 - ldr r6, [sp, #0x28] - ldr r4, [sp, #0x2c] - ldr r0, [sp, #0x30] - ldr r2, [sp, #0x38] - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp] - mov r1, sb - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sb, r1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov sl, r3 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - lsls r0, r2, #0x10 - lsrs r7, r0, #0x10 - ldr r0, _08075F18 - bl LoadCompressedSpriteSheetUsingHeap - ldr r0, _08075F1C - bl LoadCompressedSpritePaletteUsingHeap - ldr r0, _08075F20 - mov r1, sb - mov r2, sl - adds r3, r4, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08075F24 - mov r8, r1 - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - adds r2, r4, r1 - strh r5, [r2, #0x2e] - lsls r1, r5, #4 - adds r1, r1, r5 - lsls r1, r1, #2 - add r1, r8 - ldrh r0, [r1, #0x20] - strh r0, [r2, #0x38] - ldrh r0, [r1, #0x22] - strh r0, [r2, #0x3a] - mov r3, sb - strh r3, [r1, #0x20] - mov r0, sl - strh r0, [r1, #0x22] - strh r7, [r1, #0x3c] - mov r3, sp - ldrh r3, [r3, #4] - strh r3, [r2, #0x30] - mov r0, sp - ldrh r0, [r0] - strh r0, [r2, #0x32] - mov r3, sp - ldrh r3, [r3, #0x34] - strh r3, [r2, #0x34] - ldr r3, [sp, #0x34] - lsrs r0, r3, #0x10 - strh r0, [r2, #0x36] - movs r0, #3 - ands r6, r0 - lsls r6, r6, #2 - ldrb r3, [r2, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r6 - strb r0, [r2, #5] - movs r0, #0x1c - add r8, r0 - add r4, r8 - ldr r0, _08075F28 - str r0, [r4] - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08075F18: .4byte gUnknown_82FCE0C -_08075F1C: .4byte gUnknown_82FCE6C -_08075F20: .4byte gUnknown_82FCF94 -_08075F24: .4byte gUnknown_20205AC -_08075F28: .4byte sub_08075F2C - thumb_func_end CreatePokeballSpriteToReleaseMon - - thumb_func_start sub_08075F2C -sub_08075F2C: @ 0x08075F2C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - ldrh r1, [r6, #0x30] - movs r2, #0x30 - ldrsh r0, [r6, r2] - cmp r0, #0 - bne _08075FD8 - ldrh r0, [r6, #0x2e] - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldrh r0, [r6, #0x32] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldrh r4, [r6, #0x34] - ldrh r0, [r6, #0x36] - lsls r0, r0, #0x10 - orrs r4, r0 - adds r0, r6, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _08075F66 - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - b _08075F68 -_08075F66: - movs r5, #0 -_08075F68: - adds r0, r6, #0 - movs r1, #1 - bl StartSpriteAnim - ldrh r0, [r6, #0x20] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r6, #0x22] - subs r1, #5 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrb r2, [r6, #5] - lsls r2, r2, #0x1c - lsrs r2, r2, #0x1e - adds r3, r5, #0 - bl AnimateBallOpenParticlesForPokeball - movs r0, #1 - mov r1, r8 - adds r2, r4, #0 - bl LaunchBallFadeMonTaskForPokeball - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r5, #0 - strh r0, [r6, #0x30] - ldr r0, _08075FD0 - str r0, [r6, #0x1c] - ldr r0, _08075FD4 - lsls r4, r7, #4 - adds r4, r4, r7 - lsls r4, r4, #2 - adds r4, r4, r0 - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAffineAnim - adds r0, r4, #0 - bl AnimateSprite - movs r0, #0x80 - lsls r0, r0, #5 - strh r0, [r4, #0x30] - strh r5, [r6, #0x3c] - b _08075FDC - .align 2, 0 -_08075FD0: .4byte sub_08075FE8 -_08075FD4: .4byte gUnknown_20205AC -_08075FD8: - subs r0, r1, #1 - strh r0, [r6, #0x30] -_08075FDC: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08075F2C - - thumb_func_start sub_08075FE8 -sub_08075FE8: @ 0x08075FE8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r4, r0, #0 - movs r0, #0 - mov ip, r0 - movs r7, #0 - ldrh r0, [r4, #0x2e] - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08076018 - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] -_08076018: - ldr r1, _080760AC - lsls r2, r6, #4 - adds r0, r2, r6 - lsls r0, r0, #2 - adds r5, r0, r1 - adds r0, r5, #0 - adds r0, #0x3f - ldrb r0, [r0] - lsls r0, r0, #0x1a - mov r8, r2 - cmp r0, #0 - bge _0807603C - adds r0, r5, #0 - movs r1, #0 - bl StartSpriteAffineAnim - movs r1, #1 - mov ip, r1 -_0807603C: - movs r2, #0x38 - ldrsh r0, [r4, r2] - movs r3, #0x20 - ldrsh r1, [r4, r3] - subs r0, r0, r1 - movs r1, #0x3c - ldrsh r2, [r4, r1] - muls r0, r2, r0 - cmp r0, #0 - bge _08076052 - adds r0, #0x7f -_08076052: - asrs r0, r0, #7 - ldrh r3, [r4, #0x20] - adds r0, r0, r3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - movs r1, #0x3a - ldrsh r0, [r4, r1] - movs r3, #0x22 - ldrsh r1, [r4, r3] - subs r0, r0, r1 - muls r0, r2, r0 - cmp r0, #0 - bge _08076070 - adds r0, #0x7f -_08076070: - asrs r0, r0, #7 - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - mov r2, sb - strh r2, [r5, #0x20] - strh r0, [r5, #0x22] - ldrh r2, [r4, #0x3c] - movs r3, #0x3c - ldrsh r0, [r4, r3] - cmp r0, #0x7f - bgt _080760B4 - ldr r1, _080760B0 - lsls r0, r2, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bge _08076098 - adds r0, #7 -_08076098: - asrs r0, r0, #3 - rsbs r0, r0, #0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r2, #4 - strh r1, [r4, #0x3c] - strh r0, [r5, #0x24] - strh r0, [r5, #0x26] - b _080760C2 - .align 2, 0 -_080760AC: .4byte gUnknown_20205AC -_080760B0: .4byte gUnknown_82FA8CC -_080760B4: - ldrh r0, [r4, #0x38] - strh r0, [r5, #0x20] - ldrh r0, [r4, #0x3a] - strh r0, [r5, #0x22] - strh r7, [r5, #0x24] - strh r7, [r5, #0x26] - movs r7, #1 -_080760C2: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08076116 - mov r2, ip - cmp r2, #0 - beq _08076116 - cmp r7, #0 - beq _08076116 - ldr r1, _08076100 - mov r3, r8 - adds r0, r3, r6 - lsls r0, r0, #2 - adds r2, r0, r1 - movs r0, #0x3c - ldrsh r1, [r2, r0] - movs r0, #0xce - lsls r0, r0, #1 - cmp r1, r0 - bne _08076104 - ldrh r1, [r2, #0x3c] - adds r0, r2, #0 - movs r2, #1 - movs r3, #0 - bl DoMonFrontSpriteAnimation - b _08076110 - .align 2, 0 -_08076100: .4byte gUnknown_20205AC -_08076104: - ldrh r1, [r2, #0x3c] - adds r0, r2, #0 - movs r2, #0 - movs r3, #0 - bl DoMonFrontSpriteAnimation -_08076110: - adds r0, r4, #0 - bl DestroySpriteAndFreeResources -_08076116: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08075FE8 - - thumb_func_start sub_08076124 -sub_08076124: @ 0x08076124 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sl, r0 - adds r6, r2, #0 - mov r8, r3 - ldr r5, [sp, #0x20] - ldr r4, [sp, #0x24] - ldr r0, [sp, #0x28] - mov sb, r0 - mov r0, sl - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov r1, r8 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r0, sb - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldr r0, _080761C8 - bl LoadCompressedSpriteSheetUsingHeap - ldr r0, _080761CC - bl LoadCompressedSpritePaletteUsingHeap - ldr r0, _080761D0 - adds r1, r6, #0 - mov r2, r8 - adds r3, r4, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r6, _080761D4 - lsls r3, r0, #4 - adds r3, r3, r0 - lsls r3, r3, #2 - adds r2, r3, r6 - mov r1, sl - strh r1, [r2, #0x2e] - mov r4, sb - strh r4, [r2, #0x30] - strh r7, [r2, #0x32] - mov r1, sp - ldrh r1, [r1, #0x2c] - strh r1, [r2, #0x34] - ldr r4, [sp, #0x2c] - lsrs r1, r4, #0x10 - strh r1, [r2, #0x36] - movs r1, #3 - ands r5, r1 - lsls r5, r5, #2 - ldrb r4, [r2, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r4 - orrs r1, r5 - strb r1, [r2, #5] - adds r6, #0x1c - adds r3, r3, r6 - ldr r1, _080761D8 - str r1, [r3] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080761C8: .4byte gUnknown_82FCE0C -_080761CC: .4byte gUnknown_82FCE6C -_080761D0: .4byte gUnknown_82FCF94 -_080761D4: .4byte gUnknown_20205AC -_080761D8: .4byte sub_080761DC - thumb_func_end sub_08076124 - - thumb_func_start sub_080761DC -sub_080761DC: @ 0x080761DC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - ldrh r1, [r4, #0x30] - movs r2, #0x30 - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _08076274 - ldrh r0, [r4, #0x2e] - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldrh r0, [r4, #0x32] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldrh r5, [r4, #0x34] - ldrh r0, [r4, #0x36] - lsls r0, r0, #0x10 - orrs r5, r0 - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _08076216 - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - b _08076218 -_08076216: - movs r6, #0 -_08076218: - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAnim - ldrh r0, [r4, #0x20] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #0x22] - subs r1, #5 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrb r2, [r4, #5] - lsls r2, r2, #0x1c - lsrs r2, r2, #0x1e - adds r3, r6, #0 - bl AnimateBallOpenParticlesForPokeball - movs r0, #1 - mov r1, r8 - adds r2, r5, #0 - bl LaunchBallFadeMonTaskForPokeball - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r5, #0 - strh r0, [r4, #0x30] - ldr r0, _0807626C - str r0, [r4, #0x1c] - lsls r4, r7, #4 - adds r4, r4, r7 - lsls r4, r4, #2 - ldr r0, _08076270 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #2 - bl StartSpriteAffineAnim - adds r0, r4, #0 - bl AnimateSprite - strh r5, [r4, #0x30] - b _08076278 - .align 2, 0 -_0807626C: .4byte sub_08076284 -_08076270: .4byte gUnknown_20205AC -_08076274: - subs r0, r1, #1 - strh r0, [r4, #0x30] -_08076278: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080761DC - - thumb_func_start sub_08076284 -sub_08076284: @ 0x08076284 - push {r4, r5, lr} - adds r5, r0, #0 - ldrh r0, [r5, #0x38] - adds r0, #1 - strh r0, [r5, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xb - bne _0807629C - movs r0, #0x3c - bl sub_080A306C -_0807629C: - ldrh r1, [r5, #0x2e] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _080762D8 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, r0, r2 - adds r0, r4, #0 - adds r0, #0x3f - ldrb r0, [r0] - lsls r0, r0, #0x1a - cmp r0, #0 - bge _080762E0 - adds r0, r5, #0 - movs r1, #2 - bl StartSpriteAnim - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - movs r0, #0 - strh r0, [r5, #0x38] - ldr r0, _080762DC - str r0, [r5, #0x1c] - b _080762F0 - .align 2, 0 -_080762D8: .4byte gUnknown_20205AC -_080762DC: .4byte sub_080762F8 -_080762E0: - ldrh r0, [r4, #0x30] - adds r0, #0x60 - strh r0, [r4, #0x30] - movs r1, #0x30 - ldrsh r0, [r4, r1] - rsbs r0, r0, #0 - asrs r0, r0, #8 - strh r0, [r4, #0x26] -_080762F0: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08076284 - - thumb_func_start sub_080762F8 -sub_080762F8: @ 0x080762F8 - push {lr} - adds r2, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0807630C - ldr r0, _08076310 - str r0, [r2, #0x1c] -_0807630C: - pop {r0} - bx r0 - .align 2, 0 -_08076310: .4byte sub_08007140 - thumb_func_end sub_080762F8 - - thumb_func_start sub_08076314 -sub_08076314: @ 0x08076314 - push {lr} - bl DestroySpriteAndFreeResources - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08076314 - - thumb_func_start sub_08076320 -sub_08076320: @ 0x08076320 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - ldr r0, _080763A0 - adds r0, r5, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r6, _080763A4 - adds r4, r0, r6 - movs r1, #0 - movs r0, #5 - strh r0, [r4, #0x2e] - strh r1, [r4, #0x30] - movs r0, #0x73 - strh r0, [r4, #0x24] - strh r1, [r4, #0x26] - ldr r0, _080763A8 - str r0, [r4, #0x1c] - adds r0, r5, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0807636E - ldrh r0, [r4, #0x2e] - rsbs r0, r0, #0 - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x30] - rsbs r0, r0, #0 - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x24] - rsbs r0, r0, #0 - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x26] - rsbs r0, r0, #0 - strh r0, [r4, #0x26] -_0807636E: - movs r0, #0x38 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r6, #0 - adds r1, #0x1c - adds r1, r0, r1 - adds r0, r0, r6 - ldr r1, [r1] - bl _call_via_r1 - adds r0, r5, #0 - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _08076398 - ldr r0, _080763AC - str r0, [r4, #0x1c] -_08076398: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080763A0: .4byte gUnknown_3005AD0 -_080763A4: .4byte gUnknown_20205AC -_080763A8: .4byte sub_080763D4 -_080763AC: .4byte sub_080763B0 - thumb_func_end sub_08076320 - - thumb_func_start sub_080763B0 -sub_080763B0: @ 0x080763B0 - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0x30] - adds r0, #1 - strh r0, [r1, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x14 - bne _080763CA - movs r0, #0 - strh r0, [r1, #0x30] - ldr r0, _080763D0 - str r0, [r1, #0x1c] -_080763CA: - pop {r0} - bx r0 - .align 2, 0 -_080763D0: .4byte sub_080763D4 - thumb_func_end sub_080763B0 - - thumb_func_start sub_080763D4 -sub_080763D4: @ 0x080763D4 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x24] - ldrh r1, [r2, #0x2e] - subs r0, r0, r1 - strh r0, [r2, #0x24] - ldrh r0, [r2, #0x26] - ldrh r1, [r2, #0x30] - subs r0, r0, r1 - strh r0, [r2, #0x26] - ldr r0, [r2, #0x24] - cmp r0, #0 - bne _080763F2 - ldr r0, _080763F8 - str r0, [r2, #0x1c] -_080763F2: - pop {r0} - bx r0 - .align 2, 0 -_080763F8: .4byte sub_08007140 - thumb_func_end sub_080763D4 - - thumb_func_start sub_080763FC -sub_080763FC: @ 0x080763FC - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r5, _08076434 - adds r0, r5, #0 - bl CreateInvisibleSpriteWithCallback - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08076438 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r3, r1, r2 - movs r0, #1 - strh r0, [r3, #0x2e] - ldr r0, _0807643C - adds r4, r4, r0 - ldrb r0, [r4] - strh r0, [r3, #0x30] - adds r2, #0x1c - adds r1, r1, r2 - str r5, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08076434: .4byte SpriteCB_HitAnimHealthoxEffect -_08076438: .4byte gUnknown_20205AC -_0807643C: .4byte gUnknown_3005AD0 - thumb_func_end sub_080763FC - - thumb_func_start SpriteCB_HitAnimHealthoxEffect -SpriteCB_HitAnimHealthoxEffect: @ 0x08076440 - push {lr} - adds r3, r0, #0 - ldrh r1, [r3, #0x30] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _0807647C - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r2 - ldrh r0, [r3, #0x2e] - movs r2, #0 - strh r0, [r1, #0x26] - ldrh r0, [r3, #0x2e] - rsbs r0, r0, #0 - strh r0, [r3, #0x2e] - ldrh r0, [r3, #0x32] - adds r0, #1 - strh r0, [r3, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x15 - bne _08076478 - strh r2, [r1, #0x24] - strh r2, [r1, #0x26] - adds r0, r3, #0 - bl DestroySprite -_08076478: - pop {r0} - bx r0 - .align 2, 0 -_0807647C: .4byte gUnknown_20205AC - thumb_func_end SpriteCB_HitAnimHealthoxEffect - - thumb_func_start LoadBallGfx -LoadBallGfx: @ 0x08076480 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080764DC - lsls r6, r4, #3 - adds r5, r6, r0 - ldrh r0, [r5, #6] - bl GetSpriteTileStartByTag - lsls r0, r0, #0x10 - ldr r1, _080764E0 - cmp r0, r1 - bne _080764A8 - adds r0, r5, #0 - bl LoadCompressedSpriteSheetUsingHeap - ldr r0, _080764E4 - adds r0, r6, r0 - bl LoadCompressedSpritePaletteUsingHeap -_080764A8: - cmp r4, #6 - beq _080764D4 - cmp r4, #6 - blt _080764B8 - cmp r4, #0xb - bgt _080764B8 - cmp r4, #0xa - bge _080764D4 -_080764B8: - ldr r1, _080764DC - lsls r0, r4, #3 - adds r0, r0, r1 - ldrh r0, [r0, #6] - bl GetSpriteTileStartByTag - adds r1, r0, #0 - lsls r1, r1, #0x10 - ldr r0, _080764E8 - lsrs r1, r1, #0xb - ldr r2, _080764EC - adds r1, r1, r2 - bl sub_0803437C -_080764D4: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080764DC: .4byte gUnknown_82FCE0C -_080764E0: .4byte 0xFFFF0000 -_080764E4: .4byte gUnknown_82FCE6C -_080764E8: .4byte gUnknown_8C02308 -_080764EC: .4byte 0x06010100 - thumb_func_end LoadBallGfx - - thumb_func_start FreeBallGfx -FreeBallGfx: @ 0x080764F0 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - ldr r0, _08076514 - lsrs r4, r4, #0x15 - adds r0, r4, r0 - ldrh r0, [r0, #6] - bl FreeSpriteTilesByTag - ldr r0, _08076518 - adds r4, r4, r0 - ldrh r0, [r4, #4] - bl FreeSpritePaletteByTag - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08076514: .4byte gUnknown_82FCE0C -_08076518: .4byte gUnknown_82FCE6C - thumb_func_end FreeBallGfx - - thumb_func_start GetBattlerPokeballItemId -GetBattlerPokeballItemId: @ 0x0807651C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08076548 - ldr r1, _08076540 - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08076544 - b _08076556 - .align 2, 0 -_08076540: .4byte gUnknown_2023D12 -_08076544: .4byte gUnknown_20243E8 -_08076548: - ldr r1, _08076568 - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0807656C -_08076556: - adds r0, r0, r1 - movs r1, #0x26 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08076568: .4byte gUnknown_2023D12 -_0807656C: .4byte gUnknown_2024190 - thumb_func_end GetBattlerPokeballItemId - - thumb_func_start CheckForFlashMemory -CheckForFlashMemory: @ 0x08076570 - push {lr} - bl IdentifyFlash - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0807658C - ldr r1, _08076588 - movs r0, #1 - str r0, [r1] - bl sub_08000800 - b _08076592 - .align 2, 0 -_08076588: .4byte gUnknown_3005AE8 -_0807658C: - ldr r1, _08076598 - movs r0, #0 - str r0, [r1] -_08076592: - pop {r0} - bx r0 - .align 2, 0 -_08076598: .4byte gUnknown_3005AE8 - thumb_func_end CheckForFlashMemory - - thumb_func_start sub_0807659C -sub_0807659C: @ 0x0807659C - push {lr} - sub sp, #4 - mov r1, sp - movs r0, #0 - strh r0, [r1] - ldr r1, _080765B8 - ldr r2, _080765BC - mov r0, sp - bl CpuSet - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_080765B8: .4byte gUnknown_20246F8 -_080765BC: .4byte 0x010007D6 - thumb_func_end sub_0807659C - - thumb_func_start sub_080765C0 -sub_080765C0: @ 0x080765C0 - push {lr} - sub sp, #4 - mov r1, sp - movs r0, #0 - strh r0, [r1] - ldr r1, _080765DC - ldr r2, _080765E0 - mov r0, sp - bl CpuSet - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_080765DC: .4byte gUnknown_20256A4 -_080765E0: .4byte 0x01001F04 - thumb_func_end sub_080765C0 - - thumb_func_start SetSaveBlocksPointers -SetSaveBlocksPointers: @ 0x080765E4 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r5, _0807661C - bl Random - adds r4, r4, r0 - movs r0, #0x7c - ands r4, r0 - ldr r1, _08076620 - ldr r0, _08076624 - adds r0, r4, r0 - str r0, [r1] - ldr r0, _08076628 - adds r0, r4, r0 - str r0, [r5] - ldr r1, _0807662C - ldr r0, _08076630 - adds r4, r4, r0 - str r4, [r1] - bl SetBagItemsPointers - bl SetDecorationInventoriesPointers - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0807661C: .4byte gUnknown_3005AEC -_08076620: .4byte gUnknown_3005AF0 -_08076624: .4byte gUnknown_20246F8 -_08076628: .4byte gUnknown_20256A4 -_0807662C: .4byte gUnknown_3005AF4 -_08076630: .4byte gUnknown_20294AC - thumb_func_end SetSaveBlocksPointers - - thumb_func_start MoveSaveBlocks_ResetHeap -MoveSaveBlocks_ResetHeap: @ 0x08076634 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - ldr r5, _08076700 - ldr r0, [r5, #0xc] - str r0, [sp] - ldr r1, [r5, #0x10] - str r1, [sp, #4] - movs r0, #0 - str r0, [r5, #0xc] - str r0, [r5, #0x10] - ldr r1, _08076704 - str r0, [r1] - ldr r4, _08076708 - ldr r0, _0807670C - ldr r1, [r0] - ldr r6, _08076710 - adds r0, r4, #0 - adds r2, r6, #0 - bl memcpy - ldr r1, _08076714 - mov sl, r1 - ldr r1, [r1] - ldr r7, _08076718 - ldr r0, _0807671C - adds r2, r7, #0 - bl memcpy - ldr r0, _08076720 - mov r8, r0 - ldr r1, [r0] - ldr r0, _08076724 - mov sb, r0 - ldr r0, _08076728 - mov r2, sb - bl memcpy - ldrb r1, [r4, #0xa] - ldrb r0, [r4, #0xb] - adds r1, r1, r0 - ldrb r0, [r4, #0xc] - adds r1, r1, r0 - ldrb r0, [r4, #0xd] - adds r0, r0, r1 - bl SetSaveBlocksPointers - ldr r1, _0807670C - ldr r0, [r1] - adds r1, r4, #0 - adds r2, r6, #0 - bl memcpy - mov r1, sl - ldr r0, [r1] - ldr r1, _0807671C - adds r2, r7, #0 - bl memcpy - mov r1, r8 - ldr r0, [r1] - ldr r1, _08076728 - mov r2, sb - bl memcpy - movs r1, #0xe0 - lsls r1, r1, #9 - adds r0, r4, #0 - bl InitHeap - ldr r0, [sp, #4] - str r0, [r5, #0x10] - ldr r1, [sp] - str r1, [r5, #0xc] - bl Random - adds r4, r0, #0 - bl Random - lsls r4, r4, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r4, r4, r0 - adds r0, r4, #0 - bl ApplyNewEncryptionKeyToAllEncryptedData - ldr r1, _0807670C - ldr r0, [r1] - adds r0, #0xac - str r4, [r0] - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08076700: .4byte gUnknown_3002360 -_08076704: .4byte gUnknown_203CC28 -_08076708: .4byte gUnknown_2000000 -_0807670C: .4byte gUnknown_3005AF0 -_08076710: .4byte 0x00000F2C -_08076714: .4byte gUnknown_3005AEC -_08076718: .4byte 0x00003D88 -_0807671C: .4byte gUnknown_2000F2C -_08076720: .4byte gUnknown_3005AF4 -_08076724: .4byte 0x000083D0 -_08076728: .4byte gUnknown_2004CB4 - thumb_func_end MoveSaveBlocks_ResetHeap - - thumb_func_start UseContinueGameWarp -UseContinueGameWarp: @ 0x0807672C - ldr r0, _08076738 - ldr r0, [r0] - ldrb r1, [r0, #9] - movs r0, #1 - ands r0, r1 - bx lr - .align 2, 0 -_08076738: .4byte gUnknown_3005AF0 - thumb_func_end UseContinueGameWarp - - thumb_func_start sub_0807673C -sub_0807673C: @ 0x0807673C - ldr r0, _0807674C - ldr r2, [r0] - ldrb r1, [r2, #9] - movs r0, #0xfe - ands r0, r1 - strb r0, [r2, #9] - bx lr - .align 2, 0 -_0807674C: .4byte gUnknown_3005AF0 - thumb_func_end sub_0807673C - - thumb_func_start SetContinueGameWarpStatus -SetContinueGameWarpStatus: @ 0x08076750 - ldr r0, _08076760 - ldr r2, [r0] - ldrb r1, [r2, #9] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #9] - bx lr - .align 2, 0 -_08076760: .4byte gUnknown_3005AF0 - thumb_func_end SetContinueGameWarpStatus - - thumb_func_start SetContinueGameWarpStatusToDynamicWarp -SetContinueGameWarpStatusToDynamicWarp: @ 0x08076764 - push {lr} - movs r0, #0 - bl SetContinueGameWarpToDynamicWarp - ldr r0, _0807677C - ldr r2, [r0] - ldrb r1, [r2, #9] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #9] - pop {r0} - bx r0 - .align 2, 0 -_0807677C: .4byte gUnknown_3005AF0 - thumb_func_end SetContinueGameWarpStatusToDynamicWarp - - thumb_func_start sub_08076780 -sub_08076780: @ 0x08076780 - ldr r0, _08076790 - ldr r2, [r0] - ldrb r1, [r2, #9] - movs r0, #0xfe - ands r0, r1 - strb r0, [r2, #9] - bx lr - .align 2, 0 -_08076790: .4byte gUnknown_3005AF0 - thumb_func_end sub_08076780 - - thumb_func_start SavePlayerParty -SavePlayerParty: @ 0x08076794 - push {r4, lr} - ldr r0, _080767D0 - ldr r0, [r0] - ldr r1, _080767D4 - ldrb r1, [r1] - movs r2, #0x8d - lsls r2, r2, #2 - adds r0, r0, r2 - strb r1, [r0] - movs r4, #0 -_080767A8: - ldr r0, _080767D0 - ldr r0, [r0] - movs r1, #0x64 - muls r1, r4, r1 - adds r0, r0, r1 - movs r2, #0x8e - lsls r2, r2, #2 - adds r0, r0, r2 - ldr r2, _080767D8 - adds r1, r1, r2 - movs r2, #0x64 - bl memcpy - adds r4, #1 - cmp r4, #5 - ble _080767A8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080767D0: .4byte gUnknown_3005AEC -_080767D4: .4byte gUnknown_202418D -_080767D8: .4byte gUnknown_2024190 - thumb_func_end SavePlayerParty - - thumb_func_start LoadPlayerParty -LoadPlayerParty: @ 0x080767DC - push {r4, r5, lr} - ldr r1, _08076818 - ldr r0, _0807681C - ldr r0, [r0] - movs r2, #0x8d - lsls r2, r2, #2 - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r1] - movs r4, #0 - ldr r5, _08076820 -_080767F2: - movs r0, #0x64 - adds r2, r4, #0 - muls r2, r0, r2 - adds r0, r2, r5 - ldr r1, _0807681C - ldr r1, [r1] - adds r1, r1, r2 - movs r2, #0x8e - lsls r2, r2, #2 - adds r1, r1, r2 - movs r2, #0x64 - bl memcpy - adds r4, #1 - cmp r4, #5 - ble _080767F2 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08076818: .4byte gUnknown_202418D -_0807681C: .4byte gUnknown_3005AEC -_08076820: .4byte gUnknown_2024190 - thumb_func_end LoadPlayerParty - - thumb_func_start SaveEventObjects -SaveEventObjects: @ 0x08076824 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _08076864 - mov ip, r0 - movs r5, #0xa3 - lsls r5, r5, #4 - mov r8, r5 - ldr r4, _08076868 - movs r3, #0 - movs r2, #0xf -_0807683A: - mov r6, ip - ldr r1, [r6] - adds r1, r1, r3 - add r1, r8 - adds r0, r4, #0 - ldm r0!, {r5, r6, r7} - stm r1!, {r5, r6, r7} - ldm r0!, {r5, r6, r7} - stm r1!, {r5, r6, r7} - ldm r0!, {r5, r6, r7} - stm r1!, {r5, r6, r7} - adds r4, #0x24 - adds r3, #0x24 - subs r2, #1 - cmp r2, #0 - bge _0807683A - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08076864: .4byte gUnknown_3005AEC -_08076868: .4byte gUnknown_2036FF0 - thumb_func_end SaveEventObjects - - thumb_func_start LoadEventObjects -LoadEventObjects: @ 0x0807686C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _080768AC - mov ip, r0 - movs r5, #0xa3 - lsls r5, r5, #4 - mov r8, r5 - ldr r4, _080768B0 - movs r3, #0 - movs r2, #0xf -_08076882: - mov r6, ip - ldr r1, [r6] - adds r1, r1, r3 - adds r0, r4, #0 - add r1, r8 - ldm r1!, {r5, r6, r7} - stm r0!, {r5, r6, r7} - ldm r1!, {r5, r6, r7} - stm r0!, {r5, r6, r7} - ldm r1!, {r5, r6, r7} - stm r0!, {r5, r6, r7} - adds r4, #0x24 - adds r3, #0x24 - subs r2, #1 - cmp r2, #0 - bge _08076882 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080768AC: .4byte gUnknown_3005AEC -_080768B0: .4byte gUnknown_2036FF0 - thumb_func_end LoadEventObjects - - thumb_func_start SaveSerializedGame -SaveSerializedGame: @ 0x080768B4 - push {lr} - bl SavePlayerParty - bl SaveEventObjects - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SaveSerializedGame - - thumb_func_start LoadSerializedGame -LoadSerializedGame: @ 0x080768C4 - push {lr} - bl LoadPlayerParty - bl LoadEventObjects - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LoadSerializedGame - - thumb_func_start LoadPlayerBag -LoadPlayerBag: @ 0x080768D4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - movs r2, #0 - ldr r0, _080769D4 - mov ip, r0 - ldr r1, _080769D8 - mov sl, r1 - ldr r5, _080769DC - movs r3, #0xac - lsls r3, r3, #3 - ldr r4, _080769E0 -_080768F0: - lsls r0, r2, #2 - ldr r1, [r5] - adds r1, r1, r3 - adds r1, r1, r0 - ldr r0, [r1] - stm r4!, {r0} - adds r2, #1 - cmp r2, #0x1d - ble _080768F0 - movs r2, #0 - ldr r0, _080769E0 - ldr r5, _080769DC - movs r3, #0xbb - lsls r3, r3, #3 - adds r4, r0, #0 - adds r4, #0x78 -_08076910: - lsls r0, r2, #2 - ldr r1, [r5] - adds r1, r1, r3 - adds r1, r1, r0 - ldr r0, [r1] - stm r4!, {r0} - adds r2, #1 - cmp r2, #0x1d - ble _08076910 - movs r2, #0 - ldr r0, _080769E0 - ldr r5, _080769DC - movs r3, #0xca - lsls r3, r3, #3 - adds r4, r0, #0 - adds r4, #0xf0 -_08076930: - lsls r0, r2, #2 - ldr r1, [r5] - adds r1, r1, r3 - adds r1, r1, r0 - ldr r0, [r1] - stm r4!, {r0} - adds r2, #1 - cmp r2, #0xf - ble _08076930 - movs r2, #0 - ldr r0, _080769E0 - ldr r5, _080769DC - movs r6, #0x98 - lsls r6, r6, #1 - adds r4, r0, r6 - movs r3, #0xd2 - lsls r3, r3, #3 -_08076952: - lsls r0, r2, #2 - ldr r1, [r5] - adds r1, r1, r3 - adds r1, r1, r0 - ldr r0, [r1] - stm r4!, {r0} - adds r2, #1 - cmp r2, #0x3f - ble _08076952 - movs r2, #0 - ldr r0, _080769E0 - ldr r5, _080769DC - movs r7, #0x8c - lsls r7, r7, #2 - adds r4, r0, r7 - movs r3, #0xf2 - lsls r3, r3, #3 -_08076974: - lsls r0, r2, #2 - ldr r1, [r5] - adds r1, r1, r3 - adds r1, r1, r0 - ldr r0, [r1] - stm r4!, {r0} - adds r2, #1 - cmp r2, #0x2d - ble _08076974 - ldr r0, _080769E0 - ldr r1, _080769DC - mov r8, r1 - movs r5, #0xba - lsls r5, r5, #2 - adds r4, r0, r5 - movs r3, #0 - ldr r6, _080769E4 - mov sb, r6 - movs r2, #0xf -_0807699A: - mov r7, r8 - ldr r1, [r7] - adds r1, r1, r3 - adds r0, r4, #0 - add r1, sb - ldm r1!, {r5, r6, r7} - stm r0!, {r5, r6, r7} - ldm r1!, {r5, r6, r7} - stm r0!, {r5, r6, r7} - ldm r1!, {r5, r6, r7} - stm r0!, {r5, r6, r7} - adds r4, #0x24 - adds r3, #0x24 - subs r2, #1 - cmp r2, #0 - bge _0807699A - mov r1, sl - ldr r0, [r1] - adds r0, #0xac - ldr r0, [r0] - mov r5, ip - str r0, [r5] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080769D4: .4byte gUnknown_2031E24 -_080769D8: .4byte gUnknown_3005AF0 -_080769DC: .4byte gUnknown_3005AEC -_080769E0: .4byte gUnknown_20318FC -_080769E4: .4byte 0x00002BE0 - thumb_func_end LoadPlayerBag - - thumb_func_start SavePlayerBag -SavePlayerBag: @ 0x080769E8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - movs r2, #0 - ldr r0, _08076AF4 - mov r8, r0 - ldr r1, _08076AF8 - mov ip, r1 - ldr r5, _08076AFC - movs r3, #0xac - lsls r3, r3, #3 - ldr r4, _08076B00 -_08076A04: - ldr r0, [r5] - lsls r1, r2, #2 - adds r0, r0, r3 - adds r0, r0, r1 - ldm r4!, {r1} - str r1, [r0] - adds r2, #1 - cmp r2, #0x1d - ble _08076A04 - movs r2, #0 - ldr r5, _08076AFC - movs r4, #0xbb - lsls r4, r4, #3 - ldr r0, _08076B00 - adds r3, r0, #0 - adds r3, #0x78 -_08076A24: - ldr r0, [r5] - lsls r1, r2, #2 - adds r0, r0, r4 - adds r0, r0, r1 - ldm r3!, {r1} - str r1, [r0] - adds r2, #1 - cmp r2, #0x1d - ble _08076A24 - movs r2, #0 - ldr r5, _08076AFC - movs r4, #0xca - lsls r4, r4, #3 - ldr r0, _08076B00 - adds r3, r0, #0 - adds r3, #0xf0 -_08076A44: - ldr r0, [r5] - lsls r1, r2, #2 - adds r0, r0, r4 - adds r0, r0, r1 - ldm r3!, {r1} - str r1, [r0] - adds r2, #1 - cmp r2, #0xf - ble _08076A44 - movs r2, #0 - ldr r5, _08076AFC - movs r4, #0xd2 - lsls r4, r4, #3 - ldr r0, _08076B00 - movs r6, #0x98 - lsls r6, r6, #1 - adds r3, r0, r6 -_08076A66: - ldr r0, [r5] - lsls r1, r2, #2 - adds r0, r0, r4 - adds r0, r0, r1 - ldm r3!, {r1} - str r1, [r0] - adds r2, #1 - cmp r2, #0x3f - ble _08076A66 - movs r2, #0 - ldr r5, _08076AFC - movs r4, #0xf2 - lsls r4, r4, #3 - ldr r0, _08076B00 - movs r7, #0x8c - lsls r7, r7, #2 - adds r3, r0, r7 -_08076A88: - ldr r0, [r5] - lsls r1, r2, #2 - adds r0, r0, r4 - adds r0, r0, r1 - ldm r3!, {r1} - str r1, [r0] - adds r2, #1 - cmp r2, #0x2d - ble _08076A88 - ldr r0, _08076AFC - mov sb, r0 - ldr r1, _08076B04 - mov sl, r1 - ldr r4, _08076B00 - movs r3, #0 - movs r2, #0xf -_08076AA8: - mov r5, sb - ldr r1, [r5] - adds r1, r1, r3 - add r1, sl - movs r6, #0xba - lsls r6, r6, #2 - adds r0, r4, r6 - ldm r0!, {r5, r6, r7} - stm r1!, {r5, r6, r7} - ldm r0!, {r5, r6, r7} - stm r1!, {r5, r6, r7} - ldm r0!, {r5, r6, r7} - stm r1!, {r5, r6, r7} - adds r4, #0x24 - adds r3, #0x24 - subs r2, #1 - cmp r2, #0 - bge _08076AA8 - mov r7, r8 - ldr r0, [r7] - adds r0, #0xac - ldr r4, [r0] - mov r2, ip - ldr r1, [r2] - str r1, [r0] - adds r0, r4, #0 - bl ApplyNewEncryptionKeyToBagItems - ldr r0, [r7] - adds r0, #0xac - str r4, [r0] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08076AF4: .4byte gUnknown_3005AF0 -_08076AF8: .4byte gUnknown_2031E24 -_08076AFC: .4byte gUnknown_3005AEC -_08076B00: .4byte gUnknown_20318FC -_08076B04: .4byte 0x00002BE0 - thumb_func_end SavePlayerBag - - thumb_func_start ApplyNewEncryptionKeyToHword -ApplyNewEncryptionKeyToHword: @ 0x08076B08 - ldr r2, _08076B1C - ldr r2, [r2] - adds r2, #0xac - ldr r2, [r2] - ldrh r3, [r0] - eors r2, r3 - eors r2, r1 - strh r2, [r0] - bx lr - .align 2, 0 -_08076B1C: .4byte gUnknown_3005AF0 - thumb_func_end ApplyNewEncryptionKeyToHword - - thumb_func_start ApplyNewEncryptionKeyToWord -ApplyNewEncryptionKeyToWord: @ 0x08076B20 - ldr r2, _08076B34 - ldr r3, [r2] - adds r3, #0xac - ldr r2, [r0] - ldr r3, [r3] - eors r2, r3 - eors r2, r1 - str r2, [r0] - bx lr - .align 2, 0 -_08076B34: .4byte gUnknown_3005AF0 - thumb_func_end ApplyNewEncryptionKeyToWord - - thumb_func_start ApplyNewEncryptionKeyToAllEncryptedData -ApplyNewEncryptionKeyToAllEncryptedData: @ 0x08076B38 - push {r4, r5, lr} - adds r4, r0, #0 - bl ApplyNewEncryptionKeyToGameStats - adds r0, r4, #0 - bl ApplyNewEncryptionKeyToBagItems_ - adds r0, r4, #0 - bl ApplyNewEncryptionKeyToBerryPowder - ldr r5, _08076B70 - ldr r0, [r5] - movs r1, #0x92 - lsls r1, r1, #3 - adds r0, r0, r1 - adds r1, r4, #0 - bl ApplyNewEncryptionKeyToWord - ldr r0, [r5] - ldr r1, _08076B74 - adds r0, r0, r1 - adds r1, r4, #0 - bl ApplyNewEncryptionKeyToHword - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08076B70: .4byte gUnknown_3005AEC -_08076B74: .4byte 0x00000494 - thumb_func_end ApplyNewEncryptionKeyToAllEncryptedData - - thumb_func_start sub_08076B78 -sub_08076B78: @ 0x08076B78 - push {r4, lr} - adds r4, r0, #0 - adds r3, r1, #0 - ldr r0, _08076B98 - ldrb r0, [r0] - cmp r0, #0x1d - beq _08076B9C - lsls r2, r3, #0x10 - lsrs r2, r2, #0x10 - movs r0, #0 - adds r1, r4, #0 - bl SendBlock - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _08076BAA - .align 2, 0 -_08076B98: .4byte gUnknown_20228E0 -_08076B9C: - ldr r0, _08076BB0 - ldrb r0, [r0] - movs r1, #0x54 - adds r2, r4, #0 - bl rfu_NI_setSendData - movs r0, #1 -_08076BAA: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08076BB0: .4byte gUnknown_30041E0 - thumb_func_end sub_08076B78 - - thumb_func_start sub_08076BB4 -sub_08076BB4: @ 0x08076BB4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_0800A09C - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08076BB4 - - thumb_func_start sub_08076BC4 -sub_08076BC4: @ 0x08076BC4 - push {r4, lr} - ldr r0, _08076BE8 - ldrb r0, [r0] - cmp r0, #0x1d - bne _08076BF8 - ldr r4, _08076BEC - ldr r0, _08076BF0 - ldrb r0, [r0] - bl sub_0800E340 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r0, [r0] - ldrh r0, [r0] - cmp r0, #0 - bne _08076BF4 - movs r0, #1 - b _08076C00 - .align 2, 0 -_08076BE8: .4byte gUnknown_20228E0 -_08076BEC: .4byte gUnknown_3007620 -_08076BF0: .4byte gUnknown_30041E0 -_08076BF4: - movs r0, #0 - b _08076C00 -_08076BF8: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_08076C00: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08076BC4 - - thumb_func_start sub_08076C08 -sub_08076C08: @ 0x08076C08 - push {lr} - bl GetBlockReceivedStatus - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08076C08 - - thumb_func_start sub_08076C18 -sub_08076C18: @ 0x08076C18 - push {lr} - bl sub_08076C68 - cmp r0, #0 - beq _08076C34 - ldr r0, _08076C30 - ldrb r1, [r0] - movs r0, #0xc - bl rfu_clearSlot - b _08076C38 - .align 2, 0 -_08076C30: .4byte gUnknown_30041E0 -_08076C34: - bl ResetBlockReceivedFlags -_08076C38: - pop {r0} - bx r0 - thumb_func_end sub_08076C18 - - thumb_func_start sub_08076C3C -sub_08076C3C: @ 0x08076C3C - push {r4, lr} - adds r4, r0, #0 - bl sub_08076C68 - cmp r0, #0 - beq _08076C58 - ldr r0, _08076C54 - ldrb r1, [r0] - movs r0, #0xc - bl rfu_clearSlot - b _08076C60 - .align 2, 0 -_08076C54: .4byte gUnknown_30041E0 -_08076C58: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl ResetBlockReceivedFlag -_08076C60: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08076C3C - - thumb_func_start sub_08076C68 -sub_08076C68: @ 0x08076C68 - push {lr} - ldr r0, _08076C80 - ldrb r0, [r0] - cmp r0, #0 - beq _08076C88 - ldr r0, _08076C84 - ldrb r0, [r0] - cmp r0, #0x1d - bne _08076C88 - movs r0, #1 - b _08076C8A - .align 2, 0 -_08076C80: .4byte gUnknown_300319C -_08076C84: .4byte gUnknown_20228E0 -_08076C88: - movs r0, #0 -_08076C8A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08076C68 - - thumb_func_start sub_08076C90 -sub_08076C90: @ 0x08076C90 - push {lr} - bl sub_0800A8D4 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08076C90 - - thumb_func_start sub_08076C9C -sub_08076C9C: @ 0x08076C9C - push {lr} - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08076C9C - - thumb_func_start sub_08076CAC -sub_08076CAC: @ 0x08076CAC - push {r4, r5, lr} - sub sp, #0xc - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetTasks - bl ResetPaletteFade - ldr r2, _08076D9C - ldrb r0, [r2, #8] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #8] - ldr r0, _08076DA0 - bl SetVBlankCallback - ldr r4, _08076DA4 - adds r0, r4, #0 - movs r1, #0xf0 - movs r2, #0x14 - bl LoadPalette - adds r0, r4, #0 - movs r1, #0xd0 - movs r2, #0x14 - bl LoadPalette - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _08076DA8 - movs r0, #0 - movs r2, #4 - bl InitBgsFromTemplates - ldr r0, _08076DAC - ldr r1, [r0] - movs r0, #0x8f - lsls r0, r0, #4 - adds r1, r1, r0 - movs r0, #1 - bl SetBgTilemapBuffer - ldr r0, _08076DB0 - bl InitWindows - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08076D94 - bl sub_08004480 - movs r5, #0 -_08076D18: - lsls r4, r5, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl ClearWindowTilemap - adds r0, r4, #0 - movs r1, #0 - bl FillWindowPixelBuffer - adds r5, #1 - cmp r5, #0x11 - bls _08076D18 - movs r0, #0x1e - str r0, [sp] - movs r0, #0x14 - str r0, [sp, #4] - movs r0, #0xf - str r0, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect - movs r0, #0 - movs r1, #0x14 - movs r2, #0xc0 - bl LoadUserWindowBorderGfx_ - movs r0, #2 - movs r1, #1 - movs r2, #0xe0 - bl LoadUserWindowBorderGfx - bl LoadMonIconPalettes - ldr r2, _08076DAC - ldr r0, [r2] - adds r0, #0x69 - movs r1, #0 - strb r1, [r0] - ldr r0, [r2] - adds r0, #0x6f - strb r1, [r0] - ldr r0, [r2] - adds r0, #0x70 - strb r1, [r0] - ldr r0, [r2] - adds r0, #0x74 - strb r1, [r0] - ldr r0, [r2] - adds r0, #0x75 - strb r1, [r0] - ldr r0, [r2] - adds r0, #0x7a - strb r1, [r0] - ldr r0, [r2] - adds r0, #0x7b - strb r1, [r0] - ldr r0, [r2] - adds r0, #0xa8 - strb r1, [r0] -_08076D94: - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08076D9C: .4byte gUnknown_2037C74 -_08076DA0: .4byte sub_08077AE4 -_08076DA4: .4byte gUnknown_85D7B04 -_08076DA8: .4byte gUnknown_8300C04 -_08076DAC: .4byte gUnknown_2031F3C -_08076DB0: .4byte gUnknown_8300C14 - thumb_func_end sub_08076CAC - - thumb_func_start sub_08076DB4 -sub_08076DB4: @ 0x08076DB4 - push {lr} - ldr r0, _08076DCC - bl SetMainCallback2 - ldr r0, _08076DD0 - movs r1, #0 - str r1, [r0] - ldr r0, _08076DD4 - strb r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_08076DCC: .4byte sub_08076DD8 -_08076DD0: .4byte gUnknown_3002360 -_08076DD4: .4byte gUnknown_202418E - thumb_func_end sub_08076DB4 - - thumb_func_start sub_08076DD8 -sub_08076DD8: @ 0x08076DD8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x28 - ldr r1, _08076DFC - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r1, r2 - ldrb r0, [r0] - adds r3, r1, #0 - cmp r0, #0x16 - bls _08076DF2 - b _0807752A -_08076DF2: - lsls r0, r0, #2 - ldr r1, _08076E00 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08076DFC: .4byte gUnknown_3002360 -_08076E00: .4byte _08076E04 -_08076E04: @ jump table - .4byte _08076E60 @ case 0 - .4byte _08076EAC @ case 1 - .4byte _08076F68 @ case 2 - .4byte _08076F94 @ case 3 - .4byte _08076FF0 @ case 4 - .4byte _08077050 @ case 5 - .4byte _08077090 @ case 6 - .4byte _080770B0 @ case 7 - .4byte _080771F0 @ case 8 - .4byte _08077218 @ case 9 - .4byte _0807723C @ case 10 - .4byte _080772C4 @ case 11 - .4byte _080772D2 @ case 12 - .4byte _08077378 @ case 13 - .4byte _08077424 @ case 14 - .4byte _08077464 @ case 15 - .4byte _0807747E @ case 16 - .4byte _0807748C @ case 17 - .4byte _080774A0 @ case 18 - .4byte _080774C0 @ case 19 - .4byte _080774E0 @ case 20 - .4byte _080774F4 @ case 21 - .4byte _08077514 @ case 22 -_08076E60: - ldr r4, _08076E98 - ldr r0, _08076E9C - bl AllocZeroed - str r0, [r4] - bl sub_08076CAC - ldr r4, _08076EA0 - movs r0, #0xd0 - lsls r0, r0, #4 - bl AllocZeroed - str r0, [r4] - movs r6, #0 - ldr r2, _08076EA4 -_08076E7E: - lsls r1, r6, #8 - ldr r0, [r4] - adds r0, r0, r1 - stm r2!, {r0} - adds r6, #1 - cmp r6, #0xc - ble _08076E7E - ldr r1, _08076EA8 - movs r3, #0x87 - lsls r3, r3, #3 - adds r1, r1, r3 - b _08077506 - .align 2, 0 -_08076E98: .4byte gUnknown_2031F3C -_08076E9C: .4byte 0x000010F0 -_08076EA0: .4byte gUnknown_2031E28 -_08076EA4: .4byte gUnknown_2031E2C -_08076EA8: .4byte gUnknown_3002360 -_08076EAC: - ldr r2, _08076F14 - ldrb r1, [r2, #8] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #8] - movs r6, #0 - movs r4, #0 -_08076EBA: - movs r0, #0x64 - muls r0, r6, r0 - ldr r1, _08076F18 - adds r0, r0, r1 - str r4, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - str r4, [sp, #0xc] - movs r1, #0 - movs r2, #0 - movs r3, #0x20 - bl CreateMon - adds r6, #1 - cmp r6, #5 - ble _08076EBA - movs r0, #0 - bl sub_08079BD4 - movs r0, #0 - bl ShowBg - ldr r0, _08076F1C - ldrb r2, [r0] - cmp r2, #0 - bne _08076F54 - ldr r1, _08076F20 - ldr r4, _08076F24 - adds r0, r4, #0 - strh r0, [r1] - ldr r0, _08076F28 - ldr r0, [r0] - adds r0, #0xa8 - strb r2, [r0] - ldr r0, _08076F2C - ldrb r0, [r0] - cmp r0, #0 - beq _08076F30 - bl sub_0800AF5C - bl OpenLink - bl sub_08011690 - b _0807752A - .align 2, 0 -_08076F14: .4byte gUnknown_2037C74 -_08076F18: .4byte gUnknown_20243E8 -_08076F1C: .4byte gUnknown_30031C4 -_08076F20: .4byte gUnknown_202267E -_08076F24: .4byte 0x00001122 -_08076F28: .4byte gUnknown_2031F3C -_08076F2C: .4byte gUnknown_300319C -_08076F30: - bl OpenLink - ldr r0, _08076F4C - movs r7, #0x87 - lsls r7, r7, #3 - adds r0, r0, r7 - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - ldr r0, _08076F50 - movs r1, #1 - bl CreateTask - b _0807752A - .align 2, 0 -_08076F4C: .4byte gUnknown_3002360 -_08076F50: .4byte sub_080B3188 -_08076F54: - ldr r0, _08076F64 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - movs r1, #4 - strb r1, [r0] - b _0807752A - .align 2, 0 -_08076F64: .4byte gUnknown_3002360 -_08076F68: - ldr r2, _08076F90 - ldr r1, [r2] - adds r1, #0xa8 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r0, [r2] - adds r1, r0, #0 - adds r1, #0xa8 - ldrb r0, [r1] - cmp r0, #0xb - bhi _08076F82 - b _0807752A -_08076F82: - movs r0, #0 - strb r0, [r1] - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r3, r2 - b _08077506 - .align 2, 0 -_08076F90: .4byte gUnknown_2031F3C -_08076F94: - bl GetLinkPlayerCount_2 - adds r4, r0, #0 - bl sub_0800A60C - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - bhs _08076FA8 - b _0807752A -_08076FA8: - bl IsLinkMaster - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08076FE0 - ldr r0, _08076FD8 - ldr r1, [r0] - adds r1, #0xa8 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1e - bhi _08076FC8 - b _0807752A -_08076FC8: - bl CheckShouldAdvanceLinkState - ldr r1, _08076FDC - movs r3, #0x87 - lsls r3, r3, #3 - adds r1, r1, r3 - b _08077506 - .align 2, 0 -_08076FD8: .4byte gUnknown_2031F3C -_08076FDC: .4byte gUnknown_3002360 -_08076FE0: - ldr r1, _08076FEC - movs r4, #0x87 - lsls r4, r4, #3 - adds r1, r1, r4 - b _08077506 - .align 2, 0 -_08076FEC: .4byte gUnknown_3002360 -_08076FF0: - ldr r0, _08077040 - ldrb r0, [r0] - cmp r0, #1 - beq _08076FFA - b _0807752A -_08076FFA: - bl IsLinkPlayerDataExchangeComplete - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08077008 - b _0807752A -_08077008: - bl sub_080116BC - bl sub_0806B004 - ldr r1, _08077044 - movs r7, #0x87 - lsls r7, r7, #3 - adds r1, r1, r7 - ldrb r0, [r1] - adds r0, #1 - movs r2, #0 - strb r0, [r1] - ldr r0, _08077048 - ldr r0, [r0] - adds r0, #0xa8 - strb r2, [r0] - ldr r0, _0807704C - ldrb r0, [r0] - cmp r0, #0 - bne _08077032 - b _0807752A -_08077032: - movs r0, #1 - bl sub_0800FF8C - bl sub_0800A8D4 - b _0807752A - .align 2, 0 -_08077040: .4byte gUnknown_30031C4 -_08077044: .4byte gUnknown_3002360 -_08077048: .4byte gUnknown_2031F3C -_0807704C: .4byte gUnknown_300319C -_08077050: - ldr r0, _08077080 - ldrb r0, [r0] - cmp r0, #0 - beq _08077088 - bl sub_08010000 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08077064 - b _0807752A -_08077064: - ldr r1, _08077084 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - bl LoadWirelessStatusIndicatorSpriteGfx - movs r0, #0 - movs r1, #0 - bl CreateWirelessStatusIndicatorSprite - b _0807752A - .align 2, 0 -_08077080: .4byte gUnknown_300319C -_08077084: .4byte gUnknown_3002360 -_08077088: - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r3, r2 - b _08077506 -_08077090: - bl sub_08077E20 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0807709C - b _0807752A -_0807709C: - bl sub_0807A028 - ldr r1, _080770AC - movs r3, #0x87 - lsls r3, r3, #3 - adds r1, r1, r3 - b _08077506 - .align 2, 0 -_080770AC: .4byte gUnknown_3002360 -_080770B0: - bl sub_0806B048 - movs r0, #0 - movs r1, #0 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - ldr r2, _080771CC - ldr r0, [r2] - ldr r1, _080771D0 - ldrb r1, [r1] - adds r0, #0x36 - strb r1, [r0] - ldr r0, [r2] - ldr r1, _080771D4 - ldrb r1, [r1] - adds r0, #0x37 - strb r1, [r0] - movs r6, #0 - ldr r0, [r2] - adds r0, #0x36 - ldrb r0, [r0] - cmp r6, r0 - bge _08077148 - mov r8, r2 - ldr r7, _080771D8 -_080770EA: - movs r0, #0x64 - adds r4, r6, #0 - muls r4, r0, r4 - ldr r0, _080771DC - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - adds r0, r4, #0 - movs r1, #0 - bl GetMonData - ldrb r2, [r7] - lsls r2, r2, #0x13 - movs r4, #0xe0 - lsls r4, r4, #0xc - adds r2, r2, r4 - asrs r2, r2, #0x10 - ldrb r3, [r7, #1] - lsls r3, r3, #0x13 - ldr r1, _080771E0 - adds r3, r3, r1 - asrs r3, r3, #0x10 - movs r1, #1 - str r1, [sp] - str r0, [sp, #4] - str r1, [sp, #8] - adds r0, r5, #0 - ldr r1, _080771E4 - bl CreateMonIcon - mov r2, r8 - ldr r1, [r2] - adds r1, #0x28 - adds r1, r1, r6 - strb r0, [r1] - adds r7, #2 - adds r6, #1 - ldr r0, [r2] - adds r0, #0x36 - ldrb r0, [r0] - cmp r6, r0 - blt _080770EA -_08077148: - movs r6, #0 - ldr r1, _080771CC - ldr r0, [r1] - adds r0, #0x37 - ldrb r0, [r0] - cmp r6, r0 - bge _080771C0 - ldr r0, _080771D8 - mov r8, r1 - adds r7, r0, #0 - adds r7, #0xc -_0807715E: - movs r0, #0x64 - adds r4, r6, #0 - muls r4, r0, r4 - ldr r0, _080771E8 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x41 - movs r2, #0 - bl GetMonData - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - adds r0, r4, #0 - movs r1, #0 - bl GetMonData - ldrb r2, [r7] - lsls r2, r2, #0x13 - movs r3, #0xe0 - lsls r3, r3, #0xc - adds r2, r2, r3 - asrs r2, r2, #0x10 - ldrb r3, [r7, #1] - lsls r3, r3, #0x13 - ldr r4, _080771E0 - adds r3, r3, r4 - asrs r3, r3, #0x10 - movs r1, #1 - str r1, [sp] - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - adds r0, r5, #0 - ldr r1, _080771E4 - bl CreateMonIcon - mov r2, r8 - ldr r1, [r2] - adds r1, #0x2e - adds r1, r1, r6 - strb r0, [r1] - adds r7, #2 - adds r6, #1 - ldr r0, [r2] - adds r0, #0x37 - ldrb r0, [r0] - cmp r6, r0 - blt _0807715E -_080771C0: - ldr r1, _080771EC - movs r3, #0x87 - lsls r3, r3, #3 - adds r1, r1, r3 - b _08077506 - .align 2, 0 -_080771CC: .4byte gUnknown_2031F3C -_080771D0: .4byte gUnknown_202418D -_080771D4: .4byte gUnknown_202418E -_080771D8: .4byte gUnknown_8300A1C -_080771DC: .4byte gUnknown_2024190 -_080771E0: .4byte 0xFFF40000 -_080771E4: .4byte sub_080D28B4 -_080771E8: .4byte gUnknown_20243E8 -_080771EC: .4byte gUnknown_3002360 -_080771F0: - bl sub_081B59D0 - ldr r0, _08077210 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0x36 - adds r1, #0x28 - movs r2, #0 - bl sub_081B59EC - ldr r1, _08077214 - movs r4, #0x87 - lsls r4, r4, #3 - adds r1, r1, r4 - b _08077506 - .align 2, 0 -_08077210: .4byte gUnknown_2031F3C -_08077214: .4byte gUnknown_3002360 -_08077218: - ldr r0, _08077234 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0x36 - adds r1, #0x28 - movs r2, #1 - bl sub_081B59EC - ldr r1, _08077238 - movs r7, #0x87 - lsls r7, r7, #3 - adds r1, r1, r7 - b _08077506 - .align 2, 0 -_08077234: .4byte gUnknown_2031F3C -_08077238: .4byte gUnknown_3002360 -_0807723C: - ldr r0, _080772A8 - ldr r0, [r0] - ldr r6, _080772AC - ldr r1, [r6] - ldr r5, _080772B0 - str r5, [sp] - movs r2, #0 - movs r3, #0 - bl sub_080C66A4 - bl GetMultiplayerId - lsls r0, r0, #0x18 - movs r1, #0x80 - lsls r1, r1, #0x11 - eors r1, r0 - lsrs r1, r1, #0x18 - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080772B4 - adds r0, r0, r1 - ldr r1, [r6, #0xc] - str r5, [sp] - movs r2, #0 - movs r3, #0 - bl sub_080C66A4 - ldr r4, _080772B8 - ldr r0, [r4] - ldr r1, [r6, #0x18] - str r5, [sp] - movs r2, #0 - movs r3, #0 - bl sub_080C66A4 - ldr r0, [r4, #4] - ldr r1, [r6, #0x1c] - movs r2, #0x18 - bl sub_08079D3C - ldr r1, _080772BC - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - movs r2, #0 - strb r0, [r1] - ldr r0, _080772C0 - ldr r0, [r0] - adds r0, #0xa8 - strb r2, [r0] - b _0807752A - .align 2, 0 -_080772A8: .4byte gUnknown_3005AF0 -_080772AC: .4byte gUnknown_2031E2C -_080772B0: .4byte gUnknown_201C000 -_080772B4: .4byte gUnknown_20226A8 -_080772B8: .4byte gUnknown_8300AFC -_080772BC: .4byte gUnknown_3002360 -_080772C0: .4byte gUnknown_2031F3C -_080772C4: - bl sub_08079C28 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080772D0 - b _0807752A -_080772D0: - b _080774FE -_080772D2: - ldr r0, _0807736C - ldr r0, [r0] - bl StringLength - lsls r0, r0, #0x10 - lsrs r0, r0, #0xe - movs r1, #0x4c - subs r1, r1, r0 - movs r6, #0 - add r5, sp, #0x10 - lsls r4, r1, #0x10 -_080772E8: - add r1, sp, #0x10 - ldr r0, _08077370 - ldm r0!, {r2, r3, r7} - stm r1!, {r2, r3, r7} - ldm r0!, {r2, r3, r7} - stm r1!, {r2, r3, r7} - ldrh r0, [r5] - adds r0, r0, r6 - strh r0, [r5] - asrs r1, r4, #0x10 - add r0, sp, #0x10 - movs r2, #8 - movs r3, #1 - bl CreateSprite - movs r3, #0x80 - lsls r3, r3, #0xe - adds r4, r4, r3 - adds r6, #1 - cmp r6, #2 - ble _080772E8 - bl GetMultiplayerId - adds r1, r0, #0 - movs r0, #1 - eors r1, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08077374 - adds r0, r0, r1 - bl StringLength - lsls r0, r0, #0x10 - lsrs r0, r0, #0xe - movs r1, #0xc4 - subs r1, r1, r0 - movs r6, #0 - add r5, sp, #0x10 - lsls r4, r1, #0x10 -_0807733C: - add r1, sp, #0x10 - ldr r0, _08077370 - ldm r0!, {r2, r3, r7} - stm r1!, {r2, r3, r7} - ldm r0!, {r2, r3, r7} - stm r1!, {r2, r3, r7} - adds r0, r6, #3 - ldrh r7, [r5] - adds r0, r0, r7 - strh r0, [r5] - asrs r1, r4, #0x10 - add r0, sp, #0x10 - movs r2, #8 - movs r3, #1 - bl CreateSprite - movs r0, #0x80 - lsls r0, r0, #0xe - adds r4, r4, r0 - adds r6, #1 - cmp r6, #2 - ble _0807733C - b _080774FE - .align 2, 0 -_0807736C: .4byte gUnknown_3005AF0 -_08077370: .4byte gUnknown_83008A4 -_08077374: .4byte gUnknown_20226A8 -_08077378: - add r1, sp, #0x10 - ldr r0, _08077410 - ldm r0!, {r3, r4, r7} - stm r1!, {r3, r4, r7} - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - add r1, sp, #0x10 - adds r0, r1, #0 - ldrh r0, [r0] - adds r0, #6 - strh r0, [r1] - adds r0, r1, #0 - movs r1, #0xe0 - movs r2, #0x98 - movs r3, #1 - bl CreateSprite - movs r6, #0 - add r4, sp, #0x10 - movs r5, #0xc0 - lsls r5, r5, #0xd -_080773A2: - add r1, sp, #0x10 - ldr r0, _08077410 - ldm r0!, {r2, r3, r7} - stm r1!, {r2, r3, r7} - ldm r0!, {r2, r3, r7} - stm r1!, {r2, r3, r7} - adds r0, r6, #7 - ldrh r7, [r4] - adds r0, r0, r7 - strh r0, [r4] - asrs r1, r5, #0x10 - add r0, sp, #0x10 - movs r2, #0x96 - movs r3, #1 - bl CreateSprite - movs r0, #0x80 - lsls r0, r0, #0xe - adds r5, r5, r0 - adds r6, #1 - cmp r6, #5 - ble _080773A2 - ldr r0, _08077414 - ldr r2, _08077418 - ldrb r1, [r2] - lsls r1, r1, #0x13 - movs r3, #0x80 - lsls r3, r3, #0xe - adds r1, r1, r3 - asrs r1, r1, #0x10 - ldrb r2, [r2, #1] - lsls r2, r2, #3 - movs r3, #2 - bl CreateSprite - ldr r2, _0807741C - ldr r1, [r2] - adds r1, #0x34 - movs r3, #0 - strb r0, [r1] - ldr r0, [r2] - adds r0, #0x35 - strb r3, [r0] - ldr r1, _08077420 - movs r4, #0x87 - lsls r4, r4, #3 - adds r1, r1, r4 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #0 - bl rbox_fill_rectangle - b _0807752A - .align 2, 0 -_08077410: .4byte gUnknown_83008A4 -_08077414: .4byte gUnknown_830088C -_08077418: .4byte gUnknown_8300A1C -_0807741C: .4byte gUnknown_2031F3C -_08077420: .4byte gUnknown_3002360 -_08077424: - movs r0, #0 - bl sub_08079D98 - movs r0, #0 - bl sub_08079690 - ldr r2, _08077458 - ldr r0, [r2] - movs r1, #0 - strb r1, [r0] - ldr r0, [r2] - strb r1, [r0, #1] - bl sub_08077D50 - ldr r1, _0807745C - movs r7, #0x87 - lsls r7, r7, #3 - adds r1, r1, r7 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r0, _08077460 - bl PlayBGM - b _0807752A - .align 2, 0 -_08077458: .4byte gUnknown_2031F3C -_0807745C: .4byte gUnknown_3002360 -_08077460: .4byte 0x000001B3 -_08077464: - movs r0, #1 - bl sub_08079D98 - movs r0, #1 - bl sub_08079690 - ldr r1, _08077488 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_0807747E: - movs r0, #0 - bl sub_08077C80 - b _080774FE - .align 2, 0 -_08077488: .4byte gUnknown_3002360 -_0807748C: - movs r0, #1 - bl sub_08077C80 - ldr r1, _0807749C - movs r3, #0x87 - lsls r3, r3, #3 - adds r1, r1, r3 - b _08077506 - .align 2, 0 -_0807749C: .4byte gUnknown_3002360 -_080774A0: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r1, _080774BC - movs r4, #0x87 - lsls r4, r4, #3 - adds r1, r1, r4 - b _08077506 - .align 2, 0 -_080774BC: .4byte gUnknown_3002360 -_080774C0: - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #2 - bl sub_08077C80 - ldr r1, _080774DC - movs r7, #0x87 - lsls r7, r7, #3 - adds r1, r1, r7 - b _08077506 - .align 2, 0 -_080774DC: .4byte gUnknown_3002360 -_080774E0: - movs r0, #0 - bl sub_08079EE0 - ldr r1, _080774F0 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _08077506 - .align 2, 0 -_080774F0: .4byte gUnknown_3002360 -_080774F4: - movs r0, #1 - bl sub_08079EE0 - bl sub_08079FB4 -_080774FE: - ldr r1, _08077510 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 -_08077506: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0807752A - .align 2, 0 -_08077510: .4byte gUnknown_3002360 -_08077514: - ldr r0, _0807754C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0807752A - ldr r0, _08077550 - str r0, [r3] - ldr r0, _08077554 - bl SetMainCallback2 -_0807752A: - bl sub_08004630 - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - add sp, #0x28 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0807754C: .4byte gUnknown_2037C74 -_08077550: .4byte sub_08078618 -_08077554: .4byte sub_08077C24 - thumb_func_end sub_08076DD8 - - thumb_func_start sub_08077558 -sub_08077558: @ 0x08077558 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x24 - ldr r1, _0807757C - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, r1, #0 - cmp r0, #0x16 - bls _08077572 - b _08077ABE -_08077572: - lsls r0, r0, #2 - ldr r1, _08077580 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807757C: .4byte gUnknown_3002360 -_08077580: .4byte _08077584 -_08077584: @ jump table - .4byte _080775E0 @ case 0 - .4byte _080775F4 @ case 1 - .4byte _080775FC @ case 2 - .4byte _08077604 @ case 3 - .4byte _0807760C @ case 4 - .4byte _08077620 @ case 5 - .4byte _08077648 @ case 6 - .4byte _08077650 @ case 7 - .4byte _08077788 @ case 8 - .4byte _080777B0 @ case 9 - .4byte _080777D4 @ case 10 - .4byte _0807785C @ case 11 - .4byte _08077878 @ case 12 - .4byte _08077928 @ case 13 - .4byte _08077ABE @ case 14 - .4byte _08077ABE @ case 15 - .4byte _080779F4 @ case 16 - .4byte _08077A08 @ case 17 - .4byte _08077A30 @ case 18 - .4byte _08077A6C @ case 19 - .4byte _08077A8C @ case 20 - .4byte _08077A94 @ case 21 - .4byte _08077AAC @ case 22 -_080775E0: - bl sub_08076CAC - ldr r1, _080775F0 - movs r3, #0x87 - lsls r3, r3, #3 - adds r1, r1, r3 - b _08077AA0 - .align 2, 0 -_080775F0: .4byte gUnknown_3002360 -_080775F4: - movs r4, #0x87 - lsls r4, r4, #3 - adds r1, r2, r4 - b _0807782E -_080775FC: - movs r5, #0x87 - lsls r5, r5, #3 - adds r1, r2, r5 - b _08077AA0 -_08077604: - movs r7, #0x87 - lsls r7, r7, #3 - adds r1, r2, r7 - b _08077AA0 -_0807760C: - bl sub_0806B004 - ldr r1, _0807761C - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _08077AA0 - .align 2, 0 -_0807761C: .4byte gUnknown_3002360 -_08077620: - ldr r0, _08077640 - ldrb r0, [r0] - cmp r0, #0 - beq _08077634 - bl LoadWirelessStatusIndicatorSpriteGfx - movs r0, #0 - movs r1, #0 - bl CreateWirelessStatusIndicatorSprite -_08077634: - ldr r1, _08077644 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _08077AA0 - .align 2, 0 -_08077640: .4byte gUnknown_300319C -_08077644: .4byte gUnknown_3002360 -_08077648: - movs r3, #0x87 - lsls r3, r3, #3 - adds r1, r2, r3 - b _08077AA0 -_08077650: - bl sub_0806B048 - ldr r4, _08077768 - ldr r0, [r4] - ldr r1, _0807776C - ldrb r1, [r1] - adds r0, #0x36 - strb r1, [r0] - ldr r0, [r4] - ldr r1, _08077770 - ldrb r1, [r1] - adds r0, #0x37 - strb r1, [r0] - movs r0, #0 - bl ClearWindowTilemap - movs r0, #0 - bl sub_08079690 - movs r0, #1 - bl sub_08079690 - movs r6, #0 - ldr r0, [r4] - adds r0, #0x36 - ldrb r0, [r0] - cmp r6, r0 - bge _080776EC - mov r8, r4 - ldr r7, _08077774 -_0807768C: - movs r0, #0x64 - adds r4, r6, #0 - muls r4, r0, r4 - ldr r0, _08077778 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x41 - movs r2, #0 - bl GetMonData - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - adds r0, r4, #0 - movs r1, #0 - bl GetMonData - ldrb r2, [r7] - lsls r2, r2, #0x13 - movs r4, #0xe0 - lsls r4, r4, #0xc - adds r2, r2, r4 - asrs r2, r2, #0x10 - ldrb r3, [r7, #1] - lsls r3, r3, #0x13 - ldr r1, _0807777C - adds r3, r3, r1 - asrs r3, r3, #0x10 - movs r1, #1 - str r1, [sp] - str r0, [sp, #4] - str r1, [sp, #8] - adds r0, r5, #0 - ldr r1, _08077780 - bl CreateMonIcon - mov r2, r8 - ldr r1, [r2] - adds r1, #0x28 - adds r1, r1, r6 - strb r0, [r1] - adds r7, #2 - adds r6, #1 - ldr r0, [r2] - adds r0, #0x36 - ldrb r0, [r0] - cmp r6, r0 - blt _0807768C -_080776EC: - movs r6, #0 - ldr r1, _08077768 - ldr r0, [r1] - adds r0, #0x37 - ldrb r0, [r0] - cmp r6, r0 - blt _080776FC - b _08077A98 -_080776FC: - ldr r0, _08077774 - mov r8, r1 - adds r7, r0, #0 - adds r7, #0xc -_08077704: - movs r0, #0x64 - adds r4, r6, #0 - muls r4, r0, r4 - ldr r0, _08077784 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x41 - movs r2, #0 - bl GetMonData - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - adds r0, r4, #0 - movs r1, #0 - bl GetMonData - ldrb r2, [r7] - lsls r2, r2, #0x13 - movs r3, #0xe0 - lsls r3, r3, #0xc - adds r2, r2, r3 - asrs r2, r2, #0x10 - ldrb r3, [r7, #1] - lsls r3, r3, #0x13 - ldr r4, _0807777C - adds r3, r3, r4 - asrs r3, r3, #0x10 - movs r1, #1 - str r1, [sp] - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - adds r0, r5, #0 - ldr r1, _08077780 - bl CreateMonIcon - mov r5, r8 - ldr r1, [r5] - adds r1, #0x2e - adds r1, r1, r6 - strb r0, [r1] - adds r7, #2 - adds r6, #1 - ldr r0, [r5] - adds r0, #0x37 - ldrb r0, [r0] - cmp r6, r0 - blt _08077704 - b _08077A98 - .align 2, 0 -_08077768: .4byte gUnknown_2031F3C -_0807776C: .4byte gUnknown_202418D -_08077770: .4byte gUnknown_202418E -_08077774: .4byte gUnknown_8300A1C -_08077778: .4byte gUnknown_2024190 -_0807777C: .4byte 0xFFF40000 -_08077780: .4byte sub_080D28B4 -_08077784: .4byte gUnknown_20243E8 -_08077788: - bl sub_081B59D0 - ldr r0, _080777A8 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0x36 - adds r1, #0x28 - movs r2, #0 - bl sub_081B59EC - ldr r1, _080777AC - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _08077AA0 - .align 2, 0 -_080777A8: .4byte gUnknown_2031F3C -_080777AC: .4byte gUnknown_3002360 -_080777B0: - ldr r0, _080777CC - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0x36 - adds r1, #0x28 - movs r2, #1 - bl sub_081B59EC - ldr r1, _080777D0 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _08077AA0 - .align 2, 0 -_080777CC: .4byte gUnknown_2031F3C -_080777D0: .4byte gUnknown_3002360 -_080777D4: - ldr r0, _08077840 - ldr r0, [r0] - ldr r6, _08077844 - ldr r1, [r6] - ldr r5, _08077848 - str r5, [sp] - movs r2, #0 - movs r3, #0 - bl sub_080C66A4 - bl GetMultiplayerId - lsls r0, r0, #0x18 - movs r1, #0x80 - lsls r1, r1, #0x11 - eors r1, r0 - lsrs r1, r1, #0x18 - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0807784C - adds r0, r0, r1 - ldr r1, [r6, #0xc] - str r5, [sp] - movs r2, #0 - movs r3, #0 - bl sub_080C66A4 - ldr r4, _08077850 - ldr r0, [r4] - ldr r1, [r6, #0x18] - str r5, [sp] - movs r2, #0 - movs r3, #0 - bl sub_080C66A4 - ldr r0, [r4, #4] - ldr r1, [r6, #0x1c] - movs r2, #0x18 - bl sub_08079D3C - ldr r1, _08077854 - movs r3, #0x87 - lsls r3, r3, #3 - adds r1, r1, r3 -_0807782E: - ldrb r0, [r1] - adds r0, #1 - movs r2, #0 - strb r0, [r1] - ldr r0, _08077858 - ldr r0, [r0] - adds r0, #0xa8 - strb r2, [r0] - b _08077ABE - .align 2, 0 -_08077840: .4byte gUnknown_3005AF0 -_08077844: .4byte gUnknown_2031E2C -_08077848: .4byte gUnknown_201C000 -_0807784C: .4byte gUnknown_20226A8 -_08077850: .4byte gUnknown_8300AFC -_08077854: .4byte gUnknown_3002360 -_08077858: .4byte gUnknown_2031F3C -_0807785C: - bl sub_08079C28 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08077868 - b _08077ABE -_08077868: - ldr r1, _08077874 - movs r4, #0x87 - lsls r4, r4, #3 - adds r1, r1, r4 - b _08077AA0 - .align 2, 0 -_08077874: .4byte gUnknown_3002360 -_08077878: - ldr r0, _08077918 - ldr r0, [r0] - bl StringLength - lsls r0, r0, #0x10 - lsrs r0, r0, #0xe - movs r1, #0x4c - subs r1, r1, r0 - movs r6, #0 - add r5, sp, #0xc - lsls r4, r1, #0x10 -_0807788E: - add r1, sp, #0xc - ldr r0, _0807791C - ldm r0!, {r2, r3, r7} - stm r1!, {r2, r3, r7} - ldm r0!, {r2, r3, r7} - stm r1!, {r2, r3, r7} - ldrh r0, [r5] - adds r0, r0, r6 - strh r0, [r5] - asrs r1, r4, #0x10 - add r0, sp, #0xc - movs r2, #8 - movs r3, #1 - bl CreateSprite - movs r7, #0x80 - lsls r7, r7, #0xe - adds r4, r4, r7 - adds r6, #1 - cmp r6, #2 - ble _0807788E - bl GetMultiplayerId - adds r1, r0, #0 - movs r0, #1 - eors r1, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08077920 - adds r0, r0, r1 - bl StringLength - lsls r0, r0, #0x10 - lsrs r0, r0, #0xe - movs r1, #0xc4 - subs r1, r1, r0 - movs r6, #0 - add r5, sp, #0xc - lsls r4, r1, #0x10 -_080778E2: - add r1, sp, #0xc - ldr r0, _0807791C - ldm r0!, {r2, r3, r7} - stm r1!, {r2, r3, r7} - ldm r0!, {r2, r3, r7} - stm r1!, {r2, r3, r7} - adds r0, r6, #3 - ldrh r1, [r5] - adds r0, r0, r1 - strh r0, [r5] - asrs r1, r4, #0x10 - add r0, sp, #0xc - movs r2, #8 - movs r3, #1 - bl CreateSprite - movs r2, #0x80 - lsls r2, r2, #0xe - adds r4, r4, r2 - adds r6, #1 - cmp r6, #2 - ble _080778E2 - ldr r1, _08077924 - movs r3, #0x87 - lsls r3, r3, #3 - adds r1, r1, r3 - b _08077AA0 - .align 2, 0 -_08077918: .4byte gUnknown_3005AF0 -_0807791C: .4byte gUnknown_83008A4 -_08077920: .4byte gUnknown_20226A8 -_08077924: .4byte gUnknown_3002360 -_08077928: - add r1, sp, #0xc - ldr r0, _08077994 - ldm r0!, {r4, r5, r7} - stm r1!, {r4, r5, r7} - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - add r1, sp, #0xc - adds r0, r1, #0 - ldrh r0, [r0] - adds r0, #6 - strh r0, [r1] - adds r0, r1, #0 - movs r1, #0xe0 - movs r2, #0x98 - movs r3, #1 - bl CreateSprite - movs r6, #0 - add r4, sp, #0xc - movs r5, #0xc0 - lsls r5, r5, #0xd -_08077952: - add r1, sp, #0xc - ldr r0, _08077994 - ldm r0!, {r2, r3, r7} - stm r1!, {r2, r3, r7} - ldm r0!, {r2, r3, r7} - stm r1!, {r2, r3, r7} - adds r0, r6, #7 - ldrh r7, [r4] - adds r0, r0, r7 - strh r0, [r4] - asrs r1, r5, #0x10 - add r0, sp, #0xc - movs r2, #0x96 - movs r3, #1 - bl CreateSprite - movs r0, #0x80 - lsls r0, r0, #0xe - adds r5, r5, r0 - adds r6, #1 - cmp r6, #5 - ble _08077952 - ldr r0, _08077998 - ldr r1, [r0] - adds r2, r1, #0 - adds r2, #0x35 - ldrb r1, [r2] - adds r4, r0, #0 - cmp r1, #5 - bhi _080779A0 - ldr r0, _0807799C - ldrb r0, [r0] - b _080779A6 - .align 2, 0 -_08077994: .4byte gUnknown_83008A4 -_08077998: .4byte gUnknown_2031F3C -_0807799C: .4byte gUnknown_203CBEC -_080779A0: - ldr r0, _080779E4 - ldrb r0, [r0] - adds r0, #6 -_080779A6: - strb r0, [r2] - ldr r0, _080779E8 - ldr r3, _080779EC - ldr r1, [r4] - adds r1, #0x35 - ldrb r2, [r1] - lsls r2, r2, #1 - adds r1, r2, r3 - ldrb r1, [r1] - lsls r1, r1, #0x13 - movs r5, #0x80 - lsls r5, r5, #0xe - adds r1, r1, r5 - asrs r1, r1, #0x10 - adds r3, #1 - adds r2, r2, r3 - ldrb r2, [r2] - lsls r2, r2, #3 - movs r3, #2 - bl CreateSprite - ldr r1, [r4] - adds r1, #0x34 - strb r0, [r1] - ldr r0, _080779F0 - movs r7, #0x87 - lsls r7, r7, #3 - adds r0, r0, r7 - movs r1, #0x10 - strb r1, [r0] - b _08077ABE - .align 2, 0 -_080779E4: .4byte gUnknown_203CBEC -_080779E8: .4byte gUnknown_830088C -_080779EC: .4byte gUnknown_8300A1C -_080779F0: .4byte gUnknown_3002360 -_080779F4: - movs r0, #0 - bl sub_08077C80 - ldr r1, _08077A04 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _08077AA0 - .align 2, 0 -_08077A04: .4byte gUnknown_3002360 -_08077A08: - movs r0, #1 - bl sub_08077C80 - ldr r2, _08077A28 - ldr r0, [r2] - movs r1, #0 - strb r1, [r0] - ldr r0, [r2] - strb r1, [r0, #1] - bl sub_08077D50 - ldr r1, _08077A2C - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _08077AA0 - .align 2, 0 -_08077A28: .4byte gUnknown_2031F3C -_08077A2C: .4byte gUnknown_3002360 -_08077A30: - ldr r2, _08077A64 - ldrb r1, [r2, #8] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #8] - movs r4, #1 - rsbs r4, r4, #0 - adds r0, r4, #0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - movs r0, #0 - str r0, [sp] - adds r0, r4, #0 - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r1, _08077A68 - movs r3, #0x87 - lsls r3, r3, #3 - adds r1, r1, r3 - b _08077AA0 - .align 2, 0 -_08077A64: .4byte gUnknown_2037C74 -_08077A68: .4byte gUnknown_3002360 -_08077A6C: - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #2 - bl sub_08077C80 - ldr r1, _08077A88 - movs r4, #0x87 - lsls r4, r4, #3 - adds r1, r1, r4 - b _08077AA0 - .align 2, 0 -_08077A88: .4byte gUnknown_3002360 -_08077A8C: - movs r5, #0x87 - lsls r5, r5, #3 - adds r1, r2, r5 - b _08077AA0 -_08077A94: - bl sub_08079FB4 -_08077A98: - ldr r1, _08077AA8 - movs r7, #0x87 - lsls r7, r7, #3 - adds r1, r1, r7 -_08077AA0: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _08077ABE - .align 2, 0 -_08077AA8: .4byte gUnknown_3002360 -_08077AAC: - ldr r0, _08077ADC - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08077ABE - ldr r0, _08077AE0 - bl SetMainCallback2 -_08077ABE: - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - add sp, #0x24 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08077ADC: .4byte gUnknown_2037C74 -_08077AE0: .4byte sub_08077C24 - thumb_func_end sub_08077558 - - thumb_func_start sub_08077AE4 -sub_08077AE4: @ 0x08077AE4 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08077AE4 - - thumb_func_start sub_08077AF8 -sub_08077AF8: @ 0x08077AF8 - push {r4, lr} - sub sp, #4 - ldr r4, _08077B30 - ldr r1, [r4] - adds r1, #0xa8 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xf - bls _08077B28 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, [r4] - adds r0, #0x6f - movs r1, #0xa - strb r1, [r0] -_08077B28: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08077B30: .4byte gUnknown_2031F3C - thumb_func_end sub_08077AF8 - - thumb_func_start sub_08077B34 -sub_08077B34: @ 0x08077B34 - push {r4, lr} - ldr r0, _08077B6C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08077B8A - ldr r1, _08077B70 - ldr r4, _08077B74 - ldr r2, [r4] - adds r0, r2, #0 - adds r0, #0x35 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r2, #0 - adds r0, #0x7e - ldrb r0, [r0] - strb r0, [r1, #1] - ldr r0, _08077B78 - ldrb r0, [r0] - cmp r0, #0 - beq _08077B7C - adds r1, r2, #0 - adds r1, #0x6f - movs r0, #0x10 - strb r0, [r1] - b _08077B8A - .align 2, 0 -_08077B6C: .4byte gUnknown_2037C74 -_08077B70: .4byte gUnknown_2031F38 -_08077B74: .4byte gUnknown_2031F3C -_08077B78: .4byte gUnknown_300319C -_08077B7C: - movs r0, #0x20 - bl sub_0800A7B8 - ldr r0, [r4] - adds r0, #0x6f - movs r1, #0xd - strb r1, [r0] -_08077B8A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08077B34 - - thumb_func_start sub_08077B90 -sub_08077B90: @ 0x08077B90 - push {r4, r5, lr} - ldr r5, _08077BD0 - ldr r0, _08077BD4 - str r0, [r5, #8] - ldr r0, _08077BD8 - ldrb r0, [r0] - cmp r0, #0 - beq _08077BE8 - bl sub_08010000 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08077C0C - ldr r0, _08077BDC - ldr r0, [r0] - bl Free - bl FreeAllWindowBuffers - ldr r0, _08077BE0 - ldr r0, [r0] - bl Free - movs r0, #0 - str r0, [r5] - bl DestroyWirelessStatusIndicatorSprite - ldr r0, _08077BE4 - bl SetMainCallback2 - b _08077C0C - .align 2, 0 -_08077BD0: .4byte gUnknown_3002360 -_08077BD4: .4byte sub_08076DB4 -_08077BD8: .4byte gUnknown_300319C -_08077BDC: .4byte gUnknown_2031E28 -_08077BE0: .4byte gUnknown_2031F3C -_08077BE4: .4byte sub_0807A8AC -_08077BE8: - ldr r0, _08077C14 - ldrb r4, [r0] - cmp r4, #0 - bne _08077C0C - ldr r0, _08077C18 - ldr r0, [r0] - bl Free - bl FreeAllWindowBuffers - ldr r0, _08077C1C - ldr r0, [r0] - bl Free - str r4, [r5] - ldr r0, _08077C20 - bl SetMainCallback2 -_08077C0C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08077C14: .4byte gUnknown_30031C4 -_08077C18: .4byte gUnknown_2031E28 -_08077C1C: .4byte gUnknown_2031F3C -_08077C20: .4byte sub_0807A8AC - thumb_func_end sub_08077B90 - - thumb_func_start sub_08077C24 -sub_08077C24: @ 0x08077C24 - push {r4, lr} - bl sub_08078FC0 - bl sub_08079AFC - movs r0, #0 - bl sub_080790C8 - movs r0, #1 - bl sub_080790C8 - ldr r4, _08077C7C - ldr r2, [r4] - ldrb r1, [r2] - adds r0, r1, #1 - strb r0, [r2] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0x18 - bl SetGpuReg - ldr r2, [r4] - ldrb r1, [r2, #1] - adds r0, r1, #0 - adds r0, #0xff - strb r0, [r2, #1] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0x1c - bl SetGpuReg - bl RunTextPrintersAndIsPrinter0Active - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08077C7C: .4byte gUnknown_2031F3C - thumb_func_end sub_08077C24 - - thumb_func_start sub_08077C80 -sub_08077C80: @ 0x08077C80 - push {r4, r5, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #1 - beq _08077CEC - cmp r4, #1 - bgt _08077C96 - cmp r4, #0 - beq _08077C9C - b _08077D46 -_08077C96: - cmp r4, #2 - beq _08077D14 - b _08077D46 -_08077C9C: - ldr r0, _08077CDC - movs r1, #0 - movs r2, #0x60 - bl LoadPalette - ldr r1, _08077CE0 - movs r2, #0x94 - lsls r2, r2, #5 - movs r0, #1 - movs r3, #0 - bl LoadBgTiles - ldr r1, _08077CE4 - movs r0, #0x20 - str r0, [sp] - movs r0, #0x14 - str r0, [sp, #4] - str r4, [sp, #8] - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBufferRect_ChangePalette - ldr r1, _08077CE8 - movs r2, #0x80 - lsls r2, r2, #4 - movs r0, #2 - movs r3, #0 - bl LoadBgTilemap - b _08077D46 - .align 2, 0 -_08077CDC: .4byte gUnknown_82FD0CC -_08077CE0: .4byte gUnknown_82FD14C -_08077CE4: .4byte gUnknown_82FE3CC -_08077CE8: .4byte gUnknown_82FEFC8 -_08077CEC: - ldr r1, _08077D10 - movs r2, #0x80 - lsls r2, r2, #4 - movs r0, #3 - movs r3, #0 - bl LoadBgTilemap - movs r0, #0 - bl sub_0807987C - movs r0, #1 - bl sub_0807987C - movs r0, #1 - bl CopyBgTilemapBufferToVram - b _08077D46 - .align 2, 0 -_08077D10: .4byte gUnknown_82FF7C8 -_08077D14: - movs r5, #0x80 - lsls r5, r5, #0x15 - movs r4, #3 -_08077D1A: - lsrs r0, r5, #0x18 - movs r1, #0 - bl SetGpuReg - movs r0, #0x80 - lsls r0, r0, #0x12 - adds r5, r5, r0 - subs r4, #1 - cmp r4, #0 - bge _08077D1A - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg -_08077D46: - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08077C80 - - thumb_func_start sub_08077D50 -sub_08077D50: @ 0x08077D50 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - movs r3, #0 - ldr r5, _08077DA0 - mov r8, r5 - ldr r0, _08077DA4 - mov ip, r0 - movs r1, #5 - rsbs r1, r1, #0 - mov sb, r1 - movs r4, #6 - movs r7, #1 - movs r6, #0 -_08077D6E: - mov r1, r8 - ldr r0, [r1] - adds r1, r0, #0 - adds r1, #0x36 - ldrb r1, [r1] - cmp r3, r1 - bge _08077DA8 - adds r0, #0x28 - adds r0, r0, r3 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - add r1, ip - adds r1, #0x3e - ldrb r2, [r1] - mov r0, sb - ands r0, r2 - strb r0, [r1] - ldr r0, [r5] - adds r0, #0x38 - adds r0, r0, r3 - strb r7, [r0] - b _08077DAE - .align 2, 0 -_08077DA0: .4byte gUnknown_2031F3C -_08077DA4: .4byte gUnknown_20205AC -_08077DA8: - adds r0, #0x38 - adds r0, r0, r3 - strb r6, [r0] -_08077DAE: - mov r1, r8 - ldr r0, [r1] - adds r1, r0, #0 - adds r1, #0x37 - ldrb r1, [r1] - cmp r3, r1 - bge _08077DDE - adds r0, #0x2e - adds r0, r0, r3 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - add r1, ip - adds r1, #0x3e - ldrb r2, [r1] - mov r0, sb - ands r0, r2 - strb r0, [r1] - ldr r0, [r5] - adds r0, #0x38 - adds r0, r0, r4 - strb r7, [r0] - b _08077DE4 -_08077DDE: - adds r0, #0x38 - adds r0, r0, r4 - strb r6, [r0] -_08077DE4: - adds r4, #1 - adds r3, #1 - cmp r3, #5 - ble _08077D6E - ldr r0, [r5] - adds r0, #0x44 - movs r1, #1 - strb r1, [r0] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08077D50 - - thumb_func_start Trade_Memcpy -Trade_Memcpy: @ 0x08077E00 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - movs r3, #0 - cmp r3, r2 - bhs _08077E1A -_08077E0C: - adds r0, r5, r3 - adds r1, r4, r3 - ldrb r1, [r1] - strb r1, [r0] - adds r3, #1 - cmp r3, r2 - blo _08077E0C -_08077E1A: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end Trade_Memcpy - - thumb_func_start sub_08077E20 -sub_08077E20: @ 0x08077E20 - push {r4, r5, lr} - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _08077E44 - ldr r0, [r0] - adds r0, #0x69 - ldrb r0, [r0] - cmp r0, #0x15 - bls _08077E38 - b _08078112 -_08077E38: - lsls r0, r0, #2 - ldr r1, _08077E48 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08077E44: .4byte gUnknown_2031F3C -_08077E48: .4byte _08077E4C -_08077E4C: @ jump table - .4byte _08077EA4 @ case 0 - .4byte _08077ED0 @ case 1 - .4byte _080780EC @ case 2 - .4byte _08077EFC @ case 3 - .4byte _08077F10 @ case 4 - .4byte _08077F44 @ case 5 - .4byte _080780EC @ case 6 - .4byte _08077F60 @ case 7 - .4byte _08077F74 @ case 8 - .4byte _08077FA8 @ case 9 - .4byte _080780EC @ case 10 - .4byte _08077FC4 @ case 11 - .4byte _08077FD8 @ case 12 - .4byte _0807800C @ case 13 - .4byte _080780EC @ case 14 - .4byte _08078034 @ case 15 - .4byte _08078048 @ case 16 - .4byte _0807807C @ case 17 - .4byte _080780EC @ case 18 - .4byte _080780A4 @ case 19 - .4byte _080780B8 @ case 20 - .4byte _080780E8 @ case 21 -_08077EA4: - ldr r0, _08077EC4 - ldr r1, _08077EC8 - movs r2, #0xc8 - bl Trade_Memcpy - ldr r3, _08077ECC - ldr r1, [r3] - adds r1, #0x69 - ldrb r0, [r1] - adds r0, #1 - movs r2, #0 - strb r0, [r1] - ldr r0, [r3] - adds r0, #0xa8 - strb r2, [r0] - b _08078112 - .align 2, 0 -_08077EC4: .4byte gUnknown_202257C -_08077EC8: .4byte gUnknown_2024190 -_08077ECC: .4byte gUnknown_2031F3C -_08077ED0: - bl sub_08076BC4 - cmp r0, #0 - bne _08077EDA - b _08078112 -_08077EDA: - bl sub_08076C08 - cmp r0, #0 - bne _08077EEC - ldr r0, _08077EE8 - ldr r1, [r0] - b _0807810A - .align 2, 0 -_08077EE8: .4byte gUnknown_2031F3C -_08077EEC: - bl sub_08076C18 - ldr r0, _08077EF8 - ldr r1, [r0] - b _0807810A - .align 2, 0 -_08077EF8: .4byte gUnknown_2031F3C -_08077EFC: - cmp r5, #0 - bne _08077F06 - movs r0, #1 - bl sub_08076BB4 -_08077F06: - ldr r0, _08077F0C - ldr r1, [r0] - b _0807810A - .align 2, 0 -_08077F0C: .4byte gUnknown_2031F3C -_08077F10: - bl sub_08076C08 - cmp r0, #3 - beq _08077F1A - b _08078112 -_08077F1A: - ldr r0, _08077F38 - movs r2, #1 - adds r1, r5, #0 - eors r1, r2 - lsls r1, r1, #8 - ldr r2, _08077F3C - adds r1, r1, r2 - movs r2, #0xc8 - bl Trade_Memcpy - bl sub_08076C18 - ldr r0, _08077F40 - ldr r1, [r0] - b _0807810A - .align 2, 0 -_08077F38: .4byte gUnknown_20243E8 -_08077F3C: .4byte gUnknown_202207C -_08077F40: .4byte gUnknown_2031F3C -_08077F44: - ldr r0, _08077F54 - ldr r1, _08077F58 - movs r2, #0xc8 - bl Trade_Memcpy - ldr r0, _08077F5C - ldr r1, [r0] - b _0807810A - .align 2, 0 -_08077F54: .4byte gUnknown_202257C -_08077F58: .4byte gUnknown_2024258 -_08077F5C: .4byte gUnknown_2031F3C -_08077F60: - cmp r5, #0 - bne _08077F6A - movs r0, #1 - bl sub_08076BB4 -_08077F6A: - ldr r0, _08077F70 - ldr r1, [r0] - b _0807810A - .align 2, 0 -_08077F70: .4byte gUnknown_2031F3C -_08077F74: - bl sub_08076C08 - cmp r0, #3 - beq _08077F7E - b _08078112 -_08077F7E: - ldr r0, _08077F9C - movs r2, #1 - adds r1, r5, #0 - eors r1, r2 - lsls r1, r1, #8 - ldr r2, _08077FA0 - adds r1, r1, r2 - movs r2, #0xc8 - bl Trade_Memcpy - bl sub_08076C18 - ldr r0, _08077FA4 - ldr r1, [r0] - b _0807810A - .align 2, 0 -_08077F9C: .4byte gUnknown_20244B0 -_08077FA0: .4byte gUnknown_202207C -_08077FA4: .4byte gUnknown_2031F3C -_08077FA8: - ldr r0, _08077FB8 - ldr r1, _08077FBC - movs r2, #0xc8 - bl Trade_Memcpy - ldr r0, _08077FC0 - ldr r1, [r0] - b _0807810A - .align 2, 0 -_08077FB8: .4byte gUnknown_202257C -_08077FBC: .4byte gUnknown_2024320 -_08077FC0: .4byte gUnknown_2031F3C -_08077FC4: - cmp r5, #0 - bne _08077FCE - movs r0, #1 - bl sub_08076BB4 -_08077FCE: - ldr r0, _08077FD4 - ldr r1, [r0] - b _0807810A - .align 2, 0 -_08077FD4: .4byte gUnknown_2031F3C -_08077FD8: - bl sub_08076C08 - cmp r0, #3 - beq _08077FE2 - b _08078112 -_08077FE2: - ldr r0, _08078000 - movs r2, #1 - adds r1, r5, #0 - eors r1, r2 - lsls r1, r1, #8 - ldr r2, _08078004 - adds r1, r1, r2 - movs r2, #0xc8 - bl Trade_Memcpy - bl sub_08076C18 - ldr r0, _08078008 - ldr r1, [r0] - b _0807810A - .align 2, 0 -_08078000: .4byte gUnknown_2024578 -_08078004: .4byte gUnknown_202207C -_08078008: .4byte gUnknown_2031F3C -_0807800C: - ldr r0, _08078024 - ldr r1, _08078028 - ldr r1, [r1] - ldr r2, _0807802C - adds r1, r1, r2 - movs r2, #0xdc - bl Trade_Memcpy - ldr r0, _08078030 - ldr r1, [r0] - b _0807810A - .align 2, 0 -_08078024: .4byte gUnknown_202257C -_08078028: .4byte gUnknown_3005AEC -_0807802C: .4byte 0x00002BE0 -_08078030: .4byte gUnknown_2031F3C -_08078034: - cmp r5, #0 - bne _0807803E - movs r0, #3 - bl sub_08076BB4 -_0807803E: - ldr r0, _08078044 - ldr r1, [r0] - b _0807810A - .align 2, 0 -_08078044: .4byte gUnknown_2031F3C -_08078048: - bl sub_08076C08 - cmp r0, #3 - bne _08078112 - ldr r0, _08078070 - movs r2, #1 - adds r1, r5, #0 - eors r1, r2 - lsls r1, r1, #8 - ldr r2, _08078074 - adds r1, r1, r2 - movs r2, #0xd8 - bl Trade_Memcpy - bl sub_08076C18 - ldr r0, _08078078 - ldr r1, [r0] - b _0807810A - .align 2, 0 -_08078070: .4byte gUnknown_2031E60 -_08078074: .4byte gUnknown_202207C -_08078078: .4byte gUnknown_2031F3C -_0807807C: - ldr r0, _08078094 - ldr r1, _08078098 - ldr r1, [r1] - ldr r2, _0807809C - adds r1, r1, r2 - movs r2, #0xb - bl Trade_Memcpy - ldr r0, _080780A0 - ldr r1, [r0] - b _0807810A - .align 2, 0 -_08078094: .4byte gUnknown_202257C -_08078098: .4byte gUnknown_3005AEC -_0807809C: .4byte 0x000031A8 -_080780A0: .4byte gUnknown_2031F3C -_080780A4: - cmp r5, #0 - bne _080780AE - movs r0, #4 - bl sub_08076BB4 -_080780AE: - ldr r0, _080780B4 - ldr r1, [r0] - b _0807810A - .align 2, 0 -_080780B4: .4byte gUnknown_2031F3C -_080780B8: - bl sub_08076C08 - cmp r0, #3 - bne _08078112 - ldr r4, _080780E0 - ldr r0, [r4] - adds r0, #0xa9 - movs r2, #1 - adds r1, r5, #0 - eors r1, r2 - lsls r1, r1, #8 - ldr r2, _080780E4 - adds r1, r1, r2 - movs r2, #0xb - bl Trade_Memcpy - bl sub_08076C18 - ldr r1, [r4] - b _0807810A - .align 2, 0 -_080780E0: .4byte gUnknown_2031F3C -_080780E4: .4byte gUnknown_202207C -_080780E8: - movs r0, #1 - b _08078114 -_080780EC: - ldr r2, _0807811C - ldr r1, [r2] - adds r1, #0xa8 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r0, [r2] - adds r1, r0, #0 - adds r1, #0xa8 - ldrb r0, [r1] - cmp r0, #0xa - bls _08078112 - movs r0, #0 - strb r0, [r1] - ldr r1, [r2] -_0807810A: - adds r1, #0x69 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_08078112: - movs r0, #0 -_08078114: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0807811C: .4byte gUnknown_2031F3C - thumb_func_end sub_08077E20 - - thumb_func_start sub_08078120 -sub_08078120: @ 0x08078120 - push {r4, r5, r6, lr} - sub sp, #0x34 - ldr r5, _080781AC - ldr r0, [r5] - adds r0, #0x35 - ldrb r0, [r0] - movs r4, #0x64 - muls r0, r4, r0 - ldr r1, _080781B0 - adds r0, r0, r1 - movs r1, #2 - mov r2, sp - bl GetMonData - add r6, sp, #0x1c - adds r0, r6, #0 - mov r1, sp - bl StringCopy10 - ldr r0, [r5] - adds r0, #0x7e - ldrb r0, [r0] - movs r1, #6 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - muls r0, r4, r0 - ldr r1, _080781B4 - adds r0, r0, r1 - movs r1, #2 - mov r2, sp - bl GetMonData - add r4, sp, #0x28 - adds r0, r4, #0 - mov r1, sp - bl StringCopy10 - mov r0, sp - adds r1, r6, #0 - bl StringCopy - ldr r1, _080781B8 - mov r0, sp - bl StringAppend - mov r0, sp - adds r1, r4, #0 - bl StringAppend - ldr r1, _080781BC - mov r0, sp - bl StringAppend - ldr r0, [r5] - adds r0, #0x72 - ldrh r1, [r0] - lsls r1, r1, #5 - ldr r0, _080781C0 - adds r1, r1, r0 - mov r0, sp - movs r2, #0x18 - bl sub_08079D3C - add sp, #0x34 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080781AC: .4byte gUnknown_2031F3C -_080781B0: .4byte gUnknown_2024190 -_080781B4: .4byte gUnknown_20243E8 -_080781B8: .4byte gUnknown_8300AAE -_080781BC: .4byte gUnknown_8300AB1 -_080781C0: .4byte 0x06010000 - thumb_func_end sub_08078120 - - thumb_func_start sub_080781C4 -sub_080781C4: @ 0x080781C4 - push {r4, lr} - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - movs r2, #1 - adds r0, r4, #0 - ands r0, r2 - cmp r0, #0 - beq _08078248 - ldr r0, _080781EC - ldrh r1, [r0] - ldr r0, _080781F0 - cmp r1, r0 - beq _08078228 - cmp r1, r0 - bgt _080781F8 - ldr r0, _080781F4 - cmp r1, r0 - beq _08078218 - b _08078242 - .align 2, 0 -_080781EC: .4byte gUnknown_202207C -_080781F0: .4byte 0x0000BBBB -_080781F4: .4byte 0x0000AABB -_080781F8: - ldr r0, _0807820C - cmp r1, r0 - beq _08078238 - ldr r0, _08078210 - cmp r1, r0 - bne _08078242 - ldr r0, _08078214 - ldr r0, [r0] - adds r0, #0x78 - b _0807823E - .align 2, 0 -_0807820C: .4byte 0x0000BBCC -_08078210: .4byte 0x0000EEAA -_08078214: .4byte gUnknown_2031F3C -_08078218: - ldr r0, _08078224 - ldr r0, [r0] - adds r0, #0x78 - strb r2, [r0] - b _08078242 - .align 2, 0 -_08078224: .4byte gUnknown_2031F3C -_08078228: - ldr r0, _08078234 - ldr r0, [r0] - adds r0, #0x7a - strb r2, [r0] - b _08078242 - .align 2, 0 -_08078234: .4byte gUnknown_2031F3C -_08078238: - ldr r0, _08078270 - ldr r0, [r0] - adds r0, #0x7a -_0807823E: - movs r1, #2 - strb r1, [r0] -_08078242: - movs r0, #0 - bl sub_08076C3C -_08078248: - movs r2, #2 - adds r0, r4, #0 - ands r0, r2 - cmp r0, #0 - beq _080782DA - ldr r3, _08078274 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r3, r1 - ldrh r1, [r0] - ldr r0, _08078278 - cmp r1, r0 - beq _080782BC - cmp r1, r0 - bgt _08078280 - ldr r0, _0807827C - cmp r1, r0 - beq _080782A0 - b _080782D4 - .align 2, 0 -_08078270: .4byte gUnknown_2031F3C -_08078274: .4byte gUnknown_202207C -_08078278: .4byte 0x0000BBBB -_0807827C: .4byte 0x0000AABB -_08078280: - ldr r0, _08078294 - cmp r1, r0 - beq _080782CC - ldr r0, _08078298 - cmp r1, r0 - bne _080782D4 - ldr r0, _0807829C - ldr r0, [r0] - adds r0, #0x79 - b _080782D2 - .align 2, 0 -_08078294: .4byte 0x0000BBCC -_08078298: .4byte 0x0000EEAA -_0807829C: .4byte gUnknown_2031F3C -_080782A0: - ldr r2, _080782B8 - ldr r1, [r2] - movs r4, #0x81 - lsls r4, r4, #1 - adds r0, r3, r4 - ldrb r0, [r0] - adds r0, #6 - adds r1, #0x7e - strb r0, [r1] - ldr r0, [r2] - adds r0, #0x79 - b _080782C2 - .align 2, 0 -_080782B8: .4byte gUnknown_2031F3C -_080782BC: - ldr r0, _080782C8 - ldr r0, [r0] - adds r0, #0x7b -_080782C2: - movs r1, #1 - strb r1, [r0] - b _080782D4 - .align 2, 0 -_080782C8: .4byte gUnknown_2031F3C -_080782CC: - ldr r0, _080782E0 - ldr r0, [r0] - adds r0, #0x7b -_080782D2: - strb r2, [r0] -_080782D4: - movs r0, #1 - bl sub_08076C3C -_080782DA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080782E0: .4byte gUnknown_2031F3C - thumb_func_end sub_080781C4 - - thumb_func_start sub_080782E4 -sub_080782E4: @ 0x080782E4 - push {r4, r5, lr} - sub sp, #4 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - movs r0, #1 - ands r0, r5 - cmp r0, #0 - beq _080783C6 - ldr r2, _08078310 - ldrh r1, [r2] - ldr r0, _08078314 - cmp r1, r0 - beq _080783B0 - cmp r1, r0 - bgt _08078320 - ldr r0, _08078318 - cmp r1, r0 - beq _08078390 - ldr r0, _0807831C - cmp r1, r0 - beq _0807835C - b _080783C0 - .align 2, 0 -_08078310: .4byte gUnknown_202207C -_08078314: .4byte 0x0000DDEE -_08078318: .4byte 0x0000CCDD -_0807831C: .4byte 0x0000DDDD -_08078320: - ldr r0, _08078330 - cmp r1, r0 - beq _08078334 - adds r0, #0x11 - cmp r1, r0 - beq _08078358 - b _080783C0 - .align 2, 0 -_08078330: .4byte 0x0000EEBB -_08078334: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - movs r0, #4 - bl sub_08079BD4 - ldr r0, _08078354 - ldr r0, [r0] - adds r0, #0x6f - movs r1, #0xb - b _080783BE - .align 2, 0 -_08078354: .4byte gUnknown_2031F3C -_08078358: - movs r0, #5 - b _080783B2 -_0807835C: - ldr r4, _0807838C - ldr r1, [r4] - ldrb r0, [r2, #2] - adds r0, #6 - adds r1, #0x7e - strb r0, [r1] - movs r0, #0 - bl rbox_fill_rectangle - ldr r0, [r4] - adds r0, #0x35 - ldrb r0, [r0] - bl sub_08079090 - ldr r0, [r4] - adds r0, #0x7e - ldrb r0, [r0] - bl sub_08079090 - ldr r0, [r4] - adds r0, #0x6f - movs r1, #7 - b _080783BE - .align 2, 0 -_0807838C: .4byte gUnknown_2031F3C -_08078390: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _080783AC - ldr r0, [r0] - adds r0, #0x6f - movs r1, #0xa - b _080783BE - .align 2, 0 -_080783AC: .4byte gUnknown_2031F3C -_080783B0: - movs r0, #1 -_080783B2: - bl sub_08079BD4 - ldr r0, _080783DC - ldr r0, [r0] - adds r0, #0x6f - movs r1, #8 -_080783BE: - strb r1, [r0] -_080783C0: - movs r0, #0 - bl sub_08076C3C -_080783C6: - movs r0, #2 - ands r0, r5 - cmp r0, #0 - beq _080783D4 - movs r0, #1 - bl sub_08076C3C -_080783D4: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080783DC: .4byte gUnknown_2031F3C - thumb_func_end sub_080782E4 - - thumb_func_start sub_080783E0 -sub_080783E0: @ 0x080783E0 - push {r4, r5, r6, lr} - sub sp, #4 - ldr r6, _0807843C - ldr r2, [r6] - adds r1, r2, #0 - adds r1, #0x78 - ldrb r0, [r1] - cmp r0, #0 - bne _080783F4 - b _08078528 -_080783F4: - adds r0, r2, #0 - adds r0, #0x79 - ldrb r0, [r0] - cmp r0, #0 - bne _08078400 - b _08078528 -_08078400: - ldrh r1, [r1] - ldr r0, _08078440 - cmp r1, r0 - bne _08078448 - adds r1, r2, #0 - adds r1, #0x6f - movs r0, #6 - strb r0, [r1] - ldr r2, [r6] - adds r1, r2, #0 - adds r1, #0x80 - movs r4, #0 - ldr r0, _08078444 - strh r0, [r1] - adds r0, r2, #0 - adds r0, #0x35 - ldrb r1, [r0] - adds r0, #0x4d - strh r1, [r0] - movs r0, #5 - movs r1, #0 - bl sub_08079A80 - ldr r0, [r6] - adds r2, r0, #0 - adds r2, #0x79 - strb r4, [r2] - adds r0, #0x78 - strb r4, [r0] - b _08078528 - .align 2, 0 -_0807843C: .4byte gUnknown_2031F3C -_08078440: .4byte 0x00000101 -_08078444: .4byte 0x0000DDDD -_08078448: - ldr r0, _08078490 - cmp r1, r0 - bne _08078498 - movs r0, #1 - bl sub_08079BD4 - ldr r1, [r6] - adds r2, r1, #0 - adds r2, #0x80 - movs r4, #0 - movs r3, #0 - ldr r0, _08078494 - strh r0, [r2] - adds r1, #0x82 - strh r3, [r1] - movs r0, #5 - movs r1, #0 - bl sub_08079A80 - ldr r0, [r6] - adds r1, r0, #0 - adds r1, #0x7b - strb r4, [r1] - adds r0, #0x7a - strb r4, [r0] - ldr r0, [r6] - adds r1, r0, #0 - adds r1, #0x79 - strb r4, [r1] - adds r0, #0x78 - strb r4, [r0] - ldr r0, [r6] - adds r0, #0x6f - movs r1, #8 - b _08078526 - .align 2, 0 -_08078490: .4byte 0x00000201 -_08078494: .4byte 0x0000EECC -_08078498: - movs r0, #0x81 - lsls r0, r0, #1 - cmp r1, r0 - bne _080784E4 - movs r0, #5 - bl sub_08079BD4 - ldr r1, [r6] - adds r2, r1, #0 - adds r2, #0x80 - movs r4, #0 - movs r3, #0 - ldr r0, _080784E0 - strh r0, [r2] - adds r1, #0x82 - strh r3, [r1] - movs r0, #5 - movs r1, #0 - bl sub_08079A80 - ldr r0, [r6] - adds r1, r0, #0 - adds r1, #0x7b - strb r4, [r1] - adds r0, #0x7a - strb r4, [r0] - ldr r0, [r6] - adds r1, r0, #0 - adds r1, #0x79 - strb r4, [r1] - adds r0, #0x78 - strb r4, [r0] - ldr r0, [r6] - adds r0, #0x6f - movs r1, #8 - b _08078526 - .align 2, 0 -_080784E0: .4byte 0x0000DDEE -_080784E4: - ldr r0, _080785C8 - cmp r1, r0 - bne _08078528 - adds r1, r2, #0 - adds r1, #0x80 - movs r5, #0 - movs r4, #0 - ldr r0, _080785CC - strh r0, [r1] - adds r0, r2, #0 - adds r0, #0x82 - strh r4, [r0] - movs r0, #5 - movs r1, #0 - bl sub_08079A80 - movs r0, #1 - rsbs r0, r0, #0 - str r4, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, [r6] - adds r1, r0, #0 - adds r1, #0x79 - strb r5, [r1] - adds r0, #0x78 - strb r5, [r0] - ldr r0, [r6] - adds r0, #0x6f - movs r1, #0xb -_08078526: - strb r1, [r0] -_08078528: - ldr r5, _080785D0 - ldr r3, [r5] - adds r1, r3, #0 - adds r1, #0x7a - ldrb r0, [r1] - cmp r0, #0 - beq _080785C0 - adds r0, r3, #0 - adds r0, #0x7b - ldrb r0, [r0] - cmp r0, #0 - beq _080785C0 - ldrh r1, [r1] - ldr r0, _080785D4 - cmp r1, r0 - bne _08078576 - adds r1, r3, #0 - adds r1, #0x80 - movs r4, #0 - movs r2, #0 - ldr r0, _080785D8 - strh r0, [r1] - adds r0, r3, #0 - adds r0, #0x82 - strh r2, [r0] - movs r0, #5 - movs r1, #0 - bl sub_08079A80 - ldr r0, [r5] - adds r0, #0x7a - strb r4, [r0] - ldr r0, [r5] - adds r0, #0x7b - strb r4, [r0] - ldr r0, [r5] - adds r0, #0x6f - movs r1, #9 - strb r1, [r0] -_08078576: - ldr r1, [r5] - adds r0, r1, #0 - adds r0, #0x7a - ldrb r0, [r0] - cmp r0, #2 - beq _0807858C - adds r0, r1, #0 - adds r0, #0x7b - ldrb r0, [r0] - cmp r0, #2 - bne _080785C0 -_0807858C: - movs r0, #1 - bl sub_08079BD4 - ldr r1, [r5] - adds r2, r1, #0 - adds r2, #0x80 - movs r4, #0 - movs r3, #0 - ldr r0, _080785DC - strh r0, [r2] - adds r1, #0x82 - strh r3, [r1] - movs r0, #5 - movs r1, #0 - bl sub_08079A80 - ldr r0, [r5] - adds r0, #0x7a - strb r4, [r0] - ldr r0, [r5] - adds r0, #0x7b - strb r4, [r0] - ldr r0, [r5] - adds r0, #0x6f - movs r1, #8 - strb r1, [r0] -_080785C0: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080785C8: .4byte 0x00000202 -_080785CC: .4byte 0x0000EEBB -_080785D0: .4byte gUnknown_2031F3C -_080785D4: .4byte 0x00000101 -_080785D8: .4byte 0x0000CCDD -_080785DC: .4byte 0x0000DDEE - thumb_func_end sub_080783E0 - - thumb_func_start sub_080785E0 -sub_080785E0: @ 0x080785E0 - push {lr} - strh r1, [r0] - strh r2, [r0, #2] - movs r0, #5 - movs r1, #0 - bl sub_08079A80 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080785E0 - - thumb_func_start sub_080785F4 -sub_080785F4: @ 0x080785F4 - push {lr} - adds r3, r0, #0 - adds r2, r1, #0 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldr r0, _08078614 - ldr r0, [r0] - adds r0, #0x80 - adds r1, r3, #0 - bl sub_080785E0 - pop {r0} - bx r0 - .align 2, 0 -_08078614: .4byte gUnknown_2031F3C - thumb_func_end sub_080785F4 - - thumb_func_start sub_08078618 -sub_08078618: @ 0x08078618 - push {r4, lr} - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl sub_08076C08 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _08078640 - cmp r4, #0 - bne _0807863A - movs r0, #0 - bl sub_080781C4 - b _08078640 -_0807863A: - adds r0, r4, #0 - bl sub_080782E4 -_08078640: - cmp r4, #0 - bne _08078648 - bl sub_080783E0 -_08078648: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08078618 - - thumb_func_start sub_08078650 -sub_08078650: @ 0x08078650 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r6, #0 - movs r5, #0 - ldr r2, _08078684 - ldr r3, [r2] - ldr r4, _08078688 - lsls r2, r1, #1 - adds r2, r2, r1 - lsls r2, r2, #1 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r3, #0x38 - adds r2, r2, r1 - adds r2, r2, r4 -_08078676: - ldrb r1, [r2] - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, #1 - bne _0807868C - adds r6, r1, #0 - b _08078694 - .align 2, 0 -_08078684: .4byte gUnknown_2031F3C -_08078688: .4byte gUnknown_83008E4 -_0807868C: - adds r2, #1 - adds r5, #1 - cmp r5, #5 - ble _08078676 -_08078694: - adds r0, r6, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_08078650 - - thumb_func_start TradeMenuMoveCursor -TradeMenuMoveCursor: @ 0x0807869C - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrb r0, [r7] - bl sub_08078650 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0xc - bne _080786F4 - ldr r5, _080786EC - ldr r0, [r5] - adds r0, #0x34 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _080786F0 - adds r0, r0, r4 - movs r1, #1 - bl StartSpriteAnim - ldr r2, [r5] - adds r2, #0x34 - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0xe8 - strh r1, [r0, #0x20] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0xa0 - strh r1, [r0, #0x22] - b _0807873C - .align 2, 0 -_080786EC: .4byte gUnknown_2031F3C -_080786F0: .4byte gUnknown_20205AC -_080786F4: - ldr r4, _08078750 - ldr r0, [r4] - adds r0, #0x34 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r5, _08078754 - adds r0, r0, r5 - movs r1, #0 - bl StartSpriteAnim - ldr r4, [r4] - adds r4, #0x34 - ldrb r0, [r4] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldr r2, _08078758 - lsls r3, r6, #1 - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, r0, #3 - adds r0, #0x20 - strh r0, [r1, #0x20] - ldrb r0, [r4] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - adds r2, #1 - adds r3, r3, r2 - ldrb r0, [r3] - lsls r0, r0, #3 - strh r0, [r1, #0x22] -_0807873C: - ldrb r0, [r7] - cmp r0, r6 - beq _08078748 - movs r0, #5 - bl sub_080A306C -_08078748: - strb r6, [r7] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08078750: .4byte gUnknown_2031F3C -_08078754: .4byte gUnknown_20205AC -_08078758: .4byte gUnknown_8300A1C - thumb_func_end TradeMenuMoveCursor - - thumb_func_start sub_0807875C -sub_0807875C: @ 0x0807875C - push {r4, lr} - movs r0, #0 - bl sub_08079BD4 - ldr r4, _08078788 - ldr r0, [r4] - adds r0, #0x6f - movs r1, #0x64 - strb r1, [r0] - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08078790 - ldr r0, _0807878C - ldr r1, [r4] - adds r1, #0x35 - ldrb r1, [r1] - bl sub_080785F4 - b _08078798 - .align 2, 0 -_08078788: .4byte gUnknown_2031F3C -_0807878C: .4byte 0x0000AABB -_08078790: - ldr r0, [r4] - adds r0, #0x78 - movs r1, #1 - strb r1, [r0] -_08078798: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0807875C - - thumb_func_start sub_080787A0 -sub_080787A0: @ 0x080787A0 - push {r4, r5, lr} - sub sp, #0xc - ldr r0, _080787C0 - ldrh r1, [r0, #0x30] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080787C8 - ldr r0, _080787C4 - ldr r0, [r0] - adds r0, #0x35 - movs r1, #0 - bl TradeMenuMoveCursor - b _08078814 - .align 2, 0 -_080787C0: .4byte gUnknown_3002360 -_080787C4: .4byte gUnknown_2031F3C -_080787C8: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080787E4 - ldr r0, _080787E0 - ldr r0, [r0] - adds r0, #0x35 - movs r1, #1 - bl TradeMenuMoveCursor - b _08078814 - .align 2, 0 -_080787E0: .4byte gUnknown_2031F3C -_080787E4: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08078800 - ldr r0, _080787FC - ldr r0, [r0] - adds r0, #0x35 - movs r1, #2 - bl TradeMenuMoveCursor - b _08078814 - .align 2, 0 -_080787FC: .4byte gUnknown_2031F3C -_08078800: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08078814 - ldr r0, _08078888 - ldr r0, [r0] - adds r0, #0x35 - movs r1, #3 - bl TradeMenuMoveCursor -_08078814: - ldr r0, _0807888C - ldrh r1, [r0, #0x2e] - movs r5, #1 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _080788EA - movs r0, #5 - bl sub_080A306C - ldr r4, _08078888 - ldr r0, [r4] - adds r0, #0x35 - ldrb r0, [r0] - cmp r0, #5 - bhi _08078894 - movs r0, #1 - movs r1, #1 - movs r2, #0xe - bl DrawTextBorderOuter - movs r0, #1 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r0, _08078890 - str r0, [sp] - movs r0, #1 - movs r1, #1 - movs r2, #0x10 - movs r3, #2 - bl sub_08198964 - movs r0, #0x10 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl sub_081984B0 - movs r0, #1 - bl PutWindowTilemap - movs r0, #1 - movs r1, #3 - bl CopyWindowToVram - ldr r0, [r4] - adds r0, #0x6f - movs r1, #1 - strb r1, [r0] - b _080788EA - .align 2, 0 -_08078888: .4byte gUnknown_2031F3C -_0807888C: .4byte gUnknown_3002360 -_08078890: .4byte gUnknown_8300B28 -_08078894: - cmp r0, #0xb - bhi _080788B2 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, [r4] - adds r0, #0x6f - movs r1, #2 - strb r1, [r0] - b _080788EA -_080788B2: - cmp r0, #0xc - bne _080788EA - ldr r0, _080788F4 - str r5, [sp] - movs r1, #0xe - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - movs r2, #2 - movs r3, #2 - bl sub_08198C08 - ldr r0, [r4] - adds r0, #0x6f - movs r1, #4 - strb r1, [r0] - ldr r0, _080788F8 - ldr r0, [r0, #0x10] - ldr r1, [r4] - adds r1, #0x72 - ldrh r1, [r1] - lsls r1, r1, #5 - ldr r2, _080788FC - adds r1, r1, r2 - movs r2, #0x18 - bl sub_08079D3C -_080788EA: - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080788F4: .4byte gUnknown_8300CAC -_080788F8: .4byte gUnknown_8300AFC -_080788FC: .4byte 0x06010000 - thumb_func_end sub_080787A0 - - thumb_func_start sub_08078900 -sub_08078900: @ 0x08078900 - push {lr} - bl sub_080799AC - ldr r3, _08078948 - ldr r0, [r3] - adds r0, #0x6f - movs r1, #0 - strb r1, [r0] - ldr r2, _0807894C - ldr r0, [r3] - adds r0, #0x34 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - ldr r0, _08078950 - ldr r0, [r0, #4] - ldr r1, [r3] - adds r1, #0x72 - ldrh r1, [r1] - lsls r1, r1, #5 - ldr r2, _08078954 - adds r1, r1, r2 - movs r2, #0x18 - bl sub_08079D3C - pop {r0} - bx r0 - .align 2, 0 -_08078948: .4byte gUnknown_2031F3C -_0807894C: .4byte gUnknown_20205AC -_08078950: .4byte gUnknown_8300AFC -_08078954: .4byte 0x06010000 - thumb_func_end sub_08078900 - - thumb_func_start sub_08078958 -sub_08078958: @ 0x08078958 - push {lr} - sub sp, #4 - bl Menu_ProcessInputNoWrap - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _0807897A - cmp r0, r1 - ble _08078A32 - cmp r0, #0 - beq _08078986 - cmp r0, #1 - beq _080789A4 - b _08078A32 -_0807897A: - movs r0, #5 - bl sub_080A306C - bl sub_08078900 - b _08078A32 -_08078986: - str r0, [sp] - adds r0, r1, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _080789A0 - ldr r0, [r0] - adds r0, #0x6f - movs r1, #2 - b _08078A30 - .align 2, 0 -_080789A0: .4byte gUnknown_2031F3C -_080789A4: - ldr r0, _080789C4 - ldr r1, _080789C8 - ldrb r1, [r1] - ldr r2, _080789CC - ldr r2, [r2] - adds r2, #0x35 - ldrb r2, [r2] - bl sub_0807A064 - cmp r0, #5 - bhi _08078A32 - lsls r0, r0, #2 - ldr r1, _080789D0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080789C4: .4byte gUnknown_2024190 -_080789C8: .4byte gUnknown_202418D -_080789CC: .4byte gUnknown_2031F3C -_080789D0: .4byte _080789D4 -_080789D4: @ jump table - .4byte _080789EC @ case 0 - .4byte _08078A14 @ case 1 - .4byte _08078A1A @ case 2 - .4byte _08078A20 @ case 3 - .4byte _08078A1A @ case 4 - .4byte _08078A20 @ case 5 -_080789EC: - bl sub_0807875C - ldr r2, _08078A0C - ldr r0, _08078A10 - ldr r0, [r0] - adds r0, #0x34 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - b _08078A30 - .align 2, 0 -_08078A0C: .4byte gUnknown_20205AC -_08078A10: .4byte gUnknown_2031F3C -_08078A14: - movs r0, #3 - movs r1, #3 - b _08078A24 -_08078A1A: - movs r0, #3 - movs r1, #6 - b _08078A24 -_08078A20: - movs r0, #3 - movs r1, #7 -_08078A24: - bl sub_08079A80 - ldr r0, _08078A38 - ldr r0, [r0] - adds r0, #0x6f - movs r1, #8 -_08078A30: - strb r1, [r0] -_08078A32: - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_08078A38: .4byte gUnknown_2031F3C - thumb_func_end sub_08078958 - - thumb_func_start sub_08078A3C -sub_08078A3C: @ 0x08078A3C - push {lr} - ldr r0, _08078A60 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08078A52 - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08078A5C -_08078A52: - movs r0, #5 - bl sub_080A306C - bl sub_08078900 -_08078A5C: - pop {r0} - bx r0 - .align 2, 0 -_08078A60: .4byte gUnknown_3002360 - thumb_func_end sub_08078A3C - - thumb_func_start sub_08078A64 -sub_08078A64: @ 0x08078A64 - push {lr} - sub sp, #4 - ldr r0, _08078A9C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08078ACC - ldr r0, _08078AA0 - ldr r0, [r0] - adds r3, r0, #0 - adds r3, #0x35 - ldrb r2, [r3] - cmp r2, #5 - bhi _08078AAC - ldr r1, _08078AA4 - ldrb r2, [r3] - adds r0, #0x36 - ldrb r3, [r0] - subs r3, #1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r0, _08078AA8 - str r0, [sp] - movs r0, #1 - bl ShowPokemonSummaryScreen - b _08078AC8 - .align 2, 0 -_08078A9C: .4byte gUnknown_2037C74 -_08078AA0: .4byte gUnknown_2031F3C -_08078AA4: .4byte gUnknown_2024190 -_08078AA8: .4byte sub_08077558 -_08078AAC: - ldr r1, _08078AD4 - subs r2, #6 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, #0x37 - ldrb r3, [r0] - subs r3, #1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r0, _08078AD8 - str r0, [sp] - movs r0, #1 - bl ShowPokemonSummaryScreen -_08078AC8: - bl FreeAllWindowBuffers -_08078ACC: - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_08078AD4: .4byte gUnknown_20243E8 -_08078AD8: .4byte sub_08077558 - thumb_func_end sub_08078A64 - - thumb_func_start sub_08078ADC -sub_08078ADC: @ 0x08078ADC - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r6, r3, #0x18 - movs r5, #0 - movs r3, #0 - ldr r7, _08078B64 - cmp r5, r1 - bge _08078B0A -_08078AF6: - cmp r2, r3 - beq _08078B04 - adds r0, r4, r3 - ldrb r0, [r0] - adds r0, r5, r0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_08078B04: - adds r3, #1 - cmp r3, r1 - blt _08078AF6 -_08078B0A: - adds r0, r6, #0 - movs r1, #6 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r0, #0x64 - muls r0, r6, r0 - adds r7, r0, r7 - adds r0, r7, #0 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r0, #0xcd - lsls r0, r0, #1 - cmp r4, r0 - beq _08078B34 - cmp r4, #0x97 - bne _08078B40 -_08078B34: - adds r0, r7, #0 - movs r1, #0x50 - bl GetMonData - cmp r0, #0 - beq _08078B60 -_08078B40: - bl IsNationalPokedexEnabled - cmp r0, #0 - bne _08078B6C - ldr r0, _08078B68 - ldr r0, [r0] - adds r0, #0x57 - adds r0, r0, r6 - ldrb r0, [r0] - cmp r0, #0 - bne _08078B60 - adds r0, r4, #0 - bl MainMenu_FormatSavegameText - cmp r0, #0 - bne _08078B6C -_08078B60: - movs r0, #2 - b _08078B74 - .align 2, 0 -_08078B64: .4byte gUnknown_20243E8 -_08078B68: .4byte gUnknown_2031F3C -_08078B6C: - cmp r5, #0 - beq _08078B72 - movs r5, #1 -_08078B72: - adds r0, r5, #0 -_08078B74: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08078ADC - - thumb_func_start sub_08078B7C -sub_08078B7C: @ 0x08078B7C - push {r4, r5, lr} - sub sp, #0xc - movs r2, #0 - ldr r0, _08078BD4 - ldr r1, [r0] - adds r3, r1, #0 - adds r3, #0x36 - adds r5, r0, #0 - ldrb r0, [r3] - cmp r2, r0 - bge _08078BA8 - adds r4, r1, #0 - adds r4, #0x45 -_08078B96: - mov r1, sp - adds r0, r1, r2 - adds r1, r4, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - ldrb r0, [r3] - cmp r2, r0 - blt _08078B96 -_08078BA8: - ldr r0, [r5] - adds r1, r0, #0 - adds r1, #0x36 - ldrb r1, [r1] - adds r2, r0, #0 - adds r2, #0x35 - ldrb r2, [r2] - adds r0, #0x7e - ldrb r3, [r0] - mov r0, sp - bl sub_08078ADC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08078BF0 - cmp r0, #1 - bgt _08078BD8 - cmp r0, #0 - beq _08078BDE - b _08078C14 - .align 2, 0 -_08078BD4: .4byte gUnknown_2031F3C -_08078BD8: - cmp r0, #2 - beq _08078C08 - b _08078C14 -_08078BDE: - movs r0, #3 - movs r1, #3 - bl sub_08079A80 - ldr r0, _08078BEC - b _08078BFA - .align 2, 0 -_08078BEC: .4byte 0x0000BBCC -_08078BF0: - movs r0, #3 - movs r1, #1 - bl sub_08079A80 - ldr r0, _08078C04 -_08078BFA: - movs r1, #0 - bl sub_080785F4 - b _08078C14 - .align 2, 0 -_08078C04: .4byte 0x0000BBBB -_08078C08: - movs r0, #3 - movs r1, #8 - bl sub_08079A80 - movs r0, #1 - b _08078C16 -_08078C14: - movs r0, #0 -_08078C16: - add sp, #0xc - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08078B7C - - thumb_func_start sub_08078C20 -sub_08078C20: @ 0x08078C20 - push {lr} - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _08078C42 - cmp r1, #0 - bgt _08078C3C - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _08078C70 - b _08078C98 -_08078C3C: - cmp r1, #1 - beq _08078C70 - b _08078C98 -_08078C42: - bl sub_08078B7C - cmp r0, #0 - bne _08078C58 - ldr r0, _08078C54 - ldr r0, [r0] - adds r0, #0x6f - movs r1, #0x64 - b _08078C60 - .align 2, 0 -_08078C54: .4byte gUnknown_2031F3C -_08078C58: - ldr r0, _08078C6C - ldr r0, [r0] - adds r0, #0x6f - movs r1, #0x11 -_08078C60: - strb r1, [r0] - movs r0, #0x11 - bl PutWindowTilemap - b _08078C98 - .align 2, 0 -_08078C6C: .4byte gUnknown_2031F3C -_08078C70: - movs r0, #3 - movs r1, #1 - bl sub_08079A80 - bl sub_08076BC4 - cmp r0, #0 - beq _08078C88 - ldr r0, _08078C9C - movs r1, #0 - bl sub_080785F4 -_08078C88: - ldr r0, _08078CA0 - ldr r0, [r0] - adds r0, #0x6f - movs r1, #0x64 - strb r1, [r0] - movs r0, #0x11 - bl PutWindowTilemap -_08078C98: - pop {r0} - bx r0 - .align 2, 0 -_08078C9C: .4byte 0x0000BBCC -_08078CA0: .4byte gUnknown_2031F3C - thumb_func_end sub_08078C20 - - thumb_func_start sub_08078CA4 -sub_08078CA4: @ 0x08078CA4 - push {r4, r5, r6, lr} - movs r5, #0 - ldr r0, _08078CE8 - ldr r0, [r0] - adds r0, #0x37 - ldrb r0, [r0] - subs r0, #4 - cmp r5, r0 - bge _08078CE0 - movs r6, #0xc0 - lsls r6, r6, #0x14 -_08078CBA: - lsrs r4, r6, #0x18 - adds r0, r4, #0 - bl PutWindowTilemap - adds r0, r4, #0 - movs r1, #1 - bl CopyWindowToVram - movs r0, #0x80 - lsls r0, r0, #0x11 - adds r6, r6, r0 - adds r5, #1 - ldr r0, _08078CE8 - ldr r0, [r0] - adds r0, #0x37 - ldrb r0, [r0] - subs r0, #4 - cmp r5, r0 - blt _08078CBA -_08078CE0: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08078CE8: .4byte gUnknown_2031F3C - thumb_func_end sub_08078CA4 - - thumb_func_start sub_08078CEC -sub_08078CEC: @ 0x08078CEC - push {lr} - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _08078D0E - cmp r1, #0 - bgt _08078D08 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _08078D54 - b _08078D5E -_08078D08: - cmp r1, #1 - beq _08078D54 - b _08078D5E -_08078D0E: - movs r0, #4 - bl sub_08079BD4 - ldr r0, _08078D48 - movs r1, #0 - bl sub_080785F4 - ldr r2, _08078D4C - ldr r3, _08078D50 - ldr r0, [r3] - adds r0, #0x34 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r3] - adds r0, #0x6f - movs r1, #0x64 - strb r1, [r0] - bl sub_08078CA4 - b _08078D5E - .align 2, 0 -_08078D48: .4byte 0x0000EEAA -_08078D4C: .4byte gUnknown_20205AC -_08078D50: .4byte gUnknown_2031F3C -_08078D54: - movs r0, #5 - bl sub_080A306C - bl sub_08078900 -_08078D5E: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08078CEC - - thumb_func_start sub_08078D64 -sub_08078D64: @ 0x08078D64 - push {r4, lr} - bl GetMultiplayerId - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08078D8C - movs r0, #0 - bl rbox_fill_rectangle - ldr r4, _08078D9C - ldr r0, [r4] - adds r0, #0x35 - ldrb r0, [r0] - bl sub_08079090 - ldr r0, [r4] - adds r0, #0x7e - ldrb r0, [r0] - bl sub_08079090 -_08078D8C: - ldr r0, _08078D9C - ldr r0, [r0] - adds r0, #0x6f - movs r1, #7 - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08078D9C: .4byte gUnknown_2031F3C - thumb_func_end sub_08078D64 - - thumb_func_start sub_08078DA0 -sub_08078DA0: @ 0x08078DA0 - push {r4, lr} - ldr r4, _08078DC4 - ldr r0, [r4] - adds r0, #0x74 - ldrh r1, [r0] - ldr r0, _08078DC8 - cmp r1, r0 - bne _08078DBC - bl sub_08078120 - ldr r0, [r4] - adds r0, #0x6f - movs r1, #0xe - strb r1, [r0] -_08078DBC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08078DC4: .4byte gUnknown_2031F3C -_08078DC8: .4byte 0x00000505 - thumb_func_end sub_08078DA0 - - thumb_func_start sub_08078DCC -sub_08078DCC: @ 0x08078DCC - push {r4, r5, lr} - sub sp, #0xc - ldr r4, _08078E14 - ldr r1, [r4] - adds r1, #0xa8 - ldrb r0, [r1] - adds r0, #1 - movs r5, #0 - strb r0, [r1] - ldr r0, [r4] - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #0x78 - bls _08078E0C - ldr r0, _08078E18 - movs r1, #1 - str r1, [sp] - movs r1, #0xe - str r1, [sp, #4] - str r5, [sp, #8] - movs r1, #1 - movs r2, #2 - movs r3, #2 - bl sub_08198C08 - ldr r0, [r4] - adds r0, #0xa8 - strb r5, [r0] - ldr r0, [r4] - adds r0, #0x6f - movs r1, #3 - strb r1, [r0] -_08078E0C: - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08078E14: .4byte gUnknown_2031F3C -_08078E18: .4byte gUnknown_8300CAC - thumb_func_end sub_08078DCC - - thumb_func_start sub_08078E1C -sub_08078E1C: @ 0x08078E1C - push {r4, r5, r6, lr} - ldr r0, _08078E98 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08078E90 - movs r0, #5 - bl sub_080A306C - movs r0, #0 - bl rbox_fill_rectangle - movs r0, #1 - bl rbox_fill_rectangle - movs r6, #0 - movs r5, #0xe0 - lsls r5, r5, #0x14 -_08078E42: - lsrs r4, r5, #0x18 - adds r0, r4, #0 - movs r1, #0 - bl FillWindowPixelBuffer - adds r0, r4, #0 - bl rbox_fill_rectangle - movs r0, #0x80 - lsls r0, r0, #0x11 - adds r5, r5, r0 - adds r6, #1 - cmp r6, #3 - ble _08078E42 - movs r0, #0 - bl sub_080799C0 - movs r0, #1 - bl sub_080799C0 - ldr r2, _08078E9C - ldr r0, [r2] - adds r0, #0x6f - movs r1, #0 - strb r1, [r0] - ldr r3, _08078EA0 - ldr r0, [r2] - adds r0, #0x34 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] -_08078E90: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08078E98: .4byte gUnknown_3002360 -_08078E9C: .4byte gUnknown_2031F3C -_08078EA0: .4byte gUnknown_20205AC - thumb_func_end sub_08078E1C - - thumb_func_start sub_08078EA4 -sub_08078EA4: @ 0x08078EA4 - push {lr} - ldr r0, _08078EC0 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08078ED8 - ldr r0, _08078EC4 - ldrb r0, [r0] - cmp r0, #0 - beq _08078EC8 - bl sub_0800A8D4 - b _08078ECE - .align 2, 0 -_08078EC0: .4byte gUnknown_2037C74 -_08078EC4: .4byte gUnknown_300319C -_08078EC8: - movs r0, #0xc - bl sub_0800A7B8 -_08078ECE: - ldr r0, _08078EDC - ldr r0, [r0] - adds r0, #0x6f - movs r1, #0xc - strb r1, [r0] -_08078ED8: - pop {r0} - bx r0 - .align 2, 0 -_08078EDC: .4byte gUnknown_2031F3C - thumb_func_end sub_08078EA4 - - thumb_func_start sub_08078EE0 -sub_08078EE0: @ 0x08078EE0 - push {lr} - ldr r0, _08078F1C - ldrb r0, [r0] - cmp r0, #0 - beq _08078F2C - bl sub_08076BC4 - cmp r0, #0 - beq _08078F4E - bl sub_08079AD4 - cmp r0, #0 - bne _08078F4E - ldr r0, _08078F20 - ldr r0, [r0] - bl Free - ldr r0, _08078F24 - ldr r0, [r0] - bl Free - bl FreeAllWindowBuffers - bl DestroyWirelessStatusIndicatorSprite - ldr r0, _08078F28 - bl SetMainCallback2 - b _08078F4E - .align 2, 0 -_08078F1C: .4byte gUnknown_300319C -_08078F20: .4byte gUnknown_2031E28 -_08078F24: .4byte gUnknown_2031F3C -_08078F28: .4byte CB2_ReturnToFieldFromMultiplayer -_08078F2C: - ldr r0, _08078F54 - ldrb r0, [r0] - cmp r0, #0 - bne _08078F4E - ldr r0, _08078F58 - ldr r0, [r0] - bl Free - ldr r0, _08078F5C - ldr r0, [r0] - bl Free - bl FreeAllWindowBuffers - ldr r0, _08078F60 - bl SetMainCallback2 -_08078F4E: - pop {r0} - bx r0 - .align 2, 0 -_08078F54: .4byte gUnknown_30031C4 -_08078F58: .4byte gUnknown_2031E28 -_08078F5C: .4byte gUnknown_2031F3C -_08078F60: .4byte CB2_ReturnToFieldFromMultiplayer - thumb_func_end sub_08078EE0 - - thumb_func_start sub_08078F64 -sub_08078F64: @ 0x08078F64 - push {lr} - movs r0, #0 - bl sub_0800FF8C - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08078F88 - bl sub_08079AD4 - cmp r0, #0 - bne _08078F88 - bl sub_0800A8D4 - ldr r0, _08078F8C - ldr r0, [r0] - adds r0, #0x6f - movs r1, #0xd - strb r1, [r0] -_08078F88: - pop {r0} - bx r0 - .align 2, 0 -_08078F8C: .4byte gUnknown_2031F3C - thumb_func_end sub_08078F64 - - thumb_func_start sub_08078F90 -sub_08078F90: @ 0x08078F90 - push {lr} - ldr r0, _08078FB4 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08078FB0 - ldr r0, _08078FB8 - movs r1, #0 - bl sub_080785F4 - ldr r0, _08078FBC - ldr r0, [r0] - adds r0, #0x6f - movs r1, #0x64 - strb r1, [r0] -_08078FB0: - pop {r0} - bx r0 - .align 2, 0 -_08078FB4: .4byte gUnknown_3002360 -_08078FB8: .4byte 0x0000BBCC -_08078FBC: .4byte gUnknown_2031F3C - thumb_func_end sub_08078F90 - - thumb_func_start sub_08078FC0 -sub_08078FC0: @ 0x08078FC0 - push {lr} - ldr r0, _08078FD8 - ldr r0, [r0] - adds r0, #0x6f - ldrb r0, [r0] - cmp r0, #0x11 - bhi _0807908C - lsls r0, r0, #2 - ldr r1, _08078FDC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08078FD8: .4byte gUnknown_2031F3C -_08078FDC: .4byte _08078FE0 -_08078FE0: @ jump table - .4byte _08079028 @ case 0 - .4byte _0807902E @ case 1 - .4byte _08079034 @ case 2 - .4byte _0807903A @ case 3 - .4byte _08079040 @ case 4 - .4byte _0807908C @ case 5 - .4byte _08079046 @ case 6 - .4byte _0807904C @ case 7 - .4byte _08079052 @ case 8 - .4byte _08079058 @ case 9 - .4byte _0807905E @ case 10 - .4byte _08079064 @ case 11 - .4byte _0807906A @ case 12 - .4byte _08079070 @ case 13 - .4byte _08079076 @ case 14 - .4byte _0807907C @ case 15 - .4byte _08079082 @ case 16 - .4byte _08079088 @ case 17 -_08079028: - bl sub_080787A0 - b _0807908C -_0807902E: - bl sub_08078958 - b _0807908C -_08079034: - bl sub_08078A64 - b _0807908C -_0807903A: - bl sub_08078C20 - b _0807908C -_08079040: - bl sub_08078CEC - b _0807908C -_08079046: - bl sub_08078D64 - b _0807908C -_0807904C: - bl sub_08078DA0 - b _0807908C -_08079052: - bl sub_08078E1C - b _0807908C -_08079058: - bl sub_08077AF8 - b _0807908C -_0807905E: - bl sub_08077B34 - b _0807908C -_08079064: - bl sub_08078EA4 - b _0807908C -_0807906A: - bl sub_08078EE0 - b _0807908C -_08079070: - bl sub_08077B90 - b _0807908C -_08079076: - bl sub_08078DCC - b _0807908C -_0807907C: - bl sub_08078A3C - b _0807908C -_08079082: - bl sub_08078F64 - b _0807908C -_08079088: - bl sub_08078F90 -_0807908C: - pop {r0} - bx r0 - thumb_func_end sub_08078FC0 - - thumb_func_start sub_08079090 -sub_08079090: @ 0x08079090 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - movs r1, #6 - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r3, _080790C4 - ldr r0, [r3] - adds r0, #0x74 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, #0 - bne _080790BC - movs r0, #1 - strb r0, [r1] - ldr r0, [r3] - adds r0, #0x76 - adds r0, r0, r2 - strb r4, [r0] -_080790BC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080790C4: .4byte gUnknown_2031F3C - thumb_func_end sub_08079090 - - thumb_func_start sub_080790C8 -sub_080790C8: @ 0x080790C8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x5c - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _08079114 - ldr r4, [r0] - adds r0, r4, #0 - adds r0, #0x76 - adds r0, r0, r7 - ldrb r0, [r0] - movs r1, #1 - str r1, [sp, #0x50] - cmp r0, #5 - bhi _080790F0 - movs r2, #0 - str r2, [sp, #0x50] -_080790F0: - movs r1, #6 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - adds r0, r4, #0 - adds r0, #0x74 - adds r3, r0, r7 - ldrb r0, [r3] - cmp r0, #2 - bne _0807910A - b _080792A0 -_0807910A: - cmp r0, #2 - bgt _08079118 - cmp r0, #1 - beq _08079126 - b _08079454 - .align 2, 0 -_08079114: .4byte gUnknown_2031F3C -_08079118: - cmp r0, #3 - bne _0807911E - b _080792D8 -_0807911E: - cmp r0, #4 - bne _08079124 - b _0807941C -_08079124: - b _08079454 -_08079126: - movs r5, #0 - adds r1, r4, #0 - adds r1, #0x36 - adds r1, r1, r7 - ldr r0, [sp, #0x50] - lsls r0, r0, #1 - mov r8, r0 - lsls r6, r7, #1 - lsls r2, r7, #4 - str r2, [sp, #0x58] - movs r0, #0 - ldrb r1, [r1] - cmp r0, r1 - bhs _0807917C - ldr r0, _0807928C - mov sb, r0 - ldr r4, _08079290 - ldr r0, [sp, #0x50] - add r0, r8 - lsls r2, r0, #1 - movs r3, #4 -_08079150: - ldr r0, [r4] - adds r1, r5, r2 - adds r0, #0x28 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sb - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, [r4] - adds r0, #0x36 - adds r0, r0, r7 - ldrb r0, [r0] - cmp r5, r0 - blo _08079150 -_0807917C: - movs r5, #0 - adds r0, r6, r7 - lsls r0, r0, #1 - adds r4, r0, #2 -_08079184: - lsls r0, r5, #0x18 - asrs r0, r0, #0x18 - adds r0, r0, r4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl ClearWindowTilemap - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #5 - bls _08079184 - ldr r1, _08079290 - mov sb, r1 - ldr r0, [r1] - ldr r6, [sp, #0x50] - add r6, r8 - lsls r3, r6, #1 - add sl, r3 - adds r0, #0x28 - add r0, sl - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r2, _0807928C - adds r0, r0, r2 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - mov r0, sb - ldr r4, [r0] - adds r4, #0x28 - add r4, sl - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0807928C - adds r0, r0, r1 - movs r1, #0x14 - strh r1, [r0, #0x2e] - ldrb r0, [r4] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r0, _0807928C - adds r2, r2, r0 - ldr r5, _08079294 - lsls r6, r6, #2 - adds r0, r6, r5 - ldrb r0, [r0] - adds r3, #1 - lsls r3, r3, #1 - adds r3, r3, r5 - ldrb r1, [r3] - adds r0, r0, r1 - asrs r0, r0, #1 - lsls r0, r0, #3 - adds r0, #0xe - strh r0, [r2, #0x32] - ldrb r0, [r4] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r2, _0807928C - adds r1, r1, r2 - adds r5, #1 - adds r6, r6, r5 - ldrb r0, [r6] - lsls r0, r0, #3 - subs r0, #0xc - strh r0, [r1, #0x36] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, _08079298 - bl StoreSpriteCallbackInData6 - mov r0, sb - ldr r1, [r0] - adds r1, #0x74 - adds r1, r1, r7 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - mov r1, sb - ldr r0, [r1] - adds r0, #0x28 - add r0, sl - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r2, _0807928C - adds r0, r0, r2 - bl sub_080A66B4 - ldr r1, _0807929C - ldr r0, [sp, #0x58] - subs r2, r0, r7 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r0, #0xf - str r0, [sp] - movs r0, #0x11 - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - movs r0, #1 - movs r3, #0 - bl CopyToBgTilemapBufferRect_ChangePalette - movs r0, #1 - bl CopyBgTilemapBufferToVram - movs r0, #0 - bl CopyBgTilemapBufferToVram - ldr r1, [sp, #0x50] - cmp r1, #0 - beq _08079284 - b _08079454 -_08079284: - bl sub_080799AC - b _08079454 - .align 2, 0 -_0807928C: .4byte gUnknown_20205AC -_08079290: .4byte gUnknown_2031F3C -_08079294: .4byte gUnknown_8300A1C -_08079298: .4byte sub_080D28B4 -_0807929C: .4byte gUnknown_82FEDCA -_080792A0: - ldr r2, _080792D0 - ldr r1, [sp, #0x50] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - add r0, sl - adds r1, r4, #0 - adds r1, #0x28 - adds r1, r1, r0 - ldrb r1, [r1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _080792D4 - cmp r1, r0 - beq _080792C8 - b _08079454 -_080792C8: - movs r0, #3 - strb r0, [r3] - b _08079454 - .align 2, 0 -_080792D0: .4byte gUnknown_20205AC -_080792D4: .4byte sub_080D28B4 -_080792D8: - ldr r1, _08079404 - ldr r0, [sp, #0x50] - lsls r2, r0, #4 - subs r2, r2, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r0, #0xf - str r0, [sp] - movs r0, #0x11 - str r0, [sp, #4] - movs r0, #0 - mov sb, r0 - str r0, [sp, #8] - movs r0, #1 - movs r3, #0 - bl CopyToBgTilemapBufferRect_ChangePalette - movs r0, #1 - bl CopyBgTilemapBufferToVram - ldr r6, _08079408 - ldr r1, _0807940C - ldr r4, [r1] - ldr r2, [sp, #0x50] - lsls r3, r2, #1 - adds r3, r3, r2 - lsls r1, r3, #1 - mov r2, sl - adds r0, r2, r1 - adds r4, #0x28 - adds r4, r4, r0 - ldrb r0, [r4] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r6 - ldr r5, _08079410 - lsls r3, r3, #2 - adds r0, r3, r5 - ldrb r0, [r0] - adds r1, #1 - lsls r1, r1, #1 - adds r1, r1, r5 - ldrb r1, [r1] - adds r0, r0, r1 - asrs r0, r0, #1 - lsls r0, r0, #3 - adds r0, #0xe - strh r0, [r2, #0x20] - ldrb r0, [r4] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - adds r5, #1 - adds r3, r3, r5 - ldrb r0, [r3] - lsls r0, r0, #3 - subs r0, #0xc - strh r0, [r1, #0x22] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - mov r1, sb - strh r1, [r0, #0x24] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - mov r2, sb - strh r2, [r0, #0x26] - add r0, sp, #0x14 - ldr r1, [sp, #0x50] - mov r2, sl - bl sub_0807946C - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r4, r7, #1 - adds r5, r4, #0 - adds r5, #0xe - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r6, _08079414 - str r6, [sp] - mov r0, sb - str r0, [sp, #4] - add r1, sp, #0x14 - str r1, [sp, #8] - adds r0, r5, #0 - movs r1, #1 - movs r2, #0 - movs r3, #0 - bl AddTextPrinterParameterized3 - mov r2, sp - adds r2, #0x28 - str r2, [sp, #0x54] - adds r0, r2, #0 - ldr r1, [sp, #0x50] - mov r2, sl - bl sub_08079564 - adds r4, #0xf - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r6, [sp] - mov r0, sb - str r0, [sp, #4] - ldr r0, _08079418 - str r0, [sp, #8] - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - movs r3, #0 - bl AddTextPrinterParameterized3 - mov r1, sb - str r1, [sp] - str r1, [sp, #4] - str r6, [sp, #8] - str r1, [sp, #0xc] - ldr r2, [sp, #0x54] - str r2, [sp, #0x10] - adds r0, r4, #0 - movs r1, #1 - movs r2, #0x18 - movs r3, #0 - bl AddTextPrinterParameterized4 - adds r0, r5, #0 - bl PutWindowTilemap - adds r0, r5, #0 - movs r1, #3 - bl CopyWindowToVram - adds r0, r4, #0 - bl PutWindowTilemap - adds r0, r4, #0 - movs r1, #3 - bl CopyWindowToVram - ldr r0, _0807940C - ldr r1, [r0] - b _0807944A - .align 2, 0 -_08079404: .4byte gUnknown_82FEBCC -_08079408: .4byte gUnknown_20205AC -_0807940C: .4byte gUnknown_2031F3C -_08079410: .4byte gUnknown_8300A1C -_08079414: .4byte gUnknown_8300C00 -_08079418: .4byte gUnknown_8300A9B -_0807941C: - ldr r0, _08079464 - lsls r1, r7, #1 - adds r4, r1, r0 - ldrb r2, [r4] - adds r2, #4 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, #1 - adds r1, r1, r0 - ldrb r3, [r1] - adds r3, #1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldrb r0, [r4] - str r0, [sp] - ldrb r0, [r1] - str r0, [sp, #4] - adds r0, r7, #0 - mov r1, sl - bl sub_08079740 - ldr r2, _08079468 - ldr r1, [r2] -_0807944A: - adds r1, #0x74 - adds r1, r1, r7 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_08079454: - add sp, #0x5c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08079464: .4byte gUnknown_8300D40 -_08079468: .4byte gUnknown_2031F3C - thumb_func_end sub_080790C8 - - thumb_func_start sub_0807946C -sub_0807946C: @ 0x0807946C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - adds r5, r0, #0 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - cmp r7, #0 - bne _08079494 - movs r0, #0x64 - adds r4, r6, #0 - muls r4, r0, r4 - ldr r0, _08079490 - b _0807949C - .align 2, 0 -_08079490: .4byte gUnknown_2024190 -_08079494: - movs r0, #0x64 - adds r4, r6, #0 - muls r4, r0, r4 - ldr r0, _0807952C -_0807949C: - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #2 - mov r2, sp - bl GetMonData - adds r0, r5, #0 - mov r1, sp - bl StringCopy10 - adds r0, r4, #0 - bl GetMonGender - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - adds r0, r4, #0 - movs r1, #0x38 - bl GetMonData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldr r0, _08079530 - mov sl, r0 - ldr r4, [r0] - adds r0, r6, #0 - movs r1, #6 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r7, #1 - adds r1, r1, r7 - lsls r1, r1, #1 - adds r6, r0, r1 - adds r4, #0x51 - adds r4, r4, r6 - ldrb r0, [r4] - cmp r0, #0 - bne _080794F6 - adds r0, r5, #0 - mov r1, r8 - bl AppendGenderSymbol -_080794F6: - ldr r1, _08079534 - adds r0, r5, #0 - bl StringAppend - mov r1, sl - ldr r0, [r1] - adds r0, #0x51 - adds r0, r0, r6 - ldrb r0, [r0] - cmp r0, #0 - bne _0807953C - ldr r1, _08079538 - adds r0, r5, #0 - bl StringAppend - mov r0, sp - mov r1, sb - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - adds r0, r5, #0 - mov r1, sp - bl StringAppend - b _08079544 - .align 2, 0 -_0807952C: .4byte gUnknown_20243E8 -_08079530: .4byte gUnknown_2031F3C -_08079534: .4byte gUnknown_8300AA0 -_08079538: .4byte gUnknown_8300AA2 -_0807953C: - ldr r1, _08079560 - adds r0, r5, #0 - bl StringAppend -_08079544: - adds r0, r5, #0 - bl StringLength - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08079560: .4byte gUnknown_8300AA5 - thumb_func_end sub_0807946C - - thumb_func_start sub_08079564 -sub_08079564: @ 0x08079564 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #8 - adds r6, r0, #0 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r0, _080795AC - ldr r1, [r0] - lsls r0, r7, #1 - adds r0, r0, r7 - lsls r0, r0, #1 - adds r0, r2, r0 - adds r1, #0x51 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0 - bne _0807961C - movs r4, #0 - movs r0, #0x64 - adds r5, r2, #0 - muls r5, r0, r5 - ldr r0, _080795B0 - mov sb, r0 - ldr r2, _080795B4 - mov r8, r2 -_0807959E: - cmp r7, #0 - bne _080795B8 - adds r1, r4, #0 - adds r1, #0xd - mov r2, sb - b _080795BE - .align 2, 0 -_080795AC: .4byte gUnknown_2031F3C -_080795B0: .4byte gUnknown_2024190 -_080795B4: .4byte gUnknown_20243E8 -_080795B8: - adds r1, r4, #0 - adds r1, #0xd - mov r2, r8 -_080795BE: - adds r0, r5, r2 - movs r2, #0 - bl GetMonData - lsls r1, r4, #1 - add r1, sp - strh r0, [r1] - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #3 - bls _0807959E - ldr r1, _08079610 - adds r0, r6, #0 - bl StringCopy - movs r4, #0 -_080795E0: - lsls r0, r4, #1 - mov r2, sp - adds r1, r2, r0 - ldrh r0, [r1] - cmp r0, #0 - beq _080795FA - adds r1, r0, #0 - lsls r1, r1, #3 - ldr r0, _08079614 - adds r1, r1, r0 - adds r0, r6, #0 - bl StringAppend -_080795FA: - adds r0, r6, #0 - ldr r1, _08079618 - bl StringAppend - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #3 - bls _080795E0 - b _0807962C - .align 2, 0 -_08079610: .4byte gUnknown_8300A8A -_08079614: .4byte gUnknown_82EACC4 -_08079618: .4byte gUnknown_8300A9E -_0807961C: - ldr r1, _0807963C - adds r0, r6, #0 - bl StringCopy - ldr r1, _08079640 - adds r0, r6, #0 - bl StringAppend -_0807962C: - add sp, #8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0807963C: .4byte gUnknown_8300A8A -_08079640: .4byte gUnknown_8300AA9 - thumb_func_end sub_08079564 - - thumb_func_start sub_08079644 -sub_08079644: @ 0x08079644 - push {r4, lr} - sub sp, #0xc - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - adds r1, #2 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - adds r4, r4, r1 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _0807968C - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r2, [sp, #8] - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - movs r3, #0 - bl AddTextPrinterParameterized3 - adds r0, r4, #0 - bl PutWindowTilemap - adds r0, r4, #0 - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0807968C: .4byte gUnknown_8300C00 - thumb_func_end sub_08079644 - - thumb_func_start sub_08079690 -sub_08079690: @ 0x08079690 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x34 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _08079734 - mov sl, r0 - cmp r5, #0 - bne _080796AC - ldr r1, _08079738 - mov sl, r1 -_080796AC: - movs r6, #0 - ldr r1, _0807973C - ldr r0, [r1] - adds r0, #0x36 - adds r0, r0, r5 - ldrb r0, [r0] - cmp r6, r0 - bhs _08079724 - add r7, sp, #0x14 - mov r8, r1 - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #1 - mov sb, r0 -_080796C8: - movs r0, #0x64 - adds r4, r6, #0 - muls r4, r0, r4 - add r4, sl - adds r0, r4, #0 - movs r1, #2 - mov r2, sp - bl GetMonData - adds r0, r7, #0 - mov r1, sp - bl StringCopy10 - adds r0, r4, #0 - bl GetMonGender - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - mov r3, r8 - ldr r0, [r3] - mov r3, sb - adds r1, r6, r3 - adds r0, #0x51 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _08079706 - adds r0, r7, #0 - adds r1, r2, #0 - bl AppendGenderSymbol -_08079706: - adds r0, r5, #0 - adds r1, r6, #0 - adds r2, r7, #0 - bl sub_08079644 - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - mov r1, r8 - ldr r0, [r1] - adds r0, #0x36 - adds r0, r0, r5 - ldrb r0, [r0] - cmp r6, r0 - blo _080796C8 -_08079724: - add sp, #0x34 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08079734: .4byte gUnknown_20243E8 -_08079738: .4byte gUnknown_2024190 -_0807973C: .4byte gUnknown_2031F3C - thumb_func_end sub_08079690 - - thumb_func_start sub_08079740 -sub_08079740: @ 0x08079740 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - ldr r4, [sp, #0x30] - ldr r5, [sp, #0x34] - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sb, r2 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r3, [sp, #0xc] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r1, _0807979C - movs r0, #6 - str r0, [sp] - movs r0, #3 - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - movs r0, #1 - adds r2, r4, #0 - adds r3, r5, #0 - bl CopyToBgTilemapBufferRect_ChangePalette - movs r0, #1 - bl CopyBgTilemapBufferToVram - cmp r7, #0 - bne _080797A4 - movs r0, #0x64 - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - ldr r1, _080797A0 - b _080797AE - .align 2, 0 -_0807979C: .4byte gUnknown_82FFFC8 -_080797A0: .4byte gUnknown_2024190 -_080797A4: - movs r0, #0x64 - mov r3, r8 - muls r3, r0, r3 - adds r0, r3, #0 - ldr r1, _08079824 -_080797AE: - adds r0, r0, r1 - movs r1, #0x38 - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _08079828 - mov sl, r0 - ldr r4, [r0] - lsls r0, r7, #1 - adds r0, r0, r7 - lsls r0, r0, #1 - add r0, r8 - adds r1, r4, #0 - adds r1, #0x51 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0 - bne _0807982C - adds r0, r6, #0 - movs r1, #0xa - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, [sp, #0xc] - lsls r2, r1, #5 - cmp r5, #0 - beq _080797FE - mov r3, sb - adds r0, r3, r2 - lsls r0, r0, #1 - movs r3, #0x8f - lsls r3, r3, #4 - adds r1, r4, r3 - adds r1, r1, r0 - adds r0, r5, #0 - adds r0, #0x60 - strh r0, [r1] -_080797FE: - mov r0, sl - ldr r4, [r0] - mov r1, sb - adds r0, r1, r2 - adds r0, #1 - lsls r0, r0, #1 - movs r3, #0x8f - lsls r3, r3, #4 - adds r4, r4, r3 - adds r4, r4, r0 - adds r0, r6, #0 - movs r1, #0xa - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #0x70 - strh r0, [r4] - b _0807986A - .align 2, 0 -_08079824: .4byte gUnknown_20243E8 -_08079828: .4byte gUnknown_2031F3C -_0807982C: - ldr r1, [sp, #0xc] - lsls r0, r1, #5 - mov r1, sb - adds r3, r1, r0 - adds r1, r3, #0 - subs r1, #0x20 - lsls r1, r1, #1 - movs r0, #0x8f - lsls r0, r0, #4 - adds r2, r4, r0 - adds r1, r2, r1 - adds r0, r3, #0 - subs r0, #0x21 - lsls r0, r0, #1 - adds r0, r2, r0 - ldrh r0, [r0] - strh r0, [r1] - adds r1, r3, #0 - subs r1, #0x1f - lsls r1, r1, #1 - adds r1, r2, r1 - adds r0, r3, #0 - subs r0, #0x24 - lsls r0, r0, #1 - adds r2, r2, r0 - ldrh r2, [r2] - movs r3, #0x80 - lsls r3, r3, #3 - adds r0, r3, #0 - orrs r0, r2 - strh r0, [r1] -_0807986A: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08079740 - - thumb_func_start sub_0807987C -sub_0807987C: @ 0x0807987C - push {r4, r5, r6, r7, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r7, #0 - ldr r0, _080798D4 - ldr r0, [r0] - adds r0, #0x36 - adds r0, r0, r6 - ldrb r0, [r0] - cmp r7, r0 - bge _080798CC - lsls r0, r6, #1 - adds r0, r0, r6 - ldr r1, _080798D8 - lsls r0, r0, #2 - adds r5, r0, r1 - ldr r1, _080798DC - adds r4, r0, r1 -_080798A2: - lsls r1, r7, #0x18 - lsrs r1, r1, #0x18 - ldrb r2, [r5] - ldrb r3, [r5, #1] - ldrb r0, [r4] - str r0, [sp] - ldrb r0, [r4, #1] - str r0, [sp, #4] - adds r0, r6, #0 - bl sub_08079740 - adds r5, #2 - adds r4, #2 - adds r7, #1 - ldr r0, _080798D4 - ldr r0, [r0] - adds r0, #0x36 - adds r0, r0, r6 - ldrb r0, [r0] - cmp r7, r0 - blt _080798A2 -_080798CC: - add sp, #8 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080798D4: .4byte gUnknown_2031F3C -_080798D8: .4byte gUnknown_8300A36 -_080798DC: .4byte gUnknown_8300A4E - thumb_func_end sub_0807987C - - thumb_func_start sub_080798E0 -sub_080798E0: @ 0x080798E0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov ip, r0 - movs r7, #0 - ldr r3, _080799A0 - ldr r0, [r3] - adds r0, #0x36 - add r0, ip - ldrb r0, [r0] - cmp r7, r0 - bge _08079992 - ldr r6, _080799A4 - mov sb, r3 - mov r1, ip - lsls r0, r1, #1 - add r0, ip - lsls r2, r0, #1 - mov sl, r2 - ldr r1, _080799A8 - movs r2, #0 - mov r8, r2 - lsls r0, r0, #2 - adds r5, r0, r1 -_08079918: - mov r1, sb - ldr r0, [r1] - mov r2, sl - adds r4, r7, r2 - adds r0, #0x28 - adds r0, r0, r4 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - adds r1, #0x3e - ldrb r2, [r1] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - mov r0, sb - ldr r3, [r0] - adds r2, r3, #0 - adds r2, #0x28 - adds r2, r2, r4 - ldrb r0, [r2] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrb r0, [r5] - lsls r0, r0, #3 - adds r0, #0xe - strh r0, [r1, #0x20] - ldrb r0, [r2] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrb r0, [r5, #1] - lsls r0, r0, #3 - subs r0, #0xc - strh r0, [r1, #0x22] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - mov r1, r8 - strh r1, [r0, #0x24] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - mov r2, r8 - strh r2, [r0, #0x26] - adds r5, #2 - adds r7, #1 - adds r3, #0x36 - add r3, ip - ldrb r3, [r3] - cmp r7, r3 - blt _08079918 -_08079992: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080799A0: .4byte gUnknown_2031F3C -_080799A4: .4byte gUnknown_20205AC -_080799A8: .4byte gUnknown_8300A1C - thumb_func_end sub_080798E0 - - thumb_func_start sub_080799AC -sub_080799AC: @ 0x080799AC - push {lr} - movs r0, #1 - bl rbox_fill_rectangle - movs r0, #1 - bl sub_08079690 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080799AC - - thumb_func_start sub_080799C0 -sub_080799C0: @ 0x080799C0 - push {r4, r5, r6, lr} - sub sp, #0xc - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _08079A28 - lsls r2, r4, #4 - subs r2, r2, r4 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r0, #0xf - str r0, [sp] - movs r0, #0x11 - str r0, [sp, #4] - movs r6, #0 - str r6, [sp, #8] - movs r0, #1 - movs r3, #0 - bl CopyToBgTilemapBufferRect_ChangePalette - movs r0, #1 - bl CopyBgTilemapBufferToVram - adds r0, r4, #0 - bl sub_0807987C - adds r0, r4, #0 - bl sub_08079690 - adds r0, r4, #0 - bl sub_080798E0 - ldr r0, _08079A2C - ldr r0, [r0, #4] - ldr r5, _08079A30 - ldr r1, [r5] - adds r1, #0x72 - ldrh r1, [r1] - lsls r1, r1, #5 - ldr r2, _08079A34 - adds r1, r1, r2 - movs r2, #0x18 - bl sub_08079D3C - ldr r0, [r5] - adds r0, #0x74 - adds r0, r0, r4 - strb r6, [r0] - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08079A28: .4byte gUnknown_82FEDCA -_08079A2C: .4byte gUnknown_8300AFC -_08079A30: .4byte gUnknown_2031F3C -_08079A34: .4byte 0x06010000 - thumb_func_end sub_080799C0 - - thumb_func_start sub_08079A38 -sub_08079A38: @ 0x08079A38 - push {lr} - sub sp, #8 - movs r0, #0x1e - str r0, [sp] - movs r0, #0x14 - str r0, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, #0 - bl CopyBgTilemapBufferToVram - add sp, #8 - pop {r0} - bx r0 - thumb_func_end sub_08079A38 - - thumb_func_start sub_08079A5C -sub_08079A5C: @ 0x08079A5C - push {lr} - sub sp, #8 - movs r0, #0x1e - str r0, [sp] - movs r0, #0x14 - str r0, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, #0 - bl CopyBgTilemapBufferToVram - add sp, #8 - pop {r0} - bx r0 - thumb_func_end sub_08079A5C - - thumb_func_start sub_08079A80 -sub_08079A80: @ 0x08079A80 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - movs r3, #0 - ldr r4, _08079AC0 - mov ip, r4 - movs r7, #0x8d - lsls r7, r7, #4 -_08079A94: - mov r1, ip - ldr r0, [r1] - lsls r1, r3, #3 - adds r2, r0, r1 - adds r0, r2, r7 - ldrb r0, [r0] - cmp r0, #0 - bne _08079AC8 - ldr r3, _08079AC4 - adds r0, r2, r3 - strh r5, [r0] - adds r3, #2 - adds r0, r2, r3 - strb r6, [r0] - ldr r0, [r4] - adds r0, r0, r1 - movs r1, #0x8d - lsls r1, r1, #4 - adds r0, r0, r1 - movs r1, #1 - strb r1, [r0] - b _08079ACE - .align 2, 0 -_08079AC0: .4byte gUnknown_2031F3C -_08079AC4: .4byte 0x000008D2 -_08079AC8: - adds r3, #1 - cmp r3, #3 - ble _08079A94 -_08079ACE: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08079A80 - - thumb_func_start sub_08079AD4 -sub_08079AD4: @ 0x08079AD4 - push {lr} - movs r3, #0 - ldr r0, _08079AF8 - ldr r0, [r0] - movs r2, #0x8d - lsls r2, r2, #4 - adds r1, r0, r2 - movs r2, #3 -_08079AE4: - ldrb r0, [r1] - adds r3, r3, r0 - adds r1, #8 - subs r2, #1 - cmp r2, #0 - bge _08079AE4 - adds r0, r3, #0 - pop {r1} - bx r1 - .align 2, 0 -_08079AF8: .4byte gUnknown_2031F3C - thumb_func_end sub_08079AD4 - - thumb_func_start sub_08079AFC -sub_08079AFC: @ 0x08079AFC - push {r4, r5, lr} - movs r4, #0 - ldr r3, _08079B28 -_08079B02: - ldr r0, [r3] - lsls r1, r4, #3 - adds r2, r0, r1 - movs r5, #0x8d - lsls r5, r5, #4 - adds r0, r2, r5 - ldrb r0, [r0] - adds r5, r1, #0 - cmp r0, #0 - beq _08079BC4 - ldr r0, _08079B2C - adds r1, r2, r0 - ldrh r0, [r1] - cmp r0, #0 - beq _08079B30 - subs r0, #1 - strh r0, [r1] - b _08079BC4 - .align 2, 0 -_08079B28: .4byte gUnknown_2031F3C -_08079B2C: .4byte 0x000008D2 -_08079B30: - ldr r1, _08079B44 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #8 - bhi _08079BB2 - lsls r0, r0, #2 - ldr r1, _08079B48 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08079B44: .4byte 0x000008D4 -_08079B48: .4byte _08079B4C -_08079B4C: @ jump table - .4byte _08079B70 @ case 0 - .4byte _08079B84 @ case 1 - .4byte _08079B8C @ case 2 - .4byte _08079B94 @ case 3 - .4byte _08079B94 @ case 4 - .4byte _08079B94 @ case 5 - .4byte _08079B9C @ case 6 - .4byte _08079BA4 @ case 7 - .4byte _08079BAC @ case 8 -_08079B70: - ldr r0, _08079B80 - ldr r0, [r0] - adds r0, #0x80 - movs r1, #0x14 - bl sub_08076B78 - b _08079BB2 - .align 2, 0 -_08079B80: .4byte gUnknown_2031F3C -_08079B84: - movs r0, #0 - bl sub_08079BD4 - b _08079BB2 -_08079B8C: - movs r0, #2 - bl sub_08079BD4 - b _08079BB2 -_08079B94: - movs r0, #3 - bl sub_08079BD4 - b _08079BB2 -_08079B9C: - movs r0, #6 - bl sub_08079BD4 - b _08079BB2 -_08079BA4: - movs r0, #7 - bl sub_08079BD4 - b _08079BB2 -_08079BAC: - movs r0, #8 - bl sub_08079BD4 -_08079BB2: - ldr r0, _08079BD0 - ldr r1, [r0] - adds r1, r1, r5 - movs r2, #0x8d - lsls r2, r2, #4 - adds r1, r1, r2 - movs r2, #0 - strb r2, [r1] - adds r3, r0, #0 -_08079BC4: - adds r4, #1 - cmp r4, #3 - ble _08079B02 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08079BD0: .4byte gUnknown_2031F3C - thumb_func_end sub_08079AFC - - thumb_func_start sub_08079BD4 -sub_08079BD4: @ 0x08079BD4 - push {r4, lr} - sub sp, #0xc - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r0, _08079C24 - lsls r4, r4, #2 - adds r4, r4, r0 - ldr r2, [r4] - movs r0, #2 - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - movs r1, #1 - movs r3, #2 - bl AddTextPrinterParameterized - movs r0, #0 - movs r1, #0x14 - movs r2, #0xc - bl DrawTextBorderOuter - movs r0, #0 - bl PutWindowTilemap - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08079C24: .4byte gUnknown_8300BDC - thumb_func_end sub_08079BD4 - - thumb_func_start sub_08079C28 -sub_08079C28: @ 0x08079C28 - push {r4, lr} - sub sp, #8 - ldr r0, _08079C78 - ldr r1, [r0] - adds r3, r1, #0 - adds r3, #0xa8 - ldrb r1, [r3] - adds r4, r0, #0 - cmp r1, #0xc - bhi _08079C64 - ldr r1, _08079C7C - ldrb r0, [r3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp] - ldr r0, _08079C80 - ldr r2, [sp, #4] - ands r2, r0 - movs r0, #0x80 - lsls r0, r0, #1 - orrs r2, r0 - str r2, [sp, #4] - ldrb r1, [r3] - adds r1, #0xc8 - lsls r1, r1, #0x10 - ldr r0, _08079C84 - ands r0, r2 - orrs r0, r1 - str r0, [sp, #4] -_08079C64: - ldr r0, [r4] - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #0x10 - bhi _08079D30 - lsls r0, r0, #2 - ldr r1, _08079C88 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08079C78: .4byte gUnknown_2031F3C -_08079C7C: .4byte gUnknown_2031E2C -_08079C80: .4byte 0xFFFF0000 -_08079C84: .4byte 0x0000FFFF -_08079C88: .4byte _08079C8C -_08079C8C: @ jump table - .4byte _08079CD0 @ case 0 - .4byte _08079CD0 @ case 1 - .4byte _08079CD0 @ case 2 - .4byte _08079CD0 @ case 3 - .4byte _08079CD0 @ case 4 - .4byte _08079CD0 @ case 5 - .4byte _08079CD0 @ case 6 - .4byte _08079CD4 @ case 7 - .4byte _08079CEC @ case 8 - .4byte _08079CEC @ case 9 - .4byte _08079CEC @ case 10 - .4byte _08079CEC @ case 11 - .4byte _08079CEC @ case 12 - .4byte _08079CF0 @ case 13 - .4byte _08079CFC @ case 14 - .4byte _08079D08 @ case 15 - .4byte _08079D24 @ case 16 -_08079CD0: - mov r0, sp - b _08079D0A -_08079CD4: - mov r0, sp - bl LoadSpriteSheet - ldr r1, _08079CE8 - ldr r1, [r1] - adds r2, r1, #0 - adds r2, #0x72 - strh r0, [r2] - b _08079D12 - .align 2, 0 -_08079CE8: .4byte gUnknown_2031F3C -_08079CEC: - mov r0, sp - b _08079D0A -_08079CF0: - ldr r0, _08079CF8 - bl LoadSpritePalette - b _08079D0E - .align 2, 0 -_08079CF8: .4byte gUnknown_83008DC -_08079CFC: - ldr r0, _08079D04 - bl LoadSpritePalette - b _08079D0E - .align 2, 0 -_08079D04: .4byte gUnknown_830083C -_08079D08: - ldr r0, _08079D1C -_08079D0A: - bl LoadSpriteSheet -_08079D0E: - ldr r0, _08079D20 - ldr r1, [r0] -_08079D12: - adds r1, #0xa8 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _08079D30 - .align 2, 0 -_08079D1C: .4byte gUnknown_8300834 -_08079D20: .4byte gUnknown_2031F3C -_08079D24: - ldr r0, [r4] - adds r0, #0xa8 - movs r1, #0 - strb r1, [r0] - movs r0, #1 - b _08079D32 -_08079D30: - movs r0, #0 -_08079D32: - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08079C28 - - thumb_func_start sub_08079D3C -sub_08079D3C: @ 0x08079D3C - push {r4, r5, r6, lr} - sub sp, #0x24 - adds r5, r0, #0 - adds r6, r1, #0 - lsls r2, r2, #0x18 - lsrs r4, r2, #0x18 - add r0, sp, #4 - movs r1, #0 - adds r2, r4, #0 - bl StringFill - movs r2, #0 - cmp r2, r4 - bge _08079D7C - ldrb r1, [r5] - adds r0, r1, #0 - cmp r0, #0xff - beq _08079D7C - add r0, sp, #4 -_08079D62: - strb r1, [r0] - adds r2, #1 - cmp r2, r4 - bge _08079D7C - adds r0, r5, r2 - ldrb r1, [r0] - adds r0, r1, #0 - cmp r0, #0xff - beq _08079D7C - mov r0, sp - adds r0, r0, r2 - adds r0, #4 - b _08079D62 -_08079D7C: - ldr r0, _08079D94 - str r0, [sp] - add r0, sp, #4 - adds r1, r6, #0 - movs r2, #0 - movs r3, #0 - bl sub_080C66A4 - add sp, #0x24 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08079D94: .4byte gUnknown_201C000 - thumb_func_end sub_08079D3C - - thumb_func_start sub_08079D98 -sub_08079D98: @ 0x08079D98 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - cmp r0, #0 - beq _08079DB0 - cmp r0, #1 - beq _08079E44 - b _08079ED0 -_08079DB0: - movs r7, #0 - ldr r1, _08079DF0 - ldr r0, [r1] - adds r0, #0x36 - ldrb r0, [r0] - cmp r7, r0 - blt _08079DC0 - b _08079ED0 -_08079DC0: - adds r6, r1, #0 - movs r5, #0 - mov sb, r5 -_08079DC6: - movs r0, #0x64 - adds r1, r7, #0 - muls r1, r0, r1 - ldr r0, _08079DF4 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - adds r1, r0, #0 - cmp r1, #1 - bne _08079DF8 - ldr r0, [r6] - adds r0, #0x45 - adds r0, r0, r5 - mov r2, sb - strb r2, [r0] - ldr r0, [r6] - adds r0, #0x51 - adds r0, r0, r5 - b _08079E28 - .align 2, 0 -_08079DF0: .4byte gUnknown_2031F3C -_08079DF4: .4byte gUnknown_2024190 -_08079DF8: - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - adds r1, r0, #0 - cmp r1, #0 - bne _08079E16 - ldr r0, [r6] - adds r0, #0x45 - adds r0, r0, r5 - strb r1, [r0] - ldr r0, [r6] - adds r0, #0x51 - adds r0, r0, r5 - b _08079E28 -_08079E16: - ldr r0, [r6] - adds r0, #0x45 - adds r0, r0, r5 - movs r1, #1 - strb r1, [r0] - ldr r0, [r6] - adds r0, #0x51 - adds r0, r0, r5 - mov r1, sb -_08079E28: - strb r1, [r0] - ldr r0, _08079E40 - adds r5, #1 - adds r7, #1 - ldr r0, [r0] - adds r0, #0x36 - add r0, r8 - ldrb r0, [r0] - cmp r7, r0 - blt _08079DC6 - b _08079ED0 - .align 2, 0 -_08079E40: .4byte gUnknown_2031F3C -_08079E44: - movs r7, #0 - ldr r1, _08079E84 - ldr r0, [r1] - adds r0, #0x37 - ldrb r0, [r0] - cmp r7, r0 - bge _08079ED0 - adds r6, r1, #0 - movs r5, #6 - movs r2, #0 - mov sb, r2 -_08079E5A: - movs r0, #0x64 - adds r1, r7, #0 - muls r1, r0, r1 - ldr r0, _08079E88 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - adds r1, r0, #0 - cmp r1, #1 - bne _08079E8C - ldr r0, [r6] - adds r0, #0x45 - adds r0, r0, r5 - mov r2, sb - strb r2, [r0] - ldr r0, [r6] - adds r0, #0x51 - adds r0, r0, r5 - b _08079EBC - .align 2, 0 -_08079E84: .4byte gUnknown_2031F3C -_08079E88: .4byte gUnknown_20243E8 -_08079E8C: - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - adds r1, r0, #0 - cmp r1, #0 - bne _08079EAA - ldr r0, [r6] - adds r0, #0x45 - adds r0, r0, r5 - strb r1, [r0] - ldr r0, [r6] - adds r0, #0x51 - adds r0, r0, r5 - b _08079EBC -_08079EAA: - ldr r0, [r6] - adds r0, #0x45 - adds r0, r0, r5 - movs r1, #1 - strb r1, [r0] - ldr r0, [r6] - adds r0, #0x51 - adds r0, r0, r5 - mov r1, sb -_08079EBC: - strb r1, [r0] - ldr r0, _08079EDC - adds r5, #1 - adds r7, #1 - ldr r0, [r0] - adds r0, #0x36 - add r0, r8 - ldrb r0, [r0] - cmp r7, r0 - blt _08079E5A -_08079ED0: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08079EDC: .4byte gUnknown_2031F3C - thumb_func_end sub_08079D98 - - thumb_func_start sub_08079EE0 -sub_08079EE0: @ 0x08079EE0 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _08079EF0 - cmp r0, #1 - beq _08079F50 - b _08079FA4 -_08079EF0: - movs r6, #0 - ldr r1, _08079F48 - ldr r0, [r1] - adds r0, #0x36 - ldrb r0, [r0] - cmp r6, r0 - bhs _08079FA4 - adds r7, r1, #0 -_08079F00: - movs r0, #0x64 - adds r4, r6, #0 - muls r4, r0, r4 - ldr r0, _08079F4C - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r4, #0 - movs r1, #0x3a - bl GetMonData - adds r1, r0, #0 - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl GetHPBarLevel - ldr r1, [r7] - adds r1, #0x5d - adds r1, r1, r6 - strb r0, [r1] - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r0, [r7] - adds r0, #0x36 - ldrb r0, [r0] - cmp r6, r0 - blo _08079F00 - b _08079FA4 - .align 2, 0 -_08079F48: .4byte gUnknown_2031F3C -_08079F4C: .4byte gUnknown_2024190 -_08079F50: - movs r6, #0 - ldr r1, _08079FAC - ldr r0, [r1] - adds r0, #0x37 - ldrb r0, [r0] - cmp r6, r0 - bhs _08079FA4 - adds r7, r1, #0 -_08079F60: - movs r0, #0x64 - adds r4, r6, #0 - muls r4, r0, r4 - ldr r0, _08079FB0 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r4, #0 - movs r1, #0x3a - bl GetMonData - adds r1, r0, #0 - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl GetHPBarLevel - ldr r1, [r7] - adds r1, #0x63 - adds r1, r1, r6 - strb r0, [r1] - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r0, [r7] - adds r0, #0x37 - ldrb r0, [r0] - cmp r6, r0 - blo _08079F60 -_08079FA4: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08079FAC: .4byte gUnknown_2031F3C -_08079FB0: .4byte gUnknown_20243E8 - thumb_func_end sub_08079EE0 - - thumb_func_start sub_08079FB4 -sub_08079FB4: @ 0x08079FB4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r5, #0 -_08079FBC: - movs r4, #0 - ldr r2, _0807A020 - ldr r0, [r2] - adds r0, #0x36 - adds r0, r0, r5 - adds r1, r5, #1 - mov r8, r1 - ldrb r0, [r0] - cmp r4, r0 - bge _0807A00E - adds r6, r2, #0 - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r7, r0, #1 -_08079FD8: - ldr r2, [r6] - adds r3, r4, r7 - adds r0, r2, #0 - adds r0, #0x28 - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0807A024 - adds r0, r0, r1 - adds r2, #0x5d - adds r2, r2, r3 - ldrb r2, [r2] - movs r1, #4 - subs r1, r1, r2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl sub_080D2B68 - adds r4, #1 - ldr r0, [r6] - adds r0, #0x36 - adds r0, r0, r5 - ldrb r0, [r0] - cmp r4, r0 - blt _08079FD8 -_0807A00E: - mov r5, r8 - cmp r5, #1 - ble _08079FBC - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0807A020: .4byte gUnknown_2031F3C -_0807A024: .4byte gUnknown_20205AC - thumb_func_end sub_08079FB4 - - thumb_func_start sub_0807A028 -sub_0807A028: @ 0x0807A028 - push {r4, r5, lr} - movs r2, #0 - ldr r5, _0807A058 - ldr r4, _0807A05C - ldr r3, _0807A060 -_0807A032: - ldr r0, [r5] - adds r0, r0, r4 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, #0 - bne _0807A04C - ldr r0, [r3] - adds r0, #0xa9 - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _0807A04C - strb r0, [r1] -_0807A04C: - adds r2, #1 - cmp r2, #0xa - ble _0807A032 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0807A058: .4byte gUnknown_3005AEC -_0807A05C: .4byte 0x000031A8 -_0807A060: .4byte gUnknown_2031F3C - thumb_func_end sub_0807A028 - - thumb_func_start sub_0807A064 -sub_0807A064: @ 0x0807A064 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x30 - mov r8, r0 - adds r7, r1, #0 - mov sb, r2 - movs r5, #0 - cmp r5, r7 - bge _0807A09E - mov r6, sp -_0807A07C: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - add r4, r8 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - str r0, [r6, #0x18] - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - stm r6!, {r0} - adds r5, #1 - cmp r5, r7 - blt _0807A07C -_0807A09E: - bl IsNationalPokedexEnabled - mov r1, sb - lsls r4, r1, #2 - cmp r0, #0 - bne _0807A0CC - add r0, sp, #0x18 - adds r0, r0, r4 - ldr r1, [r0] - movs r0, #0xce - lsls r0, r0, #1 - cmp r1, r0 - bne _0807A0BC - movs r0, #3 - b _0807A188 -_0807A0BC: - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - bl MainMenu_FormatSavegameText - cmp r0, #0 - bne _0807A0CC - movs r0, #2 - b _0807A188 -_0807A0CC: - bl GetMultiplayerId - movs r1, #1 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _0807A10C - adds r1, r1, r0 - ldrb r0, [r1] - subs r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bls _0807A11C - ldrb r1, [r1, #0x10] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _0807A11C - add r0, sp, #0x18 - adds r0, r0, r4 - ldr r1, [r0] - movs r0, #0xce - lsls r0, r0, #1 - cmp r1, r0 - bne _0807A110 - movs r0, #5 - b _0807A188 - .align 2, 0 -_0807A10C: .4byte gUnknown_20226A0 -_0807A110: - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - bl MainMenu_FormatSavegameText - cmp r0, #0 - beq _0807A142 -_0807A11C: - mov r1, sp - adds r0, r1, r4 - ldr r1, [r0] - movs r0, #0xcd - lsls r0, r0, #1 - cmp r1, r0 - beq _0807A12E - cmp r1, #0x97 - bne _0807A146 -_0807A12E: - movs r0, #0x64 - mov r1, sb - muls r1, r0, r1 - adds r0, r1, #0 - add r0, r8 - movs r1, #0x50 - bl GetMonData - cmp r0, #0 - bne _0807A146 -_0807A142: - movs r0, #4 - b _0807A188 -_0807A146: - cmp r7, #0 - ble _0807A164 - movs r3, #0xce - lsls r3, r3, #1 - movs r2, #0 - add r1, sp, #0x18 - adds r5, r7, #0 -_0807A154: - ldr r0, [r1] - cmp r0, r3 - bne _0807A15C - str r2, [r1] -_0807A15C: - adds r1, #4 - subs r5, #1 - cmp r5, #0 - bne _0807A154 -_0807A164: - movs r2, #0 - movs r5, #0 - cmp r2, r7 - bge _0807A17E - add r1, sp, #0x18 -_0807A16E: - cmp r5, sb - beq _0807A176 - ldr r0, [r1] - adds r2, r2, r0 -_0807A176: - adds r1, #4 - adds r5, #1 - cmp r5, r7 - blt _0807A16E -_0807A17E: - cmp r2, #0 - bne _0807A186 - movs r0, #1 - b _0807A188 -_0807A186: - movs r0, #0 -_0807A188: - add sp, #0x30 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0807A064 - - thumb_func_start sub_0807A198 -sub_0807A198: @ 0x0807A198 - push {r4, r5, r6, r7, lr} - ldr r0, _0807A218 - ldrb r0, [r0] - cmp r0, #0 - beq _0807A224 - movs r4, #0 - bl GetMultiplayerId - ldr r5, _0807A21C - movs r7, #1 - eors r0, r7 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrb r1, [r1] - subs r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #2 - bls _0807A224 - subs r0, r1, #4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bhi _0807A1D2 - movs r4, #2 -_0807A1D2: - cmp r4, #0 - ble _0807A224 - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrb r1, [r1, #0x10] - movs r6, #0xf0 - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _0807A220 - cmp r4, #2 - bne _0807A224 - bl GetMultiplayerId - eors r0, r7 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrb r1, [r1, #0x10] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - bne _0807A224 - movs r0, #2 - b _0807A226 - .align 2, 0 -_0807A218: .4byte gUnknown_30031C4 -_0807A21C: .4byte gUnknown_20226A0 -_0807A220: - movs r0, #1 - b _0807A226 -_0807A224: - movs r0, #0 -_0807A226: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_0807A198 - - thumb_func_start IsDeoxysOrMewUntradable -IsDeoxysOrMewUntradable: @ 0x0807A22C - push {lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0xcd - lsls r0, r0, #1 - cmp r2, r0 - beq _0807A242 - cmp r2, #0x97 - bne _0807A24A -_0807A242: - cmp r1, #0 - bne _0807A24A - movs r0, #1 - b _0807A24C -_0807A24A: - movs r0, #0 -_0807A24C: - pop {r1} - bx r1 - thumb_func_end IsDeoxysOrMewUntradable - - thumb_func_start sub_0807A250 -sub_0807A250: @ 0x0807A250 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r4, [sp, #0x20] - ldr r5, [sp, #0x24] - ldr r6, [sp, #0x28] - lsls r2, r2, #0x10 - lsrs r7, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - mov r8, r3 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r2, r0, #0x17 - lsrs r2, r2, #0x1f - mov sb, r2 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x1f - lsls r0, r1, #0x17 - lsrs r0, r0, #0x1f - mov sl, r0 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x1f - lsls r1, r1, #0x12 - lsrs r1, r1, #0x1c - cmp r1, #3 - beq _0807A2A2 - cmp r2, #0 - bne _0807A29A - movs r0, #8 - b _0807A330 -_0807A29A: - cmp r0, #0 - bne _0807A2A2 - movs r0, #9 - b _0807A330 -_0807A2A2: - adds r0, r5, #0 - adds r1, r6, #0 - bl IsDeoxysOrMewUntradable - cmp r0, #0 - bne _0807A308 - movs r0, #0xce - lsls r0, r0, #1 - cmp r8, r0 - bne _0807A2BE - cmp r7, r8 - beq _0807A2DC - movs r0, #2 - b _0807A330 -_0807A2BE: - ldr r0, _0807A2D8 - lsls r1, r7, #3 - subs r1, r1, r7 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #6] - cmp r0, r4 - beq _0807A2DC - ldrb r0, [r1, #7] - cmp r0, r4 - beq _0807A2DC - movs r0, #1 - b _0807A330 - .align 2, 0 -_0807A2D8: .4byte gUnknown_82F0D54 -_0807A2DC: - movs r0, #0xce - lsls r0, r0, #1 - cmp r7, r0 - bne _0807A2EC - cmp r7, r8 - beq _0807A2EC - movs r0, #3 - b _0807A330 -_0807A2EC: - mov r0, sb - cmp r0, #0 - bne _0807A31A - movs r0, #0xce - lsls r0, r0, #1 - cmp r7, r0 - bne _0807A2FE - movs r0, #6 - b _0807A330 -_0807A2FE: - adds r0, r7, #0 - bl MainMenu_FormatSavegameText - cmp r0, #0 - bne _0807A30C -_0807A308: - movs r0, #4 - b _0807A330 -_0807A30C: - mov r0, r8 - bl MainMenu_FormatSavegameText - cmp r0, #0 - bne _0807A31A - movs r0, #5 - b _0807A330 -_0807A31A: - mov r0, sl - cmp r0, #0 - bne _0807A32E - adds r0, r7, #0 - bl MainMenu_FormatSavegameText - cmp r0, #0 - bne _0807A32E - movs r0, #7 - b _0807A330 -_0807A32E: - movs r0, #0 -_0807A330: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0807A250 - - thumb_func_start sub_0807A340 -sub_0807A340: @ 0x0807A340 - push {r4, r5, r6, lr} - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - adds r6, r5, #0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r0, r0, #0x17 - lsrs r4, r0, #0x1f - adds r0, r2, #0 - adds r1, r3, #0 - bl IsDeoxysOrMewUntradable - cmp r0, #0 - bne _0807A37A - cmp r4, #0 - bne _0807A37E - movs r0, #0xce - lsls r0, r0, #1 - cmp r5, r0 - bne _0807A370 - movs r0, #2 - b _0807A380 -_0807A370: - adds r0, r6, #0 - bl MainMenu_FormatSavegameText - cmp r0, #0 - bne _0807A37E -_0807A37A: - movs r0, #1 - b _0807A380 -_0807A37E: - movs r0, #0 -_0807A380: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0807A340 - - thumb_func_start sub_0807A388 -sub_0807A388: @ 0x0807A388 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x18 - adds r6, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r8, r1 - movs r5, #0 - ldr r0, _0807A3D4 - ldrb r0, [r0] - cmp r5, r0 - bge _0807A3CA - mov r4, sp -_0807A3A4: - movs r0, #0x64 - muls r0, r5, r0 - adds r0, r6, r0 - movs r1, #0x41 - bl GetMonData - str r0, [r4] - movs r1, #0xce - lsls r1, r1, #1 - cmp r0, r1 - bne _0807A3BE - movs r0, #0 - str r0, [r4] -_0807A3BE: - adds r4, #4 - adds r5, #1 - ldr r0, _0807A3D4 - ldrb r0, [r0] - cmp r5, r0 - blt _0807A3A4 -_0807A3CA: - movs r7, #0 - movs r6, #1 - movs r5, #0 - ldr r4, _0807A3D8 - b _0807A3F0 - .align 2, 0 -_0807A3D4: .4byte gUnknown_202418D -_0807A3D8: .4byte gUnknown_20226A0 -_0807A3DC: - ldrb r0, [r4] - subs r0, #4 - cmp r0, #1 - bhi _0807A3E8 - movs r7, #0 - b _0807A3EC -_0807A3E8: - movs r0, #1 - orrs r7, r0 -_0807A3EC: - adds r4, #0x1c - adds r5, #1 -_0807A3F0: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r5, r0 - blt _0807A3DC - movs r5, #0 - movs r4, #0 - b _0807A424 -_0807A402: - ldr r0, _0807A44C - adds r2, r4, r0 - ldrb r1, [r2, #0x10] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _0807A412 - movs r6, #0 -_0807A412: - cmp r7, #0 - beq _0807A420 - ldrb r0, [r2, #0x10] - lsrs r0, r0, #4 - cmp r0, #0 - beq _0807A420 - movs r6, #0 -_0807A420: - adds r4, #0x1c - adds r5, #1 -_0807A424: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r5, r0 - blt _0807A402 - cmp r6, #0 - bne _0807A45A - mov r1, r8 - lsls r0, r1, #2 - mov r1, sp - adds r4, r1, r0 - ldrh r0, [r4] - bl MainMenu_FormatSavegameText - cmp r0, #0 - bne _0807A450 - movs r0, #2 - b _0807A48A - .align 2, 0 -_0807A44C: .4byte gUnknown_20226A0 -_0807A450: - ldr r0, [r4] - cmp r0, #0 - bne _0807A45A - movs r0, #3 - b _0807A48A -_0807A45A: - movs r2, #0 - movs r5, #0 - ldr r0, _0807A484 - ldrb r0, [r0] - cmp r2, r0 - bge _0807A47A - adds r3, r0, #0 - mov r1, sp -_0807A46A: - cmp r8, r5 - beq _0807A472 - ldr r0, [r1] - adds r2, r2, r0 -_0807A472: - adds r1, #4 - adds r5, #1 - cmp r5, r3 - blt _0807A46A -_0807A47A: - cmp r2, #0 - beq _0807A488 - movs r0, #0 - b _0807A48A - .align 2, 0 -_0807A484: .4byte gUnknown_202418D -_0807A488: - movs r0, #1 -_0807A48A: - add sp, #0x18 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0807A388 - - thumb_func_start sub_0807A498 -sub_0807A498: @ 0x0807A498 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xa - bne _0807A4B4 - movs r0, #0x17 - bl sub_080A306C - movs r0, #0 - strh r0, [r4, #0x2e] -_0807A4B4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0807A498 - - thumb_func_start sub_0807A4BC -sub_0807A4BC: @ 0x0807A4BC - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _0807A4E6 - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xa - bne _0807A4E6 - movs r0, #0xc2 - bl sub_080A306C - strh r5, [r4, #0x2e] -_0807A4E6: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_0807A4BC - - thumb_func_start sub_0807A4EC -sub_0807A4EC: @ 0x0807A4EC - push {lr} - adds r2, r0, #0 - movs r0, #0x30 - ldrsh r1, [r2, r0] - cmp r1, #0 - bne _0807A522 - ldrh r0, [r2, #0x2e] - adds r0, #1 - strh r0, [r2, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xc - bne _0807A508 - strh r1, [r2, #0x2e] -_0807A508: - movs r1, #0x2e - ldrsh r0, [r2, r1] - lsls r0, r0, #1 - ldr r1, _0807A528 - adds r0, r0, r1 - ldrb r1, [r2, #5] - lsrs r1, r1, #4 - adds r1, #0x10 - lsls r1, r1, #4 - adds r1, #4 - movs r2, #2 - bl LoadPalette -_0807A522: - pop {r0} - bx r0 - .align 2, 0 -_0807A528: .4byte gUnknown_830D0E8 - thumb_func_end sub_0807A4EC - - thumb_func_start sub_0807A52C -sub_0807A52C: @ 0x0807A52C - push {lr} - adds r2, r0, #0 - ldrh r1, [r2, #0x2e] - adds r1, #1 - strh r1, [r2, #0x2e] - ldrh r0, [r2, #0x26] - adds r0, #1 - strh r0, [r2, #0x26] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0xa - bne _0807A54A - adds r0, r2, #0 - bl DestroySprite -_0807A54A: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0807A52C - - thumb_func_start sub_0807A550 -sub_0807A550: @ 0x0807A550 - push {lr} - adds r2, r0, #0 - ldrh r1, [r2, #0x2e] - adds r1, #1 - strh r1, [r2, #0x2e] - ldrh r0, [r2, #0x26] - subs r0, #1 - strh r0, [r2, #0x26] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0xa - bne _0807A56E - adds r0, r2, #0 - bl DestroySprite -_0807A56E: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0807A550 - - thumb_func_start sub_0807A574 -sub_0807A574: @ 0x0807A574 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xf - bne _0807A590 - movs r0, #0xcc - bl sub_080A306C - movs r0, #0 - strh r0, [r4, #0x2e] -_0807A590: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0807A574 - - thumb_func_start sub_0807A598 -sub_0807A598: @ 0x0807A598 - push {r4, r5, lr} - sub sp, #0x20 - ldr r0, _0807A624 - ldr r0, [r0] - mov ip, r0 - adds r0, #0xd4 - ldrh r1, [r0] - lsls r1, r1, #8 - adds r0, #2 - ldrh r2, [r0] - lsls r2, r2, #8 - adds r0, #6 - movs r4, #0 - ldrsh r3, [r0, r4] - adds r0, #2 - movs r5, #0 - ldrsh r0, [r0, r5] - str r0, [sp] - mov r4, ip - adds r4, #0xe8 - movs r5, #0 - ldrsh r0, [r4, r5] - str r0, [sp, #4] - movs r5, #0 - ldrsh r0, [r4, r5] - str r0, [sp, #8] - mov r0, ip - adds r0, #0xec - ldrh r0, [r0] - str r0, [sp, #0xc] - add r0, sp, #0x10 - bl DoBgAffineSet - add r0, sp, #0x10 - ldrh r1, [r0] - movs r0, #0x20 - bl SetGpuReg - add r0, sp, #0x10 - ldrh r1, [r0, #2] - movs r0, #0x22 - bl SetGpuReg - add r0, sp, #0x10 - ldrh r1, [r0, #4] - movs r0, #0x24 - bl SetGpuReg - add r0, sp, #0x10 - ldrh r1, [r0, #6] - movs r0, #0x26 - bl SetGpuReg - ldr r1, [sp, #0x18] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x28 - bl SetGpuReg - ldr r1, [sp, #0x1c] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x2c - bl SetGpuReg - add sp, #0x20 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0807A624: .4byte gUnknown_2031F40 - thumb_func_end sub_0807A598 - - thumb_func_start sub_0807A628 -sub_0807A628: @ 0x0807A628 - push {r4, lr} - ldr r4, _0807A670 - ldr r0, [r4] - adds r0, #0xe0 - ldrh r1, [r0] - movs r0, #0x16 - bl SetGpuReg - ldr r0, [r4] - adds r0, #0xe2 - ldrh r1, [r0] - movs r0, #0x14 - bl SetGpuReg - movs r0, #0 - bl GetGpuReg - lsls r0, r0, #0x10 - movs r1, #0xe0 - lsls r1, r1, #0xb - ands r1, r0 - cmp r1, #0 - bne _0807A674 - ldr r0, [r4] - adds r0, #0xe4 - ldrh r1, [r0] - movs r0, #0x1a - bl SetGpuReg - ldr r0, [r4] - adds r0, #0xe6 - ldrh r1, [r0] - movs r0, #0x18 - bl SetGpuReg - b _0807A678 - .align 2, 0 -_0807A670: .4byte gUnknown_2031F40 -_0807A674: - bl sub_0807A598 -_0807A678: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0807A628 - - thumb_func_start sub_0807A680 -sub_0807A680: @ 0x0807A680 - push {lr} - bl sub_0807A628 - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0807A680 - - thumb_func_start sub_0807A698 -sub_0807A698: @ 0x0807A698 - push {r4, lr} - ldr r3, _0807A6BC - ldr r1, [r3] - movs r0, #0x8a - adds r0, r0, r1 - mov ip, r0 - movs r2, #0 - movs r0, #0 - mov r4, ip - strh r0, [r4] - adds r1, #0x88 - strb r2, [r1] - ldr r0, [r3] - adds r0, #0x89 - strb r2, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0807A6BC: .4byte gUnknown_2031F40 - thumb_func_end sub_0807A698 - - thumb_func_start sub_0807A6C0 -sub_0807A6C0: @ 0x0807A6C0 - push {r4, r5, lr} - ldr r0, _0807A6E4 - ldr r2, [r0] - adds r1, r2, #0 - adds r1, #0x88 - adds r3, r2, #0 - adds r3, #0x89 - ldrb r1, [r1] - adds r5, r0, #0 - ldrb r3, [r3] - cmp r1, r3 - bne _0807A6E8 - adds r1, r2, #0 - adds r1, #0x8a - ldrh r0, [r1] - adds r0, #1 - b _0807A6EE - .align 2, 0 -_0807A6E4: .4byte gUnknown_2031F40 -_0807A6E8: - adds r1, r2, #0 - adds r1, #0x8a - movs r0, #0 -_0807A6EE: - strh r0, [r1] - adds r4, r5, #0 - ldr r0, [r4] - adds r0, #0x8a - ldrh r1, [r0] - movs r0, #0x96 - lsls r0, r0, #1 - cmp r1, r0 - bls _0807A720 - bl CloseLink - ldr r0, _0807A734 - bl SetMainCallback2 - ldr r1, [r4] - adds r3, r1, #0 - adds r3, #0x8a - movs r2, #0 - movs r0, #0 - strh r0, [r3] - adds r1, #0x89 - strb r2, [r1] - ldr r0, [r4] - adds r0, #0x88 - strb r2, [r0] -_0807A720: - ldr r0, [r5] - adds r1, r0, #0 - adds r1, #0x88 - ldrb r1, [r1] - adds r0, #0x89 - strb r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0807A734: .4byte CB2_LinkError - thumb_func_end sub_0807A6C0 - - thumb_func_start sub_0807A738 -sub_0807A738: @ 0x0807A738 - push {lr} - ldr r0, _0807A748 - ldrb r0, [r0] - cmp r0, #0 - bne _0807A74C - movs r0, #0 - b _0807A754 - .align 2, 0 -_0807A748: .4byte gUnknown_30031C4 -_0807A74C: - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_0807A754: - pop {r1} - bx r1 - thumb_func_end sub_0807A738 - - thumb_func_start sub_0807A758 -sub_0807A758: @ 0x0807A758 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - movs r4, #0 - mov r8, r4 - cmp r6, #0 - bne _0807A77E - ldr r0, _0807A7A8 - ldrb r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _0807A7AC - adds r1, r1, r0 - mov r8, r1 - movs r4, #1 -_0807A77E: - cmp r6, #1 - bne _0807A79C - ldr r0, _0807A7A8 - ldrb r0, [r0, #1] - movs r1, #6 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x64 - muls r1, r0, r1 - ldr r0, _0807A7B0 - adds r1, r1, r0 - mov r8, r1 - movs r4, #3 -_0807A79C: - cmp r5, #0 - beq _0807A7B4 - cmp r5, #1 - beq _0807A83C - b _0807A892 - .align 2, 0 -_0807A7A8: .4byte gUnknown_2031F38 -_0807A7AC: .4byte gUnknown_2024190 -_0807A7B0: .4byte gUnknown_20243E8 -_0807A7B4: - mov r0, r8 - movs r1, #0x41 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - mov r0, r8 - movs r1, #0 - bl GetMonData - adds r7, r0, #0 - cmp r6, #0 - bne _0807A7F0 - lsls r0, r5, #3 - ldr r1, _0807A7E8 - adds r0, r0, r1 - ldr r1, _0807A7EC - ldr r1, [r1] - ldr r1, [r1, #8] - adds r2, r5, #0 - adds r3, r7, #0 - bl HandleLoadSpecialPokePic_2 - movs r4, #0 - b _0807A80E - .align 2, 0 -_0807A7E8: .4byte gUnknown_82DDA1C -_0807A7EC: .4byte gUnknown_2024178 -_0807A7F0: - lsls r0, r5, #3 - ldr r1, _0807A830 - adds r0, r0, r1 - ldr r1, _0807A834 - ldr r2, [r1] - lsls r4, r6, #1 - adds r1, r4, #1 - lsls r1, r1, #2 - adds r2, #4 - adds r2, r2, r1 - ldr r1, [r2] - adds r2, r5, #0 - adds r3, r7, #0 - bl HandleLoadSpecialPokePic_DontHandleDeoxys -_0807A80E: - mov r0, r8 - bl sub_0806E220 - bl LoadCompressedSpritePalette - ldr r0, _0807A838 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0xf0 - adds r0, r0, r4 - strh r5, [r0] - lsls r0, r6, #2 - adds r1, #0x68 - adds r1, r1, r0 - str r7, [r1] - b _0807A892 - .align 2, 0 -_0807A830: .4byte gUnknown_82DDA1C -_0807A834: .4byte gUnknown_2024178 -_0807A838: .4byte gUnknown_2031F40 -_0807A83C: - mov r0, r8 - bl sub_0806E220 - ldrh r0, [r0, #4] - adds r1, r4, #0 - bl SetMultiuseSpriteTemplateToPokemon - ldr r0, _0807A89C - movs r1, #0x78 - movs r2, #0x3c - movs r3, #6 - bl CreateSprite - ldr r4, _0807A8A0 - ldr r1, [r4] - adds r1, #0x8e - adds r1, r1, r6 - strb r0, [r1] - ldr r3, _0807A8A4 - ldr r0, [r4] - adds r0, #0x8e - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r4] - adds r0, #0x8e - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r3, #0x1c - adds r0, r0, r3 - ldr r1, _0807A8A8 - str r1, [r0] -_0807A892: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0807A89C: .4byte gUnknown_2024640 -_0807A8A0: .4byte gUnknown_2031F40 -_0807A8A4: .4byte gUnknown_20205AC -_0807A8A8: .4byte sub_08007140 - thumb_func_end sub_0807A758 - - thumb_func_start sub_0807A8AC -sub_0807A8AC: @ 0x0807A8AC - push {r4, r5, lr} - sub sp, #4 - ldr r1, _0807A8CC - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, r1, #0 - cmp r0, #0xc - bls _0807A8C2 - b _0807AB72 -_0807A8C2: - lsls r0, r0, #2 - ldr r1, _0807A8D0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807A8CC: .4byte gUnknown_3002360 -_0807A8D0: .4byte _0807A8D4 -_0807A8D4: @ jump table - .4byte _0807A908 @ case 0 - .4byte _0807A9B4 @ case 1 - .4byte _0807A9F8 @ case 2 - .4byte _0807AA18 @ case 3 - .4byte _0807AA62 @ case 4 - .4byte _0807AA90 @ case 5 - .4byte _0807AAB4 @ case 6 - .4byte _0807AACC @ case 7 - .4byte _0807AAD6 @ case 8 - .4byte _0807AAF0 @ case 9 - .4byte _0807AB0C @ case 10 - .4byte _0807AB30 @ case 11 - .4byte _0807AB4C @ case 12 -_0807A908: - ldr r0, _0807A99C - ldrb r0, [r0] - cmp r0, #0 - bne _0807A91C - ldr r1, _0807A9A0 - ldr r2, _0807A9A4 - adds r0, r2, #0 - strh r0, [r1] - bl CloseLink -_0807A91C: - ldr r4, _0807A9A8 - movs r5, #0x80 - lsls r5, r5, #1 - adds r0, r5, #0 - bl AllocZeroed - str r0, [r4] - bl AllocateMonSpritesGfx - bl ResetTasks - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r0, _0807A9AC - bl SetVBlankCallback - bl sub_0807ABCC - bl sub_0807A698 - ldr r1, _0807A9B0 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - movs r2, #0 - strb r0, [r1] - ldr r1, [r4] - adds r0, r1, #0 - adds r0, #0x8c - strh r2, [r0] - adds r0, #8 - strh r2, [r0] - adds r1, #0xee - movs r0, #1 - strb r0, [r1] - ldr r3, [r4] - adds r0, r3, #0 - adds r0, #0xd4 - movs r1, #0x40 - strh r1, [r0] - adds r0, #2 - strh r1, [r0] - adds r0, #2 - strh r2, [r0] - adds r0, #2 - strh r2, [r0] - adds r1, r3, #0 - adds r1, #0xdc - movs r0, #0x78 - strh r0, [r1] - adds r1, #2 - movs r0, #0x50 - strh r0, [r1] - adds r0, r3, #0 - adds r0, #0xe8 - strh r5, [r0] - adds r0, #4 - strh r2, [r0] - b _0807AB72 - .align 2, 0 -_0807A99C: .4byte gUnknown_30031C4 -_0807A9A0: .4byte gUnknown_202267E -_0807A9A4: .4byte 0x00001144 -_0807A9A8: .4byte gUnknown_2031F40 -_0807A9AC: .4byte sub_0807A680 -_0807A9B0: .4byte gUnknown_3002360 -_0807A9B4: - ldr r0, _0807A9E0 - ldrb r5, [r0] - cmp r5, #0 - bne _0807A9EC - ldr r4, _0807A9E4 - ldr r0, [r4] - adds r0, #0xfa - movs r1, #1 - strb r1, [r0] - bl OpenLink - ldr r1, _0807A9E8 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r0, [r4] - str r5, [r0, #0x64] - b _0807AB72 - .align 2, 0 -_0807A9E0: .4byte gUnknown_30031C4 -_0807A9E4: .4byte gUnknown_2031F40 -_0807A9E8: .4byte gUnknown_3002360 -_0807A9EC: - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r2, r0 - movs r0, #4 - strb r0, [r1] - b _0807AB72 -_0807A9F8: - ldr r0, _0807AA14 - ldr r1, [r0] - ldr r0, [r1, #0x64] - adds r0, #1 - str r0, [r1, #0x64] - cmp r0, #0x3c - bhi _0807AA08 - b _0807AB72 -_0807AA08: - movs r0, #0 - str r0, [r1, #0x64] - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r2, r0 - b _0807AB40 - .align 2, 0 -_0807AA14: .4byte gUnknown_2031F40 -_0807AA18: - bl IsLinkMaster - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0807AA24 - b _0807AB38 -_0807AA24: - bl GetLinkPlayerCount_2 - adds r4, r0, #0 - bl sub_0800A60C - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - blo _0807AA5C - ldr r0, _0807AA54 - ldr r1, [r0] - ldr r0, [r1, #0x64] - adds r0, #1 - str r0, [r1, #0x64] - cmp r0, #0x1e - bhi _0807AA46 - b _0807AB72 -_0807AA46: - bl CheckShouldAdvanceLinkState - ldr r1, _0807AA58 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _0807AB40 - .align 2, 0 -_0807AA54: .4byte gUnknown_2031F40 -_0807AA58: .4byte gUnknown_3002360 -_0807AA5C: - bl sub_0807A6C0 - b _0807AB72 -_0807AA62: - bl sub_0807A6C0 - ldr r0, _0807AA88 - ldrb r0, [r0] - cmp r0, #1 - beq _0807AA70 - b _0807AB72 -_0807AA70: - bl IsLinkPlayerDataExchangeComplete - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0807AA7E - b _0807AB72 -_0807AA7E: - ldr r1, _0807AA8C - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _0807AB40 - .align 2, 0 -_0807AA88: .4byte gUnknown_30031C4 -_0807AA8C: .4byte gUnknown_3002360 -_0807AA90: - ldr r2, _0807AAB0 - ldr r0, [r2] - adds r0, #0x72 - movs r1, #0 - strb r1, [r0] - ldr r0, [r2] - adds r0, #0x73 - strb r1, [r0] - ldr r0, [r2] - adds r0, #0x93 - strb r1, [r0] - movs r0, #0 - bl sub_0807A758 - b _0807AB38 - .align 2, 0 -_0807AAB0: .4byte gUnknown_2031F40 -_0807AAB4: - movs r0, #0 - movs r1, #1 - bl sub_0807A758 - ldr r1, _0807AAC8 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _0807AB40 - .align 2, 0 -_0807AAC8: .4byte gUnknown_3002360 -_0807AACC: - movs r0, #1 - movs r1, #0 - bl sub_0807A758 - b _0807AB38 -_0807AAD6: - movs r0, #1 - movs r1, #1 - bl sub_0807A758 - bl sub_0807ABB0 - ldr r1, _0807AAEC - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _0807AB40 - .align 2, 0 -_0807AAEC: .4byte gUnknown_3002360 -_0807AAF0: - bl sub_0807B4CC - ldr r0, _0807AB04 - bl LoadSpriteSheet - ldr r0, _0807AB08 - bl LoadSpritePalette - b _0807AB38 - .align 2, 0 -_0807AB04: .4byte gUnknown_830CF5C -_0807AB08: .4byte gUnknown_830CF64 -_0807AB0C: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - movs r0, #0 - bl ShowBg - ldr r1, _0807AB2C - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _0807AB40 - .align 2, 0 -_0807AB2C: .4byte gUnknown_3002360 -_0807AB30: - bl sub_0807AB9C - bl SetTradeSceneStrings -_0807AB38: - ldr r1, _0807AB48 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 -_0807AB40: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0807AB72 - .align 2, 0 -_0807AB48: .4byte gUnknown_3002360 -_0807AB4C: - ldr r0, _0807AB90 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0807AB72 - ldr r0, _0807AB94 - ldrb r0, [r0] - cmp r0, #0 - beq _0807AB6C - bl LoadWirelessStatusIndicatorSpriteGfx - movs r0, #0 - movs r1, #0 - bl CreateWirelessStatusIndicatorSprite -_0807AB6C: - ldr r0, _0807AB98 - bl SetMainCallback2 -_0807AB72: - bl RunTasks - bl sub_08004630 - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0807AB90: .4byte gUnknown_2037C74 -_0807AB94: .4byte gUnknown_300319C -_0807AB98: .4byte sub_0807E464 - thumb_func_end sub_0807A8AC - - thumb_func_start sub_0807AB9C -sub_0807AB9C: @ 0x0807AB9C - push {lr} - movs r0, #5 - bl sub_0807B064 - movs r0, #0 - bl sub_0807B064 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0807AB9C - - thumb_func_start sub_0807ABB0 -sub_0807ABB0: @ 0x0807ABB0 - push {lr} - movs r0, #0 - movs r1, #0xff - bl FillWindowPixelBuffer - movs r0, #0 - bl PutWindowTilemap - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - pop {r0} - bx r0 - thumb_func_end sub_0807ABB0 - - thumb_func_start sub_0807ABCC -sub_0807ABCC: @ 0x0807ABCC - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - sub sp, #4 - movs r0, #0 - movs r1, #0 - bl SetGpuReg - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _0807ACB4 - movs r0, #0 - movs r2, #4 - bl InitBgsFromTemplates - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r5, #0x80 - lsls r5, r5, #4 - adds r0, r5, #0 - bl sub_08000BC8 - adds r1, r0, #0 - movs r0, #0 - bl SetBgTilemapBuffer - adds r0, r5, #0 - bl sub_08000BC8 - adds r1, r0, #0 - movs r0, #1 - bl SetBgTilemapBuffer - adds r0, r5, #0 - bl sub_08000BC8 - adds r1, r0, #0 - movs r0, #3 - bl SetBgTilemapBuffer - bl sub_08004480 - movs r0, #0x8c - lsls r0, r0, #0x14 - mov sl, r0 - movs r0, #0 - mov sb, r0 - str r0, [sp] - mov r1, sl - movs r2, #0 - movs r3, #0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r0, _0807ACB8 - mov r8, r0 - ldr r4, _0807ACBC - adds r1, r4, #0 - bl sub_08034370 - movs r0, #0 - adds r1, r4, #0 - adds r2, r5, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - ldr r6, _0807ACC0 - adds r0, r6, #0 - movs r1, #0 - movs r2, #0x20 - bl LoadCompressedPalette - ldr r0, _0807ACC4 - bl InitWindows - mov r0, sb - str r0, [sp] - movs r0, #0 - mov r1, sl - movs r2, #0 - movs r3, #0 - bl DecompressAndLoadBgGfxUsingHeap - mov r0, r8 - adds r1, r4, #0 - bl sub_08034370 - movs r0, #0 - adds r1, r4, #0 - adds r2, r5, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - adds r0, r6, #0 - movs r1, #0 - movs r2, #0x20 - bl LoadCompressedPalette - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0807ACB4: .4byte gUnknown_830D294 -_0807ACB8: .4byte gUnknown_8C00530 -_0807ACBC: .4byte gUnknown_201C000 -_0807ACC0: .4byte gUnknown_8C004EC -_0807ACC4: .4byte gUnknown_830D27C - thumb_func_end sub_0807ABCC - - thumb_func_start sub_0807ACC8 -sub_0807ACC8: @ 0x0807ACC8 - push {r4, r5, r6, lr} - sub sp, #0xc - ldr r0, _0807ACE8 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0xc - bls _0807ACDC - b _0807AE7A -_0807ACDC: - lsls r0, r0, #2 - ldr r1, _0807ACEC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807ACE8: .4byte gUnknown_3002360 -_0807ACEC: .4byte _0807ACF0 -_0807ACF0: @ jump table - .4byte _0807AD24 @ case 0 - .4byte _0807AE7A @ case 1 - .4byte _0807AE7A @ case 2 - .4byte _0807AE7A @ case 3 - .4byte _0807AE7A @ case 4 - .4byte _0807ADE8 @ case 5 - .4byte _0807ADF2 @ case 6 - .4byte _0807ADFC @ case 7 - .4byte _0807AE0C @ case 8 - .4byte _0807AE2C @ case 9 - .4byte _0807AE48 @ case 10 - .4byte _0807AE50 @ case 11 - .4byte _0807AE74 @ case 12 -_0807AD24: - ldr r1, _0807ADC8 - ldr r0, _0807ADCC - ldrh r0, [r0] - movs r5, #0 - strb r0, [r1] - movs r0, #6 - strb r0, [r1, #1] - ldr r4, _0807ADD0 - ldr r0, _0807ADD4 - ldr r1, [r0] - adds r0, r4, #0 - bl StringCopy - ldr r0, _0807ADD8 - movs r1, #7 - mov r2, sp - bl GetMonData - adds r4, #0x1c - adds r0, r4, #0 - mov r1, sp - bl StringCopy - ldr r4, _0807ADDC - movs r6, #0x80 - lsls r6, r6, #1 - adds r0, r6, #0 - bl AllocZeroed - str r0, [r4] - bl AllocateMonSpritesGfx - bl ResetTasks - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r0, _0807ADE0 - bl SetVBlankCallback - bl sub_0807ABCC - ldr r0, [r4] - adds r0, #0xee - strb r5, [r0] - ldr r2, [r4] - adds r0, r2, #0 - adds r0, #0x8c - strh r5, [r0] - adds r0, #8 - strh r5, [r0] - adds r0, #0x40 - movs r1, #0x40 - strh r1, [r0] - adds r0, #2 - strh r1, [r0] - adds r0, #2 - strh r5, [r0] - adds r0, #2 - strh r5, [r0] - adds r1, r2, #0 - adds r1, #0xdc - movs r0, #0x78 - strh r0, [r1] - adds r1, #2 - movs r0, #0x50 - strh r0, [r1] - adds r0, r2, #0 - adds r0, #0xe8 - strh r6, [r0] - adds r0, #4 - strh r5, [r0] - str r5, [r2, #0x64] - ldr r0, _0807ADE4 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - movs r1, #5 - strb r1, [r0] - b _0807AE7A - .align 2, 0 -_0807ADC8: .4byte gUnknown_2031F38 -_0807ADCC: .4byte gUnknown_2037282 -_0807ADD0: .4byte gUnknown_20226A8 -_0807ADD4: .4byte gUnknown_3005AF0 -_0807ADD8: .4byte gUnknown_20243E8 -_0807ADDC: .4byte gUnknown_2031F40 -_0807ADE0: .4byte sub_0807A680 -_0807ADE4: .4byte gUnknown_3002360 -_0807ADE8: - movs r0, #0 - movs r1, #0 - bl sub_0807A758 - b _0807AE60 -_0807ADF2: - movs r0, #0 - movs r1, #1 - bl sub_0807A758 - b _0807AE60 -_0807ADFC: - movs r0, #1 - movs r1, #0 - bl sub_0807A758 - movs r0, #0 - bl ShowBg - b _0807AE60 -_0807AE0C: - movs r0, #1 - movs r1, #1 - bl sub_0807A758 - movs r0, #0 - movs r1, #0xff - bl FillWindowPixelBuffer - movs r0, #0 - bl PutWindowTilemap - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - b _0807AE60 -_0807AE2C: - bl sub_0807B4CC - ldr r0, _0807AE40 - bl LoadSpriteSheet - ldr r0, _0807AE44 - bl LoadSpritePalette - b _0807AE60 - .align 2, 0 -_0807AE40: .4byte gUnknown_830CF5C -_0807AE44: .4byte gUnknown_830CF64 -_0807AE48: - movs r0, #0 - bl ShowBg - b _0807AE60 -_0807AE50: - movs r0, #5 - bl sub_0807B064 - movs r0, #0 - bl sub_0807B064 - bl SetTradeSceneStrings -_0807AE60: - ldr r1, _0807AE70 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0807AE7A - .align 2, 0 -_0807AE70: .4byte gUnknown_3002360 -_0807AE74: - ldr r0, _0807AE98 - bl SetMainCallback2 -_0807AE7A: - bl RunTasks - bl sub_08004630 - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0807AE98: .4byte sub_0807B044 - thumb_func_end sub_0807ACC8 - - thumb_func_start sub_0807AE9C -sub_0807AE9C: @ 0x0807AE9C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x64 - muls r1, r0, r1 - ldr r0, _0807AEF8 - adds r5, r1, r0 - adds r0, r5, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - bne _0807AEF0 - adds r0, r5, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - movs r1, #0 - movs r2, #0 - bl GetMonData - adds r5, r0, #0 - adds r0, r4, #0 - bl sub_0806CF68 - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r4, #0 - movs r1, #2 - bl GetSetPokedexFlag - adds r0, r4, #0 - movs r1, #3 - adds r2, r5, #0 - bl HandleSetPokedexFlag -_0807AEF0: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0807AEF8: .4byte gUnknown_2024190 - thumb_func_end sub_0807AE9C - - thumb_func_start sub_0807AEFC -sub_0807AEFC: @ 0x0807AEFC - push {lr} - bl GetMultiplayerId - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0807AEFC - - thumb_func_start sub_0807AF08 -sub_0807AF08: @ 0x0807AF08 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r5, #0x64 - mov r1, sb - muls r1, r5, r1 - ldr r0, _0807AFD4 - adds r7, r1, r0 - adds r0, r7, #0 - movs r1, #0x40 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r1, r4, #0 - muls r1, r5, r1 - ldr r0, _0807AFD8 - adds r5, r1, r0 - adds r0, r5, #0 - movs r1, #0x40 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - cmp r6, #0xff - beq _0807AF62 - ldr r0, _0807AFDC - lsls r1, r6, #3 - adds r1, r1, r6 - lsls r1, r1, #2 - ldr r2, _0807AFE0 - adds r1, r1, r2 - ldr r0, [r0] - adds r0, r0, r1 - bl ClearMailStruct -_0807AF62: - ldr r4, _0807AFE4 - ldr r0, [r4] - adds r1, r7, #0 - movs r2, #0x64 - bl memcpy - adds r0, r7, #0 - adds r1, r5, #0 - movs r2, #0x64 - bl memcpy - ldr r1, [r4] - adds r0, r5, #0 - movs r2, #0x64 - bl memcpy - movs r1, #0x46 - mov r0, sp - strb r1, [r0] - adds r0, r7, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - bne _0807AF9E - adds r0, r7, #0 - movs r1, #0x20 - mov r2, sp - bl SetMonData -_0807AF9E: - mov r0, r8 - cmp r0, #0xff - beq _0807AFB4 - lsls r1, r0, #3 - add r1, r8 - lsls r1, r1, #2 - ldr r0, _0807AFE8 - adds r1, r1, r0 - adds r0, r7, #0 - bl GiveMailToMon2 -_0807AFB4: - mov r0, sb - bl sub_0807AE9C - ldr r0, _0807AFEC - ldrb r0, [r0] - cmp r0, #0 - beq _0807AFC6 - bl sub_0807AEFC -_0807AFC6: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0807AFD4: .4byte gUnknown_2024190 -_0807AFD8: .4byte gUnknown_20243E8 -_0807AFDC: .4byte gUnknown_3005AEC -_0807AFE0: .4byte 0x00002BE0 -_0807AFE4: .4byte gUnknown_2031F40 -_0807AFE8: .4byte gUnknown_2031E60 -_0807AFEC: .4byte gUnknown_30031C4 - thumb_func_end sub_0807AF08 - - thumb_func_start sub_0807AFF0 -sub_0807AFF0: @ 0x0807AFF0 - push {r4, lr} - ldr r4, _0807B004 - ldr r0, [r4] - adds r0, #0x93 - ldrb r0, [r0] - cmp r0, #1 - beq _0807B008 - cmp r0, #2 - beq _0807B02E - b _0807B038 - .align 2, 0 -_0807B004: .4byte gUnknown_2031F40 -_0807B008: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0807B02E - bl bitmask_all_link_players_but_self - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, [r4] - adds r1, #0x74 - movs r2, #0x14 - bl SendBlock - ldr r1, [r4] - adds r1, #0x93 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_0807B02E: - ldr r0, _0807B040 - ldr r0, [r0] - adds r0, #0x93 - movs r1, #0 - strb r1, [r0] -_0807B038: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0807B040: .4byte gUnknown_2031F40 - thumb_func_end sub_0807AFF0 - - thumb_func_start sub_0807B044 -sub_0807B044: @ 0x0807B044 - push {lr} - bl sub_0807B600 - bl RunTasks - bl sub_08004630 - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0807B044 - - thumb_func_start sub_0807B064 -sub_0807B064: @ 0x0807B064 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #7 - bls _0807B070 - b _0807B4A0 -_0807B070: - lsls r0, r0, #2 - ldr r1, _0807B07C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807B07C: .4byte _0807B080 -_0807B080: @ jump table - .4byte _0807B0A0 @ case 0 - .4byte _0807B114 @ case 1 - .4byte _0807B1BC @ case 2 - .4byte _0807B230 @ case 3 - .4byte _0807B278 @ case 4 - .4byte _0807B344 @ case 5 - .4byte _0807B35C @ case 6 - .4byte _0807B434 @ case 7 -_0807B0A0: - ldr r0, _0807B0F8 - ldr r1, [r0] - adds r2, r1, #0 - adds r2, #0xe4 - movs r0, #0 - strh r0, [r2] - adds r1, #0xe6 - movs r0, #0xb4 - strh r0, [r1] - movs r1, #0xaa - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - ldr r1, _0807B0FC - movs r0, #0xc - bl SetGpuReg - ldr r0, _0807B100 - movs r1, #0x10 - movs r2, #0x60 - bl LoadPalette - ldr r3, _0807B104 - ldr r4, _0807B108 - movs r5, #0xa1 - lsls r5, r5, #5 - ldr r1, _0807B10C - ldr r6, _0807B110 - movs r2, #0x80 - lsls r2, r2, #5 - movs r7, #0x80 - lsls r7, r7, #0x18 -_0807B0E2: - str r3, [r1] - str r4, [r1, #4] - str r6, [r1, #8] - ldr r0, [r1, #8] - adds r3, r3, r2 - adds r4, r4, r2 - subs r5, r5, r2 - cmp r5, r2 - bhi _0807B0E2 - b _0807B484 - .align 2, 0 -_0807B0F8: .4byte gUnknown_2031F40 -_0807B0FC: .4byte 0x00005206 -_0807B100: .4byte gUnknown_8305D24 -_0807B104: .4byte gUnknown_8305D84 -_0807B108: .4byte 0x06004000 -_0807B10C: .4byte 0x040000D4 -_0807B110: .4byte 0x80000800 -_0807B114: - ldr r4, _0807B14C - ldr r2, [r4] - adds r1, r2, #0 - adds r1, #0xe2 - movs r0, #0 - strh r0, [r1] - adds r2, #0xe0 - movs r1, #0xae - lsls r1, r1, #1 - strh r1, [r2] - movs r0, #0x16 - bl SetGpuReg - ldr r1, _0807B150 - movs r0, #0xa - bl SetGpuReg - ldr r1, _0807B154 - movs r0, #0xc - bl SetGpuReg - ldr r0, [r4] - adds r0, #0xfa - ldrb r0, [r0] - cmp r0, #0 - beq _0807B15C - ldr r1, _0807B158 - b _0807B15E - .align 2, 0 -_0807B14C: .4byte gUnknown_2031F40 -_0807B150: .4byte 0x00008502 -_0807B154: .4byte 0x00009206 -_0807B158: .4byte gUnknown_830ABE4 -_0807B15C: - ldr r1, _0807B1A8 -_0807B15E: - ldr r2, _0807B1AC - ldr r0, _0807B1B0 - str r1, [r0] - str r2, [r0, #4] - ldr r1, _0807B1B4 - str r1, [r0, #8] - ldr r0, [r0, #8] - ldr r3, _0807B1B8 - movs r4, #0xc0 - lsls r4, r4, #0x13 - movs r5, #0xa1 - lsls r5, r5, #5 - ldr r1, _0807B1B0 - ldr r6, _0807B1B4 - movs r2, #0x80 - lsls r2, r2, #5 - movs r7, #0x80 - lsls r7, r7, #0x18 -_0807B182: - str r3, [r1] - str r4, [r1, #4] - str r6, [r1, #8] - ldr r0, [r1, #8] - adds r3, r3, r2 - adds r4, r4, r2 - subs r5, r5, r2 - cmp r5, r2 - bhi _0807B182 - str r3, [r1] - str r4, [r1, #4] - lsrs r0, r5, #1 - orrs r0, r7 - str r0, [r1, #8] - ldr r0, [r1, #8] - movs r1, #0x92 - lsls r1, r1, #5 - b _0807B258 - .align 2, 0 -_0807B1A8: .4byte gUnknown_8309BE4 -_0807B1AC: .4byte 0x06002800 -_0807B1B0: .4byte 0x040000D4 -_0807B1B4: .4byte 0x80000800 -_0807B1B8: .4byte gUnknown_8305D84 -_0807B1BC: - ldr r0, _0807B1E8 - ldr r2, [r0] - adds r0, r2, #0 - adds r0, #0xe0 - movs r1, #0 - strh r1, [r0] - adds r0, #2 - strh r1, [r0] - adds r0, #0x18 - ldrb r0, [r0] - cmp r0, #0 - bne _0807B1F8 - ldr r1, _0807B1EC - movs r0, #0 - bl SetGpuReg - ldr r0, _0807B1F0 - ldr r1, _0807B1F4 - bl LZ77UnCompVram - movs r0, #8 - b _0807B212 - .align 2, 0 -_0807B1E8: .4byte gUnknown_2031F40 -_0807B1EC: .4byte 0x00001241 -_0807B1F0: .4byte gUnknown_830BBE4 -_0807B1F4: .4byte 0x06002800 -_0807B1F8: - ldr r1, _0807B21C - movs r0, #0 - bl SetGpuReg - ldr r1, _0807B220 - ldr r2, _0807B224 - ldr r0, _0807B228 - str r1, [r0] - str r2, [r0, #4] - ldr r1, _0807B22C - str r1, [r0, #8] - ldr r0, [r0, #8] - movs r0, #1 -_0807B212: - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - b _0807B4A0 - .align 2, 0 -_0807B21C: .4byte 0x00001241 -_0807B220: .4byte gUnknown_8302D64 -_0807B224: .4byte 0x06002800 -_0807B228: .4byte 0x040000D4 -_0807B22C: .4byte 0x80000400 -_0807B230: - ldr r0, _0807B260 - movs r1, #0x30 - movs r2, #0x20 - bl LoadPalette - ldr r0, _0807B264 - ldr r1, _0807B268 - bl LZ77UnCompVram - ldr r0, _0807B26C - ldr r1, _0807B270 - bl LZ77UnCompVram - ldr r0, _0807B274 - ldr r0, [r0] - adds r0, #0xe4 - movs r1, #0x50 - strh r1, [r0] - movs r1, #0xb2 - lsls r1, r1, #5 -_0807B258: - movs r0, #0 - bl SetGpuReg - b _0807B4A0 - .align 2, 0 -_0807B260: .4byte gUnknown_830C0E4 -_0807B264: .4byte gUnknown_830C104 -_0807B268: .4byte 0x06004000 -_0807B26C: .4byte gUnknown_830C794 -_0807B270: .4byte 0x06009000 -_0807B274: .4byte gUnknown_2031F40 -_0807B278: - ldr r1, _0807B2FC - movs r0, #0 - bl SetGpuReg - ldr r1, _0807B300 - movs r0, #0xc - bl SetGpuReg - ldr r0, _0807B304 - ldr r3, [r0] - adds r1, r3, #0 - adds r1, #0xd4 - movs r2, #0 - movs r0, #0x40 - strh r0, [r1] - adds r1, #2 - movs r0, #0x5c - strh r0, [r1] - adds r1, #0x12 - movs r0, #0x20 - strh r0, [r1] - adds r1, #2 - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r1] - adds r0, r3, #0 - adds r0, #0xec - strh r2, [r0] - ldr r3, _0807B308 - ldr r4, _0807B30C - movs r5, #0xa1 - lsls r5, r5, #6 - ldr r1, _0807B310 - ldr r6, _0807B314 - movs r2, #0x80 - lsls r2, r2, #5 - movs r7, #0x80 - lsls r7, r7, #0x18 -_0807B2C4: - str r3, [r1] - str r4, [r1, #4] - str r6, [r1, #8] - ldr r0, [r1, #8] - adds r3, r3, r2 - adds r4, r4, r2 - subs r5, r5, r2 - cmp r5, r2 - bhi _0807B2C4 - str r3, [r1] - str r4, [r1, #4] - lsrs r0, r5, #1 - orrs r0, r7 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r0, _0807B304 - ldr r0, [r0] - adds r0, #0xfa - ldrb r0, [r0] - cmp r0, #0 - beq _0807B324 - ldr r1, _0807B318 - ldr r2, _0807B31C - ldr r0, _0807B310 - str r1, [r0] - str r2, [r0, #4] - ldr r1, _0807B320 - b _0807B49C - .align 2, 0 -_0807B2FC: .4byte 0x00001441 -_0807B300: .4byte 0x00001287 -_0807B304: .4byte gUnknown_2031F40 -_0807B308: .4byte gUnknown_83071A4 -_0807B30C: .4byte 0x06004000 -_0807B310: .4byte 0x040000D4 -_0807B314: .4byte 0x80000800 -_0807B318: .4byte gUnknown_83099E4 -_0807B31C: .4byte 0x06009000 -_0807B320: .4byte 0x80000080 -_0807B324: - ldr r1, _0807B334 - ldr r2, _0807B338 - ldr r0, _0807B33C - str r1, [r0] - str r2, [r0, #4] - ldr r1, _0807B340 - b _0807B49C - .align 2, 0 -_0807B334: .4byte gUnknown_8309AE4 -_0807B338: .4byte 0x06009000 -_0807B33C: .4byte 0x040000D4 -_0807B340: .4byte 0x80000080 -_0807B344: - ldr r0, _0807B358 - ldr r0, [r0] - adds r1, r0, #0 - adds r1, #0xe0 - movs r2, #0 - strh r2, [r1] - adds r0, #0xe2 - strh r2, [r0] - b _0807B4A0 - .align 2, 0 -_0807B358: .4byte gUnknown_2031F40 -_0807B35C: - ldr r1, _0807B3EC - movs r0, #0 - bl SetGpuReg - ldr r1, _0807B3F0 - movs r0, #0xc - bl SetGpuReg - ldr r0, _0807B3F4 - ldr r3, [r0] - adds r1, r3, #0 - adds r1, #0xd4 - movs r2, #0 - movs r0, #0x40 - strh r0, [r1] - adds r1, #2 - movs r0, #0x5c - strh r0, [r1] - adds r1, #0x12 - adds r0, #0xa4 - strh r0, [r1] - adds r1, #2 - movs r0, #0x80 - strh r0, [r1] - subs r1, #0xe - movs r0, #0x78 - strh r0, [r1] - adds r1, #2 - movs r0, #0x50 - strh r0, [r1] - adds r0, r3, #0 - adds r0, #0xec - strh r2, [r0] - ldr r3, _0807B3F8 - ldr r4, _0807B3FC - movs r5, #0xa1 - lsls r5, r5, #6 - ldr r1, _0807B400 - ldr r6, _0807B404 - movs r2, #0x80 - lsls r2, r2, #5 - movs r7, #0x80 - lsls r7, r7, #0x18 -_0807B3B2: - str r3, [r1] - str r4, [r1, #4] - str r6, [r1, #8] - ldr r0, [r1, #8] - adds r3, r3, r2 - adds r4, r4, r2 - subs r5, r5, r2 - cmp r5, r2 - bhi _0807B3B2 - str r3, [r1] - str r4, [r1, #4] - lsrs r0, r5, #1 - orrs r0, r7 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r0, _0807B3F4 - ldr r0, [r0] - adds r0, #0xfa - ldrb r0, [r0] - cmp r0, #0 - beq _0807B414 - ldr r1, _0807B408 - ldr r2, _0807B40C - ldr r0, _0807B400 - str r1, [r0] - str r2, [r0, #4] - ldr r1, _0807B410 - b _0807B49C - .align 2, 0 -_0807B3EC: .4byte 0x00001441 -_0807B3F0: .4byte 0x00001287 -_0807B3F4: .4byte gUnknown_2031F40 -_0807B3F8: .4byte gUnknown_83071A4 -_0807B3FC: .4byte 0x06004000 -_0807B400: .4byte 0x040000D4 -_0807B404: .4byte 0x80000800 -_0807B408: .4byte gUnknown_83099E4 -_0807B40C: .4byte 0x06009000 -_0807B410: .4byte 0x80000080 -_0807B414: - ldr r1, _0807B424 - ldr r2, _0807B428 - ldr r0, _0807B42C - str r1, [r0] - str r2, [r0, #4] - ldr r1, _0807B430 - b _0807B49C - .align 2, 0 -_0807B424: .4byte gUnknown_8309AE4 -_0807B428: .4byte 0x06009000 -_0807B42C: .4byte 0x040000D4 -_0807B430: .4byte 0x80000080 -_0807B434: - ldr r0, _0807B4A8 - ldr r0, [r0] - adds r1, r0, #0 - adds r1, #0xe4 - movs r2, #0 - strh r2, [r1] - adds r0, #0xe6 - strh r2, [r0] - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - ldr r1, _0807B4AC - movs r0, #0xc - bl SetGpuReg - ldr r0, _0807B4B0 - movs r1, #0x10 - movs r2, #0x60 - bl LoadPalette - ldr r3, _0807B4B4 - ldr r4, _0807B4B8 - movs r5, #0xa1 - lsls r5, r5, #5 - ldr r1, _0807B4BC - ldr r6, _0807B4C0 - movs r2, #0x80 - lsls r2, r2, #5 - movs r7, #0x80 - lsls r7, r7, #0x18 -_0807B472: - str r3, [r1] - str r4, [r1, #4] - str r6, [r1, #8] - ldr r0, [r1, #8] - adds r3, r3, r2 - adds r4, r4, r2 - subs r5, r5, r2 - cmp r5, r2 - bhi _0807B472 -_0807B484: - str r3, [r1] - str r4, [r1, #4] - lsrs r0, r5, #1 - orrs r0, r7 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r1, _0807B4C4 - ldr r2, _0807B4C8 - ldr r0, _0807B4BC - str r1, [r0] - str r2, [r0, #4] - ldr r1, _0807B4C0 -_0807B49C: - str r1, [r0, #8] - ldr r0, [r0, #8] -_0807B4A0: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0807B4A8: .4byte gUnknown_2031F40 -_0807B4AC: .4byte 0x00005206 -_0807B4B0: .4byte gUnknown_8305D24 -_0807B4B4: .4byte gUnknown_8305D84 -_0807B4B8: .4byte 0x06004000 -_0807B4BC: .4byte 0x040000D4 -_0807B4C0: .4byte 0x80000800 -_0807B4C4: .4byte gUnknown_8304D04 -_0807B4C8: .4byte 0x06009000 - thumb_func_end sub_0807B064 - - thumb_func_start sub_0807B4CC -sub_0807B4CC: @ 0x0807B4CC - push {lr} - ldr r0, _0807B4F8 - bl LoadSpriteSheet - ldr r0, _0807B4FC - bl LoadSpriteSheet - ldr r0, _0807B500 - bl LoadSpriteSheet - ldr r0, _0807B504 - bl LoadSpriteSheet - ldr r0, _0807B508 - bl LoadSpritePalette - ldr r0, _0807B50C - bl LoadSpritePalette - pop {r0} - bx r0 - .align 2, 0 -_0807B4F8: .4byte gUnknown_830CFB4 -_0807B4FC: .4byte gUnknown_830D004 -_0807B500: .4byte gUnknown_830D038 -_0807B504: .4byte gUnknown_830D0B0 -_0807B508: .4byte gUnknown_830CFBC -_0807B50C: .4byte gUnknown_830CFC4 - thumb_func_end sub_0807B4CC - - thumb_func_start SetTradeSceneStrings -SetTradeSceneStrings: @ 0x0807B510 - push {r4, r5, lr} - sub sp, #0x14 - ldr r0, _0807B580 - ldr r0, [r0] - adds r0, #0xee - ldrb r0, [r0] - cmp r0, #0 - beq _0807B5A0 - bl GetMultiplayerId - lsls r0, r0, #0x18 - ldr r3, _0807B584 - movs r2, #0x80 - lsls r2, r2, #0x11 - eors r2, r0 - lsrs r2, r2, #0x18 - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - ldr r0, _0807B588 - adds r1, r1, r0 - adds r0, r3, #0 - bl StringCopy - ldr r5, _0807B58C - ldrb r0, [r5, #1] - movs r1, #6 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r4, #0x64 - muls r0, r4, r0 - ldr r1, _0807B590 - adds r0, r0, r1 - movs r1, #2 - mov r2, sp - bl GetMonData - ldr r0, _0807B594 - mov r1, sp - bl StringCopy10 - ldrb r0, [r5] - muls r0, r4, r0 - ldr r1, _0807B598 - adds r0, r0, r1 - movs r1, #2 - mov r2, sp - bl GetMonData - ldr r0, _0807B59C - mov r1, sp - bl StringCopy10 - b _0807B5DC - .align 2, 0 -_0807B580: .4byte gUnknown_2031F40 -_0807B584: .4byte gUnknown_2021C40 -_0807B588: .4byte gUnknown_20226A8 -_0807B58C: .4byte gUnknown_2031F38 -_0807B590: .4byte gUnknown_20243E8 -_0807B594: .4byte gUnknown_2021C68 -_0807B598: .4byte gUnknown_2024190 -_0807B59C: .4byte gUnknown_2021C54 -_0807B5A0: - ldr r0, _0807B5E4 - ldrh r0, [r0] - lsls r4, r0, #4 - subs r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _0807B5E8 - adds r4, r4, r0 - ldr r0, _0807B5EC - adds r1, r4, #0 - adds r1, #0x2b - bl StringCopy - ldr r0, _0807B5F0 - adds r1, r4, #0 - bl StringCopy10 - ldr r0, _0807B5F4 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0807B5F8 - adds r0, r0, r1 - movs r1, #2 - mov r2, sp - bl GetMonData - ldr r0, _0807B5FC - mov r1, sp - bl StringCopy10 -_0807B5DC: - add sp, #0x14 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0807B5E4: .4byte gUnknown_2037280 -_0807B5E8: .4byte gUnknown_830D114 -_0807B5EC: .4byte gUnknown_2021C40 -_0807B5F0: .4byte gUnknown_2021C68 -_0807B5F4: .4byte gUnknown_2037282 -_0807B5F8: .4byte gUnknown_2024190 -_0807B5FC: .4byte gUnknown_2021C54 - thumb_func_end SetTradeSceneStrings - - thumb_func_start sub_0807B600 -sub_0807B600: @ 0x0807B600 - push {lr} - ldr r0, _0807B614 - ldr r0, [r0] - adds r0, #0xfa - ldrb r0, [r0] - cmp r0, #0 - bne _0807B618 - bl sub_0807CA00 - b _0807B61C - .align 2, 0 -_0807B614: .4byte gUnknown_2031F40 -_0807B618: - bl sub_0807B624 -_0807B61C: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - thumb_func_end sub_0807B600 - - thumb_func_start sub_0807B624 -sub_0807B624: @ 0x0807B624 - push {r4, r5, r6, r7, lr} - sub sp, #0x14 - ldr r0, _0807B648 - ldr r1, [r0] - adds r1, #0x94 - ldrh r5, [r1] - ldr r1, _0807B64C - adds r7, r0, #0 - cmp r5, r1 - bls _0807B63C - bl _0807C9EC -_0807B63C: - lsls r0, r5, #2 - ldr r1, _0807B650 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807B648: .4byte gUnknown_2031F40 -_0807B64C: .4byte 0x0000010B -_0807B650: .4byte _0807B654 -_0807B654: @ jump table - .4byte _0807BA84 @ case 0 - .4byte _0807BAFC @ case 1 - .4byte _0807C9EC @ case 2 - .4byte _0807C9EC @ case 3 - .4byte _0807C9EC @ case 4 - .4byte _0807C9EC @ case 5 - .4byte _0807C9EC @ case 6 - .4byte _0807C9EC @ case 7 - .4byte _0807C9EC @ case 8 - .4byte _0807C9EC @ case 9 - .4byte _0807BB58 @ case 10 - .4byte _0807BBA0 @ case 11 - .4byte _0807BC14 @ case 12 - .4byte _0807C9EC @ case 13 - .4byte _0807BC80 @ case 14 - .4byte _0807C9EC @ case 15 - .4byte _0807C9EC @ case 16 - .4byte _0807C9EC @ case 17 - .4byte _0807C9EC @ case 18 - .4byte _0807C9EC @ case 19 - .4byte _0807BCA4 @ case 20 - .4byte _0807BCD4 @ case 21 - .4byte _0807BCE6 @ case 22 - .4byte _0807BD08 @ case 23 - .4byte _0807BD50 @ case 24 - .4byte _0807BD80 @ case 25 - .4byte _0807BDC8 @ case 26 - .4byte _0807BE18 @ case 27 - .4byte _0807BE6C @ case 28 - .4byte _0807BEF0 @ case 29 - .4byte _0807BF14 @ case 30 - .4byte _0807BF60 @ case 31 - .4byte _0807BFAC @ case 32 - .4byte _0807C008 @ case 33 - .4byte _0807C068 @ case 34 - .4byte _0807C07C @ case 35 - .4byte _0807C090 @ case 36 - .4byte _0807C0A4 @ case 37 - .4byte _0807C1CC @ case 38 - .4byte _0807C29C @ case 39 - .4byte _0807C324 @ case 40 - .4byte _0807C39C @ case 41 - .4byte _0807C3AC @ case 42 - .4byte _0807C3CC @ case 43 - .4byte _0807C41C @ case 44 - .4byte _0807C43A @ case 45 - .4byte _0807C478 @ case 46 - .4byte _0807C488 @ case 47 - .4byte _0807C500 @ case 48 - .4byte _0807C9EC @ case 49 - .4byte _0807C528 @ case 50 - .4byte _0807C568 @ case 51 - .4byte _0807C5A8 @ case 52 - .4byte _0807C9EC @ case 53 - .4byte _0807C9EC @ case 54 - .4byte _0807C9EC @ case 55 - .4byte _0807C9EC @ case 56 - .4byte _0807C9EC @ case 57 - .4byte _0807C9EC @ case 58 - .4byte _0807C9EC @ case 59 - .4byte _0807C5C8 @ case 60 - .4byte _0807C5F0 @ case 61 - .4byte _0807C60C @ case 62 - .4byte _0807C62C @ case 63 - .4byte _0807C6D4 @ case 64 - .4byte _0807C708 @ case 65 - .4byte _0807C754 @ case 66 - .4byte _0807C814 @ case 67 - .4byte _0807C88C @ case 68 - .4byte _0807C8D8 @ case 69 - .4byte _0807C8E8 @ case 70 - .4byte _0807C8EE @ case 71 - .4byte _0807C914 @ case 72 - .4byte _0807C970 @ case 73 - .4byte _0807C994 @ case 74 - .4byte _0807C9EC @ case 75 - .4byte _0807C9EC @ case 76 - .4byte _0807C9EC @ case 77 - .4byte _0807C9EC @ case 78 - .4byte _0807C9EC @ case 79 - .4byte _0807C9EC @ case 80 - .4byte _0807C9EC @ case 81 - .4byte _0807C9EC @ case 82 - .4byte _0807C9EC @ case 83 - .4byte _0807C9EC @ case 84 - .4byte _0807C9EC @ case 85 - .4byte _0807C9EC @ case 86 - .4byte _0807C9EC @ case 87 - .4byte _0807C9EC @ case 88 - .4byte _0807C9EC @ case 89 - .4byte _0807C9EC @ case 90 - .4byte _0807C9EC @ case 91 - .4byte _0807C9EC @ case 92 - .4byte _0807C9EC @ case 93 - .4byte _0807C9EC @ case 94 - .4byte _0807C9EC @ case 95 - .4byte _0807C9EC @ case 96 - .4byte _0807C9EC @ case 97 - .4byte _0807C9EC @ case 98 - .4byte _0807C9EC @ case 99 - .4byte _0807C9EC @ case 100 - .4byte _0807C9EC @ case 101 - .4byte _0807C9EC @ case 102 - .4byte _0807C9EC @ case 103 - .4byte _0807C9EC @ case 104 - .4byte _0807C9EC @ case 105 - .4byte _0807C9EC @ case 106 - .4byte _0807C9EC @ case 107 - .4byte _0807C9EC @ case 108 - .4byte _0807C9EC @ case 109 - .4byte _0807C9EC @ case 110 - .4byte _0807C9EC @ case 111 - .4byte _0807C9EC @ case 112 - .4byte _0807C9EC @ case 113 - .4byte _0807C9EC @ case 114 - .4byte _0807C9EC @ case 115 - .4byte _0807C9EC @ case 116 - .4byte _0807C9EC @ case 117 - .4byte _0807C9EC @ case 118 - .4byte _0807C9EC @ case 119 - .4byte _0807C9EC @ case 120 - .4byte _0807C9EC @ case 121 - .4byte _0807C9EC @ case 122 - .4byte _0807C9EC @ case 123 - .4byte _0807C9EC @ case 124 - .4byte _0807C9EC @ case 125 - .4byte _0807C9EC @ case 126 - .4byte _0807C9EC @ case 127 - .4byte _0807C9EC @ case 128 - .4byte _0807C9EC @ case 129 - .4byte _0807C9EC @ case 130 - .4byte _0807C9EC @ case 131 - .4byte _0807C9EC @ case 132 - .4byte _0807C9EC @ case 133 - .4byte _0807C9EC @ case 134 - .4byte _0807C9EC @ case 135 - .4byte _0807C9EC @ case 136 - .4byte _0807C9EC @ case 137 - .4byte _0807C9EC @ case 138 - .4byte _0807C9EC @ case 139 - .4byte _0807C9EC @ case 140 - .4byte _0807C9EC @ case 141 - .4byte _0807C9EC @ case 142 - .4byte _0807C9EC @ case 143 - .4byte _0807C9EC @ case 144 - .4byte _0807C9EC @ case 145 - .4byte _0807C9EC @ case 146 - .4byte _0807C9EC @ case 147 - .4byte _0807C9EC @ case 148 - .4byte _0807C9EC @ case 149 - .4byte _0807C9EC @ case 150 - .4byte _0807C9EC @ case 151 - .4byte _0807C9EC @ case 152 - .4byte _0807C9EC @ case 153 - .4byte _0807C9EC @ case 154 - .4byte _0807C9EC @ case 155 - .4byte _0807C9EC @ case 156 - .4byte _0807C9EC @ case 157 - .4byte _0807C9EC @ case 158 - .4byte _0807C9EC @ case 159 - .4byte _0807C9EC @ case 160 - .4byte _0807C9EC @ case 161 - .4byte _0807C9EC @ case 162 - .4byte _0807C9EC @ case 163 - .4byte _0807C9EC @ case 164 - .4byte _0807C9EC @ case 165 - .4byte _0807C9EC @ case 166 - .4byte _0807C850 @ case 167 - .4byte _0807C9EC @ case 168 - .4byte _0807C9EC @ case 169 - .4byte _0807C9EC @ case 170 - .4byte _0807C9EC @ case 171 - .4byte _0807C9EC @ case 172 - .4byte _0807C9EC @ case 173 - .4byte _0807C9EC @ case 174 - .4byte _0807C9EC @ case 175 - .4byte _0807C9EC @ case 176 - .4byte _0807C9EC @ case 177 - .4byte _0807C9EC @ case 178 - .4byte _0807C9EC @ case 179 - .4byte _0807C9EC @ case 180 - .4byte _0807C9EC @ case 181 - .4byte _0807C9EC @ case 182 - .4byte _0807C9EC @ case 183 - .4byte _0807C9EC @ case 184 - .4byte _0807C9EC @ case 185 - .4byte _0807C9EC @ case 186 - .4byte _0807C9EC @ case 187 - .4byte _0807C9EC @ case 188 - .4byte _0807C9EC @ case 189 - .4byte _0807C9EC @ case 190 - .4byte _0807C9EC @ case 191 - .4byte _0807C9EC @ case 192 - .4byte _0807C9EC @ case 193 - .4byte _0807C9EC @ case 194 - .4byte _0807C9EC @ case 195 - .4byte _0807C9EC @ case 196 - .4byte _0807C9EC @ case 197 - .4byte _0807C9EC @ case 198 - .4byte _0807C9EC @ case 199 - .4byte _0807BE98 @ case 200 - .4byte _0807C9EC @ case 201 - .4byte _0807C9EC @ case 202 - .4byte _0807C9EC @ case 203 - .4byte _0807C9EC @ case 204 - .4byte _0807C9EC @ case 205 - .4byte _0807C9EC @ case 206 - .4byte _0807C9EC @ case 207 - .4byte _0807C9EC @ case 208 - .4byte _0807C9EC @ case 209 - .4byte _0807C9EC @ case 210 - .4byte _0807C9EC @ case 211 - .4byte _0807C9EC @ case 212 - .4byte _0807C9EC @ case 213 - .4byte _0807C9EC @ case 214 - .4byte _0807C9EC @ case 215 - .4byte _0807C9EC @ case 216 - .4byte _0807C9EC @ case 217 - .4byte _0807C9EC @ case 218 - .4byte _0807C9EC @ case 219 - .4byte _0807C9EC @ case 220 - .4byte _0807C9EC @ case 221 - .4byte _0807C9EC @ case 222 - .4byte _0807C9EC @ case 223 - .4byte _0807C9EC @ case 224 - .4byte _0807C9EC @ case 225 - .4byte _0807C9EC @ case 226 - .4byte _0807C9EC @ case 227 - .4byte _0807C9EC @ case 228 - .4byte _0807C9EC @ case 229 - .4byte _0807C9EC @ case 230 - .4byte _0807C9EC @ case 231 - .4byte _0807C9EC @ case 232 - .4byte _0807C9EC @ case 233 - .4byte _0807C9EC @ case 234 - .4byte _0807C9EC @ case 235 - .4byte _0807C9EC @ case 236 - .4byte _0807C9EC @ case 237 - .4byte _0807C9EC @ case 238 - .4byte _0807C9EC @ case 239 - .4byte _0807C9EC @ case 240 - .4byte _0807C9EC @ case 241 - .4byte _0807C9EC @ case 242 - .4byte _0807C9EC @ case 243 - .4byte _0807C9EC @ case 244 - .4byte _0807C9EC @ case 245 - .4byte _0807C9EC @ case 246 - .4byte _0807C9EC @ case 247 - .4byte _0807C9EC @ case 248 - .4byte _0807C9EC @ case 249 - .4byte _0807C9EC @ case 250 - .4byte _0807C9EC @ case 251 - .4byte _0807C9EC @ case 252 - .4byte _0807C9EC @ case 253 - .4byte _0807C9EC @ case 254 - .4byte _0807C9EC @ case 255 - .4byte _0807C9EC @ case 256 - .4byte _0807C9EC @ case 257 - .4byte _0807C9EC @ case 258 - .4byte _0807C9EC @ case 259 - .4byte _0807C9EC @ case 260 - .4byte _0807C9EC @ case 261 - .4byte _0807C9EC @ case 262 - .4byte _0807C9EC @ case 263 - .4byte _0807C9EC @ case 264 - .4byte _0807C9EC @ case 265 - .4byte _0807C9EC @ case 266 - .4byte _0807C870 @ case 267 -_0807BA84: - ldr r3, _0807BAEC - ldr r0, [r7] - adds r0, #0x8e - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - ldr r4, [r7] - adds r2, r4, #0 - adds r2, #0x8e - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldr r1, _0807BAF0 - strh r1, [r0, #0x24] - ldrb r0, [r2] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r2, _0807BAF4 - adds r0, r4, #0 - adds r0, #0xf0 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #1] - strh r0, [r1, #0x26] - adds r1, r4, #0 - adds r1, #0x94 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - bl sub_080A27CC - ldr r1, [r7] - adds r1, #0xf4 - strh r0, [r1] - ldr r0, _0807BAF8 - bl PlayNewMapMusic - bl _0807C9EC - .align 2, 0 -_0807BAEC: .4byte gUnknown_20205AC -_0807BAF0: .4byte 0x0000FF4C -_0807BAF4: .4byte gUnknown_82D45C8 -_0807BAF8: .4byte 0x00000179 -_0807BAFC: - ldr r5, [r7] - adds r6, r5, #0 - adds r6, #0xe6 - movs r1, #0 - ldrsh r0, [r6, r1] - cmp r0, #0 - ble _0807BB30 - ldr r2, _0807BB2C - adds r0, r5, #0 - adds r0, #0x8e - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x24] - adds r1, #3 - strh r1, [r0, #0x24] - ldrh r0, [r6] - subs r0, #3 - strh r0, [r6] - bl _0807C9EC - .align 2, 0 -_0807BB2C: .4byte gUnknown_20205AC -_0807BB30: - ldr r2, _0807BB54 - adds r0, r5, #0 - adds r0, #0x8e - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0 - strh r1, [r0, #0x24] - strh r1, [r6] - adds r1, r5, #0 - adds r1, #0x94 - movs r0, #0xa - strh r0, [r1] - bl _0807C9EC - .align 2, 0 -_0807BB54: .4byte gUnknown_20205AC -_0807BB58: - ldr r4, _0807BB94 - ldr r1, _0807BB98 - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #0 - adds r1, r4, #0 - movs r2, #0 - bl sub_0807EBE0 - ldr r4, _0807BB9C - ldr r0, [r4] - adds r2, r0, #0 - adds r2, #0xf0 - ldrh r1, [r2] - movs r0, #0xce - lsls r0, r0, #1 - cmp r1, r0 - beq _0807BB86 - adds r0, r1, #0 - movs r1, #0 - bl PlayCry1 -_0807BB86: - ldr r3, [r4] - adds r1, r3, #0 - adds r1, #0x94 - movs r2, #0 - movs r0, #0xb - bl _0807C83E - .align 2, 0 -_0807BB94: .4byte gUnknown_2021C7C -_0807BB98: .4byte gUnknown_830D240 -_0807BB9C: .4byte gUnknown_2031F40 -_0807BBA0: - ldr r1, [r7] - ldr r0, [r1, #0x64] - adds r0, #1 - str r0, [r1, #0x64] - cmp r0, #0x50 - beq _0807BBB0 - bl _0807C9EC -_0807BBB0: - adds r0, r1, #0 - adds r0, #0x8e - ldrb r0, [r0] - ldr r2, _0807BC04 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r1, [r1, #5] - lsrs r1, r1, #4 - movs r2, #2 - str r2, [sp] - movs r2, #1 - str r2, [sp, #4] - movs r2, #0x14 - str r2, [sp, #8] - ldr r2, _0807BC08 - str r2, [sp, #0xc] - movs r2, #0x78 - movs r3, #0x20 - bl sub_08076124 - ldr r1, [r7] - adds r1, #0xd2 - strb r0, [r1] - ldr r1, [r7] - adds r1, #0x94 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - ldr r4, _0807BC0C - ldr r1, _0807BC10 - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #0 - adds r1, r4, #0 - movs r2, #0 - bl sub_0807EBE0 - bl _0807C9EC - .align 2, 0 -_0807BC04: .4byte gUnknown_20205AC -_0807BC08: .4byte 0x000FFFFF -_0807BC0C: .4byte gUnknown_2021C7C -_0807BC10: .4byte gUnknown_830D24F -_0807BC14: - ldr r5, _0807BC70 - ldr r0, [r7] - adds r0, #0xd2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, r5, #0 - adds r4, #0x1c - adds r0, r0, r4 - ldr r1, [r0] - ldr r0, _0807BC74 - cmp r1, r0 - beq _0807BC34 - bl _0807C9EC -_0807BC34: - ldr r0, _0807BC78 - movs r1, #0x78 - movs r2, #0x20 - movs r3, #0 - bl CreateSprite - ldr r1, [r7] - adds r1, #0xd3 - strb r0, [r1] - ldr r2, [r7] - adds r0, r2, #0 - adds r0, #0xd3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _0807BC7C - str r1, [r0] - adds r2, #0xd2 - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - bl DestroySprite - ldr r1, [r7] - bl _0807C984 - .align 2, 0 -_0807BC70: .4byte gUnknown_20205AC -_0807BC74: .4byte sub_08007140 -_0807BC78: .4byte gUnknown_830CF6C -_0807BC7C: .4byte sub_0807E010 -_0807BC80: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _0807BCA0 - ldr r0, [r0] - adds r0, #0x94 - movs r1, #0x14 - strh r1, [r0] - bl _0807C9EC - .align 2, 0 -_0807BCA0: .4byte gUnknown_2031F40 -_0807BCA4: - ldr r0, _0807BCD0 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807BCB4 - bl _0807C9EC -_0807BCB4: - movs r0, #4 - bl sub_0807B064 - movs r0, #0 - movs r1, #0xff - bl FillWindowPixelBuffer - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - bl _0807C980 - .align 2, 0 -_0807BCD0: .4byte gUnknown_2037C74 -_0807BCD4: - movs r1, #1 - rsbs r1, r1, #0 - movs r0, #0 - str r0, [sp] - adds r0, r1, #0 - movs r2, #0x10 - movs r3, #0 - bl _0807C97C -_0807BCE6: - ldr r0, _0807BD04 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807BCF6 - bl _0807C9EC -_0807BCF6: - ldr r0, [r7] - adds r0, #0x94 - movs r1, #0x17 - strh r1, [r0] - bl _0807C9EC - .align 2, 0 -_0807BD04: .4byte gUnknown_2037C74 -_0807BD08: - ldr r4, _0807BD24 - ldr r0, [r4] - adds r2, r0, #0 - adds r2, #0xea - ldrh r1, [r2] - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - bls _0807BD28 - adds r0, r1, #0 - subs r0, #0x34 - strh r0, [r2] - b _0807BD44 - .align 2, 0 -_0807BD24: .4byte gUnknown_2031F40 -_0807BD28: - movs r0, #1 - bl sub_0807B064 - ldr r3, [r4] - adds r1, r3, #0 - adds r1, #0xea - movs r2, #0 - movs r0, #0x80 - strh r0, [r1] - subs r1, #0x56 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - str r2, [r3, #0x64] -_0807BD44: - ldr r0, _0807BD4C - ldr r4, [r0] - bl _0807C594 - .align 2, 0 -_0807BD4C: .4byte gUnknown_2031F40 -_0807BD50: - ldr r1, [r7] - ldr r0, [r1, #0x64] - adds r0, #1 - str r0, [r1, #0x64] - cmp r0, #0x14 - bhi _0807BD60 - bl _0807C9EC -_0807BD60: - bl sub_0807A598 - ldr r0, _0807BD7C - movs r1, #0x78 - movs r2, #0x50 - movs r3, #0 - bl CreateSprite - ldr r1, [r7] - adds r1, #0x91 - strb r0, [r1] - ldr r1, [r7] - bl _0807C984 - .align 2, 0 -_0807BD7C: .4byte gUnknown_830D0B8 -_0807BD80: - ldr r2, _0807BDC0 - ldr r0, [r7] - adds r0, #0x91 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r2 - adds r0, r1, #0 - adds r0, #0x3f - ldrb r0, [r0] - lsls r0, r0, #0x1b - cmp r0, #0 - blt _0807BDA0 - bl _0807C9EC -_0807BDA0: - adds r0, r1, #0 - bl DestroySprite - movs r1, #0xc8 - lsls r1, r1, #3 - movs r0, #0x50 - bl SetGpuReg - ldr r1, _0807BDC4 - movs r0, #0x52 - bl SetGpuReg - ldr r1, [r7] - bl _0807C984 - .align 2, 0 -_0807BDC0: .4byte gUnknown_20205AC -_0807BDC4: .4byte 0x0000040C -_0807BDC8: - ldr r2, [r7] - adds r0, r2, #0 - adds r0, #0xe0 - ldrh r1, [r0] - subs r1, #1 - strh r1, [r0] - lsls r1, r1, #0x10 - movs r0, #0x9e - lsls r0, r0, #0x11 - cmp r1, r0 - bne _0807BDE8 - adds r1, r2, #0 - adds r1, #0x94 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_0807BDE8: - ldr r0, [r7] - adds r0, #0xe0 - movs r2, #0 - ldrsh r1, [r0, r2] - movs r0, #0xa4 - lsls r0, r0, #1 - cmp r1, r0 - beq _0807BDFC - bl _0807C9EC -_0807BDFC: - ldr r0, _0807BE14 - movs r1, #0x80 - movs r2, #0x41 - movs r3, #0 - bl CreateSprite - ldr r1, [r7] - adds r1, #0x92 - strb r0, [r1] - bl _0807C9EC - .align 2, 0 -_0807BE14: .4byte gUnknown_830D040 -_0807BE18: - ldr r0, _0807BE5C - movs r1, #0x80 - movs r2, #0x50 - movs r3, #3 - bl CreateSprite - ldr r4, _0807BE60 - ldr r1, [r4] - adds r1, #0x90 - strb r0, [r1] - ldr r0, _0807BE64 - movs r1, #0x80 - movs r2, #0x50 - movs r3, #0 - bl CreateSprite - ldr r1, [r4] - adds r1, #0x91 - strb r0, [r1] - ldr r0, [r4] - adds r0, #0x91 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0807BE68 - adds r0, r0, r1 - movs r1, #1 - bl StartSpriteAnim - ldr r1, [r4] - bl _0807C984 - .align 2, 0 -_0807BE5C: .4byte gUnknown_830CFCC -_0807BE60: .4byte gUnknown_2031F40 -_0807BE64: .4byte gUnknown_830D00C -_0807BE68: .4byte gUnknown_20205AC -_0807BE6C: - ldr r2, [r7] - adds r1, r2, #0 - adds r1, #0xe0 - ldrh r0, [r1] - subs r0, #2 - strh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xa6 - bne _0807BE86 - subs r1, #0x4c - movs r0, #0xc8 - strh r0, [r1] -_0807BE86: - ldr r1, _0807BE94 - movs r0, #0 - bl SetGpuReg - bl _0807C9EC - .align 2, 0 -_0807BE94: .4byte 0x00001241 -_0807BE98: - ldr r2, _0807BEEC - ldr r4, [r7] - adds r3, r4, #0 - adds r3, #0x90 - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x22] - subs r1, #2 - strh r1, [r0, #0x22] - adds r0, r4, #0 - adds r0, #0x91 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x22] - subs r1, #2 - strh r1, [r0, #0x22] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r3, #0x22 - ldrsh r1, [r0, r3] - movs r0, #8 - rsbs r0, r0, #0 - cmp r1, r0 - blt _0807BEDE - bl _0807C9EC -_0807BEDE: - adds r1, r4, #0 - adds r1, #0x94 - movs r0, #0x1d - strh r0, [r1] - bl _0807C9EC - .align 2, 0 -_0807BEEC: .4byte gUnknown_20205AC -_0807BEF0: - movs r1, #1 - rsbs r1, r1, #0 - movs r0, #0 - str r0, [sp] - adds r0, r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _0807BF10 - ldr r0, [r0] - adds r0, #0x94 - movs r1, #0x1e - strh r1, [r0] - bl _0807C9EC - .align 2, 0 -_0807BF10: .4byte gUnknown_2031F40 -_0807BF14: - ldr r0, _0807BF58 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807BF24 - bl _0807C9EC -_0807BF24: - ldr r0, [r7] - adds r0, #0x90 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _0807BF5C - adds r0, r0, r4 - bl DestroySprite - ldr r0, [r7] - adds r0, #0x91 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - movs r0, #2 - bl sub_0807B064 - ldr r1, [r7] - bl _0807C984 - .align 2, 0 -_0807BF58: .4byte gUnknown_2037C74 -_0807BF5C: .4byte gUnknown_20205AC -_0807BF60: - movs r1, #1 - rsbs r1, r1, #0 - movs r0, #0 - str r0, [sp] - adds r0, r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r5, _0807BFA4 - adds r0, r5, #0 - movs r1, #0x6f - movs r2, #0xaa - movs r3, #0 - bl CreateSprite - ldr r4, _0807BFA8 - ldr r1, [r4] - adds r1, #0x90 - strb r0, [r1] - movs r2, #0xa - rsbs r2, r2, #0 - adds r0, r5, #0 - movs r1, #0x81 - movs r3, #0 - bl CreateSprite - ldr r1, [r4] - adds r1, #0x91 - strb r0, [r1] - ldr r1, [r4] - bl _0807C984 - .align 2, 0 -_0807BFA4: .4byte gUnknown_830D00C -_0807BFA8: .4byte gUnknown_2031F40 -_0807BFAC: - ldr r0, _0807BFFC - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0807BFCA - movs r0, #0x2e - bl sub_080A306C - ldr r0, _0807C000 - ldr r1, [r0] - adds r1, #0x94 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_0807BFCA: - ldr r3, _0807C004 - ldr r0, _0807C000 - ldr r2, [r0] - adds r0, r2, #0 - adds r0, #0x90 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r0, #0x26] - subs r1, #3 - strh r1, [r0, #0x26] - adds r2, #0x91 - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r0, #0x26] - adds r1, #3 - strh r1, [r0, #0x26] - bl _0807C9EC - .align 2, 0 -_0807BFFC: .4byte gUnknown_2037C74 -_0807C000: .4byte gUnknown_2031F40 -_0807C004: .4byte gUnknown_20205AC -_0807C008: - ldr r5, _0807C064 - ldr r4, [r7] - adds r2, r4, #0 - adds r2, #0x90 - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrh r1, [r0, #0x26] - subs r1, #3 - strh r1, [r0, #0x26] - adds r6, r4, #0 - adds r6, #0x91 - ldrb r1, [r6] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrh r1, [r0, #0x26] - adds r1, #3 - strh r1, [r0, #0x26] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r3, r0, r5 - movs r0, #0x26 - ldrsh r1, [r3, r0] - movs r0, #0x5a - rsbs r0, r0, #0 - cmp r1, r0 - ble _0807C04E - bl _0807C9EC -_0807C04E: - movs r2, #1 - strh r2, [r3, #0x30] - ldrb r1, [r6] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r2, [r0, #0x30] - adds r1, r4, #0 - bl _0807C984 - .align 2, 0 -_0807C064: .4byte gUnknown_20205AC -_0807C068: - ldr r2, _0807C078 - movs r0, #1 - movs r1, #0x10 - bl BlendPalettes - bl _0807C980 - .align 2, 0 -_0807C078: .4byte 0x0000FFFF -_0807C07C: - ldr r2, _0807C08C - movs r0, #1 - movs r1, #0 - bl BlendPalettes - bl _0807C980 - .align 2, 0 -_0807C08C: .4byte 0x0000FFFF -_0807C090: - ldr r2, _0807C0A0 - movs r0, #1 - movs r1, #0x10 - bl BlendPalettes - bl _0807C980 - .align 2, 0 -_0807C0A0: .4byte 0x0000FFFF -_0807C0A4: - ldr r5, _0807C110 - ldr r0, [r5] - adds r0, #0xf0 - ldrh r0, [r0] - bl IsMonSpriteNotFlipped - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0807C11C - ldr r4, _0807C114 - ldr r2, [r5] - adds r2, #0x8e - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #0x10 - adds r0, r0, r1 - ldr r1, _0807C118 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r1, [r0, #1] - movs r2, #3 - orrs r1, r2 - strb r1, [r0, #1] - ldr r0, [r5] - adds r0, #0x8e - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0 - movs r2, #3 - movs r3, #3 - bl CalcCenterToCornerVec - ldr r0, [r5] - adds r0, #0x8e - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0 - bl StartSpriteAffineAnim - b _0807C132 - .align 2, 0 -_0807C110: .4byte gUnknown_2031F40 -_0807C114: .4byte gUnknown_20205AC -_0807C118: .4byte gUnknown_830D110 -_0807C11C: - ldr r0, [r5] - adds r0, #0x8e - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0807C1C0 - adds r0, r0, r1 - movs r1, #0 - bl StartSpriteAffineAnim -_0807C132: - ldr r5, _0807C1C4 - ldr r0, [r5] - adds r0, #0x8f - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _0807C1C0 - adds r0, r0, r4 - movs r1, #0 - bl StartSpriteAffineAnim - ldr r2, [r5] - adds r3, r2, #0 - adds r3, #0x8e - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0x3c - strh r1, [r0, #0x20] - adds r2, #0x8f - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0xb4 - strh r1, [r0, #0x20] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0xc0 - strh r1, [r0, #0x22] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _0807C1C8 - strh r1, [r0, #0x22] - ldrb r0, [r3] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - adds r1, #0x3e - ldrb r3, [r1] - movs r2, #5 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r3 - strb r0, [r1] - ldr r0, [r5] - adds r0, #0x8f - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - ldr r1, [r5] - bl _0807C984 - .align 2, 0 -_0807C1C0: .4byte gUnknown_20205AC -_0807C1C4: .4byte gUnknown_2031F40 -_0807C1C8: .4byte 0x0000FFE0 -_0807C1CC: - ldr r4, _0807C294 - ldr r2, [r7] - adds r3, r2, #0 - adds r3, #0x8e - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r0, #0x26] - subs r1, #3 - movs r5, #0 - strh r1, [r0, #0x26] - adds r2, #0x8f - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r0, #0x26] - adds r1, #3 - strh r1, [r0, #0x26] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r0, [r0, #0x26] - adds r0, #0xa3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #2 - bhi _0807C214 - movs r0, #0x2d - bl sub_080A306C -_0807C214: - ldr r2, [r7] - adds r3, r2, #0 - adds r3, #0x8e - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r6, #0x26 - ldrsh r1, [r0, r6] - movs r0, #0xde - rsbs r0, r0, #0 - cmp r1, r0 - blt _0807C234 - bl _0807C9EC -_0807C234: - adds r0, r2, #0 - adds r0, #0x90 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - strh r5, [r0, #0x30] - adds r0, r2, #0 - adds r0, #0x91 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - strh r5, [r0, #0x30] - adds r1, r2, #0 - adds r1, #0x94 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r7] - adds r0, #0x8f - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - ldr r2, _0807C298 - movs r0, #1 - movs r1, #0 - bl BlendPalettes - b _0807C9EC - .align 2, 0 -_0807C294: .4byte gUnknown_20205AC -_0807C298: .4byte 0x0000FFFF -_0807C29C: - ldr r4, _0807C320 - ldr r2, [r7] - adds r3, r2, #0 - adds r3, #0x90 - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r0, #0x26] - subs r1, #3 - strh r1, [r0, #0x26] - adds r2, #0x91 - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r0, #0x26] - adds r1, #3 - strh r1, [r0, #0x26] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r2, #0x26 - ldrsh r1, [r0, r2] - movs r0, #0xde - rsbs r0, r0, #0 - cmp r1, r0 - ble _0807C2DE - b _0807C9EC -_0807C2DE: - movs r1, #1 - rsbs r1, r1, #0 - movs r0, #0 - str r0, [sp] - adds r0, r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, [r7] - adds r2, r1, #0 - adds r2, #0x94 - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - adds r1, #0x90 - ldrb r1, [r1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - ldr r0, [r7] - adds r0, #0x91 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - b _0807C9EC - .align 2, 0 -_0807C320: .4byte gUnknown_20205AC -_0807C324: - ldr r0, _0807C38C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807C332 - b _0807C9EC -_0807C332: - ldr r1, [r7] - adds r1, #0x94 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - movs r0, #1 - bl sub_0807B064 - ldr r0, [r7] - adds r0, #0xe0 - movs r1, #0xa6 - strh r1, [r0] - ldr r0, _0807C390 - movs r4, #0x14 - rsbs r4, r4, #0 - movs r1, #0x80 - adds r2, r4, #0 - movs r3, #3 - bl CreateSprite - ldr r1, [r7] - adds r1, #0x90 - strb r0, [r1] - ldr r0, _0807C394 - movs r1, #0x80 - adds r2, r4, #0 - movs r3, #0 - bl CreateSprite - ldr r1, [r7] - adds r1, #0x91 - strb r0, [r1] - ldr r0, [r7] - adds r0, #0x91 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0807C398 - adds r0, r0, r1 - movs r1, #1 - bl StartSpriteAnim - b _0807C9EC - .align 2, 0 -_0807C38C: .4byte gUnknown_2037C74 -_0807C390: .4byte gUnknown_830CFCC -_0807C394: .4byte gUnknown_830D00C -_0807C398: .4byte gUnknown_20205AC -_0807C39C: - movs r1, #1 - rsbs r1, r1, #0 - movs r0, #0 - str r0, [sp] - adds r0, r1, #0 - movs r2, #0x10 - movs r3, #0 - b _0807C97C -_0807C3AC: - movs r1, #0x92 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - ldr r0, _0807C3C8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807C3C4 - b _0807C9EC -_0807C3C4: - b _0807C980 - .align 2, 0 -_0807C3C8: .4byte gUnknown_2037C74 -_0807C3CC: - ldr r2, _0807C418 - ldr r4, [r7] - adds r3, r4, #0 - adds r3, #0x90 - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x26] - adds r1, #3 - strh r1, [r0, #0x26] - adds r0, r4, #0 - adds r0, #0x91 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x26] - adds r1, #3 - strh r1, [r0, #0x26] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r3, #0x26 - ldrsh r1, [r0, r3] - movs r6, #0x22 - ldrsh r0, [r0, r6] - adds r1, r1, r0 - cmp r1, #0x40 - beq _0807C412 - b _0807C9EC -_0807C412: - adds r1, r4, #0 - b _0807C984 - .align 2, 0 -_0807C418: .4byte gUnknown_20205AC -_0807C41C: - ldr r1, [r7] - adds r5, r1, #0 - adds r5, #0xe0 - ldrh r0, [r5] - adds r0, #2 - strh r0, [r5] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r6, #0x9e - lsls r6, r6, #1 - cmp r0, r6 - bgt _0807C436 - b _0807C9EC -_0807C436: - strh r6, [r5] - b _0807C984 -_0807C43A: - ldr r0, [r7] - adds r0, #0x90 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _0807C474 - adds r0, r0, r4 - bl DestroySprite - ldr r0, [r7] - adds r0, #0x91 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - ldr r3, [r7] - adds r2, r3, #0 - adds r2, #0x94 - ldrh r0, [r2] - adds r0, #1 - movs r1, #0 - strh r0, [r2] - str r1, [r3, #0x64] - b _0807C9EC - .align 2, 0 -_0807C474: .4byte gUnknown_20205AC -_0807C478: - ldr r1, [r7] - ldr r0, [r1, #0x64] - adds r0, #1 - str r0, [r1, #0x64] - cmp r0, #0xa - beq _0807C486 - b _0807C9EC -_0807C486: - b _0807C984 -_0807C488: - ldr r1, [r7] - adds r2, r1, #0 - adds r2, #0xe0 - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r3, #0xae - lsls r3, r3, #1 - cmp r0, r3 - ble _0807C4AA - strh r3, [r2] - adds r1, #0x94 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_0807C4AA: - ldr r2, [r7] - adds r0, r2, #0 - adds r0, #0xe0 - movs r3, #0 - ldrsh r1, [r0, r3] - movs r0, #0xa4 - lsls r0, r0, #1 - cmp r1, r0 - beq _0807C4BE - b _0807C9EC -_0807C4BE: - adds r0, r2, #0 - adds r0, #0xfa - ldrb r0, [r0] - cmp r0, #0 - bne _0807C4CA - b _0807C9EC -_0807C4CA: - ldr r0, _0807C4F4 - movs r1, #0x80 - movs r2, #0x41 - movs r3, #0 - bl CreateSprite - ldr r1, [r7] - adds r1, #0x92 - strb r0, [r1] - ldr r2, _0807C4F8 - ldr r0, [r7] - adds r0, #0x92 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, _0807C4FC - str r1, [r0] - b _0807C9EC - .align 2, 0 -_0807C4F4: .4byte gUnknown_830D040 -_0807C4F8: .4byte gUnknown_20205AC -_0807C4FC: .4byte sub_0807A550 -_0807C500: - ldr r0, _0807C520 - movs r1, #0x78 - movs r2, #0x50 - movs r3, #0 - bl CreateSprite - ldr r2, _0807C524 - ldr r1, [r2] - adds r1, #0x91 - strb r0, [r1] - ldr r0, [r2] - adds r0, #0x94 - movs r1, #0x32 - strh r1, [r0] - b _0807C9EC - .align 2, 0 -_0807C520: .4byte gUnknown_830D0B8 -_0807C524: .4byte gUnknown_2031F40 -_0807C528: - ldr r2, _0807C564 - ldr r0, [r7] - adds r0, #0x91 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r2 - adds r0, r1, #0 - adds r0, #0x3f - ldrb r0, [r0] - lsls r0, r0, #0x1b - cmp r0, #0 - blt _0807C546 - b _0807C9EC -_0807C546: - adds r0, r1, #0 - bl DestroySprite - movs r0, #6 - bl sub_0807B064 - ldr r1, [r7] - adds r1, #0x94 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - movs r0, #0x9f - bl sub_080A306C - b _0807C9EC - .align 2, 0 -_0807C564: .4byte gUnknown_20205AC -_0807C568: - ldr r1, [r7] - adds r2, r1, #0 - adds r2, #0xea - ldrh r3, [r2] - ldr r0, _0807C580 - cmp r3, r0 - bhi _0807C584 - adds r0, r3, #0 - adds r0, #0x34 - strh r0, [r2] - b _0807C592 - .align 2, 0 -_0807C580: .4byte 0x000003FF -_0807C584: - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r2] - adds r1, #0x94 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_0807C592: - ldr r4, [r7] -_0807C594: - adds r0, r4, #0 - adds r0, #0xea - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #8 - bl __divsi3 - adds r4, #0xe8 - strh r0, [r4] - b _0807C9EC -_0807C5A8: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _0807C5C4 - ldr r0, [r0] - adds r0, #0x94 - movs r1, #0x3c - strh r1, [r0] - b _0807C9EC - .align 2, 0 -_0807C5C4: .4byte gUnknown_2031F40 -_0807C5C8: - ldr r4, _0807C5EC - ldrb r1, [r4, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807C5D6 - b _0807C9EC -_0807C5D6: - movs r0, #5 - bl sub_0807B064 - movs r0, #7 - bl sub_0807B064 - ldrb r0, [r4, #8] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #8] - b _0807C980 - .align 2, 0 -_0807C5EC: .4byte gUnknown_2037C74 -_0807C5F0: - ldr r2, _0807C608 - ldrb r1, [r2, #8] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #8] - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - b _0807C97C - .align 2, 0 -_0807C608: .4byte gUnknown_2037C74 -_0807C60C: - movs r1, #0xa2 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - ldr r0, _0807C628 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807C624 - b _0807C9EC -_0807C624: - b _0807C980 - .align 2, 0 -_0807C628: .4byte gUnknown_2037C74 -_0807C62C: - ldr r0, _0807C6C0 - movs r2, #8 - rsbs r2, r2, #0 - movs r1, #0x78 - movs r3, #0 - bl CreateSprite - ldr r5, _0807C6C4 - ldr r1, [r5] - adds r1, #0xd3 - movs r6, #0 - strb r0, [r1] - ldr r4, _0807C6C8 - ldr r2, [r5] - adds r2, #0xd3 - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0x4a - strh r1, [r0, #0x34] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _0807C6CC - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #1 - bl StartSpriteAnim - ldr r0, [r5] - adds r0, #0xd3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #2 - bl StartSpriteAffineAnim - ldr r0, [r5] - adds r0, #0xd3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r1, [r0, #5] - lsrs r1, r1, #4 - adds r1, #0x10 - movs r0, #1 - lsls r0, r1 - ldr r2, _0807C6D0 - movs r1, #0x10 - bl BlendPalettes - ldr r2, [r5] - adds r1, r2, #0 - adds r1, #0x94 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - str r6, [r2, #0x64] - b _0807C9EC - .align 2, 0 -_0807C6C0: .4byte gUnknown_830CF6C -_0807C6C4: .4byte gUnknown_2031F40 -_0807C6C8: .4byte gUnknown_20205AC -_0807C6CC: .4byte sub_0807E0E4 -_0807C6D0: .4byte 0x0000FFFF -_0807C6D4: - ldr r2, _0807C700 - ldr r0, [r7] - adds r0, #0xd3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #5] - lsrs r1, r1, #4 - adds r1, #0x10 - movs r0, #1 - lsls r0, r1 - ldr r1, _0807C704 - str r1, [sp] - movs r1, #1 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r1, [r7] - b _0807C984 - .align 2, 0 -_0807C700: .4byte gUnknown_20205AC -_0807C704: .4byte 0x0000FFFF -_0807C708: - ldr r2, _0807C744 - ldr r3, [r7] - adds r0, r3, #0 - adds r0, #0xd3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _0807C748 - cmp r1, r0 - beq _0807C726 - b _0807C9EC -_0807C726: - adds r0, r3, #0 - adds r0, #0xf2 - ldrh r2, [r0] - lsls r0, r2, #3 - ldr r1, _0807C74C - adds r0, r0, r1 - ldr r1, _0807C750 - ldr r1, [r1] - ldr r1, [r1, #0x10] - ldr r3, [r3, #0x6c] - bl HandleLoadSpecialPokePic_2 - ldr r1, [r7] - b _0807C984 - .align 2, 0 -_0807C744: .4byte gUnknown_20205AC -_0807C748: .4byte sub_08007140 -_0807C74C: .4byte gUnknown_82DDA1C -_0807C750: .4byte gUnknown_2024178 -_0807C754: - ldr r4, _0807C808 - ldr r2, [r7] - adds r6, r2, #0 - adds r6, #0x8f - ldrb r1, [r6] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r5, #0 - movs r1, #0x78 - strh r1, [r0, #0x20] - ldrb r0, [r6] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldr r3, _0807C80C - adds r2, #0xf2 - ldrh r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r0, [r0, #1] - adds r0, #0x3c - strh r0, [r1, #0x22] - ldrb r1, [r6] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - strh r5, [r0, #0x24] - ldrb r1, [r6] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - strh r5, [r0, #0x26] - ldrb r1, [r6] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0 - bl StartSpriteAnim - ldr r3, [r7] - adds r0, r3, #0 - adds r0, #0x8f - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r1, [r1, #5] - lsrs r1, r1, #4 - movs r2, #2 - str r2, [sp] - movs r2, #1 - str r2, [sp, #4] - movs r2, #0x14 - str r2, [sp, #8] - ldr r2, _0807C810 - str r2, [sp, #0xc] - adds r3, #0xf2 - ldrh r2, [r3] - str r2, [sp, #0x10] - movs r2, #0x78 - movs r3, #0x54 - bl CreatePokeballSpriteToReleaseMon - ldr r0, [r7] - adds r0, #0xd3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl FreeSpriteOamMatrix - ldr r0, [r7] - adds r0, #0xd3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - ldr r1, [r7] - b _0807C984 - .align 2, 0 -_0807C808: .4byte gUnknown_20205AC -_0807C80C: .4byte gUnknown_82D45C8 -_0807C810: .4byte 0x000FFFFF -_0807C814: - movs r1, #0xaa - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - ldr r4, _0807C844 - ldr r1, _0807C848 - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #0 - adds r1, r4, #0 - movs r2, #0 - bl sub_0807EBE0 - ldr r0, _0807C84C - ldr r3, [r0] - adds r1, r3, #0 - adds r1, #0x94 - movs r2, #0 - movs r0, #0xa7 -_0807C83E: - strh r0, [r1] - str r2, [r3, #0x64] - b _0807C9EC - .align 2, 0 -_0807C844: .4byte gUnknown_2021C7C -_0807C848: .4byte gUnknown_830D258 -_0807C84C: .4byte gUnknown_2031F40 -_0807C850: - ldr r3, [r7] - ldr r0, [r3, #0x64] - adds r0, #1 - str r0, [r3, #0x64] - cmp r0, #0x3c - bhi _0807C85E - b _0807C9EC -_0807C85E: - adds r0, r3, #0 - adds r0, #0x94 - movs r2, #0 - ldr r1, _0807C86C - strh r1, [r0] - str r2, [r3, #0x64] - b _0807C9EC - .align 2, 0 -_0807C86C: .4byte 0x0000010B -_0807C870: - bl IsCryFinished - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0807C87C - b _0807C9EC -_0807C87C: - ldr r0, _0807C888 - ldr r0, [r0] - adds r0, #0x94 - movs r1, #0x44 - strh r1, [r0] - b _0807C9EC - .align 2, 0 -_0807C888: .4byte gUnknown_2031F40 -_0807C88C: - ldr r1, [r7] - ldr r0, [r1, #0x64] - adds r0, #1 - str r0, [r1, #0x64] - cmp r0, #0xa - bne _0807C89E - ldr r0, _0807C8CC - bl PlayFanfare -_0807C89E: - ldr r1, [r7] - ldr r0, [r1, #0x64] - cmp r0, #0xfa - beq _0807C8A8 - b _0807C9EC -_0807C8A8: - adds r1, #0x94 - ldrh r0, [r1] - adds r0, #1 - movs r5, #0 - strh r0, [r1] - ldr r4, _0807C8D0 - ldr r1, _0807C8D4 - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #0 - adds r1, r4, #0 - movs r2, #0 - bl sub_0807EBE0 - ldr r0, [r7] - str r5, [r0, #0x64] - b _0807C9EC - .align 2, 0 -_0807C8CC: .4byte 0x00000173 -_0807C8D0: .4byte gUnknown_2021C7C -_0807C8D4: .4byte gUnknown_830D26A -_0807C8D8: - ldr r1, [r7] - ldr r0, [r1, #0x64] - adds r0, #1 - str r0, [r1, #0x64] - cmp r0, #0x3c - beq _0807C8E6 - b _0807C9EC -_0807C8E6: - b _0807C984 -_0807C8E8: - bl sub_0807EB84 - b _0807C980 -_0807C8EE: - ldr r2, [r7] - adds r0, r2, #0 - adds r0, #0xee - ldrb r0, [r0] - cmp r0, #0 - beq _0807C8FE - movs r0, #1 - b _0807C9EE -_0807C8FE: - ldr r0, _0807C910 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0807C9EC - adds r1, r2, #0 - b _0807C984 - .align 2, 0 -_0807C910: .4byte gUnknown_3002360 -_0807C914: - ldr r0, _0807C958 - ldrb r0, [r0] - movs r1, #0 - bl sub_0807AF08 - ldr r1, _0807C95C - ldr r0, _0807C960 - str r0, [r1] - ldr r7, _0807C964 - ldrb r0, [r7] - movs r6, #0x64 - muls r0, r6, r0 - ldr r5, _0807C968 - adds r0, r0, r5 - movs r1, #1 - movs r2, #0 - bl GetEvolutionTargetSpecies - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0 - beq _0807C980 - ldrb r3, [r7] - adds r0, r3, #0 - muls r0, r6, r0 - adds r0, r0, r5 - ldr r1, _0807C96C - ldr r1, [r1] - adds r1, #0x8f - ldrb r2, [r1] - adds r1, r4, #0 - bl TradeEvolutionScene - b _0807C980 - .align 2, 0 -_0807C958: .4byte gUnknown_2037282 -_0807C95C: .4byte gUnknown_3005F28 -_0807C960: .4byte sub_0807B044 -_0807C964: .4byte gUnknown_2031F38 -_0807C968: .4byte gUnknown_2024190 -_0807C96C: .4byte gUnknown_2031F40 -_0807C970: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 -_0807C97C: - bl BeginNormalPaletteFade -_0807C980: - ldr r0, _0807C990 - ldr r1, [r0] -_0807C984: - adds r1, #0x94 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _0807C9EC - .align 2, 0 -_0807C990: .4byte gUnknown_2031F40 -_0807C994: - ldr r0, _0807C9F8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _0807C9EC - ldr r0, [r7] - adds r0, #0xf4 - ldrh r0, [r0] - bl PlayNewMapMusic - ldr r0, [r7] - cmp r0, #0 - beq _0807C9E2 - bl FreeAllWindowBuffers - movs r0, #3 - bl GetBgTilemapBuffer - bl Free - movs r0, #1 - bl GetBgTilemapBuffer - bl Free - movs r0, #0 - bl GetBgTilemapBuffer - bl Free - bl FreeMonSpritesGfx - ldr r0, [r7] - bl Free - str r4, [r7] -_0807C9E2: - ldr r0, _0807C9FC - bl SetMainCallback2 - bl sub_0807E1C4 -_0807C9EC: - movs r0, #0 -_0807C9EE: - add sp, #0x14 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0807C9F8: .4byte gUnknown_2037C74 -_0807C9FC: .4byte sub_08085A30 - thumb_func_end sub_0807B624 - - thumb_func_start sub_0807CA00 -sub_0807CA00: @ 0x0807CA00 - push {r4, r5, r6, r7, lr} - sub sp, #0x14 - ldr r0, _0807CA24 - ldr r1, [r0] - adds r1, #0x94 - ldrh r5, [r1] - ldr r1, _0807CA28 - adds r7, r0, #0 - cmp r5, r1 - bls _0807CA18 - bl _0807DE38 -_0807CA18: - lsls r0, r5, #2 - ldr r1, _0807CA2C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807CA24: .4byte gUnknown_2031F40 -_0807CA28: .4byte 0x0000010B -_0807CA2C: .4byte _0807CA30 -_0807CA30: @ jump table - .4byte _0807CE60 @ case 0 - .4byte _0807CED8 @ case 1 - .4byte _0807DE38 @ case 2 - .4byte _0807DE38 @ case 3 - .4byte _0807DE38 @ case 4 - .4byte _0807DE38 @ case 5 - .4byte _0807DE38 @ case 6 - .4byte _0807DE38 @ case 7 - .4byte _0807DE38 @ case 8 - .4byte _0807DE38 @ case 9 - .4byte _0807CF34 @ case 10 - .4byte _0807CF7C @ case 11 - .4byte _0807CFF0 @ case 12 - .4byte _0807DE38 @ case 13 - .4byte _0807D05C @ case 14 - .4byte _0807DE38 @ case 15 - .4byte _0807DE38 @ case 16 - .4byte _0807DE38 @ case 17 - .4byte _0807DE38 @ case 18 - .4byte _0807DE38 @ case 19 - .4byte _0807D080 @ case 20 - .4byte _0807D0B0 @ case 21 - .4byte _0807D0C2 @ case 22 - .4byte _0807D0E4 @ case 23 - .4byte _0807DE38 @ case 24 - .4byte _0807DE38 @ case 25 - .4byte _0807D1DC @ case 26 - .4byte _0807D1FC @ case 27 - .4byte _0807D268 @ case 28 - .4byte _0807D2EC @ case 29 - .4byte _0807D310 @ case 30 - .4byte _0807D35C @ case 31 - .4byte _0807D3A8 @ case 32 - .4byte _0807D404 @ case 33 - .4byte _0807D470 @ case 34 - .4byte _0807D484 @ case 35 - .4byte _0807D498 @ case 36 - .4byte _0807D4AC @ case 37 - .4byte _0807D5D4 @ case 38 - .4byte _0807D6A4 @ case 39 - .4byte _0807D72C @ case 40 - .4byte _0807D7CC @ case 41 - .4byte _0807D7DC @ case 42 - .4byte _0807D7FC @ case 43 - .4byte _0807DE38 @ case 44 - .4byte _0807DE38 @ case 45 - .4byte _0807D920 @ case 46 - .4byte _0807D930 @ case 47 - .4byte _0807D94E @ case 48 - .4byte _0807DE38 @ case 49 - .4byte _0807D974 @ case 50 - .4byte _0807D9B4 @ case 51 - .4byte _0807D9F4 @ case 52 - .4byte _0807DE38 @ case 53 - .4byte _0807DE38 @ case 54 - .4byte _0807DE38 @ case 55 - .4byte _0807DE38 @ case 56 - .4byte _0807DE38 @ case 57 - .4byte _0807DE38 @ case 58 - .4byte _0807DE38 @ case 59 - .4byte _0807DA14 @ case 60 - .4byte _0807DA3C @ case 61 - .4byte _0807DA58 @ case 62 - .4byte _0807DA78 @ case 63 - .4byte _0807DB20 @ case 64 - .4byte _0807DB54 @ case 65 - .4byte _0807DBA0 @ case 66 - .4byte _0807DC60 @ case 67 - .4byte _0807DCD8 @ case 68 - .4byte _0807DD24 @ case 69 - .4byte _0807DD34 @ case 70 - .4byte _0807DD3A @ case 71 - .4byte _0807DD60 @ case 72 - .4byte _0807DDBC @ case 73 - .4byte _0807DDE0 @ case 74 - .4byte _0807DE38 @ case 75 - .4byte _0807DE38 @ case 76 - .4byte _0807DE38 @ case 77 - .4byte _0807DE38 @ case 78 - .4byte _0807DE38 @ case 79 - .4byte _0807DE38 @ case 80 - .4byte _0807DE38 @ case 81 - .4byte _0807DE38 @ case 82 - .4byte _0807DE38 @ case 83 - .4byte _0807DE38 @ case 84 - .4byte _0807DE38 @ case 85 - .4byte _0807DE38 @ case 86 - .4byte _0807DE38 @ case 87 - .4byte _0807DE38 @ case 88 - .4byte _0807DE38 @ case 89 - .4byte _0807DE38 @ case 90 - .4byte _0807DE38 @ case 91 - .4byte _0807DE38 @ case 92 - .4byte _0807DE38 @ case 93 - .4byte _0807DE38 @ case 94 - .4byte _0807DE38 @ case 95 - .4byte _0807DE38 @ case 96 - .4byte _0807DE38 @ case 97 - .4byte _0807DE38 @ case 98 - .4byte _0807DE38 @ case 99 - .4byte _0807DE38 @ case 100 - .4byte _0807DE38 @ case 101 - .4byte _0807DE38 @ case 102 - .4byte _0807DE38 @ case 103 - .4byte _0807DE38 @ case 104 - .4byte _0807DE38 @ case 105 - .4byte _0807DE38 @ case 106 - .4byte _0807DE38 @ case 107 - .4byte _0807DE38 @ case 108 - .4byte _0807DE38 @ case 109 - .4byte _0807DE38 @ case 110 - .4byte _0807DE38 @ case 111 - .4byte _0807DE38 @ case 112 - .4byte _0807DE38 @ case 113 - .4byte _0807DE38 @ case 114 - .4byte _0807DE38 @ case 115 - .4byte _0807DE38 @ case 116 - .4byte _0807DE38 @ case 117 - .4byte _0807DE38 @ case 118 - .4byte _0807DE38 @ case 119 - .4byte _0807DE38 @ case 120 - .4byte _0807DE38 @ case 121 - .4byte _0807DE38 @ case 122 - .4byte _0807DE38 @ case 123 - .4byte _0807D12C @ case 124 - .4byte _0807D160 @ case 125 - .4byte _0807D1B4 @ case 126 - .4byte _0807DE38 @ case 127 - .4byte _0807DE38 @ case 128 - .4byte _0807DE38 @ case 129 - .4byte _0807DE38 @ case 130 - .4byte _0807DE38 @ case 131 - .4byte _0807DE38 @ case 132 - .4byte _0807DE38 @ case 133 - .4byte _0807DE38 @ case 134 - .4byte _0807DE38 @ case 135 - .4byte _0807DE38 @ case 136 - .4byte _0807DE38 @ case 137 - .4byte _0807DE38 @ case 138 - .4byte _0807DE38 @ case 139 - .4byte _0807DE38 @ case 140 - .4byte _0807DE38 @ case 141 - .4byte _0807DE38 @ case 142 - .4byte _0807DE38 @ case 143 - .4byte _0807D854 @ case 144 - .4byte _0807D8BC @ case 145 - .4byte _0807D8F8 @ case 146 - .4byte _0807DE38 @ case 147 - .4byte _0807DE38 @ case 148 - .4byte _0807DE38 @ case 149 - .4byte _0807DE38 @ case 150 - .4byte _0807DE38 @ case 151 - .4byte _0807DE38 @ case 152 - .4byte _0807DE38 @ case 153 - .4byte _0807DE38 @ case 154 - .4byte _0807DE38 @ case 155 - .4byte _0807DE38 @ case 156 - .4byte _0807DE38 @ case 157 - .4byte _0807DE38 @ case 158 - .4byte _0807DE38 @ case 159 - .4byte _0807DE38 @ case 160 - .4byte _0807DE38 @ case 161 - .4byte _0807DE38 @ case 162 - .4byte _0807DE38 @ case 163 - .4byte _0807DE38 @ case 164 - .4byte _0807DE38 @ case 165 - .4byte _0807DE38 @ case 166 - .4byte _0807DC9C @ case 167 - .4byte _0807DE38 @ case 168 - .4byte _0807DE38 @ case 169 - .4byte _0807DE38 @ case 170 - .4byte _0807DE38 @ case 171 - .4byte _0807DE38 @ case 172 - .4byte _0807DE38 @ case 173 - .4byte _0807DE38 @ case 174 - .4byte _0807DE38 @ case 175 - .4byte _0807DE38 @ case 176 - .4byte _0807DE38 @ case 177 - .4byte _0807DE38 @ case 178 - .4byte _0807DE38 @ case 179 - .4byte _0807DE38 @ case 180 - .4byte _0807DE38 @ case 181 - .4byte _0807DE38 @ case 182 - .4byte _0807DE38 @ case 183 - .4byte _0807DE38 @ case 184 - .4byte _0807DE38 @ case 185 - .4byte _0807DE38 @ case 186 - .4byte _0807DE38 @ case 187 - .4byte _0807DE38 @ case 188 - .4byte _0807DE38 @ case 189 - .4byte _0807DE38 @ case 190 - .4byte _0807DE38 @ case 191 - .4byte _0807DE38 @ case 192 - .4byte _0807DE38 @ case 193 - .4byte _0807DE38 @ case 194 - .4byte _0807DE38 @ case 195 - .4byte _0807DE38 @ case 196 - .4byte _0807DE38 @ case 197 - .4byte _0807DE38 @ case 198 - .4byte _0807DE38 @ case 199 - .4byte _0807D294 @ case 200 - .4byte _0807DE38 @ case 201 - .4byte _0807DE38 @ case 202 - .4byte _0807DE38 @ case 203 - .4byte _0807DE38 @ case 204 - .4byte _0807DE38 @ case 205 - .4byte _0807DE38 @ case 206 - .4byte _0807DE38 @ case 207 - .4byte _0807DE38 @ case 208 - .4byte _0807DE38 @ case 209 - .4byte _0807DE38 @ case 210 - .4byte _0807DE38 @ case 211 - .4byte _0807DE38 @ case 212 - .4byte _0807DE38 @ case 213 - .4byte _0807DE38 @ case 214 - .4byte _0807DE38 @ case 215 - .4byte _0807DE38 @ case 216 - .4byte _0807DE38 @ case 217 - .4byte _0807DE38 @ case 218 - .4byte _0807DE38 @ case 219 - .4byte _0807DE38 @ case 220 - .4byte _0807DE38 @ case 221 - .4byte _0807DE38 @ case 222 - .4byte _0807DE38 @ case 223 - .4byte _0807DE38 @ case 224 - .4byte _0807DE38 @ case 225 - .4byte _0807DE38 @ case 226 - .4byte _0807DE38 @ case 227 - .4byte _0807DE38 @ case 228 - .4byte _0807DE38 @ case 229 - .4byte _0807DE38 @ case 230 - .4byte _0807DE38 @ case 231 - .4byte _0807DE38 @ case 232 - .4byte _0807DE38 @ case 233 - .4byte _0807DE38 @ case 234 - .4byte _0807DE38 @ case 235 - .4byte _0807DE38 @ case 236 - .4byte _0807DE38 @ case 237 - .4byte _0807DE38 @ case 238 - .4byte _0807DE38 @ case 239 - .4byte _0807DE38 @ case 240 - .4byte _0807DE38 @ case 241 - .4byte _0807DE38 @ case 242 - .4byte _0807DE38 @ case 243 - .4byte _0807DE38 @ case 244 - .4byte _0807DE38 @ case 245 - .4byte _0807DE38 @ case 246 - .4byte _0807DE38 @ case 247 - .4byte _0807DE38 @ case 248 - .4byte _0807DE38 @ case 249 - .4byte _0807DE38 @ case 250 - .4byte _0807DE38 @ case 251 - .4byte _0807DE38 @ case 252 - .4byte _0807DE38 @ case 253 - .4byte _0807DE38 @ case 254 - .4byte _0807DE38 @ case 255 - .4byte _0807DE38 @ case 256 - .4byte _0807DE38 @ case 257 - .4byte _0807DE38 @ case 258 - .4byte _0807DE38 @ case 259 - .4byte _0807DE38 @ case 260 - .4byte _0807DE38 @ case 261 - .4byte _0807DE38 @ case 262 - .4byte _0807DE38 @ case 263 - .4byte _0807DE38 @ case 264 - .4byte _0807DE38 @ case 265 - .4byte _0807DE38 @ case 266 - .4byte _0807DCBC @ case 267 -_0807CE60: - ldr r3, _0807CEC8 - ldr r0, [r7] - adds r0, #0x8e - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - ldr r4, [r7] - adds r2, r4, #0 - adds r2, #0x8e - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldr r1, _0807CECC - strh r1, [r0, #0x24] - ldrb r0, [r2] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r2, _0807CED0 - adds r0, r4, #0 - adds r0, #0xf0 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #1] - strh r0, [r1, #0x26] - adds r1, r4, #0 - adds r1, #0x94 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - bl sub_080A27CC - ldr r1, [r7] - adds r1, #0xf4 - strh r0, [r1] - ldr r0, _0807CED4 - bl PlayNewMapMusic - bl _0807DE38 - .align 2, 0 -_0807CEC8: .4byte gUnknown_20205AC -_0807CECC: .4byte 0x0000FF4C -_0807CED0: .4byte gUnknown_82D45C8 -_0807CED4: .4byte 0x00000179 -_0807CED8: - ldr r5, [r7] - adds r6, r5, #0 - adds r6, #0xe6 - movs r1, #0 - ldrsh r0, [r6, r1] - cmp r0, #0 - ble _0807CF0C - ldr r2, _0807CF08 - adds r0, r5, #0 - adds r0, #0x8e - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x24] - adds r1, #3 - strh r1, [r0, #0x24] - ldrh r0, [r6] - subs r0, #3 - strh r0, [r6] - bl _0807DE38 - .align 2, 0 -_0807CF08: .4byte gUnknown_20205AC -_0807CF0C: - ldr r2, _0807CF30 - adds r0, r5, #0 - adds r0, #0x8e - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0 - strh r1, [r0, #0x24] - strh r1, [r6] - adds r1, r5, #0 - adds r1, #0x94 - movs r0, #0xa - strh r0, [r1] - bl _0807DE38 - .align 2, 0 -_0807CF30: .4byte gUnknown_20205AC -_0807CF34: - ldr r4, _0807CF70 - ldr r1, _0807CF74 - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #0 - adds r1, r4, #0 - movs r2, #0 - bl sub_0807EBE0 - ldr r4, _0807CF78 - ldr r0, [r4] - adds r2, r0, #0 - adds r2, #0xf0 - ldrh r1, [r2] - movs r0, #0xce - lsls r0, r0, #1 - cmp r1, r0 - beq _0807CF62 - adds r0, r1, #0 - movs r1, #0 - bl PlayCry1 -_0807CF62: - ldr r3, [r4] - adds r1, r3, #0 - adds r1, #0x94 - movs r2, #0 - movs r0, #0xb - bl _0807DC8A - .align 2, 0 -_0807CF70: .4byte gUnknown_2021C7C -_0807CF74: .4byte gUnknown_830D240 -_0807CF78: .4byte gUnknown_2031F40 -_0807CF7C: - ldr r1, [r7] - ldr r0, [r1, #0x64] - adds r0, #1 - str r0, [r1, #0x64] - cmp r0, #0x50 - beq _0807CF8C - bl _0807DE38 -_0807CF8C: - adds r0, r1, #0 - adds r0, #0x8e - ldrb r0, [r0] - ldr r2, _0807CFE0 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r1, [r1, #5] - lsrs r1, r1, #4 - movs r2, #2 - str r2, [sp] - movs r2, #1 - str r2, [sp, #4] - movs r2, #0x14 - str r2, [sp, #8] - ldr r2, _0807CFE4 - str r2, [sp, #0xc] - movs r2, #0x78 - movs r3, #0x20 - bl sub_08076124 - ldr r1, [r7] - adds r1, #0xd2 - strb r0, [r1] - ldr r1, [r7] - adds r1, #0x94 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - ldr r4, _0807CFE8 - ldr r1, _0807CFEC - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #0 - adds r1, r4, #0 - movs r2, #0 - bl sub_0807EBE0 - bl _0807DE38 - .align 2, 0 -_0807CFE0: .4byte gUnknown_20205AC -_0807CFE4: .4byte 0x000FFFFF -_0807CFE8: .4byte gUnknown_2021C7C -_0807CFEC: .4byte gUnknown_830D24F -_0807CFF0: - ldr r5, _0807D04C - ldr r0, [r7] - adds r0, #0xd2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, r5, #0 - adds r4, #0x1c - adds r0, r0, r4 - ldr r1, [r0] - ldr r0, _0807D050 - cmp r1, r0 - beq _0807D010 - bl _0807DE38 -_0807D010: - ldr r0, _0807D054 - movs r1, #0x78 - movs r2, #0x20 - movs r3, #0 - bl CreateSprite - ldr r1, [r7] - adds r1, #0xd3 - strb r0, [r1] - ldr r2, [r7] - adds r0, r2, #0 - adds r0, #0xd3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _0807D058 - str r1, [r0] - adds r2, #0xd2 - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - bl DestroySprite - ldr r1, [r7] - bl _0807DDD0 - .align 2, 0 -_0807D04C: .4byte gUnknown_20205AC -_0807D050: .4byte sub_08007140 -_0807D054: .4byte gUnknown_830CF6C -_0807D058: .4byte sub_0807E010 -_0807D05C: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _0807D07C - ldr r0, [r0] - adds r0, #0x94 - movs r1, #0x14 - strh r1, [r0] - bl _0807DE38 - .align 2, 0 -_0807D07C: .4byte gUnknown_2031F40 -_0807D080: - ldr r0, _0807D0AC - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807D090 - bl _0807DE38 -_0807D090: - movs r0, #4 - bl sub_0807B064 - movs r0, #0 - movs r1, #0xff - bl FillWindowPixelBuffer - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - bl _0807DDCC - .align 2, 0 -_0807D0AC: .4byte gUnknown_2037C74 -_0807D0B0: - movs r1, #1 - rsbs r1, r1, #0 - movs r0, #0 - str r0, [sp] - adds r0, r1, #0 - movs r2, #0x10 - movs r3, #0 - bl _0807DDC8 -_0807D0C2: - ldr r0, _0807D0E0 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807D0D2 - bl _0807DE38 -_0807D0D2: - ldr r0, [r7] - adds r0, #0x94 - movs r1, #0x17 - strh r1, [r0] - bl _0807DE38 - .align 2, 0 -_0807D0E0: .4byte gUnknown_2037C74 -_0807D0E4: - ldr r4, _0807D100 - ldr r0, [r4] - adds r2, r0, #0 - adds r2, #0xea - ldrh r1, [r2] - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - bls _0807D104 - adds r0, r1, #0 - subs r0, #0x34 - strh r0, [r2] - b _0807D11E - .align 2, 0 -_0807D100: .4byte gUnknown_2031F40 -_0807D104: - movs r0, #1 - bl sub_0807B064 - ldr r3, [r4] - adds r1, r3, #0 - adds r1, #0xea - movs r2, #0 - movs r0, #0x80 - strh r0, [r1] - subs r1, #0x56 - movs r0, #0x7c - strh r0, [r1] - str r2, [r3, #0x64] -_0807D11E: - ldr r0, _0807D128 - ldr r4, [r0] - bl _0807D9E0 - .align 2, 0 -_0807D128: .4byte gUnknown_2031F40 -_0807D12C: - ldr r1, [r7] - ldr r0, [r1, #0x64] - adds r0, #1 - str r0, [r1, #0x64] - cmp r0, #0x14 - bhi _0807D13C - bl _0807DE38 -_0807D13C: - movs r0, #3 - bl sub_0807B064 - ldr r0, _0807D15C - movs r1, #0x78 - movs r2, #0x50 - movs r3, #0 - bl CreateSprite - ldr r1, [r7] - adds r1, #0x91 - strb r0, [r1] - ldr r1, [r7] - bl _0807DDD0 - .align 2, 0 -_0807D15C: .4byte gUnknown_830D0D0 -_0807D160: - ldr r2, _0807D1A8 - ldr r0, [r7] - adds r0, #0x91 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r2 - adds r0, r1, #0 - adds r0, #0x3f - ldrb r0, [r0] - lsls r0, r0, #0x1b - cmp r0, #0 - blt _0807D180 - bl _0807DE38 -_0807D180: - adds r0, r1, #0 - bl DestroySprite - ldr r1, _0807D1AC - movs r0, #0x50 - bl SetGpuReg - movs r1, #0x82 - lsls r1, r1, #3 - movs r0, #0x52 - bl SetGpuReg - ldr r0, _0807D1B0 - movs r1, #5 - bl CreateTask - ldr r1, [r7] - bl _0807DDD0 - .align 2, 0 -_0807D1A8: .4byte gUnknown_20205AC -_0807D1AC: .4byte 0x00000452 -_0807D1B0: .4byte c3_08054588 -_0807D1B4: - ldr r0, _0807D1D4 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0807D1C4 - bl _0807DE38 -_0807D1C4: - ldr r0, _0807D1D8 - ldr r0, [r0] - adds r0, #0x94 - movs r1, #0x1a - strh r1, [r0] - bl _0807DE38 - .align 2, 0 -_0807D1D4: .4byte c3_08054588 -_0807D1D8: .4byte gUnknown_2031F40 -_0807D1DC: - ldr r2, [r7] - adds r0, r2, #0 - adds r0, #0xe0 - ldrh r1, [r0] - subs r1, #1 - strh r1, [r0] - lsls r1, r1, #0x10 - movs r0, #0x9e - lsls r0, r0, #0x11 - cmp r1, r0 - beq _0807D1F6 - bl _0807DE38 -_0807D1F6: - adds r1, r2, #0 - bl _0807DDD0 -_0807D1FC: - ldr r0, _0807D254 - movs r1, #0x78 - movs r2, #0x50 - movs r3, #3 - bl CreateSprite - ldr r4, _0807D258 - ldr r1, [r4] - adds r1, #0x90 - strb r0, [r1] - ldr r5, _0807D25C - ldr r0, [r4] - adds r0, #0x90 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r5, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _0807D260 - str r1, [r0] - ldr r0, _0807D264 - movs r1, #0x78 - movs r2, #0x50 - movs r3, #0 - bl CreateSprite - ldr r1, [r4] - adds r1, #0x91 - strb r0, [r1] - ldr r0, [r4] - adds r0, #0x91 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #1 - bl StartSpriteAnim - ldr r1, [r4] - bl _0807DDD0 - .align 2, 0 -_0807D254: .4byte gUnknown_830CFCC -_0807D258: .4byte gUnknown_2031F40 -_0807D25C: .4byte gUnknown_20205AC -_0807D260: .4byte sub_0807A4BC -_0807D264: .4byte gUnknown_830D00C -_0807D268: - ldr r2, [r7] - adds r1, r2, #0 - adds r1, #0xe0 - ldrh r0, [r1] - subs r0, #3 - strh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xa6 - bne _0807D282 - subs r1, #0x4c - movs r0, #0xc8 - strh r0, [r1] -_0807D282: - ldr r1, _0807D290 - movs r0, #0 - bl SetGpuReg - bl _0807DE38 - .align 2, 0 -_0807D290: .4byte 0x00001241 -_0807D294: - ldr r2, _0807D2E8 - ldr r4, [r7] - adds r3, r4, #0 - adds r3, #0x90 - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x22] - subs r1, #2 - strh r1, [r0, #0x22] - adds r0, r4, #0 - adds r0, #0x91 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x22] - subs r1, #2 - strh r1, [r0, #0x22] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r2, #0x22 - ldrsh r1, [r0, r2] - movs r0, #8 - rsbs r0, r0, #0 - cmp r1, r0 - blt _0807D2DA - bl _0807DE38 -_0807D2DA: - adds r1, r4, #0 - adds r1, #0x94 - movs r0, #0x1d - strh r0, [r1] - bl _0807DE38 - .align 2, 0 -_0807D2E8: .4byte gUnknown_20205AC -_0807D2EC: - movs r1, #1 - rsbs r1, r1, #0 - movs r0, #0 - str r0, [sp] - adds r0, r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _0807D30C - ldr r0, [r0] - adds r0, #0x94 - movs r1, #0x1e - strh r1, [r0] - bl _0807DE38 - .align 2, 0 -_0807D30C: .4byte gUnknown_2031F40 -_0807D310: - ldr r0, _0807D354 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807D320 - bl _0807DE38 -_0807D320: - ldr r0, [r7] - adds r0, #0x90 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _0807D358 - adds r0, r0, r4 - bl DestroySprite - ldr r0, [r7] - adds r0, #0x91 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - movs r0, #2 - bl sub_0807B064 - ldr r1, [r7] - bl _0807DDD0 - .align 2, 0 -_0807D354: .4byte gUnknown_2037C74 -_0807D358: .4byte gUnknown_20205AC -_0807D35C: - movs r1, #1 - rsbs r1, r1, #0 - movs r0, #0 - str r0, [sp] - adds r0, r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r5, _0807D3A0 - adds r0, r5, #0 - movs r1, #0x6f - movs r2, #0xaa - movs r3, #0 - bl CreateSprite - ldr r4, _0807D3A4 - ldr r1, [r4] - adds r1, #0x90 - strb r0, [r1] - movs r2, #0xa - rsbs r2, r2, #0 - adds r0, r5, #0 - movs r1, #0x81 - movs r3, #0 - bl CreateSprite - ldr r1, [r4] - adds r1, #0x91 - strb r0, [r1] - ldr r1, [r4] - bl _0807DDD0 - .align 2, 0 -_0807D3A0: .4byte gUnknown_830D00C -_0807D3A4: .4byte gUnknown_2031F40 -_0807D3A8: - ldr r0, _0807D3F8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0807D3C6 - movs r0, #0x2e - bl sub_080A306C - ldr r0, _0807D3FC - ldr r1, [r0] - adds r1, #0x94 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_0807D3C6: - ldr r3, _0807D400 - ldr r0, _0807D3FC - ldr r2, [r0] - adds r0, r2, #0 - adds r0, #0x90 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r0, #0x26] - subs r1, #3 - strh r1, [r0, #0x26] - adds r2, #0x91 - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r0, #0x26] - adds r1, #3 - strh r1, [r0, #0x26] - bl _0807DE38 - .align 2, 0 -_0807D3F8: .4byte gUnknown_2037C74 -_0807D3FC: .4byte gUnknown_2031F40 -_0807D400: .4byte gUnknown_20205AC -_0807D404: - ldr r5, _0807D468 - ldr r4, [r7] - adds r2, r4, #0 - adds r2, #0x90 - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrh r1, [r0, #0x26] - subs r1, #3 - strh r1, [r0, #0x26] - adds r6, r4, #0 - adds r6, #0x91 - ldrb r1, [r6] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrh r1, [r0, #0x26] - adds r1, #3 - strh r1, [r0, #0x26] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r3, r0, r5 - movs r0, #0x26 - ldrsh r1, [r3, r0] - movs r0, #0x5a - rsbs r0, r0, #0 - cmp r1, r0 - ble _0807D44A - bl _0807DE38 -_0807D44A: - movs r2, #1 - strh r2, [r3, #0x30] - ldrb r1, [r6] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r2, [r0, #0x30] - adds r1, r4, #0 - adds r1, #0x94 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - ldr r0, _0807D46C - b _0807D692 - .align 2, 0 -_0807D468: .4byte gUnknown_20205AC -_0807D46C: .4byte c3_0805465C -_0807D470: - ldr r2, _0807D480 - movs r0, #8 - movs r1, #0x10 - bl BlendPalettes - bl _0807DDCC - .align 2, 0 -_0807D480: .4byte 0x0000FFFF -_0807D484: - ldr r2, _0807D494 - movs r0, #8 - movs r1, #0x10 - bl BlendPalettes - bl _0807DDCC - .align 2, 0 -_0807D494: .4byte 0x0000FFFF -_0807D498: - ldr r2, _0807D4A8 - movs r0, #8 - movs r1, #0x10 - bl BlendPalettes - bl _0807DDCC - .align 2, 0 -_0807D4A8: .4byte 0x0000FFFF -_0807D4AC: - ldr r5, _0807D518 - ldr r0, [r5] - adds r0, #0xf0 - ldrh r0, [r0] - bl IsMonSpriteNotFlipped - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0807D524 - ldr r4, _0807D51C - ldr r2, [r5] - adds r2, #0x8e - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #0x10 - adds r0, r0, r1 - ldr r1, _0807D520 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r1, [r0, #1] - movs r2, #3 - orrs r1, r2 - strb r1, [r0, #1] - ldr r0, [r5] - adds r0, #0x8e - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0 - movs r2, #3 - movs r3, #3 - bl CalcCenterToCornerVec - ldr r0, [r5] - adds r0, #0x8e - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0 - bl StartSpriteAffineAnim - b _0807D53A - .align 2, 0 -_0807D518: .4byte gUnknown_2031F40 -_0807D51C: .4byte gUnknown_20205AC -_0807D520: .4byte gUnknown_830D110 -_0807D524: - ldr r0, [r5] - adds r0, #0x8e - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0807D5C8 - adds r0, r0, r1 - movs r1, #0 - bl StartSpriteAffineAnim -_0807D53A: - ldr r5, _0807D5CC - ldr r0, [r5] - adds r0, #0x8f - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _0807D5C8 - adds r0, r0, r4 - movs r1, #0 - bl StartSpriteAffineAnim - ldr r2, [r5] - adds r3, r2, #0 - adds r3, #0x8e - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0x28 - strh r1, [r0, #0x20] - adds r2, #0x8f - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0xc8 - strh r1, [r0, #0x20] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0xc0 - strh r1, [r0, #0x22] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _0807D5D0 - strh r1, [r0, #0x22] - ldrb r0, [r3] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - adds r1, #0x3e - ldrb r3, [r1] - movs r2, #5 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r3 - strb r0, [r1] - ldr r0, [r5] - adds r0, #0x8f - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - ldr r1, [r5] - bl _0807DDD0 - .align 2, 0 -_0807D5C8: .4byte gUnknown_20205AC -_0807D5CC: .4byte gUnknown_2031F40 -_0807D5D0: .4byte 0x0000FFE0 -_0807D5D4: - ldr r4, _0807D69C - ldr r2, [r7] - adds r3, r2, #0 - adds r3, #0x8e - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r0, #0x26] - subs r1, #3 - movs r5, #0 - strh r1, [r0, #0x26] - adds r2, #0x8f - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r0, #0x26] - adds r1, #3 - strh r1, [r0, #0x26] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r0, [r0, #0x26] - adds r0, #0xa3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #2 - bhi _0807D61C - movs r0, #0x2d - bl sub_080A306C -_0807D61C: - ldr r2, [r7] - adds r3, r2, #0 - adds r3, #0x8e - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r6, #0x26 - ldrsh r1, [r0, r6] - movs r0, #0xde - rsbs r0, r0, #0 - cmp r1, r0 - blt _0807D63C - bl _0807DE38 -_0807D63C: - adds r0, r2, #0 - adds r0, #0x90 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - strh r5, [r0, #0x30] - adds r0, r2, #0 - adds r0, #0x91 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - strh r5, [r0, #0x30] - adds r1, r2, #0 - adds r1, #0x94 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r7] - adds r0, #0x8f - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - ldr r0, _0807D6A0 -_0807D692: - movs r1, #5 - bl CreateTask - b _0807DE38 - .align 2, 0 -_0807D69C: .4byte gUnknown_20205AC -_0807D6A0: .4byte sub_0807EDD4 -_0807D6A4: - ldr r4, _0807D728 - ldr r2, [r7] - adds r3, r2, #0 - adds r3, #0x90 - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r0, #0x26] - subs r1, #3 - strh r1, [r0, #0x26] - adds r2, #0x91 - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r0, #0x26] - adds r1, #3 - strh r1, [r0, #0x26] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r2, #0x26 - ldrsh r1, [r0, r2] - movs r0, #0xde - rsbs r0, r0, #0 - cmp r1, r0 - ble _0807D6E6 - b _0807DE38 -_0807D6E6: - movs r1, #1 - rsbs r1, r1, #0 - movs r0, #0 - str r0, [sp] - adds r0, r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, [r7] - adds r2, r1, #0 - adds r2, #0x94 - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - adds r1, #0x90 - ldrb r1, [r1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - ldr r0, [r7] - adds r0, #0x91 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - b _0807DE38 - .align 2, 0 -_0807D728: .4byte gUnknown_20205AC -_0807D72C: - ldr r0, _0807D7B8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807D73A - b _0807DE38 -_0807D73A: - ldr r1, [r7] - adds r1, #0x94 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - movs r0, #1 - bl sub_0807B064 - ldr r0, [r7] - adds r0, #0xe0 - movs r1, #0xa6 - strh r1, [r0] - movs r0, #3 - bl sub_0807B064 - ldr r0, [r7] - adds r0, #0xe4 - movs r1, #0xce - lsls r1, r1, #1 - strh r1, [r0] - ldr r0, _0807D7BC - movs r4, #0x14 - rsbs r4, r4, #0 - movs r1, #0x78 - adds r2, r4, #0 - movs r3, #3 - bl CreateSprite - ldr r1, [r7] - adds r1, #0x90 - strb r0, [r1] - ldr r5, _0807D7C0 - ldr r0, [r7] - adds r0, #0x90 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r5, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _0807D7C4 - str r1, [r0] - ldr r0, _0807D7C8 - movs r1, #0x78 - adds r2, r4, #0 - movs r3, #0 - bl CreateSprite - ldr r1, [r7] - adds r1, #0x91 - strb r0, [r1] - ldr r0, [r7] - adds r0, #0x91 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #1 - bl StartSpriteAnim - b _0807DE38 - .align 2, 0 -_0807D7B8: .4byte gUnknown_2037C74 -_0807D7BC: .4byte gUnknown_830CFCC -_0807D7C0: .4byte gUnknown_20205AC -_0807D7C4: .4byte sub_0807A4BC -_0807D7C8: .4byte gUnknown_830D00C -_0807D7CC: - movs r1, #1 - rsbs r1, r1, #0 - movs r0, #0 - str r0, [sp] - adds r0, r1, #0 - movs r2, #0x10 - movs r3, #0 - b _0807DDC8 -_0807D7DC: - movs r1, #0x92 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - ldr r0, _0807D7F8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807D7F4 - b _0807DE38 -_0807D7F4: - b _0807DDCC - .align 2, 0 -_0807D7F8: .4byte gUnknown_2037C74 -_0807D7FC: - ldr r2, _0807D850 - ldr r4, [r7] - adds r3, r4, #0 - adds r3, #0x90 - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x26] - adds r1, #4 - strh r1, [r0, #0x26] - adds r0, r4, #0 - adds r0, #0x91 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x26] - adds r1, #4 - strh r1, [r0, #0x26] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r6, #0x26 - ldrsh r1, [r0, r6] - movs r2, #0x22 - ldrsh r0, [r0, r2] - adds r1, r1, r0 - cmp r1, #0x40 - beq _0807D842 - b _0807DE38 -_0807D842: - adds r0, r4, #0 - adds r0, #0x94 - movs r1, #0x90 - strh r1, [r0] - movs r0, #0 - str r0, [r4, #0x64] - b _0807DE38 - .align 2, 0 -_0807D850: .4byte gUnknown_20205AC -_0807D854: - movs r1, #0xb2 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - ldr r4, _0807D8B0 - ldr r2, [r4] - adds r1, r2, #0 - adds r1, #0xe0 - ldrh r0, [r1] - adds r0, #3 - strh r0, [r1] - adds r1, #4 - ldrh r0, [r1] - adds r0, #3 - strh r0, [r1] - ldr r0, [r2, #0x64] - adds r0, #1 - str r0, [r2, #0x64] - cmp r0, #0xa - bne _0807D898 - ldr r0, _0807D8B4 - movs r1, #5 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0807D8B8 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r0, #1 - strh r0, [r1, #0xc] -_0807D898: - ldr r1, [r4] - adds r3, r1, #0 - adds r3, #0xe0 - movs r6, #0 - ldrsh r0, [r3, r6] - movs r2, #0x9e - lsls r2, r2, #1 - cmp r0, r2 - bgt _0807D8AC - b _0807DE38 -_0807D8AC: - strh r2, [r3] - b _0807DDD0 - .align 2, 0 -_0807D8B0: .4byte gUnknown_2031F40 -_0807D8B4: .4byte c3_08054588 -_0807D8B8: .4byte gUnknown_3005B60 -_0807D8BC: - ldr r0, [r7] - adds r0, #0x90 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _0807D8F4 - adds r0, r0, r4 - bl DestroySprite - ldr r0, [r7] - adds r0, #0x91 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - ldr r3, [r7] - adds r2, r3, #0 - adds r2, #0x94 - ldrh r0, [r2] - adds r0, #1 - movs r1, #0 - strh r0, [r2] - str r1, [r3, #0x64] - b _0807DE38 - .align 2, 0 -_0807D8F4: .4byte gUnknown_20205AC -_0807D8F8: - ldr r0, _0807D918 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - beq _0807D908 - b _0807DE38 -_0807D908: - ldr r0, _0807D91C - ldr r2, [r0] - adds r1, r2, #0 - adds r1, #0x94 - movs r0, #0x2e - strh r0, [r1] - str r3, [r2, #0x64] - b _0807DE38 - .align 2, 0 -_0807D918: .4byte c3_08054588 -_0807D91C: .4byte gUnknown_2031F40 -_0807D920: - ldr r1, [r7] - ldr r0, [r1, #0x64] - adds r0, #1 - str r0, [r1, #0x64] - cmp r0, #0xa - beq _0807D92E - b _0807DE38 -_0807D92E: - b _0807DDD0 -_0807D930: - ldr r1, [r7] - adds r5, r1, #0 - adds r5, #0xe0 - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r6, #0xae - lsls r6, r6, #1 - cmp r0, r6 - bgt _0807D94A - b _0807DE38 -_0807D94A: - strh r6, [r5] - b _0807DDD0 -_0807D94E: - ldr r0, _0807D96C - movs r1, #0x78 - movs r2, #0x50 - movs r3, #0 - bl CreateSprite - ldr r2, _0807D970 - ldr r1, [r2] - adds r1, #0x91 - strb r0, [r1] - ldr r0, [r2] - adds r0, #0x94 - movs r1, #0x32 - strh r1, [r0] - b _0807DE38 - .align 2, 0 -_0807D96C: .4byte gUnknown_830D0B8 -_0807D970: .4byte gUnknown_2031F40 -_0807D974: - ldr r2, _0807D9B0 - ldr r0, [r7] - adds r0, #0x91 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r2 - adds r0, r1, #0 - adds r0, #0x3f - ldrb r0, [r0] - lsls r0, r0, #0x1b - cmp r0, #0 - blt _0807D992 - b _0807DE38 -_0807D992: - adds r0, r1, #0 - bl DestroySprite - movs r0, #6 - bl sub_0807B064 - ldr r1, [r7] - adds r1, #0x94 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - movs r0, #0x9f - bl sub_080A306C - b _0807DE38 - .align 2, 0 -_0807D9B0: .4byte gUnknown_20205AC -_0807D9B4: - ldr r1, [r7] - adds r2, r1, #0 - adds r2, #0xea - ldrh r3, [r2] - ldr r0, _0807D9CC - cmp r3, r0 - bhi _0807D9D0 - adds r0, r3, #0 - adds r0, #0x34 - strh r0, [r2] - b _0807D9DE - .align 2, 0 -_0807D9CC: .4byte 0x000003FF -_0807D9D0: - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r2] - adds r1, #0x94 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_0807D9DE: - ldr r4, [r7] -_0807D9E0: - adds r0, r4, #0 - adds r0, #0xea - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #8 - bl __divsi3 - adds r4, #0xe8 - strh r0, [r4] - b _0807DE38 -_0807D9F4: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _0807DA10 - ldr r0, [r0] - adds r0, #0x94 - movs r1, #0x3c - strh r1, [r0] - b _0807DE38 - .align 2, 0 -_0807DA10: .4byte gUnknown_2031F40 -_0807DA14: - ldr r4, _0807DA38 - ldrb r1, [r4, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807DA22 - b _0807DE38 -_0807DA22: - movs r0, #5 - bl sub_0807B064 - movs r0, #7 - bl sub_0807B064 - ldrb r0, [r4, #8] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #8] - b _0807DDCC - .align 2, 0 -_0807DA38: .4byte gUnknown_2037C74 -_0807DA3C: - ldr r2, _0807DA54 - ldrb r1, [r2, #8] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #8] - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - b _0807DDC8 - .align 2, 0 -_0807DA54: .4byte gUnknown_2037C74 -_0807DA58: - movs r1, #0xa2 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - ldr r0, _0807DA74 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807DA70 - b _0807DE38 -_0807DA70: - b _0807DDCC - .align 2, 0 -_0807DA74: .4byte gUnknown_2037C74 -_0807DA78: - ldr r0, _0807DB0C - movs r2, #8 - rsbs r2, r2, #0 - movs r1, #0x78 - movs r3, #0 - bl CreateSprite - ldr r5, _0807DB10 - ldr r1, [r5] - adds r1, #0xd3 - movs r6, #0 - strb r0, [r1] - ldr r4, _0807DB14 - ldr r2, [r5] - adds r2, #0xd3 - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0x4a - strh r1, [r0, #0x34] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _0807DB18 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #1 - bl StartSpriteAnim - ldr r0, [r5] - adds r0, #0xd3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #2 - bl StartSpriteAffineAnim - ldr r0, [r5] - adds r0, #0xd3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r1, [r0, #5] - lsrs r1, r1, #4 - adds r1, #0x10 - movs r0, #1 - lsls r0, r1 - ldr r2, _0807DB1C - movs r1, #0x10 - bl BlendPalettes - ldr r2, [r5] - adds r1, r2, #0 - adds r1, #0x94 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - str r6, [r2, #0x64] - b _0807DE38 - .align 2, 0 -_0807DB0C: .4byte gUnknown_830CF6C -_0807DB10: .4byte gUnknown_2031F40 -_0807DB14: .4byte gUnknown_20205AC -_0807DB18: .4byte sub_0807E0E4 -_0807DB1C: .4byte 0x0000FFFF -_0807DB20: - ldr r2, _0807DB4C - ldr r0, [r7] - adds r0, #0xd3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #5] - lsrs r1, r1, #4 - adds r1, #0x10 - movs r0, #1 - lsls r0, r1 - ldr r1, _0807DB50 - str r1, [sp] - movs r1, #1 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r1, [r7] - b _0807DDD0 - .align 2, 0 -_0807DB4C: .4byte gUnknown_20205AC -_0807DB50: .4byte 0x0000FFFF -_0807DB54: - ldr r2, _0807DB90 - ldr r3, [r7] - adds r0, r3, #0 - adds r0, #0xd3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _0807DB94 - cmp r1, r0 - beq _0807DB72 - b _0807DE38 -_0807DB72: - adds r0, r3, #0 - adds r0, #0xf2 - ldrh r2, [r0] - lsls r0, r2, #3 - ldr r1, _0807DB98 - adds r0, r0, r1 - ldr r1, _0807DB9C - ldr r1, [r1] - ldr r1, [r1, #0x10] - ldr r3, [r3, #0x6c] - bl HandleLoadSpecialPokePic_2 - ldr r1, [r7] - b _0807DDD0 - .align 2, 0 -_0807DB90: .4byte gUnknown_20205AC -_0807DB94: .4byte sub_08007140 -_0807DB98: .4byte gUnknown_82DDA1C -_0807DB9C: .4byte gUnknown_2024178 -_0807DBA0: - ldr r4, _0807DC54 - ldr r2, [r7] - adds r6, r2, #0 - adds r6, #0x8f - ldrb r1, [r6] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r5, #0 - movs r1, #0x78 - strh r1, [r0, #0x20] - ldrb r0, [r6] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldr r3, _0807DC58 - adds r2, #0xf2 - ldrh r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r0, [r0, #1] - adds r0, #0x3c - strh r0, [r1, #0x22] - ldrb r1, [r6] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - strh r5, [r0, #0x24] - ldrb r1, [r6] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - strh r5, [r0, #0x26] - ldrb r1, [r6] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0 - bl StartSpriteAnim - ldr r3, [r7] - adds r0, r3, #0 - adds r0, #0x8f - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r1, [r1, #5] - lsrs r1, r1, #4 - movs r2, #2 - str r2, [sp] - movs r2, #1 - str r2, [sp, #4] - movs r2, #0x14 - str r2, [sp, #8] - ldr r2, _0807DC5C - str r2, [sp, #0xc] - adds r3, #0xf2 - ldrh r2, [r3] - str r2, [sp, #0x10] - movs r2, #0x78 - movs r3, #0x54 - bl CreatePokeballSpriteToReleaseMon - ldr r0, [r7] - adds r0, #0xd3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl FreeSpriteOamMatrix - ldr r0, [r7] - adds r0, #0xd3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - ldr r1, [r7] - b _0807DDD0 - .align 2, 0 -_0807DC54: .4byte gUnknown_20205AC -_0807DC58: .4byte gUnknown_82D45C8 -_0807DC5C: .4byte 0x000FFFFF -_0807DC60: - movs r1, #0xaa - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - ldr r4, _0807DC90 - ldr r1, _0807DC94 - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #0 - adds r1, r4, #0 - movs r2, #0 - bl sub_0807EBE0 - ldr r0, _0807DC98 - ldr r3, [r0] - adds r1, r3, #0 - adds r1, #0x94 - movs r2, #0 - movs r0, #0xa7 -_0807DC8A: - strh r0, [r1] - str r2, [r3, #0x64] - b _0807DE38 - .align 2, 0 -_0807DC90: .4byte gUnknown_2021C7C -_0807DC94: .4byte gUnknown_830D258 -_0807DC98: .4byte gUnknown_2031F40 -_0807DC9C: - ldr r3, [r7] - ldr r0, [r3, #0x64] - adds r0, #1 - str r0, [r3, #0x64] - cmp r0, #0x3c - bhi _0807DCAA - b _0807DE38 -_0807DCAA: - adds r0, r3, #0 - adds r0, #0x94 - movs r2, #0 - ldr r1, _0807DCB8 - strh r1, [r0] - str r2, [r3, #0x64] - b _0807DE38 - .align 2, 0 -_0807DCB8: .4byte 0x0000010B -_0807DCBC: - bl IsCryFinished - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0807DCC8 - b _0807DE38 -_0807DCC8: - ldr r0, _0807DCD4 - ldr r0, [r0] - adds r0, #0x94 - movs r1, #0x44 - strh r1, [r0] - b _0807DE38 - .align 2, 0 -_0807DCD4: .4byte gUnknown_2031F40 -_0807DCD8: - ldr r1, [r7] - ldr r0, [r1, #0x64] - adds r0, #1 - str r0, [r1, #0x64] - cmp r0, #0xa - bne _0807DCEA - ldr r0, _0807DD18 - bl PlayFanfare -_0807DCEA: - ldr r1, [r7] - ldr r0, [r1, #0x64] - cmp r0, #0xfa - beq _0807DCF4 - b _0807DE38 -_0807DCF4: - adds r1, #0x94 - ldrh r0, [r1] - adds r0, #1 - movs r5, #0 - strh r0, [r1] - ldr r4, _0807DD1C - ldr r1, _0807DD20 - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #0 - adds r1, r4, #0 - movs r2, #0 - bl sub_0807EBE0 - ldr r0, [r7] - str r5, [r0, #0x64] - b _0807DE38 - .align 2, 0 -_0807DD18: .4byte 0x00000173 -_0807DD1C: .4byte gUnknown_2021C7C -_0807DD20: .4byte gUnknown_830D26A -_0807DD24: - ldr r1, [r7] - ldr r0, [r1, #0x64] - adds r0, #1 - str r0, [r1, #0x64] - cmp r0, #0x3c - beq _0807DD32 - b _0807DE38 -_0807DD32: - b _0807DDD0 -_0807DD34: - bl sub_0807EB84 - b _0807DDCC -_0807DD3A: - ldr r2, [r7] - adds r0, r2, #0 - adds r0, #0xee - ldrb r0, [r0] - cmp r0, #0 - beq _0807DD4A - movs r0, #1 - b _0807DE3A -_0807DD4A: - ldr r0, _0807DD5C - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0807DE38 - adds r1, r2, #0 - b _0807DDD0 - .align 2, 0 -_0807DD5C: .4byte gUnknown_3002360 -_0807DD60: - ldr r0, _0807DDA4 - ldrb r0, [r0] - movs r1, #0 - bl sub_0807AF08 - ldr r1, _0807DDA8 - ldr r0, _0807DDAC - str r0, [r1] - ldr r7, _0807DDB0 - ldrb r0, [r7] - movs r6, #0x64 - muls r0, r6, r0 - ldr r5, _0807DDB4 - adds r0, r0, r5 - movs r1, #1 - movs r2, #0 - bl GetEvolutionTargetSpecies - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0 - beq _0807DDCC - ldrb r3, [r7] - adds r0, r3, #0 - muls r0, r6, r0 - adds r0, r0, r5 - ldr r1, _0807DDB8 - ldr r1, [r1] - adds r1, #0x8f - ldrb r2, [r1] - adds r1, r4, #0 - bl TradeEvolutionScene - b _0807DDCC - .align 2, 0 -_0807DDA4: .4byte gUnknown_2037282 -_0807DDA8: .4byte gUnknown_3005F28 -_0807DDAC: .4byte sub_0807B044 -_0807DDB0: .4byte gUnknown_2031F38 -_0807DDB4: .4byte gUnknown_2024190 -_0807DDB8: .4byte gUnknown_2031F40 -_0807DDBC: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 -_0807DDC8: - bl BeginNormalPaletteFade -_0807DDCC: - ldr r0, _0807DDDC - ldr r1, [r0] -_0807DDD0: - adds r1, #0x94 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _0807DE38 - .align 2, 0 -_0807DDDC: .4byte gUnknown_2031F40 -_0807DDE0: - ldr r0, _0807DE44 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _0807DE38 - ldr r0, [r7] - adds r0, #0xf4 - ldrh r0, [r0] - bl PlayNewMapMusic - ldr r0, [r7] - cmp r0, #0 - beq _0807DE2E - bl FreeAllWindowBuffers - movs r0, #3 - bl GetBgTilemapBuffer - bl Free - movs r0, #1 - bl GetBgTilemapBuffer - bl Free - movs r0, #0 - bl GetBgTilemapBuffer - bl Free - bl FreeMonSpritesGfx - ldr r0, [r7] - bl Free - str r4, [r7] -_0807DE2E: - ldr r0, _0807DE48 - bl SetMainCallback2 - bl sub_0807E1C4 -_0807DE38: - movs r0, #0 -_0807DE3A: - add sp, #0x14 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0807DE44: .4byte gUnknown_2037C74 -_0807DE48: .4byte sub_08085A30 - thumb_func_end sub_0807CA00 - - thumb_func_start c2_08053788 -c2_08053788: @ 0x0807DE4C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _0807DE68 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, #0 - beq _0807DE6C - cmp r0, #4 - beq _0807DE7C - b _0807DEEC - .align 2, 0 -_0807DE68: .4byte gUnknown_3002360 -_0807DE6C: - movs r0, #4 - strb r0, [r1] - ldr r1, _0807DE78 - movs r0, #1 - b _0807DEEA - .align 2, 0 -_0807DE78: .4byte gUnknown_30027A0 -_0807DE7C: - ldr r0, _0807DEB8 - ldr r1, _0807DEBC - mov r8, r1 - str r1, [r0] - ldr r7, _0807DEC0 - ldrb r0, [r7] - movs r6, #0x64 - muls r0, r6, r0 - ldr r5, _0807DEC4 - adds r0, r0, r5 - movs r1, #1 - movs r2, #0 - bl GetEvolutionTargetSpecies - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0 - beq _0807DECC - ldrb r3, [r7] - adds r0, r3, #0 - muls r0, r6, r0 - adds r0, r0, r5 - ldr r1, _0807DEC8 - ldr r1, [r1] - adds r1, #0x8f - ldrb r2, [r1] - adds r1, r4, #0 - bl TradeEvolutionScene - b _0807DEE6 - .align 2, 0 -_0807DEB8: .4byte gUnknown_3005F28 -_0807DEBC: .4byte sub_0807E588 -_0807DEC0: .4byte gUnknown_2031F38 -_0807DEC4: .4byte gUnknown_2024190 -_0807DEC8: .4byte gUnknown_2031F40 -_0807DECC: - bl sub_08076C68 - cmp r0, #0 - beq _0807DEE0 - ldr r0, _0807DEDC - bl SetMainCallback2 - b _0807DEE6 - .align 2, 0 -_0807DEDC: .4byte sub_0807EE9C -_0807DEE0: - mov r0, r8 - bl SetMainCallback2 -_0807DEE6: - ldr r1, _0807DF10 - movs r0, #0xff -_0807DEEA: - strb r0, [r1] -_0807DEEC: - bl sub_0800AE18 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0807DEFA - bl RunTasks -_0807DEFA: - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0807DF10: .4byte gUnknown_2031F38 - thumb_func_end c2_08053788 - - thumb_func_start sub_0807DF14 -sub_0807DF14: @ 0x0807DF14 - push {r4, r5, r6, lr} - bl sub_0807A738 - bl GetBlockReceivedStatus - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r6, #1 - adds r0, r5, #0 - ands r0, r6 - cmp r0, #0 - beq _0807DF52 - ldr r4, _0807DF80 - ldrh r1, [r4] - ldr r0, _0807DF84 - cmp r1, r0 - bne _0807DF3C - ldr r0, _0807DF88 - bl SetMainCallback2 -_0807DF3C: - ldrh r1, [r4] - ldr r0, _0807DF8C - cmp r1, r0 - bne _0807DF4C - ldr r0, _0807DF90 - ldr r0, [r0] - adds r0, #0x72 - strb r6, [r0] -_0807DF4C: - movs r0, #0 - bl ResetBlockReceivedFlag -_0807DF52: - movs r0, #2 - ands r0, r5 - cmp r0, #0 - beq _0807DF7A - ldr r0, _0807DF80 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r0, r1 - ldrh r1, [r0] - ldr r0, _0807DF8C - cmp r1, r0 - bne _0807DF74 - ldr r0, _0807DF90 - ldr r0, [r0] - adds r0, #0x73 - movs r1, #1 - strb r1, [r0] -_0807DF74: - movs r0, #1 - bl ResetBlockReceivedFlag -_0807DF7A: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0807DF80: .4byte gUnknown_202207C -_0807DF84: .4byte 0x0000DCBA -_0807DF88: .4byte c2_08053788 -_0807DF8C: .4byte 0x0000ABCD -_0807DF90: .4byte gUnknown_2031F40 - thumb_func_end sub_0807DF14 - - thumb_func_start sub_0807DF94 -sub_0807DF94: @ 0x0807DF94 - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - movs r1, #0xa - bl __divsi3 - ldrh r4, [r5, #0x22] - adds r4, r4, r0 - strh r4, [r5, #0x22] - ldrh r0, [r5, #0x30] - ldrh r2, [r5, #0x38] - adds r0, r0, r2 - strh r0, [r5, #0x38] - movs r1, #0x38 - ldrsh r0, [r5, r1] - movs r1, #0xa - bl __divsi3 - strh r0, [r5, #0x20] - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - cmp r4, #0x4c - ble _0807DFE2 - movs r0, #0x4c - strh r0, [r5, #0x22] - movs r2, #0x2e - ldrsh r1, [r5, r2] - movs r2, #0x32 - ldrsh r0, [r5, r2] - muls r0, r1, r0 - rsbs r0, r0, #0 - movs r1, #0x64 - bl __divsi3 - strh r0, [r5, #0x2e] - ldrh r0, [r5, #0x34] - adds r0, #1 - strh r0, [r5, #0x34] -_0807DFE2: - movs r1, #0x20 - ldrsh r0, [r5, r1] - cmp r0, #0x78 - bne _0807DFEE - movs r0, #0 - strh r0, [r5, #0x30] -_0807DFEE: - ldrh r0, [r5, #0x36] - ldrh r2, [r5, #0x2e] - adds r0, r0, r2 - strh r0, [r5, #0x2e] - movs r1, #0x34 - ldrsh r0, [r5, r1] - cmp r0, #4 - bne _0807E006 - movs r0, #1 - strh r0, [r5, #0x3c] - ldr r0, _0807E00C - str r0, [r5, #0x1c] -_0807E006: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0807E00C: .4byte sub_08007140 - thumb_func_end sub_0807DF94 - - thumb_func_start sub_0807E010 -sub_0807E010: @ 0x0807E010 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - ldr r1, _0807E078 - movs r2, #0x2e - ldrsh r0, [r4, r2] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x26] - adds r0, r0, r1 - strh r0, [r4, #0x26] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r0, #0x16 - bne _0807E038 - movs r0, #0x38 - bl sub_080A306C -_0807E038: - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x2c - bne _0807E06E - movs r0, #0x8c - bl sub_080A306C - ldr r0, _0807E07C - str r0, [r4, #0x1c] - movs r0, #0 - strh r0, [r4, #0x2e] - ldrb r1, [r4, #5] - lsrs r1, r1, #4 - adds r1, #0x10 - movs r0, #1 - lsls r0, r1 - movs r1, #1 - rsbs r1, r1, #0 - ldr r2, _0807E080 - str r2, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade -_0807E06E: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0807E078: .4byte gUnknown_830D2A4 -_0807E07C: .4byte sub_0807E084 -_0807E080: .4byte 0x0000FFFF - thumb_func_end sub_0807E010 - - thumb_func_start sub_0807E084 -sub_0807E084: @ 0x0807E084 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x30 - ldrsh r0, [r4, r1] - cmp r0, #0x14 - bne _0807E098 - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAffineAnim -_0807E098: - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x14 - ble _0807E0D6 - ldr r1, _0807E0DC - movs r2, #0x2e - ldrsh r0, [r4, r2] - adds r0, r0, r1 - movs r1, #0 - ldrsb r1, [r0, r1] - ldrh r0, [r4, #0x26] - subs r0, r0, r1 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x17 - bne _0807E0D6 - adds r0, r4, #0 - bl DestroySprite - ldr r0, _0807E0E0 - ldr r0, [r0] - adds r0, #0x94 - movs r1, #0xe - strh r1, [r0] -_0807E0D6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0807E0DC: .4byte gUnknown_830D2A4 -_0807E0E0: .4byte gUnknown_2031F40 - thumb_func_end sub_0807E084 - - thumb_func_start sub_0807E0E4 -sub_0807E0E4: @ 0x0807E0E4 - push {r4, lr} - adds r4, r0, #0 - ldrh r2, [r4, #0x32] - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0807E114 - ldrh r0, [r4, #0x22] - adds r0, #4 - strh r0, [r4, #0x22] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r3, #0x34 - ldrsh r1, [r4, r3] - cmp r0, r1 - ble _0807E164 - adds r0, r2, #1 - strh r0, [r4, #0x32] - movs r0, #0x16 - strh r0, [r4, #0x2e] - movs r0, #0x38 - bl sub_080A306C - b _0807E164 -_0807E114: - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0x42 - bne _0807E122 - movs r0, #0x39 - bl sub_080A306C -_0807E122: - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r0, #0x5c - bne _0807E130 - movs r0, #0x3a - bl sub_080A306C -_0807E130: - movs r3, #0x2e - ldrsh r0, [r4, r3] - cmp r0, #0x6b - bne _0807E13E - movs r0, #0x3b - bl sub_080A306C -_0807E13E: - ldr r1, _0807E16C - movs r2, #0x2e - ldrsh r0, [r4, r2] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r3, [r4, #0x26] - adds r0, r0, r3 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x6c - bne _0807E164 - ldr r0, _0807E170 - str r0, [r4, #0x1c] -_0807E164: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0807E16C: .4byte gUnknown_830D2A4 -_0807E170: .4byte sub_08007140 - thumb_func_end sub_0807E0E4 - - thumb_func_start sub_0807E174 -sub_0807E174: @ 0x0807E174 - push {r4, r5, lr} - ldr r0, _0807E1B0 - ldrh r0, [r0] - lsls r4, r0, #4 - subs r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _0807E1B4 - adds r4, r4, r0 - ldr r0, _0807E1B8 - ldrh r2, [r4, #0x38] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r5, _0807E1BC - adds r1, r1, r5 - bl StringCopy - ldr r0, _0807E1C0 - ldrh r2, [r4, #0xc] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - adds r1, r1, r5 - bl StringCopy - ldrh r0, [r4, #0x38] - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0807E1B0: .4byte gUnknown_2037280 -_0807E1B4: .4byte gUnknown_830D114 -_0807E1B8: .4byte gUnknown_2021C40 -_0807E1BC: .4byte gUnknown_82EA31C -_0807E1C0: .4byte gUnknown_2021C54 - thumb_func_end sub_0807E174 - - thumb_func_start sub_0807E1C4 -sub_0807E1C4: @ 0x0807E1C4 - push {r4, lr} - sub sp, #0x20 - ldr r0, _0807E20C - ldrh r0, [r0] - lsls r4, r0, #4 - subs r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _0807E210 - adds r4, r4, r0 - ldr r0, _0807E214 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0807E218 - adds r0, r0, r1 - movs r1, #2 - mov r2, sp - bl GetMonData - ldr r0, _0807E21C - mov r1, sp - bl StringCopy10 - ldr r0, _0807E220 - ldrh r2, [r4, #0xc] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _0807E224 - adds r1, r1, r2 - bl StringCopy - add sp, #0x20 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0807E20C: .4byte gUnknown_2037280 -_0807E210: .4byte gUnknown_830D114 -_0807E214: .4byte gUnknown_2037282 -_0807E218: .4byte gUnknown_2024190 -_0807E21C: .4byte gUnknown_2021C40 -_0807E220: .4byte gUnknown_2021C54 -_0807E224: .4byte gUnknown_82EA31C - thumb_func_end sub_0807E1C4 - - thumb_func_start _CreateInGameTradePokemon -_CreateInGameTradePokemon: @ 0x0807E228 - push {r4, r5, r6, r7, lr} - sub sp, #0x38 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r1, #4 - subs r2, r2, r1 - lsls r2, r2, #2 - ldr r1, _0807E384 - adds r5, r2, r1 - movs r1, #0x64 - muls r0, r1, r0 - ldr r1, _0807E388 - adds r0, r0, r1 - movs r1, #0x38 - bl GetMonData - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - add r4, sp, #0x34 - movs r0, #0xfe - strb r0, [r4] - ldr r6, _0807E38C - ldrh r1, [r5, #0xc] - movs r3, #1 - str r3, [sp] - ldr r0, [r5, #0x24] - str r0, [sp, #4] - str r3, [sp, #8] - ldr r0, [r5, #0x18] - str r0, [sp, #0xc] - adds r0, r6, #0 - movs r3, #0x20 - bl CreateMon - adds r2, r5, #0 - adds r2, #0xe - adds r0, r6, #0 - movs r1, #0x27 - bl SetMonData - adds r2, r5, #0 - adds r2, #0xf - adds r0, r6, #0 - movs r1, #0x28 - bl SetMonData - adds r2, r5, #0 - adds r2, #0x10 - adds r0, r6, #0 - movs r1, #0x29 - bl SetMonData - adds r2, r5, #0 - adds r2, #0x11 - adds r0, r6, #0 - movs r1, #0x2a - bl SetMonData - adds r2, r5, #0 - adds r2, #0x12 - adds r0, r6, #0 - movs r1, #0x2b - bl SetMonData - adds r2, r5, #0 - adds r2, #0x13 - adds r0, r6, #0 - movs r1, #0x2c - bl SetMonData - adds r0, r6, #0 - movs r1, #2 - adds r2, r5, #0 - bl SetMonData - adds r2, r5, #0 - adds r2, #0x2b - adds r0, r6, #0 - movs r1, #7 - bl SetMonData - adds r2, r5, #0 - adds r2, #0x36 - adds r0, r6, #0 - movs r1, #0x31 - bl SetMonData - adds r2, r5, #0 - adds r2, #0x14 - adds r0, r6, #0 - movs r1, #0x2e - bl SetMonData - adds r2, r5, #0 - adds r2, #0x1d - adds r0, r6, #0 - movs r1, #0x17 - bl SetMonData - adds r2, r5, #0 - adds r2, #0x1e - adds r0, r6, #0 - movs r1, #0x18 - bl SetMonData - adds r2, r5, #0 - adds r2, #0x1c - adds r0, r6, #0 - movs r1, #0x16 - bl SetMonData - adds r2, r5, #0 - adds r2, #0x1f - adds r0, r6, #0 - movs r1, #0x21 - bl SetMonData - adds r2, r5, #0 - adds r2, #0x20 - adds r0, r6, #0 - movs r1, #0x2f - bl SetMonData - adds r2, r5, #0 - adds r2, #0x37 - adds r0, r6, #0 - movs r1, #0x30 - bl SetMonData - adds r0, r6, #0 - movs r1, #0x23 - adds r2, r4, #0 - bl SetMonData - mov r4, sp - adds r4, #0x35 - movs r0, #0 - strb r0, [r4] - ldrh r0, [r5, #0x28] - cmp r0, #0 - beq _0807E3A0 - bl ItemIsMail - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0807E394 - add r0, sp, #0x10 - adds r1, r5, #0 - bl sub_0807E3B4 - ldr r0, _0807E390 - add r1, sp, #0x10 - ldm r1!, {r2, r3, r7} - stm r0!, {r2, r3, r7} - ldm r1!, {r2, r3, r7} - stm r0!, {r2, r3, r7} - ldm r1!, {r2, r3, r7} - stm r0!, {r2, r3, r7} - adds r0, r6, #0 - movs r1, #0x40 - adds r2, r4, #0 - bl SetMonData - adds r2, r5, #0 - adds r2, #0x28 - adds r0, r6, #0 - movs r1, #0xc - bl SetMonData - b _0807E3A0 - .align 2, 0 -_0807E384: .4byte gUnknown_830D114 -_0807E388: .4byte gUnknown_2024190 -_0807E38C: .4byte gUnknown_20243E8 -_0807E390: .4byte gUnknown_2031E60 -_0807E394: - adds r2, r5, #0 - adds r2, #0x28 - adds r0, r6, #0 - movs r1, #0xc - bl SetMonData -_0807E3A0: - ldr r0, _0807E3B0 - bl CalculateMonStats - add sp, #0x38 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0807E3B0: .4byte gUnknown_20243E8 - thumb_func_end _CreateInGameTradePokemon - - thumb_func_start sub_0807E3B4 -sub_0807E3B4: @ 0x0807E3B4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r2, _0807E408 - adds r0, r5, #0 - adds r0, #0x2a - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, r0, r2 - adds r1, r4, #0 - movs r3, #8 -_0807E3CE: - ldrh r0, [r2] - strh r0, [r1] - adds r2, #2 - adds r1, #2 - subs r3, #1 - cmp r3, #0 - bge _0807E3CE - adds r0, r4, #0 - adds r0, #0x12 - adds r1, r5, #0 - adds r1, #0x2b - bl StringCopy - ldr r1, [r5, #0x18] - lsrs r0, r1, #0x18 - strb r0, [r4, #0x1a] - lsrs r0, r1, #0x10 - strb r0, [r4, #0x1b] - lsrs r0, r1, #8 - strb r0, [r4, #0x1c] - strb r1, [r4, #0x1d] - ldrh r0, [r5, #0xc] - strh r0, [r4, #0x1e] - ldrh r0, [r5, #0x28] - strh r0, [r4, #0x20] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0807E408: .4byte gUnknown_830D204 - thumb_func_end sub_0807E3B4 - - thumb_func_start GetTradeSpecies -GetTradeSpecies: @ 0x0807E40C - push {r4, r5, r6, lr} - ldr r6, _0807E438 - ldrh r0, [r6] - movs r5, #0x64 - muls r0, r5, r0 - ldr r4, _0807E43C - adds r0, r0, r4 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - bne _0807E440 - ldrh r0, [r6] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b _0807E442 - .align 2, 0 -_0807E438: .4byte gUnknown_2037282 -_0807E43C: .4byte gUnknown_2024190 -_0807E440: - movs r0, #0 -_0807E442: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end GetTradeSpecies - - thumb_func_start CreateInGameTradePokemon -CreateInGameTradePokemon: @ 0x0807E448 - push {lr} - ldr r0, _0807E45C - ldrb r0, [r0] - ldr r1, _0807E460 - ldrb r1, [r1] - bl _CreateInGameTradePokemon - pop {r0} - bx r0 - .align 2, 0 -_0807E45C: .4byte gUnknown_2037282 -_0807E460: .4byte gUnknown_2037280 - thumb_func_end CreateInGameTradePokemon - - thumb_func_start sub_0807E464 -sub_0807E464: @ 0x0807E464 - push {r4, r5, r6, lr} - bl sub_0807B600 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #1 - bne _0807E4CE - ldr r5, _0807E4F0 - ldr r0, [r5] - adds r0, #0x8e - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _0807E4F4 - adds r0, r0, r4 - bl DestroySprite - ldr r0, [r5] - adds r0, #0x8f - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl FreeSpriteOamMatrix - ldr r0, _0807E4F8 - ldrb r4, [r0] - ldrb r0, [r0, #1] - movs r1, #6 - bl __umodsi3 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl sub_0807AF08 - bl sub_08076C68 - cmp r0, #0 - bne _0807E4C8 - ldr r0, [r5] - adds r2, r0, #0 - adds r2, #0x74 - ldr r1, _0807E4FC - strh r1, [r2] - adds r0, #0x93 - strb r6, [r0] -_0807E4C8: - ldr r0, _0807E500 - bl SetMainCallback2 -_0807E4CE: - bl sub_0807AFF0 - bl sub_0807DF14 - bl RunTasks - bl sub_08004630 - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0807E4F0: .4byte gUnknown_2031F40 -_0807E4F4: .4byte gUnknown_20205AC -_0807E4F8: .4byte gUnknown_2031F38 -_0807E4FC: .4byte 0x0000ABCD -_0807E500: .4byte sub_0807E504 - thumb_func_end sub_0807E464 - - thumb_func_start sub_0807E504 -sub_0807E504: @ 0x0807E504 - push {r4, lr} - bl sub_0807A738 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl sub_08076C68 - cmp r0, #0 - beq _0807E524 - ldr r0, _0807E520 - bl SetMainCallback2 - b _0807E564 - .align 2, 0 -_0807E520: .4byte c2_08053788 -_0807E524: - bl sub_0807DF14 - cmp r4, #0 - bne _0807E564 - ldr r4, _0807E57C - ldr r2, [r4] - adds r0, r2, #0 - adds r0, #0x72 - ldrh r1, [r0] - ldr r0, _0807E580 - cmp r1, r0 - bne _0807E564 - adds r1, r2, #0 - adds r1, #0x74 - ldr r0, _0807E584 - strh r0, [r1] - bl bitmask_all_link_players_but_self - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, [r4] - adds r1, #0x74 - movs r2, #0x14 - bl SendBlock - ldr r0, [r4] - adds r0, #0x72 - movs r1, #2 - strb r1, [r0] - ldr r0, [r4] - adds r0, #0x73 - strb r1, [r0] -_0807E564: - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0807E57C: .4byte gUnknown_2031F40 -_0807E580: .4byte 0x00000101 -_0807E584: .4byte 0x0000DCBA - thumb_func_end sub_0807E504 - - thumb_func_start sub_0807E588 -sub_0807E588: @ 0x0807E588 - push {r4, lr} - sub sp, #4 - ldr r1, _0807E5A8 - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, r1, #0 - cmp r0, #0x65 - bls _0807E59E - b _0807EA72 -_0807E59E: - lsls r0, r0, #2 - ldr r1, _0807E5AC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807E5A8: .4byte gUnknown_3002360 -_0807E5AC: .4byte _0807E5B0 -_0807E5B0: @ jump table - .4byte _0807E748 @ case 0 - .4byte _0807E764 @ case 1 - .4byte _0807E7D0 @ case 2 - .4byte _0807EA72 @ case 3 - .4byte _0807E8B0 @ case 4 - .4byte _0807E974 @ case 5 - .4byte _0807E99C @ case 6 - .4byte _0807E9B6 @ case 7 - .4byte _0807E9DC @ case 8 - .4byte _0807EA28 @ case 9 - .4byte _0807EA72 @ case 10 - .4byte _0807EA72 @ case 11 - .4byte _0807EA72 @ case 12 - .4byte _0807EA72 @ case 13 - .4byte _0807EA72 @ case 14 - .4byte _0807EA72 @ case 15 - .4byte _0807EA72 @ case 16 - .4byte _0807EA72 @ case 17 - .4byte _0807EA72 @ case 18 - .4byte _0807EA72 @ case 19 - .4byte _0807EA72 @ case 20 - .4byte _0807EA72 @ case 21 - .4byte _0807EA72 @ case 22 - .4byte _0807EA72 @ case 23 - .4byte _0807EA72 @ case 24 - .4byte _0807EA72 @ case 25 - .4byte _0807EA72 @ case 26 - .4byte _0807EA72 @ case 27 - .4byte _0807EA72 @ case 28 - .4byte _0807EA72 @ case 29 - .4byte _0807EA72 @ case 30 - .4byte _0807EA72 @ case 31 - .4byte _0807EA72 @ case 32 - .4byte _0807EA72 @ case 33 - .4byte _0807EA72 @ case 34 - .4byte _0807EA72 @ case 35 - .4byte _0807EA72 @ case 36 - .4byte _0807EA72 @ case 37 - .4byte _0807EA72 @ case 38 - .4byte _0807EA72 @ case 39 - .4byte _0807E8D4 @ case 40 - .4byte _0807E924 @ case 41 - .4byte _0807E952 @ case 42 - .4byte _0807EA72 @ case 43 - .4byte _0807EA72 @ case 44 - .4byte _0807EA72 @ case 45 - .4byte _0807EA72 @ case 46 - .4byte _0807EA72 @ case 47 - .4byte _0807EA72 @ case 48 - .4byte _0807EA72 @ case 49 - .4byte _0807E7F8 @ case 50 - .4byte _0807E854 @ case 51 - .4byte _0807E870 @ case 52 - .4byte _0807EA72 @ case 53 - .4byte _0807EA72 @ case 54 - .4byte _0807EA72 @ case 55 - .4byte _0807EA72 @ case 56 - .4byte _0807EA72 @ case 57 - .4byte _0807EA72 @ case 58 - .4byte _0807EA72 @ case 59 - .4byte _0807EA72 @ case 60 - .4byte _0807EA72 @ case 61 - .4byte _0807EA72 @ case 62 - .4byte _0807EA72 @ case 63 - .4byte _0807EA72 @ case 64 - .4byte _0807EA72 @ case 65 - .4byte _0807EA72 @ case 66 - .4byte _0807EA72 @ case 67 - .4byte _0807EA72 @ case 68 - .4byte _0807EA72 @ case 69 - .4byte _0807EA72 @ case 70 - .4byte _0807EA72 @ case 71 - .4byte _0807EA72 @ case 72 - .4byte _0807EA72 @ case 73 - .4byte _0807EA72 @ case 74 - .4byte _0807EA72 @ case 75 - .4byte _0807EA72 @ case 76 - .4byte _0807EA72 @ case 77 - .4byte _0807EA72 @ case 78 - .4byte _0807EA72 @ case 79 - .4byte _0807EA72 @ case 80 - .4byte _0807EA72 @ case 81 - .4byte _0807EA72 @ case 82 - .4byte _0807EA72 @ case 83 - .4byte _0807EA72 @ case 84 - .4byte _0807EA72 @ case 85 - .4byte _0807EA72 @ case 86 - .4byte _0807EA72 @ case 87 - .4byte _0807EA72 @ case 88 - .4byte _0807EA72 @ case 89 - .4byte _0807EA72 @ case 90 - .4byte _0807EA72 @ case 91 - .4byte _0807EA72 @ case 92 - .4byte _0807EA72 @ case 93 - .4byte _0807EA72 @ case 94 - .4byte _0807EA72 @ case 95 - .4byte _0807EA72 @ case 96 - .4byte _0807EA72 @ case 97 - .4byte _0807EA72 @ case 98 - .4byte _0807EA72 @ case 99 - .4byte _0807E77C @ case 100 - .4byte _0807E7B4 @ case 101 -_0807E748: - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r2, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r4, _0807E75C - ldr r1, _0807E760 - b _0807E7DE - .align 2, 0 -_0807E75C: .4byte gUnknown_2021C7C -_0807E760: .4byte gUnknown_8595430 -_0807E764: - movs r0, #0 - bl sub_08076C90 - ldr r0, _0807E778 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - movs r2, #0 - movs r1, #0x64 - b _0807E8C0 - .align 2, 0 -_0807E778: .4byte gUnknown_3002360 -_0807E77C: - ldr r0, _0807E7AC - ldr r3, [r0] - ldr r0, [r3, #0x64] - adds r0, #1 - str r0, [r3, #0x64] - cmp r0, #0xb4 - bls _0807E798 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r2, r1 - movs r2, #0 - movs r1, #0x65 - strb r1, [r0] - str r2, [r3, #0x64] -_0807E798: - bl sub_08076C9C - cmp r0, #0 - bne _0807E7A2 - b _0807EA72 -_0807E7A2: - ldr r0, _0807E7B0 - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r0, r2 - b _0807E7C6 - .align 2, 0 -_0807E7AC: .4byte gUnknown_2031F40 -_0807E7B0: .4byte gUnknown_3002360 -_0807E7B4: - bl sub_08076C9C - cmp r0, #0 - bne _0807E7BE - b _0807EA72 -_0807E7BE: - ldr r0, _0807E7CC - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 -_0807E7C6: - movs r1, #2 - strb r1, [r0] - b _0807EA72 - .align 2, 0 -_0807E7CC: .4byte gUnknown_3002360 -_0807E7D0: - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r2, r0 - movs r0, #0x32 - strb r0, [r1] - ldr r4, _0807E7F0 - ldr r1, _0807E7F4 -_0807E7DE: - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #0 - adds r1, r4, #0 - movs r2, #0 - bl sub_0807EBE0 - b _0807EA72 - .align 2, 0 -_0807E7F0: .4byte gUnknown_2021C7C -_0807E7F4: .4byte gUnknown_8277071 -_0807E7F8: - bl InUnionRoom - cmp r0, #0 - bne _0807E806 - movs r0, #0x15 - bl IncrementGameStat -_0807E806: - ldr r0, _0807E848 - ldrb r0, [r0] - cmp r0, #0 - beq _0807E82E - ldr r4, _0807E84C - bl GetMultiplayerId - movs r1, #1 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r4, #4 - adds r1, r1, r4 - ldr r1, [r1] - movs r0, #2 - bl WonderCard_Test_Unk_08_6 -_0807E82E: - bl SetContinueGameWarpStatusToDynamicWarp - bl sub_081532BC - ldr r1, _0807E850 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - ldrb r0, [r1] - adds r0, #1 - movs r2, #0 - strb r0, [r1] - b _0807E8C2 - .align 2, 0 -_0807E848: .4byte gUnknown_300319C -_0807E84C: .4byte gUnknown_20226A0 -_0807E850: .4byte gUnknown_3002360 -_0807E854: - ldr r0, _0807E86C - ldr r1, [r0] - ldr r0, [r1, #0x64] - adds r0, #1 - str r0, [r1, #0x64] - cmp r0, #5 - beq _0807E864 - b _0807EA72 -_0807E864: - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r2, r0 - b _0807EA1C - .align 2, 0 -_0807E86C: .4byte gUnknown_2031F40 -_0807E870: - bl sub_081532E8 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _0807E894 - bl sub_08076780 - ldr r0, _0807E890 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - movs r1, #4 - strb r1, [r0] - b _0807EA72 - .align 2, 0 -_0807E890: .4byte gUnknown_3002360 -_0807E894: - ldr r0, _0807E8A8 - ldr r0, [r0] - str r1, [r0, #0x64] - ldr r0, _0807E8AC - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r0, r2 - movs r1, #0x33 - strb r1, [r0] - b _0807EA72 - .align 2, 0 -_0807E8A8: .4byte gUnknown_2031F40 -_0807E8AC: .4byte gUnknown_3002360 -_0807E8B0: - bl sub_0815331C - ldr r0, _0807E8CC - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - movs r2, #0 - movs r1, #0x28 -_0807E8C0: - strb r1, [r0] -_0807E8C2: - ldr r0, _0807E8D0 - ldr r0, [r0] - str r2, [r0, #0x64] - b _0807EA72 - .align 2, 0 -_0807E8CC: .4byte gUnknown_3002360 -_0807E8D0: .4byte gUnknown_2031F40 -_0807E8D4: - ldr r4, _0807E908 - ldr r1, [r4] - ldr r0, [r1, #0x64] - adds r0, #1 - str r0, [r1, #0x64] - cmp r0, #0x32 - bhi _0807E8E4 - b _0807EA72 -_0807E8E4: - bl GetMultiplayerId - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0807E90C - bl Random - ldr r4, [r4] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x1e - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [r4, #0x64] - b _0807E912 - .align 2, 0 -_0807E908: .4byte gUnknown_2031F40 -_0807E90C: - ldr r1, [r4] - movs r0, #0 - str r0, [r1, #0x64] -_0807E912: - ldr r0, _0807E920 - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r0, r2 - movs r1, #0x29 - strb r1, [r0] - b _0807EA72 - .align 2, 0 -_0807E920: .4byte gUnknown_3002360 -_0807E924: - ldr r0, _0807E944 - ldr r1, [r0] - ldr r0, [r1, #0x64] - cmp r0, #0 - bne _0807E94C - movs r0, #1 - bl sub_08076C90 - ldr r0, _0807E948 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - movs r1, #0x2a - strb r1, [r0] - b _0807EA72 - .align 2, 0 -_0807E944: .4byte gUnknown_2031F40 -_0807E948: .4byte gUnknown_3002360 -_0807E94C: - subs r0, #1 - str r0, [r1, #0x64] - b _0807EA72 -_0807E952: - bl sub_08076C9C - cmp r0, #0 - bne _0807E95C - b _0807EA72 -_0807E95C: - bl sub_08153344 - ldr r0, _0807E970 - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r0, r2 - movs r1, #5 - strb r1, [r0] - b _0807EA72 - .align 2, 0 -_0807E970: .4byte gUnknown_3002360 -_0807E974: - ldr r0, _0807E998 - ldr r1, [r0] - ldr r0, [r1, #0x64] - adds r0, #1 - str r0, [r1, #0x64] - cmp r0, #0x3c - bls _0807EA72 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r2, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #2 - bl sub_08076C90 - b _0807EA72 - .align 2, 0 -_0807E998: .4byte gUnknown_2031F40 -_0807E99C: - bl sub_08076C9C - cmp r0, #0 - beq _0807EA72 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - b _0807EA14 -_0807E9B6: - ldr r0, _0807E9D4 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0807EA72 - movs r0, #3 - bl sub_080A2B08 - ldr r1, _0807E9D8 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _0807EA1C - .align 2, 0 -_0807E9D4: .4byte gUnknown_2037C74 -_0807E9D8: .4byte gUnknown_3002360 -_0807E9DC: - bl IsBGMStopped - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0807EA72 - ldr r0, _0807EA04 - ldrb r0, [r0] - cmp r0, #0 - beq _0807EA10 - ldr r0, _0807EA08 - ldr r1, [r0, #8] - ldr r0, _0807EA0C - cmp r1, r0 - bne _0807EA10 - movs r0, #3 - bl sub_08076C90 - b _0807EA14 - .align 2, 0 -_0807EA04: .4byte gUnknown_300319C -_0807EA08: .4byte gUnknown_3002360 -_0807EA0C: .4byte sub_08076DB4 -_0807EA10: - bl sub_0800A7F8 -_0807EA14: - ldr r1, _0807EA24 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 -_0807EA1C: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0807EA72 - .align 2, 0 -_0807EA24: .4byte gUnknown_3002360 -_0807EA28: - ldr r0, _0807EA50 - ldrb r0, [r0] - cmp r0, #0 - beq _0807EA60 - ldr r1, [r2, #8] - ldr r0, _0807EA54 - cmp r1, r0 - bne _0807EA60 - bl sub_08076C9C - cmp r0, #0 - beq _0807EA72 - ldr r0, _0807EA58 - movs r1, #0 - strb r1, [r0] - ldr r0, _0807EA5C - bl SetMainCallback2 - b _0807EA72 - .align 2, 0 -_0807EA50: .4byte gUnknown_300319C -_0807EA54: .4byte sub_08076DB4 -_0807EA58: .4byte gUnknown_30027A0 -_0807EA5C: .4byte sub_0807EAA0 -_0807EA60: - ldr r0, _0807EA94 - ldrb r1, [r0] - cmp r1, #0 - bne _0807EA72 - ldr r0, _0807EA98 - strb r1, [r0] - ldr r0, _0807EA9C - bl SetMainCallback2 -_0807EA72: - bl sub_0800AE18 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0807EA80 - bl RunTasks -_0807EA80: - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0807EA94: .4byte gUnknown_30031C4 -_0807EA98: .4byte gUnknown_30027A0 -_0807EA9C: .4byte sub_0807EAA0 - thumb_func_end sub_0807E588 - - thumb_func_start sub_0807EAA0 -sub_0807EAA0: @ 0x0807EAA0 - push {r4, r5, lr} - ldr r0, _0807EB0C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _0807EAF6 - bl FreeAllWindowBuffers - movs r0, #3 - bl GetBgTilemapBuffer - bl Free - movs r0, #1 - bl GetBgTilemapBuffer - bl Free - movs r0, #0 - bl GetBgTilemapBuffer - bl Free - bl FreeMonSpritesGfx - ldr r4, _0807EB10 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r0, _0807EB14 - ldrb r0, [r0] - cmp r0, #0 - beq _0807EAEE - bl DestroyWirelessStatusIndicatorSprite -_0807EAEE: - ldr r0, _0807EB18 - ldr r0, [r0, #8] - bl SetMainCallback2 -_0807EAF6: - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0807EB0C: .4byte gUnknown_2037C74 -_0807EB10: .4byte gUnknown_2031F40 -_0807EB14: .4byte gUnknown_300319C -_0807EB18: .4byte gUnknown_3002360 - thumb_func_end sub_0807EAA0 - - thumb_func_start DoInGameTradeScene -DoInGameTradeScene: @ 0x0807EB1C - push {lr} - sub sp, #4 - bl sub_080987DC - ldr r0, _0807EB44 - movs r1, #0xa - bl CreateTask - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_0807EB44: .4byte sub_0807EB48 - thumb_func_end DoInGameTradeScene - - thumb_func_start sub_0807EB48 -sub_0807EB48: @ 0x0807EB48 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0807EB74 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0807EB6C - ldr r0, _0807EB78 - bl SetMainCallback2 - ldr r1, _0807EB7C - ldr r0, _0807EB80 - str r0, [r1] - adds r0, r4, #0 - bl DestroyTask -_0807EB6C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0807EB74: .4byte gUnknown_2037C74 -_0807EB78: .4byte sub_0807ACC8 -_0807EB7C: .4byte gUnknown_3005B0C -_0807EB80: .4byte FieldCallback_ReturnToEventScript2 - thumb_func_end sub_0807EB48 - - thumb_func_start sub_0807EB84 -sub_0807EB84: @ 0x0807EB84 - push {r4, r5, lr} - movs r5, #0 - movs r4, #0 -_0807EB8A: - ldr r0, _0807EBC8 - ldrb r0, [r0, #1] - movs r1, #6 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x64 - muls r0, r1, r0 - ldr r1, _0807EBCC - adds r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x43 - bl GetMonData - adds r0, r5, r0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xb - bls _0807EB8A - cmp r5, #0 - beq _0807EBC2 - ldr r0, _0807EBD0 - bl FlagSet -_0807EBC2: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0807EBC8: .4byte gUnknown_2031F38 -_0807EBCC: .4byte gUnknown_20243E8 -_0807EBD0: .4byte 0x0000089B - thumb_func_end sub_0807EB84 - - thumb_func_start sub_0807EBD4 -sub_0807EBD4: @ 0x0807EBD4 - push {lr} - bl sub_0807ABCC - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0807EBD4 - - thumb_func_start sub_0807EBE0 -sub_0807EBE0: @ 0x0807EBE0 - push {r4, r5, r6, lr} - sub sp, #0x14 - adds r5, r0, #0 - adds r6, r1, #0 - adds r4, r2, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - movs r1, #0xff - bl FillWindowPixelBuffer - ldr r2, _0807EC44 - ldr r0, [r2] - adds r0, #0xf6 - movs r3, #0 - movs r1, #0xf - strb r1, [r0] - ldr r0, [r2] - adds r0, #0xf7 - movs r1, #1 - strb r1, [r0] - ldr r0, [r2] - adds r0, #0xf8 - movs r1, #6 - strb r1, [r0] - str r3, [sp] - str r3, [sp, #4] - ldr r0, [r2] - adds r0, #0xf6 - str r0, [sp, #8] - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - str r4, [sp, #0xc] - str r6, [sp, #0x10] - adds r0, r5, #0 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized4 - adds r0, r5, #0 - movs r1, #3 - bl CopyWindowToVram - add sp, #0x14 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0807EC44: .4byte gUnknown_2031F40 - thumb_func_end sub_0807EBE0 - - thumb_func_start c3_08054588 -c3_08054588: @ 0x0807EC48 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _0807EC80 - adds r4, r0, r1 - ldr r1, _0807EC84 - movs r2, #0 - ldrsh r0, [r4, r2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r2, r1, #0 - movs r3, #4 - ldrsh r0, [r4, r3] - cmp r0, #0 - bne _0807EC8C - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - beq _0807EC94 - lsls r0, r1, #1 - ldr r1, _0807EC88 - adds r0, r0, r1 - b _0807EC96 - .align 2, 0 -_0807EC80: .4byte gUnknown_3005B68 -_0807EC84: .4byte gUnknown_830D310 -_0807EC88: .4byte gUnknown_830BCE4 -_0807EC8C: - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - bne _0807ECA4 -_0807EC94: - ldr r0, _0807ECA0 -_0807EC96: - movs r1, #0x30 - movs r2, #0x20 - bl LoadPalette - b _0807ECB2 - .align 2, 0 -_0807ECA0: .4byte gUnknown_830C0E4 -_0807ECA4: - lsls r0, r2, #1 - ldr r1, _0807ED08 - adds r0, r0, r1 - movs r1, #0x30 - movs r2, #0x20 - bl LoadPalette -_0807ECB2: - ldr r0, _0807ED0C - movs r2, #0 - ldrsh r1, [r4, r2] - lsls r1, r1, #1 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0 - bne _0807ECD0 - movs r3, #2 - ldrsh r0, [r4, r3] - cmp r0, #0 - bne _0807ECD0 - movs r0, #0xc3 - bl sub_080A306C -_0807ECD0: - movs r0, #2 - ldrsh r2, [r4, r0] - ldr r1, _0807ED0C - movs r3, #0 - ldrsh r0, [r4, r3] - lsls r0, r0, #1 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r2, r0 - bne _0807ED10 - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - movs r0, #0 - strh r0, [r4, #2] - movs r2, #0 - ldrsh r0, [r4, r2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0xff - bne _0807ED16 - adds r0, r5, #0 - bl DestroyTask - b _0807ED16 - .align 2, 0 -_0807ED08: .4byte gUnknown_830BEE4 -_0807ED0C: .4byte gUnknown_830D310 -_0807ED10: - ldrh r0, [r4, #2] - adds r0, #1 - strh r0, [r4, #2] -_0807ED16: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end c3_08054588 - - thumb_func_start c3_0805465C -c3_0805465C: @ 0x0807ED1C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r6, r0, #0 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _0807EDCC - adds r5, r0, r1 - movs r0, #0 - ldrsh r4, [r5, r0] - cmp r4, #0 - bne _0807ED6E - ldr r2, _0807EDD0 - ldr r0, [r2] - adds r3, r0, #0 - adds r3, #0xfd - movs r1, #0x78 - strb r1, [r3] - adds r0, #0xfb - strb r1, [r0] - ldr r0, [r2] - adds r0, #0xfc - strb r4, [r0] - ldr r0, [r2] - adds r0, #0xfe - movs r1, #0xa0 - strb r1, [r0] - movs r1, #0x80 - lsls r1, r1, #6 - movs r0, #0 - bl SetGpuRegBits - movs r0, #0x4a - movs r1, #0x10 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0x13 - bl SetGpuReg -_0807ED6E: - ldr r4, _0807EDD0 - ldr r0, [r4] - adds r1, r0, #0 - adds r1, #0xfd - ldrb r1, [r1] - adds r0, #0xfb - ldrb r0, [r0] - lsls r0, r0, #8 - orrs r1, r0 - movs r0, #0x40 - bl SetGpuReg - ldr r0, [r4] - adds r1, r0, #0 - adds r1, #0xfe - ldrb r1, [r1] - adds r0, #0xfc - ldrb r0, [r0] - lsls r0, r0, #8 - orrs r1, r0 - movs r0, #0x44 - bl SetGpuReg - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - ldr r1, [r4] - adds r1, #0xfb - ldrb r0, [r1] - subs r0, #5 - strb r0, [r1] - ldr r1, [r4] - adds r1, #0xfd - ldrb r0, [r1] - adds r0, #5 - strb r0, [r1] - ldr r0, [r4] - adds r0, #0xfb - ldrb r0, [r0] - cmp r0, #0x4f - bhi _0807EDC6 - adds r0, r6, #0 - bl DestroyTask -_0807EDC6: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0807EDCC: .4byte gUnknown_3005B68 -_0807EDD0: .4byte gUnknown_2031F40 - thumb_func_end c3_0805465C - - thumb_func_start sub_0807EDD4 -sub_0807EDD4: @ 0x0807EDD4 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r6, r0, #0 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _0807EE78 - adds r5, r0, r1 - movs r1, #0 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _0807EE10 - ldr r2, _0807EE7C - ldr r0, [r2] - adds r0, #0xfb - movs r1, #0x50 - strb r1, [r0] - ldr r0, [r2] - adds r0, #0xfd - movs r1, #0xa0 - strb r1, [r0] - movs r0, #0x4a - movs r1, #0x10 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0x13 - bl SetGpuReg -_0807EE10: - ldr r4, _0807EE7C - ldr r0, [r4] - adds r1, r0, #0 - adds r1, #0xfd - ldrb r1, [r1] - adds r0, #0xfb - ldrb r0, [r0] - lsls r0, r0, #8 - orrs r1, r0 - movs r0, #0x40 - bl SetGpuReg - ldr r0, [r4] - adds r1, r0, #0 - adds r1, #0xfe - ldrb r1, [r1] - adds r0, #0xfc - ldrb r0, [r0] - lsls r0, r0, #8 - orrs r1, r0 - movs r0, #0x44 - bl SetGpuReg - ldr r0, [r4] - adds r0, #0xfb - ldrb r0, [r0] - cmp r0, #0x78 - beq _0807EE84 - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - ldr r1, [r4] - adds r1, #0xfb - ldrb r0, [r1] - adds r0, #5 - strb r0, [r1] - ldr r1, [r4] - adds r1, #0xfd - ldrb r0, [r1] - subs r0, #5 - strb r0, [r1] - ldr r0, [r4] - adds r0, #0xfb - ldrb r0, [r0] - cmp r0, #0x73 - bls _0807EE94 - ldr r2, _0807EE80 - movs r0, #8 - movs r1, #0 - bl BlendPalettes - b _0807EE94 - .align 2, 0 -_0807EE78: .4byte gUnknown_3005B68 -_0807EE7C: .4byte gUnknown_2031F40 -_0807EE80: .4byte 0x0000FFFF -_0807EE84: - movs r1, #0x80 - lsls r1, r1, #6 - movs r0, #0 - bl ClearGpuRegBits - adds r0, r6, #0 - bl DestroyTask -_0807EE94: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0807EDD4 - - thumb_func_start sub_0807EE9C -sub_0807EE9C: @ 0x0807EE9C - push {r4, r5, lr} - sub sp, #4 - ldr r1, _0807EEBC - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, r1, #0 - cmp r0, #0xc - bls _0807EEB2 - b _0807F144 -_0807EEB2: - lsls r0, r0, #2 - ldr r1, _0807EEC0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807EEBC: .4byte gUnknown_3002360 -_0807EEC0: .4byte _0807EEC4 -_0807EEC4: @ jump table - .4byte _0807EEF8 @ case 0 - .4byte _0807EF20 @ case 1 - .4byte _0807EF38 @ case 2 - .4byte _0807EF88 @ case 3 - .4byte _0807EFA8 @ case 4 - .4byte _0807EFE4 @ case 5 - .4byte _0807F008 @ case 6 - .4byte _0807F058 @ case 7 - .4byte _0807F086 @ case 8 - .4byte _0807F0A4 @ case 9 - .4byte _0807F0CC @ case 10 - .4byte _0807F0FC @ case 11 - .4byte _0807F130 @ case 12 -_0807EEF8: - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r2, r0 - movs r0, #1 - strb r0, [r1] - ldr r4, _0807EF18 - ldr r1, _0807EF1C - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #0 - adds r1, r4, #0 - movs r2, #0 - bl sub_0807EBE0 - b _0807F144 - .align 2, 0 -_0807EF18: .4byte gUnknown_2021C7C -_0807EF1C: .4byte gUnknown_8595430 -_0807EF20: - movs r0, #0 - bl sub_08076C90 - ldr r0, _0807EF34 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - movs r2, #0 - movs r1, #2 - b _0807EFF4 - .align 2, 0 -_0807EF34: .4byte gUnknown_3002360 -_0807EF38: - bl sub_08076C9C - cmp r0, #0 - bne _0807EF42 - b _0807F144 -_0807EF42: - ldr r0, _0807EF78 - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r0, r2 - movs r5, #0 - movs r1, #3 - strb r1, [r0] - ldr r4, _0807EF7C - ldr r1, _0807EF80 - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #0 - adds r1, r4, #0 - movs r2, #0 - bl sub_0807EBE0 - movs r0, #0x15 - bl IncrementGameStat - bl sub_081532BC - ldr r0, _0807EF84 - ldr r0, [r0] - str r5, [r0, #0x64] - b _0807F144 - .align 2, 0 -_0807EF78: .4byte gUnknown_3002360 -_0807EF7C: .4byte gUnknown_2021C7C -_0807EF80: .4byte gUnknown_8277071 -_0807EF84: .4byte gUnknown_2031F40 -_0807EF88: - ldr r0, _0807EFA4 - ldr r1, [r0] - ldr r0, [r1, #0x64] - adds r0, #1 - str r0, [r1, #0x64] - cmp r0, #5 - beq _0807EF98 - b _0807F144 -_0807EF98: - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r2, r0 - movs r0, #4 - strb r0, [r1] - b _0807F144 - .align 2, 0 -_0807EFA4: .4byte gUnknown_2031F40 -_0807EFA8: - bl sub_081532E8 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _0807EFC8 - ldr r0, _0807EFC4 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - movs r1, #5 - strb r1, [r0] - b _0807F144 - .align 2, 0 -_0807EFC4: .4byte gUnknown_3002360 -_0807EFC8: - ldr r0, _0807EFDC - ldr r0, [r0] - str r1, [r0, #0x64] - ldr r0, _0807EFE0 - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r0, r2 - movs r1, #3 - strb r1, [r0] - b _0807F144 - .align 2, 0 -_0807EFDC: .4byte gUnknown_2031F40 -_0807EFE0: .4byte gUnknown_3002360 -_0807EFE4: - bl sub_0815331C - ldr r0, _0807F000 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - movs r2, #0 - movs r1, #6 -_0807EFF4: - strb r1, [r0] - ldr r0, _0807F004 - ldr r0, [r0] - str r2, [r0, #0x64] - b _0807F144 - .align 2, 0 -_0807F000: .4byte gUnknown_3002360 -_0807F004: .4byte gUnknown_2031F40 -_0807F008: - ldr r4, _0807F03C - ldr r1, [r4] - ldr r0, [r1, #0x64] - adds r0, #1 - str r0, [r1, #0x64] - cmp r0, #0xa - bhi _0807F018 - b _0807F144 -_0807F018: - bl GetMultiplayerId - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0807F040 - bl Random - ldr r4, [r4] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x1e - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [r4, #0x64] - b _0807F046 - .align 2, 0 -_0807F03C: .4byte gUnknown_2031F40 -_0807F040: - ldr r1, [r4] - movs r0, #0 - str r0, [r1, #0x64] -_0807F046: - ldr r0, _0807F054 - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r0, r2 - movs r1, #7 - strb r1, [r0] - b _0807F144 - .align 2, 0 -_0807F054: .4byte gUnknown_3002360 -_0807F058: - ldr r0, _0807F078 - ldr r1, [r0] - ldr r0, [r1, #0x64] - cmp r0, #0 - bne _0807F080 - movs r0, #1 - bl sub_08076C90 - ldr r0, _0807F07C - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - movs r1, #8 - strb r1, [r0] - b _0807F144 - .align 2, 0 -_0807F078: .4byte gUnknown_2031F40 -_0807F07C: .4byte gUnknown_3002360 -_0807F080: - subs r0, #1 - str r0, [r1, #0x64] - b _0807F144 -_0807F086: - bl sub_08076C9C - cmp r0, #0 - beq _0807F144 - bl sub_08153344 - ldr r0, _0807F0A0 - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r0, r2 - movs r1, #9 - strb r1, [r0] - b _0807F144 - .align 2, 0 -_0807F0A0: .4byte gUnknown_3002360 -_0807F0A4: - ldr r0, _0807F0C8 - ldr r1, [r0] - ldr r0, [r1, #0x64] - adds r0, #1 - str r0, [r1, #0x64] - cmp r0, #0x3c - bls _0807F144 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r2, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #2 - bl sub_08076C90 - b _0807F144 - .align 2, 0 -_0807F0C8: .4byte gUnknown_2031F40 -_0807F0CC: - bl sub_08076C9C - cmp r0, #0 - beq _0807F144 - movs r0, #3 - bl sub_080A2B08 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _0807F0F8 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - movs r1, #0xb - strb r1, [r0] - b _0807F144 - .align 2, 0 -_0807F0F8: .4byte gUnknown_3002360 -_0807F0FC: - ldr r0, _0807F128 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0807F144 - bl IsBGMStopped - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0807F144 - movs r0, #3 - bl sub_08076C90 - ldr r0, _0807F12C - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r0, r2 - movs r1, #0xc - strb r1, [r0] - b _0807F144 - .align 2, 0 -_0807F128: .4byte gUnknown_2037C74 -_0807F12C: .4byte gUnknown_3002360 -_0807F130: - bl sub_08076C9C - cmp r0, #0 - beq _0807F144 - ldr r0, _0807F168 - movs r1, #0 - strb r1, [r0] - ldr r0, _0807F16C - bl SetMainCallback2 -_0807F144: - bl sub_0800AE18 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0807F152 - bl RunTasks -_0807F152: - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0807F168: .4byte gUnknown_30027A0 -_0807F16C: .4byte sub_0807EAA0 - thumb_func_end sub_0807EE9C - - thumb_func_start Blender_ControlHitPitch -Blender_ControlHitPitch: @ 0x0807F170 - push {lr} - ldr r0, _0807F190 - ldr r1, _0807F194 - ldr r2, _0807F198 - ldr r2, [r2] - adds r2, #0x4c - movs r3, #0 - ldrsh r2, [r2, r3] - subs r2, #0x80 - lsls r2, r2, #0x11 - asrs r2, r2, #0x10 - bl m4aMPlayPitchControl - pop {r0} - bx r0 - .align 2, 0 -_0807F190: .4byte gUnknown_3007550 -_0807F194: .4byte 0x0000FFFF -_0807F198: .4byte gUnknown_2031F44 - thumb_func_end Blender_ControlHitPitch - - thumb_func_start VBlankCB0_BerryBlender -VBlankCB0_BerryBlender: @ 0x0807F19C - push {r4, lr} - sub sp, #0x10 - bl BerryBlender_SetBackgroundsPos - ldr r0, _0807F20C - ldr r0, [r0] - mov ip, r0 - movs r0, #0xa0 - lsls r0, r0, #1 - add r0, ip - ldr r1, [r0] - movs r0, #0xa2 - lsls r0, r0, #1 - add r0, ip - ldr r2, [r0] - movs r0, #0xa4 - lsls r0, r0, #1 - add r0, ip - movs r4, #0 - ldrsh r3, [r0, r4] - movs r0, #0xa5 - lsls r0, r0, #1 - add r0, ip - movs r4, #0 - ldrsh r0, [r0, r4] - str r0, [sp] - movs r0, #0xa6 - lsls r0, r0, #1 - add r0, ip - movs r4, #0 - ldrsh r0, [r0, r4] - str r0, [sp, #4] - movs r0, #0xa7 - lsls r0, r0, #1 - add r0, ip - movs r4, #0 - ldrsh r0, [r0, r4] - str r0, [sp, #8] - movs r0, #0xa8 - lsls r0, r0, #1 - add r0, ip - ldrh r0, [r0] - str r0, [sp, #0xc] - movs r0, #2 - bl SetBgAffine - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - add sp, #0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0807F20C: .4byte gUnknown_2031F44 - thumb_func_end VBlankCB0_BerryBlender - - thumb_func_start LoadBerryBlenderGfx -LoadBerryBlenderGfx: @ 0x0807F210 - push {r4, r5, lr} - ldr r1, _0807F22C - ldr r0, [r1] - ldrb r0, [r0, #1] - adds r5, r1, #0 - cmp r0, #9 - bls _0807F220 - b _0807F400 -_0807F220: - lsls r0, r0, #2 - ldr r1, _0807F230 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807F22C: .4byte gUnknown_2031F44 -_0807F230: .4byte _0807F234 -_0807F234: @ jump table - .4byte _0807F25C @ case 0 - .4byte _0807F28C @ case 1 - .4byte _0807F2B8 @ case 2 - .4byte _0807F2E4 @ case 3 - .4byte _0807F300 @ case 4 - .4byte _0807F32C @ case 5 - .4byte _0807F348 @ case 6 - .4byte _0807F378 @ case 7 - .4byte _0807F388 @ case 8 - .4byte _0807F3B8 @ case 9 -_0807F25C: - ldr r5, _0807F280 - adds r0, r5, #0 - bl GetDecompressedDataSize - adds r0, #0x64 - bl AllocZeroed - adds r1, r0, #0 - ldr r4, _0807F284 - ldr r0, [r4] - ldr r2, _0807F288 - adds r0, r0, r2 - str r1, [r0] - adds r0, r5, #0 - bl sub_08034370 - ldr r1, [r4] - b _0807F39E - .align 2, 0 -_0807F280: .4byte gUnknown_8D9154C -_0807F284: .4byte gUnknown_2031F44 -_0807F288: .4byte 0x000011B8 -_0807F28C: - ldr r1, _0807F2B0 - movs r2, #0x80 - lsls r2, r2, #3 - movs r0, #2 - movs r3, #0 - bl CopyToBgTilemapBuffer - movs r0, #2 - bl CopyBgTilemapBufferToVram - ldr r0, _0807F2B4 - movs r2, #0x80 - lsls r2, r2, #1 - movs r1, #0 - bl LoadPalette - b _0807F39A - .align 2, 0 -_0807F2B0: .4byte gUnknown_830D374 -_0807F2B4: .4byte gUnknown_830D354 -_0807F2B8: - ldr r0, [r5] - ldr r1, _0807F2DC - adds r0, r0, r1 - ldr r4, [r0] - ldr r0, _0807F2E0 - bl GetDecompressedDataSize - adds r2, r0, #0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - movs r0, #2 - adds r1, r4, #0 - movs r3, #0 - bl LoadBgTiles - ldr r1, [r5] - b _0807F39E - .align 2, 0 -_0807F2DC: .4byte 0x000011B8 -_0807F2E0: .4byte gUnknown_8D9154C -_0807F2E4: - ldr r0, _0807F2F8 - ldr r1, [r5] - ldr r2, _0807F2FC - adds r1, r1, r2 - ldr r1, [r1] - bl sub_08034370 - ldr r1, [r5] - b _0807F39E - .align 2, 0 -_0807F2F8: .4byte gUnknown_8D91D6C -_0807F2FC: .4byte 0x000011B8 -_0807F300: - ldr r0, [r5] - ldr r1, _0807F324 - adds r0, r0, r1 - ldr r4, [r0] - ldr r0, _0807F328 - bl GetDecompressedDataSize - adds r2, r0, #0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - movs r0, #1 - adds r1, r4, #0 - movs r3, #0 - bl LoadBgTiles - ldr r1, [r5] - b _0807F39E - .align 2, 0 -_0807F324: .4byte 0x000011B8 -_0807F328: .4byte gUnknown_8D91D6C -_0807F32C: - ldr r0, _0807F340 - ldr r1, [r5] - ldr r2, _0807F344 - adds r1, r1, r2 - ldr r1, [r1] - bl sub_08034370 - ldr r1, [r5] - b _0807F39E - .align 2, 0 -_0807F340: .4byte gUnknown_8D927A0 -_0807F344: .4byte 0x000011B8 -_0807F348: - ldr r0, [r5] - ldr r1, _0807F370 - adds r0, r0, r1 - ldr r4, [r0] - ldr r0, _0807F374 - bl GetDecompressedDataSize - adds r2, r0, #0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - movs r0, #1 - adds r1, r4, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - movs r0, #1 - bl CopyBgTilemapBufferToVram - ldr r1, [r5] - b _0807F39E - .align 2, 0 -_0807F370: .4byte 0x000011B8 -_0807F374: .4byte gUnknown_8D927A0 -_0807F378: - ldr r0, _0807F384 - movs r1, #0x80 - movs r2, #0x20 - bl LoadPalette - b _0807F39A - .align 2, 0 -_0807F384: .4byte gUnknown_830D774 -_0807F388: - ldr r0, _0807F3A8 - bl LoadSpriteSheet - ldr r0, _0807F3AC - bl LoadSpriteSheet - ldr r0, _0807F3B0 - bl LoadSpriteSheet -_0807F39A: - ldr r0, _0807F3B4 - ldr r1, [r0] -_0807F39E: - ldrb r0, [r1, #1] - adds r0, #1 - strb r0, [r1, #1] - b _0807F400 - .align 2, 0 -_0807F3A8: .4byte gUnknown_830F9B0 -_0807F3AC: .4byte gUnknown_830FAC8 -_0807F3B0: .4byte gUnknown_830FA28 -_0807F3B4: .4byte gUnknown_2031F44 -_0807F3B8: - ldr r0, _0807F3E8 - bl LoadSpriteSheet - ldr r0, _0807F3EC - bl LoadSpriteSheet - ldr r0, _0807F3F0 - bl LoadSpritePalette - ldr r0, _0807F3F4 - bl LoadSpritePalette - ldr r4, _0807F3F8 - ldr r0, [r4] - ldr r2, _0807F3FC - adds r0, r0, r2 - ldr r0, [r0] - bl Free - ldr r1, [r4] - movs r0, #0 - strb r0, [r1, #1] - movs r0, #1 - b _0807F402 - .align 2, 0 -_0807F3E8: .4byte gUnknown_830FB14 -_0807F3EC: .4byte gUnknown_830FB48 -_0807F3F0: .4byte gUnknown_830F9C0 -_0807F3F4: .4byte gUnknown_830F9B8 -_0807F3F8: .4byte gUnknown_2031F44 -_0807F3FC: .4byte 0x000011B8 -_0807F400: - movs r0, #0 -_0807F402: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end LoadBerryBlenderGfx - - thumb_func_start sub_0807F408 -sub_0807F408: @ 0x0807F408 - push {lr} - sub sp, #8 - movs r0, #0x1e - str r0, [sp] - movs r0, #0x14 - str r0, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, #0 - bl CopyBgTilemapBufferToVram - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuRegBits - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - add sp, #8 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0807F408 - - thumb_func_start InitBerryBlenderWindows -InitBerryBlenderWindows: @ 0x0807F46C - push {r4, lr} - sub sp, #8 - ldr r0, _0807F4B4 - bl InitWindows - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0807F4AC - bl sub_08004480 - movs r4, #0 -_0807F482: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl FillWindowPixelBuffer - adds r4, #1 - cmp r4, #4 - ble _0807F482 - movs r0, #0x1e - str r0, [sp] - movs r0, #0x14 - str r0, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, #0xe0 - bl Menu_LoadStdPalAt -_0807F4AC: - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0807F4B4: .4byte gUnknown_830F870 - thumb_func_end InitBerryBlenderWindows - - thumb_func_start sub_0807F4B8 -sub_0807F4B8: @ 0x0807F4B8 - push {r4, lr} - ldr r4, _0807F4F0 - ldr r0, [r4] - cmp r0, #0 - bne _0807F4CA - ldr r0, _0807F4F4 - bl AllocZeroed - str r0, [r4] -_0807F4CA: - ldr r0, [r4] - adds r0, #0x63 - movs r1, #0 - strb r1, [r0] - ldr r0, [r4] - strb r1, [r0] - ldr r0, [r4] - adds r0, #0x63 - strb r1, [r0] - ldr r0, _0807F4F8 - ldrb r0, [r0] - bl sub_0807F88C - ldr r0, _0807F4FC - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0807F4F0: .4byte gUnknown_2031F44 -_0807F4F4: .4byte 0x000011DC -_0807F4F8: .4byte gUnknown_2037280 -_0807F4FC: .4byte sub_0807F500 - thumb_func_end sub_0807F4B8 - - thumb_func_start sub_0807F500 -sub_0807F500: @ 0x0807F500 - push {r4, r5, r6, lr} - sub sp, #4 - ldr r1, _0807F51C - ldr r0, [r1] - ldrb r0, [r0] - adds r6, r1, #0 - cmp r0, #6 - bls _0807F512 - b _0807F71A -_0807F512: - lsls r0, r0, #2 - ldr r1, _0807F520 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807F51C: .4byte gUnknown_2031F44 -_0807F520: .4byte _0807F524 -_0807F524: @ jump table - .4byte _0807F540 @ case 0 - .4byte _0807F5E4 @ case 1 - .4byte _0807F670 @ case 2 - .4byte _0807F686 @ case 3 - .4byte _0807F69C @ case 4 - .4byte _0807F6C8 @ case 5 - .4byte _0807F6E8 @ case 6 -_0807F540: - movs r0, #0 - movs r1, #0 - bl SetGpuReg - bl ResetSpriteData - bl FreeAllSpritePalettes - movs r0, #0 - bl SetVBlankCallback - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _0807F5D8 - movs r0, #1 - movs r2, #3 - bl InitBgsFromTemplates - ldr r4, _0807F5DC - ldr r1, [r4] - movs r0, #0xda - lsls r0, r0, #1 - adds r1, r1, r0 - movs r0, #1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, _0807F5E0 - adds r1, r1, r0 - movs r0, #2 - bl SetBgTilemapBuffer - movs r0, #0 - movs r1, #1 - movs r2, #0xd0 - bl LoadUserWindowBorderGfx - movs r0, #0 - movs r1, #0x14 - movs r2, #0xf0 - bl LoadMessageBoxGfx - bl InitBerryBlenderWindows - ldr r1, [r4] - ldrb r0, [r1] - adds r0, #1 - movs r2, #0 - strb r0, [r1] - ldr r3, [r4] - movs r1, #0x8c - lsls r1, r1, #1 - adds r0, r3, r1 - movs r1, #0 - strh r2, [r0] - movs r4, #0x8b - lsls r4, r4, #1 - adds r0, r3, r4 - strh r2, [r0] - movs r0, #0x8d - lsls r0, r0, #1 - adds r4, r3, r0 - movs r0, #0x50 - strh r0, [r4] - movs r4, #0x8e - lsls r4, r4, #1 - adds r0, r3, r4 - strh r2, [r0] - adds r4, #2 - adds r0, r3, r4 - strh r2, [r0] - strb r1, [r3, #1] - bl sub_08082744 - b _0807F71A - .align 2, 0 -_0807F5D8: .4byte gUnknown_830F864 -_0807F5DC: .4byte gUnknown_2031F44 -_0807F5E0: .4byte 0x000009B4 -_0807F5E4: - bl LoadBerryBlenderGfx - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0807F5F0 - b _0807F71A -_0807F5F0: - movs r4, #0 - ldr r5, _0807F654 - ldr r6, _0807F658 -_0807F5F6: - ldrb r1, [r5] - ldrb r2, [r5, #1] - ldr r0, _0807F65C - movs r3, #1 - bl CreateSprite - ldr r1, [r6] - adds r1, #0x50 - adds r1, r1, r4 - strb r0, [r1] - ldr r0, [r6] - adds r0, #0x50 - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0807F660 - adds r0, r0, r1 - adds r1, r4, #0 - adds r1, #8 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl StartSpriteAnim - adds r5, #2 - adds r4, #1 - cmp r4, #3 - ble _0807F5F6 - ldr r0, _0807F664 - ldrb r0, [r0] - cmp r0, #0 - beq _0807F64C - ldr r0, _0807F668 - ldrb r0, [r0] - cmp r0, #0 - beq _0807F64C - bl LoadWirelessStatusIndicatorSpriteGfx - movs r0, #0 - movs r1, #0 - bl CreateWirelessStatusIndicatorSprite -_0807F64C: - ldr r0, _0807F66C - bl SetVBlankCallback - b _0807F6D8 - .align 2, 0 -_0807F654: .4byte gUnknown_830F8B8 -_0807F658: .4byte gUnknown_2031F44 -_0807F65C: .4byte gUnknown_830F9C8 -_0807F660: .4byte gUnknown_20205AC -_0807F664: .4byte gUnknown_30031C4 -_0807F668: .4byte gUnknown_300319C -_0807F66C: .4byte VBlankCB0_BerryBlender -_0807F670: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - bl sub_08082744 - b _0807F6D8 -_0807F686: - bl sub_0807F408 - ldr r0, _0807F698 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0807F71A - b _0807F6D8 - .align 2, 0 -_0807F698: .4byte gUnknown_2037C74 -_0807F69C: - ldr r4, [r6] - ldr r0, _0807F6C0 - adds r4, r4, r0 - ldr r5, _0807F6C4 - bl GetPlayerTextSpeedDelay - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl Blender_PrintText - cmp r0, #0 - beq _0807F71A - ldr r1, [r6] - b _0807F6DC - .align 2, 0 -_0807F6C0: .4byte 0x000011B4 -_0807F6C4: .4byte gUnknown_830F6AE -_0807F6C8: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade -_0807F6D8: - ldr r0, _0807F6E4 - ldr r1, [r0] -_0807F6DC: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0807F71A - .align 2, 0 -_0807F6E4: .4byte gUnknown_2031F44 -_0807F6E8: - ldr r0, _0807F734 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _0807F71A - bl FreeAllWindowBuffers - movs r0, #2 - bl UnsetBgTilemapBuffer - movs r0, #1 - bl UnsetBgTilemapBuffer - movs r0, #0 - bl SetVBlankCallback - ldr r0, _0807F738 - bl sub_081AA968 - ldr r0, _0807F73C - ldr r0, [r0] - strb r4, [r0] -_0807F71A: - bl AnimateSprites - bl BuildOamBuffer - bl sub_08004630 - bl UpdatePaletteFade - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0807F734: .4byte gUnknown_2037C74 -_0807F738: .4byte sub_0807F9AC -_0807F73C: .4byte gUnknown_2031F44 - thumb_func_end sub_0807F500 - - thumb_func_start sub_0807F740 -sub_0807F740: @ 0x0807F740 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3a] - ldrh r1, [r4, #0x30] - adds r0, r0, r1 - strh r0, [r4, #0x30] - ldrh r1, [r4, #0x32] - ldrh r2, [r4, #0x36] - subs r1, r1, r2 - ldrh r0, [r4, #0x3c] - adds r1, r1, r0 - strh r1, [r4, #0x32] - ldrh r3, [r4, #0x2e] - adds r0, r0, r3 - strh r0, [r4, #0x2e] - subs r2, #1 - strh r2, [r4, #0x36] - lsls r0, r0, #0x10 - lsls r1, r1, #0x10 - cmp r0, r1 - bge _0807F78E - ldrh r0, [r4, #0x34] - subs r0, #1 - strh r0, [r4, #0x36] - strh r0, [r4, #0x34] - ldrh r0, [r4, #0x38] - adds r0, #1 - strh r0, [r4, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - ble _0807F788 - adds r0, r4, #0 - bl DestroySprite - b _0807F78E -_0807F788: - movs r0, #0x74 - bl sub_080A306C -_0807F78E: - ldrh r0, [r4, #0x30] - strh r0, [r4, #0x20] - ldrh r0, [r4, #0x32] - strh r0, [r4, #0x22] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0807F740 - - thumb_func_start sub_0807F79C -sub_0807F79C: @ 0x0807F79C - push {r4, r5, r6, lr} - ldr r5, [sp, #0x10] - ldr r6, [sp, #0x14] - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - movs r4, #0 - strh r2, [r0, #0x2e] - strh r1, [r0, #0x30] - strh r2, [r0, #0x32] - strh r3, [r0, #0x34] - movs r1, #0xa - strh r1, [r0, #0x36] - strh r4, [r0, #0x38] - strh r5, [r0, #0x3a] - strh r6, [r0, #0x3c] - ldr r1, _0807F7C4 - str r1, [r0, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0807F7C4: .4byte sub_0807F740 - thumb_func_end sub_0807F79C - - thumb_func_start sub_0807F7C8 -sub_0807F7C8: @ 0x0807F7C8 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #8 - adds r6, r1, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r0, r0, #0x18 - movs r1, #0xf6 - lsls r1, r1, #0x17 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - movs r3, #1 - ands r3, r6 - movs r1, #0 - movs r2, #0x50 - bl LoadSpinningBerryPicGfx - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r0, #4 - mov r8, r2 - add r8, r0 - mov r3, r8 - lsls r3, r3, #2 - mov r8, r3 - ldr r0, _0807F844 - add r8, r0 - ldr r5, _0807F848 - lsls r4, r6, #2 - adds r4, r4, r6 - lsls r4, r4, #1 - adds r0, r4, r5 - movs r6, #0 - ldrsh r1, [r0, r6] - adds r0, r5, #2 - adds r0, r4, r0 - movs r3, #0 - ldrsh r2, [r0, r3] - adds r0, r5, #4 - adds r0, r4, r0 - movs r6, #0 - ldrsh r3, [r0, r6] - adds r0, r5, #6 - adds r0, r4, r0 - movs r6, #0 - ldrsh r0, [r0, r6] - str r0, [sp] - adds r5, #8 - adds r4, r4, r5 - movs r5, #0 - ldrsh r0, [r4, r5] - str r0, [sp, #4] - mov r0, r8 - bl sub_0807F79C - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0807F844: .4byte gUnknown_20205AC -_0807F848: .4byte gUnknown_830FB68 - thumb_func_end sub_0807F7C8 - - thumb_func_start Blender_CopyBerryData -Blender_CopyBerryData: @ 0x0807F84C - push {r4, r5, r6, lr} - adds r6, r0, #0 - lsls r5, r1, #0x10 - lsrs r5, r5, #0x10 - adds r0, r5, #0 - adds r0, #0x7c - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBerryInfo - adds r4, r0, #0 - strh r5, [r6] - adds r0, r6, #2 - adds r1, r4, #0 - bl StringCopy - ldrb r0, [r4, #0x15] - strb r0, [r6, #9] - ldrb r0, [r4, #0x16] - strb r0, [r6, #0xa] - ldrb r0, [r4, #0x17] - strb r0, [r6, #0xb] - ldrb r0, [r4, #0x18] - strb r0, [r6, #0xc] - ldrb r0, [r4, #0x19] - strb r0, [r6, #0xd] - ldrb r0, [r4, #0x1a] - strb r0, [r6, #0xe] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Blender_CopyBerryData - - thumb_func_start sub_0807F88C -sub_0807F88C: @ 0x0807F88C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #1 - beq _0807F8B4 - cmp r1, #1 - bgt _0807F8A0 - cmp r1, #0 - beq _0807F8AA - b _0807F992 -_0807F8A0: - cmp r1, #2 - beq _0807F90C - cmp r1, #3 - beq _0807F954 - b _0807F992 -_0807F8AA: - ldr r0, _0807F8B0 - strb r1, [r0] - b _0807F992 - .align 2, 0 -_0807F8B0: .4byte gUnknown_3005AF8 -_0807F8B4: - ldr r0, _0807F8E8 - strb r1, [r0] - ldr r0, _0807F8EC - ldr r0, [r0] - adds r0, #0x7c - movs r1, #2 - strb r1, [r0] - ldr r4, _0807F8F0 - ldr r0, _0807F8F4 - ldr r1, [r0] - adds r0, r4, #0 - bl StringCopy - movs r0, #0xd0 - lsls r0, r0, #2 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0807F8FC - adds r0, r4, #0 - adds r0, #0x1c - ldr r1, _0807F8F8 - bl StringCopy - b _0807F992 - .align 2, 0 -_0807F8E8: .4byte gUnknown_3005AF8 -_0807F8EC: .4byte gUnknown_2031F44 -_0807F8F0: .4byte gUnknown_20226A8 -_0807F8F4: .4byte gUnknown_3005AF0 -_0807F8F8: .4byte gUnknown_830F760 -_0807F8FC: - adds r0, r4, #0 - adds r0, #0x1c - ldr r1, _0807F908 - bl StringCopy - b _0807F992 - .align 2, 0 -_0807F908: .4byte gUnknown_830F74E -_0807F90C: - ldr r0, _0807F940 - strb r1, [r0] - ldr r0, _0807F944 - ldr r0, [r0] - adds r0, #0x7c - movs r1, #3 - strb r1, [r0] - ldr r5, _0807F948 - ldr r0, _0807F94C - ldr r1, [r0] - adds r0, r5, #0 - bl StringCopy - adds r0, r5, #0 - adds r0, #0x1c - ldr r4, _0807F950 - adds r1, r4, #0 - bl StringCopy - adds r5, #0x38 - subs r4, #0xc - adds r0, r5, #0 - adds r1, r4, #0 - bl StringCopy - b _0807F992 - .align 2, 0 -_0807F940: .4byte gUnknown_3005AF8 -_0807F944: .4byte gUnknown_2031F44 -_0807F948: .4byte gUnknown_20226A8 -_0807F94C: .4byte gUnknown_3005AF0 -_0807F950: .4byte gUnknown_830F766 -_0807F954: - ldr r0, _0807F998 - strb r1, [r0] - ldr r0, _0807F99C - ldr r0, [r0] - adds r0, #0x7c - movs r1, #4 - strb r1, [r0] - ldr r5, _0807F9A0 - ldr r0, _0807F9A4 - ldr r1, [r0] - adds r0, r5, #0 - bl StringCopy - adds r0, r5, #0 - adds r0, #0x1c - ldr r4, _0807F9A8 - adds r1, r4, #0 - bl StringCopy - adds r0, r5, #0 - adds r0, #0x38 - adds r1, r4, #0 - subs r1, #0x18 - bl StringCopy - adds r5, #0x54 - subs r4, #0x12 - adds r0, r5, #0 - adds r1, r4, #0 - bl StringCopy -_0807F992: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0807F998: .4byte gUnknown_3005AF8 -_0807F99C: .4byte gUnknown_2031F44 -_0807F9A0: .4byte gUnknown_20226A8 -_0807F9A4: .4byte gUnknown_3005AF0 -_0807F9A8: .4byte gUnknown_830F76C - thumb_func_end sub_0807F88C - - thumb_func_start sub_0807F9AC -sub_0807F9AC: @ 0x0807F9AC - push {r4, r5, lr} - movs r0, #0 - movs r1, #0 - bl SetGpuReg - ldr r4, _0807FA00 - ldr r0, [r4] - cmp r0, #0 - bne _0807F9C6 - ldr r0, _0807FA04 - bl AllocZeroed - str r0, [r4] -_0807F9C6: - ldr r0, [r4] - movs r1, #0 - strb r1, [r0] - ldr r0, [r4] - movs r2, #0x86 - lsls r2, r2, #1 - adds r0, r0, r2 - str r1, [r0] - movs r2, #0 - ldr r5, _0807FA08 - movs r3, #0 -_0807F9DC: - ldr r0, [r4] - lsls r1, r2, #1 - adds r0, #0x74 - adds r0, r0, r1 - strh r3, [r0] - adds r2, #1 - cmp r2, #3 - ble _0807F9DC - ldrb r0, [r5] - bl sub_0807F88C - ldrh r0, [r5] - cmp r0, #0 - bne _0807FA10 - ldr r0, _0807FA0C - bl SetMainCallback2 - b _0807FA16 - .align 2, 0 -_0807FA00: .4byte gUnknown_2031F44 -_0807FA04: .4byte 0x000011DC -_0807FA08: .4byte gUnknown_2037280 -_0807FA0C: .4byte sub_0807FA20 -_0807FA10: - ldr r0, _0807FA1C - bl SetMainCallback2 -_0807FA16: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0807FA1C: .4byte sub_080802F0 - thumb_func_end sub_0807F9AC - - thumb_func_start sub_0807FA20 -sub_0807FA20: @ 0x0807FA20 - push {r4, r5, r6, r7, lr} - sub sp, #4 - ldr r1, _0807FA3C - ldr r0, [r1] - ldrb r0, [r0] - adds r2, r1, #0 - cmp r0, #0x15 - bls _0807FA32 - b _0807FF4E -_0807FA32: - lsls r0, r0, #2 - ldr r1, _0807FA40 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807FA3C: .4byte gUnknown_2031F44 -_0807FA40: .4byte _0807FA44 -_0807FA44: @ jump table - .4byte _0807FA9C @ case 0 - .4byte _0807FB08 @ case 1 - .4byte _0807FB28 @ case 2 - .4byte _0807FBA4 @ case 3 - .4byte _0807FBB6 @ case 4 - .4byte _0807FBD0 @ case 5 - .4byte _0807FF4E @ case 6 - .4byte _0807FF4E @ case 7 - .4byte _0807FC00 @ case 8 - .4byte _0807FC50 @ case 9 - .4byte _0807FC74 @ case 10 - .4byte _0807FD0A @ case 11 - .4byte _0807FD64 @ case 12 - .4byte _0807FDDC @ case 13 - .4byte _0807FE10 @ case 14 - .4byte _0807FEA4 @ case 15 - .4byte _0807FED8 @ case 16 - .4byte _0807FF4E @ case 17 - .4byte _0807FF00 @ case 18 - .4byte _0807FEEC @ case 19 - .4byte _0807FEF2 @ case 20 - .4byte _0807FF10 @ case 21 -_0807FA9C: - bl sub_0807FF90 - ldr r1, _0807FAFC - ldr r2, _0807FB00 - adds r0, r2, #0 - strh r0, [r1] - ldr r2, _0807FB04 - ldr r0, [r2] - adds r0, #0x72 - movs r1, #0 - strb r1, [r0] - movs r5, #0 - movs r6, #0 - movs r7, #0x92 - lsls r7, r7, #1 -_0807FABA: - ldr r0, [r2] - lsls r1, r5, #1 - adds r0, #0x64 - adds r0, r0, r1 - strh r6, [r0] - adds r4, r5, #1 - adds r1, r1, r5 - lsls r1, r1, #1 - movs r3, #2 -_0807FACC: - ldr r0, [r2] - adds r0, r0, r7 - adds r0, r0, r1 - strh r6, [r0] - adds r1, #2 - subs r3, #1 - cmp r3, #0 - bge _0807FACC - adds r5, r4, #0 - cmp r5, #3 - ble _0807FABA - ldr r3, _0807FB04 - ldr r4, [r3] - adds r1, r4, #0 - adds r1, #0x70 - movs r2, #0 - movs r0, #0 - strh r0, [r1] - subs r1, #0x22 - strh r0, [r1] - strb r2, [r4, #1] - ldr r1, [r3] - b _0807FF04 - .align 2, 0 -_0807FAFC: .4byte gUnknown_202267E -_0807FB00: .4byte 0x00004422 -_0807FB04: .4byte gUnknown_2031F44 -_0807FB08: - bl LoadBerryBlenderGfx - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0807FB14 - b _0807FF4E -_0807FB14: - ldr r0, _0807FB24 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - bl sub_08082744 - b _0807FF4E - .align 2, 0 -_0807FB24: .4byte gUnknown_2031F44 -_0807FB28: - movs r5, #0 - ldr r4, _0807FB8C - ldr r6, _0807FB90 -_0807FB2E: - ldrb r1, [r4] - ldrb r2, [r4, #1] - ldr r0, _0807FB94 - movs r3, #1 - bl CreateSprite - ldr r1, [r6] - adds r1, #0x54 - adds r1, r1, r5 - strb r0, [r1] - ldr r0, [r6] - adds r0, #0x54 - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0807FB98 - adds r0, r0, r1 - adds r1, r5, #0 - adds r1, #8 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl StartSpriteAnim - adds r4, #2 - adds r5, #1 - cmp r5, #3 - ble _0807FB2E - ldr r0, _0807FB9C - ldrb r0, [r0] - cmp r0, #0 - bne _0807FB72 - b _0807FF00 -_0807FB72: - ldr r0, _0807FBA0 - ldrb r0, [r0] - cmp r0, #0 - bne _0807FB7C - b _0807FF00 -_0807FB7C: - bl LoadWirelessStatusIndicatorSpriteGfx - movs r0, #0 - movs r1, #0 - bl CreateWirelessStatusIndicatorSprite - b _0807FF00 - .align 2, 0 -_0807FB8C: .4byte gUnknown_830F8B8 -_0807FB90: .4byte gUnknown_2031F44 -_0807FB94: .4byte gUnknown_830F9C8 -_0807FB98: .4byte gUnknown_20205AC -_0807FB9C: .4byte gUnknown_30031C4 -_0807FBA0: .4byte gUnknown_300319C -_0807FBA4: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - b _0807FF00 -_0807FBB6: - bl sub_0807F408 - ldr r0, _0807FBCC - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807FBC8 - b _0807FF4E -_0807FBC8: - b _0807FF00 - .align 2, 0 -_0807FBCC: .4byte gUnknown_2037C74 -_0807FBD0: - ldr r4, _0807FBF4 - ldr r0, [r4] - ldr r3, _0807FBF8 - adds r0, r0, r3 - ldr r1, _0807FBFC - movs r2, #0 - bl Blender_PrintText - ldr r1, [r4] - movs r2, #0 - movs r0, #8 - strb r0, [r1] - ldr r0, [r4] - movs r1, #0x84 - lsls r1, r1, #1 - adds r0, r0, r1 - str r2, [r0] - b _0807FF4E - .align 2, 0 -_0807FBF4: .4byte gUnknown_2031F44 -_0807FBF8: .4byte 0x000011B4 -_0807FBFC: .4byte gUnknown_830F78E -_0807FC00: - ldr r4, _0807FC44 - ldr r1, [r4] - ldrb r0, [r1] - adds r0, #1 - movs r6, #0 - strb r0, [r1] - ldr r0, [r4] - movs r2, #0x8a - lsls r2, r2, #1 - adds r0, r0, r2 - strb r6, [r0] - ldr r0, [r4] - movs r5, #0xac - lsls r5, r5, #1 - adds r0, r0, r5 - ldr r1, _0807FC48 - ldrh r1, [r1] - bl Blender_CopyBerryData - ldr r0, _0807FC4C - ldr r1, [r4] - adds r1, r1, r5 - movs r2, #0x10 - bl memcpy - bl sub_0800A8D4 - ldr r0, [r4] - movs r3, #0x84 - lsls r3, r3, #1 - adds r0, r0, r3 - str r6, [r0] - b _0807FF4E - .align 2, 0 -_0807FC44: .4byte gUnknown_2031F44 -_0807FC48: .4byte gUnknown_203CB48 -_0807FC4C: .4byte gUnknown_202257C -_0807FC50: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0807FC5C - b _0807FF4E -_0807FC5C: - bl ResetBlockReceivedFlags - bl GetMultiplayerId - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0807FC6C - b _0807FF00 -_0807FC6C: - movs r0, #4 - bl sub_0800A09C - b _0807FF00 -_0807FC74: - ldr r6, _0807FCB0 - ldr r1, [r6] - movs r0, #0x84 - lsls r0, r0, #1 - adds r1, r1, r0 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - cmp r0, #0x14 - bgt _0807FC8A - b _0807FF4E -_0807FC8A: - movs r0, #4 - movs r1, #1 - bl sub_08197EBC - bl GetBlockReceivedStatus - adds r4, r0, #0 - bl sub_0800A59C - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - beq _0807FCA6 - b _0807FF4E -_0807FCA6: - movs r5, #0 - adds r7, r6, #0 - movs r6, #0xac - lsls r6, r6, #1 - b _0807FCDC - .align 2, 0 -_0807FCB0: .4byte gUnknown_2031F44 -_0807FCB4: - ldr r0, [r7] - lsls r4, r5, #4 - adds r0, r4, r0 - adds r0, r0, r6 - lsls r1, r5, #8 - ldr r2, _0807FCF0 - adds r1, r1, r2 - movs r2, #0x10 - bl memcpy - ldr r0, [r7] - lsls r2, r5, #1 - adds r1, r0, #0 - adds r1, #0x74 - adds r1, r1, r2 - adds r0, r0, r4 - adds r0, r0, r6 - ldrh r0, [r0] - strh r0, [r1] - adds r5, #1 -_0807FCDC: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r5, r0 - blt _0807FCB4 - bl ResetBlockReceivedFlags - b _0807FF00 - .align 2, 0 -_0807FCF0: .4byte gUnknown_202207C -_0807FCF4: - ldrb r1, [r4] - lsls r1, r1, #1 - adds r0, r2, #0 - adds r0, #0x74 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - bl sub_0807F7C8 - b _0807FD3E -_0807FD0A: - bl GetLinkPlayerCount - ldr r2, _0807FD5C - ldr r1, [r2] - adds r1, #0x7c - strb r0, [r1] - movs r5, #0 - ldr r2, [r2] - movs r1, #0x8a - lsls r1, r1, #1 - adds r4, r2, r1 - ldr r1, _0807FD60 - adds r0, r2, #0 - adds r0, #0x7c - ldrb r0, [r0] - subs r0, #2 - lsls r0, r0, #2 - ldrb r3, [r4] - adds r0, r0, r1 -_0807FD30: - ldrb r1, [r0] - cmp r3, r1 - beq _0807FCF4 - adds r0, #1 - adds r5, #1 - cmp r5, #3 - ble _0807FD30 -_0807FD3E: - ldr r3, _0807FD5C - ldr r1, [r3] - movs r0, #0x84 - lsls r0, r0, #1 - adds r2, r1, r0 - movs r0, #0 - str r0, [r2] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r1, [r3] - movs r2, #0x8a - lsls r2, r2, #1 - adds r1, r1, r2 - b _0807FF04 - .align 2, 0 -_0807FD5C: .4byte gUnknown_2031F44 -_0807FD60: .4byte gUnknown_830F8C0 -_0807FD64: - ldr r3, [r2] - movs r0, #0x84 - lsls r0, r0, #1 - adds r1, r3, r0 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - cmp r0, #0x3c - bgt _0807FD78 - b _0807FF4E -_0807FD78: - movs r1, #0x8a - lsls r1, r1, #1 - adds r0, r3, r1 - adds r1, r3, #0 - adds r1, #0x7c - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - blo _0807FDC0 - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - ldr r2, [r2] - ldr r3, _0807FDB4 - ldr r1, _0807FDB8 - adds r0, r2, #0 - adds r0, #0x7c - ldrb r0, [r0] - subs r0, #2 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r3 - ldr r3, _0807FDBC - adds r1, r3, #0 - ldrh r0, [r0] - adds r1, r1, r0 - adds r2, #0x4a - strh r1, [r2] - b _0807FDC6 - .align 2, 0 -_0807FDB4: .4byte gUnknown_830F8CC -_0807FDB8: .4byte gUnknown_830F8D4 -_0807FDBC: .4byte 0xFFFFA800 -_0807FDC0: - ldrb r0, [r3] - subs r0, #1 - strb r0, [r3] -_0807FDC6: - ldr r0, _0807FDD8 - ldr r0, [r0] - movs r1, #0x84 - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #0 - str r1, [r0] - b _0807FF4E - .align 2, 0 -_0807FDD8: .4byte gUnknown_2031F44 -_0807FDDC: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0807FDE8 - b _0807FF4E -_0807FDE8: - ldr r2, _0807FE0C - ldr r1, [r2] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r0, [r2] - movs r2, #0xa0 - lsls r2, r2, #1 - adds r0, r0, r2 - bl sub_080826D0 - movs r0, #0x2b - bl sub_080A306C - movs r0, #2 - bl ShowBg - b _0807FF4E - .align 2, 0 -_0807FE0C: .4byte gUnknown_2031F44 -_0807FE10: - movs r1, #0x80 - lsls r1, r1, #3 - movs r0, #0 - bl SetGpuRegBits - ldr r4, _0807FE98 - ldr r2, [r4] - adds r1, r2, #0 - adds r1, #0x4a - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - movs r0, #0x8d - lsls r0, r0, #1 - adds r1, r2, r0 - ldrh r0, [r1] - adds r0, #4 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xff - bls _0807FE94 - movs r0, #0xc - movs r1, #2 - bl SetGpuRegBits - ldr r1, [r4] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r3, [r4] - movs r2, #0x8d - lsls r2, r2, #1 - adds r1, r3, r2 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r1] - ldr r2, _0807FE9C - ldr r1, _0807FEA0 - adds r0, r3, #0 - adds r0, #0x7c - ldrb r0, [r0] - subs r0, #2 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - adds r1, r3, #0 - adds r1, #0x4a - strh r0, [r1] - movs r0, #0x84 - lsls r0, r0, #1 - adds r1, r3, r0 - movs r0, #0 - str r0, [r1] - movs r0, #0x34 - bl sub_080A306C - bl sub_08080154 - bl sub_080801C4 -_0807FE94: - ldr r0, [r4] - b _0807FEC6 - .align 2, 0 -_0807FE98: .4byte gUnknown_2031F44 -_0807FE9C: .4byte gUnknown_830F8CC -_0807FEA0: .4byte gUnknown_830F8D4 -_0807FEA4: - bl sub_08082D9C - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0807FEC2 - ldr r0, _0807FED4 - ldr r1, [r0] - movs r3, #0x84 - lsls r3, r3, #1 - adds r2, r1, r3 - movs r0, #0 - str r0, [r2] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_0807FEC2: - ldr r0, _0807FED4 - ldr r0, [r0] -_0807FEC6: - movs r1, #0xa0 - lsls r1, r1, #1 - adds r0, r0, r1 - bl sub_080826D0 - b _0807FF4E - .align 2, 0 -_0807FED4: .4byte gUnknown_2031F44 -_0807FED8: - ldr r0, _0807FEE8 - movs r2, #0x10 - rsbs r2, r2, #0 - movs r1, #0x78 - movs r3, #3 - bl CreateSprite - b _0807FF00 - .align 2, 0 -_0807FEE8: .4byte gUnknown_830FB1C -_0807FEEC: - bl sub_0800A8D4 - b _0807FF00 -_0807FEF2: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0807FF4E - bl sub_08009FDC -_0807FF00: - ldr r0, _0807FF0C - ldr r1, [r0] -_0807FF04: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0807FF4E - .align 2, 0 -_0807FF0C: .4byte gUnknown_2031F44 -_0807FF10: - ldr r5, _0807FF84 - ldr r3, [r5] - adds r1, r3, #0 - adds r1, #0x4c - movs r2, #0 - movs r0, #0x80 - strh r0, [r1] - movs r1, #0x82 - lsls r1, r1, #1 - adds r0, r3, r1 - str r2, [r0] - ldr r0, _0807FF88 - bl SetMainCallback2 - bl sub_080A27CC - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _0807FF8C - cmp r0, r4 - beq _0807FF48 - bl sub_080A27CC - ldr r1, [r5] - movs r2, #0xaa - lsls r2, r2, #1 - adds r1, r1, r2 - strh r0, [r1] -_0807FF48: - adds r0, r4, #0 - bl PlayBGM -_0807FF4E: - ldr r0, _0807FF84 - ldr r1, [r0] - movs r3, #0x8e - lsls r3, r3, #1 - adds r0, r1, r3 - movs r2, #0 - ldrsh r0, [r0, r2] - adds r3, #2 - adds r1, r1, r3 - movs r2, #0 - ldrsh r1, [r1, r2] - bl sub_0808137C - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl sub_08004630 - bl UpdatePaletteFade - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0807FF84: .4byte gUnknown_2031F44 -_0807FF88: .4byte sub_080812B4 -_0807FF8C: .4byte 0x00000193 - thumb_func_end sub_0807FA20 - - thumb_func_start sub_0807FF90 -sub_0807FF90: @ 0x0807FF90 - push {r4, lr} - movs r0, #0 - movs r1, #0 - bl SetGpuReg - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetTasks - ldr r0, _0808001C - bl SetVBlankCallback - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _08080020 - movs r0, #1 - movs r2, #3 - bl InitBgsFromTemplates - ldr r4, _08080024 - ldr r1, [r4] - movs r0, #0xda - lsls r0, r0, #1 - adds r1, r1, r0 - movs r0, #1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r3, _08080028 - adds r1, r1, r3 - movs r0, #2 - bl SetBgTilemapBuffer - movs r0, #0 - movs r1, #1 - movs r2, #0xd0 - bl LoadUserWindowBorderGfx - movs r0, #0 - movs r1, #0x14 - movs r2, #0xf0 - bl LoadMessageBoxGfx - bl InitBerryBlenderWindows - ldr r2, [r4] - adds r0, r2, #0 - adds r0, #0x44 - movs r1, #0 - strh r1, [r0] - adds r0, #8 - strh r1, [r0] - subs r0, #2 - strh r1, [r0] - adds r0, #4 - strh r1, [r0] - movs r3, #0x8e - lsls r3, r3, #1 - adds r0, r2, r3 - strh r1, [r0] - adds r3, #2 - adds r0, r2, r3 - strh r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808001C: .4byte VBlankCB0_BerryBlender -_08080020: .4byte gUnknown_830F864 -_08080024: .4byte gUnknown_2031F44 -_08080028: .4byte 0x000009B4 - thumb_func_end sub_0807FF90 - - thumb_func_start sub_0808002C -sub_0808002C: @ 0x0808002C - push {lr} - lsls r0, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r0, r0, #0x18 - adds r2, r0, #0 - adds r2, #0x18 - ldr r0, _08080068 - ldr r0, [r0] - lsrs r1, r1, #0x17 - adds r0, #0x96 - adds r0, r0, r1 - ldrb r0, [r0] - ldr r1, _0808006C - adds r0, r0, r1 - ldrb r1, [r0] - cmp r2, r1 - blo _08080074 - adds r0, r1, #0 - adds r0, #0x30 - cmp r2, r0 - bhs _08080074 - subs r0, #0x1c - cmp r2, r0 - blo _08080070 - adds r0, #8 - cmp r2, r0 - bhs _08080070 - movs r0, #2 - b _08080076 - .align 2, 0 -_08080068: .4byte gUnknown_2031F44 -_0808006C: .4byte gUnknown_830F8D7 -_08080070: - movs r0, #1 - b _08080076 -_08080074: - movs r0, #0 -_08080076: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0808002C - - thumb_func_start Blender_SetOpponentsBerryData -Blender_SetOpponentsBerryData: @ 0x0808007C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r6, #0 - cmp r5, #0xaf - bne _080800B4 - movs r4, #0 - subs r7, r1, #1 - adds r2, #9 -_08080098: - adds r0, r2, r6 - adds r1, r2, r4 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080800A6 - adds r6, r4, #0 -_080800A6: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #4 - bls _08080098 - adds r0, r6, #5 - b _080800CC -_080800B4: - adds r0, r5, #0 - subs r0, #0x85 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - subs r7, r1, #1 - cmp r6, #4 - bls _080800D0 - adds r0, r6, #0 - movs r1, #5 - bl __umodsi3 - adds r0, #5 -_080800CC: - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_080800D0: - movs r4, #0 - cmp r4, r7 - bge _0808013C - ldr r0, _08080148 - mov sb, r0 - adds r0, r5, #0 - subs r0, #0xa3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 -_080800E4: - lsls r0, r6, #1 - adds r0, r0, r6 - adds r0, r4, r0 - add r0, sb - ldrb r5, [r0] - movs r0, #0xd0 - lsls r0, r0, #2 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08080122 - ldr r0, _0808014C - ldrh r0, [r0] - cmp r0, #1 - bne _08080122 - adds r0, r6, #0 - movs r1, #5 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r0, _08080150 - adds r0, r6, r0 - ldrb r5, [r0] - mov r0, r8 - cmp r0, #4 - bhi _08080122 - subs r0, r5, #5 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_08080122: - adds r4, #1 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - adds r1, r5, #0 - adds r1, #0x85 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl Blender_SetParticipantBerryData - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - cmp r4, r7 - blt _080800E4 -_0808013C: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08080148: .4byte gUnknown_830FB90 -_0808014C: .4byte gUnknown_2037280 -_08080150: .4byte gUnknown_830FBAE - thumb_func_end Blender_SetOpponentsBerryData - - thumb_func_start sub_08080154 -sub_08080154: @ 0x08080154 - push {r4, r5, r6, r7, lr} - movs r4, #0 - ldr r7, _080801BC - movs r6, #0xff - ldr r5, _080801C0 -_0808015E: - ldr r3, [r7] - lsls r2, r4, #1 - adds r0, r3, #0 - adds r0, #0x96 - adds r0, r0, r2 - strh r6, [r0] - adds r1, r3, #0 - adds r1, #0x8e - adds r1, r1, r2 - adds r0, r3, #0 - adds r0, #0x7c - ldrb r0, [r0] - subs r0, #2 - lsls r0, r0, #2 - adds r0, r4, r0 - adds r0, r0, r5 - ldrb r0, [r0] - strh r0, [r1] - adds r4, #1 - cmp r4, #3 - ble _0808015E - movs r3, #0 - ldr r7, _080801BC -_0808018C: - movs r4, #0 - adds r6, r3, #1 - lsls r5, r3, #1 -_08080192: - ldr r2, [r7] - lsls r0, r4, #1 - adds r1, r2, #0 - adds r1, #0x8e - adds r1, r1, r0 - ldrh r0, [r1] - cmp r0, r3 - bne _080801AA - adds r0, r2, #0 - adds r0, #0x96 - adds r0, r0, r5 - strh r4, [r0] -_080801AA: - adds r4, #1 - cmp r4, #3 - ble _08080192 - adds r3, r6, #0 - cmp r3, #3 - ble _0808018C - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080801BC: .4byte gUnknown_2031F44 -_080801C0: .4byte gUnknown_830F8C0 - thumb_func_end sub_08080154 - - thumb_func_start sub_080801C4 -sub_080801C4: @ 0x080801C4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - movs r0, #0 - str r0, [sp, #0x1c] - ldr r0, _0808029C - ldrb r0, [r0] - cmp r0, #0 - beq _080801E6 - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x1c] -_080801E6: - movs r7, #0 - ldr r6, _080802A0 - ldr r1, _080802A4 - mov sl, r1 - movs r2, #0 - mov r8, r2 -_080801F2: - ldr r2, [r6] - lsls r4, r7, #1 - adds r0, r2, #0 - adds r0, #0x8e - adds r3, r0, r4 - ldrh r0, [r3] - cmp r0, #0xff - beq _080802D2 - adds r1, r2, #0 - adds r1, #0x50 - ldrh r3, [r3] - adds r1, r1, r3 - adds r0, r2, #0 - adds r0, #0x54 - adds r0, r0, r7 - ldrb r0, [r0] - movs r2, #0 - mov sb, r2 - strb r0, [r1] - ldr r0, [r6] - adds r1, r0, #0 - adds r1, #0x8e - adds r1, r1, r4 - adds r0, #0x50 - ldrh r1, [r1] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080802A8 - adds r0, r0, r1 - mov r1, r8 - lsrs r5, r1, #0x18 - adds r1, r5, #0 - bl StartSpriteAnim - add r1, sp, #8 - movs r0, #0xff - strb r0, [r1] - ldr r0, [r6] - adds r0, #0x8e - adds r0, r0, r4 - ldrh r0, [r0] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - add r1, sl - add r0, sp, #8 - bl StringCopy - ldr r0, [r6] - adds r0, #0x8e - adds r0, r0, r4 - ldrh r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - add r0, sl - bl StringLength - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #7 - subs r1, r1, r0 - ldr r0, [r6] - adds r0, #0x8e - adds r0, r0, r4 - mov r4, r8 - ldr r2, [sp, #0x1c] - ldrh r0, [r0] - cmp r2, r0 - bne _080802AC - lsls r2, r1, #0x1a - lsrs r2, r2, #0x18 - mov r0, sb - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - adds r0, r5, #0 - add r1, sp, #8 - movs r3, #1 - bl Blender_AddTextPrinter - b _080802C2 - .align 2, 0 -_0808029C: .4byte gUnknown_30031C4 -_080802A0: .4byte gUnknown_2031F44 -_080802A4: .4byte gUnknown_20226A8 -_080802A8: .4byte gUnknown_20205AC -_080802AC: - lsls r2, r1, #0x1a - lsrs r2, r2, #0x18 - mov r1, sb - str r1, [sp] - movs r0, #1 - str r0, [sp, #4] - adds r0, r5, #0 - add r1, sp, #8 - movs r3, #1 - bl Blender_AddTextPrinter -_080802C2: - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl PutWindowTilemap - adds r0, r4, #0 - movs r1, #3 - bl CopyWindowToVram -_080802D2: - movs r2, #0x80 - lsls r2, r2, #0x11 - add r8, r2 - adds r7, #1 - cmp r7, #3 - ble _080801F2 - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080801C4 - - thumb_func_start sub_080802F0 -sub_080802F0: @ 0x080802F0 - push {r4, r5, r6, r7, lr} - sub sp, #4 - ldr r1, _0808030C - ldr r0, [r1] - ldrb r0, [r0] - adds r2, r1, #0 - cmp r0, #0x15 - bls _08080302 - b _080807CA -_08080302: - lsls r0, r0, #2 - ldr r1, _08080310 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808030C: .4byte gUnknown_2031F44 -_08080310: .4byte _08080314 -_08080314: @ jump table - .4byte _0808036C @ case 0 - .4byte _08080400 @ case 1 - .4byte _08080420 @ case 2 - .4byte _08080474 @ case 3 - .4byte _080804A0 @ case 4 - .4byte _080807CA @ case 5 - .4byte _080807CA @ case 6 - .4byte _080807CA @ case 7 - .4byte _080804D8 @ case 8 - .4byte _080807CA @ case 9 - .4byte _080807CA @ case 10 - .4byte _08080508 @ case 11 - .4byte _08080558 @ case 12 - .4byte _080805CC @ case 13 - .4byte _080805F8 @ case 14 - .4byte _08080694 @ case 15 - .4byte _080806BC @ case 16 - .4byte _080807CA @ case 17 - .4byte _080806CA @ case 18 - .4byte _080806CA @ case 19 - .4byte _080806CA @ case 20 - .4byte _080806E0 @ case 21 -_0808036C: - bl sub_0800AF94 - bl sub_0807FF90 - ldr r4, _080803F0 - ldrh r1, [r4] - movs r0, #0 - bl Blender_SetParticipantBerryData - ldr r5, _080803F4 - ldr r0, [r5] - movs r6, #0xac - lsls r6, r6, #1 - adds r0, r0, r6 - ldrh r1, [r4] - bl Blender_CopyBerryData - ldrh r0, [r4] - ldr r2, [r5] - adds r1, r2, #0 - adds r1, #0x7c - ldrb r1, [r1] - adds r2, r2, r6 - bl Blender_SetOpponentsBerryData - movs r4, #0 - movs r6, #0 - ldr r0, _080803F8 - mov ip, r0 - movs r7, #0x92 - lsls r7, r7, #1 -_080803AA: - ldr r0, [r5] - lsls r1, r4, #1 - adds r0, #0x64 - adds r0, r0, r1 - strh r6, [r0] - adds r3, r4, #1 - adds r1, r1, r4 - lsls r1, r1, #1 - movs r2, #2 -_080803BC: - ldr r0, [r5] - adds r0, r0, r7 - adds r0, r0, r1 - strh r6, [r0] - adds r1, #2 - subs r2, #1 - cmp r2, #0 - bge _080803BC - adds r4, r3, #0 - cmp r4, #3 - ble _080803AA - ldr r4, _080803F4 - ldr r3, [r4] - adds r1, r3, #0 - adds r1, #0x70 - movs r2, #0 - movs r0, #0 - strh r0, [r1] - strb r2, [r3, #1] - ldr r1, _080803FC - adds r0, r1, #0 - mov r2, ip - strh r0, [r2] - ldr r1, [r4] - b _080806CE - .align 2, 0 -_080803F0: .4byte gUnknown_203CB48 -_080803F4: .4byte gUnknown_2031F44 -_080803F8: .4byte gUnknown_202267E -_080803FC: .4byte 0x00004422 -_08080400: - bl LoadBerryBlenderGfx - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808040C - b _080807CA -_0808040C: - ldr r0, _0808041C - ldr r1, [r0] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - bl sub_08082744 - b _080807CA - .align 2, 0 -_0808041C: .4byte gUnknown_2031F44 -_08080420: - movs r4, #0 - ldr r5, _08080464 - ldr r6, _08080468 -_08080426: - ldrb r1, [r5] - ldrb r2, [r5, #1] - ldr r0, _0808046C - movs r3, #1 - bl CreateSprite - ldr r1, [r6] - adds r1, #0x54 - adds r1, r1, r4 - strb r0, [r1] - ldr r0, [r6] - adds r0, #0x54 - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08080470 - adds r0, r0, r1 - adds r1, r4, #0 - adds r1, #8 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl StartSpriteAnim - adds r5, #2 - adds r4, #1 - cmp r4, #3 - ble _08080426 - b _080806CA - .align 2, 0 -_08080464: .4byte gUnknown_830F8B8 -_08080468: .4byte gUnknown_2031F44 -_0808046C: .4byte gUnknown_830F9C8 -_08080470: .4byte gUnknown_20205AC -_08080474: - movs r0, #1 - rsbs r0, r0, #0 - movs r4, #0 - str r4, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r2, _0808049C - ldr r1, [r2] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r0, [r2] - movs r3, #0x84 - lsls r3, r3, #1 - adds r0, r0, r3 - str r4, [r0] - b _080807CA - .align 2, 0 -_0808049C: .4byte gUnknown_2031F44 -_080804A0: - ldr r4, _080804D0 - ldr r1, [r4] - movs r5, #0x84 - lsls r5, r5, #1 - adds r1, r1, r5 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - cmp r0, #2 - bne _080804B8 - bl sub_0807F408 -_080804B8: - ldr r0, _080804D4 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080804C6 - b _080807CA -_080804C6: - ldr r1, [r4] - movs r0, #8 - strb r0, [r1] - b _080807CA - .align 2, 0 -_080804D0: .4byte gUnknown_2031F44 -_080804D4: .4byte gUnknown_2037C74 -_080804D8: - ldr r2, _080804F0 - ldr r1, [r2] - movs r3, #0 - movs r0, #0xb - strb r0, [r1] - ldr r0, [r2] - movs r1, #0x8a - lsls r1, r1, #1 - adds r0, r0, r1 - strb r3, [r0] - b _080807CA - .align 2, 0 -_080804F0: .4byte gUnknown_2031F44 -_080804F4: - lsls r1, r1, #1 - adds r0, r3, #0 - adds r0, #0x74 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r1, r4, #0x18 - lsrs r1, r1, #0x18 - bl sub_0807F7C8 - b _08080532 -_08080508: - movs r4, #0 - ldr r2, _08080550 - ldr r0, _08080554 - ldr r3, [r0] - adds r0, r3, #0 - adds r0, #0x7c - ldrb r0, [r0] - subs r0, #2 - lsls r0, r0, #2 - movs r5, #0x8a - lsls r5, r5, #1 - adds r1, r3, r5 - ldrb r1, [r1] - adds r0, r0, r2 -_08080524: - ldrb r2, [r0] - cmp r1, r2 - beq _080804F4 - adds r0, #1 - adds r4, #1 - cmp r4, #3 - ble _08080524 -_08080532: - ldr r3, _08080554 - ldr r1, [r3] - movs r5, #0x84 - lsls r5, r5, #1 - adds r2, r1, r5 - movs r0, #0 - str r0, [r2] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r1, [r3] - movs r0, #0x8a - lsls r0, r0, #1 - adds r1, r1, r0 - b _080806CE - .align 2, 0 -_08080550: .4byte gUnknown_830F8C0 -_08080554: .4byte gUnknown_2031F44 -_08080558: - ldr r3, [r2] - movs r2, #0x84 - lsls r2, r2, #1 - adds r1, r3, r2 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - cmp r0, #0x3c - bgt _0808056C - b _080807CA -_0808056C: - movs r5, #0x8a - lsls r5, r5, #1 - adds r0, r3, r5 - adds r4, r3, #0 - adds r4, #0x7c - ldrb r0, [r0] - ldrb r1, [r4] - cmp r0, r1 - blo _080805B0 - ldr r2, _080805A4 - ldr r1, _080805A8 - ldrb r0, [r4] - subs r0, #2 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r2 - ldr r2, _080805AC - adds r1, r2, #0 - ldrh r0, [r0] - adds r1, r1, r0 - adds r0, r3, #0 - adds r0, #0x4a - strh r1, [r0] - ldrb r0, [r3] - adds r0, #1 - b _080805B4 - .align 2, 0 -_080805A4: .4byte gUnknown_830F8CC -_080805A8: .4byte gUnknown_830F8D4 -_080805AC: .4byte 0xFFFFA800 -_080805B0: - ldrb r0, [r3] - subs r0, #1 -_080805B4: - strb r0, [r3] - ldr r0, _080805C8 - ldr r0, [r0] - movs r3, #0x84 - lsls r3, r3, #1 - adds r0, r0, r3 - movs r1, #0 - str r1, [r0] - b _080807CA - .align 2, 0 -_080805C8: .4byte gUnknown_2031F44 -_080805CC: - ldr r4, _080805F4 - ldr r1, [r4] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - bl sub_08080154 - movs r0, #0x2b - bl sub_080A306C - ldr r0, [r4] - movs r5, #0xa0 - lsls r5, r5, #1 - adds r0, r0, r5 - bl sub_080826D0 - movs r0, #2 - bl ShowBg - b _080807CA - .align 2, 0 -_080805F4: .4byte gUnknown_2031F44 -_080805F8: - movs r1, #0x80 - lsls r1, r1, #3 - movs r0, #0 - bl SetGpuRegBits - ldr r4, _08080688 - ldr r2, [r4] - adds r1, r2, #0 - adds r1, #0x4a - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r5, [r1] - adds r0, r0, r5 - strh r0, [r1] - movs r0, #0x8d - lsls r0, r0, #1 - adds r1, r2, r0 - ldrh r0, [r1] - adds r0, #4 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xff - bls _08080678 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - ldr r3, [r4] - movs r2, #0x8d - lsls r2, r2, #1 - adds r1, r3, r2 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r1] - ldr r2, _0808068C - ldr r1, _08080690 - adds r0, r3, #0 - adds r0, #0x7c - ldrb r0, [r0] - subs r0, #2 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r1, [r0] - adds r0, r3, #0 - adds r0, #0x4a - strh r1, [r0] - movs r0, #0xc - movs r1, #2 - bl SetGpuRegBits - ldr r0, [r4] - movs r3, #0x84 - lsls r3, r3, #1 - adds r0, r0, r3 - movs r1, #0 - str r1, [r0] - movs r0, #0x34 - bl sub_080A306C - bl sub_080801C4 -_08080678: - ldr r0, [r4] - movs r5, #0xa0 - lsls r5, r5, #1 - adds r0, r0, r5 - bl sub_080826D0 - b _080807CA - .align 2, 0 -_08080688: .4byte gUnknown_2031F44 -_0808068C: .4byte gUnknown_830F8CC -_08080690: .4byte gUnknown_830F8D4 -_08080694: - bl sub_08082D9C - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080806A8 - ldr r0, _080806B8 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_080806A8: - ldr r0, _080806B8 - ldr r0, [r0] - movs r1, #0xa0 - lsls r1, r1, #1 - adds r0, r0, r1 - bl sub_080826D0 - b _080807CA - .align 2, 0 -_080806B8: .4byte gUnknown_2031F44 -_080806BC: - ldr r0, _080806D8 - movs r2, #0x10 - rsbs r2, r2, #0 - movs r1, #0x78 - movs r3, #3 - bl CreateSprite -_080806CA: - ldr r0, _080806DC - ldr r1, [r0] -_080806CE: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080807CA - .align 2, 0 -_080806D8: .4byte gUnknown_830FB1C -_080806DC: .4byte gUnknown_2031F44 -_080806E0: - bl sub_08080814 - ldr r5, _08080738 - ldr r4, [r5] - adds r1, r4, #0 - adds r1, #0x4c - movs r3, #0 - movs r2, #0 - movs r0, #0x80 - strh r0, [r1] - movs r1, #0x82 - lsls r1, r1, #1 - adds r0, r4, r1 - str r2, [r0] - ldr r2, _0808073C - adds r0, r4, r2 - strb r3, [r0] - ldr r0, [r5] - adds r0, #0x72 - strb r3, [r0] - ldr r0, _08080740 - bl SetMainCallback2 - ldr r0, _08080744 - ldrh r0, [r0] - cmp r0, #1 - bne _08080760 - movs r0, #0xd0 - lsls r0, r0, #2 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808074C - ldr r0, _08080748 - movs r1, #0xa - bl CreateTask - ldr r1, [r5] - movs r3, #0x90 - lsls r3, r3, #1 - adds r1, r1, r3 - b _0808075E - .align 2, 0 -_08080738: .4byte gUnknown_2031F44 -_0808073C: .4byte 0x00000123 -_08080740: .4byte sub_080812B4 -_08080744: .4byte gUnknown_2037280 -_08080748: .4byte sub_08080C40 -_0808074C: - ldr r0, _08080804 - ldr r0, [r0] - movs r1, #0xa - bl CreateTask - ldr r1, [r5] - movs r5, #0x90 - lsls r5, r5, #1 - adds r1, r1, r5 -_0808075E: - strb r0, [r1] -_08080760: - ldr r1, _08080808 - ldrh r0, [r1] - cmp r0, #1 - bls _0808079C - movs r4, #0 - ldrh r1, [r1] - cmp r4, r1 - bge _0808079C - movs r5, #0xa0 - lsls r5, r5, #0x14 - ldr r6, _08080804 -_08080776: - ldm r6!, {r0} - lsrs r1, r5, #0x18 - bl CreateTask - ldr r1, _0808080C - ldr r1, [r1] - movs r2, #0x90 - lsls r2, r2, #1 - adds r1, r1, r2 - adds r1, r1, r4 - strb r0, [r1] - movs r3, #0x80 - lsls r3, r3, #0x11 - adds r5, r5, r3 - adds r4, #1 - ldr r0, _08080808 - ldrh r0, [r0] - cmp r4, r0 - blt _08080776 -_0808079C: - bl sub_080A27CC - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _08080810 - cmp r0, r4 - beq _080807BA - bl sub_080A27CC - ldr r1, _0808080C - ldr r1, [r1] - movs r5, #0xaa - lsls r5, r5, #1 - adds r1, r1, r5 - strh r0, [r1] -_080807BA: - adds r0, r4, #0 - bl PlayBGM - movs r0, #0x35 - bl sub_080A306C - bl Blender_ControlHitPitch -_080807CA: - ldr r0, _0808080C - ldr r1, [r0] - movs r2, #0x8e - lsls r2, r2, #1 - adds r0, r1, r2 - movs r3, #0 - ldrsh r0, [r0, r3] - movs r5, #0x8f - lsls r5, r5, #1 - adds r1, r1, r5 - movs r2, #0 - ldrsh r1, [r1, r2] - bl sub_0808137C - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl sub_08004630 - bl UpdatePaletteFade - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08080804: .4byte gUnknown_830F8DC -_08080808: .4byte gUnknown_2037280 -_0808080C: .4byte gUnknown_2031F44 -_08080810: .4byte 0x00000193 - thumb_func_end sub_080802F0 - - thumb_func_start sub_08080814 -sub_08080814: @ 0x08080814 - push {lr} - ldr r3, _08080834 - movs r0, #0 - ldr r1, _08080838 - movs r2, #3 -_0808081E: - strh r0, [r3] - strh r0, [r3, #4] - strh r0, [r1] - strh r0, [r1, #4] - adds r1, #0x10 - subs r2, #1 - cmp r2, #0 - bge _0808081E - pop {r0} - bx r0 - .align 2, 0 -_08080834: .4byte gUnknown_30031B0 -_08080838: .4byte gUnknown_3003130 - thumb_func_end sub_08080814 - - thumb_func_start sub_0808083C -sub_0808083C: @ 0x0808083C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r1, _0808087C - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #3 - adds r2, r0, r1 - ldrh r0, [r2, #8] - adds r0, #1 - strh r0, [r2, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r4, #0xa - ldrsh r1, [r2, r4] - cmp r0, r1 - ble _08080874 - ldr r0, _08080880 - movs r4, #0xc - ldrsh r1, [r2, r4] - lsls r1, r1, #4 - adds r0, #4 - adds r1, r1, r0 - ldr r0, _08080884 - strh r0, [r1] - adds r0, r3, #0 - bl DestroyTask -_08080874: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808087C: .4byte gUnknown_3005B60 -_08080880: .4byte gUnknown_3003130 -_08080884: .4byte 0x00002345 - thumb_func_end sub_0808083C - - thumb_func_start sub_08080888 -sub_08080888: @ 0x08080888 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _080808B8 - movs r1, #0x50 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080808BC - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #0xa] - strh r5, [r1, #0xc] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080808B8: .4byte sub_0808083C -_080808BC: .4byte gUnknown_3005B60 - thumb_func_end sub_08080888 - - thumb_func_start sub_080808C0 -sub_080808C0: @ 0x080808C0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r4, _0808092C - ldr r0, [r4] - adds r0, #0x4a - ldrh r0, [r0] - movs r1, #1 - bl sub_0808002C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - beq _080808DE - b _080809D4 -_080808DE: - ldr r2, _08080930 - lsls r1, r5, #2 - adds r0, r1, r5 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r2, #8 - ldrsh r0, [r0, r2] - adds r6, r1, #0 - cmp r0, #0 - beq _080808F4 - b _080809E2 -_080808F4: - ldr r0, [r4] - ldr r1, _08080934 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080809B6 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _08080938 - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r3, r1, #0 - ldr r0, [r4] - adds r0, #0x4c - movs r4, #0 - ldrsh r2, [r0, r4] - ldr r0, _0808093C - cmp r2, r0 - bgt _0808095C - cmp r1, #0x4b - bls _08080948 - ldr r1, _08080940 - ldr r0, _08080944 - b _0808094C - .align 2, 0 -_0808092C: .4byte gUnknown_2031F44 -_08080930: .4byte gUnknown_3005B60 -_08080934: .4byte 0x00000123 -_08080938: .4byte 0x0000028F -_0808093C: .4byte 0x000001F3 -_08080940: .4byte gUnknown_3003130 -_08080944: .4byte 0x00004523 -_08080948: - ldr r1, _08080954 - ldr r0, _08080958 -_0808094C: - strh r0, [r1, #0x14] - ldr r0, _08080958 - b _080809BA - .align 2, 0 -_08080954: .4byte gUnknown_3003130 -_08080958: .4byte 0x00005432 -_0808095C: - ldr r0, _08080978 - cmp r2, r0 - bgt _0808098A - cmp r1, #0x50 - bhi _080809B6 - adds r0, r1, #0 - subs r0, #0x15 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x3b - bhi _08080984 - ldr r1, _0808097C - ldr r0, _08080980 - b _080809BA - .align 2, 0 -_08080978: .4byte 0x000005DB -_0808097C: .4byte gUnknown_3003130 -_08080980: .4byte 0x00005432 -_08080984: - cmp r1, #9 - bhi _080809BC - b _080809AC -_0808098A: - cmp r1, #0x5a - bhi _080809B6 - adds r0, r1, #0 - subs r0, #0x47 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x13 - bhi _080809A8 - ldr r1, _080809A0 - ldr r0, _080809A4 - b _080809BA - .align 2, 0 -_080809A0: .4byte gUnknown_3003130 -_080809A4: .4byte 0x00005432 -_080809A8: - cmp r3, #0x1d - bhi _080809BC -_080809AC: - movs r0, #1 - movs r1, #5 - bl sub_08080888 - b _080809BC -_080809B6: - ldr r1, _080809C8 - ldr r0, _080809CC -_080809BA: - strh r0, [r1, #0x14] -_080809BC: - ldr r0, _080809D0 - adds r1, r6, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #1 - b _080809E0 - .align 2, 0 -_080809C8: .4byte gUnknown_3003130 -_080809CC: .4byte 0x00004523 -_080809D0: .4byte gUnknown_3005B60 -_080809D4: - ldr r0, _080809E8 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0 -_080809E0: - strh r0, [r1, #8] -_080809E2: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080809E8: .4byte gUnknown_3005B60 - thumb_func_end sub_080808C0 - - thumb_func_start sub_080809EC -sub_080809EC: @ 0x080809EC - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r6, _08080A70 - ldr r3, [r6] - adds r0, r3, #0 - adds r0, #0x4a - ldrh r0, [r0] - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r0, r1 - ldr r1, _08080A74 - ands r0, r1 - adds r1, r3, #0 - adds r1, #0x9a - ldrb r1, [r1] - lsrs r2, r0, #8 - ldr r0, _08080A78 - adds r1, r1, r0 - ldrb r1, [r1] - adds r0, r1, #0 - adds r0, #0x14 - cmp r2, r0 - bls _08080AFC - adds r0, #0x14 - cmp r2, r0 - bhs _08080AFC - ldr r2, _08080A7C - lsls r1, r4, #2 - adds r0, r1, r4 - lsls r0, r0, #3 - adds r2, r0, r2 - movs r5, #8 - ldrsh r0, [r2, r5] - adds r5, r1, #0 - cmp r0, #0 - bne _08080B0A - ldr r1, _08080A80 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _08080AE8 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _08080A84 - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r3, r2, #0 - ldr r0, [r6] - adds r0, #0x4c - movs r6, #0 - ldrsh r1, [r0, r6] - ldr r0, _08080A88 - cmp r1, r0 - bgt _08080AA4 - cmp r2, #0x42 - bls _08080A94 - ldr r1, _08080A8C - ldr r0, _08080A90 - strh r0, [r1, #0x24] - b _08080ACC - .align 2, 0 -_08080A70: .4byte gUnknown_2031F44 -_08080A74: .4byte 0x0000FFFF -_08080A78: .4byte gUnknown_830F8D7 -_08080A7C: .4byte gUnknown_3005B60 -_08080A80: .4byte 0x00000123 -_08080A84: .4byte 0x0000028F -_08080A88: .4byte 0x000001F3 -_08080A8C: .4byte gUnknown_3003130 -_08080A90: .4byte 0x00004523 -_08080A94: - ldr r1, _08080A9C - ldr r0, _08080AA0 - strh r0, [r1, #0x24] - b _08080ACC - .align 2, 0 -_08080A9C: .4byte gUnknown_3003130 -_08080AA0: .4byte 0x00005432 -_08080AA4: - cmp r2, #0x41 - bls _08080AAE - ldr r1, _08080AD8 - ldr r0, _08080ADC - strh r0, [r1, #0x24] -_08080AAE: - adds r0, r2, #0 - subs r0, #0x29 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x18 - bhi _08080AC0 - ldr r1, _08080AD8 - ldr r0, _08080AE0 - strh r0, [r1, #0x24] -_08080AC0: - cmp r3, #9 - bhi _08080ACC - movs r0, #2 - movs r1, #5 - bl sub_08080888 -_08080ACC: - ldr r0, _08080AE4 - adds r1, r5, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #1 - b _08080B08 - .align 2, 0 -_08080AD8: .4byte gUnknown_3003130 -_08080ADC: .4byte 0x00004523 -_08080AE0: .4byte 0x00005432 -_08080AE4: .4byte gUnknown_3005B60 -_08080AE8: - ldr r0, _08080AF4 - ldr r1, _08080AF8 - strh r1, [r0, #0x24] - movs r0, #1 - strh r0, [r2, #8] - b _08080B0A - .align 2, 0 -_08080AF4: .4byte gUnknown_3003130 -_08080AF8: .4byte 0x00004523 -_08080AFC: - ldr r0, _08080B10 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0 -_08080B08: - strh r0, [r1, #8] -_08080B0A: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08080B10: .4byte gUnknown_3005B60 - thumb_func_end sub_080809EC - - thumb_func_start sub_08080B14 -sub_08080B14: @ 0x08080B14 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r5, _08080B94 - ldr r3, [r5] - adds r0, r3, #0 - adds r0, #0x4a - ldrh r0, [r0] - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r0, r1 - ldr r1, _08080B98 - ands r0, r1 - adds r1, r3, #0 - adds r1, #0x9c - ldrb r1, [r1] - lsrs r2, r0, #8 - ldr r0, _08080B9C - adds r1, r1, r0 - ldrb r1, [r1] - adds r0, r1, #0 - adds r0, #0x14 - cmp r2, r0 - bls _08080C28 - adds r0, #0x14 - cmp r2, r0 - bhs _08080C28 - ldr r2, _08080BA0 - lsls r1, r4, #2 - adds r0, r1, r4 - lsls r0, r0, #3 - adds r2, r0, r2 - movs r6, #8 - ldrsh r0, [r2, r6] - adds r6, r1, #0 - cmp r0, #0 - bne _08080C36 - ldr r1, _08080BA4 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _08080C14 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _08080BA8 - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, [r5] - adds r0, #0x4c - movs r3, #0 - ldrsh r1, [r0, r3] - ldr r0, _08080BAC - cmp r1, r0 - bgt _08080BC8 - cmp r2, #0x58 - bls _08080BB8 - ldr r1, _08080BB0 - ldr r0, _08080BB4 - strh r0, [r1, #0x34] - b _08080BFA - .align 2, 0 -_08080B94: .4byte gUnknown_2031F44 -_08080B98: .4byte 0x0000FFFF -_08080B9C: .4byte gUnknown_830F8D7 -_08080BA0: .4byte gUnknown_3005B60 -_08080BA4: .4byte 0x00000123 -_08080BA8: .4byte 0x0000028F -_08080BAC: .4byte 0x000001F3 -_08080BB0: .4byte gUnknown_3003130 -_08080BB4: .4byte 0x00004523 -_08080BB8: - ldr r1, _08080BC0 - ldr r0, _08080BC4 - strh r0, [r1, #0x34] - b _08080BFA - .align 2, 0 -_08080BC0: .4byte gUnknown_3003130 -_08080BC4: .4byte 0x00005432 -_08080BC8: - cmp r2, #0x3c - bls _08080BDC - ldr r1, _08080BD4 - ldr r0, _08080BD8 - b _08080BEC - .align 2, 0 -_08080BD4: .4byte gUnknown_3003130 -_08080BD8: .4byte 0x00004523 -_08080BDC: - adds r0, r2, #0 - subs r0, #0x38 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _08080BEE - ldr r1, _08080C08 - ldr r0, _08080C0C -_08080BEC: - strh r0, [r1, #0x34] -_08080BEE: - cmp r2, #4 - bhi _08080BFA - movs r0, #3 - movs r1, #5 - bl sub_08080888 -_08080BFA: - ldr r0, _08080C10 - adds r1, r6, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #1 - b _08080C34 - .align 2, 0 -_08080C08: .4byte gUnknown_3003130 -_08080C0C: .4byte 0x00005432 -_08080C10: .4byte gUnknown_3005B60 -_08080C14: - ldr r0, _08080C20 - ldr r1, _08080C24 - strh r1, [r0, #0x34] - movs r0, #1 - strh r0, [r2, #8] - b _08080C36 - .align 2, 0 -_08080C20: .4byte gUnknown_3003130 -_08080C24: .4byte 0x00004523 -_08080C28: - ldr r0, _08080C3C - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0 -_08080C34: - strh r0, [r1, #8] -_08080C36: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08080C3C: .4byte gUnknown_3005B60 - thumb_func_end sub_08080B14 - - thumb_func_start sub_08080C40 -sub_08080C40: @ 0x08080C40 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _08080C7C - ldr r0, [r0] - adds r0, #0x4a - ldrh r0, [r0] - movs r1, #1 - bl sub_0808002C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _08080C8C - ldr r0, _08080C80 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r2, r1, r0 - movs r1, #8 - ldrsh r0, [r2, r1] - cmp r0, #0 - bne _08080C9A - ldr r0, _08080C84 - ldr r1, _08080C88 - strh r1, [r0, #0x14] - movs r0, #1 - strh r0, [r2, #8] - b _08080C9A - .align 2, 0 -_08080C7C: .4byte gUnknown_2031F44 -_08080C80: .4byte gUnknown_3005B60 -_08080C84: .4byte gUnknown_3003130 -_08080C88: .4byte 0x00004523 -_08080C8C: - ldr r0, _08080CA0 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0 - strh r0, [r1, #8] -_08080C9A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08080CA0: .4byte gUnknown_3005B60 - thumb_func_end sub_08080C40 - - thumb_func_start sub_08080CA4 -sub_08080CA4: @ 0x08080CA4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - mov r8, r7 - lsls r1, r1, #0x18 - ldr r0, _08080D18 - ldr r4, _08080D1C - lsrs r1, r1, #0x17 - adds r2, r1, r4 - ldrb r6, [r2] - ldr r5, _08080D20 - adds r2, r1, r5 - movs r3, #0 - ldrsb r3, [r2, r3] - lsls r2, r3, #2 - adds r2, r2, r3 - lsls r2, r2, #1 - subs r6, r6, r2 - adds r4, #1 - adds r4, r1, r4 - ldrb r2, [r4] - adds r5, #1 - adds r1, r1, r5 - movs r3, #0 - ldrsb r3, [r1, r3] - lsls r1, r3, #2 - adds r1, r1, r3 - lsls r1, r1, #1 - subs r2, r2, r1 - adds r1, r6, #0 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r2, r1, #0 - ldr r0, _08080D24 - cmp r7, r0 - bne _08080D30 - lsls r4, r1, #4 - adds r4, r4, r1 - lsls r4, r4, #2 - ldr r5, _08080D28 - adds r0, r4, r5 - movs r1, #2 - bl StartSpriteAnim - adds r5, #0x1c - adds r4, r4, r5 - ldr r0, _08080D2C - str r0, [r4] - movs r0, #0x28 - bl sub_080A306C - b _08080D74 - .align 2, 0 -_08080D18: .4byte gUnknown_830FA30 -_08080D1C: .4byte gUnknown_830F8B8 -_08080D20: .4byte gUnknown_830F8B0 -_08080D24: .4byte 0x00004523 -_08080D28: .4byte gUnknown_20205AC -_08080D2C: .4byte sub_080829B8 -_08080D30: - ldr r0, _08080D50 - cmp r7, r0 - bne _08080D58 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08080D54 - adds r0, r0, r1 - movs r1, #0 - bl StartSpriteAnim - movs r0, #0x1f - bl sub_080A306C - b _08080D74 - .align 2, 0 -_08080D50: .4byte 0x00005432 -_08080D54: .4byte gUnknown_20205AC -_08080D58: - ldr r0, _08080D84 - cmp r8, r0 - bne _08080D74 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r1, _08080D88 - adds r0, r0, r1 - movs r1, #1 - bl StartSpriteAnim - movs r0, #0x20 - bl sub_080A306C -_08080D74: - bl sub_080828A0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08080D84: .4byte 0x00002345 -_08080D88: .4byte gUnknown_20205AC - thumb_func_end sub_08080CA4 - - thumb_func_start sub_08080D8C -sub_08080D8C: @ 0x08080D8C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r5, r4, #0 - bl Blender_ControlHitPitch - ldr r0, _08080DAC - cmp r4, r0 - beq _08080DC0 - cmp r4, r0 - bgt _08080DB4 - ldr r0, _08080DB0 - cmp r4, r0 - beq _08080E90 - b _08080EBC - .align 2, 0 -_08080DAC: .4byte 0x00004523 -_08080DB0: .4byte 0x00002345 -_08080DB4: - ldr r0, _08080DBC - cmp r5, r0 - beq _08080E58 - b _08080EBC - .align 2, 0 -_08080DBC: .4byte 0x00005432 -_08080DC0: - ldr r7, _08080DF0 - ldr r4, [r7] - adds r5, r4, #0 - adds r5, #0x4c - ldrh r6, [r5] - movs r0, #0 - ldrsh r1, [r5, r0] - ldr r0, _08080DF4 - cmp r1, r0 - bgt _08080DFC - ldr r1, _08080DF8 - adds r0, r4, #0 - adds r0, #0x7c - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0xc0 - lsls r0, r0, #1 - bl __divsi3 - adds r0, r6, r0 - strh r0, [r5] - b _08080EBC - .align 2, 0 -_08080DF0: .4byte gUnknown_2031F44 -_08080DF4: .4byte 0x000005DB -_08080DF8: .4byte gUnknown_830FBB3 -_08080DFC: - ldr r1, _08080E54 - adds r0, r4, #0 - adds r0, #0x7c - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x80 - bl __divsi3 - adds r0, r6, r0 - strh r0, [r5] - movs r1, #0x8e - lsls r1, r1, #1 - adds r4, r4, r1 - movs r1, #0 - ldrsh r0, [r5, r1] - movs r1, #0x64 - bl __divsi3 - adds r1, r0, #0 - subs r1, #0xa - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl sub_08082CD8 - ldr r0, [r7] - movs r1, #0x8f - lsls r1, r1, #1 - adds r4, r0, r1 - adds r0, #0x4c - movs r1, #0 - ldrsh r0, [r0, r1] - movs r1, #0x64 - bl __divsi3 - adds r1, r0, #0 - subs r1, #0xa - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl sub_08082CD8 - b _08080EBC - .align 2, 0 -_08080E54: .4byte gUnknown_830FBB3 -_08080E58: - ldr r0, _08080E84 - ldr r2, [r0] - adds r4, r2, #0 - adds r4, #0x4c - ldrh r5, [r4] - movs r0, #0 - ldrsh r1, [r4, r0] - ldr r0, _08080E88 - cmp r1, r0 - bgt _08080EBC - ldr r1, _08080E8C - adds r0, r2, #0 - adds r0, #0x7c - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x80 - lsls r0, r0, #1 - bl __divsi3 - adds r0, r5, r0 - b _08080EBA - .align 2, 0 -_08080E84: .4byte gUnknown_2031F44 -_08080E88: .4byte 0x000005DB -_08080E8C: .4byte gUnknown_830FBB3 -_08080E90: - ldr r0, _08080EC4 - ldr r0, [r0] - adds r4, r0, #0 - adds r4, #0x4c - ldr r1, _08080EC8 - adds r0, #0x7c - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x80 - lsls r0, r0, #1 - bl __divsi3 - ldrh r1, [r4] - subs r1, r1, r0 - strh r1, [r4] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0x7f - bgt _08080EBC - movs r0, #0x80 -_08080EBA: - strh r0, [r4] -_08080EBC: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08080EC4: .4byte gUnknown_2031F44 -_08080EC8: .4byte gUnknown_830FBB3 - thumb_func_end sub_08080D8C - - thumb_func_start sub_08080ECC -sub_08080ECC: @ 0x08080ECC - push {lr} - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldr r0, _08080EF8 - ldrb r0, [r0] - cmp r0, #0 - beq _08080F00 - ldr r0, _08080EFC - ldrb r0, [r0] - cmp r0, #0 - beq _08080F00 - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r3 - cmp r0, r2 - bne _08080F08 - movs r0, #1 - b _08080F0A - .align 2, 0 -_08080EF8: .4byte gUnknown_30031C4 -_08080EFC: .4byte gUnknown_300319C -_08080F00: - cmp r3, r1 - bne _08080F08 - movs r0, #1 - b _08080F0A -_08080F08: - movs r0, #0 -_08080F0A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08080ECC - - thumb_func_start sub_08080F10 -sub_08080F10: @ 0x08080F10 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - ldr r0, _08080FF0 - ldrh r0, [r0] - cmp r0, #0 - beq _08080F58 - ldr r3, _08080FF4 - ldrh r0, [r3, #4] - ldr r2, _08080FF8 - cmp r0, #0 - beq _08080F38 - movs r1, #0 - strh r0, [r2, #4] - ldr r0, _08080FFC - strh r0, [r2] - strh r1, [r3, #4] -_08080F38: - ldr r0, _08080FF8 - ldr r3, _08080FFC - adds r1, r2, #0 - adds r1, #0x10 - adds r2, r0, #0 - adds r2, #0x14 - movs r7, #2 -_08080F46: - ldrh r0, [r2] - cmp r0, #0 - beq _08080F4E - strh r3, [r1] -_08080F4E: - adds r1, #0x10 - adds r2, #0x10 - subs r7, #1 - cmp r7, #0 - bge _08080F46 -_08080F58: - movs r7, #0 - ldr r1, _08081000 - ldr r0, [r1] - adds r0, #0x7c - ldrb r0, [r0] - cmp r7, r0 - blt _08080F68 - b _08081112 -_08080F68: - ldr r0, _08080FF8 - adds r2, r0, #0 - adds r2, #0x20 - str r2, [sp] - movs r1, #0 - mov sb, r1 - movs r2, #0 - str r2, [sp, #4] - mov r8, r0 - ldr r0, _08081004 - mov sl, r0 -_08080F7E: - mov r1, r8 - ldrh r0, [r1] - ldr r1, _08080FFC - movs r2, #0x88 - lsls r2, r2, #7 - bl sub_08080ECC - cmp r0, #0 - bne _08080F92 - b _080810EE -_08080F92: - ldr r6, _08081000 - ldr r0, [r6] - adds r0, #0x96 - ldr r2, [sp, #4] - adds r0, r0, r2 - ldrh r5, [r0] - mov r0, r8 - ldrh r4, [r0, #4] - ldr r1, _08081008 - cmp r4, r1 - bne _08081010 - adds r0, r1, #0 - bl sub_08080D8C - ldr r0, [r6] - movs r2, #0x8b - lsls r2, r2, #1 - adds r4, r0, r2 - adds r0, #0x4c - movs r1, #0 - ldrsh r0, [r0, r1] - movs r1, #0x37 - bl __divsi3 - ldrh r1, [r4] - adds r1, r1, r0 - strh r1, [r4] - lsls r1, r1, #0x10 - ldr r0, _0808100C - cmp r1, r0 - bls _08080FD6 - movs r0, #0xfa - lsls r0, r0, #2 - strh r0, [r4] -_08080FD6: - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - ldr r0, _08081008 - bl sub_08080CA4 - ldr r1, [r6] - movs r2, #0x92 - lsls r2, r2, #1 - adds r1, r1, r2 - add r1, sb - ldrh r0, [r1] - adds r0, #1 - b _0808107A - .align 2, 0 -_08080FF0: .4byte gUnknown_2037280 -_08080FF4: .4byte gUnknown_30031B0 -_08080FF8: .4byte gUnknown_3003130 -_08080FFC: .4byte 0x00004444 -_08081000: .4byte gUnknown_2031F44 -_08081004: .4byte 0x00005432 -_08081008: .4byte 0x00004523 -_0808100C: .4byte 0x03E70000 -_08081010: - cmp r4, sl - bne _0808104E - mov r0, sl - bl sub_08080D8C - ldr r0, [r6] - movs r1, #0x8b - lsls r1, r1, #1 - adds r4, r0, r1 - adds r0, #0x4c - movs r2, #0 - ldrsh r0, [r0, r2] - movs r1, #0x46 - bl __divsi3 - ldrh r1, [r4] - adds r1, r1, r0 - strh r1, [r4] - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - mov r0, sl - bl sub_08080CA4 - ldr r1, [r6] - movs r0, #0x93 - lsls r0, r0, #1 - adds r1, r1, r0 - add r1, sb - ldrh r0, [r1] - adds r0, #1 - b _0808107A -_0808104E: - ldr r0, _080810C8 - cmp r4, r0 - bne _08081086 - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl sub_08080CA4 - adds r0, r4, #0 - bl sub_08080D8C - ldr r0, [r6] - movs r1, #0x94 - lsls r1, r1, #1 - adds r0, r0, r1 - mov r2, sb - adds r1, r0, r2 - ldrh r2, [r1] - ldr r0, _080810CC - cmp r2, r0 - bhi _0808107C - adds r0, r2, #1 -_0808107A: - strh r0, [r1] -_0808107C: - mov r0, r8 - ldrh r1, [r0, #4] - ldr r0, _080810C8 - cmp r1, r0 - beq _08081094 -_08081086: - ldr r1, [sp] - ldrh r0, [r1] - ldr r2, _080810D0 - cmp r0, r2 - beq _08081094 - cmp r0, sl - bne _080810EE -_08081094: - ldr r0, _080810D4 - ldr r0, [r0] - adds r2, r0, #0 - adds r2, #0x4c - movs r0, #0 - ldrsh r1, [r2, r0] - ldr r0, _080810D8 - cmp r1, r0 - ble _080810E4 - adds r0, r1, #0 - ldr r2, _080810DC - adds r0, r0, r2 - movs r1, #0x14 - bl __divsi3 - adds r1, r0, #0 - movs r0, #0x80 - lsls r0, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, _080810E0 - bl m4aMPlayTempoControl - b _080810EE - .align 2, 0 -_080810C8: .4byte 0x00002345 -_080810CC: .4byte 0x000003E6 -_080810D0: .4byte 0x00004523 -_080810D4: .4byte gUnknown_2031F44 -_080810D8: .4byte 0x000005DC -_080810DC: .4byte 0xFFFFFD12 -_080810E0: .4byte gUnknown_30074D0 -_080810E4: - ldr r0, _08081150 - movs r1, #0x80 - lsls r1, r1, #1 - bl m4aMPlayTempoControl -_080810EE: - ldr r1, [sp] - adds r1, #2 - str r1, [sp] - movs r2, #6 - add sb, r2 - ldr r0, [sp, #4] - adds r0, #2 - str r0, [sp, #4] - movs r1, #0x10 - add r8, r1 - adds r7, #1 - ldr r0, _08081154 - ldr r0, [r0] - adds r0, #0x7c - ldrb r0, [r0] - cmp r7, r0 - bge _08081112 - b _08080F7E -_08081112: - ldr r0, _08081158 - ldrh r0, [r0] - cmp r0, #0 - beq _0808113E - movs r7, #0 - ldr r3, _08081154 - ldr r0, [r3] - adds r0, #0x7c - ldrb r0, [r0] - cmp r7, r0 - bge _0808113E - movs r2, #0 - ldr r1, _0808115C -_0808112C: - strh r2, [r1] - strh r2, [r1, #4] - adds r1, #0x10 - adds r7, #1 - ldr r0, [r3] - adds r0, #0x7c - ldrb r0, [r0] - cmp r7, r0 - blt _0808112C -_0808113E: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08081150: .4byte gUnknown_30074D0 -_08081154: .4byte gUnknown_2031F44 -_08081158: .4byte gUnknown_2037280 -_0808115C: .4byte gUnknown_3003130 - thumb_func_end sub_08080F10 - - thumb_func_start sub_08081160 -sub_08081160: @ 0x08081160 - push {r4, r5, r6, lr} - movs r4, #0 - movs r6, #0 - ldr r0, _080811B0 - ldrb r0, [r0] - cmp r0, #0 - beq _08081176 - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_08081176: - ldr r3, _080811B4 - ldr r1, [r3] - lsls r2, r6, #1 - adds r0, r1, #0 - adds r0, #0x96 - adds r0, r0, r2 - ldrb r5, [r0] - adds r1, #0x63 - ldrb r0, [r1] - cmp r0, #0 - bne _08081248 - ldr r0, _080811B8 - ldr r0, [r0] - ldrb r0, [r0, #0x13] - cmp r0, #2 - bne _080811C4 - ldr r2, _080811BC - ldrh r1, [r2, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080811D2 - ldrh r2, [r2, #0x28] - ldr r1, _080811C0 - adds r0, r1, #0 - ands r0, r2 - cmp r0, r1 - beq _080811D2 - b _080811D6 - .align 2, 0 -_080811B0: .4byte gUnknown_30031C4 -_080811B4: .4byte gUnknown_2031F44 -_080811B8: .4byte gUnknown_3005AF0 -_080811BC: .4byte gUnknown_3002360 -_080811C0: .4byte 0x00000201 -_080811C4: - ldr r0, _08081218 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080811D2 - movs r4, #1 -_080811D2: - cmp r4, #0 - beq _08081248 -_080811D6: - ldr r4, _0808121C - ldr r1, [r4] - lsls r2, r5, #1 - adds r0, r1, #0 - adds r0, #0x8e - adds r0, r0, r2 - adds r1, #0x50 - ldrh r0, [r0] - adds r1, r1, r0 - ldrb r1, [r1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08081220 - adds r0, r0, r1 - adds r1, r5, #4 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl StartSpriteAnim - ldr r0, [r4] - adds r0, #0x4a - ldrh r0, [r0] - adds r1, r6, #0 - bl sub_0808002C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _0808122C - ldr r1, _08081224 - ldr r0, _08081228 - b _08081244 - .align 2, 0 -_08081218: .4byte gUnknown_3002360 -_0808121C: .4byte gUnknown_2031F44 -_08081220: .4byte gUnknown_20205AC -_08081224: .4byte gUnknown_30031B0 -_08081228: .4byte 0x00004523 -_0808122C: - cmp r0, #1 - bne _08081240 - ldr r1, _08081238 - ldr r0, _0808123C - b _08081244 - .align 2, 0 -_08081238: .4byte gUnknown_30031B0 -_0808123C: .4byte 0x00005432 -_08081240: - ldr r1, _080812A0 - ldr r0, _080812A4 -_08081244: - strh r0, [r1, #4] - adds r3, r4, #0 -_08081248: - ldr r1, [r3] - adds r1, #0x72 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #5 - bls _08081276 - ldr r0, [r3] - adds r1, r0, #0 - adds r1, #0x4c - ldrh r2, [r1] - movs r4, #0 - ldrsh r0, [r1, r4] - cmp r0, #0x80 - ble _0808126E - subs r0, r2, #1 - strh r0, [r1] -_0808126E: - ldr r0, [r3] - adds r0, #0x72 - movs r1, #0 - strb r1, [r0] -_08081276: - ldr r0, _080812A8 - ldrb r0, [r0] - cmp r0, #0 - beq _0808129A - ldr r0, _080812AC - ldrh r1, [r0, #0x2e] - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0808129A - ldr r0, [r3] - ldr r1, _080812B0 - adds r2, r0, r1 - ldrb r0, [r2] - movs r1, #1 - eors r0, r1 - strb r0, [r2] -_0808129A: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080812A0: .4byte gUnknown_30031B0 -_080812A4: .4byte 0x00002345 -_080812A8: .4byte gUnknown_2031F75 -_080812AC: .4byte gUnknown_3002360 -_080812B0: .4byte 0x00000123 - thumb_func_end sub_08081160 - - thumb_func_start sub_080812B4 -sub_080812B4: @ 0x080812B4 - push {r4, r5, r6, lr} - bl sub_08082744 - ldr r4, _0808136C - ldr r0, [r4] - movs r1, #0x82 - lsls r1, r1, #1 - adds r2, r0, r1 - ldr r1, [r2] - ldr r0, _08081370 - cmp r1, r0 - bhi _080812D0 - adds r0, r1, #1 - str r0, [r2] -_080812D0: - bl sub_08081160 - ldr r1, [r4] - adds r0, r1, #0 - adds r0, #0x4c - ldrh r0, [r0] - movs r5, #0x8b - lsls r5, r5, #1 - adds r1, r1, r5 - ldrh r1, [r1] - bl SetLinkDebugValues - bl sub_08080F10 - ldr r0, [r4] - adds r0, r0, r5 - ldrh r0, [r0] - movs r6, #0xfa - lsls r6, r6, #2 - adds r1, r6, #0 - bl sub_08082B5C - ldr r0, [r4] - adds r0, #0x4c - ldrh r0, [r0] - bl sub_08082C4C - bl sub_08082D28 - bl sub_080824F0 - ldr r2, [r4] - adds r3, r2, #0 - adds r3, #0x63 - ldrb r0, [r3] - cmp r0, #0 - bne _08081336 - movs r1, #0x8c - lsls r1, r1, #1 - adds r0, r2, r1 - ldrh r1, [r0] - ldr r0, _08081374 - cmp r1, r0 - bls _08081336 - adds r0, r2, r5 - strh r6, [r0] - movs r0, #1 - strb r0, [r3] - ldr r0, _08081378 - bl SetMainCallback2 -_08081336: - ldr r0, _0808136C - ldr r1, [r0] - movs r2, #0x8e - lsls r2, r2, #1 - adds r0, r1, r2 - movs r2, #0 - ldrsh r0, [r0, r2] - movs r2, #0x8f - lsls r2, r2, #1 - adds r1, r1, r2 - movs r2, #0 - ldrsh r1, [r1, r2] - bl sub_0808137C - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl sub_08004630 - bl UpdatePaletteFade - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0808136C: .4byte gUnknown_2031F44 -_08081370: .4byte 0x00057E03 -_08081374: .4byte 0x000003E7 -_08081378: .4byte CB2_HandleBlenderEndGame - thumb_func_end sub_080812B4 - - thumb_func_start sub_0808137C -sub_0808137C: @ 0x0808137C - bx lr - .align 2, 0 - thumb_func_end sub_0808137C - - thumb_func_start sub_08081380 -sub_08081380: @ 0x08081380 - push {r4, r5, lr} - lsls r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r1, r1, #0x14 - adds r4, r1, r0 - lsrs r2, r2, #0x14 - adds r5, r2, r0 - ldrh r0, [r4] - ldrh r1, [r5] - cmp r0, r1 - bne _080813BE - adds r0, r4, #2 - adds r1, r5, #2 - bl StringCompare - cmp r0, #0 - bne _080813CC - ldr r0, [r4, #8] - ldr r2, _080813C4 - ands r0, r2 - ldr r1, [r5, #8] - ands r1, r2 - cmp r0, r1 - bne _080813CC - ldr r0, [r4, #0xc] - ldr r2, _080813C8 - ands r0, r2 - ldr r1, [r5, #0xc] - ands r1, r2 - cmp r0, r1 - bne _080813CC -_080813BE: - movs r0, #1 - b _080813CE - .align 2, 0 -_080813C4: .4byte 0xFFFFFF00 -_080813C8: .4byte 0x00FFFFFF -_080813CC: - movs r0, #0 -_080813CE: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_08081380 - - thumb_func_start Blender_GetPokeblockColor -Blender_GetPokeblockColor: @ 0x080813D4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - mov sl, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x10] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r2, sp - movs r4, #5 -_080813F0: - ldrh r0, [r1] - strh r0, [r2] - adds r1, #2 - adds r2, #2 - subs r4, #1 - cmp r4, #0 - bge _080813F0 - movs r6, #0 - mov r1, sp - movs r4, #4 -_08081404: - movs r2, #0 - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _0808140E - adds r6, #1 -_0808140E: - adds r1, #2 - subs r4, #1 - cmp r4, #0 - bge _08081404 - cmp r6, #5 - beq _08081462 - cmp r3, #3 - bhi _08081462 - movs r4, #0 - ldr r3, [sp, #0x10] - cmp r4, r3 - bge _0808147A - mov r3, sl -_08081428: - movs r6, #0 - ldr r7, [sp, #0x10] - cmp r6, r7 - bge _08081470 - mov sb, r3 - mov r5, sl - lsls r0, r4, #0x18 - mov r8, r0 -_08081438: - mov r1, sb - ldrh r0, [r1] - ldrh r2, [r5] - cmp r0, r2 - bne _08081466 - cmp r4, r6 - beq _08081466 - cmp r0, #0xaf - bne _08081462 - lsls r2, r6, #0x18 - lsrs r2, r2, #0x18 - mov r0, sl - mov r7, r8 - lsrs r1, r7, #0x18 - str r3, [sp, #0xc] - bl sub_08081380 - lsls r0, r0, #0x18 - ldr r3, [sp, #0xc] - cmp r0, #0 - beq _08081466 -_08081462: - movs r0, #0xc - b _080815BA -_08081466: - adds r5, #0x10 - adds r6, #1 - ldr r0, [sp, #0x10] - cmp r6, r0 - blt _08081438 -_08081470: - adds r3, #0x10 - adds r4, #1 - ldr r1, [sp, #0x10] - cmp r4, r1 - blt _08081428 -_0808147A: - movs r2, #0 - mov r1, sp - movs r4, #4 -_08081480: - movs r3, #0 - ldrsh r0, [r1, r3] - cmp r0, #0 - ble _0808148E - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 -_0808148E: - adds r1, #2 - subs r4, #1 - cmp r4, #0 - bge _08081480 - cmp r2, #3 - bls _0808149E - movs r0, #0xd - b _080815BA -_0808149E: - cmp r2, #3 - bne _080814A6 - movs r0, #0xb - b _080815BA -_080814A6: - movs r4, #0 - mov r1, sp -_080814AA: - movs r7, #0 - ldrsh r0, [r1, r7] - cmp r0, #0x32 - ble _080814B4 - b _080815B4 -_080814B4: - adds r1, #2 - adds r4, #1 - cmp r4, #4 - ble _080814AA - cmp r2, #1 - bne _08081506 - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - ble _080814CE - movs r0, #1 - b _080815BA -_080814CE: - mov r0, sp - ldrh r0, [r0, #2] - lsls r0, r0, #0x10 - cmp r0, #0 - ble _080814DC - movs r0, #2 - b _080815BA -_080814DC: - mov r0, sp - movs r3, #4 - ldrsh r0, [r0, r3] - cmp r0, #0 - ble _080814EA - movs r0, #3 - b _080815BA -_080814EA: - mov r0, sp - movs r4, #6 - ldrsh r0, [r0, r4] - cmp r0, #0 - ble _080814F8 - movs r0, #4 - b _080815BA -_080814F8: - mov r0, sp - movs r7, #8 - ldrsh r0, [r0, r7] - cmp r0, #0 - ble _08081506 - movs r0, #5 - b _080815BA -_08081506: - cmp r2, #2 - bne _080815B8 - movs r4, #0 - ldr r5, _08081550 - mov r1, sp - adds r2, r5, #0 -_08081512: - movs r3, #0 - ldrsh r0, [r1, r3] - cmp r0, #0 - ble _0808151E - strh r4, [r2] - adds r2, #2 -_0808151E: - adds r1, #2 - adds r4, #1 - cmp r4, #4 - ble _08081512 - movs r4, #0 - ldrsh r3, [r5, r4] - lsls r0, r3, #1 - mov r7, sp - adds r1, r7, r0 - movs r0, #2 - ldrsh r2, [r5, r0] - lsls r0, r2, #1 - add r0, sp - movs r4, #0 - ldrsh r1, [r1, r4] - movs r7, #0 - ldrsh r0, [r0, r7] - cmp r1, r0 - blt _08081574 - adds r0, r3, #0 - cmp r0, #0 - bne _08081554 - lsls r0, r2, #0x10 - b _0808157E - .align 2, 0 -_08081550: .4byte gUnknown_3000DF8 -_08081554: - cmp r0, #1 - bne _0808155C - lsls r0, r2, #0x10 - b _0808158A -_0808155C: - cmp r0, #2 - bne _08081564 - lsls r0, r2, #0x10 - b _08081596 -_08081564: - cmp r0, #3 - bne _0808156C - lsls r0, r2, #0x10 - b _080815A2 -_0808156C: - cmp r0, #4 - bne _080815B8 - lsls r0, r2, #0x10 - b _080815AE -_08081574: - movs r2, #2 - ldrsh r0, [r5, r2] - cmp r0, #0 - bne _08081584 - lsls r0, r3, #0x10 -_0808157E: - movs r1, #6 - orrs r0, r1 - b _080815BA -_08081584: - cmp r0, #1 - bne _08081590 - lsls r0, r3, #0x10 -_0808158A: - movs r1, #7 - orrs r0, r1 - b _080815BA -_08081590: - cmp r0, #2 - bne _0808159C - lsls r0, r3, #0x10 -_08081596: - movs r1, #8 - orrs r0, r1 - b _080815BA -_0808159C: - cmp r0, #3 - bne _080815A8 - lsls r0, r3, #0x10 -_080815A2: - movs r1, #9 - orrs r0, r1 - b _080815BA -_080815A8: - cmp r0, #4 - bne _080815B8 - lsls r0, r3, #0x10 -_080815AE: - movs r1, #0xa - orrs r0, r1 - b _080815BA -_080815B4: - movs r0, #0xe - b _080815BA -_080815B8: - movs r0, #0 -_080815BA: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end Blender_GetPokeblockColor - - thumb_func_start sub_080815CC -sub_080815CC: @ 0x080815CC - ldr r1, _080815D4 - strh r0, [r1] - bx lr - .align 2, 0 -_080815D4: .4byte gUnknown_3000E04 - thumb_func_end sub_080815CC - - thumb_func_start sub_080815D8 -sub_080815D8: @ 0x080815D8 - ldr r0, _080815E0 - movs r1, #0 - ldrsh r0, [r0, r1] - bx lr - .align 2, 0 -_080815E0: .4byte gUnknown_3000E04 - thumb_func_end sub_080815D8 - - thumb_func_start sub_080815E4 -sub_080815E4: @ 0x080815E4 - ldr r1, _080815EC - strh r0, [r1] - bx lr - .align 2, 0 -_080815EC: .4byte gUnknown_3000E06 - thumb_func_end sub_080815E4 - - thumb_func_start sub_080815F0 -sub_080815F0: @ 0x080815F0 - ldr r0, _080815F8 - movs r1, #0 - ldrsh r0, [r0, r1] - bx lr - .align 2, 0 -_080815F8: .4byte gUnknown_3000E06 - thumb_func_end sub_080815F0 - - thumb_func_start Blender_CalculatePokeblock -Blender_CalculatePokeblock: @ 0x080815FC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - str r0, [sp] - mov r8, r1 - str r3, [sp, #4] - ldr r0, [sp, #0x30] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sb, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #8] - ldr r7, _080816B8 - adds r2, r7, #0 - movs r1, #0 - adds r0, r7, #0 - adds r0, #0xa -_08081626: - strh r1, [r0] - subs r0, #2 - cmp r0, r2 - bge _08081626 - movs r6, #0 - cmp r6, sb - bge _0808165C - ldr r0, _080816B8 - mov ip, r0 - ldr r5, [sp] - adds r5, #9 -_0808163C: - movs r3, #0 - adds r4, r5, #0 - mov r2, ip -_08081642: - adds r1, r4, r3 - ldrh r0, [r2] - ldrb r1, [r1] - adds r0, r0, r1 - strh r0, [r2] - adds r2, #2 - adds r3, #1 - cmp r3, #5 - ble _08081642 - adds r5, #0x10 - adds r6, #1 - cmp r6, sb - blt _0808163C -_0808165C: - movs r1, #0 - ldrsh r3, [r7, r1] - ldrh r0, [r7] - ldrh r1, [r7, #2] - subs r0, r0, r1 - strh r0, [r7] - ldrh r0, [r7, #4] - subs r1, r1, r0 - strh r1, [r7, #2] - ldrh r1, [r7, #6] - subs r0, r0, r1 - strh r0, [r7, #4] - ldrh r0, [r7, #8] - subs r1, r1, r0 - strh r1, [r7, #6] - subs r0, r0, r3 - strh r0, [r7, #8] - movs r3, #0 - movs r2, #0 - adds r1, r7, #0 - movs r6, #4 -_08081686: - movs r4, #0 - ldrsh r0, [r1, r4] - cmp r0, #0 - bge _08081692 - strh r2, [r1] - adds r3, #1 -_08081692: - adds r1, #2 - subs r6, #1 - cmp r6, #0 - bge _08081686 - lsls r0, r3, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - movs r4, #0 - ldr r1, _080816B8 - movs r6, #4 -_080816A6: - ldrh r2, [r1] - movs r5, #0 - ldrsh r0, [r1, r5] - cmp r0, #0 - ble _080816C0 - cmp r0, r3 - bge _080816BC - strh r4, [r1] - b _080816C0 - .align 2, 0 -_080816B8: .4byte gUnknown_3000DE8 -_080816BC: - subs r0, r2, r3 - strh r0, [r1] -_080816C0: - adds r1, #2 - subs r6, #1 - cmp r6, #0 - bge _080816A6 - ldr r1, _080817A0 - ldr r2, _080817A4 - movs r6, #4 -_080816CE: - movs r3, #0 - ldrsh r0, [r1, r3] - stm r2!, {r0} - adds r1, #2 - subs r6, #1 - cmp r6, #0 - bge _080816CE - ldr r1, _080817A8 - ldr r0, [sp, #8] - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r3, r0, #0 - adds r3, #0x64 - ldr r4, _080817AC - str r3, [r4] - movs r6, #4 -_080816F2: - movs r0, #0 - ldrsh r5, [r7, r0] - adds r0, r5, #0 - muls r0, r3, r0 - movs r1, #0xa - str r3, [sp, #0xc] - bl __divsi3 - adds r5, r0, #0 - movs r1, #0xa - bl __modsi3 - adds r4, r0, #0 - adds r0, r5, #0 - movs r1, #0xa - bl __divsi3 - adds r5, r0, #0 - ldr r3, [sp, #0xc] - cmp r4, #4 - ble _0808171E - adds r5, #1 -_0808171E: - strh r5, [r7] - adds r7, #2 - subs r6, #1 - cmp r6, #0 - bge _080816F2 - ldr r1, _080817A0 - ldr r2, _080817B0 - movs r6, #4 -_0808172E: - movs r3, #0 - ldrsh r0, [r1, r3] - stm r2!, {r0} - adds r1, #2 - subs r6, #1 - cmp r6, #0 - bge _0808172E - ldr r4, _080817A0 - ldr r0, [sp] - adds r1, r4, #0 - mov r2, sb - mov r3, sl - bl Blender_GetPokeblockColor - mov r5, r8 - strb r0, [r5] - movs r1, #0xa - ldrsh r0, [r4, r1] - mov r1, sb - bl __divsi3 - mov r3, sb - subs r0, r0, r3 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _08081768 - movs r0, #0 - strh r0, [r4, #0xa] -_08081768: - mov r5, r8 - ldrb r0, [r5] - cmp r0, #0xc - bne _080817C2 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - movs r6, #0 - ldr r0, _080817B4 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, #0 - movs r4, #1 - movs r3, #2 -_08081790: - adds r2, r0, #0 - asrs r2, r6 - ands r2, r4 - cmp r2, #0 - beq _080817B8 - strh r3, [r1] - b _080817BA - .align 2, 0 -_080817A0: .4byte gUnknown_3000DE8 -_080817A4: .4byte gUnknown_2031F48 -_080817A8: .4byte 0x0000014D -_080817AC: .4byte gUnknown_2031F70 -_080817B0: .4byte gUnknown_2031F5C -_080817B4: .4byte gUnknown_830FBB8 -_080817B8: - strh r2, [r1] -_080817BA: - adds r1, #2 - adds r6, #1 - cmp r6, #4 - ble _08081790 -_080817C2: - ldr r7, _0808181C - movs r2, #0xff - adds r1, r7, #0 - movs r6, #5 -_080817CA: - movs r3, #0 - ldrsh r0, [r1, r3] - cmp r0, #0xff - ble _080817D4 - strh r2, [r1] -_080817D4: - adds r1, #2 - subs r6, #1 - cmp r6, #0 - bge _080817CA - ldrh r0, [r7] - mov r4, r8 - strb r0, [r4, #1] - ldrh r0, [r7, #2] - strb r0, [r4, #2] - ldrh r0, [r7, #4] - strb r0, [r4, #3] - ldrh r0, [r7, #6] - strb r0, [r4, #4] - ldrh r0, [r7, #8] - strb r0, [r4, #5] - ldrh r0, [r7, #0xa] - strb r0, [r4, #6] - movs r6, #0 - adds r2, r7, #0 -_080817FA: - ldr r5, [sp, #4] - adds r1, r5, r6 - ldrh r0, [r2] - strb r0, [r1] - adds r2, #2 - adds r6, #1 - cmp r6, #5 - ble _080817FA - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0808181C: .4byte gUnknown_3000DE8 - thumb_func_end Blender_CalculatePokeblock - - thumb_func_start BlenderDebug_CalculatePokeblock -BlenderDebug_CalculatePokeblock: @ 0x08081820 - push {r4, lr} - sub sp, #4 - ldr r4, [sp, #0xc] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - str r4, [sp] - bl Blender_CalculatePokeblock - add sp, #4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end BlenderDebug_CalculatePokeblock - - thumb_func_start sub_0808183C -sub_0808183C: @ 0x0808183C - push {r4, r5, r6, lr} - ldr r0, _0808185C - ldr r0, [r0] - movs r2, #0x82 - lsls r2, r2, #1 - adds r1, r0, r2 - ldrh r1, [r1] - adds r0, #0x4e - ldrh r4, [r0] - movs r2, #0 - ldr r5, _08081860 - cmp r1, r5 - bhi _08081864 - movs r2, #5 - b _080818B6 - .align 2, 0 -_0808185C: .4byte gUnknown_2031F44 -_08081860: .4byte 0x00000383 -_08081864: - ldr r3, _08081878 - adds r0, r1, r3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r3, _0808187C - cmp r0, r3 - bhi _08081880 - movs r2, #4 - b _080818B6 - .align 2, 0 -_08081878: .4byte 0xFFFFFC7C -_0808187C: .4byte 0x00000257 -_08081880: - ldr r6, _08081890 - adds r0, r1, r6 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r3 - bhi _08081894 - movs r2, #3 - b _080818B6 - .align 2, 0 -_08081890: .4byte 0xFFFFFA24 -_08081894: - ldr r3, _080818A4 - adds r0, r1, r3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r5 - bhi _080818A8 - movs r2, #2 - b _080818B6 - .align 2, 0 -_080818A4: .4byte 0xFFFFF7CC -_080818A8: - ldr r6, _080818D4 - adds r0, r1, r6 - lsls r0, r0, #0x10 - ldr r1, _080818D8 - cmp r0, r1 - bhi _080818B6 - movs r2, #1 -_080818B6: - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - bl sub_080815E4 - movs r2, #0 - cmp r4, #0x40 - bhi _08081998 - adds r0, r4, #0 - subs r0, #0x32 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x31 - bhi _080818E0 - ldr r2, _080818DC - b _08081998 - .align 2, 0 -_080818D4: .4byte 0xFFFFF31C -_080818D8: .4byte 0x012B0000 -_080818DC: .4byte 0x0000FFFF -_080818E0: - adds r0, r4, #0 - subs r0, #0x64 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x31 - bhi _080818F4 - ldr r2, _080818F0 - b _08081998 - .align 2, 0 -_080818F0: .4byte 0x0000FFFE -_080818F4: - adds r0, r4, #0 - subs r0, #0x96 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x31 - bhi _08081908 - ldr r2, _08081904 - b _08081998 - .align 2, 0 -_08081904: .4byte 0x0000FFFD -_08081908: - adds r0, r4, #0 - subs r0, #0xc8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x31 - bhi _0808191C - ldr r2, _08081918 - b _08081998 - .align 2, 0 -_08081918: .4byte 0x0000FFFC -_0808191C: - adds r0, r4, #0 - subs r0, #0xfa - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x31 - bhi _08081930 - ldr r2, _0808192C - b _08081998 - .align 2, 0 -_0808192C: .4byte 0x0000FFFB -_08081930: - ldr r1, _08081940 - adds r0, r4, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x31 - bhi _08081948 - ldr r2, _08081944 - b _08081998 - .align 2, 0 -_08081940: .4byte 0xFFFFFEA2 -_08081944: .4byte 0x0000FFFA -_08081948: - ldr r3, _08081958 - adds r0, r4, r3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x31 - bhi _08081960 - ldr r2, _0808195C - b _08081998 - .align 2, 0 -_08081958: .4byte 0xFFFFFE70 -_0808195C: .4byte 0x0000FFF9 -_08081960: - ldr r6, _08081970 - adds r0, r4, r6 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x31 - bhi _08081978 - ldr r2, _08081974 - b _08081998 - .align 2, 0 -_08081970: .4byte 0xFFFFFE0C -_08081974: .4byte 0x0000FFF8 -_08081978: - ldr r1, _08081988 - adds r0, r4, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x31 - bhi _08081990 - ldr r2, _0808198C - b _08081998 - .align 2, 0 -_08081988: .4byte 0xFFFFFDDA -_0808198C: .4byte 0x0000FFF7 -_08081990: - ldr r0, _080819A8 - cmp r4, r0 - bls _08081998 - ldr r2, _080819AC -_08081998: - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - bl sub_080815CC - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080819A8: .4byte 0x00000257 -_080819AC: .4byte 0x0000FFF6 - thumb_func_end sub_0808183C - - thumb_func_start sub_080819B0 -sub_080819B0: @ 0x080819B0 - push {lr} - adds r1, r0, #0 - ldr r0, _080819CC - ldrb r0, [r0] - cmp r0, #0 - beq _080819D4 - ldr r0, _080819D0 - ldrb r0, [r0] - cmp r0, #0 - beq _080819D4 - movs r2, #0xbc - lsls r2, r2, #6 - b _080819D6 - .align 2, 0 -_080819CC: .4byte gUnknown_30031C4 -_080819D0: .4byte gUnknown_300319C -_080819D4: - ldr r2, _080819E0 -_080819D6: - adds r0, r2, #0 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080819E0: .4byte 0x00002FFF - thumb_func_end sub_080819B0 - - thumb_func_start CB2_HandleBlenderEndGame -CB2_HandleBlenderEndGame: @ 0x080819E4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r4, _08081A18 - ldr r0, [r4] - adds r0, #0x63 - ldrb r0, [r0] - cmp r0, #2 - bhi _080819FA - bl sub_08082744 -_080819FA: - bl GetMultiplayerId - ldr r0, [r4] - adds r0, #0x63 - ldrb r0, [r0] - subs r0, #1 - cmp r0, #0xc - bls _08081A0C - b _08081EBA -_08081A0C: - lsls r0, r0, #2 - ldr r1, _08081A1C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08081A18: .4byte gUnknown_2031F44 -_08081A1C: .4byte _08081A20 -_08081A20: @ jump table - .4byte _08081A54 @ case 0 - .4byte _08081A94 @ case 1 - .4byte _08081AF0 @ case 2 - .4byte _08081BE4 @ case 3 - .4byte _08081C94 @ case 4 - .4byte _08081CA2 @ case 5 - .4byte _08081CCC @ case 6 - .4byte _08081E74 @ case 7 - .4byte _08081D00 @ case 8 - .4byte _08081D24 @ case 9 - .4byte _08081DCC @ case 10 - .4byte _08081E4C @ case 11 - .4byte _08081E88 @ case 12 -_08081A54: - ldr r0, _08081A64 - movs r1, #0x80 - lsls r1, r1, #1 - bl m4aMPlayTempoControl - movs r4, #0 - b _08081A80 - .align 2, 0 -_08081A64: .4byte gUnknown_30074D0 -_08081A68: - ldr r0, _08081A8C - ldr r0, [r0] - movs r1, #0x90 - lsls r1, r1, #1 - adds r0, r0, r1 - adds r0, r0, r4 - ldrb r0, [r0] - bl DestroyTask - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_08081A80: - ldr r0, _08081A90 - ldrh r0, [r0] - cmp r4, r0 - blo _08081A68 - b _08081E74 - .align 2, 0 -_08081A8C: .4byte gUnknown_2031F44 -_08081A90: .4byte gUnknown_2037280 -_08081A94: - ldr r4, _08081AC4 - ldr r1, [r4] - adds r1, #0x4c - ldrh r0, [r1] - subs r0, #0x20 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _08081AE2 - bl sub_08009B24 - ldr r2, [r4] - adds r1, r2, #0 - adds r1, #0x4c - movs r0, #0 - strh r0, [r1] - ldr r0, _08081AC8 - ldrb r0, [r0] - cmp r0, #0 - beq _08081ACC - adds r1, #0x17 - ldrb r0, [r1] - adds r0, #1 - b _08081AD2 - .align 2, 0 -_08081AC4: .4byte gUnknown_2031F44 -_08081AC8: .4byte gUnknown_30031C4 -_08081ACC: - adds r1, r2, #0 - adds r1, #0x63 - movs r0, #5 -_08081AD2: - strb r0, [r1] - ldr r0, _08081AE8 - ldr r1, [r0] - movs r0, #0 - strb r0, [r1] - ldr r0, _08081AEC - bl m4aMPlayStop -_08081AE2: - bl Blender_ControlHitPitch - b _08081EBA - .align 2, 0 -_08081AE8: .4byte gUnknown_2031F44 -_08081AEC: .4byte gUnknown_3007550 -_08081AF0: - bl GetMultiplayerId - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08081AFC - b _08081E74 -_08081AFC: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08081B08 - b _08081EBA -_08081B08: - ldr r0, _08081B94 - ldrb r0, [r0] - cmp r0, #0 - beq _08081BA8 - ldr r0, _08081B98 - ldrb r0, [r0] - cmp r0, #0 - beq _08081BA8 - ldr r3, _08081B9C - ldr r1, [r3] - ldr r4, _08081BA0 - adds r2, r1, r4 - movs r5, #0x82 - lsls r5, r5, #1 - adds r0, r1, r5 - ldr r0, [r0] - str r0, [r2] - adds r0, r1, #0 - adds r0, #0x4e - ldrh r0, [r0] - movs r2, #0x8e - lsls r2, r2, #5 - adds r1, r1, r2 - strh r0, [r1] - movs r4, #0 - mov r8, r3 - mov ip, r8 - ldr r7, _08081BA4 - movs r6, #0x92 - lsls r6, r6, #1 -_08081B44: - movs r3, #0 - adds r5, r4, #1 - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r4, r0, #1 -_08081B4E: - mov r1, ip - ldr r0, [r1] - lsls r1, r3, #1 - adds r1, r1, r4 - adds r2, r0, r7 - adds r2, r2, r1 - adds r0, r0, r6 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #2 - bls _08081B4E - lsls r0, r5, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _08081B44 - mov r2, r8 - ldr r1, [r2] - ldr r4, _08081BA0 - adds r1, r1, r4 - movs r0, #0 - movs r2, #0x20 - bl SendBlock - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08081B8C - b _08081EBA -_08081B8C: - mov r5, r8 - ldr r1, [r5] - b _08081E78 - .align 2, 0 -_08081B94: .4byte gUnknown_30031C4 -_08081B98: .4byte gUnknown_300319C -_08081B9C: .4byte gUnknown_2031F44 -_08081BA0: .4byte 0x000011BC -_08081BA4: .4byte 0x000011C4 -_08081BA8: - ldr r4, _08081BE0 - ldr r3, [r4] - movs r0, #0xcc - lsls r0, r0, #1 - adds r1, r3, r0 - movs r2, #0x82 - lsls r2, r2, #1 - adds r0, r3, r2 - ldr r0, [r0] - str r0, [r1] - adds r0, r3, #0 - adds r0, #0x4e - ldrh r2, [r0] - movs r5, #0xce - lsls r5, r5, #1 - adds r0, r3, r5 - strh r2, [r0] - movs r0, #0 - movs r2, #0x28 - bl SendBlock - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08081BDA - b _08081EBA -_08081BDA: - ldr r1, [r4] - b _08081E78 - .align 2, 0 -_08081BE0: .4byte gUnknown_2031F44 -_08081BE4: - bl GetBlockReceivedStatus - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08081BF0 - b _08081EBA -_08081BF0: - bl ResetBlockReceivedFlags - ldr r5, _08081C60 - ldr r1, [r5] - adds r1, #0x63 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r0, _08081C64 - ldrb r0, [r0] - cmp r0, #0 - beq _08081C70 - ldr r0, _08081C68 - ldrb r0, [r0] - cmp r0, #0 - beq _08081C70 - ldr r2, _08081C6C - ldr r3, [r5] - ldrh r0, [r2, #4] - adds r1, r3, #0 - adds r1, #0x4e - strh r0, [r1] - movs r0, #0x82 - lsls r0, r0, #1 - adds r1, r3, r0 - ldr r0, [r2] - str r0, [r1] - movs r4, #0 - adds r7, r2, #0 - adds r7, #8 - adds r6, r5, #0 - movs r2, #0x92 - lsls r2, r2, #1 -_08081C32: - movs r3, #0 - adds r5, r4, #1 - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r4, r0, #1 -_08081C3C: - ldr r1, [r6] - lsls r0, r3, #1 - adds r0, r0, r4 - adds r1, r1, r2 - adds r1, r1, r0 - adds r0, r7, r0 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #2 - bls _08081C3C - lsls r0, r5, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _08081C32 - b _08081EBA - .align 2, 0 -_08081C60: .4byte gUnknown_2031F44 -_08081C64: .4byte gUnknown_30031C4 -_08081C68: .4byte gUnknown_300319C -_08081C6C: .4byte gUnknown_202207C -_08081C70: - ldr r2, _08081C8C - ldr r0, _08081C90 - ldr r3, [r0] - ldrh r0, [r2, #4] - adds r1, r3, #0 - adds r1, #0x4e - strh r0, [r1] - movs r4, #0x82 - lsls r4, r4, #1 - adds r1, r3, r4 - ldr r0, [r2] - str r0, [r1] - b _08081EBA - .align 2, 0 -_08081C8C: .4byte gUnknown_202207C -_08081C90: .4byte gUnknown_2031F44 -_08081C94: - bl sub_080834FC - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08081CA0 - b _08081EBA -_08081CA0: - b _08081E74 -_08081CA2: - bl sub_08082E6C - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08081CAE - b _08081EBA -_08081CAE: - ldr r0, _08081CC0 - ldrb r0, [r0] - cmp r0, #0 - bne _08081CC4 - movs r0, #0x22 - bl IncrementGameStat - b _08081E74 - .align 2, 0 -_08081CC0: .4byte gUnknown_3005AF8 -_08081CC4: - movs r0, #0x21 - bl IncrementGameStat - b _08081E74 -_08081CCC: - ldr r6, _08081CF4 - ldr r4, [r6] - ldr r5, _08081CF8 - adds r4, r4, r5 - ldr r5, _08081CFC - bl GetPlayerTextSpeedDelay - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl Blender_PrintText - cmp r0, #0 - bne _08081CEE - b _08081EBA -_08081CEE: - ldr r1, [r6] - b _08081E78 - .align 2, 0 -_08081CF4: .4byte gUnknown_2031F44 -_08081CF8: .4byte 0x000011B4 -_08081CFC: .4byte gUnknown_830F79B -_08081D00: - ldr r4, _08081D1C - ldr r0, [r4] - adds r0, #0x9e - movs r1, #0 - strb r1, [r0] - ldr r0, _08081D20 - movs r1, #1 - movs r2, #1 - movs r3, #0xd - bl sub_08198D44 - ldr r1, [r4] - b _08081E78 - .align 2, 0 -_08081D1C: .4byte gUnknown_2031F44 -_08081D20: .4byte gUnknown_830F8A8 -_08081D24: - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r2, r0, #0x18 - cmp r2, #0 - beq _08081D88 - cmp r2, #0 - bgt _08081D3E - movs r0, #1 - rsbs r0, r0, #0 - cmp r2, r0 - beq _08081D44 - b _08081EBA -_08081D3E: - cmp r2, #1 - beq _08081D44 - b _08081EBA -_08081D44: - ldr r2, _08081D84 - ldr r0, [r2] - adds r0, #0x9e - movs r1, #1 - strb r1, [r0] - ldr r1, [r2] - adds r1, #0x63 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r4, #0 -_08081D5A: - ldr r0, _08081D84 - ldr r0, [r0] - lsls r1, r4, #1 - adds r0, #0x8e - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0xff - beq _08081D78 - adds r0, r4, #0 - bl PutWindowTilemap - adds r0, r4, #0 - movs r1, #3 - bl CopyWindowToVram -_08081D78: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _08081D5A - b _08081EBA - .align 2, 0 -_08081D84: .4byte gUnknown_2031F44 -_08081D88: - ldr r1, _08081DC8 - ldr r0, [r1] - adds r0, #0x9e - strb r2, [r0] - ldr r1, [r1] - adds r1, #0x63 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r4, #0 -_08081D9C: - ldr r0, _08081DC8 - ldr r0, [r0] - lsls r1, r4, #1 - adds r0, #0x8e - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0xff - beq _08081DBA - adds r0, r4, #0 - bl PutWindowTilemap - adds r0, r4, #0 - movs r1, #3 - bl CopyWindowToVram -_08081DBA: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _08081D9C - b _08081EBA - .align 2, 0 -_08081DC8: .4byte gUnknown_2031F44 -_08081DCC: - ldr r6, _08081DFC - adds r0, r6, #0 - bl sub_080819B0 - ldr r4, _08081E00 - ldr r2, [r4] - adds r0, r2, #0 - adds r0, #0x9e - ldrb r5, [r0] - cmp r5, #0 - bne _08081E38 - movs r0, #4 - bl IsBagPocketNonEmpty - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08081E08 - ldr r0, [r4] - adds r0, #0x70 - movs r1, #2 - strh r1, [r0] - ldr r0, _08081E04 - b _08081E30 - .align 2, 0 -_08081DFC: .4byte gUnknown_30031B0 -_08081E00: .4byte gUnknown_2031F44 -_08081E04: .4byte 0x00009999 -_08081E08: - bl GetFirstFreePokeblockSlot - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _08081E28 - ldr r0, [r4] - adds r0, #0x70 - movs r1, #3 - strh r1, [r0] - ldr r0, _08081E24 - b _08081E30 - .align 2, 0 -_08081E24: .4byte 0x0000AAAA -_08081E28: - ldr r0, [r4] - adds r0, #0x70 - strh r5, [r0] - ldr r0, _08081E34 -_08081E30: - strh r0, [r6, #2] - b _08081E74 - .align 2, 0 -_08081E34: .4byte 0x00007779 -_08081E38: - adds r1, r2, #0 - adds r1, #0x70 - movs r0, #1 - strh r0, [r1] - ldr r0, _08081E48 - strh r0, [r6, #2] - subs r1, #0xd - b _08081E7A - .align 2, 0 -_08081E48: .4byte 0x00008888 -_08081E4C: - ldr r0, _08081E68 - ldrb r0, [r0] - cmp r0, #0 - beq _08081E74 - ldr r0, _08081E6C - bl SetMainCallback2 - ldr r2, _08081E70 - ldr r0, [r2] - adds r0, #0x63 - movs r1, #0 - strb r1, [r0] - ldr r0, [r2] - b _08081EB8 - .align 2, 0 -_08081E68: .4byte gUnknown_3005AF8 -_08081E6C: .4byte CB2_HandlePlayerPlayAgainChoice -_08081E70: .4byte gUnknown_2031F44 -_08081E74: - ldr r0, _08081E84 - ldr r1, [r0] -_08081E78: - adds r1, #0x63 -_08081E7A: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _08081EBA - .align 2, 0 -_08081E84: .4byte gUnknown_2031F44 -_08081E88: - ldr r6, _08081F08 - ldr r4, [r6] - ldr r0, _08081F0C - adds r4, r4, r0 - ldr r5, _08081F10 - bl GetPlayerTextSpeedDelay - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl Blender_PrintText - cmp r0, #0 - beq _08081EBA - ldr r0, _08081F14 - bl SetMainCallback2 - ldr r0, [r6] - adds r0, #0x63 - movs r1, #0 - strb r1, [r0] - ldr r0, [r6] -_08081EB8: - strb r1, [r0] -_08081EBA: - bl sub_08082D28 - ldr r4, _08081F08 - ldr r0, [r4] - adds r0, #0x4c - ldrh r0, [r0] - bl sub_08082C4C - bl sub_080824F0 - ldr r1, [r4] - movs r2, #0x8e - lsls r2, r2, #1 - adds r0, r1, r2 - movs r4, #0 - ldrsh r0, [r0, r4] - movs r5, #0x8f - lsls r5, r5, #1 - adds r1, r1, r5 - movs r2, #0 - ldrsh r1, [r1, r2] - bl sub_0808137C - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl sub_08004630 - bl UpdatePaletteFade - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08081F08: .4byte gUnknown_2031F44 -_08081F0C: .4byte 0x000011B4 -_08081F10: .4byte gUnknown_830F78E -_08081F14: .4byte CB2_HandlePlayerLinkPlayAgainChoice - thumb_func_end CB2_HandleBlenderEndGame - - thumb_func_start LinkPlayAgainHandleSaving -LinkPlayAgainHandleSaving: @ 0x08081F18 - push {r4, lr} - ldr r1, _08081F38 - ldr r0, [r1] - movs r2, #0xd0 - lsls r2, r2, #1 - adds r0, r0, r2 - ldr r0, [r0] - adds r4, r1, #0 - cmp r0, #6 - bls _08081F2E - b _08082058 -_08081F2E: - lsls r0, r0, #2 - ldr r1, _08081F3C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08081F38: .4byte gUnknown_2031F44 -_08081F3C: .4byte _08081F40 -_08081F40: @ jump table - .4byte _08081F5C @ case 0 - .4byte _08081F74 @ case 1 - .4byte _08081FA0 @ case 2 - .4byte _08081FB0 @ case 3 - .4byte _08081FD6 @ case 4 - .4byte _0808201C @ case 5 - .4byte _08082036 @ case 6 -_08081F5C: - bl sub_0800A8D4 - ldr r0, _08081F70 - ldr r2, [r0] - movs r3, #0xd0 - lsls r3, r3, #1 - adds r1, r2, r3 - movs r0, #1 - b _08082028 - .align 2, 0 -_08081F70: .4byte gUnknown_2031F44 -_08081F74: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08082058 - ldr r0, _08081F98 - ldr r1, [r0] - movs r2, #0xd0 - lsls r2, r2, #1 - adds r1, r1, r2 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - ldr r1, _08081F9C - movs r0, #1 - strb r0, [r1] - b _08082058 - .align 2, 0 -_08081F98: .4byte gUnknown_2031F44 -_08081F9C: .4byte gUnknown_30027A0 -_08081FA0: - bl sub_0815336C - ldr r0, _08081FAC - ldr r2, [r0] - b _0808201E - .align 2, 0 -_08081FAC: .4byte gUnknown_2031F44 -_08081FB0: - ldr r1, [r4] - movs r2, #0x84 - lsls r2, r2, #1 - adds r1, r1, r2 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - cmp r0, #0xa - bne _08082058 - bl sub_0800A8D4 - ldr r1, [r4] - movs r3, #0xd0 - lsls r3, r3, #1 - adds r1, r1, r3 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - b _08082058 -_08081FD6: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08082058 - bl CheckSaveFile - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - beq _08082000 - ldr r0, _08081FFC - ldr r0, [r0] - movs r1, #0xd0 - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #5 - str r1, [r0] - b _08082058 - .align 2, 0 -_08081FFC: .4byte gUnknown_2031F44 -_08082000: - ldr r0, _08082018 - ldr r1, [r0] - movs r3, #0x84 - lsls r3, r3, #1 - adds r0, r1, r3 - str r2, [r0] - movs r0, #0xd0 - lsls r0, r0, #1 - adds r1, r1, r0 - movs r0, #3 - str r0, [r1] - b _08082058 - .align 2, 0 -_08082018: .4byte gUnknown_2031F44 -_0808201C: - ldr r2, [r4] -_0808201E: - movs r3, #0xd0 - lsls r3, r3, #1 - adds r1, r2, r3 - ldr r0, [r1] - adds r0, #1 -_08082028: - str r0, [r1] - movs r0, #0x84 - lsls r0, r0, #1 - adds r1, r2, r0 - movs r0, #0 - str r0, [r1] - b _08082058 -_08082036: - ldr r1, [r4] - movs r2, #0x84 - lsls r2, r2, #1 - adds r1, r1, r2 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - cmp r0, #5 - ble _08082058 - ldr r1, _08082054 - movs r0, #0 - strb r0, [r1] - movs r0, #1 - b _0808205A - .align 2, 0 -_08082054: .4byte gUnknown_30027A0 -_08082058: - movs r0, #0 -_0808205A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end LinkPlayAgainHandleSaving - - thumb_func_start CB2_HandlePlayerLinkPlayAgainChoice -CB2_HandlePlayerLinkPlayAgainChoice: @ 0x08082060 - push {r4, r5, r6, lr} - sub sp, #4 - ldr r1, _08082080 - ldr r0, [r1] - adds r0, #0x63 - ldrb r0, [r0] - adds r6, r1, #0 - cmp r0, #0xc - bls _08082074 - b _080822F8 -_08082074: - lsls r0, r0, #2 - ldr r1, _08082084 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08082080: .4byte gUnknown_2031F44 -_08082084: .4byte _08082088 -_08082088: @ jump table - .4byte _080820BC @ case 0 - .4byte _08082108 @ case 1 - .4byte _08082138 @ case 2 - .4byte _08082170 @ case 3 - .4byte _080821A8 @ case 4 - .4byte _080821C6 @ case 5 - .4byte _080821E4 @ case 6 - .4byte _08082218 @ case 7 - .4byte _08082234 @ case 8 - .4byte _08082244 @ case 9 - .4byte _08082268 @ case 10 - .4byte _080822C0 @ case 11 - .4byte _080822E2 @ case 12 -_080820BC: - ldr r1, [r6] - adds r0, r1, #0 - adds r0, #0x64 - ldrh r2, [r0] - ldr r0, _080820E8 - cmp r2, r0 - bne _080820CC - b _080821BE -_080820CC: - ldr r0, _080820EC - cmp r2, r0 - beq _080820D4 - b _080822F8 -_080820D4: - adds r0, r1, #0 - adds r0, #0x6c - ldrh r2, [r0] - ldr r0, _080820F0 - cmp r2, r0 - bne _080820F4 - adds r1, #0x63 - movs r0, #2 - strb r0, [r1] - b _080822F8 - .align 2, 0 -_080820E8: .4byte 0x00002222 -_080820EC: .4byte 0x00001111 -_080820F0: .4byte 0x00009999 -_080820F4: - ldr r0, _08082104 - cmp r2, r0 - bne _080821BE - adds r1, #0x63 - movs r0, #1 - strb r0, [r1] - b _080822F8 - .align 2, 0 -_08082104: .4byte 0x0000AAAA -_08082108: - ldr r0, [r6] - adds r0, #0x63 - movs r1, #3 - strb r1, [r0] - ldr r4, _0808212C - ldr r0, [r6] - adds r0, #0x6e - ldrh r0, [r0] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _08082130 - adds r1, r1, r0 - adds r0, r4, #0 - bl StringCopy - ldr r1, _08082134 - b _0808215C - .align 2, 0 -_0808212C: .4byte gUnknown_2021C7C -_08082130: .4byte gUnknown_20226A8 -_08082134: .4byte gUnknown_830F808 -_08082138: - ldr r1, [r6] - adds r1, #0x63 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r4, _08082164 - ldr r0, [r6] - adds r0, #0x6e - ldrh r0, [r0] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _08082168 - adds r1, r1, r0 - adds r0, r4, #0 - bl StringCopy - ldr r1, _0808216C -_0808215C: - adds r0, r4, #0 - bl StringAppend - b _080822F8 - .align 2, 0 -_08082164: .4byte gUnknown_2021C7C -_08082168: .4byte gUnknown_20226A8 -_0808216C: .4byte gUnknown_830F7ED -_08082170: - ldr r4, [r6] - ldr r0, _080821A0 - adds r4, r4, r0 - ldr r5, _080821A4 - bl GetPlayerTextSpeedDelay - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl Blender_PrintText - cmp r0, #0 - bne _08082190 - b _080822F8 -_08082190: - ldr r1, [r6] - movs r0, #0x84 - lsls r0, r0, #1 - adds r2, r1, r0 - movs r0, #0 - str r0, [r2] - b _080822D8 - .align 2, 0 -_080821A0: .4byte 0x000011B4 -_080821A4: .4byte gUnknown_2021C7C -_080821A8: - ldr r4, [r6] - movs r2, #0x84 - lsls r2, r2, #1 - adds r1, r4, r2 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - cmp r0, #0x3c - bgt _080821BC - b _080822F8 -_080821BC: - adds r1, r4, #0 -_080821BE: - adds r1, #0x63 - movs r0, #5 - strb r0, [r1] - b _080822F8 -_080821C6: - ldr r0, [r6] - ldr r1, _080821DC - adds r0, r0, r1 - ldr r1, _080821E0 - movs r2, #0 - bl Blender_PrintText - bl sub_0800A8D4 - b _080822D6 - .align 2, 0 -_080821DC: .4byte 0x000011B4 -_080821E0: .4byte gUnknown_830FBC8 -_080821E4: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080821F0 - b _080822F8 -_080821F0: - ldr r3, _08082214 - ldr r1, [r3] - movs r2, #0x84 - lsls r2, r2, #1 - adds r0, r1, r2 - movs r2, #0 - str r2, [r0] - adds r1, #0x63 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r0, [r3] - movs r1, #0xd0 - lsls r1, r1, #1 - adds r0, r0, r1 - str r2, [r0] - b _080822F8 - .align 2, 0 -_08082214: .4byte gUnknown_2031F44 -_08082218: - bl LinkPlayAgainHandleSaving - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080822F8 - movs r0, #0x37 - bl sub_080A306C - ldr r0, _08082230 - ldr r1, [r0] - b _080822D8 - .align 2, 0 -_08082230: .4byte gUnknown_2031F44 -_08082234: - ldr r1, [r6] - adds r1, #0x63 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - bl sub_0800A8D4 - b _080822F8 -_08082244: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080822F8 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _08082264 - ldr r1, [r0] - b _080822D8 - .align 2, 0 -_08082264: .4byte gUnknown_2031F44 -_08082268: - ldr r0, _080822A8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _080822F8 - ldr r2, [r6] - adds r0, r2, #0 - adds r0, #0x64 - ldrh r1, [r0] - ldr r0, _080822AC - cmp r1, r0 - bne _080822B4 - bl FreeAllWindowBuffers - movs r0, #2 - bl UnsetBgTilemapBuffer - movs r0, #1 - bl UnsetBgTilemapBuffer - ldr r0, [r6] - bl Free - str r4, [r6] - ldr r0, _080822B0 - bl SetMainCallback2 - b _080822F8 - .align 2, 0 -_080822A8: .4byte gUnknown_2037C74 -_080822AC: .4byte 0x00002222 -_080822B0: .4byte sub_0807F4B8 -_080822B4: - movs r1, #0x84 - lsls r1, r1, #1 - adds r0, r2, r1 - str r4, [r0] - adds r1, r2, #0 - b _080822D8 -_080822C0: - ldr r1, [r6] - movs r2, #0x84 - lsls r2, r2, #1 - adds r1, r1, r2 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - cmp r0, #0x1e - ble _080822F8 - bl sub_0800A7F8 -_080822D6: - ldr r1, [r6] -_080822D8: - adds r1, #0x63 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080822F8 -_080822E2: - ldr r0, _08082334 - ldrb r4, [r0] - cmp r4, #0 - bne _080822F8 - ldr r0, [r6] - bl Free - str r4, [r6] - ldr r0, _08082338 - bl SetMainCallback2 -_080822F8: - bl sub_080824F0 - ldr r0, _0808233C - ldr r1, [r0] - movs r2, #0x8e - lsls r2, r2, #1 - adds r0, r1, r2 - movs r2, #0 - ldrsh r0, [r0, r2] - movs r2, #0x8f - lsls r2, r2, #1 - adds r1, r1, r2 - movs r2, #0 - ldrsh r1, [r1, r2] - bl sub_0808137C - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl sub_08004630 - bl UpdatePaletteFade - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08082334: .4byte gUnknown_30031C4 -_08082338: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic -_0808233C: .4byte gUnknown_2031F44 - thumb_func_end CB2_HandlePlayerLinkPlayAgainChoice - - thumb_func_start CB2_HandlePlayerPlayAgainChoice -CB2_HandlePlayerPlayAgainChoice: @ 0x08082340 - push {r4, r5, r6, lr} - ldr r1, _0808235C - ldr r0, [r1] - adds r0, #0x63 - ldrb r0, [r0] - adds r6, r1, #0 - cmp r0, #0xa - bls _08082352 - b _080824AE -_08082352: - lsls r0, r0, #2 - ldr r1, _08082360 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808235C: .4byte gUnknown_2031F44 -_08082360: .4byte _08082364 -_08082364: @ jump table - .4byte _08082390 @ case 0 - .4byte _080823C6 @ case 1 - .4byte _080823F0 @ case 2 - .4byte _0808241C @ case 3 - .4byte _080824AE @ case 4 - .4byte _080824AE @ case 5 - .4byte _080824AE @ case 6 - .4byte _080824AE @ case 7 - .4byte _080824AE @ case 8 - .4byte _0808244C @ case 9 - .4byte _08082464 @ case 10 -_08082390: - ldr r1, [r6] - adds r0, r1, #0 - adds r0, #0x70 - ldrh r0, [r0] - cmp r0, #1 - bhi _080823A2 - adds r1, #0x63 - movs r0, #9 - strb r0, [r1] -_080823A2: - ldr r2, [r6] - adds r0, r2, #0 - adds r0, #0x70 - ldrh r1, [r0] - cmp r1, #2 - bne _080823B2 - subs r0, #0xd - strb r1, [r0] -_080823B2: - ldr r1, [r6] - adds r0, r1, #0 - adds r0, #0x70 - ldrh r0, [r0] - cmp r0, #3 - bne _080824AE - adds r1, #0x63 - movs r0, #1 - strb r0, [r1] - b _080824AE -_080823C6: - ldr r0, [r6] - adds r0, #0x63 - movs r2, #0 - movs r1, #3 - strb r1, [r0] - ldr r0, [r6] - ldr r1, _080823E4 - adds r0, r0, r1 - strh r2, [r0] - ldr r0, _080823E8 - ldr r1, _080823EC - bl StringCopy - b _080824AE - .align 2, 0 -_080823E4: .4byte 0x000011B4 -_080823E8: .4byte gUnknown_2021C7C -_080823EC: .4byte gUnknown_830F7D8 -_080823F0: - ldr r1, [r6] - adds r1, #0x63 - ldrb r0, [r1] - adds r0, #1 - movs r2, #0 - strb r0, [r1] - ldr r0, [r6] - ldr r1, _08082410 - adds r0, r0, r1 - strh r2, [r0] - ldr r0, _08082414 - ldr r1, _08082418 - bl StringCopy - b _080824AE - .align 2, 0 -_08082410: .4byte 0x000011B4 -_08082414: .4byte gUnknown_2021C7C -_08082418: .4byte gUnknown_830F7B2 -_0808241C: - ldr r4, [r6] - ldr r2, _08082444 - adds r4, r4, r2 - ldr r5, _08082448 - bl GetPlayerTextSpeedDelay - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl Blender_PrintText - cmp r0, #0 - beq _080824AE - ldr r0, [r6] - adds r0, #0x63 - movs r1, #9 - strb r1, [r0] - b _080824AE - .align 2, 0 -_08082444: .4byte 0x000011B4 -_08082448: .4byte gUnknown_2021C7C -_0808244C: - movs r0, #3 - bl BeginFastPaletteFade - ldr r0, _08082460 - ldr r1, [r0] - adds r1, #0x63 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080824AE - .align 2, 0 -_08082460: .4byte gUnknown_2031F44 -_08082464: - ldr r0, _08082484 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080824AE - ldr r0, [r6] - adds r0, #0x70 - ldrh r0, [r0] - cmp r0, #0 - bne _0808248C - ldr r0, _08082488 - bl SetMainCallback2 - b _08082492 - .align 2, 0 -_08082484: .4byte gUnknown_2037C74 -_08082488: .4byte sub_0807F4B8 -_0808248C: - ldr r0, _080824E8 - bl SetMainCallback2 -_08082492: - bl FreeAllWindowBuffers - movs r0, #2 - bl UnsetBgTilemapBuffer - movs r0, #1 - bl UnsetBgTilemapBuffer - ldr r4, _080824EC - ldr r0, [r4] - bl Free - movs r0, #0 - str r0, [r4] -_080824AE: - bl sub_080824F0 - ldr r0, _080824EC - ldr r1, [r0] - movs r2, #0x8e - lsls r2, r2, #1 - adds r0, r1, r2 - movs r2, #0 - ldrsh r0, [r0, r2] - movs r2, #0x8f - lsls r2, r2, #1 - adds r1, r1, r2 - movs r2, #0 - ldrsh r1, [r1, r2] - bl sub_0808137C - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl sub_08004630 - bl UpdatePaletteFade - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080824E8: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic -_080824EC: .4byte gUnknown_2031F44 - thumb_func_end CB2_HandlePlayerPlayAgainChoice - - thumb_func_start sub_080824F0 -sub_080824F0: @ 0x080824F0 - push {r4, r5, r6, r7, lr} - ldr r0, _08082528 - ldrb r0, [r0] - cmp r0, #0 - bne _080824FC - b _080826C0 -_080824FC: - ldr r4, _0808252C - ldrh r0, [r4] - ldr r1, _08082530 - movs r2, #0xbc - lsls r2, r2, #6 - bl sub_08080ECC - cmp r0, #0 - beq _08082582 - ldrh r1, [r4, #2] - ldr r0, _08082534 - cmp r1, r0 - bne _08082574 - ldrh r3, [r4, #4] - ldr r0, _08082538 - cmp r3, r0 - beq _08082554 - cmp r3, r0 - bgt _08082540 - ldr r0, _0808253C - b _08082542 - .align 2, 0 -_08082528: .4byte gUnknown_30031C4 -_0808252C: .4byte gUnknown_3003130 -_08082530: .4byte 0x00002FFF -_08082534: .4byte 0x00001111 -_08082538: .4byte 0x00009999 -_0808253C: .4byte 0x00008888 -_08082540: - ldr r0, _0808254C -_08082542: - cmp r3, r0 - beq _08082554 - ldr r2, _08082550 - b _08082564 - .align 2, 0 -_0808254C: .4byte 0x0000AAAA -_08082550: .4byte gUnknown_2031F44 -_08082554: - ldr r2, _0808256C - ldr r0, [r2] - adds r1, r0, #0 - adds r1, #0x6c - strh r3, [r1] - ldrh r1, [r4, #6] - adds r0, #0x6e - strh r1, [r0] -_08082564: - ldr r0, [r2] - adds r0, #0x64 - ldr r1, _08082570 - b _08082580 - .align 2, 0 -_0808256C: .4byte gUnknown_2031F44 -_08082570: .4byte 0x00001111 -_08082574: - ldr r0, _080825AC - cmp r1, r0 - bne _08082582 - ldr r0, _080825B0 - ldr r0, [r0] - adds r0, #0x64 -_08082580: - strh r1, [r0] -_08082582: - bl GetMultiplayerId - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808258E - b _080826C0 -_0808258E: - ldr r2, _080825B0 - ldr r0, [r2] - adds r0, #0x64 - ldrh r1, [r0] - ldr r0, _080825B4 - cmp r1, r0 - bne _0808259E - b _080826C0 -_0808259E: - ldr r0, _080825AC - cmp r1, r0 - bne _080825A6 - b _080826C0 -_080825A6: - movs r5, #0 - adds r7, r2, #0 - b _08082610 - .align 2, 0 -_080825AC: .4byte 0x00002222 -_080825B0: .4byte gUnknown_2031F44 -_080825B4: .4byte 0x00001111 -_080825B8: - ldr r6, _080825E4 - lsls r4, r5, #4 - adds r0, r4, r6 - ldrh r0, [r0] - ldr r1, _080825E8 - movs r2, #0xbc - lsls r2, r2, #6 - bl sub_08080ECC - cmp r0, #0 - beq _0808260A - adds r0, r6, #2 - adds r0, r4, r0 - ldrh r2, [r0] - ldr r0, _080825EC - cmp r2, r0 - beq _08082600 - cmp r2, r0 - bgt _080825F4 - ldr r0, _080825F0 - b _080825FC - .align 2, 0 -_080825E4: .4byte gUnknown_3003130 -_080825E8: .4byte 0x00002FFF -_080825EC: .4byte 0x00008888 -_080825F0: .4byte 0x00007779 -_080825F4: - ldr r0, _08082620 - cmp r2, r0 - beq _08082600 - ldr r0, _08082624 -_080825FC: - cmp r2, r0 - bne _0808260A -_08082600: - ldr r0, [r7] - lsls r1, r5, #1 - adds r0, #0x64 - adds r0, r0, r1 - strh r2, [r0] -_0808260A: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_08082610: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r5, r0 - blo _080825B8 - movs r5, #0 - b _0808262E - .align 2, 0 -_08082620: .4byte 0x00009999 -_08082624: .4byte 0x0000AAAA -_08082628: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_0808262E: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r5, r0 - bhs _0808264A - ldr r0, _0808265C - ldr r0, [r0] - lsls r1, r5, #1 - adds r0, #0x64 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0 - bne _08082628 -_0808264A: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r5, r0 - bne _080826C0 - movs r5, #0 - ldr r4, _08082660 - b _0808266A - .align 2, 0 -_0808265C: .4byte gUnknown_2031F44 -_08082660: .4byte 0x00007779 -_08082664: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_0808266A: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r5, r0 - bhs _08082686 - ldr r0, _080826A0 - ldr r0, [r0] - lsls r1, r5, #1 - adds r0, #0x64 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, r4 - beq _08082664 -_08082686: - ldr r4, _080826A4 - adds r0, r4, #0 - bl sub_080819B0 - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r5, r0 - bne _080826AC - ldr r0, _080826A8 - strh r0, [r4, #2] - b _080826C0 - .align 2, 0 -_080826A0: .4byte gUnknown_2031F44 -_080826A4: .4byte gUnknown_30031B0 -_080826A8: .4byte 0x00002222 -_080826AC: - ldr r0, _080826C8 - strh r0, [r4, #2] - ldr r0, _080826CC - ldr r0, [r0] - lsls r1, r5, #1 - adds r0, #0x64 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r4, #4] - strh r5, [r4, #6] -_080826C0: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080826C8: .4byte 0x00001111 -_080826CC: .4byte gUnknown_2031F44 - thumb_func_end sub_080824F0 - - thumb_func_start sub_080826D0 -sub_080826D0: @ 0x080826D0 - push {r4, lr} - sub sp, #0x14 - movs r1, #0xf0 - lsls r1, r1, #7 - str r1, [sp] - movs r1, #0xa0 - lsls r1, r1, #7 - str r1, [sp, #4] - mov r3, sp - ldr r1, _08082730 - ldr r1, [r1] - mov ip, r1 - movs r1, #0x8e - lsls r1, r1, #1 - add r1, ip - ldrh r2, [r1] - movs r1, #0x78 - subs r1, r1, r2 - strh r1, [r3, #8] - movs r1, #0x8f - lsls r1, r1, #1 - add r1, ip - ldrh r2, [r1] - movs r1, #0x50 - subs r1, r1, r2 - strh r1, [r3, #0xa] - mov r2, sp - movs r3, #0x8d - lsls r3, r3, #1 - add r3, ip - ldrh r1, [r3] - strh r1, [r2, #0xc] - ldrh r1, [r3] - strh r1, [r2, #0xe] - mov r1, ip - adds r1, #0x4a - ldrh r1, [r1] - strh r1, [r2, #0x10] - mov r1, sp - ldm r1!, {r2, r3, r4} - stm r0!, {r2, r3, r4} - ldm r1!, {r2, r3} - stm r0!, {r2, r3} - add sp, #0x14 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08082730: .4byte gUnknown_2031F44 - thumb_func_end sub_080826D0 - - thumb_func_start GetBlenderArrowPosition -GetBlenderArrowPosition: @ 0x08082734 - ldr r0, _08082740 - ldr r0, [r0] - adds r0, #0x4a - ldrh r0, [r0] - bx lr - .align 2, 0 -_08082740: .4byte gUnknown_2031F44 - thumb_func_end GetBlenderArrowPosition - - thumb_func_start sub_08082744 -sub_08082744: @ 0x08082744 - push {r4, lr} - movs r1, #0 - ldr r4, _0808279C - ldrb r0, [r4] - cmp r0, #0 - beq _08082758 - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 -_08082758: - ldr r0, _080827A0 - ldrb r0, [r0] - cmp r0, #0 - beq _080827E8 - ldrb r0, [r4] - cmp r0, #0 - beq _080827E8 - cmp r1, #0 - bne _080827AC - ldr r0, _080827A4 - ldr r3, [r0] - adds r2, r3, #0 - adds r2, #0x4a - adds r0, r3, #0 - adds r0, #0x4c - ldrh r0, [r0] - ldrh r1, [r2] - adds r0, r0, r1 - strh r0, [r2] - ldr r1, _080827A8 - movs r4, #0x8b - lsls r4, r4, #1 - adds r0, r3, r4 - ldrh r0, [r0] - strh r0, [r1, #0xa] - ldrh r0, [r2] - strh r0, [r1, #0xc] - movs r1, #0xa0 - lsls r1, r1, #1 - adds r0, r3, r1 - bl sub_080826D0 - b _08082806 - .align 2, 0 -_0808279C: .4byte gUnknown_30031C4 -_080827A0: .4byte gUnknown_300319C -_080827A4: .4byte gUnknown_2031F44 -_080827A8: .4byte gUnknown_30031B0 -_080827AC: - ldr r3, _080827E0 - ldrh r0, [r3] - movs r1, #0xff - lsls r1, r1, #8 - ands r1, r0 - movs r0, #0x88 - lsls r0, r0, #7 - cmp r1, r0 - bne _08082806 - ldr r0, _080827E4 - ldr r2, [r0] - ldrh r0, [r3, #0xa] - movs r4, #0x8b - lsls r4, r4, #1 - adds r1, r2, r4 - strh r0, [r1] - ldrh r0, [r3, #0xc] - adds r1, r2, #0 - adds r1, #0x4a - strh r0, [r1] - movs r1, #0xa0 - lsls r1, r1, #1 - adds r0, r2, r1 - bl sub_080826D0 - b _08082806 - .align 2, 0 -_080827E0: .4byte gUnknown_3003130 -_080827E4: .4byte gUnknown_2031F44 -_080827E8: - ldr r0, _0808280C - ldr r1, [r0] - adds r2, r1, #0 - adds r2, #0x4a - adds r0, r1, #0 - adds r0, #0x4c - ldrh r0, [r0] - ldrh r3, [r2] - adds r0, r0, r3 - strh r0, [r2] - movs r4, #0xa0 - lsls r4, r4, #1 - adds r0, r1, r4 - bl sub_080826D0 -_08082806: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808280C: .4byte gUnknown_2031F44 - thumb_func_end sub_08082744 - - thumb_func_start BerryBlender_SetBackgroundsPos -BerryBlender_SetBackgroundsPos: @ 0x08082810 - push {r4, r5, r6, lr} - ldr r4, _08082854 - ldr r0, [r4] - movs r6, #0x8e - lsls r6, r6, #1 - adds r0, r0, r6 - ldrh r1, [r0] - movs r0, #0x14 - bl SetGpuReg - ldr r0, [r4] - movs r5, #0x8f - lsls r5, r5, #1 - adds r0, r0, r5 - ldrh r1, [r0] - movs r0, #0x16 - bl SetGpuReg - ldr r0, [r4] - adds r0, r0, r6 - ldrh r1, [r0] - movs r0, #0x10 - bl SetGpuReg - ldr r0, [r4] - adds r0, r0, r5 - ldrh r1, [r0] - movs r0, #0x12 - bl SetGpuReg - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08082854: .4byte gUnknown_2031F44 - thumb_func_end BerryBlender_SetBackgroundsPos - - thumb_func_start sub_08082858 -sub_08082858: @ 0x08082858 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x2e] - ldrh r1, [r2, #0x32] - adds r0, r0, r1 - strh r0, [r2, #0x32] - ldrh r0, [r2, #0x30] - ldrh r1, [r2, #0x34] - adds r0, r0, r1 - strh r0, [r2, #0x34] - movs r1, #0x32 - ldrsh r0, [r2, r1] - cmp r0, #0 - bge _08082876 - adds r0, #7 -_08082876: - asrs r0, r0, #3 - strh r0, [r2, #0x24] - movs r1, #0x34 - ldrsh r0, [r2, r1] - cmp r0, #0 - bge _08082884 - adds r0, #7 -_08082884: - asrs r0, r0, #3 - strh r0, [r2, #0x26] - adds r0, r2, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0808289C - adds r0, r2, #0 - bl DestroySprite -_0808289C: - pop {r0} - bx r0 - thumb_func_end sub_08082858 - - thumb_func_start sub_080828A0 -sub_080828A0: @ 0x080828A0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - bl Random - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - movs r0, #1 - ands r1, r0 - adds r0, r1, #1 - cmp r0, #0 - beq _0808295C - ldr r0, _0808296C - mov sb, r0 - ldr r2, _08082970 - mov sl, r2 - adds r6, r1, #1 - movs r3, #0x1f - mov r8, r3 - movs r7, #0x10 -_080828CC: - bl Random - ldr r1, _08082974 - ldr r4, [r1] - adds r4, #0x4a - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x14 - bl __umodsi3 - ldrh r1, [r4] - adds r1, r1, r0 - lsls r1, r1, #0x10 - movs r0, #0xff - lsls r0, r0, #0x10 - ands r0, r1 - lsrs r2, r0, #0x10 - adds r0, r2, #0 - adds r0, #0x40 - lsls r0, r0, #1 - add r0, sb - movs r3, #0 - ldrsh r1, [r0, r3] - cmp r1, #0 - bge _08082900 - adds r1, #3 -_08082900: - asrs r1, r1, #2 - lsls r0, r2, #1 - add r0, sb - movs r2, #0 - ldrsh r0, [r0, r2] - cmp r0, #0 - bge _08082910 - adds r0, #3 -_08082910: - asrs r2, r0, #2 - adds r1, #0x78 - adds r2, #0x50 - ldr r0, _08082978 - movs r3, #1 - bl CreateSprite - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl Random - lsls r5, r4, #4 - adds r5, r5, r4 - lsls r5, r5, #2 - mov r3, sl - adds r4, r5, r3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r1, r8 - ands r0, r1 - subs r0, r7, r0 - strh r0, [r4, #0x2e] - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r2, r8 - ands r0, r2 - subs r0, r7, r0 - strh r0, [r4, #0x30] - ldr r3, _0808297C - adds r5, r5, r3 - ldr r0, _08082980 - str r0, [r5] - subs r6, #1 - cmp r6, #0 - bne _080828CC -_0808295C: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0808296C: .4byte gUnknown_82FA8CC -_08082970: .4byte gUnknown_20205AC -_08082974: .4byte gUnknown_2031F44 -_08082978: .4byte gUnknown_830FAD0 -_0808297C: .4byte gUnknown_20205C8 -_08082980: .4byte sub_08082858 - thumb_func_end sub_080828A0 - - thumb_func_start sub_08082984 -sub_08082984: @ 0x08082984 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r1, #3 - bl __divsi3 - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080829B0 - adds r0, r4, #0 - bl DestroySprite -_080829B0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08082984 - - thumb_func_start sub_080829B8 -sub_080829B8: @ 0x080829B8 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x2e] - adds r0, #1 - strh r0, [r2, #0x2e] - movs r1, #0x2e - ldrsh r0, [r2, r1] - lsls r0, r0, #1 - rsbs r0, r0, #0 - strh r0, [r2, #0x26] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0xc - rsbs r1, r1, #0 - cmp r0, r1 - bge _080829DC - ldr r0, _080829F4 - strh r0, [r2, #0x26] -_080829DC: - adds r0, r2, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080829F0 - adds r0, r2, #0 - bl DestroySprite -_080829F0: - pop {r0} - bx r0 - .align 2, 0 -_080829F4: .4byte 0x0000FFF4 - thumb_func_end sub_080829B8 - - thumb_func_start Blender_SetParticipantBerryData -Blender_SetParticipantBerryData: @ 0x080829F8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r2, _08082A28 - ldr r3, [r2] - lsls r4, r0, #1 - adds r2, r3, #0 - adds r2, #0x74 - adds r2, r2, r4 - strh r1, [r2] - lsls r0, r0, #4 - movs r2, #0xac - lsls r2, r2, #1 - adds r0, r0, r2 - adds r3, r3, r0 - adds r0, r3, #0 - bl Blender_CopyBerryData - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08082A28: .4byte gUnknown_2031F44 - thumb_func_end Blender_SetParticipantBerryData - - thumb_func_start sub_08082A2C -sub_08082A2C: @ 0x08082A2C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _08082A68 - cmp r0, #1 - bgt _08082A42 - cmp r0, #0 - beq _08082A48 - b _08082ACE -_08082A42: - cmp r0, #2 - beq _08082A82 - b _08082ACE -_08082A48: - ldrh r0, [r4, #0x30] - adds r0, #8 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x58 - ble _08082ACE - movs r0, #0x58 - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - movs r0, #0x38 - bl sub_080A306C - b _08082ACE -_08082A68: - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x14 - ble _08082ACE - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - movs r0, #0 - strh r0, [r4, #0x32] - b _08082ACE -_08082A82: - ldrh r0, [r4, #0x30] - adds r0, #4 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xb0 - ble _08082ACE - ldrh r0, [r4, #0x34] - adds r0, #1 - adds r1, r0, #0 - strh r0, [r4, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - bne _08082ABC - adds r0, r4, #0 - bl DestroySprite - ldr r0, _08082AB8 - movs r2, #0x14 - rsbs r2, r2, #0 - movs r1, #0x78 - movs r3, #2 - bl CreateSprite - b _08082ACE - .align 2, 0 -_08082AB8: .4byte gUnknown_830FB50 -_08082ABC: - movs r0, #0 - strh r0, [r4, #0x2e] - ldr r0, _08082AD8 - strh r0, [r4, #0x30] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim -_08082ACE: - ldrh r0, [r4, #0x30] - strh r0, [r4, #0x26] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08082AD8: .4byte 0x0000FFF0 - thumb_func_end sub_08082A2C - - thumb_func_start sub_08082ADC -sub_08082ADC: @ 0x08082ADC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _08082B18 - cmp r0, #1 - bgt _08082AF2 - cmp r0, #0 - beq _08082AF8 - b _08082B4C -_08082AF2: - cmp r0, #2 - beq _08082B2E - b _08082B4C -_08082AF8: - ldrh r0, [r4, #0x30] - adds r0, #8 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x5c - ble _08082B4C - movs r0, #0x5c - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - movs r0, #0x15 - bl sub_080A306C - b _08082B4C -_08082B18: - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x14 - ble _08082B4C - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - b _08082B4C -_08082B2E: - ldrh r0, [r4, #0x30] - adds r0, #4 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xb0 - ble _08082B4C - ldr r0, _08082B58 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl DestroySprite -_08082B4C: - ldrh r0, [r4, #0x30] - strh r0, [r4, #0x26] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08082B58: .4byte gUnknown_2031F44 - thumb_func_end sub_08082ADC - - thumb_func_start sub_08082B5C -sub_08082B5C: @ 0x08082B5C - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r3, r1, #0x10 - ldr r1, _08082B88 - ldr r1, [r1] - movs r2, #0x8c - lsls r2, r2, #1 - adds r1, r1, r2 - ldrh r2, [r1] - cmp r2, r0 - bhs _08082B82 - adds r0, r2, #2 - strh r0, [r1] - ldrh r0, [r1] - adds r1, r3, #0 - bl sub_08082B8C -_08082B82: - pop {r0} - bx r0 - .align 2, 0 -_08082B88: .4byte gUnknown_2031F44 - thumb_func_end sub_08082B5C - - thumb_func_start sub_08082B8C -sub_08082B8C: @ 0x08082B8C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r7, _08082C1C - lsrs r0, r0, #0xa - bl __divsi3 - adds r1, r0, #0 - cmp r1, #0 - bge _08082BA4 - adds r0, r1, #7 -_08082BA4: - asrs r4, r0, #3 - movs r3, #0 - cmp r3, r4 - bge _08082BCC - ldr r0, _08082C20 - adds r6, r0, #0 - adds r0, #0x10 - adds r5, r0, #0 - adds r2, r7, #0 - adds r2, #0x56 - adds r0, r7, #0 - adds r3, r4, #0 -_08082BBC: - strh r6, [r0, #0x16] - strh r5, [r2] - adds r2, #2 - adds r0, #2 - subs r3, #1 - cmp r3, #0 - bne _08082BBC - adds r3, r4, #0 -_08082BCC: - adds r0, r1, #0 - cmp r1, #0 - bge _08082BD4 - adds r0, r1, #7 -_08082BD4: - asrs r2, r0, #3 - lsls r0, r2, #3 - subs r2, r1, r0 - cmp r2, #0 - beq _08082BF2 - lsls r0, r3, #1 - adds r0, r0, r7 - ldr r4, _08082C24 - adds r1, r2, r4 - strh r1, [r0, #0x16] - adds r0, #0x56 - adds r4, #0x10 - adds r1, r2, r4 - strh r1, [r0] - adds r3, #1 -_08082BF2: - cmp r3, #7 - bgt _08082C16 - ldr r0, _08082C28 - adds r4, r0, #0 - adds r0, #0x10 - adds r2, r0, #0 - lsls r1, r3, #1 - adds r0, r1, #0 - adds r0, #0x56 - adds r0, r0, r7 - adds r1, r1, r7 -_08082C08: - strh r4, [r1, #0x16] - strh r2, [r0] - adds r0, #2 - adds r1, #2 - adds r3, #1 - cmp r3, #7 - ble _08082C08 -_08082C16: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08082C1C: .4byte 0x06006000 -_08082C20: .4byte 0x000080E9 -_08082C24: .4byte 0xFFFF80E1 -_08082C28: .4byte 0x000080E1 - thumb_func_end sub_08082B8C - - thumb_func_start sub_08082C2C -sub_08082C2C: @ 0x08082C2C - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _08082C44 - muls r0, r1, r0 - cmp r0, #0 - bge _08082C3E - ldr r1, _08082C48 - adds r0, r0, r1 -_08082C3E: - asrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 -_08082C44: .4byte 0x00057E40 -_08082C48: .4byte 0x0000FFFF - thumb_func_end sub_08082C2C - - thumb_func_start sub_08082C4C -sub_08082C4C: @ 0x08082C4C - push {r4, r5, r6, lr} - sub sp, #8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_08082C2C - adds r5, r0, #0 - ldr r0, _08082CCC - ldr r0, [r0] - adds r1, r0, #0 - adds r1, #0x4e - ldrh r0, [r1] - cmp r0, r5 - bhs _08082C6A - strh r5, [r1] -_08082C6A: - movs r6, #0 -_08082C6C: - mov r0, sp - adds r4, r0, r6 - adds r0, r5, #0 - movs r1, #0xa - bl __umodsi3 - strb r0, [r4] - adds r0, r5, #0 - movs r1, #0xa - bl __udivsi3 - adds r5, r0, #0 - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #4 - bls _08082C6C - ldr r2, _08082CD0 - mov r0, sp - ldr r3, _08082CD4 - adds r1, r3, #0 - ldrb r0, [r0, #4] - adds r0, r1, r0 - strh r0, [r2] - adds r2, #2 - mov r0, sp - ldrb r0, [r0, #3] - adds r0, r0, r1 - strh r0, [r2] - adds r2, #2 - mov r0, sp - ldrb r0, [r0, #2] - adds r0, r0, r1 - strh r0, [r2] - adds r2, #4 - mov r0, sp - ldrb r0, [r0, #1] - adds r0, r0, r1 - strh r0, [r2] - adds r2, #2 - mov r0, sp - ldrb r0, [r0] - adds r1, r1, r0 - strh r1, [r2] - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08082CCC: .4byte gUnknown_2031F44 -_08082CD0: .4byte 0x06006458 -_08082CD4: .4byte 0x00008072 - thumb_func_end sub_08082C4C - - thumb_func_start sub_08082CD8 -sub_08082CD8: @ 0x08082CD8 - push {r4, r5, r6, lr} - adds r6, r0, #0 - lsls r4, r1, #0x10 - lsrs r5, r4, #0x10 - movs r1, #0 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _08082CFC - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r5, #0 - bl __umodsi3 - lsrs r1, r4, #0x11 - subs r0, r0, r1 - strh r0, [r6] -_08082CFC: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08082CD8 - - thumb_func_start sub_08082D04 -sub_08082D04: @ 0x08082D04 - push {lr} - adds r1, r0, #0 - ldrh r2, [r1] - movs r3, #0 - ldrsh r0, [r1, r3] - cmp r0, #0 - bge _08082D16 - adds r0, r2, #1 - strh r0, [r1] -_08082D16: - ldrh r2, [r1] - movs r3, #0 - ldrsh r0, [r1, r3] - cmp r0, #0 - ble _08082D24 - subs r0, r2, #1 - strh r0, [r1] -_08082D24: - pop {r0} - bx r0 - thumb_func_end sub_08082D04 - - thumb_func_start sub_08082D28 -sub_08082D28: @ 0x08082D28 - push {r4, lr} - ldr r4, _08082D4C - ldr r0, [r4] - movs r1, #0x8e - lsls r1, r1, #1 - adds r0, r0, r1 - bl sub_08082D04 - ldr r0, [r4] - movs r1, #0x8f - lsls r1, r1, #1 - adds r0, r0, r1 - bl sub_08082D04 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08082D4C: .4byte gUnknown_2031F44 - thumb_func_end sub_08082D28 - - thumb_func_start sub_08082D50 -sub_08082D50: @ 0x08082D50 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r5, #8 - cmp r1, #9 - bhi _08082D60 - movs r5, #0x10 -_08082D60: - ldrh r0, [r4] - movs r2, #0 - ldrsh r1, [r4, r2] - cmp r1, #0 - bne _08082D7E - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r5, #0 - bl __modsi3 - lsrs r1, r5, #1 - subs r0, r0, r1 - b _08082D92 -_08082D7E: - cmp r1, #0 - bge _08082D86 - adds r0, #1 - strh r0, [r4] -_08082D86: - ldrh r1, [r4] - movs r2, #0 - ldrsh r0, [r4, r2] - cmp r0, #0 - ble _08082D94 - subs r0, r1, #1 -_08082D92: - strh r0, [r4] -_08082D94: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08082D50 - - thumb_func_start sub_08082D9C -sub_08082D9C: @ 0x08082D9C - push {r4, r5, lr} - ldr r5, _08082DF4 - ldr r2, [r5] - movs r4, #0x84 - lsls r4, r4, #1 - adds r0, r2, r4 - ldr r1, [r0] - cmp r1, #0 - bne _08082DBC - movs r3, #0x8e - lsls r3, r3, #1 - adds r0, r2, r3 - strh r1, [r0] - adds r3, #2 - adds r0, r2, r3 - strh r1, [r0] -_08082DBC: - ldr r0, [r5] - adds r2, r0, r4 - ldr r1, [r2] - adds r1, #1 - str r1, [r2] - movs r2, #0x8e - lsls r2, r2, #1 - adds r0, r0, r2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl sub_08082D50 - ldr r1, [r5] - movs r3, #0x8f - lsls r3, r3, #1 - adds r0, r1, r3 - adds r1, r1, r4 - ldrh r1, [r1] - bl sub_08082D50 - ldr r2, [r5] - adds r0, r2, r4 - ldr r0, [r0] - cmp r0, #0x14 - beq _08082DF8 - movs r0, #0 - b _08082E0C - .align 2, 0 -_08082DF4: .4byte gUnknown_2031F44 -_08082DF8: - movs r1, #0x8e - lsls r1, r1, #1 - adds r0, r2, r1 - movs r1, #0 - strh r1, [r0] - movs r3, #0x8f - lsls r3, r3, #1 - adds r0, r2, r3 - strh r1, [r0] - movs r0, #1 -_08082E0C: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08082D9C - - thumb_func_start sub_08082E14 -sub_08082E14: @ 0x08082E14 - ldr r1, _08082E30 - ldr r2, [r1] - movs r3, #0x8e - lsls r3, r3, #1 - adds r1, r2, r3 - ldrh r1, [r1] - rsbs r1, r1, #0 - strh r1, [r0, #0x24] - adds r3, #2 - adds r1, r2, r3 - ldrh r1, [r1] - rsbs r1, r1, #0 - strh r1, [r0, #0x26] - bx lr - .align 2, 0 -_08082E30: .4byte gUnknown_2031F44 - thumb_func_end sub_08082E14 - - thumb_func_start TryUpdateBerryBlenderRecord -TryUpdateBerryBlenderRecord: @ 0x08082E34 - push {lr} - ldr r0, _08082E60 - ldr r2, [r0] - ldr r0, _08082E64 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0x7c - ldrb r0, [r0] - subs r0, #2 - lsls r0, r0, #1 - ldr r3, _08082E68 - adds r2, r2, r3 - adds r2, r2, r0 - adds r1, #0x4e - ldrh r1, [r1] - ldrh r0, [r2] - cmp r0, r1 - bhs _08082E5A - strh r1, [r2] -_08082E5A: - pop {r0} - bx r0 - .align 2, 0 -_08082E60: .4byte gUnknown_3005AEC -_08082E64: .4byte gUnknown_2031F44 -_08082E68: .4byte 0x000009BC - thumb_func_end TryUpdateBerryBlenderRecord - - thumb_func_start sub_08082E6C -sub_08082E6C: @ 0x08082E6C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x4c - ldr r1, _08082E90 - ldr r0, [r1] - ldrb r0, [r0] - adds r4, r1, #0 - cmp r0, #6 - bls _08082E86 - b _0808328C -_08082E86: - lsls r0, r0, #2 - ldr r1, _08082E94 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08082E90: .4byte gUnknown_2031F44 -_08082E94: .4byte _08082E98 -_08082E98: @ jump table - .4byte _08082EB4 @ case 0 - .4byte _08082ECA @ case 1 - .4byte _08082EE4 @ case 2 - .4byte _08082F34 @ case 3 - .4byte _08083184 @ case 4 - .4byte _0808319C @ case 5 - .4byte _08083260 @ case 6 -_08082EB4: - ldr r1, [r4] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r0, [r4] - movs r1, #0x84 - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #0x11 - str r1, [r0] - b _0808328C -_08082ECA: - ldr r1, [r4] - movs r3, #0x84 - lsls r3, r3, #1 - adds r2, r1, r3 - ldr r0, [r2] - subs r0, #0xa - str r0, [r2] - cmp r0, #0 - blt _08082EDE - b _0808328C -_08082EDE: - movs r0, #0 - str r0, [r2] - b _08083248 -_08082EE4: - ldr r1, [r4] - movs r0, #0x84 - lsls r0, r0, #1 - adds r1, r1, r0 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - cmp r0, #0x14 - bgt _08082EF8 - b _0808328C -_08082EF8: - movs r6, #0 -_08082EFA: - ldr r4, _08082F2C - ldr r0, [r4] - adds r0, #0x46 - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08082F30 - adds r0, r0, r1 - bl DestroySprite - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #2 - bls _08082EFA - ldr r1, [r4] - movs r3, #0x84 - lsls r3, r3, #1 - adds r2, r1, r3 - movs r0, #0 - str r0, [r2] - b _08083248 - .align 2, 0 -_08082F2C: .4byte gUnknown_2031F44 -_08082F30: .4byte gUnknown_20205AC -_08082F34: - ldr r1, _08083154 - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - movs r0, #5 - movs r2, #0x38 - movs r3, #1 - bl Blender_AddTextPrinter - movs r6, #0 - ldr r1, _08083158 - ldr r0, [r1] - adds r0, #0x7c - mov r2, sp - adds r2, #0x10 - str r2, [sp, #0x48] - ldrb r0, [r0] - cmp r6, r0 - bhs _0808302A - adds r7, r1, #0 - ldr r3, _0808315C - mov sl, r3 - mov sb, r6 - movs r0, #3 - mov r8, r0 -_08082F66: - ldr r0, [r7] - movs r2, #0x9e - lsls r2, r2, #1 - adds r1, r0, r2 - adds r1, r1, r6 - ldrb r4, [r1] - adds r0, #0x9f - adds r5, r6, #1 - adds r1, r5, #0 - movs r2, #0 - movs r3, #1 - bl sub_080089D8 - ldr r0, [r7] - adds r0, #0x9f - ldr r1, _08083160 - bl StringAppend - ldr r0, [r7] - adds r0, #0x9f - lsls r1, r4, #3 - subs r1, r1, r4 - lsls r1, r1, #2 - ldr r2, _08083164 - adds r1, r1, r2 - bl StringAppend - ldr r0, [r7] - adds r1, r0, #0 - adds r1, #0x9f - adds r0, #0x7c - ldrb r0, [r0] - ldr r3, _08083168 - adds r2, r0, r3 - add r0, sl - ldrb r0, [r0] - adds r3, r6, #0 - muls r3, r0, r3 - ldrb r2, [r2] - adds r3, r3, r2 - subs r3, #3 - lsls r3, r3, #0x1b - lsrs r3, r3, #0x18 - mov r0, sb - str r0, [sp] - mov r2, r8 - str r2, [sp, #4] - movs r0, #5 - movs r2, #0x10 - bl Blender_AddTextPrinter - ldr r1, [r7] - adds r0, r1, #0 - adds r0, #0x9f - lsls r4, r4, #4 - adds r4, r4, r1 - movs r3, #0xad - lsls r3, r3, #1 - adds r4, r4, r3 - adds r1, r4, #0 - bl StringCopy - ldr r0, [r7] - adds r0, #0x9f - ldr r1, _0808316C - bl StringAppend - ldr r0, [r7] - adds r1, r0, #0 - adds r1, #0x9f - adds r0, #0x7c - ldrb r0, [r0] - ldr r3, _08083168 - adds r2, r0, r3 - add r0, sl - ldrb r0, [r0] - adds r3, r6, #0 - muls r3, r0, r3 - ldrb r2, [r2] - adds r3, r3, r2 - subs r3, #3 - lsls r3, r3, #0x1b - lsrs r3, r3, #0x18 - mov r0, sb - str r0, [sp] - mov r2, r8 - str r2, [sp, #4] - movs r0, #5 - movs r2, #0x60 - bl Blender_AddTextPrinter - lsls r5, r5, #0x10 - lsrs r6, r5, #0x10 - ldr r0, [r7] - adds r0, #0x7c - ldrb r0, [r0] - cmp r6, r0 - blo _08082F66 -_0808302A: - ldr r1, _08083170 - movs r3, #0 - mov sb, r3 - str r3, [sp] - movs r0, #3 - mov sl, r0 - str r0, [sp, #4] - movs r0, #5 - movs r2, #8 - movs r3, #0x50 - bl Blender_AddTextPrinter - ldr r6, _08083158 - ldr r0, [r6] - adds r4, r0, #0 - adds r4, #0x9f - adds r0, #0x4e - ldrh r0, [r0] - movs r1, #0x64 - bl __udivsi3 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - ldr r0, [r6] - adds r0, #0x9f - ldr r1, _08083160 - bl StringAppend - ldr r0, [r6] - adds r0, #0x4e - ldrh r0, [r0] - movs r1, #0x64 - bl __umodsi3 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, [sp, #0x48] - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - ldr r0, [r6] - adds r0, #0x9f - ldr r1, [sp, #0x48] - bl StringAppend - ldr r0, [r6] - adds r0, #0x9f - ldr r1, _08083174 - bl StringAppend - ldr r1, [r6] - adds r1, #0x9f - mov r2, sb - str r2, [sp] - mov r3, sl - str r3, [sp, #4] - movs r0, #5 - movs r2, #0x48 - movs r3, #0x50 - bl Blender_AddTextPrinter - ldr r1, _08083178 - mov r0, sb - str r0, [sp] - mov r2, sl - str r2, [sp, #4] - movs r0, #5 - movs r2, #8 - movs r3, #0x60 - bl Blender_AddTextPrinter - ldr r5, [r6] - movs r3, #0x82 - lsls r3, r3, #1 - adds r0, r5, r3 - ldr r0, [r0] - mov r8, r0 - movs r1, #0x3c - bl __udivsi3 - movs r1, #0x3c - bl __umodsi3 - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - movs r1, #0xe1 - lsls r1, r1, #4 - mov r0, r8 - bl __udivsi3 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r5, #0x9f - adds r0, r5, #0 - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - ldr r0, [r6] - adds r0, #0x9f - ldr r1, _0808317C - bl StringAppend - adds r1, r4, #0 - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - ldr r0, [r6] - adds r0, #0x9f - ldr r1, _08083180 - bl StringAppend - ldr r1, [r6] - adds r1, #0x9f - mov r0, sb - str r0, [sp] - mov r2, sl - str r2, [sp, #4] - movs r0, #5 - movs r2, #0x48 - movs r3, #0x60 - bl Blender_AddTextPrinter - ldr r1, [r6] - movs r3, #0x84 - lsls r3, r3, #1 - adds r0, r1, r3 - mov r2, sb - str r2, [r0] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #5 - movs r1, #2 - bl CopyWindowToVram - b _0808328C - .align 2, 0 -_08083154: .4byte gUnknown_830F81F -_08083158: .4byte gUnknown_2031F44 -_0808315C: .4byte gUnknown_830FC2E -_08083160: .4byte gUnknown_830F847 -_08083164: .4byte gUnknown_20226A8 -_08083168: .4byte gUnknown_830FC29 -_0808316C: .4byte gUnknown_830F82D -_08083170: .4byte gUnknown_830F83B -_08083174: .4byte gUnknown_830F843 -_08083178: .4byte gUnknown_830F830 -_0808317C: .4byte gUnknown_830F834 -_08083180: .4byte gUnknown_830F837 -_08083184: - ldr r0, _08083198 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08083192 - b _0808328C -_08083192: - ldr r1, [r4] - b _08083248 - .align 2, 0 -_08083198: .4byte gUnknown_3002360 -_0808319C: - movs r0, #5 - movs r1, #1 - bl sub_08198134 - movs r6, #0 - add r7, sp, #0x40 - ldr r5, _08083250 -_080831AA: - ldr r0, [r5] - lsls r2, r6, #1 - adds r0, #0x74 - adds r0, r0, r2 - ldrh r1, [r0] - cmp r1, #0 - beq _080831C0 - add r0, sp, #0x38 - adds r0, r0, r2 - subs r1, #0x85 - strh r1, [r0] -_080831C0: - ldr r0, [r5] - adds r0, #0x8e - adds r0, r0, r2 - ldrh r0, [r0] - cmp r0, #0xff - beq _080831DE - lsls r4, r6, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl PutWindowTilemap - adds r0, r4, #0 - movs r1, #3 - bl CopyWindowToVram -_080831DE: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #3 - bls _080831AA - bl sub_0808183C - ldr r4, _08083250 - ldr r3, [r4] - movs r1, #0xac - lsls r1, r1, #1 - adds r0, r3, r1 - adds r1, r3, #0 - adds r1, #0x7c - ldrb r2, [r1] - subs r1, #0x2e - ldrh r1, [r1] - str r1, [sp] - adds r1, r7, #0 - add r3, sp, #8 - bl Blender_CalculatePokeblock - ldr r1, [r4] - adds r1, #0x9f - adds r0, r7, #0 - bl Blender_PrintMadePokeblockString - ldr r1, [r4] - movs r2, #0xd4 - lsls r2, r2, #1 - adds r1, r1, r2 - adds r0, r7, #0 - bl TryAddContestLinkTvShow - ldr r0, _08083254 - movs r1, #6 - bl CreateTask - bl sub_080EF7F0 - ldr r0, _08083258 - ldrh r0, [r0] - movs r1, #1 - bl RemoveBagItem - adds r0, r7, #0 - bl AddPokeblock - ldr r1, [r4] - ldr r3, _0808325C - adds r2, r1, r3 - movs r0, #0 - strh r0, [r2] -_08083248: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0808328C - .align 2, 0 -_08083250: .4byte gUnknown_2031F44 -_08083254: .4byte sub_080838C4 -_08083258: .4byte gUnknown_203CB48 -_0808325C: .4byte 0x000011B4 -_08083260: - ldr r4, [r4] - ldr r0, _08083288 - adds r5, r4, r0 - adds r4, #0x9f - bl GetPlayerTextSpeedDelay - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r5, #0 - adds r1, r4, #0 - bl Blender_PrintText - cmp r0, #0 - beq _0808328C - bl TryUpdateBerryBlenderRecord - movs r0, #1 - b _0808328E - .align 2, 0 -_08083288: .4byte 0x000011B4 -_0808328C: - movs r0, #0 -_0808328E: - add sp, #0x4c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08082E6C - - thumb_func_start Blender_PrintMadePokeblockString -Blender_PrintMadePokeblockString: @ 0x080832A0 - push {r4, r5, r6, lr} - sub sp, #0xc - adds r5, r0, #0 - adds r6, r1, #0 - movs r0, #0xff - strb r0, [r6] - ldr r1, _08083334 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r6, #0 - bl StringCopy - ldr r1, _08083338 - adds r0, r6, #0 - bl StringAppend - ldr r1, _0808333C - adds r0, r6, #0 - bl StringAppend - adds r0, r5, #0 - bl GetHighestPokeblocksFlavorLevel - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - bl GetPokeblocksFeel - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r1, _08083340 - adds r0, r6, #0 - bl StringAppend - mov r0, sp - adds r1, r4, #0 - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - adds r0, r6, #0 - mov r1, sp - bl StringAppend - ldr r1, _08083344 - adds r0, r6, #0 - bl StringAppend - mov r0, sp - adds r1, r5, #0 - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - adds r0, r6, #0 - mov r1, sp - bl StringAppend - ldr r1, _08083348 - adds r0, r6, #0 - bl StringAppend - ldr r1, _0808334C - adds r0, r6, #0 - bl StringAppend - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08083334: .4byte gUnknown_8592078 -_08083338: .4byte gUnknown_830F6FD -_0808333C: .4byte gUnknown_830F849 -_08083340: .4byte gUnknown_830F853 -_08083344: .4byte gUnknown_830F857 -_08083348: .4byte gUnknown_830F860 -_0808334C: .4byte gUnknown_830F6FB - thumb_func_end Blender_PrintMadePokeblockString - - thumb_func_start Blender_SortBasedOnPoints -Blender_SortBasedOnPoints: @ 0x08083350 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov sb, r0 - mov ip, r2 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - movs r0, #0 - cmp r0, r7 - bge _0808339C -_08083366: - movs r5, #0 - adds r1, r0, #1 - mov r8, r1 - cmp r5, r7 - bge _08083396 - mov r1, sb - adds r6, r1, r0 -_08083374: - ldrb r4, [r6] - lsls r1, r4, #2 - add r1, ip - mov r0, sb - adds r2, r0, r5 - ldrb r3, [r2] - lsls r0, r3, #2 - add r0, ip - ldr r1, [r1] - ldr r0, [r0] - cmp r1, r0 - bls _08083390 - strb r3, [r6] - strb r4, [r2] -_08083390: - adds r5, #1 - cmp r5, r7 - blt _08083374 -_08083396: - mov r0, r8 - cmp r0, r7 - blt _08083366 -_0808339C: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end Blender_SortBasedOnPoints - - thumb_func_start Blender_SortScores -Blender_SortScores: @ 0x080833A8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - movs r5, #0 - ldr r2, _080833C4 - ldr r0, [r2] - adds r0, #0x7c - adds r1, r2, #0 - add r3, sp, #4 - mov sl, r3 - b _080833D8 - .align 2, 0 -_080833C4: .4byte gUnknown_2031F44 -_080833C8: - mov r4, sp - adds r0, r4, r5 - strb r5, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, [r2] - adds r0, #0x7c -_080833D8: - ldrb r0, [r0] - cmp r5, r0 - blo _080833C8 - movs r5, #0 - ldr r0, [r1] - adds r1, r0, #0 - adds r1, #0x7c - ldrb r2, [r1] - cmp r5, r2 - bhs _08083452 - mov sb, sl - movs r3, #0x92 - lsls r3, r3, #1 - adds r3, r3, r0 - mov r8, r3 - mov ip, r1 - movs r4, #0x93 - lsls r4, r4, #1 - adds r7, r0, r4 - movs r1, #0x94 - lsls r1, r1, #1 - adds r6, r0, r1 -_08083404: - lsls r4, r5, #2 - add r4, sb - lsls r3, r5, #1 - adds r3, r3, r5 - lsls r3, r3, #1 - mov r2, r8 - adds r0, r2, r3 - ldrh r2, [r0] - lsls r0, r2, #5 - subs r0, r0, r2 - lsls r1, r0, #6 - subs r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - lsls r1, r1, #6 - str r1, [r4] - adds r0, r7, r3 - ldrh r2, [r0] - lsls r0, r2, #5 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r1, r1, r0 - str r1, [r4] - movs r0, #0xfa - lsls r0, r0, #2 - adds r1, r1, r0 - adds r3, r6, r3 - ldrh r0, [r3] - subs r1, r1, r0 - str r1, [r4] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - mov r1, ip - ldrb r1, [r1] - cmp r5, r1 - blo _08083404 -_08083452: - ldr r4, _080834A0 - ldr r0, [r4] - adds r0, #0x7c - ldrb r1, [r0] - mov r0, sp - mov r2, sl - bl Blender_SortBasedOnPoints - movs r5, #0 - ldr r0, [r4] - adds r0, #0x7c - ldrb r0, [r0] - cmp r5, r0 - bhs _08083492 - adds r2, r4, #0 - movs r3, #0x9e - lsls r3, r3, #1 -_08083474: - ldr r1, [r2] - adds r1, r1, r3 - adds r1, r1, r5 - mov r4, sp - adds r0, r4, r5 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, [r2] - adds r0, #0x7c - ldrb r0, [r0] - cmp r5, r0 - blo _08083474 -_08083492: - ldr r0, _080834A4 - ldrb r0, [r0] - cmp r0, #0 - bne _080834A8 - movs r3, #0 - b _080834B0 - .align 2, 0 -_080834A0: .4byte gUnknown_2031F44 -_080834A4: .4byte gUnknown_30031C4 -_080834A8: - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 -_080834B0: - movs r5, #0 - ldr r1, _080834F8 - ldr r0, [r1] - adds r0, #0x7c - ldrb r0, [r0] - cmp r5, r0 - bhs _080834E6 - movs r6, #0x9e - lsls r6, r6, #1 - movs r4, #0xd2 - lsls r4, r4, #1 -_080834C6: - ldr r2, [r1] - adds r0, r2, r6 - adds r0, r0, r5 - ldrb r0, [r0] - cmp r0, r3 - bne _080834D6 - adds r0, r2, r4 - strb r5, [r0] -_080834D6: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, [r1] - adds r0, #0x7c - ldrb r0, [r0] - cmp r5, r0 - blo _080834C6 -_080834E6: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080834F8: .4byte gUnknown_2031F44 - thumb_func_end Blender_SortScores - - thumb_func_start sub_080834FC -sub_080834FC: @ 0x080834FC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #8 - ldr r1, _08083520 - ldr r0, [r1] - ldrb r0, [r0] - adds r2, r1, #0 - cmp r0, #6 - bls _08083514 - b _080837B6 -_08083514: - lsls r0, r0, #2 - ldr r1, _08083524 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08083520: .4byte gUnknown_2031F44 -_08083524: .4byte _08083528 -_08083528: @ jump table - .4byte _08083544 @ case 0 - .4byte _0808355A @ case 1 - .4byte _08083574 @ case 2 - .4byte _0808358E @ case 3 - .4byte _0808376C @ case 4 - .4byte _08083786 @ case 5 - .4byte _080837AC @ case 6 -_08083544: - ldr r1, [r2] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r0, [r2] - movs r1, #0x84 - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #0xff - str r1, [r0] - b _080837B6 -_0808355A: - ldr r1, [r2] - movs r3, #0x84 - lsls r3, r3, #1 - adds r2, r1, r3 - ldr r0, [r2] - subs r0, #0xa - str r0, [r2] - cmp r0, #0 - blt _0808356E - b _080837B6 -_0808356E: - movs r0, #0 - str r0, [r2] - b _0808379C -_08083574: - ldr r1, [r2] - movs r0, #0x84 - lsls r0, r0, #1 - adds r2, r1, r0 - ldr r0, [r2] - adds r0, #1 - str r0, [r2] - cmp r0, #0x14 - bgt _08083588 - b _080837B6 -_08083588: - movs r0, #0 - str r0, [r2] - b _0808379C -_0808358E: - movs r0, #5 - movs r1, #0 - movs r2, #1 - movs r3, #0xd - bl DrawStdFrameWithCustomTileAndPalette - ldr r1, _0808374C - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - movs r0, #5 - movs r2, #0x40 - movs r3, #0 - bl Blender_AddTextPrinter - ldr r1, _08083750 - mov r8, r1 - mov r0, r8 - movs r1, #0x80 - movs r2, #0x34 - movs r3, #0 - bl CreateSprite - ldr r7, _08083754 - ldr r1, [r7] - adds r1, #0x46 - strb r0, [r1] - ldr r0, [r7] - adds r0, #0x46 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r6, _08083758 - adds r0, r0, r6 - movs r1, #3 - bl StartSpriteAnim - ldr r0, [r7] - adds r0, #0x46 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r5, r6, #0 - adds r5, #0x1c - adds r0, r0, r5 - ldr r4, _0808375C - str r4, [r0] - mov r0, r8 - movs r1, #0xa0 - movs r2, #0x34 - movs r3, #0 - bl CreateSprite - ldr r1, [r7] - adds r1, #0x47 - strb r0, [r1] - ldr r0, [r7] - adds r0, #0x47 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - str r4, [r0] - mov r0, r8 - movs r1, #0xc0 - movs r2, #0x34 - movs r3, #0 - bl CreateSprite - ldr r1, [r7] - adds r1, #0x48 - strb r0, [r1] - ldr r0, [r7] - adds r0, #0x48 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #1 - bl StartSpriteAnim - ldr r0, [r7] - adds r0, #0x48 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - str r4, [r0] - bl Blender_SortScores - movs r2, #0 - mov r8, r2 - ldr r0, [r7] - adds r0, #0x7c - ldrb r0, [r0] - cmp r8, r0 - bhs _0808372C - ldr r3, _08083760 - mov sb, r3 -_0808365E: - ldr r0, [r7] - movs r2, #0x9e - lsls r2, r2, #1 - adds r1, r0, r2 - add r1, r8 - ldrb r4, [r1] - adds r0, #0x9f - mov r5, r8 - adds r5, #1 - adds r1, r5, #0 - movs r2, #0 - movs r3, #1 - bl sub_080089D8 - ldr r0, [r7] - adds r0, #0x9f - ldr r1, _08083764 - bl StringAppend - ldr r0, [r7] - adds r0, #0x9f - lsls r1, r4, #3 - subs r1, r1, r4 - lsls r1, r1, #2 - ldr r2, _08083768 - adds r1, r1, r2 - bl StringAppend - ldr r0, [r7] - adds r1, r0, #0 - adds r1, #0x9f - adds r0, #0x7c - ldrb r0, [r0] - add r0, sb - ldrb r0, [r0] - mov r3, r8 - muls r3, r0, r3 - adds r3, #5 - lsls r3, r3, #0x1b - lsrs r3, r3, #0x18 - movs r0, #0 - str r0, [sp] - movs r0, #3 - str r0, [sp, #4] - movs r0, #5 - movs r2, #0 - bl Blender_AddTextPrinter - movs r6, #0 - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r4, r0, #1 -_080836C6: - ldr r1, [r7] - adds r0, r1, #0 - adds r0, #0x9f - lsls r2, r6, #1 - adds r2, r2, r4 - movs r3, #0x92 - lsls r3, r3, #1 - adds r1, r1, r3 - adds r1, r1, r2 - ldrh r1, [r1] - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - ldr r0, [r7] - adds r1, r0, #0 - adds r1, #0x9f - lsls r2, r6, #0x1d - movs r3, #0x90 - lsls r3, r3, #0x17 - adds r2, r2, r3 - lsrs r2, r2, #0x18 - adds r0, #0x7c - ldrb r0, [r0] - add r0, sb - ldrb r0, [r0] - mov r3, r8 - muls r3, r0, r3 - adds r3, #5 - lsls r3, r3, #0x1b - lsrs r3, r3, #0x18 - movs r0, #0 - str r0, [sp] - movs r0, #3 - str r0, [sp, #4] - movs r0, #5 - bl Blender_AddTextPrinter - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #2 - bls _080836C6 - lsls r0, r5, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - ldr r0, [r7] - adds r0, #0x7c - ldrb r0, [r0] - cmp r8, r0 - blo _0808365E -_0808372C: - movs r0, #5 - bl PutWindowTilemap - movs r0, #5 - movs r1, #3 - bl CopyWindowToVram - ldr r0, _08083754 - ldr r1, [r0] - movs r0, #0x84 - lsls r0, r0, #1 - adds r2, r1, r0 - movs r0, #0 - str r0, [r2] - b _0808379C - .align 2, 0 -_0808374C: .4byte gUnknown_830F84D -_08083750: .4byte gUnknown_830FA30 -_08083754: .4byte gUnknown_2031F44 -_08083758: .4byte gUnknown_20205AC -_0808375C: .4byte sub_08007140 -_08083760: .4byte gUnknown_830FC33 -_08083764: .4byte gUnknown_830F847 -_08083768: .4byte gUnknown_20226A8 -_0808376C: - ldr r2, [r2] - movs r3, #0x84 - lsls r3, r3, #1 - adds r1, r2, r3 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - cmp r0, #0x14 - ble _080837B6 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - b _080837B6 -_08083786: - ldr r0, _080837A4 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080837B6 - movs r0, #5 - bl sub_080A306C - ldr r0, _080837A8 - ldr r1, [r0] -_0808379C: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080837B6 - .align 2, 0 -_080837A4: .4byte gUnknown_3002360 -_080837A8: .4byte gUnknown_2031F44 -_080837AC: - ldr r1, [r2] - movs r0, #0 - strb r0, [r1] - movs r0, #1 - b _080837B8 -_080837B6: - movs r0, #0 -_080837B8: - add sp, #8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080834FC - - thumb_func_start sub_080837C8 -sub_080837C8: @ 0x080837C8 - push {r4, r5, r6, r7, lr} - sub sp, #0x34 - ldr r0, _080838A4 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [sp, #0x2c] - str r1, [sp, #0x30] - ldr r5, _080838A8 - add r0, sp, #0x2c - bl AddWindow - strb r0, [r5] - ldrb r0, [r5] - movs r1, #0 - bl sub_08196FF0 - ldrb r0, [r5] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldrb r0, [r5] - ldr r2, _080838AC - movs r1, #2 - str r1, [sp] - movs r4, #0 - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #8 - bl AddTextPrinterParameterized - ldrb r0, [r5] - ldr r2, _080838B0 - movs r1, #0x2a - str r1, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #8 - bl AddTextPrinterParameterized - movs r6, #0 - movs r7, #0xa8 - lsls r7, r7, #0x16 -_08083820: - ldr r0, _080838B4 - ldr r0, [r0] - lsls r1, r6, #1 - ldr r2, _080838B8 - adds r0, r0, r2 - adds r0, r0, r1 - ldrh r4, [r0] - adds r0, r4, #0 - movs r1, #0x64 - bl __udivsi3 - adds r1, r0, #0 - add r0, sp, #0xc - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - adds r5, r0, #0 - ldr r1, _080838BC - bl StringAppend - adds r5, r0, #0 - adds r0, r4, #0 - movs r1, #0x64 - bl __umodsi3 - adds r1, r0, #0 - adds r0, r5, #0 - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - adds r5, r0, #0 - ldr r1, _080838C0 - bl StringAppend - ldr r4, _080838A8 - ldrb r0, [r4] - lsrs r1, r7, #0x18 - str r1, [sp] - movs r1, #0 - str r1, [sp, #4] - str r1, [sp, #8] - movs r1, #1 - add r2, sp, #0xc - movs r3, #0x30 - bl AddTextPrinterParameterized - movs r0, #0x80 - lsls r0, r0, #0x15 - adds r7, r7, r0 - adds r6, #1 - cmp r6, #2 - ble _08083820 - ldrb r0, [r4] - bl PutWindowTilemap - ldrb r0, [r4] - movs r1, #3 - bl CopyWindowToVram - add sp, #0x34 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080838A4: .4byte gUnknown_830FC60 -_080838A8: .4byte gUnknown_203A840 -_080838AC: .4byte gUnknown_830FC38 -_080838B0: .4byte gUnknown_830FC50 -_080838B4: .4byte gUnknown_3005AEC -_080838B8: .4byte 0x000009BC -_080838BC: .4byte gUnknown_830F847 -_080838C0: .4byte gUnknown_830F843 - thumb_func_end sub_080837C8 - - thumb_func_start sub_080838C4 -sub_080838C4: @ 0x080838C4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - ldr r1, _08083910 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080838EA - ldr r0, _08083914 - bl PlayFanfare - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080838EA: - bl IsFanfareTaskInactive - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808390A - ldr r0, _08083918 - ldr r0, [r0] - movs r1, #0xaa - lsls r1, r1, #1 - adds r0, r0, r1 - ldrh r0, [r0] - bl PlayBGM - adds r0, r5, #0 - bl DestroyTask -_0808390A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08083910: .4byte gUnknown_3005B60 -_08083914: .4byte 0x0000016F -_08083918: .4byte gUnknown_2031F44 - thumb_func_end sub_080838C4 - - thumb_func_start TryAddContestLinkTvShow -TryAddContestLinkTvShow: @ 0x0808391C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - adds r6, r0, #0 - adds r7, r1, #0 - bl GetHighestPokeblocksFlavorLevel - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r6, #0 - bl GetPokeblocksFeel - adds r1, r0, #0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #1 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - strb r3, [r7, #0xa] - ldrb r0, [r6] - strb r0, [r7, #9] - movs r0, #0xff - strb r0, [r7] - ldr r0, _080839D4 - ldrb r0, [r0] - cmp r0, #0 - beq _08083A4C - ldr r0, _080839D8 - ldr r2, [r0] - movs r4, #0xd2 - lsls r4, r4, #1 - adds r1, r2, r4 - ldrb r1, [r1] - mov r8, r0 - cmp r1, #0 - bne _080839E0 - cmp r3, #0x14 - bls _080839E0 - adds r0, r2, #0 - adds r0, #0x7c - ldrb r1, [r0] - subs r1, #1 - movs r0, #0x9e - lsls r0, r0, #1 - mov sb, r0 - adds r0, r2, r0 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - ldr r5, _080839DC - adds r1, r1, r5 - adds r0, r7, #0 - bl StringCopy - adds r0, r6, #0 - bl GetPokeblocksFlavor - strb r0, [r7, #8] - ldrb r1, [r7, #8] - ldrb r2, [r7, #9] - ldrb r3, [r7, #0xa] - mov r6, r8 - ldr r4, [r6] - adds r0, r4, #0 - adds r0, #0x7c - ldrb r0, [r0] - subs r0, #1 - add r4, sb - adds r4, r4, r0 - ldrb r4, [r4] - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - adds r5, r5, r0 - ldrb r0, [r5, #0x12] - str r0, [sp] - adds r0, r7, #0 - bl Put3CheersForPokeblocksOnTheAir - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08083A42 - b _08083A4C - .align 2, 0 -_080839D4: .4byte gUnknown_30031C4 -_080839D8: .4byte gUnknown_2031F44 -_080839DC: .4byte gUnknown_20226A8 -_080839E0: - mov r0, r8 - ldr r2, [r0] - movs r1, #0xd2 - lsls r1, r1, #1 - adds r0, r2, r1 - ldrb r1, [r0] - adds r0, r2, #0 - adds r0, #0x7c - ldrb r0, [r0] - subs r0, #1 - cmp r1, r0 - bne _08083A4C - cmp r3, #0x14 - bhi _08083A4C - movs r4, #0x9e - lsls r4, r4, #1 - adds r0, r2, r4 - ldrb r0, [r0] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - ldr r5, _08083A48 - adds r1, r1, r5 - adds r0, r7, #0 - bl StringCopy - adds r0, r6, #0 - bl GetPokeblocksFlavor - strb r0, [r7, #8] - ldrb r1, [r7, #8] - ldrb r2, [r7, #9] - ldrb r3, [r7, #0xa] - mov r6, r8 - ldr r0, [r6] - adds r0, r0, r4 - ldrb r4, [r0] - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - adds r5, r5, r0 - ldrb r0, [r5, #0x12] - str r0, [sp] - adds r0, r7, #0 - bl Put3CheersForPokeblocksOnTheAir - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08083A4C -_08083A42: - movs r0, #1 - b _08083A4E - .align 2, 0 -_08083A48: .4byte gUnknown_20226A8 -_08083A4C: - movs r0, #0 -_08083A4E: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end TryAddContestLinkTvShow - - thumb_func_start Blender_AddTextPrinter -Blender_AddTextPrinter: @ 0x08083A5C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x18 - mov sb, r1 - ldr r4, [sp, #0x38] - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r8, r2 - lsls r3, r3, #0x18 - lsrs r7, r3, #0x18 - movs r5, #0 - cmp r4, #1 - beq _08083A9E - cmp r4, #1 - bgt _08083A88 - cmp r4, #0 - beq _08083A90 - b _08083ABA -_08083A88: - cmp r4, #2 - beq _08083AAC - cmp r4, #3 - bne _08083ABE -_08083A90: - add r1, sp, #0x14 - movs r0, #1 - strb r0, [r1] - movs r0, #2 - strb r0, [r1, #1] - movs r0, #3 - b _08083AB8 -_08083A9E: - add r0, sp, #0x14 - strb r5, [r0] - adds r1, r0, #0 - movs r0, #2 - strb r0, [r1, #1] - movs r0, #3 - b _08083AB8 -_08083AAC: - add r0, sp, #0x14 - strb r5, [r0] - adds r1, r0, #0 - movs r0, #4 - strb r0, [r1, #1] - movs r0, #5 -_08083AB8: - strb r0, [r1, #2] -_08083ABA: - cmp r4, #3 - beq _08083AD0 -_08083ABE: - add r0, sp, #0x14 - ldrb r0, [r0] - lsls r1, r0, #4 - orrs r1, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r6, #0 - bl FillWindowPixelBuffer -_08083AD0: - movs r0, #0 - str r0, [sp] - movs r0, #1 - str r0, [sp, #4] - add r0, sp, #0x14 - str r0, [sp, #8] - ldr r0, [sp, #0x34] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - str r0, [sp, #0xc] - mov r0, sb - str r0, [sp, #0x10] - adds r0, r6, #0 - movs r1, #1 - mov r2, r8 - adds r3, r7, #0 - bl AddTextPrinterParameterized4 - add sp, #0x18 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Blender_AddTextPrinter - - thumb_func_start Blender_PrintText -Blender_PrintText: @ 0x08083B04 - push {r4, r5, r6, r7, lr} - sub sp, #8 - adds r5, r0, #0 - adds r7, r1, #0 - adds r6, r2, #0 - movs r0, #0 - ldrsh r4, [r5, r0] - cmp r4, #0 - beq _08083B1C - cmp r4, #1 - beq _08083B4E - b _08083B62 -_08083B1C: - movs r0, #4 - movs r1, #0 - movs r2, #0x14 - movs r3, #0xf - bl DrawDialogFrameWithCustomTileAndPalette - str r6, [sp] - str r4, [sp, #4] - movs r0, #4 - adds r1, r7, #0 - movs r2, #1 - movs r3, #1 - bl Blender_AddTextPrinter - movs r0, #4 - bl PutWindowTilemap - movs r0, #4 - movs r1, #3 - bl CopyWindowToVram - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - b _08083B62 -_08083B4E: - movs r0, #4 - bl sub_080046A8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - bne _08083B62 - strh r0, [r5] - movs r0, #1 - b _08083B64 -_08083B62: - movs r0, #0 -_08083B64: - add sp, #8 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end Blender_PrintText - - thumb_func_start PlayTimeCounter_Reset -PlayTimeCounter_Reset: @ 0x08083B6C - ldr r1, _08083B88 - movs r0, #0 - strb r0, [r1] - ldr r2, _08083B8C - ldr r3, [r2] - movs r1, #0 - movs r0, #0 - strh r0, [r3, #0xe] - strb r1, [r3, #0x10] - ldr r0, [r2] - strb r1, [r0, #0x11] - ldr r0, [r2] - strb r1, [r0, #0x12] - bx lr - .align 2, 0 -_08083B88: .4byte gUnknown_3000E08 -_08083B8C: .4byte gUnknown_3005AF0 - thumb_func_end PlayTimeCounter_Reset - - thumb_func_start PlayTimeCounter_Start -PlayTimeCounter_Start: @ 0x08083B90 - push {lr} - ldr r1, _08083BAC - movs r0, #1 - strb r0, [r1] - ldr r0, _08083BB0 - ldr r0, [r0] - ldrh r1, [r0, #0xe] - ldr r0, _08083BB4 - cmp r1, r0 - bls _08083BA8 - bl PlayTimeCounter_SetToMax -_08083BA8: - pop {r0} - bx r0 - .align 2, 0 -_08083BAC: .4byte gUnknown_3000E08 -_08083BB0: .4byte gUnknown_3005AF0 -_08083BB4: .4byte 0x000003E7 - thumb_func_end PlayTimeCounter_Start - - thumb_func_start sub_08083BB8 -sub_08083BB8: @ 0x08083BB8 - ldr r1, _08083BC0 - movs r0, #0 - strb r0, [r1] - bx lr - .align 2, 0 -_08083BC0: .4byte gUnknown_3000E08 - thumb_func_end sub_08083BB8 - - thumb_func_start PlayTimeCounter_Update -PlayTimeCounter_Update: @ 0x08083BC4 - push {lr} - ldr r0, _08083C20 - ldrb r0, [r0] - cmp r0, #1 - bne _08083C1C - ldr r2, _08083C24 - ldr r0, [r2] - ldrb r1, [r0, #0x12] - adds r1, #1 - movs r3, #0 - strb r1, [r0, #0x12] - ldr r1, [r2] - ldrb r0, [r1, #0x12] - cmp r0, #0x3b - bls _08083C1C - strb r3, [r1, #0x12] - ldr r0, [r2] - ldrb r1, [r0, #0x11] - adds r1, #1 - strb r1, [r0, #0x11] - ldr r1, [r2] - ldrb r0, [r1, #0x11] - cmp r0, #0x3b - bls _08083C1C - strb r3, [r1, #0x11] - ldr r0, [r2] - ldrb r1, [r0, #0x10] - adds r1, #1 - strb r1, [r0, #0x10] - ldr r1, [r2] - ldrb r0, [r1, #0x10] - cmp r0, #0x3b - bls _08083C1C - strb r3, [r1, #0x10] - ldr r0, [r2] - ldrh r1, [r0, #0xe] - adds r1, #1 - strh r1, [r0, #0xe] - lsls r1, r1, #0x10 - ldr r0, _08083C28 - cmp r1, r0 - bls _08083C1C - bl PlayTimeCounter_SetToMax -_08083C1C: - pop {r0} - bx r0 - .align 2, 0 -_08083C20: .4byte gUnknown_3000E08 -_08083C24: .4byte gUnknown_3005AF0 -_08083C28: .4byte 0x03E70000 - thumb_func_end PlayTimeCounter_Update - - thumb_func_start PlayTimeCounter_SetToMax -PlayTimeCounter_SetToMax: @ 0x08083C2C - ldr r1, _08083C48 - movs r0, #2 - strb r0, [r1] - ldr r2, _08083C4C - ldr r3, [r2] - ldr r0, _08083C50 - strh r0, [r3, #0xe] - movs r1, #0x3b - strb r1, [r3, #0x10] - ldr r0, [r2] - strb r1, [r0, #0x11] - ldr r0, [r2] - strb r1, [r0, #0x12] - bx lr - .align 2, 0 -_08083C48: .4byte gUnknown_3000E08 -_08083C4C: .4byte gUnknown_3005AF0 -_08083C50: .4byte 0x000003E7 - thumb_func_end PlayTimeCounter_SetToMax - - thumb_func_start SetTrainerId -SetTrainerId: @ 0x08083C54 - strb r0, [r1] - lsrs r2, r0, #8 - strb r2, [r1, #1] - lsrs r2, r0, #0x10 - strb r2, [r1, #2] - lsrs r0, r0, #0x18 - strb r0, [r1, #3] - bx lr - thumb_func_end SetTrainerId - - thumb_func_start GetTrainerId -GetTrainerId: @ 0x08083C64 - adds r2, r0, #0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x18 - ldrb r1, [r2, #2] - lsls r1, r1, #0x10 - orrs r0, r1 - ldrb r1, [r2, #1] - lsls r1, r1, #8 - orrs r0, r1 - ldrb r1, [r2] - orrs r0, r1 - bx lr - thumb_func_end GetTrainerId - - thumb_func_start CopyTrainerId -CopyTrainerId: @ 0x08083C7C - push {r4, lr} - adds r4, r0, #0 - adds r3, r1, #0 - movs r2, #0 -_08083C84: - adds r0, r4, r2 - adds r1, r3, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, #3 - ble _08083C84 - pop {r4} - pop {r0} - bx r0 - thumb_func_end CopyTrainerId - - thumb_func_start InitPlayerTrainerId -InitPlayerTrainerId: @ 0x08083C98 - push {r4, lr} - bl Random - adds r4, r0, #0 - bl sub_08000588 - lsls r4, r4, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - orrs r4, r0 - ldr r0, _08083CC0 - ldr r1, [r0] - adds r1, #0xa - adds r0, r4, #0 - bl SetTrainerId - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08083CC0: .4byte gUnknown_3005AF0 - thumb_func_end InitPlayerTrainerId - - thumb_func_start SetDefaultOptions -SetDefaultOptions: @ 0x08083CC4 - ldr r3, _08083D14 - ldr r2, [r3] - ldrb r1, [r2, #0x14] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x14] - ldr r2, [r3] - ldrb r1, [r2, #0x14] - movs r0, #7 - ands r0, r1 - strb r0, [r2, #0x14] - ldr r2, [r3] - ldrb r1, [r2, #0x15] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x15] - ldr r2, [r3] - ldrb r1, [r2, #0x15] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x15] - ldr r2, [r3] - ldrb r1, [r2, #0x15] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x15] - ldr r2, [r3] - ldrb r1, [r2, #0x15] - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x15] - bx lr - .align 2, 0 -_08083D14: .4byte gUnknown_3005AF0 - thumb_func_end SetDefaultOptions - - thumb_func_start ClearPokedexFlags -ClearPokedexFlags: @ 0x08083D18 - push {r4, lr} - ldr r1, _08083D40 - movs r0, #0 - strb r0, [r1] - ldr r4, _08083D44 - ldr r0, [r4] - adds r0, #0x28 - movs r1, #0 - movs r2, #0x34 - bl memset - ldr r0, [r4] - adds r0, #0x5c - movs r1, #0 - movs r2, #0x34 - bl memset - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08083D40: .4byte gUnknown_3005E10 -_08083D44: .4byte gUnknown_3005AF0 - thumb_func_end ClearPokedexFlags - - thumb_func_start ClearAllContestWinnerPics -ClearAllContestWinnerPics: @ 0x08083D48 - push {r4, r5, r6, r7, lr} - bl ClearContestWinnerPicsInContestHall - movs r2, #8 - ldr r0, _08083D7C - mov ip, r0 - ldr r4, _08083D80 - ldr r3, _08083D84 -_08083D58: - mov r1, ip - ldr r0, [r1] - lsls r1, r2, #5 - adds r0, r0, r1 - adds r0, r0, r4 - adds r1, r3, #0 - ldm r1!, {r5, r6, r7} - stm r0!, {r5, r6, r7} - ldm r1!, {r5, r6, r7} - stm r0!, {r5, r6, r7} - ldm r1!, {r5, r6} - stm r0!, {r5, r6} - adds r2, #1 - cmp r2, #0xc - ble _08083D58 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08083D7C: .4byte gUnknown_3005AEC -_08083D80: .4byte 0x00002E90 -_08083D84: .4byte gUnknown_830FC68 - thumb_func_end ClearAllContestWinnerPics - - thumb_func_start ClearFrontierRecord -ClearFrontierRecord: @ 0x08083D88 - push {r4, lr} - sub sp, #4 - movs r0, #0 - str r0, [sp] - ldr r4, _08083DC0 - ldr r1, [r4] - ldr r0, _08083DC4 - adds r1, r1, r0 - ldr r2, _08083DC8 - mov r0, sp - bl CpuSet - ldr r0, [r4] - ldr r1, _08083DCC - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] - ldr r0, [r4] - ldr r1, _08083DD0 - adds r0, r0, r1 - movs r1, #1 - rsbs r1, r1, #0 - strb r1, [r0] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08083DC0: .4byte gUnknown_3005AF0 -_08083DC4: .4byte 0x0000064C -_08083DC8: .4byte 0x05000238 -_08083DCC: .4byte 0x00000EE1 -_08083DD0: .4byte 0x00000EE9 - thumb_func_end ClearFrontierRecord - - thumb_func_start WarpToTruck -WarpToTruck: @ 0x08083DD4 - push {lr} - sub sp, #4 - movs r3, #1 - rsbs r3, r3, #0 - str r3, [sp] - movs r0, #0x19 - movs r1, #0x28 - adds r2, r3, #0 - bl SetWarpDestination - bl WarpIntoMap - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WarpToTruck - - thumb_func_start Sav2_ClearSetDefault -Sav2_ClearSetDefault: @ 0x08083DF4 - push {lr} - bl sub_0807659C - bl SetDefaultOptions - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Sav2_ClearSetDefault - - thumb_func_start ResetMenuAndMonGlobals -ResetMenuAndMonGlobals: @ 0x08083E04 - push {lr} - ldr r1, _08083E24 - movs r0, #0 - strb r0, [r1] - bl ResetPokedexScrollPositions - bl ZeroPlayerPartyMons - bl ZeroEnemyPartyMons - bl ResetBagScrollPositions - bl ResetPokeblockScrollPositions - pop {r0} - bx r0 - .align 2, 0 -_08083E24: .4byte gUnknown_2031F74 - thumb_func_end ResetMenuAndMonGlobals - - thumb_func_start NewGameInitData -NewGameInitData: @ 0x08083E28 - push {r4, r5, lr} - ldr r0, _08083F34 - ldrh r0, [r0] - cmp r0, #0 - beq _08083E36 - cmp r0, #2 - bne _08083E3A -_08083E36: - bl RtcReset -_08083E3A: - ldr r1, _08083F38 - movs r0, #1 - strb r0, [r1] - ldr r4, _08083F3C - ldr r0, [r4] - adds r0, #0xac - movs r5, #0 - str r5, [r0] - bl ZeroPlayerPartyMons - bl ZeroEnemyPartyMons - bl ResetPokedex - bl ClearFrontierRecord - bl sub_080765C0 - bl ClearMailData - ldr r0, [r4] - strb r5, [r0, #9] - ldr r0, [r4] - adds r0, #0xa8 - str r5, [r0] - bl InitPlayerTrainerId - bl PlayTimeCounter_Reset - bl ClearPokedexFlags - bl InitEventData - bl ClearTVShowData - bl ResetGabbyAndTy - bl ClearSecretBases - bl ClearBerryTrees - ldr r4, _08083F40 - ldr r0, [r4] - movs r1, #0x92 - lsls r1, r1, #3 - adds r0, r0, r1 - ldr r1, _08083F44 - bl sub_080E491C - movs r0, #0 - bl SetCoins - bl sub_080D6E98 - bl ResetGameStats - bl ClearAllContestWinnerPics - bl sub_0813C204 - bl sub_080FA2EC - bl sub_080FA344 - ldr r0, _08083F48 - strb r5, [r0] - bl ZeroPlayerPartyMons - bl ResetPokemonStorageSystem - bl ClearRoamerData - bl ClearRoamerLocationData - ldr r0, [r4] - ldr r1, _08083F4C - adds r0, r0, r1 - strh r5, [r0] - bl ClearBag - bl NewGameInitPCItems - bl ClearPokeblocks - bl ClearDecorationInventories - bl sub_0811F664 - bl SetMauvilleOldMan - bl InitDewfordTrend - bl ResetFanClub - bl ResetLotteryCorner - bl WarpToTruck - ldr r0, _08083F50 - bl ScriptContext2_RunNewScript - bl ResetMiniGamesResults - bl copy_strings_to_sav1 - bl SetLilycoveLady - bl ResetAllApprenticeData - bl ClearRankingHallRecords - bl InitMatchCallCounters - bl sub_0801AAAC - bl WipeTrainerNameRecords - bl sub_081D4B3C - bl ResetContestLinkResults - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08083F34: .4byte gUnknown_3005F50 -_08083F38: .4byte gUnknown_2031F74 -_08083F3C: .4byte gUnknown_3005AF0 -_08083F40: .4byte gUnknown_3005AEC -_08083F44: .4byte 0x00000BB8 -_08083F48: .4byte gUnknown_202418D -_08083F4C: .4byte 0x00000496 -_08083F50: .4byte gUnknown_8242678 - thumb_func_end NewGameInitData - - thumb_func_start ResetMiniGamesResults -ResetMiniGamesResults: @ 0x08083F54 - push {r4, r5, r6, lr} - sub sp, #4 - mov r0, sp - movs r5, #0 - strh r5, [r0] - ldr r4, _08083FA0 - ldr r1, [r4] - movs r0, #0xf6 - lsls r0, r0, #1 - adds r1, r1, r0 - ldr r6, _08083FA4 - mov r0, sp - adds r2, r6, #0 - bl CpuSet - ldr r0, [r4] - movs r1, #0xfa - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #0 - bl sub_08024448 - bl ResetPokeJumpResults - mov r0, sp - adds r0, #2 - strh r5, [r0] - ldr r1, [r4] - movs r2, #0x83 - lsls r2, r2, #2 - adds r1, r1, r2 - adds r2, r6, #0 - bl CpuSet - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08083FA0: .4byte gUnknown_3005AF0 -_08083FA4: .4byte 0x01000008 - thumb_func_end ResetMiniGamesResults - - thumb_func_start DoWhiteOut -DoWhiteOut: @ 0x08083FA8 - push {r4, lr} - ldr r0, _08083FE0 - bl ScriptContext2_RunNewScript - ldr r0, _08083FE4 - ldr r4, [r0] - movs r0, #0x92 - lsls r0, r0, #3 - adds r4, r4, r0 - adds r0, r4, #0 - bl sub_080E4908 - adds r1, r0, #0 - lsrs r1, r1, #1 - adds r0, r4, #0 - bl sub_080E491C - bl HealPlayerParty - bl Overworld_ResetStateAfterWhiteOut - bl SetWarpDestinationToLastHealLocation - bl WarpIntoMap - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08083FE0: .4byte gUnknown_82428F1 -_08083FE4: .4byte gUnknown_3005AEC - thumb_func_end DoWhiteOut - - thumb_func_start sub_08083FE8 -sub_08083FE8: @ 0x08083FE8 - push {lr} - bl ResetInitialPlayerAvatarState - ldr r0, _08084010 - bl FlagClear - ldr r0, _08084014 - bl FlagClear - ldr r0, _08084018 - bl FlagClear - ldr r0, _0808401C - bl FlagClear - ldr r0, _08084020 - bl FlagClear - pop {r0} - bx r0 - .align 2, 0 -_08084010: .4byte 0x0000088B -_08084014: .4byte 0x0000088D -_08084018: .4byte 0x0000088C -_0808401C: .4byte 0x00000889 -_08084020: .4byte 0x00000888 - thumb_func_end sub_08083FE8 - - thumb_func_start Overworld_ResetStateAfterTeleport -Overworld_ResetStateAfterTeleport: @ 0x08084024 - push {lr} - bl ResetInitialPlayerAvatarState - ldr r0, _08084054 - bl FlagClear - ldr r0, _08084058 - bl FlagClear - ldr r0, _0808405C - bl FlagClear - ldr r0, _08084060 - bl FlagClear - ldr r0, _08084064 - bl FlagClear - ldr r0, _08084068 - bl ScriptContext2_RunNewScript - pop {r0} - bx r0 - .align 2, 0 -_08084054: .4byte 0x0000088B -_08084058: .4byte 0x0000088D -_0808405C: .4byte 0x0000088C -_08084060: .4byte 0x00000889 -_08084064: .4byte 0x00000888 -_08084068: .4byte gUnknown_82428FC - thumb_func_end Overworld_ResetStateAfterTeleport - - thumb_func_start sub_0808406C -sub_0808406C: @ 0x0808406C - push {lr} - bl ResetInitialPlayerAvatarState - ldr r0, _08084094 - bl FlagClear - ldr r0, _08084098 - bl FlagClear - ldr r0, _0808409C - bl FlagClear - ldr r0, _080840A0 - bl FlagClear - ldr r0, _080840A4 - bl FlagClear - pop {r0} - bx r0 - .align 2, 0 -_08084094: .4byte 0x0000088B -_08084098: .4byte 0x0000088D -_0808409C: .4byte 0x0000088C -_080840A0: .4byte 0x00000889 -_080840A4: .4byte 0x00000888 - thumb_func_end sub_0808406C - - thumb_func_start Overworld_ResetStateAfterWhiteOut -Overworld_ResetStateAfterWhiteOut: @ 0x080840A8 - push {r4, lr} - bl ResetInitialPlayerAvatarState - ldr r0, _080840F4 - bl FlagClear - ldr r0, _080840F8 - bl FlagClear - ldr r0, _080840FC - bl FlagClear - ldr r0, _08084100 - bl FlagClear - ldr r0, _08084104 - bl FlagClear - ldr r4, _08084108 - adds r0, r4, #0 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bne _080840EC - adds r0, r4, #0 - movs r1, #0 - bl VarSet - ldr r0, _0808410C - movs r1, #0 - bl VarSet -_080840EC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080840F4: .4byte 0x0000088B -_080840F8: .4byte 0x0000088D -_080840FC: .4byte 0x0000088C -_08084100: .4byte 0x00000889 -_08084104: .4byte 0x00000888 -_08084108: .4byte 0x00004039 -_0808410C: .4byte 0x00004037 - thumb_func_end Overworld_ResetStateAfterWhiteOut - - thumb_func_start sub_08084110 -sub_08084110: @ 0x08084110 - push {lr} - ldr r0, _0808412C - bl FlagClear - bl ChooseAmbientCrySpecies - bl ResetCyclingRoadChallengeData - bl UpdateLocationHistoryForRoamer - bl RoamerMoveToOtherLocationSet - pop {r0} - bx r0 - .align 2, 0 -_0808412C: .4byte 0x0000088C - thumb_func_end sub_08084110 - - thumb_func_start ResetGameStats -ResetGameStats: @ 0x08084130 - push {r4, lr} - movs r4, #0 -_08084134: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl SetGameStat - adds r4, #1 - cmp r4, #0x3f - ble _08084134 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ResetGameStats - - thumb_func_start IncrementGameStat -IncrementGameStat: @ 0x0808414C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x33 - bhi _08084174 - adds r0, r4, #0 - bl GetGameStat - adds r1, r0, #0 - ldr r0, _08084168 - cmp r1, r0 - bhi _0808416C - adds r1, #1 - b _0808416E - .align 2, 0 -_08084168: .4byte 0x00FFFFFE -_0808416C: - ldr r1, _0808417C -_0808416E: - adds r0, r4, #0 - bl SetGameStat -_08084174: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808417C: .4byte 0x00FFFFFF - thumb_func_end IncrementGameStat - - thumb_func_start GetGameStat -GetGameStat: @ 0x08084180 - push {lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x33 - bhi _080841B0 - ldr r0, _080841A4 - ldr r2, [r0] - lsls r0, r1, #2 - ldr r1, _080841A8 - adds r2, r2, r1 - adds r2, r2, r0 - ldr r0, _080841AC - ldr r1, [r0] - adds r1, #0xac - ldr r0, [r2] - ldr r1, [r1] - eors r0, r1 - b _080841B2 - .align 2, 0 -_080841A4: .4byte gUnknown_3005AEC -_080841A8: .4byte 0x0000159C -_080841AC: .4byte gUnknown_3005AF0 -_080841B0: - movs r0, #0 -_080841B2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetGameStat - - thumb_func_start SetGameStat -SetGameStat: @ 0x080841B8 - push {lr} - adds r3, r1, #0 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x33 - bhi _080841DC - ldr r0, _080841E0 - ldr r1, [r0] - lsls r0, r2, #2 - ldr r2, _080841E4 - adds r1, r1, r2 - adds r1, r1, r0 - ldr r0, _080841E8 - ldr r0, [r0] - adds r0, #0xac - ldr r0, [r0] - eors r0, r3 - str r0, [r1] -_080841DC: - pop {r0} - bx r0 - .align 2, 0 -_080841E0: .4byte gUnknown_3005AEC -_080841E4: .4byte 0x0000159C -_080841E8: .4byte gUnknown_3005AF0 - thumb_func_end SetGameStat - - thumb_func_start ApplyNewEncryptionKeyToGameStats -ApplyNewEncryptionKeyToGameStats: @ 0x080841EC - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r4, #0 - ldr r6, _08084214 -_080841F4: - lsls r1, r4, #2 - ldr r0, _08084218 - adds r1, r1, r0 - ldr r0, [r6] - adds r0, r0, r1 - adds r1, r5, #0 - bl ApplyNewEncryptionKeyToWord - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x3f - bls _080841F4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08084214: .4byte gUnknown_3005AEC -_08084218: .4byte 0x0000159C - thumb_func_end ApplyNewEncryptionKeyToGameStats - - thumb_func_start LoadEventObjTemplatesFromHeader -LoadEventObjTemplatesFromHeader: @ 0x0808421C - push {r4, r5, lr} - sub sp, #4 - movs r0, #0 - str r0, [sp] - ldr r5, _0808425C - ldr r1, [r5] - movs r4, #0xc7 - lsls r4, r4, #4 - adds r1, r1, r4 - ldr r2, _08084260 - mov r0, sp - bl CpuSet - ldr r0, _08084264 - ldr r2, [r0, #4] - ldr r0, [r2, #4] - ldr r1, [r5] - adds r1, r1, r4 - ldrb r3, [r2] - lsls r2, r3, #1 - adds r2, r2, r3 - lsls r2, r2, #1 - movs r3, #0x80 - lsls r3, r3, #0x13 - orrs r2, r3 - bl CpuSet - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0808425C: .4byte gUnknown_3005AEC -_08084260: .4byte 0x05000180 -_08084264: .4byte gUnknown_2036FB8 - thumb_func_end LoadEventObjTemplatesFromHeader - - thumb_func_start LoadSaveblockEventObjScripts -LoadSaveblockEventObjScripts: @ 0x08084268 - push {lr} - ldr r0, _08084290 - ldr r1, [r0, #4] - ldr r0, _08084294 - ldr r0, [r0] - ldr r2, [r1, #4] - movs r3, #0xc7 - lsls r3, r3, #4 - adds r1, r0, r3 - movs r3, #0x3f -_0808427C: - ldr r0, [r2, #0x10] - str r0, [r1, #0x10] - adds r2, #0x18 - adds r1, #0x18 - subs r3, #1 - cmp r3, #0 - bge _0808427C - pop {r0} - bx r0 - .align 2, 0 -_08084290: .4byte gUnknown_2036FB8 -_08084294: .4byte gUnknown_3005AEC - thumb_func_end LoadSaveblockEventObjScripts - - thumb_func_start Overworld_SetEventObjTemplateCoords -Overworld_SetEventObjTemplateCoords: @ 0x08084298 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldr r0, _080842C0 - ldr r0, [r0] - movs r1, #0 - movs r6, #0xc7 - lsls r6, r6, #4 - adds r3, r0, r6 -_080842B2: - ldrb r0, [r3] - cmp r0, r5 - bne _080842C4 - strh r4, [r3, #4] - strh r2, [r3, #6] - b _080842CC - .align 2, 0 -_080842C0: .4byte gUnknown_3005AEC -_080842C4: - adds r3, #0x18 - adds r1, #1 - cmp r1, #0x3f - ble _080842B2 -_080842CC: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Overworld_SetEventObjTemplateCoords - - thumb_func_start Overworld_SetEventObjTemplateMovementType -Overworld_SetEventObjTemplateMovementType: @ 0x080842D4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, _080842F4 - ldr r0, [r0] - movs r3, #0 - movs r5, #0xc7 - lsls r5, r5, #4 - adds r2, r0, r5 -_080842EA: - ldrb r0, [r2] - cmp r0, r4 - bne _080842F8 - strb r1, [r2, #9] - b _08084300 - .align 2, 0 -_080842F4: .4byte gUnknown_3005AEC -_080842F8: - adds r2, #0x18 - adds r3, #1 - cmp r3, #0x3f - ble _080842EA -_08084300: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Overworld_SetEventObjTemplateMovementType - - thumb_func_start mapdata_load_assets_to_gpu_and_full_redraw -mapdata_load_assets_to_gpu_and_full_redraw: @ 0x08084308 - push {r4, lr} - bl move_tilemap_camera_to_upper_left_corner - ldr r4, _0808432C - ldr r0, [r4] - bl copy_map_tileset1_tileset2_to_vram - ldr r0, [r4] - bl apply_map_tileset1_tileset2_palette - bl DrawWholeMapView - bl InitTilesetAnimations - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808432C: .4byte gUnknown_2036FB8 - thumb_func_end mapdata_load_assets_to_gpu_and_full_redraw - - thumb_func_start GetMapLayout -GetMapLayout: @ 0x08084330 - push {lr} - ldr r0, _08084340 - ldr r0, [r0] - ldrh r1, [r0, #0x32] - cmp r1, #0 - bne _08084344 - movs r0, #0 - b _0808434E - .align 2, 0 -_08084340: .4byte gUnknown_3005AEC -_08084344: - ldr r0, _08084354 - subs r1, #1 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] -_0808434E: - pop {r1} - bx r1 - .align 2, 0 -_08084354: .4byte gUnknown_845A1F4 - thumb_func_end GetMapLayout - - thumb_func_start ApplyCurrentWarp -ApplyCurrentWarp: @ 0x08084358 - ldr r3, _08084384 - ldr r0, _08084388 - ldr r2, [r0] - ldr r0, [r2, #4] - ldr r1, [r2, #8] - str r0, [r3] - str r1, [r3, #4] - ldr r0, _0808438C - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [r2, #4] - str r1, [r2, #8] - ldr r2, _08084390 - ldr r0, _08084394 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [r2] - str r1, [r2, #4] - ldr r2, _08084398 - str r0, [r2] - str r1, [r2, #4] - bx lr - .align 2, 0 -_08084384: .4byte gUnknown_2031F7C -_08084388: .4byte gUnknown_3005AEC -_0808438C: .4byte gUnknown_2031F84 -_08084390: .4byte gUnknown_2031F8C -_08084394: .4byte gUnknown_830FC88 -_08084398: .4byte gUnknown_2031F94 - thumb_func_end ApplyCurrentWarp - - thumb_func_start SetWarpData -SetWarpData: @ 0x0808439C - push {r4, r5, lr} - ldr r4, [sp, #0xc] - ldr r5, [sp, #0x10] - strb r1, [r0] - strb r2, [r0, #1] - strb r3, [r0, #2] - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - strh r4, [r0, #4] - lsls r5, r5, #0x18 - asrs r5, r5, #0x18 - strh r5, [r0, #6] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetWarpData - - thumb_func_start IsDummyWarp -IsDummyWarp: @ 0x080843BC - push {lr} - adds r1, r0, #0 - movs r2, #0 - ldrsb r2, [r1, r2] - movs r0, #1 - rsbs r0, r0, #0 - cmp r2, r0 - bne _080843F0 - movs r0, #1 - ldrsb r0, [r1, r0] - cmp r0, r2 - bne _080843F0 - movs r2, #2 - ldrsb r2, [r1, r2] - cmp r2, r0 - bne _080843F0 - movs r0, #4 - ldrsh r3, [r1, r0] - cmp r3, r2 - bne _080843F0 - movs r2, #6 - ldrsh r0, [r1, r2] - cmp r0, r3 - bne _080843F0 - movs r0, #1 - b _080843F2 -_080843F0: - movs r0, #0 -_080843F2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsDummyWarp - - thumb_func_start Overworld_GetMapHeaderByGroupAndId -Overworld_GetMapHeaderByGroupAndId: @ 0x080843F8 - lsls r0, r0, #0x10 - lsls r1, r1, #0x10 - ldr r2, _0808440C - lsrs r0, r0, #0xe - adds r0, r0, r2 - ldr r0, [r0] - lsrs r1, r1, #0xe - adds r1, r1, r0 - ldr r0, [r1] - bx lr - .align 2, 0 -_0808440C: .4byte gUnknown_845E998 - thumb_func_end Overworld_GetMapHeaderByGroupAndId - - thumb_func_start GetDestinationWarpMapHeader -GetDestinationWarpMapHeader: @ 0x08084410 - push {lr} - ldr r1, _08084430 - movs r0, #0 - ldrsb r0, [r1, r0] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r1, #1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl Overworld_GetMapHeaderByGroupAndId - pop {r1} - bx r1 - .align 2, 0 -_08084430: .4byte gUnknown_2031F84 - thumb_func_end GetDestinationWarpMapHeader - - thumb_func_start LoadCurrentMapData -LoadCurrentMapData: @ 0x08084434 - push {r4, r5, r6, lr} - ldr r1, _08084478 - ldr r4, _0808447C - ldrb r0, [r4, #0x14] - strh r0, [r1] - ldr r5, _08084480 - ldr r1, [r5] - movs r0, #4 - ldrsb r0, [r1, r0] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r1, #5] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl Overworld_GetMapHeaderByGroupAndId - adds r1, r4, #0 - ldm r0!, {r2, r3, r6} - stm r1!, {r2, r3, r6} - ldm r0!, {r2, r3, r6} - stm r1!, {r2, r3, r6} - ldr r0, [r0] - str r0, [r1] - ldr r1, [r5] - ldrh r0, [r4, #0x12] - strh r0, [r1, #0x32] - bl GetMapLayout - str r0, [r4] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08084478: .4byte gUnknown_2031F9C -_0808447C: .4byte gUnknown_2036FB8 -_08084480: .4byte gUnknown_3005AEC - thumb_func_end LoadCurrentMapData - - thumb_func_start LoadSaveblockMapHeader -LoadSaveblockMapHeader: @ 0x08084484 - push {r4, r5, lr} - ldr r4, _080844BC - ldr r0, _080844C0 - ldr r1, [r0] - movs r0, #4 - ldrsb r0, [r1, r0] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r1, #5] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl Overworld_GetMapHeaderByGroupAndId - adds r1, r4, #0 - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} - ldr r0, [r0] - str r0, [r1] - bl GetMapLayout - str r0, [r4] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080844BC: .4byte gUnknown_2036FB8 -_080844C0: .4byte gUnknown_3005AEC - thumb_func_end LoadSaveblockMapHeader - - thumb_func_start SetPlayerCoordsFromWarp -SetPlayerCoordsFromWarp: @ 0x080844C4 - push {r4, r5, lr} - ldr r0, _080844F4 - ldr r2, [r0] - movs r1, #6 - ldrsb r1, [r2, r1] - adds r4, r0, #0 - cmp r1, #0 - blt _080844FC - ldr r3, _080844F8 - ldr r0, [r3, #4] - ldrb r5, [r0, #1] - cmp r1, r5 - bge _080844FC - ldr r0, [r0, #8] - lsls r1, r1, #3 - adds r0, r1, r0 - ldrh r0, [r0] - strh r0, [r2] - ldr r0, [r3, #4] - ldr r0, [r0, #8] - adds r1, r1, r0 - ldrh r0, [r1, #2] - strh r0, [r2, #2] - b _08084534 - .align 2, 0 -_080844F4: .4byte gUnknown_3005AEC -_080844F8: .4byte gUnknown_2036FB8 -_080844FC: - ldr r1, [r4] - ldrh r3, [r1, #8] - movs r2, #8 - ldrsh r0, [r1, r2] - cmp r0, #0 - blt _08084518 - ldrh r2, [r1, #0xa] - movs r5, #0xa - ldrsh r0, [r1, r5] - cmp r0, #0 - blt _08084518 - strh r3, [r1] - strh r2, [r1, #2] - b _08084534 -_08084518: - ldr r3, [r4] - ldr r2, _0808453C - ldr r0, [r2] - ldr r0, [r0] - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - strh r0, [r3] - ldr r0, [r2] - ldr r0, [r0, #4] - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - strh r0, [r3, #2] -_08084534: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0808453C: .4byte gUnknown_2036FB8 - thumb_func_end SetPlayerCoordsFromWarp - - thumb_func_start WarpIntoMap -WarpIntoMap: @ 0x08084540 - push {lr} - bl ApplyCurrentWarp - bl LoadCurrentMapData - bl SetPlayerCoordsFromWarp - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WarpIntoMap - - thumb_func_start SetWarpDestination -SetWarpDestination: @ 0x08084554 - push {r4, r5, r6, lr} - sub sp, #8 - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - ldr r1, [sp, #0x18] - ldr r0, _0808458C - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - lsls r5, r5, #0x18 - asrs r5, r5, #0x18 - lsls r6, r6, #0x18 - asrs r6, r6, #0x18 - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - str r3, [sp] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - str r1, [sp, #4] - adds r1, r4, #0 - adds r2, r5, #0 - adds r3, r6, #0 - bl SetWarpData - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0808458C: .4byte gUnknown_2031F84 - thumb_func_end SetWarpDestination - - thumb_func_start SetWarpDestinationToMapWarp -SetWarpDestinationToMapWarp: @ 0x08084590 - push {lr} - sub sp, #4 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - movs r3, #1 - rsbs r3, r3, #0 - str r3, [sp] - bl SetWarpDestination - add sp, #4 - pop {r0} - bx r0 - thumb_func_end SetWarpDestinationToMapWarp - - thumb_func_start SetDynamicWarp -SetDynamicWarp: @ 0x080845B0 - push {r4, r5, lr} - sub sp, #8 - ldr r0, _080845E0 - ldr r5, [r0] - adds r0, r5, #0 - adds r0, #0x14 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - movs r4, #0 - ldrsb r4, [r5, r4] - str r4, [sp] - movs r4, #2 - ldrsb r4, [r5, r4] - str r4, [sp, #4] - bl SetWarpData - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080845E0: .4byte gUnknown_3005AEC - thumb_func_end SetDynamicWarp - - thumb_func_start SetDynamicWarpWithCoords -SetDynamicWarpWithCoords: @ 0x080845E4 - push {r4, r5, lr} - sub sp, #8 - ldr r4, [sp, #0x14] - ldr r5, [sp, #0x18] - ldr r0, _08084618 - ldr r0, [r0] - adds r0, #0x14 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - str r4, [sp] - lsls r5, r5, #0x18 - asrs r5, r5, #0x18 - str r5, [sp, #4] - bl SetWarpData - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08084618: .4byte gUnknown_3005AEC - thumb_func_end SetDynamicWarpWithCoords - - thumb_func_start SetWarpDestinationToDynamicWarp -SetWarpDestinationToDynamicWarp: @ 0x0808461C - ldr r2, _0808462C - ldr r0, _08084630 - ldr r0, [r0] - ldr r1, [r0, #0x18] - ldr r0, [r0, #0x14] - str r0, [r2] - str r1, [r2, #4] - bx lr - .align 2, 0 -_0808462C: .4byte gUnknown_2031F84 -_08084630: .4byte gUnknown_3005AEC - thumb_func_end SetWarpDestinationToDynamicWarp - - thumb_func_start SetWarpDestinationToHealLocation -SetWarpDestinationToHealLocation: @ 0x08084634 - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetHealLocation - adds r4, r0, #0 - cmp r4, #0 - beq _08084662 - movs r0, #0 - ldrsb r0, [r4, r0] - movs r1, #1 - ldrsb r1, [r4, r1] - movs r2, #1 - rsbs r2, r2, #0 - movs r3, #2 - ldrsb r3, [r4, r3] - ldrb r4, [r4, #4] - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - str r4, [sp] - bl SetWarpDestination -_08084662: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetWarpDestinationToHealLocation - - thumb_func_start SetWarpDestinationToLastHealLocation -SetWarpDestinationToLastHealLocation: @ 0x0808466C - ldr r2, _0808467C - ldr r0, _08084680 - ldr r0, [r0] - ldr r1, [r0, #0x20] - ldr r0, [r0, #0x1c] - str r0, [r2] - str r1, [r2, #4] - bx lr - .align 2, 0 -_0808467C: .4byte gUnknown_2031F84 -_08084680: .4byte gUnknown_3005AEC - thumb_func_end SetWarpDestinationToLastHealLocation - - thumb_func_start SetLastHealLocationWarp -SetLastHealLocationWarp: @ 0x08084684 - push {r4, r5, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetHealLocation - adds r5, r0, #0 - cmp r5, #0 - beq _080846B8 - ldr r0, _080846C0 - ldr r0, [r0] - adds r0, #0x1c - movs r1, #0 - ldrsb r1, [r5, r1] - movs r2, #1 - ldrsb r2, [r5, r2] - movs r3, #1 - rsbs r3, r3, #0 - movs r4, #2 - ldrsb r4, [r5, r4] - str r4, [sp] - movs r4, #4 - ldrsb r4, [r5, r4] - str r4, [sp, #4] - bl SetWarpData -_080846B8: - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080846C0: .4byte gUnknown_3005AEC - thumb_func_end SetLastHealLocationWarp - - thumb_func_start UpdateEscapeWarp -UpdateEscapeWarp: @ 0x080846C4 - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - bl GetCurrentMapType - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _08084734 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrb r1, [r1, #1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - bl GetMapTypeByGroupAndId - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r4, #0 - bl IsMapTypeOutdoors - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808472C - adds r0, r5, #0 - bl IsMapTypeOutdoors - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0808472C - ldr r0, _08084738 - ldr r1, [r0] - movs r0, #4 - ldrsb r0, [r1, r0] - ldrb r1, [r1, #5] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r2, #1 - rsbs r2, r2, #0 - subs r3, r6, #7 - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - subs r4, r7, #6 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - str r4, [sp] - bl SetEscapeWarp -_0808472C: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08084734: .4byte gUnknown_2031F84 -_08084738: .4byte gUnknown_3005AEC - thumb_func_end UpdateEscapeWarp - - thumb_func_start SetEscapeWarp -SetEscapeWarp: @ 0x0808473C - push {r4, r5, r6, lr} - sub sp, #8 - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - ldr r1, [sp, #0x18] - ldr r0, _08084778 - ldr r0, [r0] - adds r0, #0x24 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - lsls r5, r5, #0x18 - asrs r5, r5, #0x18 - lsls r6, r6, #0x18 - asrs r6, r6, #0x18 - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - str r3, [sp] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - str r1, [sp, #4] - adds r1, r4, #0 - adds r2, r5, #0 - adds r3, r6, #0 - bl SetWarpData - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08084778: .4byte gUnknown_3005AEC - thumb_func_end SetEscapeWarp - - thumb_func_start SetWarpDestinationToEscapeWarp -SetWarpDestinationToEscapeWarp: @ 0x0808477C - ldr r2, _0808478C - ldr r0, _08084790 - ldr r0, [r0] - ldr r1, [r0, #0x28] - ldr r0, [r0, #0x24] - str r0, [r2] - str r1, [r2, #4] - bx lr - .align 2, 0 -_0808478C: .4byte gUnknown_2031F84 -_08084790: .4byte gUnknown_3005AEC - thumb_func_end SetWarpDestinationToEscapeWarp - - thumb_func_start SetFixedDiveWarp -SetFixedDiveWarp: @ 0x08084794 - push {r4, r5, r6, lr} - sub sp, #8 - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - ldr r1, [sp, #0x18] - ldr r0, _080847CC - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - lsls r5, r5, #0x18 - asrs r5, r5, #0x18 - lsls r6, r6, #0x18 - asrs r6, r6, #0x18 - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - str r3, [sp] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - str r1, [sp, #4] - adds r1, r4, #0 - adds r2, r5, #0 - adds r3, r6, #0 - bl SetWarpData - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080847CC: .4byte gUnknown_2031F8C - thumb_func_end SetFixedDiveWarp - - thumb_func_start SetWarpDestinationToDiveWarp -SetWarpDestinationToDiveWarp: @ 0x080847D0 - ldr r2, _080847E0 - ldr r0, _080847E4 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [r2] - str r1, [r2, #4] - bx lr - .align 2, 0 -_080847E0: .4byte gUnknown_2031F84 -_080847E4: .4byte gUnknown_2031F8C - thumb_func_end SetWarpDestinationToDiveWarp - - thumb_func_start SetFixedHoleWarp -SetFixedHoleWarp: @ 0x080847E8 - push {r4, r5, r6, lr} - sub sp, #8 - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - ldr r1, [sp, #0x18] - ldr r0, _08084820 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - lsls r5, r5, #0x18 - asrs r5, r5, #0x18 - lsls r6, r6, #0x18 - asrs r6, r6, #0x18 - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - str r3, [sp] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - str r1, [sp, #4] - adds r1, r4, #0 - adds r2, r5, #0 - adds r3, r6, #0 - bl SetWarpData - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08084820: .4byte gUnknown_2031F94 - thumb_func_end SetFixedHoleWarp - - thumb_func_start SetWarpDestinationToFixedHoleWarp -SetWarpDestinationToFixedHoleWarp: @ 0x08084824 - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - ldr r4, _0808484C - adds r0, r4, #0 - bl IsDummyWarp - cmp r0, #1 - bne _08084858 - ldr r2, _08084850 - ldr r0, _08084854 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [r2] - str r1, [r2, #4] - b _08084872 - .align 2, 0 -_0808484C: .4byte gUnknown_2031F94 -_08084850: .4byte gUnknown_2031F84 -_08084854: .4byte gUnknown_2031F7C -_08084858: - movs r0, #0 - ldrsb r0, [r4, r0] - movs r1, #1 - ldrsb r1, [r4, r1] - movs r2, #1 - rsbs r2, r2, #0 - lsls r3, r5, #0x18 - asrs r3, r3, #0x18 - lsls r4, r6, #0x18 - asrs r4, r4, #0x18 - str r4, [sp] - bl SetWarpDestination -_08084872: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetWarpDestinationToFixedHoleWarp - - thumb_func_start SetWarpDestinationToContinueGameWarp -SetWarpDestinationToContinueGameWarp: @ 0x0808487C - ldr r2, _0808488C - ldr r0, _08084890 - ldr r0, [r0] - ldr r1, [r0, #0x10] - ldr r0, [r0, #0xc] - str r0, [r2] - str r1, [r2, #4] - bx lr - .align 2, 0 -_0808488C: .4byte gUnknown_2031F84 -_08084890: .4byte gUnknown_3005AEC - thumb_func_end SetWarpDestinationToContinueGameWarp - - thumb_func_start SetContinueGameWarp -SetContinueGameWarp: @ 0x08084894 - push {r4, r5, r6, lr} - sub sp, #8 - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - ldr r1, [sp, #0x18] - ldr r0, _080848D0 - ldr r0, [r0] - adds r0, #0xc - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - lsls r5, r5, #0x18 - asrs r5, r5, #0x18 - lsls r6, r6, #0x18 - asrs r6, r6, #0x18 - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - str r3, [sp] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - str r1, [sp, #4] - adds r1, r4, #0 - adds r2, r5, #0 - adds r3, r6, #0 - bl SetWarpData - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080848D0: .4byte gUnknown_3005AEC - thumb_func_end SetContinueGameWarp - - thumb_func_start SetContinueGameWarpToHealLocation -SetContinueGameWarpToHealLocation: @ 0x080848D4 - push {r4, r5, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetHealLocation - adds r5, r0, #0 - cmp r5, #0 - beq _08084908 - ldr r0, _08084910 - ldr r0, [r0] - adds r0, #0xc - movs r1, #0 - ldrsb r1, [r5, r1] - movs r2, #1 - ldrsb r2, [r5, r2] - movs r3, #1 - rsbs r3, r3, #0 - movs r4, #2 - ldrsb r4, [r5, r4] - str r4, [sp] - movs r4, #4 - ldrsb r4, [r5, r4] - str r4, [sp, #4] - bl SetWarpData -_08084908: - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08084910: .4byte gUnknown_3005AEC - thumb_func_end SetContinueGameWarpToHealLocation - - thumb_func_start SetContinueGameWarpToDynamicWarp -SetContinueGameWarpToDynamicWarp: @ 0x08084914 - ldr r0, _08084924 - ldr r2, [r0] - ldr r0, [r2, #0x14] - ldr r1, [r2, #0x18] - str r0, [r2, #0xc] - str r1, [r2, #0x10] - bx lr - .align 2, 0 -_08084924: .4byte gUnknown_3005AEC - thumb_func_end SetContinueGameWarpToDynamicWarp - - thumb_func_start GetMapConnection -GetMapConnection: @ 0x08084928 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0808493C - ldr r0, [r0, #0xc] - ldr r3, [r0] - ldr r1, [r0, #4] - cmp r1, #0 - bne _08084944 - b _08084958 - .align 2, 0 -_0808493C: .4byte gUnknown_2036FB8 -_08084940: - adds r0, r1, #0 - b _0808495A -_08084944: - movs r2, #0 - cmp r2, r3 - bge _08084958 -_0808494A: - ldrb r0, [r1] - cmp r0, r4 - beq _08084940 - adds r2, #1 - adds r1, #0xc - cmp r2, r3 - blt _0808494A -_08084958: - movs r0, #0 -_0808495A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetMapConnection - - thumb_func_start SetDiveWarp -SetDiveWarp: @ 0x08084960 - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r5, r2, #0x10 - bl GetMapConnection - adds r1, r0, #0 - cmp r1, #0 - beq _08084998 - movs r0, #8 - ldrsb r0, [r1, r0] - ldrb r1, [r1, #9] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r2, #1 - rsbs r2, r2, #0 - lsls r3, r4, #0x18 - asrs r3, r3, #0x18 - lsls r4, r5, #0x18 - asrs r4, r4, #0x18 - str r4, [sp] - bl SetWarpDestination - b _080849B4 -_08084998: - bl RunOnDiveWarpMapScript - ldr r0, _080849AC - bl IsDummyWarp - cmp r0, #0 - beq _080849B0 - movs r0, #0 - b _080849B6 - .align 2, 0 -_080849AC: .4byte gUnknown_2031F8C -_080849B0: - bl SetWarpDestinationToDiveWarp -_080849B4: - movs r0, #1 -_080849B6: - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end SetDiveWarp - - thumb_func_start SetDiveWarpEmerge -SetDiveWarpEmerge: @ 0x080849C0 - push {lr} - adds r3, r0, #0 - adds r2, r1, #0 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - movs r0, #6 - adds r1, r3, #0 - bl SetDiveWarp - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end SetDiveWarpEmerge - - thumb_func_start SetDiveWarpDive -SetDiveWarpDive: @ 0x080849E0 - push {lr} - adds r3, r0, #0 - adds r2, r1, #0 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - movs r0, #5 - adds r1, r3, #0 - bl SetDiveWarp - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end SetDiveWarpDive - - thumb_func_start LoadMapFromCameraTransition -LoadMapFromCameraTransition: @ 0x08084A00 - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r6, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r5, r1, #0 - lsls r0, r6, #0x18 - asrs r0, r0, #0x18 - lsls r1, r5, #0x18 - asrs r1, r1, #0x18 - movs r3, #1 - rsbs r3, r3, #0 - str r3, [sp] - adds r2, r3, #0 - bl SetWarpDestination - ldr r4, _08084AC0 - ldrb r0, [r4, #0x14] - cmp r0, #0x3a - beq _08084A30 - bl sub_08085178 -_08084A30: - bl ApplyCurrentWarp - bl LoadCurrentMapData - bl LoadEventObjTemplatesFromHeader - bl TrySetMapSaveWarpStatus - bl ClearTempFieldEventData - bl ResetCyclingRoadChallengeData - bl sub_0809C4B4 - adds r0, r6, #0 - adds r1, r5, #0 - bl TryUpdateRandomTrainerRematches - bl DoTimeBasedEvents - bl SetSav1WeatherFromCurrMapHeader - bl ChooseAmbientCrySpecies - bl SetDefaultFlashLevel - bl Overworld_ClearSavedMusic - bl RunOnTransitionMapScript - bl InitMap - ldr r0, [r4] - bl copy_map_tileset2_to_vram_2 - ldr r0, [r4] - bl apply_map_tileset2_palette - movs r4, #6 -_08084A7E: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl ApplyWeatherGammaShiftToPal - adds r4, #1 - cmp r4, #0xc - ble _08084A7E - bl InitSecondaryTilesetAnimation - bl UpdateLocationHistoryForRoamer - bl RoamerMove - bl DoCurrentWeather - bl ResetFieldTasksArgs - bl RunOnResumeMapScript - ldr r2, _08084AC0 - ldrb r0, [r2, #0x14] - cmp r0, #0x3a - bne _08084AB4 - ldr r1, _08084AC4 - ldrh r1, [r1] - cmp r0, r1 - beq _08084AB8 -_08084AB4: - bl ShowMapNamePopup -_08084AB8: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08084AC0: .4byte gUnknown_2036FB8 -_08084AC4: .4byte gUnknown_2031F9C - thumb_func_end LoadMapFromCameraTransition - - thumb_func_start mli0_load_map -mli0_load_map: @ 0x08084AC8 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - bl LoadCurrentMapData - ldr r0, _08084AEC - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08084B0A - ldr r0, _08084AF0 - ldrh r1, [r0, #0x12] - ldr r0, _08084AF4 - cmp r1, r0 - bne _08084AF8 - bl LoadBattlePyramidEventObjectTemplates - b _08084B0A - .align 2, 0 -_08084AEC: .4byte gUnknown_2031F78 -_08084AF0: .4byte gUnknown_2036FB8 -_08084AF4: .4byte 0x00000169 -_08084AF8: - bl InTrainerHill - cmp r0, #0 - beq _08084B06 - bl sub_081D56F0 - b _08084B0A -_08084B06: - bl LoadEventObjTemplatesFromHeader -_08084B0A: - ldr r4, _08084B8C - ldrb r0, [r4, #0x17] - bl IsMapTypeOutdoors - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldrb r0, [r4, #0x17] - bl IsMapTypeIndoors - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - bl sub_080EBDB8 - bl TrySetMapSaveWarpStatus - bl ClearTempFieldEventData - bl ResetCyclingRoadChallengeData - bl sub_0809C4B4 - ldr r0, _08084B90 - ldr r1, [r0] - movs r0, #4 - ldrsb r0, [r1, r0] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r1, #5] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl TryUpdateRandomTrainerRematches - cmp r7, #1 - beq _08084B56 - bl DoTimeBasedEvents -_08084B56: - bl SetSav1WeatherFromCurrMapHeader - bl ChooseAmbientCrySpecies - cmp r5, #0 - beq _08084B68 - ldr r0, _08084B94 - bl FlagClear -_08084B68: - bl SetDefaultFlashLevel - bl Overworld_ClearSavedMusic - bl RunOnTransitionMapScript - bl UpdateLocationHistoryForRoamer - bl RoamerMoveToOtherLocationSet - ldrh r1, [r4, #0x12] - ldr r0, _08084B98 - cmp r1, r0 - bne _08084B9C - movs r0, #0 - bl InitBattlePyramidMap - b _08084BAE - .align 2, 0 -_08084B8C: .4byte gUnknown_2036FB8 -_08084B90: .4byte gUnknown_3005AEC -_08084B94: .4byte 0x00000888 -_08084B98: .4byte 0x00000169 -_08084B9C: - bl InTrainerHill - cmp r0, #0 - beq _08084BAA - bl InitTrainerHillMap - b _08084BAE -_08084BAA: - bl InitMap -_08084BAE: - cmp r7, #1 - beq _08084BC6 - cmp r6, #0 - beq _08084BC6 - ldr r1, _08084BCC - ldr r0, [r1] - ldr r1, [r1, #4] - bl UpdateTVScreensOnMap - movs r0, #1 - bl sub_080E9EC4 -_08084BC6: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08084BCC: .4byte gUnknown_3005B20 - thumb_func_end mli0_load_map - - thumb_func_start ResetInitialPlayerAvatarState -ResetInitialPlayerAvatarState: @ 0x08084BD0 - ldr r1, _08084BDC - movs r0, #1 - strb r0, [r1, #1] - strb r0, [r1] - bx lr - .align 2, 0 -_08084BDC: .4byte gUnknown_2031FA0 - thumb_func_end ResetInitialPlayerAvatarState - - thumb_func_start StoreInitialPlayerAvatarState -StoreInitialPlayerAvatarState: @ 0x08084BE0 - push {r4, lr} - bl GetPlayerFacingDirection - ldr r4, _08084BFC - strb r0, [r4, #1] - movs r0, #2 - bl TestPlayerAvatarFlags - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08084C00 - movs r0, #2 - b _08084C32 - .align 2, 0 -_08084BFC: .4byte gUnknown_2031FA0 -_08084C00: - movs r0, #4 - bl TestPlayerAvatarFlags - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08084C10 - movs r0, #4 - b _08084C32 -_08084C10: - movs r0, #8 - bl TestPlayerAvatarFlags - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08084C20 - movs r0, #8 - b _08084C32 -_08084C20: - movs r0, #0x10 - bl TestPlayerAvatarFlags - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08084C30 - movs r0, #0x10 - b _08084C32 -_08084C30: - movs r0, #1 -_08084C32: - strb r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end StoreInitialPlayerAvatarState - - thumb_func_start GetInitialPlayerAvatarState -GetInitialPlayerAvatarState: @ 0x08084C3C - push {r4, r5, r6, r7, lr} - bl GetCurrentMapType - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - bl GetCenterScreenMetatileBehavior - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r6, _08084C88 - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r5, #0 - bl GetAdjustedInitialTransitionFlags - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, _08084C8C - ands r7, r0 - orrs r7, r1 - adds r0, r6, #0 - adds r2, r4, #0 - adds r3, r5, #0 - bl GetAdjustedInitialDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x10 - ldr r1, _08084C90 - ands r7, r1 - orrs r7, r0 - str r7, [r6] - adds r0, r6, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08084C88: .4byte gUnknown_2031FA0 -_08084C8C: .4byte 0xFFFFFF00 -_08084C90: .4byte 0xFFFF00FF - thumb_func_end GetInitialPlayerAvatarState - - thumb_func_start GetAdjustedInitialTransitionFlags -GetAdjustedInitialTransitionFlags: @ 0x08084C94 - push {r4, r5, r6, lr} - adds r6, r0, #0 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r4, r2, #0x18 - cmp r4, #8 - beq _08084CB0 - ldr r0, _08084CB8 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08084CEA -_08084CB0: - cmp r4, #5 - bne _08084CBC - movs r0, #0x10 - b _08084CEC - .align 2, 0 -_08084CB8: .4byte 0x0000088D -_08084CBC: - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsSurfableWaterOrUnderwater - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08084CD0 - movs r0, #8 - b _08084CEC -_08084CD0: - bl Overworld_IsBikingAllowed - cmp r0, #1 - bne _08084CEA - ldrb r0, [r6] - cmp r0, #2 - bne _08084CE2 - movs r0, #2 - b _08084CEC -_08084CE2: - cmp r0, #4 - bne _08084CEA - movs r0, #4 - b _08084CEC -_08084CEA: - movs r0, #1 -_08084CEC: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetAdjustedInitialTransitionFlags - - thumb_func_start GetAdjustedInitialDirection -GetAdjustedInitialDirection: @ 0x08084CF4 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - lsls r2, r2, #0x10 - lsrs r4, r2, #0x10 - lsls r3, r3, #0x18 - lsrs r5, r3, #0x18 - ldr r0, _08084D54 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08084D14 - cmp r5, #6 - beq _08084D74 -_08084D14: - lsls r4, r4, #0x18 - lsrs r5, r4, #0x18 - adds r0, r5, #0 - bl MetatileBehavior_IsDeepSouthWarp - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08084D50 - adds r0, r5, #0 - bl MetatileBehavior_IsNonAnimDoor - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08084DAA - adds r0, r5, #0 - bl MetatileBehavior_IsDoor - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08084DAA - adds r0, r5, #0 - bl MetatileBehavior_IsSouthArrowWarp - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08084D58 -_08084D50: - movs r0, #2 - b _08084DB0 - .align 2, 0 -_08084D54: .4byte 0x0000088D -_08084D58: - adds r0, r5, #0 - bl MetatileBehavior_IsNorthArrowWarp - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08084DAA - adds r0, r5, #0 - bl MetatileBehavior_IsWestArrowWarp - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08084D78 -_08084D74: - movs r0, #4 - b _08084DB0 -_08084D78: - adds r0, r5, #0 - bl MetatileBehavior_IsEastArrowWarp - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08084D8A - movs r0, #3 - b _08084DB0 -_08084D8A: - ldrb r0, [r6] - cmp r0, #0x10 - bne _08084D94 - cmp r7, #8 - beq _08084DAE -_08084D94: - cmp r0, #8 - bne _08084D9C - cmp r7, #0x10 - beq _08084DAE -_08084D9C: - lsrs r0, r4, #0x18 - bl MetatileBehavior_IsLadder - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08084DAE -_08084DAA: - movs r0, #1 - b _08084DB0 -_08084DAE: - ldrb r0, [r6, #1] -_08084DB0: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetAdjustedInitialDirection - - thumb_func_start GetCenterScreenMetatileBehavior -GetCenterScreenMetatileBehavior: @ 0x08084DB8 - push {lr} - ldr r0, _08084DD8 - ldr r1, [r0] - movs r2, #0 - ldrsh r0, [r1, r2] - adds r0, #7 - movs r2, #2 - ldrsh r1, [r1, r2] - adds r1, #7 - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 -_08084DD8: .4byte gUnknown_3005AEC - thumb_func_end GetCenterScreenMetatileBehavior - - thumb_func_start Overworld_IsBikingAllowed -Overworld_IsBikingAllowed: @ 0x08084DDC - push {lr} - ldr r0, _08084DF0 - ldrb r1, [r0, #0x1a] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08084DF4 - movs r0, #1 - b _08084DF6 - .align 2, 0 -_08084DF0: .4byte gUnknown_2036FB8 -_08084DF4: - movs r0, #0 -_08084DF6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end Overworld_IsBikingAllowed - - thumb_func_start SetDefaultFlashLevel -SetDefaultFlashLevel: @ 0x08084DFC - push {lr} - ldr r0, _08084E10 - ldrb r1, [r0, #0x15] - cmp r1, #0 - bne _08084E18 - ldr r0, _08084E14 - ldr r0, [r0] - adds r0, #0x30 - strb r1, [r0] - b _08084E46 - .align 2, 0 -_08084E10: .4byte gUnknown_2036FB8 -_08084E14: .4byte gUnknown_3005AEC -_08084E18: - ldr r0, _08084E30 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08084E38 - ldr r0, _08084E34 - ldr r0, [r0] - adds r0, #0x30 - movs r1, #1 - strb r1, [r0] - b _08084E46 - .align 2, 0 -_08084E30: .4byte 0x00000888 -_08084E34: .4byte gUnknown_3005AEC -_08084E38: - ldr r0, _08084E4C - ldr r1, [r0] - ldr r0, _08084E50 - ldr r0, [r0] - subs r0, #1 - adds r1, #0x30 - strb r0, [r1] -_08084E46: - pop {r0} - bx r0 - .align 2, 0 -_08084E4C: .4byte gUnknown_3005AEC -_08084E50: .4byte gUnknown_852AB14 - thumb_func_end SetDefaultFlashLevel - - thumb_func_start Overworld_SetFlashLevel -Overworld_SetFlashLevel: @ 0x08084E54 - push {lr} - adds r1, r0, #0 - cmp r1, #0 - blt _08084E64 - ldr r0, _08084E74 - ldr r0, [r0] - cmp r1, r0 - ble _08084E66 -_08084E64: - movs r1, #0 -_08084E66: - ldr r0, _08084E78 - ldr r0, [r0] - adds r0, #0x30 - strb r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_08084E74: .4byte gUnknown_852AB14 -_08084E78: .4byte gUnknown_3005AEC - thumb_func_end Overworld_SetFlashLevel - - thumb_func_start Overworld_GetFlashLevel -Overworld_GetFlashLevel: @ 0x08084E7C - ldr r0, _08084E88 - ldr r0, [r0] - adds r0, #0x30 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08084E88: .4byte gUnknown_3005AEC - thumb_func_end Overworld_GetFlashLevel - - thumb_func_start SetCurrentMapLayout -SetCurrentMapLayout: @ 0x08084E8C - push {lr} - ldr r1, _08084EA0 - ldr r1, [r1] - strh r0, [r1, #0x32] - bl GetMapLayout - ldr r1, _08084EA4 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08084EA0: .4byte gUnknown_3005AEC -_08084EA4: .4byte gUnknown_2036FB8 - thumb_func_end SetCurrentMapLayout - - thumb_func_start sub_08084EA8 -sub_08084EA8: @ 0x08084EA8 - ldr r1, _08084EB0 - strb r0, [r1] - bx lr - .align 2, 0 -_08084EB0: .4byte gUnknown_2031F78 - thumb_func_end sub_08084EA8 - - thumb_func_start sub_08084EB4 -sub_08084EB4: @ 0x08084EB4 - ldr r0, _08084EBC - ldrb r0, [r0] - bx lr - .align 2, 0 -_08084EBC: .4byte gUnknown_2031F78 - thumb_func_end sub_08084EB4 - - thumb_func_start ShouldLegendaryMusicPlayAtLocation -ShouldLegendaryMusicPlayAtLocation: @ 0x08084EC0 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08084F0C - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08084F14 - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #0 - bne _08084F14 - movs r0, #1 - ldrsb r0, [r4, r0] - cmp r0, #5 - blt _08084EEC - cmp r0, #8 - ble _08084F06 - cmp r0, #0x2b - bgt _08084EEC - cmp r0, #0x27 - bge _08084F06 -_08084EEC: - ldr r0, _08084F10 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #3 - bls _08084F14 - movs r0, #1 - ldrsb r0, [r4, r0] - cmp r0, #0x2e - bgt _08084F14 - cmp r0, #0x2c - blt _08084F14 -_08084F06: - movs r0, #1 - b _08084F16 - .align 2, 0 -_08084F0C: .4byte 0x0000088A -_08084F10: .4byte 0x0000405E -_08084F14: - movs r0, #0 -_08084F16: - pop {r4} - pop {r1} - bx r1 - thumb_func_end ShouldLegendaryMusicPlayAtLocation - - thumb_func_start NoMusicInSotopolisWithLegendaries -NoMusicInSotopolisWithLegendaries: @ 0x08084F1C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08084F44 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bne _08084F3E - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #0 - bne _08084F3E - movs r0, #1 - ldrsb r0, [r4, r0] - cmp r0, #7 - beq _08084F48 -_08084F3E: - movs r0, #0 - b _08084F4A - .align 2, 0 -_08084F44: .4byte 0x000040CA -_08084F48: - movs r0, #1 -_08084F4A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end NoMusicInSotopolisWithLegendaries - - thumb_func_start IsInfiltratedWeatherInstitute -IsInfiltratedWeatherInstitute: @ 0x08084F50 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08084F74 - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08084F6E - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #0x20 - bne _08084F6E - ldrb r0, [r4, #1] - cmp r0, #1 - bls _08084F78 -_08084F6E: - movs r0, #0 - b _08084F7A - .align 2, 0 -_08084F74: .4byte 0x000040B3 -_08084F78: - movs r0, #1 -_08084F7A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end IsInfiltratedWeatherInstitute - - thumb_func_start IsInflitratedSpaceCenter -IsInflitratedSpaceCenter: @ 0x08084F80 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08084FB8 - adds r0, r4, #0 - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08084FB4 - adds r0, r4, #0 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #2 - bhi _08084FB4 - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, #0xe - bne _08084FB4 - ldrb r0, [r5, #1] - subs r0, #9 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _08084FBC -_08084FB4: - movs r0, #0 - b _08084FBE - .align 2, 0 -_08084FB8: .4byte 0x0000405D -_08084FBC: - movs r0, #1 -_08084FBE: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end IsInflitratedSpaceCenter - - thumb_func_start GetLocationMusic -GetLocationMusic: @ 0x08084FC4 - push {r4, lr} - adds r4, r0, #0 - bl NoMusicInSotopolisWithLegendaries - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bne _08084FDC - ldr r0, _08084FD8 - b _08085036 - .align 2, 0 -_08084FD8: .4byte 0x0000FFFF -_08084FDC: - adds r0, r4, #0 - bl ShouldLegendaryMusicPlayAtLocation - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bne _08084FF4 - ldr r0, _08084FF0 - b _08085036 - .align 2, 0 -_08084FF0: .4byte 0x000001BB -_08084FF4: - adds r0, r4, #0 - bl IsInflitratedSpaceCenter - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bne _0808500C - ldr r0, _08085008 - b _08085036 - .align 2, 0 -_08085008: .4byte 0x000001B9 -_0808500C: - adds r0, r4, #0 - bl IsInfiltratedWeatherInstitute - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - beq _08085032 - movs r0, #0 - ldrsb r0, [r4, r0] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - ldrsb r1, [r4, r1] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl Overworld_GetMapHeaderByGroupAndId - ldrh r0, [r0, #0x10] - b _08085036 -_08085032: - movs r0, #0xcb - lsls r0, r0, #1 -_08085036: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetLocationMusic - - thumb_func_start GetCurrLocationDefaultMusic -GetCurrLocationDefaultMusic: @ 0x0808503C - push {r4, lr} - ldr r0, _0808505C - ldr r0, [r0] - ldrh r1, [r0, #4] - movs r0, #0xd0 - lsls r0, r0, #5 - cmp r1, r0 - bne _08085064 - bl GetSav1Weather - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #8 - bne _08085064 - ldr r0, _08085060 - b _08085098 - .align 2, 0 -_0808505C: .4byte gUnknown_3005AEC -_08085060: .4byte 0x00000199 -_08085064: - ldr r4, _0808507C - ldr r0, [r4] - adds r0, #4 - bl GetLocationMusic - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r0, _08085080 - cmp r1, r0 - beq _08085084 - adds r0, r1, #0 - b _08085098 - .align 2, 0 -_0808507C: .4byte gUnknown_3005AEC -_08085080: .4byte 0x00007FFF -_08085084: - ldr r0, [r4] - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0x17 - ble _08085094 - movs r0, #0xc9 - lsls r0, r0, #1 - b _08085098 -_08085094: - movs r0, #0xb4 - lsls r0, r0, #1 -_08085098: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetCurrLocationDefaultMusic - - thumb_func_start CallBattleArenaFunction -CallBattleArenaFunction: @ 0x080850A0 - push {lr} - ldr r0, _080850B8 - bl GetLocationMusic - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r0, _080850BC - cmp r1, r0 - beq _080850C0 - adds r0, r1, #0 - b _080850DC - .align 2, 0 -_080850B8: .4byte gUnknown_2031F84 -_080850BC: .4byte 0x00007FFF -_080850C0: - ldr r0, _080850D4 - ldr r0, [r0] - ldrh r1, [r0, #4] - movs r0, #0x80 - lsls r0, r0, #2 - cmp r1, r0 - beq _080850D8 - subs r0, #0x6e - b _080850DC - .align 2, 0 -_080850D4: .4byte gUnknown_3005AEC -_080850D8: - movs r0, #0xb4 - lsls r0, r0, #1 -_080850DC: - pop {r1} - bx r1 - thumb_func_end CallBattleArenaFunction - - thumb_func_start Overworld_ResetMapMusic -Overworld_ResetMapMusic: @ 0x080850E0 - push {lr} - bl ResetMapMusic - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Overworld_ResetMapMusic - - thumb_func_start Overworld_PlaySpecialMapMusic -Overworld_PlaySpecialMapMusic: @ 0x080850EC - push {r4, lr} - bl GetCurrLocationDefaultMusic - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, _08085110 - cmp r4, r0 - beq _0808513E - ldr r0, _08085114 - cmp r4, r0 - beq _0808513E - ldr r0, _08085118 - ldr r1, [r0] - ldrh r0, [r1, #0x2c] - cmp r0, #0 - beq _0808511C - adds r4, r0, #0 - b _0808513E - .align 2, 0 -_08085110: .4byte 0x000001BB -_08085114: .4byte 0x0000FFFF -_08085118: .4byte gUnknown_3005AEC -_0808511C: - bl GetCurrentMapType - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #5 - bne _08085130 - ldr r4, _0808512C - b _0808513E - .align 2, 0 -_0808512C: .4byte 0x0000019B -_08085130: - movs r0, #8 - bl TestPlayerAvatarFlags - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808513E - ldr r4, _08085158 -_0808513E: - bl sub_080A27CC - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r4, r0 - beq _08085150 - adds r0, r4, #0 - bl PlayNewMapMusic -_08085150: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08085158: .4byte 0x0000016D - thumb_func_end Overworld_PlaySpecialMapMusic - - thumb_func_start Overworld_SetSavedMusic -Overworld_SetSavedMusic: @ 0x0808515C - ldr r1, _08085164 - ldr r1, [r1] - strh r0, [r1, #0x2c] - bx lr - .align 2, 0 -_08085164: .4byte gUnknown_3005AEC - thumb_func_end Overworld_SetSavedMusic - - thumb_func_start Overworld_ClearSavedMusic -Overworld_ClearSavedMusic: @ 0x08085168 - ldr r0, _08085174 - ldr r1, [r0] - movs r0, #0 - strh r0, [r1, #0x2c] - bx lr - .align 2, 0 -_08085174: .4byte gUnknown_3005AEC - thumb_func_end Overworld_ClearSavedMusic - - thumb_func_start sub_08085178 -sub_08085178: @ 0x08085178 - push {r4, r5, r6, lr} - ldr r0, _080851DC - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080851F8 - bl CallBattleArenaFunction - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - bl sub_080A27CC - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, _080851E0 - cmp r4, r0 - beq _080851BE - ldr r0, _080851E4 - cmp r4, r0 - beq _080851BE - ldr r0, _080851E8 - cmp r5, r0 - beq _080851F8 - ldr r6, _080851EC - cmp r5, r6 - beq _080851F8 - movs r0, #8 - bl TestPlayerAvatarFlags - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080851BE - adds r4, r6, #0 -_080851BE: - cmp r4, r5 - beq _080851F8 - movs r0, #6 - bl TestPlayerAvatarFlags - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080851F0 - adds r0, r4, #0 - movs r1, #4 - movs r2, #4 - bl FadeOutAndFadeInNewMapMusic - b _080851F8 - .align 2, 0 -_080851DC: .4byte 0x00004001 -_080851E0: .4byte 0x000001BB -_080851E4: .4byte 0x0000FFFF -_080851E8: .4byte 0x0000019B -_080851EC: .4byte 0x0000016D -_080851F0: - adds r0, r4, #0 - movs r1, #8 - bl FadeOutAndPlayNewMapMusic -_080851F8: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08085178 - - thumb_func_start Overworld_ChangeMusicToDefault -Overworld_ChangeMusicToDefault: @ 0x08085200 - push {r4, lr} - bl sub_080A27CC - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - bl GetCurrLocationDefaultMusic - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r4, r0 - beq _08085226 - bl GetCurrLocationDefaultMusic - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #8 - bl FadeOutAndPlayNewMapMusic -_08085226: - pop {r4} - pop {r0} - bx r0 - thumb_func_end Overworld_ChangeMusicToDefault - - thumb_func_start GetTruckCameraBobbingY -GetTruckCameraBobbingY: @ 0x0808522C - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - bl sub_080A27CC - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, r4 - beq _0808524C - ldr r0, _08085254 - cmp r1, r0 - beq _0808524C - adds r0, r4, #0 - movs r1, #8 - bl FadeOutAndPlayNewMapMusic -_0808524C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08085254: .4byte 0x000001BB - thumb_func_end GetTruckCameraBobbingY - - thumb_func_start GetMapMusicFadeoutSpeed -GetMapMusicFadeoutSpeed: @ 0x08085258 - push {lr} - bl GetDestinationWarpMapHeader - ldrb r0, [r0, #0x17] - bl IsMapTypeIndoors - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08085270 - movs r0, #4 - b _08085272 -_08085270: - movs r0, #2 -_08085272: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetMapMusicFadeoutSpeed - - thumb_func_start TryFadeOutOldMapMusic -TryFadeOutOldMapMusic: @ 0x08085278 - push {r4, r5, lr} - bl sub_080A27CC - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - bl CallBattleArenaFunction - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, _080852EC - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080852E6 - bl sub_080A27CC - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r4, r0 - beq _080852E6 - ldr r0, _080852F0 - cmp r5, r0 - bne _080852DA - ldr r0, _080852F4 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #2 - bne _080852DA - ldr r0, _080852F8 - ldr r0, [r0] - ldr r1, _080852FC - ldrh r2, [r0, #4] - movs r0, #0xe0 - lsls r0, r0, #3 - cmp r2, r0 - bne _080852DA - ldr r3, _08085300 - ldrh r0, [r3] - ands r1, r0 - cmp r1, r2 - bne _080852DA - ldr r1, [r3, #4] - ldr r0, _08085304 - cmp r1, r0 - beq _080852E6 -_080852DA: - bl GetMapMusicFadeoutSpeed - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl FadeOutMapMusic -_080852E6: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080852EC: .4byte 0x00004001 -_080852F0: .4byte 0x0000016D -_080852F4: .4byte 0x000040CA -_080852F8: .4byte gUnknown_3005AEC -_080852FC: .4byte 0x0000FFFF -_08085300: .4byte gUnknown_2031F84 -_08085304: .4byte 0x0035001D - thumb_func_end TryFadeOutOldMapMusic - - thumb_func_start BGMusicStopped -BGMusicStopped: @ 0x08085308 - push {lr} - bl IsNotWaitingForBGMStop - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end BGMusicStopped - - thumb_func_start Overworld_FadeOutMapMusic -Overworld_FadeOutMapMusic: @ 0x08085318 - push {lr} - movs r0, #4 - bl FadeOutMapMusic - pop {r0} - bx r0 - thumb_func_end Overworld_FadeOutMapMusic - - thumb_func_start PlayAmbientCry -PlayAmbientCry: @ 0x08085324 - push {r4, lr} - sub sp, #4 - mov r4, sp - adds r4, #2 - mov r0, sp - adds r1, r4, #0 - bl PlayerGetDestCoords - ldr r0, _0808539C - ldrb r0, [r0] - cmp r0, #1 - bne _08085358 - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsSurfableWaterOrUnderwater - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08085394 -_08085358: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x58 - bl __umodsi3 - adds r4, r0, #0 - adds r4, #0xd4 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x1e - bl __umodsi3 - adds r2, r0, #0 - adds r2, #0x32 - ldr r0, _080853A0 - ldrh r0, [r0] - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - adds r1, r4, #0 - movs r3, #1 - bl PlayCry2 -_08085394: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808539C: .4byte gUnknown_2031FA6 -_080853A0: .4byte gUnknown_2031FA4 - thumb_func_end PlayAmbientCry - - thumb_func_start UpdateAmbientCry -UpdateAmbientCry: @ 0x080853A4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - adds r7, r1, #0 - movs r1, #0 - ldrsh r0, [r6, r1] - cmp r0, #4 - bhi _08085488 - lsls r0, r0, #2 - ldr r1, _080853C4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080853C4: .4byte _080853C8 -_080853C8: @ jump table - .4byte _080853DC @ case 0 - .4byte _080853F0 @ case 1 - .4byte _0808540C @ case 2 - .4byte _08085474 @ case 3 - .4byte _08085488 @ case 4 -_080853DC: - ldr r0, _080853E8 - ldrh r0, [r0] - cmp r0, #0 - bne _080853EC - movs r0, #4 - b _08085486 - .align 2, 0 -_080853E8: .4byte gUnknown_2031FA4 -_080853EC: - movs r0, #1 - b _08085486 -_080853F0: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x96 - lsls r1, r1, #4 - bl __umodsi3 - movs r1, #0x96 - lsls r1, r1, #3 - adds r0, r0, r1 - strh r0, [r7] - movs r0, #3 - b _08085486 -_0808540C: - movs r0, #1 - mov sb, r0 - bl sub_0806B004 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r5, #0 - b _08085424 -_0808541E: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_08085424: - cmp r5, r8 - bhs _0808544C - movs r0, #0x64 - muls r0, r5, r0 - ldr r4, _08085470 - adds r0, r0, r4 - movs r1, #6 - bl GetMonData - cmp r0, #0 - bne _0808541E - adds r0, r4, #0 - bl GetMonAbility - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x44 - bne _0808541E - movs r1, #2 - mov sb, r1 -_0808544C: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r4, #0x96 - lsls r4, r4, #3 - adds r1, r4, #0 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r0, r0, r4 - mov r1, sb - bl __divsi3 - strh r0, [r7] - movs r0, #3 - b _08085486 - .align 2, 0 -_08085470: .4byte gUnknown_2024190 -_08085474: - ldrh r0, [r7] - subs r0, #1 - strh r0, [r7] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08085488 - bl PlayAmbientCry - movs r0, #2 -_08085486: - strh r0, [r6] -_08085488: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end UpdateAmbientCry - - thumb_func_start ChooseAmbientCrySpecies -ChooseAmbientCrySpecies: @ 0x08085494 - push {lr} - ldr r0, _080854BC - ldr r0, [r0] - ldrh r1, [r0, #4] - movs r0, #0xb4 - lsls r0, r0, #6 - cmp r1, r0 - bne _080854C4 - bl IsMirageIslandPresent - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080854C4 - ldr r1, _080854C0 - movs r0, #1 - strb r0, [r1] - bl GetLocalWaterMon - b _080854CA - .align 2, 0 -_080854BC: .4byte gUnknown_3005AEC -_080854C0: .4byte gUnknown_2031FA6 -_080854C4: - ldr r0, _080854D4 - bl GetLocalWildMon -_080854CA: - ldr r1, _080854D8 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080854D4: .4byte gUnknown_2031FA6 -_080854D8: .4byte gUnknown_2031FA4 - thumb_func_end ChooseAmbientCrySpecies - - thumb_func_start GetMapTypeByGroupAndId -GetMapTypeByGroupAndId: @ 0x080854DC - push {lr} - lsls r0, r0, #0x18 - asrs r0, r0, #8 - lsrs r0, r0, #0x10 - lsls r1, r1, #0x18 - asrs r1, r1, #8 - lsrs r1, r1, #0x10 - bl Overworld_GetMapHeaderByGroupAndId - ldrb r0, [r0, #0x17] - pop {r1} - bx r1 - thumb_func_end GetMapTypeByGroupAndId - - thumb_func_start GetMapTypeByWarpData -GetMapTypeByWarpData: @ 0x080854F4 - push {lr} - movs r2, #0 - ldrsb r2, [r0, r2] - movs r1, #1 - ldrsb r1, [r0, r1] - adds r0, r2, #0 - bl GetMapTypeByGroupAndId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - thumb_func_end GetMapTypeByWarpData - - thumb_func_start GetCurrentMapType -GetCurrentMapType: @ 0x0808550C - push {lr} - ldr r0, _08085520 - ldr r0, [r0] - adds r0, #4 - bl GetMapTypeByWarpData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_08085520: .4byte gUnknown_3005AEC - thumb_func_end GetCurrentMapType - - thumb_func_start GetLastUsedWarpMapType -GetLastUsedWarpMapType: @ 0x08085524 - push {lr} - ldr r0, _08085534 - bl GetMapTypeByWarpData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_08085534: .4byte gUnknown_2031F7C - thumb_func_end GetLastUsedWarpMapType - - thumb_func_start IsMapTypeOutdoors -IsMapTypeOutdoors: @ 0x08085538 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - beq _08085552 - cmp r0, #1 - beq _08085552 - cmp r0, #5 - beq _08085552 - cmp r0, #2 - beq _08085552 - cmp r0, #6 - bne _08085556 -_08085552: - movs r0, #1 - b _08085558 -_08085556: - movs r0, #0 -_08085558: - pop {r1} - bx r1 - thumb_func_end IsMapTypeOutdoors - - thumb_func_start Overworld_MapTypeAllowsTeleportAndFly -Overworld_MapTypeAllowsTeleportAndFly: @ 0x0808555C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - beq _08085572 - cmp r0, #1 - beq _08085572 - cmp r0, #6 - beq _08085572 - cmp r0, #2 - bne _08085576 -_08085572: - movs r0, #1 - b _08085578 -_08085576: - movs r0, #0 -_08085578: - pop {r1} - bx r1 - thumb_func_end Overworld_MapTypeAllowsTeleportAndFly - - thumb_func_start IsMapTypeIndoors -IsMapTypeIndoors: @ 0x0808557C - push {lr} - lsls r0, r0, #0x18 - movs r1, #0xf8 - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _08085590 - movs r0, #0 - b _08085592 -_08085590: - movs r0, #1 -_08085592: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsMapTypeIndoors - - thumb_func_start GetSavedWarpRegionMapSectionId -GetSavedWarpRegionMapSectionId: @ 0x08085598 - push {lr} - ldr r0, _080855BC - ldr r1, [r0] - movs r0, #0x14 - ldrsb r0, [r1, r0] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r1, #0x15] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl Overworld_GetMapHeaderByGroupAndId - ldrb r0, [r0, #0x14] - pop {r1} - bx r1 - .align 2, 0 -_080855BC: .4byte gUnknown_3005AEC - thumb_func_end GetSavedWarpRegionMapSectionId - - thumb_func_start GetCurrentRegionMapSectionId -GetCurrentRegionMapSectionId: @ 0x080855C0 - push {lr} - ldr r0, _080855E4 - ldr r1, [r0] - movs r0, #4 - ldrsb r0, [r1, r0] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r1, #5] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl Overworld_GetMapHeaderByGroupAndId - ldrb r0, [r0, #0x14] - pop {r1} - bx r1 - .align 2, 0 -_080855E4: .4byte gUnknown_3005AEC - thumb_func_end GetCurrentRegionMapSectionId - - thumb_func_start GetCurrentMapBattleScene -GetCurrentMapBattleScene: @ 0x080855E8 - push {lr} - ldr r0, _0808560C - ldr r1, [r0] - movs r0, #4 - ldrsb r0, [r1, r0] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r1, #5] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl Overworld_GetMapHeaderByGroupAndId - ldrb r0, [r0, #0x1b] - pop {r1} - bx r1 - .align 2, 0 -_0808560C: .4byte gUnknown_3005AEC - thumb_func_end GetCurrentMapBattleScene - - thumb_func_start InitOverworldBgs -InitOverworldBgs: @ 0x08085610 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - ldr r1, _0808568C - movs r0, #0 - movs r2, #4 - bl InitBgsFromTemplates - movs r0, #1 - movs r1, #5 - movs r2, #1 - bl SetBgAttribute - movs r0, #2 - movs r1, #5 - movs r2, #1 - bl SetBgAttribute - movs r0, #3 - movs r1, #5 - movs r2, #1 - bl SetBgAttribute - ldr r0, _08085690 - mov r8, r0 - movs r4, #0x80 - lsls r4, r4, #4 - adds r0, r4, #0 - bl AllocZeroed - mov r1, r8 - str r0, [r1] - ldr r6, _08085694 - adds r0, r4, #0 - bl AllocZeroed - str r0, [r6] - ldr r5, _08085698 - adds r0, r4, #0 - bl AllocZeroed - str r0, [r5] - mov r0, r8 - ldr r1, [r0] - movs r0, #1 - bl SetBgTilemapBuffer - ldr r1, [r6] - movs r0, #2 - bl SetBgTilemapBuffer - ldr r1, [r5] - movs r0, #3 - bl SetBgTilemapBuffer - bl InitStandardTextBoxWindows - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0808568C: .4byte gUnknown_830FCF8 -_08085690: .4byte gUnknown_3005B00 -_08085694: .4byte gUnknown_3005AFC -_08085698: .4byte gUnknown_3005B04 - thumb_func_end InitOverworldBgs - - thumb_func_start CleanupOverworldWindowsAndTilemaps -CleanupOverworldWindowsAndTilemaps: @ 0x0808569C - push {r4, lr} - bl ClearMirageTowerPulseBlendEffect - bl sub_08196DE8 - ldr r4, _080856DC - ldr r0, [r4] - cmp r0, #0 - beq _080856B6 - bl Free - movs r0, #0 - str r0, [r4] -_080856B6: - ldr r4, _080856E0 - ldr r0, [r4] - cmp r0, #0 - beq _080856C6 - bl Free - movs r0, #0 - str r0, [r4] -_080856C6: - ldr r4, _080856E4 - ldr r0, [r4] - cmp r0, #0 - beq _080856D6 - bl Free - movs r0, #0 - str r0, [r4] -_080856D6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080856DC: .4byte gUnknown_3005B04 -_080856E0: .4byte gUnknown_3005AFC -_080856E4: .4byte gUnknown_3005B00 - thumb_func_end CleanupOverworldWindowsAndTilemaps - - thumb_func_start sub_080856E8 -sub_080856E8: @ 0x080856E8 - push {lr} - bl sub_080FC934 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080856E8 - - thumb_func_start IsUpdateLinkStateCBActive -IsUpdateLinkStateCBActive: @ 0x080856F4 - push {lr} - ldr r0, _08085704 - ldr r1, [r0] - ldr r0, _08085708 - cmp r1, r0 - beq _0808570C - movs r0, #0 - b _0808570E - .align 2, 0 -_08085704: .4byte gUnknown_3002360 -_08085708: .4byte CB1_UpdateLinkState -_0808570C: - movs r0, #1 -_0808570E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsUpdateLinkStateCBActive - - thumb_func_start DoCB1_Overworld -DoCB1_Overworld: @ 0x08085714 - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r5, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r4, r1, #0 - bl sub_0808AEDC - mov r6, sp - mov r0, sp - bl FieldClearPlayerInput - mov r0, sp - adds r1, r5, #0 - adds r2, r4, #0 - bl FieldGetPlayerInput - bl sub_080987F4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08085762 - mov r0, sp - bl ProcessPlayerFieldInput - cmp r0, #1 - bne _08085758 - bl sub_080987DC - bl HideMapNamePopUpWindow - b _08085762 -_08085758: - ldrb r0, [r6, #2] - adds r1, r5, #0 - adds r2, r4, #0 - bl player_step -_08085762: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end DoCB1_Overworld - - thumb_func_start CB1_Overworld -CB1_Overworld: @ 0x0808576C - push {lr} - ldr r2, _08085784 - ldr r1, [r2, #4] - ldr r0, _08085788 - cmp r1, r0 - bne _08085780 - ldrh r0, [r2, #0x2e] - ldrh r1, [r2, #0x2c] - bl DoCB1_Overworld -_08085780: - pop {r0} - bx r0 - .align 2, 0 -_08085784: .4byte gUnknown_3002360 -_08085788: .4byte CB2_Overworld - thumb_func_end CB1_Overworld - - thumb_func_start OverworldBasic -OverworldBasic: @ 0x0808578C - push {lr} - bl ScriptContext2_RunScript - bl RunTasks - bl AnimateSprites - bl CameraUpdate - bl UpdateCameraPanning - bl BuildOamBuffer - bl UpdatePaletteFade - bl UpdateTilesetAnimations - bl do_scheduled_bg_tilemap_copies_to_vram - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end OverworldBasic - - thumb_func_start CB2_OverworldBasic -CB2_OverworldBasic: @ 0x080857B8 - push {lr} - bl OverworldBasic - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CB2_OverworldBasic - - thumb_func_start CB2_Overworld -CB2_Overworld: @ 0x080857C4 - push {r4, lr} - ldr r0, _080857EC - ldrb r0, [r0, #7] - lsrs r0, r0, #7 - adds r4, r0, #0 - cmp r4, #0 - beq _080857D8 - movs r0, #0 - bl SetVBlankCallback -_080857D8: - bl OverworldBasic - cmp r4, #0 - beq _080857E4 - bl SetFieldVBlankCallback -_080857E4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080857EC: .4byte gUnknown_2037C74 - thumb_func_end CB2_Overworld - - thumb_func_start sub_080857F0 -sub_080857F0: @ 0x080857F0 - ldr r1, _080857F8 - str r0, [r1] - bx lr - .align 2, 0 -_080857F8: .4byte gUnknown_3002360 - thumb_func_end sub_080857F0 - - thumb_func_start sub_080857FC -sub_080857FC: @ 0x080857FC - ldr r1, _08085804 - str r0, [r1] - bx lr - .align 2, 0 -_08085804: .4byte gUnknown_3000E0C - thumb_func_end sub_080857FC - - thumb_func_start map_post_load_hook_exec -map_post_load_hook_exec: @ 0x08085808 - push {r4, lr} - ldr r4, _08085820 - ldr r0, [r4] - cmp r0, #0 - beq _08085834 - bl _call_via_r0 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08085824 - movs r0, #0 - b _08085854 - .align 2, 0 -_08085820: .4byte gUnknown_3005B10 -_08085824: - movs r1, #0 - str r1, [r4] - ldr r0, _08085830 - str r1, [r0] - b _08085852 - .align 2, 0 -_08085830: .4byte gUnknown_3005B0C -_08085834: - ldr r0, _08085844 - ldr r0, [r0] - cmp r0, #0 - beq _08085848 - bl _call_via_r0 - b _0808584C - .align 2, 0 -_08085844: .4byte gUnknown_3005B0C -_08085848: - bl mapldr_default -_0808584C: - ldr r1, _0808585C - movs r0, #0 - str r0, [r1] -_08085852: - movs r0, #1 -_08085854: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0808585C: .4byte gUnknown_3005B0C - thumb_func_end map_post_load_hook_exec - - thumb_func_start CB2_NewGame -CB2_NewGame: @ 0x08085860 - push {lr} - bl FieldClearVBlankHBlankCallbacks - bl StopMapMusic - bl sub_080856E8 - bl NewGameInitData - bl ResetInitialPlayerAvatarState - bl PlayTimeCounter_Start - bl ScriptContext1_Init - bl sub_080987E8 - ldr r1, _080858A8 - ldr r0, _080858AC - str r0, [r1] - ldr r1, _080858B0 - movs r0, #0 - str r0, [r1] - ldr r0, _080858B4 - bl do_load_map_stuff_loop - bl SetFieldVBlankCallback - ldr r0, _080858B8 - bl sub_080857F0 - ldr r0, _080858BC - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080858A8: .4byte gUnknown_3005B0C -_080858AC: .4byte ExecuteTruckSequence -_080858B0: .4byte gUnknown_3005B10 -_080858B4: .4byte gUnknown_3002798 -_080858B8: .4byte CB1_Overworld -_080858BC: .4byte CB2_Overworld - thumb_func_end CB2_NewGame - - thumb_func_start CB2_WhiteOut -CB2_WhiteOut: @ 0x080858C0 - push {lr} - sub sp, #4 - ldr r1, _08085920 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x77 - bls _08085918 - bl FieldClearVBlankHBlankCallbacks - bl StopMapMusic - bl sub_080856E8 - bl DoWhiteOut - bl ResetInitialPlayerAvatarState - bl ScriptContext1_Init - bl sub_080987E8 - ldr r1, _08085924 - ldr r0, _08085928 - str r0, [r1] - mov r1, sp - movs r0, #0 - strb r0, [r1] - mov r0, sp - bl do_load_map_stuff_loop - bl SetFieldVBlankCallback - ldr r0, _0808592C - bl sub_080857F0 - ldr r0, _08085930 - bl SetMainCallback2 -_08085918: - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_08085920: .4byte gUnknown_3002360 -_08085924: .4byte gUnknown_3005B0C -_08085928: .4byte sub_080AECC4 -_0808592C: .4byte CB1_Overworld -_08085930: .4byte CB2_Overworld - thumb_func_end CB2_WhiteOut - - thumb_func_start CB2_LoadMap -CB2_LoadMap: @ 0x08085934 - push {lr} - bl FieldClearVBlankHBlankCallbacks - bl ScriptContext1_Init - bl sub_080987E8 - movs r0, #0 - bl sub_080857F0 - ldr r0, _08085958 - bl SetMainCallback2 - ldr r1, _0808595C - ldr r0, _08085960 - str r0, [r1, #8] - pop {r0} - bx r0 - .align 2, 0 -_08085958: .4byte c2_change_map -_0808595C: .4byte gUnknown_3002360 -_08085960: .4byte CB2_LoadMap2 - thumb_func_end CB2_LoadMap - - thumb_func_start CB2_LoadMap2 -CB2_LoadMap2: @ 0x08085964 - push {lr} - ldr r0, _08085980 - bl do_load_map_stuff_loop - bl SetFieldVBlankCallback - ldr r0, _08085984 - bl sub_080857F0 - ldr r0, _08085988 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_08085980: .4byte gUnknown_3002798 -_08085984: .4byte CB1_Overworld -_08085988: .4byte CB2_Overworld - thumb_func_end CB2_LoadMap2 - - thumb_func_start sub_0808598C -sub_0808598C: @ 0x0808598C - push {r4, lr} - ldr r0, _080859D0 - movs r1, #0x87 - lsls r1, r1, #3 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, #0 - bne _080859AE - bl FieldClearVBlankHBlankCallbacks - bl ScriptContext1_Init - bl sub_080987E8 - movs r0, #0 - bl sub_080857F0 -_080859AE: - adds r0, r4, #0 - movs r1, #1 - bl load_map_stuff - cmp r0, #0 - beq _080859CA - bl SetFieldVBlankCallback - ldr r0, _080859D4 - bl sub_080857F0 - ldr r0, _080859D8 - bl SetMainCallback2 -_080859CA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080859D0: .4byte gUnknown_3002360 -_080859D4: .4byte CB1_Overworld -_080859D8: .4byte CB2_Overworld - thumb_func_end sub_0808598C - - thumb_func_start sub_080859DC -sub_080859DC: @ 0x080859DC - push {lr} - bl FieldClearVBlankHBlankCallbacks - ldr r0, _080859F4 - ldr r1, _080859F8 - str r1, [r0] - ldr r0, _080859FC - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080859F4: .4byte gUnknown_3005B0C -_080859F8: .4byte sub_080AEC10 -_080859FC: .4byte c2_80567AC - thumb_func_end sub_080859DC - - thumb_func_start c2_80567AC -c2_80567AC: @ 0x08085A00 - push {lr} - ldr r0, _08085A24 - bl map_loading_iteration_3 - cmp r0, #0 - beq _08085A20 - bl SetFieldVBlankCallback - ldr r0, _08085A28 - bl sub_080857F0 - bl ResetAllMultiplayerState - ldr r0, _08085A2C - bl SetMainCallback2 -_08085A20: - pop {r0} - bx r0 - .align 2, 0 -_08085A24: .4byte gUnknown_3002798 -_08085A28: .4byte CB1_UpdateLinkState -_08085A2C: .4byte CB2_Overworld - thumb_func_end c2_80567AC - - thumb_func_start sub_08085A30 -sub_08085A30: @ 0x08085A30 - push {lr} - bl IsUpdateLinkStateCBActive - cmp r0, #1 - bne _08085A48 - ldr r0, _08085A44 - bl SetMainCallback2 - b _08085A52 - .align 2, 0 -_08085A44: .4byte CB2_ReturnToFieldLink -_08085A48: - bl FieldClearVBlankHBlankCallbacks - ldr r0, _08085A58 - bl SetMainCallback2 -_08085A52: - pop {r0} - bx r0 - .align 2, 0 -_08085A58: .4byte CB2_ReturnToFieldLocal - thumb_func_end sub_08085A30 - - thumb_func_start CB2_ReturnToFieldLocal -CB2_ReturnToFieldLocal: @ 0x08085A5C - push {lr} - ldr r0, _08085A78 - bl sub_08085F9C - cmp r0, #0 - beq _08085A72 - bl SetFieldVBlankCallback - ldr r0, _08085A7C - bl SetMainCallback2 -_08085A72: - pop {r0} - bx r0 - .align 2, 0 -_08085A78: .4byte gUnknown_3002798 -_08085A7C: .4byte CB2_Overworld - thumb_func_end CB2_ReturnToFieldLocal - - thumb_func_start CB2_ReturnToFieldLink -CB2_ReturnToFieldLink: @ 0x08085A80 - push {lr} - bl sub_08086EFC - cmp r0, #0 - bne _08085A9A - ldr r0, _08085AA0 - bl map_loading_iteration_2_link - cmp r0, #0 - beq _08085A9A - ldr r0, _08085AA4 - bl SetMainCallback2 -_08085A9A: - pop {r0} - bx r0 - .align 2, 0 -_08085AA0: .4byte gUnknown_3002798 -_08085AA4: .4byte CB2_Overworld - thumb_func_end CB2_ReturnToFieldLink - - thumb_func_start CB2_ReturnToFieldFromMultiplayer -CB2_ReturnToFieldFromMultiplayer: @ 0x08085AA8 - push {lr} - bl FieldClearVBlankHBlankCallbacks - bl StopMapMusic - ldr r0, _08085ACC - bl sub_080857F0 - bl ResetAllMultiplayerState - ldr r0, _08085AD0 - ldrb r0, [r0] - cmp r0, #0 - beq _08085ADC - ldr r1, _08085AD4 - ldr r0, _08085AD8 - b _08085AE0 - .align 2, 0 -_08085ACC: .4byte CB1_UpdateLinkState -_08085AD0: .4byte gUnknown_300319C -_08085AD4: .4byte gUnknown_3005B0C -_08085AD8: .4byte sub_080AEC10 -_08085ADC: - ldr r1, _08085AF4 - ldr r0, _08085AF8 -_08085AE0: - str r0, [r1] - bl ScriptContext1_Init - bl sub_080987E8 - bl sub_08085A30 - pop {r0} - bx r0 - .align 2, 0 -_08085AF4: .4byte gUnknown_3005B0C -_08085AF8: .4byte sub_080AEB10 - thumb_func_end CB2_ReturnToFieldFromMultiplayer - - thumb_func_start CB2_ReturnToFieldWithOpenMenu -CB2_ReturnToFieldWithOpenMenu: @ 0x08085AFC - push {lr} - bl FieldClearVBlankHBlankCallbacks - ldr r1, _08085B10 - ldr r0, _08085B14 - str r0, [r1] - bl sub_08085A30 - pop {r0} - bx r0 - .align 2, 0 -_08085B10: .4byte gUnknown_3005B10 -_08085B14: .4byte sub_080AEFA0 - thumb_func_end CB2_ReturnToFieldWithOpenMenu - - thumb_func_start CB2_ReturnToFieldContinueScript -CB2_ReturnToFieldContinueScript: @ 0x08085B18 - push {lr} - bl FieldClearVBlankHBlankCallbacks - ldr r1, _08085B2C - ldr r0, _08085B30 - str r0, [r1] - bl sub_08085A30 - pop {r0} - bx r0 - .align 2, 0 -_08085B2C: .4byte gUnknown_3005B0C -_08085B30: .4byte sub_080AEA84 - thumb_func_end CB2_ReturnToFieldContinueScript - - thumb_func_start CB2_ReturnToFieldContinueScriptPlayMapMusic -CB2_ReturnToFieldContinueScriptPlayMapMusic: @ 0x08085B34 - push {lr} - bl FieldClearVBlankHBlankCallbacks - ldr r1, _08085B48 - ldr r0, _08085B4C - str r0, [r1] - bl sub_08085A30 - pop {r0} - bx r0 - .align 2, 0 -_08085B48: .4byte gUnknown_3005B0C -_08085B4C: .4byte FieldCallback_ReturnToEventScript2 - thumb_func_end CB2_ReturnToFieldContinueScriptPlayMapMusic - - thumb_func_start sub_08085B50 -sub_08085B50: @ 0x08085B50 - push {lr} - bl FieldClearVBlankHBlankCallbacks - ldr r1, _08085B64 - ldr r0, _08085B68 - str r0, [r1] - bl sub_08085A30 - pop {r0} - bx r0 - .align 2, 0 -_08085B64: .4byte gUnknown_3005B0C -_08085B68: .4byte sub_080AECC4 - thumb_func_end sub_08085B50 - - thumb_func_start sub_08085B6C -sub_08085B6C: @ 0x08085B6C - push {lr} - ldr r0, _08085B94 - ldrb r1, [r0, #0x1a] - movs r0, #0xf8 - ands r0, r1 - cmp r0, #8 - bne _08085B8A - bl SecretBaseMapPopupEnabled - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08085B8A - bl ShowMapNamePopup -_08085B8A: - bl sub_080AECC4 - pop {r0} - bx r0 - .align 2, 0 -_08085B94: .4byte gUnknown_2036FB8 - thumb_func_end sub_08085B6C - - thumb_func_start CB2_ContinueSavedGame -CB2_ContinueSavedGame: @ 0x08085B98 - push {r4, lr} - bl FieldClearVBlankHBlankCallbacks - bl StopMapMusic - bl sub_080856E8 - ldr r0, _08085BD0 - ldrh r0, [r0] - cmp r0, #0xff - bne _08085BB2 - bl sub_081A36A0 -_08085BB2: - bl LoadSaveblockMapHeader - bl GetCurrentTrainerHillMapId - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _08085BD4 - ldrh r1, [r0, #0x12] - ldr r0, _08085BD8 - cmp r1, r0 - bne _08085BDC - bl LoadBattlePyramidFloorEventObjectScripts - b _08085BEE - .align 2, 0 -_08085BD0: .4byte gUnknown_3005F50 -_08085BD4: .4byte gUnknown_2036FB8 -_08085BD8: .4byte 0x00000169 -_08085BDC: - cmp r4, #0 - beq _08085BEA - cmp r4, #6 - beq _08085BEA - bl sub_081D5840 - b _08085BEE -_08085BEA: - bl LoadSaveblockEventObjScripts -_08085BEE: - bl UnfreezeEventObjects - bl DoTimeBasedEvents - bl sub_08084110 - ldr r0, _08085C0C - ldrh r1, [r0, #0x12] - ldr r0, _08085C10 - cmp r1, r0 - bne _08085C14 - movs r0, #1 - bl InitBattlePyramidMap - b _08085C22 - .align 2, 0 -_08085C0C: .4byte gUnknown_2036FB8 -_08085C10: .4byte 0x00000169 -_08085C14: - cmp r4, #0 - beq _08085C1E - bl InitTrainerHillMap - b _08085C22 -_08085C1E: - bl InitMapFromSavedGame -_08085C22: - bl PlayTimeCounter_Start - bl ScriptContext1_Init - bl sub_080987E8 - bl InitMatchCallCounters - bl UseContinueGameWarp - cmp r0, #1 - bne _08085C58 - bl sub_0807673C - bl SetWarpDestinationToContinueGameWarp - bl WarpIntoMap - bl sub_080EE664 - ldr r0, _08085C54 - bl SetMainCallback2 - b _08085C6C - .align 2, 0 -_08085C54: .4byte CB2_LoadMap -_08085C58: - bl sub_080EE664 - ldr r0, _08085C74 - ldr r1, _08085C78 - str r1, [r0] - ldr r0, _08085C7C - bl sub_080857F0 - bl sub_08085A30 -_08085C6C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08085C74: .4byte gUnknown_3005B0C -_08085C78: .4byte sub_08085B6C -_08085C7C: .4byte CB1_Overworld - thumb_func_end CB2_ContinueSavedGame - - thumb_func_start FieldClearVBlankHBlankCallbacks -FieldClearVBlankHBlankCallbacks: @ 0x08085C80 - push {r4, lr} - bl warp0_in_pokecenter - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08085C92 - bl CloseLink -_08085C92: - ldr r0, _08085CA8 - ldrb r0, [r0] - cmp r0, #0 - beq _08085CAC - movs r0, #0xc5 - bl EnableInterrupts - movs r0, #2 - bl DisableInterrupts - b _08085CC6 - .align 2, 0 -_08085CA8: .4byte gUnknown_300319C -_08085CAC: - ldr r4, _08085CD8 - ldrh r3, [r4] - strh r0, [r4] - ldr r2, _08085CDC - ldrh r1, [r2] - ldr r0, _08085CE0 - ands r0, r1 - strh r0, [r2] - ldrh r0, [r2] - movs r1, #1 - orrs r0, r1 - strh r0, [r2] - strh r3, [r4] -_08085CC6: - movs r0, #0 - bl SetVBlankCallback - movs r0, #0 - bl SetHBlankCallback - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08085CD8: .4byte 0x04000208 -_08085CDC: .4byte 0x04000200 -_08085CE0: .4byte 0x0000FFFD - thumb_func_end FieldClearVBlankHBlankCallbacks - - thumb_func_start SetFieldVBlankCallback -SetFieldVBlankCallback: @ 0x08085CE4 - push {lr} - ldr r0, _08085CF0 - bl SetVBlankCallback - pop {r0} - bx r0 - .align 2, 0 -_08085CF0: .4byte VBlankCB_Field - thumb_func_end SetFieldVBlankCallback - - thumb_func_start VBlankCB_Field -VBlankCB_Field: @ 0x08085CF4 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl ScanlineEffect_InitHBlankDmaTransfer - bl FieldUpdateBgTilemapScroll - bl TransferPlttBuffer - bl TransferTilesetAnimsBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end VBlankCB_Field - - thumb_func_start InitCurrentFlashLevelScanlineEffect -InitCurrentFlashLevelScanlineEffect: @ 0x08085D14 - push {lr} - bl InBattlePyramid_ - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08085D38 - bl WriteBattlePyramidViewScanlineEffectBuffer - ldr r2, _08085D34 - ldr r0, [r2] - ldr r1, [r2, #4] - ldr r2, [r2, #8] - bl ScanlineEffect_SetParams - b _08085D54 - .align 2, 0 -_08085D34: .4byte gUnknown_830FD08 -_08085D38: - bl Overworld_GetFlashLevel - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _08085D54 - bl WriteFlashScanlineEffectBuffer - ldr r2, _08085D58 - ldr r0, [r2] - ldr r1, [r2, #4] - ldr r2, [r2, #8] - bl ScanlineEffect_SetParams -_08085D54: - pop {r0} - bx r0 - .align 2, 0 -_08085D58: .4byte gUnknown_830FD08 - thumb_func_end InitCurrentFlashLevelScanlineEffect - - thumb_func_start map_loading_iteration_3 -map_loading_iteration_3: @ 0x08085D5C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4] - cmp r0, #0xd - bls _08085D68 - b _08085E76 -_08085D68: - lsls r0, r0, #2 - ldr r1, _08085D74 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08085D74: .4byte _08085D78 -_08085D78: @ jump table - .4byte _08085DB0 @ case 0 - .4byte _08085DC6 @ case 1 - .4byte _08085DCE @ case 2 - .4byte _08085DD6 @ case 3 - .4byte _08085DE8 @ case 4 - .4byte _08085DF6 @ case 5 - .4byte _08085DFC @ case 6 - .4byte _08085E0C @ case 7 - .4byte _08085E1C @ case 8 - .4byte _08085E38 @ case 9 - .4byte _08085E3E @ case 10 - .4byte _08085E44 @ case 11 - .4byte _08085E60 @ case 12 - .4byte _08085E72 @ case 13 -_08085DB0: - bl InitOverworldBgs - bl ScriptContext1_Init - bl sub_080987E8 - bl CallTrainerHillFunction - bl sub_0808613C - b _08085E6A -_08085DC6: - movs r0, #1 - bl mli0_load_map - b _08085E6A -_08085DCE: - movs r0, #1 - bl sub_080862EC - b _08085E6A -_08085DD6: - bl sub_08086448 - bl sub_08086340 - bl sub_08086478 - bl SetCameraToTrackGuestPlayer - b _08085E6A -_08085DE8: - bl InitCurrentFlashLevelScanlineEffect - bl InitOverworldGraphicsRegisters - bl sub_08196DF4 - b _08085E6A -_08085DF6: - bl move_tilemap_camera_to_upper_left_corner - b _08085E6A -_08085DFC: - ldr r0, _08085E08 - ldr r0, [r0] - bl copy_map_tileset1_to_vram - b _08085E6A - .align 2, 0 -_08085E08: .4byte gUnknown_2036FB8 -_08085E0C: - ldr r0, _08085E18 - ldr r0, [r0] - bl copy_map_tileset2_to_vram - b _08085E6A - .align 2, 0 -_08085E18: .4byte gUnknown_2036FB8 -_08085E1C: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08085E76 - ldr r0, _08085E34 - ldr r0, [r0] - bl apply_map_tileset1_tileset2_palette - b _08085E6A - .align 2, 0 -_08085E34: .4byte gUnknown_2036FB8 -_08085E38: - bl DrawWholeMapView - b _08085E6A -_08085E3E: - bl InitTilesetAnimations - b _08085E6A -_08085E44: - ldr r0, _08085E5C - ldrb r0, [r0] - cmp r0, #0 - beq _08085E6A - bl LoadWirelessStatusIndicatorSpriteGfx - movs r0, #0 - movs r1, #0 - bl CreateWirelessStatusIndicatorSprite - b _08085E6A - .align 2, 0 -_08085E5C: .4byte gUnknown_300319C -_08085E60: - bl map_post_load_hook_exec - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08085E76 -_08085E6A: - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - b _08085E76 -_08085E72: - movs r0, #1 - b _08085E78 -_08085E76: - movs r0, #0 -_08085E78: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end map_loading_iteration_3 - - thumb_func_start load_map_stuff -load_map_stuff: @ 0x08085E80 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4] - cmp r0, #0xd - bls _08085E8E - b _08085F92 -_08085E8E: - lsls r0, r0, #2 - ldr r1, _08085E98 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08085E98: .4byte _08085E9C -_08085E9C: @ jump table - .4byte _08085ED4 @ case 0 - .4byte _08085EE0 @ case 1 - .4byte _08085EEA @ case 2 - .4byte _08085EF2 @ case 3 - .4byte _08085EFC @ case 4 - .4byte _08085F0A @ case 5 - .4byte _08085F10 @ case 6 - .4byte _08085F20 @ case 7 - .4byte _08085F30 @ case 8 - .4byte _08085F4C @ case 9 - .4byte _08085F52 @ case 10 - .4byte _08085F58 @ case 11 - .4byte _08085F7C @ case 12 - .4byte _08085F8E @ case 13 -_08085ED4: - bl FieldClearVBlankHBlankCallbacks - adds r0, r5, #0 - bl mli0_load_map - b _08085F86 -_08085EE0: - bl CallTrainerHillFunction - bl sub_0808613C - b _08085F86 -_08085EEA: - adds r0, r5, #0 - bl sub_080862EC - b _08085F86 -_08085EF2: - bl mli4_mapscripts_and_other - bl sub_080863E4 - b _08085F86 -_08085EFC: - bl InitCurrentFlashLevelScanlineEffect - bl InitOverworldGraphicsRegisters - bl sub_08196DF4 - b _08085F86 -_08085F0A: - bl move_tilemap_camera_to_upper_left_corner - b _08085F86 -_08085F10: - ldr r0, _08085F1C - ldr r0, [r0] - bl copy_map_tileset1_to_vram - b _08085F86 - .align 2, 0 -_08085F1C: .4byte gUnknown_2036FB8 -_08085F20: - ldr r0, _08085F2C - ldr r0, [r0] - bl copy_map_tileset2_to_vram - b _08085F86 - .align 2, 0 -_08085F2C: .4byte gUnknown_2036FB8 -_08085F30: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08085F92 - ldr r0, _08085F48 - ldr r0, [r0] - bl apply_map_tileset1_tileset2_palette - b _08085F86 - .align 2, 0 -_08085F48: .4byte gUnknown_2036FB8 -_08085F4C: - bl DrawWholeMapView - b _08085F86 -_08085F52: - bl InitTilesetAnimations - b _08085F86 -_08085F58: - ldr r0, _08085F78 - ldrb r1, [r0, #0x1a] - movs r0, #0xf8 - ands r0, r1 - cmp r0, #8 - bne _08085F86 - bl SecretBaseMapPopupEnabled - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08085F86 - bl ShowMapNamePopup - b _08085F86 - .align 2, 0 -_08085F78: .4byte gUnknown_2036FB8 -_08085F7C: - bl map_post_load_hook_exec - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08085F92 -_08085F86: - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - b _08085F92 -_08085F8E: - movs r0, #1 - b _08085F94 -_08085F92: - movs r0, #0 -_08085F94: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end load_map_stuff - - thumb_func_start sub_08085F9C -sub_08085F9C: @ 0x08085F9C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4] - cmp r0, #1 - beq _08085FD2 - cmp r0, #1 - bgt _08085FB0 - cmp r0, #0 - beq _08085FBA - b _08085FF2 -_08085FB0: - cmp r0, #2 - beq _08085FDC - cmp r0, #3 - beq _08085FEE - b _08085FF2 -_08085FBA: - bl CallTrainerHillFunction - bl sub_0808613C - movs r0, #0 - bl sub_080862EC - bl sub_080863CC - bl sub_080863E4 - b _08085FE6 -_08085FD2: - bl sub_080861C4 - bl sub_081D5E60 - b _08085FE6 -_08085FDC: - bl map_post_load_hook_exec - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08085FF2 -_08085FE6: - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - b _08085FF2 -_08085FEE: - movs r0, #1 - b _08085FF4 -_08085FF2: - movs r0, #0 -_08085FF4: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08085F9C - - thumb_func_start map_loading_iteration_2_link -map_loading_iteration_2_link: @ 0x08085FFC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4] - cmp r0, #0xd - bls _08086008 - b _0808610C -_08086008: - lsls r0, r0, #2 - ldr r1, _08086014 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08086014: .4byte _08086018 -_08086018: @ jump table - .4byte _08086050 @ case 0 - .4byte _0808605E @ case 1 - .4byte _08086066 @ case 2 - .4byte _08086074 @ case 3 - .4byte _08086082 @ case 4 - .4byte _08086088 @ case 5 - .4byte _08086098 @ case 6 - .4byte _080860A8 @ case 7 - .4byte _080860C4 @ case 8 - .4byte _080860CA @ case 9 - .4byte _080860F6 @ case 10 - .4byte _080860D0 @ case 11 - .4byte _080860EC @ case 12 - .4byte _080860FE @ case 13 -_08086050: - bl FieldClearVBlankHBlankCallbacks - bl CallTrainerHillFunction - bl sub_0808613C - b _080860F6 -_0808605E: - movs r0, #1 - bl sub_080862EC - b _080860F6 -_08086066: - bl CreateLinkPlayerSprites - bl sub_080863CC - bl SetCameraToTrackGuestPlayer_2 - b _080860F6 -_08086074: - bl InitCurrentFlashLevelScanlineEffect - bl InitOverworldGraphicsRegisters - bl sub_08196DF4 - b _080860F6 -_08086082: - bl move_tilemap_camera_to_upper_left_corner - b _080860F6 -_08086088: - ldr r0, _08086094 - ldr r0, [r0] - bl copy_map_tileset1_to_vram - b _080860F6 - .align 2, 0 -_08086094: .4byte gUnknown_2036FB8 -_08086098: - ldr r0, _080860A4 - ldr r0, [r0] - bl copy_map_tileset2_to_vram - b _080860F6 - .align 2, 0 -_080860A4: .4byte gUnknown_2036FB8 -_080860A8: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0808610C - ldr r0, _080860C0 - ldr r0, [r0] - bl apply_map_tileset1_tileset2_palette - b _080860F6 - .align 2, 0 -_080860C0: .4byte gUnknown_2036FB8 -_080860C4: - bl DrawWholeMapView - b _080860F6 -_080860CA: - bl InitTilesetAnimations - b _080860F6 -_080860D0: - ldr r0, _080860E8 - ldrb r0, [r0] - cmp r0, #0 - beq _080860F6 - bl LoadWirelessStatusIndicatorSpriteGfx - movs r0, #0 - movs r1, #0 - bl CreateWirelessStatusIndicatorSprite - b _080860F6 - .align 2, 0 -_080860E8: .4byte gUnknown_300319C -_080860EC: - bl map_post_load_hook_exec - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808610C -_080860F6: - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - b _0808610C -_080860FE: - bl SetFieldVBlankCallback - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - movs r0, #1 - b _0808610E -_0808610C: - movs r0, #0 -_0808610E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end map_loading_iteration_2_link - - thumb_func_start do_load_map_stuff_loop -do_load_map_stuff_loop: @ 0x08086114 - push {r4, lr} - adds r4, r0, #0 -_08086118: - adds r0, r4, #0 - movs r1, #0 - bl load_map_stuff - cmp r0, #0 - beq _08086118 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end do_load_map_stuff_loop - - thumb_func_start CallTrainerHillFunction -CallTrainerHillFunction: @ 0x0808612C - push {lr} - bl sub_081BE348 - bl MoveSaveBlocks_ResetHeap - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CallTrainerHillFunction - - thumb_func_start sub_0808613C -sub_0808613C: @ 0x0808613C - push {r4, r5, r6, r7, lr} - sub sp, #4 - movs r0, #0 - movs r1, #0 - bl SetGpuReg - bl ScanlineEffect_Stop - ldr r2, _080861B4 - mov r1, sp - movs r0, #0 - strh r0, [r1] - ldr r1, _080861B8 - mov r0, sp - str r0, [r1] - str r2, [r1, #4] - ldr r0, _080861BC - str r0, [r1, #8] - ldr r0, [r1, #8] - movs r2, #0xc0 - lsls r2, r2, #0x13 - movs r3, #0xc0 - lsls r3, r3, #9 - mov r4, sp - movs r6, #0 - movs r5, #0x80 - lsls r5, r5, #5 - ldr r7, _080861C0 - movs r0, #0x81 - lsls r0, r0, #0x18 - mov ip, r0 -_0808617A: - strh r6, [r4] - mov r0, sp - str r0, [r1] - str r2, [r1, #4] - str r7, [r1, #8] - ldr r0, [r1, #8] - adds r2, r2, r5 - subs r3, r3, r5 - cmp r3, r5 - bhi _0808617A - strh r6, [r4] - mov r0, sp - str r0, [r1] - str r2, [r1, #4] - lsrs r0, r3, #1 - mov r2, ip - orrs r0, r2 - str r0, [r1, #8] - ldr r0, [r1, #8] - movs r0, #0 - movs r1, #0x80 - bl ResetOamRange - bl LoadOam - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080861B4: .4byte 0x05000002 -_080861B8: .4byte 0x040000D4 -_080861BC: .4byte 0x810001FF -_080861C0: .4byte 0x81000800 - thumb_func_end sub_0808613C - - thumb_func_start sub_080861C4 -sub_080861C4: @ 0x080861C4 - push {lr} - bl InitCurrentFlashLevelScanlineEffect - bl InitOverworldGraphicsRegisters - bl sub_08196DF4 - bl mapdata_load_assets_to_gpu_and_full_redraw - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080861C4 - - thumb_func_start InitOverworldGraphicsRegisters -InitOverworldGraphicsRegisters: @ 0x080861DC - push {r4, lr} - bl sub_08199640 - bl reset_temp_tile_data_buffers - movs r0, #0x4c - movs r1, #0 - bl SetGpuReg - ldr r1, _080862D4 - movs r0, #0x48 - bl SetGpuReg - ldr r1, _080862D8 - movs r0, #0x4a - bl SetGpuReg - movs r0, #0x40 - movs r1, #0xff - bl SetGpuReg - movs r0, #0x44 - movs r1, #0xff - bl SetGpuReg - ldr r4, _080862DC - movs r0, #0x42 - adds r1, r4, #0 - bl SetGpuReg - movs r0, #0x46 - adds r1, r4, #0 - bl SetGpuReg - ldr r0, _080862E0 - ldrh r1, [r0, #2] - ldrh r2, [r0, #4] - orrs r1, r2 - ldrh r0, [r0, #6] - orrs r1, r0 - movs r2, #0x82 - lsls r2, r2, #5 - adds r0, r2, #0 - orrs r1, r0 - movs r0, #0x50 - bl SetGpuReg - ldr r1, _080862E4 - movs r0, #0x52 - bl SetGpuReg - bl InitOverworldBgs - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #3 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - ldr r1, _080862E8 - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg - bl InitFieldMessageBox - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080862D4: .4byte 0x00001F1F -_080862D8: .4byte 0x00000101 -_080862DC: .4byte 0x0000FFFF -_080862E0: .4byte gUnknown_82BF42C -_080862E4: .4byte 0x0000070D -_080862E8: .4byte 0x00007060 - thumb_func_end InitOverworldGraphicsRegisters - - thumb_func_start sub_080862EC -sub_080862EC: @ 0x080862EC - push {r4, lr} - adds r4, r0, #0 - bl ResetTasks - bl ResetSpriteData - bl ResetPaletteFade - bl ScanlineEffect_Clear - bl ResetAllPicSprites - bl ResetCameraUpdateInfo - bl InstallCameraPanAheadCallback - cmp r4, #0 - bne _08086318 - movs r0, #0 - bl sub_0808EC68 - b _0808631E -_08086318: - movs r0, #1 - bl sub_0808EC68 -_0808631E: - bl FieldEffectActiveListClear - bl StartWeather - bl ResumePausedWeather - cmp r4, #0 - bne _08086332 - bl SetUpFieldTasks -_08086332: - bl RunOnResumeMapScript - bl TryStartMirageTowerPulseBlendEffect - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080862EC - - thumb_func_start sub_08086340 -sub_08086340: @ 0x08086340 - push {lr} - ldr r0, _08086360 - movs r1, #0 - strh r1, [r0] - ldr r0, _08086364 - strh r1, [r0] - bl ResetEventObjects - movs r0, #0 - movs r1, #0 - bl TrySpawnEventObjects - bl TryRunOnWarpIntoMapScript - pop {r0} - bx r0 - .align 2, 0 -_08086360: .4byte gUnknown_3005B4C -_08086364: .4byte gUnknown_3005B48 - thumb_func_end sub_08086340 - - thumb_func_start mli4_mapscripts_and_other -mli4_mapscripts_and_other: @ 0x08086368 - push {r4, r5, lr} - sub sp, #4 - ldr r0, _080863C0 - movs r1, #0 - strh r1, [r0] - ldr r0, _080863C4 - strh r1, [r0] - bl ResetEventObjects - mov r4, sp - adds r4, #2 - mov r0, sp - adds r1, r4, #0 - bl GetCameraFocusCoords - bl GetInitialPlayerAvatarState - adds r5, r0, #0 - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0 - ldrsh r1, [r4, r2] - ldrb r2, [r5, #1] - ldr r3, _080863C8 - ldr r3, [r3] - ldrb r3, [r3, #8] - bl InitPlayerAvatar - ldrb r0, [r5] - bl SetPlayerAvatarTransitionFlags - bl ResetInitialPlayerAvatarState - movs r0, #0 - movs r1, #0 - bl TrySpawnEventObjects - bl TryRunOnWarpIntoMapScript - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080863C0: .4byte gUnknown_3005B4C -_080863C4: .4byte gUnknown_3005B48 -_080863C8: .4byte gUnknown_3005AF0 - thumb_func_end mli4_mapscripts_and_other - - thumb_func_start sub_080863CC -sub_080863CC: @ 0x080863CC - push {lr} - movs r0, #0 - movs r1, #0 - bl sub_0808DADC - bl RotatingGate_InitPuzzleAndGraphics - bl RunOnReturnToFieldMapScript - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080863CC - - thumb_func_start sub_080863E4 -sub_080863E4: @ 0x080863E4 - push {lr} - ldr r2, _08086408 - ldr r3, _0808640C - ldrb r1, [r3, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #1] - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0, #1] - ldrb r0, [r3, #4] - bl InitCameraUpdateCallback - pop {r0} - bx r0 - .align 2, 0 -_08086408: .4byte gUnknown_2036FF0 -_0808640C: .4byte gUnknown_2037230 - thumb_func_end sub_080863E4 - - thumb_func_start SetCameraToTrackGuestPlayer -SetCameraToTrackGuestPlayer: @ 0x08086410 - push {lr} - ldr r0, _08086428 - ldrb r0, [r0] - bl GetSpriteForLinkedPlayer - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl InitCameraUpdateCallback - pop {r0} - bx r0 - .align 2, 0 -_08086428: .4byte gUnknown_3005B14 - thumb_func_end SetCameraToTrackGuestPlayer - - thumb_func_start SetCameraToTrackGuestPlayer_2 -SetCameraToTrackGuestPlayer_2: @ 0x0808642C - push {lr} - ldr r0, _08086444 - ldrb r0, [r0] - bl GetSpriteForLinkedPlayer - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl InitCameraUpdateCallback - pop {r0} - bx r0 - .align 2, 0 -_08086444: .4byte gUnknown_3005B14 - thumb_func_end SetCameraToTrackGuestPlayer_2 - - thumb_func_start sub_08086448 -sub_08086448: @ 0x08086448 - push {r4, lr} - sub sp, #4 - mov r4, sp - adds r4, #2 - mov r0, sp - adds r1, r4, #0 - bl GetCameraFocusCoords - mov r2, sp - ldr r0, _08086474 - ldrb r1, [r0] - ldrh r0, [r2] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrh r1, [r4] - bl sub_080884A0 - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08086474: .4byte gUnknown_3005B14 - thumb_func_end sub_08086448 - - thumb_func_start sub_08086478 -sub_08086478: @ 0x08086478 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - mov r4, sp - adds r4, #2 - mov r0, sp - adds r1, r4, #0 - bl GetCameraFocusCoords - mov r3, sp - mov r2, sp - ldr r0, _080864F4 - ldrb r1, [r0] - ldrh r0, [r2] - subs r0, r0, r1 - strh r0, [r3] - movs r6, #0 - ldr r0, _080864F8 - mov r8, r4 - ldrb r0, [r0] - cmp r6, r0 - bhs _080864E2 - ldr r7, _080864FC -_080864A8: - lsls r5, r6, #0x18 - lsrs r5, r5, #0x18 - mov r0, sp - ldrh r1, [r0] - adds r1, r6, r1 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - mov r0, r8 - movs r3, #0 - ldrsh r2, [r0, r3] - lsls r4, r6, #3 - subs r4, r4, r6 - lsls r4, r4, #2 - adds r4, r4, r7 - ldrb r3, [r4, #0x13] - adds r0, r5, #0 - bl sub_08087054 - ldrb r1, [r4] - adds r0, r5, #0 - bl CreateLinkPlayerSprite - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r0, _080864F8 - ldrb r0, [r0] - cmp r6, r0 - blo _080864A8 -_080864E2: - bl ClearAllPlayerKeys - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080864F4: .4byte gUnknown_3005B14 -_080864F8: .4byte gUnknown_3005B18 -_080864FC: .4byte gUnknown_20226A0 - thumb_func_end sub_08086478 - - thumb_func_start CreateLinkPlayerSprites -CreateLinkPlayerSprites: @ 0x08086500 - push {r4, r5, lr} - movs r4, #0 - ldr r0, _08086534 - ldrb r0, [r0] - cmp r4, r0 - bhs _0808652E - ldr r5, _08086538 -_0808650E: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r4, #3 - subs r1, r1, r4 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrb r1, [r1] - bl CreateLinkPlayerSprite - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, _08086534 - ldrb r0, [r0] - cmp r4, r0 - blo _0808650E -_0808652E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08086534: .4byte gUnknown_3005B18 -_08086538: .4byte gUnknown_20226A0 - thumb_func_end CreateLinkPlayerSprites - - thumb_func_start CB1_UpdateLinkState -CB1_UpdateLinkState: @ 0x0808653C - push {r4, lr} - ldr r0, _08086580 - ldrb r0, [r0] - cmp r0, #0 - beq _08086556 - bl IsRfuRecvQueueEmpty - cmp r0, #0 - beq _08086556 - bl IsSendingKeysToLink - cmp r0, #0 - bne _08086578 -_08086556: - ldr r0, _08086584 - ldrb r4, [r0] - ldr r0, _08086588 - adds r1, r4, #0 - bl UpdateAllLinkPlayers - ldr r0, _0808658C - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl UpdateHeldKeyCode - bl ClearAllPlayerKeys -_08086578: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08086580: .4byte gUnknown_300319C -_08086584: .4byte gUnknown_3005B14 -_08086588: .4byte gUnknown_30030C0 -_0808658C: .4byte gUnknown_3000E14 - thumb_func_end CB1_UpdateLinkState - - thumb_func_start ResetAllMultiplayerState -ResetAllMultiplayerState: @ 0x08086590 - push {lr} - bl ResetAllTradingStates - ldr r0, _080865A0 - bl SetKeyInterceptCallback - pop {r0} - bx r0 - .align 2, 0 -_080865A0: .4byte KeyInterCB_SelfIdle - thumb_func_end ResetAllMultiplayerState - - thumb_func_start ClearAllPlayerKeys -ClearAllPlayerKeys: @ 0x080865A4 - push {lr} - ldr r0, _080865B0 - bl ResetPlayerHeldKeys - pop {r0} - bx r0 - .align 2, 0 -_080865B0: .4byte gUnknown_30030C0 - thumb_func_end ClearAllPlayerKeys - - thumb_func_start SetKeyInterceptCallback -SetKeyInterceptCallback: @ 0x080865B4 - ldr r2, _080865C0 - movs r1, #0 - strb r1, [r2] - ldr r1, _080865C4 - str r0, [r1] - bx lr - .align 2, 0 -_080865C0: .4byte gUnknown_3000E19 -_080865C4: .4byte gUnknown_3000E14 - thumb_func_end SetKeyInterceptCallback - - thumb_func_start CheckRfuKeepAliveTimer -CheckRfuKeepAliveTimer: @ 0x080865C8 - push {lr} - ldr r0, _080865EC - ldrb r0, [r0] - cmp r0, #0 - beq _080865E6 - ldr r1, _080865F0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x3c - bls _080865E6 - bl OpponentHandleEndBounceEffect -_080865E6: - pop {r0} - bx r0 - .align 2, 0 -_080865EC: .4byte gUnknown_300319C -_080865F0: .4byte gUnknown_3000E19 - thumb_func_end CheckRfuKeepAliveTimer - - thumb_func_start ResetAllTradingStates -ResetAllTradingStates: @ 0x080865F4 - push {lr} - ldr r1, _08086608 - movs r2, #0x80 - adds r0, r1, #3 -_080865FC: - strb r2, [r0] - subs r0, #1 - cmp r0, r1 - bge _080865FC - pop {r0} - bx r0 - .align 2, 0 -_08086608: .4byte gUnknown_3000E10 - thumb_func_end ResetAllTradingStates - - thumb_func_start AreAllPlayersInTradingState -AreAllPlayersInTradingState: @ 0x0808660C - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldr r0, _0808662C - ldrb r2, [r0] - movs r1, #0 - cmp r1, r2 - bge _0808663A - ldr r4, _08086630 -_0808661E: - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, r3 - beq _08086634 - movs r0, #0 - b _0808663C - .align 2, 0 -_0808662C: .4byte gUnknown_3005B18 -_08086630: .4byte gUnknown_3000E10 -_08086634: - adds r1, #1 - cmp r1, r2 - blt _0808661E -_0808663A: - movs r0, #1 -_0808663C: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end AreAllPlayersInTradingState - - thumb_func_start IsAnyPlayerInTradingState -IsAnyPlayerInTradingState: @ 0x08086644 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldr r0, _08086664 - ldrb r2, [r0] - movs r1, #0 - cmp r1, r2 - bge _08086672 - ldr r4, _08086668 -_08086656: - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, r3 - bne _0808666C - movs r0, #1 - b _08086674 - .align 2, 0 -_08086664: .4byte gUnknown_3005B18 -_08086668: .4byte gUnknown_3000E10 -_0808666C: - adds r1, #1 - cmp r1, r2 - blt _08086656 -_08086672: - movs r0, #0 -_08086674: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsAnyPlayerInTradingState - - thumb_func_start HandleLinkPlayerKeyInput -HandleLinkPlayerKeyInput: @ 0x0808667C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - adds r6, r2, #0 - mov sb, r3 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r8, r1 - ldr r0, _080866CC - adds r5, r7, r0 - ldrb r0, [r5] - cmp r0, #0x80 - beq _0808669C - b _08086816 -_0808669C: - adds r0, r6, #0 - bl TryGetTileEventScript - adds r4, r0, #0 - cmp r4, #0 - beq _080866D4 - bl GetDirectionForEventScript - mov r1, sb - strh r0, [r1] - movs r0, #0x81 - strb r0, [r5] - ldrb r0, [r6, #1] - cmp r0, #0 - bne _080866BC - b _0808688A -_080866BC: - ldr r0, _080866D0 - bl SetKeyInterceptCallback - adds r0, r4, #0 - bl sub_08086E94 - b _0808688A - .align 2, 0 -_080866CC: .4byte gUnknown_3000E10 -_080866D0: .4byte KeyInterCB_DeferToEventScript -_080866D4: - movs r0, #0x83 - bl IsAnyPlayerInTradingState - cmp r0, #1 - bne _080866FC - movs r0, #0x81 - strb r0, [r5] - ldrb r0, [r6, #1] - cmp r0, #0 - bne _080866EA - b _0808688A -_080866EA: - ldr r0, _080866F8 - bl SetKeyInterceptCallback - bl sub_08086EE8 - b _0808688A - .align 2, 0 -_080866F8: .4byte KeyInterCB_DeferToEventScript -_080866FC: - mov r0, r8 - subs r0, #0x12 - cmp r0, #0xa - bls _08086706 - b _08086816 -_08086706: - lsls r0, r0, #2 - ldr r1, _08086710 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08086710: .4byte _08086714 -_08086714: @ jump table - .4byte _0808676C @ case 0 - .4byte _08086816 @ case 1 - .4byte _08086816 @ case 2 - .4byte _08086816 @ case 3 - .4byte _08086816 @ case 4 - .4byte _08086816 @ case 5 - .4byte _08086740 @ case 6 - .4byte _08086798 @ case 7 - .4byte _08086816 @ case 8 - .4byte _080867C8 @ case 9 - .4byte _080867F4 @ case 10 -_08086740: - adds r0, r6, #0 - bl sub_08086CBC - cmp r0, #0 - beq _08086816 - ldr r0, _08086764 - adds r0, r7, r0 - movs r1, #0x81 - strb r1, [r0] - ldrb r0, [r6, #1] - cmp r0, #0 - beq _08086816 - ldr r0, _08086768 - bl SetKeyInterceptCallback - bl InitLinkRoomStartMenuScript - b _08086816 - .align 2, 0 -_08086764: .4byte gUnknown_3000E10 -_08086768: .4byte KeyInterCB_DeferToEventScript -_0808676C: - adds r0, r6, #0 - bl PlayerIsAtSouthExit - cmp r0, #1 - bne _08086816 - ldr r0, _08086790 - adds r0, r7, r0 - movs r1, #0x81 - strb r1, [r0] - ldrb r0, [r6, #1] - cmp r0, #0 - beq _08086816 - ldr r0, _08086794 - bl SetKeyInterceptCallback - bl CreateConfirmLeaveTradeRoomPrompt - b _08086816 - .align 2, 0 -_08086790: .4byte gUnknown_3000E10 -_08086794: .4byte KeyInterCB_DeferToEventScript -_08086798: - adds r0, r6, #0 - bl TryInteractWithPlayer - adds r4, r0, #0 - cmp r4, #0 - beq _08086816 - ldr r0, _080867C0 - adds r0, r7, r0 - movs r1, #0x81 - strb r1, [r0] - ldrb r0, [r6, #1] - cmp r0, #0 - beq _08086816 - ldr r0, _080867C4 - bl SetKeyInterceptCallback - adds r0, r4, #0 - bl sub_08086ECC - b _08086816 - .align 2, 0 -_080867C0: .4byte gUnknown_3000E10 -_080867C4: .4byte KeyInterCB_DeferToEventScript -_080867C8: - adds r0, r6, #0 - bl sub_08086CA4 - cmp r0, #0 - beq _08086816 - ldr r0, _080867EC - adds r0, r7, r0 - movs r1, #0x81 - strb r1, [r0] - ldrb r0, [r6, #1] - cmp r0, #0 - beq _08086816 - ldr r0, _080867F0 - bl SetKeyInterceptCallback - bl sub_08086E74 - b _08086816 - .align 2, 0 -_080867EC: .4byte gUnknown_3000E10 -_080867F0: .4byte sub_08086A80 -_080867F4: - adds r0, r6, #0 - bl sub_08086CA4 - cmp r0, #0 - beq _08086816 - ldr r0, _08086828 - adds r0, r7, r0 - movs r1, #0x81 - strb r1, [r0] - ldrb r0, [r6, #1] - cmp r0, #0 - beq _08086816 - ldr r0, _0808682C - bl SetKeyInterceptCallback - bl sub_08086E74 -_08086816: - mov r0, r8 - cmp r0, #0x17 - beq _0808683C - cmp r0, #0x17 - bgt _08086830 - cmp r0, #0x16 - beq _0808684C - b _0808688A - .align 2, 0 -_08086828: .4byte gUnknown_3000E10 -_0808682C: .4byte KeyInterCB_DeferToSendQueue -_08086830: - mov r1, r8 - cmp r1, #0x1a - beq _0808685C - cmp r1, #0x1d - beq _0808687C - b _0808688A -_0808683C: - ldr r0, _08086848 - adds r0, r7, r0 - movs r1, #0x83 - strb r1, [r0] - b _0808688A - .align 2, 0 -_08086848: .4byte gUnknown_3000E10 -_0808684C: - ldr r0, _08086858 - adds r0, r7, r0 - movs r1, #0x82 - strb r1, [r0] - b _0808688A - .align 2, 0 -_08086858: .4byte gUnknown_3000E10 -_0808685C: - ldr r0, _08086874 - adds r0, r7, r0 - movs r1, #0x80 - strb r1, [r0] - ldrb r0, [r6, #1] - cmp r0, #0 - beq _0808688A - ldr r0, _08086878 - bl SetKeyInterceptCallback - b _0808688A - .align 2, 0 -_08086874: .4byte gUnknown_3000E10 -_08086878: .4byte KeyInterCB_SelfIdle -_0808687C: - ldr r0, _08086898 - adds r1, r7, r0 - ldrb r0, [r1] - cmp r0, #0x82 - bne _0808688A - movs r0, #0x81 - strb r0, [r1] -_0808688A: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08086898: .4byte gUnknown_3000E10 - thumb_func_end HandleLinkPlayerKeyInput - - thumb_func_start UpdateAllLinkPlayers -UpdateAllLinkPlayers: @ 0x0808689C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x14 - mov r8, r1 - movs r6, #0 - add r5, sp, #0x10 - mov sb, r5 - adds r7, r0, #0 -_080868B0: - ldrb r4, [r7] - movs r0, #0 - strh r0, [r5] - adds r0, r6, #0 - mov r1, r8 - mov r2, sp - bl LoadTradeRoomPlayer - adds r0, r6, #0 - adds r1, r4, #0 - mov r2, sp - adds r3, r5, #0 - bl HandleLinkPlayerKeyInput - ldr r0, _08086900 - adds r0, r6, r0 - ldrb r0, [r0] - cmp r0, #0x80 - bne _080868E0 - adds r0, r4, #0 - bl GetDirectionForDpadKey - mov r1, sb - strh r0, [r1] -_080868E0: - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r5] - bl SetPlayerFacingDirection - adds r7, #2 - adds r6, #1 - cmp r6, #3 - ble _080868B0 - add sp, #0x14 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08086900: .4byte gUnknown_3000E10 - thumb_func_end UpdateAllLinkPlayers - - thumb_func_start UpdateHeldKeyCode -UpdateHeldKeyCode: @ 0x08086904 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r1, _0808691C - adds r0, r0, r1 - lsrs r0, r0, #0x10 - cmp r0, #0xc - bhi _08086924 - ldr r0, _08086920 - strh r4, [r0] - b _0808692A - .align 2, 0 -_0808691C: .4byte 0xFFEF0000 -_08086920: .4byte gUnknown_3005B08 -_08086924: - ldr r1, _08086968 - movs r0, #0x11 - strh r0, [r1] -_0808692A: - ldr r0, _0808696C - ldrb r0, [r0] - cmp r0, #0 - beq _08086960 - bl GetLinkSendQueueLength - cmp r0, #1 - bls _08086960 - bl IsUpdateLinkStateCBActive - cmp r0, #1 - bne _08086960 - bl IsSendingKeysToLink - cmp r0, #1 - bne _08086960 - cmp r4, #0x11 - blt _08086960 - cmp r4, #0x15 - ble _0808695A - cmp r4, #0x19 - bgt _08086960 - cmp r4, #0x18 - blt _08086960 -_0808695A: - ldr r1, _08086968 - movs r0, #0 - strh r0, [r1] -_08086960: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08086968: .4byte gUnknown_3005B08 -_0808696C: .4byte gUnknown_300319C - thumb_func_end UpdateHeldKeyCode - - thumb_func_start KeyInterCB_ReadButtons -KeyInterCB_ReadButtons: @ 0x08086970 - push {lr} - ldr r2, _08086984 - ldrh r1, [r2, #0x2c] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08086988 - movs r0, #0x13 - b _080869C8 - .align 2, 0 -_08086984: .4byte gUnknown_3002360 -_08086988: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08086994 - movs r0, #0x12 - b _080869C8 -_08086994: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080869A0 - movs r0, #0x14 - b _080869C8 -_080869A0: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080869AC - movs r0, #0x15 - b _080869C8 -_080869AC: - ldrh r1, [r2, #0x2e] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080869BA - movs r0, #0x18 - b _080869C8 -_080869BA: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080869C6 - movs r0, #0x11 - b _080869C8 -_080869C6: - movs r0, #0x19 -_080869C8: - pop {r1} - bx r1 - thumb_func_end KeyInterCB_ReadButtons - - thumb_func_start GetDirectionForDpadKey -GetDirectionForDpadKey: @ 0x080869CC - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r0, #0 - cmp r0, #0x13 - beq _080869F2 - cmp r0, #0x13 - bgt _080869E2 - cmp r0, #0x12 - beq _080869F6 - b _080869FA -_080869E2: - cmp r1, #0x14 - beq _080869EE - cmp r1, #0x15 - bne _080869FA - movs r0, #4 - b _080869FC -_080869EE: - movs r0, #3 - b _080869FC -_080869F2: - movs r0, #1 - b _080869FC -_080869F6: - movs r0, #2 - b _080869FC -_080869FA: - movs r0, #0 -_080869FC: - pop {r1} - bx r1 - thumb_func_end GetDirectionForDpadKey - - thumb_func_start ResetPlayerHeldKeys -ResetPlayerHeldKeys: @ 0x08086A00 - push {lr} - movs r2, #0x11 - adds r1, r0, #6 -_08086A06: - strh r2, [r1] - subs r1, #2 - cmp r1, r0 - bge _08086A06 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ResetPlayerHeldKeys - - thumb_func_start KeyInterCB_SelfIdle -KeyInterCB_SelfIdle: @ 0x08086A14 - push {r4, lr} - adds r4, r0, #0 - bl sub_080987F4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08086A28 - movs r0, #0x11 - b _08086A4A -_08086A28: - bl GetLinkRecvQueueLength - cmp r0, #4 - bls _08086A34 - movs r0, #0x1b - b _08086A4A -_08086A34: - bl GetLinkSendQueueLength - cmp r0, #4 - bls _08086A40 - movs r0, #0x1c - b _08086A4A -_08086A40: - adds r0, r4, #0 - bl KeyInterCB_ReadButtons - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 -_08086A4A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end KeyInterCB_SelfIdle - - thumb_func_start sub_08086A50 -sub_08086A50: @ 0x08086A50 - push {lr} - bl CheckRfuKeepAliveTimer - movs r0, #0x11 - pop {r1} - bx r1 - thumb_func_end sub_08086A50 - - thumb_func_start KeyInterCB_DeferToEventScript -KeyInterCB_DeferToEventScript: @ 0x08086A5C - push {r4, lr} - bl sub_080987F4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r4, #0x11 - cmp r0, #1 - beq _08086A74 - movs r4, #0x1a - ldr r0, _08086A7C - bl SetKeyInterceptCallback -_08086A74: - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08086A7C: .4byte sub_08086A50 - thumb_func_end KeyInterCB_DeferToEventScript - - thumb_func_start sub_08086A80 -sub_08086A80: @ 0x08086A80 - push {r4, lr} - bl GetLinkRecvQueueLength - movs r4, #0x11 - cmp r0, #2 - bhi _08086A98 - movs r4, #0x1a - bl sub_080987E8 - ldr r0, _08086AA0 - bl SetKeyInterceptCallback -_08086A98: - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08086AA0: .4byte sub_08086A50 - thumb_func_end sub_08086A80 - - thumb_func_start KeyInterCB_DeferToSendQueue -KeyInterCB_DeferToSendQueue: @ 0x08086AA4 - push {r4, lr} - bl GetLinkSendQueueLength - movs r4, #0x11 - cmp r0, #2 - bhi _08086ABC - movs r4, #0x1a - bl sub_080987E8 - ldr r0, _08086AC4 - bl SetKeyInterceptCallback -_08086ABC: - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08086AC4: .4byte sub_08086A50 - thumb_func_end KeyInterCB_DeferToSendQueue - - thumb_func_start KeyInterCB_DoNothingAndKeepAlive -KeyInterCB_DoNothingAndKeepAlive: @ 0x08086AC8 - push {lr} - bl CheckRfuKeepAliveTimer - movs r0, #0x11 - pop {r1} - bx r1 - thumb_func_end KeyInterCB_DoNothingAndKeepAlive - - thumb_func_start sub_08086AD4 -sub_08086AD4: @ 0x08086AD4 - push {lr} - ldr r1, _08086AF8 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0x82 - bne _08086B04 - ldr r0, _08086AFC - ldrh r1, [r0, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08086B08 - ldr r0, _08086B00 - bl SetKeyInterceptCallback - movs r0, #0x1d - b _08086B0A - .align 2, 0 -_08086AF8: .4byte gUnknown_3000E10 -_08086AFC: .4byte gUnknown_3002360 -_08086B00: .4byte KeyInterCB_DoNothingAndKeepAlive -_08086B04: - bl CheckRfuKeepAliveTimer -_08086B08: - movs r0, #0x11 -_08086B0A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08086AD4 - - thumb_func_start sub_08086B10 -sub_08086B10: @ 0x08086B10 - push {lr} - ldr r0, _08086B20 - bl SetKeyInterceptCallback - movs r0, #0x16 - pop {r1} - bx r1 - .align 2, 0 -_08086B20: .4byte sub_08086AD4 - thumb_func_end sub_08086B10 - - thumb_func_start sub_08086B24 -sub_08086B24: @ 0x08086B24 - movs r0, #0x11 - bx lr - thumb_func_end sub_08086B24 - - thumb_func_start KeyInterCB_WaitForPlayersToExit -KeyInterCB_WaitForPlayersToExit: @ 0x08086B28 - push {lr} - ldr r1, _08086B54 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0x83 - beq _08086B38 - bl CheckRfuKeepAliveTimer -_08086B38: - movs r0, #0x83 - bl AreAllPlayersInTradingState - cmp r0, #1 - bne _08086B4E - ldr r0, _08086B58 - bl ScriptContext1_SetupScript - ldr r0, _08086B5C - bl SetKeyInterceptCallback -_08086B4E: - movs r0, #0x11 - pop {r1} - bx r1 - .align 2, 0 -_08086B54: .4byte gUnknown_3000E10 -_08086B58: .4byte gUnknown_82471F2 -_08086B5C: .4byte sub_08086B24 - thumb_func_end KeyInterCB_WaitForPlayersToExit - - thumb_func_start KeyInterCB_SendExitRoomKey -KeyInterCB_SendExitRoomKey: @ 0x08086B60 - push {lr} - ldr r0, _08086B70 - bl SetKeyInterceptCallback - movs r0, #0x17 - pop {r1} - bx r1 - .align 2, 0 -_08086B70: .4byte KeyInterCB_WaitForPlayersToExit - thumb_func_end KeyInterCB_SendExitRoomKey - - thumb_func_start sub_08086B74 -sub_08086B74: @ 0x08086B74 - movs r0, #0x11 - bx lr - thumb_func_end sub_08086B74 - - thumb_func_start sub_08086B78 -sub_08086B78: @ 0x08086B78 - push {lr} - movs r0, #0x83 - bl IsAnyPlayerInTradingState - cmp r0, #1 - beq _08086BB4 - ldr r0, _08086BB8 - ldr r2, [r0] - ldr r1, _08086BBC - adds r3, r0, #0 - cmp r2, r1 - bne _08086B9E - ldr r1, _08086BC0 - ldr r0, _08086BC4 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0x82 - bne _08086BD6 -_08086B9E: - ldr r1, [r3] - ldr r0, _08086BC8 - cmp r1, r0 - bne _08086BCC - ldr r1, _08086BC0 - ldr r0, _08086BC4 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0x81 - bne _08086BCC -_08086BB4: - movs r0, #2 - b _08086BDC - .align 2, 0 -_08086BB8: .4byte gUnknown_3000E14 -_08086BBC: .4byte sub_08086AD4 -_08086BC0: .4byte gUnknown_3000E10 -_08086BC4: .4byte gUnknown_3005B14 -_08086BC8: .4byte KeyInterCB_DoNothingAndKeepAlive -_08086BCC: - movs r0, #0x82 - bl AreAllPlayersInTradingState - cmp r0, #0 - bne _08086BDA -_08086BD6: - movs r0, #0 - b _08086BDC -_08086BDA: - movs r0, #1 -_08086BDC: - pop {r1} - bx r1 - thumb_func_end sub_08086B78 - - thumb_func_start sub_08086BE0 -sub_08086BE0: @ 0x08086BE0 - push {lr} - movs r0, #0x83 - bl IsAnyPlayerInTradingState - pop {r1} - bx r1 - thumb_func_end sub_08086BE0 - - thumb_func_start sub_08086BEC -sub_08086BEC: @ 0x08086BEC - push {lr} - ldr r0, _08086BFC - bl SetKeyInterceptCallback - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_08086BFC: .4byte sub_08086B10 - thumb_func_end sub_08086BEC - - thumb_func_start sub_08086C00 -sub_08086C00: @ 0x08086C00 - push {lr} - ldr r0, _08086C10 - bl SetKeyInterceptCallback - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_08086C10: .4byte KeyInterCB_DeferToEventScript - thumb_func_end sub_08086C00 - - thumb_func_start QueueExitLinkRoomKey -QueueExitLinkRoomKey: @ 0x08086C14 - push {lr} - ldr r0, _08086C24 - bl SetKeyInterceptCallback - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_08086C24: .4byte KeyInterCB_SendExitRoomKey - thumb_func_end QueueExitLinkRoomKey - - thumb_func_start sub_08086C28 -sub_08086C28: @ 0x08086C28 - push {lr} - ldr r0, _08086C38 - bl SetKeyInterceptCallback - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_08086C38: .4byte sub_08086B74 - thumb_func_end sub_08086C28 - - thumb_func_start LoadTradeRoomPlayer -LoadTradeRoomPlayer: @ 0x08086C3C - push {r4, r5, r6, lr} - sub sp, #4 - adds r4, r0, #0 - adds r6, r2, #0 - strb r4, [r6] - movs r0, #0 - cmp r4, r1 - bne _08086C4E - movs r0, #1 -_08086C4E: - strb r0, [r6, #1] - ldr r1, _08086CA0 - lsls r0, r4, #2 - adds r0, r0, r1 - ldrb r0, [r0, #3] - strb r0, [r6, #2] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl GetLinkPlayerFacingDirection - strb r0, [r6, #3] - mov r5, sp - adds r5, #2 - adds r0, r4, #0 - mov r1, sp - adds r2, r5, #0 - bl GetLinkPlayerCoords - mov r0, sp - ldrh r0, [r0] - strh r0, [r6, #4] - ldrh r0, [r5] - strh r0, [r6, #6] - adds r0, r4, #0 - bl GetLinkPlayerElevation - strb r0, [r6, #8] - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - strh r0, [r6, #0xc] - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08086CA0: .4byte gUnknown_2031FA8 - thumb_func_end LoadTradeRoomPlayer - - thumb_func_start sub_08086CA4 -sub_08086CA4: @ 0x08086CA4 - push {lr} - ldrb r0, [r0, #2] - cmp r0, #2 - beq _08086CB0 - cmp r0, #0 - bne _08086CB4 -_08086CB0: - movs r0, #1 - b _08086CB6 -_08086CB4: - movs r0, #0 -_08086CB6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08086CA4 - - thumb_func_start sub_08086CBC -sub_08086CBC: @ 0x08086CBC - push {lr} - ldrb r0, [r0, #2] - cmp r0, #2 - beq _08086CC8 - cmp r0, #0 - bne _08086CCC -_08086CC8: - movs r0, #1 - b _08086CCE -_08086CCC: - movs r0, #0 -_08086CCE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08086CBC - - thumb_func_start TryGetTileEventScript -TryGetTileEventScript: @ 0x08086CD4 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #2] - cmp r0, #2 - bne _08086CE6 - adds r0, r1, #4 - bl GetCoordEventScriptAtMapPosition - b _08086CE8 -_08086CE6: - movs r0, #0 -_08086CE8: - pop {r1} - bx r1 - thumb_func_end TryGetTileEventScript - - thumb_func_start PlayerIsAtSouthExit -PlayerIsAtSouthExit: @ 0x08086CEC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #2] - cmp r0, #2 - beq _08086CFA - cmp r0, #0 - bne _08086D10 -_08086CFA: - ldrb r0, [r4, #0xc] - bl MetatileBehavior_IsSouthArrowWarp - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08086D10 - ldrb r0, [r4, #3] - cmp r0, #1 - bne _08086D10 - movs r0, #1 - b _08086D12 -_08086D10: - movs r0, #0 -_08086D12: - pop {r4} - pop {r1} - bx r1 - thumb_func_end PlayerIsAtSouthExit - - thumb_func_start TryInteractWithPlayer -TryInteractWithPlayer: @ 0x08086D18 - push {r4, lr} - sub sp, #8 - adds r4, r0, #0 - ldrb r0, [r4, #2] - cmp r0, #0 - beq _08086D2C - cmp r0, #2 - beq _08086D2C - movs r0, #0 - b _08086DDA -_08086D2C: - ldr r0, [r4, #4] - ldr r1, [r4, #8] - str r0, [sp] - str r1, [sp, #4] - ldr r3, _08086D9C - ldrb r0, [r4, #3] - lsls r0, r0, #3 - adds r0, r0, r3 - ldr r0, [r0] - mov r1, sp - ldrh r1, [r1] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _08086DA0 - ldr r2, [sp] - ands r2, r1 - orrs r2, r0 - str r2, [sp] - asrs r1, r2, #0x10 - ldrb r0, [r4, #3] - lsls r0, r0, #3 - adds r3, #4 - adds r0, r0, r3 - ldr r0, [r0] - adds r0, r0, r1 - lsls r0, r0, #0x10 - ldr r1, _08086DA4 - ands r1, r2 - orrs r1, r0 - str r1, [sp] - ldr r2, _08086DA8 - ldr r0, [sp, #4] - ands r0, r2 - str r0, [sp, #4] - mov r0, sp - movs r2, #0 - ldrsh r0, [r0, r2] - asrs r1, r1, #0x10 - bl GetLinkPlayerIdAt - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r2, r1, #0 - cmp r1, #4 - beq _08086DD0 - ldrb r0, [r4, #1] - cmp r0, #0 - beq _08086D98 - ldr r0, _08086DAC - adds r0, r1, r0 - ldrb r0, [r0] - cmp r0, #0x80 - beq _08086DB4 -_08086D98: - ldr r0, _08086DB0 - b _08086DDA - .align 2, 0 -_08086D9C: .4byte gUnknown_830FCB0 -_08086DA0: .4byte 0xFFFF0000 -_08086DA4: .4byte 0x0000FFFF -_08086DA8: .4byte 0xFFFFFF00 -_08086DAC: .4byte gUnknown_3000E10 -_08086DB0: .4byte gUnknown_824717B -_08086DB4: - adds r0, r2, #0 - bl GetLinkTrainerCardColor - cmp r0, #0 - bne _08086DC8 - ldr r0, _08086DC4 - b _08086DDA - .align 2, 0 -_08086DC4: .4byte gUnknown_824715D -_08086DC8: - ldr r0, _08086DCC - b _08086DDA - .align 2, 0 -_08086DCC: .4byte gUnknown_824716C -_08086DD0: - ldrb r1, [r4, #0xc] - ldrb r2, [r4, #3] - mov r0, sp - bl GetInteractedLinkPlayerScript -_08086DDA: - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end TryInteractWithPlayer - - thumb_func_start GetDirectionForEventScript -GetDirectionForEventScript: @ 0x08086DE4 - push {lr} - adds r1, r0, #0 - ldr r0, _08086E30 - cmp r1, r0 - beq _08086E2A - ldr r0, _08086E34 - cmp r1, r0 - beq _08086E6C - ldr r0, _08086E38 - cmp r1, r0 - beq _08086E2A - ldr r0, _08086E3C - cmp r1, r0 - beq _08086E6C - ldr r0, _08086E40 - cmp r1, r0 - beq _08086E2A - ldr r0, _08086E44 - cmp r1, r0 - beq _08086E6C - ldr r0, _08086E48 - cmp r1, r0 - beq _08086E2A - ldr r0, _08086E4C - cmp r1, r0 - beq _08086E6C - ldr r0, _08086E50 - cmp r1, r0 - beq _08086E2A - ldr r0, _08086E54 - cmp r1, r0 - beq _08086E6C - ldr r0, _08086E58 - cmp r1, r0 - bne _08086E5C -_08086E2A: - movs r0, #0xa - b _08086E6E - .align 2, 0 -_08086E30: .4byte gUnknown_8247067 -_08086E34: .4byte gUnknown_8247082 -_08086E38: .4byte gUnknown_824709D -_08086E3C: .4byte gUnknown_82470B8 -_08086E40: .4byte gUnknown_82470FC -_08086E44: .4byte gUnknown_8247111 -_08086E48: .4byte gUnknown_8247126 -_08086E4C: .4byte gUnknown_824713B -_08086E50: .4byte gUnknown_8247053 -_08086E54: .4byte gUnknown_824705D -_08086E58: .4byte gUnknown_82470D4 -_08086E5C: - ldr r0, _08086E68 - cmp r1, r0 - beq _08086E6C - movs r0, #0 - b _08086E6E - .align 2, 0 -_08086E68: .4byte gUnknown_82470DE -_08086E6C: - movs r0, #9 -_08086E6E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetDirectionForEventScript - - thumb_func_start sub_08086E74 -sub_08086E74: @ 0x08086E74 - push {lr} - bl sub_080987DC - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08086E74 - - thumb_func_start InitLinkRoomStartMenuScript -InitLinkRoomStartMenuScript: @ 0x08086E80 - push {lr} - movs r0, #6 - bl sub_080A306C - bl ShowStartMenu - bl sub_080987DC - pop {r0} - bx r0 - thumb_func_end InitLinkRoomStartMenuScript - - thumb_func_start sub_08086E94 -sub_08086E94: @ 0x08086E94 - push {r4, lr} - adds r4, r0, #0 - movs r0, #5 - bl sub_080A306C - adds r0, r4, #0 - bl ScriptContext1_SetupScript - bl sub_080987DC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08086E94 - - thumb_func_start CreateConfirmLeaveTradeRoomPrompt -CreateConfirmLeaveTradeRoomPrompt: @ 0x08086EB0 - push {lr} - movs r0, #6 - bl sub_080A306C - ldr r0, _08086EC8 - bl ScriptContext1_SetupScript - bl sub_080987DC - pop {r0} - bx r0 - .align 2, 0 -_08086EC8: .4byte gUnknown_82471CE - thumb_func_end CreateConfirmLeaveTradeRoomPrompt - - thumb_func_start sub_08086ECC -sub_08086ECC: @ 0x08086ECC - push {r4, lr} - adds r4, r0, #0 - movs r0, #5 - bl sub_080A306C - adds r0, r4, #0 - bl ScriptContext1_SetupScript - bl sub_080987DC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08086ECC - - thumb_func_start sub_08086EE8 -sub_08086EE8: @ 0x08086EE8 - push {lr} - ldr r0, _08086EF8 - bl ScriptContext1_SetupScript - bl sub_080987DC - pop {r0} - bx r0 - .align 2, 0 -_08086EF8: .4byte gUnknown_82471E8 - thumb_func_end sub_08086EE8 - - thumb_func_start sub_08086EFC -sub_08086EFC: @ 0x08086EFC - push {lr} - bl IsUpdateLinkStateCBActive - cmp r0, #0 - bne _08086F0A - movs r0, #0 - b _08086F24 -_08086F0A: - bl GetLinkRecvQueueLength - cmp r0, #2 - bls _08086F1C - ldr r1, _08086F18 - movs r0, #1 - b _08086F20 - .align 2, 0 -_08086F18: .4byte gUnknown_3000E18 -_08086F1C: - ldr r1, _08086F28 - movs r0, #0 -_08086F20: - strb r0, [r1] - ldrb r0, [r1] -_08086F24: - pop {r1} - bx r1 - .align 2, 0 -_08086F28: .4byte gUnknown_3000E18 - thumb_func_end sub_08086EFC - - thumb_func_start sub_08086F2C -sub_08086F2C: @ 0x08086F2C - push {lr} - bl GetLinkRecvQueueLength - cmp r0, #1 - bls _08086F90 - bl IsUpdateLinkStateCBActive - cmp r0, #1 - bne _08086F90 - bl IsSendingKeysToLink - cmp r0, #1 - bne _08086F90 - ldr r0, _08086F7C - ldr r1, [r0] - ldr r0, _08086F80 - cmp r1, r0 - beq _08086F78 - ldr r0, _08086F84 - cmp r1, r0 - bne _08086F90 - ldr r0, _08086F88 - ldrb r2, [r0] - movs r1, #0 - strb r1, [r0] - cmp r2, #1 - beq _08086F78 - ldr r2, _08086F8C - ldrb r1, [r2, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08086F90 - ldrb r1, [r2, #0xa] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08086F90 -_08086F78: - movs r0, #1 - b _08086F92 - .align 2, 0 -_08086F7C: .4byte gUnknown_3000E14 -_08086F80: .4byte sub_08086A80 -_08086F84: .4byte KeyInterCB_DeferToEventScript -_08086F88: .4byte gUnknown_3000E18 -_08086F8C: .4byte gUnknown_2037C74 -_08086F90: - movs r0, #0 -_08086F92: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08086F2C - - thumb_func_start sub_08086F98 -sub_08086F98: @ 0x08086F98 - push {lr} - bl GetLinkSendQueueLength - cmp r0, #1 - bls _08086FBC - bl IsUpdateLinkStateCBActive - cmp r0, #1 - bne _08086FBC - bl IsSendingKeysToLink - cmp r0, #1 - bne _08086FBC - ldr r0, _08086FC0 - ldr r1, [r0] - ldr r0, _08086FC4 - cmp r1, r0 - beq _08086FC8 -_08086FBC: - movs r0, #0 - b _08086FCA - .align 2, 0 -_08086FC0: .4byte gUnknown_3000E14 -_08086FC4: .4byte KeyInterCB_DeferToSendQueue -_08086FC8: - movs r0, #1 -_08086FCA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08086F98 - - thumb_func_start sub_08086FD0 -sub_08086FD0: @ 0x08086FD0 - push {lr} - ldr r0, _08086FE8 - ldrb r0, [r0] - cmp r0, #0 - bne _08086FEC - bl IsSendingKeysToLink - cmp r0, #0 - beq _08086FEC - movs r0, #1 - b _08086FEE - .align 2, 0 -_08086FE8: .4byte gUnknown_300319C -_08086FEC: - movs r0, #0 -_08086FEE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08086FD0 - - thumb_func_start GetLinkSendQueueLength -GetLinkSendQueueLength: @ 0x08086FF4 - push {lr} - ldr r0, _08087008 - ldrb r0, [r0] - cmp r0, #0 - bne _08087014 - ldr r0, _0808700C - ldr r1, _08087010 - adds r0, r0, r1 - ldrb r0, [r0] - b _0808701C - .align 2, 0 -_08087008: .4byte gUnknown_300319C -_0808700C: .4byte gUnknown_3003210 -_08087010: .4byte 0x00000339 -_08087014: - ldr r0, _08087020 - ldr r1, _08087024 - adds r0, r0, r1 - ldrb r0, [r0] -_0808701C: - pop {r1} - bx r1 - .align 2, 0 -_08087020: .4byte gUnknown_30050A0 -_08087024: .4byte 0x000008D2 - thumb_func_end GetLinkSendQueueLength - - thumb_func_start ZeroLinkPlayerEventObject -ZeroLinkPlayerEventObject: @ 0x08087028 - movs r1, #0 - str r1, [r0] - bx lr - .align 2, 0 - thumb_func_end ZeroLinkPlayerEventObject - - thumb_func_start ClearLinkPlayerEventObjects -ClearLinkPlayerEventObjects: @ 0x08087030 - push {lr} - ldr r0, _08087040 - movs r1, #0 - movs r2, #0x10 - bl memset - pop {r0} - bx r0 - .align 2, 0 -_08087040: .4byte gUnknown_2031FA8 - thumb_func_end ClearLinkPlayerEventObjects - - thumb_func_start ZeroEventObject -ZeroEventObject: @ 0x08087044 - push {lr} - movs r1, #0 - movs r2, #0x24 - bl memset - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ZeroEventObject - - thumb_func_start sub_08087054 -sub_08087054: @ 0x08087054 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sb, r1 - mov sl, r2 - mov r8, r3 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - mov r0, sb - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - mov r1, sl - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sl, r1 - mov r2, r8 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r8, r2 - bl GetFirstInactiveEventObjectId - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r4, r7, #2 - ldr r0, _080870F8 - adds r4, r4, r0 - lsls r5, r6, #3 - adds r5, r5, r6 - lsls r5, r5, #2 - ldr r0, _080870FC - adds r5, r5, r0 - adds r0, r4, #0 - bl ZeroLinkPlayerEventObject - adds r0, r5, #0 - bl ZeroEventObject - movs r2, #0 - movs r1, #1 - movs r0, #1 - strb r0, [r4] - strb r7, [r4, #1] - strb r6, [r4, #2] - strb r2, [r4, #3] - ldrb r0, [r5] - orrs r0, r1 - mov r2, r8 - ands r2, r1 - lsls r2, r2, #1 - movs r1, #3 - rsbs r1, r1, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r5] - movs r0, #2 - strb r0, [r5, #0x19] - movs r0, #0x40 - strb r0, [r5, #4] - mov r0, sb - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov sb, r0 - mov r1, sl - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - mov sl, r1 - adds r0, r5, #0 - mov r1, sb - mov r2, sl - bl InitLinkPlayerEventObjectPos - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080870F8: .4byte gUnknown_2031FA8 -_080870FC: .4byte gUnknown_2036FF0 - thumb_func_end sub_08087054 - - thumb_func_start InitLinkPlayerEventObjectPos -InitLinkPlayerEventObjectPos: @ 0x08087100 - push {r4, lr} - adds r4, r0, #0 - adds r0, r1, #0 - adds r1, r2, #0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - strh r0, [r4, #0x10] - strh r1, [r4, #0x12] - strh r0, [r4, #0x14] - strh r1, [r4, #0x16] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r2, r4, #0 - adds r2, #0xc - adds r3, r4, #0 - adds r3, #0xe - bl SetSpritePosToMapCoords - ldrh r0, [r4, #0xc] - adds r0, #8 - strh r0, [r4, #0xc] - adds r0, r4, #0 - bl EventObjectUpdateZCoord - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end InitLinkPlayerEventObjectPos - - thumb_func_start sub_08087140 -sub_08087140: @ 0x08087140 - push {lr} - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r2, r1, #0x18 - ldr r1, _08087168 - lsrs r0, r0, #0x16 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, #0 - beq _08087162 - ldrb r0, [r1, #2] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _0808716C - adds r1, r1, r0 - strb r2, [r1, #0x19] -_08087162: - pop {r0} - bx r0 - .align 2, 0 -_08087168: .4byte gUnknown_2031FA8 -_0808716C: .4byte gUnknown_2036FF0 - thumb_func_end sub_08087140 - - thumb_func_start sub_08087170 -sub_08087170: @ 0x08087170 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - ldr r1, _080871B0 - adds r5, r0, r1 - ldrb r1, [r5, #2] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080871B4 - adds r4, r0, r1 - ldrb r0, [r4, #4] - cmp r0, #0x40 - beq _0808719C - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080871B8 - adds r0, r0, r1 - bl DestroySprite -_0808719C: - movs r0, #0 - strb r0, [r5] - ldrb r1, [r4] - subs r0, #2 - ands r0, r1 - strb r0, [r4] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080871B0: .4byte gUnknown_2031FA8 -_080871B4: .4byte gUnknown_2036FF0 -_080871B8: .4byte gUnknown_20205AC - thumb_func_end sub_08087170 - - thumb_func_start GetSpriteForLinkedPlayer -GetSpriteForLinkedPlayer: @ 0x080871BC - lsls r0, r0, #0x18 - ldr r1, _080871D4 - lsrs r0, r0, #0x16 - adds r0, r0, r1 - ldrb r1, [r0, #2] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080871D8 - adds r0, r0, r1 - ldrb r0, [r0, #4] - bx lr - .align 2, 0 -_080871D4: .4byte gUnknown_2031FA8 -_080871D8: .4byte gUnknown_2036FF0 - thumb_func_end GetSpriteForLinkedPlayer - - thumb_func_start GetLinkPlayerCoords -GetLinkPlayerCoords: @ 0x080871DC - lsls r0, r0, #0x18 - ldr r3, _080871FC - lsrs r0, r0, #0x16 - adds r0, r0, r3 - ldrb r3, [r0, #2] - lsls r0, r3, #3 - adds r0, r0, r3 - lsls r0, r0, #2 - ldr r3, _08087200 - adds r0, r0, r3 - ldrh r3, [r0, #0x10] - strh r3, [r1] - ldrh r0, [r0, #0x12] - strh r0, [r2] - bx lr - .align 2, 0 -_080871FC: .4byte gUnknown_2031FA8 -_08087200: .4byte gUnknown_2036FF0 - thumb_func_end GetLinkPlayerCoords - - thumb_func_start GetLinkPlayerFacingDirection -GetLinkPlayerFacingDirection: @ 0x08087204 - lsls r0, r0, #0x18 - ldr r1, _0808721C - lsrs r0, r0, #0x16 - adds r0, r0, r1 - ldrb r1, [r0, #2] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08087220 - adds r0, r0, r1 - ldrb r0, [r0, #0x19] - bx lr - .align 2, 0 -_0808721C: .4byte gUnknown_2031FA8 -_08087220: .4byte gUnknown_2036FF0 - thumb_func_end GetLinkPlayerFacingDirection - - thumb_func_start GetLinkPlayerElevation -GetLinkPlayerElevation: @ 0x08087224 - lsls r0, r0, #0x18 - ldr r1, _08087240 - lsrs r0, r0, #0x16 - adds r0, r0, r1 - ldrb r1, [r0, #2] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08087244 - adds r0, r0, r1 - ldrb r0, [r0, #0xb] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bx lr - .align 2, 0 -_08087240: .4byte gUnknown_2031FA8 -_08087244: .4byte gUnknown_2036FF0 - thumb_func_end GetLinkPlayerElevation - - thumb_func_start sub_08087248 -sub_08087248: @ 0x08087248 - lsls r0, r0, #0x18 - ldr r1, _08087268 - lsrs r0, r0, #0x16 - adds r0, r0, r1 - ldrb r1, [r0, #2] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808726C - adds r0, r0, r1 - adds r0, #0x21 - movs r1, #0 - ldrsb r1, [r0, r1] - movs r0, #0x10 - subs r0, r0, r1 - bx lr - .align 2, 0 -_08087268: .4byte gUnknown_2031FA8 -_0808726C: .4byte gUnknown_2036FF0 - thumb_func_end sub_08087248 - - thumb_func_start GetLinkPlayerIdAt -GetLinkPlayerIdAt: @ 0x08087270 - push {r4, r5, r6, lr} - movs r2, #0 - ldr r5, _080872B4 - lsls r0, r0, #0x10 - asrs r4, r0, #0x10 - lsls r1, r1, #0x10 - asrs r3, r1, #0x10 -_0808727E: - lsls r0, r2, #2 - adds r1, r0, r5 - ldrb r0, [r1] - cmp r0, #0 - beq _080872BC - ldrb r0, [r1, #3] - cmp r0, #0 - beq _08087292 - cmp r0, #2 - bne _080872BC -_08087292: - ldrb r1, [r1, #2] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080872B8 - adds r1, r0, r1 - movs r6, #0x10 - ldrsh r0, [r1, r6] - cmp r0, r4 - bne _080872BC - movs r6, #0x12 - ldrsh r0, [r1, r6] - cmp r0, r3 - bne _080872BC - adds r0, r2, #0 - b _080872C8 - .align 2, 0 -_080872B4: .4byte gUnknown_2031FA8 -_080872B8: .4byte gUnknown_2036FF0 -_080872BC: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #3 - bls _0808727E - movs r0, #4 -_080872C8: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetLinkPlayerIdAt - - thumb_func_start SetPlayerFacingDirection -SetPlayerFacingDirection: @ 0x080872D0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - adds r2, r3, #0 - lsrs r0, r0, #0x16 - ldr r1, _08087300 - adds r5, r0, r1 - ldrb r1, [r5, #2] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08087304 - adds r6, r0, r1 - ldrb r0, [r5] - cmp r0, #0 - beq _0808732C - cmp r3, #0xa - bls _08087308 - ldrb r0, [r6] - movs r1, #4 - orrs r0, r1 - strb r0, [r6] - b _0808732C - .align 2, 0 -_08087300: .4byte gUnknown_2031FA8 -_08087304: .4byte gUnknown_2036FF0 -_08087308: - ldr r4, _08087334 - ldr r1, _08087338 - ldrb r0, [r5, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r3, [r0] - adds r0, r5, #0 - adds r1, r6, #0 - bl _call_via_r3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r0, r0, r4 - ldr r2, [r0] - adds r0, r5, #0 - adds r1, r6, #0 - bl _call_via_r2 -_0808732C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08087334: .4byte gUnknown_830FD4C -_08087338: .4byte gUnknown_830FD14 - thumb_func_end SetPlayerFacingDirection - - thumb_func_start sub_0808733C -sub_0808733C: @ 0x0808733C - push {r4, lr} - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r4, _08087358 - lsls r3, r2, #2 - adds r3, r3, r4 - ldr r3, [r3] - bl _call_via_r3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08087358: .4byte gUnknown_830FD20 - thumb_func_end sub_0808733C - - thumb_func_start sub_0808735C -sub_0808735C: @ 0x0808735C - movs r0, #1 - bx lr - thumb_func_end sub_0808735C - - thumb_func_start sub_08087360 -sub_08087360: @ 0x08087360 - push {r4, lr} - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r4, _0808737C - lsls r3, r2, #2 - adds r3, r3, r4 - ldr r3, [r3] - bl _call_via_r3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0808737C: .4byte gUnknown_830FD20 - thumb_func_end sub_08087360 - - thumb_func_start sub_08087380 -sub_08087380: @ 0x08087380 - movs r0, #0 - bx lr - thumb_func_end sub_08087380 - - thumb_func_start FacingHandler_DpadMovement -FacingHandler_DpadMovement: @ 0x08087384 - push {r4, r5, r6, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r5, #0x19] - bl FlipVerticalAndClearForced - strb r0, [r5, #0x19] - ldrb r1, [r5, #0x19] - mov r6, sp - adds r6, #2 - adds r0, r5, #0 - mov r2, sp - adds r3, r6, #0 - bl EventObjectMoveDestCoords - ldrb r0, [r4, #2] - ldrb r1, [r5, #0x19] - mov r2, sp - movs r3, #0 - ldrsh r2, [r2, r3] - movs r4, #0 - ldrsh r3, [r6, r4] - bl LinkPlayerDetectCollision - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080873E2 - adds r1, r5, #0 - adds r1, #0x21 - movs r0, #0x10 - strb r0, [r1] - mov r0, sp - movs r2, #0 - ldrsh r1, [r0, r2] - movs r3, #0 - ldrsh r2, [r6, r3] - adds r0, r5, #0 - bl ShiftEventObjectCoords - adds r0, r5, #0 - bl EventObjectUpdateZCoord - movs r0, #1 - b _080873E4 -_080873E2: - movs r0, #0 -_080873E4: - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end FacingHandler_DpadMovement - - thumb_func_start FacingHandler_ForcedFacingChange -FacingHandler_ForcedFacingChange: @ 0x080873EC - push {r4, lr} - adds r4, r1, #0 - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r4, #0x19] - bl FlipVerticalAndClearForced - strb r0, [r4, #0x19] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end FacingHandler_ForcedFacingChange - - thumb_func_start MovementStatusHandler_EnterFreeMode -MovementStatusHandler_EnterFreeMode: @ 0x08087404 - movs r1, #0 - strb r1, [r0, #3] - bx lr - .align 2, 0 - thumb_func_end MovementStatusHandler_EnterFreeMode - - thumb_func_start MovementStatusHandler_TryAdvanceScript -MovementStatusHandler_TryAdvanceScript: @ 0x0808740C - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r4, r1, #0 - adds r5, r4, #0 - adds r5, #0x21 - ldrb r0, [r5] - subs r0, #1 - strb r0, [r5] - movs r0, #1 - strb r0, [r6, #3] - ldrb r0, [r4, #0x19] - adds r1, #0xc - adds r2, r4, #0 - adds r2, #0xe - bl MoveCoords - ldrb r0, [r5] - cmp r0, #0 - bne _0808743C - adds r0, r4, #0 - bl ShiftStillEventObjectCoords - movs r0, #2 - strb r0, [r6, #3] -_0808743C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end MovementStatusHandler_TryAdvanceScript - - thumb_func_start FlipVerticalAndClearForced -FlipVerticalAndClearForced: @ 0x08087444 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r2, r1, #0x18 - subs r0, #1 - cmp r0, #9 - bhi _0808749C - lsls r0, r0, #2 - ldr r1, _08087460 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08087460: .4byte _08087464 -_08087464: @ jump table - .4byte _0808748C @ case 0 - .4byte _08087490 @ case 1 - .4byte _08087494 @ case 2 - .4byte _08087498 @ case 3 - .4byte _0808749C @ case 4 - .4byte _0808749C @ case 5 - .4byte _0808748C @ case 6 - .4byte _08087490 @ case 7 - .4byte _08087494 @ case 8 - .4byte _08087498 @ case 9 -_0808748C: - movs r0, #2 - b _0808749E -_08087490: - movs r0, #1 - b _0808749E -_08087494: - movs r0, #3 - b _0808749E -_08087498: - movs r0, #4 - b _0808749E -_0808749C: - adds r0, r2, #0 -_0808749E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end FlipVerticalAndClearForced - - thumb_func_start LinkPlayerDetectCollision -LinkPlayerDetectCollision: @ 0x080874A4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - mov ip, r2 - lsls r3, r3, #0x10 - movs r4, #0 - ldr r0, _08087508 - mov sb, r0 - lsrs r2, r3, #0x10 - mov sl, r2 - asrs r6, r3, #0x10 -_080874C8: - mov r7, ip - lsls r3, r7, #0x10 - mov r0, sl - lsls r5, r0, #0x10 - cmp r4, r8 - beq _0808750C - lsls r0, r4, #3 - adds r0, r0, r4 - lsls r0, r0, #2 - mov r2, sb - adds r1, r0, r2 - movs r7, #0x10 - ldrsh r0, [r1, r7] - asrs r2, r3, #0x10 - cmp r0, r2 - bne _080874F0 - movs r7, #0x12 - ldrsh r0, [r1, r7] - cmp r0, r6 - beq _08087502 -_080874F0: - movs r7, #0x14 - ldrsh r0, [r1, r7] - cmp r0, r2 - bne _0808750C - movs r0, #0x16 - ldrsh r1, [r1, r0] - asrs r0, r5, #0x10 - cmp r1, r0 - bne _0808750C -_08087502: - movs r0, #1 - b _08087522 - .align 2, 0 -_08087508: .4byte gUnknown_2036FF0 -_0808750C: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xf - bls _080874C8 - asrs r0, r3, #0x10 - asrs r1, r5, #0x10 - bl MapGridIsImpassableAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_08087522: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end LinkPlayerDetectCollision - - thumb_func_start CreateLinkPlayerSprite -CreateLinkPlayerSprite: @ 0x08087530 - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - lsls r2, r5, #2 - ldr r0, _08087564 - adds r2, r2, r0 - ldrb r1, [r2, #2] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08087568 - adds r4, r0, r1 - ldrb r0, [r2] - cmp r0, #0 - beq _080875DE - subs r0, r3, #1 - cmp r0, #4 - bhi _080875BA - lsls r0, r0, #2 - ldr r1, _0808756C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08087564: .4byte gUnknown_2031FA8 -_08087568: .4byte gUnknown_2036FF0 -_0808756C: .4byte _08087570 -_08087570: @ jump table - .4byte _08087590 @ case 0 - .4byte _08087590 @ case 1 - .4byte _0808759C @ case 2 - .4byte _08087584 @ case 3 - .4byte _08087584 @ case 4 -_08087584: - ldrb r0, [r4] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1f - bl sub_0808B6D0 - b _080875A8 -_08087590: - ldrb r0, [r4] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1f - bl sub_0808B6E0 - b _080875A8 -_0808759C: - ldrb r1, [r4] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1f - movs r0, #0 - bl sub_0808B6A0 -_080875A8: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080875E8 - movs r2, #0 - str r2, [sp] - movs r3, #0 - bl AddPseudoEventObject - strb r0, [r4, #4] -_080875BA: - ldrb r1, [r4, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080875EC - adds r0, r0, r1 - adds r3, r0, #0 - adds r3, #0x3e - ldrb r1, [r3] - movs r2, #2 - orrs r1, r2 - strb r1, [r3] - strh r5, [r0, #0x2e] - ldrb r1, [r4] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4] -_080875DE: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080875E8: .4byte SpriteCB_LinkPlayer -_080875EC: .4byte gUnknown_20205AC - thumb_func_end CreateLinkPlayerSprite - - thumb_func_start SpriteCB_LinkPlayer -SpriteCB_LinkPlayer: @ 0x080875F0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #0x2e - ldrsh r4, [r5, r0] - lsls r4, r4, #2 - ldr r0, _08087654 - adds r4, r4, r0 - ldrb r1, [r4, #2] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08087658 - adds r6, r0, r1 - ldrh r0, [r6, #0xc] - strh r0, [r5, #0x20] - ldrh r0, [r6, #0xe] - strh r0, [r5, #0x22] - ldrb r0, [r6, #0xb] - lsrs r0, r0, #4 - adds r1, r5, #0 - movs r2, #1 - bl SetObjectSubpriorityByZCoord - ldrb r0, [r6, #0xb] - lsrs r0, r0, #4 - bl sub_08096718 - movs r1, #3 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r5, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #5] - ldrb r0, [r4, #3] - cmp r0, #0 - bne _0808765C - ldrb r0, [r6, #0x19] - bl sub_080922CC - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl StartSpriteAnim - b _0808766E - .align 2, 0 -_08087654: .4byte gUnknown_2031FA8 -_08087658: .4byte gUnknown_2036FF0 -_0808765C: - ldrb r0, [r6, #0x19] - bl sub_080922DC - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl StartSpriteAnimIfDifferent -_0808766E: - adds r0, r5, #0 - movs r1, #0 - bl UpdateEventObjectSpriteVisibility - ldrb r0, [r6] - lsls r0, r0, #0x1d - cmp r0, #0 - bge _080876A0 - ldrh r0, [r5, #0x3c] - movs r1, #4 - ands r1, r0 - lsls r1, r1, #0x10 - adds r3, r5, #0 - adds r3, #0x3e - lsrs r1, r1, #0x12 - lsls r1, r1, #2 - ldrb r2, [r3] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r5, #0x3c] - adds r0, #1 - strh r0, [r5, #0x3c] -_080876A0: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SpriteCB_LinkPlayer - - thumb_func_start mapconnection_get_mapheader -mapconnection_get_mapheader: @ 0x080876A8 - push {lr} - ldrb r2, [r0, #8] - ldrb r1, [r0, #9] - adds r0, r2, #0 - bl Overworld_GetMapHeaderByGroupAndId - pop {r1} - bx r1 - thumb_func_end mapconnection_get_mapheader - - thumb_func_start InitMap -InitMap: @ 0x080876B8 - push {r4, lr} - ldr r4, _080876D4 - adds r0, r4, #0 - bl InitMapLayoutData - ldr r0, [r4, #4] - bl SetOccupiedSecretBaseEntranceMetatiles - bl sub_080989C8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080876D4: .4byte gUnknown_2036FB8 - thumb_func_end InitMap - - thumb_func_start InitMapFromSavedGame -InitMapFromSavedGame: @ 0x080876D8 - push {r4, lr} - ldr r4, _08087708 - adds r0, r4, #0 - bl InitMapLayoutData - movs r0, #0 - bl sub_080E9EC4 - ldr r0, [r4, #4] - bl SetOccupiedSecretBaseEntranceMetatiles - bl sub_08087E00 - bl sub_080989C8 - ldr r1, _0808770C - ldr r0, [r1] - ldr r1, [r1, #4] - bl UpdateTVScreensOnMap - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08087708: .4byte gUnknown_2036FB8 -_0808770C: .4byte gUnknown_3005B20 - thumb_func_end InitMapFromSavedGame - - thumb_func_start InitBattlePyramidMap -InitBattlePyramidMap: @ 0x08087710 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _0808773C - str r0, [sp] - ldr r5, _08087740 - ldr r2, _08087744 - mov r0, sp - adds r1, r5, #0 - bl CpuFastSet - adds r0, r5, #0 - adds r1, r4, #0 - bl GenerateBattlePyramidFloorLayout - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0808773C: .4byte 0x03FF03FF -_08087740: .4byte gUnknown_2031FB8 -_08087744: .4byte 0x01001400 - thumb_func_end InitBattlePyramidMap - - thumb_func_start InitTrainerHillMap -InitTrainerHillMap: @ 0x08087748 - push {r4, lr} - sub sp, #4 - ldr r0, _0808776C - str r0, [sp] - ldr r4, _08087770 - ldr r2, _08087774 - mov r0, sp - adds r1, r4, #0 - bl CpuFastSet - adds r0, r4, #0 - bl sub_081D590C - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808776C: .4byte 0x03FF03FF -_08087770: .4byte gUnknown_2031FB8 -_08087774: .4byte 0x01001400 - thumb_func_end InitTrainerHillMap - - thumb_func_start InitMapLayoutData -InitMapLayoutData: @ 0x08087778 - push {r4, r5, r6, lr} - sub sp, #4 - adds r6, r0, #0 - ldr r5, [r6] - ldr r0, _080877C4 - str r0, [sp] - ldr r4, _080877C8 - ldr r2, _080877CC - mov r0, sp - adds r1, r4, #0 - bl CpuFastSet - ldr r2, _080877D0 - str r4, [r2, #8] - ldr r1, [r5] - adds r1, #0xf - str r1, [r2] - ldr r0, [r5, #4] - adds r0, #0xe - str r0, [r2, #4] - muls r1, r0, r1 - movs r0, #0xa0 - lsls r0, r0, #6 - cmp r1, r0 - bgt _080877BA - ldr r0, [r5, #0xc] - ldrh r1, [r5] - ldrh r2, [r5, #4] - bl InitBackupMapLayoutData - adds r0, r6, #0 - bl InitBackupMapLayoutConnections -_080877BA: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080877C4: .4byte 0x03FF03FF -_080877C8: .4byte gUnknown_2031FB8 -_080877CC: .4byte 0x01001400 -_080877D0: .4byte gUnknown_3005B20 - thumb_func_end InitMapLayoutData - - thumb_func_start InitBackupMapLayoutData -InitBackupMapLayoutData: @ 0x080877D4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r8, r1 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldr r0, _08087828 - ldr r4, [r0, #8] - ldr r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #1 - adds r0, #0xe - adds r4, r4, r0 - cmp r2, #0 - beq _0808781C - mov r0, r8 - lsls r6, r0, #1 - adds r5, r2, #0 - movs r0, #0x1e - adds r0, r0, r6 - mov sb, r0 -_08087808: - adds r0, r7, #0 - adds r1, r4, #0 - mov r2, r8 - bl CpuSet - add r4, sb - adds r7, r7, r6 - subs r5, #1 - cmp r5, #0 - bne _08087808 -_0808781C: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08087828: .4byte gUnknown_3005B20 - thumb_func_end InitBackupMapLayoutData - - thumb_func_start InitBackupMapLayoutConnections -InitBackupMapLayoutConnections: @ 0x0808782C - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldr r0, [r6, #0xc] - cmp r0, #0 - beq _080878B0 - ldr r1, [r0] - ldr r5, [r0, #4] - ldr r2, _08087864 - ldr r0, _08087868 - ldr r0, [r0] - str r0, [r2] - cmp r1, #0 - ble _080878B0 - adds r4, r2, #0 - adds r7, r1, #0 -_0808784A: - adds r0, r5, #0 - bl mapconnection_get_mapheader - adds r1, r0, #0 - ldr r2, [r5, #4] - ldrb r0, [r5] - cmp r0, #2 - beq _08087882 - cmp r0, #2 - bgt _0808786C - cmp r0, #1 - beq _08087876 - b _080878A8 - .align 2, 0 -_08087864: .4byte gUnknown_2036FE0 -_08087868: .4byte gUnknown_845F318 -_0808786C: - cmp r0, #3 - beq _0808788E - cmp r0, #4 - beq _0808789A - b _080878A8 -_08087876: - adds r0, r6, #0 - bl FillSouthConnection - ldrb r0, [r4] - movs r1, #1 - b _080878A4 -_08087882: - adds r0, r6, #0 - bl FillNorthConnection - ldrb r0, [r4] - movs r1, #2 - b _080878A4 -_0808788E: - adds r0, r6, #0 - bl FillWestConnection - ldrb r0, [r4] - movs r1, #4 - b _080878A4 -_0808789A: - adds r0, r6, #0 - bl FillEastConnection - ldrb r0, [r4] - movs r1, #8 -_080878A4: - orrs r0, r1 - strb r0, [r4] -_080878A8: - subs r7, #1 - adds r5, #0xc - cmp r7, #0 - bne _0808784A -_080878B0: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end InitBackupMapLayoutConnections - - thumb_func_start sub_080878B8 -sub_080878B8: @ 0x080878B8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r5, [sp, #0x18] - ldr r4, [r2] - ldr r7, [r4] - adds r2, r7, #0 - muls r2, r5, r2 - adds r2, r2, r3 - lsls r2, r2, #1 - ldr r3, [r4, #0xc] - adds r6, r3, r2 - ldr r3, _08087914 - ldr r2, [r3] - muls r1, r2, r1 - adds r1, r1, r0 - lsls r1, r1, #1 - ldr r0, [r3, #8] - adds r5, r0, r1 - ldr r0, [sp, #0x20] - cmp r0, #0 - ble _0808790A - adds r4, r0, #0 - ldr r3, _08087918 - mov r8, r3 -_080878EA: - adds r0, r6, #0 - adds r1, r5, #0 - ldr r2, [sp, #0x1c] - mov r3, r8 - ands r2, r3 - bl CpuSet - ldr r0, _08087914 - ldr r0, [r0] - lsls r0, r0, #1 - adds r5, r5, r0 - lsls r0, r7, #1 - adds r6, r6, r0 - subs r4, #1 - cmp r4, #0 - bne _080878EA -_0808790A: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08087914: .4byte gUnknown_3005B20 -_08087918: .4byte 0x001FFFFF - thumb_func_end sub_080878B8 - - thumb_func_start FillSouthConnection -FillSouthConnection: @ 0x0808791C - push {r4, r5, r6, r7, lr} - sub sp, #0xc - adds r3, r0, #0 - adds r5, r1, #0 - cmp r5, #0 - beq _08087976 - ldr r0, [r5] - ldr r4, [r0] - adds r2, #7 - ldr r0, [r3] - ldr r0, [r0, #4] - adds r7, r0, #7 - cmp r2, #0 - bge _08087950 - rsbs r6, r2, #0 - adds r2, r2, r4 - ldr r0, _0808794C - ldr r3, [r0] - cmp r2, r3 - bge _08087946 - adds r3, r2, #0 -_08087946: - movs r2, #0 - b _08087960 - .align 2, 0 -_0808794C: .4byte gUnknown_3005B20 -_08087950: - movs r6, #0 - adds r0, r2, r4 - ldr r1, _08087980 - ldr r1, [r1] - subs r3, r1, r2 - cmp r0, r1 - bge _08087960 - adds r3, r4, #0 -_08087960: - movs r0, #0 - str r0, [sp] - str r3, [sp, #4] - movs r0, #7 - str r0, [sp, #8] - adds r0, r2, #0 - adds r1, r7, #0 - adds r2, r5, #0 - adds r3, r6, #0 - bl sub_080878B8 -_08087976: - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08087980: .4byte gUnknown_3005B20 - thumb_func_end FillSouthConnection - - thumb_func_start FillNorthConnection -FillNorthConnection: @ 0x08087984 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - adds r5, r1, #0 - cmp r5, #0 - beq _080879D8 - ldr r0, [r5] - ldr r4, [r0] - ldr r0, [r0, #4] - adds r2, #7 - subs r7, r0, #7 - cmp r2, #0 - bge _080879B4 - rsbs r6, r2, #0 - adds r2, r2, r4 - ldr r0, _080879B0 - ldr r3, [r0] - cmp r2, r3 - bge _080879AA - adds r3, r2, #0 -_080879AA: - movs r2, #0 - b _080879C4 - .align 2, 0 -_080879B0: .4byte gUnknown_3005B20 -_080879B4: - movs r6, #0 - adds r0, r2, r4 - ldr r1, _080879E0 - ldr r1, [r1] - subs r3, r1, r2 - cmp r0, r1 - bge _080879C4 - adds r3, r4, #0 -_080879C4: - str r7, [sp] - str r3, [sp, #4] - movs r0, #7 - str r0, [sp, #8] - adds r0, r2, #0 - movs r1, #0 - adds r2, r5, #0 - adds r3, r6, #0 - bl sub_080878B8 -_080879D8: - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080879E0: .4byte gUnknown_3005B20 - thumb_func_end FillNorthConnection - - thumb_func_start FillWestConnection -FillWestConnection: @ 0x080879E4 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - adds r5, r1, #0 - cmp r5, #0 - beq _08087A38 - ldr r0, [r5] - ldr r1, [r0] - ldr r4, [r0, #4] - adds r2, #7 - subs r7, r1, #7 - cmp r2, #0 - bge _08087A14 - rsbs r6, r2, #0 - adds r1, r2, r4 - ldr r0, _08087A10 - ldr r3, [r0, #4] - cmp r1, r3 - bge _08087A0A - adds r3, r1, #0 -_08087A0A: - movs r2, #0 - b _08087A24 - .align 2, 0 -_08087A10: .4byte gUnknown_3005B20 -_08087A14: - movs r6, #0 - adds r0, r2, r4 - ldr r1, _08087A40 - ldr r1, [r1, #4] - subs r3, r1, r2 - cmp r0, r1 - bge _08087A24 - adds r3, r4, #0 -_08087A24: - str r6, [sp] - movs r0, #7 - str r0, [sp, #4] - str r3, [sp, #8] - movs r0, #0 - adds r1, r2, #0 - adds r2, r5, #0 - adds r3, r7, #0 - bl sub_080878B8 -_08087A38: - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08087A40: .4byte gUnknown_3005B20 - thumb_func_end FillWestConnection - - thumb_func_start FillEastConnection -FillEastConnection: @ 0x08087A44 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - adds r3, r0, #0 - adds r5, r1, #0 - cmp r5, #0 - beq _08087A9C - ldr r0, [r5] - ldr r4, [r0, #4] - ldr r0, [r3] - ldr r0, [r0] - adds r7, r0, #7 - adds r2, #7 - cmp r2, #0 - bge _08087A78 - rsbs r6, r2, #0 - adds r1, r2, r4 - ldr r0, _08087A74 - ldr r3, [r0, #4] - cmp r1, r3 - bge _08087A6E - adds r3, r1, #0 -_08087A6E: - movs r2, #0 - b _08087A88 - .align 2, 0 -_08087A74: .4byte gUnknown_3005B20 -_08087A78: - movs r6, #0 - adds r0, r2, r4 - ldr r1, _08087AA4 - ldr r1, [r1, #4] - subs r3, r1, r2 - cmp r0, r1 - bge _08087A88 - adds r3, r4, #0 -_08087A88: - str r6, [sp] - movs r0, #8 - str r0, [sp, #4] - str r3, [sp, #8] - adds r0, r7, #0 - adds r1, r2, #0 - adds r2, r5, #0 - movs r3, #0 - bl sub_080878B8 -_08087A9C: - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08087AA4: .4byte gUnknown_3005B20 - thumb_func_end FillEastConnection - - thumb_func_start MapGridGetZCoordAt -MapGridGetZCoordAt: @ 0x08087AA8 - push {r4, lr} - adds r2, r0, #0 - adds r4, r1, #0 - cmp r2, #0 - blt _08087AD8 - ldr r1, _08087AD4 - ldr r3, [r1] - cmp r2, r3 - bge _08087AD8 - cmp r4, #0 - blt _08087AD8 - ldr r0, [r1, #4] - cmp r4, r0 - bge _08087AD8 - adds r0, r3, #0 - muls r0, r4, r0 - adds r0, r2, r0 - ldr r1, [r1, #8] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - b _08087AFA - .align 2, 0 -_08087AD4: .4byte gUnknown_3005B20 -_08087AD8: - ldr r0, _08087B04 - ldr r3, [r0] - adds r1, r2, #1 - movs r2, #1 - ands r1, r2 - adds r0, r4, #1 - ands r0, r2 - lsls r0, r0, #1 - adds r1, r1, r0 - ldr r0, [r3, #8] - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r1, [r1] - movs r2, #0xc0 - lsls r2, r2, #4 - adds r0, r2, #0 - orrs r1, r0 -_08087AFA: - ldr r0, _08087B08 - cmp r1, r0 - beq _08087B0C - lsrs r0, r1, #0xc - b _08087B0E - .align 2, 0 -_08087B04: .4byte gUnknown_2036FB8 -_08087B08: .4byte 0x000003FF -_08087B0C: - movs r0, #0 -_08087B0E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end MapGridGetZCoordAt - - thumb_func_start MapGridIsImpassableAt -MapGridIsImpassableAt: @ 0x08087B14 - push {r4, lr} - adds r2, r0, #0 - adds r4, r1, #0 - cmp r2, #0 - blt _08087B44 - ldr r1, _08087B40 - ldr r3, [r1] - cmp r2, r3 - bge _08087B44 - cmp r4, #0 - blt _08087B44 - ldr r0, [r1, #4] - cmp r4, r0 - bge _08087B44 - adds r0, r3, #0 - muls r0, r4, r0 - adds r0, r2, r0 - ldr r1, [r1, #8] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - b _08087B66 - .align 2, 0 -_08087B40: .4byte gUnknown_3005B20 -_08087B44: - ldr r0, _08087B78 - ldr r3, [r0] - adds r1, r2, #1 - movs r2, #1 - ands r1, r2 - adds r0, r4, #1 - ands r0, r2 - lsls r0, r0, #1 - adds r1, r1, r0 - ldr r0, [r3, #8] - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r1, [r1] - movs r2, #0xc0 - lsls r2, r2, #4 - adds r0, r2, #0 - orrs r1, r0 -_08087B66: - ldr r0, _08087B7C - cmp r1, r0 - beq _08087B80 - movs r0, #0xc0 - lsls r0, r0, #4 - ands r1, r0 - lsrs r0, r1, #0xa - b _08087B82 - .align 2, 0 -_08087B78: .4byte gUnknown_2036FB8 -_08087B7C: .4byte 0x000003FF -_08087B80: - movs r0, #1 -_08087B82: - pop {r4} - pop {r1} - bx r1 - thumb_func_end MapGridIsImpassableAt - - thumb_func_start MapGridGetMetatileIdAt -MapGridGetMetatileIdAt: @ 0x08087B88 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - cmp r5, #0 - blt _08087BB8 - ldr r1, _08087BB4 - ldr r2, [r1] - cmp r5, r2 - bge _08087BB8 - cmp r6, #0 - blt _08087BB8 - ldr r0, [r1, #4] - cmp r6, r0 - bge _08087BB8 - adds r0, r2, #0 - muls r0, r6, r0 - adds r0, r5, r0 - ldr r1, [r1, #8] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r4, [r0] - b _08087BDC - .align 2, 0 -_08087BB4: .4byte gUnknown_3005B20 -_08087BB8: - ldr r0, _08087BE8 - ldr r3, [r0] - adds r1, r5, #1 - movs r2, #1 - ands r1, r2 - adds r0, r6, #1 - ands r0, r2 - lsls r0, r0, #1 - adds r1, r1, r0 - ldr r0, [r3, #8] - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r1, [r1] - movs r2, #0xc0 - lsls r2, r2, #4 - adds r0, r2, #0 - adds r4, r0, #0 - orrs r4, r1 -_08087BDC: - ldr r0, _08087BEC - cmp r4, r0 - beq _08087BF0 - ands r4, r0 - adds r0, r4, #0 - b _08087C14 - .align 2, 0 -_08087BE8: .4byte gUnknown_2036FB8 -_08087BEC: .4byte 0x000003FF -_08087BF0: - ldr r0, _08087C1C - ldr r3, [r0] - adds r1, r5, #1 - movs r2, #1 - ands r1, r2 - adds r0, r6, #1 - ands r0, r2 - lsls r0, r0, #1 - adds r1, r1, r0 - ldr r0, [r3, #8] - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - movs r2, #0xc0 - lsls r2, r2, #4 - adds r1, r2, #0 - orrs r0, r1 - ands r0, r4 -_08087C14: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08087C1C: .4byte gUnknown_2036FB8 - thumb_func_end MapGridGetMetatileIdAt - - thumb_func_start MapGridGetMetatileBehaviorAt -MapGridGetMetatileBehaviorAt: @ 0x08087C20 - push {lr} - bl MapGridGetMetatileIdAt - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetBehaviorByMetatileId - adds r1, r0, #0 - movs r0, #0xff - ands r0, r1 - pop {r1} - bx r1 - thumb_func_end MapGridGetMetatileBehaviorAt - - thumb_func_start MapGridGetMetatileLayerTypeAt -MapGridGetMetatileLayerTypeAt: @ 0x08087C38 - push {lr} - bl MapGridGetMetatileIdAt - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetBehaviorByMetatileId - adds r1, r0, #0 - movs r0, #0xf0 - lsls r0, r0, #8 - ands r0, r1 - lsrs r0, r0, #0xc - pop {r1} - bx r1 - thumb_func_end MapGridGetMetatileLayerTypeAt - - thumb_func_start MapGridSetMetatileIdAt -MapGridSetMetatileIdAt: @ 0x08087C54 - push {r4, r5, lr} - adds r3, r0, #0 - lsls r2, r2, #0x10 - lsrs r5, r2, #0x10 - cmp r3, #0 - blt _08087C8C - ldr r2, _08087C94 - ldr r4, [r2] - cmp r3, r4 - bge _08087C8C - cmp r1, #0 - blt _08087C8C - ldr r0, [r2, #4] - cmp r1, r0 - bge _08087C8C - muls r1, r4, r1 - adds r1, r3, r1 - ldr r0, [r2, #8] - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - movs r2, #0xf0 - lsls r2, r2, #8 - ands r2, r0 - ldr r0, _08087C98 - ands r0, r5 - orrs r2, r0 - strh r2, [r1] -_08087C8C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08087C94: .4byte gUnknown_3005B20 -_08087C98: .4byte 0x00000FFF - thumb_func_end MapGridSetMetatileIdAt - - thumb_func_start MapGridSetMetatileEntryAt -MapGridSetMetatileEntryAt: @ 0x08087C9C - push {r4, r5, lr} - adds r3, r0, #0 - lsls r2, r2, #0x10 - lsrs r5, r2, #0x10 - cmp r3, #0 - blt _08087CC8 - ldr r2, _08087CD0 - ldr r4, [r2] - cmp r3, r4 - bge _08087CC8 - cmp r1, #0 - blt _08087CC8 - ldr r0, [r2, #4] - cmp r1, r0 - bge _08087CC8 - adds r0, r4, #0 - muls r0, r1, r0 - adds r0, r3, r0 - ldr r1, [r2, #8] - lsls r0, r0, #1 - adds r0, r0, r1 - strh r5, [r0] -_08087CC8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08087CD0: .4byte gUnknown_3005B20 - thumb_func_end MapGridSetMetatileEntryAt - - thumb_func_start GetBehaviorByMetatileId -GetBehaviorByMetatileId: @ 0x08087CD4 - push {lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - adds r3, r2, #0 - ldr r0, _08087CF0 - cmp r2, r0 - bhi _08087CF8 - ldr r0, _08087CF4 - ldr r0, [r0] - ldr r0, [r0, #0x10] - ldr r1, [r0, #0x10] - lsls r0, r2, #1 - b _08087D16 - .align 2, 0 -_08087CF0: .4byte 0x000001FF -_08087CF4: .4byte gUnknown_2036FB8 -_08087CF8: - ldr r0, _08087D04 - cmp r2, r0 - bls _08087D08 - movs r0, #0xff - b _08087D1A - .align 2, 0 -_08087D04: .4byte 0x000003FF -_08087D08: - ldr r0, _08087D20 - ldr r0, [r0] - ldr r0, [r0, #0x14] - ldr r1, [r0, #0x10] - lsls r0, r3, #1 - adds r0, r0, r1 - ldr r1, _08087D24 -_08087D16: - adds r0, r0, r1 - ldrh r0, [r0] -_08087D1A: - pop {r1} - bx r1 - .align 2, 0 -_08087D20: .4byte gUnknown_2036FB8 -_08087D24: .4byte 0xFFFFFC00 - thumb_func_end GetBehaviorByMetatileId - - thumb_func_start save_serialize_map -save_serialize_map: @ 0x08087D28 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r0, _08087D90 - ldr r1, [r0] - adds r4, r1, #0 - adds r4, #0x34 - ldr r0, _08087D94 - ldr r0, [r0] - mov r8, r0 - movs r0, #0 - ldrsh r6, [r1, r0] - movs r2, #2 - ldrsh r0, [r1, r2] - adds r1, r0, #0 - adds r1, #0xe - cmp r0, r1 - bge _08087D84 - mov ip, r1 - ldr r1, _08087D98 - mov sb, r1 - lsls r7, r6, #1 -_08087D56: - adds r1, r6, #0 - adds r3, r1, #0 - adds r3, #0xf - adds r5, r0, #1 - cmp r1, r3 - bge _08087D7E - mov r2, r8 - muls r2, r0, r2 - adds r0, r2, #0 - lsls r0, r0, #1 - add r0, sb - adds r2, r7, r0 - subs r1, r3, r1 -_08087D70: - ldrh r0, [r2] - strh r0, [r4] - adds r4, #2 - adds r2, #2 - subs r1, #1 - cmp r1, #0 - bne _08087D70 -_08087D7E: - adds r0, r5, #0 - cmp r0, ip - blt _08087D56 -_08087D84: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08087D90: .4byte gUnknown_3005AEC -_08087D94: .4byte gUnknown_3005B20 -_08087D98: .4byte gUnknown_2031FB8 - thumb_func_end save_serialize_map - - thumb_func_start SavedMapViewIsEmpty -SavedMapViewIsEmpty: @ 0x08087D9C - push {r4, lr} - movs r2, #0 - movs r1, #0 - ldr r0, _08087DC8 - ldr r0, [r0] - adds r3, r0, #0 - adds r3, #0x34 - ldr r4, _08087DCC -_08087DAC: - lsls r0, r1, #1 - adds r0, r3, r0 - ldrh r0, [r0] - orrs r2, r0 - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, r4 - bls _08087DAC - cmp r2, #0 - beq _08087DD0 - movs r0, #0 - b _08087DD2 - .align 2, 0 -_08087DC8: .4byte gUnknown_3005AEC -_08087DCC: .4byte 0x000001FF -_08087DD0: - movs r0, #1 -_08087DD2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end SavedMapViewIsEmpty - - thumb_func_start ClearSavedMapView -ClearSavedMapView: @ 0x08087DD8 - push {lr} - sub sp, #4 - mov r1, sp - movs r0, #0 - strh r0, [r1] - ldr r0, _08087DF8 - ldr r1, [r0] - adds r1, #0x34 - ldr r2, _08087DFC - mov r0, sp - bl CpuSet - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_08087DF8: .4byte gUnknown_3005AEC -_08087DFC: .4byte 0x01000100 - thumb_func_end ClearSavedMapView - - thumb_func_start sub_08087E00 -sub_08087E00: @ 0x08087E00 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - ldr r4, _08087E48 - ldr r0, [r4] - adds r7, r0, #0 - adds r7, #0x34 - bl SavedMapViewIsEmpty - cmp r0, #0 - bne _08087F10 - ldr r0, _08087E4C - ldr r0, [r0] - str r0, [sp] - ldr r0, [r4] - movs r2, #0 - ldrsh r1, [r0, r2] - mov sl, r1 - movs r2, #2 - ldrsh r1, [r0, r2] - mov r8, r1 - mov r6, r8 - adds r0, r6, #0 - adds r0, #0xe - cmp r6, r0 - bge _08087EBE -_08087E3A: - cmp r6, r8 - bne _08087E50 - cmp r6, #0 - beq _08087E50 - movs r0, #0 - mov sb, r0 - b _08087E6C - .align 2, 0 -_08087E48: .4byte gUnknown_3005AEC -_08087E4C: .4byte gUnknown_3005B20 -_08087E50: - mov r0, r8 - adds r0, #0xd - movs r1, #0xff - mov sb, r1 - cmp r6, r0 - bne _08087E6C - ldr r0, _08087F20 - ldr r0, [r0] - ldr r0, [r0, #4] - subs r0, #1 - cmp r6, r0 - beq _08087E6C - movs r2, #1 - mov sb, r2 -_08087E6C: - mov r5, sl - adds r0, r5, #0 - adds r0, #0xf - mov r1, r8 - adds r1, #0xe - str r1, [sp, #8] - adds r2, r6, #1 - str r2, [sp, #4] - cmp r5, r0 - bge _08087EB6 - ldr r0, [sp] - lsls r3, r0, #0x10 -_08087E84: - ldr r1, [sp] - adds r0, r1, #0 - muls r0, r6, r0 - adds r0, r5, r0 - lsls r0, r0, #1 - ldr r1, _08087F24 - adds r4, r0, r1 - adds r0, r4, #0 - lsrs r1, r3, #0x10 - mov r2, sb - str r3, [sp, #0xc] - bl SkipCopyingMetatileFromSavedMap - lsls r0, r0, #0x18 - ldr r3, [sp, #0xc] - cmp r0, #0 - bne _08087EAA - ldrh r0, [r7] - strh r0, [r4] -_08087EAA: - adds r7, #2 - adds r5, #1 - mov r0, sl - adds r0, #0xf - cmp r5, r0 - blt _08087E84 -_08087EB6: - ldr r6, [sp, #4] - ldr r2, [sp, #8] - cmp r6, r2 - blt _08087E3A -_08087EBE: - mov r5, sl - adds r0, r5, #0 - adds r0, #0xf - cmp r5, r0 - bge _08087F0C - mov r0, r8 - subs r0, #1 - lsls r0, r0, #0x10 - mov sb, r0 - lsls r4, r5, #0x10 - mov r0, r8 - adds r0, #0xd - lsls r7, r0, #0x10 -_08087ED8: - mov r0, r8 - cmp r0, #0 - beq _08087EE8 - asrs r0, r4, #0x10 - mov r2, sb - asrs r1, r2, #0x10 - bl FixLongGrassMetatilesWindowTop -_08087EE8: - ldr r0, _08087F20 - ldr r0, [r0] - ldr r0, [r0, #4] - subs r0, #1 - cmp r6, r0 - bge _08087EFC - asrs r0, r4, #0x10 - asrs r1, r7, #0x10 - bl FixLongGrassMetatilesWindowBottom -_08087EFC: - movs r0, #0x80 - lsls r0, r0, #9 - adds r4, r4, r0 - adds r5, #1 - mov r0, sl - adds r0, #0xf - cmp r5, r0 - blt _08087ED8 -_08087F0C: - bl ClearSavedMapView -_08087F10: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08087F20: .4byte gUnknown_2036FB8 -_08087F24: .4byte gUnknown_2031FB8 - thumb_func_end sub_08087E00 - - thumb_func_start sub_08087F28 -sub_08087F28: @ 0x08087F28 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - adds r2, r3, #0 - ldr r0, _08087F70 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0x34 - str r0, [sp, #4] - ldr r0, _08087F74 - ldr r0, [r0] - str r0, [sp] - movs r4, #0 - mov sb, r4 - mov r8, r4 - movs r0, #0 - ldrsh r6, [r1, r0] - str r6, [sp, #8] - movs r4, #2 - ldrsh r5, [r1, r4] - movs r7, #0xf - movs r6, #0xe - mov ip, r6 - cmp r3, #2 - beq _08087F82 - cmp r3, #2 - bgt _08087F78 - cmp r3, #1 - beq _08087F8A - b _08087FA2 - .align 2, 0 -_08087F70: .4byte gUnknown_3005AEC -_08087F74: .4byte gUnknown_3005B20 -_08087F78: - cmp r2, #3 - beq _08087F94 - cmp r2, #4 - beq _08087F9C - b _08087FA2 -_08087F82: - adds r5, #1 - movs r0, #0xd - mov ip, r0 - b _08087FA2 -_08087F8A: - movs r1, #1 - mov r8, r1 - movs r3, #0xd - mov ip, r3 - b _08087FA2 -_08087F94: - ldr r4, [sp, #8] - adds r4, #1 - str r4, [sp, #8] - b _08087FA0 -_08087F9C: - movs r6, #1 - mov sb, r6 -_08087FA0: - movs r7, #0xe -_08087FA2: - movs r1, #0 - cmp r1, ip - bge _08087FE6 - ldr r0, _08087FFC - mov sl, r0 -_08087FAC: - adds r4, r1, #1 - cmp r7, #0 - beq _08087FE0 - adds r0, r1, r5 - ldr r3, [sp] - adds r2, r3, #0 - muls r2, r0, r2 - add r1, r8 - lsls r0, r1, #4 - subs r0, r0, r1 - add r0, sb - ldr r6, [sp, #8] - adds r2, r6, r2 - adds r3, r7, #0 - lsls r2, r2, #1 - add r2, sl - lsls r0, r0, #1 - ldr r6, [sp, #4] - adds r1, r0, r6 -_08087FD2: - ldrh r0, [r1] - strh r0, [r2] - adds r1, #2 - adds r2, #2 - subs r3, #1 - cmp r3, #0 - bne _08087FD2 -_08087FE0: - adds r1, r4, #0 - cmp r1, ip - blt _08087FAC -_08087FE6: - bl ClearSavedMapView - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08087FFC: .4byte gUnknown_2031FB8 - thumb_func_end sub_08087F28 - - thumb_func_start GetMapBorderIdAt -GetMapBorderIdAt: @ 0x08088000 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - cmp r4, #0 - blt _0808803C - ldr r1, _08088034 - ldr r2, [r1] - cmp r4, r2 - bge _0808803C - cmp r5, #0 - blt _0808803C - ldr r0, [r1, #4] - cmp r5, r0 - bge _0808803C - adds r0, r2, #0 - muls r0, r5, r0 - adds r0, r4, r0 - ldr r1, [r1, #8] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - ldr r0, _08088038 - cmp r1, r0 - beq _080880D4 - b _08088064 - .align 2, 0 -_08088034: .4byte gUnknown_3005B20 -_08088038: .4byte 0x000003FF -_0808803C: - ldr r0, _08088080 - ldr r3, [r0] - adds r1, r4, #1 - movs r2, #1 - ands r1, r2 - adds r0, r5, #1 - ands r0, r2 - lsls r0, r0, #1 - adds r1, r1, r0 - ldr r0, [r3, #8] - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r1, [r1] - movs r2, #0xc0 - lsls r2, r2, #4 - adds r0, r2, #0 - orrs r0, r1 - ldr r1, _08088084 - cmp r0, r1 - beq _080880D4 -_08088064: - ldr r1, _08088088 - ldr r0, [r1] - subs r0, #8 - cmp r4, r0 - blt _08088090 - ldr r0, _0808808C - ldrb r1, [r0] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080880D4 - movs r0, #4 - b _080880E6 - .align 2, 0 -_08088080: .4byte gUnknown_2036FB8 -_08088084: .4byte 0x000003FF -_08088088: .4byte gUnknown_3005B20 -_0808808C: .4byte gUnknown_2036FE0 -_08088090: - cmp r4, #6 - bgt _080880A8 - ldr r0, _080880A4 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080880D4 - movs r0, #3 - b _080880E6 - .align 2, 0 -_080880A4: .4byte gUnknown_2036FE0 -_080880A8: - ldr r0, [r1, #4] - subs r0, #7 - cmp r5, r0 - blt _080880C4 - ldr r0, _080880C0 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080880D4 - movs r0, #1 - b _080880E6 - .align 2, 0 -_080880C0: .4byte gUnknown_2036FE0 -_080880C4: - cmp r5, #6 - bgt _080880E4 - ldr r0, _080880DC - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _080880E0 -_080880D4: - movs r0, #1 - rsbs r0, r0, #0 - b _080880E6 - .align 2, 0 -_080880DC: .4byte gUnknown_2036FE0 -_080880E0: - movs r0, #2 - b _080880E6 -_080880E4: - movs r0, #0 -_080880E6: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end GetMapBorderIdAt - - thumb_func_start GetPostCameraMoveMapBorderId -GetPostCameraMoveMapBorderId: @ 0x080880EC - push {r4, lr} - adds r3, r1, #0 - ldr r1, _08088110 - ldr r1, [r1] - movs r4, #0 - ldrsh r2, [r1, r4] - adds r0, #7 - adds r2, r2, r0 - movs r0, #2 - ldrsh r1, [r1, r0] - adds r3, #7 - adds r1, r1, r3 - adds r0, r2, #0 - bl GetMapBorderIdAt - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08088110: .4byte gUnknown_3005AEC - thumb_func_end GetPostCameraMoveMapBorderId - - thumb_func_start CanCameraMoveInDirection -CanCameraMoveInDirection: @ 0x08088114 - push {r4, r5, lr} - ldr r1, _0808814C - ldr r4, [r1] - movs r1, #0 - ldrsh r3, [r4, r1] - ldr r2, _08088150 - lsls r0, r0, #3 - adds r1, r0, r2 - ldr r1, [r1] - adds r1, #7 - adds r3, r3, r1 - movs r5, #2 - ldrsh r1, [r4, r5] - adds r2, #4 - adds r0, r0, r2 - ldr r0, [r0] - adds r0, #7 - adds r1, r1, r0 - adds r0, r3, #0 - bl GetMapBorderIdAt - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _08088154 - movs r0, #1 - b _08088156 - .align 2, 0 -_0808814C: .4byte gUnknown_3005AEC -_08088150: .4byte gUnknown_830FCB0 -_08088154: - movs r0, #0 -_08088156: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end CanCameraMoveInDirection - - thumb_func_start sub_0808815C -sub_0808815C: @ 0x0808815C - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r6, r2, #0 - adds r7, r3, #0 - bl mapconnection_get_mapheader - adds r3, r0, #0 - cmp r4, #2 - beq _080881C4 - cmp r4, #2 - bgt _0808817A - cmp r4, #1 - beq _080881B0 - b _080881D6 -_0808817A: - cmp r4, #3 - beq _08088198 - cmp r4, #4 - bne _080881D6 - ldr r0, _08088194 - ldr r1, [r0] - rsbs r0, r6, #0 - strh r0, [r1] - ldr r2, [r5, #4] - ldrh r0, [r1, #2] - subs r0, r0, r2 - b _080881D4 - .align 2, 0 -_08088194: .4byte gUnknown_3005AEC -_08088198: - ldr r0, _080881AC - ldr r1, [r0] - ldr r0, [r3] - ldr r0, [r0] - strh r0, [r1] - ldr r2, [r5, #4] - ldrh r0, [r1, #2] - subs r0, r0, r2 - b _080881D4 - .align 2, 0 -_080881AC: .4byte gUnknown_3005AEC -_080881B0: - ldr r0, _080881C0 - ldr r1, [r0] - ldr r2, [r5, #4] - ldrh r0, [r1] - subs r0, r0, r2 - strh r0, [r1] - rsbs r0, r7, #0 - b _080881D4 - .align 2, 0 -_080881C0: .4byte gUnknown_3005AEC -_080881C4: - ldr r0, _080881DC - ldr r1, [r0] - ldr r2, [r5, #4] - ldrh r0, [r1] - subs r0, r0, r2 - strh r0, [r1] - ldr r0, [r3] - ldr r0, [r0, #4] -_080881D4: - strh r0, [r1, #2] -_080881D6: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080881DC: .4byte gUnknown_3005AEC - thumb_func_end sub_0808815C - - thumb_func_start CameraMove -CameraMove: @ 0x080881E0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sl, r0 - mov sb, r1 - ldr r1, _08088220 - ldrb r0, [r1] - movs r1, #2 - rsbs r1, r1, #0 - ands r1, r0 - ldr r2, _08088220 - strb r1, [r2] - mov r0, sl - mov r1, sb - bl GetPostCameraMoveMapBorderId - adds r7, r0, #0 - adds r0, r7, #1 - cmp r0, #1 - bhi _08088228 - ldr r0, _08088224 - ldr r1, [r0] - ldrh r0, [r1] - add r0, sl - strh r0, [r1] - ldrh r0, [r1, #2] - add r0, sb - strh r0, [r1, #2] - b _08088296 - .align 2, 0 -_08088220: .4byte gUnknown_2036FD4 -_08088224: .4byte gUnknown_3005AEC -_08088228: - bl save_serialize_map - bl ClearMirageTowerPulseBlendEffect - ldr r1, _080882AC - ldr r0, [r1] - movs r2, #0 - ldrsh r5, [r0, r2] - movs r1, #2 - ldrsh r6, [r0, r1] - lsls r2, r7, #0x18 - lsrs r2, r2, #0x18 - mov r8, r2 - mov r0, r8 - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_080882B4 - adds r4, r0, #0 - adds r1, r7, #0 - mov r2, sl - mov r3, sb - bl sub_0808815C - ldrb r0, [r4, #8] - ldrb r1, [r4, #9] - bl LoadMapFromCameraTransition - ldr r1, _080882B0 - ldrb r0, [r1] - movs r1, #1 - orrs r0, r1 - ldr r2, _080882B0 - strb r0, [r2] - ldr r0, _080882AC - ldr r1, [r0] - movs r2, #0 - ldrsh r0, [r1, r2] - subs r5, r5, r0 - ldr r0, _080882B0 - str r5, [r0, #4] - movs r2, #2 - ldrsh r0, [r1, r2] - subs r6, r6, r0 - ldr r0, _080882B0 - str r6, [r0, #8] - ldrh r0, [r1] - add r0, sl - strh r0, [r1] - ldrh r0, [r1, #2] - add r0, sb - strh r0, [r1, #2] - mov r0, r8 - bl sub_08087F28 -_08088296: - ldr r0, _080882B0 - ldrb r0, [r0] - lsls r0, r0, #0x1f - lsrs r0, r0, #0x1f - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080882AC: .4byte gUnknown_3005AEC -_080882B0: .4byte gUnknown_2036FD4 - thumb_func_end CameraMove - - thumb_func_start sub_080882B4 -sub_080882B4: @ 0x080882B4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov sb, r1 - mov r8, r2 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _080882F0 - ldr r0, [r0, #0xc] - ldr r7, [r0] - ldr r4, [r0, #4] - movs r5, #0 - cmp r5, r7 - bge _080882FC -_080882D2: - ldrb r0, [r4] - cmp r0, r6 - bne _080882F4 - adds r0, r6, #0 - mov r1, sb - mov r2, r8 - adds r3, r4, #0 - bl sub_0808830C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080882F4 - adds r0, r4, #0 - b _080882FE - .align 2, 0 -_080882F0: .4byte gUnknown_2036FB8 -_080882F4: - adds r5, #1 - adds r4, #0xc - cmp r5, r7 - blt _080882D2 -_080882FC: - movs r0, #0 -_080882FE: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080882B4 - - thumb_func_start sub_0808830C -sub_0808830C: @ 0x0808830C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r1, #0 - mov r8, r2 - adds r5, r3, #0 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r6, r4, #0 - adds r0, r5, #0 - bl mapconnection_get_mapheader - adds r2, r0, #0 - cmp r4, #1 - blt _08088364 - cmp r4, #2 - bgt _08088344 - ldr r0, _08088340 - ldr r0, [r0] - ldr r1, [r0] - ldr r0, [r2] - ldr r2, [r0] - ldr r3, [r5, #4] - adds r0, r7, #0 - b _08088356 - .align 2, 0 -_08088340: .4byte gUnknown_2036FB8 -_08088344: - cmp r6, #4 - bgt _08088364 - ldr r0, _08088360 - ldr r0, [r0] - ldr r1, [r0, #4] - ldr r0, [r2] - ldr r2, [r0, #4] - ldr r3, [r5, #4] - mov r0, r8 -_08088356: - bl sub_08088370 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _08088366 - .align 2, 0 -_08088360: .4byte gUnknown_2036FB8 -_08088364: - movs r0, #0 -_08088366: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_0808830C - - thumb_func_start sub_08088370 -sub_08088370: @ 0x08088370 - push {r4, lr} - adds r4, r0, #0 - adds r0, r2, #0 - adds r2, r3, #0 - cmp r3, #0 - bge _0808837E - movs r3, #0 -_0808837E: - adds r2, r0, r2 - cmp r2, r1 - bge _08088386 - adds r1, r2, #0 -_08088386: - cmp r3, r4 - bgt _08088392 - cmp r4, r1 - bgt _08088392 - movs r0, #1 - b _08088394 -_08088392: - movs r0, #0 -_08088394: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08088370 - - thumb_func_start sub_0808839C -sub_0808839C: @ 0x0808839C - push {lr} - cmp r0, #0 - blt _080883AA - cmp r0, r1 - bge _080883AA - movs r0, #1 - b _080883AC -_080883AA: - movs r0, #0 -_080883AC: - pop {r1} - bx r1 - thumb_func_end sub_0808839C - - thumb_func_start sub_080883B0 -sub_080883B0: @ 0x080883B0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - bl mapconnection_get_mapheader - adds r1, r0, #0 - ldrb r0, [r4] - cmp r0, #1 - blt _080883E8 - cmp r0, #2 - bgt _080883D6 - ldr r0, [r4, #4] - subs r0, r5, r0 - ldr r1, [r1] - ldr r1, [r1] - bl sub_0808839C - b _080883EA -_080883D6: - cmp r0, #4 - bgt _080883E8 - ldr r0, [r4, #4] - subs r0, r6, r0 - ldr r1, [r1] - ldr r1, [r1, #4] - bl sub_0808839C - b _080883EA -_080883E8: - movs r0, #0 -_080883EA: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_080883B0 - - thumb_func_start sub_080883F0 -sub_080883F0: @ 0x080883F0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r2, _08088410 - ldr r0, [r2, #0xc] - cmp r0, #0 - bne _08088418 - b _0808848E - .align 2, 0 -_08088410: .4byte gUnknown_2036FB8 -_08088414: - adds r0, r4, #0 - b _08088490 -_08088418: - ldr r7, [r0] - ldr r4, [r0, #4] - movs r6, #0 - cmp r6, r7 - bge _0808848E - lsls r0, r1, #0x10 - asrs r5, r0, #0x10 - mov sb, r2 - mov r1, r8 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - mov sl, r0 -_08088430: - ldrb r1, [r4] - adds r3, r1, #0 - subs r0, r1, #5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _08088486 - cmp r1, #2 - bne _08088446 - cmp r5, #6 - bgt _08088486 -_08088446: - cmp r1, #1 - bne _08088456 - mov r2, sb - ldr r0, [r2] - ldr r0, [r0, #4] - adds r0, #7 - cmp r5, r0 - blt _08088486 -_08088456: - mov r0, r8 - lsls r2, r0, #0x10 - cmp r1, #3 - bne _08088464 - mov r1, sl - cmp r1, #6 - bgt _08088486 -_08088464: - cmp r3, #4 - bne _08088476 - asrs r1, r2, #0x10 - mov r3, sb - ldr r0, [r3] - ldr r0, [r0] - adds r0, #7 - cmp r1, r0 - blt _08088486 -_08088476: - asrs r1, r2, #0x10 - subs r1, #7 - adds r0, r4, #0 - subs r2, r5, #7 - bl sub_080883B0 - cmp r0, #1 - beq _08088414 -_08088486: - adds r6, #1 - adds r4, #0xc - cmp r6, r7 - blt _08088430 -_0808848E: - movs r0, #0 -_08088490: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080883F0 - - thumb_func_start sub_080884A0 -sub_080884A0: @ 0x080884A0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r2, _080884B8 - ldr r2, [r2] - subs r0, #7 - strh r0, [r2] - subs r1, #7 - strh r1, [r2, #2] - bx lr - .align 2, 0 -_080884B8: .4byte gUnknown_3005AEC - thumb_func_end sub_080884A0 - - thumb_func_start GetCameraFocusCoords -GetCameraFocusCoords: @ 0x080884BC - ldr r2, _080884D0 - ldr r3, [r2] - ldrh r2, [r3] - adds r2, #7 - strh r2, [r0] - ldrh r0, [r3, #2] - adds r0, #7 - strh r0, [r1] - bx lr - .align 2, 0 -_080884D0: .4byte gUnknown_3005AEC - thumb_func_end GetCameraFocusCoords - - thumb_func_start SetPlayerCoords -SetPlayerCoords: @ 0x080884D4 - ldr r2, _080884E0 - ldr r2, [r2] - strh r0, [r2] - strh r1, [r2, #2] - bx lr - .align 2, 0 -_080884E0: .4byte gUnknown_3005AEC - thumb_func_end SetPlayerCoords - - thumb_func_start GetCameraCoords -GetCameraCoords: @ 0x080884E4 - ldr r2, _080884F4 - ldr r3, [r2] - ldrh r2, [r3] - strh r2, [r0] - ldrh r0, [r3, #2] - strh r0, [r1] - bx lr - .align 2, 0 -_080884F4: .4byte gUnknown_3005AEC - thumb_func_end GetCameraCoords - - thumb_func_start sub_080884F8 -sub_080884F8: @ 0x080884F8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r3, r1, #0 - adds r5, r2, #0 - cmp r4, #0 - blt _0808854A - ldr r2, _08088534 - ldr r1, [r2] - cmp r4, r1 - bge _0808854A - cmp r3, #0 - blt _0808854A - ldr r0, [r2, #4] - cmp r3, r0 - bge _0808854A - cmp r5, #0 - beq _08088538 - adds r0, r1, #0 - muls r0, r3, r0 - adds r0, r4, r0 - ldr r1, [r2, #8] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r3, #0xc0 - lsls r3, r3, #4 - adds r2, r3, #0 - orrs r1, r2 - strh r1, [r0] - b _0808854A - .align 2, 0 -_08088534: .4byte gUnknown_3005B20 -_08088538: - muls r1, r3, r1 - adds r1, r4, r1 - ldr r0, [r2, #8] - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r2, [r1] - ldr r0, _08088550 - ands r0, r2 - strh r0, [r1] -_0808854A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08088550: .4byte 0x0000F3FF - thumb_func_end sub_080884F8 - - thumb_func_start SkipCopyingMetatileFromSavedMap -SkipCopyingMetatileFromSavedMap: @ 0x08088554 - push {lr} - adds r3, r0, #0 - lsls r1, r1, #0x10 - lsrs r0, r1, #0x10 - adds r1, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - cmp r2, #0xff - beq _08088588 - cmp r2, #0 - bne _08088570 - lsls r0, r0, #1 - subs r3, r3, r0 - b _08088574 -_08088570: - lsls r0, r1, #1 - adds r3, r3, r0 -_08088574: - ldrh r1, [r3] - ldr r0, _0808858C - ands r0, r1 - adds r1, r2, #0 - bl sub_080FB654 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08088590 -_08088588: - movs r0, #0 - b _08088592 - .align 2, 0 -_0808858C: .4byte 0x000003FF -_08088590: - movs r0, #1 -_08088592: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end SkipCopyingMetatileFromSavedMap - - thumb_func_start sub_08088598 -sub_08088598: @ 0x08088598 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r3, r0, #0 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - adds r6, r4, #0 - lsls r2, r2, #0x10 - lsrs r5, r2, #0x10 - adds r7, r5, #0 - cmp r3, #0 - beq _080885D4 - ldrb r0, [r3] - cmp r0, #0 - bne _080885C4 - ldr r1, [r3, #4] - lsls r2, r4, #0x15 - lsrs r2, r2, #0x10 - movs r0, #2 - adds r3, r5, #0 - bl LoadBgTiles - b _080885D4 -_080885C4: - ldr r1, [r3, #4] - lsls r2, r6, #5 - movs r0, #0 - str r0, [sp] - movs r0, #2 - adds r3, r7, #0 - bl decompress_and_copy_tile_data_to_vram -_080885D4: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08088598 - - thumb_func_start sub_080885DC -sub_080885DC: @ 0x080885DC - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r3, r0, #0 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - adds r6, r4, #0 - lsls r2, r2, #0x10 - lsrs r5, r2, #0x10 - adds r7, r5, #0 - cmp r3, #0 - beq _08088618 - ldrb r0, [r3] - cmp r0, #0 - bne _08088608 - ldr r1, [r3, #4] - lsls r2, r4, #0x15 - lsrs r2, r2, #0x10 - movs r0, #2 - adds r3, r5, #0 - bl LoadBgTiles - b _08088618 -_08088608: - ldr r1, [r3, #4] - lsls r2, r6, #5 - movs r0, #0 - str r0, [sp] - movs r0, #2 - adds r3, r7, #0 - bl DecompressAndLoadBgGfxUsingHeap -_08088618: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_080885DC - - thumb_func_start sub_08088620 -sub_08088620: @ 0x08088620 - bx lr - .align 2, 0 - thumb_func_end sub_08088620 - - thumb_func_start sub_08088624 -sub_08088624: @ 0x08088624 - bx lr - .align 2, 0 - thumb_func_end sub_08088624 - - thumb_func_start apply_map_tileset_palette -apply_map_tileset_palette: @ 0x08088628 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r4, r0, #0 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - mov r8, r5 - lsls r6, r2, #0x10 - lsrs r7, r6, #0x10 - adds r2, r7, #0 - movs r1, #0 - mov r0, sp - strh r1, [r0] - cmp r4, #0 - beq _080886A6 - ldrb r0, [r4, #1] - cmp r0, #0 - bne _0808867C - mov r0, sp - adds r1, r5, #0 - movs r2, #2 - bl LoadPalette - ldr r0, [r4, #8] - adds r0, #2 - adds r5, #1 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - subs r4, r7, #2 - lsls r2, r4, #0x10 - lsrs r2, r2, #0x10 - adds r1, r5, #0 - bl LoadPalette - lsls r4, r4, #0xf - lsrs r4, r4, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08088620 - b _080886A6 -_0808867C: - cmp r0, #1 - bne _08088696 - ldr r0, [r4, #8] - adds r0, #0xc0 - adds r1, r5, #0 - adds r2, r7, #0 - bl LoadPalette - lsrs r1, r6, #0x11 - adds r0, r5, #0 - bl sub_08088620 - b _080886A6 -_08088696: - ldr r0, [r4, #8] - mov r1, r8 - bl LoadCompressedPalette - lsrs r1, r6, #0x11 - mov r0, r8 - bl sub_08088620 -_080886A6: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end apply_map_tileset_palette - - thumb_func_start copy_map_tileset1_to_vram -copy_map_tileset1_to_vram: @ 0x080886B4 - push {lr} - ldr r0, [r0, #0x10] - movs r1, #0x80 - lsls r1, r1, #2 - movs r2, #0 - bl sub_08088598 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end copy_map_tileset1_to_vram - - thumb_func_start copy_map_tileset2_to_vram -copy_map_tileset2_to_vram: @ 0x080886C8 - push {lr} - ldr r0, [r0, #0x14] - movs r2, #0x80 - lsls r2, r2, #2 - adds r1, r2, #0 - bl sub_08088598 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end copy_map_tileset2_to_vram - - thumb_func_start copy_map_tileset2_to_vram_2 -copy_map_tileset2_to_vram_2: @ 0x080886DC - push {lr} - ldr r0, [r0, #0x14] - movs r2, #0x80 - lsls r2, r2, #2 - adds r1, r2, #0 - bl sub_080885DC - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end copy_map_tileset2_to_vram_2 - - thumb_func_start apply_map_tileset1_palette -apply_map_tileset1_palette: @ 0x080886F0 - push {lr} - ldr r0, [r0, #0x10] - movs r1, #0 - movs r2, #0xc0 - bl apply_map_tileset_palette - pop {r0} - bx r0 - thumb_func_end apply_map_tileset1_palette - - thumb_func_start apply_map_tileset2_palette -apply_map_tileset2_palette: @ 0x08088700 - push {lr} - ldr r0, [r0, #0x14] - movs r1, #0x60 - movs r2, #0xe0 - bl apply_map_tileset_palette - pop {r0} - bx r0 - thumb_func_end apply_map_tileset2_palette - - thumb_func_start copy_map_tileset1_tileset2_to_vram -copy_map_tileset1_tileset2_to_vram: @ 0x08088710 - push {r4, r5, lr} - adds r5, r0, #0 - cmp r5, #0 - beq _08088730 - ldr r0, [r5, #0x10] - movs r4, #0x80 - lsls r4, r4, #2 - adds r1, r4, #0 - movs r2, #0 - bl sub_080885DC - ldr r0, [r5, #0x14] - adds r1, r4, #0 - adds r2, r4, #0 - bl sub_080885DC -_08088730: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end copy_map_tileset1_tileset2_to_vram - - thumb_func_start apply_map_tileset1_tileset2_palette -apply_map_tileset1_tileset2_palette: @ 0x08088738 - push {r4, lr} - adds r4, r0, #0 - cmp r4, #0 - beq _0808874A - bl apply_map_tileset1_palette - adds r0, r4, #0 - bl apply_map_tileset2_palette -_0808874A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end apply_map_tileset1_tileset2_palette - - thumb_func_start sub_08088750 -sub_08088750: @ 0x08088750 - movs r0, #1 - bx lr - thumb_func_end sub_08088750 - - thumb_func_start MetatileBehavior_IsEncounterTile -MetatileBehavior_IsEncounterTile: @ 0x08088754 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0808876C - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08088770 - movs r0, #0 - b _08088772 - .align 2, 0 -_0808876C: .4byte gUnknown_845F31C -_08088770: - movs r0, #1 -_08088772: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MetatileBehavior_IsEncounterTile - - thumb_func_start MetatileBehavior_IsJumpEast -MetatileBehavior_IsJumpEast: @ 0x08088778 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x38 - beq _08088786 - movs r0, #0 - b _08088788 -_08088786: - movs r0, #1 -_08088788: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsJumpEast - - thumb_func_start MetatileBehavior_IsJumpWest -MetatileBehavior_IsJumpWest: @ 0x0808878C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x39 - beq _0808879A - movs r0, #0 - b _0808879C -_0808879A: - movs r0, #1 -_0808879C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsJumpWest - - thumb_func_start MetatileBehavior_IsJumpNorth -MetatileBehavior_IsJumpNorth: @ 0x080887A0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x3a - beq _080887AE - movs r0, #0 - b _080887B0 -_080887AE: - movs r0, #1 -_080887B0: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsJumpNorth - - thumb_func_start MetatileBehavior_IsJumpSouth -MetatileBehavior_IsJumpSouth: @ 0x080887B4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x3b - beq _080887C2 - movs r0, #0 - b _080887C4 -_080887C2: - movs r0, #1 -_080887C4: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsJumpSouth - - thumb_func_start MetatileBehavior_IsPokeGrass -MetatileBehavior_IsPokeGrass: @ 0x080887C8 - push {lr} - lsls r0, r0, #0x18 - movs r1, #0xfe - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _080887DC - movs r0, #0 - b _080887DE -_080887DC: - movs r0, #1 -_080887DE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MetatileBehavior_IsPokeGrass - - thumb_func_start MetatileBehavior_IsSandOrDeepSand -MetatileBehavior_IsSandOrDeepSand: @ 0x080887E4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x21 - beq _080887F2 - cmp r0, #6 - bne _080887F6 -_080887F2: - movs r0, #1 - b _080887F8 -_080887F6: - movs r0, #0 -_080887F8: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSandOrDeepSand - - thumb_func_start MetatileBehavior_IsDeepSand -MetatileBehavior_IsDeepSand: @ 0x080887FC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #6 - beq _0808880A - movs r0, #0 - b _0808880C -_0808880A: - movs r0, #1 -_0808880C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsDeepSand - - thumb_func_start MetatileBehavior_IsReflective -MetatileBehavior_IsReflective: @ 0x08088810 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x10 - beq _0808882E - cmp r0, #0x16 - beq _0808882E - cmp r0, #0x1a - beq _0808882E - cmp r0, #0x20 - beq _0808882E - cmp r0, #0x14 - beq _0808882E - cmp r0, #0x2b - bne _08088832 -_0808882E: - movs r0, #1 - b _08088834 -_08088832: - movs r0, #0 -_08088834: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsReflective - - thumb_func_start sub_08088838 -sub_08088838: @ 0x08088838 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x20 - beq _08088846 - movs r0, #0 - b _08088848 -_08088846: - movs r0, #1 -_08088848: - pop {r1} - bx r1 - thumb_func_end sub_08088838 - - thumb_func_start MetatileBehavior_IsWarpDoor -MetatileBehavior_IsWarpDoor: @ 0x0808884C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x69 - beq _0808885A - movs r0, #0 - b _0808885C -_0808885A: - movs r0, #1 -_0808885C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsWarpDoor - - thumb_func_start MetatileBehavior_IsDoor -MetatileBehavior_IsDoor: @ 0x08088860 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x8d - beq _0808886E - cmp r0, #0x69 - bne _08088872 -_0808886E: - movs r0, #1 - b _08088874 -_08088872: - movs r0, #0 -_08088874: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsDoor - - thumb_func_start MetatileBehavior_IsEscalator -MetatileBehavior_IsEscalator: @ 0x08088878 - push {lr} - lsls r0, r0, #0x18 - movs r1, #0x96 - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _0808888C - movs r0, #0 - b _0808888E -_0808888C: - movs r0, #1 -_0808888E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MetatileBehavior_IsEscalator - - thumb_func_start Unref_MetatileBehavior_IsUnused04 -Unref_MetatileBehavior_IsUnused04: @ 0x08088894 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - beq _080888A2 - movs r0, #0 - b _080888A4 -_080888A2: - movs r0, #1 -_080888A4: - pop {r1} - bx r1 - thumb_func_end Unref_MetatileBehavior_IsUnused04 - - thumb_func_start MetatileBehavior_IsLadder -MetatileBehavior_IsLadder: @ 0x080888A8 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x61 - beq _080888B6 - movs r0, #0 - b _080888B8 -_080888B6: - movs r0, #1 -_080888B8: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsLadder - - thumb_func_start MetatileBehavior_IsNonAnimDoor -MetatileBehavior_IsNonAnimDoor: @ 0x080888BC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x60 - beq _080888CE - cmp r0, #0x6c - beq _080888CE - cmp r0, #0x6e - bne _080888D2 -_080888CE: - movs r0, #1 - b _080888D4 -_080888D2: - movs r0, #0 -_080888D4: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsNonAnimDoor - - thumb_func_start MetatileBehavior_IsDeepSouthWarp -MetatileBehavior_IsDeepSouthWarp: @ 0x080888D8 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x6e - beq _080888E6 - movs r0, #0 - b _080888E8 -_080888E6: - movs r0, #1 -_080888E8: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsDeepSouthWarp - - thumb_func_start MetatileBehavior_IsSurfableWaterOrUnderwater -MetatileBehavior_IsSurfableWaterOrUnderwater: @ 0x080888EC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08088904 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08088908 - movs r0, #0 - b _0808890A - .align 2, 0 -_08088904: .4byte gUnknown_845F31C -_08088908: - movs r0, #1 -_0808890A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MetatileBehavior_IsSurfableWaterOrUnderwater - - thumb_func_start MetatileBehavior_IsEastArrowWarp -MetatileBehavior_IsEastArrowWarp: @ 0x08088910 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x62 - beq _0808891E - movs r0, #0 - b _08088920 -_0808891E: - movs r0, #1 -_08088920: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsEastArrowWarp - - thumb_func_start MetatileBehavior_IsWestArrowWarp -MetatileBehavior_IsWestArrowWarp: @ 0x08088924 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x63 - beq _08088932 - movs r0, #0 - b _08088934 -_08088932: - movs r0, #1 -_08088934: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsWestArrowWarp - - thumb_func_start MetatileBehavior_IsNorthArrowWarp -MetatileBehavior_IsNorthArrowWarp: @ 0x08088938 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x64 - beq _08088946 - cmp r0, #0x1b - bne _0808894A -_08088946: - movs r0, #1 - b _0808894C -_0808894A: - movs r0, #0 -_0808894C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsNorthArrowWarp - - thumb_func_start MetatileBehavior_IsSouthArrowWarp -MetatileBehavior_IsSouthArrowWarp: @ 0x08088950 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x65 - beq _08088962 - cmp r0, #0x6d - beq _08088962 - cmp r0, #0x1c - bne _08088966 -_08088962: - movs r0, #1 - b _08088968 -_08088966: - movs r0, #0 -_08088968: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSouthArrowWarp - - thumb_func_start Unref_MetatileBehavior_IsArrowWarp -Unref_MetatileBehavior_IsArrowWarp: @ 0x0808896C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r5, #0 - adds r0, r4, #0 - bl MetatileBehavior_IsEastArrowWarp - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080889A4 - adds r0, r4, #0 - bl MetatileBehavior_IsWestArrowWarp - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080889A4 - adds r0, r4, #0 - bl MetatileBehavior_IsNorthArrowWarp - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080889A4 - adds r0, r4, #0 - bl MetatileBehavior_IsSouthArrowWarp - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080889A6 -_080889A4: - movs r5, #1 -_080889A6: - adds r0, r5, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end Unref_MetatileBehavior_IsArrowWarp - - thumb_func_start MetatileBehavior_IsForcedMovementTile -MetatileBehavior_IsForcedMovementTile: @ 0x080889B0 - push {lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r2, #0xc0 - lsls r2, r2, #0x18 - adds r0, r0, r2 - lsrs r0, r0, #0x18 - cmp r0, #8 - bls _080889E6 - adds r0, r1, #0 - subs r0, #0x50 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bls _080889E6 - cmp r1, #0xd0 - beq _080889E6 - cmp r1, #0xd2 - beq _080889E6 - cmp r1, #0x13 - beq _080889E6 - cmp r1, #0x20 - beq _080889E6 - cmp r1, #0xbb - beq _080889E6 - cmp r1, #0xbc - bne _080889EA -_080889E6: - movs r0, #1 - b _080889EC -_080889EA: - movs r0, #0 -_080889EC: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsForcedMovementTile - - thumb_func_start sub_080889F0 -sub_080889F0: @ 0x080889F0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x20 - beq _080889FE - movs r0, #0 - b _08088A00 -_080889FE: - movs r0, #1 -_08088A00: - pop {r1} - bx r1 - thumb_func_end sub_080889F0 - - thumb_func_start MetatileBehavior_IsTrickHouseSlipperyFloor -MetatileBehavior_IsTrickHouseSlipperyFloor: @ 0x08088A04 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x48 - beq _08088A12 - movs r0, #0 - b _08088A14 -_08088A12: - movs r0, #1 -_08088A14: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsTrickHouseSlipperyFloor - - thumb_func_start Unref_MetatileBehavior_IsUnused05 -Unref_MetatileBehavior_IsUnused05: @ 0x08088A18 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #5 - beq _08088A26 - movs r0, #0 - b _08088A28 -_08088A26: - movs r0, #1 -_08088A28: - pop {r1} - bx r1 - thumb_func_end Unref_MetatileBehavior_IsUnused05 - - thumb_func_start MetatileBehavior_IsWalkNorth -MetatileBehavior_IsWalkNorth: @ 0x08088A2C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x42 - beq _08088A3A - movs r0, #0 - b _08088A3C -_08088A3A: - movs r0, #1 -_08088A3C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsWalkNorth - - thumb_func_start MetatileBehavior_IsWalkSouth -MetatileBehavior_IsWalkSouth: @ 0x08088A40 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x43 - beq _08088A4E - movs r0, #0 - b _08088A50 -_08088A4E: - movs r0, #1 -_08088A50: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsWalkSouth - - thumb_func_start MetatileBehavior_IsWalkWest -MetatileBehavior_IsWalkWest: @ 0x08088A54 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x41 - beq _08088A62 - movs r0, #0 - b _08088A64 -_08088A62: - movs r0, #1 -_08088A64: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsWalkWest - - thumb_func_start MetatileBehavior_IsWalkEast -MetatileBehavior_IsWalkEast: @ 0x08088A68 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _08088A76 - movs r0, #0 - b _08088A78 -_08088A76: - movs r0, #1 -_08088A78: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsWalkEast - - thumb_func_start MetatileBehavior_IsNorthwardCurrent -MetatileBehavior_IsNorthwardCurrent: @ 0x08088A7C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x52 - beq _08088A8A - movs r0, #0 - b _08088A8C -_08088A8A: - movs r0, #1 -_08088A8C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsNorthwardCurrent - - thumb_func_start MetatileBehavior_IsSouthwardCurrent -MetatileBehavior_IsSouthwardCurrent: @ 0x08088A90 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x53 - beq _08088A9E - movs r0, #0 - b _08088AA0 -_08088A9E: - movs r0, #1 -_08088AA0: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSouthwardCurrent - - thumb_func_start MetatileBehavior_IsWestwardCurrent -MetatileBehavior_IsWestwardCurrent: @ 0x08088AA4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x51 - beq _08088AB2 - movs r0, #0 - b _08088AB4 -_08088AB2: - movs r0, #1 -_08088AB4: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsWestwardCurrent - - thumb_func_start MetatileBehavior_IsEastwardCurrent -MetatileBehavior_IsEastwardCurrent: @ 0x08088AB8 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x50 - beq _08088AC6 - movs r0, #0 - b _08088AC8 -_08088AC6: - movs r0, #1 -_08088AC8: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsEastwardCurrent - - thumb_func_start MetatileBehavior_IsSlideNorth -MetatileBehavior_IsSlideNorth: @ 0x08088ACC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x46 - beq _08088ADA - movs r0, #0 - b _08088ADC -_08088ADA: - movs r0, #1 -_08088ADC: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSlideNorth - - thumb_func_start MetatileBehavior_IsSlideSouth -MetatileBehavior_IsSlideSouth: @ 0x08088AE0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x47 - beq _08088AEE - movs r0, #0 - b _08088AF0 -_08088AEE: - movs r0, #1 -_08088AF0: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSlideSouth - - thumb_func_start MetatileBehavior_IsSlideWest -MetatileBehavior_IsSlideWest: @ 0x08088AF4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x45 - beq _08088B02 - movs r0, #0 - b _08088B04 -_08088B02: - movs r0, #1 -_08088B04: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSlideWest - - thumb_func_start MetatileBehavior_IsSlideEast -MetatileBehavior_IsSlideEast: @ 0x08088B08 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x44 - beq _08088B16 - movs r0, #0 - b _08088B18 -_08088B16: - movs r0, #1 -_08088B18: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSlideEast - - thumb_func_start MetatileBehavior_IsCounter -MetatileBehavior_IsCounter: @ 0x08088B1C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x80 - beq _08088B2A - movs r0, #0 - b _08088B2C -_08088B2A: - movs r0, #1 -_08088B2C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsCounter - - thumb_func_start MetatileBehavior_IsPlayerFacingTVScreen -MetatileBehavior_IsPlayerFacingTVScreen: @ 0x08088B30 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #2 - bne _08088B42 - cmp r0, #0x86 - beq _08088B46 -_08088B42: - movs r0, #0 - b _08088B48 -_08088B46: - movs r0, #1 -_08088B48: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsPlayerFacingTVScreen - - thumb_func_start MetatileBehavior_IsPC -MetatileBehavior_IsPC: @ 0x08088B4C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x83 - beq _08088B5A - movs r0, #0 - b _08088B5C -_08088B5A: - movs r0, #1 -_08088B5C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsPC - - thumb_func_start MetatileBehavior_IsCableBoxResults1 -MetatileBehavior_IsCableBoxResults1: @ 0x08088B60 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x84 - beq _08088B6E - movs r0, #0 - b _08088B70 -_08088B6E: - movs r0, #1 -_08088B70: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsCableBoxResults1 - - thumb_func_start MetatileBehavior_IsOpenSecretBaseDoor -MetatileBehavior_IsOpenSecretBaseDoor: @ 0x08088B74 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x91 - beq _08088B96 - cmp r0, #0x93 - beq _08088B96 - cmp r0, #0x95 - beq _08088B96 - cmp r0, #0x97 - beq _08088B96 - cmp r0, #0x99 - beq _08088B96 - cmp r0, #0x9b - beq _08088B96 - cmp r0, #0x9d - bne _08088B9A -_08088B96: - movs r0, #1 - b _08088B9C -_08088B9A: - movs r0, #0 -_08088B9C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsOpenSecretBaseDoor - - thumb_func_start MetatileBehavior_IsSecretBaseCave -MetatileBehavior_IsSecretBaseCave: @ 0x08088BA0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x90 - beq _08088BB6 - cmp r0, #0x92 - beq _08088BB6 - cmp r0, #0x94 - beq _08088BB6 - cmp r0, #0x9a - bne _08088BBA -_08088BB6: - movs r0, #1 - b _08088BBC -_08088BBA: - movs r0, #0 -_08088BBC: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSecretBaseCave - - thumb_func_start MetatileBehavior_IsSecretBaseTree -MetatileBehavior_IsSecretBaseTree: @ 0x08088BC0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x96 - beq _08088BCE - cmp r0, #0x9c - bne _08088BD2 -_08088BCE: - movs r0, #1 - b _08088BD4 -_08088BD2: - movs r0, #0 -_08088BD4: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSecretBaseTree - - thumb_func_start MetatileBehavior_IsSecretBaseShrub -MetatileBehavior_IsSecretBaseShrub: @ 0x08088BD8 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x98 - beq _08088BE6 - movs r0, #0 - b _08088BE8 -_08088BE6: - movs r0, #1 -_08088BE8: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSecretBaseShrub - - thumb_func_start MetatileBehavior_IsSecretBasePC -MetatileBehavior_IsSecretBasePC: @ 0x08088BEC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xb0 - beq _08088BFA - movs r0, #0 - b _08088BFC -_08088BFA: - movs r0, #1 -_08088BFC: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSecretBasePC - - thumb_func_start MetatileBehavior_IsRecordMixingSecretBasePC -MetatileBehavior_IsRecordMixingSecretBasePC: @ 0x08088C00 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xb1 - beq _08088C0E - movs r0, #0 - b _08088C10 -_08088C0E: - movs r0, #1 -_08088C10: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsRecordMixingSecretBasePC - - thumb_func_start sub_08088C14 -sub_08088C14: @ 0x08088C14 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xb2 - beq _08088C22 - movs r0, #0 - b _08088C24 -_08088C22: - movs r0, #1 -_08088C24: - pop {r1} - bx r1 - thumb_func_end sub_08088C14 - - thumb_func_start MetatileBehavior_IsBlockDecoration -MetatileBehavior_IsBlockDecoration: @ 0x08088C28 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xb3 - beq _08088C36 - movs r0, #0 - b _08088C38 -_08088C36: - movs r0, #1 -_08088C38: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsBlockDecoration - - thumb_func_start MetatileBehavior_IsSecretBaseImpassable -MetatileBehavior_IsSecretBaseImpassable: @ 0x08088C3C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xb9 - beq _08088C4A - movs r0, #0 - b _08088C4C -_08088C4A: - movs r0, #1 -_08088C4C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSecretBaseImpassable - - thumb_func_start MetatileBehavior_IsMB_C6 -MetatileBehavior_IsMB_C6: @ 0x08088C50 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xc6 - beq _08088C5E - movs r0, #0 - b _08088C60 -_08088C5E: - movs r0, #1 -_08088C60: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsMB_C6 - - thumb_func_start MetatileBehavior_IsSecretBasePoster -MetatileBehavior_IsSecretBasePoster: @ 0x08088C64 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xc7 - beq _08088C72 - movs r0, #0 - b _08088C74 -_08088C72: - movs r0, #1 -_08088C74: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSecretBasePoster - - thumb_func_start MetatileBehavior_IsNormal -MetatileBehavior_IsNormal: @ 0x08088C78 - push {lr} - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08088C84 - movs r0, #0 - b _08088C86 -_08088C84: - movs r0, #1 -_08088C86: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MetatileBehavior_IsNormal - - thumb_func_start MetatileBehavior_IsSecretBaseNorthWall -MetatileBehavior_IsSecretBaseNorthWall: @ 0x08088C8C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xb7 - beq _08088C9A - movs r0, #0 - b _08088C9C -_08088C9A: - movs r0, #1 -_08088C9C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSecretBaseNorthWall - - thumb_func_start sub_08088CA0 -sub_08088CA0: @ 0x08088CA0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xb2 - beq _08088CAE - movs r0, #0 - b _08088CB0 -_08088CAE: - movs r0, #1 -_08088CB0: - pop {r1} - bx r1 - thumb_func_end sub_08088CA0 - - thumb_func_start MetatileBehavior_HoldsSmallDecoration -MetatileBehavior_HoldsSmallDecoration: @ 0x08088CB4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xb5 - beq _08088CC2 - movs r0, #0 - b _08088CC4 -_08088CC2: - movs r0, #1 -_08088CC4: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_HoldsSmallDecoration - - thumb_func_start MetatileBehavior_HoldsLargeDecoration -MetatileBehavior_HoldsLargeDecoration: @ 0x08088CC8 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xc3 - beq _08088CD6 - movs r0, #0 - b _08088CD8 -_08088CD6: - movs r0, #1 -_08088CD8: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_HoldsLargeDecoration - - thumb_func_start MetatileBehavior_IsSecretBaseHole -MetatileBehavior_IsSecretBaseHole: @ 0x08088CDC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xc2 - beq _08088CEA - movs r0, #0 - b _08088CEC -_08088CEA: - movs r0, #1 -_08088CEC: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSecretBaseHole - - thumb_func_start MetatileBehavior_IsSecretBaseBalloon -MetatileBehavior_IsSecretBaseBalloon: @ 0x08088CF0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xb8 - beq _08088CFE - movs r0, #0 - b _08088D00 -_08088CFE: - movs r0, #1 -_08088D00: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSecretBaseBalloon - - thumb_func_start MetatileBehavior_IsSecretBaseBreakableDoor -MetatileBehavior_IsSecretBaseBreakableDoor: @ 0x08088D04 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xbe - beq _08088D12 - movs r0, #0 - b _08088D14 -_08088D12: - movs r0, #1 -_08088D14: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSecretBaseBreakableDoor - - thumb_func_start MetatileBehavior_IsSecretBaseSoundMat -MetatileBehavior_IsSecretBaseSoundMat: @ 0x08088D18 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xbd - beq _08088D26 - movs r0, #0 - b _08088D28 -_08088D26: - movs r0, #1 -_08088D28: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSecretBaseSoundMat - - thumb_func_start MetatileBehavior_IsSecretBaseGlitterMat -MetatileBehavior_IsSecretBaseGlitterMat: @ 0x08088D2C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xba - beq _08088D3A - movs r0, #0 - b _08088D3C -_08088D3A: - movs r0, #1 -_08088D3C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSecretBaseGlitterMat - - thumb_func_start MetatileBehavior_IsSecretBaseSandOrnament -MetatileBehavior_IsSecretBaseSandOrnament: @ 0x08088D40 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xbf - beq _08088D4E - movs r0, #0 - b _08088D50 -_08088D4E: - movs r0, #1 -_08088D50: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSecretBaseSandOrnament - - thumb_func_start MetatileBehavior_IsSecretBaseShieldOrToyTV -MetatileBehavior_IsSecretBaseShieldOrToyTV: @ 0x08088D54 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xc4 - beq _08088D62 - movs r0, #0 - b _08088D64 -_08088D62: - movs r0, #1 -_08088D64: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSecretBaseShieldOrToyTV - - thumb_func_start MetatileBehavior_IsPlayerRoomPCOn -MetatileBehavior_IsPlayerRoomPCOn: @ 0x08088D68 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xc5 - beq _08088D76 - movs r0, #0 - b _08088D78 -_08088D76: - movs r0, #1 -_08088D78: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsPlayerRoomPCOn - - thumb_func_start MetatileBehavior_HasRipples -MetatileBehavior_HasRipples: @ 0x08088D7C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x10 - beq _08088D8E - cmp r0, #0x16 - beq _08088D8E - cmp r0, #0x14 - bne _08088D92 -_08088D8E: - movs r0, #1 - b _08088D94 -_08088D92: - movs r0, #0 -_08088D94: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_HasRipples - - thumb_func_start MetatileBehavior_IsPuddle -MetatileBehavior_IsPuddle: @ 0x08088D98 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x16 - beq _08088DA6 - movs r0, #0 - b _08088DA8 -_08088DA6: - movs r0, #1 -_08088DA8: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsPuddle - - thumb_func_start MetatileBehavior_IsTallGrass -MetatileBehavior_IsTallGrass: @ 0x08088DAC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - beq _08088DBA - movs r0, #0 - b _08088DBC -_08088DBA: - movs r0, #1 -_08088DBC: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsTallGrass - - thumb_func_start sub_08088DC0 -sub_08088DC0: @ 0x08088DC0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - beq _08088DCE - movs r0, #0 - b _08088DD0 -_08088DCE: - movs r0, #1 -_08088DD0: - pop {r1} - bx r1 - thumb_func_end sub_08088DC0 - - thumb_func_start MetatileBehavior_IsBerryTreeSoil -MetatileBehavior_IsBerryTreeSoil: @ 0x08088DD4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xa0 - beq _08088DE2 - movs r0, #0 - b _08088DE4 -_08088DE2: - movs r0, #1 -_08088DE4: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsBerryTreeSoil - - thumb_func_start MetatileBehavior_IsAshGrass -MetatileBehavior_IsAshGrass: @ 0x08088DE8 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x24 - beq _08088DF6 - movs r0, #0 - b _08088DF8 -_08088DF6: - movs r0, #1 -_08088DF8: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsAshGrass - - thumb_func_start MetatileBehavior_IsFootprints -MetatileBehavior_IsFootprints: @ 0x08088DFC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x25 - beq _08088E0A - movs r0, #0 - b _08088E0C -_08088E0A: - movs r0, #1 -_08088E0C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsFootprints - - thumb_func_start MetatileBehavior_IsBridge -MetatileBehavior_IsBridge: @ 0x08088E10 - push {lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r2, #0x90 - lsls r2, r2, #0x18 - adds r0, r0, r2 - lsrs r0, r0, #0x18 - cmp r0, #3 - bls _08088E2E - adds r0, r1, #0 - subs r0, #0x7c - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bhi _08088E32 -_08088E2E: - movs r0, #1 - b _08088E34 -_08088E32: - movs r0, #0 -_08088E34: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsBridge - - thumb_func_start MetatileBehavior_GetBridgeType -MetatileBehavior_GetBridgeType: @ 0x08088E38 - push {lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r2, r1, #0 - adds r0, r1, #0 - subs r0, #0x70 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bls _08088E6E - adds r0, r1, #0 - subs r0, #0x7a - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _08088E5C - movs r0, #2 - b _08088E6E -_08088E5C: - adds r0, r2, #0 - subs r0, #0x7c - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _08088E6C - movs r0, #0 - b _08088E6E -_08088E6C: - movs r0, #3 -_08088E6E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MetatileBehavior_GetBridgeType - - thumb_func_start MetatileBehavior_8089510 -MetatileBehavior_8089510: @ 0x08088E74 - push {lr} - lsls r0, r0, #0x18 - movs r1, #0x90 - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - cmp r0, #3 - bls _08088E88 - movs r0, #0 - b _08088E8A -_08088E88: - movs r0, #1 -_08088E8A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MetatileBehavior_8089510 - - thumb_func_start MetatileBehavior_IsLandWildEncounter -MetatileBehavior_IsLandWildEncounter: @ 0x08088E90 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl MetatileBehavior_IsSurfableWaterOrUnderwater - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08088EB4 - adds r0, r4, #0 - bl MetatileBehavior_IsEncounterTile - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08088EB4 - movs r0, #1 - b _08088EB6 -_08088EB4: - movs r0, #0 -_08088EB6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsLandWildEncounter - - thumb_func_start MetatileBehavior_IsWaterWildEncounter -MetatileBehavior_IsWaterWildEncounter: @ 0x08088EBC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl MetatileBehavior_IsSurfableWaterOrUnderwater - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08088EE2 - adds r0, r4, #0 - bl MetatileBehavior_IsEncounterTile - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08088EE2 - movs r0, #1 - b _08088EE4 -_08088EE2: - movs r0, #0 -_08088EE4: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MetatileBehavior_IsWaterWildEncounter - - thumb_func_start MetatileBehavior_IsIndoorEncounter -MetatileBehavior_IsIndoorEncounter: @ 0x08088EEC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xb - beq _08088EFA - movs r0, #0 - b _08088EFC -_08088EFA: - movs r0, #1 -_08088EFC: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsIndoorEncounter - - thumb_func_start MetatileBehavior_IsMountain -MetatileBehavior_IsMountain: @ 0x08088F00 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xc - beq _08088F0E - movs r0, #0 - b _08088F10 -_08088F0E: - movs r0, #1 -_08088F10: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsMountain - - thumb_func_start MetatileBehavior_IsDiveable -MetatileBehavior_IsDiveable: @ 0x08088F14 - push {lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r2, #0xef - lsls r2, r2, #0x18 - adds r0, r0, r2 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _08088F2A - cmp r1, #0x14 - bne _08088F2E -_08088F2A: - movs r0, #1 - b _08088F30 -_08088F2E: - movs r0, #0 -_08088F30: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsDiveable - - thumb_func_start MetatileBehavior_IsUnableToEmerge -MetatileBehavior_IsUnableToEmerge: @ 0x08088F34 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x19 - beq _08088F42 - cmp r0, #0x2a - bne _08088F46 -_08088F42: - movs r0, #1 - b _08088F48 -_08088F46: - movs r0, #0 -_08088F48: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsUnableToEmerge - - thumb_func_start MetatileBehavior_IsShallowFlowingWater -MetatileBehavior_IsShallowFlowingWater: @ 0x08088F4C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x17 - beq _08088F5E - cmp r0, #0x1b - beq _08088F5E - cmp r0, #0x1c - bne _08088F62 -_08088F5E: - movs r0, #1 - b _08088F64 -_08088F62: - movs r0, #0 -_08088F64: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsShallowFlowingWater - - thumb_func_start MetatileBehavior_IsThinIce -MetatileBehavior_IsThinIce: @ 0x08088F68 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x26 - beq _08088F76 - movs r0, #0 - b _08088F78 -_08088F76: - movs r0, #1 -_08088F78: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsThinIce - - thumb_func_start MetatileBehavior_IsCrackedIce -MetatileBehavior_IsCrackedIce: @ 0x08088F7C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x27 - beq _08088F8A - movs r0, #0 - b _08088F8C -_08088F8A: - movs r0, #1 -_08088F8C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsCrackedIce - - thumb_func_start MetatileBehavior_IsDeepOrOceanWater -MetatileBehavior_IsDeepOrOceanWater: @ 0x08088F90 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x15 - beq _08088FA2 - cmp r0, #0x11 - beq _08088FA2 - cmp r0, #0x12 - bne _08088FA6 -_08088FA2: - movs r0, #1 - b _08088FA8 -_08088FA6: - movs r0, #0 -_08088FA8: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsDeepOrOceanWater - - thumb_func_start Unref_MetatileBehavior_IsUnusedSootopolisWater -Unref_MetatileBehavior_IsUnusedSootopolisWater: @ 0x08088FAC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x18 - beq _08088FBA - cmp r0, #0x1a - bne _08088FBE -_08088FBA: - movs r0, #1 - b _08088FC0 -_08088FBE: - movs r0, #0 -_08088FC0: - pop {r1} - bx r1 - thumb_func_end Unref_MetatileBehavior_IsUnusedSootopolisWater - - thumb_func_start MetatileBehavior_IsSurfableAndNotWaterfall -MetatileBehavior_IsSurfableAndNotWaterfall: @ 0x08088FC4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl MetatileBehavior_IsSurfableWaterOrUnderwater - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08088FE6 - adds r0, r4, #0 - bl MetatileBehavior_IsWaterfall - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08088FE6 - movs r0, #1 - b _08088FE8 -_08088FE6: - movs r0, #0 -_08088FE8: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MetatileBehavior_IsSurfableAndNotWaterfall - - thumb_func_start MetatileBehavior_IsEastBlocked -MetatileBehavior_IsEastBlocked: @ 0x08088FF0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x30 - beq _0808900A - cmp r0, #0x34 - beq _0808900A - cmp r0, #0x36 - beq _0808900A - cmp r0, #0xc1 - beq _0808900A - cmp r0, #0xbe - bne _0808900E -_0808900A: - movs r0, #1 - b _08089010 -_0808900E: - movs r0, #0 -_08089010: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsEastBlocked - - thumb_func_start MetatileBehavior_IsWestBlocked -MetatileBehavior_IsWestBlocked: @ 0x08089014 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x31 - beq _0808902E - cmp r0, #0x35 - beq _0808902E - cmp r0, #0x37 - beq _0808902E - cmp r0, #0xc1 - beq _0808902E - cmp r0, #0xbe - bne _08089032 -_0808902E: - movs r0, #1 - b _08089034 -_08089032: - movs r0, #0 -_08089034: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsWestBlocked - - thumb_func_start MetatileBehavior_IsNorthBlocked -MetatileBehavior_IsNorthBlocked: @ 0x08089038 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x32 - beq _0808904E - cmp r0, #0x34 - beq _0808904E - cmp r0, #0x35 - beq _0808904E - cmp r0, #0xc0 - bne _08089052 -_0808904E: - movs r0, #1 - b _08089054 -_08089052: - movs r0, #0 -_08089054: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsNorthBlocked - - thumb_func_start MetatileBehavior_IsSouthBlocked -MetatileBehavior_IsSouthBlocked: @ 0x08089058 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x33 - beq _0808906E - cmp r0, #0x36 - beq _0808906E - cmp r0, #0x37 - beq _0808906E - cmp r0, #0xc0 - bne _08089072 -_0808906E: - movs r0, #1 - b _08089074 -_08089072: - movs r0, #0 -_08089074: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSouthBlocked - - thumb_func_start MetatileBehavior_IsShortGrass -MetatileBehavior_IsShortGrass: @ 0x08089078 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #7 - beq _08089086 - movs r0, #0 - b _08089088 -_08089086: - movs r0, #1 -_08089088: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsShortGrass - - thumb_func_start MetatileBehavior_IsHotSprings -MetatileBehavior_IsHotSprings: @ 0x0808908C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x28 - beq _0808909A - movs r0, #0 - b _0808909C -_0808909A: - movs r0, #1 -_0808909C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsHotSprings - - thumb_func_start MetatileBehavior_IsWaterfall -MetatileBehavior_IsWaterfall: @ 0x080890A0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x13 - beq _080890AE - movs r0, #0 - b _080890B0 -_080890AE: - movs r0, #1 -_080890B0: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsWaterfall - - thumb_func_start MetatileBehavior_IsFortreeBridge -MetatileBehavior_IsFortreeBridge: @ 0x080890B4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x78 - beq _080890C2 - movs r0, #0 - b _080890C4 -_080890C2: - movs r0, #1 -_080890C4: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsFortreeBridge - - thumb_func_start MetatileBehavior_IsPacifilogVerticalLog1 -MetatileBehavior_IsPacifilogVerticalLog1: @ 0x080890C8 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x74 - beq _080890D6 - movs r0, #0 - b _080890D8 -_080890D6: - movs r0, #1 -_080890D8: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsPacifilogVerticalLog1 - - thumb_func_start MetatileBehavior_IsPacifilogVerticalLog2 -MetatileBehavior_IsPacifilogVerticalLog2: @ 0x080890DC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x75 - beq _080890EA - movs r0, #0 - b _080890EC -_080890EA: - movs r0, #1 -_080890EC: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsPacifilogVerticalLog2 - - thumb_func_start MetatileBehavior_IsPacifilogHorizontalLog1 -MetatileBehavior_IsPacifilogHorizontalLog1: @ 0x080890F0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x76 - beq _080890FE - movs r0, #0 - b _08089100 -_080890FE: - movs r0, #1 -_08089100: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsPacifilogHorizontalLog1 - - thumb_func_start MetatileBehavior_IsPacifilogHorizontalLog2 -MetatileBehavior_IsPacifilogHorizontalLog2: @ 0x08089104 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x77 - beq _08089112 - movs r0, #0 - b _08089114 -_08089112: - movs r0, #1 -_08089114: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsPacifilogHorizontalLog2 - - thumb_func_start MetatileBehavior_IsPacifidlogLog -MetatileBehavior_IsPacifidlogLog: @ 0x08089118 - push {lr} - lsls r0, r0, #0x18 - movs r1, #0x8c - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - cmp r0, #3 - bls _0808912C - movs r0, #0 - b _0808912E -_0808912C: - movs r0, #1 -_0808912E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MetatileBehavior_IsPacifidlogLog - - thumb_func_start MetatileBehavior_IsTrickHousePuzzleDoor -MetatileBehavior_IsTrickHousePuzzleDoor: @ 0x08089134 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x8c - beq _08089142 - movs r0, #0 - b _08089144 -_08089142: - movs r0, #1 -_08089144: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsTrickHousePuzzleDoor - - thumb_func_start MetatileBehavior_IsRegionMap -MetatileBehavior_IsRegionMap: @ 0x08089148 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x85 - beq _08089156 - movs r0, #0 - b _08089158 -_08089156: - movs r0, #1 -_08089158: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsRegionMap - - thumb_func_start MetatileBehavior_IsClosedSootopolisDoor -MetatileBehavior_IsClosedSootopolisDoor: @ 0x0808915C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x8b - beq _0808916A - movs r0, #0 - b _0808916C -_0808916A: - movs r0, #1 -_0808916C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsClosedSootopolisDoor - - thumb_func_start MetatileBehavior_IsUnknownClosedDoor -MetatileBehavior_IsUnknownClosedDoor: @ 0x08089170 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xea - beq _0808917E - movs r0, #0 - b _08089180 -_0808917E: - movs r0, #1 -_08089180: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsUnknownClosedDoor - - thumb_func_start MetatileBehavior_IsRoulette -MetatileBehavior_IsRoulette: @ 0x08089184 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x8a - beq _08089192 - movs r0, #0 - b _08089194 -_08089192: - movs r0, #1 -_08089194: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsRoulette - - thumb_func_start MetatileBehavior_IsPokeblockFeeder -MetatileBehavior_IsPokeblockFeeder: @ 0x08089198 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x87 - beq _080891A6 - movs r0, #0 - b _080891A8 -_080891A6: - movs r0, #1 -_080891A8: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsPokeblockFeeder - - thumb_func_start MetatileBehavior_IsSecretBaseJumpMat -MetatileBehavior_IsSecretBaseJumpMat: @ 0x080891AC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xbb - beq _080891BA - movs r0, #0 - b _080891BC -_080891BA: - movs r0, #1 -_080891BC: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSecretBaseJumpMat - - thumb_func_start MetatileBehavior_IsSecretBaseSpinMat -MetatileBehavior_IsSecretBaseSpinMat: @ 0x080891C0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xbc - beq _080891CE - movs r0, #0 - b _080891D0 -_080891CE: - movs r0, #1 -_080891D0: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSecretBaseSpinMat - - thumb_func_start MetatileBehavior_IsLavaridgeB1FWarp -MetatileBehavior_IsLavaridgeB1FWarp: @ 0x080891D4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x29 - beq _080891E2 - movs r0, #0 - b _080891E4 -_080891E2: - movs r0, #1 -_080891E4: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsLavaridgeB1FWarp - - thumb_func_start MetatileBehavior_IsLavaridge1FWarp -MetatileBehavior_IsLavaridge1FWarp: @ 0x080891E8 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x68 - beq _080891F6 - movs r0, #0 - b _080891F8 -_080891F6: - movs r0, #1 -_080891F8: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsLavaridge1FWarp - - thumb_func_start MetatileBehavior_IsAquaHideoutWarp -MetatileBehavior_IsAquaHideoutWarp: @ 0x080891FC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x67 - beq _0808920A - movs r0, #0 - b _0808920C -_0808920A: - movs r0, #1 -_0808920C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsAquaHideoutWarp - - thumb_func_start MetatileBehavior_IsWarpOrBridge -MetatileBehavior_IsWarpOrBridge: @ 0x08089210 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x70 - beq _0808921E - movs r0, #0 - b _08089220 -_0808921E: - movs r0, #1 -_08089220: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsWarpOrBridge - - thumb_func_start MetatileBehavior_IsMossdeepGymWarp -MetatileBehavior_IsMossdeepGymWarp: @ 0x08089224 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xe - beq _08089232 - movs r0, #0 - b _08089234 -_08089232: - movs r0, #1 -_08089234: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsMossdeepGymWarp - - thumb_func_start MetatileBehavior_IsSurfableFishableWater -MetatileBehavior_IsSurfableFishableWater: @ 0x08089238 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x10 - beq _0808925C - cmp r0, #0x15 - beq _0808925C - cmp r0, #0x11 - beq _0808925C - cmp r0, #0x12 - beq _0808925C - cmp r0, #0x14 - beq _0808925C - subs r0, #0x50 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bhi _08089260 -_0808925C: - movs r0, #1 - b _08089262 -_08089260: - movs r0, #0 -_08089262: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MetatileBehavior_IsSurfableFishableWater - - thumb_func_start MetatileBehavior_IsMtPyreHole -MetatileBehavior_IsMtPyreHole: @ 0x08089268 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xf - beq _08089276 - movs r0, #0 - b _08089278 -_08089276: - movs r0, #1 -_08089278: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsMtPyreHole - - thumb_func_start MetatileBehavior_IsCrackedFloorHole -MetatileBehavior_IsCrackedFloorHole: @ 0x0808927C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x66 - beq _0808928A - movs r0, #0 - b _0808928C -_0808928A: - movs r0, #1 -_0808928C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsCrackedFloorHole - - thumb_func_start MetatileBehavior_IsCrackedFloor -MetatileBehavior_IsCrackedFloor: @ 0x08089290 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xd2 - beq _0808929E - movs r0, #0 - b _080892A0 -_0808929E: - movs r0, #1 -_080892A0: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsCrackedFloor - - thumb_func_start MetatileBehavior_IsMuddySlope -MetatileBehavior_IsMuddySlope: @ 0x080892A4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xd0 - beq _080892B2 - movs r0, #0 - b _080892B4 -_080892B2: - movs r0, #1 -_080892B4: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsMuddySlope - - thumb_func_start MetatileBehavior_IsBumpySlope -MetatileBehavior_IsBumpySlope: @ 0x080892B8 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xd1 - beq _080892C6 - movs r0, #0 - b _080892C8 -_080892C6: - movs r0, #1 -_080892C8: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsBumpySlope - - thumb_func_start MetatileBehavior_IsIsolatedVerticalRail -MetatileBehavior_IsIsolatedVerticalRail: @ 0x080892CC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xd3 - beq _080892DA - movs r0, #0 - b _080892DC -_080892DA: - movs r0, #1 -_080892DC: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsIsolatedVerticalRail - - thumb_func_start MetatileBehavior_IsIsolatedHorizontalRail -MetatileBehavior_IsIsolatedHorizontalRail: @ 0x080892E0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xd4 - beq _080892EE - movs r0, #0 - b _080892F0 -_080892EE: - movs r0, #1 -_080892F0: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsIsolatedHorizontalRail - - thumb_func_start MetatileBehavior_IsVerticalRail -MetatileBehavior_IsVerticalRail: @ 0x080892F4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xd5 - beq _08089302 - movs r0, #0 - b _08089304 -_08089302: - movs r0, #1 -_08089304: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsVerticalRail - - thumb_func_start MetatileBehavior_IsHorizontalRail -MetatileBehavior_IsHorizontalRail: @ 0x08089308 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xd6 - beq _08089316 - movs r0, #0 - b _08089318 -_08089316: - movs r0, #1 -_08089318: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsHorizontalRail - - thumb_func_start MetatileBehavior_IsSeaweed -MetatileBehavior_IsSeaweed: @ 0x0808931C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x22 - beq _0808932A - cmp r0, #0x2a - bne _0808932E -_0808932A: - movs r0, #1 - b _08089330 -_0808932E: - movs r0, #0 -_08089330: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSeaweed - - thumb_func_start MetatileBehavior_IsRunningDisallowed -MetatileBehavior_IsRunningDisallowed: @ 0x08089334 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xa - beq _08089350 - cmp r0, #3 - beq _08089350 - cmp r0, #0x28 - beq _08089350 - bl MetatileBehavior_IsPacifidlogLog - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08089354 -_08089350: - movs r0, #1 - b _08089356 -_08089354: - movs r0, #0 -_08089356: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MetatileBehavior_IsRunningDisallowed - - thumb_func_start MetatileBehavior_IsCuttableGrass -MetatileBehavior_IsCuttableGrass: @ 0x0808935C - push {lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r2, #0xfe - lsls r2, r2, #0x18 - adds r0, r0, r2 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _08089376 - cmp r1, #0x24 - beq _08089376 - cmp r1, #9 - bne _0808937A -_08089376: - movs r0, #1 - b _0808937C -_0808937A: - movs r0, #0 -_0808937C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsCuttableGrass - - thumb_func_start MetatileBehavior_IsRunningShoesManual -MetatileBehavior_IsRunningShoesManual: @ 0x08089380 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x8e - beq _0808938E - movs r0, #0 - b _08089390 -_0808938E: - movs r0, #1 -_08089390: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsRunningShoesManual - - thumb_func_start MetatileBehavior_IsPictureBookShelf -MetatileBehavior_IsPictureBookShelf: @ 0x08089394 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xe0 - beq _080893A2 - movs r0, #0 - b _080893A4 -_080893A2: - movs r0, #1 -_080893A4: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsPictureBookShelf - - thumb_func_start MetatileBehavior_IsBookShelf -MetatileBehavior_IsBookShelf: @ 0x080893A8 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xe1 - beq _080893B6 - movs r0, #0 - b _080893B8 -_080893B6: - movs r0, #1 -_080893B8: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsBookShelf - - thumb_func_start MetatileBehavior_IsPokeCenterBookShelf -MetatileBehavior_IsPokeCenterBookShelf: @ 0x080893BC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xe2 - beq _080893CA - movs r0, #0 - b _080893CC -_080893CA: - movs r0, #1 -_080893CC: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsPokeCenterBookShelf - - thumb_func_start MetatileBehavior_IsVase -MetatileBehavior_IsVase: @ 0x080893D0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xe3 - beq _080893DE - movs r0, #0 - b _080893E0 -_080893DE: - movs r0, #1 -_080893E0: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsVase - - thumb_func_start MetatileBehavior_IsTrashCan -MetatileBehavior_IsTrashCan: @ 0x080893E4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xe4 - beq _080893F2 - movs r0, #0 - b _080893F4 -_080893F2: - movs r0, #1 -_080893F4: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsTrashCan - - thumb_func_start MetatileBehavior_IsShopShelf -MetatileBehavior_IsShopShelf: @ 0x080893F8 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xe5 - beq _08089406 - movs r0, #0 - b _08089408 -_08089406: - movs r0, #1 -_08089408: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsShopShelf - - thumb_func_start MetatileBehavior_IsBlueprint -MetatileBehavior_IsBlueprint: @ 0x0808940C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xe6 - beq _0808941A - movs r0, #0 - b _0808941C -_0808941A: - movs r0, #1 -_0808941C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsBlueprint - - thumb_func_start MetatileBehavior_IsBattlePyramidWarp -MetatileBehavior_IsBattlePyramidWarp: @ 0x08089420 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xd - beq _0808942E - movs r0, #0 - b _08089430 -_0808942E: - movs r0, #1 -_08089430: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsBattlePyramidWarp - - thumb_func_start MetatileBehavior_IsPlayerFacingWirelessBoxResults -MetatileBehavior_IsPlayerFacingWirelessBoxResults: @ 0x08089434 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #2 - bne _08089446 - cmp r0, #0xe8 - beq _0808944A -_08089446: - movs r0, #0 - b _0808944C -_0808944A: - movs r0, #1 -_0808944C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsPlayerFacingWirelessBoxResults - - thumb_func_start MetatileBehavior_IsCableBoxResults2 -MetatileBehavior_IsCableBoxResults2: @ 0x08089450 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #2 - bne _08089462 - cmp r0, #0xe7 - beq _08089466 -_08089462: - movs r0, #0 - b _08089468 -_08089466: - movs r0, #1 -_08089468: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsCableBoxResults2 - - thumb_func_start MetatileBehavior_IsQuestionnaire -MetatileBehavior_IsQuestionnaire: @ 0x0808946C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x8f - beq _0808947A - movs r0, #0 - b _0808947C -_0808947A: - movs r0, #1 -_0808947C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsQuestionnaire - - thumb_func_start sub_08089480 -sub_08089480: @ 0x08089480 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - beq _0808948E - movs r0, #0 - b _08089490 -_0808948E: - movs r0, #1 -_08089490: - pop {r1} - bx r1 - thumb_func_end sub_08089480 - - thumb_func_start MetatileBehavior_IsLongGrassSouthEdge -MetatileBehavior_IsLongGrassSouthEdge: @ 0x08089494 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #9 - beq _080894A2 - movs r0, #0 - b _080894A4 -_080894A2: - movs r0, #1 -_080894A4: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsLongGrassSouthEdge - - thumb_func_start MetatileBehavior_IsTrainerHillTimer -MetatileBehavior_IsTrainerHillTimer: @ 0x080894A8 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xe9 - beq _080894B6 - movs r0, #0 - b _080894B8 -_080894B6: - movs r0, #1 -_080894B8: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsTrainerHillTimer - - thumb_func_start move_tilemap_camera_to_upper_left_corner_ -move_tilemap_camera_to_upper_left_corner_: @ 0x080894BC - movs r1, #0 - strb r1, [r0, #2] - strb r1, [r0, #3] - strb r1, [r0] - strb r1, [r0, #1] - movs r1, #1 - strb r1, [r0, #4] - bx lr - thumb_func_end move_tilemap_camera_to_upper_left_corner_ - - thumb_func_start tilemap_move_something -tilemap_move_something: @ 0x080894CC - ldrb r3, [r0, #2] - adds r3, r3, r1 - strb r3, [r0, #2] - ldrb r1, [r0, #2] - movs r3, #0x1f - ands r1, r3 - strb r1, [r0, #2] - ldrb r1, [r0, #3] - adds r1, r1, r2 - strb r1, [r0, #3] - ldrb r1, [r0, #3] - ands r1, r3 - strb r1, [r0, #3] - bx lr - thumb_func_end tilemap_move_something - - thumb_func_start coords8_add -coords8_add: @ 0x080894E8 - ldrb r3, [r0] - adds r3, r3, r1 - strb r3, [r0] - ldrb r1, [r0, #1] - adds r1, r1, r2 - strb r1, [r0, #1] - bx lr - .align 2, 0 - thumb_func_end coords8_add - - thumb_func_start move_tilemap_camera_to_upper_left_corner -move_tilemap_camera_to_upper_left_corner: @ 0x080894F8 - push {lr} - ldr r0, _08089504 - bl move_tilemap_camera_to_upper_left_corner_ - pop {r0} - bx r0 - .align 2, 0 -_08089504: .4byte gUnknown_3000E20 - thumb_func_end move_tilemap_camera_to_upper_left_corner - - thumb_func_start FieldUpdateBgTilemapScroll -FieldUpdateBgTilemapScroll: @ 0x08089508 - push {r4, r5, lr} - ldr r1, _08089560 - ldr r0, _08089564 - movs r2, #0 - ldrsh r5, [r0, r2] - ldrb r0, [r1] - adds r5, r5, r0 - ldr r0, _08089568 - movs r2, #0 - ldrsh r4, [r0, r2] - ldrb r1, [r1, #1] - adds r4, r4, r1 - adds r4, #8 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - movs r0, #0x14 - adds r1, r5, #0 - bl SetGpuReg - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - movs r0, #0x16 - adds r1, r4, #0 - bl SetGpuReg - movs r0, #0x18 - adds r1, r5, #0 - bl SetGpuReg - movs r0, #0x1a - adds r1, r4, #0 - bl SetGpuReg - movs r0, #0x1c - adds r1, r5, #0 - bl SetGpuReg - movs r0, #0x1e - adds r1, r4, #0 - bl SetGpuReg - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08089560: .4byte gUnknown_3000E20 -_08089564: .4byte gUnknown_3000E28 -_08089568: .4byte gUnknown_3000E2A - thumb_func_end FieldUpdateBgTilemapScroll - - thumb_func_start sub_0808956C -sub_0808956C: @ 0x0808956C - push {r4, lr} - ldr r3, _0808958C - ldr r2, _08089590 - ldrh r2, [r2] - ldrb r4, [r3] - adds r2, r2, r4 - strh r2, [r0] - ldr r0, _08089594 - ldrh r0, [r0] - ldrb r3, [r3, #1] - adds r0, r0, r3 - adds r0, #8 - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808958C: .4byte gUnknown_3000E20 -_08089590: .4byte gUnknown_3000E28 -_08089594: .4byte gUnknown_3000E2A - thumb_func_end sub_0808956C - - thumb_func_start DrawWholeMapView -DrawWholeMapView: @ 0x08089598 - push {lr} - ldr r0, _080895B8 - ldr r1, [r0] - movs r2, #0 - ldrsh r0, [r1, r2] - movs r2, #2 - ldrsh r1, [r1, r2] - ldr r2, _080895BC - ldr r2, [r2] - bl DrawWholeMapViewInternal - ldr r1, _080895C0 - movs r0, #1 - strb r0, [r1, #4] - pop {r0} - bx r0 - .align 2, 0 -_080895B8: .4byte gUnknown_3005AEC -_080895BC: .4byte gUnknown_2036FB8 -_080895C0: .4byte gUnknown_3000E20 - thumb_func_end DrawWholeMapView - - thumb_func_start DrawWholeMapViewInternal -DrawWholeMapViewInternal: @ 0x080895C4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov sl, r0 - mov sb, r1 - mov r8, r2 - movs r1, #0 -_080895D8: - ldr r2, _08089644 - ldrb r0, [r2, #3] - adds r0, r1, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1f - bls _080895EC - subs r0, #0x20 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_080895EC: - lsls r6, r0, #5 - movs r4, #0 - adds r7, r1, #2 - str r7, [sp] - lsrs r5, r1, #1 -_080895F6: - ldr r1, _08089644 - ldrb r0, [r1, #2] - adds r0, r4, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1f - bls _0808960A - subs r0, #0x20 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_0808960A: - adds r1, r6, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsrs r2, r4, #1 - add r2, sl - mov r0, r8 - mov r7, sb - adds r3, r7, r5 - bl DrawMetatileAt - adds r0, r4, #2 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x1f - bls _080895F6 - ldr r1, [sp] - lsls r0, r1, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x1f - bls _080895D8 - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08089644: .4byte gUnknown_3000E20 - thumb_func_end DrawWholeMapViewInternal - - thumb_func_start RedrawMapSlicesForCameraUpdate -RedrawMapSlicesForCameraUpdate: @ 0x08089648 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r6, r1, #0 - adds r7, r2, #0 - ldr r0, _08089690 - ldr r4, [r0] - cmp r6, #0 - ble _08089660 - adds r0, r5, #0 - adds r1, r4, #0 - bl RedrawMapSliceWest -_08089660: - cmp r6, #0 - bge _0808966C - adds r0, r5, #0 - adds r1, r4, #0 - bl RedrawMapSliceEast -_0808966C: - cmp r7, #0 - ble _08089678 - adds r0, r5, #0 - adds r1, r4, #0 - bl RedrawMapSliceNorth -_08089678: - cmp r7, #0 - bge _08089684 - adds r0, r5, #0 - adds r1, r4, #0 - bl RedrawMapSliceSouth -_08089684: - movs r0, #1 - strb r0, [r5, #4] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08089690: .4byte gUnknown_2036FB8 - thumb_func_end RedrawMapSlicesForCameraUpdate - - thumb_func_start RedrawMapSliceNorth -RedrawMapSliceNorth: @ 0x08089694 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r7, r1, #0 - ldrb r0, [r5, #3] - adds r0, #0x1c - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1f - bls _080896AC - subs r0, #0x20 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_080896AC: - lsls r6, r0, #5 - movs r4, #0 -_080896B0: - ldrb r0, [r5, #2] - adds r0, r4, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1f - bls _080896C2 - subs r0, #0x20 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_080896C2: - adds r1, r6, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, _080896F0 - ldr r3, [r0] - movs r0, #0 - ldrsh r2, [r3, r0] - lsrs r0, r4, #1 - adds r2, r2, r0 - movs r0, #2 - ldrsh r3, [r3, r0] - adds r3, #0xe - adds r0, r7, #0 - bl DrawMetatileAt - adds r0, r4, #2 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x1f - bls _080896B0 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080896F0: .4byte gUnknown_3005AEC - thumb_func_end RedrawMapSliceNorth - - thumb_func_start RedrawMapSliceSouth -RedrawMapSliceSouth: @ 0x080896F4 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r7, r1, #0 - ldrb r0, [r5, #3] - lsls r6, r0, #5 - movs r4, #0 -_08089700: - ldrb r0, [r5, #2] - adds r0, r4, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1f - bls _08089712 - subs r0, #0x20 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_08089712: - adds r1, r6, r0 - ldr r0, _0808973C - ldr r3, [r0] - movs r0, #0 - ldrsh r2, [r3, r0] - lsrs r0, r4, #1 - adds r2, r2, r0 - movs r0, #2 - ldrsh r3, [r3, r0] - adds r0, r7, #0 - bl DrawMetatileAt - adds r0, r4, #2 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x1f - bls _08089700 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0808973C: .4byte gUnknown_3005AEC - thumb_func_end RedrawMapSliceSouth - - thumb_func_start RedrawMapSliceEast -RedrawMapSliceEast: @ 0x08089740 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - mov r8, r1 - ldrb r6, [r5, #2] - movs r4, #0 -_0808974E: - ldrb r0, [r5, #3] - adds r0, r4, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1f - bls _08089760 - subs r0, #0x20 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_08089760: - lsls r1, r0, #5 - adds r1, r1, r6 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, _08089794 - ldr r0, [r0] - movs r3, #0 - ldrsh r2, [r0, r3] - movs r7, #2 - ldrsh r3, [r0, r7] - lsrs r0, r4, #1 - adds r3, r3, r0 - mov r0, r8 - bl DrawMetatileAt - adds r0, r4, #2 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x1f - bls _0808974E - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08089794: .4byte gUnknown_3005AEC - thumb_func_end RedrawMapSliceEast - - thumb_func_start RedrawMapSliceWest -RedrawMapSliceWest: @ 0x08089798 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - mov r8, r1 - ldrb r0, [r6, #2] - adds r0, #0x1c - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0x1f - bls _080897B6 - adds r0, r5, #0 - subs r0, #0x20 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_080897B6: - movs r4, #0 -_080897B8: - ldrb r0, [r6, #3] - adds r0, r4, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1f - bls _080897CA - subs r0, #0x20 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_080897CA: - lsls r1, r0, #5 - adds r1, r1, r5 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, _08089800 - ldr r0, [r0] - movs r3, #0 - ldrsh r2, [r0, r3] - adds r2, #0xe - movs r7, #2 - ldrsh r3, [r0, r7] - lsrs r0, r4, #1 - adds r3, r3, r0 - mov r0, r8 - bl DrawMetatileAt - adds r0, r4, #2 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x1f - bls _080897B8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08089800: .4byte gUnknown_3005AEC - thumb_func_end RedrawMapSliceWest - - thumb_func_start CurrentMapDrawMetatileAt -CurrentMapDrawMetatileAt: @ 0x08089804 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r6, _08089838 - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r5, #0 - bl MapPosToBgTilemapOffset - adds r1, r0, #0 - cmp r1, #0 - blt _08089830 - ldr r0, _0808983C - ldr r0, [r0] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r2, r4, #0 - adds r3, r5, #0 - bl DrawMetatileAt - movs r0, #1 - strb r0, [r6, #4] -_08089830: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08089838: .4byte gUnknown_3000E20 -_0808983C: .4byte gUnknown_2036FB8 - thumb_func_end CurrentMapDrawMetatileAt - - thumb_func_start DrawDoorMetatileAt -DrawDoorMetatileAt: @ 0x08089840 - push {r4, r5, r6, lr} - adds r3, r0, #0 - adds r4, r1, #0 - adds r5, r2, #0 - ldr r6, _08089870 - adds r0, r6, #0 - adds r1, r3, #0 - adds r2, r4, #0 - bl MapPosToBgTilemapOffset - cmp r0, #0 - blt _08089868 - lsls r2, r0, #0x10 - lsrs r2, r2, #0x10 - movs r0, #1 - adds r1, r5, #0 - bl DrawMetatile - movs r0, #1 - strb r0, [r6, #4] -_08089868: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08089870: .4byte gUnknown_3000E20 - thumb_func_end DrawDoorMetatileAt - - thumb_func_start DrawMetatileAt -DrawMetatileAt: @ 0x08089874 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - adds r6, r2, #0 - adds r7, r3, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r8, r1 - adds r0, r6, #0 - adds r1, r7, #0 - bl MapGridGetMetatileIdAt - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r0, #0x80 - lsls r0, r0, #3 - cmp r4, r0 - bls _0808989C - movs r4, #0 -_0808989C: - ldr r0, _080898A8 - cmp r4, r0 - bhi _080898AC - ldr r0, [r5, #0x10] - ldr r5, [r0, #0xc] - b _080898B8 - .align 2, 0 -_080898A8: .4byte 0x000001FF -_080898AC: - ldr r0, [r5, #0x14] - ldr r5, [r0, #0xc] - ldr r1, _080898D8 - adds r0, r4, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_080898B8: - adds r0, r6, #0 - adds r1, r7, #0 - bl MapGridGetMetatileLayerTypeAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r4, #4 - adds r1, r5, r1 - mov r2, r8 - bl DrawMetatile - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080898D8: .4byte 0xFFFFFE00 - thumb_func_end DrawMetatileAt - - thumb_func_start DrawMetatile -DrawMetatile: @ 0x080898DC - push {r4, lr} - adds r4, r1, #0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - cmp r0, #1 - beq _08089934 - cmp r0, #1 - bgt _080898F2 - cmp r0, #0 - beq _08089994 - b _080899E6 -_080898F2: - cmp r0, #2 - bne _080899E6 - ldr r0, _0808992C - ldr r0, [r0] - lsls r3, r2, #1 - adds r0, r3, r0 - ldrh r1, [r4] - strh r1, [r0] - ldrh r1, [r4, #2] - strh r1, [r0, #2] - adds r2, r0, #0 - adds r2, #0x40 - ldrh r1, [r4, #4] - strh r1, [r2] - adds r0, #0x42 - ldrh r1, [r4, #6] - strh r1, [r0] - ldr r0, _08089930 - ldr r0, [r0] - adds r0, r3, r0 - movs r2, #0 - strh r2, [r0] - strh r2, [r0, #2] - adds r1, r0, #0 - adds r1, #0x40 - strh r2, [r1] - adds r0, #0x42 - strh r2, [r0] - b _080899CA - .align 2, 0 -_0808992C: .4byte gUnknown_3005B04 -_08089930: .4byte gUnknown_3005AFC -_08089934: - ldr r0, _08089988 - ldr r0, [r0] - lsls r3, r2, #1 - adds r0, r3, r0 - ldrh r1, [r4] - strh r1, [r0] - ldrh r1, [r4, #2] - strh r1, [r0, #2] - adds r2, r0, #0 - adds r2, #0x40 - ldrh r1, [r4, #4] - strh r1, [r2] - adds r0, #0x42 - ldrh r1, [r4, #6] - strh r1, [r0] - ldr r0, _0808998C - ldr r0, [r0] - adds r0, r3, r0 - ldrh r1, [r4, #8] - strh r1, [r0] - ldrh r1, [r4, #0xa] - strh r1, [r0, #2] - adds r2, r0, #0 - adds r2, #0x40 - ldrh r1, [r4, #0xc] - strh r1, [r2] - adds r0, #0x42 - ldrh r1, [r4, #0xe] - strh r1, [r0] - ldr r0, _08089990 - ldr r0, [r0] - adds r3, r3, r0 - movs r1, #0 - strh r1, [r3] - strh r1, [r3, #2] - adds r0, r3, #0 - adds r0, #0x40 - strh r1, [r0] - adds r3, #0x42 - strh r1, [r3] - b _080899E6 - .align 2, 0 -_08089988: .4byte gUnknown_3005B04 -_0808998C: .4byte gUnknown_3005AFC -_08089990: .4byte gUnknown_3005B00 -_08089994: - ldr r0, _08089A00 - ldr r0, [r0] - lsls r3, r2, #1 - adds r0, r3, r0 - ldr r1, _08089A04 - adds r2, r1, #0 - strh r2, [r0] - strh r2, [r0, #2] - adds r1, r0, #0 - adds r1, #0x40 - strh r2, [r1] - adds r0, #0x42 - strh r2, [r0] - ldr r0, _08089A08 - ldr r0, [r0] - adds r0, r3, r0 - ldrh r1, [r4] - strh r1, [r0] - ldrh r1, [r4, #2] - strh r1, [r0, #2] - adds r2, r0, #0 - adds r2, #0x40 - ldrh r1, [r4, #4] - strh r1, [r2] - adds r0, #0x42 - ldrh r1, [r4, #6] - strh r1, [r0] -_080899CA: - ldr r0, _08089A0C - ldr r0, [r0] - adds r3, r3, r0 - ldrh r0, [r4, #8] - strh r0, [r3] - ldrh r0, [r4, #0xa] - strh r0, [r3, #2] - adds r1, r3, #0 - adds r1, #0x40 - ldrh r0, [r4, #0xc] - strh r0, [r1] - adds r3, #0x42 - ldrh r0, [r4, #0xe] - strh r0, [r3] -_080899E6: - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #3 - bl schedule_bg_copy_tilemap_to_vram - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08089A00: .4byte gUnknown_3005B04 -_08089A04: .4byte 0x00003014 -_08089A08: .4byte gUnknown_3005AFC -_08089A0C: .4byte gUnknown_3005B00 - thumb_func_end DrawMetatile - - thumb_func_start MapPosToBgTilemapOffset -MapPosToBgTilemapOffset: @ 0x08089A10 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _08089A40 - ldr r3, [r0] - movs r5, #0 - ldrsh r0, [r3, r5] - subs r1, r1, r0 - lsls r1, r1, #1 - cmp r1, #0x1f - bhi _08089A3A - ldrb r0, [r4, #2] - adds r1, r1, r0 - cmp r1, #0x1f - ble _08089A2E - subs r1, #0x20 -_08089A2E: - movs r5, #2 - ldrsh r0, [r3, r5] - subs r0, r2, r0 - lsls r2, r0, #1 - cmp r2, #0x1f - bls _08089A44 -_08089A3A: - movs r0, #1 - rsbs r0, r0, #0 - b _08089A52 - .align 2, 0 -_08089A40: .4byte gUnknown_3005AEC -_08089A44: - ldrb r0, [r4, #3] - adds r2, r2, r0 - cmp r2, #0x1f - ble _08089A4E - subs r2, #0x20 -_08089A4E: - lsls r0, r2, #5 - adds r0, r0, r1 -_08089A52: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MapPosToBgTilemapOffset - - thumb_func_start CameraUpdateCallback -CameraUpdateCallback: @ 0x08089A58 - push {lr} - adds r3, r0, #0 - ldr r2, [r3, #4] - cmp r2, #0 - beq _08089A78 - ldr r1, _08089A7C - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r0, r2] - str r1, [r3, #8] - movs r1, #0x34 - ldrsh r0, [r0, r1] - str r0, [r3, #0xc] -_08089A78: - pop {r0} - bx r0 - .align 2, 0 -_08089A7C: .4byte gUnknown_20205AC - thumb_func_end CameraUpdateCallback - - thumb_func_start ResetCameraUpdateInfo -ResetCameraUpdateInfo: @ 0x08089A80 - ldr r1, _08089A94 - movs r0, #0 - str r0, [r1, #8] - str r0, [r1, #0xc] - str r0, [r1, #0x10] - str r0, [r1, #0x14] - str r0, [r1, #4] - str r0, [r1] - bx lr - .align 2, 0 -_08089A94: .4byte gUnknown_3005B30 - thumb_func_end ResetCameraUpdateInfo - - thumb_func_start InitCameraUpdateCallback -InitCameraUpdateCallback: @ 0x08089A98 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r4, _08089ACC - ldr r1, [r4, #4] - cmp r1, #0 - beq _08089AB4 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08089AD0 - adds r0, r0, r1 - bl DestroySprite -_08089AB4: - adds r0, r5, #0 - bl AddCameraObject - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [r4, #4] - ldr r0, _08089AD4 - str r0, [r4] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08089ACC: .4byte gUnknown_3005B30 -_08089AD0: .4byte gUnknown_20205AC -_08089AD4: .4byte CameraUpdateCallback - thumb_func_end InitCameraUpdateCallback - - thumb_func_start CameraUpdate -CameraUpdate: @ 0x08089AD8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r6, _08089BD8 - ldr r1, [r6] - cmp r1, #0 - beq _08089AEC - adds r0, r6, #0 - bl _call_via_r1 -_08089AEC: - ldr r7, [r6, #8] - ldr r0, [r6, #0xc] - mov r8, r0 - movs r4, #0 - movs r5, #0 - ldr r1, [r6, #0x10] - ldr r0, [r6, #0x14] - cmp r1, #0 - bne _08089B0A - cmp r7, #0 - beq _08089B0A - subs r4, #1 - cmp r7, #0 - ble _08089B0A - movs r4, #1 -_08089B0A: - cmp r0, #0 - bne _08089B1E - mov r2, r8 - cmp r2, #0 - beq _08089B1E - movs r5, #1 - rsbs r5, r5, #0 - cmp r2, #0 - ble _08089B1E - movs r5, #1 -_08089B1E: - cmp r1, #0 - beq _08089B30 - cmn r1, r7 - bne _08089B30 - movs r4, #1 - rsbs r4, r4, #0 - cmp r7, #0 - ble _08089B30 - movs r4, #1 -_08089B30: - cmp r0, #0 - beq _08089B44 - mov r3, r8 - cmn r0, r3 - bne _08089B44 - movs r4, #1 - rsbs r4, r4, #0 - cmp r3, #0 - ble _08089B44 - movs r4, #1 -_08089B44: - ldr r2, _08089BD8 - ldr r0, [r2, #0x10] - adds r1, r0, r7 - str r1, [r2, #0x10] - adds r0, r1, #0 - cmp r1, #0 - bge _08089B54 - adds r0, #0xf -_08089B54: - asrs r0, r0, #4 - lsls r0, r0, #4 - subs r0, r1, r0 - str r0, [r2, #0x10] - ldr r0, [r2, #0x14] - mov r3, r8 - adds r1, r0, r3 - str r1, [r2, #0x14] - adds r0, r1, #0 - cmp r1, #0 - bge _08089B6C - adds r0, #0xf -_08089B6C: - asrs r0, r0, #4 - lsls r0, r0, #4 - subs r0, r1, r0 - str r0, [r2, #0x14] - cmp r4, #0 - bne _08089B7C - cmp r5, #0 - beq _08089BB2 -_08089B7C: - adds r0, r4, #0 - adds r1, r5, #0 - bl CameraMove - adds r0, r4, #0 - adds r1, r5, #0 - bl UpdateEventObjectsForCameraUpdate - adds r0, r4, #0 - adds r1, r5, #0 - bl RotatingGatePuzzleCameraUpdate - bl ResetBerryTreeSparkleFlags - ldr r6, _08089BDC - lsls r4, r4, #1 - lsls r5, r5, #1 - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r5, #0 - bl tilemap_move_something - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r5, #0 - bl RedrawMapSlicesForCameraUpdate -_08089BB2: - ldr r0, _08089BDC - adds r1, r7, #0 - mov r2, r8 - bl coords8_add - ldr r1, _08089BE0 - ldrh r0, [r1] - subs r0, r0, r7 - strh r0, [r1] - ldr r1, _08089BE4 - ldrh r0, [r1] - mov r2, r8 - subs r0, r0, r2 - strh r0, [r1] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08089BD8: .4byte gUnknown_3005B30 -_08089BDC: .4byte gUnknown_3000E20 -_08089BE0: .4byte gUnknown_3005B4C -_08089BE4: .4byte gUnknown_3005B48 - thumb_func_end CameraUpdate - - thumb_func_start MoveCameraAndRedrawMap -MoveCameraAndRedrawMap: @ 0x08089BE8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl CameraMove - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - lsls r1, r5, #0x10 - asrs r1, r1, #0x10 - bl UpdateEventObjectsForCameraUpdate - bl DrawWholeMapView - ldr r1, _08089C1C - lsls r4, r4, #4 - ldrh r0, [r1] - subs r0, r0, r4 - strh r0, [r1] - ldr r1, _08089C20 - lsls r5, r5, #4 - ldrh r0, [r1] - subs r0, r0, r5 - strh r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08089C1C: .4byte gUnknown_3005B4C -_08089C20: .4byte gUnknown_3005B48 - thumb_func_end MoveCameraAndRedrawMap - - thumb_func_start sub_08089C24 -sub_08089C24: @ 0x08089C24 - ldr r1, _08089C2C - str r0, [r1] - bx lr - .align 2, 0 -_08089C2C: .4byte gUnknown_3000E30 - thumb_func_end sub_08089C24 - - thumb_func_start SetCameraPanning -SetCameraPanning: @ 0x08089C30 - ldr r2, _08089C40 - strh r0, [r2] - ldr r0, _08089C44 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r1, #0x20 - strh r1, [r0] - bx lr - .align 2, 0 -_08089C40: .4byte gUnknown_3000E28 -_08089C44: .4byte gUnknown_3000E2A - thumb_func_end SetCameraPanning - - thumb_func_start InstallCameraPanAheadCallback -InstallCameraPanAheadCallback: @ 0x08089C48 - ldr r1, _08089C64 - ldr r0, _08089C68 - str r0, [r1] - ldr r1, _08089C6C - movs r0, #0 - strb r0, [r1] - ldr r1, _08089C70 - movs r0, #0 - strh r0, [r1] - ldr r1, _08089C74 - movs r0, #0x20 - strh r0, [r1] - bx lr - .align 2, 0 -_08089C64: .4byte gUnknown_3000E30 -_08089C68: .4byte CameraPanningCB_PanAhead -_08089C6C: .4byte gUnknown_3000E2C -_08089C70: .4byte gUnknown_3000E28 -_08089C74: .4byte gUnknown_3000E2A - thumb_func_end InstallCameraPanAheadCallback - - thumb_func_start UpdateCameraPanning -UpdateCameraPanning: @ 0x08089C78 - push {lr} - ldr r0, _08089CA8 - ldr r0, [r0] - cmp r0, #0 - beq _08089C86 - bl _call_via_r0 -_08089C86: - ldr r2, _08089CAC - ldr r0, _08089CB0 - ldr r1, _08089CB4 - ldrh r0, [r0] - ldrh r1, [r1] - subs r0, r0, r1 - strh r0, [r2] - ldr r2, _08089CB8 - ldr r0, _08089CBC - ldr r1, _08089CC0 - ldrh r0, [r0] - ldrh r1, [r1] - subs r0, r0, r1 - subs r0, #8 - strh r0, [r2] - pop {r0} - bx r0 - .align 2, 0 -_08089CA8: .4byte gUnknown_3000E30 -_08089CAC: .4byte gUnknown_2021B38 -_08089CB0: .4byte gUnknown_3005B4C -_08089CB4: .4byte gUnknown_3000E28 -_08089CB8: .4byte gUnknown_2021B3A -_08089CBC: .4byte gUnknown_3005B48 -_08089CC0: .4byte gUnknown_3000E2A - thumb_func_end UpdateCameraPanning - - thumb_func_start CameraPanningCB_PanAhead -CameraPanningCB_PanAhead: @ 0x08089CC4 - push {lr} - ldr r0, _08089CD4 - ldrb r0, [r0] - cmp r0, #0 - bne _08089CD8 - bl InstallCameraPanAheadCallback - b _08089D60 - .align 2, 0 -_08089CD4: .4byte gUnknown_2036FE8 -_08089CD8: - ldr r0, _08089CF0 - ldrb r0, [r0, #3] - cmp r0, #1 - bne _08089CF8 - ldr r0, _08089CF4 - ldrb r1, [r0] - movs r2, #1 - eors r1, r2 - strb r1, [r0] - cmp r1, #0 - beq _08089D60 - b _08089CFE - .align 2, 0 -_08089CF0: .4byte gUnknown_2037230 -_08089CF4: .4byte gUnknown_3000E2C -_08089CF8: - ldr r1, _08089D20 - movs r0, #0 - strb r0, [r1] -_08089CFE: - bl GetPlayerMovementDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _08089D28 - ldr r2, _08089D24 - ldrh r3, [r2] - movs r0, #0 - ldrsh r1, [r2, r0] - movs r0, #8 - rsbs r0, r0, #0 - cmp r1, r0 - ble _08089D60 - subs r0, r3, #2 - b _08089D5E - .align 2, 0 -_08089D20: .4byte gUnknown_3000E2C -_08089D24: .4byte gUnknown_3000E2A -_08089D28: - cmp r0, #1 - bne _08089D44 - ldr r1, _08089D40 - ldrh r2, [r1] - movs r3, #0 - ldrsh r0, [r1, r3] - cmp r0, #0x47 - bgt _08089D60 - adds r0, r2, #2 - strh r0, [r1] - b _08089D60 - .align 2, 0 -_08089D40: .4byte gUnknown_3000E2A -_08089D44: - ldr r2, _08089D54 - ldrh r0, [r2] - movs r3, #0 - ldrsh r1, [r2, r3] - cmp r1, #0x1f - bgt _08089D58 - adds r0, #2 - b _08089D5E - .align 2, 0 -_08089D54: .4byte gUnknown_3000E2A -_08089D58: - cmp r1, #0x20 - ble _08089D60 - subs r0, #2 -_08089D5E: - strh r0, [r2] -_08089D60: - pop {r0} - bx r0 - thumb_func_end CameraPanningCB_PanAhead - - thumb_func_start CopyDoorTilesToVram -CopyDoorTilesToVram: @ 0x08089D64 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #3] - cmp r0, #2 - bne _08089D84 - ldrh r1, [r1, #2] - ldr r0, [r2, #4] - adds r0, r0, r1 - ldr r1, _08089D80 - movs r2, #0x80 - bl CpuFastSet - b _08089D92 - .align 2, 0 -_08089D80: .4byte 0x06007E00 -_08089D84: - ldrh r1, [r1, #2] - ldr r0, [r2, #4] - adds r0, r0, r1 - ldr r1, _08089D98 - movs r2, #0x40 - bl CpuFastSet -_08089D92: - pop {r0} - bx r0 - .align 2, 0 -_08089D98: .4byte 0x06007F00 - thumb_func_end CopyDoorTilesToVram - - thumb_func_start door_build_blockdef -door_build_blockdef: @ 0x08089D9C - push {r4, r5, r6, lr} - adds r6, r0, #0 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - movs r4, #0 - adds r1, r6, #0 -_08089DA8: - ldrb r0, [r2] - lsls r0, r0, #0x1c - lsrs r3, r0, #0x10 - adds r2, #1 - adds r0, r5, r4 - orrs r3, r0 - strh r3, [r1] - adds r1, #2 - adds r4, #1 - cmp r4, #3 - ble _08089DA8 - cmp r4, #7 - bgt _08089DD6 - lsls r0, r4, #1 - adds r1, r0, r6 -_08089DC6: - ldrb r0, [r2] - lsls r3, r0, #0xc - adds r2, #1 - strh r3, [r1] - adds r1, #2 - adds r4, #1 - cmp r4, #7 - ble _08089DC6 -_08089DD6: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end door_build_blockdef - - thumb_func_start DrawCurrentDoorAnimFrame -DrawCurrentDoorAnimFrame: @ 0x08089DDC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x30 - adds r7, r1, #0 - mov sb, r2 - adds r5, r3, #0 - ldrb r0, [r0, #3] - cmp r0, #2 - bne _08089E58 - add r4, sp, #0x10 - movs r1, #0xfc - lsls r1, r1, #2 - adds r0, r4, #0 - adds r2, r5, #0 - bl door_build_blockdef - mov r6, sb - subs r6, #1 - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - bl DrawDoorMetatileAt - movs r1, #0xfd - lsls r1, r1, #2 - adds r0, r5, #4 - mov r8, r0 - adds r0, r4, #0 - mov r2, r8 - bl door_build_blockdef - adds r0, r7, #0 - mov r1, sb - adds r2, r4, #0 - bl DrawDoorMetatileAt - movs r1, #0xfe - lsls r1, r1, #2 - adds r0, r4, #0 - adds r2, r5, #0 - bl door_build_blockdef - adds r5, r7, #1 - adds r0, r5, #0 - adds r1, r6, #0 - adds r2, r4, #0 - bl DrawDoorMetatileAt - movs r1, #0xff - lsls r1, r1, #2 - adds r0, r4, #0 - mov r2, r8 - bl door_build_blockdef - adds r0, r5, #0 - mov r1, sb - adds r2, r4, #0 - bl DrawDoorMetatileAt - b _08089E86 -_08089E58: - movs r1, #0xfe - lsls r1, r1, #2 - mov r0, sp - adds r2, r5, #0 - bl door_build_blockdef - mov r1, sb - subs r1, #1 - adds r0, r7, #0 - mov r2, sp - bl DrawDoorMetatileAt - movs r1, #0xff - lsls r1, r1, #2 - adds r2, r5, #4 - mov r0, sp - bl door_build_blockdef - adds r0, r7, #0 - mov r1, sb - mov r2, sp - bl DrawDoorMetatileAt -_08089E86: - add sp, #0x30 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end DrawCurrentDoorAnimFrame - - thumb_func_start DrawClosedDoorTiles -DrawClosedDoorTiles: @ 0x08089E94 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - subs r7, r6, #1 - adds r0, r5, #0 - adds r1, r7, #0 - bl CurrentMapDrawMetatileAt - adds r0, r5, #0 - adds r1, r6, #0 - bl CurrentMapDrawMetatileAt - ldrb r0, [r4, #3] - cmp r0, #2 - bne _08089EC6 - adds r4, r5, #1 - adds r0, r4, #0 - adds r1, r7, #0 - bl CurrentMapDrawMetatileAt - adds r0, r4, #0 - adds r1, r6, #0 - bl CurrentMapDrawMetatileAt -_08089EC6: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end DrawClosedDoorTiles - - thumb_func_start DrawDoor -DrawDoor: @ 0x08089ECC - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - adds r7, r3, #0 - ldrh r1, [r5, #2] - ldr r0, _08089F08 - cmp r1, r0 - bne _08089F14 - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r7, #0 - bl DrawClosedDoorTiles - bl sub_0808A2C8 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08089F46 - ldr r0, _08089F0C - ldrh r1, [r0] - adds r1, #7 - ldr r0, _08089F10 - ldrh r2, [r0] - adds r2, #7 - adds r0, r4, #0 - bl DrawClosedDoorTiles - b _08089F46 - .align 2, 0 -_08089F08: .4byte 0x0000FFFF -_08089F0C: .4byte gUnknown_2037280 -_08089F10: .4byte gUnknown_2037282 -_08089F14: - adds r0, r4, #0 - adds r1, r5, #0 - bl CopyDoorTilesToVram - ldr r3, [r4, #8] - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r7, #0 - bl DrawCurrentDoorAnimFrame - bl sub_0808A2C8 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08089F46 - ldr r0, _08089F4C - ldrh r1, [r0] - adds r1, #7 - ldr r0, _08089F50 - ldrh r2, [r0] - adds r2, #7 - ldr r3, [r4, #8] - adds r0, r4, #0 - bl DrawCurrentDoorAnimFrame -_08089F46: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08089F4C: .4byte gUnknown_2037280 -_08089F50: .4byte gUnknown_2037282 - thumb_func_end DrawDoor - - thumb_func_start sub_08089F54 -sub_08089F54: @ 0x08089F54 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r5, r1, #0 - adds r4, r2, #0 - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08089F7A - movs r2, #8 - ldrsh r1, [r4, r2] - lsls r1, r1, #2 - adds r1, r5, r1 - movs r0, #0xc - ldrsh r2, [r4, r0] - movs r0, #0xe - ldrsh r3, [r4, r0] - adds r0, r6, #0 - bl DrawDoor -_08089F7A: - movs r2, #0xa - ldrsh r1, [r4, r2] - movs r2, #8 - ldrsh r0, [r4, r2] - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r0, [r0] - cmp r1, r0 - bne _08089FA8 - movs r0, #0 - strh r0, [r4, #0xa] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r0, [r0] - cmp r0, #0 - bne _08089FAE - movs r0, #0 - b _08089FB0 -_08089FA8: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] -_08089FAE: - movs r0, #1 -_08089FB0: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08089F54 - - thumb_func_start Task_AnimateDoor -Task_AnimateDoor: @ 0x08089FB8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r2, r4, #2 - adds r2, r2, r4 - lsls r2, r2, #3 - ldr r0, _08089FEC - adds r2, r2, r0 - ldrh r1, [r2] - lsls r1, r1, #0x10 - ldrh r0, [r2, #2] - orrs r1, r0 - ldrh r0, [r2, #4] - lsls r0, r0, #0x10 - ldrh r3, [r2, #6] - orrs r0, r3 - bl sub_08089F54 - cmp r0, #0 - bne _08089FE6 - adds r0, r4, #0 - bl DestroyTask -_08089FE6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08089FEC: .4byte gUnknown_3005B68 - thumb_func_end Task_AnimateDoor - - thumb_func_start GetLastDoorFrame -GetLastDoorFrame: @ 0x08089FF0 - push {lr} - adds r1, r0, #0 - b _08089FF8 -_08089FF6: - adds r1, #4 -_08089FF8: - ldrb r0, [r1] - cmp r0, #0 - bne _08089FF6 - subs r0, r1, #4 - pop {r1} - bx r1 - thumb_func_end GetLastDoorFrame - - thumb_func_start GetDoorGraphics -GetDoorGraphics: @ 0x0808A004 - push {lr} - adds r2, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - b _0808A01A -_0808A00E: - ldrh r0, [r2] - cmp r0, r1 - bne _0808A018 - adds r0, r2, #0 - b _0808A022 -_0808A018: - adds r2, #0xc -_0808A01A: - ldr r0, [r2, #4] - cmp r0, #0 - bne _0808A00E - movs r0, #0 -_0808A022: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetDoorGraphics - - thumb_func_start StartDoorAnimationTask -StartDoorAnimationTask: @ 0x0808A028 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - adds r5, r1, #0 - adds r7, r2, #0 - mov r8, r3 - ldr r4, _0808A074 - adds r0, r4, #0 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0808A07C - adds r0, r4, #0 - movs r1, #0x50 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r2, _0808A078 - adds r1, r1, r2 - strh r7, [r1, #0xc] - mov r2, r8 - strh r2, [r1, #0xe] - strh r5, [r1, #2] - lsrs r2, r5, #0x10 - strh r2, [r1] - strh r6, [r1, #6] - lsrs r2, r6, #0x10 - strh r2, [r1, #4] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - b _0808A080 - .align 2, 0 -_0808A074: .4byte Task_AnimateDoor -_0808A078: .4byte gUnknown_3005B68 -_0808A07C: - movs r0, #1 - rsbs r0, r0, #0 -_0808A080: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end StartDoorAnimationTask - - thumb_func_start DrawClosedDoor -DrawClosedDoor: @ 0x0808A08C - push {lr} - bl DrawClosedDoorTiles - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end DrawClosedDoor - - thumb_func_start DrawOpenedDoor -DrawOpenedDoor: @ 0x0808A098 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - adds r0, r5, #0 - adds r1, r6, #0 - bl MapGridGetMetatileIdAt - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl GetDoorGraphics - adds r4, r0, #0 - cmp r4, #0 - beq _0808A0CE - ldr r1, _0808A0D4 - adds r0, r1, #0 - bl GetLastDoorFrame - adds r1, r0, #0 - adds r0, r4, #0 - adds r2, r5, #0 - adds r3, r6, #0 - bl DrawDoor -_0808A0CE: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0808A0D4: .4byte gUnknown_846F3AC - thumb_func_end DrawOpenedDoor - - thumb_func_start StartDoorOpenAnimation -StartDoorOpenAnimation: @ 0x0808A0D8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - adds r0, r5, #0 - adds r1, r6, #0 - bl MapGridGetMetatileIdAt - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl GetDoorGraphics - adds r2, r0, #0 - adds r4, r2, #0 - cmp r2, #0 - bne _0808A102 - movs r0, #1 - rsbs r0, r0, #0 - b _0808A124 -_0808A102: - ldrb r0, [r2, #3] - cmp r0, #2 - beq _0808A114 - ldr r1, _0808A110 - adds r0, r2, #0 - b _0808A118 - .align 2, 0 -_0808A110: .4byte gUnknown_846F3AC -_0808A114: - ldr r1, _0808A12C - adds r0, r4, #0 -_0808A118: - adds r2, r5, #0 - adds r3, r6, #0 - bl StartDoorAnimationTask - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 -_0808A124: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0808A12C: .4byte gUnknown_846F3D4 - thumb_func_end StartDoorOpenAnimation - - thumb_func_start StartDoorCloseAnimation -StartDoorCloseAnimation: @ 0x0808A130 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - adds r0, r5, #0 - adds r1, r6, #0 - bl MapGridGetMetatileIdAt - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl GetDoorGraphics - cmp r0, #0 - beq _0808A164 - ldr r1, _0808A160 - adds r2, r5, #0 - adds r3, r6, #0 - bl StartDoorAnimationTask - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - b _0808A168 - .align 2, 0 -_0808A160: .4byte gUnknown_846F3C0 -_0808A164: - movs r0, #1 - rsbs r0, r0, #0 -_0808A168: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end StartDoorCloseAnimation - - thumb_func_start cur_mapdata_get_door_x2_at -cur_mapdata_get_door_x2_at: @ 0x0808A170 - push {r4, lr} - adds r4, r0, #0 - adds r0, r1, #0 - adds r1, r2, #0 - bl MapGridGetMetatileIdAt - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl GetDoorGraphics - cmp r0, #0 - beq _0808A194 - ldrb r0, [r0, #2] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - b _0808A198 -_0808A194: - movs r0, #1 - rsbs r0, r0, #0 -_0808A198: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end cur_mapdata_get_door_x2_at - - thumb_func_start unref_sub_808A83C -unref_sub_808A83C: @ 0x0808A1A0 - push {lr} - adds r3, r0, #0 - adds r2, r1, #0 - ldr r0, _0808A1B4 - adds r1, r3, #0 - bl StartDoorOpenAnimation - pop {r0} - bx r0 - .align 2, 0 -_0808A1B4: .4byte gUnknown_846F594 - thumb_func_end unref_sub_808A83C - - thumb_func_start FieldSetDoorOpened -FieldSetDoorOpened: @ 0x0808A1B8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsDoor - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808A1DA - ldr r0, _0808A1E0 - adds r1, r4, #0 - adds r2, r5, #0 - bl DrawOpenedDoor -_0808A1DA: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0808A1E0: .4byte gUnknown_846F594 - thumb_func_end FieldSetDoorOpened - - thumb_func_start FieldSetDoorClosed -FieldSetDoorClosed: @ 0x0808A1E4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsDoor - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808A206 - ldr r0, _0808A20C - adds r1, r4, #0 - adds r2, r5, #0 - bl DrawClosedDoor -_0808A206: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0808A20C: .4byte gUnknown_846F594 - thumb_func_end FieldSetDoorClosed - - thumb_func_start FieldAnimateDoorClose -FieldAnimateDoorClose: @ 0x0808A210 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsDoor - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808A23C - ldr r0, _0808A238 - adds r1, r4, #0 - adds r2, r5, #0 - bl StartDoorCloseAnimation - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - b _0808A240 - .align 2, 0 -_0808A238: .4byte gUnknown_846F594 -_0808A23C: - movs r0, #1 - rsbs r0, r0, #0 -_0808A240: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end FieldAnimateDoorClose - - thumb_func_start FieldAnimateDoorOpen -FieldAnimateDoorOpen: @ 0x0808A248 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsDoor - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808A274 - ldr r0, _0808A270 - adds r1, r4, #0 - adds r2, r5, #0 - bl StartDoorOpenAnimation - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - b _0808A278 - .align 2, 0 -_0808A270: .4byte gUnknown_846F594 -_0808A274: - movs r0, #1 - rsbs r0, r0, #0 -_0808A278: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end FieldAnimateDoorOpen - - thumb_func_start FieldIsDoorAnimationRunning -FieldIsDoorAnimationRunning: @ 0x0808A280 - push {lr} - ldr r0, _0808A290 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0808A290: .4byte Task_AnimateDoor - thumb_func_end FieldIsDoorAnimationRunning - - thumb_func_start GetDoorSoundEffect -GetDoorSoundEffect: @ 0x0808A294 - push {lr} - adds r3, r0, #0 - adds r2, r1, #0 - ldr r0, _0808A2B4 - adds r1, r3, #0 - bl cur_mapdata_get_door_x2_at - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _0808A2BC - cmp r0, #1 - bne _0808A2B8 - movs r0, #0x12 - b _0808A2C2 - .align 2, 0 -_0808A2B4: .4byte gUnknown_846F594 -_0808A2B8: - cmp r0, #2 - beq _0808A2C0 -_0808A2BC: - movs r0, #8 - b _0808A2C2 -_0808A2C0: - movs r0, #0x2f -_0808A2C2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetDoorSoundEffect - - thumb_func_start sub_0808A2C8 -sub_0808A2C8: @ 0x0808A2C8 - push {lr} - ldr r0, _0808A2E8 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808A2F4 - ldr r0, _0808A2EC - ldr r0, [r0] - ldrh r1, [r0, #4] - ldr r0, _0808A2F0 - cmp r1, r0 - bne _0808A2F4 - movs r0, #1 - b _0808A2F6 - .align 2, 0 -_0808A2E8: .4byte 0x00004002 -_0808A2EC: .4byte gUnknown_3005AEC -_0808A2F0: .4byte 0x0000101A -_0808A2F4: - movs r0, #0 -_0808A2F6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0808A2C8 - - thumb_func_start MovementType_Player -MovementType_Player: @ 0x0808A2FC - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _0808A318 - adds r0, r0, r2 - ldr r2, _0808A31C - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_0808A318: .4byte gUnknown_2036FF0 -_0808A31C: .4byte sub_0808A320 - thumb_func_end MovementType_Player - - thumb_func_start sub_0808A320 -sub_0808A320: @ 0x0808A320 - movs r0, #0 - bx lr - thumb_func_end sub_0808A320 - - thumb_func_start player_step -player_step: @ 0x0808A324 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r6, r2, #0x10 - ldr r4, _0808A394 - ldrb r1, [r4, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808A398 - adds r5, r0, r1 - adds r0, r5, #0 - bl sub_0808BBE4 - ldrb r0, [r4, #6] - cmp r0, #0 - bne _0808A38A - adds r0, r7, #0 - adds r1, r6, #0 - bl Bike_TryAcroBikeHistoryUpdate - adds r0, r5, #0 - mov r1, r8 - bl TryInterruptEventObjectSpecialAnim - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808A38A - adds r0, r5, #0 - bl npc_clear_strange_bits - bl DoPlayerAvatarTransition - bl TryDoMetatileBehaviorForcedMovement - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808A38A - mov r0, r8 - adds r1, r7, #0 - adds r2, r6, #0 - bl MovePlayerAvatarUsingKeypadInput - bl PlayerAllowForcedMovementIfMovingSameDirection -_0808A38A: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0808A394: .4byte gUnknown_2037230 -_0808A398: .4byte gUnknown_2036FF0 - thumb_func_end player_step - - thumb_func_start TryInterruptEventObjectSpecialAnim -TryInterruptEventObjectSpecialAnim: @ 0x0808A39C - push {r4, r5, r6, lr} - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - adds r6, r5, #0 - bl EventObjectIsMovementOverridden - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808A3F6 - adds r0, r4, #0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808A3F6 - adds r0, r4, #0 - bl EventObjectGetHeldMovementActionId - lsls r0, r0, #0x18 - movs r1, #0xe7 - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - cmp r0, #3 - bhi _0808A3D4 - cmp r5, #0 - bne _0808A3D8 -_0808A3D4: - movs r0, #1 - b _0808A3F8 -_0808A3D8: - ldrb r0, [r4, #0x18] - lsrs r0, r0, #4 - cmp r0, r5 - beq _0808A3E8 -_0808A3E0: - adds r0, r4, #0 - bl EventObjectClearHeldMovement - b _0808A3F6 -_0808A3E8: - adds r0, r6, #0 - bl sub_0808A98C - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808A3E0 - b _0808A3D4 -_0808A3F6: - movs r0, #0 -_0808A3F8: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end TryInterruptEventObjectSpecialAnim - - thumb_func_start npc_clear_strange_bits -npc_clear_strange_bits: @ 0x0808A400 - ldrb r2, [r0, #1] - movs r1, #0x11 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #5 - rsbs r2, r2, #0 - ands r1, r2 - adds r2, #2 - ands r1, r2 - strb r1, [r0, #1] - ldr r2, _0808A420 - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - bx lr - .align 2, 0 -_0808A420: .4byte gUnknown_2037230 - thumb_func_end npc_clear_strange_bits - - thumb_func_start MovePlayerAvatarUsingKeypadInput -MovePlayerAvatarUsingKeypadInput: @ 0x0808A424 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldr r0, _0808A448 - ldrb r1, [r0] - movs r0, #6 - ands r0, r1 - cmp r0, #0 - beq _0808A44C - adds r0, r3, #0 - adds r1, r4, #0 - bl MovePlayerOnBike - b _0808A454 - .align 2, 0 -_0808A448: .4byte gUnknown_2037230 -_0808A44C: - adds r0, r3, #0 - adds r1, r2, #0 - bl MovePlayerNotOnBike -_0808A454: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end MovePlayerAvatarUsingKeypadInput - - thumb_func_start PlayerAllowForcedMovementIfMovingSameDirection -PlayerAllowForcedMovementIfMovingSameDirection: @ 0x0808A45C - push {lr} - ldr r2, _0808A474 - ldrb r0, [r2, #2] - cmp r0, #2 - bne _0808A46E - ldrb r1, [r2] - movs r0, #0xdf - ands r0, r1 - strb r0, [r2] -_0808A46E: - pop {r0} - bx r0 - .align 2, 0 -_0808A474: .4byte gUnknown_2037230 - thumb_func_end PlayerAllowForcedMovementIfMovingSameDirection - - thumb_func_start TryDoMetatileBehaviorForcedMovement -TryDoMetatileBehaviorForcedMovement: @ 0x0808A478 - push {r4, lr} - ldr r4, _0808A498 - bl GetForcedMovementByMetatileBehavior - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r0, r0, r4 - ldr r0, [r0] - bl _call_via_r0 - thumb_func_end TryDoMetatileBehaviorForcedMovement - - thumb_func_start sub_0808A48C -sub_0808A48C: @ 0x0808A48C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0808A498: .4byte gUnknown_846F864 - thumb_func_end sub_0808A48C - - thumb_func_start GetForcedMovementByMetatileBehavior -GetForcedMovementByMetatileBehavior: @ 0x0808A49C - push {r4, r5, r6, lr} - ldr r3, _0808A4D8 - ldrb r1, [r3] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _0808A4EE - ldr r2, _0808A4DC - ldrb r1, [r3, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r5, [r0, #0x1e] - movs r4, #0 - ldr r6, _0808A4E0 -_0808A4BC: - lsls r0, r4, #2 - adds r0, r0, r6 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808A4E4 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0808A4F0 - .align 2, 0 -_0808A4D8: .4byte gUnknown_2037230 -_0808A4DC: .4byte gUnknown_2036FF0 -_0808A4E0: .4byte gUnknown_846F81C -_0808A4E4: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x11 - bls _0808A4BC -_0808A4EE: - movs r0, #0 -_0808A4F0: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetForcedMovementByMetatileBehavior - - thumb_func_start ForcedMovement_None -ForcedMovement_None: @ 0x0808A4F8 - push {r4, lr} - ldr r4, _0808A53C - ldrb r1, [r4] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0808A532 - ldrb r1, [r4, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808A540 - adds r0, r0, r1 - ldrb r2, [r0, #1] - movs r1, #3 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #8 - orrs r1, r2 - strb r1, [r0, #1] - ldrb r1, [r0, #0x18] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - bl SetEventObjectDirection - ldrb r1, [r4] - movs r0, #0xbf - ands r0, r1 - strb r0, [r4] -_0808A532: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0808A53C: .4byte gUnknown_2037230 -_0808A540: .4byte gUnknown_2036FF0 - thumb_func_end ForcedMovement_None - - thumb_func_start DoForcedMovement -DoForcedMovement: @ 0x0808A544 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sb, r1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r6, _0808A584 - adds r0, r5, #0 - bl CheckForPlayerAvatarCollision - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r7, r4, #0 - ldrb r0, [r6] - movs r1, #0x40 - mov sl, r1 - movs r1, #0 - mov r8, r1 - mov r1, sl - orrs r0, r1 - strb r0, [r6] - cmp r4, #0 - beq _0808A5A0 - bl ForcedMovement_None - cmp r4, #4 - bhi _0808A588 - movs r0, #0 - b _0808A5AC - .align 2, 0 -_0808A584: .4byte gUnknown_2037230 -_0808A588: - cmp r7, #6 - bne _0808A592 - adds r0, r5, #0 - bl sub_0808B1A4 -_0808A592: - ldrb r0, [r6] - mov r1, sl - orrs r0, r1 - strb r0, [r6] - movs r0, #2 - strb r0, [r6, #2] - b _0808A5AA -_0808A5A0: - movs r0, #2 - strb r0, [r6, #2] - adds r0, r5, #0 - bl _call_via_r9 -_0808A5AA: - movs r0, #1 -_0808A5AC: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end DoForcedMovement - - thumb_func_start DoForcedMovementInCurrentDirection -DoForcedMovementInCurrentDirection: @ 0x0808A5BC - push {lr} - adds r1, r0, #0 - ldr r0, _0808A5E8 - ldrb r2, [r0, #5] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _0808A5EC - adds r0, r0, r2 - ldrb r2, [r0, #1] - movs r3, #4 - orrs r2, r3 - strb r2, [r0, #1] - ldrb r0, [r0, #0x18] - lsrs r0, r0, #4 - bl DoForcedMovement - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0808A5E8: .4byte gUnknown_2037230 -_0808A5EC: .4byte gUnknown_2036FF0 - thumb_func_end DoForcedMovementInCurrentDirection - - thumb_func_start sub_0808A5F0 -sub_0808A5F0: @ 0x0808A5F0 - push {lr} - ldr r0, _0808A600 - bl DoForcedMovementInCurrentDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0808A600: .4byte PlayerGoSpeed2 - thumb_func_end sub_0808A5F0 - - thumb_func_start ForcedMovement_WalkSouth -ForcedMovement_WalkSouth: @ 0x0808A604 - push {lr} - ldr r1, _0808A618 - movs r0, #1 - bl DoForcedMovement - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0808A618: .4byte PlayerGoSpeed1 - thumb_func_end ForcedMovement_WalkSouth - - thumb_func_start ForcedMovement_WalkNorth -ForcedMovement_WalkNorth: @ 0x0808A61C - push {lr} - ldr r1, _0808A630 - movs r0, #2 - bl DoForcedMovement - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0808A630: .4byte PlayerGoSpeed1 - thumb_func_end ForcedMovement_WalkNorth - - thumb_func_start ForcedMovement_WalkWest -ForcedMovement_WalkWest: @ 0x0808A634 - push {lr} - ldr r1, _0808A648 - movs r0, #3 - bl DoForcedMovement - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0808A648: .4byte PlayerGoSpeed1 - thumb_func_end ForcedMovement_WalkWest - - thumb_func_start ForcedMovement_WalkEast -ForcedMovement_WalkEast: @ 0x0808A64C - push {lr} - ldr r1, _0808A660 - movs r0, #4 - bl DoForcedMovement - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0808A660: .4byte PlayerGoSpeed1 - thumb_func_end ForcedMovement_WalkEast - - thumb_func_start ForcedMovement_PushedSouthByCurrent -ForcedMovement_PushedSouthByCurrent: @ 0x0808A664 - push {lr} - ldr r1, _0808A678 - movs r0, #1 - bl DoForcedMovement - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0808A678: .4byte pokemonanimfunc_49 - thumb_func_end ForcedMovement_PushedSouthByCurrent - - thumb_func_start ForcedMovement_PushedNorthByCurrent -ForcedMovement_PushedNorthByCurrent: @ 0x0808A67C - push {lr} - ldr r1, _0808A690 - movs r0, #2 - bl DoForcedMovement - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0808A690: .4byte pokemonanimfunc_49 - thumb_func_end ForcedMovement_PushedNorthByCurrent - - thumb_func_start ForcedMovement_PushedWestByCurrent -ForcedMovement_PushedWestByCurrent: @ 0x0808A694 - push {lr} - ldr r1, _0808A6A8 - movs r0, #3 - bl DoForcedMovement - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0808A6A8: .4byte pokemonanimfunc_49 - thumb_func_end ForcedMovement_PushedWestByCurrent - - thumb_func_start ForcedMovement_PushedEastByCurrent -ForcedMovement_PushedEastByCurrent: @ 0x0808A6AC - push {lr} - ldr r1, _0808A6C0 - movs r0, #4 - bl DoForcedMovement - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0808A6C0: .4byte pokemonanimfunc_49 - thumb_func_end ForcedMovement_PushedEastByCurrent - - thumb_func_start ForcedMovement_Slide -ForcedMovement_Slide: @ 0x0808A6C4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0808A6F4 - ldrb r3, [r2, #5] - lsls r2, r3, #3 - adds r2, r2, r3 - lsls r2, r2, #2 - ldr r3, _0808A6F8 - adds r2, r2, r3 - ldrb r3, [r2, #1] - movs r4, #4 - orrs r3, r4 - movs r4, #2 - orrs r3, r4 - strb r3, [r2, #1] - bl DoForcedMovement - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0808A6F4: .4byte gUnknown_2037230 -_0808A6F8: .4byte gUnknown_2036FF0 - thumb_func_end ForcedMovement_Slide - - thumb_func_start ForcedMovement_SlideSouth -ForcedMovement_SlideSouth: @ 0x0808A6FC - push {lr} - ldr r1, _0808A710 - movs r0, #1 - bl ForcedMovement_Slide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0808A710: .4byte PlayerGoSpeed2 - thumb_func_end ForcedMovement_SlideSouth - - thumb_func_start ForcedMovement_SlideNorth -ForcedMovement_SlideNorth: @ 0x0808A714 - push {lr} - ldr r1, _0808A728 - movs r0, #2 - bl ForcedMovement_Slide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0808A728: .4byte PlayerGoSpeed2 - thumb_func_end ForcedMovement_SlideNorth - - thumb_func_start ForcedMovement_SlideWest -ForcedMovement_SlideWest: @ 0x0808A72C - push {lr} - ldr r1, _0808A740 - movs r0, #3 - bl ForcedMovement_Slide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0808A740: .4byte PlayerGoSpeed2 - thumb_func_end ForcedMovement_SlideWest - - thumb_func_start ForcedMovement_SlideEast -ForcedMovement_SlideEast: @ 0x0808A744 - push {lr} - ldr r1, _0808A758 - movs r0, #4 - bl ForcedMovement_Slide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0808A758: .4byte PlayerGoSpeed2 - thumb_func_end ForcedMovement_SlideEast - - thumb_func_start ForcedMovement_0xBB -ForcedMovement_0xBB: @ 0x0808A75C - push {lr} - bl sub_0808BE3C - movs r0, #1 - pop {r1} - bx r1 - thumb_func_end ForcedMovement_0xBB - - thumb_func_start ForcedMovement_0xBC -ForcedMovement_0xBC: @ 0x0808A768 - push {lr} - bl sub_0808BF14 - movs r0, #1 - pop {r1} - bx r1 - thumb_func_end ForcedMovement_0xBC - - thumb_func_start ForcedMovement_MuddySlope -ForcedMovement_MuddySlope: @ 0x0808A774 - push {r4, lr} - ldr r0, _0808A7B8 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808A7BC - adds r4, r0, r1 - ldrb r1, [r4, #0x18] - movs r0, #0xf0 - ands r0, r1 - cmp r0, #0x20 - bne _0808A79A - bl GetPlayerSpeed - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - bgt _0808A7C4 -_0808A79A: - movs r0, #0 - bl Bike_UpdateBikeCounterSpeed - ldrb r0, [r4, #1] - movs r1, #2 - orrs r0, r1 - strb r0, [r4, #1] - ldr r1, _0808A7C0 - movs r0, #1 - bl DoForcedMovement - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0808A7C6 - .align 2, 0 -_0808A7B8: .4byte gUnknown_2037230 -_0808A7BC: .4byte gUnknown_2036FF0 -_0808A7C0: .4byte PlayerGoSpeed2 -_0808A7C4: - movs r0, #0 -_0808A7C6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end ForcedMovement_MuddySlope - - thumb_func_start MovePlayerNotOnBike -MovePlayerNotOnBike: @ 0x0808A7CC - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - ldr r6, _0808A7F8 - adds r0, r4, #0 - bl CheckMovementInputNotOnBike - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r0, r0, r6 - ldr r2, [r0] - adds r0, r4, #0 - adds r1, r5, #0 - bl _call_via_r2 - pop {r4, r5, r6} - thumb_func_end MovePlayerNotOnBike - - thumb_func_start sub_0808A7F4 -sub_0808A7F4: @ 0x0808A7F4 - pop {r0} - bx r0 - .align 2, 0 -_0808A7F8: .4byte gUnknown_846F8B0 - thumb_func_end sub_0808A7F4 - - thumb_func_start CheckMovementInputNotOnBike -CheckMovementInputNotOnBike: @ 0x0808A7FC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _0808A814 - ldr r0, _0808A810 - strb r4, [r0, #2] - movs r0, #0 - b _0808A836 - .align 2, 0 -_0808A810: .4byte gUnknown_2037230 -_0808A814: - bl GetPlayerMovementDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - beq _0808A830 - ldr r1, _0808A82C - ldrb r0, [r1, #2] - cmp r0, #2 - beq _0808A830 - movs r0, #1 - b _0808A834 - .align 2, 0 -_0808A82C: .4byte gUnknown_2037230 -_0808A830: - ldr r1, _0808A83C - movs r0, #2 -_0808A834: - strb r0, [r1, #2] -_0808A836: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0808A83C: .4byte gUnknown_2037230 - thumb_func_end CheckMovementInputNotOnBike - - thumb_func_start PlayerNotOnBikeNotMoving -PlayerNotOnBikeNotMoving: @ 0x0808A840 - push {lr} - bl GetPlayerFacingDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_0808B174 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PlayerNotOnBikeNotMoving - - thumb_func_start PlayerNotOnBikeTurningInPlace -PlayerNotOnBikeTurningInPlace: @ 0x0808A854 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl PlayerTurnInPlace - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PlayerNotOnBikeTurningInPlace - - thumb_func_start PlayerNotOnBikeMoving -PlayerNotOnBikeMoving: @ 0x0808A864 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - adds r0, r5, #0 - bl CheckForPlayerAvatarCollision - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - beq _0808A8B2 - cmp r4, #6 - bne _0808A888 - adds r0, r5, #0 - bl sub_0808B1A4 - b _0808A91A -_0808A888: - cmp r4, #4 - bne _0808A8A0 - adds r0, r5, #0 - bl IsPlayerCollidingWithFarawayIslandMew - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808A8A0 - adds r0, r5, #0 - bl PlayerNotOnBikeCollideWithFarawayIslandMew - b _0808A91A -_0808A8A0: - subs r0, r4, #5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bls _0808A91A - adds r0, r5, #0 - bl PlayerNotOnBikeCollide - b _0808A91A -_0808A8B2: - ldr r4, _0808A8C8 - ldrb r1, [r4] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0808A8CC - adds r0, r5, #0 - bl PlayerGoSpeed2 - b _0808A91A - .align 2, 0 -_0808A8C8: .4byte gUnknown_2037230 -_0808A8CC: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _0808A914 - movs r0, #2 - ands r6, r0 - cmp r6, #0 - beq _0808A914 - movs r0, #0x8c - lsls r0, r0, #4 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808A914 - ldr r2, _0808A910 - ldrb r1, [r4, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #0x1e] - bl IsRunningDisallowed - cmp r0, #0 - bne _0808A914 - adds r0, r5, #0 - bl PlayerRun - ldrb r1, [r4] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4] - b _0808A91A - .align 2, 0 -_0808A910: .4byte gUnknown_2036FF0 -_0808A914: - adds r0, r5, #0 - bl PlayerGoSpeed1 -_0808A91A: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end PlayerNotOnBikeMoving - - thumb_func_start CheckForPlayerAvatarCollision -CheckForPlayerAvatarCollision: @ 0x0808A920 - push {r4, r5, r6, lr} - sub sp, #8 - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - ldr r0, _0808A984 - ldrb r0, [r0, #5] - lsls r4, r0, #3 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _0808A988 - adds r4, r4, r0 - ldrh r1, [r4, #0x10] - add r0, sp, #4 - strh r1, [r0] - ldrh r0, [r4, #0x12] - mov r5, sp - adds r5, #6 - strh r0, [r5] - adds r0, r6, #0 - add r1, sp, #4 - adds r2, r5, #0 - bl MoveCoords - add r0, sp, #4 - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add r1, sp, #4 - 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 CheckForEventObjectCollision - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #8 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0808A984: .4byte gUnknown_2037230 -_0808A988: .4byte gUnknown_2036FF0 - thumb_func_end CheckForPlayerAvatarCollision - - thumb_func_start sub_0808A98C -sub_0808A98C: @ 0x0808A98C - push {r4, r5, r6, lr} - sub sp, #8 - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - ldr r0, _0808A9F0 - ldrb r0, [r0, #5] - lsls r4, r0, #3 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _0808A9F4 - adds r4, r4, r0 - ldrh r1, [r4, #0x10] - add r0, sp, #4 - strh r1, [r0] - ldrh r0, [r4, #0x12] - mov r5, sp - adds r5, #6 - strh r0, [r5] - adds r0, r6, #0 - add r1, sp, #4 - adds r2, r5, #0 - bl MoveCoords - add r0, sp, #4 - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add r1, sp, #4 - 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_0808AAC8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #8 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0808A9F0: .4byte gUnknown_2037230 -_0808A9F4: .4byte gUnknown_2036FF0 - thumb_func_end sub_0808A98C - - thumb_func_start CheckForEventObjectCollision -CheckForEventObjectCollision: @ 0x0808A9F8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - ldr r4, [sp, #0x24] - lsls r1, r1, #0x10 - lsls r2, r2, #0x10 - lsls r3, r3, #0x18 - lsrs r6, r3, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov sl, r4 - lsrs r7, r1, #0x10 - asrs r5, r1, #0x10 - lsrs r1, r2, #0x10 - mov sb, r1 - asrs r4, r2, #0x10 - adds r1, r5, #0 - adds r2, r4, #0 - adds r3, r6, #0 - bl GetCollisionAtCoords - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, sp - strb r0, [r1] - cmp r0, #3 - bne _0808AA48 - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r6, #0 - bl sub_0808AB20 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808AA48 - movs r0, #5 - b _0808AAB6 -_0808AA48: - lsls r5, r7, #0x10 - asrs r0, r5, #0x10 - mov r8, r0 - mov r1, sb - lsls r4, r1, #0x10 - asrs r7, r4, #0x10 - adds r1, r7, #0 - adds r2, r6, #0 - bl ShouldJumpLedge - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808AA6C - movs r0, #0x2b - bl IncrementGameStat - movs r0, #6 - b _0808AAB6 -_0808AA6C: - mov r0, sp - ldrb r0, [r0] - cmp r0, #4 - bne _0808AA88 - mov r0, r8 - adds r1, r7, #0 - adds r2, r6, #0 - bl sub_0808AB9C - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808AA88 - movs r0, #7 - b _0808AAB6 -_0808AA88: - mov r0, sp - ldrb r0, [r0] - cmp r0, #0 - bne _0808AAB2 - asrs r5, r5, #0x10 - asrs r4, r4, #0x10 - adds r0, r6, #0 - adds r1, r5, #0 - adds r2, r4, #0 - bl CheckForRotatingGatePuzzleCollision - cmp r0, #0 - beq _0808AAA6 - movs r0, #8 - b _0808AAB6 -_0808AAA6: - adds r0, r5, #0 - adds r1, r4, #0 - mov r2, sl - mov r3, sp - bl check_acro_bike_metatile -_0808AAB2: - mov r0, sp - ldrb r0, [r0] -_0808AAB6: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CheckForEventObjectCollision - - thumb_func_start sub_0808AAC8 -sub_0808AAC8: @ 0x0808AAC8 - push {r4, r5, r6, r7, lr} - sub sp, #4 - ldr r4, [sp, #0x18] - lsls r3, r3, #0x18 - lsrs r6, r3, #0x18 - lsls r4, r4, #0x18 - lsrs r7, r4, #0x18 - lsls r1, r1, #0x10 - asrs r5, r1, #0x10 - lsls r2, r2, #0x10 - asrs r4, r2, #0x10 - adds r1, r5, #0 - adds r2, r4, #0 - adds r3, r6, #0 - bl GetCollisionAtCoords - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, sp - strb r0, [r1] - cmp r0, #0 - bne _0808AB12 - adds r0, r6, #0 - adds r1, r5, #0 - adds r2, r4, #0 - bl CheckForRotatingGatePuzzleCollisionWithoutAnimation - cmp r0, #0 - beq _0808AB06 - movs r0, #8 - b _0808AB16 -_0808AB06: - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r7, #0 - mov r3, sp - bl check_acro_bike_metatile -_0808AB12: - mov r0, sp - ldrb r0, [r0] -_0808AB16: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0808AAC8 - - thumb_func_start sub_0808AB20 -sub_0808AB20: @ 0x0808AB20 - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - ldr r0, _0808AB6C - ldrb r1, [r0] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0808AB70 - lsls r5, r3, #0x10 - asrs r0, r5, #0x10 - lsls r4, r4, #0x10 - asrs r1, r4, #0x10 - bl MapGridGetZCoordAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bne _0808AB70 - lsrs r0, r5, #0x10 - lsrs r1, r4, #0x10 - movs r2, #3 - bl GetEventObjectIdByXYZ - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x10 - bne _0808AB70 - adds r0, r6, #0 - bl sub_0808C0B4 - movs r0, #1 - b _0808AB72 - .align 2, 0 -_0808AB6C: .4byte gUnknown_2037230 -_0808AB70: - movs r0, #0 -_0808AB72: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_0808AB20 - - thumb_func_start ShouldJumpLedge -ShouldJumpLedge: @ 0x0808AB78 - push {lr} - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl GetLedgeJumpDirection - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808AB94 - movs r0, #0 - b _0808AB96 -_0808AB94: - movs r0, #1 -_0808AB96: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ShouldJumpLedge - - thumb_func_start sub_0808AB9C -sub_0808AB9C: @ 0x0808AB9C - push {r4, r5, r6, r7, lr} - sub sp, #4 - mov r3, sp - strh r0, [r3] - mov r5, sp - adds r5, #2 - strh r1, [r5] - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - ldr r0, _0808AC34 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808AC3C - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0 - ldrsh r1, [r5, r2] - bl GetEventObjectIdByXY - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0x10 - beq _0808AC3C - ldr r0, _0808AC38 - lsls r1, r6, #3 - adds r1, r1, r6 - lsls r1, r1, #2 - adds r4, r1, r0 - ldrb r0, [r4, #5] - cmp r0, #0x57 - bne _0808AC3C - ldrh r1, [r4, #0x10] - mov r0, sp - strh r1, [r0] - ldrh r0, [r4, #0x12] - strh r0, [r5] - adds r0, r7, #0 - mov r1, sp - adds r2, r5, #0 - bl MoveCoords - mov r0, sp - movs r2, #0 - ldrsh r1, [r0, r2] - movs r0, #0 - ldrsh r2, [r5, r0] - adds r0, r4, #0 - adds r3, r7, #0 - bl GetCollisionAtCoords - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808AC3C - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsNonAnimDoor - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808AC3C - adds r0, r6, #0 - adds r1, r7, #0 - bl StartStrengthAnim - movs r0, #1 - b _0808AC3E - .align 2, 0 -_0808AC34: .4byte 0x00000889 -_0808AC38: .4byte gUnknown_2036FF0 -_0808AC3C: - movs r0, #0 -_0808AC3E: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0808AB9C - - thumb_func_start check_acro_bike_metatile -check_acro_bike_metatile: @ 0x0808AC48 - push {r4, r5, r6, r7, lr} - adds r6, r3, #0 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - movs r4, #0 - ldr r7, _0808AC70 -_0808AC54: - lsls r0, r4, #2 - adds r0, r0, r7 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808AC78 - ldr r0, _0808AC74 - adds r0, r4, r0 - ldrb r0, [r0] - strb r0, [r6] - b _0808AC82 - .align 2, 0 -_0808AC70: .4byte gUnknown_846F8BC -_0808AC74: .4byte gUnknown_846F8D0 -_0808AC78: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #4 - bls _0808AC54 -_0808AC82: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end check_acro_bike_metatile - - thumb_func_start IsPlayerCollidingWithFarawayIslandMew -IsPlayerCollidingWithFarawayIslandMew: @ 0x0808AC88 - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0808AD1C - ldrb r2, [r1, #5] - lsls r1, r2, #3 - adds r1, r1, r2 - lsls r1, r1, #2 - ldr r5, _0808AD20 - adds r3, r1, r5 - ldrh r2, [r3, #0x10] - mov r1, sp - strh r2, [r1] - ldrh r1, [r3, #0x12] - mov r4, sp - adds r4, #2 - strh r1, [r4] - mov r1, sp - adds r2, r4, #0 - bl MoveCoords - movs r0, #1 - movs r1, #0x39 - movs r2, #0x1a - bl GetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r6, r4, #0 - cmp r1, #0x10 - beq _0808AD24 - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r3, r0, r5 - mov r0, sp - movs r1, #0x14 - ldrsh r2, [r3, r1] - movs r4, #0 - ldrsh r0, [r0, r4] - cmp r2, r0 - bne _0808AD24 - movs r5, #0x16 - ldrsh r1, [r3, r5] - movs r4, #0 - ldrsh r0, [r6, r4] - ldrh r4, [r3, #0x16] - cmp r1, r0 - bne _0808ACFC - movs r5, #0x10 - ldrsh r0, [r3, r5] - cmp r0, r2 - bne _0808ACFC - movs r2, #0x12 - ldrsh r0, [r3, r2] - cmp r0, r1 - beq _0808AD24 -_0808ACFC: - mov r0, sp - movs r5, #0x14 - ldrsh r1, [r3, r5] - movs r2, #0 - ldrsh r0, [r0, r2] - cmp r1, r0 - bne _0808AD24 - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - movs r4, #0 - ldrsh r1, [r6, r4] - cmp r0, r1 - bne _0808AD24 - movs r0, #1 - b _0808AD26 - .align 2, 0 -_0808AD1C: .4byte gUnknown_2037230 -_0808AD20: .4byte gUnknown_2036FF0 -_0808AD24: - movs r0, #0 -_0808AD26: - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsPlayerCollidingWithFarawayIslandMew - - thumb_func_start SetPlayerAvatarTransitionFlags -SetPlayerAvatarTransitionFlags: @ 0x0808AD30 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r2, _0808AD48 - ldrb r1, [r2, #1] - orrs r0, r1 - strb r0, [r2, #1] - bl DoPlayerAvatarTransition - pop {r0} - bx r0 - .align 2, 0 -_0808AD48: .4byte gUnknown_2037230 - thumb_func_end SetPlayerAvatarTransitionFlags - - thumb_func_start DoPlayerAvatarTransition -DoPlayerAvatarTransition: @ 0x0808AD4C - push {r4, r5, lr} - ldr r0, _0808AD94 - ldrb r4, [r0, #1] - cmp r4, #0 - beq _0808AD8C - movs r5, #0 -_0808AD58: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _0808AD7A - ldr r0, _0808AD98 - lsls r2, r5, #2 - adds r2, r2, r0 - ldr r0, _0808AD94 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808AD9C - adds r0, r0, r1 - ldr r1, [r2] - bl _call_via_r1 -_0808AD7A: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsrs r4, r4, #1 - cmp r5, #7 - bls _0808AD58 - ldr r1, _0808AD94 - movs r0, #0 - strb r0, [r1, #1] -_0808AD8C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0808AD94: .4byte gUnknown_2037230 -_0808AD98: .4byte gUnknown_846F8D8 -_0808AD9C: .4byte gUnknown_2036FF0 - thumb_func_end DoPlayerAvatarTransition - - thumb_func_start sub_0808ADA0 -sub_0808ADA0: @ 0x0808ADA0 - bx lr - .align 2, 0 - thumb_func_end sub_0808ADA0 - - thumb_func_start PlayerAvatarTransition_Normal -PlayerAvatarTransition_Normal: @ 0x0808ADA4 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0 - bl GetPlayerAvatarGraphicsIdByStateId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetGraphicsId - ldrb r1, [r4, #0x18] - lsrs r1, r1, #4 - adds r0, r4, #0 - bl EventObjectTurn - movs r0, #1 - bl SetPlayerAvatarStateMask - pop {r4} - pop {r0} - bx r0 - thumb_func_end PlayerAvatarTransition_Normal - - thumb_func_start PlayerAvatarTransition_MachBike -PlayerAvatarTransition_MachBike: @ 0x0808ADD0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - bl GetPlayerAvatarGraphicsIdByStateId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetGraphicsId - ldrb r1, [r4, #0x18] - lsrs r1, r1, #4 - adds r0, r4, #0 - bl EventObjectTurn - movs r0, #2 - bl SetPlayerAvatarStateMask - movs r0, #0 - movs r1, #0 - bl BikeClearState - pop {r4} - pop {r0} - bx r0 - thumb_func_end PlayerAvatarTransition_MachBike - - thumb_func_start PlayerAvatarTransition_AcroBike -PlayerAvatarTransition_AcroBike: @ 0x0808AE04 - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - bl GetPlayerAvatarGraphicsIdByStateId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetGraphicsId - ldrb r1, [r4, #0x18] - lsrs r1, r1, #4 - adds r0, r4, #0 - bl EventObjectTurn - movs r0, #4 - bl SetPlayerAvatarStateMask - movs r0, #0 - movs r1, #0 - bl BikeClearState - bl Bike_HandleBumpySlopeJump - pop {r4} - pop {r0} - bx r0 - thumb_func_end PlayerAvatarTransition_AcroBike - - thumb_func_start PlayerAvatarTransition_Surfing -PlayerAvatarTransition_Surfing: @ 0x0808AE3C - push {r4, lr} - adds r4, r0, #0 - movs r0, #3 - bl GetPlayerAvatarGraphicsIdByStateId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetGraphicsId - ldrb r1, [r4, #0x18] - lsrs r1, r1, #4 - adds r0, r4, #0 - bl EventObjectTurn - movs r0, #8 - bl SetPlayerAvatarStateMask - ldr r1, _0808AE90 - movs r2, #0x10 - ldrsh r0, [r4, r2] - str r0, [r1] - movs r2, #0x12 - ldrsh r0, [r4, r2] - str r0, [r1, #4] - ldr r0, _0808AE94 - ldrb r0, [r0, #5] - str r0, [r1, #8] - movs r0, #8 - bl FieldEffectStart - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strb r0, [r4, #0x1a] - movs r1, #1 - bl sub_081554E8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808AE90: .4byte gUnknown_20388A8 -_0808AE94: .4byte gUnknown_2037230 - thumb_func_end PlayerAvatarTransition_Surfing - - thumb_func_start PlayerAvatarTransition_Underwater -PlayerAvatarTransition_Underwater: @ 0x0808AE98 - push {r4, lr} - adds r4, r0, #0 - movs r0, #4 - bl GetPlayerAvatarGraphicsIdByStateId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetGraphicsId - ldrb r1, [r4, #0x18] - lsrs r1, r1, #4 - adds r0, r4, #0 - bl EventObjectTurn - movs r0, #0x10 - bl SetPlayerAvatarStateMask - ldrb r0, [r4, #4] - bl sub_0815573C - strb r0, [r4, #0x1a] - pop {r4} - pop {r0} - bx r0 - thumb_func_end PlayerAvatarTransition_Underwater - - thumb_func_start PlayerAvatarTransition_ReturnToField -PlayerAvatarTransition_ReturnToField: @ 0x0808AECC - ldr r2, _0808AED8 - ldrb r1, [r2] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r2] - bx lr - .align 2, 0 -_0808AED8: .4byte gUnknown_2037230 - thumb_func_end PlayerAvatarTransition_ReturnToField - - thumb_func_start sub_0808AEDC -sub_0808AEDC: @ 0x0808AEDC - push {r4, lr} - ldr r4, _0808AF08 - movs r0, #0 - strb r0, [r4, #3] - bl sub_0808AFA0 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808AF1A - bl sub_0808AFC4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808AF0C - bl player_is_anim_in_certain_ranges - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808AF1A - movs r0, #1 - b _0808AF18 - .align 2, 0 -_0808AF08: .4byte gUnknown_2037230 -_0808AF0C: - bl sub_0808AF7C - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808AF1A - movs r0, #2 -_0808AF18: - strb r0, [r4, #3] -_0808AF1A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0808AEDC - - thumb_func_start player_is_anim_in_certain_ranges -player_is_anim_in_certain_ranges: @ 0x0808AF20 - push {lr} - ldr r2, _0808AF6C - ldr r0, _0808AF70 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #0x1c] - cmp r1, #3 - bls _0808AF66 - adds r0, r1, #0 - subs r0, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bls _0808AF66 - adds r0, r1, #0 - subs r0, #0x19 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xf - bls _0808AF66 - adds r0, r1, #0 - subs r0, #0x64 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xb - bls _0808AF66 - adds r0, r1, #0 - subs r0, #0x7c - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bhi _0808AF74 -_0808AF66: - movs r0, #1 - b _0808AF76 - .align 2, 0 -_0808AF6C: .4byte gUnknown_2036FF0 -_0808AF70: .4byte gUnknown_2037230 -_0808AF74: - movs r0, #0 -_0808AF76: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end player_is_anim_in_certain_ranges - - thumb_func_start sub_0808AF7C -sub_0808AF7C: @ 0x0808AF7C - push {lr} - bl player_is_anim_in_certain_ranges - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808AF98 - ldr r0, _0808AF94 - ldrb r0, [r0, #2] - cmp r0, #1 - beq _0808AF98 - movs r0, #1 - b _0808AF9A - .align 2, 0 -_0808AF94: .4byte gUnknown_2037230 -_0808AF98: - movs r0, #0 -_0808AF9A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0808AF7C - - thumb_func_start sub_0808AFA0 -sub_0808AFA0: @ 0x0808AFA0 - push {lr} - ldr r0, _0808AFBC - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808AFC0 - adds r0, r0, r1 - bl EventObjectIsMovementOverridden - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0808AFBC: .4byte gUnknown_2037230 -_0808AFC0: .4byte gUnknown_2036FF0 - thumb_func_end sub_0808AFA0 - - thumb_func_start sub_0808AFC4 -sub_0808AFC4: @ 0x0808AFC4 - push {lr} - ldr r0, _0808AFE0 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808AFE4 - adds r0, r0, r1 - bl EventObjectCheckHeldMovementStatus - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0808AFE0: .4byte gUnknown_2037230 -_0808AFE4: .4byte gUnknown_2036FF0 - thumb_func_end sub_0808AFC4 - - thumb_func_start PlayerSetCopyableMovement -PlayerSetCopyableMovement: @ 0x0808AFE8 - ldr r3, _0808AFFC - ldr r1, _0808B000 - ldrb r2, [r1, #5] - lsls r1, r2, #3 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r3 - adds r1, #0x22 - strb r0, [r1] - bx lr - .align 2, 0 -_0808AFFC: .4byte gUnknown_2036FF0 -_0808B000: .4byte gUnknown_2037230 - thumb_func_end PlayerSetCopyableMovement - - thumb_func_start PlayerGetCopyableMovement -PlayerGetCopyableMovement: @ 0x0808B004 - ldr r2, _0808B018 - ldr r0, _0808B01C - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x22 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0808B018: .4byte gUnknown_2036FF0 -_0808B01C: .4byte gUnknown_2037230 - thumb_func_end PlayerGetCopyableMovement - - thumb_func_start sub_0808B020 -sub_0808B020: @ 0x0808B020 - push {lr} - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, _0808B040 - ldrb r2, [r0, #5] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _0808B044 - adds r0, r0, r2 - bl EventObjectForceSetHeldMovement - pop {r0} - bx r0 - .align 2, 0 -_0808B040: .4byte gUnknown_2037230 -_0808B044: .4byte gUnknown_2036FF0 - thumb_func_end sub_0808B020 - - thumb_func_start PlayerSetAnimId -PlayerSetAnimId: @ 0x0808B048 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - bl sub_0808AFA0 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808B076 - adds r0, r4, #0 - bl PlayerSetCopyableMovement - ldr r0, _0808B07C - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808B080 - adds r0, r0, r1 - adds r1, r5, #0 - bl EventObjectSetHeldMovement -_0808B076: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0808B07C: .4byte gUnknown_2037230 -_0808B080: .4byte gUnknown_2036FF0 - thumb_func_end PlayerSetAnimId - - thumb_func_start PlayerGoSpeed1 -PlayerGoSpeed1: @ 0x0808B084 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_08092CF8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - bl PlayerSetAnimId - pop {r0} - bx r0 - thumb_func_end PlayerGoSpeed1 - - thumb_func_start PlayerGoSpeed2 -PlayerGoSpeed2: @ 0x0808B09C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_08092D24 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - bl PlayerSetAnimId - pop {r0} - bx r0 - thumb_func_end PlayerGoSpeed2 - - thumb_func_start pokemonanimfunc_49 -pokemonanimfunc_49: @ 0x0808B0B4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_08092D50 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - bl PlayerSetAnimId - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_49 - - thumb_func_start PlayerGoSpeed4 -PlayerGoSpeed4: @ 0x0808B0CC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_08092D7C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - bl PlayerSetAnimId - pop {r0} - bx r0 - thumb_func_end PlayerGoSpeed4 - - thumb_func_start PlayerRun -PlayerRun: @ 0x0808B0E4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_08092DD4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - bl PlayerSetAnimId - pop {r0} - bx r0 - thumb_func_end PlayerRun - - thumb_func_start PlayerOnBikeCollide -PlayerOnBikeCollide: @ 0x0808B0FC - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl PlayCollisionSoundIfNotFacingWarp - adds r0, r4, #0 - bl sub_08092F08 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - bl PlayerSetAnimId - pop {r4} - pop {r0} - bx r0 - thumb_func_end PlayerOnBikeCollide - - thumb_func_start PlayerOnBikeCollideWithFarawayIslandMew -PlayerOnBikeCollideWithFarawayIslandMew: @ 0x0808B120 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_08092F08 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - bl PlayerSetAnimId - pop {r0} - bx r0 - thumb_func_end PlayerOnBikeCollideWithFarawayIslandMew - - thumb_func_start PlayerNotOnBikeCollide -PlayerNotOnBikeCollide: @ 0x0808B138 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl PlayCollisionSoundIfNotFacingWarp - adds r0, r4, #0 - bl sub_08092EDC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - bl PlayerSetAnimId - pop {r4} - pop {r0} - bx r0 - thumb_func_end PlayerNotOnBikeCollide - - thumb_func_start PlayerNotOnBikeCollideWithFarawayIslandMew -PlayerNotOnBikeCollideWithFarawayIslandMew: @ 0x0808B15C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_08092EDC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - bl PlayerSetAnimId - pop {r0} - bx r0 - thumb_func_end PlayerNotOnBikeCollideWithFarawayIslandMew - - thumb_func_start sub_0808B174 -sub_0808B174: @ 0x0808B174 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_08092CA0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - bl PlayerSetAnimId - pop {r0} - bx r0 - thumb_func_end sub_0808B174 - - thumb_func_start PlayerTurnInPlace -PlayerTurnInPlace: @ 0x0808B18C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_08092F34 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - bl PlayerSetAnimId - pop {r0} - bx r0 - thumb_func_end PlayerTurnInPlace - - thumb_func_start sub_0808B1A4 -sub_0808B1A4: @ 0x0808B1A4 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0xa - bl sub_080A306C - adds r0, r4, #0 - bl sub_08092E00 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #8 - bl PlayerSetAnimId - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0808B1A4 - - thumb_func_start sub_0808B1C8 -sub_0808B1C8: @ 0x0808B1C8 - push {r4, lr} - ldr r4, _0808B204 - ldrb r0, [r4, #3] - cmp r0, #2 - beq _0808B1D6 - cmp r0, #0 - bne _0808B1FE -_0808B1D6: - bl IsMonValidSpecies - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808B1FE - ldr r2, _0808B208 - ldrb r1, [r4, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_08092CA0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_0808B020 -_0808B1FE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808B204: .4byte gUnknown_2037230 -_0808B208: .4byte gUnknown_2036FF0 - thumb_func_end sub_0808B1C8 - - thumb_func_start PlayerIdleWheelie -PlayerIdleWheelie: @ 0x0808B20C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl HallOfFame_PrintWelcomeText - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - bl PlayerSetAnimId - pop {r0} - bx r0 - thumb_func_end PlayerIdleWheelie - - thumb_func_start PlayerStartWheelie -PlayerStartWheelie: @ 0x0808B224 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_08092FE4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - bl PlayerSetAnimId - pop {r0} - bx r0 - thumb_func_end PlayerStartWheelie - - thumb_func_start sub_0808B23C -sub_0808B23C: @ 0x0808B23C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_08093010 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - bl PlayerSetAnimId - pop {r0} - bx r0 - thumb_func_end sub_0808B23C - - thumb_func_start sub_0808B254 -sub_0808B254: @ 0x0808B254 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0x22 - bl sub_080A306C - adds r0, r4, #0 - bl sub_0809303C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - bl PlayerSetAnimId - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0808B254 - - thumb_func_start PlayerMovingHoppingWheelie -PlayerMovingHoppingWheelie: @ 0x0808B278 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0x22 - bl sub_080A306C - adds r0, r4, #0 - bl MovementType_FaceUpAndRight_callback - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - bl PlayerSetAnimId - pop {r4} - pop {r0} - bx r0 - thumb_func_end PlayerMovingHoppingWheelie - - thumb_func_start PlayerLedgeHoppingWheelie -PlayerLedgeHoppingWheelie: @ 0x0808B29C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0x22 - bl sub_080A306C - adds r0, r4, #0 - bl sub_08093094 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #8 - bl PlayerSetAnimId - pop {r4} - pop {r0} - bx r0 - thumb_func_end PlayerLedgeHoppingWheelie - - thumb_func_start PlayerAcroTurnJump -PlayerAcroTurnJump: @ 0x0808B2C0 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0x22 - bl sub_080A306C - adds r0, r4, #0 - bl sub_08092E58 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - bl PlayerSetAnimId - pop {r4} - pop {r0} - bx r0 - thumb_func_end PlayerAcroTurnJump - - thumb_func_start PlayerStandingHoppingWheelie -PlayerStandingHoppingWheelie: @ 0x0808B2E4 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #7 - bl sub_080A306C - adds r0, r4, #0 - bl sub_080930C0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - bl PlayerSetAnimId - pop {r4} - pop {r0} - bx r0 - thumb_func_end PlayerStandingHoppingWheelie - - thumb_func_start sub_0808B308 -sub_0808B308: @ 0x0808B308 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_080930EC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - bl PlayerSetAnimId - pop {r0} - bx r0 - thumb_func_end sub_0808B308 - - thumb_func_start sub_0808B320 -sub_0808B320: @ 0x0808B320 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_08093118 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - bl PlayerSetAnimId - pop {r0} - bx r0 - thumb_func_end sub_0808B320 - - thumb_func_start sub_0808B338 -sub_0808B338: @ 0x0808B338 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_08093144 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - bl PlayerSetAnimId - pop {r0} - bx r0 - thumb_func_end sub_0808B338 - - thumb_func_start PlayCollisionSoundIfNotFacingWarp -PlayCollisionSoundIfNotFacingWarp: @ 0x0808B350 - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r2, _0808B3C0 - ldr r0, _0808B3C4 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #0x1e] - ldr r2, _0808B3C8 - subs r1, r4, #1 - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808B3B8 - cmp r4, #2 - bne _0808B3B2 - mov r4, sp - adds r4, #2 - mov r0, sp - adds r1, r4, #0 - bl PlayerGetDestCoords - movs r0, #2 - mov r1, sp - adds r2, r4, #0 - bl MoveCoords - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsWarpDoor - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808B3B8 -_0808B3B2: - movs r0, #7 - bl sub_080A306C -_0808B3B8: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808B3C0: .4byte gUnknown_2036FF0 -_0808B3C4: .4byte gUnknown_2037230 -_0808B3C8: .4byte gUnknown_846F8F8 - thumb_func_end PlayCollisionSoundIfNotFacingWarp - - thumb_func_start GetXYCoordsOneStepInFrontOfPlayer -GetXYCoordsOneStepInFrontOfPlayer: @ 0x0808B3CC - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r3, _0808B408 - ldr r2, _0808B40C - ldrb r1, [r2, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r0, [r0, #0x10] - strh r0, [r4] - ldrb r1, [r2, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r0, [r0, #0x12] - strh r0, [r5] - bl GetPlayerFacingDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r4, #0 - adds r2, r5, #0 - bl MoveCoords - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0808B408: .4byte gUnknown_2036FF0 -_0808B40C: .4byte gUnknown_2037230 - thumb_func_end GetXYCoordsOneStepInFrontOfPlayer - - thumb_func_start PlayerGetDestCoords -PlayerGetDestCoords: @ 0x0808B410 - push {r4, r5, lr} - ldr r5, _0808B438 - ldr r4, _0808B43C - ldrb r3, [r4, #5] - lsls r2, r3, #3 - adds r2, r2, r3 - lsls r2, r2, #2 - adds r2, r2, r5 - ldrh r2, [r2, #0x10] - strh r2, [r0] - ldrb r2, [r4, #5] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrh r0, [r0, #0x12] - strh r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0808B438: .4byte gUnknown_2036FF0 -_0808B43C: .4byte gUnknown_2037230 - thumb_func_end PlayerGetDestCoords - - thumb_func_start player_get_pos_including_state_based_drift -player_get_pos_including_state_based_drift: @ 0x0808B440 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r0, _0808B494 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808B498 - adds r3, r0, r1 - ldrb r1, [r3] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0x40 - beq _0808B460 - b _0808B588 -_0808B460: - ldr r2, _0808B49C - ldrb r1, [r3, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0x32 - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _0808B476 - b _0808B588 -_0808B476: - ldrh r0, [r3, #0x10] - strh r0, [r4] - ldrh r0, [r3, #0x12] - strh r0, [r5] - ldrb r0, [r3, #0x1c] - subs r0, #8 - cmp r0, #0x30 - bls _0808B488 - b _0808B588 -_0808B488: - lsls r0, r0, #2 - ldr r1, _0808B4A0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808B494: .4byte gUnknown_2037230 -_0808B498: .4byte gUnknown_2036FF0 -_0808B49C: .4byte gUnknown_20205AC -_0808B4A0: .4byte _0808B4A4 -_0808B4A4: @ jump table - .4byte _0808B568 @ case 0 - .4byte _0808B56E @ case 1 - .4byte _0808B578 @ case 2 - .4byte _0808B57E @ case 3 - .4byte _0808B588 @ case 4 - .4byte _0808B588 @ case 5 - .4byte _0808B588 @ case 6 - .4byte _0808B588 @ case 7 - .4byte _0808B588 @ case 8 - .4byte _0808B588 @ case 9 - .4byte _0808B588 @ case 10 - .4byte _0808B588 @ case 11 - .4byte _0808B588 @ case 12 - .4byte _0808B588 @ case 13 - .4byte _0808B588 @ case 14 - .4byte _0808B588 @ case 15 - .4byte _0808B588 @ case 16 - .4byte _0808B588 @ case 17 - .4byte _0808B588 @ case 18 - .4byte _0808B588 @ case 19 - .4byte _0808B588 @ case 20 - .4byte _0808B588 @ case 21 - .4byte _0808B588 @ case 22 - .4byte _0808B588 @ case 23 - .4byte _0808B588 @ case 24 - .4byte _0808B588 @ case 25 - .4byte _0808B588 @ case 26 - .4byte _0808B588 @ case 27 - .4byte _0808B588 @ case 28 - .4byte _0808B588 @ case 29 - .4byte _0808B588 @ case 30 - .4byte _0808B588 @ case 31 - .4byte _0808B588 @ case 32 - .4byte _0808B588 @ case 33 - .4byte _0808B588 @ case 34 - .4byte _0808B588 @ case 35 - .4byte _0808B588 @ case 36 - .4byte _0808B588 @ case 37 - .4byte _0808B588 @ case 38 - .4byte _0808B588 @ case 39 - .4byte _0808B588 @ case 40 - .4byte _0808B588 @ case 41 - .4byte _0808B588 @ case 42 - .4byte _0808B588 @ case 43 - .4byte _0808B588 @ case 44 - .4byte _0808B568 @ case 45 - .4byte _0808B56E @ case 46 - .4byte _0808B578 @ case 47 - .4byte _0808B57E @ case 48 -_0808B568: - ldrh r0, [r5] - adds r0, #1 - b _0808B572 -_0808B56E: - ldrh r0, [r5] - subs r0, #1 -_0808B572: - strh r0, [r5] - movs r0, #1 - b _0808B594 -_0808B578: - ldrh r0, [r4] - subs r0, #1 - b _0808B582 -_0808B57E: - ldrh r0, [r4] - adds r0, #1 -_0808B582: - strh r0, [r4] - movs r0, #1 - b _0808B594 -_0808B588: - movs r1, #1 - rsbs r1, r1, #0 - adds r0, r1, #0 - strh r0, [r4] - strh r0, [r5] - movs r0, #0 -_0808B594: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end player_get_pos_including_state_based_drift - - thumb_func_start GetPlayerFacingDirection -GetPlayerFacingDirection: @ 0x0808B59C - ldr r2, _0808B5B4 - ldr r0, _0808B5B8 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bx lr - .align 2, 0 -_0808B5B4: .4byte gUnknown_2036FF0 -_0808B5B8: .4byte gUnknown_2037230 - thumb_func_end GetPlayerFacingDirection - - thumb_func_start GetPlayerMovementDirection -GetPlayerMovementDirection: @ 0x0808B5BC - ldr r2, _0808B5D0 - ldr r0, _0808B5D4 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #0x18] - lsrs r0, r0, #4 - bx lr - .align 2, 0 -_0808B5D0: .4byte gUnknown_2036FF0 -_0808B5D4: .4byte gUnknown_2037230 - thumb_func_end GetPlayerMovementDirection - - thumb_func_start PlayerGetZCoord -PlayerGetZCoord: @ 0x0808B5D8 - ldr r2, _0808B5EC - ldr r0, _0808B5F0 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #0xb] - lsrs r0, r0, #4 - bx lr - .align 2, 0 -_0808B5EC: .4byte gUnknown_2036FF0 -_0808B5F0: .4byte gUnknown_2037230 - thumb_func_end PlayerGetZCoord - - thumb_func_start sub_0808B5F4 -sub_0808B5F4: @ 0x0808B5F4 - push {lr} - adds r3, r0, #0 - adds r2, r1, #0 - ldr r0, _0808B61C - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808B620 - adds r0, r0, r1 - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r1, r3, #0 - bl MoveEventObjectToMapCoords - pop {r0} - bx r0 - .align 2, 0 -_0808B61C: .4byte gUnknown_2037230 -_0808B620: .4byte gUnknown_2036FF0 - thumb_func_end sub_0808B5F4 - - thumb_func_start TestPlayerAvatarFlags -TestPlayerAvatarFlags: @ 0x0808B624 - ldr r1, _0808B630 - ldrb r1, [r1] - ands r1, r0 - adds r0, r1, #0 - bx lr - .align 2, 0 -_0808B630: .4byte gUnknown_2037230 - thumb_func_end TestPlayerAvatarFlags - - thumb_func_start sub_0808B634 -sub_0808B634: @ 0x0808B634 - ldr r0, _0808B63C - ldrb r0, [r0] - bx lr - .align 2, 0 -_0808B63C: .4byte gUnknown_2037230 - thumb_func_end sub_0808B634 - - thumb_func_start GetPlayerAvatarObjectId -GetPlayerAvatarObjectId: @ 0x0808B640 - ldr r0, _0808B648 - ldrb r0, [r0, #4] - bx lr - .align 2, 0 -_0808B648: .4byte gUnknown_2037230 - thumb_func_end GetPlayerAvatarObjectId - - thumb_func_start sub_0808B64C -sub_0808B64C: @ 0x0808B64C - push {lr} - bl ForcedMovement_None - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0808B64C - - thumb_func_start sub_0808B658 -sub_0808B658: @ 0x0808B658 - push {r4, lr} - ldr r0, _0808B698 - ldrb r0, [r0, #5] - lsls r4, r0, #3 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _0808B69C - adds r4, r4, r0 - adds r0, r4, #0 - bl npc_clear_strange_bits - ldrb r1, [r4, #0x18] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - adds r0, r4, #0 - bl SetEventObjectDirection - movs r0, #6 - bl TestPlayerAvatarFlags - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808B690 - bl Bike_HandleBumpySlopeJump - movs r0, #0 - bl Bike_UpdateBikeCounterSpeed -_0808B690: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808B698: .4byte gUnknown_2037230 -_0808B69C: .4byte gUnknown_2036FF0 - thumb_func_end sub_0808B658 - - thumb_func_start sub_0808B6A0 -sub_0808B6A0: @ 0x0808B6A0 - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _0808B6B4 - lsrs r0, r0, #0x17 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - bx lr - .align 2, 0 -_0808B6B4: .4byte gUnknown_846F908 - thumb_func_end sub_0808B6A0 - - thumb_func_start sub_0808B6B8 -sub_0808B6B8: @ 0x0808B6B8 - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _0808B6CC - lsrs r0, r0, #0x17 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - bx lr - .align 2, 0 -_0808B6CC: .4byte gUnknown_846F918 - thumb_func_end sub_0808B6B8 - - thumb_func_start sub_0808B6D0 -sub_0808B6D0: @ 0x0808B6D0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0808B6DC - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0808B6DC: .4byte gUnknown_846F928 - thumb_func_end sub_0808B6D0 - - thumb_func_start sub_0808B6E0 -sub_0808B6E0: @ 0x0808B6E0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0808B6EC - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0808B6EC: .4byte gUnknown_846F92A - thumb_func_end sub_0808B6E0 - - thumb_func_start GetPlayerAvatarGraphicsIdByStateId -GetPlayerAvatarGraphicsIdByStateId: @ 0x0808B6F0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0808B708 - ldrb r1, [r1, #7] - bl sub_0808B6B8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0808B708: .4byte gUnknown_2037230 - thumb_func_end GetPlayerAvatarGraphicsIdByStateId - - thumb_func_start unref_GetRivalAvatarGenderByGraphicsId -unref_GetRivalAvatarGenderByGraphicsId: @ 0x0808B70C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - cmp r0, #0x70 - beq _0808B72E - cmp r0, #0x70 - bgt _0808B726 - cmp r0, #0x6d - bgt _0808B732 - cmp r0, #0x69 - blt _0808B732 - b _0808B72E -_0808B726: - cmp r1, #0x8a - beq _0808B72E - cmp r1, #0xc0 - bne _0808B732 -_0808B72E: - movs r0, #1 - b _0808B734 -_0808B732: - movs r0, #0 -_0808B734: - pop {r1} - bx r1 - thumb_func_end unref_GetRivalAvatarGenderByGraphicsId - - thumb_func_start GetPlayerAvatarGenderByGraphicsId -GetPlayerAvatarGenderByGraphicsId: @ 0x0808B738 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - cmp r0, #0x70 - beq _0808B75A - cmp r0, #0x70 - bgt _0808B752 - cmp r0, #0x5d - bgt _0808B75E - cmp r0, #0x59 - blt _0808B75E - b _0808B75A -_0808B752: - cmp r1, #0x8a - beq _0808B75A - cmp r1, #0xc0 - bne _0808B75E -_0808B75A: - movs r0, #1 - b _0808B760 -_0808B75E: - movs r0, #0 -_0808B760: - pop {r1} - bx r1 - thumb_func_end GetPlayerAvatarGenderByGraphicsId - - thumb_func_start PartyHasMonWithSurf -PartyHasMonWithSurf: @ 0x0808B764 - push {r4, r5, lr} - movs r0, #8 - bl TestPlayerAvatarFlags - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808B7A8 - movs r5, #0 - b _0808B78E -_0808B776: - adds r0, r4, #0 - movs r1, #0x39 - bl MonKnowsMove - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808B788 - movs r0, #1 - b _0808B7AA -_0808B788: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_0808B78E: - cmp r5, #5 - bhi _0808B7A8 - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _0808B7B0 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - bne _0808B776 -_0808B7A8: - movs r0, #0 -_0808B7AA: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0808B7B0: .4byte gUnknown_2024190 - thumb_func_end PartyHasMonWithSurf - - thumb_func_start IsPlayerSurfingNorth -IsPlayerSurfingNorth: @ 0x0808B7B4 - push {lr} - bl GetPlayerMovementDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _0808B7D2 - movs r0, #8 - bl TestPlayerAvatarFlags - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808B7D2 - movs r0, #1 - b _0808B7D4 -_0808B7D2: - movs r0, #0 -_0808B7D4: - pop {r1} - bx r1 - thumb_func_end IsPlayerSurfingNorth - - thumb_func_start IsPlayerFacingSurfableFishableWater -IsPlayerFacingSurfableFishableWater: @ 0x0808B7D8 - push {r4, r5, lr} - sub sp, #4 - ldr r0, _0808B850 - ldrb r0, [r0, #5] - lsls r4, r0, #3 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _0808B854 - adds r4, r4, r0 - ldrh r1, [r4, #0x10] - mov r0, sp - strh r1, [r0] - ldrh r0, [r4, #0x12] - mov r5, sp - adds r5, #2 - strh r0, [r5] - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - mov r1, sp - adds r2, r5, #0 - bl MoveCoords - mov r0, sp - movs r2, #0 - ldrsh r1, [r0, r2] - movs r0, #0 - ldrsh r2, [r5, r0] - ldrb r3, [r4, #0x18] - lsls r3, r3, #0x1c - lsrs r3, r3, #0x1c - adds r0, r4, #0 - bl GetCollisionAtCoords - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bne _0808B858 - bl PlayerGetZCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bne _0808B858 - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsSurfableFishableWater - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808B858 - movs r0, #1 - b _0808B85A - .align 2, 0 -_0808B850: .4byte gUnknown_2037230 -_0808B854: .4byte gUnknown_2036FF0 -_0808B858: - movs r0, #0 -_0808B85A: - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsPlayerFacingSurfableFishableWater - - thumb_func_start ClearPlayerAvatarInfo -ClearPlayerAvatarInfo: @ 0x0808B864 - push {lr} - ldr r0, _0808B874 - movs r1, #0 - movs r2, #0x24 - bl memset - pop {r0} - bx r0 - .align 2, 0 -_0808B874: .4byte gUnknown_2037230 - thumb_func_end ClearPlayerAvatarInfo - - thumb_func_start SetPlayerAvatarStateMask -SetPlayerAvatarStateMask: @ 0x0808B878 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _0808B88C - ldrb r2, [r3] - movs r1, #0xe0 - ands r1, r2 - orrs r0, r1 - strb r0, [r3] - bx lr - .align 2, 0 -_0808B88C: .4byte gUnknown_2037230 - thumb_func_end SetPlayerAvatarStateMask - - thumb_func_start GetPlayerAvatarStateTransitionByGraphicsId -GetPlayerAvatarStateTransitionByGraphicsId: @ 0x0808B890 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r2, #0 - ldr r3, _0808B8B8 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r4, r0, #1 - adds r6, r3, #1 -_0808B8A6: - lsls r0, r2, #1 - adds r1, r0, r4 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r5 - bne _0808B8BC - adds r0, r1, r6 - ldrb r0, [r0] - b _0808B8C8 - .align 2, 0 -_0808B8B8: .4byte gUnknown_846F92C -_0808B8BC: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #4 - bls _0808B8A6 - movs r0, #1 -_0808B8C8: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetPlayerAvatarStateTransitionByGraphicsId - - thumb_func_start GetPlayerAvatarGraphicsIdByCurrentState -GetPlayerAvatarGraphicsIdByCurrentState: @ 0x0808B8D0 - push {r4, r5, r6, lr} - ldr r0, _0808B8F8 - ldrb r5, [r0] - movs r2, #0 - ldr r3, _0808B8FC - ldrb r1, [r0, #7] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r4, r0, #1 - adds r6, r3, #1 -_0808B8E4: - lsls r0, r2, #1 - adds r1, r0, r4 - adds r0, r1, r6 - ldrb r0, [r0] - ands r0, r5 - cmp r0, #0 - beq _0808B900 - adds r0, r1, r3 - ldrb r0, [r0] - b _0808B90C - .align 2, 0 -_0808B8F8: .4byte gUnknown_2037230 -_0808B8FC: .4byte gUnknown_846F92C -_0808B900: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #4 - bls _0808B8E4 - movs r0, #0 -_0808B90C: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetPlayerAvatarGraphicsIdByCurrentState - - thumb_func_start SetPlayerAvatarExtraStateTransition -SetPlayerAvatarExtraStateTransition: @ 0x0808B914 - push {r4, r5, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r5, _0808B940 - ldrb r1, [r5, #7] - bl GetPlayerAvatarStateTransitionByGraphicsId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - orrs r0, r4 - ldrb r1, [r5, #1] - orrs r0, r1 - strb r0, [r5, #1] - bl DoPlayerAvatarTransition - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0808B940: .4byte gUnknown_2037230 - thumb_func_end SetPlayerAvatarExtraStateTransition - - thumb_func_start InitPlayerAvatar -InitPlayerAvatar: @ 0x0808B944 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #0x18 - adds r4, r0, #0 - adds r5, r1, #0 - mov sb, r2 - mov r8, r3 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - mov r0, sb - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - mov r1, r8 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - mov r1, sp - movs r0, #0xff - strb r0, [r1] - movs r0, #0 - mov r1, r8 - bl sub_0808B6B8 - mov r1, sp - movs r3, #0 - strb r0, [r1, #1] - mov r0, sp - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - subs r4, #7 - movs r6, #0 - strh r4, [r0, #4] - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - subs r5, #7 - strh r5, [r0, #6] - strb r6, [r0, #8] - movs r0, #0xb - strb r0, [r1, #9] - mov r2, sp - ldrb r1, [r2, #0xa] - subs r0, #0x1b - ands r0, r1 - strb r0, [r2, #0xa] - mov r0, sp - strb r6, [r0, #0xa] - strh r3, [r0, #0xc] - strh r3, [r0, #0xe] - str r3, [sp, #0x10] - strh r3, [r0, #0x14] - bl SpawnSpecialEventObject - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r5, #3 - adds r4, r4, r5 - lsls r4, r4, #2 - ldr r0, _0808BA04 - adds r4, r4, r0 - ldrb r0, [r4, #2] - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #2] - bl CreateWarpArrowSprite - strb r0, [r4, #0x1b] - adds r0, r4, #0 - mov r1, sb - bl EventObjectTurn - bl ClearPlayerAvatarInfo - ldr r0, _0808BA08 - strb r6, [r0, #2] - strb r6, [r0, #3] - strb r5, [r0, #5] - ldrb r1, [r4, #4] - strb r1, [r0, #4] - mov r1, r8 - strb r1, [r0, #7] - movs r0, #0x21 - bl SetPlayerAvatarStateMask - add sp, #0x18 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0808BA04: .4byte gUnknown_2036FF0 -_0808BA08: .4byte gUnknown_2037230 - thumb_func_end InitPlayerAvatar - - thumb_func_start sub_0808BA0C -sub_0808BA0C: @ 0x0808BA0C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r6, _0808BA6C - ldr r5, _0808BA70 - ldrb r0, [r5, #5] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - movs r0, #1 - ands r4, r0 - lsls r3, r4, #5 - ldrb r2, [r1, #1] - movs r0, #0x21 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #1] - movs r0, #8 - bl TestPlayerAvatarFlags - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808BA64 - ldr r2, _0808BA74 - ldrb r1, [r5, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r0, [r0, #0x1a] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - adds r1, #0x3e - lsls r3, r4, #2 - ldrb r2, [r1] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r3 - strb r0, [r1] -_0808BA64: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0808BA6C: .4byte gUnknown_2036FF0 -_0808BA70: .4byte gUnknown_2037230 -_0808BA74: .4byte gUnknown_20205AC - thumb_func_end sub_0808BA0C - - thumb_func_start sub_0808BA78 -sub_0808BA78: @ 0x0808BA78 - push {r4, r5, lr} - ldr r5, _0808BAB4 - ldrb r0, [r5, #5] - lsls r4, r0, #3 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _0808BAB8 - adds r4, r4, r0 - movs r0, #5 - bl GetPlayerAvatarGraphicsIdByStateId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetGraphicsId - ldrb r1, [r5, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808BABC - adds r0, r0, r1 - movs r1, #0 - bl StartSpriteAnim - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0808BAB4: .4byte gUnknown_2037230 -_0808BAB8: .4byte gUnknown_2036FF0 -_0808BABC: .4byte gUnknown_20205AC - thumb_func_end sub_0808BA78 - - thumb_func_start sub_0808BAC0 -sub_0808BAC0: @ 0x0808BAC0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r6, _0808BB0C - ldrb r0, [r6, #5] - lsls r4, r0, #3 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _0808BB10 - adds r4, r4, r0 - movs r0, #6 - bl GetPlayerAvatarGraphicsIdByStateId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetGraphicsId - ldrb r0, [r6, #4] - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _0808BB14 - adds r4, r4, r0 - adds r0, r5, #0 - bl sub_0809237C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0808BB0C: .4byte gUnknown_2037230 -_0808BB10: .4byte gUnknown_2036FF0 -_0808BB14: .4byte gUnknown_20205AC - thumb_func_end sub_0808BAC0 - - thumb_func_start sub_0808BB18 -sub_0808BB18: @ 0x0808BB18 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r6, _0808BB80 - ldrb r0, [r6, #5] - lsls r4, r0, #3 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _0808BB84 - adds r4, r4, r0 - movs r0, #2 - bl GetPlayerAvatarGraphicsIdByStateId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetGraphicsId - ldrb r0, [r6, #4] - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _0808BB88 - mov r8, r0 - add r4, r8 - adds r0, r5, #0 - bl sub_0809232C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim - ldrb r1, [r6, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - movs r1, #1 - bl SeekSpriteAnim - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0808BB80: .4byte gUnknown_2037230 -_0808BB84: .4byte gUnknown_2036FF0 -_0808BB88: .4byte gUnknown_20205AC - thumb_func_end sub_0808BB18 - - thumb_func_start sub_0808BB8C -sub_0808BB8C: @ 0x0808BB8C - push {r4, r5, r6, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r6, _0808BBD8 - ldrb r0, [r6, #5] - lsls r4, r0, #3 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _0808BBDC - adds r4, r4, r0 - movs r0, #7 - bl GetPlayerAvatarGraphicsIdByStateId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetGraphicsId - ldrb r0, [r6, #4] - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _0808BBE0 - adds r4, r4, r0 - adds r0, r5, #0 - bl sub_080922CC - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0808BBD8: .4byte gUnknown_2037230 -_0808BBDC: .4byte gUnknown_2036FF0 -_0808BBE0: .4byte gUnknown_20205AC - thumb_func_end sub_0808BB8C - - thumb_func_start sub_0808BBE4 -sub_0808BBE4: @ 0x0808BBE4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - adds r5, r0, #0 - ldrb r0, [r5, #0x1e] - mov r8, r0 - movs r1, #0 - mov r0, sp - strh r1, [r0] - movs r6, #1 - ldr r1, _0808BC48 - mov sb, r1 - mov r4, sp - mov r7, sp - adds r7, #2 -_0808BC06: - movs r1, #0 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - add r0, sb - ldr r1, [r0] - mov r0, r8 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808BC4C - ldrb r0, [r5, #0x18] - lsrs r0, r0, #4 - cmp r6, r0 - bne _0808BC4C - ldrh r0, [r5, #0x10] - strh r0, [r4] - ldrh r0, [r5, #0x12] - strh r0, [r7] - adds r0, r6, #0 - mov r1, sp - adds r2, r7, #0 - bl MoveCoords - ldrb r0, [r5, #0x1b] - movs r1, #0 - ldrsh r2, [r4, r1] - movs r1, #0 - ldrsh r3, [r7, r1] - adds r1, r6, #0 - bl ShowWarpArrowSprite - b _0808BC66 - .align 2, 0 -_0808BC48: .4byte gUnknown_846F940 -_0808BC4C: - ldrh r1, [r4] - adds r1, #1 - strh r1, [r4] - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #3 - ble _0808BC06 - ldrb r0, [r5, #0x1b] - bl SetSpriteInvisible -_0808BC66: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_0808BBE4 - - thumb_func_start StartStrengthAnim -StartStrengthAnim: @ 0x0808BC74 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r6, _0808BCA8 - adds r0, r6, #0 - movs r1, #0xff - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0808BCAC - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #0xa] - strh r5, [r1, #0xc] - bl _call_via_r6 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0808BCA8: .4byte Task_BumpBoulder -_0808BCAC: .4byte gUnknown_3005B60 - thumb_func_end StartStrengthAnim - - thumb_func_start Task_BumpBoulder -Task_BumpBoulder: @ 0x0808BCB0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r6, _0808BCF8 - ldr r2, _0808BCFC - ldr r5, _0808BD00 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_0808BCC4: - movs r0, #8 - ldrsh r3, [r4, r0] - lsls r3, r3, #2 - adds r3, r3, r6 - ldr r0, _0808BD04 - ldrb r0, [r0, #5] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - movs r2, #0xa - ldrsh r0, [r4, r2] - lsls r2, r0, #3 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r5 - ldr r3, [r3] - adds r0, r4, #0 - bl _call_via_r3 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808BCC4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0808BCF8: .4byte gUnknown_846F950 -_0808BCFC: .4byte gUnknown_3005B60 -_0808BD00: .4byte gUnknown_2036FF0 -_0808BD04: .4byte gUnknown_2037230 - thumb_func_end Task_BumpBoulder - - thumb_func_start sub_0808BD08 -sub_0808BD08: @ 0x0808BD08 - push {r4, lr} - adds r4, r0, #0 - bl sub_080987DC - ldr r1, _0808BD24 - movs r0, #1 - strb r0, [r1, #6] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0808BD24: .4byte gUnknown_2037230 - thumb_func_end sub_0808BD08 - - thumb_func_start do_boulder_dust -do_boulder_dust: @ 0x0808BD28 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r5, r1, #0 - adds r4, r2, #0 - adds r0, r5, #0 - bl EventObjectIsHeldMovementActive - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808BD42 - adds r0, r5, #0 - bl EventObjectClearHeldMovementIfFinished -_0808BD42: - adds r0, r4, #0 - bl EventObjectIsHeldMovementActive - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808BD54 - adds r0, r4, #0 - bl EventObjectClearHeldMovementIfFinished -_0808BD54: - adds r0, r5, #0 - bl EventObjectIsMovementOverridden - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808BDD6 - adds r0, r4, #0 - bl EventObjectIsMovementOverridden - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808BDD6 - adds r0, r5, #0 - bl EventObjectClearHeldMovementIfFinished - adds r0, r4, #0 - bl EventObjectClearHeldMovementIfFinished - ldrb r0, [r6, #0xc] - bl sub_08092F08 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl EventObjectSetHeldMovement - ldrb r0, [r6, #0xc] - bl sub_08092CCC - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetHeldMovement - ldr r2, _0808BDE0 - movs r1, #0x10 - ldrsh r0, [r4, r1] - str r0, [r2] - movs r1, #0x12 - ldrsh r0, [r4, r1] - str r0, [r2, #4] - ldrb r0, [r4, #0xb] - lsrs r0, r0, #4 - str r0, [r2, #8] - ldr r3, _0808BDE4 - ldrb r1, [r4, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r0, [r0, #5] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1e - str r0, [r2, #0xc] - movs r0, #0xa - bl FieldEffectStart - movs r0, #0xd6 - bl sub_080A306C - ldrh r0, [r6, #8] - adds r0, #1 - strh r0, [r6, #8] -_0808BDD6: - movs r0, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0808BDE0: .4byte gUnknown_20388A8 -_0808BDE4: .4byte gUnknown_20205AC - thumb_func_end do_boulder_dust - - thumb_func_start sub_0808BDE8 -sub_0808BDE8: @ 0x0808BDE8 - push {r4, r5, lr} - adds r4, r1, #0 - adds r5, r2, #0 - adds r0, r4, #0 - bl EventObjectCheckHeldMovementStatus - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808BE2A - adds r0, r5, #0 - bl EventObjectCheckHeldMovementStatus - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808BE2A - adds r0, r4, #0 - bl EventObjectClearHeldMovementIfFinished - adds r0, r5, #0 - bl EventObjectClearHeldMovementIfFinished - ldr r1, _0808BE34 - movs r0, #0 - strb r0, [r1, #6] - bl sub_080987E8 - ldr r0, _0808BE38 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_0808BE2A: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0808BE34: .4byte gUnknown_2037230 -_0808BE38: .4byte Task_BumpBoulder - thumb_func_end sub_0808BDE8 - - thumb_func_start sub_0808BE3C -sub_0808BE3C: @ 0x0808BE3C - push {r4, lr} - ldr r4, _0808BE58 - adds r0, r4, #0 - movs r1, #0xff - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808BE58: .4byte sub_0808BE5C - thumb_func_end sub_0808BE3C - - thumb_func_start sub_0808BE5C -sub_0808BE5C: @ 0x0808BE5C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _0808BE98 - ldr r2, _0808BE9C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_0808BE6E: - movs r0, #8 - ldrsh r2, [r4, r0] - lsls r2, r2, #2 - adds r2, r2, r5 - ldr r0, _0808BEA0 - ldrb r0, [r0, #5] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _0808BEA4 - adds r1, r1, r0 - ldr r2, [r2] - adds r0, r4, #0 - bl _call_via_r2 - thumb_func_end sub_0808BE5C - - thumb_func_start sub_0808BE8C -sub_0808BE8C: @ 0x0808BE8C - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808BE6E - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0808BE98: .4byte gUnknown_846F95C -_0808BE9C: .4byte gUnknown_3005B60 -_0808BEA0: .4byte gUnknown_2037230 -_0808BEA4: .4byte gUnknown_2036FF0 - thumb_func_end sub_0808BE8C - - thumb_func_start PlayerAvatar_DoSecretBaseMatJump -PlayerAvatar_DoSecretBaseMatJump: @ 0x0808BEA8 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r4, r1, #0 - ldr r5, _0808BF0C - movs r0, #1 - strb r0, [r5, #6] - adds r0, r4, #0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808BF04 - movs r0, #0xa - bl sub_080A306C - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_08092E2C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetHeldMovement - ldrh r0, [r6, #0xa] - adds r0, #1 - strh r0, [r6, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _0808BF04 - movs r0, #0 - strb r0, [r5, #6] - ldrb r0, [r5, #1] - movs r1, #0x20 - orrs r0, r1 - strb r0, [r5, #1] - ldr r0, _0808BF10 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_0808BF04: - movs r0, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0808BF0C: .4byte gUnknown_2037230 -_0808BF10: .4byte sub_0808BE5C - thumb_func_end PlayerAvatar_DoSecretBaseMatJump - - thumb_func_start sub_0808BF14 -sub_0808BF14: @ 0x0808BF14 - push {r4, lr} - ldr r4, _0808BF30 - adds r0, r4, #0 - movs r1, #0xff - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808BF30: .4byte sub_0808BF34 - thumb_func_end sub_0808BF14 - - thumb_func_start sub_0808BF34 -sub_0808BF34: @ 0x0808BF34 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _0808BF70 - ldr r2, _0808BF74 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_0808BF46: - movs r0, #8 - ldrsh r2, [r4, r0] - lsls r2, r2, #2 - adds r2, r2, r5 - ldr r0, _0808BF78 - ldrb r0, [r0, #5] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _0808BF7C - adds r1, r1, r0 - ldr r2, [r2] - adds r0, r4, #0 - bl _call_via_r2 - thumb_func_end sub_0808BF34 - - thumb_func_start sub_0808BF64 -sub_0808BF64: @ 0x0808BF64 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808BF46 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0808BF70: .4byte gUnknown_846F960 -_0808BF74: .4byte gUnknown_3005B60 -_0808BF78: .4byte gUnknown_2037230 -_0808BF7C: .4byte gUnknown_2036FF0 - thumb_func_end sub_0808BF64 - - thumb_func_start PlayerAvatar_SecretBaseMatSpinStep0 -PlayerAvatar_SecretBaseMatSpinStep0: @ 0x0808BF80 - push {lr} - ldrh r2, [r0, #8] - adds r2, #1 - strh r2, [r0, #8] - ldrb r1, [r1, #0x18] - lsrs r1, r1, #4 - strh r1, [r0, #0xa] - ldr r1, _0808BFA4 - movs r0, #1 - strb r0, [r1, #6] - bl sub_080987DC - movs r0, #0x2d - bl sub_080A306C - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 -_0808BFA4: .4byte gUnknown_2037230 - thumb_func_end PlayerAvatar_SecretBaseMatSpinStep0 - - thumb_func_start PlayerAvatar_SecretBaseMatSpinStep1 -PlayerAvatar_SecretBaseMatSpinStep1: @ 0x0808BFA8 - push {r4, r5, r6, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _0808C01C - mov r0, sp - movs r2, #4 - bl memcpy - adds r0, r5, #0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808C010 - ldrb r0, [r5, #0x18] - lsrs r0, r0, #4 - subs r0, #1 - add r0, sp - ldrb r6, [r0] - adds r0, r6, #0 - bl sub_08092CA0 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl EventObjectSetHeldMovement - ldrb r0, [r4, #0xa] - cmp r6, r0 - bne _0808BFEE - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] -_0808BFEE: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r1, #0xc - ldrsh r0, [r4, r1] - cmp r0, #3 - ble _0808C010 - ldrb r0, [r4, #0xa] - bl GetOppositeDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r6, r0 - bne _0808C010 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_0808C010: - movs r0, #0 - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0808C01C: .4byte gUnknown_846F970 - thumb_func_end PlayerAvatar_SecretBaseMatSpinStep1 - - thumb_func_start PlayerAvatar_SecretBaseMatSpinStep2 -PlayerAvatar_SecretBaseMatSpinStep2: @ 0x0808C020 - push {r4, r5, lr} - sub sp, #8 - adds r5, r0, #0 - adds r4, r1, #0 - ldr r1, _0808C05C - mov r0, sp - movs r2, #5 - bl memcpy - adds r0, r4, #0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808C050 - movs r1, #0xc - ldrsh r0, [r5, r1] - add r0, sp - ldrb r1, [r0] - adds r0, r4, #0 - bl EventObjectSetHeldMovement - movs r0, #1 - strh r0, [r5, #8] -_0808C050: - movs r0, #0 - add sp, #8 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0808C05C: .4byte gUnknown_846F974 - thumb_func_end PlayerAvatar_SecretBaseMatSpinStep2 - - thumb_func_start PlayerAvatar_SecretBaseMatSpinStep3 -PlayerAvatar_SecretBaseMatSpinStep3: @ 0x0808C060 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r0, r5, #0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808C0A4 - ldrb r0, [r4, #0xa] - bl GetOppositeDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_08092CCC - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl EventObjectSetHeldMovement - bl sub_080987E8 - ldr r1, _0808C0AC - movs r0, #0 - strb r0, [r1, #6] - ldr r0, _0808C0B0 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_0808C0A4: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0808C0AC: .4byte gUnknown_2037230 -_0808C0B0: .4byte sub_0808BF34 - thumb_func_end PlayerAvatar_SecretBaseMatSpinStep3 - - thumb_func_start sub_0808C0B4 -sub_0808C0B4: @ 0x0808C0B4 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_080987DC - bl Overworld_ClearSavedMusic - bl Overworld_ChangeMusicToDefault - ldr r2, _0808C100 - ldrb r1, [r2] - movs r0, #0xf7 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - movs r0, #1 - strb r0, [r2, #6] - ldr r5, _0808C104 - adds r0, r5, #0 - movs r1, #0xff - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0808C108 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #8] - bl _call_via_r5 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0808C100: .4byte gUnknown_2037230 -_0808C104: .4byte taskFF_0805D1D4 -_0808C108: .4byte gUnknown_3005B60 - thumb_func_end sub_0808C0B4 - - thumb_func_start taskFF_0805D1D4 -taskFF_0805D1D4: @ 0x0808C10C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _0808C168 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808C16C - adds r5, r0, r1 - adds r0, r5, #0 - bl EventObjectIsMovementOverridden - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808C138 - adds r0, r5, #0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808C160 -_0808C138: - ldrb r0, [r5, #0x1a] - movs r1, #2 - bl sub_081554E8 - ldr r0, _0808C170 - lsls r4, r6, #2 - adds r4, r4, r6 - lsls r4, r4, #3 - adds r4, r4, r0 - ldrb r0, [r4, #8] - bl sub_08092EB0 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl EventObjectSetHeldMovement - ldr r0, _0808C174 - str r0, [r4] -_0808C160: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0808C168: .4byte gUnknown_2037230 -_0808C16C: .4byte gUnknown_2036FF0 -_0808C170: .4byte gUnknown_3005B60 -_0808C174: .4byte sub_0808C178 - thumb_func_end taskFF_0805D1D4 - - thumb_func_start sub_0808C178 -sub_0808C178: @ 0x0808C178 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r6, _0808C1E4 - ldrb r1, [r6, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808C1E8 - adds r4, r0, r1 - adds r0, r4, #0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808C1DE - movs r0, #0 - bl GetPlayerAvatarGraphicsIdByStateId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetGraphicsId - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_08092CA0 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetHeldMovement - movs r0, #0 - strb r0, [r6, #6] - bl sub_080987E8 - ldrb r1, [r4, #0x1a] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808C1EC - adds r0, r0, r1 - bl DestroySprite - adds r0, r5, #0 - bl DestroyTask -_0808C1DE: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0808C1E4: .4byte gUnknown_2037230 -_0808C1E8: .4byte gUnknown_2036FF0 -_0808C1EC: .4byte gUnknown_20205AC - thumb_func_end sub_0808C178 - - thumb_func_start StartFishing -StartFishing: @ 0x0808C1F0 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r5, _0808C21C - adds r0, r5, #0 - movs r1, #0xff - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0808C220 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #0x26] - bl _call_via_r5 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0808C21C: .4byte sub_0808C224 -_0808C220: .4byte gUnknown_3005B60 - thumb_func_end StartFishing - - thumb_func_start sub_0808C224 -sub_0808C224: @ 0x0808C224 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _0808C254 - ldr r2, _0808C258 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_0808C236: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808C236 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0808C254: .4byte gUnknown_846F97C -_0808C258: .4byte gUnknown_3005B60 - thumb_func_end sub_0808C224 - - thumb_func_start sub_0808C25C -sub_0808C25C: @ 0x0808C25C - push {r4, lr} - adds r4, r0, #0 - bl sub_080987DC - ldr r1, _0808C278 - movs r0, #1 - strb r0, [r1, #6] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0808C278: .4byte gUnknown_2037230 - thumb_func_end sub_0808C25C - - thumb_func_start Fishing2 -Fishing2: @ 0x0808C27C - push {r4, r5, r6, lr} - sub sp, #0x10 - adds r5, r0, #0 - ldr r1, _0808C304 - mov r0, sp - movs r2, #6 - bl memcpy - add r4, sp, #8 - ldr r1, _0808C308 - adds r0, r4, #0 - movs r2, #6 - bl memcpy - movs r0, #0 - strh r0, [r5, #0x20] - bl Random - movs r2, #0x26 - ldrsh r1, [r5, r2] - lsls r1, r1, #1 - mov r2, sp - adds r6, r2, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r4, r4, r1 - movs r2, #0 - ldrsh r1, [r4, r2] - bl __modsi3 - ldrh r1, [r6] - adds r1, r1, r0 - strh r1, [r5, #0x22] - ldr r3, _0808C30C - ldr r2, _0808C310 - ldrb r1, [r2, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r0, [r0, #5] - strh r0, [r5, #0x24] - ldrb r0, [r2, #5] - lsls r4, r0, #3 - adds r4, r4, r0 - lsls r4, r4, #2 - adds r4, r4, r3 - adds r0, r4, #0 - bl EventObjectClearHeldMovementIfActive - ldrb r0, [r4, #1] - movs r1, #8 - orrs r0, r1 - strb r0, [r4, #1] - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_0808BAC0 - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - movs r0, #0 - add sp, #0x10 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0808C304: .4byte gUnknown_846F9BC -_0808C308: .4byte gUnknown_846F9C2 -_0808C30C: .4byte gUnknown_2036FF0 -_0808C310: .4byte gUnknown_2037230 - thumb_func_end Fishing2 - - thumb_func_start Fishing3 -Fishing3: @ 0x0808C314 - push {r4, lr} - adds r4, r0, #0 - bl AlignFishingAnimationFrames - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3b - ble _0808C330 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_0808C330: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end Fishing3 - - thumb_func_start Fishing4 -Fishing4: @ 0x0808C338 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0 - movs r1, #1 - bl sub_08197650 - ldrh r0, [r4, #8] - adds r0, #1 - movs r1, #0 - strh r0, [r4, #8] - strh r1, [r4, #0xa] - strh r1, [r4, #0xc] - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __umodsi3 - adds r1, r0, #0 - adds r0, r1, #1 - strh r0, [r4, #0xe] - movs r2, #0x20 - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _0808C370 - adds r0, r1, #4 - strh r0, [r4, #0xe] -_0808C370: - movs r1, #0xe - ldrsh r0, [r4, r1] - cmp r0, #9 - ble _0808C37C - movs r0, #0xa - strh r0, [r4, #0xe] -_0808C37C: - movs r0, #1 - pop {r4} - pop {r1} - bx r1 - thumb_func_end Fishing4 - - thumb_func_start sub_0808C384 -sub_0808C384: @ 0x0808C384 - push {r4, lr} - sub sp, #0x10 - adds r4, r0, #0 - ldr r1, _0808C3C0 - add r0, sp, #0xc - movs r2, #2 - bl memcpy - bl AlignFishingAnimationFrames - ldrh r0, [r4, #0xa] - adds r1, r0, #1 - strh r1, [r4, #0xa] - ldr r0, _0808C3C4 - ldrh r0, [r0, #0x2e] - movs r2, #1 - ands r2, r0 - cmp r2, #0 - beq _0808C3C8 - movs r0, #0xb - strh r0, [r4, #8] - movs r1, #0x20 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0808C3BA - movs r0, #0xc - strh r0, [r4, #8] -_0808C3BA: - movs r0, #1 - b _0808C41A - .align 2, 0 -_0808C3C0: .4byte gUnknown_846F9C8 -_0808C3C4: .4byte gUnknown_3002360 -_0808C3C8: - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x13 - ble _0808C418 - strh r2, [r4, #0xa] - movs r3, #0xc - ldrsh r1, [r4, r3] - movs r3, #0xe - ldrsh r0, [r4, r3] - cmp r1, r0 - blt _0808C3F8 - ldrh r0, [r4, #8] - adds r1, r0, #1 - strh r1, [r4, #8] - ldrh r2, [r4, #0x20] - movs r3, #0x20 - ldrsh r0, [r4, r3] - cmp r0, #0 - beq _0808C3F2 - adds r0, r1, #1 - strh r0, [r4, #8] -_0808C3F2: - adds r0, r2, #1 - strh r0, [r4, #0x20] - b _0808C418 -_0808C3F8: - movs r0, #0xc - ldrsh r3, [r4, r0] - lsls r3, r3, #0x1b - lsrs r3, r3, #0x18 - movs r0, #2 - str r0, [sp] - str r2, [sp, #4] - str r2, [sp, #8] - movs r0, #0 - movs r1, #1 - add r2, sp, #0xc - bl AddTextPrinterParameterized - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] -_0808C418: - movs r0, #0 -_0808C41A: - add sp, #0x10 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0808C384 - - thumb_func_start Fishing6 -Fishing6: @ 0x0808C424 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl AlignFishingAnimationFrames - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - movs r6, #0 - bl DoesCurrentMapHaveFishingMons - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808C444 - movs r0, #0xb - strh r0, [r5, #8] - b _0808C4C4 -_0808C444: - ldr r4, _0808C494 - adds r0, r4, #0 - movs r1, #6 - bl GetMonData - cmp r0, #0 - bne _0808C47C - adds r0, r4, #0 - bl GetMonAbility - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x15 - beq _0808C464 - cmp r0, #0x3c - bne _0808C47C -_0808C464: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xe - bls _0808C47C - movs r6, #1 -_0808C47C: - cmp r6, #0 - bne _0808C49A - bl Random - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0808C498 - movs r0, #0xb - strh r0, [r5, #8] - b _0808C49A - .align 2, 0 -_0808C494: .4byte gUnknown_2024190 -_0808C498: - movs r6, #1 -_0808C49A: - cmp r6, #1 - bne _0808C4C4 - ldr r0, _0808C4CC - ldrb r0, [r0, #4] - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _0808C4D0 - adds r4, r4, r0 - bl GetPlayerFacingDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_0809239C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim -_0808C4C4: - movs r0, #1 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0808C4CC: .4byte gUnknown_2037230 -_0808C4D0: .4byte gUnknown_20205AC - thumb_func_end Fishing6 - - thumb_func_start sub_0808C4D4 -sub_0808C4D4: @ 0x0808C4D4 - push {r4, r5, lr} - sub sp, #0x18 - adds r5, r0, #0 - ldr r1, _0808C510 - add r0, sp, #0xc - movs r2, #0xc - bl memcpy - bl AlignFishingAnimationFrames - movs r0, #0x12 - str r0, [sp] - movs r4, #0 - str r4, [sp, #4] - str r4, [sp, #8] - movs r0, #0 - movs r1, #1 - add r2, sp, #0xc - movs r3, #0 - bl AddTextPrinterParameterized - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - strh r4, [r5, #0xa] - movs r0, #0 - add sp, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0808C510: .4byte gUnknown_846F9CA - thumb_func_end sub_0808C4D4 - - thumb_func_start Fishing8 -Fishing8: @ 0x0808C514 - push {r4, lr} - sub sp, #8 - adds r4, r0, #0 - ldr r1, _0808C548 - mov r0, sp - movs r2, #6 - bl memcpy - bl AlignFishingAnimationFrames - ldrh r1, [r4, #0xa] - adds r1, #1 - strh r1, [r4, #0xa] - movs r2, #0x26 - ldrsh r0, [r4, r2] - lsls r0, r0, #1 - add r0, sp - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r2, #0 - ldrsh r0, [r0, r2] - cmp r1, r0 - blt _0808C54C - movs r0, #0xc - b _0808C55C - .align 2, 0 -_0808C548: .4byte gUnknown_846F9D6 -_0808C54C: - ldr r0, _0808C568 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0808C55E - ldrh r0, [r4, #8] - adds r0, #1 -_0808C55C: - strh r0, [r4, #8] -_0808C55E: - movs r0, #0 - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0808C568: .4byte gUnknown_3002360 - thumb_func_end Fishing8 - - thumb_func_start Fishing9 -Fishing9: @ 0x0808C56C - push {r4, lr} - sub sp, #0xc - adds r4, r0, #0 - ldr r1, _0808C5D0 - mov r0, sp - movs r2, #0xc - bl memcpy - bl AlignFishingAnimationFrames - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0x20 - ldrsh r1, [r4, r0] - movs r2, #0x22 - ldrsh r0, [r4, r2] - cmp r1, r0 - blt _0808C5C2 - cmp r1, #1 - bgt _0808C5C6 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - movs r3, #0x20 - ldrsh r2, [r4, r3] - lsls r2, r2, #1 - movs r3, #0x26 - ldrsh r1, [r4, r3] - lsls r1, r1, #2 - adds r2, r2, r1 - mov r3, sp - adds r1, r3, r2 - movs r2, #0 - ldrsh r1, [r1, r2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r1, r0 - ble _0808C5C6 -_0808C5C2: - movs r0, #3 - strh r0, [r4, #8] -_0808C5C6: - movs r0, #0 - add sp, #0xc - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0808C5D0: .4byte gUnknown_846F9DC - thumb_func_end Fishing9 - - thumb_func_start Fishing10 -Fishing10: @ 0x0808C5D4 - push {r4, r5, lr} - sub sp, #0x10 - adds r4, r0, #0 - bl AlignFishingAnimationFrames - movs r0, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r2, _0808C614 - movs r5, #0 - str r5, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - movs r0, #3 - str r0, [sp, #0xc] - movs r0, #0 - movs r1, #1 - movs r3, #1 - bl AddTextPrinterParameterized2 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - strh r5, [r4, #0xa] - movs r0, #0 - add sp, #0x10 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0808C614: .4byte gUnknown_846F9E8 - thumb_func_end Fishing10 - - thumb_func_start Fishing11 -Fishing11: @ 0x0808C618 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - movs r1, #0xa - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _0808C62C - bl AlignFishingAnimationFrames -_0808C62C: - bl sub_08004630 - movs r1, #0xa - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _0808C6C8 - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0 - bne _0808C6C0 - ldr r7, _0808C6B4 - ldrb r0, [r7, #5] - lsls r4, r0, #3 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _0808C6B8 - mov r8, r0 - add r4, r8 - ldrh r1, [r5, #0x24] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetGraphicsId - ldrb r1, [r4, #0x18] - lsrs r1, r1, #4 - adds r0, r4, #0 - bl EventObjectTurn - ldrb r1, [r7] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0808C68A - ldrb r0, [r7, #5] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - add r1, r8 - ldrb r0, [r1, #0x1a] - movs r1, #0 - movs r2, #0 - bl sub_08155540 -_0808C68A: - ldr r2, _0808C6BC - ldrb r1, [r7, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r6, [r0, #0x24] - ldrb r1, [r7, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r6, [r0, #0x26] - movs r0, #0 - movs r1, #1 - bl sub_08197028 - ldrh r0, [r5, #0xa] - adds r0, #1 - strh r0, [r5, #0xa] - b _0808C6F0 - .align 2, 0 -_0808C6B4: .4byte gUnknown_2037230 -_0808C6B8: .4byte gUnknown_2036FF0 -_0808C6BC: .4byte gUnknown_20205AC -_0808C6C0: - movs r1, #0xa - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _0808C6F0 -_0808C6C8: - ldr r1, _0808C6FC - movs r0, #0 - strb r0, [r1, #6] - bl sub_080987E8 - ldrh r0, [r5, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl FishingWildEncounter - movs r0, #1 - bl sub_080EE470 - ldr r0, _0808C700 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_0808C6F0: - movs r0, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0808C6FC: .4byte gUnknown_2037230 -_0808C700: .4byte sub_0808C224 - thumb_func_end Fishing11 - - thumb_func_start Fishing12 -Fishing12: @ 0x0808C704 - push {r4, r5, lr} - sub sp, #0x10 - adds r5, r0, #0 - bl AlignFishingAnimationFrames - ldr r0, _0808C768 - ldrb r0, [r0, #4] - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _0808C76C - adds r4, r4, r0 - bl GetPlayerFacingDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_0809238C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim - movs r0, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r2, _0808C770 - movs r0, #0 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - movs r0, #3 - str r0, [sp, #0xc] - movs r0, #0 - movs r1, #1 - movs r3, #1 - bl AddTextPrinterParameterized2 - movs r0, #0xd - strh r0, [r5, #8] - movs r0, #1 - add sp, #0x10 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0808C768: .4byte gUnknown_2037230 -_0808C76C: .4byte gUnknown_20205AC -_0808C770: .4byte gUnknown_846F9F7 - thumb_func_end Fishing12 - - thumb_func_start Fishing13 -Fishing13: @ 0x0808C774 - push {r4, r5, lr} - sub sp, #0x10 - adds r5, r0, #0 - bl AlignFishingAnimationFrames - ldr r0, _0808C7D8 - ldrb r0, [r0, #4] - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _0808C7DC - adds r4, r4, r0 - bl GetPlayerFacingDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_0809238C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim - movs r0, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r2, _0808C7E0 - movs r0, #0 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - movs r0, #3 - str r0, [sp, #0xc] - movs r0, #0 - movs r1, #1 - movs r3, #1 - bl AddTextPrinterParameterized2 - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - movs r0, #1 - add sp, #0x10 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0808C7D8: .4byte gUnknown_2037230 -_0808C7DC: .4byte gUnknown_20205AC -_0808C7E0: .4byte gUnknown_846FA03 - thumb_func_end Fishing13 - - thumb_func_start Fishing14 -Fishing14: @ 0x0808C7E4 - push {r4, lr} - adds r4, r0, #0 - bl AlignFishingAnimationFrames - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end Fishing14 - - thumb_func_start Fishing15 -Fishing15: @ 0x0808C7FC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - bl AlignFishingAnimationFrames - ldr r7, _0808C890 - ldr r5, _0808C894 - ldrb r0, [r5, #4] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r7 - adds r1, #0x3f - ldrb r0, [r1] - lsls r0, r0, #0x1b - cmp r0, #0 - bge _0808C882 - ldrb r0, [r5, #5] - lsls r4, r0, #3 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _0808C898 - mov r8, r0 - add r4, r8 - ldrh r1, [r6, #0x24] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetGraphicsId - ldrb r1, [r4, #0x18] - lsrs r1, r1, #4 - adds r0, r4, #0 - bl EventObjectTurn - ldrb r1, [r5] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0808C862 - ldrb r0, [r5, #5] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - add r1, r8 - ldrb r0, [r1, #0x1a] - movs r1, #0 - movs r2, #0 - bl sub_08155540 -_0808C862: - ldrb r1, [r5, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - movs r2, #0 - strh r2, [r0, #0x24] - ldrb r1, [r5, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r2, [r0, #0x26] - ldrh r0, [r6, #8] - adds r0, #1 - strh r0, [r6, #8] -_0808C882: - movs r0, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0808C890: .4byte gUnknown_20205AC -_0808C894: .4byte gUnknown_2037230 -_0808C898: .4byte gUnknown_2036FF0 - thumb_func_end Fishing15 - - thumb_func_start Fishing16 -Fishing16: @ 0x0808C89C - push {lr} - bl sub_08004630 - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - bne _0808C8D8 - ldr r0, _0808C8E0 - strb r1, [r0, #6] - bl sub_080987E8 - bl UnfreezeEventObjects - movs r0, #0 - movs r1, #1 - bl sub_08197028 - movs r0, #0 - bl sub_080EE470 - ldr r0, _0808C8E4 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_0808C8D8: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0808C8E0: .4byte gUnknown_2037230 -_0808C8E4: .4byte sub_0808C224 - thumb_func_end Fishing16 - - thumb_func_start AlignFishingAnimationFrames -AlignFishingAnimationFrames: @ 0x0808C8E8 - push {r4, r5, r6, r7, lr} - ldr r0, _0808C9D4 - ldrb r1, [r0, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808C9D8 - adds r4, r0, r1 - adds r0, r4, #0 - bl AnimateSprite - movs r0, #0 - strh r0, [r4, #0x24] - strh r0, [r4, #0x26] - adds r0, r4, #0 - adds r0, #0x2b - ldrb r5, [r0] - movs r0, #0x2a - adds r0, r0, r4 - mov ip, r0 - ldrb r0, [r0] - ldr r1, [r4, #8] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - lsls r6, r5, #2 - adds r0, r6, r0 - movs r1, #0 - ldrsh r0, [r0, r1] - movs r7, #1 - rsbs r7, r7, #0 - cmp r0, r7 - beq _0808C95A - adds r3, r4, #0 - adds r3, #0x2c - ldrb r2, [r3] - lsls r1, r2, #0x1a - lsrs r1, r1, #0x1a - adds r1, #1 - movs r0, #0x3f - ands r1, r0 - movs r0, #0x40 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - mov r1, ip - ldrb r0, [r1] - ldr r1, [r4, #8] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - adds r0, r6, r0 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, r7 - bne _0808C960 -_0808C95A: - subs r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_0808C960: - adds r0, r4, #0 - adds r0, #0x2a - ldrb r0, [r0] - ldr r1, [r4, #8] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - lsls r0, r5, #2 - adds r0, r0, r1 - ldrb r5, [r0] - subs r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bhi _0808C992 - movs r0, #8 - strh r0, [r4, #0x24] - bl GetPlayerFacingDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bne _0808C992 - ldr r0, _0808C9DC - strh r0, [r4, #0x24] -_0808C992: - cmp r5, #5 - bne _0808C99A - ldr r0, _0808C9DC - strh r0, [r4, #0x26] -_0808C99A: - adds r0, r5, #0 - subs r0, #0xa - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0808C9AA - movs r0, #8 - strh r0, [r4, #0x26] -_0808C9AA: - ldr r3, _0808C9D4 - ldrb r1, [r3] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0808C9CE - ldr r2, _0808C9E0 - ldrb r1, [r3, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #0x1a] - movs r1, #0x26 - ldrsh r2, [r4, r1] - movs r1, #1 - bl sub_08155540 -_0808C9CE: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0808C9D4: .4byte gUnknown_2037230 -_0808C9D8: .4byte gUnknown_20205AC -_0808C9DC: .4byte 0x0000FFF8 -_0808C9E0: .4byte gUnknown_2036FF0 - thumb_func_end AlignFishingAnimationFrames - - thumb_func_start sub_0808C9E4 -sub_0808C9E4: @ 0x0808C9E4 - ldr r1, _0808C9EC - strb r0, [r1] - bx lr - .align 2, 0 -_0808C9EC: .4byte gUnknown_2036FEC - thumb_func_end sub_0808C9E4 - - thumb_func_start sub_0808C9F0 -sub_0808C9F0: @ 0x0808C9F0 - push {lr} - ldr r1, _0808CA00 - ldrb r0, [r1] - cmp r0, #0 - bne _0808C9FC - movs r0, #1 -_0808C9FC: - pop {r1} - bx r1 - .align 2, 0 -_0808CA00: .4byte gUnknown_2036FEC - thumb_func_end sub_0808C9F0 - - thumb_func_start sub_0808CA04 -sub_0808CA04: @ 0x0808CA04 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r2, r0, #0 - ldr r0, _0808CA48 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808CA4C - adds r4, r0, r1 - ldrb r1, [r4, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808CA50 - adds r7, r0, r1 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _0808CA54 - adds r5, r0, r1 - movs r0, #0 - ldrsh r6, [r5, r0] - cmp r6, #1 - beq _0808CABA - cmp r6, #1 - bgt _0808CA58 - cmp r6, #0 - beq _0808CA5E - b _0808CAFA - .align 2, 0 -_0808CA48: .4byte gUnknown_2037230 -_0808CA4C: .4byte gUnknown_2036FF0 -_0808CA50: .4byte gUnknown_20205AC -_0808CA54: .4byte gUnknown_3005B68 -_0808CA58: - cmp r6, #2 - beq _0808CAF4 - b _0808CAFA -_0808CA5E: - adds r0, r4, #0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808CAFA - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_0808C9E4 - movs r1, #0 - mov r8, r1 - strh r6, [r5, #2] - movs r0, #1 - strh r0, [r5, #4] - ldrh r0, [r7, #0x26] - ldrh r2, [r7, #0x22] - adds r0, r0, r2 - lsls r0, r0, #4 - strh r0, [r5, #6] - strh r6, [r7, #0x26] - bl CameraObjectReset2 - ldrb r0, [r4, #3] - movs r1, #4 - orrs r0, r1 - strb r0, [r4, #3] - ldrb r1, [r7, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r7, #5] - adds r0, r7, #0 - adds r0, #0x43 - mov r1, r8 - strb r1, [r0] - adds r2, r7, #0 - adds r2, #0x42 - ldrb r1, [r2] - movs r0, #0x3f - ands r0, r1 - strb r0, [r2] - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] -_0808CABA: - adds r1, r5, #2 - adds r0, r4, #0 - bl sub_0808CCFC - ldrh r0, [r5, #6] - ldrh r1, [r5, #4] - subs r0, r0, r1 - strh r0, [r5, #6] - adds r1, #3 - strh r1, [r5, #4] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - strh r0, [r7, #0x22] - movs r2, #0x22 - ldrsh r1, [r7, r2] - ldr r0, _0808CAF0 - movs r2, #0 - ldrsh r0, [r0, r2] - adds r1, r1, r0 - movs r0, #0x20 - rsbs r0, r0, #0 - cmp r1, r0 - bge _0808CAFA - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - b _0808CAFA - .align 2, 0 -_0808CAF0: .4byte gUnknown_3005B48 -_0808CAF4: - adds r0, r2, #0 - bl DestroyTask -_0808CAFA: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_0808CA04 - - thumb_func_start sub_0808CB04 -sub_0808CB04: @ 0x0808CB04 - push {r4, lr} - ldr r4, _0808CB20 - adds r0, r4, #0 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808CB20: .4byte sub_0808CB6C - thumb_func_end sub_0808CB04 - - thumb_func_start RunOnLoadMapScript -RunOnLoadMapScript: @ 0x0808CB24 - push {lr} - ldr r0, _0808CB34 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0808CB34: .4byte sub_0808CB6C - thumb_func_end RunOnLoadMapScript - - thumb_func_start sub_0808CB38 -sub_0808CB38: @ 0x0808CB38 - push {r4, lr} - ldr r4, _0808CB54 - adds r0, r4, #0 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808CB54: .4byte sub_0808CA04 - thumb_func_end sub_0808CB38 - - thumb_func_start sub_0808CB58 -sub_0808CB58: @ 0x0808CB58 - push {lr} - ldr r0, _0808CB68 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0808CB68: .4byte sub_0808CA04 - thumb_func_end sub_0808CB58 - - thumb_func_start sub_0808CB6C -sub_0808CB6C: @ 0x0808CB6C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r0, _0808CBB4 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808CBB8 - adds r4, r0, r1 - ldrb r1, [r4, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808CBBC - adds r7, r0, r1 - mov r1, r8 - lsls r0, r1, #2 - add r0, r8 - lsls r0, r0, #3 - ldr r1, _0808CBC0 - adds r5, r0, r1 - movs r2, #0 - ldrsh r6, [r5, r2] - cmp r6, #1 - beq _0808CC4E - cmp r6, #1 - bgt _0808CBC4 - cmp r6, #0 - beq _0808CBCE - b _0808CCEE - .align 2, 0 -_0808CBB4: .4byte gUnknown_2037230 -_0808CBB8: .4byte gUnknown_2036FF0 -_0808CBBC: .4byte gUnknown_20205AC -_0808CBC0: .4byte gUnknown_3005B68 -_0808CBC4: - cmp r6, #2 - beq _0808CC8C - cmp r6, #3 - beq _0808CCAA - b _0808CCEE -_0808CBCE: - bl sub_0808C9F0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0xa] - ldr r1, _0808CC88 - movs r3, #0xa - ldrsh r0, [r5, r3] - adds r0, r0, r1 - ldrb r0, [r0] - bl sub_08092CA0 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectForceSetHeldMovement - movs r0, #0 - mov sb, r0 - strh r6, [r5, #2] - movs r0, #0x74 - strh r0, [r5, #4] - ldrh r0, [r7, #0x22] - strh r0, [r5, #8] - ldrb r0, [r7, #5] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1e - strh r0, [r5, #0xc] - movs r1, #0x43 - adds r1, r1, r7 - mov r8, r1 - ldrb r0, [r1] - strh r0, [r5, #0xe] - ldrh r0, [r7, #0x26] - adds r0, #0x20 - rsbs r0, r0, #0 - lsls r0, r0, #4 - strh r0, [r5, #6] - strh r6, [r7, #0x26] - bl CameraObjectReset2 - ldrb r0, [r4, #3] - movs r2, #4 - orrs r0, r2 - strb r0, [r4, #3] - ldrb r1, [r7, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r7, #5] - mov r3, sb - mov r2, r8 - strb r3, [r2] - adds r2, r7, #0 - adds r2, #0x42 - ldrb r1, [r2] - movs r0, #0x3f - ands r0, r1 - strb r0, [r2] - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] -_0808CC4E: - adds r1, r5, #2 - adds r0, r4, #0 - bl sub_0808CCFC - ldrh r0, [r5, #4] - ldrh r2, [r5, #6] - adds r1, r0, r2 - strh r1, [r5, #6] - subs r0, #3 - strh r0, [r5, #4] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - bgt _0808CC6E - movs r0, #4 - strh r0, [r5, #4] -_0808CC6E: - ldrh r0, [r5, #6] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - strh r0, [r7, #0x22] - ldrh r2, [r5, #8] - movs r3, #8 - ldrsh r1, [r5, r3] - cmp r0, r1 - blt _0808CCEE - strh r2, [r7, #0x22] - movs r0, #0 - strh r0, [r5, #0x10] - b _0808CCA2 - .align 2, 0 -_0808CC88: .4byte gUnknown_846FA13 -_0808CC8C: - adds r1, r5, #2 - adds r0, r4, #0 - bl sub_0808CCFC - ldrh r0, [r5, #0x10] - adds r0, #1 - strh r0, [r5, #0x10] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #8 - ble _0808CCEE -_0808CCA2: - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - b _0808CCEE -_0808CCAA: - movs r0, #0xa - ldrsh r6, [r5, r0] - adds r1, r5, #2 - adds r0, r4, #0 - bl sub_0808CCFC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r6, r0 - bne _0808CCEE - ldrb r1, [r4, #3] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #3] - movs r0, #3 - ldrb r1, [r5, #0xc] - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r7, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r7, #5] - ldrh r1, [r5, #0xe] - adds r0, r7, #0 - adds r0, #0x43 - strb r1, [r0] - bl CameraObjectReset1 - mov r0, r8 - bl DestroyTask -_0808CCEE: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0808CB6C - - thumb_func_start sub_0808CCFC -sub_0808CCFC: @ 0x0808CCFC - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - ldrh r1, [r6] - movs r2, #0 - ldrsh r0, [r6, r2] - cmp r0, #7 - bgt _0808CD18 - adds r0, r1, #1 - strh r0, [r6] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #7 - ble _0808CD54 -_0808CD18: - adds r0, r5, #0 - bl EventObjectCheckHeldMovementStatus - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808CD54 - ldr r4, _0808CD50 - ldrb r0, [r5, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - adds r0, r0, r4 - ldrb r0, [r0] - bl sub_08092CA0 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl EventObjectForceSetHeldMovement - movs r0, #0 - strh r0, [r6] - ldrb r0, [r5, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - adds r0, r0, r4 - ldrb r0, [r0] - b _0808CD5A - .align 2, 0 -_0808CD50: .4byte gUnknown_846FA13 -_0808CD54: - ldrb r0, [r5, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c -_0808CD5A: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_0808CCFC - - thumb_func_start ClearEventObject -ClearEventObject: @ 0x0808CD60 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r2, #0x24 - bl memset - movs r0, #0xff - strb r0, [r4, #8] - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r4, #9] - strb r0, [r4, #0xa] - strb r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - thumb_func_end ClearEventObject - - thumb_func_start ClearAllEventObjects -ClearAllEventObjects: @ 0x0808CD80 - push {r4, r5, lr} - movs r4, #0 - ldr r5, _0808CDA4 -_0808CD86: - lsls r0, r4, #3 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r5 - bl ClearEventObject - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xf - bls _0808CD86 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0808CDA4: .4byte gUnknown_2036FF0 - thumb_func_end ClearAllEventObjects - - thumb_func_start ResetEventObjects -ResetEventObjects: @ 0x0808CDA8 - push {lr} - bl ClearLinkPlayerEventObjects - bl ClearAllEventObjects - bl ClearPlayerAvatarInfo - bl CreateReflectionEffectSprites - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ResetEventObjects - - thumb_func_start CreateReflectionEffectSprites -CreateReflectionEffectSprites: @ 0x0808CDC0 - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - ldr r0, _0808CE5C - ldr r0, [r0, #0x54] - mov sb, r0 - movs r1, #0 - movs r2, #0 - movs r3, #0x1f - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0808CE60 - mov sl, r1 - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - add r4, sl - ldrb r1, [r4, #1] - movs r5, #4 - rsbs r5, r5, #0 - adds r0, r5, #0 - ands r0, r1 - movs r1, #1 - mov r8, r1 - mov r1, r8 - orrs r0, r1 - strb r0, [r4, #1] - adds r0, r4, #0 - bl InitSpriteAffineAnim - adds r0, r4, #0 - movs r1, #0 - bl StartSpriteAffineAnim - adds r4, #0x3e - ldrb r0, [r4] - movs r6, #4 - orrs r0, r6 - strb r0, [r4] - mov r0, sb - movs r1, #0 - movs r2, #0 - movs r3, #0x1f - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - add r4, sl - ldrb r0, [r4, #1] - ands r5, r0 - mov r0, r8 - orrs r5, r0 - strb r5, [r4, #1] - adds r0, r4, #0 - bl InitSpriteAffineAnim - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAffineAnim - adds r4, #0x3e - ldrb r0, [r4] - orrs r0, r6 - strb r0, [r4] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0808CE5C: .4byte gUnknown_84DDE4C -_0808CE60: .4byte gUnknown_20205AC - thumb_func_end CreateReflectionEffectSprites - - thumb_func_start GetFirstInactiveEventObjectId -GetFirstInactiveEventObjectId: @ 0x0808CE64 - push {lr} - movs r1, #0 - ldr r2, _0808CE70 - ldrb r0, [r2] - b _0808CE88 - .align 2, 0 -_0808CE70: .4byte gUnknown_2036FF0 -_0808CE74: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xf - bhi _0808CE8E - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0] -_0808CE88: - lsls r0, r0, #0x1f - cmp r0, #0 - bne _0808CE74 -_0808CE8E: - adds r0, r1, #0 - pop {r1} - bx r1 - thumb_func_end GetFirstInactiveEventObjectId - - thumb_func_start GetEventObjectIdByLocalIdAndMap -GetEventObjectIdByLocalIdAndMap: @ 0x0808CE94 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - cmp r0, #0xfe - bls _0808CEAC - bl GetEventObjectIdByLocalId - b _0808CEB0 -_0808CEAC: - bl GetEventObjectIdByLocalIdAndMapInternal -_0808CEB0: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - thumb_func_end GetEventObjectIdByLocalIdAndMap - - thumb_func_start TryGetEventObjectIdByLocalIdAndMap -TryGetEventObjectIdByLocalIdAndMap: @ 0x0808CEB8 - push {r4, lr} - adds r4, r3, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - bl GetEventObjectIdByLocalIdAndMap - strb r0, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x10 - beq _0808CEDA - movs r0, #0 - b _0808CEDC -_0808CEDA: - movs r0, #1 -_0808CEDC: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end TryGetEventObjectIdByLocalIdAndMap - - thumb_func_start GetEventObjectIdByXY -GetEventObjectIdByXY: @ 0x0808CEE4 - push {r4, r5, r6, lr} - movs r3, #0 - ldr r5, _0808CF24 - lsls r0, r0, #0x10 - asrs r4, r0, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 -_0808CEF2: - lsls r0, r3, #3 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r2, r0, r5 - ldrb r0, [r2] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _0808CF12 - movs r6, #0x10 - ldrsh r0, [r2, r6] - cmp r0, r4 - bne _0808CF12 - movs r6, #0x12 - ldrsh r0, [r2, r6] - cmp r0, r1 - beq _0808CF1C -_0808CF12: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0xf - bls _0808CEF2 -_0808CF1C: - adds r0, r3, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0808CF24: .4byte gUnknown_2036FF0 - thumb_func_end GetEventObjectIdByXY - - thumb_func_start GetEventObjectIdByLocalIdAndMapInternal -GetEventObjectIdByLocalIdAndMapInternal: @ 0x0808CF28 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r1, #0 - ldr r6, _0808CF60 -_0808CF3A: - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r3, r0, r6 - ldrb r0, [r3] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _0808CF64 - ldrb r0, [r3, #8] - cmp r0, r5 - bne _0808CF64 - ldrb r0, [r3, #9] - cmp r0, r4 - bne _0808CF64 - ldrb r0, [r3, #0xa] - cmp r0, r2 - bne _0808CF64 - adds r0, r1, #0 - b _0808CF70 - .align 2, 0 -_0808CF60: .4byte gUnknown_2036FF0 -_0808CF64: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xf - bls _0808CF3A - movs r0, #0x10 -_0808CF70: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetEventObjectIdByLocalIdAndMapInternal - - thumb_func_start GetEventObjectIdByLocalId -GetEventObjectIdByLocalId: @ 0x0808CF78 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - movs r2, #0 - ldr r4, _0808CF9C -_0808CF82: - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r1, r0, r4 - ldrb r0, [r1] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _0808CFA0 - ldrb r0, [r1, #8] - cmp r0, r3 - bne _0808CFA0 - adds r0, r2, #0 - b _0808CFAC - .align 2, 0 -_0808CF9C: .4byte gUnknown_2036FF0 -_0808CFA0: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xf - bls _0808CF82 - movs r0, #0x10 -_0808CFAC: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetEventObjectIdByLocalId - - thumb_func_start InitEventObjectStateFromTemplate -InitEventObjectStateFromTemplate: @ 0x0808CFB4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - adds r5, r0, #0 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - ldrb r0, [r5] - adds r1, r6, #0 - adds r2, r7, #0 - mov r3, sp - bl GetAvailableEventObjectId - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808CFDE - movs r0, #0x10 - b _0808D0D2 -_0808CFDE: - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808D0E0 - adds r4, r0, r1 - adds r0, r4, #0 - bl ClearEventObject - ldrh r3, [r5, #4] - adds r3, #7 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - ldrh r2, [r5, #6] - adds r2, #7 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldrb r0, [r4] - movs r1, #1 - orrs r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r4] - ldrb r0, [r5, #1] - strb r0, [r4, #5] - ldrb r0, [r5, #9] - strb r0, [r4, #6] - ldrb r0, [r5] - strb r0, [r4, #8] - strb r6, [r4, #9] - strb r7, [r4, #0xa] - strh r3, [r4, #0xc] - strh r2, [r4, #0xe] - strh r3, [r4, #0x10] - strh r2, [r4, #0x12] - strh r3, [r4, #0x14] - strh r2, [r4, #0x16] - ldrb r0, [r5, #8] - movs r7, #0xf - adds r1, r7, #0 - ands r1, r0 - ldrb r2, [r4, #0xb] - movs r0, #0x10 - rsbs r0, r0, #0 - mov r8, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0xb] - ldrb r1, [r5, #8] - lsls r1, r1, #4 - ands r0, r7 - orrs r0, r1 - strb r0, [r4, #0xb] - ldrb r1, [r5, #0xa] - lsls r1, r1, #0x1c - movs r0, #0xf - mov sb, r0 - lsrs r1, r1, #0x1c - ldrb r2, [r4, #0x19] - mov r0, r8 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x19] - ldrb r1, [r5, #0xa] - lsrs r1, r1, #4 - lsls r1, r1, #4 - ands r0, r7 - orrs r0, r1 - strb r0, [r4, #0x19] - ldrh r0, [r5, #0xc] - strb r0, [r4, #7] - ldrh r0, [r5, #0xe] - strb r0, [r4, #0x1d] - ldr r1, _0808D0E4 - ldrb r0, [r5, #9] - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x20 - strb r1, [r0] - ldrb r1, [r0] - adds r0, r4, #0 - bl SetEventObjectDirection - adds r0, r4, #0 - bl SetEventObjectDynamicGraphicsId - ldr r1, _0808D0E8 - ldrb r0, [r4, #6] - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _0808D0CE - ldrb r2, [r4, #0x19] - adds r0, r7, #0 - ands r0, r2 - cmp r0, #0 - bne _0808D0B6 - lsls r0, r2, #0x1c - lsrs r0, r0, #0x1c - adds r0, #1 - mov r1, sb - ands r0, r1 - mov r1, r8 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #0x19] -_0808D0B6: - ldrb r2, [r4, #0x19] - movs r0, #0xf0 - ands r0, r2 - cmp r0, #0 - bne _0808D0CE - lsrs r1, r2, #4 - adds r1, #1 - lsls r1, r1, #4 - adds r0, r7, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x19] -_0808D0CE: - mov r0, sp - ldrb r0, [r0] -_0808D0D2: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0808D0E0: .4byte gUnknown_2036FF0 -_0808D0E4: .4byte gUnknown_84DDA21 -_0808D0E8: .4byte gUnknown_84DD9D0 - thumb_func_end InitEventObjectStateFromTemplate - - thumb_func_start Unref_TryInitLocalEventObject -Unref_TryInitLocalEventObject: @ 0x0808D0EC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r4, _0808D114 - ldr r0, [r4, #4] - cmp r0, #0 - beq _0808D16E - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808D118 - bl GetNumBattlePyramidEventObjects - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - b _0808D13A - .align 2, 0 -_0808D114: .4byte gUnknown_2036FB8 -_0808D118: - bl InTrainerHill - cmp r0, #0 - beq _0808D136 - movs r6, #2 - b _0808D13A -_0808D124: - ldr r0, [r7] - ldrb r1, [r0, #5] - ldrb r2, [r0, #4] - adds r0, r4, #0 - bl InitEventObjectStateFromTemplate - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0808D170 -_0808D136: - ldr r0, [r4, #4] - ldrb r6, [r0] -_0808D13A: - movs r5, #0 - cmp r5, r6 - bhs _0808D16E - ldr r7, _0808D17C -_0808D142: - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #3 - movs r1, #0xc7 - lsls r1, r1, #4 - adds r0, r0, r1 - ldr r1, [r7] - adds r4, r1, r0 - ldrb r0, [r4] - cmp r0, r8 - bne _0808D164 - ldrh r0, [r4, #0x14] - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808D124 -_0808D164: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, r6 - blo _0808D142 -_0808D16E: - movs r0, #0x10 -_0808D170: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0808D17C: .4byte gUnknown_3005AEC - thumb_func_end Unref_TryInitLocalEventObject - - thumb_func_start GetAvailableEventObjectId -GetAvailableEventObjectId: @ 0x0808D180 - push {r4, r5, r6, r7, lr} - mov ip, r3 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r4, r2, #0x18 - movs r2, #0 - ldr r1, _0808D1DC - ldrb r0, [r1] - lsls r0, r0, #0x1f - adds r7, r1, #0 - cmp r0, #0 - beq _0808D1D4 - adds r3, r1, #0 -_0808D1A0: - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r1, r0, r3 - ldrb r0, [r1, #8] - cmp r0, r6 - bne _0808D1BA - ldrb r0, [r1, #9] - cmp r0, r5 - bne _0808D1BA - ldrb r0, [r1, #0xa] - cmp r0, r4 - beq _0808D1D8 -_0808D1BA: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xf - bhi _0808D1D8 - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrb r0, [r0] - lsls r0, r0, #0x1f - cmp r0, #0 - bne _0808D1A0 -_0808D1D4: - cmp r2, #0xf - bls _0808D1E0 -_0808D1D8: - movs r0, #1 - b _0808D214 - .align 2, 0 -_0808D1DC: .4byte gUnknown_2036FF0 -_0808D1E0: - mov r0, ip - strb r2, [r0] - ldr r1, _0808D21C -_0808D1E6: - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r3, r0, r1 - ldrb r0, [r3] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _0808D208 - ldrb r0, [r3, #8] - cmp r0, r6 - bne _0808D208 - ldrb r0, [r3, #9] - cmp r0, r5 - bne _0808D208 - ldrb r0, [r3, #0xa] - cmp r0, r4 - beq _0808D1D8 -_0808D208: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xf - bls _0808D1E6 - movs r0, #0 -_0808D214: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0808D21C: .4byte gUnknown_2036FF0 - thumb_func_end GetAvailableEventObjectId - - thumb_func_start RemoveEventObject -RemoveEventObject: @ 0x0808D220 - push {lr} - ldrb r2, [r0] - movs r1, #2 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - bl RemoveEventObjectInternal - pop {r0} - bx r0 - thumb_func_end RemoveEventObject - - thumb_func_start RemoveEventObjectByLocalIdAndMap -RemoveEventObjectByLocalIdAndMap: @ 0x0808D234 - push {lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808D272 - mov r0, sp - ldrb r0, [r0] - bl GetEventObjectFlagIdByEventObjectId - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl FlagSet - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808D278 - adds r0, r0, r1 - bl RemoveEventObject -_0808D272: - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_0808D278: .4byte gUnknown_2036FF0 - thumb_func_end RemoveEventObjectByLocalIdAndMap - - thumb_func_start RemoveEventObjectInternal -RemoveEventObjectInternal: @ 0x0808D27C - push {r4, lr} - sub sp, #8 - adds r4, r0, #0 - ldrb r0, [r4, #5] - bl GetEventObjectGraphicsInfo - ldrh r2, [r0, #6] - ldr r1, _0808D2C0 - ldr r0, [sp, #4] - ands r0, r1 - orrs r0, r2 - str r0, [sp, #4] - ldr r2, _0808D2C4 - ldrb r1, [r4, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r2, #0 - adds r1, #0xc - adds r0, r0, r1 - mov r1, sp - str r1, [r0] - ldrb r1, [r4, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - bl DestroySprite - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808D2C0: .4byte 0xFFFF0000 -_0808D2C4: .4byte gUnknown_20205AC - thumb_func_end RemoveEventObjectInternal - - thumb_func_start RemoveAllEventObjectsExceptPlayer -RemoveAllEventObjectsExceptPlayer: @ 0x0808D2C8 - push {r4, lr} - movs r4, #0 -_0808D2CC: - ldr r0, _0808D2F4 - ldrb r0, [r0, #5] - cmp r4, r0 - beq _0808D2E2 - lsls r0, r4, #3 - adds r0, r0, r4 - lsls r0, r0, #2 - ldr r1, _0808D2F8 - adds r0, r0, r1 - bl RemoveEventObject -_0808D2E2: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xf - bls _0808D2CC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808D2F4: .4byte gUnknown_2037230 -_0808D2F8: .4byte gUnknown_2036FF0 - thumb_func_end RemoveAllEventObjectsExceptPlayer - - thumb_func_start TrySetupEventObjectSprite -TrySetupEventObjectSprite: @ 0x0808D2FC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov r8, r1 - adds r1, r2, #0 - adds r2, r3, #0 - ldr r3, [sp, #0x24] - ldr r4, [sp, #0x28] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - mov sl, r3 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - str r4, [sp] - bl InitEventObjectStateFromTemplate - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - cmp r0, #0x10 - bne _0808D338 - movs r0, #0x10 - b _0808D49C -_0808D338: - mov r0, sb - lsls r4, r0, #3 - adds r0, r4, r0 - lsls r0, r0, #2 - ldr r1, _0808D360 - adds r6, r0, r1 - ldrb r0, [r6, #5] - bl GetEventObjectGraphicsInfo - adds r7, r0, #0 - ldrb r0, [r7, #0xc] - lsls r0, r0, #0x1c - lsrs r5, r0, #0x1c - cmp r5, #0 - bne _0808D364 - ldrh r0, [r7, #2] - movs r1, #0 - bl LoadPlayerObjectReflectionPalette - b _0808D386 - .align 2, 0 -_0808D360: .4byte gUnknown_2036FF0 -_0808D364: - cmp r5, #0xa - bne _0808D372 - ldrh r0, [r7, #2] - movs r1, #0xa - bl LoadSpecialObjectReflectionPalette - b _0808D386 -_0808D372: - cmp r5, #0xf - bls _0808D386 - adds r0, r5, #0 - subs r0, #0x10 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldrh r0, [r7, #2] - adds r1, r5, #0 - bl sub_0808E420 -_0808D386: - ldrb r0, [r6, #6] - cmp r0, #0x4c - bne _0808D394 - ldrb r0, [r6, #1] - movs r1, #0x20 - orrs r0, r1 - strb r0, [r6, #1] -_0808D394: - ldr r1, _0808D3CC - adds r0, r1, #0 - mov r2, r8 - strh r0, [r2, #2] - mov r0, r8 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - cmp r0, #0x40 - bne _0808D3D4 - ldr r0, _0808D3D0 - mov r2, sb - adds r1, r4, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - movs r0, #0x10 - b _0808D49C - .align 2, 0 -_0808D3CC: .4byte 0x0000FFFF -_0808D3D0: .4byte gUnknown_2036FF0 -_0808D3D4: - mov r1, r8 - lsls r0, r1, #4 - add r0, r8 - lsls r0, r0, #2 - ldr r1, _0808D4AC - adds r4, r0, r1 - mov r2, sl - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - ldrh r1, [r6, #0x10] - adds r0, r0, r1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldr r2, [sp] - lsls r1, r2, #0x10 - asrs r1, r1, #0x10 - ldrh r2, [r6, #0x12] - adds r1, r1, r2 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r2, r4, #0 - adds r2, #0x20 - adds r3, r4, #0 - adds r3, #0x22 - bl sub_08092960 - ldrh r0, [r7, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x11 - rsbs r0, r0, #0 - adds r1, r4, #0 - adds r1, #0x28 - strb r0, [r1] - ldrh r0, [r7, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x11 - rsbs r0, r0, #0 - adds r2, r4, #0 - adds r2, #0x29 - strb r0, [r2] - ldrh r0, [r4, #0x20] - adds r0, #8 - strh r0, [r4, #0x20] - ldrh r1, [r4, #0x22] - adds r1, #0x10 - movs r0, #0 - ldrsb r0, [r2, r0] - adds r0, r0, r1 - strh r0, [r4, #0x22] - lsls r2, r5, #4 - ldrb r1, [r4, #5] - movs r0, #0xf - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #5] - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #2 - orrs r0, r1 - strb r0, [r2] - mov r0, sb - strh r0, [r4, #0x2e] - mov r1, r8 - strb r1, [r6, #4] - ldrb r1, [r7, #0xc] - lsls r1, r1, #0x19 - lsrs r1, r1, #0x1f - lsls r1, r1, #4 - ldrb r2, [r6, #1] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r6, #1] - lsls r0, r0, #0x1b - cmp r0, #0 - blt _0808D486 - ldrb r0, [r6, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_080922CC - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim -_0808D486: - ldrb r0, [r6, #0xb] - lsrs r0, r0, #4 - adds r1, r4, #0 - movs r2, #1 - bl SetObjectSubpriorityByZCoord - adds r0, r6, #0 - adds r1, r4, #0 - bl UpdateEventObjectVisibility - mov r0, sb -_0808D49C: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0808D4AC: .4byte gUnknown_20205AC - thumb_func_end TrySetupEventObjectSprite - - thumb_func_start TrySpawnEventObjectTemplate -TrySpawnEventObjectTemplate: @ 0x0808D4B0 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x2c - mov sb, r0 - adds r6, r1, #0 - mov r8, r2 - adds r4, r3, #0 - ldr r5, [sp, #0x48] - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov r0, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - movs r0, #0 - str r0, [sp, #0x20] - mov r1, sb - ldrb r0, [r1, #1] - bl GetEventObjectGraphicsInfo - adds r7, r0, #0 - add r2, sp, #0x20 - mov r0, sb - add r1, sp, #8 - bl MakeObjectTemplateFromEventObjectTemplate - ldrh r3, [r7, #6] - ldr r2, _0808D528 - add r1, sp, #0x24 - ldr r0, [r1, #4] - ands r0, r2 - orrs r0, r3 - str r0, [r1, #4] - str r1, [sp, #0x14] - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - str r4, [sp] - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - str r5, [sp, #4] - mov r0, sb - add r1, sp, #8 - adds r2, r6, #0 - mov r3, r8 - bl TrySetupEventObjectSprite - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r5, r2, #0 - cmp r2, #0x10 - bne _0808D52C - movs r0, #0x10 - b _0808D562 - .align 2, 0 -_0808D528: .4byte 0xFFFF0000 -_0808D52C: - ldr r4, _0808D570 - ldr r1, _0808D574 - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r3, r0, r1 - ldrb r1, [r3, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #0xc - adds r0, r0, r1 - ldr r1, [r7, #0x1c] - str r1, [r0] - ldr r2, [sp, #0x20] - cmp r2, #0 - beq _0808D560 - ldrb r1, [r3, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r1, r2, #0 - bl SetSubspriteTables -_0808D560: - adds r0, r5, #0 -_0808D562: - add sp, #0x2c - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0808D570: .4byte gUnknown_20205AC -_0808D574: .4byte gUnknown_2036FF0 - thumb_func_end TrySpawnEventObjectTemplate - - thumb_func_start SpawnSpecialEventObject -SpawnSpecialEventObject: @ 0x0808D578 - push {r4, r5, r6, lr} - sub sp, #8 - adds r5, r0, #0 - mov r4, sp - adds r4, #6 - add r0, sp, #4 - adds r1, r4, #0 - bl GetEventObjectMovingCameraOffset - ldr r0, _0808D5B0 - ldr r0, [r0] - ldrb r1, [r0, #5] - ldrb r2, [r0, #4] - add r0, sp, #4 - movs r6, #0 - ldrsh r3, [r0, r6] - movs r6, #0 - ldrsh r0, [r4, r6] - str r0, [sp] - adds r0, r5, #0 - bl TrySpawnEventObjectTemplate - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #8 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0808D5B0: .4byte gUnknown_3005AEC - thumb_func_end SpawnSpecialEventObject - - thumb_func_start SpawnSpecialEventObjectParameterized -SpawnSpecialEventObjectParameterized: @ 0x0808D5B4 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0x18 - ldr r4, [sp, #0x2c] - ldr r5, [sp, #0x30] - mov r8, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r3, r3, #0x10 - ldr r5, _0808D618 - adds r3, r3, r5 - lsrs r3, r3, #0x10 - lsls r4, r4, #0x10 - adds r4, r4, r5 - lsrs r4, r4, #0x10 - mov r5, sp - movs r6, #0 - strb r2, [r5] - mov r2, sp - strb r0, [r2, #1] - mov r0, sp - strb r6, [r0, #2] - movs r5, #0 - strh r3, [r0, #4] - strh r4, [r0, #6] - mov r2, r8 - strb r2, [r0, #8] - strb r1, [r0, #9] - mov r2, sp - ldrb r1, [r2, #0xa] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0xa] - mov r0, sp - strb r5, [r0, #0xa] - strh r6, [r0, #0xc] - strh r6, [r0, #0xe] - bl SpawnSpecialEventObject - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #0x18 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0808D618: .4byte 0xFFF90000 - thumb_func_end SpawnSpecialEventObjectParameterized - - thumb_func_start TrySpawnEventObject -TrySpawnEventObject: @ 0x0808D61C - push {r4, r5, r6, r7, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - adds r1, r7, #0 - adds r2, r6, #0 - bl GetEventObjectTemplateByLocalIdAndMap - adds r5, r0, #0 - cmp r5, #0 - beq _0808D662 - mov r4, sp - adds r4, #6 - add r0, sp, #4 - adds r1, r4, #0 - bl GetEventObjectMovingCameraOffset - add r0, sp, #4 - movs r1, #0 - ldrsh r3, [r0, r1] - movs r1, #0 - ldrsh r0, [r4, r1] - str r0, [sp] - adds r0, r5, #0 - adds r1, r7, #0 - adds r2, r6, #0 - bl TrySpawnEventObjectTemplate - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0808D664 -_0808D662: - movs r0, #0x10 -_0808D664: - add sp, #8 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end TrySpawnEventObject - - thumb_func_start MakeObjectTemplateFromEventObjectGraphicsInfo -MakeObjectTemplateFromEventObjectGraphicsInfo: @ 0x0808D66C - push {r4, r5, r6, lr} - adds r5, r1, #0 - adds r4, r2, #0 - adds r6, r3, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetEventObjectGraphicsInfo - ldrh r1, [r0] - strh r1, [r4] - ldrh r1, [r0, #2] - strh r1, [r4, #2] - ldr r1, [r0, #0x10] - str r1, [r4, #4] - ldr r1, [r0, #0x18] - str r1, [r4, #8] - ldr r1, [r0, #0x1c] - str r1, [r4, #0xc] - ldr r1, [r0, #0x20] - str r1, [r4, #0x10] - str r5, [r4, #0x14] - ldr r0, [r0, #0x14] - str r0, [r6] - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end MakeObjectTemplateFromEventObjectGraphicsInfo - - thumb_func_start MakeObjectTemplateFromEventObjectGraphicsInfoWithCallbackIndex -MakeObjectTemplateFromEventObjectGraphicsInfoWithCallbackIndex: @ 0x0808D6A0 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r1, #0x10 - ldr r4, _0808D6BC - lsrs r1, r1, #0xe - adds r1, r1, r4 - ldr r1, [r1] - bl MakeObjectTemplateFromEventObjectGraphicsInfo - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808D6BC: .4byte gUnknown_84DD88C - thumb_func_end MakeObjectTemplateFromEventObjectGraphicsInfoWithCallbackIndex - - thumb_func_start MakeObjectTemplateFromEventObjectTemplate -MakeObjectTemplateFromEventObjectTemplate: @ 0x0808D6C0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r3, r2, #0 - ldrb r0, [r4, #1] - ldrb r1, [r4, #9] - adds r2, r5, #0 - bl MakeObjectTemplateFromEventObjectGraphicsInfoWithCallbackIndex - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end MakeObjectTemplateFromEventObjectTemplate - - thumb_func_start AddPseudoEventObject -AddPseudoEventObject: @ 0x0808D6D8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r0, [sp, #0x20] - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - mov r8, r2 - lsls r3, r3, #0x10 - lsrs r7, r3, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - movs r0, #0x18 - bl sub_08000BC8 - adds r6, r0, #0 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - mov r3, sp - bl MakeObjectTemplateFromEventObjectGraphicsInfo - ldrh r1, [r6, #2] - ldr r0, _0808D774 - cmp r1, r0 - beq _0808D71E - adds r0, r1, #0 - bl LoadEventObjectPalette -_0808D71E: - mov r0, r8 - lsls r1, r0, #0x10 - asrs r1, r1, #0x10 - lsls r2, r7, #0x10 - asrs r2, r2, #0x10 - adds r0, r6, #0 - mov r3, sb - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r6, #0 - bl Free - cmp r5, #0x40 - beq _0808D762 - ldr r1, [sp] - cmp r1, #0 - beq _0808D762 - lsls r4, r5, #4 - adds r4, r4, r5 - lsls r4, r4, #2 - ldr r0, _0808D778 - adds r4, r4, r0 - adds r0, r4, #0 - bl SetSubspriteTables - adds r4, #0x42 - ldrb r1, [r4] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4] -_0808D762: - adds r0, r5, #0 - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0808D774: .4byte 0x0000FFFF -_0808D778: .4byte gUnknown_20205AC - thumb_func_end AddPseudoEventObject - - thumb_func_start sprite_new -sprite_new: @ 0x0808D77C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - adds r5, r0, #0 - ldr r0, [sp, #0x40] - ldr r4, [sp, #0x44] - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sb, r1 - add r1, sp, #0x18 - mov r8, r1 - strh r2, [r1] - mov r6, sp - adds r6, #0x1a - strh r3, [r6] - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov sl, r4 - adds r0, r5, #0 - bl GetEventObjectGraphicsInfo - adds r4, r0, #0 - ldr r1, _0808D87C - add r3, sp, #0x1c - adds r0, r5, #0 - mov r2, sp - bl MakeObjectTemplateFromEventObjectGraphicsInfo - mov r1, sp - ldr r2, _0808D880 - adds r0, r2, #0 - strh r0, [r1, #2] - mov r1, r8 - movs r2, #0 - ldrsh r0, [r1, r2] - adds r0, #7 - strh r0, [r1] - movs r1, #0 - ldrsh r0, [r6, r1] - adds r0, #7 - strh r0, [r6] - mov r0, r8 - adds r1, r6, #0 - movs r2, #8 - movs r3, #0x10 - bl sub_08092A50 - mov r2, r8 - movs r0, #0 - ldrsh r1, [r2, r0] - movs r0, #0 - ldrsh r2, [r6, r0] - mov r0, sp - movs r3, #0 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0x40 - beq _0808D8DC - lsls r0, r6, #4 - adds r0, r0, r6 - lsls r0, r0, #2 - ldr r1, _0808D884 - adds r5, r0, r1 - ldrh r0, [r4, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x11 - rsbs r0, r0, #0 - adds r1, r5, #0 - adds r1, #0x28 - strb r0, [r1] - ldrh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x11 - rsbs r0, r0, #0 - adds r1, #1 - strb r0, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r1, [r5, #0x22] - adds r0, r0, r1 - strh r0, [r5, #0x22] - ldrb r0, [r4, #0xc] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x18 - ldrb r1, [r5, #5] - movs r3, #0xf - adds r2, r3, #0 - ands r2, r1 - orrs r2, r0 - strb r2, [r5, #5] - lsls r1, r2, #0x18 - lsrs r0, r1, #0x1c - cmp r0, #0xf - bls _0808D854 - subs r0, #0x10 - lsls r0, r0, #4 - ands r2, r3 - orrs r2, r0 - strb r2, [r5, #5] -_0808D854: - adds r2, r5, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #2 - orrs r0, r1 - strb r0, [r2] - mov r2, sb - strh r2, [r5, #0x2e] - strh r7, [r5, #0x30] - ldrb r1, [r4, #0xc] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0xa - bne _0808D888 - ldrh r0, [r4, #2] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - bl LoadSpecialObjectReflectionPalette - b _0808D89C - .align 2, 0 -_0808D87C: .4byte UpdateEventObjectSpriteSubpriorityAndVisibility -_0808D880: .4byte 0x0000FFFF -_0808D884: .4byte gUnknown_20205AC -_0808D888: - lsls r1, r1, #0x1c - lsrs r0, r1, #0x1c - cmp r0, #0xf - bls _0808D89C - ldrh r0, [r4, #2] - lsrs r2, r1, #0x1c - movs r1, #0xf0 - orrs r1, r2 - bl sub_0808E420 -_0808D89C: - ldr r1, [sp, #0x1c] - cmp r1, #0 - beq _0808D8B8 - adds r0, r5, #0 - bl SetSubspriteTables - adds r2, r5, #0 - adds r2, #0x42 - ldrb r0, [r2] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x80 - orrs r1, r0 - strb r1, [r2] -_0808D8B8: - adds r0, r5, #0 - adds r1, r7, #0 - bl InitObjectPriorityByZCoord - adds r0, r7, #0 - adds r1, r5, #0 - movs r2, #1 - bl SetObjectSubpriorityByZCoord - mov r0, sl - bl sub_080922CC - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl StartSpriteAnim -_0808D8DC: - adds r0, r6, #0 - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sprite_new - - thumb_func_start TrySpawnEventObjects -TrySpawnEventObjects: @ 0x0808D8F0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #4] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp, #8] - ldr r5, _0808D948 - ldr r0, [r5, #4] - cmp r0, #0 - beq _0808D9E8 - ldr r0, _0808D94C - ldr r2, [r0] - ldrh r1, [r2] - subs r0, r1, #2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - adds r1, #0x11 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp, #0xc] - ldrh r4, [r2, #2] - adds r0, r4, #0 - adds r0, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sl, r0 - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808D950 - bl GetNumBattlePyramidEventObjects - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - b _0808D960 - .align 2, 0 -_0808D948: .4byte gUnknown_2036FB8 -_0808D94C: .4byte gUnknown_3005AEC -_0808D950: - bl InTrainerHill - cmp r0, #0 - beq _0808D95C - movs r6, #2 - b _0808D960 -_0808D95C: - ldr r0, [r5, #4] - ldrb r6, [r0] -_0808D960: - movs r5, #0 - cmp r5, r6 - bhs _0808D9E8 - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - mov sb, r0 - mov r1, r8 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - mov r8, r0 -_0808D974: - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #3 - movs r2, #0xc7 - lsls r2, r2, #4 - adds r0, r0, r2 - ldr r3, _0808D9F8 - ldr r1, [r3] - adds r4, r1, r0 - ldrh r0, [r4, #4] - adds r0, #7 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldrh r0, [r4, #6] - adds r0, #7 - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - cmp sb, r1 - bgt _0808D9DE - mov r7, sl - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - cmp r0, r1 - blt _0808D9DE - lsls r0, r2, #0x10 - asrs r1, r0, #0x10 - cmp r8, r1 - bgt _0808D9DE - ldr r2, [sp, #0xc] - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - cmp r0, r1 - blt _0808D9DE - ldrh r0, [r4, #0x14] - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808D9DE - ldr r3, _0808D9F8 - ldr r0, [r3] - ldrb r1, [r0, #5] - ldrb r2, [r0, #4] - ldr r7, [sp, #4] - lsls r3, r7, #0x10 - ldr r7, [sp, #8] - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - str r0, [sp] - adds r0, r4, #0 - asrs r3, r3, #0x10 - bl TrySpawnEventObjectTemplate -_0808D9DE: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, r6 - blo _0808D974 -_0808D9E8: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0808D9F8: .4byte gUnknown_3005AEC - thumb_func_end TrySpawnEventObjects - - thumb_func_start RemoveEventObjectsOutsideView -RemoveEventObjectsOutsideView: @ 0x0808D9FC - push {r4, r5, r6, lr} - movs r3, #0 - ldr r6, _0808DA50 -_0808DA02: - movs r2, #0 - movs r4, #0 - adds r5, r3, #1 -_0808DA08: - lsls r0, r2, #2 - adds r1, r0, r6 - ldrb r0, [r1] - cmp r0, #0 - beq _0808DA1A - ldrb r1, [r1, #2] - cmp r3, r1 - bne _0808DA1A - movs r4, #1 -_0808DA1A: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #3 - bls _0808DA08 - cmp r4, #0 - bne _0808DA42 - lsls r0, r3, #3 - adds r0, r0, r3 - lsls r0, r0, #2 - ldr r1, _0808DA54 - adds r2, r0, r1 - ldr r0, [r2] - ldr r1, _0808DA58 - ands r0, r1 - cmp r0, #1 - bne _0808DA42 - adds r0, r2, #0 - bl RemoveEventObjectIfOutsideView -_0808DA42: - lsls r0, r5, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0xf - bls _0808DA02 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0808DA50: .4byte gUnknown_2031FA8 -_0808DA54: .4byte gUnknown_2036FF0 -_0808DA58: .4byte 0x00010001 - thumb_func_end RemoveEventObjectsOutsideView - - thumb_func_start RemoveEventObjectIfOutsideView -RemoveEventObjectIfOutsideView: @ 0x0808DA5C - push {r4, r5, r6, r7, lr} - adds r3, r0, #0 - ldr r0, _0808DAD8 - ldr r2, [r0] - ldrh r0, [r2] - subs r1, r0, #2 - lsls r1, r1, #0x10 - adds r0, #0x11 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldrh r4, [r2, #2] - adds r0, r4, #0 - adds r0, #0x10 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - movs r0, #0x10 - ldrsh r2, [r3, r0] - lsrs r7, r1, #0x10 - asrs r1, r1, #0x10 - cmp r2, r1 - blt _0808DAA2 - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - cmp r2, r0 - bgt _0808DAA2 - movs r0, #0x12 - ldrsh r1, [r3, r0] - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - cmp r1, r0 - blt _0808DAA2 - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - cmp r1, r0 - ble _0808DAD0 -_0808DAA2: - movs r0, #0xc - ldrsh r1, [r3, r0] - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - cmp r1, r0 - blt _0808DACA - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - cmp r1, r0 - bgt _0808DACA - movs r0, #0xe - ldrsh r1, [r3, r0] - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - cmp r1, r0 - blt _0808DACA - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - cmp r1, r0 - ble _0808DAD0 -_0808DACA: - adds r0, r3, #0 - bl RemoveEventObject -_0808DAD0: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0808DAD8: .4byte gUnknown_3005AEC - thumb_func_end RemoveEventObjectIfOutsideView - - thumb_func_start sub_0808DADC -sub_0808DADC: @ 0x0808DADC - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - bl ClearPlayerAvatarInfo - movs r6, #0 - ldr r7, _0808DB24 - lsls r4, r4, #0x10 - lsls r5, r5, #0x10 -_0808DAF6: - lsls r0, r6, #3 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrb r0, [r0] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _0808DB10 - adds r0, r6, #0 - asrs r1, r4, #0x10 - asrs r2, r5, #0x10 - bl sub_0808DB28 -_0808DB10: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0xf - bls _0808DAF6 - bl CreateReflectionEffectSprites - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0808DB24: .4byte gUnknown_2036FF0 - thumb_func_end sub_0808DADC - - thumb_func_start sub_0808DB28 -sub_0808DB28: @ 0x0808DB28 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x28 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sl, r1 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - str r2, [sp, #0x24] - movs r7, #0 - ldr r2, _0808DBB8 -_0808DB4A: - lsls r0, r7, #2 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, #0 - beq _0808DB5C - ldrb r1, [r1, #2] - cmp sb, r1 - bne _0808DB5C - b _0808DCE4 -_0808DB5C: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #3 - bls _0808DB4A - mov r1, sb - lsls r0, r1, #3 - add r0, sb - lsls r0, r0, #2 - ldr r1, _0808DBBC - adds r6, r0, r1 - movs r0, #0 - str r0, [sp, #0x20] - ldrb r0, [r6, #5] - bl GetEventObjectGraphicsInfo - adds r5, r0, #0 - ldrh r2, [r5, #6] - ldr r1, _0808DBC0 - add r4, sp, #0x18 - ldr r0, [r4, #4] - ands r0, r1 - orrs r0, r2 - str r0, [r4, #4] - ldrb r0, [r6, #5] - ldrb r1, [r6, #6] - add r3, sp, #0x20 - mov r2, sp - bl MakeObjectTemplateFromEventObjectGraphicsInfoWithCallbackIndex - str r4, [sp, #0xc] - mov r1, sp - ldr r2, _0808DBC4 - adds r0, r2, #0 - strh r0, [r1, #2] - ldrb r0, [r5, #0xc] - lsls r1, r0, #0x1c - lsrs r0, r1, #0x1c - mov r8, r0 - cmp r0, #0 - bne _0808DBC8 - ldrh r0, [r5, #2] - lsrs r1, r1, #0x1c - bl LoadPlayerObjectReflectionPalette - b _0808DBEE - .align 2, 0 -_0808DBB8: .4byte gUnknown_2031FA8 -_0808DBBC: .4byte gUnknown_2036FF0 -_0808DBC0: .4byte 0xFFFF0000 -_0808DBC4: .4byte 0x0000FFFF -_0808DBC8: - mov r2, r8 - cmp r2, #0xa - bne _0808DBD8 - ldrh r0, [r5, #2] - lsrs r1, r1, #0x1c - bl LoadSpecialObjectReflectionPalette - b _0808DBEE -_0808DBD8: - mov r0, r8 - cmp r0, #0xf - bls _0808DBEE - subs r0, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldrh r0, [r5, #2] - mov r1, r8 - bl sub_0808E420 -_0808DBEE: - mov r1, sp - ldr r2, _0808DCF4 - adds r0, r2, #0 - strh r0, [r1, #2] - mov r0, sp - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #0x40 - beq _0808DCE4 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - ldr r1, _0808DCF8 - adds r4, r0, r1 - mov r1, sl - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - ldrh r2, [r6, #0x10] - adds r0, r0, r2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldr r2, [sp, #0x24] - lsls r1, r2, #0x10 - asrs r1, r1, #0x10 - ldrh r2, [r6, #0x12] - adds r1, r1, r2 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r2, r4, #0 - adds r2, #0x20 - adds r3, r4, #0 - adds r3, #0x22 - bl sub_08092960 - ldrh r0, [r5, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x11 - rsbs r0, r0, #0 - adds r1, r4, #0 - adds r1, #0x28 - strb r0, [r1] - ldrh r0, [r5, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x11 - rsbs r0, r0, #0 - adds r2, r4, #0 - adds r2, #0x29 - strb r0, [r2] - ldrh r0, [r4, #0x20] - adds r0, #8 - strh r0, [r4, #0x20] - ldrh r1, [r4, #0x22] - adds r1, #0x10 - movs r0, #0 - ldrsb r0, [r2, r0] - adds r0, r0, r1 - strh r0, [r4, #0x22] - ldr r0, [r5, #0x1c] - str r0, [r4, #0xc] - ldrb r0, [r6, #6] - cmp r0, #0xb - bne _0808DC82 - mov r0, sb - adds r1, r7, #0 - bl SetPlayerAvatarEventObjectIdAndObjectId - bl CreateWarpArrowSprite - strb r0, [r6, #0x1b] -_0808DC82: - ldr r1, [sp, #0x20] - cmp r1, #0 - beq _0808DC8E - adds r0, r4, #0 - bl SetSubspriteTables -_0808DC8E: - mov r0, r8 - lsls r2, r0, #4 - ldrb r1, [r4, #5] - movs r0, #0xf - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #5] - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #2 - orrs r0, r1 - strb r0, [r2] - mov r1, sb - strh r1, [r4, #0x2e] - strb r7, [r6, #4] - ldrb r0, [r6, #1] - lsls r0, r0, #0x1b - cmp r0, #0 - blt _0808DCD2 - ldrb r0, [r6, #6] - cmp r0, #0xb - beq _0808DCD2 - ldrb r0, [r6, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_080922CC - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim -_0808DCD2: - adds r0, r6, #0 - bl sub_0808DCFC - ldrb r0, [r6, #0xb] - lsrs r0, r0, #4 - adds r1, r4, #0 - movs r2, #1 - bl SetObjectSubpriorityByZCoord -_0808DCE4: - add sp, #0x28 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0808DCF4: .4byte 0x0000FFFF -_0808DCF8: .4byte gUnknown_20205AC - thumb_func_end sub_0808DB28 - - thumb_func_start sub_0808DCFC -sub_0808DCFC: @ 0x0808DCFC - push {lr} - ldrb r2, [r0] - movs r3, #3 - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r1, r2 - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - ldrb r2, [r0, #2] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r2 - ands r1, r3 - movs r2, #5 - rsbs r2, r2, #0 - ands r1, r2 - subs r2, #4 - ands r1, r2 - subs r2, #8 - ands r1, r2 - subs r2, #0x10 - ands r1, r2 - strb r1, [r0, #2] - bl EventObjectClearHeldMovement - pop {r0} - bx r0 - thumb_func_end sub_0808DCFC - - thumb_func_start SetPlayerAvatarEventObjectIdAndObjectId -SetPlayerAvatarEventObjectIdAndObjectId: @ 0x0808DD34 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _0808DD60 - strb r0, [r5, #5] - strb r1, [r5, #4] - ldr r1, _0808DD64 - lsls r4, r0, #3 - adds r4, r4, r0 - lsls r4, r4, #2 - adds r4, r4, r1 - ldrb r0, [r4, #5] - bl GetPlayerAvatarGenderByGraphicsId - strb r0, [r5, #7] - ldrb r0, [r4, #5] - movs r1, #0x20 - bl SetPlayerAvatarExtraStateTransition - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0808DD60: .4byte gUnknown_2037230 -_0808DD64: .4byte gUnknown_2036FF0 - thumb_func_end SetPlayerAvatarEventObjectIdAndObjectId - - thumb_func_start EventObjectSetGraphicsId -EventObjectSetGraphicsId: @ 0x0808DD68 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - mov r0, r8 - bl GetEventObjectGraphicsInfo - adds r6, r0, #0 - ldrb r1, [r7, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808DDA0 - adds r4, r0, r1 - ldrb r0, [r6, #0xc] - lsls r1, r0, #0x1c - lsrs r5, r1, #0x1c - cmp r5, #0 - bne _0808DDA4 - ldrh r0, [r6, #2] - adds r1, r5, #0 - bl PatchObjectPalette - b _0808DDC6 - .align 2, 0 -_0808DDA0: .4byte gUnknown_20205AC -_0808DDA4: - cmp r5, #0xa - bne _0808DDB2 - ldrh r0, [r6, #2] - lsrs r1, r1, #0x1c - bl LoadSpecialObjectReflectionPalette - b _0808DDC6 -_0808DDB2: - cmp r5, #0xf - bls _0808DDC6 - adds r0, r5, #0 - subs r0, #0x10 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldrh r0, [r6, #2] - adds r1, r5, #0 - bl sub_0808E420 -_0808DDC6: - ldr r0, [r6, #0x10] - ldrb r2, [r0, #1] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r3, [r4, #1] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r4, #1] - ldr r0, [r6, #0x10] - ldrb r0, [r0, #3] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r4, #3] - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #3] - ldr r0, [r6, #0x1c] - str r0, [r4, #0xc] - ldr r0, [r6, #0x18] - str r0, [r4, #8] - ldr r0, [r6, #0x14] - str r0, [r4, #0x18] - lsls r2, r5, #4 - ldrb r1, [r4, #5] - movs r0, #0xf - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #5] - ldrb r1, [r6, #0xc] - lsls r1, r1, #0x19 - lsrs r1, r1, #0x1f - lsls r1, r1, #4 - ldrb r2, [r7, #1] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r7, #1] - mov r0, r8 - strb r0, [r7, #5] - movs r1, #0x10 - ldrsh r0, [r7, r1] - movs r2, #0x12 - ldrsh r1, [r7, r2] - adds r2, r4, #0 - adds r2, #0x20 - adds r3, r4, #0 - adds r3, #0x22 - bl SetSpritePosToMapCoords - ldrh r0, [r6, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x11 - rsbs r0, r0, #0 - adds r1, r4, #0 - adds r1, #0x28 - strb r0, [r1] - ldrh r0, [r6, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x11 - rsbs r0, r0, #0 - adds r2, r4, #0 - adds r2, #0x29 - strb r0, [r2] - ldrh r0, [r4, #0x20] - adds r0, #8 - strh r0, [r4, #0x20] - ldrh r1, [r4, #0x22] - adds r1, #0x10 - movs r0, #0 - ldrsb r0, [r2, r0] - adds r0, r0, r1 - strh r0, [r4, #0x22] - ldrb r0, [r7, #1] - lsrs r0, r0, #7 - cmp r0, #0 - beq _0808DE68 - bl CameraObjectReset1 -_0808DE68: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end EventObjectSetGraphicsId - - thumb_func_start EventObjectSetGraphicsIdByLocalIdAndMap -EventObjectSetGraphicsIdByLocalIdAndMap: @ 0x0808DE74 - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r4, r3, #0x18 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808DEA8 - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808DEB0 - adds r0, r0, r1 - adds r1, r4, #0 - bl EventObjectSetGraphicsId -_0808DEA8: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808DEB0: .4byte gUnknown_2036FF0 - thumb_func_end EventObjectSetGraphicsIdByLocalIdAndMap - - thumb_func_start EventObjectTurn -EventObjectTurn: @ 0x0808DEB4 - push {r4, r5, r6, lr} - adds r6, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl SetEventObjectDirection - ldrb r0, [r6, #1] - lsls r0, r0, #0x1b - cmp r0, #0 - blt _0808DEFA - ldrb r0, [r6, #4] - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r5, _0808DF00 - adds r4, r4, r5 - ldrb r0, [r6, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_080922CC - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim - ldrb r1, [r6, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0 - bl SeekSpriteAnim -_0808DEFA: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0808DF00: .4byte gUnknown_20205AC - thumb_func_end EventObjectTurn - - thumb_func_start EventObjectTurnByLocalIdAndMap -EventObjectTurnByLocalIdAndMap: @ 0x0808DF04 - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r4, r3, #0x18 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808DF38 - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808DF40 - adds r0, r0, r1 - adds r1, r4, #0 - bl EventObjectTurn -_0808DF38: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808DF40: .4byte gUnknown_2036FF0 - thumb_func_end EventObjectTurnByLocalIdAndMap - - thumb_func_start PlayerObjectTurn -PlayerObjectTurn: @ 0x0808DF44 - push {lr} - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrb r2, [r0, #5] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _0808DF60 - adds r0, r0, r2 - bl EventObjectTurn - pop {r0} - bx r0 - .align 2, 0 -_0808DF60: .4byte gUnknown_2036FF0 - thumb_func_end PlayerObjectTurn - - thumb_func_start get_berry_tree_graphics -get_berry_tree_graphics: @ 0x0808DF64 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r7, r1, #0 - ldrb r0, [r5, #1] - movs r1, #0x20 - orrs r0, r1 - strb r0, [r5, #1] - adds r4, r7, #0 - adds r4, #0x3e - ldrb r0, [r4] - movs r1, #4 - orrs r0, r1 - strb r0, [r4] - ldrb r0, [r5, #0x1d] - bl GetStageByBerryTreeId - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - beq _0808DFF0 - ldrb r1, [r5, #1] - movs r0, #0x21 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r5, #1] - ldrb r1, [r4] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4] - ldrb r0, [r5, #0x1d] - bl GetBerryTypeByBerryTreeId - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - subs r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r4, #0x2b - bls _0808DFB8 - movs r4, #0 -_0808DFB8: - ldr r0, _0808DFF8 - lsls r4, r4, #2 - adds r0, r4, r0 - ldr r0, [r0] - adds r0, r0, r6 - ldrb r1, [r0] - adds r0, r5, #0 - bl EventObjectSetGraphicsId - ldr r0, _0808DFFC - adds r0, r4, r0 - ldr r0, [r0] - str r0, [r7, #0xc] - ldr r0, _0808E000 - adds r4, r4, r0 - ldr r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r1, r1, #4 - ldrb r2, [r7, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r1 - strb r0, [r7, #5] - adds r0, r7, #0 - adds r1, r6, #0 - bl StartSpriteAnim -_0808DFF0: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0808DFF8: .4byte gUnknown_84E4D5C -_0808DFFC: .4byte gUnknown_84E4C04 -_0808E000: .4byte gUnknown_84E4CB0 - thumb_func_end get_berry_tree_graphics - - thumb_func_start GetEventObjectGraphicsInfo -GetEventObjectGraphicsInfo: @ 0x0808E004 - push {lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xef - bls _0808E01C - adds r0, r1, #0 - adds r0, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl VarGetEventObjectGraphicsId - adds r1, r0, #0 -_0808E01C: - cmp r1, #0x45 - bne _0808E034 - bl sub_081206E8 - lsls r0, r0, #0x18 - ldr r1, _0808E030 - lsrs r0, r0, #0x16 - adds r0, r0, r1 - ldr r0, [r0] - b _0808E042 - .align 2, 0 -_0808E030: .4byte gUnknown_84DDE30 -_0808E034: - cmp r1, #0xee - bls _0808E03A - movs r1, #5 -_0808E03A: - ldr r0, _0808E048 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] -_0808E042: - pop {r1} - bx r1 - .align 2, 0 -_0808E048: .4byte gUnknown_84DDA74 - thumb_func_end GetEventObjectGraphicsInfo - - thumb_func_start SetEventObjectDynamicGraphicsId -SetEventObjectDynamicGraphicsId: @ 0x0808E04C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #5] - cmp r0, #0xef - bls _0808E062 - adds r0, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl VarGetEventObjectGraphicsId - strb r0, [r4, #5] -_0808E062: - pop {r4} - pop {r0} - bx r0 - thumb_func_end SetEventObjectDynamicGraphicsId - - thumb_func_start npc_by_local_id_and_map_set_field_1_bit_x20 -npc_by_local_id_and_map_set_field_1_bit_x20: @ 0x0808E068 - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r4, r3, #0x18 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808E0AA - ldr r2, _0808E0B4 - mov r0, sp - ldrb r0, [r0] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #1 - adds r2, r4, #0 - ands r2, r0 - lsls r2, r2, #5 - ldrb r3, [r1, #1] - movs r0, #0x21 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, #1] -_0808E0AA: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808E0B4: .4byte gUnknown_2036FF0 - thumb_func_end npc_by_local_id_and_map_set_field_1_bit_x20 - - thumb_func_start EventObjectGetLocalIdAndMap -EventObjectGetLocalIdAndMap: @ 0x0808E0B8 - push {r4, lr} - ldrb r4, [r0, #8] - strb r4, [r1] - ldrb r1, [r0, #9] - strb r1, [r2] - ldrb r0, [r0, #0xa] - strb r0, [r3] - pop {r4} - pop {r0} - bx r0 - thumb_func_end EventObjectGetLocalIdAndMap - - thumb_func_start sub_0808E0CC -sub_0808E0CC: @ 0x0808E0CC - push {lr} - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl GetEventObjectIdByXY - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x10 - beq _0808E0F4 - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808E0F8 - adds r0, r0, r1 - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_0808E0F4: - pop {r0} - bx r0 - .align 2, 0 -_0808E0F8: .4byte gUnknown_2036FF0 - thumb_func_end sub_0808E0CC - - thumb_func_start sub_0808E0FC -sub_0808E0FC: @ 0x0808E0FC - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r4, r3, #0x18 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808E142 - mov r0, sp - ldrb r0, [r0] - lsls r2, r0, #3 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r0, _0808E14C - adds r2, r2, r0 - ldrb r1, [r2, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808E150 - adds r0, r0, r1 - ldrb r1, [r2, #3] - movs r3, #4 - orrs r1, r3 - strb r1, [r2, #3] - adds r0, #0x43 - strb r4, [r0] -_0808E142: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808E14C: .4byte gUnknown_2036FF0 -_0808E150: .4byte gUnknown_20205AC - thumb_func_end sub_0808E0FC - - thumb_func_start sub_0808E154 -sub_0808E154: @ 0x0808E154 - push {lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808E190 - mov r0, sp - ldrb r0, [r0] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _0808E198 - adds r1, r1, r0 - ldrb r2, [r1, #3] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #3] - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] -_0808E190: - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_0808E198: .4byte gUnknown_2036FF0 - thumb_func_end sub_0808E154 - - thumb_func_start sub_0808E19C -sub_0808E19C: @ 0x0808E19C - push {r4, r5, lr} - sub sp, #4 - ldr r4, [sp, #0x10] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x10 - lsrs r5, r3, #0x10 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808E1E0 - ldr r2, _0808E1E8 - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808E1EC - adds r0, r0, r1 - strh r5, [r0, #0x24] - strh r4, [r0, #0x26] -_0808E1E0: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0808E1E8: .4byte gUnknown_2036FF0 -_0808E1EC: .4byte gUnknown_20205AC - thumb_func_end sub_0808E19C - - thumb_func_start UpdateShoalTideFlag -UpdateShoalTideFlag: @ 0x0808E1F0 - push {lr} - bl FreeAllSpritePalettes - ldr r1, _0808E200 - movs r0, #0xc - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0808E200: .4byte gUnknown_30030BC - thumb_func_end UpdateShoalTideFlag - - thumb_func_start LoadEventObjectPalette -LoadEventObjectPalette: @ 0x0808E204 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl FindEventObjectPaletteIndexByTag - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r0, _0808E228 - cmp r1, r0 - beq _0808E222 - lsls r0, r1, #3 - ldr r1, _0808E22C - adds r0, r0, r1 - bl sub_0808E264 -_0808E222: - pop {r0} - bx r0 - .align 2, 0 -_0808E228: .4byte 0x000011FF -_0808E22C: .4byte gUnknown_84E401C - thumb_func_end LoadEventObjectPalette - - thumb_func_start Unused_LoadEventObjectPaletteSet -Unused_LoadEventObjectPaletteSet: @ 0x0808E230 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r4, #0 - ldrh r0, [r5] - ldr r1, _0808E260 - cmp r0, r1 - beq _0808E25A - adds r6, r1, #0 -_0808E240: - lsls r0, r4, #1 - adds r0, r0, r5 - ldrh r0, [r0] - bl LoadEventObjectPalette - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #1 - adds r0, r0, r5 - ldrh r0, [r0] - cmp r0, r6 - bne _0808E240 -_0808E25A: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0808E260: .4byte 0x000011FF - thumb_func_end Unused_LoadEventObjectPaletteSet - - thumb_func_start sub_0808E264 -sub_0808E264: @ 0x0808E264 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #4] - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _0808E282 - adds r0, r4, #0 - bl LoadSpritePalette - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0808E284 -_0808E282: - movs r0, #0xff -_0808E284: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0808E264 - - thumb_func_start PatchObjectPalette -PatchObjectPalette: @ 0x0808E28C - push {r4, lr} - adds r4, r1, #0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl FindEventObjectPaletteIndexByTag - lsls r0, r0, #0x18 - ldr r1, _0808E2C0 - lsrs r0, r0, #0x15 - adds r0, r0, r1 - ldr r0, [r0] - lsls r4, r4, #0x14 - movs r1, #0x80 - lsls r1, r1, #0x11 - adds r4, r4, r1 - lsrs r4, r4, #0x10 - adds r1, r4, #0 - movs r2, #0x20 - bl LoadPalette - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808E2C0: .4byte gUnknown_84E401C - thumb_func_end PatchObjectPalette - - thumb_func_start PatchObjectPaletteRange -PatchObjectPaletteRange: @ 0x0808E2C4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - cmp r4, r6 - bhs _0808E2E8 -_0808E2D4: - ldrh r0, [r5] - adds r1, r4, #0 - bl PatchObjectPalette - adds r5, #2 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r6 - blo _0808E2D4 -_0808E2E8: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PatchObjectPaletteRange - - thumb_func_start FindEventObjectPaletteIndexByTag -FindEventObjectPaletteIndexByTag: @ 0x0808E2F0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - movs r2, #0 - ldr r0, _0808E318 - ldrh r1, [r0, #4] - ldr r3, _0808E31C - adds r4, r0, #0 - cmp r1, r3 - beq _0808E330 - adds r6, r4, #0 - adds r1, r3, #0 -_0808E308: - lsls r0, r2, #3 - adds r0, r0, r6 - ldrh r0, [r0, #4] - cmp r0, r5 - bne _0808E320 - adds r0, r2, #0 - b _0808E332 - .align 2, 0 -_0808E318: .4byte gUnknown_84E401C -_0808E31C: .4byte 0x000011FF -_0808E320: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #3 - adds r0, r0, r4 - ldrh r0, [r0, #4] - cmp r0, r1 - bne _0808E308 -_0808E330: - movs r0, #0xff -_0808E332: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end FindEventObjectPaletteIndexByTag - - thumb_func_start LoadPlayerObjectReflectionPalette -LoadPlayerObjectReflectionPalette: @ 0x0808E338 - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl PatchObjectPalette - movs r3, #0 - ldr r1, _0808E380 - ldrh r0, [r1] - ldr r2, _0808E384 - cmp r0, r2 - beq _0808E3A0 - ldr r0, _0808E388 - adds r5, r5, r0 - adds r6, r2, #0 -_0808E35C: - lsls r2, r3, #3 - adds r0, r2, r1 - ldrh r0, [r0] - cmp r0, r4 - bne _0808E390 - adds r1, #4 - adds r1, r2, r1 - ldr r0, _0808E38C - ldrb r0, [r0] - ldr r1, [r1] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - ldrb r1, [r5] - bl PatchObjectPalette - b _0808E3A0 - .align 2, 0 -_0808E380: .4byte gUnknown_84E4154 -_0808E384: .4byte 0x000011FF -_0808E388: .4byte gUnknown_846FA18 -_0808E38C: .4byte gUnknown_2037254 -_0808E390: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r0, r3, #3 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, r6 - bne _0808E35C -_0808E3A0: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LoadPlayerObjectReflectionPalette - - thumb_func_start LoadSpecialObjectReflectionPalette -LoadSpecialObjectReflectionPalette: @ 0x0808E3A8 - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - ldr r0, _0808E3F4 - strh r4, [r0] - adds r0, r4, #0 - adds r1, r5, #0 - bl PatchObjectPalette - movs r3, #0 - ldr r1, _0808E3F8 - ldrh r0, [r1] - ldr r2, _0808E3FC - cmp r0, r2 - beq _0808E418 - ldr r0, _0808E400 - adds r5, r5, r0 - adds r6, r2, #0 -_0808E3D0: - lsls r2, r3, #3 - adds r0, r2, r1 - ldrh r0, [r0] - cmp r0, r4 - bne _0808E408 - adds r1, #4 - adds r1, r2, r1 - ldr r0, _0808E404 - ldrb r0, [r0] - ldr r1, [r1] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - ldrb r1, [r5] - bl PatchObjectPalette - b _0808E418 - .align 2, 0 -_0808E3F4: .4byte gUnknown_2037256 -_0808E3F8: .4byte gUnknown_84E41CC -_0808E3FC: .4byte 0x000011FF -_0808E400: .4byte gUnknown_846FA18 -_0808E404: .4byte gUnknown_2037254 -_0808E408: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r0, r3, #3 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, r6 - bne _0808E3D0 -_0808E418: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LoadSpecialObjectReflectionPalette - - thumb_func_start sub_0808E420 -sub_0808E420: @ 0x0808E420 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl PatchObjectPalette - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0808E420 - - thumb_func_start unref_sub_808EAC4 -unref_sub_808EAC4: @ 0x0808E434 - push {r4, lr} - ldrh r3, [r0, #0x10] - strh r3, [r0, #0x14] - ldrh r4, [r0, #0x12] - strh r4, [r0, #0x16] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r1, r1, r3 - strh r1, [r0, #0x10] - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r2, r2, r4 - strh r2, [r0, #0x12] - pop {r4} - pop {r0} - bx r0 - thumb_func_end unref_sub_808EAC4 - - thumb_func_start ShiftEventObjectCoords -ShiftEventObjectCoords: @ 0x0808E454 - ldrh r3, [r0, #0x10] - strh r3, [r0, #0x14] - ldrh r3, [r0, #0x12] - strh r3, [r0, #0x16] - strh r1, [r0, #0x10] - strh r2, [r0, #0x12] - bx lr - .align 2, 0 - thumb_func_end ShiftEventObjectCoords - - thumb_func_start SetEventObjectCoords -SetEventObjectCoords: @ 0x0808E464 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - strh r1, [r0, #0x14] - strh r2, [r0, #0x16] - strh r1, [r0, #0x10] - strh r2, [r0, #0x12] - bx lr - .align 2, 0 - thumb_func_end SetEventObjectCoords - - thumb_func_start MoveEventObjectToMapCoords -MoveEventObjectToMapCoords: @ 0x0808E478 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - adds r4, r1, #0 - adds r5, r2, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - ldrb r1, [r6, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808E514 - adds r7, r0, r1 - ldrb r0, [r6, #5] - bl GetEventObjectGraphicsInfo - mov r8, r0 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r5, #0 - bl SetEventObjectCoords - movs r1, #0x10 - ldrsh r0, [r6, r1] - movs r2, #0x12 - ldrsh r1, [r6, r2] - adds r2, r7, #0 - adds r2, #0x20 - adds r3, r7, #0 - adds r3, #0x22 - bl SetSpritePosToMapCoords - mov r1, r8 - ldrh r0, [r1, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x11 - rsbs r0, r0, #0 - adds r1, r7, #0 - adds r1, #0x28 - strb r0, [r1] - mov r2, r8 - ldrh r0, [r2, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x11 - rsbs r0, r0, #0 - adds r2, r7, #0 - adds r2, #0x29 - strb r0, [r2] - ldrh r0, [r7, #0x20] - adds r0, #8 - strh r0, [r7, #0x20] - ldrh r1, [r7, #0x22] - adds r1, #0x10 - movs r0, #0 - ldrsb r0, [r2, r0] - adds r0, r0, r1 - strh r0, [r7, #0x22] - adds r0, r6, #0 - bl sub_0808DCFC - ldrb r0, [r6, #1] - lsrs r0, r0, #7 - cmp r0, #0 - beq _0808E50A - bl CameraObjectReset1 -_0808E50A: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0808E514: .4byte gUnknown_20205AC - thumb_func_end MoveEventObjectToMapCoords - - thumb_func_start TryMoveEventObjectToMapCoords -TryMoveEventObjectToMapCoords: @ 0x0808E518 - push {r4, r5, lr} - sub sp, #4 - ldr r4, [sp, #0x10] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x10 - lsrs r5, r3, #0x10 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808E560 - lsls r1, r5, #0x10 - lsls r2, r4, #0x10 - mov r0, sp - ldrb r3, [r0] - lsls r0, r3, #3 - adds r0, r0, r3 - lsls r0, r0, #2 - ldr r3, _0808E568 - adds r0, r0, r3 - movs r3, #0xe0 - lsls r3, r3, #0xb - adds r1, r1, r3 - asrs r1, r1, #0x10 - adds r2, r2, r3 - asrs r2, r2, #0x10 - bl MoveEventObjectToMapCoords -_0808E560: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0808E568: .4byte gUnknown_2036FF0 - thumb_func_end TryMoveEventObjectToMapCoords - - thumb_func_start ShiftStillEventObjectCoords -ShiftStillEventObjectCoords: @ 0x0808E56C - push {lr} - movs r2, #0x10 - ldrsh r1, [r0, r2] - movs r3, #0x12 - ldrsh r2, [r0, r3] - bl ShiftEventObjectCoords - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ShiftStillEventObjectCoords - - thumb_func_start UpdateEventObjectCoordsForCameraUpdate -UpdateEventObjectCoordsForCameraUpdate: @ 0x0808E580 - push {r4, r5, lr} - ldr r2, _0808E5E0 - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0808E5D8 - movs r3, #0 - ldr r5, _0808E5E4 - movs r0, #4 - ldrsh r4, [r2, r0] - movs r0, #8 - ldrsh r1, [r2, r0] -_0808E59A: - lsls r0, r3, #3 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r2, r0, r5 - ldrb r0, [r2] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _0808E5CE - ldrh r0, [r2, #0xc] - subs r0, r0, r4 - strh r0, [r2, #0xc] - ldrh r0, [r2, #0xe] - subs r0, r0, r1 - strh r0, [r2, #0xe] - ldrh r0, [r2, #0x10] - subs r0, r0, r4 - strh r0, [r2, #0x10] - ldrh r0, [r2, #0x12] - subs r0, r0, r1 - strh r0, [r2, #0x12] - ldrh r0, [r2, #0x14] - subs r0, r0, r4 - strh r0, [r2, #0x14] - ldrh r0, [r2, #0x16] - subs r0, r0, r1 - strh r0, [r2, #0x16] -_0808E5CE: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0xf - bls _0808E59A -_0808E5D8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0808E5E0: .4byte gUnknown_2036FD4 -_0808E5E4: .4byte gUnknown_2036FF0 - thumb_func_end UpdateEventObjectCoordsForCameraUpdate - - thumb_func_start GetEventObjectIdByXYZ -GetEventObjectIdByXYZ: @ 0x0808E5E8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - movs r4, #0 - ldr r0, _0808E634 - mov r8, r0 -_0808E600: - lsls r0, r4, #3 - adds r0, r0, r4 - lsls r0, r0, #2 - mov r2, r8 - adds r1, r0, r2 - ldrb r0, [r1] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _0808E638 - movs r2, #0x10 - ldrsh r0, [r1, r2] - cmp r0, r7 - bne _0808E638 - movs r2, #0x12 - ldrsh r0, [r1, r2] - cmp r0, r6 - bne _0808E638 - adds r0, r1, #0 - adds r1, r5, #0 - bl EventObjectDoesZCoordMatch - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808E638 - adds r0, r4, #0 - b _0808E644 - .align 2, 0 -_0808E634: .4byte gUnknown_2036FF0 -_0808E638: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xf - bls _0808E600 - movs r0, #0x10 -_0808E644: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetEventObjectIdByXYZ - - thumb_func_start EventObjectDoesZCoordMatch -EventObjectDoesZCoordMatch: @ 0x0808E650 - push {lr} - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrb r2, [r0, #0xb] - movs r0, #0xf - ands r0, r2 - cmp r0, #0 - beq _0808E670 - cmp r1, #0 - beq _0808E670 - lsls r0, r2, #0x1c - lsrs r0, r0, #0x1c - cmp r0, r1 - beq _0808E670 - movs r0, #0 - b _0808E672 -_0808E670: - movs r0, #1 -_0808E672: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end EventObjectDoesZCoordMatch - - thumb_func_start UpdateEventObjectsForCameraUpdate -UpdateEventObjectsForCameraUpdate: @ 0x0808E678 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - bl UpdateEventObjectCoordsForCameraUpdate - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - bl TrySpawnEventObjects - bl RemoveEventObjectsOutsideView - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end UpdateEventObjectsForCameraUpdate - - thumb_func_start AddCameraObject -AddCameraObject: @ 0x0808E6A4 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _0808E6E0 - movs r1, #0 - movs r2, #0 - movs r3, #4 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0808E6E4 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r2, #0x3e - adds r2, r2, r1 - mov ip, r2 - ldrb r2, [r2] - movs r3, #4 - orrs r2, r3 - mov r3, ip - strb r2, [r3] - strh r4, [r1, #0x2e] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0808E6E0: .4byte gUnknown_846FA28 -_0808E6E4: .4byte gUnknown_20205AC - thumb_func_end AddCameraObject - - thumb_func_start ObjectCB_CameraObject -ObjectCB_CameraObject: @ 0x0808E6E8 - push {r4, r5, lr} - sub sp, #0xc - mov r2, sp - ldr r1, _0808E70C - ldm r1!, {r3, r4, r5} - stm r2!, {r3, r4, r5} - movs r2, #0x30 - ldrsh r1, [r0, r2] - lsls r1, r1, #2 - add r1, sp - ldr r1, [r1] - bl _call_via_r1 - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0808E70C: .4byte gUnknown_846FA40 - thumb_func_end ObjectCB_CameraObject - - thumb_func_start CameraObject_0 -CameraObject_0: @ 0x0808E710 - push {lr} - ldr r3, _0808E748 - movs r1, #0x2e - ldrsh r2, [r0, r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrh r1, [r1, #0x20] - strh r1, [r0, #0x20] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrh r1, [r1, #0x22] - strh r1, [r0, #0x22] - adds r3, r0, #0 - adds r3, #0x3e - ldrb r1, [r3] - movs r2, #4 - orrs r1, r2 - strb r1, [r3] - movs r1, #1 - strh r1, [r0, #0x30] - bl CameraObject_1 - pop {r0} - bx r0 - .align 2, 0 -_0808E748: .4byte gUnknown_20205AC - thumb_func_end CameraObject_0 - - thumb_func_start CameraObject_1 -CameraObject_1: @ 0x0808E74C - push {r4, r5, lr} - ldr r3, _0808E780 - movs r1, #0x2e - ldrsh r2, [r0, r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrh r3, [r1, #0x22] - ldrh r2, [r0, #0x20] - ldrh r4, [r1, #0x20] - movs r5, #0x20 - ldrsh r1, [r1, r5] - subs r1, r1, r2 - strh r1, [r0, #0x32] - ldrh r2, [r0, #0x22] - lsls r1, r3, #0x10 - asrs r1, r1, #0x10 - subs r1, r1, r2 - strh r1, [r0, #0x34] - strh r4, [r0, #0x20] - strh r3, [r0, #0x22] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0808E780: .4byte gUnknown_20205AC - thumb_func_end CameraObject_1 - - thumb_func_start CameraObject_2 -CameraObject_2: @ 0x0808E784 - push {r4, lr} - ldr r4, _0808E7B0 - movs r1, #0x2e - ldrsh r2, [r0, r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrh r1, [r1, #0x20] - movs r3, #0 - strh r1, [r0, #0x20] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrh r1, [r1, #0x22] - strh r1, [r0, #0x22] - strh r3, [r0, #0x32] - strh r3, [r0, #0x34] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808E7B0: .4byte gUnknown_20205AC - thumb_func_end CameraObject_2 - - thumb_func_start FindCameraObject -FindCameraObject: @ 0x0808E7B4 - push {r4, r5, lr} - movs r3, #0 - ldr r4, _0808E7E0 - adds r5, r4, #0 - adds r5, #0x1c -_0808E7BE: - lsls r0, r3, #4 - adds r0, r0, r3 - lsls r1, r0, #2 - adds r2, r1, r4 - adds r0, r2, #0 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _0808E7E8 - adds r0, r1, r5 - ldr r1, [r0] - ldr r0, _0808E7E4 - cmp r1, r0 - bne _0808E7E8 - adds r0, r2, #0 - b _0808E7F4 - .align 2, 0 -_0808E7E0: .4byte gUnknown_20205AC -_0808E7E4: .4byte ObjectCB_CameraObject -_0808E7E8: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0x3f - bls _0808E7BE - movs r0, #0 -_0808E7F4: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end FindCameraObject - - thumb_func_start CameraObjectReset1 -CameraObjectReset1: @ 0x0808E7FC - push {lr} - bl FindCameraObject - adds r2, r0, #0 - cmp r2, #0 - beq _0808E814 - movs r0, #0 - strh r0, [r2, #0x30] - ldr r1, [r2, #0x1c] - adds r0, r2, #0 - bl _call_via_r1 -_0808E814: - pop {r0} - bx r0 - thumb_func_end CameraObjectReset1 - - thumb_func_start CameraObjectSetFollowedObjectId -CameraObjectSetFollowedObjectId: @ 0x0808E818 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl FindCameraObject - cmp r0, #0 - beq _0808E82C - strh r4, [r0, #0x2e] - bl CameraObjectReset1 -_0808E82C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CameraObjectSetFollowedObjectId - - thumb_func_start CameraObjectGetFollowedObjectId -CameraObjectGetFollowedObjectId: @ 0x0808E834 - push {lr} - bl FindCameraObject - cmp r0, #0 - beq _0808E846 - ldrh r0, [r0, #0x2e] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0808E848 -_0808E846: - movs r0, #0x40 -_0808E848: - pop {r1} - bx r1 - thumb_func_end CameraObjectGetFollowedObjectId - - thumb_func_start CameraObjectReset2 -CameraObjectReset2: @ 0x0808E84C - push {lr} - bl FindCameraObject - movs r1, #2 - strh r1, [r0, #0x30] - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CameraObjectReset2 - - thumb_func_start CopySprite -CopySprite: @ 0x0808E85C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov ip, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r8, r1 - lsls r2, r2, #0x10 - lsrs r6, r2, #0x10 - lsls r3, r3, #0x18 - lsrs r7, r3, #0x18 - movs r5, #0 - ldr r1, _0808E8A4 -_0808E876: - lsls r0, r5, #4 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r4, r0, r1 - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1f - cmp r0, #0 - bne _0808E8A8 - adds r0, r4, #0 - mov r1, ip - movs r2, #0x44 - bl memcpy - mov r0, r8 - strh r0, [r4, #0x20] - strh r6, [r4, #0x22] - adds r0, r4, #0 - adds r0, #0x43 - strb r7, [r0] - b _0808E8B2 - .align 2, 0 -_0808E8A4: .4byte gUnknown_20205AC -_0808E8A8: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0x3f - bls _0808E876 -_0808E8B2: - adds r0, r5, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CopySprite - - thumb_func_start CreateCopySpriteAt -CreateCopySpriteAt: @ 0x0808E8C0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov ip, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r8, r1 - lsls r2, r2, #0x10 - lsrs r6, r2, #0x10 - lsls r3, r3, #0x18 - lsrs r7, r3, #0x18 - movs r5, #0x3f - ldr r3, _0808E914 - movs r2, #1 - rsbs r2, r2, #0 -_0808E8DE: - lsls r0, r5, #0x10 - asrs r1, r0, #0x10 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, r0, r3 - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1f - cmp r0, #0 - bne _0808E918 - adds r0, r4, #0 - mov r1, ip - movs r2, #0x44 - bl memcpy - mov r0, r8 - strh r0, [r4, #0x20] - strh r6, [r4, #0x22] - adds r0, r4, #0 - adds r0, #0x43 - strb r7, [r0] - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - b _0808E926 - .align 2, 0 -_0808E914: .4byte gUnknown_20205AC -_0808E918: - subs r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, r2 - bgt _0808E8DE - movs r0, #0x40 -_0808E926: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end CreateCopySpriteAt - - thumb_func_start SetEventObjectDirection -SetEventObjectDirection: @ 0x0808E930 - push {r4, lr} - adds r3, r0, #0 - lsls r1, r1, #0x18 - lsrs r2, r1, #0x18 - adds r4, r2, #0 - ldrb r0, [r3, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - adds r1, r3, #0 - adds r1, #0x20 - strb r0, [r1] - ldrb r0, [r3, #1] - lsls r0, r0, #0x1e - cmp r0, #0 - blt _0808E960 - movs r0, #0xf - adds r1, r2, #0 - ands r1, r0 - ldrb r2, [r3, #0x18] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x18] -_0808E960: - lsls r2, r4, #4 - ldrb r1, [r3, #0x18] - movs r0, #0xf - ands r0, r1 - orrs r0, r2 - strb r0, [r3, #0x18] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetEventObjectDirection - - thumb_func_start GetEventObjectScriptPointerByLocalIdAndMap -GetEventObjectScriptPointerByLocalIdAndMap: @ 0x0808E974 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - bl GetEventObjectTemplateByLocalIdAndMap - ldr r0, [r0, #0x10] - pop {r1} - bx r1 - thumb_func_end GetEventObjectScriptPointerByLocalIdAndMap - - thumb_func_start GetEventObjectScriptPointerByEventObjectId -GetEventObjectScriptPointerByEventObjectId: @ 0x0808E98C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0808E9AC - lsls r2, r0, #3 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r1 - ldrb r0, [r2, #8] - ldrb r1, [r2, #9] - ldrb r2, [r2, #0xa] - bl GetEventObjectScriptPointerByLocalIdAndMap - pop {r1} - bx r1 - .align 2, 0 -_0808E9AC: .4byte gUnknown_2036FF0 - thumb_func_end GetEventObjectScriptPointerByEventObjectId - - thumb_func_start GetEventObjectFlagIdByLocalIdAndMap -GetEventObjectFlagIdByLocalIdAndMap: @ 0x0808E9B0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - bl GetEventObjectTemplateByLocalIdAndMap - ldrh r0, [r0, #0x14] - pop {r1} - bx r1 - thumb_func_end GetEventObjectFlagIdByLocalIdAndMap - - thumb_func_start GetEventObjectFlagIdByEventObjectId -GetEventObjectFlagIdByEventObjectId: @ 0x0808E9C8 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0808E9EC - lsls r2, r0, #3 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r1 - ldrb r0, [r2, #8] - ldrb r1, [r2, #9] - ldrb r2, [r2, #0xa] - bl GetEventObjectFlagIdByLocalIdAndMap - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 -_0808E9EC: .4byte gUnknown_2036FF0 - thumb_func_end GetEventObjectFlagIdByEventObjectId - - thumb_func_start sub_0808E9F0 -sub_0808E9F0: @ 0x0808E9F0 - push {lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808EA24 - ldr r2, _0808EA20 - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #7] - b _0808EA26 - .align 2, 0 -_0808EA20: .4byte gUnknown_2036FF0 -_0808EA24: - movs r0, #0xff -_0808EA26: - add sp, #4 - pop {r1} - bx r1 - thumb_func_end sub_0808E9F0 - - thumb_func_start sub_0808EA2C -sub_0808EA2C: @ 0x0808EA2C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0808EA40 - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r0, [r1, #7] - bx lr - .align 2, 0 -_0808EA40: .4byte gUnknown_2036FF0 - thumb_func_end sub_0808EA2C - - thumb_func_start sub_0808EA44 -sub_0808EA44: @ 0x0808EA44 - push {lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808EA78 - ldr r2, _0808EA74 - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #0x1d] - b _0808EA7A - .align 2, 0 -_0808EA74: .4byte gUnknown_2036FF0 -_0808EA78: - movs r0, #0xff -_0808EA7A: - add sp, #4 - pop {r1} - bx r1 - thumb_func_end sub_0808EA44 - - thumb_func_start EventObjectGetBerryTreeId -EventObjectGetBerryTreeId: @ 0x0808EA80 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0808EA94 - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r0, [r1, #0x1d] - bx lr - .align 2, 0 -_0808EA94: .4byte gUnknown_2036FF0 - thumb_func_end EventObjectGetBerryTreeId - - thumb_func_start GetEventObjectTemplateByLocalIdAndMap -GetEventObjectTemplateByLocalIdAndMap: @ 0x0808EA98 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r0, _0808EAC8 - ldr r1, [r0] - movs r0, #5 - ldrsb r0, [r1, r0] - cmp r0, r3 - bne _0808EAD0 - movs r0, #4 - ldrsb r0, [r1, r0] - cmp r0, r2 - bne _0808EAD0 - movs r0, #0xc7 - lsls r0, r0, #4 - adds r1, r1, r0 - ldr r0, _0808EACC - ldr r0, [r0, #4] - b _0808EADC - .align 2, 0 -_0808EAC8: .4byte gUnknown_3005AEC -_0808EACC: .4byte gUnknown_2036FB8 -_0808EAD0: - adds r0, r2, #0 - adds r1, r3, #0 - bl Overworld_GetMapHeaderByGroupAndId - ldr r0, [r0, #4] - ldr r1, [r0, #4] -_0808EADC: - ldrb r2, [r0] - adds r0, r4, #0 - bl FindEventObjectTemplateByLocalId - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetEventObjectTemplateByLocalIdAndMap - - thumb_func_start FindEventObjectTemplateByLocalId -FindEventObjectTemplateByLocalId: @ 0x0808EAEC - push {r4, r5, lr} - adds r5, r1, #0 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r1, #0 - cmp r1, r2 - bhs _0808EB1A -_0808EAFE: - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r3, r0, r5 - ldrb r0, [r3] - cmp r0, r4 - bne _0808EB10 - adds r0, r3, #0 - b _0808EB1C -_0808EB10: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, r2 - blo _0808EAFE -_0808EB1A: - movs r0, #0 -_0808EB1C: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end FindEventObjectTemplateByLocalId - - thumb_func_start GetBaseTemplateForEventObject -GetBaseTemplateForEventObject: @ 0x0808EB24 - push {r4, r5, lr} - adds r3, r0, #0 - ldrb r0, [r3, #9] - ldr r1, _0808EB44 - ldr r2, [r1] - movs r1, #5 - ldrsb r1, [r2, r1] - cmp r0, r1 - bne _0808EB70 - ldrb r1, [r3, #0xa] - movs r0, #4 - ldrsb r0, [r2, r0] - cmp r1, r0 - beq _0808EB52 - b _0808EB70 - .align 2, 0 -_0808EB44: .4byte gUnknown_3005AEC -_0808EB48: - movs r1, #0xc7 - lsls r1, r1, #4 - adds r0, r0, r1 - adds r0, r4, r0 - b _0808EB72 -_0808EB52: - movs r1, #0 - adds r4, r2, #0 - ldrb r3, [r3, #8] - movs r5, #0xc7 - lsls r5, r5, #4 - adds r2, r4, r5 - movs r0, #0 -_0808EB60: - ldrb r5, [r2] - cmp r3, r5 - beq _0808EB48 - adds r2, #0x18 - adds r0, #0x18 - adds r1, #1 - cmp r1, #0x3f - ble _0808EB60 -_0808EB70: - movs r0, #0 -_0808EB72: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end GetBaseTemplateForEventObject - - thumb_func_start OverrideTemplateCoordsForEventObject -OverrideTemplateCoordsForEventObject: @ 0x0808EB78 - push {r4, lr} - adds r4, r0, #0 - bl GetBaseTemplateForEventObject - adds r1, r0, #0 - cmp r1, #0 - beq _0808EB92 - ldrh r0, [r4, #0x10] - subs r0, #7 - strh r0, [r1, #4] - ldrh r0, [r4, #0x12] - subs r0, #7 - strh r0, [r1, #6] -_0808EB92: - pop {r4} - pop {r0} - bx r0 - thumb_func_end OverrideTemplateCoordsForEventObject - - thumb_func_start OverrideEventObjectTemplateScript -OverrideEventObjectTemplateScript: @ 0x0808EB98 - push {r4, lr} - adds r4, r1, #0 - bl GetBaseTemplateForEventObject - cmp r0, #0 - beq _0808EBA6 - str r4, [r0, #0x10] -_0808EBA6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end OverrideEventObjectTemplateScript - - thumb_func_start TryOverrideTemplateCoordsForEventObject -TryOverrideTemplateCoordsForEventObject: @ 0x0808EBAC - push {r4, lr} - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - bl GetBaseTemplateForEventObject - cmp r0, #0 - beq _0808EBBC - strb r4, [r0, #9] -_0808EBBC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end TryOverrideTemplateCoordsForEventObject - - thumb_func_start TryOverrideEventObjectTemplateCoords -TryOverrideEventObjectTemplateCoords: @ 0x0808EBC4 - push {lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808EBF2 - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808EBF8 - adds r0, r0, r1 - bl OverrideTemplateCoordsForEventObject -_0808EBF2: - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_0808EBF8: .4byte gUnknown_2036FF0 - thumb_func_end TryOverrideEventObjectTemplateCoords - - thumb_func_start OverrideSecretBaseDecorationSpriteScript -OverrideSecretBaseDecorationSpriteScript: @ 0x0808EBFC - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r4, r3, #0x18 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808EC58 - cmp r4, #6 - beq _0808EC26 - cmp r4, #7 - beq _0808EC44 - b _0808EC58 -_0808EC26: - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808EC3C - adds r0, r0, r1 - ldr r1, _0808EC40 - bl OverrideEventObjectTemplateScript - b _0808EC58 - .align 2, 0 -_0808EC3C: .4byte gUnknown_2036FF0 -_0808EC40: .4byte gUnknown_82465B5 -_0808EC44: - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808EC60 - adds r0, r0, r1 - ldr r1, _0808EC64 - bl OverrideEventObjectTemplateScript -_0808EC58: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808EC60: .4byte gUnknown_2036FF0 -_0808EC64: .4byte gUnknown_82465B9 - thumb_func_end OverrideSecretBaseDecorationSpriteScript - - thumb_func_start sub_0808EC68 -sub_0808EC68: @ 0x0808EC68 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl UpdateShoalTideFlag - ldr r1, _0808ECA0 - ldr r2, _0808ECA4 - adds r0, r2, #0 - strh r0, [r1] - ldr r2, _0808ECA8 - strb r4, [r2] - cmp r4, #1 - bne _0808ECB4 - ldr r1, _0808ECAC - ldrb r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0 - movs r2, #6 - bl PatchObjectPaletteRange - ldr r1, _0808ECB0 - movs r0, #8 - strb r0, [r1] - b _0808ECC6 - .align 2, 0 -_0808ECA0: .4byte gUnknown_2037256 -_0808ECA4: .4byte 0x000011FF -_0808ECA8: .4byte gUnknown_2037254 -_0808ECAC: .4byte gUnknown_84E428C -_0808ECB0: .4byte gUnknown_30030BC -_0808ECB4: - ldr r0, _0808ECCC - ldrb r1, [r2] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - movs r1, #0 - movs r2, #0xa - bl PatchObjectPaletteRange -_0808ECC6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808ECCC: .4byte gUnknown_84E428C - thumb_func_end sub_0808EC68 - - thumb_func_start GetObjectPaletteTag -GetObjectPaletteTag: @ 0x0808ECD0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #9 - bhi _0808ED0C - ldr r1, _0808ECEC - ldr r0, _0808ECF0 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - lsls r0, r2, #1 - b _0808ED00 - .align 2, 0 -_0808ECEC: .4byte gUnknown_84E428C -_0808ECF0: .4byte gUnknown_2037254 -_0808ECF4: - adds r1, r4, #4 - adds r1, r2, r1 - ldr r0, _0808ED08 - ldrb r0, [r0] - ldr r1, [r1] - lsls r0, r0, #1 -_0808ED00: - adds r0, r0, r1 - ldrh r0, [r0] - b _0808ED3E - .align 2, 0 -_0808ED08: .4byte gUnknown_2037254 -_0808ED0C: - movs r3, #0 - ldr r0, _0808ED44 - ldrh r1, [r0] - ldr r2, _0808ED48 - adds r4, r0, #0 - cmp r1, r2 - beq _0808ED3C - adds r6, r4, #0 - ldr r0, _0808ED4C - ldrh r1, [r0] - adds r5, r2, #0 -_0808ED22: - lsls r2, r3, #3 - adds r0, r2, r6 - ldrh r0, [r0] - cmp r0, r1 - beq _0808ECF4 - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r0, r3, #3 - adds r0, r0, r4 - ldrh r0, [r0] - cmp r0, r5 - bne _0808ED22 -_0808ED3C: - ldr r0, _0808ED48 -_0808ED3E: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0808ED44: .4byte gUnknown_84E41CC -_0808ED48: .4byte 0x000011FF -_0808ED4C: .4byte gUnknown_2037256 - thumb_func_end GetObjectPaletteTag - - thumb_func_start MovementType_None -MovementType_None: @ 0x0808ED50 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _0808ED6C - adds r0, r0, r2 - ldr r2, _0808ED70 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_0808ED6C: .4byte gUnknown_2036FF0 -_0808ED70: .4byte sub_0808ED74 - thumb_func_end MovementType_None - - thumb_func_start sub_0808ED74 -sub_0808ED74: @ 0x0808ED74 - movs r0, #0 - bx lr - thumb_func_end sub_0808ED74 - - thumb_func_start MovementType_WanderAround -MovementType_WanderAround: @ 0x0808ED78 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _0808ED94 - adds r0, r0, r2 - ldr r2, _0808ED98 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_0808ED94: .4byte gUnknown_2036FF0 -_0808ED98: .4byte sub_0808ED9C - thumb_func_end MovementType_WanderAround - - thumb_func_start sub_0808ED9C -sub_0808ED9C: @ 0x0808ED9C - push {r4, lr} - ldr r3, _0808EDB8 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_0808ED9C - - thumb_func_start sub_0808EDB0 -sub_0808EDB0: @ 0x0808EDB0 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0808EDB8: .4byte gUnknown_84E5B48 - thumb_func_end sub_0808EDB0 - - thumb_func_start MovementType_WanderAround_Step0 -MovementType_WanderAround_Step0: @ 0x0808EDBC - push {r4, lr} - adds r4, r1, #0 - bl ClearEventObjectMovement - movs r0, #1 - strh r0, [r4, #0x30] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_WanderAround_Step0 - - thumb_func_start MovementType_WanderAround_Step1 -MovementType_WanderAround_Step1: @ 0x0808EDD0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_08092CA0 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl EventObjectSetSingleMovement - movs r0, #2 - strh r0, [r5, #0x30] - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_WanderAround_Step1 - - thumb_func_start MovementType_WanderAround_Step2 -MovementType_WanderAround_Step2: @ 0x0808EDFC - push {r4, r5, r6, lr} - adds r6, r1, #0 - bl EventObjectExecSingleMovementAction - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808EE30 - ldr r5, _0808EE2C - bl Random - movs r4, #3 - adds r1, r4, #0 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r5 - movs r0, #0 - ldrsh r1, [r1, r0] - adds r0, r6, #0 - bl sub_080972E8 - strh r4, [r6, #0x30] - movs r0, #1 - b _0808EE32 - .align 2, 0 -_0808EE2C: .4byte gUnknown_84E5B30 -_0808EE30: - movs r0, #0 -_0808EE32: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end MovementType_WanderAround_Step2 - - thumb_func_start MovementType_WanderAround_Step3 -MovementType_WanderAround_Step3: @ 0x0808EE38 - push {r4, lr} - adds r4, r1, #0 - adds r0, r4, #0 - bl WaitForMovementDelay - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808EE4C - movs r0, #0 - b _0808EE52 -_0808EE4C: - movs r0, #4 - strh r0, [r4, #0x30] - movs r0, #1 -_0808EE52: - pop {r4} - pop {r1} - bx r1 - thumb_func_end MovementType_WanderAround_Step3 - - thumb_func_start MovementType_WanderAround_Step4 -MovementType_WanderAround_Step4: @ 0x0808EE58 - push {r4, r5, r6, lr} - sub sp, #4 - adds r5, r0, #0 - adds r6, r1, #0 - ldr r1, _0808EEA0 - mov r0, sp - movs r2, #4 - bl memcpy - bl Random - movs r1, #3 - ands r1, r0 - mov r2, sp - adds r0, r2, r1 - ldrb r4, [r0] - adds r0, r5, #0 - adds r1, r4, #0 - bl SetEventObjectDirection - movs r0, #5 - strh r0, [r6, #0x30] - adds r0, r5, #0 - adds r1, r4, #0 - bl GetCollisionInDirection - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808EE96 - movs r0, #1 - strh r0, [r6, #0x30] -_0808EE96: - movs r0, #1 - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0808EEA0: .4byte gUnknown_84E5B64 - thumb_func_end MovementType_WanderAround_Step4 - - thumb_func_start MovementType_WanderAround_Step5 -MovementType_WanderAround_Step5: @ 0x0808EEA4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #0x18] - lsrs r0, r0, #4 - bl sub_08092CF8 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl EventObjectSetSingleMovement - ldrb r0, [r4] - movs r1, #2 - orrs r0, r1 - strb r0, [r4] - movs r0, #6 - strh r0, [r5, #0x30] - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementType_WanderAround_Step5 - - thumb_func_start MovementType_WanderAround_Step6 -MovementType_WanderAround_Step6: @ 0x0808EED4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl EventObjectExecSingleMovementAction - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808EEF2 - ldrb r0, [r4] - movs r1, #3 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4] - movs r0, #1 - strh r0, [r5, #0x30] -_0808EEF2: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_WanderAround_Step6 - - thumb_func_start EventObjectIsTrainerAndCloseToPlayer -EventObjectIsTrainerAndCloseToPlayer: @ 0x0808EEFC - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r5, r0, #0 - movs r0, #0x80 - bl TestPlayerAvatarFlags - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808EF68 - ldrb r0, [r5, #7] - cmp r0, #1 - beq _0808EF18 - cmp r0, #3 - bne _0808EF68 -_0808EF18: - mov r7, sp - adds r7, #2 - mov r0, sp - adds r1, r7, #0 - bl PlayerGetDestCoords - ldrh r2, [r5, #0x10] - ldrh r4, [r5, #0x12] - ldrb r1, [r5, #0x1d] - subs r3, r2, r1 - subs r0, r4, r1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r2, r1, r2 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - adds r1, r1, r4 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - mov r0, sp - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - movs r1, #0 - ldrsh r4, [r0, r1] - cmp r3, r4 - bgt _0808EF68 - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - cmp r0, r4 - blt _0808EF68 - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - movs r2, #0 - ldrsh r1, [r7, r2] - cmp r0, r1 - bgt _0808EF68 - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - cmp r0, r1 - bge _0808EF6C -_0808EF68: - movs r0, #0 - b _0808EF6E -_0808EF6C: - movs r0, #1 -_0808EF6E: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end EventObjectIsTrainerAndCloseToPlayer - - thumb_func_start GetVectorDirection -GetVectorDirection: @ 0x0808EF78 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r0, r1, #0x10 - lsls r2, r2, #0x10 - lsls r3, r3, #0x10 - cmp r2, r3 - ble _0808EF96 - movs r2, #4 - lsls r0, r4, #0x10 - cmp r0, #0 - bge _0808EFA0 - movs r2, #3 - b _0808EFA0 -_0808EF96: - movs r2, #1 - lsls r0, r0, #0x10 - cmp r0, #0 - bge _0808EFA0 - movs r2, #2 -_0808EFA0: - adds r0, r2, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetVectorDirection - - thumb_func_start GetLimitedVectorDirection_SouthNorth -GetLimitedVectorDirection_SouthNorth: @ 0x0808EFA8 - push {lr} - movs r0, #1 - lsls r1, r1, #0x10 - cmp r1, #0 - bge _0808EFB4 - movs r0, #2 -_0808EFB4: - pop {r1} - bx r1 - thumb_func_end GetLimitedVectorDirection_SouthNorth - - thumb_func_start GetLimitedVectorDirection_WestEast -GetLimitedVectorDirection_WestEast: @ 0x0808EFB8 - push {lr} - movs r1, #4 - lsls r0, r0, #0x10 - cmp r0, #0 - bge _0808EFC4 - movs r1, #3 -_0808EFC4: - adds r0, r1, #0 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetLimitedVectorDirection_WestEast - - thumb_func_start GetLimitedVectorDirection_WestNorth -GetLimitedVectorDirection_WestNorth: @ 0x0808EFCC - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - asrs r4, r0, #0x10 - lsls r1, r1, #0x10 - asrs r5, r1, #0x10 - lsls r2, r2, #0x10 - asrs r6, r2, #0x10 - lsls r3, r3, #0x10 - asrs r7, r3, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - adds r3, r7, #0 - bl GetVectorDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0808F008 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - adds r3, r7, #0 - bl GetLimitedVectorDirection_WestEast - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bne _0808F022 - b _0808F020 -_0808F008: - cmp r0, #4 - bne _0808F022 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - adds r3, r7, #0 - bl GetLimitedVectorDirection_SouthNorth - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0808F022 -_0808F020: - movs r0, #2 -_0808F022: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end GetLimitedVectorDirection_WestNorth - - thumb_func_start GetLimitedVectorDirection_EastNorth -GetLimitedVectorDirection_EastNorth: @ 0x0808F028 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - asrs r4, r0, #0x10 - lsls r1, r1, #0x10 - asrs r5, r1, #0x10 - lsls r2, r2, #0x10 - asrs r6, r2, #0x10 - lsls r3, r3, #0x10 - asrs r7, r3, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - adds r3, r7, #0 - bl GetVectorDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0808F064 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - adds r3, r7, #0 - bl GetLimitedVectorDirection_WestEast - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bne _0808F07E - b _0808F07C -_0808F064: - cmp r0, #3 - bne _0808F07E - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - adds r3, r7, #0 - bl GetLimitedVectorDirection_SouthNorth - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0808F07E -_0808F07C: - movs r0, #2 -_0808F07E: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end GetLimitedVectorDirection_EastNorth - - thumb_func_start GetLimitedVectorDirection_WestSouth -GetLimitedVectorDirection_WestSouth: @ 0x0808F084 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - asrs r4, r0, #0x10 - lsls r1, r1, #0x10 - asrs r5, r1, #0x10 - lsls r2, r2, #0x10 - asrs r6, r2, #0x10 - lsls r3, r3, #0x10 - asrs r7, r3, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - adds r3, r7, #0 - bl GetVectorDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _0808F0C0 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - adds r3, r7, #0 - bl GetLimitedVectorDirection_WestEast - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bne _0808F0DA - b _0808F0D8 -_0808F0C0: - cmp r0, #4 - bne _0808F0DA - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - adds r3, r7, #0 - bl GetLimitedVectorDirection_SouthNorth - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _0808F0DA -_0808F0D8: - movs r0, #1 -_0808F0DA: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end GetLimitedVectorDirection_WestSouth - - thumb_func_start GetLimitedVectorDirection_EastSouth -GetLimitedVectorDirection_EastSouth: @ 0x0808F0E0 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - asrs r4, r0, #0x10 - lsls r1, r1, #0x10 - asrs r5, r1, #0x10 - lsls r2, r2, #0x10 - asrs r6, r2, #0x10 - lsls r3, r3, #0x10 - asrs r7, r3, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - adds r3, r7, #0 - bl GetVectorDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _0808F11C - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - adds r3, r7, #0 - bl GetLimitedVectorDirection_WestEast - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bne _0808F136 - b _0808F134 -_0808F11C: - cmp r0, #3 - bne _0808F136 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - adds r3, r7, #0 - bl GetLimitedVectorDirection_SouthNorth - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _0808F136 -_0808F134: - movs r0, #1 -_0808F136: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end GetLimitedVectorDirection_EastSouth - - thumb_func_start GetLimitedVectorDirection_SouthNorthWest -GetLimitedVectorDirection_SouthNorthWest: @ 0x0808F13C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - asrs r7, r0, #0x10 - lsls r1, r1, #0x10 - asrs r6, r1, #0x10 - lsls r2, r2, #0x10 - asrs r5, r2, #0x10 - lsls r3, r3, #0x10 - asrs r4, r3, #0x10 - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r5, #0 - adds r3, r4, #0 - bl GetVectorDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bne _0808F172 - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r5, #0 - adds r3, r4, #0 - bl GetLimitedVectorDirection_SouthNorth - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_0808F172: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end GetLimitedVectorDirection_SouthNorthWest - - thumb_func_start GetLimitedVectorDirection_SouthNorthEast -GetLimitedVectorDirection_SouthNorthEast: @ 0x0808F178 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - asrs r7, r0, #0x10 - lsls r1, r1, #0x10 - asrs r6, r1, #0x10 - lsls r2, r2, #0x10 - asrs r5, r2, #0x10 - lsls r3, r3, #0x10 - asrs r4, r3, #0x10 - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r5, #0 - adds r3, r4, #0 - bl GetVectorDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bne _0808F1AE - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r5, #0 - adds r3, r4, #0 - bl GetLimitedVectorDirection_SouthNorth - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_0808F1AE: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end GetLimitedVectorDirection_SouthNorthEast - - thumb_func_start GetLimitedVectorDirection_NorthWestEast -GetLimitedVectorDirection_NorthWestEast: @ 0x0808F1B4 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - asrs r7, r0, #0x10 - lsls r1, r1, #0x10 - asrs r6, r1, #0x10 - lsls r2, r2, #0x10 - asrs r5, r2, #0x10 - lsls r3, r3, #0x10 - asrs r4, r3, #0x10 - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r5, #0 - adds r3, r4, #0 - bl GetVectorDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0808F1EA - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r5, #0 - adds r3, r4, #0 - bl GetLimitedVectorDirection_WestEast - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_0808F1EA: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end GetLimitedVectorDirection_NorthWestEast - - thumb_func_start GetLimitedVectorDirection_SouthWestEast -GetLimitedVectorDirection_SouthWestEast: @ 0x0808F1F0 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - asrs r7, r0, #0x10 - lsls r1, r1, #0x10 - asrs r6, r1, #0x10 - lsls r2, r2, #0x10 - asrs r5, r2, #0x10 - lsls r3, r3, #0x10 - asrs r4, r3, #0x10 - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r5, #0 - adds r3, r4, #0 - bl GetVectorDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _0808F226 - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r5, #0 - adds r3, r4, #0 - bl GetLimitedVectorDirection_WestEast - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_0808F226: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end GetLimitedVectorDirection_SouthWestEast - - thumb_func_start TryGetTrainerEncounterDirection -TryGetTrainerEncounterDirection: @ 0x0808F22C - push {r4, r5, r6, lr} - sub sp, #4 - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - bl EventObjectIsTrainerAndCloseToPlayer - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808F244 - movs r0, #0 - b _0808F2A8 -_0808F244: - mov r5, sp - adds r5, #2 - mov r0, sp - adds r1, r5, #0 - bl PlayerGetDestCoords - mov r2, sp - mov r0, sp - ldrh r0, [r0] - ldrh r1, [r4, #0x10] - subs r0, r0, r1 - strh r0, [r2] - ldrh r0, [r5] - ldrh r1, [r4, #0x12] - subs r0, r0, r1 - strh r0, [r5] - mov r0, sp - ldrh r3, [r5] - ldrh r2, [r0] - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bge _0808F278 - rsbs r0, r0, #0 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 -_0808F278: - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _0808F286 - rsbs r0, r0, #0 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 -_0808F286: - ldr r0, _0808F2B0 - lsls r4, r6, #2 - adds r4, r4, r0 - mov r0, sp - movs r6, #0 - ldrsh r0, [r0, r6] - movs r6, #0 - ldrsh r1, [r5, r6] - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - ldr r4, [r4] - bl _call_via_r4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_0808F2A8: - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0808F2B0: .4byte gUnknown_84E5B68 - thumb_func_end TryGetTrainerEncounterDirection - - thumb_func_start MovementType_LookAround -MovementType_LookAround: @ 0x0808F2B4 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _0808F2D0 - adds r0, r0, r2 - ldr r2, _0808F2D4 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_0808F2D0: .4byte gUnknown_2036FF0 -_0808F2D4: .4byte sub_0808F2D8 - thumb_func_end MovementType_LookAround - - thumb_func_start sub_0808F2D8 -sub_0808F2D8: @ 0x0808F2D8 - push {r4, lr} - ldr r3, _0808F2F4 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_0808F2D8 - - thumb_func_start sub_0808F2EC -sub_0808F2EC: @ 0x0808F2EC - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0808F2F4: .4byte gUnknown_84E5B94 - thumb_func_end sub_0808F2EC - - thumb_func_start MovementType_LookAround_Step0 -MovementType_LookAround_Step0: @ 0x0808F2F8 - push {r4, lr} - adds r4, r1, #0 - bl ClearEventObjectMovement - movs r0, #1 - strh r0, [r4, #0x30] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_LookAround_Step0 - - thumb_func_start MovementType_LookAround_Step1 -MovementType_LookAround_Step1: @ 0x0808F30C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_08092CA0 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl EventObjectSetSingleMovement - movs r0, #2 - strh r0, [r5, #0x30] - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_LookAround_Step1 - - thumb_func_start MovementType_LookAround_Step2 -MovementType_LookAround_Step2: @ 0x0808F338 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r7, r1, #0 - bl EventObjectExecSingleMovementAction - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808F36E - ldr r4, _0808F378 - bl Random - movs r5, #3 - adds r1, r5, #0 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - movs r0, #0 - ldrsh r1, [r1, r0] - adds r0, r7, #0 - bl sub_080972E8 - ldrb r1, [r6] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r6] - strh r5, [r7, #0x30] -_0808F36E: - movs r0, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0808F378: .4byte gUnknown_84E5B30 - thumb_func_end MovementType_LookAround_Step2 - - thumb_func_start MovementType_LookAround_Step3 -MovementType_LookAround_Step3: @ 0x0808F37C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r0, r5, #0 - bl WaitForMovementDelay - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808F39A - adds r0, r4, #0 - bl EventObjectIsTrainerAndCloseToPlayer - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808F3A2 -_0808F39A: - movs r0, #4 - strh r0, [r5, #0x30] - movs r0, #1 - b _0808F3A4 -_0808F3A2: - movs r0, #0 -_0808F3A4: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_LookAround_Step3 - - thumb_func_start MovementType_LookAround_Step4 -MovementType_LookAround_Step4: @ 0x0808F3AC - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _0808F3F0 - mov r0, sp - movs r2, #4 - bl memcpy - adds r0, r4, #0 - movs r1, #0 - bl TryGetTrainerEncounterDirection - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0808F3DC - bl Random - movs r1, #3 - ands r1, r0 - mov r2, sp - adds r0, r2, r1 - ldrb r1, [r0] -_0808F3DC: - adds r0, r4, #0 - bl SetEventObjectDirection - movs r0, #1 - strh r0, [r5, #0x30] - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0808F3F0: .4byte gUnknown_84E5B64 - thumb_func_end MovementType_LookAround_Step4 - - thumb_func_start MovementType_WanderUpAndDown -MovementType_WanderUpAndDown: @ 0x0808F3F4 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _0808F410 - adds r0, r0, r2 - ldr r2, _0808F414 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_0808F410: .4byte gUnknown_2036FF0 -_0808F414: .4byte sub_0808F418 - thumb_func_end MovementType_WanderUpAndDown - - thumb_func_start sub_0808F418 -sub_0808F418: @ 0x0808F418 - push {r4, lr} - ldr r3, _0808F434 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_0808F418 - - thumb_func_start sub_0808F42C -sub_0808F42C: @ 0x0808F42C - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0808F434: .4byte gUnknown_84E5BA8 - thumb_func_end sub_0808F42C - - thumb_func_start MovementType_WanderUpAndDown_Step0 -MovementType_WanderUpAndDown_Step0: @ 0x0808F438 - push {r4, lr} - adds r4, r1, #0 - bl ClearEventObjectMovement - movs r0, #1 - strh r0, [r4, #0x30] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_WanderUpAndDown_Step0 - - thumb_func_start MovementType_WanderUpAndDown_Step1 -MovementType_WanderUpAndDown_Step1: @ 0x0808F44C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_08092CA0 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl EventObjectSetSingleMovement - movs r0, #2 - strh r0, [r5, #0x30] - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_WanderUpAndDown_Step1 - - thumb_func_start MovementType_WanderUpAndDown_Step2 -MovementType_WanderUpAndDown_Step2: @ 0x0808F478 - push {r4, r5, r6, lr} - adds r6, r1, #0 - bl EventObjectExecSingleMovementAction - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808F4AC - ldr r5, _0808F4A8 - bl Random - movs r4, #3 - adds r1, r4, #0 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r5 - movs r0, #0 - ldrsh r1, [r1, r0] - adds r0, r6, #0 - bl sub_080972E8 - strh r4, [r6, #0x30] - movs r0, #1 - b _0808F4AE - .align 2, 0 -_0808F4A8: .4byte gUnknown_84E5B30 -_0808F4AC: - movs r0, #0 -_0808F4AE: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end MovementType_WanderUpAndDown_Step2 - - thumb_func_start MovementType_WanderUpAndDown_Step3 -MovementType_WanderUpAndDown_Step3: @ 0x0808F4B4 - push {r4, lr} - adds r4, r1, #0 - adds r0, r4, #0 - bl WaitForMovementDelay - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808F4C8 - movs r0, #0 - b _0808F4CE -_0808F4C8: - movs r0, #4 - strh r0, [r4, #0x30] - movs r0, #1 -_0808F4CE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end MovementType_WanderUpAndDown_Step3 - - thumb_func_start MovementType_WanderUpAndDown_Step4 -MovementType_WanderUpAndDown_Step4: @ 0x0808F4D4 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r5, r0, #0 - adds r6, r1, #0 - ldr r1, _0808F51C - mov r0, sp - movs r2, #2 - bl memcpy - bl Random - movs r7, #1 - adds r1, r7, #0 - ands r1, r0 - mov r2, sp - adds r0, r2, r1 - ldrb r4, [r0] - adds r0, r5, #0 - adds r1, r4, #0 - bl SetEventObjectDirection - movs r0, #5 - strh r0, [r6, #0x30] - adds r0, r5, #0 - adds r1, r4, #0 - bl GetCollisionInDirection - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808F512 - strh r7, [r6, #0x30] -_0808F512: - movs r0, #1 - add sp, #4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0808F51C: .4byte gUnknown_84E5BC4 - thumb_func_end MovementType_WanderUpAndDown_Step4 - - thumb_func_start MovementType_WanderUpAndDown_Step5 -MovementType_WanderUpAndDown_Step5: @ 0x0808F520 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #0x18] - lsrs r0, r0, #4 - bl sub_08092CF8 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl EventObjectSetSingleMovement - ldrb r0, [r4] - movs r1, #2 - orrs r0, r1 - strb r0, [r4] - movs r0, #6 - strh r0, [r5, #0x30] - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementType_WanderUpAndDown_Step5 - - thumb_func_start MovementType_WanderUpAndDown_Step6 -MovementType_WanderUpAndDown_Step6: @ 0x0808F550 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl EventObjectExecSingleMovementAction - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808F56E - ldrb r0, [r4] - movs r1, #3 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4] - movs r0, #1 - strh r0, [r5, #0x30] -_0808F56E: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_WanderUpAndDown_Step6 - - thumb_func_start MovementType_WanderLeftAndRight -MovementType_WanderLeftAndRight: @ 0x0808F578 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _0808F594 - adds r0, r0, r2 - ldr r2, _0808F598 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_0808F594: .4byte gUnknown_2036FF0 -_0808F598: .4byte sub_0808F59C - thumb_func_end MovementType_WanderLeftAndRight - - thumb_func_start sub_0808F59C -sub_0808F59C: @ 0x0808F59C - push {r4, lr} - ldr r3, _0808F5B8 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_0808F59C - - thumb_func_start sub_0808F5B0 -sub_0808F5B0: @ 0x0808F5B0 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0808F5B8: .4byte gUnknown_84E5BC8 - thumb_func_end sub_0808F5B0 - - thumb_func_start MovementType_WanderLeftAndRight_Step0 -MovementType_WanderLeftAndRight_Step0: @ 0x0808F5BC - push {r4, lr} - adds r4, r1, #0 - bl ClearEventObjectMovement - movs r0, #1 - strh r0, [r4, #0x30] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_WanderLeftAndRight_Step0 - - thumb_func_start MovementType_WanderLeftAndRight_Step1 -MovementType_WanderLeftAndRight_Step1: @ 0x0808F5D0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_08092CA0 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl EventObjectSetSingleMovement - movs r0, #2 - strh r0, [r5, #0x30] - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_WanderLeftAndRight_Step1 - - thumb_func_start MovementType_WanderLeftAndRight_Step2 -MovementType_WanderLeftAndRight_Step2: @ 0x0808F5FC - push {r4, r5, r6, lr} - adds r6, r1, #0 - bl EventObjectExecSingleMovementAction - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808F630 - ldr r5, _0808F62C - bl Random - movs r4, #3 - adds r1, r4, #0 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r5 - movs r0, #0 - ldrsh r1, [r1, r0] - adds r0, r6, #0 - bl sub_080972E8 - strh r4, [r6, #0x30] - movs r0, #1 - b _0808F632 - .align 2, 0 -_0808F62C: .4byte gUnknown_84E5B30 -_0808F630: - movs r0, #0 -_0808F632: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end MovementType_WanderLeftAndRight_Step2 - - thumb_func_start MovementType_WanderLeftAndRight_Step3 -MovementType_WanderLeftAndRight_Step3: @ 0x0808F638 - push {r4, lr} - adds r4, r1, #0 - adds r0, r4, #0 - bl WaitForMovementDelay - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808F64C - movs r0, #0 - b _0808F652 -_0808F64C: - movs r0, #4 - strh r0, [r4, #0x30] - movs r0, #1 -_0808F652: - pop {r4} - pop {r1} - bx r1 - thumb_func_end MovementType_WanderLeftAndRight_Step3 - - thumb_func_start MovementType_WanderLeftAndRight_Step4 -MovementType_WanderLeftAndRight_Step4: @ 0x0808F658 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r5, r0, #0 - adds r6, r1, #0 - ldr r1, _0808F6A0 - mov r0, sp - movs r2, #2 - bl memcpy - bl Random - movs r7, #1 - adds r1, r7, #0 - ands r1, r0 - mov r2, sp - adds r0, r2, r1 - ldrb r4, [r0] - adds r0, r5, #0 - adds r1, r4, #0 - bl SetEventObjectDirection - movs r0, #5 - strh r0, [r6, #0x30] - adds r0, r5, #0 - adds r1, r4, #0 - bl GetCollisionInDirection - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808F696 - strh r7, [r6, #0x30] -_0808F696: - movs r0, #1 - add sp, #4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0808F6A0: .4byte gUnknown_84E5BE4 - thumb_func_end MovementType_WanderLeftAndRight_Step4 - - thumb_func_start MovementType_WanderLeftAndRight_Step5 -MovementType_WanderLeftAndRight_Step5: @ 0x0808F6A4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #0x18] - lsrs r0, r0, #4 - bl sub_08092CF8 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl EventObjectSetSingleMovement - ldrb r0, [r4] - movs r1, #2 - orrs r0, r1 - strb r0, [r4] - movs r0, #6 - strh r0, [r5, #0x30] - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementType_WanderLeftAndRight_Step5 - - thumb_func_start MovementType_WanderLeftAndRight_Step6 -MovementType_WanderLeftAndRight_Step6: @ 0x0808F6D4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl EventObjectExecSingleMovementAction - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808F6F2 - ldrb r0, [r4] - movs r1, #3 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4] - movs r0, #1 - strh r0, [r5, #0x30] -_0808F6F2: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_WanderLeftAndRight_Step6 - - thumb_func_start MovementType_FaceDirection -MovementType_FaceDirection: @ 0x0808F6FC - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _0808F718 - adds r0, r0, r2 - ldr r2, _0808F71C - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_0808F718: .4byte gUnknown_2036FF0 -_0808F71C: .4byte sub_0808F720 - thumb_func_end MovementType_FaceDirection - - thumb_func_start sub_0808F720 -sub_0808F720: @ 0x0808F720 - push {r4, lr} - ldr r3, _0808F73C - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_0808F720 - - thumb_func_start sub_0808F734 -sub_0808F734: @ 0x0808F734 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0808F73C: .4byte gUnknown_84E5BE8 - thumb_func_end sub_0808F734 - - thumb_func_start MovementType_FaceDirection_Step0 -MovementType_FaceDirection_Step0: @ 0x0808F740 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl ClearEventObjectMovement - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_08092CA0 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl EventObjectSetSingleMovement - movs r0, #1 - strh r0, [r5, #0x30] - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementType_FaceDirection_Step0 - - thumb_func_start MovementType_FaceDirection_Step1 -MovementType_FaceDirection_Step1: @ 0x0808F76C - push {r4, lr} - adds r4, r1, #0 - bl EventObjectExecSingleMovementAction - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808F77E - movs r0, #0 - b _0808F784 -_0808F77E: - movs r0, #2 - strh r0, [r4, #0x30] - movs r0, #1 -_0808F784: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_FaceDirection_Step1 - - thumb_func_start sub_0808F78C -sub_0808F78C: @ 0x0808F78C - ldrb r2, [r0] - movs r1, #3 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - movs r0, #0 - bx lr - .align 2, 0 - thumb_func_end sub_0808F78C - - thumb_func_start MovementType_BerryTreeGrowth -MovementType_BerryTreeGrowth: @ 0x0808F79C - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808F7D8 - adds r5, r0, r1 - ldrh r1, [r4, #0x3c] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0808F7C8 - adds r0, r5, #0 - adds r1, r4, #0 - bl get_berry_tree_graphics - ldrh r1, [r4, #0x3c] - movs r0, #1 - orrs r0, r1 - strh r0, [r4, #0x3c] -_0808F7C8: - ldr r2, _0808F7DC - adds r0, r5, #0 - adds r1, r4, #0 - bl UpdateEventObjectCurrentMovement - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0808F7D8: .4byte gUnknown_2036FF0 -_0808F7DC: .4byte sub_0808F7E0 - thumb_func_end MovementType_BerryTreeGrowth - - thumb_func_start sub_0808F7E0 -sub_0808F7E0: @ 0x0808F7E0 - push {r4, lr} - ldr r3, _0808F7FC - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_0808F7E0 - - thumb_func_start sub_0808F7F4 -sub_0808F7F4: @ 0x0808F7F4 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0808F7FC: .4byte gUnknown_84E5BF4 - thumb_func_end sub_0808F7F4 - - thumb_func_start MovementType_BerryTreeGrowth_Step0 -MovementType_BerryTreeGrowth_Step0: @ 0x0808F800 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl ClearEventObjectMovement - ldrb r0, [r4, #1] - movs r1, #0x20 - orrs r0, r1 - strb r0, [r4, #1] - adds r6, r5, #0 - adds r6, #0x3e - ldrb r0, [r6] - movs r1, #4 - orrs r0, r1 - strb r0, [r6] - ldrb r0, [r4, #0x1d] - bl GetStageByBerryTreeId - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #0 - bne _0808F870 - ldrh r1, [r5, #0x3c] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _0808F866 - subs r6, #0x14 - ldrb r0, [r6] - cmp r0, #4 - bne _0808F866 - ldr r1, _0808F86C - movs r2, #0x10 - ldrsh r0, [r4, r2] - str r0, [r1] - movs r2, #0x12 - ldrsh r0, [r4, r2] - str r0, [r1, #4] - adds r0, r5, #0 - adds r0, #0x43 - ldrb r0, [r0] - subs r0, #1 - str r0, [r1, #8] - ldrb r0, [r5, #5] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1e - str r0, [r1, #0xc] - movs r0, #0x17 - bl FieldEffectStart - strb r7, [r6] -_0808F866: - movs r0, #0 - b _0808F8B2 - .align 2, 0 -_0808F86C: .4byte gUnknown_20388A8 -_0808F870: - ldrb r1, [r4, #1] - movs r0, #0x21 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #1] - ldrb r1, [r6] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r6] - subs r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - adds r0, r5, #0 - adds r0, #0x2a - ldrb r0, [r0] - cmp r0, r7 - bne _0808F8AC - adds r0, r4, #0 - adds r1, r5, #0 - bl get_berry_tree_graphics - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0x39 - bl EventObjectSetSingleMovement - movs r0, #1 - strh r0, [r5, #0x30] - b _0808F8B2 -_0808F8AC: - movs r0, #2 - strh r0, [r5, #0x30] - movs r0, #1 -_0808F8B2: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end MovementType_BerryTreeGrowth_Step0 - - thumb_func_start MovementType_BerryTreeGrowth_Step1 -MovementType_BerryTreeGrowth_Step1: @ 0x0808F8B8 - push {r4, lr} - adds r4, r1, #0 - bl EventObjectExecSingleMovementAction - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808F8CA - movs r0, #0 - b _0808F8D0 -_0808F8CA: - movs r0, #0 - strh r0, [r4, #0x30] - movs r0, #1 -_0808F8D0: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_BerryTreeGrowth_Step1 - - thumb_func_start MovementType_BerryTreeGrowth_Step2 -MovementType_BerryTreeGrowth_Step2: @ 0x0808F8D8 - push {r4, lr} - ldrb r2, [r0] - movs r3, #2 - orrs r2, r3 - strb r2, [r0] - movs r3, #0 - movs r2, #3 - strh r2, [r1, #0x30] - strh r3, [r1, #0x32] - ldrh r3, [r1, #0x3c] - movs r2, #2 - orrs r2, r3 - strh r2, [r1, #0x3c] - ldr r3, _0808F920 - movs r4, #0x10 - ldrsh r2, [r0, r4] - str r2, [r3] - movs r2, #0x12 - ldrsh r0, [r0, r2] - str r0, [r3, #4] - adds r0, r1, #0 - adds r0, #0x43 - ldrb r0, [r0] - subs r0, #1 - str r0, [r3, #8] - ldrb r0, [r1, #5] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1e - str r0, [r3, #0xc] - movs r0, #0x17 - bl FieldEffectStart - movs r0, #1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0808F920: .4byte gUnknown_20388A8 - thumb_func_end MovementType_BerryTreeGrowth_Step2 - - thumb_func_start MovementType_BerryTreeGrowth_Step3 -MovementType_BerryTreeGrowth_Step3: @ 0x0808F924 - push {r4, lr} - adds r3, r0, #0 - adds r4, r1, #0 - ldrh r1, [r4, #0x32] - adds r1, #1 - strh r1, [r4, #0x32] - movs r0, #2 - ands r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x11 - lsls r1, r1, #5 - ldrb r2, [r3, #1] - subs r0, #0x23 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #1] - adds r2, r4, #0 - adds r2, #0x2c - ldrb r0, [r2] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2] - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0x40 - bgt _0808F95C - movs r0, #0 - b _0808F96E -_0808F95C: - adds r0, r3, #0 - adds r1, r4, #0 - bl get_berry_tree_graphics - movs r0, #4 - strh r0, [r4, #0x30] - movs r0, #0 - strh r0, [r4, #0x32] - movs r0, #1 -_0808F96E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end MovementType_BerryTreeGrowth_Step3 - - thumb_func_start MovementType_BerryTreeGrowth_Step4 -MovementType_BerryTreeGrowth_Step4: @ 0x0808F974 - push {r4, lr} - adds r4, r1, #0 - ldrh r2, [r4, #0x32] - adds r2, #1 - strh r2, [r4, #0x32] - movs r1, #2 - ands r2, r1 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x11 - lsls r2, r2, #5 - ldrb r3, [r0, #1] - subs r1, #0x23 - ands r1, r3 - orrs r1, r2 - strb r1, [r0, #1] - adds r2, r4, #0 - adds r2, #0x2c - ldrb r0, [r2] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2] - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0x40 - bgt _0808F9AA - movs r0, #0 - b _0808F9B8 -_0808F9AA: - movs r0, #0 - strh r0, [r4, #0x30] - ldrh r1, [r4, #0x3c] - subs r0, #3 - ands r0, r1 - strh r0, [r4, #0x3c] - movs r0, #1 -_0808F9B8: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_BerryTreeGrowth_Step4 - - thumb_func_start MovementType_FaceDownAndUp -MovementType_FaceDownAndUp: @ 0x0808F9C0 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _0808F9DC - adds r0, r0, r2 - ldr r2, _0808F9E0 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_0808F9DC: .4byte gUnknown_2036FF0 -_0808F9E0: .4byte sub_0808F9E4 - thumb_func_end MovementType_FaceDownAndUp - - thumb_func_start sub_0808F9E4 -sub_0808F9E4: @ 0x0808F9E4 - push {r4, lr} - ldr r3, _0808FA00 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_0808F9E4 - - thumb_func_start sub_0808F9F8 -sub_0808F9F8: @ 0x0808F9F8 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0808FA00: .4byte gUnknown_84E5C08 - thumb_func_end sub_0808F9F8 - - thumb_func_start MovementType_FaceDownAndUp_Step0 -MovementType_FaceDownAndUp_Step0: @ 0x0808FA04 - push {r4, lr} - adds r4, r1, #0 - bl ClearEventObjectMovement - movs r0, #1 - strh r0, [r4, #0x30] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_FaceDownAndUp_Step0 - - thumb_func_start MovementType_FaceDownAndUp_Step1 -MovementType_FaceDownAndUp_Step1: @ 0x0808FA18 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_08092CA0 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl EventObjectSetSingleMovement - movs r0, #2 - strh r0, [r5, #0x30] - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_FaceDownAndUp_Step1 - - thumb_func_start MovementType_FaceDownAndUp_Step2 -MovementType_FaceDownAndUp_Step2: @ 0x0808FA44 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r7, r1, #0 - bl EventObjectExecSingleMovementAction - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808FA7A - ldr r4, _0808FA84 - bl Random - movs r5, #3 - adds r1, r5, #0 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - movs r0, #0 - ldrsh r1, [r1, r0] - adds r0, r7, #0 - bl sub_080972E8 - ldrb r1, [r6] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r6] - strh r5, [r7, #0x30] -_0808FA7A: - movs r0, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0808FA84: .4byte gUnknown_84E5B30 - thumb_func_end MovementType_FaceDownAndUp_Step2 - - thumb_func_start MovementType_FaceDownAndUp_Step3 -MovementType_FaceDownAndUp_Step3: @ 0x0808FA88 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r0, r5, #0 - bl WaitForMovementDelay - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808FAA6 - adds r0, r4, #0 - bl EventObjectIsTrainerAndCloseToPlayer - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808FAAE -_0808FAA6: - movs r0, #4 - strh r0, [r5, #0x30] - movs r0, #1 - b _0808FAB0 -_0808FAAE: - movs r0, #0 -_0808FAB0: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_FaceDownAndUp_Step3 - - thumb_func_start MovementType_FaceDownAndUp_Step4 -MovementType_FaceDownAndUp_Step4: @ 0x0808FAB8 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _0808FAFC - mov r0, sp - movs r2, #2 - bl memcpy - adds r0, r4, #0 - movs r1, #1 - bl TryGetTrainerEncounterDirection - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0808FAE8 - bl Random - movs r1, #1 - ands r1, r0 - mov r2, sp - adds r0, r2, r1 - ldrb r1, [r0] -_0808FAE8: - adds r0, r4, #0 - bl SetEventObjectDirection - movs r0, #1 - strh r0, [r5, #0x30] - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0808FAFC: .4byte gUnknown_84E5BC4 - thumb_func_end MovementType_FaceDownAndUp_Step4 - - thumb_func_start MovementType_FaceLeftAndRight -MovementType_FaceLeftAndRight: @ 0x0808FB00 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _0808FB1C - adds r0, r0, r2 - ldr r2, _0808FB20 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_0808FB1C: .4byte gUnknown_2036FF0 -_0808FB20: .4byte sub_0808FB24 - thumb_func_end MovementType_FaceLeftAndRight - - thumb_func_start sub_0808FB24 -sub_0808FB24: @ 0x0808FB24 - push {r4, lr} - ldr r3, _0808FB40 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_0808FB24 - - thumb_func_start sub_0808FB38 -sub_0808FB38: @ 0x0808FB38 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0808FB40: .4byte gUnknown_84E5C1C - thumb_func_end sub_0808FB38 - - thumb_func_start MovementType_FaceLeftAndRight_Step0 -MovementType_FaceLeftAndRight_Step0: @ 0x0808FB44 - push {r4, lr} - adds r4, r1, #0 - bl ClearEventObjectMovement - movs r0, #1 - strh r0, [r4, #0x30] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_FaceLeftAndRight_Step0 - - thumb_func_start MovementType_FaceLeftAndRight_Step1 -MovementType_FaceLeftAndRight_Step1: @ 0x0808FB58 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_08092CA0 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl EventObjectSetSingleMovement - movs r0, #2 - strh r0, [r5, #0x30] - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_FaceLeftAndRight_Step1 - - thumb_func_start MovementType_FaceLeftAndRight_Step2 -MovementType_FaceLeftAndRight_Step2: @ 0x0808FB84 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r7, r1, #0 - bl EventObjectExecSingleMovementAction - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808FBBA - ldr r4, _0808FBC4 - bl Random - movs r5, #3 - adds r1, r5, #0 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - movs r0, #0 - ldrsh r1, [r1, r0] - adds r0, r7, #0 - bl sub_080972E8 - ldrb r1, [r6] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r6] - strh r5, [r7, #0x30] -_0808FBBA: - movs r0, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0808FBC4: .4byte gUnknown_84E5B30 - thumb_func_end MovementType_FaceLeftAndRight_Step2 - - thumb_func_start MovementType_FaceLeftAndRight_Step3 -MovementType_FaceLeftAndRight_Step3: @ 0x0808FBC8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r0, r5, #0 - bl WaitForMovementDelay - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808FBE6 - adds r0, r4, #0 - bl EventObjectIsTrainerAndCloseToPlayer - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808FBEE -_0808FBE6: - movs r0, #4 - strh r0, [r5, #0x30] - movs r0, #1 - b _0808FBF0 -_0808FBEE: - movs r0, #0 -_0808FBF0: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_FaceLeftAndRight_Step3 - - thumb_func_start MovementType_FaceLeftAndRight_Step4 -MovementType_FaceLeftAndRight_Step4: @ 0x0808FBF8 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _0808FC3C - mov r0, sp - movs r2, #2 - bl memcpy - adds r0, r4, #0 - movs r1, #2 - bl TryGetTrainerEncounterDirection - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0808FC28 - bl Random - movs r1, #1 - ands r1, r0 - mov r2, sp - adds r0, r2, r1 - ldrb r1, [r0] -_0808FC28: - adds r0, r4, #0 - bl SetEventObjectDirection - movs r0, #1 - strh r0, [r5, #0x30] - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0808FC3C: .4byte gUnknown_84E5BE4 - thumb_func_end MovementType_FaceLeftAndRight_Step4 - - thumb_func_start MovementType_FaceUpAndLeft -MovementType_FaceUpAndLeft: @ 0x0808FC40 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _0808FC5C - adds r0, r0, r2 - ldr r2, _0808FC60 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_0808FC5C: .4byte gUnknown_2036FF0 -_0808FC60: .4byte sub_0808FC64 - thumb_func_end MovementType_FaceUpAndLeft - - thumb_func_start sub_0808FC64 -sub_0808FC64: @ 0x0808FC64 - push {r4, lr} - ldr r3, _0808FC80 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_0808FC64 - - thumb_func_start sub_0808FC78 -sub_0808FC78: @ 0x0808FC78 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0808FC80: .4byte gUnknown_84E5C30 - thumb_func_end sub_0808FC78 - - thumb_func_start MovementType_FaceUpAndLeft_Step0 -MovementType_FaceUpAndLeft_Step0: @ 0x0808FC84 - push {r4, lr} - adds r4, r1, #0 - bl ClearEventObjectMovement - movs r0, #1 - strh r0, [r4, #0x30] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_FaceUpAndLeft_Step0 - - thumb_func_start MovementType_FaceUpAndLeft_Step1 -MovementType_FaceUpAndLeft_Step1: @ 0x0808FC98 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_08092CA0 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl EventObjectSetSingleMovement - movs r0, #2 - strh r0, [r5, #0x30] - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_FaceUpAndLeft_Step1 - - thumb_func_start MovementType_FaceUpAndLeft_Step2 -MovementType_FaceUpAndLeft_Step2: @ 0x0808FCC4 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r7, r1, #0 - bl EventObjectExecSingleMovementAction - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808FCFA - ldr r4, _0808FD04 - bl Random - movs r5, #3 - adds r1, r5, #0 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - movs r0, #0 - ldrsh r1, [r1, r0] - adds r0, r7, #0 - bl sub_080972E8 - ldrb r1, [r6] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r6] - strh r5, [r7, #0x30] -_0808FCFA: - movs r0, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0808FD04: .4byte gUnknown_84E5B40 - thumb_func_end MovementType_FaceUpAndLeft_Step2 - - thumb_func_start MovementType_FaceUpAndLeft_Step3 -MovementType_FaceUpAndLeft_Step3: @ 0x0808FD08 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r0, r5, #0 - bl WaitForMovementDelay - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808FD26 - adds r0, r4, #0 - bl EventObjectIsTrainerAndCloseToPlayer - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808FD2E -_0808FD26: - movs r0, #4 - strh r0, [r5, #0x30] - movs r0, #1 - b _0808FD30 -_0808FD2E: - movs r0, #0 -_0808FD30: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_FaceUpAndLeft_Step3 - - thumb_func_start MovementType_FaceUpAndLeft_Step4 -MovementType_FaceUpAndLeft_Step4: @ 0x0808FD38 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _0808FD7C - mov r0, sp - movs r2, #2 - bl memcpy - adds r0, r4, #0 - movs r1, #3 - bl TryGetTrainerEncounterDirection - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0808FD68 - bl Random - movs r1, #1 - ands r1, r0 - mov r2, sp - adds r0, r2, r1 - ldrb r1, [r0] -_0808FD68: - adds r0, r4, #0 - bl SetEventObjectDirection - movs r0, #1 - strh r0, [r5, #0x30] - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0808FD7C: .4byte gUnknown_84E5C44 - thumb_func_end MovementType_FaceUpAndLeft_Step4 - - thumb_func_start MovementType_FaceUpAndRight -MovementType_FaceUpAndRight: @ 0x0808FD80 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _0808FD9C - adds r0, r0, r2 - ldr r2, _0808FDA0 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_0808FD9C: .4byte gUnknown_2036FF0 -_0808FDA0: .4byte sub_0808FDA4 - thumb_func_end MovementType_FaceUpAndRight - - thumb_func_start sub_0808FDA4 -sub_0808FDA4: @ 0x0808FDA4 - push {r4, lr} - ldr r3, _0808FDC0 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_0808FDA4 - - thumb_func_start sub_0808FDB8 -sub_0808FDB8: @ 0x0808FDB8 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0808FDC0: .4byte gUnknown_84E5C48 - thumb_func_end sub_0808FDB8 - - thumb_func_start MovementType_FaceUpAndRight_Step0 -MovementType_FaceUpAndRight_Step0: @ 0x0808FDC4 - push {r4, lr} - adds r4, r1, #0 - bl ClearEventObjectMovement - movs r0, #1 - strh r0, [r4, #0x30] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_FaceUpAndRight_Step0 - - thumb_func_start MovementType_FaceUpAndRight_Step1 -MovementType_FaceUpAndRight_Step1: @ 0x0808FDD8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_08092CA0 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl EventObjectSetSingleMovement - movs r0, #2 - strh r0, [r5, #0x30] - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_FaceUpAndRight_Step1 - - thumb_func_start MovementType_FaceUpAndRight_Step2 -MovementType_FaceUpAndRight_Step2: @ 0x0808FE04 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r7, r1, #0 - bl EventObjectExecSingleMovementAction - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808FE3A - ldr r4, _0808FE44 - bl Random - movs r5, #3 - adds r1, r5, #0 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - movs r0, #0 - ldrsh r1, [r1, r0] - adds r0, r7, #0 - bl sub_080972E8 - ldrb r1, [r6] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r6] - strh r5, [r7, #0x30] -_0808FE3A: - movs r0, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0808FE44: .4byte gUnknown_84E5B40 - thumb_func_end MovementType_FaceUpAndRight_Step2 - - thumb_func_start MovementType_FaceUpAndRight_Step3 -MovementType_FaceUpAndRight_Step3: @ 0x0808FE48 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r0, r5, #0 - bl WaitForMovementDelay - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808FE66 - adds r0, r4, #0 - bl EventObjectIsTrainerAndCloseToPlayer - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808FE6E -_0808FE66: - movs r0, #4 - strh r0, [r5, #0x30] - movs r0, #1 - b _0808FE70 -_0808FE6E: - movs r0, #0 -_0808FE70: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_FaceUpAndRight_Step3 - - thumb_func_start MovementType_FaceUpAndRight_Step4 -MovementType_FaceUpAndRight_Step4: @ 0x0808FE78 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _0808FEBC - mov r0, sp - movs r2, #2 - bl memcpy - adds r0, r4, #0 - movs r1, #4 - bl TryGetTrainerEncounterDirection - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0808FEA8 - bl Random - movs r1, #1 - ands r1, r0 - mov r2, sp - adds r0, r2, r1 - ldrb r1, [r0] -_0808FEA8: - adds r0, r4, #0 - bl SetEventObjectDirection - movs r0, #1 - strh r0, [r5, #0x30] - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0808FEBC: .4byte gUnknown_84E5C5C - thumb_func_end MovementType_FaceUpAndRight_Step4 - - thumb_func_start MovementType_FaceDownAndLeft -MovementType_FaceDownAndLeft: @ 0x0808FEC0 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _0808FEDC - adds r0, r0, r2 - ldr r2, _0808FEE0 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_0808FEDC: .4byte gUnknown_2036FF0 -_0808FEE0: .4byte sub_0808FEE4 - thumb_func_end MovementType_FaceDownAndLeft - - thumb_func_start sub_0808FEE4 -sub_0808FEE4: @ 0x0808FEE4 - push {r4, lr} - ldr r3, _0808FF00 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_0808FEE4 - - thumb_func_start sub_0808FEF8 -sub_0808FEF8: @ 0x0808FEF8 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0808FF00: .4byte gUnknown_84E5C60 - thumb_func_end sub_0808FEF8 - - thumb_func_start MovementType_FaceDownAndLeft_Step0 -MovementType_FaceDownAndLeft_Step0: @ 0x0808FF04 - push {r4, lr} - adds r4, r1, #0 - bl ClearEventObjectMovement - movs r0, #1 - strh r0, [r4, #0x30] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_FaceDownAndLeft_Step0 - - thumb_func_start MovementType_FaceDownAndLeft_Step1 -MovementType_FaceDownAndLeft_Step1: @ 0x0808FF18 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_08092CA0 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl EventObjectSetSingleMovement - movs r0, #2 - strh r0, [r5, #0x30] - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_FaceDownAndLeft_Step1 - - thumb_func_start MovementType_FaceDownAndLeft_Step2 -MovementType_FaceDownAndLeft_Step2: @ 0x0808FF44 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r7, r1, #0 - bl EventObjectExecSingleMovementAction - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808FF7A - ldr r4, _0808FF84 - bl Random - movs r5, #3 - adds r1, r5, #0 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - movs r0, #0 - ldrsh r1, [r1, r0] - adds r0, r7, #0 - bl sub_080972E8 - ldrb r1, [r6] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r6] - strh r5, [r7, #0x30] -_0808FF7A: - movs r0, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0808FF84: .4byte gUnknown_84E5B40 - thumb_func_end MovementType_FaceDownAndLeft_Step2 - - thumb_func_start MovementType_FaceDownAndLeft_Step3 -MovementType_FaceDownAndLeft_Step3: @ 0x0808FF88 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r0, r5, #0 - bl WaitForMovementDelay - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808FFA6 - adds r0, r4, #0 - bl EventObjectIsTrainerAndCloseToPlayer - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808FFAE -_0808FFA6: - movs r0, #4 - strh r0, [r5, #0x30] - movs r0, #1 - b _0808FFB0 -_0808FFAE: - movs r0, #0 -_0808FFB0: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_FaceDownAndLeft_Step3 - - thumb_func_start MovementType_FaceDownAndLeft_Step4 -MovementType_FaceDownAndLeft_Step4: @ 0x0808FFB8 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _0808FFFC - mov r0, sp - movs r2, #2 - bl memcpy - adds r0, r4, #0 - movs r1, #5 - bl TryGetTrainerEncounterDirection - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0808FFE8 - bl Random - movs r1, #1 - ands r1, r0 - mov r2, sp - adds r0, r2, r1 - ldrb r1, [r0] -_0808FFE8: - adds r0, r4, #0 - bl SetEventObjectDirection - movs r0, #1 - strh r0, [r5, #0x30] - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0808FFFC: .4byte gUnknown_84E5C74 - thumb_func_end MovementType_FaceDownAndLeft_Step4 - - thumb_func_start MovementType_FaceDownAndRight -MovementType_FaceDownAndRight: @ 0x08090000 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _0809001C - adds r0, r0, r2 - ldr r2, _08090020 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_0809001C: .4byte gUnknown_2036FF0 -_08090020: .4byte sub_08090024 - thumb_func_end MovementType_FaceDownAndRight - - thumb_func_start sub_08090024 -sub_08090024: @ 0x08090024 - push {r4, lr} - ldr r3, _08090040 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_08090024 - - thumb_func_start sub_08090038 -sub_08090038: @ 0x08090038 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08090040: .4byte gUnknown_84E5C78 - thumb_func_end sub_08090038 - - thumb_func_start MovementType_FaceDownAndRight_Step0 -MovementType_FaceDownAndRight_Step0: @ 0x08090044 - push {r4, lr} - adds r4, r1, #0 - bl ClearEventObjectMovement - movs r0, #1 - strh r0, [r4, #0x30] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_FaceDownAndRight_Step0 - - thumb_func_start MovementType_FaceDownAndRight_Step1 -MovementType_FaceDownAndRight_Step1: @ 0x08090058 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_08092CA0 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl EventObjectSetSingleMovement - movs r0, #2 - strh r0, [r5, #0x30] - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_FaceDownAndRight_Step1 - - thumb_func_start MovementType_FaceDownAndRight_Step2 -MovementType_FaceDownAndRight_Step2: @ 0x08090084 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r7, r1, #0 - bl EventObjectExecSingleMovementAction - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080900BA - ldr r4, _080900C4 - bl Random - movs r5, #3 - adds r1, r5, #0 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - movs r0, #0 - ldrsh r1, [r1, r0] - adds r0, r7, #0 - bl sub_080972E8 - ldrb r1, [r6] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r6] - strh r5, [r7, #0x30] -_080900BA: - movs r0, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080900C4: .4byte gUnknown_84E5B40 - thumb_func_end MovementType_FaceDownAndRight_Step2 - - thumb_func_start MovementType_FaceDownAndRight_Step3 -MovementType_FaceDownAndRight_Step3: @ 0x080900C8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r0, r5, #0 - bl WaitForMovementDelay - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080900E6 - adds r0, r4, #0 - bl EventObjectIsTrainerAndCloseToPlayer - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080900EE -_080900E6: - movs r0, #4 - strh r0, [r5, #0x30] - movs r0, #1 - b _080900F0 -_080900EE: - movs r0, #0 -_080900F0: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_FaceDownAndRight_Step3 - - thumb_func_start MovementType_FaceDownAndRight_Step4 -MovementType_FaceDownAndRight_Step4: @ 0x080900F8 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _0809013C - mov r0, sp - movs r2, #2 - bl memcpy - adds r0, r4, #0 - movs r1, #6 - bl TryGetTrainerEncounterDirection - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _08090128 - bl Random - movs r1, #1 - ands r1, r0 - mov r2, sp - adds r0, r2, r1 - ldrb r1, [r0] -_08090128: - adds r0, r4, #0 - bl SetEventObjectDirection - movs r0, #1 - strh r0, [r5, #0x30] - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0809013C: .4byte gUnknown_84E5C8C - thumb_func_end MovementType_FaceDownAndRight_Step4 - - thumb_func_start MovementType_FaceDownUpAndLeft -MovementType_FaceDownUpAndLeft: @ 0x08090140 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _0809015C - adds r0, r0, r2 - ldr r2, _08090160 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_0809015C: .4byte gUnknown_2036FF0 -_08090160: .4byte sub_08090164 - thumb_func_end MovementType_FaceDownUpAndLeft - - thumb_func_start sub_08090164 -sub_08090164: @ 0x08090164 - push {r4, lr} - ldr r3, _08090180 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_08090164 - - thumb_func_start sub_08090178 -sub_08090178: @ 0x08090178 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08090180: .4byte gUnknown_84E5C90 - thumb_func_end sub_08090178 - - thumb_func_start MovementType_FaceDownUpAndLeft_Step0 -MovementType_FaceDownUpAndLeft_Step0: @ 0x08090184 - push {r4, lr} - adds r4, r1, #0 - bl ClearEventObjectMovement - movs r0, #1 - strh r0, [r4, #0x30] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_FaceDownUpAndLeft_Step0 - - thumb_func_start MovementType_FaceDownUpAndLeft_Step1 -MovementType_FaceDownUpAndLeft_Step1: @ 0x08090198 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_08092CA0 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl EventObjectSetSingleMovement - movs r0, #2 - strh r0, [r5, #0x30] - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_FaceDownUpAndLeft_Step1 - - thumb_func_start MovementType_FaceDownUpAndLeft_Step2 -MovementType_FaceDownUpAndLeft_Step2: @ 0x080901C4 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r7, r1, #0 - bl EventObjectExecSingleMovementAction - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080901FA - ldr r4, _08090204 - bl Random - movs r5, #3 - adds r1, r5, #0 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - movs r0, #0 - ldrsh r1, [r1, r0] - adds r0, r7, #0 - bl sub_080972E8 - ldrb r1, [r6] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r6] - strh r5, [r7, #0x30] -_080901FA: - movs r0, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08090204: .4byte gUnknown_84E5B40 - thumb_func_end MovementType_FaceDownUpAndLeft_Step2 - - thumb_func_start MovementType_FaceDownUpAndLeft_Step3 -MovementType_FaceDownUpAndLeft_Step3: @ 0x08090208 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r0, r5, #0 - bl WaitForMovementDelay - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08090226 - adds r0, r4, #0 - bl EventObjectIsTrainerAndCloseToPlayer - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809022E -_08090226: - movs r0, #4 - strh r0, [r5, #0x30] - movs r0, #1 - b _08090230 -_0809022E: - movs r0, #0 -_08090230: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_FaceDownUpAndLeft_Step3 - - thumb_func_start MovementType_FaceDownUpAndLeft_Step4 -MovementType_FaceDownUpAndLeft_Step4: @ 0x08090238 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _0809027C - mov r0, sp - movs r2, #4 - bl memcpy - adds r0, r4, #0 - movs r1, #7 - bl TryGetTrainerEncounterDirection - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _08090268 - bl Random - movs r1, #3 - ands r1, r0 - mov r2, sp - adds r0, r2, r1 - ldrb r1, [r0] -_08090268: - adds r0, r4, #0 - bl SetEventObjectDirection - movs r0, #1 - strh r0, [r5, #0x30] - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0809027C: .4byte gUnknown_84E5CA4 - thumb_func_end MovementType_FaceDownUpAndLeft_Step4 - - thumb_func_start MovementType_FaceDownUpAndRight -MovementType_FaceDownUpAndRight: @ 0x08090280 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _0809029C - adds r0, r0, r2 - ldr r2, _080902A0 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_0809029C: .4byte gUnknown_2036FF0 -_080902A0: .4byte sub_080902A4 - thumb_func_end MovementType_FaceDownUpAndRight - - thumb_func_start sub_080902A4 -sub_080902A4: @ 0x080902A4 - push {r4, lr} - ldr r3, _080902C0 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_080902A4 - - thumb_func_start sub_080902B8 -sub_080902B8: @ 0x080902B8 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080902C0: .4byte gUnknown_84E5CA8 - thumb_func_end sub_080902B8 - - thumb_func_start MovementType_FaceDownUpAndRight_Step0 -MovementType_FaceDownUpAndRight_Step0: @ 0x080902C4 - push {r4, lr} - adds r4, r1, #0 - bl ClearEventObjectMovement - movs r0, #1 - strh r0, [r4, #0x30] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_FaceDownUpAndRight_Step0 - - thumb_func_start MovementType_FaceDownUpAndRight_Step1 -MovementType_FaceDownUpAndRight_Step1: @ 0x080902D8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_08092CA0 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl EventObjectSetSingleMovement - movs r0, #2 - strh r0, [r5, #0x30] - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_FaceDownUpAndRight_Step1 - - thumb_func_start MovementType_FaceDownUpAndRight_Step2 -MovementType_FaceDownUpAndRight_Step2: @ 0x08090304 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r7, r1, #0 - bl EventObjectExecSingleMovementAction - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809033A - ldr r4, _08090344 - bl Random - movs r5, #3 - adds r1, r5, #0 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - movs r0, #0 - ldrsh r1, [r1, r0] - adds r0, r7, #0 - bl sub_080972E8 - ldrb r1, [r6] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r6] - strh r5, [r7, #0x30] -_0809033A: - movs r0, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08090344: .4byte gUnknown_84E5B40 - thumb_func_end MovementType_FaceDownUpAndRight_Step2 - - thumb_func_start MovementType_FaceDownUpAndRight_Step3 -MovementType_FaceDownUpAndRight_Step3: @ 0x08090348 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r0, r5, #0 - bl WaitForMovementDelay - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08090366 - adds r0, r4, #0 - bl EventObjectIsTrainerAndCloseToPlayer - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809036E -_08090366: - movs r0, #4 - strh r0, [r5, #0x30] - movs r0, #1 - b _08090370 -_0809036E: - movs r0, #0 -_08090370: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_FaceDownUpAndRight_Step3 - - thumb_func_start MovementType_FaceDownUpAndRight_Step4 -MovementType_FaceDownUpAndRight_Step4: @ 0x08090378 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _080903BC - mov r0, sp - movs r2, #4 - bl memcpy - adds r0, r4, #0 - movs r1, #8 - bl TryGetTrainerEncounterDirection - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _080903A8 - bl Random - movs r1, #3 - ands r1, r0 - mov r2, sp - adds r0, r2, r1 - ldrb r1, [r0] -_080903A8: - adds r0, r4, #0 - bl SetEventObjectDirection - movs r0, #1 - strh r0, [r5, #0x30] - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080903BC: .4byte gUnknown_84E5CBC - thumb_func_end MovementType_FaceDownUpAndRight_Step4 - - thumb_func_start MovementType_FaceUpRightAndLeft -MovementType_FaceUpRightAndLeft: @ 0x080903C0 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _080903DC - adds r0, r0, r2 - ldr r2, _080903E0 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_080903DC: .4byte gUnknown_2036FF0 -_080903E0: .4byte sub_080903E4 - thumb_func_end MovementType_FaceUpRightAndLeft - - thumb_func_start sub_080903E4 -sub_080903E4: @ 0x080903E4 - push {r4, lr} - ldr r3, _08090400 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_080903E4 - - thumb_func_start sub_080903F8 -sub_080903F8: @ 0x080903F8 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08090400: .4byte gUnknown_84E5CC0 - thumb_func_end sub_080903F8 - - thumb_func_start MovementType_FaceUpLeftAndRight_Step0 -MovementType_FaceUpLeftAndRight_Step0: @ 0x08090404 - push {r4, lr} - adds r4, r1, #0 - bl ClearEventObjectMovement - movs r0, #1 - strh r0, [r4, #0x30] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_FaceUpLeftAndRight_Step0 - - thumb_func_start MovementType_FaceUpLeftAndRight_Step1 -MovementType_FaceUpLeftAndRight_Step1: @ 0x08090418 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_08092CA0 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl EventObjectSetSingleMovement - movs r0, #2 - strh r0, [r5, #0x30] - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_FaceUpLeftAndRight_Step1 - - thumb_func_start MovementType_FaceUpLeftAndRight_Step2 -MovementType_FaceUpLeftAndRight_Step2: @ 0x08090444 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r7, r1, #0 - bl EventObjectExecSingleMovementAction - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809047A - ldr r4, _08090484 - bl Random - movs r5, #3 - adds r1, r5, #0 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - movs r0, #0 - ldrsh r1, [r1, r0] - adds r0, r7, #0 - bl sub_080972E8 - ldrb r1, [r6] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r6] - strh r5, [r7, #0x30] -_0809047A: - movs r0, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08090484: .4byte gUnknown_84E5B40 - thumb_func_end MovementType_FaceUpLeftAndRight_Step2 - - thumb_func_start MovementType_FaceUpLeftAndRight_Step3 -MovementType_FaceUpLeftAndRight_Step3: @ 0x08090488 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r0, r5, #0 - bl WaitForMovementDelay - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080904A6 - adds r0, r4, #0 - bl EventObjectIsTrainerAndCloseToPlayer - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080904AE -_080904A6: - movs r0, #4 - strh r0, [r5, #0x30] - movs r0, #1 - b _080904B0 -_080904AE: - movs r0, #0 -_080904B0: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_FaceUpLeftAndRight_Step3 - - thumb_func_start MovementType_FaceUpLeftAndRight_Step4 -MovementType_FaceUpLeftAndRight_Step4: @ 0x080904B8 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _080904FC - mov r0, sp - movs r2, #4 - bl memcpy - adds r0, r4, #0 - movs r1, #9 - bl TryGetTrainerEncounterDirection - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _080904E8 - bl Random - movs r1, #3 - ands r1, r0 - mov r2, sp - adds r0, r2, r1 - ldrb r1, [r0] -_080904E8: - adds r0, r4, #0 - bl SetEventObjectDirection - movs r0, #1 - strh r0, [r5, #0x30] - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080904FC: .4byte gUnknown_84E5CD4 - thumb_func_end MovementType_FaceUpLeftAndRight_Step4 - - thumb_func_start MovementType_FaceDownRightAndLeft -MovementType_FaceDownRightAndLeft: @ 0x08090500 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _0809051C - adds r0, r0, r2 - ldr r2, _08090520 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_0809051C: .4byte gUnknown_2036FF0 -_08090520: .4byte sub_08090524 - thumb_func_end MovementType_FaceDownRightAndLeft - - thumb_func_start sub_08090524 -sub_08090524: @ 0x08090524 - push {r4, lr} - ldr r3, _08090540 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_08090524 - - thumb_func_start sub_08090538 -sub_08090538: @ 0x08090538 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08090540: .4byte gUnknown_84E5CD8 - thumb_func_end sub_08090538 - - thumb_func_start MovementType_FaceDownLeftAndRight_Step0 -MovementType_FaceDownLeftAndRight_Step0: @ 0x08090544 - push {r4, lr} - adds r4, r1, #0 - bl ClearEventObjectMovement - movs r0, #1 - strh r0, [r4, #0x30] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_FaceDownLeftAndRight_Step0 - - thumb_func_start MovementType_FaceDownLeftAndRight_Step1 -MovementType_FaceDownLeftAndRight_Step1: @ 0x08090558 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_08092CA0 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl EventObjectSetSingleMovement - movs r0, #2 - strh r0, [r5, #0x30] - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_FaceDownLeftAndRight_Step1 - - thumb_func_start MovementType_FaceDownLeftAndRight_Step2 -MovementType_FaceDownLeftAndRight_Step2: @ 0x08090584 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r7, r1, #0 - bl EventObjectExecSingleMovementAction - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080905BA - ldr r4, _080905C4 - bl Random - movs r5, #3 - adds r1, r5, #0 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - movs r0, #0 - ldrsh r1, [r1, r0] - adds r0, r7, #0 - bl sub_080972E8 - ldrb r1, [r6] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r6] - strh r5, [r7, #0x30] -_080905BA: - movs r0, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080905C4: .4byte gUnknown_84E5B40 - thumb_func_end MovementType_FaceDownLeftAndRight_Step2 - - thumb_func_start MovementType_FaceDownLeftAndRight_Step3 -MovementType_FaceDownLeftAndRight_Step3: @ 0x080905C8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r0, r5, #0 - bl WaitForMovementDelay - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080905E6 - adds r0, r4, #0 - bl EventObjectIsTrainerAndCloseToPlayer - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080905EE -_080905E6: - movs r0, #4 - strh r0, [r5, #0x30] - movs r0, #1 - b _080905F0 -_080905EE: - movs r0, #0 -_080905F0: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_FaceDownLeftAndRight_Step3 - - thumb_func_start MovementType_FaceDownLeftAndRight_Step4 -MovementType_FaceDownLeftAndRight_Step4: @ 0x080905F8 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _0809063C - mov r0, sp - movs r2, #4 - bl memcpy - adds r0, r4, #0 - movs r1, #0xa - bl TryGetTrainerEncounterDirection - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _08090628 - bl Random - movs r1, #3 - ands r1, r0 - mov r2, sp - adds r0, r2, r1 - ldrb r1, [r0] -_08090628: - adds r0, r4, #0 - bl SetEventObjectDirection - movs r0, #1 - strh r0, [r5, #0x30] - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0809063C: .4byte gUnknown_84E5CEC - thumb_func_end MovementType_FaceDownLeftAndRight_Step4 - - thumb_func_start MovementType_RotateCounterclockwise -MovementType_RotateCounterclockwise: @ 0x08090640 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _0809065C - adds r0, r0, r2 - ldr r2, _08090660 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_0809065C: .4byte gUnknown_2036FF0 -_08090660: .4byte sub_08090664 - thumb_func_end MovementType_RotateCounterclockwise - - thumb_func_start sub_08090664 -sub_08090664: @ 0x08090664 - push {r4, lr} - ldr r3, _08090680 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_08090664 - - thumb_func_start sub_08090678 -sub_08090678: @ 0x08090678 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08090680: .4byte gUnknown_84E5CF0 - thumb_func_end sub_08090678 - - thumb_func_start MovementType_RotateCounterclockwise_Step0 -MovementType_RotateCounterclockwise_Step0: @ 0x08090684 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl ClearEventObjectMovement - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_08092CA0 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl EventObjectSetSingleMovement - movs r0, #1 - strh r0, [r5, #0x30] - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementType_RotateCounterclockwise_Step0 - - thumb_func_start MovementType_RotateCounterclockwise_Step1 -MovementType_RotateCounterclockwise_Step1: @ 0x080906B0 - push {r4, lr} - adds r4, r1, #0 - bl EventObjectExecSingleMovementAction - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080906CA - adds r0, r4, #0 - movs r1, #0x30 - bl sub_080972E8 - movs r0, #2 - strh r0, [r4, #0x30] -_080906CA: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_RotateCounterclockwise_Step1 - - thumb_func_start MovementType_RotateCounterclockwise_Step2 -MovementType_RotateCounterclockwise_Step2: @ 0x080906D4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r0, r5, #0 - bl WaitForMovementDelay - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080906F2 - adds r0, r4, #0 - bl EventObjectIsTrainerAndCloseToPlayer - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080906F6 -_080906F2: - movs r0, #3 - strh r0, [r5, #0x30] -_080906F6: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_RotateCounterclockwise_Step2 - - thumb_func_start MovementType_RotateCounterclockwise_Step3 -MovementType_RotateCounterclockwise_Step3: @ 0x08090700 - push {r4, r5, lr} - sub sp, #8 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _08090740 - mov r0, sp - movs r2, #5 - bl memcpy - adds r0, r4, #0 - movs r1, #0 - bl TryGetTrainerEncounterDirection - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0809072C - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - add r0, sp - ldrb r1, [r0] -_0809072C: - adds r0, r4, #0 - bl SetEventObjectDirection - movs r0, #0 - strh r0, [r5, #0x30] - movs r0, #1 - add sp, #8 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08090740: .4byte gUnknown_84E5D00 - thumb_func_end MovementType_RotateCounterclockwise_Step3 - - thumb_func_start MovementType_RotateClockwise -MovementType_RotateClockwise: @ 0x08090744 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _08090760 - adds r0, r0, r2 - ldr r2, _08090764 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_08090760: .4byte gUnknown_2036FF0 -_08090764: .4byte sub_08090768 - thumb_func_end MovementType_RotateClockwise - - thumb_func_start sub_08090768 -sub_08090768: @ 0x08090768 - push {r4, lr} - ldr r3, _08090784 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_08090768 - - thumb_func_start sub_0809077C -sub_0809077C: @ 0x0809077C - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08090784: .4byte gUnknown_84E5D08 - thumb_func_end sub_0809077C - - thumb_func_start MovementType_RotateClockwise_Step0 -MovementType_RotateClockwise_Step0: @ 0x08090788 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl ClearEventObjectMovement - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_08092CA0 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl EventObjectSetSingleMovement - movs r0, #1 - strh r0, [r5, #0x30] - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementType_RotateClockwise_Step0 - - thumb_func_start MovementType_RotateClockwise_Step1 -MovementType_RotateClockwise_Step1: @ 0x080907B4 - push {r4, lr} - adds r4, r1, #0 - bl EventObjectExecSingleMovementAction - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080907CE - adds r0, r4, #0 - movs r1, #0x30 - bl sub_080972E8 - movs r0, #2 - strh r0, [r4, #0x30] -_080907CE: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_RotateClockwise_Step1 - - thumb_func_start MovementType_RotateClockwise_Step2 -MovementType_RotateClockwise_Step2: @ 0x080907D8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r0, r5, #0 - bl WaitForMovementDelay - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080907F6 - adds r0, r4, #0 - bl EventObjectIsTrainerAndCloseToPlayer - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080907FA -_080907F6: - movs r0, #3 - strh r0, [r5, #0x30] -_080907FA: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_RotateClockwise_Step2 - - thumb_func_start MovementType_RotateClockwise_Step3 -MovementType_RotateClockwise_Step3: @ 0x08090804 - push {r4, r5, lr} - sub sp, #8 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _08090844 - mov r0, sp - movs r2, #5 - bl memcpy - adds r0, r4, #0 - movs r1, #0 - bl TryGetTrainerEncounterDirection - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _08090830 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - add r0, sp - ldrb r1, [r0] -_08090830: - adds r0, r4, #0 - bl SetEventObjectDirection - movs r0, #0 - strh r0, [r5, #0x30] - movs r0, #1 - add sp, #8 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08090844: .4byte gUnknown_84E5D18 - thumb_func_end MovementType_RotateClockwise_Step3 - - thumb_func_start MovementType_WalkBackAndForth -MovementType_WalkBackAndForth: @ 0x08090848 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _08090864 - adds r0, r0, r2 - ldr r2, _08090868 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_08090864: .4byte gUnknown_2036FF0 -_08090868: .4byte sub_0809086C - thumb_func_end MovementType_WalkBackAndForth - - thumb_func_start sub_0809086C -sub_0809086C: @ 0x0809086C - push {r4, lr} - ldr r3, _08090888 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_0809086C - - thumb_func_start sub_08090880 -sub_08090880: @ 0x08090880 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08090888: .4byte gUnknown_84E5D20 - thumb_func_end sub_08090880 - - thumb_func_start MovementType_WalkBackAndForth_Step0 -MovementType_WalkBackAndForth_Step0: @ 0x0809088C - push {r4, lr} - adds r4, r1, #0 - bl ClearEventObjectMovement - movs r0, #1 - strh r0, [r4, #0x30] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_WalkBackAndForth_Step0 - - thumb_func_start MovementType_WalkBackAndForth_Step1 -MovementType_WalkBackAndForth_Step1: @ 0x080908A0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r0, _080908D4 - ldrb r1, [r4, #6] - adds r1, r1, r0 - ldrb r1, [r1] - adds r0, r4, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0 - beq _080908C2 - adds r0, r1, #0 - bl GetOppositeDirection - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 -_080908C2: - adds r0, r4, #0 - bl SetEventObjectDirection - movs r0, #2 - strh r0, [r5, #0x30] - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080908D4: .4byte gUnknown_84DDA21 - thumb_func_end MovementType_WalkBackAndForth_Step1 - - thumb_func_start MovementType_WalkBackAndForth_Step2 -MovementType_WalkBackAndForth_Step2: @ 0x080908D8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r7, r1, #0 - adds r2, r4, #0 - adds r2, #0x21 - ldrb r0, [r2] - cmp r0, #0 - beq _08090908 - ldr r1, [r4, #0xc] - ldr r0, [r4, #0x10] - cmp r1, r0 - bne _08090908 - movs r0, #0 - strb r0, [r2] - ldrb r0, [r4, #0x18] - lsrs r0, r0, #4 - bl GetOppositeDirection - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl SetEventObjectDirection -_08090908: - ldrb r1, [r4, #0x18] - lsrs r1, r1, #4 - adds r0, r4, #0 - bl GetCollisionInDirection - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldrb r0, [r4, #0x18] - lsrs r0, r0, #4 - bl sub_08092CF8 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r5, #1 - bne _0809095E - adds r1, r4, #0 - adds r1, #0x21 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldrb r0, [r4, #0x18] - lsrs r0, r0, #4 - bl GetOppositeDirection - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl SetEventObjectDirection - ldrb r0, [r4, #0x18] - lsrs r0, r0, #4 - bl sub_08092CF8 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldrb r1, [r4, #0x18] - lsrs r1, r1, #4 - adds r0, r4, #0 - bl GetCollisionInDirection - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_0809095E: - cmp r5, #0 - beq _08090970 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_08092F08 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_08090970: - adds r0, r4, #0 - adds r1, r7, #0 - adds r2, r6, #0 - bl EventObjectSetSingleMovement - ldrb r0, [r4] - movs r1, #2 - orrs r0, r1 - strb r0, [r4] - movs r0, #3 - strh r0, [r7, #0x30] - movs r0, #1 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_WalkBackAndForth_Step2 - - thumb_func_start MovementType_WalkBackAndForth_Step3 -MovementType_WalkBackAndForth_Step3: @ 0x08090990 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl EventObjectExecSingleMovementAction - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080909AE - ldrb r0, [r4] - movs r1, #3 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4] - movs r0, #1 - strh r0, [r5, #0x30] -_080909AE: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_WalkBackAndForth_Step3 - - thumb_func_start MovementType_WalkSequence_Step0 -MovementType_WalkSequence_Step0: @ 0x080909B8 - push {r4, lr} - adds r4, r1, #0 - bl ClearEventObjectMovement - movs r0, #1 - strh r0, [r4, #0x30] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_WalkSequence_Step0 - - thumb_func_start MoveNextDirectionInSequence -MoveNextDirectionInSequence: @ 0x080909CC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - mov r8, r1 - adds r7, r2, #0 - adds r2, r4, #0 - adds r2, #0x21 - ldrb r0, [r2] - cmp r0, #3 - bne _080909EE - ldr r1, [r4, #0xc] - ldr r0, [r4, #0x10] - cmp r1, r0 - bne _080909EE - movs r0, #0 - strb r0, [r2] -_080909EE: - adds r5, r4, #0 - adds r5, #0x21 - ldrb r0, [r5] - adds r0, r7, r0 - ldrb r1, [r0] - adds r0, r4, #0 - bl SetEventObjectDirection - ldrb r0, [r4, #0x18] - lsrs r0, r0, #4 - bl sub_08092CF8 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldrb r1, [r4, #0x18] - lsrs r1, r1, #4 - adds r0, r4, #0 - bl GetCollisionInDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08090A48 - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - ldrb r0, [r5] - adds r0, r7, r0 - ldrb r1, [r0] - adds r0, r4, #0 - bl SetEventObjectDirection - ldrb r0, [r4, #0x18] - lsrs r0, r0, #4 - bl sub_08092CF8 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldrb r1, [r4, #0x18] - lsrs r1, r1, #4 - adds r0, r4, #0 - bl GetCollisionInDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_08090A48: - cmp r0, #0 - beq _08090A5A - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_08092F08 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_08090A5A: - adds r0, r4, #0 - mov r1, r8 - adds r2, r6, #0 - bl EventObjectSetSingleMovement - ldrb r0, [r4] - movs r1, #2 - orrs r0, r1 - strb r0, [r4] - movs r0, #2 - mov r1, r8 - strh r0, [r1, #0x30] - movs r0, #1 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MoveNextDirectionInSequence - - thumb_func_start MovementType_WalkSequence_Step2 -MovementType_WalkSequence_Step2: @ 0x08090A80 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl EventObjectExecSingleMovementAction - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08090A9E - ldrb r0, [r4] - movs r1, #3 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4] - movs r0, #1 - strh r0, [r5, #0x30] -_08090A9E: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_WalkSequence_Step2 - - thumb_func_start MovementType_WalkSequenceUpRightLeftDown -MovementType_WalkSequenceUpRightLeftDown: @ 0x08090AA8 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _08090AC4 - adds r0, r0, r2 - ldr r2, _08090AC8 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_08090AC4: .4byte gUnknown_2036FF0 -_08090AC8: .4byte sub_08090ACC - thumb_func_end MovementType_WalkSequenceUpRightLeftDown - - thumb_func_start sub_08090ACC -sub_08090ACC: @ 0x08090ACC - push {r4, lr} - ldr r3, _08090AE8 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_08090ACC - - thumb_func_start sub_08090AE0 -sub_08090AE0: @ 0x08090AE0 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08090AE8: .4byte gUnknown_84E5D30 - thumb_func_end sub_08090AE0 - - thumb_func_start MovementType_WalkSequenceUpRightLeftDown_Step1 -MovementType_WalkSequenceUpRightLeftDown_Step1: @ 0x08090AEC - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _08090B30 - mov r0, sp - movs r2, #4 - bl memcpy - adds r2, r4, #0 - adds r2, #0x21 - ldrb r0, [r2] - cmp r0, #2 - bne _08090B18 - movs r0, #0xc - ldrsh r1, [r4, r0] - movs r3, #0x10 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _08090B18 - movs r0, #3 - strb r0, [r2] -_08090B18: - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sp - bl MoveNextDirectionInSequence - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08090B30: .4byte gUnknown_84E5D3C - thumb_func_end MovementType_WalkSequenceUpRightLeftDown_Step1 - - thumb_func_start MovementType_WalkSequenceRightLeftDownUp -MovementType_WalkSequenceRightLeftDownUp: @ 0x08090B34 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _08090B50 - adds r0, r0, r2 - ldr r2, _08090B54 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_08090B50: .4byte gUnknown_2036FF0 -_08090B54: .4byte sub_08090B58 - thumb_func_end MovementType_WalkSequenceRightLeftDownUp - - thumb_func_start sub_08090B58 -sub_08090B58: @ 0x08090B58 - push {r4, lr} - ldr r3, _08090B74 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_08090B58 - - thumb_func_start sub_08090B6C -sub_08090B6C: @ 0x08090B6C - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08090B74: .4byte gUnknown_84E5D40 - thumb_func_end sub_08090B6C - - thumb_func_start MovementType_WalkSequenceRightLeftDownUp_Step1 -MovementType_WalkSequenceRightLeftDownUp_Step1: @ 0x08090B78 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _08090BBC - mov r0, sp - movs r2, #4 - bl memcpy - adds r2, r4, #0 - adds r2, #0x21 - ldrb r0, [r2] - cmp r0, #1 - bne _08090BA4 - movs r0, #0xc - ldrsh r1, [r4, r0] - movs r3, #0x10 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _08090BA4 - movs r0, #2 - strb r0, [r2] -_08090BA4: - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sp - bl MoveNextDirectionInSequence - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08090BBC: .4byte gUnknown_84E5D4C - thumb_func_end MovementType_WalkSequenceRightLeftDownUp_Step1 - - thumb_func_start MovementType_WalkSequenceDownUpRightLeft -MovementType_WalkSequenceDownUpRightLeft: @ 0x08090BC0 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _08090BDC - adds r0, r0, r2 - ldr r2, _08090BE0 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_08090BDC: .4byte gUnknown_2036FF0 -_08090BE0: .4byte sub_08090BE4 - thumb_func_end MovementType_WalkSequenceDownUpRightLeft - - thumb_func_start sub_08090BE4 -sub_08090BE4: @ 0x08090BE4 - push {r4, lr} - ldr r3, _08090C00 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_08090BE4 - - thumb_func_start sub_08090BF8 -sub_08090BF8: @ 0x08090BF8 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08090C00: .4byte gUnknown_84E5D50 - thumb_func_end sub_08090BF8 - - thumb_func_start MovementType_WalkSequenceDownUpRightLeft_Step1 -MovementType_WalkSequenceDownUpRightLeft_Step1: @ 0x08090C04 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _08090C48 - mov r0, sp - movs r2, #4 - bl memcpy - adds r2, r4, #0 - adds r2, #0x21 - ldrb r0, [r2] - cmp r0, #1 - bne _08090C30 - movs r0, #0xe - ldrsh r1, [r4, r0] - movs r3, #0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _08090C30 - movs r0, #2 - strb r0, [r2] -_08090C30: - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sp - bl MoveNextDirectionInSequence - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08090C48: .4byte gUnknown_84E5D5C - thumb_func_end MovementType_WalkSequenceDownUpRightLeft_Step1 - - thumb_func_start MovementType_WalkSequenceLeftDownUpRight -MovementType_WalkSequenceLeftDownUpRight: @ 0x08090C4C - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _08090C68 - adds r0, r0, r2 - ldr r2, _08090C6C - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_08090C68: .4byte gUnknown_2036FF0 -_08090C6C: .4byte sub_08090C70 - thumb_func_end MovementType_WalkSequenceLeftDownUpRight - - thumb_func_start sub_08090C70 -sub_08090C70: @ 0x08090C70 - push {r4, lr} - ldr r3, _08090C8C - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_08090C70 - - thumb_func_start sub_08090C84 -sub_08090C84: @ 0x08090C84 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08090C8C: .4byte gUnknown_84E5D60 - thumb_func_end sub_08090C84 - - thumb_func_start MovementType_WalkSequenceLeftDownUpRight_Step1 -MovementType_WalkSequenceLeftDownUpRight_Step1: @ 0x08090C90 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _08090CD4 - mov r0, sp - movs r2, #4 - bl memcpy - adds r2, r4, #0 - adds r2, #0x21 - ldrb r0, [r2] - cmp r0, #2 - bne _08090CBC - movs r0, #0xe - ldrsh r1, [r4, r0] - movs r3, #0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _08090CBC - movs r0, #3 - strb r0, [r2] -_08090CBC: - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sp - bl MoveNextDirectionInSequence - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08090CD4: .4byte gUnknown_84E5D6C - thumb_func_end MovementType_WalkSequenceLeftDownUpRight_Step1 - - thumb_func_start MovementType_WalkSequenceUpLeftRightDown -MovementType_WalkSequenceUpLeftRightDown: @ 0x08090CD8 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _08090CF4 - adds r0, r0, r2 - ldr r2, _08090CF8 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_08090CF4: .4byte gUnknown_2036FF0 -_08090CF8: .4byte sub_08090CFC - thumb_func_end MovementType_WalkSequenceUpLeftRightDown - - thumb_func_start sub_08090CFC -sub_08090CFC: @ 0x08090CFC - push {r4, lr} - ldr r3, _08090D18 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_08090CFC - - thumb_func_start sub_08090D10 -sub_08090D10: @ 0x08090D10 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08090D18: .4byte gUnknown_84E5D70 - thumb_func_end sub_08090D10 - - thumb_func_start MovementType_WalkSequenceUpLeftRightDown_Step1 -MovementType_WalkSequenceUpLeftRightDown_Step1: @ 0x08090D1C - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _08090D60 - mov r0, sp - movs r2, #4 - bl memcpy - adds r2, r4, #0 - adds r2, #0x21 - ldrb r0, [r2] - cmp r0, #2 - bne _08090D48 - movs r0, #0xc - ldrsh r1, [r4, r0] - movs r3, #0x10 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _08090D48 - movs r0, #3 - strb r0, [r2] -_08090D48: - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sp - bl MoveNextDirectionInSequence - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08090D60: .4byte gUnknown_84E5D7C - thumb_func_end MovementType_WalkSequenceUpLeftRightDown_Step1 - - thumb_func_start MovementType_WalkSequenceLeftRightDownUp -MovementType_WalkSequenceLeftRightDownUp: @ 0x08090D64 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _08090D80 - adds r0, r0, r2 - ldr r2, _08090D84 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_08090D80: .4byte gUnknown_2036FF0 -_08090D84: .4byte sub_08090D88 - thumb_func_end MovementType_WalkSequenceLeftRightDownUp - - thumb_func_start sub_08090D88 -sub_08090D88: @ 0x08090D88 - push {r4, lr} - ldr r3, _08090DA4 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_08090D88 - - thumb_func_start sub_08090D9C -sub_08090D9C: @ 0x08090D9C - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08090DA4: .4byte gUnknown_84E5D80 - thumb_func_end sub_08090D9C - - thumb_func_start MovementType_WalkSequenceLeftRightDownUp_Step1 -MovementType_WalkSequenceLeftRightDownUp_Step1: @ 0x08090DA8 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _08090DEC - mov r0, sp - movs r2, #4 - bl memcpy - adds r2, r4, #0 - adds r2, #0x21 - ldrb r0, [r2] - cmp r0, #1 - bne _08090DD4 - movs r0, #0xc - ldrsh r1, [r4, r0] - movs r3, #0x10 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _08090DD4 - movs r0, #2 - strb r0, [r2] -_08090DD4: - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sp - bl MoveNextDirectionInSequence - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08090DEC: .4byte gUnknown_84E5D8C - thumb_func_end MovementType_WalkSequenceLeftRightDownUp_Step1 - - thumb_func_start MovementType_WalkSequenceDownUpLeftRight -MovementType_WalkSequenceDownUpLeftRight: @ 0x08090DF0 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _08090E0C - adds r0, r0, r2 - ldr r2, _08090E10 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_08090E0C: .4byte gUnknown_2036FF0 -_08090E10: .4byte sub_08090E14 - thumb_func_end MovementType_WalkSequenceDownUpLeftRight - - thumb_func_start sub_08090E14 -sub_08090E14: @ 0x08090E14 - push {r4, lr} - ldr r3, _08090E30 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_08090E14 - - thumb_func_start sub_08090E28 -sub_08090E28: @ 0x08090E28 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08090E30: .4byte gUnknown_84E5D90 - thumb_func_end sub_08090E28 - - thumb_func_start MovementType_WalkSequenceDownUpLeftRight_Step1 -MovementType_WalkSequenceDownUpLeftRight_Step1: @ 0x08090E34 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _08090E78 - mov r0, sp - movs r2, #4 - bl memcpy - adds r2, r4, #0 - adds r2, #0x21 - ldrb r0, [r2] - cmp r0, #1 - bne _08090E60 - movs r0, #0xe - ldrsh r1, [r4, r0] - movs r3, #0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _08090E60 - movs r0, #2 - strb r0, [r2] -_08090E60: - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sp - bl MoveNextDirectionInSequence - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08090E78: .4byte gUnknown_84E5B64 - thumb_func_end MovementType_WalkSequenceDownUpLeftRight_Step1 - - thumb_func_start MovementType_WalkSequenceRightDownUpLeft -MovementType_WalkSequenceRightDownUpLeft: @ 0x08090E7C - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _08090E98 - adds r0, r0, r2 - ldr r2, _08090E9C - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_08090E98: .4byte gUnknown_2036FF0 -_08090E9C: .4byte sub_08090EA0 - thumb_func_end MovementType_WalkSequenceRightDownUpLeft - - thumb_func_start sub_08090EA0 -sub_08090EA0: @ 0x08090EA0 - push {r4, lr} - ldr r3, _08090EBC - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_08090EA0 - - thumb_func_start sub_08090EB4 -sub_08090EB4: @ 0x08090EB4 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08090EBC: .4byte gUnknown_84E5D9C - thumb_func_end sub_08090EB4 - - thumb_func_start MovementType_WalkSequenceRightDownUpLeft_Step1 -MovementType_WalkSequenceRightDownUpLeft_Step1: @ 0x08090EC0 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _08090F04 - mov r0, sp - movs r2, #4 - bl memcpy - adds r2, r4, #0 - adds r2, #0x21 - ldrb r0, [r2] - cmp r0, #2 - bne _08090EEC - movs r0, #0xe - ldrsh r1, [r4, r0] - movs r3, #0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _08090EEC - movs r0, #3 - strb r0, [r2] -_08090EEC: - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sp - bl MoveNextDirectionInSequence - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08090F04: .4byte gUnknown_84E5DA8 - thumb_func_end MovementType_WalkSequenceRightDownUpLeft_Step1 - - thumb_func_start MovementType_WalkSequenceLeftUpDownRight -MovementType_WalkSequenceLeftUpDownRight: @ 0x08090F08 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _08090F24 - adds r0, r0, r2 - ldr r2, _08090F28 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_08090F24: .4byte gUnknown_2036FF0 -_08090F28: .4byte sub_08090F2C - thumb_func_end MovementType_WalkSequenceLeftUpDownRight - - thumb_func_start sub_08090F2C -sub_08090F2C: @ 0x08090F2C - push {r4, lr} - ldr r3, _08090F48 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_08090F2C - - thumb_func_start sub_08090F40 -sub_08090F40: @ 0x08090F40 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08090F48: .4byte gUnknown_84E5DAC - thumb_func_end sub_08090F40 - - thumb_func_start MovementType_WalkSequenceLeftUpDownRight_Step1 -MovementType_WalkSequenceLeftUpDownRight_Step1: @ 0x08090F4C - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _08090F90 - mov r0, sp - movs r2, #4 - bl memcpy - adds r2, r4, #0 - adds r2, #0x21 - ldrb r0, [r2] - cmp r0, #2 - bne _08090F78 - movs r0, #0xe - ldrsh r1, [r4, r0] - movs r3, #0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _08090F78 - movs r0, #3 - strb r0, [r2] -_08090F78: - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sp - bl MoveNextDirectionInSequence - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08090F90: .4byte gUnknown_84E5DB8 - thumb_func_end MovementType_WalkSequenceLeftUpDownRight_Step1 - - thumb_func_start MovementType_WalkSequenceUpDownRightLeft -MovementType_WalkSequenceUpDownRightLeft: @ 0x08090F94 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _08090FB0 - adds r0, r0, r2 - ldr r2, _08090FB4 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_08090FB0: .4byte gUnknown_2036FF0 -_08090FB4: .4byte sub_08090FB8 - thumb_func_end MovementType_WalkSequenceUpDownRightLeft - - thumb_func_start sub_08090FB8 -sub_08090FB8: @ 0x08090FB8 - push {r4, lr} - ldr r3, _08090FD4 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_08090FB8 - - thumb_func_start sub_08090FCC -sub_08090FCC: @ 0x08090FCC - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08090FD4: .4byte gUnknown_84E5DBC - thumb_func_end sub_08090FCC - - thumb_func_start MovementType_WalkSequenceUpDownRightLeft_Step1 -MovementType_WalkSequenceUpDownRightLeft_Step1: @ 0x08090FD8 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _0809101C - mov r0, sp - movs r2, #4 - bl memcpy - adds r2, r4, #0 - adds r2, #0x21 - ldrb r0, [r2] - cmp r0, #1 - bne _08091004 - movs r0, #0xe - ldrsh r1, [r4, r0] - movs r3, #0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _08091004 - movs r0, #2 - strb r0, [r2] -_08091004: - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sp - bl MoveNextDirectionInSequence - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0809101C: .4byte gUnknown_84E5DC8 - thumb_func_end MovementType_WalkSequenceUpDownRightLeft_Step1 - - thumb_func_start MovementType_WalkSequenceRightLeftUpDown -MovementType_WalkSequenceRightLeftUpDown: @ 0x08091020 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _0809103C - adds r0, r0, r2 - ldr r2, _08091040 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_0809103C: .4byte gUnknown_2036FF0 -_08091040: .4byte sub_08091044 - thumb_func_end MovementType_WalkSequenceRightLeftUpDown - - thumb_func_start sub_08091044 -sub_08091044: @ 0x08091044 - push {r4, lr} - ldr r3, _08091060 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_08091044 - - thumb_func_start sub_08091058 -sub_08091058: @ 0x08091058 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08091060: .4byte gUnknown_84E5DCC - thumb_func_end sub_08091058 - - thumb_func_start MovementType_WalkSequenceRightLeftUpDown_Step1 -MovementType_WalkSequenceRightLeftUpDown_Step1: @ 0x08091064 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _080910A8 - mov r0, sp - movs r2, #4 - bl memcpy - adds r2, r4, #0 - adds r2, #0x21 - ldrb r0, [r2] - cmp r0, #1 - bne _08091090 - movs r0, #0xc - ldrsh r1, [r4, r0] - movs r3, #0x10 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _08091090 - movs r0, #2 - strb r0, [r2] -_08091090: - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sp - bl MoveNextDirectionInSequence - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080910A8: .4byte gUnknown_84E5DD8 - thumb_func_end MovementType_WalkSequenceRightLeftUpDown_Step1 - - thumb_func_start MovementType_WalkSequenceDownRightLeftUp -MovementType_WalkSequenceDownRightLeftUp: @ 0x080910AC - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _080910C8 - adds r0, r0, r2 - ldr r2, _080910CC - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_080910C8: .4byte gUnknown_2036FF0 -_080910CC: .4byte sub_080910D0 - thumb_func_end MovementType_WalkSequenceDownRightLeftUp - - thumb_func_start sub_080910D0 -sub_080910D0: @ 0x080910D0 - push {r4, lr} - ldr r3, _080910EC - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_080910D0 - - thumb_func_start sub_080910E4 -sub_080910E4: @ 0x080910E4 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080910EC: .4byte gUnknown_84E5DDC - thumb_func_end sub_080910E4 - - thumb_func_start MovementType_WalkSequenceDownRightLeftUp_Step1 -MovementType_WalkSequenceDownRightLeftUp_Step1: @ 0x080910F0 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _08091134 - mov r0, sp - movs r2, #4 - bl memcpy - adds r2, r4, #0 - adds r2, #0x21 - ldrb r0, [r2] - cmp r0, #2 - bne _0809111C - movs r0, #0xc - ldrsh r1, [r4, r0] - movs r3, #0x10 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _0809111C - movs r0, #3 - strb r0, [r2] -_0809111C: - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sp - bl MoveNextDirectionInSequence - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08091134: .4byte gUnknown_84E5DE8 - thumb_func_end MovementType_WalkSequenceDownRightLeftUp_Step1 - - thumb_func_start MovementType_WalkSequenceRightUpDownLeft -MovementType_WalkSequenceRightUpDownLeft: @ 0x08091138 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _08091154 - adds r0, r0, r2 - ldr r2, _08091158 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_08091154: .4byte gUnknown_2036FF0 -_08091158: .4byte sub_0809115C - thumb_func_end MovementType_WalkSequenceRightUpDownLeft - - thumb_func_start sub_0809115C -sub_0809115C: @ 0x0809115C - push {r4, lr} - ldr r3, _08091178 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_0809115C - - thumb_func_start sub_08091170 -sub_08091170: @ 0x08091170 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08091178: .4byte gUnknown_84E5DEC - thumb_func_end sub_08091170 - - thumb_func_start MovementType_WalkSequenceRightUpDownLeft_Step1 -MovementType_WalkSequenceRightUpDownLeft_Step1: @ 0x0809117C - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _080911C0 - mov r0, sp - movs r2, #4 - bl memcpy - adds r2, r4, #0 - adds r2, #0x21 - ldrb r0, [r2] - cmp r0, #2 - bne _080911A8 - movs r0, #0xe - ldrsh r1, [r4, r0] - movs r3, #0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _080911A8 - movs r0, #3 - strb r0, [r2] -_080911A8: - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sp - bl MoveNextDirectionInSequence - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080911C0: .4byte gUnknown_84E5DF8 - thumb_func_end MovementType_WalkSequenceRightUpDownLeft_Step1 - - thumb_func_start MovementType_WalkSequenceUpDownLeftRight -MovementType_WalkSequenceUpDownLeftRight: @ 0x080911C4 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _080911E0 - adds r0, r0, r2 - ldr r2, _080911E4 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_080911E0: .4byte gUnknown_2036FF0 -_080911E4: .4byte sub_080911E8 - thumb_func_end MovementType_WalkSequenceUpDownLeftRight - - thumb_func_start sub_080911E8 -sub_080911E8: @ 0x080911E8 - push {r4, lr} - ldr r3, _08091204 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_080911E8 - - thumb_func_start sub_080911FC -sub_080911FC: @ 0x080911FC - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08091204: .4byte gUnknown_84E5DFC - thumb_func_end sub_080911FC - - thumb_func_start MovementType_WalkSequenceUpDownLeftRight_Step1 -MovementType_WalkSequenceUpDownLeftRight_Step1: @ 0x08091208 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _0809124C - mov r0, sp - movs r2, #4 - bl memcpy - adds r2, r4, #0 - adds r2, #0x21 - ldrb r0, [r2] - cmp r0, #1 - bne _08091234 - movs r0, #0xe - ldrsh r1, [r4, r0] - movs r3, #0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _08091234 - movs r0, #2 - strb r0, [r2] -_08091234: - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sp - bl MoveNextDirectionInSequence - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0809124C: .4byte gUnknown_84E5E08 - thumb_func_end MovementType_WalkSequenceUpDownLeftRight_Step1 - - thumb_func_start MovementType_WalkSequenceLeftRightUpDown -MovementType_WalkSequenceLeftRightUpDown: @ 0x08091250 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _0809126C - adds r0, r0, r2 - ldr r2, _08091270 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_0809126C: .4byte gUnknown_2036FF0 -_08091270: .4byte sub_08091274 - thumb_func_end MovementType_WalkSequenceLeftRightUpDown - - thumb_func_start sub_08091274 -sub_08091274: @ 0x08091274 - push {r4, lr} - ldr r3, _08091290 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_08091274 - - thumb_func_start sub_08091288 -sub_08091288: @ 0x08091288 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08091290: .4byte gUnknown_84E5E0C - thumb_func_end sub_08091288 - - thumb_func_start MovementType_WalkSequenceLeftRightUpDown_Step1 -MovementType_WalkSequenceLeftRightUpDown_Step1: @ 0x08091294 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _080912D8 - mov r0, sp - movs r2, #4 - bl memcpy - adds r2, r4, #0 - adds r2, #0x21 - ldrb r0, [r2] - cmp r0, #1 - bne _080912C0 - movs r0, #0xc - ldrsh r1, [r4, r0] - movs r3, #0x10 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _080912C0 - movs r0, #2 - strb r0, [r2] -_080912C0: - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sp - bl MoveNextDirectionInSequence - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080912D8: .4byte gUnknown_84E5E18 - thumb_func_end MovementType_WalkSequenceLeftRightUpDown_Step1 - - thumb_func_start MovementType_WalkSequenceDownLeftRightUp -MovementType_WalkSequenceDownLeftRightUp: @ 0x080912DC - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _080912F8 - adds r0, r0, r2 - ldr r2, _080912FC - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_080912F8: .4byte gUnknown_2036FF0 -_080912FC: .4byte sub_08091300 - thumb_func_end MovementType_WalkSequenceDownLeftRightUp - - thumb_func_start sub_08091300 -sub_08091300: @ 0x08091300 - push {r4, lr} - ldr r3, _0809131C - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_08091300 - - thumb_func_start sub_08091314 -sub_08091314: @ 0x08091314 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809131C: .4byte gUnknown_84E5E1C - thumb_func_end sub_08091314 - - thumb_func_start MovementType_WalkSequenceDownLeftRightUp_Step1 -MovementType_WalkSequenceDownLeftRightUp_Step1: @ 0x08091320 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _08091364 - mov r0, sp - movs r2, #4 - bl memcpy - adds r2, r4, #0 - adds r2, #0x21 - ldrb r0, [r2] - cmp r0, #2 - bne _0809134C - movs r0, #0xc - ldrsh r1, [r4, r0] - movs r3, #0x10 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _0809134C - movs r0, #3 - strb r0, [r2] -_0809134C: - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sp - bl MoveNextDirectionInSequence - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08091364: .4byte gUnknown_84E5E28 - thumb_func_end MovementType_WalkSequenceDownLeftRightUp_Step1 - - thumb_func_start MovementType_WalkSequenceUpLeftDownRight -MovementType_WalkSequenceUpLeftDownRight: @ 0x08091368 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _08091384 - adds r0, r0, r2 - ldr r2, _08091388 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_08091384: .4byte gUnknown_2036FF0 -_08091388: .4byte sub_0809138C - thumb_func_end MovementType_WalkSequenceUpLeftDownRight - - thumb_func_start sub_0809138C -sub_0809138C: @ 0x0809138C - push {r4, lr} - ldr r3, _080913A8 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_0809138C - - thumb_func_start sub_080913A0 -sub_080913A0: @ 0x080913A0 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080913A8: .4byte gUnknown_84E5E2C - thumb_func_end sub_080913A0 - - thumb_func_start MovementType_WalkSequenceUpLeftDownRight_Step1 -MovementType_WalkSequenceUpLeftDownRight_Step1: @ 0x080913AC - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _080913F0 - mov r0, sp - movs r2, #4 - bl memcpy - adds r2, r4, #0 - adds r2, #0x21 - ldrb r0, [r2] - cmp r0, #2 - bne _080913D8 - movs r0, #0xe - ldrsh r1, [r4, r0] - movs r3, #0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _080913D8 - movs r0, #3 - strb r0, [r2] -_080913D8: - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sp - bl MoveNextDirectionInSequence - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080913F0: .4byte gUnknown_84E5E38 - thumb_func_end MovementType_WalkSequenceUpLeftDownRight_Step1 - - thumb_func_start MovementType_WalkSequenceDownRightUpLeft -MovementType_WalkSequenceDownRightUpLeft: @ 0x080913F4 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _08091410 - adds r0, r0, r2 - ldr r2, _08091414 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_08091410: .4byte gUnknown_2036FF0 -_08091414: .4byte sub_08091418 - thumb_func_end MovementType_WalkSequenceDownRightUpLeft - - thumb_func_start sub_08091418 -sub_08091418: @ 0x08091418 - push {r4, lr} - ldr r3, _08091434 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_08091418 - - thumb_func_start sub_0809142C -sub_0809142C: @ 0x0809142C - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08091434: .4byte gUnknown_84E5E3C - thumb_func_end sub_0809142C - - thumb_func_start MovementType_WalkSequenceDownRightUpLeft_Step1 -MovementType_WalkSequenceDownRightUpLeft_Step1: @ 0x08091438 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _0809147C - mov r0, sp - movs r2, #4 - bl memcpy - adds r2, r4, #0 - adds r2, #0x21 - ldrb r0, [r2] - cmp r0, #2 - bne _08091464 - movs r0, #0xe - ldrsh r1, [r4, r0] - movs r3, #0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _08091464 - movs r0, #3 - strb r0, [r2] -_08091464: - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sp - bl MoveNextDirectionInSequence - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0809147C: .4byte gUnknown_84E5E48 - thumb_func_end MovementType_WalkSequenceDownRightUpLeft_Step1 - - thumb_func_start MovementType_WalkSequenceLeftDownRightUp -MovementType_WalkSequenceLeftDownRightUp: @ 0x08091480 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _0809149C - adds r0, r0, r2 - ldr r2, _080914A0 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_0809149C: .4byte gUnknown_2036FF0 -_080914A0: .4byte sub_080914A4 - thumb_func_end MovementType_WalkSequenceLeftDownRightUp - - thumb_func_start sub_080914A4 -sub_080914A4: @ 0x080914A4 - push {r4, lr} - ldr r3, _080914C0 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_080914A4 - - thumb_func_start sub_080914B8 -sub_080914B8: @ 0x080914B8 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080914C0: .4byte gUnknown_84E5E4C - thumb_func_end sub_080914B8 - - thumb_func_start MovementType_WalkSequenceLeftDownRightUp_Step1 -MovementType_WalkSequenceLeftDownRightUp_Step1: @ 0x080914C4 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _08091508 - mov r0, sp - movs r2, #4 - bl memcpy - adds r2, r4, #0 - adds r2, #0x21 - ldrb r0, [r2] - cmp r0, #2 - bne _080914F0 - movs r0, #0xc - ldrsh r1, [r4, r0] - movs r3, #0x10 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _080914F0 - movs r0, #3 - strb r0, [r2] -_080914F0: - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sp - bl MoveNextDirectionInSequence - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08091508: .4byte gUnknown_84E5E58 - thumb_func_end MovementType_WalkSequenceLeftDownRightUp_Step1 - - thumb_func_start MovementType_WalkSequenceRightUpLeftDown -MovementType_WalkSequenceRightUpLeftDown: @ 0x0809150C - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _08091528 - adds r0, r0, r2 - ldr r2, _0809152C - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_08091528: .4byte gUnknown_2036FF0 -_0809152C: .4byte sub_08091530 - thumb_func_end MovementType_WalkSequenceRightUpLeftDown - - thumb_func_start sub_08091530 -sub_08091530: @ 0x08091530 - push {r4, lr} - ldr r3, _0809154C - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_08091530 - - thumb_func_start sub_08091544 -sub_08091544: @ 0x08091544 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809154C: .4byte gUnknown_84E5E5C - thumb_func_end sub_08091544 - - thumb_func_start MovementType_WalkSequenceRightUpLeftDown_Step1 -MovementType_WalkSequenceRightUpLeftDown_Step1: @ 0x08091550 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _08091594 - mov r0, sp - movs r2, #4 - bl memcpy - adds r2, r4, #0 - adds r2, #0x21 - ldrb r0, [r2] - cmp r0, #2 - bne _0809157C - movs r0, #0xc - ldrsh r1, [r4, r0] - movs r3, #0x10 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _0809157C - movs r0, #3 - strb r0, [r2] -_0809157C: - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sp - bl MoveNextDirectionInSequence - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08091594: .4byte gUnknown_84E5E68 - thumb_func_end MovementType_WalkSequenceRightUpLeftDown_Step1 - - thumb_func_start MovementType_WalkSequenceUpRightDownLeft -MovementType_WalkSequenceUpRightDownLeft: @ 0x08091598 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _080915B4 - adds r0, r0, r2 - ldr r2, _080915B8 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_080915B4: .4byte gUnknown_2036FF0 -_080915B8: .4byte sub_080915BC - thumb_func_end MovementType_WalkSequenceUpRightDownLeft - - thumb_func_start sub_080915BC -sub_080915BC: @ 0x080915BC - push {r4, lr} - ldr r3, _080915D8 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_080915BC - - thumb_func_start sub_080915D0 -sub_080915D0: @ 0x080915D0 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080915D8: .4byte gUnknown_84E5E6C - thumb_func_end sub_080915D0 - - thumb_func_start MovementType_WalkSequenceUpRightDownLeft_Step1 -MovementType_WalkSequenceUpRightDownLeft_Step1: @ 0x080915DC - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _08091620 - mov r0, sp - movs r2, #4 - bl memcpy - adds r2, r4, #0 - adds r2, #0x21 - ldrb r0, [r2] - cmp r0, #2 - bne _08091608 - movs r0, #0xe - ldrsh r1, [r4, r0] - movs r3, #0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _08091608 - movs r0, #3 - strb r0, [r2] -_08091608: - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sp - bl MoveNextDirectionInSequence - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08091620: .4byte gUnknown_84E5E78 - thumb_func_end MovementType_WalkSequenceUpRightDownLeft_Step1 - - thumb_func_start MovementType_WalkSequenceDownLeftUpRight -MovementType_WalkSequenceDownLeftUpRight: @ 0x08091624 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _08091640 - adds r0, r0, r2 - ldr r2, _08091644 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_08091640: .4byte gUnknown_2036FF0 -_08091644: .4byte sub_08091648 - thumb_func_end MovementType_WalkSequenceDownLeftUpRight - - thumb_func_start sub_08091648 -sub_08091648: @ 0x08091648 - push {r4, lr} - ldr r3, _08091664 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_08091648 - - thumb_func_start sub_0809165C -sub_0809165C: @ 0x0809165C - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08091664: .4byte gUnknown_84E5E7C - thumb_func_end sub_0809165C - - thumb_func_start MovementType_WalkSequenceDownLeftUpRight_Step1 -MovementType_WalkSequenceDownLeftUpRight_Step1: @ 0x08091668 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _080916AC - mov r0, sp - movs r2, #4 - bl memcpy - adds r2, r4, #0 - adds r2, #0x21 - ldrb r0, [r2] - cmp r0, #2 - bne _08091694 - movs r0, #0xe - ldrsh r1, [r4, r0] - movs r3, #0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _08091694 - movs r0, #3 - strb r0, [r2] -_08091694: - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sp - bl MoveNextDirectionInSequence - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080916AC: .4byte gUnknown_84E5E88 - thumb_func_end MovementType_WalkSequenceDownLeftUpRight_Step1 - - thumb_func_start MovementType_WalkSequenceLeftUpRightDown -MovementType_WalkSequenceLeftUpRightDown: @ 0x080916B0 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _080916CC - adds r0, r0, r2 - ldr r2, _080916D0 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_080916CC: .4byte gUnknown_2036FF0 -_080916D0: .4byte sub_080916D4 - thumb_func_end MovementType_WalkSequenceLeftUpRightDown - - thumb_func_start sub_080916D4 -sub_080916D4: @ 0x080916D4 - push {r4, lr} - ldr r3, _080916F0 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_080916D4 - - thumb_func_start sub_080916E8 -sub_080916E8: @ 0x080916E8 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080916F0: .4byte gUnknown_84E5E8C - thumb_func_end sub_080916E8 - - thumb_func_start MovementType_WalkSequenceLeftUpRightDown_Step1 -MovementType_WalkSequenceLeftUpRightDown_Step1: @ 0x080916F4 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _08091738 - mov r0, sp - movs r2, #4 - bl memcpy - adds r2, r4, #0 - adds r2, #0x21 - ldrb r0, [r2] - cmp r0, #2 - bne _08091720 - movs r0, #0xc - ldrsh r1, [r4, r0] - movs r3, #0x10 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _08091720 - movs r0, #3 - strb r0, [r2] -_08091720: - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sp - bl MoveNextDirectionInSequence - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08091738: .4byte gUnknown_84E5E98 - thumb_func_end MovementType_WalkSequenceLeftUpRightDown_Step1 - - thumb_func_start MovementType_WalkSequenceRightDownLeftUp -MovementType_WalkSequenceRightDownLeftUp: @ 0x0809173C - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _08091758 - adds r0, r0, r2 - ldr r2, _0809175C - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_08091758: .4byte gUnknown_2036FF0 -_0809175C: .4byte sub_08091760 - thumb_func_end MovementType_WalkSequenceRightDownLeftUp - - thumb_func_start sub_08091760 -sub_08091760: @ 0x08091760 - push {r4, lr} - ldr r3, _0809177C - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_08091760 - - thumb_func_start sub_08091774 -sub_08091774: @ 0x08091774 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809177C: .4byte gUnknown_84E5E9C - thumb_func_end sub_08091774 - - thumb_func_start MovementType_WalkSequenceRightDownLeftUp_Step1 -MovementType_WalkSequenceRightDownLeftUp_Step1: @ 0x08091780 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _080917C4 - mov r0, sp - movs r2, #4 - bl memcpy - adds r2, r4, #0 - adds r2, #0x21 - ldrb r0, [r2] - cmp r0, #2 - bne _080917AC - movs r0, #0xc - ldrsh r1, [r4, r0] - movs r3, #0x10 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _080917AC - movs r0, #3 - strb r0, [r2] -_080917AC: - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sp - bl MoveNextDirectionInSequence - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080917C4: .4byte gUnknown_84E5EA8 - thumb_func_end MovementType_WalkSequenceRightDownLeftUp_Step1 - - thumb_func_start MovementType_CopyPlayer -MovementType_CopyPlayer: @ 0x080917C8 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _080917E4 - adds r0, r0, r2 - ldr r2, _080917E8 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_080917E4: .4byte gUnknown_2036FF0 -_080917E8: .4byte sub_080917EC - thumb_func_end MovementType_CopyPlayer - - thumb_func_start sub_080917EC -sub_080917EC: @ 0x080917EC - push {r4, lr} - ldr r3, _08091808 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_080917EC - - thumb_func_start sub_08091800 -sub_08091800: @ 0x08091800 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08091808: .4byte gUnknown_84E5EAC - thumb_func_end sub_08091800 - - thumb_func_start MovementType_CopyPlayer_Step0 -MovementType_CopyPlayer_Step0: @ 0x0809180C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl ClearEventObjectMovement - adds r4, #0x21 - ldrb r0, [r4] - cmp r0, #0 - bne _08091824 - bl GetPlayerFacingDirection - strb r0, [r4] -_08091824: - movs r0, #1 - strh r0, [r5, #0x30] - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_CopyPlayer_Step0 - - thumb_func_start sub_08091830 -sub_08091830: @ 0x08091830 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r7, r1, #0 - ldr r2, _08091854 - ldr r3, _08091858 - ldrb r1, [r3, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #0x1c] - cmp r0, #0xff - beq _08091850 - ldrb r0, [r3, #3] - cmp r0, #2 - bne _0809185C -_08091850: - movs r0, #0 - b _08091884 - .align 2, 0 -_08091854: .4byte gUnknown_2036FF0 -_08091858: .4byte gUnknown_2037230 -_0809185C: - ldr r5, _0809188C - bl PlayerGetCopyableMovement - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x16 - adds r4, r4, r5 - bl GetPlayerMovementDirection - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r4, [r4] - adds r0, r6, #0 - adds r1, r7, #0 - movs r3, #0 - bl _call_via_r4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_08091884: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0809188C: .4byte gUnknown_84E5EB8 - thumb_func_end sub_08091830 - - thumb_func_start MovementType_CopyPlayer_Step2 -MovementType_CopyPlayer_Step2: @ 0x08091890 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl EventObjectExecSingleMovementAction - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080918AE - ldrb r0, [r4] - movs r1, #3 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4] - movs r0, #1 - strh r0, [r5, #0x30] -_080918AE: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_CopyPlayer_Step2 - - thumb_func_start sub_080918B8 -sub_080918B8: @ 0x080918B8 - movs r0, #0 - bx lr - thumb_func_end sub_080918B8 - - thumb_func_start CopyablePlayerMovement_FaceDirection -CopyablePlayerMovement_FaceDirection: @ 0x080918BC - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r1, _08091900 - ldrb r0, [r4, #6] - adds r0, r0, r1 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x21 - ldrb r1, [r1] - bl state_to_direction - bl sub_08092CA0 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl EventObjectSetSingleMovement - ldrb r0, [r4] - movs r1, #2 - orrs r0, r1 - strb r0, [r4] - movs r0, #2 - strh r0, [r5, #0x30] - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08091900: .4byte gUnknown_84DDA21 - thumb_func_end CopyablePlayerMovement_FaceDirection - - thumb_func_start CopyablePlayerMovement_GoSpeed0 -CopyablePlayerMovement_GoSpeed0: @ 0x08091904 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r4, r0, #0 - adds r7, r1, #0 - mov r8, r3 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - adds r6, r5, #0 - bl EventObjectIsFarawayIslandMew - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809196C - bl GetMewMoveDirection - adds r5, r0, #0 - cmp r5, #0 - bne _08091982 - adds r5, r6, #0 - ldr r1, _08091968 - ldrb r0, [r4, #6] - adds r0, r0, r1 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x21 - ldrb r1, [r1] - adds r2, r5, #0 - bl state_to_direction - adds r5, r0, #0 - mov r3, sp - adds r3, #2 - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sp - bl EventObjectMoveDestCoords - adds r0, r5, #0 - bl sub_08092CA0 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r7, #0 - bl EventObjectSetSingleMovement - b _080919F4 - .align 2, 0 -_08091968: .4byte gUnknown_84DDA21 -_0809196C: - ldr r1, _08091A10 - ldrb r0, [r4, #6] - adds r0, r0, r1 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x21 - ldrb r1, [r1] - adds r2, r5, #0 - bl state_to_direction - adds r5, r0, #0 -_08091982: - mov r6, sp - adds r6, #2 - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sp - adds r3, r6, #0 - bl EventObjectMoveDestCoords - adds r0, r5, #0 - bl sub_08092CF8 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r7, #0 - bl EventObjectSetSingleMovement - mov r0, sp - movs r2, #0 - ldrsh r1, [r0, r2] - movs r0, #0 - ldrsh r2, [r6, r0] - adds r0, r4, #0 - adds r3, r5, #0 - bl GetCollisionAtCoords - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080919E0 - mov r1, r8 - cmp r1, #0 - beq _080919F4 - mov r0, sp - movs r2, #0 - ldrsh r0, [r0, r2] - movs r2, #0 - ldrsh r1, [r6, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl _call_via_r8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080919F4 -_080919E0: - adds r0, r5, #0 - bl sub_08092CA0 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r7, #0 - bl EventObjectSetSingleMovement -_080919F4: - ldrb r0, [r4] - movs r1, #2 - orrs r0, r1 - strb r0, [r4] - movs r0, #2 - strh r0, [r7, #0x30] - movs r0, #1 - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08091A10: .4byte gUnknown_84DDA21 - thumb_func_end CopyablePlayerMovement_GoSpeed0 - - thumb_func_start CopyablePlayerMovement_GoSpeed1 -CopyablePlayerMovement_GoSpeed1: @ 0x08091A14 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r4, r0, #0 - adds r7, r1, #0 - mov r8, r3 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - ldr r1, _08091AC8 - ldrb r0, [r4, #6] - adds r0, r0, r1 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x21 - ldrb r1, [r1] - adds r2, r6, #0 - bl state_to_direction - adds r6, r0, #0 - mov r5, sp - adds r5, #2 - adds r0, r4, #0 - adds r1, r6, #0 - mov r2, sp - adds r3, r5, #0 - bl EventObjectMoveDestCoords - adds r0, r6, #0 - bl sub_08092D24 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r7, #0 - bl EventObjectSetSingleMovement - mov r0, sp - movs r2, #0 - ldrsh r1, [r0, r2] - movs r0, #0 - ldrsh r2, [r5, r0] - adds r0, r4, #0 - adds r3, r6, #0 - bl GetCollisionAtCoords - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08091A9A - mov r1, r8 - cmp r1, #0 - beq _08091AAE - mov r0, sp - movs r2, #0 - ldrsh r0, [r0, r2] - movs r2, #0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl _call_via_r8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08091AAE -_08091A9A: - adds r0, r6, #0 - bl sub_08092CA0 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r7, #0 - bl EventObjectSetSingleMovement -_08091AAE: - ldrb r0, [r4] - movs r1, #2 - orrs r0, r1 - strb r0, [r4] - movs r0, #2 - strh r0, [r7, #0x30] - movs r0, #1 - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08091AC8: .4byte gUnknown_84DDA21 - thumb_func_end CopyablePlayerMovement_GoSpeed1 - - thumb_func_start CopyablePlayerMovement_GoSpeed2 -CopyablePlayerMovement_GoSpeed2: @ 0x08091ACC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r4, r0, #0 - adds r7, r1, #0 - mov r8, r3 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - ldr r1, _08091B80 - ldrb r0, [r4, #6] - adds r0, r0, r1 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x21 - ldrb r1, [r1] - adds r2, r6, #0 - bl state_to_direction - adds r6, r0, #0 - mov r5, sp - adds r5, #2 - adds r0, r4, #0 - adds r1, r6, #0 - mov r2, sp - adds r3, r5, #0 - bl EventObjectMoveDestCoords - adds r0, r6, #0 - bl sub_08092D7C - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r7, #0 - bl EventObjectSetSingleMovement - mov r0, sp - movs r2, #0 - ldrsh r1, [r0, r2] - movs r0, #0 - ldrsh r2, [r5, r0] - adds r0, r4, #0 - adds r3, r6, #0 - bl GetCollisionAtCoords - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08091B52 - mov r1, r8 - cmp r1, #0 - beq _08091B66 - mov r0, sp - movs r2, #0 - ldrsh r0, [r0, r2] - movs r2, #0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl _call_via_r8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08091B66 -_08091B52: - adds r0, r6, #0 - bl sub_08092CA0 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r7, #0 - bl EventObjectSetSingleMovement -_08091B66: - ldrb r0, [r4] - movs r1, #2 - orrs r0, r1 - strb r0, [r4] - movs r0, #2 - strh r0, [r7, #0x30] - movs r0, #1 - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08091B80: .4byte gUnknown_84DDA21 - thumb_func_end CopyablePlayerMovement_GoSpeed2 - - thumb_func_start CopyablePlayerMovement_Slide -CopyablePlayerMovement_Slide: @ 0x08091B84 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r4, r0, #0 - adds r7, r1, #0 - mov r8, r3 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - ldr r1, _08091C38 - ldrb r0, [r4, #6] - adds r0, r0, r1 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x21 - ldrb r1, [r1] - adds r2, r6, #0 - bl state_to_direction - adds r6, r0, #0 - mov r5, sp - adds r5, #2 - adds r0, r4, #0 - adds r1, r6, #0 - mov r2, sp - adds r3, r5, #0 - bl EventObjectMoveDestCoords - adds r0, r6, #0 - bl sub_08092DA8 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r7, #0 - bl EventObjectSetSingleMovement - mov r0, sp - movs r2, #0 - ldrsh r1, [r0, r2] - movs r0, #0 - ldrsh r2, [r5, r0] - adds r0, r4, #0 - adds r3, r6, #0 - bl GetCollisionAtCoords - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08091C0A - mov r1, r8 - cmp r1, #0 - beq _08091C1E - mov r0, sp - movs r2, #0 - ldrsh r0, [r0, r2] - movs r2, #0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl _call_via_r8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08091C1E -_08091C0A: - adds r0, r6, #0 - bl sub_08092CA0 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r7, #0 - bl EventObjectSetSingleMovement -_08091C1E: - ldrb r0, [r4] - movs r1, #2 - orrs r0, r1 - strb r0, [r4] - movs r0, #2 - strh r0, [r7, #0x30] - movs r0, #1 - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08091C38: .4byte gUnknown_84DDA21 - thumb_func_end CopyablePlayerMovement_Slide - - thumb_func_start cph_IM_DIFFERENT -cph_IM_DIFFERENT: @ 0x08091C3C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r1, _08091C80 - ldrb r0, [r4, #6] - adds r0, r0, r1 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x21 - ldrb r1, [r1] - bl state_to_direction - bl sub_08092E2C - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl EventObjectSetSingleMovement - ldrb r0, [r4] - movs r1, #2 - orrs r0, r1 - strb r0, [r4] - movs r0, #2 - strh r0, [r5, #0x30] - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08091C80: .4byte gUnknown_84DDA21 - thumb_func_end cph_IM_DIFFERENT - - thumb_func_start CopyablePlayerMovement_GoSpeed4 -CopyablePlayerMovement_GoSpeed4: @ 0x08091C84 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r4, r0, #0 - adds r7, r1, #0 - mov r8, r3 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - ldr r1, _08091D38 - ldrb r0, [r4, #6] - adds r0, r0, r1 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x21 - ldrb r1, [r1] - adds r2, r6, #0 - bl state_to_direction - adds r6, r0, #0 - mov r5, sp - adds r5, #2 - adds r0, r4, #0 - adds r1, r6, #0 - mov r2, sp - adds r3, r5, #0 - bl EventObjectMoveDestCoords - adds r0, r6, #0 - bl sub_08092E84 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r7, #0 - bl EventObjectSetSingleMovement - mov r0, sp - movs r2, #0 - ldrsh r1, [r0, r2] - movs r0, #0 - ldrsh r2, [r5, r0] - adds r0, r4, #0 - adds r3, r6, #0 - bl GetCollisionAtCoords - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08091D0A - mov r1, r8 - cmp r1, #0 - beq _08091D1E - mov r0, sp - movs r2, #0 - ldrsh r0, [r0, r2] - movs r2, #0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl _call_via_r8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08091D1E -_08091D0A: - adds r0, r6, #0 - bl sub_08092CA0 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r7, #0 - bl EventObjectSetSingleMovement -_08091D1E: - ldrb r0, [r4] - movs r1, #2 - orrs r0, r1 - strb r0, [r4] - movs r0, #2 - strh r0, [r7, #0x30] - movs r0, #1 - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08091D38: .4byte gUnknown_84DDA21 - thumb_func_end CopyablePlayerMovement_GoSpeed4 - - thumb_func_start CopyablePlayerMovement_Jump -CopyablePlayerMovement_Jump: @ 0x08091D3C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - adds r4, r0, #0 - adds r7, r1, #0 - mov r8, r3 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - ldr r1, _08091E00 - ldrb r0, [r4, #6] - adds r0, r0, r1 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x21 - ldrb r1, [r1] - adds r2, r6, #0 - bl state_to_direction - adds r6, r0, #0 - ldrh r1, [r4, #0x10] - add r0, sp, #4 - strh r1, [r0] - ldrh r0, [r4, #0x12] - mov r5, sp - adds r5, #6 - strh r0, [r5] - movs r0, #2 - str r0, [sp] - adds r0, r6, #0 - add r1, sp, #4 - adds r2, r5, #0 - movs r3, #2 - bl MoveCoordsInDirection - adds r0, r6, #0 - bl sub_08092E00 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r7, #0 - bl EventObjectSetSingleMovement - add r0, sp, #4 - movs r2, #0 - ldrsh r1, [r0, r2] - movs r0, #0 - ldrsh r2, [r5, r0] - adds r0, r4, #0 - adds r3, r6, #0 - bl GetCollisionAtCoords - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08091DD0 - mov r1, r8 - cmp r1, #0 - beq _08091DE4 - add r0, sp, #4 - movs r2, #0 - ldrsh r0, [r0, r2] - movs r2, #0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl _call_via_r8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08091DE4 -_08091DD0: - adds r0, r6, #0 - bl sub_08092CA0 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r7, #0 - bl EventObjectSetSingleMovement -_08091DE4: - ldrb r0, [r4] - movs r1, #2 - orrs r0, r1 - strb r0, [r4] - movs r0, #2 - strh r0, [r7, #0x30] - movs r0, #1 - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08091E00: .4byte gUnknown_84DDA21 - thumb_func_end CopyablePlayerMovement_Jump - - thumb_func_start MovementType_CopyPlayerInGrass -MovementType_CopyPlayerInGrass: @ 0x08091E04 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _08091E20 - adds r0, r0, r2 - ldr r2, _08091E24 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_08091E20: .4byte gUnknown_2036FF0 -_08091E24: .4byte sub_08091E28 - thumb_func_end MovementType_CopyPlayerInGrass - - thumb_func_start sub_08091E28 -sub_08091E28: @ 0x08091E28 - push {r4, lr} - ldr r3, _08091E44 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_08091E28 - - thumb_func_start sub_08091E3C -sub_08091E3C: @ 0x08091E3C - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08091E44: .4byte gUnknown_84E5EE4 - thumb_func_end sub_08091E3C - - thumb_func_start MovementType_CopyPlayerInGrass_Step1 -MovementType_CopyPlayerInGrass_Step1: @ 0x08091E48 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r7, r1, #0 - ldr r2, _08091E6C - ldr r3, _08091E70 - ldrb r1, [r3, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #0x1c] - cmp r0, #0xff - beq _08091E68 - ldrb r0, [r3, #3] - cmp r0, #2 - bne _08091E74 -_08091E68: - movs r0, #0 - b _08091E9C - .align 2, 0 -_08091E6C: .4byte gUnknown_2036FF0 -_08091E70: .4byte gUnknown_2037230 -_08091E74: - ldr r5, _08091EA4 - bl PlayerGetCopyableMovement - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x16 - adds r4, r4, r5 - bl GetPlayerMovementDirection - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r3, _08091EA8 - ldr r4, [r4] - adds r0, r6, #0 - adds r1, r7, #0 - bl _call_via_r4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_08091E9C: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08091EA4: .4byte gUnknown_84E5EB8 -_08091EA8: .4byte MetatileBehavior_IsPokeGrass - thumb_func_end MovementType_CopyPlayerInGrass_Step1 - - thumb_func_start MovementType_TreeDisguise -MovementType_TreeDisguise: @ 0x08091EAC - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _08091F10 - adds r4, r1, r0 - adds r6, r4, #0 - adds r6, #0x21 - ldrb r0, [r6] - cmp r0, #0 - beq _08091ED4 - cmp r0, #1 - bne _08091EF4 - movs r1, #0x3c - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _08091EF4 -_08091ED4: - ldr r1, _08091F14 - adds r2, r1, #4 - adds r3, r1, #0 - adds r3, #8 - adds r0, r4, #0 - bl EventObjectGetLocalIdAndMap - movs r0, #0x1c - bl FieldEffectStart - strb r0, [r4, #0x1a] - movs r0, #1 - strb r0, [r6] - ldrh r0, [r5, #0x3c] - adds r0, #1 - strh r0, [r5, #0x3c] -_08091EF4: - movs r0, #0x2e - ldrsh r1, [r5, r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08091F10 - adds r0, r0, r1 - ldr r2, _08091F18 - adds r1, r5, #0 - bl UpdateEventObjectCurrentMovement - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08091F10: .4byte gUnknown_2036FF0 -_08091F14: .4byte gUnknown_20388A8 -_08091F18: .4byte MovementType_Disguise_Callback - thumb_func_end MovementType_TreeDisguise - - thumb_func_start MovementType_Disguise_Callback -MovementType_Disguise_Callback: @ 0x08091F1C - push {lr} - bl ClearEventObjectMovement - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end MovementType_Disguise_Callback - - thumb_func_start MovementType_MountainDisguise -MovementType_MountainDisguise: @ 0x08091F28 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _08091F8C - adds r4, r1, r0 - adds r6, r4, #0 - adds r6, #0x21 - ldrb r0, [r6] - cmp r0, #0 - beq _08091F50 - cmp r0, #1 - bne _08091F70 - movs r1, #0x3c - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _08091F70 -_08091F50: - ldr r1, _08091F90 - adds r2, r1, #4 - adds r3, r1, #0 - adds r3, #8 - adds r0, r4, #0 - bl EventObjectGetLocalIdAndMap - movs r0, #0x1d - bl FieldEffectStart - strb r0, [r4, #0x1a] - movs r0, #1 - strb r0, [r6] - ldrh r0, [r5, #0x3c] - adds r0, #1 - strh r0, [r5, #0x3c] -_08091F70: - movs r0, #0x2e - ldrsh r1, [r5, r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08091F8C - adds r0, r0, r1 - ldr r2, _08091F94 - adds r1, r5, #0 - bl UpdateEventObjectCurrentMovement - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08091F8C: .4byte gUnknown_2036FF0 -_08091F90: .4byte gUnknown_20388A8 -_08091F94: .4byte MovementType_Disguise_Callback - thumb_func_end MovementType_MountainDisguise - - thumb_func_start MovementType_Hidden -MovementType_Hidden: @ 0x08091F98 - push {r4, lr} - adds r3, r0, #0 - movs r1, #0x3c - ldrsh r0, [r3, r1] - ldr r4, _08091FF4 - cmp r0, #0 - bne _08091FD8 - movs r0, #0x2e - ldrsh r1, [r3, r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r1, [r0, #3] - movs r2, #4 - orrs r1, r2 - strb r1, [r0, #3] - adds r2, r3, #0 - adds r2, #0x42 - ldrb r1, [r2] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r3, #5] - movs r1, #0xc - orrs r0, r1 - strb r0, [r3, #5] - ldrh r0, [r3, #0x3c] - adds r0, #1 - strh r0, [r3, #0x3c] -_08091FD8: - movs r0, #0x2e - ldrsh r1, [r3, r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r2, _08091FF8 - adds r1, r3, #0 - bl UpdateEventObjectCurrentMovement - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08091FF4: .4byte gUnknown_2036FF0 -_08091FF8: .4byte sub_08091FFC - thumb_func_end MovementType_Hidden - - thumb_func_start sub_08091FFC -sub_08091FFC: @ 0x08091FFC - push {r4, lr} - ldr r3, _08092018 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_08091FFC - - thumb_func_start sub_08092010 -sub_08092010: @ 0x08092010 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08092018: .4byte gUnknown_84E5EF0 - thumb_func_end sub_08092010 - - thumb_func_start MovementType_Hidden_Step0 -MovementType_Hidden_Step0: @ 0x0809201C - push {lr} - bl ClearEventObjectMovement - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end MovementType_Hidden_Step0 - - thumb_func_start MovementType_MoveInPlace_Step1 -MovementType_MoveInPlace_Step1: @ 0x08092028 - push {r4, lr} - adds r4, r1, #0 - bl EventObjectExecSingleMovementAction - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809203A - movs r0, #0 - strh r0, [r4, #0x30] -_0809203A: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_MoveInPlace_Step1 - - thumb_func_start MovementType_WalkInPlace -MovementType_WalkInPlace: @ 0x08092044 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _08092060 - adds r0, r0, r2 - ldr r2, _08092064 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_08092060: .4byte gUnknown_2036FF0 -_08092064: .4byte sub_08092068 - thumb_func_end MovementType_WalkInPlace - - thumb_func_start sub_08092068 -sub_08092068: @ 0x08092068 - push {r4, lr} - ldr r3, _08092084 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_08092068 - - thumb_func_start sub_0809207C -sub_0809207C: @ 0x0809207C - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08092084: .4byte gUnknown_84E5EF4 - thumb_func_end sub_0809207C - - thumb_func_start MovementType_WalkInPlace_Step0 -MovementType_WalkInPlace_Step0: @ 0x08092088 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl ClearEventObjectMovement - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_08092F08 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl EventObjectSetSingleMovement - movs r0, #1 - strh r0, [r5, #0x30] - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementType_WalkInPlace_Step0 - - thumb_func_start MovementType_WalkSlowlyInPlace -MovementType_WalkSlowlyInPlace: @ 0x080920B4 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _080920D0 - adds r0, r0, r2 - ldr r2, _080920D4 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_080920D0: .4byte gUnknown_2036FF0 -_080920D4: .4byte sub_080920D8 - thumb_func_end MovementType_WalkSlowlyInPlace - - thumb_func_start sub_080920D8 -sub_080920D8: @ 0x080920D8 - push {r4, lr} - ldr r3, _080920F4 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_080920D8 - - thumb_func_start sub_080920EC -sub_080920EC: @ 0x080920EC - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080920F4: .4byte gUnknown_84E5EFC - thumb_func_end sub_080920EC - - thumb_func_start MovementType_WalkSlowlyInPlace_Step0 -MovementType_WalkSlowlyInPlace_Step0: @ 0x080920F8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl ClearEventObjectMovement - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_08092EDC - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl EventObjectSetSingleMovement - movs r0, #1 - strh r0, [r5, #0x30] - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementType_WalkSlowlyInPlace_Step0 - - thumb_func_start MovementType_JogInPlace -MovementType_JogInPlace: @ 0x08092124 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _08092140 - adds r0, r0, r2 - ldr r2, _08092144 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_08092140: .4byte gUnknown_2036FF0 -_08092144: .4byte sub_08092148 - thumb_func_end MovementType_JogInPlace - - thumb_func_start sub_08092148 -sub_08092148: @ 0x08092148 - push {r4, lr} - ldr r3, _08092164 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_08092148 - - thumb_func_start sub_0809215C -sub_0809215C: @ 0x0809215C - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08092164: .4byte gUnknown_84E5F04 - thumb_func_end sub_0809215C - - thumb_func_start MovementType_JogInPlace_Step0 -MovementType_JogInPlace_Step0: @ 0x08092168 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl ClearEventObjectMovement - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_08092F34 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl EventObjectSetSingleMovement - movs r0, #1 - strh r0, [r5, #0x30] - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementType_JogInPlace_Step0 - - thumb_func_start MovementType_RunInPlace -MovementType_RunInPlace: @ 0x08092194 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _080921B0 - adds r0, r0, r2 - ldr r2, _080921B4 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_080921B0: .4byte gUnknown_2036FF0 -_080921B4: .4byte sub_080921B8 - thumb_func_end MovementType_RunInPlace - - thumb_func_start sub_080921B8 -sub_080921B8: @ 0x080921B8 - push {r4, lr} - ldr r3, _080921D4 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_080921B8 - - thumb_func_start sub_080921CC -sub_080921CC: @ 0x080921CC - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080921D4: .4byte gUnknown_84E5F0C - thumb_func_end sub_080921CC - - thumb_func_start MovementType_RunInPlace_Step0 -MovementType_RunInPlace_Step0: @ 0x080921D8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl ClearEventObjectMovement - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_08092F60 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl EventObjectSetSingleMovement - movs r0, #1 - strh r0, [r5, #0x30] - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementType_RunInPlace_Step0 - - thumb_func_start MovementType_Invisible -MovementType_Invisible: @ 0x08092204 - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _08092220 - adds r0, r0, r2 - ldr r2, _08092224 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .align 2, 0 -_08092220: .4byte gUnknown_2036FF0 -_08092224: .4byte sub_08092228 - thumb_func_end MovementType_Invisible - - thumb_func_start sub_08092228 -sub_08092228: @ 0x08092228 - push {r4, lr} - ldr r3, _08092244 - movs r4, #0x30 - ldrsh r2, [r1, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end sub_08092228 - - thumb_func_start sub_0809223C -sub_0809223C: @ 0x0809223C - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08092244: .4byte gUnknown_84E5F14 - thumb_func_end sub_0809223C - - thumb_func_start MovementType_Invisible_Step0 -MovementType_Invisible_Step0: @ 0x08092248 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl ClearEventObjectMovement - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_08092CA0 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl EventObjectSetSingleMovement - ldrb r0, [r4, #1] - movs r1, #0x20 - orrs r0, r1 - strb r0, [r4, #1] - movs r0, #1 - strh r0, [r5, #0x30] - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementType_Invisible_Step0 - - thumb_func_start MovementType_Invisible_Step1 -MovementType_Invisible_Step1: @ 0x0809227C - push {r4, lr} - adds r4, r1, #0 - bl EventObjectExecSingleMovementAction - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809228E - movs r0, #0 - b _08092294 -_0809228E: - movs r0, #2 - strh r0, [r4, #0x30] - movs r0, #1 -_08092294: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementType_Invisible_Step1 - - thumb_func_start sub_0809229C -sub_0809229C: @ 0x0809229C - ldrb r2, [r0] - movs r1, #3 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - movs r0, #0 - bx lr - .align 2, 0 - thumb_func_end sub_0809229C - - thumb_func_start ClearEventObjectMovement -ClearEventObjectMovement: @ 0x080922AC - ldrb r3, [r0] - movs r2, #3 - rsbs r2, r2, #0 - ands r2, r3 - movs r3, #0x41 - rsbs r3, r3, #0 - ands r2, r3 - movs r3, #0x7f - ands r2, r3 - strb r2, [r0] - movs r2, #0xff - strb r2, [r0, #0x1c] - movs r0, #0 - strh r0, [r1, #0x30] - bx lr - .align 2, 0 - thumb_func_end ClearEventObjectMovement - - thumb_func_start sub_080922CC -sub_080922CC: @ 0x080922CC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080922D8 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080922D8: .4byte gUnknown_84E5F20 - thumb_func_end sub_080922CC - - thumb_func_start sub_080922DC -sub_080922DC: @ 0x080922DC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080922E8 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080922E8: .4byte gUnknown_84E5F29 - thumb_func_end sub_080922DC - - thumb_func_start sub_080922EC -sub_080922EC: @ 0x080922EC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080922F8 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080922F8: .4byte gUnknown_84E5F32 - thumb_func_end sub_080922EC - - thumb_func_start sub_080922FC -sub_080922FC: @ 0x080922FC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08092308 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08092308: .4byte gUnknown_84E5F3B - thumb_func_end sub_080922FC - - thumb_func_start sub_0809230C -sub_0809230C: @ 0x0809230C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08092318 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08092318: .4byte gUnknown_84E5F44 - thumb_func_end sub_0809230C - - thumb_func_start sub_0809231C -sub_0809231C: @ 0x0809231C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08092328 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08092328: .4byte gUnknown_84E5F4D - thumb_func_end sub_0809231C - - thumb_func_start sub_0809232C -sub_0809232C: @ 0x0809232C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08092338 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08092338: .4byte gUnknown_84E5F56 - thumb_func_end sub_0809232C - - thumb_func_start sub_0809233C -sub_0809233C: @ 0x0809233C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08092348 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08092348: .4byte gUnknown_84E5F5F - thumb_func_end sub_0809233C - - thumb_func_start sub_0809234C -sub_0809234C: @ 0x0809234C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08092358 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08092358: .4byte gUnknown_84E5F68 - thumb_func_end sub_0809234C - - thumb_func_start sub_0809235C -sub_0809235C: @ 0x0809235C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08092368 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08092368: .4byte gUnknown_84E5F71 - thumb_func_end sub_0809235C - - thumb_func_start sub_0809236C -sub_0809236C: @ 0x0809236C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08092378 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08092378: .4byte gUnknown_84E5F7A - thumb_func_end sub_0809236C - - thumb_func_start sub_0809237C -sub_0809237C: @ 0x0809237C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08092388 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08092388: .4byte gUnknown_84E5F83 - thumb_func_end sub_0809237C - - thumb_func_start sub_0809238C -sub_0809238C: @ 0x0809238C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08092398 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08092398: .4byte gUnknown_84E5F8C - thumb_func_end sub_0809238C - - thumb_func_start sub_0809239C -sub_0809239C: @ 0x0809239C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080923A8 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080923A8: .4byte gUnknown_84E5F95 - thumb_func_end sub_0809239C - - thumb_func_start sub_080923AC -sub_080923AC: @ 0x080923AC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080923B8 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080923B8: .4byte gUnknown_84E5F9E - thumb_func_end sub_080923AC - - thumb_func_start sub_080923BC -sub_080923BC: @ 0x080923BC - push {lr} - adds r2, r0, #0 - ldr r1, _080923C4 - b _080923D4 - .align 2, 0 -_080923C4: .4byte gUnknown_84E1900 -_080923C8: - ldr r0, [r1] - cmp r0, r2 - bne _080923D2 - adds r0, r1, #0 - b _080923DC -_080923D2: - adds r1, #8 -_080923D4: - ldr r0, [r1] - cmp r0, #0 - bne _080923C8 - movs r0, #0 -_080923DC: - pop {r1} - bx r1 - thumb_func_end sub_080923BC - - thumb_func_start npc_apply_anim_looping -npc_apply_anim_looping: @ 0x080923E0 - push {r4, lr} - adds r4, r1, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r0, [r0, #1] - lsls r0, r0, #0x1b - cmp r0, #0 - blt _08092422 - adds r0, r4, #0 - adds r0, #0x2a - strb r2, [r0] - ldr r0, [r4, #8] - bl sub_080923BC - adds r1, r4, #0 - adds r1, #0x2b - cmp r0, #0 - beq _0809241A - ldrb r2, [r1] - ldrb r3, [r0, #4] - cmp r2, r3 - bne _08092410 - ldrb r0, [r0, #7] - b _08092418 -_08092410: - ldrb r3, [r0, #5] - cmp r2, r3 - bne _0809241A - ldrb r0, [r0, #6] -_08092418: - strb r0, [r1] -_0809241A: - ldrb r1, [r1] - adds r0, r4, #0 - bl SeekSpriteAnim -_08092422: - pop {r4} - pop {r0} - bx r0 - thumb_func_end npc_apply_anim_looping - - thumb_func_start obj_npc_animation_step -obj_npc_animation_step: @ 0x08092428 - push {r4, lr} - adds r4, r1, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r0, [r0, #1] - lsls r0, r0, #0x1b - cmp r0, #0 - blt _08092460 - adds r0, r4, #0 - adds r0, #0x2a - strb r2, [r0] - ldr r0, [r4, #8] - bl sub_080923BC - adds r2, r0, #0 - cmp r2, #0 - beq _08092460 - ldrb r1, [r2, #5] - adds r0, r4, #0 - adds r0, #0x2b - ldrb r0, [r0] - ldrb r3, [r2, #4] - cmp r0, r3 - bhi _0809245A - ldrb r1, [r2, #4] -_0809245A: - adds r0, r4, #0 - bl SeekSpriteAnim -_08092460: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end obj_npc_animation_step - - thumb_func_start GetDirectionToFace -GetDirectionToFace: @ 0x08092468 - push {lr} - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - cmp r0, r2 - ble _08092482 - movs r0, #3 - b _08092498 -_08092482: - cmp r0, r2 - bge _0809248A - movs r0, #4 - b _08092498 -_0809248A: - lsls r1, r1, #0x10 - lsls r0, r3, #0x10 - cmp r1, r0 - bgt _08092496 - movs r0, #1 - b _08092498 -_08092496: - movs r0, #2 -_08092498: - pop {r1} - bx r1 - thumb_func_end GetDirectionToFace - - thumb_func_start SetTrainerMovementType -SetTrainerMovementType: @ 0x0809249C - push {r4, lr} - mov ip, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r3, #0 - strb r1, [r0, #6] - adds r0, #0x21 - strb r3, [r0] - adds r0, #1 - strb r3, [r0] - ldr r4, _080924E0 - mov r0, ip - ldrb r2, [r0, #4] - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r2, r4, #0 - adds r2, #0x1c - adds r0, r0, r2 - ldr r2, _080924E4 - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - str r1, [r0] - mov r0, ip - ldrb r1, [r0, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - strh r3, [r0, #0x30] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080924E0: .4byte gUnknown_20205AC -_080924E4: .4byte gUnknown_84DD88C - thumb_func_end SetTrainerMovementType - - thumb_func_start sub_080924E8 -sub_080924E8: @ 0x080924E8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080924F4 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080924F4: .4byte gUnknown_84E5FA7 - thumb_func_end sub_080924E8 - - thumb_func_start GetCollisionInDirection -GetCollisionInDirection: @ 0x080924F8 - push {r4, r5, r6, lr} - sub sp, #4 - adds r6, r0, #0 - lsls r5, r1, #0x18 - lsrs r5, r5, #0x18 - ldrh r1, [r6, #0x10] - mov r0, sp - strh r1, [r0] - ldrh r0, [r6, #0x12] - mov r4, sp - adds r4, #2 - strh r0, [r4] - adds r0, r5, #0 - mov r1, sp - adds r2, r4, #0 - bl MoveCoords - mov r0, sp - movs r2, #0 - ldrsh r1, [r0, r2] - movs r0, #0 - ldrsh r2, [r4, r0] - adds r0, r6, #0 - adds r3, r5, #0 - bl GetCollisionAtCoords - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end GetCollisionInDirection - - thumb_func_start GetCollisionAtCoords -GetCollisionAtCoords: @ 0x08092538 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r6, r0, #0 - lsls r1, r1, #0x10 - lsls r2, r2, #0x10 - lsls r3, r3, #0x18 - lsrs r7, r3, #0x18 - mov r8, r7 - lsrs r0, r1, #0x10 - mov sb, r0 - asrs r5, r1, #0x10 - lsrs r0, r2, #0x10 - mov sl, r0 - asrs r4, r2, #0x10 - adds r0, r6, #0 - adds r1, r5, #0 - adds r2, r4, #0 - bl IsCoordOutsideEventObjectMovementRange - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809256E - movs r0, #1 - b _080925EE -_0809256E: - adds r0, r5, #0 - adds r1, r4, #0 - bl MapGridIsImpassableAt - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080925B0 - adds r0, r5, #0 - adds r1, r4, #0 - bl GetMapBorderIdAt - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080925B0 - adds r0, r6, #0 - adds r1, r5, #0 - adds r2, r4, #0 - adds r3, r7, #0 - bl sub_08092738 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080925B0 - ldrb r0, [r6, #1] - lsrs r0, r0, #7 - cmp r0, #0 - beq _080925B4 - mov r0, r8 - bl CanCameraMoveInDirection - cmp r0, #0 - bne _080925B4 -_080925B0: - movs r0, #2 - b _080925EE -_080925B4: - ldrb r0, [r6, #0xb] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - mov r2, sb - lsls r1, r2, #0x10 - asrs r5, r1, #0x10 - mov r2, sl - lsls r1, r2, #0x10 - asrs r4, r1, #0x10 - adds r1, r5, #0 - adds r2, r4, #0 - bl IsZCoordMismatchAt - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080925D8 - movs r0, #3 - b _080925EE -_080925D8: - adds r0, r6, #0 - adds r1, r5, #0 - adds r2, r4, #0 - bl DoesObjectCollideWithObjectAt - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080925EC - movs r0, #0 - b _080925EE -_080925EC: - movs r0, #4 -_080925EE: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end GetCollisionAtCoords - - thumb_func_start GetCollisionFlagsAtCoords -GetCollisionFlagsAtCoords: @ 0x080925FC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r7, r0, #0 - lsls r1, r1, #0x10 - lsls r2, r2, #0x10 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r8, r3 - lsrs r0, r1, #0x10 - mov sb, r0 - asrs r6, r1, #0x10 - lsrs r0, r2, #0x10 - mov sl, r0 - asrs r5, r2, #0x10 - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r5, #0 - bl IsCoordOutsideEventObjectMovementRange - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r4, r1, #0x1f - adds r0, r6, #0 - adds r1, r5, #0 - bl MapGridIsImpassableAt - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08092674 - adds r0, r6, #0 - adds r1, r5, #0 - bl GetMapBorderIdAt - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _08092674 - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r5, #0 - mov r3, r8 - bl sub_08092738 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08092674 - ldrb r0, [r7, #1] - lsrs r0, r0, #7 - cmp r0, #0 - beq _08092678 - mov r0, r8 - bl CanCameraMoveInDirection - cmp r0, #0 - bne _08092678 -_08092674: - movs r0, #2 - orrs r4, r0 -_08092678: - ldrb r0, [r7, #0xb] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - mov r2, sb - lsls r1, r2, #0x10 - asrs r6, r1, #0x10 - mov r2, sl - lsls r1, r2, #0x10 - asrs r5, r1, #0x10 - adds r1, r6, #0 - adds r2, r5, #0 - bl IsZCoordMismatchAt - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080926A0 - movs r0, #4 - orrs r4, r0 - lsls r0, r4, #0x18 - lsrs r4, r0, #0x18 -_080926A0: - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r5, #0 - bl DoesObjectCollideWithObjectAt - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080926B8 - movs r0, #8 - orrs r4, r0 - lsls r0, r4, #0x18 - lsrs r4, r0, #0x18 -_080926B8: - adds r0, r4, #0 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end GetCollisionFlagsAtCoords - - thumb_func_start IsCoordOutsideEventObjectMovementRange -IsCoordOutsideEventObjectMovementRange: @ 0x080926C8 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r1, r1, #0x10 - lsrs r3, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r5, r2, #0x10 - ldrb r1, [r4, #0x19] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - beq _08092700 - lsls r1, r1, #0x1c - lsrs r2, r1, #0x1c - ldrh r0, [r4, #0xc] - subs r2, r0, r2 - lsrs r1, r1, #0x1c - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - lsls r2, r2, #0x10 - lsls r0, r3, #0x10 - asrs r3, r0, #0x10 - cmp r2, r0 - bgt _0809272C - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, r3 - blt _0809272C -_08092700: - ldrb r1, [r4, #0x19] - movs r0, #0xf0 - ands r0, r1 - cmp r0, #0 - beq _08092730 - lsls r1, r1, #0x18 - lsrs r2, r1, #0x1c - ldrh r0, [r4, #0xe] - subs r2, r0, r2 - lsrs r1, r1, #0x1c - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - lsls r2, r2, #0x10 - lsls r0, r5, #0x10 - asrs r3, r0, #0x10 - cmp r2, r0 - bgt _0809272C - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, r3 - bge _08092730 -_0809272C: - movs r0, #1 - b _08092732 -_08092730: - movs r0, #0 -_08092732: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end IsCoordOutsideEventObjectMovementRange - - thumb_func_start sub_08092738 -sub_08092738: @ 0x08092738 - push {r4, r5, r6, r7, lr} - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r7, r2, #0x10 - lsls r3, r3, #0x18 - ldr r1, _08092780 - lsrs r3, r3, #0x16 - subs r5, r3, #4 - adds r1, r5, r1 - ldrb r0, [r0, #0x1e] - ldr r1, [r1] - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809277A - ldr r4, _08092784 - adds r4, r5, r4 - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - lsls r1, r7, #0x10 - asrs r1, r1, #0x10 - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, [r4] - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08092788 -_0809277A: - movs r0, #1 - b _0809278A - .align 2, 0 -_08092780: .4byte gUnknown_84E5FB0 -_08092784: .4byte gUnknown_84E5FC0 -_08092788: - movs r0, #0 -_0809278A: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_08092738 - - thumb_func_start DoesObjectCollideWithObjectAt -DoesObjectCollideWithObjectAt: @ 0x08092790 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - movs r4, #0 - lsls r2, r2, #0x10 - asrs r5, r2, #0x10 -_0809279E: - lsls r0, r4, #3 - adds r0, r0, r4 - lsls r0, r0, #2 - ldr r1, _080927F4 - adds r2, r0, r1 - ldrb r0, [r2] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _080927F8 - cmp r2, r6 - beq _080927F8 - movs r0, #0x10 - ldrsh r1, [r2, r0] - lsls r0, r7, #0x10 - asrs r3, r0, #0x10 - cmp r1, r3 - bne _080927C8 - movs r1, #0x12 - ldrsh r0, [r2, r1] - cmp r0, r5 - beq _080927D8 -_080927C8: - movs r1, #0x14 - ldrsh r0, [r2, r1] - cmp r0, r3 - bne _080927F8 - movs r1, #0x16 - ldrsh r0, [r2, r1] - cmp r0, r5 - bne _080927F8 -_080927D8: - ldrb r0, [r6, #0xb] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - ldrb r1, [r2, #0xb] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - bl AreZCoordsCompatible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080927F8 - movs r0, #1 - b _08092804 - .align 2, 0 -_080927F4: .4byte gUnknown_2036FF0 -_080927F8: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xf - bls _0809279E - movs r0, #0 -_08092804: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end DoesObjectCollideWithObjectAt - - thumb_func_start IsBerryTreeSparkling -IsBerryTreeSparkling: @ 0x0809280C - push {lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08092858 - ldr r3, _08092850 - ldr r2, _08092854 - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r0, #0x3c] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08092858 - movs r0, #1 - b _0809285A - .align 2, 0 -_08092850: .4byte gUnknown_20205AC -_08092854: .4byte gUnknown_2036FF0 -_08092858: - movs r0, #0 -_0809285A: - add sp, #4 - pop {r1} - bx r1 - thumb_func_end IsBerryTreeSparkling - - thumb_func_start sub_08092860 -sub_08092860: @ 0x08092860 - push {lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809289E - ldr r3, _080928A4 - ldr r2, _080928A8 - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #4] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrh r2, [r1, #0x3c] - movs r0, #4 - orrs r0, r2 - strh r0, [r1, #0x3c] -_0809289E: - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_080928A4: .4byte gUnknown_20205AC -_080928A8: .4byte gUnknown_2036FF0 - thumb_func_end sub_08092860 - - thumb_func_start MoveCoords -MoveCoords: @ 0x080928AC - push {r4, lr} - lsls r0, r0, #0x18 - ldr r3, _080928CC - lsrs r0, r0, #0x16 - adds r0, r0, r3 - ldrh r3, [r0] - ldrh r4, [r1] - adds r3, r3, r4 - strh r3, [r1] - ldrh r0, [r0, #2] - ldrh r1, [r2] - adds r0, r0, r1 - strh r0, [r2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080928CC: .4byte gUnknown_84E5FD0 - thumb_func_end MoveCoords - - thumb_func_start sub_080928D0 -sub_080928D0: @ 0x080928D0 - push {r4, lr} - lsls r0, r0, #0x18 - ldr r3, _080928F4 - lsrs r0, r0, #0x16 - adds r0, r0, r3 - ldrh r3, [r0] - lsls r3, r3, #4 - ldrh r4, [r1] - adds r3, r3, r4 - strh r3, [r1] - ldrh r0, [r0, #2] - lsls r0, r0, #4 - ldrh r1, [r2] - adds r0, r0, r1 - strh r0, [r2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080928F4: .4byte gUnknown_84E5FD0 - thumb_func_end sub_080928D0 - - thumb_func_start MoveCoordsInDirection -MoveCoordsInDirection: @ 0x080928F8 - push {r4, r5, r6, r7, lr} - adds r4, r1, #0 - ldr r1, [sp, #0x14] - lsls r0, r0, #0x18 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - adds r7, r3, #0 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - mov ip, r6 - ldr r1, _0809295C - lsrs r0, r0, #0x16 - adds r5, r0, r1 - movs r0, #0 - ldrsh r1, [r5, r0] - cmp r1, #0 - ble _08092924 - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - ldrh r3, [r4] - adds r0, r0, r3 - strh r0, [r4] -_08092924: - cmp r1, #0 - bge _08092932 - ldrh r1, [r4] - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - subs r1, r1, r0 - strh r1, [r4] -_08092932: - movs r0, #2 - ldrsh r1, [r5, r0] - cmp r1, #0 - ble _08092944 - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - ldrh r3, [r2] - adds r0, r0, r3 - strh r0, [r2] -_08092944: - cmp r1, #0 - bge _08092954 - ldrh r1, [r2] - mov r3, ip - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - subs r1, r1, r0 - strh r1, [r2] -_08092954: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0809295C: .4byte gUnknown_84E5FD0 - thumb_func_end MoveCoordsInDirection - - thumb_func_start sub_08092960 -sub_08092960: @ 0x08092960 - push {r4, r5, lr} - ldr r5, _0809299C - ldr r4, [r5] - ldrh r4, [r4] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - subs r0, r0, r4 - lsls r0, r0, #4 - strh r0, [r2] - ldr r0, [r5] - ldrh r0, [r0, #2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - subs r1, r1, r0 - lsls r1, r1, #4 - strh r1, [r3] - ldr r1, _080929A0 - ldrh r0, [r2] - ldrh r1, [r1] - subs r0, r0, r1 - strh r0, [r2] - ldr r1, _080929A4 - ldrh r0, [r3] - ldrh r1, [r1] - subs r0, r0, r1 - strh r0, [r3] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0809299C: .4byte gUnknown_3005AEC -_080929A0: .4byte gUnknown_3005B4C -_080929A4: .4byte gUnknown_3005B48 - thumb_func_end sub_08092960 - - thumb_func_start SetSpritePosToMapCoords -SetSpritePosToMapCoords: @ 0x080929A8 - push {r4, r5, r6, r7, lr} - adds r7, r2, #0 - mov ip, r3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - ldr r0, _08092A3C - ldrh r0, [r0] - rsbs r0, r0, #0 - ldr r1, _08092A40 - ldr r2, [r1, #0x10] - subs r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldr r0, _08092A44 - ldrh r0, [r0] - rsbs r0, r0, #0 - ldr r1, [r1, #0x14] - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r2, #0 - ble _080929E2 - lsls r0, r3, #0x10 - movs r3, #0x80 - lsls r3, r3, #0xd - adds r0, r0, r3 - lsrs r3, r0, #0x10 -_080929E2: - cmp r2, #0 - bge _080929EE - lsls r0, r3, #0x10 - ldr r2, _08092A48 - adds r0, r0, r2 - lsrs r3, r0, #0x10 -_080929EE: - cmp r1, #0 - ble _080929FC - lsls r0, r4, #0x10 - movs r2, #0x80 - lsls r2, r2, #0xd - adds r0, r0, r2 - lsrs r4, r0, #0x10 -_080929FC: - cmp r1, #0 - bge _08092A08 - lsls r0, r4, #0x10 - ldr r1, _08092A48 - adds r0, r0, r1 - lsrs r4, r0, #0x10 -_08092A08: - ldr r2, _08092A4C - ldr r0, [r2] - ldrh r1, [r0] - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #4 - lsls r1, r3, #0x10 - asrs r1, r1, #0x10 - adds r1, r1, r0 - strh r1, [r7] - ldr r0, [r2] - ldrh r1, [r0, #2] - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #4 - lsls r1, r4, #0x10 - asrs r1, r1, #0x10 - adds r1, r1, r0 - mov r2, ip - strh r1, [r2] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08092A3C: .4byte gUnknown_3005B4C -_08092A40: .4byte gUnknown_3005B30 -_08092A44: .4byte gUnknown_3005B48 -_08092A48: .4byte 0xFFF00000 -_08092A4C: .4byte gUnknown_3005AEC - thumb_func_end SetSpritePosToMapCoords - - thumb_func_start sub_08092A50 -sub_08092A50: @ 0x08092A50 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r6, r0, #0 - mov r8, r1 - adds r4, r2, #0 - adds r5, r3, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - movs r1, #0 - ldrsh r0, [r6, r1] - mov r2, r8 - movs r3, #0 - ldrsh r1, [r2, r3] - adds r2, r6, #0 - mov r3, r8 - bl SetSpritePosToMapCoords - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - ldrh r0, [r6] - adds r4, r4, r0 - strh r4, [r6] - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - mov r1, r8 - ldrh r1, [r1] - adds r5, r5, r1 - mov r2, r8 - strh r5, [r2] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08092A50 - - thumb_func_start GetEventObjectMovingCameraOffset -GetEventObjectMovingCameraOffset: @ 0x08092A9C - push {lr} - adds r2, r0, #0 - movs r0, #0 - strh r0, [r2] - strh r0, [r1] - ldr r3, _08092AD8 - ldr r0, [r3, #0x10] - cmp r0, #0 - ble _08092AB2 - movs r0, #1 - strh r0, [r2] -_08092AB2: - ldr r0, [r3, #0x10] - cmp r0, #0 - bge _08092ABE - ldrh r0, [r2] - subs r0, #1 - strh r0, [r2] -_08092ABE: - ldr r2, [r3, #0x14] - cmp r2, #0 - ble _08092ACA - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_08092ACA: - cmp r2, #0 - bge _08092AD4 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] -_08092AD4: - pop {r0} - bx r0 - .align 2, 0 -_08092AD8: .4byte gUnknown_3005B30 - thumb_func_end GetEventObjectMovingCameraOffset - - thumb_func_start EventObjectMoveDestCoords -EventObjectMoveDestCoords: @ 0x08092ADC - push {r4, lr} - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrh r4, [r0, #0x10] - strh r4, [r2] - ldrh r0, [r0, #0x12] - strh r0, [r3] - adds r0, r1, #0 - adds r1, r2, #0 - adds r2, r3, #0 - bl MoveCoords - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end EventObjectMoveDestCoords - - thumb_func_start EventObjectIsMovementOverridden -EventObjectIsMovementOverridden: @ 0x08092AFC - push {lr} - ldrb r1, [r0] - movs r0, #0x42 - ands r0, r1 - cmp r0, #0 - bne _08092B0C - movs r0, #0 - b _08092B0E -_08092B0C: - movs r0, #1 -_08092B0E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end EventObjectIsMovementOverridden - - thumb_func_start EventObjectIsHeldMovementActive -EventObjectIsHeldMovementActive: @ 0x08092B14 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1] - lsls r0, r0, #0x19 - cmp r0, #0 - bge _08092B2A - ldrb r0, [r1, #0x1c] - cmp r0, #0xff - beq _08092B2A - movs r0, #1 - b _08092B2C -_08092B2A: - movs r0, #0 -_08092B2C: - pop {r1} - bx r1 - thumb_func_end EventObjectIsHeldMovementActive - - thumb_func_start EventObjectSetHeldMovement -EventObjectSetHeldMovement: @ 0x08092B30 - push {r4, r5, r6, lr} - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - bl EventObjectIsMovementOverridden - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - bne _08092B70 - adds r0, r4, #0 - bl UnfreezeEventObject - strb r5, [r4, #0x1c] - ldrb r0, [r4] - movs r1, #0x40 - orrs r0, r1 - movs r1, #0x7f - ands r0, r1 - strb r0, [r4] - ldr r2, _08092B6C - ldrb r1, [r4, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r6, [r0, #0x32] - movs r0, #0 - b _08092B72 - .align 2, 0 -_08092B6C: .4byte gUnknown_20205AC -_08092B70: - movs r0, #1 -_08092B72: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end EventObjectSetHeldMovement - - thumb_func_start EventObjectForceSetHeldMovement -EventObjectForceSetHeldMovement: @ 0x08092B78 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r4, r1, #0x18 - lsrs r4, r4, #0x18 - bl EventObjectClearHeldMovementIfActive - adds r0, r5, #0 - adds r1, r4, #0 - bl EventObjectSetHeldMovement - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end EventObjectForceSetHeldMovement - - thumb_func_start EventObjectClearHeldMovementIfActive -EventObjectClearHeldMovementIfActive: @ 0x08092B94 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1] - lsls r0, r0, #0x19 - cmp r0, #0 - bge _08092BA6 - adds r0, r1, #0 - bl EventObjectClearHeldMovement -_08092BA6: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end EventObjectClearHeldMovementIfActive - - thumb_func_start EventObjectClearHeldMovement -EventObjectClearHeldMovement: @ 0x08092BAC - movs r1, #0xff - strb r1, [r0, #0x1c] - ldrb r2, [r0] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #0x7f - ands r1, r2 - strb r1, [r0] - ldr r3, _08092BDC - ldrb r2, [r0, #4] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r3 - movs r2, #0 - strh r2, [r1, #0x30] - ldrb r1, [r0, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r2, [r0, #0x32] - bx lr - .align 2, 0 -_08092BDC: .4byte gUnknown_20205AC - thumb_func_end EventObjectClearHeldMovement - - thumb_func_start EventObjectCheckHeldMovementStatus -EventObjectCheckHeldMovementStatus: @ 0x08092BE0 - push {lr} - ldrb r1, [r0] - lsls r0, r1, #0x19 - cmp r0, #0 - blt _08092BEE - movs r0, #0x10 - b _08092BF0 -_08092BEE: - lsrs r0, r1, #7 -_08092BF0: - pop {r1} - bx r1 - thumb_func_end EventObjectCheckHeldMovementStatus - - thumb_func_start EventObjectClearHeldMovementIfFinished -EventObjectClearHeldMovementIfFinished: @ 0x08092BF4 - push {r4, r5, lr} - adds r5, r0, #0 - bl EventObjectCheckHeldMovementStatus - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - beq _08092C0E - cmp r4, #0x10 - beq _08092C0E - adds r0, r5, #0 - bl EventObjectClearHeldMovementIfActive -_08092C0E: - adds r0, r4, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end EventObjectClearHeldMovementIfFinished - - thumb_func_start EventObjectGetHeldMovementActionId -EventObjectGetHeldMovementActionId: @ 0x08092C18 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1] - lsls r0, r0, #0x19 - cmp r0, #0 - blt _08092C28 - movs r0, #0xff - b _08092C2A -_08092C28: - ldrb r0, [r1, #0x1c] -_08092C2A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end EventObjectGetHeldMovementActionId - - thumb_func_start UpdateEventObjectCurrentMovement -UpdateEventObjectCurrentMovement: @ 0x08092C30 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - bl DoGroundEffects_OnSpawn - adds r0, r4, #0 - adds r1, r5, #0 - bl TryEnableEventObjectAnim - adds r0, r4, #0 - bl EventObjectIsHeldMovementActive - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08092C5A - adds r0, r4, #0 - adds r1, r5, #0 - bl EventObjectExecHeldMovementAction - b _08092C70 -_08092C5A: - ldrb r0, [r4, #1] - lsls r0, r0, #0x1f - cmp r0, #0 - bne _08092C70 -_08092C62: - adds r0, r4, #0 - adds r1, r5, #0 - bl _call_via_r6 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08092C62 -_08092C70: - adds r0, r4, #0 - adds r1, r5, #0 - bl DoGroundEffects_OnBeginStep - adds r0, r4, #0 - adds r1, r5, #0 - bl DoGroundEffects_OnFinishStep - adds r0, r4, #0 - adds r1, r5, #0 - bl UpdateEventObjectSpriteAnimPause - adds r0, r4, #0 - adds r1, r5, #0 - bl UpdateEventObjectVisibility - adds r0, r4, #0 - adds r1, r5, #0 - bl EventObjectUpdateSubpriority - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end UpdateEventObjectCurrentMovement - - thumb_func_start sub_08092CA0 -sub_08092CA0: @ 0x08092CA0 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08092CC8 - mov r0, sp - movs r2, #5 - bl memcpy - cmp r4, #4 - bls _08092CB8 - movs r4, #0 -_08092CB8: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08092CC8: .4byte gUnknown_84E5FF4 - thumb_func_end sub_08092CA0 - - thumb_func_start sub_08092CCC -sub_08092CCC: @ 0x08092CCC - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08092CF4 - mov r0, sp - movs r2, #5 - bl memcpy - cmp r4, #4 - bls _08092CE4 - movs r4, #0 -_08092CE4: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08092CF4: .4byte gUnknown_84E5FF9 - thumb_func_end sub_08092CCC - - thumb_func_start sub_08092CF8 -sub_08092CF8: @ 0x08092CF8 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08092D20 - mov r0, sp - movs r2, #5 - bl memcpy - cmp r4, #4 - bls _08092D10 - movs r4, #0 -_08092D10: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08092D20: .4byte gUnknown_84E5FFE - thumb_func_end sub_08092CF8 - - thumb_func_start sub_08092D24 -sub_08092D24: @ 0x08092D24 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08092D4C - mov r0, sp - movs r2, #5 - bl memcpy - cmp r4, #4 - bls _08092D3C - movs r4, #0 -_08092D3C: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08092D4C: .4byte gUnknown_84E6003 - thumb_func_end sub_08092D24 - - thumb_func_start sub_08092D50 -sub_08092D50: @ 0x08092D50 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08092D78 - mov r0, sp - movs r2, #5 - bl memcpy - cmp r4, #4 - bls _08092D68 - movs r4, #0 -_08092D68: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08092D78: .4byte gUnknown_84E6008 - thumb_func_end sub_08092D50 - - thumb_func_start sub_08092D7C -sub_08092D7C: @ 0x08092D7C - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08092DA4 - mov r0, sp - movs r2, #5 - bl memcpy - cmp r4, #4 - bls _08092D94 - movs r4, #0 -_08092D94: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08092DA4: .4byte gUnknown_84E600D - thumb_func_end sub_08092D7C - - thumb_func_start sub_08092DA8 -sub_08092DA8: @ 0x08092DA8 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08092DD0 - mov r0, sp - movs r2, #5 - bl memcpy - cmp r4, #4 - bls _08092DC0 - movs r4, #0 -_08092DC0: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08092DD0: .4byte gUnknown_84E6012 - thumb_func_end sub_08092DA8 - - thumb_func_start sub_08092DD4 -sub_08092DD4: @ 0x08092DD4 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08092DFC - mov r0, sp - movs r2, #5 - bl memcpy - cmp r4, #4 - bls _08092DEC - movs r4, #0 -_08092DEC: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08092DFC: .4byte gUnknown_84E6017 - thumb_func_end sub_08092DD4 - - thumb_func_start sub_08092E00 -sub_08092E00: @ 0x08092E00 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08092E28 - mov r0, sp - movs r2, #5 - bl memcpy - cmp r4, #4 - bls _08092E18 - movs r4, #0 -_08092E18: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08092E28: .4byte gUnknown_84E601C - thumb_func_end sub_08092E00 - - thumb_func_start sub_08092E2C -sub_08092E2C: @ 0x08092E2C - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08092E54 - mov r0, sp - movs r2, #5 - bl memcpy - cmp r4, #4 - bls _08092E44 - movs r4, #0 -_08092E44: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08092E54: .4byte gUnknown_84E6021 - thumb_func_end sub_08092E2C - - thumb_func_start sub_08092E58 -sub_08092E58: @ 0x08092E58 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08092E80 - mov r0, sp - movs r2, #5 - bl memcpy - cmp r4, #4 - bls _08092E70 - movs r4, #0 -_08092E70: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08092E80: .4byte gUnknown_84E6026 - thumb_func_end sub_08092E58 - - thumb_func_start sub_08092E84 -sub_08092E84: @ 0x08092E84 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08092EAC - mov r0, sp - movs r2, #5 - bl memcpy - cmp r4, #4 - bls _08092E9C - movs r4, #0 -_08092E9C: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08092EAC: .4byte gUnknown_84E602B - thumb_func_end sub_08092E84 - - thumb_func_start sub_08092EB0 -sub_08092EB0: @ 0x08092EB0 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08092ED8 - mov r0, sp - movs r2, #5 - bl memcpy - cmp r4, #4 - bls _08092EC8 - movs r4, #0 -_08092EC8: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08092ED8: .4byte gUnknown_84E6030 - thumb_func_end sub_08092EB0 - - thumb_func_start sub_08092EDC -sub_08092EDC: @ 0x08092EDC - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08092F04 - mov r0, sp - movs r2, #5 - bl memcpy - cmp r4, #4 - bls _08092EF4 - movs r4, #0 -_08092EF4: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08092F04: .4byte gUnknown_84E6035 - thumb_func_end sub_08092EDC - - thumb_func_start sub_08092F08 -sub_08092F08: @ 0x08092F08 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08092F30 - mov r0, sp - movs r2, #5 - bl memcpy - cmp r4, #4 - bls _08092F20 - movs r4, #0 -_08092F20: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08092F30: .4byte gUnknown_84E603A - thumb_func_end sub_08092F08 - - thumb_func_start sub_08092F34 -sub_08092F34: @ 0x08092F34 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08092F5C - mov r0, sp - movs r2, #5 - bl memcpy - cmp r4, #4 - bls _08092F4C - movs r4, #0 -_08092F4C: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08092F5C: .4byte gUnknown_84E603F - thumb_func_end sub_08092F34 - - thumb_func_start sub_08092F60 -sub_08092F60: @ 0x08092F60 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08092F88 - mov r0, sp - movs r2, #5 - bl memcpy - cmp r4, #4 - bls _08092F78 - movs r4, #0 -_08092F78: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08092F88: .4byte gUnknown_84E6044 - thumb_func_end sub_08092F60 - - thumb_func_start EventObjectFaceOppositeDirection -EventObjectFaceOppositeDirection: @ 0x08092F8C - push {r4, lr} - adds r4, r0, #0 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - bl GetOppositeDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_08092CA0 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetHeldMovement - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end EventObjectFaceOppositeDirection - - thumb_func_start HallOfFame_PrintWelcomeText -HallOfFame_PrintWelcomeText: @ 0x08092FB8 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08092FE0 - mov r0, sp - movs r2, #5 - bl memcpy - cmp r4, #4 - bls _08092FD0 - movs r4, #0 -_08092FD0: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08092FE0: .4byte gUnknown_84E6049 - thumb_func_end HallOfFame_PrintWelcomeText - - thumb_func_start sub_08092FE4 -sub_08092FE4: @ 0x08092FE4 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _0809300C - mov r0, sp - movs r2, #5 - bl memcpy - cmp r4, #4 - bls _08092FFC - movs r4, #0 -_08092FFC: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809300C: .4byte gUnknown_84E604E - thumb_func_end sub_08092FE4 - - thumb_func_start sub_08093010 -sub_08093010: @ 0x08093010 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08093038 - mov r0, sp - movs r2, #5 - bl memcpy - cmp r4, #4 - bls _08093028 - movs r4, #0 -_08093028: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08093038: .4byte gUnknown_84E6053 - thumb_func_end sub_08093010 - - thumb_func_start sub_0809303C -sub_0809303C: @ 0x0809303C - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08093064 - mov r0, sp - movs r2, #5 - bl memcpy - cmp r4, #4 - bls _08093054 - movs r4, #0 -_08093054: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08093064: .4byte gUnknown_84E6058 - thumb_func_end sub_0809303C - - thumb_func_start MovementType_FaceUpAndRight_callback -MovementType_FaceUpAndRight_callback: @ 0x08093068 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08093090 - mov r0, sp - movs r2, #5 - bl memcpy - cmp r4, #4 - bls _08093080 - movs r4, #0 -_08093080: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08093090: .4byte gUnknown_84E605D - thumb_func_end MovementType_FaceUpAndRight_callback - - thumb_func_start sub_08093094 -sub_08093094: @ 0x08093094 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _080930BC - mov r0, sp - movs r2, #5 - bl memcpy - cmp r4, #4 - bls _080930AC - movs r4, #0 -_080930AC: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080930BC: .4byte gUnknown_84E6062 - thumb_func_end sub_08093094 - - thumb_func_start sub_080930C0 -sub_080930C0: @ 0x080930C0 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _080930E8 - mov r0, sp - movs r2, #5 - bl memcpy - cmp r4, #4 - bls _080930D8 - movs r4, #0 -_080930D8: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080930E8: .4byte gUnknown_84E6067 - thumb_func_end sub_080930C0 - - thumb_func_start sub_080930EC -sub_080930EC: @ 0x080930EC - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08093114 - mov r0, sp - movs r2, #5 - bl memcpy - cmp r4, #4 - bls _08093104 - movs r4, #0 -_08093104: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08093114: .4byte gUnknown_84E606C - thumb_func_end sub_080930EC - - thumb_func_start sub_08093118 -sub_08093118: @ 0x08093118 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08093140 - mov r0, sp - movs r2, #5 - bl memcpy - cmp r4, #4 - bls _08093130 - movs r4, #0 -_08093130: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08093140: .4byte gUnknown_84E6071 - thumb_func_end sub_08093118 - - thumb_func_start sub_08093144 -sub_08093144: @ 0x08093144 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _0809316C - mov r0, sp - movs r2, #5 - bl memcpy - cmp r4, #4 - bls _0809315C - movs r4, #0 -_0809315C: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809316C: .4byte gUnknown_84E6076 - thumb_func_end sub_08093144 - - thumb_func_start GetOppositeDirection -GetOppositeDirection: @ 0x08093170 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08093194 - mov r0, sp - movs r2, #8 - bl memcpy - subs r1, r4, #1 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #7 - bhi _08093198 - mov r2, sp - adds r0, r2, r1 - ldrb r0, [r0] - b _0809319A - .align 2, 0 -_08093194: .4byte gUnknown_84E607B -_08093198: - adds r0, r4, #0 -_0809319A: - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetOppositeDirection - - thumb_func_start zffu_offset_calc -zffu_offset_calc: @ 0x080931A4 - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _080931B8 - lsrs r0, r0, #0x16 - subs r0, #5 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - bx lr - .align 2, 0 -_080931B8: .4byte gUnknown_84E6083 - thumb_func_end zffu_offset_calc - - thumb_func_start state_to_direction -state_to_direction: @ 0x080931BC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r1, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - cmp r1, #0 - beq _080931DC - cmp r2, #0 - beq _080931DC - cmp r1, #4 - bhi _080931DC - cmp r2, #4 - bls _080931E0 -_080931DC: - movs r0, #0 - b _080931F2 -_080931E0: - adds r1, r2, #0 - bl zffu_offset_calc - ldr r2, _080931F8 - lsls r1, r4, #2 - subs r1, #5 - adds r0, r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] -_080931F2: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080931F8: .4byte gUnknown_84E6093 - thumb_func_end state_to_direction - - thumb_func_start EventObjectExecHeldMovementAction -EventObjectExecHeldMovementAction: @ 0x080931FC - push {r4, lr} - adds r4, r0, #0 - ldr r2, _08093230 - ldrb r0, [r4, #0x1c] - lsls r0, r0, #2 - adds r0, r0, r2 - movs r3, #0x32 - ldrsh r2, [r1, r3] - ldr r0, [r0] - lsls r2, r2, #2 - adds r2, r2, r0 - ldr r2, [r2] - adds r0, r4, #0 - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end EventObjectExecHeldMovementAction - - thumb_func_start sub_0809321C -sub_0809321C: @ 0x0809321C - cmp r0, #0 - beq _08093228 - ldrb r0, [r4] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4] -_08093228: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08093230: .4byte gUnknown_84E60A4 - thumb_func_end sub_0809321C - - thumb_func_start EventObjectExecSingleMovementAction -EventObjectExecSingleMovementAction: @ 0x08093234 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _08093260 - ldrb r0, [r4, #0x1c] - lsls r0, r0, #2 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r5, r2] - ldr r0, [r0] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r2, [r1] - adds r0, r4, #0 - adds r1, r5, #0 - bl _call_via_r2 - lsls r0, r0, #0x18 - thumb_func_end EventObjectExecSingleMovementAction - - thumb_func_start sub_08093258 -sub_08093258: @ 0x08093258 - cmp r0, #0 - bne _08093264 - movs r0, #0 - b _0809326E - .align 2, 0 -_08093260: .4byte gUnknown_84E60A4 -_08093264: - movs r0, #0xff - strb r0, [r4, #0x1c] - movs r0, #0 - strh r0, [r5, #0x32] - movs r0, #1 -_0809326E: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_08093258 - - thumb_func_start EventObjectSetSingleMovement -EventObjectSetSingleMovement: @ 0x08093274 - movs r3, #0 - strb r2, [r0, #0x1c] - strh r3, [r1, #0x32] - bx lr - thumb_func_end EventObjectSetSingleMovement - - thumb_func_start FaceDirection -FaceDirection: @ 0x0809327C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r1, r2, #0x18 - lsrs r1, r1, #0x18 - bl SetEventObjectDirection - adds r0, r4, #0 - bl ShiftStillEventObjectCoords - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_080922DC - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl obj_npc_animation_step - adds r2, r5, #0 - adds r2, #0x2c - ldrb r0, [r2] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2] - movs r0, #1 - strh r0, [r5, #0x32] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end FaceDirection - - thumb_func_start MovementAction_FaceDown_Step0 -MovementAction_FaceDown_Step0: @ 0x080932C0 - push {lr} - movs r2, #1 - bl FaceDirection - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_FaceDown_Step0 - - thumb_func_start MovementAction_FaceUp_Step0 -MovementAction_FaceUp_Step0: @ 0x080932D0 - push {lr} - movs r2, #2 - bl FaceDirection - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_FaceUp_Step0 - - thumb_func_start MovementAction_FaceLeft_Step0 -MovementAction_FaceLeft_Step0: @ 0x080932E0 - push {lr} - movs r2, #3 - bl FaceDirection - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_FaceLeft_Step0 - - thumb_func_start MovementAction_FaceRight_Step0 -MovementAction_FaceRight_Step0: @ 0x080932F0 - push {lr} - movs r2, #4 - bl FaceDirection - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_FaceRight_Step0 - - thumb_func_start npc_apply_direction -npc_apply_direction: @ 0x08093300 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r7, r0, #0 - mov r8, r1 - adds r4, r2, #0 - adds r6, r3, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - ldrh r1, [r7, #0x10] - mov r0, sp - strh r1, [r0] - ldrh r0, [r7, #0x12] - mov r5, sp - adds r5, #2 - strh r0, [r5] - adds r0, r7, #0 - adds r1, r4, #0 - bl SetEventObjectDirection - adds r0, r4, #0 - mov r1, sp - adds r2, r5, #0 - bl MoveCoords - mov r0, sp - movs r2, #0 - ldrsh r1, [r0, r2] - movs r0, #0 - ldrsh r2, [r5, r0] - adds r0, r7, #0 - bl ShiftEventObjectCoords - mov r0, r8 - adds r1, r4, #0 - adds r2, r6, #0 - bl oamt_npc_ministep_reset - mov r4, r8 - adds r4, #0x2c - ldrb r1, [r4] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4] - ldr r0, _08093398 - ldr r0, [r0] - cmp r0, #0 - beq _0809337E - adds r0, r7, #0 - bl FindLockedEventObjectIndex - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x10 - beq _0809337E - ldrb r0, [r4] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4] -_0809337E: - ldrb r0, [r7] - movs r1, #4 - orrs r0, r1 - strb r0, [r7] - movs r0, #1 - mov r1, r8 - strh r0, [r1, #0x32] - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08093398: .4byte gUnknown_2037258 - thumb_func_end npc_apply_direction - - thumb_func_start do_go_anim -do_go_anim: @ 0x0809339C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x14 - adds r5, r0, #0 - mov r8, r1 - adds r4, r3, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r1, sp - ldr r0, _080933F4 - ldm r0!, {r3, r6, r7} - stm r1!, {r3, r6, r7} - ldm r0!, {r3, r6} - stm r1!, {r3, r6} - adds r0, r5, #0 - mov r1, r8 - adds r3, r4, #0 - bl npc_apply_direction - lsls r4, r4, #2 - mov r7, sp - adds r1, r7, r4 - ldrb r0, [r5, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - ldr r1, [r1] - bl _call_via_r1 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r5, #0 - mov r1, r8 - bl npc_apply_anim_looping - add sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080933F4: .4byte gUnknown_84E633C - thumb_func_end do_go_anim - - thumb_func_start StartRunningAnim -StartRunningAnim: @ 0x080933F8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r3, #1 - bl npc_apply_direction - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_080923AC - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl npc_apply_anim_looping - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end StartRunningAnim - - thumb_func_start npc_obj_ministep_stop_on_arrival -npc_obj_ministep_stop_on_arrival: @ 0x08093428 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r0, r5, #0 - bl obj_npc_ministep - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809343E - movs r0, #0 - b _0809345A -_0809343E: - adds r0, r4, #0 - bl ShiftStillEventObjectCoords - ldrb r0, [r4] - movs r1, #8 - orrs r0, r1 - strb r0, [r4] - adds r2, r5, #0 - adds r2, #0x2c - ldrb r0, [r2] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2] - movs r0, #1 -_0809345A: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end npc_obj_ministep_stop_on_arrival - - thumb_func_start sub_08093460 -sub_08093460: @ 0x08093460 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #4 - adds r6, r0, #0 - mov r8, r1 - lsls r5, r2, #0x18 - lsrs r5, r5, #0x18 - ldrh r1, [r6, #0x10] - mov r0, sp - strh r1, [r0] - ldrh r0, [r6, #0x12] - mov r4, sp - adds r4, #2 - strh r0, [r4] - adds r0, r6, #0 - adds r1, r5, #0 - bl SetEventObjectDirection - adds r0, r5, #0 - mov r1, sp - adds r2, r4, #0 - bl MoveCoords - mov r0, sp - movs r2, #0 - ldrsh r1, [r0, r2] - movs r0, #0 - ldrsh r2, [r4, r0] - adds r0, r6, #0 - bl ShiftEventObjectCoords - mov r0, r8 - adds r1, r5, #0 - bl sub_0809704C - mov r2, r8 - adds r2, #0x2c - ldrb r1, [r2] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldrb r0, [r6] - movs r1, #4 - orrs r0, r1 - strb r0, [r6] - movs r0, #1 - mov r1, r8 - strh r0, [r1, #0x32] - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_08093460 - - thumb_func_start sub_080934D0 -sub_080934D0: @ 0x080934D0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - bl sub_08093460 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_080922DC - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl npc_apply_anim_looping - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_080934D0 - - thumb_func_start an_walk_any_2 -an_walk_any_2: @ 0x080934FC - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r0, r5, #0 - bl sub_0809705C - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08093512 - movs r0, #0 - b _0809352E -_08093512: - adds r0, r4, #0 - bl ShiftStillEventObjectCoords - ldrb r0, [r4] - movs r1, #8 - orrs r0, r1 - strb r0, [r4] - adds r2, r5, #0 - adds r2, #0x2c - ldrb r0, [r2] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2] - movs r0, #1 -_0809352E: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end an_walk_any_2 - - thumb_func_start MovementAction_WalkSlowDiagonalUpLeft_Step0 -MovementAction_WalkSlowDiagonalUpLeft_Step0: @ 0x08093534 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #7 - bl sub_080934D0 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08093554 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkSlowDiagonalUpLeft_Step0 - - thumb_func_start sub_08093554 -sub_08093554: @ 0x08093554 - push {r4, lr} - adds r4, r1, #0 - bl an_walk_any_2 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08093566 - movs r0, #0 - b _0809356C -_08093566: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_0809356C: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08093554 - - thumb_func_start MovementAction_WalkSlowDiagonalUpRight_Step0 -MovementAction_WalkSlowDiagonalUpRight_Step0: @ 0x08093574 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #8 - bl sub_080934D0 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkSlowDiagonalUpRight_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkSlowDiagonalUpRight_Step0 - - thumb_func_start MovementAction_WalkSlowDiagonalUpRight_Step1 -MovementAction_WalkSlowDiagonalUpRight_Step1: @ 0x08093594 - push {r4, lr} - adds r4, r1, #0 - bl an_walk_any_2 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080935A6 - movs r0, #0 - b _080935AC -_080935A6: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_080935AC: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkSlowDiagonalUpRight_Step1 - - thumb_func_start MovementAction_WalkSlowDiagonalDownLeft_Step0 -MovementAction_WalkSlowDiagonalDownLeft_Step0: @ 0x080935B4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #5 - bl sub_080934D0 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkSlowDiagonalDownLeft_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkSlowDiagonalDownLeft_Step0 - - thumb_func_start MovementAction_WalkSlowDiagonalDownLeft_Step1 -MovementAction_WalkSlowDiagonalDownLeft_Step1: @ 0x080935D4 - push {r4, lr} - adds r4, r1, #0 - bl an_walk_any_2 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080935E6 - movs r0, #0 - b _080935EC -_080935E6: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_080935EC: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkSlowDiagonalDownLeft_Step1 - - thumb_func_start MovementAction_WalkSlowDiagonalDownRight_Step0 -MovementAction_WalkSlowDiagonalDownRight_Step0: @ 0x080935F4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #6 - bl sub_080934D0 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkSlowDiagonalDownRight_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkSlowDiagonalDownRight_Step0 - - thumb_func_start MovementAction_WalkSlowDiagonalDownRight_Step1 -MovementAction_WalkSlowDiagonalDownRight_Step1: @ 0x08093614 - push {r4, lr} - adds r4, r1, #0 - bl an_walk_any_2 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08093626 - movs r0, #0 - b _0809362C -_08093626: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_0809362C: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkSlowDiagonalDownRight_Step1 - - thumb_func_start MovementAction_WalkSlowDown_Step0 -MovementAction_WalkSlowDown_Step0: @ 0x08093634 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #1 - bl sub_080934D0 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkSlowDown_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkSlowDown_Step0 - - thumb_func_start MovementAction_WalkSlowDown_Step1 -MovementAction_WalkSlowDown_Step1: @ 0x08093654 - push {r4, lr} - adds r4, r1, #0 - bl an_walk_any_2 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08093666 - movs r0, #0 - b _0809366C -_08093666: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_0809366C: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkSlowDown_Step1 - - thumb_func_start MovementAction_WalkSlowUp_Step0 -MovementAction_WalkSlowUp_Step0: @ 0x08093674 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #2 - bl sub_080934D0 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkSlowUp_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkSlowUp_Step0 - - thumb_func_start MovementAction_WalkSlowUp_Step1 -MovementAction_WalkSlowUp_Step1: @ 0x08093694 - push {r4, lr} - adds r4, r1, #0 - bl an_walk_any_2 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080936A6 - movs r0, #0 - b _080936AC -_080936A6: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_080936AC: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkSlowUp_Step1 - - thumb_func_start MovementAction_WalkSlowLeft_Step0 -MovementAction_WalkSlowLeft_Step0: @ 0x080936B4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #3 - bl sub_080934D0 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkSlowLeft_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkSlowLeft_Step0 - - thumb_func_start MovementAction_WalkSlowLeft_Step1 -MovementAction_WalkSlowLeft_Step1: @ 0x080936D4 - push {r4, lr} - adds r4, r1, #0 - bl an_walk_any_2 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080936E6 - movs r0, #0 - b _080936EC -_080936E6: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_080936EC: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkSlowLeft_Step1 - - thumb_func_start MovementAction_WalkSlowRight_Step0 -MovementAction_WalkSlowRight_Step0: @ 0x080936F4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #4 - bl sub_080934D0 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkSlowRight_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkSlowRight_Step0 - - thumb_func_start MovementAction_WalkSlowRight_Step1 -MovementAction_WalkSlowRight_Step1: @ 0x08093714 - push {r4, lr} - adds r4, r1, #0 - bl an_walk_any_2 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08093726 - movs r0, #0 - b _0809372C -_08093726: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_0809372C: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkSlowRight_Step1 - - thumb_func_start MovementAction_WalkNormalDiagonalUpLeft_Step0 -MovementAction_WalkNormalDiagonalUpLeft_Step0: @ 0x08093734 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #7 - movs r3, #0 - bl do_go_anim - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkNormalDiagonalUpLeft_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_WalkNormalDiagonalUpLeft_Step0 - - thumb_func_start MovementAction_WalkNormalDiagonalUpLeft_Step1 -MovementAction_WalkNormalDiagonalUpLeft_Step1: @ 0x08093754 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08093766 - movs r0, #0 - b _0809376C -_08093766: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_0809376C: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkNormalDiagonalUpLeft_Step1 - - thumb_func_start MovementAction_WalkNormalDiagonalUpRight_Step0 -MovementAction_WalkNormalDiagonalUpRight_Step0: @ 0x08093774 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #8 - movs r3, #0 - bl do_go_anim - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkNormalDiagonalUpRight_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_WalkNormalDiagonalUpRight_Step0 - - thumb_func_start MovementAction_WalkNormalDiagonalUpRight_Step1 -MovementAction_WalkNormalDiagonalUpRight_Step1: @ 0x08093794 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080937A6 - movs r0, #0 - b _080937AC -_080937A6: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_080937AC: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkNormalDiagonalUpRight_Step1 - - thumb_func_start MovementAction_WalkNormalDiagonalDownLeft_Step0 -MovementAction_WalkNormalDiagonalDownLeft_Step0: @ 0x080937B4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #5 - movs r3, #0 - bl do_go_anim - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkNormalDiagonalDownLeft_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_WalkNormalDiagonalDownLeft_Step0 - - thumb_func_start MovementAction_WalkNormalDiagonalDownLeft_Step1 -MovementAction_WalkNormalDiagonalDownLeft_Step1: @ 0x080937D4 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080937E6 - movs r0, #0 - b _080937EC -_080937E6: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_080937EC: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkNormalDiagonalDownLeft_Step1 - - thumb_func_start MovementAction_WalkNormalDiagonalDownRight_Step0 -MovementAction_WalkNormalDiagonalDownRight_Step0: @ 0x080937F4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #6 - movs r3, #0 - bl do_go_anim - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkNormalDiagonalDownRight_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_WalkNormalDiagonalDownRight_Step0 - - thumb_func_start MovementAction_WalkNormalDiagonalDownRight_Step1 -MovementAction_WalkNormalDiagonalDownRight_Step1: @ 0x08093814 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08093826 - movs r0, #0 - b _0809382C -_08093826: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_0809382C: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkNormalDiagonalDownRight_Step1 - - thumb_func_start MovementAction_WalkNormalDown_Step0 -MovementAction_WalkNormalDown_Step0: @ 0x08093834 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #1 - movs r3, #0 - bl do_go_anim - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkNormalDown_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_WalkNormalDown_Step0 - - thumb_func_start MovementAction_WalkNormalDown_Step1 -MovementAction_WalkNormalDown_Step1: @ 0x08093854 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08093866 - movs r0, #0 - b _0809386C -_08093866: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_0809386C: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkNormalDown_Step1 - - thumb_func_start MovementAction_WalkNormalUp_Step0 -MovementAction_WalkNormalUp_Step0: @ 0x08093874 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #2 - movs r3, #0 - bl do_go_anim - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkNormalUp_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_WalkNormalUp_Step0 - - thumb_func_start MovementAction_WalkNormalUp_Step1 -MovementAction_WalkNormalUp_Step1: @ 0x08093894 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080938A6 - movs r0, #0 - b _080938AC -_080938A6: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_080938AC: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkNormalUp_Step1 - - thumb_func_start MovementAction_WalkNormalLeft_Step0 -MovementAction_WalkNormalLeft_Step0: @ 0x080938B4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #3 - movs r3, #0 - bl do_go_anim - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkNormalLeft_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_WalkNormalLeft_Step0 - - thumb_func_start MovementAction_WalkNormalLeft_Step1 -MovementAction_WalkNormalLeft_Step1: @ 0x080938D4 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080938E6 - movs r0, #0 - b _080938EC -_080938E6: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_080938EC: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkNormalLeft_Step1 - - thumb_func_start MovementAction_WalkNormalRight_Step0 -MovementAction_WalkNormalRight_Step0: @ 0x080938F4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #4 - movs r3, #0 - bl do_go_anim - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkNormalRight_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_WalkNormalRight_Step0 - - thumb_func_start MovementAction_WalkNormalRight_Step1 -MovementAction_WalkNormalRight_Step1: @ 0x08093914 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08093926 - movs r0, #0 - b _0809392C -_08093926: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_0809392C: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkNormalRight_Step1 - - thumb_func_start sub_08093934 -sub_08093934: @ 0x08093934 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - adds r7, r0, #0 - mov sl, r1 - adds r4, r2, #0 - mov r8, r3 - ldr r0, [sp, #0x30] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r1, r8 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldr r1, _080939EC - add r0, sp, #4 - movs r2, #6 - bl memcpy - add r5, sp, #0xc - movs r0, #0 - strh r0, [r5] - mov r6, sp - adds r6, #0xe - strh r0, [r6] - adds r0, r7, #0 - adds r1, r4, #0 - bl SetEventObjectDirection - mov r1, r8 - lsls r0, r1, #1 - add r0, sp - adds r0, #4 - movs r1, #0 - ldrsh r3, [r0, r1] - str r3, [sp] - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl MoveCoordsInDirection - ldrh r1, [r5] - ldrh r0, [r7, #0x10] - adds r1, r1, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldrh r2, [r6] - ldrh r0, [r7, #0x12] - adds r2, r2, r0 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r0, r7, #0 - bl ShiftEventObjectCoords - mov r0, sl - adds r1, r4, #0 - mov r2, r8 - mov r3, sb - bl sub_080971AC - movs r0, #1 - mov r1, sl - strh r0, [r1, #0x32] - movs r0, #0x2c - add sl, r0 - mov r0, sl - ldrb r1, [r0] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - mov r1, sl - strb r0, [r1] - ldrb r0, [r7] - movs r1, #4 - orrs r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r7] - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080939EC: .4byte gUnknown_84E6410 - thumb_func_end sub_08093934 - - thumb_func_start maybe_shadow_1 -maybe_shadow_1: @ 0x080939F0 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r0, [sp, #0x10] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - adds r0, r4, #0 - bl sub_08093934 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_080922DC - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl npc_apply_anim_looping - adds r0, r4, #0 - bl DoShadowFieldEffect - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end maybe_shadow_1 - - thumb_func_start sub_08093A34 -sub_08093A34: @ 0x08093A34 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x10 - adds r6, r0, #0 - adds r7, r1, #0 - adds r4, r2, #0 - ldr r1, _08093AC0 - add r0, sp, #4 - movs r2, #6 - bl memcpy - adds r0, r7, #0 - bl _call_via_r4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - cmp r0, #1 - bne _08093AC4 - movs r1, #0x36 - ldrsh r0, [r7, r1] - lsls r0, r0, #1 - add r0, sp - adds r0, #4 - movs r2, #0 - ldrsh r0, [r0, r2] - cmp r0, #0 - beq _08093AC4 - add r4, sp, #0xc - movs r0, #0 - strh r0, [r4] - mov r5, sp - adds r5, #0xe - strh r0, [r5] - ldrb r0, [r6, #0x18] - lsrs r0, r0, #4 - movs r2, #0x36 - ldrsh r1, [r7, r2] - lsls r1, r1, #1 - add r1, sp - adds r1, #4 - movs r2, #0 - ldrsh r3, [r1, r2] - str r3, [sp] - adds r1, r4, #0 - adds r2, r5, #0 - bl MoveCoordsInDirection - ldrh r1, [r4] - ldrh r0, [r6, #0x10] - adds r1, r1, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldrh r2, [r5] - ldrh r0, [r6, #0x12] - adds r2, r2, r0 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r0, r6, #0 - bl ShiftEventObjectCoords - ldrb r0, [r6] - movs r1, #4 - orrs r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r6] - b _08093AE8 - .align 2, 0 -_08093AC0: .4byte gUnknown_84E6416 -_08093AC4: - mov r1, r8 - cmp r1, #0xff - bne _08093AE8 - adds r0, r6, #0 - bl ShiftStillEventObjectCoords - ldrb r0, [r6] - movs r1, #8 - orrs r0, r1 - movs r1, #0x20 - orrs r0, r1 - strb r0, [r6] - adds r2, r7, #0 - adds r2, #0x2c - ldrb r0, [r2] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2] -_08093AE8: - mov r0, r8 - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08093A34 - - thumb_func_start sub_08093AF8 -sub_08093AF8: @ 0x08093AF8 - push {lr} - ldr r2, _08093B08 - bl sub_08093A34 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_08093B08: .4byte sub_080971CC - thumb_func_end sub_08093AF8 - - thumb_func_start sub_08093B0C -sub_08093B0C: @ 0x08093B0C - push {lr} - ldr r2, _08093B1C - bl sub_08093A34 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_08093B1C: .4byte sub_08097254 - thumb_func_end sub_08093B0C - - thumb_func_start sub_08093B20 -sub_08093B20: @ 0x08093B20 - push {lr} - bl sub_08093AF8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _08093B32 - movs r0, #0 - b _08093B34 -_08093B32: - movs r0, #1 -_08093B34: - pop {r1} - bx r1 - thumb_func_end sub_08093B20 - - thumb_func_start sub_08093B38 -sub_08093B38: @ 0x08093B38 - push {lr} - bl sub_08093B0C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _08093B4A - movs r0, #0 - b _08093B4C -_08093B4A: - movs r0, #1 -_08093B4C: - pop {r1} - bx r1 - thumb_func_end sub_08093B38 - - thumb_func_start sub_08093B50 -sub_08093B50: @ 0x08093B50 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093AF8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08093B6A - cmp r0, #0xff - bne _08093B96 - movs r0, #1 - b _08093B98 -_08093B6A: - ldrb r0, [r4, #0x18] - lsrs r0, r0, #4 - bl GetOppositeDirection - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl SetEventObjectDirection - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_080922DC - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl obj_npc_animation_step -_08093B96: - movs r0, #0 -_08093B98: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08093B50 - - thumb_func_start MovementAction_Jump2Down_Step0 -MovementAction_Jump2Down_Step0: @ 0x08093BA0 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #0 - str r0, [sp] - adds r0, r4, #0 - movs r2, #1 - movs r3, #2 - bl maybe_shadow_1 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_Jump2Down_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_Jump2Down_Step0 - - thumb_func_start MovementAction_Jump2Down_Step1 -MovementAction_Jump2Down_Step1: @ 0x08093BCC - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093B20 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08093BE0 - movs r0, #0 - b _08093BF0 -_08093BE0: - ldrb r0, [r4, #2] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #2] - movs r0, #2 - strh r0, [r5, #0x32] - movs r0, #1 -_08093BF0: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_Jump2Down_Step1 - - thumb_func_start MovementAction_Jump2Up_Step0 -MovementAction_Jump2Up_Step0: @ 0x08093BF8 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #0 - str r0, [sp] - adds r0, r4, #0 - movs r2, #2 - movs r3, #2 - bl maybe_shadow_1 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_Jump2Up_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_Jump2Up_Step0 - - thumb_func_start MovementAction_Jump2Up_Step1 -MovementAction_Jump2Up_Step1: @ 0x08093C24 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093B20 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08093C38 - movs r0, #0 - b _08093C48 -_08093C38: - ldrb r0, [r4, #2] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #2] - movs r0, #2 - strh r0, [r5, #0x32] - movs r0, #1 -_08093C48: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_Jump2Up_Step1 - - thumb_func_start MovementAction_Jump2Left_Step0 -MovementAction_Jump2Left_Step0: @ 0x08093C50 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #0 - str r0, [sp] - adds r0, r4, #0 - movs r2, #3 - movs r3, #2 - bl maybe_shadow_1 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_Jump2Left_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_Jump2Left_Step0 - - thumb_func_start MovementAction_Jump2Left_Step1 -MovementAction_Jump2Left_Step1: @ 0x08093C7C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093B20 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08093C90 - movs r0, #0 - b _08093CA0 -_08093C90: - ldrb r0, [r4, #2] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #2] - movs r0, #2 - strh r0, [r5, #0x32] - movs r0, #1 -_08093CA0: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_Jump2Left_Step1 - - thumb_func_start MovementAction_Jump2Right_Step0 -MovementAction_Jump2Right_Step0: @ 0x08093CA8 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #0 - str r0, [sp] - adds r0, r4, #0 - movs r2, #4 - movs r3, #2 - bl maybe_shadow_1 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_Jump2Right_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_Jump2Right_Step0 - - thumb_func_start MovementAction_Jump2Right_Step1 -MovementAction_Jump2Right_Step1: @ 0x08093CD4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093B20 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08093CE8 - movs r0, #0 - b _08093CF8 -_08093CE8: - ldrb r0, [r4, #2] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #2] - movs r0, #2 - strh r0, [r5, #0x32] - movs r0, #1 -_08093CF8: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_Jump2Right_Step1 - - thumb_func_start sub_08093D00 -sub_08093D00: @ 0x08093D00 - movs r2, #1 - strh r2, [r0, #0x32] - strh r1, [r0, #0x34] - bx lr - thumb_func_end sub_08093D00 - - thumb_func_start MovementAction_Delay_Step1 -MovementAction_Delay_Step1: @ 0x08093D08 - push {lr} - ldrh r0, [r1, #0x34] - subs r0, #1 - strh r0, [r1, #0x34] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08093D1A - movs r0, #0 - b _08093D20 -_08093D1A: - movs r0, #2 - strh r0, [r1, #0x32] - movs r0, #1 -_08093D20: - pop {r1} - bx r1 - thumb_func_end MovementAction_Delay_Step1 - - thumb_func_start MovementAction_Delay1_Step0 -MovementAction_Delay1_Step0: @ 0x08093D24 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r0, r4, #0 - movs r1, #1 - bl sub_08093D00 - adds r0, r5, #0 - adds r1, r4, #0 - bl MovementAction_Delay_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_Delay1_Step0 - - thumb_func_start MovementAction_Delay2_Step0 -MovementAction_Delay2_Step0: @ 0x08093D44 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r0, r4, #0 - movs r1, #2 - bl sub_08093D00 - adds r0, r5, #0 - adds r1, r4, #0 - bl MovementAction_Delay_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_Delay2_Step0 - - thumb_func_start MovementAction_Delay4_Step0 -MovementAction_Delay4_Step0: @ 0x08093D64 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r0, r4, #0 - movs r1, #4 - bl sub_08093D00 - adds r0, r5, #0 - adds r1, r4, #0 - bl MovementAction_Delay_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_Delay4_Step0 - - thumb_func_start MovementAction_Delay8_Step0 -MovementAction_Delay8_Step0: @ 0x08093D84 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r0, r4, #0 - movs r1, #8 - bl sub_08093D00 - adds r0, r5, #0 - adds r1, r4, #0 - bl MovementAction_Delay_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_Delay8_Step0 - - thumb_func_start MovementAction_Delay16_Step0 -MovementAction_Delay16_Step0: @ 0x08093DA4 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r0, r4, #0 - movs r1, #0x10 - bl sub_08093D00 - adds r0, r5, #0 - adds r1, r4, #0 - bl MovementAction_Delay_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_Delay16_Step0 - - thumb_func_start MovementAction_WalkFastDown_Step0 -MovementAction_WalkFastDown_Step0: @ 0x08093DC4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #1 - movs r3, #1 - bl do_go_anim - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkFastDown_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_WalkFastDown_Step0 - - thumb_func_start MovementAction_WalkFastDown_Step1 -MovementAction_WalkFastDown_Step1: @ 0x08093DE4 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08093DF6 - movs r0, #0 - b _08093DFC -_08093DF6: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_08093DFC: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkFastDown_Step1 - - thumb_func_start MovementAction_WalkFastUp_Step0 -MovementAction_WalkFastUp_Step0: @ 0x08093E04 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #2 - movs r3, #1 - bl do_go_anim - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkFastUp_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_WalkFastUp_Step0 - - thumb_func_start MovementAction_WalkFastUp_Step1 -MovementAction_WalkFastUp_Step1: @ 0x08093E24 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08093E36 - movs r0, #0 - b _08093E3C -_08093E36: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_08093E3C: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkFastUp_Step1 - - thumb_func_start MovementAction_WalkFastLeft_Step0 -MovementAction_WalkFastLeft_Step0: @ 0x08093E44 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #3 - movs r3, #1 - bl do_go_anim - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkFastLeft_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_WalkFastLeft_Step0 - - thumb_func_start MovementAction_WalkFastLeft_Step1 -MovementAction_WalkFastLeft_Step1: @ 0x08093E64 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08093E76 - movs r0, #0 - b _08093E7C -_08093E76: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_08093E7C: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkFastLeft_Step1 - - thumb_func_start MovementAction_WalkFastRight_Step0 -MovementAction_WalkFastRight_Step0: @ 0x08093E84 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #4 - movs r3, #1 - bl do_go_anim - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkFastRight_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_WalkFastRight_Step0 - - thumb_func_start MovementAction_WalkFastRight_Step1 -MovementAction_WalkFastRight_Step1: @ 0x08093EA4 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08093EB6 - movs r0, #0 - b _08093EBC -_08093EB6: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_08093EBC: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkFastRight_Step1 - - thumb_func_start sub_08093EC4 -sub_08093EC4: @ 0x08093EC4 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - mov r8, r0 - adds r6, r1, #0 - adds r1, r2, #0 - adds r4, r3, #0 - ldr r5, [sp, #0x14] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - bl SetEventObjectDirection - mov r0, r8 - adds r1, r6, #0 - adds r2, r4, #0 - bl npc_apply_anim_looping - adds r2, r6, #0 - adds r2, #0x2c - ldrb r1, [r2] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - movs r0, #1 - strh r0, [r6, #0x32] - strh r5, [r6, #0x34] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_08093EC4 - - thumb_func_start MovementAction_WalkInPlace_Step1 -MovementAction_WalkInPlace_Step1: @ 0x08093F0C - push {lr} - ldrh r0, [r1, #0x34] - subs r0, #1 - strh r0, [r1, #0x34] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08093F1E - movs r0, #0 - b _08093F30 -_08093F1E: - movs r0, #2 - strh r0, [r1, #0x32] - adds r2, r1, #0 - adds r2, #0x2c - ldrb r0, [r2] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2] - movs r0, #1 -_08093F30: - pop {r1} - bx r1 - thumb_func_end MovementAction_WalkInPlace_Step1 - - thumb_func_start MovementAction_WalkInPlaceSlow_Step1 -MovementAction_WalkInPlaceSlow_Step1: @ 0x08093F34 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - ldrh r1, [r4, #0x34] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08093F5E - adds r3, r4, #0 - adds r3, #0x2c - ldrb r2, [r3] - lsls r1, r2, #0x1a - lsrs r1, r1, #0x1a - adds r1, #1 - movs r0, #0x3f - ands r1, r0 - movs r0, #0x40 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_08093F5E: - adds r0, r5, #0 - adds r1, r4, #0 - bl MovementAction_WalkInPlace_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_WalkInPlaceSlow_Step1 - - thumb_func_start MovementAction_WalkInPlaceSlowDown_Step0 -MovementAction_WalkInPlaceSlowDown_Step0: @ 0x08093F70 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #1 - bl sub_080922DC - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #0x20 - str r0, [sp] - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #1 - bl sub_08093EC4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkInPlaceSlow_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkInPlaceSlowDown_Step0 - - thumb_func_start MovementAction_WalkInPlaceSlowUp_Step0 -MovementAction_WalkInPlaceSlowUp_Step0: @ 0x08093FA8 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #2 - bl sub_080922DC - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #0x20 - str r0, [sp] - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #2 - bl sub_08093EC4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkInPlaceSlow_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkInPlaceSlowUp_Step0 - - thumb_func_start MovementAction_WalkInPlaceSlowLeft_Step0 -MovementAction_WalkInPlaceSlowLeft_Step0: @ 0x08093FE0 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #3 - bl sub_080922DC - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #0x20 - str r0, [sp] - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #3 - bl sub_08093EC4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkInPlaceSlow_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkInPlaceSlowLeft_Step0 - - thumb_func_start MovementAction_WalkInPlaceSlowRight_Step0 -MovementAction_WalkInPlaceSlowRight_Step0: @ 0x08094018 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #4 - bl sub_080922DC - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #0x20 - str r0, [sp] - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #4 - bl sub_08093EC4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkInPlaceSlow_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkInPlaceSlowRight_Step0 - - thumb_func_start MovementAction_WalkInPlaceNormalDown_Step0 -MovementAction_WalkInPlaceNormalDown_Step0: @ 0x08094050 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #1 - bl sub_080922DC - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #0x10 - str r0, [sp] - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #1 - bl sub_08093EC4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkInPlace_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkInPlaceNormalDown_Step0 - - thumb_func_start MovementAction_WalkInPlaceNormalUp_Step0 -MovementAction_WalkInPlaceNormalUp_Step0: @ 0x08094088 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #2 - bl sub_080922DC - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #0x10 - str r0, [sp] - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #2 - bl sub_08093EC4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkInPlace_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkInPlaceNormalUp_Step0 - - thumb_func_start MovementAction_WalkInPlaceNormalLeft_Step0 -MovementAction_WalkInPlaceNormalLeft_Step0: @ 0x080940C0 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #3 - bl sub_080922DC - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #0x10 - str r0, [sp] - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #3 - bl sub_08093EC4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkInPlace_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkInPlaceNormalLeft_Step0 - - thumb_func_start MovementAction_WalkInPlaceNormalRight_Step0 -MovementAction_WalkInPlaceNormalRight_Step0: @ 0x080940F8 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #4 - bl sub_080922DC - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #0x10 - str r0, [sp] - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #4 - bl sub_08093EC4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkInPlace_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkInPlaceNormalRight_Step0 - - thumb_func_start MovementAction_WalkInPlaceFastDown_Step0 -MovementAction_WalkInPlaceFastDown_Step0: @ 0x08094130 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #1 - bl sub_080922EC - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #8 - str r0, [sp] - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #1 - bl sub_08093EC4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkInPlace_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkInPlaceFastDown_Step0 - - thumb_func_start MovementAction_WalkInPlaceFastUp_Step0 -MovementAction_WalkInPlaceFastUp_Step0: @ 0x08094168 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #2 - bl sub_080922EC - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #8 - str r0, [sp] - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #2 - bl sub_08093EC4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkInPlace_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkInPlaceFastUp_Step0 - - thumb_func_start MovementAction_WalkInPlaceFastLeft_Step0 -MovementAction_WalkInPlaceFastLeft_Step0: @ 0x080941A0 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #3 - bl sub_080922EC - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #8 - str r0, [sp] - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #3 - bl sub_08093EC4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkInPlace_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkInPlaceFastLeft_Step0 - - thumb_func_start MovementAction_WalkInPlaceFastRight_Step0 -MovementAction_WalkInPlaceFastRight_Step0: @ 0x080941D8 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #4 - bl sub_080922EC - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #8 - str r0, [sp] - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #4 - bl sub_08093EC4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkInPlace_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkInPlaceFastRight_Step0 - - thumb_func_start MovementAction_WalkInPlaceFastestDown_Step0 -MovementAction_WalkInPlaceFastestDown_Step0: @ 0x08094210 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #1 - bl sub_080922FC - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #4 - str r0, [sp] - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #1 - bl sub_08093EC4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkInPlace_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkInPlaceFastestDown_Step0 - - thumb_func_start MovementAction_WalkInPlaceFastestUp_Step0 -MovementAction_WalkInPlaceFastestUp_Step0: @ 0x08094248 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #2 - bl sub_080922FC - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #4 - str r0, [sp] - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #2 - bl sub_08093EC4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkInPlace_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkInPlaceFastestUp_Step0 - - thumb_func_start MovementAction_WalkInPlaceFastestLeft_Step0 -MovementAction_WalkInPlaceFastestLeft_Step0: @ 0x08094280 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #3 - bl sub_080922FC - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #4 - str r0, [sp] - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #3 - bl sub_08093EC4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkInPlace_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkInPlaceFastestLeft_Step0 - - thumb_func_start MovementAction_WalkInPlaceFastestRight_Step0 -MovementAction_WalkInPlaceFastestRight_Step0: @ 0x080942B8 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #4 - bl sub_080922FC - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #4 - str r0, [sp] - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #4 - bl sub_08093EC4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkInPlace_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkInPlaceFastestRight_Step0 - - thumb_func_start MovementAction_RideWaterCurrentDown_Step0 -MovementAction_RideWaterCurrentDown_Step0: @ 0x080942F0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #1 - movs r3, #2 - bl do_go_anim - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_RideWaterCurrentDown_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_RideWaterCurrentDown_Step0 - - thumb_func_start MovementAction_RideWaterCurrentDown_Step1 -MovementAction_RideWaterCurrentDown_Step1: @ 0x08094310 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08094322 - movs r0, #0 - b _08094328 -_08094322: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_08094328: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_RideWaterCurrentDown_Step1 - - thumb_func_start MovementAction_RideWaterCurrentUp_Step0 -MovementAction_RideWaterCurrentUp_Step0: @ 0x08094330 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #2 - movs r3, #2 - bl do_go_anim - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_RideWaterCurrentUp_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_RideWaterCurrentUp_Step0 - - thumb_func_start MovementAction_RideWaterCurrentUp_Step1 -MovementAction_RideWaterCurrentUp_Step1: @ 0x08094350 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08094362 - movs r0, #0 - b _08094368 -_08094362: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_08094368: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_RideWaterCurrentUp_Step1 - - thumb_func_start MovementAction_RideWaterCurrentLeft_Step0 -MovementAction_RideWaterCurrentLeft_Step0: @ 0x08094370 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #3 - movs r3, #2 - bl do_go_anim - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_RideWaterCurrentLeft_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_RideWaterCurrentLeft_Step0 - - thumb_func_start MovementAction_RideWaterCurrentLeft_Step1 -MovementAction_RideWaterCurrentLeft_Step1: @ 0x08094390 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080943A2 - movs r0, #0 - b _080943A8 -_080943A2: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_080943A8: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_RideWaterCurrentLeft_Step1 - - thumb_func_start MovementAction_RideWaterCurrentRight_Step0 -MovementAction_RideWaterCurrentRight_Step0: @ 0x080943B0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #4 - movs r3, #2 - bl do_go_anim - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_RideWaterCurrentRight_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_RideWaterCurrentRight_Step0 - - thumb_func_start MovementAction_RideWaterCurrentRight_Step1 -MovementAction_RideWaterCurrentRight_Step1: @ 0x080943D0 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080943E2 - movs r0, #0 - b _080943E8 -_080943E2: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_080943E8: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_RideWaterCurrentRight_Step1 - - thumb_func_start MovementAction_WalkFastestDown_Step0 -MovementAction_WalkFastestDown_Step0: @ 0x080943F0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #1 - movs r3, #3 - bl do_go_anim - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkFastestDown_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_WalkFastestDown_Step0 - - thumb_func_start MovementAction_WalkFastestDown_Step1 -MovementAction_WalkFastestDown_Step1: @ 0x08094410 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08094422 - movs r0, #0 - b _08094428 -_08094422: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_08094428: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkFastestDown_Step1 - - thumb_func_start MovementAction_WalkFastestUp_Step0 -MovementAction_WalkFastestUp_Step0: @ 0x08094430 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #2 - movs r3, #3 - bl do_go_anim - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkFastestUp_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_WalkFastestUp_Step0 - - thumb_func_start MovementAction_WalkFastestUp_Step1 -MovementAction_WalkFastestUp_Step1: @ 0x08094450 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08094462 - movs r0, #0 - b _08094468 -_08094462: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_08094468: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkFastestUp_Step1 - - thumb_func_start MovementAction_WalkFastestLeft_Step0 -MovementAction_WalkFastestLeft_Step0: @ 0x08094470 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #3 - movs r3, #3 - bl do_go_anim - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkFastestLeft_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_WalkFastestLeft_Step0 - - thumb_func_start MovementAction_WalkFastestLeft_Step1 -MovementAction_WalkFastestLeft_Step1: @ 0x08094490 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080944A2 - movs r0, #0 - b _080944A8 -_080944A2: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_080944A8: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkFastestLeft_Step1 - - thumb_func_start MovementAction_WalkFastestRight_Step0 -MovementAction_WalkFastestRight_Step0: @ 0x080944B0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #4 - movs r3, #3 - bl do_go_anim - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkFastestRight_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_WalkFastestRight_Step0 - - thumb_func_start MovementAction_WalkFastestRight_Step1 -MovementAction_WalkFastestRight_Step1: @ 0x080944D0 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080944E2 - movs r0, #0 - b _080944E8 -_080944E2: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_080944E8: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkFastestRight_Step1 - - thumb_func_start MovementAction_SlideDown_Step0 -MovementAction_SlideDown_Step0: @ 0x080944F0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #1 - movs r3, #4 - bl do_go_anim - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_SlideDown_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_SlideDown_Step0 - - thumb_func_start MovementAction_SlideDown_Step1 -MovementAction_SlideDown_Step1: @ 0x08094510 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08094522 - movs r0, #0 - b _08094528 -_08094522: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_08094528: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_SlideDown_Step1 - - thumb_func_start MovementAction_SlideUp_Step0 -MovementAction_SlideUp_Step0: @ 0x08094530 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #2 - movs r3, #4 - bl do_go_anim - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_SlideUp_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_SlideUp_Step0 - - thumb_func_start MovementAction_SlideUp_Step1 -MovementAction_SlideUp_Step1: @ 0x08094550 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08094562 - movs r0, #0 - b _08094568 -_08094562: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_08094568: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_SlideUp_Step1 - - thumb_func_start MovementAction_SlideLeft_Step0 -MovementAction_SlideLeft_Step0: @ 0x08094570 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #3 - movs r3, #4 - bl do_go_anim - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_SlideLeft_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_SlideLeft_Step0 - - thumb_func_start MovementAction_SlideLeft_Step1 -MovementAction_SlideLeft_Step1: @ 0x08094590 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080945A2 - movs r0, #0 - b _080945A8 -_080945A2: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_080945A8: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_SlideLeft_Step1 - - thumb_func_start MovementAction_SlideRight_Step0 -MovementAction_SlideRight_Step0: @ 0x080945B0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #4 - movs r3, #4 - bl do_go_anim - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_SlideRight_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_SlideRight_Step0 - - thumb_func_start MovementAction_SlideRight_Step1 -MovementAction_SlideRight_Step1: @ 0x080945D0 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080945E2 - movs r0, #0 - b _080945E8 -_080945E2: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_080945E8: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_SlideRight_Step1 - - thumb_func_start MovementAction_PlayerRunDown_Step0 -MovementAction_PlayerRunDown_Step0: @ 0x080945F0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #1 - bl StartRunningAnim - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_PlayerRunDown_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_PlayerRunDown_Step0 - - thumb_func_start MovementAction_PlayerRunDown_Step1 -MovementAction_PlayerRunDown_Step1: @ 0x08094610 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08094622 - movs r0, #0 - b _08094628 -_08094622: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_08094628: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_PlayerRunDown_Step1 - - thumb_func_start MovementAction_PlayerRunUp_Step0 -MovementAction_PlayerRunUp_Step0: @ 0x08094630 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #2 - bl StartRunningAnim - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_PlayerRunUp_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_PlayerRunUp_Step0 - - thumb_func_start MovementAction_PlayerRunUp_Step1 -MovementAction_PlayerRunUp_Step1: @ 0x08094650 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08094662 - movs r0, #0 - b _08094668 -_08094662: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_08094668: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_PlayerRunUp_Step1 - - thumb_func_start MovementAction_PlayerRunLeft_Step0 -MovementAction_PlayerRunLeft_Step0: @ 0x08094670 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #3 - bl StartRunningAnim - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_PlayerRunLeft_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_PlayerRunLeft_Step0 - - thumb_func_start MovementAction_PlayerRunLeft_Step1 -MovementAction_PlayerRunLeft_Step1: @ 0x08094690 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080946A2 - movs r0, #0 - b _080946A8 -_080946A2: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_080946A8: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_PlayerRunLeft_Step1 - - thumb_func_start MovementAction_PlayerRunRight_Step0 -MovementAction_PlayerRunRight_Step0: @ 0x080946B0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #4 - bl StartRunningAnim - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_PlayerRunRight_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_PlayerRunRight_Step0 - - thumb_func_start MovementAction_PlayerRunRight_Step1 -MovementAction_PlayerRunRight_Step1: @ 0x080946D0 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080946E2 - movs r0, #0 - b _080946E8 -_080946E2: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_080946E8: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_PlayerRunRight_Step1 - - thumb_func_start StartSpriteAnimInDirection -StartSpriteAnimInDirection: @ 0x080946F0 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r5, r1, #0 - adds r4, r2, #0 - adds r1, r3, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - movs r2, #0 - bl SetAndStartSpriteAnim - adds r0, r6, #0 - adds r1, r4, #0 - bl SetEventObjectDirection - movs r0, #1 - strh r0, [r5, #0x32] - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end StartSpriteAnimInDirection - - thumb_func_start MovementAction_StartAnimInDirection_Step0 -MovementAction_StartAnimInDirection_Step0: @ 0x0809471C - push {lr} - ldrb r2, [r0, #0x18] - lsrs r2, r2, #4 - adds r3, r1, #0 - adds r3, #0x2a - ldrb r3, [r3] - bl StartSpriteAnimInDirection - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_StartAnimInDirection_Step0 - - thumb_func_start MovementAction_WaitSpriteAnim -MovementAction_WaitSpriteAnim: @ 0x08094734 - push {r4, lr} - adds r4, r1, #0 - adds r0, r4, #0 - bl SpriteAnimEnded - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08094748 - movs r0, #0 - b _0809474E -_08094748: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_0809474E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end MovementAction_WaitSpriteAnim - - thumb_func_start sub_08094754 -sub_08094754: @ 0x08094754 - push {r4, r5, lr} - sub sp, #4 - adds r5, r1, #0 - lsls r4, r2, #0x18 - lsrs r4, r4, #0x18 - movs r1, #0 - str r1, [sp] - adds r1, r5, #0 - adds r2, r4, #0 - movs r3, #1 - bl sub_08093934 - adds r0, r4, #0 - bl sub_0809231C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl StartSpriteAnim - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08094754 - - thumb_func_start MovementAction_JumpSpecialDown_Step0 -MovementAction_JumpSpecialDown_Step0: @ 0x08094788 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #1 - bl sub_08094754 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_JumpSpecialDown_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_JumpSpecialDown_Step0 - - thumb_func_start MovementAction_JumpSpecialDown_Step1 -MovementAction_JumpSpecialDown_Step1: @ 0x080947A8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093B38 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080947BC - movs r0, #0 - b _080947CA -_080947BC: - movs r0, #2 - strh r0, [r5, #0x32] - ldrb r1, [r4] - subs r0, #0x23 - ands r0, r1 - strb r0, [r4] - movs r0, #1 -_080947CA: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_JumpSpecialDown_Step1 - - thumb_func_start MovementAction_JumpSpecialUp_Step0 -MovementAction_JumpSpecialUp_Step0: @ 0x080947D0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #2 - bl sub_08094754 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_JumpSpecialUp_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_JumpSpecialUp_Step0 - - thumb_func_start MovementAction_JumpSpecialUp_Step1 -MovementAction_JumpSpecialUp_Step1: @ 0x080947F0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093B38 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08094804 - movs r0, #0 - b _08094812 -_08094804: - movs r0, #2 - strh r0, [r5, #0x32] - ldrb r1, [r4] - subs r0, #0x23 - ands r0, r1 - strb r0, [r4] - movs r0, #1 -_08094812: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_JumpSpecialUp_Step1 - - thumb_func_start MovementAction_JumpSpecialLeft_Step0 -MovementAction_JumpSpecialLeft_Step0: @ 0x08094818 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #3 - bl sub_08094754 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_JumpSpecialLeft_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_JumpSpecialLeft_Step0 - - thumb_func_start MovementAction_JumpSpecialLeft_Step1 -MovementAction_JumpSpecialLeft_Step1: @ 0x08094838 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093B38 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809484C - movs r0, #0 - b _0809485A -_0809484C: - movs r0, #2 - strh r0, [r5, #0x32] - ldrb r1, [r4] - subs r0, #0x23 - ands r0, r1 - strb r0, [r4] - movs r0, #1 -_0809485A: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_JumpSpecialLeft_Step1 - - thumb_func_start MovementAction_JumpSpecialRight_Step0 -MovementAction_JumpSpecialRight_Step0: @ 0x08094860 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #4 - bl sub_08094754 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_JumpSpecialRight_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_JumpSpecialRight_Step0 - - thumb_func_start MovementAction_JumpSpecialRight_Step1 -MovementAction_JumpSpecialRight_Step1: @ 0x08094880 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093B38 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08094894 - movs r0, #0 - b _080948A2 -_08094894: - movs r0, #2 - strh r0, [r5, #0x32] - ldrb r1, [r4] - subs r0, #0x23 - ands r0, r1 - strb r0, [r4] - movs r0, #1 -_080948A2: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_JumpSpecialRight_Step1 - - thumb_func_start MovementAction_FacePlayer_Step0 -MovementAction_FacePlayer_Step0: @ 0x080948A8 - push {r4, r5, r6, lr} - sub sp, #4 - adds r5, r0, #0 - adds r6, r1, #0 - movs r0, #0xff - movs r1, #0 - movs r2, #0 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080948F2 - movs r1, #0x10 - ldrsh r0, [r5, r1] - movs r2, #0x12 - ldrsh r1, [r5, r2] - ldr r4, _08094900 - mov r2, sp - ldrb r2, [r2] - lsls r3, r2, #3 - adds r3, r3, r2 - lsls r3, r3, #2 - adds r3, r3, r4 - movs r4, #0x10 - ldrsh r2, [r3, r4] - movs r4, #0x12 - ldrsh r3, [r3, r4] - bl GetDirectionToFace - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r5, #0 - adds r1, r6, #0 - bl FaceDirection -_080948F2: - movs r0, #1 - strh r0, [r6, #0x32] - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08094900: .4byte gUnknown_2036FF0 - thumb_func_end MovementAction_FacePlayer_Step0 - - thumb_func_start MovementAction_FaceAwayPlayer_Step0 -MovementAction_FaceAwayPlayer_Step0: @ 0x08094904 - push {r4, r5, r6, lr} - sub sp, #4 - adds r5, r0, #0 - adds r6, r1, #0 - movs r0, #0xff - movs r1, #0 - movs r2, #0 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08094956 - movs r1, #0x10 - ldrsh r0, [r5, r1] - movs r2, #0x12 - ldrsh r1, [r5, r2] - ldr r4, _08094964 - mov r2, sp - ldrb r2, [r2] - lsls r3, r2, #3 - adds r3, r3, r2 - lsls r3, r3, #2 - adds r3, r3, r4 - movs r4, #0x10 - ldrsh r2, [r3, r4] - movs r4, #0x12 - ldrsh r3, [r3, r4] - bl GetDirectionToFace - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetOppositeDirection - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r5, #0 - adds r1, r6, #0 - bl FaceDirection -_08094956: - movs r0, #1 - strh r0, [r6, #0x32] - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08094964: .4byte gUnknown_2036FF0 - thumb_func_end MovementAction_FaceAwayPlayer_Step0 - - thumb_func_start MovementAction_LockFacingDirection_Step0 -MovementAction_LockFacingDirection_Step0: @ 0x08094968 - ldrb r2, [r0, #1] - movs r3, #2 - orrs r2, r3 - strb r2, [r0, #1] - movs r0, #1 - strh r0, [r1, #0x32] - bx lr - .align 2, 0 - thumb_func_end MovementAction_LockFacingDirection_Step0 - - thumb_func_start MovementAction_UnlockFacingDirection_Step0 -MovementAction_UnlockFacingDirection_Step0: @ 0x08094978 - ldrb r3, [r0, #1] - movs r2, #3 - rsbs r2, r2, #0 - ands r2, r3 - strb r2, [r0, #1] - movs r0, #1 - strh r0, [r1, #0x32] - bx lr - thumb_func_end MovementAction_UnlockFacingDirection_Step0 - - thumb_func_start MovementAction_JumpDown_Step0 -MovementAction_JumpDown_Step0: @ 0x08094988 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #2 - str r0, [sp] - adds r0, r4, #0 - movs r2, #1 - movs r3, #1 - bl maybe_shadow_1 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_JumpDown_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_JumpDown_Step0 - - thumb_func_start MovementAction_JumpDown_Step1 -MovementAction_JumpDown_Step1: @ 0x080949B4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093B20 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080949C8 - movs r0, #0 - b _080949D8 -_080949C8: - ldrb r0, [r4, #2] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #2] - movs r0, #2 - strh r0, [r5, #0x32] - movs r0, #1 -_080949D8: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_JumpDown_Step1 - - thumb_func_start MovementAction_JumpUp_Step0 -MovementAction_JumpUp_Step0: @ 0x080949E0 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #2 - str r0, [sp] - adds r0, r4, #0 - movs r2, #2 - movs r3, #1 - bl maybe_shadow_1 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_JumpUp_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_JumpUp_Step0 - - thumb_func_start MovementAction_JumpUp_Step1 -MovementAction_JumpUp_Step1: @ 0x08094A0C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093B20 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08094A20 - movs r0, #0 - b _08094A30 -_08094A20: - ldrb r0, [r4, #2] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #2] - movs r0, #2 - strh r0, [r5, #0x32] - movs r0, #1 -_08094A30: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_JumpUp_Step1 - - thumb_func_start MovementAction_JumpLeft_Step0 -MovementAction_JumpLeft_Step0: @ 0x08094A38 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #2 - str r0, [sp] - adds r0, r4, #0 - movs r2, #3 - movs r3, #1 - bl maybe_shadow_1 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_JumpLeft_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_JumpLeft_Step0 - - thumb_func_start MovementAction_JumpLeft_Step1 -MovementAction_JumpLeft_Step1: @ 0x08094A64 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093B20 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08094A78 - movs r0, #0 - b _08094A88 -_08094A78: - ldrb r0, [r4, #2] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #2] - movs r0, #2 - strh r0, [r5, #0x32] - movs r0, #1 -_08094A88: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_JumpLeft_Step1 - - thumb_func_start MovementAction_JumpRight_Step0 -MovementAction_JumpRight_Step0: @ 0x08094A90 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #2 - str r0, [sp] - adds r0, r4, #0 - movs r2, #4 - movs r3, #1 - bl maybe_shadow_1 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_JumpRight_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_JumpRight_Step0 - - thumb_func_start MovementAction_JumpRight_Step1 -MovementAction_JumpRight_Step1: @ 0x08094ABC - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093B20 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08094AD0 - movs r0, #0 - b _08094AE0 -_08094AD0: - ldrb r0, [r4, #2] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #2] - movs r0, #2 - strh r0, [r5, #0x32] - movs r0, #1 -_08094AE0: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_JumpRight_Step1 - - thumb_func_start MovementAction_JumpInPlaceDown_Step0 -MovementAction_JumpInPlaceDown_Step0: @ 0x08094AE8 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #0 - str r0, [sp] - adds r0, r4, #0 - movs r2, #1 - movs r3, #0 - bl maybe_shadow_1 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_JumpInPlaceDown_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_JumpInPlaceDown_Step0 - - thumb_func_start MovementAction_JumpInPlaceDown_Step1 -MovementAction_JumpInPlaceDown_Step1: @ 0x08094B14 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093B20 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08094B28 - movs r0, #0 - b _08094B38 -_08094B28: - ldrb r0, [r4, #2] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #2] - movs r0, #2 - strh r0, [r5, #0x32] - movs r0, #1 -_08094B38: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_JumpInPlaceDown_Step1 - - thumb_func_start MovementAction_JumpInPlaceUp_Step0 -MovementAction_JumpInPlaceUp_Step0: @ 0x08094B40 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #0 - str r0, [sp] - adds r0, r4, #0 - movs r2, #2 - movs r3, #0 - bl maybe_shadow_1 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_JumpInPlaceUp_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_JumpInPlaceUp_Step0 - - thumb_func_start MovementAction_JumpInPlaceUp_Step1 -MovementAction_JumpInPlaceUp_Step1: @ 0x08094B6C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093B20 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08094B80 - movs r0, #0 - b _08094B90 -_08094B80: - ldrb r0, [r4, #2] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #2] - movs r0, #2 - strh r0, [r5, #0x32] - movs r0, #1 -_08094B90: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_JumpInPlaceUp_Step1 - - thumb_func_start MovementAction_JumpInPlaceLeft_Step0 -MovementAction_JumpInPlaceLeft_Step0: @ 0x08094B98 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #0 - str r0, [sp] - adds r0, r4, #0 - movs r2, #3 - movs r3, #0 - bl maybe_shadow_1 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_JumpInPlaceLeft_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_JumpInPlaceLeft_Step0 - - thumb_func_start MovementAction_JumpInPlaceLeft_Step1 -MovementAction_JumpInPlaceLeft_Step1: @ 0x08094BC4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093B20 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08094BD8 - movs r0, #0 - b _08094BE8 -_08094BD8: - ldrb r0, [r4, #2] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #2] - movs r0, #2 - strh r0, [r5, #0x32] - movs r0, #1 -_08094BE8: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_JumpInPlaceLeft_Step1 - - thumb_func_start MovementAction_JumpInPlaceRight_Step0 -MovementAction_JumpInPlaceRight_Step0: @ 0x08094BF0 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #0 - str r0, [sp] - adds r0, r4, #0 - movs r2, #4 - movs r3, #0 - bl maybe_shadow_1 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_JumpInPlaceRight_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_JumpInPlaceRight_Step0 - - thumb_func_start MovementAction_JumpInPlaceRight_Step1 -MovementAction_JumpInPlaceRight_Step1: @ 0x08094C1C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093B20 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08094C30 - movs r0, #0 - b _08094C40 -_08094C30: - ldrb r0, [r4, #2] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #2] - movs r0, #2 - strh r0, [r5, #0x32] - movs r0, #1 -_08094C40: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_JumpInPlaceRight_Step1 - - thumb_func_start MovementAction_JumpInPlaceDownUp_Step0 -MovementAction_JumpInPlaceDownUp_Step0: @ 0x08094C48 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #2 - str r0, [sp] - adds r0, r4, #0 - movs r2, #1 - movs r3, #0 - bl maybe_shadow_1 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_JumpInPlaceDownUp_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_JumpInPlaceDownUp_Step0 - - thumb_func_start MovementAction_JumpInPlaceDownUp_Step1 -MovementAction_JumpInPlaceDownUp_Step1: @ 0x08094C74 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093B50 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08094C88 - movs r0, #0 - b _08094C98 -_08094C88: - ldrb r0, [r4, #2] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #2] - movs r0, #2 - strh r0, [r5, #0x32] - movs r0, #1 -_08094C98: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_JumpInPlaceDownUp_Step1 - - thumb_func_start MovementAction_JumpInPlaceUpDown_Step0 -MovementAction_JumpInPlaceUpDown_Step0: @ 0x08094CA0 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #2 - str r0, [sp] - adds r0, r4, #0 - movs r2, #2 - movs r3, #0 - bl maybe_shadow_1 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_JumpInPlaceUpDown_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_JumpInPlaceUpDown_Step0 - - thumb_func_start MovementAction_JumpInPlaceUpDown_Step1 -MovementAction_JumpInPlaceUpDown_Step1: @ 0x08094CCC - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093B50 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08094CE0 - movs r0, #0 - b _08094CF0 -_08094CE0: - ldrb r0, [r4, #2] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #2] - movs r0, #2 - strh r0, [r5, #0x32] - movs r0, #1 -_08094CF0: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_JumpInPlaceUpDown_Step1 - - thumb_func_start MovementAction_JumpInPlaceLeftRight_Step0 -MovementAction_JumpInPlaceLeftRight_Step0: @ 0x08094CF8 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #2 - str r0, [sp] - adds r0, r4, #0 - movs r2, #3 - movs r3, #0 - bl maybe_shadow_1 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_JumpInPlaceLeftRight_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_JumpInPlaceLeftRight_Step0 - - thumb_func_start MovementAction_JumpInPlaceLeftRight_Step1 -MovementAction_JumpInPlaceLeftRight_Step1: @ 0x08094D24 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093B50 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08094D38 - movs r0, #0 - b _08094D48 -_08094D38: - ldrb r0, [r4, #2] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #2] - movs r0, #2 - strh r0, [r5, #0x32] - movs r0, #1 -_08094D48: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_JumpInPlaceLeftRight_Step1 - - thumb_func_start MovementAction_JumpInPlaceRightLeft_Step0 -MovementAction_JumpInPlaceRightLeft_Step0: @ 0x08094D50 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #2 - str r0, [sp] - adds r0, r4, #0 - movs r2, #4 - movs r3, #0 - bl maybe_shadow_1 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_JumpInPlaceRightLeft_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_JumpInPlaceRightLeft_Step0 - - thumb_func_start MovementAction_JumpInPlaceRightLeft_Step1 -MovementAction_JumpInPlaceRightLeft_Step1: @ 0x08094D7C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093B50 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08094D90 - movs r0, #0 - b _08094DA0 -_08094D90: - ldrb r0, [r4, #2] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #2] - movs r0, #2 - strh r0, [r5, #0x32] - movs r0, #1 -_08094DA0: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_JumpInPlaceRightLeft_Step1 - - thumb_func_start MovementAction_FaceOriginalDirection_Step0 -MovementAction_FaceOriginalDirection_Step0: @ 0x08094DA8 - push {lr} - ldr r3, _08094DBC - ldrb r2, [r0, #6] - adds r2, r2, r3 - ldrb r2, [r2] - bl FaceDirection - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 -_08094DBC: .4byte gUnknown_84DDA21 - thumb_func_end MovementAction_FaceOriginalDirection_Step0 - - thumb_func_start MovementAction_NurseJoyBowDown_Step0 -MovementAction_NurseJoyBowDown_Step0: @ 0x08094DC0 - push {lr} - movs r2, #1 - movs r3, #0x14 - bl StartSpriteAnimInDirection - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end MovementAction_NurseJoyBowDown_Step0 - - thumb_func_start MovementAction_EnableJumpLandingGroundEffect_Step0 -MovementAction_EnableJumpLandingGroundEffect_Step0: @ 0x08094DD0 - ldrb r3, [r0, #3] - movs r2, #3 - rsbs r2, r2, #0 - ands r2, r3 - strb r2, [r0, #3] - movs r0, #1 - strh r0, [r1, #0x32] - bx lr - thumb_func_end MovementAction_EnableJumpLandingGroundEffect_Step0 - - thumb_func_start MovementAction_DisableJumpLandingGroundEffect_Step0 -MovementAction_DisableJumpLandingGroundEffect_Step0: @ 0x08094DE0 - ldrb r2, [r0, #3] - movs r3, #2 - orrs r2, r3 - strb r2, [r0, #3] - movs r0, #1 - strh r0, [r1, #0x32] - bx lr - .align 2, 0 - thumb_func_end MovementAction_DisableJumpLandingGroundEffect_Step0 - - thumb_func_start MovementAction_DisableAnimation_Step0 -MovementAction_DisableAnimation_Step0: @ 0x08094DF0 - ldrb r2, [r0, #1] - movs r3, #0x10 - orrs r2, r3 - strb r2, [r0, #1] - movs r0, #1 - strh r0, [r1, #0x32] - bx lr - .align 2, 0 - thumb_func_end MovementAction_DisableAnimation_Step0 - - thumb_func_start MovementAction_RestoreAnimation_Step0 -MovementAction_RestoreAnimation_Step0: @ 0x08094E00 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #5] - bl GetEventObjectGraphicsInfo - ldrb r1, [r0, #0xc] - lsls r1, r1, #0x19 - lsrs r1, r1, #0x1f - lsls r1, r1, #4 - ldrb r2, [r4, #1] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #1] - movs r0, #1 - strh r0, [r5, #0x32] - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_RestoreAnimation_Step0 - - thumb_func_start MovementAction_SetInvisible_Step0 -MovementAction_SetInvisible_Step0: @ 0x08094E2C - ldrb r2, [r0, #1] - movs r3, #0x20 - orrs r2, r3 - strb r2, [r0, #1] - movs r0, #1 - strh r0, [r1, #0x32] - bx lr - .align 2, 0 - thumb_func_end MovementAction_SetInvisible_Step0 - - thumb_func_start MovementAction_SetVisible_Step0 -MovementAction_SetVisible_Step0: @ 0x08094E3C - ldrb r3, [r0, #1] - movs r2, #0x21 - rsbs r2, r2, #0 - ands r2, r3 - strb r2, [r0, #1] - movs r0, #1 - strh r0, [r1, #0x32] - bx lr - thumb_func_end MovementAction_SetVisible_Step0 - - thumb_func_start MovementAction_EmoteExclamationMark_Step0 -MovementAction_EmoteExclamationMark_Step0: @ 0x08094E4C - push {r4, lr} - adds r4, r1, #0 - ldr r1, _08094E6C - adds r2, r1, #4 - adds r3, r1, #0 - adds r3, #8 - bl EventObjectGetLocalIdAndMap - movs r0, #0 - bl FieldEffectStart - movs r0, #1 - strh r0, [r4, #0x32] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08094E6C: .4byte gUnknown_20388A8 - thumb_func_end MovementAction_EmoteExclamationMark_Step0 - - thumb_func_start MovementAction_EmoteQuestionMark_Step0 -MovementAction_EmoteQuestionMark_Step0: @ 0x08094E70 - push {r4, lr} - adds r4, r1, #0 - ldr r1, _08094E90 - adds r2, r1, #4 - adds r3, r1, #0 - adds r3, #8 - bl EventObjectGetLocalIdAndMap - movs r0, #0x21 - bl FieldEffectStart - movs r0, #1 - strh r0, [r4, #0x32] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08094E90: .4byte gUnknown_20388A8 - thumb_func_end MovementAction_EmoteQuestionMark_Step0 - - thumb_func_start MovementAction_EmoteHeart_Step0 -MovementAction_EmoteHeart_Step0: @ 0x08094E94 - push {r4, lr} - adds r4, r1, #0 - ldr r1, _08094EB4 - adds r2, r1, #4 - adds r3, r1, #0 - adds r3, #8 - bl EventObjectGetLocalIdAndMap - movs r0, #0x2e - bl FieldEffectStart - movs r0, #1 - strh r0, [r4, #0x32] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08094EB4: .4byte gUnknown_20388A8 - thumb_func_end MovementAction_EmoteHeart_Step0 - - thumb_func_start MovementAction_RevealTrainer_Step0 -MovementAction_RevealTrainer_Step0: @ 0x08094EB8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #6] - cmp r0, #0x3f - bne _08094ECE - adds r0, r4, #0 - bl sub_080B3CD0 - movs r0, #0 - b _08094EF6 -_08094ECE: - subs r0, #0x39 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _08094EF0 - adds r0, r4, #0 - bl sub_08155CB4 - movs r0, #1 - strh r0, [r5, #0x32] - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_RevealTrainer_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _08094EF6 -_08094EF0: - movs r0, #2 - strh r0, [r5, #0x32] - movs r0, #1 -_08094EF6: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_RevealTrainer_Step0 - - thumb_func_start MovementAction_RevealTrainer_Step1 -MovementAction_RevealTrainer_Step1: @ 0x08094EFC - push {r4, lr} - adds r4, r1, #0 - bl sub_08155CDC - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08094F0E - movs r0, #0 - b _08094F14 -_08094F0E: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_08094F14: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_RevealTrainer_Step1 - - thumb_func_start MovementAction_RockSmashBreak_Step0 -MovementAction_RockSmashBreak_Step0: @ 0x08094F1C - push {r4, lr} - adds r4, r1, #0 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl SetAndStartSpriteAnim - movs r0, #1 - strh r0, [r4, #0x32] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_RockSmashBreak_Step0 - - thumb_func_start MovementAction_RockSmashBreak_Step1 -MovementAction_RockSmashBreak_Step1: @ 0x08094F38 - push {r4, lr} - adds r4, r1, #0 - adds r0, r4, #0 - bl SpriteAnimEnded - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08094F54 - adds r0, r4, #0 - movs r1, #0x20 - bl sub_080972E8 - movs r0, #2 - strh r0, [r4, #0x32] -_08094F54: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end MovementAction_RockSmashBreak_Step1 - - thumb_func_start MovementAction_RockSmashBreak_Step2 -MovementAction_RockSmashBreak_Step2: @ 0x08094F5C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r2, [r4, #1] - lsls r1, r2, #0x1a - lsrs r1, r1, #0x1f - movs r0, #1 - eors r1, r0 - lsls r1, r1, #5 - subs r0, #0x22 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #1] - adds r0, r5, #0 - bl WaitForMovementDelay - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08094F8E - ldrb r0, [r4, #1] - movs r1, #0x20 - orrs r0, r1 - strb r0, [r4, #1] - movs r0, #3 - strh r0, [r5, #0x32] -_08094F8E: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_RockSmashBreak_Step2 - - thumb_func_start MovementAction_CutTree_Step0 -MovementAction_CutTree_Step0: @ 0x08094F98 - push {r4, lr} - adds r4, r1, #0 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl SetAndStartSpriteAnim - movs r0, #1 - strh r0, [r4, #0x32] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_CutTree_Step0 - - thumb_func_start MovementAction_CutTree_Step1 -MovementAction_CutTree_Step1: @ 0x08094FB4 - push {r4, lr} - adds r4, r1, #0 - adds r0, r4, #0 - bl SpriteAnimEnded - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08094FD0 - adds r0, r4, #0 - movs r1, #0x20 - bl sub_080972E8 - movs r0, #2 - strh r0, [r4, #0x32] -_08094FD0: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end MovementAction_CutTree_Step1 - - thumb_func_start MovementAction_CutTree_Step2 -MovementAction_CutTree_Step2: @ 0x08094FD8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r2, [r4, #1] - lsls r1, r2, #0x1a - lsrs r1, r1, #0x1f - movs r0, #1 - eors r1, r0 - lsls r1, r1, #5 - subs r0, #0x22 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #1] - adds r0, r5, #0 - bl WaitForMovementDelay - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809500A - ldrb r0, [r4, #1] - movs r1, #0x20 - orrs r0, r1 - strb r0, [r4, #1] - movs r0, #3 - strh r0, [r5, #0x32] -_0809500A: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_CutTree_Step2 - - thumb_func_start MovementAction_SetFixedPriority_Step0 -MovementAction_SetFixedPriority_Step0: @ 0x08095014 - ldrb r2, [r0, #3] - movs r3, #4 - orrs r2, r3 - strb r2, [r0, #3] - movs r0, #1 - strh r0, [r1, #0x32] - bx lr - .align 2, 0 - thumb_func_end MovementAction_SetFixedPriority_Step0 - - thumb_func_start MovementAction_ClearFixedPriority_Step0 -MovementAction_ClearFixedPriority_Step0: @ 0x08095024 - ldrb r3, [r0, #3] - movs r2, #5 - rsbs r2, r2, #0 - ands r2, r3 - strb r2, [r0, #3] - movs r0, #1 - strh r0, [r1, #0x32] - bx lr - thumb_func_end MovementAction_ClearFixedPriority_Step0 - - thumb_func_start MovementAction_InitAffineAnim_Step0 -MovementAction_InitAffineAnim_Step0: @ 0x08095034 - push {r4, lr} - adds r4, r1, #0 - ldrb r0, [r4, #1] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #1] - adds r0, r4, #0 - bl InitSpriteAffineAnim - adds r2, r4, #0 - adds r2, #0x2c - ldrb r0, [r2] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2] - adds r4, #0x42 - ldrb r1, [r4] - movs r0, #0x3f - ands r0, r1 - strb r0, [r4] - movs r0, #1 - pop {r4} - pop {r1} - bx r1 - thumb_func_end MovementAction_InitAffineAnim_Step0 - - thumb_func_start MovementAction_ClearAffineAnim_Step0 -MovementAction_ClearAffineAnim_Step0: @ 0x08095064 - push {r4, lr} - adds r4, r1, #0 - ldrb r0, [r4, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - ldrb r0, [r4, #1] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #1] - lsrs r1, r1, #6 - ldrb r2, [r4, #3] - lsrs r2, r2, #6 - movs r3, #0 - adds r0, r4, #0 - bl CalcCenterToCornerVec - movs r0, #1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_ClearAffineAnim_Step0 - - thumb_func_start MovementAction_Unknown1_Step0 -MovementAction_Unknown1_Step0: @ 0x08095094 - ldrb r1, [r0, #3] - movs r2, #8 - orrs r1, r2 - strb r1, [r0, #3] - movs r0, #1 - bx lr - thumb_func_end MovementAction_Unknown1_Step0 - - thumb_func_start MovementAction_Unknown2_Step0 -MovementAction_Unknown2_Step0: @ 0x080950A0 - ldrb r2, [r0, #3] - movs r1, #9 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0, #3] - movs r0, #1 - bx lr - .align 2, 0 - thumb_func_end MovementAction_Unknown2_Step0 - - thumb_func_start MovementAction_WalkDownStartAffine_Step0 -MovementAction_WalkDownStartAffine_Step0: @ 0x080950B0 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - movs r2, #1 - bl sub_080934D0 - adds r2, r4, #0 - adds r2, #0x2c - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0 - bl StartSpriteAffineAnimIfDifferent - adds r0, r5, #0 - adds r1, r4, #0 - bl MovementAction_WalkDownStartAffine_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkDownStartAffine_Step0 - - thumb_func_start MovementAction_WalkDownStartAffine_Step1 -MovementAction_WalkDownStartAffine_Step1: @ 0x080950E4 - push {r4, lr} - adds r4, r1, #0 - bl an_walk_any_2 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080950F6 - movs r0, #0 - b _08095108 -_080950F6: - adds r2, r4, #0 - adds r2, #0x2c - ldrb r0, [r2] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2] - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_08095108: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkDownStartAffine_Step1 - - thumb_func_start MovementAction_WalkDownAffine_Step0 -MovementAction_WalkDownAffine_Step0: @ 0x08095110 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - movs r2, #1 - bl sub_080934D0 - adds r2, r4, #0 - adds r2, #0x2c - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #1 - bl ChangeSpriteAffineAnimIfDifferent - adds r0, r5, #0 - adds r1, r4, #0 - bl MovementAction_WalkDownAffine_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkDownAffine_Step0 - - thumb_func_start MovementAction_WalkDownAffine_Step1 -MovementAction_WalkDownAffine_Step1: @ 0x08095144 - push {r4, lr} - adds r4, r1, #0 - bl an_walk_any_2 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08095156 - movs r0, #0 - b _08095168 -_08095156: - adds r2, r4, #0 - adds r2, #0x2c - ldrb r0, [r2] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2] - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_08095168: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkDownAffine_Step1 - - thumb_func_start MovementAction_WalkLeftAffine_Step0 -MovementAction_WalkLeftAffine_Step0: @ 0x08095170 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - movs r2, #3 - movs r3, #1 - bl do_go_anim - adds r2, r4, #0 - adds r2, #0x2c - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #2 - bl ChangeSpriteAffineAnimIfDifferent - adds r0, r5, #0 - adds r1, r4, #0 - bl MovementAction_WalkLeftAffine_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_WalkLeftAffine_Step0 - - thumb_func_start MovementAction_WalkLeftAffine_Step1 -MovementAction_WalkLeftAffine_Step1: @ 0x080951A4 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080951B6 - movs r0, #0 - b _080951C8 -_080951B6: - adds r2, r4, #0 - adds r2, #0x2c - ldrb r0, [r2] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2] - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_080951C8: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkLeftAffine_Step1 - - thumb_func_start MovementAction_WalkRightAffine_Step0 -MovementAction_WalkRightAffine_Step0: @ 0x080951D0 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - movs r2, #4 - movs r3, #1 - bl do_go_anim - adds r2, r4, #0 - adds r2, #0x2c - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #3 - bl ChangeSpriteAffineAnimIfDifferent - adds r0, r5, #0 - adds r1, r4, #0 - bl MovementAction_WalkRightAffine_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_WalkRightAffine_Step0 - - thumb_func_start MovementAction_WalkRightAffine_Step1 -MovementAction_WalkRightAffine_Step1: @ 0x08095204 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08095216 - movs r0, #0 - b _08095228 -_08095216: - adds r2, r4, #0 - adds r2, #0x2c - ldrb r0, [r2] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2] - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_08095228: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_WalkRightAffine_Step1 - - thumb_func_start sub_08095230 -sub_08095230: @ 0x08095230 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - lsls r4, r2, #0x18 - lsrs r4, r4, #0x18 - adds r1, r4, #0 - bl SetEventObjectDirection - adds r0, r5, #0 - bl ShiftStillEventObjectCoords - adds r0, r4, #0 - bl sub_0809236C - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r5, #0 - adds r1, r6, #0 - bl obj_npc_animation_step - adds r2, r6, #0 - adds r2, #0x2c - ldrb r0, [r2] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2] - movs r0, #1 - strh r0, [r6, #0x32] - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_08095230 - - thumb_func_start MovementAction_AcroWheelieFaceDown_Step0 -MovementAction_AcroWheelieFaceDown_Step0: @ 0x08095270 - push {lr} - movs r2, #1 - bl sub_08095230 - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieFaceDown_Step0 - - thumb_func_start MovementAction_AcroWheelieFaceUp_Step0 -MovementAction_AcroWheelieFaceUp_Step0: @ 0x08095280 - push {lr} - movs r2, #2 - bl sub_08095230 - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieFaceUp_Step0 - - thumb_func_start MovementAction_AcroWheelieFaceLeft_Step0 -MovementAction_AcroWheelieFaceLeft_Step0: @ 0x08095290 - push {lr} - movs r2, #3 - bl sub_08095230 - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieFaceLeft_Step0 - - thumb_func_start MovementAction_AcroWheelieFaceRight_Step0 -MovementAction_AcroWheelieFaceRight_Step0: @ 0x080952A0 - push {lr} - movs r2, #4 - bl sub_08095230 - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieFaceRight_Step0 - - thumb_func_start MovementAction_AcroPopWheelieDown_Step0 -MovementAction_AcroPopWheelieDown_Step0: @ 0x080952B0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #1 - bl sub_0809232C - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #1 - bl StartSpriteAnimInDirection - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_AcroPopWheelieDown_Step0 - - thumb_func_start MovementAction_AcroPopWheelieUp_Step0 -MovementAction_AcroPopWheelieUp_Step0: @ 0x080952D4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #2 - bl sub_0809232C - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #2 - bl StartSpriteAnimInDirection - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_AcroPopWheelieUp_Step0 - - thumb_func_start MovementAction_AcroPopWheelieLeft_Step0 -MovementAction_AcroPopWheelieLeft_Step0: @ 0x080952F8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #3 - bl sub_0809232C - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #3 - bl StartSpriteAnimInDirection - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_AcroPopWheelieLeft_Step0 - - thumb_func_start MovementAction_AcroPopWheelieRight_Step0 -MovementAction_AcroPopWheelieRight_Step0: @ 0x0809531C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #4 - bl sub_0809232C - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #4 - bl StartSpriteAnimInDirection - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_AcroPopWheelieRight_Step0 - - thumb_func_start MovementAction_AcroEndWheelieFaceDown_Step0 -MovementAction_AcroEndWheelieFaceDown_Step0: @ 0x08095340 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #1 - bl sub_0809234C - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #1 - bl StartSpriteAnimInDirection - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_AcroEndWheelieFaceDown_Step0 - - thumb_func_start MovementAction_AcroEndWheelieFaceUp_Step0 -MovementAction_AcroEndWheelieFaceUp_Step0: @ 0x08095364 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #2 - bl sub_0809234C - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #2 - bl StartSpriteAnimInDirection - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_AcroEndWheelieFaceUp_Step0 - - thumb_func_start MovementAction_AcroEndWheelieFaceLeft_Step0 -MovementAction_AcroEndWheelieFaceLeft_Step0: @ 0x08095388 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #3 - bl sub_0809234C - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #3 - bl StartSpriteAnimInDirection - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_AcroEndWheelieFaceLeft_Step0 - - thumb_func_start MovementAction_AcroEndWheelieFaceRight_Step0 -MovementAction_AcroEndWheelieFaceRight_Step0: @ 0x080953AC - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #4 - bl sub_0809234C - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #4 - bl StartSpriteAnimInDirection - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_AcroEndWheelieFaceRight_Step0 - - thumb_func_start MovementAction_UnusedAcroActionDown_Step0 -MovementAction_UnusedAcroActionDown_Step0: @ 0x080953D0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #1 - bl sub_0809235C - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #1 - bl StartSpriteAnimInDirection - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_UnusedAcroActionDown_Step0 - - thumb_func_start MovementAction_UnusedAcroActionUp_Step0 -MovementAction_UnusedAcroActionUp_Step0: @ 0x080953F4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #2 - bl sub_0809235C - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #2 - bl StartSpriteAnimInDirection - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_UnusedAcroActionUp_Step0 - - thumb_func_start MovementAction_UnusedAcroActionLeft_Step0 -MovementAction_UnusedAcroActionLeft_Step0: @ 0x08095418 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #3 - bl sub_0809235C - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #3 - bl StartSpriteAnimInDirection - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_UnusedAcroActionLeft_Step0 - - thumb_func_start MovementAction_UnusedAcroActionRight_Step0 -MovementAction_UnusedAcroActionRight_Step0: @ 0x0809543C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #4 - bl sub_0809235C - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #4 - bl StartSpriteAnimInDirection - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_UnusedAcroActionRight_Step0 - - thumb_func_start sub_08095460 -sub_08095460: @ 0x08095460 - push {r4, lr} - adds r4, r1, #0 - adds r0, r4, #0 - bl sub_080970C0 - adds r4, #0x2c - ldrb r1, [r4] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08095460 - - thumb_func_start sub_0809547C -sub_0809547C: @ 0x0809547C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r0, r5, #0 - bl sub_080970C8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08095492 - movs r0, #0 - b _080954AE -_08095492: - adds r0, r4, #0 - bl ShiftStillEventObjectCoords - ldrb r0, [r4] - movs r1, #8 - orrs r0, r1 - strb r0, [r4] - adds r2, r5, #0 - adds r2, #0x2c - ldrb r0, [r2] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2] - movs r0, #1 -_080954AE: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_0809547C - - thumb_func_start MovementAction_Figure8_Step0 -MovementAction_Figure8_Step0: @ 0x080954B4 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl sub_08095460 - movs r0, #1 - strh r0, [r4, #0x32] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080954D4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_Figure8_Step0 - - thumb_func_start sub_080954D4 -sub_080954D4: @ 0x080954D4 - push {r4, lr} - adds r4, r1, #0 - bl sub_0809547C - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080954E6 - movs r0, #0 - b _080954EC -_080954E6: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_080954EC: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080954D4 - - thumb_func_start sub_080954F4 -sub_080954F4: @ 0x080954F4 - push {r4, r5, r6, lr} - sub sp, #4 - adds r6, r0, #0 - adds r5, r1, #0 - adds r4, r2, #0 - ldr r0, [sp, #0x14] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - adds r0, r6, #0 - adds r2, r4, #0 - bl sub_08093934 - adds r0, r4, #0 - bl sub_0809232C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl StartSpriteAnimIfDifferent - adds r0, r6, #0 - bl DoShadowFieldEffect - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080954F4 - - thumb_func_start MovementAction_AcroWheelieHopFaceDown_Step0 -MovementAction_AcroWheelieHopFaceDown_Step0: @ 0x08095538 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #1 - str r0, [sp] - adds r0, r4, #0 - movs r2, #1 - movs r3, #0 - bl sub_080954F4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_AcroWheelieHopFaceDown_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieHopFaceDown_Step0 - - thumb_func_start MovementAction_AcroWheelieHopFaceDown_Step1 -MovementAction_AcroWheelieHopFaceDown_Step1: @ 0x08095564 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093B20 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08095578 - movs r0, #0 - b _08095588 -_08095578: - ldrb r0, [r4, #2] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #2] - movs r0, #2 - strh r0, [r5, #0x32] - movs r0, #1 -_08095588: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieHopFaceDown_Step1 - - thumb_func_start MovementAction_AcroWheelieHopFaceUp_Step0 -MovementAction_AcroWheelieHopFaceUp_Step0: @ 0x08095590 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #1 - str r0, [sp] - adds r0, r4, #0 - movs r2, #2 - movs r3, #0 - bl sub_080954F4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_AcroWheelieHopFaceUp_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieHopFaceUp_Step0 - - thumb_func_start MovementAction_AcroWheelieHopFaceUp_Step1 -MovementAction_AcroWheelieHopFaceUp_Step1: @ 0x080955BC - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093B20 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080955D0 - movs r0, #0 - b _080955E0 -_080955D0: - ldrb r0, [r4, #2] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #2] - movs r0, #2 - strh r0, [r5, #0x32] - movs r0, #1 -_080955E0: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieHopFaceUp_Step1 - - thumb_func_start MovementAction_AcroWheelieHopFaceLeft_Step0 -MovementAction_AcroWheelieHopFaceLeft_Step0: @ 0x080955E8 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #1 - str r0, [sp] - adds r0, r4, #0 - movs r2, #3 - movs r3, #0 - bl sub_080954F4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_AcroWheelieHopFaceLeft_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieHopFaceLeft_Step0 - - thumb_func_start MovementAction_AcroWheelieHopFaceLeft_Step1 -MovementAction_AcroWheelieHopFaceLeft_Step1: @ 0x08095614 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093B20 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08095628 - movs r0, #0 - b _08095638 -_08095628: - ldrb r0, [r4, #2] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #2] - movs r0, #2 - strh r0, [r5, #0x32] - movs r0, #1 -_08095638: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieHopFaceLeft_Step1 - - thumb_func_start MovementAction_AcroWheelieHopFaceRight_Step0 -MovementAction_AcroWheelieHopFaceRight_Step0: @ 0x08095640 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #1 - str r0, [sp] - adds r0, r4, #0 - movs r2, #4 - movs r3, #0 - bl sub_080954F4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_AcroWheelieHopFaceRight_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieHopFaceRight_Step0 - - thumb_func_start MovementAction_AcroWheelieHopFaceRight_Step1 -MovementAction_AcroWheelieHopFaceRight_Step1: @ 0x0809566C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093B20 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08095680 - movs r0, #0 - b _08095690 -_08095680: - ldrb r0, [r4, #2] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #2] - movs r0, #2 - strh r0, [r5, #0x32] - movs r0, #1 -_08095690: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieHopFaceRight_Step1 - - thumb_func_start MovementAction_AcroWheelieHopDown_Step0 -MovementAction_AcroWheelieHopDown_Step0: @ 0x08095698 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #1 - str r0, [sp] - adds r0, r4, #0 - movs r2, #1 - movs r3, #1 - bl sub_080954F4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_AcroWheelieHopDown_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieHopDown_Step0 - - thumb_func_start MovementAction_AcroWheelieHopDown_Step1 -MovementAction_AcroWheelieHopDown_Step1: @ 0x080956C4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093B20 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080956D8 - movs r0, #0 - b _080956E8 -_080956D8: - ldrb r0, [r4, #2] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #2] - movs r0, #2 - strh r0, [r5, #0x32] - movs r0, #1 -_080956E8: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieHopDown_Step1 - - thumb_func_start MovementAction_AcroWheelieHopUp_Step0 -MovementAction_AcroWheelieHopUp_Step0: @ 0x080956F0 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #1 - str r0, [sp] - adds r0, r4, #0 - movs r2, #2 - movs r3, #1 - bl sub_080954F4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_AcroWheelieHopUp_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieHopUp_Step0 - - thumb_func_start MovementAction_AcroWheelieHopUp_Step1 -MovementAction_AcroWheelieHopUp_Step1: @ 0x0809571C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093B20 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08095730 - movs r0, #0 - b _08095740 -_08095730: - ldrb r0, [r4, #2] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #2] - movs r0, #2 - strh r0, [r5, #0x32] - movs r0, #1 -_08095740: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieHopUp_Step1 - - thumb_func_start MovementAction_AcroWheelieHopLeft_Step0 -MovementAction_AcroWheelieHopLeft_Step0: @ 0x08095748 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #1 - str r0, [sp] - adds r0, r4, #0 - movs r2, #3 - movs r3, #1 - bl sub_080954F4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_AcroWheelieHopLeft_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieHopLeft_Step0 - - thumb_func_start MovementAction_AcroWheelieHopLeft_Step1 -MovementAction_AcroWheelieHopLeft_Step1: @ 0x08095774 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093B20 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08095788 - movs r0, #0 - b _08095798 -_08095788: - ldrb r0, [r4, #2] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #2] - movs r0, #2 - strh r0, [r5, #0x32] - movs r0, #1 -_08095798: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieHopLeft_Step1 - - thumb_func_start MovementAction_AcroWheelieHopRight_Step0 -MovementAction_AcroWheelieHopRight_Step0: @ 0x080957A0 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #1 - str r0, [sp] - adds r0, r4, #0 - movs r2, #4 - movs r3, #1 - bl sub_080954F4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_AcroWheelieHopRight_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieHopRight_Step0 - - thumb_func_start MovementAction_AcroWheelieHopRight_Step1 -MovementAction_AcroWheelieHopRight_Step1: @ 0x080957CC - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093B20 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080957E0 - movs r0, #0 - b _080957F0 -_080957E0: - ldrb r0, [r4, #2] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #2] - movs r0, #2 - strh r0, [r5, #0x32] - movs r0, #1 -_080957F0: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieHopRight_Step1 - - thumb_func_start MovementAction_AcroWheelieJumpDown_Step0 -MovementAction_AcroWheelieJumpDown_Step0: @ 0x080957F8 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #0 - str r0, [sp] - adds r0, r4, #0 - movs r2, #1 - movs r3, #2 - bl sub_080954F4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_AcroWheelieJumpDown_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieJumpDown_Step0 - - thumb_func_start MovementAction_AcroWheelieJumpDown_Step1 -MovementAction_AcroWheelieJumpDown_Step1: @ 0x08095824 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093B20 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08095838 - movs r0, #0 - b _08095848 -_08095838: - ldrb r0, [r4, #2] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #2] - movs r0, #2 - strh r0, [r5, #0x32] - movs r0, #1 -_08095848: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieJumpDown_Step1 - - thumb_func_start MovementAction_AcroWheelieJumpUp_Step0 -MovementAction_AcroWheelieJumpUp_Step0: @ 0x08095850 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #0 - str r0, [sp] - adds r0, r4, #0 - movs r2, #2 - movs r3, #2 - bl sub_080954F4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_AcroWheelieJumpUp_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieJumpUp_Step0 - - thumb_func_start MovementAction_AcroWheelieJumpUp_Step1 -MovementAction_AcroWheelieJumpUp_Step1: @ 0x0809587C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093B20 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08095890 - movs r0, #0 - b _080958A0 -_08095890: - ldrb r0, [r4, #2] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #2] - movs r0, #2 - strh r0, [r5, #0x32] - movs r0, #1 -_080958A0: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieJumpUp_Step1 - - thumb_func_start MovementAction_AcroWheelieJumpLeft_Step0 -MovementAction_AcroWheelieJumpLeft_Step0: @ 0x080958A8 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #0 - str r0, [sp] - adds r0, r4, #0 - movs r2, #3 - movs r3, #2 - bl sub_080954F4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_AcroWheelieJumpLeft_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieJumpLeft_Step0 - - thumb_func_start MovementAction_AcroWheelieJumpLeft_Step1 -MovementAction_AcroWheelieJumpLeft_Step1: @ 0x080958D4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093B20 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080958E8 - movs r0, #0 - b _080958F8 -_080958E8: - ldrb r0, [r4, #2] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #2] - movs r0, #2 - strh r0, [r5, #0x32] - movs r0, #1 -_080958F8: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieJumpLeft_Step1 - - thumb_func_start MovementAction_AcroWheelieJumpRight_Step0 -MovementAction_AcroWheelieJumpRight_Step0: @ 0x08095900 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #0 - str r0, [sp] - adds r0, r4, #0 - movs r2, #4 - movs r3, #2 - bl sub_080954F4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_AcroWheelieJumpRight_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieJumpRight_Step0 - - thumb_func_start MovementAction_AcroWheelieJumpRight_Step1 -MovementAction_AcroWheelieJumpRight_Step1: @ 0x0809592C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08093B20 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08095940 - movs r0, #0 - b _08095950 -_08095940: - ldrb r0, [r4, #2] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #2] - movs r0, #2 - strh r0, [r5, #0x32] - movs r0, #1 -_08095950: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieJumpRight_Step1 - - thumb_func_start MovementAction_AcroWheelieInPlaceDown_Step0 -MovementAction_AcroWheelieInPlaceDown_Step0: @ 0x08095958 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #1 - bl sub_0809236C - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #8 - str r0, [sp] - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #1 - bl sub_08093EC4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkInPlace_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieInPlaceDown_Step0 - - thumb_func_start MovementAction_AcroWheelieInPlaceUp_Step0 -MovementAction_AcroWheelieInPlaceUp_Step0: @ 0x08095990 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #2 - bl sub_0809236C - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #8 - str r0, [sp] - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #2 - bl sub_08093EC4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkInPlace_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieInPlaceUp_Step0 - - thumb_func_start MovementAction_AcroWheelieInPlaceLeft_Step0 -MovementAction_AcroWheelieInPlaceLeft_Step0: @ 0x080959C8 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #3 - bl sub_0809236C - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #8 - str r0, [sp] - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #3 - bl sub_08093EC4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkInPlace_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieInPlaceLeft_Step0 - - thumb_func_start MovementAction_AcroWheelieInPlaceRight_Step0 -MovementAction_AcroWheelieInPlaceRight_Step0: @ 0x08095A00 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #4 - bl sub_0809236C - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #8 - str r0, [sp] - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #4 - bl sub_08093EC4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_WalkInPlace_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieInPlaceRight_Step0 - - thumb_func_start sub_08095A38 -sub_08095A38: @ 0x08095A38 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - bl npc_apply_direction - ldrb r0, [r5, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_0809232C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim - adds r0, r4, #0 - movs r1, #0 - bl SeekSpriteAnim - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08095A38 - - thumb_func_start sub_08095A70 -sub_08095A70: @ 0x08095A70 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #1 - movs r3, #1 - bl sub_08095A38 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_AcroPopWheelieMoveDown_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_08095A70 - - thumb_func_start MovementAction_AcroPopWheelieMoveDown_Step1 -MovementAction_AcroPopWheelieMoveDown_Step1: @ 0x08095A90 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08095AA2 - movs r0, #0 - b _08095AA8 -_08095AA2: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_08095AA8: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroPopWheelieMoveDown_Step1 - - thumb_func_start sub_08095AB0 -sub_08095AB0: @ 0x08095AB0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #2 - movs r3, #1 - bl sub_08095A38 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_AcroPopWheelieMoveUp_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_08095AB0 - - thumb_func_start MovementAction_AcroPopWheelieMoveUp_Step1 -MovementAction_AcroPopWheelieMoveUp_Step1: @ 0x08095AD0 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08095AE2 - movs r0, #0 - b _08095AE8 -_08095AE2: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_08095AE8: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroPopWheelieMoveUp_Step1 - - thumb_func_start sub_08095AF0 -sub_08095AF0: @ 0x08095AF0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #3 - movs r3, #1 - bl sub_08095A38 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_AcroPopWheelieMoveLeft_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_08095AF0 - - thumb_func_start MovementAction_AcroPopWheelieMoveLeft_Step1 -MovementAction_AcroPopWheelieMoveLeft_Step1: @ 0x08095B10 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08095B22 - movs r0, #0 - b _08095B28 -_08095B22: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_08095B28: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroPopWheelieMoveLeft_Step1 - - thumb_func_start sub_08095B30 -sub_08095B30: @ 0x08095B30 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #4 - movs r3, #1 - bl sub_08095A38 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_AcroPopWheelieMoveRight_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_08095B30 - - thumb_func_start MovementAction_AcroPopWheelieMoveRight_Step1 -MovementAction_AcroPopWheelieMoveRight_Step1: @ 0x08095B50 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08095B62 - movs r0, #0 - b _08095B68 -_08095B62: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_08095B68: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroPopWheelieMoveRight_Step1 - - thumb_func_start sub_08095B70 -sub_08095B70: @ 0x08095B70 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - bl npc_apply_direction - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_0809236C - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl npc_apply_anim_looping - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_08095B70 - - thumb_func_start MovementAction_AcroWheelieMoveDown_Step0 -MovementAction_AcroWheelieMoveDown_Step0: @ 0x08095BA0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #1 - movs r3, #1 - bl sub_08095B70 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_AcroWheelieMoveDown_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_AcroWheelieMoveDown_Step0 - - thumb_func_start MovementAction_AcroWheelieMoveDown_Step1 -MovementAction_AcroWheelieMoveDown_Step1: @ 0x08095BC0 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08095BD2 - movs r0, #0 - b _08095BD8 -_08095BD2: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_08095BD8: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieMoveDown_Step1 - - thumb_func_start MovementAction_AcroWheelieMoveUp_Step0 -MovementAction_AcroWheelieMoveUp_Step0: @ 0x08095BE0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #2 - movs r3, #1 - bl sub_08095B70 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_AcroWheelieMoveUp_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_AcroWheelieMoveUp_Step0 - - thumb_func_start MovementAction_AcroWheelieMoveUp_Step1 -MovementAction_AcroWheelieMoveUp_Step1: @ 0x08095C00 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08095C12 - movs r0, #0 - b _08095C18 -_08095C12: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_08095C18: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieMoveUp_Step1 - - thumb_func_start MovementAction_AcroWheelieMoveLeft_Step0 -MovementAction_AcroWheelieMoveLeft_Step0: @ 0x08095C20 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #3 - movs r3, #1 - bl sub_08095B70 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_AcroWheelieMoveLeft_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_AcroWheelieMoveLeft_Step0 - - thumb_func_start MovementAction_AcroWheelieMoveLeft_Step1 -MovementAction_AcroWheelieMoveLeft_Step1: @ 0x08095C40 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08095C52 - movs r0, #0 - b _08095C58 -_08095C52: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_08095C58: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieMoveLeft_Step1 - - thumb_func_start MovementAction_AcroWheelieMoveRight_Step0 -MovementAction_AcroWheelieMoveRight_Step0: @ 0x08095C60 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #4 - movs r3, #1 - bl sub_08095B70 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_AcroWheelieMoveRight_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MovementAction_AcroWheelieMoveRight_Step0 - - thumb_func_start MovementAction_AcroWheelieMoveRight_Step1 -MovementAction_AcroWheelieMoveRight_Step1: @ 0x08095C80 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08095C92 - movs r0, #0 - b _08095C98 -_08095C92: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_08095C98: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroWheelieMoveRight_Step1 - - thumb_func_start sub_08095CA0 -sub_08095CA0: @ 0x08095CA0 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - bl npc_apply_direction - ldrb r0, [r5, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_0809234C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim - adds r0, r4, #0 - movs r1, #0 - bl SeekSpriteAnim - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08095CA0 - - thumb_func_start sub_08095CD8 -sub_08095CD8: @ 0x08095CD8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #1 - movs r3, #1 - bl sub_08095CA0 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_AcroEndWheelieMoveDown_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_08095CD8 - - thumb_func_start MovementAction_AcroEndWheelieMoveDown_Step1 -MovementAction_AcroEndWheelieMoveDown_Step1: @ 0x08095CF8 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08095D0A - movs r0, #0 - b _08095D10 -_08095D0A: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_08095D10: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroEndWheelieMoveDown_Step1 - - thumb_func_start sub_08095D18 -sub_08095D18: @ 0x08095D18 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #2 - movs r3, #1 - bl sub_08095CA0 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_AcroEndWheelieMoveUp_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_08095D18 - - thumb_func_start MovementAction_AcroEndWheelieMoveUp_Step1 -MovementAction_AcroEndWheelieMoveUp_Step1: @ 0x08095D38 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08095D4A - movs r0, #0 - b _08095D50 -_08095D4A: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_08095D50: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroEndWheelieMoveUp_Step1 - - thumb_func_start sub_08095D58 -sub_08095D58: @ 0x08095D58 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #3 - movs r3, #1 - bl sub_08095CA0 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_AcroEndWheelieMoveLeft_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_08095D58 - - thumb_func_start MovementAction_AcroEndWheelieMoveLeft_Step1 -MovementAction_AcroEndWheelieMoveLeft_Step1: @ 0x08095D78 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08095D8A - movs r0, #0 - b _08095D90 -_08095D8A: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_08095D90: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroEndWheelieMoveLeft_Step1 - - thumb_func_start sub_08095D98 -sub_08095D98: @ 0x08095D98 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #4 - movs r3, #1 - bl sub_08095CA0 - adds r0, r4, #0 - adds r1, r5, #0 - bl MovementAction_AcroEndWheelieMoveRight_Step1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_08095D98 - - thumb_func_start MovementAction_AcroEndWheelieMoveRight_Step1 -MovementAction_AcroEndWheelieMoveRight_Step1: @ 0x08095DB8 - push {r4, lr} - adds r4, r1, #0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08095DCA - movs r0, #0 - b _08095DD0 -_08095DCA: - movs r0, #2 - strh r0, [r4, #0x32] - movs r0, #1 -_08095DD0: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_AcroEndWheelieMoveRight_Step1 - - thumb_func_start MovementAction_Levitate_Step0 -MovementAction_Levitate_Step0: @ 0x08095DD8 - push {r4, lr} - adds r4, r1, #0 - bl CreateLevitateMovementTask - movs r0, #1 - strh r0, [r4, #0x32] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_Levitate_Step0 - - thumb_func_start MovementAction_StopLevitate_Step0 -MovementAction_StopLevitate_Step0: @ 0x08095DEC - push {r4, lr} - adds r4, r1, #0 - ldrb r0, [r0, #0x1b] - bl DestroyExtraMovementTask - movs r0, #0 - strh r0, [r4, #0x26] - movs r0, #1 - strh r0, [r4, #0x32] - pop {r4} - pop {r1} - bx r1 - thumb_func_end MovementAction_StopLevitate_Step0 - - thumb_func_start MovementAction_DestroyExtraTaskIfAtTop_Step0 -MovementAction_DestroyExtraTaskIfAtTop_Step0: @ 0x08095E04 - push {r4, lr} - adds r2, r0, #0 - adds r4, r1, #0 - movs r1, #0x26 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _08095E16 - movs r0, #0 - b _08095E20 -_08095E16: - ldrb r0, [r2, #0x1b] - bl DestroyExtraMovementTask - movs r0, #1 - strh r0, [r4, #0x32] -_08095E20: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_DestroyExtraTaskIfAtTop_Step0 - - thumb_func_start sub_08095E28 -sub_08095E28: @ 0x08095E28 - movs r0, #1 - bx lr - thumb_func_end sub_08095E28 - - thumb_func_start MovementAction_PauseSpriteAnim -MovementAction_PauseSpriteAnim: @ 0x08095E2C - adds r1, #0x2c - ldrb r0, [r1] - movs r2, #0x40 - orrs r0, r2 - strb r0, [r1] - movs r0, #1 - bx lr - .align 2, 0 - thumb_func_end MovementAction_PauseSpriteAnim - - thumb_func_start UpdateEventObjectSpriteAnimPause -UpdateEventObjectSpriteAnimPause: @ 0x08095E3C - push {lr} - ldrb r0, [r0, #1] - lsls r0, r0, #0x1d - cmp r0, #0 - bge _08095E52 - adds r0, r1, #0 - adds r0, #0x2c - ldrb r1, [r0] - movs r2, #0x40 - orrs r1, r2 - strb r1, [r0] -_08095E52: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end UpdateEventObjectSpriteAnimPause - - thumb_func_start TryEnableEventObjectAnim -TryEnableEventObjectAnim: @ 0x08095E58 - push {r4, lr} - adds r4, r0, #0 - ldrb r3, [r4, #1] - lsls r0, r3, #0x1c - cmp r0, #0 - bge _08095E80 - adds r2, r1, #0 - adds r2, #0x2c - ldrb r1, [r2] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r3 - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r4, #1] -_08095E80: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end TryEnableEventObjectAnim - - thumb_func_start UpdateEventObjectVisibility -UpdateEventObjectVisibility: @ 0x08095E88 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08095EA0 - adds r0, r4, #0 - adds r1, r5, #0 - bl UpdateEventObjSpriteVisibility - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end UpdateEventObjectVisibility - - thumb_func_start sub_08095EA0 -sub_08095EA0: @ 0x08095EA0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - ldrb r1, [r5, #1] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r5, #1] - ldrb r0, [r5, #5] - bl GetEventObjectGraphicsInfo - adds r6, r0, #0 - adds r0, r4, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08095F04 - ldrh r1, [r4, #0x24] - ldrh r0, [r4, #0x20] - adds r1, r1, r0 - adds r0, r4, #0 - adds r0, #0x28 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldr r2, _08095EFC - adds r0, r0, r1 - ldrh r2, [r2] - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldrh r1, [r4, #0x26] - ldrh r0, [r4, #0x22] - adds r1, r1, r0 - adds r0, r4, #0 - adds r0, #0x29 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldr r2, _08095F00 - adds r0, r0, r1 - ldrh r2, [r2] - adds r0, r0, r2 - b _08095F2C - .align 2, 0 -_08095EFC: .4byte gUnknown_2021B38 -_08095F00: .4byte gUnknown_2021B3A -_08095F04: - ldrh r1, [r4, #0x24] - ldrh r0, [r4, #0x20] - adds r1, r1, r0 - adds r0, r4, #0 - adds r0, #0x28 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldrh r1, [r4, #0x26] - ldrh r0, [r4, #0x22] - adds r1, r1, r0 - adds r0, r4, #0 - adds r0, #0x29 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, r0, r1 -_08095F2C: - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldrh r0, [r6, #8] - adds r0, r0, r3 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldrh r0, [r6, #0xa] - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xff - bgt _08095F54 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x10 - rsbs r1, r1, #0 - cmp r0, r1 - bge _08095F5C -_08095F54: - ldrb r0, [r5, #1] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r5, #1] -_08095F5C: - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xaf - bgt _08095F70 - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x10 - rsbs r1, r1, #0 - cmp r0, r1 - bge _08095F78 -_08095F70: - ldrb r0, [r5, #1] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r5, #1] -_08095F78: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08095EA0 - - thumb_func_start UpdateEventObjSpriteVisibility -UpdateEventObjSpriteVisibility: @ 0x08095F80 - push {lr} - adds r2, r1, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r3, #5 - rsbs r3, r3, #0 - ands r3, r1 - strb r3, [r2] - ldrb r1, [r0, #1] - movs r0, #0x60 - ands r0, r1 - cmp r0, #0 - beq _08095FA2 - movs r1, #4 - adds r0, r3, #0 - orrs r0, r1 - strb r0, [r2] -_08095FA2: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end UpdateEventObjSpriteVisibility - - thumb_func_start GetAllGroundEffectFlags_OnSpawn -GetAllGroundEffectFlags_OnSpawn: @ 0x08095FA8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl EventObjectUpdateMetatileBehaviors - adds r0, r4, #0 - adds r1, r5, #0 - bl GetGroundEffectFlags_Reflection - adds r0, r4, #0 - adds r1, r5, #0 - bl GetGroundEffectFlags_TallGrassOnSpawn - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0809615C - adds r0, r4, #0 - adds r1, r5, #0 - bl GetGroundEffectFlags_SandHeap - adds r0, r4, #0 - adds r1, r5, #0 - bl GetGroundEffectFlags_ShallowFlowingWater - adds r0, r4, #0 - adds r1, r5, #0 - bl GetGroundEffectFlags_ShortGrass - adds r0, r4, #0 - adds r1, r5, #0 - bl GetGroundEffectFlags_HotSprings - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end GetAllGroundEffectFlags_OnSpawn - - thumb_func_start GetAllGroundEffectFlags_OnBeginStep -GetAllGroundEffectFlags_OnBeginStep: @ 0x08095FF0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl EventObjectUpdateMetatileBehaviors - adds r0, r4, #0 - adds r1, r5, #0 - bl GetGroundEffectFlags_Reflection - adds r0, r4, #0 - adds r1, r5, #0 - bl GetGroundEffectFlags_LongGrassOnSpawn - adds r0, r4, #0 - adds r1, r5, #0 - bl GetGroundEffectFlags_LongGrassOnBeginStep - adds r0, r4, #0 - adds r1, r5, #0 - bl GetGroundEffectFlags_Tracks - adds r0, r4, #0 - adds r1, r5, #0 - bl GetGroundEffectFlags_SandHeap - adds r0, r4, #0 - adds r1, r5, #0 - bl GetGroundEffectFlags_ShallowFlowingWater - adds r0, r4, #0 - adds r1, r5, #0 - bl GetGroundEffectFlags_Puddle - adds r0, r4, #0 - adds r1, r5, #0 - bl GetGroundEffectFlags_ShortGrass - adds r0, r4, #0 - adds r1, r5, #0 - bl GetGroundEffectFlags_HotSprings - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end GetAllGroundEffectFlags_OnBeginStep - - thumb_func_start GetAllGroundEffectFlags_OnFinishStep -GetAllGroundEffectFlags_OnFinishStep: @ 0x08096048 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl EventObjectUpdateMetatileBehaviors - adds r0, r4, #0 - adds r1, r5, #0 - bl GetGroundEffectFlags_ShallowFlowingWater - adds r0, r4, #0 - adds r1, r5, #0 - bl GetGroundEffectFlags_SandHeap - adds r0, r4, #0 - adds r1, r5, #0 - bl GetGroundEffectFlags_Puddle - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080962C0 - adds r0, r4, #0 - adds r1, r5, #0 - bl GetGroundEffectFlags_ShortGrass - adds r0, r4, #0 - adds r1, r5, #0 - bl GetGroundEffectFlags_HotSprings - adds r0, r4, #0 - adds r1, r5, #0 - bl GetGroundEffectFlags_Seaweed - adds r0, r4, #0 - adds r1, r5, #0 - bl GetGroundEffectFlags_JumpLanding - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end GetAllGroundEffectFlags_OnFinishStep - - thumb_func_start EventObjectUpdateMetatileBehaviors -EventObjectUpdateMetatileBehaviors: @ 0x08096098 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x14 - ldrsh r0, [r4, r1] - movs r2, #0x16 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - strb r0, [r4, #0x1f] - movs r1, #0x10 - ldrsh r0, [r4, r1] - movs r2, #0x12 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - strb r0, [r4, #0x1e] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end EventObjectUpdateMetatileBehaviors - - thumb_func_start GetGroundEffectFlags_Reflection -GetGroundEffectFlags_Reflection: @ 0x080960C0 - push {r4, r5, lr} - sub sp, #8 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r0, _08096104 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, #4] - adds r0, r4, #0 - bl EventObjectCheckForReflectiveSurface - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - beq _08096108 - ldrb r1, [r4, #2] - lsls r0, r1, #0x1e - cmp r0, #0 - blt _08096112 - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r4, #2] - subs r0, r2, #1 - lsls r0, r0, #2 - add r0, sp - ldr r1, [r5] - ldr r0, [r0] - orrs r1, r0 - str r1, [r5] - b _08096112 - .align 2, 0 -_08096104: .4byte gUnknown_84E6A30 -_08096108: - ldrb r1, [r4, #2] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #2] -_08096112: - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end GetGroundEffectFlags_Reflection - - thumb_func_start GetGroundEffectFlags_TallGrassOnSpawn -GetGroundEffectFlags_TallGrassOnSpawn: @ 0x0809611C - push {r4, lr} - adds r4, r1, #0 - ldrb r0, [r0, #0x1e] - bl MetatileBehavior_IsTallGrass - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08096134 - ldr r0, [r4] - movs r1, #1 - orrs r0, r1 - str r0, [r4] -_08096134: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end GetGroundEffectFlags_TallGrassOnSpawn - - thumb_func_start GetGroundEffectFlags_LongGrassOnSpawn -GetGroundEffectFlags_LongGrassOnSpawn: @ 0x0809613C - push {r4, lr} - adds r4, r1, #0 - ldrb r0, [r0, #0x1e] - bl MetatileBehavior_IsTallGrass - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08096154 - ldr r0, [r4] - movs r1, #2 - orrs r0, r1 - str r0, [r4] -_08096154: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end GetGroundEffectFlags_LongGrassOnSpawn - - thumb_func_start sub_0809615C -sub_0809615C: @ 0x0809615C - push {r4, lr} - adds r4, r1, #0 - ldrb r0, [r0, #0x1e] - bl sub_08088DC0 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08096174 - ldr r0, [r4] - movs r1, #4 - orrs r0, r1 - str r0, [r4] -_08096174: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0809615C - - thumb_func_start GetGroundEffectFlags_LongGrassOnBeginStep -GetGroundEffectFlags_LongGrassOnBeginStep: @ 0x0809617C - push {r4, lr} - adds r4, r1, #0 - ldrb r0, [r0, #0x1e] - bl sub_08088DC0 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08096194 - ldr r0, [r4] - movs r1, #8 - orrs r0, r1 - str r0, [r4] -_08096194: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end GetGroundEffectFlags_LongGrassOnBeginStep - - thumb_func_start GetGroundEffectFlags_Tracks -GetGroundEffectFlags_Tracks: @ 0x0809619C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #0x1f] - bl MetatileBehavior_IsDeepSand - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080961B6 - ldr r0, [r5] - movs r1, #0x80 - lsls r1, r1, #1 - b _080961D2 -_080961B6: - ldrb r0, [r4, #0x1f] - bl MetatileBehavior_IsSandOrDeepSand - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080961CE - ldrb r0, [r4, #0x1f] - bl MetatileBehavior_IsFootprints - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080961D6 -_080961CE: - ldr r0, [r5] - movs r1, #0x80 -_080961D2: - orrs r0, r1 - str r0, [r5] -_080961D6: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end GetGroundEffectFlags_Tracks - - thumb_func_start GetGroundEffectFlags_SandHeap -GetGroundEffectFlags_SandHeap: @ 0x080961DC - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #0x1e] - bl MetatileBehavior_IsDeepSand - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809621A - ldrb r0, [r4, #0x1f] - bl MetatileBehavior_IsDeepSand - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809621A - ldrb r1, [r4, #2] - lsls r0, r1, #0x1b - cmp r0, #0 - blt _08096224 - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r4, #2] - ldr r0, [r5] - movs r1, #0x80 - lsls r1, r1, #4 - orrs r0, r1 - str r0, [r5] - b _08096224 -_0809621A: - ldrb r1, [r4, #2] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #2] -_08096224: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end GetGroundEffectFlags_SandHeap - - thumb_func_start GetGroundEffectFlags_ShallowFlowingWater -GetGroundEffectFlags_ShallowFlowingWater: @ 0x0809622C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #0x1e] - bl MetatileBehavior_IsShallowFlowingWater - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809624A - ldrb r0, [r4, #0x1f] - bl MetatileBehavior_IsShallowFlowingWater - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08096262 -_0809624A: - ldrb r0, [r4, #0x1e] - bl MetatileBehavior_IsPacifidlogLog - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08096280 - ldrb r0, [r4, #0x1f] - bl MetatileBehavior_IsPacifidlogLog - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08096280 -_08096262: - ldrb r1, [r4, #2] - lsls r0, r1, #0x1c - cmp r0, #0 - blt _0809628A - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r4, #2] - ldr r0, [r5] - movs r1, #0x40 - orrs r0, r1 - str r0, [r5] - b _0809628A -_08096280: - ldrb r1, [r4, #2] - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #2] -_0809628A: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end GetGroundEffectFlags_ShallowFlowingWater - - thumb_func_start GetGroundEffectFlags_Puddle -GetGroundEffectFlags_Puddle: @ 0x08096290 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #0x1e] - bl MetatileBehavior_IsPuddle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080962B8 - ldrb r0, [r4, #0x1f] - bl MetatileBehavior_IsPuddle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080962B8 - ldr r0, [r5] - movs r1, #0x80 - lsls r1, r1, #3 - orrs r0, r1 - str r0, [r5] -_080962B8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end GetGroundEffectFlags_Puddle - - thumb_func_start sub_080962C0 -sub_080962C0: @ 0x080962C0 - push {r4, lr} - adds r4, r1, #0 - ldrb r0, [r0, #0x1e] - bl MetatileBehavior_HasRipples - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080962DA - ldr r0, [r4] - movs r1, #0x80 - lsls r1, r1, #2 - orrs r0, r1 - str r0, [r4] -_080962DA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080962C0 - - thumb_func_start GetGroundEffectFlags_ShortGrass -GetGroundEffectFlags_ShortGrass: @ 0x080962E0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #0x1e] - bl MetatileBehavior_IsShortGrass - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809631E - ldrb r0, [r4, #0x1f] - bl MetatileBehavior_IsShortGrass - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809631E - ldrb r1, [r4, #2] - lsls r0, r1, #0x1d - cmp r0, #0 - blt _08096328 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r4, #2] - ldr r0, [r5] - movs r1, #0x80 - lsls r1, r1, #0xa - orrs r0, r1 - str r0, [r5] - b _08096328 -_0809631E: - ldrb r1, [r4, #2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #2] -_08096328: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end GetGroundEffectFlags_ShortGrass - - thumb_func_start GetGroundEffectFlags_HotSprings -GetGroundEffectFlags_HotSprings: @ 0x08096330 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #0x1e] - bl MetatileBehavior_IsHotSprings - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809636E - ldrb r0, [r4, #0x1f] - bl MetatileBehavior_IsHotSprings - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809636E - ldrb r1, [r4, #2] - lsls r0, r1, #0x1a - cmp r0, #0 - blt _08096378 - movs r0, #0x21 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x20 - orrs r0, r1 - strb r0, [r4, #2] - ldr r0, [r5] - movs r1, #0x80 - lsls r1, r1, #0xb - orrs r0, r1 - str r0, [r5] - b _08096378 -_0809636E: - ldrb r1, [r4, #2] - movs r0, #0x21 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #2] -_08096378: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end GetGroundEffectFlags_HotSprings - - thumb_func_start GetGroundEffectFlags_Seaweed -GetGroundEffectFlags_Seaweed: @ 0x08096380 - push {r4, lr} - adds r4, r1, #0 - ldrb r0, [r0, #0x1e] - bl MetatileBehavior_IsSeaweed - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809639A - ldr r0, [r4] - movs r1, #0x80 - lsls r1, r1, #0xc - orrs r0, r1 - str r0, [r4] -_0809639A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end GetGroundEffectFlags_Seaweed - - thumb_func_start GetGroundEffectFlags_JumpLanding -GetGroundEffectFlags_JumpLanding: @ 0x080963A0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - adds r6, r1, #0 - ldr r0, [r7] - ldr r1, _080963DC - ands r0, r1 - cmp r0, #0x20 - bne _080963F2 - movs r5, #0 - ldr r0, _080963E0 - mov r8, r0 -_080963BA: - lsls r4, r5, #2 - mov r0, r8 - adds r1, r4, r0 - ldrb r0, [r7, #0x1e] - ldr r1, [r1] - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080963E8 - ldr r0, _080963E4 - adds r0, r4, r0 - ldr r1, [r6] - ldr r0, [r0] - orrs r1, r0 - str r1, [r6] - b _080963F2 - .align 2, 0 -_080963DC: .4byte gUnknown_2000020 -_080963E0: .4byte gUnknown_84E6A38 -_080963E4: .4byte gUnknown_84E6A50 -_080963E8: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #5 - bls _080963BA -_080963F2: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end GetGroundEffectFlags_JumpLanding - - thumb_func_start EventObjectCheckForReflectiveSurface -EventObjectCheckForReflectiveSurface: @ 0x080963FC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - adds r5, r0, #0 - ldrb r0, [r5, #5] - bl GetEventObjectGraphicsInfo - movs r2, #8 - ldrsh r1, [r0, r2] - adds r1, #8 - lsls r1, r1, #0xc - lsrs r1, r1, #0x10 - str r1, [sp] - movs r1, #0xa - ldrsh r0, [r0, r1] - adds r0, #8 - lsls r0, r0, #0xc - movs r4, #0 - lsrs r2, r0, #0x10 - str r2, [sp, #4] - asrs r0, r0, #0x10 - cmp r4, r0 - blt _08096432 - b _08096538 -_08096432: - movs r0, #1 - mov sl, r0 -_08096436: - movs r1, #0x10 - ldrsh r0, [r5, r1] - movs r2, #0x12 - ldrsh r1, [r5, r2] - add r1, sl - lsls r4, r4, #0x10 - asrs r6, r4, #0x10 - adds r1, r1, r6 - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetReflectionTypeByMetatileBehavior - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r4 - cmp r0, #0 - bne _0809653A - movs r1, #0x14 - ldrsh r0, [r5, r1] - movs r2, #0x16 - ldrsh r1, [r5, r2] - add r1, sl - adds r1, r1, r6 - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetReflectionTypeByMetatileBehavior - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0809653A - movs r2, #1 - ldr r1, [sp] - lsls r0, r1, #0x10 - asrs r1, r0, #0x10 - mov r8, r0 - cmp r2, r1 - bge _08096526 - movs r0, #0x80 - lsls r0, r0, #9 - asrs r7, r0, #0x10 -_08096490: - movs r1, #0x10 - ldrsh r0, [r5, r1] - lsls r1, r2, #0x10 - asrs r4, r1, #0x10 - adds r0, r0, r4 - movs r2, #0x12 - ldrsh r1, [r5, r2] - adds r1, r1, r7 - adds r1, r1, r6 - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetReflectionTypeByMetatileBehavior - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0809653A - movs r1, #0x10 - ldrsh r0, [r5, r1] - subs r0, r0, r4 - movs r2, #0x12 - ldrsh r1, [r5, r2] - adds r1, r1, r7 - adds r1, r1, r6 - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetReflectionTypeByMetatileBehavior - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0809653A - movs r1, #0x14 - ldrsh r0, [r5, r1] - adds r0, r0, r4 - movs r2, #0x16 - ldrsh r1, [r5, r2] - adds r1, r1, r7 - adds r1, r1, r6 - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetReflectionTypeByMetatileBehavior - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0809653A - movs r1, #0x14 - ldrsh r0, [r5, r1] - subs r0, r0, r4 - movs r2, #0x16 - ldrsh r1, [r5, r2] - adds r1, r1, r7 - adds r1, r1, r6 - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetReflectionTypeByMetatileBehavior - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0809653A - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r0, r8 - blt _08096490 -_08096526: - movs r1, #0x80 - lsls r1, r1, #9 - add r1, sb - lsrs r4, r1, #0x10 - ldr r2, [sp, #4] - lsls r0, r2, #0x10 - cmp r1, r0 - bge _08096538 - b _08096436 -_08096538: - movs r0, #0 -_0809653A: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end EventObjectCheckForReflectiveSurface - - thumb_func_start GetReflectionTypeByMetatileBehavior -GetReflectionTypeByMetatileBehavior: @ 0x0809654C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl sub_08088838 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08096562 - movs r0, #1 - b _08096574 -_08096562: - adds r0, r4, #0 - bl MetatileBehavior_IsReflective - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08096572 - movs r0, #0 - b _08096574 -_08096572: - movs r0, #2 -_08096574: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetReflectionTypeByMetatileBehavior - - thumb_func_start GetLedgeJumpDirection -GetLedgeJumpDirection: @ 0x0809657C - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r4, r2, #0x18 - cmp r4, #0 - beq _080965C2 - cmp r4, #4 - bls _08096598 - subs r0, r4, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_08096598: - subs r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080965C8 - lsls r1, r4, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080965CC -_080965C2: - movs r0, #0 - b _080965D2 - .align 2, 0 -_080965C8: .4byte gUnknown_84E6A68 -_080965CC: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_080965D2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetLedgeJumpDirection - - thumb_func_start SetEventObjectSpriteOamTableForLongGrass -SetEventObjectSpriteOamTableForLongGrass: @ 0x080965D8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - ldrb r0, [r5] - lsls r0, r0, #0x1b - cmp r0, #0 - blt _0809662C - ldrb r0, [r5, #0x1e] - bl sub_08088DC0 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809662C - ldrb r0, [r5, #0x1f] - bl sub_08088DC0 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809662C - adds r4, #0x42 - ldrb r1, [r4] - movs r6, #0x40 - rsbs r6, r6, #0 - adds r0, r6, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r4] - ldrb r0, [r5, #0xb] - lsrs r0, r0, #4 - bl sub_08096718 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809662C - ldrb r0, [r4] - adds r1, r6, #0 - ands r1, r0 - movs r0, #5 - orrs r1, r0 - strb r1, [r4] -_0809662C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetEventObjectSpriteOamTableForLongGrass - - thumb_func_start IsZCoordMismatchAt -IsZCoordMismatchAt: @ 0x08096634 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r0, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r1, r2, #0x10 - cmp r4, #0 - beq _08096662 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl MapGridGetZCoordAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _08096662 - cmp r0, #0xf - beq _08096662 - cmp r0, r4 - bne _08096666 -_08096662: - movs r0, #0 - b _08096668 -_08096666: - movs r0, #1 -_08096668: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsZCoordMismatchAt - - thumb_func_start UpdateEventObjectZCoordAndPriority -UpdateEventObjectZCoordAndPriority: @ 0x08096670 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #3] - lsls r0, r0, #0x1d - cmp r0, #0 - blt _080966BE - adds r0, r4, #0 - bl EventObjectUpdateZCoord - ldr r1, _080966C4 - ldrb r2, [r4, #0xb] - lsls r2, r2, #0x18 - lsrs r0, r2, #0x1c - adds r0, r0, r1 - ldrb r0, [r0] - adds r4, r5, #0 - adds r4, #0x42 - movs r1, #0x3f - ands r1, r0 - ldrb r3, [r4] - movs r0, #0x40 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r4] - ldr r0, _080966C8 - lsrs r2, r2, #0x1c - adds r2, r2, r0 - movs r0, #3 - ldrb r1, [r2] - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r5, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #5] -_080966BE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080966C4: .4byte gUnknown_84E6A98 -_080966C8: .4byte gUnknown_84E6A88 - thumb_func_end UpdateEventObjectZCoordAndPriority - - thumb_func_start InitObjectPriorityByZCoord -InitObjectPriorityByZCoord: @ 0x080966CC - push {r4, lr} - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _08096710 - adds r2, r1, r2 - ldrb r2, [r2] - movs r3, #0x42 - adds r3, r3, r0 - mov ip, r3 - movs r3, #0x3f - ands r3, r2 - mov r2, ip - ldrb r4, [r2] - movs r2, #0x40 - rsbs r2, r2, #0 - ands r2, r4 - orrs r2, r3 - mov r3, ip - strb r2, [r3] - ldr r2, _08096714 - adds r1, r1, r2 - movs r3, #3 - ldrb r2, [r1] - ands r2, r3 - lsls r2, r2, #2 - ldrb r3, [r0, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r3 - orrs r1, r2 - strb r1, [r0, #5] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08096710: .4byte gUnknown_84E6A98 -_08096714: .4byte gUnknown_84E6A88 - thumb_func_end InitObjectPriorityByZCoord - - thumb_func_start sub_08096718 -sub_08096718: @ 0x08096718 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08096724 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08096724: .4byte gUnknown_84E6A88 - thumb_func_end sub_08096718 - - thumb_func_start EventObjectUpdateZCoord -EventObjectUpdateZCoord: @ 0x08096728 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x10 - ldrsh r0, [r4, r1] - movs r2, #0x12 - ldrsh r1, [r4, r2] - bl MapGridGetZCoordAt - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r1, #0x14 - ldrsh r0, [r4, r1] - movs r2, #0x16 - ldrsh r1, [r4, r2] - bl MapGridGetZCoordAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r5, #0xf - beq _08096776 - cmp r0, #0xf - beq _08096776 - movs r3, #0xf - adds r0, r5, #0 - ands r0, r3 - ldrb r1, [r4, #0xb] - movs r2, #0x10 - rsbs r2, r2, #0 - ands r2, r1 - orrs r2, r0 - strb r2, [r4, #0xb] - cmp r5, #0 - beq _08096776 - cmp r5, #0xf - beq _08096776 - lsls r0, r5, #4 - ands r2, r3 - orrs r2, r0 - strb r2, [r4, #0xb] -_08096776: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end EventObjectUpdateZCoord - - thumb_func_start SetObjectSubpriorityByZCoord -SetObjectSubpriorityByZCoord: @ 0x0809677C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r3, r1, #0 - adds r3, #0x29 - movs r5, #0 - ldrsb r5, [r3, r5] - ldrh r4, [r1, #0x22] - ldr r3, _080967BC - subs r4, r4, r5 - ldrh r3, [r3] - adds r4, r4, r3 - adds r4, #8 - movs r3, #0xff - ands r4, r3 - lsrs r4, r4, #4 - movs r3, #0x10 - subs r3, r3, r4 - lsls r3, r3, #0x11 - ldr r4, _080967C0 - adds r0, r0, r4 - lsrs r3, r3, #0x10 - ldrb r0, [r0] - adds r3, r3, r0 - adds r2, r2, r3 - adds r1, #0x43 - strb r2, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080967BC: .4byte gUnknown_2021B3A -_080967C0: .4byte gUnknown_84E6A78 - thumb_func_end SetObjectSubpriorityByZCoord - - thumb_func_start EventObjectUpdateSubpriority -EventObjectUpdateSubpriority: @ 0x080967C4 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x1d - cmp r0, #0 - blt _080967DA - ldrb r0, [r2, #0xb] - lsrs r0, r0, #4 - movs r2, #1 - bl SetObjectSubpriorityByZCoord -_080967DA: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end EventObjectUpdateSubpriority - - thumb_func_start AreZCoordsCompatible -AreZCoordsCompatible: @ 0x080967E0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r0, #0 - beq _080967F6 - cmp r1, #0 - beq _080967F6 - cmp r0, r1 - bne _080967FA -_080967F6: - movs r0, #1 - b _080967FC -_080967FA: - movs r0, #0 -_080967FC: - pop {r1} - bx r1 - thumb_func_end AreZCoordsCompatible - - thumb_func_start GroundEffect_SpawnOnTallGrass -GroundEffect_SpawnOnTallGrass: @ 0x08096800 - push {lr} - ldr r3, _08096844 - movs r2, #0x10 - ldrsh r1, [r0, r2] - str r1, [r3] - movs r2, #0x12 - ldrsh r1, [r0, r2] - str r1, [r3, #4] - ldrb r1, [r0, #0xb] - lsrs r1, r1, #4 - str r1, [r3, #8] - movs r1, #2 - str r1, [r3, #0xc] - ldrb r1, [r0, #8] - lsls r1, r1, #8 - ldrb r2, [r0, #9] - orrs r1, r2 - str r1, [r3, #0x10] - ldrb r0, [r0, #0xa] - str r0, [r3, #0x14] - ldr r0, _08096848 - ldr r1, [r0] - ldrb r0, [r1, #5] - lsls r0, r0, #8 - ldrb r1, [r1, #4] - orrs r0, r1 - str r0, [r3, #0x18] - movs r0, #1 - str r0, [r3, #0x1c] - movs r0, #4 - bl FieldEffectStart - pop {r0} - bx r0 - .align 2, 0 -_08096844: .4byte gUnknown_20388A8 -_08096848: .4byte gUnknown_3005AEC - thumb_func_end GroundEffect_SpawnOnTallGrass - - thumb_func_start GroundEffect_StepOnTallGrass -GroundEffect_StepOnTallGrass: @ 0x0809684C - push {lr} - ldr r3, _08096890 - movs r2, #0x10 - ldrsh r1, [r0, r2] - str r1, [r3] - movs r2, #0x12 - ldrsh r1, [r0, r2] - str r1, [r3, #4] - ldrb r1, [r0, #0xb] - lsrs r1, r1, #4 - str r1, [r3, #8] - movs r1, #2 - str r1, [r3, #0xc] - ldrb r1, [r0, #8] - lsls r1, r1, #8 - ldrb r2, [r0, #9] - orrs r1, r2 - str r1, [r3, #0x10] - ldrb r0, [r0, #0xa] - str r0, [r3, #0x14] - ldr r0, _08096894 - ldr r1, [r0] - ldrb r0, [r1, #5] - lsls r0, r0, #8 - ldrb r1, [r1, #4] - orrs r0, r1 - str r0, [r3, #0x18] - movs r0, #0 - str r0, [r3, #0x1c] - movs r0, #4 - bl FieldEffectStart - pop {r0} - bx r0 - .align 2, 0 -_08096890: .4byte gUnknown_20388A8 -_08096894: .4byte gUnknown_3005AEC - thumb_func_end GroundEffect_StepOnTallGrass - - thumb_func_start GroundEffect_SpawnOnLongGrass -GroundEffect_SpawnOnLongGrass: @ 0x08096898 - push {lr} - ldr r3, _080968DC - movs r2, #0x10 - ldrsh r1, [r0, r2] - str r1, [r3] - movs r2, #0x12 - ldrsh r1, [r0, r2] - str r1, [r3, #4] - ldrb r1, [r0, #0xb] - lsrs r1, r1, #4 - str r1, [r3, #8] - movs r1, #2 - str r1, [r3, #0xc] - ldrb r1, [r0, #8] - lsls r1, r1, #8 - ldrb r2, [r0, #9] - orrs r1, r2 - str r1, [r3, #0x10] - ldrb r0, [r0, #0xa] - str r0, [r3, #0x14] - ldr r0, _080968E0 - ldr r1, [r0] - ldrb r0, [r1, #5] - lsls r0, r0, #8 - ldrb r1, [r1, #4] - orrs r0, r1 - str r0, [r3, #0x18] - movs r0, #1 - str r0, [r3, #0x1c] - movs r0, #0x11 - bl FieldEffectStart - pop {r0} - bx r0 - .align 2, 0 -_080968DC: .4byte gUnknown_20388A8 -_080968E0: .4byte gUnknown_3005AEC - thumb_func_end GroundEffect_SpawnOnLongGrass - - thumb_func_start GroundEffect_StepOnLongGrass -GroundEffect_StepOnLongGrass: @ 0x080968E4 - push {lr} - ldr r3, _08096928 - movs r2, #0x10 - ldrsh r1, [r0, r2] - str r1, [r3] - movs r2, #0x12 - ldrsh r1, [r0, r2] - str r1, [r3, #4] - ldrb r1, [r0, #0xb] - lsrs r1, r1, #4 - str r1, [r3, #8] - movs r1, #2 - str r1, [r3, #0xc] - ldrb r1, [r0, #8] - lsls r1, r1, #8 - ldrb r2, [r0, #9] - orrs r1, r2 - str r1, [r3, #0x10] - ldrb r0, [r0, #0xa] - str r0, [r3, #0x14] - ldr r0, _0809692C - ldr r1, [r0] - ldrb r0, [r1, #5] - lsls r0, r0, #8 - ldrb r1, [r1, #4] - orrs r0, r1 - str r0, [r3, #0x18] - movs r0, #0 - str r0, [r3, #0x1c] - movs r0, #0x11 - bl FieldEffectStart - pop {r0} - bx r0 - .align 2, 0 -_08096928: .4byte gUnknown_20388A8 -_0809692C: .4byte gUnknown_3005AEC - thumb_func_end GroundEffect_StepOnLongGrass - - thumb_func_start GroundEffect_WaterReflection -GroundEffect_WaterReflection: @ 0x08096930 - push {lr} - movs r2, #0 - bl SetUpReflection - pop {r0} - bx r0 - thumb_func_end GroundEffect_WaterReflection - - thumb_func_start GroundEffect_IceReflection -GroundEffect_IceReflection: @ 0x0809693C - push {lr} - movs r2, #1 - bl SetUpReflection - pop {r0} - bx r0 - thumb_func_end GroundEffect_IceReflection - - thumb_func_start GroundEffect_FlowingWater -GroundEffect_FlowingWater: @ 0x08096948 - push {lr} - adds r1, r0, #0 - movs r0, #0x22 - bl sub_08097758 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end GroundEffect_FlowingWater - - thumb_func_start GroundEffect_SandTracks -GroundEffect_SandTracks: @ 0x08096958 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #5] - bl GetEventObjectGraphicsInfo - ldr r1, _08096980 - ldrb r0, [r0, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r3, [r0] - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0 - bl _call_via_r3 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08096980: .4byte gUnknown_84E6AA8 - thumb_func_end GroundEffect_SandTracks - - thumb_func_start sub_08096984 -sub_08096984: @ 0x08096984 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #5] - bl GetEventObjectGraphicsInfo - ldr r1, _080969AC - ldrb r0, [r0, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r3, [r0] - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #1 - bl _call_via_r3 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080969AC: .4byte gUnknown_84E6AA8 - thumb_func_end sub_08096984 - - thumb_func_start sub_080969B0 -sub_080969B0: @ 0x080969B0 - bx lr - .align 2, 0 - thumb_func_end sub_080969B0 - - thumb_func_start DoTracksGroundEffect_Footprints -DoTracksGroundEffect_Footprints: @ 0x080969B4 - push {r4, r5, lr} - sub sp, #4 - adds r5, r0, #0 - lsls r4, r2, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _080969FC - mov r0, sp - movs r2, #4 - bl memcpy - ldr r1, _08096A00 - movs r2, #0x14 - ldrsh r0, [r5, r2] - str r0, [r1] - movs r2, #0x16 - ldrsh r0, [r5, r2] - str r0, [r1, #4] - movs r0, #0x95 - str r0, [r1, #8] - movs r0, #2 - str r0, [r1, #0xc] - ldrb r0, [r5, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - str r0, [r1, #0x10] - lsls r4, r4, #1 - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - bl FieldEffectStart - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080969FC: .4byte gUnknown_84E6AB4 -_08096A00: .4byte gUnknown_20388A8 - thumb_func_end DoTracksGroundEffect_Footprints - - thumb_func_start DoTracksGroundEffect_BikeTireTracks -DoTracksGroundEffect_BikeTireTracks: @ 0x08096A04 - push {r4, lr} - adds r4, r0, #0 - ldr r1, [r4, #0x10] - ldr r0, [r4, #0x14] - cmp r1, r0 - beq _08096A46 - ldr r2, _08096A4C - movs r1, #0x14 - ldrsh r0, [r4, r1] - str r0, [r2] - movs r1, #0x16 - ldrsh r0, [r4, r1] - str r0, [r2, #4] - movs r0, #0x95 - str r0, [r2, #8] - movs r0, #2 - str r0, [r2, #0xc] - ldr r3, _08096A50 - ldrb r1, [r4, #0x18] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - adds r0, r4, #0 - adds r0, #0x20 - ldrb r0, [r0] - lsls r0, r0, #2 - subs r0, #5 - adds r1, r1, r0 - adds r1, r1, r3 - ldrb r0, [r1] - str r0, [r2, #0x10] - movs r0, #0x23 - bl FieldEffectStart -_08096A46: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08096A4C: .4byte gUnknown_20388A8 -_08096A50: .4byte gUnknown_84E6AB8 - thumb_func_end DoTracksGroundEffect_BikeTireTracks - - thumb_func_start sub_08096A54 -sub_08096A54: @ 0x08096A54 - push {lr} - bl DoRippleFieldEffect - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08096A54 - - thumb_func_start GroundEffect_StepOnPuddle -GroundEffect_StepOnPuddle: @ 0x08096A60 - push {lr} - adds r1, r0, #0 - movs r0, #0xf - bl sub_08097758 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end GroundEffect_StepOnPuddle - - thumb_func_start GroundEffect_SandHeap -GroundEffect_SandHeap: @ 0x08096A70 - push {lr} - adds r1, r0, #0 - movs r0, #0x27 - bl sub_08097758 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end GroundEffect_SandHeap - - thumb_func_start GroundEffect_JumpOnTallGrass -GroundEffect_JumpOnTallGrass: @ 0x08096A80 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r5, r0, #0 - adds r6, r1, #0 - ldr r1, _08096AD4 - movs r2, #0x10 - ldrsh r0, [r5, r2] - str r0, [r1] - movs r4, #0x12 - ldrsh r0, [r5, r4] - str r0, [r1, #4] - ldrb r0, [r5, #0xb] - lsrs r0, r0, #4 - str r0, [r1, #8] - movs r0, #2 - str r0, [r1, #0xc] - movs r0, #0xc - bl FieldEffectStart - ldrb r0, [r5, #8] - ldrb r1, [r5, #9] - ldrb r2, [r5, #0xa] - movs r7, #0x10 - ldrsh r3, [r5, r7] - movs r7, #0x12 - ldrsh r4, [r5, r7] - str r4, [sp] - bl FindTallGrassFieldEffectSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - bne _08096ACA - adds r0, r5, #0 - adds r1, r6, #0 - bl GroundEffect_SpawnOnTallGrass -_08096ACA: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08096AD4: .4byte gUnknown_20388A8 - thumb_func_end GroundEffect_JumpOnTallGrass - - thumb_func_start GroundEffect_JumpOnLongGrass -GroundEffect_JumpOnLongGrass: @ 0x08096AD8 - push {lr} - ldr r2, _08096AFC - movs r3, #0x10 - ldrsh r1, [r0, r3] - str r1, [r2] - movs r3, #0x12 - ldrsh r1, [r0, r3] - str r1, [r2, #4] - ldrb r0, [r0, #0xb] - lsrs r0, r0, #4 - str r0, [r2, #8] - movs r0, #2 - str r0, [r2, #0xc] - movs r0, #0x12 - bl FieldEffectStart - pop {r0} - bx r0 - .align 2, 0 -_08096AFC: .4byte gUnknown_20388A8 - thumb_func_end GroundEffect_JumpOnLongGrass - - thumb_func_start GroundEffect_JumpOnShallowWater -GroundEffect_JumpOnShallowWater: @ 0x08096B00 - push {r4, lr} - ldr r3, _08096B2C - movs r4, #0x10 - ldrsh r2, [r0, r4] - str r2, [r3] - movs r4, #0x12 - ldrsh r2, [r0, r4] - str r2, [r3, #4] - ldrb r0, [r0, #0xb] - lsrs r0, r0, #4 - str r0, [r3, #8] - ldrb r0, [r1, #5] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1e - str r0, [r3, #0xc] - movs r0, #0x10 - bl FieldEffectStart - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08096B2C: .4byte gUnknown_20388A8 - thumb_func_end GroundEffect_JumpOnShallowWater - - thumb_func_start GroundEffect_JumpOnWater -GroundEffect_JumpOnWater: @ 0x08096B30 - push {r4, lr} - ldr r3, _08096B5C - movs r4, #0x10 - ldrsh r2, [r0, r4] - str r2, [r3] - movs r4, #0x12 - ldrsh r2, [r0, r4] - str r2, [r3, #4] - ldrb r0, [r0, #0xb] - lsrs r0, r0, #4 - str r0, [r3, #8] - ldrb r0, [r1, #5] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1e - str r0, [r3, #0xc] - movs r0, #0xe - bl FieldEffectStart - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08096B5C: .4byte gUnknown_20388A8 - thumb_func_end GroundEffect_JumpOnWater - - thumb_func_start GroundEffect_JumpLandingDust -GroundEffect_JumpLandingDust: @ 0x08096B60 - push {r4, lr} - ldr r3, _08096B8C - movs r4, #0x10 - ldrsh r2, [r0, r4] - str r2, [r3] - movs r4, #0x12 - ldrsh r2, [r0, r4] - str r2, [r3, #4] - ldrb r0, [r0, #0xb] - lsrs r0, r0, #4 - str r0, [r3, #8] - ldrb r0, [r1, #5] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1e - str r0, [r3, #0xc] - movs r0, #0xa - bl FieldEffectStart - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08096B8C: .4byte gUnknown_20388A8 - thumb_func_end GroundEffect_JumpLandingDust - - thumb_func_start GroundEffect_ShortGrass -GroundEffect_ShortGrass: @ 0x08096B90 - push {lr} - adds r1, r0, #0 - movs r0, #0x29 - bl sub_08097758 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end GroundEffect_ShortGrass - - thumb_func_start GroundEffect_HotSprings -GroundEffect_HotSprings: @ 0x08096BA0 - push {lr} - adds r1, r0, #0 - movs r0, #0x2a - bl sub_08097758 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end GroundEffect_HotSprings - - thumb_func_start GroundEffect_Seaweed -GroundEffect_Seaweed: @ 0x08096BB0 - push {lr} - ldr r2, _08096BCC - movs r3, #0x10 - ldrsh r1, [r0, r3] - str r1, [r2] - movs r1, #0x12 - ldrsh r0, [r0, r1] - str r0, [r2, #4] - movs r0, #0x35 - bl FieldEffectStart - pop {r0} - bx r0 - .align 2, 0 -_08096BCC: .4byte gUnknown_20388A8 - thumb_func_end GroundEffect_Seaweed - - thumb_func_start DoFlaggedGroundEffects -DoFlaggedGroundEffects: @ 0x08096BD0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - adds r7, r1, #0 - adds r5, r2, #0 - bl EventObjectIsFarawayIslandMew - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08096BF4 - adds r0, r6, #0 - bl sub_081D40D8 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08096C1C -_08096BF4: - movs r4, #0 - ldr r0, _08096C28 - mov r8, r0 -_08096BFA: - movs r0, #1 - ands r0, r5 - cmp r0, #0 - beq _08096C10 - lsls r0, r4, #2 - add r0, r8 - ldr r2, [r0] - adds r0, r6, #0 - adds r1, r7, #0 - bl _call_via_r2 -_08096C10: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsrs r5, r5, #1 - cmp r4, #0x13 - bls _08096BFA -_08096C1C: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08096C28: .4byte gUnknown_84E6AC8 - thumb_func_end DoFlaggedGroundEffects - - thumb_func_start filters_out_some_ground_effects -filters_out_some_ground_effects: @ 0x08096C2C - push {lr} - adds r2, r0, #0 - adds r3, r1, #0 - ldrb r0, [r2] - lsls r0, r0, #0x1b - cmp r0, #0 - bge _08096C5A - ldrb r1, [r2, #2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - adds r1, #8 - ands r0, r1 - subs r1, #0x18 - ands r0, r1 - strb r0, [r2, #2] - ldr r0, [r3] - ldr r1, _08096C60 - ands r0, r1 - str r0, [r3] -_08096C5A: - pop {r0} - bx r0 - .align 2, 0 -_08096C60: .4byte 0xFFF9F7BD - thumb_func_end filters_out_some_ground_effects - - thumb_func_start FilterOutStepOnPuddleGroundEffectIfJumping -FilterOutStepOnPuddleGroundEffectIfJumping: @ 0x08096C64 - push {lr} - adds r2, r1, #0 - ldrb r0, [r0] - lsls r0, r0, #0x1a - cmp r0, #0 - bge _08096C78 - ldr r0, [r2] - ldr r1, _08096C7C - ands r0, r1 - str r0, [r2] -_08096C78: - pop {r0} - bx r0 - .align 2, 0 -_08096C7C: .4byte 0xFFFFFBFF - thumb_func_end FilterOutStepOnPuddleGroundEffectIfJumping - - thumb_func_start DoGroundEffects_OnSpawn -DoGroundEffects_OnSpawn: @ 0x08096C80 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4] - lsls r0, r0, #0x1d - cmp r0, #0 - bge _08096CC4 - movs r0, #0 - str r0, [sp] - adds r0, r4, #0 - bl UpdateEventObjectZCoordAndPriority - adds r0, r4, #0 - mov r1, sp - bl GetAllGroundEffectFlags_OnSpawn - adds r0, r4, #0 - adds r1, r5, #0 - bl SetEventObjectSpriteOamTableForLongGrass - ldr r2, [sp] - adds r0, r4, #0 - adds r1, r5, #0 - bl DoFlaggedGroundEffects - ldrb r1, [r4] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r4] -_08096CC4: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end DoGroundEffects_OnSpawn - - thumb_func_start DoGroundEffects_OnBeginStep -DoGroundEffects_OnBeginStep: @ 0x08096CCC - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4] - lsls r0, r0, #0x1d - cmp r0, #0 - bge _08096D18 - movs r0, #0 - str r0, [sp] - adds r0, r4, #0 - bl UpdateEventObjectZCoordAndPriority - adds r0, r4, #0 - mov r1, sp - bl GetAllGroundEffectFlags_OnBeginStep - adds r0, r4, #0 - adds r1, r5, #0 - bl SetEventObjectSpriteOamTableForLongGrass - adds r0, r4, #0 - mov r1, sp - bl filters_out_some_ground_effects - ldr r2, [sp] - adds r0, r4, #0 - adds r1, r5, #0 - bl DoFlaggedGroundEffects - ldrb r1, [r4] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r4] -_08096D18: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end DoGroundEffects_OnBeginStep - - thumb_func_start DoGroundEffects_OnFinishStep -DoGroundEffects_OnFinishStep: @ 0x08096D20 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4] - lsls r0, r0, #0x1c - cmp r0, #0 - bge _08096D6C - movs r0, #0 - str r0, [sp] - adds r0, r4, #0 - bl UpdateEventObjectZCoordAndPriority - adds r0, r4, #0 - mov r1, sp - bl GetAllGroundEffectFlags_OnFinishStep - adds r0, r4, #0 - adds r1, r5, #0 - bl SetEventObjectSpriteOamTableForLongGrass - adds r0, r4, #0 - mov r1, sp - bl FilterOutStepOnPuddleGroundEffectIfJumping - ldr r2, [sp] - adds r0, r4, #0 - adds r1, r5, #0 - bl DoFlaggedGroundEffects - ldrb r1, [r4] - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x21 - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r4] -_08096D6C: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end DoGroundEffects_OnFinishStep - - thumb_func_start FreezeEventObject -FreezeEventObject: @ 0x08096D74 - push {r4, r5, lr} - adds r5, r0, #0 - ldrh r1, [r5] - movs r0, #0xa0 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08096DFC - ldrb r0, [r5, #1] - movs r4, #1 - orrs r0, r4 - strb r0, [r5, #1] - ldr r3, _08096DF8 - ldrb r1, [r5, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x2c - ldrb r1, [r0] - lsls r1, r1, #0x19 - lsrs r1, r1, #0x1f - lsls r1, r1, #7 - ldrb r2, [r5, #2] - movs r0, #0x7f - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #2] - ldrb r1, [r5, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x2c - ldrb r1, [r0] - lsrs r1, r1, #7 - ands r1, r4 - ldrb r2, [r5, #3] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #3] - ldrb r1, [r5, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x2c - ldrb r1, [r0] - movs r2, #0x40 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r5, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x2c - ldrb r1, [r0] - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0] - movs r0, #0 - b _08096DFE - .align 2, 0 -_08096DF8: .4byte gUnknown_20205AC -_08096DFC: - movs r0, #1 -_08096DFE: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end FreezeEventObject - - thumb_func_start FreezeEventObjects -FreezeEventObjects: @ 0x08096E04 - push {r4, r5, lr} - movs r4, #0 - ldr r5, _08096E38 -_08096E0A: - lsls r0, r4, #3 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r1, r0, r5 - ldrb r0, [r1] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _08096E28 - ldr r0, _08096E3C - ldrb r0, [r0, #5] - cmp r4, r0 - beq _08096E28 - adds r0, r1, #0 - bl FreezeEventObject -_08096E28: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xf - bls _08096E0A - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08096E38: .4byte gUnknown_2036FF0 -_08096E3C: .4byte gUnknown_2037230 - thumb_func_end FreezeEventObjects - - thumb_func_start FreezeEventObjectsExceptOne -FreezeEventObjectsExceptOne: @ 0x08096E40 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r4, #0 - ldr r6, _08096E7C -_08096E4A: - cmp r4, r5 - beq _08096E6C - lsls r0, r4, #3 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r1, r0, r6 - ldrb r0, [r1] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _08096E6C - ldr r0, _08096E80 - ldrb r0, [r0, #5] - cmp r4, r0 - beq _08096E6C - adds r0, r1, #0 - bl FreezeEventObject -_08096E6C: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xf - bls _08096E4A - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08096E7C: .4byte gUnknown_2036FF0 -_08096E80: .4byte gUnknown_2037230 - thumb_func_end FreezeEventObjectsExceptOne - - thumb_func_start UnfreezeEventObject -UnfreezeEventObject: @ 0x08096E84 - push {r4, r5, lr} - adds r5, r0, #0 - ldrh r2, [r5] - ldr r1, _08096EE4 - adds r0, r1, #0 - ands r0, r2 - cmp r0, r1 - bne _08096EDC - ldrb r1, [r5, #1] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r5, #1] - ldr r4, _08096EE8 - ldrb r0, [r5, #4] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r2, [r5, #2] - adds r1, #0x2c - lsrs r2, r2, #7 - lsls r2, r2, #6 - ldrb r3, [r1] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1] - ldrb r0, [r5, #4] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r4 - ldrb r1, [r5, #3] - lsls r1, r1, #0x1f - lsrs r1, r1, #0x1f - adds r2, #0x2c - lsls r1, r1, #7 - ldrb r3, [r2] - movs r0, #0x7f - ands r0, r3 - orrs r0, r1 - strb r0, [r2] -_08096EDC: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08096EE4: .4byte 0x00000101 -_08096EE8: .4byte gUnknown_20205AC - thumb_func_end UnfreezeEventObject - - thumb_func_start UnfreezeEventObjects -UnfreezeEventObjects: @ 0x08096EEC - push {r4, r5, lr} - movs r4, #0 - ldr r5, _08096F18 -_08096EF2: - lsls r0, r4, #3 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r1, r0, r5 - ldrb r0, [r1] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _08096F08 - adds r0, r1, #0 - bl UnfreezeEventObject -_08096F08: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xf - bls _08096EF2 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08096F18: .4byte gUnknown_2036FF0 - thumb_func_end UnfreezeEventObjects - - thumb_func_start Step1 -Step1: @ 0x08096F1C - lsls r1, r1, #0x18 - ldr r2, _08096F38 - lsrs r1, r1, #0x16 - adds r1, r1, r2 - ldrh r2, [r1] - ldrh r3, [r0, #0x20] - adds r2, r2, r3 - strh r2, [r0, #0x20] - ldrh r1, [r1, #2] - ldrh r2, [r0, #0x22] - adds r1, r1, r2 - strh r1, [r0, #0x22] - bx lr - .align 2, 0 -_08096F38: .4byte gUnknown_84E5FD0 - thumb_func_end Step1 - - thumb_func_start Step2 -Step2: @ 0x08096F3C - lsls r1, r1, #0x18 - ldr r2, _08096F5C - lsrs r1, r1, #0x16 - adds r1, r1, r2 - ldrh r2, [r1] - lsls r2, r2, #1 - ldrh r3, [r0, #0x20] - adds r2, r2, r3 - strh r2, [r0, #0x20] - ldrh r1, [r1, #2] - lsls r1, r1, #1 - ldrh r2, [r0, #0x22] - adds r1, r1, r2 - strh r1, [r0, #0x22] - bx lr - .align 2, 0 -_08096F5C: .4byte gUnknown_84E5FD0 - thumb_func_end Step2 - - thumb_func_start Step3 -Step3: @ 0x08096F60 - lsls r1, r1, #0x18 - ldr r2, _08096F84 - lsrs r1, r1, #0x16 - adds r1, r1, r2 - ldrh r2, [r1] - lsls r3, r2, #1 - adds r2, r2, r3 - ldrh r3, [r0, #0x20] - adds r2, r2, r3 - strh r2, [r0, #0x20] - ldrh r1, [r1, #2] - lsls r2, r1, #1 - adds r1, r1, r2 - ldrh r2, [r0, #0x22] - adds r1, r1, r2 - strh r1, [r0, #0x22] - bx lr - .align 2, 0 -_08096F84: .4byte gUnknown_84E5FD0 - thumb_func_end Step3 - - thumb_func_start Step4 -Step4: @ 0x08096F88 - lsls r1, r1, #0x18 - ldr r2, _08096FA8 - lsrs r1, r1, #0x16 - adds r1, r1, r2 - ldrh r2, [r1] - lsls r2, r2, #2 - ldrh r3, [r0, #0x20] - adds r2, r2, r3 - strh r2, [r0, #0x20] - ldrh r1, [r1, #2] - lsls r1, r1, #2 - ldrh r2, [r0, #0x22] - adds r1, r1, r2 - strh r1, [r0, #0x22] - bx lr - .align 2, 0 -_08096FA8: .4byte gUnknown_84E5FD0 - thumb_func_end Step4 - - thumb_func_start Step8 -Step8: @ 0x08096FAC - lsls r1, r1, #0x18 - ldr r2, _08096FCC - lsrs r1, r1, #0x16 - adds r1, r1, r2 - ldrh r2, [r1] - lsls r2, r2, #3 - ldrh r3, [r0, #0x20] - adds r2, r2, r3 - strh r2, [r0, #0x20] - ldrh r1, [r1, #2] - lsls r1, r1, #3 - ldrh r2, [r0, #0x22] - adds r1, r1, r2 - strh r1, [r0, #0x22] - bx lr - .align 2, 0 -_08096FCC: .4byte gUnknown_84E5FD0 - thumb_func_end Step8 - - thumb_func_start oamt_npc_ministep_reset -oamt_npc_ministep_reset: @ 0x08096FD0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r3, #0 - strh r1, [r0, #0x34] - strh r2, [r0, #0x36] - strh r3, [r0, #0x38] - bx lr - .align 2, 0 - thumb_func_end oamt_npc_ministep_reset - - thumb_func_start obj_npc_ministep -obj_npc_ministep: @ 0x08096FE4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _0809703C - movs r0, #0x36 - ldrsh r2, [r4, r0] - lsls r0, r2, #1 - adds r0, r0, r5 - movs r3, #0x38 - ldrsh r1, [r4, r3] - movs r3, #0 - ldrsh r0, [r0, r3] - cmp r1, r0 - bge _08097044 - ldr r1, _08097040 - lsls r0, r2, #2 - adds r0, r0, r1 - movs r1, #0x38 - ldrsh r2, [r4, r1] - ldr r0, [r0] - lsls r2, r2, #2 - adds r2, r2, r0 - ldrh r1, [r4, #0x34] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, [r2] - adds r0, r4, #0 - bl _call_via_r2 - ldrh r0, [r4, #0x38] - adds r0, #1 - strh r0, [r4, #0x38] - movs r2, #0x36 - ldrsh r1, [r4, r2] - lsls r1, r1, #1 - adds r1, r1, r5 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r3, #0 - ldrsh r1, [r1, r3] - cmp r0, r1 - blt _08097044 - movs r0, #1 - b _08097046 - .align 2, 0 -_0809703C: .4byte gUnknown_84E6BBC -_08097040: .4byte gUnknown_84E6BA8 -_08097044: - movs r0, #0 -_08097046: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end obj_npc_ministep - - thumb_func_start sub_0809704C -sub_0809704C: @ 0x0809704C - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r2, #0 - strh r1, [r0, #0x34] - strh r2, [r0, #0x36] - strh r2, [r0, #0x38] - bx lr - .align 2, 0 - thumb_func_end sub_0809704C - - thumb_func_start sub_0809705C -sub_0809705C: @ 0x0809705C - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x36] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0809707C - ldrh r1, [r4, #0x34] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl Step1 - ldrh r0, [r4, #0x38] - adds r0, #1 - strh r0, [r4, #0x38] -_0809707C: - ldrh r0, [r4, #0x36] - adds r0, #1 - strh r0, [r4, #0x36] - movs r1, #0x38 - ldrsh r0, [r4, r1] - cmp r0, #0xf - bgt _0809708E - movs r0, #0 - b _08097090 -_0809708E: - movs r0, #1 -_08097090: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0809705C - - thumb_func_start sub_08097098 -sub_08097098: @ 0x08097098 - ldr r1, _080970A8 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - bx lr - .align 2, 0 -_080970A8: .4byte gUnknown_84E6C0E - thumb_func_end sub_08097098 - - thumb_func_start sub_080970AC -sub_080970AC: @ 0x080970AC - ldr r1, _080970BC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - bx lr - .align 2, 0 -_080970BC: .4byte gUnknown_84E6BC6 - thumb_func_end sub_080970AC - - thumb_func_start sub_080970C0 -sub_080970C0: @ 0x080970C0 - movs r1, #0 - strh r1, [r0, #0x3a] - strh r1, [r0, #0x3c] - bx lr - thumb_func_end sub_080970C0 - - thumb_func_start sub_080970C8 -sub_080970C8: @ 0x080970C8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r6, #0 - movs r1, #0x3c - ldrsh r0, [r5, r1] - cmp r0, #1 - beq _080970FE - cmp r0, #1 - bgt _080970E0 - cmp r0, #0 - beq _080970EA - b _08097162 -_080970E0: - cmp r0, #2 - beq _08097126 - cmp r0, #3 - beq _0809713A - b _08097162 -_080970EA: - movs r2, #0x3a - ldrsh r0, [r5, r2] - bl sub_080970AC - ldrh r1, [r5, #0x24] - adds r0, r0, r1 - strh r0, [r5, #0x24] - movs r2, #0x3a - ldrsh r0, [r5, r2] - b _08097158 -_080970FE: - ldrh r0, [r5, #0x3a] - movs r4, #0x47 - subs r0, r4, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - bl sub_080970AC - ldrh r1, [r5, #0x24] - subs r1, r1, r0 - strh r1, [r5, #0x24] - ldrh r0, [r5, #0x3a] - subs r4, r4, r0 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - adds r0, r4, #0 - bl sub_08097098 - ldrh r2, [r5, #0x26] - adds r0, r0, r2 - b _08097160 -_08097126: - movs r1, #0x3a - ldrsh r0, [r5, r1] - bl sub_080970AC - ldrh r1, [r5, #0x24] - subs r1, r1, r0 - strh r1, [r5, #0x24] - movs r2, #0x3a - ldrsh r0, [r5, r2] - b _08097158 -_0809713A: - ldrh r0, [r5, #0x3a] - movs r4, #0x47 - subs r0, r4, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - bl sub_080970AC - ldrh r2, [r5, #0x24] - adds r0, r0, r2 - strh r0, [r5, #0x24] - ldrh r0, [r5, #0x3a] - subs r4, r4, r0 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - adds r0, r4, #0 -_08097158: - bl sub_08097098 - ldrh r1, [r5, #0x26] - adds r0, r0, r1 -_08097160: - strh r0, [r5, #0x26] -_08097162: - ldrh r0, [r5, #0x3a] - adds r0, #1 - movs r1, #0 - strh r0, [r5, #0x3a] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x48 - bne _0809717A - strh r1, [r5, #0x3a] - ldrh r0, [r5, #0x3c] - adds r0, #1 - strh r0, [r5, #0x3c] -_0809717A: - movs r2, #0x3c - ldrsh r0, [r5, r2] - cmp r0, #4 - bne _08097188 - strh r1, [r5, #0x26] - strh r1, [r5, #0x24] - movs r6, #1 -_08097188: - adds r0, r6, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_080970C8 - - thumb_func_start sub_08097190 -sub_08097190: @ 0x08097190 - lsls r1, r1, #0x18 - ldr r2, _080971A8 - lsrs r1, r1, #0x16 - adds r1, r1, r2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldr r1, [r1] - adds r1, r1, r0 - movs r0, #0 - ldrsb r0, [r1, r0] - bx lr - .align 2, 0 -_080971A8: .4byte gUnknown_84E6C88 - thumb_func_end sub_08097190 - - thumb_func_start sub_080971AC -sub_080971AC: @ 0x080971AC - push {r4, lr} - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r4, #0 - strh r1, [r0, #0x34] - strh r2, [r0, #0x36] - strh r3, [r0, #0x38] - strh r4, [r0, #0x3a] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080971AC - - thumb_func_start sub_080971CC -sub_080971CC: @ 0x080971CC - push {r4, r5, r6, lr} - sub sp, #0xc - adds r4, r0, #0 - ldr r1, _0809724C - mov r0, sp - movs r2, #6 - bl memcpy - add r5, sp, #8 - ldr r1, _08097250 - adds r0, r5, #0 - movs r2, #3 - bl memcpy - movs r6, #0 - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _080971FE - ldrh r1, [r4, #0x34] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl Step1 -_080971FE: - movs r2, #0x3a - ldrsh r0, [r4, r2] - movs r2, #0x36 - ldrsh r1, [r4, r2] - adds r1, r5, r1 - ldrb r1, [r1] - asrs r0, r1 - ldrh r1, [r4, #0x38] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl sub_08097190 - strh r0, [r4, #0x26] - ldrh r1, [r4, #0x3a] - adds r1, #1 - strh r1, [r4, #0x3a] - movs r2, #0x36 - ldrsh r0, [r4, r2] - lsls r0, r0, #1 - add r0, sp - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r2, r0, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - asrs r0, r0, #0x11 - cmp r1, r0 - bne _08097238 - movs r6, #1 -_08097238: - cmp r1, r2 - blt _08097242 - movs r0, #0 - strh r0, [r4, #0x26] - movs r6, #0xff -_08097242: - adds r0, r6, #0 - add sp, #0xc - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0809724C: .4byte gUnknown_84E6C94 -_08097250: .4byte gUnknown_84E6C9A - thumb_func_end sub_080971CC - - thumb_func_start sub_08097254 -sub_08097254: @ 0x08097254 - push {r4, r5, r6, lr} - sub sp, #0xc - adds r5, r0, #0 - ldr r1, _080972E0 - mov r0, sp - movs r2, #6 - bl memcpy - add r4, sp, #8 - ldr r1, _080972E4 - adds r0, r4, #0 - movs r2, #3 - bl memcpy - movs r6, #0 - movs r1, #0x36 - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _08097290 - ldrh r1, [r5, #0x3a] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08097290 - ldrh r1, [r5, #0x34] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl Step1 -_08097290: - movs r2, #0x3a - ldrsh r0, [r5, r2] - movs r2, #0x36 - ldrsh r1, [r5, r2] - adds r1, r4, r1 - ldrb r1, [r1] - asrs r0, r1 - ldrh r1, [r5, #0x38] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl sub_08097190 - strh r0, [r5, #0x26] - ldrh r1, [r5, #0x3a] - adds r1, #1 - strh r1, [r5, #0x3a] - movs r2, #0x36 - ldrsh r0, [r5, r2] - lsls r0, r0, #1 - add r0, sp - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r2, r0, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - asrs r0, r0, #0x11 - cmp r1, r0 - bne _080972CA - movs r6, #1 -_080972CA: - cmp r1, r2 - blt _080972D4 - movs r0, #0 - strh r0, [r5, #0x26] - movs r6, #0xff -_080972D4: - adds r0, r6, #0 - add sp, #0xc - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080972E0: .4byte gUnknown_84E6C9E -_080972E4: .4byte gUnknown_84E6CA4 - thumb_func_end sub_08097254 - - thumb_func_start sub_080972E8 -sub_080972E8: @ 0x080972E8 - strh r1, [r0, #0x34] - bx lr - thumb_func_end sub_080972E8 - - thumb_func_start WaitForMovementDelay -WaitForMovementDelay: @ 0x080972EC - push {lr} - ldrh r1, [r0, #0x34] - subs r1, #1 - strh r1, [r0, #0x34] - lsls r1, r1, #0x10 - cmp r1, #0 - beq _080972FE - movs r0, #0 - b _08097300 -_080972FE: - movs r0, #1 -_08097300: - pop {r1} - bx r1 - thumb_func_end WaitForMovementDelay - - thumb_func_start SetAndStartSpriteAnim -SetAndStartSpriteAnim: @ 0x08097304 - push {r4, lr} - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r3, r0, #0 - adds r3, #0x2a - strb r1, [r3] - adds r4, r0, #0 - adds r4, #0x2c - ldrb r3, [r4] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r3 - strb r1, [r4] - adds r1, r2, #0 - bl SeekSpriteAnim - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetAndStartSpriteAnim - - thumb_func_start SpriteAnimEnded -SpriteAnimEnded: @ 0x0809732C - push {lr} - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _0809733E - movs r0, #0 - b _08097340 -_0809733E: - movs r0, #1 -_08097340: - pop {r1} - bx r1 - thumb_func_end SpriteAnimEnded - - thumb_func_start UpdateEventObjectSpriteVisibility -UpdateEventObjectSpriteVisibility: @ 0x08097344 - push {r4, r5, r6, lr} - mov ip, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r3, ip - adds r3, #0x3e - movs r0, #1 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r3] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _080973AC - mov r0, ip - ldrh r1, [r0, #0x24] - ldrh r2, [r0, #0x20] - adds r1, r1, r2 - mov r4, ip - adds r4, #0x28 - movs r0, #0 - ldrsb r0, [r4, r0] - ldr r2, _080973A4 - adds r0, r0, r1 - ldrh r2, [r2] - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - mov r0, ip - ldrh r1, [r0, #0x26] - ldrh r2, [r0, #0x22] - adds r1, r1, r2 - subs r3, #0x15 - movs r0, #0 - ldrsb r0, [r3, r0] - ldr r2, _080973A8 - adds r0, r0, r1 - ldrh r2, [r2] - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r2, r3, #0 - b _080973DA - .align 2, 0 -_080973A4: .4byte gUnknown_2021B38 -_080973A8: .4byte gUnknown_2021B3A -_080973AC: - mov r0, ip - ldrh r1, [r0, #0x24] - ldrh r2, [r0, #0x20] - adds r1, r1, r2 - mov r3, ip - adds r3, #0x28 - movs r0, #0 - ldrsb r0, [r3, r0] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - mov r0, ip - ldrh r1, [r0, #0x26] - ldrh r2, [r0, #0x22] - adds r1, r1, r2 - mov r2, ip - adds r2, #0x29 - movs r0, #0 - ldrsb r0, [r2, r0] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r4, r3, #0 -_080973DA: - ldrb r0, [r4] - lsls r0, r0, #0x18 - asrs r0, r0, #0x19 - subs r0, r6, r0 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldrb r0, [r2] - lsls r0, r0, #0x18 - asrs r0, r0, #0x19 - subs r0, r5, r0 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xff - bgt _08097406 - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x10 - rsbs r1, r1, #0 - cmp r0, r1 - bge _08097412 -_08097406: - mov r4, ip - adds r4, #0x3e - ldrb r0, [r4] - movs r1, #4 - orrs r0, r1 - strb r0, [r4] -_08097412: - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xaf - bgt _08097426 - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x10 - rsbs r1, r1, #0 - cmp r0, r1 - bge _08097432 -_08097426: - mov r0, ip - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_08097432: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end UpdateEventObjectSpriteVisibility - - thumb_func_start UpdateEventObjectSpriteSubpriorityAndVisibility -UpdateEventObjectSpriteSubpriorityAndVisibility: @ 0x08097438 - push {r4, lr} - adds r4, r0, #0 - bl sub_080976D8 - ldrh r0, [r4, #0x30] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r4, #0 - movs r2, #1 - bl SetObjectSubpriorityByZCoord - ldrh r1, [r4, #0x32] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl UpdateEventObjectSpriteVisibility - pop {r4} - pop {r0} - bx r0 - thumb_func_end UpdateEventObjectSpriteSubpriorityAndVisibility - - thumb_func_start sub_08097460 -sub_08097460: @ 0x08097460 - push {r4, r5, lr} - movs r5, #0 - movs r4, #0x3f -_08097466: - ldr r0, _08097494 - adds r2, r5, r0 - adds r0, r2, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08097486 - ldr r1, [r2, #0x1c] - ldr r0, _08097498 - cmp r1, r0 - bne _08097486 - adds r0, r2, #0 - bl DestroySprite -_08097486: - adds r5, #0x44 - subs r4, #1 - cmp r4, #0 - bge _08097466 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08097494: .4byte gUnknown_20205AC -_08097498: .4byte UpdateEventObjectSpriteSubpriorityAndVisibility - thumb_func_end sub_08097460 - - thumb_func_start sub_0809749C -sub_0809749C: @ 0x0809749C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r3, #0 - ldr r6, _080974D0 - movs r4, #0 -_080974A8: - adds r2, r4, r6 - adds r0, r2, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080974D8 - ldr r1, [r2, #0x1c] - ldr r0, _080974D4 - cmp r1, r0 - bne _080974D8 - ldrh r0, [r2, #0x2e] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r5 - bne _080974D8 - adds r0, r3, #0 - b _080974E2 - .align 2, 0 -_080974D0: .4byte gUnknown_20205AC -_080974D4: .4byte UpdateEventObjectSpriteSubpriorityAndVisibility -_080974D8: - adds r4, #0x44 - adds r3, #1 - cmp r3, #0x3f - ble _080974A8 - movs r0, #0x40 -_080974E2: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_0809749C - - thumb_func_start sub_080974E8 -sub_080974E8: @ 0x080974E8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - bl sub_0809749C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _0809751A - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _08097520 - adds r4, r4, r0 - adds r0, r5, #0 - bl sub_080922CC - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim -_0809751A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08097520: .4byte gUnknown_20205AC - thumb_func_end sub_080974E8 - - thumb_func_start sub_08097524 -sub_08097524: @ 0x08097524 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - bl sub_0809749C - adds r1, r0, #0 - cmp r1, #0x40 - beq _080975AE - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08097588 - adds r4, r0, r1 - adds r0, r5, #0 - bl GetEventObjectGraphicsInfo - ldrh r3, [r4, #4] - lsls r3, r3, #0x16 - ldr r1, [r0, #0x10] - ldr r2, [r1, #4] - ldr r1, [r1] - str r1, [r4] - str r2, [r4, #4] - lsrs r3, r3, #0x16 - ldrh r2, [r4, #4] - ldr r1, _0809758C - ands r1, r2 - orrs r1, r3 - strh r1, [r4, #4] - ldrb r2, [r0, #0xc] - lsls r2, r2, #0x1c - lsrs r2, r2, #0x18 - ldrb r3, [r4, #5] - movs r1, #0xf - ands r1, r3 - orrs r1, r2 - strb r1, [r4, #5] - ldr r1, [r0, #0x1c] - str r1, [r4, #0xc] - ldr r1, [r0, #0x14] - cmp r1, #0 - bne _08097590 - str r1, [r4, #0x18] - adds r0, r4, #0 - adds r0, #0x42 - strb r1, [r0] - b _080975A6 - .align 2, 0 -_08097588: .4byte gUnknown_20205AC -_0809758C: .4byte 0xFFFFFC00 -_08097590: - adds r0, r4, #0 - bl SetSubspriteTables - adds r2, r4, #0 - adds r2, #0x42 - ldrb r0, [r2] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x80 - orrs r1, r0 - strb r1, [r2] -_080975A6: - adds r0, r4, #0 - movs r1, #0 - bl StartSpriteAnim -_080975AE: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_08097524 - - thumb_func_start sub_080975B4 -sub_080975B4: @ 0x080975B4 - push {r4, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_0809749C - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r3, r2, #0 - cmp r2, #0x40 - beq _080975F0 - cmp r4, #0 - beq _080975E4 - ldr r0, _080975E0 - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - movs r0, #1 - strh r0, [r1, #0x32] - b _080975F0 - .align 2, 0 -_080975E0: .4byte gUnknown_20205AC -_080975E4: - ldr r1, _080975F8 - lsls r0, r3, #4 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - strh r4, [r0, #0x32] -_080975F0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080975F8: .4byte gUnknown_20205AC - thumb_func_end sub_080975B4 - - thumb_func_start sub_080975FC -sub_080975FC: @ 0x080975FC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_0809749C - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x40 - bne _08097612 - movs r0, #0 - b _0809762A -_08097612: - movs r3, #0 - ldr r0, _08097630 - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - movs r2, #0x32 - ldrsh r0, [r1, r2] - cmp r0, #1 - bne _08097628 - movs r3, #1 -_08097628: - adds r0, r3, #0 -_0809762A: - pop {r1} - bx r1 - .align 2, 0 -_08097630: .4byte gUnknown_20205AC - thumb_func_end sub_080975FC - - thumb_func_start sub_08097634 -sub_08097634: @ 0x08097634 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - bl sub_0809749C - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x40 - beq _0809765A - ldr r0, _08097660 - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - movs r0, #0 - strh r4, [r1, #0x34] - strh r0, [r1, #0x36] -_0809765A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097660: .4byte gUnknown_20205AC - thumb_func_end sub_08097634 - - thumb_func_start sub_08097664 -sub_08097664: @ 0x08097664 - push {lr} - adds r2, r0, #0 - movs r1, #0x36 - ldrsh r0, [r2, r1] - cmp r0, #0 - beq _08097676 - cmp r0, #1 - beq _0809767E - b _0809769C -_08097676: - strh r0, [r2, #0x26] - ldrh r0, [r2, #0x36] - adds r0, #1 - strh r0, [r2, #0x36] -_0809767E: - ldrh r0, [r2, #0x26] - subs r0, #8 - movs r3, #0 - strh r0, [r2, #0x26] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0xa0 - rsbs r1, r1, #0 - cmp r0, r1 - bne _0809769C - strh r3, [r2, #0x26] - movs r0, #1 - strh r0, [r2, #0x32] - strh r3, [r2, #0x34] - strh r3, [r2, #0x36] -_0809769C: - pop {r0} - bx r0 - thumb_func_end sub_08097664 - - thumb_func_start sub_080976A0 -sub_080976A0: @ 0x080976A0 - push {lr} - adds r1, r0, #0 - movs r2, #0x36 - ldrsh r0, [r1, r2] - cmp r0, #0 - beq _080976B2 - cmp r0, #1 - beq _080976BC - b _080976CE -_080976B2: - ldr r0, _080976D4 - strh r0, [r1, #0x26] - ldrh r0, [r1, #0x36] - adds r0, #1 - strh r0, [r1, #0x36] -_080976BC: - ldrh r0, [r1, #0x26] - adds r0, #8 - strh r0, [r1, #0x26] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bne _080976CE - strh r0, [r1, #0x34] - strh r0, [r1, #0x36] -_080976CE: - pop {r0} - bx r0 - .align 2, 0 -_080976D4: .4byte 0x0000FF60 - thumb_func_end sub_080976A0 - - thumb_func_start sub_080976D8 -sub_080976D8: @ 0x080976D8 - push {lr} - adds r1, r0, #0 - movs r2, #0x34 - ldrsh r0, [r1, r2] - cmp r0, #1 - beq _080976F4 - cmp r0, #1 - bgt _080976EE - cmp r0, #0 - beq _08097714 - b _08097704 -_080976EE: - cmp r0, #2 - beq _080976FC - b _08097704 -_080976F4: - adds r0, r1, #0 - bl sub_080976A0 - b _08097714 -_080976FC: - adds r0, r1, #0 - bl sub_08097664 - b _08097714 -_08097704: - movs r0, #0 - strh r0, [r1, #0x34] - ldr r0, _08097718 - ldr r1, _0809771C - ldr r2, _08097720 - movs r3, #1 - bl AGBAssert -_08097714: - pop {r0} - bx r0 - .align 2, 0 -_08097718: .4byte gUnknown_84E6CA8 -_0809771C: .4byte 0x00003106 -_08097720: .4byte gUnknown_84E6CB4 - thumb_func_end sub_080976D8 - - thumb_func_start sub_08097724 -sub_08097724: @ 0x08097724 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_0809749C - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x40 - beq _08097748 - ldr r0, _0809774C - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - movs r2, #0x34 - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _08097750 -_08097748: - movs r0, #0 - b _08097752 - .align 2, 0 -_0809774C: .4byte gUnknown_20205AC -_08097750: - movs r0, #1 -_08097752: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08097724 - - thumb_func_start sub_08097758 -sub_08097758: @ 0x08097758 - push {r4, lr} - adds r4, r0, #0 - adds r0, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _0809777C - adds r2, r1, #4 - adds r3, r1, #0 - adds r3, #8 - bl EventObjectGetLocalIdAndMap - adds r0, r4, #0 - bl FieldEffectStart - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809777C: .4byte gUnknown_20388A8 - thumb_func_end sub_08097758 - - thumb_func_start DoShadowFieldEffect -DoShadowFieldEffect: @ 0x08097780 - push {lr} - adds r1, r0, #0 - ldrb r2, [r1, #2] - lsls r0, r2, #0x19 - cmp r0, #0 - blt _08097798 - movs r0, #0x40 - orrs r0, r2 - strb r0, [r1, #2] - movs r0, #3 - bl sub_08097758 -_08097798: - pop {r0} - bx r0 - thumb_func_end DoShadowFieldEffect - - thumb_func_start DoRippleFieldEffect -DoRippleFieldEffect: @ 0x0809779C - push {r4, lr} - adds r4, r1, #0 - ldrb r0, [r0, #5] - bl GetEventObjectGraphicsInfo - ldr r2, _080977D4 - movs r3, #0x20 - ldrsh r1, [r4, r3] - str r1, [r2] - movs r3, #0x22 - ldrsh r1, [r4, r3] - ldrh r0, [r0, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x11 - adds r1, r1, r0 - subs r1, #2 - str r1, [r2, #4] - movs r0, #0x97 - str r0, [r2, #8] - movs r0, #3 - str r0, [r2, #0xc] - movs r0, #5 - bl FieldEffectStart - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080977D4: .4byte gUnknown_20388A8 - thumb_func_end DoRippleFieldEffect - - thumb_func_start MovementAction_StoreAndLockAnim_Step0 -MovementAction_StoreAndLockAnim_Step0: @ 0x080977D8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - mov r8, r1 - movs r0, #0 - mov ip, r0 - ldr r0, _08097804 - ldr r1, [r0] - adds r6, r0, #0 - cmp r1, #0 - bne _08097808 - movs r0, #0x14 - bl AllocZeroed - str r0, [r6] - ldrb r1, [r4, #8] - strb r1, [r0] - ldr r1, [r6] - movs r0, #1 - strb r0, [r1, #0x10] - b _08097854 - .align 2, 0 -_08097804: .4byte gUnknown_2037258 -_08097808: - movs r2, #0x10 - movs r5, #0 - movs r1, #0 - adds r3, r6, #0 - b _08097818 -_08097812: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 -_08097818: - cmp r1, #0xf - bhi _0809783A - cmp r2, #0x10 - bne _0809782C - ldr r0, [r3] - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _0809782C - adds r2, r1, #0 -_0809782C: - ldr r0, [r3] - adds r0, r0, r1 - ldrb r0, [r0] - ldrb r7, [r4, #8] - cmp r0, r7 - bne _08097812 - movs r5, #1 -_0809783A: - cmp r5, #0 - bne _08097856 - cmp r2, #0x10 - beq _08097856 - ldr r0, [r6] - adds r0, r0, r2 - ldrb r1, [r4, #8] - strb r1, [r0] - ldr r1, [r6] - ldrb r0, [r1, #0x10] - adds r0, #1 - strb r0, [r1, #0x10] - movs r0, #1 -_08097854: - mov ip, r0 -_08097856: - mov r1, ip - cmp r1, #1 - bne _08097868 - ldrb r0, [r4, #1] - movs r1, #0x10 - orrs r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r4, #1] -_08097868: - movs r0, #1 - mov r7, r8 - strh r0, [r7, #0x32] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end MovementAction_StoreAndLockAnim_Step0 - - thumb_func_start MovementAction_FreeAndUnlockAnim_Step0 -MovementAction_FreeAndUnlockAnim_Step0: @ 0x08097878 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - mov r8, r1 - movs r0, #1 - strh r0, [r1, #0x32] - ldr r5, _080978FC - ldr r0, [r5] - cmp r0, #0 - beq _080978F0 - movs r7, #0 - adds r0, r6, #0 - bl FindLockedEventObjectIndex - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x10 - beq _080978B0 - ldr r0, [r5] - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - ldr r1, [r5] - ldrb r0, [r1, #0x10] - subs r0, #1 - strb r0, [r1, #0x10] - movs r7, #1 -_080978B0: - ldr r0, [r5] - ldrb r4, [r0, #0x10] - cmp r4, #0 - bne _080978BE - bl Free - str r4, [r5] -_080978BE: - cmp r7, #1 - bne _080978F0 - ldrb r0, [r6, #5] - bl GetEventObjectGraphicsInfo - ldrb r1, [r0, #0xc] - lsls r1, r1, #0x19 - lsrs r1, r1, #0x1f - lsls r1, r1, #4 - ldrb r2, [r6, #1] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - movs r1, #3 - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r6, #1] - mov r2, r8 - adds r2, #0x2c - ldrb r1, [r2] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_080978F0: - movs r0, #1 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080978FC: .4byte gUnknown_2037258 - thumb_func_end MovementAction_FreeAndUnlockAnim_Step0 - - thumb_func_start FindLockedEventObjectIndex -FindLockedEventObjectIndex: @ 0x08097900 - push {lr} - movs r2, #0 - ldr r1, _08097918 - ldr r1, [r1] - ldrb r3, [r0, #8] -_0809790A: - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, r3 - bne _0809791C - adds r0, r2, #0 - b _08097928 - .align 2, 0 -_08097918: .4byte gUnknown_2037258 -_0809791C: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xf - bls _0809790A - movs r0, #0x10 -_08097928: - pop {r1} - bx r1 - thumb_func_end FindLockedEventObjectIndex - - thumb_func_start CreateLevitateMovementTask -CreateLevitateMovementTask: @ 0x0809792C - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r0, _08097960 - movs r1, #0xff - bl CreateTask - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - ldr r0, _08097964 - adds r4, r4, r0 - adds r0, r4, #0 - adds r0, #8 - adds r1, r6, #0 - bl StoreWordInTwoHalfwords - strb r5, [r6, #0x1b] - ldr r0, _08097968 - strh r0, [r4, #0xe] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08097960: .4byte ApplyLevitateMovement -_08097964: .4byte gUnknown_3005B60 -_08097968: .4byte 0x0000FFFF - thumb_func_end CreateLevitateMovementTask - - thumb_func_start ApplyLevitateMovement -ApplyLevitateMovement: @ 0x0809796C - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080979C4 - adds r4, r1, r0 - adds r0, r4, #0 - adds r0, #8 - mov r1, sp - bl LoadWordFromTwoHalfwords - ldr r0, [sp] - ldrb r1, [r0, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080979C8 - adds r2, r0, r1 - ldrh r1, [r4, #0xc] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _080979A8 - ldrh r0, [r4, #0xe] - ldrh r1, [r2, #0x26] - adds r0, r0, r1 - strh r0, [r2, #0x26] -_080979A8: - ldrh r1, [r4, #0xc] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _080979B8 - ldrh r0, [r4, #0xe] - rsbs r0, r0, #0 - strh r0, [r4, #0xe] -_080979B8: - adds r0, r1, #1 - strh r0, [r4, #0xc] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080979C4: .4byte gUnknown_3005B60 -_080979C8: .4byte gUnknown_20205AC - thumb_func_end ApplyLevitateMovement - - thumb_func_start DestroyExtraMovementTask -DestroyExtraMovementTask: @ 0x080979CC - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _080979F8 - adds r0, r0, r1 - adds r0, #8 - mov r1, sp - bl LoadWordFromTwoHalfwords - adds r0, r4, #0 - bl DestroyTask - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080979F8: .4byte gUnknown_3005B60 - thumb_func_end DestroyExtraMovementTask - - thumb_func_start sub_080979FC -sub_080979FC: @ 0x080979FC - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - movs r4, #0 - ldr r7, _08097A40 -_08097A0A: - cmp r4, r6 - beq _08097A30 - cmp r4, r5 - beq _08097A30 - lsls r0, r4, #3 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r1, r0, r7 - ldrb r0, [r1] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _08097A30 - ldr r0, _08097A44 - ldrb r0, [r0, #5] - cmp r4, r0 - beq _08097A30 - adds r0, r1, #0 - bl FreezeEventObject -_08097A30: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xf - bls _08097A0A - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08097A40: .4byte gUnknown_2036FF0 -_08097A44: .4byte gUnknown_2037230 - thumb_func_end sub_080979FC - - thumb_func_start MovementAction_FlyUp_Step0 -MovementAction_FlyUp_Step0: @ 0x08097A48 - movs r0, #0 - strh r0, [r1, #0x26] - ldrh r0, [r1, #0x32] - adds r0, #1 - strh r0, [r1, #0x32] - movs r0, #0 - bx lr - .align 2, 0 - thumb_func_end MovementAction_FlyUp_Step0 - - thumb_func_start MovementAction_FlyUp_Step1 -MovementAction_FlyUp_Step1: @ 0x08097A58 - push {lr} - adds r2, r1, #0 - ldrh r0, [r2, #0x26] - subs r0, #8 - strh r0, [r2, #0x26] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0xa0 - rsbs r1, r1, #0 - cmp r0, r1 - bne _08097A74 - ldrh r0, [r2, #0x32] - adds r0, #1 - strh r0, [r2, #0x32] -_08097A74: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_FlyUp_Step1 - - thumb_func_start MovementAction_FlyDown_Step0 -MovementAction_FlyDown_Step0: @ 0x08097A7C - ldr r0, _08097A8C - strh r0, [r1, #0x26] - ldrh r0, [r1, #0x32] - adds r0, #1 - strh r0, [r1, #0x32] - movs r0, #0 - bx lr - .align 2, 0 -_08097A8C: .4byte 0x0000FF60 - thumb_func_end MovementAction_FlyDown_Step0 - - thumb_func_start MovementAction_FlyDown_Step1 -MovementAction_FlyDown_Step1: @ 0x08097A90 - push {lr} - ldrh r0, [r1, #0x26] - adds r0, #8 - strh r0, [r1, #0x26] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08097AA4 - ldrh r0, [r1, #0x32] - adds r0, #1 - strh r0, [r1, #0x32] -_08097AA4: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MovementAction_FlyDown_Step1 - - thumb_func_start sub_08097AAC -sub_08097AAC: @ 0x08097AAC - movs r0, #1 - bx lr - thumb_func_end sub_08097AAC - - thumb_func_start InitFieldMessageBox -InitFieldMessageBox: @ 0x08097AB0 - ldr r1, _08097AD4 - movs r0, #0 - strb r0, [r1] - ldr r2, _08097AD8 - ldrb r1, [r2] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - rsbs r1, r1, #0 - ands r0, r1 - subs r1, #2 - ands r0, r1 - subs r1, #4 - ands r0, r1 - strb r0, [r2] - bx lr - .align 2, 0 -_08097AD4: .4byte gUnknown_203725C -_08097AD8: .4byte gUnknown_30030B4 - thumb_func_end InitFieldMessageBox - - thumb_func_start sub_08097ADC -sub_08097ADC: @ 0x08097ADC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _08097B00 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _08097B10 - cmp r0, #1 - bgt _08097B04 - cmp r0, #0 - beq _08097B0A - b _08097B38 - .align 2, 0 -_08097B00: .4byte gUnknown_3005B60 -_08097B04: - cmp r0, #2 - beq _08097B20 - b _08097B38 -_08097B0A: - bl sub_08196F98 - b _08097B18 -_08097B10: - movs r0, #0 - movs r1, #1 - bl sub_08196FB8 -_08097B18: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _08097B38 -_08097B20: - bl RunTextPrintersAndIsPrinter0Active - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - beq _08097B38 - ldr r1, _08097B40 - movs r0, #0 - strb r0, [r1] - adds r0, r5, #0 - bl DestroyTask -_08097B38: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08097B40: .4byte gUnknown_203725C - thumb_func_end sub_08097ADC - - thumb_func_start task_add_textbox -task_add_textbox: @ 0x08097B44 - push {lr} - ldr r0, _08097B54 - movs r1, #0x50 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_08097B54: .4byte sub_08097ADC - thumb_func_end task_add_textbox - - thumb_func_start task_del_textbox -task_del_textbox: @ 0x08097B58 - push {lr} - ldr r0, _08097B70 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _08097B6C - bl DestroyTask -_08097B6C: - pop {r0} - bx r0 - .align 2, 0 -_08097B70: .4byte sub_08097ADC - thumb_func_end task_del_textbox - - thumb_func_start ShowFieldMessage -ShowFieldMessage: @ 0x08097B74 - push {r4, lr} - adds r1, r0, #0 - ldr r4, _08097B90 - ldrb r0, [r4] - cmp r0, #0 - bne _08097B94 - adds r0, r1, #0 - movs r1, #1 - bl textbox_fdecode_auto_and_task_add - movs r0, #2 - strb r0, [r4] - movs r0, #1 - b _08097B96 - .align 2, 0 -_08097B90: .4byte gUnknown_203725C -_08097B94: - movs r0, #0 -_08097B96: - pop {r4} - pop {r1} - bx r1 - thumb_func_end ShowFieldMessage - - thumb_func_start sub_08097B9C -sub_08097B9C: @ 0x08097B9C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl sub_08195C94 - adds r1, r0, #0 - cmp r1, #0 - bne _08097BB6 - ldr r0, _08097BBC - strb r1, [r0] - adds r0, r4, #0 - bl DestroyTask -_08097BB6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097BBC: .4byte gUnknown_203725C - thumb_func_end sub_08097B9C - - thumb_func_start sub_08097BC0 -sub_08097BC0: @ 0x08097BC0 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08097BEC - ldrb r0, [r5] - cmp r0, #0 - bne _08097BF8 - ldr r0, _08097BF0 - adds r1, r4, #0 - bl StringExpandPlaceholders - ldr r0, _08097BF4 - movs r1, #0 - bl CreateTask - adds r0, r4, #0 - bl StartMatchCallFromScript - movs r0, #2 - strb r0, [r5] - movs r0, #1 - b _08097BFA - .align 2, 0 -_08097BEC: .4byte gUnknown_203725C -_08097BF0: .4byte gUnknown_2021C7C -_08097BF4: .4byte sub_08097B9C -_08097BF8: - movs r0, #0 -_08097BFA: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_08097BC0 - - thumb_func_start ShowFieldAutoScrollMessage -ShowFieldAutoScrollMessage: @ 0x08097C00 - push {lr} - adds r1, r0, #0 - ldr r2, _08097C1C - ldrb r0, [r2] - cmp r0, #0 - bne _08097C20 - movs r0, #3 - strb r0, [r2] - adds r0, r1, #0 - movs r1, #0 - bl textbox_fdecode_auto_and_task_add - movs r0, #1 - b _08097C22 - .align 2, 0 -_08097C1C: .4byte gUnknown_203725C -_08097C20: - movs r0, #0 -_08097C22: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ShowFieldAutoScrollMessage - - thumb_func_start sub_08097C28 -sub_08097C28: @ 0x08097C28 - push {lr} - ldr r2, _08097C3C - movs r1, #3 - strb r1, [r2] - movs r1, #1 - bl textbox_fdecode_auto_and_task_add - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 -_08097C3C: .4byte gUnknown_203725C - thumb_func_end sub_08097C28 - - thumb_func_start sub_08097C40 -sub_08097C40: @ 0x08097C40 - push {lr} - ldr r1, _08097C58 - ldrb r0, [r1] - cmp r0, #0 - bne _08097C5C - movs r0, #2 - strb r0, [r1] - bl sub_08097C8C - movs r0, #1 - b _08097C5E - .align 2, 0 -_08097C58: .4byte gUnknown_203725C -_08097C5C: - movs r0, #0 -_08097C5E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08097C40 - - thumb_func_start textbox_fdecode_auto_and_task_add -textbox_fdecode_auto_and_task_add: @ 0x08097C64 - push {r4, lr} - adds r2, r0, #0 - adds r4, r1, #0 - ldr r0, _08097C88 - adds r1, r2, #0 - bl StringExpandPlaceholders - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl AddTextPrinterForMessage - bl task_add_textbox - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097C88: .4byte gUnknown_2021C7C - thumb_func_end textbox_fdecode_auto_and_task_add - - thumb_func_start sub_08097C8C -sub_08097C8C: @ 0x08097C8C - push {lr} - movs r0, #1 - bl AddTextPrinterForMessage - bl task_add_textbox - pop {r0} - bx r0 - thumb_func_end sub_08097C8C - - thumb_func_start HideFieldMessageBox -HideFieldMessageBox: @ 0x08097C9C - push {lr} - bl task_del_textbox - movs r0, #0 - movs r1, #1 - bl sub_08197028 - ldr r1, _08097CB4 - movs r0, #0 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08097CB4: .4byte gUnknown_203725C - thumb_func_end HideFieldMessageBox - - thumb_func_start sub_08097CB8 -sub_08097CB8: @ 0x08097CB8 - ldr r0, _08097CC0 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08097CC0: .4byte gUnknown_203725C - thumb_func_end sub_08097CB8 - - thumb_func_start sub_08097CC4 -sub_08097CC4: @ 0x08097CC4 - push {lr} - ldr r0, _08097CD4 - ldrb r0, [r0] - cmp r0, #0 - beq _08097CD8 - movs r0, #0 - b _08097CDA - .align 2, 0 -_08097CD4: .4byte gUnknown_203725C -_08097CD8: - movs r0, #1 -_08097CDA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08097CC4 - - thumb_func_start sub_08097CE0 -sub_08097CE0: @ 0x08097CE0 - push {lr} - bl task_del_textbox - movs r0, #0 - movs r1, #1 - bl sub_08196FF0 - ldr r1, _08097CF8 - movs r0, #0 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08097CF8: .4byte gUnknown_203725C - thumb_func_end sub_08097CE0 - - thumb_func_start sub_08097CFC -sub_08097CFC: @ 0x08097CFC - push {lr} - bl task_del_textbox - ldr r1, _08097D0C - movs r0, #0 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08097D0C: .4byte gUnknown_203725C - thumb_func_end sub_08097CFC - - thumb_func_start walkrun_is_standing_still -walkrun_is_standing_still: @ 0x08097D10 - push {lr} - ldr r0, _08097D20 - ldrb r0, [r0, #3] - cmp r0, #1 - beq _08097D24 - movs r0, #1 - b _08097D26 - .align 2, 0 -_08097D20: .4byte gUnknown_2037230 -_08097D24: - movs r0, #0 -_08097D26: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end walkrun_is_standing_still - - thumb_func_start sub_08097D2C -sub_08097D2C: @ 0x08097D2C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl walkrun_is_standing_still - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08097D46 - bl sub_0808B1C8 - adds r0, r4, #0 - bl DestroyTask -_08097D46: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08097D2C - - thumb_func_start sub_08097D4C -sub_08097D4C: @ 0x08097D4C - push {lr} - ldr r0, _08097D64 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08097D68 - bl sub_0808B658 - movs r0, #1 - b _08097D6A - .align 2, 0 -_08097D64: .4byte sub_08097D2C -_08097D68: - movs r0, #0 -_08097D6A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08097D4C - - thumb_func_start ScriptFreezeEventObjects -ScriptFreezeEventObjects: @ 0x08097D70 - push {lr} - bl FreezeEventObjects - ldr r0, _08097D84 - movs r1, #0x50 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_08097D84: .4byte sub_08097D2C - thumb_func_end ScriptFreezeEventObjects - - thumb_func_start sub_08097D88 -sub_08097D88: @ 0x08097D88 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _08097DF8 - adds r5, r0, r1 - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _08097DB2 - bl walkrun_is_standing_still - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #1 - bne _08097DB2 - bl sub_0808B1C8 - strh r4, [r5, #8] -_08097DB2: - movs r1, #0xa - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _08097DDA - ldr r2, _08097DFC - ldr r0, _08097E00 - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r2 - ldrb r0, [r1] - lsls r0, r0, #0x1e - cmp r0, #0 - blt _08097DDA - adds r0, r1, #0 - bl FreezeEventObject - movs r0, #1 - strh r0, [r5, #0xa] -_08097DDA: - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _08097DF0 - movs r1, #0xa - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _08097DF0 - adds r0, r6, #0 - bl DestroyTask -_08097DF0: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08097DF8: .4byte gUnknown_3005B60 -_08097DFC: .4byte gUnknown_2036FF0 -_08097E00: .4byte gUnknown_3005B50 - thumb_func_end sub_08097D88 - - thumb_func_start sub_08097E04 -sub_08097E04: @ 0x08097E04 - push {lr} - ldr r0, _08097E1C - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08097E20 - bl sub_0808B658 - movs r0, #1 - b _08097E22 - .align 2, 0 -_08097E1C: .4byte sub_08097D88 -_08097E20: - movs r0, #0 -_08097E22: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08097E04 - - thumb_func_start LockSelectedEventObject -LockSelectedEventObject: @ 0x08097E28 - push {r4, r5, lr} - ldr r4, _08097E6C - ldrb r0, [r4] - bl FreezeEventObjectsExceptOne - ldr r0, _08097E70 - movs r1, #0x50 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r2, _08097E74 - ldrb r1, [r4] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r2 - ldrb r0, [r1] - lsls r0, r0, #0x1e - cmp r0, #0 - blt _08097E66 - adds r0, r1, #0 - bl FreezeEventObject - ldr r0, _08097E78 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #1 - strh r0, [r1, #0xa] -_08097E66: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08097E6C: .4byte gUnknown_3005B50 -_08097E70: .4byte sub_08097D88 -_08097E74: .4byte gUnknown_2036FF0 -_08097E78: .4byte gUnknown_3005B60 - thumb_func_end LockSelectedEventObject - - thumb_func_start ScriptUnfreezeEventObjects -ScriptUnfreezeEventObjects: @ 0x08097E7C - push {lr} - movs r0, #0xff - movs r1, #0 - movs r2, #0 - bl GetEventObjectIdByLocalIdAndMap - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08097EA8 - adds r0, r0, r1 - bl EventObjectClearHeldMovementIfFinished - bl sub_080D2C2C - bl UnfreezeEventObjects - pop {r0} - bx r0 - .align 2, 0 -_08097EA8: .4byte gUnknown_2036FF0 - thumb_func_end ScriptUnfreezeEventObjects - - thumb_func_start sub_08097EAC -sub_08097EAC: @ 0x08097EAC - push {r4, lr} - ldr r4, _08097EF4 - ldr r0, _08097EF8 - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r4 - ldrb r0, [r1] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _08097ECA - adds r0, r1, #0 - bl EventObjectClearHeldMovementIfFinished -_08097ECA: - movs r0, #0xff - movs r1, #0 - movs r2, #0 - bl GetEventObjectIdByLocalIdAndMap - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl EventObjectClearHeldMovementIfFinished - bl sub_080D2C2C - bl UnfreezeEventObjects - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097EF4: .4byte gUnknown_2036FF0 -_08097EF8: .4byte gUnknown_3005B50 - thumb_func_end sub_08097EAC - - thumb_func_start sub_08097EFC -sub_08097EFC: @ 0x08097EFC - push {lr} - ldr r0, _08097F18 - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08097F1C - adds r0, r0, r1 - ldr r1, _08097F20 - ldrb r1, [r1] - bl EventObjectFaceOppositeDirection - pop {r0} - bx r0 - .align 2, 0 -_08097F18: .4byte gUnknown_3005B50 -_08097F1C: .4byte gUnknown_2036FF0 -_08097F20: .4byte gUnknown_2037294 - thumb_func_end sub_08097EFC - - thumb_func_start sub_08097F24 -sub_08097F24: @ 0x08097F24 - push {lr} - ldr r0, _08097F3C - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08097F40 - adds r0, r0, r1 - bl EventObjectClearHeldMovementIfActive - pop {r0} - bx r0 - .align 2, 0 -_08097F3C: .4byte gUnknown_3005B50 -_08097F40: .4byte gUnknown_2036FF0 - thumb_func_end sub_08097F24 - - thumb_func_start sub_08097F44 -sub_08097F44: @ 0x08097F44 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _08097FB0 - adds r5, r0, r1 - ldrb r7, [r5, #0xc] - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _08097F70 - bl walkrun_is_standing_still - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #1 - bne _08097F70 - bl sub_0808B1C8 - strh r4, [r5, #8] -_08097F70: - movs r1, #0xa - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _08097F94 - ldr r0, _08097FB4 - lsls r1, r7, #3 - adds r1, r1, r7 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1] - lsls r0, r0, #0x1e - cmp r0, #0 - blt _08097F94 - adds r0, r1, #0 - bl FreezeEventObject - movs r0, #1 - strh r0, [r5, #0xa] -_08097F94: - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _08097FAA - movs r1, #0xa - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _08097FAA - adds r0, r6, #0 - bl DestroyTask -_08097FAA: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08097FB0: .4byte gUnknown_3005B60 -_08097FB4: .4byte gUnknown_2036FF0 - thumb_func_end sub_08097F44 - - thumb_func_start sub_08097FB8 -sub_08097FB8: @ 0x08097FB8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - movs r0, #0 - bl GetChosenApproachingTrainerEventObjectId - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _08098058 - ldrb r0, [r0] - cmp r0, #2 - bne _08098068 - movs r0, #1 - bl GetChosenApproachingTrainerEventObjectId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080979FC - ldr r7, _0809805C - adds r0, r7, #0 - movs r1, #0x50 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _08098060 - mov sb, r0 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - mov r1, sb - adds r6, r0, r1 - strh r4, [r6, #0xc] - ldr r2, _08098064 - mov r8, r2 - lsls r0, r4, #3 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r1, r0, r2 - ldrb r0, [r1] - lsls r0, r0, #0x1e - cmp r0, #0 - blt _08098022 - adds r0, r1, #0 - bl FreezeEventObject - movs r0, #1 - strh r0, [r6, #0xa] -_08098022: - adds r0, r7, #0 - movs r1, #0x51 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - mov r1, sb - adds r4, r0, r1 - strh r5, [r4, #0xc] - lsls r0, r5, #3 - adds r0, r0, r5 - lsls r0, r0, #2 - mov r2, r8 - adds r1, r0, r2 - ldrb r0, [r1] - lsls r0, r0, #0x1e - cmp r0, #0 - blt _080980A2 - adds r0, r1, #0 - bl FreezeEventObject - movs r0, #1 - strh r0, [r4, #0xa] - b _080980A2 - .align 2, 0 -_08098058: .4byte gUnknown_3005E08 -_0809805C: .4byte sub_08097F44 -_08098060: .4byte gUnknown_3005B60 -_08098064: .4byte gUnknown_2036FF0 -_08098068: - adds r0, r4, #0 - bl FreezeEventObjectsExceptOne - ldr r0, _080980B0 - movs r1, #0x50 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _080980B4 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r5, r0, r1 - strh r4, [r5, #0xc] - ldr r1, _080980B8 - lsls r0, r4, #3 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r1, r0, r1 - ldrb r0, [r1] - lsls r0, r0, #0x1e - cmp r0, #0 - blt _080980A2 - adds r0, r1, #0 - bl FreezeEventObject - movs r0, #1 - strh r0, [r5, #0xa] -_080980A2: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080980B0: .4byte sub_08097F44 -_080980B4: .4byte gUnknown_3005B60 -_080980B8: .4byte gUnknown_2036FF0 - thumb_func_end sub_08097FB8 - - thumb_func_start sub_080980BC -sub_080980BC: @ 0x080980BC - push {lr} - ldr r0, _080980D4 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080980D8 - bl sub_0808B658 - movs r0, #1 - b _080980DA - .align 2, 0 -_080980D4: .4byte sub_08097F44 -_080980D8: - movs r0, #0 -_080980DA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080980BC - - thumb_func_start GetWindowFrameTilesPal -GetWindowFrameTilesPal: @ 0x080980E0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x13 - bhi _080980F8 - lsls r0, r0, #3 - ldr r1, _080980F4 - adds r0, r0, r1 - b _080980FA - .align 2, 0 -_080980F4: .4byte gUnknown_84E8860 -_080980F8: - ldr r0, _08098100 -_080980FA: - pop {r1} - bx r1 - .align 2, 0 -_08098100: .4byte gUnknown_84E8860 - thumb_func_end GetWindowFrameTilesPal - - thumb_func_start LoadMessageBoxGfx -LoadMessageBoxGfx: @ 0x08098104 - push {r4, r5, lr} - adds r4, r1, #0 - adds r5, r2, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - movs r1, #0 - bl GetWindowAttribute - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08098140 - movs r2, #0xe0 - lsls r2, r2, #1 - adds r3, r4, #0 - bl LoadBgTiles - bl sub_080985EC - adds r1, r5, #0 - movs r2, #0x20 - bl LoadPalette - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08098140: .4byte gUnknown_84E85E0 - thumb_func_end LoadMessageBoxGfx - - thumb_func_start LoadUserWindowBorderGfx_ -LoadUserWindowBorderGfx_: @ 0x08098144 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - bl LoadUserWindowBorderGfx - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LoadUserWindowBorderGfx_ - - thumb_func_start LoadWindowGfx -LoadWindowGfx: @ 0x0809815C - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r4, r1, #0 - adds r6, r2, #0 - mov r8, r3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - mov r1, r8 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - movs r1, #0 - bl GetWindowAttribute - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _080981B0 - lsls r4, r4, #3 - adds r1, r4, r5 - ldr r1, [r1] - movs r2, #0x90 - lsls r2, r2, #1 - adds r3, r6, #0 - bl LoadBgTiles - adds r5, #4 - adds r4, r4, r5 - ldr r0, [r4] - mov r1, r8 - movs r2, #0x20 - bl LoadPalette - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080981B0: .4byte gUnknown_84E8860 - thumb_func_end LoadWindowGfx - - thumb_func_start LoadUserWindowBorderGfx -LoadUserWindowBorderGfx: @ 0x080981B4 - push {r4, lr} - adds r4, r1, #0 - adds r3, r2, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r1, _080981DC - ldr r1, [r1] - ldrb r1, [r1, #0x14] - lsrs r1, r1, #3 - adds r2, r4, #0 - bl LoadWindowGfx - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080981DC: .4byte gUnknown_3005AF0 - thumb_func_end LoadUserWindowBorderGfx - - thumb_func_start DrawTextBorderOuter -DrawTextBorderOuter: @ 0x080981E0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - adds r4, r0, #0 - adds r5, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0xc] - adds r0, r4, #0 - movs r1, #0 - bl GetWindowAttribute - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - adds r0, r4, #0 - movs r1, #1 - bl GetWindowAttribute - mov r8, r0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - adds r0, r4, #0 - movs r1, #2 - bl GetWindowAttribute - adds r6, r0, #0 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - adds r0, r4, #0 - movs r1, #3 - bl GetWindowAttribute - mov sb, r0 - mov r2, sb - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - mov sb, r2 - adds r0, r4, #0 - movs r1, #4 - bl GetWindowAttribute - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x10] - mov r0, r8 - subs r0, #1 - lsls r2, r0, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x14] - subs r4, r6, #1 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - mov sl, r0 - str r0, [sp] - str r0, [sp, #4] - ldr r2, [sp, #0xc] - str r2, [sp, #8] - adds r0, r7, #0 - adds r1, r5, #0 - ldr r2, [sp, #0x14] - adds r3, r4, #0 - bl FillBgTilemapBufferRect - adds r1, r5, #1 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r0, r8 - lsls r2, r0, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x18] - mov r2, sb - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x1c] - str r0, [sp] - mov r0, sl - str r0, [sp, #4] - ldr r2, [sp, #0xc] - str r2, [sp, #8] - adds r0, r7, #0 - ldr r2, [sp, #0x18] - adds r3, r4, #0 - bl FillBgTilemapBufferRect - adds r1, r5, #2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - add r8, sb - mov r0, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - mov r2, sl - str r2, [sp] - str r2, [sp, #4] - ldr r0, [sp, #0xc] - str r0, [sp, #8] - adds r0, r7, #0 - mov r2, r8 - adds r3, r4, #0 - bl FillBgTilemapBufferRect - adds r1, r5, #3 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r6, #0x18 - lsrs r2, r2, #0x18 - mov sb, r2 - mov r0, sl - str r0, [sp] - ldr r2, [sp, #0x10] - lsls r4, r2, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp, #4] - ldr r0, [sp, #0xc] - str r0, [sp, #8] - adds r0, r7, #0 - ldr r2, [sp, #0x14] - mov r3, sb - bl FillBgTilemapBufferRect - adds r1, r5, #5 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r2, sl - str r2, [sp] - str r4, [sp, #4] - ldr r0, [sp, #0xc] - str r0, [sp, #8] - adds r0, r7, #0 - mov r2, r8 - mov r3, sb - bl FillBgTilemapBufferRect - adds r1, r5, #6 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r2, [sp, #0x10] - adds r6, r6, r2 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov r0, sl - str r0, [sp] - str r0, [sp, #4] - ldr r2, [sp, #0xc] - str r2, [sp, #8] - adds r0, r7, #0 - ldr r2, [sp, #0x14] - adds r3, r6, #0 - bl FillBgTilemapBufferRect - adds r1, r5, #7 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, [sp, #0x1c] - str r0, [sp] - mov r2, sl - str r2, [sp, #4] - ldr r0, [sp, #0xc] - str r0, [sp, #8] - adds r0, r7, #0 - ldr r2, [sp, #0x18] - adds r3, r6, #0 - bl FillBgTilemapBufferRect - adds r5, #8 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - mov r2, sl - str r2, [sp] - str r2, [sp, #4] - ldr r0, [sp, #0xc] - str r0, [sp, #8] - adds r0, r7, #0 - adds r1, r5, #0 - mov r2, r8 - adds r3, r6, #0 - bl FillBgTilemapBufferRect - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end DrawTextBorderOuter - - thumb_func_start DrawTextBorderInner -DrawTextBorderInner: @ 0x08098368 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - adds r4, r0, #0 - mov sb, r1 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r0, sb - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sl, r2 - adds r0, r4, #0 - movs r1, #0 - bl GetWindowAttribute - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - adds r0, r4, #0 - movs r1, #1 - bl GetWindowAttribute - mov r8, r0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - adds r0, r4, #0 - movs r1, #2 - bl GetWindowAttribute - adds r6, r0, #0 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - adds r0, r4, #0 - movs r1, #3 - bl GetWindowAttribute - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - adds r0, r4, #0 - movs r1, #4 - bl GetWindowAttribute - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0xc] - mov r0, r8 - lsls r2, r0, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x10] - lsls r4, r6, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - str r0, [sp] - str r0, [sp, #4] - mov r0, sl - str r0, [sp, #8] - adds r0, r7, #0 - mov r1, sb - adds r3, r4, #0 - bl FillBgTilemapBufferRect - mov r1, sb - adds r1, #1 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r0, r8 - adds r0, #1 - lsls r2, r0, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x14] - subs r0, r5, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x18] - str r0, [sp] - movs r0, #1 - str r0, [sp, #4] - mov r0, sl - str r0, [sp, #8] - adds r0, r7, #0 - adds r3, r4, #0 - bl FillBgTilemapBufferRect - mov r1, sb - adds r1, #2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - add r8, r5 - movs r0, #1 - rsbs r0, r0, #0 - add r8, r0 - mov r0, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r0, #1 - str r0, [sp] - str r0, [sp, #4] - mov r0, sl - str r0, [sp, #8] - adds r0, r7, #0 - mov r2, r8 - adds r3, r4, #0 - bl FillBgTilemapBufferRect - mov r1, sb - adds r1, #3 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r5, r6, #1 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - movs r0, #1 - str r0, [sp] - ldr r4, [sp, #0xc] - subs r4, #2 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp, #4] - mov r0, sl - str r0, [sp, #8] - adds r0, r7, #0 - ldr r2, [sp, #0x10] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - mov r1, sb - adds r1, #5 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #1 - str r0, [sp] - str r4, [sp, #4] - mov r0, sl - str r0, [sp, #8] - adds r0, r7, #0 - mov r2, r8 - adds r3, r5, #0 - bl FillBgTilemapBufferRect - mov r1, sb - adds r1, #6 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, [sp, #0xc] - adds r6, r6, r0 - subs r6, #1 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - movs r0, #1 - str r0, [sp] - str r0, [sp, #4] - mov r0, sl - str r0, [sp, #8] - adds r0, r7, #0 - ldr r2, [sp, #0x10] - adds r3, r6, #0 - bl FillBgTilemapBufferRect - mov r1, sb - adds r1, #7 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, [sp, #0x18] - str r0, [sp] - movs r0, #1 - str r0, [sp, #4] - mov r0, sl - str r0, [sp, #8] - adds r0, r7, #0 - ldr r2, [sp, #0x14] - adds r3, r6, #0 - bl FillBgTilemapBufferRect - movs r0, #8 - add sb, r0 - mov r0, sb - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - movs r0, #1 - str r0, [sp] - str r0, [sp, #4] - mov r0, sl - str r0, [sp, #8] - adds r0, r7, #0 - mov r1, sb - mov r2, r8 - adds r3, r6, #0 - bl FillBgTilemapBufferRect - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end DrawTextBorderInner - - thumb_func_start rbox_fill_rectangle -rbox_fill_rectangle: @ 0x08098504 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #0xc - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - adds r0, r6, #0 - movs r1, #0 - bl GetWindowAttribute - mov sb, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - adds r0, r6, #0 - movs r1, #1 - bl GetWindowAttribute - mov r8, r0 - mov r1, r8 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r8, r1 - adds r0, r6, #0 - movs r1, #2 - bl GetWindowAttribute - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - adds r0, r6, #0 - movs r1, #3 - bl GetWindowAttribute - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r6, #0 - movs r1, #4 - bl GetWindowAttribute - movs r1, #1 - rsbs r1, r1, #0 - add r8, r1 - mov r1, r8 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - subs r5, #1 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - adds r4, #2 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp] - lsls r0, r0, #0x18 - movs r1, #0x80 - lsls r1, r1, #0x12 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - mov r0, sb - movs r1, #0 - mov r2, r8 - adds r3, r5, #0 - bl FillBgTilemapBufferRect - add sp, #0xc - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end rbox_fill_rectangle - - thumb_func_start stdpal_get -stdpal_get: @ 0x080985A0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _080985DC - lsls r0, r0, #2 - ldr r1, _080985B4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080985B4: .4byte _080985B8 -_080985B8: @ jump table - .4byte _080985CC @ case 0 - .4byte _080985D0 @ case 1 - .4byte _080985D4 @ case 2 - .4byte _080985D8 @ case 3 - .4byte _080985DC @ case 4 -_080985CC: - movs r0, #0 - b _080985DE -_080985D0: - movs r0, #0x10 - b _080985DE -_080985D4: - movs r0, #0x20 - b _080985DE -_080985D8: - movs r0, #0x30 - b _080985DE -_080985DC: - movs r0, #0x40 -_080985DE: - lsls r0, r0, #1 - ldr r1, _080985E8 - adds r0, r0, r1 - pop {r1} - bx r1 - .align 2, 0 -_080985E8: .4byte gUnknown_84E87A0 - thumb_func_end stdpal_get - - thumb_func_start sub_080985EC -sub_080985EC: @ 0x080985EC - ldr r0, _080985F0 - bx lr - .align 2, 0 -_080985F0: .4byte gUnknown_84E8840 - thumb_func_end sub_080985EC - - thumb_func_start sub_080985F4 -sub_080985F4: @ 0x080985F4 - push {r4, r5, lr} - adds r3, r1, #0 - adds r4, r2, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r2, _08098638 - ldr r5, _0809863C - ldr r1, [r5] - ldrb r1, [r1, #0x14] - lsrs r1, r1, #3 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r1, [r1] - movs r2, #0x90 - lsls r2, r2, #1 - bl LoadBgTiles - ldr r0, [r5] - ldrb r0, [r0, #0x14] - lsrs r0, r0, #3 - bl GetWindowFrameTilesPal - ldr r0, [r0, #4] - adds r1, r4, #0 - movs r2, #0x20 - bl LoadPalette - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08098638: .4byte gUnknown_84E8860 -_0809863C: .4byte gUnknown_3005AF0 - thumb_func_end sub_080985F4 - - thumb_func_start InitScriptContext -InitScriptContext: @ 0x08098640 - push {lr} - adds r3, r0, #0 - movs r0, #0 - strb r0, [r3, #1] - str r0, [r3, #8] - strb r0, [r3] - str r0, [r3, #4] - str r1, [r3, #0x5c] - str r2, [r3, #0x60] - movs r2, #0 - movs r1, #3 - adds r0, r3, #0 - adds r0, #0x70 -_0809865A: - str r2, [r0] - subs r0, #4 - subs r1, #1 - cmp r1, #0 - bge _0809865A - adds r1, r3, #0 - adds r1, #0xc - movs r2, #0 - adds r0, r3, #0 - adds r0, #0x58 -_0809866E: - str r2, [r0] - subs r0, #4 - cmp r0, r1 - bge _0809866E - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end InitScriptContext - - thumb_func_start SetupBytecodeScript -SetupBytecodeScript: @ 0x0809867C - str r1, [r0, #8] - movs r1, #1 - strb r1, [r0, #1] - movs r0, #1 - bx lr - .align 2, 0 - thumb_func_end SetupBytecodeScript - - thumb_func_start SetupNativeScript -SetupNativeScript: @ 0x08098688 - movs r2, #2 - strb r2, [r0, #1] - str r1, [r0, #4] - bx lr - thumb_func_end SetupNativeScript - - thumb_func_start StopScript -StopScript: @ 0x08098690 - movs r1, #0 - strb r1, [r0, #1] - str r1, [r0, #8] - bx lr - thumb_func_end StopScript - - thumb_func_start RunScriptCommand -RunScriptCommand: @ 0x08098698 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #1] - cmp r0, #0 - bne _080986A6 -_080986A2: - movs r0, #0 - b _08098718 -_080986A6: - ldrb r0, [r4, #1] - cmp r0, #1 - beq _080986DE - cmp r0, #1 - bgt _080986B6 - cmp r0, #0 - beq _080986A2 - b _08098716 -_080986B6: - cmp r0, #2 - bne _08098716 - ldr r0, [r4, #4] - cmp r0, #0 - beq _080986DA - bl _call_via_r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08098716 - strb r0, [r4, #1] - b _08098716 -_080986D0: - strb r2, [r4, #1] - b _080986A2 -_080986D4: - movs r0, #0 - strb r0, [r4, #1] - b _08098718 -_080986DA: - movs r0, #1 - strb r0, [r4, #1] -_080986DE: - ldr r2, [r4, #8] - cmp r2, #0 - beq _080986D0 - ldr r0, _080986F0 - ldr r0, [r0] - cmp r2, r0 - bne _080986F4 -_080986EC: - svc #2 - b _080986EC - .align 2, 0 -_080986F0: .4byte gUnknown_84E8900 -_080986F4: - ldrb r1, [r2] - adds r0, r2, #1 - str r0, [r4, #8] - lsls r1, r1, #2 - ldr r0, [r4, #0x5c] - adds r1, r0, r1 - ldr r0, [r4, #0x60] - cmp r1, r0 - bhs _080986D4 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080986DE -_08098716: - movs r0, #1 -_08098718: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end RunScriptCommand - - thumb_func_start ScriptPush -ScriptPush: @ 0x08098720 - push {lr} - adds r2, r0, #0 - adds r3, r1, #0 - ldrb r1, [r2] - adds r0, r1, #1 - cmp r0, #0x13 - bgt _08098742 - lsls r0, r1, #2 - adds r1, r2, #0 - adds r1, #0xc - adds r1, r1, r0 - str r3, [r1] - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - movs r0, #0 - b _08098744 -_08098742: - movs r0, #1 -_08098744: - pop {r1} - bx r1 - thumb_func_end ScriptPush - - thumb_func_start ScriptPop -ScriptPop: @ 0x08098748 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2] - cmp r0, #0 - beq _08098764 - subs r0, #1 - strb r0, [r2] - ldrb r1, [r2] - lsls r1, r1, #2 - adds r0, r2, #0 - adds r0, #0xc - adds r0, r0, r1 - ldr r0, [r0] - b _08098766 -_08098764: - movs r0, #0 -_08098766: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScriptPop - - thumb_func_start sub_0809876C -sub_0809876C: @ 0x0809876C - str r1, [r0, #8] - bx lr - thumb_func_end sub_0809876C - - thumb_func_start ScriptCall -ScriptCall: @ 0x08098770 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, [r4, #8] - bl ScriptPush - str r5, [r4, #8] - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end ScriptCall - - thumb_func_start ScriptReturn -ScriptReturn: @ 0x08098784 - push {r4, lr} - adds r4, r0, #0 - bl ScriptPop - str r0, [r4, #8] - pop {r4} - pop {r0} - bx r0 - thumb_func_end ScriptReturn - - thumb_func_start ScriptReadHalfword -ScriptReadHalfword: @ 0x08098794 - adds r3, r0, #0 - ldr r2, [r3, #8] - ldrb r0, [r2] - adds r2, #1 - str r2, [r3, #8] - ldrb r1, [r2] - lsls r1, r1, #8 - orrs r0, r1 - adds r2, #1 - str r2, [r3, #8] - bx lr - .align 2, 0 - thumb_func_end ScriptReadHalfword - - thumb_func_start ScriptReadWord -ScriptReadWord: @ 0x080987AC - push {r4, r5, r6, lr} - adds r3, r0, #0 - ldr r0, [r3, #8] - ldrb r6, [r0] - adds r0, #1 - str r0, [r3, #8] - ldrb r5, [r0] - adds r2, r0, #1 - str r2, [r3, #8] - ldrb r4, [r0, #1] - adds r1, r2, #1 - str r1, [r3, #8] - ldrb r0, [r2, #1] - adds r1, #1 - str r1, [r3, #8] - lsls r0, r0, #8 - adds r0, r0, r4 - lsls r0, r0, #8 - adds r0, r0, r5 - lsls r0, r0, #8 - adds r0, r0, r6 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end ScriptReadWord - - thumb_func_start sub_080987DC -sub_080987DC: @ 0x080987DC - ldr r1, _080987E4 - movs r0, #1 - strb r0, [r1] - bx lr - .align 2, 0 -_080987E4: .4byte gUnknown_3000F2C - thumb_func_end sub_080987DC - - thumb_func_start sub_080987E8 -sub_080987E8: @ 0x080987E8 - ldr r1, _080987F0 - movs r0, #0 - strb r0, [r1] - bx lr - .align 2, 0 -_080987F0: .4byte gUnknown_3000F2C - thumb_func_end sub_080987E8 - - thumb_func_start sub_080987F4 -sub_080987F4: @ 0x080987F4 - ldr r0, _080987FC - ldrb r0, [r0] - bx lr - .align 2, 0 -_080987FC: .4byte gUnknown_3000F2C - thumb_func_end sub_080987F4 - - thumb_func_start ScriptContext1_IsScriptSetUp -ScriptContext1_IsScriptSetUp: @ 0x08098800 - push {lr} - ldr r0, _08098810 - ldrb r0, [r0] - cmp r0, #0 - beq _08098814 - movs r0, #0 - b _08098816 - .align 2, 0 -_08098810: .4byte gUnknown_3000E38 -_08098814: - movs r0, #1 -_08098816: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScriptContext1_IsScriptSetUp - - thumb_func_start ScriptContext1_Init -ScriptContext1_Init: @ 0x0809881C - push {lr} - ldr r0, _08098834 - ldr r1, _08098838 - ldr r2, _0809883C - bl InitScriptContext - ldr r1, _08098840 - movs r0, #2 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08098834: .4byte gUnknown_3000E40 -_08098838: .4byte gUnknown_81DABAC -_0809883C: .4byte gUnknown_81DAF30 -_08098840: .4byte gUnknown_3000E38 - thumb_func_end ScriptContext1_Init - - thumb_func_start ScriptContext2_RunScript -ScriptContext2_RunScript: @ 0x08098844 - push {r4, lr} - ldr r4, _08098868 - ldrb r0, [r4] - cmp r0, #2 - beq _08098878 - cmp r0, #1 - beq _08098878 - bl sub_080987DC - ldr r0, _0809886C - bl RunScriptCommand - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08098870 - movs r0, #1 - b _0809887A - .align 2, 0 -_08098868: .4byte gUnknown_3000E38 -_0809886C: .4byte gUnknown_3000E40 -_08098870: - movs r0, #2 - strb r0, [r4] - bl sub_080987E8 -_08098878: - movs r0, #0 -_0809887A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScriptContext2_RunScript - - thumb_func_start ScriptContext1_SetupScript -ScriptContext1_SetupScript: @ 0x08098880 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080988A8 - ldr r1, _080988AC - ldr r2, _080988B0 - adds r0, r4, #0 - bl InitScriptContext - adds r0, r4, #0 - adds r1, r5, #0 - bl SetupBytecodeScript - bl sub_080987DC - ldr r1, _080988B4 - movs r0, #0 - strb r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080988A8: .4byte gUnknown_3000E40 -_080988AC: .4byte gUnknown_81DABAC -_080988B0: .4byte gUnknown_81DAF30 -_080988B4: .4byte gUnknown_3000E38 - thumb_func_end ScriptContext1_SetupScript - - thumb_func_start sub_080988B8 -sub_080988B8: @ 0x080988B8 - ldr r1, _080988C0 - movs r0, #1 - strb r0, [r1] - bx lr - .align 2, 0 -_080988C0: .4byte gUnknown_3000E38 - thumb_func_end sub_080988B8 - - thumb_func_start EnableBothScriptContexts -EnableBothScriptContexts: @ 0x080988C4 - push {lr} - ldr r1, _080988D4 - movs r0, #0 - strb r0, [r1] - bl sub_080987DC - pop {r0} - bx r0 - .align 2, 0 -_080988D4: .4byte gUnknown_3000E38 - thumb_func_end EnableBothScriptContexts - - thumb_func_start ScriptContext2_RunNewScript -ScriptContext2_RunNewScript: @ 0x080988D8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08098904 - ldr r1, _08098908 - ldr r2, _0809890C - adds r0, r4, #0 - bl InitScriptContext - adds r0, r4, #0 - adds r1, r5, #0 - bl SetupBytecodeScript -_080988F0: - ldr r0, _08098904 - bl RunScriptCommand - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080988F0 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08098904: .4byte gUnknown_3000EB8 -_08098908: .4byte gUnknown_81DABAC -_0809890C: .4byte gUnknown_81DAF30 - thumb_func_end ScriptContext2_RunNewScript - - thumb_func_start MapHeaderGetScriptTable -MapHeaderGetScriptTable: @ 0x08098910 - push {lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r0, _08098928 - ldr r2, [r0, #8] - cmp r2, #0 - beq _08098924 -_0809891E: - ldrb r0, [r2] - cmp r0, #0 - bne _0809892C -_08098924: - movs r0, #0 - b _0809894A - .align 2, 0 -_08098928: .4byte gUnknown_2036FB8 -_0809892C: - cmp r0, r1 - beq _08098934 - adds r2, #5 - b _0809891E -_08098934: - adds r2, #1 - ldrb r0, [r2] - ldrb r1, [r2, #1] - lsls r1, r1, #8 - adds r0, r0, r1 - ldrb r1, [r2, #2] - lsls r1, r1, #0x10 - adds r0, r0, r1 - ldrb r1, [r2, #3] - lsls r1, r1, #0x18 - adds r0, r0, r1 -_0809894A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MapHeaderGetScriptTable - - thumb_func_start MapHeaderRunScriptType -MapHeaderRunScriptType: @ 0x08098950 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl MapHeaderGetScriptTable - cmp r0, #0 - beq _08098962 - bl ScriptContext2_RunNewScript -_08098962: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end MapHeaderRunScriptType - - thumb_func_start MapHeaderCheckScriptTable -MapHeaderCheckScriptTable: @ 0x08098968 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl MapHeaderGetScriptTable - adds r6, r0, #0 - cmp r6, #0 - beq _08098984 -_08098978: - ldrb r1, [r6] - ldrb r0, [r6, #1] - lsls r0, r0, #8 - orrs r1, r0 - cmp r1, #0 - bne _08098988 -_08098984: - movs r0, #0 - b _080989C2 -_08098988: - adds r6, #2 - ldrb r5, [r6] - ldrb r0, [r6, #1] - lsls r0, r0, #8 - orrs r5, r0 - adds r6, #2 - adds r0, r1, #0 - bl VarGet - adds r4, r0, #0 - adds r0, r5, #0 - bl VarGet - lsls r4, r4, #0x10 - lsls r0, r0, #0x10 - cmp r4, r0 - beq _080989AE - adds r6, #4 - b _08098978 -_080989AE: - ldrb r0, [r6] - ldrb r1, [r6, #1] - lsls r1, r1, #8 - adds r0, r0, r1 - ldrb r1, [r6, #2] - lsls r1, r1, #0x10 - adds r0, r0, r1 - ldrb r1, [r6, #3] - lsls r1, r1, #0x18 - adds r0, r0, r1 -_080989C2: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end MapHeaderCheckScriptTable - - thumb_func_start sub_080989C8 -sub_080989C8: @ 0x080989C8 - push {lr} - movs r0, #1 - bl MapHeaderRunScriptType - pop {r0} - bx r0 - thumb_func_end sub_080989C8 - - thumb_func_start RunOnTransitionMapScript -RunOnTransitionMapScript: @ 0x080989D4 - push {lr} - movs r0, #3 - bl MapHeaderRunScriptType - pop {r0} - bx r0 - thumb_func_end RunOnTransitionMapScript - - thumb_func_start RunOnResumeMapScript -RunOnResumeMapScript: @ 0x080989E0 - push {lr} - movs r0, #5 - bl MapHeaderRunScriptType - pop {r0} - bx r0 - thumb_func_end RunOnResumeMapScript - - thumb_func_start RunOnReturnToFieldMapScript -RunOnReturnToFieldMapScript: @ 0x080989EC - push {lr} - movs r0, #7 - bl MapHeaderRunScriptType - pop {r0} - bx r0 - thumb_func_end RunOnReturnToFieldMapScript - - thumb_func_start RunOnDiveWarpMapScript -RunOnDiveWarpMapScript: @ 0x080989F8 - push {lr} - movs r0, #6 - bl MapHeaderRunScriptType - pop {r0} - bx r0 - thumb_func_end RunOnDiveWarpMapScript - - thumb_func_start TryRunOnFrameMapScript -TryRunOnFrameMapScript: @ 0x08098A04 - push {lr} - movs r0, #2 - bl MapHeaderCheckScriptTable - cmp r0, #0 - beq _08098A18 - bl ScriptContext1_SetupScript - movs r0, #1 - b _08098A1A -_08098A18: - movs r0, #0 -_08098A1A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end TryRunOnFrameMapScript - - thumb_func_start TryRunOnWarpIntoMapScript -TryRunOnWarpIntoMapScript: @ 0x08098A20 - push {lr} - movs r0, #4 - bl MapHeaderCheckScriptTable - cmp r0, #0 - beq _08098A30 - bl ScriptContext2_RunNewScript -_08098A30: - pop {r0} - bx r0 - thumb_func_end TryRunOnWarpIntoMapScript - - thumb_func_start CalculateRamScriptChecksum -CalculateRamScriptChecksum: @ 0x08098A34 - push {lr} - ldr r0, _08098A50 - ldr r0, [r0] - ldr r1, _08098A54 - adds r0, r0, r1 - movs r1, #0xfa - lsls r1, r1, #2 - bl CalcCRC16WithTable - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 -_08098A50: .4byte gUnknown_3005AEC -_08098A54: .4byte 0x0000372C - thumb_func_end CalculateRamScriptChecksum - - thumb_func_start sub_08098A58 -sub_08098A58: @ 0x08098A58 - push {lr} - sub sp, #4 - movs r0, #0 - str r0, [sp] - ldr r0, _08098A78 - ldr r1, [r0] - ldr r0, _08098A7C - adds r1, r1, r0 - ldr r2, _08098A80 - mov r0, sp - bl CpuSet - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_08098A78: .4byte gUnknown_3005AEC -_08098A7C: .4byte 0x00003728 -_08098A80: .4byte 0x050000FB - thumb_func_end sub_08098A58 - - thumb_func_start InitRamScript -InitRamScript: @ 0x08098A84 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - str r0, [sp] - ldr r0, [sp, #0x24] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r8, r1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sb, r2 - lsls r3, r3, #0x18 - lsrs r7, r3, #0x18 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _08098AE8 - mov sl, r0 - ldr r5, [r0] - ldr r1, _08098AEC - adds r4, r5, r1 - bl sub_08098A58 - ldr r0, _08098AF0 - cmp r8, r0 - bhi _08098AFC - movs r0, #0x33 - strb r0, [r4] - mov r2, sb - strb r2, [r4, #1] - strb r7, [r4, #2] - strb r6, [r4, #3] - ldr r1, _08098AF4 - adds r0, r5, r1 - ldr r1, [sp] - mov r2, r8 - bl memcpy - bl CalculateRamScriptChecksum - mov r2, sl - ldr r1, [r2] - ldr r2, _08098AF8 - adds r1, r1, r2 - str r0, [r1] - movs r0, #1 - b _08098AFE - .align 2, 0 -_08098AE8: .4byte gUnknown_3005AEC -_08098AEC: .4byte 0x0000372C -_08098AF0: .4byte 0x000003E3 -_08098AF4: .4byte 0x00003730 -_08098AF8: .4byte 0x00003728 -_08098AFC: - movs r0, #0 -_08098AFE: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end InitRamScript - - thumb_func_start GetRamScript -GetRamScript: @ 0x08098B10 - push {r4, r5, r6, r7, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r6, _08098B60 - ldr r5, [r6] - ldr r0, _08098B64 - adds r2, r5, r0 - ldr r7, _08098B68 - movs r0, #0 - str r0, [r7] - ldrb r0, [r2] - cmp r0, #0x33 - bne _08098B78 - ldrb r1, [r2, #1] - movs r0, #4 - ldrsb r0, [r5, r0] - cmp r1, r0 - bne _08098B78 - ldrb r1, [r2, #2] - movs r0, #5 - ldrsb r0, [r5, r0] - cmp r1, r0 - bne _08098B78 - ldrb r0, [r2, #3] - cmp r0, r3 - bne _08098B78 - bl CalculateRamScriptChecksum - ldr r1, [r6] - ldr r2, _08098B6C - adds r1, r1, r2 - ldr r1, [r1] - cmp r0, r1 - bne _08098B74 - str r4, [r7] - ldr r1, _08098B70 - adds r0, r5, r1 - b _08098B7A - .align 2, 0 -_08098B60: .4byte gUnknown_3005AEC -_08098B64: .4byte 0x0000372C -_08098B68: .4byte gUnknown_2037260 -_08098B6C: .4byte 0x00003728 -_08098B70: .4byte 0x00003730 -_08098B74: - bl sub_08098A58 -_08098B78: - adds r0, r4, #0 -_08098B7A: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end GetRamScript - - thumb_func_start ValidateSavedRamScript -ValidateSavedRamScript: @ 0x08098B80 - push {r4, lr} - ldr r4, _08098BB8 - ldr r0, [r4] - ldr r2, _08098BBC - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, #0x33 - bne _08098BC4 - ldrb r0, [r1, #1] - cmp r0, #0xff - bne _08098BC4 - ldrb r0, [r1, #2] - cmp r0, #0xff - bne _08098BC4 - ldrb r0, [r1, #3] - cmp r0, #0xff - bne _08098BC4 - bl CalculateRamScriptChecksum - ldr r1, [r4] - ldr r2, _08098BC0 - adds r1, r1, r2 - ldr r1, [r1] - cmp r0, r1 - bne _08098BC4 - movs r0, #1 - b _08098BC6 - .align 2, 0 -_08098BB8: .4byte gUnknown_3005AEC -_08098BBC: .4byte 0x0000372C -_08098BC0: .4byte 0x00003728 -_08098BC4: - movs r0, #0 -_08098BC6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end ValidateSavedRamScript - - thumb_func_start GetSavedRamScriptIfValid -GetSavedRamScriptIfValid: @ 0x08098BCC - push {r4, r5, r6, lr} - ldr r6, _08098C0C - ldr r5, [r6] - ldr r0, _08098C10 - adds r4, r5, r0 - bl CreateSetStatusSprite - cmp r0, #0 - beq _08098C20 - ldrb r0, [r4] - cmp r0, #0x33 - bne _08098C20 - ldrb r0, [r4, #1] - cmp r0, #0xff - bne _08098C20 - ldrb r0, [r4, #2] - cmp r0, #0xff - bne _08098C20 - ldrb r0, [r4, #3] - cmp r0, #0xff - bne _08098C20 - bl CalculateRamScriptChecksum - ldr r1, [r6] - ldr r2, _08098C14 - adds r1, r1, r2 - ldr r1, [r1] - cmp r0, r1 - bne _08098C1C - ldr r1, _08098C18 - adds r0, r5, r1 - b _08098C22 - .align 2, 0 -_08098C0C: .4byte gUnknown_3005AEC -_08098C10: .4byte 0x0000372C -_08098C14: .4byte 0x00003728 -_08098C18: .4byte 0x00003730 -_08098C1C: - bl sub_08098A58 -_08098C20: - movs r0, #0 -_08098C22: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end GetSavedRamScriptIfValid - - thumb_func_start InitRamScript_NoEventObject -InitRamScript_NoEventObject: @ 0x08098C28 - push {lr} - sub sp, #4 - adds r2, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, _08098C50 - cmp r1, r0 - bls _08098C3A - adds r1, r0, #0 -_08098C3A: - movs r0, #0xff - str r0, [sp] - adds r0, r2, #0 - movs r2, #0xff - movs r3, #0xff - bl InitRamScript - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_08098C50: .4byte 0x000003E3 - thumb_func_end InitRamScript_NoEventObject - - thumb_func_start sub_08098C54 -sub_08098C54: @ 0x08098C54 - movs r0, #0 - bx lr - thumb_func_end sub_08098C54 - - thumb_func_start sub_08098C58 -sub_08098C58: @ 0x08098C58 - movs r0, #0 - bx lr - thumb_func_end sub_08098C58 - - thumb_func_start ScrCmd_end -ScrCmd_end: @ 0x08098C5C - push {lr} - bl StopScript - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_end - - thumb_func_start ScrCmd_gotonative -ScrCmd_gotonative: @ 0x08098C68 - push {r4, lr} - adds r4, r0, #0 - bl ScriptReadWord - adds r1, r0, #0 - adds r0, r4, #0 - bl SetupNativeScript - movs r0, #1 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_gotonative - - thumb_func_start ScrCmd_special -ScrCmd_special: @ 0x08098C80 - push {lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - ldr r1, _08098C9C - lsrs r0, r0, #0xe - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - thumb_func_end ScrCmd_special - - thumb_func_start sub_08098C94 -sub_08098C94: @ 0x08098C94 - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_08098C9C: .4byte gUnknown_81DAF8C - thumb_func_end sub_08098C94 - - thumb_func_start ScrCmd_specialvar -ScrCmd_specialvar: @ 0x08098CA0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetVarPointer - adds r6, r0, #0 - ldr r4, _08098CD0 - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0xe - adds r0, r0, r4 - ldr r0, [r0] - bl _call_via_r0 - strh r0, [r6] - thumb_func_end ScrCmd_specialvar - - thumb_func_start sub_08098CC8 -sub_08098CC8: @ 0x08098CC8 - movs r0, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08098CD0: .4byte gUnknown_81DAF8C - thumb_func_end sub_08098CC8 - - thumb_func_start sub_08098CD4 -sub_08098CD4: @ 0x08098CD4 - push {lr} - bl ScriptReadWord - bl _call_via_r0 - movs r0, #0 - thumb_func_end sub_08098CD4 - - thumb_func_start sub_08098CE0 -sub_08098CE0: @ 0x08098CE0 - pop {r1} - bx r1 - thumb_func_end sub_08098CE0 - - thumb_func_start ScrCmd_waitstate -ScrCmd_waitstate: @ 0x08098CE4 - push {lr} - bl sub_080988B8 - movs r0, #1 - pop {r1} - bx r1 - thumb_func_end ScrCmd_waitstate - - thumb_func_start ScrCmd_goto -ScrCmd_goto: @ 0x08098CF0 - push {r4, lr} - adds r4, r0, #0 - bl ScriptReadWord - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_0809876C - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_goto - - thumb_func_start ScrCmd_return -ScrCmd_return: @ 0x08098D08 - push {lr} - bl ScriptReturn - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_return - - thumb_func_start ScrCmd_call -ScrCmd_call: @ 0x08098D14 - push {r4, lr} - adds r4, r0, #0 - bl ScriptReadWord - adds r1, r0, #0 - adds r0, r4, #0 - bl ScriptCall - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_call - - thumb_func_start ScrCmd_goto_if -ScrCmd_goto_if: @ 0x08098D2C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, [r5, #8] - ldrb r4, [r0] - adds r0, #1 - str r0, [r5, #8] - adds r0, r5, #0 - bl ScriptReadWord - adds r2, r0, #0 - ldr r1, _08098D64 - lsls r0, r4, #1 - adds r0, r0, r4 - ldrb r3, [r5, #2] - adds r0, r0, r3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - bne _08098D5A - adds r0, r5, #0 - adds r1, r2, #0 - bl sub_0809876C -_08098D5A: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08098D64: .4byte gUnknown_84E8904 - thumb_func_end ScrCmd_goto_if - - thumb_func_start ScrCmd_call_if -ScrCmd_call_if: @ 0x08098D68 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, [r5, #8] - ldrb r4, [r0] - adds r0, #1 - str r0, [r5, #8] - adds r0, r5, #0 - bl ScriptReadWord - adds r2, r0, #0 - ldr r1, _08098DA0 - lsls r0, r4, #1 - adds r0, r0, r4 - ldrb r3, [r5, #2] - adds r0, r0, r3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - bne _08098D96 - adds r0, r5, #0 - adds r1, r2, #0 - bl ScriptCall -_08098D96: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08098DA0: .4byte gUnknown_84E8904 - thumb_func_end ScrCmd_call_if - - thumb_func_start ScrCmd_setvaddress -ScrCmd_setvaddress: @ 0x08098DA4 - push {r4, lr} - ldr r4, [r0, #8] - subs r4, #1 - bl ScriptReadWord - ldr r1, _08098DBC - subs r0, r0, r4 - str r0, [r1] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08098DBC: .4byte gUnknown_2037264 - thumb_func_end ScrCmd_setvaddress - - thumb_func_start ScrCmd_vgoto -ScrCmd_vgoto: @ 0x08098DC0 - push {r4, lr} - adds r4, r0, #0 - bl ScriptReadWord - adds r1, r0, #0 - ldr r0, _08098DE0 - ldr r0, [r0] - subs r1, r1, r0 - adds r0, r4, #0 - bl sub_0809876C - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08098DE0: .4byte gUnknown_2037264 - thumb_func_end ScrCmd_vgoto - - thumb_func_start ScrCmd_vcall -ScrCmd_vcall: @ 0x08098DE4 - push {r4, lr} - adds r4, r0, #0 - bl ScriptReadWord - adds r1, r0, #0 - ldr r0, _08098E04 - ldr r0, [r0] - subs r1, r1, r0 - adds r0, r4, #0 - bl ScriptCall - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08098E04: .4byte gUnknown_2037264 - thumb_func_end ScrCmd_vcall - - thumb_func_start ScrCmd_vgoto_if -ScrCmd_vgoto_if: @ 0x08098E08 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, [r5, #8] - ldrb r4, [r0] - adds r0, #1 - str r0, [r5, #8] - adds r0, r5, #0 - bl ScriptReadWord - ldr r1, _08098E44 - ldr r1, [r1] - subs r2, r0, r1 - ldr r1, _08098E48 - lsls r0, r4, #1 - adds r0, r0, r4 - ldrb r3, [r5, #2] - adds r0, r0, r3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - bne _08098E3A - adds r0, r5, #0 - adds r1, r2, #0 - bl sub_0809876C -_08098E3A: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08098E44: .4byte gUnknown_2037264 -_08098E48: .4byte gUnknown_84E8904 - thumb_func_end ScrCmd_vgoto_if - - thumb_func_start ScrCmd_vcall_if -ScrCmd_vcall_if: @ 0x08098E4C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, [r5, #8] - ldrb r4, [r0] - adds r0, #1 - str r0, [r5, #8] - adds r0, r5, #0 - bl ScriptReadWord - ldr r1, _08098E88 - ldr r1, [r1] - subs r2, r0, r1 - ldr r1, _08098E8C - lsls r0, r4, #1 - adds r0, r0, r4 - ldrb r3, [r5, #2] - adds r0, r0, r3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - bne _08098E7E - adds r0, r5, #0 - adds r1, r2, #0 - bl ScriptCall -_08098E7E: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08098E88: .4byte gUnknown_2037264 -_08098E8C: .4byte gUnknown_84E8904 - thumb_func_end ScrCmd_vcall_if - - thumb_func_start ScrCmd_gotostd -ScrCmd_gotostd: @ 0x08098E90 - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #8] - ldrb r1, [r0] - adds r0, #1 - str r0, [r2, #8] - lsls r1, r1, #2 - ldr r0, _08098EB8 - adds r1, r1, r0 - ldr r0, _08098EBC - cmp r1, r0 - bhs _08098EB0 - ldr r1, [r1] - adds r0, r2, #0 - bl sub_0809876C -_08098EB0: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_08098EB8: .4byte gUnknown_81DB7BC -_08098EBC: .4byte gUnknown_81DB7E8 - thumb_func_end ScrCmd_gotostd - - thumb_func_start ScrCmd_callstd -ScrCmd_callstd: @ 0x08098EC0 - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #8] - ldrb r1, [r0] - adds r0, #1 - str r0, [r2, #8] - lsls r1, r1, #2 - ldr r0, _08098EE8 - adds r1, r1, r0 - ldr r0, _08098EEC - cmp r1, r0 - bhs _08098EE0 - ldr r1, [r1] - adds r0, r2, #0 - bl ScriptCall -_08098EE0: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_08098EE8: .4byte gUnknown_81DB7BC -_08098EEC: .4byte gUnknown_81DB7E8 - thumb_func_end ScrCmd_callstd - - thumb_func_start ScrCmd_gotostd_if -ScrCmd_gotostd_if: @ 0x08098EF0 - push {r4, lr} - adds r3, r0, #0 - ldr r0, [r3, #8] - ldrb r2, [r0] - adds r0, #1 - str r0, [r3, #8] - ldrb r4, [r0] - adds r0, #1 - str r0, [r3, #8] - ldr r1, _08098F30 - lsls r0, r2, #1 - adds r0, r0, r2 - ldrb r2, [r3, #2] - adds r0, r0, r2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - bne _08098F28 - lsls r0, r4, #2 - ldr r1, _08098F34 - adds r1, r0, r1 - ldr r0, _08098F38 - cmp r1, r0 - bhs _08098F28 - ldr r1, [r1] - adds r0, r3, #0 - bl sub_0809876C -_08098F28: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08098F30: .4byte gUnknown_84E8904 -_08098F34: .4byte gUnknown_81DB7BC -_08098F38: .4byte gUnknown_81DB7E8 - thumb_func_end ScrCmd_gotostd_if - - thumb_func_start ScrCmd_callstd_if -ScrCmd_callstd_if: @ 0x08098F3C - push {r4, lr} - adds r3, r0, #0 - ldr r0, [r3, #8] - ldrb r2, [r0] - adds r0, #1 - str r0, [r3, #8] - ldrb r4, [r0] - adds r0, #1 - str r0, [r3, #8] - ldr r1, _08098F7C - lsls r0, r2, #1 - adds r0, r0, r2 - ldrb r2, [r3, #2] - adds r0, r0, r2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - bne _08098F74 - lsls r0, r4, #2 - ldr r1, _08098F80 - adds r1, r0, r1 - ldr r0, _08098F84 - cmp r1, r0 - bhs _08098F74 - ldr r1, [r1] - adds r0, r3, #0 - bl ScriptCall -_08098F74: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08098F7C: .4byte gUnknown_84E8904 -_08098F80: .4byte gUnknown_81DB7BC -_08098F84: .4byte gUnknown_81DB7E8 - thumb_func_end ScrCmd_callstd_if - - thumb_func_start ScrCmd_returnram -ScrCmd_returnram: @ 0x08098F88 - push {lr} - ldr r1, _08098F98 - ldr r1, [r1] - bl sub_0809876C - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_08098F98: .4byte gUnknown_2037260 - thumb_func_end ScrCmd_returnram - - thumb_func_start ScrCmd_killscript -ScrCmd_killscript: @ 0x08098F9C - push {r4, lr} - adds r4, r0, #0 - bl sub_08098A58 - adds r0, r4, #0 - bl StopScript - movs r0, #1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_killscript - - thumb_func_start ScrCmd_setmysteryeventstatus -ScrCmd_setmysteryeventstatus: @ 0x08098FB4 - push {lr} - ldr r1, [r0, #8] - ldrb r2, [r1] - adds r1, #1 - str r1, [r0, #8] - adds r0, r2, #0 - bl SetMysteryEventScriptStatus - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_setmysteryeventstatus - - thumb_func_start ScrCmd_loadword -ScrCmd_loadword: @ 0x08098FCC - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, [r4, #8] - ldrb r5, [r0] - adds r0, #1 - str r0, [r4, #8] - adds r0, r4, #0 - bl ScriptReadWord - lsls r5, r5, #2 - adds r4, #0x64 - adds r4, r4, r5 - str r0, [r4] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_loadword - - thumb_func_start ScrCmd_loadbytefromaddr -ScrCmd_loadbytefromaddr: @ 0x08098FF0 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, [r4, #8] - ldrb r5, [r0] - adds r0, #1 - str r0, [r4, #8] - adds r0, r4, #0 - bl ScriptReadWord - lsls r5, r5, #2 - adds r4, #0x64 - adds r4, r4, r5 - ldrb r0, [r0] - str r0, [r4] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_loadbytefromaddr - - thumb_func_start ScrCmd_writebytetoaddr -ScrCmd_writebytetoaddr: @ 0x08099014 - push {r4, lr} - ldr r1, [r0, #8] - ldrb r4, [r1] - adds r1, #1 - str r1, [r0, #8] - bl ScriptReadWord - strb r4, [r0] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_writebytetoaddr - - thumb_func_start ScrCmd_loadbyte -ScrCmd_loadbyte: @ 0x0809902C - ldr r1, [r0, #8] - ldrb r3, [r1] - adds r1, #1 - str r1, [r0, #8] - lsls r3, r3, #2 - adds r2, r0, #0 - adds r2, #0x64 - adds r2, r2, r3 - ldrb r3, [r1] - str r3, [r2] - adds r1, #1 - str r1, [r0, #8] - movs r0, #0 - bx lr - thumb_func_end ScrCmd_loadbyte - - thumb_func_start ScrCmd_setptrbyte -ScrCmd_setptrbyte: @ 0x08099048 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, [r4, #8] - ldrb r5, [r0] - adds r0, #1 - str r0, [r4, #8] - adds r0, r4, #0 - bl ScriptReadWord - lsls r5, r5, #2 - adds r4, #0x64 - adds r4, r4, r5 - ldr r1, [r4] - strb r1, [r0] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setptrbyte - - thumb_func_start ScrCmd_copylocal -ScrCmd_copylocal: @ 0x0809906C - ldr r1, [r0, #8] - ldrb r3, [r1] - adds r1, #1 - str r1, [r0, #8] - ldrb r2, [r1] - adds r1, #1 - str r1, [r0, #8] - lsls r3, r3, #2 - adds r0, #0x64 - adds r3, r0, r3 - lsls r2, r2, #2 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r3] - movs r0, #0 - bx lr - thumb_func_end ScrCmd_copylocal - - thumb_func_start ScrCmd_copybyte -ScrCmd_copybyte: @ 0x0809908C - push {r4, r5, lr} - adds r4, r0, #0 - bl ScriptReadWord - adds r5, r0, #0 - adds r0, r4, #0 - bl ScriptReadWord - ldrb r0, [r0] - strb r0, [r5] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_copybyte - - thumb_func_start ScrCmd_setvar -ScrCmd_setvar: @ 0x080990A8 - push {r4, r5, lr} - adds r5, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetVarPointer - adds r4, r0, #0 - adds r0, r5, #0 - bl ScriptReadHalfword - strh r0, [r4] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_setvar - - thumb_func_start ScrCmd_copyvar -ScrCmd_copyvar: @ 0x080990CC - push {r4, r5, lr} - adds r4, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetVarPointer - adds r5, r0, #0 - adds r0, r4, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetVarPointer - ldrh r0, [r0] - strh r0, [r5] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_copyvar - - thumb_func_start ScrCmd_setorcopyvar -ScrCmd_setorcopyvar: @ 0x080990F8 - push {r4, r5, lr} - adds r4, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetVarPointer - adds r5, r0, #0 - adds r0, r4, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - strh r0, [r5] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_setorcopyvar - - thumb_func_start compare_012 -compare_012: @ 0x08099124 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - cmp r0, r1 - bhs _08099136 - movs r0, #0 - b _08099140 -_08099136: - cmp r0, r1 - beq _0809913E - movs r0, #2 - b _08099140 -_0809913E: - movs r0, #1 -_08099140: - pop {r1} - bx r1 - thumb_func_end compare_012 - - thumb_func_start ScrCmd_compare_local_to_local -ScrCmd_compare_local_to_local: @ 0x08099144 - push {r4, lr} - adds r4, r0, #0 - ldr r2, [r4, #8] - ldrb r0, [r2] - lsls r0, r0, #2 - adds r3, r4, #0 - adds r3, #0x64 - adds r0, r3, r0 - ldrb r0, [r0] - adds r2, #1 - str r2, [r4, #8] - ldrb r1, [r2] - lsls r1, r1, #2 - adds r3, r3, r1 - ldrb r1, [r3] - adds r2, #1 - str r2, [r4, #8] - bl compare_012 - strb r0, [r4, #2] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_compare_local_to_local - - thumb_func_start ScrCmd_compare_local_to_value -ScrCmd_compare_local_to_value: @ 0x08099174 - push {r4, lr} - adds r4, r0, #0 - ldr r2, [r4, #8] - ldrb r1, [r2] - lsls r1, r1, #2 - adds r0, #0x64 - adds r0, r0, r1 - ldrb r0, [r0] - adds r2, #1 - str r2, [r4, #8] - ldrb r1, [r2] - adds r2, #1 - str r2, [r4, #8] - bl compare_012 - strb r0, [r4, #2] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_compare_local_to_value - - thumb_func_start ScrCmd_compare_local_to_addr -ScrCmd_compare_local_to_addr: @ 0x0809919C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r2, [r4, #8] - ldrb r1, [r2] - lsls r1, r1, #2 - adds r0, #0x64 - adds r0, r0, r1 - ldrb r5, [r0] - adds r2, #1 - str r2, [r4, #8] - adds r0, r4, #0 - bl ScriptReadWord - ldrb r1, [r0] - adds r0, r5, #0 - bl compare_012 - strb r0, [r4, #2] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_compare_local_to_addr - - thumb_func_start ScrCmd_compare_addr_to_local -ScrCmd_compare_addr_to_local: @ 0x080991C8 - push {r4, lr} - adds r4, r0, #0 - bl ScriptReadWord - ldrb r0, [r0] - ldr r3, [r4, #8] - ldrb r2, [r3] - lsls r2, r2, #2 - adds r1, r4, #0 - adds r1, #0x64 - adds r1, r1, r2 - ldrb r1, [r1] - adds r3, #1 - str r3, [r4, #8] - bl compare_012 - strb r0, [r4, #2] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_compare_addr_to_local - - thumb_func_start ScrCmd_compare_addr_to_value -ScrCmd_compare_addr_to_value: @ 0x080991F4 - push {r4, lr} - adds r4, r0, #0 - bl ScriptReadWord - ldrb r0, [r0] - ldr r2, [r4, #8] - ldrb r1, [r2] - adds r2, #1 - str r2, [r4, #8] - bl compare_012 - strb r0, [r4, #2] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_compare_addr_to_value - - thumb_func_start ScrCmd_compare_addr_to_addr -ScrCmd_compare_addr_to_addr: @ 0x08099214 - push {r4, r5, lr} - adds r4, r0, #0 - bl ScriptReadWord - ldrb r5, [r0] - adds r0, r4, #0 - bl ScriptReadWord - ldrb r1, [r0] - adds r0, r5, #0 - bl compare_012 - strb r0, [r4, #2] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_compare_addr_to_addr - - thumb_func_start ScrCmd_compare_var_to_value -ScrCmd_compare_var_to_value: @ 0x08099238 - push {r4, r5, lr} - adds r4, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetVarPointer - ldrh r5, [r0] - adds r0, r4, #0 - bl ScriptReadHalfword - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r5, #0 - bl compare_012 - strb r0, [r4, #2] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_compare_var_to_value - - thumb_func_start ScrCmd_compare_var_to_var -ScrCmd_compare_var_to_var: @ 0x08099268 - push {r4, r5, lr} - adds r4, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetVarPointer - adds r5, r0, #0 - adds r0, r4, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetVarPointer - ldrh r2, [r5] - ldrh r1, [r0] - adds r0, r2, #0 - bl compare_012 - strb r0, [r4, #2] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_compare_var_to_var - - thumb_func_start ScrCmd_addvar -ScrCmd_addvar: @ 0x0809929C - push {r4, r5, lr} - adds r5, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetVarPointer - adds r4, r0, #0 - adds r0, r5, #0 - bl ScriptReadHalfword - ldrh r1, [r4] - adds r0, r0, r1 - strh r0, [r4] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_addvar - - thumb_func_start ScrCmd_subvar -ScrCmd_subvar: @ 0x080992C4 - push {r4, r5, lr} - adds r4, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetVarPointer - adds r5, r0, #0 - adds r0, r4, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - ldrh r1, [r5] - subs r1, r1, r0 - strh r1, [r5] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_subvar - - thumb_func_start ScrCmd_random -ScrCmd_random: @ 0x080992F4 - push {r4, r5, lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r5, _08099324 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r4, #0 - bl __umodsi3 - strh r0, [r5] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08099324: .4byte gUnknown_2037290 - thumb_func_end ScrCmd_random - - thumb_func_start ScrCmd_giveitem -ScrCmd_giveitem: @ 0x08099328 - push {r4, r5, lr} - adds r5, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r1, r0, #0 - ldr r5, _08099368 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl AddBagItem - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08099368: .4byte gUnknown_2037290 - thumb_func_end ScrCmd_giveitem - - thumb_func_start ScrCmd_takeitem -ScrCmd_takeitem: @ 0x0809936C - push {r4, r5, lr} - adds r5, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r1, r0, #0 - ldr r5, _080993AC - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl RemoveBagItem - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080993AC: .4byte gUnknown_2037290 - thumb_func_end ScrCmd_takeitem - - thumb_func_start ScrCmd_checkitemspace -ScrCmd_checkitemspace: @ 0x080993B0 - push {r4, r5, lr} - adds r5, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r1, r0, #0 - ldr r5, _080993F0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl CheckBagHasSpace - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080993F0: .4byte gUnknown_2037290 - thumb_func_end ScrCmd_checkitemspace - - thumb_func_start ScrCmd_checkitem -ScrCmd_checkitem: @ 0x080993F4 - push {r4, r5, lr} - adds r5, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r1, r0, #0 - ldr r5, _08099434 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl CheckBagHasItem - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08099434: .4byte gUnknown_2037290 - thumb_func_end ScrCmd_checkitem - - thumb_func_start ScrCmd_checkitemtype -ScrCmd_checkitemtype: @ 0x08099438 - push {r4, lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _08099460 - bl GetPocketByItemId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08099460: .4byte gUnknown_2037290 - thumb_func_end ScrCmd_checkitemtype - - thumb_func_start ScrCmd_givepcitem -ScrCmd_givepcitem: @ 0x08099464 - push {r4, r5, lr} - adds r5, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r5, _080994A4 - adds r0, r4, #0 - bl AddPCItem - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080994A4: .4byte gUnknown_2037290 - thumb_func_end ScrCmd_givepcitem - - thumb_func_start ScrCmd_checkpcitem -ScrCmd_checkpcitem: @ 0x080994A8 - push {r4, r5, lr} - adds r5, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r5, _080994E8 - adds r0, r4, #0 - bl CheckPCHasItem - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080994E8: .4byte gUnknown_2037290 - thumb_func_end ScrCmd_checkpcitem - - thumb_func_start ScrCmd_givedecoration -ScrCmd_givedecoration: @ 0x080994EC - push {r4, lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - ldr r4, _08099514 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_08161868 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08099514: .4byte gUnknown_2037290 - thumb_func_end ScrCmd_givedecoration - - thumb_func_start ScrCmd_takedecoration -ScrCmd_takedecoration: @ 0x08099518 - push {r4, lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - ldr r4, _08099540 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DecorationRemove - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - strh r0, [r4] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08099540: .4byte gUnknown_2037290 - thumb_func_end ScrCmd_takedecoration - - thumb_func_start ScrCmd_checkdecorspace -ScrCmd_checkdecorspace: @ 0x08099544 - push {r4, lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - ldr r4, _0809956C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_081618B4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809956C: .4byte gUnknown_2037290 - thumb_func_end ScrCmd_checkdecorspace - - thumb_func_start ScrCmd_checkdecor -ScrCmd_checkdecor: @ 0x08099570 - push {r4, lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - ldr r4, _08099598 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_0816181C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08099598: .4byte gUnknown_2037290 - thumb_func_end ScrCmd_checkdecor - - thumb_func_start ScrCmd_setflag -ScrCmd_setflag: @ 0x0809959C - push {lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl FlagSet - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_setflag - - thumb_func_start ScrCmd_clearflag -ScrCmd_clearflag: @ 0x080995B0 - push {lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl FlagClear - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_clearflag - - thumb_func_start ScrCmd_checkflag -ScrCmd_checkflag: @ 0x080995C4 - push {r4, lr} - adds r4, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl FlagGet - strb r0, [r4, #2] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_checkflag - - thumb_func_start ScrCmd_incrementgamestat -ScrCmd_incrementgamestat: @ 0x080995E0 - push {lr} - ldr r1, [r0, #8] - ldrb r2, [r1] - adds r1, #1 - str r1, [r0, #8] - adds r0, r2, #0 - bl IncrementGameStat - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_incrementgamestat - - thumb_func_start ScrCmd_animateflash -ScrCmd_animateflash: @ 0x080995F8 - push {lr} - ldr r1, [r0, #8] - ldrb r2, [r1] - adds r1, #1 - str r1, [r0, #8] - adds r0, r2, #0 - bl sub_080AF998 - bl sub_080988B8 - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_animateflash - - thumb_func_start ScrCmd_setflashradius -ScrCmd_setflashradius: @ 0x08099614 - push {lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl Overworld_SetFlashLevel - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_setflashradius - - thumb_func_start IsPaletteNotActive -IsPaletteNotActive: @ 0x08099630 - push {lr} - ldr r0, _08099644 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08099648 - movs r0, #0 - b _0809964A - .align 2, 0 -_08099644: .4byte gUnknown_2037C74 -_08099648: - movs r0, #1 -_0809964A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsPaletteNotActive - - thumb_func_start ScrCmd_fadescreen -ScrCmd_fadescreen: @ 0x08099650 - push {r4, lr} - adds r4, r0, #0 - ldr r1, [r4, #8] - ldrb r0, [r1] - adds r1, #1 - str r1, [r4, #8] - movs r1, #0 - bl FadeScreen - ldr r1, _08099674 - adds r0, r4, #0 - bl SetupNativeScript - movs r0, #1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08099674: .4byte IsPaletteNotActive - thumb_func_end ScrCmd_fadescreen - - thumb_func_start ScrCmd_fadescreenspeed -ScrCmd_fadescreenspeed: @ 0x08099678 - push {r4, lr} - adds r4, r0, #0 - ldr r2, [r4, #8] - ldrb r0, [r2] - adds r2, #1 - str r2, [r4, #8] - ldrb r1, [r2] - adds r2, #1 - str r2, [r4, #8] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - bl FadeScreen - ldr r1, _080996A4 - adds r0, r4, #0 - bl SetupNativeScript - movs r0, #1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080996A4: .4byte IsPaletteNotActive - thumb_func_end ScrCmd_fadescreenspeed - - thumb_func_start ScrCmd_fadescreenswapbuffers -ScrCmd_fadescreenswapbuffers: @ 0x080996A8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, [r5, #8] - ldrb r4, [r0] - adds r0, #1 - str r0, [r5, #8] - cmp r4, #1 - beq _080996C6 - cmp r4, #1 - bgt _080996C2 - cmp r4, #0 - beq _080996E8 - b _080996C6 -_080996C2: - cmp r4, #2 - beq _080996E8 -_080996C6: - ldr r0, _080996DC - ldr r1, _080996E0 - ldr r2, _080996E4 - bl CpuSet - adds r0, r4, #0 - movs r1, #0 - bl FadeScreen - b _080996FA - .align 2, 0 -_080996DC: .4byte gUnknown_20373B4 -_080996E0: .4byte gUnknown_2037C88 -_080996E4: .4byte 0x04000100 -_080996E8: - ldr r0, _0809970C - ldr r1, _08099710 - ldr r2, _08099714 - bl CpuSet - adds r0, r4, #0 - movs r1, #0 - bl FadeScreen -_080996FA: - ldr r1, _08099718 - adds r0, r5, #0 - bl SetupNativeScript - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0809970C: .4byte gUnknown_2037C88 -_08099710: .4byte gUnknown_20373B4 -_08099714: .4byte 0x04000100 -_08099718: .4byte IsPaletteNotActive - thumb_func_end ScrCmd_fadescreenswapbuffers - - thumb_func_start RunPauseTimer -RunPauseTimer: @ 0x0809971C - push {lr} - ldr r1, _08099730 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08099734 - movs r0, #0 - b _08099736 - .align 2, 0 -_08099730: .4byte gUnknown_2037268 -_08099734: - movs r0, #1 -_08099736: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end RunPauseTimer - - thumb_func_start ScrCmd_delay -ScrCmd_delay: @ 0x0809973C - push {r4, lr} - adds r4, r0, #0 - bl ScriptReadHalfword - ldr r1, _08099758 - strh r0, [r1] - ldr r1, _0809975C - adds r0, r4, #0 - bl SetupNativeScript - movs r0, #1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08099758: .4byte gUnknown_2037268 -_0809975C: .4byte RunPauseTimer - thumb_func_end ScrCmd_delay - - thumb_func_start ScrCmd_initclock -ScrCmd_initclock: @ 0x08099760 - push {r4, r5, lr} - adds r5, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl RtcInitLocalTimeOffset - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_initclock - - thumb_func_start ScrCmd_dotimebasedevents -ScrCmd_dotimebasedevents: @ 0x08099798 - push {lr} - bl DoTimeBasedEvents - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_dotimebasedevents - - thumb_func_start ScrCmd_gettime -ScrCmd_gettime: @ 0x080997A4 - push {lr} - bl RtcCalcLocalTime - ldr r2, _080997CC - ldr r1, _080997D0 - movs r0, #2 - ldrsb r0, [r1, r0] - strh r0, [r2] - ldr r2, _080997D4 - movs r0, #3 - ldrsb r0, [r1, r0] - strh r0, [r2] - ldr r2, _080997D8 - movs r0, #4 - ldrsb r0, [r1, r0] - strh r0, [r2] - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_080997CC: .4byte gUnknown_2037278 -_080997D0: .4byte gUnknown_3005A50 -_080997D4: .4byte gUnknown_203727A -_080997D8: .4byte gUnknown_203727C - thumb_func_end ScrCmd_gettime - - thumb_func_start ScrCmd_setweather -ScrCmd_setweather: @ 0x080997DC - push {lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl SetSav1Weather - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_setweather - - thumb_func_start sub_080997F8 -sub_080997F8: @ 0x080997F8 - push {lr} - bl SetSav1WeatherFromCurrMapHeader - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end sub_080997F8 - - thumb_func_start sub_08099804 -sub_08099804: @ 0x08099804 - push {lr} - bl DoCurrentWeather - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end sub_08099804 - - thumb_func_start ScrCmd_setstepcallback -ScrCmd_setstepcallback: @ 0x08099810 - push {lr} - ldr r1, [r0, #8] - ldrb r2, [r1] - adds r1, #1 - str r1, [r0, #8] - adds r0, r2, #0 - bl ActivatePerStepCallback - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_setstepcallback - - thumb_func_start ScrCmd_setmaplayoutindex -ScrCmd_setmaplayoutindex: @ 0x08099828 - push {lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl SetCurrentMapLayout - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_setmaplayoutindex - - thumb_func_start ScrCmd_warp -ScrCmd_warp: @ 0x08099844 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #4 - adds r5, r0, #0 - ldr r0, [r5, #8] - ldrb r1, [r0] - mov sb, r1 - adds r0, #1 - str r0, [r5, #8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, #1 - str r1, [r5, #8] - ldrb r6, [r0, #1] - adds r1, #1 - str r1, [r5, #8] - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - mov r1, sb - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov sb, r1 - mov r1, r8 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov r8, r1 - lsls r6, r6, #0x18 - asrs r6, r6, #0x18 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - str r0, [sp] - mov r0, sb - adds r2, r6, #0 - adds r3, r4, #0 - bl SetWarpDestination - bl DoWarp - bl ResetInitialPlayerAvatarState - movs r0, #1 - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_warp - - thumb_func_start ScrCmd_warpsilent -ScrCmd_warpsilent: @ 0x080998CC - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #4 - adds r5, r0, #0 - ldr r0, [r5, #8] - ldrb r1, [r0] - mov sb, r1 - adds r0, #1 - str r0, [r5, #8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, #1 - str r1, [r5, #8] - ldrb r6, [r0, #1] - adds r1, #1 - str r1, [r5, #8] - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - mov r1, sb - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov sb, r1 - mov r1, r8 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov r8, r1 - lsls r6, r6, #0x18 - asrs r6, r6, #0x18 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - str r0, [sp] - mov r0, sb - adds r2, r6, #0 - adds r3, r4, #0 - bl SetWarpDestination - bl DoDiveWarp - bl ResetInitialPlayerAvatarState - movs r0, #1 - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_warpsilent - - thumb_func_start sub_08099954 -sub_08099954: @ 0x08099954 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #4 - adds r5, r0, #0 - ldr r0, [r5, #8] - ldrb r1, [r0] - mov sb, r1 - adds r0, #1 - str r0, [r5, #8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, #1 - str r1, [r5, #8] - ldrb r6, [r0, #1] - adds r1, #1 - str r1, [r5, #8] - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - mov r1, sb - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov sb, r1 - mov r1, r8 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov r8, r1 - lsls r6, r6, #0x18 - asrs r6, r6, #0x18 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - str r0, [sp] - mov r0, sb - adds r2, r6, #0 - adds r3, r4, #0 - bl SetWarpDestination - bl DoDoorWarp - bl ResetInitialPlayerAvatarState - movs r0, #1 - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08099954 - - thumb_func_start ScrCmd_warphole -ScrCmd_warphole: @ 0x080999DC - push {r4, r5, r6, lr} - sub sp, #8 - ldr r1, [r0, #8] - ldrb r6, [r1] - adds r1, #1 - str r1, [r0, #8] - ldrb r5, [r1] - adds r1, #1 - str r1, [r0, #8] - mov r4, sp - adds r4, #6 - add r0, sp, #4 - adds r1, r4, #0 - bl PlayerGetDestCoords - cmp r6, #0xff - bne _08099A1A - cmp r5, #0xff - bne _08099A1A - add r0, sp, #4 - ldrh r0, [r0] - subs r0, #7 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrh r1, [r4] - subs r1, #7 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl SetWarpDestinationToFixedHoleWarp - b _08099A3E -_08099A1A: - lsls r0, r6, #0x18 - asrs r0, r0, #0x18 - lsls r1, r5, #0x18 - asrs r1, r1, #0x18 - movs r2, #1 - rsbs r2, r2, #0 - add r3, sp, #4 - ldrb r3, [r3] - subs r3, #7 - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - ldrb r4, [r4] - subs r4, #7 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - str r4, [sp] - bl SetWarpDestination -_08099A3E: - bl DoFallWarp - bl ResetInitialPlayerAvatarState - movs r0, #1 - add sp, #8 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_warphole - - thumb_func_start ScrCmd_warpteleport -ScrCmd_warpteleport: @ 0x08099A50 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #4 - adds r5, r0, #0 - ldr r0, [r5, #8] - ldrb r1, [r0] - mov sb, r1 - adds r0, #1 - str r0, [r5, #8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, #1 - str r1, [r5, #8] - ldrb r6, [r0, #1] - adds r1, #1 - str r1, [r5, #8] - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - mov r1, sb - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov sb, r1 - mov r1, r8 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov r8, r1 - lsls r6, r6, #0x18 - asrs r6, r6, #0x18 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - str r0, [sp] - mov r0, sb - adds r2, r6, #0 - adds r3, r4, #0 - bl SetWarpDestination - bl sub_080AF144 - bl ResetInitialPlayerAvatarState - movs r0, #1 - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_warpteleport - - thumb_func_start sub_08099AD8 -sub_08099AD8: @ 0x08099AD8 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #4 - adds r5, r0, #0 - ldr r0, [r5, #8] - ldrb r1, [r0] - mov sb, r1 - adds r0, #1 - str r0, [r5, #8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, #1 - str r1, [r5, #8] - ldrb r6, [r0, #1] - adds r1, #1 - str r1, [r5, #8] - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - mov r1, sb - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov sb, r1 - mov r1, r8 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov r8, r1 - lsls r6, r6, #0x18 - asrs r6, r6, #0x18 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - str r0, [sp] - mov r0, sb - adds r2, r6, #0 - adds r3, r4, #0 - bl SetWarpDestination - bl sub_080AF178 - bl ResetInitialPlayerAvatarState - movs r0, #1 - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08099AD8 - - thumb_func_start ScrCmd_setwarp -ScrCmd_setwarp: @ 0x08099B60 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #4 - adds r5, r0, #0 - ldr r0, [r5, #8] - ldrb r1, [r0] - mov sb, r1 - adds r0, #1 - str r0, [r5, #8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, #1 - str r1, [r5, #8] - ldrb r6, [r0, #1] - adds r1, #1 - str r1, [r5, #8] - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - mov r1, sb - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov sb, r1 - mov r1, r8 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov r8, r1 - lsls r6, r6, #0x18 - asrs r6, r6, #0x18 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - str r0, [sp] - mov r0, sb - adds r2, r6, #0 - adds r3, r4, #0 - bl SetWarpDestination - movs r0, #0 - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_setwarp - - thumb_func_start ScrCmd_setdynamicwarp -ScrCmd_setdynamicwarp: @ 0x08099BE0 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #8 - adds r5, r0, #0 - ldr r0, [r5, #8] - ldrb r1, [r0] - mov sb, r1 - adds r0, #1 - str r0, [r5, #8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, #1 - str r1, [r5, #8] - ldrb r6, [r0, #1] - adds r1, #1 - str r1, [r5, #8] - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - mov r1, sb - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov sb, r1 - mov r1, r8 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov r8, r1 - lsls r6, r6, #0x18 - asrs r6, r6, #0x18 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - str r4, [sp] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - str r0, [sp, #4] - movs r0, #0 - mov r1, sb - mov r2, r8 - adds r3, r6, #0 - bl SetDynamicWarpWithCoords - movs r0, #0 - add sp, #8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_setdynamicwarp - - thumb_func_start ScrCmd_setdivewarp -ScrCmd_setdivewarp: @ 0x08099C64 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #4 - adds r5, r0, #0 - ldr r0, [r5, #8] - ldrb r1, [r0] - mov sb, r1 - adds r0, #1 - str r0, [r5, #8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, #1 - str r1, [r5, #8] - ldrb r6, [r0, #1] - adds r1, #1 - str r1, [r5, #8] - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - mov r1, sb - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov sb, r1 - mov r1, r8 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov r8, r1 - lsls r6, r6, #0x18 - asrs r6, r6, #0x18 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - str r0, [sp] - mov r0, sb - adds r2, r6, #0 - adds r3, r4, #0 - bl SetFixedDiveWarp - movs r0, #0 - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_setdivewarp - - thumb_func_start ScrCmd_setholewarp -ScrCmd_setholewarp: @ 0x08099CE4 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #4 - adds r5, r0, #0 - ldr r0, [r5, #8] - ldrb r1, [r0] - mov sb, r1 - adds r0, #1 - str r0, [r5, #8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, #1 - str r1, [r5, #8] - ldrb r6, [r0, #1] - adds r1, #1 - str r1, [r5, #8] - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - mov r1, sb - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov sb, r1 - mov r1, r8 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov r8, r1 - lsls r6, r6, #0x18 - asrs r6, r6, #0x18 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - str r0, [sp] - mov r0, sb - adds r2, r6, #0 - adds r3, r4, #0 - bl SetFixedHoleWarp - movs r0, #0 - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_setholewarp - - thumb_func_start ScrCmd_setescapewarp -ScrCmd_setescapewarp: @ 0x08099D64 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #4 - adds r5, r0, #0 - ldr r0, [r5, #8] - ldrb r1, [r0] - mov sb, r1 - adds r0, #1 - str r0, [r5, #8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, #1 - str r1, [r5, #8] - ldrb r6, [r0, #1] - adds r1, #1 - str r1, [r5, #8] - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - mov r1, sb - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov sb, r1 - mov r1, r8 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov r8, r1 - lsls r6, r6, #0x18 - asrs r6, r6, #0x18 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - str r0, [sp] - mov r0, sb - adds r2, r6, #0 - adds r3, r4, #0 - bl SetEscapeWarp - movs r0, #0 - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_setescapewarp - - thumb_func_start ScrCmd_getplayerxy -ScrCmd_getplayerxy: @ 0x08099DE4 - push {r4, r5, lr} - adds r4, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetVarPointer - adds r5, r0, #0 - adds r0, r4, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetVarPointer - ldr r2, _08099E1C - ldr r1, [r2] - ldrh r1, [r1] - strh r1, [r5] - ldr r1, [r2] - ldrh r1, [r1, #2] - strh r1, [r0] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08099E1C: .4byte gUnknown_3005AEC - thumb_func_end ScrCmd_getplayerxy - - thumb_func_start ScrCmd_getpartysize -ScrCmd_getpartysize: @ 0x08099E20 - push {r4, lr} - ldr r4, _08099E38 - bl sub_0806B004 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08099E38: .4byte gUnknown_2037290 - thumb_func_end ScrCmd_getpartysize - - thumb_func_start ScrCmd_playse -ScrCmd_playse: @ 0x08099E3C - push {lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_080A306C - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_playse - - thumb_func_start WaitForSoundEffectFinish -WaitForSoundEffectFinish: @ 0x08099E50 - push {lr} - bl IsSEPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08099E60 - movs r0, #0 - b _08099E62 -_08099E60: - movs r0, #1 -_08099E62: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end WaitForSoundEffectFinish - - thumb_func_start ScrCmd_waitse -ScrCmd_waitse: @ 0x08099E68 - push {lr} - ldr r1, _08099E78 - bl SetupNativeScript - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 -_08099E78: .4byte WaitForSoundEffectFinish - thumb_func_end ScrCmd_waitse - - thumb_func_start ScrCmd_playfanfare -ScrCmd_playfanfare: @ 0x08099E7C - push {lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl PlayFanfare - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_playfanfare - - thumb_func_start WaitForFanfareFinish -WaitForFanfareFinish: @ 0x08099E90 - push {lr} - bl IsFanfareTaskInactive - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end WaitForFanfareFinish - - thumb_func_start ScrCmd_waitfanfare -ScrCmd_waitfanfare: @ 0x08099EA0 - push {lr} - ldr r1, _08099EB0 - bl SetupNativeScript - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 -_08099EB0: .4byte WaitForFanfareFinish - thumb_func_end ScrCmd_waitfanfare - - thumb_func_start ScrCmd_playbgm -ScrCmd_playbgm: @ 0x08099EB4 - push {r4, r5, lr} - adds r4, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - adds r5, r2, #0 - ldr r0, [r4, #8] - ldrb r1, [r0] - adds r0, #1 - str r0, [r4, #8] - cmp r1, #1 - bne _08099ED4 - adds r0, r2, #0 - bl Overworld_SetSavedMusic -_08099ED4: - adds r0, r5, #0 - bl PlayNewMapMusic - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_playbgm - - thumb_func_start ScrCmd_savebgm -ScrCmd_savebgm: @ 0x08099EE4 - push {lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl Overworld_SetSavedMusic - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_savebgm - - thumb_func_start ScrCmd_fadedefaultbgm -ScrCmd_fadedefaultbgm: @ 0x08099EF8 - push {lr} - bl Overworld_ChangeMusicToDefault - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_fadedefaultbgm - - thumb_func_start ScrCmd_fadenewbgm -ScrCmd_fadenewbgm: @ 0x08099F04 - push {lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetTruckCameraBobbingY - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_fadenewbgm - - thumb_func_start ScrCmd_fadeoutbgm -ScrCmd_fadeoutbgm: @ 0x08099F18 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #8] - ldrb r1, [r0] - adds r0, #1 - str r0, [r4, #8] - cmp r1, #0 - beq _08099F32 - lsls r0, r1, #0x1a - lsrs r0, r0, #0x18 - bl PlayBattleBGM - b _08099F38 -_08099F32: - movs r0, #4 - bl PlayBattleBGM -_08099F38: - ldr r1, _08099F48 - adds r0, r4, #0 - bl SetupNativeScript - movs r0, #1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08099F48: .4byte IsBGMPausedOrStopped - thumb_func_end ScrCmd_fadeoutbgm - - thumb_func_start ScrCmd_fadeinbgm -ScrCmd_fadeinbgm: @ 0x08099F4C - push {lr} - ldr r1, [r0, #8] - ldrb r2, [r1] - adds r1, #1 - str r1, [r0, #8] - cmp r2, #0 - beq _08099F64 - lsls r0, r2, #0x1a - lsrs r0, r0, #0x18 - bl sub_080A2AF0 - b _08099F6A -_08099F64: - movs r0, #4 - bl sub_080A2AF0 -_08099F6A: - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_fadeinbgm - - thumb_func_start ScrCmd_setobjectpriority -ScrCmd_setobjectpriority: @ 0x08099F70 - push {r4, r5, lr} - adds r5, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - bl ScriptReadWord - adds r3, r0, #0 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08099FAC - ldr r2, [r1] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - bl ScriptMovement_StartObjectMovementScript - ldr r0, _08099FB0 - strh r4, [r0] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08099FAC: .4byte gUnknown_3005AEC -_08099FB0: .4byte gUnknown_203726A - thumb_func_end ScrCmd_setobjectpriority - - thumb_func_start ScrCmd_applymovement_at -ScrCmd_applymovement_at: @ 0x08099FB4 - push {r4, r5, lr} - adds r5, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - bl ScriptReadWord - adds r3, r0, #0 - ldr r0, [r5, #8] - ldrb r2, [r0] - adds r0, #1 - str r0, [r5, #8] - ldrb r1, [r0] - adds r0, #1 - str r0, [r5, #8] - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl ScriptMovement_StartObjectMovementScript - ldr r0, _08099FF4 - strh r4, [r0] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08099FF4: .4byte gUnknown_203726A - thumb_func_end ScrCmd_applymovement_at - - thumb_func_start WaitForMovementFinish -WaitForMovementFinish: @ 0x08099FF8 - push {lr} - ldr r0, _0809A014 - ldrb r0, [r0] - ldr r1, _0809A018 - ldrb r1, [r1] - ldr r2, _0809A01C - ldrb r2, [r2] - bl ScriptMovement_IsObjectMovementFinished - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0809A014: .4byte gUnknown_203726A -_0809A018: .4byte gUnknown_203726E -_0809A01C: .4byte gUnknown_203726C - thumb_func_end WaitForMovementFinish - - thumb_func_start ScrCmd_waitmovement -ScrCmd_waitmovement: @ 0x0809A020 - push {r4, lr} - adds r4, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - beq _0809A03C - ldr r0, _0809A060 - strh r1, [r0] -_0809A03C: - ldr r1, _0809A064 - ldr r0, _0809A068 - ldr r2, [r0] - movs r0, #4 - ldrsb r0, [r2, r0] - strh r0, [r1] - ldr r1, _0809A06C - movs r0, #5 - ldrsb r0, [r2, r0] - strh r0, [r1] - ldr r1, _0809A070 - adds r0, r4, #0 - bl SetupNativeScript - movs r0, #1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809A060: .4byte gUnknown_203726A -_0809A064: .4byte gUnknown_203726C -_0809A068: .4byte gUnknown_3005AEC -_0809A06C: .4byte gUnknown_203726E -_0809A070: .4byte WaitForMovementFinish - thumb_func_end ScrCmd_waitmovement - - thumb_func_start ScrCmd_waitmovement_at -ScrCmd_waitmovement_at: @ 0x0809A074 - push {r4, lr} - adds r4, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - beq _0809A090 - ldr r0, _0809A0B8 - strh r1, [r0] -_0809A090: - ldr r0, [r4, #8] - ldrb r2, [r0] - adds r0, #1 - str r0, [r4, #8] - ldrb r1, [r0] - adds r0, #1 - str r0, [r4, #8] - ldr r0, _0809A0BC - strh r2, [r0] - ldr r0, _0809A0C0 - strh r1, [r0] - ldr r1, _0809A0C4 - adds r0, r4, #0 - bl SetupNativeScript - movs r0, #1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809A0B8: .4byte gUnknown_203726A -_0809A0BC: .4byte gUnknown_203726C -_0809A0C0: .4byte gUnknown_203726E -_0809A0C4: .4byte WaitForMovementFinish - thumb_func_end ScrCmd_waitmovement_at - - thumb_func_start sub_0809A0C8 -sub_0809A0C8: @ 0x0809A0C8 - push {lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0809A0EC - ldr r2, [r1] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - bl RemoveEventObjectByLocalIdAndMap - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0809A0EC: .4byte gUnknown_3005AEC - thumb_func_end sub_0809A0C8 - - thumb_func_start ScrCmd_removeobject_at -ScrCmd_removeobject_at: @ 0x0809A0F0 - push {r4, lr} - adds r4, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - ldr r3, [r4, #8] - ldrb r2, [r3] - adds r3, #1 - str r3, [r4, #8] - ldrb r1, [r3] - adds r3, #1 - str r3, [r4, #8] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl RemoveEventObjectByLocalIdAndMap - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_removeobject_at - - thumb_func_start ScrCmd_addobject -ScrCmd_addobject: @ 0x0809A120 - push {lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0809A144 - ldr r2, [r1] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - bl TrySpawnEventObject - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0809A144: .4byte gUnknown_3005AEC - thumb_func_end ScrCmd_addobject - - thumb_func_start ScrCmd_addobject_at -ScrCmd_addobject_at: @ 0x0809A148 - push {r4, lr} - adds r4, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - ldr r3, [r4, #8] - ldrb r2, [r3] - adds r3, #1 - str r3, [r4, #8] - ldrb r1, [r3] - adds r3, #1 - str r3, [r4, #8] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl TrySpawnEventObject - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_addobject_at - - thumb_func_start ScrCmd_setobjectxy -ScrCmd_setobjectxy: @ 0x0809A178 - push {r4, r5, r6, lr} - sub sp, #4 - adds r6, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - adds r0, r6, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r6, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r1, _0809A1DC - ldr r2, [r1] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - str r0, [sp] - adds r0, r5, #0 - adds r3, r4, #0 - bl TryMoveEventObjectToMapCoords - movs r0, #0 - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0809A1DC: .4byte gUnknown_3005AEC - thumb_func_end ScrCmd_setobjectxy - - thumb_func_start ScrCmd_setobjectxyperm -ScrCmd_setobjectxyperm: @ 0x0809A1E0 - push {r4, r5, r6, lr} - adds r6, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - adds r0, r6, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r6, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r2, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl Overworld_SetEventObjTemplateCoords - movs r0, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_setobjectxyperm - - thumb_func_start ScrCmd_moveobjectoffscreen -ScrCmd_moveobjectoffscreen: @ 0x0809A238 - push {lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0809A25C - ldr r2, [r1] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - bl TryOverrideEventObjectTemplateCoords - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0809A25C: .4byte gUnknown_3005AEC - thumb_func_end ScrCmd_moveobjectoffscreen - - thumb_func_start ScrCmd_showobject_at -ScrCmd_showobject_at: @ 0x0809A260 - push {r4, lr} - adds r4, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - ldr r3, [r4, #8] - ldrb r2, [r3] - adds r3, #1 - str r3, [r4, #8] - ldrb r1, [r3] - adds r3, #1 - str r3, [r4, #8] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r3, #0 - bl npc_by_local_id_and_map_set_field_1_bit_x20 - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_showobject_at - - thumb_func_start ScrCmd_hideobject_at -ScrCmd_hideobject_at: @ 0x0809A290 - push {r4, lr} - adds r4, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - ldr r3, [r4, #8] - ldrb r2, [r3] - adds r3, #1 - str r3, [r4, #8] - ldrb r1, [r3] - adds r3, #1 - str r3, [r4, #8] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r3, #1 - bl npc_by_local_id_and_map_set_field_1_bit_x20 - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_hideobject_at - - thumb_func_start sub_0809A2C0 -sub_0809A2C0: @ 0x0809A2C0 - push {r4, r5, lr} - adds r5, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - ldr r3, [r5, #8] - ldrb r2, [r3] - adds r3, #1 - str r3, [r5, #8] - ldrb r1, [r3] - adds r4, r3, #1 - str r4, [r5, #8] - ldrb r3, [r3, #1] - adds r4, #1 - str r4, [r5, #8] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r3, #0x53 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - bl sub_0808E0FC - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0809A2C0 - - thumb_func_start ScrCmd_resetobjectpriority -ScrCmd_resetobjectpriority: @ 0x0809A2FC - push {r4, lr} - adds r4, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - ldr r3, [r4, #8] - ldrb r2, [r3] - adds r3, #1 - str r3, [r4, #8] - ldrb r1, [r3] - adds r3, #1 - str r3, [r4, #8] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_0808E154 - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_resetobjectpriority - - thumb_func_start ScrCmd_faceplayer -ScrCmd_faceplayer: @ 0x0809A32C - push {r4, lr} - ldr r2, _0809A35C - ldr r0, _0809A360 - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, r0, r2 - ldrb r0, [r4] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _0809A354 - bl GetPlayerFacingDirection - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectFaceOppositeDirection -_0809A354: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809A35C: .4byte gUnknown_2036FF0 -_0809A360: .4byte gUnknown_3005B50 - thumb_func_end ScrCmd_faceplayer - - thumb_func_start ScrCmd_turnobject -ScrCmd_turnobject: @ 0x0809A364 - push {r4, lr} - adds r4, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - ldr r1, [r4, #8] - ldrb r3, [r1] - adds r1, #1 - str r1, [r4, #8] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0809A394 - ldr r2, [r1] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - bl EventObjectTurnByLocalIdAndMap - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809A394: .4byte gUnknown_3005AEC - thumb_func_end ScrCmd_turnobject - - thumb_func_start ScrCmd_setobjectmovementtype -ScrCmd_setobjectmovementtype: @ 0x0809A398 - push {r4, lr} - adds r4, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - ldr r2, [r4, #8] - ldrb r1, [r2] - adds r2, #1 - str r2, [r4, #8] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl Overworld_SetEventObjTemplateMovementType - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setobjectmovementtype - - thumb_func_start ScrCmd_createvobject -ScrCmd_createvobject: @ 0x0809A3C0 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #8 - adds r5, r0, #0 - ldr r0, [r5, #8] - ldrb r1, [r0] - mov r8, r1 - adds r0, #1 - str r0, [r5, #8] - ldrb r6, [r0] - adds r0, #1 - str r0, [r5, #8] - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r3, r0, #0 - ldr r0, [r5, #8] - ldrb r2, [r0] - adds r0, #1 - str r0, [r5, #8] - ldrb r1, [r0] - adds r0, #1 - str r0, [r5, #8] - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - str r2, [sp] - str r1, [sp, #4] - mov r0, r8 - adds r1, r6, #0 - adds r2, r4, #0 - bl sprite_new - movs r0, #0 - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_createvobject - - thumb_func_start ScrCmd_turnvobject -ScrCmd_turnvobject: @ 0x0809A430 - push {lr} - ldr r2, [r0, #8] - ldrb r3, [r2] - adds r2, #1 - str r2, [r0, #8] - ldrb r1, [r2] - adds r2, #1 - str r2, [r0, #8] - adds r0, r3, #0 - bl sub_080974E8 - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_turnvobject - - thumb_func_start ScrCmd_lockall -ScrCmd_lockall: @ 0x0809A44C - push {r4, lr} - adds r4, r0, #0 - bl IsUpdateLinkStateCBActive - cmp r0, #0 - bne _0809A46C - bl ScriptFreezeEventObjects - ldr r1, _0809A468 - adds r0, r4, #0 - bl SetupNativeScript - movs r0, #1 - b _0809A46E - .align 2, 0 -_0809A468: .4byte sub_08097D4C -_0809A46C: - movs r0, #0 -_0809A46E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_lockall - - thumb_func_start ScrCmd_lock -ScrCmd_lock: @ 0x0809A474 - push {r4, lr} - adds r4, r0, #0 - bl IsUpdateLinkStateCBActive - cmp r0, #0 - beq _0809A484 - movs r0, #0 - b _0809A4C2 -_0809A484: - ldr r2, _0809A4A8 - ldr r0, _0809A4AC - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _0809A4B4 - bl LockSelectedEventObject - ldr r1, _0809A4B0 - adds r0, r4, #0 - bl SetupNativeScript - b _0809A4C0 - .align 2, 0 -_0809A4A8: .4byte gUnknown_2036FF0 -_0809A4AC: .4byte gUnknown_3005B50 -_0809A4B0: .4byte sub_08097E04 -_0809A4B4: - bl ScriptFreezeEventObjects - ldr r1, _0809A4C8 - adds r0, r4, #0 - bl SetupNativeScript -_0809A4C0: - movs r0, #1 -_0809A4C2: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809A4C8: .4byte sub_08097D4C - thumb_func_end ScrCmd_lock - - thumb_func_start ScrCmd_releaseall -ScrCmd_releaseall: @ 0x0809A4CC - push {lr} - bl HideFieldMessageBox - movs r0, #0xff - movs r1, #0 - movs r2, #0 - bl GetEventObjectIdByLocalIdAndMap - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0809A500 - adds r0, r0, r1 - bl EventObjectClearHeldMovementIfFinished - bl sub_080D2C2C - bl UnfreezeEventObjects - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0809A500: .4byte gUnknown_2036FF0 - thumb_func_end ScrCmd_releaseall - - thumb_func_start ScrCmd_release -ScrCmd_release: @ 0x0809A504 - push {r4, lr} - bl HideFieldMessageBox - ldr r4, _0809A554 - ldr r0, _0809A558 - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r4 - ldrb r0, [r1] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _0809A526 - adds r0, r1, #0 - bl EventObjectClearHeldMovementIfFinished -_0809A526: - movs r0, #0xff - movs r1, #0 - movs r2, #0 - bl GetEventObjectIdByLocalIdAndMap - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl EventObjectClearHeldMovementIfFinished - bl sub_080D2C2C - bl UnfreezeEventObjects - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809A554: .4byte gUnknown_2036FF0 -_0809A558: .4byte gUnknown_3005B50 - thumb_func_end ScrCmd_release - - thumb_func_start ScrCmd_message -ScrCmd_message: @ 0x0809A55C - push {r4, lr} - adds r4, r0, #0 - bl ScriptReadWord - cmp r0, #0 - bne _0809A56A - ldr r0, [r4, #0x64] -_0809A56A: - bl ShowFieldMessage - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_message - - thumb_func_start ScrCmd_pokenavcall -ScrCmd_pokenavcall: @ 0x0809A578 - push {r4, lr} - adds r4, r0, #0 - bl ScriptReadWord - cmp r0, #0 - bne _0809A586 - ldr r0, [r4, #0x64] -_0809A586: - bl sub_08097BC0 - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_pokenavcall - - thumb_func_start ScrCmd_messageautoscroll -ScrCmd_messageautoscroll: @ 0x0809A594 - push {r4, lr} - adds r4, r0, #0 - bl ScriptReadWord - adds r3, r0, #0 - cmp r3, #0 - bne _0809A5A4 - ldr r3, [r4, #0x64] -_0809A5A4: - ldr r2, _0809A5C0 - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2] - adds r0, r3, #0 - bl ShowFieldAutoScrollMessage - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809A5C0: .4byte gUnknown_30030B4 - thumb_func_end ScrCmd_messageautoscroll - - thumb_func_start ScrCmd_cmdDB -ScrCmd_cmdDB: @ 0x0809A5C4 - push {r4, r5, lr} - sub sp, #0xc - adds r5, r0, #0 - bl ScriptReadWord - adds r4, r0, #0 - cmp r4, #0 - bne _0809A5D6 - ldr r4, [r5, #0x64] -_0809A5D6: - bl sub_08196F98 - movs r0, #0 - movs r1, #1 - bl sub_08196FB8 - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - movs r1, #1 - adds r2, r4, #0 - movs r3, #0 - bl AddTextPrinterParameterized - movs r0, #0 - add sp, #0xc - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_cmdDB - - thumb_func_start ScrCmd_waitmessage -ScrCmd_waitmessage: @ 0x0809A600 - push {lr} - ldr r1, _0809A610 - bl SetupNativeScript - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 -_0809A610: .4byte sub_08097CC4 - thumb_func_end ScrCmd_waitmessage - - thumb_func_start ScrCmd_closemessage -ScrCmd_closemessage: @ 0x0809A614 - push {lr} - bl HideFieldMessageBox - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_closemessage - - thumb_func_start WaitForAorBPress -WaitForAorBPress: @ 0x0809A620 - push {lr} - ldr r0, _0809A63C - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0809A640 - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0809A640 - movs r0, #0 - b _0809A642 - .align 2, 0 -_0809A63C: .4byte gUnknown_3002360 -_0809A640: - movs r0, #1 -_0809A642: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end WaitForAorBPress - - thumb_func_start ScrCmd_waitbuttonpress -ScrCmd_waitbuttonpress: @ 0x0809A648 - push {lr} - ldr r1, _0809A658 - bl SetupNativeScript - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 -_0809A658: .4byte WaitForAorBPress - thumb_func_end ScrCmd_waitbuttonpress - - thumb_func_start ScrCmd_yesnobox -ScrCmd_yesnobox: @ 0x0809A65C - push {lr} - ldr r2, [r0, #8] - ldrb r3, [r2] - adds r2, #1 - str r2, [r0, #8] - ldrb r1, [r2] - adds r2, #1 - str r2, [r0, #8] - adds r0, r3, #0 - bl ScriptMenu_YesNo - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0809A67E - movs r0, #0 - b _0809A684 -_0809A67E: - bl sub_080988B8 - movs r0, #1 -_0809A684: - pop {r1} - bx r1 - thumb_func_end ScrCmd_yesnobox - - thumb_func_start ScrCmd_multichoice -ScrCmd_multichoice: @ 0x0809A688 - push {r4, r5, lr} - ldr r2, [r0, #8] - ldrb r5, [r2] - adds r2, #1 - str r2, [r0, #8] - ldrb r1, [r2] - adds r3, r2, #1 - str r3, [r0, #8] - ldrb r2, [r2, #1] - adds r4, r3, #1 - str r4, [r0, #8] - ldrb r3, [r3, #1] - adds r4, #1 - str r4, [r0, #8] - adds r0, r5, #0 - bl ScriptMenu_Multichoice - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0809A6B6 - movs r0, #0 - b _0809A6BC -_0809A6B6: - bl sub_080988B8 - movs r0, #1 -_0809A6BC: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_multichoice - - thumb_func_start sub_0809A6C4 -sub_0809A6C4: @ 0x0809A6C4 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #4 - ldr r2, [r0, #8] - ldrb r1, [r2] - mov r8, r1 - adds r2, #1 - str r2, [r0, #8] - ldrb r1, [r2] - adds r3, r2, #1 - str r3, [r0, #8] - ldrb r2, [r2, #1] - adds r5, r3, #1 - str r5, [r0, #8] - ldrb r6, [r3, #1] - adds r4, r5, #1 - str r4, [r0, #8] - ldrb r3, [r5, #1] - adds r4, #1 - str r4, [r0, #8] - str r6, [sp] - mov r0, r8 - bl ScriptMenu_MultichoiceWithDefault - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0809A702 - movs r0, #0 - b _0809A708 -_0809A702: - bl sub_080988B8 - movs r0, #1 -_0809A708: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_0809A6C4 - - thumb_func_start sub_0809A714 -sub_0809A714: @ 0x0809A714 - movs r0, #0 - bx lr - thumb_func_end sub_0809A714 - - thumb_func_start ScrCmd_multichoicegrid -ScrCmd_multichoicegrid: @ 0x0809A718 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #4 - ldr r2, [r0, #8] - ldrb r1, [r2] - mov r8, r1 - adds r2, #1 - str r2, [r0, #8] - ldrb r1, [r2] - adds r3, r2, #1 - str r3, [r0, #8] - ldrb r2, [r2, #1] - adds r5, r3, #1 - str r5, [r0, #8] - ldrb r6, [r3, #1] - adds r4, r5, #1 - str r4, [r0, #8] - ldrb r3, [r5, #1] - adds r4, #1 - str r4, [r0, #8] - str r6, [sp] - mov r0, r8 - bl sub_080E16E0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0809A756 - movs r0, #0 - b _0809A75C -_0809A756: - bl sub_080988B8 - movs r0, #1 -_0809A75C: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_multichoicegrid - - thumb_func_start sub_0809A768 -sub_0809A768: @ 0x0809A768 - ldr r1, [r0, #8] - adds r1, #4 - str r1, [r0, #8] - movs r0, #0 - bx lr - .align 2, 0 - thumb_func_end sub_0809A768 - - thumb_func_start sub_0809A774 -sub_0809A774: @ 0x0809A774 - ldr r1, [r0, #8] - adds r1, #4 - str r1, [r0, #8] - movs r0, #0 - bx lr - .align 2, 0 - thumb_func_end sub_0809A774 - - thumb_func_start sub_0809A780 -sub_0809A780: @ 0x0809A780 - push {r4, lr} - adds r4, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r3, [r4, #8] - ldrb r1, [r3] - adds r3, #1 - str r3, [r4, #8] - ldrb r2, [r3] - adds r3, #1 - str r3, [r4, #8] - bl ScriptMenu_ShowPokemonPic - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0809A780 - - thumb_func_start ScrCmd_hidemonpic -ScrCmd_hidemonpic: @ 0x0809A7B0 - push {r4, lr} - adds r4, r0, #0 - bl ScriptMenu_GetPicboxWaitFunc - adds r1, r0, #0 - cmp r1, #0 - beq _0809A7C8 - adds r0, r4, #0 - bl SetupNativeScript - movs r0, #1 - b _0809A7CA -_0809A7C8: - movs r0, #0 -_0809A7CA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_hidemonpic - - thumb_func_start ScrCmd_showcontestwinner -ScrCmd_showcontestwinner: @ 0x0809A7D0 - push {lr} - ldr r1, [r0, #8] - ldrb r2, [r1] - adds r1, #1 - str r1, [r0, #8] - cmp r2, #0 - beq _0809A7E4 - adds r0, r2, #0 - bl sub_0812FDE0 -_0809A7E4: - bl ShowContestWinner - bl sub_080988B8 - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_showcontestwinner - - thumb_func_start sub_0809A7F4 -sub_0809A7F4: @ 0x0809A7F4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - bl ScriptReadWord - adds r1, r0, #0 - ldrb r0, [r1] - mov sb, r0 - ldrb r0, [r1, #1] - mov sl, r0 - ldrb r4, [r1, #2] - ldrb r5, [r1, #3] - ldrb r0, [r1, #4] - mov r8, r0 - ldrb r6, [r1, #5] - ldr r7, _0809A8DC - adds r1, #6 - adds r0, r7, #0 - bl StringExpandPlaceholders - mov r2, sb - adds r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r3, sl - adds r3, #1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r1, sb - subs r4, r4, r1 - subs r4, #1 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r0, sl - subs r5, r5, r0 - subs r5, #1 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - mov r0, r8 - subs r0, r0, r1 - mov r8, r0 - movs r1, #1 - rsbs r1, r1, #0 - add r8, r1 - mov r0, r8 - lsls r0, r0, #0x1b - lsrs r0, r0, #0x18 - mov r8, r0 - mov r1, sl - subs r6, r6, r1 - subs r6, #1 - lsls r6, r6, #0x1b - lsrs r6, r6, #0x18 - str r4, [sp] - str r5, [sp, #4] - movs r0, #0xf - str r0, [sp, #8] - movs r0, #1 - str r0, [sp, #0xc] - add r0, sp, #0x10 - movs r1, #0 - bl CreateWindowTemplate - ldr r0, [sp, #0x10] - ldr r1, [sp, #0x14] - str r0, [sp, #0x18] - str r1, [sp, #0x1c] - ldr r4, _0809A8E0 - add r0, sp, #0x18 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, #0x85 - lsls r1, r1, #2 - movs r2, #0xe0 - bl LoadUserWindowBorderGfx - ldrb r0, [r4] - movs r1, #0 - bl sub_08196FF0 - ldrb r0, [r4] - bl PutWindowTilemap - ldrb r0, [r4] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldrb r0, [r4] - str r6, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #6 - adds r2, r7, #0 - mov r3, r8 - bl AddTextPrinterParameterized - ldrb r0, [r4] - movs r1, #3 - bl CopyWindowToVram - movs r0, #0 - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0809A8DC: .4byte gUnknown_2021C7C -_0809A8E0: .4byte gUnknown_3000F30 - thumb_func_end sub_0809A7F4 - - thumb_func_start sub_0809A8E4 -sub_0809A8E4: @ 0x0809A8E4 - push {lr} - bl sub_0809B68C - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end sub_0809A8E4 - - thumb_func_start ScrCmd_vmessage -ScrCmd_vmessage: @ 0x0809A8F0 - push {lr} - bl ScriptReadWord - ldr r1, _0809A908 - ldr r1, [r1] - subs r0, r0, r1 - bl ShowFieldMessage - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0809A908: .4byte gUnknown_2037264 - thumb_func_end ScrCmd_vmessage - - thumb_func_start sub_0809A90C -sub_0809A90C: @ 0x0809A90C - push {r4, lr} - ldr r1, [r0, #8] - ldrb r4, [r1] - adds r1, #1 - str r1, [r0, #8] - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _0809A948 - lsls r4, r4, #2 - adds r4, r4, r1 - ldr r2, [r4] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - ldr r0, _0809A94C - adds r1, r1, r0 - adds r0, r2, #0 - bl StringCopy - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809A948: .4byte gUnknown_84E8918 -_0809A94C: .4byte gUnknown_82EA31C - thumb_func_end sub_0809A90C - - thumb_func_start ScrCmd_bufferleadmonspeciesname -ScrCmd_bufferleadmonspeciesname: @ 0x0809A950 - push {r4, lr} - ldr r1, [r0, #8] - ldrb r2, [r1] - adds r1, #1 - str r1, [r0, #8] - ldr r0, _0809A994 - lsls r2, r2, #2 - adds r2, r2, r0 - ldr r4, [r2] - bl GetLeadMonIndex - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x64 - muls r0, r1, r0 - ldr r1, _0809A998 - adds r0, r0, r1 - movs r1, #0xb - movs r2, #0 - bl GetMonData - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - ldr r0, _0809A99C - adds r1, r1, r0 - adds r0, r4, #0 - bl StringCopy - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809A994: .4byte gUnknown_84E8918 -_0809A998: .4byte gUnknown_2024190 -_0809A99C: .4byte gUnknown_82EA31C - thumb_func_end ScrCmd_bufferleadmonspeciesname - - thumb_func_start ScrCmd_bufferpartymonnick -ScrCmd_bufferpartymonnick: @ 0x0809A9A0 - push {r4, lr} - ldr r1, [r0, #8] - ldrb r4, [r1] - adds r1, #1 - str r1, [r0, #8] - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - muls r0, r1, r0 - ldr r1, _0809A9E0 - adds r0, r0, r1 - ldr r1, _0809A9E4 - lsls r4, r4, #2 - adds r4, r4, r1 - ldr r4, [r4] - movs r1, #2 - adds r2, r4, #0 - bl GetMonData - adds r0, r4, #0 - bl StringGetEnd10 - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809A9E0: .4byte gUnknown_2024190 -_0809A9E4: .4byte gUnknown_84E8918 - thumb_func_end ScrCmd_bufferpartymonnick - - thumb_func_start ScrCmd_bufferitemname -ScrCmd_bufferitemname: @ 0x0809A9E8 - push {r4, lr} - ldr r1, [r0, #8] - ldrb r4, [r1] - adds r1, #1 - str r1, [r0, #8] - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _0809AA18 - lsls r4, r4, #2 - adds r4, r4, r1 - ldr r1, [r4] - bl sub_080D5EC8 - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809AA18: .4byte gUnknown_84E8918 - thumb_func_end ScrCmd_bufferitemname - - thumb_func_start sub_0809AA1C -sub_0809AA1C: @ 0x0809AA1C - push {r4, lr} - ldr r1, [r0, #8] - ldrb r4, [r1] - adds r1, #1 - str r1, [r0, #8] - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _0809AA58 - lsls r4, r4, #2 - adds r4, r4, r1 - ldr r2, [r4] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _0809AA5C - adds r1, r1, r0 - adds r0, r2, #0 - bl StringCopy - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809AA58: .4byte gUnknown_84E8918 -_0809AA5C: .4byte gUnknown_8580CD1 - thumb_func_end sub_0809AA1C - - thumb_func_start ScrCmd_bufferdecorationname -ScrCmd_bufferdecorationname: @ 0x0809AA60 - push {r4, lr} - ldr r1, [r0, #8] - ldrb r4, [r1] - adds r1, #1 - str r1, [r0, #8] - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r1, r0, #0 - lsls r1, r1, #0x10 - ldr r0, _0809AA94 - lsls r4, r4, #2 - adds r4, r4, r0 - ldr r0, [r4] - lsrs r1, r1, #0xd - ldr r2, _0809AA98 - adds r1, r1, r2 - bl StringCopy - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809AA94: .4byte gUnknown_84E8918 -_0809AA98: .4byte gUnknown_82EACC4 - thumb_func_end ScrCmd_bufferdecorationname - - thumb_func_start ScrCmd_buffernumberstring -ScrCmd_buffernumberstring: @ 0x0809AA9C - push {r4, r5, lr} - ldr r1, [r0, #8] - ldrb r5, [r1] - adds r1, #1 - str r1, [r0, #8] - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r4, #0 - bl CountDigits - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r0, _0809AADC - lsls r5, r5, #2 - adds r5, r5, r0 - ldr r0, [r5] - adds r1, r4, #0 - movs r2, #0 - bl sub_080089D8 - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0809AADC: .4byte gUnknown_84E8918 - thumb_func_end ScrCmd_buffernumberstring - - thumb_func_start ScrCmd_bufferstdstring -ScrCmd_bufferstdstring: @ 0x0809AAE0 - push {r4, lr} - ldr r1, [r0, #8] - ldrb r4, [r1] - adds r1, #1 - str r1, [r0, #8] - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x10 - ldr r1, _0809AB18 - lsls r4, r4, #2 - adds r4, r4, r1 - ldr r2, [r4] - ldr r1, _0809AB1C - lsrs r0, r0, #0xe - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r2, #0 - bl StringCopy - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809AB18: .4byte gUnknown_84E8918 -_0809AB1C: .4byte gUnknown_85645A0 - thumb_func_end ScrCmd_bufferstdstring - - thumb_func_start ScrCmd_bufferstring -ScrCmd_bufferstring: @ 0x0809AB20 - push {r4, lr} - ldr r1, [r0, #8] - ldrb r4, [r1] - adds r1, #1 - str r1, [r0, #8] - bl ScriptReadWord - adds r1, r0, #0 - ldr r0, _0809AB44 - lsls r4, r4, #2 - adds r4, r4, r0 - ldr r0, [r4] - bl StringCopy - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809AB44: .4byte gUnknown_84E8918 - thumb_func_end ScrCmd_bufferstring - - thumb_func_start ScrCmd_vloadword -ScrCmd_vloadword: @ 0x0809AB48 - push {lr} - bl ScriptReadWord - adds r1, r0, #0 - ldr r0, _0809AB64 - ldr r0, [r0] - subs r1, r1, r0 - ldr r0, _0809AB68 - bl StringExpandPlaceholders - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0809AB64: .4byte gUnknown_2037264 -_0809AB68: .4byte gUnknown_2021C7C - thumb_func_end ScrCmd_vloadword - - thumb_func_start ScrCmd_vbufferstring -ScrCmd_vbufferstring: @ 0x0809AB6C - push {r4, lr} - ldr r1, [r0, #8] - ldrb r4, [r1] - adds r1, #1 - str r1, [r0, #8] - bl ScriptReadWord - adds r1, r0, #0 - ldr r0, _0809AB98 - ldr r0, [r0] - subs r1, r1, r0 - ldr r0, _0809AB9C - lsls r4, r4, #2 - adds r4, r4, r0 - ldr r0, [r4] - bl StringCopy - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809AB98: .4byte gUnknown_2037264 -_0809AB9C: .4byte gUnknown_84E8918 - thumb_func_end ScrCmd_vbufferstring - - thumb_func_start ScrCmd_bufferboxname -ScrCmd_bufferboxname: @ 0x0809ABA0 - push {r4, lr} - ldr r1, [r0, #8] - ldrb r4, [r1] - adds r1, #1 - str r1, [r0, #8] - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - ldr r1, _0809ABD8 - lsls r4, r4, #2 - adds r4, r4, r1 - ldr r4, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBoxNamePtr - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCopy - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809ABD8: .4byte gUnknown_84E8918 - thumb_func_end ScrCmd_bufferboxname - - thumb_func_start ScrCmd_givemon -ScrCmd_givemon: @ 0x0809ABDC - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #8 - adds r4, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r6, r0, #0 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - ldr r0, [r4, #8] - ldrb r1, [r0] - mov sb, r1 - adds r0, #1 - str r0, [r4, #8] - adds r0, r4, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - adds r0, r4, #0 - bl ScriptReadWord - mov r8, r0 - adds r0, r4, #0 - bl ScriptReadWord - ldr r1, [r4, #8] - ldrb r2, [r1] - adds r1, #1 - str r1, [r4, #8] - ldr r4, _0809AC58 - str r0, [sp] - str r2, [sp, #4] - adds r0, r6, #0 - mov r1, sb - adds r2, r5, #0 - mov r3, r8 - bl ScriptGiveMon - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - movs r0, #0 - add sp, #8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0809AC58: .4byte gUnknown_2037290 - thumb_func_end ScrCmd_givemon - - thumb_func_start sub_0809AC5C -sub_0809AC5C: @ 0x0809AC5C - push {r4, lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _0809AC84 - bl ScriptGiveEgg - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809AC84: .4byte gUnknown_2037290 - thumb_func_end sub_0809AC5C - - thumb_func_start ScrCmd_setmonmove -ScrCmd_setmonmove: @ 0x0809AC88 - push {r4, r5, lr} - ldr r1, [r0, #8] - ldrb r5, [r1] - adds r1, #1 - str r1, [r0, #8] - ldrb r4, [r1] - adds r1, #1 - str r1, [r0, #8] - bl ScriptReadHalfword - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r5, #0 - adds r2, r4, #0 - bl ScriptSetMonMoveSlot - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_setmonmove - - thumb_func_start ScrCmd_checkpartymove -ScrCmd_checkpartymove: @ 0x0809ACB4 - push {r4, r5, r6, r7, lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - ldr r1, _0809ACC8 - movs r0, #6 - strh r0, [r1] - movs r6, #0 - b _0809AD02 - .align 2, 0 -_0809ACC8: .4byte gUnknown_2037290 -_0809ACCC: - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - bne _0809ACFC - adds r0, r4, #0 - adds r1, r7, #0 - bl MonKnowsMove - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809ACFC - ldr r0, _0809ACF4 - strh r6, [r0] - ldr r0, _0809ACF8 - strh r5, [r0] - b _0809AD22 - .align 2, 0 -_0809ACF4: .4byte gUnknown_2037290 -_0809ACF8: .4byte gUnknown_2037280 -_0809ACFC: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_0809AD02: - cmp r6, #5 - bhi _0809AD22 - movs r0, #0x64 - adds r1, r6, #0 - muls r1, r0, r1 - ldr r0, _0809AD2C - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0 - bne _0809ACCC -_0809AD22: - movs r0, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0809AD2C: .4byte gUnknown_2024190 - thumb_func_end ScrCmd_checkpartymove - - thumb_func_start sub_0809AD30 -sub_0809AD30: @ 0x0809AD30 - push {r4, lr} - adds r4, r0, #0 - bl ScriptReadWord - adds r2, r0, #0 - ldr r0, [r4, #8] - ldrb r1, [r0] - adds r0, #1 - str r0, [r4, #8] - cmp r1, #0 - bne _0809AD56 - ldr r0, _0809AD60 - ldr r0, [r0] - movs r1, #0x92 - lsls r1, r1, #3 - adds r0, r0, r1 - adds r1, r2, #0 - bl AddMoney -_0809AD56: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809AD60: .4byte gUnknown_3005AEC - thumb_func_end sub_0809AD30 - - thumb_func_start sub_0809AD64 -sub_0809AD64: @ 0x0809AD64 - push {r4, lr} - adds r4, r0, #0 - bl ScriptReadWord - adds r2, r0, #0 - ldr r0, [r4, #8] - ldrb r1, [r0] - adds r0, #1 - str r0, [r4, #8] - cmp r1, #0 - bne _0809AD8A - ldr r0, _0809AD94 - ldr r0, [r0] - movs r1, #0x92 - lsls r1, r1, #3 - adds r0, r0, r1 - adds r1, r2, #0 - bl RemoveMoney -_0809AD8A: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809AD94: .4byte gUnknown_3005AEC - thumb_func_end sub_0809AD64 - - thumb_func_start ScrCmd_checkmoney -ScrCmd_checkmoney: @ 0x0809AD98 - push {r4, lr} - adds r4, r0, #0 - bl ScriptReadWord - adds r2, r0, #0 - ldr r0, [r4, #8] - ldrb r1, [r0] - adds r0, #1 - str r0, [r4, #8] - cmp r1, #0 - bne _0809ADC6 - ldr r4, _0809ADD0 - ldr r0, _0809ADD4 - ldr r0, [r0] - movs r1, #0x92 - lsls r1, r1, #3 - adds r0, r0, r1 - adds r1, r2, #0 - bl IsEnoughMoney - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] -_0809ADC6: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809ADD0: .4byte gUnknown_2037290 -_0809ADD4: .4byte gUnknown_3005AEC - thumb_func_end ScrCmd_checkmoney - - thumb_func_start ScrCmd_showmoneybox -ScrCmd_showmoneybox: @ 0x0809ADD8 - push {r4, r5, lr} - ldr r1, [r0, #8] - ldrb r5, [r1] - adds r1, #1 - str r1, [r0, #8] - ldrb r4, [r1] - adds r2, r1, #1 - str r2, [r0, #8] - ldrb r1, [r1, #1] - adds r2, #1 - str r2, [r0, #8] - cmp r1, #0 - bne _0809AE08 - ldr r0, _0809AE10 - ldr r0, [r0] - movs r1, #0x92 - lsls r1, r1, #3 - adds r0, r0, r1 - bl sub_080E4908 - adds r1, r5, #0 - adds r2, r4, #0 - bl DrawMoneyBox -_0809AE08: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0809AE10: .4byte gUnknown_3005AEC - thumb_func_end ScrCmd_showmoneybox - - thumb_func_start sub_0809AE14 -sub_0809AE14: @ 0x0809AE14 - push {lr} - bl HideMoneyBox - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end sub_0809AE14 - - thumb_func_start ScrCmd_updatemoneybox -ScrCmd_updatemoneybox: @ 0x0809AE20 - push {lr} - ldr r1, [r0, #8] - adds r1, #1 - adds r2, r1, #1 - str r2, [r0, #8] - ldrb r1, [r1, #1] - adds r2, #1 - str r2, [r0, #8] - cmp r1, #0 - bne _0809AE46 - ldr r0, _0809AE4C - ldr r0, [r0] - movs r1, #0x92 - lsls r1, r1, #3 - adds r0, r0, r1 - bl sub_080E4908 - bl ChangeAmountInMoneyBox -_0809AE46: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0809AE4C: .4byte gUnknown_3005AEC - thumb_func_end ScrCmd_updatemoneybox - - thumb_func_start ScrCmd_showcoinsbox -ScrCmd_showcoinsbox: @ 0x0809AE50 - push {r4, r5, lr} - ldr r1, [r0, #8] - ldrb r5, [r1] - adds r1, #1 - str r1, [r0, #8] - ldrb r4, [r1] - adds r1, #1 - str r1, [r0, #8] - bl GetCoins - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r5, #0 - adds r2, r4, #0 - bl sub_08145C6C - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_showcoinsbox - - thumb_func_start ScrCmd_hidecoinsbox -ScrCmd_hidecoinsbox: @ 0x0809AE78 - push {lr} - ldr r1, [r0, #8] - adds r1, #2 - str r1, [r0, #8] - bl HideCoinsWindow - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_hidecoinsbox - - thumb_func_start ScrCmd_updatecoinsbox -ScrCmd_updatecoinsbox: @ 0x0809AE8C - push {lr} - ldr r1, [r0, #8] - adds r1, #2 - str r1, [r0, #8] - bl GetCoins - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_08145C20 - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_updatecoinsbox - - thumb_func_start ScrCmd_trainerbattle -ScrCmd_trainerbattle: @ 0x0809AEA8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #8] - bl BattleSetup_ConfigureTrainerBattle - str r0, [r4, #8] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_trainerbattle - - thumb_func_start ScrCmd_dotrainerbattle -ScrCmd_dotrainerbattle: @ 0x0809AEBC - push {lr} - bl BattleSetup_StartTrainerBattle - movs r0, #1 - pop {r1} - bx r1 - thumb_func_end ScrCmd_dotrainerbattle - - thumb_func_start sub_0809AEC8 -sub_0809AEC8: @ 0x0809AEC8 - push {r4, lr} - adds r4, r0, #0 - bl BattleSetup_GetScriptAddrAfterBattle - str r0, [r4, #8] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0809AEC8 - - thumb_func_start sub_0809AEDC -sub_0809AEDC: @ 0x0809AEDC - push {r4, lr} - adds r4, r0, #0 - bl BattleSetup_GetTrainerPostBattleScript - str r0, [r4, #8] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0809AEDC - - thumb_func_start ScrCmd_checktrainerflag -ScrCmd_checktrainerflag: @ 0x0809AEF0 - push {r4, lr} - adds r4, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl HasTrainerBeenFought - strb r0, [r4, #2] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_checktrainerflag - - thumb_func_start ScrCmd_settrainerflag -ScrCmd_settrainerflag: @ 0x0809AF14 - push {lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_080B10A4 - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_settrainerflag - - thumb_func_start HideSaveInfoWindow -HideSaveInfoWindow: @ 0x0809AF30 - push {lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl SetTrainerFlag - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end HideSaveInfoWindow - - thumb_func_start ScrCmd_setwildbattle -ScrCmd_setwildbattle: @ 0x0809AF4C - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl ScriptReadHalfword - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - ldr r0, [r4, #8] - ldrb r6, [r0] - adds r0, #1 - str r0, [r4, #8] - adds r0, r4, #0 - bl ScriptReadHalfword - adds r2, r0, #0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - adds r0, r5, #0 - adds r1, r6, #0 - bl CreateScriptedWildMon - movs r0, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_setwildbattle - - thumb_func_start ScrCmd_dowildbattle -ScrCmd_dowildbattle: @ 0x0809AF80 - push {lr} - bl BattleSetup_StartScriptedWildBattle - bl sub_080988B8 - movs r0, #1 - pop {r1} - bx r1 - thumb_func_end ScrCmd_dowildbattle - - thumb_func_start sub_0809AF90 -sub_0809AF90: @ 0x0809AF90 - push {lr} - bl ScriptReadWord - bl CreatePokemartMenu - bl sub_080988B8 - movs r0, #1 - pop {r1} - bx r1 - thumb_func_end sub_0809AF90 - - thumb_func_start sub_0809AFA4 -sub_0809AFA4: @ 0x0809AFA4 - push {lr} - bl ScriptReadWord - bl CreateDecorationShop1Menu - bl sub_080988B8 - movs r0, #1 - pop {r1} - bx r1 - thumb_func_end sub_0809AFA4 - - thumb_func_start sub_0809AFB8 -sub_0809AFB8: @ 0x0809AFB8 - push {lr} - bl ScriptReadWord - bl CreateDecorationShop2Menu - bl sub_080988B8 - movs r0, #1 - pop {r1} - bx r1 - thumb_func_end sub_0809AFB8 - - thumb_func_start ScrCmd_playslotmachine -ScrCmd_playslotmachine: @ 0x0809AFCC - push {lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0809AFF0 - bl PlaySlotMachine - bl sub_080988B8 - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 -_0809AFF0: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic - thumb_func_end ScrCmd_playslotmachine - - thumb_func_start ScrCmd_setberrytree -ScrCmd_setberrytree: @ 0x0809AFF4 - push {r4, r5, lr} - ldr r1, [r0, #8] - ldrb r5, [r1] - adds r1, #1 - str r1, [r0, #8] - ldrb r3, [r1] - adds r2, r1, #1 - str r2, [r0, #8] - ldrb r4, [r1, #1] - adds r2, #1 - str r2, [r0, #8] - cmp r3, #0 - bne _0809B01C - adds r0, r5, #0 - movs r1, #0 - adds r2, r4, #0 - movs r3, #0 - bl PlantBerryTree - b _0809B028 -_0809B01C: - adds r0, r5, #0 - adds r1, r3, #0 - adds r2, r4, #0 - movs r3, #0 - bl PlantBerryTree -_0809B028: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setberrytree - - thumb_func_start ScrCmd_getpricereduction -ScrCmd_getpricereduction: @ 0x0809B030 - push {r4, lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - ldr r4, _0809B058 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetPriceReduction - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809B058: .4byte gUnknown_2037290 - thumb_func_end ScrCmd_getpricereduction - - thumb_func_start sub_0809B05C -sub_0809B05C: @ 0x0809B05C - push {lr} - bl sub_081B90A4 - bl sub_080988B8 - movs r0, #1 - pop {r1} - bx r1 - thumb_func_end sub_0809B05C - - thumb_func_start sub_0809B06C -sub_0809B06C: @ 0x0809B06C - push {lr} - bl WarpIntoSecretBase - bl sub_080988B8 - movs r0, #1 - pop {r1} - bx r1 - thumb_func_end sub_0809B06C - - thumb_func_start IsPokerusInParty -IsPokerusInParty: @ 0x0809B07C - push {lr} - bl sub_080F8D08 - bl sub_080988B8 - movs r0, #1 - pop {r1} - bx r1 - thumb_func_end IsPokerusInParty - - thumb_func_start sub_0809B08C -sub_0809B08C: @ 0x0809B08C - push {lr} - ldr r0, _0809B0A0 - ldrb r0, [r0] - bl sub_080F8D48 - bl sub_080988B8 - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 -_0809B0A0: .4byte gUnknown_2039BCC - thumb_func_end sub_0809B08C - - thumb_func_start ScrCmd_dofieldeffect -ScrCmd_dofieldeffect: @ 0x0809B0A4 - push {lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _0809B0C8 - strh r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl FieldEffectStart - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0809B0C8: .4byte gUnknown_2037270 - thumb_func_end ScrCmd_dofieldeffect - - thumb_func_start ScrCmd_setfieldeffectarg -ScrCmd_setfieldeffectarg: @ 0x0809B0CC - push {r4, lr} - ldr r1, [r0, #8] - ldrb r4, [r1] - adds r1, #1 - str r1, [r0, #8] - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - ldr r1, _0809B0F8 - lsls r4, r4, #2 - adds r4, r4, r1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - str r0, [r4] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809B0F8: .4byte gUnknown_20388A8 - thumb_func_end ScrCmd_setfieldeffectarg - - thumb_func_start WaitForFieldEffectFinish -WaitForFieldEffectFinish: @ 0x0809B0FC - push {lr} - ldr r0, _0809B110 - ldrb r0, [r0] - bl FieldEffectActiveListContains - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809B114 - movs r0, #0 - b _0809B116 - .align 2, 0 -_0809B110: .4byte gUnknown_2037270 -_0809B114: - movs r0, #1 -_0809B116: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end WaitForFieldEffectFinish - - thumb_func_start ScrCmd_waitfieldeffect -ScrCmd_waitfieldeffect: @ 0x0809B11C - push {r4, lr} - adds r4, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - ldr r1, _0809B140 - strh r0, [r1] - ldr r1, _0809B144 - adds r0, r4, #0 - bl SetupNativeScript - movs r0, #1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809B140: .4byte gUnknown_2037270 -_0809B144: .4byte WaitForFieldEffectFinish - thumb_func_end ScrCmd_waitfieldeffect - - thumb_func_start ScrCmd_setrespawn -ScrCmd_setrespawn: @ 0x0809B148 - push {lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl SetLastHealLocationWarp - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_setrespawn - - thumb_func_start ScrCmd_checkplayergender -ScrCmd_checkplayergender: @ 0x0809B164 - ldr r1, _0809B174 - ldr r0, _0809B178 - ldr r0, [r0] - ldrb r0, [r0, #8] - strh r0, [r1] - movs r0, #0 - bx lr - .align 2, 0 -_0809B174: .4byte gUnknown_2037290 -_0809B178: .4byte gUnknown_3005AF0 - thumb_func_end ScrCmd_checkplayergender - - thumb_func_start ScrCmd_playmoncry -ScrCmd_playmoncry: @ 0x0809B17C - push {r4, r5, lr} - adds r5, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl PlayCry5 - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_playmoncry - - thumb_func_start sub_0809B1B4 -sub_0809B1B4: @ 0x0809B1B4 - push {lr} - ldr r1, _0809B1C4 - bl SetupNativeScript - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 -_0809B1C4: .4byte IsCryFinished - thumb_func_end sub_0809B1B4 - - thumb_func_start ScrCmd_setmetatile -ScrCmd_setmetatile: @ 0x0809B1C8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r0, r4, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r4, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - adds r0, r4, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x10 - adds r1, r6, #7 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - adds r1, r5, #7 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - cmp r0, #0 - bne _0809B22C - adds r0, r6, #0 - adds r1, r5, #0 - adds r2, r7, #0 - bl MapGridSetMetatileIdAt - b _0809B23E -_0809B22C: - movs r1, #0xc0 - lsls r1, r1, #4 - adds r0, r1, #0 - adds r2, r7, #0 - orrs r2, r0 - adds r0, r6, #0 - adds r1, r5, #0 - bl MapGridSetMetatileIdAt -_0809B23E: - movs r0, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_setmetatile - - thumb_func_start ScrCmd_opendoor -ScrCmd_opendoor: @ 0x0809B248 - push {r4, r5, lr} - adds r4, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - adds r0, r4, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - adds r5, #7 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - movs r0, #0xe0 - lsls r0, r0, #0xb - adds r4, r4, r0 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl GetDoorSoundEffect - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_080A306C - adds r0, r5, #0 - adds r1, r4, #0 - bl FieldAnimateDoorOpen - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_opendoor - - thumb_func_start ScrCmd_closedoor -ScrCmd_closedoor: @ 0x0809B2A0 - push {r4, r5, lr} - adds r5, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r1, r0, #0 - lsls r1, r1, #0x10 - adds r4, #7 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - movs r0, #0xe0 - lsls r0, r0, #0xb - adds r1, r1, r0 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl FieldAnimateDoorClose - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_closedoor - - thumb_func_start IsDoorAnimationStopped -IsDoorAnimationStopped: @ 0x0809B2E4 - push {lr} - bl FieldIsDoorAnimationRunning - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809B2F4 - movs r0, #0 - b _0809B2F6 -_0809B2F4: - movs r0, #1 -_0809B2F6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsDoorAnimationStopped - - thumb_func_start sub_0809B2FC -sub_0809B2FC: @ 0x0809B2FC - push {lr} - ldr r1, _0809B30C - bl SetupNativeScript - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 -_0809B30C: .4byte IsDoorAnimationStopped - thumb_func_end sub_0809B2FC - - thumb_func_start ScrCmd_setdooropen -ScrCmd_setdooropen: @ 0x0809B310 - push {r4, r5, lr} - adds r5, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r1, r0, #0 - lsls r1, r1, #0x10 - adds r4, #7 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - movs r0, #0xe0 - lsls r0, r0, #0xb - adds r1, r1, r0 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl FieldSetDoorOpened - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setdooropen - - thumb_func_start sub_0809B354 -sub_0809B354: @ 0x0809B354 - push {r4, r5, lr} - adds r5, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r1, r0, #0 - lsls r1, r1, #0x10 - adds r4, #7 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - movs r0, #0xe0 - lsls r0, r0, #0xb - adds r1, r1, r0 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl FieldSetDoorClosed - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_0809B354 - - thumb_func_start ScrCmd_addelevmenuitem -ScrCmd_addelevmenuitem: @ 0x0809B398 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #8] - adds r0, #1 - str r0, [r4, #8] - adds r0, r4, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r0, r4, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r0, r4, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_addelevmenuitem - - thumb_func_start sub_0809B3D4 -sub_0809B3D4: @ 0x0809B3D4 - movs r0, #0 - bx lr - thumb_func_end sub_0809B3D4 - - thumb_func_start ScrCmd_checkcoins -ScrCmd_checkcoins: @ 0x0809B3D8 - push {r4, lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetVarPointer - adds r4, r0, #0 - bl GetCoins - strh r0, [r4] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_checkcoins - - thumb_func_start ScrCmd_givecoins -ScrCmd_givecoins: @ 0x0809B3F8 - push {lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GiveCoins - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809B420 - ldr r1, _0809B41C - movs r0, #0 - b _0809B424 - .align 2, 0 -_0809B41C: .4byte gUnknown_2037290 -_0809B420: - ldr r1, _0809B42C - movs r0, #1 -_0809B424: - strh r0, [r1] - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0809B42C: .4byte gUnknown_2037290 - thumb_func_end ScrCmd_givecoins - - thumb_func_start ScrCmd_takecoins -ScrCmd_takecoins: @ 0x0809B430 - push {lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl TakeCoins - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809B458 - ldr r1, _0809B454 - movs r0, #0 - b _0809B45C - .align 2, 0 -_0809B454: .4byte gUnknown_2037290 -_0809B458: - ldr r1, _0809B464 - movs r0, #1 -_0809B45C: - strh r0, [r1] - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0809B464: .4byte gUnknown_2037290 - thumb_func_end ScrCmd_takecoins - - thumb_func_start sub_0809B468 -sub_0809B468: @ 0x0809B468 - push {lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl MossdeepGym_MoveEvents - ldr r1, _0809B488 - strh r0, [r1] - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0809B488: .4byte gUnknown_203726A - thumb_func_end sub_0809B468 - - thumb_func_start sub_0809B48C -sub_0809B48C: @ 0x0809B48C - push {lr} - bl MossdeepGym_TurnEvents - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end sub_0809B48C - - thumb_func_start ScrCmd_mossdeepgym3 -ScrCmd_mossdeepgym3: @ 0x0809B498 - push {lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl InitMossdeepGymTiles - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_mossdeepgym3 - - thumb_func_start sub_0809B4B4 -sub_0809B4B4: @ 0x0809B4B4 - push {lr} - bl FinishMossdeepGymTiles - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end sub_0809B4B4 - - thumb_func_start ScrCmd_cmdD8 -ScrCmd_cmdD8: @ 0x0809B4C0 - push {lr} - bl GetCurrentApproachingTrainerEventObjectId - ldr r1, _0809B4D0 - strb r0, [r1] - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0809B4D0: .4byte gUnknown_3005B50 - thumb_func_end ScrCmd_cmdD8 - - thumb_func_start ScrCmd_cmdD9 -ScrCmd_cmdD9: @ 0x0809B4D4 - push {r4, lr} - adds r4, r0, #0 - bl IsUpdateLinkStateCBActive - cmp r0, #0 - beq _0809B4E4 - movs r0, #0 - b _0809B508 -_0809B4E4: - ldr r2, _0809B510 - ldr r0, _0809B514 - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _0809B506 - bl sub_08097FB8 - ldr r1, _0809B518 - adds r0, r4, #0 - bl SetupNativeScript -_0809B506: - movs r0, #1 -_0809B508: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809B510: .4byte gUnknown_2036FF0 -_0809B514: .4byte gUnknown_3005B50 -_0809B518: .4byte sub_080980BC - thumb_func_end ScrCmd_cmdD9 - - thumb_func_start ScrCmd_setmonobedient -ScrCmd_setmonobedient: @ 0x0809B51C - push {lr} - sub sp, #4 - movs r2, #1 - mov r1, sp - strb r2, [r1] - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - muls r0, r1, r0 - ldr r1, _0809B550 - adds r0, r0, r1 - movs r1, #0x50 - mov r2, sp - bl SetMonData - movs r0, #0 - add sp, #4 - pop {r1} - bx r1 - .align 2, 0 -_0809B550: .4byte gUnknown_2024190 - thumb_func_end ScrCmd_setmonobedient - - thumb_func_start ScrCmd_checkmonobedience -ScrCmd_checkmonobedience: @ 0x0809B554 - push {r4, lr} - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _0809B584 - movs r1, #0x64 - muls r0, r1, r0 - ldr r1, _0809B588 - adds r0, r0, r1 - movs r1, #0x50 - movs r2, #0 - bl GetMonData - strh r0, [r4] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809B584: .4byte gUnknown_2037290 -_0809B588: .4byte gUnknown_2024190 - thumb_func_end ScrCmd_checkmonobedience - - thumb_func_start ScrCmd_gotoram -ScrCmd_gotoram: @ 0x0809B58C - push {r4, lr} - adds r4, r0, #0 - bl GetSavedRamScriptIfValid - adds r2, r0, #0 - cmp r2, #0 - beq _0809B5A8 - ldr r1, _0809B5B0 - ldr r0, [r4, #8] - str r0, [r1] - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0809876C -_0809B5A8: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809B5B0: .4byte gUnknown_2037260 - thumb_func_end ScrCmd_gotoram - - thumb_func_start ScrCmd_warpD1 -ScrCmd_warpD1: @ 0x0809B5B4 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #4 - adds r5, r0, #0 - ldr r0, [r5, #8] - ldrb r1, [r0] - mov sb, r1 - adds r0, #1 - str r0, [r5, #8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, #1 - str r1, [r5, #8] - ldrb r6, [r0, #1] - adds r1, #1 - str r1, [r5, #8] - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - mov r1, sb - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov sb, r1 - mov r1, r8 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov r8, r1 - lsls r6, r6, #0x18 - asrs r6, r6, #0x18 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - str r0, [sp] - mov r0, sb - adds r2, r6, #0 - adds r3, r4, #0 - bl SetWarpDestination - bl GetPlayerFacingDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_0808C9E4 - bl sub_080AFB40 - bl ResetInitialPlayerAvatarState - movs r0, #1 - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_warpD1 - - thumb_func_start ScrCmd_setmonmetlocation -ScrCmd_setmonmetlocation: @ 0x0809B648 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldr r0, [r4, #8] - ldrb r2, [r0] - mov r1, sp - strb r2, [r1] - adds r0, #1 - str r0, [r4, #8] - cmp r3, #5 - bhi _0809B67E - movs r0, #0x64 - muls r0, r3, r0 - ldr r1, _0809B688 - adds r0, r0, r1 - movs r1, #0x23 - mov r2, sp - bl SetMonData -_0809B67E: - movs r0, #0 - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809B688: .4byte gUnknown_2024190 - thumb_func_end ScrCmd_setmonmetlocation - - thumb_func_start sub_0809B68C -sub_0809B68C: @ 0x0809B68C - push {r4, lr} - ldr r4, _0809B6A4 - ldrb r0, [r4] - movs r1, #1 - bl sub_08197060 - ldrb r0, [r4] - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809B6A4: .4byte gUnknown_3000F30 - thumb_func_end sub_0809B68C - - thumb_func_start ScrCmd_buffertrainerclassname -ScrCmd_buffertrainerclassname: @ 0x0809B6A8 - push {r4, lr} - ldr r1, [r0, #8] - ldrb r4, [r1] - adds r1, #1 - str r1, [r0, #8] - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _0809B6E0 - lsls r4, r4, #2 - adds r4, r4, r1 - ldr r4, [r4] - bl sub_0806EB08 - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCopy - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809B6E0: .4byte gUnknown_84E8918 - thumb_func_end ScrCmd_buffertrainerclassname - - thumb_func_start sub_0809B6E4 -sub_0809B6E4: @ 0x0809B6E4 - push {r4, lr} - ldr r1, [r0, #8] - ldrb r4, [r1] - adds r1, #1 - str r1, [r0, #8] - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _0809B71C - lsls r4, r4, #2 - adds r4, r4, r1 - ldr r4, [r4] - bl sub_0806EB38 - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCopy - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809B71C: .4byte gUnknown_84E8918 - thumb_func_end sub_0809B6E4 - - thumb_func_start sub_0809B720 -sub_0809B720: @ 0x0809B720 - ldr r1, _0809B728 - strh r0, [r1] - bx lr - .align 2, 0 -_0809B728: .4byte gUnknown_203726A - thumb_func_end sub_0809B720 - - thumb_func_start ScrCmd_warpE0 -ScrCmd_warpE0: @ 0x0809B72C - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #4 - adds r5, r0, #0 - ldr r0, [r5, #8] - ldrb r1, [r0] - mov sb, r1 - adds r0, #1 - str r0, [r5, #8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, #1 - str r1, [r5, #8] - ldrb r6, [r0, #1] - adds r1, #1 - str r1, [r5, #8] - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - bl ScriptReadHalfword - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl VarGet - mov r1, sb - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov sb, r1 - mov r1, r8 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov r8, r1 - lsls r6, r6, #0x18 - asrs r6, r6, #0x18 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - str r0, [sp] - mov r0, sb - adds r2, r6, #0 - adds r3, r4, #0 - bl SetWarpDestination - bl ScrCmd_pokemartdecoration2 - bl ResetInitialPlayerAvatarState - movs r0, #1 - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrCmd_warpE0 - - thumb_func_start FieldClearPlayerInput -FieldClearPlayerInput: @ 0x0809B7B4 - push {r4, r5, lr} - movs r1, #2 - rsbs r1, r1, #0 - movs r3, #3 - rsbs r3, r3, #0 - movs r4, #5 - rsbs r4, r4, #0 - movs r5, #9 - rsbs r5, r5, #0 - movs r2, #0 - strb r2, [r0] - ldrb r2, [r0, #1] - ands r1, r2 - ands r1, r3 - ands r1, r4 - ands r1, r5 - strb r1, [r0, #1] - movs r1, #0 - strb r1, [r0, #2] - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end FieldClearPlayerInput - - thumb_func_start FieldGetPlayerInput -FieldGetPlayerInput: @ 0x0809B7E0 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r4, r0, #0 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - mov r8, r2 - ldr r0, _0809B8B0 - ldrb r6, [r0, #3] - ldrb r0, [r0, #2] - mov sb, r0 - bl GetPlayerCurMetatileBehavior - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsForcedMovementTile - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r6, #2 - bne _0809B814 - cmp r7, #0 - beq _0809B818 -_0809B814: - cmp r6, #0 - bne _0809B87A -_0809B818: - bl GetPlayerSpeed - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - beq _0809B864 - movs r0, #8 - ands r0, r5 - cmp r0, #0 - beq _0809B834 - ldrb r0, [r4] - movs r1, #4 - orrs r0, r1 - strb r0, [r4] -_0809B834: - movs r0, #4 - ands r0, r5 - cmp r0, #0 - beq _0809B844 - ldrb r0, [r4] - movs r1, #8 - orrs r0, r1 - strb r0, [r4] -_0809B844: - movs r0, #1 - ands r0, r5 - cmp r0, #0 - beq _0809B854 - ldrb r0, [r4] - movs r1, #1 - orrs r0, r1 - strb r0, [r4] -_0809B854: - movs r0, #2 - ands r0, r5 - cmp r0, #0 - beq _0809B864 - ldrb r0, [r4] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4] -_0809B864: - movs r0, #0xf0 - mov r1, r8 - ands r0, r1 - cmp r0, #0 - beq _0809B87A - ldrb r0, [r4] - movs r1, #0x10 - orrs r0, r1 - movs r1, #0x20 - orrs r0, r1 - strb r0, [r4] -_0809B87A: - cmp r7, #0 - bne _0809B8A0 - cmp r6, #2 - bne _0809B890 - mov r0, sb - cmp r0, #2 - bne _0809B890 - ldrb r0, [r4] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4] -_0809B890: - cmp r7, #0 - bne _0809B8A0 - cmp r6, #2 - bne _0809B8A0 - ldrb r0, [r4] - movs r1, #2 - orrs r0, r1 - strb r0, [r4] -_0809B8A0: - movs r0, #0x40 - mov r1, r8 - ands r0, r1 - cmp r0, #0 - beq _0809B8B4 - movs r0, #2 - b _0809B8DC - .align 2, 0 -_0809B8B0: .4byte gUnknown_2037230 -_0809B8B4: - movs r0, #0x80 - mov r1, r8 - ands r0, r1 - cmp r0, #0 - beq _0809B8C2 - movs r0, #1 - b _0809B8DC -_0809B8C2: - movs r0, #0x20 - mov r1, r8 - ands r0, r1 - cmp r0, #0 - beq _0809B8D0 - movs r0, #3 - b _0809B8DC -_0809B8D0: - movs r0, #0x10 - mov r1, r8 - ands r0, r1 - cmp r0, #0 - beq _0809B8DE - movs r0, #4 -_0809B8DC: - strb r0, [r4, #2] -_0809B8DE: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end FieldGetPlayerInput - - thumb_func_start ProcessPlayerFieldInput -ProcessPlayerFieldInput: @ 0x0809B8EC - push {r4, r5, r6, lr} - sub sp, #8 - adds r5, r0, #0 - ldr r0, _0809BA2C - movs r1, #0 - strh r1, [r0] - ldr r0, _0809BA30 - strb r1, [r0] - bl GetPlayerFacingDirection - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - mov r4, sp - mov r0, sp - bl GetPlayerPosition - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #2 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - bl CheckForTrainersWantingBattle - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0809BA26 - bl TryRunOnFrameMapScript - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0809BA26 - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809B948 - bl TrySetupDiveEmergeScript - cmp r0, #1 - beq _0809BA26 -_0809B948: - ldrb r1, [r5] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0809B96E - movs r0, #5 - bl IncrementGameStat - bl IncrementBirthIslandRockStepCount - mov r0, sp - adds r1, r4, #0 - adds r2, r6, #0 - bl TryStartStepBasedScript - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0809BA26 -_0809B96E: - ldrb r1, [r5] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0809B986 - adds r0, r4, #0 - bl CheckStandardWildEncounter - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0809BA26 -_0809B986: - ldrb r1, [r5] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0809B9A8 - ldrb r0, [r5, #2] - cmp r0, r6 - bne _0809B9A8 - mov r0, sp - adds r1, r4, #0 - adds r2, r6, #0 - bl TryArrowWarp - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0809BA26 -_0809B9A8: - mov r4, sp - mov r0, sp - bl GetInFrontOfPlayerPosition - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #2 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldrb r1, [r5] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0809B9DE - mov r0, sp - adds r1, r4, #0 - adds r2, r6, #0 - bl TryStartInteractionScript - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0809BA26 -_0809B9DE: - ldrb r1, [r5] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0809BA00 - ldrb r0, [r5, #2] - cmp r0, r6 - bne _0809BA00 - mov r0, sp - adds r1, r4, #0 - adds r2, r6, #0 - bl TryDoorWarp - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0809BA26 -_0809BA00: - ldrb r1, [r5] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0809BA12 - bl sub_0809C140 - cmp r0, #1 - beq _0809BA26 -_0809BA12: - ldrb r1, [r5] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0809BA34 - movs r0, #6 - bl sub_080A306C - bl ShowStartMenu -_0809BA26: - movs r0, #1 - b _0809BA4A - .align 2, 0 -_0809BA2C: .4byte gUnknown_2037292 -_0809BA30: .4byte gUnknown_3005B50 -_0809BA34: - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0809BA48 - bl UseRegisteredKeyItemOnField - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0809BA26 -_0809BA48: - movs r0, #0 -_0809BA4A: - add sp, #8 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ProcessPlayerFieldInput - - thumb_func_start GetPlayerPosition -GetPlayerPosition: @ 0x0809BA54 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #2 - bl PlayerGetDestCoords - bl PlayerGetZCoord - strb r0, [r4, #4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end GetPlayerPosition - - thumb_func_start GetInFrontOfPlayerPosition -GetInFrontOfPlayerPosition: @ 0x0809BA6C - push {r4, r5, lr} - sub sp, #4 - adds r5, r0, #0 - adds r1, r5, #2 - bl GetXYCoordsOneStepInFrontOfPlayer - mov r4, sp - adds r4, #2 - 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 MapGridGetZCoordAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _0809BA9E - bl PlayerGetZCoord -_0809BA9E: - strb r0, [r5, #4] - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end GetInFrontOfPlayerPosition - - thumb_func_start GetPlayerCurMetatileBehavior -GetPlayerCurMetatileBehavior: @ 0x0809BAA8 - push {r4, lr} - sub sp, #4 - mov r4, sp - adds r4, #2 - 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, r0, #0x10 - lsrs r0, r0, #0x10 - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetPlayerCurMetatileBehavior - - thumb_func_start TryStartInteractionScript -TryStartInteractionScript: @ 0x0809BAD4 - push {r4, lr} - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl GetInteractionScript - adds r4, r0, #0 - cmp r4, #0 - bne _0809BAEC - movs r0, #0 - b _0809BB24 -_0809BAEC: - ldr r0, _0809BB2C - cmp r4, r0 - beq _0809BB1C - ldr r0, _0809BB30 - cmp r4, r0 - beq _0809BB1C - ldr r0, _0809BB34 - cmp r4, r0 - beq _0809BB1C - ldr r0, _0809BB38 - cmp r4, r0 - beq _0809BB1C - ldr r0, _0809BB3C - cmp r4, r0 - beq _0809BB1C - ldr r0, _0809BB40 - cmp r4, r0 - beq _0809BB1C - ldr r0, _0809BB44 - cmp r4, r0 - beq _0809BB1C - movs r0, #5 - bl sub_080A306C -_0809BB1C: - adds r0, r4, #0 - bl ScriptContext1_SetupScript - movs r0, #1 -_0809BB24: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809BB2C: .4byte gUnknown_81F01BC -_0809BB30: .4byte gUnknown_81F0D9F -_0809BB34: .4byte gUnknown_821D3AA -_0809BB38: .4byte gUnknown_821D478 -_0809BB3C: .4byte gUnknown_82465B5 -_0809BB40: .4byte gUnknown_82465B9 -_0809BB44: .4byte gUnknown_8242E1E - thumb_func_end TryStartInteractionScript - - thumb_func_start GetInteractionScript -GetInteractionScript: @ 0x0809BB48 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - mov r8, r5 - lsls r2, r2, #0x18 - lsrs r4, r2, #0x18 - adds r7, r4, #0 - adds r1, r5, #0 - adds r2, r4, #0 - bl GetInteractedEventObjectScript - cmp r0, #0 - bne _0809BB94 - adds r0, r6, #0 - adds r1, r5, #0 - adds r2, r4, #0 - bl GetInteractedBackgroundEventScript - cmp r0, #0 - bne _0809BB94 - adds r0, r6, #0 - adds r1, r5, #0 - adds r2, r4, #0 - bl GetInteractedMetatileScript - cmp r0, #0 - bne _0809BB94 - adds r0, r6, #0 - mov r1, r8 - adds r2, r7, #0 - bl GetInteractedWaterScript - cmp r0, #0 - bne _0809BB94 - movs r0, #0 -_0809BB94: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetInteractionScript - - thumb_func_start GetInteractedLinkPlayerScript -GetInteractedLinkPlayerScript: @ 0x0809BBA0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - movs r1, #0 - ldrsh r0, [r4, r1] - movs r2, #2 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsCounter - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809BBC8 - ldrh r0, [r4] - ldrh r1, [r4, #2] - b _0809BBE6 -_0809BBC8: - ldr r1, _0809BC0C - lsls r2, r6, #3 - adds r0, r2, r1 - ldr r3, [r0] - ldrh r0, [r4] - adds r0, r0, r3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, #4 - adds r2, r2, r1 - ldr r2, [r2] - ldrh r1, [r4, #2] - adds r1, r1, r2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 -_0809BBE6: - ldrb r2, [r4, #4] - bl GetEventObjectIdByXYZ - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0x10 - beq _0809BC06 - ldr r1, _0809BC10 - lsls r2, r3, #3 - adds r0, r2, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #8] - adds r5, r1, #0 - cmp r0, #0xff - bne _0809BC14 -_0809BC06: - movs r0, #0 - b _0809BC46 - .align 2, 0 -_0809BC0C: .4byte gUnknown_830FCB0 -_0809BC10: .4byte gUnknown_2036FF0 -_0809BC14: - movs r4, #0 - ldr r1, _0809BC4C -_0809BC18: - ldrb r0, [r1] - cmp r0, #1 - bne _0809BC24 - ldrb r0, [r1, #2] - cmp r0, r3 - beq _0809BC06 -_0809BC24: - adds r1, #4 - adds r4, #1 - cmp r4, #3 - ble _0809BC18 - ldr r0, _0809BC50 - strb r3, [r0] - ldr r1, _0809BC54 - adds r0, r2, r3 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r0, [r0, #8] - strh r0, [r1] - ldr r0, _0809BC58 - strh r6, [r0] - adds r0, r3, #0 - bl GetEventObjectScriptPointerByEventObjectId -_0809BC46: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0809BC4C: .4byte gUnknown_2031FA8 -_0809BC50: .4byte gUnknown_3005B50 -_0809BC54: .4byte gUnknown_2037292 -_0809BC58: .4byte gUnknown_2037294 - thumb_func_end GetInteractedLinkPlayerScript - - thumb_func_start GetInteractedEventObjectScript -GetInteractedEventObjectScript: @ 0x0809BC5C - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - ldrh r0, [r5] - ldrh r1, [r5, #2] - ldrb r2, [r5, #4] - bl GetEventObjectIdByXYZ - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x10 - beq _0809BC8C - ldr r1, _0809BCDC - lsls r2, r4, #3 - adds r0, r2, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #8] - adds r3, r1, #0 - cmp r0, #0xff - bne _0809BCE4 -_0809BC8C: - adds r0, r6, #0 - bl MetatileBehavior_IsCounter - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809BCD8 - ldr r1, _0809BCE0 - lsls r2, r7, #3 - adds r0, r2, r1 - ldr r3, [r0] - ldrh r0, [r5] - adds r0, r0, r3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, #4 - adds r2, r2, r1 - ldr r2, [r2] - ldrh r1, [r5, #2] - adds r1, r1, r2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldrb r2, [r5, #4] - bl GetEventObjectIdByXYZ - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x10 - beq _0809BCD8 - ldr r1, _0809BCDC - lsls r2, r4, #3 - adds r0, r2, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #8] - adds r3, r1, #0 - cmp r0, #0xff - bne _0809BCE4 -_0809BCD8: - movs r0, #0 - b _0809BD26 - .align 2, 0 -_0809BCDC: .4byte gUnknown_2036FF0 -_0809BCE0: .4byte gUnknown_830FCB0 -_0809BCE4: - ldr r0, _0809BD08 - strb r4, [r0] - ldr r1, _0809BD0C - adds r0, r2, r4 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r0, [r0, #8] - strh r0, [r1] - ldr r0, _0809BD10 - strh r7, [r0] - bl InTrainerHill - cmp r0, #1 - bne _0809BD14 - bl sub_081D5C48 - b _0809BD1A - .align 2, 0 -_0809BD08: .4byte gUnknown_3005B50 -_0809BD0C: .4byte gUnknown_2037292 -_0809BD10: .4byte gUnknown_2037294 -_0809BD14: - adds r0, r4, #0 - bl GetEventObjectScriptPointerByEventObjectId -_0809BD1A: - adds r1, r0, #0 - ldr r0, _0809BD2C - ldrb r0, [r0] - bl GetRamScript - adds r1, r0, #0 -_0809BD26: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0809BD2C: .4byte gUnknown_2037292 - thumb_func_end GetInteractedEventObjectScript - - thumb_func_start GetInteractedBackgroundEventScript -GetInteractedBackgroundEventScript: @ 0x0809BD30 - push {r4, r5, lr} - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - ldr r4, _0809BD60 - ldrh r1, [r0] - subs r1, #7 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldrh r2, [r0, #2] - subs r2, #7 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldrb r3, [r0, #4] - adds r0, r4, #0 - bl GetBackgroundEventAtPosition - cmp r0, #0 - beq _0809BDA4 - ldr r2, [r0, #8] - cmp r2, #0 - bne _0809BD68 - ldr r0, _0809BD64 - b _0809BE0A - .align 2, 0 -_0809BD60: .4byte gUnknown_2036FB8 -_0809BD64: .4byte gUnknown_8276D3D -_0809BD68: - ldrb r0, [r0, #5] - cmp r0, #8 - bhi _0809BE08 - lsls r0, r0, #2 - ldr r1, _0809BD78 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809BD78: .4byte _0809BD7C -_0809BD7C: @ jump table - .4byte _0809BE08 @ case 0 - .4byte _0809BDA0 @ case 1 - .4byte _0809BDA8 @ case 2 - .4byte _0809BDAE @ case 3 - .4byte _0809BDB4 @ case 4 - .4byte _0809BDBA @ case 5 - .4byte _0809BDBA @ case 6 - .4byte _0809BDBA @ case 7 - .4byte _0809BDE8 @ case 8 -_0809BDA0: - cmp r5, #2 - beq _0809BE08 -_0809BDA4: - movs r0, #0 - b _0809BE0A -_0809BDA8: - cmp r5, #1 - beq _0809BE08 - b _0809BDA4 -_0809BDAE: - cmp r5, #4 - beq _0809BE08 - b _0809BDA4 -_0809BDB4: - cmp r5, #3 - beq _0809BE08 - b _0809BDA4 -_0809BDBA: - ldr r1, _0809BDDC - lsrs r0, r2, #0x10 - movs r3, #0xfa - lsls r3, r3, #1 - adds r0, r0, r3 - strh r0, [r1] - ldr r0, _0809BDE0 - strh r2, [r0] - ldrh r0, [r1] - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0809BDA4 - ldr r0, _0809BDE4 - b _0809BE0A - .align 2, 0 -_0809BDDC: .4byte gUnknown_2037280 -_0809BDE0: .4byte gUnknown_2037282 -_0809BDE4: .4byte gUnknown_8242D49 -_0809BDE8: - cmp r5, #2 - bne _0809BDA4 - ldr r0, _0809BE00 - strh r2, [r0] - bl TrySetCurSecretBase - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809BDA4 - ldr r0, _0809BE04 - b _0809BE0A - .align 2, 0 -_0809BE00: .4byte gUnknown_2037280 -_0809BE04: .4byte gUnknown_8245AA0 -_0809BE08: - adds r0, r2, #0 -_0809BE0A: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end GetInteractedBackgroundEventScript - - thumb_func_start GetInteractedMetatileScript -GetInteractedMetatileScript: @ 0x0809BE10 - push {r4, r5, r6, lr} - adds r6, r0, #0 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r4, r2, #0x18 - adds r0, r5, #0 - adds r1, r4, #0 - bl MetatileBehavior_IsPlayerFacingTVScreen - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809BE34 - ldr r0, _0809BE30 - b _0809C0BC - .align 2, 0 -_0809BE30: .4byte gUnknown_824C47B -_0809BE34: - adds r0, r5, #0 - bl MetatileBehavior_IsPC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809BE4C - ldr r0, _0809BE48 - b _0809C0BC - .align 2, 0 -_0809BE48: .4byte gUnknown_8242E1E -_0809BE4C: - adds r0, r5, #0 - bl MetatileBehavior_IsClosedSootopolisDoor - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809BE64 - ldr r0, _0809BE60 - b _0809C0BC - .align 2, 0 -_0809BE60: .4byte gUnknown_81E27F7 -_0809BE64: - adds r0, r5, #0 - bl MetatileBehavior_IsUnknownClosedDoor - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809BE7C - ldr r0, _0809BE78 - b _0809C0BC - .align 2, 0 -_0809BE78: .4byte gUnknown_821BD3E -_0809BE7C: - adds r0, r5, #0 - bl MetatileBehavior_IsCableBoxResults1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809BE8C - b _0809BFBC -_0809BE8C: - adds r0, r5, #0 - bl MetatileBehavior_IsPokeblockFeeder - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809BEA4 - ldr r0, _0809BEA0 - b _0809C0BC - .align 2, 0 -_0809BEA0: .4byte gUnknown_826240A -_0809BEA4: - adds r0, r5, #0 - bl MetatileBehavior_IsTrickHousePuzzleDoor - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809BEBC - ldr r0, _0809BEB8 - b _0809C0BC - .align 2, 0 -_0809BEB8: .4byte gUnknown_823CFFB -_0809BEBC: - adds r0, r5, #0 - bl MetatileBehavior_IsRegionMap - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809BED4 - ldr r0, _0809BED0 - b _0809C0BC - .align 2, 0 -_0809BED0: .4byte gUnknown_824311B -_0809BED4: - adds r0, r5, #0 - bl MetatileBehavior_IsRunningShoesManual - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809BEEC - ldr r0, _0809BEE8 - b _0809C0BC - .align 2, 0 -_0809BEE8: .4byte gUnknown_82585CF -_0809BEEC: - adds r0, r5, #0 - bl MetatileBehavior_IsPictureBookShelf - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809BF04 - ldr r0, _0809BF00 - b _0809C0BC - .align 2, 0 -_0809BF00: .4byte gUnknown_8243651 -_0809BF04: - adds r0, r5, #0 - bl MetatileBehavior_IsBookShelf - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809BF1C - ldr r0, _0809BF18 - b _0809C0BC - .align 2, 0 -_0809BF18: .4byte gUnknown_824365A -_0809BF1C: - adds r0, r5, #0 - bl MetatileBehavior_IsPokeCenterBookShelf - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809BF34 - ldr r0, _0809BF30 - b _0809C0BC - .align 2, 0 -_0809BF30: .4byte gUnknown_8243663 -_0809BF34: - adds r0, r5, #0 - bl MetatileBehavior_IsVase - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809BF4C - ldr r0, _0809BF48 - b _0809C0BC - .align 2, 0 -_0809BF48: .4byte gUnknown_824366C -_0809BF4C: - adds r0, r5, #0 - bl MetatileBehavior_IsTrashCan - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809BF64 - ldr r0, _0809BF60 - b _0809C0BC - .align 2, 0 -_0809BF60: .4byte gUnknown_8243675 -_0809BF64: - adds r0, r5, #0 - bl MetatileBehavior_IsShopShelf - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809BF7C - ldr r0, _0809BF78 - b _0809C0BC - .align 2, 0 -_0809BF78: .4byte gUnknown_824367E -_0809BF7C: - adds r0, r5, #0 - bl MetatileBehavior_IsBlueprint - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809BF94 - ldr r0, _0809BF90 - b _0809C0BC - .align 2, 0 -_0809BF90: .4byte gUnknown_8243687 -_0809BF94: - adds r0, r5, #0 - adds r1, r4, #0 - bl MetatileBehavior_IsPlayerFacingWirelessBoxResults - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809BFAC - ldr r0, _0809BFA8 - b _0809C0BC - .align 2, 0 -_0809BFA8: .4byte gUnknown_8247869 -_0809BFAC: - adds r0, r5, #0 - adds r1, r4, #0 - bl MetatileBehavior_IsCableBoxResults2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809BFC4 -_0809BFBC: - ldr r0, _0809BFC0 - b _0809C0BC - .align 2, 0 -_0809BFC0: .4byte gUnknown_8247044 -_0809BFC4: - adds r0, r5, #0 - bl MetatileBehavior_IsQuestionnaire - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809BFDC - ldr r0, _0809BFD8 - b _0809C0BC - .align 2, 0 -_0809BFD8: .4byte gUnknown_8244245 -_0809BFDC: - adds r0, r5, #0 - bl MetatileBehavior_IsTrainerHillTimer - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809BFF4 - ldr r0, _0809BFF0 - b _0809C0BC - .align 2, 0 -_0809BFF0: .4byte gUnknown_8276CAF -_0809BFF4: - movs r4, #4 - ldrsb r4, [r6, r4] - movs r1, #0 - ldrsh r0, [r6, r1] - movs r2, #2 - ldrsh r1, [r6, r2] - bl MapGridGetZCoordAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - bne _0809C0A8 - adds r0, r5, #0 - bl MetatileBehavior_IsSecretBasePC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809C024 - ldr r0, _0809C020 - b _0809C0BC - .align 2, 0 -_0809C020: .4byte gUnknown_821D3AA -_0809C024: - adds r0, r5, #0 - bl MetatileBehavior_IsRecordMixingSecretBasePC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809C03C - ldr r0, _0809C038 - b _0809C0BC - .align 2, 0 -_0809C038: .4byte gUnknown_821D478 -_0809C03C: - adds r0, r5, #0 - bl MetatileBehavior_IsSecretBaseSandOrnament - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809C054 - ldr r0, _0809C050 - b _0809C0BC - .align 2, 0 -_0809C050: .4byte gUnknown_821D573 -_0809C054: - adds r0, r5, #0 - bl MetatileBehavior_IsSecretBaseShieldOrToyTV - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809C06C - ldr r0, _0809C068 - b _0809C0BC - .align 2, 0 -_0809C068: .4byte gUnknown_821D57B -_0809C06C: - adds r0, r5, #0 - bl MetatileBehavior_IsMB_C6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809C080 - bl sub_080EC10C - b _0809C0BA -_0809C080: - adds r0, r5, #0 - bl MetatileBehavior_HoldsLargeDecoration - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809C094 - bl SetSecretBaseSecretsTvFlags_LargeDecorationSpot - b _0809C0BA -_0809C094: - adds r0, r5, #0 - bl MetatileBehavior_HoldsSmallDecoration - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809C0BA - bl SetSecretBaseSecretsTvFlags_SmallDecorationSpot - b _0809C0BA -_0809C0A8: - adds r0, r5, #0 - bl MetatileBehavior_IsSecretBasePoster - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809C0BA - bl SetSecretBaseSecretsTvFlags_Poster -_0809C0BA: - movs r0, #0 -_0809C0BC: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetInteractedMetatileScript - - thumb_func_start GetInteractedWaterScript -GetInteractedWaterScript: @ 0x0809C0C4 - push {r4, lr} - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - ldr r0, _0809C0F4 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809C0FC - bl PartyHasMonWithSurf - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809C0FC - bl IsPlayerFacingSurfableFishableWater - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809C0FC - ldr r0, _0809C0F8 - b _0809C13A - .align 2, 0 -_0809C0F4: .4byte 0x0000086B -_0809C0F8: .4byte gUnknown_8242F2C -_0809C0FC: - adds r0, r4, #0 - bl MetatileBehavior_IsWaterfall - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809C138 - ldr r0, _0809C128 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809C130 - bl IsPlayerSurfingNorth - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809C130 - ldr r0, _0809C12C - b _0809C13A - .align 2, 0 -_0809C128: .4byte 0x0000086E -_0809C12C: .4byte gUnknown_825685D -_0809C130: - ldr r0, _0809C134 - b _0809C13A - .align 2, 0 -_0809C134: .4byte gUnknown_8256897 -_0809C138: - movs r0, #0 -_0809C13A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetInteractedWaterScript - - thumb_func_start sub_0809C140 -sub_0809C140: @ 0x0809C140 - push {lr} - ldr r0, _0809C164 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809C16C - bl TrySetDiveWarp - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _0809C16C - ldr r0, _0809C168 - bl ScriptContext1_SetupScript - movs r0, #1 - b _0809C16E - .align 2, 0 -_0809C164: .4byte 0x0000086D -_0809C168: .4byte gUnknown_82568EA -_0809C16C: - movs r0, #0 -_0809C16E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0809C140 - - thumb_func_start TrySetupDiveEmergeScript -TrySetupDiveEmergeScript: @ 0x0809C174 - push {lr} - ldr r0, _0809C1A0 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809C1AC - ldr r0, _0809C1A4 - ldrb r0, [r0, #0x17] - cmp r0, #5 - bne _0809C1AC - bl TrySetDiveWarp - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809C1AC - ldr r0, _0809C1A8 - bl ScriptContext1_SetupScript - movs r0, #1 - b _0809C1AE - .align 2, 0 -_0809C1A0: .4byte 0x0000086D -_0809C1A4: .4byte gUnknown_2036FB8 -_0809C1A8: .4byte gUnknown_8256935 -_0809C1AC: - movs r0, #0 -_0809C1AE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end TrySetupDiveEmergeScript - - thumb_func_start TryStartStepBasedScript -TryStartStepBasedScript: @ 0x0809C1B4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - adds r6, r4, #0 - bl TryStartCoordEventScript - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0809C206 - adds r0, r5, #0 - adds r1, r4, #0 - bl TryStartWarpEventScript - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0809C206 - adds r0, r4, #0 - bl TryStartMiscWalkingScripts - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0809C206 - adds r0, r6, #0 - bl TryStartStepCountScript - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0809C206 - bl UpdateRepelCounter - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0809C206 - movs r0, #0 - b _0809C208 -_0809C206: - movs r0, #1 -_0809C208: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end TryStartStepBasedScript - - thumb_func_start TryStartCoordEventScript -TryStartCoordEventScript: @ 0x0809C210 - push {r4, lr} - ldr r4, _0809C238 - ldrh r1, [r0] - subs r1, #7 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldrh r2, [r0, #2] - subs r2, #7 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldrb r3, [r0, #4] - adds r0, r4, #0 - bl GetCoordEventScriptAtPosition - cmp r0, #0 - beq _0809C23C - bl ScriptContext1_SetupScript - movs r0, #1 - b _0809C23E - .align 2, 0 -_0809C238: .4byte gUnknown_2036FB8 -_0809C23C: - movs r0, #0 -_0809C23E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end TryStartCoordEventScript - - thumb_func_start TryStartMiscWalkingScripts -TryStartMiscWalkingScripts: @ 0x0809C244 - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl MetatileBehavior_IsCrackedFloorHole - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809C260 - ldr r0, _0809C25C - b _0809C26E - .align 2, 0 -_0809C25C: .4byte gUnknown_826433F -_0809C260: - adds r0, r4, #0 - bl MetatileBehavior_IsBattlePyramidWarp - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809C27C - ldr r0, _0809C278 -_0809C26E: - bl ScriptContext1_SetupScript - movs r0, #1 - b _0809C2C2 - .align 2, 0 -_0809C278: .4byte gUnknown_822D6B1 -_0809C27C: - adds r0, r4, #0 - bl MetatileBehavior_IsSecretBaseGlitterMat - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809C290 - bl DoSecretBaseGlitterMatSparkle - b _0809C2C0 -_0809C290: - adds r0, r4, #0 - bl MetatileBehavior_IsSecretBaseSoundMat - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809C2C0 - mov r4, sp - adds r4, #2 - 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 MapGridGetMetatileIdAt - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - bl PlaySecretBaseMusicNoteMatSound -_0809C2C0: - movs r0, #0 -_0809C2C2: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end TryStartMiscWalkingScripts - - thumb_func_start TryStartStepCountScript -TryStartStepCountScript: @ 0x0809C2CC - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - bl InUnionRoom - cmp r0, #1 - bne _0809C2DC - b _0809C3FC -_0809C2DC: - bl IncrementRematchStepCounter - bl UpdateHappinessStepCounter - bl UpdateFarawayIslandStepCounter - ldr r0, _0809C318 - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _0809C3D0 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsForcedMovementTile - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809C3D0 - bl UpdatePoisonStepCounter - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809C320 - ldr r0, _0809C31C - bl ScriptContext1_SetupScript - b _0809C400 - .align 2, 0 -_0809C318: .4byte gUnknown_2037230 -_0809C31C: .4byte gUnknown_82440E6 -_0809C320: - bl ShouldEggHatch - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809C33C - movs r0, #0xd - bl IncrementGameStat - ldr r0, _0809C338 - bl ScriptContext1_SetupScript - b _0809C400 - .align 2, 0 -_0809C338: .4byte gUnknown_8257A89 -_0809C33C: - bl UnusualWeatherHasExpired - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809C354 - ldr r0, _0809C350 - bl ScriptContext1_SetupScript - b _0809C400 - .align 2, 0 -_0809C350: .4byte gUnknown_8244749 -_0809C354: - bl ShouldDoBrailleRegicePuzzle - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809C36C - ldr r0, _0809C368 - bl ScriptContext1_SetupScript - b _0809C400 - .align 2, 0 -_0809C368: .4byte gUnknown_821B7F4 -_0809C36C: - bl sub_08138148 - cmp r0, #1 - bne _0809C380 - ldr r0, _0809C37C - bl ScriptContext1_SetupScript - b _0809C400 - .align 2, 0 -_0809C37C: .4byte gUnknown_81DDDF3 -_0809C380: - bl ShouldDoWinonaCall - cmp r0, #1 - bne _0809C394 - ldr r0, _0809C390 - bl ScriptContext1_SetupScript - b _0809C400 - .align 2, 0 -_0809C390: .4byte gUnknown_81ED2AD -_0809C394: - bl ShouldDoScottCall - cmp r0, #1 - bne _0809C3A8 - ldr r0, _0809C3A4 - bl ScriptContext1_SetupScript - b _0809C400 - .align 2, 0 -_0809C3A4: .4byte gUnknown_81F1A71 -_0809C3A8: - bl ShouldDoRoxanneCall - cmp r0, #1 - bne _0809C3BC - ldr r0, _0809C3B8 - bl ScriptContext1_SetupScript - b _0809C400 - .align 2, 0 -_0809C3B8: .4byte gUnknown_8202410 -_0809C3BC: - bl c2_mystery_gift - cmp r0, #1 - bne _0809C3D0 - ldr r0, _0809C3CC - bl ScriptContext1_SetupScript - b _0809C400 - .align 2, 0 -_0809C3CC: .4byte gUnknown_820DA9F -_0809C3D0: - bl SafariZoneTakeStep - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0809C400 - movs r0, #1 - bl CountSSTidalStep - cmp r0, #1 - bne _0809C3F4 - ldr r0, _0809C3F0 - bl ScriptContext1_SetupScript - b _0809C400 - .align 2, 0 -_0809C3F0: .4byte gUnknown_821DEC7 -_0809C3F4: - bl TryStartMatchCall - cmp r0, #0 - bne _0809C400 -_0809C3FC: - movs r0, #0 - b _0809C402 -_0809C400: - movs r0, #1 -_0809C402: - pop {r4} - pop {r1} - bx r1 - thumb_func_end TryStartStepCountScript - - thumb_func_start Unref_ClearHappinessStepCounter -Unref_ClearHappinessStepCounter: @ 0x0809C408 - push {lr} - ldr r0, _0809C418 - movs r1, #0 - bl VarSet - pop {r0} - bx r0 - .align 2, 0 -_0809C418: .4byte 0x0000402A - thumb_func_end Unref_ClearHappinessStepCounter - - thumb_func_start UpdateHappinessStepCounter -UpdateHappinessStepCounter: @ 0x0809C41C - push {r4, r5, lr} - ldr r0, _0809C450 - bl GetVarPointer - ldrh r1, [r0] - adds r1, #1 - strh r1, [r0] - ldrh r1, [r0] - movs r2, #0x7f - ands r1, r2 - strh r1, [r0] - cmp r1, #0 - bne _0809C44A - ldr r5, _0809C454 - movs r4, #5 -_0809C43A: - adds r0, r5, #0 - movs r1, #5 - bl AdjustFriendship - adds r5, #0x64 - subs r4, #1 - cmp r4, #0 - bge _0809C43A -_0809C44A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0809C450: .4byte 0x0000402A -_0809C454: .4byte gUnknown_2024190 - thumb_func_end UpdateHappinessStepCounter - - thumb_func_start ClearPoisonStepCounter -ClearPoisonStepCounter: @ 0x0809C458 - push {lr} - ldr r0, _0809C468 - movs r1, #0 - bl VarSet - pop {r0} - bx r0 - .align 2, 0 -_0809C468: .4byte 0x0000402B - thumb_func_end ClearPoisonStepCounter - - thumb_func_start UpdatePoisonStepCounter -UpdatePoisonStepCounter: @ 0x0809C46C - push {lr} - ldr r0, _0809C4A4 - ldrb r0, [r0, #0x17] - cmp r0, #9 - beq _0809C4AC - ldr r0, _0809C4A8 - bl GetVarPointer - ldrh r1, [r0] - adds r1, #1 - strh r1, [r0] - ldrh r1, [r0] - movs r2, #3 - ands r1, r2 - strh r1, [r0] - cmp r1, #0 - bne _0809C4AC - bl DoPoisonFieldEffect - cmp r0, #1 - beq _0809C4AC - cmp r0, #1 - ble _0809C4AC - cmp r0, #2 - bne _0809C4AC - movs r0, #1 - b _0809C4AE - .align 2, 0 -_0809C4A4: .4byte gUnknown_2036FB8 -_0809C4A8: .4byte 0x0000402B -_0809C4AC: - movs r0, #0 -_0809C4AE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end UpdatePoisonStepCounter - - thumb_func_start sub_0809C4B4 -sub_0809C4B4: @ 0x0809C4B4 - ldr r1, _0809C4BC - movs r0, #0 - strb r0, [r1] - bx lr - .align 2, 0 -_0809C4BC: .4byte gUnknown_2037274 - thumb_func_end sub_0809C4B4 - - thumb_func_start CheckStandardWildEncounter -CheckStandardWildEncounter: @ 0x0809C4C0 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r7, r4, #0 - ldr r6, _0809C4DC - ldrb r0, [r6] - cmp r0, #3 - bhi _0809C4E4 - adds r0, #1 - strb r0, [r6] - ldr r0, _0809C4E0 - strh r4, [r0] - movs r0, #0 - b _0809C508 - .align 2, 0 -_0809C4DC: .4byte gUnknown_2037274 -_0809C4E0: .4byte gUnknown_2037276 -_0809C4E4: - ldr r5, _0809C4FC - ldrh r1, [r5] - adds r0, r4, #0 - bl StandardWildEncounter - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0809C500 - strh r4, [r5] - movs r0, #0 - b _0809C508 - .align 2, 0 -_0809C4FC: .4byte gUnknown_2037276 -_0809C500: - movs r0, #0 - strb r0, [r6] - strh r7, [r5] - movs r0, #1 -_0809C508: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CheckStandardWildEncounter - - thumb_func_start TryArrowWarp -TryArrowWarp: @ 0x0809C510 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - adds r4, r1, #0 - adds r5, r2, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _0809C564 - mov r8, r0 - adds r1, r7, #0 - bl GetWarpEventAtMapPosition - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0809C70C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809C568 - lsls r0, r6, #0x18 - asrs r4, r0, #0x18 - movs r0, #1 - rsbs r0, r0, #0 - cmp r4, r0 - beq _0809C568 - bl StoreInitialPlayerAvatarState - mov r0, r8 - adds r1, r4, #0 - adds r2, r7, #0 - bl SetupWarp - bl DoWarp - movs r0, #1 - b _0809C56A - .align 2, 0 -_0809C564: .4byte gUnknown_2036FB8 -_0809C568: - movs r0, #0 -_0809C56A: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end TryArrowWarp - - thumb_func_start TryStartWarpEventScript -TryStartWarpEventScript: @ 0x0809C574 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - ldr r7, _0809C5CC - adds r0, r7, #0 - adds r1, r6, #0 - bl GetWarpEventAtMapPosition - lsls r0, r0, #0x18 - asrs r4, r0, #0x18 - movs r0, #1 - rsbs r0, r0, #0 - cmp r4, r0 - beq _0809C662 - adds r0, r5, #0 - bl IsWarpMetatileBehavior - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809C662 - bl StoreInitialPlayerAvatarState - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r6, #0 - bl SetupWarp - lsls r0, r5, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl MetatileBehavior_IsEscalator - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809C5D0 - adds r0, r4, #0 - bl sub_080AF108 - movs r0, #1 - b _0809C664 - .align 2, 0 -_0809C5CC: .4byte gUnknown_2036FB8 -_0809C5D0: - adds r0, r4, #0 - bl MetatileBehavior_IsLavaridgeB1FWarp - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809C5E6 - bl sub_080AF124 - movs r0, #1 - b _0809C664 -_0809C5E6: - adds r0, r4, #0 - bl MetatileBehavior_IsLavaridge1FWarp - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809C5FC - bl sub_080AF134 - movs r0, #1 - b _0809C664 -_0809C5FC: - adds r0, r4, #0 - bl MetatileBehavior_IsAquaHideoutWarp - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809C612 - bl sub_080AF144 - movs r0, #1 - b _0809C664 -_0809C612: - adds r0, r4, #0 - bl MetatileBehavior_IsWarpOrBridge - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809C628 - bl sub_080AFB64 - movs r0, #1 - b _0809C664 -_0809C628: - adds r0, r4, #0 - bl MetatileBehavior_IsMtPyreHole - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809C644 - ldr r0, _0809C640 - bl ScriptContext1_SetupScript - movs r0, #1 - b _0809C664 - .align 2, 0 -_0809C640: .4byte gUnknown_8264358 -_0809C644: - adds r0, r4, #0 - bl MetatileBehavior_IsMossdeepGymWarp - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809C65A - bl sub_080AF178 - movs r0, #1 - b _0809C664 -_0809C65A: - bl DoWarp - movs r0, #1 - b _0809C664 -_0809C662: - movs r0, #0 -_0809C664: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end TryStartWarpEventScript - - thumb_func_start IsWarpMetatileBehavior -IsWarpMetatileBehavior: @ 0x0809C66C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl MetatileBehavior_IsWarpDoor - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0809C702 - adds r0, r4, #0 - bl MetatileBehavior_IsLadder - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0809C702 - adds r0, r4, #0 - bl MetatileBehavior_IsEscalator - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0809C702 - adds r0, r4, #0 - bl MetatileBehavior_IsNonAnimDoor - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0809C702 - adds r0, r4, #0 - bl MetatileBehavior_IsLavaridgeB1FWarp - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0809C702 - adds r0, r4, #0 - bl MetatileBehavior_IsLavaridge1FWarp - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0809C702 - adds r0, r4, #0 - bl MetatileBehavior_IsAquaHideoutWarp - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0809C702 - adds r0, r4, #0 - bl MetatileBehavior_IsMtPyreHole - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0809C702 - adds r0, r4, #0 - bl MetatileBehavior_IsMossdeepGymWarp - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0809C702 - adds r0, r4, #0 - bl MetatileBehavior_IsWarpOrBridge - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0809C702 - movs r0, #0 - b _0809C704 -_0809C702: - movs r0, #1 -_0809C704: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsWarpMetatileBehavior - - thumb_func_start sub_0809C70C -sub_0809C70C: @ 0x0809C70C - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r2, r1, #0 - cmp r1, #2 - beq _0809C730 - cmp r1, #2 - bgt _0809C726 - cmp r1, #1 - beq _0809C73A - b _0809C75C -_0809C726: - cmp r2, #3 - beq _0809C744 - cmp r2, #4 - beq _0809C74E - b _0809C75C -_0809C730: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsNorthArrowWarp - b _0809C756 -_0809C73A: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsSouthArrowWarp - b _0809C756 -_0809C744: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsWestArrowWarp - b _0809C756 -_0809C74E: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsEastArrowWarp -_0809C756: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0809C75E -_0809C75C: - movs r0, #0 -_0809C75E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0809C70C - - thumb_func_start GetWarpEventAtMapPosition -GetWarpEventAtMapPosition: @ 0x0809C764 - push {lr} - adds r3, r1, #0 - ldrh r1, [r3] - subs r1, #7 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldrh r2, [r3, #2] - subs r2, #7 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldrb r3, [r3, #4] - bl GetWarpEventAtPosition - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetWarpEventAtMapPosition - - thumb_func_start SetupWarp -SetupWarp: @ 0x0809C788 - push {r4, r5, r6, r7, lr} - adds r7, r2, #0 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - bl GetCurrentTrainerHillMapId - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r6, r5, #0 - cmp r5, #0 - beq _0809C7D8 - bl sub_081D5E30 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r5, r0 - bne _0809C7C8 - lsls r0, r4, #0x18 - adds r4, r0, #0 - cmp r4, #0 - bne _0809C7C0 - ldr r0, _0809C7BC - ldr r0, [r0, #4] - ldr r5, [r0, #8] - b _0809C7E6 - .align 2, 0 -_0809C7BC: .4byte gUnknown_2036FB8 -_0809C7C0: - bl sub_081D5ABC - adds r5, r0, #0 - b _0809C7E6 -_0809C7C8: - cmp r6, #5 - bne _0809C7D8 - lsls r4, r4, #0x18 - lsrs r0, r4, #0x18 - bl sub_081D5AD0 - adds r5, r0, #0 - b _0809C7E6 -_0809C7D8: - ldr r0, _0809C7F4 - ldr r0, [r0, #4] - lsls r2, r4, #0x18 - asrs r1, r2, #0x15 - ldr r0, [r0, #8] - adds r5, r0, r1 - adds r4, r2, #0 -_0809C7E6: - ldrb r0, [r5, #6] - cmp r0, #0x7f - bne _0809C7F8 - ldrb r0, [r5, #5] - bl SetWarpDestinationToDynamicWarp - b _0809C846 - .align 2, 0 -_0809C7F4: .4byte gUnknown_2036FB8 -_0809C7F8: - movs r0, #7 - ldrsb r0, [r5, r0] - movs r1, #6 - ldrsb r1, [r5, r1] - movs r2, #5 - ldrsb r2, [r5, r2] - bl SetWarpDestinationToMapWarp - movs r1, #0 - ldrsh r0, [r7, r1] - movs r2, #2 - ldrsh r1, [r7, r2] - bl UpdateEscapeWarp - ldrb r0, [r5, #7] - ldrb r1, [r5, #6] - bl Overworld_GetMapHeaderByGroupAndId - ldr r1, [r0, #4] - ldrb r0, [r5, #5] - ldr r1, [r1, #8] - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r0, [r0, #6] - cmp r0, #0x7f - bne _0809C846 - asrs r3, r4, #0x18 - lsls r0, r3, #3 - adds r0, r0, r1 - ldrb r0, [r0, #5] - ldr r1, _0809C84C - ldr r2, [r1] - movs r1, #4 - ldrsb r1, [r2, r1] - ldrb r2, [r2, #5] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - bl SetDynamicWarp -_0809C846: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0809C84C: .4byte gUnknown_3005AEC - thumb_func_end SetupWarp - - thumb_func_start TryDoorWarp -TryDoorWarp: @ 0x0809C850 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - lsls r1, r1, #0x10 - lsrs r0, r1, #0x10 - adds r7, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - cmp r2, #2 - bne _0809C8D4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl MetatileBehavior_IsOpenSecretBaseDoor - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809C888 - ldr r0, _0809C884 - ldr r1, [r0, #4] - adds r0, r5, #0 - bl FldEffPoison_Start - movs r0, #1 - b _0809C8D6 - .align 2, 0 -_0809C884: .4byte gUnknown_2036FB8 -_0809C888: - adds r0, r4, #0 - bl MetatileBehavior_IsWarpDoor - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809C8D4 - ldr r6, _0809C8D0 - adds r0, r6, #0 - adds r1, r5, #0 - bl GetWarpEventAtMapPosition - lsls r0, r0, #0x18 - asrs r4, r0, #0x18 - movs r0, #1 - rsbs r0, r0, #0 - cmp r4, r0 - beq _0809C8D4 - adds r0, r7, #0 - bl IsWarpMetatileBehavior - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809C8D4 - bl StoreInitialPlayerAvatarState - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r5, #0 - bl SetupWarp - bl DoDoorWarp - movs r0, #1 - b _0809C8D6 - .align 2, 0 -_0809C8D0: .4byte gUnknown_2036FB8 -_0809C8D4: - movs r0, #0 -_0809C8D6: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end TryDoorWarp - - thumb_func_start GetWarpEventAtPosition -GetWarpEventAtPosition: @ 0x0809C8DC - push {r4, r5, r6, lr} - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r5, r2, #0x10 - lsls r3, r3, #0x18 - lsrs r4, r3, #0x18 - ldr r0, [r0, #4] - ldr r1, [r0, #8] - ldrb r3, [r0, #1] - movs r2, #0 - cmp r2, r3 - bge _0809C91A -_0809C8F6: - ldrh r0, [r1] - cmp r0, r6 - bne _0809C912 - ldrh r0, [r1, #2] - cmp r0, r5 - bne _0809C912 - ldrb r0, [r1, #4] - cmp r0, r4 - beq _0809C90C - cmp r0, #0 - bne _0809C912 -_0809C90C: - lsls r0, r2, #0x18 - asrs r0, r0, #0x18 - b _0809C91E -_0809C912: - adds r2, #1 - adds r1, #8 - cmp r2, r3 - blt _0809C8F6 -_0809C91A: - movs r0, #1 - rsbs r0, r0, #0 -_0809C91E: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end GetWarpEventAtPosition - - thumb_func_start TryRunCoordEventScript -TryRunCoordEventScript: @ 0x0809C924 - push {r4, lr} - adds r4, r0, #0 - cmp r4, #0 - beq _0809C95A - ldr r1, [r4, #0xc] - cmp r1, #0 - bne _0809C93A - ldrb r0, [r4, #6] - bl DoCoordEventWeather - b _0809C95A -_0809C93A: - ldrh r0, [r4, #6] - cmp r0, #0 - beq _0809C954 - ldrh r0, [r4, #6] - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r4, #8] - cmp r0, r1 - bne _0809C95A - ldr r0, [r4, #0xc] - b _0809C95C -_0809C954: - adds r0, r1, #0 - bl ScriptContext2_RunNewScript -_0809C95A: - movs r0, #0 -_0809C95C: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end TryRunCoordEventScript - - thumb_func_start GetCoordEventScriptAtPosition -GetCoordEventScriptAtPosition: @ 0x0809C964 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sl, r1 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - mov sb, r2 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r8, r3 - ldr r0, [r0, #4] - ldr r1, [r0, #0xc] - ldrb r7, [r0, #2] - movs r6, #0 - cmp r6, r7 - bge _0809C9BA - adds r5, r1, #0 - adds r4, r5, #0 -_0809C990: - ldrh r0, [r4] - cmp r0, sl - bne _0809C9B0 - ldrh r0, [r4, #2] - cmp r0, sb - bne _0809C9B0 - ldrb r0, [r4, #4] - cmp r0, r8 - beq _0809C9A6 - cmp r0, #0 - bne _0809C9B0 -_0809C9A6: - adds r0, r5, #0 - bl TryRunCoordEventScript - cmp r0, #0 - bne _0809C9BC -_0809C9B0: - adds r4, #0x10 - adds r5, #0x10 - adds r6, #1 - cmp r6, r7 - blt _0809C990 -_0809C9BA: - movs r0, #0 -_0809C9BC: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetCoordEventScriptAtPosition - - thumb_func_start GetCoordEventScriptAtMapPosition -GetCoordEventScriptAtMapPosition: @ 0x0809C9CC - push {r4, lr} - ldr r4, _0809C9F0 - ldrh r1, [r0] - subs r1, #7 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldrh r2, [r0, #2] - subs r2, #7 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldrb r3, [r0, #4] - adds r0, r4, #0 - bl GetCoordEventScriptAtPosition - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809C9F0: .4byte gUnknown_2036FB8 - thumb_func_end GetCoordEventScriptAtMapPosition - - thumb_func_start GetBackgroundEventAtPosition -GetBackgroundEventAtPosition: @ 0x0809C9F4 - push {r4, r5, r6, r7, lr} - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r6, r2, #0x10 - lsls r3, r3, #0x18 - lsrs r5, r3, #0x18 - ldr r0, [r0, #4] - ldr r4, [r0, #0x10] - ldrb r3, [r0, #3] - movs r2, #0 - cmp r2, r3 - bhs _0809CA3A -_0809CA0E: - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r1, r0, r4 - ldrh r0, [r1] - cmp r0, r7 - bne _0809CA30 - ldrh r0, [r1, #2] - cmp r0, r6 - bne _0809CA30 - ldrb r0, [r1, #4] - cmp r0, r5 - beq _0809CA2C - cmp r0, #0 - bne _0809CA30 -_0809CA2C: - adds r0, r1, #0 - b _0809CA3C -_0809CA30: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, r3 - blo _0809CA0E -_0809CA3A: - movs r0, #0 -_0809CA3C: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetBackgroundEventAtPosition - - thumb_func_start dive_warp -dive_warp: @ 0x0809CA44 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - ldr r0, _0809CA78 - ldrb r0, [r0, #0x17] - cmp r0, #5 - bne _0809CA7C - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsUnableToEmerge - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809CA7C - ldrh r0, [r4] - subs r0, #7 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrh r1, [r4, #2] - subs r1, #7 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl SetDiveWarpEmerge - b _0809CAA0 - .align 2, 0 -_0809CA78: .4byte gUnknown_2036FB8 -_0809CA7C: - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsDiveable - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809CAB8 - ldrh r0, [r4] - subs r0, #7 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrh r1, [r4, #2] - subs r1, #7 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl SetDiveWarpDive -_0809CAA0: - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809CAB8 - bl StoreInitialPlayerAvatarState - bl DoDiveWarp - movs r0, #0xe9 - bl sub_080A306C - movs r0, #1 - b _0809CABA -_0809CAB8: - movs r0, #0 -_0809CABA: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end dive_warp - - thumb_func_start TrySetDiveWarp -TrySetDiveWarp: @ 0x0809CAC0 - push {r4, r5, lr} - sub sp, #4 - mov r4, sp - adds r4, #2 - 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, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _0809CB18 - ldrb r0, [r0, #0x17] - cmp r0, #5 - bne _0809CB1C - adds r0, r5, #0 - bl MetatileBehavior_IsUnableToEmerge - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809CB1C - mov r0, sp - ldrh r0, [r0] - subs r0, #7 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrh r1, [r4] - subs r1, #7 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl SetDiveWarpEmerge - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809CB4C - movs r0, #1 - b _0809CB4E - .align 2, 0 -_0809CB18: .4byte gUnknown_2036FB8 -_0809CB1C: - adds r0, r5, #0 - bl MetatileBehavior_IsDiveable - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809CB4C - mov r0, sp - ldrh r0, [r0] - subs r0, #7 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrh r1, [r4] - subs r1, #7 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl SetDiveWarpDive - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809CB4C - movs r0, #2 - b _0809CB4E -_0809CB4C: - movs r0, #0 -_0809CB4E: - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end TrySetDiveWarp - - thumb_func_start GetEventObjectScriptPointerPlayerFacing -GetEventObjectScriptPointerPlayerFacing: @ 0x0809CB58 - push {r4, r5, lr} - sub sp, #8 - bl GetPlayerMovementDirection - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r5, sp - mov r0, sp - bl GetInFrontOfPlayerPosition - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #2 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r0, sp - adds r2, r4, #0 - bl GetInteractedEventObjectScript - add sp, #8 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetEventObjectScriptPointerPlayerFacing - - thumb_func_start SetCableClubWarp -SetCableClubWarp: @ 0x0809CB94 - push {r4, lr} - sub sp, #8 - bl GetPlayerMovementDirection - mov r4, sp - mov r0, sp - bl GetPlayerPosition - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #2 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - ldr r4, _0809CBD4 - adds r0, r4, #0 - mov r1, sp - bl GetWarpEventAtMapPosition - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r4, #0 - mov r2, sp - bl SetupWarp - movs r0, #0 - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809CBD4: .4byte gUnknown_2036FB8 - thumb_func_end SetCableClubWarp - - thumb_func_start InitEventData -InitEventData: @ 0x0809CBD8 - push {r4, lr} - ldr r4, _0809CC0C - ldr r0, [r4] - ldr r1, _0809CC10 - adds r0, r0, r1 - movs r2, #0x96 - lsls r2, r2, #1 - movs r1, #0 - bl memset - ldr r0, [r4] - ldr r1, _0809CC14 - adds r0, r0, r1 - movs r2, #0x80 - lsls r2, r2, #2 - movs r1, #0 - bl memset - ldr r0, _0809CC18 - movs r1, #0 - movs r2, #0x10 - bl memset - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809CC0C: .4byte gUnknown_3005AEC -_0809CC10: .4byte 0x00001270 -_0809CC14: .4byte 0x0000139C -_0809CC18: .4byte gUnknown_203729C - thumb_func_end InitEventData - - thumb_func_start ClearTempFieldEventData -ClearTempFieldEventData: @ 0x0809CC1C - push {lr} - ldr r0, _0809CC5C - ldr r0, [r0] - ldr r1, _0809CC60 - adds r2, r0, r1 - movs r1, #0 - str r1, [r2] - ldr r1, _0809CC64 - adds r0, r0, r1 - movs r1, #0 - movs r2, #0x20 - bl memset - ldr r0, _0809CC68 - bl FlagClear - ldr r0, _0809CC6C - bl FlagClear - ldr r0, _0809CC70 - bl FlagClear - ldr r0, _0809CC74 - bl FlagClear - movs r0, #0x88 - lsls r0, r0, #4 - bl FlagClear - pop {r0} - bx r0 - .align 2, 0 -_0809CC5C: .4byte gUnknown_3005AEC -_0809CC60: .4byte 0x00001270 -_0809CC64: .4byte 0x0000139C -_0809CC68: .4byte 0x000008AD -_0809CC6C: .4byte 0x000008AE -_0809CC70: .4byte 0x00000889 -_0809CC74: .4byte 0x000008C1 - thumb_func_end ClearTempFieldEventData - - thumb_func_start ClearDailyFlags -ClearDailyFlags: @ 0x0809CC78 - push {lr} - ldr r0, _0809CC90 - ldr r0, [r0] - ldr r1, _0809CC94 - adds r0, r0, r1 - movs r1, #0 - movs r2, #8 - bl memset - pop {r0} - bx r0 - .align 2, 0 -_0809CC90: .4byte gUnknown_3005AEC -_0809CC94: .4byte 0x00001394 - thumb_func_end ClearDailyFlags - - thumb_func_start DisableNationalPokedex -DisableNationalPokedex: @ 0x0809CC98 - push {lr} - ldr r0, _0809CCB4 - bl GetVarPointer - ldr r1, _0809CCB8 - ldr r2, [r1] - movs r1, #0 - strb r1, [r2, #0x1a] - strh r1, [r0] - ldr r0, _0809CCBC - bl FlagClear - pop {r0} - bx r0 - .align 2, 0 -_0809CCB4: .4byte 0x00004046 -_0809CCB8: .4byte gUnknown_3005AF0 -_0809CCBC: .4byte 0x00000896 - thumb_func_end DisableNationalPokedex - - thumb_func_start EnableNationalPokedex -EnableNationalPokedex: @ 0x0809CCC0 - push {r4, r5, lr} - ldr r0, _0809CCF4 - bl GetVarPointer - ldr r4, _0809CCF8 - ldr r2, [r4] - movs r5, #0 - movs r1, #0xda - strb r1, [r2, #0x1a] - ldr r2, _0809CCFC - adds r1, r2, #0 - strh r1, [r0] - ldr r0, _0809CD00 - bl FlagSet - ldr r1, [r4] - movs r0, #1 - strb r0, [r1, #0x19] - ldr r0, [r4] - strb r5, [r0, #0x18] - bl ResetPokedexScrollPositions - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0809CCF4: .4byte 0x00004046 -_0809CCF8: .4byte gUnknown_3005AF0 -_0809CCFC: .4byte 0x00000302 -_0809CD00: .4byte 0x00000896 - thumb_func_end EnableNationalPokedex - - thumb_func_start IsNationalPokedexEnabled -IsNationalPokedexEnabled: @ 0x0809CD04 - push {lr} - ldr r0, _0809CD30 - ldr r0, [r0] - ldrb r0, [r0, #0x1a] - cmp r0, #0xda - bne _0809CD40 - ldr r0, _0809CD34 - bl VarGet - lsls r0, r0, #0x10 - ldr r1, _0809CD38 - cmp r0, r1 - bne _0809CD40 - ldr r0, _0809CD3C - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809CD40 - movs r0, #1 - b _0809CD42 - .align 2, 0 -_0809CD30: .4byte gUnknown_3005AF0 -_0809CD34: .4byte 0x00004046 -_0809CD38: .4byte 0x03020000 -_0809CD3C: .4byte 0x00000896 -_0809CD40: - movs r0, #0 -_0809CD42: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsNationalPokedexEnabled - - thumb_func_start DisableMysteryEvent -DisableMysteryEvent: @ 0x0809CD48 - push {lr} - ldr r0, _0809CD54 - bl FlagClear - pop {r0} - bx r0 - .align 2, 0 -_0809CD54: .4byte 0x000008AC - thumb_func_end DisableMysteryEvent - - thumb_func_start EnableMysteryEvent -EnableMysteryEvent: @ 0x0809CD58 - push {lr} - ldr r0, _0809CD64 - bl FlagSet - pop {r0} - bx r0 - .align 2, 0 -_0809CD64: .4byte 0x000008AC - thumb_func_end EnableMysteryEvent - - thumb_func_start IsMysteryEventEnabled -IsMysteryEventEnabled: @ 0x0809CD68 - push {lr} - ldr r0, _0809CD78 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0809CD78: .4byte 0x000008AC - thumb_func_end IsMysteryEventEnabled - - thumb_func_start DisableMysteryGift -DisableMysteryGift: @ 0x0809CD7C - push {lr} - ldr r0, _0809CD88 - bl FlagClear - pop {r0} - bx r0 - .align 2, 0 -_0809CD88: .4byte 0x000008DB - thumb_func_end DisableMysteryGift - - thumb_func_start EnableMysteryGift -EnableMysteryGift: @ 0x0809CD8C - push {lr} - ldr r0, _0809CD98 - bl FlagSet - pop {r0} - bx r0 - .align 2, 0 -_0809CD98: .4byte 0x000008DB - thumb_func_end EnableMysteryGift - - thumb_func_start IsMysteryGiftEnabled -IsMysteryGiftEnabled: @ 0x0809CD9C - push {lr} - ldr r0, _0809CDAC - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0809CDAC: .4byte 0x000008DB - thumb_func_end IsMysteryGiftEnabled - - thumb_func_start sub_0809CDB0 -sub_0809CDB0: @ 0x0809CDB0 - push {lr} - movs r0, #0xf2 - lsls r0, r0, #1 - bl FlagClear - ldr r0, _0809CE28 - bl FlagClear - movs r0, #0xf3 - lsls r0, r0, #1 - bl FlagClear - ldr r0, _0809CE2C - bl FlagClear - movs r0, #0xf4 - lsls r0, r0, #1 - bl FlagClear - ldr r0, _0809CE30 - bl FlagClear - movs r0, #0xf5 - lsls r0, r0, #1 - bl FlagClear - ldr r0, _0809CE34 - bl FlagClear - movs r0, #0xf6 - lsls r0, r0, #1 - bl FlagClear - ldr r0, _0809CE38 - bl FlagClear - movs r0, #0xf7 - lsls r0, r0, #1 - bl FlagClear - ldr r0, _0809CE3C - bl FlagClear - movs r0, #0xf8 - lsls r0, r0, #1 - bl FlagClear - ldr r0, _0809CE40 - bl FlagClear - movs r0, #0xf9 - lsls r0, r0, #1 - bl FlagClear - ldr r0, _0809CE44 - bl FlagClear - pop {r0} - bx r0 - .align 2, 0 -_0809CE28: .4byte 0x000001E5 -_0809CE2C: .4byte 0x000001E7 -_0809CE30: .4byte 0x000001E9 -_0809CE34: .4byte 0x000001EB -_0809CE38: .4byte 0x000001ED -_0809CE3C: .4byte 0x000001EF -_0809CE40: .4byte 0x000001F1 -_0809CE44: .4byte 0x000001F3 - thumb_func_end sub_0809CDB0 - - thumb_func_start sub_0809CE48 -sub_0809CE48: @ 0x0809CE48 - push {lr} - ldr r0, _0809CE90 - movs r1, #0 - bl VarSet - ldr r0, _0809CE94 - movs r1, #0 - bl VarSet - ldr r0, _0809CE98 - movs r1, #0 - bl VarSet - ldr r0, _0809CE9C - movs r1, #0 - bl VarSet - ldr r0, _0809CEA0 - movs r1, #0 - bl VarSet - ldr r0, _0809CEA4 - movs r1, #0 - bl VarSet - ldr r0, _0809CEA8 - movs r1, #0 - bl VarSet - ldr r0, _0809CEAC - movs r1, #0 - bl VarSet - pop {r0} - bx r0 - .align 2, 0 -_0809CE90: .4byte 0x000040DD -_0809CE94: .4byte 0x000040DE -_0809CE98: .4byte 0x000040DF -_0809CE9C: .4byte 0x000040E0 -_0809CEA0: .4byte 0x000040E1 -_0809CEA4: .4byte 0x000040E2 -_0809CEA8: .4byte 0x000040E3 -_0809CEAC: .4byte 0x000040E4 - thumb_func_end sub_0809CE48 - - thumb_func_start DisableResetRTC -DisableResetRTC: @ 0x0809CEB0 - push {lr} - ldr r0, _0809CEC4 - movs r1, #0 - bl VarSet - ldr r0, _0809CEC8 - bl FlagClear - pop {r0} - bx r0 - .align 2, 0 -_0809CEC4: .4byte 0x0000402C -_0809CEC8: .4byte 0x000008C2 - thumb_func_end DisableResetRTC - - thumb_func_start EnableResetRTC -EnableResetRTC: @ 0x0809CECC - push {lr} - ldr r0, _0809CEE4 - movs r1, #0x92 - lsls r1, r1, #4 - bl VarSet - ldr r0, _0809CEE8 - bl FlagSet - pop {r0} - bx r0 - .align 2, 0 -_0809CEE4: .4byte 0x0000402C -_0809CEE8: .4byte 0x000008C2 - thumb_func_end EnableResetRTC - - thumb_func_start CanResetRTC -CanResetRTC: @ 0x0809CEEC - push {lr} - ldr r0, _0809CF10 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809CF18 - ldr r0, _0809CF14 - bl VarGet - lsls r0, r0, #0x10 - movs r1, #0x92 - lsls r1, r1, #0x14 - cmp r0, r1 - bne _0809CF18 - movs r0, #1 - b _0809CF1A - .align 2, 0 -_0809CF10: .4byte 0x000008C2 -_0809CF14: .4byte 0x0000402C -_0809CF18: - movs r0, #0 -_0809CF1A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CanResetRTC - - thumb_func_start GetVarPointer -GetVarPointer: @ 0x0809CF20 - push {lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - adds r2, r1, #0 - ldr r0, _0809CF34 - cmp r1, r0 - bhi _0809CF38 - movs r0, #0 - b _0809CF60 - .align 2, 0 -_0809CF34: .4byte 0x00003FFF -_0809CF38: - lsls r0, r1, #0x10 - cmp r0, #0 - bge _0809CF54 - ldr r0, _0809CF4C - ldr r2, _0809CF50 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - b _0809CF60 - .align 2, 0 -_0809CF4C: .4byte gUnknown_81DAF34 -_0809CF50: .4byte 0xFFFF8000 -_0809CF54: - ldr r0, _0809CF64 - lsls r1, r2, #1 - ldr r2, _0809CF68 - adds r1, r1, r2 - ldr r0, [r0] - adds r0, r0, r1 -_0809CF60: - pop {r1} - bx r1 - .align 2, 0 -_0809CF64: .4byte gUnknown_3005AEC -_0809CF68: .4byte 0xFFFF939C - thumb_func_end GetVarPointer - - thumb_func_start VarGet -VarGet: @ 0x0809CF6C - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r4, #0 - bl GetVarPointer - cmp r0, #0 - beq _0809CF80 - ldrh r0, [r0] - b _0809CF82 -_0809CF80: - adds r0, r4, #0 -_0809CF82: - pop {r4} - pop {r1} - bx r1 - thumb_func_end VarGet - - thumb_func_start VarSet -VarSet: @ 0x0809CF88 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - bl GetVarPointer - cmp r0, #0 - beq _0809CFA0 - strh r4, [r0] - movs r0, #1 - b _0809CFA2 -_0809CFA0: - movs r0, #0 -_0809CFA2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end VarSet - - thumb_func_start VarGetEventObjectGraphicsId -VarGetEventObjectGraphicsId: @ 0x0809CFA8 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #8 - ldr r1, _0809CFC0 - adds r0, r0, r1 - lsrs r0, r0, #0x10 - bl VarGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0809CFC0: .4byte 0x40100000 - thumb_func_end VarGetEventObjectGraphicsId - - thumb_func_start GetFlagPointer -GetFlagPointer: @ 0x0809CFC4 - push {lr} - lsls r1, r0, #0x10 - lsrs r2, r1, #0x10 - adds r3, r2, #0 - cmp r2, #0 - bne _0809CFD4 - movs r0, #0 - b _0809D006 -_0809CFD4: - ldr r0, _0809CFE8 - cmp r2, r0 - bhi _0809CFF4 - ldr r0, _0809CFEC - lsrs r1, r1, #0x13 - ldr r2, _0809CFF0 - adds r1, r1, r2 - ldr r0, [r0] - b _0809D004 - .align 2, 0 -_0809CFE8: .4byte 0x00003FFF -_0809CFEC: .4byte gUnknown_3005AEC -_0809CFF0: .4byte 0x00001270 -_0809CFF4: - ldr r1, _0809D00C - adds r0, r3, r1 - cmp r0, #0 - bge _0809D000 - ldr r2, _0809D010 - adds r0, r3, r2 -_0809D000: - asrs r0, r0, #3 - ldr r1, _0809D014 -_0809D004: - adds r0, r0, r1 -_0809D006: - pop {r1} - bx r1 - .align 2, 0 -_0809D00C: .4byte 0xFFFFC000 -_0809D010: .4byte 0xFFFFC007 -_0809D014: .4byte gUnknown_203729C - thumb_func_end GetFlagPointer - - thumb_func_start FlagSet -FlagSet: @ 0x0809D018 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r4, #0 - bl GetFlagPointer - adds r2, r0, #0 - cmp r2, #0 - beq _0809D038 - movs r0, #7 - ands r0, r4 - movs r1, #1 - lsls r1, r0 - ldrb r0, [r2] - orrs r1, r0 - strb r1, [r2] -_0809D038: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end FlagSet - - thumb_func_start FlagClear -FlagClear: @ 0x0809D040 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r4, #0 - bl GetFlagPointer - adds r2, r0, #0 - cmp r2, #0 - beq _0809D060 - movs r0, #7 - ands r0, r4 - movs r1, #1 - lsls r1, r0 - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] -_0809D060: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end FlagClear - - thumb_func_start FlagGet -FlagGet: @ 0x0809D068 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r4, #0 - bl GetFlagPointer - cmp r0, #0 - beq _0809D08C - ldrb r0, [r0] - movs r1, #7 - ands r1, r4 - asrs r0, r1 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0809D08C - movs r0, #1 - b _0809D08E -_0809D08C: - movs r0, #0 -_0809D08E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end FlagGet - - thumb_func_start sub_0809D094 -sub_0809D094: @ 0x0809D094 - push {lr} - movs r0, #1 - bl SetWeather - pop {r0} - bx r0 - thumb_func_end sub_0809D094 - - thumb_func_start CoordEventWeather_Sunny -CoordEventWeather_Sunny: @ 0x0809D0A0 - push {lr} - movs r0, #2 - bl SetWeather - pop {r0} - bx r0 - thumb_func_end CoordEventWeather_Sunny - - thumb_func_start sub_0809D0AC -sub_0809D0AC: @ 0x0809D0AC - push {lr} - movs r0, #3 - bl SetWeather - pop {r0} - bx r0 - thumb_func_end sub_0809D0AC - - thumb_func_start sub_0809D0B8 -sub_0809D0B8: @ 0x0809D0B8 - push {lr} - movs r0, #4 - bl SetWeather - pop {r0} - bx r0 - thumb_func_end sub_0809D0B8 - - thumb_func_start CoordEventWeather_Thunderstorm -CoordEventWeather_Thunderstorm: @ 0x0809D0C4 - push {lr} - movs r0, #5 - bl SetWeather - pop {r0} - bx r0 - thumb_func_end CoordEventWeather_Thunderstorm - - thumb_func_start CoordEventWeather_LightRain -CoordEventWeather_LightRain: @ 0x0809D0D0 - push {lr} - movs r0, #6 - bl SetWeather - pop {r0} - bx r0 - thumb_func_end CoordEventWeather_LightRain - - thumb_func_start CoordEventWeather_Snow -CoordEventWeather_Snow: @ 0x0809D0DC - push {lr} - movs r0, #9 - bl SetWeather - pop {r0} - bx r0 - thumb_func_end CoordEventWeather_Snow - - thumb_func_start CoordEventWeather_Ash -CoordEventWeather_Ash: @ 0x0809D0E8 - push {lr} - movs r0, #7 - bl SetWeather - pop {r0} - bx r0 - thumb_func_end CoordEventWeather_Ash - - thumb_func_start CoordEventWeather_Fog -CoordEventWeather_Fog: @ 0x0809D0F4 - push {lr} - movs r0, #8 - bl SetWeather - pop {r0} - bx r0 - thumb_func_end CoordEventWeather_Fog - - thumb_func_start CoordEventWeather_DiagonalFog -CoordEventWeather_DiagonalFog: @ 0x0809D100 - push {lr} - movs r0, #0xb - bl SetWeather - pop {r0} - bx r0 - thumb_func_end CoordEventWeather_DiagonalFog - - thumb_func_start CoordEventWeather_Drought -CoordEventWeather_Drought: @ 0x0809D10C - push {lr} - movs r0, #0xc - bl SetWeather - pop {r0} - bx r0 - thumb_func_end CoordEventWeather_Drought - - thumb_func_start CoordEventWeather_Route119Cycle -CoordEventWeather_Route119Cycle: @ 0x0809D118 - push {lr} - movs r0, #0x14 - bl SetWeather - pop {r0} - bx r0 - thumb_func_end CoordEventWeather_Route119Cycle - - thumb_func_start CoordEventWeather_Route123Cycle -CoordEventWeather_Route123Cycle: @ 0x0809D124 - push {lr} - movs r0, #0x15 - bl SetWeather - pop {r0} - bx r0 - thumb_func_end CoordEventWeather_Route123Cycle - - thumb_func_start DoCoordEventWeather -DoCoordEventWeather: @ 0x0809D130 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r2, #0 - ldr r3, _0809D150 -_0809D13A: - lsls r1, r2, #3 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r4 - bne _0809D154 - adds r0, r3, #4 - adds r0, r1, r0 - ldr r0, [r0] - bl _call_via_r0 - b _0809D15E - .align 2, 0 -_0809D150: .4byte gUnknown_84E8924 -_0809D154: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xc - bls _0809D13A -_0809D15E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end DoCoordEventWeather - - thumb_func_start Task_RunPerStepCallback -Task_RunPerStepCallback: @ 0x0809D164 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0809D188 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r2, #8 - ldrsh r1, [r1, r2] - ldr r2, _0809D18C - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_0809D188: .4byte gUnknown_3005B60 -_0809D18C: .4byte gUnknown_84E898C - thumb_func_end Task_RunPerStepCallback - - thumb_func_start RunTimeBasedEvents -RunTimeBasedEvents: @ 0x0809D190 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0809D1A2 - cmp r0, #1 - beq _0809D1C0 - b _0809D1D4 -_0809D1A2: - ldr r0, _0809D1BC - ldr r0, [r0, #0x20] - movs r1, #0x80 - lsls r1, r1, #5 - ands r0, r1 - cmp r0, #0 - beq _0809D1D4 - bl DoTimeBasedEvents - ldrh r0, [r4] - adds r0, #1 - b _0809D1D2 - .align 2, 0 -_0809D1BC: .4byte gUnknown_3002360 -_0809D1C0: - ldr r0, _0809D1DC - ldr r0, [r0, #0x20] - movs r1, #0x80 - lsls r1, r1, #5 - ands r0, r1 - cmp r0, #0 - bne _0809D1D4 - ldrh r0, [r4] - subs r0, #1 -_0809D1D2: - strh r0, [r4] -_0809D1D4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809D1DC: .4byte gUnknown_3002360 - thumb_func_end RunTimeBasedEvents - - thumb_func_start Task_RunTimeBasedEvents -Task_RunTimeBasedEvents: @ 0x0809D1E0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _0809D210 - adds r4, r1, r0 - bl sub_080987F4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809D208 - adds r0, r4, #0 - bl RunTimeBasedEvents - adds r0, r4, #2 - adds r1, r4, #4 - bl UpdateAmbientCry -_0809D208: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809D210: .4byte gUnknown_3005B68 - thumb_func_end Task_RunTimeBasedEvents - - thumb_func_start SetUpFieldTasks -SetUpFieldTasks: @ 0x0809D214 - push {r4, r5, lr} - ldr r5, _0809D270 - adds r0, r5, #0 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _0809D23E - adds r0, r5, #0 - movs r1, #0x50 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0809D274 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #8] -_0809D23E: - ldr r4, _0809D278 - adds r0, r4, #0 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809D254 - adds r0, r4, #0 - movs r1, #0x50 - bl CreateTask -_0809D254: - ldr r4, _0809D27C - adds r0, r4, #0 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809D26A - adds r0, r4, #0 - movs r1, #0x50 - bl CreateTask -_0809D26A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0809D270: .4byte Task_RunPerStepCallback -_0809D274: .4byte gUnknown_3005B60 -_0809D278: .4byte Task_MuddySlope -_0809D27C: .4byte Task_RunTimeBasedEvents - thumb_func_end SetUpFieldTasks - - thumb_func_start ActivatePerStepCallback -ActivatePerStepCallback: @ 0x0809D280 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0809D2B8 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xff - beq _0809D2C2 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - ldr r1, _0809D2BC - adds r1, r0, r1 - movs r2, #0 - adds r0, r1, #0 - adds r0, #0x1e -_0809D2A4: - strh r2, [r0] - subs r0, #2 - cmp r0, r1 - bge _0809D2A4 - cmp r4, #7 - bls _0809D2C0 - movs r0, #0 - strh r0, [r1] - b _0809D2C2 - .align 2, 0 -_0809D2B8: .4byte Task_RunPerStepCallback -_0809D2BC: .4byte gUnknown_3005B68 -_0809D2C0: - strh r4, [r1] -_0809D2C2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ActivatePerStepCallback - - thumb_func_start ResetFieldTasksArgs -ResetFieldTasksArgs: @ 0x0809D2C8 - push {lr} - ldr r0, _0809D2F8 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r0, _0809D2FC - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xff - beq _0809D2F2 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - ldr r1, _0809D300 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #2] - strh r1, [r0, #4] -_0809D2F2: - pop {r0} - bx r0 - .align 2, 0 -_0809D2F8: .4byte Task_RunPerStepCallback -_0809D2FC: .4byte Task_RunTimeBasedEvents -_0809D300: .4byte gUnknown_3005B68 - thumb_func_end ResetFieldTasksArgs - - thumb_func_start sub_0809D304 -sub_0809D304: @ 0x0809D304 - bx lr - .align 2, 0 - thumb_func_end sub_0809D304 - - thumb_func_start GetPacifidlogBridgeMetatileOffsets -GetPacifidlogBridgeMetatileOffsets: @ 0x0809D308 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - adds r0, r4, #0 - bl MetatileBehavior_IsPacifilogVerticalLog1 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809D320 - adds r0, r5, #0 - b _0809D358 -_0809D320: - adds r0, r4, #0 - bl MetatileBehavior_IsPacifilogVerticalLog2 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809D332 - adds r0, r5, #0 - adds r0, #8 - b _0809D358 -_0809D332: - adds r0, r4, #0 - bl MetatileBehavior_IsPacifilogHorizontalLog1 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809D344 - adds r0, r5, #0 - adds r0, #0x10 - b _0809D358 -_0809D344: - adds r0, r4, #0 - bl MetatileBehavior_IsPacifilogHorizontalLog2 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809D354 - movs r0, #0 - b _0809D358 -_0809D354: - adds r0, r5, #0 - adds r0, #0x18 -_0809D358: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetPacifidlogBridgeMetatileOffsets - - thumb_func_start SetPacifidlogBridgeMetatiles -SetPacifidlogBridgeMetatiles: @ 0x0809D360 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - mov r8, r3 - lsls r1, r1, #0x10 - asrs r6, r1, #0x10 - lsls r2, r2, #0x10 - asrs r7, r2, #0x10 - adds r0, r6, #0 - adds r1, r7, #0 - bl MapGridGetMetatileBehaviorAt - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r5, #0 - bl GetPacifidlogBridgeMetatileOffsets - adds r4, r0, #0 - adds r5, r4, #0 - cmp r4, #0 - beq _0809D3DE - movs r0, #0 - ldrsb r0, [r4, r0] - adds r0, r6, r0 - movs r1, #1 - ldrsb r1, [r4, r1] - adds r1, r7, r1 - ldrh r2, [r4, #2] - bl MapGridSetMetatileIdAt - mov r0, r8 - cmp r0, #0 - beq _0809D3B6 - movs r0, #0 - ldrsb r0, [r4, r0] - adds r0, r6, r0 - movs r1, #1 - ldrsb r1, [r4, r1] - adds r1, r7, r1 - bl CurrentMapDrawMetatileAt -_0809D3B6: - movs r0, #4 - ldrsb r0, [r5, r0] - adds r0, r6, r0 - movs r1, #5 - ldrsb r1, [r5, r1] - adds r1, r7, r1 - ldrh r2, [r5, #6] - bl MapGridSetMetatileIdAt - mov r0, r8 - cmp r0, #0 - beq _0809D3DE - movs r0, #4 - ldrsb r0, [r5, r0] - adds r0, r6, r0 - movs r1, #5 - ldrsb r1, [r5, r1] - adds r1, r7, r1 - bl CurrentMapDrawMetatileAt -_0809D3DE: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end SetPacifidlogBridgeMetatiles - - thumb_func_start UpdateHalfSubmergedBridgeMetatiles -UpdateHalfSubmergedBridgeMetatiles: @ 0x0809D3E8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r3, r2, #0 - ldr r0, _0809D408 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - adds r1, r4, #0 - adds r2, r5, #0 - bl SetPacifidlogBridgeMetatiles - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0809D408: .4byte gUnknown_84E89AC - thumb_func_end UpdateHalfSubmergedBridgeMetatiles - - thumb_func_start UpdateFullySubmergedBridgeMetatiles -UpdateFullySubmergedBridgeMetatiles: @ 0x0809D40C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r3, r2, #0 - ldr r0, _0809D42C - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - adds r1, r4, #0 - adds r2, r5, #0 - bl SetPacifidlogBridgeMetatiles - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0809D42C: .4byte gUnknown_84E89CC - thumb_func_end UpdateFullySubmergedBridgeMetatiles - - thumb_func_start UpdateFloatingBridgeMetatiles -UpdateFloatingBridgeMetatiles: @ 0x0809D430 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r3, r2, #0 - ldr r0, _0809D450 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - adds r1, r4, #0 - adds r2, r5, #0 - bl SetPacifidlogBridgeMetatiles - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0809D450: .4byte gUnknown_84E89EC - thumb_func_end UpdateFloatingBridgeMetatiles - - thumb_func_start StandingOnNewPacifidlogBridge -StandingOnNewPacifidlogBridge: @ 0x0809D454 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - mov sl, r8 - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - mov sb, r7 - lsls r2, r2, #0x10 - asrs r6, r2, #0x10 - lsls r3, r3, #0x10 - asrs r5, r3, #0x10 - adds r0, r6, #0 - adds r1, r5, #0 - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl MetatileBehavior_IsPacifilogVerticalLog1 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809D498 - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - cmp r0, r5 - ble _0809D4DE -_0809D494: - movs r0, #0 - b _0809D4E0 -_0809D498: - adds r0, r4, #0 - bl MetatileBehavior_IsPacifilogVerticalLog2 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809D4B0 - mov r1, sb - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, r5 - bge _0809D4DE - b _0809D494 -_0809D4B0: - adds r0, r4, #0 - bl MetatileBehavior_IsPacifilogHorizontalLog1 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809D4C8 - mov r1, r8 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, r6 - ble _0809D4DE - b _0809D494 -_0809D4C8: - adds r0, r4, #0 - bl MetatileBehavior_IsPacifilogHorizontalLog2 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809D4DE - mov r1, sl - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, r6 - blt _0809D494 -_0809D4DE: - movs r0, #1 -_0809D4E0: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end StandingOnNewPacifidlogBridge - - thumb_func_start StandingOnSamePacifidlogBridge -StandingOnSamePacifidlogBridge: @ 0x0809D4F0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - mov r8, r2 - mov sl, r8 - lsls r3, r3, #0x10 - lsrs r7, r3, #0x10 - mov sb, r7 - lsls r0, r0, #0x10 - asrs r6, r0, #0x10 - lsls r1, r1, #0x10 - asrs r5, r1, #0x10 - adds r0, r6, #0 - adds r1, r5, #0 - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl MetatileBehavior_IsPacifilogVerticalLog1 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809D534 - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - cmp r5, r0 - bge _0809D57A -_0809D530: - movs r0, #0 - b _0809D57C -_0809D534: - adds r0, r4, #0 - bl MetatileBehavior_IsPacifilogVerticalLog2 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809D54C - mov r1, sb - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r5, r0 - ble _0809D57A - b _0809D530 -_0809D54C: - adds r0, r4, #0 - bl MetatileBehavior_IsPacifilogHorizontalLog1 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809D564 - mov r1, r8 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r6, r0 - bge _0809D57A - b _0809D530 -_0809D564: - adds r0, r4, #0 - bl MetatileBehavior_IsPacifilogHorizontalLog2 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809D57A - mov r1, sl - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r6, r0 - bgt _0809D530 -_0809D57A: - movs r0, #1 -_0809D57C: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end StandingOnSamePacifidlogBridge - - thumb_func_start PacifidlogBridgePerStepCallback -PacifidlogBridgePerStepCallback: @ 0x0809D58C - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _0809D5C0 - adds r4, r1, r0 - mov r5, sp - adds r5, #2 - mov r0, sp - adds r1, r5, #0 - bl PlayerGetDestCoords - movs r1, #2 - ldrsh r0, [r4, r1] - adds r6, r5, #0 - cmp r0, #1 - beq _0809D5E6 - cmp r0, #1 - bgt _0809D5C4 - cmp r0, #0 - beq _0809D5CA - b _0809D6F6 - .align 2, 0 -_0809D5C0: .4byte gUnknown_3005B68 -_0809D5C4: - cmp r0, #2 - beq _0809D6B4 - b _0809D6F6 -_0809D5CA: - mov r0, sp - ldrh r0, [r0] - strh r0, [r4, #4] - ldrh r0, [r5] - strh r0, [r4, #6] - mov r0, sp - movs r2, #0 - ldrsh r0, [r0, r2] - movs r3, #0 - ldrsh r1, [r5, r3] - movs r2, #1 - bl UpdateFullySubmergedBridgeMetatiles - b _0809D6F2 -_0809D5E6: - mov r0, sp - movs r7, #0 - ldrsh r1, [r0, r7] - movs r2, #4 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _0809D600 - movs r3, #0 - ldrsh r1, [r5, r3] - movs r7, #6 - ldrsh r0, [r4, r7] - cmp r1, r0 - beq _0809D6F6 -_0809D600: - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0 - ldrsh r1, [r5, r2] - movs r3, #4 - ldrsh r2, [r4, r3] - movs r5, #6 - ldrsh r3, [r4, r5] - bl StandingOnNewPacifidlogBridge - cmp r0, #0 - beq _0809D648 - movs r7, #4 - ldrsh r0, [r4, r7] - movs r2, #6 - ldrsh r1, [r4, r2] - movs r2, #1 - bl UpdateHalfSubmergedBridgeMetatiles - movs r3, #4 - ldrsh r0, [r4, r3] - movs r5, #6 - ldrsh r1, [r4, r5] - movs r2, #0 - bl UpdateFloatingBridgeMetatiles - ldrh r0, [r4, #4] - strh r0, [r4, #8] - ldrh r0, [r4, #6] - strh r0, [r4, #0xa] - movs r0, #2 - strh r0, [r4, #2] - movs r0, #8 - strh r0, [r4, #0xc] - b _0809D652 -_0809D648: - movs r7, #1 - rsbs r7, r7, #0 - adds r0, r7, #0 - strh r0, [r4, #8] - strh r0, [r4, #0xa] -_0809D652: - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - adds r5, r6, #0 - movs r2, #0 - ldrsh r1, [r5, r2] - movs r3, #4 - ldrsh r2, [r4, r3] - movs r7, #6 - ldrsh r3, [r4, r7] - bl StandingOnSamePacifidlogBridge - cmp r0, #0 - beq _0809D686 - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0 - ldrsh r1, [r5, r2] - movs r2, #1 - bl UpdateHalfSubmergedBridgeMetatiles - movs r0, #2 - strh r0, [r4, #2] - movs r0, #8 - strh r0, [r4, #0xc] -_0809D686: - mov r0, sp - ldrh r0, [r0] - strh r0, [r4, #4] - ldrh r0, [r6] - strh r0, [r4, #6] - mov r0, sp - movs r3, #0 - ldrsh r0, [r0, r3] - movs r5, #0 - ldrsh r1, [r6, r5] - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsPacifidlogLog - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809D6F6 - movs r0, #0x46 - bl sub_080A306C - b _0809D6F6 -_0809D6B4: - ldrh r0, [r4, #0xc] - subs r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0809D6F6 - mov r0, sp - movs r7, #0 - ldrsh r0, [r0, r7] - movs r2, #0 - ldrsh r1, [r5, r2] - movs r2, #1 - bl UpdateFullySubmergedBridgeMetatiles - movs r3, #8 - ldrsh r0, [r4, r3] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _0809D6F2 - movs r5, #0xa - ldrsh r0, [r4, r5] - cmp r0, r1 - beq _0809D6F2 - movs r7, #8 - ldrsh r0, [r4, r7] - movs r2, #0xa - ldrsh r1, [r4, r2] - movs r2, #1 - bl UpdateFloatingBridgeMetatiles -_0809D6F2: - movs r0, #1 - strh r0, [r4, #2] -_0809D6F6: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PacifidlogBridgePerStepCallback - - thumb_func_start SetLoweredForetreeBridgeMetatile -SetLoweredForetreeBridgeMetatile: @ 0x0809D700 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - bl PlayerGetZCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _0809D75A - lsls r0, r4, #0x10 - asrs r4, r0, #0x10 - lsls r0, r5, #0x10 - asrs r5, r0, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - bl MapGridGetMetatileIdAt - adds r1, r0, #0 - ldr r0, _0809D73C - cmp r1, r0 - beq _0809D740 - adds r0, #8 - cmp r1, r0 - beq _0809D750 - b _0809D75A - .align 2, 0 -_0809D73C: .4byte 0x0000024E -_0809D740: - ldr r2, _0809D74C - adds r0, r4, #0 - adds r1, r5, #0 - bl MapGridSetMetatileIdAt - b _0809D75A - .align 2, 0 -_0809D74C: .4byte 0x0000024F -_0809D750: - ldr r2, _0809D760 - adds r0, r4, #0 - adds r1, r5, #0 - bl MapGridSetMetatileIdAt -_0809D75A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0809D760: .4byte 0x00000257 - thumb_func_end SetLoweredForetreeBridgeMetatile - - thumb_func_start SetNormalFortreeBridgeMetatile -SetNormalFortreeBridgeMetatile: @ 0x0809D764 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - bl PlayerGetZCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _0809D7BE - lsls r0, r4, #0x10 - asrs r4, r0, #0x10 - lsls r0, r5, #0x10 - asrs r5, r0, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - bl MapGridGetMetatileIdAt - adds r1, r0, #0 - ldr r0, _0809D7A0 - cmp r1, r0 - beq _0809D7A4 - adds r0, #8 - cmp r1, r0 - beq _0809D7B4 - b _0809D7BE - .align 2, 0 -_0809D7A0: .4byte 0x0000024F -_0809D7A4: - ldr r2, _0809D7B0 - adds r0, r4, #0 - adds r1, r5, #0 - bl MapGridSetMetatileIdAt - b _0809D7BE - .align 2, 0 -_0809D7B0: .4byte 0x0000024E -_0809D7B4: - ldr r2, _0809D7C4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MapGridSetMetatileIdAt -_0809D7BE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0809D7C4: .4byte 0x00000256 - thumb_func_end SetNormalFortreeBridgeMetatile - - thumb_func_start FortreeBridgePerStepCallback -FortreeBridgePerStepCallback: @ 0x0809D7C8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _0809D804 - adds r6, r1, r0 - mov r4, sp - adds r4, #2 - mov r0, sp - adds r1, r4, #0 - bl PlayerGetDestCoords - movs r0, #2 - ldrsh r5, [r6, r0] - mov sb, r4 - cmp r5, #1 - beq _0809D85C - cmp r5, #1 - bgt _0809D808 - cmp r5, #0 - beq _0809D810 - b _0809D9CE - .align 2, 0 -_0809D804: .4byte gUnknown_3005B68 -_0809D808: - cmp r5, #2 - bne _0809D80E - b _0809D93C -_0809D80E: - b _0809D9CE -_0809D810: - mov r0, sp - ldrh r0, [r0] - strh r0, [r6, #4] - mov r1, sb - ldrh r0, [r1] - strh r0, [r6, #6] - mov r0, sp - movs r2, #0 - ldrsh r0, [r0, r2] - movs r3, #0 - ldrsh r1, [r1, r3] - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsFortreeBridge - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809D83A - b _0809D9CA -_0809D83A: - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - mov r2, sb - movs r3, #0 - ldrsh r1, [r2, r3] - bl SetLoweredForetreeBridgeMetatile - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - mov r2, sb - movs r3, #0 - ldrsh r1, [r2, r3] - bl CurrentMapDrawMetatileAt - b _0809D9CA -_0809D85C: - ldrh r0, [r6, #6] - mov r8, r0 - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - ldrh r2, [r6, #4] - mov sl, r2 - movs r3, #4 - ldrsh r7, [r6, r3] - cmp r0, r7 - bne _0809D884 - mov r0, sb - movs r2, #0 - ldrsh r1, [r0, r2] - mov r3, r8 - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - cmp r1, r0 - bne _0809D884 - b _0809D9CE -_0809D884: - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - mov r2, sb - movs r3, #0 - ldrsh r1, [r2, r3] - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsFortreeBridge - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - mov r0, r8 - lsls r4, r0, #0x10 - asrs r1, r4, #0x10 - adds r0, r7, #0 - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsFortreeBridge - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - bl PlayerGetZCoord - movs r1, #0 - ands r5, r0 - lsls r0, r5, #0x18 - adds r5, r4, #0 - cmp r0, #0 - bne _0809D8CC - movs r1, #1 -_0809D8CC: - cmp r1, #0 - beq _0809D8E0 - ldr r1, [sp, #4] - cmp r1, #1 - beq _0809D8DA - cmp r7, #1 - bne _0809D8E0 -_0809D8DA: - movs r0, #0x47 - bl sub_080A306C -_0809D8E0: - cmp r7, #0 - beq _0809D91C - mov r2, sl - lsls r4, r2, #0x10 - asrs r4, r4, #0x10 - asrs r5, r5, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - bl SetNormalFortreeBridgeMetatile - adds r0, r4, #0 - adds r1, r5, #0 - bl CurrentMapDrawMetatileAt - mov r0, sp - movs r3, #0 - ldrsh r0, [r0, r3] - mov r2, sb - movs r3, #0 - ldrsh r1, [r2, r3] - bl SetLoweredForetreeBridgeMetatile - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - mov r2, sb - movs r3, #0 - ldrsh r1, [r2, r3] - bl CurrentMapDrawMetatileAt -_0809D91C: - mov r0, sl - strh r0, [r6, #8] - mov r1, r8 - strh r1, [r6, #0xa] - mov r0, sp - ldrh r0, [r0] - strh r0, [r6, #4] - mov r2, sb - ldrh r0, [r2] - strh r0, [r6, #6] - cmp r7, #0 - beq _0809D9CE - movs r0, #0x10 - strh r0, [r6, #0xc] - movs r0, #2 - strh r0, [r6, #2] -_0809D93C: - ldrh r0, [r6, #0xc] - subs r0, #1 - strh r0, [r6, #0xc] - ldrh r3, [r6, #8] - mov sl, r3 - ldrh r0, [r6, #0xa] - mov r8, r0 - movs r1, #0xc - ldrsh r0, [r6, r1] - movs r1, #7 - bl __modsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #7 - bhi _0809D9C2 - lsls r0, r0, #2 - ldr r1, _0809D968 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809D968: .4byte _0809D96C -_0809D96C: @ jump table - .4byte _0809D98C @ case 0 - .4byte _0809D9C2 @ case 1 - .4byte _0809D9C2 @ case 2 - .4byte _0809D9C2 @ case 3 - .4byte _0809D99E @ case 4 - .4byte _0809D9C2 @ case 5 - .4byte _0809D9C2 @ case 6 - .4byte _0809D9C2 @ case 7 -_0809D98C: - mov r2, sl - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - mov r3, r8 - lsls r1, r3, #0x10 - asrs r1, r1, #0x10 - bl CurrentMapDrawMetatileAt - b _0809D9C2 -_0809D99E: - mov r0, sl - lsls r5, r0, #0x10 - asrs r5, r5, #0x10 - mov r1, r8 - lsls r4, r1, #0x10 - asrs r4, r4, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl SetLoweredForetreeBridgeMetatile - adds r0, r5, #0 - adds r1, r4, #0 - bl CurrentMapDrawMetatileAt - adds r0, r5, #0 - adds r1, r4, #0 - bl SetNormalFortreeBridgeMetatile -_0809D9C2: - movs r2, #0xc - ldrsh r0, [r6, r2] - cmp r0, #0 - bne _0809D9CE -_0809D9CA: - movs r0, #1 - strh r0, [r6, #2] -_0809D9CE: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end FortreeBridgePerStepCallback - - thumb_func_start CoordInIcePuzzleRegion -CoordInIcePuzzleRegion: @ 0x0809D9E0 - push {lr} - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r0, r0, #0x10 - ldr r2, _0809DA10 - adds r0, r0, r2 - lsrs r0, r0, #0x10 - cmp r0, #0xa - bhi _0809DA1C - lsls r0, r1, #0x10 - asrs r1, r0, #0x10 - ldr r2, _0809DA14 - adds r0, r0, r2 - lsrs r0, r0, #0x10 - cmp r0, #0xd - bhi _0809DA1C - ldr r0, _0809DA18 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - cmp r0, #0 - beq _0809DA1C - movs r0, #1 - b _0809DA1E - .align 2, 0 -_0809DA10: .4byte 0xFFFD0000 -_0809DA14: .4byte 0xFFFA0000 -_0809DA18: .4byte gUnknown_84E8A0C -_0809DA1C: - movs r0, #0 -_0809DA1E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CoordInIcePuzzleRegion - - thumb_func_start MarkIcePuzzleCoordVisited -MarkIcePuzzleCoordVisited: @ 0x0809DA24 - push {r4, r5, lr} - lsls r0, r0, #0x10 - asrs r5, r0, #0x10 - lsls r1, r1, #0x10 - asrs r4, r1, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl CoordInIcePuzzleRegion - cmp r0, #0 - beq _0809DA52 - ldr r1, _0809DA58 - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r0, [r0] - bl GetVarPointer - subs r2, r5, #3 - movs r1, #1 - lsls r1, r2 - ldrh r2, [r0] - orrs r1, r2 - strh r1, [r0] -_0809DA52: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0809DA58: .4byte gUnknown_84E8A0C - thumb_func_end MarkIcePuzzleCoordVisited - - thumb_func_start IsIcePuzzleCoordVisited -IsIcePuzzleCoordVisited: @ 0x0809DA5C - push {r4, r5, lr} - lsls r0, r0, #0x10 - asrs r5, r0, #0x10 - lsls r1, r1, #0x10 - asrs r4, r1, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl CoordInIcePuzzleRegion - cmp r0, #0 - beq _0809DA8E - ldr r1, _0809DA94 - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r0, [r0] - bl VarGet - lsls r0, r0, #0x10 - subs r2, r5, #3 - movs r1, #0x80 - lsls r1, r1, #9 - lsls r1, r2 - ands r1, r0 - cmp r1, #0 - bne _0809DA98 -_0809DA8E: - movs r0, #0 - b _0809DA9A - .align 2, 0 -_0809DA94: .4byte gUnknown_84E8A0C -_0809DA98: - movs r0, #1 -_0809DA9A: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end IsIcePuzzleCoordVisited - - thumb_func_start SetSootopolisGymCrackedIceMetatiles -SetSootopolisGymCrackedIceMetatiles: @ 0x0809DAA0 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r0, _0809DAF4 - ldr r0, [r0] - ldr r1, [r0] - mov sb, r1 - ldr r7, [r0, #4] - movs r5, #0 - cmp r5, sb - bge _0809DAE8 -_0809DAB8: - movs r4, #0 - adds r0, r5, #1 - mov r8, r0 - cmp r4, r7 - bge _0809DAE2 - lsls r6, r5, #0x10 -_0809DAC4: - lsls r1, r4, #0x10 - asrs r1, r1, #0x10 - asrs r0, r6, #0x10 - bl IsIcePuzzleCoordVisited - cmp r0, #1 - bne _0809DADC - adds r1, r4, #7 - adds r0, r5, #7 - ldr r2, _0809DAF8 - bl MapGridSetMetatileIdAt -_0809DADC: - adds r4, #1 - cmp r4, r7 - blt _0809DAC4 -_0809DAE2: - mov r5, r8 - cmp r5, sb - blt _0809DAB8 -_0809DAE8: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0809DAF4: .4byte gUnknown_2036FB8 -_0809DAF8: .4byte 0x0000020E - thumb_func_end SetSootopolisGymCrackedIceMetatiles - - thumb_func_start SootopolisGymIcePerStepCallback -SootopolisGymIcePerStepCallback: @ 0x0809DAFC - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _0809DB20 - adds r5, r1, r0 - movs r1, #2 - ldrsh r0, [r5, r1] - cmp r0, #1 - beq _0809DB48 - cmp r0, #1 - bgt _0809DB24 - cmp r0, #0 - beq _0809DB30 - b _0809DC7E - .align 2, 0 -_0809DB20: .4byte gUnknown_3005B68 -_0809DB24: - cmp r0, #2 - beq _0809DBDE - cmp r0, #3 - bne _0809DB2E - b _0809DC38 -_0809DB2E: - b _0809DC7E -_0809DB30: - mov r4, sp - adds r4, #2 - mov r0, sp - adds r1, r4, #0 - bl PlayerGetDestCoords - mov r0, sp - ldrh r0, [r0] - strh r0, [r5, #4] - ldrh r0, [r4] - strh r0, [r5, #6] - b _0809DC7A -_0809DB48: - mov r7, sp - adds r7, #2 - mov r0, sp - adds r1, r7, #0 - bl PlayerGetDestCoords - mov r0, sp - ldrh r2, [r0] - movs r3, #0 - ldrsh r1, [r0, r3] - movs r3, #4 - ldrsh r0, [r5, r3] - cmp r1, r0 - bne _0809DB72 - movs r0, #0 - ldrsh r1, [r7, r0] - movs r3, #6 - ldrsh r0, [r5, r3] - cmp r1, r0 - bne _0809DB72 - b _0809DC7E -_0809DB72: - strh r2, [r5, #4] - ldrh r0, [r7] - strh r0, [r5, #6] - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0 - ldrsh r1, [r7, r2] - bl MapGridGetMetatileBehaviorAt - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r0, _0809DBB4 - bl GetVarPointer - adds r6, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl MetatileBehavior_IsThinIce - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809DBB8 - ldrh r0, [r6] - adds r0, #1 - strh r0, [r6] - movs r0, #4 - strh r0, [r5, #0xc] - movs r0, #2 - b _0809DBD0 - .align 2, 0 -_0809DBB4: .4byte 0x00004022 -_0809DBB8: - adds r0, r4, #0 - bl MetatileBehavior_IsCrackedIce - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809DC7E - movs r0, #0 - strh r0, [r6] - movs r0, #4 - strh r0, [r5, #0xc] - movs r0, #3 -_0809DBD0: - strh r0, [r5, #2] - mov r0, sp - ldrh r0, [r0] - strh r0, [r5, #8] - ldrh r0, [r7] - strh r0, [r5, #0xa] - b _0809DC7E -_0809DBDE: - ldrh r1, [r5, #0xc] - movs r3, #0xc - ldrsh r0, [r5, r3] - cmp r0, #0 - bne _0809DC42 - mov r1, sp - ldrh r0, [r5, #8] - strh r0, [r1] - mov r4, sp - adds r4, #2 - ldrh r0, [r5, #0xa] - strh r0, [r4] - movs r0, #0x2a - bl sub_080A306C - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0 - ldrsh r1, [r4, r2] - ldr r2, _0809DC34 - bl MapGridSetMetatileIdAt - mov r0, sp - movs r3, #0 - ldrsh r0, [r0, r3] - movs r2, #0 - ldrsh r1, [r4, r2] - bl CurrentMapDrawMetatileAt - mov r0, sp - ldrh r0, [r0] - subs r0, #7 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrh r1, [r4] - subs r1, #7 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl MarkIcePuzzleCoordVisited - b _0809DC7A - .align 2, 0 -_0809DC34: .4byte 0x0000020E -_0809DC38: - ldrh r1, [r5, #0xc] - movs r3, #0xc - ldrsh r0, [r5, r3] - cmp r0, #0 - beq _0809DC48 -_0809DC42: - subs r0, r1, #1 - strh r0, [r5, #0xc] - b _0809DC7E -_0809DC48: - mov r1, sp - ldrh r0, [r5, #8] - strh r0, [r1] - mov r4, sp - adds r4, #2 - ldrh r0, [r5, #0xa] - strh r0, [r4] - movs r0, #0x29 - bl sub_080A306C - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0 - ldrsh r1, [r4, r2] - ldr r2, _0809DC88 - bl MapGridSetMetatileIdAt - mov r0, sp - movs r3, #0 - ldrsh r0, [r0, r3] - movs r2, #0 - ldrsh r1, [r4, r2] - bl CurrentMapDrawMetatileAt -_0809DC7A: - movs r0, #1 - strh r0, [r5, #2] -_0809DC7E: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0809DC88: .4byte 0x00000206 - thumb_func_end SootopolisGymIcePerStepCallback - - thumb_func_start AshGrassPerStepCallback -AshGrassPerStepCallback: @ 0x0809DC8C - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _0809DD10 - adds r5, r1, r0 - mov r4, sp - adds r4, #2 - mov r0, sp - adds r1, r4, #0 - bl PlayerGetDestCoords - mov r0, sp - ldrh r2, [r0] - movs r3, #0 - ldrsh r1, [r0, r3] - movs r3, #2 - ldrsh r0, [r5, r3] - cmp r1, r0 - bne _0809DCC6 - movs r0, #0 - ldrsh r1, [r4, r0] - movs r3, #4 - ldrsh r0, [r5, r3] - cmp r1, r0 - beq _0809DD52 -_0809DCC6: - strh r2, [r5, #2] - ldrh r0, [r4] - strh r0, [r5, #4] - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsAshGrass - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809DD52 - mov r0, sp - movs r3, #0 - ldrsh r0, [r0, r3] - movs r2, #0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileIdAt - ldr r1, _0809DD14 - cmp r0, r1 - bne _0809DD1C - mov r0, sp - movs r3, #0 - ldrsh r0, [r0, r3] - movs r2, #0 - ldrsh r1, [r4, r2] - ldr r2, _0809DD18 - movs r3, #4 - bl StartAshFieldEffect - b _0809DD2E - .align 2, 0 -_0809DD10: .4byte gUnknown_3005B68 -_0809DD14: .4byte 0x0000020A -_0809DD18: .4byte 0x00000212 -_0809DD1C: - mov r0, sp - movs r3, #0 - ldrsh r0, [r0, r3] - movs r2, #0 - ldrsh r1, [r4, r2] - ldr r2, _0809DD5C - movs r3, #4 - bl StartAshFieldEffect -_0809DD2E: - movs r0, #0x87 - lsls r0, r0, #1 - movs r1, #1 - bl CheckBagHasItem - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809DD52 - ldr r0, _0809DD60 - bl GetVarPointer - adds r2, r0, #0 - ldrh r1, [r2] - ldr r0, _0809DD64 - cmp r1, r0 - bhi _0809DD52 - adds r0, r1, #1 - strh r0, [r2] -_0809DD52: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0809DD5C: .4byte 0x00000206 -_0809DD60: .4byte 0x00004048 -_0809DD64: .4byte 0x0000270E - thumb_func_end AshGrassPerStepCallback - - thumb_func_start SetCrackedFloorHoleMetatile -SetCrackedFloorHoleMetatile: @ 0x0809DD68 - push {r4, r5, lr} - lsls r0, r0, #0x10 - asrs r5, r0, #0x10 - lsls r1, r1, #0x10 - asrs r4, r1, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl MapGridGetMetatileIdAt - ldr r1, _0809DD9C - ldr r2, _0809DDA0 - cmp r0, r1 - bne _0809DD84 - subs r2, #0x31 -_0809DD84: - adds r0, r5, #0 - adds r1, r4, #0 - bl MapGridSetMetatileIdAt - adds r0, r5, #0 - adds r1, r4, #0 - bl CurrentMapDrawMetatileAt - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0809DD9C: .4byte 0x0000022F -_0809DDA0: .4byte 0x00000237 - thumb_func_end SetCrackedFloorHoleMetatile - - thumb_func_start sub_0809DDA4 -sub_0809DDA4: @ 0x0809DDA4 - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _0809DE8C - adds r5, r1, r0 - mov r4, sp - adds r4, #2 - 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, r0, #0x10 - lsrs r6, r0, #0x10 - ldrh r1, [r5, #8] - movs r3, #8 - ldrsh r0, [r5, r3] - adds r7, r4, #0 - cmp r0, #0 - beq _0809DDF6 - subs r0, r1, #1 - strh r0, [r5, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0809DDF6 - movs r1, #0xa - ldrsh r0, [r5, r1] - movs r2, #0xc - ldrsh r1, [r5, r2] - bl SetCrackedFloorHoleMetatile -_0809DDF6: - ldrh r1, [r5, #0xe] - movs r3, #0xe - ldrsh r0, [r5, r3] - cmp r0, #0 - beq _0809DE16 - subs r0, r1, #1 - strh r0, [r5, #0xe] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0809DE16 - movs r1, #0x10 - ldrsh r0, [r5, r1] - movs r2, #0x12 - ldrsh r1, [r5, r2] - bl SetCrackedFloorHoleMetatile -_0809DE16: - lsls r0, r6, #0x18 - lsrs r6, r0, #0x18 - adds r0, r6, #0 - bl MetatileBehavior_IsCrackedFloorHole - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809DE2E - ldr r0, _0809DE90 - movs r1, #0 - bl VarSet -_0809DE2E: - mov r0, sp - ldrh r2, [r0] - movs r3, #0 - ldrsh r1, [r0, r3] - movs r3, #4 - ldrsh r0, [r5, r3] - cmp r1, r0 - bne _0809DE4A - movs r0, #0 - ldrsh r1, [r7, r0] - movs r3, #6 - ldrsh r0, [r5, r3] - cmp r1, r0 - beq _0809DEAA -_0809DE4A: - strh r2, [r5, #4] - adds r4, r7, #0 - ldrh r0, [r4] - strh r0, [r5, #6] - adds r0, r6, #0 - bl MetatileBehavior_IsCrackedFloor - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809DEAA - bl GetPlayerSpeed - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - beq _0809DE72 - ldr r0, _0809DE90 - movs r1, #0 - bl VarSet -_0809DE72: - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _0809DE94 - movs r0, #3 - strh r0, [r5, #8] - mov r0, sp - ldrh r0, [r0] - strh r0, [r5, #0xa] - ldrh r0, [r4] - strh r0, [r5, #0xc] - b _0809DEAA - .align 2, 0 -_0809DE8C: .4byte gUnknown_3005B68 -_0809DE90: .4byte 0x00004022 -_0809DE94: - movs r2, #0xe - ldrsh r0, [r5, r2] - cmp r0, #0 - bne _0809DEAA - movs r0, #3 - strh r0, [r5, #0xe] - mov r0, sp - ldrh r0, [r0] - strh r0, [r5, #0x10] - ldrh r0, [r7] - strh r0, [r5, #0x12] -_0809DEAA: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0809DDA4 - - thumb_func_start SetMuddySlopeMetatile -SetMuddySlopeMetatile: @ 0x0809DEB4 - push {r4, r5, lr} - adds r3, r0, #0 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r4, r2, #0x10 - ldrh r0, [r3] - subs r0, #1 - strh r0, [r3] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0809DED0 - movs r2, #0xe8 - b _0809DEE4 -_0809DED0: - ldr r1, _0809DF0C - movs r2, #0 - ldrsh r0, [r3, r2] - cmp r0, #0 - bge _0809DEDC - adds r0, #7 -_0809DEDC: - asrs r0, r0, #3 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r2, [r0] -_0809DEE4: - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl MapGridSetMetatileIdAt - adds r0, r5, #0 - adds r1, r4, #0 - bl CurrentMapDrawMetatileAt - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0xe8 - bl MapGridSetMetatileIdAt - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0809DF0C: .4byte gUnknown_84E8A40 - thumb_func_end SetMuddySlopeMetatile - - thumb_func_start Task_MuddySlope -Task_MuddySlope: @ 0x0809DF10 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _0809DF58 - adds r4, r1, r0 - mov r5, sp - adds r5, #2 - mov r0, sp - adds r1, r5, #0 - bl PlayerGetDestCoords - ldr r0, _0809DF5C - ldr r0, [r0] - movs r1, #4 - ldrsb r1, [r0, r1] - lsls r1, r1, #8 - ldrb r0, [r0, #5] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - orrs r0, r1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - movs r0, #2 - ldrsh r1, [r4, r0] - mov r8, r5 - cmp r1, #0 - beq _0809DF60 - cmp r1, #1 - beq _0809DF8C - b _0809DFE0 - .align 2, 0 -_0809DF58: .4byte gUnknown_3005B68 -_0809DF5C: .4byte gUnknown_3005AEC -_0809DF60: - strh r7, [r4] - mov r0, sp - ldrh r0, [r0] - strh r0, [r4, #4] - ldrh r0, [r5] - strh r0, [r4, #6] - movs r0, #1 - strh r0, [r4, #2] - strh r1, [r4, #8] - strh r1, [r4, #0xe] - strh r1, [r4, #0x14] - strh r1, [r4, #0x1a] - b _0809DFE0 -_0809DF7A: - movs r0, #0x20 - strh r0, [r1] - mov r0, sp - ldrh r0, [r0] - strh r0, [r1, #2] - mov r2, r8 - ldrh r0, [r2] - strh r0, [r1, #4] - b _0809DFE0 -_0809DF8C: - mov r0, sp - movs r3, #4 - ldrsh r1, [r4, r3] - ldrh r2, [r0] - movs r3, #0 - ldrsh r0, [r0, r3] - cmp r1, r0 - bne _0809DFA8 - movs r0, #6 - ldrsh r1, [r4, r0] - movs r3, #0 - ldrsh r0, [r5, r3] - cmp r1, r0 - beq _0809DFE0 -_0809DFA8: - strh r2, [r4, #4] - ldrh r0, [r5] - strh r0, [r4, #6] - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsMuddySlope - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809DFE0 - movs r6, #4 - adds r1, r4, #0 - adds r1, #8 -_0809DFD0: - movs r3, #0 - ldrsh r0, [r1, r3] - cmp r0, #0 - beq _0809DF7A - adds r1, #6 - adds r6, #3 - cmp r6, #0xd - ble _0809DFD0 -_0809DFE0: - ldr r2, _0809DFFC - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0809E000 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r7, r0 - beq _0809E000 - strh r7, [r4] - ldrh r0, [r2, #4] - ldrh r1, [r2, #8] - b _0809E004 - .align 2, 0 -_0809DFFC: .4byte gUnknown_2036FD4 -_0809E000: - movs r0, #0 - movs r1, #0 -_0809E004: - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov r8, r0 - lsls r0, r1, #0x10 - asrs r7, r0, #0x10 - adds r5, r4, #0 - adds r5, #8 - adds r4, r5, #0 - movs r6, #9 -_0809E016: - movs r2, #0 - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _0809E03A - ldrh r0, [r4, #2] - mov r3, r8 - subs r0, r0, r3 - strh r0, [r4, #2] - ldrh r0, [r4, #4] - subs r0, r0, r7 - strh r0, [r4, #4] - movs r0, #2 - ldrsh r1, [r4, r0] - movs r3, #4 - ldrsh r2, [r4, r3] - adds r0, r5, #0 - bl SetMuddySlopeMetatile -_0809E03A: - adds r4, #6 - adds r5, #6 - subs r6, #3 - cmp r6, #0 - bge _0809E016 - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end Task_MuddySlope - - thumb_func_start InitTimeBasedEvents -InitTimeBasedEvents: @ 0x0809E050 - push {lr} - ldr r0, _0809E078 - bl FlagSet - bl RtcCalcLocalTime - ldr r0, _0809E07C - ldr r2, [r0] - adds r2, #0xa0 - ldr r3, _0809E080 - ldr r0, [r3] - ldr r1, [r3, #4] - str r0, [r2] - str r1, [r2, #4] - ldr r0, _0809E084 - ldrh r1, [r3] - bl VarSet - pop {r0} - bx r0 - .align 2, 0 -_0809E078: .4byte 0x00000895 -_0809E07C: .4byte gUnknown_3005AF0 -_0809E080: .4byte gUnknown_3005A50 -_0809E084: .4byte 0x00004040 - thumb_func_end InitTimeBasedEvents - - thumb_func_start DoTimeBasedEvents -DoTimeBasedEvents: @ 0x0809E088 - push {r4, lr} - ldr r0, _0809E0B8 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809E0B2 - bl sub_0813B9F8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809E0B2 - bl RtcCalcLocalTime - ldr r4, _0809E0BC - adds r0, r4, #0 - bl UpdatePerDay - adds r0, r4, #0 - bl UpdatePerMinute -_0809E0B2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809E0B8: .4byte 0x00000895 -_0809E0BC: .4byte gUnknown_3005A50 - thumb_func_end DoTimeBasedEvents - - thumb_func_start UpdatePerDay -UpdatePerDay: @ 0x0809E0C0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r0, _0809E12C - bl GetVarPointer - adds r6, r0, #0 - ldrh r0, [r6] - movs r2, #0 - ldrsh r1, [r5, r2] - cmp r0, r1 - beq _0809E126 - cmp r0, r1 - bgt _0809E126 - ldrh r4, [r5] - subs r4, r4, r0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - bl ClearDailyFlags - adds r0, r4, #0 - bl UpdateDewfordTrendPerDay - adds r0, r4, #0 - bl UpdateTVShowsPerDay - adds r0, r4, #0 - bl UpdateWeatherPerDay - adds r0, r4, #0 - bl UpdatePartyPokerusTime - adds r0, r4, #0 - bl UpdateMirageRnd - adds r0, r4, #0 - bl UpdateBirchState - adds r0, r4, #0 - bl sub_08139F30 - adds r0, r4, #0 - bl UpdateFrontierGambler - adds r0, r4, #0 - bl sub_081394CC - adds r0, r4, #0 - bl SetRandomLotteryNumber - ldrh r0, [r5] - strh r0, [r6] -_0809E126: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0809E12C: .4byte 0x00004040 - thumb_func_end UpdatePerDay - - thumb_func_start UpdatePerMinute -UpdatePerMinute: @ 0x0809E130 - push {r4, r5, r6, lr} - sub sp, #8 - adds r5, r0, #0 - mov r4, sp - ldr r6, _0809E188 - ldr r1, [r6] - adds r1, #0xa0 - mov r0, sp - adds r2, r5, #0 - bl CalcTimeDifference - mov r0, sp - movs r2, #0 - ldrsh r1, [r0, r2] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r1, r0, #4 - subs r1, r1, r0 - lsls r1, r1, #5 - movs r2, #2 - ldrsb r2, [r4, r2] - lsls r0, r2, #4 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r1, r1, r0 - movs r0, #3 - ldrsb r0, [r4, r0] - adds r0, r1, r0 - cmp r0, #0 - beq _0809E180 - cmp r0, #0 - blt _0809E180 - bl BerryTreeTimeUpdate - ldr r2, [r6] - adds r2, #0xa0 - ldr r0, [r5] - ldr r1, [r5, #4] - str r0, [r2] - str r1, [r2, #4] -_0809E180: - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0809E188: .4byte gUnknown_3005AF0 - thumb_func_end UpdatePerMinute - - thumb_func_start ReturnFromStartWallClock -ReturnFromStartWallClock: @ 0x0809E18C - push {lr} - bl InitTimeBasedEvents - ldr r0, _0809E19C - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0809E19C: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic - thumb_func_end ReturnFromStartWallClock - - thumb_func_start sub_0809E1A0 -sub_0809E1A0: @ 0x0809E1A0 - push {lr} - ldr r0, _0809E1B4 - bl SetMainCallback2 - ldr r1, _0809E1B8 - ldr r0, _0809E1BC - str r0, [r1, #8] - pop {r0} - bx r0 - .align 2, 0 -_0809E1B4: .4byte CB2_StartWallClock -_0809E1B8: .4byte gUnknown_3002360 -_0809E1BC: .4byte ReturnFromStartWallClock - thumb_func_end sub_0809E1A0 - - thumb_func_start SpriteCB_ResetRtcCursor0 -SpriteCB_ResetRtcCursor0: @ 0x0809E1C0 - push {lr} - adds r3, r0, #0 - ldr r2, _0809E1F0 - movs r0, #0x2e - ldrsh r1, [r3, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r2, #0xc - ldrsh r1, [r0, r2] - movs r2, #0x30 - ldrsh r0, [r3, r2] - cmp r1, r0 - beq _0809E2D6 - strh r1, [r3, #0x30] - subs r0, r1, #1 - cmp r0, #5 - bhi _0809E2D6 - lsls r0, r0, #2 - ldr r1, _0809E1F4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809E1F0: .4byte gUnknown_3005B60 -_0809E1F4: .4byte _0809E1F8 -_0809E1F8: @ jump table - .4byte _0809E210 @ case 0 - .4byte _0809E234 @ case 1 - .4byte _0809E258 @ case 2 - .4byte _0809E27C @ case 3 - .4byte _0809E2A6 @ case 4 - .4byte _0809E2D0 @ case 5 -_0809E210: - adds r2, r3, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - adds r1, r3, #0 - adds r1, #0x2a - movs r0, #1 - strb r0, [r1] - subs r2, #0x12 - ldrb r1, [r2] - subs r0, #0x41 - ands r0, r1 - strb r0, [r2] - movs r0, #0x40 - b _0809E29E -_0809E234: - adds r2, r3, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - adds r1, r3, #0 - adds r1, #0x2a - movs r0, #1 - strb r0, [r1] - subs r2, #0x12 - ldrb r1, [r2] - subs r0, #0x41 - ands r0, r1 - strb r0, [r2] - movs r0, #0x60 - b _0809E29E -_0809E258: - adds r2, r3, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - adds r1, r3, #0 - adds r1, #0x2a - movs r0, #1 - strb r0, [r1] - subs r2, #0x12 - ldrb r1, [r2] - subs r0, #0x41 - ands r0, r1 - strb r0, [r2] - movs r0, #0x78 - b _0809E29E -_0809E27C: - adds r2, r3, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - adds r1, r3, #0 - adds r1, #0x2a - movs r0, #1 - strb r0, [r1] - subs r2, #0x12 - ldrb r1, [r2] - subs r0, #0x41 - ands r0, r1 - strb r0, [r2] - movs r0, #0x90 -_0809E29E: - strh r0, [r3, #0x20] - movs r0, #0x44 - strh r0, [r3, #0x22] - b _0809E2D6 -_0809E2A6: - adds r2, r3, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - adds r1, r3, #0 - adds r1, #0x2a - movs r0, #2 - strb r0, [r1] - subs r2, #0x12 - ldrb r1, [r2] - subs r0, #0x42 - ands r0, r1 - strb r0, [r2] - movs r0, #0x9b - strh r0, [r3, #0x20] - movs r0, #0x50 - strh r0, [r3, #0x22] - b _0809E2D6 -_0809E2D0: - adds r0, r3, #0 - bl DestroySprite -_0809E2D6: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SpriteCB_ResetRtcCursor0 - - thumb_func_start SpriteCB_ResetRtcCursor1 -SpriteCB_ResetRtcCursor1: @ 0x0809E2DC - push {lr} - adds r3, r0, #0 - ldr r2, _0809E30C - movs r0, #0x2e - ldrsh r1, [r3, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r2, #0xc - ldrsh r1, [r0, r2] - movs r2, #0x30 - ldrsh r0, [r3, r2] - cmp r1, r0 - beq _0809E3D6 - strh r1, [r3, #0x30] - subs r0, r1, #1 - cmp r0, #5 - bhi _0809E3D6 - lsls r0, r0, #2 - ldr r1, _0809E310 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809E30C: .4byte gUnknown_3005B60 -_0809E310: .4byte _0809E314 -_0809E314: @ jump table - .4byte _0809E32C @ case 0 - .4byte _0809E350 @ case 1 - .4byte _0809E374 @ case 2 - .4byte _0809E398 @ case 3 - .4byte _0809E3C2 @ case 4 - .4byte _0809E3D0 @ case 5 -_0809E32C: - adds r2, r3, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - adds r1, r3, #0 - adds r1, #0x2a - movs r0, #0 - strb r0, [r1] - subs r2, #0x12 - ldrb r1, [r2] - subs r0, #0x40 - ands r0, r1 - strb r0, [r2] - movs r0, #0x40 - b _0809E3BA -_0809E350: - adds r2, r3, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - adds r1, r3, #0 - adds r1, #0x2a - movs r0, #0 - strb r0, [r1] - subs r2, #0x12 - ldrb r1, [r2] - subs r0, #0x40 - ands r0, r1 - strb r0, [r2] - movs r0, #0x60 - b _0809E3BA -_0809E374: - adds r2, r3, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - adds r1, r3, #0 - adds r1, #0x2a - movs r0, #0 - strb r0, [r1] - subs r2, #0x12 - ldrb r1, [r2] - subs r0, #0x40 - ands r0, r1 - strb r0, [r2] - movs r0, #0x78 - b _0809E3BA -_0809E398: - adds r2, r3, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - adds r1, r3, #0 - adds r1, #0x2a - movs r0, #0 - strb r0, [r1] - subs r2, #0x12 - ldrb r1, [r2] - subs r0, #0x40 - ands r0, r1 - strb r0, [r2] - movs r0, #0x90 -_0809E3BA: - strh r0, [r3, #0x20] - movs r0, #0x5c - strh r0, [r3, #0x22] - b _0809E3D6 -_0809E3C2: - adds r0, r3, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - b _0809E3D6 -_0809E3D0: - adds r0, r3, #0 - bl DestroySprite -_0809E3D6: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SpriteCB_ResetRtcCursor1 - - thumb_func_start CreateCursor -CreateCursor: @ 0x0809E3DC - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _0809E44C - bl LoadSpritePalette - ldr r0, _0809E450 - mov r8, r0 - movs r1, #0x40 - movs r2, #0x44 - movs r3, #0 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r6, _0809E454 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, r6, #0 - adds r4, #0x1c - adds r2, r0, r4 - ldr r1, _0809E458 - str r1, [r2] - adds r0, r0, r6 - strh r5, [r0, #0x2e] - ldr r1, _0809E45C - strh r1, [r0, #0x30] - mov r0, r8 - movs r1, #0x40 - movs r2, #0x44 - movs r3, #0 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, r0, r4 - ldr r1, _0809E460 - str r1, [r4] - adds r0, r0, r6 - strh r5, [r0, #0x2e] - movs r1, #1 - rsbs r1, r1, #0 - strh r1, [r0, #0x30] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0809E44C: .4byte gUnknown_84E8B14 -_0809E450: .4byte gUnknown_84E8B40 -_0809E454: .4byte gUnknown_20205AC -_0809E458: .4byte SpriteCB_ResetRtcCursor0 -_0809E45C: .4byte 0x0000FFFF -_0809E460: .4byte SpriteCB_ResetRtcCursor1 - thumb_func_end CreateCursor - - thumb_func_start sub_0809E464 -sub_0809E464: @ 0x0809E464 - push {lr} - ldr r0, _0809E474 - ldrh r0, [r0, #4] - bl FreeSpritePaletteByTag - pop {r0} - bx r0 - .align 2, 0 -_0809E474: .4byte gUnknown_84E8B14 - thumb_func_end sub_0809E464 - - thumb_func_start HideChooseTimeWindow -HideChooseTimeWindow: @ 0x0809E478 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #0 - bl sub_08198134 - adds r0, r4, #0 - bl RemoveWindow - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end HideChooseTimeWindow - - thumb_func_start PrintTime -PrintTime: @ 0x0809E49C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - mov sl, r0 - adds r0, r1, #0 - mov sb, r2 - adds r1, r3, #0 - ldr r5, [sp, #0x30] - ldr r6, [sp, #0x34] - ldr r2, [sp, #0x38] - mov r8, r2 - mov r2, sl - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sl, r2 - lsls r3, r0, #0x18 - lsrs r3, r3, #0x18 - str r3, [sp, #0xc] - mov r0, sb - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov r2, r8 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r8, r2 - ldr r7, _0809E57C - ldr r4, _0809E580 - adds r0, r4, #0 - movs r2, #1 - movs r3, #4 - bl sub_080089D8 - adds r0, r7, #0 - adds r1, r4, #0 - bl StringCopy - adds r7, r0, #0 - ldr r1, _0809E584 - bl StringCopy - adds r7, r0, #0 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - adds r0, r7, #0 - adds r1, r4, #0 - bl StringCopy - adds r7, r0, #0 - ldr r5, _0809E588 - adds r1, r5, #0 - bl StringCopy - adds r7, r0, #0 - adds r0, r4, #0 - adds r1, r6, #0 - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - adds r0, r7, #0 - adds r1, r4, #0 - bl StringCopy - adds r7, r0, #0 - adds r1, r5, #0 - bl StringCopy - adds r7, r0, #0 - adds r0, r4, #0 - mov r1, r8 - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - adds r0, r7, #0 - adds r1, r4, #0 - bl StringCopy - ldr r2, _0809E57C - mov r0, sb - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - mov r0, sl - movs r1, #1 - ldr r3, [sp, #0xc] - bl AddTextPrinterParameterized - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0809E57C: .4byte gUnknown_2021C7C -_0809E580: .4byte gUnknown_2021C40 -_0809E584: .4byte gUnknown_84E8A6C -_0809E588: .4byte gUnknown_84E8A6F - thumb_func_end PrintTime - - thumb_func_start ShowChooseTimeWindow -ShowChooseTimeWindow: @ 0x0809E58C - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #0xc - adds r4, r0, #0 - mov sb, r1 - adds r5, r2, #0 - adds r6, r3, #0 - ldr r0, [sp, #0x24] - mov r8, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r0, sb - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov r0, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r2, #0x85 - lsls r2, r2, #2 - adds r0, r4, #0 - movs r1, #0 - movs r3, #0xe - bl DrawStdFrameWithCustomTileAndPalette - str r5, [sp] - str r6, [sp, #4] - mov r0, r8 - str r0, [sp, #8] - adds r0, r4, #0 - movs r1, #0 - movs r2, #2 - mov r3, sb - bl PrintTime - ldr r2, _0809E60C - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - adds r0, r4, #0 - movs r1, #1 - movs r3, #0x80 - bl AddTextPrinterParameterized - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - add sp, #0xc - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0809E60C: .4byte gUnknown_84E8A71 - thumb_func_end ShowChooseTimeWindow - - thumb_func_start MoveTimeUpDown -MoveTimeUpDown: @ 0x0809E610 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - adds r1, r3, #0 - movs r0, #0x80 - ands r0, r3 - cmp r0, #0 - beq _0809E62A - ldrh r0, [r4] - subs r0, #1 - b _0809E644 -_0809E62A: - movs r0, #0x40 - ands r0, r3 - cmp r0, #0 - beq _0809E638 - ldrh r0, [r4] - adds r0, #1 - b _0809E662 -_0809E638: - movs r0, #0x20 - ands r0, r3 - cmp r0, #0 - beq _0809E652 - ldrh r0, [r4] - subs r0, #0xa -_0809E644: - strh r0, [r4] - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, r5 - bge _0809E66E - strh r2, [r4] - b _0809E66E -_0809E652: - movs r0, #0x10 - ands r1, r0 - cmp r1, #0 - bne _0809E65E - movs r0, #0 - b _0809E670 -_0809E65E: - ldrh r0, [r4] - adds r0, #0xa -_0809E662: - strh r0, [r4] - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, r2 - ble _0809E66E - strh r5, [r4] -_0809E66E: - movs r0, #1 -_0809E670: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MoveTimeUpDown - - thumb_func_start Task_ResetRtc_3 -Task_ResetRtc_3: @ 0x0809E678 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0809E68C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r0, #1 - strh r0, [r1, #8] - bx lr - .align 2, 0 -_0809E68C: .4byte gUnknown_3005B60 - thumb_func_end Task_ResetRtc_3 - - thumb_func_start Task_ResetRtc_2 -Task_ResetRtc_2: @ 0x0809E690 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r5, _0809E6B8 - adds r0, r4, r5 - ldrb r0, [r0, #0x10] - bl HideChooseTimeWindow - bl sub_0809E464 - subs r5, #8 - adds r4, r4, r5 - ldr r0, _0809E6BC - str r0, [r4] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0809E6B8: .4byte gUnknown_3005B68 -_0809E6BC: .4byte Task_ResetRtc_3 - thumb_func_end Task_ResetRtc_2 - - thumb_func_start Task_ResetRtc_1 -Task_ResetRtc_1: @ 0x0809E6C0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r7, r0, #3 - ldr r0, _0809E704 - mov r8, r0 - adds r5, r7, r0 - ldrb r4, [r5, #4] - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - ldr r1, _0809E708 - adds r2, r0, r1 - ldr r1, _0809E70C - ldrh r3, [r1, #0x2e] - movs r0, #2 - ands r0, r3 - mov ip, r1 - cmp r0, #0 - beq _0809E714 - mov r0, r8 - subs r0, #8 - adds r0, r7, r0 - ldr r1, _0809E710 - str r1, [r0] - movs r0, #0 - strh r0, [r5, #2] - movs r0, #6 - b _0809E734 - .align 2, 0 -_0809E704: .4byte gUnknown_3005B68 -_0809E708: .4byte gUnknown_84E8A6C -_0809E70C: .4byte gUnknown_3002360 -_0809E710: .4byte Task_ResetRtc_2 -_0809E714: - movs r0, #0x10 - ands r0, r3 - cmp r0, #0 - beq _0809E722 - ldrb r0, [r2, #7] - cmp r0, #0 - bne _0809E734 -_0809E722: - mov r3, ip - ldrh r1, [r3, #0x2e] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0809E73E - ldrb r0, [r2, #6] - cmp r0, #0 - beq _0809E73E -_0809E734: - strh r0, [r5, #4] - movs r0, #5 - bl sub_080A306C - b _0809E7CC -_0809E73E: - cmp r4, #5 - bne _0809E78C - mov r0, ip - ldrh r1, [r0, #0x2e] - movs r4, #1 - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - beq _0809E7CC - ldr r1, _0809E780 - ldrh r0, [r5, #6] - strh r0, [r1] - ldrh r0, [r5, #8] - strb r0, [r1, #2] - ldrh r0, [r5, #0xa] - strb r0, [r1, #3] - ldrh r0, [r5, #0xc] - strb r0, [r1, #4] - movs r0, #5 - bl sub_080A306C - ldr r1, _0809E784 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0809E788 - str r1, [r0] - strh r4, [r5, #2] - movs r0, #6 - strh r0, [r5, #4] - b _0809E7CC - .align 2, 0 -_0809E780: .4byte gUnknown_3005A50 -_0809E784: .4byte gUnknown_3005B60 -_0809E788: .4byte Task_ResetRtc_2 -_0809E78C: - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r5, r0 - ldrh r1, [r2, #2] - ldrh r2, [r2, #4] - mov r3, ip - ldrh r4, [r3, #0x30] - movs r3, #0xc0 - ands r3, r4 - bl MoveTimeUpDown - cmp r0, #0 - beq _0809E7CC - movs r0, #5 - bl sub_080A306C - ldrb r0, [r5, #0x10] - ldrh r3, [r5, #6] - ldrb r1, [r5, #8] - str r1, [sp] - ldrb r1, [r5, #0xa] - str r1, [sp, #4] - ldrb r1, [r5, #0xc] - str r1, [sp, #8] - movs r1, #0 - movs r2, #2 - bl PrintTime - ldrb r0, [r5, #0x10] - movs r1, #2 - bl CopyWindowToVram -_0809E7CC: - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end Task_ResetRtc_1 - - thumb_func_start Task_ResetRtc_0 -Task_ResetRtc_0: @ 0x0809E7D8 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #4 - mov r8, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r6, r0, #2 - add r6, r8 - lsls r6, r6, #3 - ldr r0, _0809E850 - mov sb, r0 - adds r5, r6, r0 - movs r0, #0 - strh r0, [r5] - ldr r1, _0809E854 - ldrh r0, [r1] - strh r0, [r5, #6] - movs r0, #2 - ldrsb r0, [r1, r0] - strh r0, [r5, #8] - movs r0, #3 - ldrsb r0, [r1, r0] - strh r0, [r5, #0xa] - movs r0, #4 - ldrsb r0, [r1, r0] - strh r0, [r5, #0xc] - ldr r0, _0809E858 - bl AddWindow - strh r0, [r5, #0x10] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r5, #6] - ldrb r2, [r5, #8] - ldrb r3, [r5, #0xa] - ldrb r4, [r5, #0xc] - str r4, [sp] - bl ShowChooseTimeWindow - mov r0, r8 - bl CreateCursor - movs r0, #2 - strh r0, [r5, #4] - movs r0, #8 - rsbs r0, r0, #0 - add sb, r0 - add r6, sb - ldr r0, _0809E85C - str r0, [r6] - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0809E850: .4byte gUnknown_3005B68 -_0809E854: .4byte gUnknown_3005A50 -_0809E858: .4byte gUnknown_84E8A64 -_0809E85C: .4byte Task_ResetRtc_1 - thumb_func_end Task_ResetRtc_0 - - thumb_func_start CB2_InitResetRtcScreen -CB2_InitResetRtcScreen: @ 0x0809E860 - push {r4, r5, r6, r7, lr} - sub sp, #4 - movs r0, #0 - movs r1, #0 - bl SetGpuReg - movs r0, #0 - bl SetVBlankCallback - movs r2, #0xa0 - lsls r2, r2, #0x13 - mov r1, sp - movs r0, #0 - strh r0, [r1] - ldr r1, _0809E908 - mov r0, sp - str r0, [r1] - str r2, [r1, #4] - ldr r0, _0809E90C - str r0, [r1, #8] - ldr r0, [r1, #8] - movs r2, #0xc0 - lsls r2, r2, #0x13 - movs r3, #0xc0 - lsls r3, r3, #9 - mov r4, sp - movs r6, #0 - movs r5, #0x80 - lsls r5, r5, #5 - ldr r7, _0809E910 - movs r0, #0x81 - lsls r0, r0, #0x18 - mov ip, r0 -_0809E8A2: - strh r6, [r4] - mov r0, sp - str r0, [r1] - str r2, [r1, #4] - str r7, [r1, #8] - ldr r0, [r1, #8] - adds r2, r2, r5 - subs r3, r3, r5 - cmp r3, r5 - bhi _0809E8A2 - strh r6, [r4] - mov r0, sp - str r0, [r1] - str r2, [r1, #4] - lsrs r0, r3, #1 - mov r2, ip - orrs r0, r2 - str r0, [r1, #8] - ldr r0, [r1, #8] - movs r0, #0 - movs r1, #0x80 - bl ResetOamRange - bl LoadOam - bl ScanlineEffect_Stop - bl ScanlineEffect_Clear - bl ResetSpriteData - bl ResetTasks - bl ResetPaletteFade - bl sub_0809E920 - ldr r0, _0809E914 - bl SetVBlankCallback - ldr r0, _0809E918 - bl SetMainCallback2 - ldr r0, _0809E91C - movs r1, #0x50 - bl CreateTask - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0809E908: .4byte 0x040000D4 -_0809E90C: .4byte 0x81000200 -_0809E910: .4byte 0x81000800 -_0809E914: .4byte sub_0809E984 -_0809E918: .4byte CB2_ResetRtcScreen -_0809E91C: .4byte Task_ResetRtcScreen - thumb_func_end CB2_InitResetRtcScreen - - thumb_func_start sub_0809E920 -sub_0809E920: @ 0x0809E920 - push {lr} - bl sub_08199640 - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _0809E960 - movs r0, #0 - movs r2, #1 - bl InitBgsFromTemplates - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - ldr r0, _0809E964 - bl InitWindows - bl sub_08004480 - bl sub_08196F98 - pop {r0} - bx r0 - .align 2, 0 -_0809E960: .4byte gUnknown_84E8A48 -_0809E964: .4byte gUnknown_84E8A4C - thumb_func_end sub_0809E920 - - thumb_func_start CB2_ResetRtcScreen -CB2_ResetRtcScreen: @ 0x0809E968 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CB2_ResetRtcScreen - - thumb_func_start sub_0809E984 -sub_0809E984: @ 0x0809E984 - push {lr} - bl ProcessSpriteCopyRequests - bl LoadOam - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0809E984 - - thumb_func_start ShowMessage -ShowMessage: @ 0x0809E998 - push {r4, lr} - sub sp, #0xc - adds r4, r0, #0 - movs r2, #0x80 - lsls r2, r2, #2 - movs r0, #1 - movs r1, #0 - movs r3, #0xf - bl DrawDialogFrameWithCustomTileAndPalette - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - movs r0, #1 - movs r1, #1 - adds r2, r4, #0 - movs r3, #0 - bl AddTextPrinterParameterized - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - thumb_func_end ShowMessage - - thumb_func_start Task_ShowResetRtcPrompt -Task_ShowResetRtcPrompt: @ 0x0809E9D0 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - ldr r1, _0809E9F0 - adds r6, r0, r1 - movs r0, #0 - ldrsh r5, [r6, r0] - cmp r5, #0 - beq _0809E9F4 - cmp r5, #1 - beq _0809EA8A - b _0809EAD0 - .align 2, 0 -_0809E9F0: .4byte gUnknown_3005B68 -_0809E9F4: - movs r2, #0x85 - lsls r2, r2, #2 - movs r0, #0 - movs r1, #0 - movs r3, #0xe - bl DrawStdFrameWithCustomTileAndPalette - ldr r2, _0809EAA4 - movs r0, #2 - str r0, [sp] - movs r4, #0xff - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - ldr r1, _0809EAA8 - ldrh r3, [r1] - ldrb r0, [r1, #2] - str r0, [sp] - ldrb r0, [r1, #3] - str r0, [sp, #4] - ldrb r0, [r1, #4] - str r0, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #0x12 - bl PrintTime - ldr r2, _0809EAAC - movs r0, #0x22 - str r0, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - ldr r0, _0809EAB0 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0xa0 - ldrh r3, [r0] - adds r0, #2 - ldrb r0, [r0] - str r0, [sp] - adds r0, r1, #0 - adds r0, #0xa3 - ldrb r0, [r0] - str r0, [sp, #4] - adds r0, r1, #0 - adds r0, #0xa4 - ldrb r0, [r0] - str r0, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #0x32 - bl PrintTime - ldr r0, _0809EAB4 - bl ShowMessage - movs r0, #0 - movs r1, #2 - bl CopyWindowToVram - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - ldrh r0, [r6] - adds r0, #1 - strh r0, [r6] -_0809EA8A: - ldr r0, _0809EAB8 - ldrh r1, [r0, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0809EABC - adds r0, r7, #0 - bl DestroyTask - bl DoSoftReset - b _0809EAD0 - .align 2, 0 -_0809EAA4: .4byte gUnknown_85CBEE9 -_0809EAA8: .4byte gUnknown_3005A50 -_0809EAAC: .4byte gUnknown_85CBEF9 -_0809EAB0: .4byte gUnknown_3005AF0 -_0809EAB4: .4byte gUnknown_85CBECB -_0809EAB8: .4byte gUnknown_3002360 -_0809EABC: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0809EAD0 - movs r0, #5 - bl sub_080A306C - adds r0, r7, #0 - bl DestroyTask -_0809EAD0: - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end Task_ShowResetRtcPrompt - - thumb_func_start Task_ResetRtcScreen -Task_ResetRtcScreen: @ 0x0809EAD8 - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _0809EB00 - adds r5, r0, r1 - movs r1, #0 - ldrsh r0, [r5, r1] - cmp r0, #6 - bls _0809EAF4 - b _0809ECDC -_0809EAF4: - lsls r0, r0, #2 - ldr r1, _0809EB04 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809EB00: .4byte gUnknown_3005B68 -_0809EB04: .4byte _0809EB08 -_0809EB08: @ jump table - .4byte _0809EB24 @ case 0 - .4byte _0809EB40 @ case 1 - .4byte _0809EB8C @ case 2 - .4byte _0809EBE8 @ case 3 - .4byte _0809EC70 @ case 4 - .4byte _0809ECA0 @ case 5 - .4byte _0809ECC2 @ case 6 -_0809EB24: - movs r0, #1 - rsbs r0, r0, #0 - ldr r1, _0809EB3C - str r1, [sp] - movs r1, #1 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - movs r0, #1 - strh r0, [r5] - b _0809ECDC - .align 2, 0 -_0809EB3C: .4byte 0x0000FFFF -_0809EB40: - ldr r0, _0809EB68 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809EB4E - b _0809ECDC -_0809EB4E: - ldr r0, _0809EB6C - ldrh r0, [r0] - cmp r0, #0 - beq _0809EB5A - cmp r0, #2 - bne _0809EB74 -_0809EB5A: - ldr r0, _0809EB70 - bl ShowMessage - movs r0, #5 - strh r0, [r5] - b _0809ECDC - .align 2, 0 -_0809EB68: .4byte gUnknown_2037C74 -_0809EB6C: .4byte gUnknown_3005F50 -_0809EB70: .4byte gUnknown_85CBF69 -_0809EB74: - bl RtcCalcLocalTime - ldr r0, _0809EB88 - movs r1, #0x50 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #2] - b _0809EC0C - .align 2, 0 -_0809EB88: .4byte Task_ShowResetRtcPrompt -_0809EB8C: - ldr r2, _0809EBD4 - movs r0, #2 - ldrsh r1, [r5, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrb r0, [r0, #4] - cmp r0, #1 - bne _0809EBA2 - b _0809ECDC -_0809EBA2: - movs r0, #0 - movs r1, #0 - bl sub_08198134 - ldr r0, _0809EBD8 - bl ShowMessage - ldr r2, _0809EBDC - ldr r0, _0809EBE0 - ldr r0, [r0] - adds r0, #0xa0 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [r2] - str r1, [r2, #4] - ldr r0, _0809EBE4 - movs r1, #0x50 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #2] - movs r0, #3 - strh r0, [r5] - b _0809ECDC - .align 2, 0 -_0809EBD4: .4byte gUnknown_3005B60 -_0809EBD8: .4byte gUnknown_85CBF09 -_0809EBDC: .4byte gUnknown_3005A50 -_0809EBE0: .4byte gUnknown_3005AF0 -_0809EBE4: .4byte Task_ResetRtc_0 -_0809EBE8: - ldr r2, _0809EC14 - movs r0, #2 - ldrsh r1, [r5, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r1, r0, r2 - movs r2, #8 - ldrsh r0, [r1, r2] - cmp r0, #0 - beq _0809ECDC - movs r2, #0xa - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _0809EC18 - ldrb r0, [r5, #2] - bl DestroyTask -_0809EC0C: - movs r0, #2 - strh r0, [r5] - b _0809ECDC - .align 2, 0 -_0809EC14: .4byte gUnknown_3005B60 -_0809EC18: - ldrb r0, [r5, #2] - bl DestroyTask - bl RtcReset - ldr r4, _0809EC60 - movs r1, #0 - ldrsh r0, [r4, r1] - movs r1, #2 - ldrsb r1, [r4, r1] - movs r2, #3 - ldrsb r2, [r4, r2] - movs r3, #4 - ldrsb r3, [r4, r3] - bl RtcCalcLocalTimeOffset - ldr r0, _0809EC64 - ldr r2, [r0] - adds r2, #0xa0 - ldr r0, [r4] - ldr r1, [r4, #4] - str r0, [r2] - str r1, [r2, #4] - ldr r0, _0809EC68 - ldrh r1, [r4] - bl VarSet - bl DisableResetRTC - ldr r0, _0809EC6C - bl ShowMessage - movs r0, #4 - strh r0, [r5] - b _0809ECDC - .align 2, 0 -_0809EC60: .4byte gUnknown_3005A50 -_0809EC64: .4byte gUnknown_3005AF0 -_0809EC68: .4byte 0x00004040 -_0809EC6C: .4byte gUnknown_85CBF1C -_0809EC70: - movs r0, #0 - bl TrySavingData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809EC90 - ldr r0, _0809EC8C - bl ShowMessage - movs r0, #0x49 - bl sub_080A306C - b _0809EC9C - .align 2, 0 -_0809EC8C: .4byte gUnknown_85CBF43 -_0809EC90: - ldr r0, _0809ECE4 - bl ShowMessage - movs r0, #0x16 - bl sub_080A306C -_0809EC9C: - movs r0, #5 - strh r0, [r5] -_0809ECA0: - ldr r0, _0809ECE8 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0809ECDC - movs r0, #1 - rsbs r0, r0, #0 - ldr r1, _0809ECEC - str r1, [sp] - movs r1, #1 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - movs r0, #6 - strh r0, [r5] -_0809ECC2: - ldr r0, _0809ECF0 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0809ECDC - adds r0, r4, #0 - bl DestroyTask - bl FreeAllWindowBuffers - bl DoSoftReset -_0809ECDC: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0809ECE4: .4byte gUnknown_85CBF52 -_0809ECE8: .4byte gUnknown_3002360 -_0809ECEC: .4byte 0x0000FFFF -_0809ECF0: .4byte gUnknown_2037C74 - thumb_func_end Task_ResetRtcScreen - - thumb_func_start SetDexPokemonPokenavFlags -SetDexPokemonPokenavFlags: @ 0x0809ECF4 - push {lr} - ldr r0, _0809ED10 - bl FlagSet - movs r0, #0x86 - lsls r0, r0, #4 - bl FlagSet - ldr r0, _0809ED14 - bl FlagSet - pop {r0} - bx r0 - .align 2, 0 -_0809ED10: .4byte 0x00000861 -_0809ED14: .4byte 0x00000862 - thumb_func_end SetDexPokemonPokenavFlags - - thumb_func_start BuildStartMenuActions -BuildStartMenuActions: @ 0x0809ED18 - push {lr} - ldr r0, _0809ED30 - movs r1, #0 - strb r1, [r0] - bl IsUpdateLinkStateCBActive - cmp r0, #1 - bne _0809ED34 - bl BuildLinkModeStartMenu - b _0809ED84 - .align 2, 0 -_0809ED30: .4byte gUnknown_20372AF -_0809ED34: - bl InUnionRoom - cmp r0, #1 - bne _0809ED42 - bl BuildUnionRoomStartMenu - b _0809ED84 -_0809ED42: - bl sub_080FC910 - cmp r0, #1 - bne _0809ED50 - bl BuildSafariZoneStartMenu - b _0809ED84 -_0809ED50: - bl InBattlePike - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809ED60 - bl BuildBattlePikeStartMenu - b _0809ED84 -_0809ED60: - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809ED70 - bl BuildBattlePyramidStartMenu - b _0809ED84 -_0809ED70: - bl InMultiBattleRoom - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809ED80 - bl BuildMultiBattleRoomStartMenu - b _0809ED84 -_0809ED80: - bl BuildNormalStartMenu -_0809ED84: - pop {r0} - bx r0 - thumb_func_end BuildStartMenuActions - - thumb_func_start AddStartMenuAction -AddStartMenuAction: @ 0x0809ED88 - push {lr} - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r0, _0809ED9C - ldr r1, _0809EDA0 - bl AppendToList - pop {r0} - bx r0 - .align 2, 0 -_0809ED9C: .4byte gUnknown_20372B0 -_0809EDA0: .4byte gUnknown_20372AF - thumb_func_end AddStartMenuAction - - thumb_func_start BuildNormalStartMenu -BuildNormalStartMenu: @ 0x0809EDA4 - push {lr} - ldr r0, _0809EE08 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809EDBA - movs r0, #0 - bl AddStartMenuAction -_0809EDBA: - movs r0, #0x86 - lsls r0, r0, #4 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809EDD0 - movs r0, #1 - bl AddStartMenuAction -_0809EDD0: - movs r0, #2 - bl AddStartMenuAction - ldr r0, _0809EE0C - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809EDEA - movs r0, #3 - bl AddStartMenuAction -_0809EDEA: - movs r0, #4 - bl AddStartMenuAction - movs r0, #5 - bl AddStartMenuAction - movs r0, #6 - bl AddStartMenuAction - movs r0, #7 - bl AddStartMenuAction - pop {r0} - bx r0 - .align 2, 0 -_0809EE08: .4byte 0x00000861 -_0809EE0C: .4byte 0x00000862 - thumb_func_end BuildNormalStartMenu - - thumb_func_start BuildSafariZoneStartMenu -BuildSafariZoneStartMenu: @ 0x0809EE10 - push {lr} - movs r0, #8 - bl AddStartMenuAction - movs r0, #0 - bl AddStartMenuAction - movs r0, #1 - bl AddStartMenuAction - movs r0, #2 - bl AddStartMenuAction - movs r0, #4 - bl AddStartMenuAction - movs r0, #6 - bl AddStartMenuAction - movs r0, #7 - bl AddStartMenuAction - pop {r0} - bx r0 - thumb_func_end BuildSafariZoneStartMenu - - thumb_func_start BuildLinkModeStartMenu -BuildLinkModeStartMenu: @ 0x0809EE40 - push {lr} - movs r0, #1 - bl AddStartMenuAction - movs r0, #2 - bl AddStartMenuAction - ldr r0, _0809EE78 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809EE62 - movs r0, #3 - bl AddStartMenuAction -_0809EE62: - movs r0, #9 - bl AddStartMenuAction - movs r0, #6 - bl AddStartMenuAction - movs r0, #7 - bl AddStartMenuAction - pop {r0} - bx r0 - .align 2, 0 -_0809EE78: .4byte 0x00000862 - thumb_func_end BuildLinkModeStartMenu - - thumb_func_start BuildUnionRoomStartMenu -BuildUnionRoomStartMenu: @ 0x0809EE7C - push {lr} - movs r0, #1 - bl AddStartMenuAction - movs r0, #2 - bl AddStartMenuAction - ldr r0, _0809EEB4 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809EE9E - movs r0, #3 - bl AddStartMenuAction -_0809EE9E: - movs r0, #4 - bl AddStartMenuAction - movs r0, #6 - bl AddStartMenuAction - movs r0, #7 - bl AddStartMenuAction - pop {r0} - bx r0 - .align 2, 0 -_0809EEB4: .4byte 0x00000862 - thumb_func_end BuildUnionRoomStartMenu - - thumb_func_start BuildBattlePikeStartMenu -BuildBattlePikeStartMenu: @ 0x0809EEB8 - push {lr} - movs r0, #0 - bl AddStartMenuAction - movs r0, #1 - bl AddStartMenuAction - movs r0, #4 - bl AddStartMenuAction - movs r0, #6 - bl AddStartMenuAction - movs r0, #7 - bl AddStartMenuAction - pop {r0} - bx r0 - thumb_func_end BuildBattlePikeStartMenu - - thumb_func_start BuildBattlePyramidStartMenu -BuildBattlePyramidStartMenu: @ 0x0809EEDC - push {lr} - movs r0, #1 - bl AddStartMenuAction - movs r0, #0xc - bl AddStartMenuAction - movs r0, #4 - bl AddStartMenuAction - movs r0, #0xa - bl AddStartMenuAction - movs r0, #0xb - bl AddStartMenuAction - movs r0, #6 - bl AddStartMenuAction - movs r0, #7 - bl AddStartMenuAction - pop {r0} - bx r0 - thumb_func_end BuildBattlePyramidStartMenu - - thumb_func_start BuildMultiBattleRoomStartMenu -BuildMultiBattleRoomStartMenu: @ 0x0809EF0C - push {lr} - movs r0, #1 - bl AddStartMenuAction - movs r0, #4 - bl AddStartMenuAction - movs r0, #6 - bl AddStartMenuAction - movs r0, #7 - bl AddStartMenuAction - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BuildMultiBattleRoomStartMenu - - thumb_func_start ShowSafariBallsWindow -ShowSafariBallsWindow: @ 0x0809EF2C - push {r4, r5, lr} - sub sp, #0xc - ldr r4, _0809EF88 - ldr r0, _0809EF8C - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - bl PutWindowTilemap - ldrb r0, [r4] - movs r1, #0 - bl sub_08196FF0 - ldr r0, _0809EF90 - ldr r1, _0809EF94 - ldrb r1, [r1] - movs r2, #1 - movs r3, #2 - bl sub_080089D8 - ldr r5, _0809EF98 - ldr r1, _0809EF9C - adds r0, r5, #0 - bl StringExpandPlaceholders - ldrb r0, [r4] - movs r1, #2 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - adds r2, r5, #0 - movs r3, #0 - bl AddTextPrinterParameterized - ldrb r0, [r4] - movs r1, #2 - bl CopyWindowToVram - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0809EF88: .4byte gUnknown_20372AC -_0809EF8C: .4byte gUnknown_84E8B94 -_0809EF90: .4byte gUnknown_2021C40 -_0809EF94: .4byte gUnknown_2039D18 -_0809EF98: .4byte gUnknown_2021C7C -_0809EF9C: .4byte gUnknown_84E8B84 - thumb_func_end ShowSafariBallsWindow - - thumb_func_start ShowPyramidFloorWindow -ShowPyramidFloorWindow: @ 0x0809EFA0 - push {r4, r5, lr} - sub sp, #0xc - ldr r0, _0809EFB8 - ldr r0, [r0] - ldr r1, _0809EFBC - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #7 - bne _0809EFC8 - ldr r4, _0809EFC0 - ldr r0, _0809EFC4 - b _0809EFCC - .align 2, 0 -_0809EFB8: .4byte gUnknown_3005AF0 -_0809EFBC: .4byte 0x00000CB2 -_0809EFC0: .4byte gUnknown_20372AD -_0809EFC4: .4byte gUnknown_84E8C24 -_0809EFC8: - ldr r4, _0809F02C - ldr r0, _0809F030 -_0809EFCC: - bl AddWindow - strb r0, [r4] - ldr r4, _0809F02C - ldrb r0, [r4] - bl PutWindowTilemap - ldrb r0, [r4] - movs r1, #0 - bl sub_08196FF0 - ldr r0, _0809F034 - ldr r2, _0809F038 - ldr r1, _0809F03C - ldr r1, [r1] - ldr r3, _0809F040 - adds r1, r1, r3 - ldrh r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl StringCopy - ldr r5, _0809F044 - ldr r1, _0809F048 - adds r0, r5, #0 - bl StringExpandPlaceholders - ldrb r0, [r4] - movs r1, #2 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - adds r2, r5, #0 - movs r3, #0 - bl AddTextPrinterParameterized - ldrb r0, [r4] - movs r1, #2 - bl CopyWindowToVram - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0809F02C: .4byte gUnknown_20372AD -_0809F030: .4byte gUnknown_84E8C1C -_0809F034: .4byte gUnknown_2021C40 -_0809F038: .4byte gUnknown_84E8BFC -_0809F03C: .4byte gUnknown_3005AF0 -_0809F040: .4byte 0x00000CB2 -_0809F044: .4byte gUnknown_2021C7C -_0809F048: .4byte gUnknown_84E8B9C - thumb_func_end ShowPyramidFloorWindow - - thumb_func_start RemoveExtraStartMenuWindows -RemoveExtraStartMenuWindows: @ 0x0809F04C - push {r4, lr} - bl sub_080FC910 - cmp r0, #0 - beq _0809F06E - ldr r4, _0809F090 - ldrb r0, [r4] - movs r1, #0 - bl sub_08198134 - ldrb r0, [r4] - movs r1, #2 - bl CopyWindowToVram - ldrb r0, [r4] - bl RemoveWindow -_0809F06E: - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809F088 - ldr r4, _0809F094 - ldrb r0, [r4] - movs r1, #0 - bl sub_08198134 - ldrb r0, [r4] - bl RemoveWindow -_0809F088: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809F090: .4byte gUnknown_20372AC -_0809F094: .4byte gUnknown_20372AD - thumb_func_end RemoveExtraStartMenuWindows - - thumb_func_start PrintStartMenuActions -PrintStartMenuActions: @ 0x0809F098 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - mov r8, r0 - adds r6, r1, #0 - ldrb r2, [r0] - ldr r0, _0809F0F0 - mov sb, r0 - ldr r1, _0809F0F4 - mov sl, r1 -_0809F0B2: - ldr r0, _0809F0F8 - lsls r2, r2, #0x18 - asrs r4, r2, #0x18 - adds r5, r4, r0 - ldrb r0, [r5] - lsls r3, r0, #3 - mov r0, sb - adds r0, #4 - adds r0, r3, r0 - ldr r1, [r0] - ldr r0, _0809F0FC - adds r7, r2, #0 - cmp r1, r0 - bne _0809F100 - bl sub_0819780C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r5] - lsls r1, r1, #3 - add r1, sb - ldr r1, [r1] - lsls r3, r4, #4 - adds r3, #0xa - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - movs r2, #8 - bl PrintPlayerNameOnWindow - b _0809F130 - .align 2, 0 -_0809F0F0: .4byte gUnknown_84E8C2C -_0809F0F4: .4byte gUnknown_2021C7C -_0809F0F8: .4byte gUnknown_20372B0 -_0809F0FC: .4byte StartMenuPlayerNameCallback -_0809F100: - mov r1, sb - adds r0, r3, r1 - ldr r1, [r0] - mov r0, sl - bl StringExpandPlaceholders - bl sub_0819780C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r4, #4 - adds r1, #0xa - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - mov r2, sl - movs r3, #8 - bl AddTextPrinterParameterized -_0809F130: - movs r0, #0x80 - lsls r0, r0, #0x11 - adds r1, r7, r0 - lsrs r2, r1, #0x18 - asrs r1, r1, #0x18 - ldr r0, _0809F150 - ldrb r0, [r0] - cmp r1, r0 - bge _0809F154 - subs r6, #1 - cmp r6, #0 - bne _0809F0B2 - mov r1, r8 - strb r2, [r1] - movs r0, #0 - b _0809F15A - .align 2, 0 -_0809F150: .4byte gUnknown_20372AF -_0809F154: - mov r0, r8 - strb r2, [r0] - movs r0, #1 -_0809F15A: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end PrintStartMenuActions - - thumb_func_start InitStartMenuStep -InitStartMenuStep: @ 0x0809F16C - push {r4, lr} - sub sp, #0xc - ldr r0, _0809F188 - movs r1, #0 - ldrsb r1, [r0, r1] - adds r2, r0, #0 - cmp r1, #5 - bhi _0809F264 - lsls r0, r1, #2 - ldr r1, _0809F18C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809F188: .4byte gUnknown_20372B9 -_0809F18C: .4byte _0809F190 -_0809F190: @ jump table - .4byte _0809F1A8 @ case 0 - .4byte _0809F1B0 @ case 1 - .4byte _0809F1BC @ case 2 - .4byte _0809F1E4 @ case 3 - .4byte _0809F208 @ case 4 - .4byte _0809F224 @ case 5 -_0809F1A8: - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - b _0809F264 -_0809F1B0: - bl BuildStartMenuActions - ldr r1, _0809F1B8 - b _0809F218 - .align 2, 0 -_0809F1B8: .4byte gUnknown_20372B9 -_0809F1BC: - bl sub_08196F98 - ldr r0, _0809F1DC - ldrb r0, [r0] - bl sub_081977C8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl sub_08196FF0 - ldr r1, _0809F1E0 - movs r0, #0 - strb r0, [r1, #1] - b _0809F218 - .align 2, 0 -_0809F1DC: .4byte gUnknown_20372AF -_0809F1E0: .4byte gUnknown_20372B9 -_0809F1E4: - bl sub_080FC910 - cmp r0, #0 - beq _0809F1F0 - bl ShowSafariBallsWindow -_0809F1F0: - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809F1FE - bl ShowPyramidFloorWindow -_0809F1FE: - ldr r1, _0809F204 - b _0809F218 - .align 2, 0 -_0809F204: .4byte gUnknown_20372B9 -_0809F208: - ldr r4, _0809F220 - adds r0, r4, #0 - movs r1, #2 - bl PrintStartMenuActions - cmp r0, #0 - beq _0809F264 - subs r1, r4, #1 -_0809F218: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0809F264 - .align 2, 0 -_0809F220: .4byte gUnknown_20372BA -_0809F224: - bl sub_0819780C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x10 - str r1, [sp] - ldr r1, _0809F25C - ldrb r1, [r1] - str r1, [sp, #4] - ldr r4, _0809F260 - ldrb r1, [r4] - str r1, [sp, #8] - movs r1, #1 - movs r2, #0 - movs r3, #0xa - bl sub_081984B0 - strb r0, [r4] - bl sub_0819780C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - bl CopyWindowToVram - movs r0, #1 - b _0809F266 - .align 2, 0 -_0809F25C: .4byte gUnknown_20372AF -_0809F260: .4byte gUnknown_20372AE -_0809F264: - movs r0, #0 -_0809F266: - add sp, #0xc - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end InitStartMenuStep - - thumb_func_start InitStartMenu -InitStartMenu: @ 0x0809F270 - push {lr} - ldr r1, _0809F288 - movs r0, #0 - strb r0, [r1] - strb r0, [r1, #1] -_0809F27A: - bl InitStartMenuStep - cmp r0, #0 - beq _0809F27A - pop {r0} - bx r0 - .align 2, 0 -_0809F288: .4byte gUnknown_20372B9 - thumb_func_end InitStartMenu - - thumb_func_start StartMenuTask -StartMenuTask: @ 0x0809F28C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl InitStartMenuStep - cmp r0, #1 - bne _0809F2A0 - adds r0, r4, #0 - bl SwitchTaskToFollowupFunc -_0809F2A0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end StartMenuTask - - thumb_func_start CreateStartMenuTask -CreateStartMenuTask: @ 0x0809F2A8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r1, _0809F2D0 - movs r0, #0 - strb r0, [r1] - strb r0, [r1, #1] - ldr r4, _0809F2D4 - adds r0, r4, #0 - movs r1, #0x50 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r4, #0 - adds r2, r5, #0 - bl SetTaskFuncWithFollowupFunc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0809F2D0: .4byte gUnknown_20372B9 -_0809F2D4: .4byte StartMenuTask - thumb_func_end CreateStartMenuTask - - thumb_func_start sub_0809F2D8 -sub_0809F2D8: @ 0x0809F2D8 - push {lr} - bl InitStartMenuStep - cmp r0, #0 - beq _0809F2EA - bl sub_080AEF84 - movs r0, #1 - b _0809F2EC -_0809F2EA: - movs r0, #0 -_0809F2EC: - pop {r1} - bx r1 - thumb_func_end sub_0809F2D8 - - thumb_func_start sub_0809F2F0 -sub_0809F2F0: @ 0x0809F2F0 - ldr r1, _0809F300 - movs r0, #0 - strb r0, [r1] - strb r0, [r1, #1] - ldr r1, _0809F304 - ldr r0, _0809F308 - str r0, [r1] - bx lr - .align 2, 0 -_0809F300: .4byte gUnknown_20372B9 -_0809F304: .4byte gUnknown_3005B10 -_0809F308: .4byte sub_0809F2D8 - thumb_func_end sub_0809F2F0 - - thumb_func_start sub_0809F30C -sub_0809F30C: @ 0x0809F30C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _0809F32C - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0809F330 - cmp r0, #1 - beq _0809F354 - b _0809F36A - .align 2, 0 -_0809F32C: .4byte gUnknown_3005B60 -_0809F330: - bl InUnionRoom - cmp r0, #1 - bne _0809F33C - bl var_800D_set_xB -_0809F33C: - ldr r1, _0809F34C - ldr r0, _0809F350 - str r0, [r1] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _0809F36A - .align 2, 0 -_0809F34C: .4byte gUnknown_3005B54 -_0809F350: .4byte HandleStartMenuInput -_0809F354: - ldr r0, _0809F370 - ldr r0, [r0] - bl _call_via_r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0809F36A - adds r0, r5, #0 - bl DestroyTask -_0809F36A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0809F370: .4byte gUnknown_3005B54 - thumb_func_end sub_0809F30C - - thumb_func_start ShowStartMenu -ShowStartMenu: @ 0x0809F374 - push {lr} - bl IsUpdateLinkStateCBActive - cmp r0, #0 - bne _0809F38A - bl FreezeEventObjects - bl sub_0808B1C8 - bl sub_0808B658 -_0809F38A: - ldr r0, _0809F398 - bl CreateStartMenuTask - bl sub_080987DC - pop {r0} - bx r0 - .align 2, 0 -_0809F398: .4byte sub_0809F30C - thumb_func_end ShowStartMenu - - thumb_func_start HandleStartMenuInput -HandleStartMenuInput: @ 0x0809F39C - push {r4, lr} - ldr r4, _0809F448 - ldrh r1, [r4, #0x2e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0809F3BC - movs r0, #5 - bl sub_080A306C - movs r0, #1 - rsbs r0, r0, #0 - bl Menu_MoveCursor - ldr r1, _0809F44C - strb r0, [r1] -_0809F3BC: - ldrh r1, [r4, #0x2e] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809F3D6 - movs r0, #5 - bl sub_080A306C - movs r0, #1 - bl Menu_MoveCursor - ldr r1, _0809F44C - strb r0, [r1] -_0809F3D6: - ldrh r1, [r4, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0809F470 - movs r0, #5 - bl sub_080A306C - ldr r1, _0809F450 - ldr r2, _0809F454 - ldr r0, _0809F44C - ldrb r0, [r0] - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #3 - adds r1, #4 - adds r0, r0, r1 - ldr r1, [r0] - ldr r0, _0809F458 - cmp r1, r0 - bne _0809F40C - movs r0, #0 - bl GetNationalPokedexCount - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0809F478 -_0809F40C: - ldr r3, _0809F45C - ldr r1, _0809F450 - ldr r2, _0809F454 - ldr r0, _0809F44C - ldrb r0, [r0] - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #3 - adds r1, #4 - adds r0, r0, r1 - ldr r1, [r0] - str r1, [r3] - ldr r0, _0809F460 - cmp r1, r0 - beq _0809F478 - ldr r0, _0809F464 - cmp r1, r0 - beq _0809F478 - ldr r0, _0809F468 - cmp r1, r0 - beq _0809F478 - ldr r0, _0809F46C - cmp r1, r0 - beq _0809F478 - movs r0, #1 - movs r1, #0 - bl FadeScreen - b _0809F478 - .align 2, 0 -_0809F448: .4byte gUnknown_3002360 -_0809F44C: .4byte gUnknown_20372AE -_0809F450: .4byte gUnknown_84E8C2C -_0809F454: .4byte gUnknown_20372B0 -_0809F458: .4byte StartMenuPokedexCallback -_0809F45C: .4byte gUnknown_3005B54 -_0809F460: .4byte StartMenuSaveCallback -_0809F464: .4byte StartMenuExitCallback -_0809F468: .4byte StartMenuSafariZoneRetireCallback -_0809F46C: .4byte StartMenuBattlePyramidRetireCallback -_0809F470: - movs r0, #0xa - ands r0, r1 - cmp r0, #0 - bne _0809F47C -_0809F478: - movs r0, #0 - b _0809F486 -_0809F47C: - bl RemoveExtraStartMenuWindows - bl HideStartMenu - movs r0, #1 -_0809F486: - pop {r4} - pop {r1} - bx r1 - thumb_func_end HandleStartMenuInput - - thumb_func_start StartMenuPokedexCallback -StartMenuPokedexCallback: @ 0x0809F48C - push {lr} - ldr r0, _0809F4A0 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809F4A4 - movs r0, #0 - b _0809F4BE - .align 2, 0 -_0809F4A0: .4byte gUnknown_2037C74 -_0809F4A4: - movs r0, #0x29 - bl IncrementGameStat - bl PlayRainStoppingSoundEffect - bl RemoveExtraStartMenuWindows - bl CleanupOverworldWindowsAndTilemaps - ldr r0, _0809F4C4 - bl SetMainCallback2 - movs r0, #1 -_0809F4BE: - pop {r1} - bx r1 - .align 2, 0 -_0809F4C4: .4byte CB2_Pokedex - thumb_func_end StartMenuPokedexCallback - - thumb_func_start StartMenuPokemonCallback -StartMenuPokemonCallback: @ 0x0809F4C8 - push {lr} - ldr r0, _0809F4DC - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809F4E0 - movs r0, #0 - b _0809F4F4 - .align 2, 0 -_0809F4DC: .4byte gUnknown_2037C74 -_0809F4E0: - bl PlayRainStoppingSoundEffect - bl RemoveExtraStartMenuWindows - bl CleanupOverworldWindowsAndTilemaps - ldr r0, _0809F4F8 - bl SetMainCallback2 - movs r0, #1 -_0809F4F4: - pop {r1} - bx r1 - .align 2, 0 -_0809F4F8: .4byte CB2_PartyMenuFromStartMenu - thumb_func_end StartMenuPokemonCallback - - thumb_func_start sub_0809F4FC -sub_0809F4FC: @ 0x0809F4FC - push {lr} - ldr r0, _0809F510 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809F514 - movs r0, #0 - b _0809F528 - .align 2, 0 -_0809F510: .4byte gUnknown_2037C74 -_0809F514: - bl PlayRainStoppingSoundEffect - bl RemoveExtraStartMenuWindows - bl CleanupOverworldWindowsAndTilemaps - ldr r0, _0809F52C - bl SetMainCallback2 - movs r0, #1 -_0809F528: - pop {r1} - bx r1 - .align 2, 0 -_0809F52C: .4byte CB2_BagMenuFromStartMenu - thumb_func_end sub_0809F4FC - - thumb_func_start sub_0809F530 -sub_0809F530: @ 0x0809F530 - push {lr} - ldr r0, _0809F544 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809F548 - movs r0, #0 - b _0809F55C - .align 2, 0 -_0809F544: .4byte gUnknown_2037C74 -_0809F548: - bl PlayRainStoppingSoundEffect - bl RemoveExtraStartMenuWindows - bl CleanupOverworldWindowsAndTilemaps - ldr r0, _0809F560 - bl SetMainCallback2 - movs r0, #1 -_0809F55C: - pop {r1} - bx r1 - .align 2, 0 -_0809F560: .4byte sub_081C6A10 - thumb_func_end sub_0809F530 - - thumb_func_start StartMenuPlayerNameCallback -StartMenuPlayerNameCallback: @ 0x0809F564 - push {lr} - ldr r0, _0809F598 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0809F5CC - bl PlayRainStoppingSoundEffect - bl RemoveExtraStartMenuWindows - bl CleanupOverworldWindowsAndTilemaps - bl IsUpdateLinkStateCBActive - cmp r0, #0 - bne _0809F58E - bl InUnionRoom - cmp r0, #0 - beq _0809F5A0 -_0809F58E: - ldr r0, _0809F59C - bl sub_080C4710 - b _0809F5C2 - .align 2, 0 -_0809F598: .4byte gUnknown_2037C74 -_0809F59C: .4byte CB2_ReturnToFieldWithOpenMenu -_0809F5A0: - ldr r0, _0809F5B4 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809F5BC - ldr r0, _0809F5B8 - bl ShowFrontierPass - b _0809F5C2 - .align 2, 0 -_0809F5B4: .4byte 0x000008D2 -_0809F5B8: .4byte CB2_ReturnToFieldWithOpenMenu -_0809F5BC: - ldr r0, _0809F5C8 - bl sub_080C4710 -_0809F5C2: - movs r0, #1 - b _0809F5CE - .align 2, 0 -_0809F5C8: .4byte CB2_ReturnToFieldWithOpenMenu -_0809F5CC: - movs r0, #0 -_0809F5CE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end StartMenuPlayerNameCallback - - thumb_func_start StartMenuSaveCallback -StartMenuSaveCallback: @ 0x0809F5D4 - push {lr} - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809F5E4 - bl RemoveExtraStartMenuWindows -_0809F5E4: - ldr r1, _0809F5F0 - ldr r0, _0809F5F4 - str r0, [r1] - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0809F5F0: .4byte gUnknown_3005B54 -_0809F5F4: .4byte SaveStartCallback - thumb_func_end StartMenuSaveCallback - - thumb_func_start StartMenuOptionCallback -StartMenuOptionCallback: @ 0x0809F5F8 - push {lr} - ldr r0, _0809F60C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809F610 - movs r0, #0 - b _0809F62A - .align 2, 0 -_0809F60C: .4byte gUnknown_2037C74 -_0809F610: - bl PlayRainStoppingSoundEffect - bl RemoveExtraStartMenuWindows - bl CleanupOverworldWindowsAndTilemaps - ldr r0, _0809F630 - bl SetMainCallback2 - ldr r1, _0809F634 - ldr r0, _0809F638 - str r0, [r1, #8] - movs r0, #1 -_0809F62A: - pop {r1} - bx r1 - .align 2, 0 -_0809F630: .4byte CB2_InitOptionMenu -_0809F634: .4byte gUnknown_3002360 -_0809F638: .4byte CB2_ReturnToFieldWithOpenMenu - thumb_func_end StartMenuOptionCallback - - thumb_func_start StartMenuExitCallback -StartMenuExitCallback: @ 0x0809F63C - push {lr} - bl RemoveExtraStartMenuWindows - bl HideStartMenu - movs r0, #1 - pop {r1} - bx r1 - thumb_func_end StartMenuExitCallback - - thumb_func_start StartMenuSafariZoneRetireCallback -StartMenuSafariZoneRetireCallback: @ 0x0809F64C - push {lr} - bl RemoveExtraStartMenuWindows - bl HideStartMenu - bl sub_080FC9F0 - movs r0, #1 - pop {r1} - bx r1 - thumb_func_end StartMenuSafariZoneRetireCallback - - thumb_func_start sub_0809F660 -sub_0809F660: @ 0x0809F660 - push {lr} - ldr r0, _0809F674 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809F678 - movs r0, #0 - b _0809F68C - .align 2, 0 -_0809F674: .4byte gUnknown_2037C74 -_0809F678: - bl PlayRainStoppingSoundEffect - bl CleanupOverworldWindowsAndTilemaps - ldr r0, _0809F690 - ldrb r0, [r0] - ldr r1, _0809F694 - bl ShowTrainerCardInLink - movs r0, #1 -_0809F68C: - pop {r1} - bx r1 - .align 2, 0 -_0809F690: .4byte gUnknown_3005B14 -_0809F694: .4byte CB2_ReturnToFieldWithOpenMenu - thumb_func_end sub_0809F660 - - thumb_func_start StartMenuBattlePyramidRetireCallback -StartMenuBattlePyramidRetireCallback: @ 0x0809F698 - ldr r1, _0809F6A4 - ldr r0, _0809F6A8 - str r0, [r1] - movs r0, #0 - bx lr - .align 2, 0 -_0809F6A4: .4byte gUnknown_3005B54 -_0809F6A8: .4byte BattlePyramidRetireStartCallback - thumb_func_end StartMenuBattlePyramidRetireCallback - - thumb_func_start CableCarMainCallback_Run -CableCarMainCallback_Run: @ 0x0809F6AC - push {lr} - movs r0, #0 - movs r1, #0 - bl sub_08197EBC - bl ScriptUnfreezeEventObjects - ldr r0, _0809F6C8 - bl CreateStartMenuTask - bl sub_080987DC - pop {r0} - bx r0 - .align 2, 0 -_0809F6C8: .4byte sub_0809F30C - thumb_func_end CableCarMainCallback_Run - - thumb_func_start StartMenuBattlePyramidBagCallback -StartMenuBattlePyramidBagCallback: @ 0x0809F6CC - push {lr} - ldr r0, _0809F6E0 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809F6E4 - movs r0, #0 - b _0809F6F8 - .align 2, 0 -_0809F6E0: .4byte gUnknown_2037C74 -_0809F6E4: - bl PlayRainStoppingSoundEffect - bl RemoveExtraStartMenuWindows - bl CleanupOverworldWindowsAndTilemaps - ldr r0, _0809F6FC - bl SetMainCallback2 - movs r0, #1 -_0809F6F8: - pop {r1} - bx r1 - .align 2, 0 -_0809F6FC: .4byte CB2_PyramidBagMenuFromStartMenu - thumb_func_end StartMenuBattlePyramidBagCallback - - thumb_func_start SaveStartCallback -SaveStartCallback: @ 0x0809F700 - push {lr} - bl InitSave - ldr r1, _0809F714 - ldr r0, _0809F718 - str r0, [r1] - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0809F714: .4byte gUnknown_3005B54 -_0809F718: .4byte SaveCallback - thumb_func_end SaveStartCallback - - thumb_func_start SaveCallback -SaveCallback: @ 0x0809F71C - push {lr} - bl sub_0809F824 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0809F754 - cmp r0, #1 - ble _0809F76C - cmp r0, #2 - beq _0809F738 - cmp r0, #3 - beq _0809F754 - b _0809F76C -_0809F738: - movs r0, #0 - movs r1, #0 - bl sub_08197EBC - bl InitStartMenu - ldr r1, _0809F74C - ldr r0, _0809F750 - str r0, [r1] - b _0809F76C - .align 2, 0 -_0809F74C: .4byte gUnknown_3005B54 -_0809F750: .4byte HandleStartMenuInput -_0809F754: - movs r0, #0 - movs r1, #1 - bl sub_08197EBC - bl ScriptUnfreezeEventObjects - bl sub_080987E8 - bl SoftResetInBattlePyramid - movs r0, #1 - b _0809F76E -_0809F76C: - movs r0, #0 -_0809F76E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end SaveCallback - - thumb_func_start BattlePyramidRetireStartCallback -BattlePyramidRetireStartCallback: @ 0x0809F774 - push {lr} - bl InitBattlePyramidRetire - ldr r1, _0809F788 - ldr r0, _0809F78C - str r0, [r1] - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0809F788: .4byte gUnknown_3005B54 -_0809F78C: .4byte BattlePyramidRetireCallback - thumb_func_end BattlePyramidRetireStartCallback - - thumb_func_start BattlePyramidRetireReturnCallback -BattlePyramidRetireReturnCallback: @ 0x0809F790 - push {lr} - bl InitStartMenu - ldr r1, _0809F7A4 - ldr r0, _0809F7A8 - str r0, [r1] - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0809F7A4: .4byte gUnknown_3005B54 -_0809F7A8: .4byte HandleStartMenuInput - thumb_func_end BattlePyramidRetireReturnCallback - - thumb_func_start BattlePyramidRetireCallback -BattlePyramidRetireCallback: @ 0x0809F7AC - push {lr} - bl sub_0809F824 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0809F7C4 - cmp r0, #1 - ble _0809F7F8 - cmp r0, #2 - beq _0809F7D8 - b _0809F7F8 -_0809F7C4: - bl RemoveExtraStartMenuWindows - ldr r1, _0809F7D0 - ldr r0, _0809F7D4 - str r0, [r1] - b _0809F7F8 - .align 2, 0 -_0809F7D0: .4byte gUnknown_3005B54 -_0809F7D4: .4byte BattlePyramidRetireReturnCallback -_0809F7D8: - movs r0, #0 - movs r1, #1 - bl sub_08197EBC - bl ScriptUnfreezeEventObjects - bl sub_080987E8 - ldr r0, _0809F7F4 - bl ScriptContext1_SetupScript - movs r0, #1 - b _0809F7FA - .align 2, 0 -_0809F7F4: .4byte gUnknown_822D751 -_0809F7F8: - movs r0, #0 -_0809F7FA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end BattlePyramidRetireCallback - - thumb_func_start InitSave -InitSave: @ 0x0809F800 - push {lr} - bl save_serialize_map - ldr r1, _0809F818 - ldr r0, _0809F81C - str r0, [r1] - ldr r1, _0809F820 - movs r0, #0 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0809F818: .4byte gUnknown_20372BC -_0809F81C: .4byte SaveConfirmSaveCallback -_0809F820: .4byte gUnknown_20372C1 - thumb_func_end InitSave - - thumb_func_start sub_0809F824 -sub_0809F824: @ 0x0809F824 - push {lr} - bl RunTextPrintersAndIsPrinter0Active - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - beq _0809F850 - ldr r1, _0809F848 - movs r0, #0 - strb r0, [r1] - ldr r0, _0809F84C - ldr r0, [r0] - bl _call_via_r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0809F852 - .align 2, 0 -_0809F848: .4byte gUnknown_20372C1 -_0809F84C: .4byte gUnknown_20372BC -_0809F850: - movs r0, #0 -_0809F852: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0809F824 - - thumb_func_start SaveGame -SaveGame: @ 0x0809F858 - push {lr} - bl InitSave - ldr r0, _0809F86C - movs r1, #0x50 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_0809F86C: .4byte SaveGameTask - thumb_func_end SaveGame - - thumb_func_start ShowSaveMessage -ShowSaveMessage: @ 0x0809F870 - push {r4, lr} - adds r2, r0, #0 - adds r4, r1, #0 - ldr r0, _0809F89C - adds r1, r2, #0 - bl StringExpandPlaceholders - movs r0, #0 - movs r1, #1 - bl sub_08197650 - movs r0, #1 - bl AddTextPrinterForMessage_2 - ldr r1, _0809F8A0 - movs r0, #1 - strb r0, [r1] - ldr r0, _0809F8A4 - str r4, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809F89C: .4byte gUnknown_2021C7C -_0809F8A0: .4byte gUnknown_20372C1 -_0809F8A4: .4byte gUnknown_20372BC - thumb_func_end ShowSaveMessage - - thumb_func_start SaveGameTask -SaveGameTask: @ 0x0809F8A8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl sub_0809F824 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #1 - beq _0809F8D4 - cmp r1, #1 - bgt _0809F8C4 - cmp r1, #0 - beq _0809F8E2 - b _0809F8D8 -_0809F8C4: - cmp r1, #3 - bgt _0809F8D8 - ldr r1, _0809F8D0 - movs r0, #0 - strh r0, [r1] - b _0809F8D8 - .align 2, 0 -_0809F8D0: .4byte gUnknown_2037290 -_0809F8D4: - ldr r0, _0809F8E8 - strh r1, [r0] -_0809F8D8: - adds r0, r4, #0 - bl DestroyTask - bl EnableBothScriptContexts -_0809F8E2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809F8E8: .4byte gUnknown_2037290 - thumb_func_end SaveGameTask - - thumb_func_start sub_0809F8EC -sub_0809F8EC: @ 0x0809F8EC - push {lr} - movs r0, #0 - movs r1, #1 - bl sub_08197028 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0809F8EC - - thumb_func_start sub_0809F8FC -sub_0809F8FC: @ 0x0809F8FC - push {lr} - bl sub_080A0150 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0809F8FC - - thumb_func_start SaveStartTimer -SaveStartTimer: @ 0x0809F908 - ldr r1, _0809F910 - movs r0, #0x3c - strb r0, [r1] - bx lr - .align 2, 0 -_0809F910: .4byte gUnknown_20372C0 - thumb_func_end SaveStartTimer - - thumb_func_start SaveSuccesTimer -SaveSuccesTimer: @ 0x0809F914 - push {lr} - ldr r1, _0809F934 - ldrb r0, [r1] - subs r2, r0, #1 - strb r2, [r1] - ldr r0, _0809F938 - ldrh r1, [r0, #0x2c] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0809F93C - lsls r0, r2, #0x18 - cmp r0, #0 - beq _0809F942 - movs r0, #0 - b _0809F944 - .align 2, 0 -_0809F934: .4byte gUnknown_20372C0 -_0809F938: .4byte gUnknown_3002360 -_0809F93C: - movs r0, #5 - bl sub_080A306C -_0809F942: - movs r0, #1 -_0809F944: - pop {r1} - bx r1 - thumb_func_end SaveSuccesTimer - - thumb_func_start SaveErrorTimer -SaveErrorTimer: @ 0x0809F948 - push {lr} - ldr r1, _0809F964 - ldrb r0, [r1] - cmp r0, #0 - bne _0809F96C - ldr r0, _0809F968 - ldrh r1, [r0, #0x2c] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0809F970 - movs r0, #1 - b _0809F972 - .align 2, 0 -_0809F964: .4byte gUnknown_20372C0 -_0809F968: .4byte gUnknown_3002360 -_0809F96C: - subs r0, #1 - strb r0, [r1] -_0809F970: - movs r0, #0 -_0809F972: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end SaveErrorTimer - - thumb_func_start SaveConfirmSaveCallback -SaveConfirmSaveCallback: @ 0x0809F978 - push {lr} - bl sub_0819780C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl sub_08197060 - bl sub_08197818 - bl ShowSaveInfoWindow - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809F9AC - ldr r0, _0809F9A4 - ldr r1, _0809F9A8 - bl ShowSaveMessage - b _0809F9B4 - .align 2, 0 -_0809F9A4: .4byte gUnknown_822D762 -_0809F9A8: .4byte sub_0809F9C4 -_0809F9AC: - ldr r0, _0809F9BC - ldr r1, _0809F9C0 - bl ShowSaveMessage -_0809F9B4: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0809F9BC: .4byte gUnknown_8276F58 -_0809F9C0: .4byte sub_0809F9C4 - thumb_func_end SaveConfirmSaveCallback - - thumb_func_start sub_0809F9C4 -sub_0809F9C4: @ 0x0809F9C4 - push {lr} - bl sub_08197714 - ldr r1, _0809F9D8 - ldr r0, _0809F9DC - str r0, [r1] - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0809F9D8: .4byte gUnknown_20372BC -_0809F9DC: .4byte SaveConfirmInputCallback - thumb_func_end sub_0809F9C4 - - thumb_func_start SaveConfirmInputCallback -SaveConfirmInputCallback: @ 0x0809F9E0 - push {lr} - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _0809FA02 - cmp r1, #0 - bgt _0809F9FC - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0809FA40 - b _0809FA4C -_0809F9FC: - cmp r1, #1 - beq _0809FA40 - b _0809FA4C -_0809FA02: - ldr r0, _0809FA20 - ldrh r0, [r0] - cmp r0, #0 - beq _0809FA0E - cmp r0, #2 - bne _0809FA16 -_0809FA0E: - ldr r0, _0809FA24 - ldrb r0, [r0] - cmp r0, #0 - bne _0809FA30 -_0809FA16: - ldr r1, _0809FA28 - ldr r0, _0809FA2C - str r0, [r1] - b _0809FA4C - .align 2, 0 -_0809FA20: .4byte gUnknown_3005F50 -_0809FA24: .4byte gUnknown_2031F74 -_0809FA28: .4byte gUnknown_20372BC -_0809FA2C: .4byte SaveFileExistsCallback -_0809FA30: - ldr r1, _0809FA38 - ldr r0, _0809FA3C - str r0, [r1] - b _0809FA4C - .align 2, 0 -_0809FA38: .4byte gUnknown_20372BC -_0809FA3C: .4byte SaveSavingMessageCallback -_0809FA40: - bl sub_0809F8FC - bl sub_0809F8EC - movs r0, #2 - b _0809FA4E -_0809FA4C: - movs r0, #0 -_0809FA4E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end SaveConfirmInputCallback - - thumb_func_start SaveFileExistsCallback -SaveFileExistsCallback: @ 0x0809FA54 - push {lr} - ldr r0, _0809FA68 - ldrb r0, [r0] - cmp r0, #1 - bne _0809FA74 - ldr r0, _0809FA6C - ldr r1, _0809FA70 - bl ShowSaveMessage - b _0809FA7C - .align 2, 0 -_0809FA68: .4byte gUnknown_2031F74 -_0809FA6C: .4byte gUnknown_8276FD3 -_0809FA70: .4byte sub_0809FA8C -_0809FA74: - ldr r0, _0809FA84 - ldr r1, _0809FA88 - bl ShowSaveMessage -_0809FA7C: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0809FA84: .4byte gUnknown_8276F77 -_0809FA88: .4byte sub_0809FAA8 - thumb_func_end SaveFileExistsCallback - - thumb_func_start sub_0809FA8C -sub_0809FA8C: @ 0x0809FA8C - push {lr} - movs r0, #1 - bl sub_0819773C - ldr r1, _0809FAA0 - ldr r0, _0809FAA4 - str r0, [r1] - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0809FAA0: .4byte gUnknown_20372BC -_0809FAA4: .4byte SaveOverwriteInputCallback - thumb_func_end sub_0809FA8C - - thumb_func_start sub_0809FAA8 -sub_0809FAA8: @ 0x0809FAA8 - push {lr} - bl sub_08197714 - ldr r1, _0809FABC - ldr r0, _0809FAC0 - str r0, [r1] - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0809FABC: .4byte gUnknown_20372BC -_0809FAC0: .4byte SaveOverwriteInputCallback - thumb_func_end sub_0809FAA8 - - thumb_func_start SaveOverwriteInputCallback -SaveOverwriteInputCallback: @ 0x0809FAC4 - push {lr} - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _0809FAE6 - cmp r1, #0 - bgt _0809FAE0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0809FAF8 - b _0809FB04 -_0809FAE0: - cmp r1, #1 - beq _0809FAF8 - b _0809FB04 -_0809FAE6: - ldr r1, _0809FAF0 - ldr r0, _0809FAF4 - str r0, [r1] - b _0809FB04 - .align 2, 0 -_0809FAF0: .4byte gUnknown_20372BC -_0809FAF4: .4byte SaveSavingMessageCallback -_0809FAF8: - bl sub_0809F8FC - bl sub_0809F8EC - movs r0, #2 - b _0809FB06 -_0809FB04: - movs r0, #0 -_0809FB06: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end SaveOverwriteInputCallback - - thumb_func_start SaveSavingMessageCallback -SaveSavingMessageCallback: @ 0x0809FB0C - push {lr} - ldr r0, _0809FB1C - ldr r1, _0809FB20 - bl ShowSaveMessage - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0809FB1C: .4byte gUnknown_8276F97 -_0809FB20: .4byte SaveDoSaveCallback - thumb_func_end SaveSavingMessageCallback - - thumb_func_start SaveDoSaveCallback -SaveDoSaveCallback: @ 0x0809FB24 - push {r4, lr} - movs r0, #0 - bl IncrementGameStat - bl sub_081A9C08 - ldr r4, _0809FB48 - ldrb r0, [r4] - cmp r0, #1 - bne _0809FB4C - movs r0, #4 - bl TrySavingData - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r0, #0 - strb r0, [r4] - b _0809FB56 - .align 2, 0 -_0809FB48: .4byte gUnknown_2031F74 -_0809FB4C: - movs r0, #0 - bl TrySavingData - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 -_0809FB56: - cmp r1, #1 - bne _0809FB6C - ldr r0, _0809FB64 - ldr r1, _0809FB68 - bl ShowSaveMessage - b _0809FB74 - .align 2, 0 -_0809FB64: .4byte gUnknown_8276FBB -_0809FB68: .4byte sub_0809FB88 -_0809FB6C: - ldr r0, _0809FB80 - ldr r1, _0809FB84 - bl ShowSaveMessage -_0809FB74: - bl SaveStartTimer - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809FB80: .4byte gUnknown_8277048 -_0809FB84: .4byte SaveErrorCallback - thumb_func_end SaveDoSaveCallback - - thumb_func_start sub_0809FB88 -sub_0809FB88: @ 0x0809FB88 - push {lr} - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0809FBA2 - movs r0, #0x37 - bl sub_080A306C - ldr r1, _0809FBA8 - ldr r0, _0809FBAC - str r0, [r1] -_0809FBA2: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0809FBA8: .4byte gUnknown_20372BC -_0809FBAC: .4byte SaveReturnSuccessCallback - thumb_func_end sub_0809FB88 - - thumb_func_start SaveReturnSuccessCallback -SaveReturnSuccessCallback: @ 0x0809FBB0 - push {lr} - bl IsSEPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809FBCE - bl SaveSuccesTimer - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809FBCE - bl sub_0809F8FC - movs r0, #1 - b _0809FBD0 -_0809FBCE: - movs r0, #0 -_0809FBD0: - pop {r1} - bx r1 - thumb_func_end SaveReturnSuccessCallback - - thumb_func_start SaveErrorCallback -SaveErrorCallback: @ 0x0809FBD4 - push {lr} - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0809FBEE - movs r0, #0x16 - bl sub_080A306C - ldr r1, _0809FBF4 - ldr r0, _0809FBF8 - str r0, [r1] -_0809FBEE: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0809FBF4: .4byte gUnknown_20372BC -_0809FBF8: .4byte SaveReturnErrorCallback - thumb_func_end SaveErrorCallback - - thumb_func_start SaveReturnErrorCallback -SaveReturnErrorCallback: @ 0x0809FBFC - push {lr} - bl SaveErrorTimer - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809FC10 - bl sub_0809F8FC - movs r0, #3 - b _0809FC12 -_0809FC10: - movs r0, #0 -_0809FC12: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end SaveReturnErrorCallback - - thumb_func_start InitBattlePyramidRetire -InitBattlePyramidRetire: @ 0x0809FC18 - ldr r1, _0809FC28 - ldr r0, _0809FC2C - str r0, [r1] - ldr r1, _0809FC30 - movs r0, #0 - strb r0, [r1] - bx lr - .align 2, 0 -_0809FC28: .4byte gUnknown_20372BC -_0809FC2C: .4byte BattlePyramidConfirmRetireCallback -_0809FC30: .4byte gUnknown_20372C1 - thumb_func_end InitBattlePyramidRetire - - thumb_func_start BattlePyramidConfirmRetireCallback -BattlePyramidConfirmRetireCallback: @ 0x0809FC34 - push {lr} - bl sub_0819780C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl sub_08197060 - bl sub_08197818 - ldr r0, _0809FC58 - ldr r1, _0809FC5C - bl ShowSaveMessage - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0809FC58: .4byte gUnknown_822D78F -_0809FC5C: .4byte sub_0809FC60 - thumb_func_end BattlePyramidConfirmRetireCallback - - thumb_func_start sub_0809FC60 -sub_0809FC60: @ 0x0809FC60 - push {lr} - movs r0, #1 - bl sub_0819773C - ldr r1, _0809FC74 - ldr r0, _0809FC78 - str r0, [r1] - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0809FC74: .4byte gUnknown_20372BC -_0809FC78: .4byte BattlePyramidRetireInputCallback - thumb_func_end sub_0809FC60 - - thumb_func_start BattlePyramidRetireInputCallback -BattlePyramidRetireInputCallback: @ 0x0809FC7C - push {lr} - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _0809FC9E - cmp r1, #0 - bgt _0809FC98 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0809FCA2 - b _0809FCAA -_0809FC98: - cmp r1, #1 - beq _0809FCA2 - b _0809FCAA -_0809FC9E: - movs r0, #2 - b _0809FCAC -_0809FCA2: - bl sub_0809F8EC - movs r0, #1 - b _0809FCAC -_0809FCAA: - movs r0, #0 -_0809FCAC: - pop {r1} - bx r1 - thumb_func_end BattlePyramidRetireInputCallback - - thumb_func_start sub_0809FCB0 -sub_0809FCB0: @ 0x0809FCB0 - push {lr} - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0809FCB0 - - thumb_func_start sub_0809FCBC -sub_0809FCBC: @ 0x0809FCBC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - mov r8, r0 - ldrb r0, [r0] - cmp r0, #4 - bls _0809FCCE - b _0809FDD4 -_0809FCCE: - lsls r0, r0, #2 - ldr r1, _0809FCD8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809FCD8: .4byte _0809FCDC -_0809FCDC: @ jump table - .4byte _0809FCF0 @ case 0 - .4byte _0809FD68 @ case 1 - .4byte _0809FD7A @ case 2 - .4byte _0809FDAC @ case 3 - .4byte _0809FDD0 @ case 4 -_0809FCF0: - movs r0, #0 - movs r1, #0 - bl SetGpuReg - movs r0, #0 - bl SetVBlankCallback - bl ScanlineEffect_Stop - movs r2, #0xa0 - lsls r2, r2, #0x13 - mov r1, sp - movs r0, #0 - strh r0, [r1] - ldr r1, _0809FD5C - mov r0, sp - str r0, [r1] - str r2, [r1, #4] - ldr r0, _0809FD60 - str r0, [r1, #8] - ldr r0, [r1, #8] - movs r2, #0xc0 - lsls r2, r2, #0x13 - movs r3, #0xc0 - lsls r3, r3, #9 - mov r4, sp - movs r6, #0 - movs r5, #0x80 - lsls r5, r5, #5 - ldr r7, _0809FD64 - movs r0, #0x81 - lsls r0, r0, #0x18 - mov ip, r0 -_0809FD32: - strh r6, [r4] - mov r0, sp - str r0, [r1] - str r2, [r1, #4] - str r7, [r1, #8] - ldr r0, [r1, #8] - adds r2, r2, r5 - subs r3, r3, r5 - cmp r3, r5 - bhi _0809FD32 - strh r6, [r4] - mov r0, sp - str r0, [r1] - str r2, [r1, #4] - lsrs r0, r3, #1 - mov r2, ip - orrs r0, r2 - str r0, [r1, #8] - ldr r0, [r1, #8] - b _0809FDD4 - .align 2, 0 -_0809FD5C: .4byte 0x040000D4 -_0809FD60: .4byte 0x81000200 -_0809FD64: .4byte 0x81000800 -_0809FD68: - bl ResetSpriteData - bl ResetTasks - bl ResetPaletteFade - bl ScanlineEffect_Clear - b _0809FDD4 -_0809FD7A: - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _0809FDA4 - movs r0, #0 - movs r2, #1 - bl InitBgsFromTemplates - ldr r0, _0809FDA8 - bl InitWindows - movs r0, #0 - movs r1, #8 - movs r2, #0xe0 - bl LoadUserWindowBorderGfx_ - movs r0, #0xf0 - bl Menu_LoadStdPalAt - b _0809FDD4 - .align 2, 0 -_0809FDA4: .4byte gUnknown_84E8C94 -_0809FDA8: .4byte gUnknown_84E8C98 -_0809FDAC: - movs r0, #0 - bl ShowBg - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - ldr r0, _0809FDCC - bl SetVBlankCallback - movs r0, #1 - bl EnableInterrupts - b _0809FDD4 - .align 2, 0 -_0809FDCC: .4byte sub_0809FCB0 -_0809FDD0: - movs r0, #1 - b _0809FDDE -_0809FDD4: - mov r1, r8 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #0 -_0809FDDE: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0809FCBC - - thumb_func_start sub_0809FDEC -sub_0809FDEC: @ 0x0809FDEC - push {lr} - ldr r0, _0809FE0C - bl sub_0809FCBC - cmp r0, #0 - beq _0809FE06 - ldr r0, _0809FE10 - movs r1, #0x50 - bl CreateTask - ldr r0, _0809FE14 - bl SetMainCallback2 -_0809FE06: - pop {r0} - bx r0 - .align 2, 0 -_0809FE0C: .4byte gUnknown_3002798 -_0809FE10: .4byte sub_0809FE28 -_0809FE14: .4byte sub_0809FE18 - thumb_func_end sub_0809FDEC - - thumb_func_start sub_0809FE18 -sub_0809FE18: @ 0x0809FE18 - push {lr} - bl RunTasks - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0809FE18 - - thumb_func_start sub_0809FE28 -sub_0809FE28: @ 0x0809FE28 - push {r4, r5, r6, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _0809FE5C - adds r5, r0, r1 - ldr r0, _0809FE60 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809FE48 - b _0809FF80 -_0809FE48: - movs r1, #0 - ldrsh r0, [r5, r1] - cmp r0, #6 - bls _0809FE52 - b _0809FF80 -_0809FE52: - lsls r0, r0, #2 - ldr r1, _0809FE64 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809FE5C: .4byte gUnknown_3005B68 -_0809FE60: .4byte gUnknown_2037C74 -_0809FE64: .4byte _0809FE68 -_0809FE68: @ jump table - .4byte _0809FE84 @ case 0 - .4byte _0809FF08 @ case 1 - .4byte _0809FF14 @ case 2 - .4byte _0809FF34 @ case 3 - .4byte _0809FF48 @ case 4 - .4byte _0809FF60 @ case 5 - .4byte _0809FF70 @ case 6 -_0809FE84: - movs r0, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r2, _0809FEEC - movs r4, #0 - str r4, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r6, #1 - str r6, [sp, #8] - movs r0, #3 - str r0, [sp, #0xc] - movs r0, #0 - movs r1, #1 - movs r3, #0xff - bl AddTextPrinterParameterized2 - movs r0, #0 - movs r1, #8 - movs r2, #0xe - bl DrawTextBorderOuter - movs r0, #0 - bl PutWindowTilemap - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - movs r0, #1 - rsbs r0, r0, #0 - str r4, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r0, _0809FEF0 - ldrb r0, [r0] - cmp r0, #0 - beq _0809FEF8 - bl InUnionRoom - cmp r0, #0 - beq _0809FEF8 - bl sub_08009C40 - cmp r0, #0 - beq _0809FEF4 - strh r6, [r5] - b _0809FF80 - .align 2, 0 -_0809FEEC: .4byte gUnknown_8277071 -_0809FEF0: .4byte gUnknown_300319C -_0809FEF4: - movs r0, #5 - b _0809FF7E -_0809FEF8: - ldr r0, _0809FF04 - movs r1, #1 - strb r1, [r0] - movs r0, #1 - b _0809FF7E - .align 2, 0 -_0809FF04: .4byte gUnknown_30027A0 -_0809FF08: - bl SetContinueGameWarpStatusToDynamicWarp - bl sub_0815336C - movs r0, #2 - b _0809FF7E -_0809FF14: - bl CheckSaveFile - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809FF80 - bl sub_08076780 - movs r0, #3 - strh r0, [r5] - ldr r1, _0809FF30 - movs r0, #0 - strb r0, [r1] - b _0809FF80 - .align 2, 0 -_0809FF30: .4byte gUnknown_30027A0 -_0809FF34: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - movs r0, #4 - b _0809FF7E -_0809FF48: - bl FreeAllWindowBuffers - ldr r0, _0809FF5C - ldr r0, [r0, #8] - bl SetMainCallback2 - adds r0, r4, #0 - bl DestroyTask - b _0809FF80 - .align 2, 0 -_0809FF5C: .4byte gUnknown_3002360 -_0809FF60: - ldr r0, _0809FF6C - movs r1, #5 - bl CreateTask - movs r0, #6 - b _0809FF7E - .align 2, 0 -_0809FF6C: .4byte sub_081535C4 -_0809FF70: - ldr r0, _0809FF88 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809FF80 - movs r0, #3 -_0809FF7E: - strh r0, [r5] -_0809FF80: - add sp, #0x10 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0809FF88: .4byte sub_081535C4 - thumb_func_end sub_0809FE28 - - thumb_func_start ShowSaveInfoWindow -ShowSaveInfoWindow: @ 0x0809FF8C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - ldr r0, _080A00F4 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [sp, #0xc] - str r1, [sp, #0x10] - ldr r0, _080A00F8 - mov sl, r0 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809FFC4 - add r0, sp, #0xc - ldrb r1, [r0, #4] - subs r1, #2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _080A00FC - ldr r0, [sp, #0x10] - ands r0, r2 - orrs r0, r1 - str r0, [sp, #0x10] -_0809FFC4: - ldr r6, _080A0100 - add r0, sp, #0xc - bl AddWindow - strb r0, [r6] - ldrb r0, [r6] - movs r1, #0 - bl sub_08196FF0 - ldr r1, _080A0104 - ldr r0, [r1] - ldrb r0, [r0, #8] - movs r1, #4 - mov sb, r1 - cmp r0, #0 - bne _0809FFE8 - movs r0, #8 - mov sb, r0 -_0809FFE8: - movs r4, #2 - ldr r5, _080A0108 - movs r0, #3 - adds r1, r5, #0 - movs r2, #6 - bl sub_08199FDC - ldrb r0, [r6] - str r4, [sp] - movs r7, #0xff - str r7, [sp, #4] - movs r1, #0 - mov r8, r1 - str r1, [sp, #8] - movs r1, #1 - adds r2, r5, #0 - movs r3, #0 - bl AddTextPrinterParameterized - movs r4, #0x10 - ldrb r0, [r6] - ldr r2, _080A010C - str r4, [sp] - str r7, [sp, #4] - mov r1, r8 - str r1, [sp, #8] - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - movs r0, #0 - adds r1, r5, #0 - mov r2, sb - bl sub_08199FDC - movs r0, #0xff - strb r0, [r5, #0xb] - ldrb r0, [r6] - adds r1, r5, #0 - movs r2, #0x48 - movs r3, #0x10 - bl PrintPlayerNameOnWindow - movs r4, #0x1e - ldrb r0, [r6] - ldr r2, _080A0110 - str r4, [sp] - str r7, [sp, #4] - mov r1, r8 - str r1, [sp, #8] - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - movs r0, #4 - adds r1, r5, #0 - mov r2, sb - bl sub_08199FDC - ldrb r0, [r6] - str r4, [sp] - str r7, [sp, #4] - mov r1, r8 - str r1, [sp, #8] - movs r1, #1 - adds r2, r5, #0 - movs r3, #0x48 - bl AddTextPrinterParameterized - movs r4, #0x2c - mov r0, sl - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080A00B6 - ldrb r0, [r6] - ldr r2, _080A0114 - str r4, [sp] - str r7, [sp, #4] - mov r1, r8 - str r1, [sp, #8] - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - movs r0, #1 - adds r1, r5, #0 - mov r2, sb - bl sub_08199FDC - ldrb r0, [r6] - str r4, [sp] - str r7, [sp, #4] - mov r1, r8 - str r1, [sp, #8] - movs r1, #1 - adds r2, r5, #0 - movs r3, #0x48 - bl AddTextPrinterParameterized - movs r4, #0x3a -_080A00B6: - ldrb r0, [r6] - ldr r2, _080A0118 - str r4, [sp] - str r7, [sp, #4] - mov r1, r8 - str r1, [sp, #8] - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - movs r0, #2 - adds r1, r5, #0 - mov r2, sb - bl sub_08199FDC - ldr r1, _080A0104 - ldr r0, [r1] - ldrh r0, [r0, #0xe] - cmp r0, #0x63 - bls _080A011C - ldrb r0, [r6] - str r4, [sp] - str r7, [sp, #4] - mov r1, r8 - str r1, [sp, #8] - movs r1, #1 - adds r2, r5, #0 - movs r3, #0x40 - bl AddTextPrinterParameterized - b _080A0130 - .align 2, 0 -_080A00F4: .4byte gUnknown_84E8CA8 -_080A00F8: .4byte 0x00000861 -_080A00FC: .4byte 0xFFFFFF00 -_080A0100: .4byte gUnknown_20372C2 -_080A0104: .4byte gUnknown_3005AF0 -_080A0108: .4byte gUnknown_2021C7C -_080A010C: .4byte gUnknown_84E8CB0 -_080A0110: .4byte gUnknown_84E8CB7 -_080A0114: .4byte gUnknown_84E8CC0 -_080A0118: .4byte gUnknown_84E8CC8 -_080A011C: - ldrb r0, [r6] - str r4, [sp] - str r7, [sp, #4] - mov r1, r8 - str r1, [sp, #8] - movs r1, #1 - adds r2, r5, #0 - movs r3, #0x48 - bl AddTextPrinterParameterized -_080A0130: - ldr r0, _080A014C - ldrb r0, [r0] - movs r1, #2 - bl CopyWindowToVram - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A014C: .4byte gUnknown_20372C2 - thumb_func_end ShowSaveInfoWindow - - thumb_func_start sub_080A0150 -sub_080A0150: @ 0x080A0150 - push {r4, lr} - ldr r4, _080A0168 - ldrb r0, [r4] - movs r1, #0 - bl sub_08197060 - ldrb r0, [r4] - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A0168: .4byte gUnknown_20372C2 - thumb_func_end sub_080A0150 - - thumb_func_start sub_080A016C -sub_080A016C: @ 0x080A016C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080A0190 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A0188 - adds r0, r4, #0 - bl DestroyTask - bl EnableBothScriptContexts -_080A0188: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A0190: .4byte sub_081535C4 - thumb_func_end sub_080A016C - - thumb_func_start sub_080A0194 -sub_080A0194: @ 0x080A0194 - push {r4, r5, lr} - ldr r0, _080A01D0 - movs r1, #5 - bl CreateTask - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r5, _080A01D4 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r1, #1 - strh r1, [r0, #0xc] - ldr r0, _080A01D8 - movs r1, #6 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r5 - strh r4, [r1, #0xa] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A01D0: .4byte sub_081535C4 -_080A01D4: .4byte gUnknown_3005B60 -_080A01D8: .4byte sub_080A016C - thumb_func_end sub_080A0194 - - thumb_func_start HideStartMenuWindow -HideStartMenuWindow: @ 0x080A01DC - push {lr} - bl sub_0819780C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - bl sub_08197060 - bl sub_08197818 - bl ScriptUnfreezeEventObjects - bl sub_080987E8 - pop {r0} - bx r0 - thumb_func_end HideStartMenuWindow - - thumb_func_start HideStartMenu -HideStartMenu: @ 0x080A01FC - push {lr} - movs r0, #5 - bl sub_080A306C - bl HideStartMenuWindow - pop {r0} - bx r0 - thumb_func_end HideStartMenu - - thumb_func_start AppendToList -AppendToList: @ 0x080A020C - ldrb r3, [r1] - adds r0, r0, r3 - strb r2, [r0] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - bx lr - .align 2, 0 - thumb_func_end AppendToList - - thumb_func_start ResetTilesetAnimBuffer -ResetTilesetAnimBuffer: @ 0x080A021C - push {lr} - sub sp, #4 - ldr r1, _080A023C - movs r0, #0 - strb r0, [r1] - movs r0, #0 - str r0, [sp] - ldr r1, _080A0240 - ldr r2, _080A0244 - mov r0, sp - bl CpuSet - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_080A023C: .4byte gUnknown_3000F34 -_080A0240: .4byte gUnknown_20372C4 -_080A0244: .4byte 0x0500003C - thumb_func_end ResetTilesetAnimBuffer - - thumb_func_start AppendTilesetAnimToBuffer -AppendTilesetAnimToBuffer: @ 0x080A0248 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r2, r2, #0x10 - lsrs r6, r2, #0x10 - ldr r3, _080A0290 - ldrb r0, [r3] - cmp r0, #0x13 - bhi _080A0288 - ldr r2, _080A0294 - adds r1, r0, #0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - str r4, [r0] - ldrb r1, [r3] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r2, #4 - adds r0, r0, r1 - str r5, [r0] - ldrb r1, [r3] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r6, [r0, #8] - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] -_080A0288: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080A0290: .4byte gUnknown_3000F34 -_080A0294: .4byte gUnknown_20372C4 - thumb_func_end AppendTilesetAnimToBuffer - - thumb_func_start TransferTilesetAnimsBuffer -TransferTilesetAnimsBuffer: @ 0x080A0298 - push {r4, r5, r6, lr} - movs r3, #0 - ldr r4, _080A02D4 - adds r6, r4, #0 - ldrb r0, [r4] - cmp r3, r0 - bge _080A02CA - ldr r2, _080A02D8 - ldr r1, _080A02DC - movs r5, #0x80 - lsls r5, r5, #0x18 -_080A02AE: - ldr r0, [r1] - str r0, [r2] - ldr r0, [r1, #4] - str r0, [r2, #4] - ldrh r0, [r1, #8] - lsrs r0, r0, #1 - orrs r0, r5 - str r0, [r2, #8] - ldr r0, [r2, #8] - adds r1, #0xc - adds r3, #1 - ldrb r0, [r4] - cmp r3, r0 - blt _080A02AE -_080A02CA: - movs r0, #0 - strb r0, [r6] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080A02D4: .4byte gUnknown_3000F34 -_080A02D8: .4byte 0x040000D4 -_080A02DC: .4byte gUnknown_20372C4 - thumb_func_end TransferTilesetAnimsBuffer - - thumb_func_start InitTilesetAnimations -InitTilesetAnimations: @ 0x080A02E0 - push {lr} - bl ResetTilesetAnimBuffer - bl _InitPrimaryTilesetAnimation - bl _InitSecondaryTilesetAnimation - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end InitTilesetAnimations - - thumb_func_start InitSecondaryTilesetAnimation -InitSecondaryTilesetAnimation: @ 0x080A02F4 - push {lr} - bl _InitSecondaryTilesetAnimation - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end InitSecondaryTilesetAnimation - - thumb_func_start UpdateTilesetAnimations -UpdateTilesetAnimations: @ 0x080A0300 - push {r4, lr} - bl ResetTilesetAnimBuffer - ldr r2, _080A0358 - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - ldr r1, _080A035C - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrh r1, [r1] - cmp r0, r1 - blo _080A031E - movs r0, #0 - strh r0, [r2] -_080A031E: - ldr r4, _080A0360 - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - ldr r1, _080A0364 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrh r1, [r1] - cmp r0, r1 - blo _080A0336 - movs r0, #0 - strh r0, [r4] -_080A0336: - ldr r0, _080A0368 - ldr r1, [r0] - cmp r1, #0 - beq _080A0344 - ldrh r0, [r2] - bl _call_via_r1 -_080A0344: - ldr r0, _080A036C - ldr r1, [r0] - cmp r1, #0 - beq _080A0352 - ldrh r0, [r4] - bl _call_via_r1 -_080A0352: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A0358: .4byte gUnknown_3000F36 -_080A035C: .4byte gUnknown_3000F38 -_080A0360: .4byte gUnknown_3000F3A -_080A0364: .4byte gUnknown_3000F3C -_080A0368: .4byte gUnknown_3000F40 -_080A036C: .4byte gUnknown_3000F44 - thumb_func_end UpdateTilesetAnimations - - thumb_func_start _InitPrimaryTilesetAnimation -_InitPrimaryTilesetAnimation: @ 0x080A0370 - push {lr} - ldr r0, _080A039C - movs r1, #0 - strh r1, [r0] - ldr r0, _080A03A0 - strh r1, [r0] - ldr r1, _080A03A4 - movs r0, #0 - str r0, [r1] - ldr r0, _080A03A8 - ldr r0, [r0] - ldr r0, [r0, #0x10] - cmp r0, #0 - beq _080A0396 - ldr r0, [r0, #0x14] - cmp r0, #0 - beq _080A0396 - bl _call_via_r0 -_080A0396: - pop {r0} - bx r0 - .align 2, 0 -_080A039C: .4byte gUnknown_3000F36 -_080A03A0: .4byte gUnknown_3000F38 -_080A03A4: .4byte gUnknown_3000F40 -_080A03A8: .4byte gUnknown_2036FB8 - thumb_func_end _InitPrimaryTilesetAnimation - - thumb_func_start _InitSecondaryTilesetAnimation -_InitSecondaryTilesetAnimation: @ 0x080A03AC - push {lr} - ldr r0, _080A03D8 - movs r1, #0 - strh r1, [r0] - ldr r0, _080A03DC - strh r1, [r0] - ldr r1, _080A03E0 - movs r0, #0 - str r0, [r1] - ldr r0, _080A03E4 - ldr r0, [r0] - ldr r0, [r0, #0x14] - cmp r0, #0 - beq _080A03D2 - ldr r0, [r0, #0x14] - cmp r0, #0 - beq _080A03D2 - bl _call_via_r0 -_080A03D2: - pop {r0} - bx r0 - .align 2, 0 -_080A03D8: .4byte gUnknown_3000F3A -_080A03DC: .4byte gUnknown_3000F3C -_080A03E0: .4byte gUnknown_3000F44 -_080A03E4: .4byte gUnknown_2036FB8 - thumb_func_end _InitSecondaryTilesetAnimation - - thumb_func_start sub_080A03E8 -sub_080A03E8: @ 0x080A03E8 - ldr r1, _080A0400 - movs r0, #0 - strh r0, [r1] - ldr r1, _080A0404 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r2, #0 - strh r0, [r1] - ldr r1, _080A0408 - ldr r0, _080A040C - str r0, [r1] - bx lr - .align 2, 0 -_080A0400: .4byte gUnknown_3000F36 -_080A0404: .4byte gUnknown_3000F38 -_080A0408: .4byte gUnknown_3000F40 -_080A040C: .4byte TilesetAnim_General - thumb_func_end sub_080A03E8 - - thumb_func_start sub_080A0410 -sub_080A0410: @ 0x080A0410 - ldr r1, _080A0428 - movs r0, #0 - strh r0, [r1] - ldr r1, _080A042C - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r2, #0 - strh r0, [r1] - ldr r1, _080A0430 - ldr r0, _080A0434 - str r0, [r1] - bx lr - .align 2, 0 -_080A0428: .4byte gUnknown_3000F36 -_080A042C: .4byte gUnknown_3000F38 -_080A0430: .4byte gUnknown_3000F40 -_080A0434: .4byte TilesetAnim_Building - thumb_func_end sub_080A0410 - - thumb_func_start TilesetAnim_General -TilesetAnim_General: @ 0x080A0438 - push {r4, r5, lr} - lsls r5, r0, #0x10 - movs r0, #0xf0 - lsls r0, r0, #0xc - ands r0, r5 - lsrs r4, r0, #0x10 - cmp r4, #0 - bne _080A044E - lsrs r0, r5, #0x14 - bl QueueAnimTiles_General_Flower -_080A044E: - cmp r4, #1 - bne _080A0458 - lsrs r0, r5, #0x14 - bl QueueAnimTiles_General_Water -_080A0458: - cmp r4, #2 - bne _080A0462 - lsrs r0, r5, #0x14 - bl QueueAnimTiles_General_SandWaterEdge -_080A0462: - cmp r4, #3 - bne _080A046C - lsrs r0, r5, #0x14 - bl QueueAnimTiles_General_Waterfall -_080A046C: - cmp r4, #4 - bne _080A0476 - lsrs r0, r5, #0x14 - bl QueueAnimTiles_General_LandWaterEdge -_080A0476: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end TilesetAnim_General - - thumb_func_start TilesetAnim_Building -TilesetAnim_Building: @ 0x080A047C - push {lr} - lsls r1, r0, #0x10 - movs r0, #0xe0 - lsls r0, r0, #0xb - ands r0, r1 - cmp r0, #0 - bne _080A0490 - lsrs r0, r1, #0x13 - bl QueueAnimTiles_Building_TVTurnedOn -_080A0490: - pop {r0} - bx r0 - thumb_func_end TilesetAnim_Building - - thumb_func_start QueueAnimTiles_General_Flower -QueueAnimTiles_General_Flower: @ 0x080A0494 - push {lr} - lsls r0, r0, #0x10 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r0 - ldr r0, _080A04B4 - lsrs r1, r1, #0xe - adds r1, r1, r0 - ldr r0, [r1] - ldr r1, _080A04B8 - movs r2, #0x80 - bl AppendTilesetAnimToBuffer - pop {r0} - bx r0 - .align 2, 0 -_080A04B4: .4byte gUnknown_84E8E70 -_080A04B8: .4byte 0x06003F80 - thumb_func_end QueueAnimTiles_General_Flower - - thumb_func_start QueueAnimTiles_General_Water -QueueAnimTiles_General_Water: @ 0x080A04BC - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #7 - ands r0, r1 - ldr r1, _080A04DC - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _080A04E0 - movs r2, #0xf0 - lsls r2, r2, #2 - bl AppendTilesetAnimToBuffer - pop {r0} - bx r0 - .align 2, 0 -_080A04DC: .4byte gUnknown_84EAC80 -_080A04E0: .4byte 0x06003600 - thumb_func_end QueueAnimTiles_General_Water - - thumb_func_start QueueAnimTiles_General_SandWaterEdge -QueueAnimTiles_General_SandWaterEdge: @ 0x080A04E4 - push {lr} - lsls r0, r0, #0x10 - movs r1, #0xe0 - lsls r1, r1, #0xb - ands r1, r0 - ldr r0, _080A0504 - lsrs r1, r1, #0xe - adds r1, r1, r0 - ldr r0, [r1] - ldr r1, _080A0508 - movs r2, #0xa0 - lsls r2, r2, #1 - bl AppendTilesetAnimToBuffer - pop {r0} - bx r0 - .align 2, 0 -_080A0504: .4byte gUnknown_84EB560 -_080A0508: .4byte 0x06003A00 - thumb_func_end QueueAnimTiles_General_SandWaterEdge - - thumb_func_start QueueAnimTiles_General_Waterfall -QueueAnimTiles_General_Waterfall: @ 0x080A050C - push {lr} - lsls r0, r0, #0x10 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r0 - ldr r0, _080A052C - lsrs r1, r1, #0xe - adds r1, r1, r0 - ldr r0, [r1] - ldr r1, _080A0530 - movs r2, #0xc0 - bl AppendTilesetAnimToBuffer - pop {r0} - bx r0 - .align 2, 0 -_080A052C: .4byte gUnknown_84EB880 -_080A0530: .4byte 0x06003E00 - thumb_func_end QueueAnimTiles_General_Waterfall - - thumb_func_start sub_080A0534 -sub_080A0534: @ 0x080A0534 - ldr r1, _080A054C - movs r0, #0 - strh r0, [r1] - ldr r1, _080A0550 - ldr r0, _080A0554 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _080A0558 - movs r0, #0 - str r0, [r1] - bx lr - .align 2, 0 -_080A054C: .4byte gUnknown_3000F3A -_080A0550: .4byte gUnknown_3000F3C -_080A0554: .4byte gUnknown_3000F38 -_080A0558: .4byte gUnknown_3000F44 - thumb_func_end sub_080A0534 - - thumb_func_start sub_080A055C -sub_080A055C: @ 0x080A055C - ldr r1, _080A0574 - movs r0, #0 - strh r0, [r1] - ldr r1, _080A0578 - ldr r0, _080A057C - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _080A0580 - ldr r0, _080A0584 - str r0, [r1] - bx lr - .align 2, 0 -_080A0574: .4byte gUnknown_3000F3A -_080A0578: .4byte gUnknown_3000F3C -_080A057C: .4byte gUnknown_3000F38 -_080A0580: .4byte gUnknown_3000F44 -_080A0584: .4byte TilesetAnim_Rustboro - thumb_func_end sub_080A055C - - thumb_func_start sub_080A0588 -sub_080A0588: @ 0x080A0588 - ldr r1, _080A05A0 - movs r0, #0 - strh r0, [r1] - ldr r1, _080A05A4 - ldr r0, _080A05A8 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _080A05AC - ldr r0, _080A05B0 - str r0, [r1] - bx lr - .align 2, 0 -_080A05A0: .4byte gUnknown_3000F3A -_080A05A4: .4byte gUnknown_3000F3C -_080A05A8: .4byte gUnknown_3000F38 -_080A05AC: .4byte gUnknown_3000F44 -_080A05B0: .4byte TilesetAnim_Dewford - thumb_func_end sub_080A0588 - - thumb_func_start sub_080A05B4 -sub_080A05B4: @ 0x080A05B4 - ldr r1, _080A05CC - movs r0, #0 - strh r0, [r1] - ldr r1, _080A05D0 - ldr r0, _080A05D4 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _080A05D8 - ldr r0, _080A05DC - str r0, [r1] - bx lr - .align 2, 0 -_080A05CC: .4byte gUnknown_3000F3A -_080A05D0: .4byte gUnknown_3000F3C -_080A05D4: .4byte gUnknown_3000F38 -_080A05D8: .4byte gUnknown_3000F44 -_080A05DC: .4byte TilesetAnim_Slateport - thumb_func_end sub_080A05B4 - - thumb_func_start sub_080A05E0 -sub_080A05E0: @ 0x080A05E0 - ldr r1, _080A05F8 - ldr r0, _080A05FC - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _080A0600 - ldr r0, _080A0604 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _080A0608 - ldr r0, _080A060C - str r0, [r1] - bx lr - .align 2, 0 -_080A05F8: .4byte gUnknown_3000F3A -_080A05FC: .4byte gUnknown_3000F36 -_080A0600: .4byte gUnknown_3000F3C -_080A0604: .4byte gUnknown_3000F38 -_080A0608: .4byte gUnknown_3000F44 -_080A060C: .4byte TilesetAnim_Mauville - thumb_func_end sub_080A05E0 - - thumb_func_start sub_080A0610 -sub_080A0610: @ 0x080A0610 - ldr r1, _080A0628 - movs r0, #0 - strh r0, [r1] - ldr r1, _080A062C - ldr r0, _080A0630 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _080A0634 - ldr r0, _080A0638 - str r0, [r1] - bx lr - .align 2, 0 -_080A0628: .4byte gUnknown_3000F3A -_080A062C: .4byte gUnknown_3000F3C -_080A0630: .4byte gUnknown_3000F38 -_080A0634: .4byte gUnknown_3000F44 -_080A0638: .4byte TilesetAnim_Lavaridge - thumb_func_end sub_080A0610 - - thumb_func_start sub_080A063C -sub_080A063C: @ 0x080A063C - ldr r1, _080A0654 - movs r0, #0 - strh r0, [r1] - ldr r1, _080A0658 - ldr r0, _080A065C - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _080A0660 - movs r0, #0 - str r0, [r1] - bx lr - .align 2, 0 -_080A0654: .4byte gUnknown_3000F3A -_080A0658: .4byte gUnknown_3000F3C -_080A065C: .4byte gUnknown_3000F38 -_080A0660: .4byte gUnknown_3000F44 - thumb_func_end sub_080A063C - - thumb_func_start sub_080A0664 -sub_080A0664: @ 0x080A0664 - ldr r1, _080A067C - movs r0, #0 - strh r0, [r1] - ldr r1, _080A0680 - ldr r0, _080A0684 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _080A0688 - movs r0, #0 - str r0, [r1] - bx lr - .align 2, 0 -_080A067C: .4byte gUnknown_3000F3A -_080A0680: .4byte gUnknown_3000F3C -_080A0684: .4byte gUnknown_3000F38 -_080A0688: .4byte gUnknown_3000F44 - thumb_func_end sub_080A0664 - - thumb_func_start sub_080A068C -sub_080A068C: @ 0x080A068C - ldr r1, _080A06A4 - movs r0, #0 - strh r0, [r1] - ldr r1, _080A06A8 - ldr r0, _080A06AC - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _080A06B0 - movs r0, #0 - str r0, [r1] - bx lr - .align 2, 0 -_080A06A4: .4byte gUnknown_3000F3A -_080A06A8: .4byte gUnknown_3000F3C -_080A06AC: .4byte gUnknown_3000F38 -_080A06B0: .4byte gUnknown_3000F44 - thumb_func_end sub_080A068C - - thumb_func_start sub_080A06B4 -sub_080A06B4: @ 0x080A06B4 - ldr r1, _080A06CC - movs r0, #0 - strh r0, [r1] - ldr r1, _080A06D0 - ldr r0, _080A06D4 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _080A06D8 - movs r0, #0 - str r0, [r1] - bx lr - .align 2, 0 -_080A06CC: .4byte gUnknown_3000F3A -_080A06D0: .4byte gUnknown_3000F3C -_080A06D4: .4byte gUnknown_3000F38 -_080A06D8: .4byte gUnknown_3000F44 - thumb_func_end sub_080A06B4 - - thumb_func_start sub_080A06DC -sub_080A06DC: @ 0x080A06DC - ldr r1, _080A06F4 - movs r0, #0 - strh r0, [r1] - ldr r1, _080A06F8 - ldr r0, _080A06FC - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _080A0700 - ldr r0, _080A0704 - str r0, [r1] - bx lr - .align 2, 0 -_080A06F4: .4byte gUnknown_3000F3A -_080A06F8: .4byte gUnknown_3000F3C -_080A06FC: .4byte gUnknown_3000F38 -_080A0700: .4byte gUnknown_3000F44 -_080A0704: .4byte TilesetAnim_EverGrande - thumb_func_end sub_080A06DC - - thumb_func_start sub_080A0708 -sub_080A0708: @ 0x080A0708 - ldr r1, _080A0720 - ldr r0, _080A0724 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _080A0728 - ldr r0, _080A072C - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _080A0730 - ldr r0, _080A0734 - str r0, [r1] - bx lr - .align 2, 0 -_080A0720: .4byte gUnknown_3000F3A -_080A0724: .4byte gUnknown_3000F36 -_080A0728: .4byte gUnknown_3000F3C -_080A072C: .4byte gUnknown_3000F38 -_080A0730: .4byte gUnknown_3000F44 -_080A0734: .4byte TilesetAnim_Pacifidlog - thumb_func_end sub_080A0708 - - thumb_func_start sub_080A0738 -sub_080A0738: @ 0x080A0738 - ldr r1, _080A0750 - movs r0, #0 - strh r0, [r1] - ldr r1, _080A0754 - ldr r0, _080A0758 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _080A075C - ldr r0, _080A0760 - str r0, [r1] - bx lr - .align 2, 0 -_080A0750: .4byte gUnknown_3000F3A -_080A0754: .4byte gUnknown_3000F3C -_080A0758: .4byte gUnknown_3000F38 -_080A075C: .4byte gUnknown_3000F44 -_080A0760: .4byte TilesetAnim_Sootopolis - thumb_func_end sub_080A0738 - - thumb_func_start sub_080A0764 -sub_080A0764: @ 0x080A0764 - ldr r1, _080A077C - movs r0, #0 - strh r0, [r1] - ldr r1, _080A0780 - ldr r0, _080A0784 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _080A0788 - ldr r0, _080A078C - str r0, [r1] - bx lr - .align 2, 0 -_080A077C: .4byte gUnknown_3000F3A -_080A0780: .4byte gUnknown_3000F3C -_080A0784: .4byte gUnknown_3000F38 -_080A0788: .4byte gUnknown_3000F44 -_080A078C: .4byte TilesetAnim_BattleFrontierOutsideWest - thumb_func_end sub_080A0764 - - thumb_func_start sub_080A0790 -sub_080A0790: @ 0x080A0790 - ldr r1, _080A07A8 - movs r0, #0 - strh r0, [r1] - ldr r1, _080A07AC - ldr r0, _080A07B0 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _080A07B4 - ldr r0, _080A07B8 - str r0, [r1] - bx lr - .align 2, 0 -_080A07A8: .4byte gUnknown_3000F3A -_080A07AC: .4byte gUnknown_3000F3C -_080A07B0: .4byte gUnknown_3000F38 -_080A07B4: .4byte gUnknown_3000F44 -_080A07B8: .4byte TilesetAnim_BattleFrontierOutsideEast - thumb_func_end sub_080A0790 - - thumb_func_start sub_080A07BC -sub_080A07BC: @ 0x080A07BC - ldr r1, _080A07D0 - movs r0, #0 - strh r0, [r1] - ldr r1, _080A07D4 - movs r0, #0x80 - strh r0, [r1] - ldr r1, _080A07D8 - ldr r0, _080A07DC - str r0, [r1] - bx lr - .align 2, 0 -_080A07D0: .4byte gUnknown_3000F3A -_080A07D4: .4byte gUnknown_3000F3C -_080A07D8: .4byte gUnknown_3000F44 -_080A07DC: .4byte TilesetAnim_Underwater - thumb_func_end sub_080A07BC - - thumb_func_start InitTilesetAnim_SootopolisGym -InitTilesetAnim_SootopolisGym: @ 0x080A07E0 - ldr r1, _080A07F4 - movs r0, #0 - strh r0, [r1] - ldr r1, _080A07F8 - movs r0, #0xf0 - strh r0, [r1] - ldr r1, _080A07FC - ldr r0, _080A0800 - str r0, [r1] - bx lr - .align 2, 0 -_080A07F4: .4byte gUnknown_3000F3A -_080A07F8: .4byte gUnknown_3000F3C -_080A07FC: .4byte gUnknown_3000F44 -_080A0800: .4byte TilesetAnim_SootopolisGym - thumb_func_end InitTilesetAnim_SootopolisGym - - thumb_func_start sub_080A0804 -sub_080A0804: @ 0x080A0804 - ldr r1, _080A081C - movs r0, #0 - strh r0, [r1] - ldr r1, _080A0820 - ldr r0, _080A0824 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _080A0828 - ldr r0, _080A082C - str r0, [r1] - bx lr - .align 2, 0 -_080A081C: .4byte gUnknown_3000F3A -_080A0820: .4byte gUnknown_3000F3C -_080A0824: .4byte gUnknown_3000F38 -_080A0828: .4byte gUnknown_3000F44 -_080A082C: .4byte TilesetAnim_Cave - thumb_func_end sub_080A0804 - - thumb_func_start sub_080A0830 -sub_080A0830: @ 0x080A0830 - ldr r1, _080A0844 - movs r0, #0 - strh r0, [r1] - ldr r1, _080A0848 - movs r0, #0x80 - strh r0, [r1] - ldr r1, _080A084C - ldr r0, _080A0850 - str r0, [r1] - bx lr - .align 2, 0 -_080A0844: .4byte gUnknown_3000F3A -_080A0848: .4byte gUnknown_3000F3C -_080A084C: .4byte gUnknown_3000F44 -_080A0850: .4byte TilesetAnim_EliteFour - thumb_func_end sub_080A0830 - - thumb_func_start sub_080A0854 -sub_080A0854: @ 0x080A0854 - ldr r1, _080A086C - movs r0, #0 - strh r0, [r1] - ldr r1, _080A0870 - ldr r0, _080A0874 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _080A0878 - ldr r0, _080A087C - str r0, [r1] - bx lr - .align 2, 0 -_080A086C: .4byte gUnknown_3000F3A -_080A0870: .4byte gUnknown_3000F3C -_080A0874: .4byte gUnknown_3000F38 -_080A0878: .4byte gUnknown_3000F44 -_080A087C: .4byte TilesetAnim_MauvilleGym - thumb_func_end sub_080A0854 - - thumb_func_start sub_080A0880 -sub_080A0880: @ 0x080A0880 - ldr r1, _080A0898 - movs r0, #0 - strh r0, [r1] - ldr r1, _080A089C - ldr r0, _080A08A0 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _080A08A4 - ldr r0, _080A08A8 - str r0, [r1] - bx lr - .align 2, 0 -_080A0898: .4byte gUnknown_3000F3A -_080A089C: .4byte gUnknown_3000F3C -_080A08A0: .4byte gUnknown_3000F38 -_080A08A4: .4byte gUnknown_3000F44 -_080A08A8: .4byte TilesetAnim_BikeShop - thumb_func_end sub_080A0880 - - thumb_func_start sub_080A08AC -sub_080A08AC: @ 0x080A08AC - ldr r1, _080A08C4 - movs r0, #0 - strh r0, [r1] - ldr r1, _080A08C8 - ldr r0, _080A08CC - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _080A08D0 - ldr r0, _080A08D4 - str r0, [r1] - bx lr - .align 2, 0 -_080A08C4: .4byte gUnknown_3000F3A -_080A08C8: .4byte gUnknown_3000F3C -_080A08CC: .4byte gUnknown_3000F38 -_080A08D0: .4byte gUnknown_3000F44 -_080A08D4: .4byte TilesetAnim_BattlePyramid - thumb_func_end sub_080A08AC - - thumb_func_start sub_080A08D8 -sub_080A08D8: @ 0x080A08D8 - ldr r1, _080A08F0 - movs r0, #0 - strh r0, [r1] - ldr r1, _080A08F4 - ldr r0, _080A08F8 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _080A08FC - ldr r0, _080A0900 - str r0, [r1] - bx lr - .align 2, 0 -_080A08F0: .4byte gUnknown_3000F3A -_080A08F4: .4byte gUnknown_3000F3C -_080A08F8: .4byte gUnknown_3000F38 -_080A08FC: .4byte gUnknown_3000F44 -_080A0900: .4byte TilesetAnim_BattleDome - thumb_func_end sub_080A08D8 - - thumb_func_start TilesetAnim_Rustboro -TilesetAnim_Rustboro: @ 0x080A0904 - push {r4, r5, r6, lr} - lsls r5, r0, #0x10 - movs r0, #0xe0 - lsls r0, r0, #0xb - ands r0, r5 - lsrs r6, r0, #0x10 - cmp r6, #0 - bne _080A0924 - lsrs r4, r5, #0x13 - adds r0, r4, #0 - movs r1, #0 - bl QueueAnimTiles_Rustboro_WindyWater - adds r0, r4, #0 - bl QueueAnimTiles_Rustboro_Fountain -_080A0924: - cmp r6, #1 - bne _080A0930 - lsrs r0, r5, #0x13 - movs r1, #1 - bl QueueAnimTiles_Rustboro_WindyWater -_080A0930: - cmp r6, #2 - bne _080A093C - lsrs r0, r5, #0x13 - movs r1, #2 - bl QueueAnimTiles_Rustboro_WindyWater -_080A093C: - cmp r6, #3 - bne _080A0948 - lsrs r0, r5, #0x13 - movs r1, #3 - bl QueueAnimTiles_Rustboro_WindyWater -_080A0948: - cmp r6, #4 - bne _080A0954 - lsrs r0, r5, #0x13 - movs r1, #4 - bl QueueAnimTiles_Rustboro_WindyWater -_080A0954: - cmp r6, #5 - bne _080A0960 - lsrs r0, r5, #0x13 - movs r1, #5 - bl QueueAnimTiles_Rustboro_WindyWater -_080A0960: - cmp r6, #6 - bne _080A096C - lsrs r0, r5, #0x13 - movs r1, #6 - bl QueueAnimTiles_Rustboro_WindyWater -_080A096C: - cmp r6, #7 - bne _080A0978 - lsrs r0, r5, #0x13 - movs r1, #7 - bl QueueAnimTiles_Rustboro_WindyWater -_080A0978: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end TilesetAnim_Rustboro - - thumb_func_start TilesetAnim_Dewford -TilesetAnim_Dewford: @ 0x080A0980 - push {lr} - lsls r1, r0, #0x10 - movs r0, #0xe0 - lsls r0, r0, #0xb - ands r0, r1 - cmp r0, #0 - bne _080A0994 - lsrs r0, r1, #0x13 - bl QueueAnimTiles_Dewford_Flag -_080A0994: - pop {r0} - bx r0 - thumb_func_end TilesetAnim_Dewford - - thumb_func_start TilesetAnim_Slateport -TilesetAnim_Slateport: @ 0x080A0998 - push {lr} - lsls r1, r0, #0x10 - movs r0, #0xf0 - lsls r0, r0, #0xc - ands r0, r1 - cmp r0, #0 - bne _080A09AC - lsrs r0, r1, #0x14 - bl QueueAnimTiles_Slateport_Balloons -_080A09AC: - pop {r0} - bx r0 - thumb_func_end TilesetAnim_Slateport - - thumb_func_start TilesetAnim_Mauville -TilesetAnim_Mauville: @ 0x080A09B0 - push {r4, r5, lr} - lsls r4, r0, #0x10 - movs r0, #0xe0 - lsls r0, r0, #0xb - ands r0, r4 - lsrs r5, r0, #0x10 - cmp r5, #0 - bne _080A09C8 - lsrs r0, r4, #0x13 - movs r1, #0 - bl QueueAnimTiles_Mauville_Flowers -_080A09C8: - cmp r5, #1 - bne _080A09D4 - lsrs r0, r4, #0x13 - movs r1, #1 - bl QueueAnimTiles_Mauville_Flowers -_080A09D4: - cmp r5, #2 - bne _080A09E0 - lsrs r0, r4, #0x13 - movs r1, #2 - bl QueueAnimTiles_Mauville_Flowers -_080A09E0: - cmp r5, #3 - bne _080A09EC - lsrs r0, r4, #0x13 - movs r1, #3 - bl QueueAnimTiles_Mauville_Flowers -_080A09EC: - cmp r5, #4 - bne _080A09F8 - lsrs r0, r4, #0x13 - movs r1, #4 - bl QueueAnimTiles_Mauville_Flowers -_080A09F8: - cmp r5, #5 - bne _080A0A04 - lsrs r0, r4, #0x13 - movs r1, #5 - bl QueueAnimTiles_Mauville_Flowers -_080A0A04: - cmp r5, #6 - bne _080A0A10 - lsrs r0, r4, #0x13 - movs r1, #6 - bl QueueAnimTiles_Mauville_Flowers -_080A0A10: - cmp r5, #7 - bne _080A0A1C - lsrs r0, r4, #0x13 - movs r1, #7 - bl QueueAnimTiles_Mauville_Flowers -_080A0A1C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end TilesetAnim_Mauville - - thumb_func_start TilesetAnim_Lavaridge -TilesetAnim_Lavaridge: @ 0x080A0A24 - push {r4, r5, lr} - lsls r4, r0, #0x10 - movs r0, #0xf0 - lsls r0, r0, #0xc - ands r0, r4 - lsrs r5, r0, #0x10 - cmp r5, #0 - bne _080A0A3E - lsrs r0, r4, #0x14 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl QueueAnimTiles_Lavaridge_Steam -_080A0A3E: - cmp r5, #1 - bne _080A0A48 - lsrs r0, r4, #0x14 - bl QueueAnimTiles_Lavaridge_Lava -_080A0A48: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end TilesetAnim_Lavaridge - - thumb_func_start TilesetAnim_EverGrande -TilesetAnim_EverGrande: @ 0x080A0A50 - push {r4, r5, lr} - lsls r4, r0, #0x10 - movs r0, #0xe0 - lsls r0, r0, #0xb - ands r0, r4 - lsrs r5, r0, #0x10 - cmp r5, #0 - bne _080A0A68 - lsrs r0, r4, #0x13 - movs r1, #0 - bl QueueAnimTiles_EverGrande_Flowers -_080A0A68: - cmp r5, #1 - bne _080A0A74 - lsrs r0, r4, #0x13 - movs r1, #1 - bl QueueAnimTiles_EverGrande_Flowers -_080A0A74: - cmp r5, #2 - bne _080A0A80 - lsrs r0, r4, #0x13 - movs r1, #2 - bl QueueAnimTiles_EverGrande_Flowers -_080A0A80: - cmp r5, #3 - bne _080A0A8C - lsrs r0, r4, #0x13 - movs r1, #3 - bl QueueAnimTiles_EverGrande_Flowers -_080A0A8C: - cmp r5, #4 - bne _080A0A98 - lsrs r0, r4, #0x13 - movs r1, #4 - bl QueueAnimTiles_EverGrande_Flowers -_080A0A98: - cmp r5, #5 - bne _080A0AA4 - lsrs r0, r4, #0x13 - movs r1, #5 - bl QueueAnimTiles_EverGrande_Flowers -_080A0AA4: - cmp r5, #6 - bne _080A0AB0 - lsrs r0, r4, #0x13 - movs r1, #6 - bl QueueAnimTiles_EverGrande_Flowers -_080A0AB0: - cmp r5, #7 - bne _080A0ABC - lsrs r0, r4, #0x13 - movs r1, #7 - bl QueueAnimTiles_EverGrande_Flowers -_080A0ABC: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end TilesetAnim_EverGrande - - thumb_func_start TilesetAnim_Pacifidlog -TilesetAnim_Pacifidlog: @ 0x080A0AC4 - push {r4, r5, lr} - lsls r4, r0, #0x10 - movs r0, #0xf0 - lsls r0, r0, #0xc - ands r0, r4 - lsrs r5, r0, #0x10 - cmp r5, #0 - bne _080A0ADE - lsrs r0, r4, #0x14 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl QueueAnimTiles_Pacifidlog_LogBridges -_080A0ADE: - cmp r5, #1 - bne _080A0AEC - lsrs r0, r4, #0x14 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl QueueAnimTiles_Pacifidlog_WaterCurrents -_080A0AEC: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end TilesetAnim_Pacifidlog - - thumb_func_start TilesetAnim_Sootopolis -TilesetAnim_Sootopolis: @ 0x080A0AF4 - push {lr} - lsls r1, r0, #0x10 - movs r0, #0xf0 - lsls r0, r0, #0xc - ands r0, r1 - cmp r0, #0 - bne _080A0B08 - lsrs r0, r1, #0x14 - bl QueueAnimTiles_Sootopolis_StormyWater -_080A0B08: - pop {r0} - bx r0 - thumb_func_end TilesetAnim_Sootopolis - - thumb_func_start TilesetAnim_Underwater -TilesetAnim_Underwater: @ 0x080A0B0C - push {lr} - lsls r1, r0, #0x10 - movs r0, #0xf0 - lsls r0, r0, #0xc - ands r0, r1 - cmp r0, #0 - bne _080A0B24 - lsrs r0, r1, #0x14 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl QueueAnimTiles_Underwater_Seaweed -_080A0B24: - pop {r0} - bx r0 - thumb_func_end TilesetAnim_Underwater - - thumb_func_start TilesetAnim_Cave -TilesetAnim_Cave: @ 0x080A0B28 - push {lr} - lsls r1, r0, #0x10 - movs r0, #0xf0 - lsls r0, r0, #0xc - ands r0, r1 - lsrs r0, r0, #0x10 - cmp r0, #1 - bne _080A0B3E - lsrs r0, r1, #0x14 - bl QueueAnimTiles_Cave_Lava -_080A0B3E: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end TilesetAnim_Cave - - thumb_func_start TilesetAnim_BattleFrontierOutsideWest -TilesetAnim_BattleFrontierOutsideWest: @ 0x080A0B44 - push {lr} - lsls r1, r0, #0x10 - movs r0, #0xe0 - lsls r0, r0, #0xb - ands r0, r1 - cmp r0, #0 - bne _080A0B58 - lsrs r0, r1, #0x13 - bl QueueAnimTiles_BattleFrontierOutsideWest_Flag -_080A0B58: - pop {r0} - bx r0 - thumb_func_end TilesetAnim_BattleFrontierOutsideWest - - thumb_func_start TilesetAnim_BattleFrontierOutsideEast -TilesetAnim_BattleFrontierOutsideEast: @ 0x080A0B5C - push {lr} - lsls r1, r0, #0x10 - movs r0, #0xe0 - lsls r0, r0, #0xb - ands r0, r1 - cmp r0, #0 - bne _080A0B70 - lsrs r0, r1, #0x13 - bl QueueAnimTiles_BattleFrontierOutsideEast_Flag -_080A0B70: - pop {r0} - bx r0 - thumb_func_end TilesetAnim_BattleFrontierOutsideEast - - thumb_func_start QueueAnimTiles_General_LandWaterEdge -QueueAnimTiles_General_LandWaterEdge: @ 0x080A0B74 - push {lr} - lsls r0, r0, #0x10 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r0 - ldr r0, _080A0B94 - lsrs r1, r1, #0xe - adds r1, r1, r0 - ldr r0, [r1] - ldr r1, _080A0B98 - movs r2, #0xa0 - lsls r2, r2, #1 - bl AppendTilesetAnimToBuffer - pop {r0} - bx r0 - .align 2, 0 -_080A0B94: .4byte gUnknown_84EBD90 -_080A0B98: .4byte 0x06003C00 - thumb_func_end QueueAnimTiles_General_LandWaterEdge - - thumb_func_start QueueAnimTiles_Lavaridge_Steam -QueueAnimTiles_Lavaridge_Steam: @ 0x080A0B9C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #3 - ands r0, r4 - ldr r5, _080A0BD8 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r0, [r0] - ldr r1, _080A0BDC - movs r2, #0x80 - bl AppendTilesetAnimToBuffer - adds r1, r4, #2 - adds r0, r1, #0 - asrs r0, r0, #2 - lsls r0, r0, #2 - subs r0, r1, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r0, r0, r5 - ldr r0, [r0] - ldr r1, _080A0BE0 - movs r2, #0x80 - bl AppendTilesetAnimToBuffer - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A0BD8: .4byte gUnknown_84EBFA0 -_080A0BDC: .4byte 0x06006400 -_080A0BE0: .4byte 0x06006480 - thumb_func_end QueueAnimTiles_Lavaridge_Steam - - thumb_func_start QueueAnimTiles_Pacifidlog_LogBridges -QueueAnimTiles_Pacifidlog_LogBridges: @ 0x080A0BE4 - push {lr} - lsls r0, r0, #0x18 - movs r1, #0xc0 - lsls r1, r1, #0x12 - ands r1, r0 - ldr r0, _080A0C04 - lsrs r1, r1, #0x16 - adds r1, r1, r0 - ldr r0, [r1] - ldr r1, _080A0C08 - movs r2, #0xf0 - lsls r2, r2, #2 - bl AppendTilesetAnimToBuffer - pop {r0} - bx r0 - .align 2, 0 -_080A0C04: .4byte gUnknown_84ECAF0 -_080A0C08: .4byte 0x06007A00 - thumb_func_end QueueAnimTiles_Pacifidlog_LogBridges - - thumb_func_start QueueAnimTiles_Underwater_Seaweed -QueueAnimTiles_Underwater_Seaweed: @ 0x080A0C0C - push {lr} - lsls r0, r0, #0x18 - movs r1, #0xc0 - lsls r1, r1, #0x12 - ands r1, r0 - ldr r0, _080A0C2C - lsrs r1, r1, #0x16 - adds r1, r1, r0 - ldr r0, [r1] - ldr r1, _080A0C30 - movs r2, #0x80 - bl AppendTilesetAnimToBuffer - pop {r0} - bx r0 - .align 2, 0 -_080A0C2C: .4byte gUnknown_84ECD00 -_080A0C30: .4byte 0x06007E00 - thumb_func_end QueueAnimTiles_Underwater_Seaweed - - thumb_func_start QueueAnimTiles_Pacifidlog_WaterCurrents -QueueAnimTiles_Pacifidlog_WaterCurrents: @ 0x080A0C34 - push {lr} - lsls r0, r0, #0x18 - movs r1, #0xe0 - lsls r1, r1, #0x13 - ands r1, r0 - ldr r0, _080A0C54 - lsrs r1, r1, #0x16 - adds r1, r1, r0 - ldr r0, [r1] - ldr r1, _080A0C58 - movs r2, #0x80 - lsls r2, r2, #1 - bl AppendTilesetAnimToBuffer - pop {r0} - bx r0 - .align 2, 0 -_080A0C54: .4byte gUnknown_84ED510 -_080A0C58: .4byte 0x06007E00 - thumb_func_end QueueAnimTiles_Pacifidlog_WaterCurrents - - thumb_func_start QueueAnimTiles_Mauville_Flowers -QueueAnimTiles_Mauville_Flowers: @ 0x080A0C5C - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - subs r0, r5, r6 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0xb - bhi _080A0CB8 - adds r0, r5, #0 - movs r1, #0xc - bl __umodsi3 - adds r4, r0, #0 - lsls r4, r4, #0x10 - ldr r0, _080A0CA8 - lsrs r4, r4, #0xe - adds r0, r4, r0 - ldr r0, [r0] - ldr r1, _080A0CAC - lsls r5, r6, #2 - adds r1, r5, r1 - ldr r1, [r1] - movs r2, #0x80 - bl AppendTilesetAnimToBuffer - ldr r0, _080A0CB0 - adds r4, r4, r0 - ldr r0, [r4] - ldr r1, _080A0CB4 - adds r5, r5, r1 - ldr r1, [r5] - movs r2, #0x80 - bl AppendTilesetAnimToBuffer - b _080A0CE4 - .align 2, 0 -_080A0CA8: .4byte gUnknown_84EDA90 -_080A0CAC: .4byte gUnknown_84EDA50 -_080A0CB0: .4byte gUnknown_84EDAC0 -_080A0CB4: .4byte gUnknown_84EDA70 -_080A0CB8: - movs r0, #3 - ands r5, r0 - ldr r0, _080A0CEC - lsls r5, r5, #2 - adds r0, r5, r0 - ldr r0, [r0] - ldr r1, _080A0CF0 - lsls r4, r6, #2 - adds r1, r4, r1 - ldr r1, [r1] - movs r2, #0x80 - bl AppendTilesetAnimToBuffer - ldr r0, _080A0CF4 - adds r5, r5, r0 - ldr r0, [r5] - ldr r1, _080A0CF8 - adds r4, r4, r1 - ldr r1, [r4] - movs r2, #0x80 - bl AppendTilesetAnimToBuffer -_080A0CE4: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080A0CEC: .4byte gUnknown_84EDAF0 -_080A0CF0: .4byte gUnknown_84EDA50 -_080A0CF4: .4byte gUnknown_84EDB00 -_080A0CF8: .4byte gUnknown_84EDA70 - thumb_func_end QueueAnimTiles_Mauville_Flowers - - thumb_func_start QueueAnimTiles_Rustboro_WindyWater -QueueAnimTiles_Rustboro_WindyWater: @ 0x080A0CFC - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - subs r0, r0, r3 - lsls r0, r0, #0x10 - movs r1, #0xe0 - lsls r1, r1, #0xb - ands r1, r0 - ldr r0, _080A0D30 - lsrs r1, r1, #0xe - adds r1, r1, r0 - ldr r2, [r1] - cmp r2, #0 - beq _080A0D2C - ldr r0, _080A0D34 - lsls r1, r3, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - movs r2, #0x80 - bl AppendTilesetAnimToBuffer -_080A0D2C: - pop {r0} - bx r0 - .align 2, 0 -_080A0D30: .4byte gUnknown_84EDF30 -_080A0D34: .4byte gUnknown_84EDF10 - thumb_func_end QueueAnimTiles_Rustboro_WindyWater - - thumb_func_start QueueAnimTiles_Rustboro_Fountain -QueueAnimTiles_Rustboro_Fountain: @ 0x080A0D38 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - ands r0, r1 - ldr r1, _080A0D58 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _080A0D5C - movs r2, #0x80 - bl AppendTilesetAnimToBuffer - pop {r0} - bx r0 - .align 2, 0 -_080A0D58: .4byte gUnknown_84EE070 -_080A0D5C: .4byte 0x06007800 - thumb_func_end QueueAnimTiles_Rustboro_Fountain - - thumb_func_start QueueAnimTiles_Lavaridge_Lava -QueueAnimTiles_Lavaridge_Lava: @ 0x080A0D60 - push {lr} - lsls r0, r0, #0x10 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r0 - ldr r0, _080A0D80 - lsrs r1, r1, #0xe - adds r1, r1, r0 - ldr r0, [r1] - ldr r1, _080A0D84 - movs r2, #0x80 - bl AppendTilesetAnimToBuffer - pop {r0} - bx r0 - .align 2, 0 -_080A0D80: .4byte gUnknown_84EE498 -_080A0D84: .4byte 0x06005400 - thumb_func_end QueueAnimTiles_Lavaridge_Lava - - thumb_func_start QueueAnimTiles_EverGrande_Flowers -QueueAnimTiles_EverGrande_Flowers: @ 0x080A0D88 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - subs r0, r0, r1 - lsls r0, r0, #0x10 - movs r2, #0xe0 - lsls r2, r2, #0xb - ands r2, r0 - ldr r0, _080A0DB8 - lsrs r2, r2, #0xe - adds r2, r2, r0 - ldr r0, [r2] - ldr r2, _080A0DBC - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - movs r2, #0x80 - bl AppendTilesetAnimToBuffer - pop {r0} - bx r0 - .align 2, 0 -_080A0DB8: .4byte gUnknown_84EE8E8 -_080A0DBC: .4byte gUnknown_84EE8C8 - thumb_func_end QueueAnimTiles_EverGrande_Flowers - - thumb_func_start QueueAnimTiles_Cave_Lava -QueueAnimTiles_Cave_Lava: @ 0x080A0DC0 - push {lr} - lsls r0, r0, #0x10 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r0 - ldr r0, _080A0DE0 - lsrs r1, r1, #0xe - adds r1, r1, r0 - ldr r0, [r1] - ldr r1, _080A0DE4 - movs r2, #0x80 - bl AppendTilesetAnimToBuffer - pop {r0} - bx r0 - .align 2, 0 -_080A0DE0: .4byte gUnknown_84EE498 -_080A0DE4: .4byte 0x06007400 - thumb_func_end QueueAnimTiles_Cave_Lava - - thumb_func_start QueueAnimTiles_Dewford_Flag -QueueAnimTiles_Dewford_Flag: @ 0x080A0DE8 - push {lr} - lsls r0, r0, #0x10 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r0 - ldr r0, _080A0E08 - lsrs r1, r1, #0xe - adds r1, r1, r0 - ldr r0, [r1] - ldr r1, _080A0E0C - movs r2, #0xc0 - bl AppendTilesetAnimToBuffer - pop {r0} - bx r0 - .align 2, 0 -_080A0E08: .4byte gUnknown_84EEC08 -_080A0E0C: .4byte 0x06005540 - thumb_func_end QueueAnimTiles_Dewford_Flag - - thumb_func_start QueueAnimTiles_BattleFrontierOutsideWest_Flag -QueueAnimTiles_BattleFrontierOutsideWest_Flag: @ 0x080A0E10 - push {lr} - lsls r0, r0, #0x10 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r0 - ldr r0, _080A0E30 - lsrs r1, r1, #0xe - adds r1, r1, r0 - ldr r0, [r1] - ldr r1, _080A0E34 - movs r2, #0xc0 - bl AppendTilesetAnimToBuffer - pop {r0} - bx r0 - .align 2, 0 -_080A0E30: .4byte gUnknown_84EEF18 -_080A0E34: .4byte 0x06005B40 - thumb_func_end QueueAnimTiles_BattleFrontierOutsideWest_Flag - - thumb_func_start QueueAnimTiles_BattleFrontierOutsideEast_Flag -QueueAnimTiles_BattleFrontierOutsideEast_Flag: @ 0x080A0E38 - push {lr} - lsls r0, r0, #0x10 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r0 - ldr r0, _080A0E58 - lsrs r1, r1, #0xe - adds r1, r1, r0 - ldr r0, [r1] - ldr r1, _080A0E5C - movs r2, #0xc0 - bl AppendTilesetAnimToBuffer - pop {r0} - bx r0 - .align 2, 0 -_080A0E58: .4byte gUnknown_84EF228 -_080A0E5C: .4byte 0x06005B40 - thumb_func_end QueueAnimTiles_BattleFrontierOutsideEast_Flag - - thumb_func_start QueueAnimTiles_Slateport_Balloons -QueueAnimTiles_Slateport_Balloons: @ 0x080A0E60 - push {lr} - lsls r0, r0, #0x10 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r0 - ldr r0, _080A0E80 - lsrs r1, r1, #0xe - adds r1, r1, r0 - ldr r0, [r1] - ldr r1, _080A0E84 - movs r2, #0x80 - bl AppendTilesetAnimToBuffer - pop {r0} - bx r0 - .align 2, 0 -_080A0E80: .4byte gUnknown_84EF438 -_080A0E84: .4byte 0x06005C00 - thumb_func_end QueueAnimTiles_Slateport_Balloons - - thumb_func_start TilesetAnim_MauvilleGym -TilesetAnim_MauvilleGym: @ 0x080A0E88 - push {lr} - lsls r2, r0, #0x10 - lsrs r0, r2, #0x10 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _080A0E9C - lsrs r0, r2, #0x11 - bl QueueAnimTiles_MauvilleGym_ElectricGates -_080A0E9C: - pop {r0} - bx r0 - thumb_func_end TilesetAnim_MauvilleGym - - thumb_func_start TilesetAnim_SootopolisGym -TilesetAnim_SootopolisGym: @ 0x080A0EA0 - push {lr} - lsls r1, r0, #0x10 - movs r0, #0xe0 - lsls r0, r0, #0xb - ands r0, r1 - cmp r0, #0 - bne _080A0EB4 - lsrs r0, r1, #0x13 - bl QueueAnimTiles_SootopolisGym_Waterfalls -_080A0EB4: - pop {r0} - bx r0 - thumb_func_end TilesetAnim_SootopolisGym - - thumb_func_start TilesetAnim_EliteFour -TilesetAnim_EliteFour: @ 0x080A0EB8 - push {r4, r5, lr} - lsls r4, r0, #0x10 - lsrs r0, r4, #0x10 - adds r5, r0, #0 - movs r0, #0x3f - ands r0, r5 - cmp r0, #1 - bne _080A0ECE - lsrs r0, r4, #0x16 - bl QueueAnimTiles_EliteFour_GroundLights -_080A0ECE: - movs r0, #7 - ands r0, r5 - cmp r0, #1 - bne _080A0EDC - lsrs r0, r4, #0x13 - bl QueueAnimTiles_EliteFour_WallLights -_080A0EDC: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end TilesetAnim_EliteFour - - thumb_func_start TilesetAnim_BikeShop -TilesetAnim_BikeShop: @ 0x080A0EE4 - push {lr} - lsls r1, r0, #0x10 - movs r0, #0xc0 - lsls r0, r0, #0xa - ands r0, r1 - cmp r0, #0 - bne _080A0EF8 - lsrs r0, r1, #0x12 - bl QueueAnimTiles_BikeShop_BlinkingLights -_080A0EF8: - pop {r0} - bx r0 - thumb_func_end TilesetAnim_BikeShop - - thumb_func_start TilesetAnim_BattlePyramid -TilesetAnim_BattlePyramid: @ 0x080A0EFC - push {r4, lr} - lsls r4, r0, #0x10 - movs r0, #0xe0 - lsls r0, r0, #0xb - ands r0, r4 - cmp r0, #0 - bne _080A0F18 - lsrs r4, r4, #0x13 - adds r0, r4, #0 - bl QueueAnimTiles_BattlePyramid_Torch - adds r0, r4, #0 - bl sub_080A10B4 -_080A0F18: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end TilesetAnim_BattlePyramid - - thumb_func_start TilesetAnim_BattleDome -TilesetAnim_BattleDome: @ 0x080A0F20 - push {lr} - lsls r1, r0, #0x10 - movs r0, #0xc0 - lsls r0, r0, #0xa - ands r0, r1 - cmp r0, #0 - bne _080A0F34 - lsrs r0, r1, #0x12 - bl BlendAnimPalette_BattleDome_FloorLights -_080A0F34: - pop {r0} - bx r0 - thumb_func_end TilesetAnim_BattleDome - - thumb_func_start TilesetAnim_BattleDome2 -TilesetAnim_BattleDome2: @ 0x080A0F38 - push {lr} - lsls r1, r0, #0x10 - movs r0, #0xc0 - lsls r0, r0, #0xa - ands r0, r1 - cmp r0, #0 - bne _080A0F4C - lsrs r0, r1, #0x12 - bl BlendAnimPalette_BattleDome_FloorLightsNoBlend -_080A0F4C: - pop {r0} - bx r0 - thumb_func_end TilesetAnim_BattleDome2 - - thumb_func_start QueueAnimTiles_Building_TVTurnedOn -QueueAnimTiles_Building_TVTurnedOn: @ 0x080A0F50 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - ands r0, r1 - ldr r1, _080A0F70 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _080A0F74 - movs r2, #0x80 - bl AppendTilesetAnimToBuffer - pop {r0} - bx r0 - .align 2, 0 -_080A0F70: .4byte gUnknown_84EF548 -_080A0F74: .4byte 0x06003E00 - thumb_func_end QueueAnimTiles_Building_TVTurnedOn - - thumb_func_start QueueAnimTiles_SootopolisGym_Waterfalls -QueueAnimTiles_SootopolisGym_Waterfalls: @ 0x080A0F78 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - adds r4, r0, #0 - lsls r4, r4, #0x10 - ldr r0, _080A0FB0 - lsrs r4, r4, #0xe - adds r0, r4, r0 - ldr r0, [r0] - ldr r1, _080A0FB4 - movs r2, #0xc0 - lsls r2, r2, #1 - bl AppendTilesetAnimToBuffer - ldr r0, _080A0FB8 - adds r4, r4, r0 - ldr r0, [r4] - ldr r1, _080A0FBC - movs r2, #0xa0 - lsls r2, r2, #2 - bl AppendTilesetAnimToBuffer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A0FB0: .4byte gUnknown_84F0150 -_080A0FB4: .4byte 0x06007E00 -_080A0FB8: .4byte gUnknown_84F015C -_080A0FBC: .4byte 0x06007A00 - thumb_func_end QueueAnimTiles_SootopolisGym_Waterfalls - - thumb_func_start QueueAnimTiles_EliteFour_WallLights -QueueAnimTiles_EliteFour_WallLights: @ 0x080A0FC0 - push {lr} - lsls r0, r0, #0x10 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r0 - ldr r0, _080A0FE0 - lsrs r1, r1, #0xe - adds r1, r1, r0 - ldr r0, [r1] - ldr r1, _080A0FE4 - movs r2, #0x20 - bl AppendTilesetAnimToBuffer - pop {r0} - bx r0 - .align 2, 0 -_080A0FE0: .4byte gUnknown_84F0308 -_080A0FE4: .4byte 0x06007F00 - thumb_func_end QueueAnimTiles_EliteFour_WallLights - - thumb_func_start QueueAnimTiles_EliteFour_GroundLights -QueueAnimTiles_EliteFour_GroundLights: @ 0x080A0FE8 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - ands r0, r1 - ldr r1, _080A1008 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _080A100C - movs r2, #0x80 - bl AppendTilesetAnimToBuffer - pop {r0} - bx r0 - .align 2, 0 -_080A1008: .4byte gUnknown_84F0318 -_080A100C: .4byte 0x06007C00 - thumb_func_end QueueAnimTiles_EliteFour_GroundLights - - thumb_func_start QueueAnimTiles_MauvilleGym_ElectricGates -QueueAnimTiles_MauvilleGym_ElectricGates: @ 0x080A1010 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - ands r0, r1 - ldr r1, _080A1030 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _080A1034 - movs r2, #0x80 - lsls r2, r2, #2 - bl AppendTilesetAnimToBuffer - pop {r0} - bx r0 - .align 2, 0 -_080A1030: .4byte gUnknown_84F0740 -_080A1034: .4byte 0x06005200 - thumb_func_end QueueAnimTiles_MauvilleGym_ElectricGates - - thumb_func_start QueueAnimTiles_BikeShop_BlinkingLights -QueueAnimTiles_BikeShop_BlinkingLights: @ 0x080A1038 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - ands r0, r1 - ldr r1, _080A1058 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _080A105C - movs r2, #0x90 - lsls r2, r2, #1 - bl AppendTilesetAnimToBuffer - pop {r0} - bx r0 - .align 2, 0 -_080A1058: .4byte gUnknown_84F09A8 -_080A105C: .4byte 0x06007E00 - thumb_func_end QueueAnimTiles_BikeShop_BlinkingLights - - thumb_func_start QueueAnimTiles_Sootopolis_StormyWater -QueueAnimTiles_Sootopolis_StormyWater: @ 0x080A1060 - push {lr} - lsls r0, r0, #0x10 - movs r1, #0xe0 - lsls r1, r1, #0xb - ands r1, r0 - ldr r0, _080A1080 - lsrs r1, r1, #0xe - adds r1, r1, r0 - ldr r0, [r1] - ldr r1, _080A1084 - movs r2, #0xc0 - lsls r2, r2, #4 - bl AppendTilesetAnimToBuffer - pop {r0} - bx r0 - .align 2, 0 -_080A1080: .4byte gUnknown_84F89D0 -_080A1084: .4byte 0x06005E00 - thumb_func_end QueueAnimTiles_Sootopolis_StormyWater - - thumb_func_start QueueAnimTiles_BattlePyramid_Torch -QueueAnimTiles_BattlePyramid_Torch: @ 0x080A1088 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - lsls r0, r0, #0x10 - ldr r1, _080A10AC - lsrs r0, r0, #0xe - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _080A10B0 - movs r2, #0x80 - lsls r2, r2, #1 - bl AppendTilesetAnimToBuffer - pop {r0} - bx r0 - .align 2, 0 -_080A10AC: .4byte gUnknown_84FCF70 -_080A10B0: .4byte 0x060052E0 - thumb_func_end QueueAnimTiles_BattlePyramid_Torch - - thumb_func_start sub_080A10B4 -sub_080A10B4: @ 0x080A10B4 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - lsls r0, r0, #0x10 - ldr r1, _080A10D8 - lsrs r0, r0, #0xe - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _080A10DC - movs r2, #0x80 - lsls r2, r2, #1 - bl AppendTilesetAnimToBuffer - pop {r0} - bx r0 - .align 2, 0 -_080A10D8: .4byte gUnknown_84FCF7C -_080A10DC: .4byte 0x060050E0 - thumb_func_end sub_080A10B4 - - thumb_func_start BlendAnimPalette_BattleDome_FloorLights -BlendAnimPalette_BattleDome_FloorLights: @ 0x080A10E0 - push {lr} - lsls r0, r0, #0x10 - ldr r2, _080A1130 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r0 - lsrs r1, r1, #0xe - adds r1, r1, r2 - ldr r0, [r1] - ldr r1, _080A1134 - movs r2, #0x10 - bl CpuSet - ldr r0, _080A1138 - ldrh r2, [r0, #4] - lsls r2, r2, #0x15 - lsrs r2, r2, #0x1b - ldrh r3, [r0, #6] - lsls r3, r3, #0x11 - lsrs r3, r3, #0x11 - movs r0, #0x80 - movs r1, #0x10 - bl BlendPalette - ldr r0, _080A113C - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _080A112A - ldr r1, _080A1140 - ldr r0, _080A1144 - str r0, [r1] - ldr r1, _080A1148 - movs r0, #0x20 - strh r0, [r1] -_080A112A: - pop {r0} - bx r0 - .align 2, 0 -_080A1130: .4byte gUnknown_84FCF88 -_080A1134: .4byte gUnknown_20374B4 -_080A1138: .4byte gUnknown_2037C74 -_080A113C: .4byte Phase2Task_Magma -_080A1140: .4byte gUnknown_3000F44 -_080A1144: .4byte TilesetAnim_BattleDome2 -_080A1148: .4byte gUnknown_3000F3C - thumb_func_end BlendAnimPalette_BattleDome_FloorLights - - thumb_func_start BlendAnimPalette_BattleDome_FloorLightsNoBlend -BlendAnimPalette_BattleDome_FloorLightsNoBlend: @ 0x080A114C - push {lr} - lsls r0, r0, #0x10 - ldr r2, _080A11A4 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r0 - lsrs r1, r1, #0xe - adds r1, r1, r2 - ldr r0, [r1] - ldr r1, _080A11A8 - movs r2, #0x10 - bl CpuSet - ldr r0, _080A11AC - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080A119E - ldr r0, _080A11B0 - ldrh r2, [r0, #4] - lsls r2, r2, #0x15 - lsrs r2, r2, #0x1b - ldrh r3, [r0, #6] - lsls r3, r3, #0x11 - lsrs r3, r3, #0x11 - movs r0, #0x80 - movs r1, #0x10 - bl BlendPalette - ldr r1, _080A11B4 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - bne _080A119E - ldr r0, _080A11B8 - str r1, [r0] -_080A119E: - pop {r0} - bx r0 - .align 2, 0 -_080A11A4: .4byte gUnknown_84FCF88 -_080A11A8: .4byte gUnknown_20374B4 -_080A11AC: .4byte Phase2Task_Magma -_080A11B0: .4byte gUnknown_2037C74 -_080A11B4: .4byte gUnknown_3000F3C -_080A11B8: .4byte gUnknown_3000F44 - thumb_func_end BlendAnimPalette_BattleDome_FloorLightsNoBlend - - thumb_func_start LoadCompressedPalette -LoadCompressedPalette: @ 0x080A11BC - push {r4, r5, r6, lr} - adds r4, r1, #0 - adds r5, r2, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - ldr r6, _080A11F4 - adds r1, r6, #0 - bl sub_08034370 - lsls r4, r4, #1 - ldr r1, _080A11F8 - adds r1, r4, r1 - lsrs r5, r5, #0x11 - adds r0, r6, #0 - adds r2, r5, #0 - bl CpuSet - ldr r0, _080A11FC - adds r4, r4, r0 - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r5, #0 - bl CpuSet - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080A11F4: .4byte gUnknown_2037C88 -_080A11F8: .4byte gUnknown_20373B4 -_080A11FC: .4byte gUnknown_20377B4 - thumb_func_end LoadCompressedPalette - - thumb_func_start LoadPalette -LoadPalette: @ 0x080A1200 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r4, r1, #0 - adds r5, r2, #0 - lsls r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r4, r4, #0xf - ldr r1, _080A1230 - adds r1, r4, r1 - lsrs r5, r5, #0x11 - adds r2, r5, #0 - bl CpuSet - ldr r0, _080A1234 - adds r4, r4, r0 - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r5, #0 - bl CpuSet - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080A1230: .4byte gUnknown_20373B4 -_080A1234: .4byte gUnknown_20377B4 - thumb_func_end LoadPalette - - thumb_func_start FillPalette -FillPalette: @ 0x080A1238 - push {r4, r5, r6, lr} - sub sp, #4 - adds r6, r0, #0 - adds r4, r1, #0 - adds r5, r2, #0 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - lsls r4, r4, #0x10 - lsls r5, r5, #0x10 - mov r0, sp - strh r6, [r0] - lsrs r4, r4, #0xf - ldr r1, _080A1280 - adds r1, r4, r1 - lsrs r5, r5, #0x11 - movs r0, #0x80 - lsls r0, r0, #0x11 - orrs r5, r0 - mov r0, sp - adds r2, r5, #0 - bl CpuSet - mov r0, sp - adds r0, #2 - strh r6, [r0] - ldr r1, _080A1284 - adds r4, r4, r1 - adds r1, r4, #0 - adds r2, r5, #0 - bl CpuSet - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080A1280: .4byte gUnknown_20373B4 -_080A1284: .4byte gUnknown_20377B4 - thumb_func_end FillPalette - - thumb_func_start TransferPlttBuffer -TransferPlttBuffer: @ 0x080A1288 - push {r4, r5, lr} - ldr r4, _080A12D0 - ldrb r1, [r4, #8] - movs r5, #0x80 - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - bne _080A12CA - ldr r1, _080A12D4 - movs r2, #0xa0 - lsls r2, r2, #0x13 - ldr r0, _080A12D8 - str r1, [r0] - str r2, [r0, #4] - ldr r1, _080A12DC - str r1, [r0, #8] - ldr r0, [r0, #8] - ldr r0, _080A12E0 - str r3, [r0] - ldrb r1, [r4, #9] - movs r0, #3 - ands r0, r1 - cmp r0, #2 - bne _080A12CA - ldrb r1, [r4, #7] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _080A12CA - bl UpdateBlendRegisters -_080A12CA: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A12D0: .4byte gUnknown_2037C74 -_080A12D4: .4byte gUnknown_20377B4 -_080A12D8: .4byte 0x040000D4 -_080A12DC: .4byte 0x80000200 -_080A12E0: .4byte gUnknown_2037C84 - thumb_func_end TransferPlttBuffer - - thumb_func_start UpdatePaletteFade -UpdatePaletteFade: @ 0x080A12E4 - push {lr} - ldr r0, _080A12F4 - ldr r0, [r0] - cmp r0, #0 - beq _080A12F8 - movs r0, #0xff - b _080A1330 - .align 2, 0 -_080A12F4: .4byte gUnknown_2037C84 -_080A12F8: - ldr r0, _080A130C - ldrb r0, [r0, #9] - movs r1, #3 - ands r1, r0 - cmp r1, #0 - bne _080A1310 - bl UpdateNormalPaletteFade - b _080A131E - .align 2, 0 -_080A130C: .4byte gUnknown_2037C74 -_080A1310: - cmp r1, #1 - bne _080A131A - bl sub_080A1D00 - b _080A131E -_080A131A: - bl UpdateHardwarePaletteFade -_080A131E: - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r2, _080A1334 - ldr r0, _080A1338 - ldr r0, [r0] - movs r1, #0 - orrs r0, r1 - str r0, [r2] - adds r0, r3, #0 -_080A1330: - pop {r1} - bx r1 - .align 2, 0 -_080A1334: .4byte gUnknown_2037C84 -_080A1338: .4byte gUnknown_2037C74 - thumb_func_end UpdatePaletteFade - - thumb_func_start ResetPaletteFade -ResetPaletteFade: @ 0x080A133C - push {r4, lr} - movs r4, #0 -_080A1340: - adds r0, r4, #0 - bl ResetPaletteStruct - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xf - bls _080A1340 - bl ResetPaletteFadeControl - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ResetPaletteFade - - thumb_func_start ReadPlttIntoBuffers -ReadPlttIntoBuffers: @ 0x080A135C - push {r4, r5, r6, r7, lr} - movs r0, #0xa0 - lsls r0, r0, #0x13 - mov ip, r0 - movs r4, #0 - ldr r7, _080A1390 - ldr r6, _080A1394 - ldr r5, _080A1398 -_080A136C: - lsls r1, r4, #1 - adds r3, r1, r7 - mov r0, ip - adds r2, r1, r0 - ldrh r0, [r2] - strh r0, [r3] - adds r1, r1, r6 - ldrh r0, [r2] - strh r0, [r1] - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, r5 - bls _080A136C - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A1390: .4byte gUnknown_20373B4 -_080A1394: .4byte gUnknown_20377B4 -_080A1398: .4byte 0x000001FF - thumb_func_end ReadPlttIntoBuffers - - thumb_func_start BeginNormalPaletteFade -BeginNormalPaletteFade: @ 0x080A139C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - ldr r0, [sp, #0x18] - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov ip, r2 - lsls r3, r3, #0x18 - lsrs r7, r3, #0x18 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - ldr r5, _080A13CC - ldrb r1, [r5, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A13D0 - movs r0, #0 - b _080A14C8 - .align 2, 0 -_080A13CC: .4byte gUnknown_2037C74 -_080A13D0: - ldrb r0, [r5, #0xa] - movs r3, #0x79 - rsbs r3, r3, #0 - adds r2, r3, #0 - ands r2, r0 - movs r0, #0x10 - orrs r2, r0 - strb r2, [r5, #0xa] - lsls r0, r6, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - bge _080A13FE - lsls r0, r2, #0x19 - lsrs r0, r0, #0x1c - rsbs r1, r1, #0 - adds r0, r0, r1 - movs r1, #0xf - ands r0, r1 - lsls r0, r0, #3 - ands r2, r3 - orrs r2, r0 - strb r2, [r5, #0xa] - movs r6, #0 -_080A13FE: - str r4, [r5] - movs r4, #0x3f - adds r1, r6, #0 - ands r1, r4 - ldrb r2, [r5, #4] - movs r3, #0x40 - rsbs r3, r3, #0 - adds r0, r3, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #4] - ands r6, r4 - ldrb r0, [r5, #8] - ands r3, r0 - orrs r3, r6 - strb r3, [r5, #8] - movs r0, #0x1f - mov r1, ip - ands r1, r0 - lsls r1, r1, #6 - ldrh r2, [r5, #4] - ldr r0, _080A146C - ands r0, r2 - orrs r0, r1 - strh r0, [r5, #4] - lsls r2, r7, #3 - ldrb r1, [r5, #5] - movs r0, #7 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #5] - ldr r1, _080A1470 - mov r0, r8 - ands r1, r0 - ldrh r2, [r5, #6] - ldr r0, _080A1474 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, #6] - ldrb r0, [r5, #7] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r5, #7] - ldrb r1, [r5, #9] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r5, #9] - cmp ip, r7 - bhs _080A1478 - movs r0, #0x41 - rsbs r0, r0, #0 - ands r3, r0 - b _080A147C - .align 2, 0 -_080A146C: .4byte 0xFFFFF83F -_080A1470: .4byte 0x00007FFF -_080A1474: .4byte 0xFFFF8000 -_080A1478: - movs r0, #0x40 - orrs r3, r0 -_080A147C: - strb r3, [r5, #8] - bl UpdatePaletteFade - ldr r4, _080A14D4 - ldrb r1, [r4, #8] - lsrs r5, r1, #7 - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #8] - ldr r0, _080A14D8 - movs r1, #0xa0 - lsls r1, r1, #0x13 - ldr r2, _080A14DC - bl CpuSet - ldr r1, _080A14E0 - movs r0, #0 - str r0, [r1] - ldrb r1, [r4, #9] - movs r0, #3 - ands r0, r1 - cmp r0, #2 - bne _080A14B8 - ldrb r1, [r4, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A14B8 - bl UpdateBlendRegisters -_080A14B8: - ldr r2, _080A14D4 - lsls r3, r5, #7 - ldrb r1, [r2, #8] - movs r0, #0x7f - ands r0, r1 - orrs r0, r3 - strb r0, [r2, #8] - movs r0, #1 -_080A14C8: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080A14D4: .4byte gUnknown_2037C74 -_080A14D8: .4byte gUnknown_20377B4 -_080A14DC: .4byte 0x04000100 -_080A14E0: .4byte gUnknown_2037C84 - thumb_func_end BeginNormalPaletteFade - - thumb_func_start unref_sub_80A1C1C -unref_sub_80A1C1C: @ 0x080A14E4 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #8 - mov r8, r0 - adds r4, r1, #0 - adds r6, r2, #0 - ldr r5, [sp, #0x1c] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - str r3, [sp, #4] - bl ReadPlttIntoBuffers - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - str r5, [sp] - mov r0, r8 - adds r1, r4, #0 - adds r2, r6, #0 - ldr r3, [sp, #4] - bl BeginNormalPaletteFade - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end unref_sub_80A1C1C - - thumb_func_start unref_sub_80A1C64 -unref_sub_80A1C64: @ 0x080A152C - push {r4, r5, r6, r7, lr} - adds r6, r1, #0 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r5, #0 -_080A1536: - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #2 - ldr r1, _080A1584 - adds r4, r0, r1 - ldrb r0, [r4, #4] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _080A1594 - ldr r2, [r4] - ldrb r0, [r2, #8] - lsls r0, r0, #0x1f - lsrs r0, r0, #0x1f - cmp r0, r7 - bne _080A1594 - ldrh r1, [r4, #6] - lsls r1, r1, #0x14 - lsrs r1, r1, #0x19 - ldrb r0, [r2, #0xb] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1b - cmp r1, r0 - bne _080A1572 - adds r0, r4, #0 - bl unused_sub_80A1F00 - ldrb r0, [r4, #4] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _080A1594 -_080A1572: - ldrb r0, [r4, #8] - cmp r0, #0 - bne _080A1588 - adds r0, r4, #0 - adds r1, r6, #0 - bl unused_sub_80A1CDC - b _080A158C - .align 2, 0 -_080A1584: .4byte gUnknown_2037BB4 -_080A1588: - subs r0, #1 - strb r0, [r4, #8] -_080A158C: - adds r0, r4, #0 - adds r1, r6, #0 - bl unused_sub_80A1E40 -_080A1594: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0xf - bls _080A1536 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end unref_sub_80A1C64 - - thumb_func_start unused_sub_80A1CDC -unused_sub_80A1CDC: @ 0x080A15A4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - mov r8, r1 - movs r6, #0 - ldrh r1, [r4, #6] - lsls r1, r1, #0x14 - lsrs r1, r1, #0x19 - ldr r3, [r4] - ldrb r0, [r3, #9] - lsls r2, r0, #0x19 - lsrs r0, r2, #0x1b - adds r5, r1, #0 - muls r5, r0, r5 - ldrb r1, [r3, #8] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080A1640 - lsrs r0, r2, #0x1b - cmp r6, r0 - bhs _080A168C - ldr r0, _080A1630 - mov ip, r0 - ldr r7, _080A1634 -_080A15D8: - ldr r0, [r4, #4] - lsls r0, r0, #0xb - lsrs r0, r0, #0x16 - lsls r0, r0, #1 - add r0, ip - ldr r1, [r3, #4] - lsls r2, r5, #1 - adds r1, r2, r1 - ldrh r1, [r1] - strh r1, [r0] - ldr r0, [r4, #4] - lsls r0, r0, #0xb - lsrs r0, r0, #0x16 - lsls r0, r0, #1 - adds r0, r0, r7 - ldr r1, [r4] - ldr r1, [r1, #4] - adds r2, r2, r1 - ldrh r1, [r2] - strh r1, [r0] - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r2, [r4, #4] - lsls r1, r2, #0xb - lsrs r1, r1, #0x16 - adds r1, #1 - ldr r0, _080A1638 - ands r1, r0 - lsls r1, r1, #0xb - ldr r0, _080A163C - ands r0, r2 - orrs r0, r1 - str r0, [r4, #4] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r3, [r4] - ldrb r0, [r3, #9] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1b - cmp r6, r0 - blo _080A15D8 - b _080A168C - .align 2, 0 -_080A1630: .4byte gUnknown_20373B4 -_080A1634: .4byte gUnknown_20377B4 -_080A1638: .4byte 0x000003FF -_080A163C: .4byte 0xFFE007FF -_080A1640: - lsrs r0, r2, #0x1b - cmp r6, r0 - bhs _080A168C - ldr r3, _080A16F8 -_080A1648: - ldr r1, [r4, #4] - lsls r1, r1, #0xb - lsrs r1, r1, #0x16 - lsls r1, r1, #1 - adds r1, r1, r3 - ldr r0, [r4] - ldr r2, [r0, #4] - lsls r0, r5, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r2, [r4, #4] - lsls r1, r2, #0xb - lsrs r1, r1, #0x16 - adds r1, #1 - ldr r0, _080A16FC - ands r1, r0 - lsls r1, r1, #0xb - ldr r0, _080A1700 - ands r0, r2 - orrs r0, r1 - str r0, [r4, #4] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, [r4] - ldrb r0, [r0, #9] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1b - cmp r6, r0 - blo _080A1648 -_080A168C: - ldrh r0, [r4, #4] - lsls r0, r0, #0x15 - lsrs r0, r0, #0x17 - lsls r0, r0, #0xb - ldr r1, [r4, #4] - ldr r2, _080A1700 - ands r1, r2 - orrs r1, r0 - str r1, [r4, #4] - ldr r3, [r4] - ldrb r0, [r3, #0xa] - strb r0, [r4, #8] - ldrh r2, [r4, #6] - lsls r0, r2, #0x14 - lsrs r0, r0, #0x19 - adds r0, #1 - movs r1, #0x7f - ands r0, r1 - lsls r0, r0, #5 - ldr r5, _080A1704 - adds r1, r5, #0 - ands r1, r2 - orrs r1, r0 - strh r1, [r4, #6] - lsls r1, r1, #0x14 - lsrs r1, r1, #0x19 - ldrb r0, [r3, #0xb] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1b - cmp r1, r0 - blt _080A16DC - ldrb r0, [r4, #9] - cmp r0, #0 - beq _080A16D4 - subs r0, #1 - strb r0, [r4, #9] -_080A16D4: - ldrh r1, [r4, #6] - adds r0, r5, #0 - ands r0, r1 - strh r0, [r4, #6] -_080A16DC: - ldrh r0, [r4, #4] - lsls r0, r0, #0x15 - lsrs r0, r0, #0x1b - movs r1, #1 - lsls r1, r0 - mov r2, r8 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A16F8: .4byte gUnknown_20377B4 -_080A16FC: .4byte 0x000003FF -_080A1700: .4byte 0xFFE007FF -_080A1704: .4byte 0xFFFFF01F - thumb_func_end unused_sub_80A1CDC - - thumb_func_start unused_sub_80A1E40 -unused_sub_80A1E40: @ 0x080A1708 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r3, _080A1760 - ldrb r1, [r3, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A17BC - ldrh r0, [r4, #4] - lsls r0, r0, #0x15 - lsrs r6, r0, #0x17 - asrs r1, r6, #4 - movs r5, #1 - adds r0, r5, #0 - lsls r0, r1 - ldr r1, [r3] - ands r0, r1 - cmp r0, #0 - beq _080A17BC - ldr r2, [r4] - ldrb r1, [r2, #8] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - bne _080A1764 - ldrb r1, [r3, #4] - lsls r1, r1, #0x1a - ldrb r0, [r3, #8] - lsls r0, r0, #0x1a - cmp r1, r0 - beq _080A17BC - adds r0, r6, #0 - ldrb r1, [r2, #9] - lsls r1, r1, #0x19 - lsrs r1, r1, #0x1b - ldrh r2, [r3, #4] - lsls r2, r2, #0x15 - lsrs r2, r2, #0x1b - ldrh r3, [r3, #6] - lsls r3, r3, #0x11 - lsrs r3, r3, #0x11 - bl BlendPalette - b _080A17BC - .align 2, 0 -_080A1760: .4byte gUnknown_2037C74 -_080A1764: - ldrb r1, [r3, #4] - movs r0, #0x3f - ands r0, r1 - cmp r0, #0 - bne _080A17BC - ldrb r0, [r4, #8] - ldrb r1, [r2, #0xa] - cmp r0, r1 - beq _080A17BC - ldrh r0, [r4, #6] - lsls r0, r0, #0x14 - lsrs r0, r0, #0x19 - ldrb r1, [r2, #9] - lsls r1, r1, #0x19 - lsrs r2, r1, #0x1b - adds r5, r0, #0 - muls r5, r2, r5 - movs r3, #0 - adds r1, r2, #0 - cmp r3, r1 - bhs _080A17BC - ldr r6, _080A17C4 -_080A1790: - ldrh r1, [r4, #4] - lsls r1, r1, #0x15 - lsrs r1, r1, #0x17 - adds r1, r1, r3 - lsls r1, r1, #1 - adds r1, r1, r6 - ldr r2, [r4] - adds r0, r5, r3 - ldr r2, [r2, #4] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r0, [r4] - ldrb r0, [r0, #9] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1b - cmp r3, r0 - blo _080A1790 -_080A17BC: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080A17C4: .4byte gUnknown_20377B4 - thumb_func_end unused_sub_80A1E40 - - thumb_func_start unused_sub_80A1F00 -unused_sub_80A1F00: @ 0x080A17C8 - push {lr} - adds r3, r0, #0 - ldrb r0, [r3, #9] - cmp r0, #0 - bne _080A1818 - ldr r2, [r3] - ldrb r0, [r2, #0xb] - lsrs r0, r0, #5 - cmp r0, #0 - bne _080A1808 - ldrh r1, [r3, #6] - ldr r0, _080A1800 - ands r0, r1 - strh r0, [r3, #6] - ldrb r0, [r2, #0xa] - strb r0, [r3, #8] - ldrb r0, [r2, #0xc] - strb r0, [r3, #9] - ldrh r0, [r3, #4] - lsls r0, r0, #0x15 - lsrs r0, r0, #0x17 - lsls r0, r0, #0xb - ldr r1, [r3, #4] - ldr r2, _080A1804 - ands r1, r2 - orrs r1, r0 - str r1, [r3, #4] - b _080A181C - .align 2, 0 -_080A1800: .4byte 0xFFFFF01F -_080A1804: .4byte 0xFFE007FF -_080A1808: - cmp r0, #0 - blt _080A181C - cmp r0, #2 - bgt _080A181C - ldrh r0, [r2] - bl ResetPaletteStructByUid - b _080A181C -_080A1818: - subs r0, #1 - strb r0, [r3, #9] -_080A181C: - pop {r0} - bx r0 - thumb_func_end unused_sub_80A1F00 - - thumb_func_start ResetPaletteStructByUid -ResetPaletteStructByUid: @ 0x080A1820 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetPaletteNumByUid - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x10 - beq _080A1836 - bl ResetPaletteStruct -_080A1836: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ResetPaletteStructByUid - - thumb_func_start ResetPaletteStruct -ResetPaletteStruct: @ 0x080A183C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080A1884 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r0, _080A1888 - str r0, [r1] - ldrb r2, [r1, #4] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #4] - ldrh r2, [r1, #4] - ldr r0, _080A188C - ands r0, r2 - strh r0, [r1, #4] - ldr r0, [r1, #4] - ldr r2, _080A1890 - ands r0, r2 - str r0, [r1, #4] - ldrh r2, [r1, #6] - ldr r0, _080A1894 - ands r0, r2 - strh r0, [r1, #6] - ldrb r2, [r1, #4] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #4] - movs r0, #0 - strb r0, [r1, #8] - strb r0, [r1, #9] - bx lr - .align 2, 0 -_080A1884: .4byte gUnknown_2037BB4 -_080A1888: .4byte gUnknown_84FCF98 -_080A188C: .4byte 0xFFFFF803 -_080A1890: .4byte 0xFFE007FF -_080A1894: .4byte 0xFFFFF01F - thumb_func_end ResetPaletteStruct - - thumb_func_start ResetPaletteFadeControl -ResetPaletteFadeControl: @ 0x080A1898 - ldr r2, _080A1900 - movs r0, #0 - str r0, [r2] - subs r0, #0x40 - ldrb r1, [r2, #4] - ands r0, r1 - strb r0, [r2, #4] - ldrh r1, [r2, #4] - ldr r0, _080A1904 - ands r0, r1 - strh r0, [r2, #4] - ldrb r1, [r2, #5] - movs r0, #7 - ands r0, r1 - strb r0, [r2, #5] - ldrh r1, [r2, #6] - ldr r0, _080A1908 - ands r0, r1 - strh r0, [r2, #6] - ldrb r1, [r2, #7] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #7] - movs r0, #0 - strb r0, [r2, #8] - ldrb r1, [r2, #9] - movs r3, #5 - rsbs r3, r3, #0 - adds r0, r3, #0 - ands r0, r1 - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r2, #9] - ldrb r1, [r2, #0xa] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0xa] - ldr r0, [r2, #8] - ldr r1, _080A190C - ands r0, r1 - str r0, [r2, #8] - ldrb r0, [r2, #0xa] - ands r3, r0 - movs r0, #0x79 - rsbs r0, r0, #0 - ands r3, r0 - movs r0, #0x10 - orrs r3, r0 - strb r3, [r2, #0xa] - bx lr - .align 2, 0 -_080A1900: .4byte gUnknown_2037C74 -_080A1904: .4byte 0xFFFFF83F -_080A1908: .4byte 0xFFFF8000 -_080A190C: .4byte 0xFFFE0FFF - thumb_func_end ResetPaletteFadeControl - - thumb_func_start unref_sub_80A2048 -unref_sub_80A2048: @ 0x080A1910 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetPaletteNumByUid - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x10 - beq _080A1934 - ldr r1, _080A1938 - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #4] - movs r2, #2 - orrs r1, r2 - strb r1, [r0, #4] -_080A1934: - pop {r0} - bx r0 - .align 2, 0 -_080A1938: .4byte gUnknown_2037BB4 - thumb_func_end unref_sub_80A2048 - - thumb_func_start unref_sub_80A2074 -unref_sub_80A2074: @ 0x080A193C - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetPaletteNumByUid - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x10 - beq _080A1962 - ldr r0, _080A1968 - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #4] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #4] -_080A1962: - pop {r0} - bx r0 - .align 2, 0 -_080A1968: .4byte gUnknown_2037BB4 - thumb_func_end unref_sub_80A2074 - - thumb_func_start GetPaletteNumByUid -GetPaletteNumByUid: @ 0x080A196C - push {lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - movs r1, #0 - ldr r3, _080A198C -_080A1976: - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldr r0, [r0] - ldrh r0, [r0] - cmp r0, r2 - bne _080A1990 - adds r0, r1, #0 - b _080A199C - .align 2, 0 -_080A198C: .4byte gUnknown_2037BB4 -_080A1990: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xf - bls _080A1976 - movs r0, #0x10 -_080A199C: - pop {r1} - bx r1 - thumb_func_end GetPaletteNumByUid - - thumb_func_start UpdateNormalPaletteFade -UpdateNormalPaletteFade: @ 0x080A19A0 - push {r4, r5, r6, r7, lr} - ldr r4, _080A19B4 - ldrb r1, [r4, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080A19B8 - movs r0, #0 - b _080A1AD4 - .align 2, 0 -_080A19B4: .4byte gUnknown_2037C74 -_080A19B8: - bl IsSoftwarePaletteFadeFinishing - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A19C6 - ldrb r0, [r4, #7] - b _080A1AD2 -_080A19C6: - ldrb r1, [r4, #0xa] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _080A19FA - ldrb r2, [r4, #4] - lsls r1, r2, #0x1a - ldrb r0, [r4, #8] - lsls r0, r0, #0x1a - cmp r1, r0 - bhs _080A19F2 - lsrs r0, r1, #0x1a - adds r0, #1 - movs r1, #0x3f - ands r0, r1 - movs r1, #0x40 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #4] - movs r0, #2 - b _080A1AD4 -_080A19F2: - movs r0, #0x40 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r4, #4] -_080A19FA: - movs r5, #0 - ldr r2, _080A1A10 - ldrb r1, [r2, #0xa] - movs r0, #4 - ands r0, r1 - adds r7, r2, #0 - cmp r0, #0 - bne _080A1A14 - ldrh r4, [r7] - b _080A1A1A - .align 2, 0 -_080A1A10: .4byte gUnknown_2037C74 -_080A1A14: - ldrh r4, [r7, #2] - movs r5, #0x80 - lsls r5, r5, #1 -_080A1A1A: - cmp r4, #0 - beq _080A1A4C - ldr r7, _080A1A88 - adds r6, r7, #0 -_080A1A22: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _080A1A3E - ldrh r2, [r6, #4] - lsls r2, r2, #0x15 - lsrs r2, r2, #0x1b - ldrh r3, [r6, #6] - lsls r3, r3, #0x11 - lsrs r3, r3, #0x11 - adds r0, r5, #0 - movs r1, #0x10 - bl BlendPalette -_080A1A3E: - lsrs r4, r4, #1 - adds r0, r5, #0 - adds r0, #0x10 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r4, #0 - bne _080A1A22 -_080A1A4C: - ldrb r2, [r7, #0xa] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r4, #5 - rsbs r4, r4, #0 - ands r4, r2 - orrs r4, r1 - strb r4, [r7, #0xa] - movs r0, #4 - ands r0, r4 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - bne _080A1AD0 - ldrh r6, [r7, #4] - lsls r2, r6, #0x15 - ldrb r0, [r7, #5] - lsls r5, r0, #0x18 - lsrs r1, r2, #0x1b - lsrs r0, r5, #0x1b - cmp r1, r0 - bne _080A1A8C - str r3, [r7] - movs r0, #2 - orrs r4, r0 - strb r4, [r7, #0xa] - b _080A1AD0 - .align 2, 0 -_080A1A88: .4byte gUnknown_2037C74 -_080A1A8C: - ldrb r1, [r7, #8] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _080A1AA8 - lsrs r3, r2, #0x1b - lsls r0, r4, #0x19 - lsrs r0, r0, #0x1c - adds r3, r0, r3 - lsrs r0, r5, #0x1b - cmp r3, r0 - ble _080A1ABE - adds r3, r0, #0 - b _080A1ABE -_080A1AA8: - lsrs r3, r2, #0x1b - lsls r0, r4, #0x19 - lsrs r0, r0, #0x1c - subs r0, r3, r0 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - asrs r0, r0, #0x18 - lsrs r1, r5, #0x1b - cmp r0, r1 - bge _080A1ABE - adds r3, r1, #0 -_080A1ABE: - lsls r0, r3, #0x18 - asrs r0, r0, #0x18 - movs r1, #0x1f - ands r0, r1 - lsls r0, r0, #6 - ldr r1, _080A1ADC - ands r1, r6 - orrs r1, r0 - strh r1, [r7, #4] -_080A1AD0: - ldrb r0, [r7, #7] -_080A1AD2: - lsrs r0, r0, #7 -_080A1AD4: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080A1ADC: .4byte 0xFFFFF83F - thumb_func_end UpdateNormalPaletteFade - - thumb_func_start InvertPlttBuffer -InvertPlttBuffer: @ 0x080A1AE0 - push {r4, r5, r6, r7, lr} - adds r1, r0, #0 - movs r3, #0 - cmp r1, #0 - beq _080A1B1E - ldr r7, _080A1B24 -_080A1AEC: - movs r0, #1 - ands r0, r1 - lsrs r4, r1, #1 - adds r5, r3, #0 - adds r5, #0x10 - cmp r0, #0 - beq _080A1B14 - movs r2, #0 - adds r6, r7, #0 -_080A1AFE: - adds r0, r3, r2 - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r1, [r0] - mvns r1, r1 - strh r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xf - bls _080A1AFE -_080A1B14: - adds r1, r4, #0 - lsls r0, r5, #0x10 - lsrs r3, r0, #0x10 - cmp r1, #0 - bne _080A1AEC -_080A1B1E: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A1B24: .4byte gUnknown_20377B4 - thumb_func_end InvertPlttBuffer - - thumb_func_start TintPlttBuffer -TintPlttBuffer: @ 0x080A1B28 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r3, [sp, #4] - movs r0, #0 - mov sb, r0 - cmp r4, #0 - beq _080A1BE4 - lsls r1, r1, #0x18 - str r1, [sp, #8] -_080A1B52: - movs r0, #1 - ands r0, r4 - lsrs r4, r4, #1 - str r4, [sp, #0xc] - movs r1, #0x10 - add r1, sb - mov sl, r1 - cmp r0, #0 - beq _080A1BD6 - movs r4, #0 - ldr r2, _080A1BF4 - mov r8, r2 - ldr r1, [sp] - lsls r0, r1, #0x18 - ldr r2, [sp, #4] - lsls r1, r2, #0x18 - ldr r2, [sp, #8] - asrs r2, r2, #0x18 - mov ip, r2 - movs r5, #0x1f - asrs r7, r0, #0x18 - asrs r6, r1, #0x18 -_080A1B7E: - mov r0, sb - adds r2, r0, r4 - lsls r2, r2, #1 - add r2, r8 - ldr r1, [r2] - lsls r1, r1, #0x1b - lsrs r1, r1, #0x1b - add r1, ip - ands r1, r5 - ldrb r3, [r2] - movs r0, #0x20 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldr r1, [r2] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x1b - adds r1, r1, r7 - movs r0, #0x1f - ands r1, r0 - lsls r1, r1, #5 - ldrh r3, [r2] - ldr r0, _080A1BF8 - ands r0, r3 - orrs r0, r1 - strh r0, [r2] - ldr r1, [r2] - lsls r1, r1, #0x11 - lsrs r1, r1, #0x1b - adds r1, r1, r6 - ands r1, r5 - lsls r1, r1, #2 - ldrb r3, [r2, #1] - movs r0, #0x7d - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #1] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xf - bls _080A1B7E -_080A1BD6: - ldr r4, [sp, #0xc] - mov r1, sl - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - cmp r4, #0 - bne _080A1B52 -_080A1BE4: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A1BF4: .4byte gUnknown_20377B4 -_080A1BF8: .4byte 0xFFFFFC1F - thumb_func_end TintPlttBuffer - - thumb_func_start UnfadePlttBuffer -UnfadePlttBuffer: @ 0x080A1BFC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r1, r0, #0 - movs r3, #0 - cmp r1, #0 - beq _080A1C46 - ldr r0, _080A1C50 - mov r8, r0 - ldr r0, _080A1C54 - mov ip, r0 -_080A1C12: - movs r0, #1 - ands r0, r1 - lsrs r4, r1, #1 - adds r5, r3, #0 - adds r5, #0x10 - cmp r0, #0 - beq _080A1C3C - movs r2, #0 - mov r7, r8 - mov r6, ip -_080A1C26: - adds r0, r3, r2 - lsls r0, r0, #1 - adds r1, r0, r7 - adds r0, r0, r6 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xf - bls _080A1C26 -_080A1C3C: - adds r1, r4, #0 - lsls r0, r5, #0x10 - lsrs r3, r0, #0x10 - cmp r1, #0 - bne _080A1C12 -_080A1C46: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A1C50: .4byte gUnknown_20377B4 -_080A1C54: .4byte gUnknown_20373B4 - thumb_func_end UnfadePlttBuffer - - thumb_func_start BeginFastPaletteFade -BeginFastPaletteFade: @ 0x080A1C58 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _080A1C78 - ldrb r2, [r3, #0xa] - movs r1, #0x79 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #0x10 - orrs r1, r2 - strb r1, [r3, #0xa] - bl BeginFastPaletteFadeInternal - pop {r0} - bx r0 - .align 2, 0 -_080A1C78: .4byte gUnknown_2037C74 - thumb_func_end BeginFastPaletteFade - - thumb_func_start BeginFastPaletteFadeInternal -BeginFastPaletteFadeInternal: @ 0x080A1C7C - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r4, r0, #0 - ldr r2, _080A1CF0 - ldrh r0, [r2, #4] - movs r3, #0xf8 - lsls r3, r3, #3 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2, #4] - movs r1, #0x3f - ands r1, r4 - ldrb r3, [r2, #8] - movs r0, #0x40 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #8] - ldrb r0, [r2, #7] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #7] - ldrb r1, [r2, #9] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #9] - cmp r4, #2 - bne _080A1CCE - mov r1, sp - movs r0, #0 - strh r0, [r1] - ldr r1, _080A1CF4 - ldr r2, _080A1CF8 - mov r0, sp - bl CpuSet -_080A1CCE: - cmp r4, #0 - bne _080A1CE4 - mov r0, sp - adds r0, #2 - ldr r2, _080A1CFC - adds r1, r2, #0 - strh r1, [r0] - ldr r1, _080A1CF4 - ldr r2, _080A1CF8 - bl CpuSet -_080A1CE4: - bl UpdatePaletteFade - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1CF0: .4byte gUnknown_2037C74 -_080A1CF4: .4byte gUnknown_20377B4 -_080A1CF8: .4byte 0x01000200 -_080A1CFC: .4byte 0x00007FFF - thumb_func_end BeginFastPaletteFadeInternal - - thumb_func_start sub_080A1D00 -sub_080A1D00: @ 0x080A1D00 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - ldr r4, _080A1D1C - ldrb r1, [r4, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080A1D20 - movs r0, #0 - b _080A205A - .align 2, 0 -_080A1D1C: .4byte gUnknown_2037C74 -_080A1D20: - bl IsSoftwarePaletteFadeFinishing - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A1D2E - ldrb r0, [r4, #7] - b _080A2058 -_080A1D2E: - ldrb r1, [r4, #0xa] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080A1D44 - movs r2, #0x80 - lsls r2, r2, #1 - movs r0, #0x80 - lsls r0, r0, #2 - mov sl, r0 - b _080A1D4C -_080A1D44: - movs r2, #0 - movs r1, #0x80 - lsls r1, r1, #1 - mov sl, r1 -_080A1D4C: - ldr r1, _080A1D64 - ldrb r0, [r1, #8] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1a - cmp r0, #1 - beq _080A1E0C - cmp r0, #1 - bgt _080A1D68 - cmp r0, #0 - beq _080A1D76 - b _080A1F5C - .align 2, 0 -_080A1D64: .4byte gUnknown_2037C74 -_080A1D68: - cmp r0, #2 - bne _080A1D6E - b _080A1E70 -_080A1D6E: - cmp r0, #3 - bne _080A1D74 - b _080A1EF8 -_080A1D74: - b _080A1F5C -_080A1D76: - adds r7, r2, #0 - cmp r7, sl - blo _080A1D7E - b _080A1F5C -_080A1D7E: - lsls r2, r7, #1 - ldr r0, _080A1E04 - adds r0, r2, r0 - ldr r1, [r0] - lsls r3, r1, #0x1b - lsls r0, r1, #0x16 - lsrs r0, r0, #0x1b - mov ip, r0 - lsls r1, r1, #0x11 - lsrs r1, r1, #0x1b - mov r8, r1 - ldr r0, _080A1E08 - adds r2, r2, r0 - mov sb, r2 - ldr r1, [r2] - lsls r2, r1, #0x1b - lsrs r2, r2, #3 - movs r4, #0xfe - lsls r4, r4, #0x18 - adds r2, r2, r4 - lsls r0, r1, #0x16 - lsrs r0, r0, #0x1b - subs r0, #2 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x11 - lsrs r1, r1, #0x1b - subs r1, #2 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - lsrs r6, r2, #0x18 - asrs r2, r2, #0x18 - lsrs r3, r3, #3 - asrs r0, r3, #0x18 - cmp r2, r0 - bge _080A1DC8 - lsrs r6, r3, #0x18 -_080A1DC8: - lsls r0, r5, #0x18 - asrs r0, r0, #0x18 - mov r2, ip - lsls r1, r2, #0x18 - cmp r0, ip - bge _080A1DD6 - lsrs r5, r1, #0x18 -_080A1DD6: - lsls r0, r4, #0x18 - asrs r0, r0, #0x18 - mov r3, r8 - lsls r1, r3, #0x18 - cmp r0, r8 - bge _080A1DE4 - lsrs r4, r1, #0x18 -_080A1DE4: - lsls r1, r6, #0x18 - asrs r1, r1, #0x18 - lsls r0, r5, #0x18 - asrs r0, r0, #0x13 - orrs r1, r0 - lsls r0, r4, #0x18 - asrs r0, r0, #0xe - orrs r1, r0 - mov r4, sb - strh r1, [r4] - adds r0, r7, #1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - cmp r7, sl - blo _080A1D7E - b _080A1F5C - .align 2, 0 -_080A1E04: .4byte gUnknown_20373B4 -_080A1E08: .4byte gUnknown_20377B4 -_080A1E0C: - adds r7, r2, #0 - cmp r7, sl - blo _080A1E14 - b _080A1F5C -_080A1E14: - lsls r1, r7, #1 - ldr r0, _080A1E6C - adds r2, r1, r0 - ldr r1, [r2] - lsls r0, r1, #0x1b - lsrs r0, r0, #3 - movs r3, #0x80 - lsls r3, r3, #0x12 - adds r0, r0, r3 - lsrs r6, r0, #0x18 - lsls r0, r1, #0x16 - lsrs r0, r0, #0x1b - adds r5, r0, #2 - lsls r1, r1, #0x11 - lsrs r1, r1, #0x1b - adds r4, r1, #2 - cmp r6, #0x1f - ble _080A1E3A - movs r6, #0x1f -_080A1E3A: - lsls r0, r5, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0x1f - ble _080A1E44 - movs r5, #0x1f -_080A1E44: - lsls r0, r4, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0x1f - ble _080A1E4E - movs r4, #0x1f -_080A1E4E: - lsls r1, r6, #0x18 - asrs r1, r1, #0x18 - lsls r0, r5, #0x18 - asrs r0, r0, #0x13 - orrs r1, r0 - lsls r0, r4, #0x18 - asrs r0, r0, #0xe - orrs r1, r0 - strh r1, [r2] - adds r0, r7, #1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - cmp r7, sl - blo _080A1E14 - b _080A1F5C - .align 2, 0 -_080A1E6C: .4byte gUnknown_20377B4 -_080A1E70: - adds r7, r2, #0 - cmp r7, sl - bhs _080A1F5C -_080A1E76: - lsls r2, r7, #1 - ldr r0, _080A1EF0 - adds r0, r2, r0 - ldr r1, [r0] - lsls r3, r1, #0x1b - lsls r0, r1, #0x16 - lsrs r0, r0, #0x1b - mov ip, r0 - lsls r1, r1, #0x11 - lsrs r1, r1, #0x1b - mov r8, r1 - ldr r0, _080A1EF4 - adds r2, r2, r0 - ldr r1, [r2] - lsls r0, r1, #0x1b - lsrs r0, r0, #3 - movs r4, #0x80 - lsls r4, r4, #0x12 - adds r0, r0, r4 - lsrs r6, r0, #0x18 - lsls r0, r1, #0x16 - lsrs r0, r0, #0x1b - adds r5, r0, #2 - lsls r1, r1, #0x11 - lsrs r1, r1, #0x1b - adds r4, r1, #2 - lsrs r3, r3, #3 - asrs r0, r3, #0x18 - cmp r6, r0 - ble _080A1EB4 - lsrs r6, r3, #0x18 -_080A1EB4: - lsls r0, r5, #0x18 - asrs r0, r0, #0x18 - mov r3, ip - lsls r1, r3, #0x18 - cmp r0, ip - ble _080A1EC2 - lsrs r5, r1, #0x18 -_080A1EC2: - lsls r0, r4, #0x18 - asrs r0, r0, #0x18 - mov r3, r8 - lsls r1, r3, #0x18 - cmp r0, r8 - ble _080A1ED0 - lsrs r4, r1, #0x18 -_080A1ED0: - lsls r1, r6, #0x18 - asrs r1, r1, #0x18 - lsls r0, r5, #0x18 - asrs r0, r0, #0x13 - orrs r1, r0 - lsls r0, r4, #0x18 - asrs r0, r0, #0xe - orrs r1, r0 - strh r1, [r2] - adds r0, r7, #1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - cmp r7, sl - blo _080A1E76 - b _080A1F5C - .align 2, 0 -_080A1EF0: .4byte gUnknown_20373B4 -_080A1EF4: .4byte gUnknown_20377B4 -_080A1EF8: - adds r7, r2, #0 - cmp r7, sl - bhs _080A1F5C - ldr r4, _080A1F84 - mov r8, r4 -_080A1F02: - lsls r0, r7, #1 - mov r1, r8 - adds r3, r0, r1 - ldr r1, [r3] - lsls r2, r1, #0x1b - lsrs r2, r2, #3 - movs r4, #0xfe - lsls r4, r4, #0x18 - adds r2, r2, r4 - lsls r0, r1, #0x16 - lsrs r0, r0, #0x1b - subs r0, #2 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x11 - lsrs r1, r1, #0x1b - subs r1, #2 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - lsrs r6, r2, #0x18 - cmp r2, #0 - bge _080A1F30 - movs r6, #0 -_080A1F30: - lsls r0, r5, #0x18 - cmp r0, #0 - bge _080A1F38 - movs r5, #0 -_080A1F38: - lsls r0, r4, #0x18 - cmp r0, #0 - bge _080A1F40 - movs r4, #0 -_080A1F40: - lsls r1, r6, #0x18 - asrs r1, r1, #0x18 - lsls r0, r5, #0x18 - asrs r0, r0, #0x13 - orrs r1, r0 - lsls r0, r4, #0x18 - asrs r0, r0, #0xe - orrs r1, r0 - strh r1, [r3] - adds r0, r7, #1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - cmp r7, sl - blo _080A1F02 -_080A1F5C: - ldr r0, _080A1F88 - ldrb r2, [r0, #0xa] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r3, #5 - rsbs r3, r3, #0 - ands r3, r2 - orrs r3, r1 - ldr r1, _080A1F88 - strb r3, [r1, #0xa] - movs r0, #4 - ands r0, r3 - cmp r0, #0 - beq _080A1F8C - ldrb r0, [r1, #7] - b _080A2058 - .align 2, 0 -_080A1F84: .4byte gUnknown_20377B4 -_080A1F88: .4byte gUnknown_2037C74 -_080A1F8C: - ldr r2, _080A1FA8 - ldrh r4, [r2, #4] - lsls r5, r4, #0x15 - lsrs r0, r5, #0x1b - lsls r2, r3, #0x19 - lsrs r1, r2, #0x1c - subs r0, r0, r1 - cmp r0, #0 - bge _080A1FB0 - ldr r0, _080A1FAC - ands r0, r4 - ldr r3, _080A1FA8 - strh r0, [r3, #4] - b _080A1FC6 - .align 2, 0 -_080A1FA8: .4byte gUnknown_2037C74 -_080A1FAC: .4byte 0xFFFFF83F -_080A1FB0: - lsrs r1, r5, #0x1b - lsrs r0, r2, #0x1c - subs r1, r1, r0 - movs r0, #0x1f - ands r1, r0 - lsls r1, r1, #6 - ldr r0, _080A1FEC - ands r0, r4 - orrs r0, r1 - ldr r4, _080A1FF0 - strh r0, [r4, #4] -_080A1FC6: - ldr r1, _080A1FF0 - ldrh r0, [r1, #4] - movs r1, #0xf8 - lsls r1, r1, #3 - ands r1, r0 - cmp r1, #0 - bne _080A2054 - ldr r2, _080A1FF0 - ldrb r0, [r2, #8] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1a - cmp r0, #1 - beq _080A2018 - cmp r0, #1 - bgt _080A1FF4 - cmp r0, #0 - beq _080A1FFE - b _080A2040 - .align 2, 0 -_080A1FEC: .4byte 0xFFFFF83F -_080A1FF0: .4byte gUnknown_2037C74 -_080A1FF4: - cmp r0, #2 - beq _080A1FFE - cmp r0, #3 - beq _080A2034 - b _080A2040 -_080A1FFE: - ldr r0, _080A200C - ldr r1, _080A2010 - ldr r2, _080A2014 - bl CpuSet - b _080A2040 - .align 2, 0 -_080A200C: .4byte gUnknown_20373B4 -_080A2010: .4byte gUnknown_20377B4 -_080A2014: .4byte 0x04000100 -_080A2018: - movs r0, #1 - rsbs r0, r0, #0 - str r0, [sp] - ldr r1, _080A202C - ldr r2, _080A2030 - mov r0, sp - bl CpuSet - b _080A2040 - .align 2, 0 -_080A202C: .4byte gUnknown_20377B4 -_080A2030: .4byte 0x05000100 -_080A2034: - str r1, [sp, #4] - add r0, sp, #4 - ldr r1, _080A206C - ldr r2, _080A2070 - bl CpuSet -_080A2040: - ldr r2, _080A2074 - ldrb r1, [r2, #9] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #9] - ldrb r0, [r2, #0xa] - movs r1, #2 - orrs r0, r1 - strb r0, [r2, #0xa] -_080A2054: - ldr r3, _080A2074 - ldrb r0, [r3, #7] -_080A2058: - lsrs r0, r0, #7 -_080A205A: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080A206C: .4byte gUnknown_20377B4 -_080A2070: .4byte 0x05000100 -_080A2074: .4byte gUnknown_2037C74 - thumb_func_end sub_080A1D00 - - thumb_func_start BeginHardwarePaletteFade -BeginHardwarePaletteFade: @ 0x080A2078 - push {r4, r5, r6, r7, lr} - ldr r5, [sp, #0x14] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r7, _080A2100 - str r0, [r7] - movs r0, #0x3f - ands r1, r0 - ldrb r4, [r7, #4] - movs r6, #0x40 - rsbs r6, r6, #0 - adds r0, r6, #0 - ands r0, r4 - orrs r0, r1 - strb r0, [r7, #4] - ldrb r0, [r7, #8] - ands r6, r0 - orrs r6, r1 - strb r6, [r7, #8] - movs r0, #0x1f - adds r1, r2, #0 - ands r1, r0 - lsls r1, r1, #6 - ldrh r4, [r7, #4] - ldr r0, _080A2104 - ands r0, r4 - orrs r0, r1 - strh r0, [r7, #4] - lsls r4, r3, #3 - ldrb r1, [r7, #5] - movs r0, #7 - ands r0, r1 - orrs r0, r4 - strb r0, [r7, #5] - ldrb r0, [r7, #7] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r7, #7] - ldrb r1, [r7, #9] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - movs r1, #1 - ands r5, r1 - lsls r5, r5, #2 - subs r1, #6 - ands r0, r1 - orrs r0, r5 - subs r1, #4 - ands r0, r1 - strb r0, [r7, #9] - cmp r2, r3 - bhs _080A2108 - movs r0, #0x41 - rsbs r0, r0, #0 - ands r6, r0 - b _080A210C - .align 2, 0 -_080A2100: .4byte gUnknown_2037C74 -_080A2104: .4byte 0xFFFFF83F -_080A2108: - movs r0, #0x40 - orrs r6, r0 -_080A210C: - strb r6, [r7, #8] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end BeginHardwarePaletteFade - - thumb_func_start UpdateHardwarePaletteFade -UpdateHardwarePaletteFade: @ 0x080A2114 - push {r4, r5, r6, r7, lr} - ldr r2, _080A2128 - ldrb r1, [r2, #7] - movs r0, #0x80 - ands r0, r1 - adds r4, r2, #0 - cmp r0, #0 - bne _080A212C - movs r0, #0 - b _080A2224 - .align 2, 0 -_080A2128: .4byte gUnknown_2037C74 -_080A212C: - ldrb r2, [r4, #4] - lsls r1, r2, #0x1a - ldrb r3, [r4, #8] - lsls r0, r3, #0x1a - cmp r1, r0 - bhs _080A214E - lsrs r0, r1, #0x1a - adds r0, #1 - movs r1, #0x3f - ands r0, r1 - movs r1, #0x40 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #4] - movs r0, #2 - b _080A2224 -_080A214E: - movs r0, #0x40 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r4, #4] - movs r0, #0x40 - ands r0, r3 - cmp r0, #0 - bne _080A21AC - ldrh r1, [r4, #4] - lsls r0, r1, #0x15 - lsrs r0, r0, #0x1b - adds r0, #1 - movs r7, #0x1f - ands r0, r7 - lsls r0, r0, #6 - ldr r6, _080A21A8 - adds r3, r6, #0 - ands r3, r1 - orrs r3, r0 - strh r3, [r4, #4] - lsls r5, r3, #0x15 - ldrb r0, [r4, #5] - lsrs r1, r5, #0x1b - lsrs r0, r0, #3 - cmp r1, r0 - bls _080A21F8 - ldrb r2, [r4, #9] - lsls r1, r2, #0x1c - lsrs r1, r1, #0x1f - adds r1, #1 - movs r0, #1 - ands r1, r0 - lsls r1, r1, #3 - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #9] - lsrs r0, r5, #0x1b - subs r0, #1 - ands r0, r7 - lsls r0, r0, #6 - ands r3, r6 - b _080A21F4 - .align 2, 0 -_080A21A8: .4byte 0xFFFFF83F -_080A21AC: - ldrh r2, [r4, #4] - lsls r1, r2, #0x15 - lsrs r0, r1, #0x1b - subs r0, #1 - movs r6, #0x1f - ands r0, r6 - lsls r0, r0, #6 - ldr r5, _080A222C - adds r3, r5, #0 - ands r3, r2 - orrs r3, r0 - strh r3, [r4, #4] - lsrs r1, r1, #0x1b - subs r1, #1 - ldrb r0, [r4, #5] - lsrs r0, r0, #3 - cmp r1, r0 - bge _080A21F8 - ldrb r2, [r4, #9] - lsls r1, r2, #0x1c - lsrs r1, r1, #0x1f - adds r1, #1 - movs r0, #1 - ands r1, r0 - lsls r1, r1, #3 - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #9] - lsls r0, r3, #0x15 - lsrs r0, r0, #0x1b - adds r0, #1 - ands r0, r6 - lsls r0, r0, #6 - ands r3, r5 -_080A21F4: - orrs r3, r0 - strh r3, [r4, #4] -_080A21F8: - ldrb r1, [r4, #9] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080A2220 - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080A2216 - movs r0, #0 - str r0, [r4] - ldrh r1, [r4, #4] - ldr r0, _080A222C - ands r0, r1 - strh r0, [r4, #4] -_080A2216: - ldrb r1, [r4, #9] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #9] -_080A2220: - ldrb r0, [r4, #7] - lsrs r0, r0, #7 -_080A2224: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080A222C: .4byte 0xFFFFF83F - thumb_func_end UpdateHardwarePaletteFade - - thumb_func_start UpdateBlendRegisters -UpdateBlendRegisters: @ 0x080A2230 - push {r4, lr} - ldr r4, _080A227C - ldrh r1, [r4] - movs r0, #0x50 - bl SetGpuReg - ldrh r1, [r4, #4] - lsls r1, r1, #0x15 - lsrs r1, r1, #0x1b - movs r0, #0x54 - bl SetGpuReg - ldrb r1, [r4, #9] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080A2274 - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r4, #9] - movs r0, #0 - str r0, [r4] - ldrh r1, [r4, #4] - ldr r0, _080A2280 - ands r0, r1 - strh r0, [r4, #4] - ldrb r1, [r4, #7] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #7] -_080A2274: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A227C: .4byte gUnknown_2037C74 -_080A2280: .4byte 0xFFFFF83F - thumb_func_end UpdateBlendRegisters - - thumb_func_start IsSoftwarePaletteFadeFinishing -IsSoftwarePaletteFadeFinishing: @ 0x080A2284 - push {r4, lr} - ldr r3, _080A22BC - ldrb r4, [r3, #0xa] - movs r0, #2 - ands r0, r4 - cmp r0, #0 - beq _080A22E0 - ldr r2, [r3, #8] - movs r0, #0xf8 - lsls r0, r0, #9 - ands r0, r2 - movs r1, #0x80 - lsls r1, r1, #7 - cmp r0, r1 - bne _080A22C4 - ldrb r1, [r3, #7] - movs r0, #0x7f - ands r0, r1 - strb r0, [r3, #7] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r4 - strb r0, [r3, #0xa] - ldr r0, [r3, #8] - ldr r1, _080A22C0 - ands r0, r1 - str r0, [r3, #8] - b _080A22D8 - .align 2, 0 -_080A22BC: .4byte gUnknown_2037C74 -_080A22C0: .4byte 0xFFFE0FFF -_080A22C4: - lsls r0, r2, #0xf - lsrs r0, r0, #0x1b - adds r0, #1 - movs r1, #0x1f - ands r0, r1 - lsls r0, r0, #0xc - ldr r1, _080A22DC - ands r1, r2 - orrs r1, r0 - str r1, [r3, #8] -_080A22D8: - movs r0, #1 - b _080A22E2 - .align 2, 0 -_080A22DC: .4byte 0xFFFE0FFF -_080A22E0: - movs r0, #0 -_080A22E2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end IsSoftwarePaletteFadeFinishing - - thumb_func_start BlendPalettes -BlendPalettes: @ 0x080A22E8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - lsls r2, r2, #0x10 - lsrs r6, r2, #0x10 - movs r5, #0 - cmp r4, #0 - beq _080A231C -_080A22FA: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _080A230E - adds r0, r5, #0 - movs r1, #0x10 - adds r2, r7, #0 - adds r3, r6, #0 - bl BlendPalette -_080A230E: - lsrs r4, r4, #1 - adds r0, r5, #0 - adds r0, #0x10 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r4, #0 - bne _080A22FA -_080A231C: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BlendPalettes - - thumb_func_start BlendPalettesUnfaded -BlendPalettesUnfaded: @ 0x080A2324 - push {r4, r5, lr} - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldr r4, _080A2348 - ldr r5, _080A234C - ldr r3, _080A2350 - str r4, [r3] - str r5, [r3, #4] - ldr r4, _080A2354 - str r4, [r3, #8] - ldr r3, [r3, #8] - bl BlendPalettes - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A2348: .4byte gUnknown_20373B4 -_080A234C: .4byte gUnknown_20377B4 -_080A2350: .4byte 0x040000D4 -_080A2354: .4byte 0x84000100 - thumb_func_end BlendPalettesUnfaded - - thumb_func_start TintPalette_GrayScale -TintPalette_GrayScale: @ 0x080A2358 - push {r4, r5, r6, lr} - adds r4, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - cmp r1, #0 - beq _080A23A0 - movs r6, #0x1f - adds r5, r1, #0 -_080A2368: - ldrh r1, [r4] - movs r2, #0x1f - ands r2, r1 - lsls r1, r1, #0x10 - lsrs r3, r1, #0x15 - ands r3, r6 - lsrs r1, r1, #0x1a - ands r1, r6 - movs r0, #0x4c - muls r2, r0, r2 - movs r0, #0x97 - muls r0, r3, r0 - adds r2, r2, r0 - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r1 - adds r2, r2, r0 - asrs r2, r2, #8 - lsls r0, r2, #0xa - lsls r1, r2, #5 - orrs r0, r1 - orrs r0, r2 - strh r0, [r4] - adds r4, #2 - subs r5, #1 - cmp r5, #0 - bne _080A2368 -_080A23A0: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end TintPalette_GrayScale - - thumb_func_start TintPalette_GrayScale2 -TintPalette_GrayScale2: @ 0x080A23A8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - cmp r1, #0 - beq _080A23FC - movs r6, #0x1f - ldr r7, _080A2404 - adds r5, r1, #0 -_080A23BA: - ldrh r1, [r4] - movs r2, #0x1f - ands r2, r1 - lsls r1, r1, #0x10 - lsrs r3, r1, #0x15 - ands r3, r6 - lsrs r1, r1, #0x1a - ands r1, r6 - movs r0, #0x4c - muls r2, r0, r2 - movs r0, #0x97 - muls r0, r3, r0 - adds r2, r2, r0 - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r1 - adds r2, r2, r0 - asrs r2, r2, #8 - cmp r2, #0x1f - bls _080A23E6 - movs r2, #0x1f -_080A23E6: - adds r0, r2, r7 - ldrb r2, [r0] - lsls r0, r2, #0xa - lsls r1, r2, #5 - orrs r0, r1 - orrs r0, r2 - strh r0, [r4] - adds r4, #2 - subs r5, #1 - cmp r5, #0 - bne _080A23BA -_080A23FC: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A2404: .4byte gUnknown_84FCFA8 - thumb_func_end TintPalette_GrayScale2 - - thumb_func_start TintPalette_SepiaTone -TintPalette_SepiaTone: @ 0x080A2408 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - cmp r1, #0 - beq _080A246A - movs r7, #0x1f - adds r6, r1, #0 -_080A2418: - ldrh r0, [r5] - movs r1, #0x1f - ands r1, r0 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x15 - ands r2, r7 - lsrs r3, r0, #0x1a - ands r3, r7 - movs r0, #0x4c - muls r1, r0, r1 - movs r0, #0x97 - muls r0, r2, r0 - adds r1, r1, r0 - lsls r0, r3, #3 - subs r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r1, r1, r0 - asrs r1, r1, #8 - ldr r0, _080A2470 - muls r0, r1, r0 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x18 - lsls r0, r1, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #0x14 - lsrs r3, r0, #0x18 - cmp r2, #0x1f - ble _080A2458 - movs r2, #0x1f -_080A2458: - lsls r0, r3, #0xa - lsls r1, r4, #5 - orrs r0, r1 - orrs r0, r2 - strh r0, [r5] - adds r5, #2 - subs r6, #1 - cmp r6, #0 - bne _080A2418 -_080A246A: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A2470: .4byte 0x00000133 - thumb_func_end TintPalette_SepiaTone - - thumb_func_start TintPalette_CustomTone -TintPalette_CustomTone: @ 0x080A2474 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - ldr r0, [sp, #0x1c] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - mov sb, r2 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - mov r8, r3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov ip, r0 - cmp r1, #0 - beq _080A2500 - movs r7, #0x1f - adds r6, r1, #0 -_080A249E: - ldrh r0, [r5] - movs r1, #0x1f - ands r1, r0 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x15 - ands r2, r7 - lsrs r3, r0, #0x1a - ands r3, r7 - movs r0, #0x4c - muls r1, r0, r1 - movs r0, #0x97 - muls r0, r2, r0 - adds r1, r1, r0 - lsls r0, r3, #3 - subs r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r1, r1, r0 - asrs r1, r1, #8 - mov r0, sb - muls r0, r1, r0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x18 - mov r0, r8 - muls r0, r1, r0 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x18 - mov r0, ip - muls r0, r1, r0 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x18 - cmp r4, #0x1f - ble _080A24E2 - movs r4, #0x1f -_080A24E2: - cmp r2, #0x1f - ble _080A24E8 - movs r2, #0x1f -_080A24E8: - cmp r3, #0x1f - ble _080A24EE - movs r3, #0x1f -_080A24EE: - lsls r0, r3, #0xa - lsls r1, r2, #5 - orrs r0, r1 - orrs r0, r4 - strh r0, [r5] - adds r5, #2 - subs r6, #1 - cmp r6, #0 - bne _080A249E -_080A2500: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end TintPalette_CustomTone - - thumb_func_start sub_080A250C -sub_080A250C: @ 0x080A250C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sl, r0 - adds r4, r1, #0 - ldr r0, [sp, #0x20] - ldr r1, [sp, #0x24] - ldr r5, [sp, #0x28] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r6, r3, #0x18 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - mov r8, r5 - ldr r0, _080A2564 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _080A2568 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r1, r0, r1 - strh r7, [r1, #8] - strh r6, [r1, #0xa] - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - cmp r4, #0 - blt _080A256C - strh r4, [r1, #0xe] - movs r0, #1 - b _080A2574 - .align 2, 0 -_080A2564: .4byte sub_080A261C -_080A2568: .4byte gUnknown_3005B60 -_080A256C: - movs r0, #0 - strh r0, [r1, #0xe] - rsbs r0, r4, #0 - adds r0, #1 -_080A2574: - strh r0, [r1, #0xc] - lsls r4, r5, #2 - cmp r6, r7 - bhs _080A258C - ldr r0, _080A25BC - adds r1, r4, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r2, #0xc - ldrsh r0, [r1, r2] - rsbs r0, r0, #0 - strh r0, [r1, #0xc] -_080A258C: - adds r0, r5, #0 - movs r1, #5 - mov r2, sl - bl SetWordTaskArg - ldr r0, _080A25BC - adds r1, r4, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - mov r0, sb - strh r0, [r1, #0x16] - mov r2, r8 - strh r2, [r1, #0x18] - ldr r1, [r1] - adds r0, r5, #0 - bl _call_via_r1 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A25BC: .4byte gUnknown_3005B60 - thumb_func_end sub_080A250C - - thumb_func_start sub_080A25C0 -sub_080A25C0: @ 0x080A25C0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - movs r2, #0 - ldr r4, _080A25E4 - ldr r1, _080A25E8 -_080A25CC: - ldrb r0, [r1, #4] - cmp r0, #1 - bne _080A25EC - ldr r0, [r1] - cmp r0, r4 - bne _080A25EC - movs r5, #0x18 - ldrsh r0, [r1, r5] - cmp r0, r3 - bne _080A25EC - movs r0, #1 - b _080A25F6 - .align 2, 0 -_080A25E4: .4byte sub_080A261C -_080A25E8: .4byte gUnknown_3005B60 -_080A25EC: - adds r1, #0x28 - adds r2, #1 - cmp r2, #0xf - ble _080A25CC - movs r0, #0 -_080A25F6: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_080A25C0 - - thumb_func_start sub_080A25FC -sub_080A25FC: @ 0x080A25FC - push {lr} - b _080A2604 -_080A2600: - bl DestroyTask -_080A2604: - ldr r0, _080A2618 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080A2600 - pop {r0} - bx r0 - .align 2, 0 -_080A2618: .4byte sub_080A261C - thumb_func_end sub_080A25FC - - thumb_func_start sub_080A261C -sub_080A261C: @ 0x080A261C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080A2670 - adds r4, r0, r1 - adds r0, r5, #0 - movs r1, #5 - bl GetWordTaskArg - adds r3, r0, #0 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #6 - ldrsh r1, [r4, r2] - cmp r0, r1 - ble _080A2694 - movs r0, #0 - strh r0, [r4, #8] - ldrb r1, [r4] - ldrh r2, [r4, #0xe] - adds r0, r3, #0 - bl BlendPalettes - ldrh r1, [r4] - movs r6, #0 - ldrsh r0, [r4, r6] - ldrh r3, [r4, #2] - movs r6, #2 - ldrsh r2, [r4, r6] - cmp r0, r2 - bne _080A2674 - adds r0, r5, #0 - bl DestroyTask - b _080A2694 - .align 2, 0 -_080A2670: .4byte gUnknown_3005B68 -_080A2674: - ldrh r0, [r4, #4] - adds r1, r1, r0 - strh r1, [r4] - lsls r0, r0, #0x10 - cmp r0, #0 - blt _080A268A - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, r2 - blt _080A2694 - b _080A2692 -_080A268A: - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, r2 - bgt _080A2694 -_080A2692: - strh r3, [r4] -_080A2694: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080A261C - - thumb_func_start InitMapMusic -InitMapMusic: @ 0x080A269C - push {lr} - ldr r1, _080A26AC - movs r0, #0 - strb r0, [r1] - bl ResetMapMusic - pop {r0} - bx r0 - .align 2, 0 -_080A26AC: .4byte gUnknown_3005B58 - thumb_func_end InitMapMusic - - thumb_func_start MapMusicMain -MapMusicMain: @ 0x080A26B0 - push {r4, r5, lr} - ldr r0, _080A26C8 - ldrb r1, [r0] - adds r2, r0, #0 - cmp r1, #7 - bhi _080A2792 - lsls r0, r1, #2 - ldr r1, _080A26CC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080A26C8: .4byte gUnknown_3000F4C -_080A26CC: .4byte _080A26D0 -_080A26D0: @ jump table - .4byte _080A2792 @ case 0 - .4byte _080A26F0 @ case 1 - .4byte _080A2792 @ case 2 - .4byte _080A2792 @ case 3 - .4byte _080A2792 @ case 4 - .4byte _080A2704 @ case 5 - .4byte _080A2724 @ case 6 - .4byte _080A2760 @ case 7 -_080A26F0: - movs r0, #2 - strb r0, [r2] - ldr r0, _080A2700 - ldrh r0, [r0] - bl PlayBGM - b _080A2792 - .align 2, 0 -_080A2700: .4byte gUnknown_3000F48 -_080A2704: - bl IsBGMStopped - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A2792 - ldr r0, _080A271C - movs r1, #0 - strh r1, [r0] - ldr r0, _080A2720 - strb r1, [r0] - b _080A2792 - .align 2, 0 -_080A271C: .4byte gUnknown_3000F4A -_080A2720: .4byte gUnknown_3000F4C -_080A2724: - bl IsBGMStopped - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A2792 - bl IsFanfareTaskInactive - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A2792 - ldr r2, _080A2754 - ldr r1, _080A2758 - ldrh r0, [r1] - strh r0, [r2] - movs r0, #0 - strh r0, [r1] - ldr r1, _080A275C - movs r0, #2 - strb r0, [r1] - ldrh r0, [r2] - bl PlayBGM - b _080A2792 - .align 2, 0 -_080A2754: .4byte gUnknown_3000F48 -_080A2758: .4byte gUnknown_3000F4A -_080A275C: .4byte gUnknown_3000F4C -_080A2760: - bl IsBGMStopped - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A2792 - bl IsFanfareTaskInactive - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A2792 - ldr r4, _080A2798 - ldrh r0, [r4] - ldr r5, _080A279C - ldrb r1, [r5] - bl FadeInNewBGM - ldr r1, _080A27A0 - ldrh r0, [r4] - strh r0, [r1] - movs r2, #0 - strh r2, [r4] - ldr r1, _080A27A4 - movs r0, #2 - strb r0, [r1] - strb r2, [r5] -_080A2792: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A2798: .4byte gUnknown_3000F4A -_080A279C: .4byte gUnknown_3000F4D -_080A27A0: .4byte gUnknown_3000F48 -_080A27A4: .4byte gUnknown_3000F4C - thumb_func_end MapMusicMain - - thumb_func_start ResetMapMusic -ResetMapMusic: @ 0x080A27A8 - ldr r0, _080A27BC - movs r1, #0 - strh r1, [r0] - ldr r0, _080A27C0 - strh r1, [r0] - ldr r0, _080A27C4 - strb r1, [r0] - ldr r0, _080A27C8 - strb r1, [r0] - bx lr - .align 2, 0 -_080A27BC: .4byte gUnknown_3000F48 -_080A27C0: .4byte gUnknown_3000F4A -_080A27C4: .4byte gUnknown_3000F4C -_080A27C8: .4byte gUnknown_3000F4D - thumb_func_end ResetMapMusic - - thumb_func_start sub_080A27CC -sub_080A27CC: @ 0x080A27CC - ldr r0, _080A27D4 - ldrh r0, [r0] - bx lr - .align 2, 0 -_080A27D4: .4byte gUnknown_3000F48 - thumb_func_end sub_080A27CC - - thumb_func_start PlayNewMapMusic -PlayNewMapMusic: @ 0x080A27D8 - ldr r1, _080A27EC - strh r0, [r1] - ldr r1, _080A27F0 - movs r0, #0 - strh r0, [r1] - ldr r1, _080A27F4 - movs r0, #1 - strb r0, [r1] - bx lr - .align 2, 0 -_080A27EC: .4byte gUnknown_3000F48 -_080A27F0: .4byte gUnknown_3000F4A -_080A27F4: .4byte gUnknown_3000F4C - thumb_func_end PlayNewMapMusic - - thumb_func_start StopMapMusic -StopMapMusic: @ 0x080A27F8 - ldr r0, _080A280C - movs r1, #0 - strh r1, [r0] - ldr r0, _080A2810 - strh r1, [r0] - ldr r1, _080A2814 - movs r0, #1 - strb r0, [r1] - bx lr - .align 2, 0 -_080A280C: .4byte gUnknown_3000F48 -_080A2810: .4byte gUnknown_3000F4A -_080A2814: .4byte gUnknown_3000F4C - thumb_func_end StopMapMusic - - thumb_func_start FadeOutMapMusic -FadeOutMapMusic: @ 0x080A2818 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl IsNotWaitingForBGMStop - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A282E - adds r0, r4, #0 - bl sub_080A2B08 -_080A282E: - ldr r0, _080A2844 - movs r1, #0 - strh r1, [r0] - ldr r0, _080A2848 - strh r1, [r0] - ldr r1, _080A284C - movs r0, #5 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A2844: .4byte gUnknown_3000F48 -_080A2848: .4byte gUnknown_3000F4A -_080A284C: .4byte gUnknown_3000F4C - thumb_func_end FadeOutMapMusic - - thumb_func_start FadeOutAndPlayNewMapMusic -FadeOutAndPlayNewMapMusic: @ 0x080A2850 - push {r4, lr} - adds r4, r0, #0 - adds r0, r1, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl FadeOutMapMusic - ldr r1, _080A2878 - movs r0, #0 - strh r0, [r1] - ldr r0, _080A287C - strh r4, [r0] - ldr r1, _080A2880 - movs r0, #6 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A2878: .4byte gUnknown_3000F48 -_080A287C: .4byte gUnknown_3000F4A -_080A2880: .4byte gUnknown_3000F4C - thumb_func_end FadeOutAndPlayNewMapMusic - - thumb_func_start FadeOutAndFadeInNewMapMusic -FadeOutAndFadeInNewMapMusic: @ 0x080A2884 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, r1, #0 - adds r5, r2, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - bl FadeOutMapMusic - ldr r1, _080A28B8 - movs r0, #0 - strh r0, [r1] - ldr r0, _080A28BC - strh r4, [r0] - ldr r1, _080A28C0 - movs r0, #7 - strb r0, [r1] - ldr r0, _080A28C4 - strb r5, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A28B8: .4byte gUnknown_3000F48 -_080A28BC: .4byte gUnknown_3000F4A -_080A28C0: .4byte gUnknown_3000F4C -_080A28C4: .4byte gUnknown_3000F4D - thumb_func_end FadeOutAndFadeInNewMapMusic - - thumb_func_start FadeInNewMapMusic -FadeInNewMapMusic: @ 0x080A28C8 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl FadeInNewBGM - ldr r0, _080A28F4 - strh r4, [r0] - ldr r0, _080A28F8 - movs r2, #0 - strh r2, [r0] - ldr r1, _080A28FC - movs r0, #2 - strb r0, [r1] - ldr r0, _080A2900 - strb r2, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A28F4: .4byte gUnknown_3000F48 -_080A28F8: .4byte gUnknown_3000F4A -_080A28FC: .4byte gUnknown_3000F4C -_080A2900: .4byte gUnknown_3000F4D - thumb_func_end FadeInNewMapMusic - - thumb_func_start IsNotWaitingForBGMStop -IsNotWaitingForBGMStop: @ 0x080A2904 - push {lr} - ldr r0, _080A291C - ldrb r0, [r0] - cmp r0, #6 - beq _080A2920 - cmp r0, #5 - beq _080A2920 - cmp r0, #7 - beq _080A2920 - movs r0, #1 - b _080A2922 - .align 2, 0 -_080A291C: .4byte gUnknown_3000F4C -_080A2920: - movs r0, #0 -_080A2922: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsNotWaitingForBGMStop - - thumb_func_start PlayFanfareByFanfareNum -PlayFanfareByFanfareNum: @ 0x080A2928 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _080A2950 - bl m4aMPlayStop - ldr r0, _080A2954 - lsls r4, r4, #2 - adds r4, r4, r0 - ldrh r0, [r4] - ldr r2, _080A2958 - ldrh r1, [r4, #2] - strh r1, [r2] - bl m4aSongNumStart - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A2950: .4byte gUnknown_30074D0 -_080A2954: .4byte gUnknown_84FCFC8 -_080A2958: .4byte gUnknown_3000F4E - thumb_func_end PlayFanfareByFanfareNum - - thumb_func_start WaitFanfare -WaitFanfare: @ 0x080A295C - push {lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r2, _080A2974 - ldrh r0, [r2] - cmp r0, #0 - beq _080A2978 - subs r0, #1 - strh r0, [r2] - movs r0, #0 - b _080A2990 - .align 2, 0 -_080A2974: .4byte gUnknown_3000F4E -_080A2978: - cmp r1, #0 - bne _080A2988 - ldr r0, _080A2984 - bl m4aMPlayContinue - b _080A298E - .align 2, 0 -_080A2984: .4byte gUnknown_30074D0 -_080A2988: - movs r0, #0 - bl m4aSongNumStart -_080A298E: - movs r0, #1 -_080A2990: - pop {r1} - bx r1 - thumb_func_end WaitFanfare - - thumb_func_start StopFanfareByFanfareNum -StopFanfareByFanfareNum: @ 0x080A2994 - push {lr} - lsls r0, r0, #0x18 - ldr r1, _080A29A8 - lsrs r0, r0, #0x16 - adds r0, r0, r1 - ldrh r0, [r0] - bl m4aSongNumStop - pop {r0} - bx r0 - .align 2, 0 -_080A29A8: .4byte gUnknown_84FCFC8 - thumb_func_end StopFanfareByFanfareNum - - thumb_func_start PlayFanfare -PlayFanfare: @ 0x080A29AC - push {lr} - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - movs r1, #0 - ldr r2, _080A29CC -_080A29B6: - ldrh r0, [r2] - cmp r0, r3 - bne _080A29D0 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - bl PlayFanfareByFanfareNum - bl CreateFanfareTask - b _080A29E2 - .align 2, 0 -_080A29CC: .4byte gUnknown_84FCFC8 -_080A29D0: - adds r2, #4 - adds r1, #1 - cmp r1, #0x11 - bls _080A29B6 - movs r0, #0 - bl PlayFanfareByFanfareNum - bl CreateFanfareTask -_080A29E2: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PlayFanfare - - thumb_func_start IsFanfareTaskInactive -IsFanfareTaskInactive: @ 0x080A29E8 - push {lr} - ldr r0, _080A29FC - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080A2A00 - movs r0, #1 - b _080A2A02 - .align 2, 0 -_080A29FC: .4byte Task_Fanfare -_080A2A00: - movs r0, #0 -_080A2A02: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsFanfareTaskInactive - - thumb_func_start Task_Fanfare -Task_Fanfare: @ 0x080A2A08 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _080A2A1C - ldrh r0, [r1] - cmp r0, #0 - beq _080A2A20 - subs r0, #1 - strh r0, [r1] - b _080A2A2C - .align 2, 0 -_080A2A1C: .4byte gUnknown_3000F4E -_080A2A20: - ldr r0, _080A2A34 - bl m4aMPlayContinue - adds r0, r4, #0 - bl DestroyTask -_080A2A2C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A2A34: .4byte gUnknown_30074D0 - thumb_func_end Task_Fanfare - - thumb_func_start CreateFanfareTask -CreateFanfareTask: @ 0x080A2A38 - push {r4, lr} - ldr r4, _080A2A58 - adds r0, r4, #0 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080A2A52 - adds r0, r4, #0 - movs r1, #0x50 - bl CreateTask -_080A2A52: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A2A58: .4byte Task_Fanfare - thumb_func_end CreateFanfareTask - - thumb_func_start FadeInNewBGM -FadeInNewBGM: @ 0x080A2A5C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - ldr r0, _080A2AA4 - ldrb r0, [r0] - cmp r0, #0 - beq _080A2A70 - movs r5, #0 -_080A2A70: - ldr r6, _080A2AA8 - cmp r5, r6 - bne _080A2A78 - movs r5, #0 -_080A2A78: - adds r0, r5, #0 - bl m4aSongNumStart - ldr r4, _080A2AAC - adds r0, r4, #0 - bl m4aMPlayImmInit - adds r0, r4, #0 - adds r1, r6, #0 - movs r2, #0 - bl m4aMPlayVolumeControl - adds r0, r5, #0 - bl m4aSongNumStop - adds r0, r4, #0 - adds r1, r7, #0 - bl m4aMPlayFadeIn - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A2AA4: .4byte gUnknown_3005B58 -_080A2AA8: .4byte 0x0000FFFF -_080A2AAC: .4byte gUnknown_30074D0 - thumb_func_end FadeInNewBGM - - thumb_func_start PlayBattleBGM -PlayBattleBGM: @ 0x080A2AB0 - push {lr} - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, _080A2AC4 - bl m4aMPlayFadeOutTemporarily - pop {r0} - bx r0 - .align 2, 0 -_080A2AC4: .4byte gUnknown_30074D0 - thumb_func_end PlayBattleBGM - - thumb_func_start IsBGMPausedOrStopped -IsBGMPausedOrStopped: @ 0x080A2AC8 - push {lr} - ldr r0, _080A2AE0 - ldr r1, [r0, #4] - cmp r1, #0 - blt _080A2AE8 - ldr r0, _080A2AE4 - ands r1, r0 - cmp r1, #0 - beq _080A2AE8 - movs r0, #0 - b _080A2AEA - .align 2, 0 -_080A2AE0: .4byte gUnknown_30074D0 -_080A2AE4: .4byte 0x0000FFFF -_080A2AE8: - movs r0, #1 -_080A2AEA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsBGMPausedOrStopped - - thumb_func_start sub_080A2AF0 -sub_080A2AF0: @ 0x080A2AF0 - push {lr} - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, _080A2B04 - bl m4aMPlayFadeIn - pop {r0} - bx r0 - .align 2, 0 -_080A2B04: .4byte gUnknown_30074D0 - thumb_func_end sub_080A2AF0 - - thumb_func_start sub_080A2B08 -sub_080A2B08: @ 0x080A2B08 - push {lr} - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, _080A2B1C - bl m4aMPlayFadeOut - pop {r0} - bx r0 - .align 2, 0 -_080A2B1C: .4byte gUnknown_30074D0 - thumb_func_end sub_080A2B08 - - thumb_func_start IsBGMStopped -IsBGMStopped: @ 0x080A2B20 - push {lr} - ldr r0, _080A2B30 - ldrh r0, [r0, #4] - cmp r0, #0 - beq _080A2B34 - movs r0, #0 - b _080A2B36 - .align 2, 0 -_080A2B30: .4byte gUnknown_30074D0 -_080A2B34: - movs r0, #1 -_080A2B36: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsBGMStopped - - thumb_func_start PlayCry1 -PlayCry1: @ 0x080A2B3C - push {r4, r5, lr} - sub sp, #4 - adds r5, r0, #0 - adds r4, r1, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _080A2B7C - ldr r1, _080A2B80 - movs r2, #0x55 - bl m4aMPlayVolumeControl - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - movs r0, #0 - str r0, [sp] - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x78 - movs r3, #0xa - bl PlayCryInternal - ldr r1, _080A2B84 - movs r0, #2 - strb r0, [r1] - bl RestoreBGMVolumeAfterPokemonCry - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A2B7C: .4byte gUnknown_30074D0 -_080A2B80: .4byte 0x0000FFFF -_080A2B84: .4byte gUnknown_203808C - thumb_func_end PlayCry1 - - thumb_func_start PlayCry2 -PlayCry2: @ 0x080A2B88 - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - movs r4, #0 - str r4, [sp] - bl PlayCryInternal - add sp, #4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end PlayCry2 - - thumb_func_start PlayCry3 -PlayCry3: @ 0x080A2BAC - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r4, r2, #0x18 - cmp r4, #1 - bne _080A2BD2 - lsls r1, r5, #0x18 - asrs r1, r1, #0x18 - str r4, [sp] - adds r0, r6, #0 - movs r2, #0x78 - movs r3, #0xa - bl PlayCryInternal - b _080A2BF6 -_080A2BD2: - ldr r0, _080A2C00 - ldr r1, _080A2C04 - movs r2, #0x55 - bl m4aMPlayVolumeControl - lsls r1, r5, #0x18 - asrs r1, r1, #0x18 - str r4, [sp] - adds r0, r6, #0 - movs r2, #0x78 - movs r3, #0xa - bl PlayCryInternal - ldr r1, _080A2C08 - movs r0, #2 - strb r0, [r1] - bl RestoreBGMVolumeAfterPokemonCry -_080A2BF6: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080A2C00: .4byte gUnknown_30074D0 -_080A2C04: .4byte 0x0000FFFF -_080A2C08: .4byte gUnknown_203808C - thumb_func_end PlayCry3 - - thumb_func_start PlayCry4 -PlayCry4: @ 0x080A2C0C - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r6, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r5, r1, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r4, r2, #0 - cmp r2, #1 - bne _080A2C36 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - str r2, [sp] - movs r2, #0x78 - movs r3, #0xa - bl PlayCryInternal - b _080A2C5C -_080A2C36: - ldr r0, _080A2C64 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _080A2C4C - ldr r0, _080A2C68 - ldr r1, _080A2C6C - movs r2, #0x55 - bl m4aMPlayVolumeControl -_080A2C4C: - lsls r1, r5, #0x18 - asrs r1, r1, #0x18 - str r4, [sp] - adds r0, r6, #0 - movs r2, #0x78 - movs r3, #0xa - bl PlayCryInternal -_080A2C5C: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080A2C64: .4byte gUnknown_2022C90 -_080A2C68: .4byte gUnknown_30074D0 -_080A2C6C: .4byte 0x0000FFFF - thumb_func_end PlayCry4 - - thumb_func_start PlayCry6 -PlayCry6: @ 0x080A2C70 - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r4, r2, #0x18 - cmp r4, #1 - bne _080A2C96 - lsls r1, r5, #0x18 - asrs r1, r1, #0x18 - str r4, [sp] - adds r0, r6, #0 - movs r2, #0x78 - movs r3, #0xa - bl PlayCryInternal - b _080A2CB6 -_080A2C96: - ldr r0, _080A2CC0 - ldr r1, _080A2CC4 - movs r2, #0x55 - bl m4aMPlayVolumeControl - lsls r1, r5, #0x18 - asrs r1, r1, #0x18 - str r4, [sp] - adds r0, r6, #0 - movs r2, #0x78 - movs r3, #0xa - bl PlayCryInternal - ldr r1, _080A2CC8 - movs r0, #2 - strb r0, [r1] -_080A2CB6: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080A2CC0: .4byte gUnknown_30074D0 -_080A2CC4: .4byte 0x0000FFFF -_080A2CC8: .4byte gUnknown_203808C - thumb_func_end PlayCry6 - - thumb_func_start PlayCry5 -PlayCry5: @ 0x080A2CCC - push {r4, r5, lr} - sub sp, #4 - adds r5, r0, #0 - adds r4, r1, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _080A2D08 - ldr r1, _080A2D0C - movs r2, #0x55 - bl m4aMPlayVolumeControl - str r4, [sp] - adds r0, r5, #0 - movs r1, #0 - movs r2, #0x78 - movs r3, #0xa - bl PlayCryInternal - ldr r1, _080A2D10 - movs r0, #2 - strb r0, [r1] - bl RestoreBGMVolumeAfterPokemonCry - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A2D08: .4byte gUnknown_30074D0 -_080A2D0C: .4byte 0x0000FFFF -_080A2D10: .4byte gUnknown_203808C - thumb_func_end PlayCry5 - - thumb_func_start PlayCryInternal -PlayCryInternal: @ 0x080A2D14 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - ldr r4, [sp, #0x24] - lsls r0, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sl, r1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r3, [sp] - lsls r4, r4, #0x18 - lsrs r1, r4, #0x18 - ldr r3, _080A2D5C - adds r0, r0, r3 - lsrs r7, r0, #0x10 - movs r6, #0x8c - movs r0, #0 - mov sb, r0 - movs r5, #0 - movs r4, #0xf0 - lsls r4, r4, #6 - mov r8, r5 - cmp r1, #0xc - bhi _080A2E2A - lsls r0, r1, #2 - ldr r1, _080A2D60 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080A2D5C: .4byte 0xFFFF0000 -_080A2D60: .4byte _080A2D64 -_080A2D64: @ jump table - .4byte _080A2E2A @ case 0 - .4byte _080A2D98 @ case 1 - .4byte _080A2D9E @ case 2 - .4byte _080A2DAC @ case 3 - .4byte _080A2DC0 @ case 4 - .4byte _080A2DD8 @ case 5 - .4byte _080A2DE4 @ case 6 - .4byte _080A2DF4 @ case 7 - .4byte _080A2DFE @ case 8 - .4byte _080A2E08 @ case 9 - .4byte _080A2E18 @ case 10 - .4byte _080A2E28 @ case 11 - .4byte _080A2E24 @ case 12 -_080A2D98: - movs r6, #0x14 - movs r5, #0xe1 - b _080A2E2A -_080A2D9E: - movs r5, #0xe1 - ldr r4, _080A2DA8 - movs r1, #0x14 - b _080A2DCC - .align 2, 0 -_080A2DA8: .4byte 0x00003CF0 -_080A2DAC: - movs r6, #0x32 - movs r5, #0xc8 - ldr r4, _080A2DBC - movs r3, #0x14 - mov r8, r3 - movs r2, #0x5a - b _080A2E2A - .align 2, 0 -_080A2DBC: .4byte 0x00003DB8 -_080A2DC0: - movs r6, #0x19 - movs r0, #1 - mov sb, r0 - movs r5, #0x64 - ldr r4, _080A2DD4 - movs r1, #0xc0 -_080A2DCC: - mov r8, r1 - movs r2, #0x5a - b _080A2E2A - .align 2, 0 -_080A2DD4: .4byte 0x00003CF0 -_080A2DD8: - movs r5, #0xc8 - ldr r4, _080A2DE0 - b _080A2E2A - .align 2, 0 -_080A2DE0: .4byte 0x00003868 -_080A2DE4: - movs r5, #0xdc - ldr r4, _080A2DF0 - movs r3, #0xc0 - mov r8, r3 - movs r2, #0x46 - b _080A2E2A - .align 2, 0 -_080A2DF0: .4byte 0x00003CC3 -_080A2DF4: - movs r6, #0xa - movs r5, #0x64 - movs r4, #0xe8 - lsls r4, r4, #6 - b _080A2E2A -_080A2DFE: - movs r6, #0x3c - movs r5, #0xe1 - movs r4, #0xf4 - lsls r4, r4, #6 - b _080A2E2A -_080A2E08: - movs r6, #0xf - movs r0, #1 - mov sb, r0 - movs r5, #0x7d - ldr r4, _080A2E14 - b _080A2E2A - .align 2, 0 -_080A2E14: .4byte 0x00003B60 -_080A2E18: - movs r6, #0x64 - movs r5, #0xe1 - ldr r4, _080A2E20 - b _080A2E2A - .align 2, 0 -_080A2E20: .4byte 0x00003B60 -_080A2E24: - movs r6, #0x14 - movs r5, #0xe1 -_080A2E28: - ldr r4, _080A2E84 -_080A2E2A: - adds r0, r2, #0 - bl SetPokemonCryVolume - mov r1, sl - lsls r0, r1, #0x18 - asrs r0, r0, #0x18 - bl SetPokemonCryPanpot - adds r0, r4, #0 - bl SetPokemonCryPitch - adds r0, r6, #0 - bl SetPokemonCryLength - movs r0, #0 - bl SetPokemonCryProgress - adds r0, r5, #0 - bl SetPokemonCryRelease - mov r3, r8 - lsls r0, r3, #0x18 - asrs r0, r0, #0x18 - bl SetPokemonCryChorus - ldr r0, [sp] - bl SetPokemonCryPriority - adds r0, r7, #0 - bl SpeciesToCryId - adds r7, r0, #0 - movs r1, #0x7f - ands r1, r7 - lsrs r0, r7, #7 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r2, r0, #0 - cmp r0, #1 - beq _080A2EB8 - cmp r0, #1 - bgt _080A2E88 - cmp r0, #0 - beq _080A2E92 - b _080A2F26 - .align 2, 0 -_080A2E84: .4byte 0x00003A98 -_080A2E88: - cmp r2, #2 - beq _080A2EDC - cmp r2, #3 - beq _080A2F00 - b _080A2F26 -_080A2E92: - mov r0, sb - cmp r0, #0 - beq _080A2EA8 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080A2EA4 - b _080A2F1C - .align 2, 0 -_080A2EA4: .4byte gUnknown_8626A44 -_080A2EA8: - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080A2EB4 - b _080A2F1C - .align 2, 0 -_080A2EB4: .4byte gUnknown_8625814 -_080A2EB8: - mov r3, sb - cmp r3, #0 - beq _080A2ECC - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080A2EC8 - b _080A2F1C - .align 2, 0 -_080A2EC8: .4byte gUnknown_8627044 -_080A2ECC: - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080A2ED8 - b _080A2F1C - .align 2, 0 -_080A2ED8: .4byte gUnknown_8625E14 -_080A2EDC: - mov r0, sb - cmp r0, #0 - beq _080A2EF0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080A2EEC - b _080A2F1C - .align 2, 0 -_080A2EEC: .4byte gUnknown_8627644 -_080A2EF0: - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080A2EFC - b _080A2F1C - .align 2, 0 -_080A2EFC: .4byte gUnknown_8626414 -_080A2F00: - mov r3, sb - cmp r3, #0 - beq _080A2F14 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080A2F10 - b _080A2F1C - .align 2, 0 -_080A2F10: .4byte gUnknown_8627C44 -_080A2F14: - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080A2F38 -_080A2F1C: - adds r0, r0, r1 - bl SetPokemonCryTone - ldr r1, _080A2F3C - str r0, [r1] -_080A2F26: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A2F38: .4byte gUnknown_8626A14 -_080A2F3C: .4byte gUnknown_2038088 - thumb_func_end PlayCryInternal - - thumb_func_start IsCryFinished -IsCryFinished: @ 0x080A2F40 - push {lr} - ldr r0, _080A2F58 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080A2F5C - bl GetRivalSonDaughterString - movs r0, #1 - b _080A2F5E - .align 2, 0 -_080A2F58: .4byte Task_DuckBGMForPokemonCry -_080A2F5C: - movs r0, #0 -_080A2F5E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsCryFinished - - thumb_func_start sub_080A2F64 -sub_080A2F64: @ 0x080A2F64 - push {lr} - ldr r0, _080A2F78 - ldr r0, [r0] - bl m4aMPlayStop - bl GetRivalSonDaughterString - pop {r0} - bx r0 - .align 2, 0 -_080A2F78: .4byte gUnknown_2038088 - thumb_func_end sub_080A2F64 - - thumb_func_start sub_080A2F7C -sub_080A2F7C: @ 0x080A2F7C - push {lr} - ldr r0, _080A2F8C - ldr r0, [r0] - bl m4aMPlayStop - pop {r0} - bx r0 - .align 2, 0 -_080A2F8C: .4byte gUnknown_2038088 - thumb_func_end sub_080A2F7C - - thumb_func_start IsCryPlayingOrClearCrySongs -IsCryPlayingOrClearCrySongs: @ 0x080A2F90 - push {lr} - ldr r0, _080A2FA8 - ldr r0, [r0] - bl IsPokemonCryPlaying - cmp r0, #0 - bne _080A2FAC - bl GetRivalSonDaughterString - movs r0, #0 - b _080A2FAE - .align 2, 0 -_080A2FA8: .4byte gUnknown_2038088 -_080A2FAC: - movs r0, #1 -_080A2FAE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsCryPlayingOrClearCrySongs - - thumb_func_start IsCryPlaying -IsCryPlaying: @ 0x080A2FB4 - push {lr} - ldr r0, _080A2FC8 - ldr r0, [r0] - bl IsPokemonCryPlaying - cmp r0, #0 - bne _080A2FCC - movs r0, #0 - b _080A2FCE - .align 2, 0 -_080A2FC8: .4byte gUnknown_2038088 -_080A2FCC: - movs r0, #1 -_080A2FCE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsCryPlaying - - thumb_func_start Task_DuckBGMForPokemonCry -Task_DuckBGMForPokemonCry: @ 0x080A2FD4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _080A2FE8 - ldrb r0, [r1] - cmp r0, #0 - beq _080A2FEC - subs r0, #1 - strb r0, [r1] - b _080A300A - .align 2, 0 -_080A2FE8: .4byte gUnknown_203808C -_080A2FEC: - ldr r0, _080A3010 - ldr r0, [r0] - bl IsPokemonCryPlaying - cmp r0, #0 - bne _080A300A - ldr r0, _080A3014 - ldr r1, _080A3018 - movs r2, #0x80 - lsls r2, r2, #1 - bl m4aMPlayVolumeControl - adds r0, r4, #0 - bl DestroyTask -_080A300A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A3010: .4byte gUnknown_2038088 -_080A3014: .4byte gUnknown_30074D0 -_080A3018: .4byte 0x0000FFFF - thumb_func_end Task_DuckBGMForPokemonCry - - thumb_func_start RestoreBGMVolumeAfterPokemonCry -RestoreBGMVolumeAfterPokemonCry: @ 0x080A301C - push {r4, lr} - ldr r4, _080A303C - adds r0, r4, #0 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080A3036 - adds r0, r4, #0 - movs r1, #0x50 - bl CreateTask -_080A3036: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A303C: .4byte Task_DuckBGMForPokemonCry - thumb_func_end RestoreBGMVolumeAfterPokemonCry - - thumb_func_start PlayBGM -PlayBGM: @ 0x080A3040 - push {lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r0, _080A3064 - ldrb r0, [r0] - cmp r0, #0 - beq _080A3050 - movs r1, #0 -_080A3050: - ldr r0, _080A3068 - cmp r1, r0 - bne _080A3058 - movs r1, #0 -_080A3058: - adds r0, r1, #0 - bl m4aSongNumStart - pop {r0} - bx r0 - .align 2, 0 -_080A3064: .4byte gUnknown_3005B58 -_080A3068: .4byte 0x0000FFFF - thumb_func_end PlayBGM - - thumb_func_start sub_080A306C -sub_080A306C: @ 0x080A306C - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl m4aSongNumStart - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080A306C - - thumb_func_start PlaySE12WithPanning -PlaySE12WithPanning: @ 0x080A307C - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r4, r1, #0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl m4aSongNumStart - ldr r6, _080A30C4 - adds r0, r6, #0 - bl m4aMPlayImmInit - ldr r0, _080A30C8 - mov r8, r0 - bl m4aMPlayImmInit - ldr r5, _080A30CC - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - adds r0, r6, #0 - adds r1, r5, #0 - adds r2, r4, #0 - bl m4aMPlayPanpotControl - mov r0, r8 - adds r1, r5, #0 - adds r2, r4, #0 - bl m4aMPlayPanpotControl - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080A30C4: .4byte gUnknown_3007510 -_080A30C8: .4byte gUnknown_3007550 -_080A30CC: .4byte 0x0000FFFF - thumb_func_end PlaySE12WithPanning - - thumb_func_start sub_080A30D0 -sub_080A30D0: @ 0x080A30D0 - push {r4, r5, lr} - adds r4, r1, #0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl m4aSongNumStart - ldr r5, _080A30FC - adds r0, r5, #0 - bl m4aMPlayImmInit - ldr r1, _080A3100 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - adds r0, r5, #0 - adds r2, r4, #0 - bl m4aMPlayPanpotControl - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A30FC: .4byte gUnknown_3007510 -_080A3100: .4byte 0x0000FFFF - thumb_func_end sub_080A30D0 - - thumb_func_start sub_080A3104 -sub_080A3104: @ 0x080A3104 - push {r4, r5, lr} - adds r4, r1, #0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl m4aSongNumStart - ldr r5, _080A3130 - adds r0, r5, #0 - bl m4aMPlayImmInit - ldr r1, _080A3134 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - adds r0, r5, #0 - adds r2, r4, #0 - bl m4aMPlayPanpotControl - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A3130: .4byte gUnknown_3007550 -_080A3134: .4byte 0x0000FFFF - thumb_func_end sub_080A3104 - - thumb_func_start SE12PanpotControl -SE12PanpotControl: @ 0x080A3138 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _080A315C - ldr r5, _080A3160 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - adds r1, r5, #0 - adds r2, r4, #0 - bl m4aMPlayPanpotControl - ldr r0, _080A3164 - adds r1, r5, #0 - adds r2, r4, #0 - bl m4aMPlayPanpotControl - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A315C: .4byte gUnknown_3007510 -_080A3160: .4byte 0x0000FFFF -_080A3164: .4byte gUnknown_3007550 - thumb_func_end SE12PanpotControl - - thumb_func_start IsSEPlaying -IsSEPlaying: @ 0x080A3168 - push {lr} - ldr r0, _080A3198 - ldr r1, [r0, #4] - movs r2, #0x80 - lsls r2, r2, #0x18 - adds r3, r0, #0 - cmp r1, #0 - bge _080A3182 - ldr r0, _080A319C - ldr r0, [r0, #4] - ands r0, r2 - cmp r0, #0 - bne _080A3194 -_080A3182: - ldr r1, _080A31A0 - ldrh r0, [r3, #4] - cmp r0, #0 - bne _080A31A4 - ldr r0, _080A319C - ldr r0, [r0, #4] - ands r0, r1 - cmp r0, #0 - bne _080A31A4 -_080A3194: - movs r0, #0 - b _080A31A6 - .align 2, 0 -_080A3198: .4byte gUnknown_3007510 -_080A319C: .4byte gUnknown_3007550 -_080A31A0: .4byte 0x0000FFFF -_080A31A4: - movs r0, #1 -_080A31A6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsSEPlaying - - thumb_func_start sub_080A31AC -sub_080A31AC: @ 0x080A31AC - push {lr} - ldr r0, _080A31C4 - ldr r1, [r0, #4] - cmp r1, #0 - blt _080A31CC - ldr r0, _080A31C8 - ands r1, r0 - cmp r1, #0 - beq _080A31CC - movs r0, #1 - b _080A31CE - .align 2, 0 -_080A31C4: .4byte gUnknown_30074D0 -_080A31C8: .4byte 0x0000FFFF -_080A31CC: - movs r0, #0 -_080A31CE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080A31AC - - thumb_func_start sub_080A31D4 -sub_080A31D4: @ 0x080A31D4 - push {lr} - ldr r0, _080A31EC - ldr r1, [r0, #4] - cmp r1, #0 - blt _080A31F4 - ldr r0, _080A31F0 - ands r1, r0 - cmp r1, #0 - beq _080A31F4 - movs r0, #1 - b _080A31F6 - .align 2, 0 -_080A31EC: .4byte gUnknown_30075A0 -_080A31F0: .4byte 0x0000FFFF -_080A31F4: - movs r0, #0 -_080A31F6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080A31D4 - - thumb_func_start ClearBattleAnimationVars -ClearBattleAnimationVars: @ 0x080A31FC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r0, _080A3290 - movs r1, #0 - strb r1, [r0] - ldr r0, _080A3294 - strb r1, [r0] - ldr r0, _080A3298 - strb r1, [r0] - ldr r0, _080A329C - strb r1, [r0] - ldr r0, _080A32A0 - movs r1, #0 - str r1, [r0] - ldr r0, _080A32A4 - str r1, [r0] - ldr r0, _080A32A8 - movs r2, #0 - strh r1, [r0] - ldr r0, _080A32AC - strb r2, [r0] - ldr r4, _080A32B0 - ldr r5, _080A32B4 - ldr r6, _080A32B8 - ldr r7, _080A32BC - ldr r0, _080A32C0 - mov ip, r0 - ldr r1, _080A32C4 - mov r8, r1 - ldr r0, _080A32C8 - mov sb, r0 - ldr r1, _080A32CC - adds r3, r1, #0 - ldr r1, _080A32D0 - movs r2, #7 -_080A3246: - ldrh r0, [r1] - orrs r0, r3 - strh r0, [r1] - adds r1, #2 - subs r2, #1 - cmp r2, #0 - bge _080A3246 - ldr r1, _080A32D4 - movs r2, #0 - adds r0, r1, #0 - adds r0, #0xe -_080A325C: - strh r2, [r0] - subs r0, #2 - cmp r0, r1 - bge _080A325C - movs r1, #0 - movs r0, #0xff - strb r0, [r4] - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r4, #1] - strb r1, [r5] - strb r1, [r6] - movs r0, #0 - strh r1, [r7] - mov r1, ip - strb r0, [r1] - mov r1, r8 - strb r0, [r1] - mov r1, sb - strb r0, [r1] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A3290: .4byte gUnknown_203809C -_080A3294: .4byte gUnknown_203809D -_080A3298: .4byte gUnknown_203809E -_080A329C: .4byte gUnknown_203809F -_080A32A0: .4byte gUnknown_20380A0 -_080A32A4: .4byte gUnknown_20380A4 -_080A32A8: .4byte gUnknown_20380A8 -_080A32AC: .4byte gUnknown_20380BA -_080A32B0: .4byte gUnknown_20380D0 -_080A32B4: .4byte gUnknown_20380D2 -_080A32B8: .4byte gUnknown_20380D3 -_080A32BC: .4byte gUnknown_20380D4 -_080A32C0: .4byte gUnknown_20380D6 -_080A32C4: .4byte gUnknown_20380D7 -_080A32C8: .4byte gUnknown_20380E0 -_080A32CC: .4byte 0x0000FFFF -_080A32D0: .4byte gUnknown_20380AA -_080A32D4: .4byte gUnknown_20380BE - thumb_func_end ClearBattleAnimationVars - - thumb_func_start DoMoveAnim -DoMoveAnim: @ 0x080A32D8 - push {lr} - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r2, _080A32FC - ldr r0, _080A3300 - ldrb r0, [r0] - strb r0, [r2] - ldr r2, _080A3304 - ldr r0, _080A3308 - ldrb r0, [r0] - strb r0, [r2] - ldr r0, _080A330C - movs r2, #1 - bl LaunchBattleAnimation - pop {r0} - bx r0 - .align 2, 0 -_080A32FC: .4byte gUnknown_20380D6 -_080A3300: .4byte gUnknown_2023EAF -_080A3304: .4byte gUnknown_20380D7 -_080A3308: .4byte gUnknown_2023EB0 -_080A330C: .4byte gUnknown_82772F8 - thumb_func_end DoMoveAnim - - thumb_func_start LaunchBattleAnimation -LaunchBattleAnimation: @ 0x080A3310 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - str r0, [sp] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r8, r1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sb, r2 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A33B0 - bl sub_080A7B40 - movs r0, #0 - bl UpdateOamPriorityInAllHealthboxes - movs r4, #0 - mov r0, r8 - lsls r0, r0, #2 - mov sl, r0 - ldr r6, _080A3364 - movs r7, #0x64 - ldr r5, _080A3368 -_080A334C: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A3370 - ldrh r0, [r6] - muls r0, r7, r0 - ldr r1, _080A336C - b _080A3376 - .align 2, 0 -_080A3364: .4byte gUnknown_2023D12 -_080A3368: .4byte gUnknown_20380D8 -_080A336C: .4byte gUnknown_20243E8 -_080A3370: - ldrh r0, [r6] - muls r0, r7, r0 - ldr r1, _080A3398 -_080A3376: - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - strh r0, [r5] - adds r6, #2 - adds r5, #2 - adds r4, #1 - cmp r4, #3 - ble _080A334C - ldr r3, _080A339C - ldr r5, _080A33A0 - ldr r1, _080A33A4 - mov ip, r1 - ldr r7, _080A33A8 - ldr r6, _080A33AC - b _080A33D8 - .align 2, 0 -_080A3398: .4byte gUnknown_2024190 -_080A339C: .4byte gUnknown_20380D4 -_080A33A0: .4byte gUnknown_20380D0 -_080A33A4: .4byte gUnknown_203809D -_080A33A8: .4byte gUnknown_2038098 -_080A33AC: .4byte RunAnimScriptCommand -_080A33B0: - ldr r3, _080A33E4 - ldr r5, _080A33E8 - mov r0, r8 - lsls r0, r0, #2 - mov sl, r0 - ldr r1, _080A33EC - mov ip, r1 - ldr r7, _080A33F0 - ldr r6, _080A33F4 - ldr r2, _080A33F8 - ldr r1, _080A33FC - movs r4, #3 -_080A33C8: - ldr r0, [r2] - ldr r0, [r0, #0x18] - ldrh r0, [r0] - strh r0, [r1] - adds r1, #2 - subs r4, #1 - cmp r4, #0 - bge _080A33C8 -_080A33D8: - mov r0, sb - cmp r0, #0 - bne _080A3400 - strh r0, [r3] - b _080A3404 - .align 2, 0 -_080A33E4: .4byte gUnknown_20380D4 -_080A33E8: .4byte gUnknown_20380D0 -_080A33EC: .4byte gUnknown_203809D -_080A33F0: .4byte gUnknown_2038098 -_080A33F4: .4byte RunAnimScriptCommand -_080A33F8: .4byte gUnknown_2039BD4 -_080A33FC: .4byte gUnknown_20380D8 -_080A3400: - mov r1, r8 - strh r1, [r3] -_080A3404: - ldr r1, _080A3458 - movs r2, #0 - adds r0, r1, #0 - adds r0, #0xe -_080A340C: - strh r2, [r0] - subs r0, #2 - cmp r0, r1 - bge _080A340C - movs r0, #0xff - strb r0, [r5] - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r5, #1] - ldr r0, [sp] - add r0, sl - ldr r0, [r0] - ldr r1, _080A345C - str r0, [r1] - movs r0, #1 - mov r1, ip - strb r0, [r1] - movs r0, #0 - ldr r1, _080A3460 - strb r0, [r1] - str r6, [r7] - ldr r0, _080A3464 - adds r2, r0, #0 - ldr r1, _080A3468 - movs r4, #7 -_080A343E: - ldrh r0, [r1] - orrs r0, r2 - strh r0, [r1] - adds r1, #2 - subs r4, #1 - cmp r4, #0 - bge _080A343E - mov r1, sb - cmp r1, #0 - beq _080A348A - movs r4, #0 - ldr r2, _080A346C - b _080A3472 - .align 2, 0 -_080A3458: .4byte gUnknown_20380BE -_080A345C: .4byte gUnknown_2038090 -_080A3460: .4byte gUnknown_203809C -_080A3464: .4byte 0x0000FFFF -_080A3468: .4byte gUnknown_20380AA -_080A346C: .4byte gUnknown_82772F0 -_080A3470: - adds r4, #1 -_080A3472: - lsls r0, r4, #1 - adds r0, r0, r2 - ldrh r0, [r0] - ldr r1, _080A34AC - cmp r0, r1 - beq _080A348A - cmp r8, r0 - bne _080A3470 - ldr r0, _080A34B0 - movs r2, #0x80 - bl m4aMPlayVolumeControl -_080A348A: - ldr r0, _080A34B4 - movs r1, #0 - strh r1, [r0] - ldr r0, _080A34B8 - strh r1, [r0] - ldr r0, _080A34BC - strh r1, [r0] - ldr r0, _080A34C0 - strh r1, [r0] - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A34AC: .4byte 0x0000FFFF -_080A34B0: .4byte gUnknown_30074D0 -_080A34B4: .4byte gUnknown_2022AD8 -_080A34B8: .4byte gUnknown_2022ADA -_080A34BC: .4byte gUnknown_2022ADC -_080A34C0: .4byte gUnknown_2022ADE - thumb_func_end LaunchBattleAnimation - - thumb_func_start DestroyAnimSprite -DestroyAnimSprite: @ 0x080A34C4 - push {r4, lr} - adds r4, r0, #0 - bl FreeSpriteOamMatrix - adds r0, r4, #0 - bl DestroySprite - ldr r1, _080A34E0 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A34E0: .4byte gUnknown_203809E - thumb_func_end DestroyAnimSprite - - thumb_func_start DestroyAnimVisualTask -DestroyAnimVisualTask: @ 0x080A34E4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - ldr r1, _080A34FC - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080A34FC: .4byte gUnknown_203809E - thumb_func_end DestroyAnimVisualTask - - thumb_func_start DestroyAnimSoundTask -DestroyAnimSoundTask: @ 0x080A3500 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - ldr r1, _080A3518 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080A3518: .4byte gUnknown_203809F - thumb_func_end DestroyAnimSoundTask - - thumb_func_start AddSpriteIndex -AddSpriteIndex: @ 0x080A351C - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - movs r2, #0 - ldr r4, _080A3534 - ldr r1, _080A3538 -_080A3528: - ldrh r0, [r1] - cmp r0, r4 - bne _080A353C - strh r3, [r1] - b _080A3544 - .align 2, 0 -_080A3534: .4byte 0x0000FFFF -_080A3538: .4byte gUnknown_20380AA -_080A353C: - adds r1, #2 - adds r2, #1 - cmp r2, #7 - ble _080A3528 -_080A3544: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AddSpriteIndex - - thumb_func_start ClearSpriteIndex -ClearSpriteIndex: @ 0x080A354C - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - movs r2, #0 - ldr r0, _080A3568 - adds r4, r0, #0 - ldr r1, _080A356C -_080A355A: - ldrh r0, [r1] - cmp r0, r3 - bne _080A3570 - orrs r0, r4 - strh r0, [r1] - b _080A3578 - .align 2, 0 -_080A3568: .4byte 0x0000FFFF -_080A356C: .4byte gUnknown_20380AA -_080A3570: - adds r1, #2 - adds r2, #1 - cmp r2, #7 - ble _080A355A -_080A3578: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ClearSpriteIndex - - thumb_func_start WaitAnimFrameCount -WaitAnimFrameCount: @ 0x080A3580 - push {lr} - ldr r2, _080A3598 - ldrb r1, [r2] - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - bgt _080A35A4 - ldr r0, _080A359C - ldr r1, _080A35A0 - str r1, [r0] - movs r0, #0 - b _080A35A6 - .align 2, 0 -_080A3598: .4byte gUnknown_203809C -_080A359C: .4byte gUnknown_2038098 -_080A35A0: .4byte RunAnimScriptCommand -_080A35A4: - subs r0, r1, #1 -_080A35A6: - strb r0, [r2] - pop {r0} - bx r0 - thumb_func_end WaitAnimFrameCount - - thumb_func_start RunAnimScriptCommand -RunAnimScriptCommand: @ 0x080A35AC - push {r4, lr} - ldr r4, _080A35DC -_080A35B0: - ldr r0, _080A35E0 - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r0, [r0] - bl _call_via_r0 - thumb_func_end RunAnimScriptCommand - - thumb_func_start sub_080A35C0 -sub_080A35C0: @ 0x080A35C0 - ldr r0, _080A35E4 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _080A35D4 - ldr r0, _080A35E8 - ldrb r0, [r0] - cmp r0, #0 - bne _080A35B0 -_080A35D4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A35DC: .4byte gUnknown_84FE5A4 -_080A35E0: .4byte gUnknown_2038090 -_080A35E4: .4byte gUnknown_203809C -_080A35E8: .4byte gUnknown_203809D - thumb_func_end sub_080A35C0 - - thumb_func_start ScriptCmd_loadspritegfx -ScriptCmd_loadspritegfx: @ 0x080A35EC - push {r4, r5, r6, lr} - ldr r6, _080A3638 - ldr r0, [r6] - adds r1, r0, #1 - str r1, [r6] - ldrb r4, [r0, #1] - ldrb r0, [r1, #1] - lsls r0, r0, #8 - orrs r4, r0 - lsls r5, r4, #3 - ldr r0, _080A363C - adds r0, r5, r0 - bl LoadCompressedSpriteSheetUsingHeap - ldr r0, _080A3640 - adds r5, r5, r0 - adds r0, r5, #0 - bl LoadCompressedSpritePaletteUsingHeap - ldr r0, [r6] - adds r0, #2 - str r0, [r6] - ldr r0, _080A3644 - adds r4, r4, r0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r4, #0 - bl AddSpriteIndex - ldr r1, _080A3648 - movs r0, #1 - strb r0, [r1] - ldr r1, _080A364C - ldr r0, _080A3650 - str r0, [r1] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080A3638: .4byte gUnknown_2038090 -_080A363C: .4byte gUnknown_84E99D0 -_080A3640: .4byte gUnknown_84EA2D8 -_080A3644: .4byte 0xFFFFD8F0 -_080A3648: .4byte gUnknown_203809C -_080A364C: .4byte gUnknown_2038098 -_080A3650: .4byte WaitAnimFrameCount - thumb_func_end ScriptCmd_loadspritegfx - - thumb_func_start ScriptCmd_unloadspritegfx -ScriptCmd_unloadspritegfx: @ 0x080A3654 - push {r4, r5, r6, lr} - ldr r6, _080A3694 - ldr r0, [r6] - adds r1, r0, #1 - str r1, [r6] - ldrb r4, [r0, #1] - ldrb r0, [r1, #1] - lsls r0, r0, #8 - orrs r4, r0 - ldr r1, _080A3698 - ldr r0, _080A369C - adds r4, r4, r0 - lsls r0, r4, #3 - adds r0, r0, r1 - ldrh r5, [r0, #6] - adds r0, r5, #0 - bl FreeSpriteTilesByTag - adds r0, r5, #0 - bl FreeSpritePaletteByTag - ldr r0, [r6] - adds r0, #2 - str r0, [r6] - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r4, #0 - bl ClearSpriteIndex - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080A3694: .4byte gUnknown_2038090 -_080A3698: .4byte gUnknown_84FD250 -_080A369C: .4byte 0xFFFFD8F0 - thumb_func_end ScriptCmd_unloadspritegfx - - thumb_func_start ScriptCmd_createsprite -ScriptCmd_createsprite: @ 0x080A36A0 - push {r4, r5, r6, r7, lr} - ldr r5, _080A3708 - ldr r1, [r5] - adds r3, r1, #1 - str r3, [r5] - ldrb r2, [r1, #1] - ldrb r0, [r3, #1] - lsls r0, r0, #8 - adds r2, r2, r0 - ldrb r0, [r3, #2] - lsls r0, r0, #0x10 - adds r2, r2, r0 - ldrb r0, [r3, #3] - lsls r0, r0, #0x18 - adds r7, r2, r0 - adds r0, r1, #5 - str r0, [r5] - ldrb r4, [r1, #5] - adds r0, r1, #6 - str r0, [r5] - ldrb r0, [r1, #6] - adds r1, #7 - str r1, [r5] - cmp r0, #0 - beq _080A36F0 - adds r6, r5, #0 - ldr r5, _080A370C - adds r3, r0, #0 -_080A36D8: - ldr r2, [r6] - ldrb r1, [r2] - ldrb r0, [r2, #1] - lsls r0, r0, #8 - orrs r1, r0 - strh r1, [r5] - adds r2, #2 - str r2, [r6] - adds r5, #2 - subs r3, #1 - cmp r3, #0 - bne _080A36D8 -_080A36F0: - movs r0, #0x80 - ands r0, r4 - cmp r0, #0 - beq _080A3720 - movs r0, #0x80 - eors r4, r0 - cmp r4, #0x3f - bls _080A3710 - adds r0, r4, #0 - subs r0, #0x40 - b _080A3712 - .align 2, 0 -_080A3708: .4byte gUnknown_2038090 -_080A370C: .4byte gUnknown_20380BE -_080A3710: - rsbs r0, r4, #0 -_080A3712: - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080A371C - b _080A3732 - .align 2, 0 -_080A371C: .4byte gUnknown_20380D7 -_080A3720: - cmp r4, #0x3f - bls _080A372A - adds r0, r4, #0 - subs r0, #0x40 - b _080A372C -_080A372A: - rsbs r0, r4, #0 -_080A372C: - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080A3788 -_080A3732: - ldrb r0, [r0] - bl GetBattlerSpriteSubpriority - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r4, #0x18 - asrs r1, r1, #0x18 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - bgt _080A3750 - movs r6, #3 -_080A3750: - ldr r5, _080A378C - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r6, #0x18 - lsrs r3, r3, #0x18 - adds r0, r7, #0 - adds r1, r4, #0 - bl CreateSpriteAndAnimate - ldr r1, _080A3790 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A3788: .4byte gUnknown_20380D6 -_080A378C: .4byte gUnknown_20380D7 -_080A3790: .4byte gUnknown_203809E - thumb_func_end ScriptCmd_createsprite - - thumb_func_start ScriptCmd_createvisualtask -ScriptCmd_createvisualtask: @ 0x080A3794 - push {r4, r5, r6, r7, lr} - ldr r4, _080A3804 - ldr r1, [r4] - adds r3, r1, #1 - str r3, [r4] - ldrb r2, [r1, #1] - ldrb r0, [r3, #1] - lsls r0, r0, #8 - adds r2, r2, r0 - ldrb r0, [r3, #2] - lsls r0, r0, #0x10 - adds r2, r2, r0 - ldrb r0, [r3, #3] - lsls r0, r0, #0x18 - adds r6, r2, r0 - adds r0, r1, #5 - str r0, [r4] - ldrb r7, [r1, #5] - adds r0, r1, #6 - str r0, [r4] - ldrb r0, [r1, #6] - adds r1, #7 - str r1, [r4] - cmp r0, #0 - beq _080A37E4 - adds r5, r4, #0 - ldr r4, _080A3808 - adds r3, r0, #0 -_080A37CC: - ldr r2, [r5] - ldrb r1, [r2] - ldrb r0, [r2, #1] - lsls r0, r0, #8 - orrs r1, r0 - strh r1, [r4] - adds r2, #2 - str r2, [r5] - adds r4, #2 - subs r3, #1 - cmp r3, #0 - bne _080A37CC -_080A37E4: - adds r0, r6, #0 - adds r1, r7, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl _call_via_r6 - ldr r1, _080A380C - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A3804: .4byte gUnknown_2038090 -_080A3808: .4byte gUnknown_20380BE -_080A380C: .4byte gUnknown_203809E - thumb_func_end ScriptCmd_createvisualtask - - thumb_func_start ScriptCmd_delay -ScriptCmd_delay: @ 0x080A3810 - push {r4, lr} - ldr r1, _080A3840 - ldr r0, [r1] - adds r2, r0, #1 - str r2, [r1] - ldr r3, _080A3844 - ldrb r0, [r0, #1] - strb r0, [r3] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A382E - movs r4, #1 - rsbs r4, r4, #0 - adds r0, r4, #0 - strb r0, [r3] -_080A382E: - adds r0, r2, #1 - str r0, [r1] - ldr r1, _080A3848 - ldr r0, _080A384C - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A3840: .4byte gUnknown_2038090 -_080A3844: .4byte gUnknown_203809C -_080A3848: .4byte gUnknown_2038098 -_080A384C: .4byte WaitAnimFrameCount - thumb_func_end ScriptCmd_delay - - thumb_func_start sub_080A3850 -sub_080A3850: @ 0x080A3850 - push {lr} - ldr r0, _080A3868 - ldrb r2, [r0] - cmp r2, #0 - bne _080A3874 - ldr r0, _080A386C - ldr r1, [r0] - adds r1, #1 - str r1, [r0] - ldr r0, _080A3870 - strb r2, [r0] - b _080A387A - .align 2, 0 -_080A3868: .4byte gUnknown_203809E -_080A386C: .4byte gUnknown_2038090 -_080A3870: .4byte gUnknown_203809C -_080A3874: - ldr r1, _080A3880 - movs r0, #1 - strb r0, [r1] -_080A387A: - pop {r0} - bx r0 - .align 2, 0 -_080A3880: .4byte gUnknown_203809C - thumb_func_end sub_080A3850 - - thumb_func_start sub_080A3884 -sub_080A3884: @ 0x080A3884 - bx lr - .align 2, 0 - thumb_func_end sub_080A3884 - - thumb_func_start sub_080A3888 -sub_080A3888: @ 0x080A3888 - bx lr - .align 2, 0 - thumb_func_end sub_080A3888 - - thumb_func_start sub_080A388C -sub_080A388C: @ 0x080A388C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r0, #0 - mov r8, r0 - ldr r0, _080A38BC - ldrb r0, [r0] - cmp r0, #0 - bne _080A38B4 - ldr r0, _080A38C0 - ldrb r0, [r0] - cmp r0, #0 - bne _080A38B4 - ldr r1, _080A38C4 - ldrb r0, [r1] - cmp r0, #0xff - bne _080A38B4 - ldrb r0, [r1, #1] - cmp r0, #0xff - beq _080A38CC -_080A38B4: - ldr r1, _080A38C8 - movs r0, #0 - strh r0, [r1] - b _080A38E6 - .align 2, 0 -_080A38BC: .4byte gUnknown_203809E -_080A38C0: .4byte gUnknown_203809F -_080A38C4: .4byte gUnknown_20380D0 -_080A38C8: .4byte gUnknown_20380CE -_080A38CC: - bl IsSEPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A3904 - ldr r1, _080A38F0 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x5a - bhi _080A38F8 -_080A38E6: - ldr r1, _080A38F4 - movs r0, #1 - strb r0, [r1] - b _080A396A - .align 2, 0 -_080A38F0: .4byte gUnknown_20380CE -_080A38F4: .4byte gUnknown_203809C -_080A38F8: - ldr r0, _080A3974 - bl m4aMPlayStop - ldr r0, _080A3978 - bl m4aMPlayStop -_080A3904: - ldr r1, _080A397C - movs r0, #0 - strh r0, [r1] - movs r5, #0 - ldr r7, _080A3980 - ldr r6, _080A3984 - ldr r4, _080A3988 -_080A3912: - ldrh r0, [r4] - cmp r0, r7 - beq _080A3936 - lsls r0, r0, #3 - adds r0, r0, r6 - ldrh r0, [r0, #6] - bl FreeSpriteTilesByTag - ldrh r0, [r4] - lsls r0, r0, #3 - adds r0, r0, r6 - ldrh r0, [r0, #6] - bl FreeSpritePaletteByTag - ldrh r1, [r4] - adds r0, r7, #0 - orrs r0, r1 - strh r0, [r4] -_080A3936: - adds r4, #2 - adds r5, #1 - cmp r5, #7 - ble _080A3912 - mov r1, r8 - cmp r1, #0 - bne _080A396A - ldr r0, _080A398C - ldr r1, _080A3980 - movs r2, #0x80 - lsls r2, r2, #1 - bl m4aMPlayVolumeControl - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A3964 - bl sub_080A7B40 - movs r0, #1 - bl UpdateOamPriorityInAllHealthboxes -_080A3964: - ldr r0, _080A3990 - mov r1, r8 - strb r1, [r0] -_080A396A: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A3974: .4byte gUnknown_3007510 -_080A3978: .4byte gUnknown_3007550 -_080A397C: .4byte gUnknown_20380CE -_080A3980: .4byte 0x0000FFFF -_080A3984: .4byte gUnknown_84FD250 -_080A3988: .4byte gUnknown_20380AA -_080A398C: .4byte gUnknown_30074D0 -_080A3990: .4byte gUnknown_203809D - thumb_func_end sub_080A388C - - thumb_func_start ScriptCmd_playse -ScriptCmd_playse: @ 0x080A3994 - push {r4, lr} - ldr r4, _080A39B8 - ldr r0, [r4] - adds r1, r0, #1 - str r1, [r4] - ldrb r0, [r0, #1] - ldrb r1, [r1, #1] - lsls r1, r1, #8 - orrs r0, r1 - bl sub_080A306C - ldr r0, [r4] - adds r0, #2 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A39B8: .4byte gUnknown_2038090 - thumb_func_end ScriptCmd_playse - - thumb_func_start sub_080A39BC -sub_080A39BC: @ 0x080A39BC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - ldr r1, _080A3A04 - mov r8, r1 - adds r6, r0, r1 - ldr r1, _080A3A08 - movs r2, #0 - ldrsh r0, [r6, r2] - adds r0, r0, r1 - ldrb r5, [r0] - ldr r1, _080A3A0C - lsls r0, r5, #4 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r4, r0, r1 - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - movs r3, #4 - ldrsh r0, [r6, r3] - cmp r0, #0 - bne _080A3A10 - adds r0, r7, #0 - bl DestroyAnimVisualTask - b _080A3A86 - .align 2, 0 -_080A3A04: .4byte gUnknown_3005B68 -_080A3A08: .4byte gUnknown_2023E88 -_080A3A0C: .4byte gUnknown_20205AC -_080A3A10: - ldr r0, _080A3A4C - movs r1, #0xa - bl CreateTask - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - mov r1, r8 - subs r1, #8 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r1, r0, r1 - strh r5, [r1, #8] - ldrh r0, [r4, #0x24] - ldrh r3, [r4, #0x20] - adds r0, r0, r3 - strh r0, [r1, #0xa] - ldrh r0, [r4, #0x26] - ldrh r4, [r4, #0x22] - adds r0, r0, r4 - strh r0, [r1, #0xc] - movs r3, #2 - ldrsh r0, [r6, r3] - cmp r0, #0 - bne _080A3A58 - ldr r0, _080A3A50 - ldrh r0, [r0] - strh r0, [r1, #0xe] - ldr r0, _080A3A54 - b _080A3A60 - .align 2, 0 -_080A3A4C: .4byte task_pA_ma0A_obj_to_bg_pal -_080A3A50: .4byte gUnknown_2022ACC -_080A3A54: .4byte gUnknown_2022ACE -_080A3A58: - ldr r0, _080A3A90 - ldrh r0, [r0] - strh r0, [r1, #0xe] - ldr r0, _080A3A94 -_080A3A60: - ldrh r0, [r0] - strh r0, [r1, #0x10] - ldr r1, _080A3A98 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r6, #2] - strh r1, [r0, #0x12] - ldrh r1, [r6] - strh r1, [r0, #0x14] - ldr r1, _080A3A9C - movs r3, #6 - ldrsh r0, [r6, r3] - adds r0, r0, r1 - strb r2, [r0] - adds r0, r7, #0 - bl DestroyAnimVisualTask -_080A3A86: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A3A90: .4byte gUnknown_2022AD0 -_080A3A94: .4byte gUnknown_2022AD2 -_080A3A98: .4byte gUnknown_3005B60 -_080A3A9C: .4byte gUnknown_20380D0 - thumb_func_end sub_080A39BC - - thumb_func_start ScriptCmd_monbg -ScriptCmd_monbg: @ 0x080A3AA0 - push {r4, r5, lr} - ldr r1, _080A3AB8 - ldr r2, [r1] - adds r0, r2, #1 - str r0, [r1] - ldrb r0, [r2, #1] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _080A3AC0 - ldr r0, _080A3ABC - b _080A3AC2 - .align 2, 0 -_080A3AB8: .4byte gUnknown_2038090 -_080A3ABC: .4byte gUnknown_20380D7 -_080A3AC0: - ldr r0, _080A3AF4 -_080A3AC2: - ldrb r4, [r0] - adds r0, r4, #0 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A3B2E - adds r0, r4, #0 - bl sub_080A630C - lsls r0, r0, #0x18 - movs r1, #0xff - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _080A3AEE - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A3AF8 -_080A3AEE: - movs r5, #0 - b _080A3AFA - .align 2, 0 -_080A3AF4: .4byte gUnknown_20380D6 -_080A3AF8: - movs r5, #1 -_080A3AFA: - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0 - bl MoveBattlerSpriteToBG - ldr r0, _080A3B60 - movs r1, #0xa - bl CreateTask - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _080A3B64 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r1, _080A3B68 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #0 - strh r4, [r0, #8] - strh r5, [r0, #0xa] - movs r1, #1 - strh r1, [r0, #0xc] - strh r2, [r0, #0xe] -_080A3B2E: - movs r0, #2 - eors r4, r0 - adds r0, r4, #0 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A3BA0 - adds r0, r4, #0 - bl sub_080A630C - lsls r0, r0, #0x18 - movs r1, #0xff - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _080A3B5C - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A3B6C -_080A3B5C: - movs r5, #0 - b _080A3B6E - .align 2, 0 -_080A3B60: .4byte sub_080A39BC -_080A3B64: .4byte gUnknown_203809E -_080A3B68: .4byte gUnknown_3005B60 -_080A3B6C: - movs r5, #1 -_080A3B6E: - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0 - bl MoveBattlerSpriteToBG - ldr r0, _080A3BBC - movs r1, #0xa - bl CreateTask - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _080A3BC0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r1, _080A3BC4 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r4, [r0, #8] - strh r5, [r0, #0xa] - movs r1, #1 - strh r1, [r0, #0xc] - strh r1, [r0, #0xe] -_080A3BA0: - ldr r1, _080A3BC8 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - ldr r1, _080A3BCC - movs r0, #1 - strb r0, [r1] - ldr r1, _080A3BD0 - ldr r0, _080A3BD4 - str r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A3BBC: .4byte sub_080A39BC -_080A3BC0: .4byte gUnknown_203809E -_080A3BC4: .4byte gUnknown_3005B60 -_080A3BC8: .4byte gUnknown_2038090 -_080A3BCC: .4byte gUnknown_203809C -_080A3BD0: .4byte gUnknown_2038098 -_080A3BD4: .4byte WaitAnimFrameCount - thumb_func_end ScriptCmd_monbg - - thumb_func_start IsBattlerSpriteVisible -IsBattlerSpriteVisible: @ 0x080A3BD8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, r4, #0 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A3BF8 - ldr r0, _080A3BF4 - ldrb r0, [r0] - cmp r4, r0 - beq _080A3C3C - b _080A3C4C - .align 2, 0 -_080A3BF4: .4byte gUnknown_20380D6 -_080A3BF8: - adds r0, r4, #0 - bl IsBattlerSpritePresent - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A3C4C - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A3C3C - ldr r0, _080A3C40 - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r5, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080A3C3C - ldr r2, _080A3C44 - ldr r0, _080A3C48 - adds r0, r5, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - blt _080A3C4C -_080A3C3C: - movs r0, #1 - b _080A3C4E - .align 2, 0 -_080A3C40: .4byte gUnknown_2024174 -_080A3C44: .4byte gUnknown_20205AC -_080A3C48: .4byte gUnknown_2023E88 -_080A3C4C: - movs r0, #0 -_080A3C4E: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end IsBattlerSpriteVisible - - thumb_func_start MoveBattlerSpriteToBG -MoveBattlerSpriteToBG: @ 0x080A3C54 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x28 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r6, r5, #0 - lsls r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sb, r2 - cmp r1, #0 - beq _080A3C72 - b _080A3E26 -_080A3C72: - bl IsContest - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080A3CA4 - ldr r1, _080A3C9C - movs r2, #0x80 - lsls r2, r2, #6 - movs r0, #0 - movs r3, #1 - bl RequestDma3Fill - ldr r1, _080A3CA0 - movs r2, #0x80 - lsls r2, r2, #5 - movs r0, #0xff - movs r3, #0 - bl RequestDma3Fill - b _080A3CC0 - .align 2, 0 -_080A3C9C: .4byte 0x06008000 -_080A3CA0: .4byte 0x0600F000 -_080A3CA4: - ldr r1, _080A3DC0 - movs r2, #0x80 - lsls r2, r2, #6 - movs r0, #0 - movs r3, #1 - bl RequestDma3Fill - ldr r1, _080A3DC4 - movs r2, #0x80 - lsls r2, r2, #5 - movs r0, #0xff - movs r3, #0 - bl RequestDma3Fill -_080A3CC0: - add r0, sp, #0x10 - bl sub_080A63F8 - add r0, sp, #0x20 - movs r1, #0 - strh r1, [r0] - ldr r1, [sp, #0x10] - ldr r2, _080A3DC8 - bl CpuSet - mov r0, sp - adds r0, #0x22 - movs r1, #0xff - strh r1, [r0] - ldr r1, [sp, #0x14] - ldr r2, _080A3DCC - bl CpuSet - movs r0, #1 - movs r1, #4 - movs r2, #2 - bl SetAnimBgAttribute - movs r0, #1 - movs r1, #0 - movs r2, #1 - bl SetAnimBgAttribute - movs r0, #1 - movs r1, #1 - movs r2, #0 - bl SetAnimBgAttribute - ldr r0, _080A3DD0 - adds r0, r6, r0 - ldrb r4, [r0] - ldr r5, _080A3DD4 - ldr r0, _080A3DD8 - lsls r1, r4, #4 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r0, [r1, #0x24] - ldrh r1, [r1, #0x20] - adds r0, r0, r1 - rsbs r0, r0, #0 - adds r0, #0x20 - strh r0, [r5] - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A3D42 - ldr r0, _080A3DDC - ldr r0, [r0] - ldr r0, [r0, #0x18] - ldrh r0, [r0] - bl IsSpeciesNotUnown - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A3D42 - ldrh r0, [r5] - subs r0, #1 - strh r0, [r5] -_080A3D42: - ldr r5, _080A3DE0 - ldr r2, _080A3DD8 - lsls r1, r4, #4 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r0, [r1, #0x26] - ldrh r1, [r1, #0x22] - adds r0, r0, r1 - rsbs r0, r0, #0 - adds r0, #0x20 - strh r0, [r5] - mov r0, sb - cmp r0, #0 - beq _080A3D78 - ldr r0, _080A3DD0 - adds r0, r6, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_080A3D78: - ldr r0, _080A3DD4 - ldrh r1, [r0] - movs r0, #0x14 - bl SetGpuReg - ldrh r1, [r5] - movs r0, #0x16 - bl SetGpuReg - lsls r4, r6, #5 - ldr r0, _080A3DE4 - adds r4, r4, r0 - add r0, sp, #0x10 - ldrb r1, [r0, #8] - lsls r1, r1, #4 - adds r0, r4, #0 - movs r2, #0x20 - bl LoadPalette - add r0, sp, #0x10 - ldrb r1, [r0, #8] - lsls r1, r1, #5 - movs r0, #0xa0 - lsls r0, r0, #0x13 - adds r1, r1, r0 - ldr r2, _080A3DE8 - adds r0, r4, #0 - bl CpuSet - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A3DEC - movs r3, #0 - b _080A3DF6 - .align 2, 0 -_080A3DC0: .4byte 0x06004000 -_080A3DC4: .4byte 0x0600E000 -_080A3DC8: .4byte 0x01000800 -_080A3DCC: .4byte 0x01000400 -_080A3DD0: .4byte gUnknown_2023E88 -_080A3DD4: .4byte gUnknown_2022ACC -_080A3DD8: .4byte gUnknown_20205AC -_080A3DDC: .4byte gUnknown_2039BD4 -_080A3DE0: .4byte gUnknown_2022ACE -_080A3DE4: .4byte gUnknown_20375B4 -_080A3DE8: .4byte 0x04000008 -_080A3DEC: - adds r0, r6, #0 - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 -_080A3DF6: - add r0, sp, #0x10 - ldrb r0, [r0, #8] - str r0, [sp] - ldr r0, [sp, #0x10] - str r0, [sp, #4] - ldr r0, [sp, #0x14] - str r0, [sp, #8] - add r0, sp, #0x10 - ldrh r0, [r0, #0xa] - str r0, [sp, #0xc] - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl sub_0811980C - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A3E20 - b _080A3F2E -_080A3E20: - bl sub_080A3F68 - b _080A3F2E -_080A3E26: - ldr r1, _080A3F3C - movs r2, #0x80 - lsls r2, r2, #6 - movs r0, #0 - movs r3, #1 - bl RequestDma3Fill - ldr r1, _080A3F40 - movs r7, #0x80 - lsls r7, r7, #5 - movs r0, #0 - adds r2, r7, #0 - movs r3, #1 - bl RequestDma3Fill - add r0, sp, #0x10 - movs r1, #2 - bl sub_080A6458 - add r0, sp, #0x24 - movs r4, #0 - strh r4, [r0] - ldr r1, [sp, #0x10] - adds r1, r1, r7 - ldr r2, _080A3F44 - bl CpuSet - mov r0, sp - adds r0, #0x26 - strh r4, [r0] - ldr r1, [sp, #0x14] - movs r2, #0x80 - lsls r2, r2, #4 - mov r8, r2 - add r1, r8 - ldr r2, _080A3F48 - bl CpuSet - movs r0, #2 - movs r1, #4 - movs r2, #2 - bl SetAnimBgAttribute - movs r0, #2 - movs r1, #0 - movs r2, #1 - bl SetAnimBgAttribute - movs r0, #2 - movs r1, #1 - movs r2, #0 - bl SetAnimBgAttribute - ldr r0, _080A3F4C - adds r2, r5, r0 - ldrb r4, [r2] - ldr r5, _080A3F50 - ldr r3, _080A3F54 - lsls r1, r4, #4 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrh r0, [r1, #0x24] - ldrh r4, [r1, #0x20] - adds r0, r0, r4 - rsbs r0, r0, #0 - adds r0, #0x20 - strh r0, [r5] - ldr r4, _080A3F58 - ldrh r0, [r1, #0x26] - ldrh r1, [r1, #0x22] - adds r0, r0, r1 - rsbs r0, r0, #0 - adds r0, #0x20 - strh r0, [r4] - mov r0, sb - cmp r0, #0 - beq _080A3ED6 - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_080A3ED6: - ldrh r1, [r5] - movs r0, #0x18 - bl SetGpuReg - ldrh r1, [r4] - movs r0, #0x1a - bl SetGpuReg - lsls r4, r6, #5 - ldr r0, _080A3F5C - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x90 - movs r2, #0x20 - bl LoadPalette - ldr r1, _080A3F60 - ldr r2, _080A3F64 - adds r0, r4, #0 - bl CpuSet - adds r0, r6, #0 - bl sub_080A630C - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - add r0, sp, #0x10 - ldrb r0, [r0, #8] - str r0, [sp] - ldr r0, [sp, #0x10] - adds r0, r0, r7 - str r0, [sp, #4] - ldr r0, [sp, #0x14] - add r0, r8 - str r0, [sp, #8] - add r0, sp, #0x10 - ldrh r0, [r0, #0xa] - str r0, [sp, #0xc] - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl sub_0811980C -_080A3F2E: - add sp, #0x28 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A3F3C: .4byte 0x06006000 -_080A3F40: .4byte 0x0600F000 -_080A3F44: .4byte 0x01000800 -_080A3F48: .4byte 0x01000400 -_080A3F4C: .4byte gUnknown_2023E88 -_080A3F50: .4byte gUnknown_2022AD0 -_080A3F54: .4byte gUnknown_20205AC -_080A3F58: .4byte gUnknown_2022AD2 -_080A3F5C: .4byte gUnknown_20375B4 -_080A3F60: .4byte 0x05000120 -_080A3F64: .4byte 0x04000008 - thumb_func_end MoveBattlerSpriteToBG - - thumb_func_start sub_080A3F68 -sub_080A3F68: @ 0x080A3F68 - push {r4, r5, r6, r7, lr} - sub sp, #0x10 - ldr r0, _080A3FE4 - ldr r0, [r0] - ldr r0, [r0, #0x18] - ldrh r0, [r0] - bl IsSpeciesNotUnown - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A3FDA - mov r0, sp - bl sub_080A63F8 - ldr r6, [sp, #4] - movs r5, #0 - movs r0, #7 - mov ip, r0 - movs r7, #0 -_080A3F8E: - movs r4, #0 - adds r3, r7, r6 - mov r1, ip - lsls r0, r1, #1 - adds r2, r0, r6 -_080A3F98: - ldrh r1, [r3] - ldrh r0, [r2] - strh r0, [r3] - strh r1, [r2] - adds r3, #2 - subs r2, #2 - adds r4, #1 - cmp r4, #3 - ble _080A3F98 - movs r0, #0x20 - add ip, r0 - adds r7, #0x40 - adds r5, #1 - cmp r5, #7 - ble _080A3F8E - movs r5, #0 - movs r1, #0x80 - lsls r1, r1, #3 - adds r3, r1, #0 -_080A3FBE: - adds r2, r5, #1 - lsls r0, r5, #6 - adds r1, r0, r6 - movs r4, #7 -_080A3FC6: - ldrh r0, [r1] - eors r0, r3 - strh r0, [r1] - adds r1, #2 - subs r4, #1 - cmp r4, #0 - bge _080A3FC6 - adds r5, r2, #0 - cmp r5, #7 - ble _080A3FBE -_080A3FDA: - add sp, #0x10 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A3FE4: .4byte gUnknown_2039BD4 - thumb_func_end sub_080A3F68 - - thumb_func_start sub_080A3FE8 -sub_080A3FE8: @ 0x080A3FE8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r1 - adds r6, r2, #0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r3, r3, #0x18 - movs r0, #0x40 - mov ip, r0 - cmp r3, #0 - bne _080A4004 - movs r1, #0x20 - mov ip, r1 -_080A4004: - lsls r0, r5, #0x1c - lsrs r5, r0, #0x10 - movs r0, #0 - cmp r0, ip - bge _080A4034 - ldr r7, _080A4040 -_080A4010: - adds r4, r0, #1 - lsls r0, r0, #6 - mov r1, r8 - adds r3, r0, r1 - movs r2, #0x1f -_080A401A: - ldrh r1, [r3] - adds r0, r7, #0 - ands r0, r1 - orrs r0, r5 - adds r0, r0, r6 - strh r0, [r3] - adds r3, #2 - subs r2, #1 - cmp r2, #0 - bge _080A401A - adds r0, r4, #0 - cmp r0, ip - blt _080A4010 -_080A4034: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A4040: .4byte 0x00000FFF - thumb_func_end sub_080A3FE8 - - thumb_func_start sub_080A4044 -sub_080A4044: @ 0x080A4044 - push {r4, lr} - sub sp, #0x10 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r0, sp - bl sub_080A63F8 - cmp r4, #0 - beq _080A4064 - bl IsContest - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - beq _080A4080 -_080A4064: - movs r0, #1 - bl sub_080A6530 - ldr r0, _080A4078 - movs r1, #0 - strh r1, [r0] - ldr r0, _080A407C - strh r1, [r0] - b _080A408E - .align 2, 0 -_080A4078: .4byte gUnknown_2022ACC -_080A407C: .4byte gUnknown_2022ACE -_080A4080: - movs r0, #2 - bl sub_080A6530 - ldr r0, _080A4098 - strh r4, [r0] - ldr r0, _080A409C - strh r4, [r0] -_080A408E: - add sp, #0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A4098: .4byte gUnknown_2022AD0 -_080A409C: .4byte gUnknown_2022AD2 - thumb_func_end sub_080A4044 - - thumb_func_start task_pA_ma0A_obj_to_bg_pal -task_pA_ma0A_obj_to_bg_pal: @ 0x080A40A0 - push {r4, r5, r6, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080A411C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r5, r1, r2 - ldrb r4, [r5, #8] - ldrb r6, [r5, #0x14] - mov r0, sp - bl sub_080A63F8 - ldr r0, _080A4120 - lsls r1, r4, #4 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r2, [r1, #0x24] - ldrh r0, [r1, #0x20] - adds r2, r2, r0 - ldrh r0, [r5, #0xa] - subs r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldrh r2, [r1, #0x26] - ldrh r1, [r1, #0x22] - adds r2, r2, r1 - ldrh r0, [r5, #0xc] - subs r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - movs r1, #0x12 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _080A4138 - ldr r1, _080A4124 - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - ldrh r3, [r5, #0xe] - adds r0, r0, r3 - strh r0, [r1] - ldr r1, _080A4128 - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - ldrh r5, [r5, #0x10] - adds r0, r0, r5 - strh r0, [r1] - lsls r0, r6, #5 - ldr r2, _080A412C - adds r0, r0, r2 - mov r1, sp - ldrb r1, [r1, #8] - lsls r1, r1, #5 - ldr r3, _080A4130 - adds r2, r2, r3 - adds r1, r1, r2 - ldr r2, _080A4134 - bl CpuSet - b _080A415E - .align 2, 0 -_080A411C: .4byte gUnknown_3005B60 -_080A4120: .4byte gUnknown_20205AC -_080A4124: .4byte gUnknown_2022ACC -_080A4128: .4byte gUnknown_2022ACE -_080A412C: .4byte gUnknown_20379B4 -_080A4130: .4byte 0xFFFFFE00 -_080A4134: .4byte 0x04000008 -_080A4138: - ldr r1, _080A4168 - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - ldrh r3, [r5, #0xe] - adds r0, r0, r3 - strh r0, [r1] - ldr r1, _080A416C - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - ldrh r5, [r5, #0x10] - adds r0, r0, r5 - strh r0, [r1] - lsls r0, r6, #5 - ldr r1, _080A4170 - adds r0, r0, r1 - subs r1, #0xe0 - ldr r2, _080A4174 - bl CpuSet -_080A415E: - add sp, #0x10 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080A4168: .4byte gUnknown_2022AD0 -_080A416C: .4byte gUnknown_2022AD2 -_080A4170: .4byte gUnknown_20379B4 -_080A4174: .4byte 0x04000008 - thumb_func_end task_pA_ma0A_obj_to_bg_pal - - thumb_func_start ScriptCmd_clearmonbg -ScriptCmd_clearmonbg: @ 0x080A4178 - push {r4, r5, lr} - ldr r0, _080A418C - ldr r2, [r0] - adds r1, r2, #1 - str r1, [r0] - ldrb r4, [r2, #1] - cmp r4, #0 - bne _080A4190 - movs r4, #2 - b _080A419A - .align 2, 0 -_080A418C: .4byte gUnknown_2038090 -_080A4190: - cmp r4, #1 - bne _080A4196 - movs r4, #3 -_080A4196: - cmp r4, #0 - beq _080A419E -_080A419A: - cmp r4, #2 - bne _080A41A8 -_080A419E: - ldr r0, _080A41A4 - b _080A41AA - .align 2, 0 -_080A41A4: .4byte gUnknown_20380D6 -_080A41A8: - ldr r0, _080A4200 -_080A41AA: - ldrb r5, [r0] - ldr r3, _080A4204 - ldrb r0, [r3] - cmp r0, #0xff - beq _080A41D0 - ldr r2, _080A4208 - ldr r0, _080A420C - adds r0, r5, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] -_080A41D0: - cmp r4, #1 - bls _080A4210 - ldrb r0, [r3, #1] - cmp r0, #0xff - beq _080A4210 - ldr r3, _080A4208 - ldr r2, _080A420C - movs r1, #2 - adds r0, r5, #0 - eors r0, r1 - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - b _080A4212 - .align 2, 0 -_080A4200: .4byte gUnknown_20380D7 -_080A4204: .4byte gUnknown_20380D0 -_080A4208: .4byte gUnknown_20205AC -_080A420C: .4byte gUnknown_2023E88 -_080A4210: - movs r4, #0 -_080A4212: - ldr r0, _080A423C - movs r1, #5 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080A4240 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #8] - strh r5, [r1, #0xc] - ldr r1, _080A4244 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A423C: .4byte sub_080A4248 -_080A4240: .4byte gUnknown_3005B60 -_080A4244: .4byte gUnknown_2038090 - thumb_func_end ScriptCmd_clearmonbg - - thumb_func_start sub_080A4248 -sub_080A4248: @ 0x080A4248 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _080A4288 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r1, r0, r1 - ldrh r0, [r1, #0xa] - adds r0, #1 - strh r0, [r1, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - beq _080A42D2 - ldrb r0, [r1, #0xc] - bl sub_080A630C - lsls r0, r0, #0x18 - movs r1, #0xff - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _080A4284 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A428C -_080A4284: - movs r4, #0 - b _080A428E - .align 2, 0 -_080A4288: .4byte gUnknown_3005B60 -_080A428C: - movs r4, #1 -_080A428E: - ldr r6, _080A42D8 - ldrb r0, [r6] - cmp r0, #0xff - beq _080A42A6 - adds r0, r4, #0 - bl sub_080A4044 - ldrb r0, [r6] - bl DestroyTask - movs r0, #0xff - strb r0, [r6] -_080A42A6: - ldr r0, _080A42DC - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r2, #8 - ldrsh r0, [r1, r2] - cmp r0, #1 - ble _080A42CC - movs r0, #1 - eors r4, r0 - adds r0, r4, #0 - bl sub_080A4044 - ldrb r0, [r6, #1] - bl DestroyTask - movs r0, #0xff - strb r0, [r6, #1] -_080A42CC: - adds r0, r5, #0 - bl DestroyTask -_080A42D2: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080A42D8: .4byte gUnknown_20380D0 -_080A42DC: .4byte gUnknown_3005B60 - thumb_func_end sub_080A4248 - - thumb_func_start ScriptCmd_monbg_22 -ScriptCmd_monbg_22: @ 0x080A42E0 - push {r4, r5, lr} - ldr r0, _080A42F4 - ldr r2, [r0] - adds r1, r2, #1 - str r1, [r0] - ldrb r5, [r2, #1] - cmp r5, #0 - bne _080A42F8 - movs r5, #2 - b _080A4302 - .align 2, 0 -_080A42F4: .4byte gUnknown_2038090 -_080A42F8: - cmp r5, #1 - bne _080A42FE - movs r5, #3 -_080A42FE: - cmp r5, #0 - beq _080A4306 -_080A4302: - cmp r5, #2 - bne _080A4310 -_080A4306: - ldr r0, _080A430C - b _080A4312 - .align 2, 0 -_080A430C: .4byte gUnknown_20380D6 -_080A4310: - ldr r0, _080A4344 -_080A4312: - ldrb r4, [r0] - adds r0, r4, #0 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A4352 - adds r0, r4, #0 - bl sub_080A630C - lsls r0, r0, #0x18 - movs r1, #0xff - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _080A433E - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A4348 -_080A433E: - movs r1, #0 - b _080A434A - .align 2, 0 -_080A4344: .4byte gUnknown_20380D7 -_080A4348: - movs r1, #1 -_080A434A: - adds r0, r4, #0 - movs r2, #0 - bl MoveBattlerSpriteToBG -_080A4352: - movs r0, #2 - eors r4, r0 - cmp r5, #1 - bls _080A4392 - adds r0, r4, #0 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A4392 - adds r0, r4, #0 - bl sub_080A630C - lsls r0, r0, #0x18 - movs r1, #0xff - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _080A4384 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A4388 -_080A4384: - movs r1, #0 - b _080A438A -_080A4388: - movs r1, #1 -_080A438A: - adds r0, r4, #0 - movs r2, #0 - bl MoveBattlerSpriteToBG -_080A4392: - ldr r1, _080A43A0 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A43A0: .4byte gUnknown_2038090 - thumb_func_end ScriptCmd_monbg_22 - - thumb_func_start ScriptCmd_clearmonbg_23 -ScriptCmd_clearmonbg_23: @ 0x080A43A4 - push {r4, r5, r6, lr} - ldr r0, _080A43B8 - ldr r2, [r0] - adds r1, r2, #1 - str r1, [r0] - ldrb r5, [r2, #1] - cmp r5, #0 - bne _080A43BC - movs r5, #2 - b _080A43C6 - .align 2, 0 -_080A43B8: .4byte gUnknown_2038090 -_080A43BC: - cmp r5, #1 - bne _080A43C2 - movs r5, #3 -_080A43C2: - cmp r5, #0 - beq _080A43CA -_080A43C6: - cmp r5, #2 - bne _080A43D4 -_080A43CA: - ldr r0, _080A43D0 - b _080A43D6 - .align 2, 0 -_080A43D0: .4byte gUnknown_20380D6 -_080A43D4: - ldr r0, _080A4434 -_080A43D6: - ldrb r6, [r0] - adds r0, r6, #0 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A4400 - ldr r2, _080A4438 - ldr r0, _080A443C - adds r0, r6, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] -_080A4400: - cmp r5, #1 - bls _080A4440 - movs r0, #2 - adds r4, r6, #0 - eors r4, r0 - adds r0, r4, #0 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A4440 - ldr r2, _080A4438 - ldr r0, _080A443C - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - b _080A4442 - .align 2, 0 -_080A4434: .4byte gUnknown_20380D7 -_080A4438: .4byte gUnknown_20205AC -_080A443C: .4byte gUnknown_2023E88 -_080A4440: - movs r5, #0 -_080A4442: - ldr r0, _080A446C - movs r1, #5 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080A4470 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r5, [r1, #8] - strh r6, [r1, #0xc] - ldr r1, _080A4474 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080A446C: .4byte sub_080A4478 -_080A4470: .4byte gUnknown_3005B60 -_080A4474: .4byte gUnknown_2038090 - thumb_func_end ScriptCmd_clearmonbg_23 - - thumb_func_start sub_080A4478 -sub_080A4478: @ 0x080A4478 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _080A44BC - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r1, r0, r1 - ldrh r0, [r1, #0xa] - adds r0, #1 - strh r0, [r1, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - beq _080A4506 - ldrb r4, [r1, #0xc] - adds r0, r4, #0 - bl sub_080A630C - lsls r0, r0, #0x18 - movs r1, #0xff - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _080A44B6 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A44C0 -_080A44B6: - movs r5, #0 - b _080A44C2 - .align 2, 0 -_080A44BC: .4byte gUnknown_3005B60 -_080A44C0: - movs r5, #1 -_080A44C2: - adds r0, r4, #0 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A44D4 - adds r0, r5, #0 - bl sub_080A4044 -_080A44D4: - ldr r0, _080A450C - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r2, #8 - ldrsh r0, [r1, r2] - cmp r0, #1 - ble _080A4500 - movs r0, #2 - eors r4, r0 - adds r0, r4, #0 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A4500 - movs r0, #1 - eors r5, r0 - adds r0, r5, #0 - bl sub_080A4044 -_080A4500: - adds r0, r6, #0 - bl DestroyTask -_080A4506: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080A450C: .4byte gUnknown_3005B60 - thumb_func_end sub_080A4478 - - thumb_func_start ScriptCmd_setalpha -ScriptCmd_setalpha: @ 0x080A4510 - push {r4, r5, lr} - ldr r2, _080A4544 - ldr r0, [r2] - adds r1, r0, #1 - str r1, [r2] - ldrb r5, [r0, #1] - adds r0, r1, #1 - str r0, [r2] - ldrb r4, [r1, #1] - lsls r4, r4, #8 - adds r0, #1 - str r0, [r2] - movs r1, #0xfd - lsls r1, r1, #6 - movs r0, #0x50 - bl SetGpuReg - orrs r5, r4 - movs r0, #0x52 - adds r1, r5, #0 - bl SetGpuReg - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A4544: .4byte gUnknown_2038090 - thumb_func_end ScriptCmd_setalpha - - thumb_func_start ScriptCmd_setbldcnt -ScriptCmd_setbldcnt: @ 0x080A4548 - push {lr} - ldr r3, _080A456C - ldr r0, [r3] - adds r2, r0, #1 - str r2, [r3] - ldrb r1, [r0, #1] - adds r0, r2, #1 - str r0, [r3] - ldrb r2, [r2, #1] - lsls r2, r2, #8 - adds r0, #1 - str r0, [r3] - orrs r1, r2 - movs r0, #0x50 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 -_080A456C: .4byte gUnknown_2038090 - thumb_func_end ScriptCmd_setbldcnt - - thumb_func_start ScriptCmd_blendoff -ScriptCmd_blendoff: @ 0x080A4570 - push {lr} - ldr r1, _080A4590 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 -_080A4590: .4byte gUnknown_2038090 - thumb_func_end ScriptCmd_blendoff - - thumb_func_start ScriptCmd_call -ScriptCmd_call: @ 0x080A4594 - push {r4, lr} - ldr r4, _080A45C0 - ldr r1, [r4] - adds r3, r1, #1 - str r3, [r4] - ldr r2, _080A45C4 - adds r0, r1, #5 - str r0, [r2] - ldrb r1, [r1, #1] - ldrb r0, [r3, #1] - lsls r0, r0, #8 - adds r1, r1, r0 - ldrb r0, [r3, #2] - lsls r0, r0, #0x10 - adds r1, r1, r0 - ldrb r0, [r3, #3] - lsls r0, r0, #0x18 - adds r1, r1, r0 - str r1, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A45C0: .4byte gUnknown_2038090 -_080A45C4: .4byte gUnknown_2038094 - thumb_func_end ScriptCmd_call - - thumb_func_start ScriptCmd_return -ScriptCmd_return: @ 0x080A45C8 - ldr r0, _080A45D4 - ldr r1, _080A45D8 - ldr r1, [r1] - str r1, [r0] - bx lr - .align 2, 0 -_080A45D4: .4byte gUnknown_2038090 -_080A45D8: .4byte gUnknown_2038094 - thumb_func_end ScriptCmd_return - - thumb_func_start ScriptCmd_setarg -ScriptCmd_setarg: @ 0x080A45DC - push {r4, r5, lr} - ldr r5, _080A4608 - ldr r1, [r5] - adds r0, r1, #1 - str r0, [r5] - ldrb r2, [r1, #1] - adds r3, r0, #1 - str r3, [r5] - ldrb r4, [r0, #1] - ldrb r0, [r3, #1] - lsls r0, r0, #8 - orrs r4, r0 - adds r1, #4 - str r1, [r5] - ldr r0, _080A460C - lsls r2, r2, #1 - adds r2, r2, r0 - strh r4, [r2] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A4608: .4byte gUnknown_2038090 -_080A460C: .4byte gUnknown_20380BE - thumb_func_end ScriptCmd_setarg - - thumb_func_start ScriptCmd_choosetwoturnanim -ScriptCmd_choosetwoturnanim: @ 0x080A4610 - push {lr} - ldr r3, _080A4648 - ldr r2, [r3] - adds r0, r2, #1 - str r0, [r3] - ldr r0, _080A464C - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080A462A - adds r0, r2, #5 - str r0, [r3] -_080A462A: - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, #1] - lsls r0, r0, #8 - adds r1, r1, r0 - ldrb r0, [r2, #2] - lsls r0, r0, #0x10 - adds r1, r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x18 - adds r1, r1, r0 - str r1, [r3] - pop {r0} - bx r0 - .align 2, 0 -_080A4648: .4byte gUnknown_2038090 -_080A464C: .4byte gUnknown_20380D2 - thumb_func_end ScriptCmd_choosetwoturnanim - - thumb_func_start ScriptCmd_jumpifmoveturn -ScriptCmd_jumpifmoveturn: @ 0x080A4650 - push {r4, r5, lr} - ldr r5, _080A4680 - ldr r4, [r5] - adds r2, r4, #1 - str r2, [r5] - ldrb r1, [r4, #1] - adds r3, r2, #1 - str r3, [r5] - ldr r0, _080A4684 - ldrb r0, [r0] - cmp r1, r0 - bne _080A4688 - ldrb r1, [r2, #1] - ldrb r0, [r3, #1] - lsls r0, r0, #8 - adds r1, r1, r0 - ldrb r0, [r3, #2] - lsls r0, r0, #0x10 - adds r1, r1, r0 - ldrb r0, [r3, #3] - lsls r0, r0, #0x18 - adds r1, r1, r0 - str r1, [r5] - b _080A468C - .align 2, 0 -_080A4680: .4byte gUnknown_2038090 -_080A4684: .4byte gUnknown_20380D2 -_080A4688: - adds r0, r4, #6 - str r0, [r5] -_080A468C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ScriptCmd_jumpifmoveturn - - thumb_func_start ScriptCmd_goto -ScriptCmd_goto: @ 0x080A4694 - ldr r3, _080A46B4 - ldr r0, [r3] - adds r2, r0, #1 - str r2, [r3] - ldrb r1, [r0, #1] - ldrb r0, [r2, #1] - lsls r0, r0, #8 - adds r1, r1, r0 - ldrb r0, [r2, #2] - lsls r0, r0, #0x10 - adds r1, r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x18 - adds r1, r1, r0 - str r1, [r3] - bx lr - .align 2, 0 -_080A46B4: .4byte gUnknown_2038090 - thumb_func_end ScriptCmd_goto - - thumb_func_start IsContest -IsContest: @ 0x080A46B8 - push {lr} - ldr r0, _080A46D0 - ldr r1, _080A46D4 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080A46D8 - movs r0, #0 - b _080A46DA - .align 2, 0 -_080A46D0: .4byte gUnknown_3002360 -_080A46D4: .4byte 0x00000439 -_080A46D8: - movs r0, #1 -_080A46DA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsContest - - thumb_func_start ScriptCmd_fadetobg -ScriptCmd_fadetobg: @ 0x080A46E0 - push {r4, lr} - ldr r1, _080A4714 - ldr r2, [r1] - adds r0, r2, #1 - str r0, [r1] - ldrb r4, [r2, #1] - adds r0, #1 - str r0, [r1] - ldr r0, _080A4718 - movs r1, #5 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080A471C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #8] - ldr r1, _080A4720 - movs r0, #1 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A4714: .4byte gUnknown_2038090 -_080A4718: .4byte Task_FadeToBg -_080A471C: .4byte gUnknown_3005B60 -_080A4720: .4byte gUnknown_20380D3 - thumb_func_end ScriptCmd_fadetobg - - thumb_func_start ScriptCmd_fadetobgfromset -ScriptCmd_fadetobgfromset: @ 0x080A4724 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r2, _080A4764 - ldr r1, [r2] - adds r0, r1, #1 - str r0, [r2] - ldrb r3, [r1, #1] - mov r8, r3 - ldrb r7, [r0, #1] - ldrb r6, [r0, #2] - adds r1, #4 - str r1, [r2] - ldr r0, _080A4768 - movs r1, #5 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, r4, #0 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A4770 - ldr r1, _080A476C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r6, [r0, #8] - b _080A47A2 - .align 2, 0 -_080A4764: .4byte gUnknown_2038090 -_080A4768: .4byte Task_FadeToBg -_080A476C: .4byte gUnknown_3005B60 -_080A4770: - ldr r0, _080A478C - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A4794 - ldr r1, _080A4790 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r7, [r0, #8] - b _080A47A2 - .align 2, 0 -_080A478C: .4byte gUnknown_20380D7 -_080A4790: .4byte gUnknown_3005B60 -_080A4794: - ldr r1, _080A47B4 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - mov r1, r8 - strh r1, [r0, #8] -_080A47A2: - ldr r1, _080A47B8 - movs r0, #1 - strb r0, [r1] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A47B4: .4byte gUnknown_3005B60 -_080A47B8: .4byte gUnknown_20380D3 - thumb_func_end ScriptCmd_fadetobgfromset - - thumb_func_start Task_FadeToBg -Task_FadeToBg: @ 0x080A47BC - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _080A47F0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrh r6, [r4, #0x1c] - movs r0, #0x1c - ldrsh r3, [r4, r0] - adds r7, r1, #0 - cmp r3, #0 - bne _080A47F4 - str r3, [sp] - movs r0, #0xe8 - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginHardwarePaletteFade - ldrh r0, [r4, #0x1c] - adds r0, #1 - strh r0, [r4, #0x1c] - b _080A4884 - .align 2, 0 -_080A47F0: .4byte gUnknown_3005B60 -_080A47F4: - ldr r2, _080A4810 - ldrb r1, [r2, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080A4884 - cmp r3, #1 - bne _080A4818 - adds r0, r6, #1 - strh r0, [r4, #0x1c] - ldr r1, _080A4814 - movs r0, #2 - strb r0, [r1] - b _080A485C - .align 2, 0 -_080A4810: .4byte gUnknown_2037C74 -_080A4814: .4byte gUnknown_20380D3 -_080A4818: - cmp r3, #2 - bne _080A485C - ldrh r0, [r4, #8] - lsls r2, r0, #0x10 - asrs r1, r2, #0x10 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _080A4830 - bl LoadDefaultBg - b _080A4836 -_080A4830: - lsrs r0, r2, #0x10 - bl LoadMoveBg -_080A4836: - movs r0, #1 - str r0, [sp] - movs r0, #0xe8 - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginHardwarePaletteFade - ldr r1, _080A4858 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #0x1c] - adds r1, #1 - strh r1, [r0, #0x1c] - b _080A4884 - .align 2, 0 -_080A4858: .4byte gUnknown_3005B60 -_080A485C: - ldrb r1, [r2, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _080A4884 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r7 - movs r1, #0x1c - ldrsh r0, [r0, r1] - cmp r0, #3 - bne _080A4884 - adds r0, r5, #0 - bl DestroyTask - ldr r0, _080A488C - strb r4, [r0] -_080A4884: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A488C: .4byte gUnknown_20380D3 - thumb_func_end Task_FadeToBg - - thumb_func_start LoadMoveBg -LoadMoveBg: @ 0x080A4890 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A4918 - ldr r6, _080A4900 - lsls r4, r7, #1 - adds r4, r4, r7 - lsls r4, r4, #2 - adds r0, r6, #0 - adds r0, #8 - adds r0, r4, r0 - ldr r0, [r0] - ldr r5, _080A4904 - adds r1, r5, #0 - bl sub_08034370 - bl sub_080A665C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r5, #0 - movs r3, #0 - bl sub_080A3FE8 - ldr r1, _080A4908 - ldr r0, _080A490C - str r5, [r0] - str r1, [r0, #4] - ldr r1, _080A4910 - str r1, [r0, #8] - ldr r0, [r0, #8] - adds r0, r4, r6 - ldr r0, [r0] - ldr r1, _080A4914 - bl sub_0803437C - adds r6, #4 - adds r4, r4, r6 - ldr r4, [r4] - bl sub_080A665C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x14 - adds r0, r4, #0 - movs r2, #0x20 - bl LoadCompressedPalette - b _080A4946 - .align 2, 0 -_080A4900: .4byte gUnknown_84FE460 -_080A4904: .4byte gUnknown_201C000 -_080A4908: .4byte 0x0600D000 -_080A490C: .4byte 0x040000D4 -_080A4910: .4byte 0x84000200 -_080A4914: .4byte 0x06002000 -_080A4918: - ldr r5, _080A494C - lsls r4, r7, #1 - adds r4, r4, r7 - lsls r4, r4, #2 - adds r0, r5, #0 - adds r0, #8 - adds r0, r4, r0 - ldr r0, [r0] - ldr r1, _080A4950 - bl sub_0803437C - adds r0, r4, r5 - ldr r0, [r0] - ldr r1, _080A4954 - bl sub_0803437C - adds r5, #4 - adds r4, r4, r5 - ldr r0, [r4] - movs r1, #0x20 - movs r2, #0x20 - bl LoadCompressedPalette -_080A4946: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A494C: .4byte gUnknown_84FE460 -_080A4950: .4byte 0x0600D000 -_080A4954: .4byte 0x06008000 - thumb_func_end LoadMoveBg - - thumb_func_start LoadDefaultBg -LoadDefaultBg: @ 0x080A4958 - push {lr} - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A496A - bl LoadContestBgAfterMoveAnim - b _080A496E -_080A496A: - bl DrawMainBattleBackground -_080A496E: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LoadDefaultBg - - thumb_func_start ScriptCmd_restorebg -ScriptCmd_restorebg: @ 0x080A4974 - push {lr} - ldr r1, _080A49A4 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - ldr r0, _080A49A8 - movs r1, #5 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080A49AC - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r0, _080A49B0 - strh r0, [r1, #8] - ldr r1, _080A49B4 - movs r0, #1 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080A49A4: .4byte gUnknown_2038090 -_080A49A8: .4byte Task_FadeToBg -_080A49AC: .4byte gUnknown_3005B60 -_080A49B0: .4byte 0x0000FFFF -_080A49B4: .4byte gUnknown_20380D3 - thumb_func_end ScriptCmd_restorebg - - thumb_func_start ScriptCmd_waitbgfadeout -ScriptCmd_waitbgfadeout: @ 0x080A49B8 - push {lr} - ldr r0, _080A49D0 - ldrb r0, [r0] - cmp r0, #2 - bne _080A49DC - ldr r1, _080A49D4 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - ldr r1, _080A49D8 - movs r0, #0 - b _080A49E0 - .align 2, 0 -_080A49D0: .4byte gUnknown_20380D3 -_080A49D4: .4byte gUnknown_2038090 -_080A49D8: .4byte gUnknown_203809C -_080A49DC: - ldr r1, _080A49E8 - movs r0, #1 -_080A49E0: - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080A49E8: .4byte gUnknown_203809C - thumb_func_end ScriptCmd_waitbgfadeout - - thumb_func_start sub_080A49EC -sub_080A49EC: @ 0x080A49EC - push {lr} - ldr r0, _080A4A04 - ldrb r2, [r0] - cmp r2, #0 - bne _080A4A10 - ldr r0, _080A4A08 - ldr r1, [r0] - adds r1, #1 - str r1, [r0] - ldr r0, _080A4A0C - strb r2, [r0] - b _080A4A16 - .align 2, 0 -_080A4A04: .4byte gUnknown_20380D3 -_080A4A08: .4byte gUnknown_2038090 -_080A4A0C: .4byte gUnknown_203809C -_080A4A10: - ldr r1, _080A4A1C - movs r0, #1 - strb r0, [r1] -_080A4A16: - pop {r0} - bx r0 - .align 2, 0 -_080A4A1C: .4byte gUnknown_203809C - thumb_func_end sub_080A49EC - - thumb_func_start ScriptCmd_changebg -ScriptCmd_changebg: @ 0x080A4A20 - push {r4, lr} - ldr r4, _080A4A3C - ldr r1, [r4] - adds r0, r1, #1 - str r0, [r4] - ldrb r0, [r1, #1] - bl LoadMoveBg - ldr r0, [r4] - adds r0, #1 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A4A3C: .4byte gUnknown_2038090 - thumb_func_end ScriptCmd_changebg - - thumb_func_start BattleAnimAdjustPanning -BattleAnimAdjustPanning: @ 0x080A4A40 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A4A88 - ldr r0, _080A4A80 - ldr r1, [r0] - ldr r0, _080A4A84 - ldrb r2, [r0] - ldr r1, [r1, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080A4A88 - adds r0, r2, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - movs r4, #0xc0 - cmp r0, #0 - beq _080A4B1A - movs r4, #0x3f - b _080A4B1A - .align 2, 0 -_080A4A80: .4byte gUnknown_2024174 -_080A4A84: .4byte gUnknown_20380D6 -_080A4A88: - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A4AB0 - ldr r0, _080A4AA8 - ldr r1, _080A4AAC - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bne _080A4B14 - cmp r0, #2 - bne _080A4B14 - cmp r4, #0x3f - beq _080A4B26 - b _080A4B14 - .align 2, 0 -_080A4AA8: .4byte gUnknown_20380D6 -_080A4AAC: .4byte gUnknown_20380D7 -_080A4AB0: - ldr r0, _080A4AD8 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A4AEE - ldr r0, _080A4ADC - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A4B1A - lsls r0, r4, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0x3f - bne _080A4AE0 - movs r4, #0xc0 - b _080A4B1A - .align 2, 0 -_080A4AD8: .4byte gUnknown_20380D6 -_080A4ADC: .4byte gUnknown_20380D7 -_080A4AE0: - movs r0, #0x40 - rsbs r0, r0, #0 - cmp r1, r0 - beq _080A4B1A - rsbs r0, r1, #0 - lsls r0, r0, #0x18 - b _080A4B18 -_080A4AEE: - ldr r0, _080A4B10 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080A4B14 - lsls r0, r4, #0x18 - asrs r0, r0, #0x18 - movs r1, #0x40 - rsbs r1, r1, #0 - cmp r0, r1 - bne _080A4B1A - movs r4, #0x3f - b _080A4B1A - .align 2, 0 -_080A4B10: .4byte gUnknown_20380D7 -_080A4B14: - lsls r0, r4, #0x18 - rsbs r0, r0, #0 -_080A4B18: - lsrs r4, r0, #0x18 -_080A4B1A: - lsls r0, r4, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0x3f - ble _080A4B26 - movs r4, #0x3f - b _080A4B34 -_080A4B26: - lsls r0, r4, #0x18 - asrs r0, r0, #0x18 - movs r1, #0x40 - rsbs r1, r1, #0 - cmp r0, r1 - bge _080A4B34 - movs r4, #0xc0 -_080A4B34: - lsls r0, r4, #0x18 - asrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end BattleAnimAdjustPanning - - thumb_func_start BattleAnimAdjustPanning2 -BattleAnimAdjustPanning2: @ 0x080A4B40 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A4B88 - ldr r0, _080A4B80 - ldr r1, [r0] - ldr r0, _080A4B84 - ldrb r2, [r0] - ldr r1, [r1, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080A4B88 - adds r0, r2, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - movs r4, #0xc0 - cmp r0, #0 - beq _080A4BA6 - movs r4, #0x3f - b _080A4BA6 - .align 2, 0 -_080A4B80: .4byte gUnknown_2024174 -_080A4B84: .4byte gUnknown_20380D6 -_080A4B88: - ldr r0, _080A4BB0 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A4BA0 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A4BA6 -_080A4BA0: - lsls r0, r4, #0x18 - rsbs r0, r0, #0 - lsrs r4, r0, #0x18 -_080A4BA6: - lsls r0, r4, #0x18 - asrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080A4BB0: .4byte gUnknown_20380D6 - thumb_func_end BattleAnimAdjustPanning2 - - thumb_func_start KeepPanInRange -KeepPanInRange: @ 0x080A4BB4 - push {lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - asrs r2, r0, #0x10 - cmp r2, #0x3f - ble _080A4BC4 - movs r1, #0x3f - b _080A4BCE -_080A4BC4: - movs r0, #0x40 - rsbs r0, r0, #0 - cmp r2, r0 - bge _080A4BCE - ldr r1, _080A4BD8 -_080A4BCE: - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 -_080A4BD8: .4byte 0x0000FFC0 - thumb_func_end KeepPanInRange - - thumb_func_start CalculatePanIncrement -CalculatePanIncrement: @ 0x080A4BDC - push {lr} - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - adds r3, r2, #0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r0, r1 - bge _080A4BFA - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _080A4C0A - b _080A4C08 -_080A4BFA: - cmp r0, r1 - ble _080A4C10 - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _080A4C08 - rsbs r0, r0, #0 -_080A4C08: - rsbs r0, r0, #0 -_080A4C0A: - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b _080A4C12 -_080A4C10: - movs r0, #0 -_080A4C12: - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CalculatePanIncrement - - thumb_func_start ScriptCmd_playsewithpan -ScriptCmd_playsewithpan: @ 0x080A4C1C - push {r4, r5, lr} - ldr r5, _080A4C50 - ldr r0, [r5] - adds r1, r0, #1 - str r1, [r5] - ldrb r4, [r0, #1] - ldrb r0, [r1, #1] - lsls r0, r0, #8 - orrs r4, r0 - movs r0, #2 - ldrsb r0, [r1, r0] - bl BattleAnimAdjustPanning - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r4, #0 - bl PlaySE12WithPanning - ldr r0, [r5] - adds r0, #3 - str r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A4C50: .4byte gUnknown_2038090 - thumb_func_end ScriptCmd_playsewithpan - - thumb_func_start ScriptCmd_setpan -ScriptCmd_setpan: @ 0x080A4C54 - push {r4, lr} - ldr r4, _080A4C7C - ldr r1, [r4] - adds r0, r1, #1 - str r0, [r4] - movs r0, #1 - ldrsb r0, [r1, r0] - bl BattleAnimAdjustPanning - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - bl SE12PanpotControl - ldr r0, [r4] - adds r0, #1 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A4C7C: .4byte gUnknown_2038090 - thumb_func_end ScriptCmd_setpan - - thumb_func_start ScriptCmd_panse_1B -ScriptCmd_panse_1B: @ 0x080A4C80 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _080A4D30 - mov sl, r0 - ldr r0, [r0] - adds r1, r0, #1 - mov r2, sl - str r1, [r2] - ldrb r0, [r0, #1] - mov sb, r0 - ldrb r0, [r1, #1] - lsls r0, r0, #8 - mov r2, sb - orrs r2, r0 - mov sb, r2 - ldrb r4, [r1, #3] - ldrb r6, [r1, #4] - ldrb r7, [r1, #5] - movs r0, #2 - ldrsb r0, [r1, r0] - bl BattleAnimAdjustPanning - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - adds r0, r4, #0 - bl BattleAnimAdjustPanning - mov r8, r0 - lsls r5, r5, #0x18 - asrs r5, r5, #0x18 - mov r0, r8 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - mov r8, r0 - lsls r6, r6, #0x18 - asrs r6, r6, #0x18 - adds r0, r5, #0 - mov r1, r8 - adds r2, r6, #0 - bl CalculatePanIncrement - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _080A4D34 - movs r1, #1 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080A4D38 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r5, [r1, #8] - mov r2, r8 - strh r2, [r1, #0xa] - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - strh r4, [r1, #0xc] - strh r7, [r1, #0xe] - strh r5, [r1, #0x10] - mov r0, sb - adds r1, r5, #0 - bl PlaySE12WithPanning - ldr r1, _080A4D3C - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - mov r1, sl - ldr r0, [r1] - adds r0, #6 - str r0, [r1] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A4D30: .4byte gUnknown_2038090 -_080A4D34: .4byte Task_PanFromInitialToTarget -_080A4D38: .4byte gUnknown_3005B60 -_080A4D3C: .4byte gUnknown_203809F - thumb_func_end ScriptCmd_panse_1B - - thumb_func_start Task_PanFromInitialToTarget -Task_PanFromInitialToTarget: @ 0x080A4D40 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r7, #0 - ldr r1, _080A4D84 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r2, r0, r1 - ldrh r0, [r2, #0x18] - adds r1, r0, #1 - strh r1, [r2, #0x18] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r3, #0xe - ldrsh r1, [r2, r3] - cmp r0, r1 - blt _080A4DC4 - strh r7, [r2, #0x18] - ldrh r6, [r2, #8] - ldrh r3, [r2, #0xa] - movs r4, #0x10 - ldrsh r0, [r2, r4] - movs r4, #0xc - ldrsh r1, [r2, r4] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - strh r4, [r2, #0x10] - cmp r1, #0 - bne _080A4D88 - lsls r2, r3, #0x10 - b _080A4DAC - .align 2, 0 -_080A4D84: .4byte gUnknown_3005B60 -_080A4D88: - lsls r1, r6, #0x10 - lsls r0, r3, #0x10 - asrs r3, r0, #0x10 - adds r2, r0, #0 - cmp r1, r2 - bge _080A4D9E - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - cmp r0, r3 - blt _080A4DA8 - b _080A4DAC -_080A4D9E: - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - cmp r0, r3 - bgt _080A4DA8 - movs r7, #1 -_080A4DA8: - cmp r7, #0 - beq _080A4DBC -_080A4DAC: - lsrs r4, r2, #0x10 - adds r0, r5, #0 - bl DestroyTask - ldr r1, _080A4DCC - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] -_080A4DBC: - lsls r0, r4, #0x18 - asrs r0, r0, #0x18 - bl SE12PanpotControl -_080A4DC4: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A4DCC: .4byte gUnknown_203809F - thumb_func_end Task_PanFromInitialToTarget - - thumb_func_start ScriptCmd_panse_26 -ScriptCmd_panse_26: @ 0x080A4DD0 - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - ldr r0, _080A4E54 - mov sb, r0 - ldr r0, [r0] - adds r1, r0, #1 - mov r2, sb - str r1, [r2] - ldrb r0, [r0, #1] - mov r8, r0 - ldrb r0, [r1, #1] - lsls r0, r0, #8 - mov r2, r8 - orrs r2, r0 - mov r8, r2 - ldrb r4, [r1, #2] - ldrb r5, [r1, #3] - ldrb r6, [r1, #4] - ldrb r1, [r1, #5] - mov sl, r1 - ldr r0, _080A4E58 - movs r1, #1 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080A4E5C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - strh r4, [r1, #8] - lsls r5, r5, #0x18 - asrs r5, r5, #0x18 - strh r5, [r1, #0xa] - lsls r6, r6, #0x18 - asrs r6, r6, #0x18 - strh r6, [r1, #0xc] - mov r0, sl - strh r0, [r1, #0xe] - strh r4, [r1, #0x10] - mov r0, r8 - adds r1, r4, #0 - bl PlaySE12WithPanning - ldr r1, _080A4E60 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - mov r1, sb - ldr r0, [r1] - adds r0, #6 - str r0, [r1] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080A4E54: .4byte gUnknown_2038090 -_080A4E58: .4byte Task_PanFromInitialToTarget -_080A4E5C: .4byte gUnknown_3005B60 -_080A4E60: .4byte gUnknown_203809F - thumb_func_end ScriptCmd_panse_26 - - thumb_func_start ScriptCmd_panse_27 -ScriptCmd_panse_27: @ 0x080A4E64 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _080A4F14 - mov sl, r0 - ldr r0, [r0] - adds r1, r0, #1 - mov r2, sl - str r1, [r2] - ldrb r0, [r0, #1] - mov sb, r0 - ldrb r0, [r1, #1] - lsls r0, r0, #8 - mov r2, sb - orrs r2, r0 - mov sb, r2 - ldrb r4, [r1, #3] - ldrb r0, [r1, #4] - mov r8, r0 - ldrb r7, [r1, #5] - movs r0, #2 - ldrsb r0, [r1, r0] - bl BattleAnimAdjustPanning2 - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - adds r0, r4, #0 - bl BattleAnimAdjustPanning2 - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - mov r1, r8 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov r8, r1 - mov r0, r8 - bl BattleAnimAdjustPanning2 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _080A4F18 - movs r1, #1 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080A4F1C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - lsls r6, r6, #0x18 - asrs r6, r6, #0x18 - strh r6, [r1, #8] - lsls r5, r5, #0x18 - asrs r5, r5, #0x18 - strh r5, [r1, #0xa] - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - strh r4, [r1, #0xc] - strh r7, [r1, #0xe] - strh r6, [r1, #0x10] - mov r0, sb - adds r1, r6, #0 - bl PlaySE12WithPanning - ldr r1, _080A4F20 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - mov r2, sl - ldr r0, [r2] - adds r0, #6 - str r0, [r2] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A4F14: .4byte gUnknown_2038090 -_080A4F18: .4byte Task_PanFromInitialToTarget -_080A4F1C: .4byte gUnknown_3005B60 -_080A4F20: .4byte gUnknown_203809F - thumb_func_end ScriptCmd_panse_27 - - thumb_func_start ScriptCmd_loopsewithpan -ScriptCmd_loopsewithpan: @ 0x080A4F24 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - ldr r6, _080A4F9C - ldr r0, [r6] - adds r1, r0, #1 - str r1, [r6] - ldrb r5, [r0, #1] - ldrb r0, [r1, #1] - lsls r0, r0, #8 - orrs r5, r0 - ldrb r0, [r1, #3] - mov r8, r0 - ldrb r2, [r1, #4] - mov sb, r2 - movs r0, #2 - ldrsb r0, [r1, r0] - bl BattleAnimAdjustPanning - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _080A4FA0 - movs r1, #1 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080A4FA4 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r5, [r1, #8] - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - strh r4, [r1, #0xa] - mov r2, r8 - strh r2, [r1, #0xc] - mov r2, sb - strh r2, [r1, #0xe] - mov r2, r8 - strh r2, [r1, #0x18] - ldr r1, [r1] - bl _call_via_r1 - ldr r1, _080A4FA8 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r0, [r6] - adds r0, #5 - str r0, [r6] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080A4F9C: .4byte gUnknown_2038090 -_080A4FA0: .4byte Task_LoopAndPlaySE -_080A4FA4: .4byte gUnknown_3005B60 -_080A4FA8: .4byte gUnknown_203809F - thumb_func_end ScriptCmd_loopsewithpan - - thumb_func_start Task_LoopAndPlaySE -Task_LoopAndPlaySE: @ 0x080A4FAC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _080A5000 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r2, r0, r1 - ldrh r0, [r2, #0x18] - adds r1, r0, #1 - strh r1, [r2, #0x18] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r3, #0xc - ldrsh r1, [r2, r3] - cmp r0, r1 - blt _080A4FFA - movs r0, #0 - strh r0, [r2, #0x18] - ldrh r0, [r2, #8] - ldrb r1, [r2, #0xa] - ldrh r4, [r2, #0xe] - subs r4, #1 - strh r4, [r2, #0xe] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - bl PlaySE12WithPanning - cmp r4, #0 - bne _080A4FFA - adds r0, r5, #0 - bl DestroyTask - ldr r1, _080A5004 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] -_080A4FFA: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A5000: .4byte gUnknown_3005B60 -_080A5004: .4byte gUnknown_203809F - thumb_func_end Task_LoopAndPlaySE - - thumb_func_start ScriptCmd_waitplaysewithpan -ScriptCmd_waitplaysewithpan: @ 0x080A5008 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - ldr r6, _080A506C - ldr r0, [r6] - adds r1, r0, #1 - str r1, [r6] - ldrb r5, [r0, #1] - ldrb r0, [r1, #1] - lsls r0, r0, #8 - orrs r5, r0 - ldrb r0, [r1, #3] - mov r8, r0 - movs r0, #2 - ldrsb r0, [r1, r0] - bl BattleAnimAdjustPanning - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _080A5070 - movs r1, #1 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080A5074 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r5, [r1, #8] - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - strh r4, [r1, #0xa] - mov r0, r8 - strh r0, [r1, #0xc] - ldr r1, _080A5078 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r0, [r6] - adds r0, #4 - str r0, [r6] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080A506C: .4byte gUnknown_2038090 -_080A5070: .4byte Task_WaitAndPlaySE -_080A5074: .4byte gUnknown_3005B60 -_080A5078: .4byte gUnknown_203809F - thumb_func_end ScriptCmd_waitplaysewithpan - - thumb_func_start Task_WaitAndPlaySE -Task_WaitAndPlaySE: @ 0x080A507C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _080A50B8 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r2, r0, r1 - ldrh r0, [r2, #0xc] - subs r1, r0, #1 - strh r1, [r2, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _080A50B0 - ldrh r0, [r2, #8] - movs r1, #0xa - ldrsb r1, [r2, r1] - bl PlaySE12WithPanning - adds r0, r4, #0 - bl DestroyTask - ldr r1, _080A50BC - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] -_080A50B0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A50B8: .4byte gUnknown_3005B60 -_080A50BC: .4byte gUnknown_203809F - thumb_func_end Task_WaitAndPlaySE - - thumb_func_start ScriptCmd_createsoundtask -ScriptCmd_createsoundtask: @ 0x080A50C0 - push {r4, r5, r6, lr} - ldr r4, _080A5128 - ldr r1, [r4] - adds r3, r1, #1 - str r3, [r4] - ldrb r2, [r1, #1] - ldrb r0, [r3, #1] - lsls r0, r0, #8 - adds r2, r2, r0 - ldrb r0, [r3, #2] - lsls r0, r0, #0x10 - adds r2, r2, r0 - ldrb r0, [r3, #3] - lsls r0, r0, #0x18 - adds r6, r2, r0 - adds r0, r1, #5 - str r0, [r4] - ldrb r0, [r1, #5] - adds r1, #6 - str r1, [r4] - cmp r0, #0 - beq _080A510A - adds r5, r4, #0 - ldr r4, _080A512C - adds r3, r0, #0 -_080A50F2: - ldr r2, [r5] - ldrb r1, [r2] - ldrb r0, [r2, #1] - lsls r0, r0, #8 - orrs r1, r0 - strh r1, [r4] - adds r2, #2 - str r2, [r5] - adds r4, #2 - subs r3, #1 - cmp r3, #0 - bne _080A50F2 -_080A510A: - adds r0, r6, #0 - movs r1, #1 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl _call_via_r6 - ldr r1, _080A5130 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080A5128: .4byte gUnknown_2038090 -_080A512C: .4byte gUnknown_20380BE -_080A5130: .4byte gUnknown_203809F - thumb_func_end ScriptCmd_createsoundtask - - thumb_func_start ScriptCmd_waitsound -ScriptCmd_waitsound: @ 0x080A5134 - push {r4, r5, lr} - ldr r0, _080A516C - ldrb r5, [r0] - cmp r5, #0 - bne _080A517C - bl IsSEPlaying - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _080A5194 - ldr r4, _080A5170 - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x5a - bls _080A5182 - ldr r0, _080A5174 - bl m4aMPlayStop - ldr r0, _080A5178 - bl m4aMPlayStop - strh r5, [r4] - b _080A51A6 - .align 2, 0 -_080A516C: .4byte gUnknown_203809F -_080A5170: .4byte gUnknown_20380CE -_080A5174: .4byte gUnknown_3007510 -_080A5178: .4byte gUnknown_3007550 -_080A517C: - ldr r1, _080A518C - movs r0, #0 - strh r0, [r1] -_080A5182: - ldr r1, _080A5190 - movs r0, #1 - strb r0, [r1] - b _080A51A6 - .align 2, 0 -_080A518C: .4byte gUnknown_20380CE -_080A5190: .4byte gUnknown_203809C -_080A5194: - ldr r0, _080A51AC - movs r2, #0 - strh r1, [r0] - ldr r1, _080A51B0 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - ldr r0, _080A51B4 - strb r2, [r0] -_080A51A6: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A51AC: .4byte gUnknown_20380CE -_080A51B0: .4byte gUnknown_2038090 -_080A51B4: .4byte gUnknown_203809C - thumb_func_end ScriptCmd_waitsound - - thumb_func_start ScriptCmd_jumpargeq -ScriptCmd_jumpargeq: @ 0x080A51B8 - push {r4, r5, r6, lr} - ldr r5, _080A51F8 - ldr r4, [r5] - adds r3, r4, #1 - str r3, [r5] - ldrb r2, [r4, #1] - ldrb r1, [r3, #1] - ldrb r0, [r3, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldr r0, _080A51FC - lsls r2, r2, #1 - adds r2, r2, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r6, #0 - ldrsh r0, [r2, r6] - cmp r1, r0 - bne _080A5200 - ldrb r1, [r3, #3] - ldrb r0, [r3, #4] - lsls r0, r0, #8 - adds r1, r1, r0 - ldrb r0, [r3, #5] - lsls r0, r0, #0x10 - adds r1, r1, r0 - ldrb r0, [r3, #6] - lsls r0, r0, #0x18 - adds r1, r1, r0 - str r1, [r5] - b _080A5206 - .align 2, 0 -_080A51F8: .4byte gUnknown_2038090 -_080A51FC: .4byte gUnknown_20380BE -_080A5200: - adds r0, r4, #0 - adds r0, #8 - str r0, [r5] -_080A5206: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end ScriptCmd_jumpargeq - - thumb_func_start ScriptCmd_jumpifcontest -ScriptCmd_jumpifcontest: @ 0x080A520C - push {r4, lr} - ldr r4, _080A523C - ldr r0, [r4] - adds r0, #1 - str r0, [r4] - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A5240 - ldr r2, [r4] - ldrb r1, [r2] - ldrb r0, [r2, #1] - lsls r0, r0, #8 - adds r1, r1, r0 - ldrb r0, [r2, #2] - lsls r0, r0, #0x10 - adds r1, r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x18 - adds r1, r1, r0 - str r1, [r4] - b _080A5246 - .align 2, 0 -_080A523C: .4byte gUnknown_2038090 -_080A5240: - ldr r0, [r4] - adds r0, #4 - str r0, [r4] -_080A5246: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ScriptCmd_jumpifcontest - - thumb_func_start ScriptCmd_monbgprio_28 -ScriptCmd_monbgprio_28: @ 0x080A524C - push {r4, lr} - ldr r0, _080A5260 - ldr r1, [r0] - ldrb r2, [r1, #1] - adds r1, #2 - str r1, [r0] - cmp r2, #0 - beq _080A5268 - ldr r0, _080A5264 - b _080A526A - .align 2, 0 -_080A5260: .4byte gUnknown_2038090 -_080A5264: .4byte gUnknown_20380D7 -_080A5268: - ldr r0, _080A52A0 -_080A526A: - ldrb r0, [r0] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A529A - cmp r4, #0 - beq _080A5286 - cmp r4, #3 - bne _080A529A -_080A5286: - movs r0, #1 - movs r1, #4 - movs r2, #1 - bl SetAnimBgAttribute - movs r0, #2 - movs r1, #4 - movs r2, #2 - bl SetAnimBgAttribute -_080A529A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A52A0: .4byte gUnknown_20380D6 - thumb_func_end ScriptCmd_monbgprio_28 - - thumb_func_start ScriptCmd_monbgprio_29 -ScriptCmd_monbgprio_29: @ 0x080A52A4 - push {lr} - ldr r0, _080A52D0 - ldr r1, [r0] - adds r1, #1 - str r1, [r0] - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A52CC - movs r0, #1 - movs r1, #4 - movs r2, #1 - bl SetAnimBgAttribute - movs r0, #2 - movs r1, #4 - movs r2, #2 - bl SetAnimBgAttribute -_080A52CC: - pop {r0} - bx r0 - .align 2, 0 -_080A52D0: .4byte gUnknown_2038090 - thumb_func_end ScriptCmd_monbgprio_29 - - thumb_func_start ScriptCmd_monbgprio_2A -ScriptCmd_monbgprio_2A: @ 0x080A52D4 - push {r4, r5, r6, r7, lr} - ldr r1, _080A5304 - ldr r0, [r1] - ldrb r6, [r0, #1] - adds r0, #2 - str r0, [r1] - ldr r7, _080A5308 - ldrb r0, [r7] - bl GetBattlerSide - adds r4, r0, #0 - ldr r5, _080A530C - ldrb r0, [r5] - bl GetBattlerSide - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - beq _080A5340 - cmp r6, #0 - beq _080A5310 - ldrb r0, [r5] - b _080A5312 - .align 2, 0 -_080A5304: .4byte gUnknown_2038090 -_080A5308: .4byte gUnknown_20380D6 -_080A530C: .4byte gUnknown_20380D7 -_080A5310: - ldrb r0, [r7] -_080A5312: - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A5340 - cmp r4, #0 - beq _080A532C - cmp r4, #3 - bne _080A5340 -_080A532C: - movs r0, #1 - movs r1, #4 - movs r2, #1 - bl SetAnimBgAttribute - movs r0, #2 - movs r1, #4 - movs r2, #2 - bl SetAnimBgAttribute -_080A5340: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ScriptCmd_monbgprio_2A - - thumb_func_start ScriptCmd_invisible -ScriptCmd_invisible: @ 0x080A5348 - push {r4, lr} - ldr r4, _080A537C - ldr r0, [r4] - ldrb r0, [r0, #1] - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xff - beq _080A5370 - ldr r1, _080A5380 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_080A5370: - ldr r0, [r4] - adds r0, #2 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A537C: .4byte gUnknown_2038090 -_080A5380: .4byte gUnknown_20205AC - thumb_func_end ScriptCmd_invisible - - thumb_func_start ScriptCmd_visible -ScriptCmd_visible: @ 0x080A5384 - push {r4, lr} - ldr r4, _080A53BC - ldr r0, [r4] - ldrb r0, [r0, #1] - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xff - beq _080A53AE - ldr r1, _080A53C0 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] -_080A53AE: - ldr r0, [r4] - adds r0, #2 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A53BC: .4byte gUnknown_2038090 -_080A53C0: .4byte gUnknown_20205AC - thumb_func_end ScriptCmd_visible - - thumb_func_start ScriptCmd_doublebattle_2D -ScriptCmd_doublebattle_2D: @ 0x080A53C4 - push {r4, r5, r6, r7, lr} - ldr r1, _080A5410 - ldr r0, [r1] - ldrb r7, [r0, #1] - adds r0, #2 - str r0, [r1] - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A546E - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A546E - ldr r6, _080A5414 - ldrb r0, [r6] - bl GetBattlerSide - adds r4, r0, #0 - ldr r5, _080A5418 - ldrb r0, [r5] - bl GetBattlerSide - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - bne _080A546E - cmp r7, #0 - bne _080A541C - ldrb r0, [r6] - bl GetBattlerSpriteBGPriorityRank - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #0 - b _080A5428 - .align 2, 0 -_080A5410: .4byte gUnknown_2038090 -_080A5414: .4byte gUnknown_20380D6 -_080A5418: .4byte gUnknown_20380D7 -_080A541C: - ldrb r0, [r5] - bl GetBattlerSpriteBGPriorityRank - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #1 -_080A5428: - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xff - beq _080A546E - ldr r1, _080A5464 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r2, r0, r1 - adds r3, r2, #0 - adds r3, #0x3e - ldrb r1, [r3] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3] - cmp r4, #2 - bne _080A5458 - ldrb r0, [r2, #5] - movs r1, #0xc - orrs r0, r1 - strb r0, [r2, #5] -_080A5458: - cmp r4, #1 - bne _080A5468 - movs r0, #0 - bl sub_080A4044 - b _080A546E - .align 2, 0 -_080A5464: .4byte gUnknown_20205AC -_080A5468: - movs r0, #1 - bl sub_080A4044 -_080A546E: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end ScriptCmd_doublebattle_2D - - thumb_func_start ScriptCmd_doublebattle_2E -ScriptCmd_doublebattle_2E: @ 0x080A5474 - push {r4, r5, r6, r7, lr} - ldr r1, _080A54C0 - ldr r0, [r1] - ldrb r7, [r0, #1] - adds r0, #2 - str r0, [r1] - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A5500 - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A5500 - ldr r6, _080A54C4 - ldrb r0, [r6] - bl GetBattlerSide - adds r4, r0, #0 - ldr r5, _080A54C8 - ldrb r0, [r5] - bl GetBattlerSide - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - bne _080A5500 - cmp r7, #0 - bne _080A54CC - ldrb r0, [r6] - bl GetBattlerSpriteBGPriorityRank - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #0 - b _080A54D8 - .align 2, 0 -_080A54C0: .4byte gUnknown_2038090 -_080A54C4: .4byte gUnknown_20380D6 -_080A54C8: .4byte gUnknown_20380D7 -_080A54CC: - ldrb r0, [r5] - bl GetBattlerSpriteBGPriorityRank - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #1 -_080A54D8: - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xff - beq _080A5500 - cmp r4, #2 - bne _080A5500 - ldr r1, _080A5508 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r2, [r0, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #8 - orrs r1, r2 - strb r1, [r0, #5] -_080A5500: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A5508: .4byte gUnknown_20205AC - thumb_func_end ScriptCmd_doublebattle_2E - - thumb_func_start sub_080A550C -sub_080A550C: @ 0x080A550C - push {lr} - ldr r0, _080A5528 - bl m4aMPlayStop - ldr r0, _080A552C - bl m4aMPlayStop - ldr r1, _080A5530 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080A5528: .4byte gUnknown_3007510 -_080A552C: .4byte gUnknown_3007550 -_080A5530: .4byte gUnknown_2038090 - thumb_func_end sub_080A550C - - thumb_func_start GetBattlerSpriteCoord -GetBattlerSpriteCoord: @ 0x080A5534 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A5552 - cmp r4, #3 - bne _080A5552 - cmp r5, #3 - bne _080A5552 - movs r4, #1 -_080A5552: - cmp r4, #4 - bhi _080A55C8 - lsls r0, r4, #2 - ldr r1, _080A5560 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080A5560: .4byte _080A5564 -_080A5564: @ jump table - .4byte _080A5578 @ case 0 - .4byte _080A55A0 @ case 1 - .4byte _080A5578 @ case 2 - .4byte _080A55C8 @ case 3 - .4byte _080A55C8 @ case 4 -_080A5578: - ldr r4, _080A5598 - adds r0, r5, #0 - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - ldr r1, _080A559C - ldr r1, [r1] - movs r2, #1 - ands r1, r2 - lsls r1, r1, #4 - adds r0, r0, r1 - adds r0, r0, r4 - ldrb r0, [r0] - b _080A5678 - .align 2, 0 -_080A5598: .4byte gUnknown_84FE664 -_080A559C: .4byte gUnknown_2022C90 -_080A55A0: - ldr r4, _080A55C0 - adds r0, r5, #0 - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - ldr r1, _080A55C4 - ldr r1, [r1] - movs r2, #1 - ands r1, r2 - lsls r1, r1, #4 - adds r0, r0, r1 - adds r0, r0, r4 - ldrb r0, [r0, #1] - b _080A5678 - .align 2, 0 -_080A55C0: .4byte gUnknown_84FE664 -_080A55C4: .4byte gUnknown_2022C90 -_080A55C8: - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A55F0 - ldr r0, _080A55E8 - ldr r0, [r0] - ldr r2, [r0, #0x18] - ldrb r1, [r2, #4] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080A55EC - ldrh r1, [r2, #2] - b _080A5662 - .align 2, 0 -_080A55E8: .4byte gUnknown_2039BD4 -_080A55EC: - ldrh r1, [r2] - b _080A5662 -_080A55F0: - adds r0, r5, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A5628 - ldr r0, _080A561C - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r5, #2 - adds r1, r0, r1 - ldrh r0, [r1, #2] - cmp r0, #0 - bne _080A5660 - ldr r1, _080A5620 - lsls r0, r5, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080A5624 - b _080A5646 - .align 2, 0 -_080A561C: .4byte gUnknown_2024174 -_080A5620: .4byte gUnknown_2023D12 -_080A5624: .4byte gUnknown_20243E8 -_080A5628: - ldr r0, _080A5654 - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r5, #2 - adds r1, r0, r1 - ldrh r0, [r1, #2] - cmp r0, #0 - bne _080A5660 - ldr r1, _080A5658 - lsls r0, r5, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080A565C -_080A5646: - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - b _080A5662 - .align 2, 0 -_080A5654: .4byte gUnknown_2024174 -_080A5658: .4byte gUnknown_2023D12 -_080A565C: .4byte gUnknown_2024190 -_080A5660: - ldrh r1, [r1, #2] -_080A5662: - cmp r4, #3 - bne _080A566C - adds r0, r5, #0 - movs r2, #1 - b _080A5670 -_080A566C: - adds r0, r5, #0 - movs r2, #0 -_080A5670: - bl GetBattlerSpriteFinal_Y - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_080A5678: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetBattlerSpriteCoord - - thumb_func_start GetBattlerYDelta -GetBattlerYDelta: @ 0x080A5680 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - adds r0, r4, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A56A2 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A56A2 - b _080A5790 -_080A56A2: - cmp r5, #0xc9 - bne _080A5758 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A56CC - ldr r0, _080A56C4 - ldr r0, [r0] - ldr r2, [r0, #0x18] - ldrb r1, [r2, #4] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080A56C8 - ldr r2, [r2, #0x10] - b _080A570A - .align 2, 0 -_080A56C4: .4byte gUnknown_2039BD4 -_080A56C8: - ldr r2, [r2, #8] - b _080A570A -_080A56CC: - ldr r0, _080A56F8 - ldr r0, [r0] - ldr r0, [r0] - lsls r1, r4, #2 - adds r0, r1, r0 - ldrh r0, [r0, #2] - cmp r0, #0 - bne _080A5704 - ldr r1, _080A56FC - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080A5700 - adds r0, r0, r1 - movs r1, #0 - bl GetMonData - adds r2, r0, #0 - b _080A570A - .align 2, 0 -_080A56F8: .4byte gUnknown_2024174 -_080A56FC: .4byte gUnknown_2023D12 -_080A5700: .4byte gUnknown_2024190 -_080A5704: - ldr r0, _080A5740 - adds r0, r1, r0 - ldr r2, [r0] -_080A570A: - movs r0, #0xc0 - lsls r0, r0, #0x12 - ands r0, r2 - lsrs r0, r0, #0x12 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r2 - lsrs r1, r1, #0xc - orrs r0, r1 - movs r1, #0xc0 - lsls r1, r1, #2 - ands r1, r2 - lsrs r1, r1, #6 - orrs r0, r1 - movs r1, #3 - ands r1, r2 - orrs r0, r1 - movs r1, #0x1c - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - bne _080A5744 - adds r0, r5, #0 - b _080A574E - .align 2, 0 -_080A5740: .4byte gUnknown_2024160 -_080A5744: - movs r1, #0xce - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 -_080A574E: - ldr r1, _080A5754 - lsls r0, r0, #2 - b _080A5858 - .align 2, 0 -_080A5754: .4byte gUnknown_82D5A68 -_080A5758: - ldr r0, _080A576C - cmp r5, r0 - bne _080A5778 - ldr r0, _080A5770 - ldr r1, _080A5774 - adds r1, r4, r1 - ldrb r1, [r1] - adds r1, r1, r0 - ldrb r0, [r1] - b _080A585C - .align 2, 0 -_080A576C: .4byte 0x00000181 -_080A5770: .4byte gUnknown_84FE698 -_080A5774: .4byte gUnknown_2024188 -_080A5778: - movs r0, #0xce - lsls r0, r0, #1 - cmp r5, r0 - bls _080A5788 - ldr r0, _080A5784 - b _080A585A - .align 2, 0 -_080A5784: .4byte gUnknown_82D5A68 -_080A5788: - ldr r1, _080A578C - b _080A5856 - .align 2, 0 -_080A578C: .4byte gUnknown_82D5A68 -_080A5790: - cmp r5, #0xc9 - bne _080A5820 - ldr r0, _080A57C0 - ldr r0, [r0] - ldr r0, [r0] - lsls r1, r4, #2 - adds r0, r1, r0 - ldrh r0, [r0, #2] - cmp r0, #0 - bne _080A57CC - ldr r1, _080A57C4 - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080A57C8 - adds r0, r0, r1 - movs r1, #0 - bl GetMonData - adds r2, r0, #0 - b _080A57D2 - .align 2, 0 -_080A57C0: .4byte gUnknown_2024174 -_080A57C4: .4byte gUnknown_2023D12 -_080A57C8: .4byte gUnknown_20243E8 -_080A57CC: - ldr r0, _080A5808 - adds r0, r1, r0 - ldr r2, [r0] -_080A57D2: - movs r0, #0xc0 - lsls r0, r0, #0x12 - ands r0, r2 - lsrs r0, r0, #0x12 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r2 - lsrs r1, r1, #0xc - orrs r0, r1 - movs r1, #0xc0 - lsls r1, r1, #2 - ands r1, r2 - lsrs r1, r1, #6 - orrs r0, r1 - movs r1, #3 - ands r1, r2 - orrs r0, r1 - movs r1, #0x1c - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - bne _080A580C - adds r0, r5, #0 - b _080A5816 - .align 2, 0 -_080A5808: .4byte gUnknown_2024160 -_080A580C: - movs r1, #0xce - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 -_080A5816: - ldr r1, _080A581C - lsls r0, r0, #2 - b _080A5858 - .align 2, 0 -_080A581C: .4byte gUnknown_82D45C8 -_080A5820: - ldr r0, _080A5838 - cmp r5, r0 - bne _080A5844 - ldr r0, _080A583C - ldr r1, _080A5840 - adds r1, r4, r1 - ldrb r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #1] - b _080A585C - .align 2, 0 -_080A5838: .4byte 0x00000181 -_080A583C: .4byte gUnknown_84FE684 -_080A5840: .4byte gUnknown_2024188 -_080A5844: - movs r0, #0xce - lsls r0, r0, #1 - cmp r5, r0 - bls _080A5854 - ldr r0, _080A5850 - b _080A585A - .align 2, 0 -_080A5850: .4byte gUnknown_82D45C8 -_080A5854: - ldr r1, _080A5864 -_080A5856: - lsls r0, r5, #2 -_080A5858: - adds r0, r0, r1 -_080A585A: - ldrb r0, [r0, #1] -_080A585C: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080A5864: .4byte gUnknown_82D45C8 - thumb_func_end GetBattlerYDelta - - thumb_func_start GetBattlerElevation -GetBattlerElevation: @ 0x080A5868 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - adds r7, r4, #0 - movs r5, #0 - adds r0, r6, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080A58C6 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A58C6 - ldr r0, _080A58A4 - cmp r4, r0 - bne _080A58B0 - ldr r0, _080A58A8 - ldr r1, _080A58AC - adds r1, r6, r1 - ldrb r1, [r1] - adds r1, r1, r0 - ldrb r5, [r1] - b _080A58C6 - .align 2, 0 -_080A58A4: .4byte 0x00000181 -_080A58A8: .4byte gUnknown_84FE694 -_080A58AC: .4byte gUnknown_2024188 -_080A58B0: - movs r0, #0xce - lsls r0, r0, #1 - cmp r4, r0 - bls _080A58C0 - ldr r0, _080A58BC - b _080A58C4 - .align 2, 0 -_080A58BC: .4byte gUnknown_82D965C -_080A58C0: - ldr r0, _080A58D0 - adds r0, r7, r0 -_080A58C4: - ldrb r5, [r0] -_080A58C6: - adds r0, r5, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080A58D0: .4byte gUnknown_82D965C - thumb_func_end GetBattlerElevation - - thumb_func_start GetBattlerSpriteFinal_Y -GetBattlerSpriteFinal_Y: @ 0x080A58D4 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - adds r0, r6, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A58F8 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A5906 -_080A58F8: - adds r0, r6, #0 - adds r1, r5, #0 - bl GetBattlerYDelta - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - b _080A5924 -_080A5906: - adds r0, r6, #0 - adds r1, r5, #0 - bl GetBattlerYDelta - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r6, #0 - adds r1, r5, #0 - bl GetBattlerElevation - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, r4, r0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_080A5924: - adds r0, r6, #0 - bl sub_080A630C - ldr r3, _080A596C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - ldr r1, _080A5970 - ldr r1, [r1] - movs r2, #1 - ands r1, r2 - lsls r1, r1, #4 - adds r0, r0, r1 - adds r0, r0, r3 - ldrb r0, [r0, #1] - adds r0, r0, r4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r7, #0 - beq _080A5964 - adds r0, r6, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A595E - adds r0, r4, #0 - adds r0, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_080A595E: - cmp r4, #0x68 - bls _080A5964 - movs r4, #0x68 -_080A5964: - adds r0, r4, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080A596C: .4byte gUnknown_84FE664 -_080A5970: .4byte gUnknown_2022C90 - thumb_func_end GetBattlerSpriteFinal_Y - - thumb_func_start GetBattlerSpriteCoord2 -GetBattlerSpriteCoord2: @ 0x080A5974 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - movs r0, #0xfd - lsls r0, r0, #0x18 - adds r1, r1, r0 - lsrs r1, r1, #0x18 - cmp r1, #1 - bhi _080A59EE - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A59B0 - ldr r0, _080A59A8 - ldr r0, [r0] - ldr r2, [r0, #0x18] - ldrb r1, [r2, #4] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080A59AC - ldrh r1, [r2, #2] - b _080A59D6 - .align 2, 0 -_080A59A8: .4byte gUnknown_2039BD4 -_080A59AC: - ldrh r1, [r2] - b _080A59D6 -_080A59B0: - ldr r0, _080A59CC - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r4, #2 - adds r1, r0, r1 - ldrh r0, [r1, #2] - cmp r0, #0 - bne _080A59D4 - ldr r1, _080A59D0 - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r0] - b _080A59D6 - .align 2, 0 -_080A59CC: .4byte gUnknown_2024174 -_080A59D0: .4byte gUnknown_20380D8 -_080A59D4: - ldrh r1, [r1, #2] -_080A59D6: - cmp r5, #3 - bne _080A59E4 - adds r0, r4, #0 - movs r2, #1 - bl GetBattlerSpriteFinal_Y - b _080A59F6 -_080A59E4: - adds r0, r4, #0 - movs r2, #0 - bl GetBattlerSpriteFinal_Y - b _080A59F6 -_080A59EE: - adds r0, r4, #0 - adds r1, r5, #0 - bl GetBattlerSpriteCoord -_080A59F6: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end GetBattlerSpriteCoord2 - - thumb_func_start GetBattlerSpriteDefault_Y -GetBattlerSpriteDefault_Y: @ 0x080A5A00 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #4 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - thumb_func_end GetBattlerSpriteDefault_Y - - thumb_func_start GetSubstituteSpriteDefault_Y -GetSubstituteSpriteDefault_Y: @ 0x080A5A14 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A5A38 - adds r0, r4, #0 - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #8 - movs r1, #0x80 - lsls r1, r1, #0xd - b _080A5A48 -_080A5A38: - adds r0, r4, #0 - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #8 - movs r1, #0x88 - lsls r1, r1, #0xd -_080A5A48: - adds r0, r0, r1 - lsrs r0, r0, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetSubstituteSpriteDefault_Y - - thumb_func_start GetBattlerYCoordWithElevation -GetBattlerYCoordWithElevation: @ 0x080A5A58 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r5, #0 - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A5B00 - adds r0, r5, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A5AAC - ldr r0, _080A5AA0 - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r5, #2 - adds r1, r0, r1 - ldrh r0, [r1, #2] - cmp r0, #0 - bne _080A5AE4 - ldr r1, _080A5AA4 - lsls r0, r5, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080A5AA8 - b _080A5ACA - .align 2, 0 -_080A5AA0: .4byte gUnknown_2024174 -_080A5AA4: .4byte gUnknown_2023D12 -_080A5AA8: .4byte gUnknown_20243E8 -_080A5AAC: - ldr r0, _080A5AD8 - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r5, #2 - adds r1, r0, r1 - ldrh r0, [r1, #2] - cmp r0, #0 - bne _080A5AE4 - ldr r1, _080A5ADC - lsls r0, r5, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080A5AE0 -_080A5ACA: - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - b _080A5AE6 - .align 2, 0 -_080A5AD8: .4byte gUnknown_2024174 -_080A5ADC: .4byte gUnknown_2023D12 -_080A5AE0: .4byte gUnknown_2024190 -_080A5AE4: - ldrh r4, [r1, #2] -_080A5AE6: - adds r0, r5, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A5B00 - adds r0, r5, #0 - adds r1, r4, #0 - bl GetBattlerElevation - subs r0, r6, r0 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_080A5B00: - adds r0, r6, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end GetBattlerYCoordWithElevation - - thumb_func_start GetAnimBattlerSpriteId -GetAnimBattlerSpriteId: @ 0x080A5B08 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - cmp r0, #0 - bne _080A5B30 - ldr r4, _080A5B28 - ldrb r0, [r4] - bl IsBattlerSpritePresent - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A5B7E - ldr r1, _080A5B2C - ldrb r0, [r4] - b _080A5B8E - .align 2, 0 -_080A5B28: .4byte gUnknown_20380D6 -_080A5B2C: .4byte gUnknown_2023E88 -_080A5B30: - cmp r0, #1 - bne _080A5B50 - ldr r4, _080A5B48 - ldrb r0, [r4] - bl IsBattlerSpritePresent - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A5B7E - ldr r1, _080A5B4C - ldrb r0, [r4] - b _080A5B8E - .align 2, 0 -_080A5B48: .4byte gUnknown_20380D7 -_080A5B4C: .4byte gUnknown_2023E88 -_080A5B50: - cmp r1, #2 - bne _080A5B6C - ldr r5, _080A5B68 - ldrb r0, [r5] - movs r4, #2 - eors r0, r4 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A5B7E - b _080A5B88 - .align 2, 0 -_080A5B68: .4byte gUnknown_20380D6 -_080A5B6C: - ldr r5, _080A5B84 - ldrb r0, [r5] - movs r4, #2 - eors r0, r4 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A5B88 -_080A5B7E: - movs r0, #0xff - b _080A5B92 - .align 2, 0 -_080A5B84: .4byte gUnknown_20380D7 -_080A5B88: - ldr r1, _080A5B98 - ldrb r0, [r5] - eors r0, r4 -_080A5B8E: - adds r0, r0, r1 - ldrb r0, [r0] -_080A5B92: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080A5B98: .4byte gUnknown_2023E88 - thumb_func_end GetAnimBattlerSpriteId - - thumb_func_start StoreSpriteCallbackInData6 -StoreSpriteCallbackInData6: @ 0x080A5B9C - strh r1, [r0, #0x3a] - lsrs r1, r1, #0x10 - strh r1, [r0, #0x3c] - bx lr - thumb_func_end StoreSpriteCallbackInData6 - - thumb_func_start SetCallbackToStoredInData6 -SetCallbackToStoredInData6: @ 0x080A5BA4 - ldrh r2, [r0, #0x3a] - movs r3, #0x3c - ldrsh r1, [r0, r3] - lsls r1, r1, #0x10 - orrs r2, r1 - str r2, [r0, #0x1c] - bx lr - .align 2, 0 - thumb_func_end SetCallbackToStoredInData6 - - thumb_func_start TranslateSpriteInCircleOverDuration -TranslateSpriteInCircleOverDuration: @ 0x080A5BB4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x34 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _080A5C08 - movs r2, #0x2e - ldrsh r0, [r4, r2] - movs r2, #0x30 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, #0x24] - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x30 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x32] - ldrh r2, [r4, #0x2e] - adds r1, r0, r2 - strh r1, [r4, #0x2e] - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xff - ble _080A5BF4 - ldr r2, _080A5BF0 - b _080A5BFC - .align 2, 0 -_080A5BF0: .4byte 0xFFFFFF00 -_080A5BF4: - cmp r0, #0 - bge _080A5C00 - movs r2, #0x80 - lsls r2, r2, #1 -_080A5BFC: - adds r0, r1, r2 - strh r0, [r4, #0x2e] -_080A5C00: - ldrh r0, [r4, #0x34] - subs r0, #1 - strh r0, [r4, #0x34] - b _080A5C0E -_080A5C08: - adds r0, r4, #0 - bl SetCallbackToStoredInData6 -_080A5C0E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end TranslateSpriteInCircleOverDuration - - thumb_func_start TranslateSpriteInGrowingCircleOverDuration -TranslateSpriteInGrowingCircleOverDuration: @ 0x080A5C14 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x34 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _080A5C84 - movs r2, #0x2e - ldrsh r0, [r4, r2] - ldrh r1, [r4, #0x38] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - ldrh r2, [r4, #0x30] - adds r1, r1, r2 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl Sin - strh r0, [r4, #0x24] - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldrh r1, [r4, #0x38] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - ldrh r2, [r4, #0x30] - adds r1, r1, r2 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - 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, r0, r2 - strh r0, [r4, #0x38] - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xff - ble _080A5C70 - ldr r2, _080A5C6C - b _080A5C78 - .align 2, 0 -_080A5C6C: .4byte 0xFFFFFF00 -_080A5C70: - cmp r0, #0 - bge _080A5C7C - movs r2, #0x80 - lsls r2, r2, #1 -_080A5C78: - adds r0, r1, r2 - strh r0, [r4, #0x2e] -_080A5C7C: - ldrh r0, [r4, #0x34] - subs r0, #1 - strh r0, [r4, #0x34] - b _080A5C8A -_080A5C84: - adds r0, r4, #0 - bl SetCallbackToStoredInData6 -_080A5C8A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end TranslateSpriteInGrowingCircleOverDuration - - thumb_func_start sub_080A5C90 -sub_080A5C90: @ 0x080A5C90 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x34 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _080A5D0C - movs r2, #0x2e - ldrsh r0, [r4, r2] - movs r2, #0x30 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, #0x24] - movs r1, #0x36 - ldrsh r0, [r4, r1] - movs r2, #0x30 - ldrsh r1, [r4, r2] - 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, #0x38] - ldrh r2, [r4, #0x36] - adds r0, r0, r2 - strh r0, [r4, #0x36] - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xff - ble _080A5CD8 - ldr r2, _080A5CD4 - b _080A5CE0 - .align 2, 0 -_080A5CD4: .4byte 0xFFFFFF00 -_080A5CD8: - cmp r0, #0 - bge _080A5CE4 - movs r2, #0x80 - lsls r2, r2, #1 -_080A5CE0: - adds r0, r1, r2 - strh r0, [r4, #0x2e] -_080A5CE4: - ldrh r1, [r4, #0x36] - movs r2, #0x36 - ldrsh r0, [r4, r2] - cmp r0, #0xff - ble _080A5CF8 - ldr r2, _080A5CF4 - b _080A5D00 - .align 2, 0 -_080A5CF4: .4byte 0xFFFFFF00 -_080A5CF8: - cmp r0, #0 - bge _080A5D04 - movs r2, #0x80 - lsls r2, r2, #1 -_080A5D00: - adds r0, r1, r2 - strh r0, [r4, #0x36] -_080A5D04: - ldrh r0, [r4, #0x34] - subs r0, #1 - strh r0, [r4, #0x34] - b _080A5D12 -_080A5D0C: - adds r0, r4, #0 - bl SetCallbackToStoredInData6 -_080A5D12: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080A5C90 - - thumb_func_start TranslateSpriteInEllipseOverDuration -TranslateSpriteInEllipseOverDuration: @ 0x080A5D18 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x34 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _080A5D6C - movs r2, #0x2e - ldrsh r0, [r4, r2] - movs r2, #0x30 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, #0x24] - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x36 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x32] - ldrh r2, [r4, #0x2e] - adds r1, r0, r2 - strh r1, [r4, #0x2e] - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xff - ble _080A5D58 - ldr r2, _080A5D54 - b _080A5D60 - .align 2, 0 -_080A5D54: .4byte 0xFFFFFF00 -_080A5D58: - cmp r0, #0 - bge _080A5D64 - movs r2, #0x80 - lsls r2, r2, #1 -_080A5D60: - adds r0, r1, r2 - strh r0, [r4, #0x2e] -_080A5D64: - ldrh r0, [r4, #0x34] - subs r0, #1 - strh r0, [r4, #0x34] - b _080A5D72 -_080A5D6C: - adds r0, r4, #0 - bl SetCallbackToStoredInData6 -_080A5D72: - pop {r4} - pop {r0} - bx r0 - thumb_func_end TranslateSpriteInEllipseOverDuration - - thumb_func_start WaitAnimForDuration -WaitAnimForDuration: @ 0x080A5D78 - push {lr} - adds r1, r0, #0 - ldrh r2, [r1, #0x2e] - movs r3, #0x2e - ldrsh r0, [r1, r3] - cmp r0, #0 - ble _080A5D8C - subs r0, r2, #1 - strh r0, [r1, #0x2e] - b _080A5D92 -_080A5D8C: - adds r0, r1, #0 - bl SetCallbackToStoredInData6 -_080A5D92: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WaitAnimForDuration - - thumb_func_start sub_080A5D98 -sub_080A5D98: @ 0x080A5D98 - push {r4, lr} - adds r4, r0, #0 - bl sub_080A5DB4 - ldr r1, _080A5DB0 - str r1, [r4, #0x1c] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A5DB0: .4byte TranslateSpriteLinear - thumb_func_end sub_080A5D98 - - thumb_func_start sub_080A5DB4 -sub_080A5DB4: @ 0x080A5DB4 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x30 - ldrsh r1, [r4, r0] - movs r2, #0x32 - ldrsh r0, [r4, r2] - cmp r1, r0 - ble _080A5DCA - ldrh r0, [r4, #0x2e] - rsbs r0, r0, #0 - strh r0, [r4, #0x2e] -_080A5DCA: - movs r1, #0x32 - ldrsh r0, [r4, r1] - movs r2, #0x30 - ldrsh r1, [r4, r2] - subs r0, r0, r1 - ldrh r5, [r4, #0x2e] - movs r2, #0x2e - ldrsh r1, [r4, r2] - bl __divsi3 - cmp r0, #0 - bge _080A5DE4 - rsbs r0, r0, #0 -_080A5DE4: - strh r0, [r4, #0x2e] - movs r1, #0x36 - ldrsh r0, [r4, r1] - movs r2, #0x34 - ldrsh r1, [r4, r2] - subs r0, r0, r1 - movs r2, #0x2e - ldrsh r1, [r4, r2] - bl __divsi3 - strh r0, [r4, #0x32] - strh r5, [r4, #0x30] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080A5DB4 - - thumb_func_start TranslateSpriteLinear -TranslateSpriteLinear: @ 0x080A5E04 - push {lr} - adds r1, r0, #0 - ldrh r2, [r1, #0x2e] - movs r3, #0x2e - ldrsh r0, [r1, r3] - cmp r0, #0 - ble _080A5E28 - subs r0, r2, #1 - strh r0, [r1, #0x2e] - ldrh r0, [r1, #0x30] - ldrh r2, [r1, #0x24] - adds r0, r0, r2 - strh r0, [r1, #0x24] - ldrh r0, [r1, #0x32] - ldrh r3, [r1, #0x26] - adds r0, r0, r3 - strh r0, [r1, #0x26] - b _080A5E2E -_080A5E28: - adds r0, r1, #0 - bl SetCallbackToStoredInData6 -_080A5E2E: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end TranslateSpriteLinear - - thumb_func_start TranslateSpriteLinearFixedPoint -TranslateSpriteLinearFixedPoint: @ 0x080A5E34 - push {lr} - adds r2, r0, #0 - ldrh r1, [r2, #0x2e] - movs r3, #0x2e - ldrsh r0, [r2, r3] - cmp r0, #0 - ble _080A5E64 - subs r0, r1, #1 - strh r0, [r2, #0x2e] - ldrh r0, [r2, #0x30] - ldrh r1, [r2, #0x34] - adds r0, r0, r1 - strh r0, [r2, #0x34] - ldrh r1, [r2, #0x32] - ldrh r3, [r2, #0x36] - adds r1, r1, r3 - strh r1, [r2, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - strh r0, [r2, #0x24] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - strh r1, [r2, #0x26] - b _080A5E6A -_080A5E64: - adds r0, r2, #0 - bl SetCallbackToStoredInData6 -_080A5E6A: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end TranslateSpriteLinearFixedPoint - - thumb_func_start TranslateSpriteLinearFixedPointIconFrame -TranslateSpriteLinearFixedPointIconFrame: @ 0x080A5E70 - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x2e] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r0, #0 - ble _080A5EA0 - subs r0, r1, #1 - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x30] - ldrh r1, [r4, #0x34] - adds r0, r0, r1 - strh r0, [r4, #0x34] - ldrh r1, [r4, #0x32] - ldrh r2, [r4, #0x36] - adds r1, r1, r2 - strh r1, [r4, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - strh r0, [r4, #0x24] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - strh r1, [r4, #0x26] - b _080A5EA6 -_080A5EA0: - adds r0, r4, #0 - bl SetCallbackToStoredInData6 -_080A5EA6: - adds r0, r4, #0 - bl UpdateMonIconFrame - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end TranslateSpriteLinearFixedPointIconFrame - - thumb_func_start sub_080A5EB4 -sub_080A5EB4: @ 0x080A5EB4 - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x24] - ldrh r1, [r4, #0x20] - adds r0, r0, r1 - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x26] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x34] - ldr r5, _080A5EF0 - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x32] - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x36] - ldr r0, _080A5EF4 - str r0, [r4, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A5EF0: .4byte gUnknown_20380D7 -_080A5EF4: .4byte sub_080A5D98 - thumb_func_end sub_080A5EB4 - - thumb_func_start TranslateMonSpriteLinear -TranslateMonSpriteLinear: @ 0x080A5EF8 - push {r4, lr} - adds r3, r0, #0 - ldrh r1, [r3, #0x2e] - movs r2, #0x2e - ldrsh r0, [r3, r2] - cmp r0, #0 - ble _080A5F3C - subs r0, r1, #1 - strh r0, [r3, #0x2e] - ldr r2, _080A5F38 - movs r4, #0x34 - ldrsh r1, [r3, r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r3, #0x30] - ldrh r4, [r0, #0x24] - adds r1, r1, r4 - strh r1, [r0, #0x24] - movs r0, #0x34 - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r3, #0x32] - ldrh r2, [r0, #0x26] - adds r1, r1, r2 - strh r1, [r0, #0x26] - b _080A5F42 - .align 2, 0 -_080A5F38: .4byte gUnknown_20205AC -_080A5F3C: - adds r0, r3, #0 - bl SetCallbackToStoredInData6 -_080A5F42: - pop {r4} - pop {r0} - bx r0 - thumb_func_end TranslateMonSpriteLinear - - thumb_func_start TranslateMonSpriteLinearFixedPoint -TranslateMonSpriteLinearFixedPoint: @ 0x080A5F48 - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x2e] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r0, #0 - ble _080A5F98 - subs r0, r1, #1 - strh r0, [r4, #0x2e] - ldrh r1, [r4, #0x30] - ldrh r0, [r4, #0x34] - adds r1, r1, r0 - strh r1, [r4, #0x34] - ldrh r0, [r4, #0x32] - ldrh r2, [r4, #0x36] - adds r0, r0, r2 - strh r0, [r4, #0x36] - ldr r3, _080A5F94 - movs r0, #0x38 - ldrsh r2, [r4, r0] - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r3 - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - strh r1, [r0, #0x24] - movs r1, #0x38 - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrh r0, [r4, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - strh r0, [r1, #0x26] - b _080A5F9E - .align 2, 0 -_080A5F94: .4byte gUnknown_20205AC -_080A5F98: - adds r0, r4, #0 - bl SetCallbackToStoredInData6 -_080A5F9E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end TranslateMonSpriteLinearFixedPoint - - thumb_func_start TranslateSpriteLinearAndFlicker -TranslateSpriteLinearAndFlicker: @ 0x080A5FA4 - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x2e] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r0, #0 - ble _080A6006 - subs r0, r1, #1 - strh r0, [r4, #0x2e] - ldrh r1, [r4, #0x32] - lsls r0, r1, #0x10 - asrs r0, r0, #0x18 - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x30] - adds r1, r1, r0 - strh r1, [r4, #0x32] - ldrh r1, [r4, #0x36] - lsls r0, r1, #0x10 - asrs r0, r0, #0x18 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x34] - adds r1, r1, r0 - strh r1, [r4, #0x36] - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x38 - ldrsh r1, [r4, r2] - bl __modsi3 - cmp r0, #0 - bne _080A600C - movs r1, #0x38 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _080A600C - adds r3, r4, #0 - adds r3, #0x3e - ldrb r2, [r3] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _080A600C -_080A6006: - adds r0, r4, #0 - bl SetCallbackToStoredInData6 -_080A600C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end TranslateSpriteLinearAndFlicker - - thumb_func_start DestroySpriteAndMatrix -DestroySpriteAndMatrix: @ 0x080A6014 - push {r4, lr} - adds r4, r0, #0 - bl FreeSpriteOamMatrix - adds r0, r4, #0 - bl DestroyAnimSprite - pop {r4} - pop {r0} - bx r0 - thumb_func_end DestroySpriteAndMatrix - - thumb_func_start sub_080A6028 -sub_080A6028: @ 0x080A6028 - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x24] - ldrh r1, [r4, #0x20] - adds r0, r0, r1 - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x26] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x34] - ldr r5, _080A6064 - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x32] - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x36] - ldr r0, _080A6068 - str r0, [r4, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A6064: .4byte gUnknown_20380D6 -_080A6068: .4byte sub_080A5D98 - thumb_func_end sub_080A6028 - - thumb_func_start sub_080A606C -sub_080A606C: @ 0x080A606C - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x38] - bl ResetPaletteStructByUid - adds r0, r4, #0 - bl DestroySpriteAndMatrix - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080A606C - - thumb_func_start RunStoredCallbackWhenAffineAnimEnds -RunStoredCallbackWhenAffineAnimEnds: @ 0x080A6084 - push {lr} - adds r2, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080A609A - adds r0, r2, #0 - bl SetCallbackToStoredInData6 -_080A609A: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RunStoredCallbackWhenAffineAnimEnds - - thumb_func_start RunStoredCallbackWhenAnimEnds -RunStoredCallbackWhenAnimEnds: @ 0x080A60A0 - push {lr} - adds r2, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080A60B6 - adds r0, r2, #0 - bl SetCallbackToStoredInData6 -_080A60B6: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RunStoredCallbackWhenAnimEnds - - thumb_func_start sub_080A60BC -sub_080A60BC: @ 0x080A60BC - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - adds r0, r4, #0 - bl DestroyAnimSprite - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080A60BC - - thumb_func_start DestroyAnimVisualTaskAndDisableBlend -DestroyAnimVisualTaskAndDisableBlend: @ 0x080A60DC - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - adds r0, r4, #0 - bl DestroyAnimVisualTask - pop {r4} - pop {r0} - bx r0 - thumb_func_end DestroyAnimVisualTaskAndDisableBlend - - thumb_func_start SetSpriteCoordsToAnimAttackerCoords -SetSpriteCoordsToAnimAttackerCoords: @ 0x080A6100 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A6128 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A6128: .4byte gUnknown_20380D6 - thumb_func_end SetSpriteCoordsToAnimAttackerCoords - - thumb_func_start SetAnimSpriteInitialXOffset -SetAnimSpriteInitialXOffset: @ 0x080A612C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - mov r8, r5 - ldr r7, _080A6164 - ldrb r0, [r7] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _080A6168 - ldrb r0, [r0] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r6, r0 - bhi _080A6178 - cmp r6, r0 - bhs _080A616C - lsls r0, r5, #0x10 - b _080A6188 - .align 2, 0 -_080A6164: .4byte gUnknown_20380D6 -_080A6168: .4byte gUnknown_20380D7 -_080A616C: - ldrb r0, [r7] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A6184 -_080A6178: - ldrh r1, [r4, #0x20] - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - subs r1, r1, r0 - strh r1, [r4, #0x20] - b _080A6190 -_080A6184: - mov r1, r8 - lsls r0, r1, #0x10 -_080A6188: - asrs r0, r0, #0x10 - ldrh r1, [r4, #0x20] - adds r0, r0, r1 - strh r0, [r4, #0x20] -_080A6190: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetAnimSpriteInitialXOffset - - thumb_func_start InitAnimArcTranslation -InitAnimArcTranslation: @ 0x080A619C - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x20] - movs r5, #0 - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x22] - strh r0, [r4, #0x34] - adds r0, r4, #0 - bl InitAnimLinearTranslation - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r0, #0x80 - lsls r0, r0, #8 - bl __divsi3 - strh r0, [r4, #0x3a] - strh r5, [r4, #0x3c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end InitAnimArcTranslation - - thumb_func_start TranslateAnimHorizontalArc -TranslateAnimHorizontalArc: @ 0x080A61C8 - push {r4, lr} - adds r4, r0, #0 - bl AnimTranslateLinear - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A61F4 - ldrh r0, [r4, #0x3a] - ldrh r1, [r4, #0x3c] - adds r0, r0, r1 - strh r0, [r4, #0x3c] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - movs r2, #0x38 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, #0x26] - adds r0, r0, r1 - strh r0, [r4, #0x26] - movs r0, #0 - b _080A61F6 -_080A61F4: - movs r0, #1 -_080A61F6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end TranslateAnimHorizontalArc - - thumb_func_start TranslateAnimVerticalArc -TranslateAnimVerticalArc: @ 0x080A61FC - push {r4, lr} - adds r4, r0, #0 - bl AnimTranslateLinear - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A6228 - ldrh r0, [r4, #0x3a] - ldrh r1, [r4, #0x3c] - adds r0, r0, r1 - strh r0, [r4, #0x3c] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - movs r2, #0x38 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, #0x24] - adds r0, r0, r1 - strh r0, [r4, #0x24] - movs r0, #0 - b _080A622A -_080A6228: - movs r0, #1 -_080A622A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end TranslateAnimVerticalArc - - thumb_func_start SetSpritePrimaryCoordsFromSecondaryCoords -SetSpritePrimaryCoordsFromSecondaryCoords: @ 0x080A6230 - ldrh r1, [r0, #0x24] - ldrh r2, [r0, #0x20] - adds r1, r1, r2 - movs r2, #0 - strh r1, [r0, #0x20] - ldrh r1, [r0, #0x26] - ldrh r3, [r0, #0x22] - adds r1, r1, r3 - strh r1, [r0, #0x22] - strh r2, [r0, #0x24] - strh r2, [r0, #0x26] - bx lr - thumb_func_end SetSpritePrimaryCoordsFromSecondaryCoords - - thumb_func_start InitSpritePosToAnimTarget -InitSpritePosToAnimTarget: @ 0x080A6248 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r1, r1, #0x18 - cmp r1, #0 - bne _080A6270 - ldr r4, _080A628C - ldrb r0, [r4] - movs r1, #0 - bl GetBattlerSpriteCoord2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #1 - bl GetBattlerSpriteCoord2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] -_080A6270: - ldr r4, _080A6290 - movs r0, #0 - ldrsh r1, [r4, r0] - adds r0, r5, #0 - bl SetAnimSpriteInitialXOffset - ldrh r0, [r4, #2] - ldrh r1, [r5, #0x22] - adds r0, r0, r1 - strh r0, [r5, #0x22] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A628C: .4byte gUnknown_20380D7 -_080A6290: .4byte gUnknown_20380BE - thumb_func_end InitSpritePosToAnimTarget - - thumb_func_start InitSpritePosToAnimAttacker -InitSpritePosToAnimAttacker: @ 0x080A6294 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r1, r1, #0x18 - cmp r1, #0 - bne _080A62B8 - ldr r4, _080A62B4 - ldrb r0, [r4] - movs r1, #0 - bl GetBattlerSpriteCoord2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #1 - b _080A62CC - .align 2, 0 -_080A62B4: .4byte gUnknown_20380D6 -_080A62B8: - ldr r4, _080A62F0 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #3 -_080A62CC: - bl GetBattlerSpriteCoord2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - ldr r4, _080A62F4 - movs r0, #0 - ldrsh r1, [r4, r0] - adds r0, r5, #0 - bl SetAnimSpriteInitialXOffset - ldrh r0, [r4, #2] - ldrh r1, [r5, #0x22] - adds r0, r0, r1 - strh r0, [r5, #0x22] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A62F0: .4byte gUnknown_20380D6 -_080A62F4: .4byte gUnknown_20380BE - thumb_func_end InitSpritePosToAnimAttacker - - thumb_func_start GetBattlerSide -GetBattlerSide: @ 0x080A62F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080A6308 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - bx lr - .align 2, 0 -_080A6308: .4byte gUnknown_2023D1A - thumb_func_end GetBattlerSide - - thumb_func_start sub_080A630C -sub_080A630C: @ 0x080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080A6318 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080A6318: .4byte gUnknown_2023D1A - thumb_func_end sub_080A630C - - thumb_func_start GetBattlerAtPosition -GetBattlerAtPosition: @ 0x080A631C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - movs r1, #0 - ldr r0, _080A6350 - ldrb r2, [r0] - cmp r1, r2 - bhs _080A6346 - ldr r4, _080A6354 - ldrb r0, [r4] - cmp r0, r3 - beq _080A6346 -_080A6334: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, r2 - bhs _080A6346 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, r3 - bne _080A6334 -_080A6346: - adds r0, r1, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080A6350: .4byte gUnknown_2023D10 -_080A6354: .4byte gUnknown_2023D1A - thumb_func_end GetBattlerAtPosition - - thumb_func_start IsBattlerSpritePresent -IsBattlerSpritePresent: @ 0x080A6358 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, r4, #0 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A6384 - ldr r0, _080A637C - ldrb r0, [r0] - cmp r0, r4 - beq _080A63D2 - ldr r0, _080A6380 - ldrb r0, [r0] - cmp r0, r4 - beq _080A63D2 - b _080A63E0 - .align 2, 0 -_080A637C: .4byte gUnknown_20380D6 -_080A6380: .4byte gUnknown_20380D7 -_080A6384: - ldr r0, _080A63AC - adds r0, r4, r0 - ldrb r0, [r0] - cmp r0, #0xff - beq _080A63E0 - adds r0, r4, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A63B8 - ldr r1, _080A63B0 - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080A63B4 - b _080A63C6 - .align 2, 0 -_080A63AC: .4byte gUnknown_2023D1A -_080A63B0: .4byte gUnknown_2023D12 -_080A63B4: .4byte gUnknown_20243E8 -_080A63B8: - ldr r1, _080A63D8 - lsls r0, r5, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080A63DC -_080A63C6: - adds r0, r0, r1 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _080A63E0 -_080A63D2: - movs r0, #1 - b _080A63E2 - .align 2, 0 -_080A63D8: .4byte gUnknown_2023D12 -_080A63DC: .4byte gUnknown_2024190 -_080A63E0: - movs r0, #0 -_080A63E2: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end IsBattlerSpritePresent - - thumb_func_start IsDoubleBattle -IsDoubleBattle: @ 0x080A63E8 - ldr r0, _080A63F4 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - bx lr - .align 2, 0 -_080A63F4: .4byte gUnknown_2022C90 - thumb_func_end IsDoubleBattle - - thumb_func_start sub_080A63F8 -sub_080A63F8: @ 0x080A63F8 - push {r4, lr} - adds r4, r0, #0 - bl IsContest - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _080A642C - ldr r0, _080A6424 - ldr r0, [r0] - str r0, [r4] - ldr r0, _080A6428 - ldr r0, [r0] - str r0, [r4, #4] - movs r1, #0 - movs r0, #0xe - strb r0, [r4, #8] - movs r0, #1 - strb r0, [r4, #9] - strh r1, [r4, #0xa] - b _080A6446 - .align 2, 0 -_080A6424: .4byte gUnknown_2022D00 -_080A6428: .4byte gUnknown_2022D04 -_080A642C: - ldr r0, _080A6450 - ldr r0, [r0] - str r0, [r4] - ldr r0, _080A6454 - ldr r0, [r0] - str r0, [r4, #4] - movs r0, #8 - strb r0, [r4, #8] - movs r0, #1 - strb r0, [r4, #9] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0xa] -_080A6446: - strh r1, [r4, #0xc] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A6450: .4byte gUnknown_2022D00 -_080A6454: .4byte gUnknown_2022D04 - thumb_func_end sub_080A63F8 - - thumb_func_start sub_080A6458 -sub_080A6458: @ 0x080A6458 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl IsContest - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _080A648C - ldr r0, _080A6484 - ldr r0, [r0] - str r0, [r4] - ldr r0, _080A6488 - ldr r0, [r0] - str r0, [r4, #4] - movs r1, #0 - movs r0, #0xe - strb r0, [r4, #8] - movs r0, #1 - strb r0, [r4, #9] - strh r1, [r4, #0xa] - b _080A64B2 - .align 2, 0 -_080A6484: .4byte gUnknown_2022D00 -_080A6488: .4byte gUnknown_2022D04 -_080A648C: - cmp r5, #1 - bne _080A6498 - adds r0, r4, #0 - bl sub_080A63F8 - b _080A64B4 -_080A6498: - ldr r0, _080A64BC - ldr r0, [r0] - str r0, [r4] - ldr r0, _080A64C0 - ldr r0, [r0] - str r0, [r4, #4] - movs r0, #9 - strb r0, [r4, #8] - movs r0, #2 - strb r0, [r4, #9] - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r4, #0xa] -_080A64B2: - strh r1, [r4, #0xc] -_080A64B4: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A64BC: .4byte gUnknown_2022D00 -_080A64C0: .4byte gUnknown_2022D04 - thumb_func_end sub_080A6458 - - thumb_func_start sub_080A64C4 -sub_080A64C4: @ 0x080A64C4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _080A64F0 - ldr r0, [r0] - str r0, [r4] - ldr r0, _080A64F4 - ldr r0, [r0] - str r0, [r4, #4] - bl IsContest - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - beq _080A64F8 - movs r0, #0 - movs r1, #0xe - strb r1, [r4, #8] - movs r1, #1 - strb r1, [r4, #9] - strh r0, [r4, #0xa] - strh r0, [r4, #0xc] - b _080A6528 - .align 2, 0 -_080A64F0: .4byte gUnknown_2022D00 -_080A64F4: .4byte gUnknown_2022D04 -_080A64F8: - ldr r0, _080A6514 - ldrb r0, [r0] - bl GetBattlerSpriteBGPriorityRank - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #1 - bne _080A6518 - movs r0, #8 - strb r0, [r4, #8] - strb r1, [r4, #9] - movs r0, #0x80 - lsls r0, r0, #2 - b _080A6524 - .align 2, 0 -_080A6514: .4byte gUnknown_20380D6 -_080A6518: - movs r0, #9 - strb r0, [r4, #8] - movs r0, #2 - strb r0, [r4, #9] - movs r0, #0xc0 - lsls r0, r0, #2 -_080A6524: - strh r0, [r4, #0xa] - strh r5, [r4, #0xc] -_080A6528: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080A64C4 - - thumb_func_start sub_080A6530 -sub_080A6530: @ 0x080A6530 - push {lr} - sub sp, #0x20 - adds r1, r0, #0 - add r0, sp, #0xc - bl sub_080A6458 - movs r0, #0 - str r0, [sp, #0x1c] - add r0, sp, #0x1c - ldr r1, [sp, #0xc] - ldr r2, _080A6584 - bl CpuSet - add r0, sp, #0xc - ldrb r0, [r0, #9] - ldr r1, [sp, #0xc] - movs r2, #0x80 - lsls r2, r2, #6 - add r3, sp, #0xc - ldrh r3, [r3, #0xa] - bl LoadBgTiles - add r0, sp, #0xc - ldrb r0, [r0, #9] - movs r1, #0x20 - str r1, [sp] - movs r1, #0x40 - str r1, [sp, #4] - movs r1, #0x11 - str r1, [sp, #8] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect - add r0, sp, #0xc - ldrb r0, [r0, #9] - bl CopyBgTilemapBufferToVram - add sp, #0x20 - pop {r0} - bx r0 - .align 2, 0 -_080A6584: .4byte 0x05000800 - thumb_func_end sub_080A6530 - - thumb_func_start AnimLoadCompressedBgGfx -AnimLoadCompressedBgGfx: @ 0x080A6588 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #4 - adds r5, r0, #0 - mov r8, r1 - adds r6, r2, #0 - movs r0, #0 - str r0, [sp] - ldr r4, _080A65D0 - ldr r1, [r4] - ldr r2, _080A65D4 - mov r0, sp - bl CpuSet - ldr r1, [r4] - mov r0, r8 - bl sub_08034370 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r1, [r4] - movs r2, #0x80 - lsls r2, r2, #6 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - adds r0, r5, #0 - adds r3, r6, #0 - bl LoadBgTiles - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080A65D0: .4byte gUnknown_2022D00 -_080A65D4: .4byte 0x05000800 - thumb_func_end AnimLoadCompressedBgGfx - - thumb_func_start InitAnimBgTilemapBuffer -InitAnimBgTilemapBuffer: @ 0x080A65D8 - push {r4, r5, lr} - sub sp, #0xc - adds r4, r0, #0 - adds r5, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0x20 - str r0, [sp] - movs r0, #0x40 - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end InitAnimBgTilemapBuffer - - thumb_func_start AnimLoadCompressedBgTilemap -AnimLoadCompressedBgTilemap: @ 0x080A6610 - push {r4, lr} - adds r4, r0, #0 - bl InitAnimBgTilemapBuffer - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl CopyBgTilemapBufferToVram - pop {r4} - pop {r0} - bx r0 - thumb_func_end AnimLoadCompressedBgTilemap - - thumb_func_start sub_080A6628 -sub_080A6628: @ 0x080A6628 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r2, #0 - ldrb r0, [r4, #9] - bl InitAnimBgTilemapBuffer - bl IsContest - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080A664E - ldrb r0, [r4, #8] - ldr r1, [r4, #4] - lsls r3, r5, #0x18 - lsrs r3, r3, #0x18 - movs r2, #0 - bl sub_080A3FE8 -_080A664E: - ldrb r0, [r4, #9] - bl CopyBgTilemapBufferToVram - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080A6628 - - thumb_func_start sub_080A665C -sub_080A665C: @ 0x080A665C - push {lr} - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A666C - movs r0, #2 - b _080A666E -_080A666C: - movs r0, #1 -_080A666E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080A665C - - thumb_func_start sub_080A6674 -sub_080A6674: @ 0x080A6674 - push {lr} - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A6686 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A669C -_080A6686: - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl SetAnimBgAttribute - movs r0, #3 - movs r1, #1 - movs r2, #1 - bl SetAnimBgAttribute - b _080A66B0 -_080A669C: - movs r0, #3 - movs r1, #0 - movs r2, #1 - bl SetAnimBgAttribute - movs r0, #3 - movs r1, #1 - movs r2, #0 - bl SetAnimBgAttribute -_080A66B0: - pop {r0} - bx r0 - thumb_func_end sub_080A6674 - - thumb_func_start sub_080A66B4 -sub_080A66B4: @ 0x080A66B4 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x20] - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x22] - strh r0, [r4, #0x34] - adds r0, r4, #0 - bl InitSpriteDataForLinearTranslation - ldr r1, _080A66D8 - str r1, [r4, #0x1c] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A66D8: .4byte TranslateSpriteLinearFixedPointIconFrame - thumb_func_end sub_080A66B4 - - thumb_func_start InitSpriteDataForLinearTranslation -InitSpriteDataForLinearTranslation: @ 0x080A66DC - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrh r0, [r5, #0x32] - ldrh r1, [r5, #0x30] - subs r0, r0, r1 - ldrh r4, [r5, #0x36] - ldrh r1, [r5, #0x34] - subs r4, r4, r1 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x10 - lsls r0, r0, #0x18 - asrs r0, r0, #0x10 - movs r2, #0x2e - ldrsh r1, [r5, r2] - bl __divsi3 - movs r6, #0 - strh r0, [r5, #0x30] - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - movs r0, #0x2e - ldrsh r1, [r5, r0] - adds r0, r4, #0 - bl __divsi3 - strh r0, [r5, #0x32] - strh r6, [r5, #0x36] - strh r6, [r5, #0x34] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end InitSpriteDataForLinearTranslation - - thumb_func_start InitAnimLinearTranslation -InitAnimLinearTranslation: @ 0x080A671C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - movs r0, #0x32 - ldrsh r1, [r7, r0] - movs r2, #0x30 - ldrsh r0, [r7, r2] - subs r1, r1, r0 - movs r3, #0x36 - ldrsh r2, [r7, r3] - movs r3, #0x34 - ldrsh r0, [r7, r3] - subs r2, r2, r0 - lsrs r0, r1, #0x1f - mov r8, r0 - lsrs r3, r2, #0x1f - mov sb, r3 - cmp r1, #0 - bge _080A6748 - rsbs r1, r1, #0 -_080A6748: - lsls r0, r1, #0x18 - lsrs r6, r0, #0x10 - adds r0, r2, #0 - cmp r0, #0 - bge _080A6754 - rsbs r0, r0, #0 -_080A6754: - lsls r0, r0, #0x18 - lsrs r5, r0, #0x10 - movs r0, #0x2e - ldrsh r4, [r7, r0] - adds r0, r6, #0 - adds r1, r4, #0 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - mov r2, r8 - cmp r2, #0 - beq _080A6780 - movs r0, #1 - orrs r6, r0 - b _080A6784 -_080A6780: - ldr r0, _080A6790 - ands r6, r0 -_080A6784: - mov r3, sb - cmp r3, #0 - beq _080A6794 - movs r0, #1 - orrs r5, r0 - b _080A6798 - .align 2, 0 -_080A6790: .4byte 0x0000FFFE -_080A6794: - ldr r0, _080A67B0 - ands r5, r0 -_080A6798: - movs r0, #0 - strh r6, [r7, #0x30] - strh r5, [r7, #0x32] - strh r0, [r7, #0x36] - strh r0, [r7, #0x34] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A67B0: .4byte 0x0000FFFE - thumb_func_end InitAnimLinearTranslation - - thumb_func_start sub_080A67B4 -sub_080A67B4: @ 0x080A67B4 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x20] - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x22] - strh r0, [r4, #0x34] - adds r0, r4, #0 - bl InitAnimLinearTranslation - ldr r1, _080A67D8 - str r1, [r4, #0x1c] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A67D8: .4byte sub_080A6860 - thumb_func_end sub_080A67B4 - - thumb_func_start sub_080A67DC -sub_080A67DC: @ 0x080A67DC - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x20] - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x22] - strh r0, [r4, #0x34] - adds r0, r4, #0 - bl InitAnimLinearTranslation - ldr r1, _080A6800 - str r1, [r4, #0x1c] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A6800: .4byte sub_080A687C - thumb_func_end sub_080A67DC - - thumb_func_start AnimTranslateLinear -AnimTranslateLinear: @ 0x080A6804 - push {r4, r5, r6, lr} - adds r2, r0, #0 - movs r1, #0x2e - ldrsh r0, [r2, r1] - cmp r0, #0 - bne _080A6814 - movs r0, #1 - b _080A6858 -_080A6814: - ldrh r1, [r2, #0x30] - ldrh r4, [r2, #0x32] - ldrh r6, [r2, #0x34] - ldrh r5, [r2, #0x36] - adds r0, r6, r1 - lsls r3, r0, #0x10 - lsrs r6, r3, #0x10 - adds r0, r5, r4 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - movs r0, #1 - ands r1, r0 - cmp r1, #0 - beq _080A6836 - lsrs r0, r3, #0x18 - rsbs r0, r0, #0 - b _080A6838 -_080A6836: - lsrs r0, r3, #0x18 -_080A6838: - strh r0, [r2, #0x24] - movs r0, #1 - ands r4, r0 - cmp r4, #0 - beq _080A6848 - lsrs r0, r5, #8 - rsbs r0, r0, #0 - b _080A684A -_080A6848: - lsrs r0, r5, #8 -_080A684A: - strh r0, [r2, #0x26] - strh r6, [r2, #0x34] - strh r5, [r2, #0x36] - ldrh r0, [r2, #0x2e] - subs r0, #1 - strh r0, [r2, #0x2e] - movs r0, #0 -_080A6858: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end AnimTranslateLinear - - thumb_func_start sub_080A6860 -sub_080A6860: @ 0x080A6860 - push {r4, lr} - adds r4, r0, #0 - bl AnimTranslateLinear - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A6874 - adds r0, r4, #0 - bl SetCallbackToStoredInData6 -_080A6874: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080A6860 - - thumb_func_start sub_080A687C -sub_080A687C: @ 0x080A687C - push {r4, lr} - adds r4, r0, #0 - bl sub_08039AE0 - adds r0, r4, #0 - bl AnimTranslateLinear - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A6896 - adds r0, r4, #0 - bl SetCallbackToStoredInData6 -_080A6896: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080A687C - - thumb_func_start sub_080A689C -sub_080A689C: @ 0x080A689C - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r1, [r4, r0] - movs r2, #0x30 - ldrsh r0, [r4, r2] - subs r0, r1, r0 - cmp r0, #0 - bge _080A68B0 - rsbs r0, r0, #0 -_080A68B0: - lsls r0, r0, #8 - movs r2, #0x2e - ldrsh r1, [r4, r2] - bl __divsi3 - strh r0, [r4, #0x2e] - adds r0, r4, #0 - bl InitAnimLinearTranslation - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080A689C - - thumb_func_start sub_080A68C8 -sub_080A68C8: @ 0x080A68C8 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x20] - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x22] - strh r0, [r4, #0x34] - adds r0, r4, #0 - bl sub_080A689C - ldr r1, _080A68EC - str r1, [r4, #0x1c] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A68EC: .4byte sub_080A6860 - thumb_func_end sub_080A68C8 - - thumb_func_start InitAnimFastLinearTranslation -InitAnimFastLinearTranslation: @ 0x080A68F0 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - movs r0, #0x32 - ldrsh r1, [r7, r0] - movs r2, #0x30 - ldrsh r0, [r7, r2] - subs r1, r1, r0 - movs r3, #0x36 - ldrsh r2, [r7, r3] - movs r3, #0x34 - ldrsh r0, [r7, r3] - subs r2, r2, r0 - lsrs r0, r1, #0x1f - mov r8, r0 - lsrs r3, r2, #0x1f - mov sb, r3 - cmp r1, #0 - bge _080A691C - rsbs r1, r1, #0 -_080A691C: - lsls r0, r1, #0x14 - lsrs r6, r0, #0x10 - adds r0, r2, #0 - cmp r0, #0 - bge _080A6928 - rsbs r0, r0, #0 -_080A6928: - lsls r0, r0, #0x14 - lsrs r5, r0, #0x10 - movs r0, #0x2e - ldrsh r4, [r7, r0] - adds r0, r6, #0 - adds r1, r4, #0 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - mov r2, r8 - cmp r2, #0 - beq _080A6954 - movs r0, #1 - orrs r6, r0 - b _080A6958 -_080A6954: - ldr r0, _080A6964 - ands r6, r0 -_080A6958: - mov r3, sb - cmp r3, #0 - beq _080A6968 - movs r0, #1 - orrs r5, r0 - b _080A696C - .align 2, 0 -_080A6964: .4byte 0x0000FFFE -_080A6968: - ldr r0, _080A6984 - ands r5, r0 -_080A696C: - movs r0, #0 - strh r6, [r7, #0x30] - strh r5, [r7, #0x32] - strh r0, [r7, #0x36] - strh r0, [r7, #0x34] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A6984: .4byte 0x0000FFFE - thumb_func_end InitAnimFastLinearTranslation - - thumb_func_start sub_080A6988 -sub_080A6988: @ 0x080A6988 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x20] - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x22] - strh r0, [r4, #0x34] - adds r0, r4, #0 - bl InitAnimFastLinearTranslation - ldr r1, _080A69AC - str r1, [r4, #0x1c] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A69AC: .4byte sub_080A6A0C - thumb_func_end sub_080A6988 - - thumb_func_start AnimFastTranslateLinear -AnimFastTranslateLinear: @ 0x080A69B0 - push {r4, r5, r6, lr} - adds r2, r0, #0 - movs r1, #0x2e - ldrsh r0, [r2, r1] - cmp r0, #0 - bne _080A69C0 - movs r0, #1 - b _080A6A04 -_080A69C0: - ldrh r1, [r2, #0x30] - ldrh r4, [r2, #0x32] - ldrh r6, [r2, #0x34] - ldrh r5, [r2, #0x36] - adds r0, r6, r1 - lsls r3, r0, #0x10 - lsrs r6, r3, #0x10 - adds r0, r5, r4 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - movs r0, #1 - ands r1, r0 - cmp r1, #0 - beq _080A69E2 - lsrs r0, r3, #0x14 - rsbs r0, r0, #0 - b _080A69E4 -_080A69E2: - lsrs r0, r3, #0x14 -_080A69E4: - strh r0, [r2, #0x24] - movs r0, #1 - ands r4, r0 - cmp r4, #0 - beq _080A69F4 - lsrs r0, r5, #4 - rsbs r0, r0, #0 - b _080A69F6 -_080A69F4: - lsrs r0, r5, #4 -_080A69F6: - strh r0, [r2, #0x26] - strh r6, [r2, #0x34] - strh r5, [r2, #0x36] - ldrh r0, [r2, #0x2e] - subs r0, #1 - strh r0, [r2, #0x2e] - movs r0, #0 -_080A6A04: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end AnimFastTranslateLinear - - thumb_func_start sub_080A6A0C -sub_080A6A0C: @ 0x080A6A0C - push {r4, lr} - adds r4, r0, #0 - bl AnimFastTranslateLinear - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A6A20 - adds r0, r4, #0 - bl SetCallbackToStoredInData6 -_080A6A20: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080A6A0C - - thumb_func_start InitAnimFastLinearTranslationWithSpeed -InitAnimFastLinearTranslationWithSpeed: @ 0x080A6A28 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r1, [r4, r0] - movs r2, #0x30 - ldrsh r0, [r4, r2] - subs r0, r1, r0 - cmp r0, #0 - bge _080A6A3C - rsbs r0, r0, #0 -_080A6A3C: - lsls r0, r0, #4 - movs r2, #0x2e - ldrsh r1, [r4, r2] - bl __divsi3 - strh r0, [r4, #0x2e] - adds r0, r4, #0 - bl InitAnimFastLinearTranslation - pop {r4} - pop {r0} - bx r0 - thumb_func_end InitAnimFastLinearTranslationWithSpeed - - thumb_func_start sub_080A6A54 -sub_080A6A54: @ 0x080A6A54 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x20] - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x22] - strh r0, [r4, #0x34] - adds r0, r4, #0 - bl InitAnimFastLinearTranslationWithSpeed - ldr r1, _080A6A78 - str r1, [r4, #0x1c] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A6A78: .4byte sub_080A6A0C - thumb_func_end sub_080A6A54 - - thumb_func_start SetSpriteRotScale -SetSpriteRotScale: @ 0x080A6A7C - push {r4, r5, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x10 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - ldr r5, _080A6AF4 - lsls r2, r2, #0x10 - lsrs r1, r1, #0x10 - orrs r1, r2 - str r1, [sp] - ldr r0, [sp, #4] - ands r0, r5 - orrs r0, r3 - str r0, [sp, #4] - bl sub_080A6B00 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A6AB8 - mov r0, sp - ldrh r0, [r0] - rsbs r0, r0, #0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, [sp] - ands r1, r5 - orrs r1, r0 - str r1, [sp] -_080A6AB8: - ldr r1, _080A6AF8 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r4, [r0, #3] - lsls r4, r4, #0x1a - lsrs r4, r4, #0x1b - add r5, sp, #8 - mov r0, sp - adds r1, r5, #0 - movs r2, #1 - movs r3, #2 - bl ObjAffineSet - ldr r0, _080A6AFC - lsls r4, r4, #3 - adds r4, r4, r0 - ldrh r0, [r5] - strh r0, [r4] - ldrh r0, [r5, #2] - strh r0, [r4, #2] - ldrh r0, [r5, #4] - strh r0, [r4, #4] - ldrh r0, [r5, #6] - strh r0, [r4, #6] - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A6AF4: .4byte 0xFFFF0000 -_080A6AF8: .4byte gUnknown_20205AC -_080A6AFC: .4byte gUnknown_2021B3C - thumb_func_end SetSpriteRotScale - - thumb_func_start sub_080A6B00 -sub_080A6B00: @ 0x080A6B00 - push {r4, lr} - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A6B30 - ldr r4, _080A6B2C - movs r0, #0 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - movs r2, #0x32 - ldrsh r0, [r1, r2] - cmp r0, #0xc9 - beq _080A6B30 - movs r0, #1 - b _080A6B32 - .align 2, 0 -_080A6B2C: .4byte gUnknown_20205AC -_080A6B30: - movs r0, #0 -_080A6B32: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_080A6B00 - - thumb_func_start PrepareBattlerSpriteForRotScale -PrepareBattlerSpriteForRotScale: @ 0x080A6B38 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - ldr r1, _080A6C04 - lsls r0, r6, #4 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r4, r0, r1 - ldrh r0, [r4, #0x2e] - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A6B6E - adds r0, r7, #0 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A6B7C -_080A6B6E: - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_080A6B7C: - ldr r1, _080A6C04 - lsls r4, r6, #4 - adds r0, r4, r6 - lsls r0, r0, #2 - adds r5, r0, r1 - movs r0, #3 - mov r1, r8 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r5, #1] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #1] - adds r2, r5, #0 - adds r2, #0x2c - ldrb r0, [r2] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2] - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A6BDA - ldrb r0, [r5, #1] - lsls r0, r0, #0x1e - cmp r0, #0 - bne _080A6BDA - ldr r0, _080A6C08 - ldr r0, [r0] - ldr r1, [r0, #4] - lsls r0, r7, #1 - adds r0, r0, r7 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #6] - movs r0, #0x1f - ands r1, r0 - lsls r1, r1, #1 - ldrb r2, [r5, #3] - movs r0, #0x3f - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #3] -_080A6BDA: - ldr r1, _080A6C04 - adds r0, r4, r6 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r3, [r0, #1] - movs r1, #3 - orrs r3, r1 - strb r3, [r0, #1] - lsrs r1, r3, #6 - ldrb r2, [r0, #3] - lsrs r2, r2, #6 - lsls r3, r3, #0x1e - lsrs r3, r3, #0x1e - bl CalcCenterToCornerVec - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A6C04: .4byte gUnknown_20205AC -_080A6C08: .4byte gUnknown_2024174 - thumb_func_end PrepareBattlerSpriteForRotScale - - thumb_func_start ResetSpriteRotScale -ResetSpriteRotScale: @ 0x080A6C0C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl SetSpriteRotScale - ldr r1, _080A6C64 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r2, [r0, #1] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #1 - orrs r1, r2 - movs r2, #0xd - rsbs r2, r2, #0 - ands r1, r2 - strb r1, [r0, #1] - adds r3, r0, #0 - adds r3, #0x2c - ldrb r2, [r3] - movs r1, #0x7f - ands r1, r2 - strb r1, [r3] - ldrb r3, [r0, #1] - lsrs r1, r3, #6 - ldrb r2, [r0, #3] - lsrs r2, r2, #6 - lsls r3, r3, #0x1e - lsrs r3, r3, #0x1e - bl CalcCenterToCornerVec - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A6C64: .4byte gUnknown_20205AC - thumb_func_end ResetSpriteRotScale - - thumb_func_start SetBattlerSpriteYOffsetFromRotation -SetBattlerSpriteYOffsetFromRotation: @ 0x080A6C68 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080A6CA0 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r2, r1, r2 - ldrb r0, [r2, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - ldr r1, _080A6CA4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #4] - movs r3, #4 - ldrsh r0, [r0, r3] - cmp r0, #0 - bge _080A6C94 - rsbs r0, r0, #0 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 -_080A6C94: - lsls r0, r1, #0x10 - asrs r0, r0, #0x13 - strh r0, [r2, #0x26] - pop {r0} - bx r0 - .align 2, 0 -_080A6CA0: .4byte gUnknown_20205AC -_080A6CA4: .4byte gUnknown_2021B3C - thumb_func_end SetBattlerSpriteYOffsetFromRotation - - thumb_func_start TrySetSpriteRotScale -TrySetSpriteRotScale: @ 0x080A6CA8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x10 - adds r4, r0, #0 - ldr r0, [sp, #0x28] - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - lsls r2, r2, #0x10 - lsrs r5, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r7, r3, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - ldrb r0, [r4, #1] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _080A6D4E - adds r0, r4, #0 - adds r0, #0x2c - ldrb r1, [r0] - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0] - cmp r6, #0 - beq _080A6CF6 - ldrb r3, [r4, #1] - lsrs r1, r3, #6 - ldrb r2, [r4, #3] - lsrs r2, r2, #6 - lsls r3, r3, #0x1e - lsrs r3, r3, #0x1e - adds r0, r4, #0 - bl CalcCenterToCornerVec -_080A6CF6: - ldr r6, _080A6D5C - lsls r0, r7, #0x10 - orrs r5, r0 - str r5, [sp] - ldr r0, [sp, #4] - ands r0, r6 - mov r1, r8 - orrs r0, r1 - str r0, [sp, #4] - bl sub_080A6B00 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A6D24 - mov r0, sp - ldrh r0, [r0] - rsbs r0, r0, #0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, [sp] - ands r1, r6 - orrs r1, r0 - str r1, [sp] -_080A6D24: - ldrb r4, [r4, #3] - lsls r4, r4, #0x1a - lsrs r4, r4, #0x1b - add r5, sp, #8 - mov r0, sp - adds r1, r5, #0 - movs r2, #1 - movs r3, #2 - bl ObjAffineSet - ldr r0, _080A6D60 - lsls r4, r4, #3 - adds r4, r4, r0 - ldrh r0, [r5] - strh r0, [r4] - ldrh r0, [r5, #2] - strh r0, [r4, #2] - ldrh r0, [r5, #4] - strh r0, [r4, #4] - ldrh r0, [r5, #6] - strh r0, [r4, #6] -_080A6D4E: - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A6D5C: .4byte 0xFFFF0000 -_080A6D60: .4byte gUnknown_2021B3C - thumb_func_end TrySetSpriteRotScale - - thumb_func_start sub_080A6D64 -sub_080A6D64: @ 0x080A6D64 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - movs r3, #0x80 - lsls r3, r3, #1 - movs r0, #0 - str r0, [sp] - adds r0, r4, #0 - movs r1, #1 - adds r2, r3, #0 - bl TrySetSpriteRotScale - adds r2, r4, #0 - adds r2, #0x2c - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - ldrb r3, [r4, #1] - lsrs r1, r3, #6 - ldrb r2, [r4, #3] - lsrs r2, r2, #6 - lsls r3, r3, #0x1e - lsrs r3, r3, #0x1e - adds r0, r4, #0 - bl CalcCenterToCornerVec - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080A6D64 - - thumb_func_start ArcTan2_ -ArcTan2_: @ 0x080A6DA4 - push {lr} - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl ArcTan2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ArcTan2_ - - thumb_func_start ArcTan2Neg -ArcTan2Neg: @ 0x080A6DBC - push {lr} - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl ArcTan2_ - lsls r0, r0, #0x10 - rsbs r0, r0, #0 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - thumb_func_end ArcTan2Neg - - thumb_func_start SetGreyscaleOrOriginalPalette -SetGreyscaleOrOriginalPalette: @ 0x080A6DD4 - push {r4, r5, r6, r7, lr} - lsls r1, r1, #0x18 - lsls r0, r0, #0x14 - lsrs r0, r0, #0x10 - cmp r1, #0 - bne _080A6E50 - ldr r2, _080A6E44 - ldr r1, _080A6E48 - lsls r0, r0, #1 - adds r4, r0, r1 - adds r5, r0, r2 - movs r6, #0xf -_080A6DEC: - ldr r0, [r5] - lsls r2, r0, #0x1b - lsrs r2, r2, #0x1b - lsls r1, r0, #0x16 - lsrs r1, r1, #0x1b - adds r2, r2, r1 - lsls r0, r0, #0x11 - lsrs r0, r0, #0x1b - adds r0, r0, r2 - movs r1, #3 - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x1f - ands r0, r1 - ldrb r1, [r4] - movs r3, #0x20 - rsbs r3, r3, #0 - adds r2, r3, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r4] - lsls r3, r0, #5 - ldrh r1, [r4] - ldr r7, _080A6E4C - adds r2, r7, #0 - ands r1, r2 - orrs r1, r3 - strh r1, [r4] - lsls r0, r0, #2 - ldrb r1, [r4, #1] - movs r3, #0x7d - rsbs r3, r3, #0 - adds r2, r3, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #1] - adds r4, #2 - adds r5, #2 - subs r6, #1 - cmp r6, #0 - bge _080A6DEC - b _080A6E60 - .align 2, 0 -_080A6E44: .4byte gUnknown_20373B4 -_080A6E48: .4byte gUnknown_20377B4 -_080A6E4C: .4byte 0xFFFFFC1F -_080A6E50: - lsls r1, r0, #1 - ldr r0, _080A6E68 - adds r0, r1, r0 - ldr r2, _080A6E6C - adds r1, r1, r2 - ldr r2, _080A6E70 - bl CpuSet -_080A6E60: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A6E68: .4byte gUnknown_20373B4 -_080A6E6C: .4byte gUnknown_20377B4 -_080A6E70: .4byte 0x04000008 - thumb_func_end SetGreyscaleOrOriginalPalette - - thumb_func_start sub_080A6E74 -sub_080A6E74: @ 0x080A6E74 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - ldr r4, [sp, #0x28] - ldr r5, [sp, #0x2c] - ldr r6, [sp, #0x30] - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r8, r2 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov sb, r3 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov sl, r4 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - str r5, [sp] - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - str r6, [sp, #4] - movs r4, #0 - cmp r0, #0 - beq _080A6ECA - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A6EBE - movs r4, #0xe - b _080A6ECA -_080A6EBE: - bl sub_080A665C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r4, #1 - lsls r4, r0 -_080A6ECA: - cmp r7, #0 - beq _080A6EDC - ldr r0, _080A6F54 - ldrb r0, [r0] - adds r1, r0, #0 - adds r1, #0x10 - movs r0, #1 - lsls r0, r1 - orrs r4, r0 -_080A6EDC: - mov r0, r8 - cmp r0, #0 - beq _080A6EF0 - ldr r0, _080A6F58 - ldrb r0, [r0] - adds r1, r0, #0 - adds r1, #0x10 - movs r0, #1 - lsls r0, r1 - orrs r4, r0 -_080A6EF0: - mov r0, sb - cmp r0, #0 - beq _080A6F16 - ldr r6, _080A6F54 - ldrb r0, [r6] - movs r5, #2 - eors r0, r5 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A6F16 - ldrb r0, [r6] - eors r0, r5 - adds r1, r0, #0 - adds r1, #0x10 - movs r0, #1 - lsls r0, r1 - orrs r4, r0 -_080A6F16: - mov r0, sl - cmp r0, #0 - beq _080A6F3C - ldr r6, _080A6F58 - ldrb r0, [r6] - movs r5, #2 - eors r0, r5 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A6F3C - ldrb r0, [r6] - eors r0, r5 - adds r1, r0, #0 - adds r1, #0x10 - movs r0, #1 - lsls r0, r1 - orrs r4, r0 -_080A6F3C: - ldr r0, [sp] - cmp r0, #0 - beq _080A6F62 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A6F5C - movs r0, #0x80 - lsls r0, r0, #1 - b _080A6F60 - .align 2, 0 -_080A6F54: .4byte gUnknown_20380D6 -_080A6F58: .4byte gUnknown_20380D7 -_080A6F5C: - movs r0, #0x80 - lsls r0, r0, #7 -_080A6F60: - orrs r4, r0 -_080A6F62: - ldr r0, [sp, #4] - cmp r0, #0 - beq _080A6F78 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A6F78 - movs r0, #0x80 - lsls r0, r0, #2 - orrs r4, r0 -_080A6F78: - adds r0, r4, #0 - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080A6E74 - - thumb_func_start sub_080A6F8C -sub_080A6F8C: @ 0x080A6F8C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r8, r3 - movs r4, #0 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A6FBA - cmp r5, #0 - beq _080A7068 - movs r4, #0x80 - lsls r4, r4, #0xb - b _080A7068 -_080A6FBA: - cmp r5, #0 - beq _080A6FE2 - movs r0, #0 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A6FE2 - movs r0, #0 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #0x10 - movs r4, #1 - lsls r4, r0 -_080A6FE2: - cmp r6, #0 - beq _080A700E - movs r0, #2 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A700E - movs r0, #2 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - adds r1, #0x10 - movs r0, #1 - lsls r0, r1 - orrs r4, r0 -_080A700E: - cmp r7, #0 - beq _080A703A - movs r0, #1 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A703A - movs r0, #1 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - adds r1, #0x10 - movs r0, #1 - lsls r0, r1 - orrs r4, r0 -_080A703A: - mov r0, r8 - cmp r0, #0 - beq _080A7068 - movs r0, #3 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A7068 - movs r0, #3 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - adds r1, #0x10 - movs r0, #1 - lsls r0, r1 - orrs r4, r0 -_080A7068: - adds r0, r4, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_080A6F8C - - thumb_func_start sub_080A7074 -sub_080A7074: @ 0x080A7074 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bx lr - .align 2, 0 - thumb_func_end sub_080A7074 - - thumb_func_start GetBattlerAtPosition_ -GetBattlerAtPosition_: @ 0x080A707C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetBattlerAtPosition_ - - thumb_func_start sub_080A7090 -sub_080A7090: @ 0x080A7090 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080A70CE - ldr r2, _080A70BC - movs r3, #6 - ldrsh r0, [r2, r3] - movs r1, #0 - cmp r0, #0 - bne _080A70AA - movs r1, #1 -_080A70AA: - movs r3, #4 - ldrsh r0, [r2, r3] - cmp r0, #0 - bne _080A70C0 - adds r0, r4, #0 - bl InitSpritePosToAnimAttacker - b _080A70C6 - .align 2, 0 -_080A70BC: .4byte gUnknown_20380BE -_080A70C0: - adds r0, r4, #0 - bl InitSpritePosToAnimTarget -_080A70C6: - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - b _080A70E2 -_080A70CE: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x30 - ands r0, r1 - cmp r0, #0 - beq _080A70E2 - adds r0, r4, #0 - bl DestroySpriteAndMatrix -_080A70E2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080A7090 - - thumb_func_start TranslateAnimSpriteToTargetMonLocation -TranslateAnimSpriteToTargetMonLocation: @ 0x080A70E8 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldr r6, _080A7160 - movs r1, #0xa - ldrsh r0, [r6, r1] - movs r1, #0xff - lsls r1, r1, #8 - ands r0, r1 - movs r1, #0 - cmp r0, #0 - bne _080A7100 - movs r1, #1 -_080A7100: - ldrb r0, [r6, #0xa] - movs r7, #1 - cmp r0, #0 - bne _080A710A - movs r7, #3 -_080A710A: - adds r0, r5, #0 - bl InitSpritePosToAnimAttacker - ldr r0, _080A7164 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A7124 - ldrh r0, [r6, #4] - rsbs r0, r0, #0 - strh r0, [r6, #4] -_080A7124: - ldrh r0, [r6, #8] - strh r0, [r5, #0x2e] - ldr r4, _080A7168 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r6, #4] - adds r0, r0, r1 - strh r0, [r5, #0x32] - ldrb r0, [r4] - adds r1, r7, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r6, [r6, #6] - adds r0, r0, r6 - strh r0, [r5, #0x36] - ldr r0, _080A716C - str r0, [r5, #0x1c] - ldr r1, _080A7170 - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A7160: .4byte gUnknown_20380BE -_080A7164: .4byte gUnknown_20380D6 -_080A7168: .4byte gUnknown_20380D7 -_080A716C: .4byte sub_080A67B4 -_080A7170: .4byte DestroyAnimSprite - thumb_func_end TranslateAnimSpriteToTargetMonLocation - - thumb_func_start sub_080A7174 -sub_080A7174: @ 0x080A7174 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldr r0, _080A71D4 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A7194 - ldr r1, _080A71D8 - ldrh r0, [r1, #4] - rsbs r0, r0, #0 - strh r0, [r1, #4] -_080A7194: - ldr r4, _080A71D8 - ldrh r0, [r4, #8] - strh r0, [r6, #0x2e] - ldr r5, _080A71DC - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #4] - adds r0, r0, r1 - strh r0, [r6, #0x32] - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #6] - adds r0, r0, r1 - strh r0, [r6, #0x36] - ldrh r0, [r4, #0xa] - strh r0, [r6, #0x38] - adds r0, r6, #0 - bl InitAnimArcTranslation - ldr r0, _080A71E0 - str r0, [r6, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080A71D4: .4byte gUnknown_20380D6 -_080A71D8: .4byte gUnknown_20380BE -_080A71DC: .4byte gUnknown_20380D7 -_080A71E0: .4byte sub_080A71E4 - thumb_func_end sub_080A7174 - - thumb_func_start sub_080A71E4 -sub_080A71E4: @ 0x080A71E4 - push {r4, lr} - adds r4, r0, #0 - bl TranslateAnimHorizontalArc - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A71F8 - adds r0, r4, #0 - bl DestroyAnimSprite -_080A71F8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080A71E4 - - thumb_func_start sub_080A7200 -sub_080A7200: @ 0x080A7200 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldr r0, _080A7214 - movs r2, #0xc - ldrsh r1, [r0, r2] - cmp r1, #0 - bne _080A7218 - movs r4, #1 - movs r7, #3 - b _080A721C - .align 2, 0 -_080A7214: .4byte gUnknown_20380BE -_080A7218: - movs r4, #0 - movs r7, #1 -_080A721C: - movs r1, #0xa - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _080A7234 - adds r0, r5, #0 - adds r1, r4, #0 - bl InitSpritePosToAnimAttacker - ldr r0, _080A7230 - b _080A723E - .align 2, 0 -_080A7230: .4byte gUnknown_20380D6 -_080A7234: - adds r0, r5, #0 - adds r1, r4, #0 - bl InitSpritePosToAnimTarget - ldr r0, _080A729C -_080A723E: - ldrb r6, [r0] - ldr r0, _080A72A0 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A7256 - ldr r1, _080A72A4 - ldrh r0, [r1, #4] - rsbs r0, r0, #0 - strh r0, [r1, #4] -_080A7256: - adds r0, r5, #0 - adds r1, r4, #0 - bl InitSpritePosToAnimTarget - ldr r4, _080A72A4 - ldrh r0, [r4, #8] - strh r0, [r5, #0x2e] - adds r0, r6, #0 - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r2, [r4, #4] - adds r0, r0, r2 - strh r0, [r5, #0x32] - adds r0, r6, #0 - adds r1, r7, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r4, [r4, #6] - adds r0, r0, r4 - strh r0, [r5, #0x36] - ldr r0, _080A72A8 - str r0, [r5, #0x1c] - ldr r1, _080A72AC - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A729C: .4byte gUnknown_20380D7 -_080A72A0: .4byte gUnknown_20380D6 -_080A72A4: .4byte gUnknown_20380BE -_080A72A8: .4byte sub_080A67B4 -_080A72AC: .4byte DestroyAnimSprite - thumb_func_end sub_080A7200 - - thumb_func_start CloneBattlerSpriteWithBlend -CloneBattlerSpriteWithBlend: @ 0x080A72B0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xff - beq _080A731A - movs r6, #0 - ldr r2, _080A730C - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r1, r0, #2 -_080A72CC: - lsls r0, r6, #4 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r4, r0, r2 - adds r5, r4, #0 - adds r5, #0x3e - ldrb r0, [r5] - lsls r0, r0, #0x1f - cmp r0, #0 - bne _080A7310 - adds r0, r4, #0 - adds r1, r1, r2 - movs r2, #0x44 - bl memcpy - ldrb r1, [r4, #1] - movs r2, #0xd - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r1, r0 - movs r0, #4 - orrs r1, r0 - strb r1, [r4, #1] - ldrb r0, [r5] - adds r2, #8 - adds r1, r2, #0 - ands r0, r1 - strb r0, [r5] - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - b _080A731E - .align 2, 0 -_080A730C: .4byte gUnknown_20205AC -_080A7310: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0x3f - bls _080A72CC -_080A731A: - movs r0, #1 - rsbs r0, r0, #0 -_080A731E: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end CloneBattlerSpriteWithBlend - - thumb_func_start obj_delete_but_dont_free_vram -obj_delete_but_dont_free_vram: @ 0x080A7324 - push {lr} - adds r3, r0, #0 - adds r3, #0x3f - ldrb r1, [r3] - movs r2, #0x40 - orrs r1, r2 - strb r1, [r3] - bl DestroySprite - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end obj_delete_but_dont_free_vram - - thumb_func_start sub_080A733C -sub_080A733C: @ 0x080A733C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r6, #0 - movs r3, #0 - ldr r2, _080A73B4 - movs r0, #4 - ldrsh r1, [r2, r0] - movs r4, #0 - ldrsh r0, [r2, r4] - cmp r1, r0 - ble _080A7356 - movs r3, #1 -_080A7356: - cmp r1, r0 - bge _080A735C - ldr r3, _080A73B8 -_080A735C: - movs r0, #6 - ldrsh r1, [r2, r0] - movs r4, #2 - ldrsh r0, [r2, r4] - cmp r1, r0 - ble _080A736A - movs r6, #1 -_080A736A: - cmp r1, r0 - bge _080A7370 - ldr r6, _080A73B8 -_080A7370: - ldr r0, _080A73BC - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - adds r4, r4, r0 - movs r1, #0 - strh r1, [r4, #8] - ldrh r0, [r2, #8] - strh r0, [r4, #0xa] - strh r1, [r4, #0xc] - ldrh r0, [r2] - strh r0, [r4, #0xe] - ldrh r0, [r2, #2] - strh r0, [r4, #0x10] - strh r3, [r4, #0x12] - strh r6, [r4, #0x14] - ldrh r0, [r2, #4] - strh r0, [r4, #0x16] - ldrh r0, [r2, #6] - strh r0, [r4, #0x18] - ldrh r1, [r2, #2] - lsls r1, r1, #8 - ldrh r0, [r2] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - ldr r0, _080A73C0 - str r0, [r4] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080A73B4: .4byte gUnknown_20380BE -_080A73B8: .4byte 0x0000FFFF -_080A73BC: .4byte gUnknown_3005B60 -_080A73C0: .4byte sub_080A73C4 - thumb_func_end sub_080A733C - - thumb_func_start sub_080A73C4 -sub_080A73C4: @ 0x080A73C4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080A7410 - adds r4, r0, r1 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0xa - ldrsh r1, [r4, r2] - cmp r0, r1 - ble _080A7458 - movs r0, #0 - strh r0, [r4, #8] - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _080A7414 - ldrh r2, [r4, #0xe] - movs r3, #0xe - ldrsh r1, [r4, r3] - movs r3, #0x16 - ldrsh r0, [r4, r3] - cmp r1, r0 - beq _080A7428 - ldrh r0, [r4, #0x12] - adds r0, r2, r0 - strh r0, [r4, #0xe] - b _080A7428 - .align 2, 0 -_080A7410: .4byte gUnknown_3005B60 -_080A7414: - ldrh r2, [r4, #0x10] - movs r0, #0x10 - ldrsh r1, [r4, r0] - movs r3, #0x18 - ldrsh r0, [r4, r3] - cmp r1, r0 - beq _080A7428 - ldrh r0, [r4, #0x14] - adds r0, r2, r0 - strh r0, [r4, #0x10] -_080A7428: - ldrh r1, [r4, #0x10] - lsls r1, r1, #8 - ldrh r0, [r4, #0xe] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r0, #0xe - ldrsh r1, [r4, r0] - movs r2, #0x16 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080A7458 - movs r3, #0x10 - ldrsh r1, [r4, r3] - movs r2, #0x18 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080A7458 - adds r0, r5, #0 - bl DestroyAnimVisualTask -_080A7458: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080A73C4 - - thumb_func_start AnimTask_BlendMonInAndOut -AnimTask_BlendMonInAndOut: @ 0x080A7460 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080A7480 - ldrb r0, [r0] - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0xff - bne _080A7484 - adds r0, r4, #0 - bl DestroyAnimVisualTask - b _080A74AA - .align 2, 0 -_080A7480: .4byte gUnknown_20380BE -_080A7484: - ldr r1, _080A74B0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r2, _080A74B4 - lsls r1, r3, #4 - adds r1, r1, r3 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r1, [r1, #5] - lsrs r1, r1, #4 - lsls r1, r1, #4 - ldr r3, _080A74B8 - adds r2, r3, #0 - adds r1, r1, r2 - strh r1, [r0, #8] - bl AnimTask_BlendMonInAndOutSetup -_080A74AA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A74B0: .4byte gUnknown_3005B60 -_080A74B4: .4byte gUnknown_20205AC -_080A74B8: .4byte 0x00000101 - thumb_func_end AnimTask_BlendMonInAndOut - - thumb_func_start AnimTask_BlendMonInAndOutSetup -AnimTask_BlendMonInAndOutSetup: @ 0x080A74BC - ldr r3, _080A74DC - ldrh r1, [r3, #2] - movs r2, #0 - strh r1, [r0, #0xa] - strh r2, [r0, #0xc] - ldrh r1, [r3, #4] - strh r1, [r0, #0xe] - strh r2, [r0, #0x10] - ldrh r1, [r3, #6] - strh r1, [r0, #0x12] - strh r2, [r0, #0x14] - ldrh r1, [r3, #8] - strh r1, [r0, #0x16] - ldr r1, _080A74E0 - str r1, [r0] - bx lr - .align 2, 0 -_080A74DC: .4byte gUnknown_20380BE -_080A74E0: .4byte AnimTask_BlendMonInAndOutStep - thumb_func_end AnimTask_BlendMonInAndOutSetup - - thumb_func_start AnimTask_BlendMonInAndOutStep -AnimTask_BlendMonInAndOutStep: @ 0x080A74E4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080A753C - adds r4, r0, r1 - ldrh r0, [r4, #0x10] - adds r0, #1 - strh r0, [r4, #0x10] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x12 - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _080A7574 - movs r0, #0 - strh r0, [r4, #0x10] - movs r1, #0x14 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080A7540 - ldrh r2, [r4, #0xc] - adds r2, #1 - strh r2, [r4, #0xc] - ldrh r0, [r4, #8] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrh r3, [r4, #0xa] - movs r1, #0xf - bl BlendPalette - movs r2, #0xc - ldrsh r1, [r4, r2] - movs r2, #0xe - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080A7574 - movs r0, #1 - strh r0, [r4, #0x14] - b _080A7574 - .align 2, 0 -_080A753C: .4byte gUnknown_3005B60 -_080A7540: - ldrh r2, [r4, #0xc] - subs r2, #1 - strh r2, [r4, #0xc] - ldrh r0, [r4, #8] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrh r3, [r4, #0xa] - movs r1, #0xf - bl BlendPalette - movs r0, #0xc - ldrsh r1, [r4, r0] - cmp r1, #0 - bne _080A7574 - ldrh r0, [r4, #0x16] - subs r0, #1 - strh r0, [r4, #0x16] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080A756E - strh r1, [r4, #0x10] - strh r1, [r4, #0x14] - b _080A7574 -_080A756E: - adds r0, r5, #0 - bl DestroyAnimVisualTask -_080A7574: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AnimTask_BlendMonInAndOutStep - - thumb_func_start sub_080A757C -sub_080A757C: @ 0x080A757C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080A759C - ldrh r0, [r0] - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xff - bne _080A75A0 - adds r0, r4, #0 - bl DestroyAnimVisualTask - b _080A75B6 - .align 2, 0 -_080A759C: .4byte gUnknown_20380BE -_080A75A0: - ldr r1, _080A75BC - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - lsls r1, r2, #4 - ldr r2, _080A75C0 - adds r1, r1, r2 - strh r1, [r0, #8] - bl AnimTask_BlendMonInAndOutSetup -_080A75B6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A75BC: .4byte gUnknown_3005B60 -_080A75C0: .4byte 0x00000101 - thumb_func_end sub_080A757C - - thumb_func_start PrepareAffineAnimInTaskData -PrepareAffineAnimInTaskData: @ 0x080A75C4 - push {r4, lr} - adds r3, r0, #0 - adds r4, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r1, #0 - strh r1, [r3, #0x16] - strh r1, [r3, #0x18] - strh r1, [r3, #0x1a] - strh r4, [r3, #0x26] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r3, #0x1c] - strh r0, [r3, #0x1e] - strh r1, [r3, #0x20] - adds r0, r3, #0 - adds r0, #0x22 - adds r3, #0x24 - adds r1, r3, #0 - bl StorePointerInVars - adds r0, r4, #0 - movs r1, #0 - bl PrepareBattlerSpriteForRotScale - pop {r4} - pop {r0} - bx r0 - thumb_func_end PrepareAffineAnimInTaskData - - thumb_func_start RunAffineAnimFromTaskData -RunAffineAnimFromTaskData: @ 0x080A75FC - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r5, _080A769C - movs r1, #0x22 - ldrsh r0, [r4, r1] - movs r2, #0x24 - ldrsh r1, [r4, r2] - bl LoadPointerFromVars - movs r3, #0x16 - ldrsh r1, [r4, r3] - lsls r1, r1, #3 - adds r1, r0, r1 - str r1, [r5] - movs r6, #0 - ldrsh r2, [r1, r6] - ldr r0, _080A76A0 - cmp r2, r0 - beq _080A76A4 - cmp r2, r0 - bgt _080A7704 - subs r0, #1 - cmp r2, r0 - beq _080A76AA - ldrb r0, [r1, #5] - cmp r0, #0 - bne _080A764A - ldrh r0, [r1] - strh r0, [r4, #0x1c] - ldrh r0, [r1, #2] - strh r0, [r4, #0x1e] - ldrb r0, [r1, #4] - strh r0, [r4, #0x20] - ldrh r0, [r4, #0x16] - adds r0, #1 - strh r0, [r4, #0x16] - adds r0, r1, #0 - adds r0, #8 - str r0, [r5] -_080A764A: - ldr r1, [r5] - ldrh r0, [r1] - ldrh r2, [r4, #0x1c] - adds r0, r0, r2 - strh r0, [r4, #0x1c] - ldrh r0, [r1, #2] - ldrh r3, [r4, #0x1e] - adds r0, r0, r3 - strh r0, [r4, #0x1e] - ldrh r0, [r4, #0x20] - ldrb r1, [r1, #4] - adds r0, r0, r1 - strh r0, [r4, #0x20] - ldrh r0, [r4, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r6, #0x1c - ldrsh r1, [r4, r6] - movs r3, #0x1e - ldrsh r2, [r4, r3] - ldrh r3, [r4, #0x20] - bl SetSpriteRotScale - ldrh r0, [r4, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl SetBattlerSpriteYOffsetFromYScale - ldrh r0, [r4, #0x18] - adds r0, #1 - strh r0, [r4, #0x18] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldr r1, [r5] - ldrb r1, [r1, #5] - cmp r0, r1 - blt _080A772A - movs r0, #0 - strh r0, [r4, #0x18] - b _080A76FC - .align 2, 0 -_080A769C: .4byte gUnknown_20380E4 -_080A76A0: .4byte 0x00007FFE -_080A76A4: - ldrh r0, [r1, #2] - strh r0, [r4, #0x16] - b _080A772A -_080A76AA: - ldrh r2, [r1, #2] - movs r6, #2 - ldrsh r0, [r1, r6] - cmp r0, #0 - beq _080A76FC - ldrh r1, [r4, #0x1a] - movs r3, #0x1a - ldrsh r0, [r4, r3] - cmp r0, #0 - beq _080A76CA - subs r0, r1, #1 - strh r0, [r4, #0x1a] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080A76CC - b _080A76FC -_080A76CA: - strh r2, [r4, #0x1a] -_080A76CC: - movs r6, #0x16 - ldrsh r0, [r4, r6] - cmp r0, #0 - beq _080A772A - ldr r3, _080A76F4 - ldr r5, _080A76F8 -_080A76D8: - ldrh r2, [r4, #0x16] - subs r1, r2, #1 - strh r1, [r4, #0x16] - ldr r0, [r3] - subs r0, #8 - str r0, [r3] - movs r6, #0 - ldrsh r0, [r0, r6] - cmp r0, r5 - beq _080A7728 - lsls r0, r1, #0x10 - cmp r0, #0 - bne _080A76D8 - b _080A772A - .align 2, 0 -_080A76F4: .4byte gUnknown_20380E4 -_080A76F8: .4byte 0x00007FFD -_080A76FC: - ldrh r0, [r4, #0x16] - adds r0, #1 - strh r0, [r4, #0x16] - b _080A772A -_080A7704: - ldr r2, _080A7724 - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0 - strh r1, [r0, #0x26] - ldrh r0, [r4, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl ResetSpriteRotScale - movs r0, #0 - b _080A772C - .align 2, 0 -_080A7724: .4byte gUnknown_20205AC -_080A7728: - strh r2, [r4, #0x16] -_080A772A: - movs r0, #1 -_080A772C: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end RunAffineAnimFromTaskData - - thumb_func_start SetBattlerSpriteYOffsetFromYScale -SetBattlerSpriteYOffsetFromYScale: @ 0x080A7734 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl GetBattlerYDeltaFromSpriteId - lsls r0, r0, #0x10 - lsrs r0, r0, #0xf - movs r1, #0x40 - subs r5, r1, r0 - ldr r1, _080A7780 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r4, r0, r1 - ldrb r1, [r4, #3] - lsls r1, r1, #0x1a - lsrs r1, r1, #0x1b - lsls r0, r5, #8 - ldr r2, _080A7784 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r2, #6 - ldrsh r1, [r1, r2] - bl __divsi3 - cmp r0, #0x80 - ble _080A7770 - movs r0, #0x80 -_080A7770: - subs r0, r5, r0 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - strh r0, [r4, #0x26] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A7780: .4byte gUnknown_20205AC -_080A7784: .4byte gUnknown_2021B3C - thumb_func_end SetBattlerSpriteYOffsetFromYScale - - thumb_func_start SetBattlerSpriteYOffsetFromOtherYScale -SetBattlerSpriteYOffsetFromOtherYScale: @ 0x080A7788 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerYDeltaFromSpriteId - lsls r0, r0, #0x10 - lsrs r0, r0, #0xf - movs r1, #0x40 - subs r5, r1, r0 - ldr r1, _080A77D8 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r4, r0, r1 - ldrb r1, [r4, #3] - lsls r1, r1, #0x1a - lsrs r1, r1, #0x1b - lsls r0, r5, #8 - ldr r2, _080A77DC - lsls r1, r1, #3 - adds r1, r1, r2 - movs r2, #6 - ldrsh r1, [r1, r2] - bl __divsi3 - cmp r0, #0x80 - ble _080A77C8 - movs r0, #0x80 -_080A77C8: - subs r0, r5, r0 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - strh r0, [r4, #0x26] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A77D8: .4byte gUnknown_20205AC -_080A77DC: .4byte gUnknown_2021B3C - thumb_func_end SetBattlerSpriteYOffsetFromOtherYScale - - thumb_func_start GetBattlerYDeltaFromSpriteId -GetBattlerYDeltaFromSpriteId: @ 0x080A77E0 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _080A7828 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0, #0x2e] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r4, #0 - ldr r1, _080A782C - ldr r7, _080A7830 - ldr r0, _080A7834 - adds r6, r5, r0 -_080A7800: - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, r2 - beq _080A780A - b _080A78FC -_080A780A: - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A7840 - ldr r0, _080A7838 - ldr r0, [r0] - ldr r0, [r0, #0x18] - ldrh r2, [r0] - ldr r1, _080A783C - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r0, [r0, #1] - b _080A790A - .align 2, 0 -_080A7828: .4byte gUnknown_20205AC -_080A782C: .4byte gUnknown_2023E88 -_080A7830: .4byte 0x00000181 -_080A7834: .4byte gUnknown_2024188 -_080A7838: .4byte gUnknown_2039BD4 -_080A783C: .4byte gUnknown_82D5A68 -_080A7840: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A78A0 - ldr r0, _080A787C - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r5, #2 - adds r1, r0, r1 - ldrh r0, [r1, #2] - cmp r0, #0 - bne _080A7888 - ldr r1, _080A7880 - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080A7884 - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - b _080A788A - .align 2, 0 -_080A787C: .4byte gUnknown_2024174 -_080A7880: .4byte gUnknown_2023D12 -_080A7884: .4byte gUnknown_2024190 -_080A7888: - ldrh r2, [r1, #2] -_080A788A: - cmp r2, r7 - bne _080A7898 - ldr r0, _080A7894 - b _080A78E0 - .align 2, 0 -_080A7894: .4byte gUnknown_84FE698 -_080A7898: - ldr r0, _080A789C - b _080A78EE - .align 2, 0 -_080A789C: .4byte gUnknown_82D5A68 -_080A78A0: - ldr r0, _080A78CC - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r5, #2 - adds r1, r0, r1 - ldrh r0, [r1, #2] - cmp r0, #0 - bne _080A78D8 - ldr r1, _080A78D0 - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080A78D4 - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - b _080A78DA - .align 2, 0 -_080A78CC: .4byte gUnknown_2024174 -_080A78D0: .4byte gUnknown_2023D12 -_080A78D4: .4byte gUnknown_20243E8 -_080A78D8: - ldrh r2, [r1, #2] -_080A78DA: - cmp r2, r7 - bne _080A78EC - ldr r0, _080A78E8 -_080A78E0: - ldrb r1, [r6] - adds r1, r1, r0 - ldrb r0, [r1] - b _080A790A - .align 2, 0 -_080A78E8: .4byte gUnknown_84FE694 -_080A78EC: - ldr r0, _080A78F8 -_080A78EE: - lsls r1, r2, #2 - adds r1, r1, r0 - ldrb r0, [r1, #1] - b _080A790A - .align 2, 0 -_080A78F8: .4byte gUnknown_82D45C8 -_080A78FC: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #3 - bhi _080A7908 - b _080A7800 -_080A7908: - movs r0, #0x40 -_080A790A: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end GetBattlerYDeltaFromSpriteId - - thumb_func_start StorePointerInVars -StorePointerInVars: @ 0x080A7910 - strh r2, [r0] - asrs r2, r2, #0x10 - strh r2, [r1] - bx lr - thumb_func_end StorePointerInVars - - thumb_func_start LoadPointerFromVars -LoadPointerFromVars: @ 0x080A7918 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r1, #0x10 - orrs r0, r1 - bx lr - .align 2, 0 - thumb_func_end LoadPointerFromVars - - thumb_func_start sub_080A7924 -sub_080A7924: @ 0x080A7924 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - mov r8, r0 - adds r5, r3, #0 - ldr r0, [sp, #0x14] - ldr r4, [sp, #0x18] - ldr r6, [sp, #0x1c] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - mov r3, r8 - strh r6, [r3, #0x18] - strh r1, [r3, #0x26] - strh r2, [r3, #0x1a] - strh r5, [r3, #0x1c] - strh r0, [r3, #0x22] - strh r4, [r3, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - subs r0, r0, r2 - adds r1, r6, #0 - bl __divsi3 - mov r1, r8 - strh r0, [r1, #0x1e] - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - subs r4, r4, r5 - adds r0, r4, #0 - adds r1, r6, #0 - bl __divsi3 - mov r3, r8 - strh r0, [r3, #0x20] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080A7924 - - thumb_func_start sub_080A7990 -sub_080A7990: @ 0x080A7990 - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x18] - movs r2, #0x18 - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _080A79A2 - movs r0, #0 - b _080A79FE -_080A79A2: - subs r0, r1, #1 - strh r0, [r4, #0x18] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080A79BC - ldrh r0, [r4, #0x1e] - ldrh r3, [r4, #0x1a] - adds r0, r0, r3 - strh r0, [r4, #0x1a] - ldrh r0, [r4, #0x20] - ldrh r1, [r4, #0x1c] - adds r0, r0, r1 - b _080A79C2 -_080A79BC: - ldrh r0, [r4, #0x22] - strh r0, [r4, #0x1a] - ldrh r0, [r4, #0x24] -_080A79C2: - strh r0, [r4, #0x1c] - ldrh r0, [r4, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0x1a - ldrsh r1, [r4, r2] - movs r3, #0x1c - ldrsh r2, [r4, r3] - movs r3, #0 - bl SetSpriteRotScale - movs r0, #0x18 - ldrsh r3, [r4, r0] - cmp r3, #0 - beq _080A79EC - ldrh r0, [r4, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl SetBattlerSpriteYOffsetFromYScale - b _080A79FC -_080A79EC: - ldr r2, _080A7A04 - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r3, [r0, #0x26] -_080A79FC: - ldrb r0, [r4, #0x18] -_080A79FE: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080A7A04: .4byte gUnknown_20205AC - thumb_func_end sub_080A7990 - - thumb_func_start AnimTask_GetFrustrationPowerLevel -AnimTask_GetFrustrationPowerLevel: @ 0x080A7A08 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _080A7A34 - ldrb r0, [r0] - movs r1, #0 - cmp r0, #0x1e - bls _080A7A26 - movs r1, #1 - cmp r0, #0x64 - bls _080A7A26 - movs r1, #3 - cmp r0, #0xc8 - bhi _080A7A26 - movs r1, #2 -_080A7A26: - ldr r0, _080A7A38 - strh r1, [r0, #0xe] - adds r0, r2, #0 - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_080A7A34: .4byte gUnknown_20380BA -_080A7A38: .4byte gUnknown_20380BE - thumb_func_end AnimTask_GetFrustrationPowerLevel - - thumb_func_start sub_080A7A3C -sub_080A7A3C: @ 0x080A7A3C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r7, r4, #0 - ldr r6, _080A7B30 - ldrb r0, [r6] - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A7A7C - ldr r2, _080A7B34 - ldr r1, _080A7B38 - ldrb r0, [r6] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #3 - adds r2, r4, #0 - ands r2, r0 - lsls r2, r2, #2 - ldrb r3, [r1, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, #5] -_080A7A7C: - ldr r0, _080A7B3C - mov r8, r0 - ldrb r0, [r0] - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A7AB4 - ldr r2, _080A7B34 - ldr r1, _080A7B38 - mov r3, r8 - ldrb r0, [r3] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #3 - adds r2, r4, #0 - ands r2, r0 - lsls r2, r2, #2 - ldrb r3, [r1, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, #5] -_080A7AB4: - ldrb r0, [r6] - movs r5, #2 - eors r0, r5 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A7AEC - ldr r2, _080A7B34 - ldr r1, _080A7B38 - ldrb r0, [r6] - eors r0, r5 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #3 - adds r2, r4, #0 - ands r2, r0 - lsls r2, r2, #2 - ldrb r3, [r1, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, #5] -_080A7AEC: - mov r1, r8 - ldrb r0, [r1] - eors r0, r5 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A7B24 - ldr r2, _080A7B34 - ldr r1, _080A7B38 - mov r3, r8 - ldrb r0, [r3] - eors r0, r5 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #3 - ands r7, r0 - lsls r3, r7, #2 - ldrb r2, [r1, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #5] -_080A7B24: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A7B30: .4byte gUnknown_20380D7 -_080A7B34: .4byte gUnknown_20205AC -_080A7B38: .4byte gUnknown_2023E88 -_080A7B3C: .4byte gUnknown_20380D6 - thumb_func_end sub_080A7A3C - - thumb_func_start sub_080A7B40 -sub_080A7B40: @ 0x080A7B40 - push {r4, r5, r6, lr} - movs r5, #0 - ldr r0, _080A7BA0 - ldrb r0, [r0] - cmp r5, r0 - bge _080A7B9A - ldr r6, _080A7BA4 -_080A7B4E: - lsls r0, r5, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A7B90 - adds r0, r4, #0 - bl GetBattlerSpriteSubpriority - ldr r3, _080A7BA8 - adds r3, r5, r3 - ldrb r2, [r3] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r6 - adds r1, #0x43 - strb r0, [r1] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r2, [r0, #5] - movs r3, #0xd - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r2, r1 - movs r1, #8 - orrs r2, r1 - strb r2, [r0, #5] -_080A7B90: - adds r5, #1 - ldr r0, _080A7BA0 - ldrb r0, [r0] - cmp r5, r0 - blt _080A7B4E -_080A7B9A: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080A7BA0: .4byte gUnknown_2023D10 -_080A7BA4: .4byte gUnknown_20205AC -_080A7BA8: .4byte gUnknown_2023E88 - thumb_func_end sub_080A7B40 - - thumb_func_start GetBattlerSpriteSubpriority -GetBattlerSpriteSubpriority: @ 0x080A7BAC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A7BC8 - cmp r4, #2 - bne _080A7BC4 - movs r0, #0x1e - b _080A7BE8 -_080A7BC4: - movs r0, #0x28 - b _080A7BE8 -_080A7BC8: - adds r0, r4, #0 - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x1e - cmp r0, #0 - beq _080A7BE6 - movs r1, #0x14 - cmp r0, #2 - beq _080A7BE6 - movs r1, #0x32 - cmp r0, #1 - bne _080A7BE6 - movs r1, #0x28 -_080A7BE6: - adds r0, r1, #0 -_080A7BE8: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetBattlerSpriteSubpriority - - thumb_func_start GetBattlerSpriteBGPriority -GetBattlerSpriteBGPriority: @ 0x080A7BF0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A7C0C - movs r0, #2 - b _080A7C24 -_080A7C0C: - cmp r4, #0 - beq _080A7C14 - cmp r4, #3 - bne _080A7C18 -_080A7C14: - movs r0, #2 - b _080A7C1A -_080A7C18: - movs r0, #1 -_080A7C1A: - movs r1, #4 - bl GetAnimBgAttribute - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_080A7C24: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetBattlerSpriteBGPriority - - thumb_func_start GetBattlerSpriteBGPriorityRank -GetBattlerSpriteBGPriorityRank: @ 0x080A7C2C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A7C52 - adds r0, r4, #0 - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _080A7C4E - cmp r0, #3 - bne _080A7C52 -_080A7C4E: - movs r0, #2 - b _080A7C54 -_080A7C52: - movs r0, #1 -_080A7C54: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetBattlerSpriteBGPriorityRank - - thumb_func_start sub_080A7C5C -sub_080A7C5C: @ 0x080A7C5C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - ldr r4, [sp, #0x30] - ldr r5, [sp, #0x34] - ldr r6, [sp, #0x38] - mov r8, r6 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sb, r1 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - mov sl, r3 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - str r4, [sp, #4] - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - str r5, [sp, #8] - lsls r0, r7, #3 - ldr r1, _080A7D3C - adds r0, r0, r1 - bl LoadSpriteSheet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0xc] - ldr r1, _080A7D40 - lsls r0, r7, #1 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r0, [r0, #2] - bl AllocSpritePalette - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r4, _080A7D44 - ldr r0, [r4] - cmp r0, #0 - beq _080A7CDA - movs r1, #0xbe - lsls r1, r1, #1 - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #0 - bne _080A7CDA - movs r0, #0x80 - lsls r0, r0, #6 - bl AllocZeroed - ldr r1, [r4] - movs r2, #0xbe - lsls r2, r2, #1 - adds r1, r1, r2 - str r0, [r1] -_080A7CDA: - mov r3, sb - cmp r3, #0 - bne _080A7D78 - adds r0, r6, #0 - ldr r1, [sp, #0x3c] - mov r2, r8 - bl GetMonSpritePalFromSpeciesAndPersonality - lsls r1, r5, #0x14 - movs r2, #0x80 - lsls r2, r2, #0x11 - adds r1, r1, r2 - lsrs r1, r1, #0x10 - movs r2, #0x20 - bl LoadCompressedPalette - ldr r3, [sp, #0x44] - cmp r3, #1 - beq _080A7D26 - ldr r0, [sp, #0x40] - lsls r1, r0, #0x18 - lsrs r1, r1, #0x18 - movs r0, #5 - bl sub_08068438 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080A7D26 - ldr r0, _080A7D48 - ldr r0, [r0] - ldr r1, [r0] - ldr r2, [sp, #0x40] - lsls r0, r2, #2 - adds r0, r0, r1 - ldrh r0, [r0, #2] - cmp r0, #0 - beq _080A7D50 -_080A7D26: - lsls r0, r6, #3 - ldr r1, _080A7D4C - adds r0, r0, r1 - ldr r1, _080A7D44 - ldr r1, [r1] - movs r3, #0xbe - lsls r3, r3, #1 - adds r1, r1, r3 - ldr r1, [r1] - movs r2, #1 - b _080A7DD2 - .align 2, 0 -_080A7D3C: .4byte gUnknown_84FE6CC -_080A7D40: .4byte gUnknown_84FE69C -_080A7D44: .4byte gUnknown_2024178 -_080A7D48: .4byte gUnknown_2024174 -_080A7D4C: .4byte gUnknown_82DDA1C -_080A7D50: - lsls r0, r6, #3 - ldr r1, _080A7D70 - adds r0, r0, r1 - ldr r1, _080A7D74 - ldr r1, [r1] - movs r2, #0xbe - lsls r2, r2, #1 - adds r1, r1, r2 - ldr r1, [r1] - movs r2, #1 - str r2, [sp] - adds r2, r6, #0 - mov r3, r8 - bl sub_08034898 - b _080A7E08 - .align 2, 0 -_080A7D70: .4byte gUnknown_82DDA1C -_080A7D74: .4byte gUnknown_2024178 -_080A7D78: - adds r0, r6, #0 - ldr r1, [sp, #0x3c] - mov r2, r8 - bl GetMonSpritePalFromSpeciesAndPersonality - lsls r1, r5, #0x14 - movs r3, #0x80 - lsls r3, r3, #0x11 - adds r1, r1, r3 - lsrs r1, r1, #0x10 - movs r2, #0x20 - bl LoadCompressedPalette - ldr r0, [sp, #0x44] - cmp r0, #1 - beq _080A7DBE - ldr r2, [sp, #0x40] - lsls r1, r2, #0x18 - lsrs r1, r1, #0x18 - movs r0, #5 - bl sub_08068438 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080A7DBE - ldr r0, _080A7DE0 - ldr r0, [r0] - ldr r1, [r0] - ldr r3, [sp, #0x40] - lsls r0, r3, #2 - adds r0, r0, r1 - ldrh r2, [r0, #2] - cmp r2, #0 - beq _080A7DEC -_080A7DBE: - lsls r0, r6, #3 - ldr r1, _080A7DE4 - adds r0, r0, r1 - ldr r1, _080A7DE8 - ldr r1, [r1] - movs r2, #0xbe - lsls r2, r2, #1 - adds r1, r1, r2 - ldr r1, [r1] - movs r2, #0 -_080A7DD2: - str r2, [sp] - adds r2, r6, #0 - mov r3, r8 - bl LoadSpecialPokePic_DontHandleDeoxys - b _080A7E08 - .align 2, 0 -_080A7DE0: .4byte gUnknown_2024174 -_080A7DE4: .4byte gUnknown_82D6148 -_080A7DE8: .4byte gUnknown_2024178 -_080A7DEC: - lsls r0, r6, #3 - ldr r1, _080A7E54 - adds r0, r0, r1 - ldr r1, _080A7E58 - ldr r1, [r1] - movs r3, #0xbe - lsls r3, r3, #1 - adds r1, r1, r3 - ldr r1, [r1] - str r2, [sp] - adds r2, r6, #0 - mov r3, r8 - bl sub_08034898 -_080A7E08: - ldr r5, _080A7E58 - ldr r0, [r5] - movs r4, #0xbe - lsls r4, r4, #1 - adds r0, r0, r4 - ldr r0, [r0] - ldr r2, [sp, #0xc] - lsls r1, r2, #5 - ldr r3, _080A7E5C - adds r1, r1, r3 - movs r2, #0x80 - lsls r2, r2, #4 - movs r3, #1 - bl RequestDma3Copy - ldr r0, [r5] - adds r0, r0, r4 - ldr r0, [r0] - bl Free - ldr r0, [r5] - adds r0, r0, r4 - movs r1, #0 - str r1, [r0] - mov r0, sb - cmp r0, #0 - bne _080A7E68 - lsls r0, r7, #1 - adds r0, r0, r7 - lsls r0, r0, #3 - ldr r1, _080A7E60 - adds r0, r0, r1 - mov r2, sl - lsls r1, r2, #0x10 - asrs r1, r1, #0x10 - ldr r3, _080A7E64 - b _080A7E7A - .align 2, 0 -_080A7E54: .4byte gUnknown_82D6148 -_080A7E58: .4byte gUnknown_2024178 -_080A7E5C: .4byte 0x06010000 -_080A7E60: .4byte gUnknown_84FE69C -_080A7E64: .4byte gUnknown_82D45C8 -_080A7E68: - lsls r0, r7, #1 - adds r0, r0, r7 - lsls r0, r0, #3 - ldr r1, _080A7EC8 - adds r0, r0, r1 - mov r2, sl - lsls r1, r2, #0x10 - asrs r1, r1, #0x10 - ldr r3, _080A7ECC -_080A7E7A: - lsls r2, r6, #2 - adds r2, r2, r3 - ldrb r2, [r2, #1] - ldr r3, [sp, #4] - adds r2, r2, r3 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - ldr r3, [sp, #8] - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A7EB6 - ldr r3, _080A7ED0 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r1, r3, #0 - adds r1, #0x10 - adds r1, r0, r1 - ldr r2, _080A7ED4 - str r2, [r1] - adds r0, r0, r3 - movs r1, #0 - bl StartSpriteAffineAnim -_080A7EB6: - adds r0, r4, #0 - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080A7EC8: .4byte gUnknown_84FE69C -_080A7ECC: .4byte gUnknown_82D5A68 -_080A7ED0: .4byte gUnknown_20205AC -_080A7ED4: .4byte gUnknown_82D2F50 - thumb_func_end sub_080A7C5C - - thumb_func_start DestroySpriteAndFreeResources_ -DestroySpriteAndFreeResources_: @ 0x080A7ED8 - push {lr} - bl DestroySpriteAndFreeResources - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end DestroySpriteAndFreeResources_ - - thumb_func_start GetBattlerSpriteCoordAttr -GetBattlerSpriteCoordAttr: @ 0x080A7EE4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sb, r1 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A7F8C - ldr r0, _080A7F18 - ldr r0, [r0] - ldr r2, [r0, #0x18] - ldrb r1, [r2, #4] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080A7F1C - ldrh r7, [r2, #2] - ldr r2, [r2, #0x10] - b _080A7F20 - .align 2, 0 -_080A7F18: .4byte gUnknown_2039BD4 -_080A7F1C: - ldrh r7, [r2] - ldr r2, [r2, #8] -_080A7F20: - cmp r7, #0xc9 - bne _080A7F6C - movs r0, #0xc0 - lsls r0, r0, #0x12 - ands r0, r2 - lsrs r0, r0, #0x12 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r2 - lsrs r1, r1, #0xc - orrs r0, r1 - movs r1, #0xc0 - lsls r1, r1, #2 - ands r1, r2 - lsrs r1, r1, #6 - orrs r0, r1 - movs r1, #3 - ands r1, r2 - orrs r0, r1 - movs r1, #0x1c - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - bne _080A7F58 - movs r0, #0xc9 - b _080A7F62 -_080A7F58: - movs r1, #0xce - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 -_080A7F62: - lsls r1, r0, #2 - ldr r0, _080A7F68 - b _080A812C - .align 2, 0 -_080A7F68: .4byte gUnknown_82D5A68 -_080A7F6C: - ldr r0, _080A7F84 - cmp r7, r0 - bne _080A7F74 - b _080A80FC -_080A7F74: - movs r0, #0xce - lsls r0, r0, #1 - cmp r7, r0 - bhi _080A8044 - lsls r1, r7, #2 - ldr r0, _080A7F88 - b _080A812C - .align 2, 0 -_080A7F84: .4byte 0x00000181 -_080A7F88: .4byte gUnknown_82D5A68 -_080A7F8C: - mov r0, r8 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A8058 - ldr r0, _080A7FD8 - ldr r0, [r0] - ldr r0, [r0] - mov r1, r8 - lsls r2, r1, #2 - adds r1, r2, r0 - ldrh r0, [r1, #2] - cmp r0, #0 - bne _080A7FE4 - ldr r0, _080A7FDC - mov r1, r8 - lsls r4, r1, #1 - adds r4, r4, r0 - ldrh r0, [r4] - movs r6, #0x64 - muls r0, r6, r0 - ldr r5, _080A7FE0 - adds r0, r0, r5 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - ldrh r0, [r4] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #0 - bl GetMonData - adds r2, r0, #0 - b _080A7FEC - .align 2, 0 -_080A7FD8: .4byte gUnknown_2024174 -_080A7FDC: .4byte gUnknown_2023D12 -_080A7FE0: .4byte gUnknown_2024190 -_080A7FE4: - ldrh r7, [r1, #2] - ldr r0, _080A8024 - adds r0, r2, r0 - ldr r2, [r0] -_080A7FEC: - cmp r7, #0xc9 - bne _080A803C - movs r0, #0xc0 - lsls r0, r0, #0x12 - ands r0, r2 - lsrs r0, r0, #0x12 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r2 - lsrs r1, r1, #0xc - orrs r0, r1 - movs r1, #0xc0 - lsls r1, r1, #2 - ands r1, r2 - lsrs r1, r1, #6 - orrs r0, r1 - movs r1, #3 - ands r1, r2 - orrs r0, r1 - movs r1, #0x1c - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - bne _080A8028 - movs r0, #0xc9 - b _080A8032 - .align 2, 0 -_080A8024: .4byte gUnknown_2024160 -_080A8028: - movs r1, #0xce - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 -_080A8032: - lsls r1, r0, #2 - ldr r0, _080A8038 - b _080A812C - .align 2, 0 -_080A8038: .4byte gUnknown_82D5A68 -_080A803C: - movs r0, #0xce - lsls r0, r0, #1 - cmp r7, r0 - bls _080A804C -_080A8044: - ldr r4, _080A8048 - b _080A812E - .align 2, 0 -_080A8048: .4byte gUnknown_82D5A68 -_080A804C: - lsls r1, r7, #2 - ldr r0, _080A8054 - b _080A812C - .align 2, 0 -_080A8054: .4byte gUnknown_82D5A68 -_080A8058: - ldr r0, _080A8098 - ldr r0, [r0] - ldr r0, [r0] - mov r1, r8 - lsls r2, r1, #2 - adds r1, r2, r0 - ldrh r0, [r1, #2] - cmp r0, #0 - bne _080A80A4 - ldr r0, _080A809C - mov r1, r8 - lsls r4, r1, #1 - adds r4, r4, r0 - ldrh r0, [r4] - movs r6, #0x64 - muls r0, r6, r0 - ldr r5, _080A80A0 - adds r0, r0, r5 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - ldrh r0, [r4] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #0 - bl GetMonData - adds r2, r0, #0 - b _080A80AC - .align 2, 0 -_080A8098: .4byte gUnknown_2024174 -_080A809C: .4byte gUnknown_2023D12 -_080A80A0: .4byte gUnknown_20243E8 -_080A80A4: - ldrh r7, [r1, #2] - ldr r0, _080A80E4 - adds r0, r2, r0 - ldr r2, [r0] -_080A80AC: - cmp r7, #0xc9 - bne _080A80F6 - movs r0, #0xc0 - lsls r0, r0, #0x12 - ands r0, r2 - lsrs r0, r0, #0x12 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r2 - lsrs r1, r1, #0xc - orrs r0, r1 - movs r1, #0xc0 - lsls r1, r1, #2 - ands r1, r2 - lsrs r1, r1, #6 - orrs r0, r1 - movs r1, #3 - ands r1, r2 - orrs r0, r1 - movs r1, #0x1c - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - bne _080A80E8 - movs r0, #0xc9 - b _080A80F2 - .align 2, 0 -_080A80E4: .4byte gUnknown_2024160 -_080A80E8: - movs r1, #0xce - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 -_080A80F2: - lsls r1, r0, #2 - b _080A812A -_080A80F6: - ldr r0, _080A810C - cmp r7, r0 - bne _080A8118 -_080A80FC: - ldr r0, _080A8110 - add r0, r8 - ldrb r0, [r0] - lsls r0, r0, #2 - ldr r1, _080A8114 - adds r4, r0, r1 - b _080A812E - .align 2, 0 -_080A810C: .4byte 0x00000181 -_080A8110: .4byte gUnknown_2024188 -_080A8114: .4byte gUnknown_84FE684 -_080A8118: - movs r0, #0xce - lsls r0, r0, #1 - cmp r7, r0 - bls _080A8128 - ldr r4, _080A8124 - b _080A812E - .align 2, 0 -_080A8124: .4byte gUnknown_82D45C8 -_080A8128: - lsls r1, r7, #2 -_080A812A: - ldr r0, _080A8140 -_080A812C: - adds r4, r1, r0 -_080A812E: - mov r0, sb - cmp r0, #6 - bhi _080A81DE - lsls r0, r0, #2 - ldr r1, _080A8144 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080A8140: .4byte gUnknown_82D45C8 -_080A8144: .4byte _080A8148 -_080A8148: @ jump table - .4byte _080A8164 @ case 0 - .4byte _080A816E @ case 1 - .4byte _080A819A @ case 2 - .4byte _080A81B2 @ case 3 - .4byte _080A8176 @ case 4 - .4byte _080A8188 @ case 5 - .4byte _080A81CA @ case 6 -_080A8164: - ldrb r1, [r4] - movs r0, #0xf - ands r0, r1 - lsls r0, r0, #3 - b _080A81E0 -_080A816E: - ldrb r0, [r4] - lsrs r0, r0, #4 - lsls r0, r0, #3 - b _080A81E0 -_080A8176: - mov r0, r8 - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r4] - lsrs r1, r1, #4 - b _080A81AC -_080A8188: - mov r0, r8 - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r4] - lsrs r1, r1, #4 - b _080A81C4 -_080A819A: - mov r0, r8 - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r2, [r4] - movs r1, #0xf - ands r1, r2 -_080A81AC: - lsls r1, r1, #2 - subs r0, r0, r1 - b _080A81E0 -_080A81B2: - mov r0, r8 - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r2, [r4] - movs r1, #0xf - ands r1, r2 -_080A81C4: - lsls r1, r1, #2 - adds r0, r0, r1 - b _080A81E0 -_080A81CA: - mov r0, r8 - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #0x1f - ldrb r1, [r4, #1] - subs r0, r0, r1 - b _080A81E0 -_080A81DE: - movs r0, #0 -_080A81E0: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end GetBattlerSpriteCoordAttr - - thumb_func_start SetAverageBattlerPositions -SetAverageBattlerPositions: @ 0x080A81EC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sb, r2 - mov sl, r3 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - cmp r1, #0 - bne _080A820A - movs r5, #0 - movs r6, #1 - b _080A820E -_080A820A: - movs r5, #2 - movs r6, #3 -_080A820E: - adds r0, r4, #0 - adds r1, r5, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - adds r0, r4, #0 - adds r1, r6, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A8260 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A8260 - movs r0, #2 - eors r4, r0 - adds r0, r4, #0 - adds r1, r5, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r4, #0 - adds r1, r6, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - mov r0, r8 - lsls r1, r0, #0x10 - lsls r2, r7, #0x10 - b _080A826C -_080A8260: - mov r0, r8 - lsls r1, r0, #0x10 - lsrs r5, r1, #0x10 - lsls r0, r7, #0x10 - lsrs r3, r0, #0x10 - adds r2, r0, #0 -_080A826C: - asrs r0, r1, #0x10 - adds r0, r0, r5 - asrs r0, r0, #1 - mov r1, sb - strh r0, [r1] - asrs r0, r2, #0x10 - adds r0, r0, r3 - asrs r0, r0, #1 - mov r1, sl - strh r0, [r1] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetAverageBattlerPositions - - thumb_func_start sub_080A8290 -sub_080A8290: @ 0x080A8290 - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - sub sp, #4 - lsls r6, r1, #0x18 - lsrs r6, r6, #0x18 - ldr r0, _080A8328 - mov sl, r0 - bl CreateInvisibleSpriteWithCallback - mov r8, r0 - mov r0, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r0, _080A832C - mov sb, r0 - mov r0, r8 - lsls r3, r0, #4 - add r3, r8 - lsls r3, r3, #2 - mov r0, sb - adds r5, r3, r0 - lsls r4, r6, #4 - adds r4, r4, r6 - lsls r4, r4, #2 - add r4, sb - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x44 - str r3, [sp] - bl memcpy - adds r2, r5, #0 - adds r2, #0x3f - ldrb r0, [r2] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2] - ldrb r2, [r5, #5] - movs r1, #0xd - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - strb r0, [r5, #5] - ldrb r0, [r5, #1] - ands r1, r0 - movs r0, #8 - orrs r1, r0 - strb r1, [r5, #1] - ldrh r1, [r4, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x16 - ldrh r2, [r5, #4] - ldr r0, _080A8330 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, #4] - movs r0, #0x1c - add sb, r0 - ldr r3, [sp] - add r3, sb - mov r0, sl - str r0, [r3] - mov r0, r8 - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080A8328: .4byte sub_08007140 -_080A832C: .4byte gUnknown_20205AC -_080A8330: .4byte 0xFFFFFC00 - thumb_func_end sub_080A8290 - - thumb_func_start sub_080A8334 -sub_080A8334: @ 0x080A8334 - push {r4, lr} - adds r4, r0, #0 - bl SetSpriteCoordsToAnimAttackerCoords - ldr r0, _080A836C - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A8374 - ldr r2, _080A8370 - ldrh r0, [r4, #0x20] - ldrh r1, [r2] - subs r0, r0, r1 - strh r0, [r4, #0x20] - ldrh r0, [r2, #6] - rsbs r0, r0, #0 - strh r0, [r2, #6] - adds r3, r4, #0 - adds r3, #0x3f - ldrb r0, [r3] - movs r1, #1 - orrs r0, r1 - strb r0, [r3] - adds r1, r2, #0 - b _080A837E - .align 2, 0 -_080A836C: .4byte gUnknown_20380D6 -_080A8370: .4byte gUnknown_20380BE -_080A8374: - ldr r1, _080A83A8 - ldrh r0, [r1] - ldrh r2, [r4, #0x20] - adds r0, r0, r2 - strh r0, [r4, #0x20] -_080A837E: - ldrh r0, [r1, #2] - ldrh r2, [r4, #0x22] - adds r0, r0, r2 - strh r0, [r4, #0x22] - ldrh r0, [r1, #4] - strh r0, [r4, #0x2e] - ldrh r0, [r1, #6] - strh r0, [r4, #0x30] - ldrh r0, [r1, #8] - strh r0, [r4, #0x34] - ldrh r0, [r1, #0xa] - strh r0, [r4, #0x38] - ldr r1, _080A83AC - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _080A83B0 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A83A8: .4byte gUnknown_20380BE -_080A83AC: .4byte DestroySpriteAndMatrix -_080A83B0: .4byte TranslateSpriteLinearAndFlicker - thumb_func_end sub_080A8334 - - thumb_func_start sub_080A83B4 -sub_080A83B4: @ 0x080A83B4 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080A83DC - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A83E4 - ldr r2, _080A83E0 - ldrh r0, [r4, #0x20] - ldrh r1, [r2] - subs r0, r0, r1 - strh r0, [r4, #0x20] - movs r1, #6 - ldrsh r0, [r2, r1] - rsbs r0, r0, #0 - strh r0, [r2, #6] - adds r1, r2, #0 - b _080A83EE - .align 2, 0 -_080A83DC: .4byte gUnknown_20380D6 -_080A83E0: .4byte gUnknown_20380BE -_080A83E4: - ldr r1, _080A8420 - ldrh r0, [r1] - ldrh r2, [r4, #0x20] - adds r0, r0, r2 - strh r0, [r4, #0x20] -_080A83EE: - ldrh r0, [r1, #2] - ldrh r2, [r4, #0x22] - adds r0, r0, r2 - strh r0, [r4, #0x22] - ldrh r0, [r1, #4] - strh r0, [r4, #0x2e] - ldrh r0, [r1, #6] - strh r0, [r4, #0x30] - ldrh r0, [r1, #8] - strh r0, [r4, #0x34] - ldrh r0, [r1, #0xa] - strh r0, [r4, #0x38] - ldrb r1, [r1, #0xc] - adds r0, r4, #0 - bl StartSpriteAnim - ldr r1, _080A8424 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _080A8428 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A8420: .4byte gUnknown_20380BE -_080A8424: .4byte DestroySpriteAndMatrix -_080A8428: .4byte TranslateSpriteLinearAndFlicker - thumb_func_end sub_080A83B4 - - thumb_func_start sub_080A842C -sub_080A842C: @ 0x080A842C - push {r4, lr} - adds r4, r0, #0 - bl SetSpriteCoordsToAnimAttackerCoords - ldr r0, _080A8450 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A8458 - ldr r0, _080A8454 - ldrh r1, [r4, #0x20] - ldrh r2, [r0] - subs r1, r1, r2 - strh r1, [r4, #0x20] - b _080A8464 - .align 2, 0 -_080A8450: .4byte gUnknown_20380D6 -_080A8454: .4byte gUnknown_20380BE -_080A8458: - ldr r1, _080A8480 - ldrh r0, [r1] - ldrh r2, [r4, #0x20] - adds r0, r0, r2 - strh r0, [r4, #0x20] - adds r0, r1, #0 -_080A8464: - ldrh r0, [r0, #2] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] - ldr r0, _080A8484 - str r0, [r4, #0x1c] - ldr r1, _080A8488 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A8480: .4byte gUnknown_20380BE -_080A8484: .4byte RunStoredCallbackWhenAnimEnds -_080A8488: .4byte DestroyAnimSprite - thumb_func_end sub_080A842C - - thumb_func_start sub_080A848C -sub_080A848C: @ 0x080A848C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080A8520 - adds r5, r1, r0 - movs r0, #0 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r6, #0 - strh r0, [r5, #8] - ldr r7, _080A8524 - ldrb r0, [r7] - bl GetBattlerSide - lsls r0, r0, #0x18 - movs r1, #8 - cmp r0, #0 - beq _080A84C0 - movs r0, #8 - rsbs r0, r0, #0 - adds r1, r0, #0 -_080A84C0: - strh r1, [r5, #0xa] - strh r6, [r5, #0xc] - strh r6, [r5, #0xe] - ldr r4, _080A8528 - movs r0, #8 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r0, #0x24] - ldrh r2, [r5, #8] - subs r1, r1, r2 - strh r1, [r0, #0x24] - ldr r0, _080A852C - bl AllocSpritePalette - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x10] - strh r6, [r5, #0x12] - movs r1, #0x10 - ldrsh r0, [r5, r1] - adds r0, #0x10 - lsls r0, r0, #0x14 - lsrs r6, r0, #0x10 - movs r0, #8 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r0, [r0, #5] - lsrs r0, r0, #4 - adds r0, #0x10 - lsls r4, r0, #4 - ldrb r0, [r7] - bl GetBattlerSpriteSubpriority - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x14] - cmp r0, #0x14 - beq _080A851C - cmp r0, #0x28 - bne _080A8530 -_080A851C: - movs r0, #2 - b _080A8532 - .align 2, 0 -_080A8520: .4byte gUnknown_3005B60 -_080A8524: .4byte gUnknown_20380D6 -_080A8528: .4byte gUnknown_20205AC -_080A852C: .4byte 0x00002771 -_080A8530: - movs r0, #3 -_080A8532: - strh r0, [r5, #0x14] - lsls r0, r4, #1 - ldr r1, _080A8560 - adds r0, r0, r1 - lsls r1, r6, #1 - ldr r2, _080A8564 - adds r1, r1, r2 - ldr r2, _080A8568 - bl CpuSet - ldr r0, _080A856C - ldrb r2, [r0, #2] - ldrh r3, [r0] - adds r0, r6, #0 - movs r1, #0x10 - bl BlendPalette - ldr r0, _080A8570 - str r0, [r5] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A8560: .4byte gUnknown_20373B4 -_080A8564: .4byte gUnknown_20377B4 -_080A8568: .4byte 0x04000008 -_080A856C: .4byte gUnknown_20380BE -_080A8570: .4byte sub_080A8574 - thumb_func_end sub_080A848C - - thumb_func_start sub_080A8574 -sub_080A8574: @ 0x080A8574 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080A8598 - adds r4, r0, r1 - movs r1, #0xc - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _080A85D8 - cmp r0, #1 - bgt _080A859C - cmp r0, #0 - beq _080A85A2 - b _080A8634 - .align 2, 0 -_080A8598: .4byte gUnknown_3005B60 -_080A859C: - cmp r0, #2 - beq _080A8620 - b _080A8634 -_080A85A2: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080A8640 - ldr r2, _080A85D4 - movs r0, #8 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r4, #0xa] - ldrh r2, [r0, #0x24] - adds r1, r1, r2 - strh r1, [r0, #0x24] - ldrh r1, [r4, #0xe] - adds r0, r1, #1 - strh r0, [r4, #0xe] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #5 - bne _080A8634 - strh r1, [r4, #0xe] - b _080A8612 - .align 2, 0 -_080A85D4: .4byte gUnknown_20205AC -_080A85D8: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080A8640 - ldr r3, _080A861C - movs r0, #8 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r0, #0x24] - ldrh r2, [r4, #0xa] - subs r1, r1, r2 - strh r1, [r0, #0x24] - ldrh r0, [r4, #0xe] - subs r0, #1 - strh r0, [r4, #0xe] - lsls r0, r0, #0x10 - asrs r2, r0, #0x10 - cmp r2, #0 - bne _080A8634 - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - strh r2, [r1, #0x24] -_080A8612: - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - b _080A8634 - .align 2, 0 -_080A861C: .4byte gUnknown_20205AC -_080A8620: - movs r2, #0x12 - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _080A8634 - ldr r0, _080A863C - bl FreeSpritePaletteByTag - adds r0, r5, #0 - bl DestroyAnimVisualTask -_080A8634: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A863C: .4byte 0x00002771 - thumb_func_end sub_080A8574 - - thumb_func_start sub_080A8640 -sub_080A8640: @ 0x080A8640 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - movs r0, #0 - bl CloneBattlerSpriteWithBlend - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - blt _080A86B0 - ldr r5, _080A86BC - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - adds r3, r4, r5 - movs r0, #3 - ldrb r1, [r6, #0x14] - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r3, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #5] - ldrb r1, [r6, #0x10] - lsls r1, r1, #4 - movs r2, #0xf - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #5] - movs r0, #8 - strh r0, [r3, #0x2e] - mov r0, r8 - strh r0, [r3, #0x30] - strh r7, [r3, #0x32] - movs r0, #8 - ldrsh r1, [r6, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrh r0, [r0, #0x24] - strh r0, [r3, #0x24] - adds r5, #0x1c - adds r4, r4, r5 - ldr r0, _080A86C0 - str r0, [r4] - ldrh r0, [r6, #0x12] - adds r0, #1 - strh r0, [r6, #0x12] -_080A86B0: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A86BC: .4byte gUnknown_20205AC -_080A86C0: .4byte sub_080A86C4 - thumb_func_end sub_080A8640 - - thumb_func_start sub_080A86C4 -sub_080A86C4: @ 0x080A86C4 - push {lr} - adds r3, r0, #0 - ldrh r0, [r3, #0x2e] - subs r0, #1 - strh r0, [r3, #0x2e] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080A86EE - ldr r2, _080A86F4 - movs r0, #0x30 - ldrsh r1, [r3, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrh r1, [r0, #0x12] - subs r1, #1 - strh r1, [r0, #0x12] - adds r0, r3, #0 - bl obj_delete_but_dont_free_vram -_080A86EE: - pop {r0} - bx r0 - .align 2, 0 -_080A86F4: .4byte gUnknown_3005B60 - thumb_func_end sub_080A86C4 - - thumb_func_start sub_080A86F8 -sub_080A86F8: @ 0x080A86F8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A872C - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A8730 - movs r0, #5 - b _080A8732 - .align 2, 0 -_080A872C: .4byte gUnknown_20380D6 -_080A8730: - ldr r0, _080A8744 -_080A8732: - strh r0, [r5, #0x2e] - ldr r0, _080A8748 - strh r0, [r5, #0x30] - ldr r0, _080A874C - str r0, [r5, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A8744: .4byte 0x0000FFF6 -_080A8748: .4byte 0x0000FFD8 -_080A874C: .4byte sub_080A8750 - thumb_func_end sub_080A86F8 - - thumb_func_start sub_080A8750 -sub_080A8750: @ 0x080A8750 - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - ldrh r5, [r4, #0x30] - ldrh r2, [r4, #0x34] - adds r0, r5, r2 - strh r0, [r4, #0x34] - movs r1, #0x32 - ldrsh r0, [r4, r1] - movs r1, #0xa - bl __divsi3 - strh r0, [r4, #0x24] - movs r2, #0x34 - ldrsh r0, [r4, r2] - movs r1, #0xa - bl __divsi3 - strh r0, [r4, #0x26] - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x14 - rsbs r1, r1, #0 - cmp r0, r1 - bge _080A878C - adds r0, r5, #1 - strh r0, [r4, #0x30] -_080A878C: - movs r1, #0x22 - ldrsh r0, [r4, r1] - movs r2, #0x26 - ldrsh r1, [r4, r2] - adds r0, r0, r1 - movs r1, #0x20 - rsbs r1, r1, #0 - cmp r0, r1 - bge _080A87A4 - adds r0, r4, #0 - bl DestroyAnimSprite -_080A87A4: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080A8750 - - thumb_func_start sub_080A87AC -sub_080A87AC: @ 0x080A87AC - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _080A87E4 - ldrh r0, [r5, #4] - strh r0, [r4, #0x2e] - ldrh r0, [r5, #8] - ldrh r1, [r4, #0x20] - adds r0, r0, r1 - strh r0, [r4, #0x32] - ldrh r0, [r5, #0xa] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x36] - ldr r0, _080A87E8 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A87EC - ldrh r0, [r5, #8] - adds r0, #0x1e - ldrh r1, [r4, #0x20] - adds r0, r0, r1 - strh r0, [r4, #0x20] - ldrh r0, [r5, #0xa] - subs r0, #0x14 - b _080A87FA - .align 2, 0 -_080A87E4: .4byte gUnknown_20380BE -_080A87E8: .4byte gUnknown_20380D7 -_080A87EC: - ldrh r0, [r5, #8] - subs r0, #0x1e - ldrh r1, [r4, #0x20] - adds r0, r0, r1 - strh r0, [r4, #0x20] - ldrh r0, [r5, #0xa] - subs r0, #0x50 -_080A87FA: - strh r0, [r4, #0x22] - ldr r0, _080A8810 - str r0, [r4, #0x1c] - ldr r1, _080A8814 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A8810: .4byte sub_080A67B4 -_080A8814: .4byte DestroyAnimSprite - thumb_func_end sub_080A87AC - - thumb_func_start ResetTasks -ResetTasks: @ 0x080A8818 - push {r4, r5, r6, r7, lr} - movs r4, #0 - ldr r6, _080A886C - adds r7, r6, #0 - adds r7, #8 -_080A8822: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r2, r0, r6 - movs r1, #0 - strb r1, [r2, #4] - ldr r1, _080A8870 - str r1, [r2] - strb r4, [r2, #5] - adds r4, #1 - strb r4, [r2, #6] - movs r1, #1 - rsbs r1, r1, #0 - adds r5, r1, #0 - movs r1, #0xff - strb r1, [r2, #7] - adds r0, r0, r7 - movs r1, #0 - movs r2, #0x20 - bl memset - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - cmp r4, #0xf - bls _080A8822 - ldr r0, _080A886C - movs r1, #0xfe - strb r1, [r0, #5] - ldr r1, _080A8874 - adds r0, r0, r1 - ldrb r1, [r0] - orrs r1, r5 - strb r1, [r0] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A886C: .4byte gUnknown_3005B60 -_080A8870: .4byte sub_080A8A40 -_080A8874: .4byte 0x0000025E - thumb_func_end ResetTasks - - thumb_func_start CreateTask -CreateTask: @ 0x080A8878 - push {r4, r5, r6, r7, lr} - adds r2, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r6, #0 - ldr r7, _080A88B4 -_080A8884: - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r5, r0, #3 - adds r4, r5, r7 - ldrb r0, [r4, #4] - cmp r0, #0 - bne _080A88B8 - str r2, [r4] - strb r1, [r4, #7] - adds r0, r6, #0 - bl InsertTask - adds r0, r7, #0 - adds r0, #8 - adds r0, r5, r0 - movs r1, #0 - movs r2, #0x20 - bl memset - movs r0, #1 - strb r0, [r4, #4] - adds r0, r6, #0 - b _080A88C4 - .align 2, 0 -_080A88B4: .4byte gUnknown_3005B60 -_080A88B8: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0xf - bls _080A8884 - movs r0, #0 -_080A88C4: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CreateTask - - thumb_func_start InsertTask -InsertTask: @ 0x080A88CC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl FindFirstActiveTask - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x10 - bne _080A88FC - ldr r1, _080A88F8 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0xfe - strb r1, [r0, #5] - movs r1, #0xff - strb r1, [r0, #6] - b _080A8958 - .align 2, 0 -_080A88F8: .4byte gUnknown_3005B60 -_080A88FC: - ldr r6, _080A8938 - lsls r0, r4, #2 - mov ip, r0 - mov r8, r6 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r2, r0, r6 -_080A890A: - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r5, r0, #3 - mov r7, r8 - adds r3, r5, r7 - ldrb r0, [r2, #7] - ldrb r7, [r3, #7] - cmp r0, r7 - bhs _080A893C - ldrb r0, [r3, #5] - strb r0, [r2, #5] - strb r1, [r2, #6] - ldrb r0, [r3, #5] - cmp r0, #0xfe - beq _080A8934 - adds r1, r0, #0 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - add r0, r8 - strb r4, [r0, #6] -_080A8934: - strb r4, [r3, #5] - b _080A8958 - .align 2, 0 -_080A8938: .4byte gUnknown_3005B60 -_080A893C: - ldrb r0, [r3, #6] - cmp r0, #0xff - beq _080A8946 - adds r1, r0, #0 - b _080A890A -_080A8946: - mov r2, ip - adds r0, r2, r4 - lsls r0, r0, #3 - adds r0, r0, r6 - strb r1, [r0, #5] - adds r2, r5, r6 - ldrb r1, [r2, #6] - strb r1, [r0, #6] - strb r4, [r2, #6] -_080A8958: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end InsertTask - - thumb_func_start DestroyTask -DestroyTask: @ 0x080A8964 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _080A8998 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r2, r1, r4 - ldrb r0, [r2, #4] - cmp r0, #0 - beq _080A89CE - movs r0, #0 - strb r0, [r2, #4] - ldrb r3, [r2, #5] - cmp r3, #0xfe - bne _080A899C - ldrb r0, [r2, #6] - cmp r0, #0xff - beq _080A89CE - adds r1, r0, #0 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r4 - strb r3, [r0, #5] - b _080A89CE - .align 2, 0 -_080A8998: .4byte gUnknown_3005B60 -_080A899C: - ldrb r3, [r2, #6] - adds r0, r3, #0 - cmp r0, #0xff - bne _080A89B4 - ldrb r0, [r2, #5] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r4 - movs r0, #0xff - strb r0, [r1, #6] - b _080A89CE -_080A89B4: - ldrb r1, [r2, #5] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r4 - strb r3, [r0, #6] - ldrb r1, [r2, #6] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r4 - ldrb r1, [r2, #5] - strb r1, [r0, #5] -_080A89CE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end DestroyTask - - thumb_func_start RunTasks -RunTasks: @ 0x080A89D4 - push {r4, r5, lr} - bl FindFirstActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x10 - beq _080A89F8 - ldr r5, _080A8A00 -_080A89E4: - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - adds r4, r4, r5 - ldr r1, [r4] - bl _call_via_r1 - ldrb r0, [r4, #6] - cmp r0, #0xff - bne _080A89E4 -_080A89F8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A8A00: .4byte gUnknown_3005B60 - thumb_func_end RunTasks - - thumb_func_start FindFirstActiveTask -FindFirstActiveTask: @ 0x080A8A04 - push {lr} - movs r2, #0 - ldr r0, _080A8A3C - ldrb r1, [r0, #4] - adds r3, r0, #0 - cmp r1, #1 - bne _080A8A18 - ldrb r0, [r3, #5] - cmp r0, #0xfe - beq _080A8A36 -_080A8A18: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xf - bhi _080A8A36 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r1, r0, r3 - ldrb r0, [r1, #4] - cmp r0, #1 - bne _080A8A18 - ldrb r0, [r1, #5] - cmp r0, #0xfe - bne _080A8A18 -_080A8A36: - adds r0, r2, #0 - pop {r1} - bx r1 - .align 2, 0 -_080A8A3C: .4byte gUnknown_3005B60 - thumb_func_end FindFirstActiveTask - - thumb_func_start sub_080A8A40 -sub_080A8A40: @ 0x080A8A40 - bx lr - .align 2, 0 - thumb_func_end sub_080A8A40 - - thumb_func_start SetTaskFuncWithFollowupFunc -SetTaskFuncWithFollowupFunc: @ 0x080A8A44 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _080A8A74 - lsls r3, r0, #2 - adds r3, r3, r0 - lsls r3, r3, #3 - adds r0, r3, #0 - adds r0, #0x1c - adds r4, r5, #0 - adds r4, #8 - adds r0, r0, r4 - strh r2, [r0] - adds r0, r3, #0 - adds r0, #0x1e - adds r0, r0, r4 - lsrs r2, r2, #0x10 - strh r2, [r0] - adds r3, r3, r5 - str r1, [r3] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A8A74: .4byte gUnknown_3005B60 - thumb_func_end SetTaskFuncWithFollowupFunc - - thumb_func_start SwitchTaskToFollowupFunc -SwitchTaskToFollowupFunc: @ 0x080A8A78 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _080A8AA8 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r3 - adds r0, r1, #0 - adds r0, #0x1c - adds r3, #8 - adds r0, r0, r3 - ldrh r2, [r0] - adds r1, #0x1e - adds r1, r1, r3 - movs r3, #0 - ldrsh r0, [r1, r3] - lsls r0, r0, #0x10 - orrs r2, r0 - str r2, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A8AA8: .4byte gUnknown_3005B60 - thumb_func_end SwitchTaskToFollowupFunc - - thumb_func_start FuncIsActiveTask -FuncIsActiveTask: @ 0x080A8AAC - push {r4, lr} - adds r3, r0, #0 - movs r2, #0 - ldr r4, _080A8ACC -_080A8AB4: - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r1, r0, r4 - ldrb r0, [r1, #4] - cmp r0, #1 - bne _080A8AD0 - ldr r0, [r1] - cmp r0, r3 - bne _080A8AD0 - movs r0, #1 - b _080A8ADC - .align 2, 0 -_080A8ACC: .4byte gUnknown_3005B60 -_080A8AD0: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xf - bls _080A8AB4 - movs r0, #0 -_080A8ADC: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end FuncIsActiveTask - - thumb_func_start FindTaskIdByFunc -FindTaskIdByFunc: @ 0x080A8AE4 - push {lr} - adds r3, r0, #0 - movs r2, #0 - ldr r1, _080A8B00 -_080A8AEC: - ldrb r0, [r1, #4] - cmp r0, #1 - bne _080A8B04 - ldr r0, [r1] - cmp r0, r3 - bne _080A8B04 - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - b _080A8B0E - .align 2, 0 -_080A8B00: .4byte gUnknown_3005B60 -_080A8B04: - adds r1, #0x28 - adds r2, #1 - cmp r2, #0xf - ble _080A8AEC - movs r0, #0xff -_080A8B0E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end FindTaskIdByFunc - - thumb_func_start GetTaskCount -GetTaskCount: @ 0x080A8B14 - push {lr} - movs r2, #0 - movs r1, #0 - ldr r3, _080A8B40 -_080A8B1C: - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r3 - ldrb r0, [r0, #4] - cmp r0, #1 - bne _080A8B30 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 -_080A8B30: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xf - bls _080A8B1C - adds r0, r2, #0 - pop {r1} - bx r1 - .align 2, 0 -_080A8B40: .4byte gUnknown_3005B60 - thumb_func_end GetTaskCount - - thumb_func_start SetWordTaskArg -SetWordTaskArg: @ 0x080A8B44 - push {r4, r5, lr} - adds r5, r2, #0 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - cmp r3, #0xe - bhi _080A8B72 - ldr r2, _080A8B78 - lsls r0, r3, #1 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r0, r0, r1 - adds r2, #8 - adds r0, r0, r2 - strh r5, [r0] - adds r0, r3, #1 - lsls r0, r0, #1 - adds r0, r0, r1 - adds r0, r0, r2 - lsrs r1, r5, #0x10 - strh r1, [r0] -_080A8B72: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A8B78: .4byte gUnknown_3005B60 - thumb_func_end SetWordTaskArg - - thumb_func_start GetWordTaskArg -GetWordTaskArg: @ 0x080A8B7C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #0xe - bls _080A8B8E - movs r0, #0 - b _080A8BB0 -_080A8B8E: - ldr r3, _080A8BB8 - lsls r0, r1, #1 - lsls r2, r4, #2 - adds r2, r2, r4 - lsls r2, r2, #3 - adds r0, r0, r2 - adds r3, #8 - adds r0, r0, r3 - ldrh r0, [r0] - adds r1, #1 - lsls r1, r1, #1 - adds r1, r1, r2 - adds r1, r1, r3 - movs r2, #0 - ldrsh r1, [r1, r2] - lsls r1, r1, #0x10 - orrs r0, r1 -_080A8BB0: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080A8BB8: .4byte gUnknown_3005B60 - thumb_func_end GetWordTaskArg - - thumb_func_start sub_080A8BBC -sub_080A8BBC: @ 0x080A8BBC - bx lr - .align 2, 0 - thumb_func_end sub_080A8BBC - - thumb_func_start ReshowBattleScreenAfterMenu -ReshowBattleScreenAfterMenu: @ 0x080A8BC0 - push {lr} - ldr r2, _080A8BF8 - ldrb r0, [r2, #8] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #8] - movs r0, #0 - bl SetHBlankCallback - movs r0, #0 - bl SetVBlankCallback - movs r0, #0x4c - movs r1, #0 - bl SetGpuReg - ldr r0, _080A8BFC - adds r2, r0, #0 - adds r2, #0x21 - movs r1, #0 - strb r1, [r2] - adds r0, #0x22 - strb r1, [r0] - ldr r0, _080A8C00 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080A8BF8: .4byte gUnknown_2037C74 -_080A8BFC: .4byte gUnknown_2024118 -_080A8C00: .4byte CB2_ReshowBattleScreenAfterMenu - thumb_func_end ReshowBattleScreenAfterMenu - - thumb_func_start CB2_ReshowBattleScreenAfterMenu -CB2_ReshowBattleScreenAfterMenu: @ 0x080A8C04 - push {r4, r5, r6, r7, lr} - sub sp, #8 - ldr r0, _080A8C20 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0x13 - bls _080A8C14 - b _080A8E6C -_080A8C14: - lsls r0, r0, #2 - ldr r1, _080A8C24 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080A8C20: .4byte gUnknown_2024118 -_080A8C24: .4byte _080A8C28 -_080A8C28: @ jump table - .4byte _080A8C78 @ case 0 - .4byte _080A8CF4 @ case 1 - .4byte _080A8D0C @ case 2 - .4byte _080A8D12 @ case 3 - .4byte _080A8D18 @ case 4 - .4byte _080A8D28 @ case 5 - .4byte _080A8D2E @ case 6 - .4byte _080A8D56 @ case 7 - .4byte _080A8D5A @ case 8 - .4byte _080A8D5E @ case 9 - .4byte _080A8D62 @ case 10 - .4byte _080A8D80 @ case 11 - .4byte _080A8D88 @ case 12 - .4byte _080A8D90 @ case 13 - .4byte _080A8D98 @ case 14 - .4byte _080A8DA0 @ case 15 - .4byte _080A8DA8 @ case 16 - .4byte _080A8DB0 @ case 17 - .4byte _080A8DB8 @ case 18 - .4byte _080A8DC0 @ case 19 -_080A8C78: - bl ScanlineEffect_Clear - bl BattleInitBgsAndWindows - movs r0, #1 - movs r1, #1 - movs r2, #0 - bl SetBgAttribute - movs r0, #2 - movs r1, #1 - movs r2, #0 - bl SetBgAttribute - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg - bl ResetPaletteFade - ldr r0, _080A8CD4 - movs r1, #0 - strh r1, [r0] - ldr r0, _080A8CD8 - strh r1, [r0] - ldr r0, _080A8CDC - strh r1, [r0] - ldr r0, _080A8CE0 - strh r1, [r0] - ldr r0, _080A8CE4 - strh r1, [r0] - ldr r0, _080A8CE8 - strh r1, [r0] - ldr r0, _080A8CEC - strh r1, [r0] - ldr r0, _080A8CF0 - strh r1, [r0] - b _080A8E9A - .align 2, 0 -_080A8CD4: .4byte gUnknown_2022AC8 -_080A8CD8: .4byte gUnknown_2022ACA -_080A8CDC: .4byte gUnknown_2022ACC -_080A8CE0: .4byte gUnknown_2022ACE -_080A8CE4: .4byte gUnknown_2022AD0 -_080A8CE8: .4byte gUnknown_2022AD2 -_080A8CEC: .4byte gUnknown_2022AD4 -_080A8CF0: .4byte gUnknown_2022AD6 -_080A8CF4: - movs r0, #0 - str r0, [sp, #4] - movs r1, #0xc0 - lsls r1, r1, #0x13 - ldr r2, _080A8D08 - add r0, sp, #4 - bl CpuFastSet - b _080A8E9A - .align 2, 0 -_080A8D08: .4byte 0x01006000 -_080A8D0C: - bl sub_080358F8 - b _080A8E9A -_080A8D12: - bl ResetSpriteData - b _080A8E9A -_080A8D18: - bl FreeAllSpritePalettes - ldr r1, _080A8D24 - movs r0, #4 - strb r0, [r1] - b _080A8E9A - .align 2, 0 -_080A8D24: .4byte gUnknown_30030BC -_080A8D28: - bl ClearSpritesHealthboxAnimData - b _080A8E9A -_080A8D2E: - ldr r5, _080A8D48 - adds r4, r5, #0 - adds r4, #0x22 - ldrb r0, [r4] - bl BattleLoadAllHealthBoxesGfx - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A8D4C - movs r0, #0 - strb r0, [r4] - b _080A8E9A - .align 2, 0 -_080A8D48: .4byte gUnknown_2024118 -_080A8D4C: - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - adds r1, r5, #0 - b _080A8D72 -_080A8D56: - movs r0, #0 - b _080A8D64 -_080A8D5A: - movs r0, #1 - b _080A8D64 -_080A8D5E: - movs r0, #2 - b _080A8D64 -_080A8D62: - movs r0, #3 -_080A8D64: - bl LoadBattlerSpriteGfx - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A8D70 - b _080A8E9A -_080A8D70: - ldr r1, _080A8D7C -_080A8D72: - adds r1, #0x21 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - b _080A8E9A - .align 2, 0 -_080A8D7C: .4byte gUnknown_2024118 -_080A8D80: - movs r0, #0 - bl CreateBattlerSprite - b _080A8E9A -_080A8D88: - movs r0, #1 - bl CreateBattlerSprite - b _080A8E9A -_080A8D90: - movs r0, #2 - bl CreateBattlerSprite - b _080A8E9A -_080A8D98: - movs r0, #3 - bl CreateBattlerSprite - b _080A8E9A -_080A8DA0: - movs r0, #0 - bl CreateHealthboxSprite - b _080A8E9A -_080A8DA8: - movs r0, #1 - bl CreateHealthboxSprite - b _080A8E9A -_080A8DB0: - movs r0, #2 - bl CreateHealthboxSprite - b _080A8E9A -_080A8DB8: - movs r0, #3 - bl CreateHealthboxSprite - b _080A8E9A -_080A8DC0: - bl LoadAndCreateEnemyShadowSprites - movs r0, #1 - bl GetBattlerAtPosition - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r7, _080A8E54 - lsls r0, r4, #1 - adds r0, r0, r7 - ldrh r0, [r0] - movs r6, #0x64 - muls r0, r6, r0 - ldr r5, _080A8E58 - adds r0, r0, r5 - movs r1, #0xb - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl SetBattlerShadowSpriteCallback - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A8E24 - movs r0, #3 - bl GetBattlerAtPosition - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r4, #1 - adds r0, r0, r7 - ldrh r0, [r0] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #0xb - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl SetBattlerShadowSpriteCallback -_080A8E24: - ldr r1, _080A8E5C - ldr r0, _080A8E60 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #0 - bl ActionSelectionCreateCursorAt - ldr r0, _080A8E64 - ldrb r0, [r0] - cmp r0, #0 - beq _080A8E9A - ldr r0, _080A8E68 - ldrb r0, [r0] - cmp r0, #0 - beq _080A8E9A - bl LoadWirelessStatusIndicatorSpriteGfx - movs r0, #0 - movs r1, #0 - bl CreateWirelessStatusIndicatorSprite - b _080A8E9A - .align 2, 0 -_080A8E54: .4byte gUnknown_2023D12 -_080A8E58: .4byte gUnknown_20243E8 -_080A8E5C: .4byte gUnknown_2024150 -_080A8E60: .4byte gUnknown_202415C -_080A8E64: .4byte gUnknown_300319C -_080A8E68: .4byte gUnknown_30031C4 -_080A8E6C: - ldr r0, _080A8EAC - bl SetVBlankCallback - bl sub_080A8EBC - movs r0, #1 - str r0, [sp] - movs r0, #0xff - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginHardwarePaletteFade - ldr r2, _080A8EB0 - ldrb r1, [r2, #8] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #8] - ldr r0, _080A8EB4 - bl SetMainCallback2 - bl sub_0805EB30 -_080A8E9A: - ldr r1, _080A8EB8 - adds r1, #0x21 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - add sp, #8 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A8EAC: .4byte VBlankCB_Battle -_080A8EB0: .4byte gUnknown_2037C74 -_080A8EB4: .4byte BattleMainCB2 -_080A8EB8: .4byte gUnknown_2024118 - thumb_func_end CB2_ReshowBattleScreenAfterMenu - - thumb_func_start sub_080A8EBC -sub_080A8EBC: @ 0x080A8EBC - ldr r3, _080A8ED4 - ldrb r2, [r3] - movs r1, #0xd - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3] - ldr r2, _080A8ED8 - ldrb r0, [r2] - ands r1, r0 - strb r1, [r2] - bx lr - .align 2, 0 -_080A8ED4: .4byte 0x0400000A -_080A8ED8: .4byte 0x0400000C - thumb_func_end sub_080A8EBC - - thumb_func_start LoadBattlerSpriteGfx -LoadBattlerSpriteGfx: @ 0x080A8EDC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080A8F24 - ldrb r0, [r0] - cmp r4, r0 - bhs _080A8FC4 - adds r0, r4, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A8F3E - ldr r0, _080A8F28 - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r4, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _080A8F34 - ldr r1, _080A8F2C - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080A8F30 - adds r0, r0, r1 - adds r1, r4, #0 - bl BattleLoadOpponentMonSpriteGfx - b _080A8FBC - .align 2, 0 -_080A8F24: .4byte gUnknown_2023D10 -_080A8F28: .4byte gUnknown_2024174 -_080A8F2C: .4byte gUnknown_2023D12 -_080A8F30: .4byte gUnknown_20243E8 -_080A8F34: - adds r0, r4, #0 - movs r1, #0 - bl sub_0805E3F8 - b _080A8FBC -_080A8F3E: - ldr r0, _080A8F58 - ldr r1, [r0] - movs r2, #0x80 - ands r1, r2 - cmp r1, #0 - beq _080A8F60 - cmp r4, #0 - bne _080A8F60 - ldr r0, _080A8F5C - ldr r0, [r0] - ldrb r0, [r0, #8] - b _080A8F72 - .align 2, 0 -_080A8F58: .4byte gUnknown_2022C90 -_080A8F5C: .4byte gUnknown_3005AF0 -_080A8F60: - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #2 - ands r0, r1 - cmp r0, #0 - beq _080A8F7A - cmp r4, #0 - bne _080A8F7A - movs r0, #6 -_080A8F72: - movs r1, #0 - bl DecompressTrainerBackPic - b _080A8FBC -_080A8F7A: - ldr r0, _080A8FA8 - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r4, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _080A8FB4 - ldr r1, _080A8FAC - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080A8FB0 - adds r0, r0, r1 - adds r1, r4, #0 - bl BattleLoadPlayerMonSpriteGfx - b _080A8FBC - .align 2, 0 -_080A8FA8: .4byte gUnknown_2024174 -_080A8FAC: .4byte gUnknown_2023D12 -_080A8FB0: .4byte gUnknown_2024190 -_080A8FB4: - adds r0, r4, #0 - movs r1, #0 - bl sub_0805E3F8 -_080A8FBC: - ldr r0, _080A8FCC - adds r0, #0x22 - movs r1, #0 - strb r1, [r0] -_080A8FC4: - movs r0, #1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080A8FCC: .4byte gUnknown_2024118 - thumb_func_end LoadBattlerSpriteGfx - - thumb_func_start CreateBattlerSprite -CreateBattlerSprite: @ 0x080A8FD0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _080A9008 - ldrb r0, [r0] - cmp r7, r0 - blo _080A8FEA - b _080A9368 -_080A8FEA: - ldr r0, _080A900C - ldr r0, [r0] - ldr r0, [r0] - lsls r2, r7, #2 - adds r0, r2, r0 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - str r2, [sp] - cmp r0, #0 - beq _080A9010 - adds r0, r7, #0 - bl GetSubstituteSpriteDefault_Y - b _080A9016 - .align 2, 0 -_080A9008: .4byte gUnknown_2023D10 -_080A900C: .4byte gUnknown_2024174 -_080A9010: - adds r0, r7, #0 - bl GetBattlerSpriteDefault_Y -_080A9016: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - adds r0, r7, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A902A - b _080A9134 -_080A902A: - ldr r1, _080A9114 - lsls r0, r7, #1 - adds r6, r0, r1 - ldrh r0, [r6] - movs r1, #0x64 - mov sl, r1 - mov r2, sl - muls r2, r0, r2 - adds r0, r2, #0 - ldr r1, _080A9118 - mov sb, r1 - add r0, sb - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - bne _080A904E - b _080A9368 -_080A904E: - ldrh r0, [r6] - mov r2, sl - muls r2, r0, r2 - adds r0, r2, #0 - add r0, sb - movs r1, #0xb - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r7, #0 - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl SetMultiuseSpriteTemplateToPokemon - ldr r5, _080A911C - adds r0, r7, #0 - movs r1, #2 - bl GetBattlerSpriteCoord - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r7, #0 - bl GetBattlerSpriteSubpriority - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r5, #0 - adds r1, r4, #0 - mov r2, r8 - bl CreateSprite - ldr r1, _080A9120 - adds r4, r7, r1 - strb r0, [r4] - ldr r5, _080A9124 - ldrb r0, [r4] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - lsls r3, r7, #4 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #5] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r5, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _080A9128 - str r1, [r0] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r7, [r0, #0x2e] - ldrh r0, [r6] - mov r1, sl - muls r1, r0, r1 - adds r0, r1, #0 - add r0, sb - movs r1, #0xb - bl GetMonData - ldrb r2, [r4] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r5 - strh r0, [r1, #0x32] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _080A912C - adds r1, r7, r1 - ldrb r1, [r1] - bl StartSpriteAnim - ldr r0, _080A9130 - ldr r0, [r0] - ldr r0, [r0] - ldr r2, [sp] - adds r0, r2, r0 - b _080A9318 - .align 2, 0 -_080A9114: .4byte gUnknown_2023D12 -_080A9118: .4byte gUnknown_20243E8 -_080A911C: .4byte gUnknown_2024640 -_080A9120: .4byte gUnknown_2023E88 -_080A9124: .4byte gUnknown_20205AC -_080A9128: .4byte sub_08007140 -_080A912C: .4byte gUnknown_2024188 -_080A9130: .4byte gUnknown_2024174 -_080A9134: - ldr r0, _080A9188 - ldr r1, [r0] - movs r2, #0x80 - ands r1, r2 - cmp r1, #0 - beq _080A9198 - cmp r7, #0 - bne _080A9198 - ldr r5, _080A918C - ldr r0, [r5] - ldrb r4, [r0, #8] - movs r0, #0 - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl SetMultiuseSpriteTemplateToTrainerBack - ldr r6, _080A9190 - ldr r1, _080A9194 - ldr r0, [r5] - ldrb r0, [r0, #8] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0] - movs r4, #8 - subs r4, r4, r0 - lsls r4, r4, #0x12 - movs r0, #0xa0 - lsls r0, r0, #0xf - adds r4, r4, r0 - asrs r4, r4, #0x10 - movs r0, #0 - bl GetBattlerSpriteSubpriority - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r6, #0 - b _080A91DC - .align 2, 0 -_080A9188: .4byte gUnknown_2022C90 -_080A918C: .4byte gUnknown_3005AF0 -_080A9190: .4byte gUnknown_2024640 -_080A9194: .4byte gUnknown_82D95BC -_080A9198: - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #2 - ands r0, r1 - cmp r0, #0 - beq _080A9230 - cmp r7, #0 - bne _080A9230 - movs r0, #0 - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #6 - bl SetMultiuseSpriteTemplateToTrainerBack - ldr r5, _080A921C - ldr r0, _080A9220 - ldrb r0, [r0, #0x18] - movs r4, #8 - subs r4, r4, r0 - lsls r4, r4, #0x12 - movs r1, #0xa0 - lsls r1, r1, #0xf - adds r4, r4, r1 - asrs r4, r4, #0x10 - movs r0, #0 - bl GetBattlerSpriteSubpriority - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r5, #0 -_080A91DC: - movs r1, #0x50 - adds r2, r4, #0 - bl CreateSprite - ldr r3, _080A9224 - strb r0, [r3] - ldr r4, _080A9228 - ldrb r0, [r3] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - strb r0, [r1, #5] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _080A922C - str r1, [r0] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - strh r7, [r0, #0x2e] - b _080A9338 - .align 2, 0 -_080A921C: .4byte gUnknown_2024640 -_080A9220: .4byte gUnknown_82D95BC -_080A9224: .4byte gUnknown_2023E88 -_080A9228: .4byte gUnknown_20205AC -_080A922C: .4byte sub_08007140 -_080A9230: - ldr r1, _080A9378 - lsls r0, r7, #1 - adds r6, r0, r1 - ldrh r0, [r6] - movs r2, #0x64 - mov sl, r2 - mov r1, sl - muls r1, r0, r1 - adds r0, r1, #0 - ldr r2, _080A937C - mov sb, r2 - add r0, sb - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - bne _080A9254 - b _080A9368 -_080A9254: - ldrh r0, [r6] - mov r1, sl - muls r1, r0, r1 - adds r0, r1, #0 - add r0, sb - movs r1, #0xb - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r7, #0 - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl SetMultiuseSpriteTemplateToPokemon - ldr r5, _080A9380 - adds r0, r7, #0 - movs r1, #2 - bl GetBattlerSpriteCoord - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r7, #0 - bl GetBattlerSpriteSubpriority - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r5, #0 - adds r1, r4, #0 - mov r2, r8 - bl CreateSprite - ldr r1, _080A9384 - adds r4, r7, r1 - strb r0, [r4] - ldr r5, _080A9388 - ldrb r0, [r4] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - lsls r3, r7, #4 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #5] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r5, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _080A938C - str r1, [r0] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r7, [r0, #0x2e] - ldrh r0, [r6] - mov r2, sl - muls r2, r0, r2 - adds r0, r2, #0 - add r0, sb - movs r1, #0xb - bl GetMonData - ldrb r2, [r4] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r5 - strh r0, [r1, #0x32] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _080A9390 - adds r1, r7, r1 - ldrb r1, [r1] - bl StartSpriteAnim - ldr r0, _080A9394 - ldr r0, [r0] - ldr r0, [r0] - ldr r1, [sp] - adds r0, r1, r0 -_080A9318: - ldrh r1, [r0, #2] - ldr r0, _080A9398 - cmp r1, r0 - bne _080A9338 - ldrb r0, [r4] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r0, r5, #0 - adds r0, #8 - adds r1, r1, r0 - ldr r0, _080A939C - ldr r2, _080A93A0 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1] -_080A9338: - ldr r1, _080A9388 - ldr r0, _080A9384 - adds r0, r7, r0 - ldrb r0, [r0] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r1 - ldr r0, _080A9394 - ldr r0, [r0] - ldr r0, [r0] - ldr r1, [sp] - adds r0, r1, r0 - ldr r1, [r0] - lsls r1, r1, #0x1f - adds r2, #0x3e - lsrs r1, r1, #0x1f - lsls r1, r1, #2 - ldrb r3, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] -_080A9368: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A9378: .4byte gUnknown_2023D12 -_080A937C: .4byte gUnknown_2024190 -_080A9380: .4byte gUnknown_2024640 -_080A9384: .4byte gUnknown_2023E88 -_080A9388: .4byte gUnknown_20205AC -_080A938C: .4byte sub_08007140 -_080A9390: .4byte gUnknown_2024188 -_080A9394: .4byte gUnknown_2024174 -_080A9398: .4byte 0x00000181 -_080A939C: .4byte gUnknown_82DD33C -_080A93A0: .4byte 0x00000604 - thumb_func_end CreateBattlerSprite - - thumb_func_start CreateHealthboxSprite -CreateHealthboxSprite: @ 0x080A93A4 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _080A93CC - ldrb r0, [r0] - cmp r5, r0 - blo _080A93B4 - b _080A9526 -_080A93B4: - ldr r0, _080A93D0 - ldr r1, [r0] - movs r2, #0x80 - ands r1, r2 - cmp r1, #0 - beq _080A93D4 - cmp r5, #0 - bne _080A93D4 - bl CreateSafariPlayerHealthboxSprites - b _080A93EC - .align 2, 0 -_080A93CC: .4byte gUnknown_2023D10 -_080A93D0: .4byte gUnknown_2022C90 -_080A93D4: - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #2 - ands r0, r1 - cmp r0, #0 - beq _080A93E6 - cmp r5, #0 - bne _080A93E6 - b _080A9526 -_080A93E6: - adds r0, r5, #0 - bl CreateBattlerHealthboxSprites -_080A93EC: - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _080A9428 - adds r4, r5, r0 - strb r6, [r4] - adds r0, r5, #0 - bl InitBattlerHealthboxCoords - adds r0, r6, #0 - bl SetHealthboxSpriteVisible - adds r0, r5, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A9434 - ldrb r0, [r4] - ldr r1, _080A942C - lsls r4, r5, #1 - adds r1, r4, r1 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _080A9430 - adds r1, r1, r2 - movs r2, #0 - bl UpdateHealthboxAttribute - b _080A9480 - .align 2, 0 -_080A9428: .4byte gUnknown_3005AD0 -_080A942C: .4byte gUnknown_2023D12 -_080A9430: .4byte gUnknown_20243E8 -_080A9434: - ldr r0, _080A945C - ldr r0, [r0] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A9468 - ldrb r0, [r4] - ldr r1, _080A9460 - lsls r4, r5, #1 - adds r1, r4, r1 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _080A9464 - adds r1, r1, r2 - movs r2, #0xa - bl UpdateHealthboxAttribute - b _080A9480 - .align 2, 0 -_080A945C: .4byte gUnknown_2022C90 -_080A9460: .4byte gUnknown_2023D12 -_080A9464: .4byte gUnknown_2024190 -_080A9468: - ldrb r0, [r4] - ldr r1, _080A94AC - lsls r4, r5, #1 - adds r1, r4, r1 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _080A94B0 - adds r1, r1, r2 - movs r2, #0 - bl UpdateHealthboxAttribute -_080A9480: - adds r0, r5, #0 - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - beq _080A949C - adds r0, r5, #0 - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _080A94B8 -_080A949C: - ldr r0, _080A94B4 - adds r0, r5, r0 - ldrb r0, [r0] - movs r1, #1 - bl sub_08072494 - b _080A94C4 - .align 2, 0 -_080A94AC: .4byte gUnknown_2023D12 -_080A94B0: .4byte gUnknown_2024190 -_080A94B4: .4byte gUnknown_3005AD0 -_080A94B8: - ldr r0, _080A94F0 - adds r0, r5, r0 - ldrb r0, [r0] - movs r1, #0 - bl sub_08072494 -_080A94C4: - adds r0, r5, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A94FC - ldr r0, _080A94F4 - adds r0, r4, r0 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080A94F8 - adds r0, r0, r1 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - bne _080A9526 - adds r0, r6, #0 - bl SetHealthboxSpriteInvisible - b _080A9526 - .align 2, 0 -_080A94F0: .4byte gUnknown_3005AD0 -_080A94F4: .4byte gUnknown_2023D12 -_080A94F8: .4byte gUnknown_20243E8 -_080A94FC: - ldr r0, _080A952C - ldr r0, [r0] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080A9526 - ldr r0, _080A9530 - adds r0, r4, r0 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080A9534 - adds r0, r0, r1 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - bne _080A9526 - adds r0, r6, #0 - bl SetHealthboxSpriteInvisible -_080A9526: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080A952C: .4byte gUnknown_2022C90 -_080A9530: .4byte gUnknown_2023D12 -_080A9534: .4byte gUnknown_2024190 - thumb_func_end CreateHealthboxSprite - - thumb_func_start sub_080A9538 -sub_080A9538: @ 0x080A9538 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _080A95DC - adds r0, r4, r0 - ldrb r6, [r0] - ldr r0, _080A95E0 - movs r1, #0xa - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r0, _080A95E4 - bl LoadCompressedSpriteSheetUsingHeap - ldr r0, _080A95E8 - bl LoadCompressedSpritePaletteUsingHeap - ldr r1, _080A95EC - mov r2, r8 - lsls r0, r2, #2 - add r0, r8 - lsls r0, r0, #3 - adds r1, r0, r1 - strh r4, [r1, #8] - cmp r5, #0 - beq _080A95F8 - movs r0, #0x1f - strh r0, [r1, #0xa] - movs r5, #0 - lsls r0, r6, #4 - ldr r7, _080A95F0 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r6, r0, r7 -_080A958C: - movs r0, #0x20 - ldrsh r1, [r6, r0] - ldrh r2, [r6, #0x22] - adds r2, #0x20 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - ldr r0, _080A95F4 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r3, r0, r7 - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r1, r0, #4 - adds r0, r0, r1 - strh r0, [r3, #0x2e] - movs r0, #0xff - lsls r0, r0, #8 - strh r0, [r3, #0x30] - adds r2, r3, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - cmp r5, #4 - bls _080A95D0 - movs r0, #0x15 - strh r0, [r3, #0x3a] -_080A95D0: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #9 - bls _080A958C - b _080A9658 - .align 2, 0 -_080A95DC: .4byte gUnknown_2023E88 -_080A95E0: .4byte sub_080A967C -_080A95E4: .4byte gUnknown_84FD690 -_080A95E8: .4byte gUnknown_84FDF98 -_080A95EC: .4byte gUnknown_3005B60 -_080A95F0: .4byte gUnknown_20205AC -_080A95F4: .4byte gUnknown_85176BC -_080A95F8: - movs r0, #0xf8 - lsls r0, r0, #7 - strh r0, [r1, #0xa] - movs r5, #0 - lsls r0, r6, #4 - ldr r7, _080A9674 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r6, r0, r7 -_080A960A: - movs r2, #0x20 - ldrsh r1, [r6, r2] - ldrh r2, [r6, #0x22] - subs r2, #0x20 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - ldr r0, _080A9678 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r3, r0, r7 - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r1, r0, #4 - adds r0, r0, r1 - strh r0, [r3, #0x2e] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r3, #0x30] - adds r2, r3, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - cmp r5, #4 - bls _080A964E - movs r0, #0x15 - strh r0, [r3, #0x3a] -_080A964E: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #9 - bls _080A960A -_080A9658: - ldr r0, _080A9674 - lsls r1, r4, #4 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r1, r1, r0 - movs r0, #1 - strh r0, [r1, #0x3c] - mov r0, r8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080A9674: .4byte gUnknown_20205AC -_080A9678: .4byte gUnknown_85176BC - thumb_func_end sub_080A9538 - - thumb_func_start sub_080A967C -sub_080A967C: @ 0x080A967C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _080A96D4 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrh r1, [r4, #0xc] - movs r2, #0xc - ldrsh r0, [r4, r2] - cmp r0, #2 - bne _080A9702 - movs r0, #0 - strh r0, [r4, #0xc] - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #0x14 - movs r2, #0x80 - lsls r2, r2, #0x11 - adds r0, r0, r2 - lsrs r0, r0, #0x10 - ldrb r2, [r4, #0x10] - ldrh r3, [r4, #0xa] - movs r1, #0x10 - bl BlendPalette - ldrh r2, [r4, #0x12] - movs r1, #0x12 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080A96D8 - ldrh r0, [r4, #0x10] - adds r0, #1 - strh r0, [r4, #0x10] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #8 - ble _080A9706 - movs r0, #1 - eors r0, r2 - strh r0, [r4, #0x12] - b _080A9706 - .align 2, 0 -_080A96D4: .4byte gUnknown_3005B60 -_080A96D8: - ldrh r1, [r4, #0x10] - subs r0, r1, #1 - strh r0, [r4, #0x10] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _080A9706 - strh r1, [r4, #0x10] - movs r0, #1 - eors r0, r2 - strh r0, [r4, #0x12] - ldrh r0, [r4, #0xe] - adds r0, #1 - strh r0, [r4, #0xe] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - bne _080A9706 - adds r0, r5, #0 - bl DestroyTask - b _080A9706 -_080A9702: - adds r0, r1, #1 - strh r0, [r4, #0xc] -_080A9706: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_080A967C - - thumb_func_start sub_080A970C -sub_080A970C: @ 0x080A970C - push {lr} - adds r2, r0, #0 - ldrh r1, [r2, #0x3a] - movs r3, #0x3a - ldrsh r0, [r2, r3] - cmp r0, #0 - bne _080A9738 - adds r3, r2, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r3] - ldr r1, _080A9734 - str r1, [r2, #0x1c] - adds r0, r2, #0 - bl _call_via_r1 - b _080A973C - .align 2, 0 -_080A9734: .4byte sub_080A9740 -_080A9738: - subs r0, r1, #1 - strh r0, [r2, #0x3a] -_080A973C: - pop {r0} - bx r0 - thumb_func_end sub_080A970C - - thumb_func_start sub_080A9740 -sub_080A9740: @ 0x080A9740 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r1, #0x20 - bl Cos - strh r0, [r4, #0x24] - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r1, #8 - bl Sin - strh r0, [r4, #0x26] - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0x7f - bgt _080A976C - adds r1, r4, #0 - adds r1, #0x43 - movs r0, #0x1d - b _080A9772 -_080A976C: - adds r1, r4, #0 - adds r1, #0x43 - movs r0, #0x1f -_080A9772: - strb r0, [r1] - ldrh r0, [r4, #0x2e] - adds r0, #8 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x30] - ldrh r1, [r4, #0x38] - adds r0, r0, r1 - strh r0, [r4, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x26] - adds r0, r0, r1 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x34 - bne _080A97B4 - movs r1, #0x3c - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _080A97AE - adds r0, r4, #0 - bl DestroySpriteAndFreeResources - b _080A97B4 -_080A97AE: - adds r0, r4, #0 - bl DestroySprite -_080A97B4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080A9740 - - thumb_func_start sub_080A97BC -sub_080A97BC: @ 0x080A97BC - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r4, _080A986C - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #8 - ldr r1, _080A9870 - adds r0, r0, r1 - lsrs r5, r0, #0x10 - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #8 - ldr r1, _080A9874 - adds r0, r0, r1 - lsrs r4, r0, #0x10 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A97FA - lsls r0, r5, #0x10 - ldr r1, _080A9878 - adds r0, r0, r1 - lsrs r5, r0, #0x10 -_080A97FA: - movs r1, #0xfd - lsls r1, r1, #6 - movs r0, #0x50 - bl SetGpuReg - movs r1, #0x80 - lsls r1, r1, #5 - movs r0, #0x52 - bl SetGpuReg - ldr r0, _080A987C - lsls r1, r5, #0x10 - asrs r1, r1, #0x10 - lsls r2, r4, #0x10 - asrs r2, r2, #0x10 - movs r3, #4 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080A9880 - bl GetSpriteTileStartByTag - lsls r0, r0, #0x10 - ldr r1, _080A9884 - cmp r0, r1 - bne _080A9844 - ldr r1, _080A9888 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_080A9844: - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - ldr r1, _080A9888 - adds r0, r0, r1 - ldr r1, _080A988C - bl SetSubspriteTables - ldr r1, _080A9890 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r4, [r0, #0x26] - ldr r1, _080A9894 - str r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080A986C: .4byte gUnknown_20380D7 -_080A9870: .4byte 0xFFE00000 -_080A9874: .4byte 0xFFDC0000 -_080A9878: .4byte 0xFFFA0000 -_080A987C: .4byte gUnknown_85176A4 -_080A9880: .4byte 0x0000271A -_080A9884: .4byte 0xFFFF0000 -_080A9888: .4byte gUnknown_20205AC -_080A988C: .4byte gUnknown_851769C -_080A9890: .4byte gUnknown_3005B60 -_080A9894: .4byte sub_080A9898 - thumb_func_end sub_080A97BC - - thumb_func_start sub_080A9898 -sub_080A9898: @ 0x080A9898 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080A98C4 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldrh r0, [r1, #0xa] - adds r0, #1 - adds r2, r0, #0 - strh r0, [r1, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xa - bne _080A98CC - ldr r0, _080A98C8 - str r0, [r1] - movs r0, #0 - strh r0, [r1, #0xa] - b _080A98E2 - .align 2, 0 -_080A98C4: .4byte gUnknown_3005B60 -_080A98C8: .4byte sub_080A98E8 -_080A98CC: - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x10 - subs r1, r1, r0 - lsls r1, r1, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg -_080A98E2: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080A9898 - - thumb_func_start sub_080A98E8 -sub_080A98E8: @ 0x080A98E8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _080A9980 - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _080A9984 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r5, r0, r1 - ldrh r0, [r5, #0xa] - adds r1, r0, #1 - strh r1, [r5, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xd - ble _080A9978 - ldrh r0, [r5, #0xc] - adds r0, #1 - movs r6, #0 - strh r0, [r5, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - bne _080A9978 - ldr r3, _080A9988 - lsls r2, r2, #4 - mov ip, r2 - ldr r1, _080A998C - add r1, ip - lsls r1, r1, #1 - adds r1, r1, r3 - ldrh r4, [r1] - movs r2, #0x87 - lsls r2, r2, #1 - add r2, ip - lsls r2, r2, #1 - adds r2, r2, r3 - ldrh r0, [r2] - strh r0, [r1] - ldr r0, _080A9990 - add r0, ip - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r1, [r0] - strh r1, [r2] - strh r4, [r0] - strh r6, [r5, #0xc] - ldrh r0, [r5, #0xe] - adds r0, #1 - strh r0, [r5, #0xe] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - bne _080A9978 - strh r6, [r5, #0xe] - strh r6, [r5, #0xa] - ldrh r0, [r5, #0x10] - adds r0, #1 - strh r0, [r5, #0x10] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - bne _080A9978 - movs r0, #9 - strh r0, [r5, #0xa] - ldr r0, _080A9994 - str r0, [r5] -_080A9978: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080A9980: .4byte 0x0000271A -_080A9984: .4byte gUnknown_3005B60 -_080A9988: .4byte gUnknown_20377B4 -_080A998C: .4byte 0x0000010D -_080A9990: .4byte 0x0000010F -_080A9994: .4byte sub_080A9998 - thumb_func_end sub_080A98E8 - - thumb_func_start sub_080A9998 -sub_080A9998: @ 0x080A9998 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080A99C8 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r2, r1, r2 - ldrh r0, [r2, #0xa] - subs r0, #1 - adds r3, r0, #0 - strh r0, [r2, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _080A99D0 - ldr r0, _080A99CC - str r0, [r2] - movs r0, #0 - strh r0, [r2, #0xa] - b _080A99E6 - .align 2, 0 -_080A99C8: .4byte gUnknown_3005B60 -_080A99CC: .4byte sub_080A99EC -_080A99D0: - lsls r0, r3, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x10 - subs r1, r1, r0 - lsls r1, r1, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg -_080A99E6: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080A9998 - - thumb_func_start sub_080A99EC -sub_080A99EC: @ 0x080A99EC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r4, r0, #0 - ldr r1, _080A9A2C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r1, r0, r1 - ldrh r0, [r1, #0xa] - adds r0, #1 - strh r0, [r1, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x25 - bne _080A9A34 - ldrh r0, [r1, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _080A9A30 - adds r4, r4, r0 - adds r0, r4, #0 - bl FreeSpriteOamMatrix - adds r0, r4, #0 - bl DestroySprite - b _080A9A4E - .align 2, 0 -_080A9A2C: .4byte gUnknown_3005B60 -_080A9A30: .4byte gUnknown_20205AC -_080A9A34: - cmp r0, #0x27 - bne _080A9A4E - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - adds r0, r4, #0 - bl DestroyAnimVisualTask -_080A9A4E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080A99EC - - thumb_func_start AnimTask_StatsChange -AnimTask_StatsChange: @ 0x080A9A54 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r3, #0 - ldr r0, _080A9A78 - ldr r0, [r0] - ldr r0, [r0, #8] - ldrh r0, [r0] - subs r0, #0xf - cmp r0, #0x2b - bls _080A9A6C - b _080A9BF0 -_080A9A6C: - lsls r0, r0, #2 - ldr r1, _080A9A7C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080A9A78: .4byte gUnknown_2024174 -_080A9A7C: .4byte _080A9A80 -_080A9A80: @ jump table - .4byte _080A9B30 @ case 0 - .4byte _080A9B36 @ case 1 - .4byte _080A9B3C @ case 2 - .4byte _080A9B42 @ case 3 - .4byte _080A9B48 @ case 4 - .4byte _080A9B4E @ case 5 - .4byte _080A9B54 @ case 6 - .4byte _080A9B5A @ case 7 - .4byte _080A9B60 @ case 8 - .4byte _080A9B66 @ case 9 - .4byte _080A9B6C @ case 10 - .4byte _080A9B72 @ case 11 - .4byte _080A9B78 @ case 12 - .4byte _080A9B7E @ case 13 - .4byte _080A9BF0 @ case 14 - .4byte _080A9BF0 @ case 15 - .4byte _080A9BF0 @ case 16 - .4byte _080A9BF0 @ case 17 - .4byte _080A9BF0 @ case 18 - .4byte _080A9BF0 @ case 19 - .4byte _080A9BF0 @ case 20 - .4byte _080A9BF0 @ case 21 - .4byte _080A9BF0 @ case 22 - .4byte _080A9BF0 @ case 23 - .4byte _080A9B84 @ case 24 - .4byte _080A9B88 @ case 25 - .4byte _080A9B8C @ case 26 - .4byte _080A9B90 @ case 27 - .4byte _080A9B94 @ case 28 - .4byte _080A9B98 @ case 29 - .4byte _080A9B9C @ case 30 - .4byte _080A9BA0 @ case 31 - .4byte _080A9BA8 @ case 32 - .4byte _080A9BB0 @ case 33 - .4byte _080A9BB8 @ case 34 - .4byte _080A9BC0 @ case 35 - .4byte _080A9BC8 @ case 36 - .4byte _080A9BD0 @ case 37 - .4byte _080A9BF0 @ case 38 - .4byte _080A9BF0 @ case 39 - .4byte _080A9BD8 @ case 40 - .4byte _080A9BDC @ case 41 - .4byte _080A9BE0 @ case 42 - .4byte _080A9BE8 @ case 43 -_080A9B30: - movs r5, #0 - movs r2, #0 - b _080A9BF8 -_080A9B36: - movs r5, #0 - movs r2, #1 - b _080A9BF8 -_080A9B3C: - movs r5, #0 - movs r2, #3 - b _080A9BF8 -_080A9B42: - movs r5, #0 - movs r2, #5 - b _080A9BF8 -_080A9B48: - movs r5, #0 - movs r2, #6 - b _080A9BF8 -_080A9B4E: - movs r5, #0 - movs r2, #2 - b _080A9BF8 -_080A9B54: - movs r5, #0 - movs r2, #4 - b _080A9BF8 -_080A9B5A: - movs r5, #1 - movs r2, #0 - b _080A9BF8 -_080A9B60: - movs r5, #1 - movs r2, #1 - b _080A9BF8 -_080A9B66: - movs r5, #1 - movs r2, #3 - b _080A9BF8 -_080A9B6C: - movs r5, #1 - movs r2, #5 - b _080A9BF8 -_080A9B72: - movs r5, #1 - movs r2, #6 - b _080A9BF8 -_080A9B78: - movs r5, #1 - movs r2, #2 - b _080A9BF8 -_080A9B7E: - movs r5, #1 - movs r2, #4 - b _080A9BF8 -_080A9B84: - movs r5, #0 - b _080A9BA2 -_080A9B88: - movs r5, #0 - b _080A9BAA -_080A9B8C: - movs r5, #0 - b _080A9BB2 -_080A9B90: - movs r5, #0 - b _080A9BBA -_080A9B94: - movs r5, #0 - b _080A9BC2 -_080A9B98: - movs r5, #0 - b _080A9BCA -_080A9B9C: - movs r5, #0 - b _080A9BD2 -_080A9BA0: - movs r5, #1 -_080A9BA2: - movs r2, #0 - movs r3, #1 - b _080A9BF8 -_080A9BA8: - movs r5, #1 -_080A9BAA: - movs r2, #1 - movs r3, #1 - b _080A9BF8 -_080A9BB0: - movs r5, #1 -_080A9BB2: - movs r2, #3 - movs r3, #1 - b _080A9BF8 -_080A9BB8: - movs r5, #1 -_080A9BBA: - movs r2, #5 - movs r3, #1 - b _080A9BF8 -_080A9BC0: - movs r5, #1 -_080A9BC2: - movs r2, #6 - movs r3, #1 - b _080A9BF8 -_080A9BC8: - movs r5, #1 -_080A9BCA: - movs r2, #2 - movs r3, #1 - b _080A9BF8 -_080A9BD0: - movs r5, #1 -_080A9BD2: - movs r2, #4 - movs r3, #1 - b _080A9BF8 -_080A9BD8: - movs r5, #0 - b _080A9BE2 -_080A9BDC: - movs r5, #0 - b _080A9BEA -_080A9BE0: - movs r5, #1 -_080A9BE2: - movs r2, #0xff - movs r3, #0 - b _080A9BF8 -_080A9BE8: - movs r5, #1 -_080A9BEA: - movs r2, #0xff - movs r3, #1 - b _080A9BF8 -_080A9BF0: - adds r0, r4, #0 - bl DestroyAnimVisualTask - b _080A9C1A -_080A9BF8: - ldr r0, _080A9C20 - movs r1, #0 - strh r5, [r0] - strh r2, [r0, #2] - strh r1, [r0, #4] - strh r1, [r0, #6] - strh r3, [r0, #8] - ldr r1, _080A9C24 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080A9C28 - str r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 -_080A9C1A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080A9C20: .4byte gUnknown_20380BE -_080A9C24: .4byte gUnknown_3005B60 -_080A9C28: .4byte sub_08117704 - thumb_func_end AnimTask_StatsChange - - thumb_func_start LaunchStatusAnimation -LaunchStatusAnimation: @ 0x080A9C2C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, _080A9C68 - strb r4, [r0] - ldr r0, _080A9C6C - strb r4, [r0] - ldr r0, _080A9C70 - movs r2, #0 - bl LaunchBattleAnimation - ldr r0, _080A9C74 - movs r1, #0xa - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080A9C78 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9C68: .4byte gUnknown_20380D6 -_080A9C6C: .4byte gUnknown_20380D7 -_080A9C70: .4byte gUnknown_8277888 -_080A9C74: .4byte sub_080A9C7C -_080A9C78: .4byte gUnknown_3005B60 - thumb_func_end LaunchStatusAnimation - - thumb_func_start sub_080A9C7C -sub_080A9C7C: @ 0x080A9C7C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080A9CC4 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _080A9CC8 - thumb_func_end sub_080A9C7C - - thumb_func_start sub_080A9C8C -sub_080A9C8C: @ 0x080A9C8C - ldrb r0, [r0] - cmp r0, #0 - bne _080A9CBE - ldr r0, _080A9CCC - ldr r2, [r0] - ldr r1, _080A9CD0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #8 - ldrsh r0, [r0, r1] - ldr r2, [r2, #4] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r2, [r1] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - adds r0, r4, #0 - bl DestroyTask -_080A9CBE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9CC4: .4byte gUnknown_2038098 -_080A9CC8: .4byte gUnknown_203809D -_080A9CCC: .4byte gUnknown_2024174 -_080A9CD0: .4byte gUnknown_3005B60 - thumb_func_end sub_080A9C8C - - thumb_func_start SpriteCB_VersionBannerLeft -SpriteCB_VersionBannerLeft: @ 0x080A9CD4 - push {lr} - adds r3, r0, #0 - ldr r2, _080A9D00 - movs r0, #0x30 - ldrsh r1, [r3, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r1, #0xa - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _080A9D04 - ldrb r0, [r3, #1] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r3, #1] - movs r0, #0x30 - strh r0, [r3, #0x22] - b _080A9D32 - .align 2, 0 -_080A9D00: .4byte gUnknown_3005B60 -_080A9D04: - ldrh r1, [r3, #0x22] - movs r2, #0x22 - ldrsh r0, [r3, r2] - cmp r0, #0x30 - beq _080A9D12 - adds r0, r1, #1 - strh r0, [r3, #0x22] -_080A9D12: - ldrh r1, [r3, #0x2e] - movs r2, #0x2e - ldrsh r0, [r3, r2] - cmp r0, #0 - beq _080A9D20 - subs r0, r1, #1 - strh r0, [r3, #0x2e] -_080A9D20: - ldr r0, _080A9D38 - movs r2, #0x2e - ldrsh r1, [r3, r2] - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r1, [r1] - movs r0, #0x52 - bl SetGpuReg -_080A9D32: - pop {r0} - bx r0 - .align 2, 0 -_080A9D38: .4byte gUnknown_851AC0C - thumb_func_end SpriteCB_VersionBannerLeft - - thumb_func_start SpriteCB_VersionBannerRight -SpriteCB_VersionBannerRight: @ 0x080A9D3C - push {lr} - adds r3, r0, #0 - ldr r2, _080A9D64 - movs r0, #0x30 - ldrsh r1, [r3, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r1, #0xa - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _080A9D68 - ldrb r0, [r3, #1] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r3, #1] - movs r0, #0x30 - b _080A9D74 - .align 2, 0 -_080A9D64: .4byte gUnknown_3005B60 -_080A9D68: - ldrh r1, [r3, #0x22] - movs r2, #0x22 - ldrsh r0, [r3, r2] - cmp r0, #0x30 - beq _080A9D76 - adds r0, r1, #1 -_080A9D74: - strh r0, [r3, #0x22] -_080A9D76: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SpriteCB_VersionBannerRight - - thumb_func_start SpriteCB_PressStartCopyrightBanner -SpriteCB_PressStartCopyrightBanner: @ 0x080A9D7C - push {lr} - adds r2, r0, #0 - movs r1, #0x2e - ldrsh r0, [r2, r1] - cmp r0, #1 - bne _080A9DA4 - ldrh r0, [r2, #0x30] - adds r0, #1 - strh r0, [r2, #0x30] - movs r1, #0x10 - ands r0, r1 - cmp r0, #0 - bne _080A9DA4 - adds r0, r2, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - b _080A9DB0 -_080A9DA4: - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_080A9DB0: - pop {r0} - bx r0 - thumb_func_end SpriteCB_PressStartCopyrightBanner - - thumb_func_start CreatePressStartBanner -CreatePressStartBanner: @ 0x080A9DB4 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - ldr r2, _080A9E04 - adds r0, r0, r2 - lsrs r0, r0, #0x10 - movs r6, #0 - lsls r7, r1, #0x10 -_080A9DC2: - lsls r5, r0, #0x10 - asrs r5, r5, #0x10 - ldr r0, _080A9E08 - adds r1, r5, #0 - asrs r2, r7, #0x10 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _080A9E0C - adds r4, r4, r0 - adds r0, r4, #0 - adds r1, r6, #0 - bl StartSpriteAnim - movs r0, #1 - strh r0, [r4, #0x2e] - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r5, #0x20 - lsls r5, r5, #0x10 - lsrs r0, r5, #0x10 - cmp r6, #4 - bls _080A9DC2 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080A9E04: .4byte 0xFFC00000 -_080A9E08: .4byte gUnknown_851AD74 -_080A9E0C: .4byte gUnknown_20205AC - thumb_func_end CreatePressStartBanner - - thumb_func_start CreateCopyrightBanner -CreateCopyrightBanner: @ 0x080A9E10 - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - ldr r2, _080A9E60 - adds r0, r0, r2 - lsrs r0, r0, #0x10 - movs r5, #0 - lsls r6, r1, #0x10 -_080A9E1E: - lsls r4, r0, #0x10 - asrs r4, r4, #0x10 - ldr r0, _080A9E64 - adds r1, r4, #0 - asrs r2, r6, #0x10 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r0, _080A9E68 - adds r2, r2, r0 - adds r1, r5, #5 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r2, #0 - bl StartSpriteAnim - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r4, #0x20 - lsls r4, r4, #0x10 - lsrs r0, r4, #0x10 - cmp r5, #4 - bls _080A9E1E - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080A9E60: .4byte 0xFFC00000 -_080A9E64: .4byte gUnknown_851AD74 -_080A9E68: .4byte gUnknown_20205AC - thumb_func_end CreateCopyrightBanner - - thumb_func_start SpriteCB_PokemonLogoShine -SpriteCB_PokemonLogoShine: @ 0x080A9E6C - push {r4, lr} - adds r3, r0, #0 - ldrh r2, [r3, #0x20] - movs r0, #0x20 - ldrsh r1, [r3, r0] - ldr r0, _080A9EA4 - cmp r1, r0 - bgt _080A9F04 - movs r4, #0x2e - ldrsh r0, [r3, r4] - adds r4, r2, #0 - cmp r0, #0 - beq _080A9EF8 - cmp r1, #0x77 - bgt _080A9EA8 - ldrh r1, [r3, #0x30] - movs r2, #0x30 - ldrsh r0, [r3, r2] - cmp r0, #0x1e - bgt _080A9EC0 - adds r1, #1 - strh r1, [r3, #0x30] - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1e - bgt _080A9EC0 - adds r0, r1, #1 - b _080A9EBE - .align 2, 0 -_080A9EA4: .4byte 0x0000010F -_080A9EA8: - ldrh r1, [r3, #0x30] - movs r4, #0x30 - ldrsh r0, [r3, r4] - cmp r0, #0 - beq _080A9EC0 - subs r0, r1, #1 - strh r0, [r3, #0x30] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080A9EC0 - subs r0, r1, #2 -_080A9EBE: - strh r0, [r3, #0x30] -_080A9EC0: - ldrh r1, [r3, #0x30] - movs r0, #0x1f - ands r0, r1 - lsls r2, r0, #0xa - lsls r1, r0, #5 - adds r2, r2, r1 - orrs r2, r0 - movs r1, #0x20 - ldrsh r0, [r3, r1] - ldrh r4, [r3, #0x20] - cmp r0, #0x84 - beq _080A9EE4 - cmp r0, #0x88 - beq _080A9EE4 - cmp r0, #0x8c - beq _080A9EE4 - cmp r0, #0x90 - bne _080A9EF4 -_080A9EE4: - ldr r1, _080A9EEC - ldr r0, _080A9EF0 - strh r0, [r1] - b _080A9EF8 - .align 2, 0 -_080A9EEC: .4byte gUnknown_20377B4 -_080A9EF0: .4byte 0x000033F8 -_080A9EF4: - ldr r0, _080A9F00 - strh r2, [r0] -_080A9EF8: - adds r0, r4, #4 - strh r0, [r3, #0x20] - b _080A9F10 - .align 2, 0 -_080A9F00: .4byte gUnknown_20377B4 -_080A9F04: - ldr r1, _080A9F18 - movs r0, #0 - strh r0, [r1] - adds r0, r3, #0 - bl DestroySprite -_080A9F10: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9F18: .4byte gUnknown_20377B4 - thumb_func_end SpriteCB_PokemonLogoShine - - thumb_func_start SpriteCB_PokemonLogoShine2 -SpriteCB_PokemonLogoShine2: @ 0x080A9F1C - push {lr} - adds r2, r0, #0 - ldrh r3, [r2, #0x20] - movs r0, #0x20 - ldrsh r1, [r2, r0] - ldr r0, _080A9F34 - cmp r1, r0 - bgt _080A9F38 - adds r0, r3, #0 - adds r0, #8 - strh r0, [r2, #0x20] - b _080A9F3E - .align 2, 0 -_080A9F34: .4byte 0x0000010F -_080A9F38: - adds r0, r2, #0 - bl DestroySprite -_080A9F3E: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SpriteCB_PokemonLogoShine2 - - thumb_func_start StartPokemonLogoShine -StartPokemonLogoShine: @ 0x080A9F44 - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #1 - beq _080A9F98 - cmp r5, #1 - bgt _080A9F60 - cmp r5, #0 - beq _080A9F64 - b _080AA02E -_080A9F60: - cmp r5, #2 - bne _080AA02E -_080A9F64: - ldr r0, _080A9F90 - movs r1, #0 - movs r2, #0x44 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _080A9F94 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r2, [r0, #1] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #8 - orrs r1, r2 - strb r1, [r0, #1] - strh r5, [r0, #0x2e] - b _080AA02E - .align 2, 0 -_080A9F90: .4byte gUnknown_851ADC0 -_080A9F94: .4byte gUnknown_20205AC -_080A9F98: - ldr r0, _080AA03C - mov sb, r0 - movs r1, #0 - movs r2, #0x44 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r6, _080AA040 - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrb r2, [r1, #1] - movs r4, #0xd - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r2 - movs r2, #8 - mov r8, r2 - mov r2, r8 - orrs r0, r2 - strb r0, [r1, #1] - strh r5, [r1, #0x2e] - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - mov r0, sb - movs r1, #0 - movs r2, #0x44 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r5, r6, #0 - adds r5, #0x1c - adds r0, r1, r5 - ldr r2, _080AA044 - mov sl, r2 - str r2, [r0] - adds r1, r1, r6 - ldrb r2, [r1, #1] - adds r0, r4, #0 - ands r0, r2 - mov r2, r8 - orrs r0, r2 - strb r0, [r1, #1] - movs r1, #0x50 - rsbs r1, r1, #0 - mov r0, sb - movs r2, #0x44 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r5, r0, r5 - mov r1, sl - str r1, [r5] - adds r0, r0, r6 - ldrb r1, [r0, #1] - ands r4, r1 - mov r2, r8 - orrs r4, r2 - strb r4, [r0, #1] -_080AA02E: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080AA03C: .4byte gUnknown_851ADC0 -_080AA040: .4byte gUnknown_20205AC -_080AA044: .4byte SpriteCB_PokemonLogoShine2 - thumb_func_end StartPokemonLogoShine - - thumb_func_start StopCryAndClearCrySongs -StopCryAndClearCrySongs: @ 0x080AA048 - push {lr} - bl ScanlineEffect_InitHBlankDmaTransfer - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - ldr r0, _080AA068 - ldrh r1, [r0] - movs r0, #0x16 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 -_080AA068: .4byte gUnknown_2022ACE - thumb_func_end StopCryAndClearCrySongs - - thumb_func_start sub_080AA06C -sub_080AA06C: @ 0x080AA06C - push {r4, r5, lr} - sub sp, #0x14 - ldr r0, _080AA088 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #5 - bhi _080AA0A8 - lsls r0, r0, #2 - ldr r1, _080AA08C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080AA088: .4byte gUnknown_3002360 -_080AA08C: .4byte _080AA090 -_080AA090: @ jump table - .4byte _080AA0A8 @ case 0 - .4byte _080AA18C @ case 1 - .4byte _080AA26C @ case 2 - .4byte _080AA2B4 @ case 3 - .4byte _080AA2E8 @ case 4 - .4byte _080AA3C4 @ case 5 -_080AA0A8: - movs r0, #0 - bl SetVBlankCallback - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - movs r1, #0xa0 - lsls r1, r1, #0x13 - ldr r2, _080AA170 - adds r0, r2, #0 - strh r0, [r1] - movs r0, #0 - movs r1, #0 - bl SetGpuReg - movs r0, #0xc - movs r1, #0 - bl SetGpuReg - movs r0, #0xa - movs r1, #0 - bl SetGpuReg - movs r0, #8 - movs r1, #0 - bl SetGpuReg - movs r0, #0x18 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1a - movs r1, #0 - bl SetGpuReg - movs r0, #0x14 - movs r1, #0 - bl SetGpuReg - movs r0, #0x16 - movs r1, #0 - bl SetGpuReg - movs r0, #0x10 - movs r1, #0 - bl SetGpuReg - movs r0, #0x12 - movs r1, #0 - bl SetGpuReg - add r1, sp, #0xc - movs r0, #0 - strh r0, [r1] - ldr r1, _080AA174 - add r0, sp, #0xc - str r0, [r1] - movs r0, #0xc0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _080AA178 - str r0, [r1, #8] - ldr r0, [r1, #8] - movs r2, #0 - str r2, [sp, #0x10] - add r0, sp, #0x10 - str r0, [r1] - movs r0, #0xe0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _080AA17C - str r0, [r1, #8] - ldr r0, [r1, #8] - add r0, sp, #0xc - strh r2, [r0] - str r0, [r1] - ldr r0, _080AA180 - str r0, [r1, #4] - ldr r0, _080AA184 - str r0, [r1, #8] - ldr r0, [r1, #8] - bl ResetPaletteFade - ldr r0, _080AA188 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - movs r1, #1 - strb r1, [r0] - b _080AA3F2 - .align 2, 0 -_080AA170: .4byte 0x00007FFF -_080AA174: .4byte 0x040000D4 -_080AA178: .4byte 0x8100C000 -_080AA17C: .4byte 0x85000100 -_080AA180: .4byte 0x05000002 -_080AA184: .4byte 0x810001FF -_080AA188: .4byte gUnknown_3002360 -_080AA18C: - ldr r0, _080AA224 - movs r1, #0xc0 - lsls r1, r1, #0x13 - bl LZ77UnCompVram - ldr r0, _080AA228 - ldr r1, _080AA22C - bl LZ77UnCompVram - ldr r4, _080AA230 - movs r5, #0x90 - lsls r5, r5, #1 - adds r0, r4, #0 - movs r1, #0 - adds r2, r5, #0 - bl LoadPalette - ldr r0, _080AA234 - ldr r1, _080AA238 - bl LZ77UnCompVram - ldr r0, _080AA23C - ldr r1, _080AA240 - bl LZ77UnCompVram - adds r0, r4, #0 - adds r0, #0xa0 - movs r1, #0xe0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _080AA244 - ldr r1, _080AA248 - bl LZ77UnCompVram - ldr r0, _080AA24C - ldr r1, _080AA250 - bl LZ77UnCompVram - bl ScanlineEffect_Stop - bl ResetTasks - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r1, _080AA254 - movs r0, #9 - strb r0, [r1] - ldr r0, _080AA258 - bl LoadCompressedSpriteSheet - ldr r0, _080AA25C - bl LoadCompressedSpriteSheet - ldr r0, _080AA260 - bl LoadCompressedSpriteSheet - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r4, #0 - adds r2, r5, #0 - bl LoadPalette - ldr r0, _080AA264 - bl LoadSpritePalette - ldr r0, _080AA268 - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r0, r2 - movs r1, #2 - strb r1, [r0] - b _080AA3F2 - .align 2, 0 -_080AA224: .4byte gUnknown_8517C18 -_080AA228: .4byte gUnknown_8517AA0 -_080AA22C: .4byte 0x06004800 -_080AA230: .4byte gUnknown_8517B58 -_080AA234: .4byte gUnknown_8519AB4 -_080AA238: .4byte 0x06008000 -_080AA23C: .4byte gUnknown_851A298 -_080AA240: .4byte 0x0600D000 -_080AA244: .4byte gUnknown_851A6E8 -_080AA248: .4byte 0x0600C000 -_080AA24C: .4byte gUnknown_851A9CC -_080AA250: .4byte 0x0600D800 -_080AA254: .4byte gUnknown_30030BC -_080AA258: .4byte gUnknown_851ACE4 -_080AA25C: .4byte gUnknown_851AD8C -_080AA260: .4byte gUnknown_851ADD8 -_080AA264: .4byte gUnknown_851AD9C -_080AA268: .4byte gUnknown_3002360 -_080AA26C: - ldr r0, _080AA2A4 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080AA2A8 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r2, #0 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r1, #8] - strh r2, [r1, #0xa] - ldr r0, _080AA2AC - strh r0, [r1, #0xc] - subs r0, #0x10 - strh r0, [r1, #0xe] - ldr r0, _080AA2B0 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - movs r1, #3 - strb r1, [r0] - b _080AA3F2 - .align 2, 0 -_080AA2A4: .4byte sub_080AA418 -_080AA2A8: .4byte gUnknown_3005B60 -_080AA2AC: .4byte 0x0000FFF0 -_080AA2B0: .4byte gUnknown_3002360 -_080AA2B4: - movs r0, #1 - rsbs r0, r0, #0 - ldr r1, _080AA2DC - str r1, [sp] - movs r1, #1 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r0, _080AA2E0 - bl SetVBlankCallback - ldr r0, _080AA2E4 - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r0, r2 - movs r1, #4 - strb r1, [r0] - b _080AA3F2 - .align 2, 0 -_080AA2DC: .4byte 0x0000FFFF -_080AA2E0: .4byte StopCryAndClearCrySongs -_080AA2E4: .4byte gUnknown_3002360 -_080AA2E8: - movs r2, #0x80 - lsls r2, r2, #1 - movs r0, #0x78 - movs r1, #0x50 - movs r3, #0 - bl PanFadeAndZoomScreen - movs r1, #0xf0 - lsls r1, r1, #8 - movs r0, #0x28 - bl SetGpuReg - ldr r4, _080AA3A0 - movs r0, #0x2a - adds r1, r4, #0 - bl SetGpuReg - movs r1, #0xe0 - lsls r1, r1, #8 - movs r0, #0x2c - bl SetGpuReg - movs r0, #0x2e - adds r1, r4, #0 - bl SetGpuReg - movs r0, #0x40 - movs r1, #0 - bl SetGpuReg - movs r0, #0x44 - movs r1, #0 - bl SetGpuReg - movs r0, #0x42 - movs r1, #0 - bl SetGpuReg - movs r0, #0x46 - movs r1, #0 - bl SetGpuReg - ldr r1, _080AA3A4 - movs r0, #0x48 - bl SetGpuReg - ldr r1, _080AA3A8 - movs r0, #0x4a - bl SetGpuReg - movs r0, #0x50 - movs r1, #0x84 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0xc - bl SetGpuReg - ldr r1, _080AA3AC - movs r0, #8 - bl SetGpuReg - ldr r1, _080AA3B0 - movs r0, #0xa - bl SetGpuReg - ldr r1, _080AA3B4 - movs r0, #0xc - bl SetGpuReg - movs r0, #1 - bl EnableInterrupts - ldr r1, _080AA3B8 - movs r0, #0 - bl SetGpuReg - ldr r0, _080AA3BC - bl m4aSongNumStart - ldr r0, _080AA3C0 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - movs r1, #5 - strb r1, [r0] - b _080AA3F2 - .align 2, 0 -_080AA3A0: .4byte 0x0000FFFF -_080AA3A4: .4byte 0x00001F1F -_080AA3A8: .4byte 0x00003F1F -_080AA3AC: .4byte 0x00001A0B -_080AA3B0: .4byte 0x00001B0E -_080AA3B4: .4byte 0x00004981 -_080AA3B8: .4byte 0x0000B441 -_080AA3BC: .4byte 0x0000019D -_080AA3C0: .4byte gUnknown_3002360 -_080AA3C4: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _080AA3F2 - movs r0, #0 - bl StartPokemonLogoShine - str r4, [sp] - movs r0, #4 - str r0, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - movs r0, #0 - movs r1, #0xa0 - movs r2, #4 - movs r3, #4 - bl ScanlineEffect_InitWave - ldr r0, _080AA3FC - bl SetMainCallback2 -_080AA3F2: - add sp, #0x14 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080AA3FC: .4byte sub_080AA400 - thumb_func_end sub_080AA06C - - thumb_func_start sub_080AA400 -sub_080AA400: @ 0x080AA400 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080AA400 - - thumb_func_start sub_080AA418 -sub_080AA418: @ 0x080AA418 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _080AA46C - ldrh r1, [r0, #0x2e] - movs r0, #0xf - ands r0, r1 - ldr r5, _080AA470 - cmp r0, #0 - bne _080AA43E - lsls r0, r6, #2 - adds r1, r0, r6 - lsls r1, r1, #3 - adds r1, r1, r5 - movs r2, #0xa - ldrsh r1, [r1, r2] - adds r4, r0, #0 - cmp r1, #0 - beq _080AA450 -_080AA43E: - lsls r3, r6, #2 - adds r0, r3, r6 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r2, #0 - movs r1, #1 - strh r1, [r0, #0xa] - strh r2, [r0, #8] - adds r4, r3, #0 -_080AA450: - adds r0, r4, r6 - lsls r0, r0, #3 - adds r7, r0, r5 - movs r1, #8 - ldrsh r0, [r7, r1] - cmp r0, #0 - beq _080AA494 - ldrh r0, [r7, #8] - cmp r0, #0xb0 - bne _080AA474 - movs r0, #1 - bl StartPokemonLogoShine - b _080AA47E - .align 2, 0 -_080AA46C: .4byte gUnknown_3002360 -_080AA470: .4byte gUnknown_3005B60 -_080AA474: - cmp r0, #0x40 - bne _080AA47E - movs r0, #2 - bl StartPokemonLogoShine -_080AA47E: - ldr r0, _080AA490 - adds r1, r4, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - b _080AA50A - .align 2, 0 -_080AA490: .4byte gUnknown_3005B60 -_080AA494: - ldr r1, _080AA510 - movs r0, #0 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0 - bl SetGpuReg - movs r0, #0x4a - movs r1, #0 - bl SetGpuReg - ldr r1, _080AA514 - movs r0, #0x50 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0x10 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - ldr r0, _080AA518 - movs r4, #0x10 - rsbs r4, r4, #0 - movs r1, #0xa2 - adds r2, r4, #0 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _080AA51C - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - movs r0, #0x40 - strh r0, [r1, #0x2e] - strh r6, [r1, #0x30] - ldr r0, _080AA520 - movs r1, #0xd2 - adds r2, r4, #0 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - strh r6, [r1, #0x30] - movs r0, #0x90 - strh r0, [r7, #8] - ldr r0, _080AA524 - str r0, [r7] -_080AA50A: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080AA510: .4byte 0x00001441 -_080AA514: .4byte 0x00003F50 -_080AA518: .4byte gUnknown_851ACB4 -_080AA51C: .4byte gUnknown_20205AC -_080AA520: .4byte gUnknown_851ACCC -_080AA524: .4byte Task_TitleScreenPhase2 - thumb_func_end sub_080AA418 - - thumb_func_start Task_TitleScreenPhase2 -Task_TitleScreenPhase2: @ 0x080AA528 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080AA578 - ldrh r1, [r0, #0x2e] - movs r0, #0xf - ands r0, r1 - ldr r2, _080AA57C - cmp r0, #0 - bne _080AA54E - lsls r0, r4, #2 - adds r1, r0, r4 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r3, #0xa - ldrsh r1, [r1, r3] - adds r6, r0, #0 - cmp r1, #0 - beq _080AA560 -_080AA54E: - lsls r3, r4, #2 - adds r0, r3, r4 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r2, #0 - movs r1, #1 - strh r1, [r0, #0xa] - strh r2, [r0, #8] - adds r6, r3, #0 -_080AA560: - ldr r1, _080AA57C - adds r0, r6, r4 - lsls r0, r0, #3 - adds r5, r0, r1 - ldrh r0, [r5, #8] - movs r1, #8 - ldrsh r7, [r5, r1] - cmp r7, #0 - beq _080AA580 - subs r0, #1 - strh r0, [r5, #8] - b _080AA5BA - .align 2, 0 -_080AA578: .4byte gUnknown_3002360 -_080AA57C: .4byte gUnknown_3005B60 -_080AA580: - movs r0, #1 - strh r0, [r5, #0xa] - ldr r1, _080AA63C - movs r0, #0x50 - bl SetGpuReg - ldr r1, _080AA640 - movs r0, #0x52 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - ldr r1, _080AA644 - movs r0, #0 - bl SetGpuReg - movs r0, #0x80 - movs r1, #0x6c - bl CreatePressStartBanner - movs r0, #0x80 - movs r1, #0x94 - bl CreateCopyrightBanner - strh r7, [r5, #0x10] - ldr r0, _080AA648 - str r0, [r5] -_080AA5BA: - ldr r2, _080AA64C - adds r0, r6, r4 - lsls r0, r0, #3 - adds r3, r0, r2 - ldrh r1, [r3, #8] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _080AA5DA - ldrh r1, [r3, #0xc] - movs r5, #0xc - ldrsh r0, [r3, r5] - cmp r0, #0 - beq _080AA5DA - adds r0, r1, #1 - strh r0, [r3, #0xc] -_080AA5DA: - adds r0, r6, r4 - lsls r0, r0, #3 - adds r3, r0, r2 - ldrh r1, [r3, #8] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080AA5F8 - ldrh r1, [r3, #0xe] - movs r5, #0xe - ldrsh r0, [r3, r5] - cmp r0, #0 - beq _080AA5F8 - adds r0, r1, #1 - strh r0, [r3, #0xe] -_080AA5F8: - adds r4, r6, r4 - lsls r4, r4, #3 - adds r4, r4, r2 - movs r0, #0xc - ldrsh r1, [r4, r0] - lsls r5, r1, #8 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x10 - movs r0, #0x28 - bl SetGpuReg - lsrs r1, r5, #0x10 - movs r0, #0x2a - bl SetGpuReg - movs r3, #0xe - ldrsh r1, [r4, r3] - lsls r5, r1, #8 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x10 - movs r0, #0x2c - bl SetGpuReg - lsrs r1, r5, #0x10 - movs r0, #0x2e - bl SetGpuReg - movs r0, #0xf - strh r0, [r4, #0x12] - movs r0, #6 - strh r0, [r4, #0x14] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080AA63C: .4byte 0x00002142 -_080AA640: .4byte 0x00000F06 -_080AA644: .4byte 0x00001741 -_080AA648: .4byte Task_TitleScreenPhase3 -_080AA64C: .4byte gUnknown_3005B60 - thumb_func_end Task_TitleScreenPhase2 - - thumb_func_start Task_TitleScreenPhase3 -Task_TitleScreenPhase3: @ 0x080AA650 - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r2, _080AA690 - ldrh r1, [r2, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080AA670 - movs r0, #8 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0 - beq _080AA69C -_080AA670: - movs r0, #4 - bl sub_080A2B08 - movs r0, #1 - rsbs r0, r0, #0 - ldr r1, _080AA694 - str r1, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _080AA698 - bl SetMainCallback2 - b _080AA794 - .align 2, 0 -_080AA690: .4byte gUnknown_3002360 -_080AA694: .4byte 0x0000FFFF -_080AA698: .4byte sub_080AA7B4 -_080AA69C: - ldrh r1, [r2, #0x2c] - movs r0, #0x46 - ands r0, r1 - cmp r0, #0x46 - bne _080AA6B4 - ldr r0, _080AA6B0 - bl SetMainCallback2 - b _080AA794 - .align 2, 0 -_080AA6B0: .4byte sub_080AA7EC -_080AA6B4: - movs r0, #0x26 - ands r0, r1 - cmp r0, #0x26 - bne _080AA6E8 - bl CanResetRTC - cmp r0, #1 - bne _080AA6E8 - movs r0, #4 - bl sub_080A2B08 - movs r0, #1 - rsbs r0, r0, #0 - str r4, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _080AA6E4 - bl SetMainCallback2 - b _080AA794 - .align 2, 0 -_080AA6E4: .4byte sub_080AA808 -_080AA6E8: - ldr r0, _080AA714 - ldrh r1, [r0, #0x2c] - movs r0, #6 - ands r0, r1 - cmp r0, #6 - bne _080AA71C - movs r0, #4 - bl sub_080A2B08 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _080AA718 - bl SetMainCallback2 - b _080AA794 - .align 2, 0 -_080AA714: .4byte gUnknown_3002360 -_080AA718: .4byte CB2_GoToBerryFixScreen -_080AA71C: - movs r0, #0x28 - movs r1, #0 - bl SetGpuReg - movs r0, #0x2a - movs r1, #0 - bl SetGpuReg - movs r0, #0x2c - movs r1, #0 - bl SetGpuReg - movs r0, #0x2e - movs r1, #0 - bl SetGpuReg - ldr r1, _080AA79C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r3, r0, r1 - ldrh r0, [r3, #8] - adds r0, #1 - strh r0, [r3, #8] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _080AA76E - ldrh r0, [r3, #0x10] - adds r0, #1 - strh r0, [r3, #0x10] - ldr r2, _080AA7A0 - movs r1, #0x10 - ldrsh r0, [r3, r1] - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - strh r0, [r2] - ldr r1, _080AA7A4 - movs r0, #0 - strh r0, [r1] -_080AA76E: - ldrb r0, [r3, #8] - bl UsePokeblockOnField - ldr r0, _080AA7A8 - ldr r1, _080AA7AC - ldrh r0, [r0, #4] - cmp r0, #0 - bne _080AA794 - movs r0, #1 - rsbs r0, r0, #0 - str r1, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _080AA7B0 - bl SetMainCallback2 -_080AA794: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080AA79C: .4byte gUnknown_3005B60 -_080AA7A0: .4byte gUnknown_2022ACE -_080AA7A4: .4byte gUnknown_2022ACC -_080AA7A8: .4byte gUnknown_30074D0 -_080AA7AC: .4byte 0x0000FFFF -_080AA7B0: .4byte sub_080AA7D0 - thumb_func_end Task_TitleScreenPhase3 - - thumb_func_start sub_080AA7B4 -sub_080AA7B4: @ 0x080AA7B4 - push {lr} - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AA7C6 - ldr r0, _080AA7CC - bl SetMainCallback2 -_080AA7C6: - pop {r0} - bx r0 - .align 2, 0 -_080AA7CC: .4byte sub_0802F340 - thumb_func_end sub_080AA7B4 - - thumb_func_start sub_080AA7D0 -sub_080AA7D0: @ 0x080AA7D0 - push {lr} - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AA7E2 - ldr r0, _080AA7E8 - bl SetMainCallback2 -_080AA7E2: - pop {r0} - bx r0 - .align 2, 0 -_080AA7E8: .4byte sub_0816CCF0 - thumb_func_end sub_080AA7D0 - - thumb_func_start sub_080AA7EC -sub_080AA7EC: @ 0x080AA7EC - push {lr} - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AA7FE - ldr r0, _080AA804 - bl SetMainCallback2 -_080AA7FE: - pop {r0} - bx r0 - .align 2, 0 -_080AA804: .4byte CB2_InitClearSaveDataScreen - thumb_func_end sub_080AA7EC - - thumb_func_start sub_080AA808 -sub_080AA808: @ 0x080AA808 - push {lr} - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AA81A - ldr r0, _080AA820 - bl SetMainCallback2 -_080AA81A: - pop {r0} - bx r0 - .align 2, 0 -_080AA820: .4byte CB2_InitResetRtcScreen - thumb_func_end sub_080AA808 - - thumb_func_start CB2_GoToBerryFixScreen -CB2_GoToBerryFixScreen: @ 0x080AA824 - push {lr} - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AA83A - bl m4aMPlayAllStop - ldr r0, _080AA840 - bl SetMainCallback2 -_080AA83A: - pop {r0} - bx r0 - .align 2, 0 -_080AA840: .4byte sub_081BF020 - thumb_func_end CB2_GoToBerryFixScreen - - thumb_func_start UsePokeblockOnField -UsePokeblockOnField: @ 0x080AA844 - push {lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _080AA898 - adds r0, r1, #0 - movs r1, #0x80 - bl Cos - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r2, r0, #0 - adds r2, #0x80 - lsls r0, r2, #5 - subs r0, r0, r2 - cmp r0, #0 - bge _080AA86E - adds r0, #0xff -_080AA86E: - asrs r0, r0, #8 - movs r3, #0x1f - subs r1, r3, r0 - movs r0, #0x16 - muls r0, r2, r0 - cmp r0, #0 - bge _080AA87E - adds r0, #0xff -_080AA87E: - asrs r0, r0, #8 - subs r0, r3, r0 - lsls r0, r0, #5 - orrs r1, r0 - movs r0, #0xc0 - lsls r0, r0, #6 - orrs r1, r0 - mov r0, sp - strh r1, [r0] - movs r1, #0xef - movs r2, #2 - bl LoadPalette -_080AA898: - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end UsePokeblockOnField - - thumb_func_start StartWeather -StartWeather: @ 0x080AA8A0 - push {r4, r5, r6, lr} - ldr r0, _080AA964 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - bne _080AA95C - movs r0, #0x90 - lsls r0, r0, #5 - bl AllocSpritePalette - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _080AA968 - lsls r1, r5, #5 - ldr r2, _080AA96C - adds r1, r1, r2 - ldr r2, _080AA970 - bl CpuSet - bl BuildGammaShiftTables - ldr r4, _080AA974 - ldr r1, _080AA978 - adds r0, r4, r1 - strb r5, [r0] - ldr r0, _080AA97C - bl AllocSpritePalette - ldr r2, _080AA980 - adds r1, r4, r2 - strb r0, [r1] - ldr r1, _080AA984 - adds r0, r4, r1 - strb r6, [r0] - adds r2, #4 - adds r0, r4, r2 - strb r6, [r0] - adds r1, #4 - adds r0, r4, r1 - strb r6, [r0] - adds r2, #0xc - adds r0, r4, r2 - strb r6, [r0] - adds r1, #0x22 - adds r0, r4, r1 - strb r6, [r0] - adds r2, #0x17 - adds r0, r4, r2 - strb r6, [r0] - adds r1, #0x24 - adds r0, r4, r1 - strb r6, [r0] - adds r2, #0x1b - adds r0, r4, r2 - strb r6, [r0] - subs r1, #0xd - adds r0, r4, r1 - strb r6, [r0] - adds r2, #0x18 - adds r0, r4, r2 - strb r6, [r0] - subs r1, #0x1d - adds r0, r4, r1 - strb r6, [r0] - movs r0, #0x10 - movs r1, #0 - bl Weather_SetBlendCoeffs - movs r2, #0xda - lsls r2, r2, #3 - adds r0, r4, r2 - strb r6, [r0] - ldr r0, _080AA988 - adds r1, r4, r0 - movs r0, #3 - strb r0, [r1] - movs r1, #0xd9 - lsls r1, r1, #3 - adds r0, r4, r1 - strb r6, [r0] - adds r2, #3 - adds r1, r4, r2 - movs r0, #1 - strb r0, [r1] - ldr r0, _080AA98C - movs r1, #0x50 - bl CreateTask - ldr r1, _080AA990 - adds r4, r4, r1 - strb r0, [r4] -_080AA95C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080AA964: .4byte Task_WeatherMain -_080AA968: .4byte gUnknown_8526F0C -_080AA96C: .4byte gUnknown_20375B4 -_080AA970: .4byte 0x04000008 -_080AA974: .4byte gUnknown_20380F4 -_080AA978: .4byte 0x000006D5 -_080AA97C: .4byte 0x00001201 -_080AA980: .4byte 0x000006D4 -_080AA984: .4byte 0x000006DA -_080AA988: .4byte 0x000006C6 -_080AA98C: .4byte Task_WeatherInit -_080AA990: .4byte 0x000006C9 - thumb_func_end StartWeather - - thumb_func_start SetNextWeather -SetNextWeather: @ 0x080AA994 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - beq _080AA9AA - cmp r4, #5 - beq _080AA9AA - cmp r4, #0xd - beq _080AA9AA - bl PlayRainStoppingSoundEffect -_080AA9AA: - ldr r1, _080AA9EC - ldr r2, _080AA9F0 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, r4 - beq _080AA9CE - movs r3, #0xda - lsls r3, r3, #3 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r4 - bne _080AA9CE - ldr r0, _080AA9F4 - lsls r1, r4, #4 - adds r1, r1, r0 - ldr r0, [r1] - bl _call_via_r0 -_080AA9CE: - ldr r1, _080AA9EC - ldr r2, _080AA9F8 - adds r0, r1, r2 - movs r2, #0 - strb r2, [r0] - ldr r3, _080AA9F0 - adds r0, r1, r3 - strb r4, [r0] - ldr r0, _080AA9FC - adds r1, r1, r0 - strh r2, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AA9EC: .4byte gUnknown_20380F4 -_080AA9F0: .4byte 0x000006D1 -_080AA9F4: .4byte gUnknown_8526DEC -_080AA9F8: .4byte 0x000006D3 -_080AA9FC: .4byte 0x000006CE - thumb_func_end SetNextWeather - - thumb_func_start SetCurrentAndNextWeather -SetCurrentAndNextWeather: @ 0x080AAA00 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl PlayRainStoppingSoundEffect - ldr r0, _080AAA24 - movs r2, #0xda - lsls r2, r2, #3 - adds r1, r0, r2 - strb r4, [r1] - ldr r1, _080AAA28 - adds r0, r0, r1 - strb r4, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AAA24: .4byte gUnknown_20380F4 -_080AAA28: .4byte 0x000006D1 - thumb_func_end SetCurrentAndNextWeather - - thumb_func_start SetCurrentAndNextWeatherNoDelay -SetCurrentAndNextWeatherNoDelay: @ 0x080AAA2C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl PlayRainStoppingSoundEffect - ldr r1, _080AAA58 - movs r2, #0xda - lsls r2, r2, #3 - adds r0, r1, r2 - strb r4, [r0] - adds r2, #1 - adds r0, r1, r2 - strb r4, [r0] - movs r0, #0xd9 - lsls r0, r0, #3 - adds r1, r1, r0 - movs r0, #1 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AAA58: .4byte gUnknown_20380F4 - thumb_func_end SetCurrentAndNextWeatherNoDelay - - thumb_func_start Task_WeatherInit -Task_WeatherInit: @ 0x080AAA5C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r2, _080AAA9C - movs r1, #0xd9 - lsls r1, r1, #3 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _080AAA94 - ldr r1, _080AAAA0 - movs r3, #0xda - lsls r3, r3, #3 - adds r0, r2, r3 - ldrb r0, [r0] - lsls r0, r0, #4 - adds r1, #8 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - ldr r1, _080AAAA4 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080AAAA8 - str r1, [r0] -_080AAA94: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AAA9C: .4byte gUnknown_20380F4 -_080AAAA0: .4byte gUnknown_8526DEC -_080AAAA4: .4byte gUnknown_3005B60 -_080AAAA8: .4byte Task_WeatherMain - thumb_func_end Task_WeatherInit - - thumb_func_start Task_WeatherMain -Task_WeatherMain: @ 0x080AAAAC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r5, _080AAB14 - movs r0, #0xda - lsls r0, r0, #3 - adds r6, r5, r0 - ldr r1, _080AAB18 - adds r7, r5, r1 - ldrb r0, [r6] - ldrb r2, [r7] - cmp r0, r2 - beq _080AAB28 - ldr r0, _080AAB1C - mov sb, r0 - ldrb r0, [r6] - lsls r0, r0, #4 - mov r1, sb - adds r1, #0xc - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _080AAB38 - ldr r1, _080AAB20 - adds r1, r1, r5 - mov r8, r1 - ldrb r0, [r1] - cmp r0, #2 - beq _080AAB38 - ldrb r0, [r7] - lsls r0, r0, #4 - add r0, sb - ldr r0, [r0] - bl _call_via_r0 - ldr r2, _080AAB24 - adds r0, r5, r2 - strb r4, [r0] - mov r0, r8 - strb r4, [r0] - ldrb r0, [r7] - strb r0, [r6] - adds r2, #0x10 - adds r1, r5, r2 - movs r0, #1 - strb r0, [r1] - b _080AAB38 - .align 2, 0 -_080AAB14: .4byte gUnknown_20380F4 -_080AAB18: .4byte 0x000006D1 -_080AAB1C: .4byte gUnknown_8526DEC -_080AAB20: .4byte 0x000006C6 -_080AAB24: .4byte 0x000006C3 -_080AAB28: - ldr r0, _080AAB58 - ldrb r1, [r6] - lsls r1, r1, #4 - adds r0, #4 - adds r1, r1, r0 - ldr r0, [r1] - bl _call_via_r0 -_080AAB38: - ldr r1, _080AAB5C - ldr r0, _080AAB60 - ldr r2, _080AAB64 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - thumb_func_end Task_WeatherMain - - thumb_func_start sub_080AAB4C -sub_080AAB4C: @ 0x080AAB4C - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080AAB58: .4byte gUnknown_8526DEC -_080AAB5C: .4byte gUnknown_8526EDC -_080AAB60: .4byte gUnknown_20380F4 -_080AAB64: .4byte 0x000006C6 - thumb_func_end sub_080AAB4C - - thumb_func_start None_Init -None_Init: @ 0x080AAB68 - ldr r0, _080AAB7C - ldr r2, _080AAB80 - adds r1, r0, r2 - movs r2, #0 - strb r2, [r1] - ldr r1, _080AAB84 - adds r0, r0, r1 - strb r2, [r0] - bx lr - .align 2, 0 -_080AAB7C: .4byte gUnknown_20380F4 -_080AAB80: .4byte 0x000006C1 -_080AAB84: .4byte 0x000006C2 - thumb_func_end None_Init - - thumb_func_start sub_080AAB88 -sub_080AAB88: @ 0x080AAB88 - bx lr - .align 2, 0 - thumb_func_end sub_080AAB88 - - thumb_func_start sub_080AAB8C -sub_080AAB8C: @ 0x080AAB8C - movs r0, #0 - bx lr - thumb_func_end sub_080AAB8C - - thumb_func_start BuildGammaShiftTables -BuildGammaShiftTables: @ 0x080AAB90 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r1, _080AABD0 - ldr r0, _080AABD4 - str r0, [r1] - movs r0, #0 - mov ip, r0 - ldr r1, _080AABD8 - mov sl, r1 -_080AABA8: - mov r7, sl - mov r0, ip - cmp r0, #0 - bne _080AABB4 - ldr r1, _080AABDC - adds r7, r7, r1 -_080AABB4: - movs r5, #0 - movs r0, #1 - add r0, ip - mov sb, r0 -_080AABBC: - lsls r1, r5, #8 - lsls r0, r5, #0x18 - lsrs r2, r0, #0x10 - mov r0, ip - cmp r0, #0 - bne _080AABE0 - adds r0, r1, #0 - lsls r0, r0, #0xc - lsrs r4, r0, #0x10 - b _080AABE2 - .align 2, 0 -_080AABD0: .4byte gUnknown_3000F50 -_080AABD4: .4byte gUnknown_8526EEC -_080AABD8: .4byte gUnknown_2038554 -_080AABDC: .4byte 0xFFFFFDA0 -_080AABE0: - movs r4, #0 -_080AABE2: - movs r3, #0 - adds r1, r5, #1 - mov r8, r1 -_080AABE8: - subs r1, r2, r4 - lsls r1, r1, #0x10 - lsrs r2, r1, #0x10 - lsls r0, r3, #5 - adds r0, r0, r7 - adds r0, r0, r5 - lsrs r1, r1, #0x18 - strb r1, [r0] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #2 - bls _080AABE8 - adds r6, r2, #0 - movs r0, #0xf8 - lsls r0, r0, #5 - subs r0, r0, r2 - cmp r0, #0 - bge _080AAC10 - adds r0, #0xf -_080AAC10: - lsls r0, r0, #0xc - lsrs r4, r0, #0x10 - cmp r5, #0xb - bhi _080AAC5A - cmp r3, #0x12 - bhi _080AAC80 -_080AAC1C: - adds r0, r2, r4 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - subs r0, r2, r6 - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - cmp r1, #0 - ble _080AAC38 - lsrs r0, r0, #0x1f - adds r0, r1, r0 - asrs r0, r0, #1 - subs r0, r2, r0 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 -_080AAC38: - lsls r0, r3, #5 - adds r0, r0, r7 - adds r1, r0, r5 - lsrs r0, r2, #8 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1f - bls _080AAC4E - movs r0, #0x1f - strb r0, [r1] -_080AAC4E: - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #0x12 - bls _080AAC1C - b _080AAC80 -_080AAC5A: - cmp r3, #0x12 - bhi _080AAC80 - movs r6, #0x1f -_080AAC60: - adds r1, r2, r4 - lsls r1, r1, #0x10 - lsrs r2, r1, #0x10 - lsls r0, r3, #5 - adds r0, r0, r7 - adds r0, r0, r5 - lsrs r1, r1, #0x18 - strb r1, [r0] - cmp r1, #0x1f - bls _080AAC76 - strb r6, [r0] -_080AAC76: - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #0x12 - bls _080AAC60 -_080AAC80: - mov r1, r8 - lsls r0, r1, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0x1f - bls _080AABBC - mov r1, sb - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - mov ip, r0 - cmp r0, #1 - bls _080AABA8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end BuildGammaShiftTables - - thumb_func_start UpdateWeatherGammaShift -UpdateWeatherGammaShift: @ 0x080AACA4 - push {r4, r5, r6, r7, lr} - ldr r0, _080AACD4 - ldr r1, _080AACD8 - adds r2, r0, r1 - ldrb r1, [r2] - adds r3, r0, #0 - cmp r1, #2 - beq _080AAD28 - movs r7, #0xd8 - lsls r7, r7, #3 - adds r4, r3, r7 - ldr r1, _080AACDC - adds r0, r3, r1 - ldrb r7, [r4] - mov ip, r7 - movs r6, #0 - ldrsb r6, [r4, r6] - movs r5, #0 - ldrsb r5, [r0, r5] - cmp r6, r5 - bne _080AACE0 - movs r0, #3 - strb r0, [r2] - b _080AAD28 - .align 2, 0 -_080AACD4: .4byte gUnknown_20380F4 -_080AACD8: .4byte 0x000006C6 -_080AACDC: .4byte 0x000006C1 -_080AACE0: - ldr r0, _080AAD08 - adds r2, r3, r0 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - ldr r7, _080AAD0C - adds r1, r3, r7 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1] - cmp r0, r1 - blo _080AAD28 - movs r0, #0 - strb r0, [r2] - mov r0, ip - cmp r6, r5 - bge _080AAD10 - adds r0, #1 - b _080AAD14 - .align 2, 0 -_080AAD08: .4byte 0x000006C3 -_080AAD0C: .4byte 0x000006C2 -_080AAD10: - mov r0, ip - subs r0, #1 -_080AAD14: - strb r0, [r4] - movs r1, #0xd8 - lsls r1, r1, #3 - adds r0, r3, r1 - movs r2, #0 - ldrsb r2, [r0, r2] - movs r0, #0 - movs r1, #0x20 - bl ApplyGammaShift -_080AAD28: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end UpdateWeatherGammaShift - - thumb_func_start FadeInScreenWithWeather -FadeInScreenWithWeather: @ 0x080AAD30 - push {lr} - ldr r2, _080AAD68 - ldr r0, _080AAD6C - adds r1, r2, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _080AAD4E - ldr r3, _080AAD70 - adds r1, r2, r3 - movs r0, #0 - strb r0, [r1] -_080AAD4E: - movs r1, #0xda - lsls r1, r1, #3 - adds r0, r2, r1 - ldrb r0, [r0] - subs r0, #3 - cmp r0, #0xa - bhi _080AAE18 - lsls r0, r0, #2 - ldr r1, _080AAD74 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080AAD68: .4byte gUnknown_20380F4 -_080AAD6C: .4byte 0x000006CB -_080AAD70: .4byte 0x000006CA -_080AAD74: .4byte _080AAD78 -_080AAD78: @ jump table - .4byte _080AADA4 @ case 0 - .4byte _080AADA4 @ case 1 - .4byte _080AADA4 @ case 2 - .4byte _080AADF0 @ case 3 - .4byte _080AAE18 @ case 4 - .4byte _080AAE18 @ case 5 - .4byte _080AAE18 @ case 6 - .4byte _080AAE18 @ case 7 - .4byte _080AADA4 @ case 8 - .4byte _080AADCC @ case 9 - .4byte _080AADA4 @ case 10 -_080AADA4: - bl FadeInScreen_RainShowShade - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AAE38 - ldr r0, _080AADC4 - movs r2, #0xd8 - lsls r2, r2, #3 - adds r1, r0, r2 - movs r2, #3 - strb r2, [r1] - ldr r3, _080AADC8 - adds r0, r0, r3 - strb r2, [r0] - b _080AAE38 - .align 2, 0 -_080AADC4: .4byte gUnknown_20380F4 -_080AADC8: .4byte 0x000006C6 -_080AADCC: - bl FadeInScreen_Drought - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AAE38 - ldr r1, _080AADE8 - movs r0, #0xd8 - lsls r0, r0, #3 - adds r2, r1, r0 - movs r0, #0xfa - strb r0, [r2] - ldr r2, _080AADEC - adds r1, r1, r2 - b _080AAE34 - .align 2, 0 -_080AADE8: .4byte gUnknown_20380F4 -_080AADEC: .4byte 0x000006C6 -_080AADF0: - bl FadeInScreen_Fog1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _080AAE38 - ldr r0, _080AAE10 - movs r3, #0xd8 - lsls r3, r3, #3 - adds r1, r0, r3 - strb r2, [r1] - ldr r1, _080AAE14 - adds r0, r0, r1 - movs r1, #3 - strb r1, [r0] - b _080AAE38 - .align 2, 0 -_080AAE10: .4byte gUnknown_20380F4 -_080AAE14: .4byte 0x000006C6 -_080AAE18: - ldr r0, _080AAE3C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080AAE38 - ldr r3, _080AAE40 - adds r0, r2, r3 - ldrb r1, [r0] - subs r3, #1 - adds r0, r2, r3 - strb r1, [r0] - ldr r0, _080AAE44 - adds r1, r2, r0 -_080AAE34: - movs r0, #3 - strb r0, [r1] -_080AAE38: - pop {r0} - bx r0 - .align 2, 0 -_080AAE3C: .4byte gUnknown_2037C74 -_080AAE40: .4byte 0x000006C1 -_080AAE44: .4byte 0x000006C6 - thumb_func_end FadeInScreenWithWeather - - thumb_func_start FadeInScreen_RainShowShade -FadeInScreen_RainShowShade: @ 0x080AAE48 - push {r4, lr} - sub sp, #4 - ldr r2, _080AAE84 - ldr r0, _080AAE88 - adds r4, r2, r0 - ldrb r0, [r4] - cmp r0, #0x10 - beq _080AAE9E - adds r1, r0, #1 - strb r1, [r4] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xf - bhi _080AAE90 - movs r3, #0x10 - subs r3, r3, r1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r1, _080AAE8C - adds r0, r2, r1 - ldrh r0, [r0] - str r0, [sp] - movs r0, #0 - movs r1, #0x20 - movs r2, #3 - bl ApplyGammaShiftWithBlend - movs r0, #1 - b _080AAEA0 - .align 2, 0 -_080AAE84: .4byte gUnknown_20380F4 -_080AAE88: .4byte 0x000006C7 -_080AAE8C: .4byte 0x000006C4 -_080AAE90: - movs r0, #0 - movs r1, #0x20 - movs r2, #3 - bl ApplyGammaShift - movs r0, #0x10 - strb r0, [r4] -_080AAE9E: - movs r0, #0 -_080AAEA0: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end FadeInScreen_RainShowShade - - thumb_func_start FadeInScreen_Drought -FadeInScreen_Drought: @ 0x080AAEA8 - push {r4, lr} - ldr r2, _080AAEDC - ldr r0, _080AAEE0 - adds r4, r2, r0 - ldrb r0, [r4] - cmp r0, #0x10 - beq _080AAEF8 - adds r3, r0, #1 - strb r3, [r4] - lsls r0, r3, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xf - bhi _080AAEE8 - movs r0, #6 - rsbs r0, r0, #0 - movs r1, #0x10 - subs r1, r1, r3 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r3, _080AAEE4 - adds r2, r2, r3 - ldrh r2, [r2] - bl ApplyDroughtGammaShiftWithBlend - movs r0, #1 - b _080AAEFA - .align 2, 0 -_080AAEDC: .4byte gUnknown_20380F4 -_080AAEE0: .4byte 0x000006C7 -_080AAEE4: .4byte 0x000006C4 -_080AAEE8: - movs r2, #6 - rsbs r2, r2, #0 - movs r0, #0 - movs r1, #0x20 - bl ApplyGammaShift - movs r0, #0x10 - strb r0, [r4] -_080AAEF8: - movs r0, #0 -_080AAEFA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end FadeInScreen_Drought - - thumb_func_start FadeInScreen_Fog1 -FadeInScreen_Fog1: @ 0x080AAF00 - push {lr} - ldr r2, _080AAF28 - ldr r1, _080AAF2C - adds r0, r2, r1 - ldrb r1, [r0] - cmp r1, #0x10 - beq _080AAF34 - adds r1, #1 - strb r1, [r0] - movs r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _080AAF30 - adds r1, r2, r3 - ldrh r1, [r1] - bl ApplyFogBlend - movs r0, #1 - b _080AAF36 - .align 2, 0 -_080AAF28: .4byte gUnknown_20380F4 -_080AAF2C: .4byte 0x000006C7 -_080AAF30: .4byte 0x000006C4 -_080AAF34: - movs r0, #0 -_080AAF36: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end FadeInScreen_Fog1 - - thumb_func_start sub_080AAF3C -sub_080AAF3C: @ 0x080AAF3C - bx lr - .align 2, 0 - thumb_func_end sub_080AAF3C - - thumb_func_start ApplyGammaShift -ApplyGammaShift: @ 0x080AAF40 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - adds r4, r3, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sb, r1 - lsls r2, r2, #0x18 - asrs r0, r2, #0x18 - cmp r0, #0 - ble _080AB050 - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - lsls r6, r3, #4 - adds r0, r1, r3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - cmp r4, sb - blo _080AAF78 - b _080AB12A -_080AAF78: - ldr r1, [sp] - lsls r0, r1, #0x18 - asrs r0, r0, #0x13 - str r0, [sp, #4] -_080AAF80: - ldr r0, _080AAFB0 - ldr r0, [r0] - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0 - bne _080AAFBC - lsls r1, r6, #1 - ldr r0, _080AAFB4 - adds r0, r1, r0 - ldr r2, _080AAFB8 - adds r1, r1, r2 - movs r2, #8 - bl CpuFastSet - adds r0, r6, #0 - adds r0, #0x10 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - mov r2, sb - lsls r2, r2, #0x10 - mov r8, r2 - adds r4, #1 - mov ip, r4 - b _080AB03A - .align 2, 0 -_080AAFB0: .4byte gUnknown_3000F50 -_080AAFB4: .4byte gUnknown_20373B4 -_080AAFB8: .4byte gUnknown_20377B4 -_080AAFBC: - cmp r0, #2 - beq _080AAFD0 - adds r1, r4, #0 - subs r1, #0x10 - ldr r2, _080AAFD4 - ldr r3, _080AAFD8 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r1, r0 - bne _080AAFE0 -_080AAFD0: - ldr r0, _080AAFDC - b _080AAFE6 - .align 2, 0 -_080AAFD4: .4byte gUnknown_20380F4 -_080AAFD8: .4byte 0x000006D5 -_080AAFDC: .4byte gUnknown_2038554 -_080AAFE0: - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r2, r3 -_080AAFE6: - ldr r1, [sp, #4] - adds r5, r1, r0 - movs r7, #0 - mov r2, sb - lsls r2, r2, #0x10 - mov r8, r2 - adds r4, #1 - mov ip, r4 - ldr r3, _080AB048 - mov sl, r3 -_080AAFFA: - adds r2, r6, #0 - lsls r0, r2, #1 - ldr r1, _080AB04C - adds r0, r0, r1 - ldr r1, [r0] - lsls r0, r1, #0x1b - lsrs r0, r0, #0x1b - adds r0, r5, r0 - ldrb r4, [r0] - lsls r0, r1, #0x16 - lsrs r0, r0, #0x1b - adds r0, r5, r0 - ldrb r3, [r0] - lsls r1, r1, #0x11 - lsrs r1, r1, #0x1b - adds r1, r5, r1 - ldrb r1, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r2, r2, #1 - add r2, sl - lsls r1, r1, #0xa - lsls r3, r3, #5 - orrs r1, r3 - orrs r1, r4 - strh r1, [r2] - adds r0, r7, #1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - cmp r7, #0xf - bls _080AAFFA -_080AB03A: - mov r2, ip - lsls r0, r2, #0x10 - lsrs r4, r0, #0x10 - cmp r0, r8 - blo _080AAF80 - b _080AB12A - .align 2, 0 -_080AB048: .4byte gUnknown_20377B4 -_080AB04C: .4byte gUnknown_20373B4 -_080AB050: - cmp r0, #0 - bge _080AB118 - mvns r0, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - lsls r6, r3, #4 - adds r0, r1, r3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - adds r4, r3, #0 - cmp r4, sb - bhs _080AB12A -_080AB06C: - ldr r0, _080AB09C - ldr r0, [r0] - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0 - bne _080AB0A8 - lsls r1, r6, #1 - ldr r0, _080AB0A0 - adds r0, r1, r0 - ldr r2, _080AB0A4 - adds r1, r1, r2 - movs r2, #8 - bl CpuFastSet - adds r0, r6, #0 - adds r0, #0x10 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - mov r3, sb - lsls r3, r3, #0x10 - mov r8, r3 - adds r4, #1 - mov ip, r4 - b _080AB100 - .align 2, 0 -_080AB09C: .4byte gUnknown_3000F50 -_080AB0A0: .4byte gUnknown_20373B4 -_080AB0A4: .4byte gUnknown_20377B4 -_080AB0A8: - movs r7, #0 - mov r0, sb - lsls r0, r0, #0x10 - mov r8, r0 - adds r4, #1 - mov ip, r4 - ldr r1, _080AB10C - mov sl, r1 - ldr r2, [sp] - lsls r0, r2, #0x18 - asrs r5, r0, #0xb -_080AB0BE: - lsls r0, r6, #1 - ldr r3, _080AB110 - adds r4, r0, r3 - ldr r1, _080AB114 - adds r0, r0, r1 - ldrh r3, [r0] - lsls r3, r3, #0x10 - lsrs r0, r3, #0x11 - movs r1, #0xf - ands r0, r1 - lsrs r1, r3, #0x12 - movs r2, #0xf0 - ands r1, r2 - orrs r0, r1 - lsrs r3, r3, #0x13 - movs r2, #0xf0 - lsls r2, r2, #4 - adds r1, r2, #0 - ands r3, r1 - orrs r0, r3 - lsls r0, r0, #1 - adds r0, r0, r5 - add r0, sl - ldrh r0, [r0] - strh r0, [r4] - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r0, r7, #1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - cmp r7, #0xf - bls _080AB0BE -_080AB100: - mov r3, ip - lsls r0, r3, #0x10 - lsrs r4, r0, #0x10 - cmp r0, r8 - blo _080AB06C - b _080AB12A - .align 2, 0 -_080AB10C: .4byte gUnknown_851ADE8 -_080AB110: .4byte gUnknown_20377B4 -_080AB114: .4byte gUnknown_20373B4 -_080AB118: - lsls r1, r4, #5 - ldr r0, _080AB13C - adds r0, r1, r0 - ldr r2, _080AB140 - adds r1, r1, r2 - mov r3, sb - lsls r2, r3, #3 - bl CpuFastSet -_080AB12A: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080AB13C: .4byte gUnknown_20373B4 -_080AB140: .4byte gUnknown_20377B4 - thumb_func_end ApplyGammaShift - - thumb_func_start ApplyGammaShiftWithBlend -ApplyGammaShiftWithBlend: @ 0x080AB144 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - ldr r4, [sp, #0x34] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sl, r1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r8, r3 - mov r1, sp - strh r4, [r1] - ldr r1, [sp] - lsls r3, r1, #0x1b - lsrs r3, r3, #0x1b - str r3, [sp, #4] - lsls r3, r1, #0x16 - lsrs r3, r3, #0x1b - str r3, [sp, #8] - lsls r1, r1, #0x11 - lsrs r1, r1, #0x1b - str r1, [sp, #0xc] - lsls r6, r0, #4 - mov r3, sl - adds r1, r3, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sl, r1 - lsls r2, r2, #0x18 - movs r1, #0xff - lsls r1, r1, #0x18 - adds r2, r2, r1 - lsrs r2, r2, #0x18 - adds r4, r0, #0 - cmp r4, sl - bhs _080AB270 - lsls r0, r2, #0x18 - asrs r0, r0, #0x13 - str r0, [sp, #0x10] -_080AB19C: - ldr r0, _080AB1CC - ldr r0, [r0] - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0 - bne _080AB1D0 - mov r0, sp - ldrh r3, [r0] - adds r0, r6, #0 - movs r1, #0x10 - mov r2, r8 - bl BlendPalette - adds r0, r6, #0 - adds r0, #0x10 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - mov r3, sl - lsls r3, r3, #0x10 - mov sb, r3 - adds r4, #1 - mov ip, r4 - b _080AB266 - .align 2, 0 -_080AB1CC: .4byte gUnknown_3000F50 -_080AB1D0: - cmp r0, #1 - bne _080AB1E0 - ldr r0, _080AB1DC - ldr r1, [sp, #0x10] - adds r5, r1, r0 - b _080AB1E6 - .align 2, 0 -_080AB1DC: .4byte gUnknown_20382F4 -_080AB1E0: - ldr r0, _080AB280 - ldr r3, [sp, #0x10] - adds r5, r3, r0 -_080AB1E6: - movs r7, #0 - mov r0, sl - lsls r0, r0, #0x10 - mov sb, r0 - adds r4, #1 - mov ip, r4 -_080AB1F2: - adds r4, r6, #0 - lsls r0, r4, #1 - ldr r1, _080AB284 - adds r0, r0, r1 - ldr r1, [r0] - lsls r0, r1, #0x1b - lsrs r0, r0, #0x1b - adds r0, r5, r0 - ldrb r3, [r0] - lsls r0, r1, #0x16 - lsrs r0, r0, #0x1b - adds r0, r5, r0 - ldrb r2, [r0] - lsls r1, r1, #0x11 - lsrs r1, r1, #0x1b - adds r1, r5, r1 - ldrb r1, [r1] - ldr r6, [sp, #4] - subs r0, r6, r3 - mov r6, r8 - muls r6, r0, r6 - adds r0, r6, #0 - asrs r0, r0, #4 - adds r3, r3, r0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r6, [sp, #8] - subs r0, r6, r2 - mov r6, r8 - muls r6, r0, r6 - adds r0, r6, #0 - asrs r0, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #0x18 - ldr r6, [sp, #0xc] - subs r0, r6, r1 - mov r6, r8 - muls r6, r0, r6 - adds r0, r6, #0 - asrs r0, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #0x18 - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r4, r4, #1 - ldr r0, _080AB288 - adds r4, r4, r0 - lsrs r1, r1, #0xe - lsrs r2, r2, #0x13 - orrs r1, r2 - orrs r1, r3 - strh r1, [r4] - adds r0, r7, #1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - cmp r7, #0xf - bls _080AB1F2 -_080AB266: - mov r1, ip - lsls r0, r1, #0x10 - lsrs r4, r0, #0x10 - cmp r0, sb - blo _080AB19C -_080AB270: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080AB280: .4byte gUnknown_2038554 -_080AB284: .4byte gUnknown_20373B4 -_080AB288: .4byte gUnknown_20377B4 - thumb_func_end ApplyGammaShiftWithBlend - - thumb_func_start ApplyDroughtGammaShiftWithBlend -ApplyDroughtGammaShiftWithBlend: @ 0x080AB28C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - mov r1, sp - strh r2, [r1] - lsls r0, r0, #0x18 - movs r1, #0xff - lsls r1, r1, #0x18 - eors r0, r1 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - ldr r0, [sp] - lsls r1, r0, #0x1b - lsrs r1, r1, #0x1b - str r1, [sp, #8] - lsls r1, r0, #0x16 - lsrs r1, r1, #0x1b - str r1, [sp, #0xc] - lsls r0, r0, #0x11 - lsrs r0, r0, #0x1b - mov sl, r0 - movs r5, #0 - movs r4, #0 -_080AB2C4: - ldr r0, _080AB2EC - ldr r0, [r0] - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0 - bne _080AB2F0 - mov r0, sp - ldrh r3, [r0] - adds r0, r5, #0 - movs r1, #0x10 - adds r2, r6, #0 - bl BlendPalette - adds r0, r5, #0 - adds r0, #0x10 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r4, #1 - mov r8, r4 - b _080AB386 - .align 2, 0 -_080AB2EC: .4byte gUnknown_3000F50 -_080AB2F0: - movs r0, #0 - mov ip, r0 - ldr r1, [sp, #4] - lsls r0, r1, #0x18 - adds r4, #1 - mov r8, r4 - movs r7, #0x1e - asrs r0, r0, #0xb - mov sb, r0 -_080AB302: - adds r4, r5, #0 - lsls r0, r4, #1 - ldr r5, _080AB3A0 - adds r0, r0, r5 - ldr r0, [r0] - lsls r2, r0, #0x1b - lsrs r2, r2, #0x1b - lsls r1, r0, #0x16 - lsrs r1, r1, #0x1b - lsls r0, r0, #0x11 - lsrs r0, r0, #0x1b - ands r0, r7 - lsls r0, r0, #7 - ands r1, r7 - lsls r1, r1, #3 - orrs r0, r1 - ands r2, r7 - lsls r0, r0, #1 - orrs r0, r2 - add r0, sb - ldr r1, _080AB3A4 - adds r0, r0, r1 - ldr r1, [r0] - lsls r3, r1, #0x1b - lsrs r3, r3, #0x1b - lsls r2, r1, #0x16 - lsrs r2, r2, #0x1b - lsls r1, r1, #0x11 - lsrs r1, r1, #0x1b - ldr r5, [sp, #8] - subs r0, r5, r3 - muls r0, r6, r0 - asrs r0, r0, #4 - adds r3, r3, r0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r5, [sp, #0xc] - subs r0, r5, r2 - muls r0, r6, r0 - asrs r0, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #0x18 - mov r5, sl - subs r0, r5, r1 - muls r0, r6, r0 - asrs r0, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #0x18 - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r4, r4, #1 - ldr r0, _080AB3A8 - adds r4, r4, r0 - lsrs r1, r1, #0xe - lsrs r2, r2, #0x13 - orrs r1, r2 - orrs r1, r3 - strh r1, [r4] - mov r0, ip - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov ip, r0 - cmp r0, #0xf - bls _080AB302 -_080AB386: - mov r1, r8 - lsls r0, r1, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x1f - bls _080AB2C4 - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080AB3A0: .4byte gUnknown_20373B4 -_080AB3A4: .4byte gUnknown_851ADE8 -_080AB3A8: .4byte gUnknown_20377B4 - thumb_func_end ApplyDroughtGammaShiftWithBlend - - thumb_func_start ApplyFogBlend -ApplyFogBlend: @ 0x080AB3AC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - adds r3, r1, #0 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - mov r0, sp - strh r3, [r0] - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #0 - adds r2, r7, #0 - bl BlendPalette - ldr r0, [sp] - lsls r1, r0, #0x1b - lsrs r1, r1, #0x1b - str r1, [sp, #4] - lsls r1, r0, #0x16 - lsrs r1, r1, #0x1b - str r1, [sp, #8] - lsls r0, r0, #0x11 - lsrs r0, r0, #0x1b - mov sl, r0 - movs r4, #0x10 -_080AB3E8: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl LightenSpritePaletteInFog - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080AB498 - adds r0, r4, #1 - lsls r1, r0, #0x14 - lsrs r1, r1, #0x10 - mov ip, r1 - lsls r1, r4, #0x14 - lsrs r6, r1, #0x10 - mov sb, r0 - cmp r6, ip - bhs _080AB4AC - movs r0, #0x1c - mov r8, r0 -_080AB40C: - lsls r5, r6, #1 - ldr r0, _080AB490 - adds r0, r5, r0 - ldr r2, [r0] - lsls r4, r2, #0x1b - lsrs r4, r4, #0x1b - lsls r3, r2, #0x16 - lsrs r3, r3, #0x1b - lsls r2, r2, #0x11 - lsrs r2, r2, #0x1b - mov r0, r8 - subs r1, r0, r4 - lsls r0, r1, #1 - adds r0, r0, r1 - asrs r0, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r1, #0x1f - subs r1, r1, r3 - lsls r0, r1, #1 - adds r0, r0, r1 - asrs r0, r0, #2 - adds r3, r3, r0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r0, r8 - subs r1, r0, r2 - lsls r0, r1, #1 - adds r0, r0, r1 - asrs r0, r0, #2 - adds r2, r2, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r1, [sp, #4] - subs r0, r1, r4 - muls r0, r7, r0 - asrs r0, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, [sp, #8] - subs r0, r1, r3 - muls r0, r7, r0 - asrs r0, r0, #4 - adds r3, r3, r0 - lsls r3, r3, #0x18 - mov r1, sl - subs r0, r1, r2 - muls r0, r7, r0 - asrs r0, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #0x18 - ldr r0, _080AB494 - adds r5, r5, r0 - lsrs r2, r2, #0xe - lsrs r3, r3, #0x13 - orrs r2, r3 - orrs r2, r4 - strh r2, [r5] - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, ip - blo _080AB40C - b _080AB4AC - .align 2, 0 -_080AB490: .4byte gUnknown_20373B4 -_080AB494: .4byte gUnknown_20377B4 -_080AB498: - lsls r0, r4, #0x14 - lsrs r0, r0, #0x10 - mov r1, sp - ldrh r3, [r1] - movs r1, #0x10 - adds r2, r7, #0 - bl BlendPalette - adds r4, #1 - mov sb, r4 -_080AB4AC: - mov r1, sb - lsls r0, r1, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x1f - bls _080AB3E8 - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ApplyFogBlend - - thumb_func_start MarkFogSpritePalToLighten -MarkFogSpritePalToLighten: @ 0x080AB4C8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r3, _080AB4F0 - ldr r0, _080AB4F4 - adds r1, r3, r0 - ldrb r0, [r1] - cmp r0, #5 - bhi _080AB4EA - ldr r4, _080AB4F8 - adds r0, r3, r4 - ldrb r3, [r1] - adds r0, r0, r3 - strb r2, [r0] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_080AB4EA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AB4F0: .4byte gUnknown_20380F4 -_080AB4F4: .4byte 0x000006FA -_080AB4F8: .4byte 0x000006F4 - thumb_func_end MarkFogSpritePalToLighten - - thumb_func_start LightenSpritePaletteInFog -LightenSpritePaletteInFog: @ 0x080AB4FC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - movs r1, #0 - ldr r2, _080AB524 - ldr r4, _080AB528 - adds r0, r2, r4 - ldrb r0, [r0] - cmp r1, r0 - bhs _080AB53A - ldr r5, _080AB52C - adds r4, r2, r5 - adds r2, r0, #0 -_080AB516: - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, r3 - bne _080AB530 - movs r0, #1 - b _080AB53C - .align 2, 0 -_080AB524: .4byte gUnknown_20380F4 -_080AB528: .4byte 0x000006FA -_080AB52C: .4byte 0x000006F4 -_080AB530: - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, r2 - blo _080AB516 -_080AB53A: - movs r0, #0 -_080AB53C: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end LightenSpritePaletteInFog - - thumb_func_start sub_080AB544 -sub_080AB544: @ 0x080AB544 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r5, _080AB570 - ldr r1, _080AB574 - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, #3 - bne _080AB56A - lsls r2, r4, #0x18 - asrs r2, r2, #0x18 - movs r0, #0 - movs r1, #0x20 - bl ApplyGammaShift - movs r1, #0xd8 - lsls r1, r1, #3 - adds r0, r5, r1 - strb r4, [r0] -_080AB56A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080AB570: .4byte gUnknown_20380F4 -_080AB574: .4byte 0x000006C6 - thumb_func_end sub_080AB544 - - thumb_func_start sub_080AB578 -sub_080AB578: @ 0x080AB578 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - ldr r3, _080AB5C0 - ldr r0, _080AB5C4 - adds r2, r3, r0 - ldrb r0, [r2] - cmp r0, #3 - bne _080AB5B8 - movs r1, #0 - strb r1, [r2] - movs r2, #0xd8 - lsls r2, r2, #3 - adds r0, r3, r2 - strb r4, [r0] - adds r2, #1 - adds r0, r3, r2 - strb r5, [r0] - adds r2, #2 - adds r0, r3, r2 - strb r1, [r0] - ldr r1, _080AB5C8 - adds r0, r3, r1 - strb r6, [r0] - lsls r0, r4, #0x18 - asrs r0, r0, #0x18 - bl sub_080AB544 -_080AB5B8: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080AB5C0: .4byte gUnknown_20380F4 -_080AB5C4: .4byte 0x000006C6 -_080AB5C8: .4byte 0x000006C2 - thumb_func_end sub_080AB578 - - thumb_func_start FadeScreen -FadeScreen: @ 0x080AB5CC - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r2, r0, #0 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - cmp r0, #1 - beq _080AB604 - cmp r0, #1 - bgt _080AB5E8 - cmp r0, #0 - beq _080AB5F2 - b _080AB6E0 -_080AB5E8: - cmp r2, #2 - beq _080AB5F8 - cmp r2, #3 - beq _080AB608 - b _080AB6E0 -_080AB5F2: - movs r4, #0 - movs r1, #0 - b _080AB60C -_080AB5F8: - ldr r4, _080AB600 - movs r1, #0 - b _080AB60C - .align 2, 0 -_080AB600: .4byte 0x0000FFFF -_080AB604: - movs r4, #0 - b _080AB60A -_080AB608: - ldr r4, _080AB62C -_080AB60A: - movs r1, #1 -_080AB60C: - ldr r0, _080AB630 - movs r2, #0xda - lsls r2, r2, #3 - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #3 - blt _080AB634 - cmp r0, #6 - ble _080AB626 - cmp r0, #0xd - bgt _080AB634 - cmp r0, #0xb - blt _080AB634 -_080AB626: - movs r2, #1 - b _080AB636 - .align 2, 0 -_080AB62C: .4byte 0x0000FFFF -_080AB630: .4byte gUnknown_20380F4 -_080AB634: - movs r2, #0 -_080AB636: - cmp r1, #0 - beq _080AB678 - cmp r2, #0 - beq _080AB64A - ldr r0, _080AB668 - ldr r1, _080AB66C - movs r2, #0x80 - lsls r2, r2, #1 - bl CpuFastSet -_080AB64A: - movs r0, #1 - rsbs r0, r0, #0 - lsls r1, r5, #0x18 - asrs r1, r1, #0x18 - str r4, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _080AB670 - ldr r3, _080AB674 - adds r0, r0, r3 - movs r1, #2 - strb r1, [r0] - b _080AB6E0 - .align 2, 0 -_080AB668: .4byte gUnknown_20377B4 -_080AB66C: .4byte gUnknown_20373B4 -_080AB670: .4byte gUnknown_20380F4 -_080AB674: .4byte 0x000006C6 -_080AB678: - ldr r1, _080AB690 - ldr r3, _080AB694 - adds r0, r1, r3 - strh r4, [r0] - cmp r2, #0 - beq _080AB69C - ldr r0, _080AB698 - adds r1, r1, r0 - movs r0, #0 - strb r0, [r1] - b _080AB6AE - .align 2, 0 -_080AB690: .4byte gUnknown_20380F4 -_080AB694: .4byte 0x000006C4 -_080AB698: .4byte 0x000006C7 -_080AB69C: - movs r0, #1 - rsbs r0, r0, #0 - lsls r1, r5, #0x18 - asrs r1, r1, #0x18 - str r4, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade -_080AB6AE: - ldr r4, _080AB6E8 - ldr r1, _080AB6EC - adds r0, r4, r1 - movs r1, #0 - movs r5, #1 - strb r5, [r0] - ldr r2, _080AB6F0 - adds r0, r4, r2 - strb r5, [r0] - ldr r3, _080AB6F4 - adds r0, r4, r3 - strb r1, [r0] - movs r1, #0xe6 - lsls r1, r1, #3 - adds r0, r4, r1 - ldrb r0, [r0] - adds r2, #0x68 - adds r1, r4, r2 - ldrb r1, [r1] - bl Weather_SetBlendCoeffs - movs r3, #0xd9 - lsls r3, r3, #3 - adds r4, r4, r3 - strb r5, [r4] -_080AB6E0: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080AB6E8: .4byte gUnknown_20380F4 -_080AB6EC: .4byte 0x000006C6 -_080AB6F0: .4byte 0x000006CA -_080AB6F4: .4byte 0x000006CB - thumb_func_end FadeScreen - - thumb_func_start IsWeatherNotFadingIn -IsWeatherNotFadingIn: @ 0x080AB6F8 - ldr r0, _080AB70C - ldr r1, _080AB710 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - eors r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - bx lr - .align 2, 0 -_080AB70C: .4byte gUnknown_20380F4 -_080AB710: .4byte 0x000006C6 - thumb_func_end IsWeatherNotFadingIn - - thumb_func_start UpdateSpritePaletteWithWeather -UpdateSpritePaletteWithWeather: @ 0x080AB714 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #8 - movs r1, #0x80 - lsls r1, r1, #0xd - adds r0, r0, r1 - lsrs r4, r0, #0x10 - ldr r5, _080AB754 - ldr r2, _080AB758 - adds r0, r5, r2 - ldrb r0, [r0] - adds r1, r5, #0 - cmp r0, #1 - beq _080AB75C - cmp r0, #2 - beq _080AB7A8 - adds r2, #0xa - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #6 - beq _080AB7E0 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - subs r2, #0x10 - adds r1, r1, r2 - movs r2, #0 - ldrsb r2, [r1, r2] - movs r1, #1 - bl ApplyGammaShift - b _080AB7F0 - .align 2, 0 -_080AB754: .4byte gUnknown_20380F4 -_080AB758: .4byte 0x000006C6 -_080AB75C: - ldr r2, _080AB79C - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080AB7F0 - adds r2, #6 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #6 - bne _080AB778 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl MarkFogSpritePalToLighten -_080AB778: - lsls r0, r4, #0x14 - lsrs r4, r0, #0x10 - movs r2, #0 - ldr r6, _080AB7A0 - ldr r0, _080AB7A4 - adds r3, r5, r0 -_080AB784: - adds r0, r4, r2 - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r1, [r3] - strh r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0xf - bls _080AB784 - b _080AB7F0 - .align 2, 0 -_080AB79C: .4byte 0x000006CA -_080AB7A0: .4byte gUnknown_20377B4 -_080AB7A4: .4byte 0x000006C4 -_080AB7A8: - lsls r0, r4, #0x14 - lsrs r4, r0, #0x10 - lsls r1, r4, #1 - ldr r0, _080AB7D4 - adds r0, r1, r0 - ldr r2, _080AB7D8 - adds r1, r1, r2 - movs r2, #8 - bl CpuFastSet - ldr r0, _080AB7DC - ldrh r2, [r0, #4] - lsls r2, r2, #0x15 - lsrs r2, r2, #0x1b - ldrh r3, [r0, #6] - lsls r3, r3, #0x11 - lsrs r3, r3, #0x11 - adds r0, r4, #0 - movs r1, #0x10 - bl BlendPalette - b _080AB7F0 - .align 2, 0 -_080AB7D4: .4byte gUnknown_20377B4 -_080AB7D8: .4byte gUnknown_20373B4 -_080AB7DC: .4byte gUnknown_2037C74 -_080AB7E0: - lsls r0, r4, #0x14 - lsrs r4, r0, #0x10 - ldr r3, _080AB7F8 - adds r0, r4, #0 - movs r1, #0x10 - movs r2, #0xc - bl BlendPalette -_080AB7F0: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080AB7F8: .4byte 0x000073FC - thumb_func_end UpdateSpritePaletteWithWeather - - thumb_func_start ApplyWeatherGammaShiftToPal -ApplyWeatherGammaShiftToPal: @ 0x080AB7FC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080AB818 - movs r2, #0xd8 - lsls r2, r2, #3 - adds r1, r1, r2 - movs r2, #0 - ldrsb r2, [r1, r2] - movs r1, #1 - bl ApplyGammaShift - pop {r0} - bx r0 - .align 2, 0 -_080AB818: .4byte gUnknown_20380F4 - thumb_func_end ApplyWeatherGammaShiftToPal - - thumb_func_start sub_080AB81C -sub_080AB81C: @ 0x080AB81C - push {lr} - ldr r1, _080AB830 - ldr r2, _080AB834 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #1 - beq _080AB838 - movs r0, #0 - b _080AB83E - .align 2, 0 -_080AB830: .4byte gUnknown_20380F4 -_080AB834: .4byte 0x000006C6 -_080AB838: - ldr r2, _080AB844 - adds r0, r1, r2 - ldrb r0, [r0] -_080AB83E: - pop {r1} - bx r1 - .align 2, 0 -_080AB844: .4byte 0x000006CA - thumb_func_end sub_080AB81C - - thumb_func_start LoadCustomWeatherSpritePalette -LoadCustomWeatherSpritePalette: @ 0x080AB848 - push {r4, lr} - ldr r4, _080AB870 - ldr r1, _080AB874 - adds r4, r4, r1 - ldrb r1, [r4] - lsls r1, r1, #0x14 - movs r2, #0x80 - lsls r2, r2, #0x11 - adds r1, r1, r2 - lsrs r1, r1, #0x10 - movs r2, #0x20 - bl LoadPalette - ldrb r0, [r4] - bl UpdateSpritePaletteWithWeather - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AB870: .4byte gUnknown_20380F4 -_080AB874: .4byte 0x000006D4 - thumb_func_end LoadCustomWeatherSpritePalette - - thumb_func_start LoadDroughtWeatherPalette -LoadDroughtWeatherPalette: @ 0x080AB878 - movs r2, #0x20 - strb r2, [r0] - strb r2, [r1] - bx lr - thumb_func_end LoadDroughtWeatherPalette - - thumb_func_start ResetDroughtWeatherPaletteLoading -ResetDroughtWeatherPaletteLoading: @ 0x080AB880 - ldr r0, _080AB894 - ldr r2, _080AB898 - adds r1, r0, r2 - movs r2, #1 - strb r2, [r1] - ldr r1, _080AB89C - adds r0, r0, r1 - strb r2, [r0] - bx lr - .align 2, 0 -_080AB894: .4byte gUnknown_20380F4 -_080AB898: .4byte 0x0000074D -_080AB89C: .4byte 0x0000074E - thumb_func_end ResetDroughtWeatherPaletteLoading - - thumb_func_start LoadDroughtWeatherPalettes -LoadDroughtWeatherPalettes: @ 0x080AB8A0 - push {r4, lr} - ldr r1, _080AB8C8 - ldr r0, _080AB8CC - adds r4, r1, r0 - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #0x1f - bgt _080AB8D4 - ldr r0, _080AB8D0 - adds r1, r1, r0 - adds r0, r4, #0 - bl LoadDroughtWeatherPalette - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #0x1f - bgt _080AB8D4 - movs r0, #1 - b _080AB8D6 - .align 2, 0 -_080AB8C8: .4byte gUnknown_20380F4 -_080AB8CC: .4byte 0x0000074D -_080AB8D0: .4byte 0x0000074E -_080AB8D4: - movs r0, #0 -_080AB8D6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end LoadDroughtWeatherPalettes - - thumb_func_start sub_080AB8DC -sub_080AB8DC: @ 0x080AB8DC - push {lr} - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - mvns r0, r0 - bl sub_080AB544 - pop {r0} - bx r0 - thumb_func_end sub_080AB8DC - - thumb_func_start sub_080AB8EC -sub_080AB8EC: @ 0x080AB8EC - ldr r1, _080AB90C - ldr r2, _080AB910 - adds r0, r1, r2 - movs r2, #0 - strh r2, [r0] - movs r3, #0xe8 - lsls r3, r3, #3 - adds r0, r1, r3 - strh r2, [r0] - adds r3, #2 - adds r0, r1, r3 - strh r2, [r0] - ldr r0, _080AB914 - adds r1, r1, r0 - strh r2, [r1] - bx lr - .align 2, 0 -_080AB90C: .4byte gUnknown_20380F4 -_080AB910: .4byte 0x0000073C -_080AB914: .4byte 0x0000073E - thumb_func_end sub_080AB8EC - - thumb_func_start sub_080AB918 -sub_080AB918: @ 0x080AB918 - push {r4, r5, r6, r7, lr} - ldr r5, _080AB934 - ldr r0, _080AB938 - adds r7, r5, r0 - movs r2, #0 - ldrsh r1, [r7, r2] - cmp r1, #1 - beq _080AB98C - cmp r1, #1 - bgt _080AB93C - cmp r1, #0 - beq _080AB942 - b _080ABA14 - .align 2, 0 -_080AB934: .4byte gUnknown_20380F4 -_080AB938: .4byte 0x00000742 -_080AB93C: - cmp r1, #2 - beq _080AB9E0 - b _080ABA14 -_080AB942: - movs r3, #0xe8 - lsls r3, r3, #3 - adds r6, r5, r3 - ldrh r0, [r6] - adds r0, #1 - strh r0, [r6] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #5 - ble _080ABA14 - strh r1, [r6] - ldr r0, _080AB984 - adds r4, r5, r0 - ldrh r0, [r4] - adds r1, r0, #1 - strh r1, [r4] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - bl sub_080AB8DC - ldrh r1, [r4] - movs r2, #0 - ldrsh r0, [r4, r2] - cmp r0, #5 - ble _080ABA14 - ldr r3, _080AB988 - adds r0, r5, r3 - strh r1, [r0] - movs r0, #1 - strh r0, [r7] - movs r0, #0x3c - strh r0, [r6] - b _080ABA14 - .align 2, 0 -_080AB984: .4byte 0x0000073C -_080AB988: .4byte 0x0000073E -_080AB98C: - movs r0, #0xe8 - lsls r0, r0, #3 - adds r2, r5, r0 - ldrh r0, [r2] - adds r0, #3 - movs r1, #0x7f - ands r0, r1 - strh r0, [r2] - ldr r1, _080AB9D4 - movs r3, #0 - ldrsh r0, [r2, r3] - lsls r0, r0, #1 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - subs r0, #1 - asrs r0, r0, #6 - adds r0, #2 - ldr r2, _080AB9D8 - adds r6, r5, r2 - adds r2, r0, #0 - strh r0, [r6] - ldr r3, _080AB9DC - adds r4, r5, r3 - movs r3, #0 - ldrsh r1, [r4, r3] - cmp r0, r1 - beq _080AB9CC - lsls r0, r2, #0x18 - asrs r0, r0, #0x18 - bl sub_080AB8DC -_080AB9CC: - ldrh r0, [r6] - strh r0, [r4] - b _080ABA14 - .align 2, 0 -_080AB9D4: .4byte gUnknown_82FA8CC -_080AB9D8: .4byte 0x0000073C -_080AB9DC: .4byte 0x0000073E -_080AB9E0: - movs r0, #0xe8 - lsls r0, r0, #3 - adds r1, r5, r0 - ldrh r0, [r1] - adds r0, #1 - movs r6, #0 - strh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #5 - ble _080ABA14 - strh r6, [r1] - ldr r1, _080ABA1C - adds r4, r5, r1 - ldrh r0, [r4] - subs r0, #1 - strh r0, [r4] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - bl sub_080AB8DC - movs r2, #0 - ldrsh r0, [r4, r2] - cmp r0, #3 - bne _080ABA14 - strh r6, [r7] -_080ABA14: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080ABA1C: .4byte 0x0000073C - thumb_func_end sub_080AB918 - - thumb_func_start Weather_SetBlendCoeffs -Weather_SetBlendCoeffs: @ 0x080ABA20 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r3, _080ABA58 - movs r4, #0xe6 - lsls r4, r4, #3 - adds r2, r3, r4 - strh r0, [r2] - adds r4, #2 - adds r2, r3, r4 - strh r1, [r2] - adds r4, #2 - adds r2, r3, r4 - strh r0, [r2] - ldr r2, _080ABA5C - adds r3, r3, r2 - strh r1, [r3] - lsls r1, r1, #8 - orrs r1, r0 - movs r0, #0x52 - bl SetGpuReg - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ABA58: .4byte gUnknown_20380F4 -_080ABA5C: .4byte 0x00000736 - thumb_func_end Weather_SetBlendCoeffs - - thumb_func_start Weather_SetTargetBlendCoeffs -Weather_SetTargetBlendCoeffs: @ 0x080ABA60 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r3, _080ABA94 - ldr r5, _080ABA98 - adds r4, r3, r5 - movs r5, #0 - strh r0, [r4] - ldr r4, _080ABA9C - adds r0, r3, r4 - strh r1, [r0] - ldr r1, _080ABAA0 - adds r0, r3, r1 - strb r2, [r0] - adds r4, #3 - adds r0, r3, r4 - strb r5, [r0] - movs r0, #0xe7 - lsls r0, r0, #3 - adds r3, r3, r0 - strb r5, [r3] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080ABA94: .4byte gUnknown_20380F4 -_080ABA98: .4byte 0x00000734 -_080ABA9C: .4byte 0x00000736 -_080ABAA0: .4byte 0x0000073A - thumb_func_end Weather_SetTargetBlendCoeffs - - thumb_func_start Weather_UpdateBlend -Weather_UpdateBlend: @ 0x080ABAA4 - push {r4, r5, r6, lr} - ldr r0, _080ABAFC - movs r1, #0xe6 - lsls r1, r1, #3 - adds r3, r0, r1 - ldr r2, [r3] - ldr r6, _080ABB00 - adds r4, r0, r6 - ldr r1, [r4] - adds r5, r0, #0 - cmp r2, r1 - beq _080ABB68 - ldr r0, _080ABB04 - adds r2, r5, r0 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - ldr r6, _080ABB08 - adds r1, r5, r6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1] - cmp r0, r1 - bls _080ABB34 - movs r0, #0 - strb r0, [r2] - movs r0, #0xe7 - lsls r0, r0, #3 - adds r1, r5, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _080ABB0C - ldrh r1, [r3] - adds r2, r1, #0 - ldrh r0, [r4] - cmp r2, r0 - bhs _080ABB2C - adds r0, r1, #1 - b _080ABB32 - .align 2, 0 -_080ABAFC: .4byte gUnknown_20380F4 -_080ABB00: .4byte 0x00000734 -_080ABB04: .4byte 0x00000739 -_080ABB08: .4byte 0x0000073A -_080ABB0C: - ldr r1, _080ABB24 - adds r3, r5, r1 - ldr r2, _080ABB28 - adds r0, r5, r2 - ldrh r1, [r3] - adds r2, r1, #0 - ldrh r0, [r0] - cmp r2, r0 - bhs _080ABB2C - adds r0, r1, #1 - b _080ABB32 - .align 2, 0 -_080ABB24: .4byte 0x00000732 -_080ABB28: .4byte 0x00000736 -_080ABB2C: - cmp r2, r0 - bls _080ABB34 - subs r0, r1, #1 -_080ABB32: - strh r0, [r3] -_080ABB34: - ldr r6, _080ABB60 - adds r0, r5, r6 - ldrh r1, [r0] - lsls r1, r1, #8 - movs r0, #0xe6 - lsls r0, r0, #3 - adds r4, r5, r0 - ldrh r0, [r4] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - ldr r1, [r4] - ldr r2, _080ABB64 - adds r0, r5, r2 - ldr r0, [r0] - cmp r1, r0 - beq _080ABB68 - movs r0, #0 - b _080ABB6A - .align 2, 0 -_080ABB60: .4byte 0x00000732 -_080ABB64: .4byte 0x00000734 -_080ABB68: - movs r0, #1 -_080ABB6A: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end Weather_UpdateBlend - - thumb_func_start sub_080ABB70 -sub_080ABB70: @ 0x080ABB70 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, #1 - cmp r0, #9 - bhi _080ABC02 - lsls r0, r0, #2 - ldr r1, _080ABB88 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ABB88: .4byte _080ABB8C -_080ABB8C: @ jump table - .4byte _080ABBB4 @ case 0 - .4byte _080ABBBC @ case 1 - .4byte _080ABBC4 @ case 2 - .4byte _080ABBCC @ case 3 - .4byte _080ABBD4 @ case 4 - .4byte _080ABBDC @ case 5 - .4byte _080ABBE4 @ case 6 - .4byte _080ABBEC @ case 7 - .4byte _080ABBF4 @ case 8 - .4byte _080ABBFC @ case 9 -_080ABBB4: - movs r0, #1 - bl SetWeather - b _080ABC02 -_080ABBBC: - movs r0, #2 - bl SetWeather - b _080ABC02 -_080ABBC4: - movs r0, #3 - bl SetWeather - b _080ABC02 -_080ABBCC: - movs r0, #4 - bl SetWeather - b _080ABC02 -_080ABBD4: - movs r0, #5 - bl SetWeather - b _080ABC02 -_080ABBDC: - movs r0, #6 - bl SetWeather - b _080ABC02 -_080ABBE4: - movs r0, #9 - bl SetWeather - b _080ABC02 -_080ABBEC: - movs r0, #7 - bl SetWeather - b _080ABC02 -_080ABBF4: - movs r0, #8 - bl SetWeather - b _080ABC02 -_080ABBFC: - movs r0, #0xb - bl SetWeather -_080ABC02: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080ABB70 - - thumb_func_start GetCurrentWeather -GetCurrentWeather: @ 0x080ABC08 - ldr r0, _080ABC14 - movs r1, #0xda - lsls r1, r1, #3 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080ABC14: .4byte gUnknown_20380F4 - thumb_func_end GetCurrentWeather - - thumb_func_start sub_080ABC18 -sub_080ABC18: @ 0x080ABC18 - push {lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r1, _080ABC38 - ldr r3, _080ABC3C - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, #2 - beq _080ABC6A - cmp r2, #0x53 - beq _080ABC50 - cmp r2, #0x53 - bgt _080ABC40 - cmp r2, #0x51 - beq _080ABC5C - b _080ABC6A - .align 2, 0 -_080ABC38: .4byte gUnknown_20380F4 -_080ABC3C: .4byte 0x000006C6 -_080ABC40: - cmp r2, #0x55 - bne _080ABC6A - ldr r0, _080ABC4C - adds r1, r1, r0 - movs r0, #0 - b _080ABC62 - .align 2, 0 -_080ABC4C: .4byte 0x000006DD -_080ABC50: - ldr r3, _080ABC58 - adds r1, r1, r3 - movs r0, #1 - b _080ABC62 - .align 2, 0 -_080ABC58: .4byte 0x000006DD -_080ABC5C: - ldr r0, _080ABC70 - adds r1, r1, r0 - movs r0, #2 -_080ABC62: - strb r0, [r1] - adds r0, r2, #0 - bl sub_080A306C -_080ABC6A: - pop {r0} - bx r0 - .align 2, 0 -_080ABC70: .4byte 0x000006DD - thumb_func_end sub_080ABC18 - - thumb_func_start PlayRainStoppingSoundEffect -PlayRainStoppingSoundEffect: @ 0x080ABC74 - push {lr} - bl sub_080A31D4 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080ABCB2 - ldr r0, _080ABC9C - ldr r1, _080ABCA0 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - beq _080ABCA4 - cmp r0, #1 - bgt _080ABCAC - cmp r0, #0 - bne _080ABCAC - movs r0, #0x56 - bl sub_080A306C - b _080ABCB2 - .align 2, 0 -_080ABC9C: .4byte gUnknown_20380F4 -_080ABCA0: .4byte 0x000006DD -_080ABCA4: - movs r0, #0x54 - bl sub_080A306C - b _080ABCB2 -_080ABCAC: - movs r0, #0x52 - bl sub_080A306C -_080ABCB2: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PlayRainStoppingSoundEffect - - thumb_func_start sub_080ABCB8 -sub_080ABCB8: @ 0x080ABCB8 - ldr r0, _080ABCC4 - ldr r1, _080ABCC8 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080ABCC4: .4byte gUnknown_20380F4 -_080ABCC8: .4byte 0x000006D3 - thumb_func_end sub_080ABCB8 - - thumb_func_start sub_080ABCCC -sub_080ABCCC: @ 0x080ABCCC - ldr r0, _080ABCD8 - ldr r1, _080ABCDC - adds r0, r0, r1 - movs r1, #2 - strb r1, [r0] - bx lr - .align 2, 0 -_080ABCD8: .4byte gUnknown_20380F4 -_080ABCDC: .4byte 0x000006C6 - thumb_func_end sub_080ABCCC - - thumb_func_start sub_080ABCE0 -sub_080ABCE0: @ 0x080ABCE0 - ldr r0, _080ABCEC - ldr r1, _080ABCF0 - adds r0, r0, r1 - movs r1, #3 - strb r1, [r0] - bx lr - .align 2, 0 -_080ABCEC: .4byte gUnknown_20380F4 -_080ABCF0: .4byte 0x000006C6 - thumb_func_end sub_080ABCE0 - - thumb_func_start PreservePaletteInWeather -PreservePaletteInWeather: @ 0x080ABCF4 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _080ABD18 - ldr r5, _080ABD1C - adds r1, r5, #0 - movs r2, #0x10 - bl CpuSet - adds r4, r4, r5 - movs r0, #0 - strb r0, [r4] - ldr r0, _080ABD20 - str r5, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080ABD18: .4byte gUnknown_8526EEC -_080ABD1C: .4byte gUnknown_2038844 -_080ABD20: .4byte gUnknown_3000F50 - thumb_func_end PreservePaletteInWeather - - thumb_func_start sub_080ABD24 -sub_080ABD24: @ 0x080ABD24 - ldr r1, _080ABD2C - ldr r0, _080ABD30 - str r0, [r1] - bx lr - .align 2, 0 -_080ABD2C: .4byte gUnknown_3000F50 -_080ABD30: .4byte gUnknown_8526EEC - thumb_func_end sub_080ABD24 - - thumb_func_start Clouds_InitVars -Clouds_InitVars: @ 0x080ABD34 - push {lr} - ldr r0, _080ABD6C - ldr r0, [r0] - ldr r2, _080ABD70 - adds r1, r0, r2 - movs r2, #0 - strb r2, [r1] - ldr r1, _080ABD74 - adds r3, r0, r1 - movs r1, #0x14 - strb r1, [r3] - ldr r3, _080ABD78 - adds r1, r0, r3 - strb r2, [r1] - subs r3, #6 - adds r1, r0, r3 - strh r2, [r1] - ldr r1, _080ABD7C - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080ABD68 - movs r0, #0 - movs r1, #0x10 - bl Weather_SetBlendCoeffs -_080ABD68: - pop {r0} - bx r0 - .align 2, 0 -_080ABD6C: .4byte gUnknown_8526DE8 -_080ABD70: .4byte 0x000006C1 -_080ABD74: .4byte 0x000006C2 -_080ABD78: .4byte 0x000006D2 -_080ABD7C: .4byte 0x000006DE - thumb_func_end Clouds_InitVars - - thumb_func_start Clouds_InitAll -Clouds_InitAll: @ 0x080ABD80 - push {r4, lr} - bl Clouds_InitVars - ldr r0, _080ABDA8 - ldr r1, [r0] - ldr r2, _080ABDAC - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _080ABDA0 - adds r4, r1, r2 -_080ABD96: - bl Clouds_Main - ldrb r0, [r4] - cmp r0, #0 - beq _080ABD96 -_080ABDA0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ABDA8: .4byte gUnknown_8526DE8 -_080ABDAC: .4byte 0x000006D2 - thumb_func_end Clouds_InitAll - - thumb_func_start Clouds_Main -Clouds_Main: @ 0x080ABDB0 - push {r4, r5, lr} - ldr r0, _080ABDCC - ldr r5, [r0] - ldr r0, _080ABDD0 - adds r4, r5, r0 - ldrh r0, [r4] - cmp r0, #1 - beq _080ABDE0 - cmp r0, #1 - bgt _080ABDD4 - cmp r0, #0 - beq _080ABDDA - b _080ABE04 - .align 2, 0 -_080ABDCC: .4byte gUnknown_8526DE8 -_080ABDD0: .4byte 0x000006CC -_080ABDD4: - cmp r0, #2 - beq _080ABDEC - b _080ABE04 -_080ABDDA: - bl CreateCloudSprites - b _080ABDFE -_080ABDE0: - movs r0, #0xc - movs r1, #8 - movs r2, #1 - bl Weather_SetTargetBlendCoeffs - b _080ABDFE -_080ABDEC: - bl Weather_UpdateBlend - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080ABE04 - ldr r0, _080ABE0C - adds r1, r5, r0 - movs r0, #1 - strb r0, [r1] -_080ABDFE: - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] -_080ABE04: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080ABE0C: .4byte 0x000006D2 - thumb_func_end Clouds_Main - - thumb_func_start Clouds_Finish -Clouds_Finish: @ 0x080ABE10 - push {r4, lr} - ldr r0, _080ABE28 - ldr r0, [r0] - ldr r1, _080ABE2C - adds r4, r0, r1 - ldrh r0, [r4] - cmp r0, #0 - beq _080ABE30 - cmp r0, #1 - beq _080ABE3C - movs r0, #0 - b _080ABE52 - .align 2, 0 -_080ABE28: .4byte gUnknown_8526DE8 -_080ABE2C: .4byte 0x000006CE -_080ABE30: - movs r0, #0 - movs r1, #0x10 - movs r2, #1 - bl Weather_SetTargetBlendCoeffs - b _080ABE4A -_080ABE3C: - bl Weather_UpdateBlend - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080ABE50 - bl DestroyCloudSprites -_080ABE4A: - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] -_080ABE50: - movs r0, #1 -_080ABE52: - pop {r4} - pop {r1} - bx r1 - thumb_func_end Clouds_Finish - - thumb_func_start Sunny_InitVars -Sunny_InitVars: @ 0x080ABE58 - ldr r0, _080ABE70 - ldr r1, [r0] - ldr r0, _080ABE74 - adds r2, r1, r0 - movs r0, #0 - strb r0, [r2] - ldr r0, _080ABE78 - adds r1, r1, r0 - movs r0, #0x14 - strb r0, [r1] - bx lr - .align 2, 0 -_080ABE70: .4byte gUnknown_8526DE8 -_080ABE74: .4byte 0x000006C1 -_080ABE78: .4byte 0x000006C2 - thumb_func_end Sunny_InitVars - - thumb_func_start Sunny_InitAll -Sunny_InitAll: @ 0x080ABE7C - push {lr} - bl Sunny_InitVars - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Sunny_InitAll - - thumb_func_start sub_080ABE88 -sub_080ABE88: @ 0x080ABE88 - bx lr - .align 2, 0 - thumb_func_end sub_080ABE88 - - thumb_func_start sub_080ABE8C -sub_080ABE8C: @ 0x080ABE8C - movs r0, #0 - bx lr - thumb_func_end sub_080ABE8C - - thumb_func_start CreateCloudSprites -CreateCloudSprites: @ 0x080ABE90 - push {r4, r5, lr} - ldr r0, _080ABF08 - ldr r0, [r0] - ldr r1, _080ABF0C - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - beq _080ABF4C - ldr r0, _080ABF10 - bl LoadSpriteSheet - ldr r0, _080ABF14 - bl LoadCustomWeatherSpritePalette - movs r5, #0 -_080ABEAE: - ldr r0, _080ABF18 - movs r1, #0 - movs r2, #0 - movs r3, #0xff - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0x40 - beq _080ABF24 - ldr r0, _080ABF08 - ldr r1, [r0] - lsls r2, r5, #2 - movs r0, #0xfa - lsls r0, r0, #1 - adds r1, r1, r0 - adds r1, r1, r2 - lsls r4, r3, #4 - adds r4, r4, r3 - lsls r4, r4, #2 - ldr r0, _080ABF1C - adds r4, r4, r0 - str r4, [r1] - ldr r0, _080ABF20 - adds r2, r2, r0 - ldrh r0, [r2] - adds r0, #7 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrh r1, [r2, #2] - adds r1, #7 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r2, r4, #0 - adds r2, #0x20 - adds r3, r4, #0 - adds r3, #0x22 - bl SetSpritePosToMapCoords - adds r4, #0x3e - ldrb r0, [r4] - movs r1, #2 - orrs r0, r1 - strb r0, [r4] - b _080ABF36 - .align 2, 0 -_080ABF08: .4byte gUnknown_8526DE8 -_080ABF0C: .4byte 0x000006DE -_080ABF10: .4byte gUnknown_852A7F8 -_080ABF14: .4byte gUnknown_8526F2C -_080ABF18: .4byte gUnknown_852A814 -_080ABF1C: .4byte gUnknown_20205AC -_080ABF20: .4byte gUnknown_852A7EC -_080ABF24: - ldr r0, _080ABF54 - ldr r1, [r0] - lsls r0, r5, #2 - movs r2, #0xfa - lsls r2, r2, #1 - adds r1, r1, r2 - adds r1, r1, r0 - movs r0, #0 - str r0, [r1] -_080ABF36: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #2 - bls _080ABEAE - ldr r0, _080ABF54 - ldr r0, [r0] - ldr r1, _080ABF58 - adds r0, r0, r1 - movs r1, #1 - strb r1, [r0] -_080ABF4C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080ABF54: .4byte gUnknown_8526DE8 -_080ABF58: .4byte 0x000006DE - thumb_func_end CreateCloudSprites - - thumb_func_start DestroyCloudSprites -DestroyCloudSprites: @ 0x080ABF5C - push {r4, r5, lr} - ldr r0, _080ABFA8 - ldr r1, [r0] - ldr r2, _080ABFAC - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080ABFA0 - movs r4, #0 - movs r0, #0xfa - lsls r0, r0, #1 - adds r5, r1, r0 -_080ABF74: - lsls r0, r4, #2 - adds r0, r5, r0 - ldr r0, [r0] - cmp r0, #0 - beq _080ABF82 - bl DestroySprite -_080ABF82: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #2 - bls _080ABF74 - movs r0, #0x90 - lsls r0, r0, #5 - bl FreeSpriteTilesByTag - ldr r0, _080ABFA8 - ldr r0, [r0] - ldr r1, _080ABFAC - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] -_080ABFA0: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080ABFA8: .4byte gUnknown_8526DE8 -_080ABFAC: .4byte 0x000006DE - thumb_func_end DestroyCloudSprites - - thumb_func_start UpdateCloudSprite -UpdateCloudSprite: @ 0x080ABFB0 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x2e] - adds r0, #1 - movs r1, #1 - ands r0, r1 - strh r0, [r2, #0x2e] - cmp r0, #0 - beq _080ABFC8 - ldrh r0, [r2, #0x20] - subs r0, #1 - strh r0, [r2, #0x20] -_080ABFC8: - pop {r0} - bx r0 - thumb_func_end UpdateCloudSprite - - thumb_func_start Drought_InitVars -Drought_InitVars: @ 0x080ABFCC - ldr r0, _080ABFF0 - ldr r1, [r0] - ldr r0, _080ABFF4 - adds r3, r1, r0 - movs r2, #0 - movs r0, #0 - strh r0, [r3] - ldr r3, _080ABFF8 - adds r0, r1, r3 - strb r2, [r0] - subs r3, #0x11 - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _080ABFFC - adds r1, r1, r0 - strb r2, [r1] - bx lr - .align 2, 0 -_080ABFF0: .4byte gUnknown_8526DE8 -_080ABFF4: .4byte 0x000006CC -_080ABFF8: .4byte 0x000006D2 -_080ABFFC: .4byte 0x000006C2 - thumb_func_end Drought_InitVars - - thumb_func_start Drought_InitAll -Drought_InitAll: @ 0x080AC000 - push {r4, lr} - bl Drought_InitVars - ldr r0, _080AC028 - ldr r1, [r0] - ldr r2, _080AC02C - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _080AC020 - adds r4, r1, r2 -_080AC016: - bl Drought_Main - ldrb r0, [r4] - cmp r0, #0 - beq _080AC016 -_080AC020: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AC028: .4byte gUnknown_8526DE8 -_080AC02C: .4byte 0x000006D2 - thumb_func_end Drought_InitAll - - thumb_func_start Drought_Main -Drought_Main: @ 0x080AC030 - push {lr} - ldr r1, _080AC04C - ldr r0, [r1] - ldr r2, _080AC050 - adds r0, r0, r2 - ldrh r0, [r0] - adds r2, r1, #0 - cmp r0, #4 - bhi _080AC10C - lsls r0, r0, #2 - ldr r1, _080AC054 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080AC04C: .4byte gUnknown_8526DE8 -_080AC050: .4byte 0x000006CC -_080AC054: .4byte _080AC058 -_080AC058: @ jump table - .4byte _080AC06C @ case 0 - .4byte _080AC088 @ case 1 - .4byte _080AC0A0 @ case 2 - .4byte _080AC0BC @ case 3 - .4byte _080AC0D4 @ case 4 -_080AC06C: - ldr r1, [r2] - ldr r2, _080AC080 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080AC110 - ldr r0, _080AC084 - adds r1, r1, r0 - b _080AC0F4 - .align 2, 0 -_080AC080: .4byte 0x000006C6 -_080AC084: .4byte 0x000006CC -_080AC088: - bl ResetDroughtWeatherPaletteLoading - ldr r0, _080AC098 - ldr r1, [r0] - ldr r2, _080AC09C - adds r1, r1, r2 - b _080AC0F4 - .align 2, 0 -_080AC098: .4byte gUnknown_8526DE8 -_080AC09C: .4byte 0x000006CC -_080AC0A0: - bl LoadDroughtWeatherPalettes - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AC110 - ldr r0, _080AC0B4 - ldr r1, [r0] - ldr r0, _080AC0B8 - adds r1, r1, r0 - b _080AC0F4 - .align 2, 0 -_080AC0B4: .4byte gUnknown_8526DE8 -_080AC0B8: .4byte 0x000006CC -_080AC0BC: - bl sub_080AB8EC - ldr r0, _080AC0CC - ldr r1, [r0] - ldr r2, _080AC0D0 - adds r1, r1, r2 - b _080AC0F4 - .align 2, 0 -_080AC0CC: .4byte gUnknown_8526DE8 -_080AC0D0: .4byte 0x000006CC -_080AC0D4: - bl sub_080AB918 - ldr r0, _080AC0FC - ldr r2, [r0] - ldr r1, _080AC100 - adds r0, r2, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #6 - bne _080AC110 - ldr r0, _080AC104 - adds r1, r2, r0 - movs r0, #1 - strb r0, [r1] - ldr r0, _080AC108 - adds r1, r2, r0 -_080AC0F4: - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _080AC110 - .align 2, 0 -_080AC0FC: .4byte gUnknown_8526DE8 -_080AC100: .4byte 0x0000073C -_080AC104: .4byte 0x000006D2 -_080AC108: .4byte 0x000006CC -_080AC10C: - bl sub_080AB918 -_080AC110: - pop {r0} - bx r0 - thumb_func_end Drought_Main - - thumb_func_start sub_080AC114 -sub_080AC114: @ 0x080AC114 - movs r0, #0 - bx lr - thumb_func_end sub_080AC114 - - thumb_func_start StartDroughtWeatherBlend -StartDroughtWeatherBlend: @ 0x080AC118 - push {lr} - ldr r0, _080AC128 - movs r1, #0x50 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080AC128: .4byte UpdateDroughtBlend - thumb_func_end StartDroughtWeatherBlend - - thumb_func_start UpdateDroughtBlend -UpdateDroughtBlend: @ 0x080AC12C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080AC150 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #4 - bhi _080AC21E - lsls r0, r0, #2 - ldr r1, _080AC154 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080AC150: .4byte gUnknown_3005B60 -_080AC154: .4byte _080AC158 -_080AC158: @ jump table - .4byte _080AC16C @ case 0 - .4byte _080AC196 @ case 1 - .4byte _080AC1C4 @ case 2 - .4byte _080AC1F4 @ case 3 - .4byte _080AC214 @ case 4 -_080AC16C: - movs r0, #0 - strh r0, [r4, #0xa] - strh r0, [r4, #0xc] - ldr r0, _080AC1BC - ldrh r0, [r0] - strh r0, [r4, #0xe] - ldr r1, _080AC1C0 - movs r0, #0x48 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0x9e - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080AC196: - ldrh r0, [r4, #0xa] - adds r0, #3 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x10 - ble _080AC1A8 - movs r0, #0x10 - strh r0, [r4, #0xa] -_080AC1A8: - ldrh r1, [r4, #0xa] - movs r0, #0x54 - bl SetGpuReg - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0xf - ble _080AC21E - b _080AC20C - .align 2, 0 -_080AC1BC: .4byte 0x04000048 -_080AC1C0: .4byte 0x00003F3F -_080AC1C4: - ldrh r0, [r4, #0xc] - adds r0, #1 - movs r1, #0 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #9 - ble _080AC21E - strh r1, [r4, #0xc] - ldrh r0, [r4, #0xa] - subs r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _080AC1EA - strh r1, [r4, #0xa] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080AC1EA: - ldrh r1, [r4, #0xa] - movs r0, #0x54 - bl SetGpuReg - b _080AC21E -_080AC1F4: - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - ldrh r1, [r4, #0xe] - movs r0, #0x48 - bl SetGpuReg -_080AC20C: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _080AC21E -_080AC214: - bl EnableBothScriptContexts - adds r0, r5, #0 - bl DestroyTask -_080AC21E: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end UpdateDroughtBlend - - thumb_func_start LightRain_InitVars -LightRain_InitVars: @ 0x080AC224 - push {r4, lr} - ldr r0, _080AC274 - ldr r1, [r0] - ldr r2, _080AC278 - adds r0, r1, r2 - movs r3, #0 - movs r2, #0 - strh r2, [r0] - ldr r4, _080AC27C - adds r0, r1, r4 - strb r3, [r0] - adds r4, #4 - adds r0, r1, r4 - strh r2, [r0] - ldr r0, _080AC280 - adds r2, r1, r0 - movs r0, #8 - strb r0, [r2] - ldr r2, _080AC284 - adds r0, r1, r2 - strb r3, [r0] - adds r4, #3 - adds r2, r1, r4 - movs r0, #0xa - strb r0, [r2] - ldr r0, _080AC288 - adds r2, r1, r0 - movs r0, #3 - strb r0, [r2] - ldr r2, _080AC28C - adds r1, r1, r2 - movs r0, #0x14 - strb r0, [r1] - movs r0, #0x55 - bl sub_080ABC18 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AC274: .4byte gUnknown_8526DE8 -_080AC278: .4byte 0x000006CC -_080AC27C: .4byte 0x000006D2 -_080AC280: .4byte 0x000006DB -_080AC284: .4byte 0x000006DC -_080AC288: .4byte 0x000006C1 -_080AC28C: .4byte 0x000006C2 - thumb_func_end LightRain_InitVars - - thumb_func_start sub_080AC290 -sub_080AC290: @ 0x080AC290 - push {r4, lr} - bl LightRain_InitVars - ldr r0, _080AC2B8 - ldr r1, [r0] - ldr r2, _080AC2BC - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _080AC2B0 - adds r4, r1, r2 -_080AC2A6: - bl LightRain_Main - ldrb r0, [r4] - cmp r0, #0 - beq _080AC2A6 -_080AC2B0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AC2B8: .4byte gUnknown_8526DE8 -_080AC2BC: .4byte 0x000006D2 - thumb_func_end sub_080AC290 - - thumb_func_start LightRain_Main -LightRain_Main: @ 0x080AC2C0 - push {r4, r5, lr} - ldr r0, _080AC2DC - ldr r5, [r0] - ldr r0, _080AC2E0 - adds r4, r5, r0 - ldrh r0, [r4] - cmp r0, #1 - beq _080AC2F0 - cmp r0, #1 - bgt _080AC2E4 - cmp r0, #0 - beq _080AC2EA - b _080AC314 - .align 2, 0 -_080AC2DC: .4byte gUnknown_8526DE8 -_080AC2E0: .4byte 0x000006CC -_080AC2E4: - cmp r0, #2 - beq _080AC2FC - b _080AC314 -_080AC2EA: - bl sub_080AC664 - b _080AC30E -_080AC2F0: - bl CreateRainSprite - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AC314 - b _080AC30E -_080AC2FC: - bl UpdateVisibleRainSprites - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AC314 - ldr r0, _080AC31C - adds r1, r5, r0 - movs r0, #1 - strb r0, [r1] -_080AC30E: - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] -_080AC314: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080AC31C: .4byte 0x000006D2 - thumb_func_end LightRain_Main - - thumb_func_start LightRain_Finish -LightRain_Finish: @ 0x080AC320 - push {r4, r5, lr} - ldr r0, _080AC33C - ldr r2, [r0] - ldr r1, _080AC340 - adds r3, r2, r1 - ldrh r1, [r3] - adds r4, r0, #0 - cmp r1, #0 - beq _080AC344 - cmp r1, #1 - beq _080AC378 - movs r0, #0 - b _080AC3A6 - .align 2, 0 -_080AC33C: .4byte gUnknown_8526DE8 -_080AC340: .4byte 0x000006CE -_080AC344: - ldr r5, _080AC364 - adds r0, r2, r5 - ldrb r0, [r0] - cmp r0, #3 - beq _080AC356 - cmp r0, #5 - beq _080AC356 - cmp r0, #0xd - bne _080AC36C -_080AC356: - ldr r0, [r4] - ldr r1, _080AC368 - adds r0, r0, r1 - movs r1, #0xff - strh r1, [r0] - movs r0, #0 - b _080AC3A6 - .align 2, 0 -_080AC364: .4byte 0x000006D1 -_080AC368: .4byte 0x000006CE -_080AC36C: - ldr r4, _080AC398 - adds r0, r2, r4 - strb r1, [r0] - ldrh r0, [r3] - adds r0, #1 - strh r0, [r3] -_080AC378: - bl UpdateVisibleRainSprites - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AC3A4 - bl DestroyRainSprites - ldr r0, _080AC39C - ldr r1, [r0] - ldr r5, _080AC3A0 - adds r1, r1, r5 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - movs r0, #0 - b _080AC3A6 - .align 2, 0 -_080AC398: .4byte 0x000006D9 -_080AC39C: .4byte gUnknown_8526DE8 -_080AC3A0: .4byte 0x000006CE -_080AC3A4: - movs r0, #1 -_080AC3A6: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end LightRain_Finish - - thumb_func_start StartRainSpriteFall -StartRainSpriteFall: @ 0x080AC3AC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - movs r1, #0x30 - ldrsh r0, [r7, r1] - cmp r0, #0 - bne _080AC3C0 - ldr r0, _080AC464 - strh r0, [r7, #0x30] -_080AC3C0: - movs r2, #0x30 - ldrsh r1, [r7, r2] - ldr r0, _080AC468 - muls r0, r1, r0 - ldr r3, _080AC46C - adds r0, r0, r3 - lsls r0, r0, #1 - lsrs r0, r0, #0x11 - movs r1, #0x96 - lsls r1, r1, #2 - bl __umodsi3 - movs r1, #0 - mov r8, r1 - strh r0, [r7, #0x30] - ldr r1, _080AC470 - ldr r0, _080AC474 - ldr r5, [r0] - ldr r2, _080AC478 - adds r5, r5, r2 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r6, [r0] - movs r3, #0x30 - ldrsh r0, [r7, r3] - movs r1, #0x1e - bl __modsi3 - adds r4, r0, #0 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - lsls r0, r4, #3 - strh r0, [r7, #0x32] - movs r1, #0x30 - ldrsh r0, [r7, r1] - movs r1, #0x1e - bl __divsi3 - lsls r0, r0, #0x10 - lsls r4, r4, #7 - strh r4, [r7, #0x32] - asrs r0, r0, #9 - strh r0, [r7, #0x34] - ldr r2, _080AC47C - ldrb r1, [r5] - lsls r1, r1, #2 - adds r1, r1, r2 - movs r3, #0 - ldrsh r1, [r1, r3] - muls r1, r6, r1 - subs r4, r4, r1 - strh r4, [r7, #0x32] - ldrb r1, [r5] - lsls r1, r1, #2 - adds r2, #2 - adds r1, r1, r2 - movs r2, #0 - ldrsh r1, [r1, r2] - muls r1, r6, r1 - subs r0, r0, r1 - strh r0, [r7, #0x34] - adds r0, r7, #0 - movs r1, #0 - bl StartSpriteAnim - mov r3, r8 - strh r3, [r7, #0x36] - adds r2, r7, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - strh r6, [r7, #0x2e] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080AC464: .4byte 0x00000169 -_080AC468: .4byte 0x41C64E6D -_080AC46C: .4byte 0x00003039 -_080AC470: .4byte gUnknown_852A8E8 -_080AC474: .4byte gUnknown_8526DE8 -_080AC478: .4byte 0x000006DC -_080AC47C: .4byte gUnknown_852A8E0 - thumb_func_end StartRainSpriteFall - - thumb_func_start UpdateRainSprite -UpdateRainSprite: @ 0x080AC480 - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0x36 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _080AC55C - ldr r3, _080AC4F4 - ldr r4, _080AC4F8 - ldr r2, [r4] - ldr r0, _080AC4FC - adds r2, r2, r0 - ldrb r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r0] - ldrh r0, [r5, #0x32] - adds r1, r1, r0 - strh r1, [r5, #0x32] - ldrb r0, [r2] - lsls r0, r0, #2 - adds r3, #2 - adds r0, r0, r3 - ldrh r0, [r0] - ldrh r2, [r5, #0x34] - adds r0, r0, r2 - strh r0, [r5, #0x34] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - strh r1, [r5, #0x20] - lsls r0, r0, #0x10 - asrs r2, r0, #0x14 - strh r2, [r5, #0x22] - movs r3, #0x38 - ldrsh r0, [r5, r3] - adds r3, r4, #0 - cmp r0, #0 - beq _080AC500 - adds r0, r1, #0 - adds r0, #8 - lsls r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _080AC500 - adds r1, r2, #0 - movs r0, #0x10 - rsbs r0, r0, #0 - cmp r1, r0 - blt _080AC500 - cmp r1, #0xb0 - bgt _080AC500 - adds r0, r5, #0 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - b _080AC50A - .align 2, 0 -_080AC4F4: .4byte gUnknown_852A8E0 -_080AC4F8: .4byte gUnknown_8526DE8 -_080AC4FC: .4byte 0x000006DC -_080AC500: - adds r0, r5, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 -_080AC50A: - strb r1, [r0] - adds r4, r0, #0 - ldrh r0, [r5, #0x2e] - subs r0, #1 - strh r0, [r5, #0x2e] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080AC57C - ldr r0, [r3] - ldr r1, _080AC550 - adds r0, r0, r1 - ldrb r1, [r0] - adds r1, #1 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl StartSpriteAnim - movs r0, #1 - strh r0, [r5, #0x36] - ldr r1, _080AC554 - ldrh r0, [r5, #0x20] - ldrh r1, [r1] - subs r0, r0, r1 - strh r0, [r5, #0x20] - ldr r1, _080AC558 - ldrh r0, [r5, #0x22] - ldrh r1, [r1] - subs r0, r0, r1 - strh r0, [r5, #0x22] - ldrb r0, [r4] - movs r1, #2 - orrs r0, r1 - strb r0, [r4] - b _080AC57C - .align 2, 0 -_080AC550: .4byte 0x000006DC -_080AC554: .4byte gUnknown_2021B38 -_080AC558: .4byte gUnknown_2021B3A -_080AC55C: - adds r0, r5, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080AC57C - adds r2, r5, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - bl StartRainSpriteFall -_080AC57C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end UpdateRainSprite - - thumb_func_start WaitRainSprite -WaitRainSprite: @ 0x080AC584 - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x2e] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _080AC5A4 - adds r0, r4, #0 - bl StartRainSpriteFall - ldr r0, _080AC5A0 - str r0, [r4, #0x1c] - b _080AC5A8 - .align 2, 0 -_080AC5A0: .4byte UpdateRainSprite -_080AC5A4: - subs r0, r1, #1 - strh r0, [r4, #0x2e] -_080AC5A8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WaitRainSprite - - thumb_func_start InitRainSpriteMovement -InitRainSpriteMovement: @ 0x080AC5B0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - lsls r5, r1, #0x10 - lsrs r5, r5, #0x10 - ldr r2, _080AC634 - ldr r0, _080AC638 - ldr r0, [r0] - ldr r1, _080AC63C - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r1, r0, r2 - ldrh r1, [r1] - mov r8, r1 - adds r2, #2 - adds r0, r0, r2 - ldrh r4, [r0] - add r4, r8 - adds r0, r5, #0 - adds r1, r4, #0 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl __modsi3 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - subs r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r0, _080AC640 - cmp r6, r0 - beq _080AC60E - adds r5, r0, #0 -_080AC5FE: - adds r0, r7, #0 - bl StartRainSpriteFall - subs r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, r5 - bne _080AC5FE -_080AC60E: - cmp r4, r8 - bhs _080AC644 - subs r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, _080AC640 - cmp r4, r0 - beq _080AC630 - adds r5, r0, #0 -_080AC620: - adds r0, r7, #0 - bl UpdateRainSprite - subs r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, r5 - bne _080AC620 -_080AC630: - movs r0, #0 - b _080AC658 - .align 2, 0 -_080AC634: .4byte gUnknown_852A8E8 -_080AC638: .4byte gUnknown_8526DE8 -_080AC63C: .4byte 0x000006DC -_080AC640: .4byte 0x0000FFFF -_080AC644: - mov r1, r8 - subs r0, r4, r1 - strh r0, [r7, #0x2e] - adds r2, r7, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - movs r0, #1 -_080AC658: - strh r0, [r7, #0x3a] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end InitRainSpriteMovement - - thumb_func_start sub_080AC664 -sub_080AC664: @ 0x080AC664 - push {lr} - ldr r0, _080AC670 - bl LoadSpriteSheet - pop {r0} - bx r0 - .align 2, 0 -_080AC670: .4byte gUnknown_852A8F0 - thumb_func_end sub_080AC664 - - thumb_func_start CreateRainSprite -CreateRainSprite: @ 0x080AC674 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _080AC720 - ldr r4, [r0] - ldr r0, _080AC724 - adds r2, r4, r0 - ldrb r0, [r2] - cmp r0, #0x18 - bne _080AC68E - b _080AC794 -_080AC68E: - ldrb r7, [r2] - ldr r0, _080AC728 - ldr r2, _080AC72C - lsls r6, r7, #2 - adds r2, r6, r2 - movs r3, #0 - ldrsh r1, [r2, r3] - movs r3, #2 - ldrsh r2, [r2, r3] - movs r3, #0x4e - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0x40 - beq _080AC73C - ldr r3, _080AC730 - lsls r4, r5, #4 - adds r1, r4, r5 - lsls r1, r1, #2 - adds r1, r1, r3 - movs r0, #0 - strh r0, [r1, #0x38] - lsls r2, r7, #3 - adds r0, r2, r7 - lsls r0, r0, #4 - adds r0, r0, r7 - strh r0, [r1, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldr r1, _080AC734 - mov sl, r6 - mov sb, r3 - mov ip, r4 - mov r8, r2 - cmp r0, r1 - ble _080AC6F2 - adds r2, r1, #0 -_080AC6DA: - adds r0, r4, r5 - lsls r0, r0, #2 - ldr r6, _080AC730 - adds r0, r0, r6 - ldr r3, _080AC738 - ldrh r6, [r0, #0x30] - adds r1, r3, r6 - strh r1, [r0, #0x30] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, r2 - bgt _080AC6DA -_080AC6F2: - mov r0, ip - adds r4, r0, r5 - lsls r4, r4, #2 - add r4, sb - adds r0, r4, #0 - bl StartRainSpriteFall - mov r3, r8 - adds r1, r3, r7 - adds r0, r4, #0 - bl InitRainSpriteMovement - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080AC720 - ldr r0, [r0] - add r0, sl - str r4, [r0] - b _080AC742 - .align 2, 0 -_080AC720: .4byte gUnknown_8526DE8 -_080AC724: .4byte 0x000006DA -_080AC728: .4byte gUnknown_852A8C8 -_080AC72C: .4byte gUnknown_852A82C -_080AC730: .4byte gUnknown_20205AC -_080AC734: .4byte 0x00000257 -_080AC738: .4byte 0xFFFFFDA8 -_080AC73C: - adds r1, r4, r6 - movs r0, #0 - str r0, [r1] -_080AC742: - ldr r0, _080AC778 - ldr r2, [r0] - ldr r6, _080AC77C - adds r1, r2, r6 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x18 - bne _080AC798 - movs r3, #0 - adds r1, r2, #0 - ldr r5, _080AC780 - ldr r4, _080AC784 -_080AC760: - lsls r0, r3, #2 - adds r0, r1, r0 - ldr r2, [r0] - cmp r2, #0 - beq _080AC78A - movs r6, #0x3a - ldrsh r0, [r2, r6] - cmp r0, #0 - bne _080AC788 - str r5, [r2, #0x1c] - b _080AC78A - .align 2, 0 -_080AC778: .4byte gUnknown_8526DE8 -_080AC77C: .4byte 0x000006DA -_080AC780: .4byte UpdateRainSprite -_080AC784: .4byte WaitRainSprite -_080AC788: - str r4, [r2, #0x1c] -_080AC78A: - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #0x17 - bls _080AC760 -_080AC794: - movs r0, #0 - b _080AC79A -_080AC798: - movs r0, #1 -_080AC79A: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end CreateRainSprite - - thumb_func_start UpdateVisibleRainSprites -UpdateVisibleRainSprites: @ 0x080AC7A8 - push {r4, r5, r6, r7, lr} - ldr r0, _080AC7C4 - ldr r3, [r0] - movs r0, #0xdb - lsls r0, r0, #3 - adds r4, r3, r0 - ldr r1, _080AC7C8 - adds r5, r3, r1 - ldrb r0, [r4] - ldrb r7, [r5] - cmp r0, r7 - bne _080AC7CC - movs r0, #0 - b _080AC82E - .align 2, 0 -_080AC7C4: .4byte gUnknown_8526DE8 -_080AC7C8: .4byte 0x000006D9 -_080AC7CC: - ldr r0, _080AC804 - adds r2, r3, r0 - ldrh r0, [r2] - adds r0, #1 - movs r6, #0 - strh r0, [r2] - ldr r7, _080AC808 - adds r1, r3, r7 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r1] - cmp r0, r1 - bls _080AC82C - strh r6, [r2] - ldrb r0, [r4] - adds r1, r0, #0 - ldrb r5, [r5] - cmp r1, r5 - bhs _080AC80C - adds r0, #1 - strb r0, [r4] - lsls r0, r1, #2 - adds r0, r3, r0 - ldr r1, [r0] - movs r0, #1 - strh r0, [r1, #0x38] - b _080AC82C - .align 2, 0 -_080AC804: .4byte 0x000006D6 -_080AC808: .4byte 0x000006DB -_080AC80C: - subs r0, #1 - strb r0, [r4] - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r3, r0 - ldr r0, [r0] - strh r6, [r0, #0x38] - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r3, r0 - ldr r1, [r0] - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] -_080AC82C: - movs r0, #1 -_080AC82E: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end UpdateVisibleRainSprites - - thumb_func_start DestroyRainSprites -DestroyRainSprites: @ 0x080AC834 - push {r4, r5, r6, r7, lr} - movs r4, #0 - ldr r0, _080AC87C - ldr r2, [r0] - ldr r3, _080AC880 - adds r1, r2, r3 - adds r7, r0, #0 - ldrb r1, [r1] - cmp r4, r1 - bhs _080AC866 - adds r5, r2, #0 - adds r6, r5, r3 -_080AC84C: - lsls r0, r4, #2 - adds r0, r5, r0 - ldr r0, [r0] - cmp r0, #0 - beq _080AC85A - bl DestroySprite -_080AC85A: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldrb r0, [r6] - cmp r4, r0 - blo _080AC84C -_080AC866: - ldr r0, [r7] - ldr r1, _080AC880 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - ldr r0, _080AC884 - bl FreeSpriteTilesByTag - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080AC87C: .4byte gUnknown_8526DE8 -_080AC880: .4byte 0x000006DA -_080AC884: .4byte 0x00001206 - thumb_func_end DestroyRainSprites - - thumb_func_start Snow_InitVars -Snow_InitVars: @ 0x080AC888 - push {r4, lr} - ldr r0, _080AC8C4 - ldr r1, [r0] - ldr r2, _080AC8C8 - adds r0, r1, r2 - movs r2, #0 - movs r3, #0 - strh r3, [r0] - ldr r4, _080AC8CC - adds r0, r1, r4 - strb r2, [r0] - ldr r0, _080AC8D0 - adds r2, r1, r0 - movs r0, #3 - strb r0, [r2] - subs r4, #0x10 - adds r2, r1, r4 - movs r0, #0x14 - strb r0, [r2] - ldr r0, _080AC8D4 - adds r2, r1, r0 - movs r0, #0x10 - strb r0, [r2] - movs r2, #0xdc - lsls r2, r2, #3 - adds r1, r1, r2 - strh r3, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AC8C4: .4byte gUnknown_8526DE8 -_080AC8C8: .4byte 0x000006CC -_080AC8CC: .4byte 0x000006D2 -_080AC8D0: .4byte 0x000006C1 -_080AC8D4: .4byte 0x000006E5 - thumb_func_end Snow_InitVars - - thumb_func_start Snow_InitAll -Snow_InitAll: @ 0x080AC8D8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - bl Snow_InitVars - ldr r2, _080AC938 - ldr r1, [r2] - ldr r3, _080AC93C - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, #0 - bne _080AC92E - mov r8, r2 - adds r7, r1, r3 -_080AC8F4: - bl Snow_Main - movs r4, #0 - mov r1, r8 - ldr r0, [r1] - ldr r3, _080AC940 - adds r0, r0, r3 - ldrb r0, [r0] - cmp r4, r0 - bhs _080AC928 - ldr r0, _080AC938 - ldr r5, [r0] - adds r6, r5, r3 -_080AC90E: - lsls r1, r4, #2 - adds r0, r5, #0 - adds r0, #0x60 - adds r0, r0, r1 - ldr r0, [r0] - bl UpdateSnowflakeSprite - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldrb r0, [r6] - cmp r4, r0 - blo _080AC90E -_080AC928: - ldrb r0, [r7] - cmp r0, #0 - beq _080AC8F4 -_080AC92E: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080AC938: .4byte gUnknown_8526DE8 -_080AC93C: .4byte 0x000006D2 -_080AC940: .4byte 0x000006E4 - thumb_func_end Snow_InitAll - - thumb_func_start Snow_Main -Snow_Main: @ 0x080AC944 - push {r4, r5, lr} - ldr r0, _080AC974 - ldr r5, [r0] - ldr r0, _080AC978 - adds r4, r5, r0 - ldrh r0, [r4] - cmp r0, #0 - bne _080AC96C - bl UpdateVisibleSnowflakeSprites - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AC96C - ldr r0, _080AC97C - adds r1, r5, r0 - movs r0, #1 - strb r0, [r1] - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] -_080AC96C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080AC974: .4byte gUnknown_8526DE8 -_080AC978: .4byte 0x000006CC -_080AC97C: .4byte 0x000006D2 - thumb_func_end Snow_Main - - thumb_func_start Snow_Finish -Snow_Finish: @ 0x080AC980 - push {r4, lr} - ldr r0, _080AC998 - ldr r2, [r0] - ldr r0, _080AC99C - adds r3, r2, r0 - ldrh r1, [r3] - cmp r1, #0 - beq _080AC9A0 - cmp r1, #1 - beq _080AC9B2 - movs r0, #0 - b _080AC9DE - .align 2, 0 -_080AC998: .4byte gUnknown_8526DE8 -_080AC99C: .4byte 0x000006CE -_080AC9A0: - ldr r4, _080AC9D0 - adds r0, r2, r4 - strb r1, [r0] - subs r4, #5 - adds r0, r2, r4 - strh r1, [r0] - ldrh r0, [r3] - adds r0, #1 - strh r0, [r3] -_080AC9B2: - bl UpdateVisibleSnowflakeSprites - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AC9DC - ldr r0, _080AC9D4 - ldr r1, [r0] - ldr r0, _080AC9D8 - adds r1, r1, r0 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - movs r0, #0 - b _080AC9DE - .align 2, 0 -_080AC9D0: .4byte 0x000006E5 -_080AC9D4: .4byte gUnknown_8526DE8 -_080AC9D8: .4byte 0x000006CE -_080AC9DC: - movs r0, #1 -_080AC9DE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end Snow_Finish - - thumb_func_start UpdateVisibleSnowflakeSprites -UpdateVisibleSnowflakeSprites: @ 0x080AC9E4 - push {r4, lr} - ldr r0, _080ACA00 - ldr r1, [r0] - ldr r0, _080ACA04 - adds r3, r1, r0 - ldr r4, _080ACA08 - adds r2, r1, r4 - ldrb r0, [r3] - ldrb r4, [r2] - cmp r0, r4 - bne _080ACA0C - movs r0, #0 - b _080ACA4E - .align 2, 0 -_080ACA00: .4byte gUnknown_8526DE8 -_080ACA04: .4byte 0x000006E4 -_080ACA08: .4byte 0x000006E5 -_080ACA0C: - movs r0, #0xdc - lsls r0, r0, #3 - adds r1, r1, r0 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x24 - bls _080ACA36 - movs r0, #0 - strh r0, [r1] - ldrb r0, [r3] - ldrb r2, [r2] - cmp r0, r2 - bhs _080ACA32 - bl CreateSnowflakeSprite - b _080ACA36 -_080ACA32: - bl DestroySnowflakeSprite -_080ACA36: - ldr r0, _080ACA54 - ldr r0, [r0] - ldr r2, _080ACA58 - adds r1, r0, r2 - ldr r4, _080ACA5C - adds r0, r0, r4 - ldrb r1, [r1] - ldrb r0, [r0] - eors r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f -_080ACA4E: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080ACA54: .4byte gUnknown_8526DE8 -_080ACA58: .4byte 0x000006E4 -_080ACA5C: .4byte 0x000006E5 - thumb_func_end UpdateVisibleSnowflakeSprites - - thumb_func_start CreateSnowflakeSprite -CreateSnowflakeSprite: @ 0x080ACA60 - push {r4, r5, r6, lr} - ldr r0, _080ACAB4 - movs r1, #0 - movs r2, #0 - movs r3, #0x4e - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x40 - beq _080ACAC4 - ldr r0, _080ACAB8 - lsls r4, r1, #4 - adds r4, r4, r1 - lsls r4, r4, #2 - adds r4, r4, r0 - ldr r0, _080ACABC - ldr r5, [r0] - ldr r0, _080ACAC0 - adds r6, r5, r0 - ldrb r0, [r6] - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl InitSnowflakeSpriteMovement - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #2 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r6] - adds r1, r0, #1 - strb r1, [r6] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r5, #0x60 - adds r5, r5, r0 - str r4, [r5] - movs r0, #1 - b _080ACAC6 - .align 2, 0 -_080ACAB4: .4byte gUnknown_852A928 -_080ACAB8: .4byte gUnknown_20205AC -_080ACABC: .4byte gUnknown_8526DE8 -_080ACAC0: .4byte 0x000006E4 -_080ACAC4: - movs r0, #0 -_080ACAC6: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end CreateSnowflakeSprite - - thumb_func_start DestroySnowflakeSprite -DestroySnowflakeSprite: @ 0x080ACACC - push {lr} - ldr r0, _080ACAE0 - ldr r1, [r0] - ldr r0, _080ACAE4 - adds r2, r1, r0 - ldrb r0, [r2] - cmp r0, #0 - bne _080ACAE8 - movs r0, #0 - b _080ACAFC - .align 2, 0 -_080ACAE0: .4byte gUnknown_8526DE8 -_080ACAE4: .4byte 0x000006E4 -_080ACAE8: - subs r0, #1 - strb r0, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r1, #0x60 - adds r1, r1, r0 - ldr r0, [r1] - bl DestroySprite - movs r0, #1 -_080ACAFC: - pop {r1} - bx r1 - thumb_func_end DestroySnowflakeSprite - - thumb_func_start InitSnowflakeSpriteMovement -InitSnowflakeSpriteMovement: @ 0x080ACB00 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - bl Random - movs r1, #0x36 - ldrsh r2, [r5, r1] - lsls r1, r2, #2 - adds r1, r1, r2 - movs r2, #7 - ands r1, r2 - lsls r4, r1, #4 - subs r4, r4, r1 - lsls r4, r4, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x1e - bl __umodsi3 - adds r4, r4, r0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r1, _080ACBA4 - adds r0, r5, #0 - adds r0, #0x29 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r1] - adds r0, r0, r1 - movs r2, #3 - rsbs r2, r2, #0 - adds r1, r2, #0 - subs r1, r1, r0 - movs r7, #0 - strh r1, [r5, #0x22] - ldr r1, _080ACBA8 - adds r0, r5, #0 - adds r0, #0x28 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r1] - adds r0, r0, r1 - subs r4, r4, r0 - strh r4, [r5, #0x20] - movs r1, #0x22 - ldrsh r0, [r5, r1] - lsls r0, r0, #7 - strh r0, [r5, #0x2e] - strh r7, [r5, #0x24] - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r6, r0, #0 - movs r4, #3 - ands r4, r6 - lsls r0, r4, #2 - adds r0, r0, r4 - adds r0, #0x40 - strh r0, [r5, #0x30] - strh r0, [r5, #0x3c] - movs r1, #1 - bics r1, r6 - adds r0, r5, #0 - bl StartSpriteAnim - strh r7, [r5, #0x34] - movs r0, #1 - cmp r4, #0 - bne _080ACB90 - movs r0, #2 -_080ACB90: - strh r0, [r5, #0x32] - movs r0, #0x1f - ands r0, r6 - adds r0, #0xd2 - strh r0, [r5, #0x3a] - strh r7, [r5, #0x38] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080ACBA4: .4byte gUnknown_2021B3A -_080ACBA8: .4byte gUnknown_2021B38 - thumb_func_end InitSnowflakeSpriteMovement - - thumb_func_start WaitSnowflakeSprite -WaitSnowflakeSprite: @ 0x080ACBAC - push {r4, lr} - adds r3, r0, #0 - ldr r0, _080ACBF8 - ldr r0, [r0] - ldr r1, _080ACBFC - adds r4, r0, r1 - ldrh r0, [r4] - cmp r0, #0x12 - bls _080ACBF2 - adds r2, r3, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldr r0, _080ACC00 - str r0, [r3, #0x1c] - ldr r1, _080ACC04 - adds r0, r3, #0 - adds r0, #0x29 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r1] - adds r0, r0, r1 - movs r1, #0xfa - subs r1, r1, r0 - movs r2, #0 - strh r1, [r3, #0x22] - movs r1, #0x22 - ldrsh r0, [r3, r1] - lsls r0, r0, #7 - strh r0, [r3, #0x2e] - strh r2, [r4] -_080ACBF2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ACBF8: .4byte gUnknown_8526DE8 -_080ACBFC: .4byte 0x000006E2 -_080ACC00: .4byte UpdateSnowflakeSprite -_080ACC04: .4byte gUnknown_2021B3A - thumb_func_end WaitSnowflakeSprite - - thumb_func_start UpdateSnowflakeSprite -UpdateSnowflakeSprite: @ 0x080ACC08 - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x30] - ldrh r1, [r4, #0x2e] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x17 - strh r0, [r4, #0x22] - ldrh r0, [r4, #0x32] - ldrh r2, [r4, #0x34] - adds r0, r0, r2 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x34] - ldr r1, _080ACC80 - movs r3, #0x34 - ldrsh r0, [r4, r3] - lsls r0, r0, #1 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bge _080ACC3A - adds r0, #0x3f -_080ACC3A: - asrs r0, r0, #6 - strh r0, [r4, #0x24] - adds r0, r4, #0 - adds r0, #0x28 - movs r5, #0 - ldrsb r5, [r0, r5] - ldrh r0, [r4, #0x20] - adds r0, r0, r5 - ldr r1, _080ACC84 - ldrh r1, [r1] - adds r3, r1, r0 - ldr r2, _080ACC88 - adds r0, r2, #0 - ands r3, r0 - adds r2, r3, #0 - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r2 - cmp r0, #0 - beq _080ACC6C - ldr r3, _080ACC8C - adds r0, r3, #0 - orrs r2, r0 - lsls r0, r2, #0x10 - lsrs r3, r0, #0x10 -_080ACC6C: - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - movs r2, #3 - rsbs r2, r2, #0 - cmp r0, r2 - bge _080ACC90 - adds r1, r1, r5 - movs r0, #0xf2 - subs r0, r0, r1 - b _080ACC98 - .align 2, 0 -_080ACC80: .4byte gUnknown_82FA8CC -_080ACC84: .4byte gUnknown_2021B38 -_080ACC88: .4byte 0x000001FF -_080ACC8C: .4byte 0xFFFFFF00 -_080ACC90: - cmp r0, #0xf2 - ble _080ACC9A - adds r0, r1, r5 - subs r0, r2, r0 -_080ACC98: - strh r0, [r4, #0x20] -_080ACC9A: - adds r0, r4, #0 - adds r0, #0x29 - movs r3, #0 - ldrsb r3, [r0, r3] - ldrh r0, [r4, #0x22] - adds r0, r0, r3 - ldr r1, _080ACCD8 - ldrh r1, [r1] - adds r2, r1, r0 - movs r0, #0xff - ands r2, r0 - adds r0, r2, #0 - subs r0, #0xa4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #6 - bhi _080ACCDC - adds r1, r1, r3 - movs r0, #0xfa - subs r0, r0, r1 - movs r1, #0 - strh r0, [r4, #0x22] - movs r2, #0x22 - ldrsh r0, [r4, r2] - lsls r0, r0, #7 - strh r0, [r4, #0x2e] - strh r1, [r4, #0x38] - movs r0, #0xdc - strh r0, [r4, #0x3a] - b _080ACD08 - .align 2, 0 -_080ACCD8: .4byte gUnknown_2021B3A -_080ACCDC: - adds r0, r2, #0 - subs r0, #0xf3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #6 - bhi _080ACD08 - movs r1, #0 - movs r0, #0xa3 - strh r0, [r4, #0x22] - lsls r0, r0, #7 - strh r0, [r4, #0x2e] - strh r1, [r4, #0x38] - movs r0, #0xdc - strh r0, [r4, #0x3a] - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080ACD3C - str r0, [r4, #0x1c] -_080ACD08: - ldrh r0, [r4, #0x38] - adds r0, #1 - strh r0, [r4, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r3, #0x3a - ldrsh r1, [r4, r3] - cmp r0, r1 - bne _080ACD34 - adds r0, r4, #0 - bl InitSnowflakeSpriteMovement - movs r0, #0xfa - strh r0, [r4, #0x22] - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080ACD3C - str r0, [r4, #0x1c] -_080ACD34: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080ACD3C: .4byte WaitSnowflakeSprite - thumb_func_end UpdateSnowflakeSprite - - thumb_func_start MedRain_InitVars -MedRain_InitVars: @ 0x080ACD40 - push {r4, r5, lr} - ldr r0, _080ACD98 - ldr r1, [r0] - ldr r2, _080ACD9C - adds r0, r1, r2 - movs r3, #0 - movs r2, #0 - strh r2, [r0] - ldr r5, _080ACDA0 - adds r4, r1, r5 - strb r3, [r4] - adds r5, #4 - adds r0, r1, r5 - strh r2, [r0] - ldr r0, _080ACDA4 - adds r2, r1, r0 - movs r0, #4 - strb r0, [r2] - ldr r2, _080ACDA8 - adds r0, r1, r2 - strb r3, [r0] - adds r5, #3 - adds r2, r1, r5 - movs r0, #0x10 - strb r0, [r2] - ldr r0, _080ACDAC - adds r2, r1, r0 - movs r0, #3 - strb r0, [r2] - subs r5, #0x17 - adds r2, r1, r5 - movs r0, #0x14 - strb r0, [r2] - strb r3, [r4] - ldr r0, _080ACDB0 - adds r1, r1, r0 - strb r3, [r1] - movs r0, #0x51 - bl sub_080ABC18 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080ACD98: .4byte gUnknown_8526DE8 -_080ACD9C: .4byte 0x000006CC -_080ACDA0: .4byte 0x000006D2 -_080ACDA4: .4byte 0x000006DB -_080ACDA8: .4byte 0x000006DC -_080ACDAC: .4byte 0x000006C1 -_080ACDB0: .4byte 0x000006ED - thumb_func_end MedRain_InitVars - - thumb_func_start MedRain_InitAll -MedRain_InitAll: @ 0x080ACDB4 - push {r4, lr} - bl MedRain_InitVars - ldr r0, _080ACDDC - ldr r1, [r0] - ldr r2, _080ACDE0 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _080ACDD4 - adds r4, r1, r2 -_080ACDCA: - bl sub_080ACE80 - ldrb r0, [r4] - cmp r0, #0 - beq _080ACDCA -_080ACDD4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ACDDC: .4byte gUnknown_8526DE8 -_080ACDE0: .4byte 0x000006D2 - thumb_func_end MedRain_InitAll - - thumb_func_start HeavyRain_InitVars -HeavyRain_InitVars: @ 0x080ACDE4 - push {r4, r5, lr} - ldr r0, _080ACE38 - ldr r1, [r0] - ldr r2, _080ACE3C - adds r0, r1, r2 - movs r4, #0 - movs r2, #0 - strh r2, [r0] - ldr r5, _080ACE40 - adds r3, r1, r5 - strb r4, [r3] - adds r5, #4 - adds r0, r1, r5 - strh r2, [r0] - ldr r0, _080ACE44 - adds r2, r1, r0 - movs r0, #4 - strb r0, [r2] - adds r5, #6 - adds r2, r1, r5 - movs r0, #1 - strb r0, [r2] - ldr r0, _080ACE48 - adds r2, r1, r0 - movs r0, #0x18 - strb r0, [r2] - subs r5, #0x1b - adds r2, r1, r5 - movs r0, #3 - strb r0, [r2] - ldr r0, _080ACE4C - adds r1, r1, r0 - movs r0, #0x14 - strb r0, [r1] - strb r4, [r3] - movs r0, #0x53 - bl sub_080ABC18 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080ACE38: .4byte gUnknown_8526DE8 -_080ACE3C: .4byte 0x000006CC -_080ACE40: .4byte 0x000006D2 -_080ACE44: .4byte 0x000006DB -_080ACE48: .4byte 0x000006D9 -_080ACE4C: .4byte 0x000006C2 - thumb_func_end HeavyRain_InitVars - - thumb_func_start sub_080ACE50 -sub_080ACE50: @ 0x080ACE50 - push {r4, lr} - bl HeavyRain_InitVars - ldr r0, _080ACE78 - ldr r1, [r0] - ldr r2, _080ACE7C - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _080ACE70 - adds r4, r1, r2 -_080ACE66: - bl sub_080ACE80 - ldrb r0, [r4] - cmp r0, #0 - beq _080ACE66 -_080ACE70: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ACE78: .4byte gUnknown_8526DE8 -_080ACE7C: .4byte 0x000006D2 - thumb_func_end sub_080ACE50 - - thumb_func_start sub_080ACE80 -sub_080ACE80: @ 0x080ACE80 - push {r4, r5, lr} - bl UpdateThunderSound - ldr r0, _080ACEA0 - ldr r0, [r0] - ldr r1, _080ACEA4 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0xe - bls _080ACE96 - b _080AD1F6 -_080ACE96: - lsls r0, r0, #2 - ldr r1, _080ACEA8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ACEA0: .4byte gUnknown_8526DE8 -_080ACEA4: .4byte 0x000006CC -_080ACEA8: .4byte _080ACEAC -_080ACEAC: @ jump table - .4byte _080ACEE8 @ case 0 - .4byte _080ACF04 @ case 1 - .4byte _080ACF28 @ case 2 - .4byte _080ACF58 @ case 3 - .4byte _080ACF7C @ case 4 - .4byte _080ACFAC @ case 5 - .4byte _080ACFDC @ case 6 - .4byte _080AD008 @ case 7 - .4byte _080AD026 @ case 8 - .4byte _080AD084 @ case 9 - .4byte _080AD108 @ case 10 - .4byte _080AD130 @ case 11 - .4byte _080AD160 @ case 12 - .4byte _080AD1A4 @ case 13 - .4byte _080AD1D8 @ case 14 -_080ACEE8: - bl sub_080AC664 - ldr r0, _080ACEFC - ldr r1, [r0] - ldr r2, _080ACF00 - adds r1, r1, r2 - ldrh r0, [r1] - adds r0, #1 - b _080AD1F4 - .align 2, 0 -_080ACEFC: .4byte gUnknown_8526DE8 -_080ACF00: .4byte 0x000006CC -_080ACF04: - bl CreateRainSprite - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080ACF10 - b _080AD1F6 -_080ACF10: - ldr r0, _080ACF20 - ldr r1, [r0] - ldr r3, _080ACF24 - adds r1, r1, r3 - ldrh r0, [r1] - adds r0, #1 - b _080AD1F4 - .align 2, 0 -_080ACF20: .4byte gUnknown_8526DE8 -_080ACF24: .4byte 0x000006CC -_080ACF28: - bl UpdateVisibleRainSprites - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080ACF34 - b _080AD1F6 -_080ACF34: - ldr r0, _080ACF4C - ldr r1, [r0] - ldr r0, _080ACF50 - adds r2, r1, r0 - movs r0, #1 - strb r0, [r2] - ldr r2, _080ACF54 - adds r1, r1, r2 - ldrh r0, [r1] - adds r0, #1 - b _080AD1F4 - .align 2, 0 -_080ACF4C: .4byte gUnknown_8526DE8 -_080ACF50: .4byte 0x000006D2 -_080ACF54: .4byte 0x000006CC -_080ACF58: - ldr r0, _080ACF70 - ldr r1, [r0] - ldr r3, _080ACF74 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, #0 - bne _080ACF68 - b _080AD1F6 -_080ACF68: - ldr r0, _080ACF78 - adds r1, r1, r0 - movs r0, #6 - b _080AD1F4 - .align 2, 0 -_080ACF70: .4byte gUnknown_8526DE8 -_080ACF74: .4byte 0x000006C6 -_080ACF78: .4byte 0x000006CC -_080ACF7C: - ldr r0, _080ACFCC - ldr r4, [r0] - ldr r2, _080ACFD0 - adds r1, r4, r2 - movs r0, #1 - strb r0, [r1] - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r5, #0xb4 - lsls r5, r5, #1 - adds r1, r5, #0 - bl __umodsi3 - adds r0, r0, r5 - ldr r3, _080ACFD4 - adds r1, r4, r3 - strh r0, [r1] - ldr r0, _080ACFD8 - adds r4, r4, r0 - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] -_080ACFAC: - ldr r0, _080ACFCC - ldr r2, [r0] - ldr r3, _080ACFD4 - adds r1, r2, r3 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080ACFC2 - b _080AD1F6 -_080ACFC2: - ldr r0, _080ACFD8 - adds r1, r2, r0 - ldrh r0, [r1] - adds r0, #1 - b _080AD1F4 - .align 2, 0 -_080ACFCC: .4byte gUnknown_8526DE8 -_080ACFD0: .4byte 0x000006EA -_080ACFD4: .4byte 0x000006E6 -_080ACFD8: .4byte 0x000006CC -_080ACFDC: - ldr r0, _080ACFFC - ldr r4, [r0] - ldr r1, _080AD000 - adds r0, r4, r1 - movs r5, #1 - strb r5, [r0] - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ands r0, r5 - ldr r2, _080AD004 - adds r1, r4, r2 - strb r0, [r1] - b _080AD064 - .align 2, 0 -_080ACFFC: .4byte gUnknown_8526DE8 -_080AD000: .4byte 0x000006EA -_080AD004: .4byte 0x000006EB -_080AD008: - bl Random - ldr r1, _080AD070 - ldr r2, [r1] - movs r1, #1 - ands r1, r0 - adds r1, #1 - ldr r3, _080AD074 - adds r0, r2, r3 - strb r1, [r0] - ldr r0, _080AD078 - adds r2, r2, r0 - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] -_080AD026: - movs r0, #0x13 - bl sub_080AB544 - ldr r0, _080AD070 - ldr r1, [r0] - ldr r2, _080AD07C - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _080AD04A - ldr r3, _080AD074 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, #1 - bne _080AD04A - movs r0, #0x14 - bl SetThunderCounter -_080AD04A: - bl Random - ldr r1, _080AD070 - ldr r4, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - adds r0, #6 - ldr r2, _080AD080 - adds r1, r4, r2 - strh r0, [r1] -_080AD064: - ldr r3, _080AD078 - adds r4, r4, r3 - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - b _080AD1F6 - .align 2, 0 -_080AD070: .4byte gUnknown_8526DE8 -_080AD074: .4byte 0x000006EC -_080AD078: .4byte 0x000006CC -_080AD07C: .4byte 0x000006EB -_080AD080: .4byte 0x000006E6 -_080AD084: - ldr r0, _080AD0D0 - ldr r4, [r0] - ldr r0, _080AD0D4 - adds r5, r4, r0 - ldrh r0, [r5] - subs r0, #1 - strh r0, [r5] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080AD09A - b _080AD1F6 -_080AD09A: - movs r0, #3 - bl sub_080AB544 - ldr r2, _080AD0D8 - adds r1, r4, r2 - movs r0, #1 - strb r0, [r1] - ldr r3, _080AD0DC - adds r1, r4, r3 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080AD0E4 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xf - ands r0, r1 - adds r0, #0x3c - strh r0, [r5] - ldr r0, _080AD0E0 - adds r1, r4, r0 - movs r0, #0xa - b _080AD1F4 - .align 2, 0 -_080AD0D0: .4byte gUnknown_8526DE8 -_080AD0D4: .4byte 0x000006E6 -_080AD0D8: .4byte 0x000006EA -_080AD0DC: .4byte 0x000006EC -_080AD0E0: .4byte 0x000006CC -_080AD0E4: - ldr r1, _080AD0F4 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080AD0FC - ldr r2, _080AD0F8 - adds r1, r4, r2 - b _080AD1F2 - .align 2, 0 -_080AD0F4: .4byte 0x000006EB -_080AD0F8: .4byte 0x000006CC -_080AD0FC: - ldr r3, _080AD104 - adds r1, r4, r3 - movs r0, #0xb - b _080AD1F4 - .align 2, 0 -_080AD104: .4byte 0x000006CC -_080AD108: - ldr r0, _080AD124 - ldr r2, [r0] - ldr r0, _080AD128 - adds r1, r2, r0 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080AD1F6 - ldr r3, _080AD12C - adds r1, r2, r3 - movs r0, #8 - b _080AD1F4 - .align 2, 0 -_080AD124: .4byte gUnknown_8526DE8 -_080AD128: .4byte 0x000006E6 -_080AD12C: .4byte 0x000006CC -_080AD130: - bl Random - ldr r1, _080AD154 - ldr r2, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xf - ands r0, r1 - adds r0, #0x3c - ldr r3, _080AD158 - adds r1, r2, r3 - strh r0, [r1] - ldr r0, _080AD15C - adds r2, r2, r0 - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - b _080AD1F6 - .align 2, 0 -_080AD154: .4byte gUnknown_8526DE8 -_080AD158: .4byte 0x000006E6 -_080AD15C: .4byte 0x000006CC -_080AD160: - ldr r0, _080AD198 - ldr r5, [r0] - ldr r1, _080AD19C - adds r4, r5, r1 - ldrh r0, [r4] - subs r0, #1 - strh r0, [r4] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080AD1F6 - movs r0, #0x64 - bl SetThunderCounter - movs r0, #0x13 - bl sub_080AB544 - bl Random - movs r1, #0xf - ands r1, r0 - adds r1, #0x1e - strh r1, [r4] - ldr r2, _080AD1A0 - adds r1, r5, r2 - ldrh r0, [r1] - adds r0, #1 - b _080AD1F4 - .align 2, 0 -_080AD198: .4byte gUnknown_8526DE8 -_080AD19C: .4byte 0x000006E6 -_080AD1A0: .4byte 0x000006CC -_080AD1A4: - ldr r0, _080AD1CC - ldr r4, [r0] - ldr r3, _080AD1D0 - adds r1, r4, r3 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080AD1F6 - movs r0, #0x13 - movs r1, #3 - movs r2, #5 - bl sub_080AB578 - ldr r0, _080AD1D4 - adds r1, r4, r0 - ldrh r0, [r1] - adds r0, #1 - b _080AD1F4 - .align 2, 0 -_080AD1CC: .4byte gUnknown_8526DE8 -_080AD1D0: .4byte 0x000006E6 -_080AD1D4: .4byte 0x000006CC -_080AD1D8: - ldr r0, _080AD1FC - ldr r2, [r0] - ldr r1, _080AD200 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #3 - bne _080AD1F6 - ldr r3, _080AD204 - adds r1, r2, r3 - movs r0, #1 - strb r0, [r1] - ldr r0, _080AD208 - adds r1, r2, r0 -_080AD1F2: - movs r0, #4 -_080AD1F4: - strh r0, [r1] -_080AD1F6: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080AD1FC: .4byte gUnknown_8526DE8 -_080AD200: .4byte 0x000006C6 -_080AD204: .4byte 0x000006EA -_080AD208: .4byte 0x000006CC - thumb_func_end sub_080ACE80 - - thumb_func_start Rain_Finish -Rain_Finish: @ 0x080AD20C - push {r4, r5, r6, lr} - ldr r0, _080AD228 - ldr r6, [r0] - ldr r0, _080AD22C - adds r5, r6, r0 - ldrh r1, [r5] - cmp r1, #1 - beq _080AD242 - cmp r1, #1 - bgt _080AD230 - cmp r1, #0 - beq _080AD236 - b _080AD2A8 - .align 2, 0 -_080AD228: .4byte gUnknown_8526DE8 -_080AD22C: .4byte 0x000006CE -_080AD230: - cmp r1, #2 - beq _080AD28C - b _080AD2A8 -_080AD236: - ldr r2, _080AD27C - adds r0, r6, r2 - strb r1, [r0] - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] -_080AD242: - bl sub_080ACE80 - ldr r0, _080AD280 - ldr r2, [r0] - ldr r1, _080AD27C - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _080AD2B0 - subs r1, #0x19 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #3 - beq _080AD2A8 - cmp r0, #5 - beq _080AD2A8 - cmp r0, #0xd - beq _080AD2A8 - ldr r0, _080AD284 - adds r1, r2, r0 - movs r0, #0 - strb r0, [r1] - ldr r0, _080AD288 - adds r1, r2, r0 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _080AD2B0 - .align 2, 0 -_080AD27C: .4byte 0x000006EA -_080AD280: .4byte gUnknown_8526DE8 -_080AD284: .4byte 0x000006D9 -_080AD288: .4byte 0x000006CE -_080AD28C: - bl UpdateVisibleRainSprites - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _080AD2B0 - bl DestroyRainSprites - ldr r1, _080AD2AC - adds r0, r6, r1 - strb r4, [r0] - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] -_080AD2A8: - movs r0, #0 - b _080AD2B2 - .align 2, 0 -_080AD2AC: .4byte 0x000006ED -_080AD2B0: - movs r0, #1 -_080AD2B2: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end Rain_Finish - - thumb_func_start SetThunderCounter -SetThunderCounter: @ 0x080AD2B8 - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r0, _080AD2EC - ldr r4, [r0] - ldr r0, _080AD2F0 - adds r5, r4, r0 - ldrb r0, [r5] - cmp r0, #0 - bne _080AD2E6 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r6, #0 - bl __umodsi3 - movs r2, #0xdd - lsls r2, r2, #3 - adds r1, r4, r2 - strh r0, [r1] - movs r0, #1 - strb r0, [r5] -_080AD2E6: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080AD2EC: .4byte gUnknown_8526DE8 -_080AD2F0: .4byte 0x000006ED - thumb_func_end SetThunderCounter - - thumb_func_start UpdateThunderSound -UpdateThunderSound: @ 0x080AD2F4 - push {r4, lr} - ldr r0, _080AD32C - ldr r1, [r0] - ldr r2, _080AD330 - adds r0, r1, r2 - ldrb r4, [r0] - cmp r4, #1 - bne _080AD354 - movs r0, #0xdd - lsls r0, r0, #3 - adds r1, r1, r0 - ldrh r0, [r1] - cmp r0, #0 - bne _080AD350 - bl IsSEPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AD354 - bl Random - ands r4, r0 - cmp r4, #0 - beq _080AD334 - movs r0, #0x57 - bl sub_080A306C - b _080AD33A - .align 2, 0 -_080AD32C: .4byte gUnknown_8526DE8 -_080AD330: .4byte 0x000006ED -_080AD334: - movs r0, #0x58 - bl sub_080A306C -_080AD33A: - ldr r0, _080AD348 - ldr r0, [r0] - ldr r1, _080AD34C - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - b _080AD354 - .align 2, 0 -_080AD348: .4byte gUnknown_8526DE8 -_080AD34C: .4byte 0x000006ED -_080AD350: - subs r0, #1 - strh r0, [r1] -_080AD354: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end UpdateThunderSound - - thumb_func_start Fog1_InitVars -Fog1_InitVars: @ 0x080AD35C - push {lr} - ldr r0, _080AD3A8 - ldr r3, [r0] - ldr r0, _080AD3AC - adds r1, r3, r0 - movs r2, #0 - movs r0, #0 - strh r0, [r1] - ldr r1, _080AD3B0 - adds r0, r3, r1 - strb r2, [r0] - subs r1, #0x11 - adds r0, r3, r1 - strb r2, [r0] - ldr r2, _080AD3B4 - adds r1, r3, r2 - movs r0, #0x14 - strb r0, [r1] - ldr r1, _080AD3B8 - adds r0, r3, r1 - ldrb r1, [r0] - cmp r1, #0 - bne _080AD3A4 - adds r2, #0x2e - adds r0, r3, r2 - strh r1, [r0] - adds r2, #2 - adds r0, r3, r2 - strh r1, [r0] - subs r2, #4 - adds r0, r3, r2 - strh r1, [r0] - movs r0, #0 - movs r1, #0x10 - bl Weather_SetBlendCoeffs -_080AD3A4: - pop {r0} - bx r0 - .align 2, 0 -_080AD3A8: .4byte gUnknown_8526DE8 -_080AD3AC: .4byte 0x000006CC -_080AD3B0: .4byte 0x000006D2 -_080AD3B4: .4byte 0x000006C2 -_080AD3B8: .4byte 0x000006FB - thumb_func_end Fog1_InitVars - - thumb_func_start Fog1_InitAll -Fog1_InitAll: @ 0x080AD3BC - push {r4, lr} - bl Fog1_InitVars - ldr r0, _080AD3E4 - ldr r1, [r0] - ldr r2, _080AD3E8 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _080AD3DC - adds r4, r1, r2 -_080AD3D2: - bl Fog1_Main - ldrb r0, [r4] - cmp r0, #0 - beq _080AD3D2 -_080AD3DC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AD3E4: .4byte gUnknown_8526DE8 -_080AD3E8: .4byte 0x000006D2 - thumb_func_end Fog1_InitAll - - thumb_func_start Fog1_Main -Fog1_Main: @ 0x080AD3EC - push {r4, r5, r6, lr} - ldr r0, _080AD438 - ldr r6, [r0] - ldr r0, _080AD43C - ldr r1, _080AD440 - adds r2, r6, r1 - ldrh r0, [r0] - ldrh r1, [r2] - subs r0, r0, r1 - movs r1, #0xff - ands r0, r1 - ldr r3, _080AD444 - adds r1, r6, r3 - strh r0, [r1] - movs r0, #0xde - lsls r0, r0, #3 - adds r1, r6, r0 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #3 - bls _080AD426 - movs r0, #0 - strh r0, [r1] - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] -_080AD426: - ldr r1, _080AD448 - adds r5, r6, r1 - ldrh r4, [r5] - cmp r4, #0 - beq _080AD44C - cmp r4, #1 - beq _080AD48C - b _080AD4A2 - .align 2, 0 -_080AD438: .4byte gUnknown_8526DE8 -_080AD43C: .4byte gUnknown_2021B38 -_080AD440: .4byte 0x000006F2 -_080AD444: .4byte 0x000006EE -_080AD448: .4byte 0x000006CC -_080AD44C: - bl CreateFog1Sprites - movs r3, #0xda - lsls r3, r3, #3 - adds r0, r6, r3 - ldrb r0, [r0] - cmp r0, #6 - bne _080AD468 - movs r0, #0xc - movs r1, #8 - movs r2, #3 - bl Weather_SetTargetBlendCoeffs - b _080AD472 -_080AD468: - movs r0, #4 - movs r1, #0x10 - movs r2, #0 - bl Weather_SetTargetBlendCoeffs -_080AD472: - ldr r0, _080AD484 - ldr r1, [r0] - ldr r0, _080AD488 - adds r1, r1, r0 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _080AD4A2 - .align 2, 0 -_080AD484: .4byte gUnknown_8526DE8 -_080AD488: .4byte 0x000006CC -_080AD48C: - bl Weather_UpdateBlend - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080AD4A2 - ldr r1, _080AD4A8 - adds r0, r6, r1 - strb r4, [r0] - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] -_080AD4A2: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080AD4A8: .4byte 0x000006D2 - thumb_func_end Fog1_Main - - thumb_func_start Fog1_Finish -Fog1_Finish: @ 0x080AD4AC - push {r4, lr} - ldr r0, _080AD4FC - ldr r2, [r0] - ldr r0, _080AD500 - ldr r1, _080AD504 - adds r3, r2, r1 - ldrh r0, [r0] - ldrh r1, [r3] - subs r0, r0, r1 - movs r1, #0xff - ands r0, r1 - ldr r4, _080AD508 - adds r1, r2, r4 - strh r0, [r1] - movs r0, #0xde - lsls r0, r0, #3 - adds r1, r2, r0 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #3 - bls _080AD4E6 - movs r0, #0 - strh r0, [r1] - ldrh r0, [r3] - adds r0, #1 - strh r0, [r3] -_080AD4E6: - ldr r1, _080AD50C - adds r4, r2, r1 - ldrh r0, [r4] - cmp r0, #1 - beq _080AD522 - cmp r0, #1 - bgt _080AD510 - cmp r0, #0 - beq _080AD516 - b _080AD53A - .align 2, 0 -_080AD4FC: .4byte gUnknown_8526DE8 -_080AD500: .4byte gUnknown_2021B38 -_080AD504: .4byte 0x000006F2 -_080AD508: .4byte 0x000006EE -_080AD50C: .4byte 0x000006CE -_080AD510: - cmp r0, #2 - beq _080AD52E - b _080AD53A -_080AD516: - movs r0, #0 - movs r1, #0x10 - movs r2, #3 - bl Weather_SetTargetBlendCoeffs - b _080AD532 -_080AD522: - bl Weather_UpdateBlend - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080AD53E - b _080AD532 -_080AD52E: - bl sub_080AD664 -_080AD532: - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - b _080AD53E -_080AD53A: - movs r0, #0 - b _080AD540 -_080AD53E: - movs r0, #1 -_080AD540: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end Fog1_Finish - - thumb_func_start Fog1SpriteCallback -Fog1SpriteCallback: @ 0x080AD548 - push {r4, lr} - adds r3, r0, #0 - ldr r0, _080AD594 - ldrb r0, [r0] - strh r0, [r3, #0x26] - ldr r0, _080AD598 - ldr r0, [r0] - ldr r1, _080AD59C - adds r2, r0, r1 - ldrh r1, [r2] - adds r1, #0x20 - movs r4, #0x2e - ldrsh r0, [r3, r4] - lsls r0, r0, #6 - adds r1, r1, r0 - strh r1, [r3, #0x20] - lsls r1, r1, #0x10 - ldr r0, _080AD5A0 - cmp r1, r0 - ble _080AD58C - movs r0, #0xf0 - lsls r0, r0, #1 - adds r1, r0, #0 - ldrh r2, [r2] - adds r1, r1, r2 - movs r4, #0x2e - ldrsh r2, [r3, r4] - movs r0, #4 - subs r0, r0, r2 - lsls r0, r0, #6 - subs r1, r1, r0 - ldr r0, _080AD5A4 - ands r1, r0 - strh r1, [r3, #0x20] -_080AD58C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AD594: .4byte gUnknown_2021B3A -_080AD598: .4byte gUnknown_8526DE8 -_080AD59C: .4byte 0x000006EE -_080AD5A0: .4byte 0x010F0000 -_080AD5A4: .4byte 0x000001FF - thumb_func_end Fog1SpriteCallback - - thumb_func_start CreateFog1Sprites -CreateFog1Sprites: @ 0x080AD5A8 - push {r4, r5, lr} - sub sp, #8 - ldr r0, _080AD61C - ldr r0, [r0] - ldr r1, _080AD620 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080AD652 - ldr r0, _080AD624 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, #4] - mov r0, sp - bl LoadSpriteSheet - movs r5, #0 -_080AD5CC: - ldr r0, _080AD628 - movs r1, #0 - movs r2, #0 - movs r3, #0xff - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _080AD630 - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _080AD62C - adds r4, r4, r0 - adds r0, r5, #0 - movs r1, #5 - bl __umodsi3 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - lsrs r0, r0, #0xa - adds r0, #0x20 - strh r0, [r4, #0x20] - adds r0, r5, #0 - movs r1, #5 - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0xa - adds r0, #0x20 - strh r0, [r4, #0x22] - ldr r2, _080AD61C - ldr r0, [r2] - lsls r1, r5, #2 - adds r0, #0xa0 - adds r0, r0, r1 - str r4, [r0] - b _080AD63E - .align 2, 0 -_080AD61C: .4byte gUnknown_8526DE8 -_080AD620: .4byte 0x000006FB -_080AD624: .4byte gUnknown_852A9CC -_080AD628: .4byte gUnknown_852A9B4 -_080AD62C: .4byte gUnknown_20205AC -_080AD630: - ldr r2, _080AD65C - ldr r1, [r2] - lsls r0, r5, #2 - adds r1, #0xa0 - adds r1, r1, r0 - movs r0, #0 - str r0, [r1] -_080AD63E: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0x13 - bls _080AD5CC - ldr r0, [r2] - ldr r1, _080AD660 - adds r0, r0, r1 - movs r1, #1 - strb r1, [r0] -_080AD652: - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080AD65C: .4byte gUnknown_8526DE8 -_080AD660: .4byte 0x000006FB - thumb_func_end CreateFog1Sprites - - thumb_func_start sub_080AD664 -sub_080AD664: @ 0x080AD664 - push {r4, r5, lr} - ldr r0, _080AD6AC - ldr r1, [r0] - ldr r2, _080AD6B0 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080AD6A4 - movs r4, #0 - adds r5, r1, #0 - adds r5, #0xa0 -_080AD67A: - lsls r0, r4, #2 - adds r0, r5, r0 - ldr r0, [r0] - cmp r0, #0 - beq _080AD688 - bl DestroySprite -_080AD688: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x13 - bls _080AD67A - ldr r0, _080AD6B4 - bl FreeSpriteTilesByTag - ldr r0, _080AD6AC - ldr r0, [r0] - ldr r1, _080AD6B0 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] -_080AD6A4: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080AD6AC: .4byte gUnknown_8526DE8 -_080AD6B0: .4byte 0x000006FB -_080AD6B4: .4byte 0x00001201 - thumb_func_end sub_080AD664 - - thumb_func_start Ash_InitVars -Ash_InitVars: @ 0x080AD6B8 - push {lr} - ldr r0, _080AD704 - ldr r1, [r0] - ldr r0, _080AD708 - adds r2, r1, r0 - movs r3, #0 - movs r0, #0 - strh r0, [r2] - ldr r2, _080AD70C - adds r0, r1, r2 - strb r3, [r0] - subs r2, #0x11 - adds r0, r1, r2 - strb r3, [r0] - ldr r3, _080AD710 - adds r0, r1, r3 - movs r2, #0x14 - strb r2, [r0] - adds r3, #0x3c - adds r0, r1, r3 - strh r2, [r0] - movs r0, #0xe0 - lsls r0, r0, #3 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0 - bne _080AD700 - movs r0, #0 - movs r1, #0x10 - bl Weather_SetBlendCoeffs - movs r1, #0xfd - lsls r1, r1, #6 - movs r0, #0x52 - bl SetGpuReg -_080AD700: - pop {r0} - bx r0 - .align 2, 0 -_080AD704: .4byte gUnknown_8526DE8 -_080AD708: .4byte 0x000006CC -_080AD70C: .4byte 0x000006D2 -_080AD710: .4byte 0x000006C2 - thumb_func_end Ash_InitVars - - thumb_func_start Ash_InitAll -Ash_InitAll: @ 0x080AD714 - push {r4, lr} - bl Ash_InitVars - ldr r0, _080AD73C - ldr r1, [r0] - ldr r2, _080AD740 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _080AD734 - adds r4, r1, r2 -_080AD72A: - bl Ash_Main - ldrb r0, [r4] - cmp r0, #0 - beq _080AD72A -_080AD734: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AD73C: .4byte gUnknown_8526DE8 -_080AD740: .4byte 0x000006D2 - thumb_func_end Ash_InitAll - - thumb_func_start Ash_Main -Ash_Main: @ 0x080AD744 - push {r4, r5, lr} - ldr r2, _080AD788 - ldr r1, [r2] - ldr r0, _080AD78C - ldrh r0, [r0] - ldr r3, _080AD790 - ands r3, r0 - ldr r0, _080AD794 - adds r1, r1, r0 - strh r3, [r1] - cmp r3, #0xef - bls _080AD770 - adds r4, r1, #0 - adds r1, r3, #0 -_080AD760: - adds r3, r1, #0 - subs r3, #0xf0 - adds r1, r3, #0 - lsls r0, r3, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xef - bhi _080AD760 - strh r3, [r4] -_080AD770: - ldr r5, [r2] - ldr r1, _080AD798 - adds r4, r5, r1 - ldrh r0, [r4] - cmp r0, #1 - beq _080AD7A8 - cmp r0, #1 - bgt _080AD79C - cmp r0, #0 - beq _080AD7A2 - b _080AD7E4 - .align 2, 0 -_080AD788: .4byte gUnknown_8526DE8 -_080AD78C: .4byte gUnknown_2021B38 -_080AD790: .4byte 0x000001FF -_080AD794: .4byte 0x000006FC -_080AD798: .4byte 0x000006CC -_080AD79C: - cmp r0, #2 - beq _080AD7C4 - b _080AD7E4 -_080AD7A2: - bl LoadAshSpriteSheet - b _080AD7D6 -_080AD7A8: - movs r1, #0xe0 - lsls r1, r1, #3 - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080AD7B8 - bl CreateAshSprites -_080AD7B8: - movs r0, #0x10 - movs r1, #0 - movs r2, #1 - bl Weather_SetTargetBlendCoeffs - b _080AD7D6 -_080AD7C4: - bl Weather_UpdateBlend - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080AD7E8 - ldr r0, _080AD7E0 - adds r1, r5, r0 - movs r0, #1 - strb r0, [r1] -_080AD7D6: - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - b _080AD7E8 - .align 2, 0 -_080AD7E0: .4byte 0x000006D2 -_080AD7E4: - bl Weather_UpdateBlend -_080AD7E8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Ash_Main - - thumb_func_start Ash_Finish -Ash_Finish: @ 0x080AD7F0 - push {r4, lr} - ldr r0, _080AD80C - ldr r0, [r0] - ldr r1, _080AD810 - adds r4, r0, r1 - ldrh r0, [r4] - cmp r0, #1 - beq _080AD826 - cmp r0, #1 - bgt _080AD814 - cmp r0, #0 - beq _080AD81A - b _080AD84A - .align 2, 0 -_080AD80C: .4byte gUnknown_8526DE8 -_080AD810: .4byte 0x000006CE -_080AD814: - cmp r0, #2 - beq _080AD83C - b _080AD84A -_080AD81A: - movs r0, #0 - movs r1, #0x10 - movs r2, #1 - bl Weather_SetTargetBlendCoeffs - b _080AD834 -_080AD826: - bl Weather_UpdateBlend - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080AD84E - bl DestroyAshSprites -_080AD834: - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - b _080AD84E -_080AD83C: - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] -_080AD84A: - movs r0, #0 - b _080AD850 -_080AD84E: - movs r0, #1 -_080AD850: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end Ash_Finish - - thumb_func_start LoadAshSpriteSheet -LoadAshSpriteSheet: @ 0x080AD858 - push {lr} - ldr r0, _080AD864 - bl LoadSpriteSheet - pop {r0} - bx r0 - .align 2, 0 -_080AD864: .4byte gUnknown_852A9D4 - thumb_func_end LoadAshSpriteSheet - - thumb_func_start CreateAshSprites -CreateAshSprites: @ 0x080AD868 - push {r4, r5, lr} - ldr r0, _080AD8D4 - ldr r0, [r0] - movs r1, #0xe0 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080AD904 - movs r5, #0 -_080AD87C: - ldr r0, _080AD8D8 - movs r1, #0 - movs r2, #0 - movs r3, #0x4e - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _080AD8E0 - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _080AD8DC - adds r4, r4, r0 - movs r0, #0 - strh r0, [r4, #0x30] - adds r0, r5, #0 - movs r1, #5 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x32] - adds r0, r5, #0 - movs r1, #5 - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x34] - movs r1, #0x34 - ldrsh r0, [r4, r1] - lsls r0, r0, #6 - adds r0, #0x20 - strh r0, [r4, #0x2e] - ldr r2, _080AD8D4 - ldr r0, [r2] - lsls r1, r5, #2 - adds r0, #0xf0 - adds r0, r0, r1 - str r4, [r0] - b _080AD8EE - .align 2, 0 -_080AD8D4: .4byte gUnknown_8526DE8 -_080AD8D8: .4byte gUnknown_852A9F4 -_080AD8DC: .4byte gUnknown_20205AC -_080AD8E0: - ldr r2, _080AD90C - ldr r1, [r2] - lsls r0, r5, #2 - adds r1, #0xf0 - adds r1, r1, r0 - movs r0, #0 - str r0, [r1] -_080AD8EE: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0x13 - bls _080AD87C - ldr r0, [r2] - movs r1, #0xe0 - lsls r1, r1, #3 - adds r0, r0, r1 - movs r1, #1 - strb r1, [r0] -_080AD904: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080AD90C: .4byte gUnknown_8526DE8 - thumb_func_end CreateAshSprites - - thumb_func_start DestroyAshSprites -DestroyAshSprites: @ 0x080AD910 - push {r4, r5, lr} - ldr r0, _080AD95C - ldr r1, [r0] - movs r2, #0xe0 - lsls r2, r2, #3 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080AD954 - movs r4, #0 - adds r5, r1, #0 - adds r5, #0xf0 -_080AD928: - lsls r0, r4, #2 - adds r0, r5, r0 - ldr r0, [r0] - cmp r0, #0 - beq _080AD936 - bl DestroySprite -_080AD936: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x13 - bls _080AD928 - ldr r0, _080AD960 - bl FreeSpriteTilesByTag - ldr r0, _080AD95C - ldr r0, [r0] - movs r1, #0xe0 - lsls r1, r1, #3 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] -_080AD954: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080AD95C: .4byte gUnknown_8526DE8 -_080AD960: .4byte 0x00001202 - thumb_func_end DestroyAshSprites - - thumb_func_start UpdateAshSprite -UpdateAshSprite: @ 0x080AD964 - push {r4, lr} - adds r3, r0, #0 - ldrh r0, [r3, #0x30] - adds r0, #1 - strh r0, [r3, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #5 - ble _080AD980 - movs r0, #0 - strh r0, [r3, #0x30] - ldrh r0, [r3, #0x2e] - adds r0, #1 - strh r0, [r3, #0x2e] -_080AD980: - ldr r1, _080AD9CC - ldrh r0, [r3, #0x2e] - ldrh r1, [r1] - adds r0, r0, r1 - strh r0, [r3, #0x22] - ldr r0, _080AD9D0 - ldr r0, [r0] - ldr r1, _080AD9D4 - adds r2, r0, r1 - ldrh r1, [r2] - adds r1, #0x20 - movs r4, #0x32 - ldrsh r0, [r3, r4] - lsls r0, r0, #6 - adds r1, r1, r0 - strh r1, [r3, #0x20] - lsls r1, r1, #0x10 - ldr r0, _080AD9D8 - cmp r1, r0 - ble _080AD9C4 - movs r0, #0xf0 - lsls r0, r0, #1 - adds r1, r0, #0 - ldrh r2, [r2] - adds r1, r1, r2 - movs r4, #0x32 - ldrsh r2, [r3, r4] - movs r0, #4 - subs r0, r0, r2 - lsls r0, r0, #6 - subs r1, r1, r0 - ldr r0, _080AD9DC - ands r1, r0 - strh r1, [r3, #0x20] -_080AD9C4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AD9CC: .4byte gUnknown_2021B3A -_080AD9D0: .4byte gUnknown_8526DE8 -_080AD9D4: .4byte 0x000006FC -_080AD9D8: .4byte 0x010F0000 -_080AD9DC: .4byte 0x000001FF - thumb_func_end UpdateAshSprite - - thumb_func_start Fog2_InitVars -Fog2_InitVars: @ 0x080AD9E0 - push {r4, lr} - ldr r0, _080ADA50 - ldr r3, [r0] - ldr r1, _080ADA54 - adds r0, r3, r1 - movs r1, #0 - movs r2, #0 - strh r2, [r0] - ldr r4, _080ADA58 - adds r0, r3, r4 - strb r1, [r0] - subs r4, #0x11 - adds r0, r3, r4 - strb r1, [r0] - ldr r0, _080ADA5C - adds r1, r3, r0 - movs r0, #0x14 - strb r0, [r1] - movs r1, #0xde - lsls r1, r1, #3 - adds r0, r3, r1 - strh r2, [r0] - adds r4, #0x31 - adds r1, r3, r4 - movs r0, #1 - strh r0, [r1] - ldr r1, _080ADA60 - adds r0, r3, r1 - ldrb r2, [r0] - cmp r2, #0 - bne _080ADA4A - adds r4, #0x2a - adds r0, r3, r4 - strh r2, [r0] - subs r1, #6 - adds r0, r3, r1 - strh r2, [r0] - adds r4, #4 - adds r0, r3, r4 - strh r2, [r0] - adds r1, #4 - adds r0, r3, r1 - strh r2, [r0] - subs r4, #8 - adds r0, r3, r4 - strh r2, [r0] - subs r1, #8 - adds r0, r3, r1 - strh r2, [r0] - movs r0, #0 - movs r1, #0x10 - bl Weather_SetBlendCoeffs -_080ADA4A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ADA50: .4byte gUnknown_8526DE8 -_080ADA54: .4byte 0x000006CC -_080ADA58: .4byte 0x000006D2 -_080ADA5C: .4byte 0x000006C2 -_080ADA60: .4byte 0x00000724 - thumb_func_end Fog2_InitVars - - thumb_func_start Fog2_InitAll -Fog2_InitAll: @ 0x080ADA64 - push {r4, lr} - bl Fog2_InitVars - ldr r0, _080ADA8C - ldr r1, [r0] - ldr r2, _080ADA90 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _080ADA84 - adds r4, r1, r2 -_080ADA7A: - bl Fog2_Main - ldrb r0, [r4] - cmp r0, #0 - beq _080ADA7A -_080ADA84: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ADA8C: .4byte gUnknown_8526DE8 -_080ADA90: .4byte 0x000006D2 - thumb_func_end Fog2_InitAll - - thumb_func_start Fog2_Main -Fog2_Main: @ 0x080ADA94 - push {r4, r5, lr} - bl UpdateFog2Movement - ldr r0, _080ADAB4 - ldr r5, [r0] - ldr r0, _080ADAB8 - adds r4, r5, r0 - ldrh r0, [r4] - cmp r0, #1 - beq _080ADAC8 - cmp r0, #1 - bgt _080ADABC - cmp r0, #0 - beq _080ADAC2 - b _080ADAEC - .align 2, 0 -_080ADAB4: .4byte gUnknown_8526DE8 -_080ADAB8: .4byte 0x000006CC -_080ADABC: - cmp r0, #2 - beq _080ADAD4 - b _080ADAEC -_080ADAC2: - bl CreateFog2Sprites - b _080ADAE6 -_080ADAC8: - movs r0, #0xc - movs r1, #8 - movs r2, #8 - bl Weather_SetTargetBlendCoeffs - b _080ADAE6 -_080ADAD4: - bl Weather_UpdateBlend - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080ADAEC - ldr r0, _080ADAF4 - adds r1, r5, r0 - movs r0, #1 - strb r0, [r1] -_080ADAE6: - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] -_080ADAEC: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080ADAF4: .4byte 0x000006D2 - thumb_func_end Fog2_Main - - thumb_func_start Fog2_Finish -Fog2_Finish: @ 0x080ADAF8 - push {r4, lr} - bl UpdateFog2Movement - ldr r0, _080ADB18 - ldr r0, [r0] - ldr r1, _080ADB1C - adds r4, r0, r1 - ldrh r0, [r4] - cmp r0, #1 - beq _080ADB32 - cmp r0, #1 - bgt _080ADB20 - cmp r0, #0 - beq _080ADB26 - b _080ADB4A - .align 2, 0 -_080ADB18: .4byte gUnknown_8526DE8 -_080ADB1C: .4byte 0x000006CE -_080ADB20: - cmp r0, #2 - beq _080ADB3E - b _080ADB4A -_080ADB26: - movs r0, #0 - movs r1, #0x10 - movs r2, #1 - bl Weather_SetTargetBlendCoeffs - b _080ADB42 -_080ADB32: - bl Weather_UpdateBlend - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080ADB4E - b _080ADB42 -_080ADB3E: - bl DestroyFog2Sprites -_080ADB42: - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - b _080ADB4E -_080ADB4A: - movs r0, #0 - b _080ADB50 -_080ADB4E: - movs r0, #1 -_080ADB50: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end Fog2_Finish - - thumb_func_start UpdateFog2Movement -UpdateFog2Movement: @ 0x080ADB58 - push {r4, r5, lr} - ldr r0, _080ADBD0 - ldr r3, [r0] - ldr r0, _080ADBD4 - adds r2, r3, r0 - ldrh r0, [r2] - adds r0, #1 - movs r5, #0 - strh r0, [r2] - ldr r1, _080ADBD8 - adds r4, r1, #0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #2 - bls _080ADB84 - movs r0, #0xe4 - lsls r0, r0, #3 - adds r1, r3, r0 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - strh r5, [r2] -_080ADB84: - ldr r1, _080ADBDC - adds r2, r3, r1 - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - ands r0, r4 - cmp r0, #4 - bls _080ADBA0 - ldr r0, _080ADBE0 - adds r1, r3, r0 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - strh r5, [r2] -_080ADBA0: - ldr r0, _080ADBE4 - movs r2, #0xe4 - lsls r2, r2, #3 - adds r1, r3, r2 - ldrh r0, [r0] - ldrh r1, [r1] - subs r0, r0, r1 - movs r1, #0xff - ands r0, r1 - subs r2, #8 - adds r1, r3, r2 - strh r0, [r1] - ldr r1, _080ADBE8 - adds r2, #0xa - adds r0, r3, r2 - ldrh r0, [r0] - ldrh r1, [r1] - adds r0, r0, r1 - subs r2, #8 - adds r1, r3, r2 - strh r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080ADBD0: .4byte gUnknown_8526DE8 -_080ADBD4: .4byte 0x0000071C -_080ADBD8: .4byte 0x0000FFFF -_080ADBDC: .4byte 0x0000071E -_080ADBE0: .4byte 0x00000722 -_080ADBE4: .4byte gUnknown_2021B38 -_080ADBE8: .4byte gUnknown_2021B3A - thumb_func_end UpdateFog2Movement - - thumb_func_start CreateFog2Sprites -CreateFog2Sprites: @ 0x080ADBEC - push {r4, r5, r6, lr} - sub sp, #8 - ldr r0, _080ADC58 - ldr r0, [r0] - ldr r1, _080ADC5C - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080ADC92 - ldr r0, _080ADC60 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, #4] - mov r0, sp - bl LoadSpriteSheet - movs r6, #0 -_080ADC10: - adds r0, r6, #0 - movs r1, #5 - bl __udivsi3 - adds r5, r0, #0 - lsls r2, r5, #0x16 - asrs r2, r2, #0x10 - ldr r0, _080ADC64 - movs r1, #0 - movs r3, #0xff - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _080ADC6C - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _080ADC68 - adds r4, r4, r0 - adds r0, r6, #0 - movs r1, #5 - bl __umodsi3 - strh r0, [r4, #0x2e] - strh r5, [r4, #0x30] - ldr r2, _080ADC58 - ldr r0, [r2] - lsls r1, r6, #2 - movs r3, #0xa0 - lsls r3, r3, #1 - adds r0, r0, r3 - adds r0, r0, r1 - str r4, [r0] - b _080ADC7E - .align 2, 0 -_080ADC58: .4byte gUnknown_8526DE8 -_080ADC5C: .4byte 0x00000724 -_080ADC60: .4byte gUnknown_852AA0C -_080ADC64: .4byte gUnknown_852AA28 -_080ADC68: .4byte gUnknown_20205AC -_080ADC6C: - ldr r2, _080ADC9C - ldr r1, [r2] - lsls r0, r6, #2 - movs r3, #0xa0 - lsls r3, r3, #1 - adds r1, r1, r3 - adds r1, r1, r0 - movs r0, #0 - str r0, [r1] -_080ADC7E: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0x13 - bls _080ADC10 - ldr r0, [r2] - ldr r1, _080ADCA0 - adds r0, r0, r1 - movs r1, #1 - strb r1, [r0] -_080ADC92: - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080ADC9C: .4byte gUnknown_8526DE8 -_080ADCA0: .4byte 0x00000724 - thumb_func_end CreateFog2Sprites - - thumb_func_start DestroyFog2Sprites -DestroyFog2Sprites: @ 0x080ADCA4 - push {r4, r5, lr} - ldr r0, _080ADCEC - ldr r1, [r0] - ldr r2, _080ADCF0 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080ADCE6 - movs r4, #0 - movs r0, #0xa0 - lsls r0, r0, #1 - adds r5, r1, r0 -_080ADCBC: - lsls r0, r4, #2 - adds r0, r5, r0 - ldr r0, [r0] - cmp r0, #0 - beq _080ADCCA - bl DestroySprite -_080ADCCA: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x13 - bls _080ADCBC - ldr r0, _080ADCF4 - bl FreeSpriteTilesByTag - ldr r0, _080ADCEC - ldr r0, [r0] - ldr r1, _080ADCF0 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] -_080ADCE6: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080ADCEC: .4byte gUnknown_8526DE8 -_080ADCF0: .4byte 0x00000724 -_080ADCF4: .4byte 0x00001203 - thumb_func_end DestroyFog2Sprites - - thumb_func_start UpdateFog2Sprite -UpdateFog2Sprite: @ 0x080ADCF8 - push {r4, lr} - adds r3, r0, #0 - ldr r0, _080ADD48 - ldr r1, [r0] - ldr r2, _080ADD4C - adds r0, r1, r2 - ldrh r0, [r0] - strh r0, [r3, #0x26] - movs r4, #0xe3 - lsls r4, r4, #3 - adds r2, r1, r4 - ldrh r1, [r2] - adds r1, #0x20 - movs r4, #0x2e - ldrsh r0, [r3, r4] - lsls r0, r0, #6 - adds r1, r1, r0 - strh r1, [r3, #0x20] - lsls r1, r1, #0x10 - ldr r0, _080ADD50 - cmp r1, r0 - ble _080ADD40 - movs r0, #0xf0 - lsls r0, r0, #1 - adds r1, r0, #0 - ldrh r2, [r2] - adds r1, r1, r2 - movs r4, #0x2e - ldrsh r2, [r3, r4] - movs r0, #4 - subs r0, r0, r2 - lsls r0, r0, #6 - subs r1, r1, r0 - ldr r0, _080ADD54 - ands r1, r0 - strh r1, [r3, #0x20] -_080ADD40: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ADD48: .4byte gUnknown_8526DE8 -_080ADD4C: .4byte 0x0000071A -_080ADD50: .4byte 0x010F0000 -_080ADD54: .4byte 0x000001FF - thumb_func_end UpdateFog2Sprite - - thumb_func_start Sandstorm_InitVars -Sandstorm_InitVars: @ 0x080ADD58 - push {r4, lr} - ldr r0, _080ADDBC - ldr r3, [r0] - ldr r0, _080ADDC0 - adds r1, r3, r0 - movs r2, #0 - movs r0, #0 - strh r0, [r1] - ldr r1, _080ADDC4 - adds r0, r3, r1 - strb r2, [r0] - ldr r4, _080ADDC8 - adds r0, r3, r4 - strb r2, [r0] - ldr r0, _080ADDCC - adds r1, r3, r0 - movs r0, #0x14 - strb r0, [r1] - ldr r1, _080ADDD0 - adds r0, r3, r1 - ldrb r2, [r0] - cmp r2, #0 - bne _080ADDB4 - adds r4, #0x43 - adds r1, r3, r4 - adds r4, #4 - adds r0, r3, r4 - str r2, [r0] - str r2, [r1] - ldr r0, _080ADDD4 - adds r1, r3, r0 - movs r0, #8 - strh r0, [r1] - adds r4, #0xc - adds r0, r3, r4 - strh r2, [r0] - ldrh r2, [r1] - cmp r2, #0x5f - bls _080ADDAC - movs r0, #0x80 - subs r0, r0, r2 - strh r0, [r1] -_080ADDAC: - movs r0, #0 - movs r1, #0x10 - bl Weather_SetBlendCoeffs -_080ADDB4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ADDBC: .4byte gUnknown_8526DE8 -_080ADDC0: .4byte 0x000006CC -_080ADDC4: .4byte 0x000006D2 -_080ADDC8: .4byte 0x000006C1 -_080ADDCC: .4byte 0x000006C2 -_080ADDD0: .4byte 0x00000716 -_080ADDD4: .4byte 0x00000712 - thumb_func_end Sandstorm_InitVars - - thumb_func_start Sandstorm_InitAll -Sandstorm_InitAll: @ 0x080ADDD8 - push {r4, lr} - bl Sandstorm_InitVars - ldr r0, _080ADE00 - ldr r1, [r0] - ldr r2, _080ADE04 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _080ADDF8 - adds r4, r1, r2 -_080ADDEE: - bl Sandstorm_Main - ldrb r0, [r4] - cmp r0, #0 - beq _080ADDEE -_080ADDF8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ADE00: .4byte gUnknown_8526DE8 -_080ADE04: .4byte 0x000006D2 - thumb_func_end Sandstorm_InitAll - - thumb_func_start Sandstorm_Main -Sandstorm_Main: @ 0x080ADE08 - push {r4, r5, lr} - bl UpdateSandstormMovement - bl UpdateSandstormWaveIndex - ldr r0, _080ADE38 - ldr r5, [r0] - ldr r0, _080ADE3C - adds r1, r5, r0 - ldrh r0, [r1] - cmp r0, #0x5f - bls _080ADE24 - movs r0, #0x20 - strh r0, [r1] -_080ADE24: - ldr r0, _080ADE40 - adds r4, r5, r0 - ldrh r0, [r4] - cmp r0, #1 - beq _080ADE54 - cmp r0, #1 - bgt _080ADE44 - cmp r0, #0 - beq _080ADE4A - b _080ADE78 - .align 2, 0 -_080ADE38: .4byte gUnknown_8526DE8 -_080ADE3C: .4byte 0x00000712 -_080ADE40: .4byte 0x000006CC -_080ADE44: - cmp r0, #2 - beq _080ADE60 - b _080ADE78 -_080ADE4A: - bl CreateSandstormSprites - bl CreateSwirlSandstormSprites - b _080ADE72 -_080ADE54: - movs r0, #0x10 - movs r1, #0 - movs r2, #0 - bl Weather_SetTargetBlendCoeffs - b _080ADE72 -_080ADE60: - bl Weather_UpdateBlend - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080ADE78 - ldr r0, _080ADE80 - adds r1, r5, r0 - movs r0, #1 - strb r0, [r1] -_080ADE72: - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] -_080ADE78: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080ADE80: .4byte 0x000006D2 - thumb_func_end Sandstorm_Main - - thumb_func_start Sandstorm_Finish -Sandstorm_Finish: @ 0x080ADE84 - push {r4, lr} - bl UpdateSandstormMovement - bl UpdateSandstormWaveIndex - ldr r0, _080ADEA8 - ldr r0, [r0] - ldr r1, _080ADEAC - adds r4, r0, r1 - ldrh r0, [r4] - cmp r0, #1 - beq _080ADEC2 - cmp r0, #1 - bgt _080ADEB0 - cmp r0, #0 - beq _080ADEB6 - b _080ADEDA - .align 2, 0 -_080ADEA8: .4byte gUnknown_8526DE8 -_080ADEAC: .4byte 0x000006CE -_080ADEB0: - cmp r0, #2 - beq _080ADECE - b _080ADEDA -_080ADEB6: - movs r0, #0 - movs r1, #0x10 - movs r2, #0 - bl Weather_SetTargetBlendCoeffs - b _080ADED2 -_080ADEC2: - bl Weather_UpdateBlend - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080ADEDE - b _080ADED2 -_080ADECE: - bl DestroySandstormSprites -_080ADED2: - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - b _080ADEDE -_080ADEDA: - movs r0, #0 - b _080ADEE0 -_080ADEDE: - movs r0, #1 -_080ADEE0: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end Sandstorm_Finish - - thumb_func_start UpdateSandstormWaveIndex -UpdateSandstormWaveIndex: @ 0x080ADEE8 - push {lr} - ldr r0, _080ADF14 - ldr r2, [r0] - ldr r0, _080ADF18 - adds r3, r2, r0 - ldrh r0, [r3] - adds r1, r0, #1 - strh r1, [r3] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #4 - bls _080ADF0E - ldr r1, _080ADF1C - adds r0, r2, r1 - ldrh r1, [r0] - adds r1, #1 - movs r2, #0 - strh r1, [r0] - strh r2, [r3] -_080ADF0E: - pop {r0} - bx r0 - .align 2, 0 -_080ADF14: .4byte gUnknown_8526DE8 -_080ADF18: .4byte 0x00000714 -_080ADF1C: .4byte 0x00000712 - thumb_func_end UpdateSandstormWaveIndex - - thumb_func_start UpdateSandstormMovement -UpdateSandstormMovement: @ 0x080ADF20 - push {r4, r5, r6, lr} - ldr r0, _080ADF84 - ldr r2, [r0] - ldr r0, _080ADF88 - adds r4, r2, r0 - ldr r6, _080ADF8C - ldr r1, _080ADF90 - adds r5, r2, r1 - ldrh r0, [r5] - lsls r0, r0, #1 - adds r0, r0, r6 - movs r3, #0 - ldrsh r1, [r0, r3] - lsls r1, r1, #2 - ldr r0, [r4] - subs r0, r0, r1 - str r0, [r4] - movs r0, #0xe1 - lsls r0, r0, #3 - adds r3, r2, r0 - ldrh r0, [r5] - lsls r0, r0, #1 - adds r0, r0, r6 - movs r5, #0 - ldrsh r1, [r0, r5] - ldr r0, [r3] - subs r0, r0, r1 - str r0, [r3] - ldr r1, _080ADF94 - ldr r0, [r4] - lsrs r0, r0, #8 - ldrh r1, [r1] - adds r0, r0, r1 - movs r1, #0xff - ands r0, r1 - ldr r4, _080ADF98 - adds r1, r2, r4 - strh r0, [r1] - ldr r1, _080ADF9C - ldr r0, [r3] - lsrs r0, r0, #8 - ldrh r1, [r1] - adds r0, r0, r1 - movs r5, #0xe2 - lsls r5, r5, #3 - adds r2, r2, r5 - strh r0, [r2] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080ADF84: .4byte gUnknown_8526DE8 -_080ADF88: .4byte 0x00000704 -_080ADF8C: .4byte gUnknown_82FA8CC -_080ADF90: .4byte 0x00000712 -_080ADF94: .4byte gUnknown_2021B38 -_080ADF98: .4byte 0x0000070E -_080ADF9C: .4byte gUnknown_2021B3A - thumb_func_end UpdateSandstormMovement - - thumb_func_start DestroySandstormSprites -DestroySandstormSprites: @ 0x080ADFA0 - push {r4, r5, lr} - ldr r0, _080AE024 - ldr r1, [r0] - ldr r2, _080AE028 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080ADFE2 - movs r4, #0 - movs r0, #0xc8 - lsls r0, r0, #1 - adds r5, r1, r0 -_080ADFB8: - lsls r0, r4, #2 - adds r0, r5, r0 - ldr r0, [r0] - cmp r0, #0 - beq _080ADFC6 - bl DestroySprite -_080ADFC6: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x13 - bls _080ADFB8 - ldr r0, _080AE024 - ldr r0, [r0] - ldr r1, _080AE028 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - ldr r0, _080AE02C - bl FreeSpriteTilesByTag -_080ADFE2: - ldr r0, _080AE024 - ldr r1, [r0] - ldr r2, _080AE030 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080AE01C - movs r4, #0 - movs r0, #0xf0 - lsls r0, r0, #1 - adds r5, r1, r0 -_080ADFF8: - lsls r0, r4, #2 - adds r0, r5, r0 - ldr r0, [r0] - cmp r0, #0 - beq _080AE006 - bl DestroySprite -_080AE006: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #4 - bls _080ADFF8 - ldr r0, _080AE024 - ldr r0, [r0] - ldr r1, _080AE030 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] -_080AE01C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080AE024: .4byte gUnknown_8526DE8 -_080AE028: .4byte 0x00000716 -_080AE02C: .4byte 0x00001204 -_080AE030: .4byte 0x00000717 - thumb_func_end DestroySandstormSprites - - thumb_func_start CreateSandstormSprites -CreateSandstormSprites: @ 0x080AE034 - push {r4, r5, r6, r7, lr} - sub sp, #4 - ldr r0, _080AE0A4 - ldr r0, [r0] - ldr r1, _080AE0A8 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080AE0E2 - ldr r0, _080AE0AC - bl LoadSpriteSheet - ldr r0, _080AE0B0 - bl LoadCustomWeatherSpritePalette - movs r7, #0 -_080AE054: - adds r0, r7, #0 - movs r1, #5 - bl __udivsi3 - adds r6, r0, #0 - lsls r2, r6, #0x16 - asrs r2, r2, #0x10 - ldr r0, _080AE0B4 - movs r1, #0 - movs r3, #1 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x40 - beq _080AE0BC - ldr r2, _080AE0A4 - ldr r5, [r2] - lsls r0, r7, #2 - movs r3, #0xc8 - lsls r3, r3, #1 - adds r5, r5, r3 - adds r5, r5, r0 - lsls r4, r1, #4 - adds r4, r4, r1 - lsls r4, r4, #2 - ldr r0, _080AE0B8 - adds r4, r4, r0 - str r4, [r5] - adds r0, r7, #0 - movs r1, #5 - str r2, [sp] - bl __umodsi3 - strh r0, [r4, #0x2e] - ldr r0, [r5] - strh r6, [r0, #0x30] - ldr r2, [sp] - b _080AE0CE - .align 2, 0 -_080AE0A4: .4byte gUnknown_8526DE8 -_080AE0A8: .4byte 0x00000716 -_080AE0AC: .4byte gUnknown_852AA78 -_080AE0B0: .4byte gUnknown_8526F4C -_080AE0B4: .4byte gUnknown_852AA60 -_080AE0B8: .4byte gUnknown_20205AC -_080AE0BC: - ldr r2, _080AE0EC - ldr r1, [r2] - lsls r0, r7, #2 - movs r3, #0xc8 - lsls r3, r3, #1 - adds r1, r1, r3 - adds r1, r1, r0 - movs r0, #0 - str r0, [r1] -_080AE0CE: - adds r0, r7, #1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - cmp r7, #0x13 - bls _080AE054 - ldr r0, [r2] - ldr r1, _080AE0F0 - adds r0, r0, r1 - movs r1, #1 - strb r1, [r0] -_080AE0E2: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080AE0EC: .4byte gUnknown_8526DE8 -_080AE0F0: .4byte 0x00000716 - thumb_func_end CreateSandstormSprites - - thumb_func_start CreateSwirlSandstormSprites -CreateSwirlSandstormSprites: @ 0x080AE0F4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r4, _080AE19C - ldr r0, [r4] - ldr r1, _080AE1A0 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080AE1E0 - movs r7, #0 - mov sb, r4 - movs r2, #0 - mov sl, r2 -_080AE114: - lsls r0, r7, #1 - mov r8, r0 - adds r6, r0, r7 - lsls r5, r6, #4 - adds r1, r5, #0 - adds r1, #0x18 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldr r0, _080AE1A4 - movs r2, #0xd0 - movs r3, #1 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x40 - beq _080AE1B8 - mov r2, sb - ldr r4, [r2] - lsls r0, r7, #2 - movs r2, #0xf0 - lsls r2, r2, #1 - adds r4, r4, r2 - adds r4, r4, r0 - lsls r2, r1, #4 - adds r2, r2, r1 - lsls r2, r2, #2 - ldr r0, _080AE1A8 - adds r2, r2, r0 - str r2, [r4] - ldrb r1, [r2, #3] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #3] - ldr r1, [r4] - adds r0, r6, r5 - strh r0, [r1, #0x30] - ldr r1, [r4] - movs r0, #8 - strh r0, [r1, #0x2e] - ldr r0, [r4] - mov r1, sl - strh r1, [r0, #0x32] - ldr r1, [r4] - ldr r0, _080AE1AC - strh r0, [r1, #0x36] - ldr r1, [r4] - ldr r0, _080AE1B0 - add r0, r8 - ldrh r0, [r0] - strh r0, [r1, #0x34] - ldr r0, [r4] - movs r1, #1 - bl StartSpriteAnim - ldr r0, [r4] - movs r1, #0 - movs r2, #2 - movs r3, #0 - bl CalcCenterToCornerVec - ldr r1, [r4] - ldr r0, _080AE1B4 - str r0, [r1, #0x1c] - b _080AE1CA - .align 2, 0 -_080AE19C: .4byte gUnknown_8526DE8 -_080AE1A0: .4byte 0x00000717 -_080AE1A4: .4byte gUnknown_852AA60 -_080AE1A8: .4byte gUnknown_20205AC -_080AE1AC: .4byte 0x00006730 -_080AE1B0: .4byte gUnknown_852AA80 -_080AE1B4: .4byte WaitSandSwirlSpriteEntrance -_080AE1B8: - mov r2, sb - ldr r0, [r2] - lsls r1, r7, #2 - movs r2, #0xf0 - lsls r2, r2, #1 - adds r0, r0, r2 - adds r0, r0, r1 - mov r1, sl - str r1, [r0] -_080AE1CA: - mov r2, sb - ldr r0, [r2] - ldr r1, _080AE1F0 - adds r0, r0, r1 - movs r1, #1 - strb r1, [r0] - adds r0, r7, #1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - cmp r7, #4 - bls _080AE114 -_080AE1E0: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080AE1F0: .4byte 0x00000717 - thumb_func_end CreateSwirlSandstormSprites - - thumb_func_start UpdateSandstormSprite -UpdateSandstormSprite: @ 0x080AE1F4 - push {r4, lr} - adds r3, r0, #0 - ldr r0, _080AE244 - ldr r1, [r0] - movs r2, #0xe2 - lsls r2, r2, #3 - adds r0, r1, r2 - ldrh r0, [r0] - strh r0, [r3, #0x26] - ldr r4, _080AE248 - adds r2, r1, r4 - ldrh r1, [r2] - adds r1, #0x20 - movs r4, #0x2e - ldrsh r0, [r3, r4] - lsls r0, r0, #6 - adds r1, r1, r0 - strh r1, [r3, #0x20] - lsls r1, r1, #0x10 - ldr r0, _080AE24C - cmp r1, r0 - ble _080AE23C - movs r0, #0xf0 - lsls r0, r0, #1 - adds r1, r0, #0 - ldrh r2, [r2] - adds r1, r1, r2 - movs r4, #0x2e - ldrsh r2, [r3, r4] - movs r0, #4 - subs r0, r0, r2 - lsls r0, r0, #6 - subs r1, r1, r0 - ldr r0, _080AE250 - ands r1, r0 - strh r1, [r3, #0x20] -_080AE23C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AE244: .4byte gUnknown_8526DE8 -_080AE248: .4byte 0x0000070E -_080AE24C: .4byte 0x010F0000 -_080AE250: .4byte 0x000001FF - thumb_func_end UpdateSandstormSprite - - thumb_func_start WaitSandSwirlSpriteEntrance -WaitSandSwirlSpriteEntrance: @ 0x080AE254 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x34] - subs r0, #1 - strh r0, [r2, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _080AE26E - ldr r0, _080AE274 - str r0, [r2, #0x1c] -_080AE26E: - pop {r0} - bx r0 - .align 2, 0 -_080AE274: .4byte UpdateSandstormSwirlSprite - thumb_func_end WaitSandSwirlSpriteEntrance - - thumb_func_start UpdateSandstormSwirlSprite -UpdateSandstormSwirlSprite: @ 0x080AE278 - push {r4, r5, lr} - adds r5, r0, #0 - ldrh r0, [r5, #0x22] - subs r0, #1 - strh r0, [r5, #0x22] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x30 - rsbs r1, r1, #0 - cmp r0, r1 - bge _080AE296 - movs r0, #0xd0 - strh r0, [r5, #0x22] - movs r0, #4 - strh r0, [r5, #0x2e] -_080AE296: - movs r0, #0x2e - ldrsh r4, [r5, r0] - ldr r3, _080AE2E8 - movs r2, #0x30 - ldrsh r1, [r5, r2] - lsls r0, r1, #1 - adds r0, r0, r3 - movs r2, #0 - ldrsh r0, [r0, r2] - adds r2, r4, #0 - muls r2, r0, r2 - adds r1, #0x40 - lsls r1, r1, #1 - adds r1, r1, r3 - movs r3, #0 - ldrsh r0, [r1, r3] - muls r0, r4, r0 - lsrs r2, r2, #8 - strh r2, [r5, #0x24] - lsrs r0, r0, #8 - strh r0, [r5, #0x26] - ldrh r0, [r5, #0x30] - adds r0, #0xa - movs r1, #0xff - ands r0, r1 - strh r0, [r5, #0x30] - ldrh r0, [r5, #0x32] - adds r0, #1 - strh r0, [r5, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #8 - ble _080AE2E2 - movs r0, #0 - strh r0, [r5, #0x32] - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] -_080AE2E2: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080AE2E8: .4byte gUnknown_82FA8CC - thumb_func_end UpdateSandstormSwirlSprite - - thumb_func_start Shade_InitVars -Shade_InitVars: @ 0x080AE2EC - ldr r0, _080AE30C - ldr r1, [r0] - ldr r0, _080AE310 - adds r2, r1, r0 - movs r0, #0 - strh r0, [r2] - ldr r0, _080AE314 - adds r2, r1, r0 - movs r0, #3 - strb r0, [r2] - ldr r0, _080AE318 - adds r1, r1, r0 - movs r0, #0x14 - strb r0, [r1] - bx lr - .align 2, 0 -_080AE30C: .4byte gUnknown_8526DE8 -_080AE310: .4byte 0x000006CC -_080AE314: .4byte 0x000006C1 -_080AE318: .4byte 0x000006C2 - thumb_func_end Shade_InitVars - - thumb_func_start Shade_InitAll -Shade_InitAll: @ 0x080AE31C - push {lr} - bl Shade_InitVars - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Shade_InitAll - - thumb_func_start sub_080AE328 -sub_080AE328: @ 0x080AE328 - bx lr - .align 2, 0 - thumb_func_end sub_080AE328 - - thumb_func_start sub_080AE32C -sub_080AE32C: @ 0x080AE32C - movs r0, #0 - bx lr - thumb_func_end sub_080AE32C - - thumb_func_start Bubbles_InitVars -Bubbles_InitVars: @ 0x080AE330 - push {r4, r5, lr} - bl Fog1_InitVars - ldr r0, _080AE370 - ldr r4, [r0] - ldr r1, _080AE374 - adds r0, r4, r1 - ldrb r5, [r0] - cmp r5, #0 - bne _080AE368 - ldr r0, _080AE378 - bl LoadSpriteSheet - movs r2, #0xe5 - lsls r2, r2, #3 - adds r0, r4, r2 - strh r5, [r0] - ldr r0, _080AE37C - ldrb r1, [r0] - subs r2, #2 - adds r0, r4, r2 - strh r1, [r0] - ldr r1, _080AE380 - adds r0, r4, r1 - strh r5, [r0] - adds r2, #6 - adds r0, r4, r2 - strh r5, [r0] -_080AE368: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080AE370: .4byte gUnknown_8526DE8 -_080AE374: .4byte 0x0000072E -_080AE378: .4byte gUnknown_852AA94 -_080AE37C: .4byte gUnknown_852AA8C -_080AE380: .4byte 0x0000072A - thumb_func_end Bubbles_InitVars - - thumb_func_start Bubbles_InitAll -Bubbles_InitAll: @ 0x080AE384 - push {r4, lr} - bl Bubbles_InitVars - ldr r0, _080AE3AC - ldr r1, [r0] - ldr r2, _080AE3B0 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _080AE3A4 - adds r4, r1, r2 -_080AE39A: - bl Bubbles_Main - ldrb r0, [r4] - cmp r0, #0 - beq _080AE39A -_080AE3A4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AE3AC: .4byte gUnknown_8526DE8 -_080AE3B0: .4byte 0x000006D2 - thumb_func_end Bubbles_InitAll - - thumb_func_start Bubbles_Main -Bubbles_Main: @ 0x080AE3B4 - push {r4, r5, r6, r7, lr} - bl Fog1_Main - ldr r0, _080AE414 - ldr r5, [r0] - ldr r0, _080AE418 - adds r4, r5, r0 - ldrh r0, [r4] - adds r0, #1 - movs r6, #0 - strh r0, [r4] - ldr r1, _080AE41C - adds r7, r1, #0 - ldr r2, _080AE420 - movs r1, #0xe5 - lsls r1, r1, #3 - adds r3, r5, r1 - ldrh r1, [r3] - adds r1, r1, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r1] - cmp r0, r1 - bls _080AE40C - strh r6, [r4] - ldrh r0, [r3] - adds r0, #1 - strh r0, [r3] - ands r0, r7 - cmp r0, #7 - bls _080AE3F4 - strh r6, [r3] -_080AE3F4: - ldr r0, _080AE424 - adds r4, r5, r0 - ldrh r0, [r4] - bl CreateBubbleSprite - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - ands r0, r7 - cmp r0, #0xc - bls _080AE40C - strh r6, [r4] -_080AE40C: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080AE414: .4byte gUnknown_8526DE8 -_080AE418: .4byte 0x00000726 -_080AE41C: .4byte 0x0000FFFF -_080AE420: .4byte gUnknown_852AA8C -_080AE424: .4byte 0x0000072A - thumb_func_end Bubbles_Main - - thumb_func_start Bubbles_Finish -Bubbles_Finish: @ 0x080AE428 - push {lr} - bl Fog1_Finish - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080AE438 - movs r0, #1 - b _080AE43E -_080AE438: - bl DestroyBubbleSprites - movs r0, #0 -_080AE43E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end Bubbles_Finish - - thumb_func_start CreateBubbleSprite -CreateBubbleSprite: @ 0x080AE444 - push {r4, lr} - lsls r0, r0, #0x10 - ldr r1, _080AE4B4 - lsrs r0, r0, #0xe - adds r3, r0, r1 - adds r1, #2 - adds r0, r0, r1 - ldr r1, _080AE4B8 - ldrh r2, [r0] - ldrh r0, [r1] - subs r2, r2, r0 - ldr r0, _080AE4BC - movs r4, #0 - ldrsh r1, [r3, r4] - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - movs r3, #0 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x40 - beq _080AE4AC - ldr r0, _080AE4C0 - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - movs r2, #4 - orrs r0, r2 - strb r0, [r1, #5] - adds r3, r1, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r2, #2 - orrs r0, r2 - strb r0, [r3] - movs r0, #0 - strh r0, [r1, #0x2e] - strh r0, [r1, #0x30] - strh r0, [r1, #0x32] - ldr r0, _080AE4C4 - ldr r1, [r0] - ldr r0, _080AE4C8 - adds r1, r1, r0 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_080AE4AC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AE4B4: .4byte gUnknown_852AA9C -_080AE4B8: .4byte gUnknown_2021B3A -_080AE4BC: .4byte gUnknown_852AAE0 -_080AE4C0: .4byte gUnknown_20205AC -_080AE4C4: .4byte gUnknown_8526DE8 -_080AE4C8: .4byte 0x0000072C - thumb_func_end CreateBubbleSprite - - thumb_func_start DestroyBubbleSprites -DestroyBubbleSprites: @ 0x080AE4CC - push {r4, r5, lr} - ldr r0, _080AE51C - ldr r0, [r0] - ldr r1, _080AE520 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0 - beq _080AE516 - movs r4, #0 - ldr r5, _080AE524 -_080AE4E0: - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r2, r0, #2 - adds r0, r5, #0 - adds r0, #0x14 - adds r0, r2, r0 - ldr r1, [r0] - ldr r0, _080AE528 - cmp r1, r0 - bne _080AE4FA - adds r0, r2, r5 - bl DestroySprite -_080AE4FA: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x3f - bls _080AE4E0 - ldr r0, _080AE52C - bl FreeSpriteTilesByTag - ldr r0, _080AE51C - ldr r0, [r0] - ldr r1, _080AE520 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0] -_080AE516: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080AE51C: .4byte gUnknown_8526DE8 -_080AE520: .4byte 0x0000072C -_080AE524: .4byte gUnknown_20205AC -_080AE528: .4byte gUnknown_852AAE0 -_080AE52C: .4byte 0x00001205 - thumb_func_end DestroyBubbleSprites - - thumb_func_start UpdateBubbleSprite -UpdateBubbleSprite: @ 0x080AE530 - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0x2e] - movs r2, #0 - adds r0, #2 - strh r0, [r1, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #8 - ble _080AE570 - strh r2, [r1, #0x2e] - movs r3, #0x30 - ldrsh r0, [r1, r3] - cmp r0, #0 - bne _080AE562 - ldrh r0, [r1, #0x24] - adds r0, #1 - strh r0, [r1, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - ble _080AE570 - movs r0, #1 - strh r0, [r1, #0x30] - b _080AE570 -_080AE562: - ldrh r0, [r1, #0x24] - subs r0, #1 - strh r0, [r1, #0x24] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _080AE570 - strh r2, [r1, #0x30] -_080AE570: - ldrh r0, [r1, #0x22] - subs r0, #3 - strh r0, [r1, #0x22] - ldrh r0, [r1, #0x32] - adds r0, #1 - strh r0, [r1, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x77 - ble _080AE58A - adds r0, r1, #0 - bl DestroySprite -_080AE58A: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end UpdateBubbleSprite - - thumb_func_start UnusedSetCurrentAlternatingWeather -UnusedSetCurrentAlternatingWeather: @ 0x080AE590 - ldr r2, _080AE59C - strb r0, [r2] - ldr r0, _080AE5A0 - strh r1, [r0] - bx lr - .align 2, 0 -_080AE59C: .4byte gUnknown_2038864 -_080AE5A0: .4byte gUnknown_2038866 - thumb_func_end UnusedSetCurrentAlternatingWeather - - thumb_func_start Task_DoAlternatingWeather -Task_DoAlternatingWeather: @ 0x080AE5A4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080AE5C4 - adds r4, r1, r0 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _080AE5C8 - cmp r0, #1 - beq _080AE5F4 - b _080AE618 - .align 2, 0 -_080AE5C4: .4byte gUnknown_3005B68 -_080AE5C8: - ldrh r0, [r4, #0x1e] - subs r1, r0, #1 - strh r1, [r4, #0x1e] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _080AE618 - ldrb r0, [r4, #2] - bl SetNextWeather - ldr r1, _080AE5F0 - ldrh r0, [r4, #2] - strb r0, [r1] - movs r1, #0x96 - lsls r1, r1, #2 - adds r0, r1, #0 - strh r0, [r4, #0x1e] - ldrh r0, [r4] - adds r0, #1 - b _080AE616 - .align 2, 0 -_080AE5F0: .4byte gUnknown_2038864 -_080AE5F4: - ldrh r0, [r4, #0x1e] - subs r1, r0, #1 - strh r1, [r4, #0x1e] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _080AE618 - ldrb r0, [r4, #4] - bl SetNextWeather - ldr r1, _080AE620 - ldrh r0, [r4, #4] - strb r0, [r1] - movs r1, #0x96 - lsls r1, r1, #2 - adds r0, r1, #0 - strh r0, [r4, #0x1e] - movs r0, #0 -_080AE616: - strh r0, [r4] -_080AE618: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AE620: .4byte gUnknown_2038864 - thumb_func_end Task_DoAlternatingWeather - - thumb_func_start CreateAlternatingWeatherTask -CreateAlternatingWeatherTask: @ 0x080AE624 - push {lr} - ldr r0, _080AE650 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080AE654 - adds r1, r1, r0 - movs r2, #0x96 - lsls r2, r2, #2 - adds r0, r2, #0 - strh r0, [r1, #0x1e] - ldr r3, _080AE658 - ldrb r2, [r3] - cmp r2, #0xd - bne _080AE65C - movs r0, #0xc - b _080AE662 - .align 2, 0 -_080AE650: .4byte Task_DoAlternatingWeather -_080AE654: .4byte gUnknown_3005B68 -_080AE658: .4byte gUnknown_2038864 -_080AE65C: - cmp r2, #0xc - bne _080AE668 - movs r0, #0xd -_080AE662: - strh r0, [r1, #2] - strh r2, [r1, #4] - b _080AE674 -_080AE668: - movs r0, #0xd - strb r0, [r3] - movs r0, #0xc - strh r0, [r1, #2] - movs r0, #0xd - strh r0, [r1, #4] -_080AE674: - pop {r0} - bx r0 - thumb_func_end CreateAlternatingWeatherTask - - thumb_func_start SetSav1Weather -SetSav1Weather: @ 0x080AE678 - push {r4, r5, lr} - ldr r4, _080AE6A4 - ldr r1, [r4] - adds r1, #0x2e - ldrb r5, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl TranslateWeatherNum - ldr r1, [r4] - adds r1, #0x2e - strb r0, [r1] - ldr r0, [r4] - adds r0, #0x2e - ldrb r0, [r0] - adds r1, r5, #0 - bl UpdateRainCounter - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080AE6A4: .4byte gUnknown_3005AEC - thumb_func_end SetSav1Weather - - thumb_func_start GetSav1Weather -GetSav1Weather: @ 0x080AE6A8 - ldr r0, _080AE6B4 - ldr r0, [r0] - adds r0, #0x2e - ldrb r0, [r0] - bx lr - .align 2, 0 -_080AE6B4: .4byte gUnknown_3005AEC - thumb_func_end GetSav1Weather - - thumb_func_start SetSav1WeatherFromCurrMapHeader -SetSav1WeatherFromCurrMapHeader: @ 0x080AE6B8 - push {r4, r5, lr} - ldr r4, _080AE6E4 - ldr r0, [r4] - adds r0, #0x2e - ldrb r5, [r0] - ldr r0, _080AE6E8 - ldrb r0, [r0, #0x16] - bl TranslateWeatherNum - ldr r1, [r4] - adds r1, #0x2e - strb r0, [r1] - ldr r0, [r4] - adds r0, #0x2e - ldrb r0, [r0] - adds r1, r5, #0 - bl UpdateRainCounter - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080AE6E4: .4byte gUnknown_3005AEC -_080AE6E8: .4byte gUnknown_2036FB8 - thumb_func_end SetSav1WeatherFromCurrMapHeader - - thumb_func_start SetWeather -SetWeather: @ 0x080AE6EC - push {lr} - bl SetSav1Weather - bl GetSav1Weather - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl SetNextWeather - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetWeather - - thumb_func_start SetWeather_Unused -SetWeather_Unused: @ 0x080AE704 - push {lr} - bl SetSav1Weather - bl GetSav1Weather - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl SetCurrentAndNextWeather - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetWeather_Unused - - thumb_func_start DoCurrentWeather -DoCurrentWeather: @ 0x080AE71C - push {r4, r5, lr} - bl GetSav1Weather - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xf - bne _080AE748 - ldr r0, _080AE740 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AE73A - bl CreateAlternatingWeatherTask -_080AE73A: - ldr r0, _080AE744 - ldrb r4, [r0] - b _080AE76A - .align 2, 0 -_080AE740: .4byte Task_DoAlternatingWeather -_080AE744: .4byte gUnknown_2038864 -_080AE748: - ldr r5, _080AE778 - adds r0, r5, #0 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080AE764 - adds r0, r5, #0 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_080AE764: - ldr r1, _080AE77C - movs r0, #0xd - strb r0, [r1] -_080AE76A: - adds r0, r4, #0 - bl SetNextWeather - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080AE778: .4byte Task_DoAlternatingWeather -_080AE77C: .4byte gUnknown_2038864 - thumb_func_end DoCurrentWeather - - thumb_func_start ResumePausedWeather -ResumePausedWeather: @ 0x080AE780 - push {r4, r5, lr} - bl GetSav1Weather - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xf - bne _080AE7AC - ldr r0, _080AE7A4 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AE79E - bl CreateAlternatingWeatherTask -_080AE79E: - ldr r0, _080AE7A8 - ldrb r4, [r0] - b _080AE7CE - .align 2, 0 -_080AE7A4: .4byte Task_DoAlternatingWeather -_080AE7A8: .4byte gUnknown_2038864 -_080AE7AC: - ldr r5, _080AE7DC - adds r0, r5, #0 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080AE7C8 - adds r0, r5, #0 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_080AE7C8: - ldr r1, _080AE7E0 - movs r0, #0xd - strb r0, [r1] -_080AE7CE: - adds r0, r4, #0 - bl SetCurrentAndNextWeather - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080AE7DC: .4byte Task_DoAlternatingWeather -_080AE7E0: .4byte gUnknown_2038864 - thumb_func_end ResumePausedWeather - - thumb_func_start TranslateWeatherNum -TranslateWeatherNum: @ 0x080AE7E4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x15 - bhi _080AE8B0 - lsls r0, r0, #2 - ldr r1, _080AE7F8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080AE7F8: .4byte _080AE7FC -_080AE7FC: @ jump table - .4byte _080AE8B0 @ case 0 - .4byte _080AE854 @ case 1 - .4byte _080AE858 @ case 2 - .4byte _080AE85C @ case 3 - .4byte _080AE860 @ case 4 - .4byte _080AE864 @ case 5 - .4byte _080AE868 @ case 6 - .4byte _080AE86C @ case 7 - .4byte _080AE870 @ case 8 - .4byte _080AE874 @ case 9 - .4byte _080AE878 @ case 10 - .4byte _080AE87C @ case 11 - .4byte _080AE880 @ case 12 - .4byte _080AE884 @ case 13 - .4byte _080AE888 @ case 14 - .4byte _080AE88C @ case 15 - .4byte _080AE8B0 @ case 16 - .4byte _080AE8B0 @ case 17 - .4byte _080AE8B0 @ case 18 - .4byte _080AE8B0 @ case 19 - .4byte _080AE890 @ case 20 - .4byte _080AE898 @ case 21 -_080AE854: - movs r0, #1 - b _080AE8B2 -_080AE858: - movs r0, #2 - b _080AE8B2 -_080AE85C: - movs r0, #3 - b _080AE8B2 -_080AE860: - movs r0, #4 - b _080AE8B2 -_080AE864: - movs r0, #5 - b _080AE8B2 -_080AE868: - movs r0, #6 - b _080AE8B2 -_080AE86C: - movs r0, #7 - b _080AE8B2 -_080AE870: - movs r0, #8 - b _080AE8B2 -_080AE874: - movs r0, #9 - b _080AE8B2 -_080AE878: - movs r0, #0xa - b _080AE8B2 -_080AE87C: - movs r0, #0xb - b _080AE8B2 -_080AE880: - movs r0, #0xc - b _080AE8B2 -_080AE884: - movs r0, #0xd - b _080AE8B2 -_080AE888: - movs r0, #0xe - b _080AE8B2 -_080AE88C: - movs r0, #0xf - b _080AE8B2 -_080AE890: - ldr r1, _080AE894 - b _080AE89A - .align 2, 0 -_080AE894: .4byte gUnknown_852AAF8 -_080AE898: - ldr r1, _080AE8A8 -_080AE89A: - ldr r0, _080AE8AC - ldr r0, [r0] - adds r0, #0x2f - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - b _080AE8B2 - .align 2, 0 -_080AE8A8: .4byte gUnknown_852AAFC -_080AE8AC: .4byte gUnknown_3005AEC -_080AE8B0: - movs r0, #0 -_080AE8B2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end TranslateWeatherNum - - thumb_func_start UpdateWeatherPerDay -UpdateWeatherPerDay: @ 0x080AE8B8 - lsls r0, r0, #0x10 - ldr r1, _080AE8D4 - ldr r2, [r1] - adds r2, #0x2f - lsrs r0, r0, #0x10 - ldrb r1, [r2] - adds r0, r0, r1 - lsls r0, r0, #0x10 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r0 - lsrs r1, r1, #0x10 - strb r1, [r2] - bx lr - .align 2, 0 -_080AE8D4: .4byte gUnknown_3005AEC - thumb_func_end UpdateWeatherPerDay - - thumb_func_start UpdateRainCounter -UpdateRainCounter: @ 0x080AE8D8 - push {lr} - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r2, r0, #0x18 - cmp r0, r1 - beq _080AE8F2 - cmp r2, #3 - beq _080AE8EC - cmp r2, #5 - bne _080AE8F2 -_080AE8EC: - movs r0, #0x28 - bl IncrementGameStat -_080AE8F2: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end UpdateRainCounter - - thumb_func_start palette_bg_faded_fill_white -palette_bg_faded_fill_white: @ 0x080AE8F8 - push {lr} - sub sp, #4 - ldr r0, _080AE910 - str r0, [sp] - ldr r1, _080AE914 - ldr r2, _080AE918 - mov r0, sp - bl CpuFastSet - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_080AE910: .4byte 0x7FFF7FFF -_080AE914: .4byte gUnknown_20377B4 -_080AE918: .4byte 0x01000100 - thumb_func_end palette_bg_faded_fill_white - - thumb_func_start sub_080AE91C -sub_080AE91C: @ 0x080AE91C - push {lr} - sub sp, #4 - movs r0, #0 - str r0, [sp] - ldr r1, _080AE934 - ldr r2, _080AE938 - mov r0, sp - bl CpuFastSet - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_080AE934: .4byte gUnknown_20377B4 -_080AE938: .4byte 0x01000100 - thumb_func_end sub_080AE91C - - thumb_func_start pal_fill_for_maplights -pal_fill_for_maplights: @ 0x080AE93C - push {r4, lr} - bl GetLastUsedWarpMapType - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl GetCurrentMapType - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl GetMapPairFadeFromType - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _080AE966 - cmp r0, #1 - beq _080AE974 - b _080AE980 -_080AE966: - bl sub_080AE91C - movs r0, #0 - movs r1, #0 - bl FadeScreen - b _080AE980 -_080AE974: - bl palette_bg_faded_fill_white - movs r0, #2 - movs r1, #0 - bl FadeScreen -_080AE980: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pal_fill_for_maplights - - thumb_func_start sub_080AE988 -sub_080AE988: @ 0x080AE988 - push {lr} - bl palette_bg_faded_fill_white - movs r0, #2 - movs r1, #8 - bl FadeScreen - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080AE988 - - thumb_func_start pal_fill_black -pal_fill_black: @ 0x080AE99C - push {lr} - bl sub_080AE91C - movs r0, #0 - movs r1, #0 - bl FadeScreen - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pal_fill_black - - thumb_func_start WarpFadeScreen -WarpFadeScreen: @ 0x080AE9B0 - push {r4, lr} - bl GetCurrentMapType - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl GetDestinationWarpMapHeader - ldrb r1, [r0, #0x17] - adds r0, r4, #0 - bl sub_081373D0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _080AE9D6 - cmp r0, #1 - beq _080AE9E0 - b _080AE9E8 -_080AE9D6: - movs r0, #1 - movs r1, #0 - bl FadeScreen - b _080AE9E8 -_080AE9E0: - movs r0, #3 - movs r1, #0 - bl FadeScreen -_080AE9E8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WarpFadeScreen - - thumb_func_start sub_080AE9F0 -sub_080AE9F0: @ 0x080AE9F0 - push {lr} - lsls r0, r0, #0x18 - movs r1, #0 - cmp r0, #0 - bne _080AE9FC - movs r1, #1 -_080AE9FC: - adds r0, r1, #0 - bl sub_0808BA0C - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080AE9F0 - - thumb_func_start task0A_nop_for_a_while -task0A_nop_for_a_while: @ 0x080AEA08 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl WaitForWeatherFadeIn - cmp r0, #1 - bne _080AEA1C - adds r0, r4, #0 - bl DestroyTask -_080AEA1C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end task0A_nop_for_a_while - - thumb_func_start sub_080AEA24 -sub_080AEA24: @ 0x080AEA24 - push {lr} - bl sub_080987DC - bl Overworld_PlaySpecialMapMusic - bl pal_fill_black - ldr r0, _080AEA40 - movs r1, #0xa - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080AEA40: .4byte task0A_nop_for_a_while - thumb_func_end sub_080AEA24 - - thumb_func_start task0A_asap_script_env_2_enable_and_set_ctx_running -task0A_asap_script_env_2_enable_and_set_ctx_running: @ 0x080AEA44 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl WaitForWeatherFadeIn - cmp r0, #1 - bne _080AEA5C - adds r0, r4, #0 - bl DestroyTask - bl EnableBothScriptContexts -_080AEA5C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end task0A_asap_script_env_2_enable_and_set_ctx_running - - thumb_func_start FieldCallback_ReturnToEventScript2 -FieldCallback_ReturnToEventScript2: @ 0x080AEA64 - push {lr} - bl sub_080987DC - bl Overworld_PlaySpecialMapMusic - bl pal_fill_black - ldr r0, _080AEA80 - movs r1, #0xa - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080AEA80: .4byte task0A_asap_script_env_2_enable_and_set_ctx_running - thumb_func_end FieldCallback_ReturnToEventScript2 - - thumb_func_start sub_080AEA84 -sub_080AEA84: @ 0x080AEA84 - push {lr} - bl sub_080987DC - bl pal_fill_black - ldr r0, _080AEA9C - movs r1, #0xa - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080AEA9C: .4byte task0A_asap_script_env_2_enable_and_set_ctx_running - thumb_func_end sub_080AEA84 - - thumb_func_start task_mpl_807DD60 -task_mpl_807DD60: @ 0x080AEAA0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r2, _080AEAC4 - adds r4, r0, r2 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _080AEADA - cmp r0, #1 - bgt _080AEAC8 - cmp r0, #0 - beq _080AEACE - b _080AEB0A - .align 2, 0 -_080AEAC4: .4byte gUnknown_3005B60 -_080AEAC8: - cmp r0, #2 - beq _080AEAF8 - b _080AEB0A -_080AEACE: - bl sub_080B27FC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0xa] - b _080AEAF0 -_080AEADA: - movs r1, #0xa - ldrsh r0, [r4, r1] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldrb r0, [r1, #4] - cmp r0, #1 - beq _080AEB0A - bl pal_fill_for_maplights -_080AEAF0: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _080AEB0A -_080AEAF8: - bl WaitForWeatherFadeIn - cmp r0, #1 - bne _080AEB0A - bl sub_080987E8 - adds r0, r5, #0 - bl DestroyTask -_080AEB0A: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end task_mpl_807DD60 - - thumb_func_start sub_080AEB10 -sub_080AEB10: @ 0x080AEB10 - push {lr} - bl sub_080987DC - bl Overworld_PlaySpecialMapMusic - bl sub_080AE91C - ldr r0, _080AEB2C - movs r1, #0xa - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080AEB2C: .4byte task_mpl_807DD60 - thumb_func_end sub_080AEB10 - - thumb_func_start sub_080AEB30 -sub_080AEB30: @ 0x080AEB30 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080AEB54 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _080AEB64 - cmp r0, #1 - bgt _080AEB58 - cmp r0, #0 - beq _080AEB5E - b _080AEBAA - .align 2, 0 -_080AEB54: .4byte gUnknown_3005B60 -_080AEB58: - cmp r0, #2 - beq _080AEB94 - b _080AEBAA -_080AEB5E: - bl sub_0800A8D4 - b _080AEB8C -_080AEB64: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AEB88 - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - movs r1, #0xe1 - lsls r1, r1, #0x13 - cmp r0, r1 - ble _080AEBAA - movs r0, #0xc0 - lsls r0, r0, #7 - bl sub_08010C60 - b _080AEBAA -_080AEB88: - bl pal_fill_for_maplights -_080AEB8C: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _080AEBAA -_080AEB94: - bl WaitForWeatherFadeIn - cmp r0, #1 - bne _080AEBAA - bl sub_08009AB0 - bl sub_080987E8 - adds r0, r5, #0 - bl DestroyTask -_080AEBAA: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_080AEB30 - - thumb_func_start sub_080AEBB0 -sub_080AEBB0: @ 0x080AEBB0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080AEBD4 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _080AEBE4 - cmp r0, #1 - bgt _080AEBD8 - cmp r0, #0 - beq _080AEBDE - b _080AEC08 - .align 2, 0 -_080AEBD4: .4byte gUnknown_3005B60 -_080AEBD8: - cmp r0, #2 - beq _080AEBF6 - b _080AEC08 -_080AEBDE: - bl sub_0800A8D4 - b _080AEBEE -_080AEBE4: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080AEC08 -_080AEBEE: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _080AEC08 -_080AEBF6: - bl sub_08009AB0 - bl ResetAllMultiplayerState - bl sub_080987E8 - adds r0, r5, #0 - bl DestroyTask -_080AEC08: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080AEBB0 - - thumb_func_start sub_080AEC10 -sub_080AEC10: @ 0x080AEC10 - push {lr} - bl sub_080987DC - bl Overworld_PlaySpecialMapMusic - bl sub_080AE91C - ldr r0, _080AEC2C - movs r1, #0xa - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080AEC2C: .4byte sub_080AEB30 - thumb_func_end sub_080AEC10 - - thumb_func_start sub_080AEC30 -sub_080AEC30: @ 0x080AEC30 - push {r4, lr} - sub sp, #4 - mov r4, sp - adds r4, #2 - 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, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl MetatileBehavior_IsDoor - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080AEC68 - ldr r1, _080AEC64 - b _080AEC7A - .align 2, 0 -_080AEC64: .4byte sub_080AED34 -_080AEC68: - adds r0, r4, #0 - bl MetatileBehavior_IsNonAnimDoor - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080AEC8C - cmp r0, #1 - bne _080AEC7A - ldr r1, _080AEC90 -_080AEC7A: - adds r0, r1, #0 - movs r1, #0xa - bl CreateTask - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AEC8C: .4byte task_map_chg_seq_0807E2CC -_080AEC90: .4byte task_map_chg_seq_0807E20C - thumb_func_end sub_080AEC30 - - thumb_func_start mapldr_default -mapldr_default: @ 0x080AEC94 - push {lr} - bl Overworld_PlaySpecialMapMusic - bl pal_fill_for_maplights - bl sub_080AEC30 - bl sub_080987DC - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end mapldr_default - - thumb_func_start sub_080AECAC -sub_080AECAC: @ 0x080AECAC - push {lr} - bl Overworld_PlaySpecialMapMusic - bl sub_080AE988 - bl sub_080AEC30 - bl sub_080987DC - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080AECAC - - thumb_func_start sub_080AECC4 -sub_080AECC4: @ 0x080AECC4 - push {lr} - bl sub_081D5ED4 - cmp r0, #0 - bne _080AECD2 - bl Overworld_PlaySpecialMapMusic -_080AECD2: - bl pal_fill_black - bl sub_080AEC30 - bl sub_080987DC - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080AECC4 - - thumb_func_start sub_080AECE4 -sub_080AECE4: @ 0x080AECE4 - push {lr} - bl Overworld_PlaySpecialMapMusic - bl pal_fill_for_maplights - movs r0, #0x2e - bl sub_080A306C - ldr r0, _080AED04 - movs r1, #0xa - bl CreateTask - bl sub_080987DC - pop {r0} - bx r0 - .align 2, 0 -_080AED04: .4byte task0A_mpl_807E31C - thumb_func_end sub_080AECE4 - - thumb_func_start sub_080AED08 -sub_080AED08: @ 0x080AED08 - push {lr} - bl Overworld_PlaySpecialMapMusic - bl pal_fill_for_maplights - movs r0, #0x2e - bl sub_080A306C - ldr r0, _080AED30 - movs r1, #0xa - bl CreateTask - bl sub_080987DC - movs r0, #0xe - bl sub_08084EA8 - pop {r0} - bx r0 - .align 2, 0 -_080AED30: .4byte task_map_chg_seq_0807E2CC - thumb_func_end sub_080AED08 - - thumb_func_start sub_080AED34 -sub_080AED34: @ 0x080AED34 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _080AED60 - adds r5, r0, r1 - adds r6, r5, #0 - adds r6, #0xc - adds r7, r5, #0 - adds r7, #0xe - movs r2, #8 - ldrsh r0, [r5, r2] - adds r2, r1, #0 - cmp r0, #4 - bhi _080AEE46 - lsls r0, r0, #2 - ldr r1, _080AED64 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080AED60: .4byte gUnknown_3005B60 -_080AED64: .4byte _080AED68 -_080AED68: @ jump table - .4byte _080AED7C @ case 0 - .4byte _080AEDA0 @ case 1 - .4byte _080AEDD8 @ case 2 - .4byte _080AEE1C @ case 3 - .4byte _080AEE3C @ case 4 -_080AED7C: - movs r0, #0 - bl sub_080AE9F0 - bl FreezeEventObjects - adds r0, r6, #0 - adds r1, r7, #0 - bl PlayerGetDestCoords - movs r1, #0 - ldrsh r0, [r6, r1] - movs r2, #0 - ldrsh r1, [r7, r2] - bl FieldSetDoorOpened - movs r0, #1 - strh r0, [r5, #8] - b _080AEE46 -_080AEDA0: - bl WaitForWeatherFadeIn - cmp r0, #0 - beq _080AEE46 - movs r0, #1 - bl sub_080AE9F0 - movs r0, #0xff - movs r1, #0 - movs r2, #0 - bl GetEventObjectIdByLocalIdAndMap - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080AEDD4 - adds r0, r0, r1 - movs r1, #8 - bl EventObjectSetHeldMovement - movs r0, #2 - strh r0, [r5, #8] - b _080AEE46 - .align 2, 0 -_080AEDD4: .4byte gUnknown_2036FF0 -_080AEDD8: - bl walkrun_is_standing_still - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080AEE46 - movs r1, #0 - ldrsh r0, [r6, r1] - movs r2, #0 - ldrsh r1, [r7, r2] - bl FieldAnimateDoorClose - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - strh r0, [r5, #0xa] - movs r0, #0xff - movs r1, #0 - movs r2, #0 - bl GetEventObjectIdByLocalIdAndMap - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080AEE18 - adds r0, r0, r1 - bl EventObjectClearHeldMovementIfFinished - movs r0, #3 - strh r0, [r5, #8] - b _080AEE46 - .align 2, 0 -_080AEE18: .4byte gUnknown_2036FF0 -_080AEE1C: - movs r1, #0xa - ldrsh r0, [r5, r1] - cmp r0, #0 - blt _080AEE32 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldrb r0, [r1, #4] - cmp r0, #1 - beq _080AEE46 -_080AEE32: - bl UnfreezeEventObjects - movs r0, #4 - strh r0, [r5, #8] - b _080AEE46 -_080AEE3C: - bl sub_080987E8 - adds r0, r4, #0 - bl DestroyTask -_080AEE46: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_080AED34 - - thumb_func_start task_map_chg_seq_0807E20C -task_map_chg_seq_0807E20C: @ 0x080AEE4C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _080AEE78 - adds r5, r0, r1 - adds r6, r5, #0 - adds r6, #0xc - adds r7, r5, #0 - adds r7, #0xe - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #1 - beq _080AEE9E - cmp r0, #1 - bgt _080AEE7C - cmp r0, #0 - beq _080AEE86 - b _080AEF06 - .align 2, 0 -_080AEE78: .4byte gUnknown_3005B60 -_080AEE7C: - cmp r0, #2 - beq _080AEEE8 - cmp r0, #3 - beq _080AEEFC - b _080AEF06 -_080AEE86: - movs r0, #0 - bl sub_080AE9F0 - bl FreezeEventObjects - adds r0, r6, #0 - adds r1, r7, #0 - bl PlayerGetDestCoords - movs r0, #1 - strh r0, [r5, #8] - b _080AEF06 -_080AEE9E: - bl WaitForWeatherFadeIn - cmp r0, #0 - beq _080AEF06 - movs r0, #1 - bl sub_080AE9F0 - movs r0, #0xff - movs r1, #0 - movs r2, #0 - bl GetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #3 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _080AEEE4 - adds r4, r4, r0 - bl GetPlayerFacingDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_08092CF8 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetHeldMovement - movs r0, #2 - strh r0, [r5, #8] - b _080AEF06 - .align 2, 0 -_080AEEE4: .4byte gUnknown_2036FF0 -_080AEEE8: - bl walkrun_is_standing_still - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080AEF06 - bl UnfreezeEventObjects - movs r0, #3 - strh r0, [r5, #8] - b _080AEF06 -_080AEEFC: - bl sub_080987E8 - adds r0, r4, #0 - bl DestroyTask -_080AEF06: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end task_map_chg_seq_0807E20C - - thumb_func_start task_map_chg_seq_0807E2CC -task_map_chg_seq_0807E2CC: @ 0x080AEF0C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _080AEF2C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _080AEF30 - cmp r0, #1 - beq _080AEF40 - b _080AEF56 - .align 2, 0 -_080AEF2C: .4byte gUnknown_3005B60 -_080AEF30: - bl FreezeEventObjects - bl sub_080987DC - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _080AEF56 -_080AEF40: - bl WaitForWeatherFadeIn - cmp r0, #0 - beq _080AEF56 - bl UnfreezeEventObjects - bl sub_080987E8 - adds r0, r5, #0 - bl DestroyTask -_080AEF56: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end task_map_chg_seq_0807E2CC - - thumb_func_start sub_080AEF5C -sub_080AEF5C: @ 0x080AEF5C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl WaitForWeatherFadeIn - cmp r0, #1 - bne _080AEF78 - adds r0, r4, #0 - bl DestroyTask - ldr r0, _080AEF80 - movs r1, #0x50 - bl CreateTask -_080AEF78: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AEF80: .4byte sub_0809F30C - thumb_func_end sub_080AEF5C - - thumb_func_start sub_080AEF84 -sub_080AEF84: @ 0x080AEF84 - push {lr} - bl pal_fill_black - ldr r0, _080AEF9C - movs r1, #0x50 - bl CreateTask - bl sub_080987DC - pop {r0} - bx r0 - .align 2, 0 -_080AEF9C: .4byte sub_080AEF5C - thumb_func_end sub_080AEF84 - - thumb_func_start sub_080AEFA0 -sub_080AEFA0: @ 0x080AEFA0 - push {lr} - bl sub_0809F2F0 - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end sub_080AEFA0 - - thumb_func_start task_mpl_807E3C8 -task_mpl_807E3C8: @ 0x080AEFAC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl WaitForWeatherFadeIn - cmp r0, #1 - bne _080AEFC8 - bl sub_080987E8 - adds r0, r4, #0 - bl DestroyTask - bl ScriptUnfreezeEventObjects -_080AEFC8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end task_mpl_807E3C8 - - thumb_func_start sub_080AEFD0 -sub_080AEFD0: @ 0x080AEFD0 - push {lr} - bl sub_080987DC - bl pal_fill_black - ldr r0, _080AEFE8 - movs r1, #0xa - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080AEFE8: .4byte task_mpl_807E3C8 - thumb_func_end sub_080AEFD0 - - thumb_func_start sub_080AEFEC -sub_080AEFEC: @ 0x080AEFEC - push {lr} - bl sub_080987DC - bl Overworld_PlaySpecialMapMusic - bl pal_fill_black - ldr r0, _080AF008 - movs r1, #0xa - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080AF008: .4byte task_mpl_807E3C8 - thumb_func_end sub_080AEFEC - - thumb_func_start sub_080AF00C -sub_080AF00C: @ 0x080AF00C - ldr r0, _080AF014 - ldrb r0, [r0, #7] - lsrs r0, r0, #7 - bx lr - .align 2, 0 -_080AF014: .4byte gUnknown_2037C74 - thumb_func_end sub_080AF00C - - thumb_func_start WaitForWeatherFadeIn -WaitForWeatherFadeIn: @ 0x080AF018 - push {lr} - bl IsWeatherNotFadingIn - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080AF02A - movs r0, #0 - b _080AF02C -_080AF02A: - movs r0, #1 -_080AF02C: - pop {r1} - bx r1 - thumb_func_end WaitForWeatherFadeIn - - thumb_func_start DoWarp -DoWarp: @ 0x080AF030 - push {lr} - bl sub_080987DC - bl TryFadeOutOldMapMusic - bl WarpFadeScreen - bl PlayRainStoppingSoundEffect - movs r0, #9 - bl sub_080A306C - ldr r0, _080AF05C - ldr r1, _080AF060 - str r1, [r0] - ldr r0, _080AF064 - movs r1, #0xa - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080AF05C: .4byte gUnknown_3005B0C -_080AF060: .4byte mapldr_default -_080AF064: .4byte sub_080AF308 - thumb_func_end DoWarp - - thumb_func_start DoDiveWarp -DoDiveWarp: @ 0x080AF068 - push {lr} - bl sub_080987DC - bl TryFadeOutOldMapMusic - bl WarpFadeScreen - bl PlayRainStoppingSoundEffect - ldr r0, _080AF08C - ldr r1, _080AF090 - str r1, [r0] - ldr r0, _080AF094 - movs r1, #0xa - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080AF08C: .4byte gUnknown_3005B0C -_080AF090: .4byte mapldr_default -_080AF094: .4byte sub_080AF308 - thumb_func_end DoDiveWarp - - thumb_func_start ScrCmd_pokemartdecoration2 -ScrCmd_pokemartdecoration2: @ 0x080AF098 - push {lr} - bl sub_080987DC - bl TryFadeOutOldMapMusic - movs r0, #3 - movs r1, #8 - bl FadeScreen - bl PlayRainStoppingSoundEffect - ldr r0, _080AF0C0 - ldr r1, _080AF0C4 - str r1, [r0] - ldr r0, _080AF0C8 - movs r1, #0xa - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080AF0C0: .4byte gUnknown_3005B0C -_080AF0C4: .4byte sub_080AECAC -_080AF0C8: .4byte sub_080AF308 - thumb_func_end ScrCmd_pokemartdecoration2 - - thumb_func_start DoDoorWarp -DoDoorWarp: @ 0x080AF0CC - push {lr} - bl sub_080987DC - ldr r0, _080AF0E4 - ldr r1, _080AF0E8 - str r1, [r0] - ldr r0, _080AF0EC - movs r1, #0xa - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080AF0E4: .4byte gUnknown_3005B0C -_080AF0E8: .4byte mapldr_default -_080AF0EC: .4byte sub_080AF384 - thumb_func_end DoDoorWarp - - thumb_func_start DoFallWarp -DoFallWarp: @ 0x080AF0F0 - push {lr} - bl DoDiveWarp - ldr r1, _080AF100 - ldr r0, _080AF104 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080AF100: .4byte gUnknown_3005B0C -_080AF104: .4byte PrintAllVariableNumsOnCardPage2 - thumb_func_end DoFallWarp - - thumb_func_start sub_080AF108 -sub_080AF108: @ 0x080AF108 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_080987DC - adds r0, r4, #0 - movs r1, #0xa - bl sub_080B65A4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080AF108 - - thumb_func_start sub_080AF124 -sub_080AF124: @ 0x080AF124 - push {lr} - bl sub_080987DC - movs r0, #0xa - bl sub_080B6D30 - pop {r0} - bx r0 - thumb_func_end sub_080AF124 - - thumb_func_start sub_080AF134 -sub_080AF134: @ 0x080AF134 - push {lr} - bl sub_080987DC - movs r0, #0xa - bl sub_080B71CC - pop {r0} - bx r0 - thumb_func_end sub_080AF134 - - thumb_func_start sub_080AF144 -sub_080AF144: @ 0x080AF144 - push {lr} - bl sub_080987DC - bl TryFadeOutOldMapMusic - bl WarpFadeScreen - movs r0, #0x2d - bl sub_080A306C - ldr r0, _080AF16C - movs r1, #0xa - bl CreateTask - ldr r1, _080AF170 - ldr r0, _080AF174 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080AF16C: .4byte sub_080AF308 -_080AF170: .4byte gUnknown_3005B0C -_080AF174: .4byte sub_080AECE4 - thumb_func_end sub_080AF144 - - thumb_func_start sub_080AF178 -sub_080AF178: @ 0x080AF178 - push {lr} - movs r0, #1 - bl sub_08084EA8 - bl sub_080987DC - bl SaveEventObjects - bl TryFadeOutOldMapMusic - bl WarpFadeScreen - movs r0, #0x2d - bl sub_080A306C - ldr r0, _080AF1A8 - movs r1, #0xa - bl CreateTask - ldr r1, _080AF1AC - ldr r0, _080AF1B0 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080AF1A8: .4byte sub_080AF308 -_080AF1AC: .4byte gUnknown_3005B0C -_080AF1B0: .4byte sub_080AED08 - thumb_func_end sub_080AF178 - - thumb_func_start sub_080AF1B4 -sub_080AF1B4: @ 0x080AF1B4 - push {lr} - bl sub_080987DC - bl WarpFadeScreen - ldr r0, _080AF1D0 - movs r1, #0xa - bl CreateTask - ldr r1, _080AF1D4 - ldr r0, _080AF1D8 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080AF1D0: .4byte sub_080AF308 -_080AF1D4: .4byte gUnknown_3005B0C -_080AF1D8: .4byte sub_080FBFD8 - thumb_func_end sub_080AF1B4 - - thumb_func_start sub_080AF1DC -sub_080AF1DC: @ 0x080AF1DC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080AF200 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _080AF210 - cmp r0, #1 - bgt _080AF204 - cmp r0, #0 - beq _080AF20A - b _080AF23A - .align 2, 0 -_080AF200: .4byte gUnknown_3005B60 -_080AF204: - cmp r0, #2 - beq _080AF22A - b _080AF23A -_080AF20A: - bl sub_080987DC - b _080AF222 -_080AF210: - bl sub_080AF00C - cmp r0, #0 - bne _080AF23A - bl BGMusicStopped - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080AF23A -_080AF222: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _080AF23A -_080AF22A: - bl WarpIntoMap - ldr r0, _080AF240 - bl SetMainCallback2 - adds r0, r5, #0 - bl DestroyTask -_080AF23A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080AF240: .4byte sub_080859DC - thumb_func_end sub_080AF1DC - - thumb_func_start sub_080AF244 -sub_080AF244: @ 0x080AF244 - push {lr} - bl sub_080987DC - bl TryFadeOutOldMapMusic - bl WarpFadeScreen - movs r0, #9 - bl sub_080A306C - ldr r0, _080AF264 - movs r1, #0xa - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080AF264: .4byte sub_080AF1DC - thumb_func_end sub_080AF244 - - thumb_func_start Task_ReturnToWorldFromLinkRoom -Task_ReturnToWorldFromLinkRoom: @ 0x080AF268 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080AF28C - adds r4, r0, r1 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _080AF2AE - cmp r0, #1 - bgt _080AF290 - cmp r0, #0 - beq _080AF296 - b _080AF2E4 - .align 2, 0 -_080AF28C: .4byte gUnknown_3005B68 -_080AF290: - cmp r0, #2 - beq _080AF2CC - b _080AF2E4 -_080AF296: - bl sub_08009B44 - movs r0, #1 - movs r1, #0 - bl FadeScreen - bl TryFadeOutOldMapMusic - movs r0, #9 - bl sub_080A306C - b _080AF2C4 -_080AF2AE: - bl sub_080AF00C - cmp r0, #0 - bne _080AF2E4 - bl BGMusicStopped - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080AF2E4 - bl sub_0800A7F8 -_080AF2C4: - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - b _080AF2E4 -_080AF2CC: - ldr r0, _080AF2EC - ldrb r0, [r0] - cmp r0, #0 - bne _080AF2E4 - bl WarpIntoMap - ldr r0, _080AF2F0 - bl SetMainCallback2 - adds r0, r5, #0 - bl DestroyTask -_080AF2E4: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080AF2EC: .4byte gUnknown_30031C4 -_080AF2F0: .4byte CB2_LoadMap - thumb_func_end Task_ReturnToWorldFromLinkRoom - - thumb_func_start sub_080AF2F4 -sub_080AF2F4: @ 0x080AF2F4 - push {lr} - ldr r0, _080AF304 - movs r1, #0xa - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080AF304: .4byte Task_ReturnToWorldFromLinkRoom - thumb_func_end sub_080AF2F4 - - thumb_func_start sub_080AF308 -sub_080AF308: @ 0x080AF308 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _080AF32C - adds r4, r0, r1 - movs r0, #8 - ldrsh r5, [r4, r0] - cmp r5, #1 - beq _080AF340 - cmp r5, #1 - bgt _080AF330 - cmp r5, #0 - beq _080AF336 - b _080AF378 - .align 2, 0 -_080AF32C: .4byte gUnknown_3005B60 -_080AF330: - cmp r5, #2 - beq _080AF368 - b _080AF378 -_080AF336: - bl FreezeEventObjects - bl sub_080987DC - b _080AF360 -_080AF340: - bl sub_080AF00C - cmp r0, #0 - bne _080AF378 - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080AF356 - bl ClearMirageTowerPulseBlendEffect - strh r5, [r4, #0xa] -_080AF356: - bl BGMusicStopped - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080AF378 -_080AF360: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _080AF378 -_080AF368: - bl WarpIntoMap - ldr r0, _080AF380 - bl SetMainCallback2 - adds r0, r6, #0 - bl DestroyTask -_080AF378: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080AF380: .4byte CB2_LoadMap - thumb_func_end sub_080AF308 - - thumb_func_start sub_080AF384 -sub_080AF384: @ 0x080AF384 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080AF3B4 - adds r5, r1, r0 - adds r4, r5, #0 - adds r4, #0xc - adds r6, r5, #0 - adds r6, #0xe - movs r2, #8 - ldrsh r1, [r5, r2] - adds r2, r0, #0 - cmp r1, #4 - bls _080AF3A8 - b _080AF4E4 -_080AF3A8: - lsls r0, r1, #2 - ldr r1, _080AF3B8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080AF3B4: .4byte gUnknown_3005B60 -_080AF3B8: .4byte _080AF3BC -_080AF3BC: @ jump table - .4byte _080AF3D0 @ case 0 - .4byte _080AF40C @ case 1 - .4byte _080AF468 @ case 2 - .4byte _080AF4B4 @ case 3 - .4byte _080AF4D0 @ case 4 -_080AF3D0: - bl FreezeEventObjects - adds r0, r4, #0 - adds r1, r6, #0 - bl PlayerGetDestCoords - movs r1, #0 - ldrsh r0, [r4, r1] - movs r2, #0 - ldrsh r1, [r6, r2] - subs r1, #1 - bl GetDoorSoundEffect - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_080A306C - movs r1, #0 - ldrsh r0, [r4, r1] - movs r2, #0 - ldrsh r1, [r6, r2] - subs r1, #1 - bl FieldAnimateDoorOpen - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - strh r0, [r5, #0xa] - movs r0, #1 - strh r0, [r5, #8] - b _080AF4E4 -_080AF40C: - movs r1, #0xa - ldrsh r0, [r5, r1] - cmp r0, #0 - blt _080AF422 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldrb r0, [r1, #4] - cmp r0, #1 - beq _080AF4E4 -_080AF422: - movs r0, #0xff - movs r1, #0 - movs r2, #0 - bl GetEventObjectIdByLocalIdAndMap - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _080AF464 - adds r0, r0, r4 - bl EventObjectClearHeldMovementIfActive - movs r0, #0xff - movs r1, #0 - movs r2, #0 - bl GetEventObjectIdByLocalIdAndMap - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #9 - bl EventObjectSetHeldMovement - movs r0, #2 - strh r0, [r5, #8] - b _080AF4E4 - .align 2, 0 -_080AF464: .4byte gUnknown_2036FF0 -_080AF468: - bl walkrun_is_standing_still - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080AF4E4 - movs r2, #0 - ldrsh r0, [r4, r2] - movs r2, #0 - ldrsh r1, [r6, r2] - subs r1, #1 - bl FieldAnimateDoorClose - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - strh r0, [r5, #0xa] - movs r0, #0xff - movs r1, #0 - movs r2, #0 - bl GetEventObjectIdByLocalIdAndMap - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080AF4B0 - adds r0, r0, r1 - bl EventObjectClearHeldMovementIfFinished - movs r0, #0 - bl sub_080AE9F0 - movs r0, #3 - strh r0, [r5, #8] - b _080AF4E4 - .align 2, 0 -_080AF4B0: .4byte gUnknown_2036FF0 -_080AF4B4: - movs r1, #0xa - ldrsh r0, [r5, r1] - cmp r0, #0 - blt _080AF4CA - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldrb r0, [r1, #4] - cmp r0, #1 - beq _080AF4E4 -_080AF4CA: - movs r0, #4 - strh r0, [r5, #8] - b _080AF4E4 -_080AF4D0: - bl TryFadeOutOldMapMusic - bl WarpFadeScreen - bl PlayRainStoppingSoundEffect - movs r0, #0 - strh r0, [r5, #8] - ldr r0, _080AF4EC - str r0, [r5] -_080AF4E4: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080AF4EC: .4byte sub_080AF308 - thumb_func_end sub_080AF384 - - thumb_func_start task0A_fade_n_map_maybe -task0A_fade_n_map_maybe: @ 0x080AF4F0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080AF514 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _080AF528 - cmp r0, #1 - bgt _080AF518 - cmp r0, #0 - beq _080AF51E - b _080AF552 - .align 2, 0 -_080AF514: .4byte gUnknown_3005B60 -_080AF518: - cmp r0, #2 - beq _080AF542 - b _080AF552 -_080AF51E: - bl FreezeEventObjects - bl sub_080987DC - b _080AF53A -_080AF528: - bl sub_080AF00C - cmp r0, #0 - bne _080AF552 - bl BGMusicStopped - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080AF552 -_080AF53A: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _080AF552 -_080AF542: - bl WarpIntoMap - ldr r0, _080AF558 - bl SetMainCallback2 - adds r0, r5, #0 - bl DestroyTask -_080AF552: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080AF558: .4byte sub_0808598C - thumb_func_end task0A_fade_n_map_maybe - - thumb_func_start sub_080AF55C -sub_080AF55C: @ 0x080AF55C - push {lr} - bl sub_080987DC - bl TryFadeOutOldMapMusic - bl WarpFadeScreen - bl PlayRainStoppingSoundEffect - movs r0, #9 - bl sub_080A306C - ldr r0, _080AF588 - ldr r1, _080AF58C - str r1, [r0] - ldr r0, _080AF590 - movs r1, #0xa - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080AF588: .4byte gUnknown_3005B0C -_080AF58C: .4byte sub_080AECC4 -_080AF590: .4byte task0A_fade_n_map_maybe - thumb_func_end sub_080AF55C - - thumb_func_start SetFlashScanlineEffectWindowBoundary -SetFlashScanlineEffectWindowBoundary: @ 0x080AF594 - push {lr} - cmp r1, #0xa0 - bhi _080AF5BC - cmp r2, #0 - bge _080AF5A0 - movs r2, #0 -_080AF5A0: - cmp r2, #0xff - ble _080AF5A6 - movs r2, #0xff -_080AF5A6: - cmp r3, #0 - bge _080AF5AC - movs r3, #0 -_080AF5AC: - cmp r3, #0xff - ble _080AF5B2 - movs r3, #0xff -_080AF5B2: - lsls r1, r1, #1 - adds r1, r1, r0 - lsls r0, r2, #8 - orrs r0, r3 - strh r0, [r1] -_080AF5BC: - pop {r0} - bx r0 - thumb_func_end SetFlashScanlineEffectWindowBoundary - - thumb_func_start sub_080AF5C0 -sub_080AF5C0: @ 0x080AF5C0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - str r0, [sp] - mov sl, r1 - mov sb, r2 - adds r6, r3, #0 - mov r8, r6 - movs r7, #0 - cmp r6, #0 - blt _080AF63C -_080AF5DC: - mov r0, sb - subs r1, r0, r7 - mov r0, sl - subs r4, r0, r6 - adds r5, r0, r6 - ldr r0, [sp] - adds r2, r4, #0 - adds r3, r5, #0 - bl SetFlashScanlineEffectWindowBoundary - mov r0, sb - adds r1, r0, r7 - ldr r0, [sp] - adds r2, r4, #0 - adds r3, r5, #0 - bl SetFlashScanlineEffectWindowBoundary - mov r0, sb - subs r1, r0, r6 - mov r0, sl - subs r4, r0, r7 - adds r5, r0, r7 - ldr r0, [sp] - adds r2, r4, #0 - adds r3, r5, #0 - bl SetFlashScanlineEffectWindowBoundary - mov r0, sb - adds r1, r0, r6 - ldr r0, [sp] - adds r2, r4, #0 - adds r3, r5, #0 - bl SetFlashScanlineEffectWindowBoundary - mov r1, r8 - adds r1, #1 - lsls r0, r7, #1 - subs r1, r1, r0 - mov r8, r1 - adds r7, #1 - cmp r1, #0 - bge _080AF638 - subs r1, r6, #1 - lsls r0, r1, #1 - add r8, r0 - adds r6, r1, #0 -_080AF638: - cmp r6, r7 - bge _080AF5DC -_080AF63C: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_080AF5C0 - - thumb_func_start SetFlash2ScanlineEffectWindowBoundary -SetFlash2ScanlineEffectWindowBoundary: @ 0x080AF64C - push {lr} - cmp r1, #0xa0 - bhi _080AF674 - cmp r2, #0 - bge _080AF658 - movs r2, #0 -_080AF658: - cmp r2, #0xf0 - ble _080AF65E - movs r2, #0xf0 -_080AF65E: - cmp r3, #0 - bge _080AF664 - movs r3, #0 -_080AF664: - cmp r3, #0xf0 - ble _080AF66A - movs r3, #0xf0 -_080AF66A: - lsls r1, r1, #1 - adds r1, r1, r0 - lsls r0, r2, #8 - orrs r0, r3 - strh r0, [r1] -_080AF674: - pop {r0} - bx r0 - thumb_func_end SetFlash2ScanlineEffectWindowBoundary - - thumb_func_start sub_080AF678 -sub_080AF678: @ 0x080AF678 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - str r0, [sp] - mov sl, r1 - mov sb, r2 - adds r6, r3, #0 - mov r8, r6 - movs r7, #0 - cmp r6, #0 - blt _080AF6F4 -_080AF694: - mov r0, sb - subs r1, r0, r7 - mov r0, sl - subs r4, r0, r6 - adds r5, r0, r6 - ldr r0, [sp] - adds r2, r4, #0 - adds r3, r5, #0 - bl SetFlash2ScanlineEffectWindowBoundary - mov r0, sb - adds r1, r0, r7 - ldr r0, [sp] - adds r2, r4, #0 - adds r3, r5, #0 - bl SetFlash2ScanlineEffectWindowBoundary - mov r0, sb - subs r1, r0, r6 - mov r0, sl - subs r4, r0, r7 - adds r5, r0, r7 - ldr r0, [sp] - adds r2, r4, #0 - adds r3, r5, #0 - bl SetFlash2ScanlineEffectWindowBoundary - mov r0, sb - adds r1, r0, r6 - ldr r0, [sp] - adds r2, r4, #0 - adds r3, r5, #0 - bl SetFlash2ScanlineEffectWindowBoundary - mov r1, r8 - adds r1, #1 - lsls r0, r7, #1 - subs r1, r1, r0 - mov r8, r1 - adds r7, #1 - cmp r1, #0 - bge _080AF6F0 - subs r1, r6, #1 - lsls r0, r1, #1 - add r8, r0 - adds r6, r1, #0 -_080AF6F0: - cmp r6, r7 - bge _080AF694 -_080AF6F4: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_080AF678 - - thumb_func_start UpdateFlashLevelEffect -UpdateFlashLevelEffect: @ 0x080AF704 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080AF728 - adds r4, r0, r1 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _080AF760 - cmp r0, #1 - bgt _080AF72C - cmp r0, #0 - beq _080AF732 - b _080AF7C2 - .align 2, 0 -_080AF728: .4byte gUnknown_3005B68 -_080AF72C: - cmp r0, #2 - beq _080AF7B8 - b _080AF7C2 -_080AF732: - ldr r0, _080AF758 - ldrb r1, [r0, #0x14] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #7 - ldr r1, _080AF75C - adds r0, r0, r1 - movs r2, #2 - ldrsh r1, [r4, r2] - movs r3, #4 - ldrsh r2, [r4, r3] - movs r5, #6 - ldrsh r3, [r4, r5] - bl sub_080AF5C0 - movs r0, #1 - strh r0, [r4] - b _080AF7C2 - .align 2, 0 -_080AF758: .4byte gUnknown_20397C8 -_080AF75C: .4byte gUnknown_20388C8 -_080AF760: - ldr r0, _080AF7A8 - ldrb r1, [r0, #0x14] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #7 - ldr r1, _080AF7AC - adds r0, r0, r1 - movs r6, #2 - ldrsh r1, [r4, r6] - movs r3, #4 - ldrsh r2, [r4, r3] - movs r6, #6 - ldrsh r3, [r4, r6] - bl sub_080AF5C0 - movs r0, #0 - strh r0, [r4] - ldrh r0, [r4, #0xa] - ldrh r1, [r4, #6] - adds r0, r0, r1 - strh r0, [r4, #6] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #8 - ldrsh r1, [r4, r2] - cmp r0, r1 - ble _080AF7C2 - movs r3, #0xc - ldrsh r0, [r4, r3] - cmp r0, #1 - bne _080AF7B0 - bl ScanlineEffect_Stop - movs r0, #2 - strh r0, [r4] - b _080AF7C2 - .align 2, 0 -_080AF7A8: .4byte gUnknown_20397C8 -_080AF7AC: .4byte gUnknown_20388C8 -_080AF7B0: - adds r0, r5, #0 - bl DestroyTask - b _080AF7C2 -_080AF7B8: - bl ScanlineEffect_Clear - adds r0, r5, #0 - bl DestroyTask -_080AF7C2: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end UpdateFlashLevelEffect - - thumb_func_start UpdateFlash2LevelEffect -UpdateFlash2LevelEffect: @ 0x080AF7C8 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080AF7EC - adds r4, r0, r1 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _080AF824 - cmp r0, #1 - bgt _080AF7F0 - cmp r0, #0 - beq _080AF7F6 - b _080AF886 - .align 2, 0 -_080AF7EC: .4byte gUnknown_3005B68 -_080AF7F0: - cmp r0, #2 - beq _080AF87C - b _080AF886 -_080AF7F6: - ldr r0, _080AF81C - ldrb r1, [r0, #0x14] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #7 - ldr r1, _080AF820 - adds r0, r0, r1 - movs r2, #2 - ldrsh r1, [r4, r2] - movs r3, #4 - ldrsh r2, [r4, r3] - movs r5, #6 - ldrsh r3, [r4, r5] - bl sub_080AF678 - movs r0, #1 - strh r0, [r4] - b _080AF886 - .align 2, 0 -_080AF81C: .4byte gUnknown_20397C8 -_080AF820: .4byte gUnknown_20388C8 -_080AF824: - ldr r0, _080AF86C - ldrb r1, [r0, #0x14] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #7 - ldr r1, _080AF870 - adds r0, r0, r1 - movs r6, #2 - ldrsh r1, [r4, r6] - movs r3, #4 - ldrsh r2, [r4, r3] - movs r6, #6 - ldrsh r3, [r4, r6] - bl sub_080AF678 - movs r0, #0 - strh r0, [r4] - ldrh r0, [r4, #0xa] - ldrh r1, [r4, #6] - adds r0, r0, r1 - strh r0, [r4, #6] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #8 - ldrsh r1, [r4, r2] - cmp r0, r1 - ble _080AF886 - movs r3, #0xc - ldrsh r0, [r4, r3] - cmp r0, #1 - bne _080AF874 - bl ScanlineEffect_Stop - movs r0, #2 - strh r0, [r4] - b _080AF886 - .align 2, 0 -_080AF86C: .4byte gUnknown_20397C8 -_080AF870: .4byte gUnknown_20388C8 -_080AF874: - adds r0, r5, #0 - bl DestroyTask - b _080AF886 -_080AF87C: - bl ScanlineEffect_Clear - adds r0, r5, #0 - bl DestroyTask -_080AF886: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end UpdateFlash2LevelEffect - - thumb_func_start sub_080AF88C -sub_080AF88C: @ 0x080AF88C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080AF8B0 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AF8A8 - bl EnableBothScriptContexts - adds r0, r4, #0 - bl DestroyTask -_080AF8A8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AF8B0: .4byte UpdateFlashLevelEffect - thumb_func_end sub_080AF88C - - thumb_func_start sub_080AF8B4 -sub_080AF8B4: @ 0x080AF8B4 - push {r4, lr} - ldr r4, _080AF8D4 - adds r0, r4, #0 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AF8CC - adds r0, r4, #0 - movs r1, #0x50 - bl CreateTask -_080AF8CC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AF8D4: .4byte sub_080AF88C - thumb_func_end sub_080AF8B4 - - thumb_func_start sub_080AF8D8 -sub_080AF8D8: @ 0x080AF8D8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov r8, r0 - mov sb, r1 - adds r5, r2, #0 - adds r4, r3, #0 - ldr r6, [sp, #0x1c] - ldr r0, [sp, #0x20] - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _080AF91C - movs r1, #0x50 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _080AF920 - adds r1, r0, r1 - strh r5, [r1, #6] - strh r4, [r1, #8] - mov r0, r8 - strh r0, [r1, #2] - mov r0, sb - strh r0, [r1, #4] - strh r6, [r1, #0xc] - cmp r5, r4 - bge _080AF924 - strh r7, [r1, #0xa] - b _080AF928 - .align 2, 0 -_080AF91C: .4byte UpdateFlashLevelEffect -_080AF920: .4byte gUnknown_3005B68 -_080AF924: - rsbs r0, r7, #0 - strh r0, [r1, #0xa] -_080AF928: - adds r0, r2, #0 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080AF8D8 - - thumb_func_start sub_080AF938 -sub_080AF938: @ 0x080AF938 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov r8, r0 - mov sb, r1 - adds r5, r2, #0 - adds r4, r3, #0 - ldr r6, [sp, #0x1c] - ldr r0, [sp, #0x20] - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _080AF97C - movs r1, #0x50 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _080AF980 - adds r1, r0, r1 - strh r5, [r1, #6] - strh r4, [r1, #8] - mov r0, r8 - strh r0, [r1, #2] - mov r0, sb - strh r0, [r1, #4] - strh r6, [r1, #0xc] - cmp r5, r4 - bge _080AF984 - strh r7, [r1, #0xa] - b _080AF988 - .align 2, 0 -_080AF97C: .4byte UpdateFlash2LevelEffect -_080AF980: .4byte gUnknown_3005B68 -_080AF984: - rsbs r0, r7, #0 - strh r0, [r1, #0xa] -_080AF988: - adds r0, r2, #0 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080AF938 - - thumb_func_start sub_080AF998 -sub_080AF998: @ 0x080AF998 - push {r4, r5, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r4, r0, #0 - bl Overworld_GetFlashLevel - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r5, #0 - cmp r4, #0 - bne _080AF9B2 - movs r5, #1 -_080AF9B2: - ldr r1, _080AF9E0 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r2, [r0] - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r3, [r0] - str r5, [sp] - movs r0, #1 - str r0, [sp, #4] - movs r0, #0x78 - movs r1, #0x50 - bl sub_080AF8D8 - bl sub_080AF8B4 - bl sub_080987DC - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080AF9E0: .4byte gUnknown_852AB00 - thumb_func_end sub_080AF998 - - thumb_func_start WriteFlashScanlineEffectBuffer -WriteFlashScanlineEffectBuffer: @ 0x080AF9E4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _080AFA12 - ldr r4, _080AFA18 - ldr r1, _080AFA1C - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r3, [r0] - adds r0, r4, #0 - movs r1, #0x78 - movs r2, #0x50 - bl sub_080AF5C0 - movs r0, #0xf0 - lsls r0, r0, #3 - adds r1, r4, r0 - movs r2, #0xf0 - lsls r2, r2, #1 - adds r0, r4, #0 - bl CpuFastSet -_080AFA12: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AFA18: .4byte gUnknown_20388C8 -_080AFA1C: .4byte gUnknown_852AB00 - thumb_func_end WriteFlashScanlineEffectBuffer - - thumb_func_start WriteBattlePyramidViewScanlineEffectBuffer -WriteBattlePyramidViewScanlineEffectBuffer: @ 0x080AFA20 - push {r4, lr} - ldr r4, _080AFA50 - ldr r0, _080AFA54 - ldr r0, [r0] - ldr r1, _080AFA58 - adds r0, r0, r1 - ldrb r3, [r0] - adds r0, r4, #0 - movs r1, #0x78 - movs r2, #0x50 - bl sub_080AF5C0 - movs r0, #0xf0 - lsls r0, r0, #3 - adds r1, r4, r0 - movs r2, #0xf0 - lsls r2, r2, #1 - adds r0, r4, #0 - bl CpuFastSet - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AFA50: .4byte gUnknown_20388C8 -_080AFA54: .4byte gUnknown_3005AF0 -_080AFA58: .4byte 0x00000E68 - thumb_func_end WriteBattlePyramidViewScanlineEffectBuffer - - thumb_func_start task0A_mpl_807E31C -task0A_mpl_807E31C: @ 0x080AFA5C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _080AFA7C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _080AFA80 - cmp r0, #1 - beq _080AFA94 - b _080AFAB2 - .align 2, 0 -_080AFA7C: .4byte gUnknown_3005B60 -_080AFA80: - bl FreezeEventObjects - bl sub_080987DC - bl sub_0808CB04 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _080AFAB2 -_080AFA94: - bl WaitForWeatherFadeIn - cmp r0, #0 - beq _080AFAB2 - bl RunOnLoadMapScript - cmp r0, #1 - beq _080AFAB2 - bl UnfreezeEventObjects - bl sub_080987E8 - adds r0, r5, #0 - bl DestroyTask -_080AFAB2: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end task0A_mpl_807E31C - - thumb_func_start sub_080AFAB8 -sub_080AFAB8: @ 0x080AFAB8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080AFADC - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _080AFAFE - cmp r0, #1 - bgt _080AFAE0 - cmp r0, #0 - beq _080AFAEA - b _080AFB36 - .align 2, 0 -_080AFADC: .4byte gUnknown_3005B60 -_080AFAE0: - cmp r0, #2 - beq _080AFB0C - cmp r0, #3 - beq _080AFB26 - b _080AFB36 -_080AFAEA: - bl FreezeEventObjects - bl sub_080987DC - movs r0, #0x2d - bl sub_080A306C - bl sub_0808CB38 - b _080AFB1E -_080AFAFE: - bl sub_0808CB58 - cmp r0, #0 - bne _080AFB36 - bl WarpFadeScreen - b _080AFB1E -_080AFB0C: - bl sub_080AF00C - cmp r0, #0 - bne _080AFB36 - bl BGMusicStopped - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080AFB36 -_080AFB1E: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _080AFB36 -_080AFB26: - bl WarpIntoMap - ldr r0, _080AFB3C - bl SetMainCallback2 - adds r0, r5, #0 - bl DestroyTask -_080AFB36: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080AFB3C: .4byte CB2_LoadMap - thumb_func_end sub_080AFAB8 - - thumb_func_start sub_080AFB40 -sub_080AFB40: @ 0x080AFB40 - push {lr} - bl sub_080987DC - ldr r0, _080AFB58 - movs r1, #0xa - bl CreateTask - ldr r1, _080AFB5C - ldr r0, _080AFB60 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080AFB58: .4byte sub_080AF308 -_080AFB5C: .4byte gUnknown_3005B0C -_080AFB60: .4byte sub_080AECE4 - thumb_func_end sub_080AFB40 - - thumb_func_start sub_080AFB64 -sub_080AFB64: @ 0x080AFB64 - push {lr} - bl sub_080987DC - ldr r0, _080AFB7C - ldr r1, _080AFB80 - str r1, [r0] - ldr r0, _080AFB84 - movs r1, #0xa - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080AFB7C: .4byte gUnknown_3005B0C -_080AFB80: .4byte mapldr_default -_080AFB84: .4byte sub_080AFAB8 - thumb_func_end sub_080AFB64 - - thumb_func_start sub_080AFB88 -sub_080AFB88: @ 0x080AFB88 - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AFB96 - movs r1, #0x1f - b _080AFB9C -_080AFB96: - movs r0, #0xf8 - lsls r0, r0, #7 - adds r1, r0, #0 -_080AFB9C: - mov r0, sp - strh r1, [r0] - movs r5, #0 - movs r4, #0xf0 - lsls r4, r4, #0x10 -_080AFBA6: - lsrs r1, r4, #0x10 - mov r0, sp - movs r2, #2 - bl LoadPalette - movs r0, #0x80 - lsls r0, r0, #9 - adds r4, r4, r0 - adds r5, #1 - cmp r5, #0xf - ble _080AFBA6 - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_080AFB88 - - thumb_func_start sub_080AFBC4 -sub_080AFBC4: @ 0x080AFBC4 - push {r4, r5, lr} - lsls r0, r0, #0x10 - ldr r2, _080AFBE4 - ldrh r1, [r2] - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - ldrh r1, [r2] - lsrs r4, r1, #8 - cmp r0, #0 - beq _080AFBE8 - cmp r5, #0 - beq _080AFBF2 - subs r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - b _080AFBF2 - .align 2, 0 -_080AFBE4: .4byte 0x04000052 -_080AFBE8: - cmp r4, #0xf - bhi _080AFBF2 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_080AFBF2: - lsls r1, r4, #8 - orrs r1, r5 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - cmp r5, #0 - bne _080AFC0C - cmp r4, #0x10 - bne _080AFC0C - movs r0, #1 - b _080AFC0E -_080AFC0C: - movs r0, #0 -_080AFC0E: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_080AFBC4 - - thumb_func_start sub_080AFC14 -sub_080AFC14: @ 0x080AFC14 - push {r4, r5, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _080AFC3C - adds r5, r0, r1 - movs r1, #0 - ldrsh r0, [r5, r1] - cmp r0, #7 - bls _080AFC30 - b _080AFE28 -_080AFC30: - lsls r0, r0, #2 - ldr r1, _080AFC40 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080AFC3C: .4byte gUnknown_3005B68 -_080AFC40: .4byte _080AFC44 -_080AFC44: @ jump table - .4byte _080AFC64 @ case 0 - .4byte _080AFD20 @ case 1 - .4byte _080AFD4C @ case 2 - .4byte _080AFD68 @ case 3 - .4byte _080AFD7E @ case 4 - .4byte _080AFDEE @ case 5 - .4byte _080AFDA8 @ case 6 - .4byte _080AFDB6 @ case 7 -_080AFC64: - movs r0, #0x80 - lsls r0, r0, #0x13 - ldrh r0, [r0] - strh r0, [r5, #0xc] - ldr r0, _080AFD00 - ldrh r0, [r0] - strh r0, [r5, #0xe] - ldr r0, _080AFD04 - ldrh r0, [r0] - strh r0, [r5, #0x10] - ldr r0, _080AFD08 - ldrh r0, [r0] - strh r0, [r5, #0x12] - ldr r0, _080AFD0C - ldrh r0, [r0] - strh r0, [r5, #0x14] - movs r1, #0x80 - lsls r1, r1, #7 - movs r0, #0 - bl ClearGpuRegBits - ldr r0, _080AFD10 - ldrh r1, [r0] - movs r0, #0x50 - bl SetGpuRegBits - ldr r1, _080AFD14 - movs r0, #0x52 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0x3f - bl SetGpuReg - movs r0, #0x4a - movs r1, #0x1e - bl SetGpuReg - movs r0, #0x14 - str r0, [sp] - movs r0, #0xf - str r0, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0x1e - bl sub_081998C8 - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - ldr r4, _080AFD18 - movs r2, #4 - ldrsh r1, [r5, r2] - movs r0, #6 - ldrsh r2, [r5, r0] - adds r0, r4, #0 - movs r3, #1 - bl sub_080AF678 - movs r2, #0xf0 - lsls r2, r2, #3 - adds r1, r4, r2 - movs r2, #0xf0 - lsls r2, r2, #1 - adds r0, r4, #0 - bl CpuFastSet - ldr r2, _080AFD1C - ldr r0, [r2] - ldr r1, [r2, #4] - ldr r2, [r2, #8] - bl ScanlineEffect_SetParams - movs r0, #1 - strh r0, [r5] - b _080AFE28 - .align 2, 0 -_080AFD00: .4byte 0x04000050 -_080AFD04: .4byte 0x04000052 -_080AFD08: .4byte 0x04000048 -_080AFD0C: .4byte 0x0400004A -_080AFD10: .4byte gUnknown_82BF434 -_080AFD14: .4byte 0x0000070C -_080AFD18: .4byte gUnknown_20388C8 -_080AFD1C: .4byte gUnknown_852AB18 -_080AFD20: - movs r0, #0 - movs r1, #0x11 - movs r2, #0 - movs r3, #1 - bl sub_08199A88 - ldrb r0, [r5, #2] - bl sub_080AFB88 - movs r1, #4 - ldrsh r0, [r5, r1] - movs r2, #6 - ldrsh r1, [r5, r2] - movs r2, #1 - str r2, [sp] - movs r4, #2 - str r4, [sp, #4] - movs r3, #0xa0 - bl sub_080AF938 - strh r4, [r5] - b _080AFE28 -_080AFD4C: - ldr r0, _080AFD64 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AFE28 - bl EnableBothScriptContexts - movs r0, #3 - strh r0, [r5] - b _080AFE28 - .align 2, 0 -_080AFD64: .4byte UpdateFlash2LevelEffect -_080AFD68: - bl InstallCameraPanAheadCallback - movs r0, #0 - bl sub_08089C24 - movs r0, #0 - strh r0, [r5, #0xa] - movs r0, #4 - strh r0, [r5, #8] - strh r0, [r5] - b _080AFE28 -_080AFD7E: - ldrh r0, [r5, #8] - subs r0, #1 - strh r0, [r5, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080AFE28 - movs r0, #4 - strh r0, [r5, #8] - ldrh r0, [r5, #0xa] - movs r1, #1 - eors r0, r1 - strh r0, [r5, #0xa] - movs r1, #4 - rsbs r1, r1, #0 - cmp r0, #0 - beq _080AFDA0 - movs r1, #4 -_080AFDA0: - movs r0, #0 - bl SetCameraPanning - b _080AFE28 -_080AFDA8: - bl InstallCameraPanAheadCallback - movs r0, #8 - strh r0, [r5, #8] - movs r0, #7 - strh r0, [r5] - b _080AFE28 -_080AFDB6: - ldrh r0, [r5, #8] - subs r0, #1 - strh r0, [r5, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080AFE28 - movs r0, #8 - strh r0, [r5, #8] - ldrh r0, [r5, #0xa] - movs r1, #1 - eors r0, r1 - strh r0, [r5, #0xa] - ldrh r0, [r5, #0xa] - bl sub_080AFBC4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080AFE28 - movs r0, #5 - strh r0, [r5] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #1 - bl sub_08199A88 - b _080AFE28 -_080AFDEE: - movs r0, #0x40 - movs r1, #0xff - bl SetGpuReg - ldrh r1, [r5, #0xc] - movs r0, #0 - bl SetGpuReg - ldrh r1, [r5, #0xe] - movs r0, #0x50 - bl SetGpuReg - ldrh r1, [r5, #0x10] - movs r0, #0x52 - bl SetGpuReg - ldrh r1, [r5, #0x12] - movs r0, #0x48 - bl SetGpuReg - ldrh r1, [r5, #0x14] - movs r0, #0x4a - bl SetGpuReg - bl EnableBothScriptContexts - adds r0, r4, #0 - bl DestroyTask -_080AFE28: - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_080AFC14 - - thumb_func_start sub_080AFE30 -sub_080AFE30: @ 0x080AFE30 - push {lr} - ldr r0, _080AFE58 - movs r1, #0x50 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080AFE5C - adds r1, r1, r0 - ldr r0, _080AFE60 - ldrh r0, [r0] - cmp r0, #0 - bne _080AFE64 - strh r0, [r1, #2] - movs r0, #0x68 - b _080AFE7C - .align 2, 0 -_080AFE58: .4byte sub_080AFC14 -_080AFE5C: .4byte gUnknown_3005B68 -_080AFE60: .4byte gUnknown_2037290 -_080AFE64: - cmp r0, #1 - bne _080AFE6E - strh r0, [r1, #2] - movs r0, #0x88 - b _080AFE7C -_080AFE6E: - cmp r0, #2 - bne _080AFE76 - movs r0, #0 - b _080AFE78 -_080AFE76: - movs r0, #1 -_080AFE78: - strh r0, [r1, #2] - movs r0, #0x78 -_080AFE7C: - strh r0, [r1, #4] - movs r0, #0x50 - strh r0, [r1, #6] - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080AFE30 - - thumb_func_start sub_080AFE88 -sub_080AFE88: @ 0x080AFE88 - push {lr} - ldr r0, _080AFEA8 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080AFEAC - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r0, #6 - strh r0, [r1, #8] - pop {r0} - bx r0 - .align 2, 0 -_080AFEA8: .4byte sub_080AFC14 -_080AFEAC: .4byte gUnknown_3005B60 - thumb_func_end sub_080AFE88 - - thumb_func_start sub_080AFEB0 -sub_080AFEB0: @ 0x080AFEB0 - push {lr} - bl Overworld_FadeOutMapMusic - ldr r0, _080AFEC4 - movs r1, #0x50 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080AFEC4: .4byte task50_0807F0C8 - thumb_func_end sub_080AFEB0 - - thumb_func_start task50_0807F0C8 -task50_0807F0C8: @ 0x080AFEC8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl BGMusicStopped - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080AFEE4 - adds r0, r4, #0 - bl DestroyTask - bl EnableBothScriptContexts -_080AFEE4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end task50_0807F0C8 - - thumb_func_start Task_BattleStart -Task_BattleStart: @ 0x080AFEEC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080AFF0C - adds r4, r0, r1 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _080AFF10 - cmp r0, #1 - beq _080AFF2A - b _080AFF4E - .align 2, 0 -_080AFF0C: .4byte gUnknown_3005B68 -_080AFF10: - bl sub_080FB730 - cmp r0, #0 - bne _080AFF4E - ldrb r0, [r4, #2] - bl BattleTransition_StartOnField - bl ClearMirageTowerPulseBlendEffect - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - b _080AFF4E -_080AFF2A: - bl IsBattleTransitionDone - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080AFF4E - bl CleanupOverworldWindowsAndTilemaps - ldr r0, _080AFF54 - bl SetMainCallback2 - bl sub_0809C4B4 - bl ClearPoisonStepCounter - adds r0, r5, #0 - bl DestroyTask -_080AFF4E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080AFF54: .4byte CB2_InitBattle - thumb_func_end Task_BattleStart - - thumb_func_start CreateBattleStartTask -CreateBattleStartTask: @ 0x080AFF58 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - ldr r0, _080AFF8C - movs r1, #1 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080AFF90 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #0xa] - adds r0, r5, #0 - bl PlayMapChosenOrBattleBGM - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080AFF8C: .4byte Task_BattleStart -_080AFF90: .4byte gUnknown_3005B60 - thumb_func_end CreateBattleStartTask - - thumb_func_start BattleSetup_StartWildBattle -BattleSetup_StartWildBattle: @ 0x080AFF94 - push {lr} - bl sub_080FC910 - cmp r0, #0 - beq _080AFFA4 - bl DoSafariBattle - b _080AFFA8 -_080AFFA4: - bl DoStandardWildBattle -_080AFFA8: - pop {r0} - bx r0 - thumb_func_end BattleSetup_StartWildBattle - - thumb_func_start BattleSetup_StartBattlePikeWildBattle -BattleSetup_StartBattlePikeWildBattle: @ 0x080AFFAC - push {lr} - bl sub_080B00B0 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BattleSetup_StartBattlePikeWildBattle - - thumb_func_start DoStandardWildBattle -DoStandardWildBattle: @ 0x080AFFB8 - push {r4, lr} - bl sub_080987DC - bl FreezeEventObjects - bl sub_0808B658 - ldr r1, _080B0018 - ldr r0, _080B001C - str r0, [r1, #8] - ldr r4, _080B0020 - movs r0, #0 - str r0, [r4] - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080AFFEE - ldr r0, _080B0024 - movs r1, #0 - bl VarSet - ldr r0, [r4] - movs r1, #0x80 - lsls r1, r1, #0xe - orrs r0, r1 - str r0, [r4] -_080AFFEE: - bl GetWildBattleTransition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl CreateBattleStartTask - movs r0, #7 - bl IncrementGameStat - movs r0, #8 - bl IncrementGameStat - bl sub_080EF7CC - bl sub_080B0B04 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B0018: .4byte gUnknown_3002360 -_080B001C: .4byte CB2_EndWildBattle -_080B0020: .4byte gUnknown_2022C90 -_080B0024: .4byte 0x0000400E - thumb_func_end DoStandardWildBattle - - thumb_func_start BattleSetup_StartRoamerBattle -BattleSetup_StartRoamerBattle: @ 0x080B0028 - push {lr} - bl sub_080987DC - bl FreezeEventObjects - bl sub_0808B658 - ldr r1, _080B006C - ldr r0, _080B0070 - str r0, [r1, #8] - ldr r1, _080B0074 - movs r0, #0x80 - lsls r0, r0, #3 - str r0, [r1] - bl GetWildBattleTransition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl CreateBattleStartTask - movs r0, #7 - bl IncrementGameStat - movs r0, #8 - bl IncrementGameStat - bl sub_080EF7CC - bl sub_080B0B04 - pop {r0} - bx r0 - .align 2, 0 -_080B006C: .4byte gUnknown_3002360 -_080B0070: .4byte CB2_EndWildBattle -_080B0074: .4byte gUnknown_2022C90 - thumb_func_end BattleSetup_StartRoamerBattle - - thumb_func_start DoSafariBattle -DoSafariBattle: @ 0x080B0078 - push {lr} - bl sub_080987DC - bl FreezeEventObjects - bl sub_0808B658 - ldr r1, _080B00A4 - ldr r0, _080B00A8 - str r0, [r1, #8] - ldr r1, _080B00AC - movs r0, #0x80 - str r0, [r1] - bl GetWildBattleTransition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl CreateBattleStartTask - pop {r0} - bx r0 - .align 2, 0 -_080B00A4: .4byte gUnknown_3002360 -_080B00A8: .4byte CB2_EndSafariBattle -_080B00AC: .4byte gUnknown_2022C90 - thumb_func_end DoSafariBattle - - thumb_func_start sub_080B00B0 -sub_080B00B0: @ 0x080B00B0 - push {lr} - bl sub_080987DC - bl FreezeEventObjects - bl sub_0808B658 - ldr r1, _080B00F4 - ldr r0, _080B00F8 - str r0, [r1, #8] - ldr r1, _080B00FC - movs r0, #0x80 - lsls r0, r0, #0xd - str r0, [r1] - bl GetWildBattleTransition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl CreateBattleStartTask - movs r0, #7 - bl IncrementGameStat - movs r0, #8 - bl IncrementGameStat - bl sub_080EF7CC - bl sub_080B0B04 - pop {r0} - bx r0 - .align 2, 0 -_080B00F4: .4byte gUnknown_3002360 -_080B00F8: .4byte CB2_EndWildBattle -_080B00FC: .4byte gUnknown_2022C90 - thumb_func_end sub_080B00B0 - - thumb_func_start DoTrainerBattle -DoTrainerBattle: @ 0x080B0100 - push {lr} - bl sub_080B0824 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl CreateBattleStartTask - movs r0, #7 - bl IncrementGameStat - movs r0, #9 - bl IncrementGameStat - bl sub_080B0B20 - pop {r0} - bx r0 - thumb_func_end DoTrainerBattle - - thumb_func_start sub_080B0124 -sub_080B0124: @ 0x080B0124 - push {lr} - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B0142 - movs r0, #0xa - bl sub_080B08F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl CreateBattleStartTask - b _080B0152 -_080B0142: - movs r0, #0xb - bl sub_080B08F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl CreateBattleStartTask -_080B0152: - movs r0, #7 - bl IncrementGameStat - movs r0, #9 - bl IncrementGameStat - bl sub_080B0B20 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080B0124 - - thumb_func_start StartWallyTutorialBattle -StartWallyTutorialBattle: @ 0x080B0168 - push {lr} - ldr r0, _080B0194 - movs r1, #0xc4 - lsls r1, r1, #1 - movs r2, #5 - bl CreateMaleMon - bl sub_080987DC - ldr r1, _080B0198 - ldr r0, _080B019C - str r0, [r1, #8] - ldr r1, _080B01A0 - movs r0, #0x80 - lsls r0, r0, #2 - str r0, [r1] - movs r0, #8 - movs r1, #0 - bl CreateBattleStartTask - pop {r0} - bx r0 - .align 2, 0 -_080B0194: .4byte gUnknown_20243E8 -_080B0198: .4byte gUnknown_3002360 -_080B019C: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic -_080B01A0: .4byte gUnknown_2022C90 - thumb_func_end StartWallyTutorialBattle - - thumb_func_start BattleSetup_StartScriptedWildBattle -BattleSetup_StartScriptedWildBattle: @ 0x080B01A4 - push {lr} - bl sub_080987DC - ldr r1, _080B01DC - ldr r0, _080B01E0 - str r0, [r1, #8] - ldr r1, _080B01E4 - movs r0, #0 - str r0, [r1] - bl GetWildBattleTransition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl CreateBattleStartTask - movs r0, #7 - bl IncrementGameStat - movs r0, #8 - bl IncrementGameStat - bl sub_080EF7CC - bl sub_080B0B04 - pop {r0} - bx r0 - .align 2, 0 -_080B01DC: .4byte gUnknown_3002360 -_080B01E0: .4byte CB2_EndScriptedWildBattle -_080B01E4: .4byte gUnknown_2022C90 - thumb_func_end BattleSetup_StartScriptedWildBattle - - thumb_func_start BattleSetup_StartLatiBattle -BattleSetup_StartLatiBattle: @ 0x080B01E8 - push {lr} - bl sub_080987DC - ldr r1, _080B0224 - ldr r0, _080B0228 - str r0, [r1, #8] - ldr r1, _080B022C - movs r0, #0x80 - lsls r0, r0, #6 - str r0, [r1] - bl GetWildBattleTransition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl CreateBattleStartTask - movs r0, #7 - bl IncrementGameStat - movs r0, #8 - bl IncrementGameStat - bl sub_080EF7CC - bl sub_080B0B04 - pop {r0} - bx r0 - .align 2, 0 -_080B0224: .4byte gUnknown_3002360 -_080B0228: .4byte CB2_EndScriptedWildBattle -_080B022C: .4byte gUnknown_2022C90 - thumb_func_end BattleSetup_StartLatiBattle - - thumb_func_start BattleSetup_StartLegendaryBattle -BattleSetup_StartLegendaryBattle: @ 0x080B0230 - push {r4, lr} - bl sub_080987DC - ldr r1, _080B0270 - ldr r0, _080B0274 - str r0, [r1, #8] - ldr r4, _080B0278 - movs r0, #0x80 - lsls r0, r0, #6 - str r0, [r4] - ldr r0, _080B027C - movs r1, #0xb - movs r2, #0 - bl GetMonData - adds r1, r0, #0 - movs r0, #0xca - lsls r0, r0, #1 - cmp r1, r0 - beq _080B02B4 - cmp r1, r0 - bhi _080B0284 - cmp r1, #0x97 - beq _080B02F0 - cmp r1, #0x97 - blo _080B0296 - cmp r1, #0xfa - bhi _080B0296 - cmp r1, #0xf9 - blo _080B0296 - ldr r1, _080B0280 - b _080B02E2 - .align 2, 0 -_080B0270: .4byte gUnknown_3002360 -_080B0274: .4byte CB2_EndScriptedWildBattle -_080B0278: .4byte gUnknown_2022C90 -_080B027C: .4byte gUnknown_20243E8 -_080B0280: .4byte 0x00000229 -_080B0284: - movs r0, #0xcb - lsls r0, r0, #1 - cmp r1, r0 - beq _080B02CA - cmp r1, r0 - blo _080B0296 - adds r0, #4 - cmp r1, r0 - beq _080B02E0 -_080B0296: - ldr r2, _080B02B0 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0x15 - orrs r0, r1 - str r0, [r2] - movs r1, #0xf0 - lsls r1, r1, #1 - movs r0, #0x17 - bl CreateBattleStartTask - b _080B02FA - .align 2, 0 -_080B02B0: .4byte gUnknown_2022C90 -_080B02B4: - ldr r0, [r4] - movs r1, #0x80 - lsls r1, r1, #0x16 - orrs r0, r1 - str r0, [r4] - movs r1, #0xf0 - lsls r1, r1, #1 - movs r0, #0x16 - bl CreateBattleStartTask - b _080B02FA -_080B02CA: - ldr r0, [r4] - movs r1, #0x80 - lsls r1, r1, #0x17 - orrs r0, r1 - str r0, [r4] - movs r1, #0xeb - lsls r1, r1, #1 - movs r0, #0x18 - bl CreateBattleStartTask - b _080B02FA -_080B02E0: - ldr r1, _080B02EC -_080B02E2: - movs r0, #0 - bl CreateBattleStartTask - b _080B02FA - .align 2, 0 -_080B02EC: .4byte 0x00000227 -_080B02F0: - movs r1, #0xec - lsls r1, r1, #1 - movs r0, #0xa - bl CreateBattleStartTask -_080B02FA: - movs r0, #7 - bl IncrementGameStat - movs r0, #8 - bl IncrementGameStat - bl sub_080EF7CC - bl sub_080B0B04 - pop {r4} - pop {r0} - bx r0 - thumb_func_end BattleSetup_StartLegendaryBattle - - thumb_func_start StartGroudonKyogreBattle -StartGroudonKyogreBattle: @ 0x080B0314 - push {lr} - bl sub_080987DC - ldr r1, _080B033C - ldr r0, _080B0340 - str r0, [r1, #8] - ldr r1, _080B0344 - movs r0, #0xc0 - lsls r0, r0, #6 - str r0, [r1] - ldr r0, _080B0348 - ldrb r0, [r0] - cmp r0, #2 - bne _080B034C - movs r1, #0xf0 - lsls r1, r1, #1 - movs r0, #0xb - bl CreateBattleStartTask - b _080B0356 - .align 2, 0 -_080B033C: .4byte gUnknown_3002360 -_080B0340: .4byte CB2_EndScriptedWildBattle -_080B0344: .4byte gUnknown_2022C90 -_080B0348: .4byte gUnknown_829BDA4 -_080B034C: - movs r1, #0xf0 - lsls r1, r1, #1 - movs r0, #6 - bl CreateBattleStartTask -_080B0356: - movs r0, #7 - bl IncrementGameStat - movs r0, #8 - bl IncrementGameStat - bl sub_080EF7CC - bl sub_080B0B04 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end StartGroudonKyogreBattle - - thumb_func_start StartRegiBattle -StartRegiBattle: @ 0x080B0370 - push {lr} - bl sub_080987DC - ldr r1, _080B03A8 - ldr r0, _080B03AC - str r0, [r1, #8] - ldr r1, _080B03B0 - movs r0, #0xc0 - lsls r0, r0, #7 - str r0, [r1] - ldr r0, _080B03B4 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - adds r2, r1, #0 - movs r0, #0xc9 - lsls r0, r0, #1 - cmp r1, r0 - beq _080B03C8 - cmp r1, r0 - bgt _080B03B8 - subs r0, #1 - cmp r1, r0 - beq _080B03C4 - b _080B03D0 - .align 2, 0 -_080B03A8: .4byte gUnknown_3002360 -_080B03AC: .4byte CB2_EndScriptedWildBattle -_080B03B0: .4byte gUnknown_2022C90 -_080B03B4: .4byte gUnknown_20243E8 -_080B03B8: - ldr r0, _080B03C0 - cmp r2, r0 - beq _080B03CC - b _080B03D0 - .align 2, 0 -_080B03C0: .4byte 0x00000193 -_080B03C4: - movs r0, #0x15 - b _080B03D2 -_080B03C8: - movs r0, #0x13 - b _080B03D2 -_080B03CC: - movs r0, #0x14 - b _080B03D2 -_080B03D0: - movs r0, #0xa -_080B03D2: - ldr r1, _080B03F0 - bl CreateBattleStartTask - movs r0, #7 - bl IncrementGameStat - movs r0, #8 - bl IncrementGameStat - bl sub_080EF7CC - bl sub_080B0B04 - pop {r0} - bx r0 - .align 2, 0 -_080B03F0: .4byte 0x000001DF - thumb_func_end StartRegiBattle - - thumb_func_start CB2_EndWildBattle -CB2_EndWildBattle: @ 0x080B03F4 - push {lr} - sub sp, #4 - mov r1, sp - movs r0, #0 - strh r0, [r1] - movs r1, #0xa0 - lsls r1, r1, #0x13 - ldr r2, _080B043C - mov r0, sp - bl CpuSet - movs r0, #0 - movs r1, #0x80 - bl ResetOamRange - ldr r0, _080B0440 - ldrb r0, [r0] - bl IsPlayerDefeated - cmp r0, #1 - bne _080B0448 - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B0448 - bl InBattlePike - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B0448 - ldr r0, _080B0444 - bl SetMainCallback2 - b _080B0454 - .align 2, 0 -_080B043C: .4byte 0x01000100 -_080B0440: .4byte gUnknown_2023FDE -_080B0444: .4byte CB2_WhiteOut -_080B0448: - ldr r0, _080B045C - bl SetMainCallback2 - ldr r1, _080B0460 - ldr r0, _080B0464 - str r0, [r1] -_080B0454: - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_080B045C: .4byte sub_08085A30 -_080B0460: .4byte gUnknown_3005B0C -_080B0464: .4byte sub_080AEFEC - thumb_func_end CB2_EndWildBattle - - thumb_func_start CB2_EndScriptedWildBattle -CB2_EndScriptedWildBattle: @ 0x080B0468 - push {lr} - sub sp, #4 - mov r1, sp - movs r0, #0 - strh r0, [r1] - movs r1, #0xa0 - lsls r1, r1, #0x13 - ldr r2, _080B04A4 - mov r0, sp - bl CpuSet - movs r0, #0 - movs r1, #0x80 - bl ResetOamRange - ldr r0, _080B04A8 - ldrb r0, [r0] - bl IsPlayerDefeated - cmp r0, #1 - bne _080B04BC - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B04B0 - ldr r0, _080B04AC - bl SetMainCallback2 - b _080B04C2 - .align 2, 0 -_080B04A4: .4byte 0x01000100 -_080B04A8: .4byte gUnknown_2023FDE -_080B04AC: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic -_080B04B0: - ldr r0, _080B04B8 - bl SetMainCallback2 - b _080B04C2 - .align 2, 0 -_080B04B8: .4byte CB2_WhiteOut -_080B04BC: - ldr r0, _080B04C8 - bl SetMainCallback2 -_080B04C2: - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_080B04C8: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic - thumb_func_end CB2_EndScriptedWildBattle - - thumb_func_start sub_080B04CC -sub_080B04CC: @ 0x080B04CC - push {r4, r5, lr} - sub sp, #4 - mov r4, sp - adds r4, #2 - 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, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r0, r5, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl MetatileBehavior_IsTallGrass - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B0502 - movs r0, #0 - b _080B0616 -_080B0502: - adds r0, r4, #0 - bl sub_08088DC0 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B0512 - movs r0, #1 - b _080B0616 -_080B0512: - adds r0, r4, #0 - bl MetatileBehavior_IsSandOrDeepSand - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B0614 - ldr r0, _080B0534 - ldrb r0, [r0, #0x17] - subs r0, #1 - cmp r0, #8 - bhi _080B0598 - lsls r0, r0, #2 - ldr r1, _080B0538 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B0534: .4byte gUnknown_2036FB8 -_080B0538: .4byte _080B053C -_080B053C: @ jump table - .4byte _080B0598 @ case 0 - .4byte _080B0598 @ case 1 - .4byte _080B0598 @ case 2 - .4byte _080B0560 @ case 3 - .4byte _080B0584 @ case 4 - .4byte _080B0588 @ case 5 - .4byte _080B0598 @ case 6 - .4byte _080B0570 @ case 7 - .4byte _080B0570 @ case 8 -_080B0560: - lsls r0, r5, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl MetatileBehavior_IsIndoorEncounter - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B0574 -_080B0570: - movs r0, #8 - b _080B0616 -_080B0574: - adds r0, r4, #0 - bl MetatileBehavior_IsSurfableWaterOrUnderwater - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B05DC - movs r0, #7 - b _080B0616 -_080B0584: - movs r0, #3 - b _080B0616 -_080B0588: - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsSurfableWaterOrUnderwater - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B05EE - b _080B060C -_080B0598: - lsls r0, r5, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl MetatileBehavior_IsDeepOrOceanWater - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B05EE - adds r0, r4, #0 - bl MetatileBehavior_IsSurfableWaterOrUnderwater - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B05DC - adds r0, r4, #0 - bl MetatileBehavior_IsMountain - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B05C4 - movs r0, #6 - b _080B0616 -_080B05C4: - movs r0, #8 - bl TestPlayerAvatarFlags - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B05F2 - adds r0, r4, #0 - bl MetatileBehavior_GetBridgeType - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B05E0 -_080B05DC: - movs r0, #5 - b _080B0616 -_080B05E0: - adds r0, r4, #0 - bl MetatileBehavior_IsBridge - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080B05F2 -_080B05EE: - movs r0, #4 - b _080B0616 -_080B05F2: - ldr r0, _080B0610 - ldr r0, [r0] - ldrh r1, [r0, #4] - movs r0, #0xe0 - lsls r0, r0, #5 - cmp r1, r0 - beq _080B0614 - bl GetSav1Weather - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #8 - beq _080B0614 -_080B060C: - movs r0, #9 - b _080B0616 - .align 2, 0 -_080B0610: .4byte gUnknown_3005AEC -_080B0614: - movs r0, #2 -_080B0616: - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080B04CC - - thumb_func_start GetBattleTransitionTypeByMap -GetBattleTransitionTypeByMap: @ 0x080B0620 - push {r4, lr} - sub sp, #4 - mov r4, sp - adds r4, #2 - 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, r0, #0x10 - lsrs r4, r0, #0x10 - bl Overworld_GetFlashLevel - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B0650 - movs r0, #2 - b _080B067A -_080B0650: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsSurfableWaterOrUnderwater - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B0678 - ldr r0, _080B0670 - ldrb r0, [r0, #0x17] - cmp r0, #4 - beq _080B0674 - cmp r0, #5 - beq _080B0678 - movs r0, #0 - b _080B067A - .align 2, 0 -_080B0670: .4byte gUnknown_2036FB8 -_080B0674: - movs r0, #1 - b _080B067A -_080B0678: - movs r0, #3 -_080B067A: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetBattleTransitionTypeByMap - - thumb_func_start GetSumOfPlayerPartyLevel -GetSumOfPlayerPartyLevel: @ 0x080B0684 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r7, #0 - movs r6, #0 -_080B068E: - movs r0, #0x64 - adds r1, r6, #0 - muls r1, r0, r1 - ldr r0, _080B06E0 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - adds r1, r0, #0 - movs r0, #0xce - lsls r0, r0, #1 - cmp r1, r0 - beq _080B06D2 - cmp r1, #0 - beq _080B06D2 - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _080B06D2 - adds r0, r4, #0 - movs r1, #0x38 - bl GetMonData - adds r0, r7, r0 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - subs r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - beq _080B06D8 -_080B06D2: - adds r6, #1 - cmp r6, #5 - ble _080B068E -_080B06D8: - adds r0, r7, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080B06E0: .4byte gUnknown_2024190 - thumb_func_end GetSumOfPlayerPartyLevel - - thumb_func_start sub_080B06E4 -sub_080B06E4: @ 0x080B06E4 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r5, _080B070C - lsrs r2, r0, #0xb - adds r4, r2, r5 - ldrb r0, [r4, #0x18] - cmp r0, r1 - bhs _080B06FA - adds r1, r0, #0 -_080B06FA: - movs r3, #0 - ldrb r0, [r4] - cmp r0, #1 - beq _080B0740 - cmp r0, #1 - bgt _080B0710 - cmp r0, #0 - beq _080B071A - b _080B07B0 - .align 2, 0 -_080B070C: .4byte gUnknown_82E383C -_080B0710: - cmp r0, #2 - beq _080B0766 - cmp r0, #3 - beq _080B078C - b _080B07B0 -_080B071A: - adds r0, r5, #0 - adds r0, #0x1c - adds r0, r2, r0 - ldr r4, [r0] - movs r2, #0 - cmp r3, r1 - bhs _080B07B0 -_080B0728: - lsls r0, r2, #3 - adds r0, r0, r4 - ldrb r0, [r0, #2] - adds r0, r3, r0 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, r1 - blo _080B0728 - b _080B07B0 -_080B0740: - adds r0, r5, #0 - adds r0, #0x1c - adds r0, r2, r0 - ldr r4, [r0] - movs r2, #0 - cmp r3, r1 - bhs _080B07B0 -_080B074E: - lsls r0, r2, #4 - adds r0, r0, r4 - ldrb r0, [r0, #2] - adds r0, r3, r0 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, r1 - blo _080B074E - b _080B07B0 -_080B0766: - adds r0, r5, #0 - adds r0, #0x1c - adds r0, r2, r0 - ldr r4, [r0] - movs r2, #0 - cmp r3, r1 - bhs _080B07B0 -_080B0774: - lsls r0, r2, #3 - adds r0, r0, r4 - ldrb r0, [r0, #2] - adds r0, r3, r0 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, r1 - blo _080B0774 - b _080B07B0 -_080B078C: - adds r0, r5, #0 - adds r0, #0x1c - adds r0, r2, r0 - ldr r4, [r0] - movs r2, #0 - cmp r3, r1 - bhs _080B07B0 -_080B079A: - lsls r0, r2, #4 - adds r0, r0, r4 - ldrb r0, [r0, #2] - adds r0, r3, r0 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, r1 - blo _080B079A -_080B07B0: - adds r0, r3, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_080B06E4 - - thumb_func_start GetWildBattleTransition -GetWildBattleTransition: @ 0x080B07B8 - push {r4, r5, r6, lr} - bl GetBattleTransitionTypeByMap - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r6, r5, #0 - ldr r0, _080B07F0 - movs r1, #0x38 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - bl GetSumOfPlayerPartyLevel - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - bhs _080B0800 - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B07F4 - movs r0, #0 - b _080B081E - .align 2, 0 -_080B07F0: .4byte gUnknown_20243E8 -_080B07F4: - ldr r0, _080B07FC - lsls r1, r5, #1 - b _080B0810 - .align 2, 0 -_080B07FC: .4byte gUnknown_852AB24 -_080B0800: - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B081C - ldr r0, _080B0818 - lsls r1, r6, #1 - adds r0, #1 -_080B0810: - adds r1, r1, r0 - ldrb r0, [r1] - b _080B081E - .align 2, 0 -_080B0818: .4byte gUnknown_852AB24 -_080B081C: - movs r0, #0xa -_080B081E: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end GetWildBattleTransition - - thumb_func_start sub_080B0824 -sub_080B0824: @ 0x080B0824 - push {r4, r5, r6, lr} - ldr r4, _080B084C - ldrh r1, [r4] - movs r0, #0x80 - lsls r0, r0, #3 - cmp r1, r0 - beq _080B0884 - ldr r1, _080B0850 - ldrh r2, [r4] - lsls r0, r2, #5 - adds r0, r0, r1 - ldrb r1, [r0, #1] - cmp r1, #0x1f - bne _080B0880 - adds r1, r2, #0 - ldr r0, _080B0854 - cmp r1, r0 - bne _080B0858 - movs r0, #0xc - b _080B08EC - .align 2, 0 -_080B084C: .4byte gUnknown_203886A -_080B0850: .4byte gUnknown_82E383C -_080B0854: .4byte 0x00000105 -_080B0858: - movs r0, #0x83 - lsls r0, r0, #1 - cmp r1, r0 - bne _080B0864 - movs r0, #0xd - b _080B08EC -_080B0864: - ldr r0, _080B0870 - cmp r1, r0 - bne _080B0874 - movs r0, #0xe - b _080B08EC - .align 2, 0 -_080B0870: .4byte 0x00000107 -_080B0874: - movs r0, #0x84 - lsls r0, r0, #1 - cmp r1, r0 - bne _080B0884 - movs r0, #0xf - b _080B08EC -_080B0880: - cmp r1, #0x26 - bne _080B0888 -_080B0884: - movs r0, #0x10 - b _080B08EC -_080B0888: - cmp r1, #9 - beq _080B0894 - cmp r1, #0x35 - beq _080B0894 - cmp r1, #0x31 - bne _080B0898 -_080B0894: - movs r0, #0x12 - b _080B08EC -_080B0898: - cmp r1, #3 - beq _080B08A4 - cmp r1, #0xd - beq _080B08A4 - cmp r1, #0xb - bne _080B08A8 -_080B08A4: - movs r0, #0x11 - b _080B08EC -_080B08A8: - ldrb r0, [r0, #0x12] - movs r5, #1 - cmp r0, #1 - bne _080B08B2 - movs r5, #2 -_080B08B2: - bl GetBattleTransitionTypeByMap - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldrh r0, [r4] - adds r1, r5, #0 - bl sub_080B06E4 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - bl GetSumOfPlayerPartyLevel - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - blo _080B08E4 - ldr r0, _080B08E0 - lsls r1, r6, #1 - adds r0, #1 - b _080B08E8 - .align 2, 0 -_080B08E0: .4byte gUnknown_852AB2C -_080B08E4: - ldr r0, _080B08F4 - lsls r1, r6, #1 -_080B08E8: - adds r1, r1, r0 - ldrb r0, [r1] -_080B08EC: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080B08F4: .4byte gUnknown_852AB2C - thumb_func_end sub_080B0824 - - thumb_func_start sub_080B08F8 -sub_080B08F8: @ 0x080B08F8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _080B0928 - movs r1, #0x38 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - bl GetSumOfPlayerPartyLevel - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - bhs _080B097C - cmp r5, #0xa - beq _080B0934 - cmp r5, #0xa - bgt _080B092C - cmp r5, #3 - beq _080B0948 - b _080B0958 - .align 2, 0 -_080B0928: .4byte gUnknown_20243E8 -_080B092C: - cmp r5, #0xd - bgt _080B0958 - movs r0, #4 - b _080B0A0C -_080B0934: - ldr r4, _080B0944 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - b _080B0A00 - .align 2, 0 -_080B0944: .4byte gUnknown_852AB40 -_080B0948: - ldr r4, _080B0954 - bl Random - ands r5, r0 - lsls r0, r5, #0x10 - b _080B0A06 - .align 2, 0 -_080B0954: .4byte gUnknown_852AB43 -_080B0958: - ldr r0, _080B0974 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #3 - beq _080B09D8 - ldr r4, _080B0978 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b _080B09FE - .align 2, 0 -_080B0974: .4byte 0x000040CE -_080B0978: .4byte gUnknown_852AB34 -_080B097C: - cmp r5, #0xa - beq _080B0992 - cmp r5, #0xa - bgt _080B098A - cmp r5, #3 - beq _080B09A4 - b _080B09B4 -_080B098A: - cmp r5, #0xd - bgt _080B09B4 - movs r0, #3 - b _080B0A0C -_080B0992: - ldr r4, _080B09A0 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - b _080B0A00 - .align 2, 0 -_080B09A0: .4byte gUnknown_852AB40 -_080B09A4: - ldr r4, _080B09B0 - bl Random - ands r5, r0 - lsls r0, r5, #0x10 - b _080B0A06 - .align 2, 0 -_080B09B0: .4byte gUnknown_852AB43 -_080B09B4: - ldr r0, _080B09D0 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #3 - beq _080B09D8 - ldr r4, _080B09D4 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b _080B09FE - .align 2, 0 -_080B09D0: .4byte 0x000040CE -_080B09D4: .4byte gUnknown_852AB34 -_080B09D8: - ldr r0, _080B0A14 - ldr r1, [r0] - ldr r2, _080B0A18 - adds r0, r1, r2 - ldrh r0, [r0] - lsls r2, r0, #2 - ldr r3, _080B0A1C - adds r1, r1, r3 - adds r2, r1, r2 - lsls r0, r0, #1 - adds r0, #1 - lsls r0, r0, #1 - adds r1, r1, r0 - ldrh r0, [r1] - ldrh r2, [r2] - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _080B0A20 -_080B09FE: - movs r1, #0xc -_080B0A00: - bl __umodsi3 - lsls r0, r0, #0x10 -_080B0A06: - lsrs r0, r0, #0x10 - adds r0, r0, r4 - ldrb r0, [r0] -_080B0A0C: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080B0A14: .4byte gUnknown_3005AF0 -_080B0A18: .4byte 0x00000CB2 -_080B0A1C: .4byte 0x00000CB4 -_080B0A20: .4byte gUnknown_852AB34 - thumb_func_end sub_080B08F8 - - thumb_func_start ChooseStarter -ChooseStarter: @ 0x080B0A24 - push {lr} - ldr r0, _080B0A38 - bl SetMainCallback2 - ldr r1, _080B0A3C - ldr r0, _080B0A40 - str r0, [r1, #8] - pop {r0} - bx r0 - .align 2, 0 -_080B0A38: .4byte CB2_ChooseStarter -_080B0A3C: .4byte gUnknown_3002360 -_080B0A40: .4byte CB2_GiveStarter - thumb_func_end ChooseStarter - - thumb_func_start CB2_GiveStarter -CB2_GiveStarter: @ 0x080B0A44 - push {lr} - sub sp, #8 - ldr r0, _080B0A88 - bl GetVarPointer - ldr r2, _080B0A8C - ldrh r1, [r2] - strh r1, [r0] - ldrh r0, [r2] - bl GetStarterPokemon - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0 - str r1, [sp] - str r1, [sp, #4] - movs r1, #5 - movs r2, #0 - movs r3, #0 - bl ScriptGiveMon - bl ResetTasks - bl sub_0806E0D8 - ldr r0, _080B0A90 - bl SetMainCallback2 - movs r0, #0 - bl BattleTransition_Start - add sp, #8 - pop {r0} - bx r0 - .align 2, 0 -_080B0A88: .4byte 0x00004023 -_080B0A8C: .4byte gUnknown_2037290 -_080B0A90: .4byte CB2_StartFirstBattle - thumb_func_end CB2_GiveStarter - - thumb_func_start CB2_StartFirstBattle -CB2_StartFirstBattle: @ 0x080B0A94 - push {lr} - bl UpdatePaletteFade - bl RunTasks - bl IsBattleTransitionDone - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080B0ADC - ldr r1, _080B0AE0 - movs r0, #0x10 - str r0, [r1] - ldr r1, _080B0AE4 - ldr r0, _080B0AE8 - str r0, [r1, #8] - bl FreeAllWindowBuffers - ldr r0, _080B0AEC - bl SetMainCallback2 - bl sub_0809C4B4 - bl ClearPoisonStepCounter - movs r0, #7 - bl IncrementGameStat - movs r0, #8 - bl IncrementGameStat - bl sub_080EF7CC - bl sub_080B0B04 -_080B0ADC: - pop {r0} - bx r0 - .align 2, 0 -_080B0AE0: .4byte gUnknown_2022C90 -_080B0AE4: .4byte gUnknown_3002360 -_080B0AE8: .4byte CB2_EndFirstBattle -_080B0AEC: .4byte CB2_InitBattle - thumb_func_end CB2_StartFirstBattle - - thumb_func_start CB2_EndFirstBattle -CB2_EndFirstBattle: @ 0x080B0AF0 - push {lr} - bl Overworld_ClearSavedMusic - ldr r0, _080B0B00 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080B0B00: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic - thumb_func_end CB2_EndFirstBattle - - thumb_func_start sub_080B0B04 -sub_080B0B04: @ 0x080B0B04 - push {lr} - movs r0, #8 - bl GetGameStat - movs r1, #0x3c - bl __umodsi3 - cmp r0, #0 - bne _080B0B1A - bl UpdateGymLeaderRematch -_080B0B1A: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080B0B04 - - thumb_func_start sub_080B0B20 -sub_080B0B20: @ 0x080B0B20 - push {lr} - movs r0, #9 - bl GetGameStat - movs r1, #0x14 - bl __umodsi3 - cmp r0, #0 - bne _080B0B36 - bl UpdateGymLeaderRematch -_080B0B36: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080B0B20 - - thumb_func_start TrainerBattleLoadArg32 -TrainerBattleLoadArg32: @ 0x080B0B3C - adds r2, r0, #0 - ldrb r0, [r2] - ldrb r1, [r2, #1] - lsls r1, r1, #8 - orrs r0, r1 - ldrb r1, [r2, #2] - lsls r1, r1, #0x10 - orrs r0, r1 - ldrb r1, [r2, #3] - lsls r1, r1, #0x18 - orrs r0, r1 - bx lr - thumb_func_end TrainerBattleLoadArg32 - - thumb_func_start TrainerBattleLoadArg16 -TrainerBattleLoadArg16: @ 0x080B0B54 - adds r1, r0, #0 - ldrb r0, [r1] - ldrb r1, [r1, #1] - lsls r1, r1, #8 - orrs r0, r1 - bx lr - thumb_func_end TrainerBattleLoadArg16 - - thumb_func_start sub_080B0B60 -sub_080B0B60: @ 0x080B0B60 - ldrb r0, [r0] - bx lr - thumb_func_end sub_080B0B60 - - thumb_func_start sub_080B0B64 -sub_080B0B64: @ 0x080B0B64 - ldr r1, _080B0B78 - movs r2, #0xa0 - lsls r2, r2, #3 - adds r0, r2, #0 - ldrh r1, [r1] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bx lr - .align 2, 0 -_080B0B78: .4byte gUnknown_203886A - thumb_func_end sub_080B0B64 - - thumb_func_start sub_080B0B7C -sub_080B0B7C: @ 0x080B0B7C - ldr r1, _080B0B90 - movs r2, #0xa0 - lsls r2, r2, #3 - adds r0, r2, #0 - ldrh r1, [r1] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bx lr - .align 2, 0 -_080B0B90: .4byte gUnknown_203886C - thumb_func_end sub_080B0B7C - - thumb_func_start IsPlayerDefeated -IsPlayerDefeated: @ 0x080B0B94 - push {lr} - subs r0, #1 - cmp r0, #6 - bhi _080B0BCC - lsls r0, r0, #2 - ldr r1, _080B0BA8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B0BA8: .4byte _080B0BAC -_080B0BAC: @ jump table - .4byte _080B0BCC @ case 0 - .4byte _080B0BC8 @ case 1 - .4byte _080B0BC8 @ case 2 - .4byte _080B0BCC @ case 3 - .4byte _080B0BCC @ case 4 - .4byte _080B0BCC @ case 5 - .4byte _080B0BCC @ case 6 -_080B0BC8: - movs r0, #1 - b _080B0BCE -_080B0BCC: - movs r0, #0 -_080B0BCE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsPlayerDefeated - - thumb_func_start ResetTrainerOpponentIds -ResetTrainerOpponentIds: @ 0x080B0BD4 - ldr r0, _080B0BE0 - movs r1, #0 - strh r1, [r0] - ldr r0, _080B0BE4 - strh r1, [r0] - bx lr - .align 2, 0 -_080B0BE0: .4byte gUnknown_203886A -_080B0BE4: .4byte gUnknown_203886C - thumb_func_end ResetTrainerOpponentIds - - thumb_func_start InitTrainerBattleVariables -InitTrainerBattleVariables: @ 0x080B0BE8 - push {lr} - ldr r0, _080B0C04 - movs r1, #0 - strh r1, [r0] - ldr r0, _080B0C08 - ldrb r1, [r0] - cmp r1, #0 - bne _080B0C18 - ldr r0, _080B0C0C - str r1, [r0] - ldr r0, _080B0C10 - str r1, [r0] - ldr r0, _080B0C14 - b _080B0C24 - .align 2, 0 -_080B0C04: .4byte gUnknown_2038868 -_080B0C08: .4byte gUnknown_203889C -_080B0C0C: .4byte gUnknown_2038874 -_080B0C10: .4byte gUnknown_203887C -_080B0C14: .4byte gUnknown_2038890 -_080B0C18: - ldr r0, _080B0C40 - movs r1, #0 - str r1, [r0] - ldr r0, _080B0C44 - str r1, [r0] - ldr r0, _080B0C48 -_080B0C24: - str r1, [r0] - ldr r1, _080B0C4C - movs r0, #0 - strh r0, [r1] - ldr r0, _080B0C50 - movs r1, #0 - str r1, [r0] - ldr r0, _080B0C54 - str r1, [r0] - ldr r0, _080B0C58 - str r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080B0C40: .4byte gUnknown_2038878 -_080B0C44: .4byte gUnknown_2038880 -_080B0C48: .4byte gUnknown_2038894 -_080B0C4C: .4byte gUnknown_2038870 -_080B0C50: .4byte gUnknown_2038884 -_080B0C54: .4byte gUnknown_2038888 -_080B0C58: .4byte gUnknown_203888C - thumb_func_end InitTrainerBattleVariables - - thumb_func_start TrainerBattleLoadArgs -TrainerBattleLoadArgs: @ 0x080B0C5C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 -_080B0C62: - ldrb r0, [r4, #4] - cmp r0, #6 - bhi _080B0CD4 - lsls r0, r0, #2 - ldr r1, _080B0C74 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B0C74: .4byte _080B0C78 -_080B0C78: @ jump table - .4byte _080B0C94 @ case 0 - .4byte _080B0CA2 @ case 1 - .4byte _080B0CB0 @ case 2 - .4byte _080B0CBE @ case 3 - .4byte _080B0CC6 @ case 4 - .4byte _080B0CCE @ case 5 - .4byte _080B0CD8 @ case 6 -_080B0C94: - adds r0, r5, #0 - bl sub_080B0B60 - ldr r1, [r4] - strb r0, [r1] - adds r5, #1 - b _080B0CD4 -_080B0CA2: - adds r0, r5, #0 - bl TrainerBattleLoadArg16 - ldr r1, [r4] - strh r0, [r1] - adds r5, #2 - b _080B0CD4 -_080B0CB0: - adds r0, r5, #0 - bl TrainerBattleLoadArg32 - ldr r1, [r4] - str r0, [r1] - adds r5, #4 - b _080B0CD4 -_080B0CBE: - ldr r1, [r4] - movs r0, #0 - strb r0, [r1] - b _080B0CD4 -_080B0CC6: - ldr r1, [r4] - movs r0, #0 - strh r0, [r1] - b _080B0CD4 -_080B0CCE: - ldr r1, [r4] - movs r0, #0 - str r0, [r1] -_080B0CD4: - adds r4, #8 - b _080B0C62 -_080B0CD8: - ldr r0, [r4] - str r5, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end TrainerBattleLoadArgs - - thumb_func_start SetMapVarsToTrainer -SetMapVarsToTrainer: @ 0x080B0CE4 - push {lr} - ldr r0, _080B0D0C - ldrh r1, [r0] - cmp r1, #0 - beq _080B0D06 - ldr r0, _080B0D10 - strh r1, [r0] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080B0D14 - ldr r2, [r1] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - bl GetEventObjectIdByLocalIdAndMap - ldr r1, _080B0D18 - strb r0, [r1] -_080B0D06: - pop {r0} - bx r0 - .align 2, 0 -_080B0D0C: .4byte gUnknown_2038870 -_080B0D10: .4byte gUnknown_2037292 -_080B0D14: .4byte gUnknown_3005AEC -_080B0D18: .4byte gUnknown_3005B50 - thumb_func_end SetMapVarsToTrainer - - thumb_func_start BattleSetup_ConfigureTrainerBattle -BattleSetup_ConfigureTrainerBattle: @ 0x080B0D1C - push {r4, r5, lr} - adds r5, r0, #0 - bl InitTrainerBattleVariables - ldr r4, _080B0D48 - adds r0, r5, #0 - bl sub_080B0B60 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - ldrh r0, [r4] - subs r0, #1 - cmp r0, #0xb - bls _080B0D3C - b _080B0EE0 -_080B0D3C: - lsls r0, r0, #2 - ldr r1, _080B0D4C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B0D48: .4byte gUnknown_2038868 -_080B0D4C: .4byte _080B0D50 -_080B0D50: @ jump table - .4byte _080B0DB8 @ case 0 - .4byte _080B0D9C @ case 1 - .4byte _080B0D80 @ case 2 - .4byte _080B0D94 @ case 3 - .4byte _080B0E00 @ case 4 - .4byte _080B0DC0 @ case 5 - .4byte _080B0DD8 @ case 6 - .4byte _080B0DC0 @ case 7 - .4byte _080B0E28 @ case 8 - .4byte _080B0E7C @ case 9 - .4byte _080B0E84 @ case 10 - .4byte _080B0E94 @ case 11 -_080B0D80: - ldr r0, _080B0D8C - adds r1, r5, #0 - bl TrainerBattleLoadArgs - ldr r0, _080B0D90 - b _080B0F0A - .align 2, 0 -_080B0D8C: .4byte gUnknown_852AC20 -_080B0D90: .4byte gUnknown_824245C -_080B0D94: - ldr r0, _080B0D98 - b _080B0DC2 - .align 2, 0 -_080B0D98: .4byte gUnknown_852ABD8 -_080B0D9C: - ldr r0, _080B0DA8 - ldrb r0, [r0] - cmp r0, #0 - bne _080B0DB0 - ldr r0, _080B0DAC - b _080B0EEA - .align 2, 0 -_080B0DA8: .4byte gUnknown_203889C -_080B0DAC: .4byte gUnknown_852AB90 -_080B0DB0: - ldr r0, _080B0DB4 - b _080B0F02 - .align 2, 0 -_080B0DB4: .4byte gUnknown_852ACF8 -_080B0DB8: - ldr r0, _080B0DBC - b _080B0EEA - .align 2, 0 -_080B0DBC: .4byte gUnknown_852AB90 -_080B0DC0: - ldr r0, _080B0DD0 -_080B0DC2: - adds r1, r5, #0 - bl TrainerBattleLoadArgs - bl SetMapVarsToTrainer - ldr r0, _080B0DD4 - b _080B0F0A - .align 2, 0 -_080B0DD0: .4byte gUnknown_852AC68 -_080B0DD4: .4byte gUnknown_8242424 -_080B0DD8: - ldr r0, _080B0DF4 - adds r1, r5, #0 - bl TrainerBattleLoadArgs - bl SetMapVarsToTrainer - ldr r4, _080B0DF8 - ldrh r0, [r4] - bl GetRematchTrainerId - strh r0, [r4] - ldr r0, _080B0DFC - b _080B0F0A - .align 2, 0 -_080B0DF4: .4byte gUnknown_852ABD8 -_080B0DF8: .4byte gUnknown_203886A -_080B0DFC: .4byte gUnknown_8242492 -_080B0E00: - ldr r0, _080B0E1C - adds r1, r5, #0 - bl TrainerBattleLoadArgs - bl SetMapVarsToTrainer - ldr r4, _080B0E20 - ldrh r0, [r4] - bl GetRematchTrainerId - strh r0, [r4] - ldr r0, _080B0E24 - b _080B0F0A - .align 2, 0 -_080B0E1C: .4byte gUnknown_852AB48 -_080B0E20: .4byte gUnknown_203886A -_080B0E24: .4byte gUnknown_824246B -_080B0E28: - ldr r0, _080B0E48 - ldrb r0, [r0] - cmp r0, #0 - bne _080B0E58 - ldr r0, _080B0E4C - adds r1, r5, #0 - bl TrainerBattleLoadArgs - bl SetMapVarsToTrainer - ldr r0, _080B0E50 - ldrb r0, [r0] - bl sub_081A9820 - ldr r1, _080B0E54 - b _080B0E6A - .align 2, 0 -_080B0E48: .4byte gUnknown_203889C -_080B0E4C: .4byte gUnknown_852AB48 -_080B0E50: .4byte gUnknown_2037292 -_080B0E54: .4byte gUnknown_203886A -_080B0E58: - ldr r0, _080B0E70 - adds r1, r5, #0 - bl TrainerBattleLoadArgs - ldr r0, _080B0E74 - ldrb r0, [r0] - bl sub_081A9820 -_080B0E68: - ldr r1, _080B0E78 -_080B0E6A: - strh r0, [r1] - b _080B0F08 - .align 2, 0 -_080B0E70: .4byte gUnknown_852ACB0 -_080B0E74: .4byte gUnknown_2037292 -_080B0E78: .4byte gUnknown_203886C -_080B0E7C: - ldr r0, _080B0E80 - b _080B0E86 - .align 2, 0 -_080B0E80: .4byte gUnknown_852AB48 -_080B0E84: - ldr r0, _080B0E90 -_080B0E86: - adds r1, r5, #0 - bl TrainerBattleLoadArgs - movs r0, #0 - b _080B0F0A - .align 2, 0 -_080B0E90: .4byte gUnknown_852ACB0 -_080B0E94: - ldr r0, _080B0EB4 - ldrb r0, [r0] - cmp r0, #0 - bne _080B0EC4 - ldr r0, _080B0EB8 - adds r1, r5, #0 - bl TrainerBattleLoadArgs - bl SetMapVarsToTrainer - ldr r0, _080B0EBC - ldrb r0, [r0] - bl sub_081D5B1C - ldr r1, _080B0EC0 - b _080B0E6A - .align 2, 0 -_080B0EB4: .4byte gUnknown_203889C -_080B0EB8: .4byte gUnknown_852AB48 -_080B0EBC: .4byte gUnknown_2037292 -_080B0EC0: .4byte gUnknown_203886A -_080B0EC4: - ldr r0, _080B0ED8 - adds r1, r5, #0 - bl TrainerBattleLoadArgs - ldr r0, _080B0EDC - ldrb r0, [r0] - bl sub_081D5B1C - b _080B0E68 - .align 2, 0 -_080B0ED8: .4byte gUnknown_852ACB0 -_080B0EDC: .4byte gUnknown_2037292 -_080B0EE0: - ldr r0, _080B0EF8 - ldrb r0, [r0] - cmp r0, #0 - bne _080B0F00 - ldr r0, _080B0EFC -_080B0EEA: - adds r1, r5, #0 - bl TrainerBattleLoadArgs - bl SetMapVarsToTrainer - b _080B0F08 - .align 2, 0 -_080B0EF8: .4byte gUnknown_203889C -_080B0EFC: .4byte gUnknown_852AB48 -_080B0F00: - ldr r0, _080B0F10 -_080B0F02: - adds r1, r5, #0 - bl TrainerBattleLoadArgs -_080B0F08: - ldr r0, _080B0F14 -_080B0F0A: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080B0F10: .4byte gUnknown_852ACB0 -_080B0F14: .4byte gUnknown_82423FC - thumb_func_end BattleSetup_ConfigureTrainerBattle - - thumb_func_start ConfigureAndSetUpOneTrainerBattle -ConfigureAndSetUpOneTrainerBattle: @ 0x080B0F18 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080B0F4C - strb r0, [r2] - ldr r4, _080B0F50 - ldr r3, _080B0F54 - lsls r2, r0, #3 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r3 - ldrb r0, [r2, #8] - strh r0, [r4] - adds r1, #1 - adds r0, r1, #0 - bl BattleSetup_ConfigureTrainerBattle - ldr r0, _080B0F58 - bl ScriptContext1_SetupScript - bl sub_080987DC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B0F4C: .4byte gUnknown_3005B50 -_080B0F50: .4byte gUnknown_2037292 -_080B0F54: .4byte gUnknown_2036FF0 -_080B0F58: .4byte gUnknown_82423EE - thumb_func_end ConfigureAndSetUpOneTrainerBattle - - thumb_func_start ConfigureTwoTrainersBattle -ConfigureTwoTrainersBattle: @ 0x080B0F5C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080B0F84 - strb r0, [r2] - ldr r4, _080B0F88 - ldr r3, _080B0F8C - lsls r2, r0, #3 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r3 - ldrb r0, [r2, #8] - strh r0, [r4] - adds r1, #1 - adds r0, r1, #0 - bl BattleSetup_ConfigureTrainerBattle - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B0F84: .4byte gUnknown_3005B50 -_080B0F88: .4byte gUnknown_2037292 -_080B0F8C: .4byte gUnknown_2036FF0 - thumb_func_end ConfigureTwoTrainersBattle - - thumb_func_start SetUpTwoTrainersBattle -SetUpTwoTrainersBattle: @ 0x080B0F90 - push {lr} - ldr r0, _080B0FA0 - bl ScriptContext1_SetupScript - bl sub_080987DC - pop {r0} - bx r0 - .align 2, 0 -_080B0FA0: .4byte gUnknown_82423EE - thumb_func_end SetUpTwoTrainersBattle - - thumb_func_start GetTrainerFlagFromScriptPointer -GetTrainerFlagFromScriptPointer: @ 0x080B0FA4 - push {lr} - adds r0, #2 - bl TrainerBattleLoadArg16 - lsls r0, r0, #0x10 - movs r1, #0xa0 - lsls r1, r1, #0x13 - adds r0, r0, r1 - lsrs r0, r0, #0x10 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetTrainerFlagFromScriptPointer - - thumb_func_start SetUpTrainerMovement -SetUpTrainerMovement: @ 0x080B0FC4 - push {r4, lr} - ldr r0, _080B0FF0 - ldrb r0, [r0] - lsls r4, r0, #3 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _080B0FF4 - adds r4, r4, r0 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_080924E8 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl SetTrainerMovementType - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B0FF0: .4byte gUnknown_3005B50 -_080B0FF4: .4byte gUnknown_2036FF0 - thumb_func_end SetUpTrainerMovement - - thumb_func_start sub_080B0FF8 -sub_080B0FF8: @ 0x080B0FF8 - ldr r0, _080B1000 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080B1000: .4byte gUnknown_2038868 - thumb_func_end sub_080B0FF8 - - thumb_func_start GetTrainerFlag -GetTrainerFlag: @ 0x080B1004 - push {lr} - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B1020 - ldr r0, _080B101C - ldrb r0, [r0] - bl GetBattlePyramidTrainerFlag - b _080B103E - .align 2, 0 -_080B101C: .4byte gUnknown_3005B50 -_080B1020: - bl InTrainerHill - cmp r0, #0 - bne _080B1036 - bl sub_080B0B64 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl FlagGet - b _080B103E -_080B1036: - ldr r0, _080B1048 - ldrb r0, [r0] - bl GetHillTrainerFlag -_080B103E: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_080B1048: .4byte gUnknown_3005B50 - thumb_func_end GetTrainerFlag - - thumb_func_start SetBattledTrainersFlags -SetBattledTrainersFlags: @ 0x080B104C - push {lr} - ldr r0, _080B1074 - ldrh r0, [r0] - cmp r0, #0 - beq _080B1062 - bl sub_080B0B7C - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl FlagSet -_080B1062: - bl sub_080B0B64 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl FlagSet - pop {r0} - bx r0 - .align 2, 0 -_080B1074: .4byte gUnknown_203886C - thumb_func_end SetBattledTrainersFlags - - thumb_func_start SetBattledTrainerFlag -SetBattledTrainerFlag: @ 0x080B1078 - push {lr} - bl sub_080B0B64 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl FlagSet - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetBattledTrainerFlag - - thumb_func_start HasTrainerBeenFought -HasTrainerBeenFought: @ 0x080B108C - push {lr} - lsls r0, r0, #0x10 - movs r1, #0xa0 - lsls r1, r1, #0x13 - adds r0, r0, r1 - lsrs r0, r0, #0x10 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - thumb_func_end HasTrainerBeenFought - - thumb_func_start sub_080B10A4 -sub_080B10A4: @ 0x080B10A4 - push {lr} - lsls r0, r0, #0x10 - movs r1, #0xa0 - lsls r1, r1, #0x13 - adds r0, r0, r1 - lsrs r0, r0, #0x10 - bl FlagSet - pop {r0} - bx r0 - thumb_func_end sub_080B10A4 - - thumb_func_start SetTrainerFlag -SetTrainerFlag: @ 0x080B10B8 - push {lr} - lsls r0, r0, #0x10 - movs r1, #0xa0 - lsls r1, r1, #0x13 - adds r0, r0, r1 - lsrs r0, r0, #0x10 - bl FlagClear - pop {r0} - bx r0 - thumb_func_end SetTrainerFlag - - thumb_func_start BattleSetup_StartTrainerBattle -BattleSetup_StartTrainerBattle: @ 0x080B10CC - push {r4, lr} - ldr r0, _080B10DC - ldrb r0, [r0] - cmp r0, #2 - bne _080B10E8 - ldr r1, _080B10E0 - ldr r0, _080B10E4 - b _080B10EC - .align 2, 0 -_080B10DC: .4byte gUnknown_3005E08 -_080B10E0: .4byte gUnknown_2022C90 -_080B10E4: .4byte 0x00008009 -_080B10E8: - ldr r1, _080B1140 - movs r0, #8 -_080B10EC: - str r0, [r1] - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B1170 - ldr r0, _080B1144 - movs r1, #0 - bl VarSet - ldr r2, _080B1140 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0xe - orrs r0, r1 - str r0, [r2] - ldr r0, _080B1148 - ldrb r0, [r0] - cmp r0, #2 - bne _080B1150 - movs r0, #1 - bl FillFrontierTrainersParties - ldr r4, _080B114C - adds r0, r4, #0 - bl ZeroMonData - adds r0, r4, #0 - adds r0, #0x64 - bl ZeroMonData - movs r1, #0x96 - lsls r1, r1, #1 - adds r0, r4, r1 - bl ZeroMonData - movs r1, #0xc8 - lsls r1, r1, #1 - adds r0, r4, r1 - bl ZeroMonData - b _080B1166 - .align 2, 0 -_080B1140: .4byte gUnknown_2022C90 -_080B1144: .4byte 0x0000400E -_080B1148: .4byte gUnknown_3005E08 -_080B114C: .4byte gUnknown_202444C -_080B1150: - movs r0, #1 - bl FillFrontierTrainerParty - ldr r4, _080B116C - adds r0, r4, #0 - bl ZeroMonData - adds r4, #0x64 - adds r0, r4, #0 - bl ZeroMonData -_080B1166: - bl MarkApproachingPyramidTrainersAsBattled - b _080B11A4 - .align 2, 0 -_080B116C: .4byte gUnknown_202444C -_080B1170: - bl sub_081D52F0 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B11A4 - ldr r2, _080B1194 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0x13 - orrs r0, r1 - str r0, [r2] - ldr r0, _080B1198 - ldrb r0, [r0] - cmp r0, #2 - bne _080B119C - bl FillHillTrainersParties - b _080B11A0 - .align 2, 0 -_080B1194: .4byte gUnknown_2022C90 -_080B1198: .4byte gUnknown_3005E08 -_080B119C: - bl FillHillTrainerParty -_080B11A0: - bl SetHillTrainerFlag -_080B11A4: - ldr r1, _080B11DC - ldr r2, _080B11E0 - ldrb r0, [r2] - strb r0, [r1] - movs r1, #0 - strb r1, [r2] - ldr r0, _080B11E4 - strb r1, [r0] - ldr r1, _080B11E8 - movs r0, #0 - strh r0, [r1] - ldr r1, _080B11EC - ldr r0, _080B11F0 - str r0, [r1, #8] - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B11D4 - bl sub_081D52F0 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B11F4 -_080B11D4: - bl sub_080B0124 - b _080B11F8 - .align 2, 0 -_080B11DC: .4byte gUnknown_2038899 -_080B11E0: .4byte gUnknown_3005E08 -_080B11E4: .4byte gUnknown_2038898 -_080B11E8: .4byte gUnknown_3005DE0 -_080B11EC: .4byte gUnknown_3002360 -_080B11F0: .4byte CB2_EndTrainerBattle -_080B11F4: - bl DoTrainerBattle -_080B11F8: - bl sub_080988B8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BattleSetup_StartTrainerBattle - - thumb_func_start CB2_EndTrainerBattle -CB2_EndTrainerBattle: @ 0x080B1204 - push {lr} - ldr r0, _080B123C - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #3 - cmp r1, r0 - beq _080B1232 - ldr r0, _080B1240 - ldrb r0, [r0] - bl IsPlayerDefeated - cmp r0, #1 - bne _080B1254 - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B1232 - bl sub_081D52F0 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B1248 -_080B1232: - ldr r0, _080B1244 - bl SetMainCallback2 - b _080B1276 - .align 2, 0 -_080B123C: .4byte gUnknown_203886A -_080B1240: .4byte gUnknown_2023FDE -_080B1244: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic -_080B1248: - ldr r0, _080B1250 - bl SetMainCallback2 - b _080B1276 - .align 2, 0 -_080B1250: .4byte CB2_WhiteOut -_080B1254: - ldr r0, _080B127C - bl SetMainCallback2 - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B1276 - bl sub_081D52F0 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B1276 - bl RegisterTrainerInMatchCall - bl SetBattledTrainersFlags -_080B1276: - pop {r0} - bx r0 - .align 2, 0 -_080B127C: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic - thumb_func_end CB2_EndTrainerBattle - - thumb_func_start CB2_EndRematchBattle -CB2_EndRematchBattle: @ 0x080B1280 - push {lr} - ldr r0, _080B1298 - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #3 - cmp r1, r0 - bne _080B12A0 - ldr r0, _080B129C - bl SetMainCallback2 - b _080B12CE - .align 2, 0 -_080B1298: .4byte gUnknown_203886A -_080B129C: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic -_080B12A0: - ldr r0, _080B12B4 - ldrb r0, [r0] - bl IsPlayerDefeated - cmp r0, #1 - bne _080B12BC - ldr r0, _080B12B8 - bl SetMainCallback2 - b _080B12CE - .align 2, 0 -_080B12B4: .4byte gUnknown_2023FDE -_080B12B8: .4byte CB2_WhiteOut -_080B12BC: - ldr r0, _080B12D4 - bl SetMainCallback2 - bl RegisterTrainerInMatchCall - bl SetBattledTrainersFlags - bl HandleRematchVarsOnBattleEnd -_080B12CE: - pop {r0} - bx r0 - .align 2, 0 -_080B12D4: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic - thumb_func_end CB2_EndRematchBattle - - thumb_func_start BattleSetup_StartRematchBattle -BattleSetup_StartRematchBattle: @ 0x080B12D8 - push {lr} - ldr r1, _080B12F4 - movs r0, #8 - str r0, [r1] - ldr r1, _080B12F8 - ldr r0, _080B12FC - str r0, [r1, #8] - bl DoTrainerBattle - bl sub_080988B8 - pop {r0} - bx r0 - .align 2, 0 -_080B12F4: .4byte gUnknown_2022C90 -_080B12F8: .4byte gUnknown_3002360 -_080B12FC: .4byte CB2_EndRematchBattle - thumb_func_end BattleSetup_StartRematchBattle - - thumb_func_start ShowTrainerIntroSpeech -ShowTrainerIntroSpeech: @ 0x080B1300 - push {lr} - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B1368 - ldr r0, _080B1328 - ldrb r0, [r0] - cmp r0, #1 - bhi _080B1330 - ldr r0, _080B132C - ldrb r0, [r0] - bl sub_081A9820 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl CopyPyramidTrainerSpeechBefore - b _080B13C4 - .align 2, 0 -_080B1328: .4byte gUnknown_3005E08 -_080B132C: .4byte gUnknown_2037292 -_080B1330: - ldr r3, _080B135C - ldr r2, _080B1360 - ldr r0, _080B1364 - ldrb r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r0, [r0, #8] - bl sub_081A9820 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl CopyPyramidTrainerSpeechBefore - b _080B13C4 - .align 2, 0 -_080B135C: .4byte gUnknown_2036FF0 -_080B1360: .4byte gUnknown_3005DF0 -_080B1364: .4byte gUnknown_203889C -_080B1368: - bl sub_081D52F0 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B13D8 - ldr r0, _080B1390 - ldrb r0, [r0] - cmp r0, #1 - bhi _080B1398 - ldr r0, _080B1394 - ldrb r0, [r0] - bl sub_081D5B1C - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #2 - bl CopyTrainerHillTrainerText - b _080B13C4 - .align 2, 0 -_080B1390: .4byte gUnknown_3005E08 -_080B1394: .4byte gUnknown_2037292 -_080B1398: - ldr r3, _080B13CC - ldr r2, _080B13D0 - ldr r0, _080B13D4 - ldrb r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r0, [r0, #8] - bl sub_081D5B1C - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #2 - bl CopyTrainerHillTrainerText -_080B13C4: - bl sub_08097C40 - b _080B13E0 - .align 2, 0 -_080B13CC: .4byte gUnknown_2036FF0 -_080B13D0: .4byte gUnknown_3005DF0 -_080B13D4: .4byte gUnknown_203889C -_080B13D8: - bl GetIntroSpeechOfApproachingTrainer - bl ShowFieldMessage -_080B13E0: - pop {r0} - bx r0 - thumb_func_end ShowTrainerIntroSpeech - - thumb_func_start BattleSetup_GetScriptAddrAfterBattle -BattleSetup_GetScriptAddrAfterBattle: @ 0x080B13E4 - push {lr} - ldr r0, _080B13F4 - ldr r0, [r0] - cmp r0, #0 - bne _080B13F0 - ldr r0, _080B13F8 -_080B13F0: - pop {r1} - bx r1 - .align 2, 0 -_080B13F4: .4byte gUnknown_203888C -_080B13F8: .4byte gUnknown_8276D3D - thumb_func_end BattleSetup_GetScriptAddrAfterBattle - - thumb_func_start BattleSetup_GetTrainerPostBattleScript -BattleSetup_GetTrainerPostBattleScript: @ 0x080B13FC - push {lr} - ldr r1, _080B141C - ldrb r2, [r1] - cmp r2, #0 - beq _080B1428 - movs r0, #0 - strb r0, [r1] - ldr r0, _080B1420 - ldr r2, [r0] - cmp r2, #0 - beq _080B1440 - ldr r1, _080B1424 - movs r0, #1 - strh r0, [r1] - adds r0, r2, #0 - b _080B1442 - .align 2, 0 -_080B141C: .4byte gUnknown_2038898 -_080B1420: .4byte gUnknown_2038894 -_080B1424: .4byte gUnknown_3005DE0 -_080B1428: - ldr r0, _080B1438 - ldr r1, [r0] - cmp r1, #0 - beq _080B1440 - ldr r0, _080B143C - strh r2, [r0] - adds r0, r1, #0 - b _080B1442 - .align 2, 0 -_080B1438: .4byte gUnknown_2038890 -_080B143C: .4byte gUnknown_3005DE0 -_080B1440: - ldr r0, _080B1448 -_080B1442: - pop {r1} - bx r1 - .align 2, 0 -_080B1448: .4byte gUnknown_8244D10 - thumb_func_end BattleSetup_GetTrainerPostBattleScript - - thumb_func_start ShowTrainerCantBattleSpeech -ShowTrainerCantBattleSpeech: @ 0x080B144C - push {lr} - bl GetTrainerCantBattleSpeech - bl ShowFieldMessage - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ShowTrainerCantBattleSpeech - - thumb_func_start SetUpTrainerEncounterMusic -SetUpTrainerEncounterMusic: @ 0x080B145C - push {lr} - ldr r0, _080B146C - ldrb r0, [r0] - cmp r0, #0 - bne _080B1474 - ldr r0, _080B1470 - b _080B1476 - .align 2, 0 -_080B146C: .4byte gUnknown_203889C -_080B1470: .4byte gUnknown_203886A -_080B1474: - ldr r0, _080B149C -_080B1476: - ldrh r1, [r0] - ldr r0, _080B14A0 - ldrh r0, [r0] - cmp r0, #1 - beq _080B154E - cmp r0, #8 - beq _080B154E - adds r0, r1, #0 - bl sub_0806D324 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xd - bhi _080B1548 - lsls r0, r0, #2 - ldr r1, _080B14A4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B149C: .4byte gUnknown_203886C -_080B14A0: .4byte gUnknown_2038868 -_080B14A4: .4byte _080B14A8 -_080B14A8: @ jump table - .4byte _080B14E0 @ case 0 - .4byte _080B14E6 @ case 1 - .4byte _080B14F0 @ case 2 - .4byte _080B1548 @ case 3 - .4byte _080B14F8 @ case 4 - .4byte _080B14FE @ case 5 - .4byte _080B1508 @ case 6 - .4byte _080B1510 @ case 7 - .4byte _080B1518 @ case 8 - .4byte _080B1520 @ case 9 - .4byte _080B1528 @ case 10 - .4byte _080B152E @ case 11 - .4byte _080B1538 @ case 12 - .4byte _080B1540 @ case 13 -_080B14E0: - movs r0, #0xbe - lsls r0, r0, #1 - b _080B154A -_080B14E6: - ldr r0, _080B14EC - b _080B154A - .align 2, 0 -_080B14EC: .4byte 0x00000197 -_080B14F0: - ldr r0, _080B14F4 - b _080B154A - .align 2, 0 -_080B14F4: .4byte 0x0000017B -_080B14F8: - movs r0, #0xd0 - lsls r0, r0, #1 - b _080B154A -_080B14FE: - ldr r0, _080B1504 - b _080B154A - .align 2, 0 -_080B1504: .4byte 0x000001A1 -_080B1508: - ldr r0, _080B150C - b _080B154A - .align 2, 0 -_080B150C: .4byte 0x000001A3 -_080B1510: - ldr r0, _080B1514 - b _080B154A - .align 2, 0 -_080B1514: .4byte 0x000001B9 -_080B1518: - ldr r0, _080B151C - b _080B154A - .align 2, 0 -_080B151C: .4byte 0x00000181 -_080B1520: - ldr r0, _080B1524 - b _080B154A - .align 2, 0 -_080B1524: .4byte 0x000001C1 -_080B1528: - movs r0, #0xe1 - lsls r0, r0, #1 - b _080B154A -_080B152E: - ldr r0, _080B1534 - b _080B154A - .align 2, 0 -_080B1534: .4byte 0x000001C3 -_080B1538: - ldr r0, _080B153C - b _080B154A - .align 2, 0 -_080B153C: .4byte 0x000001C5 -_080B1540: - ldr r0, _080B1544 - b _080B154A - .align 2, 0 -_080B1544: .4byte 0x0000018D -_080B1548: - ldr r0, _080B1554 -_080B154A: - bl PlayNewMapMusic -_080B154E: - pop {r0} - bx r0 - .align 2, 0 -_080B1554: .4byte 0x000001A7 - thumb_func_end SetUpTrainerEncounterMusic - - thumb_func_start ReturnEmptyStringIfNull -ReturnEmptyStringIfNull: @ 0x080B1558 - push {lr} - cmp r0, #0 - bne _080B1560 - ldr r0, _080B1564 -_080B1560: - pop {r1} - bx r1 - .align 2, 0 -_080B1564: .4byte gUnknown_85C93D0 - thumb_func_end ReturnEmptyStringIfNull - - thumb_func_start GetIntroSpeechOfApproachingTrainer -GetIntroSpeechOfApproachingTrainer: @ 0x080B1568 - push {lr} - ldr r0, _080B1578 - ldrb r0, [r0] - cmp r0, #0 - beq _080B1580 - ldr r0, _080B157C - b _080B1582 - .align 2, 0 -_080B1578: .4byte gUnknown_203889C -_080B157C: .4byte gUnknown_2038878 -_080B1580: - ldr r0, _080B158C -_080B1582: - ldr r0, [r0] - bl ReturnEmptyStringIfNull - pop {r1} - bx r1 - .align 2, 0 -_080B158C: .4byte gUnknown_2038874 - thumb_func_end GetIntroSpeechOfApproachingTrainer - - thumb_func_start GetTrainerALoseText -GetTrainerALoseText: @ 0x080B1590 - push {r4, lr} - ldr r0, _080B15A4 - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #3 - cmp r1, r0 - bne _080B15A8 - bl GetSecretBaseTrainerLoseText - b _080B15AC - .align 2, 0 -_080B15A4: .4byte gUnknown_203886A -_080B15A8: - ldr r0, _080B15C4 - ldr r0, [r0] -_080B15AC: - ldr r4, _080B15C8 - bl ReturnEmptyStringIfNull - adds r1, r0, #0 - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080B15C4: .4byte gUnknown_203887C -_080B15C8: .4byte gUnknown_2021C7C - thumb_func_end GetTrainerALoseText - - thumb_func_start GetTrainerBLoseText -GetTrainerBLoseText: @ 0x080B15CC - push {r4, lr} - ldr r4, _080B15E8 - ldr r0, _080B15EC - ldr r0, [r0] - bl ReturnEmptyStringIfNull - adds r1, r0, #0 - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080B15E8: .4byte gUnknown_2021C7C -_080B15EC: .4byte gUnknown_2038880 - thumb_func_end GetTrainerBLoseText - - thumb_func_start GetTrainerWonSpeech -GetTrainerWonSpeech: @ 0x080B15F0 - push {lr} - ldr r0, _080B1600 - ldr r0, [r0] - bl ReturnEmptyStringIfNull - pop {r1} - bx r1 - .align 2, 0 -_080B1600: .4byte gUnknown_2038884 - thumb_func_end GetTrainerWonSpeech - - thumb_func_start GetTrainerCantBattleSpeech -GetTrainerCantBattleSpeech: @ 0x080B1604 - push {lr} - ldr r0, _080B1614 - ldr r0, [r0] - bl ReturnEmptyStringIfNull - pop {r1} - bx r1 - .align 2, 0 -_080B1614: .4byte gUnknown_2038888 - thumb_func_end GetTrainerCantBattleSpeech - - thumb_func_start FirstBattleTrainerIdToRematchTableId -FirstBattleTrainerIdToRematchTableId: @ 0x080B1618 - push {lr} - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r3, #0 - adds r2, r0, #0 -_080B1622: - ldrh r0, [r2] - cmp r0, r1 - bne _080B162C - adds r0, r3, #0 - b _080B1638 -_080B162C: - adds r2, #0x10 - adds r3, #1 - cmp r3, #0x4d - ble _080B1622 - movs r0, #1 - rsbs r0, r0, #0 -_080B1638: - pop {r1} - bx r1 - thumb_func_end FirstBattleTrainerIdToRematchTableId - - thumb_func_start TrainerIdToRematchTableId -TrainerIdToRematchTableId: @ 0x080B163C - push {r4, r5, lr} - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - movs r4, #0 - adds r2, r0, #0 -_080B1646: - movs r1, #0 - ldrh r0, [r2] - cmp r0, #0 - beq _080B166C - movs r3, #0 -_080B1650: - adds r0, r2, r3 - ldrh r0, [r0] - cmp r0, r5 - bne _080B165C - adds r0, r4, #0 - b _080B1678 -_080B165C: - adds r3, #2 - adds r1, #1 - cmp r1, #4 - bgt _080B166C - adds r0, r2, r3 - ldrh r0, [r0] - cmp r0, #0 - bne _080B1650 -_080B166C: - adds r2, #0x10 - adds r4, #1 - cmp r4, #0x4d - ble _080B1646 - movs r0, #1 - rsbs r0, r0, #0 -_080B1678: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end TrainerIdToRematchTableId - - thumb_func_start sub_080B1680 -sub_080B1680: @ 0x080B1680 - push {lr} - cmp r0, #0x48 - ble _080B168A - movs r0, #1 - b _080B16A4 -_080B168A: - cmp r0, #0x40 - bne _080B16A2 - movs r0, #0x7e - bl FlagGet - movs r1, #0 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B169E - movs r1, #1 -_080B169E: - adds r0, r1, #0 - b _080B16A4 -_080B16A2: - movs r0, #0 -_080B16A4: - pop {r1} - bx r1 - thumb_func_end sub_080B1680 - - thumb_func_start SetRematchIdForTrainer -SetRematchIdForTrainer: @ 0x080B16A8 - push {r4, r5, r6, lr} - adds r6, r1, #0 - movs r5, #1 - lsls r1, r6, #4 - adds r1, r1, r0 - adds r4, r1, #2 - b _080B16BA -_080B16B6: - adds r4, #2 - adds r5, #1 -_080B16BA: - cmp r5, #4 - bgt _080B16CE - ldrh r0, [r4] - cmp r0, #0 - beq _080B16CE - bl HasTrainerBeenFought - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B16B6 -_080B16CE: - ldr r0, _080B16E0 - ldr r0, [r0] - ldr r1, _080B16E4 - adds r0, r0, r1 - adds r0, r0, r6 - strb r5, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080B16E0: .4byte gUnknown_3005AEC -_080B16E4: .4byte 0x000009CA - thumb_func_end SetRematchIdForTrainer - - thumb_func_start UpdateRandomTrainerRematches -UpdateRandomTrainerRematches: @ 0x080B16E8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sb, r1 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - mov r8, r2 - movs r7, #0 - movs r5, #0 - adds r4, r6, #0 - adds r4, #0xa -_080B1706: - ldrh r0, [r4] - cmp r0, sb - bne _080B1760 - ldrh r0, [r4, #2] - cmp r0, r8 - bne _080B1760 - adds r0, r5, #0 - bl sub_080B1680 - cmp r0, #0 - bne _080B1760 - ldr r0, _080B1778 - ldr r0, [r0] - ldr r1, _080B177C - adds r0, r0, r1 - adds r0, r0, r5 - ldrb r0, [r0] - cmp r0, #0 - bne _080B175E - movs r1, #0xae - lsls r1, r1, #1 - adds r0, r5, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B1760 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x1e - bhi _080B1760 - adds r0, r6, #0 - adds r1, r5, #0 - bl SetRematchIdForTrainer -_080B175E: - movs r7, #1 -_080B1760: - adds r4, #0x10 - adds r5, #1 - cmp r5, #0x40 - ble _080B1706 - adds r0, r7, #0 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080B1778: .4byte gUnknown_3005AEC -_080B177C: .4byte 0x000009CA - thumb_func_end UpdateRandomTrainerRematches - - thumb_func_start UpdateRematchIfDefeated -UpdateRematchIfDefeated: @ 0x080B1780 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _080B17A8 - lsls r0, r4, #4 - adds r0, r0, r5 - ldrh r0, [r0] - bl HasTrainerBeenFought - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080B17A0 - adds r0, r5, #0 - adds r1, r4, #0 - bl SetRematchIdForTrainer -_080B17A0: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B17A8: .4byte gUnknown_852AD40 - thumb_func_end UpdateRematchIfDefeated - - thumb_func_start DoesSomeoneWantRematchIn_ -DoesSomeoneWantRematchIn_: @ 0x080B17AC - push {r4, r5, r6, lr} - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - movs r1, #0 - adds r3, r0, #0 - adds r3, #0xa - ldr r5, _080B17DC -_080B17BE: - ldrh r0, [r3] - cmp r0, r4 - bne _080B17E4 - ldrh r0, [r3, #2] - cmp r0, r2 - bne _080B17E4 - ldr r0, [r5] - ldr r6, _080B17E0 - adds r0, r0, r6 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _080B17E4 - movs r0, #1 - b _080B17EE - .align 2, 0 -_080B17DC: .4byte gUnknown_3005AEC -_080B17E0: .4byte 0x000009CA -_080B17E4: - adds r3, #0x10 - adds r1, #1 - cmp r1, #0x4d - ble _080B17BE - movs r0, #0 -_080B17EE: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end DoesSomeoneWantRematchIn_ - - thumb_func_start IsRematchTrainerIn_ -IsRematchTrainerIn_: @ 0x080B17F4 - push {r4, lr} - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - movs r1, #0 - adds r3, r0, #0 - adds r3, #0xa -_080B1804: - ldrh r0, [r3] - cmp r0, r4 - bne _080B1814 - ldrh r0, [r3, #2] - cmp r0, r2 - bne _080B1814 - movs r0, #1 - b _080B181E -_080B1814: - adds r3, #0x10 - adds r1, #1 - cmp r1, #0x4d - ble _080B1804 - movs r0, #0 -_080B181E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end IsRematchTrainerIn_ - - thumb_func_start IsFirstTrainerIdReadyForRematch -IsFirstTrainerIdReadyForRematch: @ 0x080B1824 - push {lr} - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl FirstBattleTrainerIdToRematchTableId - adds r1, r0, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _080B1858 - cmp r1, #0x63 - bgt _080B1858 - ldr r0, _080B1850 - ldr r0, [r0] - ldr r2, _080B1854 - adds r0, r0, r2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _080B1858 - movs r0, #1 - b _080B185A - .align 2, 0 -_080B1850: .4byte gUnknown_3005AEC -_080B1854: .4byte 0x000009CA -_080B1858: - movs r0, #0 -_080B185A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsFirstTrainerIdReadyForRematch - - thumb_func_start IsTrainerReadyForRematch_ -IsTrainerReadyForRematch_: @ 0x080B1860 - push {lr} - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl TrainerIdToRematchTableId - adds r1, r0, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _080B1894 - cmp r1, #0x63 - bgt _080B1894 - ldr r0, _080B188C - ldr r0, [r0] - ldr r2, _080B1890 - adds r0, r0, r2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _080B1894 - movs r0, #1 - b _080B1896 - .align 2, 0 -_080B188C: .4byte gUnknown_3005AEC -_080B1890: .4byte 0x000009CA -_080B1894: - movs r0, #0 -_080B1896: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsTrainerReadyForRematch_ - - thumb_func_start GetRematchTrainerIdFromTable -GetRematchTrainerIdFromTable: @ 0x080B189C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl FirstBattleTrainerIdToRematchTableId - adds r1, r0, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _080B18C4 - movs r0, #0 - b _080B18EA -_080B18B6: - subs r0, r6, #1 - lsls r0, r0, #1 - adds r0, r7, r0 - ldrh r0, [r0] - b _080B18EA -_080B18C0: - ldrh r0, [r5] - b _080B18EA -_080B18C4: - lsls r0, r1, #4 - adds r7, r4, r0 - movs r6, #1 - adds r5, r7, #2 - adds r4, r5, #0 -_080B18CE: - ldrh r0, [r4] - cmp r0, #0 - beq _080B18B6 - bl HasTrainerBeenFought - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B18C0 - adds r4, #2 - adds r5, #2 - adds r6, #1 - cmp r6, #4 - ble _080B18CE - ldrh r0, [r7, #8] -_080B18EA: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end GetRematchTrainerIdFromTable - - thumb_func_start GetLastBeatenRematchTrainerIdFromTable -GetLastBeatenRematchTrainerIdFromTable: @ 0x080B18F0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl FirstBattleTrainerIdToRematchTableId - adds r1, r0, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _080B191E - movs r0, #0 - b _080B1940 -_080B190A: - subs r0, r5, #1 - lsls r0, r0, #1 - adds r0, r6, r0 - ldrh r0, [r0] - b _080B1940 -_080B1914: - subs r0, r5, #1 - lsls r0, r0, #1 - adds r0, r6, r0 - ldrh r0, [r0] - b _080B1940 -_080B191E: - lsls r0, r1, #4 - adds r6, r4, r0 - movs r5, #1 - adds r4, r6, #2 -_080B1926: - ldrh r0, [r4] - cmp r0, #0 - beq _080B190A - bl HasTrainerBeenFought - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B1914 - adds r4, #2 - adds r5, #1 - cmp r5, #4 - ble _080B1926 - ldrh r0, [r6, #8] -_080B1940: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetLastBeatenRematchTrainerIdFromTable - - thumb_func_start ClearTrainerWantRematchState -ClearTrainerWantRematchState: @ 0x080B1948 - push {lr} - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl TrainerIdToRematchTableId - adds r1, r0, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _080B196A - ldr r0, _080B1970 - ldr r0, [r0] - ldr r2, _080B1974 - adds r0, r0, r2 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] -_080B196A: - pop {r0} - bx r0 - .align 2, 0 -_080B1970: .4byte gUnknown_3005AEC -_080B1974: .4byte 0x000009CA - thumb_func_end ClearTrainerWantRematchState - - thumb_func_start GetTrainerMatchCallFlag -GetTrainerMatchCallFlag: @ 0x080B1978 - push {r4, lr} - adds r3, r0, #0 - movs r1, #0 - movs r4, #0xae - lsls r4, r4, #1 - ldr r2, _080B1990 -_080B1984: - ldrh r0, [r2] - cmp r0, r3 - bne _080B1994 - adds r0, r1, r4 - b _080B199E - .align 2, 0 -_080B1990: .4byte gUnknown_852AD40 -_080B1994: - adds r2, #0x10 - adds r1, #1 - cmp r1, #0x4d - ble _080B1984 - ldr r0, _080B19A4 -_080B199E: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080B19A4: .4byte 0x0000FFFF - thumb_func_end GetTrainerMatchCallFlag - - thumb_func_start RegisterTrainerInMatchCall -RegisterTrainerInMatchCall: @ 0x080B19A8 - push {lr} - ldr r0, _080B19D4 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B19CE - ldr r0, _080B19D8 - ldrh r0, [r0] - bl GetTrainerMatchCallFlag - adds r1, r0, #0 - ldr r0, _080B19DC - cmp r1, r0 - beq _080B19CE - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - bl FlagSet -_080B19CE: - pop {r0} - bx r0 - .align 2, 0 -_080B19D4: .4byte 0x0000012F -_080B19D8: .4byte gUnknown_203886A -_080B19DC: .4byte 0x0000FFFF - thumb_func_end RegisterTrainerInMatchCall - - thumb_func_start WasSecondRematchWon -WasSecondRematchWon: @ 0x080B19E0 - push {r4, lr} - adds r4, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl FirstBattleTrainerIdToRematchTableId - adds r1, r0, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _080B1A0A - lsls r0, r1, #4 - adds r0, r0, r4 - ldrh r0, [r0, #2] - bl HasTrainerBeenFought - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B1A0A - movs r0, #1 - b _080B1A0C -_080B1A0A: - movs r0, #0 -_080B1A0C: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end WasSecondRematchWon - - thumb_func_start HasAtLeastFiveBadges -HasAtLeastFiveBadges: @ 0x080B1A14 - push {r4, r5, r6, lr} - movs r6, #0 - movs r5, #0 - ldr r4, _080B1A34 -_080B1A1C: - ldrh r0, [r4] - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080B1A38 - adds r6, #1 - cmp r6, #4 - ble _080B1A38 - movs r0, #1 - b _080B1A42 - .align 2, 0 -_080B1A34: .4byte gUnknown_852B220 -_080B1A38: - adds r4, #2 - adds r5, #1 - cmp r5, #7 - bls _080B1A1C - movs r0, #0 -_080B1A42: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end HasAtLeastFiveBadges - - thumb_func_start IncrementRematchStepCounter -IncrementRematchStepCounter: @ 0x080B1A48 - push {lr} - bl HasAtLeastFiveBadges - cmp r0, #0 - beq _080B1A70 - ldr r0, _080B1A64 - ldr r0, [r0] - ldr r2, _080B1A68 - adds r1, r0, r2 - ldrh r0, [r1] - cmp r0, #0xfe - bls _080B1A6C - movs r0, #0xff - b _080B1A6E - .align 2, 0 -_080B1A64: .4byte gUnknown_3005AEC -_080B1A68: .4byte 0x000009C8 -_080B1A6C: - adds r0, #1 -_080B1A6E: - strh r0, [r1] -_080B1A70: - pop {r0} - bx r0 - thumb_func_end IncrementRematchStepCounter - - thumb_func_start IsRematchStepCounterMaxed -IsRematchStepCounterMaxed: @ 0x080B1A74 - push {lr} - bl HasAtLeastFiveBadges - cmp r0, #0 - beq _080B1A98 - ldr r0, _080B1A90 - ldr r0, [r0] - ldr r1, _080B1A94 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0xfe - bls _080B1A98 - movs r0, #1 - b _080B1A9A - .align 2, 0 -_080B1A90: .4byte gUnknown_3005AEC -_080B1A94: .4byte 0x000009C8 -_080B1A98: - movs r0, #0 -_080B1A9A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsRematchStepCounterMaxed - - thumb_func_start TryUpdateRandomTrainerRematches -TryUpdateRandomTrainerRematches: @ 0x080B1AA0 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - bl IsRematchStepCounterMaxed - cmp r0, #0 - beq _080B1ACC - ldr r0, _080B1AD4 - adds r1, r5, #0 - adds r2, r4, #0 - bl UpdateRandomTrainerRematches - cmp r0, #1 - bne _080B1ACC - ldr r0, _080B1AD8 - ldr r0, [r0] - ldr r1, _080B1ADC - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0] -_080B1ACC: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B1AD4: .4byte gUnknown_852AD40 -_080B1AD8: .4byte gUnknown_3005AEC -_080B1ADC: .4byte 0x000009C8 - thumb_func_end TryUpdateRandomTrainerRematches - - thumb_func_start DoesSomeoneWantRematchIn -DoesSomeoneWantRematchIn: @ 0x080B1AE0 - push {lr} - adds r3, r0, #0 - adds r2, r1, #0 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldr r0, _080B1AFC - adds r1, r3, #0 - bl DoesSomeoneWantRematchIn_ - pop {r1} - bx r1 - .align 2, 0 -_080B1AFC: .4byte gUnknown_852AD40 - thumb_func_end DoesSomeoneWantRematchIn - - thumb_func_start IsRematchTrainerIn -IsRematchTrainerIn: @ 0x080B1B00 - push {lr} - adds r3, r0, #0 - adds r2, r1, #0 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldr r0, _080B1B1C - adds r1, r3, #0 - bl IsRematchTrainerIn_ - pop {r1} - bx r1 - .align 2, 0 -_080B1B1C: .4byte gUnknown_852AD40 - thumb_func_end IsRematchTrainerIn - - thumb_func_start GetRematchTrainerId -GetRematchTrainerId: @ 0x080B1B20 - push {lr} - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, _080B1B38 - bl GetRematchTrainerIdFromTable - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 -_080B1B38: .4byte gUnknown_852AD40 - thumb_func_end GetRematchTrainerId - - thumb_func_start GetLastBeatenRematchTrainerId -GetLastBeatenRematchTrainerId: @ 0x080B1B3C - push {lr} - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, _080B1B54 - bl GetLastBeatenRematchTrainerIdFromTable - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 -_080B1B54: .4byte gUnknown_852AD40 - thumb_func_end GetLastBeatenRematchTrainerId - - thumb_func_start ShouldTryRematchBattle -ShouldTryRematchBattle: @ 0x080B1B58 - push {r4, r5, lr} - ldr r5, _080B1B7C - ldr r4, _080B1B80 - ldrh r1, [r4] - adds r0, r5, #0 - bl IsFirstTrainerIdReadyForRematch - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B1B84 - ldrh r1, [r4] - adds r0, r5, #0 - bl WasSecondRematchWon - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _080B1B86 - .align 2, 0 -_080B1B7C: .4byte gUnknown_852AD40 -_080B1B80: .4byte gUnknown_203886A -_080B1B84: - movs r0, #1 -_080B1B86: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end ShouldTryRematchBattle - - thumb_func_start IsTrainerReadyForRematch -IsTrainerReadyForRematch: @ 0x080B1B8C - push {lr} - ldr r0, _080B1BA0 - ldr r1, _080B1BA4 - ldrh r1, [r1] - bl IsTrainerReadyForRematch_ - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_080B1BA0: .4byte gUnknown_852AD40 -_080B1BA4: .4byte gUnknown_203886A - thumb_func_end IsTrainerReadyForRematch - - thumb_func_start HandleRematchVarsOnBattleEnd -HandleRematchVarsOnBattleEnd: @ 0x080B1BA8 - push {lr} - ldr r0, _080B1BBC - ldr r1, _080B1BC0 - ldrh r1, [r1] - bl ClearTrainerWantRematchState - bl SetBattledTrainersFlags - pop {r0} - bx r0 - .align 2, 0 -_080B1BBC: .4byte gUnknown_852AD40 -_080B1BC0: .4byte gUnknown_203886A - thumb_func_end HandleRematchVarsOnBattleEnd - - thumb_func_start ShouldTryGetTrainerScript -ShouldTryGetTrainerScript: @ 0x080B1BC4 - push {lr} - ldr r1, _080B1BE0 - ldrb r0, [r1] - cmp r0, #1 - bls _080B1BEC - movs r0, #0 - strb r0, [r1] - ldr r1, _080B1BE4 - movs r0, #1 - strb r0, [r1] - ldr r1, _080B1BE8 - movs r0, #1 - b _080B1BF6 - .align 2, 0 -_080B1BE0: .4byte gUnknown_2038899 -_080B1BE4: .4byte gUnknown_2038898 -_080B1BE8: .4byte gUnknown_2037290 -_080B1BEC: - ldr r1, _080B1BFC - movs r0, #0 - strb r0, [r1] - ldr r1, _080B1C00 - movs r0, #0 -_080B1BF6: - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080B1BFC: .4byte gUnknown_2038898 -_080B1C00: .4byte gUnknown_2037290 - thumb_func_end ShouldTryGetTrainerScript - - thumb_func_start CountBattledRematchTeams -CountBattledRematchTeams: @ 0x080B1C04 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - ldr r7, _080B1C20 - lsrs r4, r0, #0xc - adds r6, r4, r7 - ldrh r0, [r6] - bl HasTrainerBeenFought - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080B1C24 - movs r0, #0 - b _080B1C50 - .align 2, 0 -_080B1C20: .4byte gUnknown_852AD40 -_080B1C24: - movs r5, #1 - adds r0, r4, #2 - adds r0, r0, r7 - ldrh r0, [r0] - cmp r0, #0 - beq _080B1C4C - adds r4, r6, #2 -_080B1C32: - ldrh r0, [r4] - bl HasTrainerBeenFought - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B1C4C - adds r4, #2 - adds r5, #1 - cmp r5, #4 - bgt _080B1C4C - ldrh r0, [r4] - cmp r0, #0 - bne _080B1C32 -_080B1C4C: - lsls r0, r5, #0x10 - lsrs r0, r0, #0x10 -_080B1C50: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CountBattledRematchTeams - - thumb_func_start sub_080B1C58 -sub_080B1C58: @ 0x080B1C58 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - ldr r4, _080B1C94 - adds r0, r4, #0 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080B1C8C - adds r0, r4, #0 - movs r1, #0x50 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080B1C98 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r6, [r1, #0xa] - strh r5, [r1, #0xc] -_080B1C8C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080B1C94: .4byte sub_080B1F10 -_080B1C98: .4byte gUnknown_3005B60 - thumb_func_end sub_080B1C58 - - thumb_func_start sub_080B1C9C -sub_080B1C9C: @ 0x080B1C9C - push {r4, r5, lr} - sub sp, #0xc - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r0, _080B1CEC - movs r2, #0 - movs r3, #1 - bl sub_080089D8 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #0 - bl SetStandardWindowBorderStyle - ldr r5, _080B1CF0 - ldr r1, _080B1CF4 - adds r0, r5, #0 - bl StringExpandPlaceholders - movs r1, #0 - str r1, [sp] - movs r0, #0xff - str r0, [sp, #4] - str r1, [sp, #8] - adds r0, r4, #0 - movs r1, #1 - adds r2, r5, #0 - movs r3, #0 - bl AddTextPrinterParameterized - adds r0, r4, #0 - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B1CEC: .4byte gUnknown_2021C40 -_080B1CF0: .4byte gUnknown_2021C7C -_080B1CF4: .4byte gUnknown_852B230 - thumb_func_end sub_080B1C9C - - thumb_func_start sub_080B1CF8 -sub_080B1CF8: @ 0x080B1CF8 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #0 - bl sub_08197060 - adds r0, r4, #0 - movs r1, #3 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080B1CF8 - - thumb_func_start sub_080B1D18 -sub_080B1D18: @ 0x080B1D18 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080B1D40 - adds r4, r1, r0 - movs r1, #6 - ldrsh r0, [r4, r1] - cmp r5, r0 - beq _080B1D4E - cmp r5, #1 - bhi _080B1D44 - ldrh r0, [r4, #0xa] - bl sub_080B1CF8 - b _080B1D4C - .align 2, 0 -_080B1D40: .4byte gUnknown_3005B68 -_080B1D44: - ldrh r0, [r4, #0xa] - adds r1, r5, #0 - bl sub_080B1C9C -_080B1D4C: - strh r5, [r4, #6] -_080B1D4E: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_080B1D18 - - thumb_func_start sub_080B1D54 -sub_080B1D54: @ 0x080B1D54 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl GetLinkPlayerDataExchangeStatusTimed - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, #1 - cmp r0, #6 - bhi _080B1DCC - lsls r0, r0, #2 - ldr r1, _080B1D78 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B1D78: .4byte _080B1D7C -_080B1D7C: @ jump table - .4byte _080B1D98 @ case 0 - .4byte _080B1DCC @ case 1 - .4byte _080B1D9C @ case 2 - .4byte _080B1DA0 @ case 3 - .4byte _080B1DA4 @ case 4 - .4byte _080B1DA8 @ case 5 - .4byte _080B1DC8 @ case 6 -_080B1D98: - movs r0, #1 - b _080B1DCE -_080B1D9C: - movs r0, #3 - b _080B1DCE -_080B1DA0: - movs r0, #7 - b _080B1DCE -_080B1DA4: - movs r0, #9 - b _080B1DCE -_080B1DA8: - ldr r4, _080B1DC4 - bl GetLinkPlayerCount_2 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - movs r2, #0 - movs r3, #1 - bl sub_080089D8 - movs r0, #4 - b _080B1DCE - .align 2, 0 -_080B1DC4: .4byte gUnknown_2021C40 -_080B1DC8: - movs r0, #0xa - b _080B1DCE -_080B1DCC: - movs r0, #0 -_080B1DCE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_080B1D54 - - thumb_func_start sub_080B1DD4 -sub_080B1DD4: @ 0x080B1DD4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl sub_0800AE18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080B1DEA - movs r0, #0 - b _080B1DFA -_080B1DEA: - ldr r0, _080B1E00 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080B1E04 - str r0, [r1] - movs r0, #1 -_080B1DFA: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080B1E00: .4byte gUnknown_3005B60 -_080B1E04: .4byte sub_080B2608 - thumb_func_end sub_080B1DD4 - - thumb_func_start sub_080B1E08 -sub_080B1E08: @ 0x080B1E08 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080B1E3C - ldrh r1, [r0, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080B1E4C - bl IsLinkConnectionEstablished - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _080B1E4C - ldr r0, _080B1E40 - strh r1, [r0] - ldr r1, _080B1E44 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080B1E48 - str r1, [r0] - movs r0, #1 - b _080B1E4E - .align 2, 0 -_080B1E3C: .4byte gUnknown_3002360 -_080B1E40: .4byte gUnknown_202267E -_080B1E44: .4byte gUnknown_3005B60 -_080B1E48: .4byte sub_080B25C8 -_080B1E4C: - movs r0, #0 -_080B1E4E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_080B1E08 - - thumb_func_start sub_080B1E54 -sub_080B1E54: @ 0x080B1E54 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl IsLinkConnectionEstablished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B1E6A - movs r0, #1 - bl sub_0800AE0C -_080B1E6A: - ldr r0, _080B1E7C - ldrh r1, [r0, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _080B1E80 - movs r0, #0 - b _080B1E96 - .align 2, 0 -_080B1E7C: .4byte gUnknown_3002360 -_080B1E80: - ldr r1, _080B1E9C - movs r0, #0 - strh r0, [r1] - ldr r1, _080B1EA0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080B1EA4 - str r1, [r0] - movs r0, #1 -_080B1E96: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080B1E9C: .4byte gUnknown_202267E -_080B1EA0: .4byte gUnknown_3005B60 -_080B1EA4: .4byte sub_080B25C8 - thumb_func_end sub_080B1E54 - - thumb_func_start sub_080B1EA8 -sub_080B1EA8: @ 0x080B1EA8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl GetSioMultiSI - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080B1EBE - movs r0, #0 - b _080B1ECE -_080B1EBE: - ldr r0, _080B1ED4 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080B1ED8 - str r0, [r1] - movs r0, #1 -_080B1ECE: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080B1ED4: .4byte gUnknown_3005B60 -_080B1ED8: .4byte sub_080B2608 - thumb_func_end sub_080B1EA8 - - thumb_func_start sub_080B1EDC -sub_080B1EDC: @ 0x080B1EDC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080B1F0C - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xa - bne _080B1F06 - movs r0, #2 - bl sub_0800A09C - adds r0, r4, #0 - bl DestroyTask -_080B1F06: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B1F0C: .4byte gUnknown_3005B60 - thumb_func_end sub_080B1EDC - - thumb_func_start sub_080B1F10 -sub_080B1F10: @ 0x080B1F10 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080B1F40 - adds r4, r1, r0 - movs r3, #0 - ldrsh r2, [r4, r3] - cmp r2, #0 - bne _080B1F48 - bl OpenLinkTimed - bl sub_0800A75C - bl ResetLinkPlayers - ldr r0, _080B1F44 - bl AddWindow - strh r0, [r4, #0xa] - b _080B1F54 - .align 2, 0 -_080B1F40: .4byte gUnknown_3005B68 -_080B1F44: .4byte gUnknown_852B23C -_080B1F48: - cmp r2, #9 - ble _080B1F54 - subs r0, #8 - adds r0, r1, r0 - ldr r1, _080B1F60 - str r1, [r0] -_080B1F54: - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B1F60: .4byte sub_080B1F64 - thumb_func_end sub_080B1F10 - - thumb_func_start sub_080B1F64 -sub_080B1F64: @ 0x080B1F64 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl GetLinkPlayerCount_2 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r4, #0 - bl sub_080B1E08 - cmp r0, #1 - beq _080B1FD8 - adds r0, r4, #0 - bl sub_080B1E54 - cmp r0, #1 - beq _080B1FD8 - cmp r5, #1 - bls _080B1FD8 - movs r0, #1 - bl sub_0800AE0C - ldr r1, _080B1FBC - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r0, #0 - strh r0, [r4, #0xe] - bl IsLinkMaster - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080B1FC8 - movs r0, #0x15 - bl sub_080A306C - ldr r0, _080B1FC0 - bl ShowFieldAutoScrollMessage - ldr r0, _080B1FC4 - b _080B1FD6 - .align 2, 0 -_080B1FBC: .4byte gUnknown_3005B60 -_080B1FC0: .4byte gUnknown_8247C97 -_080B1FC4: .4byte sub_080B1FE8 -_080B1FC8: - movs r0, #0x16 - bl sub_080A306C - ldr r0, _080B1FE0 - bl ShowFieldAutoScrollMessage - ldr r0, _080B1FE4 -_080B1FD6: - str r0, [r4] -_080B1FD8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B1FE0: .4byte gUnknown_8247CDA -_080B1FE4: .4byte sub_080B21F4 - thumb_func_end sub_080B1F64 - - thumb_func_start sub_080B1FE8 -sub_080B1FE8: @ 0x080B1FE8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl sub_080B1E08 - cmp r0, #1 - beq _080B2028 - adds r0, r4, #0 - bl sub_080B1EA8 - cmp r0, #1 - beq _080B2028 - adds r0, r4, #0 - bl sub_080B1DD4 - cmp r0, #1 - beq _080B2028 - bl sub_08097CB8 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _080B2028 - ldr r0, _080B2030 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - strh r2, [r1, #0xe] - ldr r0, _080B2034 - str r0, [r1] -_080B2028: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B2030: .4byte gUnknown_3005B60 -_080B2034: .4byte sub_080B2038 - thumb_func_end sub_080B1FE8 - - thumb_func_start sub_080B2038 -sub_080B2038: @ 0x080B2038 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - mov r8, r0 - ldr r0, _080B20CC - mov sb, r0 - mov r7, r8 - add r7, sb - bl GetLinkPlayerCount_2 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r4, #0 - bl sub_080B1E08 - cmp r0, #1 - beq _080B20C0 - adds r0, r4, #0 - bl sub_080B1EA8 - cmp r0, #1 - beq _080B20C0 - adds r0, r4, #0 - bl sub_080B1DD4 - cmp r0, #1 - beq _080B20C0 - adds r6, r5, #0 - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_080B1D18 - ldr r0, _080B20D0 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080B20C0 - movs r1, #2 - ldrsh r0, [r7, r1] - cmp r5, r0 - blt _080B20C0 - adds r0, r6, #0 - bl sub_0800A5C8 - ldrh r0, [r7, #0xa] - bl sub_080B1CF8 - ldr r0, _080B20D4 - adds r1, r5, #0 - movs r2, #0 - movs r3, #1 - bl sub_080089D8 - ldr r0, _080B20D8 - bl ShowFieldAutoScrollMessage - mov r0, sb - subs r0, #8 - add r0, r8 - ldr r1, _080B20DC - str r1, [r0] -_080B20C0: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080B20CC: .4byte gUnknown_3005B68 -_080B20D0: .4byte gUnknown_3002360 -_080B20D4: .4byte gUnknown_2021C40 -_080B20D8: .4byte gUnknown_8247CB5 -_080B20DC: .4byte sub_080B20E0 - thumb_func_end sub_080B2038 - - thumb_func_start sub_080B20E0 -sub_080B20E0: @ 0x080B20E0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r6, r5, #0 - adds r0, r5, #0 - bl sub_080B1E08 - cmp r0, #1 - beq _080B2174 - adds r0, r5, #0 - bl sub_080B1EA8 - cmp r0, #1 - beq _080B2174 - adds r0, r5, #0 - bl sub_080B1DD4 - cmp r0, #1 - beq _080B2174 - bl sub_08097CB8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B2174 - bl sub_0800A60C - adds r4, r0, #0 - bl GetLinkPlayerCount_2 - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - bne _080B212E - ldr r0, _080B2144 - ldrh r1, [r0, #0x2c] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080B2154 -_080B212E: - ldr r0, _080B2148 - bl ShowFieldAutoScrollMessage - ldr r1, _080B214C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080B2150 - str r1, [r0] - b _080B2174 - .align 2, 0 -_080B2144: .4byte gUnknown_3002360 -_080B2148: .4byte gUnknown_8247C97 -_080B214C: .4byte gUnknown_3005B60 -_080B2150: .4byte sub_080B1FE8 -_080B2154: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080B2174 - movs r0, #5 - bl sub_080A306C - bl CheckShouldAdvanceLinkState - ldr r0, _080B217C - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080B2180 - str r0, [r1] -_080B2174: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080B217C: .4byte gUnknown_3005B60 -_080B2180: .4byte sub_080B2184 - thumb_func_end sub_080B20E0 - - thumb_func_start sub_080B2184 -sub_080B2184: @ 0x080B2184 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _080B21C8 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r5, r0, r1 - ldrb r7, [r5, #0xa] - ldrb r6, [r5, #0xc] - adds r0, r4, #0 - bl sub_080B1DD4 - cmp r0, #1 - beq _080B21E6 - adds r0, r4, #0 - bl sub_080B2648 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080B21E6 - bl GetLinkPlayerCount_2 - adds r4, r0, #0 - bl sub_0800A60C - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - beq _080B21D0 - ldr r0, _080B21CC - b _080B21E4 - .align 2, 0 -_080B21C8: .4byte gUnknown_3005B60 -_080B21CC: .4byte sub_080B2608 -_080B21D0: - ldr r4, _080B21EC - adds r0, r7, #0 - adds r1, r6, #0 - bl sub_080B1D54 - strh r0, [r4] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080B21E6 - ldr r0, _080B21F0 -_080B21E4: - str r0, [r5] -_080B21E6: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080B21EC: .4byte gUnknown_2037290 -_080B21F0: .4byte sub_080B22E4 - thumb_func_end sub_080B2184 - - thumb_func_start sub_080B21F4 -sub_080B21F4: @ 0x080B21F4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _080B224C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r7, r0, r1 - ldrb r6, [r7, #0xa] - ldrb r5, [r7, #0xc] - adds r0, r4, #0 - bl sub_080B1E08 - cmp r0, #1 - beq _080B22C2 - adds r0, r4, #0 - bl sub_080B1DD4 - cmp r0, #1 - beq _080B22C2 - ldr r4, _080B2250 - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_080B1D54 - adds r1, r0, #0 - strh r1, [r4] - lsls r0, r1, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0 - beq _080B22C2 - subs r0, r1, #3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bhi _080B2258 - bl sub_0800A7F8 - bl HideFieldMessageBox - ldr r0, _080B2254 - b _080B22C0 - .align 2, 0 -_080B224C: .4byte gUnknown_3005B60 -_080B2250: .4byte gUnknown_2037290 -_080B2254: .4byte sub_080B258C -_080B2258: - cmp r2, #7 - beq _080B2260 - cmp r2, #9 - bne _080B2270 -_080B2260: - bl CloseLink - bl HideFieldMessageBox - ldr r0, _080B226C - b _080B22C0 - .align 2, 0 -_080B226C: .4byte sub_080B258C -_080B2270: - bl GetLinkPlayerCount_2 - ldr r4, _080B22CC - strb r0, [r4] - bl GetMultiplayerId - ldr r1, _080B22D0 - strb r0, [r1] - ldrb r0, [r4] - bl sub_0800A5C8 - ldr r4, _080B22D4 - adds r0, r4, #0 - bl TrainerCard_GenerateCardForPlayer - ldr r0, _080B22D8 - mov r8, r0 - ldrb r0, [r0] - movs r6, #0x64 - muls r0, r6, r0 - ldr r5, _080B22DC - adds r0, r0, r5 - movs r1, #0xb - movs r2, #0 - bl GetMonData - adds r1, r4, #0 - adds r1, #0x54 - strh r0, [r1] - mov r1, r8 - ldrb r0, [r1, #1] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #0xb - movs r2, #0 - bl GetMonData - adds r4, #0x56 - strh r0, [r4] - ldr r0, _080B22E0 -_080B22C0: - str r0, [r7] -_080B22C2: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080B22CC: .4byte gUnknown_3005B18 -_080B22D0: .4byte gUnknown_3005B14 -_080B22D4: .4byte gUnknown_202257C -_080B22D8: .4byte gUnknown_203CBC4 -_080B22DC: .4byte gUnknown_202412C -_080B22E0: .4byte sub_080B250C - thumb_func_end sub_080B21F4 - - thumb_func_start sub_080B22E4 -sub_080B22E4: @ 0x080B22E4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - adds r0, r7, #0 - bl sub_080B1DD4 - cmp r0, #1 - beq _080B23AA - ldr r0, _080B2310 - ldrh r0, [r0] - cmp r0, #4 - bne _080B2314 - bl Link_AnyPartnersPlayingRubyOrSapphire - cmp r0, #0 - bne _080B2326 - bl sub_0800A7F8 - b _080B232A - .align 2, 0 -_080B2310: .4byte gUnknown_2037290 -_080B2314: - cmp r0, #3 - bne _080B231E - bl sub_0800A7F8 - b _080B232A -_080B231E: - cmp r0, #7 - beq _080B2326 - cmp r0, #9 - bne _080B2348 -_080B2326: - bl CloseLink -_080B232A: - bl HideFieldMessageBox - ldr r0, _080B2340 - lsls r1, r7, #2 - adds r1, r1, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080B2344 - str r0, [r1] - b _080B23AA - .align 2, 0 -_080B2340: .4byte gUnknown_3005B60 -_080B2344: .4byte sub_080B258C -_080B2348: - bl GetLinkPlayerCount_2 - ldr r4, _080B23B4 - strb r0, [r4] - bl GetMultiplayerId - ldr r1, _080B23B8 - strb r0, [r1] - ldrb r0, [r4] - bl sub_0800A5C8 - ldr r4, _080B23BC - adds r0, r4, #0 - bl TrainerCard_GenerateCardForPlayer - ldr r0, _080B23C0 - mov r8, r0 - ldrb r0, [r0] - movs r6, #0x64 - muls r0, r6, r0 - ldr r5, _080B23C4 - adds r0, r0, r5 - movs r1, #0xb - movs r2, #0 - bl GetMonData - adds r1, r4, #0 - adds r1, #0x54 - strh r0, [r1] - mov r1, r8 - ldrb r0, [r1, #1] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #0xb - movs r2, #0 - bl GetMonData - adds r4, #0x56 - strh r0, [r4] - ldr r1, _080B23C8 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080B23CC - str r1, [r0] - movs r0, #2 - bl sub_0800A09C -_080B23AA: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080B23B4: .4byte gUnknown_3005B18 -_080B23B8: .4byte gUnknown_3005B14 -_080B23BC: .4byte gUnknown_202257C -_080B23C0: .4byte gUnknown_203CBC4 -_080B23C4: .4byte gUnknown_202412C -_080B23C8: .4byte gUnknown_3005B60 -_080B23CC: .4byte sub_080B250C - thumb_func_end sub_080B22E4 - - thumb_func_start sub_080B23D0 -sub_080B23D0: @ 0x080B23D0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - str r0, [sp] - mov sl, r1 - movs r2, #0 - movs r7, #0 - ldr r1, _080B2460 - movs r0, #0xff - strb r0, [r1] - ldr r1, _080B2464 - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r1] - movs r1, #0 - ldr r0, _080B2468 - mov sb, r0 -_080B23F8: - lsls r0, r1, #1 - adds r1, #1 - mov r8, r1 - ldr r1, [sp] - adds r4, r0, r1 - mov r5, sl - movs r6, #1 -_080B2406: - ldrh r0, [r4] - ldrh r1, [r5] - cmp r0, r1 - bne _080B243A - cmp r7, #0 - bne _080B2422 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - add r1, sb - ldr r0, _080B2460 - bl StringCopy - movs r2, #1 -_080B2422: - cmp r7, #1 - bne _080B2438 - ldrh r0, [r4] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - add r1, sb - ldr r0, _080B2464 - bl StringCopy - movs r2, #1 -_080B2438: - adds r7, #1 -_080B243A: - adds r5, #2 - subs r6, #1 - cmp r6, #0 - bge _080B2406 - mov r1, r8 - cmp r1, #1 - ble _080B23F8 - ldr r0, _080B246C - strh r7, [r0] - adds r0, r2, #0 - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080B2460: .4byte gUnknown_2021C40 -_080B2464: .4byte gUnknown_2021C54 -_080B2468: .4byte gUnknown_82EA31C -_080B246C: .4byte gUnknown_2037282 - thumb_func_end sub_080B23D0 - - thumb_func_start sub_080B2470 -sub_080B2470: @ 0x080B2470 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - ldr r1, _080B24B4 - ldrh r0, [r5] - cmp r0, #1 - bne _080B24EC - ldr r0, _080B24B8 - ldrh r2, [r0] - ldr r0, _080B24BC - cmp r2, r0 - beq _080B248E - adds r0, #0x11 - cmp r2, r0 - bne _080B24C8 -_080B248E: - adds r0, r1, #0 - adds r0, #0x54 - adds r1, #0xb8 - bl sub_080B23D0 - cmp r0, #0 - beq _080B24C8 - movs r0, #0xb - strh r0, [r5] - bl sub_0800A7F8 - ldr r1, _080B24C0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080B24C4 - str r1, [r0] - b _080B24FE - .align 2, 0 -_080B24B4: .4byte gUnknown_20397F8 -_080B24B8: .4byte gUnknown_202267E -_080B24BC: .4byte 0x00002266 -_080B24C0: .4byte gUnknown_3005B60 -_080B24C4: .4byte sub_080B258C -_080B24C8: - ldr r1, _080B24E8 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r0, [r0, #0x12] - bl sub_080B1CF8 - bl EnableBothScriptContexts - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - b _080B24FE - .align 2, 0 -_080B24E8: .4byte gUnknown_3005B60 -_080B24EC: - bl sub_0800A7F8 - ldr r0, _080B2504 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080B2508 - str r0, [r1] -_080B24FE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B2504: .4byte gUnknown_3005B60 -_080B2508: .4byte sub_080B258C - thumb_func_end sub_080B2470 - - thumb_func_start sub_080B250C -sub_080B250C: @ 0x080B250C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r5, #0 - bl sub_080B1DD4 - cmp r0, #1 - beq _080B2578 - bl GetBlockReceivedStatus - adds r4, r0, #0 - bl sub_0800A56C - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - bne _080B2578 - movs r4, #0 - ldr r6, _080B2534 - b _080B255A - .align 2, 0 -_080B2534: .4byte gUnknown_20226A0 -_080B2538: - movs r0, #0x64 - muls r0, r4, r0 - ldr r1, _080B2580 - adds r0, r0, r1 - lsls r1, r4, #8 - ldr r2, _080B2584 - adds r1, r1, r2 - lsls r2, r4, #3 - subs r2, r2, r4 - lsls r2, r2, #2 - adds r2, r2, r6 - ldrb r2, [r2] - bl CopyTrainerCardData - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_080B255A: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - blo _080B2538 - movs r0, #0 - bl sub_0800AE0C - bl ResetBlockReceivedFlags - ldr r0, _080B2588 - adds r1, r5, #0 - bl sub_080B2470 -_080B2578: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080B2580: .4byte gUnknown_20397F8 -_080B2584: .4byte gUnknown_202207C -_080B2588: .4byte gUnknown_2037290 - thumb_func_end sub_080B250C - - thumb_func_start sub_080B258C -sub_080B258C: @ 0x080B258C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _080B25C0 - ldrb r0, [r0] - cmp r0, #0 - bne _080B25BA - ldr r0, _080B25C4 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - adds r4, r4, r0 - ldrh r0, [r4, #0x12] - bl sub_080B1CF8 - bl EnableBothScriptContexts - ldrb r0, [r4, #0x12] - bl RemoveWindow - adds r0, r5, #0 - bl DestroyTask -_080B25BA: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B25C0: .4byte gUnknown_30031C4 -_080B25C4: .4byte gUnknown_3005B60 - thumb_func_end sub_080B258C - - thumb_func_start sub_080B25C8 -sub_080B25C8: @ 0x080B25C8 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r1, _080B2600 - movs r0, #5 - strh r0, [r1] - ldr r0, _080B2604 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - adds r4, r4, r0 - ldrh r0, [r4, #0x12] - bl sub_080B1CF8 - bl sub_08097CFC - ldrb r0, [r4, #0x12] - bl RemoveWindow - bl EnableBothScriptContexts - adds r0, r5, #0 - bl DestroyTask - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B2600: .4byte gUnknown_2037290 -_080B2604: .4byte gUnknown_3005B60 - thumb_func_end sub_080B25C8 - - thumb_func_start sub_080B2608 -sub_080B2608: @ 0x080B2608 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r1, _080B2640 - movs r0, #6 - strh r0, [r1] - ldr r0, _080B2644 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - adds r4, r4, r0 - ldrh r0, [r4, #0x12] - bl sub_080B1CF8 - ldrb r0, [r4, #0x12] - bl RemoveWindow - bl HideFieldMessageBox - bl EnableBothScriptContexts - adds r0, r5, #0 - bl DestroyTask - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B2640: .4byte gUnknown_2037290 -_080B2644: .4byte gUnknown_3005B60 - thumb_func_end sub_080B2608 - - thumb_func_start sub_080B2648 -sub_080B2648: @ 0x080B2648 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080B266C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r2, r1, r2 - ldrh r0, [r2, #0x10] - adds r0, #1 - strh r0, [r2, #0x10] - lsls r0, r0, #0x10 - movs r1, #0x96 - lsls r1, r1, #0x12 - cmp r0, r1 - bgt _080B2670 - movs r0, #0 - b _080B2676 - .align 2, 0 -_080B266C: .4byte gUnknown_3005B60 -_080B2670: - ldr r0, _080B267C - str r0, [r2] - movs r0, #1 -_080B2676: - pop {r1} - bx r1 - .align 2, 0 -_080B267C: .4byte sub_080B2608 - thumb_func_end sub_080B2648 - - thumb_func_start sub_080B2680 -sub_080B2680: @ 0x080B2680 - push {r4, lr} - movs r3, #2 - movs r2, #2 - ldr r0, _080B2698 - ldrh r0, [r0] - cmp r0, #2 - beq _080B26B8 - cmp r0, #2 - bgt _080B269C - cmp r0, #1 - beq _080B26A6 - b _080B2710 - .align 2, 0 -_080B2698: .4byte gUnknown_2037280 -_080B269C: - cmp r0, #5 - beq _080B26C8 - cmp r0, #9 - beq _080B26DC - b _080B2710 -_080B26A6: - movs r3, #2 - ldr r1, _080B26B0 - ldr r4, _080B26B4 - b _080B270C - .align 2, 0 -_080B26B0: .4byte gUnknown_202267E -_080B26B4: .4byte 0x00002233 -_080B26B8: - movs r3, #2 - ldr r1, _080B26C0 - ldr r4, _080B26C4 - b _080B270C - .align 2, 0 -_080B26C0: .4byte gUnknown_202267E -_080B26C4: .4byte 0x00002244 -_080B26C8: - movs r3, #4 - movs r2, #4 - ldr r1, _080B26D4 - ldr r4, _080B26D8 - b _080B270C - .align 2, 0 -_080B26D4: .4byte gUnknown_202267E -_080B26D8: .4byte 0x00002255 -_080B26DC: - movs r3, #2 - ldr r0, _080B26F8 - ldr r0, [r0] - ldr r1, _080B26FC - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _080B2708 - ldr r1, _080B2700 - ldr r4, _080B2704 - b _080B270C - .align 2, 0 -_080B26F8: .4byte gUnknown_3005AF0 -_080B26FC: .4byte 0x00000CA9 -_080B2700: .4byte gUnknown_202267E -_080B2704: .4byte 0x00002266 -_080B2708: - ldr r1, _080B2720 - ldr r4, _080B2724 -_080B270C: - adds r0, r4, #0 - strh r0, [r1] -_080B2710: - adds r0, r3, #0 - adds r1, r2, #0 - bl sub_080B1C58 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B2720: .4byte gUnknown_202267E -_080B2724: .4byte 0x00002277 - thumb_func_end sub_080B2680 - - thumb_func_start sub_080B2728 -sub_080B2728: @ 0x080B2728 - push {lr} - ldr r1, _080B2744 - ldr r2, _080B2748 - adds r0, r2, #0 - strh r0, [r1] - ldr r1, _080B274C - movs r0, #0 - str r0, [r1] - movs r0, #2 - movs r1, #2 - bl sub_080B1C58 - pop {r0} - bx r0 - .align 2, 0 -_080B2744: .4byte gUnknown_202267E -_080B2748: .4byte 0x00001133 -_080B274C: .4byte gUnknown_2022C90 - thumb_func_end sub_080B2728 - - thumb_func_start sub_080B2750 -sub_080B2750: @ 0x080B2750 - push {lr} - ldr r1, _080B2774 - movs r0, #0 - strh r0, [r1] - ldr r1, _080B2778 - ldr r2, _080B277C - adds r0, r2, #0 - strh r0, [r1] - ldr r1, _080B2780 - movs r0, #0 - str r0, [r1] - movs r0, #2 - movs r1, #4 - bl sub_080B1C58 - pop {r0} - bx r0 - .align 2, 0 -_080B2774: .4byte gUnknown_2037290 -_080B2778: .4byte gUnknown_202267E -_080B277C: .4byte 0x00003311 -_080B2780: .4byte gUnknown_2022C90 - thumb_func_end sub_080B2750 - - thumb_func_start sub_080B2784 -sub_080B2784: @ 0x080B2784 - push {lr} - ldr r1, _080B27A0 - ldr r2, _080B27A4 - adds r0, r2, #0 - strh r0, [r1] - ldr r1, _080B27A8 - movs r0, #0 - str r0, [r1] - movs r0, #2 - movs r1, #4 - bl sub_080B1C58 - pop {r0} - bx r0 - .align 2, 0 -_080B27A0: .4byte gUnknown_202267E -_080B27A4: .4byte 0x00004411 -_080B27A8: .4byte gUnknown_2022C90 - thumb_func_end sub_080B2784 - - thumb_func_start sub_080B27AC -sub_080B27AC: @ 0x080B27AC - push {lr} - ldr r1, _080B27C8 - ldr r2, _080B27CC - adds r0, r2, #0 - strh r0, [r1] - ldr r1, _080B27D0 - movs r0, #0 - str r0, [r1] - movs r0, #4 - movs r1, #4 - bl sub_080B1C58 - pop {r0} - bx r0 - .align 2, 0 -_080B27C8: .4byte gUnknown_202267E -_080B27CC: .4byte 0x00006601 -_080B27D0: .4byte gUnknown_2022C90 - thumb_func_end sub_080B27AC - - thumb_func_start sub_080B27D4 -sub_080B27D4: @ 0x080B27D4 - push {lr} - ldr r1, _080B27F0 - ldr r2, _080B27F4 - adds r0, r2, #0 - strh r0, [r1] - ldr r1, _080B27F8 - movs r0, #0 - str r0, [r1] - movs r0, #2 - movs r1, #4 - bl sub_080B1C58 - pop {r0} - bx r0 - .align 2, 0 -_080B27F0: .4byte gUnknown_202267E -_080B27F4: .4byte 0x00006602 -_080B27F8: .4byte gUnknown_2022C90 - thumb_func_end sub_080B27D4 - - thumb_func_start sub_080B27FC -sub_080B27FC: @ 0x080B27FC - push {lr} - ldr r0, _080B2810 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B2814 - movs r0, #0xff - b _080B28E0 - .align 2, 0 -_080B2810: .4byte sub_080B28F0 -_080B2814: - ldr r0, _080B2828 - ldrh r0, [r0] - subs r0, #1 - cmp r0, #8 - bhi _080B28D4 - lsls r0, r0, #2 - ldr r1, _080B282C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B2828: .4byte gUnknown_2037280 -_080B282C: .4byte _080B2830 -_080B2830: @ jump table - .4byte _080B2854 @ case 0 - .4byte _080B2864 @ case 1 - .4byte _080B28BC @ case 2 - .4byte _080B28CC @ case 3 - .4byte _080B2874 @ case 4 - .4byte _080B28D4 @ case 5 - .4byte _080B28D4 @ case 6 - .4byte _080B28D4 @ case 7 - .4byte _080B2884 @ case 8 -_080B2854: - ldr r1, _080B285C - ldr r2, _080B2860 - b _080B28D0 - .align 2, 0 -_080B285C: .4byte gUnknown_202267E -_080B2860: .4byte 0x00002233 -_080B2864: - ldr r1, _080B286C - ldr r2, _080B2870 - b _080B28D0 - .align 2, 0 -_080B286C: .4byte gUnknown_202267E -_080B2870: .4byte 0x00002244 -_080B2874: - ldr r1, _080B287C - ldr r2, _080B2880 - b _080B28D0 - .align 2, 0 -_080B287C: .4byte gUnknown_202267E -_080B2880: .4byte 0x00002255 -_080B2884: - ldr r0, _080B289C - ldr r0, [r0] - ldr r1, _080B28A0 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _080B28AC - ldr r1, _080B28A4 - ldr r2, _080B28A8 - b _080B28D0 - .align 2, 0 -_080B289C: .4byte gUnknown_3005AF0 -_080B28A0: .4byte 0x00000CA9 -_080B28A4: .4byte gUnknown_202267E -_080B28A8: .4byte 0x00002266 -_080B28AC: - ldr r1, _080B28B4 - ldr r2, _080B28B8 - b _080B28D0 - .align 2, 0 -_080B28B4: .4byte gUnknown_202267E -_080B28B8: .4byte 0x00002277 -_080B28BC: - ldr r1, _080B28C4 - ldr r2, _080B28C8 - b _080B28D0 - .align 2, 0 -_080B28C4: .4byte gUnknown_202267E -_080B28C8: .4byte 0x00001111 -_080B28CC: - ldr r1, _080B28E4 - ldr r2, _080B28E8 -_080B28D0: - adds r0, r2, #0 - strh r0, [r1] -_080B28D4: - ldr r0, _080B28EC - movs r1, #0x50 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_080B28E0: - pop {r1} - bx r1 - .align 2, 0 -_080B28E4: .4byte gUnknown_202267E -_080B28E8: .4byte 0x00003322 -_080B28EC: .4byte sub_080B28F0 - thumb_func_end sub_080B27FC - - thumb_func_start sub_080B28F0 -sub_080B28F0: @ 0x080B28F0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080B291C - adds r4, r1, r0 - movs r3, #0 - ldrsh r2, [r4, r3] - cmp r2, #0 - bne _080B2924 - bl OpenLink - bl ResetLinkPlayers - ldr r0, _080B2920 - movs r1, #0x50 - bl CreateTask - b _080B2930 - .align 2, 0 -_080B291C: .4byte gUnknown_3005B68 -_080B2920: .4byte sub_080B3188 -_080B2924: - cmp r2, #9 - ble _080B2930 - subs r0, #8 - adds r0, r1, r0 - ldr r1, _080B293C - str r1, [r0] -_080B2930: - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B293C: .4byte sub_080B2940 - thumb_func_end sub_080B28F0 - - thumb_func_start sub_080B2940 -sub_080B2940: @ 0x080B2940 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, r4, #0 - bl GetLinkPlayerCount_2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _080B2986 - bl IsLinkMaster - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080B2978 - ldr r0, _080B2970 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080B2974 - b _080B2984 - .align 2, 0 -_080B2970: .4byte gUnknown_3005B60 -_080B2974: .4byte sub_080B2994 -_080B2978: - ldr r0, _080B298C - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080B2990 -_080B2984: - str r0, [r1] -_080B2986: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B298C: .4byte gUnknown_3005B60 -_080B2990: .4byte sub_080B29CC - thumb_func_end sub_080B2940 - - thumb_func_start sub_080B2994 -sub_080B2994: @ 0x080B2994 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - bl sub_0800A60C - adds r4, r0, #0 - bl GetLinkPlayerCount_2 - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - bne _080B29BE - bl CheckShouldAdvanceLinkState - ldr r0, _080B29C4 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080B29C8 - str r0, [r1] -_080B29BE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B29C4: .4byte gUnknown_3005B60 -_080B29C8: .4byte sub_080B29CC - thumb_func_end sub_080B2994 - - thumb_func_start sub_080B29CC -sub_080B29CC: @ 0x080B29CC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080B29FC - ldrb r0, [r0] - cmp r0, #1 - bne _080B29F4 - bl IsLinkPlayerDataExchangeComplete - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080B29F4 - bl sub_0800A6DC - bl sub_08009AB0 - adds r0, r4, #0 - bl DestroyTask -_080B29F4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B29FC: .4byte gUnknown_30031C4 - thumb_func_end sub_080B29CC - - thumb_func_start sub_080B2A00 -sub_080B2A00: @ 0x080B2A00 - push {lr} - bl SaveGame - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080B2A00 - - thumb_func_start sub_080B2A0C -sub_080B2A0C: @ 0x080B2A0C - push {lr} - cmp r0, #2 - beq _080B2A30 - cmp r0, #2 - bgt _080B2A1C - cmp r0, #1 - beq _080B2A26 - b _080B2A52 -_080B2A1C: - cmp r0, #5 - beq _080B2A3C - cmp r0, #9 - beq _080B2A4C - b _080B2A52 -_080B2A26: - ldr r1, _080B2A2C - movs r0, #0xa - b _080B2A50 - .align 2, 0 -_080B2A2C: .4byte gUnknown_2022C90 -_080B2A30: - ldr r1, _080B2A38 - movs r0, #0xb - b _080B2A50 - .align 2, 0 -_080B2A38: .4byte gUnknown_2022C90 -_080B2A3C: - bl ReducePlayerPartyToSelectedMons - ldr r1, _080B2A48 - movs r0, #0x4b - b _080B2A50 - .align 2, 0 -_080B2A48: .4byte gUnknown_2022C90 -_080B2A4C: - ldr r1, _080B2A58 - ldr r0, _080B2A5C -_080B2A50: - str r0, [r1] -_080B2A52: - pop {r0} - bx r0 - .align 2, 0 -_080B2A58: .4byte gUnknown_2022C90 -_080B2A5C: .4byte 0x0000014B - thumb_func_end sub_080B2A0C - - thumb_func_start sub_080B2A60 -sub_080B2A60: @ 0x080B2A60 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080B2A84 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #5 - bhi _080B2B4C - lsls r0, r0, #2 - ldr r1, _080B2A88 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B2A84: .4byte gUnknown_3005B60 -_080B2A88: .4byte _080B2A8C -_080B2A8C: @ jump table - .4byte _080B2AA4 @ case 0 - .4byte _080B2AC4 @ case 1 - .4byte _080B2AD4 @ case 2 - .4byte _080B2AE4 @ case 3 - .4byte _080B2AEA @ case 4 - .4byte _080B2B00 @ case 5 -_080B2AA4: - movs r0, #1 - movs r1, #0 - bl FadeScreen - ldr r1, _080B2ABC - ldr r2, _080B2AC0 - adds r0, r2, #0 - strh r0, [r1] - bl sub_08009B44 - b _080B2AF2 - .align 2, 0 -_080B2ABC: .4byte gUnknown_202267E -_080B2AC0: .4byte 0x00002211 -_080B2AC4: - ldr r0, _080B2AD0 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - b _080B2AEE - .align 2, 0 -_080B2AD0: .4byte gUnknown_2037C74 -_080B2AD4: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x14 - ble _080B2B4C - b _080B2AF2 -_080B2AE4: - bl sub_0800A7F8 - b _080B2AF2 -_080B2AEA: - ldr r0, _080B2AFC - ldrb r0, [r0] -_080B2AEE: - cmp r0, #0 - bne _080B2B4C -_080B2AF2: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _080B2B4C - .align 2, 0 -_080B2AFC: .4byte gUnknown_30031C4 -_080B2B00: - ldr r0, _080B2B14 - ldr r0, [r0, #4] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _080B2B1C - ldr r0, _080B2B18 - bl PlayMapChosenOrBattleBGM - b _080B2B24 - .align 2, 0 -_080B2B14: .4byte gUnknown_20226A0 -_080B2B18: .4byte 0x000001DD -_080B2B1C: - movs r0, #0xee - lsls r0, r0, #1 - bl PlayMapChosenOrBattleBGM -_080B2B24: - ldr r0, _080B2B54 - ldrh r0, [r0] - bl sub_080B2A0C - bl CleanupOverworldWindowsAndTilemaps - ldr r1, _080B2B58 - movs r2, #0x80 - lsls r2, r2, #4 - adds r0, r2, #0 - strh r0, [r1] - ldr r0, _080B2B5C - bl SetMainCallback2 - ldr r1, _080B2B60 - ldr r0, _080B2B64 - str r0, [r1, #8] - adds r0, r5, #0 - bl DestroyTask -_080B2B4C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B2B54: .4byte gUnknown_2037280 -_080B2B58: .4byte gUnknown_203886A -_080B2B5C: .4byte CB2_InitBattle -_080B2B60: .4byte gUnknown_3002360 -_080B2B64: .4byte sub_080B2D68 - thumb_func_end sub_080B2A60 - - thumb_func_start Task_BagMenu -Task_BagMenu: @ 0x080B2B68 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _080B2B8C - adds r5, r0, r1 - movs r1, #0 - ldrsh r0, [r5, r1] - cmp r0, #7 - bls _080B2B82 - b _080B2CDA -_080B2B82: - lsls r0, r0, #2 - ldr r1, _080B2B90 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B2B8C: .4byte gUnknown_3005B68 -_080B2B90: .4byte _080B2B94 -_080B2B94: @ jump table - .4byte _080B2BB4 @ case 0 - .4byte _080B2BD8 @ case 1 - .4byte _080B2BF0 @ case 2 - .4byte _080B2C04 @ case 3 - .4byte _080B2C58 @ case 4 - .4byte _080B2C6C @ case 5 - .4byte _080B2C76 @ case 6 - .4byte _080B2C86 @ case 7 -_080B2BB4: - movs r0, #1 - movs r1, #0 - bl FadeScreen - ldr r0, _080B2BD0 - ldr r2, _080B2BD4 - adds r1, r2, #0 - strh r1, [r0] - bl sub_08009B44 - movs r0, #1 - strh r0, [r5] - b _080B2CDA - .align 2, 0 -_080B2BD0: .4byte gUnknown_202267E -_080B2BD4: .4byte 0x00002211 -_080B2BD8: - ldr r0, _080B2BEC - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080B2BE6 - b _080B2CDA -_080B2BE6: - movs r0, #2 - strh r0, [r5] - b _080B2CDA - .align 2, 0 -_080B2BEC: .4byte gUnknown_2037C74 -_080B2BF0: - ldr r1, _080B2C00 - movs r0, #0 - movs r2, #0x1c - bl SendBlock - movs r0, #3 - strh r0, [r5] - b _080B2CDA - .align 2, 0 -_080B2C00: .4byte gUnknown_2022684 -_080B2C04: - bl GetBlockReceivedStatus - adds r4, r0, #0 - bl sub_0800A59C - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - bne _080B2CDA - movs r4, #0 - ldr r6, _080B2C1C - b _080B2C40 - .align 2, 0 -_080B2C1C: .4byte gUnknown_20226A0 -_080B2C20: - lsls r1, r4, #8 - ldr r2, _080B2C54 - adds r0, r6, #0 - adds r1, r1, r2 - ldm r1!, {r2, r3, r7} - stm r0!, {r2, r3, r7} - ldm r1!, {r2, r3, r7} - stm r0!, {r2, r3, r7} - ldr r1, [r1] - str r1, [r0] - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl ResetBlockReceivedFlag - adds r6, #0x1c - adds r4, #1 -_080B2C40: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - blt _080B2C20 - movs r0, #4 - strh r0, [r5] - b _080B2CDA - .align 2, 0 -_080B2C54: .4byte gUnknown_202207C -_080B2C58: - ldrh r0, [r5, #2] - adds r0, #1 - strh r0, [r5, #2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x14 - ble _080B2CDA - movs r0, #5 - strh r0, [r5] - b _080B2CDA -_080B2C6C: - bl sub_0800A8D4 - movs r0, #6 - strh r0, [r5] - b _080B2CDA -_080B2C76: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B2CDA - movs r0, #7 - strh r0, [r5] - b _080B2CDA -_080B2C86: - ldr r0, _080B2C9C - ldr r0, [r0, #4] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _080B2CA4 - ldr r0, _080B2CA0 - bl PlayMapChosenOrBattleBGM - b _080B2CAC - .align 2, 0 -_080B2C9C: .4byte gUnknown_20226A0 -_080B2CA0: .4byte 0x000001DD -_080B2CA4: - movs r0, #0xee - lsls r0, r0, #1 - bl PlayMapChosenOrBattleBGM -_080B2CAC: - ldr r1, _080B2CE0 - ldr r0, _080B2CE4 - str r0, [r1, #0x14] - ldr r0, _080B2CE8 - ldrh r0, [r0] - bl sub_080B2A0C - bl CleanupOverworldWindowsAndTilemaps - ldr r1, _080B2CEC - movs r3, #0x80 - lsls r3, r3, #4 - adds r0, r3, #0 - strh r0, [r1] - ldr r0, _080B2CF0 - bl SetMainCallback2 - ldr r1, _080B2CF4 - ldr r0, _080B2CF8 - str r0, [r1, #8] - adds r0, r4, #0 - bl DestroyTask -_080B2CDA: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080B2CE0: .4byte gUnknown_20226A0 -_080B2CE4: .4byte 0x00002211 -_080B2CE8: .4byte gUnknown_2037280 -_080B2CEC: .4byte gUnknown_203886A -_080B2CF0: .4byte CB2_InitBattle -_080B2CF4: .4byte gUnknown_3002360 -_080B2CF8: .4byte sub_080B2D68 - thumb_func_end Task_BagMenu - - thumb_func_start Cb_PrintCantStoreMail -Cb_PrintCantStoreMail: @ 0x080B2CFC - push {r4, lr} - ldr r0, _080B2D18 - movs r1, #0x87 - lsls r1, r1, #3 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, #1 - beq _080B2D3A - cmp r0, #1 - bgt _080B2D1C - cmp r0, #0 - beq _080B2D22 - b _080B2D5A - .align 2, 0 -_080B2D18: .4byte gUnknown_3002360 -_080B2D1C: - cmp r0, #2 - beq _080B2D54 - b _080B2D5A -_080B2D22: - bl sub_0800A7F8 - bl sub_08009C40 - cmp r0, #0 - beq _080B2D34 - movs r0, #2 - strb r0, [r4] - b _080B2D5A -_080B2D34: - movs r0, #1 - strb r0, [r4] - b _080B2D5A -_080B2D3A: - ldr r0, _080B2D4C - ldrb r0, [r0] - cmp r0, #0 - bne _080B2D5A - ldr r0, _080B2D50 - bl SetMainCallback2 - b _080B2D5A - .align 2, 0 -_080B2D4C: .4byte gUnknown_30031C4 -_080B2D50: .4byte sub_08085A30 -_080B2D54: - ldr r0, _080B2D64 - bl SetMainCallback2 -_080B2D5A: - bl RunTasks - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B2D64: .4byte sub_08085A30 - thumb_func_end Cb_PrintCantStoreMail - - thumb_func_start sub_080B2D68 -sub_080B2D68: @ 0x080B2D68 - push {r4, r5, lr} - ldr r2, _080B2DB8 - ldr r0, [r2] - movs r1, #0x21 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r2] - bl Overworld_ResetMapMusic - bl LoadPlayerParty - bl SavePlayerBag - bl sub_0813BF34 - ldr r0, _080B2DBC - ldrh r0, [r0] - subs r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bhi _080B2E0E - ldr r0, _080B2DC0 - ldrb r0, [r0] - movs r5, #1 - eors r0, r5 - bl UpdatePlayerLinkBattleRecords - ldr r0, _080B2DC4 - ldrb r0, [r0] - cmp r0, #0 - beq _080B2E0E - ldr r0, _080B2DC8 - ldrb r0, [r0] - cmp r0, #1 - beq _080B2DCC - cmp r0, #2 - beq _080B2DF0 - b _080B2E0E - .align 2, 0 -_080B2DB8: .4byte gUnknown_2022C90 -_080B2DBC: .4byte gUnknown_2037280 -_080B2DC0: .4byte gUnknown_3005B14 -_080B2DC4: .4byte gUnknown_300319C -_080B2DC8: .4byte gUnknown_2023FDE -_080B2DCC: - ldr r4, _080B2DEC - bl GetMultiplayerId - eors r0, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r4, #4 - adds r1, r1, r4 - ldr r1, [r1] - movs r0, #0 - bl WonderCard_Test_Unk_08_6 - b _080B2E0E - .align 2, 0 -_080B2DEC: .4byte gUnknown_20226A0 -_080B2DF0: - ldr r4, _080B2E1C - bl GetMultiplayerId - eors r0, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r4, #4 - adds r1, r1, r4 - ldr r1, [r1] - movs r0, #1 - bl WonderCard_Test_Unk_08_6 -_080B2E0E: - bl InUnionRoom - cmp r0, #1 - bne _080B2E28 - ldr r1, _080B2E20 - ldr r0, _080B2E24 - b _080B2E2C - .align 2, 0 -_080B2E1C: .4byte gUnknown_20226A0 -_080B2E20: .4byte gUnknown_3002360 -_080B2E24: .4byte Cb_PrintCantStoreMail -_080B2E28: - ldr r1, _080B2E3C - ldr r0, _080B2E40 -_080B2E2C: - str r0, [r1, #8] - ldr r0, _080B2E44 - bl SetMainCallback2 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B2E3C: .4byte gUnknown_3002360 -_080B2E40: .4byte CB2_ReturnToFieldFromMultiplayer -_080B2E44: .4byte sub_0809FDEC - thumb_func_end sub_080B2D68 - - thumb_func_start CleanupLinkRoomState -CleanupLinkRoomState: @ 0x080B2E48 - push {lr} - ldr r0, _080B2E74 - ldrh r1, [r0] - subs r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bls _080B2E62 - adds r0, r1, #0 - cmp r0, #5 - beq _080B2E62 - cmp r0, #9 - bne _080B2E6A -_080B2E62: - bl LoadPlayerParty - bl SavePlayerBag -_080B2E6A: - movs r0, #0x7f - bl SetWarpDestinationToDynamicWarp - pop {r0} - bx r0 - .align 2, 0 -_080B2E74: .4byte gUnknown_2037280 - thumb_func_end CleanupLinkRoomState - - thumb_func_start ExitLinkRoom -ExitLinkRoom: @ 0x080B2E78 - push {lr} - bl QueueExitLinkRoomKey - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ExitLinkRoom - - thumb_func_start sub_080B2E84 -sub_080B2E84: @ 0x080B2E84 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _080B2EA8 - adds r5, r0, r1 - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #1 - beq _080B2EC8 - cmp r0, #1 - bgt _080B2EAC - cmp r0, #0 - beq _080B2EB6 - b _080B2F28 - .align 2, 0 -_080B2EA8: .4byte gUnknown_3005B60 -_080B2EAC: - cmp r0, #2 - beq _080B2EE8 - cmp r0, #3 - beq _080B2F14 - b _080B2F28 -_080B2EB6: - ldr r0, _080B2EC4 - bl ShowFieldMessage - movs r0, #1 - strh r0, [r5, #8] - b _080B2F28 - .align 2, 0 -_080B2EC4: .4byte gUnknown_8247C79 -_080B2EC8: - bl sub_08097CC4 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B2F28 - bl sub_08086BEC - ldr r0, _080B2EE4 - ldrb r0, [r0] - bl SetLocalLinkPlayerId - movs r0, #2 - strh r0, [r5, #8] - b _080B2F28 - .align 2, 0 -_080B2EE4: .4byte gUnknown_2037282 -_080B2EE8: - bl sub_08086B78 - cmp r0, #1 - beq _080B2EFA - cmp r0, #1 - blo _080B2F28 - cmp r0, #2 - beq _080B2F0E - b _080B2F28 -_080B2EFA: - bl HideFieldMessageBox - movs r0, #0 - strh r0, [r5, #8] - bl sub_08086C28 - adds r0, r4, #0 - bl SwitchTaskToFollowupFunc - b _080B2F28 -_080B2F0E: - movs r0, #3 - strh r0, [r5, #8] - b _080B2F28 -_080B2F14: - bl sub_08086C00 - movs r0, #1 - bl sub_081978F0 - adds r0, r4, #0 - bl DestroyTask - bl EnableBothScriptContexts -_080B2F28: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080B2E84 - - thumb_func_start sub_080B2F30 -sub_080B2F30: @ 0x080B2F30 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080B2F54 - adds r0, r4, #0 - movs r1, #0x50 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r4, #0 - adds r2, r5, #0 - bl SetTaskFuncWithFollowupFunc - bl sub_080988B8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B2F54: .4byte sub_080B2E84 - thumb_func_end sub_080B2F30 - - thumb_func_start sub_080B2F58 -sub_080B2F58: @ 0x080B2F58 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080B2F7C - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _080B2F9C - cmp r0, #1 - bgt _080B2F80 - cmp r0, #0 - beq _080B2F8A - b _080B2FE0 - .align 2, 0 -_080B2F7C: .4byte gUnknown_3005B60 -_080B2F80: - cmp r0, #2 - beq _080B2FB0 - cmp r0, #3 - beq _080B2FCC - b _080B2FE0 -_080B2F8A: - bl sub_080987DC - movs r0, #1 - movs r1, #0 - bl FadeScreen - bl sub_08009B44 - b _080B2FC0 -_080B2F9C: - ldr r0, _080B2FAC - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080B2FE0 - b _080B2FC0 - .align 2, 0 -_080B2FAC: .4byte gUnknown_2037C74 -_080B2FB0: - ldr r1, _080B2FC8 - movs r0, #0 - strb r0, [r1] - strb r0, [r1, #1] - bl m4aMPlayAllStop - bl sub_0800A7F8 -_080B2FC0: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _080B2FE0 - .align 2, 0 -_080B2FC8: .4byte gUnknown_2031F38 -_080B2FCC: - ldr r0, _080B2FE8 - ldrb r0, [r0] - cmp r0, #0 - bne _080B2FE0 - ldr r0, _080B2FEC - bl SetMainCallback2 - adds r0, r5, #0 - bl DestroyTask -_080B2FE0: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B2FE8: .4byte gUnknown_30031C4 -_080B2FEC: .4byte sub_08076DB4 - thumb_func_end sub_080B2F58 - - thumb_func_start sub_080B2FF0 -sub_080B2FF0: @ 0x080B2FF0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080B3014 - adds r4, r0, r1 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _080B3034 - cmp r0, #1 - bgt _080B3018 - cmp r0, #0 - beq _080B3022 - b _080B3078 - .align 2, 0 -_080B3014: .4byte gUnknown_3005B68 -_080B3018: - cmp r0, #2 - beq _080B3048 - cmp r0, #3 - beq _080B3064 - b _080B3078 -_080B3022: - bl sub_080987DC - movs r0, #1 - movs r1, #0 - bl FadeScreen - bl sub_0800F2F8 - b _080B3058 -_080B3034: - ldr r0, _080B3044 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080B3078 - b _080B3058 - .align 2, 0 -_080B3044: .4byte gUnknown_2037C74 -_080B3048: - ldr r1, _080B3060 - movs r0, #0 - strb r0, [r1] - strb r0, [r1, #1] - bl m4aMPlayAllStop - bl sub_0800A8D4 -_080B3058: - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - b _080B3078 - .align 2, 0 -_080B3060: .4byte gUnknown_2031F38 -_080B3064: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B3078 - bl sub_08013A80 - adds r0, r5, #0 - bl DestroyTask -_080B3078: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080B2FF0 - - thumb_func_start PlayerEnteredTradeSeat -PlayerEnteredTradeSeat: @ 0x080B3080 - push {lr} - ldr r0, _080B3094 - ldrb r0, [r0] - cmp r0, #0 - beq _080B309C - ldr r0, _080B3098 - bl sub_080B2F30 - b _080B30A2 - .align 2, 0 -_080B3094: .4byte gUnknown_300319C -_080B3098: .4byte sub_080B2FF0 -_080B309C: - ldr r0, _080B30A8 - bl sub_080B2F30 -_080B30A2: - pop {r0} - bx r0 - .align 2, 0 -_080B30A8: .4byte sub_080B2F58 - thumb_func_end PlayerEnteredTradeSeat - - thumb_func_start sub_080B30AC -sub_080B30AC: @ 0x080B30AC - push {lr} - ldr r0, _080B30BC - movs r1, #0x50 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080B30BC: .4byte sub_080B2F58 - thumb_func_end sub_080B30AC - - thumb_func_start sub_080B30C0 -sub_080B30C0: @ 0x080B30C0 - bx lr - .align 2, 0 - thumb_func_end sub_080B30C0 - - thumb_func_start ColosseumPlayerSpotTriggered -ColosseumPlayerSpotTriggered: @ 0x080B30C4 - push {lr} - ldr r1, _080B30E0 - ldr r2, _080B30E4 - adds r0, r2, #0 - strh r0, [r1] - ldr r0, _080B30E8 - ldrb r0, [r0] - cmp r0, #0 - beq _080B30F0 - ldr r0, _080B30EC - bl sub_080B2F30 - b _080B30F6 - .align 2, 0 -_080B30E0: .4byte gUnknown_202267E -_080B30E4: .4byte 0x00002211 -_080B30E8: .4byte gUnknown_300319C -_080B30EC: .4byte Task_BagMenu -_080B30F0: - ldr r0, _080B30FC - bl sub_080B2F30 -_080B30F6: - pop {r0} - bx r0 - .align 2, 0 -_080B30FC: .4byte sub_080B2A60 - thumb_func_end ColosseumPlayerSpotTriggered - - thumb_func_start sub_080B3100 -sub_080B3100: @ 0x080B3100 - push {lr} - ldr r0, _080B3114 - movs r1, #0x50 - bl CreateTask - bl sub_080988B8 - pop {r0} - bx r0 - .align 2, 0 -_080B3114: .4byte sub_080B2E84 - thumb_func_end sub_080B3100 - - thumb_func_start sp02A_crash_sound -sp02A_crash_sound: @ 0x080B3118 - push {lr} - ldr r0, _080B3128 - ldrb r0, [r0] - ldr r1, _080B312C - bl ShowTrainerCardInLink - pop {r0} - bx r0 - .align 2, 0 -_080B3128: .4byte gUnknown_2037284 -_080B312C: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic - thumb_func_end sp02A_crash_sound - - thumb_func_start GetLinkTrainerCardColor -GetLinkTrainerCardColor: @ 0x080B3130 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _080B316C - strh r4, [r0] - ldr r0, _080B3170 - lsls r1, r4, #3 - subs r1, r1, r4 - lsls r1, r1, #2 - ldr r2, _080B3174 - adds r1, r1, r2 - bl StringCopy - adds r0, r4, #0 - bl GetTrainerCardStars - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - beq _080B3180 - ldr r0, _080B3178 - lsls r1, r2, #2 - adds r1, r1, r2 - ldr r2, _080B317C - adds r1, r1, r2 - bl StringCopy - movs r0, #1 - b _080B3182 - .align 2, 0 -_080B316C: .4byte gUnknown_2037284 -_080B3170: .4byte gUnknown_2021C40 -_080B3174: .4byte gUnknown_20226A8 -_080B3178: .4byte gUnknown_2021C54 -_080B317C: .4byte gUnknown_852B23F -_080B3180: - movs r0, #0 -_080B3182: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetLinkTrainerCardColor - - thumb_func_start sub_080B3188 -sub_080B3188: @ 0x080B3188 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, r4, #0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _080B31E8 - adds r0, r0, r1 - ldrh r1, [r0, #8] - adds r1, #1 - strh r1, [r0, #8] - lsls r1, r1, #0x10 - movs r0, #0x96 - lsls r0, r0, #0x11 - cmp r1, r0 - ble _080B31BA - bl CloseLink - ldr r0, _080B31EC - bl SetMainCallback2 - adds r0, r4, #0 - bl DestroyTask -_080B31BA: - ldr r0, _080B31F0 - ldrb r0, [r0] - cmp r0, #0 - beq _080B31FE - ldr r0, _080B31F4 - ldrb r0, [r0] - cmp r0, #0 - bne _080B31F8 - bl sub_0800A624 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B31DE - bl CloseLink - ldr r0, _080B31EC - bl SetMainCallback2 -_080B31DE: - adds r0, r4, #0 - bl DestroyTask - b _080B31FE - .align 2, 0 -_080B31E8: .4byte gUnknown_3005B60 -_080B31EC: .4byte CB2_LinkError -_080B31F0: .4byte gUnknown_30031C4 -_080B31F4: .4byte gUnknown_300319C -_080B31F8: - adds r0, r5, #0 - bl DestroyTask -_080B31FE: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_080B3188 - - thumb_func_start sub_080B3204 -sub_080B3204: @ 0x080B3204 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080B3224 - ldrb r0, [r0] - cmp r0, #0 - bne _080B321C - bl EnableBothScriptContexts - adds r0, r4, #0 - bl DestroyTask -_080B321C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B3224: .4byte gUnknown_30031C4 - thumb_func_end sub_080B3204 - - thumb_func_start sub_080B3228 -sub_080B3228: @ 0x080B3228 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_0800A7F8 - ldr r1, _080B3248 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080B324C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B3248: .4byte gUnknown_3005B60 -_080B324C: .4byte sub_080B3204 - thumb_func_end sub_080B3228 - - thumb_func_start sub_080B3250 -sub_080B3250: @ 0x080B3250 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _080B3274 - adds r5, r0, r1 - movs r1, #0 - ldrsh r0, [r5, r1] - cmp r0, #1 - beq _080B32AC - cmp r0, #1 - bgt _080B3278 - cmp r0, #0 - beq _080B3282 - b _080B3310 - .align 2, 0 -_080B3274: .4byte gUnknown_3005B68 -_080B3278: - cmp r0, #2 - beq _080B32C0 - cmp r0, #3 - beq _080B32F6 - b _080B3310 -_080B3282: - ldr r0, _080B3294 - ldrb r0, [r0] - cmp r0, #0 - beq _080B3298 - adds r0, r4, #0 - bl DestroyTask - b _080B3310 - .align 2, 0 -_080B3294: .4byte gUnknown_300319C -_080B3298: - bl OpenLink - ldr r0, _080B32A8 - movs r1, #1 - bl CreateTask - b _080B32EE - .align 2, 0 -_080B32A8: .4byte sub_080B3188 -_080B32AC: - ldrh r0, [r5, #2] - adds r0, #1 - strh r0, [r5, #2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xb - ble _080B3310 - movs r0, #0 - strh r0, [r5, #2] - b _080B32EE -_080B32C0: - bl GetLinkPlayerCount_2 - adds r4, r0, #0 - bl sub_0800A60C - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - blo _080B3310 - bl IsLinkMaster - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B32EE - ldrh r0, [r5, #2] - adds r0, #1 - strh r0, [r5, #2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1e - ble _080B3310 - bl CheckShouldAdvanceLinkState -_080B32EE: - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - b _080B3310 -_080B32F6: - ldr r0, _080B3318 - ldrb r0, [r0] - cmp r0, #1 - bne _080B3310 - bl IsLinkPlayerDataExchangeComplete - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080B3310 - adds r0, r4, #0 - bl DestroyTask -_080B3310: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B3318: .4byte gUnknown_30031C4 - thumb_func_end sub_080B3250 - - thumb_func_start sub_080B331C -sub_080B331C: @ 0x080B331C - push {lr} - ldr r0, _080B3334 - ldrb r0, [r0] - cmp r0, #0 - bne _080B332E - ldr r1, _080B3338 - ldr r2, _080B333C - adds r0, r2, #0 - strh r0, [r1] -_080B332E: - pop {r0} - bx r0 - .align 2, 0 -_080B3334: .4byte gUnknown_300319C -_080B3338: .4byte gUnknown_202267E -_080B333C: .4byte 0x00002288 - thumb_func_end sub_080B331C - - thumb_func_start CheckForTrainersWantingBattle -CheckForTrainersWantingBattle: @ 0x080B3340 - push {r4, r5, r6, r7, lr} - ldr r0, _080B33CC - movs r1, #0 - strb r1, [r0] - ldr r0, _080B33D0 - strb r1, [r0] - movs r4, #0 - ldr r6, _080B33D4 -_080B3350: - lsls r0, r4, #3 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r1, r0, r6 - ldrb r0, [r1] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _080B3390 - ldrb r0, [r1, #7] - cmp r0, #1 - beq _080B336A - cmp r0, #3 - bne _080B3390 -_080B336A: - adds r0, r4, #0 - bl CheckTrainer - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - beq _080B339A - cmp r0, #0 - beq _080B3390 - ldr r0, _080B33CC - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #1 - bhi _080B33E0 - bl GetMonsStateToDoubles_2 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B339A -_080B3390: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xf - bls _080B3350 -_080B339A: - ldr r0, _080B33CC - ldrb r4, [r0] - adds r5, r0, #0 - cmp r4, #1 - bne _080B33E0 - bl ResetTrainerOpponentIds - ldr r2, _080B33D8 - ldrb r0, [r5] - subs r0, #1 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, #4 - adds r1, r1, r2 - ldr r1, [r1] - bl ConfigureAndSetUpOneTrainerBattle - ldr r0, _080B33DC - strb r4, [r0] - movs r0, #1 - b _080B344C - .align 2, 0 -_080B33CC: .4byte gUnknown_3005E08 -_080B33D0: .4byte gUnknown_203889C -_080B33D4: .4byte gUnknown_2036FF0 -_080B33D8: .4byte gUnknown_3005DF0 -_080B33DC: .4byte gUnknown_3005E0C -_080B33E0: - ldrb r0, [r5] - cmp r0, #2 - bne _080B3444 - bl ResetTrainerOpponentIds - movs r4, #0 - ldrb r5, [r5] - cmp r4, r5 - bhs _080B341E - ldr r6, _080B3434 - adds r7, r6, #4 - ldr r5, _080B3438 -_080B33F8: - lsls r1, r4, #1 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r0, r1, r6 - ldrb r0, [r0] - adds r1, r1, r7 - ldr r1, [r1] - bl ConfigureTwoTrainersBattle - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - ldr r0, _080B343C - ldrb r0, [r0] - cmp r4, r0 - blo _080B33F8 -_080B341E: - bl SetUpTwoTrainersBattle - ldr r1, _080B3438 - movs r0, #0 - strb r0, [r1] - ldr r1, _080B3440 - movs r0, #1 - strb r0, [r1] - movs r0, #1 - b _080B344C - .align 2, 0 -_080B3434: .4byte gUnknown_3005DF0 -_080B3438: .4byte gUnknown_203889C -_080B343C: .4byte gUnknown_3005E08 -_080B3440: .4byte gUnknown_3005E0C -_080B3444: - ldr r1, _080B3454 - movs r0, #0 - strb r0, [r1] - movs r0, #0 -_080B344C: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080B3454: .4byte gUnknown_3005E0C - thumb_func_end CheckForTrainersWantingBattle - - thumb_func_start CheckTrainer -CheckTrainer: @ 0x080B3458 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r0, #1 - mov sb, r0 - bl InTrainerHill - cmp r0, #1 - bne _080B3476 - bl sub_081D5C48 - b _080B347C -_080B3476: - adds r0, r5, #0 - bl GetEventObjectScriptPointerByEventObjectId -_080B347C: - adds r7, r0, #0 - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B3496 - adds r0, r5, #0 - bl GetBattlePyramidTrainerFlag -_080B348E: - lsls r0, r0, #0x18 -_080B3490: - cmp r0, #0 - beq _080B34AE - b _080B3538 -_080B3496: - bl InTrainerHill - cmp r0, #1 - bne _080B34A6 - adds r0, r5, #0 - bl GetHillTrainerFlag - b _080B348E -_080B34A6: - adds r0, r7, #0 - bl GetTrainerFlagFromScriptPointer - b _080B3490 -_080B34AE: - lsls r4, r5, #3 - adds r0, r4, r5 - lsls r0, r0, #2 - ldr r1, _080B352C - adds r0, r0, r1 - bl GetTrainerApproachDistance - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - mov r8, r4 - cmp r6, #0 - beq _080B3538 - ldrb r0, [r7, #1] - cmp r0, #4 - beq _080B34D4 - cmp r0, #7 - beq _080B34D4 - cmp r0, #6 - bne _080B34E2 -_080B34D4: - bl GetMonsStateToDoubles_2 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B3538 - movs r1, #2 - mov sb, r1 -_080B34E2: - ldr r2, _080B3530 - ldr r4, _080B3534 - ldrb r1, [r4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strb r5, [r0] - ldrb r1, [r4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r2, #4 - adds r0, r0, r1 - str r7, [r0] - ldrb r1, [r4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strb r6, [r0, #1] - mov r1, r8 - adds r0, r1, r5 - lsls r0, r0, #2 - ldr r1, _080B352C - adds r0, r0, r1 - subs r1, r6, #1 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl TrainerApproachPlayer - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - mov r0, sb - b _080B353A - .align 2, 0 -_080B352C: .4byte gUnknown_2036FF0 -_080B3530: .4byte gUnknown_3005DF0 -_080B3534: .4byte gUnknown_3005E08 -_080B3538: - movs r0, #0 -_080B353A: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CheckTrainer - - thumb_func_start GetTrainerApproachDistance -GetTrainerApproachDistance: @ 0x080B3548 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r7, r0, #0 - mov r4, sp - adds r4, #2 - mov r0, sp - adds r1, r4, #0 - bl PlayerGetDestCoords - ldrb r0, [r7, #7] - mov r8, r4 - cmp r0, #1 - bne _080B35A8 - ldr r1, _080B35A0 - ldrb r0, [r7, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1a - subs r0, #4 - adds r0, r0, r1 - ldrb r1, [r7, #0x1d] - mov r2, sp - movs r3, #0 - ldrsh r2, [r2, r3] - movs r5, #0 - ldrsh r3, [r4, r5] - ldr r4, [r0] - adds r0, r7, #0 - bl _call_via_r4 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldrb r2, [r7, #0x18] - lsls r2, r2, #0x1c - lsrs r2, r2, #0x1c - adds r0, r7, #0 - adds r1, r6, #0 - bl CheckPathBetweenTrainerAndPlayer - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _080B35E8 - .align 2, 0 -_080B35A0: .4byte gUnknown_852B3D8 -_080B35A4: - adds r0, r6, #0 - b _080B35E8 -_080B35A8: - movs r5, #0 -_080B35AA: - ldr r0, _080B35F4 - lsls r4, r5, #2 - adds r4, r4, r0 - ldrb r1, [r7, #0x1d] - mov r0, sp - movs r6, #0 - ldrsh r2, [r0, r6] - mov r0, r8 - movs r6, #0 - ldrsh r3, [r0, r6] - ldr r4, [r4] - adds r0, r7, #0 - bl _call_via_r4 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - bl CheckPathBetweenTrainerAndPlayer - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B35A4 - adds r5, r4, #0 - cmp r5, #3 - bls _080B35AA - movs r0, #0 -_080B35E8: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080B35F4: .4byte gUnknown_852B3D8 - thumb_func_end GetTrainerApproachDistance - - thumb_func_start GetTrainerApproachDistanceSouth -GetTrainerApproachDistanceSouth: @ 0x080B35F8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - lsls r3, r3, #0x10 - lsrs r5, r3, #0x10 - movs r1, #0x10 - ldrsh r0, [r4, r1] - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - cmp r0, r2 - bne _080B3632 - lsls r0, r5, #0x10 - asrs r2, r0, #0x10 - ldrh r3, [r4, #0x12] - movs r1, #0x12 - ldrsh r0, [r4, r1] - cmp r2, r0 - ble _080B3632 - adds r1, r0, #0 - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - adds r1, r1, r0 - cmp r2, r1 - bgt _080B3632 - subs r0, r5, r3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _080B3634 -_080B3632: - movs r0, #0 -_080B3634: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetTrainerApproachDistanceSouth - - thumb_func_start GetTrainerApproachDistanceNorth -GetTrainerApproachDistanceNorth: @ 0x080B363C - push {r4, r5, r6, lr} - adds r4, r0, #0 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - lsls r3, r3, #0x10 - lsrs r5, r3, #0x10 - movs r1, #0x10 - ldrsh r0, [r4, r1] - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - cmp r0, r2 - bne _080B3676 - lsls r0, r5, #0x10 - asrs r2, r0, #0x10 - ldrh r3, [r4, #0x12] - movs r1, #0x12 - ldrsh r0, [r4, r1] - cmp r2, r0 - bge _080B3676 - adds r1, r0, #0 - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - subs r1, r1, r0 - cmp r2, r1 - blt _080B3676 - subs r0, r3, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _080B3678 -_080B3676: - movs r0, #0 -_080B3678: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetTrainerApproachDistanceNorth - - thumb_func_start GetTrainerApproachDistanceWest -GetTrainerApproachDistanceWest: @ 0x080B3680 - push {r4, r5, r6, lr} - adds r4, r0, #0 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r5, r2, #0x10 - movs r1, #0x12 - ldrsh r0, [r4, r1] - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - cmp r0, r3 - bne _080B36BA - lsls r0, r5, #0x10 - asrs r3, r0, #0x10 - ldrh r2, [r4, #0x10] - movs r1, #0x10 - ldrsh r0, [r4, r1] - cmp r3, r0 - bge _080B36BA - adds r1, r0, #0 - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - subs r1, r1, r0 - cmp r3, r1 - blt _080B36BA - subs r0, r2, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _080B36BC -_080B36BA: - movs r0, #0 -_080B36BC: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetTrainerApproachDistanceWest - - thumb_func_start GetTrainerApproachDistanceEast -GetTrainerApproachDistanceEast: @ 0x080B36C4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r5, r2, #0x10 - movs r1, #0x12 - ldrsh r0, [r4, r1] - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - cmp r0, r3 - bne _080B36FE - lsls r0, r5, #0x10 - asrs r3, r0, #0x10 - ldrh r2, [r4, #0x10] - movs r1, #0x10 - ldrsh r0, [r4, r1] - cmp r3, r0 - ble _080B36FE - adds r1, r0, #0 - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - adds r1, r1, r0 - cmp r3, r1 - bgt _080B36FE - subs r0, r5, r2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _080B3700 -_080B36FE: - movs r0, #0 -_080B3700: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetTrainerApproachDistanceEast - - thumb_func_start CheckPathBetweenTrainerAndPlayer -CheckPathBetweenTrainerAndPlayer: @ 0x080B3708 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - adds r6, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sb, r1 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - cmp r1, #0 - beq _080B37AE - ldrh r1, [r6, #0x10] - mov r0, sp - strh r1, [r0] - ldrh r0, [r6, #0x12] - mov r4, sp - adds r4, #2 - strh r0, [r4] - adds r0, r7, #0 - mov r1, sp - adds r2, r4, #0 - bl MoveCoords - movs r5, #0 - mov r8, r4 - mov r4, sb - subs r4, #1 - cmp r5, r4 - bge _080B3780 -_080B3746: - mov r0, sp - movs r2, #0 - ldrsh r1, [r0, r2] - mov r3, r8 - movs r0, #0 - ldrsh r2, [r3, r0] - adds r0, r6, #0 - adds r3, r7, #0 - bl GetCollisionFlagsAtCoords - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _080B376C - movs r0, #2 - rsbs r0, r0, #0 - ands r1, r0 - cmp r1, #0 - bne _080B37AE -_080B376C: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r7, #0 - mov r1, sp - mov r2, r8 - bl MoveCoords - cmp r5, r4 - blt _080B3746 -_080B3780: - ldrb r4, [r6, #0x19] - lsls r5, r4, #0x1c - lsrs r5, r5, #0x1c - lsrs r4, r4, #4 - movs r0, #0 - strb r0, [r6, #0x19] - mov r0, sp - movs r2, #0 - ldrsh r1, [r0, r2] - mov r3, r8 - movs r0, #0 - ldrsh r2, [r3, r0] - adds r0, r6, #0 - adds r3, r7, #0 - bl GetCollisionAtCoords - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - lsls r4, r4, #4 - orrs r5, r4 - strb r5, [r6, #0x19] - cmp r1, #4 - beq _080B37B2 -_080B37AE: - movs r0, #0 - b _080B37B4 -_080B37B2: - mov r0, sb -_080B37B4: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CheckPathBetweenTrainerAndPlayer - - thumb_func_start TrainerApproachPlayer -TrainerApproachPlayer: @ 0x080B37C4 - push {r4, r5, lr} - lsls r5, r1, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _080B3810 - movs r1, #0x50 - bl CreateTask - ldr r4, _080B3814 - ldr r3, _080B3818 - ldrb r2, [r3] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r4 - strb r0, [r1, #8] - ldrb r1, [r3] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r0, [r0, #8] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080B381C - adds r1, r1, r0 - strh r5, [r1, #0xe] - ldrb r2, [r3] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r0, [r0] - strh r0, [r1, #0x16] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B3810: .4byte Task_RunTrainerSeeFuncList -_080B3814: .4byte gUnknown_3005DF0 -_080B3818: .4byte gUnknown_3005E08 -_080B381C: .4byte gUnknown_3005B60 - thumb_func_end TrainerApproachPlayer - - thumb_func_start sub_080B3820 -sub_080B3820: @ 0x080B3820 - push {r4, r5, lr} - adds r2, r0, #0 - ldr r0, _080B3834 - ldrb r0, [r0] - cmp r0, #0 - bne _080B383C - ldr r0, _080B3838 - ldrb r5, [r0, #8] - b _080B3840 - .align 2, 0 -_080B3834: .4byte gUnknown_203889C -_080B3838: .4byte gUnknown_3005DF0 -_080B383C: - ldr r0, _080B3864 - ldrb r5, [r0, #0x14] -_080B3840: - ldr r4, _080B3868 - adds r0, r5, #0 - adds r1, r4, #0 - bl SetTaskFuncWithFollowupFunc - ldr r1, _080B386C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #1 - strh r1, [r0, #8] - adds r0, r5, #0 - bl _call_via_r4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B3864: .4byte gUnknown_3005DF0 -_080B3868: .4byte Task_RunTrainerSeeFuncList -_080B386C: .4byte gUnknown_3005B60 - thumb_func_end sub_080B3820 - - thumb_func_start Task_RunTrainerSeeFuncList -Task_RunTrainerSeeFuncList: @ 0x080B3870 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _080B38A0 - adds r4, r0, r1 - movs r0, #0x16 - ldrsh r1, [r4, r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B38A4 - adds r5, r0, r1 - ldrb r0, [r5] - lsls r0, r0, #0x1f - cmp r0, #0 - bne _080B38A8 - adds r0, r6, #0 - bl SwitchTaskToFollowupFunc - b _080B38C4 - .align 2, 0 -_080B38A0: .4byte gUnknown_3005B60 -_080B38A4: .4byte gUnknown_2036FF0 -_080B38A8: - ldr r7, _080B38CC -_080B38AA: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r7 - ldr r3, [r0] - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r5, #0 - bl _call_via_r3 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B38AA -_080B38C4: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080B38CC: .4byte gUnknown_852B3E8 - thumb_func_end Task_RunTrainerSeeFuncList - - thumb_func_start sub_080B38D0 -sub_080B38D0: @ 0x080B38D0 - movs r0, #0 - bx lr - thumb_func_end sub_080B38D0 - - thumb_func_start TrainerExclamationMark -TrainerExclamationMark: @ 0x080B38D4 - push {r4, r5, lr} - adds r5, r1, #0 - adds r4, r2, #0 - ldr r1, _080B3914 - adds r2, r1, #4 - adds r3, r1, #0 - adds r3, #8 - adds r0, r4, #0 - bl EventObjectGetLocalIdAndMap - movs r0, #0 - bl FieldEffectStart - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_08092CA0 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetHeldMovement - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080B3914: .4byte gUnknown_20388A8 - thumb_func_end TrainerExclamationMark - - thumb_func_start WaitTrainerExclamationMark -WaitTrainerExclamationMark: @ 0x080B3918 - push {r4, r5, lr} - adds r4, r1, #0 - adds r5, r2, #0 - movs r0, #0 - bl FieldEffectActiveListContains - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B392E - movs r0, #0 - b _080B3950 -_080B392E: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - ldrb r0, [r5, #6] - subs r0, #0x39 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _080B3944 - movs r0, #6 - strh r0, [r4, #8] -_080B3944: - ldrb r0, [r5, #6] - cmp r0, #0x3f - bne _080B394E - movs r0, #8 - strh r0, [r4, #8] -_080B394E: - movs r0, #1 -_080B3950: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end WaitTrainerExclamationMark - - thumb_func_start TrainerMoveToPlayer -TrainerMoveToPlayer: @ 0x080B3958 - push {r4, r5, lr} - adds r5, r1, #0 - adds r4, r2, #0 - adds r0, r4, #0 - bl EventObjectIsMovementOverridden - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B3976 - adds r0, r4, #0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B39AA -_080B3976: - movs r1, #0xe - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _080B399C - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_08092CF8 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetHeldMovement - ldrh r0, [r5, #0xe] - subs r0, #1 - strh r0, [r5, #0xe] - b _080B39AA -_080B399C: - adds r0, r4, #0 - movs r1, #0x3e - bl EventObjectSetHeldMovement - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] -_080B39AA: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end TrainerMoveToPlayer - - thumb_func_start PlayerFaceApproachingTrainer -PlayerFaceApproachingTrainer: @ 0x080B39B4 - push {r4, r5, r6, lr} - adds r6, r1, #0 - adds r5, r2, #0 - adds r0, r5, #0 - bl EventObjectIsMovementOverridden - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B39D2 - adds r0, r5, #0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B3A60 -_080B39D2: - ldrb r0, [r5, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_080924E8 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl SetTrainerMovementType - ldrb r0, [r5, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_080924E8 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl TryOverrideTemplateCoordsForEventObject - adds r0, r5, #0 - bl OverrideTemplateCoordsForEventObject - ldr r0, _080B3A68 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B3A6C - adds r4, r0, r1 - adds r0, r4, #0 - bl EventObjectIsMovementOverridden - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B3A2A - adds r0, r4, #0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B3A60 -_080B3A2A: - bl sub_0808B64C - ldr r0, _080B3A68 - ldrb r0, [r0, #5] - lsls r4, r0, #3 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _080B3A6C - adds r4, r4, r0 - ldrb r0, [r5, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl GetOppositeDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_08092CA0 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetHeldMovement - ldrh r0, [r6, #8] - adds r0, #1 - strh r0, [r6, #8] -_080B3A60: - movs r0, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080B3A68: .4byte gUnknown_2037230 -_080B3A6C: .4byte gUnknown_2036FF0 - thumb_func_end PlayerFaceApproachingTrainer - - thumb_func_start WaitPlayerFaceApproachingTrainer -WaitPlayerFaceApproachingTrainer: @ 0x080B3A70 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _080B3AAC - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B3AB0 - adds r4, r0, r1 - adds r0, r4, #0 - bl EventObjectIsMovementOverridden - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B3A9C - adds r0, r4, #0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B3AA2 -_080B3A9C: - adds r0, r5, #0 - bl SwitchTaskToFollowupFunc -_080B3AA2: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080B3AAC: .4byte gUnknown_2037230 -_080B3AB0: .4byte gUnknown_2036FF0 - thumb_func_end WaitPlayerFaceApproachingTrainer - - thumb_func_start sub_080B3AB4 -sub_080B3AB4: @ 0x080B3AB4 - push {r4, r5, lr} - adds r5, r1, #0 - adds r4, r2, #0 - adds r0, r4, #0 - bl EventObjectIsMovementOverridden - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B3AD2 - adds r0, r4, #0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B3AE0 -_080B3AD2: - adds r0, r4, #0 - movs r1, #0x59 - bl EventObjectSetHeldMovement - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] -_080B3AE0: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_080B3AB4 - - thumb_func_start WaitRevealDisguisedTrainer -WaitRevealDisguisedTrainer: @ 0x080B3AE8 - push {r4, lr} - adds r4, r1, #0 - adds r0, r2, #0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B3AFC - movs r0, #3 - strh r0, [r4, #8] -_080B3AFC: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end WaitRevealDisguisedTrainer - - thumb_func_start sub_080B3B04 -sub_080B3B04: @ 0x080B3B04 - push {r4, r5, lr} - adds r5, r1, #0 - adds r4, r2, #0 - adds r0, r4, #0 - bl EventObjectIsMovementOverridden - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B3B22 - adds r0, r4, #0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B3B30 -_080B3B22: - adds r0, r4, #0 - movs r1, #0x3e - bl EventObjectSetHeldMovement - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] -_080B3B30: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_080B3B04 - - thumb_func_start PopOutOfAshHiddenTrainer -PopOutOfAshHiddenTrainer: @ 0x080B3B38 - push {r4, r5, lr} - adds r5, r1, #0 - adds r4, r2, #0 - adds r0, r4, #0 - bl EventObjectCheckHeldMovementStatus - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B3B7E - ldr r2, _080B3B88 - movs r1, #0x10 - ldrsh r0, [r4, r1] - str r0, [r2] - movs r1, #0x12 - ldrsh r0, [r4, r1] - str r0, [r2, #4] - ldr r3, _080B3B8C - ldrb r1, [r4, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x43 - ldrb r0, [r0] - subs r0, #1 - str r0, [r2, #8] - movs r0, #2 - str r0, [r2, #0xc] - movs r0, #0x31 - bl FieldEffectStart - strh r0, [r5, #0x10] - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] -_080B3B7E: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080B3B88: .4byte gUnknown_20388A8 -_080B3B8C: .4byte gUnknown_20205AC - thumb_func_end PopOutOfAshHiddenTrainer - - thumb_func_start JumpInPlaceHiddenTrainer -JumpInPlaceHiddenTrainer: @ 0x080B3B90 - push {r4, r5, lr} - adds r5, r1, #0 - adds r4, r2, #0 - ldr r2, _080B3C00 - movs r1, #0x10 - ldrsh r0, [r5, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - adds r1, #0x2b - ldrb r0, [r1] - cmp r0, #2 - bne _080B3BF8 - ldrb r1, [r4, #3] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #3] - ldrb r0, [r4] - movs r1, #4 - orrs r0, r1 - strb r0, [r4] - ldrb r1, [r4, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r2, [r0, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #8 - orrs r1, r2 - strb r1, [r0, #5] - adds r0, r4, #0 - bl EventObjectClearHeldMovementIfFinished - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_08092E2C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetHeldMovement - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] -_080B3BF8: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080B3C00: .4byte gUnknown_20205AC - thumb_func_end JumpInPlaceHiddenTrainer - - thumb_func_start WaitRevealHiddenTrainer -WaitRevealHiddenTrainer: @ 0x080B3C04 - push {r4, lr} - adds r4, r1, #0 - movs r0, #0x31 - bl FieldEffectActiveListContains - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B3C18 - movs r0, #3 - strh r0, [r4, #8] -_080B3C18: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end WaitRevealHiddenTrainer - - thumb_func_start sub_080B3C20 -sub_080B3C20: @ 0x080B3C20 - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080B3CB4 - adds r4, r0, r1 - adds r0, r4, #0 - adds r0, #0xa - mov r1, sp - bl LoadWordFromTwoHalfwords - movs r1, #0x16 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080B3C52 - ldr r0, [sp] - bl EventObjectClearHeldMovement - ldrh r0, [r4, #0x16] - adds r0, #1 - strh r0, [r4, #0x16] -_080B3C52: - ldr r1, _080B3CB8 - movs r2, #8 - ldrsh r0, [r4, r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r2, [sp] - ldr r3, [r0] - adds r0, r5, #0 - adds r1, r4, #0 - bl _call_via_r3 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #3 - bne _080B3CBC - movs r0, #0x31 - bl FieldEffectActiveListContains - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B3CBC - ldr r4, [sp] - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_080924E8 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl SetTrainerMovementType - ldr r4, [sp] - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_080924E8 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl TryOverrideTemplateCoordsForEventObject - adds r0, r5, #0 - bl DestroyTask - b _080B3CC6 - .align 2, 0 -_080B3CB4: .4byte gUnknown_3005B60 -_080B3CB8: .4byte gUnknown_852B418 -_080B3CBC: - ldr r2, [sp] - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] -_080B3CC6: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080B3C20 - - thumb_func_start sub_080B3CD0 -sub_080B3CD0: @ 0x080B3CD0 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080B3CFC - movs r1, #0 - bl CreateTask - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - ldr r1, _080B3D00 - adds r0, r0, r1 - adds r0, #2 - adds r1, r4, #0 - bl StoreWordInTwoHalfwords - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B3CFC: .4byte sub_080B3C20 -_080B3D00: .4byte gUnknown_3005B68 - thumb_func_end sub_080B3CD0 - - thumb_func_start EndTrainerApproach -EndTrainerApproach: @ 0x080B3D04 - push {lr} - ldr r0, _080B3D10 - bl sub_080B3820 - pop {r0} - bx r0 - .align 2, 0 -_080B3D10: .4byte Task_DestroyTrainerApproachTask - thumb_func_end EndTrainerApproach - - thumb_func_start Task_DestroyTrainerApproachTask -Task_DestroyTrainerApproachTask: @ 0x080B3D14 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - bl EnableBothScriptContexts - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Task_DestroyTrainerApproachTask - - thumb_func_start TryPrepareSecondApproachingTrainer -TryPrepareSecondApproachingTrainer: @ 0x080B3D28 - push {lr} - ldr r0, _080B3D54 - ldrb r0, [r0] - cmp r0, #2 - bne _080B3D68 - ldr r1, _080B3D58 - ldrb r0, [r1] - cmp r0, #0 - bne _080B3D64 - adds r0, #1 - strb r0, [r1] - ldr r1, _080B3D5C - movs r0, #1 - strh r0, [r1] - bl UnfreezeEventObjects - ldr r0, _080B3D60 - ldrb r0, [r0, #0xc] - bl FreezeEventObjectsExceptOne - b _080B3D6E - .align 2, 0 -_080B3D54: .4byte gUnknown_3005E08 -_080B3D58: .4byte gUnknown_203889C -_080B3D5C: .4byte gUnknown_2037290 -_080B3D60: .4byte gUnknown_3005DF0 -_080B3D64: - movs r0, #0 - strb r0, [r1] -_080B3D68: - ldr r1, _080B3D74 - movs r0, #0 - strh r0, [r1] -_080B3D6E: - pop {r0} - bx r0 - .align 2, 0 -_080B3D74: .4byte gUnknown_2037290 - thumb_func_end TryPrepareSecondApproachingTrainer - - thumb_func_start FldEff_ExclamationMarkIcon -FldEff_ExclamationMarkIcon: @ 0x080B3D78 - push {lr} - ldr r0, _080B3DA8 - movs r1, #0 - movs r2, #0 - movs r3, #0x53 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x40 - beq _080B3DA0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B3DAC - adds r0, r0, r1 - movs r1, #0 - movs r2, #0 - bl SetIconSpriteData -_080B3DA0: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_080B3DA8: .4byte gUnknown_852B460 -_080B3DAC: .4byte gUnknown_20205AC - thumb_func_end FldEff_ExclamationMarkIcon - - thumb_func_start FldEff_QuestionMarkIcon -FldEff_QuestionMarkIcon: @ 0x080B3DB0 - push {lr} - ldr r0, _080B3DE0 - movs r1, #0 - movs r2, #0 - movs r3, #0x52 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x40 - beq _080B3DD8 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B3DE4 - adds r0, r0, r1 - movs r1, #0x21 - movs r2, #1 - bl SetIconSpriteData -_080B3DD8: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_080B3DE0: .4byte gUnknown_852B460 -_080B3DE4: .4byte gUnknown_20205AC - thumb_func_end FldEff_QuestionMarkIcon - - thumb_func_start FldEff_HeartIcon -FldEff_HeartIcon: @ 0x080B3DE8 - push {r4, lr} - ldr r0, _080B3E28 - movs r1, #0 - movs r2, #0 - movs r3, #0x52 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _080B3E1E - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _080B3E2C - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x2e - movs r2, #0 - bl SetIconSpriteData - ldrb r1, [r4, #5] - movs r0, #0xf - ands r0, r1 - movs r1, #0x20 - orrs r0, r1 - strb r0, [r4, #5] -_080B3E1E: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080B3E28: .4byte gUnknown_852B478 -_080B3E2C: .4byte gUnknown_20205AC - thumb_func_end FldEff_HeartIcon - - thumb_func_start SetIconSpriteData -SetIconSpriteData: @ 0x080B3E30 - push {r4, lr} - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r4, [r0, #5] - movs r3, #0xd - rsbs r3, r3, #0 - ands r3, r4 - movs r4, #4 - orrs r3, r4 - strb r3, [r0, #5] - movs r3, #0x3e - adds r3, r3, r0 - mov ip, r3 - ldrb r3, [r3] - movs r4, #2 - orrs r3, r4 - mov r4, ip - strb r3, [r4] - ldr r4, _080B3E74 - ldr r3, [r4] - strh r3, [r0, #0x2e] - ldr r3, [r4, #4] - strh r3, [r0, #0x30] - ldr r3, [r4, #8] - strh r3, [r0, #0x32] - ldr r3, _080B3E78 - strh r3, [r0, #0x34] - strh r1, [r0, #0x3c] - adds r1, r2, #0 - bl StartSpriteAnim - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B3E74: .4byte gUnknown_20388A8 -_080B3E78: .4byte 0x0000FFFB - thumb_func_end SetIconSpriteData - - thumb_func_start SpriteCB_TrainerIcons -SpriteCB_TrainerIcons: @ 0x080B3E7C - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #0x30] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrh r2, [r4, #0x32] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B3EAE - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080B3EBC -_080B3EAE: - ldrh r1, [r4, #0x3c] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl FieldEffectStop - b _080B3F0A -_080B3EBC: - ldr r2, _080B3F00 - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #4] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _080B3F04 - adds r1, r1, r0 - ldrh r3, [r4, #0x34] - ldrh r0, [r4, #0x36] - adds r2, r3, r0 - strh r2, [r4, #0x36] - ldrh r0, [r1, #0x20] - strh r0, [r4, #0x20] - ldrh r0, [r1, #0x22] - subs r0, #0x10 - strh r0, [r4, #0x22] - ldrh r0, [r1, #0x24] - strh r0, [r4, #0x24] - ldrh r0, [r1, #0x26] - adds r0, r0, r2 - strh r0, [r4, #0x26] - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - cmp r2, #0 - beq _080B3F08 - adds r0, r3, #1 - strh r0, [r4, #0x34] - b _080B3F0A - .align 2, 0 -_080B3F00: .4byte gUnknown_2036FF0 -_080B3F04: .4byte gUnknown_20205AC -_080B3F08: - strh r2, [r4, #0x34] -_080B3F0A: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SpriteCB_TrainerIcons - - thumb_func_start GetCurrentApproachingTrainerEventObjectId -GetCurrentApproachingTrainerEventObjectId: @ 0x080B3F14 - push {lr} - ldr r0, _080B3F24 - ldrb r0, [r0] - cmp r0, #0 - beq _080B3F2C - ldr r0, _080B3F28 - ldrb r0, [r0, #0xc] - b _080B3F30 - .align 2, 0 -_080B3F24: .4byte gUnknown_203889C -_080B3F28: .4byte gUnknown_3005DF0 -_080B3F2C: - ldr r0, _080B3F34 - ldrb r0, [r0] -_080B3F30: - pop {r1} - bx r1 - .align 2, 0 -_080B3F34: .4byte gUnknown_3005DF0 - thumb_func_end GetCurrentApproachingTrainerEventObjectId - - thumb_func_start GetChosenApproachingTrainerEventObjectId -GetChosenApproachingTrainerEventObjectId: @ 0x080B3F38 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _080B3F46 - movs r0, #0 - b _080B3F58 -_080B3F46: - cmp r0, #0 - beq _080B3F54 - ldr r0, _080B3F50 - ldrb r0, [r0, #0xc] - b _080B3F58 - .align 2, 0 -_080B3F50: .4byte gUnknown_3005DF0 -_080B3F54: - ldr r0, _080B3F5C - ldrb r0, [r0] -_080B3F58: - pop {r1} - bx r1 - .align 2, 0 -_080B3F5C: .4byte gUnknown_3005DF0 - thumb_func_end GetChosenApproachingTrainerEventObjectId - - thumb_func_start sub_080B3F60 -sub_080B3F60: @ 0x080B3F60 - push {lr} - ldr r0, _080B3FB0 - ldrb r0, [r0] - cmp r0, #1 - bne _080B3FC8 - ldr r2, _080B3FB4 - ldr r0, _080B3FB8 - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B3FBC - adds r0, r0, r1 - ldrb r0, [r0, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl GetOppositeDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_08092CA0 - ldr r3, _080B3FC0 - strb r0, [r3] - movs r0, #0xfe - strb r0, [r3, #1] - ldr r0, _080B3FC4 - ldr r0, [r0] - ldrb r1, [r0, #5] - ldrb r2, [r0, #4] - movs r0, #0xff - bl ScriptMovement_StartObjectMovementScript - b _080B3FF6 - .align 2, 0 -_080B3FB0: .4byte gUnknown_3005E0C -_080B3FB4: .4byte gUnknown_3005DF0 -_080B3FB8: .4byte gUnknown_3005DE0 -_080B3FBC: .4byte gUnknown_2036FF0 -_080B3FC0: .4byte gUnknown_3005DE4 -_080B3FC4: .4byte gUnknown_3005AEC -_080B3FC8: - ldr r0, _080B4000 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B4004 - adds r0, r0, r1 - ldrb r0, [r0, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_08092CA0 - ldr r3, _080B4008 - strb r0, [r3] - movs r0, #0xfe - strb r0, [r3, #1] - ldr r0, _080B400C - ldr r0, [r0] - ldrb r1, [r0, #5] - ldrb r2, [r0, #4] - movs r0, #0xff - bl ScriptMovement_StartObjectMovementScript -_080B3FF6: - movs r0, #0xff - bl sub_0809B720 - pop {r0} - bx r0 - .align 2, 0 -_080B4000: .4byte gUnknown_2037230 -_080B4004: .4byte gUnknown_2036FF0 -_080B4008: .4byte gUnknown_3005DE4 -_080B400C: .4byte gUnknown_3005AEC - thumb_func_end sub_080B3F60 - - thumb_func_start sub_080B4010 -sub_080B4010: @ 0x080B4010 - ldr r1, _080B4018 - strb r0, [r1] - bx lr - .align 2, 0 -_080B4018: .4byte gUnknown_20388A0 - thumb_func_end sub_080B4010 - - thumb_func_start GetRoute119WaterTileNum -GetRoute119WaterTileNum: @ 0x080B401C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp, #4] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r3, _080B40A4 - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r2, r1, #1 - adds r2, r2, r3 - adds r0, r1, #1 - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r0, [r0] - mov sb, r0 - adds r1, #2 - lsls r1, r1, #1 - adds r1, r1, r3 - ldrh r6, [r1] - ldrh r5, [r2] - cmp r5, sb - bhi _080B40C6 - ldr r0, _080B40A8 - mov sl, r0 -_080B405E: - movs r4, #0 - mov r1, sl - ldr r0, [r1] - ldr r0, [r0] - cmp r4, r0 - bge _080B40BC - ldr r1, [sp] - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - mov r8, r0 - ldr r1, [sp, #4] - lsls r0, r1, #0x10 - asrs r7, r0, #0x10 -_080B4078: - adds r0, r4, #7 - adds r1, r5, #7 - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsSurfableAndNotWaterfall - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080B40AC - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r8, r4 - bne _080B40AC - cmp r7, r5 - bne _080B40AC - adds r0, r6, #0 - b _080B40CC - .align 2, 0 -_080B40A4: .4byte gUnknown_852E728 -_080B40A8: .4byte gUnknown_2036FB8 -_080B40AC: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - mov r1, sl - ldr r0, [r1] - ldr r0, [r0] - cmp r4, r0 - blt _080B4078 -_080B40BC: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, sb - bls _080B405E -_080B40C6: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 -_080B40CC: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end GetRoute119WaterTileNum - - thumb_func_start CheckFeebas -CheckFeebas: @ 0x080B40DC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x10 - movs r7, #0 - ldr r0, _080B4154 - ldr r0, [r0] - ldrh r1, [r0, #4] - movs r0, #0x88 - lsls r0, r0, #6 - cmp r1, r0 - bne _080B41D2 - add r5, sp, #0xc - mov r4, sp - adds r4, #0xe - adds r0, r5, #0 - adds r1, r4, #0 - bl GetXYCoordsOneStepInFrontOfPlayer - ldrh r0, [r5] - subs r0, #7 - strh r0, [r5] - ldrh r0, [r4] - subs r0, #7 - strh r0, [r4] - movs r0, #0 - ldrsh r1, [r4, r0] - ldr r0, _080B4158 - mov sb, r5 - mov r8, r4 - ldrh r2, [r0, #6] - cmp r1, r2 - blt _080B4128 - ldrh r3, [r0, #8] - cmp r1, r3 - bgt _080B4128 - movs r7, #1 -_080B4128: - mov r2, r8 - movs r3, #0 - ldrsh r1, [r2, r3] - ldrh r2, [r0, #0xc] - cmp r1, r2 - blt _080B413C - ldrh r0, [r0, #0xe] - cmp r1, r0 - bgt _080B413C - movs r7, #2 -_080B413C: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x31 - bls _080B4160 - b _080B41D2 - .align 2, 0 -_080B4154: .4byte gUnknown_3005AEC -_080B4158: .4byte gUnknown_852E728 -_080B415C: - movs r0, #1 - b _080B41D4 -_080B4160: - ldr r0, _080B41E4 - ldr r0, [r0] - ldr r3, _080B41E8 - adds r0, r0, r3 - ldrh r0, [r0] - bl sub_080B4210 - movs r5, #0 - ldr r6, _080B41EC -_080B4172: - bl sub_080B41F0 - lsls r1, r5, #1 - mov r2, sp - adds r4, r2, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r6, #0 - bl __umodsi3 - strh r0, [r4] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080B4190 - strh r6, [r4] -_080B4190: - ldrh r0, [r4] - subs r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #2 - bls _080B41A2 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_080B41A2: - cmp r5, #6 - bne _080B4172 - mov r3, sb - movs r1, #0 - ldrsh r0, [r3, r1] - mov r2, r8 - movs r3, #0 - ldrsh r1, [r2, r3] - adds r2, r7, #0 - bl GetRoute119WaterTileNum - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - movs r5, #0 -_080B41BE: - lsls r0, r5, #1 - add r0, sp - ldrh r0, [r0] - cmp r1, r0 - beq _080B415C - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #5 - bls _080B41BE -_080B41D2: - movs r0, #0 -_080B41D4: - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080B41E4: .4byte gUnknown_3005AEC -_080B41E8: .4byte 0x00002E6A -_080B41EC: .4byte 0x000001BF - thumb_func_end CheckFeebas - - thumb_func_start sub_080B41F0 -sub_080B41F0: @ 0x080B41F0 - ldr r2, _080B4204 - ldr r1, [r2] - ldr r0, _080B4208 - muls r0, r1, r0 - ldr r1, _080B420C - adds r0, r0, r1 - str r0, [r2] - lsrs r0, r0, #0x10 - bx lr - .align 2, 0 -_080B4204: .4byte gUnknown_20388A4 -_080B4208: .4byte 0x41C64E6D -_080B420C: .4byte 0x00003039 - thumb_func_end sub_080B41F0 - - thumb_func_start sub_080B4210 -sub_080B4210: @ 0x080B4210 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _080B421C - str r0, [r1] - bx lr - .align 2, 0 -_080B421C: .4byte gUnknown_20388A4 - thumb_func_end sub_080B4210 - - thumb_func_start ChooseWildMonIndex_Land -ChooseWildMonIndex_Land: @ 0x080B4220 - push {lr} - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x13 - bhi _080B423C - movs r0, #0 - b _080B42D6 -_080B423C: - adds r0, r1, #0 - subs r0, #0x14 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x13 - bhi _080B424C - movs r0, #1 - b _080B42D6 -_080B424C: - adds r0, r1, #0 - subs r0, #0x28 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #9 - bhi _080B425C - movs r0, #2 - b _080B42D6 -_080B425C: - adds r0, r1, #0 - subs r0, #0x32 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #9 - bhi _080B426C - movs r0, #3 - b _080B42D6 -_080B426C: - adds r0, r1, #0 - subs r0, #0x3c - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #9 - bhi _080B427C - movs r0, #4 - b _080B42D6 -_080B427C: - adds r0, r1, #0 - subs r0, #0x46 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #9 - bhi _080B428C - movs r0, #5 - b _080B42D6 -_080B428C: - adds r0, r1, #0 - subs r0, #0x50 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _080B429C - movs r0, #6 - b _080B42D6 -_080B429C: - adds r0, r1, #0 - subs r0, #0x55 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _080B42AC - movs r0, #7 - b _080B42D6 -_080B42AC: - adds r0, r1, #0 - subs r0, #0x5a - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bhi _080B42BC - movs r0, #8 - b _080B42D6 -_080B42BC: - adds r0, r1, #0 - subs r0, #0x5e - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bhi _080B42CC - movs r0, #9 - b _080B42D6 -_080B42CC: - cmp r1, #0x62 - beq _080B42D4 - movs r0, #0xb - b _080B42D6 -_080B42D4: - movs r0, #0xa -_080B42D6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ChooseWildMonIndex_Land - - thumb_func_start ChooseWildMonIndex_WaterRock -ChooseWildMonIndex_WaterRock: @ 0x080B42DC - push {lr} - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r2, r1, #0 - cmp r1, #0x3b - bhi _080B42FA - movs r0, #0 - b _080B432C -_080B42FA: - adds r0, r1, #0 - subs r0, #0x3c - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1d - bhi _080B430A - movs r0, #1 - b _080B432C -_080B430A: - adds r0, r1, #0 - subs r0, #0x5a - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _080B431A - movs r0, #2 - b _080B432C -_080B431A: - adds r0, r2, #0 - subs r0, #0x5f - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bls _080B432A - movs r0, #4 - b _080B432C -_080B432A: - movs r0, #3 -_080B432C: - pop {r1} - bx r1 - thumb_func_end ChooseWildMonIndex_WaterRock - - thumb_func_start ChooseWildMonIndex_Fishing -ChooseWildMonIndex_Fishing: @ 0x080B4330 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r6, r4, #0 - movs r5, #0 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r4, #1 - beq _080B436A - cmp r4, #1 - bgt _080B435A - cmp r4, #0 - beq _080B4360 - b _080B43C4 -_080B435A: - cmp r6, #2 - beq _080B438E - b _080B43C4 -_080B4360: - movs r5, #1 - cmp r1, #0x45 - bhi _080B43C4 - movs r5, #0 - b _080B43C4 -_080B436A: - cmp r1, #0x3b - bhi _080B4370 - movs r5, #2 -_080B4370: - adds r0, r1, #0 - subs r0, #0x3c - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x13 - bhi _080B437E - movs r5, #3 -_080B437E: - adds r0, r1, #0 - subs r0, #0x50 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x13 - bhi _080B43C4 - movs r5, #4 - b _080B43C4 -_080B438E: - cmp r1, #0x27 - bhi _080B4394 - movs r5, #5 -_080B4394: - adds r0, r1, #0 - subs r0, #0x28 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x27 - bhi _080B43A2 - movs r5, #6 -_080B43A2: - adds r0, r1, #0 - subs r0, #0x50 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xe - bhi _080B43B0 - movs r5, #7 -_080B43B0: - adds r0, r1, #0 - subs r0, #0x5f - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bhi _080B43BE - movs r5, #8 -_080B43BE: - cmp r1, #0x63 - bne _080B43C4 - movs r5, #9 -_080B43C4: - adds r0, r5, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end ChooseWildMonIndex_Fishing - - thumb_func_start ChooseWildMonLevel -ChooseWildMonLevel: @ 0x080B43CC - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #1] - ldrb r1, [r4] - cmp r0, r1 - blo _080B43DE - ldrb r7, [r4] - adds r6, r0, #0 - b _080B43E2 -_080B43DE: - ldrb r7, [r4, #1] - ldrb r6, [r4] -_080B43E2: - subs r4, r6, r7 - adds r4, #1 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r4, #0 - bl __modsi3 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r5, _080B4434 - adds r0, r5, #0 - movs r1, #6 - bl GetMonData - cmp r0, #0 - bne _080B4442 - adds r0, r5, #0 - bl GetMonAbility - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x37 - beq _080B4420 - cmp r0, #0x48 - beq _080B4420 - cmp r0, #0x2e - bne _080B4442 -_080B4420: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _080B4438 - adds r0, r6, #0 - b _080B4448 - .align 2, 0 -_080B4434: .4byte gUnknown_2024190 -_080B4438: - cmp r4, #0 - beq _080B4442 - subs r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_080B4442: - adds r0, r7, r4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_080B4448: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ChooseWildMonLevel - - thumb_func_start GetCurrentMapWildMonHeaderId -GetCurrentMapWildMonHeaderId: @ 0x080B4450 - push {r4, r5, r6, lr} - movs r4, #0 - ldr r0, _080B44A0 - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #0xff - beq _080B44C4 - ldr r6, _080B44A4 -_080B4460: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r3, r0, r5 - ldrb r1, [r3] - ldr r0, _080B44A8 - ldr r2, [r0] - movs r0, #4 - ldrsb r0, [r2, r0] - cmp r1, r0 - bne _080B44B0 - ldrb r1, [r3, #1] - movs r0, #5 - ldrsb r0, [r2, r0] - cmp r1, r0 - bne _080B44B0 - ldrh r0, [r2, #4] - cmp r0, r6 - bne _080B449C - ldr r0, _080B44AC - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #8 - bls _080B4496 - movs r0, #0 -_080B4496: - adds r0, r4, r0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_080B449C: - adds r0, r4, #0 - b _080B44C6 - .align 2, 0 -_080B44A0: .4byte gUnknown_852D9F4 -_080B44A4: .4byte 0x00006A18 -_080B44A8: .4byte gUnknown_3005AEC -_080B44AC: .4byte 0x0000403E -_080B44B0: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r0, [r0] - cmp r0, #0xff - bne _080B4460 -_080B44C4: - ldr r0, _080B44CC -_080B44C6: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080B44CC: .4byte 0x0000FFFF - thumb_func_end GetCurrentMapWildMonHeaderId - - thumb_func_start PickWildMonNature -PickWildMonNature: @ 0x080B44D0 - push {r4, r5, r6, r7, lr} - sub sp, #0x1c - bl sub_080FC910 - cmp r0, #1 - bne _080B4566 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x4f - bhi _080B4566 - bl SafariZoneGetActivePokeblock - adds r7, r0, #0 - cmp r7, #0 - beq _080B4566 - movs r5, #0 -_080B44FE: - mov r1, sp - adds r0, r1, r5 - strb r5, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0x18 - bls _080B44FE - movs r5, #0 -_080B4510: - adds r1, r5, #1 - lsls r0, r1, #0x18 - lsrs r4, r0, #0x18 - adds r6, r1, #0 - cmp r4, #0x18 - bhi _080B4540 - add r5, sp -_080B451E: - bl Random - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _080B4536 - ldrb r2, [r5] - mov r0, sp - adds r1, r0, r4 - ldrb r0, [r1] - strb r0, [r5] - strb r2, [r1] -_080B4536: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x18 - bls _080B451E -_080B4540: - lsls r0, r6, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0x17 - bls _080B4510 - movs r5, #0 -_080B454A: - mov r1, sp - adds r4, r1, r5 - ldrb r0, [r4] - adds r1, r7, #0 - bl PokeblockGetGain - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _080B45A0 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0x18 - bls _080B454A -_080B4566: - ldr r4, _080B459C - adds r0, r4, #0 - movs r1, #6 - bl GetMonData - cmp r0, #0 - bne _080B45A4 - adds r0, r4, #0 - bl GetMonAbility - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1c - bne _080B45A4 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _080B45A4 - adds r0, r4, #0 - movs r1, #0 - bl GetMonData - b _080B45AC - .align 2, 0 -_080B459C: .4byte gUnknown_2024190 -_080B45A0: - ldrb r0, [r4] - b _080B45B6 -_080B45A4: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 -_080B45AC: - movs r1, #0x19 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_080B45B6: - add sp, #0x1c - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end PickWildMonNature - - thumb_func_start CreateWildMon -CreateWildMon: @ 0x080B45C0 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - bl ZeroEnemyPartyMons - movs r2, #1 - ldr r1, _080B4650 - lsls r0, r6, #3 - subs r0, r0, r6 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #0x10] - cmp r0, #0 - beq _080B45EE - cmp r0, #0 - blt _080B45F0 - cmp r0, #0xff - bgt _080B45F0 - cmp r0, #0xfe - blt _080B45F0 -_080B45EE: - movs r2, #0 -_080B45F0: - cmp r2, #0 - beq _080B4680 - ldr r5, _080B4654 - adds r0, r5, #0 - movs r1, #6 - bl GetMonData - cmp r0, #0 - bne _080B4680 - adds r0, r5, #0 - bl GetMonAbility - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x38 - bne _080B4680 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080B4680 - adds r0, r5, #0 - movs r1, #0xb - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - movs r1, #0 - bl GetMonData - adds r1, r0, #0 - adds r0, r4, #0 - bl GetGenderFromSpeciesAndPersonality - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xfe - bne _080B4658 - movs r4, #0 - b _080B465A - .align 2, 0 -_080B4650: .4byte gUnknown_82F0D54 -_080B4654: .4byte gUnknown_2024190 -_080B4658: - movs r4, #0xfe -_080B465A: - bl PickWildMonNature - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080B467C - str r4, [sp] - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - adds r0, r1, #0 - adds r1, r6, #0 - adds r2, r7, #0 - movs r3, #0x20 - bl CreateMonWithGenderNatureLetter - b _080B4698 - .align 2, 0 -_080B467C: .4byte gUnknown_20243E8 -_080B4680: - bl PickWildMonNature - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080B46A0 - str r0, [sp] - adds r0, r1, #0 - adds r1, r6, #0 - adds r2, r7, #0 - movs r3, #0x20 - bl CreateMonWithNature -_080B4698: - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080B46A0: .4byte gUnknown_20243E8 - thumb_func_end CreateWildMon - - thumb_func_start TryGenerateWildMon -TryGenerateWildMon: @ 0x080B46A4 - push {r4, r5, r6, lr} - sub sp, #4 - adds r5, r0, #0 - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - adds r4, r3, #0 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - movs r1, #0 - mov r0, sp - strb r1, [r0] - cmp r3, #1 - beq _080B46F8 - cmp r3, #1 - bgt _080B46C8 - cmp r3, #0 - beq _080B46CE - b _080B4712 -_080B46C8: - cmp r4, #2 - beq _080B470A - b _080B4712 -_080B46CE: - ldr r0, [r5, #4] - movs r1, #8 - movs r2, #0x2a - mov r3, sp - bl TryGetAbilityInfluencedWildMonIndex - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B4712 - ldr r0, [r5, #4] - movs r1, #0xd - movs r2, #9 - mov r3, sp - bl TryGetAbilityInfluencedWildMonIndex - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B4712 - bl ChooseWildMonIndex_Land - b _080B470E -_080B46F8: - ldr r0, [r5, #4] - movs r1, #0xd - movs r2, #9 - mov r3, sp - bl TryGetAbilityInfluencedWildMonIndex - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B4712 -_080B470A: - bl ChooseWildMonIndex_WaterRock -_080B470E: - mov r1, sp - strb r0, [r1] -_080B4712: - mov r0, sp - ldrb r1, [r0] - lsls r1, r1, #2 - ldr r0, [r5, #4] - adds r0, r0, r1 - bl ChooseWildMonLevel - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #1 - ands r0, r6 - cmp r0, #0 - beq _080B4738 - adds r0, r4, #0 - bl IsWildLevelAllowedByRepel - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B4758 -_080B4738: - ldr r0, _080B475C - ldrh r1, [r0, #0x12] - movs r0, #0xb3 - lsls r0, r0, #1 - cmp r1, r0 - beq _080B4760 - movs r0, #2 - ands r0, r6 - cmp r0, #0 - beq _080B4760 - adds r0, r4, #0 - bl IsAbilityAllowingEncounter - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B4760 -_080B4758: - movs r0, #0 - b _080B4774 - .align 2, 0 -_080B475C: .4byte gUnknown_2036FB8 -_080B4760: - mov r0, sp - ldrb r0, [r0] - ldr r1, [r5, #4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0, #2] - adds r1, r4, #0 - bl CreateWildMon - movs r0, #1 -_080B4774: - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end TryGenerateWildMon - - thumb_func_start GenerateFishingWildMon -GenerateFishingWildMon: @ 0x080B477C - push {r4, r5, lr} - adds r5, r0, #0 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - bl ChooseWildMonIndex_Fishing - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x16 - ldr r0, [r5, #4] - adds r0, r0, r4 - bl ChooseWildMonLevel - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, [r5, #4] - adds r0, r4, r0 - ldrh r0, [r0, #2] - bl CreateWildMon - ldr r0, [r5, #4] - adds r4, r4, r0 - ldrh r0, [r4, #2] - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GenerateFishingWildMon - - thumb_func_start SetUpMassOutbreakEncounter -SetUpMassOutbreakEncounter: @ 0x080B47B4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _080B47E4 - ldr r0, _080B47DC - ldr r0, [r0] - ldr r1, _080B47E0 - adds r0, r0, r1 - ldrb r0, [r0] - bl IsWildLevelAllowedByRepel - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B47E4 - movs r0, #0 - b _080B481E - .align 2, 0 -_080B47DC: .4byte gUnknown_3005AEC -_080B47E0: .4byte 0x00002B94 -_080B47E4: - ldr r0, _080B4824 - ldr r1, [r0] - ldr r2, _080B4828 - adds r0, r1, r2 - ldrh r0, [r0] - adds r2, #4 - adds r1, r1, r2 - ldrb r1, [r1] - bl CreateWildMon - movs r4, #0 -_080B47FA: - ldr r0, _080B4824 - ldr r0, [r0] - lsls r1, r4, #1 - ldr r2, _080B482C - adds r0, r0, r2 - adds r0, r0, r1 - ldrh r1, [r0] - lsls r2, r4, #0x18 - lsrs r2, r2, #0x18 - ldr r0, _080B4830 - bl SetMonMoveSlot - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #3 - bls _080B47FA - movs r0, #1 -_080B481E: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080B4824: .4byte gUnknown_3005AEC -_080B4828: .4byte 0x00002B90 -_080B482C: .4byte 0x00002B98 -_080B4830: .4byte gUnknown_20243E8 - thumb_func_end SetUpMassOutbreakEncounter - - thumb_func_start DoMassOutbreakEncounterTest -DoMassOutbreakEncounterTest: @ 0x080B4834 - push {r4, lr} - ldr r4, _080B4884 - ldr r2, [r4] - ldr r1, _080B4888 - adds r0, r2, r1 - ldrh r0, [r0] - cmp r0, #0 - beq _080B4894 - movs r1, #5 - ldrsb r1, [r2, r1] - ldr r3, _080B488C - adds r0, r2, r3 - ldrb r0, [r0] - cmp r1, r0 - bne _080B4894 - movs r1, #4 - ldrsb r1, [r2, r1] - adds r3, #1 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r1, r0 - bne _080B4894 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - ldr r1, [r4] - ldr r2, _080B4890 - adds r1, r1, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r1] - cmp r0, r1 - bhs _080B4894 - movs r0, #1 - b _080B4896 - .align 2, 0 -_080B4884: .4byte gUnknown_3005AEC -_080B4888: .4byte 0x00002B90 -_080B488C: .4byte 0x00002B92 -_080B4890: .4byte 0x00002BA1 -_080B4894: - movs r0, #0 -_080B4896: - pop {r4} - pop {r1} - bx r1 - thumb_func_end DoMassOutbreakEncounterTest - - thumb_func_start DoWildEncounterRateDiceRoll -DoWildEncounterRateDiceRoll: @ 0x080B489C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xb4 - lsls r1, r1, #4 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r4 - blo _080B48C0 - movs r0, #0 - b _080B48C2 -_080B48C0: - movs r0, #1 -_080B48C2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end DoWildEncounterRateDiceRoll - - thumb_func_start DoWildEncounterRateTest -DoWildEncounterRateTest: @ 0x080B48C8 - push {r4, lr} - sub sp, #4 - str r0, [sp] - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - lsls r0, r0, #4 - str r0, [sp] - movs r0, #6 - bl TestPlayerAvatarFlags - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B48F2 - ldr r1, [sp] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #4 - movs r1, #0x64 - bl __udivsi3 - str r0, [sp] -_080B48F2: - mov r0, sp - bl ApplyFluteEncounterRateMod - mov r0, sp - bl ApplyCleanseTagEncounterRateMod - cmp r4, #0 - bne _080B496E - ldr r4, _080B4934 - adds r0, r4, #0 - movs r1, #6 - bl GetMonData - cmp r0, #0 - bne _080B496E - adds r0, r4, #0 - bl GetMonAbility - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080B4940 - ldr r0, _080B4938 - ldrh r1, [r0, #0x12] - ldr r0, _080B493C - cmp r1, r0 - bne _080B4968 - ldr r1, [sp] - lsls r0, r1, #1 - adds r0, r0, r1 - lsrs r0, r0, #2 - b _080B496C - .align 2, 0 -_080B4934: .4byte gUnknown_2024190 -_080B4938: .4byte gUnknown_2036FB8 -_080B493C: .4byte 0x00000169 -_080B4940: - cmp r0, #0x23 - bne _080B494A - ldr r0, [sp] - lsls r0, r0, #1 - b _080B496C -_080B494A: - cmp r0, #0x49 - beq _080B4968 - cmp r0, #0x47 - bne _080B4958 - ldr r0, [sp] - lsls r0, r0, #1 - b _080B496C -_080B4958: - cmp r0, #8 - bne _080B496E - ldr r0, _080B4990 - ldr r0, [r0] - adds r0, #0x2e - ldrb r0, [r0] - cmp r0, #8 - bne _080B496E -_080B4968: - ldr r0, [sp] - lsrs r0, r0, #1 -_080B496C: - str r0, [sp] -_080B496E: - ldr r0, [sp] - movs r1, #0xb4 - lsls r1, r1, #4 - cmp r0, r1 - bls _080B497A - str r1, [sp] -_080B497A: - ldr r0, [sp] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl DoWildEncounterRateDiceRoll - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080B4990: .4byte gUnknown_3005AEC - thumb_func_end DoWildEncounterRateTest - - thumb_func_start DoGlobalWildEncounterDiceRoll -DoGlobalWildEncounterDiceRoll: @ 0x080B4994 - push {lr} - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x3b - bhi _080B49B0 - movs r0, #1 - b _080B49B2 -_080B49B0: - movs r0, #0 -_080B49B2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end DoGlobalWildEncounterDiceRoll - - thumb_func_start AreLegendariesInSootopolisPreventingEncounters -AreLegendariesInSootopolisPreventingEncounters: @ 0x080B49B8 - push {lr} - ldr r0, _080B49D4 - ldr r0, [r0] - ldrh r1, [r0, #4] - movs r0, #0xe0 - lsls r0, r0, #3 - cmp r1, r0 - bne _080B49D8 - movs r0, #0x53 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _080B49DA - .align 2, 0 -_080B49D4: .4byte gUnknown_3005AEC -_080B49D8: - movs r0, #0 -_080B49DA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end AreLegendariesInSootopolisPreventingEncounters - - thumb_func_start StandardWildEncounter -StandardWildEncounter: @ 0x080B49E0 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - mov sb, r6 - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - mov r8, r7 - ldr r0, _080B4A78 - ldrb r0, [r0] - cmp r0, #1 - bne _080B49FE - b _080B4C56 -_080B49FE: - bl GetCurrentMapWildMonHeaderId - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, _080B4A7C - cmp r5, r0 - bne _080B4AF4 - ldr r0, _080B4A80 - ldrh r1, [r0, #0x12] - movs r0, #0xb3 - lsls r0, r0, #1 - cmp r1, r0 - bne _080B4A88 - bl GetBattlePikeWildMonHeaderId - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r7, r6 - beq _080B4A30 - bl DoGlobalWildEncounterDiceRoll - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B4A30 - b _080B4C56 -_080B4A30: - ldr r1, _080B4A84 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r1, #4 - adds r4, r0, r1 - ldr r0, [r4] - ldrb r0, [r0] - movs r1, #0 - bl DoWildEncounterRateTest - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080B4A50 - b _080B4C56 -_080B4A50: - ldr r0, [r4] - movs r1, #0 - movs r2, #2 - bl TryGenerateWildMon - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080B4A64 - b _080B4C56 -_080B4A64: - movs r0, #1 - bl TryGenerateBattlePikeWildMon - cmp r0, #0 - bne _080B4A70 - b _080B4C56 -_080B4A70: - bl BattleSetup_StartBattlePikeWildBattle - movs r0, #1 - b _080B4C58 - .align 2, 0 -_080B4A78: .4byte gUnknown_20388A0 -_080B4A7C: .4byte 0x0000FFFF -_080B4A80: .4byte gUnknown_2036FB8 -_080B4A84: .4byte gUnknown_852E6C0 -_080B4A88: - ldr r0, _080B4AE4 - cmp r1, r0 - beq _080B4A90 - b _080B4C56 -_080B4A90: - ldr r0, _080B4AE8 - ldr r0, [r0] - ldr r1, _080B4AEC - adds r0, r0, r1 - ldrh r5, [r0] - cmp r7, r6 - beq _080B4AAA - bl DoGlobalWildEncounterDiceRoll - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B4AAA - b _080B4C56 -_080B4AAA: - ldr r1, _080B4AF0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r1, #4 - adds r4, r0, r1 - ldr r0, [r4] - ldrb r0, [r0] - movs r1, #0 - bl DoWildEncounterRateTest - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080B4ACA - b _080B4C56 -_080B4ACA: - ldr r0, [r4] - movs r1, #0 - movs r2, #2 - bl TryGenerateWildMon - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080B4ADE - b _080B4C56 -_080B4ADE: - bl GenerateBattlePyramidWildMon - b _080B4C4E - .align 2, 0 -_080B4AE4: .4byte 0x00000169 -_080B4AE8: .4byte gUnknown_3005AF0 -_080B4AEC: .4byte 0x00000CB2 -_080B4AF0: .4byte gUnknown_852E540 -_080B4AF4: - lsls r0, r6, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl MetatileBehavior_IsLandWildEncounter - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080B4B94 - ldr r1, _080B4B90 - lsls r2, r5, #2 - adds r0, r2, r5 - lsls r0, r0, #2 - adds r1, #4 - adds r0, r0, r1 - ldr r0, [r0] - adds r4, r2, #0 - cmp r0, #0 - bne _080B4B1C - b _080B4C56 -_080B4B1C: - cmp r7, r6 - beq _080B4B2C - bl DoGlobalWildEncounterDiceRoll - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B4B2C - b _080B4C56 -_080B4B2C: - ldr r1, _080B4B90 - adds r0, r4, r5 - lsls r0, r0, #2 - adds r1, #4 - adds r0, r0, r1 - ldr r0, [r0] - ldrb r0, [r0] - movs r1, #0 - bl DoWildEncounterRateTest - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080B4B4A - b _080B4C56 -_080B4B4A: - bl TryStartRoamerEncounter - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080B4C12 - bl DoMassOutbreakEncounterTest - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080B4B70 - movs r0, #3 - bl SetUpMassOutbreakEncounter - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080B4C4E -_080B4B70: - ldr r1, _080B4B90 - adds r0, r4, r5 - lsls r0, r0, #2 - adds r1, #4 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0 - movs r2, #3 - bl TryGenerateWildMon - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080B4C4E - b _080B4C56 - .align 2, 0 -_080B4B90: .4byte gUnknown_852D9F4 -_080B4B94: - adds r0, r4, #0 - bl MetatileBehavior_IsWaterWildEncounter - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080B4BBC - movs r0, #8 - bl TestPlayerAvatarFlags - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B4C56 - adds r0, r4, #0 - bl MetatileBehavior_IsBridge - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080B4C56 -_080B4BBC: - bl AreLegendariesInSootopolisPreventingEncounters - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080B4C56 - ldr r1, _080B4C30 - lsls r2, r5, #2 - adds r0, r2, r5 - lsls r0, r0, #2 - adds r1, #8 - adds r0, r0, r1 - ldr r0, [r0] - adds r4, r2, #0 - cmp r0, #0 - beq _080B4C56 - cmp r8, sb - beq _080B4BEA - bl DoGlobalWildEncounterDiceRoll - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B4C56 -_080B4BEA: - ldr r1, _080B4C30 - adds r0, r4, r5 - lsls r0, r0, #2 - adds r1, #8 - adds r4, r0, r1 - ldr r0, [r4] - ldrb r0, [r0] - movs r1, #0 - bl DoWildEncounterRateTest - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080B4C56 - bl TryStartRoamerEncounter - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080B4C3C -_080B4C12: - ldr r0, _080B4C34 - ldr r0, [r0] - ldr r1, _080B4C38 - adds r0, r0, r1 - ldrb r0, [r0, #0xc] - bl IsWildLevelAllowedByRepel - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B4C56 - bl BattleSetup_StartRoamerBattle - movs r0, #1 - b _080B4C58 - .align 2, 0 -_080B4C30: .4byte gUnknown_852D9F4 -_080B4C34: .4byte gUnknown_3005AEC -_080B4C38: .4byte 0x000031DC -_080B4C3C: - ldr r0, [r4] - movs r1, #1 - movs r2, #3 - bl TryGenerateWildMon - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080B4C56 -_080B4C4E: - bl BattleSetup_StartWildBattle - movs r0, #1 - b _080B4C58 -_080B4C56: - movs r0, #0 -_080B4C58: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end StandardWildEncounter - - thumb_func_start RockSmashWildEncounter -RockSmashWildEncounter: @ 0x080B4C64 - push {r4, lr} - bl GetCurrentMapWildMonHeaderId - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, _080B4CB4 - cmp r2, r0 - beq _080B4CC0 - ldr r1, _080B4CB8 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r1, #0xc - adds r0, r0, r1 - ldr r4, [r0] - cmp r4, #0 - beq _080B4CAC - ldrb r0, [r4] - movs r1, #1 - bl DoWildEncounterRateTest - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080B4CC0 - adds r0, r4, #0 - movs r1, #2 - movs r2, #3 - bl TryGenerateWildMon - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #1 - bne _080B4CC0 - bl BattleSetup_StartWildBattle -_080B4CAC: - ldr r0, _080B4CBC - strh r4, [r0] - b _080B4CC6 - .align 2, 0 -_080B4CB4: .4byte 0x0000FFFF -_080B4CB8: .4byte gUnknown_852D9F4 -_080B4CBC: .4byte gUnknown_2037290 -_080B4CC0: - ldr r1, _080B4CCC - movs r0, #0 - strh r0, [r1] -_080B4CC6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B4CCC: .4byte gUnknown_2037290 - thumb_func_end RockSmashWildEncounter - - thumb_func_start SweetScentWildEncounter -SweetScentWildEncounter: @ 0x080B4CD0 - push {r4, r5, lr} - sub sp, #4 - mov r5, sp - adds r5, #2 - mov r0, sp - adds r1, r5, #0 - bl PlayerGetDestCoords - bl GetCurrentMapWildMonHeaderId - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, _080B4D30 - cmp r4, r0 - bne _080B4D84 - ldr r0, _080B4D34 - ldrh r1, [r0, #0x12] - movs r0, #0xb3 - lsls r0, r0, #1 - cmp r1, r0 - bne _080B4D3C - bl GetBattlePikeWildMonHeaderId - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _080B4D38 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r1, #4 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0 - movs r2, #0 - bl TryGenerateWildMon - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080B4D22 - b _080B4E4A -_080B4D22: - movs r0, #0 - bl TryGenerateBattlePikeWildMon - bl BattleSetup_StartBattlePikeWildBattle - movs r0, #1 - b _080B4E4C - .align 2, 0 -_080B4D30: .4byte 0x0000FFFF -_080B4D34: .4byte gUnknown_2036FB8 -_080B4D38: .4byte gUnknown_852E6C0 -_080B4D3C: - ldr r0, _080B4D74 - cmp r1, r0 - beq _080B4D44 - b _080B4E4A -_080B4D44: - ldr r0, _080B4D78 - ldr r0, [r0] - ldr r1, _080B4D7C - adds r0, r0, r1 - ldrh r4, [r0] - ldr r1, _080B4D80 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r1, #4 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0 - movs r2, #0 - bl TryGenerateWildMon - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080B4E4A - bl GenerateBattlePyramidWildMon - b _080B4E42 - .align 2, 0 -_080B4D74: .4byte 0x00000169 -_080B4D78: .4byte gUnknown_3005AF0 -_080B4D7C: .4byte 0x00000CB2 -_080B4D80: .4byte gUnknown_852E540 -_080B4D84: - mov r0, sp - movs r2, #0 - ldrsh r0, [r0, r2] - movs r2, #0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsLandWildEncounter - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080B4DE4 - ldr r1, _080B4DD4 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r1, #4 - adds r0, r0, r1 - ldr r4, [r0] - cmp r4, #0 - beq _080B4E4A - bl TryStartRoamerEncounter - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080B4E2C - bl DoMassOutbreakEncounterTest - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080B4DD8 - movs r0, #0 - bl SetUpMassOutbreakEncounter - b _080B4E42 - .align 2, 0 -_080B4DD4: .4byte gUnknown_852D9F4 -_080B4DD8: - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - bl TryGenerateWildMon - b _080B4E42 -_080B4DE4: - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsWaterWildEncounter - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080B4E4A - bl AreLegendariesInSootopolisPreventingEncounters - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080B4E4A - ldr r1, _080B4E34 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r1, #8 - adds r0, r0, r1 - ldr r4, [r0] - cmp r4, #0 - beq _080B4E4A - bl TryStartRoamerEncounter - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080B4E38 -_080B4E2C: - bl BattleSetup_StartRoamerBattle - movs r0, #1 - b _080B4E4C - .align 2, 0 -_080B4E34: .4byte gUnknown_852D9F4 -_080B4E38: - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl TryGenerateWildMon -_080B4E42: - bl BattleSetup_StartWildBattle - movs r0, #1 - b _080B4E4C -_080B4E4A: - movs r0, #0 -_080B4E4C: - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end SweetScentWildEncounter - - thumb_func_start DoesCurrentMapHaveFishingMons -DoesCurrentMapHaveFishingMons: @ 0x080B4E54 - push {lr} - bl GetCurrentMapWildMonHeaderId - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, _080B4E7C - cmp r2, r0 - beq _080B4E84 - ldr r0, _080B4E80 - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r0, #0x10 - adds r1, r1, r0 - ldr r0, [r1] - cmp r0, #0 - beq _080B4E84 - movs r0, #1 - b _080B4E86 - .align 2, 0 -_080B4E7C: .4byte 0x0000FFFF -_080B4E80: .4byte gUnknown_852D9F4 -_080B4E84: - movs r0, #0 -_080B4E86: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end DoesCurrentMapHaveFishingMons - - thumb_func_start FishingWildEncounter -FishingWildEncounter: @ 0x080B4E8C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - bl CheckFeebas - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080B4EBC - ldr r4, _080B4EB8 - adds r0, r4, #0 - bl ChooseWildMonLevel - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrh r4, [r4, #2] - adds r0, r4, #0 - bl CreateWildMon - b _080B4EDC - .align 2, 0 -_080B4EB8: .4byte gUnknown_852E724 -_080B4EBC: - ldr r4, _080B4EF4 - bl GetCurrentMapWildMonHeaderId - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r4, #0x10 - adds r1, r1, r4 - ldr r0, [r1] - adds r1, r5, #0 - bl GenerateFishingWildMon - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_080B4EDC: - movs r0, #0xc - bl IncrementGameStat - adds r0, r4, #0 - bl sub_080EE55C - bl BattleSetup_StartWildBattle - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B4EF4: .4byte gUnknown_852D9F4 - thumb_func_end FishingWildEncounter - - thumb_func_start GetLocalWildMon -GetLocalWildMon: @ 0x080B4EF8 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r0, #0 - strb r0, [r6] - bl GetCurrentMapWildMonHeaderId - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldr r0, _080B4F30 - cmp r3, r0 - beq _080B4F2A - ldr r2, _080B4F34 - lsls r1, r3, #2 - adds r1, r1, r3 - lsls r1, r1, #2 - adds r0, r2, #4 - adds r0, r1, r0 - ldr r5, [r0] - adds r2, #8 - adds r1, r1, r2 - ldr r4, [r1] - cmp r5, #0 - bne _080B4F38 - cmp r4, #0 - bne _080B4F3E -_080B4F2A: - movs r0, #0 - b _080B4F7E - .align 2, 0 -_080B4F30: .4byte 0x0000FFFF -_080B4F34: .4byte gUnknown_852D9F4 -_080B4F38: - cmp r4, #0 - bne _080B4F4C - b _080B4F70 -_080B4F3E: - movs r0, #1 - strb r0, [r6] - bl ChooseWildMonIndex_WaterRock - lsls r0, r0, #0x18 - ldr r1, [r4, #4] - b _080B4F78 -_080B4F4C: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x4f - bls _080B4F70 - movs r0, #1 - strb r0, [r6] - bl ChooseWildMonIndex_WaterRock - lsls r0, r0, #0x18 - ldr r1, [r4, #4] - b _080B4F78 -_080B4F70: - bl ChooseWildMonIndex_Land - lsls r0, r0, #0x18 - ldr r1, [r5, #4] -_080B4F78: - lsrs r0, r0, #0x16 - adds r0, r0, r1 - ldrh r0, [r0, #2] -_080B4F7E: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end GetLocalWildMon - - thumb_func_start GetLocalWaterMon -GetLocalWaterMon: @ 0x080B4F84 - push {r4, lr} - bl GetCurrentMapWildMonHeaderId - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, _080B4FB8 - cmp r2, r0 - beq _080B4FC0 - ldr r1, _080B4FBC - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r1, #8 - adds r0, r0, r1 - ldr r4, [r0] - cmp r4, #0 - beq _080B4FC0 - bl ChooseWildMonIndex_WaterRock - lsls r0, r0, #0x18 - ldr r1, [r4, #4] - lsrs r0, r0, #0x16 - adds r0, r0, r1 - ldrh r0, [r0, #2] - b _080B4FC2 - .align 2, 0 -_080B4FB8: .4byte 0x0000FFFF -_080B4FBC: .4byte gUnknown_852D9F4 -_080B4FC0: - movs r0, #0 -_080B4FC2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetLocalWaterMon - - thumb_func_start UpdateRepelCounter -UpdateRepelCounter: @ 0x080B4FC8 - push {r4, r5, lr} - bl InBattlePike - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B501C - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B501C - bl InUnionRoom - cmp r0, #1 - beq _080B501C - ldr r5, _080B5014 - adds r0, r5, #0 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - beq _080B501C - subs r4, r0, #1 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl VarSet - cmp r4, #0 - bne _080B501C - ldr r0, _080B5018 - bl ScriptContext1_SetupScript - movs r0, #1 - b _080B501E - .align 2, 0 -_080B5014: .4byte 0x00004021 -_080B5018: .4byte gUnknown_8262393 -_080B501C: - movs r0, #0 -_080B501E: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end UpdateRepelCounter - - thumb_func_start IsWildLevelAllowedByRepel -IsWildLevelAllowedByRepel: @ 0x080B5024 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _080B5070 - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080B506A - movs r5, #0 -_080B5038: - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _080B5074 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _080B5078 - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - bne _080B5078 - adds r0, r4, #0 - movs r1, #0x38 - bl GetMonData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r6, r0 - blo _080B5082 -_080B506A: - movs r0, #1 - b _080B5084 - .align 2, 0 -_080B5070: .4byte 0x00004021 -_080B5074: .4byte gUnknown_2024190 -_080B5078: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #5 - bls _080B5038 -_080B5082: - movs r0, #0 -_080B5084: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsWildLevelAllowedByRepel - - thumb_func_start IsAbilityAllowingEncounter -IsAbilityAllowingEncounter: @ 0x080B508C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r4, _080B50DC - adds r0, r4, #0 - movs r1, #6 - bl GetMonData - cmp r0, #0 - bne _080B50E0 - adds r0, r4, #0 - bl GetMonAbility - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x33 - beq _080B50B2 - cmp r0, #0x16 - bne _080B50E0 -_080B50B2: - adds r0, r4, #0 - movs r1, #0x38 - bl GetMonData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #5 - bls _080B50E0 - subs r0, #5 - cmp r5, r0 - bgt _080B50E0 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _080B50E0 - movs r0, #0 - b _080B50E2 - .align 2, 0 -_080B50DC: .4byte gUnknown_2024190 -_080B50E0: - movs r0, #1 -_080B50E2: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end IsAbilityAllowingEncounter - - thumb_func_start TryGetRandomWildMonIndexByType -TryGetRandomWildMonIndexByType: @ 0x080B50E8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov r7, sp - mov ip, r0 - mov r8, r3 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [r7] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sb, sp - adds r0, r2, #3 - lsrs r0, r0, #2 - lsls r0, r0, #2 - mov r1, sp - subs r1, r1, r0 - mov sp, r1 - mov r5, sp - movs r3, #0 - cmp r3, r2 - bhs _080B512A - movs r1, #0 -_080B511C: - adds r0, r5, r3 - strb r1, [r0] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, r2 - blo _080B511C -_080B512A: - movs r4, #0 - movs r3, #0 - cmp r4, r2 - bhs _080B516A - ldr r6, _080B5178 - mov sl, r6 -_080B5136: - lsls r0, r3, #2 - add r0, ip - ldrh r1, [r0, #2] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - mov r6, sl - adds r1, r0, r6 - ldrb r0, [r1, #6] - ldr r6, [r7] - cmp r0, r6 - beq _080B5154 - ldrb r0, [r1, #7] - cmp r0, r6 - bne _080B5160 -_080B5154: - adds r1, r4, #0 - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r1, r5, r1 - strb r3, [r1] -_080B5160: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, r2 - blo _080B5136 -_080B516A: - cmp r4, #0 - beq _080B5172 - cmp r4, r2 - bne _080B517C -_080B5172: - movs r0, #0 - b _080B5194 - .align 2, 0 -_080B5178: .4byte gUnknown_82F0D54 -_080B517C: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r4, #0 - bl __modsi3 - adds r0, r5, r0 - ldrb r0, [r0] - mov r1, r8 - strb r0, [r1] - movs r0, #1 -_080B5194: - mov sp, sb - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end TryGetRandomWildMonIndexByType - - thumb_func_start TryGetAbilityInfluencedWildMonIndex -TryGetAbilityInfluencedWildMonIndex: @ 0x080B51A8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - mov r8, r3 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - ldr r4, _080B51F8 - adds r0, r4, #0 - movs r1, #6 - bl GetMonData - cmp r0, #0 - bne _080B51FC - adds r0, r4, #0 - bl GetMonAbility - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r5 - bne _080B51FC - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _080B51FC - adds r0, r7, #0 - adds r1, r6, #0 - movs r2, #0xc - mov r3, r8 - bl TryGetRandomWildMonIndexByType - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _080B51FE - .align 2, 0 -_080B51F8: .4byte gUnknown_2024190 -_080B51FC: - movs r0, #0 -_080B51FE: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end TryGetAbilityInfluencedWildMonIndex - - thumb_func_start ApplyFluteEncounterRateMod -ApplyFluteEncounterRateMod: @ 0x080B5208 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080B5224 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080B5228 - ldr r0, [r4] - lsrs r1, r0, #1 - adds r0, r0, r1 - b _080B523A - .align 2, 0 -_080B5224: .4byte 0x000008AD -_080B5228: - ldr r0, _080B5244 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080B523C - ldr r0, [r4] - lsrs r0, r0, #1 -_080B523A: - str r0, [r4] -_080B523C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B5244: .4byte 0x000008AE - thumb_func_end ApplyFluteEncounterRateMod - - thumb_func_start ApplyCleanseTagEncounterRateMod -ApplyCleanseTagEncounterRateMod: @ 0x080B5248 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080B526C - movs r1, #0xc - bl GetMonData - cmp r0, #0xbe - bne _080B5264 - ldr r0, [r4] - lsls r0, r0, #1 - movs r1, #3 - bl __udivsi3 - str r0, [r4] -_080B5264: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B526C: .4byte gUnknown_2024190 - thumb_func_end ApplyCleanseTagEncounterRateMod - - thumb_func_start FieldEffectStart -FieldEffectStart: @ 0x080B5270 - push {r4, r5, lr} - sub sp, #8 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl FieldEffectActiveListAdd - ldr r0, _080B52B0 - lsls r4, r4, #2 - adds r4, r4, r0 - ldr r0, [r4] - str r0, [sp] - add r4, sp, #4 - ldr r5, _080B52B4 -_080B528E: - ldr r0, [sp] - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r2, [r0] - mov r0, sp - adds r1, r4, #0 - bl _call_via_r2 - thumb_func_end FieldEffectStart - - thumb_func_start sub_080B52A0 -sub_080B52A0: @ 0x080B52A0 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B528E - ldr r0, [sp, #4] - add sp, #8 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080B52B0: .4byte gUnknown_8289F5C -_080B52B4: .4byte gUnknown_8536E9C - thumb_func_end sub_080B52A0 - - thumb_func_start FieldEffectCmd_loadtiles -FieldEffectCmd_loadtiles: @ 0x080B52B8 - push {lr} - ldr r1, [r0] - adds r1, #1 - str r1, [r0] - bl FieldEffectScript_LoadTiles - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end FieldEffectCmd_loadtiles - - thumb_func_start FieldEffectCmd_loadfadedpal -FieldEffectCmd_loadfadedpal: @ 0x080B52CC - push {lr} - ldr r1, [r0] - adds r1, #1 - str r1, [r0] - bl sub_080B53C4 - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end FieldEffectCmd_loadfadedpal - - thumb_func_start FieldEffectCmd_loadpal -FieldEffectCmd_loadpal: @ 0x080B52E0 - push {lr} - ldr r1, [r0] - adds r1, #1 - str r1, [r0] - bl FieldEffectScript_LoadPalette - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end FieldEffectCmd_loadpal - - thumb_func_start FieldEffectCmd_callnative -FieldEffectCmd_callnative: @ 0x080B52F4 - push {lr} - ldr r2, [r0] - adds r2, #1 - str r2, [r0] - bl FieldEffectScript_CallNative - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end FieldEffectCmd_callnative - - thumb_func_start sub_080B5308 -sub_080B5308: @ 0x080B5308 - movs r0, #0 - bx lr - thumb_func_end sub_080B5308 - - thumb_func_start FieldEffectCmd_loadgfx_callnative -FieldEffectCmd_loadgfx_callnative: @ 0x080B530C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r0, [r4] - adds r0, #1 - str r0, [r4] - adds r0, r4, #0 - bl FieldEffectScript_LoadTiles - adds r0, r4, #0 - bl sub_080B53C4 - adds r0, r4, #0 - adds r1, r5, #0 - bl FieldEffectScript_CallNative - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end FieldEffectCmd_loadgfx_callnative - - thumb_func_start FieldEffectCmd_loadtiles_callnative -FieldEffectCmd_loadtiles_callnative: @ 0x080B5334 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r0, [r4] - adds r0, #1 - str r0, [r4] - adds r0, r4, #0 - bl FieldEffectScript_LoadTiles - adds r0, r4, #0 - adds r1, r5, #0 - bl FieldEffectScript_CallNative - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end FieldEffectCmd_loadtiles_callnative - - thumb_func_start FieldEffectCmd_loadfadedpal_callnative -FieldEffectCmd_loadfadedpal_callnative: @ 0x080B5358 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r0, [r4] - adds r0, #1 - str r0, [r4] - adds r0, r4, #0 - bl sub_080B53C4 - adds r0, r4, #0 - adds r1, r5, #0 - bl FieldEffectScript_CallNative - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end FieldEffectCmd_loadfadedpal_callnative - - thumb_func_start FieldEffectScript_ReadWord -FieldEffectScript_ReadWord: @ 0x080B537C - ldr r2, [r0] - ldrb r0, [r2] - ldrb r1, [r2, #1] - lsls r1, r1, #8 - adds r0, r0, r1 - ldrb r1, [r2, #2] - lsls r1, r1, #0x10 - adds r0, r0, r1 - ldrb r1, [r2, #3] - lsls r1, r1, #0x18 - adds r0, r0, r1 - bx lr - thumb_func_end FieldEffectScript_ReadWord - - thumb_func_start FieldEffectScript_LoadTiles -FieldEffectScript_LoadTiles: @ 0x080B5394 - push {r4, r5, lr} - adds r4, r0, #0 - bl FieldEffectScript_ReadWord - adds r5, r0, #0 - ldrh r0, [r5, #6] - bl GetSpriteTileStartByTag - lsls r0, r0, #0x10 - ldr r1, _080B53C0 - cmp r0, r1 - bne _080B53B2 - adds r0, r5, #0 - bl LoadSpriteSheet -_080B53B2: - ldr r0, [r4] - adds r0, #4 - str r0, [r4] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B53C0: .4byte 0xFFFF0000 - thumb_func_end FieldEffectScript_LoadTiles - - thumb_func_start sub_080B53C4 -sub_080B53C4: @ 0x080B53C4 - push {r4, r5, lr} - adds r5, r0, #0 - bl FieldEffectScript_ReadWord - adds r4, r0, #0 - bl LoadSpritePalette - ldrh r0, [r4, #4] - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl UpdateSpritePaletteWithWeather - ldr r0, [r5] - adds r0, #4 - str r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_080B53C4 - - thumb_func_start FieldEffectScript_LoadPalette -FieldEffectScript_LoadPalette: @ 0x080B53EC - push {r4, lr} - adds r4, r0, #0 - bl FieldEffectScript_ReadWord - bl LoadSpritePalette - ldr r0, [r4] - adds r0, #4 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - thumb_func_end FieldEffectScript_LoadPalette - - thumb_func_start FieldEffectScript_CallNative -FieldEffectScript_CallNative: @ 0x080B5404 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl FieldEffectScript_ReadWord - bl _call_via_r0 - str r0, [r5] - thumb_func_end FieldEffectScript_CallNative - - thumb_func_start sub_080B5414 -sub_080B5414: @ 0x080B5414 - ldr r0, [r4] - adds r0, #4 - str r0, [r4] - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_080B5414 - - thumb_func_start FieldEffectFreeGraphicsResources -FieldEffectFreeGraphicsResources: @ 0x080B5420 - push {r4, r5, lr} - adds r1, r0, #0 - adds r1, #0x40 - ldrh r5, [r1] - ldrb r4, [r0, #5] - lsrs r4, r4, #4 - bl DestroySprite - adds r0, r5, #0 - bl FieldEffectFreeTilesIfUnused - adds r0, r4, #0 - bl FieldEffectFreePaletteIfUnused - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end FieldEffectFreeGraphicsResources - - thumb_func_start FieldEffectStop -FieldEffectStop: @ 0x080B5444 - push {r4, lr} - lsls r4, r1, #0x18 - lsrs r4, r4, #0x18 - bl FieldEffectFreeGraphicsResources - adds r0, r4, #0 - bl FieldEffectActiveListRemove - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end FieldEffectStop - - thumb_func_start FieldEffectFreeTilesIfUnused -FieldEffectFreeTilesIfUnused: @ 0x080B545C - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r4, #0 - bl GetSpriteTileTagByTileStart - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldr r0, _080B54B8 - cmp r3, r0 - beq _080B54B0 - movs r2, #0 - ldr r5, _080B54BC -_080B5476: - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r1, r0, r5 - adds r0, r1, #0 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _080B54A0 - adds r0, r1, #0 - adds r0, #0x3f - ldrb r0, [r0] - lsls r0, r0, #0x19 - cmp r0, #0 - bge _080B54A0 - adds r0, r1, #0 - adds r0, #0x40 - ldrh r0, [r0] - cmp r4, r0 - beq _080B54B0 -_080B54A0: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x3f - bls _080B5476 - adds r0, r3, #0 - bl FreeSpriteTilesByTag -_080B54B0: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B54B8: .4byte 0x0000FFFF -_080B54BC: .4byte gUnknown_20205AC - thumb_func_end FieldEffectFreeTilesIfUnused - - thumb_func_start FieldEffectFreePaletteIfUnused -FieldEffectFreePaletteIfUnused: @ 0x080B54C0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl sub_08008554 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, _080B5510 - cmp r5, r0 - beq _080B5508 - movs r2, #0 - ldr r6, _080B5514 - adds r3, r4, #0 -_080B54DC: - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r1, r0, r6 - adds r0, r1, #0 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _080B54F8 - ldrb r0, [r1, #5] - lsrs r0, r0, #4 - cmp r0, r3 - beq _080B5508 -_080B54F8: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x3f - bls _080B54DC - adds r0, r5, #0 - bl FreeSpritePaletteByTag -_080B5508: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080B5510: .4byte 0x0000FFFF -_080B5514: .4byte gUnknown_20205AC - thumb_func_end FieldEffectFreePaletteIfUnused - - thumb_func_start FieldEffectActiveListClear -FieldEffectActiveListClear: @ 0x080B5518 - push {r4, lr} - movs r2, #0 - ldr r4, _080B5538 - movs r3, #0xff -_080B5520: - adds r0, r2, r4 - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x1f - bls _080B5520 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B5538: .4byte gUnknown_3000F58 - thumb_func_end FieldEffectActiveListClear - - thumb_func_start FieldEffectActiveListAdd -FieldEffectActiveListAdd: @ 0x080B553C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - movs r2, #0 - ldr r4, _080B5554 -_080B5546: - adds r1, r2, r4 - ldrb r0, [r1] - cmp r0, #0xff - bne _080B5558 - strb r3, [r1] - b _080B5562 - .align 2, 0 -_080B5554: .4byte gUnknown_3000F58 -_080B5558: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x1f - bls _080B5546 -_080B5562: - pop {r4} - pop {r0} - bx r0 - thumb_func_end FieldEffectActiveListAdd - - thumb_func_start FieldEffectActiveListRemove -FieldEffectActiveListRemove: @ 0x080B5568 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - movs r2, #0 - ldr r4, _080B5584 - movs r5, #0xff -_080B5574: - adds r1, r2, r4 - ldrb r0, [r1] - cmp r0, r3 - bne _080B5588 - orrs r0, r5 - strb r0, [r1] - b _080B5592 - .align 2, 0 -_080B5584: .4byte gUnknown_3000F58 -_080B5588: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x1f - bls _080B5574 -_080B5592: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end FieldEffectActiveListRemove - - thumb_func_start FieldEffectActiveListContains -FieldEffectActiveListContains: @ 0x080B5598 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - movs r1, #0 - ldr r3, _080B55B0 -_080B55A2: - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _080B55B4 - movs r0, #1 - b _080B55C0 - .align 2, 0 -_080B55B0: .4byte gUnknown_3000F58 -_080B55B4: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x1f - bls _080B55A2 - movs r0, #0 -_080B55C0: - pop {r1} - bx r1 - thumb_func_end FieldEffectActiveListContains - - thumb_func_start CreateTrainerSprite -CreateTrainerSprite: @ 0x080B55C4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x18 - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - mov sb, r3 - ldr r7, [sp, #0x34] - lsls r4, r4, #0x18 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - mov r0, sb - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - lsrs r4, r4, #0x15 - ldr r3, _080B564C - mov r8, r3 - add r8, r4 - mov r0, r8 - adds r1, r7, #0 - bl LoadCompressedSpritePaletteOverrideBuffer - ldr r0, _080B5650 - adds r4, r4, r0 - adds r0, r4, #0 - adds r1, r7, #0 - bl LoadCompressedSpriteSheetOverrideBuffer - mov r1, sp - ldrh r0, [r4, #6] - movs r2, #0 - strh r0, [r1] - mov r3, r8 - ldrh r0, [r3, #4] - strh r0, [r1, #2] - ldr r0, _080B5654 - str r0, [sp, #4] - ldr r0, _080B5658 - str r0, [sp, #8] - str r2, [sp, #0xc] - ldr r0, _080B565C - str r0, [sp, #0x10] - ldr r0, _080B5660 - str r0, [sp, #0x14] - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - lsls r6, r6, #0x10 - asrs r6, r6, #0x10 - mov r0, sp - adds r1, r5, #0 - adds r2, r6, #0 - mov r3, sb - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #0x18 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080B564C: .4byte gUnknown_82D91CC -_080B5650: .4byte gUnknown_82D8EE4 -_080B5654: .4byte gUnknown_8536EBC -_080B5658: .4byte gUnknown_82BF304 -_080B565C: .4byte gUnknown_82BF310 -_080B5660: .4byte sub_08007140 - thumb_func_end CreateTrainerSprite - - thumb_func_start LoadTrainerGfx_TrainerCard -LoadTrainerGfx_TrainerCard: @ 0x080B5664 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r1, r2, #0 - lsls r4, r4, #0x18 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - ldr r0, _080B5694 - lsrs r4, r4, #0x15 - adds r0, r4, r0 - ldr r0, [r0] - bl sub_0803437C - ldr r0, _080B5698 - adds r4, r4, r0 - ldr r0, [r4] - adds r1, r5, #0 - movs r2, #0x20 - bl LoadCompressedPalette - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B5694: .4byte gUnknown_82D8EE4 -_080B5698: .4byte gUnknown_82D91CC - thumb_func_end LoadTrainerGfx_TrainerCard - - thumb_func_start AddNewGameBirchObject -AddNewGameBirchObject: @ 0x080B569C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - ldr r0, _080B56D4 - bl LoadSpritePalette - ldr r0, _080B56D8 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - adds r1, r4, #0 - adds r2, r5, #0 - adds r3, r6, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080B56D4: .4byte gUnknown_8536EDC -_080B56D8: .4byte gUnknown_8536EF0 - thumb_func_end AddNewGameBirchObject - - thumb_func_start CreateMonSprite_PicBox -CreateMonSprite_PicBox: @ 0x080B56DC - push {r4, r5, lr} - sub sp, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r3, #0x80 - lsls r3, r3, #8 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - str r1, [sp] - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - str r2, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - ldr r1, _080B572C - lsls r4, r0, #3 - adds r4, r4, r1 - ldrh r1, [r4, #4] - str r1, [sp, #0xc] - movs r1, #0 - adds r2, r3, #0 - movs r3, #1 - bl CreateMonPicSprite_HandleDeoxys - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldrh r0, [r4, #4] - bl IndexOfSpritePaletteTag - adds r0, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl PreservePaletteInWeather - ldr r0, _080B5730 - cmp r5, r0 - beq _080B5734 - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - b _080B5736 - .align 2, 0 -_080B572C: .4byte gUnknown_82D6F08 -_080B5730: .4byte 0x0000FFFF -_080B5734: - movs r0, #0x40 -_080B5736: - add sp, #0x10 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CreateMonSprite_PicBox - - thumb_func_start CreateMonSprite_FieldMove -CreateMonSprite_FieldMove: @ 0x080B5740 - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - sub sp, #0x10 - adds r6, r0, #0 - mov sb, r1 - mov sl, r2 - adds r4, r3, #0 - ldr r5, [sp, #0x2c] - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - adds r0, r6, #0 - bl GetMonSpritePalStructFromOtIdPersonality - mov r8, r0 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - str r4, [sp] - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - str r5, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - mov r1, r8 - ldrh r0, [r1, #4] - str r0, [sp, #0xc] - adds r0, r6, #0 - mov r1, sb - mov r2, sl - movs r3, #1 - bl CreateMonPicSprite_HandleDeoxys - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - mov r1, r8 - ldrh r0, [r1, #4] - bl IndexOfSpritePaletteTag - adds r0, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl PreservePaletteInWeather - ldr r0, _080B57B0 - cmp r4, r0 - beq _080B57B4 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - b _080B57B6 - .align 2, 0 -_080B57B0: .4byte 0x0000FFFF -_080B57B4: - movs r0, #0x40 -_080B57B6: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CreateMonSprite_FieldMove - - thumb_func_start FreeResourcesAndDestroySprite -FreeResourcesAndDestroySprite: @ 0x080B57C8 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - bl sub_080ABD24 - ldrb r0, [r4, #1] - lsls r0, r0, #0x1e - cmp r0, #0 - beq _080B57E6 - ldrb r0, [r4, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix -_080B57E6: - adds r0, r5, #0 - bl FreeAndDestroyMonPicSprite - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end FreeResourcesAndDestroySprite - - thumb_func_start MultiplyInvertedPaletteRGBComponents -MultiplyInvertedPaletteRGBComponents: @ 0x080B57F4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r4, _080B5878 - lsrs r0, r0, #0xf - adds r4, r0, r4 - ldrh r4, [r4] - movs r5, #0x1f - mov sb, r5 - mov r8, r4 - mov r6, r8 - ands r6, r5 - mov r8, r6 - movs r6, #0xf8 - lsls r6, r6, #2 - ands r6, r4 - lsrs r6, r6, #5 - movs r5, #0xf8 - lsls r5, r5, #7 - ands r4, r5 - lsrs r4, r4, #0xa - mov r7, sb - mov r5, r8 - subs r7, r7, r5 - mov ip, r7 - mov r7, ip - muls r7, r1, r7 - adds r1, r7, #0 - asrs r1, r1, #4 - add r8, r1 - mov r5, sb - subs r1, r5, r6 - muls r1, r2, r1 - asrs r1, r1, #4 - adds r6, r6, r1 - subs r5, r5, r4 - mov sb, r5 - mov r1, sb - muls r1, r3, r1 - asrs r1, r1, #4 - adds r4, r4, r1 - mov r7, r8 - lsls r7, r7, #0x10 - lsls r6, r6, #0x15 - orrs r6, r7 - lsls r4, r4, #0x1a - orrs r4, r6 - lsrs r4, r4, #0x10 - ldr r1, _080B587C - adds r0, r0, r1 - strh r4, [r0] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080B5878: .4byte gUnknown_20373B4 -_080B587C: .4byte gUnknown_20377B4 - thumb_func_end MultiplyInvertedPaletteRGBComponents - - thumb_func_start MultiplyPaletteRGBComponents -MultiplyPaletteRGBComponents: @ 0x080B5880 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - lsls r0, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r4, _080B58F0 - lsrs r0, r0, #0xf - adds r4, r0, r4 - ldrh r4, [r4] - movs r5, #0x1f - mov r8, r5 - mov r6, r8 - ands r6, r4 - mov r8, r6 - movs r5, #0xf8 - lsls r5, r5, #2 - ands r5, r4 - lsrs r5, r5, #5 - movs r6, #0xf8 - lsls r6, r6, #7 - ands r4, r6 - lsrs r4, r4, #0xa - mov r6, r8 - muls r6, r1, r6 - adds r1, r6, #0 - asrs r1, r1, #4 - mov r6, r8 - subs r6, r6, r1 - adds r1, r5, #0 - muls r1, r2, r1 - asrs r1, r1, #4 - subs r5, r5, r1 - adds r1, r4, #0 - muls r1, r3, r1 - asrs r1, r1, #4 - subs r4, r4, r1 - lsls r6, r6, #0x10 - lsls r5, r5, #0x15 - orrs r5, r6 - lsls r4, r4, #0x1a - orrs r4, r5 - lsrs r4, r4, #0x10 - ldr r1, _080B58F4 - adds r0, r0, r1 - strh r4, [r0] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080B58F0: .4byte gUnknown_20373B4 -_080B58F4: .4byte gUnknown_20377B4 - thumb_func_end MultiplyPaletteRGBComponents - - thumb_func_start FldEff_PokecenterHeal -FldEff_PokecenterHeal: @ 0x080B58F8 - push {r4, lr} - bl sub_0806B004 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _080B5934 - movs r1, #0xff - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080B5938 - adds r1, r1, r0 - strh r4, [r1, #0xa] - movs r0, #0x5d - strh r0, [r1, #0xc] - movs r0, #0x24 - strh r0, [r1, #0xe] - movs r0, #0x7c - strh r0, [r1, #0x10] - movs r0, #0x18 - strh r0, [r1, #0x12] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080B5934: .4byte sub_080B593C -_080B5938: .4byte gUnknown_3005B60 - thumb_func_end FldEff_PokecenterHeal - - thumb_func_start sub_080B593C -sub_080B593C: @ 0x080B593C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080B5964 - adds r1, r1, r0 - ldr r2, _080B5968 - movs r3, #8 - ldrsh r0, [r1, r3] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r2, [r0] - adds r0, r1, #0 - bl _call_via_r2 - pop {r0} - thumb_func_end sub_080B593C - - thumb_func_start sub_080B5960 -sub_080B5960: @ 0x080B5960 - bx r0 - .align 2, 0 -_080B5964: .4byte gUnknown_3005B60 -_080B5968: .4byte gUnknown_8537010 - thumb_func_end sub_080B5960 - - thumb_func_start PokecenterHealEffect_0 -PokecenterHealEffect_0: @ 0x080B596C - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r1, #0xa - ldrsh r0, [r4, r1] - movs r2, #0xc - ldrsh r1, [r4, r2] - movs r3, #0xe - ldrsh r2, [r4, r3] - movs r3, #1 - bl CreatePokeballGlowSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x14] - movs r1, #0x10 - ldrsh r0, [r4, r1] - movs r2, #0x12 - ldrsh r1, [r4, r2] - bl PokecenterHealEffectHelper - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x16] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PokecenterHealEffect_0 - - thumb_func_start PokecenterHealEffect_1 -PokecenterHealEffect_1: @ 0x080B59A8 - push {r4, lr} - adds r2, r0, #0 - ldr r3, _080B59E0 - movs r1, #0x14 - ldrsh r0, [r2, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - movs r4, #0x2e - ldrsh r0, [r1, r4] - cmp r0, #1 - ble _080B59DA - movs r0, #0x16 - ldrsh r1, [r2, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r0, #0x2e] - adds r1, #1 - strh r1, [r0, #0x2e] - ldrh r0, [r2, #8] - adds r0, #1 - strh r0, [r2, #8] -_080B59DA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B59E0: .4byte gUnknown_20205AC - thumb_func_end PokecenterHealEffect_1 - - thumb_func_start sub_080B59E4 -sub_080B59E4: @ 0x080B59E4 - push {lr} - adds r3, r0, #0 - ldr r2, _080B5A08 - movs r0, #0x14 - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0x2e - ldrsh r0, [r0, r1] - cmp r0, #4 - ble _080B5A04 - ldrh r0, [r3, #8] - adds r0, #1 - strh r0, [r3, #8] -_080B5A04: - pop {r0} - bx r0 - .align 2, 0 -_080B5A08: .4byte gUnknown_20205AC - thumb_func_end sub_080B59E4 - - thumb_func_start sub_080B5A0C -sub_080B5A0C: @ 0x080B5A0C - push {lr} - ldr r2, _080B5A44 - movs r3, #0x14 - ldrsh r1, [r0, r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r2 - movs r2, #0x2e - ldrsh r0, [r1, r2] - cmp r0, #6 - ble _080B5A3E - adds r0, r1, #0 - bl DestroySprite - movs r0, #0x19 - bl FieldEffectActiveListRemove - ldr r0, _080B5A48 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_080B5A3E: - pop {r0} - bx r0 - .align 2, 0 -_080B5A44: .4byte gUnknown_20205AC -_080B5A48: .4byte sub_080B593C - thumb_func_end sub_080B5A0C - - thumb_func_start FldEff_HallOfFameRecord -FldEff_HallOfFameRecord: @ 0x080B5A4C - push {r4, lr} - bl sub_0806B004 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _080B5A80 - movs r1, #0xff - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080B5A84 - adds r1, r1, r0 - strh r4, [r1, #0xa] - movs r0, #0x75 - strh r0, [r1, #0xc] - movs r0, #0x34 - strh r0, [r1, #0xe] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080B5A80: .4byte sub_080B5A88 -_080B5A84: .4byte gUnknown_3005B60 - thumb_func_end FldEff_HallOfFameRecord - - thumb_func_start sub_080B5A88 -sub_080B5A88: @ 0x080B5A88 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080B5AB0 - adds r1, r1, r0 - ldr r2, _080B5AB4 - movs r3, #8 - ldrsh r0, [r1, r3] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r2, [r0] - adds r0, r1, #0 - bl _call_via_r2 - pop {r0} - thumb_func_end sub_080B5A88 - - thumb_func_start sub_080B5AAC -sub_080B5AAC: @ 0x080B5AAC - bx r0 - .align 2, 0 -_080B5AB0: .4byte gUnknown_3005B60 -_080B5AB4: .4byte gUnknown_8537020 - thumb_func_end sub_080B5AAC - - thumb_func_start HallOfFameRecordEffect_0 -HallOfFameRecordEffect_0: @ 0x080B5AB8 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r1, #0xa - ldrsh r0, [r4, r1] - movs r2, #0xc - ldrsh r1, [r4, r2] - movs r3, #0xe - ldrsh r2, [r4, r3] - movs r3, #0 - bl CreatePokeballGlowSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x14] - ldr r0, _080B5B28 - bl FindTaskIdByFunc - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #0x78 - movs r2, #0x18 - movs r3, #0 - bl HallOfFameRecordEffectHelper - adds r0, r4, #0 - movs r1, #0x28 - movs r2, #8 - movs r3, #1 - bl HallOfFameRecordEffectHelper - adds r0, r4, #0 - movs r1, #0x48 - movs r2, #8 - movs r3, #1 - bl HallOfFameRecordEffectHelper - adds r0, r4, #0 - movs r1, #0xa8 - movs r2, #8 - movs r3, #1 - bl HallOfFameRecordEffectHelper - adds r0, r4, #0 - movs r1, #0xc8 - movs r2, #8 - movs r3, #1 - bl HallOfFameRecordEffectHelper - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B5B28: .4byte sub_080B5A88 - thumb_func_end HallOfFameRecordEffect_0 - - thumb_func_start HallOfFameRecordEffect_1 -HallOfFameRecordEffect_1: @ 0x080B5B2C - push {lr} - adds r3, r0, #0 - ldr r2, _080B5B58 - movs r0, #0x14 - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0x2e - ldrsh r0, [r0, r1] - cmp r0, #1 - ble _080B5B52 - ldrh r0, [r3, #0x26] - adds r0, #1 - strh r0, [r3, #0x26] - ldrh r0, [r3, #8] - adds r0, #1 - strh r0, [r3, #8] -_080B5B52: - pop {r0} - bx r0 - .align 2, 0 -_080B5B58: .4byte gUnknown_20205AC - thumb_func_end HallOfFameRecordEffect_1 - - thumb_func_start sub_080B5B5C -sub_080B5B5C: @ 0x080B5B5C - push {lr} - adds r3, r0, #0 - ldr r2, _080B5B80 - movs r0, #0x14 - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0x2e - ldrsh r0, [r0, r1] - cmp r0, #4 - ble _080B5B7C - ldrh r0, [r3, #8] - adds r0, #1 - strh r0, [r3, #8] -_080B5B7C: - pop {r0} - bx r0 - .align 2, 0 -_080B5B80: .4byte gUnknown_20205AC - thumb_func_end sub_080B5B5C - - thumb_func_start HallOfFameRecordEffect_3 -HallOfFameRecordEffect_3: @ 0x080B5B84 - push {lr} - ldr r2, _080B5BBC - movs r3, #0x14 - ldrsh r1, [r0, r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r2 - movs r2, #0x2e - ldrsh r0, [r1, r2] - cmp r0, #6 - ble _080B5BB6 - adds r0, r1, #0 - bl DestroySprite - movs r0, #0x3e - bl FieldEffectActiveListRemove - ldr r0, _080B5BC0 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_080B5BB6: - pop {r0} - bx r0 - .align 2, 0 -_080B5BBC: .4byte gUnknown_20205AC -_080B5BC0: .4byte sub_080B5A88 - thumb_func_end HallOfFameRecordEffect_3 - - thumb_func_start CreatePokeballGlowSprite -CreatePokeballGlowSprite: @ 0x080B5BC4 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - mov r8, r0 - adds r4, r1, #0 - adds r5, r2, #0 - adds r6, r3, #0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - ldr r0, _080B5C10 - bl CreateInvisibleSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r2, _080B5C14 - adds r1, r1, r2 - strh r4, [r1, #0x24] - strh r5, [r1, #0x26] - strh r6, [r1, #0x38] - mov r2, r8 - strh r2, [r1, #0x3a] - strh r0, [r1, #0x3c] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080B5C10: .4byte sub_080B5C18 -_080B5C14: .4byte gUnknown_20205AC - thumb_func_end CreatePokeballGlowSprite - - thumb_func_start sub_080B5C18 -sub_080B5C18: @ 0x080B5C18 - push {lr} - ldr r2, _080B5C30 - movs r3, #0x2e - ldrsh r1, [r0, r3] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080B5C30: .4byte gUnknown_8537030 - thumb_func_end sub_080B5C18 - - thumb_func_start PokeballGlowEffect_0 -PokeballGlowEffect_0: @ 0x080B5C34 - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x30] - movs r2, #0x30 - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _080B5C4C - subs r0, r1, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080B5CA8 -_080B5C4C: - movs r0, #0x19 - strh r0, [r4, #0x30] - ldr r0, _080B5CC0 - ldr r1, _080B5CC4 - movs r2, #0x32 - ldrsh r3, [r4, r2] - lsls r3, r3, #2 - adds r3, r3, r1 - ldrh r1, [r4, #0x24] - ldrh r2, [r3] - adds r1, r1, r2 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldrh r2, [r4, #0x26] - ldrh r3, [r3, #2] - adds r2, r2, r3 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - movs r3, #0 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080B5CC8 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r2, [r1, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - movs r2, #8 - orrs r0, r2 - strb r0, [r1, #5] - ldrh r0, [r4, #0x3c] - strh r0, [r1, #0x2e] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - ldrh r0, [r4, #0x3a] - subs r0, #1 - strh r0, [r4, #0x3a] - movs r0, #0x17 - bl sub_080A306C -_080B5CA8: - movs r1, #0x3a - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080B5CBA - movs r0, #0x20 - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] -_080B5CBA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B5CC0: .4byte gUnknown_8536FB0 -_080B5CC4: .4byte gUnknown_8537050 -_080B5CC8: .4byte gUnknown_20205AC - thumb_func_end PokeballGlowEffect_0 - - thumb_func_start PokeballGlowEffect_1 -PokeballGlowEffect_1: @ 0x080B5CCC - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0x30] - subs r0, #1 - strh r0, [r1, #0x30] - lsls r0, r0, #0x10 - asrs r2, r0, #0x10 - cmp r2, #0 - bne _080B5CFC - ldrh r0, [r1, #0x2e] - adds r0, #1 - strh r0, [r1, #0x2e] - movs r0, #8 - strh r0, [r1, #0x30] - strh r2, [r1, #0x32] - strh r2, [r1, #0x34] - movs r2, #0x38 - ldrsh r0, [r1, r2] - cmp r0, #0 - beq _080B5CFC - movs r0, #0xb8 - lsls r0, r0, #1 - bl PlayFanfare -_080B5CFC: - pop {r0} - bx r0 - thumb_func_end PokeballGlowEffect_1 - - thumb_func_start PokeballGlowEffect_2 -PokeballGlowEffect_2: @ 0x080B5D00 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r7, r0, #0 - ldrh r0, [r7, #0x30] - subs r0, #1 - strh r0, [r7, #0x30] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080B5D30 - movs r0, #8 - strh r0, [r7, #0x30] - ldrh r0, [r7, #0x32] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strh r0, [r7, #0x32] - cmp r0, #0 - bne _080B5D30 - ldrh r0, [r7, #0x34] - adds r0, #1 - strh r0, [r7, #0x34] -_080B5D30: - ldrh r4, [r7, #0x32] - adds r4, #3 - movs r0, #3 - mov r8, r0 - mov r1, r8 - ands r4, r1 - ldr r3, _080B5E28 - mov sl, r3 - mov r0, sl - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #4 - movs r1, #0x84 - lsls r1, r1, #0x11 - adds r0, r0, r1 - lsrs r0, r0, #0x10 - ldr r6, _080B5E2C - adds r1, r4, r6 - ldrb r1, [r1] - ldr r5, _080B5E30 - adds r2, r4, r5 - ldrb r2, [r2] - ldr r3, _080B5E34 - mov sb, r3 - add r4, sb - ldrb r3, [r4] - bl MultiplyInvertedPaletteRGBComponents - ldrh r4, [r7, #0x32] - adds r4, #2 - mov r0, r8 - ands r4, r0 - mov r0, sl - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #4 - movs r1, #0x83 - lsls r1, r1, #0x11 - adds r0, r0, r1 - lsrs r0, r0, #0x10 - adds r1, r4, r6 - ldrb r1, [r1] - adds r2, r4, r5 - ldrb r2, [r2] - add r4, sb - ldrb r3, [r4] - bl MultiplyInvertedPaletteRGBComponents - ldrh r4, [r7, #0x32] - adds r4, #1 - mov r3, r8 - ands r4, r3 - mov r0, sl - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #4 - movs r1, #0x81 - lsls r1, r1, #0x11 - adds r0, r0, r1 - lsrs r0, r0, #0x10 - adds r1, r4, r6 - ldrb r1, [r1] - adds r2, r4, r5 - ldrb r2, [r2] - add r4, sb - ldrb r3, [r4] - bl MultiplyInvertedPaletteRGBComponents - ldrh r4, [r7, #0x32] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r0, sl - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #4 - ldr r3, _080B5E38 - adds r0, r0, r3 - lsrs r0, r0, #0x10 - adds r6, r4, r6 - ldrb r6, [r6] - adds r5, r4, r5 - ldrb r5, [r5] - add r4, sb - ldrb r4, [r4] - adds r1, r6, #0 - adds r2, r5, #0 - adds r3, r4, #0 - bl MultiplyInvertedPaletteRGBComponents - mov r0, sl - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #4 - ldr r1, _080B5E3C - adds r0, r0, r1 - lsrs r0, r0, #0x10 - adds r1, r6, #0 - adds r2, r5, #0 - adds r3, r4, #0 - bl MultiplyInvertedPaletteRGBComponents - movs r3, #0x34 - ldrsh r0, [r7, r3] - cmp r0, #2 - ble _080B5E1A - ldrh r0, [r7, #0x2e] - adds r0, #1 - movs r1, #0 - strh r0, [r7, #0x2e] - movs r0, #8 - strh r0, [r7, #0x30] - strh r1, [r7, #0x32] -_080B5E1A: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080B5E28: .4byte 0x00001007 -_080B5E2C: .4byte gUnknown_8537068 -_080B5E30: .4byte gUnknown_853706C -_080B5E34: .4byte gUnknown_8537070 -_080B5E38: .4byte 0x01050000 -_080B5E3C: .4byte 0x01030000 - thumb_func_end PokeballGlowEffect_2 - - thumb_func_start PokeballGlowEffect_3 -PokeballGlowEffect_3: @ 0x080B5E40 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r2, r0, #0 - ldrh r0, [r2, #0x30] - subs r0, #1 - strh r0, [r2, #0x30] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080B5E70 - movs r0, #8 - strh r0, [r2, #0x30] - ldrh r0, [r2, #0x32] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strh r0, [r2, #0x32] - cmp r0, #3 - bne _080B5E70 - ldrh r0, [r2, #0x2e] - adds r0, #1 - strh r0, [r2, #0x2e] - movs r0, #0x1e - strh r0, [r2, #0x30] -_080B5E70: - ldrh r4, [r2, #0x32] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _080B5F1C - mov r8, r0 - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #4 - movs r1, #0x84 - lsls r1, r1, #0x11 - adds r0, r0, r1 - lsrs r0, r0, #0x10 - ldr r1, _080B5F20 - adds r1, r4, r1 - ldrb r6, [r1] - ldr r1, _080B5F24 - adds r1, r4, r1 - ldrb r5, [r1] - ldr r1, _080B5F28 - adds r4, r4, r1 - ldrb r4, [r4] - adds r1, r6, #0 - adds r2, r5, #0 - adds r3, r4, #0 - bl MultiplyInvertedPaletteRGBComponents - mov r0, r8 - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #4 - movs r1, #0x83 - lsls r1, r1, #0x11 - adds r0, r0, r1 - lsrs r0, r0, #0x10 - adds r1, r6, #0 - adds r2, r5, #0 - adds r3, r4, #0 - bl MultiplyInvertedPaletteRGBComponents - mov r0, r8 - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #4 - movs r1, #0x81 - lsls r1, r1, #0x11 - adds r0, r0, r1 - lsrs r0, r0, #0x10 - adds r1, r6, #0 - adds r2, r5, #0 - adds r3, r4, #0 - bl MultiplyInvertedPaletteRGBComponents - mov r0, r8 - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #4 - ldr r1, _080B5F2C - adds r0, r0, r1 - lsrs r0, r0, #0x10 - adds r1, r6, #0 - adds r2, r5, #0 - adds r3, r4, #0 - bl MultiplyInvertedPaletteRGBComponents - mov r0, r8 - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #4 - ldr r1, _080B5F30 - adds r0, r0, r1 - lsrs r0, r0, #0x10 - adds r1, r6, #0 - adds r2, r5, #0 - adds r3, r4, #0 - bl MultiplyInvertedPaletteRGBComponents - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080B5F1C: .4byte 0x00001007 -_080B5F20: .4byte gUnknown_8537068 -_080B5F24: .4byte gUnknown_853706C -_080B5F28: .4byte gUnknown_8537070 -_080B5F2C: .4byte 0x01050000 -_080B5F30: .4byte 0x01030000 - thumb_func_end PokeballGlowEffect_3 - - thumb_func_start PokeballGlowEffect_4 -PokeballGlowEffect_4: @ 0x080B5F34 - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0x30] - subs r0, #1 - strh r0, [r1, #0x30] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080B5F4A - ldrh r0, [r1, #0x2e] - adds r0, #1 - strh r0, [r1, #0x2e] -_080B5F4A: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PokeballGlowEffect_4 - - thumb_func_start PokeballGlowEffect_5 -PokeballGlowEffect_5: @ 0x080B5F50 - ldrh r1, [r0, #0x2e] - adds r1, #1 - strh r1, [r0, #0x2e] - bx lr - thumb_func_end PokeballGlowEffect_5 - - thumb_func_start PokeballGlowEffect_6 -PokeballGlowEffect_6: @ 0x080B5F58 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x38 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _080B5F6E - bl IsFanfareTaskInactive - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B5F74 -_080B5F6E: - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] -_080B5F74: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PokeballGlowEffect_6 - - thumb_func_start sub_080B5F7C -sub_080B5F7C: @ 0x080B5F7C - bx lr - .align 2, 0 - thumb_func_end sub_080B5F7C - - thumb_func_start SpriteCB_PokeballGlow -SpriteCB_PokeballGlow: @ 0x080B5F80 - push {lr} - adds r3, r0, #0 - ldr r2, _080B5FA4 - movs r0, #0x2e - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0x2e - ldrsh r0, [r0, r1] - cmp r0, #4 - ble _080B5FA0 - adds r0, r3, #0 - bl FieldEffectFreeGraphicsResources -_080B5FA0: - pop {r0} - bx r0 - .align 2, 0 -_080B5FA4: .4byte gUnknown_20205AC - thumb_func_end SpriteCB_PokeballGlow - - thumb_func_start PokecenterHealEffectHelper -PokecenterHealEffectHelper: @ 0x080B5FA8 - push {r4, lr} - adds r3, r0, #0 - adds r2, r1, #0 - ldr r0, _080B5FF8 - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r1, r3, #0 - movs r3, #0 - bl CreateSpriteAtEnd - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - ldr r1, _080B5FFC - adds r0, r0, r1 - ldrb r2, [r0, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #8 - orrs r1, r2 - strb r1, [r0, #5] - adds r3, r0, #0 - adds r3, #0x3e - ldrb r1, [r3] - movs r2, #4 - orrs r1, r2 - strb r1, [r3] - ldr r1, _080B6000 - bl SetSubspriteTables - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080B5FF8: .4byte gUnknown_8536FC8 -_080B5FFC: .4byte gUnknown_20205AC -_080B6000: .4byte gUnknown_8536F58 - thumb_func_end PokecenterHealEffectHelper - - thumb_func_start SpriteCB_PokecenterMonitor -SpriteCB_PokecenterMonitor: @ 0x080B6004 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _080B6028 - movs r0, #0 - strh r0, [r4, #0x2e] - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - subs r0, #5 - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAnim -_080B6028: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080B603C - adds r0, r4, #0 - bl FieldEffectFreeGraphicsResources -_080B603C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SpriteCB_PokecenterMonitor - - thumb_func_start HallOfFameRecordEffectHelper -HallOfFameRecordEffectHelper: @ 0x080B6044 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - lsls r3, r3, #0x18 - cmp r3, #0 - bne _080B608C - ldr r0, _080B6080 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - movs r3, #0 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - ldr r1, _080B6084 - adds r0, r0, r1 - ldr r1, _080B6088 - bl SetSubspriteTables - b _080B60A0 - .align 2, 0 -_080B6080: .4byte gUnknown_8536FE0 -_080B6084: .4byte gUnknown_20205AC -_080B6088: .4byte gUnknown_8536F70 -_080B608C: - ldr r0, _080B60C0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - movs r3, #0 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_080B60A0: - ldr r1, _080B60C4 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - adds r3, r0, #0 - adds r3, #0x3e - ldrb r1, [r3] - movs r2, #4 - orrs r1, r2 - strb r1, [r3] - strh r5, [r0, #0x2e] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B60C0: .4byte gUnknown_8536FF8 -_080B60C4: .4byte gUnknown_20205AC - thumb_func_end HallOfFameRecordEffectHelper - - thumb_func_start SpriteCB_HallOfFameMonitor -SpriteCB_HallOfFameMonitor: @ 0x080B60C8 - push {lr} - adds r3, r0, #0 - ldr r2, _080B6130 - movs r0, #0x2e - ldrsh r1, [r3, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r1, #0x26 - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _080B611E - ldrh r1, [r3, #0x30] - movs r2, #0x30 - ldrsh r0, [r3, r2] - cmp r0, #0 - beq _080B60F6 - subs r0, r1, #1 - strh r0, [r3, #0x30] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080B6118 -_080B60F6: - movs r0, #0x10 - strh r0, [r3, #0x30] - movs r0, #0x3e - adds r0, r0, r3 - mov ip, r0 - ldrb r2, [r0] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1] -_080B6118: - ldrh r0, [r3, #0x32] - adds r0, #1 - strh r0, [r3, #0x32] -_080B611E: - movs r2, #0x32 - ldrsh r0, [r3, r2] - cmp r0, #0x7f - ble _080B612C - adds r0, r3, #0 - bl FieldEffectFreeGraphicsResources -_080B612C: - pop {r0} - bx r0 - .align 2, 0 -_080B6130: .4byte gUnknown_3005B60 - thumb_func_end SpriteCB_HallOfFameMonitor - - thumb_func_start sub_080B6134 -sub_080B6134: @ 0x080B6134 - push {lr} - ldr r0, _080B6148 - bl SetMainCallback2 - ldr r1, _080B614C - ldr r0, _080B6150 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080B6148: .4byte sub_08085A30 -_080B614C: .4byte gUnknown_3005B0C -_080B6150: .4byte mapldr_080842E8 - thumb_func_end sub_080B6134 - - thumb_func_start mapldr_080842E8 -mapldr_080842E8: @ 0x080B6154 - push {lr} - bl pal_fill_black - ldr r0, _080B6174 - movs r1, #0 - bl CreateTask - bl sub_080987DC - bl FreezeEventObjects - ldr r1, _080B6178 - movs r0, #0 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080B6174: .4byte task00_8084310 -_080B6178: .4byte gUnknown_3005B0C - thumb_func_end mapldr_080842E8 - - thumb_func_start task00_8084310 -task00_8084310: @ 0x080B617C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080B61E8 - adds r4, r0, r1 - movs r0, #8 - ldrsh r6, [r4, r0] - cmp r6, #0 - bne _080B61BC - bl IsWeatherNotFadingIn - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B61E2 - bl GetCursorSelectionMonId - ldr r1, _080B61EC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [r1] - cmp r0, #5 - ble _080B61B0 - str r6, [r1] -_080B61B0: - movs r0, #0x1f - bl FieldEffectStart - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080B61BC: - movs r0, #0x1f - bl FieldEffectActiveListContains - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B61E2 - bl sub_08083FE8 - bl WarpIntoMap - ldr r0, _080B61F0 - bl SetMainCallback2 - ldr r1, _080B61F4 - ldr r0, _080B61F8 - str r0, [r1] - adds r0, r5, #0 - bl DestroyTask -_080B61E2: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080B61E8: .4byte gUnknown_3005B60 -_080B61EC: .4byte gUnknown_20388A8 -_080B61F0: .4byte CB2_LoadMap -_080B61F4: .4byte gUnknown_3005B0C -_080B61F8: .4byte mapldr_08084390 - thumb_func_end task00_8084310 - - thumb_func_start mapldr_08084390 -mapldr_08084390: @ 0x080B61FC - push {r4, lr} - bl Overworld_PlaySpecialMapMusic - bl pal_fill_black - ldr r0, _080B6254 - movs r1, #0 - bl CreateTask - ldr r4, _080B6258 - ldr r3, _080B625C - ldrb r1, [r3, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r1, [r0, #1] - movs r2, #0x20 - orrs r1, r2 - strb r1, [r0, #1] - ldrb r1, [r3] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080B623E - ldrb r1, [r3, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #3 - bl EventObjectTurn -_080B623E: - bl sub_080987DC - bl FreezeEventObjects - ldr r1, _080B6260 - movs r0, #0 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B6254: .4byte c3_080843F8 -_080B6258: .4byte gUnknown_2036FF0 -_080B625C: .4byte gUnknown_2037230 -_080B6260: .4byte gUnknown_3005B0C - thumb_func_end mapldr_08084390 - - thumb_func_start c3_080843F8 -c3_080843F8: @ 0x080B6264 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080B62B8 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080B6296 - ldr r0, _080B62BC - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080B62B0 - movs r0, #0x20 - bl FieldEffectStart - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080B6296: - movs r0, #0x20 - bl FieldEffectActiveListContains - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B62B0 - bl sub_080987E8 - bl UnfreezeEventObjects - adds r0, r5, #0 - bl DestroyTask -_080B62B0: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B62B8: .4byte gUnknown_3005B60 -_080B62BC: .4byte gUnknown_2037C74 - thumb_func_end c3_080843F8 - - thumb_func_start PrintAllVariableNumsOnCardPage2 -PrintAllVariableNumsOnCardPage2: @ 0x080B62C0 - push {lr} - bl Overworld_PlaySpecialMapMusic - bl pal_fill_for_maplights - bl sub_080987DC - bl FreezeEventObjects - ldr r0, _080B62E4 - movs r1, #0 - bl CreateTask - ldr r1, _080B62E8 - movs r0, #0 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080B62E4: .4byte sub_080B62EC -_080B62E8: .4byte gUnknown_3005B0C - thumb_func_end PrintAllVariableNumsOnCardPage2 - - thumb_func_start sub_080B62EC -sub_080B62EC: @ 0x080B62EC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080B631C - adds r4, r1, r0 - ldr r5, _080B6320 -_080B62FE: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B62FE - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B631C: .4byte gUnknown_3005B60 -_080B6320: .4byte gUnknown_8537074 - thumb_func_end sub_080B62EC - - thumb_func_start sub_080B6324 -sub_080B6324: @ 0x080B6324 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - mov sb, r0 - ldr r6, _080B63C0 - ldrb r0, [r6, #5] - lsls r5, r0, #3 - adds r5, r5, r0 - lsls r5, r5, #2 - ldr r0, _080B63C4 - mov r8, r0 - add r5, r8 - ldrb r0, [r6, #4] - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _080B63C8 - adds r4, r4, r0 - bl CameraObjectReset2 - ldrb r1, [r6, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - ldrb r1, [r0, #1] - movs r2, #0x20 - orrs r1, r2 - strb r1, [r0, #1] - movs r0, #1 - strb r0, [r6, #6] - bl GetPlayerFacingDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_08092CA0 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl EventObjectSetHeldMovement - adds r3, r4, #0 - adds r3, #0x42 - ldrb r0, [r3] - lsrs r0, r0, #6 - mov r1, sb - strh r0, [r1, #0x10] - ldrb r0, [r5, #3] - movs r2, #4 - orrs r0, r2 - strb r0, [r5, #3] - ldrb r1, [r4, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #5] - ldrb r1, [r3] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r3] - mov r1, sb - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - movs r0, #1 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080B63C0: .4byte gUnknown_2037230 -_080B63C4: .4byte gUnknown_2036FF0 -_080B63C8: .4byte gUnknown_20205AC - thumb_func_end sub_080B6324 - - thumb_func_start sub_080B63CC -sub_080B63CC: @ 0x080B63CC - push {r4, lr} - adds r4, r0, #0 - bl IsWeatherNotFadingIn - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B63E0 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080B63E0: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_080B63CC - - thumb_func_start sub_080B63E8 -sub_080B63E8: @ 0x080B63E8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r6, _080B644C - ldrb r0, [r6, #4] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r0, _080B6450 - adds r2, r2, r0 - adds r0, r2, #0 - adds r0, #0x29 - movs r4, #0 - ldrsb r4, [r0, r4] - lsls r0, r4, #0x11 - rsbs r0, r0, #0 - ldrh r1, [r2, #0x22] - ldr r3, _080B6454 - adds r1, r1, r4 - ldrh r3, [r3] - adds r1, r1, r3 - asrs r0, r0, #0x10 - adds r0, r0, r1 - rsbs r0, r0, #0 - movs r1, #0 - strh r0, [r2, #0x26] - movs r0, #1 - strh r0, [r5, #0xa] - strh r1, [r5, #0xc] - ldr r2, _080B6458 - ldrb r0, [r6, #5] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r2, [r1, #1] - movs r0, #0x21 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #1] - movs r0, #0x2b - bl sub_080A306C - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - movs r0, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080B644C: .4byte gUnknown_2037230 -_080B6450: .4byte gUnknown_20205AC -_080B6454: .4byte gUnknown_2021B3A -_080B6458: .4byte gUnknown_2036FF0 - thumb_func_end sub_080B63E8 - - thumb_func_start sub_080B645C -sub_080B645C: @ 0x080B645C - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r2, _080B6508 - ldrb r1, [r2, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B650C - adds r6, r0, r1 - ldrb r1, [r2, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B6510 - adds r5, r0, r1 - ldrh r0, [r4, #0xa] - ldrh r1, [r5, #0x26] - adds r0, r0, r1 - strh r0, [r5, #0x26] - ldrh r2, [r4, #0xa] - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #7 - bgt _080B649E - ldrh r1, [r4, #0xc] - adds r0, r2, r1 - strh r0, [r4, #0xc] - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - beq _080B649E - lsls r0, r2, #1 - strh r0, [r4, #0xa] -_080B649E: - ldrh r2, [r4, #0xe] - movs r1, #0xe - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080B64DC - movs r0, #0x26 - ldrsh r1, [r5, r0] - movs r0, #0x10 - rsbs r0, r0, #0 - cmp r1, r0 - blt _080B64DC - adds r0, r2, #1 - strh r0, [r4, #0xe] - ldrb r1, [r6, #3] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r6, #3] - ldrb r1, [r4, #0x10] - adds r3, r5, #0 - adds r3, #0x42 - lsls r1, r1, #6 - ldrb r2, [r3] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrb r0, [r6] - movs r1, #4 - orrs r0, r1 - strb r0, [r6] -_080B64DC: - movs r1, #0x26 - ldrsh r0, [r5, r1] - cmp r0, #0 - blt _080B6500 - movs r0, #0xd6 - bl sub_080A306C - ldrb r0, [r6] - movs r1, #8 - orrs r0, r1 - movs r1, #0x20 - orrs r0, r1 - strb r0, [r6] - movs r0, #0 - strh r0, [r5, #0x26] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080B6500: - movs r0, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080B6508: .4byte gUnknown_2037230 -_080B650C: .4byte gUnknown_2036FF0 -_080B6510: .4byte gUnknown_20205AC - thumb_func_end sub_080B645C - - thumb_func_start sub_080B6514 -sub_080B6514: @ 0x080B6514 - push {lr} - ldrh r1, [r0, #8] - adds r1, #1 - movs r2, #0 - strh r1, [r0, #8] - movs r1, #4 - strh r1, [r0, #0xa] - strh r2, [r0, #0xc] - movs r0, #0 - bl sub_08089C24 - movs r0, #1 - pop {r1} - bx r1 - thumb_func_end sub_080B6514 - - thumb_func_start sub_080B6530 -sub_080B6530: @ 0x080B6530 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0xa - ldrsh r1, [r4, r0] - movs r0, #0 - bl SetCameraPanning - ldrh r0, [r4, #0xa] - rsbs r2, r0, #0 - strh r2, [r4, #0xa] - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _080B6558 - lsls r0, r2, #0x10 - asrs r0, r0, #0x11 - strh r0, [r4, #0xa] -_080B6558: - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080B6566 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080B6566: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080B6530 - - thumb_func_start sub_080B6570 -sub_080B6570: @ 0x080B6570 - push {lr} - ldr r1, _080B659C - movs r0, #0 - strb r0, [r1, #6] - bl sub_080987E8 - bl CameraObjectReset1 - bl UnfreezeEventObjects - bl InstallCameraPanAheadCallback - ldr r0, _080B65A0 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_080B659C: .4byte gUnknown_2037230 -_080B65A0: .4byte sub_080B62EC - thumb_func_end sub_080B6570 - - thumb_func_start sub_080B65A4 -sub_080B65A4: @ 0x080B65A4 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, _080B65D8 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080B65DC - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r0, #0 - strh r0, [r1, #0xa] - cmp r4, #0x6a - bne _080B65D0 - movs r0, #1 - strh r0, [r1, #0xa] -_080B65D0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B65D8: .4byte sub_080B65E0 -_080B65DC: .4byte gUnknown_3005B60 - thumb_func_end sub_080B65A4 - - thumb_func_start sub_080B65E0 -sub_080B65E0: @ 0x080B65E0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080B6610 - adds r4, r1, r0 - ldr r5, _080B6614 -_080B65F2: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B65F2 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B6610: .4byte gUnknown_3005B60 -_080B6614: .4byte gUnknown_8537090 - thumb_func_end sub_080B65E0 - - thumb_func_start sub_080B6618 -sub_080B6618: @ 0x080B6618 - push {r4, lr} - adds r4, r0, #0 - bl FreezeEventObjects - bl CameraObjectReset2 - ldrb r0, [r4, #0xa] - bl sub_080E0AA4 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_080B6618 - - thumb_func_start sub_080B6638 -sub_080B6638: @ 0x080B6638 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _080B66A0 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B66A4 - adds r4, r0, r1 - adds r0, r4, #0 - bl EventObjectIsMovementOverridden - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B6662 - adds r0, r4, #0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B6696 -_080B6662: - bl GetPlayerFacingDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_08092CA0 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetHeldMovement - ldrh r0, [r5, #8] - adds r0, #1 - movs r1, #0 - strh r0, [r5, #8] - strh r1, [r5, #0xc] - strh r1, [r5, #0xe] - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _080B6690 - movs r0, #4 - strh r0, [r5, #8] -_080B6690: - movs r0, #0x50 - bl sub_080A306C -_080B6696: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080B66A0: .4byte gUnknown_2037230 -_080B66A4: .4byte gUnknown_2036FF0 - thumb_func_end sub_080B6638 - - thumb_func_start sub_080B66A8 -sub_080B66A8: @ 0x080B66A8 - push {r4, lr} - adds r4, r0, #0 - bl sub_080B6710 - movs r1, #0xc - ldrsh r0, [r4, r1] - cmp r0, #3 - ble _080B66C2 - bl sub_080B67A8 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080B66C2: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080B66A8 - - thumb_func_start sub_080B66CC -sub_080B66CC: @ 0x080B66CC - push {lr} - bl sub_080B6710 - bl CB2_Pokenav - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end sub_080B66CC - - thumb_func_start sub_080B66DC -sub_080B66DC: @ 0x080B66DC - push {r4, lr} - adds r4, r0, #0 - bl sub_080B675C - movs r1, #0xc - ldrsh r0, [r4, r1] - cmp r0, #3 - ble _080B66F6 - bl sub_080B67A8 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080B66F6: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080B66DC - - thumb_func_start sub_080B6700 -sub_080B6700: @ 0x080B6700 - push {lr} - bl sub_080B675C - bl CB2_Pokenav - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end sub_080B6700 - - thumb_func_start sub_080B6710 -sub_080B6710: @ 0x080B6710 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _080B6754 - ldrb r0, [r0, #4] - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _080B6758 - adds r4, r4, r0 - movs r0, #0xc - ldrsh r1, [r5, r0] - movs r0, #0x84 - bl Cos - strh r0, [r4, #0x24] - movs r0, #0xc - ldrsh r1, [r5, r0] - movs r0, #0x94 - bl Sin - strh r0, [r4, #0x26] - ldrh r0, [r5, #0xe] - adds r0, #1 - strh r0, [r5, #0xe] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _080B674E - ldrh r0, [r5, #0xc] - adds r0, #1 - strh r0, [r5, #0xc] -_080B674E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B6754: .4byte gUnknown_2037230 -_080B6758: .4byte gUnknown_20205AC - thumb_func_end sub_080B6710 - - thumb_func_start sub_080B675C -sub_080B675C: @ 0x080B675C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _080B67A0 - ldrb r0, [r0, #4] - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _080B67A4 - adds r4, r4, r0 - movs r0, #0xc - ldrsh r1, [r5, r0] - movs r0, #0x7c - bl Cos - strh r0, [r4, #0x24] - movs r0, #0xc - ldrsh r1, [r5, r0] - movs r0, #0x76 - bl Sin - strh r0, [r4, #0x26] - ldrh r0, [r5, #0xe] - adds r0, #1 - strh r0, [r5, #0xe] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _080B679A - ldrh r0, [r5, #0xc] - adds r0, #1 - strh r0, [r5, #0xc] -_080B679A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B67A0: .4byte gUnknown_2037230 -_080B67A4: .4byte gUnknown_20205AC - thumb_func_end sub_080B675C - - thumb_func_start sub_080B67A8 -sub_080B67A8: @ 0x080B67A8 - push {lr} - bl TryFadeOutOldMapMusic - bl WarpFadeScreen - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080B67A8 - - thumb_func_start CB2_Pokenav -CB2_Pokenav: @ 0x080B67B8 - push {lr} - ldr r0, _080B67F8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080B67F4 - bl BGMusicStopped - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080B67F4 - bl sub_080E0ABC - bl WarpIntoMap - ldr r1, _080B67FC - ldr r0, _080B6800 - str r0, [r1] - ldr r0, _080B6804 - bl SetMainCallback2 - ldr r0, _080B6808 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_080B67F4: - pop {r0} - bx r0 - .align 2, 0 -_080B67F8: .4byte gUnknown_2037C74 -_080B67FC: .4byte gUnknown_3005B0C -_080B6800: .4byte sub_080B680C -_080B6804: .4byte CB2_LoadMap -_080B6808: .4byte sub_080B65E0 - thumb_func_end CB2_Pokenav - - thumb_func_start sub_080B680C -sub_080B680C: @ 0x080B680C - push {lr} - bl Overworld_PlaySpecialMapMusic - bl pal_fill_for_maplights - bl sub_080987DC - ldr r0, _080B682C - movs r1, #0 - bl CreateTask - ldr r1, _080B6830 - movs r0, #0 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080B682C: .4byte sub_080B6834 -_080B6830: .4byte gUnknown_3005B0C - thumb_func_end sub_080B680C - - thumb_func_start sub_080B6834 -sub_080B6834: @ 0x080B6834 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080B6864 - adds r4, r1, r0 - ldr r5, _080B6868 -_080B6846: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B6846 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B6864: .4byte gUnknown_3005B60 -_080B6868: .4byte gUnknown_85370A8 - thumb_func_end sub_080B6834 - - thumb_func_start sub_080B686C -sub_080B686C: @ 0x080B686C - push {r4, r5, lr} - sub sp, #4 - adds r5, r0, #0 - bl CameraObjectReset2 - ldr r0, _080B68CC - ldrb r0, [r0, #5] - lsls r4, r0, #3 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _080B68D0 - adds r4, r4, r0 - movs r0, #4 - bl sub_08092CA0 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetHeldMovement - mov r4, sp - adds r4, #2 - 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, r0, #0x18 - lsrs r1, r0, #0x18 - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - movs r0, #0x10 - strh r0, [r5, #0xa] - cmp r1, #0x6b - bne _080B68D4 - movs r1, #1 - movs r0, #3 - strh r0, [r5, #8] - b _080B68D6 - .align 2, 0 -_080B68CC: .4byte gUnknown_2037230 -_080B68D0: .4byte gUnknown_2036FF0 -_080B68D4: - movs r1, #0 -_080B68D6: - adds r0, r1, #0 - bl sub_080E0AA4 - movs r0, #1 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080B686C - - thumb_func_start MovementAction_AcroEndWheelieMoveLeft_Step0 -MovementAction_AcroEndWheelieMoveLeft_Step0: @ 0x080B68E8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _080B6920 - ldrb r0, [r0, #4] - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _080B6924 - adds r4, r4, r0 - movs r0, #0xa - ldrsh r1, [r5, r0] - movs r0, #0x84 - bl Cos - strh r0, [r4, #0x24] - movs r0, #0xa - ldrsh r1, [r5, r0] - movs r0, #0x94 - bl Sin - strh r0, [r4, #0x26] - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080B6920: .4byte gUnknown_2037230 -_080B6924: .4byte gUnknown_20205AC - thumb_func_end MovementAction_AcroEndWheelieMoveLeft_Step0 - - thumb_func_start MovementAction_AcroEndWheelieMoveRight_Step0 -MovementAction_AcroEndWheelieMoveRight_Step0: @ 0x080B6928 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _080B6980 - ldrb r1, [r0, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B6984 - adds r5, r0, r1 - movs r0, #0xa - ldrsh r1, [r4, r0] - movs r0, #0x84 - bl Cos - strh r0, [r5, #0x24] - movs r0, #0xa - ldrsh r1, [r4, r0] - movs r0, #0x94 - bl Sin - strh r0, [r5, #0x26] - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _080B6966 - ldrh r0, [r4, #0xa] - subs r0, #1 - strh r0, [r4, #0xa] -_080B6966: - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080B6976 - strh r0, [r5, #0x24] - strh r0, [r5, #0x26] - movs r0, #5 - strh r0, [r4, #8] -_080B6976: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080B6980: .4byte gUnknown_2037230 -_080B6984: .4byte gUnknown_20205AC - thumb_func_end MovementAction_AcroEndWheelieMoveRight_Step0 - - thumb_func_start sub_080B6988 -sub_080B6988: @ 0x080B6988 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _080B69C0 - ldrb r0, [r0, #4] - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _080B69C4 - adds r4, r4, r0 - movs r0, #0xa - ldrsh r1, [r5, r0] - movs r0, #0x7c - bl Cos - strh r0, [r4, #0x24] - movs r0, #0xa - ldrsh r1, [r5, r0] - movs r0, #0x76 - bl Sin - strh r0, [r4, #0x26] - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080B69C0: .4byte gUnknown_2037230 -_080B69C4: .4byte gUnknown_20205AC - thumb_func_end sub_080B6988 - - thumb_func_start sub_080B69C8 -sub_080B69C8: @ 0x080B69C8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _080B6A20 - ldrb r1, [r0, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B6A24 - adds r5, r0, r1 - movs r0, #0xa - ldrsh r1, [r4, r0] - movs r0, #0x7c - bl Cos - strh r0, [r5, #0x24] - movs r0, #0xa - ldrsh r1, [r4, r0] - movs r0, #0x76 - bl Sin - strh r0, [r5, #0x26] - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _080B6A06 - ldrh r0, [r4, #0xa] - subs r0, #1 - strh r0, [r4, #0xa] -_080B6A06: - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080B6A18 - strh r0, [r5, #0x24] - strh r0, [r5, #0x26] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080B6A18: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080B6A20: .4byte gUnknown_2037230 -_080B6A24: .4byte gUnknown_20205AC - thumb_func_end sub_080B69C8 - - thumb_func_start sub_080B6A28 -sub_080B6A28: @ 0x080B6A28 - push {r4, lr} - adds r4, r0, #0 - bl sub_080E0AD0 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B6A44 - bl sub_080E0ABC - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #1 - b _080B6A46 -_080B6A44: - movs r0, #0 -_080B6A46: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_080B6A28 - - thumb_func_start sub_080B6A4C -sub_080B6A4C: @ 0x080B6A4C - push {r4, lr} - ldr r0, _080B6A98 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B6A9C - adds r4, r0, r1 - adds r0, r4, #0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B6A90 - bl CameraObjectReset1 - bl sub_080987E8 - movs r0, #4 - bl sub_08092CF8 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetHeldMovement - ldr r0, _080B6AA0 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_080B6A90: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080B6A98: .4byte gUnknown_2037230 -_080B6A9C: .4byte gUnknown_2036FF0 -_080B6AA0: .4byte sub_080B6834 - thumb_func_end sub_080B6A4C - - thumb_func_start FldEff_UseWaterfall -FldEff_UseWaterfall: @ 0x080B6AA4 - push {r4, lr} - ldr r4, _080B6AD0 - adds r0, r4, #0 - movs r1, #0xff - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080B6AD4 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r2, _080B6AD8 - ldr r2, [r2] - strh r2, [r1, #0xa] - bl _call_via_r4 - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080B6AD0: .4byte sub_080B6ADC -_080B6AD4: .4byte gUnknown_3005B60 -_080B6AD8: .4byte gUnknown_20388A8 - thumb_func_end FldEff_UseWaterfall - - thumb_func_start sub_080B6ADC -sub_080B6ADC: @ 0x080B6ADC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _080B6B18 - ldr r2, _080B6B1C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_080B6AEE: - movs r0, #8 - ldrsh r2, [r4, r0] - lsls r2, r2, #2 - adds r2, r2, r5 - ldr r0, _080B6B20 - ldrb r0, [r0, #5] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _080B6B24 - adds r1, r1, r0 - ldr r2, [r2] - adds r0, r4, #0 - bl _call_via_r2 - thumb_func_end sub_080B6ADC - - thumb_func_start sub_080B6B0C -sub_080B6B0C: @ 0x080B6B0C - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B6AEE - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B6B18: .4byte gUnknown_85370C4 -_080B6B1C: .4byte gUnknown_3005B60 -_080B6B20: .4byte gUnknown_2037230 -_080B6B24: .4byte gUnknown_2036FF0 - thumb_func_end sub_080B6B0C - - thumb_func_start sub_080B6B28 -sub_080B6B28: @ 0x080B6B28 - push {r4, lr} - adds r4, r0, #0 - bl sub_080987DC - ldr r1, _080B6B44 - movs r0, #1 - strb r0, [r1, #6] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080B6B44: .4byte gUnknown_2037230 - thumb_func_end sub_080B6B28 - - thumb_func_start waterfall_1_do_anim_probably -waterfall_1_do_anim_probably: @ 0x080B6B48 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_080987DC - adds r0, r5, #0 - bl EventObjectIsMovementOverridden - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B6B78 - adds r0, r5, #0 - bl EventObjectClearHeldMovementIfFinished - ldr r1, _080B6B80 - movs r2, #0xa - ldrsh r0, [r4, r2] - str r0, [r1] - movs r0, #0x3b - bl FieldEffectStart - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080B6B78: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080B6B80: .4byte gUnknown_20388A8 - thumb_func_end waterfall_1_do_anim_probably - - thumb_func_start waterfall_2_wait_anim_finish_probably -waterfall_2_wait_anim_finish_probably: @ 0x080B6B84 - push {r4, lr} - adds r4, r0, #0 - movs r0, #6 - bl FieldEffectActiveListContains - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B6B9E - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #1 - b _080B6BA0 -_080B6B9E: - movs r0, #0 -_080B6BA0: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end waterfall_2_wait_anim_finish_probably - - thumb_func_start sub_080B6BA8 -sub_080B6BA8: @ 0x080B6BA8 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - movs r0, #2 - bl sub_08092CCC - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetHeldMovement - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080B6BA8 - - thumb_func_start sub_080B6BD0 -sub_080B6BD0: @ 0x080B6BD0 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r0, r4, #0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B6BE6 - movs r0, #0 - b _080B6C22 -_080B6BE6: - ldrb r0, [r4, #0x1e] - bl MetatileBehavior_IsWaterfall - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _080B6C1C - bl sub_080987E8 - ldr r0, _080B6C14 - strb r4, [r0, #6] - ldr r0, _080B6C18 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - movs r0, #0x2b - bl FieldEffectActiveListRemove - movs r0, #0 - b _080B6C22 - .align 2, 0 -_080B6C14: .4byte gUnknown_2037230 -_080B6C18: .4byte sub_080B6ADC -_080B6C1C: - movs r0, #3 - strh r0, [r5, #8] - movs r0, #1 -_080B6C22: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_080B6BD0 - - thumb_func_start FldEff_UseDive -FldEff_UseDive: @ 0x080B6C28 - push {r4, lr} - ldr r4, _080B6C58 - adds r0, r4, #0 - movs r1, #0xff - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080B6C5C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r3, _080B6C60 - ldr r2, [r3] - strh r2, [r1, #0x26] - ldr r2, [r3, #4] - strh r2, [r1, #0x24] - bl _call_via_r4 - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080B6C58: .4byte sub_080B6C64 -_080B6C5C: .4byte gUnknown_3005B60 -_080B6C60: .4byte gUnknown_20388A8 - thumb_func_end FldEff_UseDive - - thumb_func_start sub_080B6C64 -sub_080B6C64: @ 0x080B6C64 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _080B6C94 - ldr r2, _080B6C98 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_080B6C76: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B6C76 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B6C94: .4byte gUnknown_85370D8 -_080B6C98: .4byte gUnknown_3005B60 - thumb_func_end sub_080B6C64 - - thumb_func_start dive_1_lock -dive_1_lock: @ 0x080B6C9C - ldr r2, _080B6CAC - movs r1, #1 - strb r1, [r2, #6] - ldrh r1, [r0, #8] - adds r1, #1 - strh r1, [r0, #8] - movs r0, #0 - bx lr - .align 2, 0 -_080B6CAC: .4byte gUnknown_2037230 - thumb_func_end dive_1_lock - - thumb_func_start dive_2_unknown -dive_2_unknown: @ 0x080B6CB0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080987DC - ldr r1, _080B6CD4 - movs r2, #0x26 - ldrsh r0, [r4, r2] - str r0, [r1] - movs r0, #0x3b - bl FieldEffectStart - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080B6CD4: .4byte gUnknown_20388A8 - thumb_func_end dive_2_unknown - - thumb_func_start dive_3_unknown -dive_3_unknown: @ 0x080B6CD8 - push {lr} - sub sp, #8 - mov r1, sp - adds r1, #2 - mov r0, sp - bl PlayerGetDestCoords - movs r0, #6 - bl FieldEffectActiveListContains - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B6D1C - ldr r2, _080B6D24 - ldr r0, _080B6D28 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #0x1e] - mov r0, sp - bl dive_warp - ldr r0, _080B6D2C - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - movs r0, #0x2c - bl FieldEffectActiveListRemove -_080B6D1C: - movs r0, #0 - add sp, #8 - pop {r1} - bx r1 - .align 2, 0 -_080B6D24: .4byte gUnknown_2036FF0 -_080B6D28: .4byte gUnknown_2037230 -_080B6D2C: .4byte sub_080B6C64 - thumb_func_end dive_3_unknown - - thumb_func_start sub_080B6D30 -sub_080B6D30: @ 0x080B6D30 - push {lr} - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, _080B6D44 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080B6D44: .4byte sub_080B6D48 - thumb_func_end sub_080B6D30 - - thumb_func_start sub_080B6D48 -sub_080B6D48: @ 0x080B6D48 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r6, _080B6D90 - ldr r2, _080B6D94 - ldr r5, _080B6D98 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_080B6D5C: - movs r0, #8 - ldrsh r3, [r4, r0] - lsls r3, r3, #2 - adds r3, r3, r6 - ldrb r0, [r5, #5] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _080B6D9C - adds r1, r1, r0 - ldrb r0, [r5, #4] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r0, _080B6DA0 - adds r2, r2, r0 - ldr r3, [r3] - adds r0, r4, #0 - bl _call_via_r3 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B6D5C - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080B6D90: .4byte gUnknown_85370E4 -_080B6D94: .4byte gUnknown_3005B60 -_080B6D98: .4byte gUnknown_2037230 -_080B6D9C: .4byte gUnknown_2036FF0 -_080B6DA0: .4byte gUnknown_20205AC - thumb_func_end sub_080B6D48 - - thumb_func_start sub_080B6DA4 -sub_080B6DA4: @ 0x080B6DA4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl FreezeEventObjects - bl CameraObjectReset2 - movs r0, #0 - bl sub_08089C24 - ldr r0, _080B6DD8 - movs r2, #1 - strb r2, [r0, #6] - ldrb r0, [r5, #3] - movs r1, #4 - orrs r0, r1 - strb r0, [r5, #3] - strh r2, [r4, #0xa] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080B6DD8: .4byte gUnknown_2037230 - thumb_func_end sub_080B6DA4 - - thumb_func_start sub_080B6DDC -sub_080B6DDC: @ 0x080B6DDC - push {r4, lr} - adds r4, r0, #0 - movs r0, #0xa - ldrsh r1, [r4, r0] - movs r0, #0 - bl SetCameraPanning - ldrh r0, [r4, #0xa] - rsbs r0, r0, #0 - strh r0, [r4, #0xa] - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #7 - ble _080B6E08 - movs r0, #0 - strh r0, [r4, #0xc] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080B6E08: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_080B6DDC - - thumb_func_start sub_080B6E10 -sub_080B6E10: @ 0x080B6E10 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0 - strh r0, [r2, #0x26] - movs r0, #1 - strh r0, [r4, #0xe] - ldr r3, _080B6E58 - movs r5, #0x10 - ldrsh r0, [r1, r5] - str r0, [r3] - movs r5, #0x12 - ldrsh r0, [r1, r5] - str r0, [r3, #4] - adds r0, r2, #0 - adds r0, #0x43 - ldrb r0, [r0] - subs r0, #1 - str r0, [r3, #8] - ldrb r0, [r2, #5] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1e - str r0, [r3, #0xc] - movs r0, #0x32 - bl FieldEffectStart - movs r0, #0xb2 - bl sub_080A306C - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080B6E58: .4byte gUnknown_20388A8 - thumb_func_end sub_080B6E10 - - thumb_func_start sub_080B6E5C -sub_080B6E5C: @ 0x080B6E5C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r6, r1, #0 - adds r5, r2, #0 - movs r0, #0xa - ldrsh r1, [r4, r0] - movs r0, #0 - bl SetCameraPanning - ldrh r0, [r4, #0xa] - rsbs r2, r0, #0 - strh r2, [r4, #0xa] - ldrh r0, [r4, #0xc] - adds r1, r0, #1 - strh r1, [r4, #0xc] - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x11 - bgt _080B6E96 - movs r0, #1 - ands r1, r0 - cmp r1, #0 - bne _080B6EA8 - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - bgt _080B6EA8 - lsls r0, r2, #1 - b _080B6EA6 -_080B6E96: - movs r0, #4 - ands r1, r0 - cmp r1, #0 - bne _080B6EA8 - lsls r0, r2, #0x10 - cmp r0, #0 - ble _080B6EA8 - asrs r0, r0, #0x11 -_080B6EA6: - strh r0, [r4, #0xa] -_080B6EA8: - movs r1, #0xc - ldrsh r0, [r4, r1] - cmp r0, #6 - ble _080B6EF4 - adds r0, r5, #0 - adds r0, #0x29 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r2, r1, #0x11 - rsbs r2, r2, #0 - movs r7, #0x26 - ldrsh r3, [r5, r7] - movs r7, #0x22 - ldrsh r0, [r5, r7] - adds r0, r0, r1 - ldr r1, _080B6EEC - movs r7, #0 - ldrsh r1, [r1, r7] - adds r0, r0, r1 - asrs r2, r2, #0x10 - adds r0, r0, r2 - cmn r3, r0 - ble _080B6EF0 - ldrh r0, [r5, #0x26] - ldrh r1, [r4, #0xe] - subs r0, r0, r1 - strh r0, [r5, #0x26] - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #7 - bgt _080B6EF4 - adds r0, r1, #1 - strh r0, [r4, #0xe] - b _080B6EF4 - .align 2, 0 -_080B6EEC: .4byte gUnknown_2021B3A -_080B6EF0: - movs r0, #1 - strh r0, [r4, #0x10] -_080B6EF4: - ldrh r2, [r4, #0x12] - movs r1, #0x12 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080B6F32 - movs r7, #0x26 - ldrsh r1, [r5, r7] - movs r0, #0x10 - rsbs r0, r0, #0 - cmp r1, r0 - bge _080B6F32 - adds r0, r2, #1 - strh r0, [r4, #0x12] - ldrb r0, [r6, #3] - movs r2, #4 - orrs r0, r2 - strb r0, [r6, #3] - ldrb r1, [r5, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #5] - adds r2, r5, #0 - adds r2, #0x42 - ldrb r1, [r2] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2] -_080B6F32: - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080B6F48 - movs r7, #0x10 - ldrsh r0, [r4, r7] - cmp r0, #0 - beq _080B6F48 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080B6F48: - movs r0, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_080B6E5C - - thumb_func_start sub_080B6F50 -sub_080B6F50: @ 0x080B6F50 - push {r4, lr} - adds r4, r0, #0 - bl TryFadeOutOldMapMusic - bl WarpFadeScreen - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080B6F50 - - thumb_func_start sub_080B6F6C -sub_080B6F6C: @ 0x080B6F6C - push {lr} - ldr r0, _080B6FAC - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080B6FA4 - bl BGMusicStopped - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080B6FA4 - bl WarpIntoMap - ldr r1, _080B6FB0 - ldr r0, _080B6FB4 - str r0, [r1] - ldr r0, _080B6FB8 - bl SetMainCallback2 - ldr r0, _080B6FBC - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_080B6FA4: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_080B6FAC: .4byte gUnknown_2037C74 -_080B6FB0: .4byte gUnknown_3005B0C -_080B6FB4: .4byte sub_080B6FC0 -_080B6FB8: .4byte CB2_LoadMap -_080B6FBC: .4byte sub_080B6D48 - thumb_func_end sub_080B6F6C - - thumb_func_start sub_080B6FC0 -sub_080B6FC0: @ 0x080B6FC0 - push {lr} - bl Overworld_PlaySpecialMapMusic - bl pal_fill_for_maplights - bl sub_080987DC - ldr r0, _080B6FE0 - movs r1, #0 - str r1, [r0] - ldr r0, _080B6FE4 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080B6FE0: .4byte gUnknown_3005B0C -_080B6FE4: .4byte sub_080B6FE8 - thumb_func_end sub_080B6FC0 - - thumb_func_start sub_080B6FE8 -sub_080B6FE8: @ 0x080B6FE8 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r6, _080B7030 - ldr r2, _080B7034 - ldr r5, _080B7038 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_080B6FFC: - movs r0, #8 - ldrsh r3, [r4, r0] - lsls r3, r3, #2 - adds r3, r3, r6 - ldrb r0, [r5, #5] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _080B703C - adds r1, r1, r0 - ldrb r0, [r5, #4] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r0, _080B7040 - adds r2, r2, r0 - ldr r3, [r3] - adds r0, r4, #0 - bl _call_via_r3 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B6FFC - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080B7030: .4byte gUnknown_85370FC -_080B7034: .4byte gUnknown_3005B60 -_080B7038: .4byte gUnknown_2037230 -_080B703C: .4byte gUnknown_2036FF0 -_080B7040: .4byte gUnknown_20205AC - thumb_func_end sub_080B6FE8 - - thumb_func_start sub_080B7044 -sub_080B7044: @ 0x080B7044 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl CameraObjectReset2 - bl FreezeEventObjects - ldr r1, _080B7070 - movs r0, #1 - strb r0, [r1, #6] - ldrb r0, [r4, #1] - movs r1, #0x20 - orrs r0, r1 - strb r0, [r4, #1] - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080B7070: .4byte gUnknown_2037230 - thumb_func_end sub_080B7044 - - thumb_func_start sub_080B7074 -sub_080B7074: @ 0x080B7074 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - bl IsWeatherNotFadingIn - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B70B4 - ldr r1, _080B70BC - movs r2, #0x10 - ldrsh r0, [r5, r2] - str r0, [r1] - movs r2, #0x12 - ldrsh r0, [r5, r2] - str r0, [r1, #4] - adds r0, r6, #0 - adds r0, #0x43 - ldrb r0, [r0] - subs r0, #1 - str r0, [r1, #8] - ldrb r0, [r6, #5] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1e - str r0, [r1, #0xc] - movs r0, #0x31 - bl FieldEffectStart - strh r0, [r4, #0xa] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080B70B4: - movs r0, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080B70BC: .4byte gUnknown_20388A8 - thumb_func_end sub_080B7074 - - thumb_func_start sub_080B70C0 -sub_080B70C0: @ 0x080B70C0 - push {r4, lr} - adds r2, r0, #0 - adds r4, r1, #0 - movs r0, #0xa - ldrsh r1, [r2, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B7110 - adds r0, r0, r1 - adds r0, #0x2b - ldrb r0, [r0] - cmp r0, #1 - bls _080B7108 - ldrh r0, [r2, #8] - adds r0, #1 - strh r0, [r2, #8] - ldrb r1, [r4, #1] - movs r0, #0x21 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #1] - bl CameraObjectReset1 - movs r0, #0xaf - bl sub_080A306C - movs r0, #4 - bl sub_08092E84 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetHeldMovement -_080B7108: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080B7110: .4byte gUnknown_20205AC - thumb_func_end sub_080B70C0 - - thumb_func_start sub_080B7114 -sub_080B7114: @ 0x080B7114 - push {lr} - adds r0, r1, #0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B713E - ldr r1, _080B7144 - movs r0, #0 - strb r0, [r1, #6] - bl sub_080987E8 - bl UnfreezeEventObjects - ldr r0, _080B7148 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_080B713E: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_080B7144: .4byte gUnknown_2037230 -_080B7148: .4byte sub_080B6FE8 - thumb_func_end sub_080B7114 - - thumb_func_start FldEff_LavaridgeGymWarp -FldEff_LavaridgeGymWarp: @ 0x080B714C - push {r4, lr} - ldr r4, _080B71A4 - adds r1, r4, #4 - adds r0, r4, #0 - movs r2, #8 - movs r3, #8 - bl sub_08092A50 - ldr r0, _080B71A8 - adds r0, #0x84 - ldr r0, [r0] - movs r2, #0 - ldrsh r1, [r4, r2] - movs r3, #4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, #8] - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080B71AC - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r1 - movs r1, #3 - ldrb r3, [r4, #0xc] - ands r3, r1 - lsls r3, r3, #2 - ldrb r4, [r2, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r4 - orrs r1, r3 - strb r1, [r2, #5] - adds r2, #0x3e - ldrb r1, [r2] - movs r3, #2 - orrs r1, r3 - strb r1, [r2] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080B71A4: .4byte gUnknown_20388A8 -_080B71A8: .4byte gUnknown_84DDE4C -_080B71AC: .4byte gUnknown_20205AC - thumb_func_end FldEff_LavaridgeGymWarp - - thumb_func_start sub_080B71B0 -sub_080B71B0: @ 0x080B71B0 - push {lr} - adds r2, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080B71C8 - adds r0, r2, #0 - movs r1, #0x32 - bl FieldEffectStop -_080B71C8: - pop {r0} - bx r0 - thumb_func_end sub_080B71B0 - - thumb_func_start sub_080B71CC -sub_080B71CC: @ 0x080B71CC - push {lr} - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, _080B71E0 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080B71E0: .4byte sub_080B71E4 - thumb_func_end sub_080B71CC - - thumb_func_start sub_080B71E4 -sub_080B71E4: @ 0x080B71E4 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r6, _080B722C - ldr r2, _080B7230 - ldr r5, _080B7234 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_080B71F8: - movs r0, #8 - ldrsh r3, [r4, r0] - lsls r3, r3, #2 - adds r3, r3, r6 - ldrb r0, [r5, #5] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _080B7238 - adds r1, r1, r0 - ldrb r0, [r5, #4] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r0, _080B723C - adds r2, r2, r0 - ldr r3, [r3] - adds r0, r4, #0 - bl _call_via_r3 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B71F8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080B722C: .4byte gUnknown_853710C -_080B7230: .4byte gUnknown_3005B60 -_080B7234: .4byte gUnknown_2037230 -_080B7238: .4byte gUnknown_2036FF0 -_080B723C: .4byte gUnknown_20205AC - thumb_func_end sub_080B71E4 - - thumb_func_start sub_080B7240 -sub_080B7240: @ 0x080B7240 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl FreezeEventObjects - bl CameraObjectReset2 - ldr r1, _080B726C - movs r0, #1 - strb r0, [r1, #6] - ldrb r0, [r4, #3] - movs r1, #4 - orrs r0, r1 - strb r0, [r4, #3] - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080B726C: .4byte gUnknown_2037230 - thumb_func_end sub_080B7240 - - thumb_func_start sub_080B7270 -sub_080B7270: @ 0x080B7270 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r6, r2, #0 - adds r0, r4, #0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B72E4 - ldrh r1, [r5, #0xa] - movs r2, #0xa - ldrsh r0, [r5, r2] - cmp r0, #3 - ble _080B72C4 - ldr r1, _080B72C0 - movs r2, #0x10 - ldrsh r0, [r4, r2] - str r0, [r1] - movs r2, #0x12 - ldrsh r0, [r4, r2] - str r0, [r1, #4] - adds r0, r6, #0 - adds r0, #0x43 - ldrb r0, [r0] - subs r0, #1 - str r0, [r1, #8] - ldrb r0, [r6, #5] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1e - str r0, [r1, #0xc] - movs r0, #0x31 - bl FieldEffectStart - strh r0, [r5, #0xa] - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - b _080B72E4 - .align 2, 0 -_080B72C0: .4byte gUnknown_20388A8 -_080B72C4: - adds r0, r1, #1 - strh r0, [r5, #0xa] - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl sub_08092F60 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetHeldMovement - movs r0, #0x27 - bl sub_080A306C -_080B72E4: - movs r0, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_080B7270 - - thumb_func_start sub_080B72EC -sub_080B72EC: @ 0x080B72EC - push {r4, lr} - adds r3, r0, #0 - adds r4, r1, #0 - ldr r2, _080B7320 - movs r0, #0xa - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x2b - ldrb r0, [r0] - cmp r0, #2 - bne _080B7316 - ldrb r0, [r4, #1] - movs r1, #0x20 - orrs r0, r1 - strb r0, [r4, #1] - ldrh r0, [r3, #8] - adds r0, #1 - strh r0, [r3, #8] -_080B7316: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080B7320: .4byte gUnknown_20205AC - thumb_func_end sub_080B72EC - - thumb_func_start sub_080B7324 -sub_080B7324: @ 0x080B7324 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x31 - bl FieldEffectActiveListContains - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B7342 - bl TryFadeOutOldMapMusic - bl WarpFadeScreen - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080B7342: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080B7324 - - thumb_func_start sub_080B734C -sub_080B734C: @ 0x080B734C - push {lr} - ldr r0, _080B738C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080B7384 - bl BGMusicStopped - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080B7384 - bl WarpIntoMap - ldr r1, _080B7390 - ldr r0, _080B7394 - str r0, [r1] - ldr r0, _080B7398 - bl SetMainCallback2 - ldr r0, _080B739C - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_080B7384: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_080B738C: .4byte gUnknown_2037C74 -_080B7390: .4byte gUnknown_3005B0C -_080B7394: .4byte PrintAllVariableNumsOnCardPage2 -_080B7398: .4byte CB2_LoadMap -_080B739C: .4byte sub_080B71E4 - thumb_func_end sub_080B734C - - thumb_func_start FldEff_PopOutOfAsh -FldEff_PopOutOfAsh: @ 0x080B73A0 - push {r4, lr} - ldr r4, _080B73F8 - adds r1, r4, #4 - adds r0, r4, #0 - movs r2, #8 - movs r3, #8 - bl sub_08092A50 - ldr r0, _080B73FC - adds r0, #0x80 - ldr r0, [r0] - movs r2, #0 - ldrsh r1, [r4, r2] - movs r3, #4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, #8] - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080B7400 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r1 - movs r1, #3 - ldrb r3, [r4, #0xc] - ands r3, r1 - lsls r3, r3, #2 - ldrb r4, [r2, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r4 - orrs r1, r3 - strb r1, [r2, #5] - adds r2, #0x3e - ldrb r1, [r2] - movs r3, #2 - orrs r1, r3 - strb r1, [r2] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080B73F8: .4byte gUnknown_20388A8 -_080B73FC: .4byte gUnknown_84DDE4C -_080B7400: .4byte gUnknown_20205AC - thumb_func_end FldEff_PopOutOfAsh - - thumb_func_start sub_080B7404 -sub_080B7404: @ 0x080B7404 - push {lr} - adds r2, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080B741C - adds r0, r2, #0 - movs r1, #0x31 - bl FieldEffectStop -_080B741C: - pop {r0} - bx r0 - thumb_func_end sub_080B7404 - - thumb_func_start StartEscapeRopeFieldEffect -StartEscapeRopeFieldEffect: @ 0x080B7420 - push {lr} - bl sub_080987DC - bl FreezeEventObjects - ldr r0, _080B7438 - movs r1, #0x50 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080B7438: .4byte sub_080B743C - thumb_func_end StartEscapeRopeFieldEffect - - thumb_func_start sub_080B743C -sub_080B743C: @ 0x080B743C - push {lr} - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r3, _080B7464 - ldr r2, _080B7468 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r2, #8 - ldrsh r1, [r0, r2] - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080B7464: .4byte gUnknown_8537120 -_080B7468: .4byte gUnknown_3005B60 - thumb_func_end sub_080B743C - - thumb_func_start EscapeRopeFieldEffect_Step0 -EscapeRopeFieldEffect_Step0: @ 0x080B746C - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0x40 - strh r0, [r4, #0x24] - bl GetPlayerFacingDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x26] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end EscapeRopeFieldEffect_Step0 - - thumb_func_start EscapeRopeFieldEffect_Step1 -EscapeRopeFieldEffect_Step1: @ 0x080B748C - push {r4, r5, lr} - sub sp, #8 - adds r4, r0, #0 - ldr r1, _080B7530 - mov r0, sp - movs r2, #5 - bl memcpy - ldrh r1, [r4, #0x24] - movs r2, #0x24 - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _080B74B8 - subs r0, r1, #1 - strh r0, [r4, #0x24] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080B74B8 - bl TryFadeOutOldMapMusic - bl WarpFadeScreen -_080B74B8: - ldr r0, _080B7534 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B7538 - adds r5, r0, r1 - adds r0, r5, #0 - bl EventObjectIsMovementOverridden - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B74DE - adds r0, r5, #0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B7598 -_080B74DE: - movs r1, #0x24 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080B7550 - ldr r0, _080B753C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080B7550 - bl BGMusicStopped - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080B7550 - ldrh r1, [r4, #0x26] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl SetEventObjectDirection - bl SetWarpDestinationToEscapeWarp - bl WarpIntoMap - ldr r1, _080B7540 - ldr r0, _080B7544 - str r0, [r1] - ldr r0, _080B7548 - bl SetMainCallback2 - ldr r0, _080B754C - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - b _080B7598 - .align 2, 0 -_080B7530: .4byte gUnknown_8537128 -_080B7534: .4byte gUnknown_2037230 -_080B7538: .4byte gUnknown_2036FF0 -_080B753C: .4byte gUnknown_2037C74 -_080B7540: .4byte gUnknown_3005B0C -_080B7544: .4byte CB2_RayquazaScene -_080B7548: .4byte CB2_LoadMap -_080B754C: .4byte sub_080B743C -_080B7550: - ldrh r1, [r4, #0xa] - movs r2, #0xa - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _080B7564 - subs r0, r1, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080B7598 -_080B7564: - ldrb r0, [r5, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - add r0, sp - ldrb r0, [r0] - bl sub_08092CA0 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl EventObjectSetHeldMovement - ldrh r1, [r4, #0xc] - movs r2, #0xc - ldrsh r0, [r4, r2] - cmp r0, #0xb - bgt _080B758C - adds r0, r1, #1 - strh r0, [r4, #0xc] -_080B758C: - ldrh r1, [r4, #0xc] - lsls r1, r1, #0x10 - asrs r1, r1, #0x12 - movs r0, #8 - asrs r0, r1 - strh r0, [r4, #0xa] -_080B7598: - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end EscapeRopeFieldEffect_Step1 - - thumb_func_start CB2_RayquazaScene -CB2_RayquazaScene: @ 0x080B75A0 - push {lr} - bl Overworld_PlaySpecialMapMusic - bl pal_fill_for_maplights - bl sub_080987DC - bl FreezeEventObjects - ldr r1, _080B75DC - movs r0, #0 - str r0, [r1] - ldr r2, _080B75E0 - ldr r0, _080B75E4 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #1] - movs r2, #0x20 - orrs r1, r2 - strb r1, [r0, #1] - ldr r0, _080B75E8 - movs r1, #0 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080B75DC: .4byte gUnknown_3005B0C -_080B75E0: .4byte gUnknown_2036FF0 -_080B75E4: .4byte gUnknown_2037230 -_080B75E8: .4byte sub_080B75EC - thumb_func_end CB2_RayquazaScene - - thumb_func_start sub_080B75EC -sub_080B75EC: @ 0x080B75EC - push {lr} - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r3, _080B7614 - ldr r2, _080B7618 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r2, #8 - ldrsh r1, [r0, r2] - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080B7614: .4byte gUnknown_8537130 -_080B7618: .4byte gUnknown_3005B60 - thumb_func_end sub_080B75EC - - thumb_func_start sub_080B761C -sub_080B761C: @ 0x080B761C - push {r4, lr} - adds r4, r0, #0 - bl IsWeatherNotFadingIn - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B763A - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - bl GetPlayerFacingDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x26] -_080B763A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080B761C - - thumb_func_start sub_080B7640 -sub_080B7640: @ 0x080B7640 - push {r4, r5, r6, lr} - sub sp, #8 - adds r5, r0, #0 - ldr r1, _080B76C4 - mov r0, sp - movs r2, #5 - bl memcpy - ldr r0, _080B76C8 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B76CC - adds r6, r0, r1 - ldrh r1, [r5, #0xa] - movs r2, #0xa - ldrsh r0, [r5, r2] - cmp r0, #0 - beq _080B7672 - subs r0, r1, #1 - strh r0, [r5, #0xa] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080B7704 -_080B7672: - adds r0, r6, #0 - bl EventObjectIsMovementOverridden - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B768A - adds r0, r6, #0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B7718 -_080B768A: - movs r1, #0xc - ldrsh r0, [r5, r1] - cmp r0, #0x1f - ble _080B76D4 - movs r2, #0x26 - ldrsh r4, [r5, r2] - bl GetPlayerFacingDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - bne _080B76D4 - ldrb r1, [r6, #1] - movs r0, #0x21 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r6, #1] - bl sub_080987E8 - bl UnfreezeEventObjects - ldr r0, _080B76D0 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - b _080B7718 - .align 2, 0 -_080B76C4: .4byte gUnknown_8537128 -_080B76C8: .4byte gUnknown_2037230 -_080B76CC: .4byte gUnknown_2036FF0 -_080B76D0: .4byte sub_080B75EC -_080B76D4: - ldrb r0, [r6, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - add r0, sp - ldrb r0, [r0] - bl sub_08092CA0 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r6, #0 - bl EventObjectSetHeldMovement - ldrh r1, [r5, #0xc] - movs r2, #0xc - ldrsh r0, [r5, r2] - cmp r0, #0x1f - bgt _080B76FC - adds r0, r1, #1 - strh r0, [r5, #0xc] -_080B76FC: - ldrh r0, [r5, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x12 - strh r0, [r5, #0xa] -_080B7704: - ldrb r2, [r6, #1] - lsls r1, r2, #0x1a - lsrs r1, r1, #0x1f - movs r0, #1 - eors r1, r0 - lsls r1, r1, #5 - subs r0, #0x22 - ands r0, r2 - orrs r0, r1 - strb r0, [r6, #1] -_080B7718: - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_080B7640 - - thumb_func_start sub_080B7720 -sub_080B7720: @ 0x080B7720 - push {lr} - ldr r0, _080B7730 - movs r1, #0 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080B7730: .4byte sub_080B7734 - thumb_func_end sub_080B7720 - - thumb_func_start sub_080B7734 -sub_080B7734: @ 0x080B7734 - push {lr} - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r3, _080B775C - ldr r2, _080B7760 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r2, #8 - ldrsh r1, [r0, r2] - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080B775C: .4byte gUnknown_8537138 -_080B7760: .4byte gUnknown_3005B60 - thumb_func_end sub_080B7734 - - thumb_func_start TeleportFieldEffectTask1 -TeleportFieldEffectTask1: @ 0x080B7764 - push {r4, lr} - adds r4, r0, #0 - bl sub_080987DC - bl FreezeEventObjects - bl CameraObjectReset2 - bl GetPlayerFacingDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x26] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end TeleportFieldEffectTask1 - - thumb_func_start TeleportFieldEffectTask2 -TeleportFieldEffectTask2: @ 0x080B778C - push {r4, r5, lr} - sub sp, #8 - adds r4, r0, #0 - ldr r1, _080B7810 - mov r0, sp - movs r2, #5 - bl memcpy - ldr r0, _080B7814 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B7818 - adds r5, r0, r1 - ldrh r1, [r4, #0xa] - movs r2, #0xa - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _080B77BE - subs r0, r1, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080B77D8 -_080B77BE: - ldrb r0, [r5, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - add r0, sp - ldrb r1, [r0] - adds r0, r5, #0 - bl EventObjectTurn - movs r0, #8 - strh r0, [r4, #0xa] - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] -_080B77D8: - movs r1, #0xc - ldrsh r0, [r4, r1] - cmp r0, #7 - ble _080B7806 - movs r2, #0x26 - ldrsh r1, [r4, r2] - ldrb r0, [r5, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - cmp r1, r0 - bne _080B7806 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #4 - strh r0, [r4, #0xa] - movs r0, #8 - strh r0, [r4, #0xc] - movs r0, #1 - strh r0, [r4, #0xe] - movs r0, #0x2d - bl sub_080A306C -_080B7806: - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B7810: .4byte gUnknown_8537128 -_080B7814: .4byte gUnknown_2037230 -_080B7818: .4byte gUnknown_2036FF0 - thumb_func_end TeleportFieldEffectTask2 - - thumb_func_start TeleportFieldEffectTask3 -TeleportFieldEffectTask3: @ 0x080B781C - push {r4, r5, lr} - sub sp, #8 - adds r4, r0, #0 - ldr r1, _080B78E0 - mov r0, sp - movs r2, #5 - bl memcpy - ldr r2, _080B78E4 - ldrb r1, [r2, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B78E8 - adds r3, r0, r1 - ldrb r1, [r2, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B78EC - adds r5, r0, r1 - ldrh r0, [r4, #0xa] - subs r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _080B7866 - movs r0, #4 - strh r0, [r4, #0xa] - ldrb r0, [r3, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - add r0, sp - ldrb r1, [r0] - adds r0, r3, #0 - bl EventObjectTurn -_080B7866: - ldrh r0, [r5, #0x22] - ldrh r1, [r4, #0xe] - subs r0, r0, r1 - strh r0, [r5, #0x22] - ldrh r1, [r4, #0xe] - ldrh r2, [r4, #0x10] - adds r0, r1, r2 - strh r0, [r4, #0x10] - ldrh r0, [r4, #0xc] - subs r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _080B7892 - movs r0, #4 - strh r0, [r4, #0xc] - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #7 - bgt _080B7892 - lsls r0, r1, #1 - strh r0, [r4, #0xe] -_080B7892: - movs r1, #0x10 - ldrsh r0, [r4, r1] - cmp r0, #8 - ble _080B78C0 - ldrb r1, [r5, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r5, #5] - adds r2, r5, #0 - adds r2, #0x42 - ldrb r1, [r2] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0 - beq _080B78C0 - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2] -_080B78C0: - movs r2, #0x10 - ldrsh r0, [r4, r2] - cmp r0, #0xa7 - ble _080B78D6 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - bl TryFadeOutOldMapMusic - bl WarpFadeScreen -_080B78D6: - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B78E0: .4byte gUnknown_8537128 -_080B78E4: .4byte gUnknown_2037230 -_080B78E8: .4byte gUnknown_2036FF0 -_080B78EC: .4byte gUnknown_20205AC - thumb_func_end TeleportFieldEffectTask3 - - thumb_func_start TeleportFieldEffectTask4 -TeleportFieldEffectTask4: @ 0x080B78F0 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080B7944 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080B793E - movs r1, #0x12 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080B7910 - bl ClearMirageTowerPulseBlendEffect - movs r0, #1 - strh r0, [r4, #0x12] -_080B7910: - bl BGMusicStopped - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080B793E - bl SetWarpDestinationToLastHealLocation - bl WarpIntoMap - ldr r0, _080B7948 - bl SetMainCallback2 - ldr r1, _080B794C - ldr r0, _080B7950 - str r0, [r1] - ldr r0, _080B7954 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_080B793E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B7944: .4byte gUnknown_2037C74 -_080B7948: .4byte CB2_LoadMap -_080B794C: .4byte gUnknown_3005B0C -_080B7950: .4byte mapldr_08085D88 -_080B7954: .4byte sub_080B7734 - thumb_func_end TeleportFieldEffectTask4 - - thumb_func_start mapldr_08085D88 -mapldr_08085D88: @ 0x080B7958 - push {lr} - bl Overworld_PlaySpecialMapMusic - bl pal_fill_for_maplights - bl sub_080987DC - bl FreezeEventObjects - ldr r1, _080B7998 - movs r0, #0 - str r0, [r1] - ldr r2, _080B799C - ldr r0, _080B79A0 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #1] - movs r2, #0x20 - orrs r1, r2 - strb r1, [r0, #1] - bl CameraObjectReset2 - ldr r0, _080B79A4 - movs r1, #0 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080B7998: .4byte gUnknown_3005B0C -_080B799C: .4byte gUnknown_2036FF0 -_080B79A0: .4byte gUnknown_2037230 -_080B79A4: .4byte sub_080B79A8 - thumb_func_end mapldr_08085D88 - - thumb_func_start sub_080B79A8 -sub_080B79A8: @ 0x080B79A8 - push {lr} - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r3, _080B79D0 - ldr r2, _080B79D4 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r2, #8 - ldrsh r1, [r0, r2] - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080B79D0: .4byte gUnknown_8537148 -_080B79D4: .4byte gUnknown_3005B60 - thumb_func_end sub_080B79A8 - - thumb_func_start sub_080B79D8 -sub_080B79D8: @ 0x080B79D8 - push {r4, r5, r6, lr} - adds r6, r0, #0 - bl IsWeatherNotFadingIn - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B7A4E - ldr r5, _080B7A54 - ldrb r0, [r5, #4] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r0, _080B7A58 - adds r2, r2, r0 - adds r0, r2, #0 - adds r0, #0x29 - movs r4, #0 - ldrsb r4, [r0, r4] - lsls r0, r4, #0x11 - rsbs r0, r0, #0 - ldrh r1, [r2, #0x22] - ldr r3, _080B7A5C - adds r1, r1, r4 - ldrh r3, [r3] - adds r1, r1, r3 - asrs r0, r0, #0x10 - adds r0, r0, r1 - rsbs r0, r0, #0 - strh r0, [r2, #0x26] - ldr r3, _080B7A60 - ldrb r0, [r5, #5] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrb r3, [r1, #1] - movs r0, #0x21 - rsbs r0, r0, #0 - ands r0, r3 - strb r0, [r1, #1] - ldrh r0, [r6, #8] - adds r0, #1 - strh r0, [r6, #8] - movs r0, #8 - strh r0, [r6, #0xa] - movs r0, #1 - strh r0, [r6, #0xc] - adds r2, #0x42 - ldrb r0, [r2] - lsrs r0, r0, #6 - strh r0, [r6, #0x24] - bl GetPlayerFacingDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r6, #0x26] - movs r0, #0x2d - bl sub_080A306C -_080B7A4E: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080B7A54: .4byte gUnknown_2037230 -_080B7A58: .4byte gUnknown_20205AC -_080B7A5C: .4byte gUnknown_2021B3A -_080B7A60: .4byte gUnknown_2036FF0 - thumb_func_end sub_080B79D8 - - thumb_func_start sub_080B7A64 -sub_080B7A64: @ 0x080B7A64 - push {r4, r5, r6, r7, lr} - sub sp, #8 - adds r4, r0, #0 - ldr r1, _080B7ACC - mov r0, sp - movs r2, #5 - bl memcpy - ldr r2, _080B7AD0 - ldrb r1, [r2, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B7AD4 - adds r6, r0, r1 - ldrb r1, [r2, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B7AD8 - adds r5, r0, r1 - ldrh r0, [r4, #0xa] - ldrh r1, [r5, #0x26] - adds r0, r0, r1 - strh r0, [r5, #0x26] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #8 - rsbs r1, r1, #0 - cmp r0, r1 - blt _080B7ADC - ldrh r1, [r4, #0x22] - movs r2, #0x22 - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _080B7B02 - adds r0, r1, #1 - strh r0, [r4, #0x22] - ldrb r0, [r6] - movs r1, #4 - orrs r0, r1 - strb r0, [r6] - ldrh r1, [r4, #0x24] - adds r3, r5, #0 - adds r3, #0x42 - lsls r1, r1, #6 - ldrb r2, [r3] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _080B7B02 - .align 2, 0 -_080B7ACC: .4byte gUnknown_8537128 -_080B7AD0: .4byte gUnknown_2037230 -_080B7AD4: .4byte gUnknown_2036FF0 -_080B7AD8: .4byte gUnknown_20205AC -_080B7ADC: - ldrb r1, [r5, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r5, #5] - adds r2, r5, #0 - adds r2, #0x42 - ldrb r1, [r2] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0 - beq _080B7B02 - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2] -_080B7B02: - ldrh r2, [r5, #0x26] - movs r3, #0x26 - ldrsh r1, [r5, r3] - movs r0, #0x30 - rsbs r0, r0, #0 - cmp r1, r0 - blt _080B7B26 - ldrh r1, [r4, #0xa] - movs r3, #0xa - ldrsh r0, [r4, r3] - cmp r0, #1 - ble _080B7B26 - movs r0, #1 - ands r0, r2 - cmp r0, #0 - bne _080B7B26 - subs r0, r1, #1 - strh r0, [r4, #0xa] -_080B7B26: - ldrh r0, [r4, #0xc] - subs r0, #1 - movs r7, #0 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080B7B48 - movs r0, #4 - strh r0, [r4, #0xc] - ldrb r0, [r6, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - add r0, sp - ldrb r1, [r0] - adds r0, r6, #0 - bl EventObjectTurn -_080B7B48: - movs r1, #0x26 - ldrsh r0, [r5, r1] - cmp r0, #0 - blt _080B7B5E - strh r7, [r5, #0x26] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #1 - strh r0, [r4, #0xa] - strh r7, [r4, #0xc] -_080B7B5E: - add sp, #8 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080B7A64 - - thumb_func_start sub_080B7B68 -sub_080B7B68: @ 0x080B7B68 - push {r4, r5, lr} - sub sp, #8 - adds r4, r0, #0 - ldr r1, _080B7BE4 - mov r0, sp - movs r2, #5 - bl memcpy - ldr r0, _080B7BE8 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B7BEC - adds r5, r0, r1 - ldrh r0, [r4, #0xa] - subs r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080B7BDC - ldrb r0, [r5, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - add r0, sp - ldrb r1, [r0] - adds r0, r5, #0 - bl EventObjectTurn - movs r0, #8 - strh r0, [r4, #0xa] - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - ble _080B7BDC - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldrb r0, [r5, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - cmp r1, r0 - bne _080B7BDC - bl sub_080987E8 - bl CameraObjectReset1 - bl UnfreezeEventObjects - ldr r0, _080B7BF0 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_080B7BDC: - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B7BE4: .4byte gUnknown_8537128 -_080B7BE8: .4byte gUnknown_2037230 -_080B7BEC: .4byte gUnknown_2036FF0 -_080B7BF0: .4byte sub_080B79A8 - thumb_func_end sub_080B7B68 - - thumb_func_start FldEff_FieldMoveShowMon -FldEff_FieldMoveShowMon: @ 0x080B7BF4 - push {r4, lr} - bl GetCurrentMapType - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl IsMapTypeOutdoors - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080B7C14 - ldr r0, _080B7C10 - b _080B7C16 - .align 2, 0 -_080B7C10: .4byte sub_080B7CAC -_080B7C14: - ldr r0, _080B7C44 -_080B7C16: - movs r1, #0xff - bl CreateTask - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r2, _080B7C48 - ldr r0, [r2] - ldr r1, [r2, #4] - ldr r2, [r2, #8] - bl sub_080B83B8 - ldr r2, _080B7C4C - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r1, #0x26] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080B7C44: .4byte sub_080B800C -_080B7C48: .4byte gUnknown_20388A8 -_080B7C4C: .4byte gUnknown_3005B60 - thumb_func_end FldEff_FieldMoveShowMon - - thumb_func_start FldEff_FieldMoveShowMonInit -FldEff_FieldMoveShowMonInit: @ 0x080B7C50 - push {r4, r5, r6, lr} - ldr r5, _080B7CA4 - ldr r0, [r5] - movs r6, #0x80 - lsls r6, r6, #0x18 - ands r6, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x64 - adds r4, r0, #0 - muls r4, r1, r4 - ldr r0, _080B7CA8 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - str r0, [r5] - adds r0, r4, #0 - movs r1, #1 - bl GetMonData - str r0, [r5, #4] - adds r0, r4, #0 - movs r1, #0 - bl GetMonData - str r0, [r5, #8] - ldr r0, [r5] - orrs r0, r6 - str r0, [r5] - movs r0, #6 - bl FieldEffectStart - movs r0, #0x3b - bl FieldEffectActiveListRemove - movs r0, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080B7CA4: .4byte gUnknown_20388A8 -_080B7CA8: .4byte gUnknown_2024190 - thumb_func_end FldEff_FieldMoveShowMonInit - - thumb_func_start sub_080B7CAC -sub_080B7CAC: @ 0x080B7CAC - push {lr} - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r3, _080B7CD4 - ldr r2, _080B7CD8 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r2, #8 - ldrsh r1, [r0, r2] - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080B7CD4: .4byte gUnknown_8537154 -_080B7CD8: .4byte gUnknown_3005B60 - thumb_func_end sub_080B7CAC - - thumb_func_start sub_080B7CDC -sub_080B7CDC: @ 0x080B7CDC - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080B7D38 - ldrh r0, [r0] - strh r0, [r4, #0x1e] - ldr r0, _080B7D3C - ldrh r0, [r0] - strh r0, [r4, #0x20] - adds r0, r4, #0 - adds r0, #0x22 - ldr r1, _080B7D40 - ldr r1, [r1, #0xc] - bl StoreWordInTwoHalfwords - ldr r1, _080B7D44 - strh r1, [r4, #0xa] - ldr r0, _080B7D48 - strh r0, [r4, #0xc] - movs r0, #0x3f - strh r0, [r4, #0xe] - movs r0, #0x3e - strh r0, [r4, #0x10] - movs r0, #0x40 - bl SetGpuReg - ldrh r1, [r4, #0xc] - movs r0, #0x44 - bl SetGpuReg - ldrh r1, [r4, #0xe] - movs r0, #0x48 - bl SetGpuReg - ldrh r1, [r4, #0x10] - movs r0, #0x4a - bl SetGpuReg - ldr r0, _080B7D4C - bl SetVBlankCallback - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B7D38: .4byte 0x04000048 -_080B7D3C: .4byte 0x0400004A -_080B7D40: .4byte gUnknown_3002360 -_080B7D44: .4byte 0x0000F0F1 -_080B7D48: .4byte 0x00005051 -_080B7D4C: .4byte sub_080B7F64 - thumb_func_end sub_080B7CDC - - thumb_func_start sub_080B7D50 -sub_080B7D50: @ 0x080B7D50 - push {r4, r5, r6, lr} - sub sp, #4 - adds r6, r0, #0 - ldr r0, _080B7DA8 - ldrh r1, [r0] - lsrs r1, r1, #2 - lsls r1, r1, #0x1e - lsrs r1, r1, #0x10 - ldrh r4, [r0] - lsrs r4, r4, #8 - lsls r4, r4, #0x1b - lsrs r4, r4, #0x10 - ldr r0, _080B7DAC - movs r5, #0xc0 - lsls r5, r5, #0x13 - adds r1, r1, r5 - movs r2, #0x80 - lsls r2, r2, #1 - bl CpuSet - movs r0, #0 - str r0, [sp] - adds r5, r4, r5 - ldr r2, _080B7DB0 - mov r0, sp - adds r1, r5, #0 - bl CpuSet - ldr r0, _080B7DB4 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - adds r0, r4, #0 - bl sub_080B7FCC - ldrh r0, [r6, #8] - adds r0, #1 - strh r0, [r6, #8] - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080B7DA8: .4byte 0x04000008 -_080B7DAC: .4byte gUnknown_8535AFC -_080B7DB0: .4byte 0x05000200 -_080B7DB4: .4byte gUnknown_8535CFC - thumb_func_end sub_080B7D50 - - thumb_func_start sub_080B7DB8 -sub_080B7DB8: @ 0x080B7DB8 - push {r4, r5, r6, r7, lr} - adds r3, r0, #0 - ldrh r0, [r3, #0x12] - subs r0, #0x10 - strh r0, [r3, #0x12] - ldrh r6, [r3, #0xa] - ldrh r2, [r3, #0xc] - movs r7, #0xff - lsrs r1, r6, #8 - subs r1, #0x10 - lsls r1, r1, #0x10 - lsrs r0, r2, #8 - subs r0, #2 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r7, #0 - ands r0, r2 - adds r5, r0, #2 - lsrs r2, r1, #0x10 - cmp r1, #0 - bge _080B7DE4 - movs r2, #0 -_080B7DE4: - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x27 - bgt _080B7DEE - movs r4, #0x28 -_080B7DEE: - cmp r5, #0x78 - ble _080B7DF4 - movs r5, #0x78 -_080B7DF4: - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - lsls r1, r2, #8 - adds r0, r7, #0 - ands r0, r6 - orrs r1, r0 - strh r1, [r3, #0xa] - lsls r0, r4, #0x10 - asrs r4, r0, #0x10 - lsls r0, r4, #8 - adds r1, r5, #0 - orrs r0, r1 - strh r0, [r3, #0xc] - cmp r2, #0 - bne _080B7E34 - cmp r4, #0x28 - bne _080B7E34 - cmp r1, #0x78 - bne _080B7E34 - ldr r2, _080B7E3C - movs r0, #0x26 - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, _080B7E40 - str r1, [r0] - ldrh r0, [r3, #8] - adds r0, #1 - strh r0, [r3, #8] -_080B7E34: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080B7E3C: .4byte gUnknown_20205AC -_080B7E40: .4byte sub_080B8418 - thumb_func_end sub_080B7DB8 - - thumb_func_start sub_080B7E44 -sub_080B7E44: @ 0x080B7E44 - push {lr} - adds r3, r0, #0 - ldrh r0, [r3, #0x12] - subs r0, #0x10 - strh r0, [r3, #0x12] - ldr r2, _080B7E70 - movs r0, #0x26 - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0x3c - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _080B7E6A - ldrh r0, [r3, #8] - adds r0, #1 - strh r0, [r3, #8] -_080B7E6A: - pop {r0} - bx r0 - .align 2, 0 -_080B7E70: .4byte gUnknown_20205AC - thumb_func_end sub_080B7E44 - - thumb_func_start sub_080B7E74 -sub_080B7E74: @ 0x080B7E74 - push {r4, lr} - adds r3, r0, #0 - ldrh r0, [r3, #0x12] - subs r0, #0x10 - strh r0, [r3, #0x12] - ldrh r2, [r3, #0xc] - lsls r1, r2, #0x10 - movs r0, #0xff - asrs r1, r1, #0x18 - adds r1, #6 - lsls r1, r1, #0x10 - ands r0, r2 - subs r0, #6 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - lsrs r4, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0x50 - ble _080B7E9C - movs r4, #0x50 -_080B7E9C: - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x50 - bgt _080B7EA6 - movs r2, #0x51 -_080B7EA6: - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - lsls r1, r0, #8 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - orrs r1, r2 - strh r1, [r3, #0xc] - cmp r0, #0x50 - bne _080B7EC2 - cmp r2, #0x51 - bne _080B7EC2 - ldrh r0, [r3, #8] - adds r0, #1 - strh r0, [r3, #8] -_080B7EC2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080B7E74 - - thumb_func_start sub_080B7EC8 -sub_080B7EC8: @ 0x080B7EC8 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - ldr r0, _080B7F08 - ldrh r1, [r0] - lsrs r1, r1, #8 - lsls r1, r1, #0x1b - lsrs r1, r1, #0x10 - movs r0, #0 - str r0, [sp] - movs r0, #0xc0 - lsls r0, r0, #0x13 - adds r1, r1, r0 - ldr r2, _080B7F0C - mov r0, sp - bl CpuSet - movs r0, #0xf1 - strh r0, [r4, #0xa] - movs r0, #0xa1 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0x1e] - strh r0, [r4, #0xe] - ldrh r0, [r4, #0x20] - strh r0, [r4, #0x10] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B7F08: .4byte 0x04000008 -_080B7F0C: .4byte 0x05000200 - thumb_func_end sub_080B7EC8 - - thumb_func_start overworld_bg_setup_2 -overworld_bg_setup_2: @ 0x080B7F10 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - adds r0, #0x22 - mov r1, sp - bl LoadWordFromTwoHalfwords - ldr r0, [sp] - bl SetVBlankCallback - bl sub_08196DF4 - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B7F5C - adds r0, r0, r1 - ldrh r1, [r4, #0x26] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl FreeResourcesAndDestroySprite - movs r0, #6 - bl FieldEffectActiveListRemove - ldr r0, _080B7F60 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B7F5C: .4byte gUnknown_20205AC -_080B7F60: .4byte sub_080B7CAC - thumb_func_end overworld_bg_setup_2 - - thumb_func_start sub_080B7F64 -sub_080B7F64: @ 0x080B7F64 - push {r4, lr} - sub sp, #4 - ldr r0, _080B7FC4 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _080B7FC8 - adds r4, r4, r0 - adds r0, r4, #0 - adds r0, #0x22 - mov r1, sp - bl LoadWordFromTwoHalfwords - ldr r0, [sp] - bl _call_via_r0 - thumb_func_end sub_080B7F64 - - thumb_func_start sub_080B7F8C -sub_080B7F8C: @ 0x080B7F8C - ldrh r1, [r4, #0xa] - movs r0, #0x40 - bl SetGpuReg - ldrh r1, [r4, #0xc] - movs r0, #0x44 - bl SetGpuReg - ldrh r1, [r4, #0xe] - movs r0, #0x48 - bl SetGpuReg - ldrh r1, [r4, #0x10] - movs r0, #0x4a - bl SetGpuReg - ldrh r1, [r4, #0x12] - movs r0, #0x10 - bl SetGpuReg - ldrh r1, [r4, #0x14] - movs r0, #0x12 - bl SetGpuReg - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B7FC4: .4byte sub_080B7CAC -_080B7FC8: .4byte gUnknown_3005B60 - thumb_func_end sub_080B7F8C - - thumb_func_start sub_080B7FCC -sub_080B7FCC: @ 0x080B7FCC - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _080B8000 - adds r2, r0, r1 - movs r1, #0 - ldr r5, _080B8004 - movs r0, #0xf0 - lsls r0, r0, #8 - adds r4, r0, #0 - ldr r3, _080B8008 -_080B7FE2: - lsls r0, r1, #1 - adds r0, r0, r5 - ldrh r0, [r0] - orrs r0, r4 - strh r0, [r2] - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - adds r2, #2 - cmp r1, r3 - bls _080B7FE2 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B8000: .4byte 0x06000140 -_080B8004: .4byte gUnknown_8535D1C -_080B8008: .4byte 0x0000013F - thumb_func_end sub_080B7FCC - - thumb_func_start sub_080B800C -sub_080B800C: @ 0x080B800C - push {lr} - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r3, _080B8034 - ldr r2, _080B8038 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r2, #8 - ldrsh r1, [r0, r2] - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080B8034: .4byte gUnknown_8537170 -_080B8038: .4byte gUnknown_3005B60 - thumb_func_end sub_080B800C - - thumb_func_start sub_080B803C -sub_080B803C: @ 0x080B803C - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0xa] - movs r0, #0x10 - bl SetGpuReg - ldrh r1, [r4, #0xc] - movs r0, #0x12 - bl SetGpuReg - adds r0, r4, #0 - adds r0, #0x22 - ldr r1, _080B8070 - ldr r1, [r1, #0xc] - bl StoreWordInTwoHalfwords - ldr r0, _080B8074 - bl SetVBlankCallback - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B8070: .4byte gUnknown_3002360 -_080B8074: .4byte sub_080B8238 - thumb_func_end sub_080B803C - - thumb_func_start sub_080B8078 -sub_080B8078: @ 0x080B8078 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #4 - adds r6, r0, #0 - ldr r0, _080B80D4 - ldrh r1, [r0] - lsrs r1, r1, #2 - lsls r1, r1, #0x1e - lsrs r1, r1, #0x10 - ldrh r4, [r0] - lsrs r4, r4, #8 - lsls r4, r4, #0x1b - lsrs r4, r4, #0x10 - movs r0, #0 - mov r8, r0 - strh r4, [r6, #0x20] - ldr r0, _080B80D8 - movs r5, #0xc0 - lsls r5, r5, #0x13 - adds r1, r1, r5 - movs r2, #0x40 - bl CpuSet - mov r0, r8 - str r0, [sp] - adds r4, r4, r5 - ldr r2, _080B80DC - mov r0, sp - adds r1, r4, #0 - bl CpuSet - ldr r0, _080B80E0 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - ldrh r0, [r6, #8] - adds r0, #1 - strh r0, [r6, #8] - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080B80D4: .4byte 0x04000008 -_080B80D8: .4byte gUnknown_8535F9C -_080B80DC: .4byte 0x05000200 -_080B80E0: .4byte gUnknown_853601C - thumb_func_end sub_080B8078 - - thumb_func_start sub_080B80E4 -sub_080B80E4: @ 0x080B80E4 - push {r4, lr} - adds r4, r0, #0 - bl sub_080B8290 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B811C - movs r0, #0x42 - movs r1, #0xf0 - bl SetGpuReg - ldr r1, _080B8128 - movs r0, #0x46 - bl SetGpuReg - ldr r2, _080B812C - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, _080B8130 - str r1, [r0] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080B811C: - adds r0, r4, #0 - bl sub_080B8280 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B8128: .4byte 0x00002878 -_080B812C: .4byte gUnknown_20205AC -_080B8130: .4byte sub_080B8418 - thumb_func_end sub_080B80E4 - - thumb_func_start sub_080B8134 -sub_080B8134: @ 0x080B8134 - push {r4, lr} - adds r4, r0, #0 - bl sub_080B8280 - ldr r2, _080B8160 - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0x3c - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _080B8158 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080B8158: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B8160: .4byte gUnknown_20205AC - thumb_func_end sub_080B8134 - - thumb_func_start sub_080B8164 -sub_080B8164: @ 0x080B8164 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_080B8280 - ldrh r1, [r4, #0xa] - movs r0, #7 - ands r0, r1 - movs r1, #0 - strh r0, [r4, #0xe] - strh r1, [r4, #0x10] - ldr r5, _080B8198 - movs r0, #0x42 - adds r1, r5, #0 - bl SetGpuReg - movs r0, #0x46 - adds r1, r5, #0 - bl SetGpuReg - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B8198: .4byte 0x0000FFFF - thumb_func_end sub_080B8164 - - thumb_func_start sub_080B819C -sub_080B819C: @ 0x080B819C - push {r4, lr} - adds r4, r0, #0 - bl sub_080B8280 - adds r0, r4, #0 - bl sub_080B8348 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B81B6 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080B81B6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080B819C - - thumb_func_start sub_080B81BC -sub_080B81BC: @ 0x080B81BC - push {r4, lr} - sub sp, #8 - adds r4, r0, #0 - ldr r0, _080B8228 - ldrh r1, [r0] - lsrs r1, r1, #8 - lsls r1, r1, #0x1b - lsrs r1, r1, #0x10 - movs r0, #0 - str r0, [sp] - movs r0, #0xc0 - lsls r0, r0, #0x13 - adds r1, r1, r0 - ldr r2, _080B822C - mov r0, sp - bl CpuSet - adds r0, r4, #0 - adds r0, #0x22 - add r1, sp, #4 - bl LoadWordFromTwoHalfwords - ldr r0, [sp, #4] - bl SetVBlankCallback - bl sub_08196DF4 - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B8230 - adds r0, r0, r1 - ldrh r1, [r4, #0x26] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl FreeResourcesAndDestroySprite - movs r0, #6 - bl FieldEffectActiveListRemove - ldr r0, _080B8234 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B8228: .4byte 0x04000008 -_080B822C: .4byte 0x05000200 -_080B8230: .4byte gUnknown_20205AC -_080B8234: .4byte sub_080B800C - thumb_func_end sub_080B81BC - - thumb_func_start sub_080B8238 -sub_080B8238: @ 0x080B8238 - push {r4, lr} - sub sp, #4 - ldr r0, _080B8278 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _080B827C - adds r4, r4, r0 - adds r0, r4, #0 - adds r0, #0x22 - mov r1, sp - bl LoadWordFromTwoHalfwords - ldr r0, [sp] - bl _call_via_r0 - thumb_func_end sub_080B8238 - - thumb_func_start sub_080B8260 -sub_080B8260: @ 0x080B8260 - ldrh r1, [r4, #0xa] - movs r0, #0x10 - bl SetGpuReg - ldrh r1, [r4, #0xc] - movs r0, #0x12 - bl SetGpuReg - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B8278: .4byte sub_080B800C -_080B827C: .4byte gUnknown_3005B60 - thumb_func_end sub_080B8260 - - thumb_func_start sub_080B8280 -sub_080B8280: @ 0x080B8280 - ldrh r1, [r0, #0xa] - subs r1, #0x10 - strh r1, [r0, #0xa] - ldrh r1, [r0, #0xe] - adds r1, #0x10 - strh r1, [r0, #0xe] - bx lr - .align 2, 0 - thumb_func_end sub_080B8280 - - thumb_func_start sub_080B8290 -sub_080B8290: @ 0x080B8290 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r5, r0, #0 - ldrh r2, [r5, #0x10] - movs r1, #0x10 - ldrsh r0, [r5, r1] - cmp r0, #0x1f - ble _080B82AC - movs r0, #1 - b _080B8330 -_080B82AC: - ldrh r0, [r5, #0xe] - lsls r0, r0, #0x10 - asrs r3, r0, #0x13 - movs r1, #0x1f - ands r3, r1 - movs r4, #0x10 - ldrsh r0, [r5, r4] - cmp r3, r0 - blt _080B832E - movs r0, #0x20 - subs r3, r0, r3 - ands r3, r1 - subs r0, r0, r2 - mov ip, r0 - mov r7, ip - ands r7, r1 - mov ip, r7 - ldrh r0, [r5, #0x20] - ldr r1, _080B8340 - adds r1, r1, r0 - mov r8, r1 - movs r4, #0 - ldr r7, _080B8344 - mov sl, r7 - movs r0, #0xf0 - lsls r0, r0, #8 - mov sb, r0 - adds r1, r3, #1 - movs r0, #0x1f - ands r1, r0 - str r1, [sp] - mov r6, ip - adds r6, #1 - ands r6, r0 -_080B82F0: - lsls r1, r4, #5 - adds r2, r1, r3 - lsls r2, r2, #1 - add r2, r8 - mov r7, ip - adds r0, r7, r1 - lsls r0, r0, #1 - add r0, sl - ldrh r0, [r0] - mov r7, sb - orrs r0, r7 - strh r0, [r2] - ldr r0, [sp] - adds r2, r1, r0 - lsls r2, r2, #1 - add r2, r8 - adds r1, r6, r1 - lsls r1, r1, #1 - add r1, sl - ldrh r0, [r1] - mov r1, sb - orrs r0, r1 - strh r0, [r2] - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #9 - bls _080B82F0 - ldrh r0, [r5, #0x10] - adds r0, #2 - strh r0, [r5, #0x10] -_080B832E: - movs r0, #0 -_080B8330: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080B8340: .4byte 0x06000140 -_080B8344: .4byte gUnknown_853603C - thumb_func_end sub_080B8290 - - thumb_func_start sub_080B8348 -sub_080B8348: @ 0x080B8348 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - movs r1, #0x10 - ldrsh r0, [r5, r1] - cmp r0, #0x1f - ble _080B8358 - movs r0, #1 - b _080B83AC -_080B8358: - ldrh r0, [r5, #0xe] - lsls r0, r0, #0x10 - asrs r0, r0, #0x13 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - movs r1, #0x10 - ldrsh r0, [r5, r1] - cmp r2, r0 - blt _080B83AA - ldrh r0, [r5, #0xa] - lsls r0, r0, #0x10 - asrs r2, r0, #0x13 - movs r0, #0x1f - ands r2, r0 - ldrh r0, [r5, #0x20] - ldr r1, _080B83B4 - adds r6, r0, r1 - movs r3, #0 - movs r0, #0xf0 - lsls r0, r0, #8 - adds r7, r0, #0 - adds r4, r2, #1 - movs r0, #0x1f - ands r4, r0 -_080B8388: - lsls r0, r3, #5 - adds r1, r0, r2 - lsls r1, r1, #1 - adds r1, r1, r6 - strh r7, [r1] - adds r0, r0, r4 - lsls r0, r0, #1 - adds r0, r0, r6 - strh r7, [r0] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #9 - bls _080B8388 - ldrh r0, [r5, #0x10] - adds r0, #2 - strh r0, [r5, #0x10] -_080B83AA: - movs r0, #0 -_080B83AC: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080B83B4: .4byte 0x06000140 - thumb_func_end sub_080B8348 - - thumb_func_start sub_080B83B8 -sub_080B83B8: @ 0x080B83B8 - push {r4, r5, r6, lr} - sub sp, #8 - adds r6, r0, #0 - movs r5, #0x80 - lsls r5, r5, #0x18 - ands r5, r6 - lsrs r5, r5, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - ldr r0, _080B840C - ands r6, r0 - lsls r0, r6, #0x10 - lsrs r0, r0, #0x10 - movs r3, #0xa0 - lsls r3, r3, #1 - movs r4, #0x50 - str r4, [sp] - movs r4, #0 - str r4, [sp, #4] - bl CreateMonSprite_FieldMove - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r1, _080B8410 - adds r2, r2, r1 - ldr r1, _080B8414 - str r1, [r2, #0x1c] - ldrb r3, [r2, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r3 - strb r1, [r2, #5] - strh r6, [r2, #0x2e] - strh r5, [r2, #0x3a] - add sp, #8 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080B840C: .4byte 0x7FFFFFFF -_080B8410: .4byte gUnknown_20205AC -_080B8414: .4byte sub_08007140 - thumb_func_end sub_080B83B8 - - thumb_func_start sub_080B8418 -sub_080B8418: @ 0x080B8418 - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0x20] - subs r0, #0x14 - strh r0, [r1, #0x20] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x78 - bgt _080B8458 - movs r0, #0x78 - strh r0, [r1, #0x20] - movs r0, #0x1e - strh r0, [r1, #0x30] - ldr r0, _080B844C - str r0, [r1, #0x1c] - movs r2, #0x3a - ldrsh r0, [r1, r2] - cmp r0, #0 - beq _080B8450 - ldrh r0, [r1, #0x2e] - movs r1, #0 - movs r2, #0x7d - movs r3, #0xa - bl PlayCry2 - b _080B8458 - .align 2, 0 -_080B844C: .4byte sub_080B845C -_080B8450: - ldrh r0, [r1, #0x2e] - movs r1, #0 - bl PlayCry1 -_080B8458: - pop {r0} - bx r0 - thumb_func_end sub_080B8418 - - thumb_func_start sub_080B845C -sub_080B845C: @ 0x080B845C - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0x30] - subs r0, #1 - strh r0, [r1, #0x30] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080B8470 - ldr r0, _080B8474 - str r0, [r1, #0x1c] -_080B8470: - pop {r0} - bx r0 - .align 2, 0 -_080B8474: .4byte sub_080B8478 - thumb_func_end sub_080B845C - - thumb_func_start sub_080B8478 -sub_080B8478: @ 0x080B8478 - push {lr} - adds r2, r0, #0 - ldrh r3, [r2, #0x20] - movs r0, #0x20 - ldrsh r1, [r2, r0] - movs r0, #0x40 - rsbs r0, r0, #0 - cmp r1, r0 - bge _080B8490 - movs r0, #1 - strh r0, [r2, #0x3c] - b _080B8496 -_080B8490: - adds r0, r3, #0 - subs r0, #0x14 - strh r0, [r2, #0x20] -_080B8496: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080B8478 - - thumb_func_start FldEff_UseSurf -FldEff_UseSurf: @ 0x080B849C - push {lr} - ldr r0, _080B84CC - movs r1, #0xff - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080B84D0 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r0, _080B84D4 - ldr r0, [r0] - strh r0, [r1, #0x26] - bl Overworld_ClearSavedMusic - ldr r0, _080B84D8 - bl GetTruckCameraBobbingY - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_080B84CC: .4byte sub_080B84DC -_080B84D0: .4byte gUnknown_3005B60 -_080B84D4: .4byte gUnknown_20388A8 -_080B84D8: .4byte 0x0000016D - thumb_func_end FldEff_UseSurf - - thumb_func_start sub_080B84DC -sub_080B84DC: @ 0x080B84DC - push {lr} - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r3, _080B8504 - ldr r2, _080B8508 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r2, #8 - ldrsh r1, [r0, r2] - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080B8504: .4byte gUnknown_853718C -_080B8508: .4byte gUnknown_3005B60 - thumb_func_end sub_080B84DC - - thumb_func_start sub_080B850C -sub_080B850C: @ 0x080B850C - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r4, r0, #0 - bl sub_080987DC - bl FreezeEventObjects - ldr r5, _080B8564 - movs r0, #1 - strb r0, [r5, #6] - movs r0, #8 - bl SetPlayerAvatarStateMask - adds r6, r4, #0 - adds r6, #0xa - movs r0, #0xc - adds r0, r0, r4 - mov r8, r0 - adds r0, r6, #0 - mov r1, r8 - bl PlayerGetDestCoords - ldr r2, _080B8568 - ldrb r1, [r5, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #0x18] - lsrs r0, r0, #4 - adds r1, r6, #0 - mov r2, r8 - bl MoveCoords - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080B8564: .4byte gUnknown_2037230 -_080B8568: .4byte gUnknown_2036FF0 - thumb_func_end sub_080B850C - - thumb_func_start sub_080B856C -sub_080B856C: @ 0x080B856C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _080B85B0 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B85B4 - adds r4, r0, r1 - adds r0, r4, #0 - bl EventObjectIsMovementOverridden - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B8596 - adds r0, r4, #0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B85A8 -_080B8596: - bl sub_0808BA78 - adds r0, r4, #0 - movs r1, #0x39 - bl EventObjectSetHeldMovement - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] -_080B85A8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B85B0: .4byte gUnknown_2037230 -_080B85B4: .4byte gUnknown_2036FF0 - thumb_func_end sub_080B856C - - thumb_func_start sub_080B85B8 -sub_080B85B8: @ 0x080B85B8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080B85F4 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B85F8 - adds r0, r0, r1 - bl EventObjectCheckHeldMovementStatus - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B85EE - ldr r2, _080B85FC - movs r1, #0x26 - ldrsh r0, [r4, r1] - movs r1, #0x80 - lsls r1, r1, #0x18 - orrs r0, r1 - str r0, [r2] - movs r0, #0x3b - bl FieldEffectStart - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080B85EE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B85F4: .4byte gUnknown_2037230 -_080B85F8: .4byte gUnknown_2036FF0 -_080B85FC: .4byte gUnknown_20388A8 - thumb_func_end sub_080B85B8 - - thumb_func_start sub_080B8600 -sub_080B8600: @ 0x080B8600 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r0, #6 - bl FieldEffectActiveListContains - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B866A - ldr r5, _080B8670 - ldrb r0, [r5, #5] - lsls r4, r0, #3 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _080B8674 - adds r4, r4, r0 - movs r0, #3 - bl GetPlayerAvatarGraphicsIdByStateId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetGraphicsId - adds r0, r4, #0 - bl EventObjectClearHeldMovementIfFinished - ldrb r0, [r4, #0x18] - lsrs r0, r0, #4 - bl sub_08092EB0 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetHeldMovement - ldr r1, _080B8678 - movs r2, #0xa - ldrsh r0, [r6, r2] - str r0, [r1] - movs r2, #0xc - ldrsh r0, [r6, r2] - str r0, [r1, #4] - ldrb r0, [r5, #5] - str r0, [r1, #8] - movs r0, #8 - bl FieldEffectStart - strb r0, [r4, #0x1a] - ldrh r0, [r6, #8] - adds r0, #1 - strh r0, [r6, #8] -_080B866A: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080B8670: .4byte gUnknown_2037230 -_080B8674: .4byte gUnknown_2036FF0 -_080B8678: .4byte gUnknown_20388A8 - thumb_func_end sub_080B8600 - - thumb_func_start sub_080B867C -sub_080B867C: @ 0x080B867C - push {r4, r5, lr} - ldr r5, _080B86E4 - ldrb r1, [r5, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B86E8 - adds r4, r0, r1 - adds r0, r4, #0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B86DC - movs r0, #0 - strb r0, [r5, #6] - ldrb r1, [r5] - movs r0, #0xdf - ands r0, r1 - strb r0, [r5] - ldrb r0, [r4, #0x18] - lsrs r0, r0, #4 - bl sub_08092CA0 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetHeldMovement - ldrb r0, [r4, #0x1a] - movs r1, #1 - bl sub_081554E8 - bl UnfreezeEventObjects - bl sub_080987E8 - movs r0, #9 - bl FieldEffectActiveListRemove - ldr r0, _080B86EC - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_080B86DC: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B86E4: .4byte gUnknown_2037230 -_080B86E8: .4byte gUnknown_2036FF0 -_080B86EC: .4byte sub_080B84DC - thumb_func_end sub_080B867C - - thumb_func_start sub_080B86F0 -sub_080B86F0: @ 0x080B86F0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _080B87F4 - adds r0, #0x90 - ldr r0, [r0] - movs r2, #0x18 - rsbs r2, r2, #0 - movs r1, #0x78 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r1, r0, #4 - add r1, r8 - lsls r1, r1, #2 - ldr r0, _080B87F8 - adds r1, r1, r0 - ldrb r2, [r1, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - movs r2, #4 - orrs r0, r2 - movs r2, #0xf - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r1, #5] - movs r2, #0 - strh r2, [r1, #0x2e] - strh r2, [r1, #0x30] - strh r2, [r1, #0x32] - ldr r0, _080B87FC - strh r0, [r1, #0x34] - ldrh r0, [r1, #0x22] - strh r0, [r1, #0x36] - strh r2, [r1, #0x38] - ldr r1, _080B8800 - movs r0, #0x50 - bl SetGpuReg - ldr r1, _080B8804 - movs r0, #0x52 - bl SetGpuReg - ldr r1, _080B8808 - movs r0, #0x48 - bl SetGpuReg - ldr r0, _080B880C - movs r1, #0xc0 - movs r2, #0x20 - bl LoadPalette - movs r0, #0x12 - movs r1, #0x78 - bl SetGpuReg - movs r4, #3 - ldr r7, _080B8810 - ldr r0, _080B8814 - adds r6, r0, #0 -_080B8772: - movs r2, #0xc - lsls r0, r4, #1 - lsls r5, r4, #5 - adds r0, r0, r4 - lsls r3, r0, #1 -_080B877C: - adds r0, r5, r2 - lsls r0, r0, #1 - adds r0, r0, r7 - adds r1, r2, r6 - adds r1, r3, r1 - adds r1, #1 - strh r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x11 - bls _080B877C - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xe - bls _080B8772 - movs r0, #0 - ldr r5, _080B8818 -_080B87A2: - movs r4, #0 - adds r7, r0, #1 - lsls r6, r0, #5 -_080B87A8: - lsls r1, r4, #2 - adds r1, r6, r1 - ldr r0, _080B881C - adds r3, r1, r0 - adds r0, r1, #1 - adds r0, r0, r5 - ldrb r2, [r0] - lsls r2, r2, #8 - adds r0, r1, r5 - ldrb r0, [r0] - adds r0, r0, r2 - strh r0, [r3] - ldr r0, _080B8820 - adds r3, r1, r0 - adds r0, r1, #3 - adds r0, r0, r5 - ldrb r2, [r0] - lsls r2, r2, #8 - adds r1, #2 - adds r1, r1, r5 - ldrb r0, [r1] - adds r0, r0, r2 - strh r0, [r3] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #7 - bls _080B87A8 - lsls r0, r7, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x59 - bls _080B87A2 - mov r0, r8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080B87F4: .4byte gUnknown_84DDE4C -_080B87F8: .4byte gUnknown_20205AC -_080B87FC: .4byte 0x0000FFFF -_080B8800: .4byte 0x00003E41 -_080B8804: .4byte 0x00000E0E -_080B8808: .4byte 0x00003F3F -_080B880C: .4byte gUnknown_85362BC -_080B8810: .4byte 0x0600F800 -_080B8814: .4byte 0x0000BFF4 -_080B8818: .4byte gUnknown_85362DC -_080B881C: .4byte 0x06008020 -_080B8820: .4byte 0x06008022 - thumb_func_end sub_080B86F0 - - thumb_func_start FldEff_NPCFlyOut -FldEff_NPCFlyOut: @ 0x080B8824 - push {r4, lr} - ldr r0, _080B8870 - ldr r0, [r0, #0x68] - movs r1, #0x78 - movs r2, #0 - movs r3, #1 - bl CreateSprite - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r2, r4, #4 - adds r2, r2, r4 - lsls r2, r2, #2 - ldr r0, _080B8874 - adds r2, r2, r0 - ldrb r1, [r2, #5] - movs r0, #0xf - ands r0, r1 - movs r1, #0xd - rsbs r1, r1, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2, #5] - ldr r0, _080B8878 - str r0, [r2, #0x1c] - ldr r0, _080B887C - ldr r0, [r0] - strh r0, [r2, #0x30] - movs r0, #0x9e - bl sub_080A306C - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080B8870: .4byte gUnknown_84DDE4C -_080B8874: .4byte gUnknown_20205AC -_080B8878: .4byte sub_080B8880 -_080B887C: .4byte gUnknown_20388A8 - thumb_func_end FldEff_NPCFlyOut - - thumb_func_start sub_080B8880 -sub_080B8880: @ 0x080B8880 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - movs r1, #0x8c - bl Cos - movs r5, #0 - strh r0, [r4, #0x24] - movs r2, #0x32 - ldrsh r0, [r4, r2] - movs r1, #0x48 - bl Sin - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x32] - adds r0, #4 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x32] - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _080B88E2 - movs r2, #0x30 - ldrsh r0, [r4, r2] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _080B88F8 - adds r1, r1, r0 - adds r3, r1, #0 - adds r3, #0x3e - ldrb r2, [r3] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r3] - ldrh r0, [r4, #0x24] - ldrh r2, [r4, #0x20] - adds r0, r0, r2 - strh r0, [r1, #0x20] - ldrh r0, [r4, #0x26] - ldrh r2, [r4, #0x22] - adds r0, r0, r2 - subs r0, #8 - strh r0, [r1, #0x22] - strh r5, [r1, #0x24] - strh r5, [r1, #0x26] -_080B88E2: - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0x7f - ble _080B88F2 - adds r0, r4, #0 - movs r1, #0x1e - bl FieldEffectStop -_080B88F2: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B88F8: .4byte gUnknown_20205AC - thumb_func_end sub_080B8880 - - thumb_func_start FldEff_UseFly -FldEff_UseFly: @ 0x080B88FC - push {lr} - ldr r0, _080B8920 - movs r1, #0xfe - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080B8924 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r0, _080B8928 - ldr r0, [r0] - strh r0, [r1, #0xa] - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_080B8920: .4byte sub_080B892C -_080B8924: .4byte gUnknown_3005B60 -_080B8928: .4byte gUnknown_20388A8 - thumb_func_end FldEff_UseFly - - thumb_func_start sub_080B892C -sub_080B892C: @ 0x080B892C - push {lr} - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r3, _080B8954 - ldr r2, _080B8958 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r2, #8 - ldrsh r1, [r0, r2] - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080B8954: .4byte gUnknown_85371A0 -_080B8958: .4byte gUnknown_3005B60 - thumb_func_end sub_080B892C - - thumb_func_start sub_080B895C -sub_080B895C: @ 0x080B895C - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r6, _080B89AC - ldrb r1, [r6, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B89B0 - adds r4, r0, r1 - adds r0, r4, #0 - bl EventObjectIsMovementOverridden - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B8986 - adds r0, r4, #0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B89A4 -_080B8986: - ldrb r0, [r6] - strh r0, [r5, #0x26] - movs r0, #1 - strb r0, [r6, #6] - bl SetPlayerAvatarStateMask - bl sub_0808BA78 - adds r0, r4, #0 - movs r1, #0x39 - bl EventObjectSetHeldMovement - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] -_080B89A4: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080B89AC: .4byte gUnknown_2037230 -_080B89B0: .4byte gUnknown_2036FF0 - thumb_func_end sub_080B895C - - thumb_func_start sub_080B89B4 -sub_080B89B4: @ 0x080B89B4 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080B89EC - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B89F0 - adds r0, r0, r1 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B89E4 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - ldr r1, _080B89F4 - movs r2, #0xa - ldrsh r0, [r4, r2] - str r0, [r1] - movs r0, #0x3b - bl FieldEffectStart -_080B89E4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B89EC: .4byte gUnknown_2037230 -_080B89F0: .4byte gUnknown_2036FF0 -_080B89F4: .4byte gUnknown_20388A8 - thumb_func_end sub_080B89B4 - - thumb_func_start sub_080B89F8 -sub_080B89F8: @ 0x080B89F8 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #6 - bl FieldEffectActiveListContains - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B8A40 - ldr r0, _080B8A48 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B8A4C - adds r5, r0, r1 - ldrh r1, [r4, #0x26] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080B8A30 - ldrb r0, [r5, #0x1a] - movs r1, #2 - bl sub_081554E8 - ldrb r0, [r5, #0x1a] - movs r1, #0 - bl sub_08155514 -_080B8A30: - bl sub_080B8C1C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0xa] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080B8A40: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B8A48: .4byte gUnknown_2037230 -_080B8A4C: .4byte gUnknown_2036FF0 - thumb_func_end sub_080B89F8 - - thumb_func_start sub_080B8A50 -sub_080B8A50: @ 0x080B8A50 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - bl sub_080B8C60 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B8A84 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0x10 - strh r0, [r4, #0xc] - movs r0, #1 - bl SetPlayerAvatarTransitionFlags - ldr r0, _080B8A8C - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B8A90 - adds r0, r0, r1 - movs r1, #2 - bl EventObjectSetHeldMovement -_080B8A84: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B8A8C: .4byte gUnknown_2037230 -_080B8A90: .4byte gUnknown_2036FF0 - thumb_func_end sub_080B8A50 - - thumb_func_start sub_080B8A94 -sub_080B8A94: @ 0x080B8A94 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080B8AE0 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B8AE4 - adds r2, r0, r1 - ldrh r1, [r4, #0xc] - movs r3, #0xc - ldrsh r0, [r4, r3] - cmp r0, #0 - beq _080B8ABA - subs r0, r1, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080B8AD8 -_080B8ABA: - adds r0, r2, #0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B8AD8 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0x9e - bl sub_080A306C - ldrb r0, [r4, #0xa] - bl sub_080B8C7C -_080B8AD8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B8AE0: .4byte gUnknown_2037230 -_080B8AE4: .4byte gUnknown_2036FF0 - thumb_func_end sub_080B8A94 - - thumb_func_start sub_080B8AE8 -sub_080B8AE8: @ 0x080B8AE8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrh r0, [r5, #0xc] - adds r0, #1 - strh r0, [r5, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #7 - ble _080B8B5E - ldr r0, _080B8B64 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B8B68 - adds r4, r0, r1 - movs r0, #3 - bl GetPlayerAvatarGraphicsIdByStateId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetGraphicsId - ldrb r1, [r4, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r6, _080B8B6C - adds r0, r0, r6 - movs r1, #0x16 - bl StartSpriteAnim - ldrb r0, [r4, #1] - movs r1, #0x10 - orrs r0, r1 - strb r0, [r4, #1] - adds r0, r4, #0 - movs r1, #0x48 - bl EventObjectSetHeldMovement - ldrh r1, [r5, #0x26] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080B8B54 - ldrb r1, [r4, #0x1a] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - bl DestroySprite -_080B8B54: - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - movs r0, #0 - strh r0, [r5, #0xc] -_080B8B5E: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080B8B64: .4byte gUnknown_2037230 -_080B8B68: .4byte gUnknown_2036FF0 -_080B8B6C: .4byte gUnknown_20205AC - thumb_func_end sub_080B8AE8 - - thumb_func_start sub_080B8B70 -sub_080B8B70: @ 0x080B8B70 - push {r4, r5, lr} - adds r5, r0, #0 - ldrh r0, [r5, #0xc] - adds r0, #1 - strh r0, [r5, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #9 - ble _080B8BBC - ldr r0, _080B8BC4 - ldrb r0, [r0, #5] - lsls r4, r0, #3 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _080B8BC8 - adds r4, r4, r0 - adds r0, r4, #0 - bl EventObjectClearHeldMovementIfActive - ldrb r1, [r4, #1] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #1] - ldrb r1, [r4, #2] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #2] - ldrb r0, [r5, #0xa] - ldrb r1, [r4, #4] - bl sub_080B8CB8 - bl CameraObjectReset2 - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] -_080B8BBC: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B8BC4: .4byte gUnknown_2037230 -_080B8BC8: .4byte gUnknown_2036FF0 - thumb_func_end sub_080B8B70 - - thumb_func_start sub_080B8BCC -sub_080B8BCC: @ 0x080B8BCC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - bl sub_080B8C60 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B8BE6 - bl WarpFadeScreen - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080B8BE6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080B8BCC - - thumb_func_start sub_080B8BEC -sub_080B8BEC: @ 0x080B8BEC - push {lr} - ldr r0, _080B8C14 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080B8C0E - movs r0, #0x1f - bl FieldEffectActiveListRemove - ldr r0, _080B8C18 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_080B8C0E: - pop {r0} - bx r0 - .align 2, 0 -_080B8C14: .4byte gUnknown_2037C74 -_080B8C18: .4byte sub_080B892C - thumb_func_end sub_080B8BEC - - thumb_func_start sub_080B8C1C -sub_080B8C1C: @ 0x080B8C1C - push {lr} - ldr r0, _080B8C54 - ldr r0, [r0, #0x68] - movs r1, #0xff - movs r2, #0xb4 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r1, _080B8C58 - adds r2, r2, r1 - ldrb r3, [r2, #5] - movs r1, #0xf - ands r1, r3 - movs r3, #0xd - rsbs r3, r3, #0 - ands r1, r3 - movs r3, #4 - orrs r1, r3 - strb r1, [r2, #5] - ldr r1, _080B8C5C - str r1, [r2, #0x1c] - pop {r1} - bx r1 - .align 2, 0 -_080B8C54: .4byte gUnknown_84DDE4C -_080B8C58: .4byte gUnknown_20205AC -_080B8C5C: .4byte sub_080B8CD4 - thumb_func_end sub_080B8C1C - - thumb_func_start sub_080B8C60 -sub_080B8C60: @ 0x080B8C60 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080B8C78 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r0, [r1, #0x3c] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bx lr - .align 2, 0 -_080B8C78: .4byte gUnknown_20205AC - thumb_func_end sub_080B8C60 - - thumb_func_start sub_080B8C7C -sub_080B8C7C: @ 0x080B8C7C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _080B8CB0 - adds r4, r4, r0 - ldr r0, _080B8CB4 - str r0, [r4, #0x1c] - movs r1, #0 - movs r0, #0x78 - strh r0, [r4, #0x20] - strh r1, [r4, #0x22] - strh r1, [r4, #0x24] - strh r1, [r4, #0x26] - adds r0, r4, #0 - adds r0, #0x2e - movs r2, #0x10 - bl memset - movs r0, #0x40 - strh r0, [r4, #0x3a] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B8CB0: .4byte gUnknown_20205AC -_080B8CB4: .4byte sub_080B8D94 - thumb_func_end sub_080B8C7C - - thumb_func_start sub_080B8CB8 -sub_080B8CB8: @ 0x080B8CB8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r3, _080B8CD0 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r3 - strh r1, [r2, #0x3a] - bx lr - .align 2, 0 -_080B8CD0: .4byte gUnknown_20205AC - thumb_func_end sub_080B8CB8 - - thumb_func_start sub_080B8CD4 -sub_080B8CD4: @ 0x080B8CD4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x3c - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080B8D80 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080B8D18 - ldrb r0, [r4, #1] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #1] - ldr r0, _080B8D88 - str r0, [r4, #0x10] - adds r0, r4, #0 - bl InitSpriteAffineAnim - adds r0, r4, #0 - movs r1, #0 - bl StartSpriteAffineAnim - movs r0, #0x76 - strh r0, [r4, #0x20] - ldr r0, _080B8D8C - strh r0, [r4, #0x22] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - movs r0, #0x40 - strh r0, [r4, #0x30] - adds r0, #0xc0 - strh r0, [r4, #0x32] -_080B8D18: - ldrh r0, [r4, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x30] - adds r0, r0, r1 - strh r0, [r4, #0x30] - movs r1, #0x30 - ldrsh r0, [r4, r1] - movs r1, #0x78 - bl Cos - strh r0, [r4, #0x24] - movs r1, #0x30 - ldrsh r0, [r4, r1] - movs r1, #0x78 - bl Sin - strh r0, [r4, #0x26] - ldrh r2, [r4, #0x32] - movs r0, #0x32 - ldrsh r1, [r4, r0] - ldr r0, _080B8D90 - cmp r1, r0 - bgt _080B8D4E - adds r0, r2, #0 - adds r0, #0x60 - strh r0, [r4, #0x32] -_080B8D4E: - movs r1, #0x30 - ldrsh r0, [r4, r1] - cmp r0, #0x81 - ble _080B8D80 - ldrh r0, [r4, #0x3c] - adds r0, #1 - strh r0, [r4, #0x3c] - ldrb r1, [r4, #1] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #1] - ldrb r0, [r4, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - ldrb r1, [r4, #1] - lsrs r1, r1, #6 - ldrb r2, [r4, #3] - lsrs r2, r2, #6 - adds r0, r4, #0 - movs r3, #0 - bl CalcCenterToCornerVec -_080B8D80: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B8D88: .4byte gUnknown_85371F4 -_080B8D8C: .4byte 0x0000FFD0 -_080B8D90: .4byte 0x000007FF - thumb_func_end sub_080B8CD4 - - thumb_func_start sub_080B8D94 -sub_080B8D94: @ 0x080B8D94 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - movs r1, #0x8c - bl Cos - movs r5, #0 - strh r0, [r4, #0x24] - movs r2, #0x32 - ldrsh r0, [r4, r2] - movs r1, #0x48 - bl Sin - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x32] - adds r0, #4 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x32] - movs r1, #0x3a - ldrsh r0, [r4, r1] - cmp r0, #0x40 - beq _080B8DF2 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _080B8E04 - adds r1, r1, r0 - adds r3, r1, #0 - adds r3, #0x3e - ldrb r2, [r3] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r3] - ldrh r0, [r4, #0x24] - ldrh r2, [r4, #0x20] - adds r0, r0, r2 - strh r0, [r1, #0x20] - ldrh r0, [r4, #0x26] - ldrh r2, [r4, #0x22] - adds r0, r0, r2 - subs r0, #8 - strh r0, [r1, #0x22] - strh r5, [r1, #0x24] - strh r5, [r1, #0x26] -_080B8DF2: - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0x7f - ble _080B8DFE - movs r0, #1 - strh r0, [r4, #0x3c] -_080B8DFE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B8E04: .4byte gUnknown_20205AC - thumb_func_end sub_080B8D94 - - thumb_func_start sub_080B8E08 -sub_080B8E08: @ 0x080B8E08 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x3c - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080B8EDC - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _080B8E52 - ldrb r0, [r4, #1] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #1] - ldr r0, _080B8EE4 - str r0, [r4, #0x10] - adds r0, r4, #0 - bl InitSpriteAffineAnim - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAffineAnim - movs r0, #0x5e - strh r0, [r4, #0x20] - ldr r0, _080B8EE8 - strh r0, [r4, #0x22] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - movs r0, #0xf0 - strh r0, [r4, #0x30] - movs r0, #0x80 - lsls r0, r0, #4 - strh r0, [r4, #0x32] - movs r0, #0x80 - strh r0, [r4, #0x36] -_080B8E52: - ldrh r1, [r4, #0x32] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - ldrh r2, [r4, #0x30] - adds r2, r2, r1 - ldrh r0, [r4, #0x34] - adds r0, r0, r1 - strh r0, [r4, #0x34] - movs r0, #0xff - ands r2, r0 - strh r2, [r4, #0x30] - movs r3, #0x30 - ldrsh r0, [r4, r3] - movs r1, #0x20 - bl Cos - strh r0, [r4, #0x24] - movs r1, #0x30 - ldrsh r0, [r4, r1] - movs r1, #0x78 - bl Sin - strh r0, [r4, #0x26] - ldrh r1, [r4, #0x32] - movs r2, #0x32 - ldrsh r0, [r4, r2] - movs r2, #0x80 - lsls r2, r2, #1 - cmp r0, r2 - ble _080B8E94 - ldrh r0, [r4, #0x36] - subs r0, r1, r0 - strh r0, [r4, #0x32] -_080B8E94: - ldrh r1, [r4, #0x36] - movs r3, #0x36 - ldrsh r0, [r4, r3] - cmp r0, #0xff - bgt _080B8EA4 - adds r0, r1, #0 - adds r0, #0x18 - strh r0, [r4, #0x36] -_080B8EA4: - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0xff - bgt _080B8EAE - strh r2, [r4, #0x32] -_080B8EAE: - movs r2, #0x34 - ldrsh r0, [r4, r2] - cmp r0, #0x3b - ble _080B8EDC - ldrh r0, [r4, #0x3c] - adds r0, #1 - strh r0, [r4, #0x3c] - ldrb r1, [r4, #1] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #1] - ldrb r0, [r4, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] -_080B8EDC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B8EE4: .4byte gUnknown_85371F4 -_080B8EE8: .4byte 0x0000FFE0 - thumb_func_end sub_080B8E08 - - thumb_func_start sub_080B8EEC -sub_080B8EEC: @ 0x080B8EEC - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl sub_080B8C7C - ldr r1, _080B8F10 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _080B8F14 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B8F10: .4byte gUnknown_20205AC -_080B8F14: .4byte sub_080B8E08 - thumb_func_end sub_080B8EEC - - thumb_func_start FldEff_FlyIn -FldEff_FlyIn: @ 0x080B8F18 - push {lr} - ldr r0, _080B8F28 - movs r1, #0xfe - bl CreateTask - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_080B8F28: .4byte sub_080B8F2C - thumb_func_end FldEff_FlyIn - - thumb_func_start sub_080B8F2C -sub_080B8F2C: @ 0x080B8F2C - push {lr} - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r3, _080B8F54 - ldr r2, _080B8F58 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r2, #8 - ldrsh r1, [r0, r2] - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080B8F54: .4byte gUnknown_85371FC -_080B8F58: .4byte gUnknown_3005B60 - thumb_func_end sub_080B8F2C - - thumb_func_start sub_080B8F5C -sub_080B8F5C: @ 0x080B8F5C - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r6, _080B9004 - ldrb r1, [r6, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B9008 - adds r4, r0, r1 - adds r0, r4, #0 - bl EventObjectIsMovementOverridden - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B8F86 - adds r0, r4, #0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B8FFE -_080B8F86: - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - movs r0, #0x11 - strh r0, [r5, #0xc] - ldrb r0, [r6] - strh r0, [r5, #0x26] - movs r0, #1 - strb r0, [r6, #6] - bl SetPlayerAvatarStateMask - ldrh r1, [r5, #0x26] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080B8FAE - ldrb r0, [r4, #0x1a] - movs r1, #0 - bl sub_081554E8 -_080B8FAE: - movs r0, #3 - bl GetPlayerAvatarGraphicsIdByStateId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetGraphicsId - bl CameraObjectReset2 - adds r0, r4, #0 - movs r1, #3 - bl EventObjectTurn - ldrb r1, [r4, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B900C - adds r0, r0, r1 - movs r1, #0x16 - bl StartSpriteAnim - ldrb r1, [r4, #1] - movs r0, #0x21 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #1] - bl sub_080B8C1C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0xa] - bl sub_080B8C7C - ldrb r0, [r5, #0xa] - ldrb r1, [r4, #4] - bl sub_080B8CB8 -_080B8FFE: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080B9004: .4byte gUnknown_2037230 -_080B9008: .4byte gUnknown_2036FF0 -_080B900C: .4byte gUnknown_20205AC - thumb_func_end sub_080B8F5C - - thumb_func_start sub_080B9010 -sub_080B9010: @ 0x080B9010 - push {r4, r5, lr} - adds r5, r0, #0 - ldrh r1, [r5, #0xc] - movs r2, #0xc - ldrsh r0, [r5, r2] - cmp r0, #0 - beq _080B9028 - subs r0, r1, #1 - strh r0, [r5, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080B9068 -_080B9028: - ldr r0, _080B9070 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B9074 - adds r0, r0, r1 - ldrb r0, [r0, #4] - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _080B9078 - adds r4, r4, r0 - ldrb r0, [r5, #0xa] - movs r1, #0x40 - bl sub_080B8CB8 - ldrh r0, [r4, #0x24] - ldrh r1, [r4, #0x20] - adds r0, r0, r1 - movs r1, #0 - strh r0, [r4, #0x20] - ldrh r0, [r4, #0x26] - ldrh r2, [r4, #0x22] - adds r0, r0, r2 - strh r0, [r4, #0x22] - strh r1, [r4, #0x24] - strh r1, [r4, #0x26] - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - strh r1, [r5, #0xc] -_080B9068: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B9070: .4byte gUnknown_2037230 -_080B9074: .4byte gUnknown_2036FF0 -_080B9078: .4byte gUnknown_20205AC - thumb_func_end sub_080B9010 - - thumb_func_start sub_080B907C -sub_080B907C: @ 0x080B907C - push {r4, lr} - sub sp, #0x24 - adds r4, r0, #0 - ldr r1, _080B90C4 - mov r0, sp - movs r2, #0x24 - bl memcpy - ldr r0, _080B90C8 - ldrb r0, [r0, #4] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _080B90CC - adds r1, r1, r0 - movs r2, #0xc - ldrsh r0, [r4, r2] - lsls r0, r0, #1 - add r0, sp - ldrh r0, [r0] - strh r0, [r1, #0x26] - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x11 - ble _080B90BA - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080B90BA: - add sp, #0x24 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B90C4: .4byte gUnknown_8537218 -_080B90C8: .4byte gUnknown_2037230 -_080B90CC: .4byte gUnknown_20205AC - thumb_func_end sub_080B907C - - thumb_func_start sub_080B90D0 -sub_080B90D0: @ 0x080B90D0 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldrb r0, [r6, #0xa] - bl sub_080B8C60 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B9134 - ldr r0, _080B913C - ldrb r0, [r0, #5] - lsls r5, r0, #3 - adds r5, r5, r0 - lsls r5, r5, #2 - ldr r0, _080B9140 - adds r5, r5, r0 - ldrb r0, [r5, #4] - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _080B9144 - adds r4, r4, r0 - ldrb r1, [r5, #1] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r5, #1] - movs r0, #0x10 - ldrsh r1, [r5, r0] - movs r0, #0x12 - ldrsh r2, [r5, r0] - adds r0, r5, #0 - bl MoveEventObjectToMapCoords - movs r0, #0 - strh r0, [r4, #0x24] - strh r0, [r4, #0x26] - adds r4, #0x3e - ldrb r0, [r4] - movs r1, #2 - orrs r0, r1 - strb r0, [r4] - bl sub_0808BA78 - adds r0, r5, #0 - movs r1, #0x39 - bl EventObjectSetHeldMovement - ldrh r0, [r6, #8] - adds r0, #1 - strh r0, [r6, #8] -_080B9134: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080B913C: .4byte gUnknown_2037230 -_080B9140: .4byte gUnknown_2036FF0 -_080B9144: .4byte gUnknown_20205AC - thumb_func_end sub_080B90D0 - - thumb_func_start sub_080B9148 -sub_080B9148: @ 0x080B9148 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080B9178 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B917C - adds r0, r0, r1 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B9170 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - ldrb r0, [r4, #0xa] - bl sub_080B8EEC -_080B9170: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B9178: .4byte gUnknown_2037230 -_080B917C: .4byte gUnknown_2036FF0 - thumb_func_end sub_080B9148 - - thumb_func_start sub_080B9180 -sub_080B9180: @ 0x080B9180 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - bl sub_080B8C60 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080B91AC - movs r0, #0xa - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B91B4 - adds r0, r0, r1 - bl DestroySprite - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0x10 - strh r0, [r4, #0xa] -_080B91AC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B91B4: .4byte gUnknown_20205AC - thumb_func_end sub_080B9180 - - thumb_func_start sub_080B91B8 -sub_080B91B8: @ 0x080B91B8 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldrh r0, [r5, #0xa] - subs r0, #1 - strh r0, [r5, #0xa] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080B9222 - ldr r6, _080B9228 - ldrb r1, [r6, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B922C - adds r4, r0, r1 - movs r7, #0 - ldrh r1, [r5, #0x26] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080B91EC - movs r7, #3 - ldrb r0, [r4, #0x1a] - movs r1, #1 - bl sub_081554E8 -_080B91EC: - adds r0, r7, #0 - bl GetPlayerAvatarGraphicsIdByStateId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetGraphicsId - adds r0, r4, #0 - movs r1, #1 - bl EventObjectTurn - ldrh r0, [r5, #0x26] - strb r0, [r6] - movs r0, #0 - strb r0, [r6, #6] - movs r0, #0x20 - bl FieldEffectActiveListRemove - ldr r0, _080B9230 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_080B9222: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080B9228: .4byte gUnknown_2037230 -_080B922C: .4byte gUnknown_2036FF0 -_080B9230: .4byte sub_080B8F2C - thumb_func_end sub_080B91B8 - - thumb_func_start sub_080B9234 -sub_080B9234: @ 0x080B9234 - push {r4, lr} - sub sp, #4 - ldr r4, _080B9278 - ldrb r0, [r4] - ldrb r1, [r4, #4] - ldrb r2, [r4, #8] - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B9284 - ldr r0, _080B927C - movs r1, #0x50 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080B9280 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - mov r0, sp - ldrb r0, [r0] - strh r0, [r1, #0xc] - ldr r0, [r4] - strh r0, [r1, #0x14] - ldr r0, [r4, #4] - strh r0, [r1, #0x16] - ldr r0, [r4, #8] - strh r0, [r1, #0x18] - b _080B928A - .align 2, 0 -_080B9278: .4byte gUnknown_20388A8 -_080B927C: .4byte sub_080B9340 -_080B9280: .4byte gUnknown_3005B60 -_080B9284: - movs r0, #0x41 - bl FieldEffectActiveListRemove -_080B928A: - movs r0, #0 - add sp, #4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_080B9234 - - thumb_func_start sub_080B9294 -sub_080B9294: @ 0x080B9294 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080B92CC - adds r4, r0, r1 - movs r1, #0xe - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _080B92D0 - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x14 - ble _080B92D4 - movs r0, #0 - strh r0, [r4, #0xc] - ldrh r1, [r4, #0xa] - movs r2, #0xa - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _080B92D4 - subs r0, r1, #1 - b _080B92D2 - .align 2, 0 -_080B92CC: .4byte gUnknown_3005B68 -_080B92D0: - movs r0, #4 -_080B92D2: - strh r0, [r4, #0xa] -_080B92D4: - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _080B930E - movs r0, #0 - strh r0, [r4] - ldrh r0, [r4, #2] - adds r0, #1 - strh r0, [r4, #2] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _080B9304 - ldrh r1, [r4, #0xa] - rsbs r1, r1, #0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #0 - bl SetCameraPanning - b _080B930E -_080B9304: - movs r0, #0xa - ldrsh r1, [r4, r0] - movs r0, #0 - bl SetCameraPanning -_080B930E: - bl UpdateCameraPanning - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080B9320 - adds r0, r5, #0 - bl DestroyTask -_080B9320: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080B9294 - - thumb_func_start sub_080B9328 -sub_080B9328: @ 0x080B9328 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080B933C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r0, #1 - strh r0, [r1, #0x16] - bx lr - .align 2, 0 -_080B933C: .4byte gUnknown_3005B60 - thumb_func_end sub_080B9328 - - thumb_func_start sub_080B9340 -sub_080B9340: @ 0x080B9340 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - ldr r0, _080B9378 - adds r4, r4, r0 - bl InstallCameraPanAheadCallback - movs r0, #0 - bl sub_08089C24 - ldr r1, _080B937C - movs r2, #2 - ldrsh r0, [r4, r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r2, [r0] - adds r0, r4, #0 - adds r1, r5, #0 - bl _call_via_r2 - thumb_func_end sub_080B9340 - - thumb_func_start sub_080B9370 -sub_080B9370: @ 0x080B9370 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B9378: .4byte gUnknown_3005B68 -_080B937C: .4byte gUnknown_853723C - thumb_func_end sub_080B9370 - - thumb_func_start sub_080B9380 -sub_080B9380: @ 0x080B9380 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _080B93A8 - movs r1, #0x5a - bl CreateTask - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0x58 - bl sub_080A306C - strh r4, [r5, #0xa] - ldrh r0, [r5, #2] - adds r0, #1 - strh r0, [r5, #2] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B93A8: .4byte sub_080B9294 - thumb_func_end sub_080B9380 - - thumb_func_start SpawnLinkPlayerEventObject -SpawnLinkPlayerEventObject: @ 0x080B93AC - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r7, r0, #0 - ldrh r0, [r7, #6] - adds r0, #1 - strh r0, [r7, #6] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x78 - ble _080B941A - ldr r2, _080B9424 - movs r1, #4 - ldrsh r0, [r7, r1] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r0, [r1, #4] - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _080B9428 - adds r4, r4, r0 - ldrb r0, [r1, #1] - movs r2, #0x20 - orrs r0, r2 - strb r0, [r1, #1] - ldr r6, _080B942C - ldr r5, _080B9430 - adds r0, r6, #0 - movs r1, #0x10 - adds r2, r5, #0 - bl BlendPalettes - str r5, [sp] - adds r0, r6, #0 - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - adds r0, r4, #0 - bl sub_080B947C - movs r0, #0x57 - bl sub_080A306C - ldrb r0, [r7, #0xa] - bl sub_080B9328 - movs r0, #0 - strh r0, [r7, #6] - ldrh r0, [r7, #2] - adds r0, #1 - strh r0, [r7, #2] -_080B941A: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080B9424: .4byte gUnknown_2036FF0 -_080B9428: .4byte gUnknown_20205AC -_080B942C: .4byte 0x0000FFFF -_080B9430: .4byte 0x00007FFF - thumb_func_end SpawnLinkPlayerEventObject - - thumb_func_start sub_080B9434 -sub_080B9434: @ 0x080B9434 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - ldr r0, _080B9474 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080B946E - ldr r0, _080B9478 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B946E - bl InstallCameraPanAheadCallback - ldrb r0, [r4, #0xc] - ldrb r1, [r4, #0xe] - ldrb r2, [r4, #0x10] - bl RemoveEventObjectByLocalIdAndMap - movs r0, #0x41 - bl FieldEffectActiveListRemove - adds r0, r5, #0 - bl DestroyTask -_080B946E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080B9474: .4byte gUnknown_2037C74 -_080B9478: .4byte sub_080B9294 - thumb_func_end sub_080B9434 - - thumb_func_start sub_080B947C -sub_080B947C: @ 0x080B947C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - ldr r0, _080B9500 - movs r1, #0 - ldrsh r2, [r0, r1] - movs r3, #0x20 - ldrsh r0, [r6, r3] - adds r2, r2, r0 - movs r1, #0x24 - ldrsh r0, [r6, r1] - adds r2, r2, r0 - ldr r0, _080B9504 - movs r3, #0 - ldrsh r0, [r0, r3] - movs r3, #0x22 - ldrsh r1, [r6, r3] - adds r0, r0, r1 - movs r3, #0x26 - ldrsh r1, [r6, r3] - adds r0, r0, r1 - subs r0, #4 - movs r5, #0 - lsls r2, r2, #0x10 - mov r8, r2 - lsls r7, r0, #0x10 -_080B94B2: - ldr r0, _080B9508 - mov r2, r8 - asrs r1, r2, #0x10 - asrs r2, r7, #0x10 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _080B94EE - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _080B950C - adds r4, r4, r0 - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim - strh r5, [r4, #0x2e] - ldrb r1, [r6, #5] - lsrs r1, r1, #4 - lsls r1, r1, #4 - ldrb r2, [r4, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #5] -_080B94EE: - adds r5, #1 - cmp r5, #3 - ble _080B94B2 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080B9500: .4byte gUnknown_3005B4C -_080B9504: .4byte gUnknown_3005B48 -_080B9508: .4byte gUnknown_8537298 -_080B950C: .4byte gUnknown_20205AC - thumb_func_end sub_080B947C - - thumb_func_start sub_080B9510 -sub_080B9510: @ 0x080B9510 - push {lr} - adds r1, r0, #0 - movs r2, #0x2e - ldrsh r0, [r1, r2] - cmp r0, #1 - beq _080B953C - cmp r0, #1 - bgt _080B9526 - cmp r0, #0 - beq _080B9530 - b _080B955A -_080B9526: - cmp r0, #2 - beq _080B9548 - cmp r0, #3 - beq _080B954E - b _080B955A -_080B9530: - ldrh r0, [r1, #0x20] - subs r0, #0x10 - strh r0, [r1, #0x20] - ldrh r0, [r1, #0x22] - subs r0, #0xc - b _080B9558 -_080B953C: - ldrh r0, [r1, #0x20] - adds r0, #0x10 - strh r0, [r1, #0x20] - ldrh r0, [r1, #0x22] - subs r0, #0xc - b _080B9558 -_080B9548: - ldrh r0, [r1, #0x20] - subs r0, #0x10 - b _080B9552 -_080B954E: - ldrh r0, [r1, #0x20] - adds r0, #0x10 -_080B9552: - strh r0, [r1, #0x20] - ldrh r0, [r1, #0x22] - adds r0, #0xc -_080B9558: - strh r0, [r1, #0x22] -_080B955A: - ldrh r0, [r1, #0x20] - adds r0, #4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xf8 - bhi _080B9576 - movs r0, #0x22 - ldrsh r2, [r1, r0] - movs r0, #4 - rsbs r0, r0, #0 - cmp r2, r0 - blt _080B9576 - cmp r2, #0xa4 - ble _080B957C -_080B9576: - adds r0, r1, #0 - bl DestroySprite -_080B957C: - pop {r0} - bx r0 - thumb_func_end sub_080B9510 - - thumb_func_start Fldeff_MoveDeoxysRock -Fldeff_MoveDeoxysRock: @ 0x080B9580 - push {r4, r5, r6, r7, lr} - sub sp, #4 - ldr r7, _080B9620 - ldrb r0, [r7] - ldrb r1, [r7, #4] - ldrb r2, [r7, #8] - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080B9616 - mov r0, sp - ldrb r0, [r0] - lsls r4, r0, #3 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _080B9624 - adds r4, r4, r0 - movs r0, #0x10 - ldrsh r5, [r4, r0] - subs r5, #7 - movs r0, #0x12 - ldrsh r6, [r4, r0] - subs r6, #7 - ldr r1, [r7, #0xc] - subs r5, r1, r5 - lsls r5, r5, #4 - ldr r2, [r7, #0x10] - subs r6, r2, r6 - lsls r6, r6, #4 - adds r1, #7 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r2, #7 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r0, r4, #0 - bl ShiftEventObjectCoords - ldr r0, _080B9628 - movs r1, #0x50 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080B962C - lsls r2, r0, #2 - adds r2, r2, r0 - lsls r2, r2, #3 - adds r2, r2, r1 - ldrb r0, [r4, #4] - strh r0, [r2, #0xa] - ldr r3, _080B9630 - ldrb r1, [r4, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r0, [r0, #0x20] - adds r0, r0, r5 - strh r0, [r2, #0xc] - ldrb r1, [r4, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r0, [r0, #0x22] - adds r0, r0, r6 - strh r0, [r2, #0xe] - ldr r0, [r7, #0x14] - strh r0, [r2, #0x18] - mov r0, sp - ldrb r0, [r0] - strh r0, [r2, #0x1a] -_080B9616: - movs r0, #0 - add sp, #4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080B9620: .4byte gUnknown_20388A8 -_080B9624: .4byte gUnknown_2036FF0 -_080B9628: .4byte Fldeff_MoveDeoxysRock_Step -_080B962C: .4byte gUnknown_3005B60 -_080B9630: .4byte gUnknown_20205AC - thumb_func_end Fldeff_MoveDeoxysRock - - thumb_func_start Fldeff_MoveDeoxysRock_Step -Fldeff_MoveDeoxysRock_Step: @ 0x080B9634 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - ldr r1, _080B9660 - adds r5, r0, r1 - movs r0, #2 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080B9664 - adds r6, r0, r1 - movs r1, #0 - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _080B9668 - cmp r0, #1 - beq _080B96A6 - b _080B9704 - .align 2, 0 -_080B9660: .4byte gUnknown_3005B68 -_080B9664: .4byte gUnknown_20205AC -_080B9668: - ldrh r0, [r6, #0x20] - lsls r0, r0, #4 - strh r0, [r5, #8] - ldrh r0, [r6, #0x22] - lsls r0, r0, #4 - strh r0, [r5, #0xa] - movs r2, #4 - ldrsh r0, [r5, r2] - lsls r0, r0, #4 - movs r2, #8 - ldrsh r1, [r5, r2] - subs r0, r0, r1 - movs r2, #0x10 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r5, #0xc] - movs r1, #6 - ldrsh r0, [r5, r1] - lsls r0, r0, #4 - movs r2, #0xa - ldrsh r1, [r5, r2] - subs r0, r0, r1 - movs r2, #0x10 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r5, #0xe] - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] -_080B96A6: - ldrh r1, [r5, #0x10] - movs r2, #0x10 - ldrsh r0, [r5, r2] - cmp r0, #0 - beq _080B96D4 - subs r0, r1, #1 - strh r0, [r5, #0x10] - ldrh r1, [r5, #0xc] - ldrh r0, [r5, #8] - adds r1, r1, r0 - strh r1, [r5, #8] - ldrh r0, [r5, #0xe] - ldrh r2, [r5, #0xa] - adds r0, r0, r2 - strh r0, [r5, #0xa] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - strh r1, [r6, #0x20] - ldrh r0, [r5, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - strh r0, [r6, #0x22] - b _080B9704 -_080B96D4: - movs r1, #0x12 - ldrsh r0, [r5, r1] - lsls r4, r0, #3 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _080B970C - adds r4, r4, r0 - ldrh r0, [r5, #4] - strh r0, [r6, #0x20] - ldrh r0, [r5, #6] - strh r0, [r6, #0x22] - adds r0, r4, #0 - bl ShiftStillEventObjectCoords - ldrb r0, [r4] - movs r1, #8 - orrs r0, r1 - strb r0, [r4] - movs r0, #0x42 - bl FieldEffectActiveListRemove - adds r0, r7, #0 - bl DestroyTask -_080B9704: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080B970C: .4byte gUnknown_2036FF0 - thumb_func_end Fldeff_MoveDeoxysRock_Step - - thumb_func_start ScanlineEffect_Stop -ScanlineEffect_Stop: @ 0x080B9710 - push {r4, lr} - ldr r4, _080B9740 - movs r0, #0 - strb r0, [r4, #0x15] - ldr r1, _080B9744 - ldrh r2, [r1, #0xa] - ldr r0, _080B9748 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r2, [r1, #0xa] - ldr r0, _080B974C - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - ldrb r0, [r4, #0x18] - cmp r0, #0xff - beq _080B973A - bl DestroyTask - movs r0, #0xff - strb r0, [r4, #0x18] -_080B973A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B9740: .4byte gUnknown_20397C8 -_080B9744: .4byte 0x040000B0 -_080B9748: .4byte 0x0000C5FF -_080B974C: .4byte 0x00007FFF - thumb_func_end ScanlineEffect_Stop - - thumb_func_start ScanlineEffect_Clear -ScanlineEffect_Clear: @ 0x080B9750 - push {r4, lr} - sub sp, #4 - mov r0, sp - movs r4, #0 - strh r4, [r0] - ldr r1, _080B9784 - ldr r2, _080B9788 - bl CpuSet - ldr r0, _080B978C - movs r1, #0 - str r1, [r0] - str r1, [r0, #4] - str r1, [r0, #8] - str r1, [r0, #0xc] - strb r4, [r0, #0x14] - strb r4, [r0, #0x15] - strb r4, [r0, #0x16] - strb r4, [r0, #0x17] - movs r1, #0xff - strb r1, [r0, #0x18] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B9784: .4byte gUnknown_20388C8 -_080B9788: .4byte 0x01000780 -_080B978C: .4byte gUnknown_20397C8 - thumb_func_end ScanlineEffect_Clear - - thumb_func_start ScanlineEffect_SetParams -ScanlineEffect_SetParams: @ 0x080B9790 - push {lr} - sub sp, #0xc - str r0, [sp] - str r1, [sp, #4] - str r2, [sp, #8] - ldr r0, _080B97B4 - cmp r1, r0 - bne _080B97C4 - ldr r0, _080B97B8 - ldr r1, _080B97BC - str r1, [r0] - movs r2, #0xf0 - lsls r2, r2, #3 - adds r1, r1, r2 - str r1, [r0, #4] - ldr r1, _080B97C0 - b _080B97D4 - .align 2, 0 -_080B97B4: .4byte 0xA2600001 -_080B97B8: .4byte gUnknown_20397C8 -_080B97BC: .4byte gUnknown_20388CA -_080B97C0: .4byte CopyValue16Bit -_080B97C4: - ldr r0, _080B97F4 - ldr r1, _080B97F8 - str r1, [r0] - movs r2, #0xf0 - lsls r2, r2, #3 - adds r1, r1, r2 - str r1, [r0, #4] - ldr r1, _080B97FC -_080B97D4: - str r1, [r0, #0x10] - adds r1, r0, #0 - ldr r0, [sp, #4] - str r0, [r1, #0xc] - ldr r0, [sp] - str r0, [r1, #8] - mov r0, sp - ldrb r0, [r0, #8] - strb r0, [r1, #0x15] - mov r0, sp - ldrb r0, [r0, #9] - strb r0, [r1, #0x16] - strb r0, [r1, #0x17] - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_080B97F4: .4byte gUnknown_20397C8 -_080B97F8: .4byte gUnknown_20388CC -_080B97FC: .4byte CopyValue32Bit - thumb_func_end ScanlineEffect_SetParams - - thumb_func_start ScanlineEffect_InitHBlankDmaTransfer -ScanlineEffect_InitHBlankDmaTransfer: @ 0x080B9800 - push {r4, lr} - ldr r4, _080B9830 - ldrb r0, [r4, #0x15] - cmp r0, #0 - beq _080B987A - cmp r0, #3 - bne _080B9844 - movs r0, #0 - strb r0, [r4, #0x15] - ldr r1, _080B9834 - ldrh r2, [r1, #0xa] - ldr r0, _080B9838 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r2, [r1, #0xa] - ldr r0, _080B983C - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - ldr r1, _080B9840 - movs r0, #1 - strb r0, [r1] - b _080B987A - .align 2, 0 -_080B9830: .4byte gUnknown_20397C8 -_080B9834: .4byte 0x040000B0 -_080B9838: .4byte 0x0000C5FF -_080B983C: .4byte 0x00007FFF -_080B9840: .4byte gUnknown_20397E4 -_080B9844: - ldr r1, _080B9880 - ldrh r2, [r1, #0xa] - ldr r0, _080B9884 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r2, [r1, #0xa] - ldr r0, _080B9888 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r0, [r0] - str r0, [r1] - ldr r0, [r4, #8] - str r0, [r1, #4] - ldr r0, [r4, #0xc] - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r0, [r4, #0x10] - bl _call_via_r0 - ldrb r0, [r4, #0x14] - movs r1, #1 - eors r0, r1 - strb r0, [r4, #0x14] -_080B987A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B9880: .4byte 0x040000B0 -_080B9884: .4byte 0x0000C5FF -_080B9888: .4byte 0x00007FFF - thumb_func_end ScanlineEffect_InitHBlankDmaTransfer - - thumb_func_start CopyValue16Bit -CopyValue16Bit: @ 0x080B988C - ldr r0, _080B98A4 - ldr r2, [r0, #8] - ldrb r1, [r0, #0x14] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #7 - ldr r1, _080B98A8 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2] - bx lr - .align 2, 0 -_080B98A4: .4byte gUnknown_20397C8 -_080B98A8: .4byte gUnknown_20388C8 - thumb_func_end CopyValue16Bit - - thumb_func_start CopyValue32Bit -CopyValue32Bit: @ 0x080B98AC - ldr r0, _080B98C4 - ldr r2, [r0, #8] - ldrb r1, [r0, #0x14] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #7 - ldr r1, _080B98C8 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r2] - bx lr - .align 2, 0 -_080B98C4: .4byte gUnknown_20397C8 -_080B98C8: .4byte gUnknown_20388C8 - thumb_func_end CopyValue32Bit - - thumb_func_start TaskFunc_UpdateWavePerFrame -TaskFunc_UpdateWavePerFrame: @ 0x080B98CC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov ip, r0 - movs r6, #0 - ldr r0, _080B98F4 - ldrb r0, [r0] - cmp r0, #0 - beq _080B98FC - mov r0, ip - bl DestroyTask - ldr r1, _080B98F8 - movs r0, #0xff - strb r0, [r1, #0x18] - b _080B9A7C - .align 2, 0 -_080B98F4: .4byte gUnknown_20397E4 -_080B98F8: .4byte gUnknown_20397C8 -_080B98FC: - ldr r1, _080B9928 - mov r0, ip - lsls r2, r0, #2 - adds r0, r2, r0 - lsls r0, r0, #3 - adds r3, r0, r1 - movs r4, #0x16 - ldrsh r0, [r3, r4] - mov sl, r1 - mov sb, r2 - cmp r0, #0 - beq _080B99A8 - movs r1, #0x14 - ldrsh r0, [r3, r1] - cmp r0, #0xe - bhi _080B99A8 - lsls r0, r0, #2 - ldr r1, _080B992C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B9928: .4byte gUnknown_3005B60 -_080B992C: .4byte _080B9930 -_080B9930: @ jump table - .4byte _080B996C @ case 0 - .4byte _080B99A8 @ case 1 - .4byte _080B9974 @ case 2 - .4byte _080B99A8 @ case 3 - .4byte _080B997C @ case 4 - .4byte _080B99A8 @ case 5 - .4byte _080B9984 @ case 6 - .4byte _080B99A8 @ case 7 - .4byte _080B998C @ case 8 - .4byte _080B99A8 @ case 9 - .4byte _080B9994 @ case 10 - .4byte _080B99A8 @ case 11 - .4byte _080B999C @ case 12 - .4byte _080B99A8 @ case 13 - .4byte _080B99A4 @ case 14 -_080B996C: - ldr r0, _080B9970 - b _080B99A6 - .align 2, 0 -_080B9970: .4byte gUnknown_2022AC8 -_080B9974: - ldr r0, _080B9978 - b _080B99A6 - .align 2, 0 -_080B9978: .4byte gUnknown_2022ACA -_080B997C: - ldr r0, _080B9980 - b _080B99A6 - .align 2, 0 -_080B9980: .4byte gUnknown_2022ACC -_080B9984: - ldr r0, _080B9988 - b _080B99A6 - .align 2, 0 -_080B9988: .4byte gUnknown_2022ACE -_080B998C: - ldr r0, _080B9990 - b _080B99A6 - .align 2, 0 -_080B9990: .4byte gUnknown_2022AD0 -_080B9994: - ldr r0, _080B9998 - b _080B99A6 - .align 2, 0 -_080B9998: .4byte gUnknown_2022AD2 -_080B999C: - ldr r0, _080B99A0 - b _080B99A6 - .align 2, 0 -_080B99A0: .4byte gUnknown_2022AD4 -_080B99A4: - ldr r0, _080B9A08 -_080B99A6: - ldrh r6, [r0] -_080B99A8: - mov r0, sb - add r0, ip - lsls r0, r0, #3 - mov r2, sl - adds r1, r0, r2 - ldrh r2, [r1, #0x10] - movs r3, #0x10 - ldrsh r0, [r1, r3] - cmp r0, #0 - beq _080B9A14 - subs r0, r2, #1 - strh r0, [r1, #0x10] - movs r4, #0xe - ldrsh r0, [r1, r4] - movs r3, #0xa0 - lsls r3, r3, #1 - adds r2, r0, r3 - movs r4, #8 - ldrsh r3, [r1, r4] - movs r4, #0xa - ldrsh r0, [r1, r4] - cmp r3, r0 - bge _080B9A7C - ldr r5, _080B9A0C - ldr r0, _080B9A10 - mov r8, r0 - adds r7, r1, #0 - lsls r0, r2, #1 - adds r4, r0, r5 -_080B99E2: - lsls r2, r3, #1 - mov r0, r8 - ldrb r1, [r0, #0x14] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #7 - adds r2, r2, r0 - adds r2, r2, r5 - ldrh r0, [r4] - adds r0, r0, r6 - strh r0, [r2] - adds r4, #2 - adds r3, #1 - movs r1, #0xa - ldrsh r0, [r7, r1] - cmp r3, r0 - blt _080B99E2 - b _080B9A7C - .align 2, 0 -_080B9A08: .4byte gUnknown_2022AD6 -_080B9A0C: .4byte gUnknown_20388C8 -_080B9A10: .4byte gUnknown_20397C8 -_080B9A14: - ldrh r0, [r1, #0x12] - strh r0, [r1, #0x10] - movs r2, #0xe - ldrsh r0, [r1, r2] - movs r3, #0xa0 - lsls r3, r3, #1 - adds r2, r0, r3 - movs r4, #8 - ldrsh r3, [r1, r4] - movs r4, #0xa - ldrsh r0, [r1, r4] - cmp r3, r0 - bge _080B9A5C - ldr r5, _080B9A8C - adds r7, r1, #0 - lsls r0, r2, #1 - adds r4, r0, r5 - ldr r0, _080B9A90 - mov r8, r0 -_080B9A3A: - lsls r2, r3, #1 - mov r0, r8 - ldrb r1, [r0, #0x14] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #7 - adds r2, r2, r0 - adds r2, r2, r5 - ldrh r0, [r4] - adds r0, r0, r6 - strh r0, [r2] - adds r4, #2 - adds r3, #1 - movs r1, #0xa - ldrsh r0, [r7, r1] - cmp r3, r0 - blt _080B9A3A -_080B9A5C: - mov r0, sb - add r0, ip - lsls r0, r0, #3 - mov r3, sl - adds r2, r0, r3 - ldrh r0, [r2, #0xe] - adds r0, #1 - strh r0, [r2, #0xe] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r4, #0xc - ldrsh r1, [r2, r4] - cmp r0, r1 - bne _080B9A7C - movs r0, #0 - strh r0, [r2, #0xe] -_080B9A7C: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080B9A8C: .4byte gUnknown_20388C8 -_080B9A90: .4byte gUnknown_20397C8 - thumb_func_end TaskFunc_UpdateWavePerFrame - - thumb_func_start GenerateWave -GenerateWave: @ 0x080B9A94 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r4, r2, #0x18 - movs r1, #0 - movs r2, #0 - ldr r0, _080B9AD8 - mov ip, r0 -_080B9AA8: - lsls r0, r1, #1 - adds r3, r0, r6 - lsls r0, r2, #1 - add r0, ip - movs r7, #0 - ldrsh r0, [r0, r7] - muls r0, r4, r0 - cmp r0, #0 - bge _080B9ABC - adds r0, #0xff -_080B9ABC: - asrs r0, r0, #8 - strh r0, [r3] - adds r0, r2, r5 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0xff - bls _080B9AA8 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080B9AD8: .4byte gUnknown_82FA8CC - thumb_func_end GenerateWave - - thumb_func_start ScanlineEffect_InitWave -ScanlineEffect_InitWave: @ 0x080B9ADC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - adds r5, r0, #0 - str r1, [sp, #0x10] - ldr r0, [sp, #0x40] - mov r8, r0 - ldr r1, [sp, #0x44] - mov sb, r1 - ldr r0, [sp, #0x48] - mov sl, r0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r1, [sp, #0x10] - lsls r1, r1, #0x18 - str r1, [sp, #0x14] - lsrs r0, r1, #0x18 - str r0, [sp, #0xc] - lsls r1, r2, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp, #0x18] - lsls r2, r3, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x1c] - mov r1, r8 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - mov r3, sb - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov sb, r3 - mov r0, sl - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - bl ScanlineEffect_Clear - ldr r0, _080B9BE8 - add r0, sb - str r0, [sp] - ldr r0, _080B9BEC - str r0, [sp, #4] - mov r1, sp - movs r0, #1 - strb r0, [r1, #8] - mov r0, sp - movs r1, #0 - strb r1, [r0, #9] - ldr r0, [sp] - ldr r1, [sp, #4] - ldr r2, [sp, #8] - bl ScanlineEffect_SetParams - ldr r0, _080B9BF0 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _080B9BF4 - lsls r4, r7, #2 - adds r4, r4, r7 - lsls r4, r4, #3 - adds r4, r4, r0 - strh r5, [r4, #8] - mov r3, sp - ldrh r3, [r3, #0xc] - strh r3, [r4, #0xa] - movs r0, #0x80 - lsls r0, r0, #1 - ldr r1, [sp, #0x18] - bl __divsi3 - strh r0, [r4, #0xc] - movs r0, #0 - strh r0, [r4, #0xe] - mov r1, r8 - strh r1, [r4, #0x10] - strh r1, [r4, #0x12] - mov r3, sb - strh r3, [r4, #0x14] - mov r0, sl - strh r0, [r4, #0x16] - ldr r0, _080B9BF8 - strb r7, [r0, #0x18] - ldr r0, _080B9BFC - movs r1, #0 - strb r1, [r0] - ldr r4, _080B9C00 - ldr r3, [sp, #0xc] - subs r6, r3, r5 - lsls r3, r6, #0x18 - lsrs r3, r3, #0x18 - adds r0, r4, #0 - ldr r1, [sp, #0x18] - ldr r2, [sp, #0x1c] - bl GenerateWave - ldr r0, [sp, #0xc] - cmp r5, r0 - bge _080B9BD6 - ldr r1, _080B9C04 - adds r2, r4, r1 - lsls r1, r5, #1 - movs r3, #0xf0 - lsls r3, r3, #3 - adds r0, r1, r3 - adds r3, r0, r2 - adds r1, r1, r2 - adds r2, r4, #0 - adds r5, r6, #0 -_080B9BC2: - ldrh r0, [r2] - strh r0, [r1] - ldrh r0, [r2] - strh r0, [r3] - adds r2, #2 - adds r3, #2 - adds r1, #2 - subs r5, #1 - cmp r5, #0 - bne _080B9BC2 -_080B9BD6: - adds r0, r7, #0 - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080B9BE8: .4byte 0x04000010 -_080B9BEC: .4byte 0xA2600001 -_080B9BF0: .4byte TaskFunc_UpdateWavePerFrame -_080B9BF4: .4byte gUnknown_3005B60 -_080B9BF8: .4byte gUnknown_20397C8 -_080B9BFC: .4byte gUnknown_20397E4 -_080B9C00: .4byte gUnknown_2038B48 -_080B9C04: .4byte 0xFFFFFD80 - thumb_func_end ScanlineEffect_InitWave - - thumb_func_start sub_080B9C08 -sub_080B9C08: @ 0x080B9C08 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080B9C08 - - thumb_func_start sub_080B9C20 -sub_080B9C20: @ 0x080B9C20 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080B9C20 - - thumb_func_start CB2_InitOptionMenu -CB2_InitOptionMenu: @ 0x080B9C34 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - ldr r1, _080B9C58 - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, r1, #0 - cmp r0, #0xb - bhi _080B9C90 - lsls r0, r0, #2 - ldr r1, _080B9C5C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B9C58: .4byte gUnknown_3002360 -_080B9C5C: .4byte _080B9C60 -_080B9C60: @ jump table - .4byte _080B9C90 @ case 0 - .4byte _080B9CA4 @ case 1 - .4byte _080B9DF4 @ case 2 - .4byte _080B9E14 @ case 3 - .4byte _080B9E38 @ case 4 - .4byte _080B9E70 @ case 5 - .4byte _080B9E80 @ case 6 - .4byte _080B9E98 @ case 7 - .4byte _080B9EA0 @ case 8 - .4byte _080B9EB8 @ case 9 - .4byte _080B9ECC @ case 10 - .4byte _080B9F64 @ case 11 -_080B9C90: - movs r0, #0 - bl SetVBlankCallback - ldr r1, _080B9CA0 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _080B9F4C - .align 2, 0 -_080B9CA0: .4byte gUnknown_3002360 -_080B9CA4: - movs r3, #0xc0 - lsls r3, r3, #0x13 - movs r4, #0xc0 - lsls r4, r4, #9 - add r1, sp, #8 - mov r8, r1 - add r2, sp, #4 - movs r6, #0 - ldr r1, _080B9DE4 - movs r5, #0x80 - lsls r5, r5, #5 - ldr r7, _080B9DE8 - movs r0, #0x81 - lsls r0, r0, #0x18 - mov ip, r0 -_080B9CC2: - strh r6, [r2] - add r0, sp, #4 - str r0, [r1] - str r3, [r1, #4] - str r7, [r1, #8] - ldr r0, [r1, #8] - adds r3, r3, r5 - subs r4, r4, r5 - cmp r4, r5 - bhi _080B9CC2 - strh r6, [r2] - add r2, sp, #4 - str r2, [r1] - str r3, [r1, #4] - lsrs r0, r4, #1 - mov r2, ip - orrs r0, r2 - str r0, [r1, #8] - ldr r0, [r1, #8] - movs r0, #0xe0 - lsls r0, r0, #0x13 - movs r3, #0x80 - lsls r3, r3, #3 - movs r4, #0 - str r4, [sp, #8] - ldr r2, _080B9DE4 - mov r1, r8 - str r1, [r2] - str r0, [r2, #4] - lsrs r0, r3, #2 - movs r1, #0x85 - lsls r1, r1, #0x18 - orrs r0, r1 - str r0, [r2, #8] - ldr r0, [r2, #8] - movs r1, #0xa0 - lsls r1, r1, #0x13 - add r0, sp, #4 - strh r4, [r0] - str r0, [r2] - str r1, [r2, #4] - lsrs r3, r3, #1 - movs r0, #0x81 - lsls r0, r0, #0x18 - orrs r3, r0 - str r3, [r2, #8] - ldr r0, [r2, #8] - movs r0, #0 - movs r1, #0 - bl SetGpuReg - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _080B9DEC - movs r0, #0 - movs r2, #2 - bl InitBgsFromTemplates - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - ldr r0, _080B9DF0 - bl InitWindows - bl sub_08004480 - movs r0, #0x40 - movs r1, #0 - bl SetGpuReg - movs r0, #0x44 - movs r1, #0 - bl SetGpuReg - movs r0, #0x48 - movs r1, #1 - bl SetGpuReg - movs r0, #0x4a - movs r1, #0x23 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0xc1 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #4 - bl SetGpuReg - movs r1, #0xc1 - lsls r1, r1, #6 - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - b _080B9F44 - .align 2, 0 -_080B9DE4: .4byte 0x040000D4 -_080B9DE8: .4byte 0x81000800 -_080B9DEC: .4byte gUnknown_8537414 -_080B9DF0: .4byte gUnknown_85373FC -_080B9DF4: - bl ResetPaletteFade - bl ScanlineEffect_Stop - bl ResetTasks - bl ResetSpriteData - ldr r1, _080B9E10 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _080B9F4C - .align 2, 0 -_080B9E10: .4byte gUnknown_3002360 -_080B9E14: - ldr r0, _080B9E34 - ldr r0, [r0] - ldrb r0, [r0, #0x14] - lsrs r0, r0, #3 - bl GetWindowFrameTilesPal - ldr r1, [r0] - movs r2, #0x90 - lsls r2, r2, #1 - movs r3, #0xd1 - lsls r3, r3, #1 - movs r0, #1 - bl LoadBgTiles - b _080B9F44 - .align 2, 0 -_080B9E34: .4byte gUnknown_3005AF0 -_080B9E38: - ldr r0, _080B9E64 - movs r1, #0 - movs r2, #2 - bl LoadPalette - ldr r0, _080B9E68 - ldr r0, [r0] - ldrb r0, [r0, #0x14] - lsrs r0, r0, #3 - bl GetWindowFrameTilesPal - ldr r0, [r0, #4] - movs r1, #0x70 - movs r2, #0x20 - bl LoadPalette - ldr r1, _080B9E6C - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _080B9F4C - .align 2, 0 -_080B9E64: .4byte gUnknown_853741C -_080B9E68: .4byte gUnknown_3005AF0 -_080B9E6C: .4byte gUnknown_3002360 -_080B9E70: - ldr r0, _080B9E7C - movs r1, #0x10 - movs r2, #0x20 - bl LoadPalette - b _080B9F44 - .align 2, 0 -_080B9E7C: .4byte gUnknown_85372B0 -_080B9E80: - movs r0, #0 - bl PutWindowTilemap - bl DrawTextOption - ldr r1, _080B9E94 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _080B9F4C - .align 2, 0 -_080B9E94: .4byte gUnknown_3002360 -_080B9E98: - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r2, r0 - b _080B9F4C -_080B9EA0: - movs r0, #1 - bl PutWindowTilemap - bl sub_080BA834 - ldr r1, _080B9EC8 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_080B9EB8: - bl sub_080BA890 - ldr r1, _080B9EC8 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _080B9F4C - .align 2, 0 -_080B9EC8: .4byte gUnknown_3002360 -_080B9ECC: - ldr r0, _080B9F54 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080B9F58 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - adds r4, r4, r1 - movs r0, #0 - strh r0, [r4, #8] - ldr r0, _080B9F5C - ldr r2, [r0] - ldrb r0, [r2, #0x14] - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1d - strh r0, [r4, #0xa] - ldrb r1, [r2, #0x15] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1f - strh r1, [r4, #0xc] - ldrb r1, [r2, #0x15] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1f - strh r1, [r4, #0xe] - ldrb r1, [r2, #0x15] - lsls r1, r1, #0x1f - lsrs r1, r1, #0x1f - strh r1, [r4, #0x10] - ldrb r1, [r2, #0x13] - strh r1, [r4, #0x12] - ldrb r1, [r2, #0x14] - lsrs r1, r1, #3 - strh r1, [r4, #0x14] - bl sub_080BA390 - ldrb r0, [r4, #0xc] - bl sub_080BA40C - ldrb r0, [r4, #0xe] - bl sub_080BA490 - ldrb r0, [r4, #0x10] - bl sub_080BA51C - ldrb r0, [r4, #0x12] - bl sub_080BA780 - ldrb r0, [r4, #0x14] - bl sub_080BA634 - ldrb r0, [r4, #8] - bl HighlightOptionMenuItem - movs r0, #1 - movs r1, #3 - bl CopyWindowToVram -_080B9F44: - ldr r1, _080B9F60 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 -_080B9F4C: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080B9F80 - .align 2, 0 -_080B9F54: .4byte sub_080B9F94 -_080B9F58: .4byte gUnknown_3005B60 -_080B9F5C: .4byte gUnknown_3005AF0 -_080B9F60: .4byte gUnknown_3002360 -_080B9F64: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r0, _080B9F8C - bl SetVBlankCallback - ldr r0, _080B9F90 - bl SetMainCallback2 -_080B9F80: - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080B9F8C: .4byte sub_080B9C20 -_080B9F90: .4byte sub_080B9C08 - thumb_func_end CB2_InitOptionMenu - - thumb_func_start sub_080B9F94 -sub_080B9F94: @ 0x080B9F94 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _080B9FB8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080B9FB4 - ldr r0, _080B9FBC - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080B9FC0 - str r0, [r1] -_080B9FB4: - pop {r0} - bx r0 - .align 2, 0 -_080B9FB8: .4byte gUnknown_2037C74 -_080B9FBC: .4byte gUnknown_3005B60 -_080B9FC0: .4byte Task_OptionMenuProcessInput - thumb_func_end sub_080B9F94 - - thumb_func_start Task_OptionMenuProcessInput -Task_OptionMenuProcessInput: @ 0x080B9FC4 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080B9FEC - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080B9FF4 - ldr r0, _080B9FF0 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r2, #8 - ldrsh r0, [r1, r2] - cmp r0, #6 - beq _080B9FEA - b _080BA1B2 -_080B9FEA: - b _080BA006 - .align 2, 0 -_080B9FEC: .4byte gUnknown_3002360 -_080B9FF0: .4byte gUnknown_3005B60 -_080B9FF4: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080BA014 - ldr r0, _080BA00C - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 -_080BA006: - ldr r0, _080BA010 - str r0, [r1] - b _080BA1B2 - .align 2, 0 -_080BA00C: .4byte gUnknown_3005B60 -_080BA010: .4byte Task_OptionMenuSave -_080BA014: - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0 - beq _080BA044 - ldr r1, _080BA03C - lsls r2, r4, #2 - adds r0, r2, r4 - lsls r0, r0, #3 - adds r3, r0, r1 - ldrh r5, [r3, #8] - movs r6, #8 - ldrsh r0, [r3, r6] - adds r7, r1, #0 - cmp r0, #0 - ble _080BA040 - subs r0, r5, #1 - b _080BA064 - .align 2, 0 -_080BA03C: .4byte gUnknown_3005B60 -_080BA040: - movs r0, #6 - b _080BA064 -_080BA044: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080BA07C - ldr r1, _080BA068 - lsls r2, r4, #2 - adds r0, r2, r4 - lsls r0, r0, #3 - adds r3, r0, r1 - ldrh r5, [r3, #8] - movs r7, #8 - ldrsh r0, [r3, r7] - adds r7, r1, #0 - cmp r0, #5 - bgt _080BA06C - adds r0, r5, #1 -_080BA064: - strh r0, [r3, #8] - b _080BA06E - .align 2, 0 -_080BA068: .4byte gUnknown_3005B60 -_080BA06C: - strh r6, [r3, #8] -_080BA06E: - adds r0, r2, r4 - lsls r0, r0, #3 - adds r0, r0, r7 - ldrb r0, [r0, #8] - bl HighlightOptionMenuItem - b _080BA1B2 -_080BA07C: - ldr r0, _080BA09C - lsls r2, r4, #2 - adds r1, r2, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r3, #8 - ldrsh r1, [r1, r3] - adds r7, r0, #0 - cmp r1, #5 - bls _080BA092 - b _080BA1B2 -_080BA092: - lsls r0, r1, #2 - ldr r1, _080BA0A0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BA09C: .4byte gUnknown_3005B60 -_080BA0A0: .4byte _080BA0A4 -_080BA0A4: @ jump table - .4byte _080BA0BC @ case 0 - .4byte _080BA0E2 @ case 1 - .4byte _080BA108 @ case 2 - .4byte _080BA12E @ case 3 - .4byte _080BA154 @ case 4 - .4byte _080BA17A @ case 5 -_080BA0BC: - adds r4, r2, r4 - lsls r4, r4, #3 - adds r4, r4, r7 - ldrb r5, [r4, #0xa] - adds r0, r5, #0 - bl sub_080BA334 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - strh r0, [r4, #0xa] - movs r6, #0xa - ldrsh r0, [r4, r6] - cmp r5, r0 - beq _080BA19E - adds r0, r1, #0 - bl sub_080BA390 - b _080BA19E -_080BA0E2: - adds r4, r2, r4 - lsls r4, r4, #3 - adds r4, r4, r7 - ldrb r5, [r4, #0xc] - adds r0, r5, #0 - bl sub_080BA3E4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - strh r0, [r4, #0xc] - movs r7, #0xc - ldrsh r0, [r4, r7] - cmp r5, r0 - beq _080BA19E - adds r0, r1, #0 - bl sub_080BA40C - b _080BA19E -_080BA108: - adds r4, r2, r4 - lsls r4, r4, #3 - adds r4, r4, r7 - ldrb r5, [r4, #0xe] - adds r0, r5, #0 - bl sub_080BA468 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - strh r0, [r4, #0xe] - movs r2, #0xe - ldrsh r0, [r4, r2] - cmp r5, r0 - beq _080BA19E - adds r0, r1, #0 - bl sub_080BA490 - b _080BA19E -_080BA12E: - adds r4, r2, r4 - lsls r4, r4, #3 - adds r4, r4, r7 - ldrb r5, [r4, #0x10] - adds r0, r5, #0 - bl Sound_ProcessInput - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - strh r0, [r4, #0x10] - movs r3, #0x10 - ldrsh r0, [r4, r3] - cmp r5, r0 - beq _080BA19E - adds r0, r1, #0 - bl sub_080BA51C - b _080BA19E -_080BA154: - adds r4, r2, r4 - lsls r4, r4, #3 - adds r4, r4, r7 - ldrb r5, [r4, #0x12] - adds r0, r5, #0 - bl sub_080BA724 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - strh r0, [r4, #0x12] - movs r6, #0x12 - ldrsh r0, [r4, r6] - cmp r5, r0 - beq _080BA19E - adds r0, r1, #0 - bl sub_080BA780 - b _080BA19E -_080BA17A: - adds r4, r2, r4 - lsls r4, r4, #3 - adds r4, r4, r7 - ldrb r5, [r4, #0x14] - adds r0, r5, #0 - bl FrameType_ProcessInput - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - strh r0, [r4, #0x14] - movs r7, #0x14 - ldrsh r0, [r4, r7] - cmp r5, r0 - beq _080BA19E - adds r0, r1, #0 - bl sub_080BA634 -_080BA19E: - ldr r1, _080BA1B8 - ldrb r0, [r1] - cmp r0, #0 - beq _080BA1B2 - movs r0, #0 - strb r0, [r1] - movs r0, #1 - movs r1, #2 - bl CopyWindowToVram -_080BA1B2: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080BA1B8: .4byte gUnknown_20397E8 - thumb_func_end Task_OptionMenuProcessInput - - thumb_func_start Task_OptionMenuSave -Task_OptionMenuSave: @ 0x080BA1BC - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r6, _080BA254 - ldr r3, [r6] - ldr r1, _080BA258 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - adds r4, r4, r1 - movs r0, #7 - ldrb r1, [r4, #0xa] - ands r1, r0 - ldrb r2, [r3, #0x14] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x14] - ldr r3, [r6] - movs r5, #1 - ldrb r1, [r4, #0xc] - ands r1, r5 - lsls r1, r1, #2 - ldrb r2, [r3, #0x15] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x15] - ldr r3, [r6] - ldrb r1, [r4, #0xe] - ands r1, r5 - lsls r1, r1, #1 - ldrb r2, [r3, #0x15] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x15] - ldr r3, [r6] - ldrb r1, [r4, #0x10] - ands r1, r5 - ldrb r2, [r3, #0x15] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x15] - ldr r1, [r6] - ldrh r0, [r4, #0x12] - movs r5, #0 - strb r0, [r1, #0x13] - ldr r3, [r6] - ldrb r1, [r4, #0x14] - lsls r1, r1, #3 - ldrb r2, [r3, #0x14] - movs r0, #7 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x14] - movs r0, #1 - rsbs r0, r0, #0 - str r5, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _080BA25C - str r0, [r4] - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080BA254: .4byte gUnknown_3005AF0 -_080BA258: .4byte gUnknown_3005B60 -_080BA25C: .4byte Task_OptionMenuFadeOut - thumb_func_end Task_OptionMenuSave - - thumb_func_start Task_OptionMenuFadeOut -Task_OptionMenuFadeOut: @ 0x080BA260 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _080BA288 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080BA284 - adds r0, r2, #0 - bl DestroyTask - bl FreeAllWindowBuffers - ldr r0, _080BA28C - ldr r0, [r0, #8] - bl SetMainCallback2 -_080BA284: - pop {r0} - bx r0 - .align 2, 0 -_080BA288: .4byte gUnknown_2037C74 -_080BA28C: .4byte gUnknown_3002360 - thumb_func_end Task_OptionMenuFadeOut - - thumb_func_start HighlightOptionMenuItem -HighlightOptionMenuItem: @ 0x080BA290 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r1, #0x87 - lsls r1, r1, #5 - movs r0, #0x40 - bl SetGpuReg - lsls r4, r4, #4 - adds r1, r4, #0 - adds r1, #0x28 - lsls r1, r1, #8 - adds r4, #0x38 - orrs r1, r4 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x44 - bl SetGpuReg - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end HighlightOptionMenuItem - - thumb_func_start DrawOptionMenuChoice -DrawOptionMenuChoice: @ 0x080BA2C0 - push {r4, r5, r6, lr} - sub sp, #0x1c - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r2, #0 - ldrb r1, [r4] - adds r0, r1, #0 - cmp r0, #0xff - beq _080BA2F8 -_080BA2DC: - mov r0, sp - adds r0, r0, r2 - adds r0, #0xc - strb r1, [r0] - adds r4, #1 - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldrb r1, [r4] - adds r0, r1, #0 - cmp r0, #0xff - beq _080BA2F8 - cmp r2, #0xe - bls _080BA2DC -_080BA2F8: - cmp r3, #0 - beq _080BA306 - add r1, sp, #0xc - movs r0, #4 - strb r0, [r1, #2] - movs r0, #5 - strb r0, [r1, #5] -_080BA306: - mov r1, sp - adds r1, r1, r2 - adds r1, #0xc - movs r0, #0xff - strb r0, [r1] - adds r0, r5, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - movs r0, #1 - movs r1, #1 - add r2, sp, #0xc - adds r3, r6, #0 - bl AddTextPrinterParameterized - add sp, #0x1c - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end DrawOptionMenuChoice - - thumb_func_start sub_080BA334 -sub_080BA334: @ 0x080BA334 - push {lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r2, _080BA354 - ldrh r1, [r2, #0x2e] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080BA360 - cmp r3, #1 - bhi _080BA358 - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - b _080BA35A - .align 2, 0 -_080BA354: .4byte gUnknown_3002360 -_080BA358: - movs r3, #0 -_080BA35A: - ldr r1, _080BA378 - movs r0, #1 - strb r0, [r1] -_080BA360: - ldrh r1, [r2, #0x2e] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080BA384 - cmp r3, #0 - beq _080BA37C - subs r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - b _080BA37E - .align 2, 0 -_080BA378: .4byte gUnknown_20397E8 -_080BA37C: - movs r3, #2 -_080BA37E: - ldr r1, _080BA38C - movs r0, #1 - strb r0, [r1] -_080BA384: - adds r0, r3, #0 - pop {r1} - bx r1 - .align 2, 0 -_080BA38C: .4byte gUnknown_20397E8 - thumb_func_end sub_080BA334 - - thumb_func_start sub_080BA390 -sub_080BA390: @ 0x080BA390 - push {lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, sp - movs r2, #0 - strb r2, [r1] - strb r2, [r1, #1] - strb r2, [r1, #2] - adds r1, r1, r0 - movs r0, #1 - strb r0, [r1] - ldr r0, _080BA3D8 - mov r1, sp - ldrb r3, [r1] - movs r1, #0x68 - bl DrawOptionMenuChoice - ldr r0, _080BA3DC - mov r1, sp - ldrb r3, [r1, #1] - movs r1, #0x88 - movs r2, #0 - bl DrawOptionMenuChoice - ldr r0, _080BA3E0 - mov r1, sp - ldrb r3, [r1, #2] - movs r1, #0xa8 - movs r2, #0 - bl DrawOptionMenuChoice - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_080BA3D8: .4byte gUnknown_853736C -_080BA3DC: .4byte gUnknown_8537376 -_080BA3E0: .4byte gUnknown_8537380 - thumb_func_end sub_080BA390 - - thumb_func_start sub_080BA3E4 -sub_080BA3E4: @ 0x080BA3E4 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _080BA404 - ldrh r1, [r0, #0x2e] - movs r0, #0x30 - ands r0, r1 - cmp r0, #0 - beq _080BA3FE - movs r1, #1 - eors r2, r1 - ldr r0, _080BA408 - strb r1, [r0] -_080BA3FE: - adds r0, r2, #0 - pop {r1} - bx r1 - .align 2, 0 -_080BA404: .4byte gUnknown_3002360 -_080BA408: .4byte gUnknown_20397E8 - thumb_func_end sub_080BA3E4 - - thumb_func_start sub_080BA40C -sub_080BA40C: @ 0x080BA40C - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, sp - movs r2, #0 - strb r2, [r1] - strb r2, [r1, #1] - adds r1, r1, r0 - movs r0, #1 - strb r0, [r1] - ldr r4, _080BA460 - movs r1, #1 - bl GetFontAttribute - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r0, sp - ldrb r3, [r0] - adds r0, r4, #0 - movs r1, #0x68 - bl DrawOptionMenuChoice - ldr r4, _080BA464 - movs r0, #1 - movs r1, #1 - bl GetFontAttribute - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r0, sp - ldrb r3, [r0, #1] - adds r0, r4, #0 - movs r1, #0xa8 - bl DrawOptionMenuChoice - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BA460: .4byte gUnknown_853738A -_080BA464: .4byte gUnknown_8537393 - thumb_func_end sub_080BA40C - - thumb_func_start sub_080BA468 -sub_080BA468: @ 0x080BA468 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _080BA488 - ldrh r1, [r0, #0x2e] - movs r0, #0x30 - ands r0, r1 - cmp r0, #0 - beq _080BA482 - movs r1, #1 - eors r2, r1 - ldr r0, _080BA48C - strb r1, [r0] -_080BA482: - adds r0, r2, #0 - pop {r1} - bx r1 - .align 2, 0 -_080BA488: .4byte gUnknown_3002360 -_080BA48C: .4byte gUnknown_20397E8 - thumb_func_end sub_080BA468 - - thumb_func_start sub_080BA490 -sub_080BA490: @ 0x080BA490 - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, sp - movs r2, #0 - strb r2, [r1] - strb r2, [r1, #1] - adds r1, r1, r0 - movs r0, #1 - strb r0, [r1] - ldr r4, _080BA4E4 - movs r1, #1 - bl GetFontAttribute - adds r2, r0, #0 - lsls r2, r2, #0x19 - lsrs r2, r2, #0x18 - mov r0, sp - ldrb r3, [r0] - adds r0, r4, #0 - movs r1, #0x68 - bl DrawOptionMenuChoice - ldr r4, _080BA4E8 - movs r0, #1 - movs r1, #1 - bl GetFontAttribute - adds r2, r0, #0 - lsls r2, r2, #0x19 - lsrs r2, r2, #0x18 - mov r0, sp - ldrb r3, [r0, #1] - adds r0, r4, #0 - movs r1, #0xa0 - bl DrawOptionMenuChoice - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BA4E4: .4byte gUnknown_853739D -_080BA4E8: .4byte gUnknown_85373A8 - thumb_func_end sub_080BA490 - - thumb_func_start Sound_ProcessInput -Sound_ProcessInput: @ 0x080BA4EC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _080BA514 - ldrh r1, [r0, #0x2e] - movs r0, #0x30 - ands r0, r1 - cmp r0, #0 - beq _080BA50C - movs r4, #1 - eors r5, r4 - adds r0, r5, #0 - bl SetPokemonCryStereo - ldr r0, _080BA518 - strb r4, [r0] -_080BA50C: - adds r0, r5, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080BA514: .4byte gUnknown_3002360 -_080BA518: .4byte gUnknown_20397E8 - thumb_func_end Sound_ProcessInput - - thumb_func_start sub_080BA51C -sub_080BA51C: @ 0x080BA51C - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, sp - movs r2, #0 - strb r2, [r1] - strb r2, [r1, #1] - adds r1, r1, r0 - movs r0, #1 - strb r0, [r1] - ldr r4, _080BA57C - movs r1, #1 - bl GetFontAttribute - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r0, #1 - adds r2, r2, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r0, sp - ldrb r3, [r0] - adds r0, r4, #0 - movs r1, #0x68 - bl DrawOptionMenuChoice - ldr r4, _080BA580 - movs r0, #1 - movs r1, #1 - bl GetFontAttribute - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r0, #1 - adds r2, r2, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r0, sp - ldrb r3, [r0, #1] - adds r0, r4, #0 - movs r1, #0xa0 - bl DrawOptionMenuChoice - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BA57C: .4byte gUnknown_85373B3 -_080BA580: .4byte gUnknown_85373BE - thumb_func_end sub_080BA51C - - thumb_func_start FrameType_ProcessInput -FrameType_ProcessInput: @ 0x080BA584 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080BA5A4 - ldrh r1, [r0, #0x2e] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080BA5D6 - cmp r4, #0x12 - bhi _080BA5A8 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - b _080BA5AA - .align 2, 0 -_080BA5A4: .4byte gUnknown_3002360 -_080BA5A8: - movs r4, #0 -_080BA5AA: - adds r0, r4, #0 - bl GetWindowFrameTilesPal - ldr r1, [r0] - movs r2, #0x90 - lsls r2, r2, #1 - movs r3, #0xd1 - lsls r3, r3, #1 - movs r0, #1 - bl LoadBgTiles - adds r0, r4, #0 - bl GetWindowFrameTilesPal - ldr r0, [r0, #4] - movs r1, #0x70 - movs r2, #0x20 - bl LoadPalette - ldr r1, _080BA5F0 - movs r0, #1 - strb r0, [r1] -_080BA5D6: - ldr r0, _080BA5F4 - ldrh r1, [r0, #0x2e] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080BA626 - cmp r4, #0 - beq _080BA5F8 - subs r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - b _080BA5FA - .align 2, 0 -_080BA5F0: .4byte gUnknown_20397E8 -_080BA5F4: .4byte gUnknown_3002360 -_080BA5F8: - movs r4, #0x13 -_080BA5FA: - adds r0, r4, #0 - bl GetWindowFrameTilesPal - ldr r1, [r0] - movs r2, #0x90 - lsls r2, r2, #1 - movs r3, #0xd1 - lsls r3, r3, #1 - movs r0, #1 - bl LoadBgTiles - adds r0, r4, #0 - bl GetWindowFrameTilesPal - ldr r0, [r0, #4] - movs r1, #0x70 - movs r2, #0x20 - bl LoadPalette - ldr r1, _080BA630 - movs r0, #1 - strb r0, [r1] -_080BA626: - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080BA630: .4byte gUnknown_20397E8 - thumb_func_end FrameType_ProcessInput - - thumb_func_start sub_080BA634 -sub_080BA634: @ 0x080BA634 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - lsls r0, r0, #0x18 - movs r1, #0x80 - lsls r1, r1, #0x11 - adds r0, r0, r1 - lsrs r7, r0, #0x18 - movs r5, #0 - ldr r1, _080BA6A8 - ldrb r0, [r1] - ldr r2, _080BA6AC - mov r8, r2 - cmp r0, #0xff - beq _080BA672 - adds r2, r1, #0 -_080BA656: - mov r0, sp - adds r1, r0, r5 - adds r0, r5, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r5, r2 - ldrb r0, [r0] - cmp r0, #0xff - beq _080BA672 - cmp r5, #5 - bls _080BA656 -_080BA672: - adds r0, r7, #0 - movs r1, #0xa - bl __udivsi3 - adds r2, r0, #0 - lsls r0, r2, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - beq _080BA6B0 - mov r0, sp - adds r1, r0, r5 - adds r0, r2, #0 - adds r0, #0xa1 - strb r0, [r1] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - mov r1, sp - adds r4, r1, r5 - adds r0, r7, #0 - movs r1, #0xa - bl __umodsi3 - adds r0, #0xa1 - strb r0, [r4] - b _080BA6CC - .align 2, 0 -_080BA6A8: .4byte gUnknown_85373D3 -_080BA6AC: .4byte gUnknown_85373C9 -_080BA6B0: - mov r2, sp - adds r4, r2, r5 - adds r0, r7, #0 - movs r1, #0xa - bl __umodsi3 - adds r0, #0xa1 - strb r0, [r4] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - mov r1, sp - adds r0, r1, r5 - strb r6, [r0] -_080BA6CC: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - mov r2, sp - adds r1, r2, r5 - movs r0, #0xff - strb r0, [r1] - movs r0, #1 - movs r1, #1 - bl GetFontAttribute - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r0, #2 - adds r2, r2, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r0, r8 - movs r1, #0x68 - movs r3, #0 - bl DrawOptionMenuChoice - movs r0, #1 - movs r1, #1 - bl GetFontAttribute - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r0, #2 - adds r2, r2, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r0, sp - movs r1, #0x80 - movs r3, #1 - bl DrawOptionMenuChoice - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080BA634 - - thumb_func_start sub_080BA724 -sub_080BA724: @ 0x080BA724 - push {lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r2, _080BA744 - ldrh r1, [r2, #0x2e] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080BA750 - cmp r3, #1 - bhi _080BA748 - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - b _080BA74A - .align 2, 0 -_080BA744: .4byte gUnknown_3002360 -_080BA748: - movs r3, #0 -_080BA74A: - ldr r1, _080BA768 - movs r0, #1 - strb r0, [r1] -_080BA750: - ldrh r1, [r2, #0x2e] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080BA774 - cmp r3, #0 - beq _080BA76C - subs r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - b _080BA76E - .align 2, 0 -_080BA768: .4byte gUnknown_20397E8 -_080BA76C: - movs r3, #2 -_080BA76E: - ldr r1, _080BA77C - movs r0, #1 - strb r0, [r1] -_080BA774: - adds r0, r3, #0 - pop {r1} - bx r1 - .align 2, 0 -_080BA77C: .4byte gUnknown_20397E8 - thumb_func_end sub_080BA724 - - thumb_func_start sub_080BA780 -sub_080BA780: @ 0x080BA780 - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, sp - movs r2, #0 - strb r2, [r1] - strb r2, [r1, #1] - strb r2, [r1, #2] - adds r1, r1, r0 - movs r0, #1 - strb r0, [r1] - ldr r4, _080BA7F4 - movs r1, #1 - bl GetFontAttribute - adds r2, r0, #0 - lsls r2, r2, #0x1a - lsrs r2, r2, #0x18 - mov r0, sp - ldrb r3, [r0] - adds r0, r4, #0 - movs r1, #0x68 - bl DrawOptionMenuChoice - ldr r4, _080BA7F8 - movs r0, #1 - movs r1, #1 - bl GetFontAttribute - adds r2, r0, #0 - lsls r2, r2, #0x1a - lsrs r2, r2, #0x18 - mov r0, sp - ldrb r3, [r0, #1] - adds r0, r4, #0 - movs r1, #0x90 - bl DrawOptionMenuChoice - ldr r4, _080BA7FC - movs r0, #1 - movs r1, #1 - bl GetFontAttribute - adds r2, r0, #0 - lsls r2, r2, #0x1a - lsrs r2, r2, #0x18 - mov r0, sp - ldrb r3, [r0, #2] - adds r0, r4, #0 - movs r1, #0xa8 - bl DrawOptionMenuChoice - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BA7F4: .4byte gUnknown_85373DA -_080BA7F8: .4byte gUnknown_85373E5 -_080BA7FC: .4byte gUnknown_85373EE - thumb_func_end sub_080BA780 - - thumb_func_start DrawTextOption -DrawTextOption: @ 0x080BA800 - push {lr} - sub sp, #0xc - movs r0, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r2, _080BA830 - movs r0, #2 - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - movs r1, #1 - movs r3, #8 - bl AddTextPrinterParameterized - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_080BA830: .4byte gUnknown_8537310 - thumb_func_end DrawTextOption - - thumb_func_start sub_080BA834 -sub_080BA834: @ 0x080BA834 - push {r4, lr} - sub sp, #0xc - movs r0, #1 - movs r1, #0x11 - bl FillWindowPixelBuffer - movs r4, #0 -_080BA842: - movs r0, #1 - movs r1, #1 - bl GetFontAttribute - adds r1, r4, #0 - muls r1, r0, r1 - adds r1, #2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _080BA88C - lsls r0, r4, #2 - adds r0, r0, r2 - ldr r2, [r0] - str r1, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r3, #8 - bl AddTextPrinterParameterized - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #6 - bls _080BA842 - movs r0, #1 - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BA88C: .4byte gUnknown_8537350 - thumb_func_end sub_080BA834 - - thumb_func_start sub_080BA890 -sub_080BA890: @ 0x080BA890 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - movs r4, #1 - str r4, [sp] - str r4, [sp, #4] - movs r5, #7 - str r5, [sp, #8] - movs r0, #1 - movs r1, #0xd1 - lsls r1, r1, #1 - movs r2, #1 - movs r3, #0 - bl FillBgTilemapBufferRect - movs r0, #0x1b - mov r8, r0 - str r0, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #1 - ldr r1, _080BA9FC - movs r2, #2 - movs r3, #0 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #1 - movs r1, #0xd2 - lsls r1, r1, #1 - movs r2, #0x1c - movs r3, #0 - bl FillBgTilemapBufferRect - str r4, [sp] - movs r6, #2 - str r6, [sp, #4] - str r5, [sp, #8] - movs r0, #1 - ldr r1, _080BAA00 - movs r2, #1 - movs r3, #1 - bl FillBgTilemapBufferRect - str r4, [sp] - str r6, [sp, #4] - str r5, [sp, #8] - movs r0, #1 - ldr r1, _080BAA04 - movs r2, #0x1c - movs r3, #1 - bl FillBgTilemapBufferRect - movs r7, #0xd4 - lsls r7, r7, #1 - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #1 - adds r1, r7, #0 - movs r2, #1 - movs r3, #3 - bl FillBgTilemapBufferRect - ldr r0, _080BAA08 - mov sl, r0 - mov r0, r8 - str r0, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #1 - mov r1, sl - movs r2, #2 - movs r3, #3 - bl FillBgTilemapBufferRect - movs r0, #0xd5 - lsls r0, r0, #1 - mov sb, r0 - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #1 - mov r1, sb - movs r2, #0x1c - movs r3, #3 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #1 - movs r1, #0xd1 - lsls r1, r1, #1 - movs r2, #1 - movs r3, #4 - bl FillBgTilemapBufferRect - movs r0, #0x1a - mov r8, r0 - str r0, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #1 - ldr r1, _080BA9FC - movs r2, #2 - movs r3, #4 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #1 - movs r1, #0xd2 - lsls r1, r1, #1 - movs r2, #0x1c - movs r3, #4 - bl FillBgTilemapBufferRect - str r4, [sp] - movs r6, #0x12 - str r6, [sp, #4] - str r5, [sp, #8] - movs r0, #1 - ldr r1, _080BAA00 - movs r2, #1 - movs r3, #5 - bl FillBgTilemapBufferRect - str r4, [sp] - str r6, [sp, #4] - str r5, [sp, #8] - movs r0, #1 - ldr r1, _080BAA04 - movs r2, #0x1c - movs r3, #5 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #1 - adds r1, r7, #0 - movs r2, #1 - movs r3, #0x13 - bl FillBgTilemapBufferRect - mov r0, r8 - str r0, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #1 - mov r1, sl - movs r2, #2 - movs r3, #0x13 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #1 - mov r1, sb - movs r2, #0x1c - movs r3, #0x13 - bl FillBgTilemapBufferRect - movs r0, #1 - bl CopyBgTilemapBufferToVram - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080BA9FC: .4byte 0x000001A3 -_080BAA00: .4byte 0x000001A5 -_080BAA04: .4byte 0x000001A7 -_080BAA08: .4byte 0x000001A9 - thumb_func_end sub_080BA890 - - thumb_func_start ResetPokedex -ResetPokedex: @ 0x080BAA0C - push {r4, r5, r6, lr} - ldr r0, _080BAA78 - movs r2, #0 - strh r2, [r0] - ldr r1, _080BAA7C - movs r0, #0x40 - strb r0, [r1] - ldr r0, _080BAA80 - strb r2, [r0] - ldr r4, _080BAA84 - ldr r0, [r4] - movs r1, #0 - strb r2, [r0, #0x19] - ldr r0, [r4] - strb r2, [r0, #0x18] - ldr r0, [r4] - strb r2, [r0, #0x1a] - ldr r0, [r4] - strb r2, [r0, #0x1b] - ldr r0, [r4] - str r1, [r0, #0x1c] - str r1, [r0, #0x20] - str r1, [r0, #0x24] - bl DisableNationalPokedex - movs r1, #0 - movs r2, #0 - ldr r3, _080BAA88 - ldr r6, _080BAA8C - ldr r5, _080BAA90 -_080BAA48: - ldr r0, [r4] - adds r0, #0x28 - adds r0, r0, r1 - strb r2, [r0] - ldr r0, [r4] - adds r0, #0x5c - adds r0, r0, r1 - strb r2, [r0] - ldr r0, [r3] - adds r0, r0, r6 - adds r0, r0, r1 - strb r2, [r0] - ldr r0, [r3] - adds r0, r0, r5 - adds r0, r0, r1 - strb r2, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0x33 - bls _080BAA48 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080BAA78: .4byte gUnknown_20397F0 -_080BAA7C: .4byte gUnknown_20397F2 -_080BAA80: .4byte gUnknown_3005E10 -_080BAA84: .4byte gUnknown_3005AF0 -_080BAA88: .4byte gUnknown_3005AEC -_080BAA8C: .4byte 0x00000988 -_080BAA90: .4byte 0x00003B24 - thumb_func_end ResetPokedex - - thumb_func_start ResetPokedexScrollPositions -ResetPokedexScrollPositions: @ 0x080BAA94 - ldr r1, _080BAAA4 - movs r0, #0 - strh r0, [r1] - ldr r1, _080BAAA8 - movs r0, #0x40 - strb r0, [r1] - bx lr - .align 2, 0 -_080BAAA4: .4byte gUnknown_20397F0 -_080BAAA8: .4byte gUnknown_20397F2 - thumb_func_end ResetPokedexScrollPositions - - thumb_func_start sub_080BAAAC -sub_080BAAAC: @ 0x080BAAAC - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080BAAAC - - thumb_func_start ResetPokedexView -ResetPokedexView: @ 0x080BAAC0 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - movs r3, #0 - ldr r0, _080BAC34 - adds r7, r0, #0 - movs r1, #2 - rsbs r1, r1, #0 - mov ip, r1 - movs r6, #3 - rsbs r6, r6, #0 - ldr r5, _080BAC38 -_080BAAD6: - lsls r1, r3, #2 - adds r1, r4, r1 - ldrh r0, [r1] - orrs r0, r7 - strh r0, [r1] - ldrb r2, [r1, #2] - mov r0, ip - ands r0, r2 - ands r0, r6 - strb r0, [r1, #2] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, r5 - bls _080BAAD6 - movs r2, #0xc1 - lsls r2, r2, #3 - adds r0, r4, r2 - movs r2, #0 - strh r2, [r0] - ldr r0, _080BAC3C - adds r3, r4, r0 - ldrb r1, [r3] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r3] - ldr r1, _080BAC40 - adds r0, r4, r1 - strh r2, [r0] - ldr r3, _080BAC44 - adds r0, r4, r3 - strh r2, [r0] - adds r1, #4 - adds r0, r4, r1 - strh r2, [r0] - adds r3, #4 - adds r0, r4, r3 - strh r2, [r0] - adds r1, #4 - adds r0, r4, r1 - strh r2, [r0] - adds r3, #4 - adds r0, r4, r3 - strh r2, [r0] - adds r1, #4 - adds r0, r4, r1 - strh r2, [r0] - adds r3, #4 - adds r0, r4, r3 - strh r2, [r0] - adds r1, #4 - adds r0, r4, r1 - strh r2, [r0] - movs r3, #0 - ldr r0, _080BAC48 - adds r2, r4, r0 - ldr r1, _080BAC34 - adds r5, r1, #0 -_080BAB52: - lsls r0, r3, #1 - adds r0, r2, r0 - ldrh r1, [r0] - orrs r1, r5 - strh r1, [r0] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #3 - bls _080BAB52 - movs r2, #0xc5 - lsls r2, r2, #3 - adds r0, r4, r2 - movs r2, #0 - movs r1, #0 - strh r1, [r0] - ldr r3, _080BAC4C - adds r0, r4, r3 - strh r1, [r0] - adds r3, #2 - adds r0, r4, r3 - strb r2, [r0] - adds r3, #1 - adds r0, r4, r3 - strb r2, [r0] - adds r3, #1 - adds r0, r4, r3 - strb r2, [r0] - adds r3, #1 - adds r0, r4, r3 - strb r2, [r0] - movs r2, #0xc6 - lsls r2, r2, #3 - adds r0, r4, r2 - strh r1, [r0] - adds r3, #3 - adds r0, r4, r3 - strh r1, [r0] - adds r2, #4 - adds r0, r4, r2 - strh r1, [r0] - adds r3, #4 - adds r0, r4, r3 - strh r1, [r0] - adds r2, #4 - adds r0, r4, r2 - strh r1, [r0] - movs r3, #0 - ldr r0, _080BAC50 - adds r1, r4, r0 - movs r2, #0 -_080BABB8: - lsls r0, r3, #1 - adds r0, r1, r0 - strh r2, [r0] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #3 - bls _080BABB8 - ldr r1, _080BAC54 - adds r0, r4, r1 - movs r1, #0 - strb r1, [r0] - ldr r2, _080BAC58 - adds r0, r4, r2 - strb r1, [r0] - ldr r0, _080BAC5C - adds r3, r4, r0 - ldrb r2, [r3] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r3] - ldr r2, _080BAC60 - adds r0, r4, r2 - strb r1, [r0] - ldr r3, _080BAC64 - adds r0, r4, r3 - strb r1, [r0] - adds r2, #2 - adds r0, r4, r2 - strb r1, [r0] - adds r3, #2 - adds r0, r4, r3 - strh r1, [r0] - adds r2, #3 - adds r0, r4, r2 - strh r1, [r0] - movs r3, #0 - ldr r0, _080BAC68 - adds r1, r4, r0 - movs r2, #0 -_080BAC0A: - adds r0, r1, r3 - strb r2, [r0] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #7 - bls _080BAC0A - movs r3, #0 - ldr r2, _080BAC6C - adds r1, r4, r2 - movs r2, #0 -_080BAC20: - adds r0, r1, r3 - strb r2, [r0] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #7 - bls _080BAC20 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080BAC34: .4byte 0x0000FFFF -_080BAC38: .4byte 0x00000181 -_080BAC3C: .4byte 0x0000060A -_080BAC40: .4byte 0x0000060C -_080BAC44: .4byte 0x0000060E -_080BAC48: .4byte 0x0000061E -_080BAC4C: .4byte 0x0000062A -_080BAC50: .4byte 0x0000063A -_080BAC54: .4byte 0x0000064A -_080BAC58: .4byte 0x0000064B -_080BAC5C: .4byte 0x0000064C -_080BAC60: .4byte 0x0000064D -_080BAC64: .4byte 0x0000064E -_080BAC68: .4byte 0x00000654 -_080BAC6C: .4byte 0x0000065C - thumb_func_end ResetPokedexView - - thumb_func_start CB2_Pokedex -CB2_Pokedex: @ 0x080BAC70 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - ldr r0, _080BAD2C - movs r1, #0x87 - lsls r1, r1, #3 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, #1 - beq _080BAD38 - cmp r0, #1 - ble _080BAC94 - cmp r0, #2 - beq _080BAD64 - cmp r0, #3 - bne _080BAC94 - b _080BAE58 -_080BAC94: - movs r0, #0 - bl SetVBlankCallback - movs r0, #0 - bl sub_080BFF08 - movs r3, #0xc0 - lsls r3, r3, #0x13 - movs r4, #0xc0 - lsls r4, r4, #9 - add r2, sp, #4 - mov r8, r2 - mov r2, sp - movs r6, #0 - ldr r1, _080BAD30 - movs r5, #0x80 - lsls r5, r5, #5 - ldr r7, _080BAD34 - movs r0, #0x81 - lsls r0, r0, #0x18 - mov ip, r0 -_080BACBE: - strh r6, [r2] - mov r0, sp - str r0, [r1] - str r3, [r1, #4] - str r7, [r1, #8] - ldr r0, [r1, #8] - adds r3, r3, r5 - subs r4, r4, r5 - cmp r4, r5 - bhi _080BACBE - strh r6, [r2] - mov r2, sp - str r2, [r1] - str r3, [r1, #4] - lsrs r0, r4, #1 - mov r3, ip - orrs r0, r3 - str r0, [r1, #8] - ldr r0, [r1, #8] - movs r0, #0xe0 - lsls r0, r0, #0x13 - movs r3, #0x80 - lsls r3, r3, #3 - movs r4, #0 - str r4, [sp, #4] - ldr r2, _080BAD30 - mov r1, r8 - str r1, [r2] - str r0, [r2, #4] - lsrs r0, r3, #2 - movs r1, #0x85 - lsls r1, r1, #0x18 - orrs r0, r1 - str r0, [r2, #8] - ldr r0, [r2, #8] - movs r1, #0xa0 - lsls r1, r1, #0x13 - mov r0, sp - strh r4, [r0] - str r0, [r2] - str r1, [r2, #4] - lsrs r3, r3, #1 - movs r0, #0x81 - lsls r0, r0, #0x18 - orrs r3, r0 - str r3, [r2, #8] - ldr r0, [r2, #8] - ldr r0, _080BAD2C - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r0, r2 - movs r1, #1 - strb r1, [r0] - b _080BAE88 - .align 2, 0 -_080BAD2C: .4byte gUnknown_3002360 -_080BAD30: .4byte 0x040000D4 -_080BAD34: .4byte 0x81000800 -_080BAD38: - bl ScanlineEffect_Stop - bl ResetTasks - bl ResetSpriteData - bl ResetPaletteFade - bl FreeAllSpritePalettes - ldr r1, _080BAD60 - movs r0, #8 - strb r0, [r1] - bl ResetAllPicSprites - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - b _080BAE88 - .align 2, 0 -_080BAD60: .4byte gUnknown_30030BC -_080BAD64: - ldr r4, _080BADE4 - ldr r0, _080BADE8 - bl AllocZeroed - str r0, [r4] - bl ResetPokedexView - ldr r0, _080BADEC - movs r1, #0 - bl CreateTask - ldr r1, [r4] - ldr r5, _080BADF0 - ldr r0, [r5] - ldrb r0, [r0, #0x19] - ldr r3, _080BADF4 - adds r1, r1, r3 - strh r0, [r1] - bl IsNationalPokedexEnabled - adds r1, r0, #0 - cmp r1, #0 - bne _080BAD9A - ldr r0, [r4] - ldr r2, _080BADF4 - adds r0, r0, r2 - strh r1, [r0] -_080BAD9A: - ldr r1, [r4] - ldr r0, [r5] - ldrb r2, [r0, #0x18] - ldr r3, _080BADF8 - adds r0, r1, r3 - strh r2, [r0] - ldr r0, _080BADFC - ldrh r2, [r0] - subs r3, #8 - adds r0, r1, r3 - strh r2, [r0] - ldr r0, _080BAE00 - ldrb r0, [r0] - ldr r2, _080BAE04 - adds r1, r1, r2 - strb r0, [r1] - ldr r0, [r4] - adds r3, #0x3f - adds r0, r0, r3 - movs r1, #0 - strb r1, [r0] - bl IsNationalPokedexEnabled - cmp r0, #0 - bne _080BAE0C - movs r0, #0 - bl GetHoennPokedexCount - ldr r1, [r4] - ldr r2, _080BAE08 - adds r1, r1, r2 - strh r0, [r1] - movs r0, #1 - bl GetHoennPokedexCount - b _080BAE20 - .align 2, 0 -_080BADE4: .4byte gUnknown_20397EC -_080BADE8: .4byte 0x00000664 -_080BADEC: .4byte sub_080BAEC8 -_080BADF0: .4byte gUnknown_3005AF0 -_080BADF4: .4byte 0x00000612 -_080BADF8: .4byte 0x00000616 -_080BADFC: .4byte gUnknown_20397F0 -_080BAE00: .4byte gUnknown_20397F2 -_080BAE04: .4byte 0x0000062C -_080BAE08: .4byte 0x0000061A -_080BAE0C: - movs r0, #0 - bl GetNationalPokedexCount - ldr r1, [r4] - ldr r2, _080BAE44 - adds r1, r1, r2 - strh r0, [r1] - movs r0, #1 - bl GetNationalPokedexCount -_080BAE20: - ldr r1, [r4] - ldr r3, _080BAE48 - adds r1, r1, r3 - strh r0, [r1] - ldr r0, _080BAE4C - ldr r0, [r0] - ldr r1, _080BAE50 - adds r0, r0, r1 - movs r1, #8 - strb r1, [r0] - ldr r1, _080BAE54 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080BAE88 - .align 2, 0 -_080BAE44: .4byte 0x0000061A -_080BAE48: .4byte 0x0000061C -_080BAE4C: .4byte gUnknown_20397EC -_080BAE50: .4byte 0x0000062D -_080BAE54: .4byte gUnknown_3002360 -_080BAE58: - movs r0, #1 - bl EnableInterrupts - ldr r0, _080BAE94 - bl SetVBlankCallback - ldr r0, _080BAE98 - bl SetMainCallback2 - ldr r0, _080BAE9C - ldr r1, [r0] - ldr r3, _080BAEA0 - adds r0, r1, r3 - ldrb r0, [r0] - ldr r2, _080BAEA4 - adds r1, r1, r2 - ldrb r1, [r1] - bl sub_080BC010 - ldr r0, _080BAEA8 - ldr r1, _080BAEAC - movs r2, #0x80 - bl m4aMPlayVolumeControl -_080BAE88: - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080BAE94: .4byte sub_080BAAAC -_080BAE98: .4byte sub_080BAEB0 -_080BAE9C: .4byte gUnknown_20397EC -_080BAEA0: .4byte 0x00000612 -_080BAEA4: .4byte 0x00000616 -_080BAEA8: .4byte gUnknown_30074D0 -_080BAEAC: .4byte 0x0000FFFF - thumb_func_end CB2_Pokedex - - thumb_func_start sub_080BAEB0 -sub_080BAEB0: @ 0x080BAEB0 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080BAEB0 - - thumb_func_start sub_080BAEC8 -sub_080BAEC8: @ 0x080BAEC8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080BAF00 - ldr r1, [r0] - ldr r0, _080BAF04 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - movs r0, #0 - bl sub_080BBC50 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080BAEFA - ldr r0, _080BAF08 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080BAF0C - str r0, [r1] -_080BAEFA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BAF00: .4byte gUnknown_20397EC -_080BAF04: .4byte 0x0000064C -_080BAF08: .4byte gUnknown_3005B60 -_080BAF0C: .4byte sub_080BAF10 - thumb_func_end sub_080BAEC8 - - thumb_func_start sub_080BAF10 -sub_080BAF10: @ 0x080BAF10 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r7, _080BAF44 - ldr r0, [r7] - ldr r4, _080BAF48 - adds r0, r0, r4 - ldrh r1, [r0] - movs r0, #0x12 - bl SetGpuReg - ldr r3, [r7] - adds r1, r3, r4 - ldrh r0, [r1] - movs r4, #0 - ldrsh r2, [r1, r4] - mov r8, r2 - cmp r2, #0 - beq _080BAF4C - subs r0, #8 - strh r0, [r1] - b _080BB142 - .align 2, 0 -_080BAF44: .4byte gUnknown_20397EC -_080BAF48: .4byte 0x00000652 -_080BAF4C: - ldr r2, _080BAFC4 - ldrh r1, [r2, #0x2e] - movs r0, #1 - mov sb, r0 - ands r0, r1 - cmp r0, #0 - beq _080BAFE0 - ldr r1, _080BAFC8 - adds r0, r3, r1 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r3, r0 - ldrb r0, [r0, #2] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _080BAFE0 - bl sub_080BD070 - ldr r4, _080BAFCC - ldr r0, [r7] - ldr r5, _080BAFD0 - adds r0, r0, r5 - ldrh r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r1, [r0, #5] - lsrs r1, r1, #4 - adds r1, #0x10 - mov r0, sb - lsls r0, r1 - mvns r0, r0 - mov r2, r8 - str r2, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, [r7] - adds r0, r0, r5 - ldrh r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, #0x1c - adds r0, r0, r4 - ldr r1, _080BAFD4 - str r1, [r0] - ldr r1, _080BAFD8 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080BAFDC - str r1, [r0] - movs r0, #0x15 - b _080BB0B2 - .align 2, 0 -_080BAFC4: .4byte gUnknown_3002360 -_080BAFC8: .4byte 0x0000060E -_080BAFCC: .4byte gUnknown_20205AC -_080BAFD0: .4byte 0x00000626 -_080BAFD4: .4byte sub_080BDC10 -_080BAFD8: .4byte gUnknown_3005B60 -_080BAFDC: .4byte sub_080BB330 -_080BAFE0: - ldrh r2, [r2, #0x2e] - movs r0, #8 - ands r0, r2 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0 - beq _080BB038 - ldr r3, _080BB024 - ldr r1, [r3] - ldr r4, _080BB028 - adds r0, r1, r4 - movs r2, #0 - strh r2, [r0] - ldr r0, _080BB02C - adds r1, r1, r0 - movs r0, #1 - strb r0, [r1] - ldr r0, [r3] - movs r1, #0xca - lsls r1, r1, #3 - adds r0, r0, r1 - strh r2, [r0] - ldr r1, _080BB030 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080BB034 - str r1, [r0] - movs r0, #5 - bl sub_080A306C - b _080BB142 - .align 2, 0 -_080BB024: .4byte gUnknown_20397EC -_080BB028: .4byte 0x00000652 -_080BB02C: .4byte 0x0000064F -_080BB030: .4byte gUnknown_3005B60 -_080BB034: .4byte sub_080BB1B4 -_080BB038: - movs r0, #4 - ands r0, r2 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - beq _080BB0DC - movs r0, #5 - bl sub_080A306C - movs r0, #1 - rsbs r0, r0, #0 - str r4, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - bl sub_080C07B4 - ldr r1, _080BB0BC - lsls r3, r6, #2 - adds r3, r3, r6 - lsls r3, r3, #3 - adds r3, r3, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0 - strh r0, [r3, #8] - ldr r1, _080BB0C0 - ldr r0, [r1] - ldr r4, _080BB0C4 - adds r0, r0, r4 - strb r2, [r0] - ldr r0, [r1] - ldr r2, _080BB0C8 - adds r1, r0, r2 - ldrb r2, [r1] - subs r4, #0x24 - adds r1, r0, r4 - strh r2, [r1] - ldr r2, _080BB0CC - adds r1, r0, r2 - ldrh r2, [r1] - subs r4, #0x1a - adds r1, r0, r4 - strh r2, [r1] - ldr r2, _080BB0D0 - adds r1, r0, r2 - ldrh r2, [r1] - adds r4, #4 - adds r1, r0, r4 - strh r2, [r1] - ldr r2, _080BB0D4 - adds r1, r0, r2 - ldrh r1, [r1] - adds r4, #4 - adds r0, r0, r4 - strh r1, [r0] - ldr r0, _080BB0D8 - str r0, [r3] - movs r0, #2 -_080BB0B2: - bl sub_080A306C - bl sub_080BBFCC - b _080BB142 - .align 2, 0 -_080BB0BC: .4byte gUnknown_3005B60 -_080BB0C0: .4byte gUnknown_20397EC -_080BB0C4: .4byte 0x0000064E -_080BB0C8: .4byte 0x0000062C -_080BB0CC: .4byte 0x0000060E -_080BB0D0: .4byte 0x00000612 -_080BB0D4: .4byte 0x00000616 -_080BB0D8: .4byte sub_080BB458 -_080BB0DC: - movs r0, #2 - ands r0, r2 - cmp r0, #0 - beq _080BB114 - movs r0, #1 - rsbs r0, r0, #0 - str r1, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _080BB10C - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080BB110 - str r1, [r0] - movs r0, #3 - bl sub_080A306C - b _080BB142 - .align 2, 0 -_080BB10C: .4byte gUnknown_3005B60 -_080BB110: .4byte sub_080BB524 -_080BB114: - ldr r5, _080BB150 - ldr r0, [r5] - ldr r4, _080BB154 - adds r0, r0, r4 - ldrh r0, [r0] - movs r1, #0xe - bl sub_080BCE3C - ldr r1, [r5] - adds r4, r1, r4 - strh r0, [r4] - ldr r0, _080BB158 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0 - beq _080BB142 - ldr r0, _080BB15C - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080BB160 - str r0, [r1] -_080BB142: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080BB150: .4byte gUnknown_20397EC -_080BB154: .4byte 0x0000060E -_080BB158: .4byte 0x0000062E -_080BB15C: .4byte gUnknown_3005B60 -_080BB160: .4byte sub_080BB164 - thumb_func_end sub_080BAF10 - - thumb_func_start sub_080BB164 -sub_080BB164: @ 0x080BB164 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080BB1A0 - ldr r2, [r0] - ldr r1, _080BB1A4 - adds r0, r2, r1 - ldrb r0, [r0] - ldr r3, _080BB1A8 - adds r1, r2, r3 - ldrb r1, [r1] - adds r3, #2 - adds r2, r2, r3 - ldrb r2, [r2] - bl sub_080BCBA4 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080BB198 - ldr r0, _080BB1AC - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080BB1B0 - str r0, [r1] -_080BB198: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BB1A0: .4byte gUnknown_20397EC -_080BB1A4: .4byte 0x0000062F -_080BB1A8: .4byte 0x00000634 -_080BB1AC: .4byte gUnknown_3005B60 -_080BB1B0: .4byte sub_080BAF10 - thumb_func_end sub_080BB164 - - thumb_func_start sub_080BB1B4 -sub_080BB1B4: @ 0x080BB1B4 - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r6, _080BB1E4 - ldr r0, [r6] - ldr r4, _080BB1E8 - adds r0, r0, r4 - ldrh r1, [r0] - movs r0, #0x12 - bl SetGpuReg - ldr r3, [r6] - adds r1, r3, r4 - ldrh r2, [r1] - movs r4, #0 - ldrsh r0, [r1, r4] - cmp r0, #0x50 - beq _080BB1EC - adds r0, r2, #0 - adds r0, #8 - strh r0, [r1] - b _080BB324 - .align 2, 0 -_080BB1E4: .4byte gUnknown_20397EC -_080BB1E8: .4byte 0x00000652 -_080BB1EC: - ldr r5, _080BB214 - ldrh r1, [r5, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080BB294 - movs r2, #0xca - lsls r2, r2, #3 - adds r0, r3, r2 - ldrh r0, [r0] - cmp r0, #1 - beq _080BB218 - cmp r0, #1 - ble _080BB25C - cmp r0, #2 - beq _080BB230 - cmp r0, #3 - beq _080BB270 - b _080BB25C - .align 2, 0 -_080BB214: .4byte gUnknown_3002360 -_080BB218: - ldr r4, _080BB228 - adds r1, r3, r4 - movs r0, #0 - strh r0, [r1] - ldr r0, _080BB22C - adds r1, r3, r0 - movs r0, #0x40 - b _080BB248 - .align 2, 0 -_080BB228: .4byte 0x0000060E -_080BB22C: .4byte 0x0000062C -_080BB230: - ldr r1, _080BB264 - adds r2, r3, r1 - ldrh r0, [r2] - subs r0, #1 - ldr r4, _080BB268 - adds r1, r3, r4 - strh r0, [r1] - ldrh r0, [r2] - lsls r0, r0, #4 - adds r0, #0x30 - ldr r2, _080BB26C - adds r1, r3, r2 -_080BB248: - strb r0, [r1] - bl sub_080BD1E0 - ldr r0, [r6] - adds r0, r0, r4 - ldrh r0, [r0] - movs r1, #0xe - bl CreateInitialPokemonSprites - ldrh r1, [r5, #0x2e] -_080BB25C: - movs r0, #8 - orrs r0, r1 - strh r0, [r5, #0x2e] - b _080BB294 - .align 2, 0 -_080BB264: .4byte 0x0000060C -_080BB268: .4byte 0x0000060E -_080BB26C: .4byte 0x0000062C -_080BB270: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _080BB2BC - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080BB2C0 - str r1, [r0] - movs r0, #3 - bl sub_080A306C -_080BB294: - ldr r2, _080BB2C4 - ldrh r1, [r2, #0x2e] - movs r0, #0xa - ands r0, r1 - cmp r0, #0 - beq _080BB2D4 - ldr r0, _080BB2C8 - ldr r0, [r0] - ldr r3, _080BB2CC - adds r0, r0, r3 - movs r1, #0 - strb r1, [r0] - ldr r1, _080BB2BC - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080BB2D0 - str r1, [r0] - b _080BB2F2 - .align 2, 0 -_080BB2BC: .4byte gUnknown_3005B60 -_080BB2C0: .4byte sub_080BB524 -_080BB2C4: .4byte gUnknown_3002360 -_080BB2C8: .4byte gUnknown_20397EC -_080BB2CC: .4byte 0x0000064F -_080BB2D0: .4byte sub_080BAF10 -_080BB2D4: - ldrh r1, [r2, #0x30] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080BB300 - ldr r0, _080BB2FC - ldr r0, [r0] - movs r4, #0xca - lsls r4, r4, #3 - adds r1, r0, r4 - ldrh r0, [r1] - cmp r0, #0 - beq _080BB300 - subs r0, #1 - strh r0, [r1] -_080BB2F2: - movs r0, #5 - bl sub_080A306C - b _080BB324 - .align 2, 0 -_080BB2FC: .4byte gUnknown_20397EC -_080BB300: - ldrh r1, [r2, #0x30] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080BB324 - ldr r0, _080BB32C - ldr r0, [r0] - movs r2, #0xca - lsls r2, r2, #3 - adds r1, r0, r2 - ldrh r0, [r1] - cmp r0, #2 - bhi _080BB324 - adds r0, #1 - strh r0, [r1] - movs r0, #5 - bl sub_080A306C -_080BB324: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080BB32C: .4byte gUnknown_20397EC - thumb_func_end sub_080BB1B4 - - thumb_func_start sub_080BB330 -sub_080BB330: @ 0x080BB330 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r2, _080BB394 - ldr r5, _080BB398 - ldr r3, [r5] - ldr r6, _080BB39C - adds r0, r3, r6 - ldrh r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r2 - movs r2, #0x20 - ldrsh r0, [r1, r2] - cmp r0, #0x30 - bne _080BB38E - movs r2, #0x22 - ldrsh r0, [r1, r2] - cmp r0, #0x38 - bne _080BB38E - ldr r1, _080BB3A0 - adds r0, r3, r1 - ldrb r1, [r0] - ldr r2, _080BB3A4 - adds r0, r3, r2 - strb r1, [r0] - ldr r1, [r5] - subs r2, #0x3d - adds r0, r1, r2 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r1, r0 - adds r1, r1, r6 - ldrb r1, [r1] - bl sub_080BE0C0 - ldr r2, _080BB3A8 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r1, #8] - ldr r0, _080BB3AC - str r0, [r1] -_080BB38E: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080BB394: .4byte gUnknown_20205AC -_080BB398: .4byte gUnknown_20397EC -_080BB39C: .4byte 0x00000626 -_080BB3A0: .4byte 0x0000064A -_080BB3A4: .4byte 0x0000064B -_080BB3A8: .4byte gUnknown_3005B60 -_080BB3AC: .4byte sub_080BB3B0 - thumb_func_end sub_080BB330 - - thumb_func_start sub_080BB3B0 -sub_080BB3B0: @ 0x080BB3B0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080BB40C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 - movs r0, #8 - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrb r0, [r0, #4] - cmp r0, #0 - beq _080BB41C - ldr r5, _080BB410 - ldr r0, [r5] - ldr r1, _080BB414 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - bne _080BB438 - ldrb r0, [r4, #8] - bl sub_080BE168 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080BB438 - bl sub_080BD0D0 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080BB438 - ldr r0, [r5] - ldr r2, _080BB418 - adds r1, r0, r2 - ldrh r1, [r1] - lsls r1, r1, #2 - adds r0, r0, r1 - ldrb r1, [r4, #8] - bl sub_080BE19C - b _080BB438 - .align 2, 0 -_080BB40C: .4byte gUnknown_3005B60 -_080BB410: .4byte gUnknown_20397EC -_080BB414: .4byte 0x0000064A -_080BB418: .4byte 0x0000060E -_080BB41C: - ldr r2, _080BB440 - ldr r0, _080BB444 - ldr r1, [r0] - ldr r3, _080BB448 - adds r0, r1, r3 - ldrh r0, [r0] - strh r0, [r2] - ldr r2, _080BB44C - ldr r0, _080BB450 - adds r1, r1, r0 - ldrb r0, [r1] - strb r0, [r2] - ldr r0, _080BB454 - str r0, [r4] -_080BB438: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080BB440: .4byte gUnknown_20397F0 -_080BB444: .4byte gUnknown_20397EC -_080BB448: .4byte 0x0000060E -_080BB44C: .4byte gUnknown_20397F2 -_080BB450: .4byte 0x0000062C -_080BB454: .4byte sub_080BAEC8 - thumb_func_end sub_080BB3B0 - - thumb_func_start sub_080BB458 -sub_080BB458: @ 0x080BB458 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080BB4A0 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r6, r1, r2 - movs r0, #8 - ldrsh r1, [r6, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrb r4, [r0, #4] - cmp r4, #0 - bne _080BB506 - bl sub_080BD1E0 - ldr r5, _080BB4A4 - ldr r2, [r5] - ldr r1, _080BB4A8 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _080BB4B8 - ldr r3, _080BB4AC - adds r0, r2, r3 - strh r4, [r0] - ldr r0, _080BB4B0 - adds r1, r2, r0 - movs r0, #0x40 - strb r0, [r1] - ldr r0, _080BB4B4 - b _080BB504 - .align 2, 0 -_080BB4A0: .4byte gUnknown_3005B60 -_080BB4A4: .4byte gUnknown_20397EC -_080BB4A8: .4byte 0x0000064E -_080BB4AC: .4byte 0x0000060E -_080BB4B0: .4byte 0x0000062C -_080BB4B4: .4byte sub_080BB5AC -_080BB4B8: - ldr r1, _080BB50C - adds r0, r2, r1 - ldrh r1, [r0] - ldr r3, _080BB510 - adds r0, r2, r3 - strb r1, [r0] - ldr r1, [r5] - movs r2, #0xc2 - lsls r2, r2, #3 - adds r0, r1, r2 - ldrh r2, [r0] - subs r3, #0x1e - adds r0, r1, r3 - strh r2, [r0] - ldr r2, _080BB514 - adds r0, r1, r2 - ldrh r0, [r0] - adds r3, #4 - adds r1, r1, r3 - strh r0, [r1] - bl IsNationalPokedexEnabled - adds r1, r0, #0 - cmp r1, #0 - bne _080BB4F2 - ldr r0, [r5] - ldr r2, _080BB518 - adds r0, r0, r2 - strh r1, [r0] -_080BB4F2: - ldr r0, [r5] - movs r3, #0xc3 - lsls r3, r3, #3 - adds r1, r0, r3 - ldrh r1, [r1] - ldr r2, _080BB51C - adds r0, r0, r2 - strh r1, [r0] - ldr r0, _080BB520 -_080BB504: - str r0, [r6] -_080BB506: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080BB50C: .4byte 0x0000062A -_080BB510: .4byte 0x0000062C -_080BB514: .4byte 0x00000614 -_080BB518: .4byte 0x00000612 -_080BB51C: .4byte 0x00000616 -_080BB520: .4byte sub_080BAEC8 - thumb_func_end sub_080BB458 - - thumb_func_start sub_080BB524 -sub_080BB524: @ 0x080BB524 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _080BB58C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080BB586 - ldr r4, _080BB590 - ldr r0, [r4] - ldr r5, _080BB594 - ldr r1, [r5] - ldr r2, _080BB598 - adds r1, r1, r2 - ldrh r1, [r1] - strb r1, [r0, #0x19] - bl IsNationalPokedexEnabled - adds r1, r0, #0 - cmp r1, #0 - bne _080BB554 - ldr r0, [r4] - strb r1, [r0, #0x19] -_080BB554: - ldr r1, [r4] - ldr r0, [r5] - ldr r2, _080BB59C - adds r0, r0, r2 - ldrh r0, [r0] - strb r0, [r1, #0x18] - bl sub_080BD1E0 - bl sub_080BBFCC - adds r0, r6, #0 - bl DestroyTask - ldr r0, _080BB5A0 - bl SetMainCallback2 - ldr r0, _080BB5A4 - ldr r1, _080BB5A8 - movs r2, #0x80 - lsls r2, r2, #1 - bl m4aMPlayVolumeControl - ldr r0, [r5] - bl Free -_080BB586: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080BB58C: .4byte gUnknown_2037C74 -_080BB590: .4byte gUnknown_3005AF0 -_080BB594: .4byte gUnknown_20397EC -_080BB598: .4byte 0x00000612 -_080BB59C: .4byte 0x00000616 -_080BB5A0: .4byte CB2_ReturnToFieldWithOpenMenu -_080BB5A4: .4byte gUnknown_30074D0 -_080BB5A8: .4byte 0x0000FFFF - thumb_func_end sub_080BB524 - - thumb_func_start sub_080BB5AC -sub_080BB5AC: @ 0x080BB5AC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080BB5E4 - ldr r1, [r0] - ldr r0, _080BB5E8 - adds r1, r1, r0 - ldrb r0, [r1] - movs r2, #1 - orrs r0, r2 - strb r0, [r1] - movs r0, #3 - bl sub_080BBC50 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080BB5DC - ldr r0, _080BB5EC - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080BB5F0 - str r0, [r1] -_080BB5DC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BB5E4: .4byte gUnknown_20397EC -_080BB5E8: .4byte 0x0000064C -_080BB5EC: .4byte gUnknown_3005B60 -_080BB5F0: .4byte sub_080BB5F4 - thumb_func_end sub_080BB5AC - - thumb_func_start sub_080BB5F4 -sub_080BB5F4: @ 0x080BB5F4 - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r5, _080BB620 - ldr r0, [r5] - ldr r4, _080BB624 - adds r0, r0, r4 - ldrh r1, [r0] - movs r0, #0x12 - bl SetGpuReg - ldr r3, [r5] - adds r1, r3, r4 - ldrh r0, [r1] - movs r2, #0 - ldrsh r4, [r1, r2] - cmp r4, #0 - beq _080BB628 - subs r0, #8 - strh r0, [r1] - b _080BB7C6 - .align 2, 0 -_080BB620: .4byte gUnknown_20397EC -_080BB624: .4byte 0x00000652 -_080BB628: - ldr r2, _080BB690 - ldrh r1, [r2, #0x2e] - movs r7, #1 - adds r0, r7, #0 - ands r0, r1 - cmp r0, #0 - beq _080BB6AC - ldr r1, _080BB694 - adds r0, r3, r1 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r3, r0 - ldrb r0, [r0, #2] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _080BB6AC - bl sub_080BD070 - ldr r3, _080BB698 - ldr r0, [r5] - ldr r2, _080BB69C - adds r0, r0, r2 - ldrh r0, [r0] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r0, r2, r3 - ldrb r1, [r0, #5] - lsrs r1, r1, #4 - adds r1, #0x10 - adds r0, r7, #0 - lsls r0, r1 - adds r3, #0x1c - adds r2, r2, r3 - ldr r1, _080BB6A0 - str r1, [r2] - mvns r0, r0 - str r4, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _080BB6A4 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080BB6A8 - str r1, [r0] - movs r0, #0x15 - b _080BB746 - .align 2, 0 -_080BB690: .4byte gUnknown_3002360 -_080BB694: .4byte 0x0000060E -_080BB698: .4byte gUnknown_20205AC -_080BB69C: .4byte 0x00000626 -_080BB6A0: .4byte sub_080BDC10 -_080BB6A4: .4byte gUnknown_3005B60 -_080BB6A8: .4byte sub_080BBA10 -_080BB6AC: - ldrh r2, [r2, #0x2e] - movs r0, #8 - ands r0, r2 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - beq _080BB704 - ldr r3, _080BB6F0 - ldr r1, [r3] - ldr r2, _080BB6F4 - adds r0, r1, r2 - movs r2, #0 - strh r2, [r0] - ldr r0, _080BB6F8 - adds r1, r1, r0 - movs r0, #1 - strb r0, [r1] - ldr r0, [r3] - movs r1, #0xca - lsls r1, r1, #3 - adds r0, r0, r1 - strh r2, [r0] - ldr r1, _080BB6FC - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080BB700 - str r1, [r0] - movs r0, #5 - bl sub_080A306C - b _080BB7C6 - .align 2, 0 -_080BB6F0: .4byte gUnknown_20397EC -_080BB6F4: .4byte 0x00000652 -_080BB6F8: .4byte 0x0000064F -_080BB6FC: .4byte gUnknown_3005B60 -_080BB700: .4byte HandleButtonPress_StartMenu -_080BB704: - movs r0, #4 - ands r0, r2 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #0 - beq _080BB760 - movs r0, #1 - rsbs r0, r0, #0 - str r1, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - bl sub_080C07B4 - ldr r2, _080BB750 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0 - strh r0, [r1, #8] - ldr r0, _080BB754 - ldr r0, [r0] - ldr r3, _080BB758 - adds r0, r0, r3 - strb r2, [r0] - ldr r0, _080BB75C - str r0, [r1] - movs r0, #2 -_080BB746: - bl sub_080A306C - bl sub_080BBFCC - b _080BB7C6 - .align 2, 0 -_080BB750: .4byte gUnknown_3005B60 -_080BB754: .4byte gUnknown_20397EC -_080BB758: .4byte 0x0000064E -_080BB75C: .4byte sub_080BB458 -_080BB760: - movs r0, #2 - ands r0, r2 - cmp r0, #0 - beq _080BB798 - movs r0, #1 - rsbs r0, r0, #0 - str r3, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _080BB790 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080BB794 - str r1, [r0] - movs r0, #3 - bl sub_080A306C - b _080BB7C6 - .align 2, 0 -_080BB790: .4byte gUnknown_3005B60 -_080BB794: .4byte sub_080BBB18 -_080BB798: - ldr r5, _080BB7D0 - ldr r0, [r5] - ldr r4, _080BB7D4 - adds r0, r0, r4 - ldrh r0, [r0] - movs r1, #0xe - bl sub_080BCE3C - ldr r1, [r5] - adds r4, r1, r4 - strh r0, [r4] - ldr r0, _080BB7D8 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0 - beq _080BB7C6 - ldr r0, _080BB7DC - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080BB7E0 - str r0, [r1] -_080BB7C6: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080BB7D0: .4byte gUnknown_20397EC -_080BB7D4: .4byte 0x0000060E -_080BB7D8: .4byte 0x0000062E -_080BB7DC: .4byte gUnknown_3005B60 -_080BB7E0: .4byte sub_080BB7E4 - thumb_func_end sub_080BB5F4 - - thumb_func_start sub_080BB7E4 -sub_080BB7E4: @ 0x080BB7E4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080BB820 - ldr r2, [r0] - ldr r1, _080BB824 - adds r0, r2, r1 - ldrb r0, [r0] - ldr r3, _080BB828 - adds r1, r2, r3 - ldrb r1, [r1] - adds r3, #2 - adds r2, r2, r3 - ldrb r2, [r2] - bl sub_080BCBA4 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080BB818 - ldr r0, _080BB82C - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080BB830 - str r0, [r1] -_080BB818: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BB820: .4byte gUnknown_20397EC -_080BB824: .4byte 0x0000062F -_080BB828: .4byte 0x00000634 -_080BB82C: .4byte gUnknown_3005B60 -_080BB830: .4byte sub_080BB5F4 - thumb_func_end sub_080BB7E4 - - thumb_func_start HandleButtonPress_StartMenu -HandleButtonPress_StartMenu: @ 0x080BB834 - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r5, _080BB864 - ldr r0, [r5] - ldr r4, _080BB868 - adds r0, r0, r4 - ldrh r1, [r0] - movs r0, #0x12 - bl SetGpuReg - ldr r5, [r5] - adds r1, r5, r4 - ldrh r2, [r1] - movs r3, #0 - ldrsh r0, [r1, r3] - cmp r0, #0x60 - beq _080BB86C - adds r0, r2, #0 - adds r0, #8 - strh r0, [r1] - b _080BBA04 - .align 2, 0 -_080BB864: .4byte gUnknown_20397EC -_080BB868: .4byte 0x00000652 -_080BB86C: - ldr r0, _080BB890 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080BB87A - b _080BB974 -_080BB87A: - movs r1, #0xca - lsls r1, r1, #3 - adds r0, r5, r1 - ldrh r0, [r0] - cmp r0, #4 - bhi _080BB8FE - lsls r0, r0, #2 - ldr r1, _080BB894 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BB890: .4byte gUnknown_3002360 -_080BB894: .4byte _080BB898 -_080BB898: @ jump table - .4byte _080BB8FE @ case 0 - .4byte _080BB8AC @ case 1 - .4byte _080BB8D0 @ case 2 - .4byte _080BB920 @ case 3 - .4byte _080BB950 @ case 4 -_080BB8AC: - ldr r5, _080BB8C4 - ldr r1, [r5] - ldr r4, _080BB8C8 - adds r2, r1, r4 - movs r0, #0 - strh r0, [r2] - ldr r2, _080BB8CC - adds r1, r1, r2 - movs r0, #0x40 - strb r0, [r1] - b _080BB8EE - .align 2, 0 -_080BB8C4: .4byte gUnknown_20397EC -_080BB8C8: .4byte 0x0000060E -_080BB8CC: .4byte 0x0000062C -_080BB8D0: - ldr r5, _080BB90C - ldr r2, [r5] - ldr r0, _080BB910 - adds r3, r2, r0 - ldrh r0, [r3] - subs r0, #1 - ldr r4, _080BB914 - adds r1, r2, r4 - strh r0, [r1] - ldrh r0, [r3] - lsls r0, r0, #4 - adds r0, #0x30 - ldr r1, _080BB918 - adds r2, r2, r1 - strb r0, [r2] -_080BB8EE: - bl sub_080BD1E0 - ldr r0, [r5] - adds r0, r0, r4 - ldrh r0, [r0] - movs r1, #0xe - bl CreateInitialPokemonSprites -_080BB8FE: - ldr r2, _080BB91C - ldrh r1, [r2, #0x2e] - movs r0, #8 - orrs r0, r1 - strh r0, [r2, #0x2e] - b _080BB974 - .align 2, 0 -_080BB90C: .4byte gUnknown_20397EC -_080BB910: .4byte 0x0000060C -_080BB914: .4byte 0x0000060E -_080BB918: .4byte 0x0000062C -_080BB91C: .4byte gUnknown_3002360 -_080BB920: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _080BB948 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080BB94C - str r1, [r0] - movs r0, #0x34 - bl sub_080A306C - b _080BB974 - .align 2, 0 -_080BB948: .4byte gUnknown_3005B60 -_080BB94C: .4byte sub_080BBB18 -_080BB950: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _080BB99C - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080BB9A0 - str r1, [r0] - movs r0, #3 - bl sub_080A306C -_080BB974: - ldr r2, _080BB9A4 - ldrh r1, [r2, #0x2e] - movs r0, #0xa - ands r0, r1 - cmp r0, #0 - beq _080BB9B4 - ldr r0, _080BB9A8 - ldr r0, [r0] - ldr r2, _080BB9AC - adds r0, r0, r2 - movs r1, #0 - strb r1, [r0] - ldr r1, _080BB99C - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080BB9B0 - str r1, [r0] - b _080BB9D2 - .align 2, 0 -_080BB99C: .4byte gUnknown_3005B60 -_080BB9A0: .4byte sub_080BBBB8 -_080BB9A4: .4byte gUnknown_3002360 -_080BB9A8: .4byte gUnknown_20397EC -_080BB9AC: .4byte 0x0000064F -_080BB9B0: .4byte sub_080BB5F4 -_080BB9B4: - ldrh r1, [r2, #0x30] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080BB9E0 - ldr r0, _080BB9DC - ldr r0, [r0] - movs r3, #0xca - lsls r3, r3, #3 - adds r1, r0, r3 - ldrh r0, [r1] - cmp r0, #0 - beq _080BB9E0 - subs r0, #1 - strh r0, [r1] -_080BB9D2: - movs r0, #5 - bl sub_080A306C - b _080BBA04 - .align 2, 0 -_080BB9DC: .4byte gUnknown_20397EC -_080BB9E0: - ldrh r1, [r2, #0x30] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080BBA04 - ldr r0, _080BBA0C - ldr r0, [r0] - movs r2, #0xca - lsls r2, r2, #3 - adds r1, r0, r2 - ldrh r0, [r1] - cmp r0, #3 - bhi _080BBA04 - adds r0, #1 - strh r0, [r1] - movs r0, #5 - bl sub_080A306C -_080BBA04: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080BBA0C: .4byte gUnknown_20397EC - thumb_func_end HandleButtonPress_StartMenu - - thumb_func_start sub_080BBA10 -sub_080BBA10: @ 0x080BBA10 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r2, _080BBA7C - ldr r5, _080BBA80 - ldr r3, [r5] - ldr r4, _080BBA84 - adds r0, r3, r4 - ldrh r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r2 - movs r2, #0x20 - ldrsh r0, [r1, r2] - cmp r0, #0x30 - bne _080BBA76 - movs r2, #0x22 - ldrsh r0, [r1, r2] - cmp r0, #0x38 - bne _080BBA76 - ldr r1, _080BBA88 - adds r0, r3, r1 - ldrb r1, [r0] - ldr r2, _080BBA8C - adds r0, r3, r2 - strb r1, [r0] - ldr r1, [r5] - subs r2, #0x3d - adds r0, r1, r2 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r1, r0 - adds r1, r1, r4 - ldrb r1, [r1] - bl sub_080BE0C0 - ldr r2, _080BBA90 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r1, #8] - ldr r0, [r5] - adds r0, r0, r4 - ldr r2, _080BBA94 - strh r2, [r0] - ldr r0, _080BBA98 - str r0, [r1] -_080BBA76: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080BBA7C: .4byte gUnknown_20205AC -_080BBA80: .4byte gUnknown_20397EC -_080BBA84: .4byte 0x00000626 -_080BBA88: .4byte 0x0000064A -_080BBA8C: .4byte 0x0000064B -_080BBA90: .4byte gUnknown_3005B60 -_080BBA94: .4byte 0x0000FFFF -_080BBA98: .4byte sub_080BBA9C - thumb_func_end sub_080BBA10 - - thumb_func_start sub_080BBA9C -sub_080BBA9C: @ 0x080BBA9C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080BBAF8 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 - movs r0, #8 - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrb r0, [r0, #4] - cmp r0, #0 - beq _080BBB08 - ldr r5, _080BBAFC - ldr r0, [r5] - ldr r1, _080BBB00 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - bne _080BBB0C - ldrb r0, [r4, #8] - bl sub_080BE168 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080BBB0C - bl sub_080BD0D0 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080BBB0C - ldr r0, [r5] - ldr r2, _080BBB04 - adds r1, r0, r2 - ldrh r1, [r1] - lsls r1, r1, #2 - adds r0, r0, r1 - ldrb r1, [r4, #8] - bl sub_080BE19C - b _080BBB0C - .align 2, 0 -_080BBAF8: .4byte gUnknown_3005B60 -_080BBAFC: .4byte gUnknown_20397EC -_080BBB00: .4byte 0x0000064A -_080BBB04: .4byte 0x0000060E -_080BBB08: - ldr r0, _080BBB14 - str r0, [r4] -_080BBB0C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080BBB14: .4byte sub_080BB5AC - thumb_func_end sub_080BBA9C - - thumb_func_start sub_080BBB18 -sub_080BBB18: @ 0x080BBB18 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _080BBB94 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080BBB8C - ldr r4, _080BBB98 - ldr r0, [r4] - ldr r2, _080BBB9C - adds r1, r0, r2 - ldrh r1, [r1] - ldr r3, _080BBBA0 - adds r0, r0, r3 - strb r1, [r0] - ldr r1, [r4] - subs r2, #0x1a - adds r0, r1, r2 - ldrh r2, [r0] - subs r3, #0x1e - adds r0, r1, r3 - strh r2, [r0] - ldr r2, _080BBBA4 - adds r0, r1, r2 - ldrh r0, [r0] - adds r3, #4 - adds r1, r1, r3 - strh r0, [r1] - bl IsNationalPokedexEnabled - adds r1, r0, #0 - cmp r1, #0 - bne _080BBB66 - ldr r0, [r4] - ldr r2, _080BBBA8 - adds r0, r0, r2 - strh r1, [r0] -_080BBB66: - ldr r0, [r4] - movs r3, #0xc3 - lsls r3, r3, #3 - adds r1, r0, r3 - ldrh r1, [r1] - ldr r2, _080BBBAC - adds r0, r0, r2 - strh r1, [r0] - ldr r1, _080BBBB0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080BBBB4 - str r1, [r0] - bl sub_080BD1E0 - bl sub_080BBFCC -_080BBB8C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080BBB94: .4byte gUnknown_2037C74 -_080BBB98: .4byte gUnknown_20397EC -_080BBB9C: .4byte 0x0000062A -_080BBBA0: .4byte 0x0000062C -_080BBBA4: .4byte 0x00000614 -_080BBBA8: .4byte 0x00000612 -_080BBBAC: .4byte 0x00000616 -_080BBBB0: .4byte gUnknown_3005B60 -_080BBBB4: .4byte sub_080BAEC8 - thumb_func_end sub_080BBB18 - - thumb_func_start sub_080BBBB8 -sub_080BBBB8: @ 0x080BBBB8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _080BBC2C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080BBC24 - ldr r4, _080BBC30 - ldr r0, [r4] - ldr r2, _080BBC34 - adds r1, r0, r2 - ldrh r1, [r1] - ldr r3, _080BBC38 - adds r0, r0, r3 - strb r1, [r0] - ldr r1, [r4] - subs r2, #0x1a - adds r0, r1, r2 - ldrh r2, [r0] - subs r3, #0x1e - adds r0, r1, r3 - strh r2, [r0] - ldr r2, _080BBC3C - adds r0, r1, r2 - ldrh r0, [r0] - adds r3, #4 - adds r1, r1, r3 - strh r0, [r1] - bl IsNationalPokedexEnabled - adds r1, r0, #0 - cmp r1, #0 - bne _080BBC06 - ldr r0, [r4] - ldr r2, _080BBC40 - adds r0, r0, r2 - strh r1, [r0] -_080BBC06: - ldr r0, [r4] - movs r3, #0xc3 - lsls r3, r3, #3 - adds r1, r0, r3 - ldrh r1, [r1] - ldr r2, _080BBC44 - adds r0, r0, r2 - strh r1, [r0] - ldr r1, _080BBC48 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080BBC4C - str r1, [r0] -_080BBC24: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080BBC2C: .4byte gUnknown_2037C74 -_080BBC30: .4byte gUnknown_20397EC -_080BBC34: .4byte 0x0000062A -_080BBC38: .4byte 0x0000062C -_080BBC3C: .4byte 0x00000614 -_080BBC40: .4byte 0x00000612 -_080BBC44: .4byte 0x00000616 -_080BBC48: .4byte gUnknown_3005B60 -_080BBC4C: .4byte sub_080BB524 - thumb_func_end sub_080BBBB8 - - thumb_func_start sub_080BBC50 -sub_080BBC50: @ 0x080BBC50 - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _080BBC74 - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r1, r2 - ldrb r0, [r0] - adds r3, r1, #0 - cmp r0, #6 - bhi _080BBC98 - lsls r0, r0, #2 - ldr r1, _080BBC78 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BBC74: .4byte gUnknown_3002360 -_080BBC78: .4byte _080BBC7C -_080BBC7C: @ jump table - .4byte _080BBC98 @ case 0 - .4byte _080BBE08 @ case 1 - .4byte _080BBE38 @ case 2 - .4byte _080BBE40 @ case 3 - .4byte _080BBEA4 @ case 4 - .4byte _080BBECC @ case 5 - .4byte _080BBF54 @ case 6 -_080BBC98: - ldr r0, _080BBD58 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - beq _080BBCAA - b _080BBF74 -_080BBCAA: - movs r0, #0 - bl SetVBlankCallback - ldr r4, _080BBD5C - ldr r0, [r4] - ldr r1, _080BBD60 - adds r0, r0, r1 - strb r5, [r0] - movs r0, #0 - bl sub_080BFF08 - ldr r0, [r4] - ldr r2, _080BBD64 - adds r0, r0, r2 - ldrb r1, [r0] - movs r0, #0x1a - bl SetGpuReg - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _080BBD68 - movs r0, #0 - movs r2, #4 - bl InitBgsFromTemplates - movs r4, #0x80 - lsls r4, r4, #4 - adds r0, r4, #0 - bl AllocZeroed - adds r1, r0, #0 - movs r0, #3 - bl SetBgTilemapBuffer - adds r0, r4, #0 - bl AllocZeroed - adds r1, r0, #0 - movs r0, #2 - bl SetBgTilemapBuffer - adds r0, r4, #0 - bl AllocZeroed - adds r1, r0, #0 - movs r0, #1 - bl SetBgTilemapBuffer - adds r0, r4, #0 - bl AllocZeroed - adds r1, r0, #0 - movs r0, #0 - bl SetBgTilemapBuffer - ldr r1, _080BBD6C - movs r2, #0x80 - lsls r2, r2, #6 - str r6, [sp] - movs r0, #3 - movs r3, #0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r1, _080BBD70 - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - ldr r1, _080BBD74 - movs r0, #3 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - cmp r5, #0 - bne _080BBD7C - ldr r1, _080BBD78 - movs r3, #0xa0 - lsls r3, r3, #2 - movs r0, #0 - movs r2, #0 - bl CopyToBgTilemapBuffer - b _080BBD8A - .align 2, 0 -_080BBD58: .4byte gUnknown_2037C74 -_080BBD5C: .4byte gUnknown_20397EC -_080BBD60: .4byte 0x0000064A -_080BBD64: .4byte 0x0000062D -_080BBD68: .4byte gUnknown_8539BE8 -_080BBD6C: .4byte gUnknown_8537E8C -_080BBD70: .4byte gUnknown_8537804 -_080BBD74: .4byte gUnknown_8537954 -_080BBD78: .4byte gUnknown_8537660 -_080BBD7C: - ldr r1, _080BBDA4 - movs r3, #0xa0 - lsls r3, r3, #2 - movs r0, #0 - movs r2, #0 - bl CopyToBgTilemapBuffer -_080BBD8A: - bl ResetPaletteFade - cmp r5, #0 - bne _080BBDB0 - ldr r3, _080BBDA8 - ldr r1, [r3] - ldr r0, _080BBDAC - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - b _080BBDBE - .align 2, 0 -_080BBDA4: .4byte gUnknown_8537730 -_080BBDA8: .4byte gUnknown_20397EC -_080BBDAC: .4byte 0x0000064C -_080BBDB0: - ldr r3, _080BBDF8 - ldr r1, [r3] - ldr r2, _080BBDFC - adds r1, r1, r2 - ldrb r0, [r1] - movs r2, #1 - orrs r0, r2 -_080BBDBE: - strb r0, [r1] - ldr r0, [r3] - ldr r1, _080BBDFC - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1f - lsrs r0, r0, #0x1f - bl LoadPokedexBgPalette - ldr r0, _080BBE00 - bl InitWindows - bl sub_08004480 - movs r0, #0 - bl PutWindowTilemap - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - ldr r0, _080BBE04 - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r0, r2 - movs r1, #1 - strb r1, [r0] - b _080BBF74 - .align 2, 0 -_080BBDF8: .4byte gUnknown_20397EC -_080BBDFC: .4byte 0x0000064C -_080BBE00: .4byte gUnknown_8539BF8 -_080BBE04: .4byte gUnknown_3002360 -_080BBE08: - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r1, _080BBE2C - movs r0, #8 - strb r0, [r1] - ldr r0, _080BBE30 - bl LoadCompressedSpriteSheet - ldr r0, _080BBE34 - bl LoadSpritePalettes - adds r0, r5, #0 - bl CreateInterfaceSprites - b _080BBF34 - .align 2, 0 -_080BBE2C: .4byte gUnknown_30030BC -_080BBE30: .4byte gUnknown_8539BBC -_080BBE34: .4byte gUnknown_8539BCC -_080BBE38: - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r3, r2 - b _080BBF3C -_080BBE40: - cmp r5, #0 - bne _080BBE58 - ldr r0, _080BBE94 - ldr r1, [r0] - ldr r2, _080BBE98 - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, #4 - adds r1, r1, r2 - ldrb r1, [r1] - bl sub_080BC010 -_080BBE58: - ldr r4, _080BBE94 - ldr r0, [r4] - ldr r1, _080BBE9C - adds r0, r0, r1 - ldrh r0, [r0] - movs r1, #0xe - bl CreateInitialPokemonSprites - ldr r0, [r4] - ldr r2, _080BBEA0 - adds r0, r0, r2 - movs r1, #0 - strb r1, [r0] - ldr r0, [r4] - adds r2, #3 - adds r0, r0, r2 - strh r1, [r0] - movs r0, #0 - bl CopyBgTilemapBufferToVram - movs r0, #1 - bl CopyBgTilemapBufferToVram - movs r0, #2 - bl CopyBgTilemapBufferToVram - movs r0, #3 - bl CopyBgTilemapBufferToVram - b _080BBF34 - .align 2, 0 -_080BBE94: .4byte gUnknown_20397EC -_080BBE98: .4byte 0x00000612 -_080BBE9C: .4byte 0x0000060E -_080BBEA0: .4byte 0x0000064F -_080BBEA4: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r0, _080BBEC4 - bl SetVBlankCallback - ldr r1, _080BBEC8 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _080BBF3C - .align 2, 0 -_080BBEC4: .4byte sub_080BAAAC -_080BBEC8: .4byte gUnknown_3002360 -_080BBECC: - ldr r1, _080BBF44 - movs r0, #0x48 - bl SetGpuReg - ldr r1, _080BBF48 - movs r0, #0x4a - bl SetGpuReg - movs r0, #0x40 - movs r1, #0 - bl SetGpuReg - movs r0, #0x44 - movs r1, #0 - bl SetGpuReg - movs r0, #0x42 - movs r1, #0 - bl SetGpuReg - movs r0, #0x46 - movs r1, #0 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - ldr r1, _080BBF4C - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg -_080BBF34: - ldr r1, _080BBF50 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 -_080BBF3C: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080BBF74 - .align 2, 0 -_080BBF44: .4byte 0x00003F3F -_080BBF48: .4byte 0x00001D3F -_080BBF4C: .4byte 0x00009040 -_080BBF50: .4byte gUnknown_3002360 -_080BBF54: - ldr r0, _080BBF70 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _080BBF74 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r3, r1 - strb r2, [r0] - movs r0, #1 - b _080BBF76 - .align 2, 0 -_080BBF70: .4byte gUnknown_2037C74 -_080BBF74: - movs r0, #0 -_080BBF76: - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080BBC50 - - thumb_func_start LoadPokedexBgPalette -LoadPokedexBgPalette: @ 0x080BBF80 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080BBF94 - ldr r0, _080BBF90 - b _080BBF9E - .align 2, 0 -_080BBF90: .4byte gUnknown_85374E2 -_080BBF94: - bl IsNationalPokedexEnabled - cmp r0, #0 - bne _080BBFAC - ldr r0, _080BBFA8 -_080BBF9E: - movs r1, #1 - movs r2, #0xbe - bl LoadPalette - b _080BBFB6 - .align 2, 0 -_080BBFA8: .4byte gUnknown_8537422 -_080BBFAC: - ldr r0, _080BBFC8 - movs r1, #1 - movs r2, #0xbe - bl LoadPalette -_080BBFB6: - bl sub_080985EC - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_080BBFC8: .4byte gUnknown_85375A2 - thumb_func_end LoadPokedexBgPalette - - thumb_func_start sub_080BBFCC -sub_080BBFCC: @ 0x080BBFCC - push {lr} - bl FreeAllWindowBuffers - movs r0, #0 - bl GetBgTilemapBuffer - cmp r0, #0 - beq _080BBFE0 - bl Free -_080BBFE0: - movs r0, #1 - bl GetBgTilemapBuffer - cmp r0, #0 - beq _080BBFEE - bl Free -_080BBFEE: - movs r0, #2 - bl GetBgTilemapBuffer - cmp r0, #0 - beq _080BBFFC - bl Free -_080BBFFC: - movs r0, #3 - bl GetBgTilemapBuffer - cmp r0, #0 - beq _080BC00A - bl Free -_080BC00A: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080BBFCC - - thumb_func_start sub_080BC010 -sub_080BC010: @ 0x080BC010 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - ldr r0, _080BC044 - ldr r0, [r0] - ldr r1, _080BC048 - adds r0, r0, r1 - movs r5, #0 - strh r5, [r0] - cmp r4, #0 - beq _080BC038 - cmp r4, #1 - beq _080BC04C -_080BC038: - mov r1, sp - movs r0, #0xca - strh r0, [r1] - movs r0, #1 - strh r0, [r1, #2] - b _080BC068 - .align 2, 0 -_080BC044: .4byte gUnknown_20397EC -_080BC048: .4byte 0x0000060C -_080BC04C: - bl IsNationalPokedexEnabled - cmp r0, #0 - beq _080BC060 - mov r0, sp - movs r1, #0xc1 - lsls r1, r1, #1 - strh r1, [r0] - strh r5, [r0, #2] - b _080BC068 -_080BC060: - mov r0, sp - movs r1, #0xca - strh r1, [r0] - strh r4, [r0, #2] -_080BC068: - cmp r6, #5 - bls _080BC06E - b _080BC4F0 -_080BC06E: - lsls r0, r6, #2 - ldr r1, _080BC078 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BC078: .4byte _080BC07C -_080BC07C: @ jump table - .4byte _080BC094 @ case 0 - .4byte _080BC208 @ case 1 - .4byte _080BC2B4 @ case 2 - .4byte _080BC344 @ case 3 - .4byte _080BC3DC @ case 4 - .4byte _080BC46C @ case 5 -_080BC094: - mov r0, sp - ldrh r0, [r0, #2] - cmp r0, #0 - beq _080BC13C - movs r4, #0 - mov r0, sp - ldrh r0, [r0] - cmp r4, r0 - blt _080BC0A8 - b _080BC4F0 -_080BC0A8: - mov r5, sp - ldr r2, _080BC134 - mov r8, r2 - movs r3, #1 - mov sb, r3 -_080BC0B2: - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - adds r7, r4, #1 - mov sl, r7 - lsls r0, r7, #0x10 - lsrs r6, r0, #0x10 - adds r0, r6, #0 - bl sub_0806CFB0 - strh r0, [r5, #4] - mov r2, r8 - ldr r1, [r2] - lsls r4, r4, #2 - adds r1, r1, r4 - strh r0, [r1] - ldrh r0, [r5, #4] - movs r1, #0 - bl GetSetPokedexFlag - mov r3, r8 - ldr r2, [r3] - adds r2, r2, r4 - mov r3, sb - ands r3, r0 - ldrb r0, [r2, #2] - movs r7, #2 - rsbs r7, r7, #0 - adds r1, r7, #0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2, #2] - ldrh r0, [r5, #4] - movs r1, #1 - bl GetSetPokedexFlag - mov r1, r8 - ldr r3, [r1] - adds r3, r3, r4 - mov r2, sb - ands r2, r0 - lsls r2, r2, #1 - ldrb r0, [r3, #2] - subs r7, #1 - adds r1, r7, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, #2] - mov r0, r8 - ldr r1, [r0] - adds r4, r1, r4 - ldrb r0, [r4, #2] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _080BC126 - ldr r2, _080BC138 - adds r0, r1, r2 - mov r3, sl - strh r3, [r0] -_080BC126: - adds r4, r6, #0 - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - ldrh r7, [r5] - cmp r0, r7 - blt _080BC0B2 - b _080BC4F0 - .align 2, 0 -_080BC134: .4byte gUnknown_20397EC -_080BC138: .4byte 0x0000060C -_080BC13C: - movs r4, #0 - movs r5, #0 - mov sl, r5 - mov r0, sp - ldrh r0, [r0] - cmp r4, r0 - blt _080BC14C - b _080BC4F0 -_080BC14C: - mov r6, sp - ldr r0, _080BC200 - mov r8, r0 - movs r1, #1 - mov sb, r1 -_080BC156: - lsls r4, r4, #0x10 - asrs r0, r4, #0x10 - adds r0, #1 - strh r0, [r6, #4] - ldrh r0, [r6, #4] - movs r1, #0 - bl GetSetPokedexFlag - lsls r0, r0, #0x18 - adds r7, r4, #0 - cmp r0, #0 - beq _080BC172 - movs r2, #1 - mov sl, r2 -_080BC172: - mov r3, sl - cmp r3, #0 - beq _080BC1EE - mov r4, r8 - ldr r1, [r4] - lsls r0, r5, #0x10 - asrs r5, r0, #0x10 - lsls r4, r5, #2 - adds r1, r1, r4 - ldrh r0, [r6, #4] - strh r0, [r1] - ldrh r0, [r6, #4] - movs r1, #0 - bl GetSetPokedexFlag - mov r1, r8 - ldr r2, [r1] - adds r2, r2, r4 - mov r3, sb - ands r3, r0 - mov ip, r3 - ldrb r0, [r2, #2] - movs r3, #2 - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r0, r1 - mov r1, ip - orrs r0, r1 - strb r0, [r2, #2] - ldrh r0, [r6, #4] - movs r1, #1 - bl GetSetPokedexFlag - mov r2, r8 - ldr r3, [r2] - adds r3, r3, r4 - mov r2, sb - ands r2, r0 - lsls r2, r2, #1 - mov ip, r2 - ldrb r0, [r3, #2] - movs r2, #3 - rsbs r2, r2, #0 - adds r1, r2, #0 - ands r0, r1 - mov r1, ip - orrs r0, r1 - strb r0, [r3, #2] - mov r3, r8 - ldr r2, [r3] - adds r4, r2, r4 - ldrb r0, [r4, #2] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _080BC1E8 - adds r1, r5, #1 - ldr r4, _080BC204 - adds r0, r2, r4 - strh r1, [r0] -_080BC1E8: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_080BC1EE: - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r7, r1 - lsrs r4, r0, #0x10 - asrs r0, r0, #0x10 - ldrh r2, [r6] - cmp r0, r2 - blt _080BC156 - b _080BC4F0 - .align 2, 0 -_080BC200: .4byte gUnknown_20397EC -_080BC204: .4byte 0x0000060C -_080BC208: - movs r4, #0 - mov r5, sp - ldr r3, _080BC2A8 - mov r8, r3 - ldr r6, _080BC2AC - movs r7, #1 - mov sb, r7 -_080BC216: - ldr r1, _080BC2B0 - lsls r4, r4, #0x10 - asrs r0, r4, #0xf - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r5, #4] - ldrh r0, [r5, #4] - bl sub_0806CF1C - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r7, r4, #0 - ldrh r1, [r5] - cmp r0, r1 - bhi _080BC294 - ldrh r0, [r5, #4] - movs r1, #0 - bl GetSetPokedexFlag - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080BC294 - mov r3, r8 - ldr r2, [r3] - adds r3, r2, r6 - ldrh r0, [r3] - lsls r0, r0, #2 - adds r0, r2, r0 - ldrh r1, [r5, #4] - strh r1, [r0] - ldrh r0, [r3] - lsls r0, r0, #2 - adds r2, r2, r0 - ldrb r0, [r2, #2] - mov r4, sb - orrs r0, r4 - strb r0, [r2, #2] - ldrh r0, [r5, #4] - movs r1, #1 - bl GetSetPokedexFlag - mov r1, r8 - ldr r3, [r1] - adds r1, r3, r6 - ldrh r1, [r1] - lsls r1, r1, #2 - adds r3, r3, r1 - mov r2, sb - ands r2, r0 - lsls r2, r2, #1 - ldrb r0, [r3, #2] - movs r4, #3 - rsbs r4, r4, #0 - adds r1, r4, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, #2] - mov r0, r8 - ldr r1, [r0] - adds r1, r1, r6 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_080BC294: - movs r2, #0x80 - lsls r2, r2, #9 - adds r1, r7, r2 - lsrs r4, r1, #0x10 - movs r0, #0xcd - lsls r0, r0, #0x11 - cmp r1, r0 - ble _080BC216 - b _080BC4F0 - .align 2, 0 -_080BC2A8: .4byte gUnknown_20397EC -_080BC2AC: .4byte 0x0000060C -_080BC2B0: .4byte gUnknown_8538FF4 -_080BC2B4: - ldr r4, _080BC330 - lsls r0, r4, #0x10 - mov r5, sp - ldr r7, _080BC334 - ldr r6, _080BC338 -_080BC2BE: - ldr r1, _080BC33C - asrs r0, r0, #0xf - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r5, #4] - ldrh r0, [r5, #4] - bl sub_0806CF1C - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrh r3, [r5] - cmp r0, r3 - bhi _080BC31E - ldrh r0, [r5, #4] - movs r1, #1 - bl GetSetPokedexFlag - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080BC31E - ldr r2, [r7] - adds r3, r2, r6 - ldrh r0, [r3] - lsls r0, r0, #2 - adds r0, r2, r0 - ldrh r1, [r5, #4] - strh r1, [r0] - ldrh r0, [r3] - lsls r0, r0, #2 - adds r2, r2, r0 - ldrb r0, [r2, #2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #2] - ldr r2, [r7] - adds r0, r2, r6 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r2, r2, r0 - ldrb r0, [r2, #2] - movs r1, #2 - orrs r0, r1 - strb r0, [r2, #2] - ldr r1, [r7] - adds r1, r1, r6 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_080BC31E: - lsls r0, r4, #0x10 - ldr r4, _080BC340 - adds r0, r0, r4 - lsrs r4, r0, #0x10 - lsls r0, r4, #0x10 - cmp r0, #0 - bge _080BC2BE - b _080BC4F0 - .align 2, 0 -_080BC330: .4byte 0x00000181 -_080BC334: .4byte gUnknown_20397EC -_080BC338: .4byte 0x0000060C -_080BC33C: .4byte gUnknown_853932A -_080BC340: .4byte 0xFFFF0000 -_080BC344: - movs r4, #0 - mov r5, sp - ldr r7, _080BC3CC - mov r8, r7 - ldr r6, _080BC3D0 - ldr r0, _080BC3D4 - mov sb, r0 -_080BC352: - ldr r1, _080BC3D8 - lsls r4, r4, #0x10 - asrs r0, r4, #0xf - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r5, #4] - ldrh r0, [r5, #4] - bl sub_0806CF1C - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r7, r4, #0 - ldrh r1, [r5] - cmp r0, r1 - bhi _080BC3BA - ldrh r0, [r5, #4] - movs r1, #1 - bl GetSetPokedexFlag - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080BC3BA - mov r3, r8 - ldr r2, [r3] - adds r3, r2, r6 - ldrh r0, [r3] - lsls r0, r0, #2 - adds r0, r2, r0 - ldrh r1, [r5, #4] - strh r1, [r0] - ldrh r0, [r3] - lsls r0, r0, #2 - adds r2, r2, r0 - ldrb r0, [r2, #2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #2] - mov r4, r8 - ldr r2, [r4] - adds r0, r2, r6 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r2, r2, r0 - ldrb r0, [r2, #2] - movs r1, #2 - orrs r0, r1 - strb r0, [r2, #2] - ldr r1, [r4] - adds r1, r1, r6 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_080BC3BA: - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r7, r1 - lsrs r4, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, sb - ble _080BC352 - b _080BC4F0 - .align 2, 0 -_080BC3CC: .4byte gUnknown_20397EC -_080BC3D0: .4byte 0x0000060C -_080BC3D4: .4byte 0x00000181 -_080BC3D8: .4byte gUnknown_853932A -_080BC3DC: - ldr r4, _080BC458 - lsls r0, r4, #0x10 - mov r5, sp - ldr r7, _080BC45C - ldr r6, _080BC460 -_080BC3E6: - ldr r1, _080BC464 - asrs r0, r0, #0xf - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r5, #4] - ldrh r0, [r5, #4] - bl sub_0806CF1C - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrh r2, [r5] - cmp r0, r2 - bhi _080BC446 - ldrh r0, [r5, #4] - movs r1, #1 - bl GetSetPokedexFlag - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080BC446 - ldr r2, [r7] - adds r3, r2, r6 - ldrh r0, [r3] - lsls r0, r0, #2 - adds r0, r2, r0 - ldrh r1, [r5, #4] - strh r1, [r0] - ldrh r0, [r3] - lsls r0, r0, #2 - adds r2, r2, r0 - ldrb r0, [r2, #2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #2] - ldr r2, [r7] - adds r0, r2, r6 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r2, r2, r0 - ldrb r0, [r2, #2] - movs r1, #2 - orrs r0, r1 - strb r0, [r2, #2] - ldr r1, [r7] - adds r1, r1, r6 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_080BC446: - lsls r0, r4, #0x10 - ldr r3, _080BC468 - adds r0, r0, r3 - lsrs r4, r0, #0x10 - lsls r0, r4, #0x10 - cmp r0, #0 - bge _080BC3E6 - b _080BC4F0 - .align 2, 0 -_080BC458: .4byte 0x00000181 -_080BC45C: .4byte gUnknown_20397EC -_080BC460: .4byte 0x0000060C -_080BC464: .4byte gUnknown_853962E -_080BC468: .4byte 0xFFFF0000 -_080BC46C: - movs r4, #0 - mov r5, sp - ldr r7, _080BC554 - mov r8, r7 - ldr r6, _080BC558 - ldr r0, _080BC55C - mov sb, r0 -_080BC47A: - ldr r1, _080BC560 - lsls r4, r4, #0x10 - asrs r0, r4, #0xf - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r5, #4] - ldrh r0, [r5, #4] - bl sub_0806CF1C - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r7, r4, #0 - ldrh r1, [r5] - cmp r0, r1 - bhi _080BC4E2 - ldrh r0, [r5, #4] - movs r1, #1 - bl GetSetPokedexFlag - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080BC4E2 - mov r3, r8 - ldr r2, [r3] - adds r3, r2, r6 - ldrh r0, [r3] - lsls r0, r0, #2 - adds r0, r2, r0 - ldrh r1, [r5, #4] - strh r1, [r0] - ldrh r0, [r3] - lsls r0, r0, #2 - adds r2, r2, r0 - ldrb r0, [r2, #2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #2] - mov r4, r8 - ldr r2, [r4] - adds r0, r2, r6 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r2, r2, r0 - ldrb r0, [r2, #2] - movs r1, #2 - orrs r0, r1 - strb r0, [r2, #2] - ldr r1, [r4] - adds r1, r1, r6 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_080BC4E2: - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r7, r1 - lsrs r4, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, sb - ble _080BC47A -_080BC4F0: - ldr r1, _080BC554 - ldr r0, [r1] - ldr r2, _080BC558 - adds r0, r0, r2 - ldrh r4, [r0] - lsls r3, r4, #0x10 - asrs r0, r3, #0x10 - ldr r2, _080BC55C - cmp r0, r2 - bgt _080BC544 - adds r5, r1, #0 - movs r4, #2 - rsbs r4, r4, #0 - mov sb, r4 - movs r7, #3 - rsbs r7, r7, #0 - mov r8, r7 - adds r7, r2, #0 - ldr r0, _080BC564 - adds r6, r0, #0 -_080BC518: - ldr r1, [r5] - asrs r3, r3, #0x10 - lsls r4, r3, #2 - adds r1, r1, r4 - ldrh r0, [r1] - orrs r0, r6 - strh r0, [r1] - ldrb r2, [r1, #2] - mov r0, sb - ands r0, r2 - strb r0, [r1, #2] - ldr r1, [r5] - adds r1, r1, r4 - ldrb r2, [r1, #2] - mov r0, r8 - ands r0, r2 - strb r0, [r1, #2] - adds r3, #1 - lsls r3, r3, #0x10 - asrs r0, r3, #0x10 - cmp r0, r7 - ble _080BC518 -_080BC544: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080BC554: .4byte gUnknown_20397EC -_080BC558: .4byte 0x0000060C -_080BC55C: .4byte 0x00000181 -_080BC560: .4byte gUnknown_853962E -_080BC564: .4byte 0x0000FFFF - thumb_func_end sub_080BC010 - - thumb_func_start PrintMonDexNumAndName -PrintMonDexNumAndName: @ 0x080BC568 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0x18 - mov r8, r3 - ldr r3, [sp, #0x2c] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r3, r3, #0x18 - add r4, sp, #0x14 - movs r6, #0 - strb r6, [r4] - adds r5, r4, #0 - movs r4, #0xf - strb r4, [r5, #1] - movs r4, #3 - strb r4, [r5, #2] - mov r4, r8 - lsls r4, r4, #0x1b - lsrs r4, r4, #0x18 - mov r8, r4 - lsrs r3, r3, #0x15 - adds r3, #2 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r6, [sp] - str r6, [sp, #4] - str r5, [sp, #8] - movs r4, #1 - rsbs r4, r4, #0 - str r4, [sp, #0xc] - str r2, [sp, #0x10] - mov r2, r8 - bl AddTextPrinterParameterized4 - add sp, #0x18 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PrintMonDexNumAndName - - thumb_func_start CreateMonListEntry -CreateMonListEntry: @ 0x080BC5C0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r7, r2, #0x10 - cmp r0, #1 - beq _080BC6B8 - cmp r0, #1 - ble _080BC5E4 - cmp r0, #2 - bne _080BC5E4 - b _080BC7B0 -_080BC5E4: - subs r0, r1, #5 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - movs r0, #0 - mov sb, r0 -_080BC5EE: - lsls r0, r1, #0x10 - lsrs r5, r0, #0x10 - mov sl, r0 - ldr r1, _080BC620 - cmp r5, r1 - bhi _080BC60E - ldr r2, _080BC624 - mov r8, r2 - ldr r0, [r2] - mov r3, sl - asrs r6, r3, #0xe - adds r0, r0, r6 - ldrh r0, [r0] - ldr r1, _080BC628 - cmp r0, r1 - bne _080BC62C -_080BC60E: - mov r2, sb - lsls r1, r2, #0x19 - lsrs r1, r1, #0x18 - movs r0, #0x11 - adds r2, r7, #0 - bl sub_080BCA2C - b _080BC6A0 - .align 2, 0 -_080BC620: .4byte 0x00000181 -_080BC624: .4byte gUnknown_20397EC -_080BC628: .4byte 0x0000FFFF -_080BC62C: - mov r3, sb - lsls r0, r3, #0x19 - lsrs r4, r0, #0x18 - movs r0, #0x11 - adds r1, r4, #0 - adds r2, r7, #0 - bl sub_080BCA2C - mov r1, r8 - ldr r0, [r1] - adds r0, r0, r6 - ldrb r0, [r0, #2] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _080BC67E - adds r0, r5, #0 - movs r1, #0x12 - adds r2, r4, #0 - adds r3, r7, #0 - bl CreateMonDexNum - mov r2, r8 - ldr r0, [r2] - adds r0, r0, r6 - ldrb r0, [r0, #2] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1f - movs r1, #0x11 - adds r2, r4, #0 - adds r3, r7, #0 - bl CreateCaughtBall - mov r3, r8 - ldr r0, [r3] - adds r0, r0, r6 - ldrh r0, [r0] - movs r1, #0x17 - adds r2, r4, #0 - bl sub_080BC978 - b _080BC6A0 -_080BC67E: - adds r0, r5, #0 - movs r1, #0x12 - adds r2, r4, #0 - adds r3, r7, #0 - bl CreateMonDexNum - movs r0, #0 - movs r1, #0x11 - adds r2, r4, #0 - adds r3, r7, #0 - bl CreateCaughtBall - movs r0, #0 - movs r1, #0x17 - adds r2, r4, #0 - bl sub_080BC978 -_080BC6A0: - movs r0, #0x80 - lsls r0, r0, #9 - add r0, sl - lsrs r1, r0, #0x10 - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - cmp r0, #0xa - bls _080BC5EE - b _080BC87A -_080BC6B8: - subs r0, r1, #5 - lsls r1, r0, #0x10 - lsrs r5, r1, #0x10 - ldr r0, _080BC6E8 - ldr r2, _080BC6EC - cmp r5, r0 - bhi _080BC6D6 - adds r6, r2, #0 - ldr r3, [r6] - asrs r4, r1, #0xe - adds r0, r3, r4 - ldrh r1, [r0] - ldr r0, _080BC6F0 - cmp r1, r0 - bne _080BC6F4 -_080BC6D6: - ldr r0, [r2] - movs r1, #0xc6 - lsls r1, r1, #3 - adds r0, r0, r1 - movs r2, #0 - ldrsh r1, [r0, r2] - lsls r1, r1, #0x19 - b _080BC7EE - .align 2, 0 -_080BC6E8: .4byte 0x00000181 -_080BC6EC: .4byte gUnknown_20397EC -_080BC6F0: .4byte 0x0000FFFF -_080BC6F4: - movs r1, #0xc6 - lsls r1, r1, #3 - adds r0, r3, r1 - movs r2, #0 - ldrsh r1, [r0, r2] - lsls r1, r1, #0x19 - lsrs r1, r1, #0x18 - movs r0, #0x11 - adds r2, r7, #0 - bl sub_080BCA2C - ldr r1, [r6] - adds r0, r1, r4 - ldrb r0, [r0, #2] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _080BC764 - movs r3, #0xc6 - lsls r3, r3, #3 - adds r0, r1, r3 - movs r1, #0 - ldrsh r2, [r0, r1] - lsls r2, r2, #0x19 - lsrs r2, r2, #0x18 - adds r0, r5, #0 - movs r1, #0x12 - adds r3, r7, #0 - bl CreateMonDexNum - ldr r1, [r6] - adds r0, r1, r4 - ldrb r0, [r0, #2] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1f - movs r2, #0xc6 - lsls r2, r2, #3 - adds r1, r1, r2 - movs r3, #0 - ldrsh r2, [r1, r3] - lsls r2, r2, #0x19 - lsrs r2, r2, #0x18 - movs r1, #0x11 - adds r3, r7, #0 - bl CreateCaughtBall - ldr r1, [r6] - adds r0, r1, r4 - ldrh r0, [r0] - movs r2, #0xc6 - lsls r2, r2, #3 - adds r1, r1, r2 - movs r3, #0 - ldrsh r2, [r1, r3] - lsls r2, r2, #0x19 - lsrs r2, r2, #0x18 - b _080BC7A8 -_080BC764: - movs r2, #0xc6 - lsls r2, r2, #3 - adds r0, r1, r2 - movs r3, #0 - ldrsh r2, [r0, r3] - lsls r2, r2, #0x19 - lsrs r2, r2, #0x18 - adds r0, r5, #0 - movs r1, #0x12 - adds r3, r7, #0 - bl CreateMonDexNum - ldr r0, [r6] - movs r1, #0xc6 - lsls r1, r1, #3 - adds r0, r0, r1 - movs r3, #0 - ldrsh r2, [r0, r3] - lsls r2, r2, #0x19 - lsrs r2, r2, #0x18 - movs r0, #0 - movs r1, #0x11 - adds r3, r7, #0 - bl CreateCaughtBall - ldr r0, [r6] - movs r1, #0xc6 - lsls r1, r1, #3 - adds r0, r0, r1 - movs r3, #0 - ldrsh r2, [r0, r3] - lsls r2, r2, #0x19 - lsrs r2, r2, #0x18 - movs r0, #0 -_080BC7A8: - movs r1, #0x17 - bl sub_080BC978 - b _080BC87A -_080BC7B0: - adds r0, r1, #5 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r0, _080BC7FC - mov r8, r0 - ldr r3, [r0] - movs r2, #0xc6 - lsls r2, r2, #3 - adds r0, r3, r2 - ldrh r0, [r0] - adds r0, #0xa - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0xf - bls _080BC7D6 - adds r0, r2, #0 - subs r0, #0x10 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 -_080BC7D6: - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - ldr r0, _080BC800 - cmp r5, r0 - bhi _080BC7EC - asrs r6, r1, #0xe - adds r0, r3, r6 - ldrh r1, [r0] - ldr r0, _080BC804 - cmp r1, r0 - bne _080BC808 -_080BC7EC: - lsls r1, r2, #0x19 -_080BC7EE: - lsrs r1, r1, #0x18 - movs r0, #0x11 - adds r2, r7, #0 - bl sub_080BCA2C - b _080BC87A - .align 2, 0 -_080BC7FC: .4byte gUnknown_20397EC -_080BC800: .4byte 0x00000181 -_080BC804: .4byte 0x0000FFFF -_080BC808: - lsls r0, r2, #0x19 - lsrs r4, r0, #0x18 - movs r0, #0x11 - adds r1, r4, #0 - adds r2, r7, #0 - bl sub_080BCA2C - mov r3, r8 - ldr r0, [r3] - adds r0, r0, r6 - ldrb r0, [r0, #2] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _080BC858 - adds r0, r5, #0 - movs r1, #0x12 - adds r2, r4, #0 - adds r3, r7, #0 - bl CreateMonDexNum - mov r1, r8 - ldr r0, [r1] - adds r0, r0, r6 - ldrb r0, [r0, #2] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1f - movs r1, #0x11 - adds r2, r4, #0 - adds r3, r7, #0 - bl CreateCaughtBall - mov r2, r8 - ldr r0, [r2] - adds r0, r0, r6 - ldrh r0, [r0] - movs r1, #0x17 - adds r2, r4, #0 - bl sub_080BC978 - b _080BC87A -_080BC858: - adds r0, r5, #0 - movs r1, #0x12 - adds r2, r4, #0 - adds r3, r7, #0 - bl CreateMonDexNum - movs r0, #0 - movs r1, #0x11 - adds r2, r4, #0 - adds r3, r7, #0 - bl CreateCaughtBall - movs r0, #0 - movs r1, #0x17 - adds r2, r4, #0 - bl sub_080BC978 -_080BC87A: - movs r0, #0 - movs r1, #2 - bl CopyWindowToVram - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end CreateMonListEntry - - thumb_func_start CreateMonDexNum -CreateMonDexNum: @ 0x080BC890 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - ldr r1, _080BC924 - add r0, sp, #4 - movs r2, #6 - bl memcpy - ldr r0, _080BC928 - ldr r0, [r0] - lsls r4, r4, #2 - adds r4, r0, r4 - ldrh r6, [r4] - ldr r1, _080BC92C - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0 - bne _080BC8D0 - adds r0, r6, #0 - bl sub_0806CF1C - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_080BC8D0: - add r4, sp, #4 - adds r0, r6, #0 - movs r1, #0x64 - bl __udivsi3 - adds r0, #0xa1 - strb r0, [r4, #2] - add r5, sp, #4 - adds r0, r6, #0 - movs r1, #0x64 - bl __umodsi3 - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r4, #0 - movs r1, #0xa - bl __udivsi3 - adds r0, #0xa1 - strb r0, [r5, #3] - add r5, sp, #4 - adds r0, r4, #0 - movs r1, #0xa - bl __umodsi3 - adds r0, #0xa1 - strb r0, [r5, #4] - str r7, [sp] - movs r0, #0 - movs r1, #1 - add r2, sp, #4 - mov r3, r8 - bl PrintMonDexNumAndName - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080BC924: .4byte gUnknown_8539C08 -_080BC928: .4byte gUnknown_20397EC -_080BC92C: .4byte 0x00000612 - thumb_func_end CreateMonDexNum - - thumb_func_start CreateCaughtBall -CreateCaughtBall: @ 0x080BC930 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r4, r2, #0x18 - cmp r0, #0 - beq _080BC95C - ldr r1, _080BC958 - lsls r2, r3, #3 - lsls r3, r4, #3 - movs r0, #8 - str r0, [sp] - movs r0, #0x10 - str r0, [sp, #4] - movs r0, #0 - bl BlitBitmapToWindow - b _080BC970 - .align 2, 0 -_080BC958: .4byte gUnknown_8539C0E -_080BC95C: - lsls r2, r3, #3 - lsls r3, r4, #3 - movs r0, #8 - str r0, [sp] - movs r0, #0x10 - str r0, [sp, #4] - movs r0, #0 - movs r1, #0 - bl sub_08003A34 -_080BC970: - add sp, #8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end CreateCaughtBall - - thumb_func_start sub_080BC978 -sub_080BC978: @ 0x080BC978 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x10 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - movs r4, #0 - movs r1, #0 -_080BC992: - mov r0, sp - adds r0, r0, r4 - adds r0, #4 - strb r1, [r0] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #4 - bls _080BC992 - add r0, sp, #4 - movs r1, #0xff - strb r1, [r0, #5] - adds r0, r5, #0 - bl sub_0806CED0 - adds r5, r0, #0 - cmp r5, #0 - beq _080BC9F8 - movs r4, #0 - ldr r1, _080BC9F4 - lsls r3, r5, #1 - adds r0, r3, r5 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0xff - beq _080BCA0E - adds r6, r1, #0 -_080BC9CA: - mov r2, sp - adds r2, r2, r4 - adds r2, #4 - adds r1, r3, r5 - lsls r1, r1, #1 - adds r0, r4, r1 - adds r0, r0, r6 - ldrb r0, [r0] - strb r0, [r2] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r1, r4, r1 - adds r1, r1, r6 - ldrb r0, [r1] - cmp r0, #0xff - beq _080BCA0E - cmp r4, #9 - bls _080BC9CA - b _080BCA0E - .align 2, 0 -_080BC9F4: .4byte gUnknown_82EA31C -_080BC9F8: - movs r4, #0 - movs r1, #0xae -_080BC9FC: - mov r0, sp - adds r0, r0, r4 - adds r0, #4 - strb r1, [r0] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #4 - bls _080BC9FC -_080BCA0E: - str r7, [sp] - movs r0, #0 - movs r1, #1 - add r2, sp, #4 - mov r3, r8 - bl PrintMonDexNumAndName - adds r0, r4, #0 - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080BC978 - - thumb_func_start sub_080BCA2C -sub_080BCA2C: @ 0x080BCA2C - push {lr} - sub sp, #8 - adds r2, r0, #0 - adds r3, r1, #0 - lsls r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r2, r2, #0x15 - lsrs r3, r3, #0x15 - movs r0, #0x60 - str r0, [sp] - movs r0, #0x10 - str r0, [sp, #4] - movs r0, #0 - movs r1, #0 - bl sub_08003A34 - add sp, #8 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080BCA2C - - thumb_func_start CreateInitialPokemonSprites -CreateInitialPokemonSprites: @ 0x080BCA54 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r8, r1 - ldr r2, _080BCB7C - ldrb r0, [r2, #8] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #8] - movs r2, #0 - ldr r7, _080BCB80 - adds r5, r7, #0 - ldr r4, _080BCB84 - ldr r0, _080BCB88 - adds r3, r0, #0 -_080BCA7A: - ldr r1, [r5] - lsls r0, r2, #1 - adds r1, r1, r4 - adds r1, r1, r0 - ldrh r0, [r1] - orrs r0, r3 - strh r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #3 - bls _080BCA7A - ldr r0, [r7] - ldr r1, _080BCB8C - adds r0, r0, r1 - ldr r1, _080BCB88 - strh r1, [r0] - subs r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetPokemonSpriteToDisplay - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _080BCB88 - cmp r0, r4 - beq _080BCAD4 - movs r1, #0x60 - movs r2, #0x50 - bl sub_080BD26C - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r3, _080BCB90 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r3, #0 - adds r1, #0x1c - adds r1, r0, r1 - ldr r2, _080BCB94 - str r2, [r1] - adds r0, r0, r3 - ldr r1, _080BCB98 - strh r1, [r0, #0x38] -_080BCAD4: - adds r0, r6, #0 - bl GetPokemonSpriteToDisplay - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r4 - beq _080BCB06 - movs r1, #0x60 - movs r2, #0x50 - bl sub_080BD26C - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r3, _080BCB90 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r3, #0 - adds r1, #0x1c - adds r1, r0, r1 - ldr r2, _080BCB94 - str r2, [r1] - adds r0, r0, r3 - movs r1, #0 - strh r1, [r0, #0x38] -_080BCB06: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetPokemonSpriteToDisplay - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r4 - beq _080BCB3C - movs r1, #0x60 - movs r2, #0x50 - bl sub_080BD26C - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r3, _080BCB90 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r3, #0 - adds r1, #0x1c - adds r1, r0, r1 - ldr r2, _080BCB94 - str r2, [r1] - adds r0, r0, r3 - movs r1, #0x20 - strh r1, [r0, #0x38] -_080BCB3C: - movs r0, #0 - adds r1, r6, #0 - mov r2, r8 - bl CreateMonListEntry - ldr r0, [r7] - ldr r2, _080BCB9C - adds r0, r0, r2 - ldrb r1, [r0] - movs r0, #0x1a - bl SetGpuReg - ldr r0, [r7] - movs r2, #0xc6 - lsls r2, r2, #3 - adds r1, r0, r2 - movs r2, #0 - strh r2, [r1] - ldr r1, _080BCBA0 - adds r0, r0, r1 - strh r2, [r0] - ldr r2, _080BCB7C - ldrb r1, [r2, #8] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #8] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080BCB7C: .4byte gUnknown_2037C74 -_080BCB80: .4byte gUnknown_20397EC -_080BCB84: .4byte 0x0000061E -_080BCB88: .4byte 0x0000FFFF -_080BCB8C: .4byte 0x00000626 -_080BCB90: .4byte gUnknown_20205AC -_080BCB94: .4byte sub_080BDC80 -_080BCB98: .4byte 0x0000FFE0 -_080BCB9C: .4byte 0x0000062D -_080BCBA0: .4byte 0x00000632 - thumb_func_end CreateInitialPokemonSprites - - thumb_func_start sub_080BCBA4 -sub_080BCBA4: @ 0x080BCBA4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - ldr r0, _080BCBD8 - ldr r1, [r0] - ldr r3, _080BCBDC - adds r2, r1, r3 - ldrb r3, [r2] - adds r7, r0, #0 - cmp r3, #0 - bne _080BCBC8 - b _080BCD18 -_080BCBC8: - subs r0, r3, #1 - strb r0, [r2] - cmp r4, #1 - beq _080BCBE0 - cmp r4, #2 - beq _080BCC7C - b _080BCCF8 - .align 2, 0 -_080BCBD8: .4byte gUnknown_20397EC -_080BCBDC: .4byte 0x0000062E -_080BCBE0: - movs r3, #0 - ldr r4, _080BCC60 - mov ip, r4 - ldr r0, _080BCC64 - mov r8, r0 - adds r2, r7, #0 -_080BCBEC: - ldr r0, [r2] - lsls r1, r3, #1 - ldr r4, _080BCC68 - adds r0, r0, r4 - adds r1, r0, r1 - ldrh r0, [r1] - cmp r0, ip - beq _080BCC0A - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - add r1, r8 - ldrh r0, [r1, #0x38] - adds r0, r0, r5 - strh r0, [r1, #0x38] -_080BCC0A: - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #3 - bls _080BCBEC - ldr r4, [r7] - ldr r1, _080BCC6C - adds r0, r4, r1 - ldrb r0, [r0] - subs r0, r6, r0 - lsls r0, r0, #4 - adds r1, r6, #0 - bl __divsi3 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r3, _080BCC70 - adds r0, r4, r3 - ldr r1, _080BCC74 - adds r4, r4, r1 - movs r3, #0 - ldrsh r1, [r4, r3] - lsls r1, r1, #4 - ldrb r0, [r0] - adds r1, r1, r0 - subs r1, r1, r2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x1a - bl SetGpuReg - ldr r0, [r7] - ldr r4, _080BCC78 - adds r2, r0, r4 - movs r1, #0xc5 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrb r1, [r0] - ldrb r0, [r2] - subs r0, r0, r1 - strb r0, [r2] - b _080BCCF8 - .align 2, 0 -_080BCC60: .4byte 0x0000FFFF -_080BCC64: .4byte gUnknown_20205AC -_080BCC68: .4byte 0x0000061E -_080BCC6C: .4byte 0x0000062E -_080BCC70: .4byte 0x0000062D -_080BCC74: .4byte 0x00000632 -_080BCC78: .4byte 0x0000062C -_080BCC7C: - movs r3, #0 - ldr r2, _080BCCFC - mov ip, r2 - ldr r4, _080BCD00 - mov r8, r4 - adds r2, r7, #0 -_080BCC88: - ldr r0, [r2] - lsls r1, r3, #1 - ldr r4, _080BCD04 - adds r0, r0, r4 - adds r1, r0, r1 - ldrh r0, [r1] - cmp r0, ip - beq _080BCCA6 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - add r1, r8 - ldrh r0, [r1, #0x38] - subs r0, r0, r5 - strh r0, [r1, #0x38] -_080BCCA6: - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #3 - bls _080BCC88 - ldr r4, [r7] - ldr r1, _080BCD08 - adds r0, r4, r1 - ldrb r0, [r0] - subs r0, r6, r0 - lsls r0, r0, #4 - adds r1, r6, #0 - bl __divsi3 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r3, _080BCD0C - adds r0, r4, r3 - ldr r1, _080BCD10 - adds r4, r4, r1 - movs r3, #0 - ldrsh r1, [r4, r3] - lsls r1, r1, #4 - ldrb r0, [r0] - adds r1, r1, r0 - adds r1, r1, r2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x1a - bl SetGpuReg - ldr r0, [r7] - ldr r4, _080BCD14 - adds r1, r0, r4 - movs r2, #0xc5 - lsls r2, r2, #3 - adds r0, r0, r2 - ldrb r0, [r0] - ldrb r3, [r1] - adds r0, r0, r3 - strb r0, [r1] -_080BCCF8: - movs r0, #0 - b _080BCD38 - .align 2, 0 -_080BCCFC: .4byte 0x0000FFFF -_080BCD00: .4byte gUnknown_20205AC -_080BCD04: .4byte 0x0000061E -_080BCD08: .4byte 0x0000062E -_080BCD0C: .4byte 0x0000062D -_080BCD10: .4byte 0x00000632 -_080BCD14: .4byte 0x0000062C -_080BCD18: - ldr r4, _080BCD44 - adds r2, r1, r4 - movs r3, #0xc6 - lsls r3, r3, #3 - adds r0, r1, r3 - movs r4, #0 - ldrsh r1, [r0, r4] - lsls r1, r1, #4 - ldrb r2, [r2] - adds r1, r1, r2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x1a - bl SetGpuReg - movs r0, #1 -_080BCD38: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080BCD44: .4byte 0x0000062D - thumb_func_end sub_080BCBA4 - - thumb_func_start CreateNewPokemonSprite -CreateNewPokemonSprite: @ 0x080BCD48 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r3, r1, #0x10 - ldr r4, _080BCD70 - ldr r0, [r4] - movs r5, #0xc6 - lsls r5, r5, #3 - adds r1, r0, r5 - ldrh r1, [r1] - ldr r6, _080BCD74 - adds r0, r0, r6 - strh r1, [r0] - cmp r2, #1 - beq _080BCD78 - cmp r2, #2 - beq _080BCDD8 - b _080BCE34 - .align 2, 0 -_080BCD70: .4byte gUnknown_20397EC -_080BCD74: .4byte 0x00000632 -_080BCD78: - subs r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetPokemonSpriteToDisplay - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r0, _080BCDC4 - cmp r1, r0 - beq _080BCDB2 - adds r0, r1, #0 - movs r1, #0x60 - movs r2, #0x50 - bl sub_080BD26C - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r3, _080BCDC8 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r3, #0 - adds r1, #0x1c - adds r1, r0, r1 - ldr r2, _080BCDCC - str r2, [r1] - adds r0, r0, r3 - ldr r1, _080BCDD0 - strh r1, [r0, #0x38] -_080BCDB2: - ldr r0, [r4] - adds r1, r0, r5 - ldrh r2, [r1] - movs r3, #0 - ldrsh r0, [r1, r3] - cmp r0, #0 - ble _080BCDD4 - subs r0, r2, #1 - b _080BCE32 - .align 2, 0 -_080BCDC4: .4byte 0x0000FFFF -_080BCDC8: .4byte gUnknown_20205AC -_080BCDCC: .4byte sub_080BDC80 -_080BCDD0: .4byte 0x0000FFC0 -_080BCDD4: - movs r0, #0xf - b _080BCE32 -_080BCDD8: - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetPokemonSpriteToDisplay - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r0, _080BCE24 - cmp r1, r0 - beq _080BCE12 - adds r0, r1, #0 - movs r1, #0x60 - movs r2, #0x50 - bl sub_080BD26C - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r3, _080BCE28 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r3, #0 - adds r1, #0x1c - adds r1, r0, r1 - ldr r2, _080BCE2C - str r2, [r1] - adds r0, r0, r3 - movs r1, #0x40 - strh r1, [r0, #0x38] -_080BCE12: - ldr r0, [r4] - adds r1, r0, r5 - ldrh r2, [r1] - movs r6, #0 - ldrsh r0, [r1, r6] - cmp r0, #0xe - bgt _080BCE30 - adds r0, r2, #1 - b _080BCE32 - .align 2, 0 -_080BCE24: .4byte 0x0000FFFF -_080BCE28: .4byte gUnknown_20205AC -_080BCE2C: .4byte sub_080BDC80 -_080BCE30: - movs r0, #0 -_080BCE32: - strh r0, [r1] -_080BCE34: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CreateNewPokemonSprite - - thumb_func_start sub_080BCE3C -sub_080BCE3C: @ 0x080BCE3C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - movs r0, #0 - mov sl, r0 - ldr r2, _080BCE90 - ldrh r1, [r2, #0x2c] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080BCE9C - cmp r7, #0 - beq _080BCE9C - movs r1, #1 - mov sl, r1 - ldr r0, _080BCE94 - ldr r0, [r0] - ldr r2, _080BCE98 - adds r0, r0, r2 - ldrh r3, [r0] - subs r3, #1 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - movs r0, #1 - adds r1, r7, #0 - movs r2, #0 - bl sub_080C0364 - adds r7, r0, #0 - movs r0, #1 - adds r1, r7, #0 - bl CreateNewPokemonSprite - movs r0, #1 - b _080BCED4 - .align 2, 0 -_080BCE90: .4byte gUnknown_3002360 -_080BCE94: .4byte gUnknown_20397EC -_080BCE98: .4byte 0x0000060C -_080BCE9C: - ldrh r1, [r2, #0x2c] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080BCEEC - ldr r0, _080BCEE4 - ldr r0, [r0] - ldr r3, _080BCEE8 - adds r0, r0, r3 - ldrh r0, [r0] - subs r0, #1 - cmp r7, r0 - bge _080BCEEC - movs r1, #2 - mov sl, r1 - lsls r3, r0, #0x10 - lsrs r3, r3, #0x10 - movs r0, #0 - adds r1, r7, #0 - movs r2, #0 - bl sub_080C0364 - adds r7, r0, #0 - movs r0, #2 - adds r1, r7, #0 - bl CreateNewPokemonSprite - movs r0, #2 -_080BCED4: - adds r1, r7, #0 - adds r2, r4, #0 - bl CreateMonListEntry - movs r0, #0x6c - bl sub_080A306C - b _080BCFBA - .align 2, 0 -_080BCEE4: .4byte gUnknown_20397EC -_080BCEE8: .4byte 0x0000060C -_080BCEEC: - ldrh r1, [r2, #0x2e] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080BCF54 - cmp r7, #0 - beq _080BCF54 - adds r6, r7, #0 - movs r4, #0 -_080BCEFE: - ldr r5, _080BCF48 - ldr r0, [r5] - ldr r2, _080BCF4C - adds r0, r0, r2 - ldrh r3, [r0] - subs r3, #1 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - movs r0, #1 - adds r1, r7, #0 - movs r2, #0 - bl sub_080C0364 - adds r7, r0, #0 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #6 - bls _080BCEFE - ldr r1, [r5] - ldr r3, _080BCF50 - adds r1, r1, r3 - subs r0, r7, r6 - lsls r0, r0, #4 - ldrb r2, [r1] - adds r0, r0, r2 - strb r0, [r1] - bl sub_080BD1E0 - adds r0, r7, #0 - movs r1, #0xe - bl CreateInitialPokemonSprites - movs r0, #0x6d - bl sub_080A306C - b _080BCFBA - .align 2, 0 -_080BCF48: .4byte gUnknown_20397EC -_080BCF4C: .4byte 0x0000060C -_080BCF50: .4byte 0x0000062C -_080BCF54: - ldrh r1, [r2, #0x2e] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080BCFBA - ldr r0, _080BCFD0 - ldr r0, [r0] - ldr r3, _080BCFD4 - adds r0, r0, r3 - ldrh r0, [r0] - subs r0, #1 - cmp r7, r0 - bge _080BCFBA - adds r6, r7, #0 - movs r4, #0 -_080BCF72: - ldr r5, _080BCFD0 - ldr r0, [r5] - ldr r1, _080BCFD4 - adds r0, r0, r1 - ldrh r3, [r0] - subs r3, #1 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - movs r0, #0 - adds r1, r7, #0 - movs r2, #0 - bl sub_080C0364 - adds r7, r0, #0 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #6 - bls _080BCF72 - ldr r1, [r5] - ldr r2, _080BCFD8 - adds r1, r1, r2 - subs r0, r7, r6 - lsls r0, r0, #4 - ldrb r3, [r1] - adds r0, r0, r3 - strb r0, [r1] - bl sub_080BD1E0 - adds r0, r7, #0 - movs r1, #0xe - bl CreateInitialPokemonSprites - movs r0, #0x6d - bl sub_080A306C -_080BCFBA: - mov r0, sl - cmp r0, #0 - bne _080BCFDC - ldr r0, _080BCFD0 - ldr r0, [r0] - movs r1, #0xc7 - lsls r1, r1, #3 - adds r0, r0, r1 - mov r2, sl - strh r2, [r0] - b _080BD042 - .align 2, 0 -_080BCFD0: .4byte gUnknown_20397EC -_080BCFD4: .4byte 0x0000060C -_080BCFD8: .4byte 0x0000062C -_080BCFDC: - ldr r1, _080BD054 - ldr r6, _080BD058 - ldr r2, [r6] - movs r3, #0xc7 - lsls r3, r3, #3 - mov sb, r3 - adds r0, r2, r3 - ldrh r0, [r0] - lsrs r0, r0, #2 - adds r1, r0, r1 - ldrb r5, [r1] - ldr r1, _080BD05C - adds r0, r0, r1 - ldrb r3, [r0] - ldr r0, _080BD060 - adds r2, r2, r0 - strb r3, [r2] - ldr r1, [r6] - ldr r2, _080BD064 - mov r8, r2 - adds r0, r1, r2 - strh r3, [r0] - ldr r4, _080BD068 - adds r0, r1, r4 - strh r5, [r0] - ldr r3, _080BD06C - adds r1, r1, r3 - mov r0, sl - strb r0, [r1] - ldr r2, [r6] - lsrs r5, r5, #1 - movs r1, #0xc5 - lsls r1, r1, #3 - adds r0, r2, r1 - strh r5, [r0] - adds r3, r2, r3 - ldrb r0, [r3] - adds r4, r2, r4 - ldrb r1, [r4] - add r2, r8 - ldrb r2, [r2] - bl sub_080BCBA4 - ldr r0, [r6] - mov r2, sb - adds r1, r0, r2 - ldrh r0, [r1] - cmp r0, #0xb - bhi _080BD042 - adds r0, #1 - strh r0, [r1] -_080BD042: - adds r0, r7, #0 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080BD054: .4byte gUnknown_8539BDC -_080BD058: .4byte gUnknown_20397EC -_080BD05C: .4byte gUnknown_8539BE1 -_080BD060: .4byte 0x0000062E -_080BD064: .4byte 0x00000636 -_080BD068: .4byte 0x00000634 -_080BD06C: .4byte 0x0000062F - thumb_func_end sub_080BCE3C - - thumb_func_start sub_080BD070 -sub_080BD070: @ 0x080BD070 - push {r4, r5, r6, r7, lr} - movs r4, #0 - ldr r0, _080BD0BC - mov ip, r0 - ldr r6, _080BD0C0 - ldr r5, _080BD0C4 -_080BD07C: - mov r1, ip - ldr r3, [r1] - lsls r1, r4, #1 - ldr r2, _080BD0C8 - adds r0, r3, r2 - adds r0, r0, r1 - ldrh r2, [r0] - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r1, r0, r6 - movs r7, #0x24 - ldrsh r0, [r1, r7] - cmp r0, #0 - bne _080BD0AC - movs r7, #0x26 - ldrsh r0, [r1, r7] - cmp r0, #0 - bne _080BD0AC - cmp r2, r5 - beq _080BD0AC - ldr r1, _080BD0CC - adds r0, r3, r1 - strh r2, [r0] -_080BD0AC: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #3 - bls _080BD07C - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080BD0BC: .4byte gUnknown_20397EC -_080BD0C0: .4byte gUnknown_20205AC -_080BD0C4: .4byte 0x0000FFFF -_080BD0C8: .4byte 0x0000061E -_080BD0CC: .4byte 0x00000626 - thumb_func_end sub_080BD070 - - thumb_func_start sub_080BD0D0 -sub_080BD0D0: @ 0x080BD0D0 - push {r4, r5, r6, lr} - ldr r3, _080BD130 - ldr r0, [r3] - ldr r1, _080BD134 - adds r0, r0, r1 - ldrh r4, [r0] - ldr r2, _080BD138 - ldrh r1, [r2, #0x2e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080BD158 - cmp r4, #0 - beq _080BD158 - adds r2, r4, #0 - adds r5, r3, #0 -_080BD0F0: - ldr r0, [r5] - ldr r1, _080BD13C - adds r0, r0, r1 - ldrh r3, [r0] - subs r3, #1 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - movs r0, #1 - adds r1, r2, #0 - movs r2, #0 - bl sub_080C0364 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, [r5] - lsls r1, r2, #2 - adds r0, r0, r1 - ldrb r0, [r0, #2] - lsls r0, r0, #0x1f - cmp r0, #0 - bne _080BD140 - cmp r2, #0 - bne _080BD0F0 -_080BD11E: - ldr r0, _080BD130 - ldr r1, [r0] - ldr r0, _080BD134 - adds r2, r1, r0 - ldrh r0, [r2] - cmp r0, r4 - bne _080BD144 - b _080BD1D8 - .align 2, 0 -_080BD130: .4byte gUnknown_20397EC -_080BD134: .4byte 0x0000060E -_080BD138: .4byte gUnknown_3002360 -_080BD13C: .4byte 0x0000060C -_080BD140: - adds r4, r2, #0 - b _080BD11E -_080BD144: - strh r4, [r2] - ldr r0, _080BD150 - adds r1, r1, r0 - ldrb r0, [r1] - subs r0, #0x10 - b _080BD1C0 - .align 2, 0 -_080BD150: .4byte 0x0000062C -_080BD154: - adds r4, r2, #0 - b _080BD1A8 -_080BD158: - ldrh r1, [r2, #0x2e] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080BD1D8 - ldr r0, [r3] - ldr r1, _080BD1C8 - adds r0, r0, r1 - ldrh r0, [r0] - subs r0, #1 - cmp r4, r0 - bge _080BD1D8 - adds r2, r4, #0 - adds r6, r3, #0 - adds r5, r1, #0 -_080BD176: - ldr r0, [r6] - adds r0, r0, r5 - ldrh r3, [r0] - subs r3, #1 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - movs r0, #0 - adds r1, r2, #0 - movs r2, #0 - bl sub_080C0364 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r1, [r6] - lsls r0, r2, #2 - adds r0, r1, r0 - ldrb r0, [r0, #2] - lsls r0, r0, #0x1f - cmp r0, #0 - bne _080BD154 - adds r0, r1, r5 - ldrh r0, [r0] - subs r0, #1 - cmp r2, r0 - blt _080BD176 -_080BD1A8: - ldr r0, _080BD1CC - ldr r1, [r0] - ldr r0, _080BD1D0 - adds r2, r1, r0 - ldrh r0, [r2] - cmp r0, r4 - beq _080BD1D8 - strh r4, [r2] - ldr r0, _080BD1D4 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #0x10 -_080BD1C0: - strb r0, [r1] - movs r0, #1 - b _080BD1DA - .align 2, 0 -_080BD1C8: .4byte 0x0000060C -_080BD1CC: .4byte gUnknown_20397EC -_080BD1D0: .4byte 0x0000060E -_080BD1D4: .4byte 0x0000062C -_080BD1D8: - movs r0, #0 -_080BD1DA: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_080BD0D0 - - thumb_func_start sub_080BD1E0 -sub_080BD1E0: @ 0x080BD1E0 - push {r4, r5, r6, r7, lr} - movs r5, #0 - ldr r6, _080BD220 - ldr r7, _080BD224 -_080BD1E8: - ldr r0, [r6] - lsls r4, r5, #1 - ldr r1, _080BD228 - adds r0, r0, r1 - adds r1, r0, r4 - ldrh r0, [r1] - cmp r0, r7 - beq _080BD20C - bl FreeAndDestroyMonPicSprite - ldr r1, [r6] - ldr r0, _080BD228 - adds r1, r1, r0 - adds r1, r1, r4 - ldrh r2, [r1] - adds r0, r7, #0 - orrs r0, r2 - strh r0, [r1] -_080BD20C: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #3 - bls _080BD1E8 - movs r0, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080BD220: .4byte gUnknown_20397EC -_080BD224: .4byte 0x0000FFFF -_080BD228: .4byte 0x0000061E - thumb_func_end sub_080BD1E0 - - thumb_func_start GetPokemonSpriteToDisplay -GetPokemonSpriteToDisplay: @ 0x080BD22C - push {lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, _080BD24C - cmp r2, r0 - bhi _080BD248 - ldr r0, _080BD250 - ldr r1, [r0] - lsls r0, r2, #2 - adds r2, r1, r0 - ldrh r1, [r2] - ldr r0, _080BD254 - cmp r1, r0 - bne _080BD258 -_080BD248: - ldr r0, _080BD254 - b _080BD266 - .align 2, 0 -_080BD24C: .4byte 0x00000181 -_080BD250: .4byte gUnknown_20397EC -_080BD254: .4byte 0x0000FFFF -_080BD258: - ldrb r0, [r2, #2] - lsls r0, r0, #0x1f - cmp r0, #0 - bne _080BD264 - movs r0, #0 - b _080BD266 -_080BD264: - ldrh r0, [r2] -_080BD266: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetPokemonSpriteToDisplay - - thumb_func_start sub_080BD26C -sub_080BD26C: @ 0x080BD26C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - movs r6, #0 - ldr r0, _080BD2F0 - mov sb, r0 - ldr r3, _080BD2F4 - lsls r1, r1, #0x10 -_080BD288: - mov r4, sb - ldr r0, [r4] - lsls r7, r6, #1 - ldr r4, _080BD2F8 - adds r0, r0, r4 - adds r0, r0, r7 - ldrh r0, [r0] - cmp r0, r3 - bne _080BD300 - lsls r2, r2, #0x10 - mov r0, r8 - asrs r1, r1, #0x10 - asrs r2, r2, #0x10 - adds r3, r6, #0 - bl CreateMonSpriteFromNationalDexNumber - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _080BD2FC - lsls r4, r5, #4 - adds r4, r4, r5 - lsls r4, r4, #2 - adds r4, r4, r0 - ldrb r1, [r4, #1] - movs r2, #4 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r4, #1] - ldrb r0, [r4, #5] - movs r1, #0xc - orrs r0, r1 - strb r0, [r4, #5] - movs r0, #0 - strh r0, [r4, #0x2e] - strh r6, [r4, #0x30] - mov r0, r8 - bl sub_0806CED0 - strh r0, [r4, #0x32] - mov r4, sb - ldr r0, [r4] - ldr r1, _080BD2F8 - adds r0, r0, r1 - adds r0, r0, r7 - strh r5, [r0] - adds r0, r5, #0 - b _080BD30C - .align 2, 0 -_080BD2F0: .4byte gUnknown_20397EC -_080BD2F4: .4byte 0x0000FFFF -_080BD2F8: .4byte 0x0000061E -_080BD2FC: .4byte gUnknown_20205AC -_080BD300: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #3 - bls _080BD288 - ldr r0, _080BD318 -_080BD30C: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080BD318: .4byte 0x0000FFFF - thumb_func_end sub_080BD26C - - thumb_func_start CreateInterfaceSprites -CreateInterfaceSprites: @ 0x080BD31C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov r8, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r4, _080BD4E8 - adds r0, r4, #0 - movs r1, #0xb8 - movs r2, #4 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r1, _080BD4EC - mov sl, r1 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - add r0, sl - movs r1, #0 - strh r1, [r0, #0x30] - adds r0, r4, #0 - movs r1, #0xb8 - movs r2, #0x9c - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - add r0, sl - movs r1, #1 - strh r1, [r0, #0x30] - adds r0, #0x3f - ldrb r1, [r0] - movs r2, #2 - orrs r1, r2 - strb r1, [r0] - ldr r0, _080BD4F0 - movs r1, #0xe4 - movs r2, #0x14 - movs r3, #0 - bl CreateSprite - ldr r5, _080BD4F4 - adds r0, r5, #0 - movs r1, #0x10 - movs r2, #0x78 - movs r3, #0 - bl CreateSprite - adds r0, r5, #0 - movs r1, #0x30 - movs r2, #0x78 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - add r0, sl - movs r1, #3 - bl StartSpriteAnim - adds r0, r5, #0 - movs r1, #0x10 - movs r2, #0x90 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r4, r7, #4 - adds r4, r4, r7 - lsls r4, r4, #2 - add r4, sl - adds r0, r4, #0 - movs r1, #2 - bl StartSpriteAnim - movs r0, #0x80 - mov sb, r0 - mov r1, sb - strh r1, [r4, #0x32] - adds r0, r5, #0 - movs r1, #0x30 - movs r2, #0x90 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - add r0, sl - movs r1, #1 - bl StartSpriteAnim - ldr r6, _080BD4F8 - adds r0, r6, #0 - movs r1, #0 - movs r2, #0x50 - movs r3, #2 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r1, r7, #4 - adds r1, r1, r7 - lsls r1, r1, #2 - add r1, sl - ldrb r2, [r1, #1] - movs r4, #4 - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r2 - movs r5, #1 - orrs r0, r5 - strb r0, [r1, #1] - ldrb r2, [r1, #3] - movs r0, #0x3f - rsbs r0, r0, #0 - ands r0, r2 - movs r2, #0x3c - orrs r0, r2 - strb r0, [r1, #3] - movs r0, #0x1e - strh r0, [r1, #0x2e] - movs r0, #0 - strh r0, [r1, #0x30] - adds r0, r6, #0 - movs r1, #0 - movs r2, #0x50 - movs r3, #2 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r1, r7, #4 - adds r1, r1, r7 - lsls r1, r1, #2 - add r1, sl - ldrb r0, [r1, #1] - ands r4, r0 - orrs r4, r5 - strb r4, [r1, #1] - ldrb r0, [r1, #3] - movs r2, #0x3e - orrs r0, r2 - strb r0, [r1, #3] - movs r0, #0x1f - strh r0, [r1, #0x2e] - mov r0, sb - strh r0, [r1, #0x30] - mov r1, r8 - cmp r1, #0 - beq _080BD46C - b _080BDBB4 -_080BD46C: - bl IsNationalPokedexEnabled - cmp r0, #0 - beq _080BD476 - b _080BD6EC -_080BD476: - ldr r4, _080BD4FC - adds r0, r4, #0 - movs r1, #0x20 - movs r2, #0x28 - movs r3, #1 - bl CreateSprite - adds r0, r4, #0 - movs r1, #0x20 - movs r2, #0x48 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - add r0, sl - movs r1, #1 - bl StartSpriteAnim - movs r0, #0 - mov r8, r0 - ldr r0, _080BD500 - movs r1, #0x18 - movs r2, #0x30 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _080BD504 - ldr r0, [r0] - ldr r1, _080BD508 - adds r0, r0, r1 - ldrh r0, [r0] - movs r1, #0x64 - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - mov r1, sl - adds r4, r0, r1 - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim - cmp r5, #0 - beq _080BD50C - movs r0, #1 - mov r8, r0 - b _080BD518 - .align 2, 0 -_080BD4E8: .4byte gUnknown_8539AFC -_080BD4EC: .4byte gUnknown_20205AC -_080BD4F0: .4byte gUnknown_8539AE4 -_080BD4F4: .4byte gUnknown_8539B14 -_080BD4F8: .4byte gUnknown_8539B2C -_080BD4FC: .4byte gUnknown_8539B44 -_080BD500: .4byte gUnknown_8539B74 -_080BD504: .4byte gUnknown_20397EC -_080BD508: .4byte 0x0000061A -_080BD50C: - adds r0, r4, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_080BD518: - ldr r0, _080BD564 - movs r1, #0x20 - movs r2, #0x30 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _080BD568 - ldr r0, [r0] - ldr r1, _080BD56C - adds r0, r0, r1 - ldrh r0, [r0] - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0 - bne _080BD550 - mov r0, r8 - cmp r0, #0 - beq _080BD574 -_080BD550: - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - ldr r1, _080BD570 - adds r0, r0, r1 - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - bl StartSpriteAnim - b _080BD588 - .align 2, 0 -_080BD564: .4byte gUnknown_8539B74 -_080BD568: .4byte gUnknown_20397EC -_080BD56C: .4byte 0x0000061A -_080BD570: .4byte gUnknown_20205AC -_080BD574: - ldr r1, _080BD60C - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - adds r0, r0, r1 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_080BD588: - ldr r6, _080BD610 - adds r0, r6, #0 - movs r1, #0x28 - movs r2, #0x30 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r5, _080BD614 - ldr r0, [r5] - ldr r1, _080BD618 - adds r0, r0, r1 - ldrh r0, [r0] - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __umodsi3 - adds r1, r0, #0 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - ldr r4, _080BD60C - adds r0, r0, r4 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl StartSpriteAnim - movs r0, #0 - mov r8, r0 - adds r0, r6, #0 - movs r1, #0x18 - movs r2, #0x50 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, [r5] - ldr r1, _080BD61C - adds r0, r0, r1 - ldrh r0, [r0] - movs r1, #0x64 - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - adds r4, r0, r4 - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim - cmp r5, #0 - beq _080BD620 - movs r0, #1 - mov r8, r0 - b _080BD62C - .align 2, 0 -_080BD60C: .4byte gUnknown_20205AC -_080BD610: .4byte gUnknown_8539B74 -_080BD614: .4byte gUnknown_20397EC -_080BD618: .4byte 0x0000061A -_080BD61C: .4byte 0x0000061C -_080BD620: - adds r0, r4, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_080BD62C: - ldr r0, _080BD678 - movs r1, #0x20 - movs r2, #0x50 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _080BD67C - ldr r0, [r0] - ldr r1, _080BD680 - adds r0, r0, r1 - ldrh r0, [r0] - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0 - bne _080BD664 - mov r0, r8 - cmp r0, #0 - beq _080BD688 -_080BD664: - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - ldr r1, _080BD684 - adds r0, r0, r1 - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - bl StartSpriteAnim - b _080BD69C - .align 2, 0 -_080BD678: .4byte gUnknown_8539B74 -_080BD67C: .4byte gUnknown_20397EC -_080BD680: .4byte 0x0000061C -_080BD684: .4byte gUnknown_20205AC -_080BD688: - ldr r1, _080BD6DC - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - adds r0, r0, r1 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_080BD69C: - ldr r0, _080BD6E0 - movs r1, #0x28 - movs r2, #0x50 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _080BD6E4 - ldr r0, [r0] - ldr r1, _080BD6E8 - adds r0, r0, r1 - ldrh r0, [r0] - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __umodsi3 - adds r1, r0, #0 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - ldr r2, _080BD6DC - adds r0, r0, r2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl StartSpriteAnim - b _080BDB82 - .align 2, 0 -_080BD6DC: .4byte gUnknown_20205AC -_080BD6E0: .4byte gUnknown_8539B74 -_080BD6E4: .4byte gUnknown_20397EC -_080BD6E8: .4byte 0x0000061C -_080BD6EC: - ldr r4, _080BD7B8 - adds r0, r4, #0 - movs r1, #0x20 - movs r2, #0x28 - movs r3, #1 - bl CreateSprite - adds r0, r4, #0 - movs r1, #0x20 - movs r2, #0x4c - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - add r0, sl - movs r1, #1 - bl StartSpriteAnim - ldr r4, _080BD7BC - adds r0, r4, #0 - movs r1, #0x11 - movs r2, #0x2d - movs r3, #1 - bl CreateSprite - adds r0, r4, #0 - movs r1, #0x11 - movs r2, #0x37 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - add r0, sl - movs r1, #1 - bl StartSpriteAnim - adds r0, r4, #0 - movs r1, #0x11 - movs r2, #0x51 - movs r3, #1 - bl CreateSprite - adds r0, r4, #0 - movs r1, #0x11 - movs r2, #0x5b - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - add r0, sl - movs r1, #1 - bl StartSpriteAnim - movs r0, #0 - bl GetHoennPokedexCount - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - movs r0, #0 - mov r8, r0 - ldr r0, _080BD7C0 - movs r1, #0x28 - movs r2, #0x2d - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - adds r0, r6, #0 - movs r1, #0x64 - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - mov r1, sl - adds r4, r0, r1 - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim - cmp r5, #0 - beq _080BD7C4 - movs r0, #1 - mov r8, r0 - b _080BD7D0 - .align 2, 0 -_080BD7B8: .4byte gUnknown_8539B44 -_080BD7BC: .4byte gUnknown_8539B5C -_080BD7C0: .4byte gUnknown_8539B8C -_080BD7C4: - adds r0, r4, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_080BD7D0: - ldr r0, _080BD814 - movs r1, #0x30 - movs r2, #0x2d - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - adds r0, r6, #0 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0 - bne _080BD800 - mov r1, r8 - cmp r1, #0 - beq _080BD81C -_080BD800: - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - ldr r1, _080BD818 - adds r0, r0, r1 - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - bl StartSpriteAnim - b _080BD830 - .align 2, 0 -_080BD814: .4byte gUnknown_8539B8C -_080BD818: .4byte gUnknown_20205AC -_080BD81C: - ldr r1, _080BD8AC - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - adds r0, r0, r1 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_080BD830: - ldr r5, _080BD8B0 - adds r0, r5, #0 - movs r1, #0x38 - movs r2, #0x2d - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - adds r0, r6, #0 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __umodsi3 - adds r1, r0, #0 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - ldr r4, _080BD8AC - adds r0, r0, r4 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl StartSpriteAnim - movs r0, #0 - mov r8, r0 - adds r0, r5, #0 - movs r1, #0x28 - movs r2, #0x37 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _080BD8B4 - ldr r0, [r0] - ldr r1, _080BD8B8 - adds r0, r0, r1 - ldrh r0, [r0] - movs r1, #0x64 - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - adds r4, r0, r4 - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim - cmp r5, #0 - beq _080BD8BC - movs r0, #1 - mov r8, r0 - b _080BD8C8 - .align 2, 0 -_080BD8AC: .4byte gUnknown_20205AC -_080BD8B0: .4byte gUnknown_8539B8C -_080BD8B4: .4byte gUnknown_20397EC -_080BD8B8: .4byte 0x0000061A -_080BD8BC: - adds r0, r4, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_080BD8C8: - ldr r0, _080BD914 - movs r1, #0x30 - movs r2, #0x37 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _080BD918 - ldr r0, [r0] - ldr r1, _080BD91C - adds r0, r0, r1 - ldrh r0, [r0] - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0 - bne _080BD900 - mov r0, r8 - cmp r0, #0 - beq _080BD924 -_080BD900: - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - ldr r1, _080BD920 - adds r0, r0, r1 - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - bl StartSpriteAnim - b _080BD938 - .align 2, 0 -_080BD914: .4byte gUnknown_8539B8C -_080BD918: .4byte gUnknown_20397EC -_080BD91C: .4byte 0x0000061A -_080BD920: .4byte gUnknown_20205AC -_080BD924: - ldr r1, _080BD9C0 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - adds r0, r0, r1 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_080BD938: - ldr r5, _080BD9C4 - adds r0, r5, #0 - movs r1, #0x38 - movs r2, #0x37 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _080BD9C8 - ldr r0, [r0] - ldr r1, _080BD9CC - adds r0, r0, r1 - ldrh r0, [r0] - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __umodsi3 - adds r1, r0, #0 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - ldr r4, _080BD9C0 - adds r0, r0, r4 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl StartSpriteAnim - movs r0, #1 - bl GetHoennPokedexCount - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - movs r0, #0 - mov r8, r0 - adds r0, r5, #0 - movs r1, #0x28 - movs r2, #0x51 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - adds r0, r6, #0 - movs r1, #0x64 - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - adds r4, r0, r4 - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim - cmp r5, #0 - beq _080BD9D0 - movs r1, #1 - mov r8, r1 - b _080BD9DC - .align 2, 0 -_080BD9C0: .4byte gUnknown_20205AC -_080BD9C4: .4byte gUnknown_8539B8C -_080BD9C8: .4byte gUnknown_20397EC -_080BD9CC: .4byte 0x0000061A -_080BD9D0: - adds r0, r4, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_080BD9DC: - ldr r0, _080BDA20 - movs r1, #0x30 - movs r2, #0x51 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - adds r0, r6, #0 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0 - bne _080BDA0C - mov r0, r8 - cmp r0, #0 - beq _080BDA28 -_080BDA0C: - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - ldr r1, _080BDA24 - adds r0, r0, r1 - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - bl StartSpriteAnim - b _080BDA3C - .align 2, 0 -_080BDA20: .4byte gUnknown_8539B8C -_080BDA24: .4byte gUnknown_20205AC -_080BDA28: - ldr r1, _080BDAB8 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - adds r0, r0, r1 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_080BDA3C: - ldr r5, _080BDABC - adds r0, r5, #0 - movs r1, #0x38 - movs r2, #0x51 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - adds r0, r6, #0 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __umodsi3 - adds r1, r0, #0 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - ldr r4, _080BDAB8 - adds r0, r0, r4 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl StartSpriteAnim - movs r1, #0 - mov r8, r1 - adds r0, r5, #0 - movs r1, #0x28 - movs r2, #0x5b - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _080BDAC0 - ldr r0, [r0] - ldr r1, _080BDAC4 - adds r0, r0, r1 - ldrh r0, [r0] - movs r1, #0x64 - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - adds r4, r0, r4 - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim - cmp r5, #0 - beq _080BDAC8 - movs r0, #1 - mov r8, r0 - b _080BDAD4 - .align 2, 0 -_080BDAB8: .4byte gUnknown_20205AC -_080BDABC: .4byte gUnknown_8539B8C -_080BDAC0: .4byte gUnknown_20397EC -_080BDAC4: .4byte 0x0000061C -_080BDAC8: - adds r0, r4, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_080BDAD4: - ldr r0, _080BDB20 - movs r1, #0x30 - movs r2, #0x5b - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _080BDB24 - ldr r0, [r0] - ldr r1, _080BDB28 - adds r0, r0, r1 - ldrh r0, [r0] - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0 - bne _080BDB0C - mov r0, r8 - cmp r0, #0 - beq _080BDB30 -_080BDB0C: - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - ldr r1, _080BDB2C - adds r0, r0, r1 - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - bl StartSpriteAnim - b _080BDB44 - .align 2, 0 -_080BDB20: .4byte gUnknown_8539B8C -_080BDB24: .4byte gUnknown_20397EC -_080BDB28: .4byte 0x0000061C -_080BDB2C: .4byte gUnknown_20205AC -_080BDB30: - ldr r1, _080BDBA0 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - adds r0, r0, r1 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_080BDB44: - ldr r0, _080BDBA4 - movs r1, #0x38 - movs r2, #0x5b - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _080BDBA8 - ldr r0, [r0] - ldr r1, _080BDBAC - adds r0, r0, r1 - ldrh r0, [r0] - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __umodsi3 - adds r1, r0, #0 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - ldr r2, _080BDBA0 - adds r0, r0, r2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl StartSpriteAnim -_080BDB82: - ldr r0, _080BDBB0 - movs r1, #0x90 - movs r2, #0x60 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r1, _080BDBA0 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - adds r0, r0, r1 - b _080BDBCC - .align 2, 0 -_080BDBA0: .4byte gUnknown_20205AC -_080BDBA4: .4byte gUnknown_8539B8C -_080BDBA8: .4byte gUnknown_20397EC -_080BDBAC: .4byte 0x0000061C -_080BDBB0: .4byte gUnknown_8539BA4 -_080BDBB4: - ldr r0, _080BDBE4 - movs r1, #0x90 - movs r2, #0x50 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - add r0, sl -_080BDBCC: - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080BDBE4: .4byte gUnknown_8539BA4 - thumb_func_end CreateInterfaceSprites - - thumb_func_start sub_080BDBE8 -sub_080BDBE8: @ 0x080BDBE8 - bx lr - .align 2, 0 - thumb_func_end sub_080BDBE8 - - thumb_func_start sub_080BDBEC -sub_080BDBEC: @ 0x080BDBEC - push {lr} - adds r1, r0, #0 - ldr r0, _080BDC08 - ldr r0, [r0] - ldr r2, _080BDC0C - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080BDC04 - adds r0, r1, #0 - bl DestroySprite -_080BDC04: - pop {r0} - bx r0 - .align 2, 0 -_080BDC08: .4byte gUnknown_20397EC -_080BDC0C: .4byte 0x0000064A - thumb_func_end sub_080BDBEC - - thumb_func_start sub_080BDC10 -sub_080BDC10: @ 0x080BDC10 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #5] - ldrb r1, [r2, #1] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #1] - movs r0, #0 - strh r0, [r2, #0x24] - strh r0, [r2, #0x26] - ldr r1, [r2, #0x20] - ldr r0, _080BDC70 - cmp r1, r0 - beq _080BDC74 - ldrh r1, [r2, #0x20] - movs r3, #0x20 - ldrsh r0, [r2, r3] - cmp r0, #0x30 - ble _080BDC44 - subs r0, r1, #1 - strh r0, [r2, #0x20] -_080BDC44: - ldrh r1, [r2, #0x20] - movs r3, #0x20 - ldrsh r0, [r2, r3] - cmp r0, #0x2f - bgt _080BDC52 - adds r0, r1, #1 - strh r0, [r2, #0x20] -_080BDC52: - ldrh r1, [r2, #0x22] - movs r3, #0x22 - ldrsh r0, [r2, r3] - cmp r0, #0x38 - ble _080BDC60 - subs r0, r1, #1 - strh r0, [r2, #0x22] -_080BDC60: - ldrh r1, [r2, #0x22] - movs r3, #0x22 - ldrsh r0, [r2, r3] - cmp r0, #0x37 - bgt _080BDC78 - adds r0, r1, #1 - strh r0, [r2, #0x22] - b _080BDC78 - .align 2, 0 -_080BDC70: .4byte 0x00380030 -_080BDC74: - ldr r0, _080BDC7C - str r0, [r2, #0x1c] -_080BDC78: - pop {r0} - bx r0 - .align 2, 0 -_080BDC7C: .4byte sub_080BDBE8 - thumb_func_end sub_080BDC10 - - thumb_func_start sub_080BDC80 -sub_080BDC80: @ 0x080BDC80 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r4, r0, #0 - ldrh r0, [r4, #0x30] - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r7, _080BDCB4 - ldr r1, [r7] - ldr r2, _080BDCB8 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080BDCC0 - cmp r0, #3 - beq _080BDCC0 - lsls r5, r6, #1 - ldr r4, _080BDCBC - adds r0, r1, r4 - adds r0, r0, r5 - ldrh r0, [r0] - bl FreeAndDestroyMonPicSprite - ldr r0, [r7] - adds r0, r0, r4 - adds r0, r0, r5 - b _080BDD8C - .align 2, 0 -_080BDCB4: .4byte gUnknown_20397EC -_080BDCB8: .4byte 0x0000064A -_080BDCBC: .4byte 0x0000061E -_080BDCC0: - ldr r2, _080BDD4C - ldrh r0, [r4, #0x38] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r2 - movs r3, #0 - ldrsh r1, [r0, r3] - movs r0, #0x4c - muls r0, r1, r0 - cmp r0, #0 - bge _080BDCD8 - adds r0, #0xff -_080BDCD8: - asrs r0, r0, #8 - strh r0, [r4, #0x26] - movs r1, #0x38 - ldrsh r0, [r4, r1] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r2 - movs r2, #0 - ldrsh r1, [r0, r2] - movs r0, #0x80 - lsls r0, r0, #9 - bl __divsi3 - adds r2, r0, #0 - ldr r0, _080BDD50 - cmp r2, r0 - bls _080BDCFC - adds r2, r0, #0 -_080BDCFC: - ldrh r0, [r4, #0x30] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x80 - lsls r1, r1, #1 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - str r2, [sp] - movs r2, #0 - movs r3, #0 - bl SetOamMatrix - adds r1, r6, #1 - movs r0, #0x1f - ands r1, r0 - lsls r1, r1, #1 - ldrb r2, [r4, #3] - movs r0, #0x3f - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #3] - ldrh r0, [r4, #0x38] - adds r0, #0x3f - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x7e - bhi _080BDD54 - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r2] - movs r0, #1 - strh r0, [r4, #0x2e] - b _080BDD60 - .align 2, 0 -_080BDD4C: .4byte gUnknown_82FA8CC -_080BDD50: .4byte 0x0000FFFF -_080BDD54: - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] -_080BDD60: - ldrh r0, [r4, #0x38] - adds r0, #0x3f - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x7e - bls _080BDD90 - movs r3, #0x2e - ldrsh r0, [r4, r3] - cmp r0, #0 - beq _080BDD90 - ldr r5, _080BDD98 - ldr r0, [r5] - lsls r6, r6, #1 - ldr r4, _080BDD9C - adds r0, r0, r4 - adds r0, r0, r6 - ldrh r0, [r0] - bl FreeAndDestroyMonPicSprite - ldr r0, [r5] - adds r0, r0, r4 - adds r0, r0, r6 -_080BDD8C: - ldr r1, _080BDDA0 - strh r1, [r0] -_080BDD90: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080BDD98: .4byte gUnknown_20397EC -_080BDD9C: .4byte 0x0000061E -_080BDDA0: .4byte 0x0000FFFF - thumb_func_end sub_080BDC80 - - thumb_func_start SpriteCB_Scrollbar -SpriteCB_Scrollbar: @ 0x080BDDA4 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080BDDC4 - ldr r0, [r1] - ldr r2, _080BDDC8 - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080BDDCC - cmp r0, #3 - beq _080BDDCC - adds r0, r4, #0 - bl DestroySprite - b _080BDDE8 - .align 2, 0 -_080BDDC4: .4byte gUnknown_20397EC -_080BDDC8: .4byte 0x0000064A -_080BDDCC: - ldr r2, [r1] - ldr r1, _080BDDF0 - adds r0, r2, r1 - ldrh r1, [r0] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #3 - ldr r1, _080BDDF4 - adds r2, r2, r1 - ldrh r1, [r2] - subs r1, #1 - bl __divsi3 - strh r0, [r4, #0x26] -_080BDDE8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BDDF0: .4byte 0x0000060E -_080BDDF4: .4byte 0x0000060C - thumb_func_end SpriteCB_Scrollbar - - thumb_func_start sub_080BDDF8 -sub_080BDDF8: @ 0x080BDDF8 - push {r4, r5, lr} - adds r3, r0, #0 - ldr r1, _080BDE18 - ldr r0, [r1] - ldr r2, _080BDE1C - adds r0, r0, r2 - ldrb r0, [r0] - adds r5, r1, #0 - cmp r0, #0 - beq _080BDE20 - cmp r0, #3 - beq _080BDE20 - adds r0, r3, #0 - bl DestroySprite - b _080BDEF0 - .align 2, 0 -_080BDE18: .4byte gUnknown_20397EC -_080BDE1C: .4byte 0x0000064A -_080BDE20: - movs r1, #0x30 - ldrsh r0, [r3, r1] - cmp r0, #0 - beq _080BDE62 - ldr r0, [r5] - ldr r2, _080BDE48 - adds r1, r0, r2 - ldrh r1, [r1] - subs r2, #2 - adds r0, r0, r2 - ldrh r0, [r0] - subs r0, #1 - cmp r1, r0 - bne _080BDE4C - adds r0, r3, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - b _080BDE58 - .align 2, 0 -_080BDE48: .4byte 0x0000060E -_080BDE4C: - adds r0, r3, #0 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 -_080BDE58: - strb r1, [r0] - adds r2, r0, #0 - ldrh r1, [r3, #0x32] - lsls r0, r1, #0x18 - b _080BDE98 -_080BDE62: - ldr r0, [r5] - ldr r1, _080BDE7C - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0 - bne _080BDE80 - adds r0, r3, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - b _080BDE8C - .align 2, 0 -_080BDE7C: .4byte 0x0000060E -_080BDE80: - adds r0, r3, #0 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 -_080BDE8C: - strb r1, [r0] - adds r2, r0, #0 - ldrh r1, [r3, #0x32] - adds r0, r1, #0 - subs r0, #0x80 - lsls r0, r0, #0x18 -_080BDE98: - lsrs r0, r0, #0x18 - adds r4, r1, #0 - ldr r1, _080BDEE0 - lsls r0, r0, #1 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bge _080BDEAC - adds r0, #0x3f -_080BDEAC: - asrs r0, r0, #6 - strh r0, [r3, #0x26] - adds r0, r4, #0 - adds r0, #8 - strh r0, [r3, #0x32] - ldr r1, [r5] - ldr r3, _080BDEE4 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, #0 - bne _080BDEE8 - adds r3, #3 - adds r0, r1, r3 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _080BDEE8 - ldrb r1, [r2] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _080BDEE8 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - b _080BDEEE - .align 2, 0 -_080BDEE0: .4byte gUnknown_82FA8CC -_080BDEE4: .4byte 0x0000064F -_080BDEE8: - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 -_080BDEEE: - strb r0, [r2] -_080BDEF0: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080BDDF8 - - thumb_func_start sub_080BDEF8 -sub_080BDEF8: @ 0x080BDEF8 - push {lr} - adds r1, r0, #0 - ldr r0, _080BDF18 - ldr r0, [r0] - ldr r2, _080BDF1C - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080BDF14 - cmp r0, #3 - beq _080BDF14 - adds r0, r1, #0 - bl DestroySprite -_080BDF14: - pop {r0} - bx r0 - .align 2, 0 -_080BDF18: .4byte gUnknown_20397EC -_080BDF1C: .4byte 0x0000064A - thumb_func_end sub_080BDEF8 - - thumb_func_start sub_080BDF20 -sub_080BDF20: @ 0x080BDF20 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r6, r0, #0 - ldr r1, _080BDF44 - ldr r0, [r1] - ldr r2, _080BDF48 - adds r0, r0, r2 - ldrb r0, [r0] - adds r7, r1, #0 - cmp r0, #0 - beq _080BDF4C - cmp r0, #3 - beq _080BDF4C - adds r0, r6, #0 - bl DestroySprite - b _080BDFC4 - .align 2, 0 -_080BDF44: .4byte gUnknown_20397EC -_080BDF48: .4byte 0x0000064A -_080BDF4C: - ldr r0, [r7] - ldr r5, _080BDFCC - adds r0, r0, r5 - ldrb r1, [r0] - ldrh r0, [r6, #0x30] - adds r1, r1, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r4, _080BDFD0 - lsls r0, r1, #1 - adds r0, r0, r4 - ldrh r3, [r0] - adds r1, #0x40 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r0, [r6, #0x2e] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r1] - lsls r3, r3, #0x10 - lsrs r2, r3, #0x10 - rsbs r3, r3, #0 - lsrs r3, r3, #0x10 - str r1, [sp] - bl SetOamMatrix - ldr r1, [r7] - adds r1, r1, r5 - ldrh r0, [r6, #0x30] - adds r0, #0x40 - ldrb r1, [r1] - adds r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #1 - adds r1, r1, r4 - ldrh r3, [r1] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r4 - movs r2, #0 - ldrsh r1, [r0, r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - cmp r0, #0 - bge _080BDFAC - adds r0, #0xff -_080BDFAC: - asrs r0, r0, #8 - strh r0, [r6, #0x24] - lsls r1, r3, #0x10 - asrs r1, r1, #0x10 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - cmp r0, #0 - bge _080BDFC0 - adds r0, #0xff -_080BDFC0: - asrs r0, r0, #8 - strh r0, [r6, #0x26] -_080BDFC4: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080BDFCC: .4byte 0x0000062C -_080BDFD0: .4byte gUnknown_82FA8CC - thumb_func_end sub_080BDF20 - - thumb_func_start sub_080BDFD4 -sub_080BDFD4: @ 0x080BDFD4 - push {r4, lr} - adds r3, r0, #0 - ldr r1, _080BDFF4 - ldr r0, [r1] - ldr r2, _080BDFF8 - adds r0, r0, r2 - ldrb r2, [r0] - cmp r2, #0 - beq _080BDFFC - cmp r2, #3 - beq _080BDFFC - adds r0, r3, #0 - bl DestroySprite - b _080BE074 - .align 2, 0 -_080BDFF4: .4byte gUnknown_20397EC -_080BDFF8: .4byte 0x0000064A -_080BDFFC: - ldr r4, [r1] - ldr r1, _080BE05C - adds r0, r4, r1 - ldrb r0, [r0] - movs r1, #0x60 - cmp r0, #0 - bne _080BE00C - movs r1, #0x50 -_080BE00C: - ldr r2, _080BE060 - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080BE068 - adds r2, #3 - adds r0, r4, r2 - movs r2, #0 - ldrsh r0, [r0, r2] - cmp r0, r1 - bne _080BE068 - adds r2, r3, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - movs r1, #0xca - lsls r1, r1, #3 - adds r0, r4, r1 - ldrh r0, [r0] - lsls r0, r0, #4 - strh r0, [r3, #0x26] - ldr r1, _080BE064 - ldrh r2, [r3, #0x32] - lsls r0, r2, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bge _080BE050 - adds r0, #0x3f -_080BE050: - asrs r0, r0, #6 - strh r0, [r3, #0x24] - adds r0, r2, #0 - adds r0, #8 - strh r0, [r3, #0x32] - b _080BE074 - .align 2, 0 -_080BE05C: .4byte 0x0000064A -_080BE060: .4byte 0x0000064F -_080BE064: .4byte gUnknown_82FA8CC -_080BE068: - adds r0, r3, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_080BE074: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080BDFD4 - - thumb_func_start sub_080BE07C -sub_080BE07C: @ 0x080BE07C - push {r4, r5, lr} - sub sp, #0x18 - adds r5, r1, #0 - adds r3, r2, #0 - lsls r3, r3, #0x18 - add r1, sp, #0x14 - movs r4, #0 - strb r4, [r1] - adds r2, r1, #0 - movs r1, #0xf - strb r1, [r2, #1] - movs r1, #3 - strb r1, [r2, #2] - lsls r5, r5, #0x1b - lsrs r5, r5, #0x18 - lsrs r3, r3, #0x15 - adds r3, #2 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r4, [sp] - str r4, [sp, #4] - str r2, [sp, #8] - subs r1, #4 - str r1, [sp, #0xc] - str r0, [sp, #0x10] - movs r0, #0 - movs r1, #1 - adds r2, r5, #0 - bl AddTextPrinterParameterized4 - add sp, #0x18 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_080BE07C - - thumb_func_start sub_080BE0C0 -sub_080BE0C0: @ 0x080BE0C0 - push {r4, r5, lr} - lsls r4, r1, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _080BE154 - str r0, [r1] - ldr r0, _080BE158 - movs r1, #0 - bl CreateTask - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r1, _080BE15C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #0 - strh r2, [r0, #8] - movs r1, #1 - strh r1, [r0, #0xa] - strh r2, [r0, #0xc] - strh r2, [r0, #0xe] - strh r4, [r0, #0x10] - movs r1, #0xff - strh r1, [r0, #0x12] - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _080BE160 - movs r0, #0 - movs r2, #4 - bl InitBgsFromTemplates - movs r4, #0x80 - lsls r4, r4, #4 - adds r0, r4, #0 - bl AllocZeroed - adds r1, r0, #0 - movs r0, #3 - bl SetBgTilemapBuffer - adds r0, r4, #0 - bl AllocZeroed - adds r1, r0, #0 - movs r0, #2 - bl SetBgTilemapBuffer - adds r0, r4, #0 - bl AllocZeroed - adds r1, r0, #0 - movs r0, #1 - bl SetBgTilemapBuffer - adds r0, r4, #0 - bl AllocZeroed - adds r1, r0, #0 - movs r0, #0 - bl SetBgTilemapBuffer - ldr r0, _080BE164 - bl InitWindows - bl sub_08004480 - adds r0, r5, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080BE154: .4byte gUnknown_20397F4 -_080BE158: .4byte sub_080BE1C8 -_080BE15C: .4byte gUnknown_3005B60 -_080BE160: .4byte gUnknown_8543110 -_080BE164: .4byte gUnknown_8543120 - thumb_func_end sub_080BE0C0 - - thumb_func_start sub_080BE168 -sub_080BE168: @ 0x080BE168 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080BE18C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r2, #8 - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _080BE194 - ldr r1, [r1] - ldr r0, _080BE190 - cmp r1, r0 - bne _080BE194 - movs r0, #0 - b _080BE196 - .align 2, 0 -_080BE18C: .4byte gUnknown_3005B60 -_080BE190: .4byte sub_080BE678 -_080BE194: - movs r0, #1 -_080BE196: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080BE168 - - thumb_func_start sub_080BE19C -sub_080BE19C: @ 0x080BE19C - adds r2, r0, #0 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080BE1C0 - str r2, [r1] - ldr r2, _080BE1C4 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r3, #0 - movs r2, #1 - strh r2, [r1, #8] - strh r3, [r1, #0xa] - strh r3, [r1, #0xc] - strh r3, [r1, #0xe] - bx lr - .align 2, 0 -_080BE1C0: .4byte gUnknown_20397F4 -_080BE1C4: .4byte gUnknown_3005B60 - thumb_func_end sub_080BE19C - - thumb_func_start sub_080BE1C8 -sub_080BE1C8: @ 0x080BE1C8 - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _080BE1EC - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r1, r2 - ldrb r0, [r0] - adds r5, r1, #0 - cmp r0, #0xa - bhi _080BE220 - lsls r0, r0, #2 - ldr r1, _080BE1F0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BE1EC: .4byte gUnknown_3002360 -_080BE1F0: .4byte _080BE1F4 -_080BE1F4: @ jump table - .4byte _080BE220 @ case 0 - .4byte _080BE294 @ case 1 - .4byte _080BE2F4 @ case 2 - .4byte _080BE334 @ case 3 - .4byte _080BE33C @ case 4 - .4byte _080BE498 @ case 5 - .4byte _080BE4E4 @ case 6 - .4byte _080BE540 @ case 7 - .4byte _080BE588 @ case 8 - .4byte _080BE5E2 @ case 9 - .4byte _080BE600 @ case 10 -_080BE220: - ldr r0, _080BE280 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080BE22E - b _080BE624 -_080BE22E: - ldr r0, _080BE284 - ldr r0, [r0] - ldr r3, _080BE288 - adds r0, r0, r3 - movs r6, #1 - strb r6, [r0] - ldr r1, _080BE28C - ldr r0, [r5, #0xc] - str r0, [r1] - movs r0, #0 - bl SetVBlankCallback - movs r2, #0 - ldr r1, _080BE290 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r1, r0, r1 - movs r3, #0xa - ldrsh r0, [r1, r3] - cmp r0, #0 - beq _080BE25E - movs r2, #0x80 - lsls r2, r2, #5 -_080BE25E: - movs r3, #0xc - ldrsh r0, [r1, r3] - cmp r0, #0 - beq _080BE26E - movs r1, #0x80 - lsls r1, r1, #2 - adds r0, r1, #0 - orrs r2, r0 -_080BE26E: - adds r0, r2, #0 - bl sub_080BFF08 - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r5, r2 - strb r6, [r0] - b _080BE624 - .align 2, 0 -_080BE280: .4byte gUnknown_2037C74 -_080BE284: .4byte gUnknown_20397EC -_080BE288: .4byte 0x0000064A -_080BE28C: .4byte gUnknown_3005E14 -_080BE290: .4byte gUnknown_3005B60 -_080BE294: - ldr r1, _080BE2E4 - movs r2, #0x80 - lsls r2, r2, #6 - movs r0, #0 - str r0, [sp] - movs r0, #3 - movs r3, #0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r1, _080BE2E8 - movs r0, #3 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - movs r0, #0 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #0 - bl PutWindowTilemap - movs r0, #1 - bl PutWindowTilemap - ldr r0, _080BE2EC - ldr r0, [r0] - ldrh r1, [r0] - movs r0, #1 - bl sub_080C0288 - movs r0, #1 - movs r1, #2 - bl CopyWindowToVram - ldr r1, _080BE2F0 - movs r3, #0x87 - lsls r3, r3, #3 - adds r1, r1, r3 - b _080BE5F4 - .align 2, 0 -_080BE2E4: .4byte gUnknown_8537E8C -_080BE2E8: .4byte gUnknown_8537A10 -_080BE2EC: .4byte gUnknown_20397F4 -_080BE2F0: .4byte gUnknown_3002360 -_080BE2F4: - movs r0, #0xd - bl sub_080BF598 - ldr r4, _080BE324 - ldr r0, [r4] - ldr r1, _080BE328 - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #0xd - bl sub_080BF5C8 - ldr r0, [r4] - ldr r2, _080BE32C - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1f - lsrs r0, r0, #0x1f - bl LoadPokedexBgPalette - ldr r1, _080BE330 - movs r3, #0x87 - lsls r3, r3, #3 - adds r1, r1, r3 - b _080BE5F4 - .align 2, 0 -_080BE324: .4byte gUnknown_20397EC -_080BE328: .4byte 0x0000064D -_080BE32C: .4byte 0x0000064C -_080BE330: .4byte gUnknown_3002360 -_080BE334: - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r5, r0 - b _080BE5F4 -_080BE33C: - ldr r0, _080BE368 - ldr r0, [r0] - ldr r1, _080BE36C - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0 - bne _080BE374 - ldr r0, _080BE370 - ldr r0, [r0] - ldrh r0, [r0] - bl sub_0806CF1C - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0 - movs r2, #0xd - movs r3, #3 - bl sub_080C0020 - b _080BE384 - .align 2, 0 -_080BE368: .4byte gUnknown_20397EC -_080BE36C: .4byte 0x00000612 -_080BE370: .4byte gUnknown_20397F4 -_080BE374: - ldr r0, _080BE420 - ldr r0, [r0] - ldrh r1, [r0] - movs r0, #0 - movs r2, #0xd - movs r3, #3 - bl sub_080C0020 -_080BE384: - ldr r5, _080BE420 - ldr r0, [r5] - ldrh r1, [r0] - movs r0, #0 - movs r2, #0x11 - movs r3, #3 - bl sub_080C00A0 - ldr r0, [r5] - ldrb r1, [r0, #2] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080BE434 - ldr r0, _080BE424 - movs r1, #0xd - movs r2, #5 - bl sub_080BE07C - ldr r0, _080BE428 - movs r1, #0x10 - movs r2, #7 - bl sub_080BE07C - ldr r0, _080BE42C - movs r1, #0x10 - movs r2, #9 - bl sub_080BE07C - ldr r0, [r5] - ldrh r0, [r0] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - ldr r4, _080BE430 - adds r1, r1, r4 - movs r0, #0 - movs r2, #0xd - movs r3, #5 - bl sub_080C0150 - ldr r0, [r5] - ldrh r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r0, #6] - movs r0, #0 - movs r2, #0x10 - movs r3, #7 - bl sub_080C01C8 - ldr r0, [r5] - ldrh r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r0, #8] - movs r0, #0 - movs r2, #0x10 - movs r3, #9 - bl sub_080C01C8 - ldr r0, [r5] - ldrh r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r4, #0xc - adds r0, r0, r4 - ldr r0, [r0] - movs r1, #3 - movs r2, #0xd - bl sub_080BE07C - b _080BE466 - .align 2, 0 -_080BE420: .4byte gUnknown_20397F4 -_080BE424: .4byte gUnknown_85C8FBB -_080BE428: .4byte gUnknown_85C8FC5 -_080BE42C: .4byte gUnknown_85C8FCC -_080BE430: .4byte gUnknown_854069C -_080BE434: - ldr r0, _080BE484 - movs r1, #0xd - movs r2, #5 - bl sub_080BE07C - ldr r0, _080BE488 - movs r1, #0x10 - movs r2, #7 - bl sub_080BE07C - ldr r0, _080BE48C - movs r1, #0x10 - movs r2, #9 - bl sub_080BE07C - ldr r0, _080BE490 - movs r1, #3 - movs r2, #0xd - bl sub_080BE07C - ldr r0, _080BE494 - movs r1, #0x31 - movs r2, #0x1e - bl LoadPalette -_080BE466: - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - movs r0, #1 - bl CopyBgTilemapBufferToVram - movs r0, #2 - bl CopyBgTilemapBufferToVram - movs r0, #3 - bl CopyBgTilemapBufferToVram - b _080BE5EC - .align 2, 0 -_080BE484: .4byte gUnknown_85C8FA2 -_080BE488: .4byte gUnknown_85C8FAC -_080BE48C: .4byte gUnknown_85C8FB3 -_080BE490: .4byte gUnknown_8539C50 -_080BE494: .4byte gUnknown_20373B6 -_080BE498: - ldr r0, _080BE4D8 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r4, r1, r0 - movs r3, #0xa - ldrsh r0, [r4, r3] - cmp r0, #0 - beq _080BE4AC - b _080BE5EC -_080BE4AC: - ldr r0, _080BE4DC - ldr r0, [r0] - ldrh r0, [r0] - movs r1, #0x30 - movs r2, #0x38 - movs r3, #0 - bl CreateMonSpriteFromNationalDexNumber - strh r0, [r4, #0x10] - ldr r2, _080BE4E0 - movs r1, #0x10 - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r2, [r1, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #5] - b _080BE5EC - .align 2, 0 -_080BE4D8: .4byte gUnknown_3005B60 -_080BE4DC: .4byte gUnknown_20397F4 -_080BE4E0: .4byte gUnknown_20205AC -_080BE4E4: - movs r3, #0 - ldr r0, _080BE534 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r2, #0xc - ldrsh r0, [r1, r2] - cmp r0, #0 - beq _080BE4FA - movs r3, #0x14 -_080BE4FA: - movs r2, #0xa - ldrsh r0, [r1, r2] - cmp r0, #0 - beq _080BE51C - ldr r2, _080BE538 - movs r0, #0x10 - ldrsh r1, [r1, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #5] - lsrs r1, r1, #4 - adds r1, #0x10 - movs r0, #1 - lsls r0, r1 - orrs r3, r0 -_080BE51C: - mvns r0, r3 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r0, _080BE53C - ldr r0, [r0] - bl SetVBlankCallback - b _080BE5EC - .align 2, 0 -_080BE534: .4byte gUnknown_3005B60 -_080BE538: .4byte gUnknown_20205AC -_080BE53C: .4byte gUnknown_3005E14 -_080BE540: - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl HideBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg - ldr r1, _080BE584 - movs r3, #0x87 - lsls r3, r3, #3 - adds r1, r1, r3 - b _080BE5F4 - .align 2, 0 -_080BE584: .4byte gUnknown_3002360 -_080BE588: - ldr r0, _080BE5D0 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080BE624 - movs r0, #0x87 - lsls r0, r0, #3 - adds r2, r5, r0 - ldrb r0, [r2] - adds r3, r0, #1 - strb r3, [r2] - ldr r1, _080BE5D4 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0xe - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _080BE5DC - bl sub_080A2F64 - ldr r0, _080BE5D8 - ldr r0, [r0] - ldrh r0, [r0] - bl sub_0806CED0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0 - movs r2, #0x7d - movs r3, #0xa - bl PlayCry2 - b _080BE624 - .align 2, 0 -_080BE5D0: .4byte gUnknown_2037C74 -_080BE5D4: .4byte gUnknown_3005B60 -_080BE5D8: .4byte gUnknown_20397F4 -_080BE5DC: - adds r0, r3, #1 - strb r0, [r2] - b _080BE624 -_080BE5E2: - bl IsCryPlayingOrClearCrySongs - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080BE624 -_080BE5EC: - ldr r1, _080BE5FC - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 -_080BE5F4: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080BE624 - .align 2, 0 -_080BE5FC: .4byte gUnknown_3002360 -_080BE600: - ldr r1, _080BE62C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #0 - movs r1, #0 - strh r1, [r0, #8] - strh r1, [r0, #0xa] - movs r1, #1 - strh r1, [r0, #0xc] - strh r1, [r0, #0xe] - ldr r1, _080BE630 - str r1, [r0] - movs r3, #0x87 - lsls r3, r3, #3 - adds r0, r5, r3 - strb r2, [r0] -_080BE624: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080BE62C: .4byte gUnknown_3005B60 -_080BE630: .4byte sub_080BE678 - thumb_func_end sub_080BE1C8 - - thumb_func_start sub_080BE634 -sub_080BE634: @ 0x080BE634 - push {lr} - bl FreeAllWindowBuffers - movs r0, #0 - bl GetBgTilemapBuffer - cmp r0, #0 - beq _080BE648 - bl Free -_080BE648: - movs r0, #1 - bl GetBgTilemapBuffer - cmp r0, #0 - beq _080BE656 - bl Free -_080BE656: - movs r0, #2 - bl GetBgTilemapBuffer - cmp r0, #0 - beq _080BE664 - bl Free -_080BE664: - movs r0, #3 - bl GetBgTilemapBuffer - cmp r0, #0 - beq _080BE672 - bl Free -_080BE672: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080BE634 - - thumb_func_start sub_080BE678 -sub_080BE678: @ 0x080BE678 - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080BE6B0 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 - movs r0, #8 - ldrsh r5, [r4, r0] - cmp r5, #0 - beq _080BE6B8 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _080BE6B4 - str r0, [r4] - movs r0, #0x6c - bl sub_080A306C - b _080BE83E - .align 2, 0 -_080BE6B0: .4byte gUnknown_3005B60 -_080BE6B4: .4byte sub_080BE8BC -_080BE6B8: - ldr r1, _080BE6D0 - ldrh r2, [r1, #0x2e] - movs r0, #2 - ands r0, r2 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #0 - beq _080BE6D4 - movs r0, #1 - rsbs r0, r0, #0 - str r5, [sp] - b _080BE792 - .align 2, 0 -_080BE6D0: .4byte gUnknown_3002360 -_080BE6D4: - movs r0, #1 - ands r0, r2 - cmp r0, #0 - beq _080BE7AC - ldr r5, _080BE6F4 - ldr r0, [r5] - ldr r1, _080BE6F8 - adds r0, r0, r1 - ldrb r1, [r0] - cmp r1, #1 - beq _080BE724 - cmp r1, #1 - bgt _080BE6FC - cmp r1, #0 - beq _080BE706 - b _080BE83E - .align 2, 0 -_080BE6F4: .4byte gUnknown_20397EC -_080BE6F8: .4byte 0x0000064D -_080BE6FC: - cmp r1, #2 - beq _080BE744 - cmp r1, #3 - beq _080BE78C - b _080BE83E -_080BE706: - movs r0, #0x15 - rsbs r0, r0, #0 - str r3, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, [r5] - ldr r3, _080BE720 - adds r0, r0, r3 - movs r1, #1 - b _080BE774 - .align 2, 0 -_080BE720: .4byte 0x0000064E -_080BE724: - movs r0, #0x15 - rsbs r0, r0, #0 - str r3, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, [r5] - ldr r1, _080BE740 - adds r0, r0, r1 - movs r1, #2 - b _080BE774 - .align 2, 0 -_080BE740: .4byte 0x0000064E -_080BE744: - ldr r0, _080BE758 - ldr r0, [r0] - ldrb r0, [r0, #2] - ands r1, r0 - cmp r1, #0 - bne _080BE75C - movs r0, #0x20 - bl sub_080A306C - b _080BE83E - .align 2, 0 -_080BE758: .4byte gUnknown_20397F4 -_080BE75C: - movs r0, #0x15 - rsbs r0, r0, #0 - str r3, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, [r5] - ldr r3, _080BE784 - adds r0, r0, r3 - movs r1, #3 -_080BE774: - strb r1, [r0] - ldr r0, _080BE788 - str r0, [r4] - movs r0, #0x15 - bl sub_080A306C - b _080BE83E - .align 2, 0 -_080BE784: .4byte 0x0000064E -_080BE788: .4byte sub_080BE854 -_080BE78C: - movs r0, #1 - rsbs r0, r0, #0 - str r3, [sp] -_080BE792: - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _080BE7A8 - str r0, [r4] - movs r0, #3 - bl sub_080A306C - b _080BE83E - .align 2, 0 -_080BE7A8: .4byte sub_080BE8F4 -_080BE7AC: - movs r0, #0x20 - ands r0, r2 - cmp r0, #0 - bne _080BE7C8 - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r2 - cmp r0, #0 - beq _080BE7FC - ldr r0, _080BE7F0 - ldr r0, [r0] - ldrb r0, [r0, #0x13] - cmp r0, #1 - bne _080BE7FC -_080BE7C8: - ldr r3, _080BE7F4 - ldr r0, [r3] - ldr r4, _080BE7F8 - adds r2, r0, r4 - ldrb r0, [r2] - cmp r0, #0 - beq _080BE7FC - subs r0, #1 - strb r0, [r2] - ldr r0, [r3] - adds r0, r0, r4 - ldrb r0, [r0] - movs r1, #0xd - bl sub_080BF5C8 - movs r0, #0x6d - bl sub_080A306C - b _080BE83E - .align 2, 0 -_080BE7F0: .4byte gUnknown_3005AF0 -_080BE7F4: .4byte gUnknown_20397EC -_080BE7F8: .4byte 0x0000064D -_080BE7FC: - ldrh r1, [r1, #0x2e] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _080BE81A - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080BE83E - ldr r0, _080BE848 - ldr r0, [r0] - ldrb r0, [r0, #0x13] - cmp r0, #1 - bne _080BE83E -_080BE81A: - ldr r2, _080BE84C - ldr r0, [r2] - ldr r3, _080BE850 - adds r1, r0, r3 - ldrb r0, [r1] - cmp r0, #2 - bhi _080BE83E - adds r0, #1 - strb r0, [r1] - ldr r0, [r2] - adds r0, r0, r3 - ldrb r0, [r0] - movs r1, #0xd - bl sub_080BF5C8 - movs r0, #0x6d - bl sub_080A306C -_080BE83E: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080BE848: .4byte gUnknown_3005AF0 -_080BE84C: .4byte gUnknown_20397EC -_080BE850: .4byte 0x0000064D - thumb_func_end sub_080BE678 - - thumb_func_start sub_080BE854 -sub_080BE854: @ 0x080BE854 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _080BE890 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080BE8B0 - ldr r1, _080BE894 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrh r0, [r4, #0x10] - bl FreeAndDestroyMonPicSprite - ldr r0, _080BE898 - ldr r0, [r0] - ldr r1, _080BE89C - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #2 - beq _080BE8A4 - cmp r0, #2 - ble _080BE88C - cmp r0, #3 - beq _080BE8AC -_080BE88C: - ldr r0, _080BE8A0 - b _080BE8AE - .align 2, 0 -_080BE890: .4byte gUnknown_2037C74 -_080BE894: .4byte gUnknown_3005B60 -_080BE898: .4byte gUnknown_20397EC -_080BE89C: .4byte 0x0000064E -_080BE8A0: .4byte sub_080BE930 -_080BE8A4: - ldr r0, _080BE8A8 - b _080BE8AE - .align 2, 0 -_080BE8A8: .4byte sub_080BEAD4 -_080BE8AC: - ldr r0, _080BE8B8 -_080BE8AE: - str r0, [r4] -_080BE8B0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BE8B8: .4byte sub_080BF0C8 - thumb_func_end sub_080BE854 - - thumb_func_start sub_080BE8BC -sub_080BE8BC: @ 0x080BE8BC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _080BE8E8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080BE8E2 - ldr r0, _080BE8EC - lsls r4, r2, #2 - adds r4, r4, r2 - lsls r4, r4, #3 - adds r4, r4, r0 - ldrh r0, [r4, #0x10] - bl FreeAndDestroyMonPicSprite - ldr r0, _080BE8F0 - str r0, [r4] -_080BE8E2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BE8E8: .4byte gUnknown_2037C74 -_080BE8EC: .4byte gUnknown_3005B60 -_080BE8F0: .4byte sub_080BE1C8 - thumb_func_end sub_080BE8BC - - thumb_func_start sub_080BE8F4 -sub_080BE8F4: @ 0x080BE8F4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080BE928 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080BE920 - ldr r0, _080BE92C - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x10] - bl FreeAndDestroyMonPicSprite - bl sub_080BE634 - adds r0, r4, #0 - bl DestroyTask -_080BE920: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BE928: .4byte gUnknown_2037C74 -_080BE92C: .4byte gUnknown_3005B60 - thumb_func_end sub_080BE8F4 - - thumb_func_start sub_080BE930 -sub_080BE930: @ 0x080BE930 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r2, _080BE98C - movs r0, #0x87 - lsls r0, r0, #3 - adds r7, r2, r0 - ldrb r0, [r7] - cmp r0, #1 - beq _080BE9A4 - cmp r0, #1 - ble _080BE94C - cmp r0, #2 - beq _080BE9E0 -_080BE94C: - ldr r0, _080BE990 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _080BEA1A - ldr r4, _080BE994 - ldr r0, [r4] - ldr r1, _080BE998 - adds r0, r0, r1 - movs r1, #5 - strb r1, [r0] - ldr r1, _080BE99C - ldr r0, [r2, #0xc] - str r0, [r1] - movs r0, #0 - bl SetVBlankCallback - movs r0, #0x80 - lsls r0, r0, #2 - bl sub_080BFF08 - ldr r0, [r4] - ldr r1, _080BE9A0 - adds r0, r0, r1 - strb r5, [r0] - movs r0, #1 - strb r0, [r7] - b _080BEA1A - .align 2, 0 -_080BE98C: .4byte gUnknown_3002360 -_080BE990: .4byte gUnknown_2037C74 -_080BE994: .4byte gUnknown_20397EC -_080BE998: .4byte 0x0000064A -_080BE99C: .4byte gUnknown_3005E14 -_080BE9A0: .4byte 0x0000064D -_080BE9A4: - movs r0, #0xd - bl sub_080BF5B0 - movs r0, #0 - movs r1, #0xd - bl sub_080BF638 - ldr r0, _080BE9D8 - ldr r0, [r0] - ldr r1, _080BE9DC - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1f - lsrs r0, r0, #0x1f - bl LoadPokedexBgPalette - movs r1, #0xd0 - lsls r1, r1, #4 - movs r0, #0xa - bl SetGpuReg - ldrb r0, [r7] - adds r0, #1 - strb r0, [r7] - b _080BEA1A - .align 2, 0 -_080BE9D8: .4byte gUnknown_20397EC -_080BE9DC: .4byte 0x0000064C -_080BE9E0: - ldr r0, _080BEA20 - ldr r0, [r0] - ldrh r0, [r0] - bl sub_0806CED0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r5, _080BEA24 - ldr r1, [r5] - ldr r4, _080BEA28 - adds r1, r1, r4 - bl ShowPokedexAreaScreen - ldr r0, _080BEA2C - ldr r0, [r0] - bl SetVBlankCallback - ldr r0, [r5] - adds r0, r0, r4 - movs r1, #0 - strb r1, [r0] - strb r1, [r7] - ldr r1, _080BEA30 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080BEA34 - str r1, [r0] -_080BEA1A: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080BEA20: .4byte gUnknown_20397F4 -_080BEA24: .4byte gUnknown_20397EC -_080BEA28: .4byte 0x0000064E -_080BEA2C: .4byte gUnknown_3005E14 -_080BEA30: .4byte gUnknown_3005B60 -_080BEA34: .4byte sub_080BEA38 - thumb_func_end sub_080BE930 - - thumb_func_start sub_080BEA38 -sub_080BEA38: @ 0x080BEA38 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _080BEA60 - ldr r0, [r0] - ldr r1, _080BEA64 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _080BEA5A - ldr r0, _080BEA68 - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080BEA6C - str r0, [r1] -_080BEA5A: - pop {r0} - bx r0 - .align 2, 0 -_080BEA60: .4byte gUnknown_20397EC -_080BEA64: .4byte 0x0000064E -_080BEA68: .4byte gUnknown_3005B60 -_080BEA6C: .4byte sub_080BEA70 - thumb_func_end sub_080BEA38 - - thumb_func_start sub_080BEA70 -sub_080BEA70: @ 0x080BEA70 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _080BEAA4 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080BEAC6 - ldr r0, _080BEAA8 - ldr r0, [r0] - ldr r1, _080BEAAC - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - beq _080BEA94 - cmp r0, #2 - beq _080BEAB8 -_080BEA94: - ldr r0, _080BEAB0 - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080BEAB4 - b _080BEAC4 - .align 2, 0 -_080BEAA4: .4byte gUnknown_2037C74 -_080BEAA8: .4byte gUnknown_20397EC -_080BEAAC: .4byte 0x0000064E -_080BEAB0: .4byte gUnknown_3005B60 -_080BEAB4: .4byte sub_080BE1C8 -_080BEAB8: - ldr r0, _080BEACC - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080BEAD0 -_080BEAC4: - str r0, [r1] -_080BEAC6: - pop {r0} - bx r0 - .align 2, 0 -_080BEACC: .4byte gUnknown_3005B60 -_080BEAD0: .4byte sub_080BEAD4 - thumb_func_end sub_080BEA70 - - thumb_func_start sub_080BEAD4 -sub_080BEAD4: @ 0x080BEAD4 - push {r4, r5, lr} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _080BEAF8 - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, r1, #0 - cmp r0, #0xa - bhi _080BEB2C - lsls r0, r0, #2 - ldr r1, _080BEAFC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BEAF8: .4byte gUnknown_3002360 -_080BEAFC: .4byte _080BEB00 -_080BEB00: @ jump table - .4byte _080BEB2C @ case 0 - .4byte _080BEB94 @ case 1 - .4byte _080BEBE4 @ case 2 - .4byte _080BEC10 @ case 3 - .4byte _080BEC24 @ case 4 - .4byte _080BEC6C @ case 5 - .4byte _080BECB8 @ case 6 - .4byte _080BED34 @ case 7 - .4byte _080BEDB0 @ case 8 - .4byte _080BEDDC @ case 9 - .4byte _080BEE2C @ case 10 -_080BEB2C: - ldr r0, _080BEB78 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080BEB3A - b _080BEE4E -_080BEB3A: - ldr r0, _080BEB7C - bl m4aMPlayStop - ldr r5, _080BEB80 - ldr r0, [r5] - ldr r3, _080BEB84 - adds r0, r0, r3 - movs r1, #6 - strb r1, [r0] - ldr r1, _080BEB88 - ldr r4, _080BEB8C - ldr r0, [r4, #0xc] - str r0, [r1] - movs r0, #0 - bl SetVBlankCallback - movs r0, #0x80 - lsls r0, r0, #2 - bl sub_080BFF08 - ldr r0, [r5] - ldr r1, _080BEB90 - adds r0, r0, r1 - movs r1, #1 - strb r1, [r0] - movs r2, #0x87 - lsls r2, r2, #3 - adds r4, r4, r2 - strb r1, [r4] - b _080BEE4E - .align 2, 0 -_080BEB78: .4byte gUnknown_2037C74 -_080BEB7C: .4byte gUnknown_30074D0 -_080BEB80: .4byte gUnknown_20397EC -_080BEB84: .4byte 0x0000064A -_080BEB88: .4byte gUnknown_3005E14 -_080BEB8C: .4byte gUnknown_3002360 -_080BEB90: .4byte 0x0000064D -_080BEB94: - ldr r1, _080BEBD8 - movs r2, #0x80 - lsls r2, r2, #6 - movs r0, #0 - str r0, [sp] - movs r0, #3 - movs r3, #0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r1, _080BEBDC - movs r0, #3 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - movs r0, #0 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #0 - bl PutWindowTilemap - movs r0, #3 - bl PutWindowTilemap - movs r0, #2 - bl PutWindowTilemap - ldr r1, _080BEBE0 - movs r3, #0x87 - lsls r3, r3, #3 - adds r1, r1, r3 - b _080BEE1E - .align 2, 0 -_080BEBD8: .4byte gUnknown_8537E8C -_080BEBDC: .4byte gUnknown_8537B44 -_080BEBE0: .4byte gUnknown_3002360 -_080BEBE4: - movs r0, #0xd - bl sub_080BF5B0 - movs r0, #1 - movs r1, #0xd - bl sub_080BF638 - ldr r0, _080BEC08 - ldr r0, [r0] - ldr r4, _080BEC0C - adds r0, r0, r4 - ldrb r0, [r0] - lsls r0, r0, #0x1f - lsrs r0, r0, #0x1f - bl LoadPokedexBgPalette - b _080BEE16 - .align 2, 0 -_080BEC08: .4byte gUnknown_20397EC -_080BEC0C: .4byte 0x0000064C -_080BEC10: - bl ResetPaletteFade - ldr r1, _080BEC20 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _080BEE1E - .align 2, 0 -_080BEC20: .4byte gUnknown_3002360 -_080BEC24: - ldr r0, _080BEC5C - ldr r0, [r0] - ldrh r1, [r0] - movs r0, #0 - movs r2, #0xb - movs r3, #4 - bl sub_080C00A0 - adds r1, r0, #0 - lsls r1, r1, #0x18 - ldr r0, _080BEC60 - movs r3, #0xb0 - lsls r3, r3, #0x14 - adds r1, r1, r3 - lsrs r1, r1, #0x18 - movs r2, #4 - bl sub_080BE07C - ldr r0, _080BEC64 - movs r1, #0xb - movs r2, #6 - bl sub_080BE07C - ldr r1, _080BEC68 - movs r4, #0x87 - lsls r4, r4, #3 - adds r1, r1, r4 - b _080BEE1E - .align 2, 0 -_080BEC5C: .4byte gUnknown_20397F4 -_080BEC60: .4byte gUnknown_85C8FD4 -_080BEC64: .4byte gUnknown_85C8FD6 -_080BEC68: .4byte gUnknown_3002360 -_080BEC6C: - ldr r0, _080BECA8 - ldr r0, [r0] - ldrh r0, [r0] - movs r1, #0x30 - movs r2, #0x38 - movs r3, #0 - bl CreateMonSpriteFromNationalDexNumber - ldr r2, _080BECAC - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r3, #0 - strh r0, [r1, #0x10] - ldr r2, _080BECB0 - movs r4, #0x10 - ldrsh r0, [r1, r4] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r2, [r1, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #5] - ldr r0, _080BECB4 - strb r3, [r0] - b _080BEE16 - .align 2, 0 -_080BECA8: .4byte gUnknown_20397F4 -_080BECAC: .4byte gUnknown_3005B60 -_080BECB0: .4byte gUnknown_20205AC -_080BECB4: .4byte gUnknown_3005F2C -_080BECB8: - ldr r1, _080BED14 - ldr r0, [sp, #4] - ands r0, r1 - ldr r1, _080BED18 - orrs r0, r1 - ldr r1, _080BED1C - ands r0, r1 - movs r1, #0xf8 - lsls r1, r1, #0xd - orrs r0, r1 - ldr r1, _080BED20 - ands r0, r1 - movs r1, #0x80 - lsls r1, r1, #0x14 - orrs r0, r1 - str r0, [sp, #4] - ldr r1, _080BED24 - ldr r0, [sp, #8] - ands r0, r1 - movs r1, #0xf0 - lsls r1, r1, #5 - orrs r0, r1 - ldr r1, _080BED28 - ands r0, r1 - movs r1, #0xc - orrs r0, r1 - str r0, [sp, #8] - add r0, sp, #4 - movs r1, #2 - bl sub_08145420 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080BECFE - b _080BEE4E -_080BECFE: - ldr r1, _080BED2C - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - ldrb r0, [r1] - adds r0, #1 - movs r2, #0 - strb r0, [r1] - ldr r0, _080BED30 - strb r2, [r0] - b _080BEE4E - .align 2, 0 -_080BED14: .4byte 0xFFFF0000 -_080BED18: .4byte 0x00004020 -_080BED1C: .4byte 0xFF00FFFF -_080BED20: .4byte 0x00FFFFFF -_080BED24: .4byte 0xFFFF00FF -_080BED28: .4byte 0xFFFFFF00 -_080BED2C: .4byte gUnknown_3002360 -_080BED30: .4byte gUnknown_3005F2C -_080BED34: - ldr r1, _080BEDA0 - ldr r0, [sp, #0xc] - ands r0, r1 - movs r1, #0x90 - lsls r1, r1, #0x14 - orrs r0, r1 - str r0, [sp, #0xc] - ldr r2, _080BEDA4 - add r0, sp, #0xc - ldr r1, [r0, #4] - ands r1, r2 - movs r2, #0x12 - orrs r1, r2 - ldr r2, _080BEDA8 - ands r1, r2 - movs r2, #0xc0 - lsls r2, r2, #2 - orrs r1, r2 - str r1, [r0, #4] - movs r1, #3 - bl sub_0814591C - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080BED74 - ldr r1, _080BEDAC - movs r3, #0x87 - lsls r3, r3, #3 - adds r1, r1, r3 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_080BED74: - movs r0, #3 - movs r1, #2 - bl CopyWindowToVram - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - movs r0, #0 - bl CopyBgTilemapBufferToVram - movs r0, #1 - bl CopyBgTilemapBufferToVram - movs r0, #2 - bl CopyBgTilemapBufferToVram - movs r0, #3 - bl CopyBgTilemapBufferToVram - b _080BEE4E - .align 2, 0 -_080BEDA0: .4byte 0x00FFFFFF -_080BEDA4: .4byte 0xFFFFFF00 -_080BEDA8: .4byte 0xFFFF00FF -_080BEDAC: .4byte gUnknown_3002360 -_080BEDB0: - movs r0, #0x15 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r0, _080BEDD4 - ldr r0, [r0] - bl SetVBlankCallback - ldr r1, _080BEDD8 - movs r4, #0x87 - lsls r4, r4, #3 - adds r1, r1, r4 - b _080BEE1E - .align 2, 0 -_080BEDD4: .4byte gUnknown_3005E14 -_080BEDD8: .4byte gUnknown_3002360 -_080BEDDC: - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg -_080BEE16: - ldr r1, _080BEE28 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 -_080BEE1E: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080BEE4E - .align 2, 0 -_080BEE28: .4byte gUnknown_3002360 -_080BEE2C: - ldr r0, _080BEE58 - ldr r0, [r0] - ldr r1, _080BEE5C - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - movs r3, #0x87 - lsls r3, r3, #3 - adds r0, r2, r3 - strb r1, [r0] - ldr r1, _080BEE60 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080BEE64 - str r1, [r0] -_080BEE4E: - add sp, #0x14 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080BEE58: .4byte gUnknown_20397EC -_080BEE5C: .4byte 0x0000064E -_080BEE60: .4byte gUnknown_3005B60 -_080BEE64: .4byte sub_080BEE68 - thumb_func_end sub_080BEAD4 - - thumb_func_start sub_080BEE68 -sub_080BEE68: @ 0x080BEE68 - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #2 - bl sub_08145528 - bl IsCryPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080BEE88 - movs r0, #1 - bl sub_080BF098 - b _080BEE8E -_080BEE88: - movs r0, #0 - bl sub_080BF098 -_080BEE8E: - ldr r1, _080BEEB8 - ldrh r2, [r1, #0x2e] - movs r0, #1 - ands r0, r2 - adds r5, r1, #0 - cmp r0, #0 - beq _080BEEC0 - movs r0, #1 - bl sub_080BF098 - ldr r0, _080BEEBC - ldr r0, [r0] - ldrh r0, [r0] - bl sub_0806CED0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_08145600 - b _080BF00E - .align 2, 0 -_080BEEB8: .4byte gUnknown_3002360 -_080BEEBC: .4byte gUnknown_20397F4 -_080BEEC0: - ldr r0, _080BEF18 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _080BEED2 - b _080BF00E -_080BEED2: - movs r0, #2 - ands r0, r2 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #0 - beq _080BEF30 - movs r0, #0x15 - rsbs r0, r0, #0 - str r1, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _080BEF1C - bl m4aMPlayContinue - ldr r0, _080BEF20 - ldr r0, [r0] - ldr r1, _080BEF24 - adds r0, r0, r1 - movs r1, #1 - strb r1, [r0] - ldr r1, _080BEF28 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080BEF2C - str r1, [r0] - movs r0, #3 - bl sub_080A306C - b _080BF00E - .align 2, 0 -_080BEF18: .4byte gUnknown_2037C74 -_080BEF1C: .4byte gUnknown_30074D0 -_080BEF20: .4byte gUnknown_20397EC -_080BEF24: .4byte 0x0000064E -_080BEF28: .4byte gUnknown_3005B60 -_080BEF2C: .4byte sub_080BF02C -_080BEF30: - movs r0, #0x20 - ands r0, r2 - cmp r0, #0 - bne _080BEF4C - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r2 - cmp r0, #0 - beq _080BEF9C - ldr r0, _080BEF84 - ldr r0, [r0] - ldrb r0, [r0, #0x13] - cmp r0, #1 - bne _080BEF9C -_080BEF4C: - movs r0, #0x15 - rsbs r0, r0, #0 - str r3, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _080BEF88 - bl m4aMPlayContinue - ldr r0, _080BEF8C - ldr r0, [r0] - ldr r1, _080BEF90 - adds r0, r0, r1 - movs r1, #2 - strb r1, [r0] - ldr r1, _080BEF94 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080BEF98 - str r1, [r0] - movs r0, #0x6d - bl sub_080A306C - b _080BF00E - .align 2, 0 -_080BEF84: .4byte gUnknown_3005AF0 -_080BEF88: .4byte gUnknown_30074D0 -_080BEF8C: .4byte gUnknown_20397EC -_080BEF90: .4byte 0x0000064E -_080BEF94: .4byte gUnknown_3005B60 -_080BEF98: .4byte sub_080BF02C -_080BEF9C: - ldrh r1, [r5, #0x2e] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _080BEFBA - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080BF00E - ldr r0, _080BEFD0 - ldr r0, [r0] - ldrb r0, [r0, #0x13] - cmp r0, #1 - bne _080BF00E -_080BEFBA: - ldr r0, _080BEFD4 - ldr r0, [r0] - ldrb r1, [r0, #2] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _080BEFD8 - movs r0, #0x20 - bl sub_080A306C - b _080BF00E - .align 2, 0 -_080BEFD0: .4byte gUnknown_3005AF0 -_080BEFD4: .4byte gUnknown_20397F4 -_080BEFD8: - movs r0, #0x15 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _080BF018 - bl m4aMPlayContinue - ldr r0, _080BF01C - ldr r0, [r0] - ldr r1, _080BF020 - adds r0, r0, r1 - movs r1, #3 - strb r1, [r0] - ldr r1, _080BF024 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080BF028 - str r1, [r0] - movs r0, #0x6d - bl sub_080A306C -_080BF00E: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080BF018: .4byte gUnknown_30074D0 -_080BF01C: .4byte gUnknown_20397EC -_080BF020: .4byte 0x0000064E -_080BF024: .4byte gUnknown_3005B60 -_080BF028: .4byte sub_080BF02C - thumb_func_end sub_080BEE68 - - thumb_func_start sub_080BF02C -sub_080BF02C: @ 0x080BF02C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080BF06C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080BF08C - bl sub_081459E0 - ldr r1, _080BF070 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrh r0, [r4, #0x10] - bl FreeAndDestroyMonPicSprite - ldr r0, _080BF074 - ldr r0, [r0] - ldr r1, _080BF078 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #2 - beq _080BF080 - cmp r0, #2 - ble _080BF068 - cmp r0, #3 - beq _080BF088 -_080BF068: - ldr r0, _080BF07C - b _080BF08A - .align 2, 0 -_080BF06C: .4byte gUnknown_2037C74 -_080BF070: .4byte gUnknown_3005B60 -_080BF074: .4byte gUnknown_20397EC -_080BF078: .4byte 0x0000064E -_080BF07C: .4byte sub_080BE1C8 -_080BF080: - ldr r0, _080BF084 - b _080BF08A - .align 2, 0 -_080BF084: .4byte sub_080BE930 -_080BF088: - ldr r0, _080BF094 -_080BF08A: - str r0, [r4] -_080BF08C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BF094: .4byte sub_080BF0C8 - thumb_func_end sub_080BF02C - - thumb_func_start sub_080BF098 -sub_080BF098: @ 0x080BF098 - push {lr} - sub sp, #4 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080BF0AC - ldr r1, _080BF0A8 - b _080BF0AE - .align 2, 0 -_080BF0A8: .4byte 0x00000392 -_080BF0AC: - ldr r1, _080BF0C4 -_080BF0AE: - mov r0, sp - strh r1, [r0] - mov r0, sp - movs r1, #0x5d - movs r2, #2 - bl LoadPalette - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_080BF0C4: .4byte 0x000002AF - thumb_func_end sub_080BF098 - - thumb_func_start sub_080BF0C8 -sub_080BF0C8: @ 0x080BF0C8 - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r1, _080BF0EC - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r1, r2 - ldrb r0, [r0] - adds r5, r1, #0 - cmp r0, #9 - bhi _080BF11C - lsls r0, r0, #2 - ldr r1, _080BF0F0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BF0EC: .4byte gUnknown_3002360 -_080BF0F0: .4byte _080BF0F4 -_080BF0F4: @ jump table - .4byte _080BF11C @ case 0 - .4byte _080BF174 @ case 1 - .4byte _080BF1AC @ case 2 - .4byte _080BF1D8 @ case 3 - .4byte _080BF228 @ case 4 - .4byte _080BF22E @ case 5 - .4byte _080BF2E8 @ case 6 - .4byte _080BF3A4 @ case 7 - .4byte _080BF3D0 @ case 8 - .4byte _080BF420 @ case 9 -_080BF11C: - ldr r0, _080BF160 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080BF12A - b _080BF450 -_080BF12A: - ldr r4, _080BF164 - ldr r0, [r4] - ldr r1, _080BF168 - adds r0, r0, r1 - movs r1, #7 - strb r1, [r0] - ldr r1, _080BF16C - ldr r0, [r5, #0xc] - str r0, [r1] - movs r0, #0 - bl SetVBlankCallback - movs r0, #0x80 - lsls r0, r0, #2 - bl sub_080BFF08 - ldr r0, [r4] - ldr r2, _080BF170 - adds r0, r0, r2 - movs r1, #2 - strb r1, [r0] - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r5, r0 - movs r0, #1 - strb r0, [r1] - b _080BF450 - .align 2, 0 -_080BF160: .4byte gUnknown_2037C74 -_080BF164: .4byte gUnknown_20397EC -_080BF168: .4byte 0x0000064A -_080BF16C: .4byte gUnknown_3005E14 -_080BF170: .4byte 0x0000064D -_080BF174: - ldr r1, _080BF1A4 - movs r2, #0x80 - lsls r2, r2, #6 - movs r0, #0 - str r0, [sp] - movs r0, #3 - movs r3, #0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r1, _080BF1A8 - movs r0, #3 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - movs r0, #0 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #0 - bl PutWindowTilemap - b _080BF40A - .align 2, 0 -_080BF1A4: .4byte gUnknown_8537E8C -_080BF1A8: .4byte gUnknown_8537C30 -_080BF1AC: - movs r0, #0xd - bl sub_080BF5B0 - movs r0, #2 - movs r1, #0xd - bl sub_080BF638 - ldr r0, _080BF1D0 - ldr r0, [r0] - ldr r1, _080BF1D4 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1f - lsrs r0, r0, #0x1f - bl LoadPokedexBgPalette - b _080BF40A - .align 2, 0 -_080BF1D0: .4byte gUnknown_20397EC -_080BF1D4: .4byte 0x0000064C -_080BF1D8: - ldr r0, _080BF214 - ldr r0, [r0] - ldrh r1, [r0] - movs r0, #0 - movs r2, #4 - movs r3, #0xf - bl sub_080C00A0 - ldr r0, _080BF218 - movs r1, #9 - movs r2, #0xf - bl sub_080BE07C - ldr r0, _080BF21C - ldr r0, [r0] - movs r1, #0xb - movs r2, #0xf - bl sub_080BE07C - ldr r0, _080BF220 - movs r1, #0x10 - movs r2, #0xf - bl sub_080BE07C - ldr r1, _080BF224 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _080BF412 - .align 2, 0 -_080BF214: .4byte gUnknown_20397F4 -_080BF218: .4byte gUnknown_85C8FDB -_080BF21C: .4byte gUnknown_3005AF0 -_080BF220: .4byte gUnknown_85C8FDD -_080BF224: .4byte gUnknown_3002360 -_080BF228: - bl ResetPaletteFade - b _080BF40A -_080BF22E: - ldr r0, _080BF2CC - ldr r0, [r0] - ldrb r0, [r0, #8] - bl PlayerGenderToFrontTrainerPicId - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x98 - movs r2, #0x38 - movs r3, #0 - bl sub_080C0450 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _080BF2D0 - lsls r4, r6, #4 - adds r4, r4, r6 - lsls r4, r4, #2 - adds r4, r4, r0 - ldrb r1, [r4, #1] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #1] - ldrb r1, [r4, #3] - movs r0, #0x3f - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r4, #3] - ldrb r1, [r4, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #5] - ldr r3, _080BF2D4 - ldr r0, _080BF2D8 - ldr r2, [r0] - ldrh r1, [r2] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r0, [r0, #0x18] - strh r0, [r4, #0x26] - ldrh r1, [r2] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r0, #0x16] - str r1, [sp] - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl SetOamMatrix - ldr r0, _080BF2DC - ldrb r1, [r4, #5] - lsrs r1, r1, #4 - adds r1, #0x10 - lsls r1, r1, #4 - movs r2, #0x20 - bl LoadPalette - ldr r1, _080BF2E0 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r6, [r0, #0x12] - ldr r1, _080BF2E4 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _080BF412 - .align 2, 0 -_080BF2CC: .4byte gUnknown_3005AF0 -_080BF2D0: .4byte gUnknown_20205AC -_080BF2D4: .4byte gUnknown_854069C -_080BF2D8: .4byte gUnknown_20397F4 -_080BF2DC: .4byte gUnknown_85430F0 -_080BF2E0: .4byte gUnknown_3005B60 -_080BF2E4: .4byte gUnknown_3002360 -_080BF2E8: - ldr r5, _080BF390 - ldr r0, [r5] - ldrh r0, [r0] - movs r1, #0x58 - movs r2, #0x38 - movs r3, #1 - bl CreateMonSpriteFromNationalDexNumber - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _080BF394 - lsls r4, r6, #4 - adds r4, r4, r6 - lsls r4, r4, #2 - adds r4, r4, r0 - ldrb r1, [r4, #1] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #1] - ldrb r1, [r4, #3] - movs r0, #0x3f - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r4, #3] - ldrb r1, [r4, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #5] - ldr r3, _080BF398 - ldr r2, [r5] - ldrh r1, [r2] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r0, [r0, #0x14] - strh r0, [r4, #0x26] - ldrh r1, [r2] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r0, #0x12] - str r1, [sp] - movs r0, #2 - movs r2, #0 - movs r3, #0 - bl SetOamMatrix - ldr r0, _080BF39C - ldrb r1, [r4, #5] - lsrs r1, r1, #4 - adds r1, #0x10 - lsls r1, r1, #4 - movs r2, #0x20 - bl LoadPalette - ldr r1, _080BF3A0 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r6, [r0, #0x10] - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - movs r0, #1 - bl CopyBgTilemapBufferToVram - movs r0, #2 - bl CopyBgTilemapBufferToVram - movs r0, #3 - bl CopyBgTilemapBufferToVram - b _080BF40A - .align 2, 0 -_080BF390: .4byte gUnknown_20397F4 -_080BF394: .4byte gUnknown_20205AC -_080BF398: .4byte gUnknown_854069C -_080BF39C: .4byte gUnknown_85430F0 -_080BF3A0: .4byte gUnknown_3005B60 -_080BF3A4: - movs r0, #0x15 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r0, _080BF3C8 - ldr r0, [r0] - bl SetVBlankCallback - ldr r1, _080BF3CC - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _080BF412 - .align 2, 0 -_080BF3C8: .4byte gUnknown_3005E14 -_080BF3CC: .4byte gUnknown_3002360 -_080BF3D0: - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl HideBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg -_080BF40A: - ldr r1, _080BF41C - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 -_080BF412: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080BF450 - .align 2, 0 -_080BF41C: .4byte gUnknown_3002360 -_080BF420: - ldr r0, _080BF458 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _080BF450 - ldr r0, _080BF45C - ldr r0, [r0] - ldr r1, _080BF460 - adds r0, r0, r1 - strb r2, [r0] - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r5, r1 - strb r2, [r0] - ldr r1, _080BF464 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080BF468 - str r1, [r0] -_080BF450: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080BF458: .4byte gUnknown_2037C74 -_080BF45C: .4byte gUnknown_20397EC -_080BF460: .4byte 0x0000064E -_080BF464: .4byte gUnknown_3005B60 -_080BF468: .4byte sub_080BF46C - thumb_func_end sub_080BF0C8 - - thumb_func_start sub_080BF46C -sub_080BF46C: @ 0x080BF46C - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, r4, #0 - ldr r0, _080BF4B8 - ldrh r1, [r0, #0x2e] - movs r0, #2 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0 - beq _080BF4CC - movs r0, #0x15 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _080BF4BC - ldr r0, [r0] - ldr r1, _080BF4C0 - adds r0, r0, r1 - movs r1, #1 - strb r1, [r0] - ldr r1, _080BF4C4 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080BF4C8 - str r1, [r0] - movs r0, #3 - bl sub_080A306C - b _080BF518 - .align 2, 0 -_080BF4B8: .4byte gUnknown_3002360 -_080BF4BC: .4byte gUnknown_20397EC -_080BF4C0: .4byte 0x0000064E -_080BF4C4: .4byte gUnknown_3005B60 -_080BF4C8: .4byte sub_080BF534 -_080BF4CC: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _080BF4E8 - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080BF518 - ldr r0, _080BF520 - ldr r0, [r0] - ldrb r0, [r0, #0x13] - cmp r0, #1 - bne _080BF518 -_080BF4E8: - movs r0, #0x15 - rsbs r0, r0, #0 - str r2, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _080BF524 - ldr r0, [r0] - ldr r1, _080BF528 - adds r0, r0, r1 - movs r1, #2 - strb r1, [r0] - ldr r1, _080BF52C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080BF530 - str r1, [r0] - movs r0, #0x6d - bl sub_080A306C -_080BF518: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080BF520: .4byte gUnknown_3005AF0 -_080BF524: .4byte gUnknown_20397EC -_080BF528: .4byte 0x0000064E -_080BF52C: .4byte gUnknown_3005B60 -_080BF530: .4byte sub_080BF534 - thumb_func_end sub_080BF46C - - thumb_func_start sub_080BF534 -sub_080BF534: @ 0x080BF534 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _080BF574 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080BF58C - ldr r1, _080BF578 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrh r0, [r4, #0x10] - bl FreeAndDestroyMonPicSprite - ldrh r0, [r4, #0x12] - bl FreeAndDestroyTrainerPicSprite - ldr r0, _080BF57C - ldr r0, [r0] - ldr r1, _080BF580 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - beq _080BF56E - cmp r0, #2 - beq _080BF588 -_080BF56E: - ldr r0, _080BF584 - b _080BF58A - .align 2, 0 -_080BF574: .4byte gUnknown_2037C74 -_080BF578: .4byte gUnknown_3005B60 -_080BF57C: .4byte gUnknown_20397EC -_080BF580: .4byte 0x0000064E -_080BF584: .4byte sub_080BE1C8 -_080BF588: - ldr r0, _080BF594 -_080BF58A: - str r0, [r4] -_080BF58C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BF594: .4byte sub_080BEAD4 - thumb_func_end sub_080BF534 - - thumb_func_start sub_080BF598 -sub_080BF598: @ 0x080BF598 - push {lr} - ldr r1, _080BF5AC - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - pop {r0} - bx r0 - .align 2, 0 -_080BF5AC: .4byte gUnknown_8537D24 - thumb_func_end sub_080BF598 - - thumb_func_start sub_080BF5B0 -sub_080BF5B0: @ 0x080BF5B0 - push {lr} - ldr r1, _080BF5C4 - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - pop {r0} - bx r0 - .align 2, 0 -_080BF5C4: .4byte gUnknown_8537DB4 - thumb_func_end sub_080BF5B0 - - thumb_func_start sub_080BF5C8 -sub_080BF5C8: @ 0x080BF5C8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r0, #1 - bl GetBgTilemapBuffer - adds r7, r0, #0 - movs r1, #0 -_080BF5DE: - lsls r0, r1, #3 - subs r0, r0, r1 - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r3, #0x80 - lsls r3, r3, #7 - cmp r1, r8 - bne _080BF5F4 - movs r3, #0x80 - lsls r3, r3, #6 -_080BF5F4: - movs r2, #0 - adds r6, r1, #1 - ldr r4, _080BF634 -_080BF5FA: - adds r1, r5, r2 - lsls r1, r1, #1 - adds r1, r1, r7 - ldrh r0, [r1] - ands r0, r4 - orrs r0, r3 - strh r0, [r1] - adds r1, #0x40 - ldrh r0, [r1] - ands r0, r4 - orrs r0, r3 - strh r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #6 - bls _080BF5FA - lsls r0, r6, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #3 - bls _080BF5DE - movs r0, #1 - bl CopyBgTilemapBufferToVram - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080BF634: .4byte 0x00000FFF - thumb_func_end sub_080BF5C8 - - thumb_func_start sub_080BF638 -sub_080BF638: @ 0x080BF638 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r0, #1 - bl GetBgTilemapBuffer - adds r7, r0, #0 - movs r1, #0 -_080BF64E: - lsls r0, r1, #3 - subs r0, r0, r1 - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r1, r8 - beq _080BF660 - cmp r1, #3 - bne _080BF666 -_080BF660: - movs r3, #0x80 - lsls r3, r3, #6 - b _080BF66A -_080BF666: - movs r3, #0x80 - lsls r3, r3, #7 -_080BF66A: - movs r2, #0 - adds r5, r1, #1 - ldr r4, _080BF6AC -_080BF670: - adds r1, r6, r2 - lsls r1, r1, #1 - adds r1, r1, r7 - ldrh r0, [r1] - ands r0, r4 - orrs r0, r3 - strh r0, [r1] - adds r1, #0x40 - ldrh r0, [r1] - ands r0, r4 - orrs r0, r3 - strh r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #6 - bls _080BF670 - lsls r0, r5, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #3 - bls _080BF64E - movs r0, #1 - bl CopyBgTilemapBufferToVram - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080BF6AC: .4byte 0x00000FFF - thumb_func_end sub_080BF638 - - thumb_func_start CreateDexDisplayMonDataTask -CreateDexDisplayMonDataTask: @ 0x080BF6B0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r0, _080BF6EC - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080BF6F0 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r2, #0 - strh r2, [r1, #8] - strh r4, [r1, #0xa] - strh r5, [r1, #0x20] - lsrs r5, r5, #0x10 - strh r5, [r1, #0x22] - strh r6, [r1, #0x24] - lsrs r6, r6, #0x10 - strh r6, [r1, #0x26] - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080BF6EC: .4byte sub_080BF6F4 -_080BF6F0: .4byte gUnknown_3005B60 - thumb_func_end CreateDexDisplayMonDataTask - - thumb_func_start sub_080BF6F4 -sub_080BF6F4: @ 0x080BF6F4 - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r1, _080BF71C - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r5, [r0, #0xa] - movs r2, #8 - ldrsh r0, [r0, r2] - adds r4, r1, #0 - cmp r0, #6 - bhi _080BF740 - lsls r0, r0, #2 - ldr r1, _080BF720 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BF71C: .4byte gUnknown_3005B60 -_080BF720: .4byte _080BF724 -_080BF724: @ jump table - .4byte _080BF740 @ case 0 - .4byte _080BF7C8 @ case 1 - .4byte _080BF834 @ case 2 - .4byte _080BF83E @ case 3 - .4byte _080BF904 @ case 4 - .4byte _080BF95C @ case 5 - .4byte _080BF9A0 @ case 6 -_080BF740: - ldr r0, _080BF7B0 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080BF74E - b _080BF9D0 -_080BF74E: - ldr r1, _080BF7B4 - ldr r0, _080BF7B8 - ldr r0, [r0, #0xc] - str r0, [r1] - movs r0, #0 - bl SetVBlankCallback - movs r0, #0x80 - lsls r0, r0, #1 - bl sub_080BFF08 - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _080BF7BC - movs r0, #0 - movs r2, #2 - bl InitBgsFromTemplates - movs r4, #0x80 - lsls r4, r4, #4 - adds r0, r4, #0 - bl AllocZeroed - adds r1, r0, #0 - movs r0, #3 - bl SetBgTilemapBuffer - adds r0, r4, #0 - bl AllocZeroed - adds r1, r0, #0 - movs r0, #2 - bl SetBgTilemapBuffer - ldr r0, _080BF7C0 - bl InitWindows - bl sub_08004480 - ldr r1, _080BF7C4 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #1 - strh r1, [r0, #8] - b _080BF9D0 - .align 2, 0 -_080BF7B0: .4byte gUnknown_2037C74 -_080BF7B4: .4byte gUnknown_3005E14 -_080BF7B8: .4byte gUnknown_3002360 -_080BF7BC: .4byte gUnknown_8543148 -_080BF7C0: .4byte gUnknown_8543150 -_080BF7C4: .4byte gUnknown_3005B60 -_080BF7C8: - ldr r1, _080BF828 - movs r2, #0x80 - lsls r2, r2, #6 - movs r0, #0 - str r0, [sp] - movs r0, #3 - movs r3, #0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r1, _080BF82C - movs r0, #3 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - movs r0, #0 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #0 - bl PutWindowTilemap - movs r0, #1 - bl PutWindowTilemap - ldr r0, _080BF830 - lsls r4, r7, #2 - adds r4, r4, r7 - lsls r4, r4, #3 - adds r4, r4, r0 - ldrh r1, [r4, #0xa] - movs r0, #1 - bl sub_080C0288 - movs r0, #1 - movs r1, #2 - bl CopyWindowToVram - bl ResetPaletteFade - movs r0, #0 - bl LoadPokedexBgPalette - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _080BF9D0 - .align 2, 0 -_080BF828: .4byte gUnknown_8537E8C -_080BF82C: .4byte gUnknown_8537A10 -_080BF830: .4byte gUnknown_3005B60 -_080BF834: - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r4 - b _080BF994 -_080BF83E: - ldr r0, _080BF868 - movs r1, #3 - movs r2, #0 - bl sub_080BE07C - bl IsNationalPokedexEnabled - cmp r0, #0 - bne _080BF86C - adds r0, r5, #0 - bl sub_0806CF1C - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0 - movs r2, #0xd - movs r3, #3 - bl sub_080C0020 - b _080BF878 - .align 2, 0 -_080BF868: .4byte gUnknown_85C8FE7 -_080BF86C: - movs r0, #0 - adds r1, r5, #0 - movs r2, #0xd - movs r3, #3 - bl sub_080C0020 -_080BF878: - movs r0, #0 - adds r1, r5, #0 - movs r2, #0x11 - movs r3, #3 - bl sub_080C00A0 - ldr r0, _080BF8F4 - movs r1, #0xd - movs r2, #5 - bl sub_080BE07C - ldr r0, _080BF8F8 - movs r1, #0x10 - movs r2, #7 - bl sub_080BE07C - ldr r0, _080BF8FC - movs r1, #0x10 - movs r2, #9 - bl sub_080BE07C - lsls r4, r5, #3 - subs r4, r4, r5 - lsls r4, r4, #2 - ldr r6, _080BF900 - adds r5, r4, r6 - movs r0, #0 - adds r1, r5, #0 - movs r2, #0xd - movs r3, #5 - bl sub_080C0150 - ldrh r1, [r5, #6] - movs r0, #0 - movs r2, #0x10 - movs r3, #7 - bl sub_080C01C8 - ldrh r1, [r5, #8] - movs r0, #0 - movs r2, #0x10 - movs r3, #9 - bl sub_080C01C8 - adds r6, #0xc - adds r4, r4, r6 - ldr r0, [r4] - movs r1, #3 - movs r2, #0xd - bl sub_080BE07C - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - movs r0, #2 - bl CopyBgTilemapBufferToVram - movs r0, #3 - bl CopyBgTilemapBufferToVram - b _080BF98A - .align 2, 0 -_080BF8F4: .4byte gUnknown_85C8FBB -_080BF8F8: .4byte gUnknown_85C8FC5 -_080BF8FC: .4byte gUnknown_85C8FCC -_080BF900: .4byte gUnknown_854069C -_080BF904: - adds r0, r5, #0 - movs r1, #0x30 - movs r2, #0x38 - movs r3, #0 - bl CreateMonSpriteFromNationalDexNumber - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _080BF950 - lsls r1, r4, #4 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #5] - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r0, _080BF954 - ldr r0, [r0] - bl SetVBlankCallback - ldr r1, _080BF958 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r4, [r0, #0xe] - b _080BF994 - .align 2, 0 -_080BF950: .4byte gUnknown_20205AC -_080BF954: .4byte gUnknown_3005E14 -_080BF958: .4byte gUnknown_3005B60 -_080BF95C: - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg -_080BF98A: - ldr r1, _080BF99C - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 -_080BF994: - ldrh r1, [r0, #8] - adds r1, #1 - strh r1, [r0, #8] - b _080BF9D0 - .align 2, 0 -_080BF99C: .4byte gUnknown_3005B60 -_080BF9A0: - ldr r0, _080BF9D8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _080BF9D0 - adds r0, r5, #0 - bl sub_0806CED0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0 - bl PlayCry1 - ldr r1, _080BF9DC - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r4, [r0, #0xc] - ldr r1, _080BF9E0 - str r1, [r0] -_080BF9D0: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080BF9D8: .4byte gUnknown_2037C74 -_080BF9DC: .4byte gUnknown_3005B60 -_080BF9E0: .4byte sub_080BF9E4 - thumb_func_end sub_080BF6F4 - - thumb_func_start sub_080BF9E4 -sub_080BF9E4: @ 0x080BF9E4 - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080BFA2C - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _080BFA44 - ldr r0, _080BFA30 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r3, _080BFA34 - ldr r0, _080BFA38 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0xe - ldrsh r2, [r1, r0] - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r3, #0x1c - adds r0, r0, r3 - ldr r2, _080BFA3C - str r2, [r0] - ldr r0, _080BFA40 - str r0, [r1] - b _080BFA7A - .align 2, 0 -_080BFA2C: .4byte gUnknown_3002360 -_080BFA30: .4byte 0x0000FFFF -_080BFA34: .4byte gUnknown_20205AC -_080BFA38: .4byte gUnknown_3005B60 -_080BFA3C: .4byte sub_080BFB28 -_080BFA40: .4byte blockset_load_palette_to_gpu -_080BFA44: - ldr r1, _080BFA68 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #0xc] - adds r1, #1 - strh r1, [r0, #0xc] - movs r0, #0x10 - ands r1, r0 - cmp r1, #0 - beq _080BFA70 - ldr r0, _080BFA6C - movs r1, #0x31 - movs r2, #0xe - bl LoadPalette - b _080BFA7A - .align 2, 0 -_080BFA68: .4byte gUnknown_3005B60 -_080BFA6C: .4byte gUnknown_8537422 -_080BFA70: - ldr r0, _080BFA84 - movs r1, #0x31 - movs r2, #0xe - bl LoadPalette -_080BFA7A: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BFA84: .4byte gUnknown_8537482 - thumb_func_end sub_080BF9E4 - - thumb_func_start blockset_load_palette_to_gpu -blockset_load_palette_to_gpu: @ 0x080BFA88 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _080BFB1C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080BFB16 - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - bl FreeAllWindowBuffers - movs r0, #2 - bl GetBgTilemapBuffer - cmp r0, #0 - beq _080BFAB6 - bl Free -_080BFAB6: - movs r0, #3 - bl GetBgTilemapBuffer - cmp r0, #0 - beq _080BFAC4 - bl Free -_080BFAC4: - ldr r0, _080BFB20 - lsls r4, r6, #2 - adds r4, r4, r6 - lsls r4, r4, #3 - adds r4, r4, r0 - ldrh r0, [r4, #0xa] - bl sub_0806CED0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrh r1, [r4, #0x22] - lsls r1, r1, #0x10 - ldrh r2, [r4, #0x20] - orrs r1, r2 - ldrh r2, [r4, #0x26] - lsls r2, r2, #0x10 - ldrh r3, [r4, #0x24] - orrs r2, r3 - ldr r5, _080BFB24 - movs r3, #0xe - ldrsh r4, [r4, r3] - lsls r3, r4, #4 - adds r3, r3, r4 - lsls r3, r3, #2 - adds r3, r3, r5 - ldrb r4, [r3, #5] - lsrs r4, r4, #4 - bl GetMonSpritePalFromSpeciesAndPersonality - lsls r4, r4, #4 - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r2, #0 - orrs r4, r1 - adds r1, r4, #0 - movs r2, #0x20 - bl LoadCompressedPalette - adds r0, r6, #0 - bl DestroyTask -_080BFB16: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080BFB1C: .4byte gUnknown_2037C74 -_080BFB20: .4byte gUnknown_3005B60 -_080BFB24: .4byte gUnknown_20205AC - thumb_func_end blockset_load_palette_to_gpu - - thumb_func_start sub_080BFB28 -sub_080BFB28: @ 0x080BFB28 - push {lr} - adds r1, r0, #0 - ldrh r2, [r1, #0x20] - movs r3, #0x20 - ldrsh r0, [r1, r3] - cmp r0, #0x77 - bgt _080BFB3A - adds r0, r2, #2 - strh r0, [r1, #0x20] -_080BFB3A: - ldrh r2, [r1, #0x20] - movs r3, #0x20 - ldrsh r0, [r1, r3] - cmp r0, #0x78 - ble _080BFB48 - subs r0, r2, #2 - strh r0, [r1, #0x20] -_080BFB48: - ldrh r2, [r1, #0x22] - movs r3, #0x22 - ldrsh r0, [r1, r3] - cmp r0, #0x4f - bgt _080BFB56 - adds r0, r2, #1 - strh r0, [r1, #0x22] -_080BFB56: - ldrh r2, [r1, #0x22] - movs r3, #0x22 - ldrsh r0, [r1, r3] - cmp r0, #0x50 - ble _080BFB64 - subs r0, r2, #1 - strh r0, [r1, #0x22] -_080BFB64: - pop {r0} - bx r0 - thumb_func_end sub_080BFB28 - - thumb_func_start sub_080BFB68 -sub_080BFB68: @ 0x080BFB68 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080BFB7C - adds r0, r0, r1 - bx lr - .align 2, 0 -_080BFB7C: .4byte gUnknown_854069C - thumb_func_end sub_080BFB68 - - thumb_func_start GetPokedexHeightWeight -GetPokedexHeightWeight: @ 0x080BFB80 - push {lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #0 - beq _080BFB96 - cmp r1, #1 - beq _080BFBA8 - movs r0, #1 - b _080BFBB4 -_080BFB96: - ldr r0, _080BFBA4 - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r0, [r1, #6] - b _080BFBB4 - .align 2, 0 -_080BFBA4: .4byte gUnknown_854069C -_080BFBA8: - ldr r0, _080BFBB8 - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r0, [r1, #8] -_080BFBB4: - pop {r1} - bx r1 - .align 2, 0 -_080BFBB8: .4byte gUnknown_854069C - thumb_func_end GetPokedexHeightWeight - - thumb_func_start GetSetPokedexFlag -GetSetPokedexFlag: @ 0x080BFBBC - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r2, r1, #0x18 - adds r3, r2, #0 - ldr r1, _080BFBF0 - adds r0, r0, r1 - lsrs r1, r0, #0x10 - lsrs r0, r0, #0x13 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #7 - ands r1, r0 - movs r0, #0x80 - lsls r0, r0, #0x11 - lsls r0, r1 - lsrs r5, r0, #0x18 - movs r6, #0 - cmp r2, #1 - beq _080BFC54 - cmp r2, #1 - bgt _080BFBF4 - cmp r2, #0 - beq _080BFC02 - b _080BFD40 - .align 2, 0 -_080BFBF0: .4byte 0xFFFF0000 -_080BFBF4: - cmp r3, #2 - bne _080BFBFA - b _080BFCF4 -_080BFBFA: - cmp r3, #3 - bne _080BFC00 - b _080BFD30 -_080BFC00: - b _080BFD40 -_080BFC02: - ldr r1, _080BFC44 - ldr r0, [r1] - adds r0, #0x5c - adds r0, r0, r4 - ldrb r2, [r0] - ands r2, r5 - adds r7, r1, #0 - cmp r2, #0 - bne _080BFC16 - b _080BFD40 -_080BFC16: - ldr r0, _080BFC48 - ldr r3, [r0] - ldr r6, _080BFC4C - adds r1, r3, r6 - adds r1, r1, r4 - ldrb r1, [r1] - ands r1, r5 - adds r6, r0, #0 - cmp r2, r1 - bne _080BFC38 - ldr r1, _080BFC50 - adds r0, r3, r1 - adds r0, r0, r4 - ldrb r0, [r0] - ands r0, r5 - cmp r2, r0 - beq _080BFC96 -_080BFC38: - ldr r1, [r7] - adds r1, #0x5c - adds r1, r1, r4 - mvns r3, r5 - b _080BFCC2 - .align 2, 0 -_080BFC44: .4byte gUnknown_3005AF0 -_080BFC48: .4byte gUnknown_3005AEC -_080BFC4C: .4byte 0x00000988 -_080BFC50: .4byte 0x00003B24 -_080BFC54: - ldr r1, _080BFC9C - ldr r3, [r1] - adds r0, r3, #0 - adds r0, #0x28 - adds r0, r0, r4 - ldrb r2, [r0] - ands r2, r5 - adds r7, r1, #0 - cmp r2, #0 - beq _080BFD40 - adds r0, r3, #0 - adds r0, #0x5c - adds r0, r0, r4 - ldrb r0, [r0] - ands r0, r5 - ldr r6, _080BFCA0 - cmp r2, r0 - bne _080BFCAC - ldr r1, [r6] - ldr r3, _080BFCA4 - adds r0, r1, r3 - adds r0, r0, r4 - ldrb r0, [r0] - ands r0, r5 - cmp r2, r0 - bne _080BFCAC - ldr r3, _080BFCA8 - adds r0, r1, r3 - adds r0, r0, r4 - ldrb r0, [r0] - ands r0, r5 - cmp r2, r0 - bne _080BFCAC -_080BFC96: - movs r6, #1 - b _080BFD40 - .align 2, 0 -_080BFC9C: .4byte gUnknown_3005AF0 -_080BFCA0: .4byte gUnknown_3005AEC -_080BFCA4: .4byte 0x00000988 -_080BFCA8: .4byte 0x00003B24 -_080BFCAC: - ldr r1, [r7] - adds r1, #0x28 - adds r1, r1, r4 - mvns r3, r5 - ldrb r2, [r1] - adds r0, r3, #0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r7] - adds r1, #0x5c - adds r1, r1, r4 -_080BFCC2: - ldrb r2, [r1] - adds r0, r3, #0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r6] - ldr r0, _080BFCEC - adds r1, r1, r0 - adds r1, r1, r4 - ldrb r2, [r1] - adds r0, r3, #0 - ands r0, r2 - strb r0, [r1] - ldr r0, [r6] - ldr r1, _080BFCF0 - adds r0, r0, r1 - adds r0, r0, r4 - ldrb r1, [r0] - ands r3, r1 - strb r3, [r0] - movs r6, #0 - b _080BFD40 - .align 2, 0 -_080BFCEC: .4byte 0x00000988 -_080BFCF0: .4byte 0x00003B24 -_080BFCF4: - ldr r0, _080BFD20 - ldr r1, [r0] - adds r1, #0x5c - adds r1, r1, r4 - ldrb r2, [r1] - adds r0, r5, #0 - orrs r0, r2 - strb r0, [r1] - ldr r3, _080BFD24 - ldr r1, [r3] - ldr r0, _080BFD28 - adds r1, r1, r0 - adds r1, r1, r4 - ldrb r2, [r1] - adds r0, r5, #0 - orrs r0, r2 - strb r0, [r1] - ldr r1, [r3] - ldr r3, _080BFD2C - adds r1, r1, r3 - b _080BFD36 - .align 2, 0 -_080BFD20: .4byte gUnknown_3005AF0 -_080BFD24: .4byte gUnknown_3005AEC -_080BFD28: .4byte 0x00000988 -_080BFD2C: .4byte 0x00003B24 -_080BFD30: - ldr r0, _080BFD48 - ldr r1, [r0] - adds r1, #0x28 -_080BFD36: - adds r1, r1, r4 - ldrb r2, [r1] - adds r0, r5, #0 - orrs r0, r2 - strb r0, [r1] -_080BFD40: - adds r0, r6, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080BFD48: .4byte gUnknown_3005AF0 - thumb_func_end GetSetPokedexFlag - - thumb_func_start GetNationalPokedexCount -GetNationalPokedexCount: @ 0x080BFD4C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r5, #0 - movs r0, #0 - ldr r7, _080BFD64 -_080BFD58: - cmp r6, #0 - beq _080BFD68 - cmp r6, #1 - beq _080BFD72 - adds r4, r0, #1 - b _080BFD8A - .align 2, 0 -_080BFD64: .4byte 0x00000181 -_080BFD68: - adds r4, r0, #1 - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0 - b _080BFD7A -_080BFD72: - adds r4, r0, #1 - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 -_080BFD7A: - bl GetSetPokedexFlag - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080BFD8A - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_080BFD8A: - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r7 - bls _080BFD58 - adds r0, r5, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetNationalPokedexCount - - thumb_func_start GetHoennPokedexCount -GetHoennPokedexCount: @ 0x080BFD9C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r5, #0 - movs r0, #0 -_080BFDA6: - cmp r6, #0 - beq _080BFDB2 - cmp r6, #1 - beq _080BFDC4 - adds r4, r0, #1 - b _080BFDE4 -_080BFDB2: - adds r4, r0, #1 - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - bl sub_0806CFB0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0 - b _080BFDD4 -_080BFDC4: - adds r4, r0, #1 - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - bl sub_0806CFB0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 -_080BFDD4: - bl GetSetPokedexFlag - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080BFDE4 - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_080BFDE4: - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xc9 - bls _080BFDA6 - adds r0, r5, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end GetHoennPokedexCount - - thumb_func_start sub_080BFDF4 -sub_080BFDF4: @ 0x080BFDF4 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r5, #0 - movs r0, #0 -_080BFDFE: - cmp r6, #0 - beq _080BFE0A - cmp r6, #1 - beq _080BFE14 - adds r4, r0, #1 - b _080BFE2C -_080BFE0A: - adds r4, r0, #1 - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0 - b _080BFE1C -_080BFE14: - adds r4, r0, #1 - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 -_080BFE1C: - bl GetSetPokedexFlag - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080BFE2C - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_080BFE2C: - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x96 - bls _080BFDFE - adds r0, r5, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_080BFDF4 - - thumb_func_start HasAllHoennMons -HasAllHoennMons: @ 0x080BFE3C - push {r4, lr} - movs r0, #0 -_080BFE40: - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r4, #0 - bl sub_0806CFB0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - bl GetSetPokedexFlag - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080BFE60 - movs r0, #0 - b _080BFE68 -_080BFE60: - adds r0, r4, #0 - cmp r0, #0xc7 - bls _080BFE40 - movs r0, #1 -_080BFE68: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end HasAllHoennMons - - thumb_func_start sub_080BFE70 -sub_080BFE70: @ 0x080BFE70 - push {r4, lr} - movs r0, #0 -_080BFE74: - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r4, #0 - movs r1, #1 - bl GetSetPokedexFlag - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080BFE8C - movs r0, #0 - b _080BFE94 -_080BFE8C: - adds r0, r4, #0 - cmp r0, #0x95 - bls _080BFE74 - movs r0, #1 -_080BFE94: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080BFE70 - - thumb_func_start sub_080BFE9C -sub_080BFE9C: @ 0x080BFE9C - push {r4, r5, lr} - movs r0, #0 -_080BFEA0: - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r4, #0 - movs r1, #1 - bl GetSetPokedexFlag - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080BFEEE - adds r0, r4, #0 - cmp r0, #0x95 - bls _080BFEA0 - movs r0, #0x97 -_080BFEBC: - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r4, #0 - movs r1, #1 - bl GetSetPokedexFlag - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080BFEEE - adds r0, r4, #0 - cmp r0, #0xf7 - bls _080BFEBC - movs r0, #0xfb - ldr r5, _080BFEF4 -_080BFEDA: - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r4, #0 - movs r1, #1 - bl GetSetPokedexFlag - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080BFEF8 -_080BFEEE: - movs r0, #0 - b _080BFF00 - .align 2, 0 -_080BFEF4: .4byte 0x0000017F -_080BFEF8: - adds r0, r4, #0 - cmp r0, r5 - bls _080BFEDA - movs r0, #1 -_080BFF00: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080BFE9C - - thumb_func_start sub_080BFF08 -sub_080BFF08: @ 0x080BFF08 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r5, r4, #0 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - bne _080BFF3A - movs r0, #0 - bl ClearGpuRegBits - movs r0, #8 - movs r1, #0 - bl SetGpuReg - movs r0, #0x10 - movs r1, #0 - bl SetGpuReg - movs r0, #0x12 - movs r1, #0 - bl SetGpuReg -_080BFF3A: - movs r1, #0x80 - lsls r1, r1, #2 - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - bne _080BFF64 - movs r0, #0 - bl ClearGpuRegBits - movs r0, #0xa - movs r1, #0 - bl SetGpuReg - movs r0, #0x14 - movs r1, #0 - bl SetGpuReg - movs r0, #0x16 - movs r1, #0 - bl SetGpuReg -_080BFF64: - movs r1, #0x80 - lsls r1, r1, #3 - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - bne _080BFF8E - movs r0, #0 - bl ClearGpuRegBits - movs r0, #0xc - movs r1, #0 - bl SetGpuReg - movs r0, #0x18 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1a - movs r1, #0 - bl SetGpuReg -_080BFF8E: - movs r1, #0x80 - lsls r1, r1, #4 - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - bne _080BFFB8 - movs r0, #0 - bl ClearGpuRegBits - movs r0, #0xe - movs r1, #0 - bl SetGpuReg - movs r0, #0x1c - movs r1, #0 - bl SetGpuReg - movs r0, #0x1e - movs r1, #0 - bl SetGpuReg -_080BFFB8: - movs r1, #0x80 - lsls r1, r1, #5 - ands r5, r1 - cmp r5, #0 - bne _080BFFD6 - movs r0, #0 - bl ClearGpuRegBits - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r1, _080BFFDC - movs r0, #8 - strb r0, [r1] -_080BFFD6: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080BFFDC: .4byte gUnknown_30030BC - thumb_func_end sub_080BFF08 - - thumb_func_start sub_080BFFE0 -sub_080BFFE0: @ 0x080BFFE0 - push {r4, r5, r6, lr} - sub sp, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r3, r3, #0x18 - add r4, sp, #0x14 - movs r6, #0 - strb r6, [r4] - adds r5, r4, #0 - movs r4, #0xf - strb r4, [r5, #1] - movs r4, #3 - strb r4, [r5, #2] - lsls r2, r2, #0x1b - lsrs r2, r2, #0x18 - lsrs r3, r3, #0x15 - adds r3, #2 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r6, [sp] - str r6, [sp, #4] - str r5, [sp, #8] - subs r4, #4 - str r4, [sp, #0xc] - str r1, [sp, #0x10] - movs r1, #1 - bl AddTextPrinterParameterized4 - add sp, #0x18 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_080BFFE0 - - thumb_func_start sub_080C0020 -sub_080C0020: @ 0x080C0020 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #4 - adds r6, r0, #0 - adds r4, r1, #0 - mov r8, r2 - mov sb, r3 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - mov r0, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - mov r0, sb - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - mov r5, sp - adds r0, r4, #0 - movs r1, #0x64 - bl __udivsi3 - adds r0, #0xa1 - strb r0, [r5] - mov r5, sp - adds r0, r4, #0 - movs r1, #0x64 - bl __umodsi3 - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r4, #0 - movs r1, #0xa - bl __udivsi3 - adds r0, #0xa1 - strb r0, [r5, #1] - mov r5, sp - adds r0, r4, #0 - movs r1, #0xa - bl __umodsi3 - adds r0, #0xa1 - strb r0, [r5, #2] - mov r1, sp - movs r0, #0xff - strb r0, [r1, #3] - adds r0, r6, #0 - mov r2, r8 - mov r3, sb - bl sub_080BFFE0 - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_080C0020 - - thumb_func_start sub_080C00A0 -sub_080C00A0: @ 0x080C00A0 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r8, r2 - lsls r3, r3, #0x18 - lsrs r7, r3, #0x18 - movs r4, #0 - movs r2, #0xff -_080C00C2: - mov r1, sp - adds r0, r1, r4 - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xa - bls _080C00C2 - adds r0, r5, #0 - bl sub_0806CED0 - adds r5, r0, #0 - cmp r5, #0 - beq _080C0120 - movs r4, #0 - ldr r1, _080C011C - lsls r3, r5, #1 - adds r0, r3, r5 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0xff - beq _080C0134 - adds r6, r1, #0 -_080C00F6: - mov r0, sp - adds r2, r0, r4 - adds r1, r3, r5 - lsls r1, r1, #1 - adds r0, r4, r1 - adds r0, r0, r6 - ldrb r0, [r0] - strb r0, [r2] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r1, r4, r1 - adds r1, r1, r6 - ldrb r0, [r1] - cmp r0, #0xff - beq _080C0134 - cmp r4, #9 - bls _080C00F6 - b _080C0134 - .align 2, 0 -_080C011C: .4byte gUnknown_82EA31C -_080C0120: - movs r4, #0 - movs r1, #0xae -_080C0124: - mov r2, sp - adds r0, r2, r4 - strb r1, [r0] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #4 - bls _080C0124 -_080C0134: - mov r0, sb - mov r1, sp - mov r2, r8 - adds r3, r7, #0 - bl sub_080BFFE0 - adds r0, r4, #0 - add sp, #0xc - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_080C00A0 - - thumb_func_start sub_080C0150 -sub_080C0150: @ 0x080C0150 - push {r4, r5, r6, r7, lr} - sub sp, #8 - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov ip, r2 - lsls r3, r3, #0x18 - lsrs r5, r3, #0x18 - movs r2, #0 - movs r1, #0 -_080C0168: - mov r3, sp - adds r0, r3, r2 - strb r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #4 - bls _080C0168 - movs r3, #0 - ldrb r0, [r4] - cmp r0, #0 - beq _080C0192 -_080C0180: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - adds r0, r4, r3 - ldrb r0, [r0] - cmp r0, #0 - beq _080C0192 - cmp r3, #4 - bls _080C0180 -_080C0192: - movs r2, #0 - cmp r2, r3 - bhs _080C01B0 -_080C0198: - adds r0, r2, #5 - subs r0, r0, r3 - mov r7, sp - adds r1, r7, r0 - adds r0, r4, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, r3 - blo _080C0198 -_080C01B0: - mov r1, sp - movs r0, #0xff - strb r0, [r1, #5] - adds r0, r6, #0 - mov r2, ip - adds r3, r5, #0 - bl sub_080BFFE0 - add sp, #8 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_080C0150 - - thumb_func_start sub_080C01C8 -sub_080C01C8: @ 0x080C01C8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r6, r3, #0x18 - movs r5, #0 - movs r1, #0xfa - lsls r1, r1, #2 - adds r0, r4, #0 - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _080C01FC - mov r0, sp - strb r5, [r0] - b _080C0204 -_080C01FC: - mov r1, sp - adds r0, #0xa1 - strb r0, [r1] - movs r5, #1 -_080C0204: - movs r1, #0xfa - lsls r1, r1, #2 - adds r0, r4, #0 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _080C022A - cmp r5, #0 - bne _080C022A - mov r0, sp - strb r5, [r0, #1] - b _080C0230 -_080C022A: - mov r1, sp - adds r0, #0xa1 - strb r0, [r1, #1] -_080C0230: - mov r5, sp - movs r1, #0xfa - lsls r1, r1, #2 - adds r0, r4, #0 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r4, #0 - movs r1, #0xa - bl __udivsi3 - adds r0, #0xa1 - strb r0, [r5, #2] - mov r1, sp - movs r0, #0xb8 - strb r0, [r1, #3] - mov r5, sp - adds r0, r4, #0 - movs r1, #0xa - bl __umodsi3 - adds r0, #0xa1 - strb r0, [r5, #4] - mov r1, sp - movs r0, #0xff - strb r0, [r1, #5] - mov r0, r8 - adds r2, r7, #0 - adds r3, r6, #0 - bl sub_080BFFE0 - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_080C01C8 - - thumb_func_start sub_080C0288 -sub_080C0288: @ 0x080C0288 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x80 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r4, _080C0314 - adds r0, r1, #0 - bl sub_0806CED0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0xe - adds r0, r0, r4 - ldr r0, [r0] - mov ip, r0 - movs r5, #0 - movs r1, #0 - movs r7, #2 -_080C02B2: - mov r2, ip - adds r0, r2, r1 - ldrb r3, [r0] - movs r4, #0 - adds r6, r1, #1 -_080C02BC: - lsls r2, r4, #1 - adds r1, r3, #0 - asrs r1, r2 - movs r0, #1 - ands r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - asrs r1, r0, #0x1f - ands r1, r7 - adds r0, r7, #0 - lsls r0, r2 - ands r0, r3 - cmp r0, #0 - beq _080C02DC - movs r0, #0x20 - orrs r1, r0 -_080C02DC: - mov r2, sp - adds r0, r2, r5 - strb r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #3 - bls _080C02BC - lsls r0, r6, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0x1f - bls _080C02B2 - mov r0, r8 - mov r1, sp - movs r2, #0x80 - movs r3, #0 - bl CopyToWindowPixelBuffer - add sp, #0x80 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080C0314: .4byte gUnknown_8543168 - thumb_func_end sub_080C0288 - - thumb_func_start sub_080C0318 -sub_080C0318: @ 0x080C0318 - push {r4, lr} - lsls r0, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsrs r0, r0, #5 - ldr r2, _080C0354 - adds r3, r0, r2 - movs r4, #0xf0 - lsls r4, r4, #8 - adds r2, r1, r4 - strh r2, [r3] - ldr r2, _080C0358 - adds r3, r0, r2 - adds r4, #1 - adds r2, r1, r4 - strh r2, [r3] - ldr r2, _080C035C - adds r3, r0, r2 - adds r4, #1 - adds r2, r1, r4 - strh r2, [r3] - ldr r2, _080C0360 - adds r0, r0, r2 - adds r4, #1 - adds r1, r1, r4 - strh r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C0354: .4byte 0x06000232 -_080C0358: .4byte 0x06000234 -_080C035C: .4byte 0x06000272 -_080C0360: .4byte 0x06000274 - thumb_func_end sub_080C0318 - - thumb_func_start sub_080C0364 -sub_080C0364: @ 0x080C0364 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, r4, #0 - lsls r1, r1, #0x10 - lsrs r0, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - cmp r4, #1 - beq _080C0390 - cmp r4, #1 - bgt _080C0386 - cmp r4, #0 - beq _080C0398 - b _080C03B8 -_080C0386: - cmp r5, #2 - beq _080C03AA - cmp r5, #3 - beq _080C039E - b _080C03B8 -_080C0390: - cmp r0, r2 - bls _080C03B8 - subs r0, #1 - b _080C03B0 -_080C0398: - cmp r0, r3 - bhs _080C03B8 - b _080C03AE -_080C039E: - cmp r0, r2 - bls _080C03A6 - subs r0, #1 - b _080C03B0 -_080C03A6: - adds r0, r3, #0 - b _080C03B8 -_080C03AA: - cmp r0, r3 - bhs _080C03B6 -_080C03AE: - adds r0, #1 -_080C03B0: - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b _080C03B8 -_080C03B6: - adds r0, r2, #0 -_080C03B8: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080C0364 - - thumb_func_start sub_080C03C0 -sub_080C03C0: @ 0x080C03C0 - push {lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0xc9 - beq _080C03E0 - movs r0, #0x9a - lsls r0, r0, #1 - cmp r1, r0 - bne _080C03EC - ldr r0, _080C03DC - ldr r0, [r0] - ldr r0, [r0, #0x20] - b _080C03EE - .align 2, 0 -_080C03DC: .4byte gUnknown_3005AF0 -_080C03E0: - ldr r0, _080C03E8 - ldr r0, [r0] - ldr r0, [r0, #0x1c] - b _080C03EE - .align 2, 0 -_080C03E8: .4byte gUnknown_3005AF0 -_080C03EC: - movs r0, #0 -_080C03EE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080C03C0 - - thumb_func_start CreateMonSpriteFromNationalDexNumber -CreateMonSpriteFromNationalDexNumber: @ 0x080C03F4 - push {r4, r5, r6, lr} - sub sp, #0x14 - adds r4, r1, #0 - adds r5, r2, #0 - adds r6, r3, #0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - bl sub_0806CED0 - adds r1, r0, #0 - adds r0, r1, #0 - str r1, [sp, #0x10] - bl sub_080C03C0 - adds r2, r0, #0 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - str r4, [sp] - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - str r5, [sp, #4] - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - str r6, [sp, #8] - ldr r0, _080C044C - str r0, [sp, #0xc] - ldr r1, [sp, #0x10] - adds r0, r1, #0 - movs r1, #8 - movs r3, #1 - bl CreateMonPicSprite_HandleDeoxys - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - add sp, #0x14 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080C044C: .4byte 0x0000FFFF - thumb_func_end CreateMonSpriteFromNationalDexNumber - - thumb_func_start sub_080C0450 -sub_080C0450: @ 0x080C0450 - push {r4, r5, lr} - sub sp, #8 - adds r4, r1, #0 - adds r5, r2, #0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r3, [sp] - ldr r1, _080C0484 - str r1, [sp, #4] - movs r1, #1 - adds r2, r4, #0 - adds r3, r5, #0 - bl CreateTrainerPicSprite - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - add sp, #8 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080C0484: .4byte 0x0000FFFF - thumb_func_end sub_080C0450 - - thumb_func_start save_write_to_flash -save_write_to_flash: @ 0x080C0488 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - ldr r4, [sp, #0x34] - ldr r5, [sp, #0x38] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r3, [sp, #4] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp, #8] - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - mov sl, r5 - bl sub_080BC010 - movs r5, #0 - movs r6, #0 - ldr r4, _080C069C - ldr r3, _080C06A0 -_080C04C2: - ldr r2, [r3] - lsls r0, r5, #2 - adds r1, r2, r0 - ldrb r0, [r1, #2] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _080C04DE - lsls r0, r6, #2 - adds r0, r2, r0 - ldr r1, [r1] - str r1, [r0] - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_080C04DE: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, r4 - bls _080C04C2 - ldr r1, _080C06A0 - ldr r0, [r1] - ldr r2, _080C06A4 - adds r0, r0, r2 - adds r1, r6, #0 - strh r6, [r0] - cmp r7, #0xff - beq _080C0596 - movs r5, #0 - lsls r0, r1, #0x10 - movs r6, #0 - cmp r0, #0 - beq _080C058C - lsls r7, r7, #2 - ldr r0, _080C06A8 - adds r0, #3 - adds r0, r7, r0 - str r0, [sp, #0xc] - ldr r0, _080C06A8 - adds r0, r0, r7 - mov sb, r0 -_080C0512: - ldr r1, _080C06A0 - ldr r0, [r1] - lsls r4, r5, #2 - adds r0, r0, r4 - ldrh r0, [r0] - bl sub_0806CED0 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r1, _080C06AC - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrb r2, [r0] - adds r3, r2, #0 - mov r0, sb - ldrb r0, [r0] - cmp r2, r0 - blo _080C054C - mov r1, sb - ldrb r0, [r1] - ldr r1, _080C06A8 - adds r1, #1 - adds r1, r7, r1 - ldrb r1, [r1] - adds r0, r0, r1 - cmp r2, r0 - blt _080C0564 -_080C054C: - ldr r0, _080C06A8 - adds r0, #2 - adds r0, r7, r0 - ldrb r2, [r0] - cmp r3, r2 - blo _080C0578 - ldrb r1, [r0] - ldr r2, [sp, #0xc] - ldrb r0, [r2] - adds r1, r1, r0 - cmp r3, r1 - bge _080C0578 -_080C0564: - ldr r2, _080C06A0 - ldr r0, [r2] - lsls r1, r6, #2 - adds r1, r0, r1 - adds r0, r0, r4 - ldr r0, [r0] - str r0, [r1] - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_080C0578: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r1, _080C06A0 - ldr r0, [r1] - ldr r2, _080C06A4 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r5, r0 - blo _080C0512 -_080C058C: - ldr r1, _080C06A0 - ldr r0, [r1] - ldr r2, _080C06A4 - adds r0, r0, r2 - strh r6, [r0] -_080C0596: - ldr r0, [sp, #4] - cmp r0, #0xff - beq _080C0606 - movs r5, #0 - movs r6, #0 - ldr r1, _080C06A0 - ldr r0, [r1] - ldr r2, _080C06A4 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r6, r0 - bhs _080C05FC - adds r7, r1, #0 - ldr r0, _080C06B0 - mov r8, r0 -_080C05B4: - ldr r0, [r7] - lsls r4, r5, #2 - adds r0, r0, r4 - ldrh r0, [r0] - bl sub_0806CED0 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - add r0, r8 - ldrb r0, [r0, #0x19] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x19 - ldr r1, [sp, #4] - cmp r1, r0 - bne _080C05EA - ldr r0, [r7] - lsls r1, r6, #2 - adds r1, r0, r1 - adds r0, r0, r4 - ldr r0, [r0] - str r0, [r1] - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_080C05EA: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, [r7] - ldr r2, _080C06A4 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r5, r0 - blo _080C05B4 -_080C05FC: - ldr r1, _080C06A0 - ldr r0, [r1] - ldr r2, _080C06A4 - adds r0, r0, r2 - strh r6, [r0] -_080C0606: - ldr r0, [sp, #8] - cmp r0, #0xff - bne _080C061C - mov r1, sl - cmp r1, #0xff - bne _080C0614 - b _080C073A -_080C0614: - mov r2, sl - str r2, [sp, #8] - movs r0, #0xff - mov sl, r0 -_080C061C: - mov r1, sl - cmp r1, #0xff - bne _080C06B4 - movs r5, #0 - movs r6, #0 - ldr r2, _080C06A0 - ldr r0, [r2] - ldr r1, _080C06A4 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r6, r0 - bhs _080C0730 - adds r3, r2, #0 - mov r7, sp - mov r8, r2 -_080C063A: - ldr r0, [r3] - lsls r4, r5, #2 - adds r1, r0, r4 - ldrb r0, [r1, #2] - lsls r0, r0, #0x1e - cmp r0, #0 - bge _080C0684 - ldrh r0, [r1] - str r3, [sp, #0x10] - bl sub_0806CED0 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r1, _080C06B0 - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #6] - strb r1, [r7] - ldrb r0, [r0, #7] - strb r0, [r7, #1] - ldr r3, [sp, #0x10] - ldr r2, [sp, #8] - cmp r1, r2 - beq _080C0672 - cmp r0, r2 - bne _080C0684 -_080C0672: - ldr r0, [r3] - lsls r1, r6, #2 - adds r1, r0, r1 - adds r0, r0, r4 - ldr r0, [r0] - str r0, [r1] - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_080C0684: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - mov r1, r8 - ldr r0, [r1] - ldr r2, _080C06A4 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r5, r0 - blo _080C063A - b _080C0730 - .align 2, 0 -_080C069C: .4byte 0x00000181 -_080C06A0: .4byte gUnknown_20397EC -_080C06A4: .4byte 0x0000060C -_080C06A8: .4byte gUnknown_854410C -_080C06AC: .4byte gUnknown_82EA31C -_080C06B0: .4byte gUnknown_82F0D54 -_080C06B4: - movs r5, #0 - movs r6, #0 - ldr r1, _080C07A0 - ldr r0, [r1] - ldr r2, _080C07A4 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r6, r0 - bhs _080C0730 - mov r7, sp -_080C06C8: - ldr r0, [r1] - lsls r1, r5, #2 - adds r2, r0, r1 - ldrb r0, [r2, #2] - lsls r0, r0, #0x1e - adds r4, r1, #0 - cmp r0, #0 - bge _080C071C - ldrh r0, [r2] - bl sub_0806CED0 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r1, _080C07A8 - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #6] - strb r1, [r7] - ldrb r0, [r0, #7] - strb r0, [r7, #1] - ldr r2, [sp, #8] - cmp r1, r2 - bne _080C06FE - cmp r0, sl - beq _080C0708 -_080C06FE: - cmp r1, sl - bne _080C071C - ldr r1, [sp, #8] - cmp r0, r1 - bne _080C071C -_080C0708: - ldr r2, _080C07A0 - ldr r0, [r2] - lsls r1, r6, #2 - adds r1, r0, r1 - adds r0, r0, r4 - ldr r0, [r0] - str r0, [r1] - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_080C071C: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r1, _080C07A0 - ldr r0, [r1] - ldr r2, _080C07A4 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r5, r0 - blo _080C06C8 -_080C0730: - ldr r1, _080C07A0 - ldr r0, [r1] - ldr r2, _080C07A4 - adds r0, r0, r2 - strh r6, [r0] -_080C073A: - ldr r1, _080C07A0 - ldr r0, [r1] - ldr r2, _080C07A4 - adds r1, r0, r2 - ldrh r0, [r1] - cmp r0, #0 - beq _080C078E - adds r5, r0, #0 - ldr r0, _080C07AC - cmp r5, r0 - bhi _080C078E - ldr r4, _080C07A0 - movs r1, #2 - rsbs r1, r1, #0 - mov sl, r1 - movs r2, #3 - rsbs r2, r2, #0 - mov sb, r2 - mov r8, r0 - ldr r0, _080C07B0 - adds r7, r0, #0 -_080C0764: - ldr r1, [r4] - lsls r3, r5, #2 - adds r1, r1, r3 - ldrh r0, [r1] - orrs r0, r7 - strh r0, [r1] - ldrb r2, [r1, #2] - mov r0, sl - ands r0, r2 - strb r0, [r1, #2] - ldr r1, [r4] - adds r1, r1, r3 - ldrb r2, [r1, #2] - mov r0, sb - ands r0, r2 - strb r0, [r1, #2] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, r8 - bls _080C0764 -_080C078E: - adds r0, r6, #0 - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080C07A0: .4byte gUnknown_20397EC -_080C07A4: .4byte 0x0000060C -_080C07A8: .4byte gUnknown_82F0D54 -_080C07AC: .4byte 0x00000181 -_080C07B0: .4byte 0x0000FFFF - thumb_func_end save_write_to_flash - - thumb_func_start sub_080C07B4 -sub_080C07B4: @ 0x080C07B4 - push {lr} - ldr r0, _080C07C8 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_080C07C8: .4byte sub_080C0850 - thumb_func_end sub_080C07B4 - - thumb_func_start sub_080C07CC -sub_080C07CC: @ 0x080C07CC - push {r4, r5, lr} - sub sp, #0x18 - adds r5, r1, #0 - adds r3, r2, #0 - lsls r3, r3, #0x18 - add r1, sp, #0x14 - movs r4, #0 - strb r4, [r1] - adds r2, r1, #0 - movs r1, #0xf - strb r1, [r2, #1] - movs r1, #2 - strb r1, [r2, #2] - lsls r5, r5, #0x1b - lsrs r5, r5, #0x18 - lsrs r3, r3, #0x15 - adds r3, #2 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r4, [sp] - str r4, [sp, #4] - str r2, [sp, #8] - subs r1, #3 - str r1, [sp, #0xc] - str r0, [sp, #0x10] - movs r0, #0 - movs r1, #1 - adds r2, r5, #0 - bl AddTextPrinterParameterized4 - add sp, #0x18 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_080C07CC - - thumb_func_start sub_080C0810 -sub_080C0810: @ 0x080C0810 - push {r4, r5, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r4, r0, #3 - lsls r5, r1, #3 - subs r0, #1 - subs r2, r2, r0 - lsls r2, r2, #0x13 - lsrs r2, r2, #0x10 - str r2, [sp] - subs r1, #1 - subs r3, r3, r1 - lsls r3, r3, #0x13 - lsrs r3, r3, #0x10 - str r3, [sp, #4] - movs r0, #0 - movs r1, #0 - adds r2, r4, #0 - adds r3, r5, #0 - bl sub_08003A34 - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_080C0810 - - thumb_func_start sub_080C0850 -sub_080C0850: @ 0x080C0850 - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _080C0874 - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r1, r2 - ldrb r0, [r0] - adds r3, r1, #0 - cmp r0, #4 - bhi _080C0890 - lsls r0, r0, #2 - ldr r1, _080C0878 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C0874: .4byte gUnknown_3002360 -_080C0878: .4byte _080C087C -_080C087C: @ jump table - .4byte _080C0890 @ case 0 - .4byte _080C0984 @ case 1 - .4byte _080C09F0 @ case 2 - .4byte _080C0A10 @ case 3 - .4byte _080C0A60 @ case 4 -_080C0890: - ldr r0, _080C0938 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - beq _080C08A2 - b _080C0A86 -_080C08A2: - ldr r0, _080C093C - ldr r0, [r0] - ldr r1, _080C0940 - adds r0, r0, r1 - movs r1, #2 - strb r1, [r0] - movs r0, #0 - bl sub_080BFF08 - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _080C0944 - movs r0, #0 - movs r2, #4 - bl InitBgsFromTemplates - movs r4, #0x80 - lsls r4, r4, #4 - adds r0, r4, #0 - bl AllocZeroed - adds r1, r0, #0 - movs r0, #3 - bl SetBgTilemapBuffer - adds r0, r4, #0 - bl AllocZeroed - adds r1, r0, #0 - movs r0, #2 - bl SetBgTilemapBuffer - adds r0, r4, #0 - bl AllocZeroed - adds r1, r0, #0 - movs r0, #1 - bl SetBgTilemapBuffer - adds r0, r4, #0 - bl AllocZeroed - adds r1, r0, #0 - movs r0, #0 - bl SetBgTilemapBuffer - ldr r0, _080C0948 - bl InitWindows - bl sub_08004480 - movs r0, #0 - bl PutWindowTilemap - ldr r1, _080C094C - movs r2, #0x80 - lsls r2, r2, #6 - str r5, [sp] - movs r0, #3 - movs r3, #0 - bl DecompressAndLoadBgGfxUsingHeap - bl IsNationalPokedexEnabled - cmp r0, #0 - bne _080C0954 - ldr r1, _080C0950 - movs r0, #3 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - b _080C0960 - .align 2, 0 -_080C0938: .4byte gUnknown_2037C74 -_080C093C: .4byte gUnknown_20397EC -_080C0940: .4byte 0x0000064A -_080C0944: .4byte gUnknown_85443FC -_080C0948: .4byte gUnknown_854440C -_080C094C: .4byte gUnknown_854385C -_080C0950: .4byte gUnknown_8543F84 -_080C0954: - ldr r1, _080C0978 - movs r0, #3 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer -_080C0960: - ldr r0, _080C097C - movs r1, #1 - movs r2, #0x7e - bl LoadPalette - ldr r0, _080C0980 - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r0, r2 - movs r1, #1 - strb r1, [r0] - b _080C0A86 - .align 2, 0 -_080C0978: .4byte gUnknown_8543DE8 -_080C097C: .4byte gUnknown_85437DE -_080C0980: .4byte gUnknown_3002360 -_080C0984: - ldr r0, _080C09E4 - bl LoadCompressedSpriteSheet - ldr r0, _080C09E8 - bl LoadSpritePalettes - adds r0, r4, #0 - bl sub_080C1C38 - movs r1, #0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r2, r0, #3 - ldr r5, _080C09EC - movs r3, #0 -_080C09A2: - lsls r0, r1, #1 - adds r0, r0, r2 - adds r0, r0, r5 - strh r3, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0xf - bls _080C09A2 - adds r0, r4, #0 - bl sub_080C1A5C - movs r0, #0 - bl sub_080C1684 - adds r0, r4, #0 - bl Cb_JumpBox - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - movs r0, #1 - bl CopyBgTilemapBufferToVram - movs r0, #2 - bl CopyBgTilemapBufferToVram - movs r0, #3 - bl CopyBgTilemapBufferToVram - b _080C0A4A - .align 2, 0 -_080C09E4: .4byte gUnknown_8539BBC -_080C09E8: .4byte gUnknown_8539BCC -_080C09EC: .4byte gUnknown_3005B68 -_080C09F0: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r1, _080C0A0C - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _080C0A52 - .align 2, 0 -_080C0A0C: .4byte gUnknown_3002360 -_080C0A10: - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl HideBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg -_080C0A4A: - ldr r1, _080C0A5C - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 -_080C0A52: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080C0A86 - .align 2, 0 -_080C0A5C: .4byte gUnknown_3002360 -_080C0A60: - ldr r0, _080C0A90 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _080C0A86 - ldr r1, _080C0A94 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080C0A98 - str r1, [r0] - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r3, r1 - strb r2, [r0] -_080C0A86: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080C0A90: .4byte gUnknown_2037C74 -_080C0A94: .4byte gUnknown_3005B60 -_080C0A98: .4byte sub_080C0AE0 - thumb_func_end sub_080C0850 - - thumb_func_start sub_080C0A9C -sub_080C0A9C: @ 0x080C0A9C - push {lr} - bl FreeAllWindowBuffers - movs r0, #0 - bl GetBgTilemapBuffer - cmp r0, #0 - beq _080C0AB0 - bl Free -_080C0AB0: - movs r0, #1 - bl GetBgTilemapBuffer - cmp r0, #0 - beq _080C0ABE - bl Free -_080C0ABE: - movs r0, #2 - bl GetBgTilemapBuffer - cmp r0, #0 - beq _080C0ACC - bl Free -_080C0ACC: - movs r0, #3 - bl GetBgTilemapBuffer - cmp r0, #0 - beq _080C0ADA - bl Free -_080C0ADA: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080C0A9C - - thumb_func_start sub_080C0AE0 -sub_080C0AE0: @ 0x080C0AE0 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _080C0B18 - lsls r5, r4, #2 - adds r5, r5, r4 - lsls r5, r5, #3 - adds r5, r5, r0 - ldrb r0, [r5, #8] - bl sub_080C1684 - adds r0, r4, #0 - bl Cb_JumpBox - movs r0, #0 - movs r1, #2 - bl CopyWindowToVram - movs r0, #3 - bl CopyBgTilemapBufferToVram - ldr r0, _080C0B1C - str r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080C0B18: .4byte gUnknown_3005B60 -_080C0B1C: .4byte sub_080C0B20 - thumb_func_end sub_080C0AE0 - - thumb_func_start sub_080C0B20 -sub_080C0B20: @ 0x080C0B20 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _080C0B48 - ldrh r1, [r0, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080C0B54 - movs r0, #3 - bl sub_080A306C - ldr r0, _080C0B4C - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080C0B50 - str r0, [r1] - b _080C0C2C - .align 2, 0 -_080C0B48: .4byte gUnknown_3002360 -_080C0B4C: .4byte gUnknown_3005B60 -_080C0B50: .4byte sub_080C137C -_080C0B54: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080C0BB0 - ldr r1, _080C0B78 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r5, r0, r1 - movs r0, #8 - ldrsh r4, [r5, r0] - cmp r4, #1 - beq _080C0B8C - cmp r4, #1 - bgt _080C0B7C - cmp r4, #0 - beq _080C0B82 - b _080C0C2C - .align 2, 0 -_080C0B78: .4byte gUnknown_3005B60 -_080C0B7C: - cmp r4, #2 - beq _080C0BA0 - b _080C0C2C -_080C0B82: - movs r0, #0x15 - bl sub_080A306C - strh r4, [r5, #0xa] - b _080C0B96 -_080C0B8C: - movs r0, #0x15 - bl sub_080A306C - movs r0, #4 - strh r0, [r5, #0xa] -_080C0B96: - ldr r0, _080C0B9C - str r0, [r5] - b _080C0C2C - .align 2, 0 -_080C0B9C: .4byte sub_080C0C3C -_080C0BA0: - movs r0, #3 - bl sub_080A306C - ldr r0, _080C0BAC - str r0, [r5] - b _080C0C2C - .align 2, 0 -_080C0BAC: .4byte sub_080C137C -_080C0BB0: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080C0BEC - ldr r0, _080C0C34 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r4, r1, r0 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - ble _080C0BEC - movs r0, #0x6d - bl sub_080A306C - ldrh r0, [r4, #8] - subs r0, #1 - strh r0, [r4, #8] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_080C1684 - movs r0, #0 - movs r1, #2 - bl CopyWindowToVram - movs r0, #3 - bl CopyBgTilemapBufferToVram -_080C0BEC: - ldr r0, _080C0C38 - ldrh r1, [r0, #0x2e] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080C0C2C - ldr r0, _080C0C34 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r4, r1, r0 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #1 - bgt _080C0C2C - movs r0, #0x6d - bl sub_080A306C - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_080C1684 - movs r0, #0 - movs r1, #2 - bl CopyWindowToVram - movs r0, #3 - bl CopyBgTilemapBufferToVram -_080C0C2C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080C0C34: .4byte gUnknown_3005B60 -_080C0C38: .4byte gUnknown_3002360 - thumb_func_end sub_080C0B20 - - thumb_func_start sub_080C0C3C -sub_080C0C3C: @ 0x080C0C3C - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _080C0C74 - lsls r5, r4, #2 - adds r5, r5, r4 - lsls r5, r5, #3 - adds r5, r5, r0 - ldrb r0, [r5, #8] - ldrb r1, [r5, #0xa] - bl sub_080C16B8 - adds r0, r4, #0 - bl Cb_JumpBox - movs r0, #0 - movs r1, #2 - bl CopyWindowToVram - movs r0, #3 - bl CopyBgTilemapBufferToVram - ldr r0, _080C0C78 - str r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080C0C74: .4byte gUnknown_3005B60 -_080C0C78: .4byte sub_080C0C7C - thumb_func_end sub_080C0C3C - - thumb_func_start sub_080C0C7C -sub_080C0C7C: @ 0x080C0C7C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _080C0CA4 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #8 - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _080C0CB0 - bl IsNationalPokedexEnabled - ldr r6, _080C0CA8 - cmp r0, #0 - bne _080C0CBC - ldr r6, _080C0CAC - b _080C0CBC - .align 2, 0 -_080C0CA4: .4byte gUnknown_3005B60 -_080C0CA8: .4byte gUnknown_85441BC -_080C0CAC: .4byte gUnknown_85441F4 -_080C0CB0: - bl IsNationalPokedexEnabled - ldr r6, _080C0CE8 - cmp r0, #0 - bne _080C0CBC - ldr r6, _080C0CEC -_080C0CBC: - ldr r0, _080C0CF0 - ldrh r1, [r0, #0x2e] - movs r0, #2 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #0 - beq _080C0CFC - movs r0, #0x17 - bl sub_080A306C - adds r0, r5, #0 - bl sub_080C1A5C - ldr r0, _080C0CF4 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080C0CF8 - str r0, [r1] - b _080C0F14 - .align 2, 0 -_080C0CE8: .4byte gUnknown_85441A0 -_080C0CEC: .4byte gUnknown_85441D8 -_080C0CF0: .4byte gUnknown_3002360 -_080C0CF4: .4byte gUnknown_3005B60 -_080C0CF8: .4byte sub_080C0AE0 -_080C0CFC: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080C0DF0 - ldr r0, _080C0D8C - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r6, r1, r0 - movs r2, #0xa - ldrsh r0, [r6, r2] - cmp r0, #6 - bne _080C0DE0 - movs r1, #8 - ldrsh r0, [r6, r1] - cmp r0, #0 - beq _080C0DAC - ldr r1, _080C0D90 - movs r0, #0x40 - strb r0, [r1] - ldr r7, _080C0D94 - ldr r1, [r7] - ldr r0, _080C0D98 - adds r2, r1, r0 - movs r0, #0x40 - strh r0, [r2] - ldr r0, _080C0D9C - strh r3, [r0] - movs r2, #0xc2 - lsls r2, r2, #3 - adds r1, r1, r2 - strh r3, [r1] - adds r0, r5, #0 - movs r1, #5 - bl sub_080C19BC - ldr r4, _080C0DA0 - ldr r1, [r4] - strb r0, [r1, #0x19] - bl IsNationalPokedexEnabled - cmp r0, #0 - bne _080C0D58 - ldr r1, [r4] - movs r0, #0 - strb r0, [r1, #0x19] -_080C0D58: - ldr r0, [r7] - ldr r1, [r4] - ldrb r1, [r1, #0x19] - ldr r2, _080C0DA4 - adds r0, r0, r2 - strh r1, [r0] - adds r0, r5, #0 - movs r1, #4 - bl sub_080C19BC - ldr r1, [r4] - strb r0, [r1, #0x18] - ldr r0, [r7] - ldr r1, [r4] - ldrb r1, [r1, #0x18] - movs r2, #0xc3 - lsls r2, r2, #3 - adds r0, r0, r2 - strh r1, [r0] - movs r0, #3 - bl sub_080A306C - ldr r0, _080C0DA8 - str r0, [r6] - b _080C0F14 - .align 2, 0 -_080C0D8C: .4byte gUnknown_3005B60 -_080C0D90: .4byte gUnknown_20397F2 -_080C0D94: .4byte gUnknown_20397EC -_080C0D98: .4byte 0x0000062A -_080C0D9C: .4byte gUnknown_20397F0 -_080C0DA0: .4byte gUnknown_3005AF0 -_080C0DA4: .4byte 0x00000614 -_080C0DA8: .4byte sub_080C137C -_080C0DAC: - movs r0, #0 - movs r1, #0xe - movs r2, #0x1d - movs r3, #0x13 - bl sub_080C0810 - ldr r0, _080C0DD8 - movs r1, #2 - movs r2, #0xf - bl sub_080C07CC - ldr r0, _080C0DDC - str r0, [r6] - movs r0, #0x70 - bl sub_080A306C - movs r0, #0 - movs r1, #2 - bl CopyWindowToVram - b _080C0F14 - .align 2, 0 -_080C0DD8: .4byte gUnknown_85C8FFC -_080C0DDC: .4byte sub_080C0F24 -_080C0DE0: - movs r0, #0x15 - bl sub_080A306C - ldr r0, _080C0DEC - str r0, [r6] - b _080C0F14 - .align 2, 0 -_080C0DEC: .4byte sub_080C1104 -_080C0DF0: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080C0E36 - ldr r1, _080C0F1C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #0xa - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r0, [r0] - cmp r0, #0xff - beq _080C0E36 - movs r0, #5 - bl sub_080A306C - movs r2, #0xa - ldrsh r0, [r4, r2] - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r1, [r0] - strh r1, [r4, #0xa] - ldrb r0, [r4, #8] - bl sub_080C16B8 - movs r0, #0 - movs r1, #2 - bl CopyWindowToVram - movs r0, #3 - bl CopyBgTilemapBufferToVram -_080C0E36: - ldr r0, _080C0F20 - ldrh r1, [r0, #0x2e] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080C0E80 - ldr r1, _080C0F1C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #0xa - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r0, [r0, #1] - cmp r0, #0xff - beq _080C0E80 - movs r0, #5 - bl sub_080A306C - movs r2, #0xa - ldrsh r0, [r4, r2] - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r1, [r0, #1] - strh r1, [r4, #0xa] - ldrb r0, [r4, #8] - bl sub_080C16B8 - movs r0, #0 - movs r1, #2 - bl CopyWindowToVram - movs r0, #3 - bl CopyBgTilemapBufferToVram -_080C0E80: - ldr r0, _080C0F20 - ldrh r1, [r0, #0x2e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080C0ECA - ldr r1, _080C0F1C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #0xa - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r0, [r0, #2] - cmp r0, #0xff - beq _080C0ECA - movs r0, #5 - bl sub_080A306C - movs r2, #0xa - ldrsh r0, [r4, r2] - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r1, [r0, #2] - strh r1, [r4, #0xa] - ldrb r0, [r4, #8] - bl sub_080C16B8 - movs r0, #0 - movs r1, #2 - bl CopyWindowToVram - movs r0, #3 - bl CopyBgTilemapBufferToVram -_080C0ECA: - ldr r0, _080C0F20 - ldrh r1, [r0, #0x2e] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080C0F14 - ldr r1, _080C0F1C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #0xa - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r0, [r0, #3] - cmp r0, #0xff - beq _080C0F14 - movs r0, #5 - bl sub_080A306C - movs r2, #0xa - ldrsh r0, [r4, r2] - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r1, [r0, #3] - strh r1, [r4, #0xa] - ldrb r0, [r4, #8] - bl sub_080C16B8 - movs r0, #0 - movs r1, #2 - bl CopyWindowToVram - movs r0, #3 - bl CopyBgTilemapBufferToVram -_080C0F14: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080C0F1C: .4byte gUnknown_3005B60 -_080C0F20: .4byte gUnknown_3002360 - thumb_func_end sub_080C0C7C - - thumb_func_start sub_080C0F24 -sub_080C0F24: @ 0x080C0F24 - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - sub sp, #8 - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - adds r0, r5, #0 - movs r1, #5 - bl sub_080C19BC - mov sl, r0 - mov r0, sl - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - adds r0, r5, #0 - movs r1, #4 - bl sub_080C19BC - mov sb, r0 - mov r0, sb - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - adds r0, r5, #0 - movs r1, #0 - bl sub_080C19BC - mov r8, r0 - mov r0, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - adds r0, r5, #0 - movs r1, #1 - bl sub_080C19BC - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - adds r0, r5, #0 - movs r1, #2 - bl sub_080C19BC - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - movs r1, #3 - bl sub_080C19BC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r4, [sp] - str r0, [sp, #4] - mov r0, sl - mov r1, sb - mov r2, r8 - adds r3, r6, #0 - bl save_write_to_flash - ldr r1, _080C0FC4 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080C0FC8 - str r1, [r0] - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080C0FC4: .4byte gUnknown_3005B60 -_080C0FC8: .4byte sub_080C0FCC - thumb_func_end sub_080C0F24 - - thumb_func_start sub_080C0FCC -sub_080C0FCC: @ 0x080C0FCC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl IsSEPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C1046 - ldr r0, _080C1008 - ldr r0, [r0] - ldr r1, _080C100C - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0 - beq _080C1014 - movs r0, #0x1f - bl sub_080A306C - movs r0, #0 - movs r1, #0xe - movs r2, #0x1d - movs r3, #0x13 - bl sub_080C0810 - ldr r0, _080C1010 - movs r1, #2 - movs r2, #0xf - bl sub_080C07CC - b _080C1030 - .align 2, 0 -_080C1008: .4byte gUnknown_20397EC -_080C100C: .4byte 0x0000060C -_080C1010: .4byte gUnknown_85C900A -_080C1014: - movs r0, #0x20 - bl sub_080A306C - movs r0, #0 - movs r1, #0xe - movs r2, #0x1d - movs r3, #0x13 - bl sub_080C0810 - ldr r0, _080C104C - movs r1, #2 - movs r2, #0xf - bl sub_080C07CC -_080C1030: - ldr r0, _080C1050 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080C1054 - str r0, [r1] - movs r0, #0 - movs r1, #2 - bl CopyWindowToVram -_080C1046: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C104C: .4byte gUnknown_85C901D -_080C1050: .4byte gUnknown_3005B60 -_080C1054: .4byte sub_080C1058 - thumb_func_end sub_080C0FCC - - thumb_func_start sub_080C1058 -sub_080C1058: @ 0x080C1058 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r2, r4, #0 - ldr r0, _080C10C0 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080C10F4 - ldr r5, _080C10C4 - ldr r1, [r5] - ldr r3, _080C10C8 - adds r0, r1, r3 - ldrh r0, [r0] - cmp r0, #0 - beq _080C10E0 - ldr r0, _080C10CC - adds r1, r1, r0 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #5 - bl sub_080C19BC - ldr r1, [r5] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080C10D0 - adds r1, r1, r2 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #4 - bl sub_080C19BC - ldr r1, [r5] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _080C10D4 - adds r1, r1, r3 - strh r0, [r1] - ldr r1, _080C10D8 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080C10DC - str r1, [r0] - movs r0, #3 - bl sub_080A306C - b _080C10F4 - .align 2, 0 -_080C10C0: .4byte gUnknown_3002360 -_080C10C4: .4byte gUnknown_20397EC -_080C10C8: .4byte 0x0000060C -_080C10CC: .4byte 0x0000064E -_080C10D0: .4byte 0x00000612 -_080C10D4: .4byte 0x00000616 -_080C10D8: .4byte gUnknown_3005B60 -_080C10DC: .4byte sub_080C137C -_080C10E0: - ldr r0, _080C10FC - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080C1100 - str r0, [r1] - movs r0, #0x17 - bl sub_080A306C -_080C10F4: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080C10FC: .4byte gUnknown_3005B60 -_080C1100: .4byte sub_080C0C3C - thumb_func_end sub_080C1058 - - thumb_func_start sub_080C1104 -sub_080C1104: @ 0x080C1104 - push {r4, r5, r6, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - movs r0, #0 - bl sub_080C1838 - ldr r2, _080C116C - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r6, r1, r2 - ldrb r0, [r6, #0xa] - adds r2, #8 - adds r1, r1, r2 - ldr r2, _080C1170 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrb r4, [r0, #4] - lsls r4, r4, #1 - adds r4, r1, r4 - ldrb r0, [r0, #5] - lsls r0, r0, #1 - adds r1, r1, r0 - ldrh r0, [r4] - strh r0, [r6, #0x24] - ldrh r0, [r1] - strh r0, [r6, #0x26] - adds r0, r5, #0 - bl sub_080C1918 - ldr r0, _080C1174 - ldrh r2, [r4] - lsls r2, r2, #1 - adds r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r1, #0x12 - bl sub_080C07CC - ldr r0, _080C1178 - str r0, [r6] - movs r0, #0 - movs r1, #2 - bl CopyWindowToVram - movs r0, #3 - bl CopyBgTilemapBufferToVram - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080C116C: .4byte gUnknown_3005B60 -_080C1170: .4byte gUnknown_85443CC -_080C1174: .4byte gUnknown_85C9299 -_080C1178: .4byte sub_080C117C - thumb_func_end sub_080C1104 - - thumb_func_start sub_080C117C -sub_080C117C: @ 0x080C117C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r3, _080C11DC - lsls r2, r7, #2 - adds r2, r2, r7 - lsls r2, r2, #3 - adds r5, r2, r3 - ldrb r1, [r5, #0xa] - ldr r0, _080C11E0 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, [r1] - mov r8, r0 - adds r3, #8 - adds r2, r2, r3 - ldrb r0, [r1, #4] - lsls r0, r0, #1 - adds r4, r2, r0 - ldrb r0, [r1, #5] - lsls r0, r0, #1 - adds r6, r2, r0 - ldrh r0, [r1, #6] - subs r0, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, _080C11E4 - mov ip, r0 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080C11E8 - movs r0, #0x15 - bl sub_080A306C - movs r0, #0x12 - movs r1, #1 - movs r2, #0x1c - movs r3, #0xc - bl sub_080C0810 - movs r0, #1 - bl sub_080C1838 - b _080C1210 - .align 2, 0 -_080C11DC: .4byte gUnknown_3005B60 -_080C11E0: .4byte gUnknown_85443CC -_080C11E4: .4byte gUnknown_3002360 -_080C11E8: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080C1228 - movs r0, #0x17 - bl sub_080A306C - movs r0, #0x12 - movs r1, #1 - movs r2, #0x1c - movs r3, #0xc - bl sub_080C0810 - movs r0, #1 - bl sub_080C1838 - ldrh r0, [r5, #0x24] - strh r0, [r4] - ldrh r0, [r5, #0x26] - strh r0, [r6] -_080C1210: - ldr r0, _080C1224 - str r0, [r5] - movs r0, #0 - movs r1, #2 - bl CopyWindowToVram - movs r0, #3 - bl CopyBgTilemapBufferToVram - b _080C136C - .align 2, 0 -_080C1224: .4byte sub_080C0C3C -_080C1228: - movs r3, #0 - mov r0, ip - ldrh r1, [r0, #0x30] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080C12D0 - ldrh r0, [r4] - cmp r0, #0 - beq _080C1274 - adds r3, r0, #0 - lsls r3, r3, #1 - adds r1, r3, #1 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r3, #2 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #0x12 - movs r2, #0x12 - bl sub_080C0810 - ldrh r0, [r4] - subs r0, #1 - strh r0, [r4] - ldr r0, _080C1270 - ldrh r2, [r4] - lsls r2, r2, #1 - adds r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r1, #0x12 - bl sub_080C07CC - b _080C129C - .align 2, 0 -_080C1270: .4byte gUnknown_85C9299 -_080C1274: - ldrh r0, [r6] - cmp r0, #0 - beq _080C1298 - subs r0, #1 - strh r0, [r6] - adds r0, r7, #0 - bl sub_080C1918 - ldr r0, _080C12CC - ldrh r2, [r4] - lsls r2, r2, #1 - adds r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r1, #0x12 - bl sub_080C07CC - movs r3, #1 -_080C1298: - cmp r3, #0 - beq _080C136C -_080C129C: - movs r0, #5 - bl sub_080A306C - movs r0, #0 - movs r1, #0xe - movs r2, #0x1d - movs r3, #0x13 - bl sub_080C0810 - ldrh r0, [r4] - ldrh r1, [r6] - adds r0, r0, r1 - lsls r0, r0, #3 - add r0, r8 - ldr r0, [r0] - movs r1, #2 - movs r2, #0xf - bl sub_080C07CC - movs r0, #0 - movs r1, #2 - bl CopyWindowToVram - b _080C136C - .align 2, 0 -_080C12CC: .4byte gUnknown_85C9299 -_080C12D0: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080C136C - ldrh r0, [r4] - cmp r0, #4 - bhi _080C1318 - cmp r0, r2 - bhs _080C1318 - adds r3, r0, #0 - lsls r3, r3, #1 - adds r1, r3, #1 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r3, #2 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #0x12 - movs r2, #0x12 - bl sub_080C0810 - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - ldr r0, _080C1314 - ldrh r2, [r4] - lsls r2, r2, #1 - adds r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r1, #0x12 - bl sub_080C07CC - b _080C133E - .align 2, 0 -_080C1314: .4byte gUnknown_85C9299 -_080C1318: - cmp r2, #5 - bls _080C133A - ldrh r1, [r6] - subs r0, r2, #5 - cmp r1, r0 - bge _080C133A - adds r0, r1, #1 - strh r0, [r6] - adds r0, r7, #0 - bl sub_080C1918 - ldr r0, _080C1378 - movs r1, #0x12 - movs r2, #0xb - bl sub_080C07CC - movs r3, #1 -_080C133A: - cmp r3, #0 - beq _080C136C -_080C133E: - movs r0, #5 - bl sub_080A306C - movs r0, #0 - movs r1, #0xe - movs r2, #0x1d - movs r3, #0x13 - bl sub_080C0810 - ldrh r0, [r4] - ldrh r1, [r6] - adds r0, r0, r1 - lsls r0, r0, #3 - add r0, r8 - ldr r0, [r0] - movs r1, #2 - movs r2, #0xf - bl sub_080C07CC - movs r0, #0 - movs r1, #2 - bl CopyWindowToVram -_080C136C: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080C1378: .4byte gUnknown_85C9299 - thumb_func_end sub_080C117C - - thumb_func_start sub_080C137C -sub_080C137C: @ 0x080C137C - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _080C13AC - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080C13B0 - str r1, [r0] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C13AC: .4byte gUnknown_3005B60 -_080C13B0: .4byte sub_080C13B4 - thumb_func_end sub_080C137C - - thumb_func_start sub_080C13B4 -sub_080C13B4: @ 0x080C13B4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080C13D8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080C13D0 - bl sub_080C0A9C - adds r0, r4, #0 - bl DestroyTask -_080C13D0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C13D8: .4byte gUnknown_2037C74 - thumb_func_end sub_080C13B4 - - thumb_func_start sub_080C13DC -sub_080C13DC: @ 0x080C13DC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r3, #0 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #3 - bl GetBgTilemapBuffer - adds r2, r0, #0 - movs r3, #0 - cmp r3, r4 - bhs _080C1430 - lsls r0, r5, #6 - adds r7, r0, r2 - ldr r5, _080C143C - lsls r2, r6, #0xc -_080C140C: - mov r0, r8 - adds r1, r0, r3 - lsls r1, r1, #1 - adds r1, r1, r7 - ldrh r0, [r1] - ands r0, r5 - orrs r0, r2 - strh r0, [r1] - adds r1, #0x40 - ldrh r0, [r1] - ands r0, r5 - orrs r0, r2 - strh r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, r4 - blo _080C140C -_080C1430: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080C143C: .4byte 0x00000FFF - thumb_func_end sub_080C13DC - - thumb_func_start sub_080C1440 -sub_080C1440: @ 0x080C1440 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r0, #1 - ands r5, r0 - ands r2, r0 - lsls r2, r2, #1 - orrs r5, r2 - cmp r4, #0xa - bhi _080C152C - lsls r0, r4, #2 - ldr r1, _080C1468 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C1468: .4byte _080C146C -_080C146C: @ jump table - .4byte _080C1498 @ case 0 - .4byte _080C1498 @ case 1 - .4byte _080C1498 @ case 2 - .4byte _080C14A8 @ case 3 - .4byte _080C14A8 @ case 4 - .4byte _080C14C0 @ case 5 - .4byte _080C14C0 @ case 6 - .4byte _080C14A8 @ case 7 - .4byte _080C14A8 @ case 8 - .4byte _080C14E8 @ case 9 - .4byte _080C14D8 @ case 10 -_080C1498: - ldr r1, _080C14A4 - lsls r0, r4, #3 - adds r0, r0, r1 - ldrb r1, [r0, #4] - ldrb r2, [r0, #5] - b _080C1506 - .align 2, 0 -_080C14A4: .4byte gUnknown_8544134 -_080C14A8: - ldr r2, _080C14D4 - subs r1, r4, #3 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #4] - ldrb r2, [r0, #5] - ldrb r3, [r0, #6] - adds r0, r5, #0 - bl sub_080C13DC -_080C14C0: - ldr r2, _080C14D4 - subs r1, r4, #3 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #7] - ldrb r2, [r0, #8] - ldrb r3, [r0, #9] - b _080C1508 - .align 2, 0 -_080C14D4: .4byte gUnknown_854414C -_080C14D8: - ldr r0, _080C14E4 - ldrb r1, [r0, #0x1c] - ldrb r2, [r0, #0x1d] - ldrb r3, [r0, #0x1e] - b _080C1508 - .align 2, 0 -_080C14E4: .4byte gUnknown_854414C -_080C14E8: - bl IsNationalPokedexEnabled - cmp r0, #0 - bne _080C1514 - ldr r2, _080C1510 - subs r1, r4, #3 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #4] - ldrb r2, [r0, #5] - subs r2, #2 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 -_080C1506: - ldrb r3, [r0, #6] -_080C1508: - adds r0, r5, #0 - bl sub_080C13DC - b _080C152C - .align 2, 0 -_080C1510: .4byte gUnknown_854414C -_080C1514: - ldr r2, _080C1534 - subs r1, r4, #3 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #4] - ldrb r2, [r0, #5] - ldrb r3, [r0, #6] - adds r0, r5, #0 - bl sub_080C13DC -_080C152C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080C1534: .4byte gUnknown_854414C - thumb_func_end sub_080C1440 - - thumb_func_start sub_080C1538 -sub_080C1538: @ 0x080C1538 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - cmp r0, #1 - beq _080C15A2 - cmp r0, #1 - bgt _080C154E - cmp r0, #0 - beq _080C1554 - b _080C1680 -_080C154E: - cmp r1, #2 - beq _080C1612 - b _080C1680 -_080C1554: - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl sub_080C1440 - movs r0, #1 - movs r1, #1 - movs r2, #0 - bl sub_080C1440 - movs r0, #2 - movs r1, #1 - movs r2, #0 - bl sub_080C1440 - movs r0, #3 - movs r1, #1 - movs r2, #0 - bl sub_080C1440 - movs r0, #4 - movs r1, #1 - movs r2, #0 - bl sub_080C1440 - movs r0, #0xa - movs r1, #1 - movs r2, #0 - bl sub_080C1440 - movs r0, #5 - movs r1, #1 - movs r2, #0 - bl sub_080C1440 - movs r0, #6 - movs r1, #1 - movs r2, #0 - b _080C15EE -_080C15A2: - movs r0, #0 - movs r1, #1 - movs r2, #0 - bl sub_080C1440 - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl sub_080C1440 - movs r0, #2 - movs r1, #1 - movs r2, #0 - bl sub_080C1440 - movs r0, #3 - movs r1, #1 - movs r2, #1 - bl sub_080C1440 - movs r0, #4 - movs r1, #1 - movs r2, #1 - bl sub_080C1440 - movs r0, #0xa - movs r1, #1 - movs r2, #1 - bl sub_080C1440 - movs r0, #5 - movs r1, #1 - movs r2, #1 - bl sub_080C1440 - movs r0, #6 - movs r1, #1 - movs r2, #1 -_080C15EE: - bl sub_080C1440 - movs r0, #7 - movs r1, #1 - movs r2, #0 - bl sub_080C1440 - movs r0, #8 - movs r1, #1 - movs r2, #0 - bl sub_080C1440 - movs r0, #9 - movs r1, #1 - movs r2, #0 - bl sub_080C1440 - b _080C1680 -_080C1612: - movs r0, #0 - movs r1, #1 - movs r2, #0 - bl sub_080C1440 - movs r0, #1 - movs r1, #1 - movs r2, #0 - bl sub_080C1440 - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl sub_080C1440 - movs r0, #3 - movs r1, #1 - movs r2, #1 - bl sub_080C1440 - movs r0, #4 - movs r1, #1 - movs r2, #1 - bl sub_080C1440 - movs r0, #0xa - movs r1, #1 - movs r2, #1 - bl sub_080C1440 - movs r0, #5 - movs r1, #1 - movs r2, #1 - bl sub_080C1440 - movs r0, #6 - movs r1, #1 - movs r2, #1 - bl sub_080C1440 - movs r0, #7 - movs r1, #1 - movs r2, #1 - bl sub_080C1440 - movs r0, #8 - movs r1, #1 - movs r2, #1 - bl sub_080C1440 - movs r0, #9 - movs r1, #1 - movs r2, #1 - bl sub_080C1440 -_080C1680: - pop {r0} - bx r0 - thumb_func_end sub_080C1538 - - thumb_func_start sub_080C1684 -sub_080C1684: @ 0x080C1684 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl sub_080C1538 - movs r0, #0 - movs r1, #0xe - movs r2, #0x1d - movs r3, #0x13 - bl sub_080C0810 - ldr r0, _080C16B4 - lsls r4, r4, #3 - adds r4, r4, r0 - ldr r0, [r4] - movs r1, #2 - movs r2, #0xf - bl sub_080C07CC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C16B4: .4byte gUnknown_8544134 - thumb_func_end sub_080C1684 - - thumb_func_start sub_080C16B8 -sub_080C16B8: @ 0x080C16B8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - bl sub_080C1538 - cmp r4, #6 - bhi _080C1732 - lsls r0, r4, #2 - ldr r1, _080C16D4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C16D4: .4byte _080C16D8 -_080C16D8: @ jump table - .4byte _080C16F4 @ case 0 - .4byte _080C16F8 @ case 1 - .4byte _080C16FC @ case 2 - .4byte _080C170A @ case 3 - .4byte _080C1718 @ case 4 - .4byte _080C171C @ case 5 - .4byte _080C1728 @ case 6 -_080C16F4: - movs r0, #3 - b _080C171E -_080C16F8: - movs r0, #4 - b _080C171E -_080C16FC: - movs r0, #0xa - movs r1, #0 - movs r2, #0 - bl sub_080C1440 - movs r0, #5 - b _080C171E -_080C170A: - movs r0, #0xa - movs r1, #0 - movs r2, #0 - bl sub_080C1440 - movs r0, #6 - b _080C171E -_080C1718: - movs r0, #7 - b _080C171E -_080C171C: - movs r0, #8 -_080C171E: - movs r1, #0 - movs r2, #0 - bl sub_080C1440 - b _080C1732 -_080C1728: - movs r0, #9 - movs r1, #0 - movs r2, #0 - bl sub_080C1440 -_080C1732: - movs r0, #0 - movs r1, #0xe - movs r2, #0x1d - movs r3, #0x13 - bl sub_080C0810 - ldr r0, _080C1758 - lsls r1, r4, #1 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - movs r1, #2 - movs r2, #0xf - bl sub_080C07CC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C1758: .4byte gUnknown_854414C - thumb_func_end sub_080C16B8 - - thumb_func_start Cb_JumpBox -Cb_JumpBox: @ 0x080C175C - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #6 - movs r1, #2 - movs r2, #0xf - movs r3, #0xb - bl sub_080C0810 - ldr r1, _080C1820 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r5, r0, r1 - ldrh r0, [r5, #0x16] - ldrh r1, [r5, #0x14] - adds r0, r0, r1 - lsls r0, r0, #0x10 - ldr r1, _080C1824 - lsrs r0, r0, #0xd - adds r1, #4 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #6 - movs r2, #2 - bl sub_080C07CC - ldrh r0, [r5, #0x1a] - ldrh r1, [r5, #0x18] - adds r0, r0, r1 - lsls r0, r0, #0x10 - ldr r1, _080C1828 - lsrs r0, r0, #0xd - adds r1, #4 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #6 - movs r2, #4 - bl sub_080C07CC - ldrh r0, [r5, #0x1e] - ldrh r1, [r5, #0x1c] - adds r0, r0, r1 - lsls r0, r0, #0x10 - ldr r4, _080C182C - lsrs r0, r0, #0xd - adds r4, #4 - adds r0, r0, r4 - ldr r0, [r0] - movs r1, #6 - movs r2, #6 - bl sub_080C07CC - ldrh r0, [r5, #0x22] - ldrh r1, [r5, #0x20] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0xd - adds r0, r0, r4 - ldr r0, [r0] - movs r1, #0xc - movs r2, #6 - bl sub_080C07CC - ldrh r0, [r5, #0x12] - ldrh r1, [r5, #0x10] - adds r0, r0, r1 - lsls r0, r0, #0x10 - ldr r1, _080C1830 - lsrs r0, r0, #0xd - adds r1, #4 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #6 - movs r2, #8 - bl sub_080C07CC - bl IsNationalPokedexEnabled - cmp r0, #0 - beq _080C181A - ldrh r0, [r5, #0xe] - ldrh r5, [r5, #0xc] - adds r0, r0, r5 - lsls r0, r0, #0x10 - ldr r1, _080C1834 - lsrs r0, r0, #0xd - adds r1, #4 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #6 - movs r2, #0xa - bl sub_080C07CC -_080C181A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080C1820: .4byte gUnknown_3005B60 -_080C1824: .4byte gUnknown_8544260 -_080C1828: .4byte gUnknown_85442B8 -_080C182C: .4byte gUnknown_8544318 -_080C1830: .4byte gUnknown_8544228 -_080C1834: .4byte gUnknown_8544210 - thumb_func_end Cb_JumpBox - - thumb_func_start sub_080C1838 -sub_080C1838: @ 0x080C1838 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #3 - bl GetBgTilemapBuffer - adds r5, r0, #0 - cmp r4, #0 - bne _080C18EC - ldr r1, _080C18D0 - adds r0, r1, #0 - strh r0, [r5, #0x22] - movs r2, #0x12 - ldr r0, _080C18D4 - adds r1, r0, #0 -_080C1858: - lsls r0, r2, #1 - adds r0, r0, r5 - strh r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0x1c - bls _080C1858 - ldr r1, _080C18D8 - adds r0, r1, #0 - strh r0, [r5, #0x3a] - movs r3, #1 - movs r6, #2 - ldr r2, _080C18DC - adds r7, r2, #0 -_080C1876: - lsls r0, r3, #6 - adds r1, r0, r5 - strh r7, [r1, #0x22] - movs r2, #0x12 - adds r4, r0, #0 - adds r3, #1 -_080C1882: - lsls r0, r2, #1 - adds r0, r0, r1 - strh r6, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0x1c - bls _080C1882 - adds r0, r4, r5 - movs r1, #0xa - strh r1, [r0, #0x3a] - lsls r0, r3, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #0xc - bls _080C1876 - ldr r0, _080C18E0 - adds r1, r5, r0 - ldr r2, _080C18E4 - adds r0, r2, #0 - strh r0, [r1] - movs r2, #0x12 - movs r3, #0xd0 - lsls r3, r3, #2 - movs r1, #0xd -_080C18B2: - lsls r0, r2, #1 - adds r0, r0, r5 - adds r0, r0, r3 - strh r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0x1c - bls _080C18B2 - ldr r0, _080C18E8 - adds r1, r5, r0 - movs r0, #0xb - strh r0, [r1] - b _080C1910 - .align 2, 0 -_080C18D0: .4byte 0x00000C0B -_080C18D4: .4byte 0x0000080D -_080C18D8: .4byte 0x0000080B -_080C18DC: .4byte 0x0000040A -_080C18E0: .4byte 0x00000362 -_080C18E4: .4byte 0x0000040B -_080C18E8: .4byte 0x0000037A -_080C18EC: - movs r3, #0 - movs r6, #0x4f -_080C18F0: - movs r2, #0x11 - lsls r4, r3, #6 - adds r3, #1 - adds r1, r4, r5 -_080C18F8: - lsls r0, r2, #1 - adds r0, r0, r1 - strh r6, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0x1d - bls _080C18F8 - lsls r0, r3, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #0xd - bls _080C18F0 -_080C1910: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080C1838 - - thumb_func_start sub_080C1918 -sub_080C1918: @ 0x080C1918 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _080C195C - ldr r3, _080C1960 - lsls r2, r0, #2 - adds r2, r2, r0 - lsls r2, r2, #3 - adds r0, r2, r3 - movs r5, #0xa - ldrsh r1, [r0, r5] - lsls r1, r1, #3 - adds r1, r1, r4 - ldr r6, [r1] - adds r3, #8 - adds r2, r2, r3 - ldrb r0, [r1, #4] - lsls r0, r0, #1 - adds r0, r0, r2 - mov r8, r0 - ldrb r0, [r1, #5] - lsls r0, r0, #1 - adds r7, r2, r0 - movs r0, #0x12 - movs r1, #1 - movs r2, #0x1c - movs r3, #0xc - bl sub_080C0810 - movs r5, #0 - ldrh r4, [r7] - b _080C1986 - .align 2, 0 -_080C195C: .4byte gUnknown_85443CC -_080C1960: .4byte gUnknown_3005B60 -_080C1964: - adds r0, r1, r6 - ldr r0, [r0, #4] - lsls r2, r5, #1 - adds r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r1, #0x13 - bl sub_080C07CC - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r5, #5 - bhi _080C1990 -_080C1986: - lsls r1, r4, #3 - adds r0, r1, r6 - ldr r0, [r0, #4] - cmp r0, #0 - bne _080C1964 -_080C1990: - movs r0, #0 - movs r1, #0xe - movs r2, #0x1d - movs r3, #0x13 - bl sub_080C0810 - mov r1, r8 - ldrh r0, [r1] - ldrh r1, [r7] - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r6 - ldr r0, [r0] - movs r1, #2 - movs r2, #0xf - bl sub_080C07CC - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_080C1918 - - thumb_func_start sub_080C19BC -sub_080C19BC: @ 0x080C19BC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080C19FC - adds r1, r1, r0 - ldr r2, _080C1A00 - lsls r0, r3, #3 - adds r0, r0, r2 - ldrb r2, [r0, #4] - lsls r2, r2, #1 - adds r2, r1, r2 - ldrb r0, [r0, #5] - lsls r0, r0, #1 - adds r1, r1, r0 - ldrh r0, [r1] - ldrh r2, [r2] - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r3, #5 - bhi _080C1A20 - lsls r0, r3, #2 - ldr r1, _080C1A04 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C19FC: .4byte gUnknown_3005B68 -_080C1A00: .4byte gUnknown_85443CC -_080C1A04: .4byte _080C1A08 -_080C1A08: @ jump table - .4byte _080C1A34 @ case 0 - .4byte _080C1A3E @ case 1 - .4byte _080C1A4E @ case 2 - .4byte _080C1A4E @ case 3 - .4byte _080C1A2C @ case 4 - .4byte _080C1A24 @ case 5 -_080C1A20: - movs r0, #0 - b _080C1A54 -_080C1A24: - ldr r0, _080C1A28 - b _080C1A50 - .align 2, 0 -_080C1A28: .4byte gUnknown_85443B0 -_080C1A2C: - ldr r0, _080C1A30 - b _080C1A50 - .align 2, 0 -_080C1A30: .4byte gUnknown_85443B2 -_080C1A34: - cmp r2, #0 - beq _080C1A42 - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - b _080C1A54 -_080C1A3E: - cmp r2, #0 - bne _080C1A46 -_080C1A42: - movs r0, #0xff - b _080C1A54 -_080C1A46: - subs r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _080C1A54 -_080C1A4E: - ldr r0, _080C1A58 -_080C1A50: - adds r0, r2, r0 - ldrb r0, [r0] -_080C1A54: - pop {r1} - bx r1 - .align 2, 0 -_080C1A58: .4byte gUnknown_85443B8 - thumb_func_end sub_080C19BC - - thumb_func_start sub_080C1A5C -sub_080C1A5C: @ 0x080C1A5C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _080C1A7C - ldr r0, [r1] - ldr r2, _080C1A80 - adds r0, r0, r2 - ldrh r0, [r0] - adds r5, r1, #0 - cmp r0, #0 - beq _080C1A76 - cmp r0, #1 - beq _080C1A84 -_080C1A76: - movs r3, #0 - b _080C1A86 - .align 2, 0 -_080C1A7C: .4byte gUnknown_20397EC -_080C1A80: .4byte 0x00000614 -_080C1A84: - movs r3, #1 -_080C1A86: - ldr r1, _080C1AAC - lsls r2, r4, #2 - adds r0, r2, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r3, [r0, #0xc] - ldr r0, [r5] - movs r3, #0xc3 - lsls r3, r3, #3 - adds r0, r0, r3 - ldrh r0, [r0] - adds r5, r1, #0 - cmp r0, #5 - bhi _080C1ACC - lsls r0, r0, #2 - ldr r1, _080C1AB0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C1AAC: .4byte gUnknown_3005B60 -_080C1AB0: .4byte _080C1AB4 -_080C1AB4: @ jump table - .4byte _080C1ACC @ case 0 - .4byte _080C1AD0 @ case 1 - .4byte _080C1AD4 @ case 2 - .4byte _080C1AD8 @ case 3 - .4byte _080C1ADC @ case 4 - .4byte _080C1AE0 @ case 5 -_080C1ACC: - movs r3, #0 - b _080C1AE2 -_080C1AD0: - movs r3, #1 - b _080C1AE2 -_080C1AD4: - movs r3, #2 - b _080C1AE2 -_080C1AD8: - movs r3, #3 - b _080C1AE2 -_080C1ADC: - movs r3, #4 - b _080C1AE2 -_080C1AE0: - movs r3, #5 -_080C1AE2: - adds r0, r2, r4 - lsls r0, r0, #3 - adds r0, r0, r5 - strh r3, [r0, #0x10] - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_080C1A5C - - thumb_func_start sub_080C1AF0 -sub_080C1AF0: @ 0x080C1AF0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _080C1B28 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r0, r1, r3 - ldrb r2, [r0, #0xa] - adds r3, #8 - adds r1, r1, r3 - ldr r0, _080C1B2C - lsls r2, r2, #3 - adds r2, r2, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #1 - adds r1, r1, r0 - ldrh r0, [r2, #6] - subs r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #5 - bls _080C1B30 - ldrh r0, [r1] - cmp r0, #0 - beq _080C1B30 - movs r0, #0 - b _080C1B32 - .align 2, 0 -_080C1B28: .4byte gUnknown_3005B60 -_080C1B2C: .4byte gUnknown_85443CC -_080C1B30: - movs r0, #1 -_080C1B32: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080C1AF0 - - thumb_func_start sub_080C1B38 -sub_080C1B38: @ 0x080C1B38 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _080C1B74 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r0, r1, r3 - ldrb r2, [r0, #0xa] - adds r3, #8 - adds r1, r1, r3 - ldr r0, _080C1B78 - lsls r2, r2, #3 - adds r2, r2, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #1 - adds r1, r1, r0 - ldrh r0, [r2, #6] - subs r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #5 - bls _080C1B7C - ldrh r1, [r1] - subs r0, #5 - cmp r1, r0 - bge _080C1B7C - movs r0, #0 - b _080C1B7E - .align 2, 0 -_080C1B74: .4byte gUnknown_3005B60 -_080C1B78: .4byte gUnknown_85443CC -_080C1B7C: - movs r0, #1 -_080C1B7E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080C1B38 - - thumb_func_start sub_080C1B84 -sub_080C1B84: @ 0x080C1B84 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _080C1BC4 - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _080C1BC8 - cmp r1, r0 - bne _080C1C24 - movs r1, #0x30 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _080C1BCC - ldrh r0, [r4, #0x2e] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_080C1B38 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C1BE8 - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - b _080C1BF4 - .align 2, 0 -_080C1BC4: .4byte gUnknown_3005B60 -_080C1BC8: .4byte sub_080C117C -_080C1BCC: - ldrh r0, [r4, #0x2e] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_080C1AF0 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C1BE8 - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - b _080C1BF4 -_080C1BE8: - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 -_080C1BF4: - strb r0, [r2] - ldrh r2, [r4, #0x32] - movs r1, #0x30 - ldrsh r0, [r4, r1] - lsls r0, r0, #7 - adds r0, r2, r0 - lsls r0, r0, #0x18 - ldr r1, _080C1C20 - lsrs r0, r0, #0x17 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bge _080C1C12 - adds r0, #0x7f -_080C1C12: - asrs r0, r0, #7 - strh r0, [r4, #0x26] - adds r0, r2, #0 - adds r0, #8 - strh r0, [r4, #0x32] - b _080C1C30 - .align 2, 0 -_080C1C20: .4byte gUnknown_82FA8CC -_080C1C24: - adds r0, r4, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_080C1C30: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080C1B84 - - thumb_func_start sub_080C1C38 -sub_080C1C38: @ 0x080C1C38 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r6, _080C1CB0 - adds r0, r6, #0 - movs r1, #0xb8 - movs r2, #4 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _080C1CB4 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r0, r1, r4 - movs r2, #0 - strh r5, [r0, #0x2e] - strh r2, [r0, #0x30] - movs r0, #0x1c - adds r0, r0, r4 - mov sb, r0 - add r1, sb - ldr r0, _080C1CB8 - mov r8, r0 - str r0, [r1] - adds r0, r6, #0 - movs r1, #0xb8 - movs r2, #0x6c - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r4, r1, r4 - strh r5, [r4, #0x2e] - movs r0, #1 - strh r0, [r4, #0x30] - adds r4, #0x3f - ldrb r0, [r4] - movs r2, #2 - orrs r0, r2 - strb r0, [r4] - add r1, sb - mov r0, r8 - str r0, [r1] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080C1CB0: .4byte gUnknown_8539AFC -_080C1CB4: .4byte gUnknown_20205AC -_080C1CB8: .4byte sub_080C1B84 - thumb_func_end sub_080C1C38 - - thumb_func_start VblankCb_TrainerCard -VblankCb_TrainerCard: @ 0x080C1CBC - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl sub_080C41FC - ldr r0, _080C1CF0 - ldr r0, [r0] - ldrb r0, [r0, #9] - cmp r0, #0 - beq _080C1CEC - ldr r1, _080C1CF4 - ldr r0, _080C1CF8 - str r0, [r1] - movs r2, #0xf0 - lsls r2, r2, #3 - adds r0, r0, r2 - str r0, [r1, #4] - ldr r0, _080C1CFC - str r0, [r1, #8] - ldr r0, [r1, #8] -_080C1CEC: - pop {r0} - bx r0 - .align 2, 0 -_080C1CF0: .4byte gUnknown_2039988 -_080C1CF4: .4byte 0x040000D4 -_080C1CF8: .4byte gUnknown_20388C8 -_080C1CFC: .4byte 0x800000A0 - thumb_func_end VblankCb_TrainerCard - - thumb_func_start HblankCb_TrainerCard -HblankCb_TrainerCard: @ 0x080C1D00 - push {r4, lr} - ldr r4, _080C1D2C - ldrh r3, [r4] - movs r0, #0 - strh r0, [r4] - ldr r1, _080C1D30 - ldr r0, _080C1D34 - ldrh r2, [r0] - movs r0, #0xff - ands r0, r2 - lsls r0, r0, #1 - movs r2, #0xf0 - lsls r2, r2, #3 - adds r1, r1, r2 - adds r0, r0, r1 - ldrh r1, [r0] - ldr r0, _080C1D38 - strh r1, [r0] - strh r3, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C1D2C: .4byte 0x04000208 -_080C1D30: .4byte gUnknown_20388C8 -_080C1D34: .4byte 0x04000006 -_080C1D38: .4byte 0x04000012 - thumb_func_end HblankCb_TrainerCard - - thumb_func_start CB2_TrainerCard -CB2_TrainerCard: @ 0x080C1D3C - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CB2_TrainerCard - - thumb_func_start sub_080C1D54 -sub_080C1D54: @ 0x080C1D54 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r5, _080C1D84 - ldr r0, [r5] - ldr r1, _080C1D88 - adds r0, r0, r1 - ldr r0, [r0] - bl SetMainCallback2 - bl FreeAllWindowBuffers - ldr r0, [r5] - bl Free - movs r0, #0 - str r0, [r5] - adds r0, r4, #0 - bl DestroyTask - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080C1D84: .4byte gUnknown_2039988 -_080C1D88: .4byte 0x0000051C - thumb_func_end sub_080C1D54 - - thumb_func_start sub_080C1D8C -sub_080C1D8C: @ 0x080C1D8C - push {r4, r5, r6, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _080C1DAC - ldr r0, [r1] - ldrb r0, [r0] - adds r4, r1, #0 - cmp r0, #0x10 - bls _080C1DA2 - b _080C20F6 -_080C1DA2: - lsls r0, r0, #2 - ldr r1, _080C1DB0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C1DAC: .4byte gUnknown_2039988 -_080C1DB0: .4byte _080C1DB4 -_080C1DB4: @ jump table - .4byte _080C1DF8 @ case 0 - .4byte _080C1E0E @ case 1 - .4byte _080C1E1C @ case 2 - .4byte _080C1E24 @ case 3 - .4byte _080C1E38 @ case 4 - .4byte _080C1E4C @ case 5 - .4byte _080C1E60 @ case 6 - .4byte _080C1E66 @ case 7 - .4byte _080C1EC8 @ case 8 - .4byte _080C1EF4 @ case 9 - .4byte _080C1F10 @ case 10 - .4byte _080C1FC8 @ case 11 - .4byte _080C1F9C @ case 12 - .4byte _080C20D6 @ case 13 - .4byte _080C20C4 @ case 14 - .4byte _080C2058 @ case 15 - .4byte _080C2094 @ case 16 -_080C1DF8: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C1E04 - b _080C20F6 -_080C1E04: - movs r0, #1 - movs r1, #0 - bl FillWindowPixelBuffer - b _080C1F00 -_080C1E0E: - bl sub_080C2A68 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C1E1A - b _080C20F6 -_080C1E1A: - b _080C1F00 -_080C1E1C: - movs r0, #1 - bl sub_080C3CC8 - b _080C1F00 -_080C1E24: - movs r0, #2 - movs r1, #0 - bl FillWindowPixelBuffer - bl sub_080C48F4 - movs r0, #2 - bl sub_080C3CC8 - b _080C1F00 -_080C1E38: - ldr r0, [r4] - ldr r1, _080C1E48 - adds r0, r0, r1 - bl sub_080C3E84 - ldr r1, [r4] - b _080C1F04 - .align 2, 0 -_080C1E48: .4byte 0x00000EE4 -_080C1E4C: - ldr r0, [r4] - ldr r2, _080C1E5C - adds r0, r0, r2 - bl sub_080C3EF4 - ldr r1, [r4] - b _080C1F04 - .align 2, 0 -_080C1E5C: .4byte 0x00000584 -_080C1E60: - bl TrainerCard_PrintStarsAndBadgesOnCard - b _080C1F00 -_080C1E66: - ldr r0, _080C1EB8 - ldrb r0, [r0] - cmp r0, #1 - bne _080C1E82 - ldr r0, _080C1EBC - ldrb r0, [r0] - cmp r0, #1 - bne _080C1E82 - bl LoadWirelessStatusIndicatorSpriteGfx - movs r0, #0xe6 - movs r1, #0x96 - bl CreateWirelessStatusIndicatorSprite -_080C1E82: - movs r6, #1 - rsbs r6, r6, #0 - ldr r4, _080C1EC0 - ldr r0, [r4] - movs r5, #0xa3 - lsls r5, r5, #3 - adds r0, r0, r5 - ldrh r2, [r0] - adds r0, r6, #0 - movs r1, #0x10 - bl BlendPalettes - ldr r0, [r4] - adds r0, r0, r5 - ldrh r0, [r0] - str r0, [sp] - adds r0, r6, #0 - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r0, _080C1EC4 - bl SetVBlankCallback - ldr r1, [r4] - b _080C1F04 - .align 2, 0 -_080C1EB8: .4byte gUnknown_300319C -_080C1EBC: .4byte gUnknown_30031C4 -_080C1EC0: .4byte gUnknown_2039988 -_080C1EC4: .4byte VblankCb_TrainerCard -_080C1EC8: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C1ED4 - b _080C20F6 -_080C1ED4: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C1EE0 - b _080C20F6 -_080C1EE0: - movs r0, #0xfb - bl sub_080A306C - ldr r0, _080C1EF0 - ldr r1, [r0] - movs r0, #0xa - strb r0, [r1] - b _080C20F6 - .align 2, 0 -_080C1EF0: .4byte gUnknown_2039988 -_080C1EF4: - bl IsSEPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C1F00 - b _080C20F6 -_080C1F00: - ldr r0, _080C1F0C - ldr r1, [r0] -_080C1F04: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080C20F6 - .align 2, 0 -_080C1F0C: .4byte gUnknown_2039988 -_080C1F10: - ldr r0, _080C1F58 - ldrb r5, [r0] - cmp r5, #0 - bne _080C1F36 - ldr r0, [r4] - ldr r1, _080C1F5C - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _080C1F36 - bl WindowFunc_DrawDialogFrameWithCustomTileAndPalette - movs r0, #1 - bl sub_080C3CC8 - ldr r0, [r4] - ldr r2, _080C1F5C - adds r0, r0, r2 - strb r5, [r0] -_080C1F36: - ldr r0, _080C1F60 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080C1F68 - bl sub_080C424C - movs r0, #0xf9 - bl sub_080A306C - ldr r0, _080C1F64 - ldr r1, [r0] - movs r0, #0xc - strb r0, [r1] - b _080C20F6 - .align 2, 0 -_080C1F58: .4byte gUnknown_30031C4 -_080C1F5C: .4byte 0x00000515 -_080C1F60: .4byte gUnknown_3002360 -_080C1F64: .4byte gUnknown_2039988 -_080C1F68: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _080C1F72 - b _080C20F6 -_080C1F72: - ldr r0, _080C1F94 - ldrb r0, [r0] - cmp r0, #0 - beq _080C1F8C - ldr r4, _080C1F98 - ldr r0, [r4] - ldrb r0, [r0, #5] - cmp r0, #0 - beq _080C1F8C - bl InUnionRoom - cmp r0, #1 - beq _080C2040 -_080C1F8C: - movs r0, #1 - rsbs r0, r0, #0 - ldr r4, _080C1F98 - b _080C20A0 - .align 2, 0 -_080C1F94: .4byte gUnknown_30031C4 -_080C1F98: .4byte gUnknown_2039988 -_080C1F9C: - bl sub_080C4274 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C1FA8 - b _080C20F6 -_080C1FA8: - bl sub_08086EFC - cmp r0, #1 - bne _080C1FB2 - b _080C20F6 -_080C1FB2: - movs r0, #0xfb - bl sub_080A306C - ldr r0, _080C1FC4 - ldr r1, [r0] - movs r0, #0xb - strb r0, [r1] - b _080C20F6 - .align 2, 0 -_080C1FC4: .4byte gUnknown_2039988 -_080C1FC8: - ldr r0, _080C1FFC - ldrh r1, [r0, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080C2020 - ldr r0, _080C2000 - ldrb r0, [r0] - cmp r0, #0 - beq _080C2008 - ldr r0, [r4] - ldrb r0, [r0, #5] - cmp r0, #0 - beq _080C1FEC - bl InUnionRoom - cmp r0, #1 - beq _080C2040 -_080C1FEC: - ldr r0, _080C2000 - ldrb r0, [r0] - cmp r0, #0 - beq _080C2008 - movs r0, #1 - rsbs r0, r0, #0 - ldr r4, _080C2004 - b _080C20A0 - .align 2, 0 -_080C1FFC: .4byte gUnknown_3002360 -_080C2000: .4byte gUnknown_30031C4 -_080C2004: .4byte gUnknown_2039988 -_080C2008: - bl sub_080C424C - ldr r0, _080C201C - ldr r1, [r0] - movs r0, #0xd - strb r0, [r1] - movs r0, #0xf9 - bl sub_080A306C - b _080C20F6 - .align 2, 0 -_080C201C: .4byte gUnknown_2039988 -_080C2020: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080C20F6 - ldr r0, _080C2048 - ldrb r0, [r0] - cmp r0, #0 - beq _080C204C - ldr r0, [r4] - ldrb r0, [r0, #5] - cmp r0, #0 - beq _080C204C - bl InUnionRoom - cmp r0, #1 - bne _080C204C -_080C2040: - ldr r1, [r4] - movs r0, #0xf - strb r0, [r1] - b _080C20F6 - .align 2, 0 -_080C2048: .4byte gUnknown_30031C4 -_080C204C: - movs r0, #1 - rsbs r0, r0, #0 - ldr r4, _080C2054 - b _080C20A0 - .align 2, 0 -_080C2054: .4byte gUnknown_2039988 -_080C2058: - bl sub_0800A7F8 - movs r0, #0 - movs r1, #1 - bl sub_08196FB8 - ldr r2, _080C208C - movs r0, #2 - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - ldr r0, _080C2090 - ldr r1, [r0] - movs r0, #0x10 - strb r0, [r1] - b _080C20F6 - .align 2, 0 -_080C208C: .4byte gUnknown_85CC3A7 -_080C2090: .4byte gUnknown_2039988 -_080C2094: - ldr r0, _080C20C0 - ldrb r0, [r0] - cmp r0, #0 - bne _080C20F6 - movs r0, #1 - rsbs r0, r0, #0 -_080C20A0: - ldr r1, [r4] - movs r2, #0xa3 - lsls r2, r2, #3 - adds r1, r1, r2 - ldrh r1, [r1] - str r1, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, [r4] - movs r0, #0xe - strb r0, [r1] - b _080C20F6 - .align 2, 0 -_080C20C0: .4byte gUnknown_30031C4 -_080C20C4: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C20F6 - adds r0, r5, #0 - bl sub_080C1D54 - b _080C20F6 -_080C20D6: - bl sub_080C4274 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C20F6 - bl sub_08086EFC - cmp r0, #1 - beq _080C20F6 - ldr r0, _080C2100 - ldr r1, [r0] - movs r0, #0xa - strb r0, [r1] - movs r0, #0xfb - bl sub_080A306C -_080C20F6: - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080C2100: .4byte gUnknown_2039988 - thumb_func_end sub_080C1D8C - - thumb_func_start sub_080C2104 -sub_080C2104: @ 0x080C2104 - push {lr} - ldr r0, _080C211C - ldr r1, [r0] - ldrb r0, [r1, #2] - cmp r0, #5 - bls _080C2112 - b _080C2298 -_080C2112: - lsls r0, r0, #2 - ldr r1, _080C2120 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C211C: .4byte gUnknown_2039988 -_080C2120: .4byte _080C2124 -_080C2124: @ jump table - .4byte _080C213C @ case 0 - .4byte _080C2170 @ case 1 - .4byte _080C21A4 @ case 2 - .4byte _080C2204 @ case 3 - .4byte _080C2238 @ case 4 - .4byte _080C226C @ case 5 -_080C213C: - ldr r0, _080C2150 - ldr r1, [r0] - ldr r2, _080C2154 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080C2160 - ldr r0, _080C2158 - ldr r2, _080C215C - b _080C227E - .align 2, 0 -_080C2150: .4byte gUnknown_2039988 -_080C2154: .4byte 0x00000516 -_080C2158: .4byte gUnknown_8545BFC -_080C215C: .4byte 0x00000EE4 -_080C2160: - ldr r0, _080C2168 - ldr r2, _080C216C - b _080C227E - .align 2, 0 -_080C2168: .4byte gUnknown_8545C94 -_080C216C: .4byte 0x00000EE4 -_080C2170: - ldr r0, _080C2184 - ldr r1, [r0] - ldr r2, _080C2188 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080C2194 - ldr r0, _080C218C - ldr r2, _080C2190 - b _080C227E - .align 2, 0 -_080C2184: .4byte gUnknown_2039988 -_080C2188: .4byte 0x00000516 -_080C218C: .4byte gUnknown_85456E8 -_080C2190: .4byte 0x00000A34 -_080C2194: - ldr r0, _080C219C - ldr r2, _080C21A0 - b _080C227E - .align 2, 0 -_080C219C: .4byte gUnknown_85457C4 -_080C21A0: .4byte 0x00000A34 -_080C21A4: - ldr r0, _080C21C0 - ldr r1, [r0] - ldrb r0, [r1, #5] - cmp r0, #0 - bne _080C21DC - ldr r2, _080C21C4 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080C21CC - ldr r0, _080C21C8 - adds r2, #0x6e - b _080C227E - .align 2, 0 -_080C21C0: .4byte gUnknown_2039988 -_080C21C4: .4byte 0x00000516 -_080C21C8: .4byte gUnknown_8545390 -_080C21CC: - ldr r0, _080C21D4 - ldr r2, _080C21D8 - b _080C227E - .align 2, 0 -_080C21D4: .4byte gUnknown_8545530 -_080C21D8: .4byte 0x00000584 -_080C21DC: - ldr r2, _080C21EC - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080C21F4 - ldr r0, _080C21F0 - adds r2, #0x6e - b _080C227E - .align 2, 0 -_080C21EC: .4byte 0x00000516 -_080C21F0: .4byte gUnknown_85458F0 -_080C21F4: - ldr r0, _080C21FC - ldr r2, _080C2200 - b _080C227E - .align 2, 0 -_080C21FC: .4byte gUnknown_8545A70 -_080C2200: .4byte 0x00000584 -_080C2204: - ldr r0, _080C2218 - ldr r1, [r0] - ldr r2, _080C221C - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080C2228 - ldr r0, _080C2220 - ldr r2, _080C2224 - b _080C227E - .align 2, 0 -_080C2218: .4byte gUnknown_2039988 -_080C221C: .4byte 0x00000516 -_080C2220: .4byte gUnknown_854622C -_080C2224: .4byte 0x00001394 -_080C2228: - ldr r0, _080C2230 - ldr r2, _080C2234 - b _080C227E - .align 2, 0 -_080C2230: .4byte gUnknown_8546474 -_080C2234: .4byte 0x00001394 -_080C2238: - ldr r0, _080C224C - ldr r1, [r0] - ldr r2, _080C2250 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080C225C - ldr r0, _080C2254 - ldr r2, _080C2258 - b _080C227E - .align 2, 0 -_080C224C: .4byte gUnknown_2039988 -_080C2250: .4byte 0x00000516 -_080C2254: .4byte gUnknown_854441C -_080C2258: .4byte 0x00001994 -_080C225C: - ldr r0, _080C2264 - ldr r2, _080C2268 - b _080C227E - .align 2, 0 -_080C2264: .4byte gUnknown_8544B5C -_080C2268: .4byte 0x00001994 -_080C226C: - ldr r0, _080C2288 - ldr r1, [r0] - ldr r2, _080C228C - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _080C22A0 - ldr r0, _080C2290 - ldr r2, _080C2294 -_080C227E: - adds r1, r1, r2 - bl LZ77UnCompWram - b _080C22A0 - .align 2, 0 -_080C2288: .4byte gUnknown_2039988 -_080C228C: .4byte 0x00000516 -_080C2290: .4byte gUnknown_854521C -_080C2294: .4byte 0x00001794 -_080C2298: - movs r0, #0 - strb r0, [r1, #2] - movs r0, #1 - b _080C22AC -_080C22A0: - ldr r0, _080C22B0 - ldr r1, [r0] - ldrb r0, [r1, #2] - adds r0, #1 - strb r0, [r1, #2] - movs r0, #0 -_080C22AC: - pop {r1} - bx r1 - .align 2, 0 -_080C22B0: .4byte gUnknown_2039988 - thumb_func_end sub_080C2104 - - thumb_func_start CB2_InitTrainerCard -CB2_InitTrainerCard: @ 0x080C22B4 - push {lr} - sub sp, #8 - ldr r1, _080C22D4 - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r1, r2 - ldrb r0, [r0] - adds r3, r1, #0 - cmp r0, #0xa - bls _080C22CA - b _080C2408 -_080C22CA: - lsls r0, r0, #2 - ldr r1, _080C22D8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C22D4: .4byte gUnknown_3002360 -_080C22D8: .4byte _080C22DC -_080C22DC: @ jump table - .4byte _080C2308 @ case 0 - .4byte _080C2320 @ case 1 - .4byte _080C2348 @ case 2 - .4byte _080C2380 @ case 3 - .4byte _080C239A @ case 4 - .4byte _080C23A4 @ case 5 - .4byte _080C23B8 @ case 6 - .4byte _080C23BE @ case 7 - .4byte _080C23D0 @ case 8 - .4byte _080C23D6 @ case 9 - .4byte _080C23E8 @ case 10 -_080C2308: - bl HandleGpuRegs - bl sub_080C2A44 - ldr r1, _080C231C - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _080C23FC - .align 2, 0 -_080C231C: .4byte gUnknown_3002360 -_080C2320: - movs r1, #0xe0 - lsls r1, r1, #0x13 - movs r0, #0 - str r0, [sp] - ldr r0, _080C2340 - mov r2, sp - str r2, [r0] - str r1, [r0, #4] - ldr r1, _080C2344 - str r1, [r0, #8] - ldr r0, [r0, #8] - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r3, r0 - b _080C23FC - .align 2, 0 -_080C2340: .4byte 0x040000D4 -_080C2344: .4byte 0x85000100 -_080C2348: - ldr r0, _080C2374 - ldr r0, [r0] - movs r1, #0xa3 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0 - bne _080C236C - movs r2, #0xa0 - lsls r2, r2, #0x13 - add r1, sp, #4 - strh r0, [r1] - ldr r0, _080C2378 - str r1, [r0] - str r2, [r0, #4] - ldr r1, _080C237C - str r1, [r0, #8] - ldr r0, [r0, #8] -_080C236C: - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r3, r2 - b _080C23FC - .align 2, 0 -_080C2374: .4byte gUnknown_2039988 -_080C2378: .4byte 0x040000D4 -_080C237C: .4byte 0x81000200 -_080C2380: - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetPaletteFade - ldr r1, _080C23A0 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_080C239A: - bl InitBgsAndWindows - b _080C23F4 - .align 2, 0 -_080C23A0: .4byte gUnknown_3002360 -_080C23A4: - bl sub_080C3B0C - ldr r1, _080C23B4 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _080C23FC - .align 2, 0 -_080C23B4: .4byte gUnknown_3002360 -_080C23B8: - bl sub_080C2104 - b _080C23EC -_080C23BE: - bl sub_080C3C6C - ldr r1, _080C23CC - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _080C23FC - .align 2, 0 -_080C23CC: .4byte gUnknown_3002360 -_080C23D0: - bl sub_080C28A4 - b _080C23F4 -_080C23D6: - bl sub_080C2B78 - ldr r1, _080C23E4 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _080C23FC - .align 2, 0 -_080C23E4: .4byte gUnknown_3002360 -_080C23E8: - bl SetCardBgsAndPals -_080C23EC: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080C240C -_080C23F4: - ldr r1, _080C2404 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 -_080C23FC: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080C240C - .align 2, 0 -_080C2404: .4byte gUnknown_3002360 -_080C2408: - bl SetTrainerCardCb2 -_080C240C: - add sp, #8 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CB2_InitTrainerCard - - thumb_func_start GetCappedGameStat -GetCappedGameStat: @ 0x080C2414 - push {r4, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetGameStat - cmp r0, r4 - bls _080C2426 - adds r0, r4, #0 -_080C2426: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetCappedGameStat - - thumb_func_start HasAllFrontierSymbols -HasAllFrontierSymbols: @ 0x080C242C - push {r4, r5, lr} - movs r5, #0 -_080C2430: - lsls r4, r5, #1 - ldr r1, _080C2454 - adds r0, r4, r1 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C244E - ldr r1, _080C2458 - adds r0, r4, r1 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C245C -_080C244E: - movs r0, #0 - b _080C2468 - .align 2, 0 -_080C2454: .4byte 0x000008C4 -_080C2458: .4byte 0x000008C5 -_080C245C: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #6 - bls _080C2430 - movs r0, #1 -_080C2468: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end HasAllFrontierSymbols - - thumb_func_start CountPlayerTrainerStars -CountPlayerTrainerStars: @ 0x080C2470 - push {r4, lr} - movs r0, #0xa - bl GetGameStat - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r4, r1, #0x1f - bl HasAllHoennMons - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080C248A - adds r4, #1 -_080C248A: - bl CountPlayerContestPaintings - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bls _080C249C - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_080C249C: - bl HasAllFrontierSymbols - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C24AC - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_080C24AC: - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end CountPlayerTrainerStars - - thumb_func_start GetRubyTrainerStars -GetRubyTrainerStars: @ 0x080C24B4 - push {lr} - adds r1, r0, #0 - movs r2, #0 - ldrh r0, [r1, #6] - cmp r0, #0 - bne _080C24C6 - ldr r0, [r1, #8] - cmp r0, #0 - beq _080C24C8 -_080C24C6: - movs r2, #1 -_080C24C8: - ldrb r0, [r1, #3] - cmp r0, #0 - beq _080C24D4 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 -_080C24D4: - ldrh r0, [r1, #0x1a] - cmp r0, #0x31 - bls _080C24E0 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 -_080C24E0: - ldrb r0, [r1, #4] - cmp r0, #0 - beq _080C24EC - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 -_080C24EC: - adds r0, r2, #0 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetRubyTrainerStars - - thumb_func_start SetPlayerCardData -SetPlayerCardData: @ 0x080C24F4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - ldr r6, _080C25D4 - ldr r1, [r6] - ldrb r0, [r1, #8] - strb r0, [r5] - ldrh r0, [r1, #0xe] - strh r0, [r5, #0x10] - ldrb r0, [r1, #0x10] - strh r0, [r5, #0x12] - movs r0, #1 - bl GetGameStat - adds r4, r0, #0 - movs r0, #0xa - bl GetGameStat - cmp r0, #0 - bne _080C2526 - movs r4, #0 -_080C2526: - lsrs r0, r4, #0x10 - strh r0, [r5, #6] - lsrs r1, r4, #8 - movs r2, #0xff - ands r1, r2 - strh r1, [r5, #8] - ands r4, r2 - strh r4, [r5, #0xa] - ldr r1, _080C25D8 - cmp r0, r1 - bls _080C2544 - strh r1, [r5, #6] - movs r0, #0x3b - strh r0, [r5, #8] - strh r0, [r5, #0xa] -_080C2544: - ldr r0, _080C25DC - bl FlagGet - strb r0, [r5, #2] - bl HasAllHoennMons - strb r0, [r5, #3] - bl GetCaughtMonsCount - strh r0, [r5, #0xc] - ldr r0, [r6] - ldrb r1, [r0, #0xb] - lsls r1, r1, #8 - ldrb r0, [r0, #0xa] - orrs r0, r1 - strh r0, [r5, #0xe] - ldr r4, _080C25E0 - movs r0, #0x17 - adds r1, r4, #0 - bl GetCappedGameStat - strh r0, [r5, #0x14] - movs r0, #0x18 - adds r1, r4, #0 - bl GetCappedGameStat - strh r0, [r5, #0x16] - ldr r1, _080C25E4 - movs r0, #0x15 - bl GetCappedGameStat - strh r0, [r5, #0x20] - ldr r4, _080C25E8 - ldr r0, [r4] - movs r1, #0x92 - lsls r1, r1, #3 - adds r0, r0, r1 - bl sub_080E4908 - str r0, [r5, #0x24] - movs r2, #0 - adds r7, r5, #0 - adds r7, #0x30 - adds r6, r5, #0 - adds r6, #0x28 - ldr r0, [r4] - ldr r1, _080C25EC - adds r3, r0, r1 -_080C25A4: - lsls r0, r2, #1 - adds r1, r6, r0 - adds r0, r3, r0 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #3 - bls _080C25A4 - ldr r0, _080C25D4 - ldr r1, [r0] - adds r0, r7, #0 - bl StringCopy - mov r0, r8 - cmp r0, #1 - beq _080C2634 - cmp r0, #1 - bgt _080C25F0 - cmp r0, #0 - beq _080C25FC - b _080C2644 - .align 2, 0 -_080C25D4: .4byte gUnknown_3005AF0 -_080C25D8: .4byte 0x000003E7 -_080C25DC: .4byte 0x00000861 -_080C25E0: .4byte 0x0000270F -_080C25E4: .4byte 0x0000FFFF -_080C25E8: .4byte gUnknown_3005AEC -_080C25EC: .4byte 0x00002BB0 -_080C25F0: - mov r1, r8 - cmp r1, #2 - bne _080C2644 - movs r0, #0 - strh r0, [r5, #0x18] - strh r0, [r5, #0x1a] -_080C25FC: - ldr r1, _080C262C - movs r0, #0x23 - bl GetCappedGameStat - strh r0, [r5, #0x1c] - ldr r1, _080C2630 - movs r0, #0x22 - bl GetCappedGameStat - strh r0, [r5, #0x1e] - bl CountPlayerContestPaintings - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bls _080C2620 - movs r0, #1 - strb r0, [r5, #4] -_080C2620: - adds r0, r5, #0 - bl GetRubyTrainerStars - strb r0, [r5, #1] - b _080C2644 - .align 2, 0 -_080C262C: .4byte 0x000003E7 -_080C2630: .4byte 0x0000FFFF -_080C2634: - movs r1, #0 - movs r0, #0 - strh r0, [r5, #0x18] - strh r0, [r5, #0x1a] - strh r0, [r5, #0x1c] - strh r0, [r5, #0x1e] - strb r1, [r5, #4] - strb r1, [r5, #1] -_080C2644: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetPlayerCardData - - thumb_func_start TrainerCard_GenerateCardForLinkPlayer -TrainerCard_GenerateCardForLinkPlayer: @ 0x080C2650 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r2, #0x64 - bl memset - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #2 - bl SetPlayerCardData - bl HasAllFrontierSymbols - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r4, #0 - adds r1, #0x60 - strh r0, [r1] - ldr r0, _080C26A8 - ldr r0, [r0] - ldr r2, _080C26AC - adds r0, r0, r2 - ldrh r0, [r0] - adds r2, r4, #0 - adds r2, #0x62 - strh r0, [r2] - ldrh r0, [r1] - cmp r0, #0 - beq _080C2696 - ldrb r0, [r4, #1] - adds r0, #1 - strb r0, [r4, #1] -_080C2696: - ldrb r0, [r4] - cmp r0, #1 - bne _080C26B4 - ldr r2, _080C26B0 - ldrh r0, [r4, #0xe] - movs r1, #7 - ands r0, r1 - adds r0, #8 - b _080C26BC - .align 2, 0 -_080C26A8: .4byte gUnknown_3005AF0 -_080C26AC: .4byte 0x00000EBA -_080C26B0: .4byte gUnknown_82FA6E2 -_080C26B4: - ldr r2, _080C26D0 - ldrh r0, [r4, #0xe] - movs r1, #7 - ands r0, r1 -_080C26BC: - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r1, [r0] - adds r0, r4, #0 - adds r0, #0x4f - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C26D0: .4byte gUnknown_82FA6E2 - thumb_func_end TrainerCard_GenerateCardForLinkPlayer - - thumb_func_start TrainerCard_GenerateCardForPlayer -TrainerCard_GenerateCardForPlayer: @ 0x080C26D4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r2, #0x60 - bl memset - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #2 - bl SetPlayerCardData - bl HasAllFrontierSymbols - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x3a] - ldr r1, _080C2724 - ldr r1, [r1] - ldr r2, _080C2728 - adds r1, r1, r2 - ldrh r1, [r1] - strh r1, [r4, #0x3c] - cmp r0, #0 - beq _080C2710 - ldrb r0, [r4, #1] - adds r0, #1 - strb r0, [r4, #1] -_080C2710: - ldrb r0, [r4] - cmp r0, #1 - bne _080C2730 - ldr r2, _080C272C - ldrh r0, [r4, #0xe] - movs r1, #7 - ands r0, r1 - adds r0, #8 - b _080C2738 - .align 2, 0 -_080C2724: .4byte gUnknown_3005AF0 -_080C2728: .4byte 0x00000EBA -_080C272C: .4byte gUnknown_82FA6E2 -_080C2730: - ldr r2, _080C274C - ldrh r0, [r4, #0xe] - movs r1, #7 - ands r0, r1 -_080C2738: - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r1, [r0] - adds r0, r4, #0 - adds r0, #0x4f - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C274C: .4byte gUnknown_82FA6E2 - thumb_func_end TrainerCard_GenerateCardForPlayer - - thumb_func_start CopyTrainerCardData -CopyTrainerCardData: @ 0x080C2750 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - lsls r4, r2, #0x18 - lsrs r4, r4, #0x18 - movs r1, #0 - movs r2, #0x64 - bl memset - adds r0, r5, #0 - adds r0, #0x38 - strb r4, [r0] - adds r0, r4, #0 - bl VersionToCardType - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080C2792 - cmp r0, #1 - bgt _080C2780 - cmp r0, #0 - beq _080C2786 - b _080C27BA -_080C2780: - cmp r0, #2 - beq _080C279E - b _080C27BA -_080C2786: - adds r0, r5, #0 - adds r1, r6, #0 - movs r2, #0x60 - bl memcpy - b _080C27BA -_080C2792: - adds r0, r5, #0 - adds r1, r6, #0 - movs r2, #0x38 - bl memcpy - b _080C27BA -_080C279E: - adds r0, r5, #0 - adds r1, r6, #0 - movs r2, #0x60 - bl memcpy - movs r0, #0 - str r0, [r5, #0x3c] - ldrh r1, [r6, #0x3a] - adds r0, r5, #0 - adds r0, #0x60 - strh r1, [r0] - ldrh r1, [r6, #0x3c] - adds r0, #2 - strh r1, [r0] -_080C27BA: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end CopyTrainerCardData - - thumb_func_start DecompressPicFromTable_2 -DecompressPicFromTable_2: @ 0x080C27C0 - push {r4, r5, lr} - ldr r4, _080C288C - ldr r0, [r4] - movs r1, #0 - strb r1, [r0, #0xa] - ldr r0, [r4] - strb r1, [r0, #0xb] - ldr r0, [r4] - strb r1, [r0, #0xc] - ldr r0, [r4] - strb r1, [r0, #0xd] - ldr r0, [r4] - strb r1, [r0, #0xe] - ldr r0, [r4] - strb r1, [r0, #0xf] - ldr r0, [r4] - strb r1, [r0, #0x10] - ldr r0, [r4] - adds r0, #0x11 - movs r2, #8 - bl memset - ldr r1, [r4] - ldr r2, _080C2890 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080C27FE - ldrb r0, [r1, #0xa] - adds r0, #1 - strb r0, [r1, #0xa] -_080C27FE: - ldr r1, [r4] - ldr r3, _080C2894 - adds r0, r1, r3 - ldrh r0, [r0] - cmp r0, #0 - bne _080C2816 - movs r2, #0xa5 - lsls r2, r2, #3 - adds r0, r1, r2 - ldr r0, [r0] - cmp r0, #0 - beq _080C281C -_080C2816: - ldrb r0, [r1, #0xb] - adds r0, #1 - strb r0, [r1, #0xb] -_080C281C: - ldr r2, _080C288C - ldr r1, [r2] - ldr r3, _080C2898 - adds r0, r1, r3 - ldr r0, [r0] - cmp r0, #0 - beq _080C2830 - ldrb r0, [r1, #0xc] - adds r0, #1 - strb r0, [r1, #0xc] -_080C2830: - ldr r1, [r2] - movs r3, #0xa8 - lsls r3, r3, #3 - adds r0, r1, r3 - ldrh r0, [r0] - cmp r0, #0 - beq _080C2844 - ldrb r0, [r1, #0x10] - adds r0, #1 - strb r0, [r1, #0x10] -_080C2844: - ldr r1, [r2] - movs r2, #0xa7 - lsls r2, r2, #3 - adds r0, r1, r2 - ldr r0, [r0] - cmp r0, #0 - beq _080C2858 - ldrb r0, [r1, #0xd] - adds r0, #1 - strb r0, [r1, #0xd] -_080C2858: - movs r5, #0 - ldr r4, _080C289C -_080C285C: - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C2878 - ldr r0, _080C288C - ldr r1, [r0] - adds r1, #0x11 - adds r1, r1, r5 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_080C2878: - adds r4, #1 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _080C28A0 - cmp r4, r0 - bls _080C285C - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080C288C: .4byte gUnknown_2039988 -_080C2890: .4byte 0x00000522 -_080C2894: .4byte 0x00000526 -_080C2898: .4byte 0x00000534 -_080C289C: .4byte 0x00000867 -_080C28A0: .4byte 0x0000086E - thumb_func_end DecompressPicFromTable_2 - - thumb_func_start sub_080C28A4 -sub_080C28A4: @ 0x080C28A4 - push {lr} - movs r1, #0xc1 - lsls r1, r1, #6 - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg - movs r0, #0x50 - movs r1, #0xc1 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0x3f - bl SetGpuReg - movs r0, #0x4a - movs r1, #0x1e - bl SetGpuReg - movs r0, #0x44 - movs r1, #0xa0 - bl SetGpuReg - movs r0, #0x40 - movs r1, #0xf0 - bl SetGpuReg - ldr r0, _080C2908 - ldrb r0, [r0] - cmp r0, #0 - beq _080C290C - movs r0, #0xc7 - bl EnableInterrupts - b _080C2912 - .align 2, 0 -_080C2908: .4byte gUnknown_30031C4 -_080C290C: - movs r0, #3 - bl EnableInterrupts -_080C2912: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080C28A4 - - thumb_func_start sub_080C2918 -sub_080C2918: @ 0x080C2918 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r0, #0x28 - movs r1, #0xa - bl __divsi3 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #4 - bgt _080C2932 - movs r2, #0 -_080C2932: - ldr r4, _080C2970 - ldr r0, [r4] - ldr r1, _080C2974 - adds r0, r0, r1 - strb r2, [r0] - ldr r0, [r4] - adds r0, r0, r1 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x54 - bl SetGpuReg - ldr r0, [r4] - ldr r1, _080C2978 - adds r0, r0, r1 - ldrh r2, [r0] - lsls r1, r2, #8 - movs r0, #0xa0 - subs r0, r0, r2 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x44 - bl SetGpuReg - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C2970: .4byte gUnknown_2039988 -_080C2974: .4byte 0x00000514 -_080C2978: .4byte 0x00007C94 - thumb_func_end sub_080C2918 - - thumb_func_start HandleGpuRegs -HandleGpuRegs: @ 0x080C297C - push {lr} - movs r0, #0 - bl SetVBlankCallback - movs r0, #0 - bl SetHBlankCallback - movs r0, #0 - movs r1, #0 - bl SetGpuReg - movs r0, #8 - movs r1, #0 - bl SetGpuReg - movs r0, #0xa - movs r1, #0 - bl SetGpuReg - movs r0, #0xc - movs r1, #0 - bl SetGpuReg - movs r0, #0xe - movs r1, #0 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end HandleGpuRegs - - thumb_func_start InitBgsAndWindows -InitBgsAndWindows: @ 0x080C29B8 - push {lr} - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _080C2A2C - movs r0, #0 - movs r2, #4 - bl InitBgsFromTemplates - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - ldr r0, _080C2A30 - bl InitWindows - bl sub_08004480 - bl sub_08196F98 - pop {r0} - bx r0 - .align 2, 0 -_080C2A2C: .4byte gUnknown_8546714 -_080C2A30: .4byte gUnknown_8546724 - thumb_func_end InitBgsAndWindows - - thumb_func_start SetTrainerCardCb2 -SetTrainerCardCb2: @ 0x080C2A34 - push {lr} - ldr r0, _080C2A40 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080C2A40: .4byte CB2_TrainerCard - thumb_func_end SetTrainerCardCb2 - - thumb_func_start sub_080C2A44 -sub_080C2A44: @ 0x080C2A44 - push {lr} - bl ResetTasks - bl ScanlineEffect_Stop - ldr r0, _080C2A64 - movs r1, #0 - bl CreateTask - bl sub_080C47EC - bl DecompressPicFromTable_2 - pop {r0} - bx r0 - .align 2, 0 -_080C2A64: .4byte sub_080C1D8C - thumb_func_end sub_080C2A44 - - thumb_func_start sub_080C2A68 -sub_080C2A68: @ 0x080C2A68 - push {lr} - ldr r0, _080C2A80 - ldr r1, [r0] - ldrb r0, [r1, #1] - cmp r0, #5 - bhi _080C2AC4 - lsls r0, r0, #2 - ldr r1, _080C2A84 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C2A80: .4byte gUnknown_2039988 -_080C2A84: .4byte _080C2A88 -_080C2A88: @ jump table - .4byte _080C2AA0 @ case 0 - .4byte _080C2AA6 @ case 1 - .4byte _080C2AAC @ case 2 - .4byte _080C2AB2 @ case 3 - .4byte _080C2AB8 @ case 4 - .4byte _080C2ABE @ case 5 -_080C2AA0: - bl sub_080C2BA4 - b _080C2ACC -_080C2AA6: - bl Task_PrintTestData - b _080C2ACC -_080C2AAC: - bl sub_080C2D14 - b _080C2ACC -_080C2AB2: - bl sub_080C2E40 - b _080C2ACC -_080C2AB8: - bl WindowFunc_DrawDialogFrameWithCustomTileAndPalette - b _080C2ACC -_080C2ABE: - bl sub_080C310C - b _080C2ACC -_080C2AC4: - movs r0, #0 - strb r0, [r1, #1] - movs r0, #1 - b _080C2AD8 -_080C2ACC: - ldr r0, _080C2ADC - ldr r1, [r0] - ldrb r0, [r1, #1] - adds r0, #1 - strb r0, [r1, #1] - movs r0, #0 -_080C2AD8: - pop {r1} - bx r1 - .align 2, 0 -_080C2ADC: .4byte gUnknown_2039988 - thumb_func_end sub_080C2A68 - - thumb_func_start PrintStringsOnCardPage2 -PrintStringsOnCardPage2: @ 0x080C2AE0 - push {lr} - ldr r0, _080C2AF8 - ldr r1, [r0] - ldrb r0, [r1, #1] - cmp r0, #7 - bhi _080C2B5C - lsls r0, r0, #2 - ldr r1, _080C2AFC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C2AF8: .4byte gUnknown_2039988 -_080C2AFC: .4byte _080C2B00 -_080C2B00: @ jump table - .4byte _080C2B20 @ case 0 - .4byte _080C2B26 @ case 1 - .4byte _080C2B2C @ case 2 - .4byte _080C2B32 @ case 3 - .4byte _080C2B38 @ case 4 - .4byte _080C2B42 @ case 5 - .4byte _080C2B4C @ case 6 - .4byte _080C2B56 @ case 7 -_080C2B20: - bl sub_080C323C - b _080C2B64 -_080C2B26: - bl sub_080C3330 - b _080C2B64 -_080C2B2C: - bl sub_080C340C - b _080C2B64 -_080C2B32: - bl sub_080C34E4 - b _080C2B64 -_080C2B38: - bl sub_080C35C0 - bl sub_080C3760 - b _080C2B64 -_080C2B42: - bl sub_080C3684 - bl sub_080C3828 - b _080C2B64 -_080C2B4C: - bl TrainerCard_PrintPokemonIconsOnCard - bl sub_080C395C - b _080C2B64 -_080C2B56: - bl sub_080C3BE4 - b _080C2B64 -_080C2B5C: - movs r0, #0 - strb r0, [r1, #1] - movs r0, #1 - b _080C2B70 -_080C2B64: - ldr r0, _080C2B74 - ldr r1, [r0] - ldrb r0, [r1, #1] - adds r0, #1 - strb r0, [r1, #1] - movs r0, #0 -_080C2B70: - pop {r1} - bx r1 - .align 2, 0 -_080C2B74: .4byte gUnknown_2039988 - thumb_func_end PrintStringsOnCardPage2 - - thumb_func_start sub_080C2B78 -sub_080C2B78: @ 0x080C2B78 - push {lr} - bl sub_080C31FC - bl PrintLinkResultsNumsOnCard - bl PrintHofTimeOnCard - bl PrintTradesNumOnCard - bl PrintUnionNumOnCard - bl PrintBerryCrushNumOnCard - bl PrintPokeblocksNumOnCard - bl sub_080C37EC - bl PrintBattleFacilityNumsOnCard - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080C2B78 - - thumb_func_start sub_080C2BA4 -sub_080C2BA4: @ 0x080C2BA4 - push {r4, lr} - sub sp, #0xc - ldr r0, _080C2BD4 - ldr r0, [r0] - ldr r1, _080C2BD8 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080C2BE8 - ldr r0, _080C2BDC - ldrb r1, [r0, #1] - ldr r0, _080C2BE0 - str r0, [sp] - movs r0, #1 - rsbs r0, r0, #0 - str r0, [sp, #4] - ldr r0, _080C2BE4 - str r0, [sp, #8] - movs r0, #1 - movs r2, #0x14 - movs r3, #0x1e - bl AddTextPrinterParameterized3 - b _080C2C04 - .align 2, 0 -_080C2BD4: .4byte gUnknown_2039988 -_080C2BD8: .4byte 0x00000516 -_080C2BDC: .4byte gUnknown_8546775 -_080C2BE0: .4byte gUnknown_854676C -_080C2BE4: .4byte gUnknown_85CC31F -_080C2BE8: - ldr r0, _080C2C40 - ldrb r1, [r0, #1] - ldr r0, _080C2C44 - str r0, [sp] - movs r0, #1 - rsbs r0, r0, #0 - str r0, [sp, #4] - ldr r0, _080C2C48 - str r0, [sp, #8] - movs r0, #1 - movs r2, #0x10 - movs r3, #0x22 - bl AddTextPrinterParameterized3 -_080C2C04: - ldr r0, _080C2C40 - ldrb r1, [r0, #1] - ldr r2, _080C2C4C - ldr r0, _080C2C50 - ldr r4, [r0] - ldr r3, _080C2C54 - adds r0, r4, r3 - ldrb r0, [r0] - adds r2, r0, r2 - ldrb r2, [r2] - ldr r3, _080C2C58 - adds r0, r0, r3 - ldrb r3, [r0] - ldr r0, _080C2C44 - str r0, [sp] - movs r0, #1 - rsbs r0, r0, #0 - str r0, [sp, #4] - movs r0, #0xaa - lsls r0, r0, #3 - adds r4, r4, r0 - str r4, [sp, #8] - movs r0, #1 - bl AddTextPrinterParameterized3 - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C2C40: .4byte gUnknown_8546775 -_080C2C44: .4byte gUnknown_854676C -_080C2C48: .4byte gUnknown_85CC31F -_080C2C4C: .4byte gUnknown_85467A0 -_080C2C50: .4byte gUnknown_2039988 -_080C2C54: .4byte 0x00000517 -_080C2C58: .4byte gUnknown_85467A2 - thumb_func_end sub_080C2BA4 - - thumb_func_start Task_PrintTestData -Task_PrintTestData: @ 0x080C2C5C - push {r4, r5, r6, lr} - sub sp, #0x14 - ldr r4, _080C2CB4 - ldr r0, [r4] - ldr r1, _080C2CB8 - adds r0, r0, r1 - ldrh r1, [r0] - add r0, sp, #0xc - movs r2, #2 - movs r3, #5 - bl sub_080089D8 - ldr r0, [r4] - ldr r1, _080C2CBC - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080C2CCC - ldr r0, _080C2CC0 - ldrb r6, [r0, #1] - ldr r5, _080C2CC4 - str r5, [sp] - movs r4, #1 - rsbs r4, r4, #0 - str r4, [sp, #4] - ldr r0, _080C2CC8 - str r0, [sp, #8] - movs r0, #1 - adds r1, r6, #0 - movs r2, #0x82 - movs r3, #0xb - bl AddTextPrinterParameterized3 - str r5, [sp] - str r4, [sp, #4] - add r0, sp, #0xc - str r0, [sp, #8] - movs r0, #1 - adds r1, r6, #0 - movs r2, #0xa6 - movs r3, #0xb - bl AddTextPrinterParameterized3 - b _080C2CFE - .align 2, 0 -_080C2CB4: .4byte gUnknown_2039988 -_080C2CB8: .4byte 0x0000052E -_080C2CBC: .4byte 0x00000516 -_080C2CC0: .4byte gUnknown_8546775 -_080C2CC4: .4byte gUnknown_854676C -_080C2CC8: .4byte gUnknown_85CC323 -_080C2CCC: - ldr r0, _080C2D08 - ldrb r6, [r0, #1] - ldr r5, _080C2D0C - str r5, [sp] - movs r4, #1 - rsbs r4, r4, #0 - str r4, [sp, #4] - ldr r0, _080C2D10 - str r0, [sp, #8] - movs r0, #1 - adds r1, r6, #0 - movs r2, #0x73 - movs r3, #0xa - bl AddTextPrinterParameterized3 - str r5, [sp] - str r4, [sp, #4] - add r1, sp, #0xc - str r1, [sp, #8] - movs r0, #1 - adds r1, r6, #0 - movs r2, #0x99 - movs r3, #0xa - bl AddTextPrinterParameterized3 -_080C2CFE: - add sp, #0x14 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080C2D08: .4byte gUnknown_8546775 -_080C2D0C: .4byte gUnknown_854676C -_080C2D10: .4byte gUnknown_85CC323 - thumb_func_end Task_PrintTestData - - thumb_func_start sub_080C2D14 -sub_080C2D14: @ 0x080C2D14 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - ldr r7, _080C2D94 - ldr r4, _080C2D98 - ldr r0, [r4] - ldr r1, _080C2D9C - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r7, #0 - movs r2, #0 - movs r3, #6 - bl sub_080089D8 - ldr r0, [r4] - ldr r1, _080C2DA0 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080C2DB4 - ldr r6, _080C2DA4 - ldrb r1, [r6, #1] - ldr r5, _080C2DA8 - str r5, [sp] - movs r4, #1 - rsbs r4, r4, #0 - str r4, [sp, #4] - ldr r0, _080C2DAC - str r0, [sp, #8] - movs r0, #1 - movs r2, #0x14 - movs r3, #0x38 - bl AddTextPrinterParameterized3 - adds r0, r7, #0 - bl StringLength - lsls r0, r0, #0x10 - lsrs r0, r0, #0xd - movs r1, #0x78 - rsbs r1, r1, #0 - adds r2, r1, #0 - subs r2, r2, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r6, [r6] - str r5, [sp] - str r4, [sp, #4] - str r7, [sp, #8] - movs r0, #1 - adds r1, r6, #0 - movs r3, #0x38 - bl AddTextPrinterParameterized3 - str r5, [sp] - str r4, [sp, #4] - ldr r0, _080C2DB0 - str r0, [sp, #8] - movs r0, #1 - adds r1, r6, #0 - movs r2, #0x8a - movs r3, #0x38 - bl AddTextPrinterParameterized3 - b _080C2E08 - .align 2, 0 -_080C2D94: .4byte gUnknown_2021C7C -_080C2D98: .4byte gUnknown_2039988 -_080C2D9C: .4byte 0x00000544 -_080C2DA0: .4byte 0x00000517 -_080C2DA4: .4byte gUnknown_8546775 -_080C2DA8: .4byte gUnknown_854676C -_080C2DAC: .4byte gUnknown_85CC329 -_080C2DB0: .4byte gUnknown_85CC32F -_080C2DB4: - ldr r6, _080C2E10 - ldrb r1, [r6, #1] - ldr r5, _080C2E14 - str r5, [sp] - movs r4, #1 - rsbs r4, r4, #0 - str r4, [sp, #4] - ldr r0, _080C2E18 - str r0, [sp, #8] - movs r0, #1 - movs r2, #0x10 - movs r3, #0x3a - bl AddTextPrinterParameterized3 - adds r0, r7, #0 - bl StringLength - lsls r0, r0, #0x10 - lsrs r0, r0, #0xd - movs r2, #0x6c - subs r2, r2, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r6, [r6] - str r5, [sp] - str r4, [sp, #4] - str r7, [sp, #8] - movs r0, #1 - adds r1, r6, #0 - movs r3, #0x3a - bl AddTextPrinterParameterized3 - str r5, [sp] - str r4, [sp, #4] - ldr r0, _080C2E1C - str r0, [sp, #8] - movs r0, #1 - adds r1, r6, #0 - movs r2, #0x6e - movs r3, #0x3a - bl AddTextPrinterParameterized3 -_080C2E08: - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080C2E10: .4byte gUnknown_8546775 -_080C2E14: .4byte gUnknown_854676C -_080C2E18: .4byte gUnknown_85CC329 -_080C2E1C: .4byte gUnknown_85CC32F - thumb_func_end sub_080C2D14 - - thumb_func_start GetCaughtMonsCount -GetCaughtMonsCount: @ 0x080C2E20 - push {lr} - bl IsNationalPokedexEnabled - cmp r0, #0 - bne _080C2E32 - movs r0, #1 - bl GetHoennPokedexCount - b _080C2E38 -_080C2E32: - movs r0, #1 - bl GetNationalPokedexCount -_080C2E38: - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - thumb_func_end GetCaughtMonsCount - - thumb_func_start sub_080C2E40 -sub_080C2E40: @ 0x080C2E40 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - ldr r0, _080C2ECC - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C2F44 - ldr r7, _080C2ED0 - ldr r4, _080C2ED4 - ldr r0, [r4] - ldr r1, _080C2ED8 - adds r0, r0, r1 - ldrh r1, [r0] - adds r0, r7, #0 - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - ldr r0, [r4] - ldr r1, _080C2EDC - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080C2EF0 - ldr r6, _080C2EE0 - ldrb r1, [r6, #1] - ldr r5, _080C2EE4 - str r5, [sp] - movs r4, #1 - rsbs r4, r4, #0 - str r4, [sp, #4] - ldr r0, _080C2EE8 - str r0, [sp, #8] - movs r0, #1 - movs r2, #0x14 - movs r3, #0x48 - bl AddTextPrinterParameterized3 - adds r0, r7, #0 - bl StringLength - lsls r0, r0, #0x10 - lsrs r0, r0, #0xd - movs r1, #0x78 - rsbs r1, r1, #0 - adds r2, r1, #0 - subs r2, r2, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r6, [r6] - str r5, [sp] - str r4, [sp, #4] - str r7, [sp, #8] - movs r0, #1 - adds r1, r6, #0 - movs r3, #0x48 - bl AddTextPrinterParameterized3 - str r5, [sp] - str r4, [sp, #4] - ldr r0, _080C2EEC - str r0, [sp, #8] - movs r0, #1 - adds r1, r6, #0 - movs r2, #0x8a - movs r3, #0x48 - bl AddTextPrinterParameterized3 - b _080C2F44 - .align 2, 0 -_080C2ECC: .4byte 0x00000861 -_080C2ED0: .4byte gUnknown_2021C7C -_080C2ED4: .4byte gUnknown_2039988 -_080C2ED8: .4byte 0x0000052C -_080C2EDC: .4byte 0x00000517 -_080C2EE0: .4byte gUnknown_8546775 -_080C2EE4: .4byte gUnknown_854676C -_080C2EE8: .4byte gUnknown_85CC331 -_080C2EEC: .4byte gUnknown_85CC339 -_080C2EF0: - ldr r6, _080C2F4C - ldrb r1, [r6, #1] - ldr r5, _080C2F50 - str r5, [sp] - movs r4, #1 - rsbs r4, r4, #0 - str r4, [sp, #4] - ldr r0, _080C2F54 - str r0, [sp, #8] - movs r0, #1 - movs r2, #0x10 - movs r3, #0x4a - bl AddTextPrinterParameterized3 - adds r0, r7, #0 - bl StringLength - lsls r0, r0, #0x10 - lsrs r0, r0, #0xd - movs r2, #0x6c - subs r2, r2, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r6, [r6] - str r5, [sp] - str r4, [sp, #4] - str r7, [sp, #8] - movs r0, #1 - adds r1, r6, #0 - movs r3, #0x4a - bl AddTextPrinterParameterized3 - str r5, [sp] - str r4, [sp, #4] - ldr r0, _080C2F58 - str r0, [sp, #8] - movs r0, #1 - adds r1, r6, #0 - movs r2, #0x6e - movs r3, #0x4a - bl AddTextPrinterParameterized3 -_080C2F44: - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080C2F4C: .4byte gUnknown_8546775 -_080C2F50: .4byte gUnknown_854676C -_080C2F54: .4byte gUnknown_85CC331 -_080C2F58: .4byte gUnknown_85CC339 - thumb_func_end sub_080C2E40 - - thumb_func_start WindowFunc_DrawDialogFrameWithCustomTileAndPalette -WindowFunc_DrawDialogFrameWithCustomTileAndPalette: @ 0x080C2F5C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - ldr r0, _080C2F84 - ldr r2, [r0] - ldrb r1, [r2, #5] - adds r6, r0, #0 - cmp r1, #0 - beq _080C2F88 - movs r1, #0xa6 - lsls r1, r1, #3 - adds r0, r2, r1 - ldrh r5, [r0] - adds r1, #2 - adds r0, r2, r1 - ldrh r0, [r0] - b _080C2F90 - .align 2, 0 -_080C2F84: .4byte gUnknown_2039988 -_080C2F88: - ldr r0, _080C2FF0 - ldr r0, [r0] - ldrh r5, [r0, #0xe] - ldrb r0, [r0, #0x10] -_080C2F90: - mov sl, r0 - ldr r0, _080C2FF4 - cmp r5, r0 - bls _080C2F9A - adds r5, r0, #0 -_080C2F9A: - mov r2, sl - cmp r2, #0x3b - bls _080C2FA4 - movs r0, #0x3b - mov sl, r0 -_080C2FA4: - ldr r1, _080C2FF8 - ldr r0, [r6] - ldr r4, _080C2FFC - adds r0, r0, r4 - ldrb r0, [r0] - adds r1, r0, r1 - ldrb r2, [r1] - ldr r1, _080C3000 - adds r0, r0, r1 - ldrb r3, [r0] - movs r0, #0x32 - str r0, [sp] - movs r0, #0xc - str r0, [sp, #4] - movs r0, #1 - movs r1, #0 - bl sub_08003A34 - ldr r0, [r6] - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0 - bne _080C3010 - ldr r0, _080C3004 - ldrb r1, [r0, #1] - ldr r0, _080C3008 - str r0, [sp] - movs r0, #1 - rsbs r0, r0, #0 - str r0, [sp, #4] - ldr r0, _080C300C - str r0, [sp, #8] - movs r0, #1 - movs r2, #0x14 - movs r3, #0x58 - bl AddTextPrinterParameterized3 - b _080C302C - .align 2, 0 -_080C2FF0: .4byte gUnknown_3005AF0 -_080C2FF4: .4byte 0x000003E7 -_080C2FF8: .4byte gUnknown_85467AC -_080C2FFC: .4byte 0x00000517 -_080C3000: .4byte gUnknown_85467B2 -_080C3004: .4byte gUnknown_8546775 -_080C3008: .4byte gUnknown_854676C -_080C300C: .4byte gUnknown_85CC341 -_080C3010: - ldr r0, _080C30DC - ldrb r1, [r0, #1] - ldr r0, _080C30E0 - str r0, [sp] - movs r0, #1 - rsbs r0, r0, #0 - str r0, [sp, #4] - ldr r0, _080C30E4 - str r0, [sp, #8] - movs r0, #1 - movs r2, #0x10 - movs r3, #0x5a - bl AddTextPrinterParameterized3 -_080C302C: - ldr r0, _080C30E8 - adds r1, r5, #0 - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - ldr r0, _080C30DC - ldrb r7, [r0] - ldr r1, _080C30EC - ldr r2, _080C30F0 - mov sb, r2 - ldr r0, [r2] - ldr r2, _080C30F4 - mov r8, r2 - add r0, r8 - ldrb r0, [r0] - adds r1, r0, r1 - ldrb r2, [r1] - ldr r6, _080C30F8 - adds r0, r0, r6 - ldrb r3, [r0] - ldr r0, _080C30E0 - str r0, [sp] - movs r5, #1 - rsbs r5, r5, #0 - str r5, [sp, #4] - ldr r1, _080C30E8 - str r1, [sp, #8] - movs r0, #1 - adds r1, r7, #0 - bl AddTextPrinterParameterized3 - ldr r1, _080C30FC - mov r2, sb - ldr r4, [r2] - mov r2, r8 - adds r0, r4, r2 - ldrb r0, [r0] - adds r1, r0, r1 - ldrb r2, [r1] - adds r0, r0, r6 - ldrb r3, [r0] - ldr r1, _080C3100 - ldrb r0, [r4, #7] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp] - str r5, [sp, #4] - ldr r0, _080C3104 - str r0, [sp, #8] - movs r0, #1 - adds r1, r7, #0 - bl AddTextPrinterParameterized3 - ldr r0, _080C30E8 - mov r1, sl - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - ldr r1, _080C3108 - mov r2, sb - ldr r0, [r2] - add r0, r8 - ldrb r0, [r0] - adds r1, r0, r1 - ldrb r2, [r1] - adds r0, r0, r6 - ldrb r3, [r0] - ldr r0, _080C30E0 - str r0, [sp] - str r5, [sp, #4] - ldr r1, _080C30E8 - str r1, [sp, #8] - movs r0, #1 - adds r1, r7, #0 - bl AddTextPrinterParameterized3 - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080C30DC: .4byte gUnknown_8546775 -_080C30E0: .4byte gUnknown_854676C -_080C30E4: .4byte gUnknown_85CC341 -_080C30E8: .4byte gUnknown_2021C7C -_080C30EC: .4byte gUnknown_85467AC -_080C30F0: .4byte gUnknown_2039988 -_080C30F4: .4byte 0x00000517 -_080C30F8: .4byte gUnknown_85467B2 -_080C30FC: .4byte gUnknown_85467AE -_080C3100: .4byte gUnknown_85467A4 -_080C3104: .4byte gUnknown_85CC33C -_080C3108: .4byte gUnknown_85467B0 - thumb_func_end WindowFunc_DrawDialogFrameWithCustomTileAndPalette - - thumb_func_start sub_080C310C -sub_080C310C: @ 0x080C310C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - movs r0, #1 - movs r1, #0 - bl GetFontAttribute - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r7, _080C31E8 - ldr r1, [r7] - ldrb r0, [r1, #5] - cmp r0, #0 - beq _080C31DC - ldr r0, _080C31EC - mov r8, r0 - ldr r4, _080C31F0 - adds r0, r1, r4 - ldrb r0, [r0] - add r0, r8 - ldrb r3, [r0] - ldr r0, _080C31F4 - str r0, [sp] - movs r5, #1 - rsbs r5, r5, #0 - str r5, [sp, #4] - adds r0, r1, #0 - adds r0, #0x19 - str r0, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r2, #0xa - bl AddTextPrinterParameterized3 - ldr r0, [r7] - adds r0, #0x19 - bl StringLength - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r0, #1 - adds r2, r0, #0 - muls r2, r6, r2 - adds r2, #0xa - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r1, [r7] - adds r0, r1, r4 - ldrb r0, [r0] - add r0, r8 - ldrb r3, [r0] - ldr r0, _080C31F4 - str r0, [sp] - str r5, [sp, #4] - adds r1, #0x21 - str r1, [sp, #8] - movs r0, #1 - movs r1, #1 - bl AddTextPrinterParameterized3 - ldr r0, _080C31F8 - mov r8, r0 - ldr r1, [r7] - adds r0, r1, r4 - ldrb r0, [r0] - add r0, r8 - ldrb r3, [r0] - ldr r0, _080C31F4 - str r0, [sp] - str r5, [sp, #4] - adds r1, #0x29 - str r1, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r2, #0xa - bl AddTextPrinterParameterized3 - ldr r0, [r7] - adds r0, #0x29 - bl StringLength - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r0, #1 - adds r2, r0, #0 - muls r2, r6, r2 - adds r2, #0xa - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r1, [r7] - adds r4, r1, r4 - ldrb r0, [r4] - add r0, r8 - ldrb r3, [r0] - ldr r0, _080C31F4 - str r0, [sp] - str r5, [sp, #4] - adds r1, #0x31 - str r1, [sp, #8] - movs r0, #1 - movs r1, #1 - bl AddTextPrinterParameterized3 -_080C31DC: - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080C31E8: .4byte gUnknown_2039988 -_080C31EC: .4byte gUnknown_85467B4 -_080C31F0: .4byte 0x00000517 -_080C31F4: .4byte gUnknown_854676C -_080C31F8: .4byte gUnknown_85467B6 - thumb_func_end sub_080C310C - - thumb_func_start sub_080C31FC -sub_080C31FC: @ 0x080C31FC - push {r4, lr} - ldr r4, _080C3230 - ldr r1, [r4] - adds r0, r1, #0 - adds r0, #0x39 - movs r2, #0xaa - lsls r2, r2, #3 - adds r1, r1, r2 - bl StringCopy - ldr r4, [r4] - ldr r1, _080C3234 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _080C3228 - adds r0, r4, #0 - adds r0, #0x39 - ldr r1, _080C3238 - movs r2, #0xa - bl StringAppendN -_080C3228: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C3230: .4byte gUnknown_2039988 -_080C3234: .4byte 0x00000516 -_080C3238: .4byte gUnknown_85CC350 - thumb_func_end sub_080C31FC - - thumb_func_start sub_080C323C -sub_080C323C: @ 0x080C323C - push {r4, r5, lr} - sub sp, #0xc - ldr r5, _080C3270 - ldr r2, [r5] - ldr r1, _080C3274 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080C3280 - ldr r0, _080C3278 - ldrb r1, [r0, #1] - ldr r0, _080C327C - str r0, [sp] - movs r0, #1 - rsbs r0, r0, #0 - str r0, [sp, #4] - adds r0, r2, #0 - adds r0, #0x39 - str r0, [sp, #8] - movs r0, #1 - movs r2, #0x82 - movs r3, #0xa - bl AddTextPrinterParameterized3 - b _080C32B0 - .align 2, 0 -_080C3270: .4byte gUnknown_2039988 -_080C3274: .4byte 0x00000517 -_080C3278: .4byte gUnknown_8546775 -_080C327C: .4byte gUnknown_854676C -_080C3280: - adds r1, r2, #0 - adds r1, #0x39 - movs r4, #1 - rsbs r4, r4, #0 - movs r0, #1 - adds r2, r4, #0 - bl sub_08005DAC - movs r2, #0xd8 - subs r2, r2, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r0, _080C32B8 - ldrb r1, [r0, #1] - ldr r0, _080C32BC - str r0, [sp] - str r4, [sp, #4] - ldr r0, [r5] - adds r0, #0x39 - str r0, [sp, #8] - movs r0, #1 - movs r3, #0xa - bl AddTextPrinterParameterized3 -_080C32B0: - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080C32B8: .4byte gUnknown_8546775 -_080C32BC: .4byte gUnknown_854676C - thumb_func_end sub_080C323C - - thumb_func_start PrintLinkResultsNumsOnCard -PrintLinkResultsNumsOnCard: @ 0x080C32C0 - push {r4, lr} - ldr r4, _080C3314 - ldr r1, [r4] - ldrb r0, [r1, #0xb] - cmp r0, #0 - beq _080C330C - ldr r0, _080C3318 - ldr r2, _080C331C - adds r1, r1, r2 - ldrh r1, [r1] - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - ldr r0, _080C3320 - ldr r1, [r4] - movs r2, #0xa5 - lsls r2, r2, #3 - adds r1, r1, r2 - ldrh r1, [r1] - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - ldr r0, _080C3324 - ldr r1, [r4] - ldr r2, _080C3328 - adds r1, r1, r2 - ldrh r1, [r1] - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - ldr r0, [r4] - adds r0, #0x7f - ldr r1, _080C332C - bl StringExpandPlaceholders -_080C330C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C3314: .4byte gUnknown_2039988 -_080C3318: .4byte gUnknown_2021C40 -_080C331C: .4byte 0x00000526 -_080C3320: .4byte gUnknown_2021C54 -_080C3324: .4byte gUnknown_2021C68 -_080C3328: .4byte 0x0000052A -_080C332C: .4byte gUnknown_85467B8 - thumb_func_end PrintLinkResultsNumsOnCard - - thumb_func_start sub_080C3330 -sub_080C3330: @ 0x080C3330 - push {r4, r5, r6, lr} - sub sp, #0xc - ldr r6, _080C3384 - ldr r3, [r6] - ldrb r0, [r3, #0xb] - cmp r0, #0 - beq _080C337C - ldr r5, _080C3388 - ldrb r1, [r5, #1] - ldr r2, _080C338C - ldr r4, _080C3390 - adds r0, r3, r4 - ldrb r0, [r0] - adds r0, r0, r2 - ldrb r2, [r0] - ldr r0, _080C3394 - str r0, [sp] - movs r4, #1 - rsbs r4, r4, #0 - str r4, [sp, #4] - ldr r0, _080C3398 - str r0, [sp, #8] - movs r0, #1 - movs r3, #0x23 - bl AddTextPrinterParameterized3 - ldrb r1, [r5] - ldr r0, _080C339C - str r0, [sp] - str r4, [sp, #4] - ldr r0, [r6] - adds r0, #0x7f - str r0, [sp, #8] - movs r0, #1 - movs r2, #0x91 - movs r3, #0x23 - bl AddTextPrinterParameterized3 -_080C337C: - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080C3384: .4byte gUnknown_2039988 -_080C3388: .4byte gUnknown_8546775 -_080C338C: .4byte gUnknown_85467C1 -_080C3390: .4byte 0x00000517 -_080C3394: .4byte gUnknown_854676C -_080C3398: .4byte gUnknown_85CC35A -_080C339C: .4byte gUnknown_854676F - thumb_func_end sub_080C3330 - - thumb_func_start PrintHofTimeOnCard -PrintHofTimeOnCard: @ 0x080C33A0 - push {r4, lr} - ldr r4, _080C33F0 - ldr r1, [r4] - ldrb r0, [r1, #0xc] - cmp r0, #0 - beq _080C33EA - adds r0, r1, #0 - adds r0, #0xc5 - ldr r2, _080C33F4 - ldr r3, _080C33F8 - adds r1, r1, r3 - ldrb r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl StringCopy - ldr r1, [r4] - ldr r2, _080C33FC - adds r0, r1, r2 - ldr r3, _080C3400 - adds r1, r1, r3 - ldrh r1, [r1] - movs r2, #0 - movs r3, #4 - bl sub_080089D8 - ldr r1, [r4] - ldr r2, _080C3404 - adds r0, r1, r2 - ldr r3, _080C3408 - adds r1, r1, r3 - ldrh r1, [r1] - movs r2, #0 - movs r3, #4 - bl sub_080089D8 -_080C33EA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C33F0: .4byte gUnknown_2039988 -_080C33F4: .4byte gUnknown_85467C4 -_080C33F8: .4byte 0x00000516 -_080C33FC: .4byte 0x00000151 -_080C3400: .4byte 0x00000534 -_080C3404: .4byte 0x00000197 -_080C3408: .4byte 0x00000536 - thumb_func_end PrintHofTimeOnCard - - thumb_func_start sub_080C340C -sub_080C340C: @ 0x080C340C - push {r4, r5, r6, r7, lr} - sub sp, #0xc - ldr r7, _080C3494 - ldr r3, [r7] - ldrb r0, [r3, #0xc] - cmp r0, #0 - beq _080C348A - ldr r5, _080C3498 - ldrb r1, [r5, #1] - ldr r2, _080C349C - ldr r4, _080C34A0 - adds r0, r3, r4 - ldrb r0, [r0] - adds r0, r0, r2 - ldrb r2, [r0] - ldr r6, _080C34A4 - str r6, [sp] - movs r4, #1 - rsbs r4, r4, #0 - str r4, [sp, #4] - adds r0, r3, #0 - adds r0, #0xc5 - str r0, [sp, #8] - movs r0, #1 - movs r3, #0x33 - bl AddTextPrinterParameterized3 - ldrb r5, [r5] - str r6, [sp] - str r4, [sp, #4] - ldr r0, _080C34A8 - str r0, [sp, #8] - movs r0, #1 - adds r1, r5, #0 - movs r2, #0x6e - movs r3, #0x33 - bl AddTextPrinterParameterized3 - ldr r6, _080C34AC - str r6, [sp] - str r4, [sp, #4] - ldr r0, [r7] - ldr r1, _080C34B0 - adds r0, r0, r1 - str r0, [sp, #8] - movs r0, #1 - adds r1, r5, #0 - movs r2, #0x82 - movs r3, #0x33 - bl AddTextPrinterParameterized3 - str r6, [sp] - str r4, [sp, #4] - ldr r0, [r7] - ldr r4, _080C34B4 - adds r0, r0, r4 - str r0, [sp, #8] - movs r0, #1 - adds r1, r5, #0 - movs r2, #0xb9 - movs r3, #0x33 - bl AddTextPrinterParameterized3 -_080C348A: - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080C3494: .4byte gUnknown_2039988 -_080C3498: .4byte gUnknown_8546775 -_080C349C: .4byte gUnknown_85467C1 -_080C34A0: .4byte 0x00000517 -_080C34A4: .4byte gUnknown_854676C -_080C34A8: .4byte gUnknown_85CC379 -_080C34AC: .4byte gUnknown_854676F -_080C34B0: .4byte 0x00000151 -_080C34B4: .4byte 0x00000197 - thumb_func_end sub_080C340C - - thumb_func_start PrintTradesNumOnCard -PrintTradesNumOnCard: @ 0x080C34B8 - push {lr} - ldr r0, _080C34DC - ldr r1, [r0] - ldrb r0, [r1, #0x10] - cmp r0, #0 - beq _080C34D8 - ldr r2, _080C34E0 - adds r0, r1, r2 - movs r2, #0xa8 - lsls r2, r2, #3 - adds r1, r1, r2 - ldrh r1, [r1] - movs r2, #1 - movs r3, #5 - bl sub_080089D8 -_080C34D8: - pop {r0} - bx r0 - .align 2, 0 -_080C34DC: .4byte gUnknown_2039988 -_080C34E0: .4byte 0x00000223 - thumb_func_end PrintTradesNumOnCard - - thumb_func_start sub_080C34E4 -sub_080C34E4: @ 0x080C34E4 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - ldr r7, _080C353C - ldr r3, [r7] - ldrb r0, [r3, #0x10] - cmp r0, #0 - beq _080C3574 - ldr r6, _080C3540 - ldrb r1, [r6, #1] - ldr r2, _080C3544 - ldr r4, _080C3548 - adds r0, r3, r4 - ldrb r0, [r0] - adds r0, r0, r2 - ldrb r2, [r0] - ldr r0, _080C354C - str r0, [sp] - movs r5, #1 - rsbs r5, r5, #0 - str r5, [sp, #4] - ldr r0, _080C3550 - str r0, [sp, #8] - movs r0, #1 - movs r3, #0x43 - bl AddTextPrinterParameterized3 - ldr r2, [r7] - adds r4, r2, r4 - ldrb r0, [r4] - cmp r0, #0 - beq _080C355C - ldrb r1, [r6] - ldr r0, _080C3554 - str r0, [sp] - str r5, [sp, #4] - ldr r3, _080C3558 - adds r0, r2, r3 - str r0, [sp, #8] - movs r0, #1 - movs r2, #0xa8 - movs r3, #0x43 - bl AddTextPrinterParameterized3 - b _080C3574 - .align 2, 0 -_080C353C: .4byte gUnknown_2039988 -_080C3540: .4byte gUnknown_8546775 -_080C3544: .4byte gUnknown_85467C1 -_080C3548: .4byte 0x00000517 -_080C354C: .4byte gUnknown_854676C -_080C3550: .4byte gUnknown_85CC383 -_080C3554: .4byte gUnknown_854676F -_080C3558: .4byte 0x00000223 -_080C355C: - ldrb r1, [r6] - ldr r0, _080C357C - str r0, [sp] - str r5, [sp, #4] - ldr r3, _080C3580 - adds r0, r2, r3 - str r0, [sp, #8] - movs r0, #1 - movs r2, #0xa0 - movs r3, #0x43 - bl AddTextPrinterParameterized3 -_080C3574: - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080C357C: .4byte gUnknown_854676F -_080C3580: .4byte 0x00000223 - thumb_func_end sub_080C34E4 - - thumb_func_start PrintUnionNumOnCard -PrintUnionNumOnCard: @ 0x080C3584 - push {lr} - ldr r0, _080C35B0 - ldr r2, [r0] - ldr r1, _080C35B4 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080C35AA - ldr r3, _080C35B8 - adds r0, r2, r3 - ldr r1, [r0] - cmp r1, #0 - beq _080C35AA - ldr r3, _080C35BC - adds r0, r2, r3 - movs r2, #1 - movs r3, #5 - bl sub_080089D8 -_080C35AA: - pop {r0} - bx r0 - .align 2, 0 -_080C35B0: .4byte gUnknown_2039988 -_080C35B4: .4byte 0x00000516 -_080C35B8: .4byte 0x0000055C -_080C35BC: .4byte 0x000002AF - thumb_func_end PrintUnionNumOnCard - - thumb_func_start sub_080C35C0 -sub_080C35C0: @ 0x080C35C0 - push {r4, r5, r6, lr} - sub sp, #0xc - ldr r6, _080C3624 - ldr r3, [r6] - ldr r1, _080C3628 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080C361C - ldr r2, _080C362C - adds r0, r3, r2 - ldr r0, [r0] - cmp r0, #0 - beq _080C361C - ldr r5, _080C3630 - ldrb r1, [r5, #1] - ldr r2, _080C3634 - ldr r4, _080C3638 - adds r0, r3, r4 - ldrb r0, [r0] - adds r0, r0, r2 - ldrb r2, [r0] - ldr r0, _080C363C - str r0, [sp] - movs r4, #1 - rsbs r4, r4, #0 - str r4, [sp, #4] - ldr r0, _080C3640 - str r0, [sp, #8] - movs r0, #1 - movs r3, #0x63 - bl AddTextPrinterParameterized3 - ldrb r1, [r5] - ldr r0, _080C3644 - str r0, [sp] - str r4, [sp, #4] - ldr r0, [r6] - ldr r2, _080C3648 - adds r0, r0, r2 - str r0, [sp, #8] - movs r0, #1 - movs r2, #0x72 - movs r3, #0x63 - bl AddTextPrinterParameterized3 -_080C361C: - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080C3624: .4byte gUnknown_2039988 -_080C3628: .4byte 0x00000516 -_080C362C: .4byte 0x0000055C -_080C3630: .4byte gUnknown_8546775 -_080C3634: .4byte gUnknown_85467C1 -_080C3638: .4byte 0x00000517 -_080C363C: .4byte gUnknown_854676C -_080C3640: .4byte gUnknown_85CC39E -_080C3644: .4byte gUnknown_854676F -_080C3648: .4byte 0x000002AF - thumb_func_end sub_080C35C0 - - thumb_func_start PrintBerryCrushNumOnCard -PrintBerryCrushNumOnCard: @ 0x080C364C - push {lr} - ldr r0, _080C3678 - ldr r2, [r0] - ldr r1, _080C367C - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080C3674 - movs r3, #0xac - lsls r3, r3, #3 - adds r0, r2, r3 - ldr r1, [r0] - cmp r1, #0 - beq _080C3674 - ldr r3, _080C3680 - adds r0, r2, r3 - movs r2, #1 - movs r3, #5 - bl sub_080089D8 -_080C3674: - pop {r0} - bx r0 - .align 2, 0 -_080C3678: .4byte gUnknown_2039988 -_080C367C: .4byte 0x00000516 -_080C3680: .4byte 0x0000033B - thumb_func_end PrintBerryCrushNumOnCard - - thumb_func_start sub_080C3684 -sub_080C3684: @ 0x080C3684 - push {r4, r5, r6, lr} - sub sp, #0xc - ldr r6, _080C36EC - ldr r3, [r6] - ldr r1, _080C36F0 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080C36E2 - movs r2, #0xac - lsls r2, r2, #3 - adds r0, r3, r2 - ldr r0, [r0] - cmp r0, #0 - beq _080C36E2 - ldr r5, _080C36F4 - ldrb r1, [r5, #1] - ldr r2, _080C36F8 - ldr r4, _080C36FC - adds r0, r3, r4 - ldrb r0, [r0] - adds r0, r0, r2 - ldrb r2, [r0] - ldr r0, _080C3700 - str r0, [sp] - movs r4, #1 - rsbs r4, r4, #0 - str r4, [sp, #4] - ldr r0, _080C3704 - str r0, [sp, #8] - movs r0, #1 - movs r3, #0x53 - bl AddTextPrinterParameterized3 - ldrb r1, [r5] - ldr r0, _080C3708 - str r0, [sp] - str r4, [sp, #4] - ldr r0, [r6] - ldr r2, _080C370C - adds r0, r0, r2 - str r0, [sp, #8] - movs r0, #1 - movs r2, #0xa0 - movs r3, #0x53 - bl AddTextPrinterParameterized3 -_080C36E2: - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080C36EC: .4byte gUnknown_2039988 -_080C36F0: .4byte 0x00000516 -_080C36F4: .4byte gUnknown_8546775 -_080C36F8: .4byte gUnknown_85467C1 -_080C36FC: .4byte 0x00000517 -_080C3700: .4byte gUnknown_854676C -_080C3704: .4byte gUnknown_85CC390 -_080C3708: .4byte gUnknown_854676F -_080C370C: .4byte 0x0000033B - thumb_func_end sub_080C3684 - - thumb_func_start PrintPokeblocksNumOnCard -PrintPokeblocksNumOnCard: @ 0x080C3710 - push {r4, lr} - ldr r4, _080C3748 - ldr r1, [r4] - ldr r2, _080C374C - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080C3742 - ldr r0, _080C3750 - adds r1, r1, r0 - ldrh r0, [r1] - cmp r0, #0 - beq _080C3742 - ldr r0, _080C3754 - ldrh r1, [r1] - movs r2, #1 - movs r3, #5 - bl sub_080089D8 - ldr r0, [r4] - ldr r1, _080C3758 - adds r0, r0, r1 - ldr r1, _080C375C - bl StringExpandPlaceholders -_080C3742: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C3748: .4byte gUnknown_2039988 -_080C374C: .4byte 0x00000516 -_080C3750: .4byte 0x0000053E -_080C3754: .4byte gUnknown_2021C40 -_080C3758: .4byte 0x00000381 -_080C375C: .4byte gUnknown_85CC3CF - thumb_func_end PrintPokeblocksNumOnCard - - thumb_func_start sub_080C3760 -sub_080C3760: @ 0x080C3760 - push {r4, r5, r6, lr} - sub sp, #0xc - ldr r6, _080C37C4 - ldr r3, [r6] - ldr r1, _080C37C8 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _080C37BC - ldr r2, _080C37CC - adds r0, r3, r2 - ldrh r0, [r0] - cmp r0, #0 - beq _080C37BC - ldr r5, _080C37D0 - ldrb r1, [r5, #1] - ldr r2, _080C37D4 - ldr r4, _080C37D8 - adds r0, r3, r4 - ldrb r0, [r0] - adds r0, r0, r2 - ldrb r2, [r0] - ldr r0, _080C37DC - str r0, [sp] - movs r4, #1 - rsbs r4, r4, #0 - str r4, [sp, #4] - ldr r0, _080C37E0 - str r0, [sp, #8] - movs r0, #1 - movs r3, #0x53 - bl AddTextPrinterParameterized3 - ldrb r1, [r5] - ldr r0, _080C37E4 - str r0, [sp] - str r4, [sp, #4] - ldr r0, [r6] - ldr r2, _080C37E8 - adds r0, r0, r2 - str r0, [sp, #8] - movs r0, #1 - movs r2, #0xa8 - movs r3, #0x53 - bl AddTextPrinterParameterized3 -_080C37BC: - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080C37C4: .4byte gUnknown_2039988 -_080C37C8: .4byte 0x00000516 -_080C37CC: .4byte 0x0000053E -_080C37D0: .4byte gUnknown_8546775 -_080C37D4: .4byte gUnknown_85467C1 -_080C37D8: .4byte 0x00000517 -_080C37DC: .4byte gUnknown_854676C -_080C37E0: .4byte gUnknown_85CC3BF -_080C37E4: .4byte gUnknown_854676F -_080C37E8: .4byte 0x00000381 - thumb_func_end sub_080C3760 - - thumb_func_start sub_080C37EC -sub_080C37EC: @ 0x080C37EC - push {lr} - ldr r0, _080C3818 - ldr r1, [r0] - ldr r2, _080C381C - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080C3814 - ldr r3, _080C3820 - adds r2, r1, r3 - ldrh r0, [r2] - cmp r0, #0 - beq _080C3814 - ldr r3, _080C3824 - adds r0, r1, r3 - ldrh r1, [r2] - movs r2, #1 - movs r3, #5 - bl sub_080089D8 -_080C3814: - pop {r0} - bx r0 - .align 2, 0 -_080C3818: .4byte gUnknown_2039988 -_080C381C: .4byte 0x00000516 -_080C3820: .4byte 0x0000053C -_080C3824: .4byte 0x000003C7 - thumb_func_end sub_080C37EC - - thumb_func_start sub_080C3828 -sub_080C3828: @ 0x080C3828 - push {r4, r5, r6, lr} - sub sp, #0xc - ldr r6, _080C388C - ldr r3, [r6] - ldr r1, _080C3890 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _080C3884 - ldr r2, _080C3894 - adds r0, r3, r2 - ldrh r0, [r0] - cmp r0, #0 - beq _080C3884 - ldr r5, _080C3898 - ldrb r1, [r5, #1] - ldr r2, _080C389C - ldr r4, _080C38A0 - adds r0, r3, r4 - ldrb r0, [r0] - adds r0, r0, r2 - ldrb r2, [r0] - ldr r0, _080C38A4 - str r0, [sp] - movs r4, #1 - rsbs r4, r4, #0 - str r4, [sp, #4] - ldr r0, _080C38A8 - str r0, [sp, #8] - movs r0, #1 - movs r3, #0x63 - bl AddTextPrinterParameterized3 - ldrb r1, [r5] - ldr r0, _080C38AC - str r0, [sp] - str r4, [sp, #4] - ldr r0, [r6] - ldr r2, _080C38B0 - adds r0, r0, r2 - str r0, [sp, #8] - movs r0, #1 - movs r2, #0xa8 - movs r3, #0x63 - bl AddTextPrinterParameterized3 -_080C3884: - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080C388C: .4byte gUnknown_2039988 -_080C3890: .4byte 0x00000516 -_080C3894: .4byte 0x0000053C -_080C3898: .4byte gUnknown_8546775 -_080C389C: .4byte gUnknown_85467C1 -_080C38A0: .4byte 0x00000517 -_080C38A4: .4byte gUnknown_854676C -_080C38A8: .4byte gUnknown_85CC3D9 -_080C38AC: .4byte gUnknown_854676F -_080C38B0: .4byte 0x000003C7 - thumb_func_end sub_080C3828 - - thumb_func_start PrintBattleFacilityNumsOnCard -PrintBattleFacilityNumsOnCard: @ 0x080C38B4 - push {r4, lr} - ldr r4, _080C38D0 - ldr r1, [r4] - ldr r2, _080C38D4 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #1 - beq _080C38D8 - cmp r0, #1 - ble _080C3946 - cmp r0, #2 - beq _080C3924 - b _080C3946 - .align 2, 0 -_080C38D0: .4byte gUnknown_2039988 -_080C38D4: .4byte 0x00000516 -_080C38D8: - ldrb r0, [r1, #0xd] - cmp r0, #0 - beq _080C3946 - ldr r0, _080C3910 - movs r2, #0xa7 - lsls r2, r2, #3 - adds r1, r1, r2 - ldrh r1, [r1] - movs r2, #1 - movs r3, #4 - bl sub_080089D8 - ldr r0, _080C3914 - ldr r1, [r4] - ldr r2, _080C3918 - adds r1, r1, r2 - ldrh r1, [r1] - movs r2, #1 - movs r3, #4 - bl sub_080089D8 - ldr r0, [r4] - ldr r1, _080C391C - adds r0, r0, r1 - ldr r1, _080C3920 - bl StringExpandPlaceholders - b _080C3946 - .align 2, 0 -_080C3910: .4byte gUnknown_2021C40 -_080C3914: .4byte gUnknown_2021C54 -_080C3918: .4byte 0x0000053A -_080C391C: .4byte 0x0000040D -_080C3920: .4byte gUnknown_85CC418 -_080C3924: - ldr r2, _080C394C - adds r1, r1, r2 - ldrh r0, [r1] - cmp r0, #0 - beq _080C3946 - ldr r0, _080C3950 - ldrh r1, [r1] - movs r2, #1 - movs r3, #5 - bl sub_080089D8 - ldr r0, [r4] - ldr r1, _080C3954 - adds r0, r0, r1 - ldr r1, _080C3958 - bl StringExpandPlaceholders -_080C3946: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C394C: .4byte 0x00000582 -_080C3950: .4byte gUnknown_2021C40 -_080C3954: .4byte 0x0000040D -_080C3958: .4byte gUnknown_85CC3F8 - thumb_func_end PrintBattleFacilityNumsOnCard - - thumb_func_start sub_080C395C -sub_080C395C: @ 0x080C395C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - ldr r7, _080C397C - ldr r3, [r7] - ldr r1, _080C3980 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, #1 - beq _080C3984 - cmp r0, #1 - ble _080C3A42 - cmp r0, #2 - beq _080C39F8 - b _080C3A42 - .align 2, 0 -_080C397C: .4byte gUnknown_2039988 -_080C3980: .4byte 0x00000516 -_080C3984: - ldrb r0, [r3, #0xd] - cmp r0, #0 - beq _080C3A42 - ldr r5, _080C39DC - ldrb r1, [r5, #1] - ldr r2, _080C39E0 - mov r8, r2 - ldr r4, _080C39E4 - adds r0, r3, r4 - ldrb r0, [r0] - add r0, r8 - ldrb r2, [r0] - ldr r0, _080C39E8 - str r0, [sp] - movs r6, #1 - rsbs r6, r6, #0 - str r6, [sp, #4] - ldr r0, _080C39EC - str r0, [sp, #8] - movs r0, #1 - movs r3, #0x73 - bl AddTextPrinterParameterized3 - ldrb r1, [r5] - ldr r3, [r7] - adds r4, r3, r4 - ldrb r0, [r4] - add r0, r8 - ldrb r2, [r0] - adds r2, #0x50 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r0, _080C39F0 - str r0, [sp] - str r6, [sp, #4] - ldr r4, _080C39F4 - adds r3, r3, r4 - str r3, [sp, #8] - movs r0, #1 - movs r3, #0x73 - bl AddTextPrinterParameterized3 - b _080C3A42 - .align 2, 0 -_080C39DC: .4byte gUnknown_8546775 -_080C39E0: .4byte gUnknown_85467C1 -_080C39E4: .4byte 0x00000517 -_080C39E8: .4byte gUnknown_854676C -_080C39EC: .4byte gUnknown_85CC403 -_080C39F0: .4byte gUnknown_854676F -_080C39F4: .4byte 0x0000040D -_080C39F8: - ldr r1, _080C3A50 - adds r0, r3, r1 - ldrh r0, [r0] - cmp r0, #0 - beq _080C3A42 - ldr r5, _080C3A54 - ldrb r1, [r5, #1] - ldr r2, _080C3A58 - ldr r4, _080C3A5C - adds r0, r3, r4 - ldrb r0, [r0] - adds r0, r0, r2 - ldrb r2, [r0] - ldr r0, _080C3A60 - str r0, [sp] - movs r4, #1 - rsbs r4, r4, #0 - str r4, [sp, #4] - ldr r0, _080C3A64 - str r0, [sp, #8] - movs r0, #1 - movs r3, #0x73 - bl AddTextPrinterParameterized3 - ldrb r1, [r5] - ldr r0, _080C3A68 - str r0, [sp] - str r4, [sp, #4] - ldr r0, [r7] - ldr r2, _080C3A6C - adds r0, r0, r2 - str r0, [sp, #8] - movs r0, #1 - movs r2, #0xa0 - movs r3, #0x73 - bl AddTextPrinterParameterized3 -_080C3A42: - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080C3A50: .4byte 0x00000582 -_080C3A54: .4byte gUnknown_8546775 -_080C3A58: .4byte gUnknown_85467C1 -_080C3A5C: .4byte 0x00000517 -_080C3A60: .4byte gUnknown_854676C -_080C3A64: .4byte gUnknown_85CC3EA -_080C3A68: .4byte gUnknown_854676F -_080C3A6C: .4byte 0x0000040D - thumb_func_end sub_080C395C - - thumb_func_start TrainerCard_PrintPokemonIconsOnCard -TrainerCard_PrintPokemonIconsOnCard: @ 0x080C3A70 - push {r4, r5, lr} - sub sp, #0x20 - ldr r1, _080C3AF8 - add r0, sp, #0x10 - movs r2, #6 - bl memcpy - add r4, sp, #0x18 - ldr r1, _080C3AFC - adds r0, r4, #0 - movs r2, #6 - bl memcpy - ldr r0, _080C3B00 - ldr r0, [r0] - ldr r1, _080C3B04 - adds r0, r0, r1 - ldrb r0, [r0] - adds r5, r4, #0 - cmp r0, #0 - bne _080C3AEE - movs r4, #0 -_080C3A9C: - ldr r0, _080C3B00 - ldr r0, [r0] - lsls r1, r4, #1 - ldr r2, _080C3B08 - adds r0, r0, r2 - adds r1, r0, r1 - ldrh r0, [r1] - cmp r0, #0 - beq _080C3AE4 - bl sub_080D2940 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r4, #0x14 - movs r2, #0xe0 - lsls r2, r2, #0x10 - adds r1, r1, r2 - lsrs r1, r1, #0x10 - adds r2, r5, r4 - ldrb r2, [r2] - adds r2, #3 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r3, #4 - str r3, [sp] - str r3, [sp, #4] - add r0, sp - adds r0, #0x10 - ldrb r0, [r0] - str r0, [sp, #8] - movs r0, #1 - str r0, [sp, #0xc] - movs r0, #3 - movs r3, #0xf - bl WriteSequenceToBgTilemapBuffer -_080C3AE4: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #5 - bls _080C3A9C -_080C3AEE: - add sp, #0x20 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080C3AF8: .4byte gUnknown_85467D0 -_080C3AFC: .4byte gUnknown_85467D6 -_080C3B00: .4byte gUnknown_2039988 -_080C3B04: .4byte 0x00000516 -_080C3B08: .4byte 0x00000574 - thumb_func_end TrainerCard_PrintPokemonIconsOnCard - - thumb_func_start sub_080C3B0C -sub_080C3B0C: @ 0x080C3B0C - push {r4, r5, lr} - sub sp, #4 - ldr r0, _080C3B3C - ldr r4, _080C3B40 - ldr r1, [r4] - ldr r5, _080C3B44 - adds r1, r1, r5 - movs r2, #0x60 - bl CpuSet - ldr r4, [r4] - ldr r1, _080C3B48 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, #1 - beq _080C3B4C - cmp r0, #1 - ble _080C3B84 - cmp r0, #2 - beq _080C3B64 - cmp r0, #3 - beq _080C3B7C - b _080C3B84 - .align 2, 0 -_080C3B3C: .4byte gUnknown_85567A4 -_080C3B40: .4byte gUnknown_2039988 -_080C3B44: .4byte 0x00000454 -_080C3B48: .4byte 0x0000056E -_080C3B4C: - ldr r2, _080C3B60 - adds r0, r4, r2 - movs r1, #0 - str r1, [sp] - movs r1, #0x60 - movs r2, #0 - movs r3, #0 - bl TintPalette_CustomTone - b _080C3B84 - .align 2, 0 -_080C3B60: .4byte 0x00000454 -_080C3B64: - adds r0, r4, r5 - movs r2, #0xfa - lsls r2, r2, #1 - movs r3, #0xa5 - lsls r3, r3, #1 - movs r1, #0x9b - lsls r1, r1, #1 - str r1, [sp] - movs r1, #0x60 - bl TintPalette_CustomTone - b _080C3B84 -_080C3B7C: - adds r0, r4, r5 - movs r1, #0x60 - bl TintPalette_SepiaTone -_080C3B84: - ldr r0, _080C3BD8 - ldr r0, [r0] - ldr r1, _080C3BDC - adds r0, r0, r1 - movs r1, #0x50 - movs r2, #0xc0 - bl LoadPalette - movs r4, #0 -_080C3B96: - ldr r0, _080C3BD8 - ldr r0, [r0] - lsls r1, r4, #1 - ldr r2, _080C3BE0 - adds r0, r0, r2 - adds r1, r0, r1 - ldrh r0, [r1] - cmp r0, #0 - beq _080C3BC4 - movs r1, #0 - bl GetMonIconTiles - adds r1, r0, #0 - lsls r3, r4, #0x14 - movs r0, #0x80 - lsls r0, r0, #0xe - adds r3, r3, r0 - lsrs r3, r3, #0x10 - movs r0, #3 - movs r2, #0x80 - lsls r2, r2, #2 - bl LoadBgTiles -_080C3BC4: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #5 - bls _080C3B96 - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080C3BD8: .4byte gUnknown_2039988 -_080C3BDC: .4byte 0x00000454 -_080C3BE0: .4byte 0x00000574 - thumb_func_end sub_080C3B0C - - thumb_func_start sub_080C3BE4 -sub_080C3BE4: @ 0x080C3BE4 - push {r4, lr} - sub sp, #0x14 - ldr r1, _080C3C60 - add r0, sp, #0x10 - movs r2, #4 - bl memcpy - ldr r0, _080C3C64 - ldr r1, [r0] - ldr r2, _080C3C68 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _080C3C58 - adds r2, #0x56 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #1 - bne _080C3C58 - movs r4, #0 -_080C3C0C: - ldr r0, _080C3C64 - ldr r0, [r0] - movs r1, #0xae - lsls r1, r1, #3 - adds r0, r0, r1 - adds r0, r0, r4 - ldrb r3, [r0] - cmp r3, #0 - beq _080C3C4E - lsls r1, r4, #0x12 - movs r2, #0xa0 - lsls r2, r2, #0x11 - adds r1, r1, r2 - lsrs r1, r1, #0x10 - lsls r2, r4, #1 - adds r2, r2, r4 - adds r2, #2 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r0, #2 - str r0, [sp] - str r0, [sp, #4] - subs r0, r3, #1 - add r0, sp - adds r0, #0x10 - ldrb r0, [r0] - str r0, [sp, #8] - movs r0, #1 - str r0, [sp, #0xc] - movs r0, #3 - movs r3, #2 - bl WriteSequenceToBgTilemapBuffer -_080C3C4E: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #2 - bls _080C3C0C -_080C3C58: - add sp, #0x14 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C3C60: .4byte gUnknown_85467DC -_080C3C64: .4byte gUnknown_2039988 -_080C3C68: .4byte 0x00000516 - thumb_func_end sub_080C3BE4 - - thumb_func_start sub_080C3C6C -sub_080C3C6C: @ 0x080C3C6C - push {lr} - ldr r0, _080C3CB0 - movs r1, #0xb0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _080C3CB4 - movs r1, #0xc0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _080C3CB8 - movs r1, #0xd0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _080C3CBC - movs r1, #0xe0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _080C3CC0 - ldr r1, [r0] - ldr r0, _080C3CC4 - adds r1, r1, r0 - movs r2, #0x80 - lsls r2, r2, #3 - movs r0, #3 - movs r3, #0x80 - bl LoadBgTiles - pop {r0} - bx r0 - .align 2, 0 -_080C3CB0: .4byte gUnknown_85461AC -_080C3CB4: .4byte gUnknown_85461CC -_080C3CB8: .4byte gUnknown_85461EC -_080C3CBC: .4byte gUnknown_854620C -_080C3CC0: .4byte gUnknown_2039988 -_080C3CC4: .4byte 0x00001794 - thumb_func_end sub_080C3C6C - - thumb_func_start sub_080C3CC8 -sub_080C3CC8: @ 0x080C3CC8 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl PutWindowTilemap - adds r0, r4, #0 - movs r1, #3 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080C3CC8 - - thumb_func_start SetCardBgsAndPals -SetCardBgsAndPals: @ 0x080C3CE4 - push {r4, lr} - sub sp, #8 - ldr r0, _080C3D00 - ldr r0, [r0] - ldrb r0, [r0, #3] - cmp r0, #4 - bls _080C3CF4 - b _080C3E66 -_080C3CF4: - lsls r0, r0, #2 - ldr r1, _080C3D04 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C3D00: .4byte gUnknown_2039988 -_080C3D04: .4byte _080C3D08 -_080C3D08: @ jump table - .4byte _080C3D1C @ case 0 - .4byte _080C3D34 @ case 1 - .4byte _080C3D54 @ case 2 - .4byte _080C3E0C @ case 3 - .4byte _080C3E34 @ case 4 -_080C3D1C: - ldr r0, _080C3D2C - ldr r1, [r0] - ldr r0, _080C3D30 - adds r1, r1, r0 - movs r2, #0x80 - lsls r2, r2, #3 - movs r0, #3 - b _080C3D42 - .align 2, 0 -_080C3D2C: .4byte gUnknown_2039988 -_080C3D30: .4byte 0x00001394 -_080C3D34: - ldr r0, _080C3D4C - ldr r1, [r0] - ldr r3, _080C3D50 - adds r1, r1, r3 - movs r2, #0xc0 - lsls r2, r2, #5 - movs r0, #0 -_080C3D42: - movs r3, #0 - bl LoadBgTiles - b _080C3E6A - .align 2, 0 -_080C3D4C: .4byte gUnknown_2039988 -_080C3D50: .4byte 0x00001994 -_080C3D54: - ldr r4, _080C3D9C - ldr r2, [r4] - ldr r1, _080C3DA0 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _080C3DB4 - ldr r1, _080C3DA4 - ldr r3, _080C3DA8 - adds r0, r2, r3 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0 - movs r2, #0x60 - bl LoadPalette - ldr r0, _080C3DAC - movs r1, #0x30 - movs r2, #0x20 - bl LoadPalette - ldr r0, [r4] - movs r1, #0xa4 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _080C3DEC - ldr r0, _080C3DB0 - movs r1, #0x10 - movs r2, #0x20 - bl LoadPalette - b _080C3DEC - .align 2, 0 -_080C3D9C: .4byte gUnknown_2039988 -_080C3DA0: .4byte 0x00000516 -_080C3DA4: .4byte gUnknown_8546744 -_080C3DA8: .4byte 0x00000521 -_080C3DAC: .4byte gUnknown_854614C -_080C3DB0: .4byte gUnknown_854610C -_080C3DB4: - ldr r1, _080C3DF8 - ldr r3, _080C3DFC - adds r0, r2, r3 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0 - movs r2, #0x60 - bl LoadPalette - ldr r0, _080C3E00 - movs r1, #0x30 - movs r2, #0x20 - bl LoadPalette - ldr r0, [r4] - movs r1, #0xa4 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _080C3DEC - ldr r0, _080C3E04 - movs r1, #0x10 - movs r2, #0x20 - bl LoadPalette -_080C3DEC: - ldr r0, _080C3E08 - movs r1, #0x40 - movs r2, #0x20 - bl LoadPalette - b _080C3E6A - .align 2, 0 -_080C3DF8: .4byte gUnknown_8546758 -_080C3DFC: .4byte 0x00000521 -_080C3E00: .4byte gUnknown_854616C -_080C3E04: .4byte gUnknown_854612C -_080C3E08: .4byte gUnknown_854618C -_080C3E0C: - ldr r4, _080C3E28 - ldr r1, [r4] - ldr r3, _080C3E2C - adds r1, r1, r3 - movs r0, #0 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, _080C3E30 - adds r1, r1, r0 - movs r0, #2 - bl SetBgTilemapBuffer - b _080C3E6A - .align 2, 0 -_080C3E28: .4byte gUnknown_2039988 -_080C3E2C: .4byte 0x00003C94 -_080C3E30: .4byte 0x00005C94 -_080C3E34: - movs r4, #0x20 - str r4, [sp] - str r4, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - str r4, [sp, #4] - movs r0, #2 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - str r4, [sp, #4] - movs r0, #3 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 -_080C3E66: - movs r0, #1 - b _080C3E76 -_080C3E6A: - ldr r0, _080C3E80 - ldr r1, [r0] - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] - movs r0, #0 -_080C3E76: - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080C3E80: .4byte gUnknown_2039988 - thumb_func_end SetCardBgsAndPals - - thumb_func_start sub_080C3E84 -sub_080C3E84: @ 0x080C3E84 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - ldr r0, _080C3EBC - ldr r0, [r0] - ldr r1, _080C3EC0 - adds r6, r0, r1 - movs r1, #0 -_080C3E92: - movs r2, #0 - lsls r5, r1, #0x10 - asrs r1, r5, #0x10 - lsls r3, r1, #5 - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r4, r0, #1 -_080C3EA0: - lsls r0, r2, #0x10 - asrs r1, r0, #0x10 - adds r2, r0, #0 - cmp r1, #0x1d - bgt _080C3EC4 - adds r0, r3, r1 - lsls r0, r0, #1 - adds r0, r0, r6 - adds r1, r4, r1 - lsls r1, r1, #1 - adds r1, r1, r7 - ldrh r1, [r1] - b _080C3ECC - .align 2, 0 -_080C3EBC: .4byte gUnknown_2039988 -_080C3EC0: .4byte 0x00005C94 -_080C3EC4: - adds r0, r3, r1 - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r1, [r7] -_080C3ECC: - strh r1, [r0] - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r2, r1 - lsrs r2, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1f - ble _080C3EA0 - adds r0, r5, r1 - lsrs r1, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x13 - ble _080C3E92 - movs r0, #2 - bl CopyBgTilemapBufferToVram - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080C3E84 - - thumb_func_start sub_080C3EF4 -sub_080C3EF4: @ 0x080C3EF4 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - ldr r0, _080C3F2C - ldr r0, [r0] - ldr r1, _080C3F30 - adds r6, r0, r1 - movs r1, #0 -_080C3F02: - movs r2, #0 - lsls r5, r1, #0x10 - asrs r1, r5, #0x10 - lsls r3, r1, #5 - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r4, r0, #1 -_080C3F10: - lsls r0, r2, #0x10 - asrs r1, r0, #0x10 - adds r2, r0, #0 - cmp r1, #0x1d - bgt _080C3F34 - adds r0, r3, r1 - lsls r0, r0, #1 - adds r0, r0, r6 - adds r1, r4, r1 - lsls r1, r1, #1 - adds r1, r1, r7 - ldrh r1, [r1] - b _080C3F3C - .align 2, 0 -_080C3F2C: .4byte gUnknown_2039988 -_080C3F30: .4byte 0x00003C94 -_080C3F34: - adds r0, r3, r1 - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r1, [r7] -_080C3F3C: - strh r1, [r0] - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r2, r1 - lsrs r2, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1f - ble _080C3F10 - adds r0, r5, r1 - lsrs r1, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x13 - ble _080C3F02 - movs r0, #0 - bl CopyBgTilemapBufferToVram - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080C3EF4 - - thumb_func_start TrainerCard_PrintStarsAndBadgesOnCard -TrainerCard_PrintStarsAndBadgesOnCard: @ 0x080C3F64 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - movs r0, #0xc0 - mov r8, r0 - movs r2, #3 - mov sl, r2 - ldr r2, _080C4070 - ldr r4, _080C4074 - ldr r1, [r4] - ldr r3, _080C4078 - adds r0, r1, r3 - ldrb r0, [r0] - adds r0, r0, r2 - ldrb r3, [r0] - ldr r0, _080C407C - adds r1, r1, r0 - ldrb r0, [r1] - str r0, [sp] - movs r0, #1 - str r0, [sp, #4] - movs r0, #4 - str r0, [sp, #8] - movs r0, #3 - movs r1, #0x8f - movs r2, #0xf - bl FillBgTilemapBufferRect - ldr r0, [r4] - ldrb r0, [r0, #5] - cmp r0, #0 - bne _080C4058 - movs r2, #4 - mov sb, r2 - movs r2, #0 - movs r6, #1 -_080C3FB2: - ldr r0, _080C4074 - ldr r1, [r0] - lsls r0, r2, #0x10 - asrs r7, r0, #0x10 - adds r1, #0x11 - adds r1, r1, r7 - ldrb r0, [r1] - cmp r0, #0 - beq _080C4034 - mov r3, sb - lsls r5, r3, #0x18 - lsrs r5, r5, #0x18 - str r6, [sp] - str r6, [sp, #4] - mov r0, sl - str r0, [sp, #8] - movs r0, #3 - mov r1, r8 - adds r2, r5, #0 - movs r3, #0xf - bl FillBgTilemapBufferRect - mov r1, r8 - adds r1, #1 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r4, sb - adds r4, #1 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r6, [sp] - str r6, [sp, #4] - mov r2, sl - str r2, [sp, #8] - movs r0, #3 - adds r2, r4, #0 - movs r3, #0xf - bl FillBgTilemapBufferRect - mov r1, r8 - adds r1, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r6, [sp] - str r6, [sp, #4] - mov r3, sl - str r3, [sp, #8] - movs r0, #3 - adds r2, r5, #0 - movs r3, #0x10 - bl FillBgTilemapBufferRect - mov r1, r8 - adds r1, #0x11 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r6, [sp] - str r6, [sp, #4] - mov r0, sl - str r0, [sp, #8] - movs r0, #3 - adds r2, r4, #0 - movs r3, #0x10 - bl FillBgTilemapBufferRect -_080C4034: - adds r0, r7, #1 - lsls r0, r0, #0x10 - mov r1, r8 - adds r1, #2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r8, r1 - mov r2, sb - lsls r1, r2, #0x10 - movs r3, #0xc0 - lsls r3, r3, #0xa - adds r1, r1, r3 - lsrs r1, r1, #0x10 - mov sb, r1 - lsrs r2, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #7 - ble _080C3FB2 -_080C4058: - movs r0, #3 - bl CopyBgTilemapBufferToVram - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080C4070: .4byte gUnknown_85467E0 -_080C4074: .4byte gUnknown_2039988 -_080C4078: .4byte 0x00000517 -_080C407C: .4byte 0x00000521 - thumb_func_end TrainerCard_PrintStarsAndBadgesOnCard - - thumb_func_start sub_080C4080 -sub_080C4080: @ 0x080C4080 - push {r4, r5, r6, lr} - sub sp, #0xc - ldr r6, _080C4128 - ldr r1, [r6] - ldr r2, _080C412C - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _080C4134 - ldrb r0, [r1, #0x10] - cmp r0, #0 - beq _080C40BE - movs r4, #1 - str r4, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r0, #3 - movs r1, #0x8d - movs r2, #0x1b - movs r3, #9 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r0, #3 - movs r1, #0x9d - movs r2, #0x1b - movs r3, #0xa - bl FillBgTilemapBufferRect -_080C40BE: - ldr r0, [r6] - ldr r1, _080C4130 - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #0 - beq _080C40F0 - movs r4, #1 - str r4, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r0, #3 - movs r1, #0x8d - movs r2, #0x15 - movs r3, #0xd - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r0, #3 - movs r1, #0x9d - movs r2, #0x15 - movs r3, #0xe - bl FillBgTilemapBufferRect -_080C40F0: - ldr r0, [r6] - movs r2, #0xac - lsls r2, r2, #3 - adds r0, r0, r2 - ldr r0, [r0] - cmp r0, #0 - beq _080C41EA - movs r4, #1 - str r4, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r0, #3 - movs r1, #0x8d - movs r2, #0x1b - movs r3, #0xb - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r0, #3 - movs r1, #0x9d - movs r2, #0x1b - movs r3, #0xc - bl FillBgTilemapBufferRect - b _080C41EA - .align 2, 0 -_080C4128: .4byte gUnknown_2039988 -_080C412C: .4byte 0x00000516 -_080C4130: .4byte 0x0000055C -_080C4134: - ldrb r0, [r1, #0x10] - cmp r0, #0 - beq _080C4162 - movs r4, #1 - str r4, [sp] - str r4, [sp, #4] - movs r5, #0 - str r5, [sp, #8] - movs r0, #3 - movs r1, #0x8d - movs r2, #0x1b - movs r3, #9 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #3 - movs r1, #0x9d - movs r2, #0x1b - movs r3, #0xa - bl FillBgTilemapBufferRect -_080C4162: - ldr r0, [r6] - ldr r1, _080C41F8 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0 - beq _080C4196 - movs r4, #1 - str r4, [sp] - str r4, [sp, #4] - movs r5, #0 - str r5, [sp, #8] - movs r0, #3 - movs r1, #0x8d - movs r2, #0x1b - movs r3, #0xd - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #3 - movs r1, #0x9d - movs r2, #0x1b - movs r3, #0xe - bl FillBgTilemapBufferRect -_080C4196: - ldr r0, [r6] - ldrb r0, [r0, #0xd] - cmp r0, #0 - beq _080C41EA - movs r4, #1 - str r4, [sp] - str r4, [sp, #4] - movs r5, #0 - str r5, [sp, #8] - movs r0, #3 - movs r1, #0x8d - movs r2, #0x11 - movs r3, #0xf - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #3 - movs r1, #0x9d - movs r2, #0x11 - movs r3, #0x10 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #3 - movs r1, #0x8c - movs r2, #0x1b - movs r3, #0xf - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #3 - movs r1, #0x9c - movs r2, #0x1b - movs r3, #0x10 - bl FillBgTilemapBufferRect -_080C41EA: - movs r0, #3 - bl CopyBgTilemapBufferToVram - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080C41F8: .4byte 0x0000053C - thumb_func_end sub_080C4080 - - thumb_func_start sub_080C41FC -sub_080C41FC: @ 0x080C41FC - push {lr} - ldr r3, _080C4230 - ldr r1, [r3] - ldrb r0, [r1, #6] - adds r0, #1 - strb r0, [r1, #6] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x3c - bls _080C422A - ldr r1, [r3] - movs r0, #0 - strb r0, [r1, #6] - ldr r2, [r3] - ldrb r0, [r2, #7] - movs r1, #1 - eors r0, r1 - strb r0, [r2, #7] - ldr r0, [r3] - ldr r1, _080C4234 - adds r0, r0, r1 - movs r1, #1 - strb r1, [r0] -_080C422A: - pop {r0} - bx r0 - .align 2, 0 -_080C4230: .4byte gUnknown_2039988 -_080C4234: .4byte 0x00000515 - thumb_func_end sub_080C41FC - - thumb_func_start GetTrainerCardStars -GetTrainerCardStars: @ 0x080C4238 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080C4248 - movs r1, #0x64 - muls r0, r1, r0 - adds r0, r0, r2 - ldrb r0, [r0, #1] - bx lr - .align 2, 0 -_080C4248: .4byte gUnknown_20397F8 - thumb_func_end GetTrainerCardStars - - thumb_func_start sub_080C424C -sub_080C424C: @ 0x080C424C - push {r4, lr} - ldr r4, _080C426C - adds r0, r4, #0 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl _call_via_r4 - ldr r0, _080C4270 - bl SetHBlankCallback - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C426C: .4byte Phase2Task_GridSquares -_080C4270: .4byte HblankCb_TrainerCard - thumb_func_end sub_080C424C - - thumb_func_start sub_080C4274 -sub_080C4274: @ 0x080C4274 - push {lr} - ldr r0, _080C4288 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _080C428C - movs r0, #0 - b _080C428E - .align 2, 0 -_080C4288: .4byte Phase2Task_GridSquares -_080C428C: - movs r0, #1 -_080C428E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080C4274 - - thumb_func_start Phase2Task_GridSquares -Phase2Task_GridSquares: @ 0x080C4294 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _080C42C4 - ldr r2, _080C42C8 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_080C42A6: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C42A6 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080C42C4: .4byte gUnknown_8546788 -_080C42C8: .4byte gUnknown_3005B60 - thumb_func_end Phase2Task_GridSquares - - thumb_func_start sub_080C42CC -sub_080C42CC: @ 0x080C42CC - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - bl HideBg - movs r0, #3 - bl HideBg - bl ScanlineEffect_Stop - bl ScanlineEffect_Clear - movs r1, #0 - ldr r0, _080C4308 - movs r2, #0 - movs r3, #0xf0 - lsls r3, r3, #3 - adds r0, r0, r3 -_080C42F0: - strh r2, [r0] - adds r0, #2 - adds r1, #1 - cmp r1, #0x9f - bls _080C42F0 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080C4308: .4byte gUnknown_20388C8 - thumb_func_end sub_080C42CC - - thumb_func_start sub_080C430C -sub_080C430C: @ 0x080C430C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov r8, r0 - ldr r0, _080C4338 - ldr r1, [r0] - movs r0, #0 - strb r0, [r1, #9] - mov r0, r8 - ldrh r1, [r0, #0xa] - movs r2, #0xa - ldrsh r0, [r0, r2] - cmp r0, #0x4c - ble _080C433C - movs r0, #0x4d - mov r3, r8 - strh r0, [r3, #0xa] - b _080C4342 - .align 2, 0 -_080C4338: .4byte gUnknown_2039988 -_080C433C: - adds r0, r1, #7 - mov r4, r8 - strh r0, [r4, #0xa] -_080C4342: - ldr r0, _080C442C - ldr r0, [r0] - mov r2, r8 - ldrh r1, [r2, #0xa] - ldr r3, _080C4430 - adds r0, r0, r3 - strh r1, [r0] - ldrh r0, [r2, #0xa] - bl sub_080C2918 - mov r4, r8 - movs r0, #0xa - ldrsh r7, [r4, r0] - movs r0, #0xa0 - subs r0, r0, r7 - mov sb, r0 - subs r4, r0, r7 - rsbs r0, r7, #0 - lsls r6, r0, #0x10 - movs r0, #0xa0 - lsls r0, r0, #0x10 - adds r1, r4, #0 - bl __udivsi3 - adds r5, r0, #0 - ldr r1, _080C4434 - adds r5, r5, r1 - adds r0, r5, #0 - muls r0, r4, r0 - adds r0, r6, r0 - str r0, [sp] - adds r0, r5, #0 - adds r1, r4, #0 - bl __udivsi3 - mov sl, r0 - lsls r5, r5, #1 - movs r2, #0 - cmp r2, r7 - bhs _080C43AC - ldr r3, _080C4438 -_080C4394: - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - lsls r1, r0, #1 - adds r1, r1, r3 - rsbs r2, r0, #0 - strh r2, [r1] - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, r7 - blo _080C4394 -_080C43AC: - lsls r1, r2, #0x10 - mov r3, sb - lsls r0, r3, #0x10 - asrs r3, r0, #0x10 - ldr r4, _080C442C - mov sb, r4 - ldr r4, [sp] - lsrs r7, r4, #0x10 - cmp r1, r0 - bge _080C43E4 - ldr r0, _080C4438 - mov ip, r0 - adds r4, r3, #0 -_080C43C6: - lsrs r3, r6, #0x10 - adds r6, r6, r5 - mov r2, sl - subs r5, r5, r2 - asrs r0, r1, #0x10 - lsls r1, r0, #1 - add r1, ip - strh r3, [r1] - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - lsls r1, r2, #0x10 - asrs r0, r1, #0x10 - cmp r0, r4 - blt _080C43C6 -_080C43E4: - adds r3, r7, #0 - lsls r1, r2, #0x10 - asrs r0, r1, #0x10 - cmp r0, #0x9f - bgt _080C4402 - ldr r2, _080C4438 -_080C43F0: - asrs r0, r1, #0x10 - lsls r1, r0, #1 - adds r1, r1, r2 - strh r3, [r1] - adds r0, #1 - lsls r1, r0, #0x10 - asrs r0, r1, #0x10 - cmp r0, #0x9f - ble _080C43F0 -_080C4402: - mov r3, sb - ldr r0, [r3] - movs r1, #1 - strb r1, [r0, #9] - mov r4, r8 - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0x4c - ble _080C441A - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080C441A: - movs r0, #0 - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080C442C: .4byte gUnknown_2039988 -_080C4430: .4byte 0x00007C94 -_080C4434: .4byte 0xFFFF0000 -_080C4438: .4byte gUnknown_20388C8 - thumb_func_end sub_080C430C - - thumb_func_start sub_080C443C -sub_080C443C: @ 0x080C443C - push {r4, r5, lr} - sub sp, #8 - adds r5, r0, #0 - ldr r4, _080C4468 - ldr r1, [r4] - movs r0, #0 - strb r0, [r1, #9] - bl sub_08086EFC - adds r2, r4, #0 - cmp r0, #1 - beq _080C453C -_080C4454: - ldr r3, [r2] - ldrb r0, [r3, #4] - cmp r0, #4 - bhi _080C4518 - lsls r0, r0, #2 - ldr r1, _080C446C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C4468: .4byte gUnknown_2039988 -_080C446C: .4byte _080C4470 -_080C4470: @ jump table - .4byte _080C4484 @ case 0 - .4byte _080C44A0 @ case 1 - .4byte _080C44C0 @ case 2 - .4byte _080C44E4 @ case 3 - .4byte _080C4502 @ case 4 -_080C4484: - movs r0, #1 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #0x20 - str r0, [sp] - str r0, [sp, #4] - movs r0, #3 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - b _080C452A -_080C44A0: - ldr r0, [r2] - ldrb r0, [r0, #8] - cmp r0, #0 - bne _080C44B4 - bl PrintStringsOnCardPage2 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C452A - b _080C453C -_080C44B4: - bl sub_080C2A68 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C452A - b _080C453C -_080C44C0: - ldr r0, _080C44D4 - ldr r1, [r0] - ldrb r0, [r1, #8] - cmp r0, #0 - bne _080C44DC - ldr r2, _080C44D8 - adds r0, r1, r2 - bl sub_080C3EF4 - b _080C452A - .align 2, 0 -_080C44D4: .4byte gUnknown_2039988 -_080C44D8: .4byte 0x00000A34 -_080C44DC: - movs r0, #1 - bl sub_080C3CC8 - b _080C452A -_080C44E4: - ldr r0, _080C44F4 - ldr r0, [r0] - ldrb r0, [r0, #8] - cmp r0, #0 - bne _080C44F8 - bl sub_080C4080 - b _080C452A - .align 2, 0 -_080C44F4: .4byte gUnknown_2039988 -_080C44F8: - movs r0, #2 - movs r1, #0 - bl FillWindowPixelBuffer - b _080C452A -_080C4502: - ldr r0, _080C4514 - ldr r0, [r0] - ldrb r0, [r0, #8] - cmp r0, #0 - beq _080C452A - bl sub_080C48F4 - b _080C452A - .align 2, 0 -_080C4514: .4byte gUnknown_2039988 -_080C4518: - ldrh r0, [r5, #8] - adds r0, #1 - movs r1, #0 - strh r0, [r5, #8] - movs r0, #1 - strb r0, [r3, #9] - ldr r0, [r2] - strb r1, [r0, #4] - b _080C453C -_080C452A: - ldr r2, _080C4548 - ldr r1, [r2] - ldrb r0, [r1, #4] - adds r0, #1 - strb r0, [r1, #4] - ldr r0, _080C454C - ldrb r0, [r0] - cmp r0, #0 - beq _080C4454 -_080C453C: - movs r0, #0 - add sp, #8 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080C4548: .4byte gUnknown_2039988 -_080C454C: .4byte gUnknown_30031C4 - thumb_func_end sub_080C443C - - thumb_func_start sub_080C4550 -sub_080C4550: @ 0x080C4550 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080C45AC - ldr r1, [r4] - movs r0, #0 - strb r0, [r1, #9] - ldr r0, [r4] - ldrb r0, [r0, #8] - cmp r0, #0 - beq _080C4582 - movs r0, #2 - bl sub_080C3CC8 - ldr r0, [r4] - ldr r1, _080C45B0 - adds r0, r0, r1 - bl sub_080C3E84 - ldr r0, [r4] - ldr r1, _080C45B4 - adds r0, r0, r1 - bl sub_080C3EF4 - bl TrainerCard_PrintStarsAndBadgesOnCard -_080C4582: - movs r0, #1 - bl sub_080C3CC8 - ldr r2, [r4] - ldrb r0, [r2, #8] - movs r1, #1 - eors r0, r1 - strb r0, [r2, #8] - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - ldr r1, [r4] - movs r0, #1 - strb r0, [r1, #9] - movs r0, #0xfa - bl sub_080A306C - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080C45AC: .4byte gUnknown_2039988 -_080C45B0: .4byte 0x00000EE4 -_080C45B4: .4byte 0x00000584 - thumb_func_end sub_080C4550 - - thumb_func_start sub_080C45B8 -sub_080C45B8: @ 0x080C45B8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov r8, r0 - ldr r0, _080C45E0 - ldr r0, [r0] - movs r2, #0 - strb r2, [r0, #9] - mov r0, r8 - ldrh r1, [r0, #0xa] - movs r3, #0xa - ldrsh r0, [r0, r3] - cmp r0, #5 - bgt _080C45E4 - mov r4, r8 - strh r2, [r4, #0xa] - b _080C45EA - .align 2, 0 -_080C45E0: .4byte gUnknown_2039988 -_080C45E4: - subs r0, r1, #5 - mov r1, r8 - strh r0, [r1, #0xa] -_080C45EA: - ldr r0, _080C46D4 - ldr r0, [r0] - mov r2, r8 - ldrh r1, [r2, #0xa] - ldr r3, _080C46D8 - adds r0, r0, r3 - strh r1, [r0] - ldrh r0, [r2, #0xa] - bl sub_080C2918 - mov r4, r8 - movs r0, #0xa - ldrsh r7, [r4, r0] - movs r0, #0xa0 - subs r0, r0, r7 - mov sb, r0 - subs r4, r0, r7 - rsbs r0, r7, #0 - lsls r6, r0, #0x10 - movs r0, #0xa0 - lsls r0, r0, #0x10 - adds r1, r4, #0 - bl __udivsi3 - adds r5, r0, #0 - ldr r1, _080C46DC - adds r5, r5, r1 - adds r0, r5, #0 - muls r0, r4, r0 - adds r0, r6, r0 - str r0, [sp] - adds r0, r5, #0 - adds r1, r4, #0 - bl __udivsi3 - mov sl, r0 - lsrs r5, r5, #1 - movs r2, #0 - cmp r2, r7 - bhs _080C4654 - ldr r3, _080C46E0 -_080C463C: - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - lsls r1, r0, #1 - adds r1, r1, r3 - rsbs r2, r0, #0 - strh r2, [r1] - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, r7 - blo _080C463C -_080C4654: - lsls r1, r2, #0x10 - mov r3, sb - lsls r0, r3, #0x10 - asrs r3, r0, #0x10 - ldr r4, _080C46D4 - mov sb, r4 - ldr r4, [sp] - lsrs r7, r4, #0x10 - cmp r1, r0 - bge _080C468A - ldr r0, _080C46E0 - mov ip, r0 - adds r4, r3, #0 -_080C466E: - lsrs r3, r6, #0x10 - adds r6, r6, r5 - add r5, sl - asrs r0, r1, #0x10 - lsls r1, r0, #1 - add r1, ip - strh r3, [r1] - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - lsls r1, r2, #0x10 - asrs r0, r1, #0x10 - cmp r0, r4 - blt _080C466E -_080C468A: - adds r3, r7, #0 - lsls r1, r2, #0x10 - asrs r0, r1, #0x10 - cmp r0, #0x9f - bgt _080C46A8 - ldr r2, _080C46E0 -_080C4696: - asrs r0, r1, #0x10 - lsls r1, r0, #1 - adds r1, r1, r2 - strh r3, [r1] - adds r0, #1 - lsls r1, r0, #0x10 - asrs r0, r1, #0x10 - cmp r0, #0x9f - ble _080C4696 -_080C46A8: - mov r1, sb - ldr r0, [r1] - movs r1, #1 - strb r1, [r0, #9] - mov r2, r8 - movs r3, #0xa - ldrsh r0, [r2, r3] - cmp r0, #0 - bgt _080C46C0 - ldrh r0, [r2, #8] - adds r0, #1 - strh r0, [r2, #8] -_080C46C0: - movs r0, #0 - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080C46D4: .4byte gUnknown_2039988 -_080C46D8: .4byte 0x00007C94 -_080C46DC: .4byte 0xFFFF0000 -_080C46E0: .4byte gUnknown_20388C8 - thumb_func_end sub_080C45B8 - - thumb_func_start ResetGpuRegs -ResetGpuRegs: @ 0x080C46E4 - push {lr} - movs r0, #1 - bl ShowBg - movs r0, #3 - bl ShowBg - movs r0, #0 - bl SetHBlankCallback - ldr r0, _080C470C - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_080C470C: .4byte Phase2Task_GridSquares - thumb_func_end ResetGpuRegs - - thumb_func_start sub_080C4710 -sub_080C4710: @ 0x080C4710 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080C4738 - ldr r0, _080C473C - bl AllocZeroed - adds r1, r0, #0 - str r1, [r4] - ldr r2, _080C4740 - adds r0, r1, r2 - str r5, [r0] - ldr r0, _080C4744 - cmp r5, r0 - bne _080C474C - movs r0, #0xa3 - lsls r0, r0, #3 - adds r1, r1, r0 - ldr r0, _080C4748 - b _080C4754 - .align 2, 0 -_080C4738: .4byte gUnknown_2039988 -_080C473C: .4byte 0x00007C98 -_080C4740: .4byte 0x0000051C -_080C4744: .4byte CB2_ReshowFrontierPass -_080C4748: .4byte 0x00007FFF -_080C474C: - movs r2, #0xa3 - lsls r2, r2, #3 - adds r1, r1, r2 - movs r0, #0 -_080C4754: - strh r0, [r1] - bl InUnionRoom - adds r3, r0, #0 - cmp r3, #1 - bne _080C476C - ldr r1, _080C4768 - ldr r0, [r1] - strb r3, [r0, #5] - b _080C4776 - .align 2, 0 -_080C4768: .4byte gUnknown_2039988 -_080C476C: - ldr r2, _080C4790 - ldr r1, [r2] - movs r0, #0 - strb r0, [r1, #5] - adds r1, r2, #0 -_080C4776: - ldr r0, [r1] - movs r1, #0xa4 - lsls r1, r1, #3 - adds r0, r0, r1 - bl TrainerCard_GenerateCardForLinkPlayer - ldr r0, _080C4794 - bl SetMainCallback2 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080C4790: .4byte gUnknown_2039988 -_080C4794: .4byte CB2_InitTrainerCard - thumb_func_end sub_080C4710 - - thumb_func_start ShowTrainerCardInLink -ShowTrainerCardInLink: @ 0x080C4798 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r5, _080C47D8 - ldr r0, _080C47DC - bl AllocZeroed - str r0, [r5] - ldr r2, _080C47E0 - adds r1, r0, r2 - str r6, [r1] - movs r1, #1 - strb r1, [r0, #5] - ldr r0, [r5] - movs r1, #0xa4 - lsls r1, r1, #3 - adds r0, r0, r1 - ldr r2, _080C47E4 - movs r1, #0x64 - muls r1, r4, r1 - adds r1, r1, r2 - movs r2, #0x64 - bl memcpy - ldr r0, _080C47E8 - bl SetMainCallback2 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080C47D8: .4byte gUnknown_2039988 -_080C47DC: .4byte 0x00007C98 -_080C47E0: .4byte 0x0000051C -_080C47E4: .4byte gUnknown_20397F8 -_080C47E8: .4byte CB2_InitTrainerCard - thumb_func_end ShowTrainerCardInLink - - thumb_func_start sub_080C47EC -sub_080C47EC: @ 0x080C47EC - push {r4, r5, lr} - ldr r4, _080C4848 - ldr r0, [r4] - movs r1, #0 - strb r1, [r0] - ldr r2, [r4] - ldr r0, _080C484C - ldr r0, [r0] - ldrb r0, [r0, #0x12] - strb r0, [r2, #6] - ldr r0, [r4] - strb r1, [r0, #7] - ldr r0, [r4] - strb r1, [r0, #8] - ldr r0, [r4] - ldr r2, _080C4850 - adds r0, r0, r2 - strb r1, [r0] - bl GetSetCardType - ldr r1, [r4] - ldr r3, _080C4854 - adds r1, r1, r3 - strb r0, [r1] - movs r5, #0 -_080C481E: - lsls r0, r5, #3 - adds r0, #0x19 - ldr r1, [r4] - adds r0, r1, r0 - lsls r2, r5, #1 - movs r3, #0xa9 - lsls r3, r3, #3 - adds r1, r1, r3 - adds r1, r1, r2 - ldrh r1, [r1] - bl CopyEasyChatWord - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #3 - bls _080C481E - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080C4848: .4byte gUnknown_2039988 -_080C484C: .4byte gUnknown_3005AF0 -_080C4850: .4byte 0x00000514 -_080C4854: .4byte 0x00000516 - thumb_func_end sub_080C47EC - - thumb_func_start GetSetCardType -GetSetCardType: @ 0x080C4858 - push {lr} - ldr r0, _080C4874 - ldr r1, [r0] - cmp r1, #0 - bne _080C4884 - ldr r0, _080C4878 - ldrb r1, [r0] - subs r0, r1, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _080C487C - movs r0, #0 - b _080C48C6 - .align 2, 0 -_080C4874: .4byte gUnknown_2039988 -_080C4878: .4byte gUnknown_829BDA4 -_080C487C: - cmp r1, #3 - beq _080C48C4 - movs r0, #1 - b _080C48C6 -_080C4884: - movs r2, #0xab - lsls r2, r2, #3 - adds r0, r1, r2 - ldrb r2, [r0] - subs r0, r2, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _080C48A4 - ldr r0, _080C48A0 - adds r1, r1, r0 - movs r0, #0 - strb r0, [r1] - b _080C48C6 - .align 2, 0 -_080C48A0: .4byte 0x00000517 -_080C48A4: - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - beq _080C48BC - ldr r2, _080C48B8 - adds r1, r1, r2 - movs r0, #1 - strb r0, [r1] - b _080C48C6 - .align 2, 0 -_080C48B8: .4byte 0x00000517 -_080C48BC: - ldr r0, _080C48CC - adds r1, r1, r0 - movs r0, #1 - strb r0, [r1] -_080C48C4: - movs r0, #2 -_080C48C6: - pop {r1} - bx r1 - .align 2, 0 -_080C48CC: .4byte 0x00000517 - thumb_func_end GetSetCardType - - thumb_func_start VersionToCardType -VersionToCardType: @ 0x080C48D0 - push {lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r2, #0xfc - lsls r2, r2, #0x18 - adds r0, r0, r2 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _080C48E6 - movs r0, #0 - b _080C48F0 -_080C48E6: - cmp r1, #3 - beq _080C48EE - movs r0, #1 - b _080C48F0 -_080C48EE: - movs r0, #2 -_080C48F0: - pop {r1} - bx r1 - thumb_func_end VersionToCardType - - thumb_func_start sub_080C48F4 -sub_080C48F4: @ 0x080C48F4 - push {r4, r5, r6, lr} - sub sp, #8 - bl InUnionRoom - cmp r0, #1 - bne _080C4960 - ldr r0, _080C494C - ldrb r0, [r0] - cmp r0, #1 - bne _080C4960 - ldr r5, _080C4950 - ldr r0, [r5] - ldr r1, _080C4954 - adds r0, r0, r1 - ldrb r0, [r0] - bl sub_0806EA7C - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _080C4958 - ldr r1, [r5] - movs r3, #0xa4 - lsls r3, r3, #3 - adds r2, r1, r3 - ldrb r3, [r2] - lsls r3, r3, #1 - ldr r2, _080C495C - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #2 - adds r3, r3, r1 - adds r1, r3, r4 - ldrb r2, [r1] - adds r4, #1 - adds r3, r3, r4 - ldrb r3, [r3] - movs r1, #8 - str r1, [sp] - movs r1, #2 - str r1, [sp, #4] - movs r1, #1 - bl sub_0818D664 - b _080C49B0 - .align 2, 0 -_080C494C: .4byte gUnknown_30031C4 -_080C4950: .4byte gUnknown_2039988 -_080C4954: .4byte 0x0000056F -_080C4958: .4byte gUnknown_8546778 -_080C495C: .4byte 0x00000517 -_080C4960: - ldr r2, _080C49B8 - ldr r6, _080C49BC - ldr r0, [r6] - movs r5, #0xa4 - lsls r5, r5, #3 - adds r1, r0, r5 - ldr r3, _080C49C0 - adds r0, r0, r3 - ldrb r0, [r0] - lsls r0, r0, #1 - ldrb r1, [r1] - adds r0, r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - bl sub_0806EA7C - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _080C49C4 - ldr r1, [r6] - adds r5, r1, r5 - ldrb r3, [r5] - lsls r3, r3, #1 - ldr r2, _080C49C8 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #2 - adds r3, r3, r1 - adds r1, r3, r4 - ldrb r2, [r1] - adds r4, #1 - adds r3, r3, r4 - ldrb r3, [r3] - movs r1, #8 - str r1, [sp] - movs r1, #2 - str r1, [sp, #4] - movs r1, #1 - bl sub_0818D664 -_080C49B0: - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080C49B8: .4byte gUnknown_8546780 -_080C49BC: .4byte gUnknown_2039988 -_080C49C0: .4byte 0x00000516 -_080C49C4: .4byte gUnknown_8546778 -_080C49C8: .4byte 0x00000517 - thumb_func_end sub_080C48F4 - - thumb_func_start ResetGpuRegsAndBgs -ResetGpuRegsAndBgs: @ 0x080C49CC - push {lr} - sub sp, #8 - movs r0, #0 - movs r1, #0 - bl SetGpuReg - movs r0, #0xe - movs r1, #0 - bl SetGpuReg - movs r0, #0xc - movs r1, #0 - bl SetGpuReg - movs r0, #0xa - movs r1, #0 - bl SetGpuReg - movs r0, #8 - movs r1, #0 - bl SetGpuReg - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x40 - movs r1, #0 - bl SetGpuReg - movs r0, #0x44 - movs r1, #0 - bl SetGpuReg - movs r0, #0x42 - movs r1, #0 - bl SetGpuReg - movs r0, #0x46 - movs r1, #0 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0 - bl SetGpuReg - movs r0, #0x4a - movs r1, #0 - bl SetGpuReg - mov r1, sp - movs r0, #0 - strh r0, [r1] - movs r1, #0xc0 - lsls r1, r1, #0x13 - ldr r2, _080C4AB8 - mov r0, sp - bl CpuSet - movs r0, #0 - str r0, [sp, #4] - add r0, sp, #4 - movs r1, #0xe0 - lsls r1, r1, #0x13 - ldr r2, _080C4ABC - bl CpuSet - add sp, #8 - pop {r0} - bx r0 - .align 2, 0 -_080C4AB8: .4byte 0x0100C000 -_080C4ABC: .4byte 0x05000100 - thumb_func_end ResetGpuRegsAndBgs - - thumb_func_start ShowFrontierPass -ShowFrontierPass: @ 0x080C4AC0 - push {lr} - bl AllocateFrontierPassData - ldr r0, _080C4AD0 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080C4AD0: .4byte CB2_InitFrontierPass - thumb_func_end ShowFrontierPass - - thumb_func_start LeaveFrontierPass -LeaveFrontierPass: @ 0x080C4AD4 - push {lr} - ldr r0, _080C4AE8 - ldr r0, [r0] - ldr r0, [r0] - bl SetMainCallback2 - bl FreeFrontierPassData - pop {r0} - bx r0 - .align 2, 0 -_080C4AE8: .4byte gUnknown_203998C - thumb_func_end LeaveFrontierPass - - thumb_func_start AllocateFrontierPassData -AllocateFrontierPassData: @ 0x080C4AEC - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r5, _080C4AFC - ldr r0, [r5] - cmp r0, #0 - beq _080C4B00 - movs r0, #1 - b _080C4BC4 - .align 2, 0 -_080C4AFC: .4byte gUnknown_203998C -_080C4B00: - movs r0, #0x18 - bl AllocZeroed - str r0, [r5] - cmp r0, #0 - bne _080C4B10 - movs r0, #2 - b _080C4BC4 -_080C4B10: - str r4, [r0] - bl GetCurrentRegionMapSectionId - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x3a - beq _080C4B2E - cmp r4, #0xca - beq _080C4B2E - ldr r0, [r5] - movs r1, #0xb0 - strh r1, [r0, #8] - movs r1, #0x68 - strh r1, [r0, #0xa] - b _080C4B3C -_080C4B2E: - ldr r2, _080C4BCC - ldr r1, [r2] - movs r0, #0xb0 - strh r0, [r1, #8] - movs r0, #0x30 - strh r0, [r1, #0xa] - adds r5, r2, #0 -_080C4B3C: - ldr r1, [r5] - ldr r0, _080C4BD0 - ldr r0, [r0] - ldr r2, _080C4BD4 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r1, #6] - bl CanCopyRecordedBattleSaveData - ldr r3, [r5] - movs r1, #1 - ands r0, r1 - ldrb r2, [r3, #0xe] - movs r1, #2 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0xe] - ldr r2, [r5] - ldrb r1, [r2, #0xe] - movs r0, #0xf - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0xe] - bl CountPlayerTrainerStars - ldr r3, [r5] - lsls r0, r0, #4 - ldrb r2, [r3, #0xe] - movs r1, #0xf - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0xe] - movs r4, #0 - adds r6, r5, #0 -_080C4B82: - lsls r5, r4, #1 - ldr r1, _080C4BD8 - adds r0, r5, r1 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C4B9E - ldr r1, [r6] - adds r1, #0xf - adds r1, r1, r4 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_080C4B9E: - ldr r2, _080C4BDC - adds r0, r5, r2 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C4BB8 - ldr r1, [r6] - adds r1, #0xf - adds r1, r1, r4 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_080C4BB8: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #6 - bls _080C4B82 - movs r0, #0 -_080C4BC4: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080C4BCC: .4byte gUnknown_203998C -_080C4BD0: .4byte gUnknown_3005AF0 -_080C4BD4: .4byte 0x00000EB8 -_080C4BD8: .4byte 0x000008C4 -_080C4BDC: .4byte 0x000008C5 - thumb_func_end AllocateFrontierPassData - - thumb_func_start FreeFrontierPassData -FreeFrontierPassData: @ 0x080C4BE0 - push {r4, lr} - ldr r4, _080C4C00 - ldr r0, [r4] - cmp r0, #0 - beq _080C4C04 - movs r1, #0 - movs r2, #0x18 - bl memset - ldr r0, [r4] - bl Free - movs r0, #0 - str r0, [r4] - b _080C4C06 - .align 2, 0 -_080C4C00: .4byte gUnknown_203998C -_080C4C04: - movs r0, #1 -_080C4C06: - pop {r4} - pop {r1} - bx r1 - thumb_func_end FreeFrontierPassData - - thumb_func_start AllocateFrontierPassGfx -AllocateFrontierPassGfx: @ 0x080C4C0C - push {r4, lr} - ldr r4, _080C4C1C - ldr r0, [r4] - cmp r0, #0 - beq _080C4C20 - movs r0, #1 - b _080C4C36 - .align 2, 0 -_080C4C1C: .4byte gUnknown_2039990 -_080C4C20: - ldr r0, _080C4C30 - bl AllocZeroed - str r0, [r4] - cmp r0, #0 - beq _080C4C34 - movs r0, #0 - b _080C4C36 - .align 2, 0 -_080C4C30: .4byte 0x00002434 -_080C4C34: - movs r0, #2 -_080C4C36: - pop {r4} - pop {r1} - bx r1 - thumb_func_end AllocateFrontierPassGfx - - thumb_func_start FreeFrontierPassGfx -FreeFrontierPassGfx: @ 0x080C4C3C - push {r4, lr} - bl FreeAllWindowBuffers - ldr r4, _080C4C50 - ldr r0, [r4] - cmp r0, #0 - bne _080C4C54 - movs r0, #1 - b _080C4C9C - .align 2, 0 -_080C4C50: .4byte gUnknown_2039990 -_080C4C54: - ldr r0, [r0, #0x28] - cmp r0, #0 - beq _080C4C64 - bl Free - ldr r1, [r4] - movs r0, #0 - str r0, [r1, #0x28] -_080C4C64: - ldr r0, [r4] - ldr r0, [r0, #0x24] - cmp r0, #0 - beq _080C4C76 - bl Free - ldr r1, [r4] - movs r0, #0 - str r0, [r1, #0x24] -_080C4C76: - ldr r0, [r4] - ldr r0, [r0, #0x20] - cmp r0, #0 - beq _080C4C88 - bl Free - ldr r1, [r4] - movs r0, #0 - str r0, [r1, #0x20] -_080C4C88: - ldr r0, [r4] - ldr r2, _080C4CA4 - movs r1, #0 - bl memset - ldr r0, [r4] - bl Free - movs r0, #0 - str r0, [r4] -_080C4C9C: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080C4CA4: .4byte 0x00002434 - thumb_func_end FreeFrontierPassGfx - - thumb_func_start VblankCb_FrontierPass -VblankCb_FrontierPass: @ 0x080C4CA8 - push {r4, r5, r6, r7, lr} - sub sp, #0x10 - ldr r0, _080C4D28 - ldr r6, [r0] - adds r0, r6, #0 - adds r0, #0x2c - ldrb r0, [r0] - cmp r0, #0 - beq _080C4D12 - ldr r3, _080C4D2C - ldr r0, _080C4D30 - ldr r0, [r0] - ldrb r4, [r0, #0xe] - lsls r4, r4, #0x1c - lsrs r0, r4, #0x1d - subs r0, #1 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r2, #0 - ldrsh r1, [r0, r2] - lsls r1, r1, #8 - lsrs r0, r4, #0x1d - subs r0, #1 - lsls r0, r0, #2 - adds r5, r3, #2 - adds r0, r0, r5 - movs r7, #0 - ldrsh r2, [r0, r7] - lsls r2, r2, #8 - lsrs r0, r4, #0x1d - subs r0, #1 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r7, #0 - ldrsh r3, [r0, r7] - lsrs r4, r4, #0x1d - subs r4, #1 - lsls r4, r4, #2 - adds r4, r4, r5 - movs r5, #0 - ldrsh r0, [r4, r5] - str r0, [sp] - movs r7, #0x2e - ldrsh r0, [r6, r7] - str r0, [sp, #4] - movs r4, #0x30 - ldrsh r0, [r6, r4] - str r0, [sp, #8] - movs r0, #0 - str r0, [sp, #0xc] - movs r0, #2 - bl SetBgAffine -_080C4D12: - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - add sp, #0x10 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080C4D28: .4byte gUnknown_2039990 -_080C4D2C: .4byte gUnknown_854AF04 -_080C4D30: .4byte gUnknown_203998C - thumb_func_end VblankCb_FrontierPass - - thumb_func_start CB2_FrontierPass -CB2_FrontierPass: @ 0x080C4D34 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CB2_FrontierPass - - thumb_func_start CB2_InitFrontierPass -CB2_InitFrontierPass: @ 0x080C4D48 - push {lr} - bl InitFrontierPass - cmp r0, #0 - beq _080C4D60 - ldr r0, _080C4D64 - movs r1, #0 - bl CreateTask - ldr r0, _080C4D68 - bl SetMainCallback2 -_080C4D60: - pop {r0} - bx r0 - .align 2, 0 -_080C4D64: .4byte Task_HandleFrontierPassInput -_080C4D68: .4byte CB2_FrontierPass - thumb_func_end CB2_InitFrontierPass - - thumb_func_start CB2_HideFrontierPass -CB2_HideFrontierPass: @ 0x080C4D6C - push {lr} - bl HideFrontierPass - cmp r0, #0 - beq _080C4D7A - bl LeaveFrontierPass -_080C4D7A: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CB2_HideFrontierPass - - thumb_func_start InitFrontierPass -InitFrontierPass: @ 0x080C4D80 - push {r4, r5, lr} - sub sp, #0xc - movs r0, #0 - str r0, [sp, #8] - ldr r0, _080C4DA0 - ldr r0, [r0] - ldrh r0, [r0, #4] - cmp r0, #0xa - bls _080C4D94 - b _080C4FF0 -_080C4D94: - lsls r0, r0, #2 - ldr r1, _080C4DA4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C4DA0: .4byte gUnknown_203998C -_080C4DA4: .4byte _080C4DA8 -_080C4DA8: @ jump table - .4byte _080C4DD4 @ case 0 - .4byte _080C4DEA @ case 1 - .4byte _080C4DF0 @ case 2 - .4byte _080C4E06 @ case 3 - .4byte _080C4E0C @ case 4 - .4byte _080C4E5C @ case 5 - .4byte _080C4E6C @ case 6 - .4byte _080C4ECC @ case 7 - .4byte _080C4F20 @ case 8 - .4byte _080C4F80 @ case 9 - .4byte _080C4FCC @ case 10 -_080C4DD4: - movs r0, #0 - bl SetVBlankCallback - bl ScanlineEffect_Stop - bl SetVBlankHBlankCallbacksToNull - movs r0, #2 - bl DisableInterrupts - b _080C4FF0 -_080C4DEA: - bl ResetGpuRegsAndBgs - b _080C4FF0 -_080C4DF0: - bl ResetTasks - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetPaletteFade - bl reset_temp_tile_data_buffers - b _080C4FF0 -_080C4E06: - bl AllocateFrontierPassGfx - b _080C4FF0 -_080C4E0C: - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _080C4E4C - movs r0, #1 - movs r2, #3 - bl InitBgsFromTemplates - ldr r4, _080C4E50 - ldr r1, [r4] - adds r1, #0x32 - movs r0, #1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, _080C4E54 - adds r1, r1, r0 - movs r0, #2 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, _080C4E58 - adds r1, r1, r0 - movs r0, #3 - bl SetBgTilemapBuffer - movs r0, #2 - movs r1, #6 - movs r2, #1 - bl SetBgAttribute - b _080C4FF0 - .align 2, 0 -_080C4E4C: .4byte gUnknown_854AF0C -_080C4E50: .4byte gUnknown_2039990 -_080C4E54: .4byte 0x00001032 -_080C4E58: .4byte 0x00002032 -_080C4E5C: - ldr r0, _080C4E68 - bl InitWindows - bl sub_08004480 - b _080C4FF0 - .align 2, 0 -_080C4E68: .4byte gUnknown_854AF24 -_080C4E6C: - ldr r0, _080C4EB4 - add r1, sp, #8 - bl malloc_and_decompress - ldr r4, _080C4EB8 - ldr r1, [r4] - str r0, [r1, #0x20] - ldr r0, _080C4EBC - add r1, sp, #8 - bl malloc_and_decompress - ldr r1, [r4] - str r0, [r1, #0x24] - ldr r0, _080C4EC0 - add r1, sp, #8 - bl malloc_and_decompress - ldr r1, [r4] - str r0, [r1, #0x28] - ldr r1, _080C4EC4 - movs r4, #0 - str r4, [sp] - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, _080C4EC8 - str r4, [sp] - movs r0, #2 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - b _080C4FF0 - .align 2, 0 -_080C4EB4: .4byte gUnknown_854AE1C -_080C4EB8: .4byte gUnknown_2039990 -_080C4EBC: .4byte gUnknown_8549B58 -_080C4EC0: .4byte gUnknown_8549DE8 -_080C4EC4: .4byte gUnknown_85469A4 -_080C4EC8: .4byte gUnknown_8549E20 -_080C4ECC: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C4ED8 - b _080C4FFA -_080C4ED8: - movs r5, #0x1e - str r5, [sp] - movs r4, #0x14 - str r4, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - str r5, [sp] - str r4, [sp, #4] - movs r0, #1 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - str r5, [sp] - str r4, [sp, #4] - movs r0, #2 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, #0 - bl CopyBgTilemapBufferToVram - movs r0, #1 - bl CopyBgTilemapBufferToVram - movs r0, #2 - bl CopyBgTilemapBufferToVram - b _080C4FF0 -_080C4F20: - ldr r4, _080C4F78 - movs r2, #0xd0 - lsls r2, r2, #1 - adds r0, r4, #0 - movs r1, #0 - bl LoadPalette - ldr r5, _080C4F7C - ldr r0, [r5] - ldrb r0, [r0, #0xe] - lsrs r0, r0, #4 - lsls r0, r0, #5 - adds r4, #0x20 - adds r0, r0, r4 - movs r1, #0x10 - movs r2, #0x20 - bl LoadPalette - movs r0, #0 - bl stdpal_get - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - bl sub_080C5B88 - ldr r1, [r5] - ldrb r0, [r1, #0xc] - ldrb r1, [r1, #0xd] - bl sub_080C59F0 - ldr r5, [r5] - ldrb r0, [r5, #0xe] - movs r1, #0xe - ands r1, r0 - cmp r1, #2 - beq _080C4F70 - cmp r1, #4 - bne _080C4FF0 -_080C4F70: - movs r0, #0 - strh r0, [r5, #4] - movs r0, #1 - b _080C4FFC - .align 2, 0 -_080C4F78: .4byte gUnknown_85467E4 -_080C4F7C: .4byte gUnknown_203998C -_080C4F80: - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - bl LoadCursorAndSymbolSprites - ldr r0, _080C4FC8 - bl SetVBlankCallback - movs r4, #1 - rsbs r4, r4, #0 - adds r0, r4, #0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - movs r0, #0 - str r0, [sp] - adds r0, r4, #0 - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - b _080C4FF0 - .align 2, 0 -_080C4FC8: .4byte VblankCb_FrontierPass -_080C4FCC: - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _080C4FFA - ldr r0, _080C4FEC - ldr r0, [r0] - strh r1, [r0, #4] - movs r0, #1 - b _080C4FFC - .align 2, 0 -_080C4FEC: .4byte gUnknown_203998C -_080C4FF0: - ldr r0, _080C5004 - ldr r1, [r0] - ldrh r0, [r1, #4] - adds r0, #1 - strh r0, [r1, #4] -_080C4FFA: - movs r0, #0 -_080C4FFC: - add sp, #0xc - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080C5004: .4byte gUnknown_203998C - thumb_func_end InitFrontierPass - - thumb_func_start HideFrontierPass -HideFrontierPass: @ 0x080C5008 - push {lr} - sub sp, #4 - ldr r1, _080C5024 - ldr r0, [r1] - ldrh r0, [r0, #4] - adds r2, r1, #0 - cmp r0, #5 - bhi _080C50E0 - lsls r0, r0, #2 - ldr r1, _080C5028 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C5024: .4byte gUnknown_203998C -_080C5028: .4byte _080C502C -_080C502C: @ jump table - .4byte _080C5044 @ case 0 - .4byte _080C506C @ case 1 - .4byte _080C5078 @ case 2 - .4byte _080C50A2 @ case 3 - .4byte _080C50A8 @ case 4 - .4byte _080C50BA @ case 5 -_080C5044: - ldr r0, [r2] - ldrb r0, [r0, #0xe] - movs r1, #0xe - ands r1, r0 - cmp r1, #2 - beq _080C5066 - cmp r1, #4 - beq _080C5066 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - b _080C50E0 -_080C5066: - ldr r1, [r2] - movs r0, #2 - b _080C50E8 -_080C506C: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C50E0 - b _080C50EA -_080C5078: - movs r0, #0 - movs r1, #0 - bl SetGpuReg - movs r0, #0 - bl HideBg - movs r0, #1 - bl HideBg - movs r0, #2 - bl HideBg - movs r0, #0 - bl SetVBlankCallback - bl ScanlineEffect_Stop - bl SetVBlankHBlankCallbacksToNull - b _080C50E0 -_080C50A2: - bl FreeCursorAndSymbolSprites - b _080C50E0 -_080C50A8: - bl ResetGpuRegsAndBgs - bl ResetTasks - bl ResetSpriteData - bl FreeAllSpritePalettes - b _080C50E0 -_080C50BA: - movs r0, #0 - bl UnsetBgTilemapBuffer - movs r0, #1 - bl UnsetBgTilemapBuffer - movs r0, #2 - bl UnsetBgTilemapBuffer - bl FreeFrontierPassGfx - ldr r0, _080C50DC - ldr r1, [r0] - movs r0, #0 - strh r0, [r1, #4] - movs r0, #1 - b _080C50EC - .align 2, 0 -_080C50DC: .4byte gUnknown_203998C -_080C50E0: - ldr r0, _080C50F4 - ldr r1, [r0] - ldrh r0, [r1, #4] - adds r0, #1 -_080C50E8: - strh r0, [r1, #4] -_080C50EA: - movs r0, #0 -_080C50EC: - add sp, #4 - pop {r1} - bx r1 - .align 2, 0 -_080C50F4: .4byte gUnknown_203998C - thumb_func_end HideFrontierPass - - thumb_func_start GetCursorAreaFromCoords -GetCursorAreaFromCoords: @ 0x080C50F8 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - movs r4, #0 - ldr r7, _080C5148 - lsls r1, r1, #0x10 - asrs r5, r1, #0x10 -_080C5106: - lsls r0, r4, #3 - adds r3, r0, r7 - movs r1, #0 - ldrsh r0, [r3, r1] - cmp r0, r5 - bgt _080C5150 - movs r1, #2 - ldrsh r0, [r3, r1] - cmp r0, r5 - blt _080C5150 - movs r0, #4 - ldrsh r1, [r3, r0] - lsls r0, r6, #0x10 - asrs r2, r0, #0x10 - cmp r1, r2 - bgt _080C5150 - movs r1, #6 - ldrsh r0, [r3, r1] - cmp r0, r2 - blt _080C5150 - cmp r4, #5 - bls _080C513E - ldr r0, _080C514C - ldr r0, [r0] - adds r0, r0, r4 - ldrb r0, [r0, #9] - cmp r0, #0 - beq _080C515A -_080C513E: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _080C515C - .align 2, 0 -_080C5148: .4byte gUnknown_854AF78 -_080C514C: .4byte gUnknown_203998C -_080C5150: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xc - bls _080C5106 -_080C515A: - movs r0, #0 -_080C515C: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetCursorAreaFromCoords - - thumb_func_start CB2_ReshowFrontierPass -CB2_ReshowFrontierPass: @ 0x080C5164 - push {lr} - bl InitFrontierPass - cmp r0, #0 - beq _080C51C2 - ldr r1, _080C519C - ldr r0, [r1] - ldrb r0, [r0, #0xe] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1d - cmp r0, #1 - blt _080C51A8 - cmp r0, #2 - bgt _080C51A8 - ldr r0, _080C51A0 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080C51A4 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r0, #1 - strh r0, [r1, #8] - b _080C51BC - .align 2, 0 -_080C519C: .4byte gUnknown_203998C -_080C51A0: .4byte DrawMultichoiceMenu -_080C51A4: .4byte gUnknown_3005B60 -_080C51A8: - ldr r2, [r1] - ldrb r1, [r2, #0xe] - movs r0, #0xf - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0xe] - ldr r0, _080C51C8 - movs r1, #0 - bl CreateTask -_080C51BC: - ldr r0, _080C51CC - bl SetMainCallback2 -_080C51C2: - pop {r0} - bx r0 - .align 2, 0 -_080C51C8: .4byte Task_HandleFrontierPassInput -_080C51CC: .4byte CB2_FrontierPass - thumb_func_end CB2_ReshowFrontierPass - - thumb_func_start CB2_ReturnFromRecord -CB2_ReturnFromRecord: @ 0x080C51D0 - push {r4, lr} - ldr r4, _080C5208 - ldr r0, [r4] - bl AllocateFrontierPassData - ldr r0, _080C520C - ldr r1, [r0] - ldrh r0, [r4, #4] - strh r0, [r1, #8] - ldrh r0, [r4, #6] - strh r0, [r1, #0xa] - adds r0, r4, #0 - movs r1, #0 - movs r2, #8 - bl memset - bl InBattlePyramid - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080C5210 - cmp r0, #2 - beq _080C5218 - bl Overworld_PlaySpecialMapMusic - b _080C5220 - .align 2, 0 -_080C5208: .4byte gUnknown_2039998 -_080C520C: .4byte gUnknown_203998C -_080C5210: - ldr r0, _080C5214 - b _080C521C - .align 2, 0 -_080C5214: .4byte 0x000001CD -_080C5218: - movs r0, #0xe7 - lsls r0, r0, #1 -_080C521C: - bl PlayBGM -_080C5220: - ldr r0, _080C522C - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C522C: .4byte CB2_ReshowFrontierPass - thumb_func_end CB2_ReturnFromRecord - - thumb_func_start CB2_ShowFrontierPassFeature -CB2_ShowFrontierPassFeature: @ 0x080C5230 - push {lr} - bl HideFrontierPass - cmp r0, #0 - beq _080C5296 - ldr r0, _080C5254 - ldr r2, [r0] - ldrb r0, [r2, #0xe] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1d - cmp r0, #2 - beq _080C5290 - cmp r0, #2 - bgt _080C5258 - cmp r0, #1 - beq _080C525E - b _080C5296 - .align 2, 0 -_080C5254: .4byte gUnknown_203998C -_080C5258: - cmp r0, #3 - beq _080C526C - b _080C5296 -_080C525E: - ldr r0, _080C5268 - bl ShowFrontierMap - b _080C5296 - .align 2, 0 -_080C5268: .4byte CB2_ReshowFrontierPass -_080C526C: - ldr r1, _080C5288 - ldr r0, [r2] - str r0, [r1] - ldrh r0, [r2, #8] - strh r0, [r1, #4] - ldrh r0, [r2, #0xa] - strh r0, [r1, #6] - bl FreeFrontierPassData - ldr r0, _080C528C - bl PlayRecordedBattle - b _080C5296 - .align 2, 0 -_080C5288: .4byte gUnknown_2039998 -_080C528C: .4byte CB2_ReturnFromRecord -_080C5290: - ldr r0, _080C529C - bl sub_080C4710 -_080C5296: - pop {r0} - bx r0 - .align 2, 0 -_080C529C: .4byte CB2_ReshowFrontierPass - thumb_func_end CB2_ShowFrontierPassFeature - - thumb_func_start TryCallPassAreaFunction -TryCallPassAreaFunction: @ 0x080C52A0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - adds r4, r3, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r2, r1, #0 - cmp r1, #1 - blt _080C52C8 - cmp r1, #2 - ble _080C52F0 - cmp r1, #3 - bne _080C52C8 - ldr r0, _080C52CC - ldr r2, [r0] - ldrb r1, [r2, #0xe] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080C52D0 -_080C52C8: - movs r0, #0 - b _080C532C - .align 2, 0 -_080C52CC: .4byte gUnknown_203998C -_080C52D0: - movs r0, #0xf - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2, #0xe] - adds r0, r3, #0 - bl DestroyTask - ldr r0, _080C52EC - bl SetMainCallback2 - b _080C5316 - .align 2, 0 -_080C52EC: .4byte CB2_ShowFrontierPassFeature -_080C52F0: - ldr r0, _080C5334 - ldr r3, [r0] - movs r0, #7 - ands r2, r0 - lsls r2, r2, #1 - ldrb r1, [r3, #0xe] - subs r0, #0x16 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, #0xe] - ldr r1, _080C5338 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080C533C - str r1, [r0] - movs r1, #0 - strh r1, [r0, #8] -_080C5316: - ldr r0, _080C5334 - ldr r2, [r0] - ldr r0, _080C5340 - ldr r1, [r0] - ldr r0, [r1] - ldrh r0, [r0, #0x20] - strh r0, [r2, #8] - ldr r0, [r1] - ldrh r0, [r0, #0x22] - strh r0, [r2, #0xa] - movs r0, #1 -_080C532C: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080C5334: .4byte gUnknown_203998C -_080C5338: .4byte gUnknown_3005B60 -_080C533C: .4byte DrawMultichoiceMenu -_080C5340: .4byte gUnknown_2039990 - thumb_func_end TryCallPassAreaFunction - - thumb_func_start Task_HandleFrontierPassInput -Task_HandleFrontierPassInput: @ 0x080C5344 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r5, #0 - ldr r2, _080C5438 - ldrh r1, [r2, #0x2c] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080C537C - ldr r0, _080C543C - ldr r4, [r0] - ldr r1, [r4] - ldrh r3, [r1, #0x22] - movs r7, #0x22 - ldrsh r0, [r1, r7] - cmp r0, #8 - ble _080C537C - subs r0, r3, #2 - strh r0, [r1, #0x22] - ldr r1, [r4] - movs r3, #0x22 - ldrsh r0, [r1, r3] - cmp r0, #7 - bgt _080C537A - movs r0, #2 - strh r0, [r1, #0x22] -_080C537A: - movs r5, #1 -_080C537C: - ldrh r1, [r2, #0x2c] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080C53AA - ldr r0, _080C543C - ldr r4, [r0] - ldr r1, [r4] - ldrh r3, [r1, #0x22] - movs r7, #0x22 - ldrsh r0, [r1, r7] - cmp r0, #0x87 - bgt _080C53AA - adds r0, r3, #2 - strh r0, [r1, #0x22] - ldr r1, [r4] - movs r3, #0x22 - ldrsh r0, [r1, r3] - cmp r0, #0x88 - ble _080C53A8 - movs r0, #0x88 - strh r0, [r1, #0x22] -_080C53A8: - movs r5, #1 -_080C53AA: - ldrh r1, [r2, #0x2c] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080C53D8 - ldr r0, _080C543C - ldr r4, [r0] - ldr r1, [r4] - ldrh r3, [r1, #0x20] - movs r7, #0x20 - ldrsh r0, [r1, r7] - cmp r0, #5 - ble _080C53D8 - subs r0, r3, #2 - strh r0, [r1, #0x20] - ldr r1, [r4] - movs r3, #0x20 - ldrsh r0, [r1, r3] - cmp r0, #4 - bgt _080C53D6 - movs r0, #5 - strh r0, [r1, #0x20] -_080C53D6: - movs r5, #1 -_080C53D8: - ldrh r1, [r2, #0x2c] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080C5406 - ldr r0, _080C543C - ldr r4, [r0] - ldr r1, [r4] - ldrh r3, [r1, #0x20] - movs r7, #0x20 - ldrsh r0, [r1, r7] - cmp r0, #0xe7 - bgt _080C5406 - adds r0, r3, #2 - strh r0, [r1, #0x20] - ldr r1, [r4] - movs r3, #0x20 - ldrsh r0, [r1, r3] - cmp r0, #0xe8 - ble _080C5404 - movs r0, #0xe8 - strh r0, [r1, #0x20] -_080C5404: - movs r5, #1 -_080C5406: - cmp r5, #0 - bne _080C5484 - ldr r4, _080C5440 - ldr r0, [r4] - ldrb r3, [r0, #0xc] - cmp r3, #0 - beq _080C545A - ldrh r1, [r2, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080C545A - cmp r3, #3 - bhi _080C5444 - movs r0, #5 - bl sub_080A306C - ldr r0, [r4] - ldrb r1, [r0, #0xc] - adds r0, r6, #0 - bl TryCallPassAreaFunction - cmp r0, #0 - bne _080C54C6 - b _080C545A - .align 2, 0 -_080C5438: .4byte gUnknown_3002360 -_080C543C: .4byte gUnknown_2039990 -_080C5440: .4byte gUnknown_203998C -_080C5444: - cmp r3, #4 - bne _080C545A - movs r0, #3 - bl sub_080A306C - ldr r0, _080C547C - bl SetMainCallback2 - adds r0, r6, #0 - bl DestroyTask -_080C545A: - ldr r0, _080C5480 - ldrh r1, [r0, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080C54C6 - movs r0, #3 - bl sub_080A306C - ldr r0, _080C547C - bl SetMainCallback2 - adds r0, r6, #0 - bl DestroyTask - b _080C54C6 - .align 2, 0 -_080C547C: .4byte CB2_HideFrontierPass -_080C5480: .4byte gUnknown_3002360 -_080C5484: - ldr r0, _080C54CC - ldr r0, [r0] - ldr r1, [r0] - ldrh r0, [r1, #0x20] - subs r0, #5 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrh r1, [r1, #0x22] - adds r1, #5 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl GetCursorAreaFromCoords - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r4, _080C54D0 - ldr r0, [r4] - ldrb r0, [r0, #0xc] - cmp r0, r5 - beq _080C54C6 - adds r0, r5, #0 - bl PrintAreaDescription - ldr r1, [r4] - ldrb r0, [r1, #0xc] - strb r0, [r1, #0xd] - ldr r0, [r4] - strb r5, [r0, #0xc] - ldr r1, [r4] - ldrb r0, [r1, #0xc] - ldrb r1, [r1, #0xd] - bl sub_080C59F0 -_080C54C6: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080C54CC: .4byte gUnknown_2039990 -_080C54D0: .4byte gUnknown_203998C - thumb_func_end Task_HandleFrontierPassInput - - thumb_func_start DrawMultichoiceMenu -DrawMultichoiceMenu: @ 0x080C54D4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r5, r0, #3 - ldr r0, _080C5500 - mov r8, r0 - adds r6, r5, r0 - ldr r7, _080C5504 - ldr r0, [r7] - ldrh r0, [r0, #4] - cmp r0, #1 - beq _080C55D0 - cmp r0, #1 - bgt _080C5508 - cmp r0, #0 - beq _080C5510 - b _080C5698 - .align 2, 0 -_080C5500: .4byte gUnknown_3005B68 -_080C5504: .4byte gUnknown_203998C -_080C5508: - cmp r0, #2 - bne _080C550E - b _080C5626 -_080C550E: - b _080C5698 -_080C5510: - movs r1, #0 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _080C5548 - movs r0, #1 - movs r1, #0 - bl sub_080C5844 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r1, #0 - strh r0, [r6, #2] - strh r0, [r6, #4] - movs r0, #0x15 - strh r0, [r6, #6] - strh r0, [r6, #8] - movs r0, #1 - rsbs r0, r0, #0 - ldr r1, _080C5544 - str r1, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - b _080C55A0 - .align 2, 0 -_080C5544: .4byte 0x00007FFF -_080C5548: - movs r1, #0xfe - lsls r1, r1, #1 - adds r0, r1, #0 - strh r0, [r6, #2] - strh r0, [r6, #4] - movs r1, #0x15 - rsbs r1, r1, #0 - adds r0, r1, #0 - strh r0, [r6, #6] - strh r0, [r6, #8] - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - bl LoadCursorAndSymbolSprites - ldr r0, _080C55C4 - bl SetVBlankCallback - movs r5, #1 - rsbs r5, r5, #0 - ldr r4, _080C55C8 - adds r0, r5, #0 - movs r1, #0x10 - adds r2, r4, #0 - bl BlendPalettes - str r4, [sp] - adds r0, r5, #0 - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade -_080C55A0: - ldr r4, _080C55CC - ldr r0, [r4] - adds r0, #0x2c - movs r1, #1 - strb r1, [r0] - movs r1, #2 - ldrsh r0, [r6, r1] - bl sub_08151600 - ldr r1, [r4] - strh r0, [r1, #0x2e] - movs r1, #4 - ldrsh r0, [r6, r1] - bl sub_08151600 - ldr r1, [r4] - strh r0, [r1, #0x30] - b _080C5698 - .align 2, 0 -_080C55C4: .4byte VblankCb_FrontierPass -_080C55C8: .4byte 0x00007FFF -_080C55CC: .4byte gUnknown_2039990 -_080C55D0: - bl UpdatePaletteFade - ldrh r0, [r6, #6] - ldrh r1, [r6, #2] - adds r0, r0, r1 - strh r0, [r6, #2] - ldrh r0, [r6, #8] - ldrh r1, [r6, #4] - adds r0, r0, r1 - strh r0, [r6, #4] - movs r1, #2 - ldrsh r0, [r6, r1] - bl sub_08151600 - ldr r4, _080C5614 - ldr r1, [r4] - strh r0, [r1, #0x2e] - movs r1, #4 - ldrsh r0, [r6, r1] - bl sub_08151600 - ldr r1, [r4] - strh r0, [r1, #0x30] - movs r1, #0 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _080C5618 - movs r0, #2 - ldrsh r1, [r6, r0] - movs r0, #0xfe - lsls r0, r0, #1 - cmp r1, r0 - ble _080C56A2 - b _080C5698 - .align 2, 0 -_080C5614: .4byte gUnknown_2039990 -_080C5618: - movs r0, #2 - ldrsh r1, [r6, r0] - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - bne _080C56A2 - b _080C5698 -_080C5626: - ldr r0, _080C5658 - ldr r0, [r0] - adds r1, r0, #0 - adds r1, #0x2c - ldrb r0, [r1] - cmp r0, #0 - beq _080C5638 - movs r0, #0 - strb r0, [r1] -_080C5638: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C56A2 - movs r1, #0 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _080C5660 - adds r0, r4, #0 - bl DestroyTask - ldr r0, _080C565C - bl SetMainCallback2 - b _080C567E - .align 2, 0 -_080C5658: .4byte gUnknown_2039990 -_080C565C: .4byte CB2_ShowFrontierPassFeature -_080C5660: - movs r0, #0 - movs r1, #0 - bl sub_080C5844 - ldr r2, [r7] - ldrb r1, [r2, #0xe] - movs r0, #0xf - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0xe] - mov r0, r8 - subs r0, #8 - adds r0, r5, r0 - ldr r1, _080C5690 - str r1, [r0] -_080C567E: - movs r0, #2 - movs r1, #6 - movs r2, #0 - bl SetBgAttribute - ldr r0, _080C5694 - ldr r1, [r0] - movs r0, #0 - b _080C56A0 - .align 2, 0 -_080C5690: .4byte Task_HandleFrontierPassInput -_080C5694: .4byte gUnknown_203998C -_080C5698: - ldr r0, _080C56B0 - ldr r1, [r0] - ldrh r0, [r1, #4] - adds r0, #1 -_080C56A0: - strh r0, [r1, #4] -_080C56A2: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080C56B0: .4byte gUnknown_203998C - thumb_func_end DrawMultichoiceMenu - - thumb_func_start Task_Truck3 -Task_Truck3: @ 0x080C56B4 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0xc - movs r4, #0 -_080C56BE: - adds r0, r4, #0 - bl PutWindowTilemap - adds r0, r4, #0 - movs r1, #0 - bl FillWindowPixelBuffer - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #4 - bls _080C56BE - ldr r6, _080C57A4 - str r6, [sp] - movs r0, #0 - mov r8, r0 - str r0, [sp, #4] - ldr r0, _080C57A8 - str r0, [sp, #8] - movs r0, #0 - movs r1, #1 - movs r2, #8 - movs r3, #6 - bl AddTextPrinterParameterized3 - str r6, [sp] - mov r1, r8 - str r1, [sp, #4] - ldr r0, _080C57AC - str r0, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r2, #0xe - movs r3, #6 - bl AddTextPrinterParameterized3 - str r6, [sp] - mov r0, r8 - str r0, [sp, #4] - ldr r0, _080C57B0 - str r0, [sp, #8] - movs r0, #2 - movs r1, #0 - movs r2, #8 - movs r3, #3 - bl AddTextPrinterParameterized3 - ldr r4, _080C57B4 - ldr r5, _080C57B8 - ldr r0, [r5] - ldrh r1, [r0, #6] - adds r0, r4, #0 - movs r2, #0 - movs r3, #5 - bl sub_080089D8 - movs r2, #1 - rsbs r2, r2, #0 - movs r0, #0 - adds r1, r4, #0 - bl sub_08005DAC - movs r2, #0x5c - subs r2, r2, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r6, [sp] - mov r1, r8 - str r1, [sp, #4] - str r4, [sp, #8] - movs r0, #2 - movs r1, #0 - movs r3, #0xf - bl AddTextPrinterParameterized3 - ldr r1, [r5] - ldrh r0, [r1, #8] - subs r0, #5 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrh r1, [r1, #0xa] - adds r1, #5 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl GetCursorAreaFromCoords - ldr r1, [r5] - strb r0, [r1, #0xc] - ldr r0, [r5] - mov r1, r8 - strb r1, [r0, #0xd] - ldr r0, [r5] - ldrb r0, [r0, #0xc] - bl PrintAreaDescription - movs r4, #0 -_080C577E: - adds r0, r4, #0 - movs r1, #3 - bl CopyWindowToVram - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #4 - bls _080C577E - movs r0, #0 - bl CopyBgTilemapBufferToVram - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080C57A4: .4byte gUnknown_854AF6C -_080C57A8: .4byte gUnknown_85CCA93 -_080C57AC: .4byte gUnknown_85CCA9E -_080C57B0: .4byte gUnknown_85CCAA8 -_080C57B4: .4byte gUnknown_2021C7C -_080C57B8: .4byte gUnknown_203998C - thumb_func_end Task_Truck3 - - thumb_func_start PrintAreaDescription -PrintAreaDescription: @ 0x080C57BC - push {r4, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #3 - movs r1, #0 - bl FillWindowPixelBuffer - cmp r4, #3 - bne _080C5804 - ldr r0, _080C57F8 - ldr r0, [r0] - ldrb r0, [r0, #0xe] - movs r1, #1 - ands r1, r0 - cmp r1, #0 - bne _080C5804 - ldr r0, _080C57FC - str r0, [sp] - str r1, [sp, #4] - ldr r0, _080C5800 - ldr r0, [r0] - str r0, [sp, #8] - movs r0, #3 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 - b _080C5826 - .align 2, 0 -_080C57F8: .4byte gUnknown_203998C -_080C57FC: .4byte gUnknown_854AF6F -_080C5800: .4byte gUnknown_854B138 -_080C5804: - cmp r4, #0 - beq _080C5826 - ldr r0, _080C583C - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - ldr r1, _080C5840 - lsls r0, r4, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp, #8] - movs r0, #3 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 -_080C5826: - movs r0, #3 - movs r1, #3 - bl CopyWindowToVram - movs r0, #0 - bl CopyBgTilemapBufferToVram - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C583C: .4byte gUnknown_854AF6F -_080C5840: .4byte gUnknown_854B138 - thumb_func_end PrintAreaDescription - - thumb_func_start sub_080C5844 -sub_080C5844: @ 0x080C5844 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - ldr r0, _080C5868 - ldr r0, [r0] - ldrb r0, [r0, #0xe] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1d - cmp r0, #1 - beq _080C586C - cmp r0, #2 - beq _080C58AE - b _080C59DA - .align 2, 0 -_080C5868: .4byte gUnknown_203998C -_080C586C: - cmp r2, #0 - beq _080C5894 - ldr r0, _080C5890 - ldr r0, [r0] - ldr r1, [r0, #0x20] - movs r0, #0xc - str r0, [sp] - movs r0, #7 - str r0, [sp, #4] - movs r0, #0x10 - str r0, [sp, #8] - movs r0, #2 - movs r2, #0x10 - movs r3, #3 - bl CopyToBgTilemapBufferRect_ChangePalette - b _080C58F0 - .align 2, 0 -_080C5890: .4byte gUnknown_2039990 -_080C5894: - movs r0, #0xc - str r0, [sp] - movs r0, #7 - str r0, [sp, #4] - movs r0, #0x10 - str r0, [sp, #8] - movs r0, #2 - movs r1, #0 - movs r2, #0x10 - movs r3, #3 - bl FillBgTilemapBufferRect - b _080C58F0 -_080C58AE: - cmp r2, #0 - beq _080C58D8 - ldr r0, _080C58D4 - ldr r0, [r0] - ldr r1, [r0, #0x20] - adds r1, #0x54 - movs r0, #0xc - str r0, [sp] - movs r0, #7 - str r0, [sp, #4] - movs r0, #0x10 - str r0, [sp, #8] - movs r0, #2 - movs r2, #0x10 - movs r3, #0xa - bl CopyToBgTilemapBufferRect_ChangePalette - b _080C58F0 - .align 2, 0 -_080C58D4: .4byte gUnknown_2039990 -_080C58D8: - movs r0, #0xc - str r0, [sp] - movs r0, #7 - str r0, [sp, #4] - movs r0, #0x10 - str r0, [sp, #8] - movs r0, #2 - movs r1, #0 - movs r2, #0x10 - movs r3, #0xa - bl FillBgTilemapBufferRect -_080C58F0: - movs r0, #2 - bl CopyBgTilemapBufferToVram - cmp r7, #0 - beq _080C5970 - movs r4, #0xfe - lsls r4, r4, #1 - adds r0, r4, #0 - bl sub_08151600 - adds r6, r0, #0 - lsls r6, r6, #0x10 - asrs r6, r6, #0x10 - adds r0, r4, #0 - bl sub_08151600 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldr r5, _080C5968 - ldr r1, _080C596C - ldr r1, [r1] - ldrb r4, [r1, #0xe] - lsls r4, r4, #0x1c - lsrs r1, r4, #0x1d - subs r1, #1 - lsls r1, r1, #2 - adds r1, r1, r5 - movs r2, #0 - ldrsh r1, [r1, r2] - lsls r1, r1, #8 - lsrs r2, r4, #0x1d - subs r2, #1 - lsls r2, r2, #2 - adds r3, r5, #2 - mov r8, r3 - add r2, r8 - movs r3, #0 - ldrsh r2, [r2, r3] - lsls r2, r2, #8 - lsrs r3, r4, #0x1d - subs r3, #1 - lsls r3, r3, #2 - adds r3, r3, r5 - movs r5, #0 - ldrsh r3, [r3, r5] - lsrs r4, r4, #0x1d - subs r4, #1 - lsls r4, r4, #2 - add r4, r8 - movs r5, #0 - ldrsh r4, [r4, r5] - str r4, [sp] - str r6, [sp, #4] - str r0, [sp, #8] - movs r0, #0 - str r0, [sp, #0xc] - movs r0, #2 - bl SetBgAffine - b _080C59DA - .align 2, 0 -_080C5968: .4byte gUnknown_854AF04 -_080C596C: .4byte gUnknown_203998C -_080C5970: - movs r4, #0x80 - lsls r4, r4, #1 - adds r0, r4, #0 - bl sub_08151600 - adds r6, r0, #0 - lsls r6, r6, #0x10 - asrs r6, r6, #0x10 - adds r0, r4, #0 - bl sub_08151600 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldr r5, _080C59E8 - ldr r1, _080C59EC - ldr r1, [r1] - ldrb r4, [r1, #0xe] - lsls r4, r4, #0x1c - lsrs r1, r4, #0x1d - subs r1, #1 - lsls r1, r1, #2 - adds r1, r1, r5 - movs r2, #0 - ldrsh r1, [r1, r2] - lsls r1, r1, #8 - lsrs r2, r4, #0x1d - subs r2, #1 - lsls r2, r2, #2 - adds r3, r5, #2 - mov r8, r3 - add r2, r8 - movs r3, #0 - ldrsh r2, [r2, r3] - lsls r2, r2, #8 - lsrs r3, r4, #0x1d - subs r3, #1 - lsls r3, r3, #2 - adds r3, r3, r5 - movs r5, #0 - ldrsh r3, [r3, r5] - lsrs r4, r4, #0x1d - subs r4, #1 - lsls r4, r4, #2 - add r4, r8 - movs r5, #0 - ldrsh r4, [r4, r5] - str r4, [sp] - str r6, [sp, #4] - str r0, [sp, #8] - str r7, [sp, #0xc] - movs r0, #2 - bl SetBgAffine -_080C59DA: - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080C59E8: .4byte gUnknown_854AF04 -_080C59EC: .4byte gUnknown_203998C - thumb_func_end sub_080C5844 - - thumb_func_start sub_080C59F0 -sub_080C59F0: @ 0x080C59F0 - push {r4, r5, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - cmp r5, #2 - beq _080C5A38 - cmp r5, #2 - bgt _080C5A0A - cmp r5, #1 - beq _080C5A14 - b _080C5AB0 -_080C5A0A: - cmp r5, #3 - beq _080C5A5C - cmp r5, #4 - beq _080C5A90 - b _080C5AB0 -_080C5A14: - ldr r0, _080C5A34 - ldr r0, [r0] - ldr r1, [r0, #0x24] - movs r0, #0xc - str r0, [sp] - movs r0, #7 - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #1 - movs r2, #0x10 - movs r3, #3 - bl CopyToBgTilemapBufferRect_ChangePalette - b _080C5ABA - .align 2, 0 -_080C5A34: .4byte gUnknown_2039990 -_080C5A38: - ldr r0, _080C5A58 - ldr r0, [r0] - ldr r1, [r0, #0x24] - movs r0, #0xa8 - lsls r0, r0, #1 - adds r1, r1, r0 - movs r0, #0xc - str r0, [sp] - movs r0, #7 - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #1 - movs r2, #0x10 - b _080C5A7E - .align 2, 0 -_080C5A58: .4byte gUnknown_2039990 -_080C5A5C: - ldr r0, _080C5A88 - ldr r0, [r0] - ldrb r1, [r0, #0xe] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080C5AB0 - ldr r0, _080C5A8C - ldr r0, [r0] - ldr r1, [r0, #0x28] - movs r0, #0xc - str r0, [sp] - str r5, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #1 - movs r2, #2 -_080C5A7E: - movs r3, #0xa - bl CopyToBgTilemapBufferRect_ChangePalette - b _080C5ABA - .align 2, 0 -_080C5A88: .4byte gUnknown_203998C -_080C5A8C: .4byte gUnknown_2039990 -_080C5A90: - ldr r1, _080C5AAC - movs r0, #6 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #1 - movs r2, #0x15 - movs r3, #0 - bl CopyToBgTilemapBufferRect_ChangePalette - b _080C5ABA - .align 2, 0 -_080C5AAC: .4byte gUnknown_8549DB8 -_080C5AB0: - subs r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bhi _080C5B80 -_080C5ABA: - cmp r4, #2 - beq _080C5AF8 - cmp r4, #2 - bgt _080C5AC8 - cmp r4, #1 - beq _080C5AD2 - b _080C5B70 -_080C5AC8: - cmp r4, #3 - beq _080C5B1C - cmp r4, #4 - beq _080C5B50 - b _080C5B70 -_080C5AD2: - ldr r0, _080C5AF4 - ldr r0, [r0] - ldr r1, [r0, #0x24] - adds r1, #0xa8 - movs r0, #0xc - str r0, [sp] - movs r0, #7 - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #1 - movs r2, #0x10 - movs r3, #3 - bl CopyToBgTilemapBufferRect_ChangePalette - b _080C5B7A - .align 2, 0 -_080C5AF4: .4byte gUnknown_2039990 -_080C5AF8: - ldr r0, _080C5B18 - ldr r0, [r0] - ldr r1, [r0, #0x24] - movs r0, #0xfc - lsls r0, r0, #1 - adds r1, r1, r0 - movs r0, #0xc - str r0, [sp] - movs r0, #7 - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #1 - movs r2, #0x10 - b _080C5B40 - .align 2, 0 -_080C5B18: .4byte gUnknown_2039990 -_080C5B1C: - ldr r0, _080C5B48 - ldr r0, [r0] - ldrb r1, [r0, #0xe] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080C5B80 - ldr r0, _080C5B4C - ldr r0, [r0] - ldr r1, [r0, #0x28] - adds r1, #0x48 - movs r0, #0xc - str r0, [sp] - str r4, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #1 - movs r2, #2 -_080C5B40: - movs r3, #0xa - bl CopyToBgTilemapBufferRect_ChangePalette - b _080C5B7A - .align 2, 0 -_080C5B48: .4byte gUnknown_203998C -_080C5B4C: .4byte gUnknown_2039990 -_080C5B50: - ldr r1, _080C5B6C - movs r0, #6 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #1 - movs r2, #0x15 - movs r3, #0 - bl CopyToBgTilemapBufferRect_ChangePalette - b _080C5B7A - .align 2, 0 -_080C5B6C: .4byte gUnknown_8549DD0 -_080C5B70: - subs r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bhi _080C5B80 -_080C5B7A: - movs r0, #1 - bl CopyBgTilemapBufferToVram -_080C5B80: - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_080C59F0 - - thumb_func_start sub_080C5B88 -sub_080C5B88: @ 0x080C5B88 - push {r4, lr} - ldr r1, _080C5BC0 - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - ldr r4, _080C5BC4 - ldr r1, [r4] - ldrb r0, [r1, #0xc] - ldrb r1, [r1, #0xd] - bl sub_080C59F0 - ldr r0, [r4] - ldrb r1, [r0, #0xe] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1d - movs r0, #1 - bl sub_080C5844 - bl Task_Truck3 - movs r0, #1 - bl CopyBgTilemapBufferToVram - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C5BC0: .4byte gUnknown_8549610 -_080C5BC4: .4byte gUnknown_203998C - thumb_func_end sub_080C5B88 - - thumb_func_start LoadCursorAndSymbolSprites -LoadCursorAndSymbolSprites: @ 0x080C5BC8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x18 - movs r5, #0 - bl FreeAllSpritePalettes - bl ResetAffineAnimData - ldr r0, _080C5CC4 - bl LoadSpritePalettes - ldr r4, _080C5CC8 - adds r0, r4, #0 - bl LoadCompressedSpriteSheet - adds r4, #0x10 - adds r0, r4, #0 - bl LoadCompressedSpriteSheet - ldr r0, _080C5CCC - ldr r1, _080C5CD0 - ldr r2, [r1] - movs r3, #8 - ldrsh r1, [r2, r3] - movs r6, #0xa - ldrsh r2, [r2, r6] - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _080C5CD4 - ldr r2, [r3] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _080C5CD8 - adds r1, r1, r0 - str r1, [r2] - ldrb r2, [r1, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #5] - mov r8, sp - mov sb, r3 -_080C5C28: - ldr r0, _080C5CD0 - ldr r0, [r0] - adds r0, #0xf - adds r2, r0, r5 - ldrb r0, [r2] - adds r4, r5, #1 - cmp r0, #0 - beq _080C5CAE - mov r1, sp - ldr r0, _080C5CDC - ldm r0!, {r3, r6, r7} - stm r1!, {r3, r6, r7} - ldm r0!, {r3, r6, r7} - stm r1!, {r3, r6, r7} - mov r7, r8 - ldrh r0, [r7, #2] - ldr r1, _080C5CE0 - adds r0, r0, r1 - ldrb r2, [r2] - adds r0, r0, r2 - strh r0, [r7, #2] - ldr r1, _080C5CE4 - adds r0, r5, #6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #4] - adds r1, #8 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldrh r2, [r0] - adds r2, #6 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - lsls r3, r4, #0x18 - lsrs r3, r3, #0x18 - mov r0, sp - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r3, sb - ldr r2, [r3] - lsls r3, r5, #2 - adds r2, #4 - adds r2, r2, r3 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _080C5CD8 - adds r1, r1, r0 - str r1, [r2] - ldrb r2, [r1, #5] - movs r6, #0xd - rsbs r6, r6, #0 - adds r0, r6, #0 - ands r2, r0 - movs r0, #8 - orrs r2, r0 - strb r2, [r1, #5] - mov r7, sb - ldr r0, [r7] - adds r0, #4 - adds r0, r0, r3 - ldr r0, [r0] - adds r1, r5, #0 - bl StartSpriteAnim -_080C5CAE: - lsls r0, r4, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #6 - bls _080C5C28 - add sp, #0x18 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080C5CC4: .4byte gUnknown_854B008 -_080C5CC8: .4byte gUnknown_854AFE0 -_080C5CCC: .4byte gUnknown_854B0D8 -_080C5CD0: .4byte gUnknown_203998C -_080C5CD4: .4byte gUnknown_2039990 -_080C5CD8: .4byte gUnknown_20205AC -_080C5CDC: .4byte gUnknown_854B108 -_080C5CE0: .4byte 0x0000FFFF -_080C5CE4: .4byte gUnknown_854AF78 - thumb_func_end LoadCursorAndSymbolSprites - - thumb_func_start FreeCursorAndSymbolSprites -FreeCursorAndSymbolSprites: @ 0x080C5CE8 - push {r4, r5, r6, lr} - movs r5, #0 - ldr r4, _080C5D38 - ldr r0, [r4] - ldr r0, [r0] - bl DestroySprite - ldr r0, [r4] - str r5, [r0] - adds r6, r4, #0 -_080C5CFC: - ldr r0, [r6] - lsls r4, r5, #2 - adds r0, #4 - adds r0, r0, r4 - ldr r0, [r0] - cmp r0, #0 - beq _080C5D18 - bl DestroySprite - ldr r0, [r6] - adds r0, #4 - adds r0, r0, r4 - movs r1, #0 - str r1, [r0] -_080C5D18: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #6 - bls _080C5CFC - bl FreeAllSpritePalettes - movs r0, #2 - bl FreeSpriteTilesByTag - movs r0, #0 - bl FreeSpriteTilesByTag - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080C5D38: .4byte gUnknown_2039990 - thumb_func_end FreeCursorAndSymbolSprites - - thumb_func_start sub_080C5D3C -sub_080C5D3C: @ 0x080C5D3C - bx lr - .align 2, 0 - thumb_func_end sub_080C5D3C - - thumb_func_start ShowFrontierMap -ShowFrontierMap: @ 0x080C5D40 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _080C5D74 - ldr r0, [r5] - cmp r0, #0 - beq _080C5D52 - adds r0, r4, #0 - bl SetMainCallback2 -_080C5D52: - ldr r0, _080C5D78 - bl AllocZeroed - str r0, [r5] - str r4, [r0] - bl ResetTasks - ldr r0, _080C5D7C - movs r1, #0 - bl CreateTask - ldr r0, _080C5D80 - bl SetMainCallback2 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080C5D74: .4byte gUnknown_2039994 -_080C5D78: .4byte 0x00003014 -_080C5D7C: .4byte Task_HandleFrontierMap -_080C5D80: .4byte CB2_FrontierPass - thumb_func_end ShowFrontierMap - - thumb_func_start FreeFrontierMap -FreeFrontierMap: @ 0x080C5D84 - push {r4, lr} - bl ResetTasks - ldr r4, _080C5DB0 - ldr r0, [r4] - ldr r0, [r0] - bl SetMainCallback2 - ldr r0, [r4] - ldr r2, _080C5DB4 - movs r1, #0 - bl memset - ldr r0, [r4] - bl Free - movs r0, #0 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C5DB0: .4byte gUnknown_2039994 -_080C5DB4: .4byte 0x00003014 - thumb_func_end FreeFrontierMap - - thumb_func_start InitFrontierMap -InitFrontierMap: @ 0x080C5DB8 - push {r4, r5, lr} - sub sp, #8 - ldr r0, _080C5DD4 - ldr r0, [r0] - ldrh r0, [r0, #4] - cmp r0, #7 - bls _080C5DC8 - b _080C5F80 -_080C5DC8: - lsls r0, r0, #2 - ldr r1, _080C5DD8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C5DD4: .4byte gUnknown_203998C -_080C5DD8: .4byte _080C5DDC -_080C5DDC: @ jump table - .4byte _080C5DFC @ case 0 - .4byte _080C5E0C @ case 1 - .4byte _080C5E12 @ case 2 - .4byte _080C5E24 @ case 3 - .4byte _080C5EAC @ case 4 - .4byte _080C5ED4 @ case 5 - .4byte _080C5F14 @ case 6 - .4byte _080C5F64 @ case 7 -_080C5DFC: - movs r0, #0 - bl SetVBlankCallback - bl ScanlineEffect_Stop - bl SetVBlankHBlankCallbacksToNull - b _080C5F80 -_080C5E0C: - bl ResetGpuRegsAndBgs - b _080C5F80 -_080C5E12: - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetPaletteFade - bl reset_temp_tile_data_buffers - b _080C5F80 -_080C5E24: - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _080C5E9C - movs r0, #0 - movs r2, #3 - bl InitBgsFromTemplates - ldr r4, _080C5EA0 - ldr r1, [r4] - adds r1, #0x12 - movs r0, #0 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, _080C5EA4 - adds r1, r1, r0 - movs r0, #1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, _080C5EA8 - adds r1, r1, r0 - movs r0, #2 - bl SetBgTilemapBuffer - movs r5, #0x1e - str r5, [sp] - movs r4, #0x14 - str r4, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - str r5, [sp] - str r4, [sp, #4] - movs r0, #1 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - str r5, [sp] - str r4, [sp, #4] - movs r0, #2 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, #0 - bl CopyBgTilemapBufferToVram - movs r0, #1 - bl CopyBgTilemapBufferToVram - b _080C5F04 - .align 2, 0 -_080C5E9C: .4byte gUnknown_854AF18 -_080C5EA0: .4byte gUnknown_2039994 -_080C5EA4: .4byte 0x00001012 -_080C5EA8: .4byte 0x00002012 -_080C5EAC: - ldr r0, _080C5ECC - bl InitWindows - bl sub_08004480 - bl PrintOnFrontierMap - ldr r1, _080C5ED0 - movs r0, #0 - str r0, [sp] - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - b _080C5F80 - .align 2, 0 -_080C5ECC: .4byte gUnknown_854AF4C -_080C5ED0: .4byte gUnknown_8548168 -_080C5ED4: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C5F8A - ldr r0, _080C5F0C - movs r2, #0xd0 - lsls r2, r2, #1 - movs r1, #0 - bl LoadPalette - movs r0, #0 - bl stdpal_get - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - ldr r1, _080C5F10 - movs r0, #2 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer -_080C5F04: - movs r0, #2 - bl CopyBgTilemapBufferToVram - b _080C5F80 - .align 2, 0 -_080C5F0C: .4byte gUnknown_85467E4 -_080C5F10: .4byte gUnknown_85498F8 -_080C5F14: - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - bl InitFrontierMapSprites - ldr r0, _080C5F5C - bl SetVBlankCallback - movs r5, #1 - rsbs r5, r5, #0 - ldr r4, _080C5F60 - adds r0, r5, #0 - movs r1, #0x10 - adds r2, r4, #0 - bl BlendPalettes - str r4, [sp] - adds r0, r5, #0 - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - b _080C5F80 - .align 2, 0 -_080C5F5C: .4byte VblankCb_FrontierPass -_080C5F60: .4byte 0x00007FFF -_080C5F64: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _080C5F8A - ldr r0, _080C5F7C - ldr r0, [r0] - strh r1, [r0, #4] - movs r0, #1 - b _080C5F8C - .align 2, 0 -_080C5F7C: .4byte gUnknown_203998C -_080C5F80: - ldr r0, _080C5F94 - ldr r1, [r0] - ldrh r0, [r1, #4] - adds r0, #1 - strh r0, [r1, #4] -_080C5F8A: - movs r0, #0 -_080C5F8C: - add sp, #8 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080C5F94: .4byte gUnknown_203998C - thumb_func_end InitFrontierMap - - thumb_func_start sub_080C5F98 -sub_080C5F98: @ 0x080C5F98 - push {r4, lr} - sub sp, #4 - ldr r0, _080C5FB0 - ldr r0, [r0] - ldrh r0, [r0, #4] - cmp r0, #5 - bhi _080C6090 - lsls r0, r0, #2 - ldr r1, _080C5FB4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C5FB0: .4byte gUnknown_203998C -_080C5FB4: .4byte _080C5FB8 -_080C5FB8: @ jump table - .4byte _080C5FD0 @ case 0 - .4byte _080C5FE8 @ case 1 - .4byte _080C600E @ case 2 - .4byte _080C601E @ case 3 - .4byte _080C6060 @ case 4 - .4byte _080C606E @ case 5 -_080C5FD0: - movs r0, #1 - rsbs r0, r0, #0 - ldr r1, _080C5FE4 - str r1, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - b _080C6090 - .align 2, 0 -_080C5FE4: .4byte 0x00007FFF -_080C5FE8: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C609A - movs r0, #0 - movs r1, #0 - bl SetGpuReg - movs r0, #0 - bl HideBg - movs r0, #1 - bl HideBg - movs r0, #2 - bl HideBg - b _080C6090 -_080C600E: - movs r0, #0 - bl SetVBlankCallback - bl ScanlineEffect_Stop - bl SetVBlankHBlankCallbacksToNull - b _080C6090 -_080C601E: - ldr r4, _080C605C - ldr r0, [r4] - ldr r0, [r0, #4] - cmp r0, #0 - beq _080C6032 - bl DestroySprite - movs r0, #0 - bl FreeSpriteTilesByTag -_080C6032: - ldr r0, [r4] - ldr r0, [r0, #0xc] - cmp r0, #0 - beq _080C6044 - bl DestroySprite - movs r0, #1 - bl FreeSpriteTilesByTag -_080C6044: - ldr r0, [r4] - ldr r0, [r0, #8] - cmp r0, #0 - beq _080C6056 - bl DestroySprite - movs r0, #4 - bl FreeSpriteTilesByTag -_080C6056: - bl FreeAllWindowBuffers - b _080C6090 - .align 2, 0 -_080C605C: .4byte gUnknown_2039994 -_080C6060: - bl ResetGpuRegsAndBgs - bl ResetSpriteData - bl FreeAllSpritePalettes - b _080C6090 -_080C606E: - movs r0, #0 - bl UnsetBgTilemapBuffer - movs r0, #1 - bl UnsetBgTilemapBuffer - movs r0, #2 - bl UnsetBgTilemapBuffer - ldr r0, _080C608C - ldr r1, [r0] - movs r0, #0 - strh r0, [r1, #4] - movs r0, #1 - b _080C609C - .align 2, 0 -_080C608C: .4byte gUnknown_203998C -_080C6090: - ldr r0, _080C60A4 - ldr r1, [r0] - ldrh r0, [r1, #4] - adds r0, #1 - strh r0, [r1, #4] -_080C609A: - movs r0, #0 -_080C609C: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080C60A4: .4byte gUnknown_203998C - thumb_func_end sub_080C5F98 - - thumb_func_start Task_HandleFrontierMap -Task_HandleFrontierMap: @ 0x080C60A8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _080C60CC - adds r4, r0, r1 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #5 - bls _080C60C2 - b _080C61C6 -_080C60C2: - lsls r0, r0, #2 - ldr r1, _080C60D0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C60CC: .4byte gUnknown_3005B68 -_080C60D0: .4byte _080C60D4 -_080C60D4: @ jump table - .4byte _080C60EC @ case 0 - .4byte _080C60F2 @ case 1 - .4byte _080C6158 @ case 2 - .4byte _080C6180 @ case 3 - .4byte _080C61B0 @ case 4 - .4byte _080C61BA @ case 5 -_080C60EC: - bl InitFrontierMap - b _080C61B4 -_080C60F2: - ldr r0, _080C610C - ldrh r1, [r0, #0x2e] - movs r2, #2 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _080C6110 - movs r0, #3 - bl sub_080A306C - movs r0, #4 - b _080C61CA - .align 2, 0 -_080C610C: .4byte gUnknown_3002360 -_080C6110: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080C6134 - ldr r0, _080C612C - ldr r0, [r0] - ldrb r0, [r0, #0x10] - cmp r0, #5 - bls _080C6130 - movs r0, #0 - bl HandleFrontierMapCursorMove - b _080C61CC - .align 2, 0 -_080C612C: .4byte gUnknown_2039994 -_080C6130: - strh r2, [r4] - b _080C61CC -_080C6134: - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080C61CC - ldr r0, _080C6150 - ldr r0, [r0] - ldrb r0, [r0, #0x10] - cmp r0, #0 - bne _080C6154 - movs r0, #1 - bl HandleFrontierMapCursorMove - b _080C61CC - .align 2, 0 -_080C6150: .4byte gUnknown_2039994 -_080C6154: - movs r0, #3 - b _080C61CA -_080C6158: - movs r1, #2 - ldrsh r0, [r4, r1] - cmp r0, #3 - ble _080C616E - movs r0, #0 - bl HandleFrontierMapCursorMove - movs r0, #0 - strh r0, [r4, #2] - movs r0, #1 - b _080C61CA -_080C616E: - ldr r0, _080C617C - ldr r0, [r0] - ldr r1, [r0, #4] - ldrh r0, [r1, #0x22] - adds r0, #4 - b _080C61A0 - .align 2, 0 -_080C617C: .4byte gUnknown_2039994 -_080C6180: - movs r1, #2 - ldrsh r0, [r4, r1] - cmp r0, #3 - ble _080C6196 - movs r0, #1 - bl HandleFrontierMapCursorMove - movs r0, #0 - strh r0, [r4, #2] - movs r0, #1 - b _080C61CA -_080C6196: - ldr r0, _080C61AC - ldr r0, [r0] - ldr r1, [r0, #4] - ldrh r0, [r1, #0x22] - subs r0, #4 -_080C61A0: - strh r0, [r1, #0x22] - ldrh r0, [r4, #2] - adds r0, #1 - strh r0, [r4, #2] - b _080C61CC - .align 2, 0 -_080C61AC: .4byte gUnknown_2039994 -_080C61B0: - bl sub_080C5F98 -_080C61B4: - cmp r0, #0 - bne _080C61C6 - b _080C61CC -_080C61BA: - adds r0, r2, #0 - bl DestroyTask - bl FreeFrontierMap - b _080C61CC -_080C61C6: - ldrh r0, [r4] - adds r0, #1 -_080C61CA: - strh r0, [r4] -_080C61CC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Task_HandleFrontierMap - - thumb_func_start MapNumToFrontierFacilityId -MapNumToFrontierFacilityId: @ 0x080C61D4 - push {lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r2, _080C61F4 - adds r0, r0, r2 - lsrs r0, r0, #0x10 - cmp r0, #3 - bls _080C61F0 - adds r0, r1, #0 - subs r0, #0xf - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #2 - bhi _080C61F8 -_080C61F0: - movs r0, #1 - b _080C625A - .align 2, 0 -_080C61F4: .4byte 0xFFFB0000 -_080C61F8: - adds r0, r1, #0 - subs r0, #0x12 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #3 - bhi _080C6208 - movs r0, #2 - b _080C625A -_080C6208: - adds r0, r1, #0 - subs r0, #0x16 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #2 - bhi _080C6218 - movs r0, #3 - b _080C625A -_080C6218: - adds r0, r1, #0 - subs r0, #0x1c - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #2 - bhi _080C6228 - movs r0, #4 - b _080C625A -_080C6228: - adds r0, r1, #0 - subs r0, #0x1f - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #2 - bhi _080C6238 - movs r0, #5 - b _080C625A -_080C6238: - adds r0, r1, #0 - subs r0, #0x22 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #5 - bhi _080C6248 - movs r0, #6 - b _080C625A -_080C6248: - adds r0, r1, #0 - subs r0, #0x19 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #2 - bls _080C6258 - movs r0, #0 - b _080C625A -_080C6258: - movs r0, #7 -_080C625A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MapNumToFrontierFacilityId - - thumb_func_start InitFrontierMapSprites -InitFrontierMapSprites: @ 0x080C6260 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x18 - movs r7, #0 - bl FreeAllSpritePalettes - ldr r0, _080C6368 - bl LoadSpritePalettes - ldr r6, _080C636C - adds r0, r6, #0 - bl LoadCompressedSpriteSheet - ldr r0, _080C6370 - mov r8, r0 - ldr r4, _080C6374 - ldr r0, [r4] - ldrb r2, [r0, #0x10] - lsls r2, r2, #4 - adds r2, #8 - mov r0, r8 - movs r1, #0x9b - movs r3, #2 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r0, [r4] - lsls r1, r3, #4 - adds r1, r1, r3 - lsls r1, r1, #2 - ldr r2, _080C6378 - mov sb, r2 - add r1, sb - str r1, [r0, #4] - ldrb r2, [r1, #5] - movs r5, #0xd - rsbs r5, r5, #0 - adds r0, r5, #0 - ands r0, r2 - strb r0, [r1, #5] - ldr r0, [r4] - ldr r1, [r0, #4] - adds r1, #0x3f - ldrb r0, [r1] - movs r2, #1 - orrs r0, r2 - strb r0, [r1] - ldr r0, [r4] - ldr r0, [r0, #4] - movs r1, #1 - bl StartSpriteAnim - adds r6, #8 - adds r0, r6, #0 - bl LoadCompressedSpriteSheet - movs r3, #0x18 - add r8, r3 - ldr r6, _080C637C - ldr r0, [r4] - ldrb r0, [r0, #0x10] - lsls r0, r0, #4 - adds r0, r0, r6 - movs r2, #8 - ldrsh r1, [r0, r2] - movs r3, #0xa - ldrsh r2, [r0, r3] - mov r0, r8 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r1, [r4] - lsls r0, r3, #4 - adds r0, r0, r3 - lsls r0, r0, #2 - add r0, sb - str r0, [r1, #0xc] - ldrb r1, [r0, #5] - ands r5, r1 - strb r5, [r0, #5] - ldr r1, [r4] - ldr r0, [r1, #0xc] - ldrb r1, [r1, #0x10] - lsls r1, r1, #4 - adds r1, r1, r6 - ldrb r1, [r1, #0xc] - bl StartSpriteAnim - bl GetCurrentRegionMapSectionId - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0x3a - beq _080C632C - cmp r5, #0xca - beq _080C632C - b _080C6466 -_080C632C: - ldr r4, _080C6380 - ldr r2, [r4] - movs r0, #5 - ldrsb r0, [r2, r0] - cmp r0, #4 - beq _080C633E - cmp r0, #0xe - bne _080C6384 - movs r7, #0x37 -_080C633E: - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - ldrh r6, [r2] - adds r0, r0, r6 - ldrh r4, [r2, #2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _080C6352 - adds r0, #7 -_080C6352: - lsls r0, r0, #0xd - lsrs r7, r0, #0x10 - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _080C6360 - adds r0, #7 -_080C6360: - lsls r0, r0, #0xd - lsrs r4, r0, #0x10 - movs r5, #0 - b _080C63DE - .align 2, 0 -_080C6368: .4byte gUnknown_854B008 -_080C636C: .4byte gUnknown_854AFE0 -_080C6370: .4byte gUnknown_854B0D8 -_080C6374: .4byte gUnknown_2039994 -_080C6378: .4byte gUnknown_20205AC -_080C637C: .4byte gUnknown_854B174 -_080C6380: .4byte gUnknown_3005AEC -_080C6384: - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl MapNumToFrontierFacilityId - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - beq _080C63A0 - subs r0, r5, #1 - lsls r0, r0, #4 - adds r0, r0, r6 - ldrh r7, [r0, #8] - ldrh r4, [r0, #0xa] - b _080C63DE -_080C63A0: - ldr r1, [r4] - adds r0, r1, #0 - adds r0, #0x25 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0xe - bne _080C63BA - ldrh r0, [r1, #0x28] - adds r0, #0x37 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - b _080C63BC -_080C63BA: - ldrh r7, [r1, #0x28] -_080C63BC: - ldr r0, _080C6408 - ldr r0, [r0] - ldrh r4, [r0, #0x2a] - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _080C63CC - adds r0, #7 -_080C63CC: - lsls r0, r0, #0xd - lsrs r7, r0, #0x10 - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _080C63DA - adds r0, #7 -_080C63DA: - lsls r0, r0, #0xd - lsrs r4, r0, #0x10 -_080C63DE: - ldr r0, _080C640C - bl LoadCompressedSpriteSheet - mov r1, sp - ldr r0, _080C6410 - ldm r0!, {r2, r3, r6} - stm r1!, {r2, r3, r6} - ldm r0!, {r2, r3, r6} - stm r1!, {r2, r3, r6} - mov r1, sp - ldr r0, _080C6414 - ldr r0, [r0] - ldrb r0, [r0, #8] - adds r0, #4 - strh r0, [r1, #2] - cmp r5, #0 - beq _080C6418 - lsls r1, r7, #0x10 - asrs r1, r1, #0x10 - lsls r2, r4, #0x10 - b _080C642A - .align 2, 0 -_080C6408: .4byte gUnknown_3005AEC -_080C640C: .4byte gUnknown_854AFF8 -_080C6410: .4byte gUnknown_854B120 -_080C6414: .4byte gUnknown_3005AF0 -_080C6418: - lsls r1, r7, #0x13 - lsls r2, r4, #0x13 - movs r0, #0xa0 - lsls r0, r0, #0xd - adds r1, r1, r0 - asrs r1, r1, #0x10 - movs r3, #0x90 - lsls r3, r3, #0xe - adds r2, r2, r3 -_080C642A: - asrs r2, r2, #0x10 - mov r0, sp - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r4, _080C6474 - ldr r2, [r4] - lsls r1, r3, #4 - adds r1, r1, r3 - lsls r1, r1, #2 - ldr r0, _080C6478 - adds r1, r1, r0 - str r1, [r2, #8] - ldrb r2, [r1, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #5] - ldr r0, _080C647C - ldr r0, [r0] - ldrb r0, [r0, #8] - cmp r0, #0 - beq _080C6466 - ldr r0, [r4] - ldr r0, [r0, #8] - movs r1, #1 - bl StartSpriteAnim -_080C6466: - add sp, #0x18 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080C6474: .4byte gUnknown_2039994 -_080C6478: .4byte gUnknown_20205AC -_080C647C: .4byte gUnknown_3005AF0 - thumb_func_end InitFrontierMapSprites - - thumb_func_start PrintOnFrontierMap -PrintOnFrontierMap: @ 0x080C6480 - push {r4, r5, r6, lr} - sub sp, #0xc - movs r4, #0 -_080C6486: - adds r0, r4, #0 - bl PutWindowTilemap - adds r0, r4, #0 - movs r1, #0 - bl FillWindowPixelBuffer - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #2 - bls _080C6486 - movs r4, #0 - movs r6, #0 - ldr r5, _080C64D0 -_080C64A4: - ldr r0, _080C64D4 - ldr r0, [r0] - ldrb r0, [r0, #0x10] - cmp r4, r0 - bne _080C64DC - lsls r1, r4, #4 - adds r3, r1, #2 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r0, _080C64D8 - str r0, [sp] - str r6, [sp, #4] - adds r1, r1, r5 - ldr r0, [r1] - str r0, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r2, #4 - bl AddTextPrinterParameterized3 - b _080C64FA - .align 2, 0 -_080C64D0: .4byte gUnknown_854B174 -_080C64D4: .4byte gUnknown_2039994 -_080C64D8: .4byte gUnknown_854AF72 -_080C64DC: - lsls r1, r4, #4 - adds r3, r1, #2 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r0, _080C654C - str r0, [sp] - str r6, [sp, #4] - adds r1, r1, r5 - ldr r0, [r1] - str r0, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r2, #4 - bl AddTextPrinterParameterized3 -_080C64FA: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #6 - bls _080C64A4 - ldr r0, _080C6550 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - ldr r1, _080C6554 - ldr r0, _080C6558 - ldr r0, [r0] - ldrb r0, [r0, #0x10] - lsls r0, r0, #4 - adds r1, #4 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp, #8] - movs r0, #2 - movs r1, #1 - movs r2, #4 - movs r3, #1 - bl AddTextPrinterParameterized3 - movs r4, #0 -_080C652C: - adds r0, r4, #0 - movs r1, #3 - bl CopyWindowToVram - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #2 - bls _080C652C - movs r0, #0 - bl CopyBgTilemapBufferToVram - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080C654C: .4byte gUnknown_854AF6F -_080C6550: .4byte gUnknown_854AF6C -_080C6554: .4byte gUnknown_854B174 -_080C6558: .4byte gUnknown_2039994 - thumb_func_end PrintOnFrontierMap - - thumb_func_start HandleFrontierMapCursorMove -HandleFrontierMapCursorMove: @ 0x080C655C - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0xc - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C6578 - ldr r0, _080C6574 - ldr r4, [r0] - ldrb r5, [r4, #0x10] - adds r0, r5, #6 - b _080C6580 - .align 2, 0 -_080C6574: .4byte gUnknown_2039994 -_080C6578: - ldr r0, _080C6660 - ldr r4, [r0] - ldrb r5, [r4, #0x10] - adds r0, r5, #1 -_080C6580: - movs r1, #7 - bl __modsi3 - strb r0, [r4, #0x10] - lsls r0, r5, #4 - adds r3, r0, #2 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r6, _080C6664 - str r6, [sp] - movs r1, #0 - mov r8, r1 - str r1, [sp, #4] - ldr r4, _080C6668 - adds r0, r0, r4 - ldr r0, [r0] - str r0, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r2, #4 - bl AddTextPrinterParameterized3 - ldr r5, _080C6660 - ldr r1, [r5] - ldrb r3, [r1, #0x10] - lsls r3, r3, #4 - adds r3, #2 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r6, #3 - str r0, [sp] - mov r0, r8 - str r0, [sp, #4] - ldrb r0, [r1, #0x10] - lsls r0, r0, #4 - adds r0, r0, r4 - ldr r0, [r0] - str r0, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r2, #4 - bl AddTextPrinterParameterized3 - ldr r1, [r5] - ldr r2, [r1, #4] - ldrb r0, [r1, #0x10] - lsls r0, r0, #4 - adds r0, #8 - strh r0, [r2, #0x22] - ldr r0, [r1, #0xc] - ldrb r1, [r1, #0x10] - lsls r1, r1, #4 - adds r1, r1, r4 - ldrb r1, [r1, #0xc] - bl StartSpriteAnim - ldr r1, [r5] - ldr r2, [r1, #0xc] - ldrb r0, [r1, #0x10] - lsls r0, r0, #4 - adds r0, r0, r4 - ldrh r0, [r0, #8] - strh r0, [r2, #0x20] - ldr r2, [r1, #0xc] - ldrb r0, [r1, #0x10] - lsls r0, r0, #4 - adds r0, r0, r4 - ldrh r0, [r0, #0xa] - strh r0, [r2, #0x22] - movs r0, #2 - movs r1, #0 - bl FillWindowPixelBuffer - subs r6, #3 - str r6, [sp] - mov r1, r8 - str r1, [sp, #4] - ldr r0, [r5] - ldrb r0, [r0, #0x10] - lsls r0, r0, #4 - adds r4, #4 - adds r0, r0, r4 - ldr r0, [r0] - str r0, [sp, #8] - movs r0, #2 - movs r1, #1 - movs r2, #4 - movs r3, #1 - bl AddTextPrinterParameterized3 - movs r4, #0 -_080C6636: - adds r0, r4, #0 - movs r1, #3 - bl CopyWindowToVram - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #2 - bls _080C6636 - movs r0, #0 - bl CopyBgTilemapBufferToVram - movs r0, #0x6c - bl sub_080A306C - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080C6660: .4byte gUnknown_2039994 -_080C6664: .4byte gUnknown_854AF6F -_080C6668: .4byte gUnknown_854B174 - thumb_func_end HandleFrontierMapCursorMove - - thumb_func_start sub_080C666C -sub_080C666C: @ 0x080C666C - push {r4, r5, r6, lr} - sub sp, #0xc - adds r5, r0, #0 - adds r6, r1, #0 - ldr r0, [sp, #0x1c] - lsls r2, r2, #0x18 - lsls r3, r3, #0x10 - lsrs r4, r3, #0x10 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r2, #0 - bne _080C6686 - movs r3, #0 -_080C6686: - movs r0, #0xf - movs r1, #0xe - str r0, [sp] - str r1, [sp, #4] - ldr r0, [sp, #0x20] - str r0, [sp, #8] - adds r0, r5, #0 - adds r1, r6, #0 - adds r2, r4, #0 - bl sub_080C6738 - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_080C666C - - thumb_func_start sub_080C66A4 -sub_080C66A4: @ 0x080C66A4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x10 - adds r4, r0, #0 - adds r5, r1, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r8, r2 - lsls r3, r3, #0x18 - lsrs r7, r3, #0x18 - movs r6, #0 -_080C66BC: - movs r3, #0 - ldrb r0, [r4] - adds r1, r0, #0 - adds r2, r0, #0 - cmp r1, #0xff - beq _080C672A -_080C66C8: - mov r0, sp - adds r0, r0, r3 - adds r0, #8 - strb r2, [r0] - adds r4, #1 - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #3 - bhi _080C6704 - ldrb r0, [r4] - adds r1, r0, #0 - adds r2, r0, #0 - cmp r1, #0xff - bne _080C66C8 - cmp r3, #0 - beq _080C672A - movs r6, #1 - cmp r3, #3 - bhi _080C6704 - movs r2, #0 -_080C66F2: - adds r0, r3, #0 - adds r1, r0, #1 - lsls r1, r1, #0x10 - lsrs r3, r1, #0x10 - add r0, sp - adds r0, #8 - strb r2, [r0] - cmp r3, #3 - bls _080C66F2 -_080C6704: - mov r1, sp - adds r1, r1, r3 - adds r1, #8 - movs r0, #0xff - strb r0, [r1] - str r7, [sp] - ldr r0, [sp, #0x28] - str r0, [sp, #4] - add r0, sp, #8 - adds r1, r5, #0 - mov r2, r8 - movs r3, #0x80 - bl sub_080C666C - movs r0, #0x80 - lsls r0, r0, #1 - adds r5, r5, r0 - cmp r6, #0 - beq _080C66BC -_080C672A: - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080C66A4 - - thumb_func_start sub_080C6738 -sub_080C6738: @ 0x080C6738 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x2c - str r0, [sp, #0x20] - str r1, [sp, #0x24] - adds r6, r3, #0 - ldr r0, [sp, #0x4c] - mov sb, r0 - ldr r1, [sp, #0x50] - mov sl, r1 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - str r2, [sp, #0x28] - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov r2, sb - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sb, r2 - mov r0, sl - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - movs r0, #0 - movs r1, #0 - str r0, [sp, #0x18] - str r1, [sp, #0x1c] - ldr r0, [sp, #0x20] - bl StringLength_Multibyte - lsls r0, r0, #0x18 - ldr r2, _080C6824 - ldr r1, [sp, #0x18] - ands r1, r2 - orrs r1, r0 - str r1, [sp, #0x18] - ldr r1, _080C6828 - add r2, sp, #0x18 - mov r8, r2 - ldr r0, [r2, #4] - ands r0, r1 - movs r1, #2 - orrs r0, r1 - str r0, [r2, #4] - ldr r5, [sp, #0x18] - lsrs r5, r5, #0x18 - lsls r5, r5, #5 - mov r0, r8 - bl AddWindow - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r1, r6, #4 - orrs r1, r6 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl FillWindowPixelBuffer - adds r0, r4, #0 - movs r1, #7 - bl GetWindowAttribute - adds r7, r0, #0 - mov r0, r8 - ldrb r0, [r0, #3] - lsls r0, r0, #5 - mov r8, r0 - add r8, r7 - add r0, sp, #0x14 - movs r1, #0 - strb r6, [r0] - mov r2, sb - strb r2, [r0, #1] - mov r2, sl - strb r2, [r0, #2] - str r1, [sp] - str r1, [sp, #4] - str r0, [sp, #8] - movs r0, #1 - rsbs r0, r0, #0 - str r0, [sp, #0xc] - ldr r0, [sp, #0x20] - str r0, [sp, #0x10] - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized4 - lsrs r5, r5, #1 - adds r0, r7, #0 - ldr r1, [sp, #0x24] - adds r2, r5, #0 - bl CpuSet - ldr r2, [sp, #0x24] - ldr r0, [sp, #0x28] - adds r1, r2, r0 - mov r0, r8 - adds r2, r5, #0 - bl CpuSet - adds r0, r4, #0 - bl RemoveWindow - add sp, #0x2c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080C6824: .4byte 0x00FFFFFF -_080C6828: .4byte 0xFFFFFF00 - thumb_func_end sub_080C6738 - - thumb_func_start CountMonsInBox -CountMonsInBox: @ 0x080C682C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r4, #0 - movs r5, #0 -_080C6836: - lsls r1, r4, #0x18 - lsrs r1, r1, #0x18 - adds r0, r6, #0 - movs r2, #0xb - bl GetBoxMonDataAt - cmp r0, #0 - beq _080C684C - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_080C684C: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x1d - bls _080C6836 - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end CountMonsInBox - - thumb_func_start GetFirstFreeBoxSpot -GetFirstFreeBoxSpot: @ 0x080C6860 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r4, #0 -_080C6868: - lsls r1, r4, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - movs r2, #0xb - bl GetBoxMonDataAt - cmp r0, #0 - bne _080C687E - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - b _080C688C -_080C687E: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x1d - bls _080C6868 - movs r0, #1 - rsbs r0, r0, #0 -_080C688C: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetFirstFreeBoxSpot - - thumb_func_start CountPartyNonEggMons -CountPartyNonEggMons: @ 0x080C6894 - push {r4, r5, r6, lr} - movs r5, #0 - movs r6, #0 -_080C689A: - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _080C68D8 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _080C68C2 - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - bne _080C68C2 - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_080C68C2: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #5 - bls _080C689A - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080C68D8: .4byte gUnknown_2024190 - thumb_func_end CountPartyNonEggMons - - thumb_func_start CountPartyAliveNonEggMonsExcept -CountPartyAliveNonEggMonsExcept: @ 0x080C68DC - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - movs r5, #0 - movs r6, #0 - lsrs r7, r0, #0x18 -_080C68E6: - cmp r5, r7 - beq _080C691E - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _080C6934 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _080C691E - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - bne _080C691E - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _080C691E - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_080C691E: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #5 - bls _080C68E6 - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080C6934: .4byte gUnknown_2024190 - thumb_func_end CountPartyAliveNonEggMonsExcept - - thumb_func_start CountPartyAliveNonEggMons_IgnoreVar0x8004Slot -CountPartyAliveNonEggMons_IgnoreVar0x8004Slot: @ 0x080C6938 - push {lr} - ldr r0, _080C694C - ldrb r0, [r0] - bl CountPartyAliveNonEggMonsExcept - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_080C694C: .4byte gUnknown_2037280 - thumb_func_end CountPartyAliveNonEggMons_IgnoreVar0x8004Slot - - thumb_func_start CountPartyMons -CountPartyMons: @ 0x080C6950 - push {r4, r5, lr} - movs r4, #0 - movs r5, #0 -_080C6956: - movs r0, #0x64 - muls r0, r4, r0 - ldr r1, _080C6984 - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _080C696E - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_080C696E: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #5 - bls _080C6956 - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080C6984: .4byte gUnknown_2024190 - thumb_func_end CountPartyMons - - thumb_func_start StringCopyAndFillWithSpaces -StringCopyAndFillWithSpaces: @ 0x080C6988 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r4, r2, #0x10 - lsrs r4, r4, #0x10 - bl StringCopy - adds r1, r0, #0 - adds r5, r5, r4 - cmp r1, r5 - bhs _080C69A6 - movs r0, #0 -_080C699E: - strb r0, [r1] - adds r1, #1 - cmp r1, r5 - blo _080C699E -_080C69A6: - movs r0, #0xff - strb r0, [r1] - adds r0, r1, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end StringCopyAndFillWithSpaces - - thumb_func_start sub_080C69B4 -sub_080C69B4: @ 0x080C69B4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - adds r7, r3, #0 - ldr r5, [sp, #0x1c] - ldr r4, [sp, #0x20] - ldr r0, [sp, #0x24] - mov sb, r0 - ldr r0, [sp, #0x28] - ldr r3, [sp, #0x2c] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - mov r0, sb - lsls r0, r0, #0x11 - mov sb, r0 - lsrs r2, r2, #0xb - adds r2, r2, r1 - lsls r2, r2, #1 - adds r6, r6, r2 - adds r0, r4, #0 - muls r0, r3, r0 - adds r0, r0, r5 - lsls r0, r0, #1 - adds r7, r7, r0 - movs r4, #0 - cmp r4, r8 - bhs _080C6A24 - mov r0, sb - lsrs r0, r0, #1 - mov sb, r0 - lsls r5, r3, #1 -_080C6A0A: - adds r0, r7, #0 - adds r1, r6, #0 - mov r3, sb - lsrs r2, r3, #0x10 - bl CpuSet - adds r6, #0x40 - adds r7, r7, r5 - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, r8 - blo _080C6A0A -_080C6A24: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_080C69B4 - - thumb_func_start sub_080C6A30 -sub_080C6A30: @ 0x080C6A30 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - adds r4, r0, #0 - ldr r0, [sp, #0x28] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sl, r0 - lsrs r2, r2, #0xb - adds r2, r2, r1 - lsls r2, r2, #1 - adds r4, r4, r2 - lsls r3, r3, #0x11 - lsrs r0, r3, #0x10 - str r0, [sp, #4] - movs r0, #0 - cmp r0, sl - bhs _080C6ADA - movs r6, #0x80 - lsls r6, r6, #5 - mov r5, sp - ldr r7, _080C6A9C - lsrs r3, r3, #0x11 - mov sb, r3 - mov r1, sb - movs r2, #0x81 - lsls r2, r2, #0x18 - orrs r1, r2 - mov sb, r1 -_080C6A76: - adds r3, r4, #0 - ldr r2, [sp, #4] - movs r1, #0x40 - adds r1, r1, r4 - mov r8, r1 - adds r0, #1 - mov ip, r0 - cmp r2, r6 - bhi _080C6AA0 - movs r0, #0 - strh r0, [r5] - mov r2, sp - str r2, [r7] - str r4, [r7, #4] - mov r0, sb - str r0, [r7, #8] - ldr r0, [r7, #8] - b _080C6ACE - .align 2, 0 -_080C6A9C: .4byte 0x040000D4 -_080C6AA0: - movs r4, #0 - strh r4, [r5] - ldr r1, _080C6AEC - mov r0, sp - str r0, [r1] - str r3, [r1, #4] - ldr r0, _080C6AF0 - str r0, [r1, #8] - ldr r0, [r1, #8] - adds r3, r3, r6 - subs r2, r2, r6 - cmp r2, r6 - bhi _080C6AA0 - strh r4, [r5] - mov r0, sp - str r0, [r1] - str r3, [r1, #4] - lsrs r0, r2, #1 - movs r2, #0x81 - lsls r2, r2, #0x18 - orrs r0, r2 - str r0, [r1, #8] - ldr r0, [r1, #8] -_080C6ACE: - mov r4, r8 - mov r1, ip - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - cmp r0, sl - blo _080C6A76 -_080C6ADA: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080C6AEC: .4byte 0x040000D4 -_080C6AF0: .4byte 0x81000800 - thumb_func_end sub_080C6A30 - - thumb_func_start Task_PokemonStorageSystemPC -Task_PokemonStorageSystemPC: @ 0x080C6AF4 - push {r4, r5, r6, r7, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _080C6B1C - adds r5, r0, r1 - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #4 - bls _080C6B10 - b _080C6DF6 -_080C6B10: - lsls r0, r0, #2 - ldr r1, _080C6B20 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C6B1C: .4byte gUnknown_3005B60 -_080C6B20: .4byte _080C6B24 -_080C6B24: @ jump table - .4byte _080C6B38 @ case 0 - .4byte _080C6B98 @ case 1 - .4byte _080C6BAC @ case 2 - .4byte _080C6CF6 @ case 3 - .4byte _080C6DD0 @ case 4 -_080C6B38: - ldrb r0, [r5, #0xa] - adds r1, r5, #0 - adds r1, #0x26 - bl sub_080C6E88 - bl sub_08196F98 - movs r0, #0 - movs r1, #0 - bl sub_08196FB8 - movs r0, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r1, _080C6B94 - movs r2, #0xa - ldrsh r0, [r5, r2] - lsls r0, r0, #3 - adds r1, #4 - adds r0, r0, r1 - ldr r2, [r0] - movs r0, #0 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - movs r0, #3 - str r0, [sp, #0xc] - movs r0, #0 - movs r1, #1 - movs r3, #0xff - bl AddTextPrinterParameterized2 - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - ldrh r0, [r5, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #3 - bl CopyWindowToVram - b _080C6BA4 - .align 2, 0 -_080C6B94: .4byte gUnknown_854B1E4 -_080C6B98: - bl IsWeatherNotFadingIn - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C6BA4 - b _080C6DF6 -_080C6BA4: - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - b _080C6DF6 -_080C6BAC: - bl Menu_ProcessInput - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - strh r0, [r5, #0xc] - movs r3, #0xc - ldrsh r1, [r5, r3] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _080C6C5C - cmp r1, r0 - bgt _080C6BCE - subs r0, #1 - cmp r1, r0 - beq _080C6BD4 - b _080C6C82 -_080C6BCE: - cmp r1, #4 - beq _080C6C5C - b _080C6C82 -_080C6BD4: - ldrh r3, [r5, #0xa] - strh r3, [r5, #0xe] - ldr r2, _080C6C54 - ldrh r1, [r2, #0x2e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080C6BF2 - subs r0, r3, #1 - strh r0, [r5, #0xe] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _080C6BF2 - movs r0, #4 - strh r0, [r5, #0xe] -_080C6BF2: - ldrh r1, [r2, #0x2e] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080C6C0E - ldrh r0, [r5, #0xe] - adds r0, #1 - strh r0, [r5, #0xe] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - ble _080C6C0E - movs r0, #0 - strh r0, [r5, #0xe] -_080C6C0E: - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - ldrh r2, [r5, #0xe] - movs r3, #0xe - ldrsh r1, [r5, r3] - cmp r0, r1 - bne _080C6C1E - b _080C6DF6 -_080C6C1E: - movs r4, #0 - strh r2, [r5, #0xa] - movs r0, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r1, _080C6C58 - movs r2, #0xa - ldrsh r0, [r5, r2] - lsls r0, r0, #3 - adds r1, #4 - adds r0, r0, r1 - ldr r2, [r0] - str r4, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - movs r0, #3 - str r0, [sp, #0xc] - movs r0, #0 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized2 - b _080C6DF6 - .align 2, 0 -_080C6C54: .4byte gUnknown_3002360 -_080C6C58: .4byte gUnknown_854B1E4 -_080C6C5C: - ldrh r0, [r5, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - bl sub_08197060 - bl sub_080987E8 - bl EnableBothScriptContexts - ldrh r0, [r5, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl RemoveWindow - adds r0, r4, #0 - bl DestroyTask - b _080C6DF6 -_080C6C82: - movs r3, #0xc - ldrsh r4, [r5, r3] - cmp r4, #0 - bne _080C6CB4 - bl CountPartyMons - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #6 - bne _080C6CB4 - movs r0, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r2, _080C6CB0 - str r4, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - movs r4, #3 - str r4, [sp, #0xc] - b _080C6DBE - .align 2, 0 -_080C6CB0: .4byte gUnknown_85CB55C -_080C6CB4: - movs r1, #0xc - ldrsh r0, [r5, r1] - cmp r0, #1 - bne _080C6CE8 - bl CountPartyMons - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #1 - bne _080C6CE8 - movs r0, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r2, _080C6CE4 - movs r0, #0 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - str r4, [sp, #8] - movs r4, #3 - str r4, [sp, #0xc] - b _080C6DBE - .align 2, 0 -_080C6CE4: .4byte gUnknown_85CB534 -_080C6CE8: - movs r0, #1 - movs r1, #0 - bl FadeScreen - movs r0, #4 - strh r0, [r5, #8] - b _080C6DF6 -_080C6CF6: - ldr r0, _080C6D20 - ldrh r1, [r0, #0x2e] - movs r7, #3 - adds r4, r7, #0 - ands r4, r1 - cmp r4, #0 - beq _080C6D28 - movs r0, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r1, _080C6D24 - movs r2, #0xa - ldrsh r0, [r5, r2] - lsls r0, r0, #3 - adds r1, #4 - adds r0, r0, r1 - ldr r2, [r0] - movs r0, #0 - str r0, [sp] - b _080C6DB4 - .align 2, 0 -_080C6D20: .4byte gUnknown_3002360 -_080C6D24: .4byte gUnknown_854B1E4 -_080C6D28: - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0 - beq _080C6D74 - ldrh r0, [r5, #0xa] - subs r0, #1 - strh r0, [r5, #0xa] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _080C6D44 - movs r0, #4 - strh r0, [r5, #0xa] -_080C6D44: - movs r0, #1 - rsbs r0, r0, #0 - bl Menu_MoveCursor - bl Menu_GetCursorPos - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0xa] - movs r0, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r1, _080C6D70 - movs r3, #0xa - ldrsh r0, [r5, r3] - lsls r0, r0, #3 - adds r1, #4 - adds r0, r0, r1 - ldr r2, [r0] - str r4, [sp] - b _080C6DB4 - .align 2, 0 -_080C6D70: .4byte gUnknown_854B1E4 -_080C6D74: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080C6DF6 - ldrh r0, [r5, #0xa] - adds r0, #1 - strh r0, [r5, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - ble _080C6D8C - strh r6, [r5, #0xa] -_080C6D8C: - movs r0, #1 - bl Menu_MoveCursor - bl Menu_GetCursorPos - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0xa] - movs r0, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r1, _080C6DCC - movs r2, #0xa - ldrsh r0, [r5, r2] - lsls r0, r0, #3 - adds r1, #4 - adds r0, r0, r1 - ldr r2, [r0] - str r6, [sp] -_080C6DB4: - movs r4, #2 - str r4, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - str r7, [sp, #0xc] -_080C6DBE: - movs r0, #0 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized2 - strh r4, [r5, #8] - b _080C6DF6 - .align 2, 0 -_080C6DCC: .4byte gUnknown_854B1E4 -_080C6DD0: - ldr r0, _080C6E00 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080C6DF6 - bl CleanupOverworldWindowsAndTilemaps - ldrb r0, [r5, #0xc] - bl Cb2_EnterPSS - ldrh r0, [r5, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl RemoveWindow - adds r0, r4, #0 - bl DestroyTask -_080C6DF6: - add sp, #0x10 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080C6E00: .4byte gUnknown_2037C74 - thumb_func_end Task_PokemonStorageSystemPC - - thumb_func_start ShowPokemonStorageSystemPC -ShowPokemonStorageSystemPC: @ 0x080C6E04 - push {lr} - ldr r0, _080C6E2C - movs r1, #0x50 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080C6E30 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r0, #0 - strh r0, [r1, #8] - strh r0, [r1, #0xa] - bl sub_080987DC - pop {r0} - bx r0 - .align 2, 0 -_080C6E2C: .4byte Task_PokemonStorageSystemPC -_080C6E30: .4byte gUnknown_3005B60 - thumb_func_end ShowPokemonStorageSystemPC - - thumb_func_start FieldCb_ReturnToPcMenu -FieldCb_ReturnToPcMenu: @ 0x080C6E34 - push {r4, r5, lr} - ldr r0, _080C6E78 - ldr r5, [r0, #0xc] - movs r0, #0 - bl SetVBlankCallback - ldr r4, _080C6E7C - adds r0, r4, #0 - movs r1, #0x50 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080C6E80 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r2, #0 - strh r2, [r1, #8] - ldr r2, _080C6E84 - ldrb r2, [r2] - strh r2, [r1, #0xa] - bl _call_via_r4 - adds r0, r5, #0 - bl SetVBlankCallback - bl pal_fill_black - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080C6E78: .4byte gUnknown_3002360 -_080C6E7C: .4byte Task_PokemonStorageSystemPC -_080C6E80: .4byte gUnknown_3005B60 -_080C6E84: .4byte gUnknown_20399A0 - thumb_func_end FieldCb_ReturnToPcMenu - - thumb_func_start sub_080C6E88 -sub_080C6E88: @ 0x080C6E88 - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - sub sp, #0xc - adds r6, r0, #0 - mov sl, r1 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - ldr r0, _080C6F08 - bl AddWindow - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r4, r5, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #0 - bl sub_08196FF0 - movs r0, #1 - movs r1, #0 - bl GetFontAttribute - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r0, #0x10 - mov sb, r0 - str r0, [sp] - movs r0, #5 - mov r8, r0 - str r0, [sp, #4] - ldr r0, _080C6F0C - str r0, [sp, #8] - adds r0, r4, #0 - movs r1, #1 - movs r3, #2 - bl PrintTextArray - mov r0, sb - str r0, [sp] - mov r0, r8 - str r0, [sp, #4] - str r6, [sp, #8] - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl sub_081984B0 - mov r0, sl - strh r5, [r0] - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080C6F08: .4byte gUnknown_854B20C -_080C6F0C: .4byte gUnknown_854B1E4 - thumb_func_end sub_080C6E88 - - thumb_func_start Cb2_ExitPSS -Cb2_ExitPSS: @ 0x080C6F10 - push {lr} - bl sub_080CA714 - ldr r1, _080C6F2C - strb r0, [r1] - ldr r1, _080C6F30 - ldr r0, _080C6F34 - str r0, [r1] - ldr r0, _080C6F38 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080C6F2C: .4byte gUnknown_20399A0 -_080C6F30: .4byte gUnknown_3005B0C -_080C6F34: .4byte FieldCb_ReturnToPcMenu -_080C6F38: .4byte sub_08085A30 - thumb_func_end Cb2_ExitPSS - - thumb_func_start sub_080C6F3C -sub_080C6F3C: @ 0x080C6F3C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r0 - lsls r1, r1, #0x18 - lsrs r0, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r4, r3, #0 - ldr r2, _080C6FA0 - cmp r3, #1 - bhi _080C6F5E - movs r2, #1 - cmp r3, #1 - beq _080C6F62 -_080C6F5E: - cmp r4, #3 - bne _080C6FAC -_080C6F62: - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r2, r2, #0x10 - asrs r1, r2, #0x10 - adds r1, r1, r0 - lsls r0, r1, #0x10 - asrs r1, r0, #0x10 - adds r6, r2, #0 - cmp r1, #0 - blt _080C6FF8 - cmp r1, r7 - bgt _080C6FF8 -_080C6F7A: - asrs r4, r0, #0x10 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #4 - add r0, r8 - movs r1, #0xb - bl sub_0806A1B4 - cmp r0, #0 - bne _080C6FA4 - asrs r0, r6, #0x10 - adds r0, r4, r0 - lsls r0, r0, #0x10 - asrs r2, r0, #0x10 - cmp r2, #0 - blt _080C6FF8 - cmp r2, r7 - ble _080C6F7A - b _080C6FF8 - .align 2, 0 -_080C6FA0: .4byte 0x0000FFFF -_080C6FA4: - adds r0, r4, #0 - b _080C6FFC -_080C6FA8: - adds r0, r5, #0 - b _080C6FFC -_080C6FAC: - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r2, r2, #0x10 - asrs r1, r2, #0x10 - adds r1, r1, r0 - lsls r0, r1, #0x10 - asrs r1, r0, #0x10 - adds r6, r2, #0 - cmp r1, #0 - blt _080C6FF8 - cmp r1, r7 - bgt _080C6FF8 -_080C6FC4: - asrs r5, r0, #0x10 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #4 - mov r1, r8 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0xb - bl sub_0806A1B4 - cmp r0, #0 - beq _080C6FE8 - adds r0, r4, #0 - movs r1, #0x2d - bl sub_0806A1B4 - cmp r0, #0 - beq _080C6FA8 -_080C6FE8: - asrs r0, r6, #0x10 - adds r0, r5, r0 - lsls r0, r0, #0x10 - asrs r2, r0, #0x10 - cmp r2, #0 - blt _080C6FF8 - cmp r2, r7 - ble _080C6FC4 -_080C6FF8: - movs r0, #1 - rsbs r0, r0, #0 -_080C6FFC: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080C6F3C - - thumb_func_start ResetPokemonStorageSystem -ResetPokemonStorageSystem: @ 0x080C7008 - push {r4, r5, r6, lr} - movs r0, #0 - bl SetCurrentBox - movs r5, #0 -_080C7012: - movs r4, #0 - lsls r6, r5, #0x18 -_080C7016: - lsls r1, r4, #0x18 - lsrs r1, r1, #0x18 - lsrs r0, r6, #0x18 - bl ZeroBoxMonAt - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x1d - bls _080C7016 - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0xd - bls _080C7012 - movs r5, #0 -_080C7036: - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - bl GetBoxNamePtr - ldr r1, _080C707C - bl StringCopy - adds r4, r5, #1 - adds r1, r4, #0 - movs r2, #0 - movs r3, #2 - bl sub_080089D8 - lsls r4, r4, #0x10 - lsrs r5, r4, #0x10 - cmp r5, #0xd - bls _080C7036 - movs r5, #0 -_080C705A: - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - movs r1, #3 - ands r1, r5 - bl SetBoxWallpaper - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0xd - bls _080C705A - bl ResetWaldaWallpaper - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080C707C: .4byte gUnknown_85CB584 - thumb_func_end ResetPokemonStorageSystem - - thumb_func_start sub_080C7080 -sub_080C7080: @ 0x080C7080 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x20 - adds r5, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r6, r1, #0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - adds r7, r2, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r8, r3 - ldr r0, _080C7114 - str r0, [sp, #0x18] - ldr r1, _080C7118 - add r4, sp, #0x18 - ldr r0, [r4, #4] - ands r0, r1 - orrs r0, r7 - str r0, [r4, #4] - mov r1, sp - ldr r0, _080C711C - str r0, [sp] - movs r0, #0x80 - lsls r0, r0, #4 - strh r0, [r1, #4] - strh r6, [r1, #6] - ldr r0, _080C7120 - str r0, [sp, #8] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r1, #0xc] - adds r0, r6, #1 - strh r0, [r1, #0xe] - add r0, sp, #0x10 - movs r1, #0 - movs r2, #8 - bl memset - ldr r0, [sp, #0x38] - cmp r0, #0 - beq _080C70DE - adds r0, r4, #0 - bl LoadSpritePalette -_080C70DE: - mov r0, sp - bl LoadSpriteSheets - ldr r0, _080C7124 - str r5, [r0] - movs r1, #0x90 - lsls r1, r1, #2 - adds r0, r5, r1 - strh r6, [r0] - adds r1, #2 - adds r0, r5, r1 - strh r7, [r0] - adds r1, #4 - adds r0, r5, r1 - mov r1, r8 - strb r1, [r0] - movs r1, #0x8f - lsls r1, r1, #2 - adds r0, r5, r1 - ldr r1, [sp, #0x38] - str r1, [r0] - add sp, #0x20 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080C7114: .4byte gUnknown_854B25C -_080C7118: .4byte 0xFFFF0000 -_080C711C: .4byte gUnknown_854B27C -_080C7120: .4byte gUnknown_854BA7C -_080C7124: .4byte gUnknown_20399A4 - thumb_func_end sub_080C7080 - - thumb_func_start sub_080C7128 -sub_080C7128: @ 0x080C7128 - push {r4, r5, lr} - ldr r5, _080C7168 - ldr r1, [r5] - movs r2, #0x8f - lsls r2, r2, #2 - adds r0, r1, r2 - ldr r0, [r0] - cmp r0, #0 - beq _080C7144 - adds r2, #6 - adds r0, r1, r2 - ldrh r0, [r0] - bl FreeSpritePaletteByTag -_080C7144: - ldr r0, [r5] - movs r4, #0x90 - lsls r4, r4, #2 - adds r0, r0, r4 - ldrh r0, [r0] - bl FreeSpriteTilesByTag - ldr r0, [r5] - adds r0, r0, r4 - ldrh r0, [r0] - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl FreeSpriteTilesByTag - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080C7168: .4byte gUnknown_20399A4 - thumb_func_end sub_080C7128 - - thumb_func_start sub_080C716C -sub_080C716C: @ 0x080C716C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_080C71F0 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080C716C - - thumb_func_start WallyHandleGetRawMonData -WallyHandleGetRawMonData: @ 0x080C717C - push {lr} - bl sub_080C73D0 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WallyHandleGetRawMonData - - thumb_func_start HandleBoxChooseSelectionInput -HandleBoxChooseSelectionInput: @ 0x080C7188 - push {lr} - ldr r0, _080C71A0 - ldrh r1, [r0, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080C71A4 - movs r0, #5 - bl sub_080A306C - movs r0, #0xc9 - b _080C71EC - .align 2, 0 -_080C71A0: .4byte gUnknown_3002360 -_080C71A4: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080C71C4 - movs r0, #5 - bl sub_080A306C - ldr r0, _080C71C0 - ldr r0, [r0] - movs r1, #0x91 - lsls r1, r1, #2 - adds r0, r0, r1 - ldrb r0, [r0] - b _080C71EC - .align 2, 0 -_080C71C0: .4byte gUnknown_20399A4 -_080C71C4: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080C71D8 - movs r0, #5 - bl sub_080A306C - bl sub_080C7470 - b _080C71EA -_080C71D8: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080C71EA - movs r0, #5 - bl sub_080A306C - bl sub_080C743C -_080C71EA: - movs r0, #0xc8 -_080C71EC: - pop {r1} - bx r1 - thumb_func_end HandleBoxChooseSelectionInput - - thumb_func_start sub_080C71F0 -sub_080C71F0: @ 0x080C71F0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x3c - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - movs r0, #0 - movs r1, #0 - str r0, [sp, #0x34] - str r1, [sp, #0x38] - movs r1, #0xc0 - lsls r1, r1, #0x18 - ldr r0, [sp, #0x34] - orrs r0, r1 - str r0, [sp, #0x34] - ldr r1, _080C73A4 - add r4, sp, #0x34 - ldr r0, [r4, #4] - ands r0, r1 - movs r1, #0x80 - lsls r1, r1, #5 - orrs r0, r1 - str r0, [r4, #4] - add r0, sp, #0x1c - mov r8, r0 - movs r1, #0 - strh r1, [r0] - mov r0, sp - adds r0, #0x1e - strh r1, [r0] - str r4, [sp, #0x20] - ldr r0, _080C73A8 - str r0, [sp, #0x24] - str r1, [sp, #0x28] - ldr r0, _080C73AC - str r0, [sp, #0x2c] - ldr r0, _080C73B0 - str r0, [sp, #0x30] - add r0, sp, #4 - mov r1, r8 - movs r2, #0x18 - bl memcpy - ldr r1, _080C73B4 - mov r0, r8 - movs r2, #4 - bl memcpy - ldr r6, _080C73B8 - ldr r0, [r6] - movs r1, #0x91 - lsls r1, r1, #2 - adds r0, r0, r1 - strb r5, [r0] - add r2, sp, #4 - ldr r1, [r6] - movs r5, #0x90 - lsls r5, r5, #2 - adds r0, r1, r5 - ldrh r0, [r0] - strh r0, [r2] - ldr r3, _080C73BC - adds r1, r1, r3 - ldrh r0, [r1] - strh r0, [r2, #2] - adds r0, r2, #0 - movs r1, #0xa0 - movs r2, #0x60 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r3, [r6] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080C73C0 - adds r0, r0, r1 - str r0, [r3] - ldrb r2, [r4, #1] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r4, #1] - ldrb r0, [r4, #3] - ands r1, r0 - movs r0, #0x40 - orrs r1, r0 - strb r1, [r4, #3] - add r1, sp, #4 - adds r3, r3, r5 - ldrh r0, [r3] - adds r0, #1 - strh r0, [r1] - ldr r0, _080C73C4 - str r0, [sp, #0xc] - movs r4, #0 - mov r7, r8 -_080C72BC: - ldr r0, [r6] - ldr r1, _080C73C8 - adds r0, r0, r1 - ldrb r3, [r0] - add r0, sp, #4 - movs r1, #0x7c - movs r2, #0x50 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r2, [r6] - lsls r3, r4, #2 - adds r2, #4 - adds r2, r2, r3 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080C73C0 - adds r1, r0, r1 - str r1, [r2] - movs r5, #0 - movs r0, #2 - ands r0, r4 - cmp r0, #0 - beq _080C72F6 - movs r0, #0xc4 - strh r0, [r1, #0x20] - movs r5, #2 -_080C72F6: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _080C731A - ldr r1, [r6] - adds r1, #4 - adds r1, r1, r3 - ldr r2, [r1] - movs r0, #0x70 - strh r0, [r2, #0x22] - ldr r2, [r1] - ldrb r1, [r2, #3] - movs r0, #0x3f - ands r0, r1 - strb r0, [r2, #3] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_080C731A: - ldr r0, [r6] - adds r0, #4 - adds r0, r0, r3 - ldr r0, [r0] - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - bl StartSpriteAnim - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #3 - bls _080C72BC - movs r4, #0 - ldr r5, _080C73B8 -_080C7338: - lsls r0, r4, #3 - adds r0, r0, r4 - lsls r0, r0, #0x13 - movs r3, #0xf8 - lsls r3, r3, #0xf - adds r0, r0, r3 - lsrs r0, r0, #0x10 - lsls r2, r4, #0x18 - lsrs r2, r2, #0x18 - ldr r1, [r5] - ldr r3, _080C73C8 - adds r1, r1, r3 - ldrb r1, [r1] - str r1, [sp] - movs r1, #0x58 - movs r3, #0 - bl sub_080CCB64 - adds r2, r0, #0 - ldr r0, [r5] - lsls r1, r4, #2 - adds r0, #0x20 - adds r0, r0, r1 - str r2, [r0] - cmp r2, #0 - beq _080C7380 - movs r1, #1 - cmp r4, #0 - bne _080C7378 - movs r3, #1 - rsbs r3, r3, #0 - adds r1, r3, #0 -_080C7378: - strh r1, [r2, #0x2e] - ldr r1, [r0] - ldr r0, _080C73CC - str r0, [r1, #0x1c] -_080C7380: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #1 - bls _080C7338 - bl sub_080C74A0 - adds r0, r7, #0 - movs r1, #5 - movs r2, #3 - bl sub_080C7528 - add sp, #0x3c - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080C73A4: .4byte 0xFFFF0FFF -_080C73A8: .4byte gUnknown_82BF304 -_080C73AC: .4byte gUnknown_82BF310 -_080C73B0: .4byte sub_08007140 -_080C73B4: .4byte gUnknown_854B258 -_080C73B8: .4byte gUnknown_20399A4 -_080C73BC: .4byte 0x00000242 -_080C73C0: .4byte gUnknown_20205AC -_080C73C4: .4byte gUnknown_854B234 -_080C73C8: .4byte 0x00000246 -_080C73CC: .4byte sub_080C7590 - thumb_func_end sub_080C71F0 - - thumb_func_start sub_080C73D0 -sub_080C73D0: @ 0x080C73D0 - push {r4, r5, r6, lr} - ldr r4, _080C7438 - ldr r0, [r4] - ldr r0, [r0] - cmp r0, #0 - beq _080C73E6 - bl DestroySprite - ldr r1, [r4] - movs r0, #0 - str r0, [r1] -_080C73E6: - movs r5, #0 - adds r6, r4, #0 -_080C73EA: - ldr r0, [r6] - lsls r4, r5, #2 - adds r0, #4 - adds r0, r0, r4 - ldr r0, [r0] - cmp r0, #0 - beq _080C7406 - bl DestroySprite - ldr r0, [r6] - adds r0, #4 - adds r0, r0, r4 - movs r1, #0 - str r1, [r0] -_080C7406: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #3 - bls _080C73EA - movs r5, #0 -_080C7412: - ldr r0, _080C7438 - ldr r0, [r0] - lsls r1, r5, #2 - adds r0, #0x20 - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #0 - beq _080C7426 - bl DestroySprite -_080C7426: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #1 - bls _080C7412 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080C7438: .4byte gUnknown_20399A4 - thumb_func_end sub_080C73D0 - - thumb_func_start sub_080C743C -sub_080C743C: @ 0x080C743C - push {lr} - ldr r2, _080C746C - ldr r1, [r2] - movs r0, #0x91 - lsls r0, r0, #2 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xd - bls _080C7462 - ldr r0, [r2] - movs r1, #0x91 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] -_080C7462: - bl sub_080C74A0 - pop {r0} - bx r0 - .align 2, 0 -_080C746C: .4byte gUnknown_20399A4 - thumb_func_end sub_080C743C - - thumb_func_start sub_080C7470 -sub_080C7470: @ 0x080C7470 - push {lr} - ldr r0, _080C7488 - ldr r2, [r0] - movs r1, #0x91 - lsls r1, r1, #2 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _080C748C - subs r1, r0, #1 - b _080C748E - .align 2, 0 -_080C7488: .4byte gUnknown_20399A4 -_080C748C: - movs r1, #0xd -_080C748E: - movs r3, #0x91 - lsls r3, r3, #2 - adds r0, r2, r3 - strb r1, [r0] - bl sub_080C74A0 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080C7470 - - thumb_func_start sub_080C74A0 -sub_080C74A0: @ 0x080C74A0 - push {r4, r5, r6, r7, lr} - ldr r6, _080C7524 - ldr r0, [r6] - movs r5, #0x91 - lsls r5, r5, #2 - adds r0, r0, r5 - ldrb r0, [r0] - bl CountMonsInBox - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, [r6] - movs r1, #0x8a - lsls r1, r1, #2 - adds r4, r0, r1 - adds r0, r0, r5 - ldrb r0, [r0] - bl GetBoxNamePtr - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCopy - adds r1, r0, #0 - ldr r0, [r6] - movs r2, #0x8c - lsls r2, r2, #2 - adds r0, r0, r2 - cmp r1, r0 - bhs _080C74EC - movs r4, #0 - adds r3, r6, #0 -_080C74E0: - strb r4, [r1] - adds r1, #1 - ldr r0, [r3] - adds r0, r0, r2 - cmp r1, r0 - blo _080C74E0 -_080C74EC: - movs r0, #0xff - strb r0, [r1] - ldr r5, _080C7524 - ldr r0, [r5] - movs r4, #0x8a - lsls r4, r4, #2 - adds r0, r0, r4 - movs r1, #0 - movs r2, #1 - bl sub_080C7528 - ldr r0, [r5] - adds r0, r0, r4 - adds r1, r7, #0 - movs r2, #1 - movs r3, #2 - bl sub_080089D8 - ldr r0, [r5] - adds r0, r0, r4 - movs r1, #3 - movs r2, #3 - bl sub_080C7528 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080C7524: .4byte gUnknown_20399A4 - thumb_func_end sub_080C74A0 - - thumb_func_start sub_080C7528 -sub_080C7528: @ 0x080C7528 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0xc - mov r8, r0 - adds r5, r1, #0 - adds r4, r2, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r6, _080C7588 - ldr r0, [r6] - movs r1, #0x90 - lsls r1, r1, #2 - adds r0, r0, r1 - ldrh r0, [r0] - bl GetSpriteTileStartByTag - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0xb - lsls r4, r4, #8 - ldr r0, _080C758C - adds r4, r4, r0 - adds r1, r1, r4 - lsls r5, r5, #5 - adds r1, r1, r5 - movs r2, #0x80 - lsls r2, r2, #1 - movs r0, #0xf - str r0, [sp] - movs r0, #0xe - str r0, [sp, #4] - ldr r0, [r6] - adds r0, #0x28 - str r0, [sp, #8] - mov r0, r8 - movs r3, #4 - bl sub_080C6738 - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080C7588: .4byte gUnknown_20399A4 -_080C758C: .4byte 0x06010000 - thumb_func_end sub_080C7528 - - thumb_func_start sub_080C7590 -sub_080C7590: @ 0x080C7590 - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0x30] - adds r0, #1 - movs r2, #0 - strh r0, [r1, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - ble _080C75C0 - strh r2, [r1, #0x30] - ldrh r0, [r1, #0x2e] - ldrh r3, [r1, #0x24] - adds r0, r0, r3 - strh r0, [r1, #0x24] - ldrh r0, [r1, #0x32] - adds r0, #1 - strh r0, [r1, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #5 - ble _080C75C0 - strh r2, [r1, #0x32] - strh r2, [r1, #0x24] -_080C75C0: - pop {r0} - bx r0 - thumb_func_end sub_080C7590 - - thumb_func_start VblankCb_PSS -VblankCb_PSS: @ 0x080C75C4 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl sub_080D2344 - bl TransferPlttBuffer - ldr r0, _080C75EC - ldr r0, [r0] - movs r1, #0xb3 - lsls r1, r1, #2 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x18 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 -_080C75EC: .4byte gUnknown_20399A8 - thumb_func_end VblankCb_PSS - - thumb_func_start sub_080C75F0 -sub_080C75F0: @ 0x080C75F0 - push {lr} - bl RunTasks - bl do_scheduled_bg_tilemap_copies_to_vram - bl ScrollBackground - bl sub_080CA278 - bl AnimateSprites - bl BuildOamBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080C75F0 - - thumb_func_start Cb2_EnterPSS -Cb2_EnterPSS: @ 0x080C7610 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - bl ResetTasks - ldr r0, _080C7634 - strb r5, [r0] - ldr r4, _080C7638 - ldr r0, _080C763C - bl sub_08000BC8 - str r0, [r4] - cmp r0, #0 - bne _080C7644 - ldr r0, _080C7640 - bl SetMainCallback2 - b _080C7670 - .align 2, 0 -_080C7634: .4byte gUnknown_20399AD -_080C7638: .4byte gUnknown_20399A8 -_080C763C: .4byte 0x000062C4 -_080C7640: .4byte Cb2_ExitPSS -_080C7644: - movs r2, #0 - strb r5, [r0, #1] - ldr r0, [r4] - strb r2, [r0, #3] - ldr r0, _080C7678 - movs r1, #0 - strh r2, [r0] - ldr r0, [r4] - strb r1, [r0] - ldr r0, _080C767C - movs r1, #3 - bl CreateTask - ldr r1, [r4] - strb r0, [r1, #4] - bl sub_080D15AC - ldr r1, _080C7680 - strb r0, [r1] - ldr r0, _080C7684 - bl SetMainCallback2 -_080C7670: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080C7678: .4byte gUnknown_20399B2 -_080C767C: .4byte Cb_InitPSS -_080C7680: .4byte gUnknown_20399B0 -_080C7684: .4byte sub_080C75F0 - thumb_func_end Cb2_EnterPSS - - thumb_func_start Cb2_ReturnToPSS -Cb2_ReturnToPSS: @ 0x080C7688 - push {r4, lr} - bl ResetTasks - ldr r4, _080C76A8 - ldr r0, _080C76AC - bl sub_08000BC8 - adds r1, r0, #0 - str r1, [r4] - cmp r1, #0 - bne _080C76B4 - ldr r0, _080C76B0 - bl SetMainCallback2 - b _080C76D8 - .align 2, 0 -_080C76A8: .4byte gUnknown_20399A8 -_080C76AC: .4byte 0x000062C4 -_080C76B0: .4byte Cb2_ExitPSS -_080C76B4: - ldr r0, _080C76E0 - ldrb r0, [r0] - movs r2, #0 - strb r0, [r1, #1] - ldr r1, [r4] - movs r0, #1 - strb r0, [r1, #3] - ldr r0, [r4] - strb r2, [r0] - ldr r0, _080C76E4 - movs r1, #3 - bl CreateTask - ldr r1, [r4] - strb r0, [r1, #4] - ldr r0, _080C76E8 - bl SetMainCallback2 -_080C76D8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C76E0: .4byte gUnknown_20399AD -_080C76E4: .4byte Cb_InitPSS -_080C76E8: .4byte sub_080C75F0 - thumb_func_end Cb2_ReturnToPSS - - thumb_func_start ResetAllBgCoords -ResetAllBgCoords: @ 0x080C76EC - push {lr} - movs r0, #0x10 - movs r1, #0 - bl SetGpuReg - movs r0, #0x12 - movs r1, #0 - bl SetGpuReg - movs r0, #0x14 - movs r1, #0 - bl SetGpuReg - movs r0, #0x16 - movs r1, #0 - bl SetGpuReg - movs r0, #0x18 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1a - movs r1, #0 - bl SetGpuReg - movs r0, #0x1c - movs r1, #0 - bl SetGpuReg - movs r0, #0x1e - movs r1, #0 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ResetAllBgCoords - - thumb_func_start sub_080C7734 -sub_080C7734: @ 0x080C7734 - push {r4, lr} - sub sp, #4 - bl ResetPaletteFade - bl ResetSpriteData - bl FreeSpriteTileRanges - bl FreeAllSpritePalettes - bl ClearDma3Requests - ldr r1, _080C77A4 - movs r2, #0xa0 - lsls r2, r2, #2 - adds r0, r2, #0 - strh r0, [r1] - ldr r4, _080C77A8 - ldr r1, [r4] - adds r0, r1, #0 - adds r0, #8 - adds r1, #0x10 - movs r2, #8 - bl sub_080D2330 - ldr r1, _080C77AC - movs r0, #0x14 - strh r0, [r1] - bl sub_08199640 - movs r0, #3 - bl sub_080D1E3C - ldr r2, _080C77B0 - movs r0, #4 - str r0, [sp] - movs r0, #0 - movs r1, #1 - movs r3, #8 - bl sub_080D1EE4 - movs r0, #0 - movs r1, #1 - movs r2, #0 - bl sub_080D2010 - ldr r0, [r4] - ldr r1, _080C77B4 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C77A4: .4byte gUnknown_2021AB6 -_080C77A8: .4byte gUnknown_20399A8 -_080C77AC: .4byte gUnknown_3002350 -_080C77B0: .4byte gUnknown_854BEBC -_080C77B4: .4byte 0x000002C7 - thumb_func_end sub_080C7734 - - thumb_func_start sub_080C77B8 -sub_080C77B8: @ 0x080C77B8 - push {lr} - bl sub_080CD488 - ldr r2, _080C77DC - movs r1, #0 - ldr r0, _080C77E0 - ldr r0, [r0] - ldrb r0, [r0, #1] - cmp r0, #1 - bne _080C77CE - movs r1, #1 -_080C77CE: - strb r1, [r2] - ldr r1, _080C77E4 - movs r0, #0 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080C77DC: .4byte gUnknown_20399AC -_080C77E0: .4byte gUnknown_20399A8 -_080C77E4: .4byte gUnknown_20399AE - thumb_func_end sub_080C77B8 - - thumb_func_start sub_080C77E8 -sub_080C77E8: @ 0x080C77E8 - push {lr} - ldr r0, _080C7814 - ldr r0, [r0] - ldrb r0, [r0, #1] - cmp r0, #3 - bne _080C7806 - movs r1, #0xfc - lsls r1, r1, #6 - movs r0, #0x50 - bl SetGpuReg - ldr r1, _080C7818 - movs r0, #0x52 - bl SetGpuReg -_080C7806: - movs r1, #0xfa - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 -_080C7814: .4byte gUnknown_20399A8 -_080C7818: .4byte 0x00000B07 - thumb_func_end sub_080C77E8 - - thumb_func_start SetPSSCallback -SetPSSCallback: @ 0x080C781C - push {r4, lr} - ldr r4, _080C783C - ldr r1, _080C7840 - ldr r3, [r1] - ldrb r2, [r3, #4] - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r4 - str r0, [r1] - movs r0, #0 - strb r0, [r3] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C783C: .4byte gUnknown_3005B60 -_080C7840: .4byte gUnknown_20399A8 - thumb_func_end SetPSSCallback - - thumb_func_start Cb_InitPSS -Cb_InitPSS: @ 0x080C7844 - push {lr} - sub sp, #4 - ldr r0, _080C7860 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, #0xa - bls _080C7854 - b _080C7A3E -_080C7854: - lsls r0, r0, #2 - ldr r1, _080C7864 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C7860: .4byte gUnknown_20399A8 -_080C7864: .4byte _080C7868 -_080C7868: @ jump table - .4byte _080C7894 @ case 0 - .4byte _080C78EC @ case 1 - .4byte _080C78FA @ case 2 - .4byte _080C7928 @ case 3 - .4byte _080C7944 @ case 4 - .4byte _080C7962 @ case 5 - .4byte _080C7982 @ case 6 - .4byte _080C7988 @ case 7 - .4byte _080C798E @ case 8 - .4byte _080C799C @ case 9 - .4byte _080C79E6 @ case 10 -_080C7894: - movs r0, #0 - bl SetVBlankCallback - movs r0, #0 - movs r1, #0 - bl SetGpuReg - bl sub_080C7734 - ldr r0, _080C78C4 - ldr r0, [r0] - ldrb r0, [r0, #3] - cmp r0, #0 - beq _080C78E2 - ldr r0, _080C78C8 - ldrb r0, [r0] - cmp r0, #1 - beq _080C78D2 - cmp r0, #1 - bgt _080C78CC - cmp r0, #0 - beq _080C78D8 - b _080C78E2 - .align 2, 0 -_080C78C4: .4byte gUnknown_20399A8 -_080C78C8: .4byte gUnknown_20399AF -_080C78CC: - cmp r0, #2 - beq _080C78DE - b _080C78E2 -_080C78D2: - bl sub_080CE00C - b _080C78E2 -_080C78D8: - bl sub_080CE160 - b _080C78E2 -_080C78DE: - bl GiveChosenBagItem -_080C78E2: - bl LoadPSSMenuGfx - bl LoadWaveformSpritePalette - b _080C7A34 -_080C78EC: - bl sub_080C9918 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C78F8 - b _080C7A34 -_080C78F8: - b _080C796C -_080C78FA: - movs r0, #0 - bl PutWindowTilemap - movs r0, #1 - bl ClearWindowTilemap - movs r0, #0 - str r0, [sp] - movs r1, #0xc0 - lsls r1, r1, #0x13 - ldr r2, _080C7924 - mov r0, sp - bl CpuSet - movs r0, #1 - movs r1, #0xb - movs r2, #0xe0 - bl LoadUserWindowBorderGfx - b _080C7A34 - .align 2, 0 -_080C7924: .4byte 0x05000080 -_080C7928: - bl ResetAllBgCoords - ldr r0, _080C7940 - ldr r0, [r0] - ldrb r0, [r0, #3] - cmp r0, #0 - beq _080C7938 - b _080C7A34 -_080C7938: - bl sub_080C77B8 - b _080C7A34 - .align 2, 0 -_080C7940: .4byte gUnknown_20399A8 -_080C7944: - bl sub_080CA778 - ldr r0, _080C7958 - ldr r0, [r0] - ldrb r0, [r0, #3] - cmp r0, #0 - bne _080C795C - bl sub_080CCBE8 - b _080C7A34 - .align 2, 0 -_080C7958: .4byte gUnknown_20399A8 -_080C795C: - bl sub_080CCC68 - b _080C7A34 -_080C7962: - bl ItemStorage_StartScrollIndicatorAndProcessInput - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C7978 -_080C796C: - ldr r0, _080C7974 - bl SetPSSCallback - b _080C7A3E - .align 2, 0 -_080C7974: .4byte sub_080C96EC -_080C7978: - bl SetScrollingBackground - bl sub_080CA480 - b _080C7A34 -_080C7982: - bl sub_080C994C - b _080C7A34 -_080C7988: - bl sub_080C9F68 - b _080C7A34 -_080C798E: - bl sub_080D15AC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_080CBBA0 - b _080C7A34 -_080C799C: - bl sub_080CBBD0 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C7A3E - ldr r0, _080C79CC - ldr r2, [r0] - ldrb r0, [r2, #1] - cmp r0, #3 - beq _080C79DC - ldr r1, _080C79D0 - adds r0, r2, r1 - movs r1, #0xd - strh r1, [r0] - ldr r1, _080C79D4 - adds r2, r2, r1 - ldr r1, _080C79D8 - strh r1, [r2] - bl sub_0811FE2C - bl sub_0811FFB0 - b _080C7A34 - .align 2, 0 -_080C79CC: .4byte gUnknown_20399A8 -_080C79D0: .4byte 0x00000DA4 -_080C79D4: .4byte 0x00000DA6 -_080C79D8: .4byte 0x0000DACE -_080C79DC: - bl sub_080D0500 - bl sub_080CA720 - b _080C7A34 -_080C79E6: - bl sub_080C77E8 - ldr r0, _080C7A08 - ldr r0, [r0] - ldrb r0, [r0, #3] - cmp r0, #0 - bne _080C7A10 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - ldr r0, _080C7A0C - bl SetPSSCallback - b _080C7A22 - .align 2, 0 -_080C7A08: .4byte gUnknown_20399A8 -_080C7A0C: .4byte Cb_ShowPSS -_080C7A10: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - ldr r0, _080C7A2C - bl SetPSSCallback -_080C7A22: - ldr r0, _080C7A30 - bl SetVBlankCallback - b _080C7A3E - .align 2, 0 -_080C7A2C: .4byte Cb_ReshowPSS -_080C7A30: .4byte VblankCb_PSS -_080C7A34: - ldr r0, _080C7A44 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_080C7A3E: - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_080C7A44: .4byte gUnknown_20399A8 - thumb_func_end Cb_InitPSS - - thumb_func_start Cb_ShowPSS -Cb_ShowPSS: @ 0x080C7A48 - push {r4, lr} - ldr r4, _080C7A5C - ldr r0, [r4] - ldrb r0, [r0] - cmp r0, #0 - beq _080C7A60 - cmp r0, #1 - beq _080C7A7A - b _080C7A8A - .align 2, 0 -_080C7A5C: .4byte gUnknown_20399A8 -_080C7A60: - movs r0, #2 - bl sub_080A306C - movs r0, #0x14 - movs r1, #0 - movs r2, #1 - bl sub_080FA43C - ldr r1, [r4] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080C7A8A -_080C7A7A: - bl sub_080FA48C - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C7A8A - ldr r0, _080C7A90 - bl SetPSSCallback -_080C7A8A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C7A90: .4byte Cb_MainPSS - thumb_func_end Cb_ShowPSS - - thumb_func_start Cb_ReshowPSS -Cb_ReshowPSS: @ 0x080C7A94 - push {r4, lr} - sub sp, #4 - ldr r4, _080C7AAC - ldr r0, [r4] - ldrb r0, [r0] - cmp r0, #1 - beq _080C7ACC - cmp r0, #1 - bgt _080C7AB0 - cmp r0, #0 - beq _080C7ABA - b _080C7B3C - .align 2, 0 -_080C7AAC: .4byte gUnknown_20399A8 -_080C7AB0: - cmp r0, #2 - beq _080C7B04 - cmp r0, #3 - beq _080C7B2C - b _080C7B3C -_080C7ABA: - movs r1, #1 - rsbs r1, r1, #0 - str r0, [sp] - adds r0, r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - b _080C7B1E -_080C7ACC: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C7B3C - ldr r0, _080C7AF0 - ldrb r0, [r0] - cmp r0, #2 - bne _080C7AF8 - ldr r0, _080C7AF4 - ldrh r0, [r0] - cmp r0, #0 - beq _080C7AF8 - movs r0, #0x1c - bl PrintStorageActionText - b _080C7B1E - .align 2, 0 -_080C7AF0: .4byte gUnknown_20399AF -_080C7AF4: .4byte gUnknown_203CB48 -_080C7AF8: - ldr r0, _080C7B00 - bl SetPSSCallback - b _080C7B3C - .align 2, 0 -_080C7B00: .4byte Cb_MainPSS -_080C7B04: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C7B3C - ldr r0, _080C7B28 - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _080C7B3C - bl sub_080CA638 -_080C7B1E: - ldr r1, [r4] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080C7B3C - .align 2, 0 -_080C7B28: .4byte gUnknown_3002360 -_080C7B2C: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C7B3C - ldr r0, _080C7B44 - bl SetPSSCallback -_080C7B3C: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C7B44: .4byte Cb_MainPSS - thumb_func_end Cb_ReshowPSS - - thumb_func_start Cb_MainPSS -Cb_MainPSS: @ 0x080C7B48 - push {r4, r5, lr} - ldr r0, _080C7B60 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, #0xb - bls _080C7B56 - b _080C803A -_080C7B56: - lsls r0, r0, #2 - ldr r1, _080C7B64 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C7B60: .4byte gUnknown_20399A8 -_080C7B64: .4byte _080C7B68 -_080C7B68: @ jump table - .4byte _080C7B98 @ case 0 - .4byte _080C7EB8 @ case 1 - .4byte _080C7EF8 @ case 2 - .4byte _080C7F50 @ case 3 - .4byte _080C7F74 @ case 4 - .4byte _080C7F7E @ case 5 - .4byte _080C7F98 @ case 6 - .4byte _080C7FB8 @ case 7 - .4byte _080C7FBE @ case 8 - .4byte _080C7FD4 @ case 9 - .4byte _080C8000 @ case 10 - .4byte _080C8028 @ case 11 -_080C7B98: - bl sub_080CF268 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, #1 - cmp r0, #0x19 - bls _080C7BA8 - b _080C803A -_080C7BA8: - lsls r0, r0, #2 - ldr r1, _080C7BB4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C7BB4: .4byte _080C7BB8 -_080C7BB8: @ jump table - .4byte _080C7C20 @ case 0 - .4byte _080C803A @ case 1 - .4byte _080C803A @ case 2 - .4byte _080C7CB0 @ case 3 - .4byte _080C7C34 @ case 4 - .4byte _080C7C68 @ case 5 - .4byte _080C7CC8 @ case 6 - .4byte _080C7CDC @ case 7 - .4byte _080C7CE8 @ case 8 - .4byte _080C7D20 @ case 9 - .4byte _080C7D64 @ case 10 - .4byte _080C7DE8 @ case 11 - .4byte _080C7DA8 @ case 12 - .4byte _080C7DBA @ case 13 - .4byte _080C7DFC @ case 14 - .4byte _080C7E10 @ case 15 - .4byte _080C7E24 @ case 16 - .4byte _080C7E38 @ case 17 - .4byte _080C7CBC @ case 18 - .4byte _080C7E4C @ case 19 - .4byte _080C7E6C @ case 20 - .4byte _080C7E56 @ case 21 - .4byte _080C7E76 @ case 22 - .4byte _080C7EB0 @ case 23 - .4byte _080C7E7A @ case 24 - .4byte _080C7E94 @ case 25 -_080C7C20: - movs r0, #5 - bl sub_080A306C - ldr r0, _080C7C30 - ldr r1, [r0] - movs r0, #1 - strb r0, [r1] - b _080C803A - .align 2, 0 -_080C7C30: .4byte gUnknown_20399A8 -_080C7C34: - ldr r4, _080C7C54 - ldr r0, [r4] - ldrb r0, [r0, #1] - subs r0, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _080C7C58 - movs r0, #0x10 - bl PrintStorageActionText - ldr r1, [r4] - movs r0, #3 - strb r0, [r1] - b _080C803A - .align 2, 0 -_080C7C54: .4byte gUnknown_20399A8 -_080C7C58: - bl sub_080CD488 - ldr r0, _080C7C64 - bl SetPSSCallback - b _080C803A - .align 2, 0 -_080C7C64: .4byte Cb_ShowPartyPokemon -_080C7C68: - ldr r4, _080C7C94 - ldr r0, [r4] - ldrb r0, [r0, #1] - cmp r0, #2 - bne _080C7C9C - bl sub_080CE34C - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C7CA2 - ldr r0, [r4] - ldr r1, _080C7C98 - adds r0, r0, r1 - ldrh r0, [r0] - bl ItemIsMail - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C7C90 - b _080C7D82 -_080C7C90: - b _080C7CA2 - .align 2, 0 -_080C7C94: .4byte gUnknown_20399A8 -_080C7C98: .4byte 0x00000CE6 -_080C7C9C: - cmp r0, #3 - beq _080C7CA2 - b _080C803A -_080C7CA2: - ldr r0, _080C7CAC - bl SetPSSCallback - b _080C803A - .align 2, 0 -_080C7CAC: .4byte Cb_HidePartyPokemon -_080C7CB0: - ldr r0, _080C7CB8 - bl SetPSSCallback - b _080C803A - .align 2, 0 -_080C7CB8: .4byte Cb_OnCloseBoxPressed -_080C7CBC: - ldr r0, _080C7CC4 - bl SetPSSCallback - b _080C803A - .align 2, 0 -_080C7CC4: .4byte sub_080C95B8 -_080C7CC8: - movs r0, #5 - bl sub_080A306C - ldr r0, _080C7CD8 - bl SetPSSCallback - b _080C803A - .align 2, 0 -_080C7CD8: .4byte Cb_HandleBoxOptions -_080C7CDC: - ldr r0, _080C7CE4 - bl SetPSSCallback - b _080C803A - .align 2, 0 -_080C7CE4: .4byte Cb_OnSelectedMon -_080C7CE8: - movs r0, #5 - bl sub_080A306C - bl sub_080D15AC - ldr r4, _080C7D18 - ldr r1, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #1 - ldr r2, _080C7D1C - adds r1, r1, r2 - strh r0, [r1] - cmp r0, #0xd - ble _080C7D0A - movs r0, #0 - strh r0, [r1] -_080C7D0A: - ldr r1, [r4] - ldrb r0, [r1, #1] - cmp r0, #3 - beq _080C7D58 - adds r0, r1, r2 - b _080C8012 - .align 2, 0 -_080C7D18: .4byte gUnknown_20399A8 -_080C7D1C: .4byte 0x000002CA -_080C7D20: - movs r0, #5 - bl sub_080A306C - bl sub_080D15AC - ldr r4, _080C7D50 - ldr r1, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, #1 - ldr r2, _080C7D54 - adds r1, r1, r2 - strh r0, [r1] - cmp r0, #0 - bge _080C7D42 - movs r0, #0xd - strh r0, [r1] -_080C7D42: - ldr r1, [r4] - ldrb r0, [r1, #1] - cmp r0, #3 - beq _080C7D58 - adds r0, r1, r2 - b _080C8012 - .align 2, 0 -_080C7D50: .4byte gUnknown_20399A8 -_080C7D54: .4byte 0x000002CA -_080C7D58: - bl sub_080CF724 - ldr r1, [r4] - movs r0, #0xa - strb r0, [r1] - b _080C803A -_080C7D64: - bl CanMovePartyMon - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C7DC4 - ldr r4, _080C7D8C - ldr r0, [r4] - ldr r1, _080C7D90 - adds r0, r0, r1 - ldrh r0, [r0] - bl ItemIsMail - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C7D94 -_080C7D82: - ldr r1, [r4] - movs r0, #5 - strb r0, [r1] - b _080C803A - .align 2, 0 -_080C7D8C: .4byte gUnknown_20399A8 -_080C7D90: .4byte 0x00000CE6 -_080C7D94: - movs r0, #5 - bl sub_080A306C - ldr r0, _080C7DA4 - bl SetPSSCallback - b _080C803A - .align 2, 0 -_080C7DA4: .4byte Cb_DepositMenu -_080C7DA8: - bl CanMovePartyMon - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C7DC4 - movs r0, #5 - bl sub_080A306C - b _080C7FC8 -_080C7DBA: - bl CanShiftMon - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C7DD4 -_080C7DC4: - ldr r0, _080C7DD0 - ldr r1, [r0] - movs r0, #4 - strb r0, [r1] - b _080C803A - .align 2, 0 -_080C7DD0: .4byte gUnknown_20399A8 -_080C7DD4: - movs r0, #5 - bl sub_080A306C - ldr r0, _080C7DE4 - bl SetPSSCallback - b _080C803A - .align 2, 0 -_080C7DE4: .4byte Cb_ShiftMon -_080C7DE8: - movs r0, #5 - bl sub_080A306C - ldr r0, _080C7DF8 - bl SetPSSCallback - b _080C803A - .align 2, 0 -_080C7DF8: .4byte Cb_WithdrawMon -_080C7DFC: - movs r0, #5 - bl sub_080A306C - ldr r0, _080C7E0C - bl SetPSSCallback - b _080C803A - .align 2, 0 -_080C7E0C: .4byte sub_080C8488 -_080C7E10: - movs r0, #5 - bl sub_080A306C - ldr r0, _080C7E20 - bl SetPSSCallback - b _080C803A - .align 2, 0 -_080C7E20: .4byte Cb_TakeItemForMoving -_080C7E24: - movs r0, #5 - bl sub_080A306C - ldr r0, _080C7E34 - bl SetPSSCallback - b _080C803A - .align 2, 0 -_080C7E34: .4byte Cb_GiveMovingItemToMon -_080C7E38: - movs r0, #5 - bl sub_080A306C - ldr r0, _080C7E48 - bl SetPSSCallback - b _080C803A - .align 2, 0 -_080C7E48: .4byte Cb_SwitchSelectedItem -_080C7E4C: - movs r0, #5 - bl sub_080A306C - movs r0, #0 - b _080C7E9C -_080C7E56: - movs r0, #1 - bl sub_080CFA70 - ldr r0, _080C7E68 - ldr r1, [r0] - movs r0, #8 - strb r0, [r1] - b _080C803A - .align 2, 0 -_080C7E68: .4byte gUnknown_20399A8 -_080C7E6C: - movs r0, #5 - bl sub_080A306C - movs r0, #2 - b _080C7E82 -_080C7E76: - movs r0, #3 - b _080C7E9C -_080C7E7A: - movs r0, #5 - bl sub_080A306C - movs r0, #4 -_080C7E82: - bl sub_080CFA70 - ldr r0, _080C7E90 - ldr r1, [r0] - movs r0, #9 - strb r0, [r1] - b _080C803A - .align 2, 0 -_080C7E90: .4byte gUnknown_20399A8 -_080C7E94: - movs r0, #5 - bl sub_080A306C - movs r0, #5 -_080C7E9C: - bl sub_080CFA70 - ldr r0, _080C7EAC - ldr r1, [r0] - movs r0, #7 - strb r0, [r1] - b _080C803A - .align 2, 0 -_080C7EAC: .4byte gUnknown_20399A8 -_080C7EB0: - movs r0, #0x20 - bl sub_080A306C - b _080C803A -_080C7EB8: - bl sub_080CCDD0 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C7EC4 - b _080C803A -_080C7EC4: - bl IsCursorOnCloseBox - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C7ED4 - bl sub_080CA224 - b _080C7ED8 -_080C7ED4: - bl sub_080CA250 -_080C7ED8: - ldr r4, _080C7EF0 - ldr r0, [r4] - ldr r1, _080C7EF4 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _080C7EEA - bl BoxSetMosaic -_080C7EEA: - ldr r1, [r4] - b _080C7F64 - .align 2, 0 -_080C7EF0: .4byte gUnknown_20399A8 -_080C7EF4: .4byte 0x00000CEA -_080C7EF8: - bl ScrollToBox - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C7F04 - b _080C803A -_080C7F04: - ldr r0, _080C7F44 - ldr r0, [r0] - ldr r1, _080C7F48 - adds r0, r0, r1 - ldrb r0, [r0] - bl SetCurrentBox - ldr r0, _080C7F4C - ldrb r0, [r0] - cmp r0, #0 - bne _080C7F2C - bl sub_080CE34C - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C7F2C - bl sub_080CD888 - bl BoxSetMosaic -_080C7F2C: - ldr r4, _080C7F44 - ldr r1, [r4] - ldrb r0, [r1, #1] - cmp r0, #3 - bne _080C7F64 - bl sub_080CF748 - ldr r1, [r4] - movs r0, #0xb - strb r0, [r1] - b _080C803A - .align 2, 0 -_080C7F44: .4byte gUnknown_20399A8 -_080C7F48: .4byte 0x000002CA -_080C7F4C: .4byte gUnknown_20399AC -_080C7F50: - ldr r0, _080C7F6C - ldrh r1, [r0, #0x2e] - movs r0, #0xf3 - ands r0, r1 - cmp r0, #0 - beq _080C803A - bl sub_080CA638 - ldr r0, _080C7F70 - ldr r1, [r0] -_080C7F64: - movs r0, #0 - strb r0, [r1] - b _080C803A - .align 2, 0 -_080C7F6C: .4byte gUnknown_3002360 -_080C7F70: .4byte gUnknown_20399A8 -_080C7F74: - movs r0, #0x20 - bl sub_080A306C - movs r0, #0xd - b _080C7F86 -_080C7F7E: - movs r0, #0x20 - bl sub_080A306C - movs r0, #0x16 -_080C7F86: - bl PrintStorageActionText - ldr r0, _080C7F94 - ldr r1, [r0] - movs r0, #6 - strb r0, [r1] - b _080C803A - .align 2, 0 -_080C7F94: .4byte gUnknown_20399A8 -_080C7F98: - ldr r0, _080C7FB0 - ldrh r1, [r0, #0x2e] - movs r0, #0xf3 - ands r0, r1 - cmp r0, #0 - beq _080C803A - bl sub_080CA638 - ldr r0, _080C7FB4 - bl SetPSSCallback - b _080C803A - .align 2, 0 -_080C7FB0: .4byte gUnknown_3002360 -_080C7FB4: .4byte Cb_MainPSS -_080C7FB8: - bl sub_080CFA84 - b _080C802C -_080C7FBE: - bl sub_080CFA84 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C803A -_080C7FC8: - ldr r0, _080C7FD0 - bl SetPSSCallback - b _080C803A - .align 2, 0 -_080C7FD0: .4byte Cb_MoveMon -_080C7FD4: - bl sub_080CFA84 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _080C803A - ldr r5, _080C7FF8 - ldr r0, [r5] - ldr r1, _080C7FFC - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _080C7FF2 - bl BoxSetMosaic -_080C7FF2: - ldr r0, [r5] - strb r4, [r0] - b _080C803A - .align 2, 0 -_080C7FF8: .4byte gUnknown_20399A8 -_080C7FFC: .4byte 0x00000CEA -_080C8000: - bl sub_080D0AB8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C803A - ldr r4, _080C8020 - ldr r0, [r4] - ldr r1, _080C8024 - adds r0, r0, r1 -_080C8012: - ldrb r0, [r0] - bl SetUpScrollToBox - ldr r1, [r4] - movs r0, #2 - strb r0, [r1] - b _080C803A - .align 2, 0 -_080C8020: .4byte gUnknown_20399A8 -_080C8024: .4byte 0x000002CA -_080C8028: - bl sub_080D0AB8 -_080C802C: - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _080C803A - ldr r0, _080C8040 - ldr r0, [r0] - strb r1, [r0] -_080C803A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080C8040: .4byte gUnknown_20399A8 - thumb_func_end Cb_MainPSS - - thumb_func_start Cb_ShowPartyPokemon -Cb_ShowPartyPokemon: @ 0x080C8044 - push {r4, lr} - ldr r4, _080C8058 - ldr r0, [r4] - ldrb r0, [r0] - cmp r0, #0 - beq _080C805C - cmp r0, #1 - beq _080C806A - b _080C807A - .align 2, 0 -_080C8058: .4byte gUnknown_20399A8 -_080C805C: - bl SetUpDoShowPartyMenu - ldr r1, [r4] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080C807A -_080C806A: - bl DoShowPartyMenu - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C807A - ldr r0, _080C8080 - bl SetPSSCallback -_080C807A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C8080: .4byte Cb_MainPSS - thumb_func_end Cb_ShowPartyPokemon - - thumb_func_start Cb_HidePartyPokemon -Cb_HidePartyPokemon: @ 0x080C8084 - push {r4, lr} - ldr r4, _080C809C - ldr r0, [r4] - ldrb r0, [r0] - cmp r0, #1 - beq _080C80B2 - cmp r0, #1 - bgt _080C80A0 - cmp r0, #0 - beq _080C80A6 - b _080C80F2 - .align 2, 0 -_080C809C: .4byte gUnknown_20399A8 -_080C80A0: - cmp r0, #2 - beq _080C80D2 - b _080C80F2 -_080C80A6: - movs r0, #5 - bl sub_080A306C - bl SetUpHidePartyMenu - b _080C80C8 -_080C80B2: - bl HidePartyMenu - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C80F2 - bl sub_080CD4A8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_080CD474 -_080C80C8: - ldr r1, [r4] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080C80F2 -_080C80D2: - bl sub_080CCDD0 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C80F2 - ldr r0, [r4] - ldr r1, _080C80F8 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _080C80EC - bl BoxSetMosaic -_080C80EC: - ldr r0, _080C80FC - bl SetPSSCallback -_080C80F2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C80F8: .4byte 0x00000CEA -_080C80FC: .4byte Cb_MainPSS - thumb_func_end Cb_HidePartyPokemon - - thumb_func_start Cb_OnSelectedMon -Cb_OnSelectedMon: @ 0x080C8100 - push {r4, lr} - ldr r0, _080C8118 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, #6 - bls _080C810E - b _080C841E -_080C810E: - lsls r0, r0, #2 - ldr r1, _080C811C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C8118: .4byte gUnknown_20399A8 -_080C811C: .4byte _080C8120 -_080C8120: @ jump table - .4byte _080C813C @ case 0 - .4byte _080C81A0 @ case 1 - .4byte _080C81BC @ case 2 - .4byte _080C83D8 @ case 3 - .4byte _080C83EC @ case 4 - .4byte _080C83E2 @ case 5 - .4byte _080C8408 @ case 6 -_080C813C: - bl sub_080C9B2C - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C8148 - b _080C841E -_080C8148: - movs r0, #5 - bl sub_080A306C - ldr r4, _080C8160 - ldr r0, [r4] - ldrb r0, [r0, #1] - cmp r0, #3 - beq _080C8164 - movs r0, #4 - bl PrintStorageActionText - b _080C818E - .align 2, 0 -_080C8160: .4byte gUnknown_20399A8 -_080C8164: - bl IsActiveItemMoving - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C817A - ldr r0, [r4] - ldr r1, _080C8184 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0 - beq _080C8188 -_080C817A: - movs r0, #0x17 - bl PrintStorageActionText - b _080C818E - .align 2, 0 -_080C8184: .4byte 0x00000CE6 -_080C8188: - movs r0, #0x18 - bl PrintStorageActionText -_080C818E: - bl sub_080CF84C - ldr r0, _080C819C - ldr r1, [r0] - movs r0, #1 - strb r0, [r1] - b _080C841E - .align 2, 0 -_080C819C: .4byte gUnknown_20399A8 -_080C81A0: - bl sub_080CF948 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C81AC - b _080C841E -_080C81AC: - ldr r0, _080C81B8 - ldr r1, [r0] - movs r0, #2 - strb r0, [r1] - b _080C841E - .align 2, 0 -_080C81B8: .4byte gUnknown_20399A8 -_080C81BC: - bl sub_080CF94C - adds r0, #1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x12 - bls _080C81CC - b _080C841E -_080C81CC: - lsls r0, r0, #2 - ldr r1, _080C81D8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C81D8: .4byte _080C81DC -_080C81DC: @ jump table - .4byte _080C8228 @ case 0 - .4byte _080C8228 @ case 1 - .4byte _080C82A8 @ case 2 - .4byte _080C8290 @ case 3 - .4byte _080C8238 @ case 4 - .4byte _080C8270 @ case 5 - .4byte _080C8258 @ case 6 - .4byte _080C8348 @ case 7 - .4byte _080C82E4 @ case 8 - .4byte _080C835C @ case 9 - .4byte _080C841E @ case 10 - .4byte _080C841E @ case 11 - .4byte _080C841E @ case 12 - .4byte _080C8370 @ case 13 - .4byte _080C8384 @ case 14 - .4byte _080C83B8 @ case 15 - .4byte _080C83A4 @ case 16 - .4byte _080C8398 @ case 17 - .4byte _080C83CC @ case 18 -_080C8228: - bl sub_080CA638 - ldr r0, _080C8234 - bl SetPSSCallback - b _080C841E - .align 2, 0 -_080C8234: .4byte Cb_MainPSS -_080C8238: - bl CanMovePartyMon - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C82EE - movs r0, #5 - bl sub_080A306C - bl sub_080CA638 - ldr r0, _080C8254 - bl SetPSSCallback - b _080C841E - .align 2, 0 -_080C8254: .4byte Cb_MoveMon -_080C8258: - movs r0, #5 - bl sub_080A306C - bl sub_080CA638 - ldr r0, _080C826C - bl SetPSSCallback - b _080C841E - .align 2, 0 -_080C826C: .4byte sub_080C8488 -_080C8270: - bl CanShiftMon - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C82EE - movs r0, #5 - bl sub_080A306C - bl sub_080CA638 - ldr r0, _080C828C - bl SetPSSCallback - b _080C841E - .align 2, 0 -_080C828C: .4byte Cb_ShiftMon -_080C8290: - movs r0, #5 - bl sub_080A306C - bl sub_080CA638 - ldr r0, _080C82A4 - bl SetPSSCallback - b _080C841E - .align 2, 0 -_080C82A4: .4byte Cb_WithdrawMon -_080C82A8: - bl CanMovePartyMon - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C82EE - ldr r4, _080C82D8 - ldr r0, [r4] - ldr r2, _080C82DC - adds r0, r0, r2 - ldrh r0, [r0] - bl ItemIsMail - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C8328 - movs r0, #5 - bl sub_080A306C - bl sub_080CA638 - ldr r0, _080C82E0 - bl SetPSSCallback - b _080C841E - .align 2, 0 -_080C82D8: .4byte gUnknown_20399A8 -_080C82DC: .4byte 0x00000CE6 -_080C82E0: .4byte Cb_DepositMenu -_080C82E4: - bl CanMovePartyMon - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C82FC -_080C82EE: - ldr r0, _080C82F8 - ldr r1, [r0] - movs r0, #3 - strb r0, [r1] - b _080C841E - .align 2, 0 -_080C82F8: .4byte gUnknown_20399A8 -_080C82FC: - ldr r4, _080C8310 - ldr r1, [r4] - ldr r2, _080C8314 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080C8318 - movs r0, #5 - strb r0, [r1] - b _080C841E - .align 2, 0 -_080C8310: .4byte gUnknown_20399A8 -_080C8314: .4byte 0x00000CED -_080C8318: - ldr r2, _080C8330 - adds r0, r1, r2 - ldrh r0, [r0] - bl ItemIsMail - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C8334 -_080C8328: - ldr r1, [r4] - movs r0, #4 - strb r0, [r1] - b _080C841E - .align 2, 0 -_080C8330: .4byte 0x00000CE6 -_080C8334: - movs r0, #5 - bl sub_080A306C - ldr r0, _080C8344 - bl SetPSSCallback - b _080C841E - .align 2, 0 -_080C8344: .4byte Cb_ReleaseMon -_080C8348: - movs r0, #5 - bl sub_080A306C - ldr r0, _080C8358 - bl SetPSSCallback - b _080C841E - .align 2, 0 -_080C8358: .4byte Cb_ShowMonSummary -_080C835C: - movs r0, #5 - bl sub_080A306C - ldr r0, _080C836C - bl SetPSSCallback - b _080C841E - .align 2, 0 -_080C836C: .4byte Cb_ShowMarkMenu -_080C8370: - movs r0, #5 - bl sub_080A306C - ldr r0, _080C8380 - bl SetPSSCallback - b _080C841E - .align 2, 0 -_080C8380: .4byte Cb_TakeItemForMoving -_080C8384: - movs r0, #5 - bl sub_080A306C - ldr r0, _080C8394 - bl SetPSSCallback - b _080C841E - .align 2, 0 -_080C8394: .4byte Cb_GiveMovingItemToMon -_080C8398: - ldr r0, _080C83A0 - bl SetPSSCallback - b _080C841E - .align 2, 0 -_080C83A0: .4byte Cb_ItemToBag -_080C83A4: - movs r0, #5 - bl sub_080A306C - ldr r0, _080C83B4 - bl SetPSSCallback - b _080C841E - .align 2, 0 -_080C83B4: .4byte Cb_SwitchSelectedItem -_080C83B8: - movs r0, #5 - bl sub_080A306C - ldr r0, _080C83C8 - bl SetPSSCallback - b _080C841E - .align 2, 0 -_080C83C8: .4byte Cb_GiveItemFromBag -_080C83CC: - ldr r0, _080C83D4 - bl SetPSSCallback - b _080C841E - .align 2, 0 -_080C83D4: .4byte Cb_ShowItemInfo -_080C83D8: - movs r0, #0x20 - bl sub_080A306C - movs r0, #0xd - b _080C83F4 -_080C83E2: - movs r0, #0x20 - bl sub_080A306C - movs r0, #0x11 - b _080C83F4 -_080C83EC: - movs r0, #0x20 - bl sub_080A306C - movs r0, #0x16 -_080C83F4: - bl PrintStorageActionText - ldr r0, _080C8404 - ldr r1, [r0] - movs r0, #6 - strb r0, [r1] - b _080C841E - .align 2, 0 -_080C8404: .4byte gUnknown_20399A8 -_080C8408: - ldr r0, _080C8424 - ldrh r1, [r0, #0x2e] - movs r0, #0xf3 - ands r0, r1 - cmp r0, #0 - beq _080C841E - bl sub_080CA638 - ldr r0, _080C8428 - bl SetPSSCallback -_080C841E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C8424: .4byte gUnknown_3002360 -_080C8428: .4byte Cb_MainPSS - thumb_func_end Cb_OnSelectedMon - - thumb_func_start Cb_MoveMon -Cb_MoveMon: @ 0x080C842C - push {r4, lr} - ldr r4, _080C8440 - ldr r0, [r4] - ldrb r0, [r0] - cmp r0, #0 - beq _080C8444 - cmp r0, #1 - beq _080C8454 - b _080C847E - .align 2, 0 -_080C8440: .4byte gUnknown_20399A8 -_080C8444: - movs r0, #0 - bl InitMonPlaceChange - ldr r1, [r4] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080C847E -_080C8454: - bl DoMonPlaceChange - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C847E - ldr r0, _080C8470 - ldrb r0, [r0] - cmp r0, #0 - beq _080C8478 - ldr r0, _080C8474 - bl SetPSSCallback - b _080C847E - .align 2, 0 -_080C8470: .4byte gUnknown_20399AC -_080C8474: .4byte Cb_HandleMovingMonFromParty -_080C8478: - ldr r0, _080C8484 - bl SetPSSCallback -_080C847E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C8484: .4byte Cb_MainPSS - thumb_func_end Cb_MoveMon - - thumb_func_start sub_080C8488 -sub_080C8488: @ 0x080C8488 - push {r4, lr} - ldr r4, _080C849C - ldr r0, [r4] - ldrb r0, [r0] - cmp r0, #0 - beq _080C84A0 - cmp r0, #1 - beq _080C84B0 - b _080C84DA - .align 2, 0 -_080C849C: .4byte gUnknown_20399A8 -_080C84A0: - movs r0, #1 - bl InitMonPlaceChange - ldr r1, [r4] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080C84DA -_080C84B0: - bl DoMonPlaceChange - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C84DA - ldr r0, _080C84CC - ldrb r0, [r0] - cmp r0, #0 - beq _080C84D4 - ldr r0, _080C84D0 - bl SetPSSCallback - b _080C84DA - .align 2, 0 -_080C84CC: .4byte gUnknown_20399AC -_080C84D0: .4byte Cb_HandleMovingMonFromParty -_080C84D4: - ldr r0, _080C84E0 - bl SetPSSCallback -_080C84DA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C84E0: .4byte Cb_MainPSS - thumb_func_end sub_080C8488 - - thumb_func_start Cb_ShiftMon -Cb_ShiftMon: @ 0x080C84E4 - push {r4, lr} - ldr r4, _080C84F8 - ldr r0, [r4] - ldrb r0, [r0] - cmp r0, #0 - beq _080C84FC - cmp r0, #1 - beq _080C850C - b _080C8520 - .align 2, 0 -_080C84F8: .4byte gUnknown_20399A8 -_080C84FC: - movs r0, #2 - bl InitMonPlaceChange - ldr r1, [r4] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080C8520 -_080C850C: - bl DoMonPlaceChange - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C8520 - bl BoxSetMosaic - ldr r0, _080C8528 - bl SetPSSCallback -_080C8520: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C8528: .4byte Cb_MainPSS - thumb_func_end Cb_ShiftMon - - thumb_func_start Cb_WithdrawMon -Cb_WithdrawMon: @ 0x080C852C - push {lr} - ldr r0, _080C8544 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, #5 - bhi _080C860A - lsls r0, r0, #2 - ldr r1, _080C8548 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C8544: .4byte gUnknown_20399A8 -_080C8548: .4byte _080C854C -_080C854C: @ jump table - .4byte _080C8564 @ case 0 - .4byte _080C859C @ case 1 - .4byte _080C85BC @ case 2 - .4byte _080C85D2 @ case 3 - .4byte _080C85E4 @ case 4 - .4byte _080C8604 @ case 5 -_080C8564: - bl sub_0806B004 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #6 - bne _080C8584 - movs r0, #0xe - bl PrintStorageActionText - ldr r0, _080C8580 - ldr r1, [r0] - movs r0, #1 - strb r0, [r1] - b _080C860A - .align 2, 0 -_080C8580: .4byte gUnknown_20399A8 -_080C8584: - bl sub_080CD494 - movs r0, #0 - bl InitMonPlaceChange - ldr r0, _080C8598 - ldr r1, [r0] - movs r0, #2 - strb r0, [r1] - b _080C860A - .align 2, 0 -_080C8598: .4byte gUnknown_20399A8 -_080C859C: - ldr r0, _080C85B4 - ldrh r1, [r0, #0x2e] - movs r0, #0xf3 - ands r0, r1 - cmp r0, #0 - beq _080C860A - bl sub_080CA638 - ldr r0, _080C85B8 - bl SetPSSCallback - b _080C860A - .align 2, 0 -_080C85B4: .4byte gUnknown_3002360 -_080C85B8: .4byte Cb_MainPSS -_080C85BC: - bl DoMonPlaceChange - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C860A - movs r0, #1 - bl SetMovingMonPriority - bl SetUpDoShowPartyMenu - b _080C85F2 -_080C85D2: - bl DoShowPartyMenu - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C860A - movs r0, #1 - bl InitMonPlaceChange - b _080C85F2 -_080C85E4: - bl DoMonPlaceChange - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C860A - bl PokecenterHealEffect_3 -_080C85F2: - ldr r0, _080C8600 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080C860A - .align 2, 0 -_080C8600: .4byte gUnknown_20399A8 -_080C8604: - ldr r0, _080C8610 - bl SetPSSCallback -_080C860A: - pop {r0} - bx r0 - .align 2, 0 -_080C8610: .4byte Cb_HidePartyPokemon - thumb_func_end Cb_WithdrawMon - - thumb_func_start Cb_DepositMenu -Cb_DepositMenu: @ 0x080C8614 - push {r4, lr} - sub sp, #4 - ldr r0, _080C8630 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, #4 - bls _080C8624 - b _080C873E -_080C8624: - lsls r0, r0, #2 - ldr r1, _080C8634 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C8630: .4byte gUnknown_20399A8 -_080C8634: .4byte _080C8638 -_080C8638: @ jump table - .4byte _080C864C @ case 0 - .4byte _080C8688 @ case 1 - .4byte _080C86E8 @ case 2 - .4byte _080C8700 @ case 3 - .4byte _080C8724 @ case 4 -_080C864C: - movs r0, #6 - bl PrintStorageActionText - ldr r4, _080C8678 - ldr r0, [r4] - ldr r1, _080C867C - adds r0, r0, r1 - ldr r2, _080C8680 - movs r1, #0 - str r1, [sp] - movs r1, #0xa - movs r3, #3 - bl sub_080C7080 - ldr r0, _080C8684 - ldrb r0, [r0] - bl sub_080C716C - ldr r1, [r4] - ldrb r0, [r1] - adds r0, #1 - b _080C873C - .align 2, 0 -_080C8678: .4byte gUnknown_20399A8 -_080C867C: .4byte 0x00001E5C -_080C8680: .4byte 0x0000DAC7 -_080C8684: .4byte gUnknown_20399AE -_080C8688: - bl HandleBoxChooseSelectionInput - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r4, r0, #0 - cmp r0, #0xc8 - beq _080C873E - cmp r0, #0xc9 - bne _080C86A8 - bl sub_080CA638 - bl WallyHandleGetRawMonData - bl sub_080C7128 - b _080C8716 -_080C86A8: - adds r0, r4, #0 - bl TryStorePartyMonInBox - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C86D4 - ldr r0, _080C86CC - strb r4, [r0] - bl sub_080CA638 - bl WallyHandleGetRawMonData - bl sub_080C7128 - ldr r0, _080C86D0 - ldr r1, [r0] - movs r0, #2 - b _080C873C - .align 2, 0 -_080C86CC: .4byte gUnknown_20399AE -_080C86D0: .4byte gUnknown_20399A8 -_080C86D4: - movs r0, #8 - bl PrintStorageActionText - ldr r0, _080C86E4 - ldr r1, [r0] - movs r0, #4 - b _080C873C - .align 2, 0 -_080C86E4: .4byte gUnknown_20399A8 -_080C86E8: - bl CompactPartySlots - bl sub_080CB1C4 - ldr r0, _080C86FC - ldr r1, [r0] - ldrb r0, [r1] - adds r0, #1 - b _080C873C - .align 2, 0 -_080C86FC: .4byte gUnknown_20399A8 -_080C8700: - bl sub_080CB230 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C873E - bl WallyHandleStatusIconUpdate - bl BoxSetMosaic - bl PokecenterHealEffect_3 -_080C8716: - ldr r0, _080C8720 - bl SetPSSCallback - b _080C873E - .align 2, 0 -_080C8720: .4byte Cb_MainPSS -_080C8724: - ldr r0, _080C8748 - ldrh r1, [r0, #0x2e] - movs r0, #0xf3 - ands r0, r1 - cmp r0, #0 - beq _080C873E - movs r0, #6 - bl PrintStorageActionText - ldr r0, _080C874C - ldr r1, [r0] - movs r0, #1 -_080C873C: - strb r0, [r1] -_080C873E: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C8748: .4byte gUnknown_3002360 -_080C874C: .4byte gUnknown_20399A8 - thumb_func_end Cb_DepositMenu - - thumb_func_start Cb_ReleaseMon -Cb_ReleaseMon: @ 0x080C8750 - push {lr} - ldr r0, _080C8768 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, #0xd - bls _080C875E - b _080C8932 -_080C875E: - lsls r0, r0, #2 - ldr r1, _080C876C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C8768: .4byte gUnknown_20399A8 -_080C876C: .4byte _080C8770 -_080C8770: @ jump table - .4byte _080C87A8 @ case 0 - .4byte _080C87BE @ case 1 - .4byte _080C87F6 @ case 2 - .4byte _080C881C @ case 3 - .4byte _080C8828 @ case 4 - .4byte _080C8840 @ case 5 - .4byte _080C887C @ case 6 - .4byte _080C8894 @ case 7 - .4byte _080C88A0 @ case 8 - .4byte _080C88A4 @ case 9 - .4byte _080C88B8 @ case 10 - .4byte _080C88D4 @ case 11 - .4byte _080C88E6 @ case 12 - .4byte _080C891C @ case 13 -_080C87A8: - movs r0, #9 - bl PrintStorageActionText - movs r0, #1 - bl sub_080CA600 - ldr r0, _080C87D8 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_080C87BE: - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _080C87E8 - cmp r1, #0 - bgt _080C87DC - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _080C87E2 - b _080C8932 - .align 2, 0 -_080C87D8: .4byte gUnknown_20399A8 -_080C87DC: - cmp r1, #1 - beq _080C87E2 - b _080C8932 -_080C87E2: - bl sub_080CA638 - b _080C8894 -_080C87E8: - bl sub_080CA638 - bl InitCanRelaseMonVars - bl sub_080CDACC - b _080C88F8 -_080C87F6: - bl RunCanReleaseMon - bl sub_080CDB24 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C8806 - b _080C8932 -_080C8806: - b _080C880E -_080C8808: - cmp r0, #0 - bne _080C880E - b _080C890C -_080C880E: - bl RunCanReleaseMon - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - bne _080C8808 - b _080C88F8 -_080C881C: - bl ReleaseMon - bl RefreshCursorMonData - movs r0, #0xa - b _080C88F4 -_080C8828: - ldr r0, _080C883C - ldrh r1, [r0, #0x2e] - movs r0, #0xf3 - ands r0, r1 - cmp r0, #0 - bne _080C8836 - b _080C8932 -_080C8836: - movs r0, #0xb - b _080C88F4 - .align 2, 0 -_080C883C: .4byte gUnknown_3002360 -_080C8840: - ldr r0, _080C8864 - ldrh r1, [r0, #0x2e] - movs r0, #0xf3 - ands r0, r1 - cmp r0, #0 - beq _080C8932 - bl sub_080CA638 - ldr r0, _080C8868 - ldrb r0, [r0] - cmp r0, #0 - beq _080C886C - bl CompactPartySlots - bl sub_080CB1C4 - b _080C88F8 - .align 2, 0 -_080C8864: .4byte gUnknown_3002360 -_080C8868: .4byte gUnknown_20399AC -_080C886C: - ldr r0, _080C8878 - ldr r1, [r0] - movs r0, #7 - strb r0, [r1] - b _080C8932 - .align 2, 0 -_080C8878: .4byte gUnknown_20399A8 -_080C887C: - bl sub_080CB230 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C8932 - bl sub_080CD888 - bl BoxSetMosaic - bl PokecenterHealEffect_3 - b _080C88F8 -_080C8894: - ldr r0, _080C889C - bl SetPSSCallback - b _080C8932 - .align 2, 0 -_080C889C: .4byte Cb_MainPSS -_080C88A0: - movs r0, #0xa - b _080C88F4 -_080C88A4: - ldr r0, _080C88B4 - ldrh r1, [r0, #0x2e] - movs r0, #0xf3 - ands r0, r1 - cmp r0, #0 - beq _080C8932 - movs r0, #0x15 - b _080C88F4 - .align 2, 0 -_080C88B4: .4byte gUnknown_3002360 -_080C88B8: - ldr r0, _080C88D0 - ldrh r1, [r0, #0x2e] - movs r0, #0xf3 - ands r0, r1 - cmp r0, #0 - beq _080C8932 - bl sub_080CA638 - bl sub_080CB8D8 - b _080C88F8 - .align 2, 0 -_080C88D0: .4byte gUnknown_3002360 -_080C88D4: - bl sub_080CB914 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C8932 - bl sub_080CDBA0 - movs r0, #0x13 - b _080C88F4 -_080C88E6: - ldr r0, _080C8904 - ldrh r1, [r0, #0x2e] - movs r0, #0xf3 - ands r0, r1 - cmp r0, #0 - beq _080C8932 - movs r0, #0x14 -_080C88F4: - bl PrintStorageActionText -_080C88F8: - ldr r0, _080C8908 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080C8932 - .align 2, 0 -_080C8904: .4byte gUnknown_3002360 -_080C8908: .4byte gUnknown_20399A8 -_080C890C: - ldr r0, _080C8918 - ldr r1, [r0] - movs r0, #8 - strb r0, [r1] - b _080C8932 - .align 2, 0 -_080C8918: .4byte gUnknown_20399A8 -_080C891C: - ldr r0, _080C8938 - ldrh r1, [r0, #0x2e] - movs r0, #0xf3 - ands r0, r1 - cmp r0, #0 - beq _080C8932 - bl sub_080CA638 - ldr r0, _080C893C - bl SetPSSCallback -_080C8932: - pop {r0} - bx r0 - .align 2, 0 -_080C8938: .4byte gUnknown_3002360 -_080C893C: .4byte Cb_MainPSS - thumb_func_end Cb_ReleaseMon - - thumb_func_start Cb_ShowMarkMenu -Cb_ShowMarkMenu: @ 0x080C8940 - push {r4, lr} - ldr r4, _080C8954 - ldr r0, [r4] - ldrb r0, [r0] - cmp r0, #0 - beq _080C8958 - cmp r0, #1 - beq _080C898C - b _080C89B4 - .align 2, 0 -_080C8954: .4byte gUnknown_20399A8 -_080C8958: - movs r0, #0xc - bl PrintStorageActionText - ldr r0, [r4] - ldr r2, _080C8984 - adds r1, r0, r2 - ldrb r1, [r1] - ldr r3, _080C8988 - adds r0, r0, r3 - strb r1, [r0] - ldr r0, [r4] - adds r0, r0, r2 - ldrb r0, [r0] - movs r1, #0xb0 - movs r2, #0x10 - bl sub_0811FFC4 - ldr r1, [r4] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080C89B4 - .align 2, 0 -_080C8984: .4byte 0x00000CEB -_080C8988: .4byte 0x00000DA8 -_080C898C: - bl sub_081200C4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C89B4 - bl sub_08120018 - bl sub_080CA638 - ldr r0, [r4] - ldr r1, _080C89BC - adds r0, r0, r1 - ldrb r0, [r0] - bl SetMonMarkings - bl RefreshCursorMonData - ldr r0, _080C89C0 - bl SetPSSCallback -_080C89B4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C89BC: .4byte 0x00000DA8 -_080C89C0: .4byte Cb_MainPSS - thumb_func_end Cb_ShowMarkMenu - - thumb_func_start Cb_TakeItemForMoving -Cb_TakeItemForMoving: @ 0x080C89C4 - push {r4, r5, lr} - ldr r5, _080C89DC - ldr r0, [r5] - ldrb r1, [r0] - cmp r1, #1 - beq _080C8A10 - cmp r1, #1 - bgt _080C89E0 - cmp r1, #0 - beq _080C89EA - b _080C8A6E - .align 2, 0 -_080C89DC: .4byte gUnknown_20399A8 -_080C89E0: - cmp r1, #2 - beq _080C8A38 - cmp r1, #3 - beq _080C8A5E - b _080C8A6E -_080C89EA: - ldr r1, _080C8A00 - adds r0, r0, r1 - ldrh r0, [r0] - bl ItemIsMail - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C8A04 - bl sub_080CA638 - b _080C8A54 - .align 2, 0 -_080C8A00: .4byte 0x00000CE6 -_080C8A04: - ldr r0, _080C8A0C - bl SetPSSCallback - b _080C8A6E - .align 2, 0 -_080C8A0C: .4byte sub_080C8F54 -_080C8A10: - movs r0, #2 - bl sub_080CF6D0 - ldr r0, _080C8A34 - ldrb r0, [r0] - rsbs r4, r0, #0 - orrs r4, r0 - lsrs r4, r4, #0x1f - bl sub_080CF684 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl Item_FromMonToMoving - b _080C8A54 - .align 2, 0 -_080C8A34: .4byte gUnknown_20399AC -_080C8A38: - bl sub_080D0AB8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C8A6E - movs r0, #3 - bl sub_080CF6D0 - bl sub_080CA638 - bl sub_080CD888 - bl sub_080C9D70 -_080C8A54: - ldr r1, [r5] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080C8A6E -_080C8A5E: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C8A6E - ldr r0, _080C8A74 - bl SetPSSCallback -_080C8A6E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080C8A74: .4byte Cb_MainPSS - thumb_func_end Cb_TakeItemForMoving - - thumb_func_start Cb_GiveMovingItemToMon -Cb_GiveMovingItemToMon: @ 0x080C8A78 - push {r4, lr} - ldr r0, _080C8A90 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, #4 - bhi _080C8B28 - lsls r0, r0, #2 - ldr r1, _080C8A94 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C8A90: .4byte gUnknown_20399A8 -_080C8A94: .4byte _080C8A98 -_080C8A98: @ jump table - .4byte _080C8B00 @ case 0 - .4byte _080C8AAC @ case 1 - .4byte _080C8AD4 @ case 2 - .4byte _080C8AF4 @ case 3 - .4byte _080C8B18 @ case 4 -_080C8AAC: - movs r0, #2 - bl sub_080CF6D0 - ldr r0, _080C8AD0 - ldrb r0, [r0] - rsbs r4, r0, #0 - orrs r4, r0 - lsrs r4, r4, #0x1f - bl sub_080CF684 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl Item_GiveMovingToMon - b _080C8B04 - .align 2, 0 -_080C8AD0: .4byte gUnknown_20399AC -_080C8AD4: - bl sub_080D0AB8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C8B28 - movs r0, #0 - bl sub_080CF6D0 - bl sub_080CD888 - bl sub_080C9D70 - movs r0, #0x1c - bl PrintStorageActionText - b _080C8B04 -_080C8AF4: - ldr r0, _080C8B10 - ldrh r1, [r0, #0x2e] - movs r0, #0xf3 - ands r0, r1 - cmp r0, #0 - beq _080C8B28 -_080C8B00: - bl sub_080CA638 -_080C8B04: - ldr r0, _080C8B14 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080C8B28 - .align 2, 0 -_080C8B10: .4byte gUnknown_3002360 -_080C8B14: .4byte gUnknown_20399A8 -_080C8B18: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C8B28 - ldr r0, _080C8B30 - bl SetPSSCallback -_080C8B28: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C8B30: .4byte Cb_MainPSS - thumb_func_end Cb_GiveMovingItemToMon - - thumb_func_start Cb_ItemToBag -Cb_ItemToBag: @ 0x080C8B34 - push {r4, r5, lr} - ldr r1, _080C8B50 - ldr r0, [r1] - ldrb r0, [r0] - adds r5, r1, #0 - cmp r0, #4 - bls _080C8B44 - b _080C8C3E -_080C8B44: - lsls r0, r0, #2 - ldr r1, _080C8B54 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C8B50: .4byte gUnknown_20399A8 -_080C8B54: .4byte _080C8B58 -_080C8B58: @ jump table - .4byte _080C8B6C @ case 0 - .4byte _080C8BC4 @ case 1 - .4byte _080C8BE4 @ case 2 - .4byte _080C8C28 @ case 3 - .4byte _080C8C10 @ case 4 -_080C8B6C: - ldr r0, [r5] - ldr r1, _080C8B94 - adds r0, r0, r1 - ldrh r0, [r0] - movs r1, #1 - bl AddBagItem - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C8B98 - movs r0, #0x20 - bl sub_080A306C - movs r0, #0x1a - bl PrintStorageActionText - ldr r1, [r5] - movs r0, #3 - strb r0, [r1] - b _080C8C3E - .align 2, 0 -_080C8B94: .4byte 0x00000CE6 -_080C8B98: - movs r0, #5 - bl sub_080A306C - ldr r0, _080C8BC0 - ldrb r0, [r0] - rsbs r4, r0, #0 - orrs r4, r0 - lsrs r4, r4, #0x1f - bl sub_080CF684 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl Item_TakeMons - ldr r1, [r5] - movs r0, #1 - strb r0, [r1] - b _080C8C3E - .align 2, 0 -_080C8BC0: .4byte gUnknown_20399AC -_080C8BC4: - bl sub_080D0AB8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C8C3E - movs r0, #0x19 - bl PrintStorageActionText - ldr r0, _080C8BE0 - ldr r1, [r0] - movs r0, #2 - strb r0, [r1] - b _080C8C3E - .align 2, 0 -_080C8BE0: .4byte gUnknown_20399A8 -_080C8BE4: - ldr r0, _080C8C08 - ldrh r1, [r0, #0x2e] - movs r0, #0xf3 - ands r0, r1 - cmp r0, #0 - beq _080C8C3E - bl sub_080CA638 - bl sub_080CD888 - bl sub_080C9D70 - ldr r0, _080C8C0C - ldr r1, [r0] - movs r0, #4 - strb r0, [r1] - b _080C8C3E - .align 2, 0 -_080C8C08: .4byte gUnknown_3002360 -_080C8C0C: .4byte gUnknown_20399A8 -_080C8C10: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C8C3E - ldr r0, _080C8C24 - bl SetPSSCallback - b _080C8C3E - .align 2, 0 -_080C8C24: .4byte Cb_MainPSS -_080C8C28: - ldr r0, _080C8C44 - ldrh r1, [r0, #0x2e] - movs r0, #0xf3 - ands r0, r1 - cmp r0, #0 - beq _080C8C3E - bl sub_080CA638 - ldr r0, _080C8C48 - bl SetPSSCallback -_080C8C3E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080C8C44: .4byte gUnknown_3002360 -_080C8C48: .4byte Cb_MainPSS - thumb_func_end Cb_ItemToBag - - thumb_func_start Cb_SwitchSelectedItem -Cb_SwitchSelectedItem: @ 0x080C8C4C - push {r4, lr} - ldr r1, _080C8C64 - ldr r0, [r1] - ldrb r0, [r0] - adds r4, r1, #0 - cmp r0, #4 - bhi _080C8D28 - lsls r0, r0, #2 - ldr r1, _080C8C68 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C8C64: .4byte gUnknown_20399A8 -_080C8C68: .4byte _080C8C6C -_080C8C6C: @ jump table - .4byte _080C8C80 @ case 0 - .4byte _080C8CAC @ case 1 - .4byte _080C8CD4 @ case 2 - .4byte _080C8CF4 @ case 3 - .4byte _080C8D18 @ case 4 -_080C8C80: - ldr r0, [r4] - ldr r1, _080C8C9C - adds r0, r0, r1 - ldrh r0, [r0] - bl ItemIsMail - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C8CA0 - bl sub_080CA638 - ldr r1, [r4] - b _080C8D08 - .align 2, 0 -_080C8C9C: .4byte 0x00000CE6 -_080C8CA0: - ldr r0, _080C8CA8 - bl SetPSSCallback - b _080C8D28 - .align 2, 0 -_080C8CA8: .4byte sub_080C8F54 -_080C8CAC: - movs r0, #2 - bl sub_080CF6D0 - ldr r0, _080C8CD0 - ldrb r0, [r0] - rsbs r4, r0, #0 - orrs r4, r0 - lsrs r4, r4, #0x1f - bl sub_080CF684 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl Item_SwitchMonsWithMoving - b _080C8D04 - .align 2, 0 -_080C8CD0: .4byte gUnknown_20399AC -_080C8CD4: - bl sub_080D0AB8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C8D28 - movs r0, #3 - bl sub_080CF6D0 - bl sub_080CD888 - bl sub_080C9D70 - movs r0, #0x1d - bl PrintStorageActionText - b _080C8D04 -_080C8CF4: - ldr r0, _080C8D10 - ldrh r1, [r0, #0x2e] - movs r0, #0xf3 - ands r0, r1 - cmp r0, #0 - beq _080C8D28 - bl sub_080CA638 -_080C8D04: - ldr r0, _080C8D14 - ldr r1, [r0] -_080C8D08: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080C8D28 - .align 2, 0 -_080C8D10: .4byte gUnknown_3002360 -_080C8D14: .4byte gUnknown_20399A8 -_080C8D18: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C8D28 - ldr r0, _080C8D30 - bl SetPSSCallback -_080C8D28: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C8D30: .4byte Cb_MainPSS - thumb_func_end Cb_SwitchSelectedItem - - thumb_func_start Cb_ShowItemInfo -Cb_ShowItemInfo: @ 0x080C8D34 - push {lr} - ldr r0, _080C8D4C - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, #6 - bhi _080C8DE0 - lsls r0, r0, #2 - ldr r1, _080C8D50 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C8D4C: .4byte gUnknown_20399A8 -_080C8D50: .4byte _080C8D54 -_080C8D54: @ jump table - .4byte _080C8D70 @ case 0 - .4byte _080C8D76 @ case 1 - .4byte _080C8D90 @ case 2 - .4byte _080C8D96 @ case 3 - .4byte _080C8D9C @ case 4 - .4byte _080C8DB4 @ case 5 - .4byte _080C8DD0 @ case 6 -_080C8D70: - bl sub_080CA638 - b _080C8DBE -_080C8D76: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C8DE0 - movs r0, #6 - bl sub_080A306C - bl sub_080D1054 - bl sub_080D10B8 - b _080C8DBE -_080C8D90: - bl sub_080D10EC - b _080C8DB8 -_080C8D96: - bl IsDma3ManagerBusyWithBgCopy - b _080C8DB8 -_080C8D9C: - ldr r0, _080C8DB0 - ldrh r1, [r0, #0x2e] - movs r0, #0xf3 - ands r0, r1 - cmp r0, #0 - beq _080C8DE0 - movs r0, #6 - bl sub_080A306C - b _080C8DBE - .align 2, 0 -_080C8DB0: .4byte gUnknown_3002360 -_080C8DB4: - bl sub_080D1184 -_080C8DB8: - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C8DE0 -_080C8DBE: - ldr r0, _080C8DCC - ldr r1, [r0] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080C8DE0 - .align 2, 0 -_080C8DCC: .4byte gUnknown_20399A8 -_080C8DD0: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C8DE0 - ldr r0, _080C8DE4 - bl SetPSSCallback -_080C8DE0: - pop {r0} - bx r0 - .align 2, 0 -_080C8DE4: .4byte Cb_MainPSS - thumb_func_end Cb_ShowItemInfo - - thumb_func_start Cb_CloseBoxWhileHoldingItem -Cb_CloseBoxWhileHoldingItem: @ 0x080C8DE8 - push {r4, lr} - ldr r0, _080C8E00 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, #5 - bls _080C8DF6 - b _080C8F00 -_080C8DF6: - lsls r0, r0, #2 - ldr r1, _080C8E04 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C8E00: .4byte gUnknown_20399A8 -_080C8E04: .4byte _080C8E08 -_080C8E08: @ jump table - .4byte _080C8E20 @ case 0 - .4byte _080C8E40 @ case 1 - .4byte _080C8E9E @ case 2 - .4byte _080C8EC0 @ case 3 - .4byte _080C8ED4 @ case 4 - .4byte _080C8EF0 @ case 5 -_080C8E20: - movs r0, #5 - bl sub_080A306C - movs r0, #0x1b - bl PrintStorageActionText - movs r0, #0 - bl sub_080CA600 - ldr r0, _080C8E3C - ldr r1, [r0] - movs r0, #1 - strb r0, [r1] - b _080C8F00 - .align 2, 0 -_080C8E3C: .4byte gUnknown_20399A8 -_080C8E40: - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _080C8E64 - cmp r1, #0 - bgt _080C8E5A - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _080C8E5E - b _080C8F00 -_080C8E5A: - cmp r1, #1 - bne _080C8F00 -_080C8E5E: - bl sub_080CA638 - b _080C8EE4 -_080C8E64: - ldr r4, _080C8E88 - ldr r0, [r4] - ldr r1, _080C8E8C - adds r0, r0, r1 - ldrh r0, [r0] - movs r1, #1 - bl AddBagItem - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080C8E90 - bl sub_080CA638 - ldr r1, [r4] - movs r0, #3 - strb r0, [r1] - b _080C8F00 - .align 2, 0 -_080C8E88: .4byte gUnknown_20399A8 -_080C8E8C: .4byte 0x00002234 -_080C8E90: - movs r0, #0x1a - bl PrintStorageActionText - ldr r1, [r4] - movs r0, #2 - strb r0, [r1] - b _080C8F00 -_080C8E9E: - ldr r0, _080C8EB8 - ldrh r1, [r0, #0x2e] - movs r0, #0xf3 - ands r0, r1 - cmp r0, #0 - beq _080C8F00 - bl sub_080CA638 - ldr r0, _080C8EBC - ldr r1, [r0] - movs r0, #5 - strb r0, [r1] - b _080C8F00 - .align 2, 0 -_080C8EB8: .4byte gUnknown_3002360 -_080C8EBC: .4byte gUnknown_20399A8 -_080C8EC0: - bl sub_080D0A34 - ldr r0, _080C8ED0 - ldr r1, [r0] - movs r0, #4 - strb r0, [r1] - b _080C8F00 - .align 2, 0 -_080C8ED0: .4byte gUnknown_20399A8 -_080C8ED4: - bl sub_080D0AB8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C8F00 - movs r0, #0 - bl sub_080CF6D0 -_080C8EE4: - ldr r0, _080C8EEC - bl SetPSSCallback - b _080C8F00 - .align 2, 0 -_080C8EEC: .4byte Cb_MainPSS -_080C8EF0: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C8F00 - ldr r0, _080C8F08 - bl SetPSSCallback -_080C8F00: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C8F08: .4byte Cb_MainPSS - thumb_func_end Cb_CloseBoxWhileHoldingItem - - thumb_func_start Cb_HandleMovingMonFromParty -Cb_HandleMovingMonFromParty: @ 0x080C8F0C - push {r4, lr} - ldr r4, _080C8F20 - ldr r0, [r4] - ldrb r0, [r0] - cmp r0, #0 - beq _080C8F24 - cmp r0, #1 - beq _080C8F36 - b _080C8F4A - .align 2, 0 -_080C8F20: .4byte gUnknown_20399A8 -_080C8F24: - bl CompactPartySlots - bl sub_080CB1C4 - ldr r1, [r4] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080C8F4A -_080C8F36: - bl sub_080CB230 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C8F4A - bl PokecenterHealEffect_3 - ldr r0, _080C8F50 - bl SetPSSCallback -_080C8F4A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C8F50: .4byte Cb_MainPSS - thumb_func_end Cb_HandleMovingMonFromParty - - thumb_func_start sub_080C8F54 -sub_080C8F54: @ 0x080C8F54 - push {r4, lr} - ldr r4, _080C8F6C - ldr r0, [r4] - ldrb r0, [r0] - cmp r0, #1 - beq _080C8F82 - cmp r0, #1 - bgt _080C8F70 - cmp r0, #0 - beq _080C8F7A - b _080C8FBC - .align 2, 0 -_080C8F6C: .4byte gUnknown_20399A8 -_080C8F70: - cmp r0, #2 - beq _080C8F8E - cmp r0, #3 - beq _080C8FAC - b _080C8FBC -_080C8F7A: - movs r0, #0x1e - bl PrintStorageActionText - b _080C8F9E -_080C8F82: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C8FBC - b _080C8F9E -_080C8F8E: - ldr r0, _080C8FA8 - ldrh r1, [r0, #0x2e] - movs r0, #0xf3 - ands r0, r1 - cmp r0, #0 - beq _080C8FBC - bl sub_080CA638 -_080C8F9E: - ldr r1, [r4] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080C8FBC - .align 2, 0 -_080C8FA8: .4byte gUnknown_3002360 -_080C8FAC: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C8FBC - ldr r0, _080C8FC4 - bl SetPSSCallback -_080C8FBC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C8FC4: .4byte Cb_MainPSS - thumb_func_end sub_080C8F54 - - thumb_func_start Cb_HandleBoxOptions -Cb_HandleBoxOptions: @ 0x080C8FC8 - push {r4, lr} - ldr r4, _080C8FE0 - ldr r0, [r4] - ldrb r0, [r0] - cmp r0, #1 - beq _080C8FFE - cmp r0, #1 - bgt _080C8FE4 - cmp r0, #0 - beq _080C8FEA - b _080C90B4 - .align 2, 0 -_080C8FE0: .4byte gUnknown_20399A8 -_080C8FE4: - cmp r0, #2 - beq _080C9010 - b _080C90B4 -_080C8FEA: - movs r0, #1 - bl PrintStorageActionText - bl sub_080CF84C - ldr r1, [r4] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080C90B4 -_080C8FFE: - bl sub_080CF948 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C90B4 - ldr r1, [r4] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_080C9010: - bl sub_080CF94C - adds r0, #1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xc - bhi _080C90B4 - lsls r0, r0, #2 - ldr r1, _080C9028 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C9028: .4byte _080C902C -_080C902C: @ jump table - .4byte _080C9060 @ case 0 - .4byte _080C9060 @ case 1 - .4byte _080C90B4 @ case 2 - .4byte _080C90B4 @ case 3 - .4byte _080C90B4 @ case 4 - .4byte _080C90B4 @ case 5 - .4byte _080C90B4 @ case 6 - .4byte _080C90B4 @ case 7 - .4byte _080C90B4 @ case 8 - .4byte _080C90B4 @ case 9 - .4byte _080C90A4 @ case 10 - .4byte _080C908C @ case 11 - .4byte _080C9078 @ case 12 -_080C9060: - movs r0, #1 - bl sub_080CCA24 - bl sub_080CA638 - ldr r0, _080C9074 - bl SetPSSCallback - b _080C90B4 - .align 2, 0 -_080C9074: .4byte Cb_MainPSS -_080C9078: - movs r0, #5 - bl sub_080A306C - ldr r0, _080C9088 - bl SetPSSCallback - b _080C90B4 - .align 2, 0 -_080C9088: .4byte BattleSetup_GetTerrainId -_080C908C: - movs r0, #5 - bl sub_080A306C - bl sub_080CA638 - ldr r0, _080C90A0 - bl SetPSSCallback - b _080C90B4 - .align 2, 0 -_080C90A0: .4byte Cb_HandleWallpapers -_080C90A4: - movs r0, #5 - bl sub_080A306C - bl sub_080CA638 - ldr r0, _080C90BC - bl SetPSSCallback -_080C90B4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C90BC: .4byte sub_080C9274 - thumb_func_end Cb_HandleBoxOptions - - thumb_func_start Cb_HandleWallpapers -Cb_HandleWallpapers: @ 0x080C90C0 - push {r4, r5, lr} - ldr r0, _080C90D8 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, #6 - bls _080C90CE - b _080C9268 -_080C90CE: - lsls r0, r0, #2 - ldr r1, _080C90DC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C90D8: .4byte gUnknown_20399A8 -_080C90DC: .4byte _080C90E0 -_080C90E0: @ jump table - .4byte _080C90FC @ case 0 - .4byte _080C9114 @ case 1 - .4byte _080C9130 @ case 2 - .4byte _080C91A8 @ case 3 - .4byte _080C91D8 @ case 4 - .4byte _080C922C @ case 5 - .4byte _080C9248 @ case 6 -_080C90FC: - bl sub_080CA64C - movs r0, #2 - bl PrintStorageActionText - ldr r0, _080C9110 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, #1 - b _080C9266 - .align 2, 0 -_080C9110: .4byte gUnknown_20399A8 -_080C9114: - bl sub_080CF948 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C9120 - b _080C9268 -_080C9120: - ldr r0, _080C912C - ldr r1, [r0] - ldrb r0, [r1] - adds r0, #1 - b _080C9266 - .align 2, 0 -_080C912C: .4byte gUnknown_20399A8 -_080C9130: - bl sub_080CF94C - ldr r4, _080C9154 - ldr r1, [r4] - ldr r5, _080C9158 - adds r1, r1, r5 - strh r0, [r1] - movs r0, #0 - ldrsh r1, [r1, r0] - cmp r1, #0x15 - bgt _080C915C - cmp r1, #0x12 - bge _080C916E - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _080C9162 - b _080C9268 - .align 2, 0 -_080C9154: .4byte gUnknown_20399A8 -_080C9158: .4byte 0x0000078E -_080C915C: - cmp r1, #0x16 - beq _080C9188 - b _080C9268 -_080C9162: - movs r0, #1 - bl sub_080CCA24 - bl sub_080CA638 - b _080C923C -_080C916E: - movs r0, #5 - bl sub_080A306C - bl sub_080CF9DC - ldr r1, [r4] - adds r2, r1, r5 - ldrh r0, [r2] - subs r0, #0x12 - strh r0, [r2] - ldrb r0, [r1] - adds r0, #1 - b _080C9266 -_080C9188: - movs r0, #5 - bl sub_080A306C - ldr r0, [r4] - movs r1, #0xf2 - lsls r1, r1, #3 - adds r0, r0, r1 - movs r1, #0x10 - strh r1, [r0] - bl sub_080CF9DC - bl sub_080CA638 - ldr r1, [r4] - movs r0, #6 - b _080C9266 -_080C91A8: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C9268 - ldr r4, _080C91D0 - ldr r0, [r4] - ldr r1, _080C91D4 - adds r0, r0, r1 - ldrb r0, [r0] - bl AddWallpapersMenu - movs r0, #3 - bl PrintStorageActionText - ldr r1, [r4] - ldrb r0, [r1] - adds r0, #1 - b _080C9266 - .align 2, 0 -_080C91D0: .4byte gUnknown_20399A8 -_080C91D4: .4byte 0x0000078E -_080C91D8: - bl sub_080CF94C - ldr r4, _080C9204 - ldr r1, [r4] - movs r5, #0xf2 - lsls r5, r5, #3 - adds r1, r1, r5 - strh r0, [r1] - movs r0, #0 - ldrsh r1, [r1, r0] - movs r0, #2 - rsbs r0, r0, #0 - cmp r1, r0 - beq _080C9268 - adds r0, #1 - cmp r1, r0 - bne _080C9208 - bl sub_080CA638 - ldr r1, [r4] - movs r0, #0 - b _080C9266 - .align 2, 0 -_080C9204: .4byte gUnknown_20399A8 -_080C9208: - movs r0, #5 - bl sub_080A306C - bl sub_080CA638 - ldr r1, [r4] - adds r1, r1, r5 - ldrh r0, [r1] - subs r0, #0x17 - strh r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl SetWallpaperForCurrentBox - ldr r1, [r4] - ldrb r0, [r1] - adds r0, #1 - b _080C9266 -_080C922C: - bl DoWallpaperGfxChange - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C9268 - movs r0, #1 - bl sub_080CCA24 -_080C923C: - ldr r0, _080C9244 - bl SetPSSCallback - b _080C9268 - .align 2, 0 -_080C9244: .4byte Cb_MainPSS -_080C9248: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C9268 - ldr r4, _080C9270 - ldr r0, [r4] - movs r1, #0xf2 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrb r0, [r0] - bl SetWallpaperForCurrentBox - ldr r1, [r4] - movs r0, #5 -_080C9266: - strb r0, [r1] -_080C9268: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080C9270: .4byte gUnknown_20399A8 - thumb_func_end Cb_HandleWallpapers - - thumb_func_start sub_080C9274 -sub_080C9274: @ 0x080C9274 - push {r4, r5, lr} - sub sp, #4 - ldr r5, _080C928C - ldr r0, [r5] - ldrb r4, [r0] - cmp r4, #1 - beq _080C92C8 - cmp r4, #1 - bgt _080C9290 - cmp r4, #0 - beq _080C929A - b _080C9354 - .align 2, 0 -_080C928C: .4byte gUnknown_20399A8 -_080C9290: - cmp r4, #2 - beq _080C9320 - cmp r4, #3 - beq _080C9338 - b _080C9354 -_080C929A: - movs r0, #5 - bl PrintStorageActionText - ldr r0, [r5] - ldr r1, _080C92C0 - adds r0, r0, r1 - ldr r2, _080C92C4 - str r4, [sp] - movs r1, #0xa - movs r3, #3 - bl sub_080C7080 - bl sub_080D15AC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_080C716C - b _080C932A - .align 2, 0 -_080C92C0: .4byte 0x00001E5C -_080C92C4: .4byte 0x0000DAC7 -_080C92C8: - bl HandleBoxChooseSelectionInput - ldr r1, [r5] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080C9318 - adds r1, r1, r2 - strh r0, [r1] - movs r2, #0 - ldrsh r0, [r1, r2] - cmp r0, #0xc8 - beq _080C9354 - bl sub_080CA638 - bl WallyHandleGetRawMonData - bl sub_080C7128 - ldr r0, [r5] - ldr r2, _080C9318 - adds r1, r0, r2 - movs r2, #0 - ldrsh r0, [r1, r2] - cmp r0, #0xc9 - beq _080C9308 - adds r4, r0, #0 - bl sub_080D15AC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - bne _080C932A -_080C9308: - movs r0, #1 - bl sub_080CCA24 - ldr r0, _080C931C - bl SetPSSCallback - b _080C9354 - .align 2, 0 -_080C9318: .4byte 0x000002CA -_080C931C: .4byte Cb_MainPSS -_080C9320: - ldr r1, _080C9334 - adds r0, r0, r1 - ldrb r0, [r0] - bl SetUpScrollToBox -_080C932A: - ldr r1, [r5] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080C9354 - .align 2, 0 -_080C9334: .4byte 0x000002CA -_080C9338: - bl ScrollToBox - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C9354 - ldr r0, [r5] - ldr r2, _080C935C - adds r0, r0, r2 - ldrb r0, [r0] - bl SetCurrentBox - ldr r0, _080C9360 - bl SetPSSCallback -_080C9354: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080C935C: .4byte 0x000002CA -_080C9360: .4byte Cb_MainPSS - thumb_func_end sub_080C9274 - - thumb_func_start BattleSetup_GetTerrainId -BattleSetup_GetTerrainId: @ 0x080C9364 - push {r4, r5, lr} - sub sp, #4 - ldr r5, _080C9378 - ldr r0, [r5] - ldrb r4, [r0] - cmp r4, #0 - beq _080C937C - cmp r4, #1 - beq _080C939A - b _080C93B4 - .align 2, 0 -_080C9378: .4byte gUnknown_20399A8 -_080C937C: - bl sub_080CDFDC - movs r0, #1 - rsbs r0, r0, #0 - str r4, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, [r5] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080C93B4 -_080C939A: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C93B4 - ldr r0, _080C93BC - strb r4, [r0] - ldr r1, [r5] - movs r0, #2 - strb r0, [r1, #2] - ldr r0, _080C93C0 - bl SetPSSCallback -_080C93B4: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080C93BC: .4byte gUnknown_20399AF -_080C93C0: .4byte sub_080C96EC - thumb_func_end BattleSetup_GetTerrainId - - thumb_func_start Cb_ShowMonSummary -Cb_ShowMonSummary: @ 0x080C93C4 - push {r4, r5, lr} - sub sp, #4 - ldr r5, _080C93D8 - ldr r0, [r5] - ldrb r4, [r0] - cmp r4, #0 - beq _080C93DC - cmp r4, #1 - beq _080C93FA - b _080C9414 - .align 2, 0 -_080C93D8: .4byte gUnknown_20399A8 -_080C93DC: - bl sub_080CE064 - movs r0, #1 - rsbs r0, r0, #0 - str r4, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, [r5] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080C9414 -_080C93FA: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _080C9414 - ldr r0, _080C941C - strb r1, [r0] - ldr r0, [r5] - strb r4, [r0, #2] - ldr r0, _080C9420 - bl SetPSSCallback -_080C9414: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080C941C: .4byte gUnknown_20399AF -_080C9420: .4byte sub_080C96EC - thumb_func_end Cb_ShowMonSummary - - thumb_func_start Cb_GiveItemFromBag -Cb_GiveItemFromBag: @ 0x080C9424 - push {r4, lr} - sub sp, #4 - ldr r4, _080C9438 - ldr r0, [r4] - ldrb r1, [r0] - cmp r1, #0 - beq _080C943C - cmp r1, #1 - beq _080C9456 - b _080C9472 - .align 2, 0 -_080C9438: .4byte gUnknown_20399A8 -_080C943C: - movs r0, #1 - rsbs r0, r0, #0 - str r1, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, [r4] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080C9472 -_080C9456: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C9472 - ldr r1, _080C947C - movs r0, #2 - strb r0, [r1] - ldr r1, [r4] - movs r0, #3 - strb r0, [r1, #2] - ldr r0, _080C9480 - bl SetPSSCallback -_080C9472: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C947C: .4byte gUnknown_20399AF -_080C9480: .4byte sub_080C96EC - thumb_func_end Cb_GiveItemFromBag - - thumb_func_start Cb_OnCloseBoxPressed -Cb_OnCloseBoxPressed: @ 0x080C9484 - push {r4, lr} - ldr r0, _080C949C - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, #4 - bls _080C9492 - b _080C95A4 -_080C9492: - lsls r0, r0, #2 - ldr r1, _080C94A0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C949C: .4byte gUnknown_20399A8 -_080C94A0: .4byte _080C94A4 -_080C94A4: @ jump table - .4byte _080C94B8 @ case 0 - .4byte _080C9514 @ case 1 - .4byte _080C9528 @ case 2 - .4byte _080C9564 @ case 3 - .4byte _080C9580 @ case 4 -_080C94B8: - bl sub_080CE34C - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C94DC - movs r0, #0x20 - bl sub_080A306C - movs r0, #0xf - bl PrintStorageActionText - ldr r0, _080C94D8 - ldr r1, [r0] - movs r0, #1 - strb r0, [r1] - b _080C95A4 - .align 2, 0 -_080C94D8: .4byte gUnknown_20399A8 -_080C94DC: - bl IsActiveItemMoving - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C94F4 - ldr r0, _080C94F0 - bl SetPSSCallback - b _080C95A4 - .align 2, 0 -_080C94F0: .4byte Cb_CloseBoxWhileHoldingItem -_080C94F4: - movs r0, #5 - bl sub_080A306C - movs r0, #0 - bl PrintStorageActionText - movs r0, #0 - bl sub_080CA600 - ldr r0, _080C9510 - ldr r1, [r0] - movs r0, #2 - strb r0, [r1] - b _080C95A4 - .align 2, 0 -_080C9510: .4byte gUnknown_20399A8 -_080C9514: - ldr r0, _080C9524 - ldrh r1, [r0, #0x2e] - movs r0, #0xf3 - ands r0, r1 - cmp r0, #0 - beq _080C95A4 - b _080C9546 - .align 2, 0 -_080C9524: .4byte gUnknown_3002360 -_080C9528: - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _080C9558 - cmp r1, #0 - bgt _080C9542 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _080C9546 - b _080C95A4 -_080C9542: - cmp r1, #1 - bne _080C95A4 -_080C9546: - bl sub_080CA638 - ldr r0, _080C9554 - bl SetPSSCallback - b _080C95A4 - .align 2, 0 -_080C9554: .4byte Cb_MainPSS -_080C9558: - movs r0, #3 - bl sub_080A306C - bl sub_080CA638 - b _080C956E -_080C9564: - movs r0, #0x14 - movs r1, #0 - movs r2, #1 - bl sub_080FA464 -_080C956E: - ldr r0, _080C957C - ldr r1, [r0] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080C95A4 - .align 2, 0 -_080C957C: .4byte gUnknown_20399A8 -_080C9580: - bl FldEffPoison_IsActive - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _080C95A4 - bl sub_080CA444 - bl sub_0806B004 - ldr r1, _080C95AC - strb r0, [r1] - ldr r0, _080C95B0 - ldr r0, [r0] - strb r4, [r0, #2] - ldr r0, _080C95B4 - bl SetPSSCallback -_080C95A4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C95AC: .4byte gUnknown_202418D -_080C95B0: .4byte gUnknown_20399A8 -_080C95B4: .4byte sub_080C96EC - thumb_func_end Cb_OnCloseBoxPressed - - thumb_func_start sub_080C95B8 -sub_080C95B8: @ 0x080C95B8 - push {r4, lr} - ldr r0, _080C95D0 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, #4 - bls _080C95C6 - b _080C96D8 -_080C95C6: - lsls r0, r0, #2 - ldr r1, _080C95D4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C95D0: .4byte gUnknown_20399A8 -_080C95D4: .4byte _080C95D8 -_080C95D8: @ jump table - .4byte _080C95EC @ case 0 - .4byte _080C9648 @ case 1 - .4byte _080C965C @ case 2 - .4byte _080C9698 @ case 3 - .4byte _080C96B4 @ case 4 -_080C95EC: - bl sub_080CE34C - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C9610 - movs r0, #0x20 - bl sub_080A306C - movs r0, #0xf - bl PrintStorageActionText - ldr r0, _080C960C - ldr r1, [r0] - movs r0, #1 - strb r0, [r1] - b _080C96D8 - .align 2, 0 -_080C960C: .4byte gUnknown_20399A8 -_080C9610: - bl IsActiveItemMoving - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080C9628 - ldr r0, _080C9624 - bl SetPSSCallback - b _080C96D8 - .align 2, 0 -_080C9624: .4byte Cb_CloseBoxWhileHoldingItem -_080C9628: - movs r0, #5 - bl sub_080A306C - movs r0, #0x12 - bl PrintStorageActionText - movs r0, #0 - bl sub_080CA600 - ldr r0, _080C9644 - ldr r1, [r0] - movs r0, #2 - strb r0, [r1] - b _080C96D8 - .align 2, 0 -_080C9644: .4byte gUnknown_20399A8 -_080C9648: - ldr r0, _080C9658 - ldrh r1, [r0, #0x2e] - movs r0, #0xf3 - ands r0, r1 - cmp r0, #0 - beq _080C96D8 - b _080C967C - .align 2, 0 -_080C9658: .4byte gUnknown_3002360 -_080C965C: - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _080C967C - cmp r1, #0 - bgt _080C9676 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _080C968C - b _080C96D8 -_080C9676: - cmp r1, #1 - beq _080C968C - b _080C96D8 -_080C967C: - bl sub_080CA638 - ldr r0, _080C9688 - bl SetPSSCallback - b _080C96D8 - .align 2, 0 -_080C9688: .4byte Cb_MainPSS -_080C968C: - movs r0, #3 - bl sub_080A306C - bl sub_080CA638 - b _080C96A2 -_080C9698: - movs r0, #0x14 - movs r1, #0 - movs r2, #0 - bl sub_080FA464 -_080C96A2: - ldr r0, _080C96B0 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080C96D8 - .align 2, 0 -_080C96B0: .4byte gUnknown_20399A8 -_080C96B4: - bl FldEffPoison_IsActive - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _080C96D8 - bl sub_080CA444 - bl sub_0806B004 - ldr r1, _080C96E0 - strb r0, [r1] - ldr r0, _080C96E4 - ldr r0, [r0] - strb r4, [r0, #2] - ldr r0, _080C96E8 - bl SetPSSCallback -_080C96D8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C96E0: .4byte gUnknown_202418D -_080C96E4: .4byte gUnknown_20399A8 -_080C96E8: .4byte sub_080C96EC - thumb_func_end sub_080C95B8 - - thumb_func_start sub_080C96EC -sub_080C96EC: @ 0x080C96EC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _080C9718 - ldr r0, [r0] - ldrb r4, [r0, #2] - ldrb r0, [r0, #1] - cmp r0, #3 - bne _080C9720 - bl IsActiveItemMoving - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080C9720 - bl sub_080D0B74 - ldr r1, _080C971C - b _080C9724 - .align 2, 0 -_080C9718: .4byte gUnknown_20399A8 -_080C971C: .4byte gUnknown_20399B2 -_080C9720: - ldr r1, _080C9744 - movs r0, #0 -_080C9724: - strh r0, [r1] - cmp r4, #1 - beq _080C974C - cmp r4, #1 - ble _080C9736 - cmp r4, #2 - beq _080C9790 - cmp r4, #3 - beq _080C97BC -_080C9736: - bl FreePSSData - ldr r0, _080C9748 - bl SetMainCallback2 - b _080C97CA - .align 2, 0 -_080C9744: .4byte gUnknown_20399B2 -_080C9748: .4byte Cb2_ExitPSS -_080C974C: - ldr r0, _080C9780 - ldr r1, [r0] - ldr r2, _080C9784 - adds r0, r1, r2 - ldr r0, [r0] - mov r8, r0 - subs r2, #5 - adds r0, r1, r2 - ldrb r6, [r0] - subs r2, #1 - adds r0, r1, r2 - ldrb r5, [r0] - ldr r0, _080C9788 - adds r1, r1, r0 - ldrb r4, [r1] - bl FreePSSData - ldr r0, _080C978C - str r0, [sp] - adds r0, r4, #0 - mov r1, r8 - adds r2, r6, #0 - adds r3, r5, #0 - bl ShowPokemonSummaryScreen - b _080C97CA - .align 2, 0 -_080C9780: .4byte gUnknown_20399A8 -_080C9784: .4byte 0x0000218C -_080C9788: .4byte 0x00002188 -_080C978C: .4byte Cb2_ReturnToPSS -_080C9790: - bl FreePSSData - bl sub_080D15AC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBoxNamePtr - adds r1, r0, #0 - movs r0, #0 - str r0, [sp] - ldr r0, _080C97B8 - str r0, [sp, #4] - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl DoNamingScreen - b _080C97CA - .align 2, 0 -_080C97B8: .4byte Cb2_ReturnToPSS -_080C97BC: - bl FreePSSData - ldr r2, _080C97DC - movs r0, #0xb - movs r1, #0 - bl GoToBagMenu -_080C97CA: - adds r0, r7, #0 - bl DestroyTask - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080C97DC: .4byte Cb2_ReturnToPSS - thumb_func_end sub_080C96EC - - thumb_func_start GiveChosenBagItem -GiveChosenBagItem: @ 0x080C97E0 - push {lr} - sub sp, #4 - ldr r0, _080C9814 - ldrh r1, [r0] - mov r0, sp - strh r1, [r0] - cmp r1, #0 - beq _080C9834 - bl sub_080CF684 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r0, _080C9818 - ldrb r0, [r0] - cmp r0, #0 - beq _080C9820 - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080C981C - adds r0, r0, r1 - movs r1, #0xc - mov r2, sp - bl SetMonData - b _080C982A - .align 2, 0 -_080C9814: .4byte gUnknown_203CB48 -_080C9818: .4byte gUnknown_20399AC -_080C981C: .4byte gUnknown_2024190 -_080C9820: - adds r0, r1, #0 - movs r1, #0xc - mov r2, sp - bl SetCurrentBoxMonData -_080C982A: - mov r0, sp - ldrh r0, [r0] - movs r1, #1 - bl RemoveBagItem -_080C9834: - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end GiveChosenBagItem - - thumb_func_start FreePSSData -FreePSSData: @ 0x080C983C - push {r4, lr} - bl sub_080D1E90 - bl sub_080CFA58 - ldr r4, _080C985C - ldr r0, [r4] - bl Free - movs r0, #0 - str r0, [r4] - bl FreeAllWindowBuffers - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C985C: .4byte gUnknown_20399A8 - thumb_func_end FreePSSData - - thumb_func_start SetScrollingBackground -SetScrollingBackground: @ 0x080C9860 - push {lr} - sub sp, #4 - ldr r1, _080C988C - movs r0, #0xe - bl SetGpuReg - ldr r1, _080C9890 - movs r0, #0 - str r0, [sp] - movs r0, #3 - movs r2, #0 - movs r3, #0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r0, _080C9894 - ldr r1, _080C9898 - bl LZ77UnCompVram - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_080C988C: .4byte 0x00001F0F -_080C9890: .4byte gUnknown_854BBFC -_080C9894: .4byte gUnknown_854BC94 -_080C9898: .4byte 0x0600F800 - thumb_func_end SetScrollingBackground - - thumb_func_start ScrollBackground -ScrollBackground: @ 0x080C989C - push {lr} - movs r0, #3 - movs r1, #0x80 - movs r2, #1 - bl ChangeBgX - movs r0, #3 - movs r1, #0x80 - movs r2, #2 - bl ChangeBgY - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ScrollBackground - - thumb_func_start LoadPSSMenuGfx -LoadPSSMenuGfx: @ 0x080C98B8 - push {r4, r5, lr} - sub sp, #4 - ldr r1, _080C9904 - movs r0, #0 - movs r2, #4 - bl InitBgsFromTemplates - ldr r1, _080C9908 - movs r0, #0 - str r0, [sp] - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r0, _080C990C - ldr r5, _080C9910 - ldr r1, [r5] - ldr r4, _080C9914 - adds r1, r1, r4 - bl LZ77UnCompWram - ldr r1, [r5] - adds r1, r1, r4 - movs r0, #1 - bl SetBgTilemapBuffer - movs r0, #1 - bl ShowBg - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080C9904: .4byte gUnknown_854C9E4 -_080C9908: .4byte gUnknown_854BF9C -_080C990C: .4byte gUnknown_854BDC0 -_080C9910: .4byte gUnknown_20399A8 -_080C9914: .4byte 0x00005AC4 - thumb_func_end LoadPSSMenuGfx - - thumb_func_start sub_080C9918 -sub_080C9918: @ 0x080C9918 - push {lr} - ldr r0, _080C9930 - bl InitWindows - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080C9934 - bl sub_08004480 - movs r0, #1 - b _080C9936 - .align 2, 0 -_080C9930: .4byte gUnknown_854C9C4 -_080C9934: - movs r0, #0 -_080C9936: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080C9918 - - thumb_func_start LoadWaveformSpritePalette -LoadWaveformSpritePalette: @ 0x080C993C - push {lr} - ldr r0, _080C9948 - bl LoadSpritePalette - pop {r0} - bx r0 - .align 2, 0 -_080C9948: .4byte gUnknown_854C9F4 - thumb_func_end LoadWaveformSpritePalette - - thumb_func_start sub_080C994C -sub_080C994C: @ 0x080C994C - push {lr} - ldr r0, _080C9984 - movs r1, #0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _080C9988 - movs r1, #0x20 - movs r2, #0x20 - bl LoadPalette - ldr r0, _080C998C - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _080C9990 - ldr r0, [r0] - ldrb r0, [r0, #1] - cmp r0, #3 - beq _080C9998 - ldr r0, _080C9994 - movs r1, #0x30 - movs r2, #0x20 - bl LoadPalette - b _080C99A2 - .align 2, 0 -_080C9984: .4byte gUnknown_854BEFC -_080C9988: .4byte gUnknown_854BF1C -_080C998C: .4byte gUnknown_854C9A4 -_080C9990: .4byte gUnknown_20399A8 -_080C9994: .4byte gUnknown_854BF5C -_080C9998: - ldr r0, _080C99C0 - movs r1, #0x30 - movs r2, #0x20 - bl LoadPalette -_080C99A2: - ldr r1, _080C99C4 - movs r0, #0xa - bl SetGpuReg - bl LoadCursorMonSprite - bl sub_080C99C8 - bl sub_080C9A38 - bl RefreshCursorMonData - pop {r0} - bx r0 - .align 2, 0 -_080C99C0: .4byte gUnknown_854BF7C -_080C99C4: .4byte 0x00001E05 - thumb_func_end sub_080C994C - - thumb_func_start sub_080C99C8 -sub_080C99C8: @ 0x080C99C8 - push {r4, lr} - ldr r1, _080C9A28 - movs r0, #0x10 - movs r2, #0 - bl sub_081204D4 - ldr r4, _080C9A2C - ldr r1, [r4] - ldr r3, _080C9A30 - adds r1, r1, r3 - str r0, [r1] - ldrb r2, [r0, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #4 - orrs r1, r2 - strb r1, [r0, #5] - ldr r0, [r4] - adds r0, r0, r3 - ldr r0, [r0] - adds r0, #0x43 - movs r1, #1 - strb r1, [r0] - ldr r0, [r4] - adds r0, r0, r3 - ldr r2, [r0] - movs r1, #0x28 - strh r1, [r2, #0x20] - ldr r1, [r0] - movs r0, #0x96 - strh r0, [r1, #0x22] - movs r0, #0x10 - bl GetSpriteTileStartByTag - ldr r1, [r4] - movs r2, #0xda - lsls r2, r2, #4 - adds r1, r1, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0xb - ldr r2, _080C9A34 - adds r0, r0, r2 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C9A28: .4byte 0x0000DAC8 -_080C9A2C: .4byte gUnknown_20399A8 -_080C9A30: .4byte 0x00000D94 -_080C9A34: .4byte 0x06010000 - thumb_func_end sub_080C99C8 - - thumb_func_start sub_080C9A38 -sub_080C9A38: @ 0x080C9A38 - push {r4, lr} - sub sp, #8 - ldr r0, _080C9A90 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, #4] - mov r0, sp - bl LoadSpriteSheet - movs r4, #0 -_080C9A4E: - lsls r1, r4, #6 - subs r1, r1, r4 - adds r1, #8 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldr r0, _080C9A94 - movs r2, #9 - movs r3, #2 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080C9A98 - ldr r2, [r1] - lsls r1, r4, #2 - ldr r3, _080C9A9C - adds r2, r2, r3 - adds r2, r2, r1 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _080C9AA0 - adds r1, r1, r0 - str r1, [r2] - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #1 - bls _080C9A4E - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C9A90: .4byte gUnknown_854C9FC -_080C9A94: .4byte gUnknown_854CB6C -_080C9A98: .4byte gUnknown_20399A8 -_080C9A9C: .4byte 0x00000D98 -_080C9AA0: .4byte gUnknown_20205AC - thumb_func_end sub_080C9A38 - - thumb_func_start RefreshCursorMonData -RefreshCursorMonData: @ 0x080C9AA4 - push {lr} - ldr r0, _080C9ACC - ldr r1, [r0] - ldr r2, _080C9AD0 - adds r0, r1, r2 - ldrh r0, [r0] - subs r2, #4 - adds r1, r1, r2 - ldr r1, [r1] - bl LoadCursorMonGfx - bl sub_080C9D70 - bl sub_080C9EC0 - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - pop {r0} - bx r0 - .align 2, 0 -_080C9ACC: .4byte gUnknown_20399A8 -_080C9AD0: .4byte 0x00000CE4 - thumb_func_end RefreshCursorMonData - - thumb_func_start BoxSetMosaic -BoxSetMosaic: @ 0x080C9AD4 - push {lr} - bl RefreshCursorMonData - ldr r3, _080C9B24 - ldr r0, [r3] - movs r1, #0x89 - lsls r1, r1, #6 - adds r0, r0, r1 - ldr r2, [r0] - cmp r2, #0 - beq _080C9B20 - ldrb r0, [r2, #1] - movs r1, #0x10 - orrs r0, r1 - strb r0, [r2, #1] - ldr r1, [r3] - movs r0, #0x89 - lsls r0, r0, #6 - adds r1, r1, r0 - ldr r2, [r1] - movs r0, #0xa - strh r0, [r2, #0x2e] - ldr r2, [r1] - movs r0, #1 - strh r0, [r2, #0x30] - ldr r2, [r1] - ldr r0, _080C9B28 - str r0, [r2, #0x1c] - ldr r0, [r1] - ldrh r0, [r0, #0x2e] - lsls r1, r0, #0xc - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x4c - bl SetGpuReg -_080C9B20: - pop {r0} - bx r0 - .align 2, 0 -_080C9B24: .4byte gUnknown_20399A8 -_080C9B28: .4byte sub_080C9B44 - thumb_func_end BoxSetMosaic - - thumb_func_start sub_080C9B2C -sub_080C9B2C: @ 0x080C9B2C - ldr r0, _080C9B40 - ldr r0, [r0] - movs r1, #0x89 - lsls r1, r1, #6 - adds r0, r0, r1 - ldr r0, [r0] - ldrb r0, [r0, #1] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1f - bx lr - .align 2, 0 -_080C9B40: .4byte gUnknown_20399A8 - thumb_func_end sub_080C9B2C - - thumb_func_start sub_080C9B44 -sub_080C9B44: @ 0x080C9B44 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - ldrh r1, [r4, #0x30] - subs r0, r0, r1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _080C9B5A - movs r0, #0 - strh r0, [r4, #0x2e] -_080C9B5A: - ldrh r0, [r4, #0x2e] - lsls r1, r0, #0xc - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x4c - bl SetGpuReg - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080C9B82 - ldrb r0, [r4, #1] - movs r1, #0x11 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #1] - ldr r0, _080C9B88 - str r0, [r4, #0x1c] -_080C9B82: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C9B88: .4byte sub_08007140 - thumb_func_end sub_080C9B44 - - thumb_func_start LoadCursorMonSprite -LoadCursorMonSprite: @ 0x080C9B8C - push {r4, r5, r6, r7, lr} - sub sp, #0x28 - ldr r0, _080C9C20 - mov ip, r0 - ldr r1, [r0] - ldr r4, _080C9C24 - adds r0, r1, r4 - str r0, [sp, #0x18] - add r3, sp, #0x18 - movs r0, #0x82 - lsls r0, r0, #0xa - str r0, [r3, #4] - ldr r5, _080C9C28 - adds r1, r1, r5 - str r1, [sp, #0x20] - ldr r0, _080C9C2C - add r2, sp, #0x20 - str r0, [r2, #4] - mov r1, sp - ldr r0, _080C9C30 - ldm r0!, {r5, r6, r7} - stm r1!, {r5, r6, r7} - ldm r0!, {r5, r6, r7} - stm r1!, {r5, r6, r7} - movs r6, #0 - adds r7, r2, #0 - mov r5, ip - movs r2, #0 - ldr r1, _080C9C34 -_080C9BC6: - ldr r0, [r5] - adds r0, r0, r4 - adds r0, r0, r6 - strb r2, [r0] - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, r1 - bls _080C9BC6 - movs r6, #0 - ldr r5, _080C9C20 - ldr r4, _080C9C28 - movs r2, #0 -_080C9BE0: - ldr r0, [r5] - lsls r1, r6, #1 - adds r0, r0, r4 - adds r0, r0, r1 - strh r2, [r0] - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0xf - bls _080C9BE0 - ldr r0, _080C9C20 - ldr r0, [r0] - movs r6, #0x89 - lsls r6, r6, #6 - adds r0, r0, r6 - movs r1, #0 - str r1, [r0] - adds r0, r3, #0 - bl LoadSpriteSheet - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0 - beq _080C9C94 - adds r0, r7, #0 - bl LoadSpritePalette - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xff - beq _080C9C94 - b _080C9C80 - .align 2, 0 -_080C9C20: .4byte gUnknown_20399A8 -_080C9C24: .4byte 0x000022C4 -_080C9C28: .4byte 0x00002244 -_080C9C2C: .4byte 0x0000DAC6 -_080C9C30: .4byte gUnknown_854CA04 -_080C9C34: .4byte 0x000007FF -_080C9C38: - ldr r0, _080C9C6C - ldr r2, [r0] - movs r7, #0x89 - lsls r7, r7, #6 - adds r3, r2, r7 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080C9C70 - adds r0, r0, r1 - str r0, [r3] - lsls r0, r4, #4 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r0, r1 - ldr r3, _080C9C74 - adds r1, r2, r3 - strh r0, [r1] - ldr r6, _080C9C78 - adds r2, r2, r6 - lsls r0, r5, #5 - ldr r7, _080C9C7C - adds r0, r0, r7 - str r0, [r2] - b _080C9C94 - .align 2, 0 -_080C9C6C: .4byte gUnknown_20399A8 -_080C9C70: .4byte gUnknown_20205AC -_080C9C74: .4byte 0x0000223A -_080C9C78: .4byte 0x0000223C -_080C9C7C: .4byte 0x06010000 -_080C9C80: - mov r0, sp - movs r1, #0x28 - movs r2, #0x30 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x40 - bne _080C9C38 -_080C9C94: - ldr r0, _080C9CB8 - ldr r0, [r0] - movs r1, #0x89 - lsls r1, r1, #6 - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #0 - bne _080C9CB0 - movs r0, #2 - bl FreeSpriteTilesByTag - ldr r0, _080C9CBC - bl FreeSpritePaletteByTag -_080C9CB0: - add sp, #0x28 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080C9CB8: .4byte gUnknown_20399A8 -_080C9CBC: .4byte 0x0000DAC6 - thumb_func_end LoadCursorMonSprite - - thumb_func_start LoadCursorMonGfx -LoadCursorMonGfx: @ 0x080C9CC0 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r3, r1, #0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r6, _080C9D3C - ldr r2, [r6] - movs r7, #0x89 - lsls r7, r7, #6 - adds r0, r2, r7 - ldr r0, [r0] - cmp r0, #0 - beq _080C9D66 - cmp r4, #0 - beq _080C9D5C - lsls r0, r4, #3 - ldr r1, _080C9D40 - adds r0, r0, r1 - ldr r5, _080C9D44 - adds r1, r2, r5 - movs r2, #1 - str r2, [sp] - adds r2, r4, #0 - bl sub_080344AC - ldr r1, [r6] - ldr r2, _080C9D48 - adds r0, r1, r2 - ldr r0, [r0] - ldr r4, _080C9D4C - adds r1, r1, r4 - bl LZ77UnCompWram - ldr r0, [r6] - adds r5, r0, r5 - ldr r1, _080C9D50 - adds r0, r0, r1 - ldr r1, [r0] - ldr r2, _080C9D54 - adds r0, r5, #0 - bl CpuSet - ldr r0, [r6] - adds r4, r0, r4 - ldr r2, _080C9D58 - adds r0, r0, r2 - ldrh r1, [r0] - adds r0, r4, #0 - movs r2, #0x20 - bl LoadPalette - ldr r0, [r6] - adds r0, r0, r7 - ldr r1, [r0] - adds r1, #0x3e - ldrb r2, [r1] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - b _080C9D66 - .align 2, 0 -_080C9D3C: .4byte gUnknown_20399A8 -_080C9D40: .4byte gUnknown_82DDA1C -_080C9D44: .4byte 0x000022C4 -_080C9D48: .4byte 0x00000CDC -_080C9D4C: .4byte 0x00002244 -_080C9D50: .4byte 0x0000223C -_080C9D54: .4byte 0x04000200 -_080C9D58: .4byte 0x0000223A -_080C9D5C: - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_080C9D66: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LoadCursorMonGfx - - thumb_func_start sub_080C9D70 -sub_080C9D70: @ 0x080C9D70 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - movs r0, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r6, _080C9DF0 - ldr r2, [r6] - ldrb r0, [r2, #1] - cmp r0, #3 - beq _080C9DFC - movs r4, #0 - movs r5, #0 - mov r8, r6 -_080C9D90: - lsls r0, r4, #3 - adds r0, r0, r4 - lsls r0, r0, #2 - ldr r1, _080C9DF4 - adds r0, r0, r1 - mov r2, r8 - ldr r1, [r2] - adds r2, r1, r0 - movs r3, #0 - cmp r4, #2 - bne _080C9DA8 - movs r3, #4 -_080C9DA8: - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - movs r7, #0xff - str r7, [sp, #4] - movs r6, #0 - str r6, [sp, #8] - movs r0, #0 - movs r1, #1 - bl AddTextPrinterParameterized - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r5, #0 - adds r0, #0xd - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r4, #2 - bls _080C9D90 - ldr r0, _080C9DF0 - ldr r2, [r0] - ldr r0, _080C9DF8 - adds r2, r2, r0 - adds r0, r5, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - str r7, [sp, #4] - str r6, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r3, #0 - bl AddTextPrinterParameterized - b _080C9E52 - .align 2, 0 -_080C9DF0: .4byte gUnknown_20399A8 -_080C9DF4: .4byte 0x00000CF9 -_080C9DF8: .4byte 0x00000D65 -_080C9DFC: - ldr r1, _080C9E8C - adds r2, r2, r1 - movs r1, #0 - str r1, [sp] - movs r0, #0xff - str r0, [sp, #4] - str r1, [sp, #8] - movs r0, #0 - movs r3, #0 - bl AddTextPrinterParameterized - movs r4, #0 - movs r5, #0xf -_080C9E16: - lsls r0, r4, #3 - adds r0, r0, r4 - lsls r0, r0, #2 - ldr r2, _080C9E90 - adds r0, r0, r2 - ldr r1, [r6] - adds r2, r1, r0 - movs r3, #0 - cmp r4, #2 - bne _080C9E2C - movs r3, #4 -_080C9E2C: - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - movs r1, #1 - bl AddTextPrinterParameterized - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r5, #0 - adds r0, #0xd - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r4, #2 - bls _080C9E16 -_080C9E52: - movs r0, #0 - movs r1, #2 - bl CopyWindowToVram - ldr r4, _080C9E94 - ldr r1, [r4] - ldr r2, _080C9E98 - adds r0, r1, r2 - ldrh r0, [r0] - cmp r0, #0 - beq _080C9EA0 - adds r2, #7 - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, #0xb5 - adds r1, r1, r2 - ldr r1, [r1] - bl sub_081205A4 - ldr r0, [r4] - ldr r1, _080C9E9C - adds r0, r0, r1 - ldr r1, [r0] - adds r1, #0x3e - ldrb r2, [r1] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - b _080C9EAE - .align 2, 0 -_080C9E8C: .4byte 0x00000D65 -_080C9E90: .4byte 0x00000CF9 -_080C9E94: .4byte gUnknown_20399A8 -_080C9E98: .4byte 0x00000CE4 -_080C9E9C: .4byte 0x00000D94 -_080C9EA0: - ldr r2, _080C9EBC - adds r0, r1, r2 - ldr r1, [r0] - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 -_080C9EAE: - strb r0, [r1] - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080C9EBC: .4byte 0x00000D94 - thumb_func_end sub_080C9D70 - - thumb_func_start sub_080C9EC0 -sub_080C9EC0: @ 0x080C9EC0 - push {r4, lr} - sub sp, #4 - ldr r0, _080C9F0C - ldr r0, [r0] - ldr r1, _080C9F10 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0 - beq _080C9F18 - movs r0, #2 - str r0, [sp] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #8 - bl sub_080D204C - movs r4, #0 -_080C9EE4: - ldr r0, _080C9F0C - ldr r0, [r0] - lsls r1, r4, #2 - ldr r2, _080C9F14 - adds r0, r0, r2 - adds r0, r0, r1 - ldr r0, [r0] - lsls r1, r4, #1 - adds r1, #1 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl StartSpriteAnimIfDifferent - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #1 - bls _080C9EE4 - b _080C9F4A - .align 2, 0 -_080C9F0C: .4byte gUnknown_20399A8 -_080C9F10: .4byte 0x00000CE4 -_080C9F14: .4byte 0x00000D98 -_080C9F18: - movs r0, #2 - str r0, [sp] - movs r0, #0 - movs r1, #0 - movs r2, #2 - movs r3, #8 - bl sub_080D204C - movs r4, #0 -_080C9F2A: - ldr r0, _080C9F60 - ldr r0, [r0] - lsls r1, r4, #2 - ldr r2, _080C9F64 - adds r0, r0, r2 - adds r0, r0, r1 - ldr r0, [r0] - lsls r1, r4, #0x19 - lsrs r1, r1, #0x18 - bl StartSpriteAnim - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #1 - bls _080C9F2A -_080C9F4A: - movs r0, #0 - bl sub_080D21B8 - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C9F60: .4byte gUnknown_20399A8 -_080C9F64: .4byte 0x00000D98 - thumb_func_end sub_080C9EC0 - - thumb_func_start sub_080C9F68 -sub_080C9F68: @ 0x080C9F68 - push {r4, lr} - sub sp, #4 - ldr r0, _080C9FE0 - ldr r4, _080C9FE4 - ldr r1, [r4] - adds r1, #0xb0 - bl LZ77UnCompWram - ldr r0, _080C9FE8 - movs r1, #0x10 - movs r2, #0x20 - bl LoadPalette - ldr r2, [r4] - adds r2, #0xb0 - movs r0, #0x16 - str r0, [sp] - movs r0, #1 - movs r1, #1 - movs r3, #0xc - bl sub_080D1EE4 - ldr r2, _080C9FEC - movs r0, #4 - str r0, [sp] - movs r0, #2 - movs r1, #1 - movs r3, #9 - bl sub_080D1EE4 - movs r0, #1 - movs r1, #0xa - movs r2, #0 - bl sub_080D2010 - movs r0, #2 - movs r1, #0x15 - movs r2, #0 - bl sub_080D2010 - bl sub_080CA2D8 - ldr r0, _080C9FF0 - ldrb r0, [r0] - cmp r0, #0 - beq _080C9FF4 - movs r0, #1 - bl sub_080CA1E8 - movs r0, #1 - bl CreatePartyMonsSprites - movs r0, #2 - bl sub_080D21B8 - movs r0, #1 - bl sub_080D21B8 - b _080CA016 - .align 2, 0 -_080C9FE0: .4byte gUnknown_854C65C -_080C9FE4: .4byte gUnknown_20399A8 -_080C9FE8: .4byte gUnknown_854BF3C -_080C9FEC: .4byte gUnknown_854C70C -_080C9FF0: .4byte gUnknown_20399AC -_080C9FF4: - movs r0, #2 - str r0, [sp] - movs r0, #1 - movs r1, #0 - movs r2, #0x14 - movs r3, #0xc - bl sub_080D204C - movs r0, #1 - bl sub_080CA1E8 - movs r0, #1 - bl sub_080D21B8 - movs r0, #2 - bl sub_080D21B8 -_080CA016: - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, _080CA030 - ldr r0, [r0] - ldr r1, _080CA034 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CA030: .4byte gUnknown_20399A8 -_080CA034: .4byte 0x000002C7 - thumb_func_end sub_080C9F68 - - thumb_func_start SetUpShowPartyMenu -SetUpShowPartyMenu: @ 0x080CA038 - push {lr} - ldr r0, _080CA064 - ldr r1, [r0] - movs r0, #0xb0 - lsls r0, r0, #2 - adds r2, r1, r0 - movs r3, #0 - movs r0, #0x14 - strh r0, [r2] - ldr r0, _080CA068 - adds r2, r1, r0 - movs r0, #2 - strh r0, [r2] - ldr r0, _080CA06C - adds r1, r1, r0 - strb r3, [r1] - movs r0, #0 - bl CreatePartyMonsSprites - pop {r0} - bx r0 - .align 2, 0 -_080CA064: .4byte gUnknown_20399A8 -_080CA068: .4byte 0x000002C2 -_080CA06C: .4byte 0x000002C5 - thumb_func_end SetUpShowPartyMenu - - thumb_func_start ShowPartyMenu -ShowPartyMenu: @ 0x080CA070 - push {r4, lr} - ldr r4, _080CA0CC - ldr r2, [r4] - ldr r1, _080CA0D0 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #0x14 - beq _080CA0DE - movs r0, #0xb0 - lsls r0, r0, #2 - adds r1, r2, r0 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - ldr r0, _080CA0D4 - adds r1, r2, r0 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - movs r0, #1 - movs r1, #3 - movs r2, #1 - bl sub_080D2094 - movs r0, #1 - bl sub_080D21B8 - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #8 - bl sub_080CB364 - ldr r1, [r4] - ldr r0, _080CA0D0 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x14 - beq _080CA0D8 - movs r0, #1 - b _080CA0E0 - .align 2, 0 -_080CA0CC: .4byte gUnknown_20399A8 -_080CA0D0: .4byte 0x000002C5 -_080CA0D4: .4byte 0x000002C2 -_080CA0D8: - ldr r1, _080CA0E8 - movs r0, #1 - strb r0, [r1] -_080CA0DE: - movs r0, #0 -_080CA0E0: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080CA0E8: .4byte gUnknown_20399AC - thumb_func_end ShowPartyMenu - - thumb_func_start SetUpHidePartyMenu -SetUpHidePartyMenu: @ 0x080CA0EC - push {r4, lr} - ldr r4, _080CA120 - ldr r1, [r4] - movs r0, #0xb0 - lsls r0, r0, #2 - adds r2, r1, r0 - movs r3, #0 - movs r0, #0 - strh r0, [r2] - ldr r0, _080CA124 - adds r2, r1, r0 - movs r0, #0x16 - strh r0, [r2] - ldr r0, _080CA128 - adds r1, r1, r0 - strb r3, [r1] - ldr r0, [r4] - ldrb r0, [r0, #1] - cmp r0, #3 - bne _080CA118 - bl sub_080D0A6C -_080CA118: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CA120: .4byte gUnknown_20399A8 -_080CA124: .4byte 0x000002C2 -_080CA128: .4byte 0x000002C5 - thumb_func_end SetUpHidePartyMenu - - thumb_func_start HidePartyMenu -HidePartyMenu: @ 0x080CA12C - push {r4, r5, lr} - sub sp, #8 - ldr r5, _080CA1A4 - ldr r2, [r5] - ldr r1, _080CA1A8 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #0x14 - beq _080CA1D8 - movs r0, #0xb0 - lsls r0, r0, #2 - adds r1, r2, r0 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - ldr r4, _080CA1AC - adds r1, r2, r4 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - movs r2, #1 - rsbs r2, r2, #0 - movs r0, #1 - movs r1, #3 - bl sub_080D2094 - movs r0, #1 - bl sub_080D21B8 - movs r1, #0x80 - lsls r1, r1, #1 - ldr r0, [r5] - adds r0, r0, r4 - ldrb r3, [r0] - movs r0, #0xc - str r0, [sp] - movs r0, #1 - str r0, [sp, #4] - movs r2, #0xa - bl FillBgTilemapBufferRect_Palette0 - movs r0, #8 - rsbs r0, r0, #0 - bl sub_080CB364 - ldr r1, [r5] - ldr r0, _080CA1A8 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x14 - beq _080CA1B0 - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #1 - b _080CA1DA - .align 2, 0 -_080CA1A4: .4byte gUnknown_20399A8 -_080CA1A8: .4byte 0x000002C5 -_080CA1AC: .4byte 0x000002C2 -_080CA1B0: - ldr r0, _080CA1E4 - movs r1, #0 - strb r1, [r0] - bl DestroyAllPartyMonIcons - bl CompactPartySlots - movs r0, #2 - str r0, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #9 - bl sub_080D204C - movs r0, #2 - bl sub_080D21B8 - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram -_080CA1D8: - movs r0, #0 -_080CA1DA: - add sp, #8 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080CA1E4: .4byte gUnknown_20399AC - thumb_func_end HidePartyMenu - - thumb_func_start sub_080CA1E8 -sub_080CA1E8: @ 0x080CA1E8 - push {lr} - sub sp, #4 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080CA202 - movs r0, #2 - str r0, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #9 - bl sub_080D204C - b _080CA210 -_080CA202: - movs r0, #2 - str r0, [sp] - movs r1, #0 - movs r2, #2 - movs r3, #9 - bl sub_080D204C -_080CA210: - movs r0, #2 - bl sub_080D21B8 - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080CA1E8 - - thumb_func_start sub_080CA224 -sub_080CA224: @ 0x080CA224 - ldr r2, _080CA244 - ldr r0, [r2] - ldr r1, _080CA248 - adds r0, r0, r1 - movs r3, #1 - strb r3, [r0] - ldr r0, [r2] - adds r1, #1 - adds r0, r0, r1 - movs r1, #0x1e - strb r1, [r0] - ldr r0, [r2] - ldr r1, _080CA24C - adds r0, r0, r1 - strb r3, [r0] - bx lr - .align 2, 0 -_080CA244: .4byte gUnknown_20399A8 -_080CA248: .4byte 0x000002C7 -_080CA24C: .4byte 0x000002C9 - thumb_func_end sub_080CA224 - - thumb_func_start sub_080CA250 -sub_080CA250: @ 0x080CA250 - push {lr} - ldr r0, _080CA270 - ldr r0, [r0] - ldr r2, _080CA274 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, #0 - beq _080CA26A - movs r0, #0 - strb r0, [r1] - movs r0, #1 - bl sub_080CA1E8 -_080CA26A: - pop {r0} - bx r0 - .align 2, 0 -_080CA270: .4byte gUnknown_20399A8 -_080CA274: .4byte 0x000002C7 - thumb_func_end sub_080CA250 - - thumb_func_start sub_080CA278 -sub_080CA278: @ 0x080CA278 - push {r4, lr} - ldr r3, _080CA2CC - ldr r1, [r3] - ldr r2, _080CA2D0 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080CA2C4 - movs r0, #0xb2 - lsls r0, r0, #2 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1e - bls _080CA2C4 - ldr r0, [r3] - movs r1, #0xb2 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - ldr r0, [r3] - movs r2, #0 - ldr r4, _080CA2D4 - adds r1, r0, r4 - ldrb r0, [r1] - cmp r0, #0 - bne _080CA2B8 - movs r2, #1 -_080CA2B8: - strb r2, [r1] - ldr r0, [r3] - adds r0, r0, r4 - ldrb r0, [r0] - bl sub_080CA1E8 -_080CA2C4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CA2CC: .4byte gUnknown_20399A8 -_080CA2D0: .4byte 0x000002C7 -_080CA2D4: .4byte 0x000002C9 - thumb_func_end sub_080CA278 - - thumb_func_start sub_080CA2D8 -sub_080CA2D8: @ 0x080CA2D8 - push {r4, lr} - movs r4, #1 -_080CA2DC: - movs r0, #0x64 - muls r0, r4, r0 - ldr r1, _080CA308 - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - adds r0, r4, #0 - bl sub_080CA30C - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #5 - bls _080CA2DC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CA308: .4byte gUnknown_2024190 - thumb_func_end sub_080CA2D8 - - thumb_func_start sub_080CA30C -sub_080CA30C: @ 0x080CA30C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - ldr r7, _080CA378 - cmp r1, #0 - beq _080CA31C - ldr r7, _080CA37C -_080CA31C: - subs r0, #1 - lsls r1, r0, #1 - adds r1, r1, r0 - adds r1, #1 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0x12 - movs r1, #0xe0 - lsls r1, r1, #0xb - adds r0, r0, r1 - lsrs r3, r0, #0x10 - movs r0, #0 - ldr r1, _080CA380 - mov ip, r1 -_080CA338: - movs r2, #0 - adds r4, r7, #0 - adds r4, #8 - adds r5, r3, #0 - adds r5, #0xc - adds r6, r0, #1 -_080CA344: - mov r0, ip - ldr r1, [r0] - adds r0, r3, r2 - lsls r0, r0, #1 - adds r1, #0xb0 - adds r1, r1, r0 - lsls r0, r2, #1 - adds r0, r0, r7 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #3 - bls _080CA344 - adds r7, r4, #0 - lsls r0, r5, #0x10 - lsrs r3, r0, #0x10 - lsls r0, r6, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #2 - bls _080CA338 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080CA378: .4byte gUnknown_854C76C -_080CA37C: .4byte gUnknown_854C754 -_080CA380: .4byte gUnknown_20399A8 - thumb_func_end sub_080CA30C - - thumb_func_start PokecenterHealEffect_3 -PokecenterHealEffect_3: @ 0x080CA384 - push {lr} - sub sp, #4 - bl sub_080CA2D8 - movs r0, #0x16 - str r0, [sp] - movs r0, #1 - movs r1, #0 - movs r2, #0 - movs r3, #0xc - bl sub_080D204C - movs r0, #1 - bl sub_080D21B8 - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PokecenterHealEffect_3 - - thumb_func_start SetUpDoShowPartyMenu -SetUpDoShowPartyMenu: @ 0x080CA3B0 - push {lr} - ldr r0, _080CA3CC - ldr r0, [r0] - ldr r1, _080CA3D0 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - movs r0, #6 - bl sub_080A306C - bl SetUpShowPartyMenu - pop {r0} - bx r0 - .align 2, 0 -_080CA3CC: .4byte gUnknown_20399A8 -_080CA3D0: .4byte 0x000002C6 - thumb_func_end SetUpDoShowPartyMenu - - thumb_func_start DoShowPartyMenu -DoShowPartyMenu: @ 0x080CA3D4 - push {r4, r5, lr} - ldr r4, _080CA3F0 - ldr r0, [r4] - ldr r5, _080CA3F4 - adds r0, r0, r5 - ldrb r0, [r0] - cmp r0, #1 - beq _080CA40E - cmp r0, #1 - bgt _080CA3F8 - cmp r0, #0 - beq _080CA3FE - b _080CA43C - .align 2, 0 -_080CA3F0: .4byte gUnknown_20399A8 -_080CA3F4: .4byte 0x000002C6 -_080CA3F8: - cmp r0, #2 - beq _080CA438 - b _080CA43C -_080CA3FE: - bl ShowPartyMenu - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080CA43C - bl sub_080CD41C - b _080CA428 -_080CA40E: - bl sub_080CCDD0 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080CA43C - ldr r0, [r4] - ldr r1, _080CA434 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _080CA428 - bl BoxSetMosaic -_080CA428: - ldr r1, [r4] - adds r1, r1, r5 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080CA43C - .align 2, 0 -_080CA434: .4byte 0x00000CEA -_080CA438: - movs r0, #0 - b _080CA43E -_080CA43C: - movs r0, #1 -_080CA43E: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end DoShowPartyMenu - - thumb_func_start sub_080CA444 -sub_080CA444: @ 0x080CA444 - push {r4, lr} - ldr r4, _080CA474 - bl sub_080D15AC - ldrb r1, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r1, r0 - beq _080CA46E - ldr r0, _080CA478 - bl FlagClear - ldr r4, _080CA47C - bl sub_080D15AC - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl VarSet -_080CA46E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CA474: .4byte gUnknown_20399B0 -_080CA478: .4byte 0x000008D7 -_080CA47C: .4byte 0x00004036 - thumb_func_end sub_080CA444 - - thumb_func_start sub_080CA480 -sub_080CA480: @ 0x080CA480 - push {lr} - sub sp, #0xc - movs r1, #0xe8 - lsls r1, r1, #5 - movs r0, #8 - bl SetGpuReg - movs r0, #1 - movs r1, #2 - movs r2, #0xd0 - bl LoadUserWindowBorderGfx - movs r0, #0x20 - str r0, [sp] - movs r0, #0x14 - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect - movs r0, #0 - bl CopyBgTilemapBufferToVram - add sp, #0xc - pop {r0} - bx r0 - thumb_func_end sub_080CA480 - - thumb_func_start PrintStorageActionText -PrintStorageActionText: @ 0x080CA4BC - push {r4, r5, r6, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - bl DynamicPlaceholderTextUtil_Reset - ldr r1, _080CA4E0 - lsls r0, r6, #3 - adds r0, r0, r1 - ldrb r0, [r0, #4] - cmp r0, #7 - bhi _080CA594 - lsls r0, r0, #2 - ldr r1, _080CA4E4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080CA4E0: .4byte gUnknown_854CA1C -_080CA4E4: .4byte _080CA4E8 -_080CA4E8: @ jump table - .4byte _080CA594 @ case 0 - .4byte _080CA508 @ case 1 - .4byte _080CA508 @ case 2 - .4byte _080CA508 @ case 3 - .4byte _080CA51C @ case 4 - .4byte _080CA51C @ case 5 - .4byte _080CA51C @ case 6 - .4byte _080CA534 @ case 7 -_080CA508: - ldr r0, _080CA514 - ldr r1, [r0] - ldr r0, _080CA518 - adds r1, r1, r0 - b _080CA524 - .align 2, 0 -_080CA514: .4byte gUnknown_20399A8 -_080CA518: .4byte 0x00000CEE -_080CA51C: - ldr r0, _080CA52C - ldr r1, [r0] - ldr r2, _080CA530 - adds r1, r1, r2 -_080CA524: - movs r0, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - b _080CA594 - .align 2, 0 -_080CA52C: .4byte gUnknown_20399A8 -_080CA530: .4byte 0x000021E0 -_080CA534: - bl IsActiveItemMoving - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080CA558 - ldr r0, _080CA550 - ldr r4, [r0] - ldr r0, _080CA554 - adds r4, r4, r0 - bl GetMovingItemName - adds r1, r0, #0 - adds r0, r4, #0 - b _080CA564 - .align 2, 0 -_080CA550: .4byte gUnknown_20399A8 -_080CA554: .4byte 0x000021EB -_080CA558: - ldr r0, _080CA56C - ldr r1, [r0] - ldr r2, _080CA570 - adds r0, r1, r2 - ldr r2, _080CA574 - adds r1, r1, r2 -_080CA564: - bl StringCopy - adds r2, r0, #0 - b _080CA57A - .align 2, 0 -_080CA56C: .4byte gUnknown_20399A8 -_080CA570: .4byte 0x000021EB -_080CA574: .4byte 0x00000D65 -_080CA578: - adds r2, r1, #0 -_080CA57A: - subs r1, r2, #1 - ldrb r0, [r1] - cmp r0, #0 - beq _080CA578 - movs r0, #0xff - strb r0, [r2] - ldr r0, _080CA5F0 - ldr r1, [r0] - ldr r0, _080CA5F4 - adds r1, r1, r0 - movs r0, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr -_080CA594: - ldr r5, _080CA5F0 - ldr r0, [r5] - ldr r4, _080CA5F8 - adds r0, r0, r4 - ldr r2, _080CA5FC - lsls r1, r6, #3 - adds r1, r1, r2 - ldr r1, [r1] - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - movs r0, #1 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r2, [r5] - adds r2, r2, r4 - movs r0, #2 - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - movs r0, #1 - movs r1, #2 - movs r2, #0xe - bl DrawTextBorderOuter - movs r0, #1 - bl PutWindowTilemap - movs r0, #1 - movs r1, #2 - bl CopyWindowToVram - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080CA5F0: .4byte gUnknown_20399A8 -_080CA5F4: .4byte 0x000021EB -_080CA5F8: .4byte 0x00002190 -_080CA5FC: .4byte gUnknown_854CA1C - thumb_func_end PrintStorageActionText - - thumb_func_start sub_080CA600 -sub_080CA600: @ 0x080CA600 - push {r4, lr} - sub sp, #0xc - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _080CA634 - movs r1, #0xb - str r1, [sp] - movs r1, #0xe - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - movs r2, #2 - movs r3, #2 - bl sub_08198C08 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - adds r0, r4, #0 - bl Menu_MoveCursorNoWrapAround - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CA634: .4byte gUnknown_854CB14 - thumb_func_end sub_080CA600 - - thumb_func_start sub_080CA638 -sub_080CA638: @ 0x080CA638 - push {lr} - movs r0, #1 - movs r1, #0 - bl sub_08198134 - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - pop {r0} - bx r0 - thumb_func_end sub_080CA638 - - thumb_func_start sub_080CA64C -sub_080CA64C: @ 0x080CA64C - push {lr} - bl InitMenu - movs r0, #0x12 - bl SetMenuText - movs r0, #0x13 - bl SetMenuText - movs r0, #0x14 - bl SetMenuText - movs r0, #0x15 - bl SetMenuText - bl sub_080D1D34 - cmp r0, #0 - beq _080CA678 - movs r0, #0x16 - bl SetMenuText -_080CA678: - bl sub_080CF84C - pop {r0} - bx r0 - thumb_func_end sub_080CA64C - - thumb_func_start AddWallpapersMenu -AddWallpapersMenu: @ 0x080CA680 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, r4, #0 - bl InitMenu - cmp r4, #1 - beq _080CA6BE - cmp r4, #1 - bgt _080CA69A - cmp r4, #0 - beq _080CA6A4 - b _080CA70A -_080CA69A: - cmp r5, #2 - beq _080CA6D8 - cmp r5, #3 - beq _080CA6F2 - b _080CA70A -_080CA6A4: - movs r0, #0x17 - bl SetMenuText - movs r0, #0x18 - bl SetMenuText - movs r0, #0x19 - bl SetMenuText - movs r0, #0x1a - bl SetMenuText - b _080CA70A -_080CA6BE: - movs r0, #0x1b - bl SetMenuText - movs r0, #0x1c - bl SetMenuText - movs r0, #0x1d - bl SetMenuText - movs r0, #0x1e - bl SetMenuText - b _080CA70A -_080CA6D8: - movs r0, #0x1f - bl SetMenuText - movs r0, #0x20 - bl SetMenuText - movs r0, #0x21 - bl SetMenuText - movs r0, #0x22 - bl SetMenuText - b _080CA70A -_080CA6F2: - movs r0, #0x23 - bl SetMenuText - movs r0, #0x24 - bl SetMenuText - movs r0, #0x25 - bl SetMenuText - movs r0, #0x26 - bl SetMenuText -_080CA70A: - bl sub_080CF84C - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end AddWallpapersMenu - - thumb_func_start sub_080CA714 -sub_080CA714: @ 0x080CA714 - ldr r0, _080CA71C - ldrb r0, [r0] - bx lr - .align 2, 0 -_080CA71C: .4byte gUnknown_20399AD - thumb_func_end sub_080CA714 - - thumb_func_start sub_080CA720 -sub_080CA720: @ 0x080CA720 - push {lr} - bl IsCursorOnBox - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080CA75C - ldr r0, _080CA748 - ldrb r0, [r0] - cmp r0, #0 - beq _080CA74C - bl sub_080CF684 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #1 - bl sub_080D062C - b _080CA75C - .align 2, 0 -_080CA748: .4byte gUnknown_20399AC -_080CA74C: - bl sub_080CF684 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0 - bl sub_080D062C -_080CA75C: - ldr r1, _080CA774 - ldrh r0, [r1] - cmp r0, #0 - beq _080CA76E - bl sub_080D07D8 - movs r0, #3 - bl sub_080CF6D0 -_080CA76E: - pop {r0} - bx r0 - .align 2, 0 -_080CA774: .4byte gUnknown_20399B2 - thumb_func_end sub_080CA720 - - thumb_func_start sub_080CA778 -sub_080CA778: @ 0x080CA778 - push {r4, r5, r6, lr} - bl LoadMonIconPalettes - movs r2, #0 - ldr r3, _080CA808 - ldr r5, _080CA80C - movs r4, #0 - adds r6, r3, #0 -_080CA788: - ldr r0, [r3] - lsls r1, r2, #1 - adds r0, r0, r5 - adds r0, r0, r1 - strh r4, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0x27 - bls _080CA788 - movs r2, #0 - ldr r5, _080CA808 - ldr r4, _080CA810 - movs r3, #0 -_080CA7A4: - ldr r0, [r5] - lsls r1, r2, #1 - adds r0, r0, r4 - adds r0, r0, r1 - strh r3, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0x27 - bls _080CA7A4 - movs r2, #0 - ldr r5, _080CA808 - movs r4, #0xa7 - lsls r4, r4, #4 - movs r3, #0 -_080CA7C2: - ldr r0, [r5] - lsls r1, r2, #2 - adds r0, r0, r4 - adds r0, r0, r1 - str r3, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #5 - bls _080CA7C2 - movs r2, #0 - ldr r5, _080CA808 - ldr r4, _080CA814 - movs r3, #0 -_080CA7DE: - ldr r0, [r5] - lsls r1, r2, #2 - adds r0, r0, r4 - adds r0, r0, r1 - str r3, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0x1d - bls _080CA7DE - ldr r0, [r6] - ldr r2, _080CA818 - adds r1, r0, r2 - movs r2, #0 - str r2, [r1] - ldr r1, _080CA81C - adds r0, r0, r1 - strh r2, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080CA808: .4byte gUnknown_20399A8 -_080CA80C: .4byte 0x00000B08 -_080CA810: .4byte 0x00000B58 -_080CA814: .4byte 0x00000A88 -_080CA818: .4byte 0x00000A6C -_080CA81C: .4byte 0x0000078C - thumb_func_end sub_080CA778 - - thumb_func_start sub_080CA820 -sub_080CA820: @ 0x080CA820 - push {lr} - bl IsCursorInBox - lsls r0, r0, #0x18 - movs r1, #1 - cmp r0, #0 - beq _080CA830 - movs r1, #2 -_080CA830: - adds r0, r1, #0 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080CA820 - - thumb_func_start CreateMovingMonIcon -CreateMovingMonIcon: @ 0x080CA838 - push {r4, r5, r6, lr} - sub sp, #8 - ldr r5, _080CA88C - ldr r0, [r5] - ldr r4, _080CA890 - adds r0, r0, r4 - movs r1, #0 - bl GetMonData - adds r6, r0, #0 - ldr r0, [r5] - adds r0, r0, r4 - movs r1, #0x41 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - bl sub_080CA820 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - movs r0, #7 - str r0, [sp, #4] - adds r0, r4, #0 - adds r1, r6, #0 - movs r2, #0 - movs r3, #0 - bl sub_080CBAA4 - ldr r1, [r5] - ldr r2, _080CA894 - adds r1, r1, r2 - str r0, [r1] - ldr r1, _080CA898 - str r1, [r0, #0x1c] - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080CA88C: .4byte gUnknown_20399A8 -_080CA890: .4byte 0x000020A4 -_080CA894: .4byte 0x00000A6C -_080CA898: .4byte sub_080CB974 - thumb_func_end CreateMovingMonIcon - - thumb_func_start sub_080CA89C -sub_080CA89C: @ 0x080CA89C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - movs r0, #0 - mov r8, r0 - movs r6, #0 - movs r7, #0 -_080CA8B6: - movs r5, #0 - adds r1, r7, #1 - mov sl, r1 -_080CA8BC: - mov r0, sb - adds r1, r6, #0 - movs r2, #0x41 - bl GetBoxMonDataAt - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0 - beq _080CA924 - mov r0, sb - adds r1, r6, #0 - movs r2, #0 - bl GetBoxMonDataAt - adds r1, r0, #0 - lsls r2, r5, #1 - adds r2, r2, r5 - lsls r2, r2, #0x13 - movs r3, #0xc8 - lsls r3, r3, #0xf - adds r2, r2, r3 - asrs r2, r2, #0x10 - lsls r3, r7, #1 - adds r3, r3, r7 - lsls r3, r3, #0x13 - movs r0, #0xb0 - lsls r0, r0, #0xe - adds r3, r3, r0 - movs r0, #2 - str r0, [sp] - movs r0, #0x13 - subs r0, r0, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - adds r0, r4, #0 - asrs r3, r3, #0x10 - bl sub_080CBAA4 - ldr r1, _080CA91C - ldr r1, [r1] - mov r3, r8 - lsls r2, r3, #2 - ldr r3, _080CA920 - adds r1, r1, r3 - adds r1, r1, r2 - str r0, [r1] - b _080CA934 - .align 2, 0 -_080CA91C: .4byte gUnknown_20399A8 -_080CA920: .4byte 0x00000A88 -_080CA924: - ldr r0, _080CA9AC - ldr r0, [r0] - mov r2, r8 - lsls r1, r2, #2 - ldr r3, _080CA9B0 - adds r0, r0, r3 - adds r0, r0, r1 - str r4, [r0] -_080CA934: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #5 - bls _080CA8BC - mov r1, sl - lsls r0, r1, #0x10 - lsrs r7, r0, #0x10 - cmp r7, #4 - bls _080CA8B6 - ldr r0, _080CA9AC - ldr r0, [r0] - ldrb r0, [r0, #1] - cmp r0, #3 - bne _080CA99A - movs r6, #0 - movs r2, #0xd - rsbs r2, r2, #0 - adds r4, r2, #0 -_080CA96A: - mov r0, sb - adds r1, r6, #0 - movs r2, #0xc - bl GetBoxMonDataAt - cmp r0, #0 - bne _080CA990 - ldr r0, _080CA9AC - ldr r0, [r0] - lsls r1, r6, #2 - ldr r3, _080CA9B0 - adds r0, r0, r3 - adds r0, r0, r1 - ldr r2, [r0] - ldrb r0, [r2, #1] - ands r0, r4 - movs r1, #4 - orrs r0, r1 - strb r0, [r2, #1] -_080CA990: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0x1d - bls _080CA96A -_080CA99A: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080CA9AC: .4byte gUnknown_20399A8 -_080CA9B0: .4byte 0x00000A88 - thumb_func_end sub_080CA89C - - thumb_func_start sub_080CA9B4 -sub_080CA9B4: @ 0x080CA9B4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - adds r0, r7, #0 - movs r1, #0x41 - bl GetCurrentBoxMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - cmp r0, #0 - beq _080CAA4E - adds r0, r7, #0 - movs r1, #6 - bl __umodsi3 - adds r6, r0, #0 - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - lsls r5, r0, #1 - adds r5, r5, r0 - lsls r5, r5, #0x13 - movs r0, #0xc8 - lsls r0, r0, #0xf - adds r5, r5, r0 - lsrs r5, r5, #0x10 - adds r0, r7, #0 - movs r1, #6 - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #1 - adds r4, r4, r0 - lsls r4, r4, #0x13 - movs r0, #0xb0 - lsls r0, r0, #0xe - adds r4, r4, r0 - lsrs r4, r4, #0x10 - adds r0, r7, #0 - movs r1, #0 - bl GetCurrentBoxMonData - adds r1, r0, #0 - movs r0, #2 - str r0, [sp] - movs r0, #0x13 - subs r0, r0, r6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - mov r0, r8 - adds r2, r5, #0 - adds r3, r4, #0 - bl sub_080CBAA4 - adds r3, r0, #0 - ldr r0, _080CAA5C - ldr r2, [r0] - lsls r1, r7, #2 - ldr r4, _080CAA60 - adds r0, r2, r4 - adds r0, r0, r1 - str r3, [r0] - ldrb r0, [r2, #1] - cmp r0, #3 - bne _080CAA4E - ldrb r0, [r3, #1] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #4 - orrs r1, r0 - strb r1, [r3, #1] -_080CAA4E: - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080CAA5C: .4byte gUnknown_20399A8 -_080CAA60: .4byte 0x00000A88 - thumb_func_end sub_080CA9B4 - - thumb_func_start sub_080CAA64 -sub_080CAA64: @ 0x080CAA64 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - movs r2, #0 - ldr r7, _080CAA9C - ldr r6, _080CAAA0 - movs r5, #1 - ldr r4, _080CAAA4 -_080CAA74: - ldr r0, [r7] - lsls r1, r2, #2 - adds r0, r0, r6 - adds r1, r0, r1 - ldr r0, [r1] - cmp r0, #0 - beq _080CAA8C - strh r3, [r0, #0x32] - ldr r0, [r1] - strh r5, [r0, #0x36] - ldr r0, [r1] - str r4, [r0, #0x1c] -_080CAA8C: - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0x1d - bls _080CAA74 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080CAA9C: .4byte gUnknown_20399A8 -_080CAAA0: .4byte 0x00000A88 -_080CAAA4: .4byte sub_080CAAEC - thumb_func_end sub_080CAA64 - - thumb_func_start sub_080CAAA8 -sub_080CAAA8: @ 0x080CAAA8 - push {lr} - adds r2, r0, #0 - ldrh r1, [r2, #0x30] - movs r3, #0x30 - ldrsh r0, [r2, r3] - cmp r0, #0 - beq _080CAAC4 - subs r0, r1, #1 - strh r0, [r2, #0x30] - ldrh r0, [r2, #0x32] - ldrh r1, [r2, #0x20] - adds r0, r0, r1 - strh r0, [r2, #0x20] - b _080CAADA -_080CAAC4: - ldr r0, _080CAAE0 - ldr r1, [r0] - ldr r3, _080CAAE4 - adds r1, r1, r3 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - ldrh r0, [r2, #0x34] - strh r0, [r2, #0x20] - ldr r0, _080CAAE8 - str r0, [r2, #0x1c] -_080CAADA: - pop {r0} - bx r0 - .align 2, 0 -_080CAAE0: .4byte gUnknown_20399A8 -_080CAAE4: .4byte 0x00000C66 -_080CAAE8: .4byte sub_08007140 - thumb_func_end sub_080CAAA8 - - thumb_func_start sub_080CAAEC -sub_080CAAEC: @ 0x080CAAEC - push {lr} - adds r2, r0, #0 - ldrh r1, [r2, #0x36] - movs r3, #0x36 - ldrsh r0, [r2, r3] - cmp r0, #0 - beq _080CAB00 - subs r0, r1, #1 - strh r0, [r2, #0x36] - b _080CAB1C -_080CAB00: - ldrh r0, [r2, #0x32] - ldrh r1, [r2, #0x20] - adds r0, r0, r1 - strh r0, [r2, #0x20] - ldrh r1, [r2, #0x24] - adds r0, r0, r1 - strh r0, [r2, #0x38] - subs r0, #0x45 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xb6 - bls _080CAB1C - ldr r0, _080CAB20 - str r0, [r2, #0x1c] -_080CAB1C: - pop {r0} - bx r0 - .align 2, 0 -_080CAB20: .4byte sub_08007140 - thumb_func_end sub_080CAAEC - - thumb_func_start DestroyAllIconsInRow -DestroyAllIconsInRow: @ 0x080CAB24 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r6, #0 - ldr r7, _080CAB64 -_080CAB2E: - ldr r0, [r7] - lsls r4, r5, #2 - ldr r1, _080CAB68 - adds r0, r0, r1 - adds r0, r0, r4 - ldr r0, [r0] - cmp r0, #0 - beq _080CAB4E - bl DestroyBoxMonIcon - ldr r0, [r7] - ldr r1, _080CAB68 - adds r0, r0, r1 - adds r0, r0, r4 - movs r1, #0 - str r1, [r0] -_080CAB4E: - adds r0, r5, #6 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #4 - bls _080CAB2E - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080CAB64: .4byte gUnknown_20399A8 -_080CAB68: .4byte 0x00000A88 - thumb_func_end DestroyAllIconsInRow - - thumb_func_start sub_080CAB6C -sub_080CAB6C: @ 0x080CAB6C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp, #8] - lsls r2, r2, #0x10 - movs r1, #0x2c - mov r8, r1 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #0x13 - movs r3, #0xc8 - lsls r3, r3, #0xf - adds r1, r1, r3 - lsrs r1, r1, #0x10 - str r1, [sp, #0x10] - ldr r1, [sp, #8] - adds r1, #1 - lsrs r6, r2, #0x10 - str r6, [sp, #0xc] - asrs r2, r2, #0x10 - muls r1, r2, r1 - ldr r2, [sp, #0x10] - subs r1, r2, r1 - lsls r1, r1, #0x10 - lsrs r2, r1, #0x10 - movs r1, #0x13 - subs r1, r1, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp, #0x14] - movs r3, #0 - mov sb, r3 - adds r5, r0, #0 - ldr r1, _080CAC50 - ldr r0, [r1] - ldrb r0, [r0, #1] - cmp r0, #3 - beq _080CAC64 - movs r7, #4 - lsls r2, r2, #0x10 - mov sl, r2 -_080CABCC: - ldr r6, _080CAC50 - ldr r2, [r6] - lsls r0, r5, #1 - ldr r3, _080CAC54 - adds r1, r2, r3 - adds r1, r1, r0 - ldrh r0, [r1] - cmp r0, #0 - beq _080CAC36 - lsls r4, r5, #2 - ldr r6, _080CAC58 - adds r1, r2, r6 - adds r1, r1, r4 - ldr r1, [r1] - mov r2, r8 - lsls r3, r2, #0x10 - asrs r3, r3, #0x10 - movs r2, #2 - str r2, [sp] - ldr r6, [sp, #0x14] - str r6, [sp, #4] - mov r6, sl - asrs r2, r6, #0x10 - bl sub_080CBAA4 - adds r2, r0, #0 - ldr r1, _080CAC50 - ldr r0, [r1] - ldr r3, _080CAC5C - adds r0, r0, r3 - adds r1, r0, r4 - str r2, [r1] - cmp r2, #0 - beq _080CAC36 - mov r6, sp - ldrh r6, [r6, #8] - strh r6, [r2, #0x30] - ldr r0, [r1] - mov r2, sp - ldrh r2, [r2, #0xc] - strh r2, [r0, #0x32] - ldr r0, [r1] - mov r3, sp - ldrh r3, [r3, #0x10] - strh r3, [r0, #0x34] - ldr r1, [r1] - ldr r0, _080CAC60 - str r0, [r1, #0x1c] - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 -_080CAC36: - adds r0, r5, #6 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - mov r0, r8 - adds r0, #0x18 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - subs r7, #1 - cmp r7, #0 - bge _080CABCC - b _080CAD1A - .align 2, 0 -_080CAC50: .4byte gUnknown_20399A8 -_080CAC54: .4byte 0x00000BA8 -_080CAC58: .4byte 0x00000BE4 -_080CAC5C: .4byte 0x00000A88 -_080CAC60: .4byte sub_080CAAA8 -_080CAC64: - mov sl, r1 - movs r7, #4 - lsls r2, r2, #0x10 - str r2, [sp, #0x18] -_080CAC6C: - mov r6, sl - ldr r2, [r6] - lsls r0, r5, #1 - ldr r3, _080CAD2C - adds r1, r2, r3 - adds r1, r1, r0 - ldrh r0, [r1] - cmp r0, #0 - beq _080CAD04 - lsls r4, r5, #2 - ldr r6, _080CAD30 - adds r1, r2, r6 - adds r1, r1, r4 - ldr r1, [r1] - mov r2, r8 - lsls r3, r2, #0x10 - asrs r3, r3, #0x10 - movs r2, #2 - str r2, [sp] - ldr r6, [sp, #0x14] - str r6, [sp, #4] - ldr r6, [sp, #0x18] - asrs r2, r6, #0x10 - bl sub_080CBAA4 - adds r2, r0, #0 - mov r0, sl - ldr r3, [r0] - ldr r1, _080CAD34 - adds r0, r3, r1 - adds r1, r0, r4 - str r2, [r1] - cmp r2, #0 - beq _080CAD04 - mov r6, sp - ldrh r6, [r6, #8] - strh r6, [r2, #0x30] - ldr r0, [r1] - mov r2, sp - ldrh r2, [r2, #0xc] - strh r2, [r0, #0x32] - ldr r0, [r1] - mov r6, sp - ldrh r6, [r6, #0x10] - strh r6, [r0, #0x34] - ldr r1, [r1] - ldr r0, _080CAD38 - str r0, [r1, #0x1c] - ldr r1, _080CAD3C - adds r0, r3, r1 - ldrb r0, [r0] - adds r1, r5, #0 - movs r2, #0xc - bl GetBoxMonDataAt - cmp r0, #0 - bne _080CACFA - mov r2, sl - ldr r0, [r2] - ldr r3, _080CAD34 - adds r0, r0, r3 - adds r0, r0, r4 - ldr r2, [r0] - ldrb r1, [r2, #1] - movs r6, #0xd - rsbs r6, r6, #0 - adds r0, r6, #0 - ands r1, r0 - movs r0, #4 - orrs r1, r0 - strb r1, [r2, #1] -_080CACFA: - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 -_080CAD04: - adds r0, r5, #6 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - mov r0, r8 - adds r0, #0x18 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - subs r7, #1 - cmp r7, #0 - bge _080CAC6C -_080CAD1A: - mov r0, sb - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080CAD2C: .4byte 0x00000BA8 -_080CAD30: .4byte 0x00000BE4 -_080CAD34: .4byte 0x00000A88 -_080CAD38: .4byte sub_080CAAA8 -_080CAD3C: .4byte 0x00000C5C - thumb_func_end sub_080CAB6C - - thumb_func_start sub_080CAD40 -sub_080CAD40: @ 0x080CAD40 - push {r4, r5, r6, r7, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r6, _080CADA0 - ldr r1, [r6] - ldr r2, _080CADA4 - adds r1, r1, r2 - movs r5, #0 - strb r5, [r1] - ldr r1, [r6] - ldr r3, _080CADA8 - adds r1, r1, r3 - strb r0, [r1] - ldr r1, [r6] - ldr r7, _080CADAC - adds r1, r1, r7 - strb r4, [r1] - ldr r3, [r6] - movs r1, #0xc6 - lsls r1, r1, #4 - adds r2, r3, r1 - movs r1, #0x20 - strh r1, [r2] - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - lsls r1, r4, #1 - adds r1, r1, r4 - lsls r1, r1, #1 - rsbs r1, r1, #0 - subs r7, #5 - adds r2, r3, r7 - strh r1, [r2] - ldr r1, _080CADB0 - adds r3, r3, r1 - strh r5, [r3] - bl SetBoxSpeciesAndPersonalities - cmp r4, #0 - ble _080CADB8 - ldr r0, [r6] - ldr r2, _080CADB4 - adds r0, r0, r2 - movs r1, #0 - b _080CADC0 - .align 2, 0 -_080CADA0: .4byte gUnknown_20399A8 -_080CADA4: .4byte 0x00000C6A -_080CADA8: .4byte 0x00000C6B -_080CADAC: .4byte 0x00000C69 -_080CADB0: .4byte 0x00000C66 -_080CADB4: .4byte 0x00000C68 -_080CADB8: - ldr r0, [r6] - ldr r3, _080CADEC - adds r0, r0, r3 - movs r1, #5 -_080CADC0: - strb r1, [r0] - ldr r0, _080CADF0 - ldr r2, [r0] - ldr r7, _080CADEC - adds r0, r2, r7 - ldrb r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, #0x64 - ldr r3, _080CADF4 - adds r1, r2, r3 - strh r0, [r1] - subs r7, #4 - adds r2, r2, r7 - movs r1, #0 - ldrsh r0, [r2, r1] - bl sub_080CAA64 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080CADEC: .4byte 0x00000C68 -_080CADF0: .4byte gUnknown_20399A8 -_080CADF4: .4byte 0x00000C62 - thumb_func_end sub_080CAD40 - - thumb_func_start sub_080CADF8 -sub_080CADF8: @ 0x080CADF8 - push {r4, r5, r6, lr} - ldr r5, _080CAE24 - ldr r0, [r5] - movs r4, #0xc6 - lsls r4, r4, #4 - adds r1, r0, r4 - ldrh r0, [r1] - cmp r0, #0 - beq _080CAE0E - subs r0, #1 - strh r0, [r1] -_080CAE0E: - ldr r3, [r5] - ldr r6, _080CAE28 - adds r0, r3, r6 - ldrb r0, [r0] - cmp r0, #1 - beq _080CAE90 - cmp r0, #1 - bgt _080CAE2C - cmp r0, #0 - beq _080CAE34 - b _080CAF52 - .align 2, 0 -_080CAE24: .4byte gUnknown_20399A8 -_080CAE28: .4byte 0x00000C6A -_080CAE2C: - cmp r0, #2 - bne _080CAE32 - b _080CAF40 -_080CAE32: - b _080CAF52 -_080CAE34: - ldr r0, _080CAE80 - adds r1, r3, r0 - ldr r2, _080CAE84 - adds r0, r3, r2 - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - subs r0, #0x41 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xba - bhi _080CAE50 - b _080CAF5C -_080CAE50: - ldr r1, _080CAE88 - adds r0, r3, r1 - ldrb r0, [r0] - bl DestroyAllIconsInRow - ldr r2, [r5] - ldr r0, _080CAE80 - adds r3, r2, r0 - ldr r1, _080CAE8C - adds r0, r2, r1 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - ldrh r1, [r3] - adds r0, r0, r1 - strh r0, [r3] - adds r2, r2, r6 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - b _080CAF5C - .align 2, 0 -_080CAE80: .4byte 0x00000C62 -_080CAE84: .4byte 0x00000C64 -_080CAE88: .4byte 0x00000C68 -_080CAE8C: .4byte 0x00000C69 -_080CAE90: - ldr r2, _080CAEF4 - adds r1, r3, r2 - ldr r6, _080CAEF8 - adds r2, r3, r6 - ldrh r0, [r2] - ldrh r6, [r1] - adds r0, r0, r6 - strh r0, [r1] - ldr r6, _080CAEFC - adds r0, r3, r6 - ldrb r0, [r0] - adds r1, r3, r4 - ldrh r1, [r1] - movs r3, #0 - ldrsh r2, [r2, r3] - bl sub_080CAB6C - ldr r2, [r5] - ldr r3, _080CAF00 - adds r1, r2, r3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - ldr r1, _080CAF04 - adds r0, r2, r1 - movs r1, #0 - ldrsb r1, [r0, r1] - cmp r1, #0 - ble _080CAED6 - adds r0, r2, r6 - ldrb r0, [r0] - cmp r0, #5 - beq _080CAEE2 -_080CAED6: - cmp r1, #0 - bge _080CAF10 - adds r0, r2, r6 - ldrb r0, [r0] - cmp r0, #0 - bne _080CAF10 -_080CAEE2: - ldr r0, _080CAF08 - ldr r1, [r0] - ldr r2, _080CAF0C - adds r1, r1, r2 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080CAF5C - .align 2, 0 -_080CAEF4: .4byte 0x00000C62 -_080CAEF8: .4byte 0x00000C64 -_080CAEFC: .4byte 0x00000C68 -_080CAF00: .4byte 0x00000C66 -_080CAF04: .4byte 0x00000C69 -_080CAF08: .4byte gUnknown_20399A8 -_080CAF0C: .4byte 0x00000C6A -_080CAF10: - ldr r3, _080CAF30 - ldr r0, [r3] - ldr r6, _080CAF34 - adds r1, r0, r6 - ldr r2, _080CAF38 - adds r0, r0, r2 - ldrb r0, [r0] - ldrb r6, [r1] - adds r0, r0, r6 - movs r2, #0 - strb r0, [r1] - ldr r0, [r3] - ldr r1, _080CAF3C - adds r0, r0, r1 - strb r2, [r0] - b _080CAF5C - .align 2, 0 -_080CAF30: .4byte gUnknown_20399A8 -_080CAF34: .4byte 0x00000C68 -_080CAF38: .4byte 0x00000C69 -_080CAF3C: .4byte 0x00000C6A -_080CAF40: - ldr r2, _080CAF58 - adds r0, r3, r2 - ldrh r0, [r0] - cmp r0, #0 - bne _080CAF5C - adds r1, r3, r4 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_080CAF52: - movs r0, #0 - b _080CAF5E - .align 2, 0 -_080CAF58: .4byte 0x00000C66 -_080CAF5C: - movs r0, #1 -_080CAF5E: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_080CADF8 - - thumb_func_start SetBoxSpeciesAndPersonalities -SetBoxSpeciesAndPersonalities: @ 0x080CAF64 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r5, #0 - movs r0, #0 - ldr r1, _080CAFDC - mov sb, r1 -_080CAF78: - adds r0, #1 - mov r8, r0 - movs r7, #5 -_080CAF7E: - lsls r0, r5, #0x18 - lsrs r4, r0, #0x18 - adds r0, r6, #0 - adds r1, r4, #0 - movs r2, #0x41 - bl GetBoxMonDataAt - mov r2, sb - ldr r1, [r2] - lsls r2, r5, #1 - ldr r3, _080CAFE0 - adds r1, r1, r3 - adds r1, r1, r2 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080CAFB8 - adds r0, r6, #0 - adds r1, r4, #0 - movs r2, #0 - bl GetBoxMonDataAt - mov r2, sb - ldr r1, [r2] - lsls r2, r5, #2 - ldr r3, _080CAFE4 - adds r1, r1, r3 - adds r1, r1, r2 - str r0, [r1] -_080CAFB8: - adds r5, #1 - subs r7, #1 - cmp r7, #0 - bge _080CAF7E - mov r0, r8 - cmp r0, #4 - ble _080CAF78 - ldr r0, _080CAFDC - ldr r0, [r0] - ldr r1, _080CAFE8 - adds r0, r0, r1 - strb r6, [r0] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080CAFDC: .4byte gUnknown_20399A8 -_080CAFE0: .4byte 0x00000BA8 -_080CAFE4: .4byte 0x00000BE4 -_080CAFE8: .4byte 0x00000C5C - thumb_func_end SetBoxSpeciesAndPersonalities - - thumb_func_start DestroyBoxMonIconAtPosition -DestroyBoxMonIconAtPosition: @ 0x080CAFEC - push {r4, r5, lr} - lsls r0, r0, #0x18 - ldr r5, _080CB018 - ldr r1, [r5] - lsrs r4, r0, #0x16 - ldr r0, _080CB01C - adds r1, r1, r0 - adds r1, r1, r4 - ldr r0, [r1] - cmp r0, #0 - beq _080CB012 - bl DestroyBoxMonIcon - ldr r0, [r5] - ldr r1, _080CB01C - adds r0, r0, r1 - adds r0, r0, r4 - movs r1, #0 - str r1, [r0] -_080CB012: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080CB018: .4byte gUnknown_20399A8 -_080CB01C: .4byte 0x00000A88 - thumb_func_end DestroyBoxMonIconAtPosition - - thumb_func_start SetBoxMonIconObjMode -SetBoxMonIconObjMode: @ 0x080CB020 - push {lr} - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r2, r1, #0x18 - ldr r1, _080CB054 - ldr r1, [r1] - lsrs r0, r0, #0x16 - ldr r3, _080CB058 - adds r1, r1, r3 - adds r1, r1, r0 - ldr r3, [r1] - cmp r3, #0 - beq _080CB04E - movs r0, #3 - adds r1, r2, #0 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r3, #1] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #1] -_080CB04E: - pop {r0} - bx r0 - .align 2, 0 -_080CB054: .4byte gUnknown_20399A8 -_080CB058: .4byte 0x00000A88 - thumb_func_end SetBoxMonIconObjMode - - thumb_func_start CreatePartyMonsSprites -CreatePartyMonsSprites: @ 0x080CB05C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r4, _080CB100 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r4, #0 - movs r1, #0 - bl GetMonData - adds r1, r0, #0 - movs r0, #1 - str r0, [sp] - movs r0, #0xc - str r0, [sp, #4] - adds r0, r5, #0 - movs r2, #0x68 - movs r3, #0x40 - bl sub_080CBAA4 - ldr r1, _080CB104 - ldr r1, [r1] - movs r2, #0xa7 - lsls r2, r2, #4 - adds r1, r1, r2 - str r0, [r1] - movs r7, #1 - movs r6, #1 -_080CB0A4: - movs r0, #0x64 - adds r1, r6, #0 - muls r1, r0, r1 - ldr r0, _080CB100 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0 - beq _080CB108 - adds r0, r4, #0 - movs r1, #0 - bl GetMonData - adds r1, r0, #0 - subs r0, r6, #1 - lsls r3, r0, #1 - adds r3, r3, r0 - lsls r3, r3, #0x13 - movs r0, #0x80 - lsls r0, r0, #0xd - adds r3, r3, r0 - asrs r3, r3, #0x10 - movs r0, #1 - str r0, [sp] - movs r0, #0xc - str r0, [sp, #4] - adds r0, r5, #0 - movs r2, #0x98 - bl sub_080CBAA4 - ldr r1, _080CB104 - ldr r1, [r1] - lsls r2, r6, #2 - movs r3, #0xa7 - lsls r3, r3, #4 - adds r1, r1, r3 - adds r1, r1, r2 - str r0, [r1] - adds r0, r7, #1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - b _080CB118 - .align 2, 0 -_080CB100: .4byte gUnknown_2024190 -_080CB104: .4byte gUnknown_20399A8 -_080CB108: - ldr r0, _080CB1BC - ldr r0, [r0] - lsls r1, r6, #2 - movs r2, #0xa7 - lsls r2, r2, #4 - adds r0, r0, r2 - adds r0, r0, r1 - str r5, [r0] -_080CB118: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #5 - bls _080CB0A4 - ldr r3, _080CB1BC - mov r0, r8 - cmp r0, #0 - bne _080CB15E - movs r6, #0 - cmp r6, r7 - bhs _080CB15E - mov ip, r3 - movs r5, #0xa7 - lsls r5, r5, #4 - movs r4, #4 -_080CB138: - mov r2, ip - ldr r1, [r2] - lsls r0, r6, #2 - adds r1, r1, r5 - adds r1, r1, r0 - ldr r2, [r1] - ldrh r0, [r2, #0x22] - subs r0, #0xa0 - strh r0, [r2, #0x22] - ldr r1, [r1] - adds r1, #0x3e - ldrb r0, [r1] - orrs r0, r4 - strb r0, [r1] - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, r7 - blo _080CB138 -_080CB15E: - ldr r0, [r3] - ldrb r0, [r0, #1] - cmp r0, #3 - bne _080CB1B0 - movs r6, #0 - adds r7, r3, #0 - movs r5, #0xa7 - lsls r5, r5, #4 -_080CB16E: - ldr r0, [r7] - lsls r4, r6, #2 - adds r0, r0, r5 - adds r0, r0, r4 - ldr r0, [r0] - cmp r0, #0 - beq _080CB1A6 - movs r0, #0x64 - muls r0, r6, r0 - ldr r1, _080CB1C0 - adds r0, r0, r1 - movs r1, #0xc - bl GetMonData - cmp r0, #0 - bne _080CB1A6 - ldr r0, [r7] - adds r0, r0, r5 - adds r0, r0, r4 - ldr r2, [r0] - ldrb r1, [r2, #1] - movs r3, #0xd - rsbs r3, r3, #0 - adds r0, r3, #0 - ands r1, r0 - movs r0, #4 - orrs r1, r0 - strb r1, [r2, #1] -_080CB1A6: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #5 - bls _080CB16E -_080CB1B0: - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080CB1BC: .4byte gUnknown_20399A8 -_080CB1C0: .4byte gUnknown_2024190 - thumb_func_end CreatePartyMonsSprites - - thumb_func_start sub_080CB1C4 -sub_080CB1C4: @ 0x080CB1C4 - push {r4, r5, r6, r7, lr} - sub sp, #4 - ldr r0, _080CB228 - ldr r1, [r0] - ldr r2, _080CB22C - adds r1, r1, r2 - movs r2, #0 - strb r2, [r1] - movs r5, #0 - movs r6, #0 - adds r3, r0, #0 - movs r7, #0xa7 - lsls r7, r7, #4 -_080CB1DE: - ldr r0, [r3] - lsls r4, r5, #2 - adds r0, r0, r7 - adds r0, r0, r4 - ldr r0, [r0] - cmp r0, #0 - beq _080CB214 - cmp r5, r6 - beq _080CB20E - adds r1, r6, #0 - str r3, [sp] - bl sub_080CB244 - ldr r3, [sp] - ldr r2, [r3] - adds r0, r2, r7 - adds r0, r0, r4 - movs r1, #0 - str r1, [r0] - ldr r0, _080CB22C - adds r2, r2, r0 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] -_080CB20E: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_080CB214: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #5 - bls _080CB1DE - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080CB228: .4byte gUnknown_20399A8 -_080CB22C: .4byte 0x00000C5E - thumb_func_end sub_080CB1C4 - - thumb_func_start sub_080CB230 -sub_080CB230: @ 0x080CB230 - ldr r0, _080CB23C - ldr r0, [r0] - ldr r1, _080CB240 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080CB23C: .4byte gUnknown_20399A8 -_080CB240: .4byte 0x00000C5E - thumb_func_end sub_080CB230 - - thumb_func_start sub_080CB244 -sub_080CB244: @ 0x080CB244 - push {r4, lr} - adds r2, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - strh r1, [r2, #0x30] - cmp r1, #0 - bne _080CB258 - movs r3, #0x68 - movs r4, #0x40 - b _080CB26A -_080CB258: - movs r3, #0x98 - subs r1, #1 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0x13 - movs r1, #0x80 - lsls r1, r1, #0xd - adds r0, r0, r1 - lsrs r4, r0, #0x10 -_080CB26A: - ldrh r0, [r2, #0x20] - lsls r0, r0, #3 - strh r0, [r2, #0x32] - ldrh r0, [r2, #0x22] - lsls r0, r0, #3 - strh r0, [r2, #0x34] - lsls r1, r3, #3 - movs r3, #0x32 - ldrsh r0, [r2, r3] - subs r0, r1, r0 - cmp r0, #0 - bge _080CB284 - adds r0, #7 -_080CB284: - asrs r0, r0, #3 - strh r0, [r2, #0x36] - lsls r0, r4, #0x10 - asrs r0, r0, #0xd - movs r3, #0x34 - ldrsh r1, [r2, r3] - subs r0, r0, r1 - cmp r0, #0 - bge _080CB298 - adds r0, #7 -_080CB298: - asrs r0, r0, #3 - strh r0, [r2, #0x38] - movs r0, #8 - strh r0, [r2, #0x3a] - ldr r0, _080CB2AC - str r0, [r2, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CB2AC: .4byte sub_080CB2B0 - thumb_func_end sub_080CB244 - - thumb_func_start sub_080CB2B0 -sub_080CB2B0: @ 0x080CB2B0 - push {r4, lr} - adds r3, r0, #0 - ldrh r2, [r3, #0x3a] - movs r1, #0x3a - ldrsh r0, [r3, r1] - cmp r0, #0 - beq _080CB2E0 - ldrh r0, [r3, #0x36] - ldrh r4, [r3, #0x32] - adds r0, r0, r4 - strh r0, [r3, #0x32] - ldrh r1, [r3, #0x38] - ldrh r4, [r3, #0x34] - adds r1, r1, r4 - strh r1, [r3, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x13 - strh r0, [r3, #0x20] - lsls r1, r1, #0x10 - asrs r1, r1, #0x13 - strh r1, [r3, #0x22] - subs r0, r2, #1 - strh r0, [r3, #0x3a] - b _080CB326 -_080CB2E0: - movs r1, #0x30 - ldrsh r0, [r3, r1] - cmp r0, #0 - bne _080CB2F0 - movs r0, #0x68 - strh r0, [r3, #0x20] - movs r0, #0x40 - b _080CB302 -_080CB2F0: - movs r0, #0x98 - strh r0, [r3, #0x20] - movs r4, #0x30 - ldrsh r1, [r3, r4] - subs r1, #1 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, #0x10 -_080CB302: - strh r0, [r3, #0x22] - ldr r0, _080CB32C - str r0, [r3, #0x1c] - ldr r0, _080CB330 - ldr r2, [r0] - movs r0, #0x30 - ldrsh r1, [r3, r0] - lsls r1, r1, #2 - movs r4, #0xa7 - lsls r4, r4, #4 - adds r0, r2, r4 - adds r0, r0, r1 - str r3, [r0] - ldr r0, _080CB334 - adds r2, r2, r0 - ldrb r0, [r2] - subs r0, #1 - strb r0, [r2] -_080CB326: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CB32C: .4byte sub_08007140 -_080CB330: .4byte gUnknown_20399A8 -_080CB334: .4byte 0x00000C5E - thumb_func_end sub_080CB2B0 - - thumb_func_start DestroyMovingMonIcon -DestroyMovingMonIcon: @ 0x080CB338 - push {r4, lr} - ldr r4, _080CB35C - ldr r0, [r4] - ldr r1, _080CB360 - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #0 - beq _080CB356 - bl DestroyBoxMonIcon - ldr r0, [r4] - ldr r1, _080CB360 - adds r0, r0, r1 - movs r1, #0 - str r1, [r0] -_080CB356: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CB35C: .4byte gUnknown_20399A8 -_080CB360: .4byte 0x00000A6C - thumb_func_end DestroyMovingMonIcon - - thumb_func_start sub_080CB364 -sub_080CB364: @ 0x080CB364 - push {r4, r5, r6, lr} - movs r3, #0 - ldr r6, _080CB3BC - lsls r0, r0, #0x10 - asrs r4, r0, #0x10 - movs r5, #5 - rsbs r5, r5, #0 -_080CB372: - ldr r0, [r6] - lsls r1, r3, #2 - movs r2, #0xa7 - lsls r2, r2, #4 - adds r0, r0, r2 - adds r2, r0, r1 - ldr r1, [r2] - cmp r1, #0 - beq _080CB3CA - ldrh r0, [r1, #0x22] - adds r0, r4, r0 - strh r0, [r1, #0x22] - ldr r2, [r2] - ldrh r1, [r2, #0x26] - ldrh r0, [r2, #0x22] - adds r1, r1, r0 - adds r0, r2, #0 - adds r0, #0x29 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, r0, r1 - lsls r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #0xd - adds r0, r0, r1 - lsrs r0, r0, #0x10 - cmp r0, #0xc0 - bls _080CB3C0 - adds r0, r2, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - b _080CB3CA - .align 2, 0 -_080CB3BC: .4byte gUnknown_20399A8 -_080CB3C0: - adds r2, #0x3e - ldrb r1, [r2] - adds r0, r5, #0 - ands r0, r1 - strb r0, [r2] -_080CB3CA: - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #5 - bls _080CB372 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080CB364 - - thumb_func_start DestroyPartyMonIcon -DestroyPartyMonIcon: @ 0x080CB3DC - push {r4, r5, lr} - lsls r0, r0, #0x18 - ldr r5, _080CB40C - ldr r1, [r5] - lsrs r4, r0, #0x16 - movs r0, #0xa7 - lsls r0, r0, #4 - adds r1, r1, r0 - adds r1, r1, r4 - ldr r0, [r1] - cmp r0, #0 - beq _080CB406 - bl DestroyBoxMonIcon - ldr r0, [r5] - movs r1, #0xa7 - lsls r1, r1, #4 - adds r0, r0, r1 - adds r0, r0, r4 - movs r1, #0 - str r1, [r0] -_080CB406: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080CB40C: .4byte gUnknown_20399A8 - thumb_func_end DestroyPartyMonIcon - - thumb_func_start DestroyAllPartyMonIcons -DestroyAllPartyMonIcons: @ 0x080CB410 - push {r4, r5, r6, lr} - movs r5, #0 - ldr r6, _080CB44C -_080CB416: - ldr r0, [r6] - lsls r4, r5, #2 - movs r1, #0xa7 - lsls r1, r1, #4 - adds r0, r0, r1 - adds r0, r0, r4 - ldr r0, [r0] - cmp r0, #0 - beq _080CB43A - bl DestroyBoxMonIcon - ldr r0, [r6] - movs r1, #0xa7 - lsls r1, r1, #4 - adds r0, r0, r1 - adds r0, r0, r4 - movs r1, #0 - str r1, [r0] -_080CB43A: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #5 - bls _080CB416 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080CB44C: .4byte gUnknown_20399A8 - thumb_func_end DestroyAllPartyMonIcons - - thumb_func_start SetPartyMonIconObjMode -SetPartyMonIconObjMode: @ 0x080CB450 - push {lr} - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r2, r1, #0x18 - ldr r1, _080CB484 - ldr r1, [r1] - lsrs r0, r0, #0x16 - movs r3, #0xa7 - lsls r3, r3, #4 - adds r1, r1, r3 - adds r1, r1, r0 - ldr r3, [r1] - cmp r3, #0 - beq _080CB480 - movs r0, #3 - adds r1, r2, #0 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r3, #1] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #1] -_080CB480: - pop {r0} - bx r0 - .align 2, 0 -_080CB484: .4byte gUnknown_20399A8 - thumb_func_end SetPartyMonIconObjMode - - thumb_func_start sub_080CB488 -sub_080CB488: @ 0x080CB488 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r5, r1, #0 - cmp r4, #0 - bne _080CB4B8 - ldr r3, _080CB4B0 - ldr r0, [r3] - ldr r5, _080CB4B4 - adds r2, r0, r5 - lsls r1, r1, #2 - adds r5, #4 - adds r0, r0, r5 - adds r0, r0, r1 - ldr r1, [r0] - str r1, [r2] - str r4, [r0] - b _080CB4D4 - .align 2, 0 -_080CB4B0: .4byte gUnknown_20399A8 -_080CB4B4: .4byte 0x00000A6C -_080CB4B8: - cmp r4, #1 - bne _080CB50A - ldr r3, _080CB510 - ldr r0, [r3] - ldr r1, _080CB514 - adds r2, r0, r1 - lsls r1, r5, #2 - ldr r4, _080CB518 - adds r0, r0, r4 - adds r0, r0, r1 - ldr r1, [r0] - str r1, [r2] - movs r1, #0 - str r1, [r0] -_080CB4D4: - adds r5, r3, #0 - ldr r0, [r5] - ldr r4, _080CB514 - adds r0, r0, r4 - ldr r1, [r0] - ldr r0, _080CB51C - str r0, [r1, #0x1c] - bl sub_080CA820 - ldr r1, [r5] - adds r1, r1, r4 - ldr r3, [r1] - movs r1, #3 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r3, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #5] - ldr r0, [r5] - adds r0, r0, r4 - ldr r0, [r0] - adds r0, #0x43 - movs r1, #7 - strb r1, [r0] -_080CB50A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080CB510: .4byte gUnknown_20399A8 -_080CB514: .4byte 0x00000A6C -_080CB518: .4byte 0x00000A88 -_080CB51C: .4byte sub_080CB974 - thumb_func_end sub_080CB488 - - thumb_func_start sub_080CB520 -sub_080CB520: @ 0x080CB520 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - cmp r0, #0xe - bne _080CB56C - ldr r3, _080CB564 - ldr r1, [r3] - lsls r5, r6, #2 - movs r4, #0xa7 - lsls r4, r4, #4 - adds r0, r1, r4 - adds r0, r0, r5 - ldr r2, _080CB568 - adds r1, r1, r2 - ldr r2, [r1] - str r2, [r0] - ldrb r1, [r2, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2, #5] - ldr r0, [r3] - adds r0, r0, r4 - adds r0, r0, r5 - ldr r0, [r0] - adds r0, #0x43 - movs r1, #0xc - strb r1, [r0] - b _080CB5A8 - .align 2, 0 -_080CB564: .4byte gUnknown_20399A8 -_080CB568: .4byte 0x00000A6C -_080CB56C: - ldr r5, _080CB5C0 - ldr r1, [r5] - lsls r4, r6, #2 - ldr r3, _080CB5C4 - adds r0, r1, r3 - adds r0, r0, r4 - ldr r2, _080CB5C8 - adds r1, r1, r2 - ldr r2, [r1] - str r2, [r0] - ldrb r1, [r2, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2, #5] - ldr r0, [r5] - adds r0, r0, r3 - adds r0, r0, r4 - ldr r4, [r0] - adds r0, r6, #0 - movs r1, #6 - bl __umodsi3 - movs r1, #0x13 - subs r1, r1, r0 - adds r4, #0x43 - strb r1, [r4] - adds r3, r5, #0 -_080CB5A8: - ldr r1, [r3] - ldr r0, _080CB5C8 - adds r1, r1, r0 - ldr r2, [r1] - ldr r0, _080CB5CC - str r0, [r2, #0x1c] - movs r0, #0 - str r0, [r1] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080CB5C0: .4byte gUnknown_20399A8 -_080CB5C4: .4byte 0x00000A88 -_080CB5C8: .4byte 0x00000A6C -_080CB5CC: .4byte sub_08007140 - thumb_func_end sub_080CB520 - - thumb_func_start sub_080CB5D0 -sub_080CB5D0: @ 0x080CB5D0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - cmp r0, #0xe - bne _080CB5F4 - ldr r3, _080CB5F0 - ldr r1, [r3] - movs r0, #0xb0 - lsls r0, r0, #4 - adds r2, r1, r0 - lsls r0, r4, #2 - movs r4, #0xa7 - lsls r4, r4, #4 - b _080CB602 - .align 2, 0 -_080CB5F0: .4byte gUnknown_20399A8 -_080CB5F4: - ldr r3, _080CB624 - ldr r1, [r3] - movs r0, #0xb0 - lsls r0, r0, #4 - adds r2, r1, r0 - lsls r0, r4, #2 - ldr r4, _080CB628 -_080CB602: - adds r0, r0, r4 - adds r1, r1, r0 - str r1, [r2] - ldr r1, [r3] - ldr r2, _080CB62C - adds r0, r1, r2 - ldr r2, [r0] - ldr r0, _080CB630 - str r0, [r2, #0x1c] - ldr r4, _080CB634 - adds r1, r1, r4 - movs r0, #0 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CB624: .4byte gUnknown_20399A8 -_080CB628: .4byte 0x00000A88 -_080CB62C: .4byte 0x00000A6C -_080CB630: .4byte sub_08007140 -_080CB634: .4byte 0x00000C5D - thumb_func_end sub_080CB5D0 - - thumb_func_start sub_080CB638 -sub_080CB638: @ 0x080CB638 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r6, _080CB654 - ldr r0, [r6] - ldr r1, _080CB658 - mov sb, r1 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, #0x10 - bne _080CB65C - movs r0, #0 - b _080CB768 - .align 2, 0 -_080CB654: .4byte gUnknown_20399A8 -_080CB658: .4byte 0x00000C5D -_080CB65C: - adds r0, #1 - strb r0, [r1] - ldr r2, [r6] - ldr r5, _080CB774 - adds r0, r2, r5 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080CB68C - movs r1, #0xb0 - lsls r1, r1, #4 - adds r0, r2, r1 - ldr r0, [r0] - ldr r1, [r0] - ldrh r0, [r1, #0x22] - subs r0, #1 - strh r0, [r1, #0x22] - ldr r5, _080CB778 - adds r0, r2, r5 - ldr r1, [r0] - ldrh r0, [r1, #0x22] - adds r0, #1 - strh r0, [r1, #0x22] -_080CB68C: - ldr r3, [r6] - movs r7, #0xb0 - lsls r7, r7, #4 - adds r4, r3, r7 - ldr r0, [r4] - ldr r0, [r0] - mov r8, r0 - ldr r5, _080CB77C - mov r0, sb - adds r1, r3, r0 - ldrb r0, [r1] - lsls r0, r0, #4 - adds r0, r0, r5 - movs r2, #0 - ldrsh r0, [r0, r2] - cmp r0, #0 - bge _080CB6B0 - adds r0, #0xf -_080CB6B0: - asrs r0, r0, #4 - mov r2, r8 - strh r0, [r2, #0x24] - ldr r0, _080CB778 - mov r8, r0 - add r3, r8 - ldr r2, [r3] - ldrb r0, [r1] - lsls r0, r0, #4 - adds r0, r0, r5 - movs r5, #0 - ldrsh r0, [r0, r5] - cmp r0, #0 - bge _080CB6CE - adds r0, #0xf -_080CB6CE: - asrs r0, r0, #4 - rsbs r0, r0, #0 - strh r0, [r2, #0x24] - ldrb r0, [r1] - cmp r0, #8 - bne _080CB732 - ldr r3, [r3] - ldr r0, [r4] - ldr r0, [r0] - ldrb r0, [r0, #5] - movs r5, #3 - movs r1, #0xc - ands r1, r0 - ldrb r2, [r3, #5] - movs r4, #0xd - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #5] - ldr r0, [r6] - mov r2, r8 - adds r1, r0, r2 - ldr r1, [r1] - adds r0, r0, r7 - ldr r0, [r0] - ldr r0, [r0] - adds r0, #0x43 - ldrb r0, [r0] - adds r1, #0x43 - strb r0, [r1] - bl sub_080CA820 - ldr r1, [r6] - adds r1, r1, r7 - ldr r1, [r1] - ldr r1, [r1] - ands r5, r0 - lsls r5, r5, #2 - ldrb r0, [r1, #5] - ands r4, r0 - orrs r4, r5 - strb r4, [r1, #5] - ldr r0, [r6] - adds r0, r0, r7 - ldr r0, [r0] - ldr r0, [r0] - adds r0, #0x43 - movs r1, #7 - strb r1, [r0] -_080CB732: - ldr r1, [r6] - mov r5, sb - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, #0x10 - bne _080CB766 - mov r0, r8 - adds r2, r1, r0 - ldr r3, [r2] - adds r1, r1, r7 - ldr r0, [r1] - ldr r0, [r0] - str r0, [r2] - ldr r0, [r1] - str r3, [r0] - ldr r1, [r6] - mov r2, r8 - adds r0, r1, r2 - ldr r2, [r0] - ldr r0, _080CB780 - str r0, [r2, #0x1c] - adds r1, r1, r7 - ldr r0, [r1] - ldr r1, [r0] - ldr r0, _080CB784 - str r0, [r1, #0x1c] -_080CB766: - movs r0, #1 -_080CB768: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080CB774: .4byte 0x00000C5D -_080CB778: .4byte 0x00000A6C -_080CB77C: .4byte gUnknown_82FA8CC -_080CB780: .4byte sub_080CB974 -_080CB784: .4byte sub_08007140 - thumb_func_end sub_080CB638 - - thumb_func_start sub_080CB788 -sub_080CB788: @ 0x080CB788 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r2, r0, #0 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - cmp r0, #1 - beq _080CB7C0 - cmp r0, #1 - bgt _080CB7A2 - cmp r0, #0 - beq _080CB7A8 - b _080CB834 -_080CB7A2: - cmp r2, #2 - beq _080CB7E4 - b _080CB834 -_080CB7A8: - ldr r3, _080CB7B8 - ldr r1, [r3] - ldr r0, _080CB7BC - adds r2, r1, r0 - lsls r0, r4, #2 - movs r4, #0xa7 - lsls r4, r4, #4 - b _080CB7CC - .align 2, 0 -_080CB7B8: .4byte gUnknown_20399A8 -_080CB7BC: .4byte 0x00000B04 -_080CB7C0: - ldr r3, _080CB7D8 - ldr r1, [r3] - ldr r0, _080CB7DC - adds r2, r1, r0 - lsls r0, r4, #2 - ldr r4, _080CB7E0 -_080CB7CC: - adds r0, r0, r4 - adds r1, r1, r0 - str r1, [r2] - adds r4, r3, #0 - b _080CB7F4 - .align 2, 0 -_080CB7D8: .4byte gUnknown_20399A8 -_080CB7DC: .4byte 0x00000B04 -_080CB7E0: .4byte 0x00000A88 -_080CB7E4: - ldr r0, _080CB83C - ldr r1, [r0] - ldr r3, _080CB840 - adds r2, r1, r3 - ldr r4, _080CB844 - adds r1, r1, r4 - str r1, [r2] - adds r4, r0, #0 -_080CB7F4: - ldr r0, [r4] - ldr r1, _080CB840 - adds r0, r0, r1 - ldr r0, [r0] - ldr r0, [r0] - cmp r0, #0 - beq _080CB834 - bl InitSpriteAffineAnim - ldr r0, [r4] - ldr r3, _080CB840 - adds r0, r0, r3 - ldr r0, [r0] - ldr r2, [r0] - ldrb r1, [r2, #1] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #1] - ldr r1, [r4] - adds r1, r1, r3 - ldr r0, [r1] - ldr r2, [r0] - ldr r0, _080CB848 - str r0, [r2, #0x10] - ldr r0, [r1] - ldr r0, [r0] - movs r1, #0 - bl StartSpriteAffineAnim -_080CB834: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CB83C: .4byte gUnknown_20399A8 -_080CB840: .4byte 0x00000B04 -_080CB844: .4byte 0x00000A6C -_080CB848: .4byte gUnknown_854CBCC - thumb_func_end sub_080CB788 - - thumb_func_start sub_080CB84C -sub_080CB84C: @ 0x080CB84C - push {lr} - ldr r0, _080CB870 - ldr r0, [r0] - ldr r1, _080CB874 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, [r0] - cmp r1, #0 - beq _080CB86C - adds r3, r1, #0 - adds r3, #0x3e - ldrb r2, [r3] - movs r0, #4 - ands r0, r2 - cmp r0, #0 - beq _080CB878 -_080CB86C: - movs r0, #0 - b _080CB88E - .align 2, 0 -_080CB870: .4byte gUnknown_20399A8 -_080CB874: .4byte 0x00000B04 -_080CB878: - adds r0, r1, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080CB88C - movs r0, #4 - orrs r0, r2 - strb r0, [r3] -_080CB88C: - movs r0, #1 -_080CB88E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080CB84C - - thumb_func_start sub_080CB894 -sub_080CB894: @ 0x080CB894 - push {r4, lr} - ldr r4, _080CB8D0 - ldr r0, [r4] - ldr r1, _080CB8D4 - adds r0, r0, r1 - ldr r0, [r0] - ldr r0, [r0] - cmp r0, #0 - beq _080CB8CA - ldrb r0, [r0, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - ldr r0, [r4] - ldr r1, _080CB8D4 - adds r0, r0, r1 - ldr r0, [r0] - ldr r0, [r0] - bl DestroyBoxMonIcon - ldr r0, [r4] - ldr r1, _080CB8D4 - adds r0, r0, r1 - ldr r1, [r0] - movs r0, #0 - str r0, [r1] -_080CB8CA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CB8D0: .4byte gUnknown_20399A8 -_080CB8D4: .4byte 0x00000B04 - thumb_func_end sub_080CB894 - - thumb_func_start sub_080CB8D8 -sub_080CB8D8: @ 0x080CB8D8 - push {lr} - ldr r3, _080CB90C - ldr r0, [r3] - ldr r1, _080CB910 - adds r0, r0, r1 - ldr r0, [r0] - ldr r0, [r0] - cmp r0, #0 - beq _080CB908 - adds r2, r0, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldr r0, [r3] - ldr r1, _080CB910 - adds r0, r0, r1 - ldr r0, [r0] - ldr r0, [r0] - movs r1, #1 - bl StartSpriteAffineAnim -_080CB908: - pop {r0} - bx r0 - .align 2, 0 -_080CB90C: .4byte gUnknown_20399A8 -_080CB910: .4byte 0x00000B04 - thumb_func_end sub_080CB8D8 - - thumb_func_start sub_080CB914 -sub_080CB914: @ 0x080CB914 - push {lr} - ldr r0, _080CB928 - ldr r0, [r0] - ldr r1, _080CB92C - adds r2, r0, r1 - ldr r0, [r2] - cmp r0, #0 - bne _080CB930 - movs r0, #0 - b _080CB944 - .align 2, 0 -_080CB928: .4byte gUnknown_20399A8 -_080CB92C: .4byte 0x00000B04 -_080CB930: - ldr r0, [r0] - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080CB942 - movs r0, #0 - str r0, [r2] -_080CB942: - movs r0, #1 -_080CB944: - pop {r1} - bx r1 - thumb_func_end sub_080CB914 - - thumb_func_start SetMovingMonPriority -SetMovingMonPriority: @ 0x080CB948 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080CB96C - ldr r1, [r1] - ldr r2, _080CB970 - adds r1, r1, r2 - ldr r3, [r1] - movs r1, #3 - ands r0, r1 - lsls r0, r0, #2 - ldrb r2, [r3, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #5] - bx lr - .align 2, 0 -_080CB96C: .4byte gUnknown_20399A8 -_080CB970: .4byte 0x00000A6C - thumb_func_end SetMovingMonPriority - - thumb_func_start sub_080CB974 -sub_080CB974: @ 0x080CB974 - ldr r1, _080CB990 - ldr r1, [r1] - ldr r2, _080CB994 - adds r1, r1, r2 - ldr r2, [r1] - ldrh r2, [r2, #0x20] - strh r2, [r0, #0x20] - ldr r2, [r1] - ldrh r1, [r2, #0x26] - ldrh r2, [r2, #0x22] - adds r1, r1, r2 - adds r1, #4 - strh r1, [r0, #0x22] - bx lr - .align 2, 0 -_080CB990: .4byte gUnknown_20399A8 -_080CB994: .4byte 0x00000CB4 - thumb_func_end sub_080CB974 - - thumb_func_start sub_080CB998 -sub_080CB998: @ 0x080CB998 - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - movs r4, #0 - ldr r1, _080CBA00 - ldr r0, [r1] - ldr r2, _080CBA04 - adds r0, r0, r2 - ldrh r0, [r0] - adds r2, r1, #0 - cmp r0, r3 - beq _080CB9CC - adds r6, r2, #0 - ldr r5, _080CBA04 -_080CB9B4: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x27 - bhi _080CB9CC - ldr r0, [r6] - lsls r1, r4, #1 - adds r0, r0, r5 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, r3 - bne _080CB9B4 -_080CB9CC: - cmp r4, #0x28 - bne _080CBA0C - movs r4, #0 - ldr r0, [r2] - ldr r5, _080CBA04 - adds r0, r0, r5 - ldrh r0, [r0] - cmp r0, #0 - beq _080CB9F8 - adds r6, r2, #0 -_080CB9E0: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x27 - bhi _080CB9F8 - ldr r0, [r6] - lsls r1, r4, #1 - adds r0, r0, r5 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0 - bne _080CB9E0 -_080CB9F8: - cmp r4, #0x28 - bne _080CBA0C - ldr r0, _080CBA08 - b _080CBA3E - .align 2, 0 -_080CBA00: .4byte gUnknown_20399A8 -_080CBA04: .4byte 0x00000B58 -_080CBA08: .4byte 0x0000FFFF -_080CBA0C: - ldr r1, [r2] - lsls r2, r4, #1 - ldr r5, _080CBA44 - adds r0, r1, r5 - adds r0, r0, r2 - strh r3, [r0] - ldr r0, _080CBA48 - adds r1, r1, r0 - adds r1, r1, r2 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - lsls r4, r4, #0x14 - lsrs r4, r4, #0x10 - adds r0, r3, #0 - movs r1, #1 - bl GetMonIconTiles - lsls r1, r4, #5 - ldr r2, _080CBA4C - adds r1, r1, r2 - ldr r2, _080CBA50 - bl CpuSet - adds r0, r4, #0 -_080CBA3E: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080CBA44: .4byte 0x00000B58 -_080CBA48: .4byte 0x00000B08 -_080CBA4C: .4byte 0x06010000 -_080CBA50: .4byte 0x04000080 - thumb_func_end sub_080CB998 - - thumb_func_start sub_080CBA54 -sub_080CBA54: @ 0x080CBA54 - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - movs r3, #0 - ldr r6, _080CBA88 -_080CBA5E: - ldr r1, [r6] - lsls r2, r3, #1 - ldr r4, _080CBA8C - adds r0, r1, r4 - adds r4, r0, r2 - ldrh r0, [r4] - cmp r0, r5 - bne _080CBA94 - ldr r0, _080CBA90 - adds r1, r1, r0 - adds r1, r1, r2 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - bne _080CBA9E - strh r0, [r4] - b _080CBA9E - .align 2, 0 -_080CBA88: .4byte gUnknown_20399A8 -_080CBA8C: .4byte 0x00000B58 -_080CBA90: .4byte 0x00000B08 -_080CBA94: - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #0x27 - bls _080CBA5E -_080CBA9E: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_080CBA54 - - thumb_func_start sub_080CBAA4 -sub_080CBAA4: @ 0x080CBAA4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - ldr r4, [sp, #0x3c] - ldr r5, [sp, #0x40] - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - str r2, [sp, #0x18] - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - mov r8, r3 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - mov sb, r5 - mov r2, sp - ldr r0, _080CBB54 - ldm r0!, {r3, r5, r7} - stm r2!, {r3, r5, r7} - ldm r0!, {r3, r5, r7} - stm r2!, {r3, r5, r7} - adds r0, r6, #0 - bl GetIconSpecies - mov sl, r0 - mov r6, sl - mov r2, sp - ldr r1, _080CBB58 - adds r1, r6, r1 - ldr r3, _080CBB5C - adds r0, r3, #0 - ldrb r1, [r1] - adds r0, r0, r1 - strh r0, [r2, #2] - adds r0, r6, #0 - bl sub_080CB998 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r5, r0, #0 - ldr r0, _080CBB60 - cmp r5, r0 - beq _080CBB76 - ldr r7, [sp, #0x18] - lsls r1, r7, #0x10 - asrs r1, r1, #0x10 - mov r0, r8 - lsls r2, r0, #0x10 - asrs r2, r2, #0x10 - mov r0, sp - mov r3, sb - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x40 - beq _080CBB70 - ldr r1, _080CBB64 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r2, _080CBB68 - ands r2, r5 - ldrh r3, [r0, #4] - ldr r1, _080CBB6C - ands r1, r3 - orrs r1, r2 - strh r1, [r0, #4] - movs r1, #3 - ands r4, r1 - lsls r3, r4, #2 - ldrb r2, [r0, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r3 - strb r1, [r0, #5] - mov r1, sl - strh r1, [r0, #0x2e] - b _080CBB78 - .align 2, 0 -_080CBB54: .4byte gUnknown_854CB84 -_080CBB58: .4byte gUnknown_8556EE4 -_080CBB5C: .4byte 0x0000DAC0 -_080CBB60: .4byte 0x0000FFFF -_080CBB64: .4byte gUnknown_20205AC -_080CBB68: .4byte 0x000003FF -_080CBB6C: .4byte 0xFFFFFC00 -_080CBB70: - adds r0, r6, #0 - bl sub_080CBA54 -_080CBB76: - movs r0, #0 -_080CBB78: - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_080CBAA4 - - thumb_func_start DestroyBoxMonIcon -DestroyBoxMonIcon: @ 0x080CBB88 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - bl sub_080CBA54 - adds r0, r4, #0 - bl DestroySprite - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end DestroyBoxMonIcon - - thumb_func_start sub_080CBBA0 -sub_080CBBA0: @ 0x080CBBA0 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _080CBBC8 - movs r1, #2 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080CBBCC - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #0xc] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CBBC8: .4byte sub_080CBBE4 -_080CBBCC: .4byte gUnknown_3005B60 - thumb_func_end sub_080CBBA0 - - thumb_func_start sub_080CBBD0 -sub_080CBBD0: @ 0x080CBBD0 - push {lr} - ldr r0, _080CBBE0 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_080CBBE0: .4byte sub_080CBBE4 - thumb_func_end sub_080CBBD0 - - thumb_func_start sub_080CBBE4 -sub_080CBBE4: @ 0x080CBBE4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _080CBC08 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #4 - bhi _080CBCC8 - lsls r0, r0, #2 - ldr r1, _080CBC0C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080CBC08: .4byte gUnknown_3005B60 -_080CBC0C: .4byte _080CBC10 -_080CBC10: @ jump table - .4byte _080CBC24 @ case 0 - .4byte _080CBC5C @ case 1 - .4byte _080CBC90 @ case 2 - .4byte _080CBC9A @ case 3 - .4byte _080CBCC0 @ case 4 -_080CBC24: - ldr r1, _080CBC50 - ldr r0, [r1] - ldr r2, _080CBC54 - adds r0, r0, r2 - movs r2, #0 - strb r2, [r0] - ldr r1, [r1] - movs r3, #0xb3 - lsls r3, r3, #2 - adds r0, r1, r3 - strh r2, [r0] - ldr r0, _080CBC58 - adds r1, r1, r0 - movs r2, #0x80 - lsls r2, r2, #5 - movs r0, #0 - movs r3, #1 - bl RequestDma3Fill - strh r0, [r4, #0xa] - b _080CBCCC - .align 2, 0 -_080CBC50: .4byte gUnknown_20399A8 -_080CBC54: .4byte 0x000002D2 -_080CBC58: .4byte 0x00004AC4 -_080CBC5C: - movs r1, #0xa - ldrsh r0, [r4, r1] - bl CheckForSpaceForDma3Request - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080CBCD2 - ldr r0, _080CBC88 - ldr r1, [r0] - ldr r2, _080CBC8C - adds r1, r1, r2 - movs r0, #2 - bl SetBgTilemapBuffer - movs r0, #2 - bl ShowBg - b _080CBCCC - .align 2, 0 -_080CBC88: .4byte gUnknown_20399A8 -_080CBC8C: .4byte 0x00004AC4 -_080CBC90: - ldrb r0, [r4, #0xc] - movs r1, #0 - bl LoadWallpaperGfx - b _080CBCCC -_080CBC9A: - bl WaitForWallpaperGfxLoad - cmp r0, #0 - beq _080CBCD2 - ldrb r0, [r4, #0xc] - bl sub_080CC3C4 - bl sub_080CC8A8 - ldrb r0, [r4, #0xc] - bl sub_080CA89C - ldr r1, _080CBCBC - movs r0, #0xc - bl SetGpuReg - b _080CBCCC - .align 2, 0 -_080CBCBC: .4byte 0x00005B0A -_080CBCC0: - adds r0, r2, #0 - bl DestroyTask - b _080CBCCC -_080CBCC8: - movs r0, #0 - b _080CBCD0 -_080CBCCC: - ldrh r0, [r4, #8] - adds r0, #1 -_080CBCD0: - strh r0, [r4, #8] -_080CBCD2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080CBBE4 - - thumb_func_start SetUpScrollToBox -SetUpScrollToBox: @ 0x080CBCD8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - mov r8, r4 - adds r0, r4, #0 - bl sub_080CBEB8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r6, r0, #0 - ldr r5, _080CBD9C - ldr r2, [r5] - lsls r0, r6, #0x18 - asrs r3, r0, #0x18 - movs r0, #6 - rsbs r0, r0, #0 - adds r1, r0, #0 - cmp r3, #0 - ble _080CBD04 - movs r1, #6 -_080CBD04: - ldr r7, _080CBDA0 - adds r0, r2, r7 - strh r1, [r0] - movs r1, #2 - cmp r3, #0 - ble _080CBD12 - movs r1, #1 -_080CBD12: - ldr r7, _080CBDA4 - adds r0, r2, r7 - strb r1, [r0] - ldr r2, [r5] - movs r0, #0xb4 - lsls r0, r0, #2 - adds r1, r2, r0 - movs r0, #0x20 - strh r0, [r1] - movs r1, #0xb5 - lsls r1, r1, #2 - adds r0, r2, r1 - strb r4, [r0] - ldr r2, [r5] - movs r1, #0 - cmp r3, #0 - bgt _080CBD36 - movs r1, #5 -_080CBD36: - ldr r4, _080CBDA8 - adds r0, r2, r4 - strh r1, [r0] - movs r7, #0xb6 - lsls r7, r7, #2 - adds r0, r2, r7 - strh r3, [r0] - movs r1, #0x38 - cmp r3, #0 - ble _080CBD50 - movs r0, #0x84 - lsls r0, r0, #1 - adds r1, r0, #0 -_080CBD50: - ldr r4, _080CBDAC - adds r0, r2, r4 - strh r1, [r0] - movs r1, #0 - cmp r3, #0 - bgt _080CBD5E - movs r1, #5 -_080CBD5E: - movs r7, #0xb7 - lsls r7, r7, #2 - adds r0, r2, r7 - strh r1, [r0] - ldr r0, _080CBDB0 - adds r1, r2, r0 - movs r0, #0 - strh r0, [r1] - movs r3, #0xb8 - lsls r3, r3, #2 - adds r1, r2, r3 - movs r0, #2 - strh r0, [r1] - ldr r4, _080CBDB4 - adds r0, r2, r4 - mov r7, r8 - strb r7, [r0] - ldr r0, [r5] - ldr r1, _080CBDB8 - adds r0, r0, r1 - strb r6, [r0] - ldr r0, [r5] - ldr r3, _080CBDBC - adds r0, r0, r3 - movs r1, #0 - strb r1, [r0] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080CBD9C: .4byte gUnknown_20399A8 -_080CBDA0: .4byte 0x000002CE -_080CBDA4: .4byte 0x000002D3 -_080CBDA8: .4byte 0x000002D6 -_080CBDAC: .4byte 0x000002DA -_080CBDB0: .4byte 0x000002DE -_080CBDB4: .4byte 0x00000A64 -_080CBDB8: .4byte 0x00000A65 -_080CBDBC: .4byte 0x00000A63 - thumb_func_end SetUpScrollToBox - - thumb_func_start ScrollToBox -ScrollToBox: @ 0x080CBDC0 - push {r4, r5, r6, lr} - ldr r4, _080CBDDC - ldr r1, [r4] - ldr r5, _080CBDE0 - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, #1 - beq _080CBE08 - cmp r0, #1 - bgt _080CBDE4 - cmp r0, #0 - beq _080CBDEA - b _080CBE98 - .align 2, 0 -_080CBDDC: .4byte gUnknown_20399A8 -_080CBDE0: .4byte 0x00000A63 -_080CBDE4: - cmp r0, #2 - beq _080CBE58 - b _080CBE98 -_080CBDEA: - ldr r2, _080CBE4C - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, #1 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - bl LoadWallpaperGfx - ldr r1, [r4] - adds r1, r1, r5 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_080CBE08: - bl WaitForWallpaperGfxLoad - cmp r0, #0 - beq _080CBEA6 - ldr r6, _080CBE50 - ldr r1, [r6] - ldr r4, _080CBE4C - adds r0, r1, r4 - ldrb r0, [r0] - ldr r5, _080CBE54 - adds r1, r1, r5 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - bl sub_080CAD40 - ldr r1, [r6] - adds r4, r1, r4 - ldrb r0, [r4] - adds r1, r1, r5 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - bl sub_080CC57C - ldr r0, [r6] - adds r0, r0, r5 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - bl sub_080CC934 - b _080CBE98 - .align 2, 0 -_080CBE4C: .4byte 0x00000A64 -_080CBE50: .4byte gUnknown_20399A8 -_080CBE54: .4byte 0x00000A65 -_080CBE58: - bl sub_080CADF8 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r2, [r4] - movs r4, #0xb4 - lsls r4, r4, #2 - adds r3, r2, r4 - ldrh r0, [r3] - cmp r0, #0 - beq _080CBE94 - movs r0, #0xb3 - lsls r0, r0, #2 - adds r1, r2, r0 - subs r4, #2 - adds r0, r2, r4 - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - ldrh r0, [r3] - subs r0, #1 - strh r0, [r3] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080CBEA6 - bl sub_080CC76C - bl sub_080CC9D4 -_080CBE94: - adds r0, r5, #0 - b _080CBEA8 -_080CBE98: - ldr r0, _080CBEB0 - ldr r1, [r0] - ldr r4, _080CBEB4 - adds r1, r1, r4 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_080CBEA6: - movs r0, #1 -_080CBEA8: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080CBEB0: .4byte gUnknown_20399A8 -_080CBEB4: .4byte 0x00000A63 - thumb_func_end ScrollToBox - - thumb_func_start sub_080CBEB8 -sub_080CBEB8: @ 0x080CBEB8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl sub_080D15AC - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r2, #0 - cmp r1, r4 - beq _080CBEE2 -_080CBECC: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xd - bls _080CBED8 - movs r1, #0 -_080CBED8: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r1, r4 - bne _080CBECC -_080CBEE2: - movs r0, #1 - rsbs r0, r0, #0 - cmp r2, #6 - bhi _080CBEEC - movs r0, #1 -_080CBEEC: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080CBEB8 - - thumb_func_start SetWallpaperForCurrentBox -SetWallpaperForCurrentBox: @ 0x080CBEF4 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_080D15AC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r4, #0 - bl SetBoxWallpaper - ldr r0, _080CBF1C - ldr r0, [r0] - ldr r1, _080CBF20 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CBF1C: .4byte gUnknown_20399A8 -_080CBF20: .4byte 0x00000A62 - thumb_func_end SetWallpaperForCurrentBox - - thumb_func_start DoWallpaperGfxChange -DoWallpaperGfxChange: @ 0x080CBF24 - push {r4, lr} - sub sp, #4 - ldr r1, _080CBF44 - ldr r0, [r1] - ldr r2, _080CBF48 - adds r0, r0, r2 - ldrb r0, [r0] - adds r4, r1, #0 - cmp r0, #4 - bhi _080CC008 - lsls r0, r0, #2 - ldr r1, _080CBF4C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080CBF44: .4byte gUnknown_20399A8 -_080CBF48: .4byte 0x00000A62 -_080CBF4C: .4byte _080CBF50 -_080CBF50: @ jump table - .4byte _080CBF64 @ case 0 - .4byte _080CBF8C @ case 1 - .4byte _080CBFA6 @ case 2 - .4byte _080CBFE0 @ case 3 - .4byte _080CC004 @ case 4 -_080CBF64: - ldr r0, [r4] - movs r1, #0xe7 - lsls r1, r1, #3 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _080CBF84 - str r1, [sp] - movs r1, #1 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, [r4] - ldr r2, _080CBF88 - adds r1, r1, r2 - b _080CBFF2 - .align 2, 0 -_080CBF84: .4byte 0x0000FFFF -_080CBF88: .4byte 0x00000A62 -_080CBF8C: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080CC008 - bl sub_080D15AC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl LoadWallpaperGfx - b _080CBFEA -_080CBFA6: - bl WaitForWallpaperGfxLoad - cmp r0, #1 - bne _080CC008 - bl sub_080CC828 - ldr r4, _080CBFD4 - ldr r0, [r4] - movs r1, #0xe7 - lsls r1, r1, #3 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _080CBFD8 - str r1, [sp] - movs r1, #1 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r1, [r4] - ldr r2, _080CBFDC - adds r1, r1, r2 - b _080CBFF2 - .align 2, 0 -_080CBFD4: .4byte gUnknown_20399A8 -_080CBFD8: .4byte 0x0000FFFF -_080CBFDC: .4byte 0x00000A62 -_080CBFE0: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080CC008 -_080CBFEA: - ldr r0, _080CBFFC - ldr r1, [r0] - ldr r0, _080CC000 - adds r1, r1, r0 -_080CBFF2: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080CC008 - .align 2, 0 -_080CBFFC: .4byte gUnknown_20399A8 -_080CC000: .4byte 0x00000A62 -_080CC004: - movs r0, #0 - b _080CC00A -_080CC008: - movs r0, #1 -_080CC00A: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end DoWallpaperGfxChange - - thumb_func_start LoadWallpaperGfx -LoadWallpaperGfx: @ 0x080CC014 - push {r4, r5, r6, r7, lr} - sub sp, #8 - ldr r4, _080CC0C8 - ldr r2, [r4] - ldr r3, _080CC0CC - adds r2, r2, r3 - movs r3, #0 - strb r3, [r2] - ldr r2, [r4] - ldr r3, _080CC0D0 - adds r2, r2, r3 - strb r0, [r2] - ldr r0, [r4] - ldr r2, _080CC0D4 - adds r0, r0, r2 - strb r1, [r0] - ldr r1, [r4] - adds r2, r1, r2 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - beq _080CC05A - movs r3, #0 - ldr r0, _080CC0D8 - adds r2, r1, r0 - ldrb r0, [r2] - cmp r0, #0 - bne _080CC04E - movs r3, #1 -_080CC04E: - strb r3, [r2] - ldr r0, [r4] - ldr r1, _080CC0DC - adds r0, r0, r1 - bl sub_080CC354 -_080CC05A: - ldr r7, _080CC0C8 - ldr r0, [r7] - ldr r2, _080CC0D0 - adds r0, r0, r2 - ldrb r0, [r0] - bl GetBoxWallpaper - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x10 - beq _080CC138 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080CC0E0 - adds r6, r0, r1 - ldr r0, [r6, #4] - ldr r1, [r7] - ldr r5, _080CC0E4 - adds r1, r1, r5 - bl LZ77UnCompWram - ldr r0, [r7] - adds r5, r0, r5 - ldr r4, _080CC0D4 - adds r1, r0, r4 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - ldr r3, _080CC0D8 - adds r0, r0, r3 - ldrb r2, [r0] - adds r0, r5, #0 - bl sub_080CC2B0 - ldr r1, [r7] - adds r4, r1, r4 - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #0 - beq _080CC0E8 - ldr r0, [r6, #8] - ldr r2, _080CC0D8 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #0x15 - movs r3, #0x80 - lsls r3, r3, #0xf - adds r1, r1, r3 - lsrs r1, r1, #0x10 - movs r2, #0x40 - bl LoadPalette - b _080CC0FC - .align 2, 0 -_080CC0C8: .4byte gUnknown_20399A8 -_080CC0CC: .4byte 0x000006F9 -_080CC0D0: .4byte 0x000006FA -_080CC0D4: .4byte 0x000006FB -_080CC0D8: .4byte 0x000002D2 -_080CC0DC: .4byte 0x00004AC4 -_080CC0E0: .4byte gUnknown_8551868 -_080CC0E4: .4byte 0x00000792 -_080CC0E8: - ldr r0, [r6, #8] - ldr r2, _080CC128 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #6 - ldr r2, _080CC12C - adds r1, r1, r2 - movs r2, #0x20 - bl CpuSet -_080CC0FC: - ldr r0, [r6] - mov r1, sp - bl malloc_and_decompress - adds r1, r0, #0 - ldr r0, _080CC130 - ldr r3, [r0] - ldr r2, _080CC134 - adds r0, r3, r2 - str r1, [r0] - ldr r2, [sp] - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldr r0, _080CC128 - adds r3, r3, r0 - ldrb r3, [r3] - lsls r3, r3, #8 - movs r0, #2 - bl LoadBgTiles - b _080CC24E - .align 2, 0 -_080CC128: .4byte 0x000002D2 -_080CC12C: .4byte gUnknown_2037434 -_080CC130: .4byte gUnknown_20399A8 -_080CC134: .4byte 0x00000A68 -_080CC138: - bl sub_080D1D48 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _080CC1BC - adds r6, r1, r0 - ldr r0, [r6, #4] - ldr r1, [r7] - ldr r4, _080CC1C0 - adds r1, r1, r4 - bl LZ77UnCompWram - ldr r2, [r7] - adds r0, r2, r4 - ldr r5, _080CC1C4 - adds r1, r2, r5 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - ldr r3, _080CC1C8 - adds r2, r2, r3 - ldrb r2, [r2] - bl sub_080CC2B0 - ldr r0, [r6, #8] - ldr r1, [r7] - adds r1, r1, r4 - movs r2, #0x20 - bl CpuSet - bl sub_080D1DB0 - ldr r1, [r7] - ldr r2, _080CC1CC - adds r1, r1, r2 - movs r2, #2 - bl CpuSet - bl sub_080D1DB0 - ldr r1, [r7] - ldr r3, _080CC1D0 - adds r1, r1, r3 - movs r2, #2 - bl CpuSet - ldr r1, [r7] - adds r5, r1, r5 - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, #0 - beq _080CC1D4 - adds r0, r1, r4 - ldr r2, _080CC1C8 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #0x15 - movs r3, #0x80 - lsls r3, r3, #0xf - adds r1, r1, r3 - lsrs r1, r1, #0x10 - movs r2, #0x40 - bl LoadPalette - b _080CC1EA - .align 2, 0 -_080CC1BC: .4byte gUnknown_8555A40 -_080CC1C0: .4byte 0x00000792 -_080CC1C4: .4byte 0x000006FB -_080CC1C8: .4byte 0x000002D2 -_080CC1CC: .4byte 0x00000794 -_080CC1D0: .4byte 0x000007B4 -_080CC1D4: - ldr r2, _080CC25C - adds r0, r1, r2 - ldr r3, _080CC260 - adds r1, r1, r3 - ldrb r1, [r1] - lsls r1, r1, #6 - ldr r2, _080CC264 - adds r1, r1, r2 - movs r2, #0x20 - bl CpuSet -_080CC1EA: - ldr r0, [r6] - mov r1, sp - bl malloc_and_decompress - ldr r6, _080CC268 - ldr r1, [r6] - ldr r5, _080CC26C - adds r1, r1, r5 - str r0, [r1] - ldr r4, _080CC270 - bl sub_080D1D7C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r0, [r0] - add r1, sp, #4 - bl malloc_and_decompress - adds r4, r0, #0 - ldr r0, [r6] - adds r0, r0, r5 - ldr r1, [r0] - movs r0, #0x80 - lsls r0, r0, #4 - adds r1, r1, r0 - ldr r2, [sp, #4] - lsls r2, r2, #9 - lsrs r2, r2, #0xb - movs r0, #0x80 - lsls r0, r0, #0x13 - orrs r2, r0 - adds r0, r4, #0 - bl CpuSet - adds r0, r4, #0 - bl Free - ldr r0, [r6] - adds r5, r0, r5 - ldr r1, [r5] - ldr r2, [sp] - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldr r3, _080CC260 - adds r0, r0, r3 - ldrb r3, [r0] - lsls r3, r3, #8 - movs r0, #2 - bl LoadBgTiles -_080CC24E: - movs r0, #2 - bl CopyBgTilemapBufferToVram - add sp, #8 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080CC25C: .4byte 0x00000792 -_080CC260: .4byte 0x000002D2 -_080CC264: .4byte gUnknown_2037434 -_080CC268: .4byte gUnknown_20399A8 -_080CC26C: .4byte 0x00000A68 -_080CC270: .4byte gUnknown_8555B00 - thumb_func_end LoadWallpaperGfx - - thumb_func_start WaitForWallpaperGfxLoad -WaitForWallpaperGfxLoad: @ 0x080CC274 - push {r4, r5, lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - beq _080CC286 - movs r0, #0 - b _080CC2A2 -_080CC286: - ldr r5, _080CC2A8 - ldr r0, [r5] - ldr r1, _080CC2AC - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #0 - beq _080CC2A0 - bl Free - ldr r0, [r5] - ldr r1, _080CC2AC - adds r0, r0, r1 - str r4, [r0] -_080CC2A0: - movs r0, #1 -_080CC2A2: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080CC2A8: .4byte gUnknown_20399A8 -_080CC2AC: .4byte 0x00000A68 - thumb_func_end WaitForWallpaperGfxLoad - - thumb_func_start sub_080CC2B0 -sub_080CC2B0: @ 0x080CC2B0 - push {r4, r5, r6, r7, lr} - sub sp, #0x24 - adds r5, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r4, r2, #0x11 - ldr r0, _080CC320 - ldr r0, [r0] - movs r3, #0xb3 - lsls r3, r3, #2 - adds r0, r0, r3 - ldrh r3, [r0] - lsrs r3, r3, #3 - adds r3, #0xa - lsls r1, r1, #0x18 - asrs r7, r1, #0x18 - lsls r0, r7, #1 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r6, r3, r0 - movs r0, #0x3f - ands r6, r0 - movs r3, #0x14 - str r3, [sp] - movs r1, #0x12 - str r1, [sp, #4] - str r6, [sp, #8] - movs r0, #2 - str r0, [sp, #0xc] - str r3, [sp, #0x10] - str r1, [sp, #0x14] - movs r0, #0x11 - str r0, [sp, #0x18] - lsls r2, r2, #0x18 - asrs r2, r2, #0x10 - str r2, [sp, #0x1c] - movs r0, #0xc0 - lsls r0, r0, #0xa - adds r4, r4, r0 - asrs r4, r4, #0x10 - str r4, [sp, #0x20] - movs r0, #2 - adds r1, r5, #0 - movs r2, #0 - movs r3, #0 - bl CopyRectToBgTilemapBufferRect - cmp r7, #0 - beq _080CC346 - cmp r7, #0 - ble _080CC324 - lsls r0, r6, #0x10 - movs r1, #0xa0 - lsls r1, r1, #0xd - adds r0, r0, r1 - b _080CC32A - .align 2, 0 -_080CC320: .4byte gUnknown_20399A8 -_080CC324: - lsls r0, r6, #0x10 - ldr r3, _080CC350 - adds r0, r0, r3 -_080CC32A: - lsrs r6, r0, #0x10 - lsls r2, r6, #0x18 - lsrs r2, r2, #0x18 - movs r0, #4 - str r0, [sp] - movs r0, #0x12 - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #2 - movs r1, #0 - movs r3, #2 - bl FillBgTilemapBufferRect -_080CC346: - add sp, #0x24 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080CC350: .4byte 0xFFFC0000 - thumb_func_end sub_080CC2B0 - - thumb_func_start sub_080CC354 -sub_080CC354: @ 0x080CC354 - push {r4, r5, r6, lr} - adds r2, r0, #0 - ldr r0, _080CC380 - ldr r0, [r0] - movs r1, #0xb3 - lsls r1, r1, #2 - adds r0, r0, r1 - ldrh r0, [r0] - lsrs r0, r0, #3 - adds r3, r0, #0 - adds r3, #0x1e - movs r0, #0x3f - ands r3, r0 - adds r0, r3, #0 - cmp r0, #0x1f - bgt _080CC384 - lsls r0, r0, #1 - movs r6, #0x98 - lsls r6, r6, #3 - adds r0, r0, r6 - b _080CC38C - .align 2, 0 -_080CC380: .4byte gUnknown_20399A8 -_080CC384: - lsls r0, r0, #1 - movs r1, #0xc8 - lsls r1, r1, #4 - adds r0, r0, r1 -_080CC38C: - adds r2, r2, r0 - movs r0, #0 - movs r5, #0 - movs r4, #0x3f -_080CC394: - strh r5, [r2] - adds r2, #2 - adds r3, #1 - ands r3, r4 - adds r1, r3, #0 - cmp r1, #0 - bne _080CC3A6 - ldr r6, _080CC3C0 - adds r2, r2, r6 -_080CC3A6: - cmp r1, #0x20 - bne _080CC3B0 - movs r1, #0xf8 - lsls r1, r1, #3 - adds r2, r2, r1 -_080CC3B0: - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x2b - bls _080CC394 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080CC3C0: .4byte 0xFFFFF7C0 - thumb_func_end sub_080CC354 - - thumb_func_start sub_080CC3C4 -sub_080CC3C4: @ 0x080CC3C4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x30 - mov r8, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r1, _080CC550 - mov sl, r1 - ldr r1, [r1] - movs r2, #0xbe - lsls r2, r2, #2 - adds r0, r1, r2 - str r0, [sp, #0x24] - mov r3, sp - adds r3, #0x24 - str r3, [sp, #0x2c] - ldr r0, _080CC554 - str r0, [r3, #4] - ldr r4, _080CC558 - adds r1, r1, r4 - str r1, [sp, #0x14] - add r0, sp, #0x18 - ldr r7, _080CC55C - strh r7, [r0] - add r0, sp, #0x1c - movs r1, #0 - movs r2, #8 - bl memset - add r1, sp, #0x14 - add r0, sp, #4 - movs r2, #0x10 - bl memcpy - mov r0, r8 - bl GetBoxWallpaper - lsls r0, r0, #0x18 - mov r5, sl - ldr r4, [r5] - ldr r2, _080CC560 - lsrs r0, r0, #0x16 - adds r1, r0, r2 - ldrh r3, [r1] - movs r5, #0xe3 - lsls r5, r5, #3 - adds r1, r4, r5 - strh r3, [r1] - adds r2, #2 - adds r0, r0, r2 - ldrh r0, [r0] - ldr r1, _080CC564 - adds r4, r4, r1 - strh r0, [r4] - add r0, sp, #4 - bl LoadSpritePalettes - mov r2, sl - ldr r0, [r2] - movs r6, #0xe7 - lsls r6, r6, #3 - adds r0, r0, r6 - movs r1, #0xfc - lsls r1, r1, #2 - str r1, [r0] - adds r0, r7, #0 - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r4, sl - ldr r3, [r4] - lsls r1, r0, #4 - movs r5, #0x87 - lsls r5, r5, #1 - mov sb, r5 - add r1, sb - ldr r4, _080CC568 - adds r2, r3, r4 - strh r1, [r2] - adds r3, r3, r6 - movs r5, #0x80 - lsls r5, r5, #9 - adds r1, r5, #0 - lsls r1, r0 - ldr r0, [r3] - orrs r0, r1 - str r0, [r3] - adds r0, r7, #0 - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, sl - ldr r4, [r1] - lsls r1, r0, #4 - add r1, sb - ldr r3, _080CC56C - adds r2, r4, r3 - strh r1, [r2] - adds r6, r4, r6 - lsls r5, r0 - ldr r0, [r6] - orrs r0, r5 - str r0, [r6] - ldr r5, _080CC570 - adds r4, r4, r5 - mov r0, r8 - bl GetBoxNamePtr - adds r1, r0, #0 - adds r0, r4, #0 - movs r2, #0 - movs r3, #8 - bl StringCopyPadded - mov r4, sl - ldr r0, [r4] - adds r5, r0, r5 - movs r2, #0xbe - lsls r2, r2, #2 - adds r1, r0, r2 - movs r3, #0x9f - lsls r3, r3, #3 - adds r0, r0, r3 - str r0, [sp] - adds r0, r5, #0 - movs r2, #0 - movs r3, #0 - bl sub_080C66A4 - ldr r0, [sp, #0x2c] - bl LoadSpriteSheet - mov r0, r8 - bl GetBoxNamePtr - bl StringLength - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_080CC898 - movs r4, #0 - lsls r0, r0, #0x10 - asrs r6, r0, #0x10 -_080CC4F0: - lsls r1, r4, #5 - adds r1, r6, r1 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldr r0, _080CC574 - movs r2, #0x1c - movs r3, #0x18 - bl CreateSprite - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r5, _080CC550 - ldr r2, [r5] - lsls r0, r4, #2 - movs r3, #0xe4 - lsls r3, r3, #3 - adds r2, r2, r3 - adds r2, r2, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080CC578 - adds r0, r0, r1 - str r0, [r2] - lsls r1, r4, #0x18 - lsrs r1, r1, #0x18 - bl StartSpriteAnim - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #1 - bls _080CC4F0 - ldr r0, [r5] - movs r4, #0xdf - lsls r4, r4, #3 - adds r0, r0, r4 - movs r1, #0 - strb r1, [r0] - add sp, #0x30 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080CC550: .4byte gUnknown_20399A8 -_080CC554: .4byte 0x00030200 -_080CC558: .4byte 0x000006FC -_080CC55C: .4byte 0x0000DAC9 -_080CC560: .4byte gUnknown_8551824 -_080CC564: .4byte 0x0000071A -_080CC568: .4byte 0x0000071C -_080CC56C: .4byte 0x0000071E -_080CC570: .4byte 0x000021B8 -_080CC574: .4byte gUnknown_8555BA4 -_080CC578: .4byte gUnknown_20205AC - thumb_func_end sub_080CC3C4 - - thumb_func_start sub_080CC57C -sub_080CC57C: @ 0x080CC57C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x2c - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x28] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sl, r1 - ldr r4, _080CC5F8 - ldr r2, [r4] - movs r1, #0xbe - lsls r1, r1, #2 - adds r0, r2, r1 - str r0, [sp, #0x1c] - add r3, sp, #0x1c - ldr r5, _080CC5FC - mov ip, r5 - movs r6, #0xc0 - lsls r6, r6, #0xa - mov sb, r6 - ldr r0, _080CC600 - str r0, [r3, #4] - add r1, sp, #4 - ldr r0, _080CC604 - ldm r0!, {r5, r6, r7} - stm r1!, {r5, r6, r7} - ldm r0!, {r5, r6, r7} - stm r1!, {r5, r6, r7} - movs r1, #0 - movs r5, #0xdf - lsls r5, r5, #3 - adds r2, r2, r5 - ldrb r0, [r2] - mov r8, r4 - adds r6, r3, #0 - cmp r0, #0 - bne _080CC5D0 - movs r1, #1 -_080CC5D0: - strb r1, [r2] - mov r7, r8 - ldr r0, [r7] - adds r0, r0, r5 - ldrb r0, [r0] - cmp r0, #0 - bne _080CC60C - ldr r0, [r6, #4] - mov r1, ip - ands r0, r1 - mov r2, sb - orrs r0, r2 - str r0, [r6, #4] - ldr r0, [r7] - ldr r3, _080CC608 - adds r0, r0, r3 - ldrh r0, [r0] - mov sb, r0 - b _080CC630 - .align 2, 0 -_080CC5F8: .4byte gUnknown_20399A8 -_080CC5FC: .4byte 0x0000FFFF -_080CC600: .4byte 0x00030200 -_080CC604: .4byte gUnknown_8555BA4 -_080CC608: .4byte 0x0000071C -_080CC60C: - ldr r0, [r6, #4] - mov r5, ip - ands r0, r5 - movs r1, #0x80 - lsls r1, r1, #0xb - orrs r0, r1 - str r0, [r6, #4] - mov r7, r8 - ldr r0, [r7] - ldr r1, _080CC750 - adds r0, r0, r1 - ldrh r0, [r0] - mov sb, r0 - add r1, sp, #4 - movs r0, #4 - strh r0, [r1] - ldr r0, _080CC754 - strh r0, [r1, #2] -_080CC630: - mov r2, r8 - ldr r4, [r2] - ldr r5, _080CC758 - adds r4, r4, r5 - ldr r0, [sp, #0x28] - bl GetBoxNamePtr - adds r1, r0, #0 - adds r0, r4, #0 - movs r2, #0 - movs r3, #8 - bl StringCopyPadded - mov r3, r8 - ldr r0, [r3] - adds r5, r0, r5 - movs r7, #0xbe - lsls r7, r7, #2 - adds r1, r0, r7 - movs r2, #0x9f - lsls r2, r2, #3 - adds r0, r0, r2 - str r0, [sp] - adds r0, r5, #0 - movs r2, #0 - movs r3, #0 - bl sub_080C66A4 - adds r0, r6, #0 - bl LoadSpriteSheet - ldr r0, [sp, #0x28] - bl GetBoxWallpaper - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - ldr r1, _080CC75C - adds r0, r0, r1 - mov r1, sb - movs r2, #4 - bl LoadPalette - ldr r0, [sp, #0x28] - bl GetBoxNamePtr - bl StringLength - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_080CC898 - lsls r0, r0, #0x10 - mov r3, sl - lsls r2, r3, #0x18 - asrs r2, r2, #0x18 - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #6 - lsrs r5, r0, #0x10 - str r5, [sp, #0x24] - asrs r0, r0, #0x10 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sl, r0 - movs r7, #0 - mov sb, r8 - rsbs r2, r2, #0 - mov r8, r2 -_080CC6BA: - lsls r6, r7, #5 - mov r0, sl - lsls r1, r0, #0x10 - asrs r1, r1, #0x10 - adds r1, r1, r6 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - add r0, sp, #4 - movs r2, #0x1c - movs r3, #0x18 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, sb - ldr r2, [r1] - lsls r5, r7, #2 - movs r3, #0xe5 - lsls r3, r3, #3 - adds r2, r2, r3 - adds r2, r2, r5 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _080CC760 - adds r1, r1, r0 - str r1, [r2] - mov r0, r8 - lsls r4, r0, #1 - add r4, r8 - lsls r4, r4, #1 - strh r4, [r1, #0x2e] - ldr r1, [r2] - ldr r3, [sp, #0x24] - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - adds r0, r0, r6 - strh r0, [r1, #0x30] - ldr r0, [r2] - movs r6, #0 - strh r6, [r0, #0x32] - ldr r0, [r2] - ldr r1, _080CC764 - str r1, [r0, #0x1c] - lsls r1, r7, #0x18 - lsrs r1, r1, #0x18 - bl StartSpriteAnim - mov r1, sb - ldr r0, [r1] - movs r2, #0xe4 - lsls r2, r2, #3 - adds r0, r0, r2 - adds r0, r0, r5 - ldr r1, [r0] - strh r4, [r1, #0x2e] - ldr r2, [r0] - movs r1, #1 - strh r1, [r2, #0x30] - ldr r1, [r0] - ldr r0, _080CC768 - str r0, [r1, #0x1c] - adds r0, r7, #1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - cmp r7, #1 - bls _080CC6BA - add sp, #0x2c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080CC750: .4byte 0x0000071C -_080CC754: .4byte 0x0000DAC9 -_080CC758: .4byte 0x000021B8 -_080CC75C: .4byte gUnknown_8551824 -_080CC760: .4byte gUnknown_20205AC -_080CC764: .4byte sub_080CC7BC -_080CC768: .4byte sub_080CC7F0 - thumb_func_end sub_080CC57C - - thumb_func_start sub_080CC76C -sub_080CC76C: @ 0x080CC76C - push {lr} - ldr r0, _080CC788 - ldr r0, [r0] - movs r1, #0xdf - lsls r1, r1, #3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080CC78C - movs r0, #4 - bl FreeSpriteTilesByTag - b _080CC792 - .align 2, 0 -_080CC788: .4byte gUnknown_20399A8 -_080CC78C: - movs r0, #3 - bl FreeSpriteTilesByTag -_080CC792: - ldr r0, _080CC7B4 - ldr r0, [r0] - movs r3, #0xe4 - lsls r3, r3, #3 - adds r2, r0, r3 - adds r3, #8 - adds r1, r0, r3 - ldr r1, [r1] - str r1, [r2] - ldr r2, _080CC7B8 - adds r1, r0, r2 - adds r3, #4 - adds r0, r0, r3 - ldr r0, [r0] - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080CC7B4: .4byte gUnknown_20399A8 -_080CC7B8: .4byte 0x00000724 - thumb_func_end sub_080CC76C - - thumb_func_start sub_080CC7BC -sub_080CC7BC: @ 0x080CC7BC - push {lr} - adds r2, r0, #0 - ldrh r1, [r2, #0x32] - movs r3, #0x32 - ldrsh r0, [r2, r3] - cmp r0, #0 - beq _080CC7D0 - subs r0, r1, #1 - strh r0, [r2, #0x32] - b _080CC7E8 -_080CC7D0: - ldrh r0, [r2, #0x2e] - ldrh r1, [r2, #0x20] - adds r0, r0, r1 - strh r0, [r2, #0x20] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r3, #0x30 - ldrsh r1, [r2, r3] - cmp r0, r1 - bne _080CC7E8 - ldr r0, _080CC7EC - str r0, [r2, #0x1c] -_080CC7E8: - pop {r0} - bx r0 - .align 2, 0 -_080CC7EC: .4byte sub_08007140 - thumb_func_end sub_080CC7BC - - thumb_func_start sub_080CC7F0 -sub_080CC7F0: @ 0x080CC7F0 - push {lr} - adds r2, r0, #0 - ldrh r1, [r2, #0x30] - movs r3, #0x30 - ldrsh r0, [r2, r3] - cmp r0, #0 - beq _080CC804 - subs r0, r1, #1 - strh r0, [r2, #0x30] - b _080CC822 -_080CC804: - ldrh r0, [r2, #0x2e] - ldrh r1, [r2, #0x20] - adds r0, r0, r1 - strh r0, [r2, #0x20] - ldrh r1, [r2, #0x24] - adds r0, r0, r1 - strh r0, [r2, #0x32] - subs r0, #0x40 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xc0 - bls _080CC822 - adds r0, r2, #0 - bl DestroySprite -_080CC822: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080CC7F0 - - thumb_func_start sub_080CC828 -sub_080CC828: @ 0x080CC828 - push {lr} - bl sub_080D15AC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBoxWallpaper - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r0, _080CC864 - ldr r2, [r0] - movs r3, #0xdf - lsls r3, r3, #3 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r0, #0 - bne _080CC870 - lsls r0, r1, #2 - ldr r1, _080CC868 - adds r0, r0, r1 - adds r3, #0x24 - adds r1, r2, r3 - ldrh r1, [r1] - lsls r1, r1, #1 - ldr r2, _080CC86C - adds r1, r1, r2 - movs r2, #2 - bl CpuSet - b _080CC888 - .align 2, 0 -_080CC864: .4byte gUnknown_20399A8 -_080CC868: .4byte gUnknown_8551824 -_080CC86C: .4byte gUnknown_20373B4 -_080CC870: - lsls r0, r1, #2 - ldr r1, _080CC88C - adds r0, r0, r1 - ldr r3, _080CC890 - adds r1, r2, r3 - ldrh r1, [r1] - lsls r1, r1, #1 - ldr r2, _080CC894 - adds r1, r1, r2 - movs r2, #2 - bl CpuSet -_080CC888: - pop {r0} - bx r0 - .align 2, 0 -_080CC88C: .4byte gUnknown_8551824 -_080CC890: .4byte 0x0000071E -_080CC894: .4byte gUnknown_20373B4 - thumb_func_end sub_080CC828 - - thumb_func_start sub_080CC898 -sub_080CC898: @ 0x080CC898 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0xe - movs r0, #0xb0 - subs r0, r0, r1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - bx lr - thumb_func_end sub_080CC898 - - thumb_func_start sub_080CC8A8 -sub_080CC8A8: @ 0x080CC8A8 - push {r4, r5, lr} - ldr r0, _080CC924 - bl LoadSpriteSheet - movs r5, #0 -_080CC8B2: - lsls r1, r5, #4 - adds r1, r1, r5 - lsls r1, r1, #0x13 - movs r0, #0xb8 - lsls r0, r0, #0xf - adds r1, r1, r0 - asrs r1, r1, #0x10 - ldr r0, _080CC928 - movs r2, #0x1c - movs r3, #0x16 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x40 - beq _080CC904 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080CC92C - adds r4, r0, r1 - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim - movs r0, #1 - cmp r5, #0 - bne _080CC8F2 - movs r1, #1 - rsbs r1, r1, #0 - adds r0, r1, #0 -_080CC8F2: - strh r0, [r4, #0x34] - ldr r0, _080CC930 - ldr r0, [r0] - lsls r1, r5, #2 - movs r2, #0xe6 - lsls r2, r2, #3 - adds r0, r0, r2 - adds r0, r0, r1 - str r4, [r0] -_080CC904: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #1 - bls _080CC8B2 - bl IsCursorOnBox - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080CC91E - movs r0, #1 - bl sub_080CCA24 -_080CC91E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080CC924: .4byte gUnknown_8555B7C -_080CC928: .4byte gUnknown_8555BDC -_080CC92C: .4byte gUnknown_20205AC -_080CC930: .4byte gUnknown_20399A8 - thumb_func_end sub_080CC8A8 - - thumb_func_start sub_080CC934 -sub_080CC934: @ 0x080CC934 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r2, #0 - ldr r7, _080CC988 - mov ip, r7 - movs r6, #0xe6 - lsls r6, r6, #3 - movs r4, #0 - movs r3, #2 -_080CC948: - mov r0, ip - ldr r1, [r0] - lsls r0, r2, #2 - adds r1, r1, r6 - adds r1, r1, r0 - ldr r0, [r1] - strh r4, [r0, #0x24] - ldr r0, [r1] - strh r3, [r0, #0x2e] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #1 - bls _080CC948 - lsls r0, r5, #0x18 - cmp r0, #0 - bge _080CC990 - ldr r1, [r7] - movs r2, #0xe6 - lsls r2, r2, #3 - adds r3, r1, r2 - ldr r2, [r3] - movs r0, #0x1d - strh r0, [r2, #0x30] - ldr r0, _080CC98C - adds r1, r1, r0 - ldr r2, [r1] - movs r0, #5 - strh r0, [r2, #0x30] - ldr r0, [r3] - movs r2, #0x48 - b _080CC9AC - .align 2, 0 -_080CC988: .4byte gUnknown_20399A8 -_080CC98C: .4byte 0x00000734 -_080CC990: - ldr r1, [r7] - movs r2, #0xe6 - lsls r2, r2, #3 - adds r3, r1, r2 - ldr r2, [r3] - movs r0, #5 - strh r0, [r2, #0x30] - ldr r0, _080CC9D0 - adds r1, r1, r0 - ldr r2, [r1] - movs r0, #0x1d - strh r0, [r2, #0x30] - ldr r0, [r3] - movs r2, #0xf8 -_080CC9AC: - strh r2, [r0, #0x32] - ldr r0, [r1] - strh r2, [r0, #0x32] - ldr r1, [r7] - movs r2, #0xe6 - lsls r2, r2, #3 - adds r0, r1, r2 - ldr r2, [r0] - movs r0, #0 - strh r0, [r2, #0x3c] - ldr r0, _080CC9D0 - adds r1, r1, r0 - ldr r1, [r1] - movs r0, #1 - strh r0, [r1, #0x3c] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080CC9D0: .4byte 0x00000734 - thumb_func_end sub_080CC934 - - thumb_func_start sub_080CC9D4 -sub_080CC9D4: @ 0x080CC9D4 - push {r4, r5, r6, lr} - movs r3, #0 - movs r5, #0 - movs r6, #5 - rsbs r6, r6, #0 - ldr r4, _080CCA20 -_080CC9E0: - ldr r1, [r4] - lsls r0, r3, #2 - movs r2, #0xe6 - lsls r2, r2, #3 - adds r1, r1, r2 - adds r1, r1, r0 - ldr r2, [r1] - lsls r0, r3, #4 - adds r0, r0, r3 - lsls r0, r0, #3 - adds r0, #0x5c - strh r0, [r2, #0x20] - ldr r0, [r1] - strh r5, [r0, #0x24] - ldr r1, [r1] - adds r1, #0x3e - ldrb r2, [r1] - adds r0, r6, #0 - ands r0, r2 - strb r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #1 - bls _080CC9E0 - movs r0, #1 - bl sub_080CCA24 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080CCA20: .4byte gUnknown_20399A8 - thumb_func_end sub_080CC9D4 - - thumb_func_start sub_080CCA24 -sub_080CCA24: @ 0x080CCA24 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080CCA60 - movs r2, #0 - ldr r6, _080CCA5C - movs r5, #0xe6 - lsls r5, r5, #3 - movs r3, #0 - movs r4, #1 -_080CCA38: - ldr r1, [r6] - lsls r0, r2, #2 - adds r1, r1, r5 - adds r1, r1, r0 - ldr r0, [r1] - strh r4, [r0, #0x2e] - ldr r0, [r1] - strh r3, [r0, #0x30] - ldr r0, [r1] - strh r3, [r0, #0x32] - ldr r0, [r1] - strh r3, [r0, #0x36] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #1 - bls _080CCA38 - b _080CCA80 - .align 2, 0 -_080CCA5C: .4byte gUnknown_20399A8 -_080CCA60: - movs r2, #0 - ldr r5, _080CCA88 - movs r4, #0xe6 - lsls r4, r4, #3 - movs r3, #0 -_080CCA6A: - ldr r0, [r5] - lsls r1, r2, #2 - adds r0, r0, r4 - adds r0, r0, r1 - ldr r0, [r0] - strh r3, [r0, #0x2e] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #1 - bls _080CCA6A -_080CCA80: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080CCA88: .4byte gUnknown_20399A8 - thumb_func_end sub_080CCA24 - - thumb_func_start sub_080CCA8C -sub_080CCA8C: @ 0x080CCA8C - push {lr} - adds r2, r0, #0 - movs r1, #0x2e - ldrsh r0, [r2, r1] - cmp r0, #4 - bhi _080CCB58 - lsls r0, r0, #2 - ldr r1, _080CCAA4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080CCAA4: .4byte _080CCAA8 -_080CCAA8: @ jump table - .4byte _080CCABC @ case 0 - .4byte _080CCAC2 @ case 1 - .4byte _080CCAF0 @ case 2 - .4byte _080CCAF6 @ case 3 - .4byte _080CCB48 @ case 4 -_080CCABC: - movs r0, #0 - strh r0, [r2, #0x24] - b _080CCB58 -_080CCAC2: - ldrh r0, [r2, #0x30] - adds r0, #1 - movs r1, #0 - strh r0, [r2, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - ble _080CCB58 - strh r1, [r2, #0x30] - ldrh r0, [r2, #0x34] - ldrh r3, [r2, #0x24] - adds r0, r0, r3 - strh r0, [r2, #0x24] - ldrh r0, [r2, #0x32] - adds r0, #1 - strh r0, [r2, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #5 - ble _080CCB58 - strh r1, [r2, #0x32] - strh r1, [r2, #0x24] - b _080CCB58 -_080CCAF0: - movs r0, #3 - strh r0, [r2, #0x2e] - b _080CCB58 -_080CCAF6: - ldr r0, _080CCB40 - ldr r1, [r0] - ldr r0, _080CCB44 - adds r1, r1, r0 - ldrh r0, [r2, #0x20] - ldrh r1, [r1] - subs r0, r0, r1 - strh r0, [r2, #0x20] - subs r0, #0x49 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xae - bls _080CCB1C - adds r3, r2, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r1, #4 - orrs r0, r1 - strb r0, [r3] -_080CCB1C: - ldrh r0, [r2, #0x30] - subs r0, #1 - strh r0, [r2, #0x30] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080CCB58 - ldrh r0, [r2, #0x32] - strh r0, [r2, #0x20] - adds r3, r2, #0 - adds r3, #0x3e - ldrb r1, [r3] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3] - movs r0, #4 - strh r0, [r2, #0x2e] - b _080CCB58 - .align 2, 0 -_080CCB40: .4byte gUnknown_20399A8 -_080CCB44: .4byte 0x000002CE -_080CCB48: - ldr r0, _080CCB5C - ldr r0, [r0] - ldr r1, _080CCB60 - adds r0, r0, r1 - ldrh r1, [r2, #0x20] - ldrh r0, [r0] - subs r1, r1, r0 - strh r1, [r2, #0x20] -_080CCB58: - pop {r0} - bx r0 - .align 2, 0 -_080CCB5C: .4byte gUnknown_20399A8 -_080CCB60: .4byte 0x000002CE - thumb_func_end sub_080CCA8C - - thumb_func_start sub_080CCB64 -sub_080CCB64: @ 0x080CCB64 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - adds r6, r1, #0 - ldr r4, [sp, #0x18] - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r8, r3 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _080CCBD0 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - lsls r6, r6, #0x10 - asrs r6, r6, #0x10 - adds r1, r5, #0 - adds r2, r6, #0 - adds r3, r4, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _080CCBDC - movs r1, #1 - ands r1, r7 - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r5, _080CCBD4 - adds r6, r4, r5 - adds r0, r6, #0 - bl StartSpriteAnim - movs r0, #3 - mov r1, r8 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r6, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r6, #5] - adds r5, #0x1c - adds r4, r4, r5 - ldr r0, _080CCBD8 - str r0, [r4] - adds r0, r6, #0 - b _080CCBDE - .align 2, 0 -_080CCBD0: .4byte gUnknown_8555BDC -_080CCBD4: .4byte gUnknown_20205AC -_080CCBD8: .4byte sub_08007140 -_080CCBDC: - movs r0, #0 -_080CCBDE: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_080CCB64 - - thumb_func_start sub_080CCBE8 -sub_080CCBE8: @ 0x080CCBE8 - push {lr} - ldr r0, _080CCBFC - ldr r0, [r0] - ldrb r1, [r0, #1] - cmp r1, #1 - beq _080CCC04 - ldr r1, _080CCC00 - movs r0, #0 - strb r0, [r1] - b _080CCC08 - .align 2, 0 -_080CCBFC: .4byte gUnknown_20399A8 -_080CCC00: .4byte gUnknown_2039A18 -_080CCC04: - ldr r0, _080CCC44 - strb r1, [r0] -_080CCC08: - ldr r0, _080CCC48 - movs r1, #0 - strb r1, [r0] - ldr r0, _080CCC4C - strb r1, [r0] - ldr r0, _080CCC50 - strb r1, [r0] - ldr r0, _080CCC54 - strb r1, [r0] - ldr r0, _080CCC58 - strb r1, [r0] - bl sub_080CD488 - bl sub_080CF490 - ldr r2, _080CCC5C - ldr r0, [r2] - ldr r1, _080CCC60 - adds r0, r0, r1 - movs r3, #0 - movs r1, #1 - strb r1, [r0] - ldr r0, [r2] - ldr r1, _080CCC64 - adds r0, r0, r1 - strb r3, [r0] - bl sub_080CE3BC - pop {r0} - bx r0 - .align 2, 0 -_080CCC44: .4byte gUnknown_2039A18 -_080CCC48: .4byte gUnknown_2039A19 -_080CCC4C: .4byte gUnknown_2039A1A -_080CCC50: .4byte gUnknown_2039A1B -_080CCC54: .4byte gUnknown_2039A1C -_080CCC58: .4byte gUnknown_2039A1D -_080CCC5C: .4byte gUnknown_20399A8 -_080CCC60: .4byte 0x00000CD6 -_080CCC64: .4byte 0x000021FF - thumb_func_end sub_080CCBE8 - - thumb_func_start sub_080CCC68 -sub_080CCC68: @ 0x080CCC68 - push {lr} - bl sub_080CF490 - bl sub_080CE458 - ldr r3, _080CCCA8 - ldr r0, [r3] - ldr r1, _080CCCAC - adds r0, r0, r1 - movs r2, #0 - movs r1, #1 - strb r1, [r0] - ldr r0, [r3] - ldr r1, _080CCCB0 - adds r0, r0, r1 - strb r2, [r0] - ldr r0, _080CCCB4 - ldrb r0, [r0] - cmp r0, #0 - beq _080CCCA2 - ldr r0, [r3] - ldr r1, _080CCCB8 - adds r0, r0, r1 - ldr r1, _080CCCBC - movs r2, #0x64 - bl memcpy - bl CreateMovingMonIcon -_080CCCA2: - pop {r0} - bx r0 - .align 2, 0 -_080CCCA8: .4byte gUnknown_20399A8 -_080CCCAC: .4byte 0x00000CD6 -_080CCCB0: .4byte 0x000021FF -_080CCCB4: .4byte gUnknown_2039A1A -_080CCCB8: .4byte 0x000020A4 -_080CCCBC: .4byte gUnknown_20399B4 - thumb_func_end sub_080CCC68 - - thumb_func_start sub_080CCCC0 -sub_080CCCC0: @ 0x080CCCC0 - push {r4, r5, r6, lr} - adds r4, r2, #0 - adds r6, r3, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - cmp r0, #4 - bhi _080CCD78 - lsls r0, r0, #2 - ldr r1, _080CCCDC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080CCCDC: .4byte _080CCCE0 -_080CCCE0: @ jump table - .4byte _080CCCF4 @ case 0 - .4byte _080CCD22 @ case 1 - .4byte _080CCD4A @ case 2 - .4byte _080CCD52 @ case 3 - .4byte _080CCD70 @ case 4 -_080CCCF4: - adds r0, r5, #0 - movs r1, #6 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, #0x64 - strh r1, [r4] - adds r0, r5, #0 - movs r1, #6 - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, #0x20 - strh r1, [r6] - b _080CCD78 -_080CCD22: - cmp r5, #0 - bne _080CCD2E - movs r0, #0x68 - strh r0, [r4] - movs r0, #0x34 - b _080CCD76 -_080CCD2E: - cmp r5, #6 - bne _080CCD3A - movs r0, #0x98 - strh r0, [r4] - movs r0, #0x84 - b _080CCD76 -_080CCD3A: - movs r0, #0x98 - strh r0, [r4] - subs r1, r5, #1 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, #4 - b _080CCD76 -_080CCD4A: - movs r0, #0xa2 - strh r0, [r4] - movs r0, #0xc - b _080CCD76 -_080CCD52: - ldr r0, _080CCD6C - ldrb r0, [r0] - movs r1, #0xe - cmp r0, #0 - beq _080CCD5E - movs r1, #8 -_080CCD5E: - strh r1, [r6] - movs r0, #0x58 - muls r0, r5, r0 - adds r0, #0x78 - strh r0, [r4] - b _080CCD78 - .align 2, 0 -_080CCD6C: .4byte gUnknown_2039A1A -_080CCD70: - movs r0, #0xa0 - strh r0, [r4] - movs r0, #0x60 -_080CCD76: - strh r0, [r6] -_080CCD78: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080CCCC0 - - thumb_func_start sub_080CCD80 -sub_080CCD80: @ 0x080CCD80 - push {lr} - ldr r0, _080CCDA8 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _080CCDB4 - cmp r0, #1 - bne _080CCDC8 - ldr r0, _080CCDAC - movs r1, #0 - ldrsb r1, [r0, r1] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080CCDB0 - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - b _080CCDBE - .align 2, 0 -_080CCDA8: .4byte gUnknown_2039A18 -_080CCDAC: .4byte gUnknown_2039A19 -_080CCDB0: .4byte gUnknown_2024190 -_080CCDB4: - ldr r0, _080CCDC4 - ldrb r0, [r0] - movs r1, #0xb - bl GetCurrentBoxMonData -_080CCDBE: - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b _080CCDCA - .align 2, 0 -_080CCDC4: .4byte gUnknown_2039A19 -_080CCDC8: - movs r0, #0 -_080CCDCA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080CCD80 - - thumb_func_start sub_080CCDD0 -sub_080CCDD0: @ 0x080CCDD0 - push {r4, r5, r6, r7, lr} - ldr r7, _080CCDEC - ldr r5, [r7] - movs r0, #0xcd - lsls r0, r0, #4 - adds r1, r5, r0 - ldrh r0, [r1] - cmp r0, #0 - bne _080CCDFA - ldrb r0, [r5, #1] - cmp r0, #3 - beq _080CCDF0 - movs r0, #0 - b _080CCF16 - .align 2, 0 -_080CCDEC: .4byte gUnknown_20399A8 -_080CCDF0: - bl sub_080D0AB8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _080CCF16 -_080CCDFA: - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080CCEF8 - ldr r1, _080CCEE4 - adds r4, r5, r1 - ldr r2, _080CCEE8 - adds r1, r5, r2 - ldr r0, [r4] - ldr r1, [r1] - adds r0, r0, r1 - str r0, [r4] - movs r0, #0xcc - lsls r0, r0, #4 - adds r3, r5, r0 - adds r2, #4 - adds r1, r5, r2 - ldr r0, [r3] - ldr r1, [r1] - adds r0, r0, r1 - str r0, [r3] - ldr r6, _080CCEEC - adds r1, r5, r6 - ldr r2, [r1] - ldr r0, [r4] - asrs r0, r0, #8 - strh r0, [r2, #0x20] - ldr r2, [r1] - ldr r0, [r3] - asrs r0, r0, #8 - strh r0, [r2, #0x22] - ldr r1, [r1] - ldrh r2, [r1, #0x20] - movs r3, #0x20 - ldrsh r0, [r1, r3] - movs r3, #0x80 - lsls r3, r3, #1 - cmp r0, r3 - ble _080CCE56 - ldr r4, _080CCEF0 - adds r0, r2, r4 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r0, #0x40 - strh r0, [r1, #0x20] -_080CCE56: - ldr r0, [r7] - adds r0, r0, r6 - ldr r1, [r0] - ldrh r2, [r1, #0x20] - movs r4, #0x20 - ldrsh r0, [r1, r4] - cmp r0, #0x3f - bgt _080CCE72 - movs r0, #0x40 - subs r0, r0, r2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - subs r0, r3, r0 - strh r0, [r1, #0x20] -_080CCE72: - ldr r0, [r7] - adds r0, r0, r6 - ldr r1, [r0] - ldrh r2, [r1, #0x22] - movs r3, #0x22 - ldrsh r0, [r1, r3] - cmp r0, #0xb0 - ble _080CCE8E - adds r0, r2, #0 - subs r0, #0xb0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - subs r0, #0x10 - strh r0, [r1, #0x22] -_080CCE8E: - ldr r0, [r7] - adds r0, r0, r6 - ldr r2, [r0] - ldrh r3, [r2, #0x22] - movs r4, #0x22 - ldrsh r0, [r2, r4] - movs r1, #0x10 - rsbs r1, r1, #0 - cmp r0, r1 - bge _080CCEAE - subs r0, r1, r3 - movs r1, #0xb0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - subs r1, r1, r0 - strh r1, [r2, #0x22] -_080CCEAE: - ldr r0, [r7] - ldr r2, _080CCEF4 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, #0 - beq _080CCF14 - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080CCF14 - ldr r0, [r7] - adds r0, r0, r6 - ldr r2, [r0] - adds r2, #0x3f - ldrb r3, [r2] - lsrs r1, r3, #1 - movs r0, #1 - eors r1, r0 - ands r1, r0 - lsls r1, r1, #1 - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - b _080CCF14 - .align 2, 0 -_080CCEE4: .4byte 0x00000CBC -_080CCEE8: .4byte 0x00000CC4 -_080CCEEC: .4byte 0x00000CB4 -_080CCEF0: .4byte 0xFFFFFF00 -_080CCEF4: .4byte 0x00000CD7 -_080CCEF8: - ldr r3, _080CCF1C - adds r2, r5, r3 - ldr r1, [r2] - ldr r4, _080CCF20 - adds r0, r5, r4 - ldrh r0, [r0] - strh r0, [r1, #0x20] - ldr r1, [r2] - ldr r2, _080CCF24 - adds r0, r5, r2 - ldrh r0, [r0] - strh r0, [r1, #0x22] - bl sub_080CD2E4 -_080CCF14: - movs r0, #1 -_080CCF16: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080CCF1C: .4byte 0x00000CB4 -_080CCF20: .4byte 0x00000CCC -_080CCF24: .4byte 0x00000CCE - thumb_func_end sub_080CCDD0 - - thumb_func_start sub_080CCF28 -sub_080CCF28: @ 0x080CCF28 - push {r4, r5, r6, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - mov r6, sp - adds r6, #2 - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sp - adds r3, r6, #0 - bl sub_080CCCC0 - ldr r1, _080CCF78 - ldr r0, [r1] - ldr r2, _080CCF7C - adds r0, r0, r2 - strb r4, [r0] - ldr r0, [r1] - ldr r3, _080CCF80 - adds r0, r0, r3 - strb r5, [r0] - ldr r1, [r1] - mov r0, sp - ldrh r2, [r0] - subs r3, #9 - adds r0, r1, r3 - strh r2, [r0] - ldrh r0, [r6] - ldr r2, _080CCF84 - adds r1, r1, r2 - strh r0, [r1] - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080CCF78: .4byte gUnknown_20399A8 -_080CCF7C: .4byte 0x00000CD4 -_080CCF80: .4byte 0x00000CD5 -_080CCF84: .4byte 0x00000CCE - thumb_func_end sub_080CCF28 - - thumb_func_start sub_080CCF88 -sub_080CCF88: @ 0x080CCF88 - push {r4, r5, r6, r7, lr} - ldr r0, _080CCFA4 - ldr r2, [r0] - ldr r3, _080CCFA8 - adds r1, r2, r3 - ldrh r1, [r1] - adds r4, r0, #0 - cmp r1, #0 - beq _080CCFAC - movs r0, #0xcd - lsls r0, r0, #4 - adds r1, r2, r0 - movs r0, #0xc - b _080CCFB4 - .align 2, 0 -_080CCFA4: .4byte gUnknown_20399A8 -_080CCFA8: .4byte 0x00000CD2 -_080CCFAC: - movs r3, #0xcd - lsls r3, r3, #4 - adds r1, r2, r3 - movs r0, #6 -_080CCFB4: - strh r0, [r1] - ldr r1, [r4] - ldr r0, _080CCFF8 - adds r2, r1, r0 - ldrb r0, [r2] - cmp r0, #0 - beq _080CCFCE - movs r3, #0xcd - lsls r3, r3, #4 - adds r0, r1, r3 - ldrh r0, [r0] - lsrs r0, r0, #1 - strb r0, [r2] -_080CCFCE: - ldr r2, [r4] - ldr r1, _080CCFFC - adds r0, r2, r1 - movs r1, #0 - ldrsb r1, [r0, r1] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _080CD008 - cmp r1, #1 - beq _080CD028 - ldr r3, _080CD000 - adds r0, r2, r3 - movs r3, #0 - ldrsh r1, [r0, r3] - ldr r3, _080CD004 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, #0x22 - ldrsh r0, [r0, r2] - b _080CD03C - .align 2, 0 -_080CCFF8: .4byte 0x00000CD7 -_080CCFFC: .4byte 0x00000CD2 -_080CD000: .4byte 0x00000CCE -_080CD004: .4byte 0x00000CB4 -_080CD008: - ldr r3, _080CD020 - adds r0, r2, r3 - movs r3, #0 - ldrsh r1, [r0, r3] - ldr r3, _080CD024 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, #0x22 - ldrsh r0, [r0, r2] - adds r0, #0xc0 - b _080CD03C - .align 2, 0 -_080CD020: .4byte 0x00000CCE -_080CD024: .4byte 0x00000CB4 -_080CD028: - ldr r3, _080CD068 - adds r0, r2, r3 - movs r3, #0 - ldrsh r1, [r0, r3] - ldr r3, _080CD06C - adds r0, r2, r3 - ldr r0, [r0] - movs r2, #0x22 - ldrsh r0, [r0, r2] - subs r0, #0xc0 -_080CD03C: - subs r7, r1, r0 - ldr r2, [r4] - ldr r3, _080CD070 - adds r0, r2, r3 - movs r1, #0 - ldrsb r1, [r0, r1] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _080CD078 - cmp r1, #1 - beq _080CD098 - ldr r1, _080CD074 - adds r0, r2, r1 - movs r3, #0 - ldrsh r1, [r0, r3] - ldr r3, _080CD06C - adds r0, r2, r3 - ldr r0, [r0] - movs r2, #0x20 - ldrsh r0, [r0, r2] - b _080CD0AC - .align 2, 0 -_080CD068: .4byte 0x00000CCE -_080CD06C: .4byte 0x00000CB4 -_080CD070: .4byte 0x00000CD3 -_080CD074: .4byte 0x00000CCC -_080CD078: - ldr r3, _080CD090 - adds r0, r2, r3 - movs r3, #0 - ldrsh r1, [r0, r3] - ldr r3, _080CD094 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, #0x20 - ldrsh r0, [r0, r2] - adds r0, #0xc0 - b _080CD0AC - .align 2, 0 -_080CD090: .4byte 0x00000CCC -_080CD094: .4byte 0x00000CB4 -_080CD098: - ldr r3, _080CD0FC - adds r0, r2, r3 - movs r3, #0 - ldrsh r1, [r0, r3] - ldr r3, _080CD100 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, #0x20 - ldrsh r0, [r0, r2] - subs r0, #0xc0 -_080CD0AC: - subs r0, r1, r0 - lsls r7, r7, #8 - lsls r0, r0, #8 - ldr r4, [r4] - ldr r3, _080CD104 - adds r6, r4, r3 - movs r1, #0xcd - lsls r1, r1, #4 - adds r5, r4, r1 - ldrh r1, [r5] - bl __divsi3 - str r0, [r6] - ldr r2, _080CD108 - adds r6, r4, r2 - ldrh r1, [r5] - adds r0, r7, #0 - bl __divsi3 - str r0, [r6] - ldr r3, _080CD10C - adds r2, r4, r3 - ldr r0, _080CD100 - adds r1, r4, r0 - ldr r0, [r1] - movs r3, #0x20 - ldrsh r0, [r0, r3] - lsls r0, r0, #8 - str r0, [r2] - movs r0, #0xcc - lsls r0, r0, #4 - adds r4, r4, r0 - ldr r0, [r1] - movs r1, #0x22 - ldrsh r0, [r0, r1] - lsls r0, r0, #8 - str r0, [r4] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080CD0FC: .4byte 0x00000CCC -_080CD100: .4byte 0x00000CB4 -_080CD104: .4byte 0x00000CC4 -_080CD108: .4byte 0x00000CC8 -_080CD10C: .4byte 0x00000CBC - thumb_func_end sub_080CCF88 - - thumb_func_start sub_080CD110 -sub_080CD110: @ 0x080CD110 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_080CCF28 - bl sub_080CCF88 - ldr r5, _080CD150 - ldr r1, [r5] - ldrb r0, [r1, #1] - cmp r0, #3 - beq _080CD160 - ldr r2, _080CD154 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _080CD178 - ldr r0, _080CD158 - ldrb r0, [r0] - cmp r0, #0 - bne _080CD178 - ldr r2, _080CD15C - adds r0, r1, r2 - ldr r0, [r0] - movs r1, #1 - bl StartSpriteAnim - b _080CD178 - .align 2, 0 -_080CD150: .4byte gUnknown_20399A8 -_080CD154: .4byte 0x000021FF -_080CD158: .4byte gUnknown_2039A1A -_080CD15C: .4byte 0x00000CB4 -_080CD160: - bl IsActiveItemMoving - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080CD178 - ldr r0, [r5] - ldr r1, _080CD19C - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #1 - bl StartSpriteAnim -_080CD178: - ldr r0, _080CD1A0 - ldr r0, [r0] - ldrb r0, [r0, #1] - cmp r0, #3 - bne _080CD1D8 - ldr r0, _080CD1A4 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _080CD1AC - ldr r0, _080CD1A8 - ldrb r1, [r0] - movs r0, #0 - bl sub_080D06F0 - b _080CD1BA - .align 2, 0 -_080CD19C: .4byte 0x00000CB4 -_080CD1A0: .4byte gUnknown_20399A8 -_080CD1A4: .4byte gUnknown_2039A18 -_080CD1A8: .4byte gUnknown_2039A19 -_080CD1AC: - cmp r0, #1 - bne _080CD1BA - ldr r0, _080CD1C8 - ldrb r1, [r0] - movs r0, #1 - bl sub_080D06F0 -_080CD1BA: - cmp r4, #0 - bne _080CD1CC - movs r0, #0 - adds r1, r6, #0 - bl sub_080D062C - b _080CD1D8 - .align 2, 0 -_080CD1C8: .4byte gUnknown_2039A19 -_080CD1CC: - cmp r4, #1 - bne _080CD204 - movs r0, #1 - adds r1, r6, #0 - bl sub_080D062C -_080CD1D8: - cmp r4, #1 - bne _080CD204 - ldr r0, _080CD24C - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - beq _080CD204 - ldr r1, _080CD250 - ldr r0, [r1] - ldr r2, _080CD254 - adds r0, r0, r2 - strb r4, [r0] - ldr r0, [r1] - ldr r1, _080CD258 - adds r0, r0, r1 - ldr r1, [r0] - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] -_080CD204: - cmp r4, #0 - beq _080CD260 - cmp r4, #0 - blt _080CD2D2 - cmp r4, #3 - bgt _080CD2D2 - ldr r5, _080CD250 - ldr r0, [r5] - ldr r2, _080CD25C - adds r0, r0, r2 - ldr r4, [r0] - ldrb r1, [r4, #5] - movs r2, #0xd - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r1 - movs r3, #4 - orrs r0, r3 - strb r0, [r4, #5] - ldr r0, [r5] - ldr r4, _080CD258 - adds r0, r0, r4 - ldr r1, [r0] - adds r1, #0x3e - ldrb r0, [r1] - orrs r0, r3 - strb r0, [r1] - ldr r0, [r5] - adds r0, r0, r4 - ldr r1, [r0] - ldrb r0, [r1, #5] - ands r2, r0 - orrs r2, r3 - strb r2, [r1, #5] - b _080CD2D2 - .align 2, 0 -_080CD24C: .4byte gUnknown_2039A18 -_080CD250: .4byte gUnknown_20399A8 -_080CD254: .4byte 0x00000CD6 -_080CD258: .4byte 0x00000CB8 -_080CD25C: .4byte 0x00000CB4 -_080CD260: - ldr r3, _080CD294 - ldr r1, [r3] - ldr r2, _080CD298 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080CD2A4 - ldr r2, _080CD29C - adds r0, r1, r2 - ldr r2, [r0] - ldrb r1, [r2, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #5] - ldr r0, [r3] - ldr r1, _080CD2A0 - adds r0, r0, r1 - ldr r1, [r0] - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - b _080CD2D2 - .align 2, 0 -_080CD294: .4byte gUnknown_20399A8 -_080CD298: .4byte 0x000021FF -_080CD29C: .4byte 0x00000CB4 -_080CD2A0: .4byte 0x00000CB8 -_080CD2A4: - ldr r2, _080CD2D8 - adds r0, r1, r2 - ldr r2, [r0] - ldrb r1, [r2, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2, #5] - ldr r0, _080CD2DC - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _080CD2D2 - ldr r0, _080CD2E0 - ldrb r0, [r0] - cmp r0, #0 - beq _080CD2D2 - movs r0, #2 - bl SetMovingMonPriority -_080CD2D2: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080CD2D8: .4byte 0x00000CB4 -_080CD2DC: .4byte gUnknown_2039A18 -_080CD2E0: .4byte gUnknown_2039A1A - thumb_func_end sub_080CD110 - - thumb_func_start sub_080CD2E4 -sub_080CD2E4: @ 0x080CD2E4 - push {r4, lr} - ldr r1, _080CD324 - ldr r4, _080CD328 - ldr r2, [r4] - ldr r3, _080CD32C - adds r0, r2, r3 - ldrb r0, [r0] - strb r0, [r1] - ldr r1, _080CD330 - adds r3, #1 - adds r0, r2, r3 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r2, #1] - cmp r0, #3 - beq _080CD33C - ldr r1, _080CD334 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080CD354 - ldr r0, _080CD338 - ldrb r0, [r0] - cmp r0, #0 - bne _080CD354 - subs r3, #0x21 - adds r0, r2, r3 - ldr r0, [r0] - movs r1, #0 - bl StartSpriteAnim - b _080CD354 - .align 2, 0 -_080CD324: .4byte gUnknown_2039A18 -_080CD328: .4byte gUnknown_20399A8 -_080CD32C: .4byte 0x00000CD4 -_080CD330: .4byte gUnknown_2039A19 -_080CD334: .4byte 0x000021FF -_080CD338: .4byte gUnknown_2039A1A -_080CD33C: - bl IsActiveItemMoving - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080CD354 - ldr r0, [r4] - ldr r1, _080CD370 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0 - bl StartSpriteAnim -_080CD354: - bl sub_080CE3BC - ldr r0, _080CD374 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - beq _080CD38A - cmp r0, #1 - bgt _080CD378 - cmp r0, #0 - beq _080CD3AC - b _080CD406 - .align 2, 0 -_080CD370: .4byte 0x00000CB4 -_080CD374: .4byte gUnknown_2039A18 -_080CD378: - cmp r0, #2 - beq _080CD382 - cmp r0, #3 - bne _080CD406 - b _080CD39A -_080CD382: - movs r0, #1 - bl sub_080CCA24 - b _080CD406 -_080CD38A: - ldr r0, _080CD3A4 - ldr r0, [r0] - ldr r2, _080CD3A8 - adds r0, r0, r2 - ldr r0, [r0] - adds r0, #0x43 - movs r1, #0xd - strb r1, [r0] -_080CD39A: - movs r0, #1 - bl SetMovingMonPriority - b _080CD406 - .align 2, 0 -_080CD3A4: .4byte gUnknown_20399A8 -_080CD3A8: .4byte 0x00000CB8 -_080CD3AC: - ldr r4, _080CD40C - ldr r1, [r4] - ldr r3, _080CD410 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, #0 - bne _080CD406 - ldr r2, _080CD414 - adds r0, r1, r2 - ldr r3, [r0] - ldrb r1, [r3, #5] - movs r2, #0xd - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r3, #5] - ldr r0, [r4] - ldr r3, _080CD418 - adds r0, r0, r3 - ldr r1, [r0] - ldrb r0, [r1, #5] - ands r2, r0 - movs r0, #8 - orrs r2, r0 - strb r2, [r1, #5] - ldr r0, [r4] - adds r0, r0, r3 - ldr r0, [r0] - adds r0, #0x43 - movs r1, #0x15 - strb r1, [r0] - ldr r0, [r4] - adds r0, r0, r3 - ldr r1, [r0] - adds r1, #0x3e - ldrb r2, [r1] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - movs r0, #2 - bl SetMovingMonPriority -_080CD406: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CD40C: .4byte gUnknown_20399A8 -_080CD410: .4byte 0x000021FF -_080CD414: .4byte 0x00000CB4 -_080CD418: .4byte 0x00000CB8 - thumb_func_end sub_080CD2E4 - - thumb_func_start sub_080CD41C -sub_080CD41C: @ 0x080CD41C - push {lr} - ldr r0, _080CD42C - ldrb r0, [r0] - cmp r0, #0 - bne _080CD430 - movs r3, #0 - b _080CD43E - .align 2, 0 -_080CD42C: .4byte gUnknown_2039A1A -_080CD430: - bl sub_0806B004 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #5 - bls _080CD43E - movs r3, #5 -_080CD43E: - ldr r0, _080CD468 - ldr r2, [r0] - ldr r1, _080CD46C - adds r0, r2, r1 - ldr r0, [r0] - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080CD45C - ldr r0, _080CD470 - adds r1, r2, r0 - movs r0, #1 - strb r0, [r1] -_080CD45C: - movs r0, #1 - adds r1, r3, #0 - bl sub_080CD110 - pop {r0} - bx r0 - .align 2, 0 -_080CD468: .4byte gUnknown_20399A8 -_080CD46C: .4byte 0x00000CB4 -_080CD470: .4byte 0x00000CD7 - thumb_func_end sub_080CD41C - - thumb_func_start sub_080CD474 -sub_080CD474: @ 0x080CD474 - push {lr} - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0 - bl sub_080CD110 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080CD474 - - thumb_func_start sub_080CD488 -sub_080CD488: @ 0x080CD488 - ldr r1, _080CD490 - movs r0, #0 - strb r0, [r1] - bx lr - .align 2, 0 -_080CD490: .4byte gUnknown_2039A1E - thumb_func_end sub_080CD488 - - thumb_func_start sub_080CD494 -sub_080CD494: @ 0x080CD494 - ldr r0, _080CD4A0 - ldr r1, _080CD4A4 - ldrb r1, [r1] - strb r1, [r0] - bx lr - .align 2, 0 -_080CD4A0: .4byte gUnknown_2039A1E -_080CD4A4: .4byte gUnknown_2039A19 - thumb_func_end sub_080CD494 - - thumb_func_start sub_080CD4A8 -sub_080CD4A8: @ 0x080CD4A8 - ldr r0, _080CD4B0 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080CD4B0: .4byte gUnknown_2039A1E - thumb_func_end sub_080CD4A8 - - thumb_func_start InitMonPlaceChange -InitMonPlaceChange: @ 0x080CD4B4 - lsls r0, r0, #0x18 - ldr r1, _080CD4D4 - ldr r1, [r1] - ldr r2, _080CD4D8 - adds r3, r1, r2 - ldr r2, _080CD4DC - lsrs r0, r0, #0x16 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r3] - movs r0, #0xd9 - lsls r0, r0, #4 - adds r1, r1, r0 - movs r0, #0 - strb r0, [r1] - bx lr - .align 2, 0 -_080CD4D4: .4byte gUnknown_20399A8 -_080CD4D8: .4byte 0x00000D8C -_080CD4DC: .4byte gUnknown_8556494 - thumb_func_end InitMonPlaceChange - - thumb_func_start sub_080CD4E0 -sub_080CD4E0: @ 0x080CD4E0 - push {lr} - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080CD500 - ldr r0, _080CD4F4 - ldr r1, [r0] - ldr r2, _080CD4F8 - adds r1, r1, r2 - ldr r2, _080CD4FC - b _080CD50A - .align 2, 0 -_080CD4F4: .4byte gUnknown_20399A8 -_080CD4F8: .4byte 0x00000D8C -_080CD4FC: .4byte sub_080CD730 -_080CD500: - ldr r0, _080CD51C - ldr r1, [r0] - ldr r2, _080CD520 - adds r1, r1, r2 - ldr r2, _080CD524 -_080CD50A: - str r2, [r1] - ldr r0, [r0] - movs r1, #0xd9 - lsls r1, r1, #4 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080CD51C: .4byte gUnknown_20399A8 -_080CD520: .4byte 0x00000D8C -_080CD524: .4byte sub_080CD740 - thumb_func_end sub_080CD4E0 - - thumb_func_start DoMonPlaceChange -DoMonPlaceChange: @ 0x080CD528 - push {lr} - ldr r0, _080CD540 - ldr r0, [r0] - ldr r1, _080CD544 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - thumb_func_end DoMonPlaceChange - - thumb_func_start sub_080CD538 -sub_080CD538: @ 0x080CD538 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_080CD540: .4byte gUnknown_20399A8 -_080CD544: .4byte 0x00000D8C - thumb_func_end sub_080CD538 - - thumb_func_start MonPlaceChange_Move -MonPlaceChange_Move: @ 0x080CD548 - push {r4, r5, lr} - ldr r4, _080CD564 - ldr r1, [r4] - movs r5, #0xd9 - lsls r5, r5, #4 - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, #1 - beq _080CD598 - cmp r0, #1 - bgt _080CD568 - cmp r0, #0 - beq _080CD572 - b _080CD5D0 - .align 2, 0 -_080CD564: .4byte gUnknown_20399A8 -_080CD568: - cmp r0, #2 - beq _080CD5BC - cmp r0, #3 - beq _080CD57A - b _080CD5D0 -_080CD572: - ldr r0, _080CD580 - ldrb r0, [r0] - cmp r0, #0 - beq _080CD584 -_080CD57A: - movs r0, #0 - b _080CD5D2 - .align 2, 0 -_080CD580: .4byte gUnknown_2039A1A -_080CD584: - ldr r2, _080CD594 - adds r0, r1, r2 - ldr r0, [r0] - movs r1, #2 - bl StartSpriteAnim - b _080CD5C6 - .align 2, 0 -_080CD594: .4byte 0x00000CB4 -_080CD598: - bl sub_080CD750 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080CD5D0 - ldr r0, [r4] - ldr r1, _080CD5B8 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #3 - bl StartSpriteAnim - bl MoveMon - b _080CD5C6 - .align 2, 0 -_080CD5B8: .4byte 0x00000CB4 -_080CD5BC: - bl sub_080CD784 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080CD5D0 -_080CD5C6: - ldr r1, [r4] - adds r1, r1, r5 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_080CD5D0: - movs r0, #1 -_080CD5D2: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MonPlaceChange_Move - - thumb_func_start MonPlaceChange_Place -MonPlaceChange_Place: @ 0x080CD5D8 - push {r4, r5, lr} - ldr r4, _080CD5F4 - ldr r0, [r4] - movs r5, #0xd9 - lsls r5, r5, #4 - adds r0, r0, r5 - ldrb r0, [r0] - cmp r0, #1 - beq _080CD620 - cmp r0, #1 - bgt _080CD5F8 - cmp r0, #0 - beq _080CD5FE - b _080CD64C - .align 2, 0 -_080CD5F4: .4byte gUnknown_20399A8 -_080CD5F8: - cmp r0, #2 - beq _080CD648 - b _080CD64C -_080CD5FE: - bl sub_080CD750 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080CD64C - ldr r0, [r4] - ldr r1, _080CD61C - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #2 - bl StartSpriteAnim - bl PlaceMon - b _080CD638 - .align 2, 0 -_080CD61C: .4byte 0x00000CB4 -_080CD620: - bl sub_080CD784 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080CD64C - ldr r0, [r4] - ldr r1, _080CD644 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0 - bl StartSpriteAnim -_080CD638: - ldr r1, [r4] - adds r1, r1, r5 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080CD64C - .align 2, 0 -_080CD644: .4byte 0x00000CB4 -_080CD648: - movs r0, #0 - b _080CD64E -_080CD64C: - movs r0, #1 -_080CD64E: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MonPlaceChange_Place - - thumb_func_start MonPlaceChange_Shift -MonPlaceChange_Shift: @ 0x080CD654 - push {r4, r5, lr} - ldr r4, _080CD670 - ldr r1, [r4] - movs r5, #0xd9 - lsls r5, r5, #4 - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, #1 - beq _080CD6E4 - cmp r0, #1 - bgt _080CD674 - cmp r0, #0 - beq _080CD67A - b _080CD728 - .align 2, 0 -_080CD670: .4byte gUnknown_20399A8 -_080CD674: - cmp r0, #2 - beq _080CD724 - b _080CD728 -_080CD67A: - ldr r0, _080CD694 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _080CD69C - cmp r0, #1 - bne _080CD724 - ldr r0, _080CD698 - adds r1, r1, r0 - movs r0, #0xe - b _080CD6A6 - .align 2, 0 -_080CD694: .4byte gUnknown_2039A18 -_080CD698: .4byte 0x00000D91 -_080CD69C: - bl sub_080D15AC - ldr r1, [r4] - ldr r2, _080CD6D4 - adds r1, r1, r2 -_080CD6A6: - strb r0, [r1] - ldr r4, _080CD6D8 - ldr r0, [r4] - ldr r1, _080CD6DC - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #2 - bl StartSpriteAnim - ldr r0, [r4] - ldr r2, _080CD6D4 - adds r0, r0, r2 - ldrb r0, [r0] - ldr r1, _080CD6E0 - ldrb r1, [r1] - bl sub_080CB5D0 - ldr r1, [r4] - movs r0, #0xd9 - lsls r0, r0, #4 - adds r1, r1, r0 - b _080CD710 - .align 2, 0 -_080CD6D4: .4byte 0x00000D91 -_080CD6D8: .4byte gUnknown_20399A8 -_080CD6DC: .4byte 0x00000CB4 -_080CD6E0: .4byte gUnknown_2039A19 -_080CD6E4: - bl sub_080CB638 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080CD728 - ldr r0, [r4] - ldr r1, _080CD718 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #3 - bl StartSpriteAnim - ldr r0, [r4] - ldr r2, _080CD71C - adds r0, r0, r2 - ldrb r0, [r0] - ldr r1, _080CD720 - ldrb r1, [r1] - bl SetShiftedMonData - ldr r1, [r4] - adds r1, r1, r5 -_080CD710: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080CD728 - .align 2, 0 -_080CD718: .4byte 0x00000CB4 -_080CD71C: .4byte 0x00000D91 -_080CD720: .4byte gUnknown_2039A19 -_080CD724: - movs r0, #0 - b _080CD72A -_080CD728: - movs r0, #1 -_080CD72A: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MonPlaceChange_Shift - - thumb_func_start sub_080CD730 -sub_080CD730: @ 0x080CD730 - push {lr} - bl sub_080CD750 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080CD730 - - thumb_func_start sub_080CD740 -sub_080CD740: @ 0x080CD740 - push {lr} - bl sub_080CD784 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080CD740 - - thumb_func_start sub_080CD750 -sub_080CD750: @ 0x080CD750 - push {lr} - ldr r0, _080CD770 - ldr r0, [r0] - ldr r1, _080CD774 - adds r0, r0, r1 - ldr r1, [r0] - movs r2, #0x26 - ldrsh r0, [r1, r2] - cmp r0, #0 - beq _080CD768 - cmp r0, #8 - beq _080CD778 -_080CD768: - ldrh r0, [r1, #0x26] - adds r0, #1 - strh r0, [r1, #0x26] - b _080CD77C - .align 2, 0 -_080CD770: .4byte gUnknown_20399A8 -_080CD774: .4byte 0x00000CB4 -_080CD778: - movs r0, #0 - b _080CD77E -_080CD77C: - movs r0, #1 -_080CD77E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080CD750 - - thumb_func_start sub_080CD784 -sub_080CD784: @ 0x080CD784 - push {lr} - ldr r0, _080CD7A4 - ldr r0, [r0] - ldr r1, _080CD7A8 - adds r0, r0, r1 - ldr r1, [r0] - movs r2, #0x26 - ldrsh r0, [r1, r2] - cmp r0, #0 - beq _080CD7AC - ldrh r0, [r1, #0x26] - subs r0, #1 - strh r0, [r1, #0x26] - movs r0, #1 - b _080CD7AE - .align 2, 0 -_080CD7A4: .4byte gUnknown_20399A8 -_080CD7A8: .4byte 0x00000CB4 -_080CD7AC: - movs r0, #0 -_080CD7AE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080CD784 - - thumb_func_start MoveMon -MoveMon: @ 0x080CD7B4 - push {r4, lr} - ldr r0, _080CD7DC - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _080CD7E4 - cmp r0, #1 - bne _080CD810 - ldr r4, _080CD7E0 - ldrb r1, [r4] - movs r0, #0xe - bl SetMovedMonData - ldrb r1, [r4] - movs r0, #0 - bl sub_080CB488 - b _080CD80A - .align 2, 0 -_080CD7DC: .4byte gUnknown_2039A18 -_080CD7E0: .4byte gUnknown_2039A19 -_080CD7E4: - ldr r0, _080CD818 - ldr r0, [r0] - ldr r1, _080CD81C - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080CD80A - bl sub_080D15AC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _080CD820 - ldrb r1, [r4] - bl SetMovedMonData - ldrb r1, [r4] - movs r0, #1 - bl sub_080CB488 -_080CD80A: - ldr r1, _080CD824 - movs r0, #1 - strb r0, [r1] -_080CD810: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CD818: .4byte gUnknown_20399A8 -_080CD81C: .4byte 0x000021FF -_080CD820: .4byte gUnknown_2039A19 -_080CD824: .4byte gUnknown_2039A1A - thumb_func_end MoveMon - - thumb_func_start PlaceMon -PlaceMon: @ 0x080CD828 - push {r4, r5, lr} - ldr r0, _080CD850 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _080CD858 - cmp r0, #1 - bne _080CD87A - ldr r4, _080CD854 - ldrb r1, [r4] - movs r0, #0xe - bl SetPlacedMonData - ldrb r1, [r4] - movs r0, #0xe - bl sub_080CB520 - b _080CD874 - .align 2, 0 -_080CD850: .4byte gUnknown_2039A18 -_080CD854: .4byte gUnknown_2039A19 -_080CD858: - bl sub_080D15AC - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r5, _080CD880 - ldrb r1, [r5] - adds r0, r4, #0 - bl SetPlacedMonData - ldrb r1, [r5] - adds r0, r4, #0 - bl sub_080CB520 -_080CD874: - ldr r1, _080CD884 - movs r0, #0 - strb r0, [r1] -_080CD87A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080CD880: .4byte gUnknown_2039A19 -_080CD884: .4byte gUnknown_2039A1A - thumb_func_end PlaceMon - - thumb_func_start sub_080CD888 -sub_080CD888: @ 0x080CD888 - push {lr} - bl sub_080CE3BC - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080CD888 - - thumb_func_start SetMovedMonData -SetMovedMonData: @ 0x080CD894 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - cmp r4, #0xe - bne _080CD8D0 - ldr r0, _080CD8C0 - ldr r0, [r0] - ldr r1, _080CD8C4 - adds r0, r0, r1 - ldr r3, _080CD8C8 - ldr r1, _080CD8CC - movs r2, #0 - ldrsb r2, [r1, r2] - movs r1, #0x64 - muls r1, r2, r1 - adds r1, r1, r3 - movs r2, #0x64 - bl memcpy - b _080CD8E0 - .align 2, 0 -_080CD8C0: .4byte gUnknown_20399A8 -_080CD8C4: .4byte 0x000020A4 -_080CD8C8: .4byte gUnknown_2024190 -_080CD8CC: .4byte gUnknown_2039A19 -_080CD8D0: - ldr r0, _080CD8F8 - ldr r2, [r0] - ldr r0, _080CD8FC - adds r2, r2, r0 - adds r0, r4, #0 - adds r1, r5, #0 - bl BoxMonAtToMon -_080CD8E0: - adds r0, r4, #0 - adds r1, r5, #0 - bl PurgeMonOrBoxMon - ldr r0, _080CD900 - strb r4, [r0] - ldr r0, _080CD904 - strb r5, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080CD8F8: .4byte gUnknown_20399A8 -_080CD8FC: .4byte 0x000020A4 -_080CD900: .4byte gUnknown_2039A1B -_080CD904: .4byte gUnknown_2039A1C - thumb_func_end SetMovedMonData - - thumb_func_start SetPlacedMonData -SetPlacedMonData: @ 0x080CD908 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - cmp r6, #0xe - bne _080CD93C - ldr r1, _080CD930 - movs r0, #0x64 - muls r0, r7, r0 - adds r0, r0, r1 - ldr r1, _080CD934 - ldr r1, [r1] - ldr r2, _080CD938 - adds r1, r1, r2 - movs r2, #0x64 - bl memcpy - b _080CD954 - .align 2, 0 -_080CD930: .4byte gUnknown_2024190 -_080CD934: .4byte gUnknown_20399A8 -_080CD938: .4byte 0x000020A4 -_080CD93C: - ldr r5, _080CD95C - ldr r0, [r5] - ldr r4, _080CD960 - adds r0, r0, r4 - bl BoxMonRestorePP - ldr r2, [r5] - adds r2, r2, r4 - adds r0, r6, #0 - adds r1, r7, #0 - bl SetBoxMonAt -_080CD954: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080CD95C: .4byte gUnknown_20399A8 -_080CD960: .4byte 0x000020A4 - thumb_func_end SetPlacedMonData - - thumb_func_start PurgeMonOrBoxMon -PurgeMonOrBoxMon: @ 0x080CD964 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r0, #0xe - bne _080CD984 - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080CD980 - adds r0, r0, r1 - bl ZeroMonData - b _080CD988 - .align 2, 0 -_080CD980: .4byte gUnknown_2024190 -_080CD984: - bl ZeroBoxMonAt -_080CD988: - pop {r0} - bx r0 - thumb_func_end PurgeMonOrBoxMon - - thumb_func_start SetShiftedMonData -SetShiftedMonData: @ 0x080CD98C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - cmp r6, #0xe - bne _080CD9C0 - ldr r0, _080CD9B4 - ldr r0, [r0] - ldr r1, _080CD9B8 - adds r0, r0, r1 - ldr r2, _080CD9BC - movs r1, #0x64 - muls r1, r7, r1 - adds r1, r1, r2 - movs r2, #0x64 - bl memcpy - b _080CD9D0 - .align 2, 0 -_080CD9B4: .4byte gUnknown_20399A8 -_080CD9B8: .4byte 0x00002108 -_080CD9BC: .4byte gUnknown_2024190 -_080CD9C0: - ldr r0, _080CDA04 - ldr r2, [r0] - ldr r0, _080CDA08 - adds r2, r2, r0 - adds r0, r6, #0 - adds r1, r7, #0 - bl BoxMonAtToMon -_080CD9D0: - adds r0, r6, #0 - adds r1, r7, #0 - bl SetPlacedMonData - ldr r5, _080CDA04 - ldr r1, [r5] - ldr r4, _080CDA0C - adds r0, r1, r4 - ldr r2, _080CDA08 - adds r1, r1, r2 - movs r2, #0x64 - bl memcpy - ldr r0, [r5] - adds r0, r0, r4 - movs r1, #0 - bl SetCursorMonData - ldr r0, _080CDA10 - strb r6, [r0] - ldr r0, _080CDA14 - strb r7, [r0] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080CDA04: .4byte gUnknown_20399A8 -_080CDA08: .4byte 0x00002108 -_080CDA0C: .4byte 0x000020A4 -_080CDA10: .4byte gUnknown_2039A1B -_080CDA14: .4byte gUnknown_2039A1C - thumb_func_end SetShiftedMonData - - thumb_func_start TryStorePartyMonInBox -TryStorePartyMonInBox: @ 0x080CDA18 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r0, r6, #0 - bl GetFirstFreeBoxSpot - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _080CDA36 - movs r0, #0 - b _080CDA96 -_080CDA36: - ldr r5, _080CDA54 - ldrb r0, [r5] - cmp r0, #0 - beq _080CDA58 - lsls r4, r4, #0x18 - lsrs r1, r4, #0x18 - adds r0, r6, #0 - bl SetPlacedMonData - bl DestroyMovingMonIcon - movs r0, #0 - strb r0, [r5] - b _080CDA72 - .align 2, 0 -_080CDA54: .4byte gUnknown_2039A1A -_080CDA58: - ldr r5, _080CDA9C - ldrb r1, [r5] - movs r0, #0xe - bl SetMovedMonData - lsls r4, r4, #0x18 - lsrs r1, r4, #0x18 - adds r0, r6, #0 - bl SetPlacedMonData - ldrb r0, [r5] - bl DestroyPartyMonIcon -_080CDA72: - bl sub_080D15AC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r6, r0 - bne _080CDA84 - lsrs r0, r4, #0x18 - bl sub_080CA9B4 -_080CDA84: - ldr r0, _080CDAA0 - ldr r0, [r0] - ldr r1, _080CDAA4 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #1 - bl StartSpriteAnim - movs r0, #1 -_080CDA96: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080CDA9C: .4byte gUnknown_2039A19 -_080CDAA0: .4byte gUnknown_20399A8 -_080CDAA4: .4byte 0x00000CB4 - thumb_func_end TryStorePartyMonInBox - - thumb_func_start WallyHandleStatusIconUpdate -WallyHandleStatusIconUpdate: @ 0x080CDAA8 - push {lr} - ldr r0, _080CDAC4 - ldr r0, [r0] - ldr r1, _080CDAC8 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0 - bl StartSpriteAnim - bl sub_080CE3BC - pop {r0} - bx r0 - .align 2, 0 -_080CDAC4: .4byte gUnknown_20399A8 -_080CDAC8: .4byte 0x00000CB4 - thumb_func_end WallyHandleStatusIconUpdate - - thumb_func_start sub_080CDACC -sub_080CDACC: @ 0x080CDACC - push {lr} - ldr r0, _080CDADC - ldrb r0, [r0] - cmp r0, #0 - beq _080CDAE0 - movs r2, #2 - b _080CDAF0 - .align 2, 0 -_080CDADC: .4byte gUnknown_2039A1A -_080CDAE0: - ldr r0, _080CDB10 - movs r1, #0 - ldrsb r1, [r0, r1] - movs r2, #1 - eors r1, r2 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r2, r0, #0x1f -_080CDAF0: - ldr r0, _080CDB14 - ldrb r1, [r0] - adds r0, r2, #0 - bl sub_080CB788 - ldr r0, _080CDB18 - ldr r1, [r0] - ldr r2, _080CDB1C - adds r0, r1, r2 - ldr r2, _080CDB20 - adds r1, r1, r2 - bl StringCopy - pop {r0} - bx r0 - .align 2, 0 -_080CDB10: .4byte gUnknown_2039A18 -_080CDB14: .4byte gUnknown_2039A19 -_080CDB18: .4byte gUnknown_20399A8 -_080CDB1C: .4byte 0x000021E0 -_080CDB20: .4byte 0x00000CEE - thumb_func_end sub_080CDACC - - thumb_func_start sub_080CDB24 -sub_080CDB24: @ 0x080CDB24 - push {lr} - bl sub_080CB84C - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080CDB34 - movs r0, #1 - b _080CDB46 -_080CDB34: - ldr r0, _080CDB4C - ldr r0, [r0] - ldr r1, _080CDB50 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0 - bl StartSpriteAnim - movs r0, #0 -_080CDB46: - pop {r1} - bx r1 - .align 2, 0 -_080CDB4C: .4byte gUnknown_20399A8 -_080CDB50: .4byte 0x00000CB4 - thumb_func_end sub_080CDB24 - - thumb_func_start ReleaseMon -ReleaseMon: @ 0x080CDB54 - push {lr} - bl sub_080CB894 - ldr r1, _080CDB68 - ldrb r0, [r1] - cmp r0, #0 - beq _080CDB6C - movs r0, #0 - strb r0, [r1] - b _080CDB92 - .align 2, 0 -_080CDB68: .4byte gUnknown_2039A1A -_080CDB6C: - ldr r0, _080CDB7C - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - bne _080CDB80 - movs r2, #0xe - b _080CDB88 - .align 2, 0 -_080CDB7C: .4byte gUnknown_2039A18 -_080CDB80: - bl sub_080D15AC - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 -_080CDB88: - ldr r0, _080CDB9C - ldrb r1, [r0] - adds r0, r2, #0 - bl PurgeMonOrBoxMon -_080CDB92: - bl sub_080CE3BC - pop {r0} - bx r0 - .align 2, 0 -_080CDB9C: .4byte gUnknown_2039A19 - thumb_func_end ReleaseMon - - thumb_func_start sub_080CDBA0 -sub_080CDBA0: @ 0x080CDBA0 - push {lr} - ldr r0, _080CDBC0 - ldrb r0, [r0] - cmp r0, #0 - beq _080CDBBA - ldr r0, _080CDBC4 - ldr r0, [r0] - ldr r1, _080CDBC8 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #3 - bl StartSpriteAnim -_080CDBBA: - pop {r0} - bx r0 - .align 2, 0 -_080CDBC0: .4byte gUnknown_2039A1A -_080CDBC4: .4byte gUnknown_20399A8 -_080CDBC8: .4byte 0x00000CB4 - thumb_func_end sub_080CDBA0 - - thumb_func_start sub_080CDBCC -sub_080CDBCC: @ 0x080CDBCC - push {r4, r5, lr} - adds r3, r0, #0 - movs r5, #0 - ldr r4, _080CDC10 -_080CDBD4: - movs r1, #0 - ldrsb r1, [r4, r1] - cmp r1, #0x22 - beq _080CDBF4 - ldr r0, _080CDC14 - ldr r2, [r0] - movs r0, #4 - ldrsb r0, [r2, r0] - cmp r1, r0 - bne _080CDBFA - movs r1, #1 - ldrsb r1, [r4, r1] - movs r0, #5 - ldrsb r0, [r2, r0] - cmp r1, r0 - bne _080CDBFA -_080CDBF4: - ldrh r0, [r4, #2] - strh r0, [r3] - adds r3, #2 -_080CDBFA: - adds r4, #4 - adds r5, #1 - cmp r5, #5 - bls _080CDBD4 - ldr r1, _080CDC18 - adds r0, r1, #0 - strh r0, [r3] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080CDC10: .4byte gUnknown_85564A0 -_080CDC14: .4byte gUnknown_3005AEC -_080CDC18: .4byte 0x00000163 - thumb_func_end sub_080CDBCC - - thumb_func_start InitCanRelaseMonVars -InitCanRelaseMonVars: @ 0x080CDC1C - push {r4, r5, lr} - bl AtLeastThreeUsableMons - adds r3, r0, #0 - cmp r3, #0 - bne _080CDC4C - ldr r2, _080CDC40 - ldr r0, [r2] - ldr r1, _080CDC44 - adds r0, r0, r1 - movs r1, #1 - strb r1, [r0] - ldr r0, [r2] - ldr r2, _080CDC48 - adds r0, r0, r2 - strb r3, [r0] - b _080CDD80 - .align 2, 0 -_080CDC40: .4byte gUnknown_20399A8 -_080CDC44: .4byte 0x0000216D -_080CDC48: .4byte 0x0000216C -_080CDC4C: - ldr r0, _080CDC7C - ldrb r0, [r0] - cmp r0, #0 - beq _080CDC94 - ldr r4, _080CDC80 - ldr r1, [r4] - ldr r3, _080CDC84 - adds r0, r1, r3 - ldr r2, _080CDC88 - adds r1, r1, r2 - movs r2, #0x64 - bl memcpy - ldr r0, [r4] - ldr r3, _080CDC8C - adds r0, r0, r3 - movs r1, #0xff - strb r1, [r0] - ldr r0, [r4] - ldr r1, _080CDC90 - adds r0, r0, r1 - movs r1, #1 - rsbs r1, r1, #0 - b _080CDD10 - .align 2, 0 -_080CDC7C: .4byte gUnknown_2039A1A -_080CDC80: .4byte gUnknown_20399A8 -_080CDC84: .4byte 0x00002108 -_080CDC88: .4byte 0x000020A4 -_080CDC8C: .4byte 0x00002170 -_080CDC90: .4byte 0x00002171 -_080CDC94: - ldr r0, _080CDCC8 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - bne _080CDCE0 - ldr r4, _080CDCCC - ldr r0, [r4] - ldr r2, _080CDCD0 - adds r0, r0, r2 - ldr r3, _080CDCD4 - ldr r1, _080CDCD8 - movs r2, #0 - ldrsb r2, [r1, r2] - movs r1, #0x64 - muls r1, r2, r1 - adds r1, r1, r3 - movs r2, #0x64 - bl memcpy - ldr r0, [r4] - ldr r3, _080CDCDC - adds r0, r0, r3 - movs r1, #0xe - strb r1, [r0] - b _080CDD04 - .align 2, 0 -_080CDCC8: .4byte gUnknown_2039A18 -_080CDCCC: .4byte gUnknown_20399A8 -_080CDCD0: .4byte 0x00002108 -_080CDCD4: .4byte gUnknown_2024190 -_080CDCD8: .4byte gUnknown_2039A19 -_080CDCDC: .4byte 0x00002170 -_080CDCE0: - bl sub_080D15AC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080CDD44 - ldrb r1, [r1] - ldr r4, _080CDD48 - ldr r2, [r4] - ldr r3, _080CDD4C - adds r2, r2, r3 - bl BoxMonAtToMon - bl sub_080D15AC - ldr r1, [r4] - ldr r2, _080CDD50 - adds r1, r1, r2 - strb r0, [r1] -_080CDD04: - ldr r0, _080CDD48 - ldr r0, [r0] - ldr r1, _080CDD44 - ldrb r1, [r1] - ldr r3, _080CDD54 - adds r0, r0, r3 -_080CDD10: - strb r1, [r0] - ldr r5, _080CDD48 - ldr r0, [r5] - ldr r4, _080CDD58 - adds r0, r0, r4 - bl sub_080CDBCC - ldr r2, [r5] - ldr r1, _080CDD4C - adds r0, r2, r1 - adds r2, r2, r4 - movs r1, #0x51 - bl GetMonData - ldr r2, [r5] - ldr r3, _080CDD5C - adds r1, r2, r3 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080CDD64 - ldr r0, _080CDD60 - adds r1, r2, r0 - movs r0, #0 - strb r0, [r1] - b _080CDD74 - .align 2, 0 -_080CDD44: .4byte gUnknown_2039A19 -_080CDD48: .4byte gUnknown_20399A8 -_080CDD4C: .4byte 0x00002108 -_080CDD50: .4byte 0x00002170 -_080CDD54: .4byte 0x00002171 -_080CDD58: .4byte 0x00002176 -_080CDD5C: .4byte 0x00002174 -_080CDD60: .4byte 0x0000216D -_080CDD64: - ldr r1, _080CDD88 - adds r0, r2, r1 - movs r1, #1 - strb r1, [r0] - ldr r0, [r5] - ldr r2, _080CDD8C - adds r0, r0, r2 - strb r1, [r0] -_080CDD74: - ldr r0, _080CDD90 - ldr r0, [r0] - ldr r3, _080CDD94 - adds r0, r0, r3 - movs r1, #0 - strh r1, [r0] -_080CDD80: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080CDD88: .4byte 0x0000216D -_080CDD8C: .4byte 0x0000216C -_080CDD90: .4byte gUnknown_20399A8 -_080CDD94: .4byte 0x00002172 - thumb_func_end InitCanRelaseMonVars - - thumb_func_start AtLeastThreeUsableMons -AtLeastThreeUsableMons: @ 0x080CDD98 - push {r4, r5, r6, lr} - ldr r0, _080CDDC8 - ldrb r1, [r0] - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r5, r0, #0x1f - movs r4, #0 -_080CDDA6: - movs r0, #0x64 - muls r0, r4, r0 - ldr r1, _080CDDCC - adds r0, r0, r1 - movs r1, #5 - bl GetMonData - cmp r0, #0 - beq _080CDDBA - adds r5, #1 -_080CDDBA: - adds r4, #1 - cmp r4, #5 - ble _080CDDA6 - cmp r5, #2 - ble _080CDDD0 -_080CDDC4: - movs r0, #1 - b _080CDDF4 - .align 2, 0 -_080CDDC8: .4byte gUnknown_2039A1A -_080CDDCC: .4byte gUnknown_2024190 -_080CDDD0: - movs r6, #0 -_080CDDD2: - movs r4, #0 -_080CDDD4: - adds r0, r6, #0 - adds r1, r4, #0 - bl CheckBoxMonSanityAt - cmp r0, #0 - beq _080CDDE6 - adds r5, #1 - cmp r5, #2 - bgt _080CDDC4 -_080CDDE6: - adds r4, #1 - cmp r4, #0x1d - ble _080CDDD4 - adds r6, #1 - cmp r6, #0xd - ble _080CDDD2 - movs r0, #0 -_080CDDF4: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end AtLeastThreeUsableMons - - thumb_func_start RunCanReleaseMon -RunCanReleaseMon: @ 0x080CDDFC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _080CDE20 - ldr r2, [r0] - ldr r3, _080CDE24 - adds r1, r2, r3 - ldrb r1, [r1] - adds r5, r0, #0 - cmp r1, #0 - beq _080CDE2C - ldr r1, _080CDE28 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - b _080CDFB2 - .align 2, 0 -_080CDE20: .4byte gUnknown_20399A8 -_080CDE24: .4byte 0x0000216D -_080CDE28: .4byte 0x0000216C -_080CDE2C: - ldr r3, _080CDE3C - adds r0, r2, r3 - ldrh r0, [r0] - cmp r0, #0 - beq _080CDE40 - cmp r0, #1 - beq _080CDF0C - b _080CDFAE - .align 2, 0 -_080CDE3C: .4byte 0x00002172 -_080CDE40: - movs r6, #0 -_080CDE42: - ldr r2, [r5] - ldr r1, _080CDEAC - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0xe - bne _080CDE60 - ldr r3, _080CDEB0 - adds r0, r2, r3 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, r6 - beq _080CDE82 -_080CDE60: - movs r0, #0x64 - muls r0, r6, r0 - ldr r1, _080CDEB4 - adds r0, r0, r1 - ldr r1, _080CDEB8 - adds r2, r2, r1 - movs r1, #0x51 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r1, [r5] - ldr r2, _080CDEBC - adds r1, r1, r2 - ldrh r0, [r1] - bics r0, r4 - strh r0, [r1] -_080CDE82: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #5 - bls _080CDE42 - ldr r2, _080CDEC0 - ldr r1, [r2] - ldr r3, _080CDEBC - adds r0, r1, r3 - ldrh r0, [r0] - cmp r0, #0 - bne _080CDEC8 - subs r3, #7 - adds r0, r1, r3 - movs r1, #1 - strb r1, [r0] - ldr r0, [r2] - ldr r2, _080CDEC4 - adds r0, r0, r2 - strb r1, [r0] - b _080CDFAE - .align 2, 0 -_080CDEAC: .4byte 0x00002170 -_080CDEB0: .4byte 0x00002171 -_080CDEB4: .4byte gUnknown_2024190 -_080CDEB8: .4byte 0x00002176 -_080CDEBC: .4byte 0x00002174 -_080CDEC0: .4byte gUnknown_20399A8 -_080CDEC4: .4byte 0x0000216C -_080CDEC8: - ldr r3, _080CDEE8 - adds r0, r1, r3 - movs r1, #0 - strb r1, [r0] - ldr r0, [r2] - adds r3, #1 - adds r0, r0, r3 - strb r1, [r0] - ldr r1, [r2] - ldr r0, _080CDEEC - adds r1, r1, r0 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _080CDFAE - .align 2, 0 -_080CDEE8: .4byte 0x0000216E -_080CDEEC: .4byte 0x00002172 -_080CDEF0: - ldr r1, _080CDF04 - adds r0, r5, r1 - movs r1, #1 - strb r1, [r0] - mov r2, r8 - ldr r0, [r2] - ldr r3, _080CDF08 - adds r0, r0, r3 - strb r1, [r0] - b _080CDFAE - .align 2, 0 -_080CDF04: .4byte 0x0000216D -_080CDF08: .4byte 0x0000216C -_080CDF0C: - movs r6, #0 - mov r8, r5 - ldr r7, _080CDFBC -_080CDF12: - mov r0, r8 - ldr r3, [r0] - ldr r1, _080CDFC0 - adds r0, r3, r1 - ldrb r0, [r0] - ldr r2, _080CDFC4 - adds r1, r3, r2 - ldrb r1, [r1] - adds r2, #7 - adds r3, r3, r2 - movs r2, #0x51 - bl GetAndCopyBoxMonDataAt - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0 - beq _080CDF5C - ldr r5, [r5] - ldr r3, _080CDFC8 - adds r0, r5, r3 - ldrh r2, [r0] - ldr r1, _080CDFC0 - adds r0, r5, r1 - ldrh r3, [r0] - adds r1, r7, #0 - ands r1, r2 - adds r0, r7, #0 - ands r0, r3 - cmp r1, r0 - beq _080CDF5C - ldr r2, _080CDFCC - adds r1, r5, r2 - ldrh r0, [r1] - bics r0, r4 - strh r0, [r1] - cmp r0, #0 - beq _080CDEF0 -_080CDF5C: - ldr r2, _080CDFD0 - ldr r1, [r2] - ldr r3, _080CDFC4 - adds r1, r1, r3 - ldrb r0, [r1] - adds r0, #1 - movs r3, #0 - strb r0, [r1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r5, r2, #0 - cmp r0, #0x1d - ble _080CDFA4 - ldr r0, [r2] - ldr r1, _080CDFC4 - adds r0, r0, r1 - strb r3, [r0] - ldr r1, [r2] - ldr r0, _080CDFC0 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0xd - ble _080CDFA4 - ldr r0, [r2] - ldr r1, _080CDFD4 - adds r0, r0, r1 - movs r1, #1 - strb r1, [r0] - ldr r0, [r2] - ldr r2, _080CDFD8 - adds r0, r0, r2 - strb r3, [r0] -_080CDFA4: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0x1d - bls _080CDF12 -_080CDFAE: - movs r0, #1 - rsbs r0, r0, #0 -_080CDFB2: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080CDFBC: .4byte 0x0000FFFF -_080CDFC0: .4byte 0x0000216E -_080CDFC4: .4byte 0x0000216F -_080CDFC8: .4byte 0x00002170 -_080CDFCC: .4byte 0x00002174 -_080CDFD0: .4byte gUnknown_20399A8 -_080CDFD4: .4byte 0x0000216D -_080CDFD8: .4byte 0x0000216C - thumb_func_end RunCanReleaseMon - - thumb_func_start sub_080CDFDC -sub_080CDFDC: @ 0x080CDFDC - push {lr} - ldr r0, _080CDFFC - ldrb r0, [r0] - cmp r0, #0 - beq _080CDFF6 - ldr r0, _080CE000 - ldr r1, _080CE004 - ldr r1, [r1] - ldr r2, _080CE008 - adds r1, r1, r2 - movs r2, #0x64 - bl memcpy -_080CDFF6: - pop {r0} - bx r0 - .align 2, 0 -_080CDFFC: .4byte gUnknown_2039A1A -_080CE000: .4byte gUnknown_20399B4 -_080CE004: .4byte gUnknown_20399A8 -_080CE008: .4byte 0x000020A4 - thumb_func_end sub_080CDFDC - - thumb_func_start sub_080CE00C -sub_080CE00C: @ 0x080CE00C - push {lr} - ldr r0, _080CE030 - ldrb r0, [r0] - cmp r0, #0 - beq _080CE054 - ldr r0, _080CE034 - ldrb r0, [r0] - cmp r0, #0xe - bne _080CE044 - ldr r0, _080CE038 - ldr r0, [r0] - ldr r1, _080CE03C - adds r0, r0, r1 - ldr r1, _080CE040 - movs r2, #0x64 - bl memcpy - b _080CE054 - .align 2, 0 -_080CE030: .4byte gUnknown_2039A1A -_080CE034: .4byte gUnknown_2039A1B -_080CE038: .4byte gUnknown_20399A8 -_080CE03C: .4byte 0x000020A4 -_080CE040: .4byte gUnknown_20399B4 -_080CE044: - ldr r0, _080CE058 - ldr r0, [r0] - ldr r1, _080CE05C - adds r0, r0, r1 - ldr r1, _080CE060 - movs r2, #0x50 - bl memcpy -_080CE054: - pop {r0} - bx r0 - .align 2, 0 -_080CE058: .4byte gUnknown_20399A8 -_080CE05C: .4byte 0x000020A4 -_080CE060: .4byte gUnknown_20399B4 - thumb_func_end sub_080CE00C - - thumb_func_start sub_080CE064 -sub_080CE064: @ 0x080CE064 - push {r4, r5, lr} - ldr r0, _080CE098 - ldrb r5, [r0] - cmp r5, #0 - beq _080CE0B4 - bl sub_080CDFDC - ldr r3, _080CE09C - ldr r1, [r3] - ldr r0, _080CE0A0 - adds r2, r1, r0 - ldr r0, _080CE0A4 - str r0, [r2] - ldr r2, _080CE0A8 - adds r1, r1, r2 - movs r2, #0 - strb r2, [r1] - ldr r0, [r3] - ldr r4, _080CE0AC - adds r0, r0, r4 - strb r2, [r0] - ldr r0, [r3] - ldr r1, _080CE0B0 - adds r0, r0, r1 - strb r2, [r0] - b _080CE146 - .align 2, 0 -_080CE098: .4byte gUnknown_2039A1A -_080CE09C: .4byte gUnknown_20399A8 -_080CE0A0: .4byte 0x0000218C -_080CE0A4: .4byte gUnknown_20399B4 -_080CE0A8: .4byte 0x00002187 -_080CE0AC: .4byte 0x00002186 -_080CE0B0: .4byte 0x00002188 -_080CE0B4: - ldr r0, _080CE0F0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - bne _080CE110 - ldr r4, _080CE0F4 - ldr r1, [r4] - ldr r0, _080CE0F8 - adds r2, r1, r0 - ldr r0, _080CE0FC - str r0, [r2] - ldr r0, _080CE100 - ldrb r0, [r0] - ldr r2, _080CE104 - adds r1, r1, r2 - strb r0, [r1] - bl CountPartyMons - ldr r1, [r4] - subs r0, #1 - ldr r2, _080CE108 - adds r1, r1, r2 - strb r0, [r1] - ldr r0, [r4] - ldr r4, _080CE10C - adds r0, r0, r4 - strb r5, [r0] - b _080CE146 - .align 2, 0 -_080CE0F0: .4byte gUnknown_2039A18 -_080CE0F4: .4byte gUnknown_20399A8 -_080CE0F8: .4byte 0x0000218C -_080CE0FC: .4byte gUnknown_2024190 -_080CE100: .4byte gUnknown_2039A19 -_080CE104: .4byte 0x00002187 -_080CE108: .4byte 0x00002186 -_080CE10C: .4byte 0x00002188 -_080CE110: - bl sub_080D15AC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl GetBoxedMonPtr - ldr r3, _080CE14C - ldr r2, [r3] - ldr r4, _080CE150 - adds r1, r2, r4 - str r0, [r1] - ldr r0, _080CE154 - ldrb r0, [r0] - ldr r1, _080CE158 - adds r2, r2, r1 - strb r0, [r2] - ldr r0, [r3] - ldr r2, _080CE15C - adds r0, r0, r2 - movs r1, #0x1d - strb r1, [r0] - ldr r0, [r3] - subs r4, #4 - adds r0, r0, r4 - movs r1, #2 - strb r1, [r0] -_080CE146: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080CE14C: .4byte gUnknown_20399A8 -_080CE150: .4byte 0x0000218C -_080CE154: .4byte gUnknown_2039A19 -_080CE158: .4byte 0x00002187 -_080CE15C: .4byte 0x00002186 - thumb_func_end sub_080CE064 - - thumb_func_start sub_080CE160 -sub_080CE160: @ 0x080CE160 - push {lr} - ldr r0, _080CE170 - ldrb r0, [r0] - cmp r0, #0 - beq _080CE174 - bl sub_080CE00C - b _080CE17C - .align 2, 0 -_080CE170: .4byte gUnknown_2039A1A -_080CE174: - ldr r0, _080CE180 - ldr r1, _080CE184 - ldrb r1, [r1] - strb r1, [r0] -_080CE17C: - pop {r0} - bx r0 - .align 2, 0 -_080CE180: .4byte gUnknown_2039A19 -_080CE184: .4byte gUnknown_203CBEC - thumb_func_end sub_080CE160 - - thumb_func_start CompactPartySlots -CompactPartySlots: @ 0x080CE188 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r7, _080CE1D4 - movs r6, #0 - movs r5, #0 - movs r0, #0x64 - mov sb, r0 - ldr r1, _080CE1D8 - mov r8, r1 - subs r0, #0x65 - mov sl, r0 -_080CE1A4: - mov r0, sb - muls r0, r6, r0 - mov r1, r8 - adds r4, r0, r1 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080CE1DC - cmp r6, r5 - beq _080CE1CC - mov r0, sb - muls r0, r5, r0 - add r0, r8 - adds r1, r4, #0 - movs r2, #0x64 - bl memcpy -_080CE1CC: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - b _080CE1E6 - .align 2, 0 -_080CE1D4: .4byte 0x0000FFFF -_080CE1D8: .4byte gUnknown_2024190 -_080CE1DC: - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - cmp r0, sl - bne _080CE1E6 - adds r7, r6, #0 -_080CE1E6: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #5 - bls _080CE1A4 - lsls r7, r7, #0x10 - cmp r5, #5 - bhi _080CE20E - movs r6, #0x64 - ldr r4, _080CE220 -_080CE1FA: - adds r0, r5, #0 - muls r0, r6, r0 - adds r0, r0, r4 - bl ZeroMonData - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #5 - bls _080CE1FA -_080CE20E: - asrs r0, r7, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080CE220: .4byte gUnknown_2024190 - thumb_func_end CompactPartySlots - - thumb_func_start SetMonMarkings -SetMonMarkings: @ 0x080CE224 - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, sp - strb r0, [r1] - ldr r2, _080CE254 - ldr r1, [r2] - ldr r3, _080CE258 - adds r1, r1, r3 - strb r0, [r1] - ldr r0, _080CE25C - ldrb r0, [r0] - cmp r0, #0 - beq _080CE264 - ldr r0, [r2] - ldr r1, _080CE260 - adds r0, r0, r1 - movs r1, #8 - mov r2, sp - bl SetMonData - b _080CE298 - .align 2, 0 -_080CE254: .4byte gUnknown_20399A8 -_080CE258: .4byte 0x00000CEB -_080CE25C: .4byte gUnknown_2039A1A -_080CE260: .4byte 0x000020A4 -_080CE264: - ldr r4, _080CE2A0 - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #1 - bne _080CE284 - ldr r0, _080CE2A4 - movs r1, #0 - ldrsb r1, [r0, r1] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080CE2A8 - adds r0, r0, r1 - movs r1, #8 - mov r2, sp - bl SetMonData -_080CE284: - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #0 - bne _080CE298 - ldr r0, _080CE2A4 - ldrb r0, [r0] - movs r1, #8 - mov r2, sp - bl SetCurrentBoxMonData -_080CE298: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CE2A0: .4byte gUnknown_2039A18 -_080CE2A4: .4byte gUnknown_2039A19 -_080CE2A8: .4byte gUnknown_2024190 - thumb_func_end SetMonMarkings - - thumb_func_start CanMovePartyMon -CanMovePartyMon: @ 0x080CE2AC - push {lr} - ldr r0, _080CE2D4 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - bne _080CE2E0 - ldr r0, _080CE2D8 - ldrb r0, [r0] - cmp r0, #0 - bne _080CE2E0 - ldr r0, _080CE2DC - ldrb r0, [r0] - bl CountPartyAliveNonEggMonsExcept - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080CE2E0 - movs r0, #1 - b _080CE2E2 - .align 2, 0 -_080CE2D4: .4byte gUnknown_2039A18 -_080CE2D8: .4byte gUnknown_2039A1A -_080CE2DC: .4byte gUnknown_2039A19 -_080CE2E0: - movs r0, #0 -_080CE2E2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CanMovePartyMon - - thumb_func_start CanShiftMon -CanShiftMon: @ 0x080CE2E8 - push {lr} - ldr r0, _080CE32C - ldrb r0, [r0] - cmp r0, #0 - beq _080CE344 - ldr r0, _080CE330 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - bne _080CE328 - ldr r0, _080CE334 - ldrb r0, [r0] - bl CountPartyAliveNonEggMonsExcept - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080CE328 - ldr r0, _080CE338 - ldr r1, [r0] - ldr r2, _080CE33C - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _080CE344 - ldr r2, _080CE340 - adds r0, r1, r2 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _080CE344 -_080CE328: - movs r0, #1 - b _080CE346 - .align 2, 0 -_080CE32C: .4byte gUnknown_2039A1A -_080CE330: .4byte gUnknown_2039A18 -_080CE334: .4byte gUnknown_2039A19 -_080CE338: .4byte gUnknown_20399A8 -_080CE33C: .4byte 0x00000CED -_080CE340: .4byte 0x000020A4 -_080CE344: - movs r0, #0 -_080CE346: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CanShiftMon - - thumb_func_start sub_080CE34C -sub_080CE34C: @ 0x080CE34C - ldr r0, _080CE354 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080CE354: .4byte gUnknown_2039A1A - thumb_func_end sub_080CE34C - - thumb_func_start IsCursorOnBox -IsCursorOnBox: @ 0x080CE358 - push {lr} - movs r1, #0 - ldr r0, _080CE370 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #2 - bne _080CE36A - movs r1, #1 -_080CE36A: - adds r0, r1, #0 - pop {r1} - bx r1 - .align 2, 0 -_080CE370: .4byte gUnknown_2039A18 - thumb_func_end IsCursorOnBox - - thumb_func_start IsCursorOnCloseBox -IsCursorOnCloseBox: @ 0x080CE374 - push {lr} - movs r1, #0 - ldr r0, _080CE398 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #3 - bne _080CE392 - ldr r0, _080CE39C - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - bne _080CE392 - movs r1, #1 -_080CE392: - adds r0, r1, #0 - pop {r1} - bx r1 - .align 2, 0 -_080CE398: .4byte gUnknown_2039A18 -_080CE39C: .4byte gUnknown_2039A19 - thumb_func_end IsCursorOnCloseBox - - thumb_func_start IsCursorInBox -IsCursorInBox: @ 0x080CE3A0 - push {lr} - movs r1, #0 - ldr r0, _080CE3B8 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _080CE3B2 - movs r1, #1 -_080CE3B2: - adds r0, r1, #0 - pop {r1} - bx r1 - .align 2, 0 -_080CE3B8: .4byte gUnknown_2039A18 - thumb_func_end IsCursorInBox - - thumb_func_start sub_080CE3BC -sub_080CE3BC: @ 0x080CE3BC - push {r4, lr} - ldr r0, _080CE3F0 - ldr r1, [r0] - movs r2, #0 - ldr r3, _080CE3F4 - ldrb r0, [r3] - cmp r0, #0 - bne _080CE3CE - movs r2, #1 -_080CE3CE: - ldr r4, _080CE3F8 - adds r0, r1, r4 - strb r2, [r0] - ldrb r0, [r3] - cmp r0, #0 - bne _080CE44C - ldr r0, _080CE3FC - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - beq _080CE406 - cmp r0, #1 - bgt _080CE400 - cmp r0, #0 - beq _080CE436 - b _080CE44C - .align 2, 0 -_080CE3F0: .4byte gUnknown_20399A8 -_080CE3F4: .4byte gUnknown_2039A1A -_080CE3F8: .4byte 0x00000CEA -_080CE3FC: .4byte gUnknown_2039A18 -_080CE400: - cmp r0, #3 - bgt _080CE44C - b _080CE42C -_080CE406: - ldr r1, _080CE424 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #5 - bgt _080CE42C - adds r1, r0, #0 - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080CE428 - adds r0, r0, r1 - movs r1, #0 - bl SetCursorMonData - b _080CE44C - .align 2, 0 -_080CE424: .4byte gUnknown_2039A19 -_080CE428: .4byte gUnknown_2024190 -_080CE42C: - movs r0, #0 - movs r1, #2 - bl SetCursorMonData - b _080CE44C -_080CE436: - bl sub_080D15AC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080CE454 - ldrb r1, [r1] - bl GetBoxedMonPtr - movs r1, #1 - bl SetCursorMonData -_080CE44C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CE454: .4byte gUnknown_2039A19 - thumb_func_end sub_080CE3BC - - thumb_func_start sub_080CE458 -sub_080CE458: @ 0x080CE458 - push {lr} - ldr r0, _080CE46C - ldrb r0, [r0] - cmp r0, #0 - beq _080CE474 - ldr r0, _080CE470 - movs r1, #0 - bl SetCursorMonData - b _080CE478 - .align 2, 0 -_080CE46C: .4byte gUnknown_2039A1A -_080CE470: .4byte gUnknown_20399B4 -_080CE474: - bl sub_080CE3BC -_080CE478: - pop {r0} - bx r0 - thumb_func_end sub_080CE458 - - thumb_func_start SetCursorMonData -SetCursorMonData: @ 0x080CE47C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r5, r1, #0 - ldr r0, _080CE4E0 - mov r8, r0 - ldr r1, [r0] - ldr r3, _080CE4E4 - adds r2, r1, r3 - movs r0, #0 - strh r0, [r2] - mov sb, r0 - mov sl, r0 - cmp r5, #0 - bne _080CE594 - adds r6, r4, #0 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - mov r2, r8 - ldr r1, [r2] - ldr r3, _080CE4E8 - adds r1, r1, r3 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080CE4C0 - b _080CE6B0 -_080CE4C0: - adds r0, r4, #0 - movs r1, #4 - bl GetMonData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - cmp r0, #0 - beq _080CE4F0 - mov r1, r8 - ldr r0, [r1] - ldr r2, _080CE4EC - adds r0, r0, r2 - movs r1, #1 - strb r1, [r0] - b _080CE502 - .align 2, 0 -_080CE4E0: .4byte gUnknown_20399A8 -_080CE4E4: .4byte 0x00000CE6 -_080CE4E8: .4byte 0x00000CE4 -_080CE4EC: .4byte 0x00000CED -_080CE4F0: - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - mov r3, r8 - ldr r1, [r3] - ldr r2, _080CE578 - adds r1, r1, r2 - strb r0, [r1] -_080CE502: - ldr r4, _080CE57C - ldr r2, [r4] - ldr r5, _080CE580 - adds r2, r2, r5 - adds r0, r6, #0 - movs r1, #2 - bl GetMonData - ldr r0, [r4] - adds r0, r0, r5 - bl StringGetEnd10 - adds r0, r6, #0 - movs r1, #0x38 - bl GetMonData - ldr r1, [r4] - ldr r3, _080CE584 - adds r1, r1, r3 - strb r0, [r1] - adds r0, r6, #0 - movs r1, #8 - bl GetMonData - ldr r1, [r4] - ldr r2, _080CE588 - adds r1, r1, r2 - strb r0, [r1] - adds r0, r6, #0 - movs r1, #0 - bl GetMonData - ldr r1, [r4] - movs r3, #0xce - lsls r3, r3, #4 - adds r1, r1, r3 - str r0, [r1] - adds r0, r6, #0 - bl sub_0806E194 - ldr r1, [r4] - ldr r2, _080CE58C - adds r1, r1, r2 - str r0, [r1] - adds r0, r6, #0 - bl GetMonGender - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - adds r0, r6, #0 - movs r1, #0xc - bl GetMonData - ldr r1, [r4] - ldr r3, _080CE590 - adds r1, r1, r3 - strh r0, [r1] - b _080CE6A2 - .align 2, 0 -_080CE578: .4byte 0x00000CED -_080CE57C: .4byte gUnknown_20399A8 -_080CE580: .4byte 0x00000CEE -_080CE584: .4byte 0x00000CEC -_080CE588: .4byte 0x00000CEB -_080CE58C: .4byte 0x00000CDC -_080CE590: .4byte 0x00000CE6 -_080CE594: - cmp r5, #1 - beq _080CE59A - b _080CE698 -_080CE59A: - adds r7, r4, #0 - adds r0, r7, #0 - movs r1, #0x41 - bl sub_0806A1B4 - mov r2, r8 - ldr r1, [r2] - ldr r3, _080CE5E0 - adds r1, r1, r3 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080CE5B6 - b _080CE6B0 -_080CE5B6: - adds r0, r7, #0 - movs r1, #1 - bl sub_0806A1B4 - mov sb, r0 - adds r0, r7, #0 - movs r1, #4 - bl sub_0806A1B4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - cmp r0, #0 - beq _080CE5E8 - mov r1, r8 - ldr r0, [r1] - ldr r2, _080CE5E4 - adds r0, r0, r2 - strb r5, [r0] - b _080CE5FA - .align 2, 0 -_080CE5E0: .4byte 0x00000CE4 -_080CE5E4: .4byte 0x00000CED -_080CE5E8: - adds r0, r7, #0 - movs r1, #0x2d - bl sub_0806A1B4 - mov r3, r8 - ldr r1, [r3] - ldr r2, _080CE67C - adds r1, r1, r2 - strb r0, [r1] -_080CE5FA: - ldr r5, _080CE680 - ldr r2, [r5] - ldr r4, _080CE684 - adds r2, r2, r4 - adds r0, r7, #0 - movs r1, #2 - bl sub_0806A1B4 - ldr r0, [r5] - adds r0, r0, r4 - bl StringGetEnd10 - adds r0, r7, #0 - bl GetLevelFromBoxMonExp - ldr r1, [r5] - ldr r3, _080CE688 - adds r1, r1, r3 - strb r0, [r1] - adds r0, r7, #0 - movs r1, #8 - bl sub_0806A1B4 - ldr r1, [r5] - ldr r2, _080CE68C - adds r1, r1, r2 - strb r0, [r1] - adds r0, r7, #0 - movs r1, #0 - bl sub_0806A1B4 - adds r2, r0, #0 - ldr r1, [r5] - movs r6, #0xce - lsls r6, r6, #4 - adds r0, r1, r6 - str r2, [r0] - subs r4, #0xa - adds r1, r1, r4 - ldrh r0, [r1] - mov r1, sb - bl GetMonSpritePalFromSpeciesAndPersonality - ldr r1, [r5] - ldr r3, _080CE690 - adds r2, r1, r3 - str r0, [r2] - adds r4, r1, r4 - ldrh r0, [r4] - adds r1, r1, r6 - ldr r1, [r1] - bl GetGenderFromSpeciesAndPersonality - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - adds r0, r7, #0 - movs r1, #0xc - bl sub_0806A1B4 - ldr r1, [r5] - ldr r2, _080CE694 - adds r1, r1, r2 - strh r0, [r1] - b _080CE6A2 - .align 2, 0 -_080CE67C: .4byte 0x00000CED -_080CE680: .4byte gUnknown_20399A8 -_080CE684: .4byte 0x00000CEE -_080CE688: .4byte 0x00000CEC -_080CE68C: .4byte 0x00000CEB -_080CE690: .4byte 0x00000CDC -_080CE694: .4byte 0x00000CE6 -_080CE698: - ldr r3, _080CE6F4 - adds r0, r1, r3 - mov r1, sb - strh r1, [r0] - strh r1, [r2] -_080CE6A2: - ldr r0, _080CE6F8 - ldr r1, [r0] - ldr r2, _080CE6F4 - adds r0, r1, r2 - ldrh r2, [r0] - cmp r2, #0 - bne _080CE710 -_080CE6B0: - ldr r4, _080CE6F8 - ldr r0, [r4] - ldr r3, _080CE6FC - adds r0, r0, r3 - movs r1, #0 - movs r2, #5 - bl StringFill - ldr r0, [r4] - ldr r1, _080CE700 - adds r0, r0, r1 - movs r1, #0 - movs r2, #8 - bl StringFill - ldr r0, [r4] - ldr r2, _080CE704 - adds r0, r0, r2 - movs r1, #0 - movs r2, #8 - bl StringFill - ldr r0, [r4] - ldr r3, _080CE708 - adds r0, r0, r3 - movs r1, #0 - movs r2, #8 - bl StringFill - ldr r0, [r4] - ldr r1, _080CE70C - adds r0, r0, r1 - b _080CE76E - .align 2, 0 -_080CE6F4: .4byte 0x00000CE4 -_080CE6F8: .4byte gUnknown_20399A8 -_080CE6FC: .4byte 0x00000CEE -_080CE700: .4byte 0x00000CF9 -_080CE704: .4byte 0x00000D1D -_080CE708: .4byte 0x00000D41 -_080CE70C: .4byte 0x00000D65 -_080CE710: - ldr r3, _080CE734 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, #0 - beq _080CE790 - mov r0, sl - cmp r0, #0 - beq _080CE73C - ldr r2, _080CE738 - adds r0, r1, r2 - adds r3, #1 - adds r1, r1, r3 - movs r2, #0 - movs r3, #5 - bl StringCopyPadded - b _080CE74A - .align 2, 0 -_080CE734: .4byte 0x00000CED -_080CE738: .4byte 0x00000CF9 -_080CE73C: - ldr r2, _080CE778 - adds r0, r1, r2 - ldr r1, _080CE77C - movs r2, #0 - movs r3, #8 - bl StringCopyPadded -_080CE74A: - ldr r4, _080CE780 - ldr r0, [r4] - ldr r3, _080CE784 - adds r0, r0, r3 - movs r1, #0 - movs r2, #8 - bl StringFill - ldr r0, [r4] - ldr r1, _080CE788 - adds r0, r0, r1 - movs r1, #0 - movs r2, #8 - bl StringFill - ldr r0, [r4] - ldr r2, _080CE78C - adds r0, r0, r2 -_080CE76E: - movs r1, #0 - movs r2, #8 - bl StringFill - b _080CE934 - .align 2, 0 -_080CE778: .4byte 0x00000CF9 -_080CE77C: .4byte gUnknown_85C8C62 -_080CE780: .4byte gUnknown_20399A8 -_080CE784: .4byte 0x00000D1D -_080CE788: .4byte 0x00000D41 -_080CE78C: .4byte 0x00000D65 -_080CE790: - cmp r2, #0x1d - beq _080CE798 - cmp r2, #0x20 - bne _080CE79C -_080CE798: - movs r3, #0xff - mov sb, r3 -_080CE79C: - ldr r4, _080CE81C - ldr r1, [r4] - ldr r2, _080CE820 - adds r0, r1, r2 - ldr r3, _080CE824 - adds r1, r1, r3 - movs r2, #0 - movs r3, #5 - bl StringCopyPadded - ldr r1, [r4] - ldr r0, _080CE828 - adds r2, r1, r0 - movs r0, #0xba - strb r0, [r2] - ldr r3, _080CE82C - adds r2, r1, r3 - ldr r0, [r4] - ldr r1, _080CE830 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - ldr r0, _080CE834 - adds r1, r1, r0 - adds r0, r2, #0 - movs r2, #0 - movs r3, #5 - bl StringCopyPadded - ldr r4, [r4] - ldr r3, _080CE838 - adds r2, r4, r3 - movs r0, #0xfc - strb r0, [r2] - ldr r0, _080CE83C - adds r2, r4, r0 - movs r0, #4 - strb r0, [r2] - ldr r1, _080CE840 - adds r2, r4, r1 - mov r3, sb - cmp r3, #0 - beq _080CE850 - cmp r3, #0xfe - beq _080CE87C - movs r0, #2 - strb r0, [r2] - ldr r0, _080CE844 - adds r2, r4, r0 - movs r0, #1 - strb r0, [r2] - adds r1, #2 - adds r2, r4, r1 - movs r0, #3 - strb r0, [r2] - ldr r3, _080CE848 - adds r2, r4, r3 - movs r0, #0 - strb r0, [r2] - ldr r0, _080CE84C - adds r2, r4, r0 - b _080CE89C - .align 2, 0 -_080CE81C: .4byte gUnknown_20399A8 -_080CE820: .4byte 0x00000CF9 -_080CE824: .4byte 0x00000CEE -_080CE828: .4byte 0x00000D1D -_080CE82C: .4byte 0x00000D1E -_080CE830: .4byte 0x00000CE4 -_080CE834: .4byte gUnknown_82EA31C -_080CE838: .4byte 0x00000D41 -_080CE83C: .4byte 0x00000D42 -_080CE840: .4byte 0x00000D43 -_080CE844: .4byte 0x00000D44 -_080CE848: .4byte 0x00000D46 -_080CE84C: .4byte 0x00000D47 -_080CE850: - strb r0, [r2] - ldr r1, _080CE870 - adds r2, r4, r1 - movs r0, #1 - strb r0, [r2] - ldr r3, _080CE874 - adds r2, r4, r3 - movs r0, #5 - strb r0, [r2] - ldr r0, _080CE878 - adds r2, r4, r0 - movs r0, #0xb5 - strb r0, [r2] - adds r1, #3 - adds r2, r4, r1 - b _080CE89C - .align 2, 0 -_080CE870: .4byte 0x00000D44 -_080CE874: .4byte 0x00000D45 -_080CE878: .4byte 0x00000D46 -_080CE87C: - movs r0, #6 - strb r0, [r2] - ldr r3, _080CE90C - adds r2, r4, r3 - movs r0, #1 - strb r0, [r2] - ldr r0, _080CE910 - adds r2, r4, r0 - movs r0, #7 - strb r0, [r2] - ldr r1, _080CE914 - adds r2, r4, r1 - movs r0, #0xb6 - strb r0, [r2] - adds r3, #3 - adds r2, r4, r3 -_080CE89C: - movs r0, #0xfc - strb r0, [r2] - adds r2, #1 - movs r0, #4 - strb r0, [r2] - adds r2, #1 - movs r0, #2 - strb r0, [r2] - adds r2, #1 - movs r0, #1 - strb r0, [r2] - adds r2, #1 - movs r0, #3 - strb r0, [r2] - adds r2, #1 - movs r5, #0 - strb r5, [r2] - adds r2, #1 - movs r0, #0xf9 - strb r0, [r2] - adds r2, #1 - movs r0, #5 - strb r0, [r2] - adds r2, #1 - ldr r4, _080CE918 - ldr r0, [r4] - ldr r1, _080CE91C - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r2, #0 - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - adds r2, r0, #0 - strb r5, [r2] - movs r0, #0xff - strb r0, [r2, #1] - ldr r4, [r4] - ldr r2, _080CE920 - adds r1, r4, r2 - ldrh r0, [r1] - cmp r0, #0 - beq _080CE928 - ldr r3, _080CE924 - adds r4, r4, r3 - bl sub_080D6C8C - adds r1, r0, #0 - adds r0, r4, #0 - movs r2, #0 - movs r3, #8 - bl StringCopyPadded - b _080CE934 - .align 2, 0 -_080CE90C: .4byte 0x00000D44 -_080CE910: .4byte 0x00000D45 -_080CE914: .4byte 0x00000D46 -_080CE918: .4byte gUnknown_20399A8 -_080CE91C: .4byte 0x00000CEC -_080CE920: .4byte 0x00000CE6 -_080CE924: .4byte 0x00000D65 -_080CE928: - ldr r1, _080CE944 - adds r0, r4, r1 - movs r1, #0 - movs r2, #8 - bl StringFill -_080CE934: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080CE944: .4byte 0x00000D65 - thumb_func_end SetCursorMonData - - thumb_func_start HandleInput_InBox -HandleInput_InBox: @ 0x080CE948 - push {lr} - ldr r0, _080CE968 - ldr r0, [r0] - ldr r1, _080CE96C - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - beq _080CE970 - cmp r0, #1 - ble _080CE960 - cmp r0, #2 - beq _080CE976 -_080CE960: - bl InBoxInput_Normal - b _080CE97A - .align 2, 0 -_080CE968: .4byte gUnknown_20399A8 -_080CE96C: .4byte 0x000021FF -_080CE970: - bl InBoxInput_GrabbingMultiple - b _080CE97A -_080CE976: - bl InBoxInput_MovingMultiple -_080CE97A: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end HandleInput_InBox - - thumb_func_start InBoxInput_Normal -InBoxInput_Normal: @ 0x080CE984 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _080CEA08 - ldrb r0, [r0] - mov r8, r0 - ldr r2, _080CEA0C - ldrb r4, [r2] - ldr r5, _080CEA10 - ldr r0, [r5] - ldr r1, _080CEA14 - mov sl, r1 - add r0, sl - movs r1, #0 - strb r1, [r0] - ldr r0, [r5] - ldr r7, _080CEA18 - adds r0, r0, r7 - strb r1, [r0] - ldr r0, [r5] - ldr r3, _080CEA1C - mov sb, r3 - add r0, sb - strb r1, [r0] - ldr r6, _080CEA20 - ldrh r1, [r6, #0x30] - movs r0, #0x40 - ands r0, r1 - adds r3, r2, #0 - cmp r0, #0 - beq _080CE9C8 - b _080CEBB8 -_080CE9C8: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080CEA24 - movs r6, #1 - lsls r0, r4, #0x18 - movs r1, #0xc0 - lsls r1, r1, #0x13 - adds r0, r0, r1 - lsrs r4, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0x1d - bgt _080CE9E4 - b _080CEBD4 -_080CE9E4: - movs r2, #3 - mov r8, r2 - subs r0, #0x1e - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #3 - bl __divsi3 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, [r5] - add r0, sl - strb r6, [r0] - ldr r0, [r5] - add r0, sb - strb r6, [r0] - b _080CEBD4 - .align 2, 0 -_080CEA08: .4byte gUnknown_2039A18 -_080CEA0C: .4byte gUnknown_2039A19 -_080CEA10: .4byte gUnknown_20399A8 -_080CEA14: .4byte 0x00000CD2 -_080CEA18: .4byte 0x00000CD3 -_080CEA1C: .4byte 0x00000CD7 -_080CEA20: .4byte gUnknown_3002360 -_080CEA24: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080CEA5A - movs r6, #1 - movs r0, #0 - ldrsb r0, [r3, r0] - movs r1, #6 - bl __modsi3 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080CEA46 - lsls r0, r4, #0x18 - movs r3, #0xff - lsls r3, r3, #0x18 - b _080CEBC8 -_080CEA46: - ldr r0, [r5] - adds r0, r0, r7 - movs r1, #0xff - strb r1, [r0] - lsls r0, r4, #0x18 - movs r1, #0xa0 - lsls r1, r1, #0x13 - adds r0, r0, r1 - lsrs r4, r0, #0x18 - b _080CEBD4 -_080CEA5A: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080CEA8E - movs r6, #1 - movs r0, #0 - ldrsb r0, [r3, r0] - adds r0, #1 - movs r1, #6 - bl __modsi3 - cmp r0, #0 - beq _080CEA80 - lsls r0, r4, #0x18 - movs r2, #0x80 - lsls r2, r2, #0x11 - adds r0, r0, r2 - lsrs r4, r0, #0x18 - b _080CEBD4 -_080CEA80: - ldr r0, [r5] - adds r0, r0, r7 - strb r6, [r0] - lsls r0, r4, #0x18 - movs r3, #0xfb - lsls r3, r3, #0x18 - b _080CEBC8 -_080CEA8E: - ldrh r1, [r6, #0x2e] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080CEA9C - movs r6, #1 - b _080CEBCE -_080CEA9C: - movs r4, #1 - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080CEB60 - bl sub_080CF2D8 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080CEB60 - ldr r0, _080CEABC - ldrb r0, [r0] - cmp r0, #0 - bne _080CEAC0 - movs r0, #8 - b _080CEBE2 - .align 2, 0 -_080CEABC: .4byte gUnknown_2039A1D -_080CEAC0: - ldr r1, [r5] - ldrb r0, [r1, #1] - cmp r0, #2 - bne _080CEAD0 - ldr r0, _080CEAEC - ldrb r0, [r0] - cmp r0, #1 - bne _080CEB50 -_080CEAD0: - movs r0, #0 - bl sub_080CF814 - subs r0, #1 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0xe - bhi _080CEB60 - lsls r0, r0, #2 - ldr r1, _080CEAF0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080CEAEC: .4byte gUnknown_2039A1A -_080CEAF0: .4byte _080CEAF4 -_080CEAF4: @ jump table - .4byte _080CEB30 @ case 0 - .4byte _080CEB34 @ case 1 - .4byte _080CEB38 @ case 2 - .4byte _080CEB3C @ case 3 - .4byte _080CEB40 @ case 4 - .4byte _080CEB60 @ case 5 - .4byte _080CEB60 @ case 6 - .4byte _080CEB60 @ case 7 - .4byte _080CEB60 @ case 8 - .4byte _080CEB60 @ case 9 - .4byte _080CEB60 @ case 10 - .4byte _080CEB44 @ case 11 - .4byte _080CEB48 @ case 12 - .4byte _080CEB60 @ case 13 - .4byte _080CEB4C @ case 14 -_080CEB30: - movs r0, #0xb - b _080CEBE2 -_080CEB34: - movs r0, #0xc - b _080CEBE2 -_080CEB38: - movs r0, #0xd - b _080CEBE2 -_080CEB3C: - movs r0, #0xe - b _080CEBE2 -_080CEB40: - movs r0, #0xf - b _080CEBE2 -_080CEB44: - movs r0, #0x10 - b _080CEBE2 -_080CEB48: - movs r0, #0x11 - b _080CEBE2 -_080CEB4C: - movs r0, #0x12 - b _080CEBE2 -_080CEB50: - ldr r2, _080CEB5C - adds r0, r1, r2 - strb r4, [r0] - movs r0, #0x14 - b _080CEBE2 - .align 2, 0 -_080CEB5C: .4byte 0x000021FF -_080CEB60: - ldr r2, _080CEB70 - ldrh r1, [r2, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080CEB74 - movs r0, #0x13 - b _080CEBE2 - .align 2, 0 -_080CEB70: .4byte gUnknown_3002360 -_080CEB74: - ldr r0, _080CEB90 - ldr r0, [r0] - ldrb r0, [r0, #0x13] - cmp r0, #1 - bne _080CEBA2 - ldrh r1, [r2, #0x2c] - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080CEB94 - movs r0, #0xa - b _080CEBE2 - .align 2, 0 -_080CEB90: .4byte gUnknown_3005AF0 -_080CEB94: - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080CEBA2 - movs r0, #9 - b _080CEBE2 -_080CEBA2: - ldrh r1, [r2, #0x2e] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080CEBB4 - bl sub_080CF640 - movs r0, #0 - b _080CEBE2 -_080CEBB4: - movs r6, #0 - b _080CEBE0 -_080CEBB8: - movs r6, #1 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #5 - ble _080CEBCE - lsls r0, r4, #0x18 - movs r3, #0xfa - lsls r3, r3, #0x18 -_080CEBC8: - adds r0, r0, r3 - lsrs r4, r0, #0x18 - b _080CEBD4 -_080CEBCE: - movs r0, #2 - mov r8, r0 - movs r4, #0 -_080CEBD4: - cmp r6, #0 - beq _080CEBE0 - mov r0, r8 - adds r1, r4, #0 - bl sub_080CD110 -_080CEBE0: - adds r0, r6, #0 -_080CEBE2: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end InBoxInput_Normal - - thumb_func_start InBoxInput_GrabbingMultiple -InBoxInput_GrabbingMultiple: @ 0x080CEBF0 - push {r4, lr} - ldr r1, _080CEC20 - ldrh r0, [r1, #0x2c] - movs r4, #1 - ands r4, r0 - cmp r4, #0 - beq _080CECA4 - ldrh r1, [r1, #0x30] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080CEC28 - ldr r4, _080CEC24 - movs r0, #0 - ldrsb r0, [r4, r0] - movs r1, #6 - bl __divsi3 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080CEC9C - ldrb r1, [r4] - subs r1, #6 - b _080CEC8A - .align 2, 0 -_080CEC20: .4byte gUnknown_3002360 -_080CEC24: .4byte gUnknown_2039A19 -_080CEC28: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080CEC48 - ldr r1, _080CEC44 - movs r0, #0 - ldrsb r0, [r1, r0] - adds r0, #6 - cmp r0, #0x1d - bgt _080CEC9C - ldrb r1, [r1] - adds r1, #6 - b _080CEC8A - .align 2, 0 -_080CEC44: .4byte gUnknown_2039A19 -_080CEC48: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080CEC6C - ldr r4, _080CEC68 - movs r0, #0 - ldrsb r0, [r4, r0] - movs r1, #6 - bl __modsi3 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080CEC9C - ldrb r1, [r4] - subs r1, #1 - b _080CEC8A - .align 2, 0 -_080CEC68: .4byte gUnknown_2039A19 -_080CEC6C: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080CECA0 - ldr r4, _080CEC98 - movs r0, #0 - ldrsb r0, [r4, r0] - adds r0, #1 - movs r1, #6 - bl __modsi3 - cmp r0, #0 - beq _080CEC9C - ldrb r1, [r4] - adds r1, #1 -_080CEC8A: - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0 - bl sub_080CD110 - movs r0, #0x15 - b _080CED18 - .align 2, 0 -_080CEC98: .4byte gUnknown_2039A19 -_080CEC9C: - movs r0, #0x18 - b _080CED18 -_080CECA0: - movs r0, #0 - b _080CED18 -_080CECA4: - bl sub_080D0444 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080CECE0 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - cmp r0, r1 - beq _080CECF8 - ldr r2, _080CECE4 - ldr r0, _080CECE8 - ldr r1, [r0] - ldr r3, _080CECEC - adds r0, r1, r3 - ldrh r0, [r0] - rsbs r0, r0, #0 - lsrs r0, r0, #0x1f - strb r0, [r2] - ldr r0, _080CECF0 - adds r1, r1, r0 - movs r0, #2 - strb r0, [r1] - bl sub_080D15AC - ldr r1, _080CECF4 - strb r0, [r1] - movs r0, #0x17 - b _080CED18 - .align 2, 0 -_080CECE0: .4byte gUnknown_2039A19 -_080CECE4: .4byte gUnknown_2039A1A -_080CECE8: .4byte gUnknown_20399A8 -_080CECEC: .4byte 0x00000CE4 -_080CECF0: .4byte 0x000021FF -_080CECF4: .4byte gUnknown_2039A1B -_080CECF8: - ldr r1, _080CED20 - ldr r0, [r1] - ldr r2, _080CED24 - adds r0, r0, r2 - strb r4, [r0] - ldr r0, [r1] - ldr r3, _080CED28 - adds r0, r0, r3 - ldr r1, [r0] - adds r1, #0x3e - ldrb r2, [r1] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - movs r0, #0x16 -_080CED18: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080CED20: .4byte gUnknown_20399A8 -_080CED24: .4byte 0x000021FF -_080CED28: .4byte 0x00000CB8 - thumb_func_end InBoxInput_GrabbingMultiple - - thumb_func_start InBoxInput_MovingMultiple -InBoxInput_MovingMultiple: @ 0x080CED2C - push {r4, lr} - ldr r2, _080CED50 - ldrh r1, [r2, #0x30] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080CED58 - movs r0, #0 - bl sub_080CFE20 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080CEE04 - ldr r0, _080CED54 - ldrb r1, [r0] - subs r1, #6 - b _080CEDB6 - .align 2, 0 -_080CED50: .4byte gUnknown_3002360 -_080CED54: .4byte gUnknown_2039A19 -_080CED58: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080CED78 - movs r0, #1 - bl sub_080CFE20 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080CEE04 - ldr r0, _080CED74 - ldrb r1, [r0] - adds r1, #6 - b _080CEDB6 - .align 2, 0 -_080CED74: .4byte gUnknown_2039A19 -_080CED78: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080CED98 - movs r0, #2 - bl sub_080CFE20 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080CEE1E - ldr r0, _080CED94 - ldrb r1, [r0] - subs r1, #1 - b _080CEDB6 - .align 2, 0 -_080CED94: .4byte gUnknown_2039A19 -_080CED98: - movs r0, #0x10 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0 - beq _080CEDC8 - movs r0, #3 - bl sub_080CFE20 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080CEE32 - ldr r0, _080CEDC4 - ldrb r1, [r0] - adds r1, #1 -_080CEDB6: - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0 - bl sub_080CD110 - movs r0, #0x19 - b _080CEE38 - .align 2, 0 -_080CEDC4: .4byte gUnknown_2039A19 -_080CEDC8: - ldrh r1, [r2, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080CEDFC - bl sub_080D0460 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080CEE04 - ldr r0, _080CEDF0 - strb r4, [r0] - ldr r0, _080CEDF4 - ldr r0, [r0] - ldr r1, _080CEDF8 - adds r0, r0, r1 - strb r4, [r0] - movs r0, #0x1a - b _080CEE38 - .align 2, 0 -_080CEDF0: .4byte gUnknown_2039A1A -_080CEDF4: .4byte gUnknown_20399A8 -_080CEDF8: .4byte 0x000021FF -_080CEDFC: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080CEE08 -_080CEE04: - movs r0, #0x18 - b _080CEE38 -_080CEE08: - ldr r0, _080CEE24 - ldr r0, [r0] - ldrb r0, [r0, #0x13] - cmp r0, #1 - bne _080CEE36 - ldrh r1, [r2, #0x2c] - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080CEE28 -_080CEE1E: - movs r0, #0xa - b _080CEE38 - .align 2, 0 -_080CEE24: .4byte gUnknown_3005AF0 -_080CEE28: - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080CEE36 -_080CEE32: - movs r0, #9 - b _080CEE38 -_080CEE36: - movs r0, #0 -_080CEE38: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end InBoxInput_MovingMultiple - - thumb_func_start HandleInput_InParty -HandleInput_InParty: @ 0x080CEE40 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r0, _080CEEB0 - ldrb r0, [r0] - mov sb, r0 - ldr r6, _080CEEB4 - ldrb r4, [r6] - ldr r2, _080CEEB8 - ldr r0, [r2] - ldr r1, _080CEEBC - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - ldr r0, [r2] - ldr r3, _080CEEC0 - adds r0, r0, r3 - strb r1, [r0] - ldr r0, [r2] - adds r3, #5 - adds r0, r0, r3 - strb r1, [r0] - mov r8, r1 - movs r7, #0 - ldr r1, _080CEEC4 - ldrh r3, [r1, #0x30] - movs r0, #0x40 - ands r0, r3 - adds r5, r6, #0 - mov ip, r1 - cmp r0, #0 - beq _080CEE84 - b _080CF024 -_080CEE84: - movs r0, #0x80 - ands r0, r3 - cmp r0, #0 - beq _080CEEC8 - lsls r0, r4, #0x18 - movs r1, #0x80 - lsls r1, r1, #0x11 - adds r0, r0, r1 - lsrs r4, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #6 - ble _080CEE9E - movs r4, #0 -_080CEE9E: - lsls r0, r4, #0x18 - asrs r0, r0, #0x18 - movs r1, #0 - ldrsb r1, [r5, r1] - cmp r0, r1 - bne _080CEEAC - b _080CF042 -_080CEEAC: - movs r7, #1 - b _080CF046 - .align 2, 0 -_080CEEB0: .4byte gUnknown_2039A18 -_080CEEB4: .4byte gUnknown_2039A19 -_080CEEB8: .4byte gUnknown_20399A8 -_080CEEBC: .4byte 0x00000CD3 -_080CEEC0: .4byte 0x00000CD2 -_080CEEC4: .4byte gUnknown_3002360 -_080CEEC8: - movs r0, #0x20 - ands r0, r3 - cmp r0, #0 - beq _080CEEEC - ldrb r1, [r5] - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, #0 - beq _080CEEEC - movs r7, #1 - ldr r0, [r2] - ldr r2, _080CEEE8 - adds r0, r0, r2 - strb r1, [r0] - movs r4, #0 - b _080CF042 - .align 2, 0 -_080CEEE8: .4byte 0x00000CD6 -_080CEEEC: - mov r3, ip - ldrh r1, [r3, #0x30] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080CEF1A - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, #0 - bne _080CEF10 - movs r7, #1 - ldr r0, [r2] - ldr r1, _080CEF0C - adds r0, r0, r1 - ldrb r4, [r0] - b _080CF042 - .align 2, 0 -_080CEF0C: .4byte 0x00000CD6 -_080CEF10: - movs r7, #6 - movs r2, #0 - mov sb, r2 - movs r4, #0 - b _080CF042 -_080CEF1A: - mov r3, ip - ldrh r1, [r3, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080CEFD8 - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, #6 - bne _080CEF40 - ldr r0, [r2] - ldrb r0, [r0, #1] - cmp r0, #1 - bne _080CEF3A - movs r0, #4 - b _080CF054 -_080CEF3A: - movs r0, #1 - mov r8, r0 - b _080CEFD8 -_080CEF40: - bl sub_080CF2D8 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080CEFD8 - ldr r0, _080CEF58 - ldrb r0, [r0] - cmp r0, #0 - bne _080CEF5C - movs r0, #8 - b _080CF054 - .align 2, 0 -_080CEF58: .4byte gUnknown_2039A1D -_080CEF5C: - movs r0, #0 - bl sub_080CF814 - subs r0, #1 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0xe - bhi _080CEFD8 - lsls r0, r0, #2 - ldr r1, _080CEF78 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080CEF78: .4byte _080CEF7C -_080CEF7C: @ jump table - .4byte _080CEFB8 @ case 0 - .4byte _080CEFBC @ case 1 - .4byte _080CEFC0 @ case 2 - .4byte _080CEFC4 @ case 3 - .4byte _080CEFC8 @ case 4 - .4byte _080CEFD8 @ case 5 - .4byte _080CEFD8 @ case 6 - .4byte _080CEFD8 @ case 7 - .4byte _080CEFD8 @ case 8 - .4byte _080CEFD8 @ case 9 - .4byte _080CEFD8 @ case 10 - .4byte _080CEFCC @ case 11 - .4byte _080CEFD0 @ case 12 - .4byte _080CEFD8 @ case 13 - .4byte _080CEFD4 @ case 14 -_080CEFB8: - movs r0, #0xb - b _080CF054 -_080CEFBC: - movs r0, #0xc - b _080CF054 -_080CEFC0: - movs r0, #0xd - b _080CF054 -_080CEFC4: - movs r0, #0xe - b _080CF054 -_080CEFC8: - movs r0, #0xf - b _080CF054 -_080CEFCC: - movs r0, #0x10 - b _080CF054 -_080CEFD0: - movs r0, #0x11 - b _080CF054 -_080CEFD4: - movs r0, #0x12 - b _080CF054 -_080CEFD8: - ldr r2, _080CEFF4 - ldrh r1, [r2, #0x2e] - movs r0, #2 - ands r0, r1 - mov ip, r2 - cmp r0, #0 - beq _080CF000 - ldr r0, _080CEFF8 - ldr r0, [r0] - ldrb r0, [r0, #1] - cmp r0, #1 - bne _080CEFFC - movs r0, #0x13 - b _080CF054 - .align 2, 0 -_080CEFF4: .4byte gUnknown_3002360 -_080CEFF8: .4byte gUnknown_20399A8 -_080CEFFC: - movs r1, #1 - mov r8, r1 -_080CF000: - mov r2, r8 - cmp r2, #0 - beq _080CF010 - movs r7, #6 - movs r3, #0 - mov sb, r3 - movs r4, #0 - b _080CF042 -_080CF010: - mov r0, ip - ldrh r1, [r0, #0x2e] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080CF042 - bl sub_080CF640 - movs r0, #0 - b _080CF054 -_080CF024: - lsls r0, r4, #0x18 - movs r1, #0xff - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r4, r0, #0x18 - cmp r0, #0 - bge _080CF034 - movs r4, #6 -_080CF034: - lsls r0, r4, #0x18 - asrs r0, r0, #0x18 - movs r1, #0 - ldrsb r1, [r6, r1] - cmp r0, r1 - beq _080CF042 - movs r7, #1 -_080CF042: - cmp r7, #0 - beq _080CF052 -_080CF046: - cmp r7, #6 - beq _080CF052 - mov r0, sb - adds r1, r4, #0 - bl sub_080CD110 -_080CF052: - adds r0, r7, #0 -_080CF054: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end HandleInput_InParty - - thumb_func_start HandleInput_OnBox -HandleInput_OnBox: @ 0x080CF060 - push {r4, r5, r6, lr} - ldr r3, _080CF09C - ldr r0, [r3] - ldr r1, _080CF0A0 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - ldr r0, [r3] - ldr r2, _080CF0A4 - adds r0, r0, r2 - strb r1, [r0] - ldr r0, [r3] - ldr r5, _080CF0A8 - adds r0, r0, r5 - strb r1, [r0] - ldr r1, _080CF0AC - ldrh r2, [r1, #0x30] - movs r0, #0x40 - ands r0, r2 - cmp r0, #0 - bne _080CF126 - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - beq _080CF0B0 - movs r4, #1 - movs r1, #0 - movs r6, #2 - b _080CF132 - .align 2, 0 -_080CF09C: .4byte gUnknown_20399A8 -_080CF0A0: .4byte 0x00000CD3 -_080CF0A4: .4byte 0x00000CD2 -_080CF0A8: .4byte 0x00000CD7 -_080CF0AC: .4byte gUnknown_3002360 -_080CF0B0: - ldrh r2, [r1, #0x2c] - movs r0, #0x20 - ands r0, r2 - cmp r0, #0 - bne _080CF0D6 - movs r0, #0x10 - ands r0, r2 - cmp r0, #0 - bne _080CF0EA - ldr r0, _080CF0DC - ldr r0, [r0] - ldrb r0, [r0, #0x13] - cmp r0, #1 - bne _080CF0EE - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r2 - cmp r0, #0 - beq _080CF0E0 -_080CF0D6: - movs r0, #0xa - b _080CF14E - .align 2, 0 -_080CF0DC: .4byte gUnknown_3005AF0 -_080CF0E0: - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r2 - cmp r0, #0 - beq _080CF0EE -_080CF0EA: - movs r0, #9 - b _080CF14E -_080CF0EE: - ldrh r1, [r1, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080CF106 - movs r0, #0 - bl sub_080CCA24 - bl AddBoxMenu - movs r0, #7 - b _080CF14E -_080CF106: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080CF112 - movs r0, #0x13 - b _080CF14E -_080CF112: - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080CF122 - bl sub_080CF640 - movs r0, #0 - b _080CF14E -_080CF122: - movs r4, #0 - b _080CF14C -_080CF126: - movs r4, #1 - movs r1, #3 - movs r6, #0 - ldr r0, [r3] - adds r0, r0, r5 - strb r4, [r0] -_080CF132: - cmp r4, #0 - beq _080CF14C - lsls r5, r1, #0x18 - cmp r1, #2 - beq _080CF142 - movs r0, #0 - bl sub_080CCA24 -_080CF142: - lsrs r0, r5, #0x18 - lsls r1, r6, #0x18 - lsrs r1, r1, #0x18 - bl sub_080CD110 -_080CF14C: - adds r0, r4, #0 -_080CF14E: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end HandleInput_OnBox - - thumb_func_start HandleInput_OnButtons -HandleInput_OnButtons: @ 0x080CF154 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _080CF1A4 - ldrb r0, [r0] - mov r8, r0 - ldr r0, _080CF1A8 - mov ip, r0 - ldrb r2, [r0] - ldr r3, _080CF1AC - ldr r0, [r3] - ldr r1, _080CF1B0 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - ldr r0, [r3] - ldr r6, _080CF1B4 - adds r0, r0, r6 - strb r1, [r0] - ldr r0, [r3] - ldr r5, _080CF1B8 - adds r0, r0, r5 - strb r1, [r0] - ldr r7, _080CF1BC - ldrh r1, [r7, #0x30] - movs r0, #0x40 - ands r0, r1 - adds r4, r3, #0 - cmp r0, #0 - bne _080CF22E - movs r0, #0x88 - ands r0, r1 - cmp r0, #0 - beq _080CF1C0 - movs r7, #1 - movs r0, #2 - mov r8, r0 - movs r2, #0 - ldr r0, [r4] - b _080CF24C - .align 2, 0 -_080CF1A4: .4byte gUnknown_2039A18 -_080CF1A8: .4byte gUnknown_2039A19 -_080CF1AC: .4byte gUnknown_20399A8 -_080CF1B0: .4byte 0x00000CD3 -_080CF1B4: .4byte 0x00000CD2 -_080CF1B8: .4byte 0x00000CD7 -_080CF1BC: .4byte gUnknown_3002360 -_080CF1C0: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080CF1DC - movs r7, #1 - lsls r0, r2, #0x18 - movs r1, #0xff - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r2, r0, #0x18 - cmp r0, #0 - bge _080CF250 - movs r2, #1 - b _080CF250 -_080CF1DC: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080CF1FA - movs r7, #1 - lsls r0, r2, #0x18 - movs r1, #0x80 - lsls r1, r1, #0x11 - adds r0, r0, r1 - lsrs r2, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - ble _080CF250 - movs r2, #0 - b _080CF250 -_080CF1FA: - ldrh r1, [r7, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080CF20E - movs r0, #4 - cmp r2, #0 - bne _080CF25E - movs r0, #5 - b _080CF25E -_080CF20E: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080CF21A - movs r0, #0x13 - b _080CF25E -_080CF21A: - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080CF22A - bl sub_080CF640 - movs r0, #0 - b _080CF25E -_080CF22A: - movs r7, #0 - b _080CF25C -_080CF22E: - movs r7, #1 - movs r0, #0 - mov r8, r0 - ldr r0, [r3] - adds r0, r0, r6 - movs r1, #0xff - strb r1, [r0] - mov r1, ip - movs r0, #0 - ldrsb r0, [r1, r0] - movs r2, #0x1d - cmp r0, #0 - bne _080CF24A - movs r2, #0x18 -_080CF24A: - ldr r0, [r3] -_080CF24C: - adds r0, r0, r5 - strb r7, [r0] -_080CF250: - cmp r7, #0 - beq _080CF25C - mov r0, r8 - adds r1, r2, #0 - bl sub_080CD110 -_080CF25C: - adds r0, r7, #0 -_080CF25E: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end HandleInput_OnButtons - - thumb_func_start sub_080CF268 -sub_080CF268: @ 0x080CF268 - push {r4, r5, lr} - movs r3, #0 - ldr r0, _080CF294 - ldr r1, [r0] - adds r4, r0, #0 - cmp r1, #0 - beq _080CF2AC - ldr r5, _080CF298 -_080CF278: - lsls r0, r3, #3 - adds r2, r0, r4 - movs r1, #4 - ldrsb r1, [r2, r1] - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r1, r0 - bne _080CF29C - ldr r0, [r2] - bl _call_via_r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _080CF2AE - .align 2, 0 -_080CF294: .4byte gUnknown_85564B8 -_080CF298: .4byte gUnknown_2039A18 -_080CF29C: - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - lsls r0, r3, #3 - adds r0, r0, r4 - ldr r0, [r0] - cmp r0, #0 - bne _080CF278 -_080CF2AC: - movs r0, #0 -_080CF2AE: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_080CF268 - - thumb_func_start AddBoxMenu -AddBoxMenu: @ 0x080CF2B4 - push {lr} - bl InitMenu - movs r0, #9 - bl SetMenuText - movs r0, #0xa - bl SetMenuText - movs r0, #0xb - bl SetMenuText - movs r0, #0 - bl SetMenuText - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AddBoxMenu - - thumb_func_start sub_080CF2D8 -sub_080CF2D8: @ 0x080CF2D8 - push {lr} - bl InitMenu - ldr r0, _080CF2F0 - ldr r0, [r0] - ldrb r0, [r0, #1] - cmp r0, #3 - bne _080CF2F4 - bl sub_080CF3C0 - b _080CF2F8 - .align 2, 0 -_080CF2F0: .4byte gUnknown_20399A8 -_080CF2F4: - bl sub_080CF300 -_080CF2F8: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - thumb_func_end sub_080CF2D8 - - thumb_func_start sub_080CF300 -sub_080CF300: @ 0x080CF300 - push {lr} - bl sub_080CCD80 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r0, _080CF320 - ldr r0, [r0] - ldrb r0, [r0, #1] - cmp r0, #1 - beq _080CF32A - cmp r0, #1 - bgt _080CF324 - cmp r0, #0 - beq _080CF336 - b _080CF370 - .align 2, 0 -_080CF320: .4byte gUnknown_20399A8 -_080CF324: - cmp r0, #2 - beq _080CF342 - b _080CF370 -_080CF32A: - cmp r1, #0 - beq _080CF370 - movs r0, #1 - bl SetMenuText - b _080CF374 -_080CF336: - cmp r1, #0 - beq _080CF370 - movs r0, #2 - bl SetMenuText - b _080CF374 -_080CF342: - ldr r0, _080CF358 - ldrb r0, [r0] - cmp r0, #0 - beq _080CF364 - cmp r1, #0 - beq _080CF35C - movs r0, #4 - bl SetMenuText - b _080CF374 - .align 2, 0 -_080CF358: .4byte gUnknown_2039A1A -_080CF35C: - movs r0, #5 - bl SetMenuText - b _080CF374 -_080CF364: - cmp r1, #0 - beq _080CF370 - movs r0, #3 - bl SetMenuText - b _080CF374 -_080CF370: - movs r0, #0 - b _080CF3BA -_080CF374: - movs r0, #6 - bl SetMenuText - ldr r0, _080CF398 - ldr r0, [r0] - ldrb r0, [r0, #1] - cmp r0, #2 - bne _080CF3A6 - ldr r0, _080CF39C - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _080CF3A0 - movs r0, #2 - bl SetMenuText - b _080CF3A6 - .align 2, 0 -_080CF398: .4byte gUnknown_20399A8 -_080CF39C: .4byte gUnknown_2039A18 -_080CF3A0: - movs r0, #1 - bl SetMenuText -_080CF3A6: - movs r0, #8 - bl SetMenuText - movs r0, #7 - bl SetMenuText - movs r0, #0 - bl SetMenuText - movs r0, #1 -_080CF3BA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080CF300 - - thumb_func_start sub_080CF3C0 -sub_080CF3C0: @ 0x080CF3C0 - push {r4, r5, lr} - ldr r4, _080CF3FC - ldr r0, [r4] - ldr r5, _080CF400 - adds r0, r0, r5 - ldrh r1, [r0] - movs r0, #0xce - lsls r0, r0, #1 - cmp r1, r0 - beq _080CF456 - bl IsActiveItemMoving - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080CF428 - ldr r2, [r4] - ldr r0, _080CF404 - adds r1, r2, r0 - ldrh r0, [r1] - cmp r0, #0 - bne _080CF408 - adds r0, r2, r5 - ldrh r0, [r0] - cmp r0, #0 - beq _080CF456 - movs r0, #0xe - bl SetMenuText - b _080CF460 - .align 2, 0 -_080CF3FC: .4byte gUnknown_20399A8 -_080CF400: .4byte 0x00000CE4 -_080CF404: .4byte 0x00000CE6 -_080CF408: - ldrh r0, [r1] - bl ItemIsMail - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080CF420 - movs r0, #0xc - bl SetMenuText - movs r0, #0x10 - bl SetMenuText -_080CF420: - movs r0, #0x11 - bl SetMenuText - b _080CF460 -_080CF428: - ldr r2, [r4] - ldr r0, _080CF444 - adds r1, r2, r0 - ldrh r0, [r1] - cmp r0, #0 - bne _080CF448 - adds r0, r2, r5 - ldrh r0, [r0] - cmp r0, #0 - beq _080CF456 - movs r0, #0xd - bl SetMenuText - b _080CF460 - .align 2, 0 -_080CF444: .4byte 0x00000CE6 -_080CF448: - ldrh r0, [r1] - bl ItemIsMail - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080CF45A -_080CF456: - movs r0, #0 - b _080CF468 -_080CF45A: - movs r0, #0xf - bl SetMenuText -_080CF460: - movs r0, #0 - bl SetMenuText - movs r0, #1 -_080CF468: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080CF3C0 - - thumb_func_start sub_080CF470 -sub_080CF470: @ 0x080CF470 - ldr r1, _080CF488 - ldr r1, [r1] - ldr r2, _080CF48C - adds r1, r1, r2 - ldr r2, [r1] - ldrh r2, [r2, #0x20] - strh r2, [r0, #0x20] - ldr r1, [r1] - ldrh r1, [r1, #0x22] - adds r1, #0x14 - strh r1, [r0, #0x22] - bx lr - .align 2, 0 -_080CF488: .4byte gUnknown_20399A8 -_080CF48C: .4byte 0x00000CB4 - thumb_func_end sub_080CF470 - - thumb_func_start sub_080CF490 -sub_080CF490: @ 0x080CF490 - push {r4, r5, r6, lr} - sub sp, #0x2c - mov r1, sp - ldr r0, _080CF55C - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} - add r4, sp, #0x18 - adds r1, r4, #0 - ldr r0, _080CF560 - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} - ldr r0, [r0] - str r0, [r1] - mov r0, sp - bl LoadSpriteSheets - adds r0, r4, #0 - bl LoadSpritePalettes - ldr r0, _080CF564 - bl IndexOfSpritePaletteTag - ldr r6, _080CF568 - ldr r1, [r6] - ldr r4, _080CF56C - adds r1, r1, r4 - strb r0, [r1] - ldr r0, _080CF570 - bl IndexOfSpritePaletteTag - ldr r1, [r6] - ldr r5, _080CF574 - adds r1, r1, r5 - strb r0, [r1] - ldr r0, _080CF578 - ldrb r0, [r0] - ldr r1, _080CF57C - ldrb r1, [r1] - add r4, sp, #0x28 - mov r5, sp - adds r5, #0x2a - adds r2, r4, #0 - adds r3, r5, #0 - bl sub_080CCCC0 - ldr r0, _080CF580 - movs r2, #0 - ldrsh r1, [r4, r2] - movs r3, #0 - ldrsh r2, [r5, r3] - movs r3, #6 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _080CF594 - ldr r2, [r6] - ldr r4, _080CF584 - adds r3, r2, r4 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _080CF588 - adds r1, r1, r0 - str r1, [r3] - ldr r0, _080CF58C - ldr r5, _080CF56C - adds r2, r2, r5 - ldrb r0, [r0] - adds r2, r2, r0 - ldrb r2, [r2] - lsls r2, r2, #4 - ldrb r3, [r1, #5] - movs r0, #0xf - ands r0, r3 - orrs r0, r2 - strb r0, [r1, #5] - ldr r0, [r6] - adds r0, r0, r4 - ldr r2, [r0] - ldrb r1, [r2, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2, #5] - ldr r0, _080CF590 - ldrb r0, [r0] - cmp r0, #0 - beq _080CF59E - ldr r0, [r6] - adds r0, r0, r4 - ldr r0, [r0] - movs r1, #3 - bl StartSpriteAnim - b _080CF59E - .align 2, 0 -_080CF55C: .4byte gUnknown_85564E0 -_080CF560: .4byte gUnknown_85564F8 -_080CF564: .4byte 0x0000DACA -_080CF568: .4byte gUnknown_20399A8 -_080CF56C: .4byte 0x00000CD8 -_080CF570: .4byte 0x0000DAC7 -_080CF574: .4byte 0x00000CD9 -_080CF578: .4byte gUnknown_2039A18 -_080CF57C: .4byte gUnknown_2039A19 -_080CF580: .4byte gUnknown_855654C -_080CF584: .4byte 0x00000CB4 -_080CF588: .4byte gUnknown_20205AC -_080CF58C: .4byte gUnknown_2039A1D -_080CF590: .4byte gUnknown_2039A1A -_080CF594: - ldr r0, [r6] - ldr r1, _080CF5B0 - adds r0, r0, r1 - movs r1, #0 - str r1, [r0] -_080CF59E: - ldr r0, _080CF5B4 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - bne _080CF5B8 - movs r3, #0xd - movs r4, #1 - b _080CF5BC - .align 2, 0 -_080CF5B0: .4byte 0x00000CB4 -_080CF5B4: .4byte gUnknown_2039A18 -_080CF5B8: - movs r3, #0x15 - movs r4, #2 -_080CF5BC: - ldr r0, _080CF610 - movs r1, #0 - movs r2, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _080CF624 - ldr r5, _080CF614 - ldr r2, [r5] - ldr r3, _080CF618 - adds r2, r2, r3 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _080CF61C - adds r1, r1, r0 - str r1, [r2] - lsls r3, r4, #2 - ldrb r2, [r1, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #5] - ldr r0, _080CF620 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _080CF630 - ldr r0, [r5] - ldr r4, _080CF618 - adds r0, r0, r4 - ldr r1, [r0] - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - b _080CF630 - .align 2, 0 -_080CF610: .4byte gUnknown_8556564 -_080CF614: .4byte gUnknown_20399A8 -_080CF618: .4byte 0x00000CB8 -_080CF61C: .4byte gUnknown_20205AC -_080CF620: .4byte gUnknown_2039A18 -_080CF624: - ldr r0, _080CF638 - ldr r0, [r0] - ldr r5, _080CF63C - adds r0, r0, r5 - movs r1, #0 - str r1, [r0] -_080CF630: - add sp, #0x2c - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080CF638: .4byte gUnknown_20399A8 -_080CF63C: .4byte 0x00000CB8 - thumb_func_end sub_080CF490 - - thumb_func_start sub_080CF640 -sub_080CF640: @ 0x080CF640 - push {lr} - ldr r2, _080CF674 - movs r1, #0 - ldrb r0, [r2] - cmp r0, #0 - bne _080CF64E - movs r1, #1 -_080CF64E: - strb r1, [r2] - ldr r0, _080CF678 - ldr r0, [r0] - ldr r3, _080CF67C - adds r1, r0, r3 - ldr r3, [r1] - ldr r1, _080CF680 - adds r0, r0, r1 - ldrb r2, [r2] - adds r0, r0, r2 - ldrb r1, [r0] - lsls r1, r1, #4 - ldrb r2, [r3, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #5] - pop {r0} - bx r0 - .align 2, 0 -_080CF674: .4byte gUnknown_2039A1D -_080CF678: .4byte gUnknown_20399A8 -_080CF67C: .4byte 0x00000CB4 -_080CF680: .4byte 0x00000CD8 - thumb_func_end sub_080CF640 - - thumb_func_start sub_080CF684 -sub_080CF684: @ 0x080CF684 - ldr r0, _080CF68C - ldrb r0, [r0] - bx lr - .align 2, 0 -_080CF68C: .4byte gUnknown_2039A19 - thumb_func_end sub_080CF684 - - thumb_func_start sub_080CF690 -sub_080CF690: @ 0x080CF690 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - ldr r0, _080CF6BC - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _080CF6C4 - ldr r4, _080CF6C0 - movs r0, #0 - ldrsb r0, [r4, r0] - movs r1, #6 - bl __modsi3 - strb r0, [r5] - movs r0, #0 - ldrsb r0, [r4, r0] - movs r1, #6 - bl __divsi3 - b _080CF6C8 - .align 2, 0 -_080CF6BC: .4byte gUnknown_2039A18 -_080CF6C0: .4byte gUnknown_2039A19 -_080CF6C4: - movs r0, #0 - strb r0, [r5] -_080CF6C8: - strb r0, [r6] - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_080CF690 - - thumb_func_start sub_080CF6D0 -sub_080CF6D0: @ 0x080CF6D0 - push {lr} - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, _080CF6EC - ldr r0, [r0] - ldr r2, _080CF6F0 - adds r0, r0, r2 - ldr r0, [r0] - bl StartSpriteAnim - pop {r0} - bx r0 - .align 2, 0 -_080CF6EC: .4byte gUnknown_20399A8 -_080CF6F0: .4byte 0x00000CB4 - thumb_func_end sub_080CF6D0 - - thumb_func_start sub_080CF6F4 -sub_080CF6F4: @ 0x080CF6F4 - ldr r0, _080CF6FC - ldrb r0, [r0] - bx lr - .align 2, 0 -_080CF6FC: .4byte gUnknown_2039A1B - thumb_func_end sub_080CF6F4 - - thumb_func_start sub_080CF700 -sub_080CF700: @ 0x080CF700 - ldr r0, _080CF71C - ldr r0, [r0] - ldr r1, _080CF720 - adds r0, r0, r1 - ldr r2, [r0] - ldrb r1, [r2, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2, #5] - bx lr - .align 2, 0 -_080CF71C: .4byte gUnknown_20399A8 -_080CF720: .4byte 0x00000CB4 - thumb_func_end sub_080CF700 - - thumb_func_start sub_080CF724 -sub_080CF724: @ 0x080CF724 - push {lr} - ldr r0, _080CF740 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _080CF73C - ldr r0, _080CF744 - ldrb r1, [r0] - movs r0, #0 - bl sub_080D06F0 -_080CF73C: - pop {r0} - bx r0 - .align 2, 0 -_080CF740: .4byte gUnknown_2039A18 -_080CF744: .4byte gUnknown_2039A19 - thumb_func_end sub_080CF724 - - thumb_func_start sub_080CF748 -sub_080CF748: @ 0x080CF748 - push {lr} - ldr r0, _080CF764 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _080CF760 - ldr r0, _080CF768 - ldrb r1, [r0] - movs r0, #0 - bl sub_080D062C -_080CF760: - pop {r0} - bx r0 - .align 2, 0 -_080CF764: .4byte gUnknown_2039A18 -_080CF768: .4byte gUnknown_2039A19 - thumb_func_end sub_080CF748 - - thumb_func_start InitMenu -InitMenu: @ 0x080CF76C - ldr r2, _080CF7A0 - ldr r0, [r2] - ldr r1, _080CF7A4 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - ldr r0, [r2] - ldr r3, _080CF7A8 - adds r0, r0, r3 - strb r1, [r0] - ldr r0, [r2] - subs r3, #0x41 - adds r0, r0, r3 - strb r1, [r0] - ldr r0, [r2] - ldr r1, _080CF7AC - adds r0, r0, r1 - movs r1, #0xf - strb r1, [r0] - ldr r0, [r2] - adds r3, #6 - adds r0, r0, r3 - movs r1, #0x5c - strh r1, [r0] - bx lr - .align 2, 0 -_080CF7A0: .4byte gUnknown_20399A8 -_080CF7A4: .4byte 0x00000CAC -_080CF7A8: .4byte 0x00000CAD -_080CF7AC: .4byte 0x00000C71 - thumb_func_end InitMenu - - thumb_func_start SetMenuText -SetMenuText: @ 0x080CF7B0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r4, _080CF800 - ldr r2, [r4] - ldr r5, _080CF804 - adds r1, r2, r5 - ldrb r0, [r1] - cmp r0, #6 - bhi _080CF7FA - adds r1, r0, #0 - lsls r1, r1, #3 - ldr r0, _080CF808 - adds r1, r1, r0 - adds r1, r2, r1 - ldr r2, _080CF80C - lsls r0, r3, #2 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1] - str r3, [r1, #4] - bl StringLength - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r0, [r4] - ldr r2, _080CF810 - adds r0, r0, r2 - ldrb r2, [r0] - cmp r1, r2 - bls _080CF7F0 - strb r1, [r0] -_080CF7F0: - ldr r1, [r4] - adds r1, r1, r5 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_080CF7FA: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080CF800: .4byte gUnknown_20399A8 -_080CF804: .4byte 0x00000CAC -_080CF808: .4byte 0x00000C74 -_080CF80C: .4byte gUnknown_855657C -_080CF810: .4byte 0x00000CAD - thumb_func_end SetMenuText - - thumb_func_start sub_080CF814 -sub_080CF814: @ 0x080CF814 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _080CF838 - ldr r1, [r0] - ldr r3, _080CF83C - adds r0, r1, r3 - ldrb r0, [r0] - cmp r2, r0 - bhs _080CF844 - lsls r0, r2, #3 - ldr r2, _080CF840 - adds r1, r1, r2 - adds r1, r1, r0 - movs r0, #0 - ldrsb r0, [r1, r0] - b _080CF848 - .align 2, 0 -_080CF838: .4byte gUnknown_20399A8 -_080CF83C: .4byte 0x00000CAC -_080CF840: .4byte 0x00000C78 -_080CF844: - movs r0, #1 - rsbs r0, r0, #0 -_080CF848: - pop {r1} - bx r1 - thumb_func_end sub_080CF814 - - thumb_func_start sub_080CF84C -sub_080CF84C: @ 0x080CF84C - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #0xc - ldr r5, _080CF928 - ldr r1, [r5] - ldr r2, _080CF92C - adds r0, r1, r2 - ldrb r0, [r0] - adds r0, #2 - subs r2, #0x3e - adds r1, r1, r2 - movs r3, #0 - mov sb, r3 - strb r0, [r1] - ldr r1, [r5] - ldr r6, _080CF930 - adds r0, r1, r6 - ldrb r0, [r0] - lsls r0, r0, #1 - movs r3, #0xc7 - lsls r3, r3, #4 - adds r1, r1, r3 - strb r0, [r1] - ldr r1, [r5] - adds r2, r1, r2 - ldrb r2, [r2] - movs r0, #0x1d - subs r0, r0, r2 - ldr r2, _080CF934 - adds r1, r1, r2 - strb r0, [r1] - ldr r1, [r5] - adds r3, r1, r3 - ldrb r2, [r3] - movs r0, #0xf - subs r0, r0, r2 - ldr r3, _080CF938 - adds r1, r1, r3 - strb r0, [r1] - ldr r0, [r5] - ldr r1, _080CF93C - adds r0, r0, r1 - bl AddWindow - ldr r1, [r5] - movs r4, #0xcb - lsls r4, r4, #4 - adds r1, r1, r4 - movs r2, #0 - mov r8, r2 - strh r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl ClearWindowTilemap - ldr r0, [r5] - adds r0, r0, r4 - ldrb r0, [r0] - movs r1, #0 - movs r2, #0xb - movs r3, #0xe - bl DrawStdFrameWithCustomTileAndPalette - ldr r2, [r5] - adds r0, r2, r4 - ldrb r0, [r0] - movs r1, #0x10 - str r1, [sp] - adds r1, r2, r6 - ldrb r1, [r1] - str r1, [sp, #4] - ldr r3, _080CF940 - adds r2, r2, r3 - str r2, [sp, #8] - movs r1, #1 - movs r2, #8 - movs r3, #2 - bl PrintTextArray - ldr r1, [r5] - adds r4, r1, r4 - ldrb r0, [r4] - adds r1, r1, r6 - ldrb r1, [r1] - str r1, [sp] - mov r1, sb - str r1, [sp, #4] - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl sub_081984F0 - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, [r5] - ldr r2, _080CF944 - adds r0, r0, r2 - mov r3, r8 - strb r3, [r0] - add sp, #0xc - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080CF928: .4byte gUnknown_20399A8 -_080CF92C: .4byte 0x00000CAD -_080CF930: .4byte 0x00000CAC -_080CF934: .4byte 0x00000C6D -_080CF938: .4byte 0x00000C6E -_080CF93C: .4byte 0x00000C6C -_080CF940: .4byte 0x00000C74 -_080CF944: .4byte 0x00000CAE - thumb_func_end sub_080CF84C - - thumb_func_start sub_080CF948 -sub_080CF948: @ 0x080CF948 - movs r0, #0 - bx lr - thumb_func_end sub_080CF948 - - thumb_func_start sub_080CF94C -sub_080CF94C: @ 0x080CF94C - push {r4, r5, lr} - movs r5, #2 - rsbs r5, r5, #0 - ldr r4, _080CF988 - ldrh r1, [r4, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080CF9A2 - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080CF96E - movs r0, #5 - bl sub_080A306C - adds r5, #1 -_080CF96E: - ldrh r1, [r4, #0x2e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080CF98C - movs r0, #5 - bl sub_080A306C - movs r0, #1 - rsbs r0, r0, #0 - bl Menu_MoveCursor - b _080CF9AA - .align 2, 0 -_080CF988: .4byte gUnknown_3002360 -_080CF98C: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080CF9AA - movs r0, #5 - bl sub_080A306C - movs r0, #1 - bl Menu_MoveCursor - b _080CF9AA -_080CF9A2: - bl Menu_GetCursorPos - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_080CF9AA: - movs r0, #2 - rsbs r0, r0, #0 - cmp r5, r0 - beq _080CF9B6 - bl sub_080CF9DC -_080CF9B6: - cmp r5, #0 - blt _080CF9C8 - ldr r0, _080CF9D4 - ldr r0, [r0] - lsls r1, r5, #3 - ldr r2, _080CF9D8 - adds r0, r0, r2 - adds r0, r0, r1 - ldr r5, [r0] -_080CF9C8: - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080CF9D4: .4byte gUnknown_20399A8 -_080CF9D8: .4byte 0x00000C78 - thumb_func_end sub_080CF94C - - thumb_func_start sub_080CF9DC -sub_080CF9DC: @ 0x080CF9DC - push {r4, r5, lr} - ldr r5, _080CFA00 - ldr r0, [r5] - movs r4, #0xcb - lsls r4, r4, #4 - adds r0, r0, r4 - ldrb r0, [r0] - movs r1, #1 - bl sub_08198134 - ldr r0, [r5] - adds r0, r0, r4 - ldrb r0, [r0] - bl RemoveWindow - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080CFA00: .4byte gUnknown_20399A8 - thumb_func_end sub_080CF9DC - - thumb_func_start ItemStorage_StartScrollIndicatorAndProcessInput -ItemStorage_StartScrollIndicatorAndProcessInput: @ 0x080CFA04 - push {r4, lr} - ldr r4, _080CFA40 - ldr r0, _080CFA44 - bl sub_08000BC8 - str r0, [r4] - cmp r0, #0 - beq _080CFA50 - ldr r0, _080CFA48 - bl AddWindow8Bit - adds r1, r0, #0 - ldr r0, _080CFA4C - ldr r0, [r0] - movs r2, #0x88 - lsls r2, r2, #6 - adds r0, r0, r2 - strh r1, [r0] - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xff - beq _080CFA50 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #1 - b _080CFA52 - .align 2, 0 -_080CFA40: .4byte gUnknown_2039A20 -_080CFA44: .4byte 0x00000974 -_080CFA48: .4byte gUnknown_8556618 -_080CFA4C: .4byte gUnknown_20399A8 -_080CFA50: - movs r0, #0 -_080CFA52: - pop {r4} - pop {r1} - bx r1 - thumb_func_end ItemStorage_StartScrollIndicatorAndProcessInput - - thumb_func_start sub_080CFA58 -sub_080CFA58: @ 0x080CFA58 - push {lr} - ldr r0, _080CFA6C - ldr r0, [r0] - cmp r0, #0 - beq _080CFA66 - bl Free -_080CFA66: - pop {r0} - bx r0 - .align 2, 0 -_080CFA6C: .4byte gUnknown_2039A20 - thumb_func_end sub_080CFA58 - - thumb_func_start sub_080CFA70 -sub_080CFA70: @ 0x080CFA70 - ldr r2, _080CFA80 - ldr r1, [r2] - movs r3, #0 - strb r0, [r1] - ldr r0, [r2] - strb r3, [r0, #1] - bx lr - .align 2, 0 -_080CFA80: .4byte gUnknown_2039A20 - thumb_func_end sub_080CFA70 - - thumb_func_start sub_080CFA84 -sub_080CFA84: @ 0x080CFA84 - push {lr} - ldr r0, _080CFA9C - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, #5 - bhi _080CFAE4 - lsls r0, r0, #2 - ldr r1, _080CFAA0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080CFA9C: .4byte gUnknown_2039A20 -_080CFAA0: .4byte _080CFAA4 -_080CFAA4: @ jump table - .4byte _080CFABC @ case 0 - .4byte _080CFAC2 @ case 1 - .4byte _080CFAC8 @ case 2 - .4byte _080CFACE @ case 3 - .4byte _080CFAD4 @ case 4 - .4byte _080CFADA @ case 5 -_080CFABC: - bl sub_080CFAEC - b _080CFADE -_080CFAC2: - bl sub_080CFBE4 - b _080CFADE -_080CFAC8: - bl sub_080CFC50 - b _080CFADE -_080CFACE: - bl sub_080CFCC0 - b _080CFADE -_080CFAD4: - bl sub_080CFD40 - b _080CFADE -_080CFADA: - bl sub_080CFD68 -_080CFADE: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _080CFAE6 -_080CFAE4: - movs r0, #0 -_080CFAE6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080CFA84 - - thumb_func_start sub_080CFAEC -sub_080CFAEC: @ 0x080CFAEC - push {r4, r5, r6, lr} - sub sp, #8 - ldr r6, _080CFB04 - ldr r1, [r6] - ldrb r0, [r1, #1] - cmp r0, #1 - beq _080CFB1C - cmp r0, #1 - bgt _080CFB08 - cmp r0, #0 - beq _080CFB0E - b _080CFBD8 - .align 2, 0 -_080CFB04: .4byte gUnknown_2039A20 -_080CFB08: - cmp r0, #2 - beq _080CFBC4 - b _080CFBD8 -_080CFB0E: - movs r0, #0 - bl HideBg - movs r0, #0x80 - bl sub_080D28EC - b _080CFBAE -_080CFB1C: - adds r0, r1, #2 - adds r1, #3 - bl sub_080CF690 - ldr r1, [r6] - ldrb r0, [r1, #2] - strb r0, [r1, #4] - ldr r1, [r6] - ldrb r0, [r1, #3] - strb r0, [r1, #5] - ldr r4, _080CFBB8 - movs r0, #0 - adds r1, r4, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #0 - adds r1, r4, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #0x20 - str r0, [sp] - str r0, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - ldr r5, _080CFBBC - ldr r0, [r5] - movs r4, #0x88 - lsls r4, r4, #6 - adds r0, r0, r4 - ldrb r0, [r0] - movs r1, #0 - bl FillWindowPixelBuffer8Bit - ldr r1, [r6] - ldrb r0, [r1, #2] - ldrb r1, [r1, #3] - bl sub_080D0050 - movs r0, #0 - movs r1, #4 - movs r2, #1 - bl SetBgAttribute - ldr r0, [r5] - adds r0, r0, r4 - ldrb r0, [r0] - bl PutWindowTilemap - ldr r0, [r5] - adds r0, r0, r4 - ldrb r0, [r0] - movs r1, #3 - bl CopyWindowToVram8Bit - movs r0, #0xfc - lsls r0, r0, #6 - ldr r2, _080CFBC0 - movs r1, #8 - bl BlendPalettes - movs r0, #2 - bl sub_080CF6D0 - movs r0, #8 - movs r1, #0x80 - bl SetGpuRegBits -_080CFBAE: - ldr r1, [r6] - ldrb r0, [r1, #1] - adds r0, #1 - strb r0, [r1, #1] - b _080CFBD8 - .align 2, 0 -_080CFBB8: .4byte 0xFFFFFC00 -_080CFBBC: .4byte gUnknown_20399A8 -_080CFBC0: .4byte 0x00007FFF -_080CFBC4: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080CFBD8 - movs r0, #0 - bl ShowBg - movs r0, #0 - b _080CFBDA -_080CFBD8: - movs r0, #1 -_080CFBDA: - add sp, #8 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080CFAEC - - thumb_func_start sub_080CFBE4 -sub_080CFBE4: @ 0x080CFBE4 - push {r4, lr} - ldr r4, _080CFBFC - ldr r0, [r4] - ldrb r0, [r0, #1] - cmp r0, #1 - beq _080CFC0E - cmp r0, #1 - bgt _080CFC00 - cmp r0, #0 - beq _080CFC06 - b _080CFC48 - .align 2, 0 -_080CFBFC: .4byte gUnknown_2039A20 -_080CFC00: - cmp r0, #2 - beq _080CFC22 - b _080CFC48 -_080CFC06: - movs r0, #0 - bl HideBg - b _080CFC18 -_080CFC0E: - bl sub_080D03FC - movs r0, #0 - bl sub_080CF6D0 -_080CFC18: - ldr r1, [r4] - ldrb r0, [r1, #1] - adds r0, #1 - strb r0, [r1, #1] - b _080CFC48 -_080CFC22: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080CFC48 - bl sub_080CF700 - movs r0, #3 - bl stdpal_get - movs r1, #0xd0 - movs r2, #0x20 - bl LoadPalette - movs r0, #0 - bl ShowBg - movs r0, #0 - b _080CFC4A -_080CFC48: - movs r0, #1 -_080CFC4A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_080CFBE4 - - thumb_func_start sub_080CFC50 -sub_080CFC50: @ 0x080CFC50 - push {r4, lr} - ldr r4, _080CFC64 - ldr r0, [r4] - ldrb r0, [r0, #1] - cmp r0, #0 - beq _080CFC68 - cmp r0, #1 - beq _080CFCAC - b _080CFCB6 - .align 2, 0 -_080CFC64: .4byte gUnknown_2039A20 -_080CFC68: - bl sub_080CCDD0 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080CFCB6 - ldr r1, [r4] - adds r0, r1, #6 - adds r1, #7 - bl sub_080CF690 - bl sub_080CFECC - ldr r1, [r4] - ldrb r0, [r1, #6] - strb r0, [r1, #4] - ldr r1, [r4] - ldrb r0, [r1, #7] - strb r0, [r1, #5] - ldr r0, _080CFCA8 - ldr r0, [r0] - movs r1, #0x88 - lsls r1, r1, #6 - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #2 - bl CopyWindowToVram8Bit - ldr r1, [r4] - ldrb r0, [r1, #1] - adds r0, #1 - strb r0, [r1, #1] - b _080CFCB6 - .align 2, 0 -_080CFCA8: .4byte gUnknown_20399A8 -_080CFCAC: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _080CFCB8 -_080CFCB6: - movs r0, #1 -_080CFCB8: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080CFC50 - - thumb_func_start sub_080CFCC0 -sub_080CFCC0: @ 0x080CFCC0 - push {r4, lr} - ldr r4, _080CFCD8 - ldr r0, [r4] - ldrb r0, [r0, #1] - cmp r0, #1 - beq _080CFCEE - cmp r0, #1 - bgt _080CFCDC - cmp r0, #0 - beq _080CFCE2 - b _080CFD38 - .align 2, 0 -_080CFCD8: .4byte gUnknown_2039A20 -_080CFCDC: - cmp r0, #2 - beq _080CFD1A - b _080CFD38 -_080CFCE2: - bl sub_080D016C - bl sub_080D0244 - movs r0, #0 - b _080CFD0C -_080CFCEE: - bl DoMonPlaceChange - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080CFD38 - movs r0, #3 - bl sub_080CF6D0 - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #0 - movs r2, #8 - bl sub_080D0124 - movs r0, #1 -_080CFD0C: - bl sub_080CD4E0 - ldr r1, [r4] - ldrb r0, [r1, #1] - adds r0, #1 - strb r0, [r1, #1] - b _080CFD38 -_080CFD1A: - bl sub_080D0134 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl DoMonPlaceChange - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, #0 - bne _080CFD38 - cmp r0, #0 - bne _080CFD38 - movs r0, #0 - b _080CFD3A -_080CFD38: - movs r0, #1 -_080CFD3A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_080CFCC0 - - thumb_func_start sub_080CFD40 -sub_080CFD40: @ 0x080CFD40 - push {r4, lr} - bl sub_080CCDD0 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_080D0134 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, #0 - bne _080CFD60 - cmp r0, #0 - bne _080CFD60 - movs r0, #0 - b _080CFD62 -_080CFD60: - movs r0, #1 -_080CFD62: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_080CFD40 - - thumb_func_start sub_080CFD68 -sub_080CFD68: @ 0x080CFD68 - push {r4, lr} - ldr r4, _080CFD80 - ldr r0, [r4] - ldrb r0, [r0, #1] - cmp r0, #1 - beq _080CFDA6 - cmp r0, #1 - bgt _080CFD84 - cmp r0, #0 - beq _080CFD8E - b _080CFE16 - .align 2, 0 -_080CFD80: .4byte gUnknown_2039A20 -_080CFD84: - cmp r0, #2 - beq _080CFDD2 - cmp r0, #3 - beq _080CFDF0 - b _080CFE16 -_080CFD8E: - bl sub_080D034C - movs r1, #0xff - lsls r1, r1, #8 - movs r0, #0 - movs r2, #8 - bl sub_080D0124 - movs r0, #0 - bl sub_080CD4E0 - b _080CFDE6 -_080CFDA6: - bl DoMonPlaceChange - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080CFE16 - bl sub_080D0134 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080CFE16 - bl sub_080D02BC - movs r0, #2 - bl sub_080CF6D0 - movs r0, #1 - bl sub_080CD4E0 - movs r0, #0 - bl HideBg - b _080CFDE6 -_080CFDD2: - bl DoMonPlaceChange - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080CFE16 - movs r0, #0 - bl sub_080CF6D0 - bl sub_080D03FC -_080CFDE6: - ldr r1, [r4] - ldrb r0, [r1, #1] - adds r0, #1 - strb r0, [r1, #1] - b _080CFE16 -_080CFDF0: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080CFE16 - movs r0, #3 - bl stdpal_get - movs r1, #0xd0 - movs r2, #0x20 - bl LoadPalette - bl sub_080CF700 - movs r0, #0 - bl ShowBg - movs r0, #0 - b _080CFE18 -_080CFE16: - movs r0, #1 -_080CFE18: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080CFD68 - - thumb_func_start sub_080CFE20 -sub_080CFE20: @ 0x080CFE20 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - cmp r0, #1 - beq _080CFE5C - cmp r0, #1 - bgt _080CFE36 - cmp r0, #0 - beq _080CFE40 - b _080CFEC4 -_080CFE36: - cmp r1, #2 - beq _080CFE7C - cmp r1, #3 - beq _080CFE9C - b _080CFEC4 -_080CFE40: - ldr r0, _080CFE58 - ldr r1, [r0] - ldrb r0, [r1, #9] - cmp r0, #0 - beq _080CFEAA - subs r0, #1 - strb r0, [r1, #9] - movs r1, #0x80 - lsls r1, r1, #3 - movs r0, #0 - b _080CFE90 - .align 2, 0 -_080CFE58: .4byte gUnknown_2039A20 -_080CFE5C: - ldr r0, _080CFE78 - ldr r1, [r0] - ldrb r2, [r1, #9] - ldrb r0, [r1, #0xb] - adds r0, r2, r0 - cmp r0, #4 - bgt _080CFEAA - adds r0, r2, #1 - strb r0, [r1, #9] - movs r1, #0xfc - lsls r1, r1, #8 - movs r0, #0 - b _080CFE90 - .align 2, 0 -_080CFE78: .4byte gUnknown_2039A20 -_080CFE7C: - ldr r0, _080CFE98 - ldr r1, [r0] - ldrb r0, [r1, #8] - cmp r0, #0 - beq _080CFEAA - subs r0, #1 - strb r0, [r1, #8] - movs r0, #0x80 - lsls r0, r0, #3 - movs r1, #0 -_080CFE90: - movs r2, #6 - bl sub_080D0124 - b _080CFEC4 - .align 2, 0 -_080CFE98: .4byte gUnknown_2039A20 -_080CFE9C: - ldr r0, _080CFEB0 - ldr r1, [r0] - ldrb r2, [r1, #8] - ldrb r0, [r1, #0xa] - adds r0, r2, r0 - cmp r0, #5 - ble _080CFEB4 -_080CFEAA: - movs r0, #0 - b _080CFEC6 - .align 2, 0 -_080CFEB0: .4byte gUnknown_2039A20 -_080CFEB4: - adds r0, r2, #1 - strb r0, [r1, #8] - movs r0, #0xfc - lsls r0, r0, #8 - movs r1, #0 - movs r2, #6 - bl sub_080D0124 -_080CFEC4: - movs r0, #1 -_080CFEC6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080CFE20 - - thumb_func_start sub_080CFECC -sub_080CFECC: @ 0x080CFECC - push {r4, r5, r6, r7, lr} - ldr r6, _080CFF6C - ldr r2, [r6] - ldrb r3, [r2, #2] - ldrb r5, [r2, #6] - subs r1, r3, r5 - cmp r1, #0 - bge _080CFEDE - rsbs r1, r1, #0 -_080CFEDE: - ldrb r0, [r2, #4] - subs r0, r3, r0 - cmp r0, #0 - bge _080CFEE8 - rsbs r0, r0, #0 -_080CFEE8: - subs r0, r1, r0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldrb r1, [r2, #3] - ldrb r0, [r2, #7] - subs r3, r1, r0 - cmp r3, #0 - bge _080CFEFA - rsbs r3, r3, #0 -_080CFEFA: - ldrb r2, [r2, #5] - subs r0, r1, r2 - cmp r0, #0 - bge _080CFF04 - rsbs r0, r0, #0 -_080CFF04: - subs r0, r3, r0 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - lsls r0, r4, #0x10 - asrs r4, r0, #0x10 - cmp r4, #0 - ble _080CFF18 - adds r0, r5, #0 - bl sub_080CFF70 -_080CFF18: - cmp r4, #0 - bge _080CFF34 - ldr r2, [r6] - ldrb r0, [r2, #4] - ldrb r1, [r2, #3] - ldrb r2, [r2, #5] - bl sub_080CFFE0 - ldr r2, [r6] - ldrb r0, [r2, #6] - ldrb r1, [r2, #3] - ldrb r2, [r2, #5] - bl sub_080CFF70 -_080CFF34: - lsls r0, r7, #0x10 - asrs r4, r0, #0x10 - cmp r4, #0 - ble _080CFF48 - ldr r2, [r6] - ldrb r0, [r2, #7] - ldrb r1, [r2, #2] - ldrb r2, [r2, #4] - bl sub_080CFFA8 -_080CFF48: - cmp r4, #0 - bge _080CFF64 - ldr r2, [r6] - ldrb r0, [r2, #5] - ldrb r1, [r2, #2] - ldrb r2, [r2, #4] - bl sub_080D0018 - ldr r2, [r6] - ldrb r0, [r2, #7] - ldrb r1, [r2, #2] - ldrb r2, [r2, #4] - bl sub_080CFFA8 -_080CFF64: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080CFF6C: .4byte gUnknown_2039A20 - thumb_func_end sub_080CFECC - - thumb_func_start sub_080CFF70 -sub_080CFF70: @ 0x080CFF70 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - adds r1, r4, #0 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - adds r0, r5, #0 - cmp r4, r5 - bls _080CFF8E - adds r4, r5, #0 - adds r5, r1, #0 - cmp r0, r5 - bhi _080CFFA0 -_080CFF8E: - adds r1, r4, #0 - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r6, #0 - bl sub_080D0050 - cmp r4, r5 - bls _080CFF8E -_080CFFA0: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080CFF70 - - thumb_func_start sub_080CFFA8 -sub_080CFFA8: @ 0x080CFFA8 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - adds r1, r4, #0 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - adds r0, r5, #0 - cmp r4, r5 - bls _080CFFC6 - adds r4, r5, #0 - adds r5, r1, #0 - cmp r0, r5 - bhi _080CFFD8 -_080CFFC6: - adds r0, r4, #0 - adds r1, r0, #1 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - adds r1, r6, #0 - bl sub_080D0050 - cmp r4, r5 - bls _080CFFC6 -_080CFFD8: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080CFFA8 - - thumb_func_start sub_080CFFE0 -sub_080CFFE0: @ 0x080CFFE0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - adds r1, r4, #0 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - adds r0, r5, #0 - cmp r4, r5 - bls _080CFFFE - adds r4, r5, #0 - adds r5, r1, #0 - cmp r0, r5 - bhi _080D0010 -_080CFFFE: - adds r1, r4, #0 - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r6, #0 - bl sub_080D00D4 - cmp r4, r5 - bls _080CFFFE -_080D0010: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080CFFE0 - - thumb_func_start sub_080D0018 -sub_080D0018: @ 0x080D0018 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - adds r1, r4, #0 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - adds r0, r5, #0 - cmp r4, r5 - bls _080D0036 - adds r4, r5, #0 - adds r5, r1, #0 - cmp r0, r5 - bhi _080D0048 -_080D0036: - adds r0, r4, #0 - adds r1, r0, #1 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - adds r1, r6, #0 - bl sub_080D00D4 - cmp r4, r5 - bls _080D0036 -_080D0048: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080D0018 - - thumb_func_start sub_080D0050 -sub_080D0050: @ 0x080D0050 - push {r4, r5, r6, r7, lr} - sub sp, #0x1c - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r1, #1 - adds r7, r0, r1 - lsls r4, r7, #1 - adds r4, r6, r4 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #0x41 - bl GetCurrentBoxMonData - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r4, #0 - movs r1, #0 - bl GetCurrentBoxMonData - adds r1, r0, #0 - cmp r5, #0 - beq _080D00C8 - adds r0, r5, #0 - movs r2, #1 - bl GetMonIconPtr - adds r4, r0, #0 - adds r0, r5, #0 - bl GetValidMonIconPalIndex - adds r0, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080D00D0 - ldr r1, [r1] - movs r2, #0x88 - lsls r2, r2, #6 - adds r1, r1, r2 - ldrb r3, [r1] - movs r2, #0x20 - str r2, [sp] - str r2, [sp, #4] - lsls r1, r6, #1 - adds r1, r1, r6 - lsls r1, r1, #3 - str r1, [sp, #8] - lsls r1, r7, #3 - str r1, [sp, #0xc] - str r2, [sp, #0x10] - str r2, [sp, #0x14] - str r0, [sp, #0x18] - adds r0, r3, #0 - adds r1, r4, #0 - movs r2, #0 - movs r3, #0 - bl BlitBitmapRectToWindow4BitTo8Bit -_080D00C8: - add sp, #0x1c - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D00D0: .4byte gUnknown_20399A8 - thumb_func_end sub_080D0050 - - thumb_func_start sub_080D00D4 -sub_080D00D4: @ 0x080D00D4 - push {r4, r5, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r1, #1 - adds r5, r0, r1 - lsls r0, r5, #1 - adds r0, r4, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x41 - bl GetCurrentBoxMonData - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080D0118 - ldr r0, _080D0120 - ldr r0, [r0] - movs r1, #0x88 - lsls r1, r1, #6 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r2, r4, #1 - adds r2, r2, r4 - lsls r2, r2, #3 - lsls r3, r5, #3 - movs r1, #0x20 - str r1, [sp] - str r1, [sp, #4] - movs r1, #0 - bl FillWindowPixelRect8Bit -_080D0118: - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D0120: .4byte gUnknown_20399A8 - thumb_func_end sub_080D00D4 - - thumb_func_start sub_080D0124 -sub_080D0124: @ 0x080D0124 - ldr r3, _080D0130 - ldr r3, [r3] - strh r0, [r3, #0xc] - strh r1, [r3, #0xe] - strh r2, [r3, #0x10] - bx lr - .align 2, 0 -_080D0130: .4byte gUnknown_2039A20 - thumb_func_end sub_080D0124 - - thumb_func_start sub_080D0134 -sub_080D0134: @ 0x080D0134 - push {r4, lr} - ldr r4, _080D0168 - ldr r1, [r4] - ldrh r0, [r1, #0x10] - cmp r0, #0 - beq _080D015E - ldrh r1, [r1, #0xc] - movs r0, #0 - movs r2, #1 - bl ChangeBgX - ldr r0, [r4] - ldrh r1, [r0, #0xe] - movs r0, #0 - movs r2, #1 - bl ChangeBgY - ldr r1, [r4] - ldrh r0, [r1, #0x10] - subs r0, #1 - strh r0, [r1, #0x10] -_080D015E: - ldr r0, [r4] - ldrb r0, [r0, #0x10] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080D0168: .4byte gUnknown_2039A20 - thumb_func_end sub_080D0134 - - thumb_func_start sub_080D016C -sub_080D016C: @ 0x080D016C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r4, _080D0240 - ldr r1, [r4] - ldrb r0, [r1, #4] - ldrb r2, [r1, #2] - cmp r0, r2 - bls _080D0184 - adds r0, r2, #0 -_080D0184: - strb r0, [r1, #8] - ldr r1, [r4] - ldrb r0, [r1, #5] - ldrb r2, [r1, #3] - cmp r0, r2 - bls _080D0192 - adds r0, r2, #0 -_080D0192: - strb r0, [r1, #9] - ldr r2, [r4] - ldrb r1, [r2, #2] - ldrb r0, [r2, #4] - subs r0, r1, r0 - cmp r0, #0 - bge _080D01A2 - rsbs r0, r0, #0 -_080D01A2: - adds r0, #1 - strb r0, [r2, #0xa] - ldr r2, [r4] - ldrb r1, [r2, #3] - ldrb r0, [r2, #5] - subs r0, r1, r0 - cmp r0, #0 - bge _080D01B4 - rsbs r0, r0, #0 -_080D01B4: - adds r0, #1 - strb r0, [r2, #0xb] - bl sub_080D15AC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - movs r6, #0 - ldr r0, [r4] - ldrb r2, [r0, #8] - ldrb r1, [r0, #0xa] - adds r2, r2, r1 - mov r8, r2 - ldrb r1, [r0, #9] - ldrb r0, [r0, #0xb] - adds r0, r0, r1 - mov sb, r0 - adds r2, r1, #0 - cmp r2, sb - bge _080D0230 -_080D01DC: - lsls r0, r2, #1 - adds r0, r0, r2 - ldr r3, _080D0240 - ldr r1, [r3] - lsls r0, r0, #1 - ldrb r3, [r1, #8] - adds r0, r0, r3 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldrb r4, [r1, #8] - adds r7, r2, #1 - cmp r4, r8 - bge _080D022A - mov r0, r8 - subs r4, r0, r4 -_080D01FA: - mov r0, sl - adds r1, r5, #0 - bl GetBoxedMonPtr - adds r1, r0, #0 - ldr r2, _080D0240 - ldr r0, [r2] - lsls r2, r6, #2 - adds r2, r2, r6 - lsls r2, r2, #4 - adds r0, r0, r2 - adds r0, #0x14 - movs r2, #0x50 - bl memcpy - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - subs r4, #1 - cmp r4, #0 - bne _080D01FA -_080D022A: - adds r2, r7, #0 - cmp r2, sb - blt _080D01DC -_080D0230: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D0240: .4byte gUnknown_2039A20 - thumb_func_end sub_080D016C - - thumb_func_start sub_080D0244 -sub_080D0244: @ 0x080D0244 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r4, _080D02B8 - ldr r0, [r4] - ldrb r2, [r0, #8] - ldrb r1, [r0, #0xa] - adds r7, r2, r1 - ldrb r1, [r0, #9] - ldrb r0, [r0, #0xb] - adds r1, r1, r0 - mov sb, r1 - bl sub_080D15AC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r0, [r4] - ldrb r2, [r0, #9] - cmp r2, sb - bge _080D02AC -_080D0270: - lsls r0, r2, #1 - adds r0, r0, r2 - ldr r1, _080D02B8 - ldr r1, [r1] - lsls r0, r0, #1 - ldrb r3, [r1, #8] - adds r0, r0, r3 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldrb r4, [r1, #8] - adds r6, r2, #1 - cmp r4, r7 - bge _080D02A6 - subs r4, r7, r4 -_080D028C: - adds r0, r5, #0 - bl DestroyBoxMonIconAtPosition - mov r0, r8 - adds r1, r5, #0 - bl ZeroBoxMonAt - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - subs r4, #1 - cmp r4, #0 - bne _080D028C -_080D02A6: - adds r2, r6, #0 - cmp r2, sb - blt _080D0270 -_080D02AC: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D02B8: .4byte gUnknown_2039A20 - thumb_func_end sub_080D0244 - - thumb_func_start sub_080D02BC -sub_080D02BC: @ 0x080D02BC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _080D0348 - ldr r0, [r0] - ldrb r2, [r0, #8] - ldrb r1, [r0, #0xa] - adds r2, r2, r1 - mov r8, r2 - ldrb r1, [r0, #9] - ldrb r0, [r0, #0xb] - adds r0, r0, r1 - mov sl, r0 - movs r6, #0 - adds r2, r1, #0 - cmp r2, sl - bge _080D0338 -_080D02E2: - lsls r0, r2, #1 - adds r0, r0, r2 - ldr r3, _080D0348 - ldr r1, [r3] - lsls r0, r0, #1 - ldrb r4, [r1, #8] - adds r0, r0, r4 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldrb r4, [r1, #8] - adds r7, r2, #1 - cmp r4, r8 - bge _080D0332 - mov sb, r3 - mov r0, r8 - subs r4, r0, r4 -_080D0302: - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #4 - adds r1, #0x14 - mov r2, sb - ldr r0, [r2] - adds r0, r0, r1 - movs r1, #5 - bl sub_0806A1B4 - cmp r0, #0 - beq _080D0320 - adds r0, r5, #0 - bl sub_080CA9B4 -_080D0320: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - subs r4, #1 - cmp r4, #0 - bne _080D0302 -_080D0332: - adds r2, r7, #0 - cmp r2, sl - blt _080D02E2 -_080D0338: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D0348: .4byte gUnknown_2039A20 - thumb_func_end sub_080D02BC - - thumb_func_start sub_080D034C -sub_080D034C: @ 0x080D034C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - ldr r4, _080D03F8 - ldr r0, [r4] - ldrb r2, [r0, #8] - ldrb r1, [r0, #0xa] - adds r2, r2, r1 - mov sl, r2 - ldrb r1, [r0, #9] - ldrb r0, [r0, #0xb] - adds r1, r1, r0 - str r1, [sp] - bl sub_080D15AC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - movs r7, #0 - ldr r0, [r4] - ldrb r3, [r0, #9] - ldr r0, [sp] - cmp r3, r0 - bge _080D03E6 -_080D0382: - lsls r0, r3, #1 - adds r0, r0, r3 - ldr r2, _080D03F8 - ldr r1, [r2] - lsls r0, r0, #1 - ldrb r4, [r1, #8] - adds r0, r0, r4 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldrb r5, [r1, #8] - adds r3, #1 - mov sb, r3 - cmp r5, sl - bge _080D03DE - mov r8, r2 - mov r0, sl - subs r5, r0, r5 -_080D03A4: - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #4 - adds r4, r0, #0 - adds r4, #0x14 - mov r1, r8 - ldr r0, [r1] - adds r0, r0, r4 - movs r1, #5 - bl sub_0806A1B4 - cmp r0, #0 - beq _080D03CC - mov r0, r8 - ldr r2, [r0] - adds r2, r2, r4 - ldr r0, [sp, #4] - adds r1, r6, #0 - bl SetBoxMonAt -_080D03CC: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - subs r5, #1 - cmp r5, #0 - bne _080D03A4 -_080D03DE: - mov r3, sb - ldr r1, [sp] - cmp r3, r1 - blt _080D0382 -_080D03E6: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D03F8: .4byte gUnknown_2039A20 - thumb_func_end sub_080D034C - - thumb_func_start sub_080D03FC -sub_080D03FC: @ 0x080D03FC - push {lr} - sub sp, #8 - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #0 - movs r1, #4 - movs r2, #0 - bl SetBgAttribute - movs r0, #8 - movs r1, #0x80 - bl ClearGpuRegBits - movs r0, #0x20 - str r0, [sp] - str r0, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, #0 - bl CopyBgTilemapBufferToVram - add sp, #8 - pop {r0} - bx r0 - thumb_func_end sub_080D03FC - - thumb_func_start sub_080D0444 -sub_080D0444: @ 0x080D0444 - ldr r0, _080D045C - ldr r2, [r0] - ldrb r1, [r2, #3] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - ldrb r2, [r2, #2] - adds r0, r0, r2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bx lr - .align 2, 0 -_080D045C: .4byte gUnknown_2039A20 - thumb_func_end sub_080D0444 - - thumb_func_start sub_080D0460 -sub_080D0460: @ 0x080D0460 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - ldr r0, _080D04CC - ldr r0, [r0] - ldrb r2, [r0, #8] - ldrb r1, [r0, #0xa] - adds r2, r2, r1 - mov sb, r2 - ldrb r1, [r0, #9] - ldrb r0, [r0, #0xb] - adds r0, r1, r0 - str r0, [sp] - movs r7, #0 - adds r6, r1, #0 - cmp r6, r0 - bge _080D04EE - lsls r0, r6, #1 - adds r0, r0, r6 - lsls r0, r0, #1 - mov r8, r0 -_080D0490: - ldr r2, _080D04CC - ldr r1, [r2] - ldrb r0, [r1, #8] - add r0, r8 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldrb r4, [r1, #8] - cmp r4, sb - bge _080D04E2 - mov sl, r2 -_080D04A4: - lsls r1, r7, #2 - adds r1, r1, r7 - lsls r1, r1, #4 - adds r1, #0x14 - mov r2, sl - ldr r0, [r2] - adds r0, r0, r1 - movs r1, #5 - bl sub_0806A1B4 - cmp r0, #0 - beq _080D04D0 - adds r0, r5, #0 - movs r1, #5 - bl GetCurrentBoxMonData - cmp r0, #0 - beq _080D04D0 - movs r0, #0 - b _080D04F0 - .align 2, 0 -_080D04CC: .4byte gUnknown_2039A20 -_080D04D0: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r4, #1 - cmp r4, sb - blt _080D04A4 -_080D04E2: - movs r0, #6 - add r8, r0 - adds r6, #1 - ldr r2, [sp] - cmp r6, r2 - blt _080D0490 -_080D04EE: - movs r0, #1 -_080D04F0: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_080D0460 - - thumb_func_start sub_080D0500 -sub_080D0500: @ 0x080D0500 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - ldr r3, _080D05FC - ldr r0, [r3] - ldrb r0, [r0, #1] - cmp r0, #3 - bne _080D05DE - ldr r0, _080D0600 - str r0, [sp, #0x18] - ldr r1, _080D0604 - add r2, sp, #0x18 - ldr r0, [r2, #4] - ands r0, r1 - movs r1, #0x80 - lsls r1, r1, #2 - orrs r0, r1 - str r0, [r2, #4] - mov r1, sp - ldr r0, _080D0608 - ldm r0!, {r4, r5, r6} - stm r1!, {r4, r5, r6} - ldm r0!, {r4, r5, r6} - stm r1!, {r4, r5, r6} - movs r7, #0 - mov sb, r2 - mov r8, r3 - movs r0, #0 - mov sl, r0 -_080D0540: - adds r6, r7, #7 - lsls r1, r6, #0x10 - mov r2, sb - ldrh r0, [r2, #4] - orrs r0, r1 - str r0, [r2, #4] - mov r0, sb - bl LoadCompressedSpriteSheet - mov r4, sb - ldrh r0, [r4, #6] - bl GetSpriteTileStartByTag - mov r5, r8 - ldr r1, [r5] - lsls r5, r7, #4 - ldr r2, _080D060C - adds r1, r1, r2 - adds r1, r1, r5 - lsls r0, r0, #0x10 - lsrs r0, r0, #0xb - ldr r4, _080D0610 - adds r0, r0, r4 - str r0, [r1] - ldr r0, _080D0614 - adds r4, r7, r0 - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - bl AllocSpritePalette - mov r2, r8 - ldr r1, [r2] - adds r1, r1, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080D0618 - adds r1, r1, r2 - strh r0, [r1] - ldrh r0, [r1] - lsls r0, r0, #4 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r0, r2 - strh r0, [r1] - mov r0, sp - strh r6, [r0] - strh r4, [r0, #2] - movs r1, #0 - movs r2, #0 - movs r3, #0xb - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r4, r8 - ldr r2, [r4] - ldr r6, _080D061C - adds r2, r2, r6 - adds r2, r2, r5 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _080D0620 - adds r1, r1, r0 - str r1, [r2] - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - ldr r0, [r4] - adds r0, r0, r5 - ldr r1, _080D0624 - adds r0, r0, r1 - mov r2, sl - strb r2, [r0] - adds r7, #1 - cmp r7, #2 - ble _080D0540 -_080D05DE: - ldr r0, _080D05FC - ldr r0, [r0] - ldr r4, _080D0628 - adds r0, r0, r4 - movs r1, #0 - strh r1, [r0] - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D05FC: .4byte gUnknown_20399A8 -_080D0600: .4byte gUnknown_3000F78 -_080D0604: .4byte 0xFFFF0000 -_080D0608: .4byte gUnknown_855676C -_080D060C: .4byte 0x00002208 -_080D0610: .4byte 0x06010000 -_080D0614: .4byte 0xFFFFDACB -_080D0618: .4byte 0x0000220C -_080D061C: .4byte 0x00002204 -_080D0620: .4byte gUnknown_20205AC -_080D0624: .4byte 0x00002210 -_080D0628: .4byte 0x00002234 - thumb_func_end sub_080D0500 - - thumb_func_start sub_080D062C -sub_080D062C: @ 0x080D062C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - ldr r0, _080D0660 - ldr r0, [r0] - ldrb r0, [r0, #1] - cmp r0, #3 - bne _080D06E2 - mov r0, r8 - adds r1, r7, #0 - bl sub_080D0BC4 - cmp r0, #0 - bne _080D06E2 - mov r0, r8 - cmp r0, #0 - beq _080D0664 - cmp r0, #1 - beq _080D067A - b _080D06E2 - .align 2, 0 -_080D0660: .4byte gUnknown_20399A8 -_080D0664: - adds r0, r7, #0 - movs r1, #5 - bl GetCurrentBoxMonData - cmp r0, #0 - beq _080D06E2 - adds r0, r7, #0 - movs r1, #0xc - bl GetCurrentBoxMonData - b _080D069C -_080D067A: - cmp r7, #5 - bhi _080D06E2 - movs r0, #0x64 - adds r1, r7, #0 - muls r1, r0, r1 - ldr r0, _080D06EC - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #5 - bl GetMonData - cmp r0, #0 - beq _080D06E2 - adds r0, r4, #0 - movs r1, #0xc - bl GetMonData -_080D069C: - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0 - beq _080D06E2 - adds r0, r4, #0 - bl GetItemIconPic - adds r6, r0, #0 - adds r0, r4, #0 - bl GetItemIconPalette - adds r5, r0, #0 - bl sub_080D0B88 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - mov r1, r8 - adds r2, r7, #0 - bl sub_080D0CAC - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r5, #0 - bl sub_080D0DC4 - adds r0, r4, #0 - movs r1, #1 - bl sub_080D0E74 - adds r0, r4, #0 - movs r1, #1 - bl sub_080D0FE0 -_080D06E2: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D06EC: .4byte gUnknown_2024190 - thumb_func_end sub_080D062C - - thumb_func_start sub_080D06F0 -sub_080D06F0: @ 0x080D06F0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - ldr r0, _080D072C - ldr r0, [r0] - ldrb r0, [r0, #1] - cmp r0, #3 - bne _080D0726 - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_080D0C10 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #2 - bl sub_080D0E74 - adds r0, r4, #0 - movs r1, #0 - adds r2, r6, #0 - adds r3, r5, #0 - bl sub_080D0EA4 -_080D0726: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080D072C: .4byte gUnknown_20399A8 - thumb_func_end sub_080D06F0 - - thumb_func_start Item_FromMonToMoving -Item_FromMonToMoving: @ 0x080D0730 - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - adds r7, r5, #0 - ldr r0, _080D0794 - ldr r0, [r0] - ldrb r0, [r0, #1] - cmp r0, #3 - bne _080D07C0 - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_080D0C10 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r1, #0 - mov r0, sp - strh r1, [r0] - adds r0, r4, #0 - movs r1, #3 - bl sub_080D0E74 - adds r0, r4, #0 - movs r1, #1 - adds r2, r6, #0 - adds r3, r5, #0 - bl sub_080D0EA4 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl sub_080D0CAC - cmp r6, #0 - bne _080D0798 - adds r0, r5, #0 - movs r1, #0xc - mov r2, sp - bl SetCurrentBoxMonData - adds r0, r5, #0 - movs r1, #1 - bl SetBoxMonIconObjMode - b _080D07B0 - .align 2, 0 -_080D0794: .4byte gUnknown_20399A8 -_080D0798: - movs r0, #0x64 - muls r0, r7, r0 - ldr r1, _080D07C8 - adds r0, r0, r1 - movs r1, #0xc - mov r2, sp - bl SetMonData - adds r0, r7, #0 - movs r1, #1 - bl SetPartyMonIconObjMode -_080D07B0: - ldr r0, _080D07CC - ldr r0, [r0] - ldr r2, _080D07D0 - adds r1, r0, r2 - ldrh r1, [r1] - ldr r2, _080D07D4 - adds r0, r0, r2 - strh r1, [r0] -_080D07C0: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D07C8: .4byte gUnknown_2024190 -_080D07CC: .4byte gUnknown_20399A8 -_080D07D0: .4byte 0x00000CE6 -_080D07D4: .4byte 0x00002234 - thumb_func_end Item_FromMonToMoving - - thumb_func_start sub_080D07D8 -sub_080D07D8: @ 0x080D07D8 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - adds r0, r5, #0 - bl GetItemIconPic - mov r8, r0 - adds r0, r5, #0 - bl GetItemIconPalette - adds r6, r0, #0 - bl sub_080D0B88 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - mov r1, r8 - adds r2, r6, #0 - bl sub_080D0DC4 - adds r0, r4, #0 - movs r1, #6 - bl sub_080D0E74 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - movs r3, #0 - bl sub_080D0EA4 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl sub_080D0CAC - adds r0, r4, #0 - movs r1, #1 - bl sub_080D0FE0 - ldr r0, _080D0844 - ldr r0, [r0] - ldr r1, _080D0848 - adds r0, r0, r1 - strh r5, [r0] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080D0844: .4byte gUnknown_20399A8 -_080D0848: .4byte 0x00002234 - thumb_func_end sub_080D07D8 - - thumb_func_start Item_SwitchMonsWithMoving -Item_SwitchMonsWithMoving: @ 0x080D084C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - ldr r0, _080D08B4 - mov r8, r0 - ldr r0, [r0] - ldrb r0, [r0, #1] - cmp r0, #3 - bne _080D090A - mov r0, sb - adds r1, r7, #0 - bl sub_080D0C10 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - movs r1, #3 - bl sub_080D0E74 - adds r0, r4, #0 - movs r1, #3 - movs r2, #2 - movs r3, #0 - bl sub_080D0EA4 - mov r1, sb - cmp r1, #0 - bne _080D08BC - adds r0, r7, #0 - movs r1, #0xc - bl GetCurrentBoxMonData - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - mov r0, r8 - ldr r2, [r0] - ldr r4, _080D08B8 - adds r2, r2, r4 - adds r0, r7, #0 - movs r1, #0xc - bl SetCurrentBoxMonData - mov r1, r8 - ldr r0, [r1] - adds r0, r0, r4 - b _080D08E8 - .align 2, 0 -_080D08B4: .4byte gUnknown_20399A8 -_080D08B8: .4byte 0x00002234 -_080D08BC: - movs r0, #0x64 - adds r4, r7, #0 - muls r4, r0, r4 - ldr r0, _080D0918 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0xc - bl GetMonData - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - mov r0, r8 - ldr r2, [r0] - ldr r5, _080D091C - adds r2, r2, r5 - adds r0, r4, #0 - movs r1, #0xc - bl SetMonData - mov r1, r8 - ldr r0, [r1] - adds r0, r0, r5 -_080D08E8: - strh r6, [r0] - movs r0, #2 - movs r1, #0 - bl sub_080D0C10 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - movs r1, #4 - bl sub_080D0E74 - adds r0, r4, #0 - movs r1, #4 - mov r2, sb - adds r3, r7, #0 - bl sub_080D0EA4 -_080D090A: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D0918: .4byte gUnknown_2024190 -_080D091C: .4byte 0x00002234 - thumb_func_end Item_SwitchMonsWithMoving - - thumb_func_start Item_GiveMovingToMon -Item_GiveMovingToMon: @ 0x080D0920 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - mov r8, r5 - ldr r6, _080D0978 - ldr r0, [r6] - ldrb r0, [r0, #1] - cmp r0, #3 - bne _080D09A0 - movs r0, #2 - movs r1, #0 - bl sub_080D0C10 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #4 - bl sub_080D0E74 - adds r0, r4, #0 - movs r1, #2 - adds r2, r7, #0 - adds r3, r5, #0 - bl sub_080D0EA4 - cmp r7, #0 - bne _080D0980 - ldr r2, [r6] - ldr r0, _080D097C - adds r2, r2, r0 - adds r0, r5, #0 - movs r1, #0xc - bl SetCurrentBoxMonData - adds r0, r5, #0 - movs r1, #0 - bl SetBoxMonIconObjMode - b _080D09A0 - .align 2, 0 -_080D0978: .4byte gUnknown_20399A8 -_080D097C: .4byte 0x00002234 -_080D0980: - movs r0, #0x64 - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - ldr r1, _080D09AC - adds r0, r0, r1 - ldr r2, [r6] - ldr r1, _080D09B0 - adds r2, r2, r1 - movs r1, #0xc - bl SetMonData - mov r0, r8 - movs r1, #0 - bl SetPartyMonIconObjMode -_080D09A0: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D09AC: .4byte gUnknown_2024190 -_080D09B0: .4byte 0x00002234 - thumb_func_end Item_GiveMovingToMon - - thumb_func_start Item_TakeMons -Item_TakeMons: @ 0x080D09B4 - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - adds r7, r5, #0 - ldr r0, _080D0A0C - ldr r0, [r0] - ldrb r0, [r0, #1] - cmp r0, #3 - bne _080D0A28 - movs r1, #0 - mov r0, sp - strh r1, [r0] - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_080D0C10 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #2 - bl sub_080D0E74 - adds r0, r4, #0 - movs r1, #0 - adds r2, r6, #0 - adds r3, r5, #0 - bl sub_080D0EA4 - cmp r6, #0 - bne _080D0A10 - adds r0, r5, #0 - movs r1, #0xc - mov r2, sp - bl SetCurrentBoxMonData - adds r0, r5, #0 - movs r1, #1 - bl SetBoxMonIconObjMode - b _080D0A28 - .align 2, 0 -_080D0A0C: .4byte gUnknown_20399A8 -_080D0A10: - movs r0, #0x64 - muls r0, r7, r0 - ldr r1, _080D0A30 - adds r0, r0, r1 - movs r1, #0xc - mov r2, sp - bl SetMonData - adds r0, r7, #0 - movs r1, #1 - bl SetPartyMonIconObjMode -_080D0A28: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D0A30: .4byte gUnknown_2024190 - thumb_func_end Item_TakeMons - - thumb_func_start sub_080D0A34 -sub_080D0A34: @ 0x080D0A34 - push {r4, lr} - ldr r0, _080D0A68 - ldr r0, [r0] - ldrb r0, [r0, #1] - cmp r0, #3 - bne _080D0A62 - movs r0, #2 - movs r1, #0 - bl sub_080D0C10 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #5 - bl sub_080D0E74 - adds r0, r4, #0 - movs r1, #0 - movs r2, #2 - movs r3, #0 - bl sub_080D0EA4 -_080D0A62: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D0A68: .4byte gUnknown_20399A8 - thumb_func_end sub_080D0A34 - - thumb_func_start sub_080D0A6C -sub_080D0A6C: @ 0x080D0A6C - push {r4, lr} - ldr r0, _080D0AB0 - ldr r0, [r0] - ldrb r0, [r0, #1] - cmp r0, #3 - bne _080D0AAA - movs r4, #0 -_080D0A7A: - ldr r0, _080D0AB0 - ldr r1, [r0] - lsls r0, r4, #4 - adds r1, r1, r0 - ldr r2, _080D0AB4 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080D0AA4 - subs r2, #2 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #1 - bne _080D0AA4 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - movs r1, #7 - movs r2, #2 - movs r3, #0 - bl sub_080D0EA4 -_080D0AA4: - adds r4, #1 - cmp r4, #2 - ble _080D0A7A -_080D0AAA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D0AB0: .4byte gUnknown_20399A8 -_080D0AB4: .4byte 0x00002210 - thumb_func_end sub_080D0A6C - - thumb_func_start sub_080D0AB8 -sub_080D0AB8: @ 0x080D0AB8 - push {r4, r5, lr} - movs r5, #0 - ldr r0, _080D0AF4 - ldr r0, [r0] - ldr r1, _080D0AF8 - adds r4, r0, r1 - adds r3, r0, #0 -_080D0AC6: - ldr r1, _080D0AFC - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _080D0B08 - ldr r2, [r4] - adds r0, r2, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x28 - ands r0, r1 - cmp r0, #8 - beq _080D0AEE - ldr r1, [r2, #0x1c] - ldr r0, _080D0B00 - cmp r1, r0 - beq _080D0B08 - ldr r0, _080D0B04 - cmp r1, r0 - beq _080D0B08 -_080D0AEE: - movs r0, #1 - b _080D0B14 - .align 2, 0 -_080D0AF4: .4byte gUnknown_20399A8 -_080D0AF8: .4byte 0x00002204 -_080D0AFC: .4byte 0x00002210 -_080D0B00: .4byte sub_08007140 -_080D0B04: .4byte sub_080D1378 -_080D0B08: - adds r4, #0x10 - adds r3, #0x10 - adds r5, #1 - cmp r5, #2 - ble _080D0AC6 - movs r0, #0 -_080D0B14: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080D0AB8 - - thumb_func_start IsActiveItemMoving -IsActiveItemMoving: @ 0x080D0B1C - push {lr} - ldr r0, _080D0B40 - ldr r1, [r0] - ldrb r0, [r1, #1] - cmp r0, #3 - bne _080D0B50 - movs r2, #0 - ldr r0, _080D0B44 - adds r1, r1, r0 -_080D0B2E: - ldrb r0, [r1, #2] - cmp r0, #0 - beq _080D0B48 - ldrb r0, [r1] - cmp r0, #2 - bne _080D0B48 - movs r0, #1 - b _080D0B52 - .align 2, 0 -_080D0B40: .4byte gUnknown_20399A8 -_080D0B44: .4byte 0x0000220E -_080D0B48: - adds r1, #0x10 - adds r2, #1 - cmp r2, #2 - ble _080D0B2E -_080D0B50: - movs r0, #0 -_080D0B52: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsActiveItemMoving - - thumb_func_start GetMovingItemName -GetMovingItemName: @ 0x080D0B58 - push {lr} - ldr r0, _080D0B6C - ldr r0, [r0] - ldr r1, _080D0B70 - adds r0, r0, r1 - ldrh r0, [r0] - bl sub_080D6C8C - pop {r1} - bx r1 - .align 2, 0 -_080D0B6C: .4byte gUnknown_20399A8 -_080D0B70: .4byte 0x00002234 - thumb_func_end GetMovingItemName - - thumb_func_start sub_080D0B74 -sub_080D0B74: @ 0x080D0B74 - ldr r0, _080D0B80 - ldr r0, [r0] - ldr r1, _080D0B84 - adds r0, r0, r1 - ldrh r0, [r0] - bx lr - .align 2, 0 -_080D0B80: .4byte gUnknown_20399A8 -_080D0B84: .4byte 0x00002234 - thumb_func_end sub_080D0B74 - - thumb_func_start sub_080D0B88 -sub_080D0B88: @ 0x080D0B88 - push {r4, r5, lr} - movs r2, #0 - ldr r5, _080D0BA8 - ldr r3, _080D0BAC - movs r4, #1 -_080D0B92: - ldr r0, [r5] - lsls r1, r2, #4 - adds r0, r0, r1 - adds r1, r0, r3 - ldrb r0, [r1] - cmp r0, #0 - bne _080D0BB0 - strb r4, [r1] - adds r0, r2, #0 - b _080D0BBC - .align 2, 0 -_080D0BA8: .4byte gUnknown_20399A8 -_080D0BAC: .4byte 0x00002210 -_080D0BB0: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #2 - bls _080D0B92 - movs r0, #3 -_080D0BBC: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080D0B88 - - thumb_func_start sub_080D0BC4 -sub_080D0BC4: @ 0x080D0BC4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r3, #0 - ldr r0, _080D0BF8 - ldr r2, [r0] -_080D0BD4: - ldr r5, _080D0BFC - adds r0, r2, r5 - ldrb r0, [r0] - cmp r0, #0 - beq _080D0C00 - subs r5, #2 - adds r0, r2, r5 - ldrb r0, [r0] - cmp r0, r4 - bne _080D0C00 - adds r5, #1 - adds r0, r2, r5 - ldrb r0, [r0] - cmp r0, r1 - bne _080D0C00 - movs r0, #1 - b _080D0C0A - .align 2, 0 -_080D0BF8: .4byte gUnknown_20399A8 -_080D0BFC: .4byte 0x00002210 -_080D0C00: - adds r2, #0x10 - adds r3, #1 - cmp r3, #2 - ble _080D0BD4 - movs r0, #0 -_080D0C0A: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_080D0BC4 - - thumb_func_start sub_080D0C10 -sub_080D0C10: @ 0x080D0C10 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - movs r3, #0 - ldr r0, _080D0C48 - ldr r1, [r0] -_080D0C20: - lsls r0, r3, #4 - adds r2, r1, r0 - ldr r6, _080D0C4C - adds r0, r2, r6 - ldrb r0, [r0] - cmp r0, #0 - beq _080D0C50 - subs r6, #2 - adds r0, r2, r6 - ldrb r0, [r0] - cmp r0, r5 - bne _080D0C50 - adds r6, #1 - adds r0, r2, r6 - ldrb r0, [r0] - cmp r0, r4 - bne _080D0C50 - adds r0, r3, #0 - b _080D0C5C - .align 2, 0 -_080D0C48: .4byte gUnknown_20399A8 -_080D0C4C: .4byte 0x00002210 -_080D0C50: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #2 - bls _080D0C20 - movs r0, #3 -_080D0C5C: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080D0C10 - - thumb_func_start sub_080D0C64 -sub_080D0C64: @ 0x080D0C64 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r2, #0 - ldr r0, _080D0C8C - ldr r3, [r0] - ldr r0, _080D0C90 - adds r4, r3, r0 - ldr r6, _080D0C94 -_080D0C74: - lsls r1, r2, #4 - adds r0, r3, r1 - adds r0, r0, r6 - ldrb r0, [r0] - cmp r0, #0 - beq _080D0C98 - adds r0, r4, r1 - ldr r0, [r0] - cmp r0, r5 - bne _080D0C98 - adds r0, r2, #0 - b _080D0CA4 - .align 2, 0 -_080D0C8C: .4byte gUnknown_20399A8 -_080D0C90: .4byte 0x00002204 -_080D0C94: .4byte 0x00002210 -_080D0C98: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #2 - bls _080D0C74 - movs r0, #3 -_080D0CA4: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080D0C64 - - thumb_func_start sub_080D0CAC -sub_080D0CAC: @ 0x080D0CAC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - cmp r5, #2 - bhi _080D0DAA - cmp r1, #0 - beq _080D0CD8 - cmp r1, #1 - beq _080D0D34 - ldr r4, _080D0CD4 - lsls r3, r5, #4 - b _080D0D94 - .align 2, 0 -_080D0CD4: .4byte gUnknown_20399A8 -_080D0CD8: - adds r0, r7, #0 - movs r1, #6 - bl __umodsi3 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r7, #0 - movs r1, #6 - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r6, _080D0D2C - ldr r2, [r6] - lsls r5, r5, #4 - ldr r1, _080D0D30 - adds r2, r2, r1 - adds r2, r2, r5 - ldr r3, [r2] - lsls r1, r4, #1 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, #0x70 - strh r1, [r3, #0x20] - ldr r3, [r2] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, #0x38 - strh r1, [r3, #0x22] - ldr r2, [r2] - ldrb r1, [r2, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2, #5] - adds r4, r6, #0 - adds r3, r5, #0 - b _080D0D94 - .align 2, 0 -_080D0D2C: .4byte gUnknown_20399A8 -_080D0D30: .4byte 0x00002204 -_080D0D34: - cmp r7, #0 - bne _080D0D5C - ldr r4, _080D0D54 - ldr r0, [r4] - lsls r3, r5, #4 - ldr r1, _080D0D58 - adds r0, r0, r1 - adds r0, r0, r3 - ldr r2, [r0] - movs r1, #0x74 - strh r1, [r2, #0x20] - ldr r1, [r0] - movs r0, #0x4c - strh r0, [r1, #0x22] - b _080D0D7C - .align 2, 0 -_080D0D54: .4byte gUnknown_20399A8 -_080D0D58: .4byte 0x00002204 -_080D0D5C: - ldr r4, _080D0DB4 - ldr r0, [r4] - lsls r3, r5, #4 - ldr r1, _080D0DB8 - adds r0, r0, r1 - adds r0, r0, r3 - ldr r2, [r0] - movs r1, #0xa4 - strh r1, [r2, #0x20] - ldr r2, [r0] - subs r1, r7, #1 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, #0x1c - strh r0, [r2, #0x22] -_080D0D7C: - ldr r0, [r4] - ldr r1, _080D0DB8 - adds r0, r0, r1 - adds r0, r0, r3 - ldr r2, [r0] - ldrb r1, [r2, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2, #5] -_080D0D94: - ldr r0, [r4] - adds r0, r0, r3 - ldr r1, _080D0DBC - adds r0, r0, r1 - mov r1, r8 - strb r1, [r0] - ldr r0, [r4] - adds r0, r0, r3 - ldr r1, _080D0DC0 - adds r0, r0, r1 - strb r7, [r0] -_080D0DAA: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D0DB4: .4byte gUnknown_20399A8 -_080D0DB8: .4byte 0x00002204 -_080D0DBC: .4byte 0x0000220E -_080D0DC0: .4byte 0x0000220F - thumb_func_end sub_080D0CAC - - thumb_func_start sub_080D0DC4 -sub_080D0DC4: @ 0x080D0DC4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - mov r8, r1 - mov sb, r2 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #2 - bhi _080D0E4C - movs r0, #0 - str r0, [sp] - ldr r4, _080D0E5C - ldr r1, [r4] - ldr r6, _080D0E60 - adds r1, r1, r6 - ldr r2, _080D0E64 - mov r0, sp - bl CpuFastSet - ldr r1, [r4] - ldr r5, _080D0E68 - adds r1, r1, r5 - mov r0, r8 - bl LZ77UnCompWram - lsls r7, r7, #4 - mov r8, r7 - adds r7, r4, #0 - movs r4, #2 -_080D0E02: - ldr r1, [r7] - adds r0, r1, r5 - adds r1, r1, r6 - movs r2, #0x18 - bl CpuFastSet - adds r6, #0x80 - adds r5, #0x60 - subs r4, #1 - cmp r4, #0 - bge _080D0E02 - ldr r5, _080D0E5C - ldr r1, [r5] - ldr r4, _080D0E60 - adds r0, r1, r4 - ldr r2, _080D0E6C - adds r1, r1, r2 - add r1, r8 - ldr r1, [r1] - movs r2, #0x80 - bl CpuFastSet - ldr r1, [r5] - adds r1, r1, r4 - mov r0, sb - bl LZ77UnCompWram - ldr r0, [r5] - adds r4, r0, r4 - add r0, r8 - ldr r1, _080D0E70 - adds r0, r0, r1 - ldrh r1, [r0] - adds r0, r4, #0 - movs r2, #0x20 - bl LoadPalette -_080D0E4C: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D0E5C: .4byte gUnknown_20399A8 -_080D0E60: .4byte 0x000042C4 -_080D0E64: .4byte 0x01000080 -_080D0E68: .4byte 0x000022C4 -_080D0E6C: .4byte 0x00002208 -_080D0E70: .4byte 0x0000220C - thumb_func_end sub_080D0DC4 - - thumb_func_start sub_080D0E74 -sub_080D0E74: @ 0x080D0E74 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - cmp r2, #2 - bhi _080D0E96 - ldr r0, _080D0E9C - ldr r0, [r0] - lsls r1, r2, #4 - ldr r2, _080D0EA0 - adds r0, r0, r2 - adds r0, r0, r1 - ldr r0, [r0] - adds r1, r3, #0 - bl StartSpriteAffineAnim -_080D0E96: - pop {r0} - bx r0 - .align 2, 0 -_080D0E9C: .4byte gUnknown_20399A8 -_080D0EA0: .4byte 0x00002204 - thumb_func_end sub_080D0E74 - - thumb_func_start sub_080D0EA4 -sub_080D0EA4: @ 0x080D0EA4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r0, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - cmp r4, #2 - bls _080D0EBC - b _080D0FCE -_080D0EBC: - cmp r0, #7 - bls _080D0EC2 - b _080D0FCE -_080D0EC2: - lsls r0, r0, #2 - ldr r1, _080D0ECC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080D0ECC: .4byte _080D0ED0 -_080D0ED0: @ jump table - .4byte _080D0EF0 @ case 0 - .4byte _080D0F14 @ case 1 - .4byte _080D0F38 @ case 2 - .4byte _080D0F64 @ case 3 - .4byte _080D0F90 @ case 4 - .4byte _080D0FCE @ case 5 - .4byte _080D0FCE @ case 6 - .4byte _080D0FBC @ case 7 -_080D0EF0: - ldr r0, _080D0F08 - ldr r0, [r0] - lsls r1, r4, #4 - ldr r2, _080D0F0C - adds r0, r0, r2 - adds r0, r0, r1 - ldr r1, [r0] - strh r4, [r1, #0x2e] - ldr r1, [r0] - ldr r0, _080D0F10 - b _080D0FCC - .align 2, 0 -_080D0F08: .4byte gUnknown_20399A8 -_080D0F0C: .4byte 0x00002204 -_080D0F10: .4byte sub_080D12E8 -_080D0F14: - ldr r0, _080D0F2C - ldr r0, [r0] - lsls r1, r4, #4 - ldr r2, _080D0F30 - adds r0, r0, r2 - adds r0, r0, r1 - ldr r2, [r0] - movs r1, #0 - strh r1, [r2, #0x2e] - ldr r1, [r0] - ldr r0, _080D0F34 - b _080D0FCC - .align 2, 0 -_080D0F2C: .4byte gUnknown_20399A8 -_080D0F30: .4byte 0x00002204 -_080D0F34: .4byte sub_080D1314 -_080D0F38: - ldr r0, _080D0F58 - ldr r0, [r0] - lsls r1, r4, #4 - ldr r2, _080D0F5C - adds r0, r0, r2 - adds r0, r0, r1 - ldr r2, [r0] - movs r1, #0 - strh r1, [r2, #0x2e] - ldr r1, [r0] - strh r5, [r1, #0x3a] - ldr r1, [r0] - strh r3, [r1, #0x3c] - ldr r1, [r0] - ldr r0, _080D0F60 - b _080D0FCC - .align 2, 0 -_080D0F58: .4byte gUnknown_20399A8 -_080D0F5C: .4byte 0x00002204 -_080D0F60: .4byte sub_080D13B4 -_080D0F64: - ldr r0, _080D0F84 - ldr r0, [r0] - lsls r1, r4, #4 - ldr r2, _080D0F88 - adds r0, r0, r2 - adds r0, r0, r1 - ldr r2, [r0] - movs r1, #0 - strh r1, [r2, #0x2e] - ldr r2, [r0] - ldr r1, _080D0F8C - str r1, [r2, #0x1c] - strh r5, [r2, #0x3a] - ldr r0, [r0] - strh r3, [r0, #0x3c] - b _080D0FCE - .align 2, 0 -_080D0F84: .4byte gUnknown_20399A8 -_080D0F88: .4byte 0x00002204 -_080D0F8C: .4byte sub_080D1434 -_080D0F90: - ldr r0, _080D0FB0 - ldr r0, [r0] - lsls r1, r4, #4 - ldr r2, _080D0FB4 - adds r0, r0, r2 - adds r0, r0, r1 - ldr r2, [r0] - movs r1, #0 - strh r1, [r2, #0x2e] - ldr r1, [r0] - strh r5, [r1, #0x3a] - ldr r1, [r0] - strh r3, [r1, #0x3c] - ldr r1, [r0] - ldr r0, _080D0FB8 - b _080D0FCC - .align 2, 0 -_080D0FB0: .4byte gUnknown_20399A8 -_080D0FB4: .4byte 0x00002204 -_080D0FB8: .4byte sub_080D14D0 -_080D0FBC: - ldr r0, _080D0FD4 - ldr r0, [r0] - lsls r1, r4, #4 - ldr r2, _080D0FD8 - adds r0, r0, r2 - adds r0, r0, r1 - ldr r1, [r0] - ldr r0, _080D0FDC -_080D0FCC: - str r0, [r1, #0x1c] -_080D0FCE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D0FD4: .4byte gUnknown_20399A8 -_080D0FD8: .4byte 0x00002204 -_080D0FDC: .4byte sub_080D156C - thumb_func_end sub_080D0EA4 - - thumb_func_start sub_080D0FE0 -sub_080D0FE0: @ 0x080D0FE0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - cmp r2, #2 - bhi _080D1020 - ldr r1, _080D1028 - ldr r0, [r1] - lsls r2, r2, #4 - adds r0, r0, r2 - ldr r3, _080D102C - adds r0, r0, r3 - strb r4, [r0] - ldr r0, [r1] - ldr r1, _080D1030 - adds r0, r0, r1 - adds r0, r0, r2 - ldr r0, [r0] - movs r3, #0 - cmp r4, #0 - bne _080D100E - movs r3, #1 -_080D100E: - adds r2, r0, #0 - adds r2, #0x3e - lsls r3, r3, #2 - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2] -_080D1020: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D1028: .4byte gUnknown_20399A8 -_080D102C: .4byte 0x00002210 -_080D1030: .4byte 0x00002204 - thumb_func_end sub_080D0FE0 - - thumb_func_start GetItemIconPic -GetItemIconPic: @ 0x080D1034 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0 - bl GetItemIconPicOrPalette - pop {r1} - bx r1 - thumb_func_end GetItemIconPic - - thumb_func_start GetItemIconPalette -GetItemIconPalette: @ 0x080D1044 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - bl GetItemIconPicOrPalette - pop {r1} - bx r1 - thumb_func_end GetItemIconPalette - - thumb_func_start sub_080D1054 -sub_080D1054: @ 0x080D1054 - push {r4, lr} - sub sp, #0x14 - bl IsActiveItemMoving - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D1074 - ldr r0, _080D106C - ldr r0, [r0] - ldr r1, _080D1070 - b _080D107A - .align 2, 0 -_080D106C: .4byte gUnknown_20399A8 -_080D1070: .4byte 0x00002234 -_080D1074: - ldr r0, _080D10B0 - ldr r0, [r0] - ldr r1, _080D10B4 -_080D107A: - adds r0, r0, r1 - ldrh r0, [r0] - bl sub_080D6D40 - adds r4, r0, #0 - movs r0, #2 - movs r1, #0x11 - bl FillWindowPixelBuffer - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - str r0, [sp, #8] - str r0, [sp, #0xc] - movs r0, #1 - str r0, [sp, #0x10] - movs r0, #2 - movs r1, #1 - adds r2, r4, #0 - movs r3, #4 - bl AddTextPrinterParameterized5 - add sp, #0x14 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D10B0: .4byte gUnknown_20399A8 -_080D10B4: .4byte 0x00000CE6 - thumb_func_end sub_080D1054 - - thumb_func_start sub_080D10B8 -sub_080D10B8: @ 0x080D10B8 - push {lr} - ldr r0, _080D10E0 - ldr r0, [r0] - ldr r1, _080D10E4 - adds r0, r0, r1 - movs r1, #0x15 - strh r1, [r0] - ldr r1, _080D10E8 - movs r3, #0x9d - lsls r3, r3, #1 - movs r0, #0 - movs r2, #0x80 - bl LoadBgTiles - movs r0, #0 - bl sub_080D1254 - pop {r0} - bx r0 - .align 2, 0 -_080D10E0: .4byte gUnknown_20399A8 -_080D10E4: .4byte 0x00002236 -_080D10E8: .4byte gUnknown_8556620 - thumb_func_end sub_080D10B8 - - thumb_func_start sub_080D10EC -sub_080D10EC: @ 0x080D10EC - push {r4, r5, lr} - sub sp, #0x10 - ldr r0, _080D1104 - ldr r0, [r0] - ldr r2, _080D1108 - adds r1, r0, r2 - ldrh r0, [r1] - cmp r0, #0 - bne _080D110C - movs r0, #0 - b _080D1172 - .align 2, 0 -_080D1104: .4byte gUnknown_20399A8 -_080D1108: .4byte 0x00002236 -_080D110C: - subs r0, #1 - strh r0, [r1] - ldrh r1, [r1] - movs r0, #0x15 - subs r5, r0, r1 - movs r4, #0 - cmp r4, r5 - bge _080D115C -_080D111C: - movs r0, #0 - movs r1, #0xa - bl GetBgAttribute - adds r1, r0, #0 - ldr r0, _080D117C - ldr r0, [r0] - ldr r2, _080D1180 - adds r0, r0, r2 - adds r1, #0x14 - ldrh r0, [r0] - adds r1, r1, r0 - adds r1, r1, r4 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r4, #0x18 - lsrs r2, r2, #0x18 - movs r0, #1 - str r0, [sp] - movs r0, #7 - str r0, [sp, #4] - movs r0, #0xf - str r0, [sp, #8] - movs r0, #0x15 - str r0, [sp, #0xc] - movs r0, #0 - movs r3, #0xd - bl WriteSequenceToBgTilemapBuffer - adds r4, #1 - cmp r4, r5 - blt _080D111C -_080D115C: - adds r0, r5, #0 - bl sub_080D1254 - ldr r0, _080D117C - ldr r0, [r0] - ldr r1, _080D1180 - adds r0, r0, r1 - ldrh r1, [r0] - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f -_080D1172: - add sp, #0x10 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080D117C: .4byte gUnknown_20399A8 -_080D1180: .4byte 0x00002236 - thumb_func_end sub_080D10EC - - thumb_func_start sub_080D1184 -sub_080D1184: @ 0x080D1184 - push {r4, r5, lr} - sub sp, #0x10 - ldr r5, _080D119C - ldr r0, [r5] - ldr r4, _080D11A0 - adds r0, r0, r4 - ldrh r0, [r0] - cmp r0, #0x16 - bne _080D11A4 - movs r0, #0 - b _080D1244 - .align 2, 0 -_080D119C: .4byte gUnknown_20399A8 -_080D11A0: .4byte 0x00002236 -_080D11A4: - cmp r0, #0 - bne _080D11C0 - movs r0, #1 - str r0, [sp] - movs r0, #9 - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #0x15 - movs r3, #0xc - bl FillBgTilemapBufferRect -_080D11C0: - ldr r1, [r5] - adds r1, r1, r4 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - ldrh r1, [r1] - movs r0, #0x15 - subs r5, r0, r1 - movs r4, #0 - cmp r4, r5 - bge _080D1216 -_080D11D6: - movs r0, #0 - movs r1, #0xa - bl GetBgAttribute - adds r1, r0, #0 - ldr r0, _080D124C - ldr r0, [r0] - ldr r2, _080D1250 - adds r0, r0, r2 - adds r1, #0x14 - ldrh r0, [r0] - adds r1, r1, r0 - adds r1, r1, r4 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r4, #0x18 - lsrs r2, r2, #0x18 - movs r0, #1 - str r0, [sp] - movs r0, #7 - str r0, [sp, #4] - movs r0, #0xf - str r0, [sp, #8] - movs r0, #0x15 - str r0, [sp, #0xc] - movs r0, #0 - movs r3, #0xd - bl WriteSequenceToBgTilemapBuffer - adds r4, #1 - cmp r4, r5 - blt _080D11D6 -_080D1216: - cmp r5, #0 - blt _080D1220 - adds r0, r5, #0 - bl sub_080D1254 -_080D1220: - adds r2, r5, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r0, #1 - str r0, [sp] - movs r0, #9 - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r3, #0xc - bl FillBgTilemapBufferRect - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #1 -_080D1244: - add sp, #0x10 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080D124C: .4byte gUnknown_20399A8 -_080D1250: .4byte 0x00002236 - thumb_func_end sub_080D1184 - - thumb_func_start sub_080D1254 -sub_080D1254: @ 0x080D1254 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - adds r7, r0, #0 - cmp r7, #0 - beq _080D128C - movs r1, #0x9d - lsls r1, r1, #1 - lsls r4, r7, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp] - movs r6, #1 - str r6, [sp, #4] - movs r5, #0xf - str r5, [sp, #8] - movs r0, #0 - movs r2, #0 - movs r3, #0xc - bl FillBgTilemapBufferRect - ldr r1, _080D12DC - str r4, [sp] - str r6, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r2, #0 - movs r3, #0x14 - bl FillBgTilemapBufferRect -_080D128C: - ldr r1, _080D12E0 - lsls r5, r7, #0x18 - lsrs r5, r5, #0x18 - movs r4, #1 - str r4, [sp] - movs r0, #7 - str r0, [sp, #4] - movs r6, #0xf - str r6, [sp, #8] - movs r0, #0 - adds r2, r5, #0 - movs r3, #0xd - bl FillBgTilemapBufferRect - movs r1, #0x9e - lsls r1, r1, #1 - str r4, [sp] - str r4, [sp, #4] - str r6, [sp, #8] - movs r0, #0 - adds r2, r5, #0 - movs r3, #0xc - bl FillBgTilemapBufferRect - ldr r1, _080D12E4 - str r4, [sp] - str r4, [sp, #4] - str r6, [sp, #8] - movs r0, #0 - adds r2, r5, #0 - movs r3, #0x14 - bl FillBgTilemapBufferRect - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D12DC: .4byte 0x0000093A -_080D12E0: .4byte 0x0000013B -_080D12E4: .4byte 0x0000013D - thumb_func_end sub_080D1254 - - thumb_func_start sub_080D12E8 -sub_080D12E8: @ 0x080D12E8 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080D1308 - ldrh r0, [r4, #0x2e] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl sub_080D0FE0 - ldr r0, _080D1310 - str r0, [r4, #0x1c] -_080D1308: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D1310: .4byte sub_08007140 - thumb_func_end sub_080D12E8 - - thumb_func_start sub_080D1314 -sub_080D1314: @ 0x080D1314 - push {lr} - adds r3, r0, #0 - movs r0, #0x2e - ldrsh r1, [r3, r0] - cmp r1, #0 - beq _080D1326 - cmp r1, #1 - beq _080D1342 - b _080D1370 -_080D1326: - ldrh r0, [r3, #0x20] - lsls r0, r0, #4 - strh r0, [r3, #0x30] - ldrh r0, [r3, #0x22] - lsls r0, r0, #4 - strh r0, [r3, #0x32] - movs r0, #0xa - strh r0, [r3, #0x34] - movs r0, #0x15 - strh r0, [r3, #0x36] - strh r1, [r3, #0x38] - ldrh r0, [r3, #0x2e] - adds r0, #1 - strh r0, [r3, #0x2e] -_080D1342: - ldrh r1, [r3, #0x30] - ldrh r0, [r3, #0x34] - subs r1, r1, r0 - strh r1, [r3, #0x30] - ldrh r0, [r3, #0x32] - ldrh r2, [r3, #0x36] - subs r0, r0, r2 - strh r0, [r3, #0x32] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - strh r1, [r3, #0x20] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - strh r0, [r3, #0x22] - ldrh r0, [r3, #0x38] - adds r0, #1 - strh r0, [r3, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xb - ble _080D1370 - ldr r0, _080D1374 - str r0, [r3, #0x1c] -_080D1370: - pop {r0} - bx r0 - .align 2, 0 -_080D1374: .4byte sub_080D1378 - thumb_func_end sub_080D1314 - - thumb_func_start sub_080D1378 -sub_080D1378: @ 0x080D1378 - ldr r1, _080D13AC - ldr r3, [r1] - ldr r1, _080D13B0 - adds r3, r3, r1 - ldr r1, [r3] - ldrh r1, [r1, #0x20] - adds r1, #4 - strh r1, [r0, #0x20] - ldr r2, [r3] - ldrh r1, [r2, #0x26] - ldrh r2, [r2, #0x22] - adds r1, r1, r2 - adds r1, #8 - strh r1, [r0, #0x22] - ldr r1, [r3] - ldrb r1, [r1, #5] - movs r2, #0xc - ands r2, r1 - ldrb r3, [r0, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r3 - orrs r1, r2 - strb r1, [r0, #5] - bx lr - .align 2, 0 -_080D13AC: .4byte gUnknown_20399A8 -_080D13B0: .4byte 0x00000CB4 - thumb_func_end sub_080D1378 - - thumb_func_start sub_080D13B4 -sub_080D13B4: @ 0x080D13B4 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r1, [r4, r0] - cmp r1, #0 - beq _080D13C6 - cmp r1, #1 - beq _080D13E2 - b _080D142A -_080D13C6: - ldrh r0, [r4, #0x20] - lsls r0, r0, #4 - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x22] - lsls r0, r0, #4 - strh r0, [r4, #0x32] - movs r0, #0xa - strh r0, [r4, #0x34] - movs r0, #0x15 - strh r0, [r4, #0x36] - strh r1, [r4, #0x38] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] -_080D13E2: - ldrh r0, [r4, #0x34] - ldrh r1, [r4, #0x30] - adds r0, r0, r1 - strh r0, [r4, #0x30] - ldrh r1, [r4, #0x36] - ldrh r2, [r4, #0x32] - adds r1, r1, r2 - strh r1, [r4, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - strh r0, [r4, #0x20] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - strh r1, [r4, #0x22] - ldrh r0, [r4, #0x38] - adds r0, #1 - strh r0, [r4, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xb - ble _080D142A - adds r0, r4, #0 - bl sub_080D0C64 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #0x3a] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrh r2, [r4, #0x3c] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - bl sub_080D0CAC - ldr r0, _080D1430 - str r0, [r4, #0x1c] -_080D142A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D1430: .4byte sub_08007140 - thumb_func_end sub_080D13B4 - - thumb_func_start sub_080D1434 -sub_080D1434: @ 0x080D1434 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r1, [r4, r0] - cmp r1, #0 - beq _080D1446 - cmp r1, #1 - beq _080D1462 - b _080D14C0 -_080D1446: - ldrh r0, [r4, #0x20] - lsls r0, r0, #4 - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x22] - lsls r0, r0, #4 - strh r0, [r4, #0x32] - movs r0, #0xa - strh r0, [r4, #0x34] - movs r0, #0x15 - strh r0, [r4, #0x36] - strh r1, [r4, #0x38] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] -_080D1462: - ldrh r1, [r4, #0x30] - ldrh r0, [r4, #0x34] - subs r1, r1, r0 - strh r1, [r4, #0x30] - ldrh r0, [r4, #0x32] - ldrh r2, [r4, #0x36] - subs r0, r0, r2 - strh r0, [r4, #0x32] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - strh r1, [r4, #0x20] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - strh r0, [r4, #0x22] - ldr r1, _080D14C8 - movs r2, #0x38 - ldrsh r0, [r4, r2] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x38] - adds r0, #1 - strh r0, [r4, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xb - ble _080D14C0 - adds r0, r4, #0 - bl sub_080D0C64 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #0x3a] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrh r2, [r4, #0x3c] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - bl sub_080D0CAC - movs r0, #0 - strh r0, [r4, #0x24] - ldr r0, _080D14CC - str r0, [r4, #0x1c] -_080D14C0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D14C8: .4byte gUnknown_82FA8CC -_080D14CC: .4byte sub_080D1378 - thumb_func_end sub_080D1434 - - thumb_func_start sub_080D14D0 -sub_080D14D0: @ 0x080D14D0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r1, [r4, r0] - cmp r1, #0 - beq _080D14E2 - cmp r1, #1 - beq _080D14FE - b _080D155E -_080D14E2: - ldrh r0, [r4, #0x20] - lsls r0, r0, #4 - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x22] - lsls r0, r0, #4 - strh r0, [r4, #0x32] - movs r0, #0xa - strh r0, [r4, #0x34] - movs r0, #0x15 - strh r0, [r4, #0x36] - strh r1, [r4, #0x38] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] -_080D14FE: - ldrh r0, [r4, #0x34] - ldrh r1, [r4, #0x30] - adds r0, r0, r1 - strh r0, [r4, #0x30] - ldrh r1, [r4, #0x36] - ldrh r2, [r4, #0x32] - adds r1, r1, r2 - strh r1, [r4, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - strh r0, [r4, #0x20] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - strh r1, [r4, #0x22] - ldr r1, _080D1564 - movs r2, #0x38 - ldrsh r0, [r4, r2] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - rsbs r0, r0, #0 - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x38] - adds r0, #1 - strh r0, [r4, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xb - ble _080D155E - adds r0, r4, #0 - bl sub_080D0C64 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #0x3a] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrh r2, [r4, #0x3c] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - bl sub_080D0CAC - ldr r0, _080D1568 - str r0, [r4, #0x1c] - movs r0, #0 - strh r0, [r4, #0x24] -_080D155E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D1564: .4byte gUnknown_82FA8CC -_080D1568: .4byte sub_08007140 - thumb_func_end sub_080D14D0 - - thumb_func_start sub_080D156C -sub_080D156C: @ 0x080D156C - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x22] - subs r0, #8 - strh r0, [r2, #0x22] - movs r1, #0x22 - ldrsh r0, [r2, r1] - movs r3, #0x26 - ldrsh r1, [r2, r3] - adds r0, r0, r1 - movs r1, #0x10 - rsbs r1, r1, #0 - cmp r0, r1 - bge _080D159C - ldr r0, _080D15A0 - str r0, [r2, #0x1c] - adds r0, r2, #0 - bl sub_080D0C64 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl sub_080D0FE0 -_080D159C: - pop {r0} - bx r0 - .align 2, 0 -_080D15A0: .4byte sub_08007140 - thumb_func_end sub_080D156C - - thumb_func_start sub_080D15A4 -sub_080D15A4: @ 0x080D15A4 - bx lr - .align 2, 0 - thumb_func_end sub_080D15A4 - - thumb_func_start sub_080D15A8 -sub_080D15A8: @ 0x080D15A8 - bx lr - .align 2, 0 - thumb_func_end sub_080D15A8 - - thumb_func_start sub_080D15AC -sub_080D15AC: @ 0x080D15AC - ldr r0, _080D15B4 - ldr r0, [r0] - ldrb r0, [r0] - bx lr - .align 2, 0 -_080D15B4: .4byte gUnknown_3005AF4 - thumb_func_end sub_080D15AC - - thumb_func_start SetCurrentBox -SetCurrentBox: @ 0x080D15B8 - push {lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xd - bhi _080D15C8 - ldr r0, _080D15CC - ldr r0, [r0] - strb r1, [r0] -_080D15C8: - pop {r0} - bx r0 - .align 2, 0 -_080D15CC: .4byte gUnknown_3005AF4 - thumb_func_end SetCurrentBox - - thumb_func_start GetBoxMonDataAt -GetBoxMonDataAt: @ 0x080D15D0 - push {r4, r5, lr} - adds r5, r2, #0 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - cmp r3, #0xd - bhi _080D160C - cmp r4, #0x1d - bhi _080D160C - ldr r2, _080D1608 - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r1, r0, #4 - subs r1, r1, r0 - lsls r1, r1, #5 - adds r1, #4 - ldr r0, [r2] - adds r0, r0, r1 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #4 - adds r0, r0, r1 - adds r1, r5, #0 - bl sub_0806A1B4 - b _080D160E - .align 2, 0 -_080D1608: .4byte gUnknown_3005AF4 -_080D160C: - movs r0, #0 -_080D160E: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end GetBoxMonDataAt - - thumb_func_start SetBoxMonDataAt -SetBoxMonDataAt: @ 0x080D1614 - push {r4, r5, r6, lr} - adds r5, r2, #0 - adds r6, r3, #0 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - cmp r3, #0xd - bhi _080D164C - cmp r4, #0x1d - bhi _080D164C - ldr r2, _080D1654 - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r1, r0, #4 - subs r1, r1, r0 - lsls r1, r1, #5 - adds r1, #4 - ldr r0, [r2] - adds r0, r0, r1 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #4 - adds r0, r0, r1 - adds r1, r5, #0 - adds r2, r6, #0 - bl SetBoxMonData -_080D164C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080D1654: .4byte gUnknown_3005AF4 - thumb_func_end SetBoxMonDataAt - - thumb_func_start GetCurrentBoxMonData -GetCurrentBoxMonData: @ 0x080D1658 - push {lr} - adds r3, r0, #0 - adds r2, r1, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r0, _080D1674 - ldr r0, [r0] - ldrb r0, [r0] - adds r1, r3, #0 - bl GetBoxMonDataAt - pop {r1} - bx r1 - .align 2, 0 -_080D1674: .4byte gUnknown_3005AF4 - thumb_func_end GetCurrentBoxMonData - - thumb_func_start SetCurrentBoxMonData -SetCurrentBoxMonData: @ 0x080D1678 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r3, r2, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _080D1698 - ldr r0, [r0] - ldrb r0, [r0] - adds r1, r4, #0 - adds r2, r5, #0 - bl SetBoxMonDataAt - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D1698: .4byte gUnknown_3005AF4 - thumb_func_end SetCurrentBoxMonData - - thumb_func_start GetBoxMonNickAt -GetBoxMonNickAt: @ 0x080D169C - push {r4, r5, lr} - adds r5, r2, #0 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - cmp r3, #0xd - bhi _080D16D8 - cmp r4, #0x1d - bhi _080D16D8 - ldr r2, _080D16D4 - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r1, r0, #4 - subs r1, r1, r0 - lsls r1, r1, #5 - adds r1, #4 - ldr r0, [r2] - adds r0, r0, r1 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #4 - adds r0, r0, r1 - movs r1, #2 - adds r2, r5, #0 - bl sub_0806A1B4 - b _080D16DC - .align 2, 0 -_080D16D4: .4byte gUnknown_3005AF4 -_080D16D8: - movs r0, #0xff - strb r0, [r5] -_080D16DC: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end GetBoxMonNickAt - - thumb_func_start GetBoxMonLevelAt -GetBoxMonLevelAt: @ 0x080D16E4 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r2, r1, #0x18 - cmp r0, #0xd - bhi _080D1724 - cmp r2, #0x1d - bhi _080D1724 - ldr r6, _080D172C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #5 - adds r5, r0, #4 - ldr r0, [r6] - adds r0, r0, r5 - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r4, r1, #4 - adds r0, r0, r4 - movs r1, #5 - bl sub_0806A1B4 - cmp r0, #0 - beq _080D1724 - ldr r0, [r6] - adds r0, r0, r5 - adds r0, r0, r4 - bl GetLevelFromBoxMonExp -_080D1724: - movs r0, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080D172C: .4byte gUnknown_3005AF4 - thumb_func_end GetBoxMonLevelAt - - thumb_func_start SetBoxMonNickAt -SetBoxMonNickAt: @ 0x080D1730 - push {r4, r5, lr} - adds r5, r2, #0 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - cmp r3, #0xd - bhi _080D1766 - cmp r4, #0x1d - bhi _080D1766 - ldr r2, _080D176C - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r1, r0, #4 - subs r1, r1, r0 - lsls r1, r1, #5 - adds r1, #4 - ldr r0, [r2] - adds r0, r0, r1 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #4 - adds r0, r0, r1 - movs r1, #2 - adds r2, r5, #0 - bl SetBoxMonData -_080D1766: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D176C: .4byte gUnknown_3005AF4 - thumb_func_end SetBoxMonNickAt - - thumb_func_start GetAndCopyBoxMonDataAt -GetAndCopyBoxMonDataAt: @ 0x080D1770 - push {r4, r5, r6, lr} - adds r5, r2, #0 - adds r6, r3, #0 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - cmp r3, #0xd - bhi _080D17B0 - cmp r4, #0x1d - bhi _080D17B0 - ldr r2, _080D17AC - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r1, r0, #4 - subs r1, r1, r0 - lsls r1, r1, #5 - adds r1, #4 - ldr r0, [r2] - adds r0, r0, r1 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #4 - adds r0, r0, r1 - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_0806A1B4 - b _080D17B2 - .align 2, 0 -_080D17AC: .4byte gUnknown_3005AF4 -_080D17B0: - movs r0, #0 -_080D17B2: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end GetAndCopyBoxMonDataAt - - thumb_func_start SetBoxMonAt -SetBoxMonAt: @ 0x080D17B8 - push {r4, r5, lr} - adds r5, r2, #0 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r4, #0xd - bhi _080D17EE - cmp r1, #0x1d - bhi _080D17EE - ldr r0, _080D17F4 - ldr r0, [r0] - lsls r3, r1, #2 - adds r3, r3, r1 - lsls r3, r3, #4 - lsls r2, r4, #2 - adds r2, r2, r4 - lsls r1, r2, #4 - subs r1, r1, r2 - lsls r1, r1, #5 - adds r3, r3, r1 - adds r0, r0, r3 - adds r0, #4 - adds r1, r5, #0 - movs r2, #0x50 - bl memcpy -_080D17EE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D17F4: .4byte gUnknown_3005AF4 - thumb_func_end SetBoxMonAt - - thumb_func_start CopyBoxMonAt -CopyBoxMonAt: @ 0x080D17F8 - push {r4, r5, lr} - adds r5, r2, #0 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r2, r1, #0x18 - cmp r4, #0xd - bhi _080D182E - cmp r2, #0x1d - bhi _080D182E - ldr r0, _080D1834 - ldr r1, [r0] - lsls r3, r2, #2 - adds r3, r3, r2 - lsls r3, r3, #4 - lsls r2, r4, #2 - adds r2, r2, r4 - lsls r0, r2, #4 - subs r0, r0, r2 - lsls r0, r0, #5 - adds r3, r3, r0 - adds r1, r1, r3 - adds r1, #4 - adds r0, r5, #0 - movs r2, #0x50 - bl memcpy -_080D182E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D1834: .4byte gUnknown_3005AF4 - thumb_func_end CopyBoxMonAt - - thumb_func_start CreateBoxMonAt -CreateBoxMonAt: @ 0x080D1838 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x14 - ldr r4, [sp, #0x30] - ldr r5, [sp, #0x34] - ldr r6, [sp, #0x3c] - mov ip, r6 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - mov sb, r2 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r8, r3 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - mov r0, ip - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r7, #0xd - bhi _080D18A4 - cmp r6, #0x1d - bhi _080D18A4 - ldr r2, _080D18B4 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r1, r0, #4 - subs r1, r1, r0 - lsls r1, r1, #5 - adds r1, #4 - ldr r0, [r2] - adds r0, r0, r1 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #4 - adds r0, r0, r1 - str r5, [sp] - ldr r1, [sp, #0x38] - str r1, [sp, #4] - str r3, [sp, #8] - ldr r1, [sp, #0x40] - str r1, [sp, #0xc] - mov r1, sb - mov r2, r8 - adds r3, r4, #0 - bl CreateBoxMon -_080D18A4: - add sp, #0x14 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D18B4: .4byte gUnknown_3005AF4 - thumb_func_end CreateBoxMonAt - - thumb_func_start ZeroBoxMonAt -ZeroBoxMonAt: @ 0x080D18B8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - cmp r3, #0xd - bhi _080D18E8 - cmp r4, #0x1d - bhi _080D18E8 - ldr r2, _080D18F0 - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r1, r0, #4 - subs r1, r1, r0 - lsls r1, r1, #5 - adds r1, #4 - ldr r0, [r2] - adds r0, r0, r1 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #4 - adds r0, r0, r1 - bl ZeroBoxMonData -_080D18E8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D18F0: .4byte gUnknown_3005AF4 - thumb_func_end ZeroBoxMonAt - - thumb_func_start BoxMonAtToMon -BoxMonAtToMon: @ 0x080D18F4 - push {r4, r5, lr} - adds r5, r2, #0 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - cmp r3, #0xd - bhi _080D1928 - cmp r4, #0x1d - bhi _080D1928 - ldr r2, _080D1930 - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r1, r0, #4 - subs r1, r1, r0 - lsls r1, r1, #5 - adds r1, #4 - ldr r0, [r2] - adds r0, r0, r1 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #4 - adds r0, r0, r1 - adds r1, r5, #0 - bl BoxMonToMon -_080D1928: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D1930: .4byte gUnknown_3005AF4 - thumb_func_end BoxMonAtToMon - - thumb_func_start GetBoxedMonPtr -GetBoxedMonPtr: @ 0x080D1934 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - cmp r3, #0xd - bhi _080D1968 - cmp r4, #0x1d - bhi _080D1968 - ldr r2, _080D1964 - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r1, r0, #4 - subs r1, r1, r0 - lsls r1, r1, #5 - adds r1, #4 - ldr r0, [r2] - adds r0, r0, r1 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #4 - adds r0, r0, r1 - b _080D196A - .align 2, 0 -_080D1964: .4byte gUnknown_3005AF4 -_080D1968: - movs r0, #0 -_080D196A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetBoxedMonPtr - - thumb_func_start GetBoxNamePtr -GetBoxNamePtr: @ 0x080D1970 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xd - bls _080D197E - movs r0, #0 - b _080D198C -_080D197E: - ldr r0, _080D1990 - lsls r1, r2, #3 - adds r1, r1, r2 - ldr r2, _080D1994 - adds r1, r1, r2 - ldr r0, [r0] - adds r0, r0, r1 -_080D198C: - pop {r1} - bx r1 - .align 2, 0 -_080D1990: .4byte gUnknown_3005AF4 -_080D1994: .4byte 0x00008344 - thumb_func_end GetBoxNamePtr - - thumb_func_start GetBoxWallpaper -GetBoxWallpaper: @ 0x080D1998 - push {lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xd - bls _080D19A6 - movs r0, #0 - b _080D19B2 -_080D19A6: - ldr r0, _080D19B8 - ldr r0, [r0] - ldr r2, _080D19BC - adds r0, r0, r2 - adds r0, r0, r1 - ldrb r0, [r0] -_080D19B2: - pop {r1} - bx r1 - .align 2, 0 -_080D19B8: .4byte gUnknown_3005AF4 -_080D19BC: .4byte 0x000083C2 - thumb_func_end GetBoxWallpaper - - thumb_func_start SetBoxWallpaper -SetBoxWallpaper: @ 0x080D19C0 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r2, #0xd - bhi _080D19DE - cmp r1, #0x10 - bhi _080D19DE - ldr r0, _080D19E4 - ldr r0, [r0] - ldr r3, _080D19E8 - adds r0, r0, r3 - adds r0, r0, r2 - strb r1, [r0] -_080D19DE: - pop {r0} - bx r0 - .align 2, 0 -_080D19E4: .4byte gUnknown_3005AF4 -_080D19E8: .4byte 0x000083C2 - thumb_func_end SetBoxWallpaper - - thumb_func_start sub_080D19EC -sub_080D19EC: @ 0x080D19EC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r0 - lsls r1, r1, #0x18 - lsrs r0, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r4, r3, #0 - ldr r2, _080D1A50 - cmp r3, #1 - bhi _080D1A0E - movs r2, #1 - cmp r3, #1 - beq _080D1A12 -_080D1A0E: - cmp r4, #3 - bne _080D1A5C -_080D1A12: - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r2, r2, #0x10 - asrs r1, r2, #0x10 - adds r1, r1, r0 - lsls r0, r1, #0x10 - asrs r1, r0, #0x10 - adds r6, r2, #0 - cmp r1, #0 - blt _080D1AA8 - cmp r1, r7 - bgt _080D1AA8 -_080D1A2A: - asrs r4, r0, #0x10 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #4 - add r0, r8 - movs r1, #0xb - bl sub_0806A1B4 - cmp r0, #0 - bne _080D1A54 - asrs r0, r6, #0x10 - adds r0, r4, r0 - lsls r0, r0, #0x10 - asrs r2, r0, #0x10 - cmp r2, #0 - blt _080D1AA8 - cmp r2, r7 - ble _080D1A2A - b _080D1AA8 - .align 2, 0 -_080D1A50: .4byte 0x0000FFFF -_080D1A54: - adds r0, r4, #0 - b _080D1AAC -_080D1A58: - adds r0, r5, #0 - b _080D1AAC -_080D1A5C: - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r2, r2, #0x10 - asrs r1, r2, #0x10 - adds r1, r1, r0 - lsls r0, r1, #0x10 - asrs r1, r0, #0x10 - adds r6, r2, #0 - cmp r1, #0 - blt _080D1AA8 - cmp r1, r7 - bgt _080D1AA8 -_080D1A74: - asrs r5, r0, #0x10 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #4 - mov r1, r8 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0xb - bl sub_0806A1B4 - cmp r0, #0 - beq _080D1A98 - adds r0, r4, #0 - movs r1, #0x2d - bl sub_0806A1B4 - cmp r0, #0 - beq _080D1A58 -_080D1A98: - asrs r0, r6, #0x10 - adds r0, r5, r0 - lsls r0, r0, #0x10 - asrs r2, r0, #0x10 - cmp r2, #0 - blt _080D1AA8 - cmp r2, r7 - ble _080D1A74 -_080D1AA8: - movs r0, #1 - rsbs r0, r0, #0 -_080D1AAC: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080D19EC - - thumb_func_start CheckFreePokemonStorageSpace -CheckFreePokemonStorageSpace: @ 0x080D1AB8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - movs r2, #0 - ldr r0, _080D1AE8 - mov r8, r0 - movs r7, #4 -_080D1AC8: - movs r5, #0 - adds r6, r7, #0 - movs r4, #0 -_080D1ACE: - mov r1, r8 - ldr r0, [r1] - adds r0, r0, r6 - adds r0, r0, r4 - movs r1, #5 - str r2, [sp] - bl sub_0806A1B4 - ldr r2, [sp] - cmp r0, #0 - bne _080D1AEC - movs r0, #1 - b _080D1B02 - .align 2, 0 -_080D1AE8: .4byte gUnknown_3005AF4 -_080D1AEC: - adds r4, #0x50 - adds r5, #1 - cmp r5, #0x1d - ble _080D1ACE - movs r0, #0x96 - lsls r0, r0, #4 - adds r7, r7, r0 - adds r2, #1 - cmp r2, #0xd - ble _080D1AC8 - movs r0, #0 -_080D1B02: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CheckFreePokemonStorageSpace - - thumb_func_start CheckBoxMonSanityAt -CheckBoxMonSanityAt: @ 0x080D1B10 - push {r4, r5, r6, lr} - adds r2, r1, #0 - cmp r0, #0xd - bhi _080D1B68 - cmp r2, #0x1d - bhi _080D1B68 - ldr r6, _080D1B64 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #5 - adds r5, r0, #4 - ldr r0, [r6] - adds r0, r0, r5 - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r4, r1, #4 - adds r0, r0, r4 - movs r1, #5 - bl sub_0806A1B4 - cmp r0, #0 - beq _080D1B68 - ldr r0, [r6] - adds r0, r0, r5 - adds r0, r0, r4 - movs r1, #6 - bl sub_0806A1B4 - cmp r0, #0 - bne _080D1B68 - ldr r0, [r6] - adds r0, r0, r5 - adds r0, r0, r4 - movs r1, #4 - bl sub_0806A1B4 - cmp r0, #0 - bne _080D1B68 - movs r0, #1 - b _080D1B6A - .align 2, 0 -_080D1B64: .4byte gUnknown_3005AF4 -_080D1B68: - movs r0, #0 -_080D1B6A: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end CheckBoxMonSanityAt - - thumb_func_start CountStorageNonEggMons -CountStorageNonEggMons: @ 0x080D1B70 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - movs r7, #0 - movs r0, #0 - ldr r1, _080D1BD8 - mov sb, r1 -_080D1B80: - lsls r1, r0, #2 - adds r2, r0, #1 - mov r8, r2 - adds r1, r1, r0 - movs r5, #0 - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #5 - adds r4, r0, #4 - movs r6, #0x1d -_080D1B94: - mov r1, sb - ldr r0, [r1] - adds r0, r0, r4 - adds r0, r0, r5 - movs r1, #5 - bl sub_0806A1B4 - cmp r0, #0 - beq _080D1BBA - mov r2, sb - ldr r0, [r2] - adds r0, r0, r4 - adds r0, r0, r5 - movs r1, #6 - bl sub_0806A1B4 - cmp r0, #0 - bne _080D1BBA - adds r7, #1 -_080D1BBA: - adds r5, #0x50 - subs r6, #1 - cmp r6, #0 - bge _080D1B94 - mov r0, r8 - cmp r0, #0xd - ble _080D1B80 - adds r0, r7, #0 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080D1BD8: .4byte gUnknown_3005AF4 - thumb_func_end CountStorageNonEggMons - - thumb_func_start CountAllStorageMons -CountAllStorageMons: @ 0x080D1BDC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - movs r7, #0 - movs r0, #0 - ldr r1, _080D1C44 - mov sb, r1 -_080D1BEC: - lsls r1, r0, #2 - adds r2, r0, #1 - mov r8, r2 - adds r1, r1, r0 - movs r5, #0 - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #5 - adds r4, r0, #4 - movs r6, #0x1d -_080D1C00: - mov r1, sb - ldr r0, [r1] - adds r0, r0, r4 - adds r0, r0, r5 - movs r1, #5 - bl sub_0806A1B4 - cmp r0, #0 - bne _080D1C24 - mov r2, sb - ldr r0, [r2] - adds r0, r0, r4 - adds r0, r0, r5 - movs r1, #6 - bl sub_0806A1B4 - cmp r0, #0 - beq _080D1C26 -_080D1C24: - adds r7, #1 -_080D1C26: - adds r5, #0x50 - subs r6, #1 - cmp r6, #0 - bge _080D1C00 - mov r0, r8 - cmp r0, #0xd - ble _080D1BEC - adds r0, r7, #0 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080D1C44: .4byte gUnknown_3005AF4 - thumb_func_end CountAllStorageMons - - thumb_func_start AnyStorageMonWithMove -AnyStorageMonWithMove: @ 0x080D1C48 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - mov r1, sp - strh r0, [r1] - ldr r0, _080D1C9C - strh r0, [r1, #2] - movs r0, #0 - mov r8, r0 - ldr r7, _080D1CA0 - movs r5, #4 -_080D1C60: - movs r6, #0 - movs r4, #0 -_080D1C64: - ldr r0, [r7] - adds r0, r0, r5 - adds r0, r0, r4 - movs r1, #5 - bl sub_0806A1B4 - cmp r0, #0 - beq _080D1CA4 - ldr r0, [r7] - adds r0, r0, r5 - adds r0, r0, r4 - movs r1, #6 - bl sub_0806A1B4 - cmp r0, #0 - bne _080D1CA4 - ldr r0, [r7] - adds r0, r0, r5 - adds r0, r0, r4 - movs r1, #0x51 - mov r2, sp - bl sub_0806A1B4 - cmp r0, #0 - beq _080D1CA4 - movs r0, #1 - b _080D1CBE - .align 2, 0 -_080D1C9C: .4byte 0x00000163 -_080D1CA0: .4byte gUnknown_3005AF4 -_080D1CA4: - adds r4, #0x50 - adds r6, #1 - cmp r6, #0x1d - ble _080D1C64 - movs r0, #0x96 - lsls r0, r0, #4 - adds r5, r5, r0 - movs r0, #1 - add r8, r0 - mov r0, r8 - cmp r0, #0xd - ble _080D1C60 - movs r0, #0 -_080D1CBE: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end AnyStorageMonWithMove - - thumb_func_start ResetWaldaWallpaper -ResetWaldaWallpaper: @ 0x080D1CCC - ldr r2, _080D1D04 - ldr r0, [r2] - ldr r1, _080D1D08 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - ldr r0, [r2] - ldr r3, _080D1D0C - adds r0, r0, r3 - strb r1, [r0] - ldr r0, [r2] - adds r3, #1 - adds r0, r0, r3 - strb r1, [r0] - ldr r1, [r2] - ldr r0, _080D1D10 - adds r2, r1, r0 - ldr r0, _080D1D14 - strh r0, [r2] - subs r3, #0x14 - adds r2, r1, r3 - ldr r0, _080D1D18 - strh r0, [r2] - ldr r0, _080D1D1C - adds r1, r1, r0 - movs r0, #0xff - strb r0, [r1] - bx lr - .align 2, 0 -_080D1D04: .4byte gUnknown_3005AEC -_080D1D08: .4byte 0x00003D84 -_080D1D0C: .4byte 0x00003D85 -_080D1D10: .4byte 0x00003D70 -_080D1D14: .4byte 0x00007B35 -_080D1D18: .4byte 0x00006186 -_080D1D1C: .4byte 0x00003D74 - thumb_func_end ResetWaldaWallpaper - - thumb_func_start SetWaldaWallpaperLockedOrUnlocked -SetWaldaWallpaperLockedOrUnlocked: @ 0x080D1D20 - ldr r1, _080D1D2C - ldr r1, [r1] - ldr r2, _080D1D30 - adds r1, r1, r2 - strb r0, [r1] - bx lr - .align 2, 0 -_080D1D2C: .4byte gUnknown_3005AEC -_080D1D30: .4byte 0x00003D86 - thumb_func_end SetWaldaWallpaperLockedOrUnlocked - - thumb_func_start sub_080D1D34 -sub_080D1D34: @ 0x080D1D34 - ldr r0, _080D1D40 - ldr r0, [r0] - ldr r1, _080D1D44 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080D1D40: .4byte gUnknown_3005AEC -_080D1D44: .4byte 0x00003D86 - thumb_func_end sub_080D1D34 - - thumb_func_start sub_080D1D48 -sub_080D1D48: @ 0x080D1D48 - ldr r0, _080D1D54 - ldr r0, [r0] - ldr r1, _080D1D58 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080D1D54: .4byte gUnknown_3005AEC -_080D1D58: .4byte 0x00003D85 - thumb_func_end sub_080D1D48 - - thumb_func_start SetWaldaWallpaperPatternId -SetWaldaWallpaperPatternId: @ 0x080D1D5C - push {lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xf - bhi _080D1D70 - ldr r0, _080D1D74 - ldr r0, [r0] - ldr r2, _080D1D78 - adds r0, r0, r2 - strb r1, [r0] -_080D1D70: - pop {r0} - bx r0 - .align 2, 0 -_080D1D74: .4byte gUnknown_3005AEC -_080D1D78: .4byte 0x00003D85 - thumb_func_end SetWaldaWallpaperPatternId - - thumb_func_start sub_080D1D7C -sub_080D1D7C: @ 0x080D1D7C - ldr r0, _080D1D88 - ldr r0, [r0] - ldr r1, _080D1D8C - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080D1D88: .4byte gUnknown_3005AEC -_080D1D8C: .4byte 0x00003D84 - thumb_func_end sub_080D1D7C - - thumb_func_start SetWaldaWallpaperIconId -SetWaldaWallpaperIconId: @ 0x080D1D90 - push {lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x1d - bhi _080D1DA4 - ldr r0, _080D1DA8 - ldr r0, [r0] - ldr r2, _080D1DAC - adds r0, r0, r2 - strb r1, [r0] -_080D1DA4: - pop {r0} - bx r0 - .align 2, 0 -_080D1DA8: .4byte gUnknown_3005AEC -_080D1DAC: .4byte 0x00003D84 - thumb_func_end SetWaldaWallpaperIconId - - thumb_func_start sub_080D1DB0 -sub_080D1DB0: @ 0x080D1DB0 - ldr r0, _080D1DBC - ldr r0, [r0] - ldr r1, _080D1DC0 - adds r0, r0, r1 - bx lr - .align 2, 0 -_080D1DBC: .4byte gUnknown_3005AEC -_080D1DC0: .4byte 0x00003D70 - thumb_func_end sub_080D1DB0 - - thumb_func_start SetWaldaWallpaperColors -SetWaldaWallpaperColors: @ 0x080D1DC4 - push {r4, lr} - ldr r2, _080D1DDC - ldr r2, [r2] - ldr r4, _080D1DE0 - adds r3, r2, r4 - strh r0, [r3] - ldr r0, _080D1DE4 - adds r2, r2, r0 - strh r1, [r2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D1DDC: .4byte gUnknown_3005AEC -_080D1DE0: .4byte 0x00003D70 -_080D1DE4: .4byte 0x00003D72 - thumb_func_end SetWaldaWallpaperColors - - thumb_func_start sub_080D1DE8 -sub_080D1DE8: @ 0x080D1DE8 - ldr r0, _080D1DF4 - ldr r0, [r0] - ldr r1, _080D1DF8 - adds r0, r0, r1 - bx lr - .align 2, 0 -_080D1DF4: .4byte gUnknown_3005AEC -_080D1DF8: .4byte 0x00003D74 - thumb_func_end sub_080D1DE8 - - thumb_func_start SetWaldaPhrase -SetWaldaPhrase: @ 0x080D1DFC - push {lr} - adds r1, r0, #0 - ldr r0, _080D1E10 - ldr r0, [r0] - ldr r2, _080D1E14 - adds r0, r0, r2 - bl StringCopy - pop {r0} - bx r0 - .align 2, 0 -_080D1E10: .4byte gUnknown_3005AEC -_080D1E14: .4byte 0x00003D74 - thumb_func_end SetWaldaPhrase - - thumb_func_start IsWaldaPhraseEmpty -IsWaldaPhraseEmpty: @ 0x080D1E18 - push {lr} - movs r1, #0 - ldr r0, _080D1E34 - ldr r0, [r0] - ldr r2, _080D1E38 - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #0xff - bne _080D1E2C - movs r1, #1 -_080D1E2C: - adds r0, r1, #0 - pop {r1} - bx r1 - .align 2, 0 -_080D1E34: .4byte gUnknown_3005AEC -_080D1E38: .4byte 0x00003D74 - thumb_func_end IsWaldaPhraseEmpty - - thumb_func_start sub_080D1E3C -sub_080D1E3C: @ 0x080D1E3C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r6, _080D1E88 - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #4 - bl sub_08000BC8 - str r0, [r6] - ldr r5, _080D1E8C - movs r1, #0 - cmp r0, #0 - beq _080D1E5A - adds r1, r4, #0 -_080D1E5A: - strh r1, [r5] - movs r2, #0 - cmp r2, r1 - bhs _080D1E82 - movs r3, #0 - adds r4, r5, #0 -_080D1E66: - ldr r0, [r6] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #4 - adds r1, r1, r0 - str r3, [r1, #0x18] - adds r1, #0x2c - strb r3, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldrh r0, [r4] - cmp r2, r0 - blo _080D1E66 -_080D1E82: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080D1E88: .4byte gUnknown_2039A24 -_080D1E8C: .4byte gUnknown_2039A28 - thumb_func_end sub_080D1E3C - - thumb_func_start sub_080D1E90 -sub_080D1E90: @ 0x080D1E90 - push {lr} - ldr r0, _080D1EA0 - ldr r0, [r0] - bl Free - pop {r0} - bx r0 - .align 2, 0 -_080D1EA0: .4byte gUnknown_2039A24 - thumb_func_end sub_080D1E90 - - thumb_func_start sub_080D1EA4 -sub_080D1EA4: @ 0x080D1EA4 - push {r4, r5, lr} - movs r4, #0 - ldr r0, _080D1EDC - ldrh r0, [r0] - cmp r4, r0 - bge _080D1ED4 - movs r5, #0 -_080D1EB2: - ldr r0, _080D1EE0 - ldr r0, [r0] - adds r0, r5, r0 - adds r0, #0x2c - ldrb r0, [r0] - cmp r0, #1 - bne _080D1EC8 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl sub_080D21B8 -_080D1EC8: - adds r5, #0x30 - adds r4, #1 - ldr r0, _080D1EDC - ldrh r0, [r0] - cmp r4, r0 - blt _080D1EB2 -_080D1ED4: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D1EDC: .4byte gUnknown_2039A28 -_080D1EE0: .4byte gUnknown_2039A24 - thumb_func_end sub_080D1EA4 - - thumb_func_start sub_080D1EE4 -sub_080D1EE4: @ 0x080D1EE4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r4, r2, #0 - ldr r2, [sp, #0x24] - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - mov sl, r3 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - str r2, [sp] - ldr r0, _080D1F7C - ldrh r0, [r0] - cmp r6, r0 - bhs _080D1FCC - ldr r0, _080D1F80 - mov sb, r0 - ldr r0, [r0] - lsls r1, r6, #1 - mov r8, r1 - adds r5, r1, r6 - lsls r5, r5, #4 - adds r0, r5, r0 - movs r1, #0 - str r1, [r0, #0x18] - str r4, [r0, #0x1c] - adds r0, #0x2b - strb r7, [r0] - mov r2, sb - ldr r0, [r2] - adds r0, r5, r0 - mov r3, sl - strh r3, [r0, #0x24] - mov r1, sp - ldrh r1, [r1] - strh r1, [r0, #0x26] - adds r0, r7, #0 - movs r1, #3 - bl GetBgAttribute - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r7, #0 - movs r1, #9 - bl GetBgAttribute - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r2, sb - ldr r1, [r2] - adds r5, r5, r1 - ldr r2, _080D1F84 - lsls r4, r4, #2 - lsls r1, r0, #4 - adds r4, r4, r1 - adds r4, r4, r2 - ldrh r1, [r4] - strh r1, [r5, #0x20] - ldrh r1, [r4, #2] - strh r1, [r5, #0x22] - mov r2, r8 - cmp r0, #0 - beq _080D1F88 - adds r1, r5, #0 - adds r1, #0x2a - movs r0, #1 - b _080D1F8E - .align 2, 0 -_080D1F7C: .4byte gUnknown_2039A28 -_080D1F80: .4byte gUnknown_2039A24 -_080D1F84: .4byte gUnknown_8556784 -_080D1F88: - adds r1, r5, #0 - adds r1, #0x2a - movs r0, #2 -_080D1F8E: - strb r0, [r1] - ldr r4, _080D1FDC - ldr r1, [r4] - adds r2, r2, r6 - lsls r2, r2, #4 - adds r1, r2, r1 - adds r0, r1, #0 - adds r0, #0x2a - ldrb r0, [r0] - mov r3, sl - muls r3, r0, r3 - movs r0, #0 - strh r3, [r1, #0x28] - mov r3, sl - strh r3, [r1, #0x10] - mov r5, sp - ldrh r5, [r5] - strh r5, [r1, #0x12] - strh r0, [r1, #0xc] - strh r0, [r1, #0xe] - strh r0, [r1, #0x14] - strh r0, [r1, #0x16] - adds r0, r1, #0 - adds r0, #0xc - ldm r0!, {r3, r5, r6} - stm r1!, {r3, r5, r6} - ldr r0, [r4] - adds r2, r2, r0 - adds r2, #0x2c - movs r0, #1 - strb r0, [r2] -_080D1FCC: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D1FDC: .4byte gUnknown_2039A24 - thumb_func_end sub_080D1EE4 - - thumb_func_start sub_080D1FE0 -sub_080D1FE0: @ 0x080D1FE0 - push {lr} - adds r3, r1, #0 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _080D2008 - ldrh r0, [r0] - cmp r2, r0 - bhs _080D2004 - ldr r0, _080D200C - ldr r1, [r0] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #4 - adds r0, r0, r1 - str r3, [r0, #0x18] - adds r0, #0x2c - movs r1, #1 - strb r1, [r0] -_080D2004: - pop {r0} - bx r0 - .align 2, 0 -_080D2008: .4byte gUnknown_2039A28 -_080D200C: .4byte gUnknown_2039A24 - thumb_func_end sub_080D1FE0 - - thumb_func_start sub_080D2010 -sub_080D2010: @ 0x080D2010 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldr r0, _080D2044 - ldrh r0, [r0] - cmp r3, r0 - bhs _080D203C - ldr r0, _080D2048 - ldr r1, [r0] - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #4 - adds r0, r0, r1 - strh r4, [r0, #0x14] - strh r2, [r0, #0x16] - adds r0, #0x2c - movs r1, #1 - strb r1, [r0] -_080D203C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D2044: .4byte gUnknown_2039A28 -_080D2048: .4byte gUnknown_2039A24 - thumb_func_end sub_080D2010 - - thumb_func_start sub_080D204C -sub_080D204C: @ 0x080D204C - push {r4, r5, r6, lr} - ldr r4, [sp, #0x10] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r0, _080D208C - ldrh r0, [r0] - cmp r5, r0 - bhs _080D2086 - ldr r0, _080D2090 - ldr r1, [r0] - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #4 - adds r0, r0, r1 - strh r6, [r0, #0xc] - strh r2, [r0, #0xe] - strh r3, [r0, #0x10] - strh r4, [r0, #0x12] - adds r0, #0x2c - movs r1, #1 - strb r1, [r0] -_080D2086: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080D208C: .4byte gUnknown_2039A28 -_080D2090: .4byte gUnknown_2039A24 - thumb_func_end sub_080D204C - - thumb_func_start sub_080D2094 -sub_080D2094: @ 0x080D2094 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - ldr r0, _080D20C0 - ldrh r0, [r0] - cmp r5, r0 - blo _080D20AC - b _080D21AE -_080D20AC: - ldr r4, _080D20C4 - lsls r2, r5, #1 - cmp r1, #5 - bls _080D20B6 - b _080D21A0 -_080D20B6: - lsls r0, r1, #2 - ldr r1, _080D20C8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080D20C0: .4byte gUnknown_2039A28 -_080D20C4: .4byte gUnknown_2039A24 -_080D20C8: .4byte _080D20CC -_080D20CC: @ jump table - .4byte _080D20E4 @ case 0 - .4byte _080D2104 @ case 1 - .4byte _080D2128 @ case 2 - .4byte _080D2148 @ case 3 - .4byte _080D216C @ case 4 - .4byte _080D2188 @ case 5 -_080D20E4: - ldr r4, _080D2100 - ldr r0, [r4] - lsls r3, r5, #1 - adds r1, r3, r5 - lsls r1, r1, #4 - adds r1, r1, r0 - lsls r2, r6, #0x18 - asrs r2, r2, #0x18 - ldrh r0, [r1, #0x14] - adds r0, r0, r2 - strh r0, [r1, #0x14] - ldrh r0, [r1, #0x10] - subs r0, r0, r2 - b _080D211E - .align 2, 0 -_080D2100: .4byte gUnknown_2039A24 -_080D2104: - ldr r4, _080D2124 - ldr r0, [r4] - lsls r3, r5, #1 - adds r1, r3, r5 - lsls r1, r1, #4 - adds r1, r1, r0 - lsls r2, r6, #0x18 - asrs r2, r2, #0x18 - ldrh r0, [r1, #0xc] - adds r0, r0, r2 - strh r0, [r1, #0xc] - ldrh r0, [r1, #0x10] - adds r0, r0, r2 -_080D211E: - strh r0, [r1, #0x10] - adds r2, r3, #0 - b _080D21A0 - .align 2, 0 -_080D2124: .4byte gUnknown_2039A24 -_080D2128: - ldr r4, _080D2144 - ldr r0, [r4] - lsls r3, r5, #1 - adds r1, r3, r5 - lsls r1, r1, #4 - adds r1, r1, r0 - lsls r2, r6, #0x18 - asrs r2, r2, #0x18 - ldrh r0, [r1, #0x16] - adds r0, r0, r2 - strh r0, [r1, #0x16] - ldrh r0, [r1, #0x12] - subs r0, r0, r2 - b _080D2162 - .align 2, 0 -_080D2144: .4byte gUnknown_2039A24 -_080D2148: - ldr r4, _080D2168 - ldr r0, [r4] - lsls r3, r5, #1 - adds r1, r3, r5 - lsls r1, r1, #4 - adds r1, r1, r0 - lsls r2, r6, #0x18 - asrs r2, r2, #0x18 - ldrh r0, [r1, #0xe] - subs r0, r0, r2 - strh r0, [r1, #0xe] - ldrh r0, [r1, #0x12] - adds r0, r0, r2 -_080D2162: - strh r0, [r1, #0x12] - adds r2, r3, #0 - b _080D21A0 - .align 2, 0 -_080D2168: .4byte gUnknown_2039A24 -_080D216C: - ldr r3, _080D2184 - ldr r0, [r3] - lsls r2, r5, #1 - adds r1, r2, r5 - lsls r1, r1, #4 - adds r1, r1, r0 - lsls r0, r6, #0x18 - asrs r0, r0, #0x18 - ldrh r4, [r1, #0x14] - adds r0, r0, r4 - strh r0, [r1, #0x14] - b _080D219E - .align 2, 0 -_080D2184: .4byte gUnknown_2039A24 -_080D2188: - ldr r3, _080D21B4 - ldr r0, [r3] - lsls r2, r5, #1 - adds r1, r2, r5 - lsls r1, r1, #4 - adds r1, r1, r0 - lsls r0, r6, #0x18 - asrs r0, r0, #0x18 - ldrh r4, [r1, #0x16] - adds r0, r0, r4 - strh r0, [r1, #0x16] -_080D219E: - adds r4, r3, #0 -_080D21A0: - ldr r0, [r4] - adds r1, r2, r5 - lsls r1, r1, #4 - adds r1, r1, r0 - adds r1, #0x2c - movs r0, #1 - strb r0, [r1] -_080D21AE: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080D21B4: .4byte gUnknown_2039A24 - thumb_func_end sub_080D2094 - - thumb_func_start sub_080D21B8 -sub_080D21B8: @ 0x080D21B8 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r6, r2, #0 - ldr r0, _080D21F8 - ldrh r0, [r0] - cmp r2, r0 - bhs _080D21F2 - ldr r5, _080D21FC - ldr r0, [r5] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r4, r1, #4 - adds r0, r4, r0 - ldr r0, [r0, #0x18] - cmp r0, #0 - beq _080D21E0 - adds r0, r2, #0 - bl sub_080D2200 -_080D21E0: - adds r0, r6, #0 - bl sub_080D2298 - ldr r1, [r5] - adds r1, r4, r1 - adds r0, r1, #0 - adds r0, #0xc - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} -_080D21F2: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080D21F8: .4byte gUnknown_2039A28 -_080D21FC: .4byte gUnknown_2039A24 - thumb_func_end sub_080D21B8 - - thumb_func_start sub_080D2200 -sub_080D2200: @ 0x080D2200 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r4, _080D2294 - ldr r1, [r4] - lsls r5, r0, #1 - adds r0, r5, r0 - lsls r0, r0, #4 - adds r0, r0, r1 - adds r1, r0, #0 - adds r1, #0x2a - ldrb r3, [r1] - ldrh r1, [r0, #0x20] - adds r2, r3, #0 - muls r2, r1, r2 - mov sb, r2 - movs r6, #0xa - ldrsh r1, [r0, r6] - mov r2, sb - muls r2, r1, r2 - ldr r1, [r0, #0x18] - adds r1, r1, r2 - movs r6, #8 - ldrsh r2, [r0, r6] - muls r2, r3, r2 - adds r7, r1, r2 - movs r6, #0 - ldrh r0, [r0, #6] - cmp r6, r0 - bge _080D2284 - mov sl, r4 -_080D224A: - mov r0, sl - ldr r1, [r0] - mov r2, r8 - adds r4, r5, r2 - lsls r4, r4, #4 - adds r1, r4, r1 - adds r0, r1, #0 - adds r0, #0x2b - ldrb r0, [r0] - ldrb r2, [r1, #8] - ldrb r3, [r1, #0xa] - adds r3, r3, r6 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldrb r1, [r1, #4] - str r1, [sp] - movs r1, #1 - str r1, [sp, #4] - adds r1, r7, #0 - bl CopyToBgTilemapBufferRect - add r7, sb - adds r6, #1 - mov r1, sl - ldr r0, [r1] - adds r4, r4, r0 - ldrh r4, [r4, #6] - cmp r6, r4 - blt _080D224A -_080D2284: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D2294: .4byte gUnknown_2039A24 - thumb_func_end sub_080D2200 - - thumb_func_start sub_080D2298 -sub_080D2298: @ 0x080D2298 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r4, _080D232C - ldr r1, [r4] - lsls r5, r0, #1 - adds r0, r5, r0 - lsls r0, r0, #4 - adds r0, r0, r1 - adds r1, r0, #0 - adds r1, #0x2a - ldrb r3, [r1] - ldrh r1, [r0, #0x24] - adds r2, r3, #0 - muls r2, r1, r2 - mov sb, r2 - movs r6, #0xe - ldrsh r1, [r0, r6] - mov r2, sb - muls r2, r1, r2 - ldr r1, [r0, #0x1c] - adds r1, r1, r2 - movs r6, #0xc - ldrsh r2, [r0, r6] - muls r2, r3, r2 - adds r7, r1, r2 - movs r6, #0 - ldrh r0, [r0, #0x12] - cmp r6, r0 - bge _080D231C - mov sl, r4 -_080D22E2: - mov r0, sl - ldr r1, [r0] - mov r2, r8 - adds r4, r5, r2 - lsls r4, r4, #4 - adds r1, r4, r1 - adds r0, r1, #0 - adds r0, #0x2b - ldrb r0, [r0] - ldrb r2, [r1, #0x14] - ldrb r3, [r1, #0x16] - adds r3, r3, r6 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldrb r1, [r1, #0x10] - str r1, [sp] - movs r1, #1 - str r1, [sp, #4] - adds r1, r7, #0 - bl CopyToBgTilemapBufferRect - add r7, sb - adds r6, #1 - mov r1, sl - ldr r0, [r1] - adds r4, r4, r0 - ldrh r4, [r4, #0x12] - cmp r6, r4 - blt _080D22E2 -_080D231C: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D232C: .4byte gUnknown_2039A24 - thumb_func_end sub_080D2298 - - thumb_func_start sub_080D2330 -sub_080D2330: @ 0x080D2330 - ldr r3, _080D2340 - str r0, [r3] - str r1, [r0] - movs r1, #0 - strb r2, [r0, #5] - strb r1, [r0, #4] - bx lr - .align 2, 0 -_080D2340: .4byte gUnknown_2039A2C - thumb_func_end sub_080D2330 - - thumb_func_start sub_080D2344 -sub_080D2344: @ 0x080D2344 - push {r4, r5, lr} - ldr r2, _080D2388 - ldr r1, [r2] - ldrb r0, [r1, #4] - cmp r0, #0 - beq _080D2382 - movs r4, #0 - ldrb r1, [r1, #4] - cmp r4, r1 - bhs _080D237A - adds r5, r2, #0 -_080D235A: - ldr r0, [r5] - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #2 - ldr r0, [r0] - adds r0, r0, r1 - ldr r1, [r0, #0x10] - bl _call_via_r1 - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, [r5] - ldrb r0, [r0, #4] - cmp r4, r0 - blo _080D235A -_080D237A: - ldr r0, _080D2388 - ldr r1, [r0] - movs r0, #0 - strb r0, [r1, #4] -_080D2382: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D2388: .4byte gUnknown_2039A2C - thumb_func_end sub_080D2344 - - thumb_func_start sub_080D238C -sub_080D238C: @ 0x080D238C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov sb, r0 - mov sl, r3 - ldr r0, [sp, #0x24] - ldr r3, [sp, #0x28] - ldr r4, [sp, #0x2c] - ldr r5, [sp, #0x30] - ldr r6, [sp, #0x34] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov ip, r1 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - str r2, [sp] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - ldr r0, _080D240C - ldr r2, [r0] - ldrb r0, [r2, #4] - adds r1, r0, #0 - ldrb r7, [r2, #5] - cmp r1, r7 - bhs _080D2414 - adds r0, #1 - strb r0, [r2, #4] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, [r2] - adds r1, r1, r0 - lsls r0, r4, #1 - strh r0, [r1, #8] - ldr r2, [sp] - lsls r0, r2, #5 - add r0, ip - lsls r0, r0, #1 - add r0, sb - str r0, [r1, #4] - adds r0, r3, #0 - muls r0, r6, r0 - add r0, r8 - lsls r0, r0, #1 - add r0, sl - str r0, [r1] - strh r5, [r1, #0xc] - strh r6, [r1, #0xa] - ldr r0, _080D2410 - str r0, [r1, #0x10] - movs r0, #1 - b _080D2416 - .align 2, 0 -_080D240C: .4byte gUnknown_2039A2C -_080D2410: .4byte sub_080D2428 -_080D2414: - movs r0, #0 -_080D2416: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080D238C - - thumb_func_start sub_080D2428 -sub_080D2428: @ 0x080D2428 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #0 - b _080D2452 -_080D2430: - ldr r0, [r4] - ldr r1, [r4, #4] - ldrh r2, [r4, #8] - lsrs r2, r2, #1 - bl CpuSet - ldr r0, [r4, #4] - adds r0, #0x40 - str r0, [r4, #4] - ldrh r1, [r4, #0xa] - lsls r1, r1, #1 - ldr r0, [r4] - adds r0, r0, r1 - str r0, [r4] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_080D2452: - ldrh r0, [r4, #0xc] - cmp r5, r0 - blo _080D2430 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080D2428 - - thumb_func_start sub_080D2460 -sub_080D2460: @ 0x080D2460 - push {r4, r5, r6, r7, lr} - mov ip, r0 - ldr r0, [sp, #0x14] - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r4, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, _080D24AC - ldr r2, [r0] - ldrb r0, [r2, #4] - adds r1, r0, #0 - ldrb r7, [r2, #5] - cmp r1, r7 - bhs _080D24B4 - adds r0, #1 - strb r0, [r2, #4] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, [r2] - adds r1, r1, r0 - lsls r0, r3, #1 - strh r0, [r1, #8] - lsls r0, r4, #5 - adds r0, r0, r6 - lsls r0, r0, #1 - add r0, ip - str r0, [r1, #4] - strh r5, [r1, #0xc] - ldr r0, _080D24B0 - str r0, [r1, #0x10] - movs r0, #1 - b _080D24B6 - .align 2, 0 -_080D24AC: .4byte gUnknown_2039A2C -_080D24B0: .4byte sub_080D24BC -_080D24B4: - movs r0, #0 -_080D24B6: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_080D2460 - - thumb_func_start sub_080D24BC -sub_080D24BC: @ 0x080D24BC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r6, r0, #0 - movs r0, #0 - ldrh r1, [r6, #0xc] - cmp r0, r1 - bhs _080D254A - movs r7, #0x80 - lsls r7, r7, #5 - mov r5, sp - ldr r2, _080D2508 - mov r8, r2 - movs r1, #0x81 - lsls r1, r1, #0x18 - mov sl, r1 -_080D24E2: - ldr r2, [r6, #4] - ldrh r3, [r6, #8] - mov ip, r2 - adds r0, #1 - mov sb, r0 - cmp r3, r7 - bhi _080D250C - movs r0, #0 - strh r0, [r5] - mov r2, sp - mov r0, r8 - str r2, [r0] - mov r1, ip - str r1, [r0, #4] - lsrs r0, r3, #1 - mov r2, sl - orrs r0, r2 - mov r1, r8 - b _080D2534 - .align 2, 0 -_080D2508: .4byte 0x040000D4 -_080D250C: - movs r4, #0 - strh r4, [r5] - ldr r1, _080D255C - mov r0, sp - str r0, [r1] - str r2, [r1, #4] - ldr r0, _080D2560 - str r0, [r1, #8] - ldr r0, [r1, #8] - adds r2, r2, r7 - subs r3, r3, r7 - cmp r3, r7 - bhi _080D250C - strh r4, [r5] - mov r0, sp - str r0, [r1] - str r2, [r1, #4] - lsrs r0, r3, #1 - mov r2, sl - orrs r0, r2 -_080D2534: - str r0, [r1, #8] - ldr r0, [r1, #8] - mov r0, ip - adds r0, #0x40 - str r0, [r6, #4] - mov r1, sb - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - ldrh r2, [r6, #0xc] - cmp r0, r2 - blo _080D24E2 -_080D254A: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D255C: .4byte 0x040000D4 -_080D2560: .4byte 0x81000800 - thumb_func_end sub_080D24BC - - thumb_func_start CreateMonIcon -CreateMonIcon: @ 0x080D2564 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x30 - adds r4, r0, #0 - adds r6, r1, #0 - ldr r0, [sp, #0x4c] - ldr r1, [sp, #0x50] - ldr r5, [sp, #0x54] - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - mov r8, r2 - lsls r3, r3, #0x10 - lsrs r7, r3, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldr r0, _080D2600 - str r0, [sp, #0x18] - adds r0, r4, #0 - adds r2, r5, #0 - bl GetMonIconPtr - str r0, [sp, #0x1c] - ldr r0, _080D2604 - str r0, [sp, #0x20] - ldr r0, _080D2608 - str r0, [sp, #0x24] - str r6, [sp, #0x28] - ldr r0, _080D260C - adds r0, r4, r0 - ldr r1, _080D2610 - adds r5, r1, #0 - ldrb r0, [r0] - adds r1, r5, r0 - add r0, sp, #0x2c - strh r1, [r0] - add r1, sp, #0x18 - mov r0, sp - movs r2, #0x18 - bl memcpy - movs r0, #0xce - lsls r0, r0, #1 - cmp r4, r0 - bls _080D25CA - mov r0, sp - strh r5, [r0, #0x14] -_080D25CA: - mov r0, r8 - lsls r1, r0, #0x10 - asrs r1, r1, #0x10 - lsls r2, r7, #0x10 - asrs r2, r2, #0x10 - mov r0, sp - mov r3, sb - bl CreateMonIconSprite - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - ldr r1, _080D2614 - adds r0, r0, r1 - bl UpdateMonIconFrame - adds r0, r4, #0 - add sp, #0x30 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080D2600: .4byte gUnknown_85570CC -_080D2604: .4byte gUnknown_8557110 -_080D2608: .4byte gUnknown_8557144 -_080D260C: .4byte gUnknown_8556EE4 -_080D2610: .4byte 0x0000DAC0 -_080D2614: .4byte gUnknown_20205AC - thumb_func_end CreateMonIcon - - thumb_func_start sub_080D2618 -sub_080D2618: @ 0x080D2618 - push {r4, r5, r6, r7, lr} - sub sp, #0x18 - adds r4, r2, #0 - adds r5, r3, #0 - ldr r6, [sp, #0x2c] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov r3, sp - ldr r2, _080D2690 - str r2, [sp] - movs r2, #0 - str r2, [sp, #4] - ldr r2, _080D2694 - str r2, [sp, #8] - ldr r2, _080D2698 - str r2, [sp, #0xc] - str r1, [sp, #0x10] - ldr r2, _080D269C - adds r2, r0, r2 - ldr r7, _080D26A0 - adds r1, r7, #0 - ldrb r2, [r2] - adds r1, r1, r2 - strh r1, [r3, #0x14] - ldr r1, [sp, #0x30] - bl GetMonIconTiles - str r0, [sp, #4] - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - mov r0, sp - adds r1, r4, #0 - adds r2, r5, #0 - adds r3, r6, #0 - bl CreateMonIconSprite - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - ldr r1, _080D26A4 - adds r0, r0, r1 - bl UpdateMonIconFrame - adds r0, r4, #0 - add sp, #0x18 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080D2690: .4byte gUnknown_85570CC -_080D2694: .4byte gUnknown_8557110 -_080D2698: .4byte gUnknown_8557144 -_080D269C: .4byte gUnknown_8556EE4 -_080D26A0: .4byte 0x0000DAC0 -_080D26A4: .4byte gUnknown_20205AC - thumb_func_end sub_080D2618 - - thumb_func_start GetIconSpecies -GetIconSpecies: @ 0x080D26A8 - push {lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0xc9 - bne _080D26D2 - adds r0, r1, #0 - bl GetUnownLetterByPersonality - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - bne _080D26C4 - movs r0, #0xc9 - b _080D26CE -_080D26C4: - movs r1, #0xce - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 -_080D26CE: - adds r1, r0, #0 - b _080D26E0 -_080D26D2: - movs r0, #0xce - lsls r0, r0, #1 - adds r1, r2, #0 - cmp r1, r0 - bls _080D26E0 - movs r1, #0x82 - lsls r1, r1, #1 -_080D26E0: - adds r0, r1, #0 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetIconSpecies - - thumb_func_start GetUnownLetterByPersonality -GetUnownLetterByPersonality: @ 0x080D26E8 - push {lr} - adds r2, r0, #0 - cmp r2, #0 - beq _080D271E - movs r0, #0xc0 - lsls r0, r0, #0x12 - ands r0, r2 - lsrs r0, r0, #0x12 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r2 - lsrs r1, r1, #0xc - orrs r0, r1 - movs r1, #0xc0 - lsls r1, r1, #2 - ands r1, r2 - lsrs r1, r1, #6 - orrs r0, r1 - movs r1, #3 - ands r1, r2 - orrs r0, r1 - movs r1, #0x1c - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b _080D2720 -_080D271E: - movs r0, #0 -_080D2720: - pop {r1} - bx r1 - thumb_func_end GetUnownLetterByPersonality - - thumb_func_start sub_080D2724 -sub_080D2724: @ 0x080D2724 - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r4, #0 - mov r1, sp - bl MailSpeciesToSpecies - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xc9 - bne _080D275A - mov r0, sp - ldrh r0, [r0] - cmp r0, #0 - bne _080D274A - mov r1, sp - adds r0, #0xc9 - b _080D2752 -_080D274A: - mov r1, sp - movs r2, #0xce - lsls r2, r2, #1 - adds r0, r0, r2 -_080D2752: - strh r0, [r1] - mov r0, sp - ldrh r0, [r0] - b _080D2772 -_080D275A: - movs r0, #0xce - lsls r0, r0, #1 - cmp r4, r0 - bls _080D2766 - movs r4, #0x82 - lsls r4, r4, #1 -_080D2766: - adds r0, r4, #0 - movs r1, #0 - bl GetIconSpecies - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 -_080D2772: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080D2724 - - thumb_func_start GetMonIconPtr -GetMonIconPtr: @ 0x080D277C - push {r4, lr} - adds r4, r2, #0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetIconSpecies - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r4, #0 - bl GetMonIconTiles - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetMonIconPtr - - thumb_func_start sub_080D2798 -sub_080D2798: @ 0x080D2798 - push {lr} - bl sub_080D2B2C - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080D2798 - - thumb_func_start LoadMonIconPalettes -LoadMonIconPalettes: @ 0x080D27A4 - push {r4, r5, lr} - movs r4, #0 - ldr r5, _080D27C4 -_080D27AA: - lsls r0, r4, #3 - adds r0, r0, r5 - bl LoadSpritePalette - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #5 - bls _080D27AA - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D27C4: .4byte gUnknown_855709C - thumb_func_end LoadMonIconPalettes - - thumb_func_start SafeLoadMonIconPalette -SafeLoadMonIconPalette: @ 0x080D27C8 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - movs r0, #0xce - lsls r0, r0, #1 - cmp r1, r0 - bls _080D27DA - movs r1, #0x82 - lsls r1, r1, #1 -_080D27DA: - ldr r0, _080D2800 - adds r0, r1, r0 - ldrb r0, [r0] - ldr r1, _080D2804 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrh r0, [r4, #4] - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080D27FA - adds r0, r4, #0 - bl LoadSpritePalette -_080D27FA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D2800: .4byte gUnknown_8556EE4 -_080D2804: .4byte gUnknown_855709C - thumb_func_end SafeLoadMonIconPalette - - thumb_func_start LoadMonIconPalette -LoadMonIconPalette: @ 0x080D2808 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _080D2834 - adds r0, r0, r1 - ldrb r0, [r0] - ldr r1, _080D2838 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrh r0, [r4, #4] - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080D282E - adds r0, r4, #0 - bl LoadSpritePalette -_080D282E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D2834: .4byte gUnknown_8556EE4 -_080D2838: .4byte gUnknown_855709C - thumb_func_end LoadMonIconPalette - - thumb_func_start FreeMonIconPalettes -FreeMonIconPalettes: @ 0x080D283C - push {r4, r5, lr} - movs r4, #0 - ldr r5, _080D285C -_080D2842: - lsls r0, r4, #3 - adds r0, r0, r5 - ldrh r0, [r0, #4] - bl FreeSpritePaletteByTag - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #5 - bls _080D2842 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D285C: .4byte gUnknown_855709C - thumb_func_end FreeMonIconPalettes - - thumb_func_start SafeFreeMonIconPalette -SafeFreeMonIconPalette: @ 0x080D2860 - push {lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - movs r0, #0xce - lsls r0, r0, #1 - cmp r1, r0 - bls _080D2872 - movs r1, #0x82 - lsls r1, r1, #1 -_080D2872: - ldr r0, _080D2888 - adds r0, r1, r0 - ldrb r0, [r0] - ldr r1, _080D288C - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r0, [r0, #4] - bl FreeSpritePaletteByTag - pop {r0} - bx r0 - .align 2, 0 -_080D2888: .4byte gUnknown_8556EE4 -_080D288C: .4byte gUnknown_855709C - thumb_func_end SafeFreeMonIconPalette - - thumb_func_start FreeMonIconPalette -FreeMonIconPalette: @ 0x080D2890 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _080D28AC - adds r0, r0, r1 - ldrb r0, [r0] - ldr r1, _080D28B0 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r0, [r0, #4] - bl FreeSpritePaletteByTag - pop {r0} - bx r0 - .align 2, 0 -_080D28AC: .4byte gUnknown_8556EE4 -_080D28B0: .4byte gUnknown_855709C - thumb_func_end FreeMonIconPalette - - thumb_func_start sub_080D28B4 -sub_080D28B4: @ 0x080D28B4 - push {lr} - bl UpdateMonIconFrame - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080D28B4 - - thumb_func_start GetMonIconTiles -GetMonIconTiles: @ 0x080D28C0 - push {lr} - adds r3, r1, #0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r2, _080D28E8 - lsls r1, r0, #2 - adds r1, r1, r2 - ldr r2, [r1] - movs r1, #0xcd - lsls r1, r1, #1 - cmp r0, r1 - bne _080D28E2 - cmp r3, #1 - bne _080D28E2 - movs r0, #0x80 - lsls r0, r0, #3 - adds r2, r2, r0 -_080D28E2: - adds r0, r2, #0 - pop {r1} - bx r1 - .align 2, 0 -_080D28E8: .4byte gUnknown_8556804 - thumb_func_end GetMonIconTiles - - thumb_func_start sub_080D28EC -sub_080D28EC: @ 0x080D28EC - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0xa0 - bhi _080D2914 - ldr r6, _080D291C - movs r5, #5 -_080D28FA: - ldr r0, [r6] - adds r1, r4, #0 - movs r2, #0x20 - bl LoadPalette - adds r0, r4, #0 - adds r0, #0x10 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r6, #8 - subs r5, #1 - cmp r5, #0 - bge _080D28FA -_080D2914: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080D291C: .4byte gUnknown_855709C - thumb_func_end sub_080D28EC - - thumb_func_start GetValidMonIconPalIndex -GetValidMonIconPalIndex: @ 0x080D2920 - push {lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - movs r0, #0xce - lsls r0, r0, #1 - cmp r1, r0 - bls _080D2932 - movs r1, #0x82 - lsls r1, r1, #1 -_080D2932: - ldr r0, _080D293C - adds r0, r1, r0 - ldrb r0, [r0] - pop {r1} - bx r1 - .align 2, 0 -_080D293C: .4byte gUnknown_8556EE4 - thumb_func_end GetValidMonIconPalIndex - - thumb_func_start sub_080D2940 -sub_080D2940: @ 0x080D2940 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _080D294C - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080D294C: .4byte gUnknown_8556EE4 - thumb_func_end sub_080D2940 - - thumb_func_start GetValidMonIconPalettePtr -GetValidMonIconPalettePtr: @ 0x080D2950 - push {lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - movs r0, #0xce - lsls r0, r0, #1 - cmp r2, r0 - bls _080D2962 - movs r2, #0x82 - lsls r2, r2, #1 -_080D2962: - ldr r1, _080D2974 - ldr r0, _080D2978 - adds r0, r2, r0 - ldrb r0, [r0] - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r0, [r0] - pop {r1} - bx r1 - .align 2, 0 -_080D2974: .4byte gUnknown_855709C -_080D2978: .4byte gUnknown_8556EE4 - thumb_func_end GetValidMonIconPalettePtr - - thumb_func_start UpdateMonIconFrame -UpdateMonIconFrame: @ 0x080D297C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r4, r0, #0 - movs r7, #0 - adds r6, r4, #0 - adds r6, #0x2c - ldrb r2, [r6] - movs r0, #0x3f - mov sb, r0 - ands r0, r2 - cmp r0, #0 - bne _080D2A30 - movs r1, #0x2a - adds r1, r1, r4 - mov r8, r1 - ldrb r1, [r1] - ldr r0, [r4, #8] - lsls r1, r1, #2 - adds r1, r1, r0 - adds r5, r4, #0 - adds r5, #0x2b - ldrb r0, [r5] - ldr r1, [r1] - lsls r0, r0, #2 - adds r0, r0, r1 - movs r1, #0 - ldrsh r3, [r0, r1] - movs r0, #2 - rsbs r0, r0, #0 - cmp r3, r0 - beq _080D29C6 - adds r0, #1 - cmp r3, r0 - bne _080D29CA - b _080D2A44 -_080D29C6: - strb r7, [r5] - b _080D2A44 -_080D29CA: - ldr r2, _080D2A28 - ldrb r1, [r4, #3] - lsrs r1, r1, #6 - lsls r1, r1, #1 - ldrb r0, [r4, #1] - lsrs r0, r0, #6 - lsls r0, r0, #3 - adds r1, r1, r0 - adds r1, r1, r2 - ldrh r2, [r1] - adds r1, r2, #0 - muls r1, r3, r1 - ldr r0, [r4, #0xc] - adds r0, r0, r1 - ldrh r1, [r4, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x11 - ldr r3, _080D2A2C - adds r1, r1, r3 - bl RequestSpriteCopy - mov r0, r8 - ldrb r1, [r0] - ldr r0, [r4, #8] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r5] - ldr r1, [r1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - lsls r0, r0, #0xa - lsrs r0, r0, #0x1a - mov r1, sb - ands r1, r0 - ldrb r2, [r6] - movs r0, #0x40 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r6] - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - ldrb r7, [r5] - b _080D2A44 - .align 2, 0 -_080D2A28: .4byte gUnknown_855714C -_080D2A2C: .4byte 0x06010000 -_080D2A30: - lsls r0, r2, #0x1a - lsrs r0, r0, #0x1a - subs r0, #1 - movs r1, #0x3f - ands r0, r1 - movs r1, #0x40 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r6] -_080D2A44: - adds r0, r7, #0 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end UpdateMonIconFrame - - thumb_func_start CreateMonIconSprite -CreateMonIconSprite: @ 0x080D2A54 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #0x38 - mov sb, r0 - adds r4, r1, #0 - adds r5, r2, #0 - mov r8, r3 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - mov r0, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r0, #0 - str r0, [sp, #0x30] - ldr r2, _080D2B1C - mov r0, sb - ldr r6, [r0] - ldrb r1, [r6, #3] - lsrs r1, r1, #6 - lsls r1, r1, #1 - ldrb r0, [r6, #1] - lsrs r0, r0, #6 - lsls r0, r0, #3 - adds r1, r1, r0 - adds r1, r1, r2 - ldrh r2, [r1] - ldr r1, _080D2B20 - add r3, sp, #0x30 - ldr r0, [r3, #4] - ands r0, r1 - orrs r0, r2 - str r0, [r3, #4] - add r1, sp, #0x18 - ldr r0, _080D2B24 - strh r0, [r1] - mov r0, sb - ldrh r2, [r0, #0x14] - mov r0, sp - adds r0, #0x1a - strh r2, [r0] - str r6, [sp, #0x1c] - mov r2, sb - ldr r0, [r2, #8] - str r0, [sp, #0x20] - str r3, [sp, #0x24] - ldr r0, [r2, #0xc] - str r0, [sp, #0x28] - ldr r0, [r2, #0x10] - str r0, [sp, #0x2c] - mov r0, sp - movs r2, #0x18 - bl memcpy - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - mov r0, sp - adds r1, r4, #0 - adds r2, r5, #0 - mov r3, r8 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r6, _080D2B28 - lsls r3, r0, #4 - adds r3, r3, r0 - lsls r3, r3, #2 - adds r4, r3, r6 - adds r5, r4, #0 - adds r5, #0x2c - ldrb r1, [r5] - movs r2, #0x40 - orrs r1, r2 - strb r1, [r5] - adds r4, #0x3f - ldrb r2, [r4] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r4] - adds r6, #0xc - adds r3, r3, r6 - mov r2, sb - ldr r1, [r2, #4] - str r1, [r3] - add sp, #0x38 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080D2B1C: .4byte gUnknown_855714C -_080D2B20: .4byte 0xFFFF0000 -_080D2B24: .4byte 0x0000FFFF -_080D2B28: .4byte gUnknown_20205AC - thumb_func_end CreateMonIconSprite - - thumb_func_start sub_080D2B2C -sub_080D2B2C: @ 0x080D2B2C - push {lr} - sub sp, #8 - movs r1, #0 - str r1, [sp] - ldr r3, _080D2B60 - ldrb r2, [r0, #3] - lsrs r2, r2, #6 - lsls r2, r2, #1 - ldrb r1, [r0, #1] - lsrs r1, r1, #6 - lsls r1, r1, #3 - adds r2, r2, r1 - adds r2, r2, r3 - ldrh r3, [r2] - ldr r2, _080D2B64 - ldr r1, [sp, #4] - ands r1, r2 - orrs r1, r3 - str r1, [sp, #4] - mov r1, sp - str r1, [r0, #0xc] - bl DestroySprite - add sp, #8 - pop {r0} - bx r0 - .align 2, 0 -_080D2B60: .4byte gUnknown_855714C -_080D2B64: .4byte 0xFFFF0000 - thumb_func_end sub_080D2B2C - - thumb_func_start sub_080D2B68 -sub_080D2B68: @ 0x080D2B68 - mov ip, r0 - adds r0, #0x2a - movs r3, #0 - strb r1, [r0] - mov r2, ip - adds r2, #0x2c - ldrb r1, [r2] - movs r0, #0x40 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - mov r0, ip - adds r0, #0x2b - strb r3, [r0] - bx lr - .align 2, 0 - thumb_func_end sub_080D2B68 - - thumb_func_start ScriptMovement_StartObjectMovementScript -ScriptMovement_StartObjectMovementScript: @ 0x080D2B88 - push {r4, lr} - sub sp, #4 - adds r4, r3, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D2BAA - movs r0, #1 - b _080D2BD2 -_080D2BAA: - ldr r0, _080D2BDC - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080D2BBC - movs r0, #0x32 - bl sub_080D2C4C -_080D2BBC: - bl sub_080D2C94 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, sp - ldrb r1, [r1] - adds r2, r4, #0 - bl sub_080D2CA8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_080D2BD2: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080D2BDC: .4byte sub_080D2F00 - thumb_func_end ScriptMovement_StartObjectMovementScript - - thumb_func_start ScriptMovement_IsObjectMovementFinished -ScriptMovement_IsObjectMovementFinished: @ 0x080D2BE0 - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080D2C22 - bl sub_080D2C94 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - mov r0, sp - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080D2D14 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x10 - beq _080D2C22 - adds r0, r4, #0 - bl sub_080D2E24 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _080D2C24 -_080D2C22: - movs r0, #1 -_080D2C24: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScriptMovement_IsObjectMovementFinished - - thumb_func_start sub_080D2C2C -sub_080D2C2C: @ 0x080D2C2C - push {r4, lr} - bl sub_080D2C94 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xff - beq _080D2C46 - adds r0, r4, #0 - bl UnfreezeObjects - adds r0, r4, #0 - bl DestroyTask -_080D2C46: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080D2C2C - - thumb_func_start sub_080D2C4C -sub_080D2C4C: @ 0x080D2C4C - push {r4, r5, lr} - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, _080D2C88 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #1 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r3, r1, #3 - ldr r5, _080D2C8C - ldr r0, _080D2C90 - adds r4, r0, #0 -_080D2C6C: - lsls r0, r2, #1 - adds r0, r0, r3 - adds r0, r0, r5 - ldrh r1, [r0] - orrs r1, r4 - strh r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xf - bls _080D2C6C - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D2C88: .4byte sub_080D2F00 -_080D2C8C: .4byte gUnknown_3005B68 -_080D2C90: .4byte 0x0000FFFF - thumb_func_end sub_080D2C4C - - thumb_func_start sub_080D2C94 -sub_080D2C94: @ 0x080D2C94 - push {lr} - ldr r0, _080D2CA4 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_080D2CA4: .4byte sub_080D2F00 - thumb_func_end sub_080D2C94 - - thumb_func_start sub_080D2CA8 -sub_080D2CA8: @ 0x080D2CA8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov sb, r2 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r7, r5, #0 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - mov r8, r6 - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_080D2D14 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x10 - beq _080D2CE4 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080D2E24 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D2D04 - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r6, #0 - b _080D2CFA -_080D2CE4: - adds r0, r7, #0 - movs r1, #0xff - bl sub_080D2D14 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x10 - beq _080D2D04 - adds r0, r7, #0 - adds r1, r4, #0 - mov r2, r8 -_080D2CFA: - mov r3, sb - bl sub_080D2E7C - movs r0, #0 - b _080D2D06 -_080D2D04: - movs r0, #1 -_080D2D06: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080D2CA8 - - thumb_func_start sub_080D2D14 -sub_080D2D14: @ 0x080D2D14 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080D2D38 - adds r1, r1, r0 - adds r1, #2 - movs r2, #0 -_080D2D2C: - ldrb r0, [r1] - cmp r0, r3 - bne _080D2D3C - adds r0, r2, #0 - b _080D2D4A - .align 2, 0 -_080D2D38: .4byte gUnknown_3005B68 -_080D2D3C: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r1, #1 - cmp r2, #0xf - bls _080D2D2C - movs r0, #0x10 -_080D2D4A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080D2D14 - - thumb_func_start sub_080D2D50 -sub_080D2D50: @ 0x080D2D50 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080D2D80 - adds r1, r1, r0 - adds r1, #2 - str r1, [r2] - movs r0, #0 - cmp r0, r3 - bhs _080D2D7C -_080D2D6E: - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, #1 - cmp r0, r3 - blo _080D2D6E - str r1, [r2] -_080D2D7C: - pop {r0} - bx r0 - .align 2, 0 -_080D2D80: .4byte gUnknown_3005B68 - thumb_func_end sub_080D2D50 - - thumb_func_start sub_080D2D84 -sub_080D2D84: @ 0x080D2D84 - push {r4, lr} - sub sp, #4 - adds r4, r2, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r2, sp - bl sub_080D2D50 - ldr r0, [sp] - strb r4, [r0] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080D2D84 - - thumb_func_start sub_080D2DA8 -sub_080D2DA8: @ 0x080D2DA8 - push {r4, lr} - sub sp, #4 - adds r4, r2, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r2, sp - bl sub_080D2D50 - ldr r0, [sp] - ldrb r0, [r0] - strb r0, [r4] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080D2DA8 - - thumb_func_start sub_080D2DCC -sub_080D2DCC: @ 0x080D2DCC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - ldr r2, _080D2DF4 - lsrs r1, r1, #0x16 - adds r1, r1, r2 - ldr r2, [r1] - mvns r2, r2 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldr r3, _080D2DF8 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r3 - ldrh r0, [r1, #8] - ands r2, r0 - strh r2, [r1, #8] - bx lr - .align 2, 0 -_080D2DF4: .4byte gUnknown_82FACB4 -_080D2DF8: .4byte gUnknown_3005B60 - thumb_func_end sub_080D2DCC - - thumb_func_start sub_080D2DFC -sub_080D2DFC: @ 0x080D2DFC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - ldr r3, _080D2E1C - lsls r2, r0, #2 - adds r2, r2, r0 - lsls r2, r2, #3 - adds r2, r2, r3 - ldr r0, _080D2E20 - lsrs r1, r1, #0x16 - adds r1, r1, r0 - ldr r0, [r1] - ldrh r1, [r2, #8] - orrs r0, r1 - strh r0, [r2, #8] - bx lr - .align 2, 0 -_080D2E1C: .4byte gUnknown_3005B60 -_080D2E20: .4byte gUnknown_82FACB4 - thumb_func_end sub_080D2DFC - - thumb_func_start sub_080D2E24 -sub_080D2E24: @ 0x080D2E24 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - ldr r3, _080D2E4C - lsls r2, r0, #2 - adds r2, r2, r0 - lsls r2, r2, #3 - adds r2, r2, r3 - ldr r0, _080D2E50 - lsrs r1, r1, #0x16 - adds r1, r1, r0 - ldr r0, [r1] - ldrh r1, [r2, #8] - ands r0, r1 - cmp r0, #0 - bne _080D2E54 - movs r0, #0 - b _080D2E56 - .align 2, 0 -_080D2E4C: .4byte gUnknown_3005B60 -_080D2E50: .4byte gUnknown_82FACB4 -_080D2E54: - movs r0, #1 -_080D2E56: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080D2E24 - - thumb_func_start npc_obj_offscreen_culling_and_flag_update -npc_obj_offscreen_culling_and_flag_update: @ 0x080D2E5C - lsls r0, r0, #0x18 - ldr r2, _080D2E68 - lsrs r0, r0, #0x16 - adds r0, r0, r2 - str r1, [r0] - bx lr - .align 2, 0 -_080D2E68: .4byte gUnknown_2039A30 - thumb_func_end npc_obj_offscreen_culling_and_flag_update - - thumb_func_start sub_080D2E6C -sub_080D2E6C: @ 0x080D2E6C - lsls r0, r0, #0x18 - ldr r1, _080D2E78 - lsrs r0, r0, #0x16 - adds r0, r0, r1 - ldr r0, [r0] - bx lr - .align 2, 0 -_080D2E78: .4byte gUnknown_2039A30 - thumb_func_end sub_080D2E6C - - thumb_func_start sub_080D2E7C -sub_080D2E7C: @ 0x080D2E7C - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r5, r0, #0 - adds r4, r1, #0 - adds r6, r2, #0 - mov r8, r3 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080D2DCC - adds r0, r4, #0 - mov r1, r8 - bl npc_obj_offscreen_culling_and_flag_update - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r6, #0 - bl sub_080D2D84 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080D2E7C - - thumb_func_start UnfreezeObjects -UnfreezeObjects: @ 0x080D2EBC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080D2EF8 - adds r1, r1, r0 - adds r4, r1, #2 - movs r5, #0 -_080D2ED0: - ldrb r0, [r4] - cmp r0, #0xff - beq _080D2EE6 - adds r1, r0, #0 - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080D2EFC - adds r0, r0, r1 - bl UnfreezeEventObject -_080D2EE6: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r4, #1 - cmp r5, #0xf - bls _080D2ED0 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D2EF8: .4byte gUnknown_3005B68 -_080D2EFC: .4byte gUnknown_2036FF0 - thumb_func_end UnfreezeObjects - - thumb_func_start sub_080D2F00 -sub_080D2F00: @ 0x080D2F00 - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r5, #0 - mov r6, sp -_080D2F0C: - adds r0, r7, #0 - adds r1, r5, #0 - mov r2, sp - bl sub_080D2DA8 - ldrb r0, [r6] - cmp r0, #0xff - beq _080D2F30 - adds r4, r0, #0 - adds r0, r5, #0 - bl sub_080D2E6C - adds r3, r0, #0 - adds r0, r7, #0 - adds r1, r5, #0 - adds r2, r4, #0 - bl sub_080D2F44 -_080D2F30: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0xf - bls _080D2F0C - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080D2F00 - - thumb_func_start sub_080D2F44 -sub_080D2F44: @ 0x080D2F44 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r3, #0 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - mov r8, r6 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r1, _080D2F94 - adds r4, r0, r1 - adds r0, r4, #0 - bl EventObjectIsHeldMovementActive - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D2F7C - adds r0, r4, #0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D2FAE -_080D2F7C: - ldrb r1, [r5] - cmp r1, #0xfe - bne _080D2F98 - adds r0, r7, #0 - adds r1, r6, #0 - bl sub_080D2DFC - adds r0, r4, #0 - bl FreezeEventObject - b _080D2FAE - .align 2, 0 -_080D2F94: .4byte gUnknown_2036FF0 -_080D2F98: - adds r0, r4, #0 - bl EventObjectSetHeldMovement - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080D2FAE - adds r5, #1 - mov r0, r8 - adds r1, r5, #0 - bl npc_obj_offscreen_culling_and_flag_update -_080D2FAE: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_080D2F44 - - thumb_func_start SetUpFieldMove_Cut -SetUpFieldMove_Cut: @ 0x080D2FB8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - movs r0, #0x52 - bl CheckObjectGraphicsInFrontOfPlayer - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080D2FF4 - ldr r1, _080D2FE4 - ldr r0, _080D2FE8 - str r0, [r1] - ldr r1, _080D2FEC - ldr r0, _080D2FF0 - str r0, [r1] - movs r0, #1 - b _080D32CC - .align 2, 0 -_080D2FE4: .4byte gUnknown_3005B10 -_080D2FE8: .4byte FieldCallback_PrepareFadeInFromMenu -_080D2FEC: .4byte gUnknown_203CBB8 -_080D2FF0: .4byte FieldCallback_CutTree -_080D2FF4: - ldr r0, _080D3028 - adds r1, r0, #2 - bl PlayerGetDestCoords - bl GetCursorSelectionMonId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x64 - muls r0, r1, r0 - ldr r1, _080D302C - adds r0, r0, r1 - bl GetMonAbility - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0xc] - cmp r0, #0x34 - bne _080D3038 - ldr r1, _080D3030 - movs r0, #5 - strb r0, [r1] - ldr r0, _080D3034 - movs r1, #2 - b _080D3042 - .align 2, 0 -_080D3028: .4byte gUnknown_203A80C -_080D302C: .4byte gUnknown_2024190 -_080D3030: .4byte gUnknown_3001100 -_080D3034: .4byte gUnknown_3001101 -_080D3038: - ldr r1, _080D3118 - movs r0, #3 - strb r0, [r1] - ldr r0, _080D311C - movs r1, #1 -_080D3042: - strb r1, [r0] - ldr r0, _080D3120 - strb r1, [r0] - movs r6, #0 - movs r1, #0 -_080D304C: - mov r2, sp - adds r0, r2, r6 - strb r1, [r0] - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #8 - bls _080D304C - movs r6, #0 - ldr r2, _080D3124 - movs r1, #0 -_080D3062: - adds r0, r6, r2 - strb r1, [r0] - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0x18 - bls _080D3062 - movs r3, #0 - str r3, [sp, #0x10] - movs r6, #0 -_080D3076: - ldr r4, _080D3128 - adds r0, r6, r4 - ldr r1, _080D312C - ldrh r1, [r1, #2] - adds r0, r0, r1 - movs r5, #0 - adds r2, r6, #1 - str r2, [sp, #0x18] - lsls r7, r6, #1 - lsls r0, r0, #0x10 - str r0, [sp, #0x14] - asrs r0, r0, #0x10 - mov sl, r0 - lsls r0, r6, #2 - adds r0, r0, r6 - mov sb, r0 -_080D3096: - ldr r3, _080D3128 - adds r0, r5, r3 - ldr r4, _080D312C - ldrh r4, [r4] - adds r0, r0, r4 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - mov r8, r1 - asrs r4, r0, #0x10 - adds r0, r4, #0 - mov r1, sl - bl MapGridGetZCoordAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080D312C - movs r1, #4 - ldrsb r1, [r2, r1] - cmp r0, r1 - bne _080D315C - adds r0, r4, #0 - mov r1, sl - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl MetatileBehavior_IsPokeGrass - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080D30E6 - adds r0, r4, #0 - bl MetatileBehavior_IsAshGrass - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080D30F6 -_080D30E6: - adds r0, r5, #6 - add r0, sb - ldr r3, _080D3124 - adds r0, r0, r3 - movs r1, #1 - strb r1, [r0] - movs r0, #1 - str r0, [sp, #0x10] -_080D30F6: - mov r1, r8 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - ldr r2, [sp, #0x14] - asrs r1, r2, #0x10 - bl MapGridIsImpassableAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080D3130 - adds r0, r7, r6 - adds r0, r0, r5 - mov r3, sp - adds r1, r3, r0 - b _080D3164 - .align 2, 0 -_080D3118: .4byte gUnknown_3001100 -_080D311C: .4byte gUnknown_3001101 -_080D3120: .4byte gUnknown_3001102 -_080D3124: .4byte gUnknown_3001108 -_080D3128: .4byte 0x0000FFFF -_080D312C: .4byte gUnknown_203A80C -_080D3130: - adds r0, r7, r6 - adds r0, r0, r5 - mov r2, sp - adds r1, r2, r0 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl MetatileBehavior_IsCuttableGrass - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #1 - bne _080D3168 - adds r0, r5, #6 - add r0, sb - ldr r3, _080D3158 - adds r0, r0, r3 - strb r1, [r0] - b _080D3168 - .align 2, 0 -_080D3158: .4byte gUnknown_3001108 -_080D315C: - adds r0, r7, r6 - adds r0, r0, r5 - mov r4, sp - adds r1, r4, r0 -_080D3164: - movs r0, #0 - strb r0, [r1] -_080D3168: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #2 - bls _080D3096 - ldr r1, [sp, #0x18] - lsls r0, r1, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #2 - bhi _080D317E - b _080D3076 -_080D317E: - ldr r2, [sp, #0xc] - cmp r2, #0x34 - beq _080D318E - ldr r3, [sp, #0x10] - cmp r3, #1 - beq _080D318C - b _080D32CA -_080D318C: - b _080D32BE -_080D318E: - movs r6, #0 - ldr r4, _080D3274 - mov sb, r4 - ldr r0, _080D3278 - mov sl, r0 -_080D3198: - lsls r2, r6, #2 - mov r3, sl - adds r1, r2, r3 - movs r0, #0 - ldrsb r0, [r1, r0] - mov r4, sb - ldrh r4, [r4] - adds r0, r0, r4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - movs r0, #1 - ldrsb r0, [r1, r0] - mov r1, sb - ldrh r1, [r1, #2] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r7, #1 - movs r5, #0 - ldr r3, _080D327C - adds r0, r2, r3 - ldrb r0, [r0] - adds r6, #1 - str r6, [sp, #0x18] - adds r6, r2, #0 - cmp r0, #0 - beq _080D31FA -_080D31D0: - adds r1, r2, #0 - adds r0, r5, r2 - adds r0, r0, r3 - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add r0, sp - ldrb r0, [r0] - cmp r0, #0 - beq _080D3294 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #1 - bhi _080D31FA - adds r0, r5, r1 - adds r0, r0, r3 - ldrb r0, [r0] - cmp r0, #0 - bne _080D31D0 -_080D31FA: - cmp r7, #1 - bne _080D32AC - mov r1, r8 - lsls r0, r1, #0x10 - asrs r5, r0, #0x10 - lsls r0, r4, #0x10 - asrs r4, r0, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl MapGridGetZCoordAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r2, sb - movs r1, #4 - ldrsb r1, [r2, r1] - cmp r0, r1 - bne _080D32AC - mov r3, sl - adds r2, r6, r3 - movs r1, #1 - ldrsb r1, [r2, r1] - lsls r0, r1, #2 - adds r0, r0, r1 - adds r0, #0xc - ldrb r2, [r2] - adds r0, r0, r2 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r0, r5, #0 - adds r1, r4, #0 - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl MetatileBehavior_IsPokeGrass - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080D325C - adds r0, r4, #0 - bl MetatileBehavior_IsAshGrass - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080D3298 -_080D325C: - ldr r1, _080D3280 - ldr r0, _080D3284 - str r0, [r1] - ldr r1, _080D3288 - ldr r0, _080D328C - str r0, [r1] - ldr r0, _080D3290 - adds r0, r6, r0 - strb r7, [r0] - movs r4, #1 - str r4, [sp, #0x10] - b _080D32AC - .align 2, 0 -_080D3274: .4byte gUnknown_203A80C -_080D3278: .4byte gUnknown_8557164 -_080D327C: .4byte gUnknown_8557166 -_080D3280: .4byte gUnknown_3005B10 -_080D3284: .4byte FieldCallback_PrepareFadeInFromMenu -_080D3288: .4byte gUnknown_203CBB8 -_080D328C: .4byte FieldCallback_CutGrass -_080D3290: .4byte gUnknown_3001108 -_080D3294: - movs r7, #0 - b _080D31FA -_080D3298: - adds r0, r4, #0 - bl MetatileBehavior_IsCuttableGrass - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #1 - bne _080D32AC - ldr r0, _080D32DC - adds r0, r6, r0 - strb r1, [r0] -_080D32AC: - ldr r1, [sp, #0x18] - lsls r0, r1, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0xf - bhi _080D32B8 - b _080D3198 -_080D32B8: - ldr r2, [sp, #0x10] - cmp r2, #1 - bne _080D32CA -_080D32BE: - ldr r1, _080D32E0 - ldr r0, _080D32E4 - str r0, [r1] - ldr r1, _080D32E8 - ldr r0, _080D32EC - str r0, [r1] -_080D32CA: - ldr r0, [sp, #0x10] -_080D32CC: - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080D32DC: .4byte gUnknown_3001108 -_080D32E0: .4byte gUnknown_3005B10 -_080D32E4: .4byte FieldCallback_PrepareFadeInFromMenu -_080D32E8: .4byte gUnknown_203CBB8 -_080D32EC: .4byte FieldCallback_CutGrass - thumb_func_end SetUpFieldMove_Cut - - thumb_func_start FieldCallback_CutGrass -FieldCallback_CutGrass: @ 0x080D32F0 - push {lr} - movs r0, #1 - bl FieldEffectStart - bl GetCursorSelectionMonId - ldr r1, _080D3308 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080D3308: .4byte gUnknown_20388A8 - thumb_func_end FieldCallback_CutGrass - - thumb_func_start sub_080D330C -sub_080D330C: @ 0x080D330C - push {lr} - bl oei_task_add - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080D3334 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r2, _080D3338 - lsrs r0, r2, #0x10 - strh r0, [r1, #0x18] - strh r2, [r1, #0x1a] - movs r0, #0x12 - bl IncrementGameStat - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_080D3334: .4byte gUnknown_3005B60 -_080D3338: .4byte StartCutGrassFieldEffect - thumb_func_end sub_080D330C - - thumb_func_start FieldCallback_CutTree -FieldCallback_CutTree: @ 0x080D333C - push {lr} - bl GetCursorSelectionMonId - ldr r1, _080D3354 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [r1] - ldr r0, _080D3358 - bl ScriptContext1_SetupScript - pop {r0} - bx r0 - .align 2, 0 -_080D3354: .4byte gUnknown_20388A8 -_080D3358: .4byte gUnknown_8256612 - thumb_func_end FieldCallback_CutTree - - thumb_func_start sub_080D335C -sub_080D335C: @ 0x080D335C - push {lr} - bl oei_task_add - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080D3384 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r2, _080D3388 - lsrs r0, r2, #0x10 - strh r0, [r1, #0x18] - strh r2, [r1, #0x1a] - movs r0, #0x12 - bl IncrementGameStat - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_080D3384: .4byte gUnknown_3005B60 -_080D3388: .4byte StartCutTreeFieldEffect - thumb_func_end sub_080D335C - - thumb_func_start StartCutGrassFieldEffect -StartCutGrassFieldEffect: @ 0x080D338C - push {lr} - movs r0, #1 - bl FieldEffectActiveListRemove - movs r0, #0x3a - bl FieldEffectStart - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end StartCutGrassFieldEffect - - thumb_func_start FldEff_CutGrass -FldEff_CutGrass: @ 0x080D33A0 - push {r4, r5, r6, r7, lr} - movs r6, #0 - movs r0, #0x80 - bl sub_080A306C - ldr r4, _080D3490 - adds r1, r4, #2 - adds r0, r4, #0 - bl PlayerGetDestCoords - adds r7, r4, #0 -_080D33B6: - ldr r0, _080D3494 - adds r0, r6, r0 - ldrb r0, [r0] - cmp r0, #1 - bne _080D3404 - adds r0, r6, #0 - movs r1, #5 - bl __umodsi3 - adds r4, r0, #0 - subs r4, #2 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r6, #0 - movs r1, #5 - bl __udivsi3 - adds r5, r0, #0 - subs r5, #2 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - ldrh r0, [r7] - adds r4, r4, r0 - lsls r5, r5, #0x18 - asrs r5, r5, #0x18 - ldrh r2, [r7, #2] - adds r5, r5, r2 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - bl SetCutGrassMetatile - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0808E0CC -_080D3404: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0x18 - bls _080D33B6 - ldr r2, _080D3490 - ldr r0, _080D3498 - ldrb r1, [r0] - ldrh r0, [r2] - subs r0, r0, r1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldr r1, _080D349C - ldrb r1, [r1] - mvns r1, r1 - ldrh r2, [r2, #2] - adds r1, r1, r2 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl SetCutGrassMetatiles - bl DrawWholeMapView - ldr r4, _080D34A0 - movs r0, #8 - bl AllocZeroed - str r0, [r4] - movs r6, #0 - ldr r5, _080D34A4 -_080D3440: - ldr r0, _080D34A8 - ldrb r1, [r0, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrh r1, [r0, #2] - lsls r1, r1, #0x17 - lsrs r1, r1, #7 - movs r2, #0x80 - lsls r2, r2, #0xc - adds r1, r1, r2 - asrs r1, r1, #0x10 - ldrb r2, [r0] - adds r2, #0x14 - ldr r0, _080D34AC - movs r3, #0 - bl CreateSprite - ldr r1, [r4] - adds r1, r1, r6 - strb r0, [r1] - ldr r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - lsls r1, r6, #5 - strh r1, [r0, #0x32] - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #7 - bls _080D3440 - movs r0, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080D3490: .4byte gUnknown_203A80C -_080D3494: .4byte gUnknown_3001108 -_080D3498: .4byte gUnknown_3001101 -_080D349C: .4byte gUnknown_3001102 -_080D34A0: .4byte gUnknown_2039A70 -_080D34A4: .4byte gUnknown_20205AC -_080D34A8: .4byte gUnknown_2037230 -_080D34AC: .4byte gUnknown_85571C8 - thumb_func_end FldEff_CutGrass - - thumb_func_start SetCutGrassMetatile -SetCutGrassMetatile: @ 0x080D34B0 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r6, r0, #0x10 - asrs r4, r0, #0x10 - lsrs r7, r1, #0x10 - asrs r5, r1, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - bl MapGridGetMetatileIdAt - adds r1, r0, #0 - ldr r0, _080D34E8 - cmp r1, r0 - bgt _080D34FC - subs r0, #1 - cmp r1, r0 - bge _080D3574 - cmp r1, #0x25 - beq _080D3596 - cmp r1, #0x25 - bgt _080D34EC - cmp r1, #0xd - beq _080D353C - cmp r1, #0x15 - beq _080D353C - b _080D35A0 - .align 2, 0 -_080D34E8: .4byte 0x00000207 -_080D34EC: - movs r0, #0xe3 - lsls r0, r0, #1 - cmp r1, r0 - beq _080D354C - adds r0, #1 - cmp r1, r0 - beq _080D3552 - b _080D35A0 -_080D34FC: - ldr r0, _080D3514 - cmp r1, r0 - beq _080D3584 - cmp r1, r0 - bgt _080D3518 - subs r0, #0xa - cmp r1, r0 - beq _080D353C - adds r0, #2 - cmp r1, r0 - beq _080D3584 - b _080D35A0 - .align 2, 0 -_080D3514: .4byte 0x00000212 -_080D3518: - ldr r0, _080D352C - cmp r1, r0 - beq _080D3564 - cmp r1, r0 - bgt _080D3530 - subs r0, #1 - cmp r1, r0 - beq _080D355C - b _080D35A0 - .align 2, 0 -_080D352C: .4byte 0x00000282 -_080D3530: - ldr r0, _080D3538 - cmp r1, r0 - beq _080D356C - b _080D35A0 - .align 2, 0 -_080D3538: .4byte 0x00000283 -_080D353C: - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - lsls r1, r7, #0x10 - asrs r1, r1, #0x10 - movs r2, #1 - bl MapGridSetMetatileIdAt - b _080D35A0 -_080D354C: - movs r2, #0xe7 - lsls r2, r2, #1 - b _080D3576 -_080D3552: - ldr r2, _080D3558 - b _080D3576 - .align 2, 0 -_080D3558: .4byte 0x000001CF -_080D355C: - ldr r2, _080D3560 - b _080D3576 - .align 2, 0 -_080D3560: .4byte 0x00000279 -_080D3564: - ldr r2, _080D3568 - b _080D3576 - .align 2, 0 -_080D3568: .4byte 0x0000027A -_080D356C: - ldr r2, _080D3570 - b _080D3576 - .align 2, 0 -_080D3570: .4byte 0x0000027B -_080D3574: - ldr r2, _080D3580 -_080D3576: - adds r0, r4, #0 - adds r1, r5, #0 - bl MapGridSetMetatileIdAt - b _080D35A0 - .align 2, 0 -_080D3580: .4byte 0x00000271 -_080D3584: - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - lsls r1, r7, #0x10 - asrs r1, r1, #0x10 - movs r2, #0x86 - lsls r2, r2, #2 - bl MapGridSetMetatileIdAt - b _080D35A0 -_080D3596: - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0xe - bl MapGridSetMetatileIdAt -_080D35A0: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetCutGrassMetatile - - thumb_func_start GetLongGrassCaseAt -GetLongGrassCaseAt: @ 0x080D35A8 - push {lr} - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl MapGridGetMetatileIdAt - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - adds r2, r1, #0 - cmp r1, #1 - bne _080D35C4 - movs r0, #1 - b _080D35F6 -_080D35C4: - ldr r0, _080D35D0 - cmp r1, r0 - bne _080D35D4 - movs r0, #2 - b _080D35F6 - .align 2, 0 -_080D35D0: .4byte 0x00000279 -_080D35D4: - ldr r0, _080D35E0 - cmp r1, r0 - bne _080D35E4 - movs r0, #3 - b _080D35F6 - .align 2, 0 -_080D35E0: .4byte 0x0000027A -_080D35E4: - ldr r0, _080D35F0 - cmp r2, r0 - beq _080D35F4 - movs r0, #0 - b _080D35F6 - .align 2, 0 -_080D35F0: .4byte 0x0000027B -_080D35F4: - movs r0, #4 -_080D35F6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetLongGrassCaseAt - - thumb_func_start SetCutGrassMetatiles -SetCutGrassMetatiles: @ 0x080D35FC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sl, r1 - ldr r1, _080D366C - ldrb r2, [r1] - mov r3, sl - adds r0, r2, r3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp] - movs r4, #0 - cmp r4, r2 - blt _080D362A - b _080D3740 -_080D362A: - lsls r0, r3, #0x10 - asrs r7, r0, #0x10 -_080D362E: - mov r1, sb - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - lsls r4, r4, #0x10 - asrs r1, r4, #0x10 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - asrs r5, r0, #0x10 - adds r0, r5, #0 - adds r1, r7, #0 - bl MapGridGetMetatileIdAt - mov r8, r4 - cmp r0, #0x15 - bne _080D36B2 - adds r4, r7, #1 - lsls r1, r4, #0x10 - asrs r1, r1, #0x10 - adds r0, r5, #0 - bl GetLongGrassCaseAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - beq _080D3688 - cmp r0, #2 - bgt _080D3670 - cmp r0, #1 - beq _080D367A - b _080D36B2 - .align 2, 0 -_080D366C: .4byte gUnknown_3001100 -_080D3670: - cmp r0, #3 - beq _080D3698 - cmp r0, #4 - beq _080D36A8 - b _080D36B2 -_080D367A: - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x82 - lsls r2, r2, #2 - bl MapGridSetMetatileIdAt - b _080D36B2 -_080D3688: - adds r0, r5, #0 - adds r1, r4, #0 - ldr r2, _080D3694 - bl MapGridSetMetatileIdAt - b _080D36B2 - .align 2, 0 -_080D3694: .4byte 0x00000281 -_080D3698: - adds r0, r5, #0 - adds r1, r4, #0 - ldr r2, _080D36A4 - bl MapGridSetMetatileIdAt - b _080D36B2 - .align 2, 0 -_080D36A4: .4byte 0x00000282 -_080D36A8: - adds r0, r5, #0 - adds r1, r4, #0 - ldr r2, _080D3778 - bl MapGridSetMetatileIdAt -_080D36B2: - lsls r0, r6, #0x10 - asrs r5, r0, #0x10 - ldr r3, [sp] - lsls r0, r3, #0x10 - asrs r4, r0, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl MapGridGetMetatileIdAt - cmp r0, #1 - bne _080D372C - adds r4, #1 - adds r0, r5, #0 - adds r1, r4, #0 - bl MapGridGetMetatileIdAt - movs r1, #0x82 - lsls r1, r1, #2 - cmp r0, r1 - bne _080D36E4 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #1 - bl MapGridSetMetatileIdAt -_080D36E4: - adds r0, r5, #0 - adds r1, r4, #0 - bl MapGridGetMetatileIdAt - ldr r1, _080D377C - cmp r0, r1 - bne _080D36FC - adds r0, r5, #0 - adds r1, r4, #0 - ldr r2, _080D3780 - bl MapGridSetMetatileIdAt -_080D36FC: - adds r0, r5, #0 - adds r1, r4, #0 - bl MapGridGetMetatileIdAt - ldr r1, _080D3784 - cmp r0, r1 - bne _080D3714 - adds r0, r5, #0 - adds r1, r4, #0 - ldr r2, _080D3788 - bl MapGridSetMetatileIdAt -_080D3714: - adds r0, r5, #0 - adds r1, r4, #0 - bl MapGridGetMetatileIdAt - ldr r1, _080D3778 - cmp r0, r1 - bne _080D372C - adds r0, r5, #0 - adds r1, r4, #0 - ldr r2, _080D378C - bl MapGridSetMetatileIdAt -_080D372C: - movs r1, #0x80 - lsls r1, r1, #9 - add r1, r8 - lsrs r4, r1, #0x10 - asrs r1, r1, #0x10 - ldr r0, _080D3790 - ldrb r0, [r0] - cmp r1, r0 - bge _080D3740 - b _080D362E -_080D3740: - ldr r1, _080D3790 - ldrb r0, [r1] - cmp r0, #5 - bne _080D3768 - mov r3, sb - lsls r5, r3, #0x10 - asrs r5, r5, #0x10 - mov r0, sl - lsls r4, r0, #0x10 - asrs r4, r4, #0x10 - movs r0, #0 - adds r1, r5, #0 - adds r2, r4, #0 - bl HandleLongGrassOnHyper - movs r0, #1 - adds r1, r5, #0 - adds r2, r4, #0 - bl HandleLongGrassOnHyper -_080D3768: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D3778: .4byte 0x00000283 -_080D377C: .4byte 0x00000281 -_080D3780: .4byte 0x00000279 -_080D3784: .4byte 0x00000282 -_080D3788: .4byte 0x0000027A -_080D378C: .4byte 0x0000027B -_080D3790: .4byte gUnknown_3001100 - thumb_func_end SetCutGrassMetatiles - - thumb_func_start HandleLongGrassOnHyper -HandleLongGrassOnHyper: @ 0x080D3794 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - adds r3, r5, #0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - mov sl, r2 - cmp r0, #0 - bne _080D37CC - mov r2, sp - ldr r1, _080D37C8 - ldrb r0, [r1, #5] - strb r0, [r2] - ldrb r0, [r1, #0xa] - strb r0, [r2, #1] - ldrb r0, [r1, #0xf] - strb r0, [r2, #2] - mov r8, r5 - b _080D37EE - .align 2, 0 -_080D37C8: .4byte gUnknown_3001108 -_080D37CC: - cmp r0, #1 - beq _080D37D2 - b _080D39EA -_080D37D2: - mov r2, sp - ldr r1, _080D38A8 - ldrb r0, [r1, #9] - strb r0, [r2] - ldrb r0, [r1, #0xe] - strb r0, [r2, #1] - ldrb r0, [r1, #0x13] - strb r0, [r2, #2] - lsls r0, r3, #0x10 - movs r1, #0x80 - lsls r1, r1, #0xb - adds r0, r0, r1 - lsrs r0, r0, #0x10 - mov r8, r0 -_080D37EE: - mov r0, sp - ldrb r0, [r0] - cmp r0, #1 - bne _080D3866 - mov r1, r8 - lsls r0, r1, #0x10 - asrs r5, r0, #0x10 - mov r1, sl - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - adds r4, r0, #3 - adds r0, r5, #0 - adds r1, r4, #0 - bl MapGridGetMetatileIdAt - movs r1, #0x82 - lsls r1, r1, #2 - cmp r0, r1 - bne _080D381E - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #1 - bl MapGridSetMetatileIdAt -_080D381E: - adds r0, r5, #0 - adds r1, r4, #0 - bl MapGridGetMetatileIdAt - ldr r1, _080D38AC - cmp r0, r1 - bne _080D3836 - ldr r2, _080D38B0 - adds r0, r5, #0 - adds r1, r4, #0 - bl MapGridSetMetatileIdAt -_080D3836: - adds r0, r5, #0 - adds r1, r4, #0 - bl MapGridGetMetatileIdAt - ldr r1, _080D38B4 - cmp r0, r1 - bne _080D384E - ldr r2, _080D38B8 - adds r0, r5, #0 - adds r1, r4, #0 - bl MapGridSetMetatileIdAt -_080D384E: - adds r0, r5, #0 - adds r1, r4, #0 - bl MapGridGetMetatileIdAt - ldr r1, _080D38BC - cmp r0, r1 - bne _080D3866 - ldr r2, _080D38C0 - adds r0, r5, #0 - adds r1, r4, #0 - bl MapGridSetMetatileIdAt -_080D3866: - mov r0, sp - ldrb r0, [r0, #1] - cmp r0, #1 - bne _080D3960 - mov r0, r8 - lsls r5, r0, #0x10 - asrs r6, r5, #0x10 - mov r1, sl - lsls r4, r1, #0x10 - asrs r7, r4, #0x10 - adds r1, r7, #2 - adds r0, r6, #0 - bl MapGridGetMetatileIdAt - mov sb, r4 - cmp r0, #0x15 - bne _080D38F6 - adds r4, r7, #3 - lsls r1, r4, #0x10 - asrs r1, r1, #0x10 - adds r0, r6, #0 - bl GetLongGrassCaseAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - beq _080D38D4 - cmp r0, #2 - bgt _080D38C4 - cmp r0, #1 - beq _080D38CE - b _080D38F6 - .align 2, 0 -_080D38A8: .4byte gUnknown_3001108 -_080D38AC: .4byte 0x00000281 -_080D38B0: .4byte 0x00000279 -_080D38B4: .4byte 0x00000282 -_080D38B8: .4byte 0x0000027A -_080D38BC: .4byte 0x00000283 -_080D38C0: .4byte 0x0000027B -_080D38C4: - cmp r0, #3 - beq _080D38DC - cmp r0, #4 - beq _080D38EC - b _080D38F6 -_080D38CE: - movs r2, #0x82 - lsls r2, r2, #2 - b _080D38DE -_080D38D4: - ldr r2, _080D38D8 - b _080D38DE - .align 2, 0 -_080D38D8: .4byte 0x00000281 -_080D38DC: - ldr r2, _080D38E8 -_080D38DE: - adds r0, r6, #0 - adds r1, r4, #0 - bl MapGridSetMetatileIdAt - b _080D38F6 - .align 2, 0 -_080D38E8: .4byte 0x00000282 -_080D38EC: - ldr r2, _080D39A0 - adds r0, r6, #0 - adds r1, r4, #0 - bl MapGridSetMetatileIdAt -_080D38F6: - asrs r5, r5, #0x10 - mov r1, sb - asrs r0, r1, #0x10 - adds r4, r0, #4 - adds r0, r5, #0 - adds r1, r4, #0 - bl MapGridGetMetatileIdAt - movs r1, #0x82 - lsls r1, r1, #2 - cmp r0, r1 - bne _080D3918 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #1 - bl MapGridSetMetatileIdAt -_080D3918: - adds r0, r5, #0 - adds r1, r4, #0 - bl MapGridGetMetatileIdAt - ldr r1, _080D39A4 - cmp r0, r1 - bne _080D3930 - ldr r2, _080D39A8 - adds r0, r5, #0 - adds r1, r4, #0 - bl MapGridSetMetatileIdAt -_080D3930: - adds r0, r5, #0 - adds r1, r4, #0 - bl MapGridGetMetatileIdAt - ldr r1, _080D39AC - cmp r0, r1 - bne _080D3948 - ldr r2, _080D39B0 - adds r0, r5, #0 - adds r1, r4, #0 - bl MapGridSetMetatileIdAt -_080D3948: - adds r0, r5, #0 - adds r1, r4, #0 - bl MapGridGetMetatileIdAt - ldr r1, _080D39A0 - cmp r0, r1 - bne _080D3960 - ldr r2, _080D39B4 - adds r0, r5, #0 - adds r1, r4, #0 - bl MapGridSetMetatileIdAt -_080D3960: - mov r0, sp - ldrb r0, [r0, #2] - cmp r0, #1 - bne _080D39EA - mov r1, r8 - lsls r0, r1, #0x10 - asrs r5, r0, #0x10 - mov r1, sl - lsls r0, r1, #0x10 - asrs r4, r0, #0x10 - adds r1, r4, #3 - adds r0, r5, #0 - bl MapGridGetMetatileIdAt - cmp r0, #0x15 - bne _080D39EA - adds r4, #4 - lsls r1, r4, #0x10 - asrs r1, r1, #0x10 - adds r0, r5, #0 - bl GetLongGrassCaseAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - beq _080D39C8 - cmp r0, #2 - bgt _080D39B8 - cmp r0, #1 - beq _080D39C2 - b _080D39EA - .align 2, 0 -_080D39A0: .4byte 0x00000283 -_080D39A4: .4byte 0x00000281 -_080D39A8: .4byte 0x00000279 -_080D39AC: .4byte 0x00000282 -_080D39B0: .4byte 0x0000027A -_080D39B4: .4byte 0x0000027B -_080D39B8: - cmp r0, #3 - beq _080D39D0 - cmp r0, #4 - beq _080D39E0 - b _080D39EA -_080D39C2: - movs r2, #0x82 - lsls r2, r2, #2 - b _080D39D2 -_080D39C8: - ldr r2, _080D39CC - b _080D39D2 - .align 2, 0 -_080D39CC: .4byte 0x00000281 -_080D39D0: - ldr r2, _080D39DC -_080D39D2: - adds r0, r5, #0 - adds r1, r4, #0 - bl MapGridSetMetatileIdAt - b _080D39EA - .align 2, 0 -_080D39DC: .4byte 0x00000282 -_080D39E0: - ldr r2, _080D39FC - adds r0, r5, #0 - adds r1, r4, #0 - bl MapGridSetMetatileIdAt -_080D39EA: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D39FC: .4byte 0x00000283 - thumb_func_end HandleLongGrassOnHyper - - thumb_func_start CutGrassSpriteCallback1 -CutGrassSpriteCallback1: @ 0x080D3A00 - movs r2, #0 - movs r1, #8 - strh r1, [r0, #0x2e] - strh r2, [r0, #0x30] - strh r2, [r0, #0x34] - ldr r1, _080D3A10 - str r1, [r0, #0x1c] - bx lr - .align 2, 0 -_080D3A10: .4byte CutGrassSpriteCallback2 - thumb_func_end CutGrassSpriteCallback1 - - thumb_func_start CutGrassSpriteCallback2 -CutGrassSpriteCallback2: @ 0x080D3A14 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - movs r2, #0x2e - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, #0x24] - movs r1, #0x32 - ldrsh r0, [r4, r1] - movs r2, #0x2e - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x32] - adds r0, #8 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x32] - ldrh r1, [r4, #0x2e] - adds r1, #1 - ldrh r2, [r4, #0x34] - lsls r0, r2, #0x10 - asrs r0, r0, #0x12 - adds r1, r1, r0 - strh r1, [r4, #0x2e] - adds r2, #1 - strh r2, [r4, #0x34] - ldrh r1, [r4, #0x30] - movs r2, #0x30 - ldrsh r0, [r4, r2] - cmp r0, #0x1c - beq _080D3A60 - adds r0, r1, #1 - strh r0, [r4, #0x30] - b _080D3A64 -_080D3A60: - ldr r0, _080D3A6C - str r0, [r4, #0x1c] -_080D3A64: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D3A6C: .4byte CutGrassSpriteCallbackEnd - thumb_func_end CutGrassSpriteCallback2 - - thumb_func_start CutGrassSpriteCallbackEnd -CutGrassSpriteCallbackEnd: @ 0x080D3A70 - push {r4, r5, r6, lr} - movs r4, #1 -_080D3A74: - ldr r6, _080D3AD0 - ldr r0, [r6] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r5, _080D3AD4 - adds r0, r0, r5 - bl DestroySprite - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #7 - bls _080D3A74 - ldr r0, [r6] - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0x3a - bl FieldEffectStop - ldr r0, [r6] - bl Free - movs r0, #0 - str r0, [r6] - bl ScriptUnfreezeEventObjects - bl sub_080987E8 - bl IsMewPlayingHideAndSeek - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080D3ACA - ldr r0, _080D3AD8 - bl ScriptContext1_SetupScript -_080D3ACA: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080D3AD0: .4byte gUnknown_2039A70 -_080D3AD4: .4byte gUnknown_20205AC -_080D3AD8: .4byte gUnknown_823B5A9 - thumb_func_end CutGrassSpriteCallbackEnd - - thumb_func_start FixLongGrassMetatilesWindowTop -FixLongGrassMetatilesWindowTop: @ 0x080D3ADC - push {r4, r5, lr} - lsls r0, r0, #0x10 - asrs r5, r0, #0x10 - lsls r1, r1, #0x10 - asrs r4, r1, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_08089480 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D3B4E - adds r4, #1 - lsls r1, r4, #0x10 - asrs r1, r1, #0x10 - adds r0, r5, #0 - bl GetLongGrassCaseAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - beq _080D3B2A - cmp r0, #2 - bgt _080D3B1A - cmp r0, #1 - beq _080D3B24 - b _080D3B4E -_080D3B1A: - cmp r0, #3 - beq _080D3B34 - cmp r0, #4 - beq _080D3B44 - b _080D3B4E -_080D3B24: - movs r2, #0x82 - lsls r2, r2, #2 - b _080D3B36 -_080D3B2A: - ldr r2, _080D3B30 - b _080D3B36 - .align 2, 0 -_080D3B30: .4byte 0x00000281 -_080D3B34: - ldr r2, _080D3B40 -_080D3B36: - adds r0, r5, #0 - adds r1, r4, #0 - bl MapGridSetMetatileIdAt - b _080D3B4E - .align 2, 0 -_080D3B40: .4byte 0x00000282 -_080D3B44: - ldr r2, _080D3B54 - adds r0, r5, #0 - adds r1, r4, #0 - bl MapGridSetMetatileIdAt -_080D3B4E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D3B54: .4byte 0x00000283 - thumb_func_end FixLongGrassMetatilesWindowTop - - thumb_func_start FixLongGrassMetatilesWindowBottom -FixLongGrassMetatilesWindowBottom: @ 0x080D3B58 - push {r4, r5, lr} - lsls r0, r0, #0x10 - asrs r4, r0, #0x10 - lsls r1, r1, #0x10 - asrs r5, r1, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - bl MapGridGetMetatileIdAt - cmp r0, #1 - bne _080D3BEA - adds r5, #1 - adds r0, r4, #0 - adds r1, r5, #0 - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsLongGrassSouthEdge - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D3BEA - adds r0, r4, #0 - adds r1, r5, #0 - bl MapGridGetMetatileIdAt - adds r1, r0, #0 - ldr r0, _080D3BA4 - cmp r1, r0 - beq _080D3BC8 - cmp r1, r0 - bgt _080D3BA8 - subs r0, #0x79 - cmp r1, r0 - beq _080D3BBC - b _080D3BEA - .align 2, 0 -_080D3BA4: .4byte 0x00000281 -_080D3BA8: - ldr r0, _080D3BB8 - cmp r1, r0 - beq _080D3BD0 - adds r0, #1 - cmp r1, r0 - beq _080D3BE0 - b _080D3BEA - .align 2, 0 -_080D3BB8: .4byte 0x00000282 -_080D3BBC: - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #1 - bl MapGridSetMetatileIdAt - b _080D3BEA -_080D3BC8: - ldr r2, _080D3BCC - b _080D3BD2 - .align 2, 0 -_080D3BCC: .4byte 0x00000279 -_080D3BD0: - ldr r2, _080D3BDC -_080D3BD2: - adds r0, r4, #0 - adds r1, r5, #0 - bl MapGridSetMetatileIdAt - b _080D3BEA - .align 2, 0 -_080D3BDC: .4byte 0x0000027A -_080D3BE0: - ldr r2, _080D3BF0 - adds r0, r4, #0 - adds r1, r5, #0 - bl MapGridSetMetatileIdAt -_080D3BEA: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D3BF0: .4byte 0x0000027B - thumb_func_end FixLongGrassMetatilesWindowBottom - - thumb_func_start StartCutTreeFieldEffect -StartCutTreeFieldEffect: @ 0x080D3BF4 - push {lr} - movs r0, #0x80 - bl sub_080A306C - movs r0, #2 - bl FieldEffectActiveListRemove - bl EnableBothScriptContexts - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end StartCutTreeFieldEffect - - thumb_func_start ClearMailData -ClearMailData: @ 0x080D3C0C - push {r4, r5, lr} - movs r4, #0 - ldr r5, _080D3C34 -_080D3C12: - lsls r1, r4, #3 - adds r1, r1, r4 - lsls r1, r1, #2 - ldr r0, _080D3C38 - adds r1, r1, r0 - ldr r0, [r5] - adds r0, r0, r1 - bl ClearMailStruct - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xf - bls _080D3C12 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D3C34: .4byte gUnknown_3005AEC -_080D3C38: .4byte 0x00002BE0 - thumb_func_end ClearMailData - - thumb_func_start ClearMailStruct -ClearMailStruct: @ 0x080D3C3C - push {r4, r5, r6, lr} - adds r3, r0, #0 - ldr r0, _080D3C8C - adds r4, r0, #0 - adds r1, r3, #0 - movs r2, #8 -_080D3C48: - ldrh r0, [r1] - orrs r0, r4 - strh r0, [r1] - adds r1, #2 - subs r2, #1 - cmp r2, #0 - bge _080D3C48 - movs r2, #0 - adds r6, r3, #0 - adds r6, #0x1a - adds r4, r3, #0 - adds r4, #0x12 - movs r5, #0xff -_080D3C62: - adds r1, r4, r2 - ldrb r0, [r1] - orrs r0, r5 - strb r0, [r1] - adds r2, #1 - cmp r2, #7 - ble _080D3C62 - adds r1, r6, #0 - movs r2, #0 - adds r0, r1, #3 -_080D3C76: - strb r2, [r0] - subs r0, #1 - cmp r0, r1 - bge _080D3C76 - movs r1, #0 - movs r0, #1 - strh r0, [r3, #0x1e] - strh r1, [r3, #0x20] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080D3C8C: .4byte 0x0000FFFF - thumb_func_end ClearMailStruct - - thumb_func_start MonHasMail -MonHasMail: @ 0x080D3C90 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xc - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl ItemIsMail - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D3CB8 - adds r0, r4, #0 - movs r1, #0x40 - bl GetMonData - cmp r0, #0xff - beq _080D3CB8 - movs r0, #1 - b _080D3CBA -_080D3CB8: - movs r0, #0 -_080D3CBA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end MonHasMail - - thumb_func_start sub_080D3CC0 -sub_080D3CC0: @ 0x080D3CC0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - mov r8, r0 - lsls r1, r1, #0x10 - lsrs r0, r1, #0x10 - str r0, [sp, #8] - mov r0, sp - movs r2, #0 - ldrb r3, [r0, #8] - strb r3, [r0] - lsrs r1, r1, #0x18 - strb r1, [r0, #1] - add r4, sp, #4 - strb r2, [r4] - mov ip, r4 - mov sl, r4 - adds r5, r4, #0 -_080D3CEA: - ldr r2, _080D3E10 - ldr r0, [r2] - ldrb r3, [r5] - lsls r1, r3, #3 - adds r1, r1, r3 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r1, #0xb0 - lsls r1, r1, #6 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0 - beq _080D3D06 - b _080D3E2C -_080D3D06: - movs r4, #0 - ldr r3, _080D3E14 - mov sb, r3 - adds r7, r2, #0 - mov r5, ip - ldr r0, _080D3E18 - adds r6, r0, #0 -_080D3D14: - ldr r2, [r7] - lsls r3, r4, #1 - ldrb r1, [r5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r3, r3, r0 - ldr r1, _080D3E1C - adds r2, r2, r1 - adds r2, r2, r3 - ldrh r0, [r2] - orrs r0, r6 - strh r0, [r2] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #8 - bls _080D3D14 - movs r4, #0 - ldr r5, _080D3E10 - mov r3, ip -_080D3D3E: - ldr r2, [r5] - ldrb r1, [r3] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r4, r0 - ldr r1, _080D3E20 - adds r2, r2, r1 - adds r2, r2, r0 - mov r1, sb - ldr r0, [r1] - adds r0, r0, r4 - ldrb r0, [r0] - strb r0, [r2] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #6 - bls _080D3D3E - ldr r3, _080D3E10 - ldr r2, [r3] - mov r0, ip - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r4, r0 - ldr r1, _080D3E20 - adds r2, r2, r1 - adds r2, r2, r0 - movs r0, #0xff - strb r0, [r2] - movs r4, #0 - adds r5, r3, #0 - mov r3, ip -_080D3D84: - ldr r2, [r5] - ldrb r1, [r3] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r4, r0 - ldr r1, _080D3E24 - adds r2, r2, r1 - adds r2, r2, r0 - mov r1, sb - ldr r0, [r1] - adds r0, #0xa - adds r0, r0, r4 - ldrb r0, [r0] - strb r0, [r2] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _080D3D84 - mov r0, r8 - movs r1, #0xb - bl sub_0806A1B4 - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - mov r0, r8 - movs r1, #0 - bl sub_0806A1B4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_080D3E4C - ldr r1, _080D3E10 - ldr r3, [r1] - mov r4, sl - ldrb r2, [r4] - lsls r1, r2, #3 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r3, r1 - ldr r2, _080D3E28 - adds r1, r1, r2 - strh r0, [r1] - ldrb r1, [r4] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r3, r3, r0 - movs r4, #0xb0 - lsls r4, r4, #6 - adds r3, r3, r4 - mov r0, sp - ldrh r0, [r0, #8] - strh r0, [r3] - mov r0, r8 - movs r1, #0x40 - mov r2, sl - bl SetMonData - mov r0, r8 - movs r1, #0xc - mov r2, sp - bl SetMonData - mov r1, sl - ldrb r0, [r1] - b _080D3E3A - .align 2, 0 -_080D3E10: .4byte gUnknown_3005AEC -_080D3E14: .4byte gUnknown_3005AF0 -_080D3E18: .4byte 0x0000FFFF -_080D3E1C: .4byte 0x00002BE0 -_080D3E20: .4byte 0x00002BF2 -_080D3E24: .4byte 0x00002BFA -_080D3E28: .4byte 0x00002BFE -_080D3E2C: - adds r0, r3, #1 - strb r0, [r4] - ldrb r0, [r5] - cmp r0, #5 - bhi _080D3E38 - b _080D3CEA -_080D3E38: - movs r0, #0xff -_080D3E3A: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080D3CC0 - - thumb_func_start sub_080D3E4C -sub_080D3E4C: @ 0x080D3E4C - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xc9 - bne _080D3E64 - adds r0, r1, #0 - bl GetUnownLetterByPersonality - lsls r0, r0, #0x10 - ldr r1, _080D3E68 - adds r0, r0, r1 - lsrs r0, r0, #0x10 -_080D3E64: - pop {r1} - bx r1 - .align 2, 0 -_080D3E68: .4byte 0x75300000 - thumb_func_end sub_080D3E4C - - thumb_func_start MailSpeciesToSpecies -MailSpeciesToSpecies: @ 0x080D3E6C - push {lr} - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldr r0, _080D3E84 - adds r2, r3, r0 - lsls r0, r2, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x1b - bhi _080D3E88 - movs r0, #0xc9 - strh r2, [r1] - b _080D3E8A - .align 2, 0 -_080D3E84: .4byte 0xFFFF8AD0 -_080D3E88: - adds r0, r3, #0 -_080D3E8A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MailSpeciesToSpecies - - thumb_func_start GiveMailToMon2 -GiveMailToMon2: @ 0x080D3E90 - push {r4, r5, r6, r7, lr} - sub sp, #8 - adds r6, r0, #0 - adds r7, r1, #0 - ldrh r5, [r7, #0x20] - adds r1, r5, #0 - bl sub_080D3CC0 - add r4, sp, #4 - strb r0, [r4] - ldrb r2, [r4] - cmp r2, #0xff - beq _080D3EF4 - ldr r0, _080D3EEC - ldr r1, [r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r1, r1, r0 - ldr r0, _080D3EF0 - adds r1, r1, r0 - adds r0, r7, #0 - ldm r0!, {r2, r3, r7} - stm r1!, {r2, r3, r7} - ldm r0!, {r2, r3, r7} - stm r1!, {r2, r3, r7} - ldm r0!, {r2, r3, r7} - stm r1!, {r2, r3, r7} - adds r0, r6, #0 - movs r1, #0x40 - adds r2, r4, #0 - bl SetMonData - mov r0, sp - strb r5, [r0] - mov r1, sp - lsrs r0, r5, #8 - strb r0, [r1, #1] - adds r0, r6, #0 - movs r1, #0xc - mov r2, sp - bl SetMonData - ldrb r0, [r4] - b _080D3EF6 - .align 2, 0 -_080D3EEC: .4byte gUnknown_3005AEC -_080D3EF0: .4byte 0x00002BE0 -_080D3EF4: - movs r0, #0xff -_080D3EF6: - add sp, #8 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GiveMailToMon2 - - thumb_func_start sub_080D3F00 -sub_080D3F00: @ 0x080D3F00 - movs r0, #0 - bx lr - thumb_func_end sub_080D3F00 - - thumb_func_start TakeMailFromMon -TakeMailFromMon: @ 0x080D3F04 - push {r4, lr} - sub sp, #8 - adds r4, r0, #0 - bl MonHasMail - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D3F56 - adds r0, r4, #0 - movs r1, #0x40 - bl GetMonData - add r2, sp, #4 - strb r0, [r2] - ldr r0, _080D3F60 - ldr r3, [r0] - ldrb r1, [r2] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r3, r3, r0 - movs r0, #0xb0 - lsls r0, r0, #6 - adds r3, r3, r0 - movs r1, #0 - movs r0, #0 - strh r0, [r3] - movs r0, #0xff - strb r0, [r2] - mov r0, sp - strb r1, [r0] - strb r1, [r0, #1] - adds r0, r4, #0 - movs r1, #0x40 - bl SetMonData - adds r0, r4, #0 - movs r1, #0xc - mov r2, sp - bl SetMonData -_080D3F56: - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D3F60: .4byte gUnknown_3005AEC - thumb_func_end TakeMailFromMon - - thumb_func_start ClearMailItemId -ClearMailItemId: @ 0x080D3F64 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080D3F80 - ldr r2, [r1] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r2, r2, r1 - movs r0, #0xb0 - lsls r0, r0, #6 - adds r2, r2, r0 - movs r0, #0 - strh r0, [r2] - bx lr - .align 2, 0 -_080D3F80: .4byte gUnknown_3005AEC - thumb_func_end ClearMailItemId - - thumb_func_start TakeMailFromMon2 -TakeMailFromMon2: @ 0x080D3F84 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0xc - adds r5, r0, #0 - mov r0, sp - movs r1, #0 - strb r1, [r0] - strb r1, [r0, #1] - add r1, sp, #4 - movs r0, #0xff - strb r0, [r1] - movs r7, #6 - mov sb, r1 - ldr r0, _080D401C - mov r8, r0 - ldr r3, _080D4020 -_080D3FA8: - mov r1, r8 - ldr r0, [r1] - lsls r1, r7, #3 - adds r1, r1, r7 - lsls r1, r1, #2 - adds r4, r0, r1 - movs r2, #0xb0 - lsls r2, r2, #6 - adds r0, r4, r2 - ldrh r6, [r0] - cmp r6, #0 - bne _080D4024 - adds r4, r4, r3 - adds r0, r5, #0 - movs r1, #0x40 - str r3, [sp, #8] - bl GetMonData - mov r1, r8 - ldr r2, [r1] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r3, [sp, #8] - adds r1, r1, r3 - ldm r1!, {r0, r2, r3} - stm r4!, {r0, r2, r3} - ldm r1!, {r0, r2, r3} - stm r4!, {r0, r2, r3} - ldm r1!, {r0, r2, r3} - stm r4!, {r0, r2, r3} - adds r0, r5, #0 - movs r1, #0x40 - bl GetMonData - mov r1, r8 - ldr r2, [r1] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r2, r2, r1 - movs r3, #0xb0 - lsls r3, r3, #6 - adds r2, r2, r3 - strh r6, [r2] - adds r0, r5, #0 - movs r1, #0x40 - mov r2, sb - bl SetMonData - adds r0, r5, #0 - movs r1, #0xc - mov r2, sp - bl SetMonData - adds r0, r7, #0 - b _080D4030 - .align 2, 0 -_080D401C: .4byte gUnknown_3005AEC -_080D4020: .4byte 0x00002BE0 -_080D4024: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #0xf - bls _080D3FA8 - movs r0, #0xff -_080D4030: - add sp, #0xc - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end TakeMailFromMon2 - - thumb_func_start ItemIsMail -ItemIsMail: @ 0x080D4040 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x84 - bgt _080D4052 - cmp r0, #0x79 - blt _080D4052 - movs r0, #1 - b _080D4054 -_080D4052: - movs r0, #0 -_080D4054: - pop {r1} - bx r1 - thumb_func_end ItemIsMail - - thumb_func_start sub_080D4058 -sub_080D4058: @ 0x080D4058 - push {lr} - bl HideStartMenu - bl ShowMapNamePopup - movs r0, #1 - pop {r1} - bx r1 - thumb_func_end sub_080D4058 - - thumb_func_start ShowMapNamePopup -ShowMapNamePopup: @ 0x080D4068 - push {r4, lr} - movs r0, #0x80 - lsls r0, r0, #7 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080D40F0 - ldr r4, _080D40BC - adds r0, r4, #0 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080D40C8 - adds r0, r4, #0 - movs r1, #0x5a - bl CreateTask - ldr r4, _080D40C0 - strb r0, [r4] - movs r0, #0x12 - movs r1, #0x28 - bl SetGpuReg - ldr r2, _080D40C4 - ldrb r1, [r4] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r1, #6 - strh r1, [r0, #8] - ldrb r1, [r4] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r1, #0x28 - strh r1, [r0, #0xc] - b _080D40F0 - .align 2, 0 -_080D40BC: .4byte Task_MapNamePopUpWindow -_080D40C0: .4byte gUnknown_2039A74 -_080D40C4: .4byte gUnknown_3005B60 -_080D40C8: - ldr r3, _080D40F8 - ldr r2, _080D40FC - ldrb r0, [r2] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r3 - movs r4, #8 - ldrsh r0, [r1, r4] - cmp r0, #2 - beq _080D40E2 - movs r0, #2 - strh r0, [r1, #8] -_080D40E2: - ldrb r0, [r2] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r3 - movs r0, #1 - strh r0, [r1, #0xe] -_080D40F0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D40F8: .4byte gUnknown_3005B60 -_080D40FC: .4byte gUnknown_2039A74 - thumb_func_end ShowMapNamePopup - - thumb_func_start Task_MapNamePopUpWindow -Task_MapNamePopUpWindow: @ 0x080D4100 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080D4124 - adds r4, r1, r0 - movs r2, #8 - ldrsh r1, [r4, r2] - adds r3, r0, #0 - cmp r1, #6 - bhi _080D41EA - lsls r0, r1, #2 - ldr r1, _080D4128 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080D4124: .4byte gUnknown_3005B60 -_080D4128: .4byte _080D412C -_080D412C: @ jump table - .4byte _080D4162 @ case 0 - .4byte _080D418C @ case 1 - .4byte _080D41A4 @ case 2 - .4byte _080D41EA @ case 3 - .4byte _080D41D0 @ case 4 - .4byte _080D41E4 @ case 5 - .4byte _080D4148 @ case 6 -_080D4148: - ldrh r0, [r4, #0x10] - adds r0, #1 - movs r1, #0 - strh r0, [r4, #0x10] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1e - ble _080D41EA - strh r1, [r4, #8] - strh r1, [r4, #0x10] - bl DrawOptionMenuTexts - b _080D41EA -_080D4162: - ldrh r0, [r4, #0xc] - subs r0, #2 - movs r2, #0 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _080D41EA - strh r2, [r4, #0xc] - movs r0, #1 - strh r0, [r4, #8] - ldr r0, _080D4188 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r3 - strh r2, [r0, #0xa] - b _080D41EA - .align 2, 0 -_080D4188: .4byte gUnknown_2039A74 -_080D418C: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x78 - ble _080D41EA - movs r0, #0 - strh r0, [r4, #0xa] - movs r0, #2 - strh r0, [r4, #8] - b _080D41EA -_080D41A4: - ldrh r0, [r4, #0xc] - adds r0, #2 - movs r1, #0 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x27 - ble _080D41EA - movs r0, #0x28 - strh r0, [r4, #0xc] - movs r2, #0xe - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _080D41CA - movs r0, #6 - strh r0, [r4, #8] - strh r1, [r4, #0x10] - strh r1, [r4, #0xe] - b _080D41EA -_080D41CA: - movs r0, #4 - strh r0, [r4, #8] - b _080D41F2 -_080D41D0: - bl sub_0819787C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - bl sub_08197060 - movs r0, #5 - strh r0, [r4, #8] - b _080D41EA -_080D41E4: - bl HideMapNamePopUpWindow - b _080D41F2 -_080D41EA: - ldrh r1, [r4, #0xc] - movs r0, #0x12 - bl SetGpuReg -_080D41F2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end Task_MapNamePopUpWindow - - thumb_func_start HideMapNamePopUpWindow -HideMapNamePopUpWindow: @ 0x080D41F8 - push {lr} - ldr r0, _080D422C - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D4228 - bl sub_0819787C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - bl sub_08197060 - bl sub_08197888 - movs r0, #0x12 - movs r1, #0 - bl SetGpuReg - ldr r0, _080D4230 - ldrb r0, [r0] - bl DestroyTask -_080D4228: - pop {r0} - bx r0 - .align 2, 0 -_080D422C: .4byte Task_MapNamePopUpWindow -_080D4230: .4byte gUnknown_2039A74 - thumb_func_end HideMapNamePopUpWindow - - thumb_func_start DrawOptionMenuTexts -DrawOptionMenuTexts: @ 0x080D4234 - push {r4, r5, lr} - sub sp, #0x24 - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D428C - ldr r0, _080D4258 - ldrh r1, [r0, #0x12] - movs r0, #0xbd - lsls r0, r0, #1 - cmp r1, r0 - bne _080D4260 - mov r4, sp - adds r4, #0xf - ldr r0, _080D425C - ldr r1, [r0, #0x1c] - b _080D4276 - .align 2, 0 -_080D4258: .4byte gUnknown_2036FB8 -_080D425C: .4byte gUnknown_855A074 -_080D4260: - mov r4, sp - adds r4, #0xf - ldr r1, _080D4280 - ldr r0, _080D4284 - ldr r0, [r0] - ldr r2, _080D4288 - adds r0, r0, r2 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] -_080D4276: - adds r0, r4, #0 - bl StringCopy - b _080D429C - .align 2, 0 -_080D4280: .4byte gUnknown_855A074 -_080D4284: .4byte gUnknown_3005AF0 -_080D4288: .4byte 0x00000CB2 -_080D428C: - mov r4, sp - adds r4, #0xf - ldr r0, _080D42F8 - ldrb r1, [r0, #0x14] - adds r0, r4, #0 - movs r2, #0 - bl GetMapName -_080D429C: - bl AddMapNamePopUpWindow - bl LoadMapNamePopUpWindowBg - adds r0, r4, #0 - bl StringLength - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r4, #0xa - subs r4, r4, r0 - lsls r4, r4, #0x1a - lsrs r4, r4, #0x18 - add r1, sp, #0xc - movs r5, #0 - movs r0, #0xfc - strb r0, [r1] - movs r0, #2 - strb r0, [r1, #1] - adds r0, r1, #0 - strb r5, [r0, #2] - bl sub_0819787C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #4 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - str r5, [sp, #8] - movs r1, #1 - add r2, sp, #0xc - adds r3, r4, #0 - bl AddTextPrinterParameterized - bl sub_0819787C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #3 - bl CopyWindowToVram - add sp, #0x24 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D42F8: .4byte gUnknown_2036FB8 - thumb_func_end DrawOptionMenuTexts - - thumb_func_start sub_080D42FC -sub_080D42FC: @ 0x080D42FC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - ldr r4, [sp, #0x3c] - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sl, r1 - lsls r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r3, [sp, #0x10] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp, #0x14] - movs r5, #0 - lsls r0, r1, #0x18 - asrs r1, r0, #0x18 - lsrs r3, r2, #0x18 - str r3, [sp, #0xc] - movs r6, #0xff - lsls r6, r6, #0x18 - adds r6, r6, r2 - mov r8, r6 - str r0, [sp, #0x18] - subs r4, r1, #1 -_080D4338: - ldr r0, _080D4448 - adds r1, r5, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r4, #0x18 - lsrs r2, r2, #0x18 - movs r3, #1 - str r3, [sp] - str r3, [sp, #4] - movs r6, #0xe - mov sb, r6 - str r6, [sp, #8] - adds r0, r7, #0 - mov r6, r8 - lsrs r3, r6, #0x18 - bl FillBgTilemapBufferRect - adds r4, #1 - adds r5, #1 - cmp r5, #0xb - ble _080D4338 - ldr r1, _080D444C - movs r0, #1 - rsbs r0, r0, #0 - add r0, sl - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r5, #1 - str r5, [sp] - str r5, [sp, #4] - mov r2, sb - str r2, [sp, #8] - adds r0, r7, #0 - mov r2, r8 - ldr r3, [sp, #0xc] - bl FillBgTilemapBufferRect - ldr r1, _080D4450 - ldr r6, [sp, #0x10] - add r6, sl - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - str r5, [sp] - str r5, [sp, #4] - mov r3, sb - str r3, [sp, #8] - adds r0, r7, #0 - adds r2, r6, #0 - ldr r3, [sp, #0xc] - bl FillBgTilemapBufferRect - ldr r1, _080D4454 - ldr r4, [sp, #0xc] - adds r4, #1 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r5, [sp] - str r5, [sp, #4] - mov r0, sb - str r0, [sp, #8] - adds r0, r7, #0 - mov r2, r8 - adds r3, r4, #0 - bl FillBgTilemapBufferRect - movs r1, #0x8b - lsls r1, r1, #2 - str r5, [sp] - str r5, [sp, #4] - mov r2, sb - str r2, [sp, #8] - adds r0, r7, #0 - adds r2, r6, #0 - adds r3, r4, #0 - bl FillBgTilemapBufferRect - ldr r1, _080D4458 - ldr r4, [sp, #0xc] - adds r4, #2 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r5, [sp] - str r5, [sp, #4] - mov r3, sb - str r3, [sp, #8] - adds r0, r7, #0 - mov r2, r8 - adds r3, r4, #0 - bl FillBgTilemapBufferRect - ldr r1, _080D445C - str r5, [sp] - str r5, [sp, #4] - mov r0, sb - str r0, [sp, #8] - adds r0, r7, #0 - adds r2, r6, #0 - adds r3, r4, #0 - bl FillBgTilemapBufferRect - movs r5, #0 - ldr r1, [sp, #0xc] - ldr r2, [sp, #0x14] - adds r0, r1, r2 - lsls r4, r0, #0x18 - movs r6, #1 -_080D440E: - ldr r3, _080D4460 - adds r1, r5, r3 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - subs r0, r5, #1 - ldr r3, [sp, #0x18] - asrs r2, r3, #0x18 - adds r2, r2, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r6, [sp] - str r6, [sp, #4] - movs r0, #0xe - str r0, [sp, #8] - adds r0, r7, #0 - lsrs r3, r4, #0x18 - bl FillBgTilemapBufferRect - adds r5, #1 - cmp r5, #0xb - ble _080D440E - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D4448: .4byte 0x0000021D -_080D444C: .4byte 0x00000229 -_080D4450: .4byte 0x0000022A -_080D4454: .4byte 0x0000022B -_080D4458: .4byte 0x0000022D -_080D445C: .4byte 0x0000022E -_080D4460: .4byte 0x0000022F - thumb_func_end sub_080D42FC - - thumb_func_start LoadMapNamePopUpWindowBg -LoadMapNamePopUpWindowBg: @ 0x080D4464 - push {r4, r5, lr} - sub sp, #8 - bl sub_0819787C - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _080D4488 - ldrb r1, [r0, #0x14] - cmp r1, #0x57 - bls _080D448E - cmp r1, #0xc4 - bls _080D448C - adds r0, r1, #0 - subs r0, #0x6d - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - b _080D448E - .align 2, 0 -_080D4488: .4byte gUnknown_2036FB8 -_080D448C: - movs r1, #0 -_080D448E: - ldr r0, _080D44D8 - adds r0, r1, r0 - ldrb r4, [r0] - adds r0, r5, #0 - movs r1, #0 - bl GetWindowAttribute - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r4, #4 - subs r1, r1, r4 - lsls r1, r1, #6 - ldr r2, _080D44DC - adds r1, r1, r2 - movs r2, #0x80 - lsls r2, r2, #3 - ldr r3, _080D44E0 - bl LoadBgTiles - ldr r1, _080D44E4 - adds r0, r5, #0 - bl CallWindowFunction - adds r0, r5, #0 - bl PutWindowTilemap - ldr r0, _080D44E8 - ldrb r0, [r0, #0x16] - cmp r0, #0xe - bne _080D44F0 - ldr r0, _080D44EC - movs r1, #0xe0 - movs r2, #0x20 - bl LoadPalette - b _080D44FE - .align 2, 0 -_080D44D8: .4byte gUnknown_8559FC0 -_080D44DC: .4byte gUnknown_8558860 -_080D44E0: .4byte 0x0000021D -_080D44E4: .4byte sub_080D42FC -_080D44E8: .4byte gUnknown_2036FB8 -_080D44EC: .4byte gUnknown_8559FA0 -_080D44F0: - lsls r0, r4, #5 - ldr r1, _080D4524 - adds r0, r0, r1 - movs r1, #0xe0 - movs r2, #0x20 - bl LoadPalette -_080D44FE: - lsls r1, r4, #4 - subs r1, r1, r4 - lsls r1, r1, #6 - ldr r0, _080D4528 - adds r1, r1, r0 - movs r0, #0x50 - str r0, [sp] - movs r0, #0x18 - str r0, [sp, #4] - adds r0, r5, #0 - movs r2, #0 - movs r3, #0 - bl BlitBitmapToWindow - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D4524: .4byte gUnknown_8559EE0 -_080D4528: .4byte gUnknown_85571E0 - thumb_func_end LoadMapNamePopUpWindowBg - - thumb_func_start RemoveBagSprite -RemoveBagSprite: @ 0x080D452C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080D4578 - ldr r2, _080D457C - adds r1, r4, r2 - ldr r0, [r0] - adds r5, r0, r1 - ldrb r0, [r5] - cmp r0, #0xff - beq _080D4572 - adds r4, #0x64 - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl FreeSpritePaletteByTag - ldrb r1, [r5] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _080D4580 - adds r0, r0, r4 - bl FreeSpriteOamMatrix - ldrb r1, [r5] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - movs r0, #0xff - strb r0, [r5] -_080D4572: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D4578: .4byte gUnknown_203CB20 -_080D457C: .4byte 0x00000804 -_080D4580: .4byte gUnknown_20205AC - thumb_func_end RemoveBagSprite - - thumb_func_start AddBagVisualSprite -AddBagVisualSprite: @ 0x080D4584 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _080D45B0 - ldr r4, [r0] - ldr r0, _080D45B4 - adds r4, r4, r0 - ldr r0, _080D45B8 - movs r1, #0x44 - movs r2, #0x42 - movs r3, #0 - bl CreateSprite - strb r0, [r4] - adds r0, r5, #0 - movs r1, #0 - bl SetBagVisualPocketId - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D45B0: .4byte gUnknown_203CB20 -_080D45B4: .4byte 0x00000804 -_080D45B8: .4byte gUnknown_855A67C - thumb_func_end AddBagVisualSprite - - thumb_func_start SetBagVisualPocketId -SetBagVisualPocketId: @ 0x080D45BC - push {lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r1, r1, #0x18 - ldr r0, _080D45F4 - ldr r0, [r0] - ldr r2, _080D45F8 - adds r0, r0, r2 - ldrb r2, [r0] - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _080D45FC - adds r2, r0, r2 - cmp r1, #0 - beq _080D4608 - ldr r0, _080D4600 - strh r0, [r2, #0x26] - ldr r0, _080D4604 - str r0, [r2, #0x1c] - adds r0, r3, #1 - strh r0, [r2, #0x2e] - adds r0, r2, #0 - movs r1, #0 - bl StartSpriteAnim - b _080D4614 - .align 2, 0 -_080D45F4: .4byte gUnknown_203CB20 -_080D45F8: .4byte 0x00000804 -_080D45FC: .4byte gUnknown_20205AC -_080D4600: .4byte 0x0000FFFB -_080D4604: .4byte SpriteCB_BagVisualSwitchingPockets -_080D4608: - adds r1, r3, #1 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r2, #0 - bl StartSpriteAnim -_080D4614: - pop {r0} - bx r0 - thumb_func_end SetBagVisualPocketId - - thumb_func_start SpriteCB_BagVisualSwitchingPockets -SpriteCB_BagVisualSwitchingPockets: @ 0x080D4618 - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x26] - movs r2, #0x26 - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _080D462C - adds r0, r1, #1 - strh r0, [r4, #0x26] - b _080D463C -_080D462C: - ldrh r1, [r4, #0x2e] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim - ldr r0, _080D4644 - str r0, [r4, #0x1c] -_080D463C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D4644: .4byte sub_08007140 - thumb_func_end SpriteCB_BagVisualSwitchingPockets - - thumb_func_start ShakeBagVisual -ShakeBagVisual: @ 0x080D4648 - push {r4, lr} - ldr r0, _080D4680 - ldr r0, [r0] - ldr r1, _080D4684 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080D4688 - adds r4, r0, r1 - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080D4678 - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAffineAnim - ldr r0, _080D468C - str r0, [r4, #0x1c] -_080D4678: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D4680: .4byte gUnknown_203CB20 -_080D4684: .4byte 0x00000804 -_080D4688: .4byte gUnknown_20205AC -_080D468C: .4byte SpriteCB_ShakeBagVisual - thumb_func_end ShakeBagVisual - - thumb_func_start SpriteCB_ShakeBagVisual -SpriteCB_ShakeBagVisual: @ 0x080D4690 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080D46AC - adds r0, r4, #0 - movs r1, #0 - bl StartSpriteAffineAnim - ldr r0, _080D46B4 - str r0, [r4, #0x1c] -_080D46AC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D46B4: .4byte sub_08007140 - thumb_func_end SpriteCB_ShakeBagVisual - - thumb_func_start AddSwitchPocketRotatingBallSprite -AddSwitchPocketRotatingBallSprite: @ 0x080D46B8 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - ldr r0, _080D46F8 - ldr r4, [r0] - ldr r0, _080D46FC - adds r4, r4, r0 - ldr r0, _080D4700 - bl LoadSpriteSheet - ldr r0, _080D4704 - bl LoadSpritePalette - ldr r0, _080D4708 - movs r1, #0x10 - movs r2, #0x10 - movs r3, #0 - bl CreateSprite - strb r0, [r4] - ldr r2, _080D470C - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r5, [r0, #0x2e] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D46F8: .4byte gUnknown_203CB20 -_080D46FC: .4byte 0x00000805 -_080D4700: .4byte gUnknown_855A6D0 -_080D4704: .4byte gUnknown_855A6D8 -_080D4708: .4byte gUnknown_855A6E0 -_080D470C: .4byte gUnknown_20205AC - thumb_func_end AddSwitchPocketRotatingBallSprite - - thumb_func_start UpdateSwitchPocketRotatingBallCoords -UpdateSwitchPocketRotatingBallCoords: @ 0x080D4710 - ldrh r2, [r0, #0x30] - ldrh r1, [r0, #0x34] - adds r1, #1 - movs r3, #1 - ands r1, r3 - subs r2, r2, r1 - adds r1, r0, #0 - adds r1, #0x28 - strb r2, [r1] - ldrh r2, [r0, #0x30] - ldrh r1, [r0, #0x34] - adds r1, #1 - ands r1, r3 - subs r2, r2, r1 - adds r0, #0x29 - strb r2, [r0] - bx lr - .align 2, 0 - thumb_func_end UpdateSwitchPocketRotatingBallCoords - - thumb_func_start SpriteCB_SwitchPocketRotatingBallInit -SpriteCB_SwitchPocketRotatingBallInit: @ 0x080D4734 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #1] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #1] - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _080D475C - ldr r0, _080D4758 - b _080D475E - .align 2, 0 -_080D4758: .4byte gUnknown_855A6C8 -_080D475C: - ldr r0, _080D4790 -_080D475E: - str r0, [r4, #0x10] - adds r0, r4, #0 - bl InitSpriteAffineAnim - adds r0, r4, #0 - adds r0, #0x28 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - strh r0, [r4, #0x30] - adds r0, r4, #0 - adds r0, #0x29 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - strh r0, [r4, #0x30] - adds r0, r4, #0 - bl UpdateSwitchPocketRotatingBallCoords - ldr r0, _080D4794 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D4790: .4byte gUnknown_855A6CC -_080D4794: .4byte SpriteCB_SwitchPocketRotatingBallContinue - thumb_func_end SpriteCB_SwitchPocketRotatingBallInit - - thumb_func_start SpriteCB_SwitchPocketRotatingBallContinue -SpriteCB_SwitchPocketRotatingBallContinue: @ 0x080D4798 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x34] - adds r0, #1 - strh r0, [r4, #0x34] - adds r0, r4, #0 - bl UpdateSwitchPocketRotatingBallCoords - movs r1, #0x34 - ldrsh r0, [r4, r1] - cmp r0, #0x10 - bne _080D47B6 - movs r0, #1 - bl RemoveBagSprite -_080D47B6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end SpriteCB_SwitchPocketRotatingBallContinue - - thumb_func_start AddBagItemIconSprite -AddBagItemIconSprite: @ 0x080D47BC - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - ldr r0, _080D4810 - ldr r2, _080D4814 - adds r1, r4, r2 - ldr r0, [r0] - adds r5, r0, r1 - ldrb r0, [r5] - cmp r0, #0xff - bne _080D480A - adds r4, #0x66 - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl FreeSpritePaletteByTag - adds r0, r4, #0 - adds r1, r4, #0 - adds r2, r6, #0 - bl AddItemIconSprite - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x40 - beq _080D480A - strb r2, [r5] - ldr r1, _080D4818 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - movs r1, #0x18 - strh r1, [r0, #0x24] - movs r1, #0x58 - strh r1, [r0, #0x26] -_080D480A: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080D4810: .4byte gUnknown_203CB20 -_080D4814: .4byte 0x00000806 -_080D4818: .4byte gUnknown_20205AC - thumb_func_end AddBagItemIconSprite - - thumb_func_start RemoveBagItemIconSprite -RemoveBagItemIconSprite: @ 0x080D481C - push {lr} - lsls r0, r0, #0x18 - movs r1, #0x80 - lsls r1, r1, #0x12 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - bl RemoveBagSprite - pop {r0} - bx r0 - thumb_func_end RemoveBagItemIconSprite - - thumb_func_start sub_080D4830 -sub_080D4830: @ 0x080D4830 - push {lr} - ldr r0, _080D4844 - ldr r0, [r0] - ldr r1, _080D4848 - adds r0, r0, r1 - movs r1, #8 - bl sub_08122350 - pop {r0} - bx r0 - .align 2, 0 -_080D4844: .4byte gUnknown_203CB20 -_080D4848: .4byte 0x00000808 - thumb_func_end sub_080D4830 - - thumb_func_start sub_080D484C -sub_080D484C: @ 0x080D484C - push {lr} - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r0, _080D4868 - ldr r0, [r0] - ldr r1, _080D486C - adds r0, r0, r1 - movs r1, #8 - bl sub_08122408 - pop {r0} - bx r0 - .align 2, 0 -_080D4868: .4byte gUnknown_203CB20 -_080D486C: .4byte 0x00000808 - thumb_func_end sub_080D484C - - thumb_func_start sub_080D4870 -sub_080D4870: @ 0x080D4870 - push {lr} - adds r3, r0, #0 - lsls r3, r3, #0x18 - ldr r0, _080D4894 - ldr r0, [r0] - ldr r1, _080D4898 - adds r0, r0, r1 - lsrs r3, r3, #4 - movs r1, #0x80 - lsls r1, r1, #0xd - adds r3, r3, r1 - lsrs r3, r3, #0x10 - movs r1, #0x88 - movs r2, #0x78 - bl sub_08122454 - pop {r0} - bx r0 - .align 2, 0 -_080D4894: .4byte gUnknown_203CB20 -_080D4898: .4byte 0x00000808 - thumb_func_end sub_080D4870 - - thumb_func_start sub_080D489C -sub_080D489C: @ 0x080D489C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - adds r4, r1, #0 - movs r2, #0x80 - lsls r2, r2, #4 - adds r0, r4, #0 - movs r1, #0 - bl memset - movs r0, #0x80 - lsls r0, r0, #1 - adds r4, r4, r0 - movs r7, #0 -_080D48BA: - adds r4, #0x20 - movs r5, #0 - adds r1, r7, #1 - mov r8, r1 -_080D48C2: - adds r0, r4, #0 - adds r1, r6, #0 - movs r2, #0x20 - bl memcpy - adds r4, #0x20 - adds r6, #0x20 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #5 - bls _080D48C2 - cmp r7, #5 - beq _080D48E0 - adds r4, #0x20 -_080D48E0: - mov r1, r8 - lsls r0, r1, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #5 - bls _080D48BA - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_080D489C - - thumb_func_start LoadBerryGfx -LoadBerryGfx: @ 0x080D48F4 - push {r4, r5, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r4, r0, #0 - cmp r4, #0x2a - bne _080D4906 - bl IsEnigmaBerryValid -_080D4906: - ldr r5, _080D4944 - lsls r4, r4, #3 - adds r0, r5, #4 - adds r0, r4, r0 - ldr r0, [r0] - str r0, [sp] - ldr r1, _080D4948 - ldr r0, [sp, #4] - ands r0, r1 - ldr r1, _080D494C - orrs r0, r1 - str r0, [sp, #4] - mov r0, sp - bl LoadCompressedSpritePalette - adds r4, r4, r5 - ldr r0, [r4] - ldr r4, _080D4950 - adds r1, r4, #0 - bl sub_08034370 - ldr r0, _080D4954 - adds r1, r4, r0 - adds r0, r4, #0 - bl sub_080D489C - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D4944: .4byte gUnknown_855A7C4 -_080D4948: .4byte 0xFFFF0000 -_080D494C: .4byte 0x00007544 -_080D4950: .4byte gUnknown_201D000 -_080D4954: .4byte 0xFFFFF000 - thumb_func_end LoadBerryGfx - - thumb_func_start CreateBerryTagSprite -CreateBerryTagSprite: @ 0x080D4958 - push {r4, r5, lr} - adds r4, r1, #0 - adds r5, r2, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - bl LoadBerryGfx - ldr r0, _080D498C - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - adds r1, r4, #0 - adds r2, r5, #0 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080D498C: .4byte gUnknown_855A71C - thumb_func_end CreateBerryTagSprite - - thumb_func_start FreeBerryTagSpritePalette -FreeBerryTagSpritePalette: @ 0x080D4990 - push {lr} - ldr r0, _080D499C - bl FreeSpritePaletteByTag - pop {r0} - bx r0 - .align 2, 0 -_080D499C: .4byte 0x00007544 - thumb_func_end FreeBerryTagSpritePalette - - thumb_func_start LoadSpinningBerryPicGfx -LoadSpinningBerryPicGfx: @ 0x080D49A0 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - mov r8, r3 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov r0, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r0, _080D4A04 - bl FreeSpritePaletteByTag - adds r0, r4, #0 - bl LoadBerryGfx - ldr r0, _080D4A08 - adds r1, r5, #0 - adds r2, r6, #0 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r4, r1, #0 - mov r0, r8 - cmp r0, #1 - bne _080D49F6 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080D4A0C - adds r0, r0, r1 - movs r1, #1 - bl StartSpriteAffineAnim -_080D49F6: - adds r0, r4, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080D4A04: .4byte 0x00007544 -_080D4A08: .4byte gUnknown_855A7AC -_080D4A0C: .4byte gUnknown_20205AC - thumb_func_end LoadSpinningBerryPicGfx - - thumb_func_start CreateBerryFlavorCircleSprite -CreateBerryFlavorCircleSprite: @ 0x080D4A10 - push {lr} - adds r1, r0, #0 - ldr r0, _080D4A2C - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r2, #0x63 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_080D4A2C: .4byte gUnknown_855A940 - thumb_func_end CreateBerryFlavorCircleSprite - - thumb_func_start AnimTask_ShakeMon -AnimTask_ShakeMon: @ 0x080D4A30 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r4, _080D4A50 - ldrb r0, [r4] - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xff - bne _080D4A54 - adds r0, r5, #0 - bl DestroyAnimVisualTask - b _080D4A90 - .align 2, 0 -_080D4A50: .4byte gUnknown_20380BE -_080D4A54: - ldr r1, _080D4A98 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r1, [r4, #2] - strh r1, [r0, #0x24] - ldrh r1, [r4, #4] - strh r1, [r0, #0x26] - ldr r1, _080D4A9C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r2, [r0, #8] - ldrh r1, [r4, #6] - strh r1, [r0, #0xa] - ldrh r1, [r4, #8] - strh r1, [r0, #0xc] - ldrh r1, [r4, #8] - strh r1, [r0, #0xe] - ldrh r1, [r4, #2] - strh r1, [r0, #0x10] - ldrh r1, [r4, #4] - strh r1, [r0, #0x12] - ldr r1, _080D4AA0 - str r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 -_080D4A90: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D4A98: .4byte gUnknown_20205AC -_080D4A9C: .4byte gUnknown_3005B60 -_080D4AA0: .4byte AnimTask_ShakeMonStep - thumb_func_end AnimTask_ShakeMon - - thumb_func_start AnimTask_ShakeMonStep -AnimTask_ShakeMonStep: @ 0x080D4AA4 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _080D4AE0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r3, r0, r1 - ldrh r0, [r3, #0xe] - movs r2, #0xe - ldrsh r5, [r3, r2] - adds r7, r1, #0 - cmp r5, #0 - bne _080D4B4A - ldr r2, _080D4AE4 - movs r6, #8 - ldrsh r1, [r3, r6] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r2 - movs r6, #0x24 - ldrsh r0, [r1, r6] - adds r6, r2, #0 - cmp r0, #0 - bne _080D4AE8 - ldrh r0, [r3, #0x10] - strh r0, [r1, #0x24] - b _080D4AEA - .align 2, 0 -_080D4AE0: .4byte gUnknown_3005B60 -_080D4AE4: .4byte gUnknown_20205AC -_080D4AE8: - strh r5, [r1, #0x24] -_080D4AEA: - lsls r2, r4, #2 - adds r0, r2, r4 - lsls r0, r0, #3 - adds r3, r0, r7 - movs r0, #8 - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r6 - movs r5, #0x26 - ldrsh r0, [r1, r5] - cmp r0, #0 - bne _080D4B0A - ldrh r0, [r3, #0x12] - b _080D4B0C -_080D4B0A: - movs r0, #0 -_080D4B0C: - strh r0, [r1, #0x26] - adds r0, r2, r4 - lsls r0, r0, #3 - adds r2, r0, r7 - ldrh r0, [r2, #0xc] - strh r0, [r2, #0xe] - ldrh r0, [r2, #0xa] - subs r0, #1 - strh r0, [r2, #0xa] - lsls r0, r0, #0x10 - asrs r3, r0, #0x10 - cmp r3, #0 - bne _080D4B4E - movs r0, #8 - ldrsh r1, [r2, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - strh r3, [r0, #0x24] - movs r5, #8 - ldrsh r1, [r2, r5] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - strh r3, [r0, #0x26] - adds r0, r4, #0 - bl DestroyAnimVisualTask - b _080D4B4E -_080D4B4A: - subs r0, #1 - strh r0, [r3, #0xe] -_080D4B4E: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end AnimTask_ShakeMonStep - - thumb_func_start AnimTask_ShakeMon2 -AnimTask_ShakeMon2: @ 0x080D4B54 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r6, #0 - ldr r2, _080D4B7C - ldrh r0, [r2] - movs r3, #0 - ldrsh r1, [r2, r3] - cmp r1, #3 - bgt _080D4B80 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0xff - bne _080D4BD6 - b _080D4BDA - .align 2, 0 -_080D4B7C: .4byte gUnknown_20380BE -_080D4B80: - cmp r1, #8 - beq _080D4BCC - movs r1, #0 - ldrsh r0, [r2, r1] - cmp r0, #5 - beq _080D4BA0 - cmp r0, #5 - bgt _080D4B96 - cmp r0, #4 - beq _080D4B9C - b _080D4BA8 -_080D4B96: - cmp r0, #6 - beq _080D4BA4 - b _080D4BA8 -_080D4B9C: - movs r0, #0 - b _080D4BAA -_080D4BA0: - movs r0, #2 - b _080D4BAA -_080D4BA4: - movs r0, #1 - b _080D4BAA -_080D4BA8: - movs r0, #3 -_080D4BAA: - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080D4BC0 - movs r6, #1 -_080D4BC0: - ldr r0, _080D4BC8 - adds r0, r4, r0 - b _080D4BD4 - .align 2, 0 -_080D4BC8: .4byte gUnknown_2023E88 -_080D4BCC: - ldr r1, _080D4BE4 - ldr r0, _080D4BE8 - ldrb r0, [r0] - adds r0, r0, r1 -_080D4BD4: - ldrb r3, [r0] -_080D4BD6: - cmp r6, #0 - beq _080D4BEC -_080D4BDA: - adds r0, r5, #0 - bl DestroyAnimVisualTask - b _080D4C2A - .align 2, 0 -_080D4BE4: .4byte gUnknown_2023E88 -_080D4BE8: .4byte gUnknown_20380D6 -_080D4BEC: - ldr r1, _080D4C30 - lsls r0, r3, #4 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r2, _080D4C34 - ldrh r1, [r2, #2] - strh r1, [r0, #0x24] - ldrh r1, [r2, #4] - strh r1, [r0, #0x26] - ldr r1, _080D4C38 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r3, [r0, #8] - ldrh r1, [r2, #6] - strh r1, [r0, #0xa] - ldrh r1, [r2, #8] - strh r1, [r0, #0xc] - ldrh r1, [r2, #8] - strh r1, [r0, #0xe] - ldrh r1, [r2, #2] - strh r1, [r0, #0x10] - ldrh r1, [r2, #4] - strh r1, [r0, #0x12] - ldr r1, _080D4C3C - str r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 -_080D4C2A: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080D4C30: .4byte gUnknown_20205AC -_080D4C34: .4byte gUnknown_20380BE -_080D4C38: .4byte gUnknown_3005B60 -_080D4C3C: .4byte AnimTask_ShakeMon2Step - thumb_func_end AnimTask_ShakeMon2 - - thumb_func_start AnimTask_ShakeMon2Step -AnimTask_ShakeMon2Step: @ 0x080D4C40 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _080D4C84 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r3, r0, r1 - ldrh r2, [r3, #0xe] - movs r4, #0xe - ldrsh r0, [r3, r4] - mov ip, r1 - cmp r0, #0 - bne _080D4CF8 - ldr r2, _080D4C88 - movs r7, #8 - ldrsh r1, [r3, r7] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, r0, r2 - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldrh r5, [r3, #0x10] - movs r7, #0x10 - ldrsh r0, [r3, r7] - adds r7, r2, #0 - cmp r1, r0 - bne _080D4C8C - rsbs r0, r5, #0 - strh r0, [r4, #0x24] - b _080D4C8E - .align 2, 0 -_080D4C84: .4byte gUnknown_3005B60 -_080D4C88: .4byte gUnknown_20205AC -_080D4C8C: - strh r5, [r4, #0x24] -_080D4C8E: - lsls r3, r6, #2 - adds r1, r3, r6 - lsls r1, r1, #3 - add r1, ip - movs r0, #8 - ldrsh r2, [r1, r0] - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r4, r0, r7 - movs r0, #0x26 - ldrsh r2, [r4, r0] - mov r8, r2 - ldrh r5, [r1, #0x12] - movs r2, #0x12 - ldrsh r0, [r1, r2] - cmp r8, r0 - bne _080D4CB8 - rsbs r0, r5, #0 - strh r0, [r4, #0x26] - b _080D4CBA -_080D4CB8: - strh r5, [r4, #0x26] -_080D4CBA: - adds r0, r3, r6 - lsls r0, r0, #3 - mov r4, ip - adds r3, r0, r4 - ldrh r0, [r3, #0xc] - strh r0, [r3, #0xe] - ldrh r0, [r3, #0xa] - subs r0, #1 - strh r0, [r3, #0xa] - lsls r0, r0, #0x10 - asrs r2, r0, #0x10 - cmp r2, #0 - bne _080D4CFC - movs r0, #8 - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r2, [r0, #0x24] - movs r4, #8 - ldrsh r1, [r3, r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r2, [r0, #0x26] - adds r0, r6, #0 - bl DestroyAnimVisualTask - b _080D4CFC -_080D4CF8: - subs r0, r2, #1 - strh r0, [r3, #0xe] -_080D4CFC: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AnimTask_ShakeMon2Step - - thumb_func_start AnimTask_ShakeMonInPlace -AnimTask_ShakeMonInPlace: @ 0x080D4D08 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r4, _080D4D28 - ldrb r0, [r4] - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0xff - bne _080D4D2C - adds r0, r5, #0 - bl DestroyAnimVisualTask - b _080D4D7A - .align 2, 0 -_080D4D28: .4byte gUnknown_20380BE -_080D4D2C: - ldr r0, _080D4D80 - lsls r1, r3, #4 - adds r1, r1, r3 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r0, [r4, #2] - ldrh r2, [r1, #0x24] - adds r0, r0, r2 - movs r2, #0 - strh r0, [r1, #0x24] - ldrh r0, [r4, #4] - ldrh r6, [r1, #0x26] - adds r0, r0, r6 - strh r0, [r1, #0x26] - ldr r0, _080D4D84 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - strh r3, [r1, #8] - strh r2, [r1, #0xa] - ldrh r0, [r4, #6] - strh r0, [r1, #0xc] - strh r2, [r1, #0xe] - ldrh r0, [r4, #8] - strh r0, [r1, #0x10] - movs r2, #2 - ldrsh r0, [r4, r2] - lsls r0, r0, #1 - strh r0, [r1, #0x12] - movs r6, #4 - ldrsh r0, [r4, r6] - lsls r0, r0, #1 - strh r0, [r1, #0x14] - ldr r2, _080D4D88 - str r2, [r1] - adds r0, r5, #0 - bl _call_via_r2 -_080D4D7A: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080D4D80: .4byte gUnknown_20205AC -_080D4D84: .4byte gUnknown_3005B60 -_080D4D88: .4byte AnimTask_ShakeMonInPlaceStep - thumb_func_end AnimTask_ShakeMonInPlace - - thumb_func_start AnimTask_ShakeMonInPlaceStep -AnimTask_ShakeMonInPlaceStep: @ 0x080D4D8C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _080D4DE4 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrh r2, [r4, #0xe] - movs r3, #0xe - ldrsh r0, [r4, r3] - adds r6, r1, #0 - cmp r0, #0 - beq _080D4DAA - b _080D4EBC -_080D4DAA: - ldrh r1, [r4, #0xa] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080D4DEC - ldr r2, _080D4DE8 - movs r0, #8 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r4, #0x12] - ldrh r3, [r0, #0x24] - adds r1, r1, r3 - strh r1, [r0, #0x24] - movs r0, #8 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r4, #0x14] - ldrh r3, [r0, #0x26] - adds r1, r1, r3 - strh r1, [r0, #0x26] - adds r3, r2, #0 - b _080D4E16 - .align 2, 0 -_080D4DE4: .4byte gUnknown_3005B60 -_080D4DE8: .4byte gUnknown_20205AC -_080D4DEC: - ldr r3, _080D4E78 - movs r0, #8 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r0, #0x24] - ldrh r2, [r4, #0x12] - subs r1, r1, r2 - strh r1, [r0, #0x24] - movs r2, #8 - ldrsh r1, [r4, r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r0, #0x26] - ldrh r2, [r4, #0x14] - subs r1, r1, r2 - strh r1, [r0, #0x26] -_080D4E16: - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r6 - ldrh r0, [r4, #0x10] - strh r0, [r4, #0xe] - ldrh r0, [r4, #0xa] - adds r2, r0, #1 - strh r2, [r4, #0xa] - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - movs r6, #0xc - ldrsh r1, [r4, r6] - cmp r0, r1 - blt _080D4EC0 - movs r0, #1 - ands r2, r0 - cmp r2, #0 - beq _080D4E7C - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - movs r2, #0x12 - ldrsh r0, [r4, r2] - lsrs r2, r0, #0x1f - adds r0, r0, r2 - asrs r0, r0, #1 - ldrh r6, [r1, #0x24] - adds r0, r0, r6 - strh r0, [r1, #0x24] - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - movs r2, #0x14 - ldrsh r0, [r4, r2] - lsrs r2, r0, #0x1f - adds r0, r0, r2 - asrs r0, r0, #1 - ldrh r3, [r1, #0x26] - adds r0, r0, r3 - strh r0, [r1, #0x26] - b _080D4EB4 - .align 2, 0 -_080D4E78: .4byte gUnknown_20205AC -_080D4E7C: - movs r6, #8 - ldrsh r0, [r4, r6] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r3 - movs r0, #0x12 - ldrsh r1, [r4, r0] - lsrs r0, r1, #0x1f - adds r1, r1, r0 - asrs r1, r1, #1 - ldrh r0, [r2, #0x24] - subs r0, r0, r1 - strh r0, [r2, #0x24] - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r3 - movs r3, #0x14 - ldrsh r1, [r4, r3] - lsrs r0, r1, #0x1f - adds r1, r1, r0 - asrs r1, r1, #1 - ldrh r0, [r2, #0x26] - subs r0, r0, r1 - strh r0, [r2, #0x26] -_080D4EB4: - adds r0, r5, #0 - bl DestroyAnimVisualTask - b _080D4EC0 -_080D4EBC: - subs r0, r2, #1 - strh r0, [r4, #0xe] -_080D4EC0: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AnimTask_ShakeMonInPlaceStep - - thumb_func_start AnimTask_ShakeAndSinkMon -AnimTask_ShakeAndSinkMon: @ 0x080D4EC8 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r5, _080D4F18 - ldrb r0, [r5] - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080D4F1C - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r2, [r5, #2] - strh r2, [r1, #0x24] - ldr r2, _080D4F20 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r0, [r1, #8] - ldrh r0, [r5, #2] - strh r0, [r1, #0xa] - ldrh r0, [r5, #4] - strh r0, [r1, #0xc] - ldrh r0, [r5, #6] - strh r0, [r1, #0xe] - ldrh r0, [r5, #8] - strh r0, [r1, #0x10] - ldr r2, _080D4F24 - str r2, [r1] - adds r0, r4, #0 - bl _call_via_r2 - thumb_func_end AnimTask_ShakeAndSinkMon - - thumb_func_start sub_080D4F10 -sub_080D4F10: @ 0x080D4F10 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D4F18: .4byte gUnknown_20380BE -_080D4F1C: .4byte gUnknown_20205AC -_080D4F20: .4byte gUnknown_3005B60 -_080D4F24: .4byte AnimTask_ShakeAndSinkMonStep - thumb_func_end sub_080D4F10 - - thumb_func_start AnimTask_ShakeAndSinkMonStep -AnimTask_ShakeAndSinkMonStep: @ 0x080D4F28 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r2, _080D4FB4 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r3, r0, r2 - ldrb r5, [r3, #8] - ldrh r4, [r3, #0xa] - ldrh r1, [r3, #0x18] - adds r0, r1, #1 - strh r0, [r3, #0x18] - movs r7, #0xc - ldrsh r0, [r3, r7] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - mov ip, r2 - ldr r7, _080D4FB8 - cmp r0, r1 - bne _080D4F7A - movs r0, #0 - strh r0, [r3, #0x18] - lsls r0, r5, #4 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r1, r0, r7 - ldrh r3, [r1, #0x24] - movs r0, #0x24 - ldrsh r2, [r1, r0] - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - cmp r2, r0 - bne _080D4F72 - rsbs r0, r2, #0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_080D4F72: - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - adds r0, r0, r3 - strh r0, [r1, #0x24] -_080D4F7A: - lsls r2, r6, #2 - adds r2, r2, r6 - lsls r2, r2, #3 - add r2, ip - strh r4, [r2, #0xa] - ldrh r1, [r2, #0xe] - ldrh r0, [r2, #0x1a] - adds r1, r1, r0 - strh r1, [r2, #0x1a] - lsls r0, r5, #4 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r7 - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - strh r1, [r0, #0x26] - ldrh r0, [r2, #0x10] - subs r0, #1 - strh r0, [r2, #0x10] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080D4FAC - adds r0, r6, #0 - bl DestroyAnimVisualTask -_080D4FAC: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D4FB4: .4byte gUnknown_3005B60 -_080D4FB8: .4byte gUnknown_20205AC - thumb_func_end AnimTask_ShakeAndSinkMonStep - - thumb_func_start AnimTask_TranslateMonElliptical -AnimTask_TranslateMonElliptical: @ 0x080D4FBC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r6, #1 - ldr r4, _080D5030 - ldrb r0, [r4] - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #5 - ble _080D4FE0 - movs r0, #5 - strh r0, [r4, #8] -_080D4FE0: - movs r1, #0 - movs r2, #8 - ldrsh r0, [r4, r2] - adds r3, r4, #0 - ldr r2, _080D5034 - mov ip, r2 - lsls r4, r5, #2 - ldr r2, _080D5038 - mov r8, r2 - cmp r1, r0 - bge _080D5006 - adds r2, r0, #0 -_080D4FF8: - lsls r0, r6, #0x19 - lsrs r6, r0, #0x18 - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, r2 - blt _080D4FF8 -_080D5006: - adds r0, r4, r5 - lsls r0, r0, #3 - add r0, ip - strh r7, [r0, #8] - ldrh r1, [r3, #2] - strh r1, [r0, #0xa] - ldrh r1, [r3, #4] - strh r1, [r0, #0xc] - ldrh r1, [r3, #6] - strh r1, [r0, #0xe] - strh r6, [r0, #0x10] - mov r1, r8 - str r1, [r0] - adds r0, r5, #0 - bl _call_via_r8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D5030: .4byte gUnknown_20380BE -_080D5034: .4byte gUnknown_3005B60 -_080D5038: .4byte sub_080D503C - thumb_func_end AnimTask_TranslateMonElliptical - - thumb_func_start sub_080D503C -sub_080D503C: @ 0x080D503C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r6, r0, #0 - ldr r1, _080D50AC - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r5, r0, r1 - ldrb r4, [r5, #8] - movs r1, #0x12 - ldrsh r0, [r5, r1] - movs r2, #0xa - ldrsh r1, [r5, r2] - bl Sin - ldr r2, _080D50B0 - lsls r1, r4, #4 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r4, r1, r2 - strh r0, [r4, #0x24] - movs r1, #0x12 - ldrsh r0, [r5, r1] - movs r2, #0xc - ldrsh r1, [r5, r2] - bl Cos - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - ldrh r1, [r5, #0xc] - adds r0, r0, r1 - strh r0, [r4, #0x26] - ldrh r0, [r5, #0x10] - ldrh r1, [r5, #0x12] - adds r0, r0, r1 - movs r1, #0xff - ands r0, r1 - strh r0, [r5, #0x12] - cmp r0, #0 - bne _080D5094 - ldrh r0, [r5, #0xe] - subs r0, #1 - strh r0, [r5, #0xe] -_080D5094: - movs r2, #0xe - ldrsh r0, [r5, r2] - cmp r0, #0 - bne _080D50A6 - strh r0, [r4, #0x24] - strh r0, [r4, #0x26] - adds r0, r6, #0 - bl DestroyAnimVisualTask -_080D50A6: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080D50AC: .4byte gUnknown_3005B60 -_080D50B0: .4byte gUnknown_20205AC - thumb_func_end sub_080D503C - - thumb_func_start AnimTask_TranslateMonEllipticalRespectSide -AnimTask_TranslateMonEllipticalRespectSide: @ 0x080D50B4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080D50DC - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D50D0 - ldr r1, _080D50E0 - ldrh r0, [r1, #2] - rsbs r0, r0, #0 - strh r0, [r1, #2] -_080D50D0: - adds r0, r4, #0 - bl AnimTask_TranslateMonElliptical - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D50DC: .4byte gUnknown_20380D6 -_080D50E0: .4byte gUnknown_20380BE - thumb_func_end AnimTask_TranslateMonEllipticalRespectSide - - thumb_func_start DoHorizontalLunge -DoHorizontalLunge: @ 0x080D50E4 - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080D510C - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D5114 - ldr r1, _080D5110 - ldrh r0, [r1, #2] - rsbs r0, r0, #0 - b _080D5118 - .align 2, 0 -_080D510C: .4byte gUnknown_20380D6 -_080D5110: .4byte gUnknown_20380BE -_080D5114: - ldr r1, _080D5144 - ldrh r0, [r1, #2] -_080D5118: - strh r0, [r4, #0x30] - ldrh r2, [r1] - movs r0, #0 - strh r2, [r4, #0x2e] - strh r0, [r4, #0x32] - ldr r1, _080D5148 - ldr r0, _080D514C - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - strh r0, [r4, #0x34] - strh r2, [r4, #0x36] - ldr r1, _080D5150 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _080D5154 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D5144: .4byte gUnknown_20380BE -_080D5148: .4byte gUnknown_2023E88 -_080D514C: .4byte gUnknown_20380D6 -_080D5150: .4byte ReverseHorizontalLungeDirection -_080D5154: .4byte TranslateMonSpriteLinear - thumb_func_end DoHorizontalLunge - - thumb_func_start ReverseHorizontalLungeDirection -ReverseHorizontalLungeDirection: @ 0x080D5158 - push {lr} - ldrh r1, [r0, #0x36] - strh r1, [r0, #0x2e] - ldrh r1, [r0, #0x30] - rsbs r1, r1, #0 - strh r1, [r0, #0x30] - ldr r1, _080D5174 - str r1, [r0, #0x1c] - ldr r1, _080D5178 - bl StoreSpriteCallbackInData6 - pop {r0} - bx r0 - .align 2, 0 -_080D5174: .4byte TranslateMonSpriteLinear -_080D5178: .4byte DestroyAnimSprite - thumb_func_end ReverseHorizontalLungeDirection - - thumb_func_start DoVerticalDip -DoVerticalDip: @ 0x080D517C - push {r4, r5, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r5, _080D51BC - ldrb r0, [r5, #4] - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r2, [r5] - movs r1, #0 - strh r2, [r4, #0x2e] - strh r1, [r4, #0x30] - ldrh r1, [r5, #2] - strh r1, [r4, #0x32] - strh r0, [r4, #0x34] - strh r2, [r4, #0x36] - ldr r1, _080D51C0 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _080D51C4 - str r0, [r4, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D51BC: .4byte gUnknown_20380BE -_080D51C0: .4byte ReverseVerticalDipDirection -_080D51C4: .4byte TranslateMonSpriteLinear - thumb_func_end DoVerticalDip - - thumb_func_start ReverseVerticalDipDirection -ReverseVerticalDipDirection: @ 0x080D51C8 - push {lr} - ldrh r1, [r0, #0x36] - strh r1, [r0, #0x2e] - ldrh r1, [r0, #0x32] - rsbs r1, r1, #0 - strh r1, [r0, #0x32] - ldr r1, _080D51E4 - str r1, [r0, #0x1c] - ldr r1, _080D51E8 - bl StoreSpriteCallbackInData6 - pop {r0} - bx r0 - .align 2, 0 -_080D51E4: .4byte TranslateMonSpriteLinear -_080D51E8: .4byte DestroyAnimSprite - thumb_func_end ReverseVerticalDipDirection - - thumb_func_start SlideMonToOriginalPos -SlideMonToOriginalPos: @ 0x080D51EC - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r6, r0, #0 - ldr r0, _080D5204 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _080D5210 - ldr r1, _080D5208 - ldr r0, _080D520C - b _080D5214 - .align 2, 0 -_080D5204: .4byte gUnknown_20380BE -_080D5208: .4byte gUnknown_2023E88 -_080D520C: .4byte gUnknown_20380D6 -_080D5210: - ldr r1, _080D5274 - ldr r0, _080D5278 -_080D5214: - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r7, [r0] - ldr r5, _080D527C - ldrh r0, [r5, #4] - movs r3, #0 - strh r0, [r6, #0x2e] - ldr r0, _080D5280 - lsls r4, r7, #4 - adds r4, r4, r7 - lsls r4, r4, #2 - adds r4, r4, r0 - ldrh r0, [r4, #0x24] - ldrh r1, [r4, #0x20] - adds r0, r0, r1 - strh r0, [r6, #0x30] - ldrh r0, [r4, #0x20] - strh r0, [r6, #0x32] - ldrh r0, [r4, #0x26] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r6, #0x34] - ldrh r0, [r4, #0x22] - strh r0, [r6, #0x36] - adds r0, r6, #0 - str r3, [sp] - bl InitSpriteDataForLinearTranslation - ldr r3, [sp] - strh r3, [r6, #0x34] - strh r3, [r6, #0x36] - ldrh r0, [r4, #0x24] - strh r0, [r6, #0x38] - ldrh r0, [r4, #0x26] - strh r0, [r6, #0x3a] - adds r2, r6, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - movs r1, #2 - ldrsh r0, [r5, r1] - cmp r0, #1 - bne _080D5284 - strh r3, [r6, #0x32] - b _080D528A - .align 2, 0 -_080D5274: .4byte gUnknown_2023E88 -_080D5278: .4byte gUnknown_20380D7 -_080D527C: .4byte gUnknown_20380BE -_080D5280: .4byte gUnknown_20205AC -_080D5284: - cmp r0, #2 - bne _080D528A - strh r3, [r6, #0x30] -_080D528A: - ldr r0, _080D52A0 - ldrh r1, [r0, #2] - lsls r0, r7, #8 - orrs r0, r1 - strh r0, [r6, #0x3c] - ldr r0, _080D52A4 - str r0, [r6, #0x1c] - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D52A0: .4byte gUnknown_20380BE -_080D52A4: .4byte SlideMonToOriginalPosStep - thumb_func_end SlideMonToOriginalPos - - thumb_func_start SlideMonToOriginalPosStep -SlideMonToOriginalPosStep: @ 0x080D52A8 - push {r4, r5, r6, lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x3c] - lsls r1, r0, #0x18 - lsrs r4, r1, #0x18 - adds r5, r4, #0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _080D52E4 - adds r3, r1, r0 - ldrh r0, [r2, #0x2e] - movs r6, #0x2e - ldrsh r1, [r2, r6] - cmp r1, #0 - bne _080D52E8 - cmp r4, #1 - bhi _080D52D2 - strh r1, [r3, #0x24] -_080D52D2: - cmp r5, #2 - beq _080D52DA - cmp r5, #0 - bne _080D52DC -_080D52DA: - strh r1, [r3, #0x26] -_080D52DC: - adds r0, r2, #0 - bl DestroyAnimSprite - b _080D5312 - .align 2, 0 -_080D52E4: .4byte gUnknown_20205AC -_080D52E8: - subs r0, #1 - strh r0, [r2, #0x2e] - ldrh r1, [r2, #0x30] - ldrh r0, [r2, #0x34] - adds r1, r1, r0 - strh r1, [r2, #0x34] - ldrh r0, [r2, #0x32] - ldrh r4, [r2, #0x36] - adds r0, r0, r4 - strh r0, [r2, #0x36] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - ldrh r6, [r2, #0x38] - adds r1, r1, r6 - strh r1, [r3, #0x24] - ldrh r0, [r2, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - ldrh r2, [r2, #0x3a] - adds r0, r0, r2 - strh r0, [r3, #0x26] -_080D5312: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end SlideMonToOriginalPosStep - - thumb_func_start SlideMonToOffset -SlideMonToOffset: @ 0x080D5318 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r0, _080D532C - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _080D5334 - ldr r0, _080D5330 - b _080D5336 - .align 2, 0 -_080D532C: .4byte gUnknown_20380BE -_080D5330: .4byte gUnknown_20380D6 -_080D5334: - ldr r0, _080D53B4 -_080D5336: - ldrb r2, [r0] - ldr r0, _080D53B8 - adds r0, r2, r0 - ldrb r6, [r0] - adds r0, r2, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D5360 - ldr r1, _080D53BC - ldrh r0, [r1, #2] - rsbs r0, r0, #0 - strh r0, [r1, #2] - movs r2, #6 - ldrsh r0, [r1, r2] - cmp r0, #1 - bne _080D5360 - ldrh r0, [r1, #4] - rsbs r0, r0, #0 - strh r0, [r1, #4] -_080D5360: - ldr r2, _080D53BC - ldrh r0, [r2, #8] - movs r4, #0 - strh r0, [r5, #0x2e] - ldr r0, _080D53C0 - lsls r1, r6, #4 - adds r1, r1, r6 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r0, [r1, #0x20] - strh r0, [r5, #0x30] - ldrh r0, [r2, #2] - ldrh r3, [r1, #0x20] - adds r0, r0, r3 - strh r0, [r5, #0x32] - ldrh r0, [r1, #0x22] - strh r0, [r5, #0x34] - ldrh r0, [r2, #4] - ldrh r1, [r1, #0x22] - adds r0, r0, r1 - strh r0, [r5, #0x36] - adds r0, r5, #0 - bl InitSpriteDataForLinearTranslation - strh r4, [r5, #0x34] - strh r4, [r5, #0x36] - strh r6, [r5, #0x38] - adds r2, r5, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r1, _080D53C4 - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _080D53C8 - str r0, [r5, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080D53B4: .4byte gUnknown_20380D7 -_080D53B8: .4byte gUnknown_2023E88 -_080D53BC: .4byte gUnknown_20380BE -_080D53C0: .4byte gUnknown_20205AC -_080D53C4: .4byte DestroyAnimSprite -_080D53C8: .4byte TranslateMonSpriteLinearFixedPoint - thumb_func_end SlideMonToOffset - - thumb_func_start sub_080D53CC -sub_080D53CC: @ 0x080D53CC - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r2, r6, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080D53EC - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _080D53F4 - ldr r0, _080D53F0 - b _080D53F6 - .align 2, 0 -_080D53EC: .4byte gUnknown_20380BE -_080D53F0: .4byte gUnknown_20380D6 -_080D53F4: - ldr r0, _080D5474 -_080D53F6: - ldrb r1, [r0] - ldr r0, _080D5478 - adds r0, r1, r0 - ldrb r7, [r0] - adds r0, r1, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D5420 - ldr r1, _080D547C - ldrh r0, [r1, #2] - rsbs r0, r0, #0 - strh r0, [r1, #2] - movs r2, #6 - ldrsh r0, [r1, r2] - cmp r0, #1 - bne _080D5420 - ldrh r0, [r1, #4] - rsbs r0, r0, #0 - strh r0, [r1, #4] -_080D5420: - ldr r5, _080D547C - ldrh r0, [r5, #8] - strh r0, [r6, #0x2e] - ldr r0, _080D5480 - lsls r4, r7, #4 - adds r4, r4, r7 - lsls r4, r4, #2 - adds r4, r4, r0 - ldrh r0, [r4, #0x24] - ldrh r1, [r4, #0x20] - adds r0, r0, r1 - strh r0, [r6, #0x30] - ldrh r1, [r5, #2] - adds r0, r0, r1 - strh r0, [r6, #0x32] - ldrh r0, [r4, #0x26] - ldrh r2, [r4, #0x22] - adds r0, r0, r2 - strh r0, [r6, #0x34] - ldrh r1, [r5, #4] - adds r0, r0, r1 - strh r0, [r6, #0x36] - adds r0, r6, #0 - bl InitSpriteDataForLinearTranslation - ldrh r0, [r4, #0x24] - lsls r0, r0, #8 - strh r0, [r6, #0x34] - ldrh r0, [r4, #0x26] - lsls r0, r0, #8 - strh r0, [r6, #0x36] - strh r7, [r6, #0x38] - ldrh r0, [r5, #0xa] - strh r0, [r6, #0x3a] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080D5488 - ldr r1, _080D5484 - adds r0, r6, #0 - bl StoreSpriteCallbackInData6 - b _080D5490 - .align 2, 0 -_080D5474: .4byte gUnknown_20380D7 -_080D5478: .4byte gUnknown_2023E88 -_080D547C: .4byte gUnknown_20380BE -_080D5480: .4byte gUnknown_20205AC -_080D5484: .4byte DestroyAnimSprite -_080D5488: - ldr r1, _080D549C - adds r0, r6, #0 - bl StoreSpriteCallbackInData6 -_080D5490: - ldr r0, _080D54A0 - str r0, [r6, #0x1c] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D549C: .4byte sub_080D54A4 -_080D54A0: .4byte TranslateMonSpriteLinearFixedPoint - thumb_func_end sub_080D53CC - - thumb_func_start sub_080D54A4 -sub_080D54A4: @ 0x080D54A4 - push {r4, lr} - ldr r4, _080D54D0 - movs r1, #0x38 - ldrsh r2, [r0, r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r4 - movs r3, #0 - strh r3, [r1, #0x24] - movs r1, #0x38 - ldrsh r2, [r0, r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r4 - strh r3, [r1, #0x26] - bl DestroyAnimSprite - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D54D0: .4byte gUnknown_20205AC - thumb_func_end sub_080D54A4 - - thumb_func_start AnimTask_WindUpLunge -AnimTask_WindUpLunge: @ 0x080D54D4 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r5, _080D5558 - movs r0, #6 - ldrsh r1, [r5, r0] - movs r0, #0x80 - lsls r0, r0, #8 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - ldr r0, _080D555C - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D5506 - ldrh r0, [r5, #2] - rsbs r0, r0, #0 - strh r0, [r5, #2] - ldrh r0, [r5, #0xa] - rsbs r0, r0, #0 - strh r0, [r5, #0xa] -_080D5506: - ldrb r0, [r5] - bl GetAnimBattlerSpriteId - ldr r1, _080D5560 - lsls r4, r6, #2 - adds r4, r4, r6 - lsls r4, r4, #3 - adds r4, r4, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #8] - movs r1, #2 - ldrsh r0, [r5, r1] - lsls r0, r0, #8 - movs r2, #6 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r4, #0xa] - ldrh r0, [r5, #4] - strh r0, [r4, #0xc] - ldrh r0, [r5, #6] - strh r0, [r4, #0xe] - ldrh r0, [r5, #8] - strh r0, [r4, #0x10] - movs r1, #0xa - ldrsh r0, [r5, r1] - lsls r0, r0, #8 - movs r2, #0xc - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r4, #0x12] - ldrh r0, [r5, #0xc] - strh r0, [r4, #0x14] - strh r7, [r4, #0x16] - ldr r0, _080D5564 - str r0, [r4] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D5558: .4byte gUnknown_20380BE -_080D555C: .4byte gUnknown_20380D6 -_080D5560: .4byte gUnknown_3005B60 -_080D5564: .4byte AnimTask_WindUpLungePart1 - thumb_func_end AnimTask_WindUpLunge - - thumb_func_start AnimTask_WindUpLungePart1 -AnimTask_WindUpLungePart1: @ 0x080D5568 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080D55C0 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r5, r1, r2 - ldrb r1, [r5, #8] - ldrh r0, [r5, #0xa] - ldrh r2, [r5, #0x1e] - adds r0, r0, r2 - strh r0, [r5, #0x1e] - ldr r2, _080D55C4 - lsls r4, r1, #4 - adds r4, r4, r1 - lsls r4, r4, #2 - adds r4, r4, r2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - strh r0, [r4, #0x24] - ldrh r0, [r5, #0x1c] - lsrs r0, r0, #8 - movs r2, #0xc - ldrsh r1, [r5, r2] - bl Sin - strh r0, [r4, #0x26] - ldrh r0, [r5, #0x16] - ldrh r1, [r5, #0x1c] - adds r0, r0, r1 - strh r0, [r5, #0x1c] - ldrh r0, [r5, #0xe] - subs r0, #1 - strh r0, [r5, #0xe] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080D55B8 - ldr r0, _080D55C8 - str r0, [r5] -_080D55B8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D55C0: .4byte gUnknown_3005B60 -_080D55C4: .4byte gUnknown_20205AC -_080D55C8: .4byte AnimTask_WindUpLungePart2 - thumb_func_end AnimTask_WindUpLungePart1 - - thumb_func_start AnimTask_WindUpLungePart2 -AnimTask_WindUpLungePart2: @ 0x080D55CC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - ldr r1, _080D55F0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrh r1, [r4, #0x10] - movs r2, #0x10 - ldrsh r0, [r4, r2] - cmp r0, #0 - ble _080D55F4 - subs r0, r1, #1 - strh r0, [r4, #0x10] - b _080D5628 - .align 2, 0 -_080D55F0: .4byte gUnknown_3005B60 -_080D55F4: - ldrb r0, [r4, #8] - ldrh r2, [r4, #0x12] - ldrh r1, [r4, #0x20] - adds r2, r2, r1 - strh r2, [r4, #0x20] - ldr r3, _080D5630 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - lsls r2, r2, #0x10 - asrs r2, r2, #0x18 - ldrh r0, [r4, #0x1e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - adds r2, r2, r0 - strh r2, [r1, #0x24] - ldrh r0, [r4, #0x14] - subs r0, #1 - strh r0, [r4, #0x14] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080D5628 - adds r0, r5, #0 - bl DestroyAnimVisualTask -_080D5628: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D5630: .4byte gUnknown_20205AC - thumb_func_end AnimTask_WindUpLungePart2 - - thumb_func_start sub_080D5634 -sub_080D5634: @ 0x080D5634 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _080D5658 - movs r2, #0 - ldrsh r0, [r1, r2] - cmp r0, #2 - beq _080D5662 - cmp r0, #2 - bgt _080D565C - cmp r0, #0 - blt _080D5694 - ldrb r0, [r1] - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - b _080D569C - .align 2, 0 -_080D5658: .4byte gUnknown_20380BE -_080D565C: - cmp r0, #3 - beq _080D566C - b _080D5694 -_080D5662: - ldr r5, _080D5668 - b _080D566E - .align 2, 0 -_080D5668: .4byte gUnknown_20380D6 -_080D566C: - ldr r5, _080D568C -_080D566E: - ldrb r0, [r5] - movs r4, #2 - eors r0, r4 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D5694 - ldr r1, _080D5690 - ldrb r0, [r5] - eors r0, r4 - adds r0, r0, r1 - ldrb r2, [r0] - b _080D569C - .align 2, 0 -_080D568C: .4byte gUnknown_20380D7 -_080D5690: .4byte gUnknown_2023E88 -_080D5694: - adds r0, r6, #0 - bl DestroyAnimVisualTask - b _080D56DC -_080D569C: - ldr r1, _080D56BC - lsls r4, r6, #2 - adds r0, r4, r6 - lsls r0, r0, #3 - adds r5, r0, r1 - strh r2, [r5, #8] - ldr r0, _080D56C0 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D56C8 - ldr r0, _080D56C4 - ldrh r0, [r0, #2] - b _080D56CE - .align 2, 0 -_080D56BC: .4byte gUnknown_3005B60 -_080D56C0: .4byte gUnknown_20380D7 -_080D56C4: .4byte gUnknown_20380BE -_080D56C8: - ldr r0, _080D56E4 - ldrh r0, [r0, #2] - rsbs r0, r0, #0 -_080D56CE: - strh r0, [r5, #0xa] - ldr r0, _080D56E8 - adds r1, r4, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080D56EC - str r0, [r1] -_080D56DC: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080D56E4: .4byte gUnknown_20380BE -_080D56E8: .4byte gUnknown_3005B60 -_080D56EC: .4byte sub_080D56F0 - thumb_func_end sub_080D5634 - - thumb_func_start sub_080D56F0 -sub_080D56F0: @ 0x080D56F0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080D5734 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrb r2, [r1, #8] - ldr r3, _080D5738 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r1, #0xa] - ldrh r2, [r0, #0x24] - adds r1, r1, r2 - strh r1, [r0, #0x24] - movs r2, #0x24 - ldrsh r1, [r0, r2] - movs r2, #0x20 - ldrsh r0, [r0, r2] - adds r1, r1, r0 - adds r1, #0x20 - movs r0, #0x98 - lsls r0, r0, #1 - cmp r1, r0 - bls _080D572E - adds r0, r4, #0 - bl DestroyAnimVisualTask -_080D572E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D5734: .4byte gUnknown_3005B60 -_080D5738: .4byte gUnknown_20205AC - thumb_func_end sub_080D56F0 - - thumb_func_start AnimTask_SwayMon -AnimTask_SwayMon: @ 0x080D573C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r6, _080D578C - ldrb r0, [r6] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D5758 - ldr r1, _080D5790 - ldrh r0, [r1, #2] - rsbs r0, r0, #0 - strh r0, [r1, #2] -_080D5758: - ldr r4, _080D5790 - ldrb r0, [r4, #8] - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080D5794 - lsls r3, r5, #2 - adds r1, r3, r5 - lsls r1, r1, #3 - adds r2, r1, r2 - ldrh r1, [r4] - strh r1, [r2, #8] - ldrh r1, [r4, #2] - strh r1, [r2, #0xa] - ldrh r1, [r4, #4] - strh r1, [r2, #0xc] - ldrh r1, [r4, #6] - strh r1, [r2, #0xe] - strh r0, [r2, #0x10] - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080D5798 - ldrb r0, [r6] - b _080D579C - .align 2, 0 -_080D578C: .4byte gUnknown_20380D6 -_080D5790: .4byte gUnknown_20380BE -_080D5794: .4byte gUnknown_3005B60 -_080D5798: - ldr r0, _080D57B4 - ldrb r0, [r0] -_080D579C: - strh r0, [r2, #0x12] - ldr r1, _080D57B8 - adds r0, r3, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #1 - strh r1, [r0, #0x20] - ldr r1, _080D57BC - str r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080D57B4: .4byte gUnknown_20380D7 -_080D57B8: .4byte gUnknown_3005B60 -_080D57BC: .4byte AnimTask_SwayMonStep - thumb_func_end AnimTask_SwayMon - - thumb_func_start AnimTask_SwayMonStep -AnimTask_SwayMonStep: @ 0x080D57C0 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _080D5810 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrb r7, [r4, #0x10] - ldrh r0, [r4, #0xc] - ldrh r1, [r4, #0x1c] - adds r0, r0, r1 - lsls r1, r0, #0x10 - strh r0, [r4, #0x1c] - lsrs r1, r1, #0x18 - mov r8, r1 - mov r0, r8 - movs r2, #0xa - ldrsh r1, [r4, r2] - bl Sin - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - mov sb, r5 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080D5818 - ldr r0, _080D5814 - lsls r2, r7, #4 - adds r1, r2, r7 - lsls r1, r1, #2 - adds r1, r1, r0 - strh r5, [r1, #0x24] - mov sb, r0 - adds r4, r2, #0 - b _080D585E - .align 2, 0 -_080D5810: .4byte gUnknown_3005B60 -_080D5814: .4byte gUnknown_20205AC -_080D5818: - ldrb r0, [r4, #0x12] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080D5840 - ldr r1, _080D583C - lsls r2, r7, #4 - adds r0, r2, r7 - lsls r0, r0, #2 - adds r3, r0, r1 - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - mov sb, r1 - adds r4, r2, #0 - cmp r0, #0 - bge _080D585C - b _080D585A - .align 2, 0 -_080D583C: .4byte gUnknown_20205AC -_080D5840: - ldr r1, _080D58E0 - lsls r2, r7, #4 - adds r0, r2, r7 - lsls r0, r0, #2 - adds r3, r0, r1 - mov r4, sb - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - mov sb, r1 - adds r4, r2, #0 - cmp r0, #0 - bge _080D585A - rsbs r0, r0, #0 -_080D585A: - rsbs r0, r0, #0 -_080D585C: - strh r0, [r3, #0x26] -_080D585E: - mov r5, r8 - cmp r5, #0x7f - bls _080D5880 - ldr r1, _080D58E4 - lsls r2, r6, #2 - adds r0, r2, r6 - lsls r0, r0, #3 - adds r3, r0, r1 - movs r5, #0x1e - ldrsh r0, [r3, r5] - adds r5, r1, #0 - cmp r0, #0 - bne _080D5880 - movs r1, #0x20 - ldrsh r0, [r3, r1] - cmp r0, #1 - beq _080D58A2 -_080D5880: - mov r2, r8 - cmp r2, #0x7e - bhi _080D58D4 - ldr r1, _080D58E4 - lsls r2, r6, #2 - adds r0, r2, r6 - lsls r0, r0, #3 - adds r3, r0, r1 - movs r5, #0x1e - ldrsh r0, [r3, r5] - adds r5, r1, #0 - cmp r0, #1 - bne _080D58D4 - movs r1, #0x20 - ldrsh r0, [r3, r1] - cmp r0, #0 - bne _080D58D4 -_080D58A2: - adds r1, r2, r6 - lsls r1, r1, #3 - adds r1, r1, r5 - ldrh r0, [r1, #0x1e] - movs r2, #1 - eors r0, r2 - strh r0, [r1, #0x1e] - ldrh r0, [r1, #0x20] - eors r0, r2 - strh r0, [r1, #0x20] - ldrh r0, [r1, #0xe] - subs r0, #1 - strh r0, [r1, #0xe] - lsls r0, r0, #0x10 - asrs r3, r0, #0x10 - cmp r3, #0 - bne _080D58D4 - adds r0, r4, r7 - lsls r0, r0, #2 - add r0, sb - strh r3, [r0, #0x24] - strh r3, [r0, #0x26] - adds r0, r6, #0 - bl DestroyAnimVisualTask -_080D58D4: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D58E0: .4byte gUnknown_20205AC -_080D58E4: .4byte gUnknown_3005B60 - thumb_func_end AnimTask_SwayMonStep - - thumb_func_start AnimTask_ScaleMonAndRestore -AnimTask_ScaleMonAndRestore: @ 0x080D58E8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r6, _080D5934 - ldrb r0, [r6, #6] - bl GetAnimBattlerSpriteId - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldrb r1, [r6, #8] - adds r0, r5, #0 - bl PrepareBattlerSpriteForRotScale - ldr r1, _080D5938 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r6] - strh r1, [r0, #8] - ldrh r1, [r6, #2] - strh r1, [r0, #0xa] - ldrh r1, [r6, #4] - strh r1, [r0, #0xc] - ldrh r1, [r6, #4] - strh r1, [r0, #0xe] - strh r5, [r0, #0x10] - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r0, #0x1c] - strh r1, [r0, #0x1e] - ldr r1, _080D593C - str r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080D5934: .4byte gUnknown_20380BE -_080D5938: .4byte gUnknown_3005B60 -_080D593C: .4byte AnimTask_ScaleMonAndRestoreStep - thumb_func_end AnimTask_ScaleMonAndRestore - - thumb_func_start AnimTask_ScaleMonAndRestoreStep -AnimTask_ScaleMonAndRestoreStep: @ 0x080D5940 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - ldr r1, _080D59A0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrh r0, [r4, #8] - ldrh r1, [r4, #0x1c] - adds r0, r0, r1 - strh r0, [r4, #0x1c] - ldrh r0, [r4, #0xa] - ldrh r3, [r4, #0x1e] - adds r0, r0, r3 - strh r0, [r4, #0x1e] - ldrb r0, [r4, #0x10] - adds r6, r0, #0 - movs r0, #0x1c - ldrsh r1, [r4, r0] - movs r3, #0x1e - ldrsh r2, [r4, r3] - adds r0, r6, #0 - movs r3, #0 - bl SetSpriteRotScale - ldrh r0, [r4, #0xc] - subs r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - cmp r1, #0 - bne _080D59B0 - ldrh r2, [r4, #0xe] - movs r3, #0xe - ldrsh r0, [r4, r3] - cmp r0, #0 - ble _080D59A4 - ldrh r0, [r4, #8] - rsbs r0, r0, #0 - strh r0, [r4, #8] - ldrh r0, [r4, #0xa] - rsbs r0, r0, #0 - strh r0, [r4, #0xa] - strh r2, [r4, #0xc] - strh r1, [r4, #0xe] - b _080D59B0 - .align 2, 0 -_080D59A0: .4byte gUnknown_3005B60 -_080D59A4: - adds r0, r6, #0 - bl ResetSpriteRotScale - adds r0, r5, #0 - bl DestroyAnimVisualTask -_080D59B0: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AnimTask_ScaleMonAndRestoreStep - - thumb_func_start sub_080D59B8 -sub_080D59B8: @ 0x080D59B8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r4, _080D59F4 - ldrb r0, [r4, #4] - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r1, #0 - bl PrepareBattlerSpriteForRotScale - ldr r1, _080D59F8 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r2, r0, r1 - movs r1, #0 - strh r1, [r2, #0xa] - ldrh r0, [r4] - strh r0, [r2, #0xc] - movs r3, #6 - ldrsh r0, [r4, r3] - cmp r0, #1 - beq _080D59FC - strh r1, [r2, #0xe] - b _080D5A08 - .align 2, 0 -_080D59F4: .4byte gUnknown_20380BE -_080D59F8: .4byte gUnknown_3005B60 -_080D59FC: - ldrh r0, [r4] - ldrh r1, [r4, #2] - adds r3, r0, #0 - muls r3, r1, r3 - adds r0, r3, #0 - strh r0, [r2, #0xe] -_080D5A08: - ldr r1, _080D5A34 - lsls r4, r7, #2 - adds r0, r4, r7 - lsls r0, r0, #3 - adds r5, r0, r1 - ldr r6, _080D5A38 - ldrh r0, [r6, #2] - strh r0, [r5, #0x10] - mov r0, r8 - strh r0, [r5, #0x12] - ldrh r0, [r6, #6] - strh r0, [r5, #0x14] - bl IsContest - lsls r0, r0, #0x18 - mov r8, r4 - cmp r0, #0 - beq _080D5A3C - movs r0, #1 - strh r0, [r5, #0x16] - b _080D5A60 - .align 2, 0 -_080D5A34: .4byte gUnknown_3005B60 -_080D5A38: .4byte gUnknown_20380BE -_080D5A3C: - movs r1, #4 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _080D5A4C - ldr r0, _080D5A48 - b _080D5A4E - .align 2, 0 -_080D5A48: .4byte gUnknown_20380D6 -_080D5A4C: - ldr r0, _080D5AA4 -_080D5A4E: - ldrb r0, [r0] - bl GetBattlerSide - movs r1, #0 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080D5A5E - movs r1, #1 -_080D5A5E: - strh r1, [r5, #0x16] -_080D5A60: - ldr r0, _080D5AA8 - mov r2, r8 - adds r1, r2, r7 - lsls r1, r1, #3 - adds r4, r1, r0 - movs r3, #0x16 - ldrsh r0, [r4, r3] - cmp r0, #0 - beq _080D5A8C - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080D5A8C - movs r1, #0xe - ldrsh r0, [r4, r1] - rsbs r0, r0, #0 - strh r0, [r4, #0xe] - movs r2, #0x10 - ldrsh r0, [r4, r2] - rsbs r0, r0, #0 - strh r0, [r4, #0x10] -_080D5A8C: - ldr r0, _080D5AA8 - mov r3, r8 - adds r1, r3, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080D5AAC - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D5AA4: .4byte gUnknown_20380D7 -_080D5AA8: .4byte gUnknown_3005B60 -_080D5AAC: .4byte sub_080D5B8C - thumb_func_end sub_080D59B8 - - thumb_func_start sub_080D5AB0 -sub_080D5AB0: @ 0x080D5AB0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r4, _080D5AEC - ldrb r0, [r4, #4] - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r1, #0 - bl PrepareBattlerSpriteForRotScale - ldr r1, _080D5AF0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #0xa] - ldrh r1, [r4] - strh r1, [r0, #0xc] - movs r1, #4 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080D5AF8 - ldr r0, _080D5AF4 - b _080D5AFA - .align 2, 0 -_080D5AEC: .4byte gUnknown_20380BE -_080D5AF0: .4byte gUnknown_3005B60 -_080D5AF4: .4byte gUnknown_20380D6 -_080D5AF8: - ldr r0, _080D5B28 -_080D5AFA: - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D5B0C - ldrh r0, [r4, #2] - rsbs r0, r0, #0 - strh r0, [r4, #2] -_080D5B0C: - ldr r0, _080D5B2C - movs r2, #6 - ldrsh r1, [r0, r2] - adds r6, r0, #0 - cmp r1, #1 - beq _080D5B34 - ldr r2, _080D5B30 - lsls r3, r5, #2 - adds r0, r3, r5 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r1, #0 - strh r1, [r0, #0xe] - b _080D5B4E - .align 2, 0 -_080D5B28: .4byte gUnknown_20380D7 -_080D5B2C: .4byte gUnknown_20380BE -_080D5B30: .4byte gUnknown_3005B60 -_080D5B34: - ldr r3, _080D5B84 - lsls r4, r5, #2 - adds r0, r4, r5 - lsls r0, r0, #3 - adds r0, r0, r3 - ldrh r2, [r6] - ldrh r1, [r6, #2] - adds r7, r2, #0 - muls r7, r1, r7 - adds r1, r7, #0 - strh r1, [r0, #0xe] - adds r2, r3, #0 - adds r3, r4, #0 -_080D5B4E: - adds r1, r3, r5 - lsls r1, r1, #3 - adds r1, r1, r2 - ldrh r0, [r6, #2] - strh r0, [r1, #0x10] - mov r0, r8 - strh r0, [r1, #0x12] - ldrh r0, [r6, #6] - strh r0, [r1, #0x14] - movs r0, #1 - strh r0, [r1, #0x16] - movs r2, #0xe - ldrsh r0, [r1, r2] - rsbs r0, r0, #0 - strh r0, [r1, #0xe] - movs r7, #0x10 - ldrsh r0, [r1, r7] - rsbs r0, r0, #0 - strh r0, [r1, #0x10] - ldr r0, _080D5B88 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D5B84: .4byte gUnknown_3005B60 -_080D5B88: .4byte sub_080D5B8C - thumb_func_end sub_080D5AB0 - - thumb_func_start sub_080D5B8C -sub_080D5B8C: @ 0x080D5B8C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _080D5BE4 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrh r0, [r4, #0x10] - ldrh r1, [r4, #0xe] - adds r0, r0, r1 - strh r0, [r4, #0xe] - ldrb r0, [r4, #0x12] - movs r2, #0x80 - lsls r2, r2, #1 - ldrh r3, [r4, #0xe] - adds r1, r2, #0 - bl SetSpriteRotScale - movs r2, #0x16 - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _080D5BC0 - ldrb r0, [r4, #0x12] - bl SetBattlerSpriteYOffsetFromRotation -_080D5BC0: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0xc - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _080D5C06 - movs r1, #0x14 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _080D5BE8 - cmp r0, #1 - ble _080D5BEE - cmp r0, #2 - beq _080D5BF6 - b _080D5BEE - .align 2, 0 -_080D5BE4: .4byte gUnknown_3005B60 -_080D5BE8: - ldrb r0, [r4, #0x12] - bl ResetSpriteRotScale -_080D5BEE: - adds r0, r5, #0 - bl DestroyAnimVisualTask - b _080D5C06 -_080D5BF6: - movs r0, #0 - strh r0, [r4, #0xa] - movs r2, #0x10 - ldrsh r0, [r4, r2] - rsbs r0, r0, #0 - strh r0, [r4, #0x10] - movs r0, #1 - strh r0, [r4, #0x14] -_080D5C06: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_080D5B8C - - thumb_func_start sub_080D5C0C -sub_080D5C0C: @ 0x080D5C0C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _080D5C38 - movs r2, #0 - ldrsh r1, [r0, r2] - mov r8, r0 - cmp r1, #0 - bne _080D5C44 - ldr r4, _080D5C3C - lsls r5, r7, #2 - adds r0, r5, r7 - lsls r0, r0, #3 - adds r6, r0, r4 - ldr r0, _080D5C40 - ldrh r0, [r0] - movs r1, #0xc - bl __udivsi3 - b _080D5C58 - .align 2, 0 -_080D5C38: .4byte gUnknown_20380BE -_080D5C3C: .4byte gUnknown_3005B60 -_080D5C40: .4byte gUnknown_20380A8 -_080D5C44: - ldr r4, _080D5CE0 - lsls r5, r7, #2 - adds r0, r5, r7 - lsls r0, r0, #3 - adds r6, r0, r4 - ldr r0, _080D5CE4 - ldr r0, [r0] - movs r1, #0xc - bl __divsi3 -_080D5C58: - strh r0, [r6, #0x26] - lsls r0, r0, #0x10 - adds r1, r4, #0 - cmp r0, #0 - bgt _080D5C66 - movs r0, #1 - strh r0, [r6, #0x26] -_080D5C66: - movs r2, #0x26 - ldrsh r0, [r6, r2] - cmp r0, #0x10 - ble _080D5C72 - movs r0, #0x10 - strh r0, [r6, #0x26] -_080D5C72: - adds r4, r5, r7 - lsls r4, r4, #3 - adds r4, r4, r1 - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsrs r0, r1, #0x1f - adds r1, r1, r0 - asrs r1, r1, #1 - movs r5, #0 - strh r1, [r4, #0x24] - ldrh r2, [r4, #0x26] - movs r0, #1 - ands r0, r2 - adds r1, r1, r0 - strh r1, [r4, #0x22] - strh r5, [r4, #0x20] - mov r1, r8 - ldrh r0, [r1, #6] - strh r0, [r4, #0x1c] - ldrh r0, [r1, #8] - strh r0, [r4, #0x1e] - movs r0, #1 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x16] - ldr r2, _080D5CE8 - movs r0, #0x16 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0, #0x24] - strh r0, [r4, #0x18] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0, #0x26] - strh r0, [r4, #0x1a] - strh r5, [r4, #8] - mov r1, r8 - ldrh r0, [r1, #2] - strh r0, [r4, #0xa] - ldrh r0, [r1, #4] - strh r0, [r4, #0xc] - ldr r0, _080D5CEC - str r0, [r4] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D5CE0: .4byte gUnknown_3005B60 -_080D5CE4: .4byte gUnknown_20380A4 -_080D5CE8: .4byte gUnknown_20205AC -_080D5CEC: .4byte sub_080D5CF0 - thumb_func_end sub_080D5C0C - - thumb_func_start sub_080D5CF0 -sub_080D5CF0: @ 0x080D5CF0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080D5D44 - adds r3, r0, r1 - ldrh r0, [r3, #8] - adds r0, #1 - strh r0, [r3, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0xa - ldrsh r1, [r3, r2] - cmp r0, r1 - ble _080D5DCE - movs r0, #0 - strh r0, [r3, #8] - ldrh r0, [r3, #0x20] - adds r1, r0, #1 - movs r0, #1 - ands r1, r0 - strh r1, [r3, #0x20] - movs r2, #0x1c - ldrsh r0, [r3, r2] - cmp r0, #0 - beq _080D5D62 - cmp r1, #0 - beq _080D5D4C - ldr r2, _080D5D48 - movs r0, #0x16 - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r3, #0x22] - ldrh r2, [r3, #0x18] - adds r1, r1, r2 - b _080D5D60 - .align 2, 0 -_080D5D44: .4byte gUnknown_3005B60 -_080D5D48: .4byte gUnknown_20205AC -_080D5D4C: - ldr r2, _080D5D88 - movs r0, #0x16 - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r3, #0x18] - ldrh r2, [r3, #0x24] - subs r1, r1, r2 -_080D5D60: - strh r1, [r0, #0x24] -_080D5D62: - movs r1, #0x1e - ldrsh r0, [r3, r1] - cmp r0, #0 - beq _080D5D9C - movs r2, #0x20 - ldrsh r4, [r3, r2] - cmp r4, #0 - beq _080D5D8C - ldr r2, _080D5D88 - movs r0, #0x16 - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r3, #0x26] - strh r1, [r0, #0x26] - b _080D5D9C - .align 2, 0 -_080D5D88: .4byte gUnknown_20205AC -_080D5D8C: - ldr r2, _080D5DD4 - movs r0, #0x16 - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r4, [r0, #0x26] -_080D5D9C: - ldrh r0, [r3, #0xc] - subs r0, #1 - strh r0, [r3, #0xc] - lsls r0, r0, #0x10 - asrs r4, r0, #0x10 - cmp r4, #0 - bne _080D5DCE - ldr r2, _080D5DD4 - movs r0, #0x16 - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r4, [r0, #0x24] - movs r0, #0x16 - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r4, [r0, #0x26] - adds r0, r5, #0 - bl DestroyAnimVisualTask -_080D5DCE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D5DD4: .4byte gUnknown_20205AC - thumb_func_end sub_080D5CF0 - - thumb_func_start GetBagItemQuantity -GetBagItemQuantity: @ 0x080D5DD8 - adds r1, r0, #0 - ldr r0, _080D5DEC - ldr r0, [r0] - adds r0, #0xac - ldr r0, [r0] - ldrh r1, [r1] - eors r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bx lr - .align 2, 0 -_080D5DEC: .4byte gUnknown_3005AF0 - thumb_func_end GetBagItemQuantity - - thumb_func_start SetBagItemQuantity -SetBagItemQuantity: @ 0x080D5DF0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r2, _080D5E04 - ldr r2, [r2] - adds r2, #0xac - ldr r2, [r2] - eors r1, r2 - strh r1, [r0] - bx lr - .align 2, 0 -_080D5E04: .4byte gUnknown_3005AF0 - thumb_func_end SetBagItemQuantity - - thumb_func_start sub_080D5E08 -sub_080D5E08: @ 0x080D5E08 - ldrh r0, [r0] - bx lr - thumb_func_end sub_080D5E08 - - thumb_func_start sub_080D5E0C -sub_080D5E0C: @ 0x080D5E0C - strh r1, [r0] - bx lr - thumb_func_end sub_080D5E0C - - thumb_func_start ApplyNewEncryptionKeyToBagItems -ApplyNewEncryptionKeyToBagItems: @ 0x080D5E10 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - mov r8, r0 - movs r1, #0 - ldr r0, _080D5E64 - mov sb, r0 -_080D5E22: - movs r6, #0 - lsls r5, r1, #3 - mov r2, sb - adds r0, r5, r2 - adds r7, r1, #1 - ldrb r0, [r0, #4] - cmp r6, r0 - bhs _080D5E50 - ldr r2, _080D5E64 -_080D5E34: - adds r4, r5, r2 - lsls r1, r6, #2 - ldr r0, [r4] - adds r0, r0, r1 - adds r0, #2 - mov r1, r8 - str r2, [sp] - bl ApplyNewEncryptionKeyToHword - adds r6, #1 - ldr r2, [sp] - ldrb r4, [r4, #4] - cmp r6, r4 - blo _080D5E34 -_080D5E50: - adds r1, r7, #0 - cmp r1, #4 - bls _080D5E22 - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D5E64: .4byte gUnknown_2039A78 - thumb_func_end ApplyNewEncryptionKeyToBagItems - - thumb_func_start ApplyNewEncryptionKeyToBagItems_ -ApplyNewEncryptionKeyToBagItems_: @ 0x080D5E68 - push {lr} - bl ApplyNewEncryptionKeyToBagItems - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ApplyNewEncryptionKeyToBagItems_ - - thumb_func_start SetBagItemsPointers -SetBagItemsPointers: @ 0x080D5E74 - push {r4, lr} - ldr r1, _080D5EC0 - ldr r0, _080D5EC4 - ldr r2, [r0] - movs r3, #0xac - lsls r3, r3, #3 - adds r0, r2, r3 - str r0, [r1] - movs r3, #0x1e - strb r3, [r1, #4] - movs r4, #0xbb - lsls r4, r4, #3 - adds r0, r2, r4 - str r0, [r1, #0x20] - adds r0, r1, #0 - adds r0, #0x24 - strb r3, [r0] - movs r3, #0xca - lsls r3, r3, #3 - adds r0, r2, r3 - str r0, [r1, #8] - movs r0, #0x10 - strb r0, [r1, #0xc] - adds r4, #0xb8 - adds r0, r2, r4 - str r0, [r1, #0x10] - movs r0, #0x40 - strb r0, [r1, #0x14] - movs r0, #0xf2 - lsls r0, r0, #3 - adds r2, r2, r0 - str r2, [r1, #0x18] - movs r0, #0x2e - strb r0, [r1, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D5EC0: .4byte gUnknown_2039A78 -_080D5EC4: .4byte gUnknown_3005AEC - thumb_func_end SetBagItemsPointers - - thumb_func_start sub_080D5EC8 -sub_080D5EC8: @ 0x080D5EC8 - push {r4, lr} - adds r4, r1, #0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xaf - bne _080D5EF0 - movs r0, #0x2b - bl GetBerryInfo - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCopy - ldr r1, _080D5EEC - adds r0, r4, #0 - bl StringAppend - b _080D5EFC - .align 2, 0 -_080D5EEC: .4byte gUnknown_85C9440 -_080D5EF0: - bl sub_080D6C8C - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCopy -_080D5EFC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080D5EC8 - - thumb_func_start IsBagPocketNonEmpty -IsBagPocketNonEmpty: @ 0x080D5F04 - push {lr} - lsls r0, r0, #0x18 - movs r2, #0 - ldr r1, _080D5F28 - lsrs r0, r0, #0x15 - subs r0, #8 - adds r0, r0, r1 - ldrb r1, [r0, #4] - cmp r2, r1 - bhs _080D5F36 - ldr r3, [r0] -_080D5F1A: - lsls r0, r2, #2 - adds r0, r0, r3 - ldrh r0, [r0] - cmp r0, #0 - beq _080D5F2C - movs r0, #1 - b _080D5F38 - .align 2, 0 -_080D5F28: .4byte gUnknown_2039A78 -_080D5F2C: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, r1 - blo _080D5F1A -_080D5F36: - movs r0, #0 -_080D5F38: - pop {r1} - bx r1 - thumb_func_end IsBagPocketNonEmpty - - thumb_func_start CheckBagHasItem -CheckBagHasItem: @ 0x080D5F3C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - adds r0, r7, #0 - bl sub_080D6DB0 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D5FCE - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080D5F6A - ldr r0, _080D5F78 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080D5F80 -_080D5F6A: - adds r0, r7, #0 - adds r1, r5, #0 - bl CheckPyramidBagHasItem - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _080D5FD0 - .align 2, 0 -_080D5F78: .4byte 0x00004004 -_080D5F7C: - movs r0, #1 - b _080D5FD0 -_080D5F80: - adds r0, r7, #0 - bl sub_080D6DB0 - subs r0, #1 - lsls r0, r0, #0x18 - movs r6, #0 - ldr r1, _080D5F94 - lsrs r4, r0, #0x15 - b _080D5FC6 - .align 2, 0 -_080D5F94: .4byte gUnknown_2039A78 -_080D5F98: - adds r0, r4, r1 - ldr r1, [r0] - lsls r0, r6, #2 - adds r1, r0, r1 - ldrh r0, [r1] - cmp r0, r7 - bne _080D5FBE - adds r0, r1, #2 - bl GetBagItemQuantity - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r5 - bhs _080D5F7C - subs r0, r5, r0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0 - beq _080D5F7C -_080D5FBE: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _080D5FD8 -_080D5FC6: - adds r0, r4, r1 - ldrb r0, [r0, #4] - cmp r6, r0 - blo _080D5F98 -_080D5FCE: - movs r0, #0 -_080D5FD0: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080D5FD8: .4byte gUnknown_2039A78 - thumb_func_end CheckBagHasItem - - thumb_func_start HasAtLeastOneBerry -HasAtLeastOneBerry: @ 0x080D5FDC - push {r4, lr} - movs r4, #0x85 -_080D5FE0: - adds r0, r4, #0 - movs r1, #1 - bl CheckBagHasItem - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #1 - bne _080D5FFC - ldr r0, _080D5FF8 - strh r1, [r0] - movs r0, #1 - b _080D600E - .align 2, 0 -_080D5FF8: .4byte gUnknown_2037290 -_080D5FFC: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0xb2 - bls _080D5FE0 - ldr r1, _080D6014 - movs r0, #0 - strh r0, [r1] - movs r0, #0 -_080D600E: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080D6014: .4byte gUnknown_2037290 - thumb_func_end HasAtLeastOneBerry - - thumb_func_start CheckBagHasSpace -CheckBagHasSpace: @ 0x080D6018 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - bl sub_080D6DB0 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D611E - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080D6050 - ldr r0, _080D6060 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080D6064 -_080D6050: - mov r0, r8 - adds r1, r5, #0 - bl CheckPyramidBagHasSpace - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _080D612E - .align 2, 0 -_080D6060: .4byte 0x00004004 -_080D6064: - mov r0, r8 - bl sub_080D6DB0 - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r7, _080D6124 - cmp r2, #3 - beq _080D6078 - movs r7, #0x63 -_080D6078: - movs r6, #0 - ldr r1, _080D6128 - lsls r4, r2, #3 - adds r0, r4, r1 - mov sb, r4 - ldrb r0, [r0, #4] - cmp r6, r0 - bhs _080D60D4 - subs r0, r2, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 -_080D6090: - adds r0, r4, r1 - ldr r1, [r0] - lsls r0, r6, #2 - adds r1, r0, r1 - ldrh r0, [r1] - cmp r0, r8 - bne _080D60C4 - adds r0, r1, #2 - str r2, [sp] - bl GetBagItemQuantity - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - adds r0, r1, r5 - ldr r2, [sp] - cmp r0, r7 - ble _080D612C - mov r0, sl - cmp r0, #1 - bls _080D611E - subs r0, r7, r1 - subs r0, r5, r0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0 - beq _080D612C -_080D60C4: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _080D6128 - adds r0, r4, r1 - ldrb r0, [r0, #4] - cmp r6, r0 - blo _080D6090 -_080D60D4: - cmp r5, #0 - beq _080D612C - movs r6, #0 - ldr r3, _080D6128 - mov r1, sb - adds r0, r1, r3 - ldrb r0, [r0, #4] - cmp r6, r0 - bhs _080D611A - adds r4, r3, #0 - subs r0, r2, #2 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 -_080D60EE: - adds r0, r1, r4 - ldr r1, [r0] - lsls r0, r6, #2 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0 - bne _080D610A - cmp r5, r7 - bls _080D612C - cmp r2, #1 - bls _080D611E - subs r0, r5, r7 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_080D610A: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - mov r1, sb - adds r0, r1, r3 - ldrb r0, [r0, #4] - cmp r6, r0 - blo _080D60EE -_080D611A: - cmp r5, #0 - beq _080D612C -_080D611E: - movs r0, #0 - b _080D612E - .align 2, 0 -_080D6124: .4byte 0x000003E7 -_080D6128: .4byte gUnknown_2039A78 -_080D612C: - movs r0, #1 -_080D612E: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CheckBagHasSpace - - thumb_func_start AddBagItem -AddBagItem: @ 0x080D6140 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - bl sub_080D6DB0 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080D6164 - movs r0, #0 - b _080D62AA -_080D6164: - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080D617C - ldr r0, _080D618C - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080D6190 -_080D617C: - mov r0, sb - adds r1, r5, #0 - bl AddPyramidBagItem - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _080D62AA - .align 2, 0 -_080D618C: .4byte 0x00004004 -_080D6190: - mov r0, sb - bl sub_080D6DB0 - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - lsls r1, r0, #3 - ldr r0, _080D6250 - adds r7, r1, r0 - ldrb r0, [r7, #4] - lsls r0, r0, #2 - bl AllocZeroed - mov r8, r0 - ldr r1, [r7] - ldrb r2, [r7, #4] - lsls r2, r2, #2 - bl memcpy - ldr r2, _080D6254 - mov r0, sl - cmp r0, #3 - beq _080D61C2 - movs r2, #0x63 -_080D61C2: - movs r6, #0 - ldrb r0, [r7, #4] - cmp r6, r0 - bhs _080D621E - mov r0, sl - subs r0, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] -_080D61D4: - lsls r0, r6, #2 - mov r3, r8 - adds r1, r0, r3 - ldrh r0, [r1] - cmp r0, sb - bne _080D6212 - adds r4, r1, #2 - adds r0, r4, #0 - str r2, [sp, #4] - bl GetBagItemQuantity - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r0, r5 - ldr r2, [sp, #4] - cmp r1, r2 - ble _080D6280 - ldr r1, [sp] - cmp r1, #1 - bls _080D628C - subs r0, r2, r0 - subs r0, r5, r0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r4, #0 - adds r1, r2, #0 - bl SetBagItemQuantity - ldr r2, [sp, #4] - cmp r5, #0 - beq _080D6296 -_080D6212: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldrb r0, [r7, #4] - cmp r6, r0 - blo _080D61D4 -_080D621E: - cmp r5, #0 - beq _080D6296 - movs r6, #0 - cmp r6, r0 - bhs _080D627A - mov r0, sl - subs r0, #2 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_080D6230: - lsls r0, r6, #2 - mov r3, r8 - adds r1, r0, r3 - ldrh r0, [r1] - cmp r0, #0 - bne _080D626E - mov r0, sb - strh r0, [r1] - cmp r5, r2 - bhi _080D6258 - adds r0, r1, #2 - adds r1, r5, #0 - bl SetBagItemQuantity - b _080D6296 - .align 2, 0 -_080D6250: .4byte gUnknown_2039A78 -_080D6254: .4byte 0x000003E7 -_080D6258: - cmp r4, #1 - bls _080D628C - subs r0, r5, r2 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r1, #2 - adds r1, r2, #0 - str r2, [sp, #4] - bl SetBagItemQuantity - ldr r2, [sp, #4] -_080D626E: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldrb r1, [r7, #4] - cmp r6, r1 - blo _080D6230 -_080D627A: - cmp r5, #0 - beq _080D6296 - b _080D628C -_080D6280: - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl SetBagItemQuantity - b _080D6296 -_080D628C: - mov r0, r8 - bl Free - movs r0, #0 - b _080D62AA -_080D6296: - ldr r0, [r7] - ldrb r2, [r7, #4] - lsls r2, r2, #2 - mov r1, r8 - bl memcpy - mov r0, r8 - bl Free - movs r0, #1 -_080D62AA: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end AddBagItem - - thumb_func_start RemoveBagItem -RemoveBagItem: @ 0x080D62BC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - movs r4, #0 - bl sub_080D6DB0 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D6350 - mov r0, r8 - cmp r0, #0 - beq _080D6350 - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080D62F8 - ldr r0, _080D6308 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080D630C -_080D62F8: - mov r0, r8 - adds r1, r7, #0 - bl RemovePyramidBagItem - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _080D6472 - .align 2, 0 -_080D6308: .4byte 0x00004004 -_080D630C: - mov r0, r8 - bl sub_080D6DB0 - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - lsls r1, r0, #3 - ldr r0, _080D6354 - adds r5, r1, r0 - movs r6, #0 - ldrb r2, [r5, #4] - cmp r6, r2 - bhs _080D634C -_080D6328: - ldr r0, [r5] - lsls r1, r6, #2 - adds r1, r1, r0 - ldrh r0, [r1] - cmp r0, r8 - bne _080D6340 - adds r0, r1, #2 - bl GetBagItemQuantity - adds r0, r4, r0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_080D6340: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldrb r0, [r5, #4] - cmp r6, r0 - blo _080D6328 -_080D634C: - cmp r4, r7 - bhs _080D6358 -_080D6350: - movs r0, #0 - b _080D6472 - .align 2, 0 -_080D6354: .4byte gUnknown_2039A78 -_080D6358: - bl CurMapIsSecretBase - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080D6388 - ldr r4, _080D63C8 - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r2, #0x80 - lsls r2, r2, #2 - adds r0, r2, #0 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl VarSet - ldr r0, _080D63CC - mov r1, r8 - bl VarSet -_080D6388: - mov r0, sb - bl GetItemListPosition - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldrb r0, [r5, #4] - cmp r0, r1 - bls _080D63FE - ldr r0, [r5] - lsls r1, r1, #2 - adds r2, r1, r0 - ldrh r0, [r2] - adds r4, r1, #0 - cmp r0, r8 - bne _080D63FE - adds r0, r2, #2 - bl GetBagItemQuantity - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, r7 - blo _080D63D0 - ldr r0, [r5] - adds r0, r0, r4 - adds r0, #2 - subs r1, r1, r7 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl SetBagItemQuantity - movs r7, #0 - b _080D63E2 - .align 2, 0 -_080D63C8: .4byte 0x000040EE -_080D63CC: .4byte 0x000040ED -_080D63D0: - subs r0, r7, r1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - ldr r0, [r5] - adds r0, r0, r4 - adds r0, #2 - movs r1, #0 - bl SetBagItemQuantity -_080D63E2: - ldr r0, [r5] - adds r0, r0, r4 - adds r0, #2 - bl GetBagItemQuantity - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0 - bne _080D63FA - ldr r0, [r5] - adds r0, r4, r0 - strh r2, [r0] -_080D63FA: - cmp r7, #0 - beq _080D6470 -_080D63FE: - movs r6, #0 - ldrb r0, [r5, #4] - cmp r6, r0 - bhs _080D6470 -_080D6406: - ldr r0, [r5] - lsls r1, r6, #2 - adds r2, r1, r0 - ldrh r0, [r2] - adds r4, r1, #0 - cmp r0, r8 - bne _080D6464 - adds r0, r2, #2 - bl GetBagItemQuantity - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, r7 - blo _080D6436 - ldr r0, [r5] - adds r0, r0, r4 - adds r0, #2 - subs r1, r1, r7 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl SetBagItemQuantity - movs r7, #0 - b _080D6448 -_080D6436: - subs r0, r7, r1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - ldr r0, [r5] - adds r0, r0, r4 - adds r0, #2 - movs r1, #0 - bl SetBagItemQuantity -_080D6448: - ldr r0, [r5] - adds r0, r0, r4 - adds r0, #2 - bl GetBagItemQuantity - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0 - bne _080D6460 - ldr r0, [r5] - adds r0, r4, r0 - strh r2, [r0] -_080D6460: - cmp r7, #0 - beq _080D6470 -_080D6464: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldrb r2, [r5, #4] - cmp r6, r2 - blo _080D6406 -_080D6470: - movs r0, #1 -_080D6472: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end RemoveBagItem - - thumb_func_start GetPocketByItemId -GetPocketByItemId: @ 0x080D6480 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_080D6DB0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetPocketByItemId - - thumb_func_start ClearItemSlots -ClearItemSlots: @ 0x080D6494 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - lsls r1, r1, #0x18 - movs r4, #0 - lsrs r1, r1, #0x18 - cmp r4, r1 - bhs _080D64BE - adds r5, r1, #0 - movs r7, #0 -_080D64A6: - lsls r0, r4, #2 - adds r0, r0, r6 - strh r7, [r0] - adds r0, #2 - movs r1, #0 - bl SetBagItemQuantity - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, r5 - blo _080D64A6 -_080D64BE: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end ClearItemSlots - - thumb_func_start FindFreePCItemSlot -FindFreePCItemSlot: @ 0x080D64C4 - push {lr} - movs r1, #0 - ldr r0, _080D64E4 - ldr r2, [r0] - movs r3, #0x93 - lsls r3, r3, #3 -_080D64D0: - lsls r0, r1, #0x18 - asrs r1, r0, #0x18 - lsls r0, r1, #2 - adds r0, r2, r0 - adds r0, r0, r3 - ldrh r0, [r0] - cmp r0, #0 - bne _080D64E8 - adds r0, r1, #0 - b _080D64F8 - .align 2, 0 -_080D64E4: .4byte gUnknown_3005AEC -_080D64E8: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0x31 - ble _080D64D0 - movs r0, #1 - rsbs r0, r0, #0 -_080D64F8: - pop {r1} - bx r1 - thumb_func_end FindFreePCItemSlot - - thumb_func_start CountUsedPCItemSlots -CountUsedPCItemSlots: @ 0x080D64FC - push {r4, lr} - movs r2, #0 - movs r1, #0 - ldr r0, _080D6530 - ldr r3, [r0] - movs r4, #0x93 - lsls r4, r4, #3 -_080D650A: - lsls r0, r1, #2 - adds r0, r3, r0 - adds r0, r0, r4 - ldrh r0, [r0] - cmp r0, #0 - beq _080D651C - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 -_080D651C: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x31 - bls _080D650A - adds r0, r2, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080D6530: .4byte gUnknown_3005AEC - thumb_func_end CountUsedPCItemSlots - - thumb_func_start CheckPCHasItem -CheckPCHasItem: @ 0x080D6534 - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - movs r4, #0 -_080D6540: - ldr r0, _080D656C - ldr r2, [r0] - lsls r1, r4, #2 - adds r0, r2, r1 - movs r3, #0x93 - lsls r3, r3, #3 - adds r0, r0, r3 - ldrh r0, [r0] - cmp r0, r6 - bne _080D6574 - adds r0, r1, r2 - ldr r1, _080D6570 - adds r0, r0, r1 - bl sub_080D5E08 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r5 - blo _080D6574 - movs r0, #1 - b _080D6580 - .align 2, 0 -_080D656C: .4byte gUnknown_3005AEC -_080D6570: .4byte 0x0000049A -_080D6574: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x31 - bls _080D6540 - movs r0, #0 -_080D6580: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CheckPCHasItem - - thumb_func_start AddPCItem -AddPCItem: @ 0x080D6588 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - movs r0, #0xc8 - bl AllocZeroed - adds r7, r0, #0 - ldr r0, _080D6610 - ldr r1, [r0] - movs r0, #0x93 - lsls r0, r0, #3 - adds r1, r1, r0 - adds r0, r7, #0 - movs r2, #0xc8 - bl memcpy - movs r6, #0 -_080D65B4: - lsls r0, r6, #2 - adds r1, r0, r7 - ldrh r0, [r1] - cmp r0, r8 - bne _080D65E8 - adds r4, r1, #2 - adds r0, r4, #0 - bl sub_080D5E08 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - adds r1, r2, r5 - ldr r3, _080D6614 - cmp r1, r3 - ble _080D661C - ldr r1, _080D6618 - adds r0, r5, r1 - adds r0, r2, r0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r4, #0 - adds r1, r3, #0 - bl sub_080D5E0C - cmp r5, #0 - beq _080D6638 -_080D65E8: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0x31 - bls _080D65B4 - cmp r5, #0 - beq _080D6638 - bl FindFreePCItemSlot - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _080D6628 - adds r0, r7, #0 - bl Free - movs r0, #0 - b _080D6652 - .align 2, 0 -_080D6610: .4byte gUnknown_3005AEC -_080D6614: .4byte 0x000003E7 -_080D6618: .4byte 0x0000FC19 -_080D661C: - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl sub_080D5E0C - b _080D6638 -_080D6628: - lsls r0, r1, #2 - adds r0, r0, r7 - mov r1, r8 - strh r1, [r0] - adds r0, #2 - adds r1, r5, #0 - bl sub_080D5E0C -_080D6638: - ldr r0, _080D665C - ldr r0, [r0] - movs r1, #0x93 - lsls r1, r1, #3 - adds r0, r0, r1 - adds r1, r7, #0 - movs r2, #0xc8 - bl memcpy - adds r0, r7, #0 - bl Free - movs r0, #1 -_080D6652: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080D665C: .4byte gUnknown_3005AEC - thumb_func_end AddPCItem - - thumb_func_start RemovePCItem -RemovePCItem: @ 0x080D6660 - push {lr} - lsls r0, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r2, _080D6694 - ldr r2, [r2] - lsrs r0, r0, #0x16 - adds r3, r2, r0 - ldr r0, _080D6698 - adds r2, r3, r0 - ldrh r0, [r2] - subs r0, r0, r1 - strh r0, [r2] - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - bne _080D668E - movs r2, #0x93 - lsls r2, r2, #3 - adds r0, r3, r2 - strh r1, [r0] - bl CompactPCItems -_080D668E: - pop {r0} - bx r0 - .align 2, 0 -_080D6694: .4byte gUnknown_3005AEC -_080D6698: .4byte 0x0000049A - thumb_func_end RemovePCItem - - thumb_func_start CompactPCItems -CompactPCItems: @ 0x080D669C - push {r4, r5, r6, r7, lr} - movs r2, #0 -_080D66A0: - adds r1, r2, #1 - lsls r0, r1, #0x10 - lsrs r4, r0, #0x10 - adds r6, r1, #0 - cmp r4, #0x31 - bhi _080D66E2 - ldr r0, _080D66F0 - mov ip, r0 - lsls r5, r2, #2 - movs r7, #0x93 - lsls r7, r7, #3 -_080D66B6: - mov r0, ip - ldr r1, [r0] - adds r0, r1, r5 - adds r0, r0, r7 - ldrh r0, [r0] - cmp r0, #0 - bne _080D66D8 - movs r0, #0x93 - lsls r0, r0, #3 - adds r1, r1, r0 - adds r2, r1, r5 - ldr r3, [r2] - lsls r0, r4, #2 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r2] - str r3, [r1] -_080D66D8: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x31 - bls _080D66B6 -_080D66E2: - lsls r0, r6, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0x30 - bls _080D66A0 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D66F0: .4byte gUnknown_3005AEC - thumb_func_end CompactPCItems - - thumb_func_start SwapRegisteredBike -SwapRegisteredBike: @ 0x080D66F4 - push {lr} - ldr r0, _080D6710 - ldr r0, [r0] - ldr r2, _080D6714 - adds r1, r0, r2 - ldrh r2, [r1] - ldr r3, _080D6718 - cmp r2, r3 - beq _080D671C - movs r0, #0x88 - lsls r0, r0, #1 - cmp r2, r0 - beq _080D6724 - b _080D6726 - .align 2, 0 -_080D6710: .4byte gUnknown_3005AEC -_080D6714: .4byte 0x00000496 -_080D6718: .4byte 0x00000103 -_080D671C: - movs r0, #0x88 - lsls r0, r0, #1 - strh r0, [r1] - b _080D6726 -_080D6724: - strh r3, [r1] -_080D6726: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SwapRegisteredBike - - thumb_func_start BagGetItemIdByPocketPosition -BagGetItemIdByPocketPosition: @ 0x080D672C - lsls r0, r0, #0x18 - lsls r1, r1, #0x10 - ldr r2, _080D6744 - lsrs r0, r0, #0x15 - subs r0, #8 - adds r0, r0, r2 - ldr r0, [r0] - lsrs r1, r1, #0xe - adds r1, r1, r0 - ldrh r0, [r1] - bx lr - .align 2, 0 -_080D6744: .4byte gUnknown_2039A78 - thumb_func_end BagGetItemIdByPocketPosition - - thumb_func_start BagGetQuantityByPocketPosition -BagGetQuantityByPocketPosition: @ 0x080D6748 - push {lr} - lsls r0, r0, #0x18 - lsls r1, r1, #0x10 - ldr r2, _080D676C - lsrs r0, r0, #0x15 - subs r0, #8 - adds r0, r0, r2 - lsrs r1, r1, #0xe - ldr r0, [r0] - adds r0, r0, r1 - adds r0, #2 - bl GetBagItemQuantity - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 -_080D676C: .4byte gUnknown_2039A78 - thumb_func_end BagGetQuantityByPocketPosition - - thumb_func_start SwapItemSlots -SwapItemSlots: @ 0x080D6770 - ldr r3, [r0] - ldr r2, [r1] - str r2, [r0] - str r3, [r1] - bx lr - .align 2, 0 - thumb_func_end SwapItemSlots - - thumb_func_start CompactItemsInBagPocket -CompactItemsInBagPocket: @ 0x080D677C - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - movs r3, #0 - b _080D67BE -_080D6784: - adds r1, r3, #1 - lsls r0, r1, #0x10 - lsrs r4, r0, #0x10 - adds r7, r1, #0 - cmp r4, r2 - bhs _080D67BA - lsls r5, r3, #2 -_080D6792: - ldr r0, [r6] - adds r0, r0, r5 - adds r0, #2 - bl GetBagItemQuantity - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080D67AE - ldr r1, [r6] - adds r0, r1, r5 - lsls r2, r4, #2 - adds r1, r1, r2 - bl SwapItemSlots -_080D67AE: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldrb r0, [r6, #4] - cmp r4, r0 - blo _080D6792 -_080D67BA: - lsls r0, r7, #0x10 - lsrs r3, r0, #0x10 -_080D67BE: - ldrb r2, [r6, #4] - subs r0, r2, #1 - cmp r3, r0 - blt _080D6784 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end CompactItemsInBagPocket - - thumb_func_start SortBerriesOrTMHMs -SortBerriesOrTMHMs: @ 0x080D67CC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - movs r3, #0 - b _080D6832 -_080D67D8: - adds r1, r3, #1 - lsls r0, r1, #0x10 - lsrs r5, r0, #0x10 - mov r8, r1 - cmp r5, r2 - bhs _080D682C - lsls r7, r3, #2 -_080D67E6: - ldr r0, [r6] - adds r0, r0, r7 - adds r0, #2 - bl GetBagItemQuantity - lsls r0, r0, #0x10 - lsls r4, r5, #2 - cmp r0, #0 - beq _080D6816 - ldr r0, [r6] - adds r0, r0, r4 - adds r0, #2 - bl GetBagItemQuantity - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080D6820 - ldr r0, [r6] - adds r1, r7, r0 - adds r0, r4, r0 - ldrh r1, [r1] - ldrh r0, [r0] - cmp r1, r0 - bls _080D6820 -_080D6816: - ldr r1, [r6] - adds r0, r1, r7 - adds r1, r1, r4 - bl SwapItemSlots -_080D6820: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldrb r0, [r6, #4] - cmp r5, r0 - blo _080D67E6 -_080D682C: - mov r1, r8 - lsls r0, r1, #0x10 - lsrs r3, r0, #0x10 -_080D6832: - ldrb r2, [r6, #4] - subs r0, r2, #1 - cmp r3, r0 - blt _080D67D8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end SortBerriesOrTMHMs - - thumb_func_start MoveItemSlotInList -MoveItemSlotInList: @ 0x080D6844 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r3, r2, #0 - cmp r1, r3 - beq _080D68A4 - lsls r0, r1, #2 - adds r0, r0, r4 - ldr r6, [r0] - cmp r3, r1 - bls _080D687C - subs r3, #1 - lsls r1, r1, #0x10 - lsls r0, r3, #0x10 - asrs r2, r0, #0x10 - cmp r1, r0 - bge _080D689E - adds r5, r2, #0 -_080D6866: - asrs r2, r1, #0x10 - lsls r0, r2, #2 - adds r0, r0, r4 - ldr r1, [r0, #4] - str r1, [r0] - adds r2, #1 - lsls r1, r2, #0x10 - asrs r0, r1, #0x10 - cmp r0, r5 - blt _080D6866 - b _080D689E -_080D687C: - lsls r1, r1, #0x10 - lsls r0, r3, #0x10 - asrs r2, r0, #0x10 - cmp r1, r0 - ble _080D689E - adds r5, r2, #0 -_080D6888: - asrs r2, r1, #0x10 - lsls r1, r2, #2 - adds r1, r1, r4 - subs r0, r1, #4 - ldr r0, [r0] - str r0, [r1] - subs r2, #1 - lsls r1, r2, #0x10 - asrs r0, r1, #0x10 - cmp r0, r5 - bgt _080D6888 -_080D689E: - lsls r0, r3, #2 - adds r0, r0, r4 - str r6, [r0] -_080D68A4: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end MoveItemSlotInList - - thumb_func_start ClearBag -ClearBag: @ 0x080D68AC - push {r4, r5, lr} - movs r4, #0 - ldr r5, _080D68D0 -_080D68B2: - lsls r1, r4, #3 - adds r1, r1, r5 - ldr r0, [r1] - ldrb r1, [r1, #4] - bl ClearItemSlots - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #4 - bls _080D68B2 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D68D0: .4byte gUnknown_2039A78 - thumb_func_end ClearBag - - thumb_func_start CountTotalItemQuantityInBag -CountTotalItemQuantityInBag: @ 0x080D68D4 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - movs r7, #0 - adds r0, r6, #0 - bl sub_080D6DB0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x15 - ldr r1, _080D6920 - adds r5, r0, r1 - movs r4, #0 - ldrb r0, [r5, #4] - cmp r7, r0 - bhs _080D6916 -_080D68F2: - ldr r0, [r5] - lsls r1, r4, #2 - adds r1, r1, r0 - ldrh r0, [r1] - cmp r0, r6 - bne _080D690A - adds r0, r1, #2 - bl GetBagItemQuantity - adds r0, r7, r0 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 -_080D690A: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldrb r0, [r5, #4] - cmp r4, r0 - blo _080D68F2 -_080D6916: - adds r0, r7, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080D6920: .4byte gUnknown_2039A70 - thumb_func_end CountTotalItemQuantityInBag - - thumb_func_start CheckPyramidBagHasItem -CheckPyramidBagHasItem: @ 0x080D6924 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - ldr r0, _080D6978 - ldr r3, [r0] - ldr r1, _080D697C - adds r0, r3, r1 - ldrb r1, [r0] - lsls r1, r1, #0x1e - lsrs r2, r1, #0x1e - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _080D6980 - adds r0, r0, r2 - adds r2, r3, r0 - lsrs r1, r1, #0x1e - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r1, _080D6984 - adds r0, r0, r1 - adds r3, r3, r0 - movs r1, #0 -_080D6958: - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r0, r5 - bne _080D6988 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, r4 - bhs _080D6974 - subs r0, r4, r0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0 - bne _080D6988 -_080D6974: - movs r0, #1 - b _080D6994 - .align 2, 0 -_080D6978: .4byte gUnknown_3005AF0 -_080D697C: .4byte 0x00000CA9 -_080D6980: .4byte 0x00000E2C -_080D6984: .4byte 0x00000E54 -_080D6988: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #9 - bls _080D6958 - movs r0, #0 -_080D6994: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CheckPyramidBagHasItem - - thumb_func_start CheckPyramidBagHasSpace -CheckPyramidBagHasSpace: @ 0x080D699C - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - ldr r0, _080D69F8 - ldr r3, [r0] - ldr r1, _080D69FC - adds r0, r3, r1 - ldrb r1, [r0] - lsls r1, r1, #0x1e - lsrs r2, r1, #0x1e - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _080D6A00 - adds r0, r0, r2 - adds r2, r3, r0 - lsrs r1, r1, #0x1e - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r1, _080D6A04 - adds r0, r0, r1 - adds r3, r3, r0 - movs r1, #0 -_080D69D0: - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r0, r5 - beq _080D69DE - cmp r0, #0 - bne _080D6A08 -_080D69DE: - adds r0, r3, r1 - ldrb r0, [r0] - adds r0, r0, r4 - cmp r0, #0x63 - ble _080D69F2 - subs r0, #0x63 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0 - bne _080D6A08 -_080D69F2: - movs r0, #1 - b _080D6A14 - .align 2, 0 -_080D69F8: .4byte gUnknown_3005AF0 -_080D69FC: .4byte 0x00000CA9 -_080D6A00: .4byte 0x00000E2C -_080D6A04: .4byte 0x00000E54 -_080D6A08: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #9 - bls _080D69D0 - movs r0, #0 -_080D6A14: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CheckPyramidBagHasSpace - - thumb_func_start AddPyramidBagItem -AddPyramidBagItem: @ 0x080D6A1C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - ldr r0, _080D6AAC - ldr r3, [r0] - ldr r1, _080D6AB0 - adds r0, r3, r1 - ldrb r1, [r0] - lsls r1, r1, #0x1e - lsrs r2, r1, #0x1e - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _080D6AB4 - adds r0, r0, r2 - adds r0, r0, r3 - mov sb, r0 - lsrs r1, r1, #0x1e - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r1, _080D6AB8 - adds r0, r0, r1 - adds r3, r3, r0 - mov r8, r3 - movs r0, #0x14 - bl sub_08000BC8 - adds r5, r0, #0 - movs r0, #0xa - bl sub_08000BC8 - adds r6, r0, #0 - adds r0, r5, #0 - mov r1, sb - movs r2, #0x14 - bl memcpy - adds r0, r6, #0 - mov r1, r8 - movs r2, #0xa - bl memcpy - movs r2, #0 -_080D6A7E: - lsls r0, r2, #1 - adds r0, r0, r5 - ldrh r0, [r0] - cmp r0, r7 - bne _080D6AC2 - adds r1, r6, r2 - ldrb r0, [r1] - cmp r0, #0x62 - bhi _080D6AC2 - adds r0, r0, r4 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x63 - bls _080D6ABC - ldrb r0, [r1] - subs r0, #0x63 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r0, #0x63 - strb r0, [r1] - b _080D6ABE - .align 2, 0 -_080D6AAC: .4byte gUnknown_3005AF0 -_080D6AB0: .4byte 0x00000CA9 -_080D6AB4: .4byte 0x00000E2C -_080D6AB8: .4byte 0x00000E54 -_080D6ABC: - movs r4, #0 -_080D6ABE: - cmp r4, #0 - beq _080D6B1C -_080D6AC2: - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #9 - bls _080D6A7E - cmp r4, #0 - beq _080D6B1C - movs r2, #0 -_080D6AD2: - lsls r0, r2, #1 - adds r1, r0, r5 - ldrh r0, [r1] - cmp r0, #0 - bne _080D6AFE - strh r7, [r1] - adds r1, r6, r2 - strb r4, [r1] - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x63 - bls _080D6AF8 - ldrb r0, [r1] - subs r0, #0x63 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r0, #0x63 - strb r0, [r1] - b _080D6AFA -_080D6AF8: - movs r4, #0 -_080D6AFA: - cmp r4, #0 - beq _080D6B1C -_080D6AFE: - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #9 - bls _080D6AD2 - cmp r4, #0 - beq _080D6B1C - adds r0, r5, #0 - bl Free - adds r0, r6, #0 - bl Free - movs r0, #0 - b _080D6B3E -_080D6B1C: - mov r0, sb - adds r1, r5, #0 - movs r2, #0x14 - bl memcpy - mov r0, r8 - adds r1, r6, #0 - movs r2, #0xa - bl memcpy - adds r0, r5, #0 - bl Free - adds r0, r6, #0 - bl Free - movs r0, #1 -_080D6B3E: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end AddPyramidBagItem - - thumb_func_start RemovePyramidBagItem -RemovePyramidBagItem: @ 0x080D6B4C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - ldr r0, _080D6BB8 - ldr r3, [r0] - ldr r1, _080D6BBC - adds r0, r3, r1 - ldrb r1, [r0] - lsls r1, r1, #0x1e - lsrs r2, r1, #0x1e - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _080D6BC0 - adds r0, r0, r2 - adds r0, r0, r3 - mov r8, r0 - lsrs r1, r1, #0x1e - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r1, _080D6BC4 - adds r0, r0, r1 - adds r7, r3, r0 - ldr r1, _080D6BC8 - ldrh r0, [r1, #8] - ldrh r1, [r1, #6] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - lsls r0, r2, #1 - mov r1, r8 - adds r3, r0, r1 - ldrh r0, [r3] - cmp r0, sb - bne _080D6BCC - adds r1, r7, r2 - ldrb r0, [r1] - cmp r0, r4 - blo _080D6BCC - subs r0, r0, r4 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _080D6C64 - strh r0, [r3] - b _080D6C64 - .align 2, 0 -_080D6BB8: .4byte gUnknown_3005AF0 -_080D6BBC: .4byte 0x00000CA9 -_080D6BC0: .4byte 0x00000E2C -_080D6BC4: .4byte 0x00000E54 -_080D6BC8: .4byte gUnknown_203CBFC -_080D6BCC: - movs r0, #0x14 - bl sub_08000BC8 - adds r5, r0, #0 - movs r0, #0xa - bl sub_08000BC8 - adds r6, r0, #0 - adds r0, r5, #0 - mov r1, r8 - movs r2, #0x14 - bl memcpy - adds r0, r6, #0 - adds r1, r7, #0 - movs r2, #0xa - bl memcpy - movs r2, #0 -_080D6BF2: - lsls r0, r2, #1 - adds r3, r0, r5 - ldrh r0, [r3] - cmp r0, sb - bne _080D6C26 - adds r1, r6, r2 - ldrb r0, [r1] - cmp r0, r4 - blo _080D6C14 - subs r0, r0, r4 - strb r0, [r1] - movs r4, #0 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080D6C22 - strh r4, [r3] - b _080D6C22 -_080D6C14: - subs r0, r4, r0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r0, #0 - strb r0, [r1] - movs r0, #0 - strh r0, [r3] -_080D6C22: - cmp r4, #0 - beq _080D6C44 -_080D6C26: - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #9 - bls _080D6BF2 - cmp r4, #0 - beq _080D6C44 - adds r0, r5, #0 - bl Free - adds r0, r6, #0 - bl Free - movs r0, #0 - b _080D6C66 -_080D6C44: - mov r0, r8 - adds r1, r5, #0 - movs r2, #0x14 - bl memcpy - adds r0, r7, #0 - adds r1, r6, #0 - movs r2, #0xa - bl memcpy - adds r0, r5, #0 - bl Free - adds r0, r6, #0 - bl Free -_080D6C64: - movs r0, #1 -_080D6C66: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end RemovePyramidBagItem - - thumb_func_start SanitizeItemId -SanitizeItemId: @ 0x080D6C74 - push {lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - movs r0, #0xbc - lsls r0, r0, #1 - cmp r1, r0 - bhi _080D6C86 - adds r0, r1, #0 - b _080D6C88 -_080D6C86: - movs r0, #0 -_080D6C88: - pop {r1} - bx r1 - thumb_func_end SanitizeItemId - - thumb_func_start sub_080D6C8C -sub_080D6C8C: @ 0x080D6C8C - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl SanitizeItemId - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - ldr r1, _080D6CAC - adds r0, r0, r1 - pop {r1} - bx r1 - .align 2, 0 -_080D6CAC: .4byte gUnknown_855CEE8 - thumb_func_end sub_080D6C8C - - thumb_func_start sub_080D6CB0 -sub_080D6CB0: @ 0x080D6CB0 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _080D6CD0 - bl SanitizeItemId - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r4 - ldrh r0, [r1, #0xa] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080D6CD0: .4byte gUnknown_855CEE8 - thumb_func_end sub_080D6CB0 - - thumb_func_start sub_080D6CD4 -sub_080D6CD4: @ 0x080D6CD4 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _080D6CF4 - bl SanitizeItemId - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r4 - ldrh r0, [r1, #0xc] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080D6CF4: .4byte gUnknown_855CEE8 - thumb_func_end sub_080D6CD4 - - thumb_func_start sub_080D6CF8 -sub_080D6CF8: @ 0x080D6CF8 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _080D6D18 - bl SanitizeItemId - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r4 - ldrb r0, [r1, #0xe] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080D6D18: .4byte gUnknown_855CEE8 - thumb_func_end sub_080D6CF8 - - thumb_func_start sub_080D6D1C -sub_080D6D1C: @ 0x080D6D1C - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _080D6D3C - bl SanitizeItemId - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r4 - ldrb r0, [r1, #0xf] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080D6D3C: .4byte gUnknown_855CEE8 - thumb_func_end sub_080D6D1C - - thumb_func_start sub_080D6D40 -sub_080D6D40: @ 0x080D6D40 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _080D6D64 - bl SanitizeItemId - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, #0x10 - adds r1, r1, r4 - ldr r0, [r1] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080D6D64: .4byte gUnknown_855CEE8 - thumb_func_end sub_080D6D40 - - thumb_func_start sub_080D6D68 -sub_080D6D68: @ 0x080D6D68 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _080D6D88 - bl SanitizeItemId - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r4 - ldrb r0, [r1, #0x14] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080D6D88: .4byte gUnknown_855CEE8 - thumb_func_end sub_080D6D68 - - thumb_func_start sub_080D6D8C -sub_080D6D8C: @ 0x080D6D8C - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _080D6DAC - bl SanitizeItemId - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r4 - ldrb r0, [r1, #0x15] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080D6DAC: .4byte gUnknown_855CEE8 - thumb_func_end sub_080D6D8C - - thumb_func_start sub_080D6DB0 -sub_080D6DB0: @ 0x080D6DB0 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _080D6DD0 - bl SanitizeItemId - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r4 - ldrb r0, [r1, #0x16] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080D6DD0: .4byte gUnknown_855CEE8 - thumb_func_end sub_080D6DB0 - - thumb_func_start sub_080D6DD4 -sub_080D6DD4: @ 0x080D6DD4 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _080D6DF4 - bl SanitizeItemId - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r4 - ldrb r0, [r1, #0x17] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080D6DF4: .4byte gUnknown_855CEE8 - thumb_func_end sub_080D6DD4 - - thumb_func_start sub_080D6DF8 -sub_080D6DF8: @ 0x080D6DF8 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _080D6E1C - bl SanitizeItemId - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, #0x18 - adds r1, r1, r4 - ldr r0, [r1] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080D6E1C: .4byte gUnknown_855CEE8 - thumb_func_end sub_080D6DF8 - - thumb_func_start sub_080D6E20 -sub_080D6E20: @ 0x080D6E20 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _080D6E40 - bl SanitizeItemId - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r4 - ldrb r0, [r1, #0x1c] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080D6E40: .4byte gUnknown_855CEE8 - thumb_func_end sub_080D6E20 - - thumb_func_start sub_080D6E44 -sub_080D6E44: @ 0x080D6E44 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _080D6E68 - bl SanitizeItemId - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, #0x20 - adds r1, r1, r4 - ldr r0, [r1] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080D6E68: .4byte gUnknown_855CEE8 - thumb_func_end sub_080D6E44 - - thumb_func_start sub_080D6E6C -sub_080D6E6C: @ 0x080D6E6C - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _080D6E90 - bl SanitizeItemId - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r4 - adds r1, #0x24 - ldrb r0, [r1] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080D6E90: .4byte gUnknown_855CEE8 - thumb_func_end sub_080D6E6C - - thumb_func_start sub_080D6E94 -sub_080D6E94: @ 0x080D6E94 - bx lr - .align 2, 0 - thumb_func_end sub_080D6E94 - - thumb_func_start sub_080D6E98 -sub_080D6E98: @ 0x080D6E98 - ldr r1, _080D6EA0 - movs r0, #0 - strb r0, [r1] - bx lr - .align 2, 0 -_080D6EA0: .4byte gUnknown_2039BCA - thumb_func_end sub_080D6E98 - - thumb_func_start SetupContestGpuRegs -SetupContestGpuRegs: @ 0x080D6EA4 - push {r4, lr} - movs r0, #0 - movs r1, #0x40 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - ldr r4, _080D6F1C - movs r0, #0x48 - adds r1, r4, #0 - bl SetGpuReg - movs r0, #0x4a - adds r1, r4, #0 - bl SetGpuReg - movs r1, #0xfe - lsls r1, r1, #7 - movs r0, #0 - bl SetGpuRegBits - ldr r0, _080D6F20 - movs r1, #0 - strh r1, [r0] - ldr r0, _080D6F24 - strh r1, [r0] - ldr r0, _080D6F28 - strh r1, [r0] - ldr r0, _080D6F2C - strh r1, [r0] - ldr r0, _080D6F30 - strh r1, [r0] - ldr r0, _080D6F34 - strh r1, [r0] - ldr r0, _080D6F38 - strh r1, [r0] - ldr r0, _080D6F3C - strh r1, [r0] - ldr r0, _080D6F40 - strh r1, [r0] - ldr r0, _080D6F44 - strh r1, [r0] - ldr r0, _080D6F48 - strh r1, [r0] - ldr r0, _080D6F4C - strh r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D6F1C: .4byte 0x00003F3F -_080D6F20: .4byte gUnknown_2022AC8 -_080D6F24: .4byte gUnknown_2022ACA -_080D6F28: .4byte gUnknown_2022ACC -_080D6F2C: .4byte gUnknown_2022ACE -_080D6F30: .4byte gUnknown_2022AD0 -_080D6F34: .4byte gUnknown_2022AD2 -_080D6F38: .4byte gUnknown_2022AD4 -_080D6F3C: .4byte gUnknown_2022AD6 -_080D6F40: .4byte gUnknown_2022AD8 -_080D6F44: .4byte gUnknown_2022ADA -_080D6F48: .4byte gUnknown_2022ADC -_080D6F4C: .4byte gUnknown_2022ADE - thumb_func_end SetupContestGpuRegs - - thumb_func_start LoadContestBgAfterMoveAnim -LoadContestBgAfterMoveAnim: @ 0x080D6F50 - push {r4, r5, lr} - ldr r0, _080D6FAC - movs r1, #0xc0 - lsls r1, r1, #0x13 - bl sub_0803437C - ldr r0, _080D6FB0 - ldr r1, _080D6FB4 - bl sub_0803437C - ldr r1, _080D6FB8 - movs r0, #3 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - movs r0, #3 - bl CopyBgTilemapBufferToVram - ldr r0, _080D6FBC - movs r2, #0x80 - lsls r2, r2, #2 - movs r1, #0 - bl LoadCompressedPalette - bl sub_080D7058 - movs r4, #0 - movs r5, #0xa0 -_080D6F8A: - ldr r0, _080D6FC0 - adds r0, r5, r0 - ldr r1, _080D6FC4 - adds r1, r4, r1 - ldrb r1, [r1] - adds r1, #5 - lsls r1, r1, #4 - movs r2, #0x20 - bl LoadPalette - adds r5, #0x20 - adds r4, #1 - cmp r4, #3 - ble _080D6F8A - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D6FAC: .4byte gUnknown_8C17AB8 -_080D6FB0: .4byte gUnknown_8C18650 -_080D6FB4: .4byte 0x06002000 -_080D6FB8: .4byte gUnknown_8C16FB0 -_080D6FBC: .4byte gUnknown_8C16E98 -_080D6FC0: .4byte gUnknown_201A004 -_080D6FC4: .4byte gUnknown_2039BC6 - thumb_func_end LoadContestBgAfterMoveAnim - - thumb_func_start InitContestInfoBgs -InitContestInfoBgs: @ 0x080D6FC8 - push {r4, lr} - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _080D7008 - movs r0, #0 - movs r2, #4 - bl InitBgsFromTemplates - movs r0, #3 - movs r1, #6 - movs r2, #1 - bl SetBgAttribute - movs r4, #0 -_080D6FE6: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080D700C - ldr r1, [r1] - lsls r2, r4, #2 - adds r1, #0x24 - adds r1, r1, r2 - ldr r1, [r1] - bl SetBgTilemapBuffer - adds r4, #1 - cmp r4, #3 - ble _080D6FE6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D7008: .4byte gUnknown_8560E98 -_080D700C: .4byte gUnknown_2039BD4 - thumb_func_end InitContestInfoBgs - - thumb_func_start InitContestWindows -InitContestWindows: @ 0x080D7010 - push {lr} - ldr r0, _080D7038 - bl InitWindows - bl sub_08004480 - ldr r0, _080D703C - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080D7044 - ldr r2, _080D7040 - ldrb r1, [r2] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - b _080D704E - .align 2, 0 -_080D7038: .4byte gUnknown_8560EA8 -_080D703C: .4byte gUnknown_2039BCA -_080D7040: .4byte gUnknown_30030B4 -_080D7044: - ldr r0, _080D7054 - ldrb r1, [r0] - movs r2, #1 - orrs r1, r2 - strb r1, [r0] -_080D704E: - pop {r0} - bx r0 - .align 2, 0 -_080D7054: .4byte gUnknown_30030B4 - thumb_func_end InitContestWindows - - thumb_func_start sub_080D7058 -sub_080D7058: @ 0x080D7058 - push {r4, r5, lr} - ldr r0, _080D709C - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - movs r0, #0 - movs r1, #0 - movs r2, #2 - bl FillPalette - movs r5, #0xa - movs r4, #0xfa - lsls r4, r4, #0x10 -_080D7074: - lsrs r1, r4, #0x10 - ldr r0, _080D70A0 - movs r2, #2 - bl LoadPalette - movs r0, #0x80 - lsls r0, r0, #9 - adds r4, r4, r0 - adds r5, #1 - cmp r5, #0xd - ble _080D7074 - ldr r0, _080D70A4 - movs r1, #0xf3 - movs r2, #2 - bl FillPalette - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D709C: .4byte gUnknown_8560B94 -_080D70A0: .4byte gUnknown_2037596 -_080D70A4: .4byte 0x00007E3F - thumb_func_end sub_080D7058 - - thumb_func_start InitContestResources -InitContestResources: @ 0x080D70A8 - push {r4, r5, r6, r7, lr} - ldr r4, _080D71A8 - ldr r0, [r4] - ldr r0, [r0] - movs r1, #0 - movs r2, #0x5c - bl memset - movs r5, #0 - movs r2, #0xff -_080D70BC: - ldr r0, [r4] - ldr r1, [r0] - adds r1, #2 - adds r1, r1, r5 - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] - adds r5, #1 - cmp r5, #3 - ble _080D70BC - movs r4, #0 - ldr r6, _080D71A8 - movs r5, #3 -_080D70D6: - ldr r0, [r6] - ldr r0, [r0, #4] - adds r0, r4, r0 - movs r1, #0 - movs r2, #0x1c - bl memset - adds r4, #0x1c - subs r5, #1 - cmp r5, #0 - bge _080D70D6 - ldr r4, _080D71A8 - movs r7, #4 - rsbs r7, r7, #0 - movs r6, #0xff - movs r3, #0 - movs r5, #3 -_080D70F8: - ldr r0, [r4] - ldr r1, [r0, #4] - adds r1, r3, r1 - ldrb r2, [r1, #0xb] - adds r0, r7, #0 - ands r0, r2 - strb r0, [r1, #0xb] - ldr r0, [r4] - ldr r1, [r0, #4] - adds r1, r3, r1 - ldrb r0, [r1, #0x13] - orrs r0, r6 - strb r0, [r1, #0x13] - ldr r0, [r4] - ldr r1, [r0, #4] - adds r1, r3, r1 - ldrb r0, [r1, #0x14] - orrs r0, r6 - strb r0, [r1, #0x14] - adds r3, #0x1c - subs r5, #1 - cmp r5, #0 - bge _080D70F8 - ldr r4, _080D71A8 - ldr r0, [r4] - ldr r0, [r0, #8] - movs r1, #0 - movs r2, #0x14 - bl memset - ldr r0, [r4] - ldr r0, [r0, #0xc] - movs r1, #0 - movs r2, #0x44 - bl memset - ldr r2, [r4] - ldr r1, [r2, #0x10] - movs r0, #0 - str r0, [r1] - ldr r0, [r2, #0x14] - movs r1, #0 - movs r2, #0x10 - bl memset - ldr r0, _080D71AC - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080D7164 - movs r0, #0 - bl SortContestants -_080D7164: - movs r5, #0 - adds r2, r4, #0 - movs r6, #0xff - movs r3, #0 - ldr r4, _080D71B0 -_080D716E: - ldr r0, [r2] - ldr r1, [r0, #4] - adds r1, r3, r1 - ldrb r0, [r1, #0x19] - orrs r0, r6 - strb r0, [r1, #0x19] - ldr r0, [r2] - ldr r1, [r0] - adds r1, #0x14 - adds r1, r1, r5 - adds r0, r5, r4 - ldrb r0, [r0] - strb r0, [r1] - adds r3, #0x1c - adds r5, #1 - cmp r5, #3 - ble _080D716E - bl ApplyNextTurnOrder - ldr r0, _080D71A8 - ldr r0, [r0] - ldr r0, [r0, #0x1c] - movs r1, #0 - movs r2, #0x40 - bl memset - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D71A8: .4byte gUnknown_2039BD4 -_080D71AC: .4byte gUnknown_2039BCA -_080D71B0: .4byte gUnknown_2039BC6 - thumb_func_end InitContestResources - - thumb_func_start AllocContestResources -AllocContestResources: @ 0x080D71B4 - push {r4, r5, lr} - ldr r4, _080D727C - movs r0, #0x40 - bl AllocZeroed - str r0, [r4] - movs r0, #0x5c - bl AllocZeroed - ldr r1, [r4] - str r0, [r1] - movs r0, #0x70 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, #4] - movs r0, #0x14 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, #8] - movs r0, #0x44 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, #0xc] - movs r0, #0x10 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, #0x10] - movs r0, #0x10 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, #0x14] - movs r0, #0x14 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, #0x18] - movs r0, #0x40 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, #0x1c] - movs r0, #0xc - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, #0x20] - movs r5, #0x80 - lsls r5, r5, #5 - adds r0, r5, #0 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, #0x24] - adds r0, r5, #0 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, #0x28] - adds r0, r5, #0 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, #0x2c] - adds r0, r5, #0 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, #0x30] - movs r5, #0x80 - lsls r5, r5, #4 - adds r0, r5, #0 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, #0x34] - adds r0, r5, #0 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, #0x38] - movs r0, #0x80 - lsls r0, r0, #6 - bl AllocZeroed - ldr r2, [r4] - str r0, [r2, #0x3c] - ldr r1, _080D7280 - str r0, [r1] - ldr r1, _080D7284 - ldr r0, [r2, #0x28] - str r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D727C: .4byte gUnknown_2039BD4 -_080D7280: .4byte gUnknown_2022D00 -_080D7284: .4byte gUnknown_2022D04 - thumb_func_end AllocContestResources - - thumb_func_start FreeContestResources -FreeContestResources: @ 0x080D7288 - push {r4, r5, lr} - ldr r5, _080D7344 - ldr r0, [r5] - ldr r0, [r0] - bl Free - ldr r0, [r5] - movs r4, #0 - str r4, [r0] - ldr r0, [r0, #4] - bl Free - ldr r0, [r5] - str r4, [r0, #4] - ldr r0, [r0, #8] - bl Free - ldr r0, [r5] - str r4, [r0, #8] - ldr r0, [r0, #0xc] - bl Free - ldr r0, [r5] - str r4, [r0, #0xc] - ldr r0, [r0, #0x10] - bl Free - ldr r0, [r5] - str r4, [r0, #0x10] - ldr r0, [r0, #0x14] - bl Free - ldr r0, [r5] - str r4, [r0, #0x14] - ldr r0, [r0, #0x18] - bl Free - ldr r0, [r5] - str r4, [r0, #0x18] - ldr r0, [r0, #0x1c] - bl Free - ldr r0, [r5] - str r4, [r0, #0x1c] - ldr r0, [r0, #0x20] - bl Free - ldr r0, [r5] - str r4, [r0, #0x20] - ldr r0, [r0, #0x24] - bl Free - ldr r0, [r5] - str r4, [r0, #0x24] - ldr r0, [r0, #0x28] - bl Free - ldr r0, [r5] - str r4, [r0, #0x28] - ldr r0, [r0, #0x2c] - bl Free - ldr r0, [r5] - str r4, [r0, #0x2c] - ldr r0, [r0, #0x30] - bl Free - ldr r0, [r5] - str r4, [r0, #0x30] - ldr r0, [r0, #0x34] - bl Free - ldr r0, [r5] - str r4, [r0, #0x34] - ldr r0, [r0, #0x38] - bl Free - ldr r0, [r5] - str r4, [r0, #0x38] - ldr r0, [r0, #0x3c] - bl Free - ldr r0, [r5] - str r4, [r0, #0x3c] - bl Free - str r4, [r5] - ldr r0, _080D7348 - str r4, [r0] - ldr r0, _080D734C - str r4, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D7344: .4byte gUnknown_2039BD4 -_080D7348: .4byte gUnknown_2022D00 -_080D734C: .4byte gUnknown_2022D04 - thumb_func_end FreeContestResources - - thumb_func_start CB2_StartContest -CB2_StartContest: @ 0x080D7350 - push {r4, r5, r6, lr} - ldr r0, _080D736C - movs r1, #0x87 - lsls r1, r1, #3 - adds r6, r0, r1 - ldrb r5, [r6] - cmp r5, #1 - beq _080D7400 - cmp r5, #1 - bgt _080D7370 - cmp r5, #0 - beq _080D737A - b _080D7482 - .align 2, 0 -_080D736C: .4byte gUnknown_3002360 -_080D7370: - cmp r5, #2 - beq _080D7406 - cmp r5, #3 - beq _080D7430 - b _080D7482 -_080D737A: - ldr r0, _080D73EC - strb r5, [r0] - bl AllocContestResources - bl AllocateMonSpritesGfx - ldr r4, _080D73F0 - ldr r0, [r4] - ldr r0, [r0] - bl Free - ldr r0, [r4] - str r5, [r0] - movs r0, #0x80 - lsls r0, r0, #7 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1] - movs r0, #0 - bl SetVBlankCallback - bl InitContestInfoBgs - bl InitContestWindows - bl SetupContestGpuRegs - bl ScanlineEffect_Clear - bl ResetPaletteFade - ldr r2, _080D73F4 - ldrb r0, [r2, #8] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #8] - bl ResetSpriteData - bl ResetTasks - bl FreeAllSpritePalettes - ldr r1, _080D73F8 - movs r0, #4 - strb r0, [r1] - ldr r0, _080D73FC - movs r1, #0xd0 - lsls r1, r1, #9 - adds r0, r0, r1 - strb r5, [r0] - bl ClearBattleMonForms - bl InitContestResources - b _080D7422 - .align 2, 0 -_080D73EC: .4byte gUnknown_2039BD8 -_080D73F0: .4byte gUnknown_2024178 -_080D73F4: .4byte gUnknown_2037C74 -_080D73F8: .4byte gUnknown_30030BC -_080D73FC: .4byte gUnknown_2000000 -_080D7400: - movs r0, #2 - strb r0, [r6] - b _080D7482 -_080D7406: - ldr r4, _080D742C - ldr r0, [r4] - ldr r0, [r0] - adds r0, #0x59 - bl SetupContestGraphics - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D7482 - ldr r0, [r4] - ldr r0, [r0] - adds r0, #0x59 - movs r1, #0 - strb r1, [r0] -_080D7422: - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] - b _080D7482 - .align 2, 0 -_080D742C: .4byte gUnknown_2039BD4 -_080D7430: - bl sub_080DD988 - ldr r0, _080D7488 - movs r1, #0 - strh r1, [r0] - ldr r0, _080D748C - strh r1, [r0] - movs r0, #2 - bl BeginFastPaletteFade - ldr r2, _080D7490 - ldrb r1, [r2, #8] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #8] - ldr r0, _080D7494 - bl SetVBlankCallback - ldr r0, _080D7498 - movs r1, #0xa - bl CreateTask - ldr r1, _080D749C - ldr r1, [r1] - ldr r1, [r1] - strb r0, [r1, #8] - ldr r0, _080D74A0 - bl SetMainCallback2 - ldr r0, _080D74A4 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080D7482 - bl LoadWirelessStatusIndicatorSpriteGfx - movs r0, #8 - movs r1, #8 - bl CreateWirelessStatusIndicatorSprite -_080D7482: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080D7488: .4byte gUnknown_2022ACC -_080D748C: .4byte gUnknown_2022ACE -_080D7490: .4byte gUnknown_2037C74 -_080D7494: .4byte vblank_cb_battle -_080D7498: .4byte sub_080D74A8 -_080D749C: .4byte gUnknown_2039BD4 -_080D74A0: .4byte CB2_ContestMain -_080D74A4: .4byte gUnknown_2039BCA - thumb_func_end CB2_StartContest - - thumb_func_start sub_080D74A8 -sub_080D74A8: @ 0x080D74A8 - push {lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r0, _080D74D4 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _080D74CE - ldr r0, _080D74D8 - lsls r1, r3, #2 - adds r1, r1, r3 - lsls r1, r1, #3 - adds r1, r1, r0 - strh r2, [r1, #8] - ldr r0, _080D74DC - str r0, [r1] -_080D74CE: - pop {r0} - bx r0 - .align 2, 0 -_080D74D4: .4byte gUnknown_2037C74 -_080D74D8: .4byte gUnknown_3005B60 -_080D74DC: .4byte sub_080D74E0 - thumb_func_end sub_080D74A8 - - thumb_func_start sub_080D74E0 -sub_080D74E0: @ 0x080D74E0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _080D7518 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080D75BC - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080D7566 - ldr r2, _080D751C - lsls r1, r5, #2 - adds r0, r1, r5 - lsls r0, r0, #3 - adds r4, r0, r2 - movs r2, #8 - ldrsh r0, [r4, r2] - adds r6, r1, #0 - cmp r0, #1 - beq _080D7530 - cmp r0, #1 - bgt _080D7520 - cmp r0, #0 - beq _080D7526 - b _080D7566 - .align 2, 0 -_080D7518: .4byte gUnknown_2039BCA -_080D751C: .4byte gUnknown_3005B60 -_080D7520: - cmp r0, #2 - beq _080D7554 - b _080D7566 -_080D7526: - bl ContestPrintLinkStandby - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080D7530: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D75CA - bl sub_0800A8D4 - ldr r0, _080D7550 - adds r1, r6, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _080D75CA - .align 2, 0 -_080D7550: .4byte gUnknown_3005B60 -_080D7554: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080D75CA - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080D7566: - ldr r2, _080D75A8 - ldrb r1, [r2, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _080D75CA - ldrb r1, [r2, #8] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #8] - ldr r0, _080D75AC - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _080D758E - bl ContestPrintLinkStandby -_080D758E: - ldr r0, _080D75B0 - movs r1, #0 - bl CreateTask - ldr r1, _080D75B4 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r4, [r0, #8] - ldr r1, _080D75B8 - str r1, [r0] - b _080D75CA - .align 2, 0 -_080D75A8: .4byte gUnknown_2037C74 -_080D75AC: .4byte gUnknown_2039BCA -_080D75B0: .4byte sub_080D75D8 -_080D75B4: .4byte gUnknown_3005B60 -_080D75B8: .4byte sub_080D6E94 -_080D75BC: - ldr r0, _080D75D0 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080D75D4 - str r0, [r1] -_080D75CA: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080D75D0: .4byte gUnknown_3005B60 -_080D75D4: .4byte sub_080D78F4 - thumb_func_end sub_080D74E0 - - thumb_func_start sub_080D75D8 -sub_080D75D8: @ 0x080D75D8 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080D75EC - ldr r2, _080D75F0 - bl SetTaskFuncWithFollowupFunc - pop {r0} - bx r0 - .align 2, 0 -_080D75EC: .4byte sub_080FD1EC -_080D75F0: .4byte sub_080D75F4 - thumb_func_end sub_080D75D8 - - thumb_func_start sub_080D75F4 -sub_080D75F4: @ 0x080D75F4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080D760C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r0, #1 - strh r0, [r1, #8] - ldr r0, _080D7610 - str r0, [r1] - bx lr - .align 2, 0 -_080D760C: .4byte gUnknown_3005B60 -_080D7610: .4byte sub_080D7614 - thumb_func_end sub_080D75F4 - - thumb_func_start sub_080D7614 -sub_080D7614: @ 0x080D7614 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r5, _080D765C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r5 - ldrh r1, [r0, #8] - subs r1, #1 - strh r1, [r0, #8] - lsls r1, r1, #0x10 - cmp r1, #0 - bgt _080D7656 - bl GetMultiplayerId - adds r0, r4, #0 - bl DestroyTask - ldr r0, _080D7660 - ldr r0, [r0] - ldr r0, [r0] - ldrb r1, [r0, #8] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - ldr r1, _080D7664 - str r1, [r0] - ldr r1, _080D7668 - ldr r0, _080D766C - ldr r0, [r0] - str r0, [r1] -_080D7656: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D765C: .4byte gUnknown_3005B60 -_080D7660: .4byte gUnknown_2039BD4 -_080D7664: .4byte sub_080D78F4 -_080D7668: .4byte gUnknown_3005AE0 -_080D766C: .4byte gUnknown_3005E18 - thumb_func_end sub_080D7614 - - thumb_func_start SetupContestGraphics -SetupContestGraphics: @ 0x080D7670 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x40 - mov sl, r0 - ldrb r0, [r0] - cmp r0, #6 - bls _080D7686 - b _080D78D0 -_080D7686: - lsls r0, r0, #2 - ldr r1, _080D7690 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080D7690: .4byte _080D7694 -_080D7694: @ jump table - .4byte _080D76B0 @ case 0 - .4byte _080D76F4 @ case 1 - .4byte _080D7704 @ case 2 - .4byte _080D7754 @ case 3 - .4byte _080D776C @ case 4 - .4byte _080D77A8 @ case 5 - .4byte _080D7830 @ case 6 -_080D76B0: - ldr r2, _080D76E8 - ldrb r0, [r2, #8] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #8] - movs r1, #0xc0 - lsls r1, r1, #0x13 - movs r4, #0x80 - lsls r4, r4, #8 - movs r0, #0 - adds r2, r4, #0 - movs r3, #1 - bl RequestDma3Fill - ldr r1, _080D76EC - movs r0, #0 - adds r2, r4, #0 - movs r3, #1 - bl RequestDma3Fill - ldr r1, _080D76F0 - movs r0, #0 - adds r2, r4, #0 - movs r3, #1 - bl RequestDma3Fill - b _080D78DA - .align 2, 0 -_080D76E8: .4byte gUnknown_2037C74 -_080D76EC: .4byte 0x06008000 -_080D76F0: .4byte 0x06010000 -_080D76F4: - ldr r0, _080D7700 - movs r1, #0xc0 - lsls r1, r1, #0x13 - bl sub_0803437C - b _080D78DA - .align 2, 0 -_080D7700: .4byte gUnknown_8C17AB8 -_080D7704: - ldr r0, _080D7740 - ldr r4, _080D7744 - adds r1, r4, #0 - bl sub_0803437C - ldr r3, _080D7748 - movs r5, #0x80 - lsls r5, r5, #6 - ldr r1, _080D774C - ldr r6, _080D7750 - movs r2, #0x80 - lsls r2, r2, #5 - movs r7, #0x84 - lsls r7, r7, #0x18 -_080D7720: - str r4, [r1] - str r3, [r1, #4] - str r6, [r1, #8] - ldr r0, [r1, #8] - adds r4, r4, r2 - adds r3, r3, r2 - subs r5, r5, r2 - cmp r5, r2 - bhi _080D7720 - str r4, [r1] - str r3, [r1, #4] - lsrs r0, r5, #2 - orrs r0, r7 - str r0, [r1, #8] - ldr r0, [r1, #8] - b _080D78DA - .align 2, 0 -_080D7740: .4byte gUnknown_8C18650 -_080D7744: .4byte 0x06002000 -_080D7748: .4byte gUnknown_2018000 -_080D774C: .4byte 0x040000D4 -_080D7750: .4byte 0x84000400 -_080D7754: - ldr r1, _080D7768 - movs r0, #3 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - movs r0, #3 - bl CopyBgTilemapBufferToVram - b _080D78DA - .align 2, 0 -_080D7768: .4byte gUnknown_8C16FB0 -_080D776C: - ldr r1, _080D7794 - movs r0, #2 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - movs r0, #2 - bl CopyBgTilemapBufferToVram - ldr r0, _080D7798 - ldr r0, [r0] - ldr r1, [r0, #0x2c] - ldr r2, _080D779C - ldr r0, _080D77A0 - str r1, [r0] - str r2, [r0, #4] - ldr r1, _080D77A4 - str r1, [r0, #8] - ldr r0, [r0, #8] - b _080D78DA - .align 2, 0 -_080D7794: .4byte gUnknown_8C17178 -_080D7798: .4byte gUnknown_2039BD4 -_080D779C: .4byte gUnknown_201AA04 -_080D77A0: .4byte 0x040000D4 -_080D77A4: .4byte 0x84000200 -_080D77A8: - ldr r0, _080D7810 - movs r2, #0x80 - lsls r2, r2, #2 - movs r1, #0 - bl LoadCompressedPalette - ldr r5, _080D7814 - ldr r6, _080D7818 - adds r0, r5, #0 - mov r1, sp - adds r2, r6, #0 - bl CpuSet - ldr r0, _080D781C - mov sb, r0 - ldrb r0, [r0] - adds r0, #5 - lsls r0, r0, #5 - ldr r1, _080D7820 - adds r1, r1, r5 - mov r8, r1 - add r0, r8 - add r4, sp, #0x20 - adds r1, r4, #0 - adds r2, r6, #0 - bl CpuSet - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl CpuSet - mov r2, sb - ldrb r1, [r2] - adds r1, #5 - lsls r1, r1, #5 - add r1, r8 - mov r0, sp - adds r2, r6, #0 - bl CpuSet - ldr r1, _080D7824 - ldr r0, _080D7828 - mov r2, r8 - str r2, [r0] - str r1, [r0, #4] - ldr r1, _080D782C - str r1, [r0, #8] - ldr r0, [r0, #8] - bl sub_080D7058 - b _080D78DA - .align 2, 0 -_080D7810: .4byte gUnknown_8C16E98 -_080D7814: .4byte gUnknown_20374B4 -_080D7818: .4byte 0x04000008 -_080D781C: .4byte gUnknown_2039BC5 -_080D7820: .4byte 0xFFFFFF00 -_080D7824: .4byte gUnknown_201A004 -_080D7828: .4byte 0x040000D4 -_080D782C: .4byte 0x84000080 -_080D7830: - bl DrawContestantWindows - bl FillContestantWindowBgs - bl SwapMoveDescAndContestTilemaps - bl sub_080DA884 - ldr r1, _080D78B8 - ldr r1, [r1] - ldr r1, [r1] - movs r4, #0 - strb r0, [r1, #0x12] - bl sub_080DBA20 - bl sub_080DBC54 - bl CreateApplauseMeterSprite - bl sub_080DBD4C - bl sub_080DBF50 - ldr r1, _080D78BC - strb r4, [r1] - movs r0, #1 - strb r0, [r1, #1] - movs r3, #3 - strb r3, [r1, #2] - movs r2, #2 - strb r2, [r1, #3] - ldr r0, _080D78C0 - str r4, [r0] - ldr r4, _080D78C4 - strb r2, [r4] - ldr r0, _080D78C8 - strb r3, [r0] - bl AnimTask_Splash - ldr r2, _080D78CC - ldrb r1, [r4] - adds r1, r1, r2 - strb r0, [r1] - bl sub_080DE184 - movs r0, #3 - bl CopyBgTilemapBufferToVram - movs r0, #2 - bl CopyBgTilemapBufferToVram - movs r0, #1 - bl CopyBgTilemapBufferToVram - movs r0, #3 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - b _080D78DA - .align 2, 0 -_080D78B8: .4byte gUnknown_2039BD4 -_080D78BC: .4byte gUnknown_2023D1A -_080D78C0: .4byte gUnknown_2022C90 -_080D78C4: .4byte gUnknown_2023EAF -_080D78C8: .4byte gUnknown_2023EB0 -_080D78CC: .4byte gUnknown_2023E88 -_080D78D0: - movs r0, #0 - mov r1, sl - strb r0, [r1] - movs r0, #1 - b _080D78E4 -_080D78DA: - mov r2, sl - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - movs r0, #0 -_080D78E4: - add sp, #0x40 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end SetupContestGraphics - - thumb_func_start sub_080D78F4 -sub_080D78F4: @ 0x080D78F4 - push {lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r1, _080D7928 - ldrb r2, [r1, #8] - movs r0, #0x7f - ands r0, r2 - strb r0, [r1, #8] - ldrb r1, [r1, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _080D7924 - ldr r0, _080D792C - lsls r1, r3, #2 - adds r1, r1, r3 - lsls r1, r1, #3 - adds r1, r1, r0 - strh r2, [r1, #8] - strh r2, [r1, #0xa] - ldr r0, _080D7930 - str r0, [r1] -_080D7924: - pop {r0} - bx r0 - .align 2, 0 -_080D7928: .4byte gUnknown_2037C74 -_080D792C: .4byte gUnknown_3005B60 -_080D7930: .4byte sub_080D7934 - thumb_func_end sub_080D78F4 - - thumb_func_start sub_080D7934 -sub_080D7934: @ 0x080D7934 - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _080D795C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #8 - ldrsh r0, [r0, r2] - adds r2, r1, #0 - cmp r0, #4 - bhi _080D7A34 - lsls r0, r0, #2 - ldr r1, _080D7960 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080D795C: .4byte gUnknown_3005B60 -_080D7960: .4byte _080D7964 -_080D7964: @ jump table - .4byte _080D7978 @ case 0 - .4byte _080D79A2 @ case 1 - .4byte _080D79C0 @ case 2 - .4byte _080D79DC @ case 3 - .4byte _080D7A34 @ case 4 -_080D7978: - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r2 - ldrh r0, [r4, #0xa] - adds r1, r0, #1 - strh r1, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3c - ble _080D7A58 - movs r0, #0 - strh r0, [r4, #0xa] - movs r0, #0x61 - movs r1, #0 - bl PlaySE12WithPanning - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _080D7A58 -_080D79A2: - ldr r1, _080D79BC - ldrh r0, [r1] - adds r0, #7 - strh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xa0 - ble _080D7A58 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r2 - b _080D7A26 - .align 2, 0 -_080D79BC: .4byte gUnknown_2022ACE -_080D79C0: - bl sub_080DDAB4 - ldr r0, _080D79D8 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _080D7A58 - .align 2, 0 -_080D79D8: .4byte gUnknown_3005B60 -_080D79DC: - movs r0, #8 - bl GetGpuReg - mov r1, sp - strh r0, [r1] - movs r0, #0xc - bl GetGpuReg - mov r4, sp - adds r4, #2 - strh r0, [r4] - mov r3, sp - ldrb r2, [r3] - movs r1, #4 - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3] - ldrb r0, [r4] - ands r1, r0 - strb r1, [r4] - mov r0, sp - ldrh r1, [r0] - movs r0, #8 - bl SetGpuReg - ldrh r1, [r4] - movs r0, #0xc - bl SetGpuReg - bl StartMoveApplauseMeterOnscreen - ldr r1, _080D7A30 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 -_080D7A26: - ldrh r1, [r0, #8] - adds r1, #1 - strh r1, [r0, #8] - b _080D7A58 - .align 2, 0 -_080D7A30: .4byte gUnknown_3005B60 -_080D7A34: - ldr r0, _080D7A60 - ldr r0, [r0] - ldr r0, [r0] - ldrb r1, [r0, #6] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _080D7A58 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r2 - strh r1, [r0, #8] - strh r1, [r0, #0xa] - ldr r1, _080D7A64 - str r1, [r0] -_080D7A58: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D7A60: .4byte gUnknown_2039BD4 -_080D7A64: .4byte sub_080D7B68 - thumb_func_end sub_080D7934 - - thumb_func_start CB2_ContestMain -CB2_ContestMain: @ 0x080D7A68 - push {r4, r5, lr} - bl AnimateSprites - bl RunTasks - bl BuildOamBuffer - bl UpdatePaletteFade - movs r4, #0 -_080D7A7C: - ldr r5, _080D7AA4 - ldrb r0, [r5] - asrs r0, r4 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _080D7A92 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl CopyBgTilemapBufferToVram -_080D7A92: - adds r4, #1 - cmp r4, #3 - ble _080D7A7C - movs r0, #0 - strb r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D7AA4: .4byte gUnknown_2039BD8 - thumb_func_end CB2_ContestMain - - thumb_func_start vblank_cb_battle -vblank_cb_battle: @ 0x080D7AA8 - push {lr} - ldr r0, _080D7B38 - ldrh r1, [r0] - movs r0, #0x10 - bl SetGpuReg - ldr r0, _080D7B3C - ldrh r1, [r0] - movs r0, #0x12 - bl SetGpuReg - ldr r0, _080D7B40 - ldrh r1, [r0] - movs r0, #0x14 - bl SetGpuReg - ldr r0, _080D7B44 - ldrh r1, [r0] - movs r0, #0x16 - bl SetGpuReg - ldr r0, _080D7B48 - ldrh r1, [r0] - movs r0, #0x18 - bl SetGpuReg - ldr r0, _080D7B4C - ldrh r1, [r0] - movs r0, #0x1a - bl SetGpuReg - ldr r0, _080D7B50 - ldrh r1, [r0] - movs r0, #0x1c - bl SetGpuReg - ldr r0, _080D7B54 - ldrh r1, [r0] - movs r0, #0x1e - bl SetGpuReg - ldr r0, _080D7B58 - ldrh r1, [r0] - movs r0, #0x40 - bl SetGpuReg - ldr r0, _080D7B5C - ldrh r1, [r0] - movs r0, #0x44 - bl SetGpuReg - ldr r0, _080D7B60 - ldrh r1, [r0] - movs r0, #0x42 - bl SetGpuReg - ldr r0, _080D7B64 - ldrh r1, [r0] - movs r0, #0x46 - bl SetGpuReg - bl TransferPlttBuffer - bl LoadOam - bl ProcessSpriteCopyRequests - bl ScanlineEffect_InitHBlankDmaTransfer - pop {r0} - bx r0 - .align 2, 0 -_080D7B38: .4byte gUnknown_2022AC8 -_080D7B3C: .4byte gUnknown_2022ACA -_080D7B40: .4byte gUnknown_2022ACC -_080D7B44: .4byte gUnknown_2022ACE -_080D7B48: .4byte gUnknown_2022AD0 -_080D7B4C: .4byte gUnknown_2022AD2 -_080D7B50: .4byte gUnknown_2022AD4 -_080D7B54: .4byte gUnknown_2022AD6 -_080D7B58: .4byte gUnknown_2022AD8 -_080D7B5C: .4byte gUnknown_2022ADA -_080D7B60: .4byte gUnknown_2022ADC -_080D7B64: .4byte gUnknown_2022ADE - thumb_func_end vblank_cb_battle - - thumb_func_start sub_080D7B68 -sub_080D7B68: @ 0x080D7B68 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _080D7BCC - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r0, #8 - ldrsh r1, [r4, r0] - cmp r1, #0 - bne _080D7C38 - ldr r0, _080D7BD0 - strh r1, [r0] - ldr r0, _080D7BD4 - strh r1, [r0] - bl ContestDebugDoPrint - ldr r1, _080D7BD8 - ldr r2, _080D7BDC - ldr r0, _080D7BE0 - str r1, [r0] - str r2, [r0, #4] - ldr r1, _080D7BE4 - str r1, [r0, #8] - ldr r0, [r0, #8] - ldr r0, _080D7BE8 - ldr r1, _080D7BEC - ldr r1, [r1] - ldr r1, [r1] - ldrb r1, [r1, #1] - adds r1, #1 - movs r2, #0 - movs r3, #1 - bl sub_080089D8 - adds r4, r0, #0 - ldr r0, _080D7BF0 - ldrb r0, [r0] - bl Contest_IsMonsTurnDisabled - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080D7BF8 - ldr r1, _080D7BF4 - adds r0, r4, #0 - bl StringCopy - b _080D7C00 - .align 2, 0 -_080D7BCC: .4byte gUnknown_3005B60 -_080D7BD0: .4byte gUnknown_2022ACA -_080D7BD4: .4byte gUnknown_2022AD2 -_080D7BD8: .4byte gUnknown_20373B4 -_080D7BDC: .4byte gUnknown_201A204 -_080D7BE0: .4byte 0x040000D4 -_080D7BE4: .4byte 0x84000100 -_080D7BE8: .4byte gUnknown_2022AE0 -_080D7BEC: .4byte gUnknown_2039BD4 -_080D7BF0: .4byte gUnknown_2039BC5 -_080D7BF4: .4byte gUnknown_824B317 -_080D7BF8: - ldr r1, _080D7C28 - adds r0, r4, #0 - bl StringCopy -_080D7C00: - bl sub_080DB000 - ldr r4, _080D7C2C - ldr r1, _080D7C30 - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - movs r1, #1 - bl Contest_StartTextPrinter - ldr r1, _080D7C34 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #8] - adds r1, #1 - strh r1, [r0, #8] - b _080D7C46 - .align 2, 0 -_080D7C28: .4byte gUnknown_824B32D -_080D7C2C: .4byte gUnknown_2021C7C -_080D7C30: .4byte gUnknown_2022AE0 -_080D7C34: .4byte gUnknown_3005B60 -_080D7C38: - bl GetPlayerTextSpeed - cmp r0, #0 - bne _080D7C46 - strh r0, [r4, #8] - ldr r0, _080D7C4C - str r0, [r4] -_080D7C46: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D7C4C: .4byte sub_080D7C50 - thumb_func_end sub_080D7B68 - - thumb_func_start sub_080D7C50 -sub_080D7C50: @ 0x080D7C50 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, r4, #0 - ldr r0, _080D7C90 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080D7C68 - cmp r1, #2 - bne _080D7CAE -_080D7C68: - movs r0, #5 - bl sub_080A306C - ldr r0, _080D7C94 - ldrb r0, [r0] - bl Contest_IsMonsTurnDisabled - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080D7CA0 - movs r0, #1 - bl sub_080DBBF4 - ldr r0, _080D7C98 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080D7C9C - b _080D7CAC - .align 2, 0 -_080D7C90: .4byte gUnknown_3002360 -_080D7C94: .4byte gUnknown_2039BC5 -_080D7C98: .4byte gUnknown_3005B60 -_080D7C9C: .4byte sub_080D7CBC -_080D7CA0: - ldr r0, _080D7CB4 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080D7CB8 -_080D7CAC: - str r0, [r1] -_080D7CAE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D7CB4: .4byte gUnknown_3005B60 -_080D7CB8: .4byte sub_080D8090 - thumb_func_end sub_080D7C50 - - thumb_func_start sub_080D7CBC -sub_080D7CBC: @ 0x080D7CBC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - ldr r0, _080D7D60 - movs r1, #0xa0 - strh r1, [r0] - ldr r0, _080D7D64 - strh r1, [r0] - movs r7, #0 - ldr r0, _080D7D68 - mov sb, r0 - ldr r1, _080D7D6C - mov r8, r1 -_080D7CE2: - lsls r1, r7, #1 - mov r0, sb - ldrb r2, [r0] - lsls r0, r2, #6 - adds r1, r1, r0 - ldr r0, _080D7D70 - adds r1, r1, r0 - ldrh r5, [r1] - mov r6, sp - mov r1, r8 - ldr r0, [r1] - ldr r1, [r0, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0, #8] - cmp r0, #0 - beq _080D7D78 - adds r0, r2, #0 - bl sub_080DD94C - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D7D78 - mov r2, r8 - ldr r0, [r2] - mov r2, sb - ldrb r1, [r2] - ldr r2, [r0, #4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0, #8] - adds r1, r5, #0 - bl AreMovesContestCombo - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D7D78 - mov r1, r8 - ldr r0, [r1] - mov r2, sb - ldrb r1, [r2] - ldr r2, [r0, #4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #0x15] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080D7D78 - mov r0, sp - ldr r1, _080D7D74 - bl StringCopy - adds r6, r0, #0 - lsls r4, r5, #3 - b _080D7DAA - .align 2, 0 -_080D7D60: .4byte gUnknown_2022ACA -_080D7D64: .4byte gUnknown_2022AD2 -_080D7D68: .4byte gUnknown_2039BC5 -_080D7D6C: .4byte gUnknown_2039BD4 -_080D7D70: .4byte gUnknown_2039ABE -_080D7D74: .4byte gUnknown_85CC48C -_080D7D78: - lsls r4, r5, #3 - cmp r5, #0 - beq _080D7DAA - mov r1, r8 - ldr r0, [r1] - mov r2, sb - ldrb r1, [r2] - ldr r2, [r0, #4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0, #8] - cmp r0, r5 - bne _080D7DAA - ldr r0, _080D7E20 - adds r0, r4, r0 - ldrb r0, [r0] - cmp r0, #3 - beq _080D7DAA - mov r0, sp - ldr r1, _080D7E24 - bl StringCopy - adds r6, r0, #0 -_080D7DAA: - ldr r1, _080D7E28 - adds r1, r4, r1 - adds r0, r6, #0 - bl StringCopy - adds r4, r7, #0 - adds r4, #9 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl FillWindowPixelBuffer - adds r0, r4, #0 - mov r1, sp - bl sub_080DE2D4 - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #3 - bls _080D7CE2 - ldr r4, _080D7E2C - ldr r0, [r4] - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - bl sub_080D8038 - ldr r2, _080D7E30 - ldr r0, [r4] - ldr r0, [r0] - ldrb r1, [r0] - lsls r1, r1, #1 - ldr r0, _080D7E34 - ldrb r0, [r0] - lsls r0, r0, #6 - adds r1, r1, r0 - adds r2, #0x1e - adds r1, r1, r2 - ldrh r0, [r1] - bl sub_080DAAD4 - ldr r1, _080D7E38 - mov r2, sl - lsls r0, r2, #2 - add r0, sl - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080D7E3C - str r1, [r0] - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D7E20: .4byte gUnknown_8565FCC -_080D7E24: .4byte gUnknown_85CC493 -_080D7E28: .4byte gUnknown_82EACC4 -_080D7E2C: .4byte gUnknown_2039BD4 -_080D7E30: .4byte gUnknown_2039AA0 -_080D7E34: .4byte gUnknown_2039BC5 -_080D7E38: .4byte gUnknown_3005B60 -_080D7E3C: .4byte ReadMail - thumb_func_end sub_080D7CBC - - thumb_func_start ReadMail -ReadMail: @ 0x080D7E40 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r6, #0 - ldr r3, _080D7E8C - ldr r1, _080D7E90 - ldr r0, _080D7E94 - ldrb r0, [r0] - lsls r0, r0, #6 - adds r1, #0x1e - adds r1, r0, r1 - movs r2, #3 -_080D7E58: - ldrh r0, [r1] - cmp r0, #0 - beq _080D7E64 - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_080D7E64: - adds r1, #2 - subs r2, #1 - cmp r2, #0 - bge _080D7E58 - ldrh r0, [r3, #0x2e] - movs r5, #1 - ands r5, r0 - cmp r5, #0 - beq _080D7EA0 - movs r0, #5 - bl sub_080A306C - ldr r0, _080D7E98 - lsls r1, r7, #2 - adds r1, r1, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080D7E9C - str r0, [r1] - b _080D8026 - .align 2, 0 -_080D7E8C: .4byte gUnknown_3002360 -_080D7E90: .4byte gUnknown_2039AA0 -_080D7E94: .4byte gUnknown_2039BC5 -_080D7E98: .4byte gUnknown_3005B60 -_080D7E9C: .4byte sub_080D8090 -_080D7EA0: - ldrh r0, [r3, #0x30] - cmp r0, #0x20 - bne _080D7EA8 - b _080D8026 -_080D7EA8: - cmp r0, #0x20 - bgt _080D7EB2 - cmp r0, #2 - beq _080D7EBE - b _080D8026 -_080D7EB2: - cmp r0, #0x40 - beq _080D7F5C - cmp r0, #0x80 - bne _080D7EBC - b _080D7FC8 -_080D7EBC: - b _080D8026 -_080D7EBE: - movs r0, #5 - bl sub_080A306C - movs r0, #0 - bl sub_080DBBF4 - ldr r0, _080D7EF8 - ldr r1, _080D7EFC - ldr r1, [r1] - ldr r1, [r1] - ldrb r1, [r1, #1] - adds r1, #1 - movs r2, #0 - movs r3, #1 - bl sub_080089D8 - adds r4, r0, #0 - ldr r0, _080D7F00 - ldrb r0, [r0] - bl Contest_IsMonsTurnDisabled - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080D7F08 - ldr r1, _080D7F04 - adds r0, r4, #0 - bl StringCopy - b _080D7F10 - .align 2, 0 -_080D7EF8: .4byte gUnknown_2022AE0 -_080D7EFC: .4byte gUnknown_2039BD4 -_080D7F00: .4byte gUnknown_2039BC5 -_080D7F04: .4byte gUnknown_824B317 -_080D7F08: - ldr r1, _080D7F40 - adds r0, r4, #0 - bl StringCopy -_080D7F10: - bl sub_080DB000 - ldr r4, _080D7F44 - ldr r1, _080D7F48 - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - movs r1, #0 - bl Contest_StartTextPrinter - ldr r0, _080D7F4C - movs r1, #0 - strh r1, [r0] - ldr r0, _080D7F50 - strh r1, [r0] - ldr r1, _080D7F54 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080D7F58 - str r1, [r0] - b _080D8026 - .align 2, 0 -_080D7F40: .4byte gUnknown_824B32D -_080D7F44: .4byte gUnknown_2021C7C -_080D7F48: .4byte gUnknown_2022AE0 -_080D7F4C: .4byte gUnknown_2022ACA -_080D7F50: .4byte gUnknown_2022AD2 -_080D7F54: .4byte gUnknown_3005B60 -_080D7F58: .4byte sub_080D7C50 -_080D7F5C: - ldr r4, _080D7F7C - ldr r0, [r4] - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - bl sub_080D8064 - ldr r0, [r4] - ldr r1, [r0] - ldrb r0, [r1] - cmp r0, #0 - bne _080D7F80 - subs r0, r6, #1 - b _080D7F82 - .align 2, 0 -_080D7F7C: .4byte gUnknown_2039BD4 -_080D7F80: - subs r0, #1 -_080D7F82: - strb r0, [r1] - ldr r4, _080D7FBC - ldr r0, [r4] - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - bl sub_080D8038 - ldr r2, _080D7FC0 - ldr r0, [r4] - ldr r0, [r0] - ldrb r1, [r0] - lsls r1, r1, #1 - ldr r0, _080D7FC4 - ldrb r0, [r0] - lsls r0, r0, #6 - adds r1, r1, r0 - adds r2, #0x1e - adds r1, r1, r2 - ldrh r0, [r1] - bl sub_080DAAD4 - cmp r6, #1 - bls _080D8026 - movs r0, #5 - bl sub_080A306C - b _080D8026 - .align 2, 0 -_080D7FBC: .4byte gUnknown_2039BD4 -_080D7FC0: .4byte gUnknown_2039AA0 -_080D7FC4: .4byte gUnknown_2039BC5 -_080D7FC8: - ldr r4, _080D7FE8 - ldr r0, [r4] - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - bl sub_080D8064 - ldr r0, [r4] - ldr r1, [r0] - ldrb r2, [r1] - subs r0, r6, #1 - cmp r2, r0 - bne _080D7FEC - strb r5, [r1] - b _080D7FF0 - .align 2, 0 -_080D7FE8: .4byte gUnknown_2039BD4 -_080D7FEC: - adds r0, r2, #1 - strb r0, [r1] -_080D7FF0: - ldr r4, _080D802C - ldr r0, [r4] - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - bl sub_080D8038 - ldr r2, _080D8030 - ldr r0, [r4] - ldr r0, [r0] - ldrb r1, [r0] - lsls r1, r1, #1 - ldr r0, _080D8034 - ldrb r0, [r0] - lsls r0, r0, #6 - adds r1, r1, r0 - adds r2, #0x1e - adds r1, r1, r2 - ldrh r0, [r1] - bl sub_080DAAD4 - cmp r6, #1 - bls _080D8026 - movs r0, #5 - bl sub_080A306C -_080D8026: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D802C: .4byte gUnknown_2039BD4 -_080D8030: .4byte gUnknown_2039AA0 -_080D8034: .4byte gUnknown_2039BC5 - thumb_func_end ReadMail - - thumb_func_start sub_080D8038 -sub_080D8038: @ 0x080D8038 - push {lr} - sub sp, #0x10 - adds r3, r0, #0 - lsls r3, r3, #0x19 - movs r0, #0xf8 - lsls r0, r0, #0x15 - adds r3, r3, r0 - lsrs r3, r3, #0x18 - movs r1, #1 - str r1, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - str r1, [sp, #0xc] - movs r0, #2 - movs r2, #1 - bl ContestBG_FillBoxWithIncrementingTile - add sp, #0x10 - pop {r0} - bx r0 - thumb_func_end sub_080D8038 - - thumb_func_start sub_080D8064 -sub_080D8064: @ 0x080D8064 - push {lr} - sub sp, #0xc - adds r3, r0, #0 - lsls r3, r3, #0x19 - movs r0, #0xf8 - lsls r0, r0, #0x15 - adds r3, r3, r0 - lsrs r3, r3, #0x18 - movs r0, #1 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #2 - movs r1, #0xc - movs r2, #1 - bl ContestBG_FillBoxWithTile - add sp, #0xc - pop {r0} - bx r0 - thumb_func_end sub_080D8064 - - thumb_func_start sub_080D8090 -sub_080D8090: @ 0x080D8090 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _080D80EC - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080D8108 - ldr r4, _080D80F0 - ldrb r0, [r4] - bl GetChosenMove - ldr r1, _080D80F4 - ldr r1, [r1] - ldrb r2, [r4] - ldr r3, [r1, #4] - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r3 - strh r0, [r1, #6] - ldr r4, _080D80F8 - adds r0, r4, #0 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080D80FC - adds r1, r4, #0 - bl SetTaskFuncWithFollowupFunc - ldr r1, _080D8100 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080D8104 - str r1, [r0] - bl ContestPrintLinkStandby - movs r0, #0 - bl sub_080DBBF4 - b _080D811A - .align 2, 0 -_080D80EC: .4byte gUnknown_2039BCA -_080D80F0: .4byte gUnknown_2039BC5 -_080D80F4: .4byte gUnknown_2039BD4 -_080D80F8: .4byte sub_080FD24C -_080D80FC: .4byte sub_080D8128 -_080D8100: .4byte gUnknown_3005B60 -_080D8104: .4byte sub_080D6E94 -_080D8108: - bl GetAllChosenMoves - ldr r0, _080D8120 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080D8124 - str r0, [r1] -_080D811A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D8120: .4byte gUnknown_3005B60 -_080D8124: .4byte sub_080D8158 - thumb_func_end sub_080D8090 - - thumb_func_start sub_080D8128 -sub_080D8128: @ 0x080D8128 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - ldr r2, _080D814C - ldr r0, _080D8150 - ldr r0, [r0] - ldr r0, [r0] - ldrb r1, [r0, #8] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldr r1, _080D8154 - str r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080D814C: .4byte gUnknown_3005B60 -_080D8150: .4byte gUnknown_2039BD4 -_080D8154: .4byte sub_080D8158 - thumb_func_end sub_080D8128 - - thumb_func_start sub_080D8158 -sub_080D8158: @ 0x080D8158 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - bl sub_080DB000 - ldr r0, _080D81E0 - movs r1, #0 - strh r1, [r0] - ldr r0, _080D81E4 - strh r1, [r0] - movs r0, #0 - bl sub_080DBBF4 - movs r6, #0 - movs r5, #0x90 - lsls r5, r5, #0x14 -_080D8178: - lsrs r4, r5, #0x18 - adds r0, r4, #0 - movs r1, #0 - bl FillWindowPixelBuffer - adds r0, r4, #0 - bl PutWindowTilemap - adds r0, r4, #0 - movs r1, #2 - bl CopyWindowToVram - movs r0, #0x80 - lsls r0, r0, #0x11 - adds r5, r5, r0 - adds r6, #1 - cmp r6, #3 - ble _080D8178 - movs r0, #0 - bl Contest_SetBgCopyFlags - ldr r1, _080D81E8 - ldr r0, _080D81EC - movs r2, #0x80 - lsls r2, r2, #3 - ldr r4, _080D81F0 - str r1, [r4] - str r0, [r4, #4] - lsrs r1, r2, #2 - movs r3, #0x84 - lsls r3, r3, #0x18 - orrs r1, r3 - str r1, [r4, #8] - ldr r1, [r4, #8] - ldr r1, _080D81F4 - adds r0, r0, r1 - movs r1, #0 - bl LoadPalette - ldr r1, _080D81F8 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #8] - strh r1, [r0, #0xa] - ldr r1, _080D81FC - str r1, [r0] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D81E0: .4byte gUnknown_2022ACA -_080D81E4: .4byte gUnknown_2022AD2 -_080D81E8: .4byte gUnknown_20377B4 -_080D81EC: .4byte gUnknown_201A604 -_080D81F0: .4byte 0x040000D4 -_080D81F4: .4byte 0xFFFFFC00 -_080D81F8: .4byte gUnknown_3005B60 -_080D81FC: .4byte sub_080D8200 - thumb_func_end sub_080D8158 - - thumb_func_start sub_080D8200 -sub_080D8200: @ 0x080D8200 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080D8244 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - ble _080D823E - movs r0, #0 - strh r0, [r4, #8] - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - bne _080D823E - bl TryMoveApplauseMeterOffscreen - movs r0, #1 - bl sub_080DDE00 - ldr r0, _080D8248 - str r0, [r4] -_080D823E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D8244: .4byte gUnknown_3005B60 -_080D8248: .4byte sub_080D824C - thumb_func_end sub_080D8200 - - thumb_func_start sub_080D824C -sub_080D824C: @ 0x080D824C - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _080D8278 - ldr r0, [r0] - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0x90 - lsls r0, r0, #2 - ands r0, r1 - cmp r0, #0 - bne _080D8272 - ldr r0, _080D827C - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080D8280 - str r0, [r1] -_080D8272: - pop {r0} - bx r0 - .align 2, 0 -_080D8278: .4byte gUnknown_2039BD4 -_080D827C: .4byte gUnknown_3005B60 -_080D8280: .4byte sub_080D8284 - thumb_func_end sub_080D824C - - thumb_func_start sub_080D8284 -sub_080D8284: @ 0x080D8284 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _080D831C - lsls r3, r6, #2 - adds r1, r3, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x13 - ble _080D8314 - ldr r2, _080D8320 - ldr r0, [r2] - ldr r1, [r0] - movs r0, #0 - strb r0, [r1, #0x10] - ldr r0, [r2] - ldr r1, [r0] - ldr r0, _080D8324 - ldr r0, [r0] - str r0, [r1, #0x18] - ldr r0, _080D8328 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - adds r7, r3, #0 - cmp r0, #0 - beq _080D8304 - bl sub_080DA094 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D8304 - movs r4, #0 - ldr r1, _080D832C - ldrb r0, [r1] - cmp r0, #3 - bgt _080D8304 - adds r5, r1, #0 -_080D82DA: - ldrb r0, [r5] - adds r0, r0, r4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetChosenMove - ldr r1, _080D8320 - ldr r1, [r1] - ldrb r2, [r5] - adds r2, r2, r4 - ldr r3, [r1, #4] - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r3 - strh r0, [r1, #6] - adds r4, #1 - ldrb r0, [r5] - adds r0, r4, r0 - cmp r0, #3 - ble _080D82DA -_080D8304: - ldr r1, _080D831C - adds r0, r7, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #8] - ldr r1, _080D8330 - str r1, [r0] -_080D8314: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080D831C: .4byte gUnknown_3005B60 -_080D8320: .4byte gUnknown_2039BD4 -_080D8324: .4byte gUnknown_3005AE0 -_080D8328: .4byte gUnknown_2039BCA -_080D832C: .4byte gUnknown_2039BD0 -_080D8330: .4byte NamingScreen_Init - thumb_func_end sub_080D8284 - - thumb_func_start NamingScreen_Init -NamingScreen_Init: @ 0x080D8334 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r2, _080D8374 - ldr r0, [r2] - ldr r0, [r0] - ldrb r6, [r0, #0x11] - ldr r1, _080D8378 - mov r3, r8 - lsls r0, r3, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r4, #8 - ldrsh r0, [r0, r4] - mov sb, r2 - adds r4, r1, #0 - cmp r0, #0x3b - bls _080D836A - bl _080D98F0 -_080D836A: - lsls r0, r0, #2 - ldr r1, _080D837C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080D8374: .4byte gUnknown_2039BD4 -_080D8378: .4byte gUnknown_3005B60 -_080D837C: .4byte _080D8380 -_080D8380: @ jump table - .4byte _080D8470 @ case 0 - .4byte _080D852C @ case 1 - .4byte _080D8552 @ case 2 - .4byte _080D85C0 @ case 3 - .4byte _080D8678 @ case 4 - .4byte _080D86C4 @ case 5 - .4byte _080D877C @ case 6 - .4byte _080D87B0 @ case 7 - .4byte _080D8808 @ case 8 - .4byte _080D8884 @ case 9 - .4byte _080D97B0 @ case 10 - .4byte _080D97DC @ case 11 - .4byte _080D8A30 @ case 12 - .4byte _080D8A64 @ case 13 - .4byte _080D8F6C @ case 14 - .4byte _080D905C @ case 15 - .4byte _080D90CC @ case 16 - .4byte _080D90FC @ case 17 - .4byte _080D91E4 @ case 18 - .4byte _080D9196 @ case 19 - .4byte _080D9814 @ case 20 - .4byte _080D9890 @ case 21 - .4byte _080D98B2 @ case 22 - .4byte _080D88AC @ case 23 - .4byte _080D8978 @ case 24 - .4byte _080D8B80 @ case 25 - .4byte _080D8B96 @ case 26 - .4byte _080D8C74 @ case 27 - .4byte _080D8C98 @ case 28 - .4byte _080D8D00 @ case 29 - .4byte _080D8DE4 @ case 30 - .4byte _080D9828 @ case 31 - .4byte _080D9870 @ case 32 - .4byte _080D96B0 @ case 33 - .4byte _080D9738 @ case 34 - .4byte _080D8A92 @ case 35 - .4byte _080D8AC8 @ case 36 - .4byte _080D8AEE @ case 37 - .4byte _080D8B2C @ case 38 - .4byte _080D8D54 @ case 39 - .4byte _080D8DBC @ case 40 - .4byte _080D9224 @ case 41 - .4byte _080D98F0 @ case 42 - .4byte _080D95A4 @ case 43 - .4byte _080D98F0 @ case 44 - .4byte _080D9028 @ case 45 - .4byte _080D9174 @ case 46 - .4byte _080D8A12 @ case 47 - .4byte _080D899C @ case 48 - .4byte _080D89EC @ case 49 - .4byte _080D8B54 @ case 50 - .4byte _080D8E88 @ case 51 - .4byte _080D8F14 @ case 52 - .4byte _080D93A2 @ case 53 - .4byte _080D9460 @ case 54 - .4byte _080D9758 @ case 55 - .4byte _080D9774 @ case 56 - .4byte _080D95CC @ case 57 - .4byte _080D9654 @ case 58 - .4byte _080D9694 @ case 59 -_080D8470: - bl ContestDebugDoPrint - movs r7, #0 - ldr r0, _080D84FC - ldr r0, [r0] - ldr r1, [r0] - ldr r0, [r0, #8] - ldrb r1, [r1, #0x10] - mov r5, r8 - lsls r5, r5, #2 - mov sl, r5 - ldrb r2, [r0] - cmp r1, r2 - beq _080D8498 - adds r2, r0, #0 -_080D848E: - adds r7, #1 - adds r0, r2, r7 - ldrb r0, [r0] - cmp r1, r0 - bne _080D848E -_080D8498: - ldr r4, _080D84FC - ldr r0, [r4] - ldr r0, [r0] - strb r7, [r0, #0x11] - ldr r0, [r4] - ldr r2, [r0] - ldrb r6, [r2, #0x11] - ldr r0, _080D8500 - ldrb r1, [r0] - movs r5, #1 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _080D8510 - ldrb r0, [r2, #7] - movs r1, #4 - orrs r0, r1 - strb r0, [r2, #7] - bl sub_080DA094 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D84D0 - ldr r0, [r4] - ldr r0, [r0] - ldrb r0, [r0, #0x11] - bl sub_080DC7E4 -_080D84D0: - ldr r4, _080D8504 - adds r0, r4, #0 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080D8508 - adds r1, r4, #0 - bl SetTaskFuncWithFollowupFunc - bl ContestPrintLinkStandby - ldr r1, _080D850C - mov r0, sl - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r5, [r0, #8] - bl _080D98F0 - .align 2, 0 -_080D84FC: .4byte gUnknown_2039BD4 -_080D8500: .4byte gUnknown_2039BCA -_080D8504: .4byte sub_080FD4DC -_080D8508: .4byte sub_080D9900 -_080D850C: .4byte gUnknown_3005B60 -_080D8510: - adds r0, r6, #0 - bl sub_080DC7E4 - ldr r0, _080D8528 - mov r1, sl - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #2 - strh r0, [r1, #8] - bl _080D98F0 - .align 2, 0 -_080D8528: .4byte gUnknown_3005B60 -_080D852C: - mov r3, sb - ldr r0, [r3] - ldr r0, [r0] - ldrb r1, [r0, #7] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080D8540 - bl _080D98F0 -_080D8540: - mov r5, r8 - lsls r0, r5, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r4 - movs r1, #2 - strh r1, [r0, #8] - bl _080D98F0 -_080D8552: - adds r0, r6, #0 - bl sub_080DE788 - bl sub_080DEE2C - ldr r0, _080D8598 - ldr r0, [r0] - ldr r1, [r0, #4] - lsls r0, r6, #3 - subs r0, r0, r6 - lsls r0, r0, #2 - adds r2, r0, r1 - ldrb r1, [r2, #0xc] - movs r0, #6 - ands r0, r1 - cmp r0, #0 - bne _080D8582 - ldrb r1, [r2, #0xb] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - beq _080D85A0 -_080D8582: - ldr r0, _080D859C - mov r2, r8 - lsls r1, r2, #2 - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0x1f - strh r0, [r1, #8] - bl _080D98F0 - .align 2, 0 -_080D8598: .4byte gUnknown_2039BD4 -_080D859C: .4byte gUnknown_3005B60 -_080D85A0: - bl sub_080DB000 - ldr r0, _080D85BC - mov r3, r8 - lsls r1, r3, #2 - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - strh r6, [r1, #0x1c] - movs r0, #3 - strh r0, [r1, #8] - bl _080D98F0 - .align 2, 0 -_080D85BC: .4byte gUnknown_3005B60 -_080D85C0: - mov r4, r8 - lsls r4, r4, #2 - mov sl, r4 - ldr r1, _080D865C - movs r2, #0 - adds r0, r1, #3 -_080D85CC: - strb r2, [r0] - subs r0, #1 - cmp r0, r1 - bge _080D85CC - movs r7, #4 - mov r5, sb - ldr r0, [r5] - ldr r0, [r0, #0x18] - movs r1, #0 - movs r2, #0x14 - bl memset - ldr r0, [r5] - ldr r0, [r0] - ldrb r0, [r0, #0x11] - bl sub_080DE140 - ldr r4, _080D8660 - ldr r0, [r5] - ldr r0, [r0] - ldrb r3, [r0, #0x11] - lsls r2, r3, #6 - adds r0, r2, r4 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x3c - adds r1, r2, r1 - ldr r1, [r1] - adds r4, #0x38 - adds r2, r2, r4 - ldr r2, [r2] - bl sub_080DA8D8 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r2, _080D8664 - lsls r0, r5, #4 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r3, r0, r2 - movs r1, #0x78 - strh r1, [r3, #0x24] - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, _080D8668 - str r1, [r0] - ldr r0, _080D866C - mov r4, sl - add r4, r8 - lsls r4, r4, #3 - adds r4, r4, r0 - strh r5, [r4, #0xc] - ldr r1, _080D8670 - ldr r0, _080D8674 - ldrb r0, [r0] - adds r0, r0, r1 - strb r5, [r0] - mov r1, sb - ldr r0, [r1] - ldr r0, [r0] - ldrb r0, [r0, #0x11] - bl IsMetatileDirectionallyImpassable - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl sub_080DC34C - strh r7, [r4, #8] - bl _080D98F0 - .align 2, 0 -_080D865C: .4byte gUnknown_2024188 -_080D8660: .4byte gUnknown_2039AA0 -_080D8664: .4byte gUnknown_20205AC -_080D8668: .4byte sub_080D9924 -_080D866C: .4byte gUnknown_3005B60 -_080D8670: .4byte gUnknown_2023E88 -_080D8674: .4byte gUnknown_2023EAF -_080D8678: - mov r2, r8 - lsls r0, r2, #2 - add r0, r8 - lsls r0, r0, #3 - adds r2, r0, r4 - ldrb r5, [r2, #0xc] - ldr r1, _080D86BC - lsls r0, r5, #4 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, [r0] - ldr r0, _080D86C0 - cmp r1, r0 - beq _080D869C - bl _080D98F0 -_080D869C: - mov r3, sb - ldr r0, [r3] - ldr r1, [r0, #0x14] - lsls r0, r6, #2 - adds r0, r0, r1 - ldrb r1, [r0, #2] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080D86B4 - bl _080D98F0 -_080D86B4: - movs r0, #5 - strh r0, [r2, #8] - bl _080D98F0 - .align 2, 0 -_080D86BC: .4byte gUnknown_20205AC -_080D86C0: .4byte sub_08007140 -_080D86C4: - mov r5, sb - ldr r0, [r5] - ldr r1, [r0, #4] - lsls r0, r6, #3 - subs r0, r0, r6 - lsls r5, r0, #2 - adds r1, r5, r1 - ldrb r1, [r1, #0xc] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080D86EE - mov r1, r8 - lsls r0, r1, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r4 - movs r1, #0x21 - strh r1, [r0, #8] - bl _080D98F0 -_080D86EE: - bl sub_080DB000 - ldr r0, _080D8720 - lsls r1, r6, #6 - ldr r2, _080D8724 - adds r1, r1, r2 - bl StringCopy - mov r2, sb - ldr r0, [r2] - ldr r0, [r0, #4] - adds r3, r5, r0 - ldrh r1, [r3, #6] - movs r0, #0xb1 - lsls r0, r0, #1 - cmp r1, r0 - bhi _080D8730 - ldr r0, _080D8728 - lsls r1, r1, #3 - ldr r2, _080D872C - adds r1, r1, r2 - bl StringCopy - b _080D8740 - .align 2, 0 -_080D8720: .4byte gUnknown_2021C40 -_080D8724: .4byte gUnknown_2039AA2 -_080D8728: .4byte gUnknown_2021C54 -_080D872C: .4byte gUnknown_82EACC4 -_080D8730: - ldr r0, _080D8768 - ldr r2, _080D876C - ldrb r1, [r3, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl StringCopy -_080D8740: - ldr r4, _080D8770 - ldr r1, _080D8774 - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - movs r1, #1 - bl Contest_StartTextPrinter - ldr r1, _080D8778 - mov r3, r8 - lsls r0, r3, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #6 - strh r1, [r0, #8] - bl _080D98F0 - .align 2, 0 -_080D8768: .4byte gUnknown_2021C54 -_080D876C: .4byte gUnknown_8560E80 -_080D8770: .4byte gUnknown_2021C7C -_080D8774: .4byte gUnknown_824B346 -_080D8778: .4byte gUnknown_3005B60 -_080D877C: - bl GetPlayerTextSpeed - adds r1, r0, #0 - cmp r1, #0 - beq _080D878A - bl _080D98F0 -_080D878A: - ldr r0, _080D87A8 - ldr r0, [r0] - ldr r0, [r0] - adds r0, #0x5a - strb r1, [r0] - ldr r1, _080D87AC - mov r4, r8 - lsls r0, r4, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #7 - strh r1, [r0, #8] - bl _080D98F0 - .align 2, 0 -_080D87A8: .4byte gUnknown_2039BD4 -_080D87AC: .4byte gUnknown_3005B60 -_080D87B0: - mov r5, sb - ldr r1, [r5] - ldr r0, [r1] - ldrb r2, [r0, #0x11] - ldr r1, [r1, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0, #6] - bl SanitizeMove - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r0, [r5] - ldr r0, [r0] - ldrb r0, [r0, #0x11] - bl sub_080DDFC8 - ldr r0, [r5] - ldr r0, [r0] - ldrb r0, [r0, #0x11] - bl sub_080DE140 - adds r0, r4, #0 - bl SelectContestMoveBankTarget - adds r0, r4, #0 - bl DoMoveAnim - ldr r1, _080D8804 - mov r2, r8 - lsls r0, r2, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #8 - strh r1, [r0, #8] - bl _080D98F0 - .align 2, 0 -_080D8804: .4byte gUnknown_3005B60 -_080D8808: - ldr r0, _080D8848 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _080D884C - ldrb r4, [r0] - cmp r4, #0 - beq _080D881C - bl _080D98F0 -_080D881C: - adds r0, r6, #0 - bl sub_080DE114 - ldr r0, _080D8850 - ldr r1, [r0] - ldr r0, [r1] - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #0 - beq _080D8858 - ldr r0, _080D8854 - mov r3, r8 - lsls r1, r3, #2 - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - strh r4, [r1, #0x1c] - movs r0, #9 - strh r0, [r1, #8] - bl _080D98F0 - .align 2, 0 -_080D8848: .4byte gUnknown_2038098 -_080D884C: .4byte gUnknown_203809D -_080D8850: .4byte gUnknown_2039BD4 -_080D8854: .4byte gUnknown_3005B60 -_080D8858: - ldr r1, [r1, #4] - lsls r0, r6, #3 - subs r0, r0, r6 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #0x15] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _080D8872 - adds r0, r6, #0 - bl sub_080DBDD8 -_080D8872: - bl sub_080DD890 - ldr r0, _080D8880 - mov r4, r8 - lsls r1, r4, #2 - b _080D898A - .align 2, 0 -_080D8880: .4byte gUnknown_3005B60 -_080D8884: - mov r5, r8 - lsls r0, r5, #2 - add r0, r8 - lsls r0, r0, #3 - adds r2, r0, r4 - ldrh r0, [r2, #0x1c] - adds r1, r0, #1 - strh r1, [r2, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1e - bgt _080D88A0 - bl _080D98F0 -_080D88A0: - movs r0, #0 - strh r0, [r2, #0x1c] - movs r0, #7 - strh r0, [r2, #8] - bl _080D98F0 -_080D88AC: - mov r0, r8 - lsls r2, r0, #2 - adds r0, r2, r0 - lsls r0, r0, #3 - adds r7, r0, r4 - movs r0, #0 - strh r0, [r7, #0xa] - mov r1, sb - ldr r0, [r1] - ldr r0, [r0, #4] - mov ip, r0 - lsls r1, r6, #3 - subs r0, r1, r6 - lsls r5, r0, #2 - mov r0, ip - adds r3, r5, r0 - ldrb r0, [r3, #0x13] - mov sl, r2 - str r1, [sp, #4] - cmp r0, #0xff - beq _080D88F2 - ldrb r1, [r3, #0x13] - adds r0, r6, #0 - bl sub_080DCBC0 - mov r1, sb - ldr r0, [r1] - ldr r0, [r0, #4] - adds r0, r5, r0 - movs r1, #0xff - strb r1, [r0, #0x13] - movs r0, #0x18 - strh r0, [r7, #8] - bl _080D98F0 -_080D88F2: - ldrb r0, [r3, #0x14] - cmp r0, #0xff - beq _080D8970 - movs r7, #0 - cmp r7, r6 - beq _080D8906 - mov r2, ip - ldrb r0, [r2, #0x13] - cmp r0, #0xff - bne _080D8924 -_080D8906: - adds r7, #1 - cmp r7, #3 - bgt _080D8924 - cmp r7, r6 - beq _080D8906 - mov r3, sb - ldr r0, [r3] - ldr r1, [r0, #4] - lsls r0, r7, #3 - subs r0, r0, r7 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #0x13] - cmp r0, #0xff - beq _080D8906 -_080D8924: - cmp r7, #4 - bne _080D8960 - mov r4, sb - ldr r0, [r4] - ldr r0, [r0, #4] - ldr r5, [sp, #4] - subs r4, r5, r6 - lsls r4, r4, #2 - adds r0, r4, r0 - ldrb r1, [r0, #0x14] - adds r0, r6, #0 - bl sub_080DCBC0 - mov r1, sb - ldr r0, [r1] - ldr r0, [r0, #4] - adds r4, r4, r0 - movs r0, #0xff - strb r0, [r4, #0x14] - ldr r1, _080D895C - mov r0, sl - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0x18 - strh r1, [r0, #8] - bl _080D98F0 - .align 2, 0 -_080D895C: .4byte gUnknown_3005B60 -_080D8960: - mov r0, sl - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r4 - movs r1, #0x30 - strh r1, [r0, #8] - bl _080D98F0 -_080D8970: - movs r0, #0x30 - strh r0, [r7, #8] - bl _080D98F0 -_080D8978: - bl GetPlayerTextSpeed - cmp r0, #0 - beq _080D8984 - bl _080D98F0 -_080D8984: - ldr r0, _080D8998 - mov r2, r8 - lsls r1, r2, #2 -_080D898A: - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0x17 - strh r0, [r1, #8] - bl _080D98F0 - .align 2, 0 -_080D8998: .4byte gUnknown_3005B60 -_080D899C: - mov r3, sb - ldr r0, [r3] - ldr r1, [r0, #4] - lsls r0, r6, #3 - subs r0, r0, r6 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #0x11] - movs r3, #3 - ands r3, r0 - cmp r3, #1 - bne _080D89BC - movs r0, #5 - bl sub_080DCE84 - b _080D89D2 -_080D89BC: - cmp r3, #2 - bne _080D89C8 - movs r0, #6 - bl sub_080DCE84 - b _080D89D2 -_080D89C8: - cmp r3, #3 - bne _080D8A00 - movs r0, #7 - bl sub_080DCE84 -_080D89D2: - ldr r0, _080D89E8 - mov r2, r8 - lsls r1, r2, #2 - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0x31 - strh r0, [r1, #8] - bl _080D98F0 - .align 2, 0 -_080D89E8: .4byte gUnknown_3005B60 -_080D89EC: - mov r3, sb - ldr r0, [r3] - ldr r0, [r0] - ldrb r1, [r0, #6] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080D8A00 - bl _080D98F0 -_080D8A00: - mov r5, r8 - lsls r0, r5, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r4 - movs r1, #0x2f - strh r1, [r0, #8] - bl _080D98F0 -_080D8A12: - movs r0, #1 - bl sub_080DD76C - ldr r0, _080D8A2C - mov r2, r8 - lsls r1, r2, #2 - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0xc - strh r0, [r1, #8] - bl _080D98F0 - .align 2, 0 -_080D8A2C: .4byte gUnknown_3005B60 -_080D8A30: - mov r3, sb - ldr r0, [r3] - ldr r1, [r0, #4] - lsls r0, r6, #3 - subs r0, r0, r6 - lsls r0, r0, #2 - adds r0, r0, r1 - movs r4, #2 - ldrsh r1, [r0, r4] - movs r0, #0 - adds r2, r6, #0 - bl sub_080DB78C - ldr r1, _080D8A60 - mov r5, r8 - lsls r0, r5, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0xd - strh r1, [r0, #8] - bl _080D98F0 - .align 2, 0 -_080D8A60: .4byte gUnknown_3005B60 -_080D8A64: - mov r0, sb - ldr r1, [r0] - ldr r0, [r1] - ldrb r0, [r0, #0x11] - ldr r1, [r1, #0x14] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #2] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080D8A80 - bl _080D98F0 -_080D8A80: - mov r1, r8 - lsls r0, r1, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r4 - movs r1, #0x23 - strh r1, [r0, #8] - bl _080D98F0 -_080D8A92: - mov r2, sb - ldr r0, [r2] - ldr r1, [r0, #4] - lsls r0, r6, #3 - subs r0, r0, r6 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #0x10] - movs r0, #0x30 - ands r0, r1 - cmp r0, #0x10 - bne _080D8AB0 - movs r0, #8 - bl sub_080DCE84 -_080D8AB0: - ldr r0, _080D8AC4 - mov r3, r8 - lsls r1, r3, #2 - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0x24 - strh r0, [r1, #8] - bl _080D98F0 - .align 2, 0 -_080D8AC4: .4byte gUnknown_3005B60 -_080D8AC8: - mov r5, sb - ldr r0, [r5] - ldr r0, [r0] - ldrb r1, [r0, #6] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080D8ADC - bl _080D98F0 -_080D8ADC: - mov r1, r8 - lsls r0, r1, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r4 - movs r1, #0x25 - strh r1, [r0, #8] - bl _080D98F0 -_080D8AEE: - adds r0, r6, #0 - movs r1, #1 - bl sub_080DAD1C - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D8B18 - ldr r1, _080D8B14 - mov r2, r8 - lsls r0, r2, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #0x1c] - movs r1, #0x26 - strh r1, [r0, #8] - bl _080D98F0 - .align 2, 0 -_080D8B14: .4byte gUnknown_3005B60 -_080D8B18: - ldr r0, _080D8B28 - mov r3, r8 - lsls r1, r3, #2 - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - b _080D8B4C - .align 2, 0 -_080D8B28: .4byte gUnknown_3005B60 -_080D8B2C: - mov r5, r8 - lsls r0, r5, #2 - add r0, r8 - lsls r0, r0, #3 - adds r1, r0, r4 - ldrh r0, [r1, #0x1c] - adds r0, #1 - strh r0, [r1, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x14 - bgt _080D8B48 - bl _080D98F0 -_080D8B48: - movs r0, #0 - strh r0, [r1, #0x1c] -_080D8B4C: - movs r0, #0x32 - strh r0, [r1, #8] - bl _080D98F0 -_080D8B54: - adds r0, r6, #0 - bl sub_080DAEFC - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D8B66 - movs r0, #0x63 - bl sub_080A306C -_080D8B66: - ldr r0, _080D8B7C - mov r2, r8 - lsls r1, r2, #2 - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0x19 - strh r0, [r1, #8] - bl _080D98F0 - .align 2, 0 -_080D8B7C: .4byte gUnknown_3005B60 -_080D8B80: - mov r3, r8 - lsls r0, r3, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r4 - movs r1, #0 - strh r1, [r0, #0xa] - movs r1, #0x1a - strh r1, [r0, #8] - bl _080D98F0 -_080D8B96: - movs r3, #0 - movs r5, #0 - str r5, [sp] - mov r0, r8 - lsls r1, r0, #2 - adds r0, r1, r0 - lsls r0, r0, #3 - adds r0, r0, r4 - movs r2, #0xa - ldrsh r7, [r0, r2] - mov sl, r1 - cmp r7, #3 - bgt _080D8C10 - ldr r5, _080D8BD4 - ldr r2, _080D8BD8 -_080D8BB4: - movs r3, #0 - str r3, [sp] - adds r0, r3, #0 - cmp r0, r6 - beq _080D8BDC - ldrb r0, [r5] - cmp r0, r7 - bne _080D8BDC - ldr r0, [r2] - ldr r0, [r0, #4] - ldrb r0, [r0, #0x13] - cmp r0, #0xff - beq _080D8BDC - movs r1, #1 - str r1, [sp] - b _080D8C04 - .align 2, 0 -_080D8BD4: .4byte gUnknown_2039BC6 -_080D8BD8: .4byte gUnknown_2039BD4 -_080D8BDC: - adds r3, #1 - cmp r3, #3 - bgt _080D8C04 - cmp r3, r6 - beq _080D8BDC - adds r0, r3, r5 - ldrb r0, [r0] - cmp r0, r7 - bne _080D8BDC - ldr r0, [r2] - ldr r1, [r0, #4] - lsls r0, r3, #3 - subs r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #0x13] - cmp r0, #0xff - beq _080D8BDC - movs r0, #1 - str r0, [sp] -_080D8C04: - ldr r1, [sp] - cmp r1, #0 - bne _080D8C1A - adds r7, #1 - cmp r7, #3 - ble _080D8BB4 -_080D8C10: - ldr r2, [sp] - lsls r0, r2, #0x18 - asrs r2, r0, #0x18 - cmp r2, #0 - beq _080D8C5C -_080D8C1A: - mov r5, sl - add r5, r8 - lsls r5, r5, #3 - adds r5, r5, r4 - ldr r0, _080D8C58 - adds r0, r3, r0 - ldrb r0, [r0] - strh r0, [r5, #0xa] - lsls r0, r3, #0x18 - lsrs r0, r0, #0x18 - mov r4, sb - ldr r1, [r4] - ldr r1, [r1, #4] - lsls r4, r3, #3 - subs r4, r4, r3 - lsls r4, r4, #2 - adds r1, r4, r1 - ldrb r1, [r1, #0x13] - bl sub_080DCBC0 - mov r1, sb - ldr r0, [r1] - ldr r0, [r0, #4] - adds r4, r4, r0 - movs r0, #0xff - strb r0, [r4, #0x13] - movs r0, #0x1b - strh r0, [r5, #8] - bl _080D98F0 - .align 2, 0 -_080D8C58: .4byte gUnknown_2039BC6 -_080D8C5C: - mov r0, sl - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r4 - strh r2, [r0, #0xa] - strh r2, [r0, #0x1c] - movs r1, #0x33 - strh r1, [r0, #8] - bl sub_080DAFE8 - bl _080D98F0 -_080D8C74: - bl GetPlayerTextSpeed - cmp r0, #0 - beq _080D8C80 - bl _080D98F0 -_080D8C80: - ldr r0, _080D8C94 - mov r2, r8 - lsls r1, r2, #2 - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0x1c - strh r0, [r1, #8] - bl _080D98F0 - .align 2, 0 -_080D8C94: .4byte gUnknown_3005B60 -_080D8C98: - movs r7, #0 - mov r3, r8 - lsls r0, r3, #2 - adds r1, r0, r3 - lsls r1, r1, #3 - adds r1, r1, r4 - movs r4, #0xa - ldrsh r2, [r1, r4] - ldr r1, _080D8CF8 - mov sl, r0 - adds r5, r1, #0 - ldrb r0, [r5] - cmp r2, r0 - beq _080D8CC2 - adds r1, r2, #0 - adds r2, r5, #0 -_080D8CB8: - adds r7, #1 - adds r0, r7, r2 - ldrb r0, [r0] - cmp r1, r0 - bne _080D8CB8 -_080D8CC2: - mov r1, sb - ldr r0, [r1] - ldr r1, [r0, #4] - lsls r0, r7, #3 - subs r0, r0, r7 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #0xe] - ldrh r0, [r0, #2] - adds r0, r0, r1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - rsbs r1, r1, #0 - lsls r2, r7, #0x18 - lsrs r2, r2, #0x18 - bl sub_080DB78C - ldr r1, _080D8CFC - mov r0, sl - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0x1d - strh r1, [r0, #8] - bl _080D98F0 - .align 2, 0 -_080D8CF8: .4byte gUnknown_2039BC6 -_080D8CFC: .4byte gUnknown_3005B60 -_080D8D00: - movs r7, #0 - mov r2, r8 - lsls r0, r2, #2 - adds r1, r0, r2 - lsls r1, r1, #3 - adds r1, r1, r4 - movs r5, #0xa - ldrsh r3, [r1, r5] - ldr r1, _080D8D50 - mov sl, r0 - adds r5, r1, #0 - ldrb r0, [r5] - cmp r3, r0 - beq _080D8D26 -_080D8D1C: - adds r7, #1 - adds r0, r7, r1 - ldrb r0, [r0] - cmp r3, r0 - bne _080D8D1C -_080D8D26: - mov r1, sb - ldr r0, [r1] - ldr r1, [r0, #0x14] - lsls r0, r7, #2 - adds r0, r0, r1 - ldrb r1, [r0, #2] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080D8D3E - bl _080D98F0 -_080D8D3E: - mov r0, sl - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r4 - movs r1, #0x27 - strh r1, [r0, #8] - bl _080D98F0 - .align 2, 0 -_080D8D50: .4byte gUnknown_2039BC6 -_080D8D54: - movs r7, #0 - mov r2, r8 - lsls r0, r2, #2 - adds r1, r0, r2 - lsls r1, r1, #3 - adds r1, r1, r4 - movs r3, #0xa - ldrsh r2, [r1, r3] - ldr r1, _080D8DA4 - mov sl, r0 - adds r5, r1, #0 - ldrb r4, [r5] - cmp r2, r4 - beq _080D8D7E - adds r1, r2, #0 - adds r2, r5, #0 -_080D8D74: - adds r7, #1 - adds r0, r7, r2 - ldrb r0, [r0] - cmp r1, r0 - bne _080D8D74 -_080D8D7E: - lsls r0, r7, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - bl sub_080DAD1C - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D8DAC - ldr r1, _080D8DA8 - mov r0, sl - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #0x1c] - movs r1, #0x28 - strh r1, [r0, #8] - bl _080D98F0 - .align 2, 0 -_080D8DA4: .4byte gUnknown_2039BC6 -_080D8DA8: .4byte gUnknown_3005B60 -_080D8DAC: - ldr r0, _080D8DB8 - mov r1, sl - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - b _080D8DDC - .align 2, 0 -_080D8DB8: .4byte gUnknown_3005B60 -_080D8DBC: - mov r5, r8 - lsls r0, r5, #2 - add r0, r8 - lsls r0, r0, #3 - adds r1, r0, r4 - ldrh r0, [r1, #0x1c] - adds r0, #1 - strh r0, [r1, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x14 - bgt _080D8DD8 - bl _080D98F0 -_080D8DD8: - movs r0, #0 - strh r0, [r1, #0x1c] -_080D8DDC: - movs r0, #0x1e - strh r0, [r1, #8] - bl _080D98F0 -_080D8DE4: - movs r7, #0 - ldr r2, _080D8E30 - ldrb r3, [r2] - mov r0, r8 - lsls r1, r0, #2 - adds r0, r1, r0 - lsls r0, r0, #3 - adds r4, r0, r4 - movs r5, #0xa - ldrsh r0, [r4, r5] - mov sl, r1 - adds r5, r2, #0 - cmp r3, r0 - beq _080D8E16 - adds r3, r5, #0 - adds r2, r4, #0 -_080D8E04: - adds r7, #1 - cmp r7, #3 - bgt _080D8E16 - adds r0, r7, r3 - ldrb r1, [r0] - movs r4, #0xa - ldrsh r0, [r2, r4] - cmp r1, r0 - bne _080D8E04 -_080D8E16: - lsls r4, r7, #0x18 - lsrs r0, r4, #0x18 - bl sub_080DAEFC - lsls r0, r0, #0x18 - adds r6, r4, #0 - cmp r0, #0 - beq _080D8E34 - movs r0, #0x63 - bl sub_080A306C - b _080D8E3A - .align 2, 0 -_080D8E30: .4byte gUnknown_2039BC6 -_080D8E34: - movs r0, #0x64 - bl sub_080A306C -_080D8E3A: - ldr r5, _080D8E80 - ldr r0, [r5] - ldr r1, [r0, #4] - lsls r0, r7, #3 - subs r0, r0, r7 - lsls r4, r0, #2 - adds r1, r4, r1 - ldrb r1, [r1, #0x15] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080D8E68 - lsrs r0, r6, #0x18 - bl sub_080DBDD8 - ldr r0, [r5] - ldr r1, [r0, #4] - adds r1, r4, r1 - ldrb r2, [r1, #0x15] - movs r0, #0x21 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #0x15] -_080D8E68: - ldr r0, _080D8E84 - mov r1, sl - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0xa] - adds r0, #1 - strh r0, [r1, #0xa] - movs r0, #0x1a - strh r0, [r1, #8] - bl _080D98F0 - .align 2, 0 -_080D8E80: .4byte gUnknown_2039BD4 -_080D8E84: .4byte gUnknown_3005B60 -_080D8E88: - mov r5, r8 - lsls r2, r5, #2 - adds r0, r2, r5 - lsls r0, r0, #3 - adds r4, r0, r4 - ldrh r0, [r4, #0x1c] - adds r1, r0, #1 - strh r1, [r4, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov sl, r2 - cmp r0, #9 - bgt _080D8EA6 - bl _080D98F0 -_080D8EA6: - movs r0, #0 - strh r0, [r4, #0x1c] - mov r1, sb - ldr r0, [r1] - ldr r1, [r0, #4] - lsls r0, r6, #3 - subs r0, r0, r6 - lsls r0, r0, #2 - adds r2, r0, r1 - ldrb r1, [r2, #0xc] - movs r0, #6 - ands r0, r1 - cmp r0, #0 - bne _080D8ECC - ldrb r1, [r2, #0x11] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080D8EEE -_080D8ECC: - bl sub_080DB000 - ldr r0, _080D8F00 - lsls r1, r6, #6 - ldr r2, _080D8F04 - adds r1, r1, r2 - bl StringCopy - ldr r4, _080D8F08 - ldr r1, _080D8F0C - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - movs r1, #1 - bl Contest_StartTextPrinter -_080D8EEE: - ldr r0, _080D8F10 - mov r1, sl - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0x34 - strh r0, [r1, #8] - bl _080D98F0 - .align 2, 0 -_080D8F00: .4byte gUnknown_2021C40 -_080D8F04: .4byte gUnknown_2039AA2 -_080D8F08: .4byte gUnknown_2021C7C -_080D8F0C: .4byte gUnknown_824C04A -_080D8F10: .4byte gUnknown_3005B60 -_080D8F14: - bl GetPlayerTextSpeed - cmp r0, #0 - beq _080D8F20 - bl _080D98F0 -_080D8F20: - ldr r0, _080D8F4C - ldr r0, [r0] - ldr r1, [r0, #4] - lsls r0, r6, #3 - subs r0, r0, r6 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #0x15] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _080D8F54 - ldr r0, _080D8F50 - mov r2, r8 - lsls r1, r2, #2 - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0x11 - strh r0, [r1, #8] - bl _080D98F0 - .align 2, 0 -_080D8F4C: .4byte gUnknown_2039BD4 -_080D8F50: .4byte gUnknown_3005B60 -_080D8F54: - ldr r0, _080D8F68 - mov r3, r8 - lsls r1, r3, #2 - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0xe - strh r0, [r1, #8] - bl _080D98F0 - .align 2, 0 -_080D8F68: .4byte gUnknown_3005B60 -_080D8F6C: - mov r4, sb - ldr r0, [r4] - ldr r1, [r0, #4] - lsls r0, r6, #3 - subs r0, r0, r6 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #0x16] - lsls r4, r0, #0x18 - lsrs r5, r4, #0x18 - cmp r5, #0 - beq _080D8FD4 - bl sub_080DB000 - asrs r0, r4, #0x18 - cmp r0, #1 - bne _080D8F98 - ldr r0, _080D8F94 - b _080D8F9E - .align 2, 0 -_080D8F94: .4byte gUnknown_824BCF2 -_080D8F98: - cmp r0, #2 - bne _080D8FAC - ldr r0, _080D8FA8 -_080D8F9E: - movs r1, #1 - bl Contest_StartTextPrinter - b _080D8FB4 - .align 2, 0 -_080D8FA8: .4byte gUnknown_824BD18 -_080D8FAC: - ldr r0, _080D8FCC - movs r1, #1 - bl Contest_StartTextPrinter -_080D8FB4: - movs r0, #3 - bl sub_080DCE84 - ldr r1, _080D8FD0 - mov r5, r8 - lsls r0, r5, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #0x1c] - b _080D900A - .align 2, 0 -_080D8FCC: .4byte gUnknown_824BD3E -_080D8FD0: .4byte gUnknown_3005B60 -_080D8FD4: - bl sub_080DB000 - ldr r0, _080D9014 - lsls r1, r6, #6 - ldr r2, _080D9018 - adds r1, r1, r2 - bl StringCopy - ldr r4, _080D901C - ldr r1, _080D9020 - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - movs r1, #1 - bl Contest_StartTextPrinter - movs r0, #2 - bl sub_080DCE84 - ldr r1, _080D9024 - mov r2, r8 - lsls r0, r2, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r5, [r0, #0x1c] -_080D900A: - movs r1, #0x2d - strh r1, [r0, #8] - bl _080D98F0 - .align 2, 0 -_080D9014: .4byte gUnknown_2021C40 -_080D9018: .4byte gUnknown_2039AA2 -_080D901C: .4byte gUnknown_2021C7C -_080D9020: .4byte gUnknown_824BCCF -_080D9024: .4byte gUnknown_3005B60 -_080D9028: - mov r3, sb - ldr r0, [r3] - ldr r2, [r0] - ldrb r1, [r2, #6] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080D903C - bl _080D98F0 -_080D903C: - ldrb r0, [r2, #0x11] - bl sub_080DC118 - ldr r1, _080D9058 - mov r4, r8 - lsls r0, r4, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0xf - strh r1, [r0, #8] - bl _080D98F0 - .align 2, 0 -_080D9058: .4byte gUnknown_3005B60 -_080D905C: - bl GetPlayerTextSpeed - cmp r0, #0 - beq _080D9068 - bl _080D98F0 -_080D9068: - ldr r1, _080D90C4 - mov r5, r8 - lsls r0, r5, #2 - add r0, r8 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrh r0, [r4, #0x1c] - adds r0, #1 - strh r0, [r4, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x32 - bgt _080D9086 - bl _080D98F0 -_080D9086: - ldr r7, _080D90C8 - ldr r0, [r7] - ldr r1, [r0, #4] - lsls r0, r6, #3 - subs r0, r0, r6 - lsls r5, r0, #2 - adds r2, r5, r1 - ldrb r1, [r2, #0x15] - movs r0, #0x10 - mov r8, r0 - ands r0, r1 - cmp r0, #0 - bne _080D90BA - movs r1, #2 - ldrsh r0, [r2, r1] - ldrb r1, [r2, #0x17] - adds r2, r6, #0 - bl sub_080DB78C - ldr r0, [r7] - ldr r1, [r0, #4] - adds r1, r5, r1 - ldrh r0, [r1, #2] - ldrb r2, [r1, #0x17] - adds r0, r0, r2 - strh r0, [r1, #2] -_080D90BA: - mov r3, r8 - strh r3, [r4, #8] - bl _080D98F0 - .align 2, 0 -_080D90C4: .4byte gUnknown_3005B60 -_080D90C8: .4byte gUnknown_2039BD4 -_080D90CC: - mov r5, sb - ldr r0, [r5] - ldr r1, [r0, #0x14] - lsls r0, r6, #2 - adds r0, r0, r1 - ldrb r1, [r0, #2] - movs r0, #4 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _080D90E8 - bl _080D98F0 -_080D90E8: - mov r2, r8 - lsls r0, r2, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r4 - strh r1, [r0, #0x1c] - movs r1, #0x11 - strh r1, [r0, #8] - bl _080D98F0 -_080D90FC: - mov r3, sb - ldr r0, [r3] - ldr r1, [r0, #4] - lsls r0, r6, #3 - subs r0, r0, r6 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #0x15] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080D9164 - bl sub_080DB000 - ldr r0, _080D9150 - lsls r1, r6, #6 - ldr r2, _080D9154 - adds r1, r1, r2 - bl StringCopy - ldr r4, _080D9158 - ldr r1, _080D915C - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - movs r1, #1 - bl Contest_StartTextPrinter - ldr r0, _080D9160 - mov r5, r8 - lsls r4, r5, #2 - add r4, r8 - lsls r4, r4, #3 - adds r4, r4, r0 - movs r0, #0 - strh r0, [r4, #0x1c] - bl sub_080DCE84 - movs r0, #0x2e - strh r0, [r4, #8] - b _080D98F0 - .align 2, 0 -_080D9150: .4byte gUnknown_2021C40 -_080D9154: .4byte gUnknown_2039AA2 -_080D9158: .4byte gUnknown_2021C7C -_080D915C: .4byte gUnknown_824BFBE -_080D9160: .4byte gUnknown_3005B60 -_080D9164: - mov r1, r8 - lsls r0, r1, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r4 - movs r1, #0x29 - strh r1, [r0, #8] - b _080D98F0 -_080D9174: - mov r2, sb - ldr r0, [r2] - ldr r0, [r0] - ldrb r1, [r0, #6] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080D9186 - b _080D98F0 -_080D9186: - mov r3, r8 - lsls r0, r3, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r4 - movs r1, #0x13 - strh r1, [r0, #8] - b _080D98F0 -_080D9196: - bl GetPlayerTextSpeed - cmp r0, #0 - beq _080D91A0 - b _080D98F0 -_080D91A0: - ldr r5, _080D91DC - ldr r0, [r5] - ldr r1, [r0, #4] - lsls r4, r6, #3 - subs r4, r4, r6 - lsls r4, r4, #2 - adds r1, r4, r1 - movs r2, #2 - ldrsh r0, [r1, r2] - ldrb r1, [r1, #0x18] - rsbs r1, r1, #0 - adds r2, r6, #0 - bl sub_080DB78C - ldr r0, [r5] - ldr r0, [r0, #4] - adds r4, r4, r0 - ldrb r1, [r4, #0x18] - ldrh r0, [r4, #2] - subs r0, r0, r1 - strh r0, [r4, #2] - ldr r1, _080D91E0 - mov r3, r8 - lsls r0, r3, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0x12 - strh r1, [r0, #8] - b _080D98F0 - .align 2, 0 -_080D91DC: .4byte gUnknown_2039BD4 -_080D91E0: .4byte gUnknown_3005B60 -_080D91E4: - bl ContestDebugDoPrint - ldr r0, _080D921C - ldr r0, [r0] - ldr r1, [r0, #0x14] - lsls r0, r6, #2 - adds r0, r0, r1 - ldrb r1, [r0, #2] - movs r0, #4 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - beq _080D9202 - b _080D98F0 -_080D9202: - ldr r0, _080D9220 - mov r5, r8 - lsls r4, r5, #2 - add r4, r8 - lsls r4, r4, #3 - adds r4, r4, r0 - strh r3, [r4, #0x1c] - bl sub_080DB000 - movs r0, #0x29 - strh r0, [r4, #8] - b _080D98F0 - .align 2, 0 -_080D921C: .4byte gUnknown_2039BD4 -_080D9220: .4byte gUnknown_3005B60 -_080D9224: - mov r1, sb - ldr r0, [r1] - ldr r2, [r0, #0x10] - ldrb r1, [r2, #1] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080D924E - ldr r0, [r2] - lsls r0, r0, #0x14 - lsrs r0, r0, #0x1d - cmp r6, r0 - beq _080D924E - mov r2, r8 - lsls r0, r2, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r4 - movs r1, #0x39 - strh r1, [r0, #8] - b _080D98F0 -_080D924E: - mov r3, sb - ldr r1, [r3] - ldr r0, [r1, #0x10] - ldrb r0, [r0] - str r0, [sp] - ldr r1, [r1, #4] - lsls r2, r6, #3 - subs r0, r2, r6 - lsls r0, r0, #2 - adds r5, r0, r1 - ldrb r1, [r5, #0x11] - movs r0, #0x10 - ands r0, r1 - str r2, [sp, #4] - cmp r0, #0 - beq _080D928C - movs r4, #1 - str r4, [sp] - ldr r0, _080D9284 - ldrh r1, [r5, #6] - lsls r1, r1, #3 - ldr r2, _080D9288 - adds r1, r1, r2 - bl StringCopy - b _080D92A6 - .align 2, 0 -_080D9284: .4byte gUnknown_2021C68 -_080D9288: .4byte gUnknown_82EACC4 -_080D928C: - ldr r0, _080D930C - ldr r3, _080D9310 - ldr r2, _080D9314 - ldrh r1, [r5, #6] - lsls r1, r1, #3 - adds r1, r1, r2 - ldrb r1, [r1, #1] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1b - adds r1, r1, r3 - ldr r1, [r1] - bl StringCopy -_080D92A6: - ldr r5, [sp] - lsls r0, r5, #0x18 - cmp r0, #0 - ble _080D92CA - ldr r0, _080D9318 - ldr r0, [r0] - ldr r1, [r0, #4] - ldr r2, [sp, #4] - subs r0, r2, r6 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #0x15] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080D92CA - movs r3, #0 - str r3, [sp] -_080D92CA: - bl sub_080DB000 - ldr r0, _080D931C - lsls r1, r6, #6 - ldr r2, _080D9320 - adds r1, r1, r2 - bl StringCopy - ldr r4, _080D9318 - ldr r0, [r4] - ldr r1, [r0] - ldrb r0, [r1, #0x13] - ldr r5, [sp] - lsls r2, r5, #0x18 - asrs r3, r2, #0x18 - adds r0, r3, r0 - strb r0, [r1, #0x13] - ldr r0, [r4] - ldr r1, [r0] - movs r0, #0x13 - ldrsb r0, [r1, r0] - adds r5, r2, #0 - cmp r0, #0 - bge _080D92FE - movs r0, #0 - strb r0, [r1, #0x13] -_080D92FE: - cmp r3, #0 - bne _080D9328 - ldr r0, _080D9324 - mov r2, r8 - lsls r1, r2, #2 - b _080D9748 - .align 2, 0 -_080D930C: .4byte gUnknown_2021C68 -_080D9310: .4byte gUnknown_8560E6C -_080D9314: .4byte gUnknown_8565FCC -_080D9318: .4byte gUnknown_2039BD4 -_080D931C: .4byte gUnknown_2021C40 -_080D9320: .4byte gUnknown_2039AA2 -_080D9324: .4byte gUnknown_3005B60 -_080D9328: - cmp r3, #0 - bge _080D9340 - ldr r0, _080D9338 - ldr r1, _080D933C - bl StringExpandPlaceholders - b _080D936C - .align 2, 0 -_080D9338: .4byte gUnknown_2021C7C -_080D933C: .4byte gUnknown_824C008 -_080D9340: - cmp r3, #0 - ble _080D9364 - ldr r0, [r4] - ldr r0, [r0] - ldrb r0, [r0, #0x13] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #4 - bgt _080D9364 - ldr r0, _080D935C - ldr r1, _080D9360 - bl StringExpandPlaceholders - b _080D936C - .align 2, 0 -_080D935C: .4byte gUnknown_2021C7C -_080D9360: .4byte gUnknown_824BFE6 -_080D9364: - ldr r0, _080D9390 - ldr r1, _080D9394 - bl StringExpandPlaceholders -_080D936C: - ldr r0, _080D9390 - movs r1, #1 - bl Contest_StartTextPrinter - ldr r1, _080D9398 - mov r3, r8 - lsls r0, r3, #2 - add r0, r8 - lsls r0, r0, #3 - adds r1, r0, r1 - movs r0, #0 - strh r0, [r1, #0x1c] - strh r0, [r1, #0x1e] - cmp r5, #0 - bge _080D939C - movs r0, #0x35 - strh r0, [r1, #8] - b _080D98F0 - .align 2, 0 -_080D9390: .4byte gUnknown_2021C7C -_080D9394: .4byte gUnknown_824C029 -_080D9398: .4byte gUnknown_3005B60 -_080D939C: - movs r0, #0x36 - strh r0, [r1, #8] - b _080D98F0 -_080D93A2: - mov r5, r8 - lsls r0, r5, #2 - add r0, r8 - lsls r0, r0, #3 - adds r4, r0, r4 - movs r0, #0x1c - ldrsh r3, [r4, r0] - cmp r3, #1 - beq _080D93E0 - cmp r3, #1 - bgt _080D93BE - cmp r3, #0 - beq _080D93C8 - b _080D98F0 -_080D93BE: - cmp r3, #2 - beq _080D9404 - cmp r3, #3 - beq _080D943E - b _080D98F0 -_080D93C8: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #1 - bl sub_080DD634 - ldr r0, _080D93DC - bl PlayFanfare - b _080D9436 - .align 2, 0 -_080D93DC: .4byte 0x00000187 -_080D93E0: - mov r1, sb - ldr r0, [r1] - ldr r0, [r0] - ldrb r0, [r0, #7] - ands r3, r0 - cmp r3, #0 - beq _080D93F0 - b _080D98F0 -_080D93F0: - bl GetPlayerTextSpeed - cmp r0, #0 - beq _080D93FA - b _080D98F0 -_080D93FA: - movs r0, #1 - rsbs r0, r0, #0 - bl ShowAndUpdateApplauseMeter - b _080D9436 -_080D9404: - mov r2, sb - ldr r0, [r2] - ldr r0, [r0] - ldrb r1, [r0, #6] - movs r0, #0x20 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - beq _080D941A - b _080D98F0 -_080D941A: - ldrh r0, [r4, #0x1e] - adds r1, r0, #1 - strh r1, [r4, #0x1e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1d - bgt _080D942A - b _080D98F0 -_080D942A: - strh r2, [r4, #0x1e] - movs r1, #1 - rsbs r1, r1, #0 - adds r0, r1, #0 - bl sub_080DD634 -_080D9436: - ldrh r0, [r4, #0x1c] - adds r0, #1 - strh r0, [r4, #0x1c] - b _080D98F0 -_080D943E: - ldr r0, _080D945C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _080D9450 - b _080D98F0 -_080D9450: - strh r0, [r4, #0x1c] - strh r0, [r4, #0x1e] - movs r0, #0x2b - strh r0, [r4, #8] - b _080D98F0 - .align 2, 0 -_080D945C: .4byte gUnknown_2037C74 -_080D9460: - mov r3, r8 - lsls r1, r3, #2 - adds r0, r1, r3 - lsls r0, r0, #3 - adds r0, r0, r4 - movs r5, #0x1c - ldrsh r0, [r0, r5] - mov sl, r1 - cmp r0, #4 - bls _080D9476 - b _080D98F0 -_080D9476: - lsls r0, r0, #2 - ldr r1, _080D9480 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080D9480: .4byte _080D9484 -_080D9484: @ jump table - .4byte _080D9498 @ case 0 - .4byte _080D94A8 @ case 1 - .4byte _080D94CC @ case 2 - .4byte _080D9536 @ case 3 - .4byte _080D957C @ case 4 -_080D9498: - bl GetPlayerTextSpeed - cmp r0, #0 - beq _080D94A2 - b _080D98F0 -_080D94A2: - movs r0, #1 - movs r1, #1 - b _080D9560 -_080D94A8: - mov r1, sb - ldr r0, [r1] - ldr r0, [r0] - ldrb r1, [r0, #7] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080D94BA - b _080D98F0 -_080D94BA: - bl sub_080DD570 - movs r0, #0xdf - bl sub_080A306C - movs r0, #1 - bl ShowAndUpdateApplauseMeter - b _080D9564 -_080D94CC: - mov r3, sb - ldr r2, [r3] - ldr r0, [r2] - ldrb r1, [r0, #6] - movs r0, #0x20 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - beq _080D94E2 - b _080D98F0 -_080D94E2: - mov r0, sl - add r0, r8 - lsls r0, r0, #3 - adds r5, r0, r4 - ldrh r0, [r5, #0x1e] - adds r1, r0, #1 - strh r1, [r5, #0x1e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1d - bgt _080D94FA - b _080D98F0 -_080D94FA: - strh r3, [r5, #0x1e] - ldr r0, [r2, #4] - lsls r4, r6, #3 - subs r4, r4, r6 - lsls r4, r4, #2 - adds r0, r4, r0 - movs r1, #2 - ldrsh r0, [r0, r1] - ldr r1, [r2, #0x10] - ldrb r1, [r1, #2] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r2, r6, #0 - bl sub_080DB78C - mov r2, sb - ldr r1, [r2] - ldr r0, [r1, #4] - adds r4, r4, r0 - ldr r0, [r1, #0x10] - ldrb r0, [r0, #2] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r3, [r4, #2] - adds r0, r0, r3 - strh r0, [r4, #2] - ldrh r0, [r5, #0x1c] - adds r0, #1 - strh r0, [r5, #0x1c] - b _080D98F0 -_080D9536: - mov r4, sb - ldr r2, [r4] - ldr r1, [r2, #0x14] - lsls r0, r6, #2 - adds r0, r0, r1 - ldrb r1, [r0, #2] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080D954C - b _080D98F0 -_080D954C: - ldr r0, [r2] - ldrb r1, [r0, #6] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080D955A - b _080D98F0 -_080D955A: - movs r1, #1 - rsbs r1, r1, #0 - movs r0, #1 -_080D9560: - bl sub_080DD634 -_080D9564: - ldr r0, _080D9578 - mov r1, sl - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x1c] - adds r0, #1 - strh r0, [r1, #0x1c] - b _080D98F0 - .align 2, 0 -_080D9578: .4byte gUnknown_3005B60 -_080D957C: - ldr r0, _080D95A0 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - beq _080D958E - b _080D98F0 -_080D958E: - mov r0, sl - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r4 - strh r3, [r0, #0x1c] - strh r3, [r0, #0x1e] - movs r1, #0x2b - strh r1, [r0, #8] - b _080D98F0 - .align 2, 0 -_080D95A0: .4byte gUnknown_2037C74 -_080D95A4: - mov r5, sb - ldr r0, [r5] - ldr r1, [r0, #0x14] - lsls r0, r6, #2 - adds r0, r0, r1 - ldrb r1, [r0, #2] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080D95BA - b _080D98F0 -_080D95BA: - bl sub_080DB000 - ldr r0, _080D95C8 - mov r2, r8 - lsls r1, r2, #2 - b _080D9748 - .align 2, 0 -_080D95C8: .4byte gUnknown_3005B60 -_080D95CC: - bl sub_080DB000 - ldr r0, _080D9630 - ldr r5, _080D9634 - ldr r1, [r5] - ldr r1, [r1, #0x10] - ldr r1, [r1] - lsls r1, r1, #0x14 - lsrs r1, r1, #0x1d - lsls r1, r1, #6 - ldr r4, _080D9638 - adds r1, r1, r4 - bl StringCopy - ldr r0, _080D963C - lsls r1, r6, #6 - adds r1, r1, r4 - bl StringCopy - ldr r0, _080D9640 - ldr r1, [r5] - ldr r2, [r1, #4] - lsls r1, r6, #3 - subs r1, r1, r6 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r1, [r1, #6] - lsls r1, r1, #3 - ldr r2, _080D9644 - adds r1, r1, r2 - bl StringCopy - ldr r4, _080D9648 - ldr r1, _080D964C - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - movs r1, #1 - bl Contest_StartTextPrinter - ldr r1, _080D9650 - mov r3, r8 - lsls r0, r3, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0x3a - strh r1, [r0, #8] - b _080D98F0 - .align 2, 0 -_080D9630: .4byte gUnknown_2021C68 -_080D9634: .4byte gUnknown_2039BD4 -_080D9638: .4byte gUnknown_2039AA2 -_080D963C: .4byte gUnknown_2021C40 -_080D9640: .4byte gUnknown_2021C54 -_080D9644: .4byte gUnknown_82EACC4 -_080D9648: .4byte gUnknown_2021C7C -_080D964C: .4byte gUnknown_824C091 -_080D9650: .4byte gUnknown_3005B60 -_080D9654: - bl GetPlayerTextSpeed - cmp r0, #0 - beq _080D965E - b _080D98F0 -_080D965E: - bl sub_080DB000 - ldr r4, _080D9688 - ldr r1, _080D968C - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - movs r1, #1 - bl Contest_StartTextPrinter - ldr r1, _080D9690 - mov r4, r8 - lsls r0, r4, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0x3b - strh r1, [r0, #8] - b _080D98F0 - .align 2, 0 -_080D9688: .4byte gUnknown_2021C7C -_080D968C: .4byte gUnknown_824C0B1 -_080D9690: .4byte gUnknown_3005B60 -_080D9694: - bl GetPlayerTextSpeed - cmp r0, #0 - beq _080D969E - b _080D98F0 -_080D969E: - bl sub_080DB000 - ldr r0, _080D96AC - mov r5, r8 - lsls r1, r5, #2 - b _080D9748 - .align 2, 0 -_080D96AC: .4byte gUnknown_3005B60 -_080D96B0: - mov r1, sb - ldr r0, [r1] - ldr r1, [r0, #4] - lsls r0, r6, #3 - subs r0, r0, r6 - lsls r4, r0, #2 - adds r2, r4, r1 - ldrb r1, [r2, #0x15] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080D96D0 - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x15] -_080D96D0: - adds r0, r6, #0 - bl sub_080DC118 - ldr r0, _080D971C - lsls r1, r6, #6 - ldr r2, _080D9720 - adds r1, r1, r2 - bl StringCopy - ldr r0, _080D9724 - mov r2, sb - ldr r1, [r2] - ldr r1, [r1, #4] - adds r1, r4, r1 - ldrh r1, [r1, #6] - lsls r1, r1, #3 - ldr r2, _080D9728 - adds r1, r1, r2 - bl StringCopy - ldr r4, _080D972C - ldr r1, _080D9730 - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - movs r1, #1 - bl Contest_StartTextPrinter - ldr r1, _080D9734 - mov r3, r8 - lsls r0, r3, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0x22 - strh r1, [r0, #8] - b _080D98F0 - .align 2, 0 -_080D971C: .4byte gUnknown_2021C40 -_080D9720: .4byte gUnknown_2039AA2 -_080D9724: .4byte gUnknown_2021C54 -_080D9728: .4byte gUnknown_82EACC4 -_080D972C: .4byte gUnknown_2021C7C -_080D9730: .4byte gUnknown_824BEC1 -_080D9734: .4byte gUnknown_3005B60 -_080D9738: - bl GetPlayerTextSpeed - cmp r0, #0 - beq _080D9742 - b _080D98F0 -_080D9742: - ldr r0, _080D9754 - mov r4, r8 - lsls r1, r4, #2 -_080D9748: - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0x37 - strh r0, [r1, #8] - b _080D98F0 - .align 2, 0 -_080D9754: .4byte gUnknown_3005B60 -_080D9758: - bl TryMoveApplauseMeterOffscreen - ldr r0, _080D9770 - mov r5, r8 - lsls r1, r5, #2 - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0x38 - strh r0, [r1, #8] - b _080D98F0 - .align 2, 0 -_080D9770: .4byte gUnknown_3005B60 -_080D9774: - mov r1, sb - ldr r0, [r1] - ldr r2, [r0] - ldrb r1, [r2, #6] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _080D978A - b _080D98F0 -_080D978A: - movs r0, #0x13 - ldrsb r0, [r2, r0] - cmp r0, #4 - ble _080D9798 - strb r1, [r2, #0x13] - bl UpdateApplauseMeter -_080D9798: - ldr r0, _080D97AC - mov r2, r8 - lsls r1, r2, #2 - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0xa - strh r0, [r1, #8] - b _080D98F0 - .align 2, 0 -_080D97AC: .4byte gUnknown_3005B60 -_080D97B0: - mov r3, r8 - lsls r2, r3, #2 - add r2, r8 - lsls r2, r2, #3 - adds r2, r2, r4 - ldrb r5, [r2, #0xc] - ldr r1, _080D97D4 - lsls r0, r5, #4 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _080D97D8 - str r1, [r0] - movs r0, #0xb - strh r0, [r2, #8] - b _080D98F0 - .align 2, 0 -_080D97D4: .4byte gUnknown_20205AC -_080D97D8: .4byte sub_080D9954 -_080D97DC: - mov r5, r8 - lsls r0, r5, #2 - add r0, r8 - lsls r0, r0, #3 - adds r4, r0, r4 - ldrb r5, [r4, #0xc] - ldr r1, _080D9810 - lsls r0, r5, #4 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r6, r0, r1 - adds r0, r6, #0 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - bge _080D98F0 - adds r0, r6, #0 - bl FreeSpriteOamMatrix - adds r0, r6, #0 - bl DestroySprite - movs r0, #0x14 - strh r0, [r4, #8] - b _080D98F0 - .align 2, 0 -_080D9810: .4byte gUnknown_20205AC -_080D9814: - mov r1, r8 - lsls r0, r1, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r4 - movs r1, #0 - strh r1, [r0, #0x1c] - movs r1, #0x15 - strh r1, [r0, #8] - b _080D98F0 -_080D9828: - bl sub_080DB000 - ldr r0, _080D985C - lsls r1, r6, #6 - ldr r2, _080D9860 - adds r1, r1, r2 - bl StringCopy - ldr r4, _080D9864 - ldr r1, _080D9868 - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - movs r1, #1 - bl Contest_StartTextPrinter - ldr r1, _080D986C - mov r2, r8 - lsls r0, r2, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0x20 - strh r1, [r0, #8] - b _080D98F0 - .align 2, 0 -_080D985C: .4byte gUnknown_2021C40 -_080D9860: .4byte gUnknown_2039AA2 -_080D9864: .4byte gUnknown_2021C7C -_080D9868: .4byte gUnknown_824B354 -_080D986C: .4byte gUnknown_3005B60 -_080D9870: - bl GetPlayerTextSpeed - cmp r0, #0 - bne _080D98F0 - ldr r0, _080D988C - mov r3, r8 - lsls r1, r3, #2 - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0x15 - strh r0, [r1, #8] - b _080D98F0 - .align 2, 0 -_080D988C: .4byte gUnknown_3005B60 -_080D9890: - mov r5, r8 - lsls r0, r5, #2 - add r0, r8 - lsls r0, r0, #3 - adds r1, r0, r4 - ldrh r0, [r1, #0x1c] - adds r0, #1 - strh r0, [r1, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1d - ble _080D98F0 - movs r0, #0 - strh r0, [r1, #0x1c] - movs r0, #0x16 - strh r0, [r1, #8] - b _080D98F0 -_080D98B2: - mov r1, sb - ldr r0, [r1] - ldr r1, [r0] - ldrb r0, [r1, #0x10] - adds r0, #1 - movs r2, #0 - strb r0, [r1, #0x10] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bne _080D98E4 - mov r3, r8 - lsls r0, r3, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r4 - strh r2, [r0, #8] - strh r2, [r0, #0xa] - strh r2, [r0, #0xc] - ldr r1, _080D98E0 - str r1, [r0] - b _080D98F0 - .align 2, 0 -_080D98E0: .4byte sub_080D9988 -_080D98E4: - mov r5, r8 - lsls r0, r5, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r4 - strh r2, [r0, #8] -_080D98F0: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end NamingScreen_Init - - thumb_func_start sub_080D9900 -sub_080D9900: @ 0x080D9900 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080D9920 - ldr r1, [r1] - ldr r3, [r1] - ldrb r2, [r3, #7] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r3, #7] - bl DestroyTask - pop {r0} - bx r0 - .align 2, 0 -_080D9920: .4byte gUnknown_2039BD4 - thumb_func_end sub_080D9900 - - thumb_func_start sub_080D9924 -sub_080D9924: @ 0x080D9924 - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0x24] - movs r3, #0x24 - ldrsh r2, [r1, r3] - cmp r2, #0 - beq _080D9938 - subs r0, #2 - strh r0, [r1, #0x24] - b _080D994C -_080D9938: - ldrh r0, [r1, #0x2e] - adds r0, #1 - strh r0, [r1, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1f - bne _080D994C - strh r2, [r1, #0x2e] - ldr r0, _080D9950 - str r0, [r1, #0x1c] -_080D994C: - pop {r0} - bx r0 - .align 2, 0 -_080D9950: .4byte sub_08007140 - thumb_func_end sub_080D9924 - - thumb_func_start sub_080D9954 -sub_080D9954: @ 0x080D9954 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x24] - subs r0, #6 - strh r0, [r2, #0x24] - movs r1, #0x20 - ldrsh r0, [r2, r1] - movs r3, #0x24 - ldrsh r1, [r2, r3] - adds r0, r0, r1 - movs r1, #0x20 - rsbs r1, r1, #0 - cmp r0, r1 - bge _080D997E - ldr r0, _080D9984 - str r0, [r2, #0x1c] - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] -_080D997E: - pop {r0} - bx r0 - .align 2, 0 -_080D9984: .4byte sub_08007140 - thumb_func_end sub_080D9954 - - thumb_func_start sub_080D9988 -sub_080D9988: @ 0x080D9988 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080D99AC - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r5, r1, r2 - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #1 - beq _080D9A1E - cmp r0, #1 - bgt _080D99B0 - cmp r0, #0 - beq _080D99B6 - b _080D9A40 - .align 2, 0 -_080D99AC: .4byte gUnknown_3005B60 -_080D99B0: - cmp r0, #2 - beq _080D9A38 - b _080D9A40 -_080D99B6: - ldr r0, _080D9A04 - ldrb r1, [r0] - movs r6, #1 - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _080D9A14 - ldr r0, _080D9A08 - ldr r0, [r0] - ldr r2, [r0] - ldrb r0, [r2, #7] - movs r1, #4 - orrs r0, r1 - strb r0, [r2, #7] - bl sub_080DA094 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D99E4 - bl RankContestants - bl sub_080DB17C -_080D99E4: - ldr r4, _080D9A0C - adds r0, r4, #0 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080D9A10 - adds r1, r4, #0 - bl SetTaskFuncWithFollowupFunc - bl ContestPrintLinkStandby - strh r6, [r5, #8] - b _080D9A40 - .align 2, 0 -_080D9A04: .4byte gUnknown_2039BCA -_080D9A08: .4byte gUnknown_2039BD4 -_080D9A0C: .4byte sub_080FD4DC -_080D9A10: .4byte sub_080D9900 -_080D9A14: - bl RankContestants - bl sub_080DB17C - b _080D9A2E -_080D9A1E: - ldr r0, _080D9A34 - ldr r0, [r0] - ldr r0, [r0] - ldrb r1, [r0, #7] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _080D9A40 -_080D9A2E: - movs r0, #2 - strh r0, [r5, #8] - b _080D9A40 - .align 2, 0 -_080D9A34: .4byte gUnknown_2039BD4 -_080D9A38: - movs r0, #0 - strh r0, [r5, #8] - ldr r0, _080D9A48 - str r0, [r5] -_080D9A40: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080D9A48: .4byte sub_080D9A4C - thumb_func_end sub_080D9988 - - thumb_func_start sub_080D9A4C -sub_080D9A4C: @ 0x080D9A4C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - bl sub_080DD76C - ldr r1, _080D9A74 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #8] - strh r1, [r0, #0xa] - ldr r1, _080D9A78 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D9A74: .4byte gUnknown_3005B60 -_080D9A78: .4byte sub_080D9A7C - thumb_func_end sub_080D9A4C - - thumb_func_start sub_080D9A7C -sub_080D9A7C: @ 0x080D9A7C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080D9AA0 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 - movs r0, #8 - ldrsh r5, [r4, r0] - cmp r5, #1 - beq _080D9AC2 - cmp r5, #1 - bgt _080D9AA4 - cmp r5, #0 - beq _080D9AAA - b _080D9B02 - .align 2, 0 -_080D9AA0: .4byte gUnknown_3005B60 -_080D9AA4: - cmp r5, #2 - beq _080D9AF4 - b _080D9B02 -_080D9AAA: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x14 - ble _080D9B02 - movs r0, #2 - bl sub_080DDE00 - strh r5, [r4, #0xa] - b _080D9AE6 -_080D9AC2: - ldr r0, _080D9AF0 - ldr r0, [r0] - ldr r0, [r0] - ldrb r1, [r0, #7] - movs r0, #2 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _080D9B02 - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x14 - ble _080D9B02 - strh r1, [r4, #0xa] -_080D9AE6: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _080D9B02 - .align 2, 0 -_080D9AF0: .4byte gUnknown_2039BD4 -_080D9AF4: - bl sub_080DBB10 - movs r0, #0 - strh r0, [r4, #8] - strh r0, [r4, #0xa] - ldr r0, _080D9B08 - str r0, [r4] -_080D9B02: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9B08: .4byte sub_080D9B0C - thumb_func_end sub_080D9A7C - - thumb_func_start sub_080D9B0C -sub_080D9B0C: @ 0x080D9B0C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl sub_080DBB28 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D9B2A - ldr r0, _080D9B30 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080D9B34 - str r0, [r1] -_080D9B2A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D9B30: .4byte gUnknown_3005B60 -_080D9B34: .4byte sub_080D9B38 - thumb_func_end sub_080D9B0C - - thumb_func_start sub_080D9B38 -sub_080D9B38: @ 0x080D9B38 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080D9B64 - ldr r3, _080D9B68 - ldr r1, _080D9B6C - str r2, [r1] - str r3, [r1, #4] - ldr r2, _080D9B70 - str r2, [r1, #8] - ldr r1, [r1, #8] - ldr r2, _080D9B74 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r0, #0 - strh r0, [r1, #8] - movs r0, #2 - strh r0, [r1, #0xa] - ldr r0, _080D9B78 - str r0, [r1] - bx lr - .align 2, 0 -_080D9B64: .4byte gUnknown_201A204 -_080D9B68: .4byte gUnknown_20373B4 -_080D9B6C: .4byte 0x040000D4 -_080D9B70: .4byte 0x84000100 -_080D9B74: .4byte gUnknown_3005B60 -_080D9B78: .4byte sub_080D9B7C - thumb_func_end sub_080D9B38 - - thumb_func_start sub_080D9B7C -sub_080D9B7C: @ 0x080D9B7C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080D9BB4 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - ble _080D9BAE - movs r0, #0 - strh r0, [r1, #8] - ldrh r0, [r1, #0xa] - subs r0, #1 - strh r0, [r1, #0xa] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080D9BAE - ldr r0, _080D9BB8 - str r0, [r1] -_080D9BAE: - pop {r0} - bx r0 - .align 2, 0 -_080D9BB4: .4byte gUnknown_3005B60 -_080D9BB8: .4byte sub_080D9BBC - thumb_func_end sub_080D9B7C - - thumb_func_start sub_080D9BBC -sub_080D9BBC: @ 0x080D9BBC - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080D9C1C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r6, r1, r2 - movs r1, #8 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _080D9C38 - ldr r0, _080D9C20 - ldr r0, [r0] - ldr r5, _080D9C24 - ldrb r1, [r5] - ldr r2, [r0, #4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r4, [r0, #0x1a] - bl sub_080DB000 - ldr r0, _080D9C28 - ldrb r1, [r5] - lsls r1, r1, #6 - ldr r2, _080D9C2C - adds r1, r1, r2 - bl StringCopy - ldr r5, _080D9C30 - ldr r0, _080D9C34 - lsls r4, r4, #2 - adds r4, r4, r0 - ldr r1, [r4] - adds r0, r5, #0 - bl StringExpandPlaceholders - adds r0, r5, #0 - movs r1, #1 - bl Contest_StartTextPrinter - ldrh r0, [r6, #8] - adds r0, #1 - strh r0, [r6, #8] - b _080D9C4A - .align 2, 0 -_080D9C1C: .4byte gUnknown_3005B60 -_080D9C20: .4byte gUnknown_2039BD4 -_080D9C24: .4byte gUnknown_2039BC5 -_080D9C28: .4byte gUnknown_2021C40 -_080D9C2C: .4byte gUnknown_2039AA2 -_080D9C30: .4byte gUnknown_2021C7C -_080D9C34: .4byte gUnknown_8560CF4 -_080D9C38: - bl GetPlayerTextSpeed - cmp r0, #0 - bne _080D9C4A - strh r0, [r6, #8] - ldr r0, _080D9C50 - str r0, [r6] - bl ContestDebugDoPrint -_080D9C4A: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080D9C50: .4byte sub_080D9C54 - thumb_func_end sub_080D9BBC - - thumb_func_start sub_080D9C54 -sub_080D9C54: @ 0x080D9C54 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080D9C84 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 - ldrh r0, [r4, #8] - adds r1, r0, #1 - strh r1, [r4, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1d - ble _080D9C7E - movs r0, #0 - strh r0, [r4, #8] - bl sub_080DBB10 - ldr r0, _080D9C88 - str r0, [r4] -_080D9C7E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D9C84: .4byte gUnknown_3005B60 -_080D9C88: .4byte sub_080D9C8C - thumb_func_end sub_080D9C54 - - thumb_func_start sub_080D9C8C -sub_080D9C8C: @ 0x080D9C8C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl sub_080DBB28 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080D9CAE - ldr r1, _080D9CB4 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #8] - ldr r1, _080D9CB8 - str r1, [r0] -_080D9CAE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D9CB4: .4byte gUnknown_3005B60 -_080D9CB8: .4byte sub_080D9CBC - thumb_func_end sub_080D9C8C - - thumb_func_start sub_080D9CBC -sub_080D9CBC: @ 0x080D9CBC - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_080DD988 - ldr r1, _080D9CDC - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080D9CE0 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D9CDC: .4byte gUnknown_3005B60 -_080D9CE0: .4byte sub_080DDB88 - thumb_func_end sub_080D9CBC - - thumb_func_start sub_080D9CE4 -sub_080D9CE4: @ 0x080D9CE4 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_080DDAB4 - ldr r1, _080D9D04 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080D9D08 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D9D04: .4byte gUnknown_3005B60 -_080D9D08: .4byte sub_080D9D0C - thumb_func_end sub_080D9CE4 - - thumb_func_start sub_080D9D0C -sub_080D9D0C: @ 0x080D9D0C - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r0, #8 - bl GetGpuReg - mov r1, sp - strh r0, [r1] - movs r0, #0xc - bl GetGpuReg - mov r4, sp - adds r4, #2 - strh r0, [r4] - mov r3, sp - ldrb r2, [r3] - movs r1, #4 - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3] - ldrb r0, [r4] - ands r1, r0 - strb r1, [r4] - mov r0, sp - ldrh r1, [r0] - movs r0, #8 - bl SetGpuReg - ldrh r1, [r4] - movs r0, #0xc - bl SetGpuReg - ldr r2, _080D9D74 - ldr r0, [r2] - ldr r1, [r0] - ldrb r0, [r1, #1] - adds r0, #1 - strb r0, [r1, #1] - ldr r0, [r2] - ldr r0, [r0] - ldrb r0, [r0, #1] - cmp r0, #5 - bne _080D9D80 - ldr r0, _080D9D78 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080D9D7C - b _080D9D90 - .align 2, 0 -_080D9D74: .4byte gUnknown_2039BD4 -_080D9D78: .4byte gUnknown_3005B60 -_080D9D7C: .4byte sub_080D9DD8 -_080D9D80: - bl StartMoveApplauseMeterOnscreen - ldr r0, _080D9D9C - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080D9DA0 -_080D9D90: - str r0, [r1] - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9D9C: .4byte gUnknown_3005B60 -_080D9DA0: .4byte sub_080D9DA4 - thumb_func_end sub_080D9D0C - - thumb_func_start sub_080D9DA4 -sub_080D9DA4: @ 0x080D9DA4 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _080D9DCC - ldr r0, [r0] - ldr r0, [r0] - ldrb r1, [r0, #6] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _080D9DC8 - ldr r0, _080D9DD0 - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080D9DD4 - str r0, [r1] -_080D9DC8: - pop {r0} - bx r0 - .align 2, 0 -_080D9DCC: .4byte gUnknown_2039BD4 -_080D9DD0: .4byte gUnknown_3005B60 -_080D9DD4: .4byte sub_080D7B68 - thumb_func_end sub_080D9DA4 - - thumb_func_start sub_080D9DD8 -sub_080D9DD8: @ 0x080D9DD8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _080D9E34 - movs r1, #0 - strh r1, [r0] - ldr r0, _080D9E38 - strh r1, [r0] - ldr r4, _080D9E3C - movs r3, #0 - ldr r2, _080D9E40 - movs r1, #3 -_080D9DF0: - ldr r0, [r4] - ldr r0, [r0, #4] - adds r0, r3, r0 - ldrh r0, [r0, #4] - strh r0, [r2] - adds r3, #0x1c - adds r2, #2 - subs r1, #1 - cmp r1, #0 - bge _080D9DF0 - bl sub_080DB47C - bl sub_080DB000 - ldr r0, _080D9E44 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080D9E4C - ldr r0, _080D9E3C - ldr r2, [r0] - ldr r0, _080D9E48 - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0, #8] - bl BravoTrainerPokemonProfile_BeforeInterview1 - b _080D9E58 - .align 2, 0 -_080D9E34: .4byte gUnknown_2022ACA -_080D9E38: .4byte gUnknown_2022AD2 -_080D9E3C: .4byte gUnknown_2039BD4 -_080D9E40: .4byte gUnknown_2039BB0 -_080D9E44: .4byte gUnknown_2039BCA -_080D9E48: .4byte gUnknown_2039BC5 -_080D9E4C: - bl sub_080DE958 - bl sub_080DEC00 - bl sub_080DEE2C -_080D9E58: - ldr r1, _080D9E8C - ldr r0, _080D9E90 - ldr r0, [r0] - str r0, [r1] - ldr r4, _080D9E94 - ldr r1, _080D9E98 - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - movs r1, #1 - bl Contest_StartTextPrinter - ldr r1, _080D9E9C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #0xc] - ldr r1, _080D9EA0 - str r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9E8C: .4byte gUnknown_3005E18 -_080D9E90: .4byte gUnknown_3005AE0 -_080D9E94: .4byte gUnknown_2021C7C -_080D9E98: .4byte gUnknown_824B36F -_080D9E9C: .4byte gUnknown_3005B60 -_080D9EA0: .4byte sub_080D9EA4 - thumb_func_end sub_080D9DD8 - - thumb_func_start sub_080D9EA4 -sub_080D9EA4: @ 0x080D9EA4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - bl GetPlayerTextSpeed - adds r4, r0, #0 - cmp r4, #0 - bne _080D9EDA - bl sub_080DD988 - ldr r0, _080D9EE0 - strh r4, [r0] - ldr r1, _080D9EE4 - movs r0, #0xa0 - strh r0, [r1] - movs r0, #0x62 - movs r1, #0 - bl PlaySE12WithPanning - ldr r1, _080D9EE8 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r4, [r0, #8] - ldr r1, _080D9EEC - str r1, [r0] -_080D9EDA: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9EE0: .4byte gUnknown_2022ACC -_080D9EE4: .4byte gUnknown_2022ACE -_080D9EE8: .4byte gUnknown_3005B60 -_080D9EEC: .4byte sub_080D9EF0 - thumb_func_end sub_080D9EA4 - - thumb_func_start sub_080D9EF0 -sub_080D9EF0: @ 0x080D9EF0 - push {lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r1, _080D9F24 - ldrh r0, [r1] - subs r0, #7 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _080D9F08 - movs r0, #0 - strh r0, [r1] -_080D9F08: - ldrh r2, [r1] - cmp r2, #0 - bne _080D9F1E - ldr r0, _080D9F28 - lsls r1, r3, #2 - adds r1, r1, r3 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080D9F2C - str r0, [r1] - strh r2, [r1, #8] -_080D9F1E: - pop {r0} - bx r0 - .align 2, 0 -_080D9F24: .4byte gUnknown_2022ACE -_080D9F28: .4byte gUnknown_3005B60 -_080D9F2C: .4byte sub_080D9F30 - thumb_func_end sub_080D9EF0 - - thumb_func_start sub_080D9F30 -sub_080D9F30: @ 0x080D9F30 - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080D9F64 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 - ldrh r0, [r4, #8] - adds r1, r0, #1 - strh r1, [r4, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x31 - ble _080D9F84 - movs r0, #0 - strh r0, [r4, #8] - ldr r0, _080D9F68 - ldrb r0, [r0] - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _080D9F70 - ldr r0, _080D9F6C - b _080D9F82 - .align 2, 0 -_080D9F64: .4byte gUnknown_3005B60 -_080D9F68: .4byte gUnknown_2039BCA -_080D9F6C: .4byte sub_080D9F90 -_080D9F70: - movs r0, #1 - rsbs r0, r0, #0 - str r1, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _080D9F8C -_080D9F82: - str r0, [r4] -_080D9F84: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D9F8C: .4byte sub_080DA020 - thumb_func_end sub_080D9F30 - - thumb_func_start sub_080D9F90 -sub_080D9F90: @ 0x080D9F90 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r5, _080D9FCC - adds r0, r5, #0 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080D9FD0 - adds r1, r5, #0 - bl SetTaskFuncWithFollowupFunc - ldr r1, _080D9FD4 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080D9FD8 - str r1, [r0] - bl ContestPrintLinkStandby - movs r0, #0 - bl sub_080DBBF4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9FCC: .4byte sub_080FD320 -_080D9FD0: .4byte sub_080D9FDC -_080D9FD4: .4byte gUnknown_3005B60 -_080D9FD8: .4byte sub_080D6E94 - thumb_func_end sub_080D9F90 - - thumb_func_start sub_080D9FDC -sub_080D9FDC: @ 0x080D9FDC - push {lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r2, _080DA014 - ldr r0, _080DA018 - ldr r0, [r0] - ldr r0, [r0] - ldrb r1, [r0, #8] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldr r1, _080DA01C - str r1, [r0] - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_080DA014: .4byte gUnknown_3005B60 -_080DA018: .4byte gUnknown_2039BD4 -_080DA01C: .4byte sub_080DA020 - thumb_func_end sub_080D9FDC - - thumb_func_start sub_080DA020 -sub_080DA020: @ 0x080DA020 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _080DA054 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080DA050 - adds r0, r2, #0 - bl DestroyTask - ldr r0, _080DA058 - ldr r1, _080DA05C - str r1, [r0] - bl FreeAllWindowBuffers - bl FreeContestResources - bl FreeMonSpritesGfx - ldr r0, _080DA060 - bl SetMainCallback2 -_080DA050: - pop {r0} - bx r0 - .align 2, 0 -_080DA054: .4byte gUnknown_2037C74 -_080DA058: .4byte gUnknown_3005B0C -_080DA05C: .4byte sub_080DA064 -_080DA060: .4byte sub_08085A30 - thumb_func_end sub_080DA020 - - thumb_func_start sub_080DA064 -sub_080DA064: @ 0x080DA064 - push {lr} - bl sub_080987E8 - bl EnableBothScriptContexts - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080DA064 - - thumb_func_start TryPutPlayerLast -TryPutPlayerLast: @ 0x080DA074 - push {lr} - ldr r0, _080DA08C - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080DA088 - ldr r1, _080DA090 - movs r0, #3 - strb r0, [r1] -_080DA088: - pop {r0} - bx r0 - .align 2, 0 -_080DA08C: .4byte gUnknown_2039BCA -_080DA090: .4byte gUnknown_2039BC5 - thumb_func_end TryPutPlayerLast - - thumb_func_start sub_080DA094 -sub_080DA094: @ 0x080DA094 - push {lr} - ldr r0, _080DA0A8 - ldr r1, _080DA0AC - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - beq _080DA0B0 - movs r0, #0 - b _080DA0B2 - .align 2, 0 -_080DA0A8: .4byte gUnknown_2039BC5 -_080DA0AC: .4byte gUnknown_2039BCB -_080DA0B0: - movs r0, #1 -_080DA0B2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080DA094 - - thumb_func_start sub_080DA0B8 -sub_080DA0B8: @ 0x080DA0B8 - push {r4, r5, r6, r7, lr} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r4, _080DA0F0 - ldr r1, [r4] - mov r0, sp - bl StringCopy - mov r1, sp - movs r0, #0xff - strb r0, [r1, #5] - ldr r6, _080DA0F4 - ldrb r0, [r6] - lsls r0, r0, #6 - ldr r5, _080DA0F8 - adds r0, r0, r5 - bl StringCopy - ldr r0, [r4] - ldrb r0, [r0, #8] - cmp r0, #0 - bne _080DA0FC - ldrb r0, [r6] - lsls r0, r0, #6 - adds r0, r5, r0 - movs r1, #0xd8 - b _080DA104 - .align 2, 0 -_080DA0F0: .4byte gUnknown_3005AF0 -_080DA0F4: .4byte gUnknown_2039BC5 -_080DA0F8: .4byte gUnknown_2039AAD -_080DA0FC: - ldrb r0, [r6] - lsls r0, r0, #6 - adds r0, r5, r0 - movs r1, #0xd9 -_080DA104: - strb r1, [r0, #8] - ldr r6, _080DA260 - ldr r5, _080DA264 - ldrb r0, [r5] - lsls r0, r0, #6 - adds r1, r6, #0 - adds r1, #0x18 - adds r0, r0, r1 - movs r1, #0 - str r1, [r0] - ldrb r0, [r5] - lsls r0, r0, #6 - adds r0, r0, r6 - adds r0, #0x2c - strb r1, [r0] - movs r0, #0x64 - adds r4, r7, #0 - muls r4, r0, r4 - ldr r0, _080DA268 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - ldrb r1, [r5] - lsls r1, r1, #6 - adds r1, r1, r6 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #2 - mov r2, sp - bl GetMonData - mov r0, sp - bl StringGetEnd10 - ldrb r0, [r5] - lsls r0, r0, #6 - adds r1, r6, #2 - adds r0, r0, r1 - mov r1, sp - bl StringCopy - adds r0, r4, #0 - movs r1, #0x16 - bl GetMonData - ldrb r1, [r5] - lsls r1, r1, #6 - adds r1, r1, r6 - adds r1, #0x26 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x17 - bl GetMonData - ldrb r1, [r5] - lsls r1, r1, #6 - adds r1, r1, r6 - adds r1, #0x27 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x18 - bl GetMonData - ldrb r1, [r5] - lsls r1, r1, #6 - adds r1, r1, r6 - adds r1, #0x28 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x21 - bl GetMonData - ldrb r1, [r5] - lsls r1, r1, #6 - adds r1, r1, r6 - adds r1, #0x29 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x2f - bl GetMonData - ldrb r1, [r5] - lsls r1, r1, #6 - adds r1, r1, r6 - adds r1, #0x2a - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x30 - bl GetMonData - ldrb r1, [r5] - lsls r1, r1, #6 - adds r1, r1, r6 - adds r1, #0x2b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0xd - bl GetMonData - ldrb r1, [r5] - lsls r1, r1, #6 - adds r1, r1, r6 - strh r0, [r1, #0x1e] - adds r0, r4, #0 - movs r1, #0xe - bl GetMonData - ldrb r1, [r5] - lsls r1, r1, #6 - adds r1, r1, r6 - strh r0, [r1, #0x20] - adds r0, r4, #0 - movs r1, #0xf - bl GetMonData - ldrb r1, [r5] - lsls r1, r1, #6 - adds r1, r1, r6 - strh r0, [r1, #0x22] - adds r0, r4, #0 - movs r1, #0x10 - bl GetMonData - ldrb r1, [r5] - lsls r1, r1, #6 - adds r1, r1, r6 - strh r0, [r1, #0x24] - adds r0, r4, #0 - movs r1, #0 - bl GetMonData - ldrb r1, [r5] - lsls r1, r1, #6 - adds r2, r6, #0 - adds r2, #0x38 - adds r1, r1, r2 - str r0, [r1] - adds r0, r4, #0 - movs r1, #1 - bl GetMonData - ldrb r1, [r5] - lsls r1, r1, #6 - adds r2, r6, #0 - adds r2, #0x3c - adds r1, r1, r2 - str r0, [r1] - adds r0, r4, #0 - movs r1, #0xc - bl GetMonData - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - mov ip, r2 - ldrb r0, [r5] - lsls r0, r0, #6 - adds r1, r0, r6 - adds r0, r1, #0 - adds r0, #0x26 - ldrb r3, [r0] - adds r0, #1 - ldrb r4, [r0] - adds r0, #1 - ldrb r5, [r0] - adds r0, #1 - ldrb r6, [r0] - adds r0, #1 - ldrb r7, [r0] - cmp r2, #0xfe - bne _080DA26C - adds r3, #0x14 - b _080DA2BA - .align 2, 0 -_080DA260: .4byte gUnknown_2039AA0 -_080DA264: .4byte gUnknown_2039BC5 -_080DA268: .4byte gUnknown_2024190 -_080DA26C: - cmp r2, #0xff - bne _080DA27C - lsls r0, r4, #0x10 - movs r1, #0xa0 - lsls r1, r1, #0xd - adds r0, r0, r1 - lsrs r4, r0, #0x10 - b _080DA2BA -_080DA27C: - movs r0, #0x80 - lsls r0, r0, #1 - cmp r2, r0 - bne _080DA290 - lsls r0, r5, #0x10 - movs r1, #0xa0 - lsls r1, r1, #0xd - adds r0, r0, r1 - lsrs r5, r0, #0x10 - b _080DA2BA -_080DA290: - ldr r0, _080DA2A4 - cmp r2, r0 - bne _080DA2A8 - lsls r0, r6, #0x10 - movs r1, #0xa0 - lsls r1, r1, #0xd - adds r0, r0, r1 - lsrs r6, r0, #0x10 - b _080DA2BA - .align 2, 0 -_080DA2A4: .4byte 0x00000101 -_080DA2A8: - movs r0, #0x81 - lsls r0, r0, #1 - cmp ip, r0 - bne _080DA2BA - lsls r0, r7, #0x10 - movs r1, #0xa0 - lsls r1, r1, #0xd - adds r0, r0, r1 - lsrs r7, r0, #0x10 -_080DA2BA: - cmp r3, #0xff - ble _080DA2C0 - movs r3, #0xff -_080DA2C0: - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xff - ble _080DA2CA - movs r4, #0xff -_080DA2CA: - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xff - ble _080DA2D4 - movs r5, #0xff -_080DA2D4: - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xff - ble _080DA2DE - movs r6, #0xff -_080DA2DE: - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xff - ble _080DA2E8 - movs r7, #0xff -_080DA2E8: - ldr r2, _080DA328 - ldr r1, _080DA32C - ldrb r0, [r1] - lsls r0, r0, #6 - adds r0, r0, r2 - adds r0, #0x26 - strb r3, [r0] - ldrb r0, [r1] - lsls r0, r0, #6 - adds r0, r0, r2 - adds r0, #0x27 - strb r4, [r0] - ldrb r0, [r1] - lsls r0, r0, #6 - adds r0, r0, r2 - adds r0, #0x28 - strb r5, [r0] - ldrb r0, [r1] - lsls r0, r0, #6 - adds r0, r0, r2 - adds r0, #0x29 - strb r6, [r0] - ldrb r0, [r1] - lsls r0, r0, #6 - adds r0, r0, r2 - adds r0, #0x2a - strb r7, [r0] - add sp, #0x14 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DA328: .4byte gUnknown_2039AA0 -_080DA32C: .4byte gUnknown_2039BC5 - thumb_func_end sub_080DA0B8 - - thumb_func_start sub_080DA330 -sub_080DA330: @ 0x080DA330 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x64 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - movs r6, #0 - movs r7, #0 - bl TryPutPlayerLast - ldr r0, _080DA380 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080DA364 - ldr r0, _080DA384 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080DA364 - movs r7, #1 -_080DA364: - movs r5, #0 - ldr r2, _080DA388 - ldr r3, _080DA38C -_080DA36A: - ldrb r0, [r2, #0x1c] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r8, r0 - bne _080DA3DE - cmp r7, #1 - bne _080DA390 - ldrb r0, [r3] - cmp r0, #1 - beq _080DA3DE - b _080DA396 - .align 2, 0 -_080DA380: .4byte 0x00000864 -_080DA384: .4byte gUnknown_2039BCA -_080DA388: .4byte gUnknown_8561028 -_080DA38C: .4byte gUnknown_8562828 -_080DA390: - ldrb r0, [r3] - cmp r0, #2 - beq _080DA3DE -_080DA396: - cmp r4, #0 - bne _080DA3A2 - ldrb r0, [r2, #0x1c] - lsls r0, r0, #0x1d - cmp r0, #0 - blt _080DA3D2 -_080DA3A2: - cmp r4, #1 - bne _080DA3AE - ldrb r0, [r2, #0x1c] - lsls r0, r0, #0x1c - cmp r0, #0 - blt _080DA3D2 -_080DA3AE: - cmp r4, #2 - bne _080DA3BA - ldrb r0, [r2, #0x1c] - lsls r0, r0, #0x1b - cmp r0, #0 - blt _080DA3D2 -_080DA3BA: - cmp r4, #3 - bne _080DA3C6 - ldrb r0, [r2, #0x1c] - lsls r0, r0, #0x1a - cmp r0, #0 - blt _080DA3D2 -_080DA3C6: - cmp r4, #4 - bne _080DA3DE - ldrb r0, [r2, #0x1c] - lsls r0, r0, #0x19 - cmp r0, #0 - bge _080DA3DE -_080DA3D2: - adds r0, r6, #0 - adds r1, r0, #1 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - add r0, sp - strb r5, [r0] -_080DA3DE: - adds r2, #0x40 - adds r3, #1 - adds r5, #1 - cmp r5, #0x5f - bls _080DA36A - mov r0, sp - adds r1, r0, r6 - movs r0, #0xff - strb r0, [r1] - movs r5, #0 - ldr r7, _080DA454 -_080DA3F4: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r6, #0 - bl __modsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _080DA458 - lsls r2, r5, #6 - adds r2, r2, r1 - mov r1, sp - adds r4, r1, r0 - ldrb r1, [r4] - lsls r1, r1, #6 - adds r1, r1, r7 - adds r0, r2, #0 - movs r2, #0x40 - bl memcpy - ldrb r0, [r4] - adds r2, r5, #1 - subs r1, r6, #1 - cmp r0, #0xff - beq _080DA436 - adds r3, r4, #0 -_080DA42A: - ldrb r0, [r3, #1] - strb r0, [r3] - adds r3, #1 - ldrb r0, [r3] - cmp r0, #0xff - bne _080DA42A -_080DA436: - lsls r0, r1, #0x18 - lsrs r6, r0, #0x18 - adds r5, r2, #0 - cmp r5, #2 - ble _080DA3F4 - ldr r0, _080DA45C - ldrb r0, [r0] - bl sub_080DA0B8 - add sp, #0x64 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DA454: .4byte gUnknown_8561028 -_080DA458: .4byte gUnknown_2039AA0 -_080DA45C: .4byte gUnknown_2039BC4 - thumb_func_end sub_080DA330 - - thumb_func_start sub_080DA460 -sub_080DA460: @ 0x080DA460 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x64 - mov ip, r2 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - movs r6, #0 - ldr r0, _080DA49C - ldrb r1, [r0] - mov r8, r0 - cmp r1, #4 - beq _080DA572 - movs r5, #0 - ldr r3, _080DA4A0 - ldr r2, _080DA4A4 -_080DA484: - ldrb r0, [r3, #0x1c] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r7, r0 - bne _080DA4F6 - mov r0, ip - cmp r0, #1 - bne _080DA4A8 - ldrb r0, [r2] - cmp r0, #1 - beq _080DA4F6 - b _080DA4AE - .align 2, 0 -_080DA49C: .4byte gUnknown_2039BD0 -_080DA4A0: .4byte gUnknown_8561028 -_080DA4A4: .4byte gUnknown_8562828 -_080DA4A8: - ldrb r0, [r2] - cmp r0, #2 - beq _080DA4F6 -_080DA4AE: - cmp r4, #0 - bne _080DA4BA - ldrb r0, [r3, #0x1c] - lsls r0, r0, #0x1d - cmp r0, #0 - blt _080DA4EA -_080DA4BA: - cmp r4, #1 - bne _080DA4C6 - ldrb r0, [r3, #0x1c] - lsls r0, r0, #0x1c - cmp r0, #0 - blt _080DA4EA -_080DA4C6: - cmp r4, #2 - bne _080DA4D2 - ldrb r0, [r3, #0x1c] - lsls r0, r0, #0x1b - cmp r0, #0 - blt _080DA4EA -_080DA4D2: - cmp r4, #3 - bne _080DA4DE - ldrb r0, [r3, #0x1c] - lsls r0, r0, #0x1a - cmp r0, #0 - blt _080DA4EA -_080DA4DE: - cmp r4, #4 - bne _080DA4F6 - ldrb r0, [r3, #0x1c] - lsls r0, r0, #0x19 - cmp r0, #0 - bge _080DA4F6 -_080DA4EA: - adds r0, r6, #0 - adds r1, r0, #1 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - add r0, sp - strb r5, [r0] -_080DA4F6: - adds r3, #0x40 - adds r2, #1 - adds r5, #1 - cmp r5, #0x5f - bls _080DA484 - mov r3, sp - adds r1, r3, r6 - movs r0, #0xff - strb r0, [r1] - movs r5, #0 - mov r0, r8 - ldrb r1, [r0] - movs r0, #4 - subs r0, r0, r1 - cmp r5, r0 - bge _080DA572 - ldr r7, _080DA580 -_080DA518: - bl sub_080F98CC - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r6, #0 - bl __modsi3 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, _080DA584 - ldrb r0, [r0] - adds r0, r0, r5 - lsls r0, r0, #6 - adds r0, r0, r7 - ldr r2, _080DA588 - mov r3, sp - adds r4, r3, r1 - ldrb r1, [r4] - lsls r1, r1, #6 - adds r1, r1, r2 - movs r2, #0x40 - bl memcpy - ldrb r0, [r4] - adds r3, r5, #1 - subs r1, r6, #1 - cmp r0, #0xff - beq _080DA560 - adds r2, r4, #0 -_080DA554: - ldrb r0, [r2, #1] - strb r0, [r2] - adds r2, #1 - ldrb r0, [r2] - cmp r0, #0xff - bne _080DA554 -_080DA560: - lsls r0, r1, #0x18 - lsrs r6, r0, #0x18 - adds r5, r3, #0 - ldr r0, _080DA584 - ldrb r1, [r0] - movs r0, #4 - subs r0, r0, r1 - cmp r5, r0 - blt _080DA518 -_080DA572: - add sp, #0x64 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DA580: .4byte gUnknown_2039AA0 -_080DA584: .4byte gUnknown_2039BD0 -_080DA588: .4byte gUnknown_8561028 - thumb_func_end sub_080DA460 - - thumb_func_start sub_080DA58C -sub_080DA58C: @ 0x080DA58C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - beq _080DA59E - movs r0, #3 - b _080DA61A -_080DA59E: - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - bne _080DA5AE - movs r0, #4 - b _080DA61A -_080DA5AE: - ldr r0, _080DA5C0 - ldrh r0, [r0] - cmp r0, #4 - bhi _080DA602 - lsls r0, r0, #2 - ldr r1, _080DA5C4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080DA5C0: .4byte gUnknown_2039BCC -_080DA5C4: .4byte _080DA5C8 -_080DA5C8: @ jump table - .4byte _080DA5DC @ case 0 - .4byte _080DA5E2 @ case 1 - .4byte _080DA5E8 @ case 2 - .4byte _080DA5EE @ case 3 - .4byte _080DA5F4 @ case 4 -_080DA5DC: - adds r0, r4, #0 - movs r1, #0x32 - b _080DA5F8 -_080DA5E2: - adds r0, r4, #0 - movs r1, #0x33 - b _080DA5F8 -_080DA5E8: - adds r0, r4, #0 - movs r1, #0x34 - b _080DA5F8 -_080DA5EE: - adds r0, r4, #0 - movs r1, #0x35 - b _080DA5F8 -_080DA5F4: - adds r0, r4, #0 - movs r1, #0x36 -_080DA5F8: - bl GetMonData - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - b _080DA606 -_080DA602: - movs r0, #0 - b _080DA61A -_080DA606: - ldr r0, _080DA620 - adds r2, r1, #0 - ldrh r1, [r0] - movs r0, #2 - cmp r2, r1 - bhi _080DA61A - movs r0, #0 - cmp r2, r1 - blo _080DA61A - movs r0, #1 -_080DA61A: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080DA620: .4byte gUnknown_2039BCE - thumb_func_end sub_080DA58C - - thumb_func_start sub_080DA624 -sub_080DA624: @ 0x080DA624 - push {r4, r5, lr} - movs r5, #0 -_080DA628: - ldr r4, _080DA660 - adds r4, r5, r4 - ldrb r0, [r4] - movs r1, #0 - bl FillWindowPixelBuffer - ldrb r0, [r4] - adds r0, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl FillWindowPixelBuffer - lsls r4, r5, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl sub_080DA68C - adds r0, r4, #0 - bl sub_080DA6F8 - adds r5, #1 - cmp r5, #3 - ble _080DA628 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080DA660: .4byte gUnknown_2039BC6 - thumb_func_end sub_080DA624 - - thumb_func_start Rain_Main -Rain_Main: @ 0x080DA664 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r4, r1, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _080DA684 - ldr r1, _080DA688 - bl StringCopy - strb r4, [r0] - adds r0, #1 - adds r1, r5, #0 - bl StringCopy - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080DA684: .4byte gUnknown_2022AE0 -_080DA688: .4byte gUnknown_85CC497 - thumb_func_end Rain_Main - - thumb_func_start sub_080DA68C -sub_080DA68C: @ 0x080DA68C - push {lr} - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r0, r1, #0x18 - movs r2, #0xa0 - lsls r2, r2, #0x14 - adds r1, r1, r2 - lsrs r1, r1, #0x18 - bl sub_080DA6A4 - pop {r0} - bx r0 - thumb_func_end sub_080DA68C - - thumb_func_start sub_080DA6A4 -sub_080DA6A4: @ 0x080DA6A4 - push {r4, r5, lr} - sub sp, #0x20 - adds r4, r0, #0 - adds r5, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r1, _080DA6E8 - mov r0, sp - bl StringCopy - lsls r1, r4, #6 - ldr r0, _080DA6EC - adds r1, r1, r0 - mov r0, sp - bl StringAppend - mov r0, sp - adds r1, r5, #0 - bl Rain_Main - ldr r0, _080DA6F0 - adds r4, r4, r0 - ldrb r0, [r4] - adds r0, #4 - ldr r1, _080DA6F4 - bl sub_080DE2D4 - add sp, #0x20 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080DA6E8: .4byte gUnknown_85C93FF -_080DA6EC: .4byte gUnknown_2039AAD -_080DA6F0: .4byte gUnknown_2039BC6 -_080DA6F4: .4byte gUnknown_2022AE0 - thumb_func_end sub_080DA6A4 - - thumb_func_start sub_080DA6F8 -sub_080DA6F8: @ 0x080DA6F8 - push {lr} - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r0, r1, #0x18 - movs r2, #0xa0 - lsls r2, r2, #0x14 - adds r1, r1, r2 - lsrs r1, r1, #0x18 - bl sub_080DA710 - pop {r0} - bx r0 - thumb_func_end sub_080DA6F8 - - thumb_func_start sub_080DA710 -sub_080DA710: @ 0x080DA710 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r4, #6 - ldr r2, _080DA738 - adds r0, r0, r2 - bl Rain_Main - ldr r0, _080DA73C - adds r4, r4, r0 - ldrb r0, [r4] - ldr r1, _080DA740 - bl sub_080DE2D4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DA738: .4byte gUnknown_2039AA2 -_080DA73C: .4byte gUnknown_2039BC6 -_080DA740: .4byte gUnknown_2022AE0 - thumb_func_end sub_080DA710 - - thumb_func_start sub_080DA744 -sub_080DA744: @ 0x080DA744 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r0, r1, #0x18 - cmp r0, #4 - bhi _080DA7D0 - lsls r0, r0, #2 - ldr r1, _080DA75C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080DA75C: .4byte _080DA760 -_080DA760: @ jump table - .4byte _080DA774 @ case 0 - .4byte _080DA78C @ case 1 - .4byte _080DA7A4 @ case 2 - .4byte _080DA7B4 @ case 3 - .4byte _080DA7D0 @ case 4 -_080DA774: - ldr r0, _080DA788 - lsls r2, r2, #6 - adds r1, r2, r0 - adds r3, r1, #0 - adds r3, #0x26 - ldrb r5, [r3] - adds r3, #4 - ldrb r4, [r3] - adds r1, #0x27 - b _080DA7E2 - .align 2, 0 -_080DA788: .4byte gUnknown_2039AA0 -_080DA78C: - ldr r0, _080DA7A0 - lsls r2, r2, #6 - adds r1, r2, r0 - adds r3, r1, #0 - adds r3, #0x27 - ldrb r5, [r3] - subs r3, #1 - ldrb r4, [r3] - adds r1, #0x28 - b _080DA7E2 - .align 2, 0 -_080DA7A0: .4byte gUnknown_2039AA0 -_080DA7A4: - ldr r1, _080DA7B0 - lsls r2, r2, #6 - adds r3, r2, r1 - adds r0, r3, #0 - adds r0, #0x28 - b _080DA7BE - .align 2, 0 -_080DA7B0: .4byte gUnknown_2039AA0 -_080DA7B4: - ldr r1, _080DA7CC - lsls r2, r2, #6 - adds r3, r2, r1 - adds r0, r3, #0 - adds r0, #0x29 -_080DA7BE: - ldrb r5, [r0] - subs r0, #1 - ldrb r4, [r0] - adds r0, #2 - ldrb r3, [r0] - adds r0, r1, #0 - b _080DA7E4 - .align 2, 0 -_080DA7CC: .4byte gUnknown_2039AA0 -_080DA7D0: - ldr r0, _080DA7FC - lsls r2, r2, #6 - adds r1, r2, r0 - adds r3, r1, #0 - adds r3, #0x2a - ldrb r5, [r3] - subs r3, #1 - ldrb r4, [r3] - adds r1, #0x26 -_080DA7E2: - ldrb r3, [r1] -_080DA7E4: - adds r1, r2, r0 - adds r1, #0x2b - adds r0, r4, r3 - ldrb r1, [r1] - adds r0, r0, r1 - asrs r0, r0, #1 - adds r0, r5, r0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080DA7FC: .4byte gUnknown_2039AA0 - thumb_func_end sub_080DA744 - - thumb_func_start sub_080DA800 -sub_080DA800: @ 0x080DA800 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r4, #0 - ldr r5, _080DA824 -_080DA80A: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - adds r1, r6, #0 - bl sub_080DA744 - strh r0, [r5] - adds r5, #2 - adds r4, #1 - cmp r4, #3 - ble _080DA80A - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080DA824: .4byte gUnknown_2039BA0 - thumb_func_end sub_080DA800 - - thumb_func_start AnimTask_Splash -AnimTask_Splash: @ 0x080DA828 - push {r4, r5, lr} - ldr r0, _080DA870 - bl LoadCompressedSpriteSheet - ldr r0, _080DA874 - movs r1, #0x88 - lsls r1, r1, #1 - movs r2, #0x20 - bl LoadCompressedPalette - ldr r0, _080DA878 - movs r1, #0x70 - movs r2, #0x24 - movs r3, #0x1e - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _080DA87C - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r5, r2, r4 - ldrb r3, [r5, #5] - movs r1, #0xf - ands r1, r3 - movs r3, #0x10 - orrs r1, r3 - strb r1, [r5, #5] - adds r4, #0x1c - adds r2, r2, r4 - ldr r1, _080DA880 - str r1, [r2] - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080DA870: .4byte gUnknown_8560B64 -_080DA874: .4byte gUnknown_8C1C700 -_080DA878: .4byte gUnknown_8560B4C -_080DA87C: .4byte gUnknown_20205AC -_080DA880: .4byte sub_08007140 - thumb_func_end AnimTask_Splash - - thumb_func_start sub_080DA884 -sub_080DA884: @ 0x080DA884 - push {lr} - ldr r0, _080DA8C8 - bl LoadCompressedSpriteSheet - ldr r0, _080DA8CC - bl LoadCompressedSpritePalette - ldr r0, _080DA8D0 - movs r1, #0x60 - movs r2, #0xa - movs r3, #0x1d - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080DA8D4 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r1 - movs r1, #0x3e - adds r1, r1, r2 - mov ip, r1 - ldrb r1, [r1] - movs r3, #4 - orrs r1, r3 - mov r3, ip - strb r1, [r3] - ldrh r1, [r2, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x16 - strh r1, [r2, #0x2e] - pop {r1} - bx r1 - .align 2, 0 -_080DA8C8: .4byte gUnknown_8560B6C -_080DA8CC: .4byte gUnknown_8560B74 -_080DA8D0: .4byte gUnknown_8560B7C -_080DA8D4: .4byte gUnknown_20205AC - thumb_func_end sub_080DA884 - - thumb_func_start sub_080DA8D8 -sub_080DA8D8: @ 0x080DA8D8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r1, #0 - adds r6, r2, #0 - adds r4, r3, #0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r5, #0 - bl SanitizeSpecies - adds r5, r0, #0 - ldr r0, _080DA910 - ldrb r0, [r0] - cmp r4, r0 - bne _080DA91C - lsls r0, r5, #3 - ldr r1, _080DA914 - adds r0, r0, r1 - ldr r1, _080DA918 - ldr r1, [r1] - ldr r1, [r1, #4] - adds r2, r5, #0 - adds r3, r6, #0 - bl HandleLoadSpecialPokePic_2 - b _080DA930 - .align 2, 0 -_080DA910: .4byte gUnknown_2039BC5 -_080DA914: .4byte gUnknown_82D6148 -_080DA918: .4byte gUnknown_2024178 -_080DA91C: - lsls r0, r5, #3 - ldr r1, _080DA9C4 - adds r0, r0, r1 - ldr r1, _080DA9C8 - ldr r1, [r1] - ldr r1, [r1, #4] - adds r2, r5, #0 - adds r3, r6, #0 - bl HandleLoadSpecialPokePic_DontHandleDeoxys -_080DA930: - adds r0, r5, #0 - adds r1, r7, #0 - adds r2, r6, #0 - bl GetMonSpritePalFromSpeciesAndPersonality - movs r1, #0x90 - lsls r1, r1, #1 - movs r2, #0x20 - bl LoadCompressedPalette - adds r0, r5, #0 - movs r1, #0 - bl SetMultiuseSpriteTemplateToPokemon - ldr r4, _080DA9CC - movs r0, #2 - adds r1, r5, #0 - movs r2, #0 - bl GetBattlerSpriteFinal_Y - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - movs r1, #0x70 - movs r3, #0x1e - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _080DA9D0 - mov r8, r0 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r6, r0, #2 - mov r0, r8 - adds r4, r6, r0 - ldrb r1, [r4, #5] - movs r0, #0xf - ands r0, r1 - movs r1, #0x20 - orrs r0, r1 - movs r1, #0xd - rsbs r1, r1, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r4, #5] - movs r0, #2 - bl GetBattlerSpriteSubpriority - adds r1, r4, #0 - adds r1, #0x43 - strb r0, [r1] - mov r0, r8 - adds r0, #0x1c - adds r0, r6, r0 - ldr r1, _080DA9D4 - str r1, [r0] - ldrb r0, [r4, #5] - lsrs r0, r0, #4 - strh r0, [r4, #0x2e] - strh r5, [r4, #0x32] - adds r0, r5, #0 - bl IsSpeciesNotUnown - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080DA9DC - mov r0, r8 - adds r0, #0x10 - adds r0, r6, r0 - ldr r1, _080DA9D8 - b _080DA9E4 - .align 2, 0 -_080DA9C4: .4byte gUnknown_82D6148 -_080DA9C8: .4byte gUnknown_2024178 -_080DA9CC: .4byte gUnknown_2024640 -_080DA9D0: .4byte gUnknown_20205AC -_080DA9D4: .4byte sub_08007140 -_080DA9D8: .4byte gUnknown_82D2F50 -_080DA9DC: - mov r0, r8 - adds r0, #0x10 - adds r0, r6, r0 - ldr r1, _080DAA04 -_080DA9E4: - str r1, [r0] - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - ldr r1, _080DAA08 - adds r0, r0, r1 - movs r1, #0 - bl StartSpriteAffineAnim - adds r0, r7, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080DAA04: .4byte gUnknown_82D2F24 -_080DAA08: .4byte gUnknown_20205AC - thumb_func_end sub_080DA8D8 - - thumb_func_start IsSpeciesNotUnown -IsSpeciesNotUnown: @ 0x080DAA0C - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xc9 - beq _080DAA1A - movs r0, #1 - b _080DAA1C -_080DAA1A: - movs r0, #0 -_080DAA1C: - pop {r1} - bx r1 - thumb_func_end IsSpeciesNotUnown - - thumb_func_start SwapMoveDescAndContestTilemaps -SwapMoveDescAndContestTilemaps: @ 0x080DAA20 - push {r4, r5, r6, lr} - ldr r5, _080DAA4C - ldr r0, [r5] - ldr r0, [r0, #0x24] - movs r4, #0xa0 - lsls r4, r4, #3 - adds r1, r0, r4 - movs r6, #0xa0 - lsls r6, r6, #1 - adds r2, r6, #0 - bl CpuSet - ldr r0, [r5] - ldr r0, [r0, #0x2c] - adds r4, r0, r4 - adds r1, r4, #0 - adds r2, r6, #0 - bl CpuSet - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080DAA4C: .4byte gUnknown_2039BD4 - thumb_func_end SwapMoveDescAndContestTilemaps - - thumb_func_start sub_080DAA50 -sub_080DAA50: @ 0x080DAA50 - push {lr} - lsls r0, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - ldr r2, _080DAA78 - ldr r1, _080DAA7C - lsrs r0, r0, #0xd - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #8 - bhi _080DAAB8 - lsls r0, r0, #2 - ldr r1, _080DAA80 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080DAA78: .4byte gUnknown_8566AE4 -_080DAA7C: .4byte gUnknown_8565FCC -_080DAA80: .4byte _080DAA84 -_080DAA84: @ jump table - .4byte _080DAAA8 @ case 0 - .4byte _080DAAA8 @ case 1 - .4byte _080DAAB0 @ case 2 - .4byte _080DAAB0 @ case 3 - .4byte _080DAAB8 @ case 4 - .4byte _080DAAB8 @ case 5 - .4byte _080DAAB8 @ case 6 - .4byte _080DAAB8 @ case 7 - .4byte _080DAAA8 @ case 8 -_080DAAA8: - ldr r0, _080DAAAC - b _080DAABA - .align 2, 0 -_080DAAAC: .4byte 0x00009082 -_080DAAB0: - ldr r0, _080DAAB4 - b _080DAABA - .align 2, 0 -_080DAAB4: .4byte 0x00009088 -_080DAAB8: - ldr r0, _080DAAD0 -_080DAABA: - lsls r1, r3, #0xc - movs r2, #0x90 - lsls r2, r2, #8 - adds r1, r1, r2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 -_080DAAD0: .4byte 0x00009086 - thumb_func_end sub_080DAA50 - - thumb_func_start sub_080DAAD4 -sub_080DAAD4: @ 0x080DAAD4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - ldr r1, _080DAB54 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r0, [r0, #1] - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1d - ldr r7, _080DAB58 - cmp r0, #0 - beq _080DAB08 - adds r7, #5 - cmp r0, #1 - beq _080DAB08 - adds r7, #5 - cmp r0, #2 - beq _080DAB08 - adds r7, #0x40 - cmp r0, #3 - bne _080DAB08 - subs r7, #0x20 -_080DAB08: - movs r6, #5 - str r6, [sp] - movs r4, #1 - str r4, [sp, #4] - movs r5, #0x11 - str r5, [sp, #8] - str r4, [sp, #0xc] - movs r0, #0 - adds r1, r7, #0 - movs r2, #0xb - movs r3, #0x1f - bl ContestBG_FillBoxWithIncrementingTile - adds r1, r7, #0 - adds r1, #0x10 - str r6, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - str r4, [sp, #0xc] - movs r0, #0 - movs r2, #0xb - movs r3, #0x20 - bl ContestBG_FillBoxWithIncrementingTile - ldr r2, _080DAB5C - ldr r0, _080DAB54 - mov r3, r8 - lsls r1, r3, #3 - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r2, r0, r2 - ldrb r0, [r2, #1] - adds r7, r1, #0 - cmp r0, #0xff - bne _080DAB60 - movs r6, #0 - b _080DAB6C - .align 2, 0 -_080DAB54: .4byte gUnknown_8565FCC -_080DAB58: .4byte 0x00004040 -_080DAB5C: .4byte gUnknown_8566AE4 -_080DAB60: - ldrb r0, [r2, #1] - movs r1, #0xa - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_080DAB6C: - cmp r6, #8 - bls _080DAB72 - movs r6, #8 -_080DAB72: - ldr r1, _080DABB4 - movs r0, #8 - str r0, [sp] - movs r5, #1 - str r5, [sp, #4] - movs r4, #0x11 - str r4, [sp, #8] - movs r0, #0 - movs r2, #0x15 - movs r3, #0x1f - bl ContestBG_FillBoxWithTile - ldr r1, _080DABB8 - str r6, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #0 - movs r2, #0x15 - movs r3, #0x1f - bl ContestBG_FillBoxWithTile - ldr r1, _080DABBC - ldr r0, _080DABC0 - adds r0, r7, r0 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r1, r0, r1 - ldrb r0, [r1, #2] - cmp r0, #0xff - bne _080DABC4 - movs r6, #0 - b _080DABD0 - .align 2, 0 -_080DABB4: .4byte 0x00005035 -_080DABB8: .4byte 0x00005012 -_080DABBC: .4byte gUnknown_8566AE4 -_080DABC0: .4byte gUnknown_8565FCC -_080DABC4: - ldrb r0, [r1, #2] - movs r1, #0xa - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_080DABD0: - cmp r6, #8 - bls _080DABD6 - movs r6, #8 -_080DABD6: - ldr r1, _080DAC30 - movs r0, #8 - str r0, [sp] - movs r5, #1 - str r5, [sp, #4] - movs r4, #0x11 - str r4, [sp, #8] - movs r0, #0 - movs r2, #0x15 - movs r3, #0x20 - bl ContestBG_FillBoxWithTile - ldr r1, _080DAC34 - str r6, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #0 - movs r2, #0x15 - movs r3, #0x20 - bl ContestBG_FillBoxWithTile - movs r0, #0xe - movs r1, #0 - bl FillWindowPixelBuffer - ldr r1, _080DAC38 - ldr r0, _080DAC3C - adds r0, r7, r0 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - movs r0, #0xe - bl sub_080DE2D4 - ldr r1, _080DAC40 - movs r0, #0xd - bl sub_080DE2D4 - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DAC30: .4byte 0x00005036 -_080DAC34: .4byte 0x00005014 -_080DAC38: .4byte gUnknown_8560BB4 -_080DAC3C: .4byte gUnknown_8565FCC -_080DAC40: .4byte gUnknown_85C93FF - thumb_func_end sub_080DAAD4 - - thumb_func_start sub_080DAC44 -sub_080DAC44: @ 0x080DAC44 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x10 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - ldr r0, _080DACC0 - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - adds r0, #2 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - adds r0, r4, #0 - bl Contest_IsMonsTurnDisabled - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080DACC4 - cmp r5, #0 - beq _080DACC4 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080DAA50 - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - movs r0, #2 - mov r8, r0 - str r0, [sp] - movs r5, #1 - str r5, [sp, #4] - movs r6, #0x11 - str r6, [sp, #8] - str r5, [sp, #0xc] - movs r0, #0 - adds r1, r4, #0 - movs r2, #0x14 - adds r3, r7, #0 - bl ContestBG_FillBoxWithIncrementingTile - adds r4, #0x10 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r3, r7, #1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r0, r8 - str r0, [sp] - str r5, [sp, #4] - str r6, [sp, #8] - str r5, [sp, #0xc] - movs r0, #0 - adds r1, r4, #0 - movs r2, #0x14 - bl ContestBG_FillBoxWithIncrementingTile - b _080DACDA - .align 2, 0 -_080DACC0: .4byte gUnknown_2039BC6 -_080DACC4: - movs r0, #2 - str r0, [sp] - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #0x14 - adds r3, r7, #0 - bl ContestBG_FillBoxWithTile -_080DACDA: - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080DAC44 - - thumb_func_start sub_080DACE8 -sub_080DACE8: @ 0x080DACE8 - push {r4, r5, lr} - movs r4, #0 - movs r5, #0 -_080DACEE: - ldr r0, _080DAD10 - ldr r0, [r0] - ldr r0, [r0, #4] - adds r0, r5, r0 - ldrh r0, [r0, #6] - lsls r1, r4, #0x18 - lsrs r1, r1, #0x18 - bl sub_080DAC44 - adds r5, #0x1c - adds r4, #1 - cmp r4, #3 - ble _080DACEE - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080DAD10: .4byte gUnknown_2039BD4 - thumb_func_end sub_080DACE8 - - thumb_func_start sub_080DAD14 -sub_080DAD14: @ 0x080DAD14 - ldr r0, _080DAD18 - bx lr - .align 2, 0 -_080DAD18: .4byte 0x00002034 - thumb_func_end sub_080DAD14 - - thumb_func_start sub_080DAD1C -sub_080DAD1C: @ 0x080DAD1C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - mov sl, r8 - ldr r0, _080DAD54 - mov sb, r0 - ldr r0, [r0] - ldr r1, [r0, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r7, r0, #2 - adds r3, r7, r1 - ldrb r0, [r3, #0x10] - movs r5, #0x30 - ands r5, r0 - cmp r5, #0 - bne _080DAD58 - movs r0, #0 - b _080DADEE - .align 2, 0 -_080DAD54: .4byte gUnknown_2039BD4 -_080DAD58: - ldr r0, _080DADA8 - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - adds r0, #2 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r0, #0xd - ldrsb r0, [r3, r0] - movs r1, #0xa - bl __divsi3 - lsls r0, r0, #0x18 - asrs r4, r0, #0x18 - cmp r5, #0x10 - bne _080DADAC - bl sub_080DAD14 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #1 - str r0, [sp] - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #0 - movs r2, #0x13 - adds r3, r6, #0 - bl ContestBG_FillBoxWithTile - mov r1, r8 - cmp r1, #0 - beq _080DADEC - movs r0, #0x5b - b _080DADD6 - .align 2, 0 -_080DADA8: .4byte gUnknown_2039BC6 -_080DADAC: - adds r3, r6, r4 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #1 - str r0, [sp] - movs r0, #3 - subs r0, r0, r4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #0x13 - bl ContestBG_FillBoxWithTile - mov r0, sl - cmp r0, #0 - beq _080DADEC - movs r0, #0x26 -_080DADD6: - bl sub_080A306C - mov r1, sb - ldr r0, [r1] - ldr r1, [r0, #4] - adds r1, r7, r1 - ldrb r2, [r1, #0x10] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #0x10] -_080DADEC: - movs r0, #1 -_080DADEE: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080DAD1C - - thumb_func_start sub_080DAE00 -sub_080DAE00: @ 0x080DAE00 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - movs r7, #0 - movs r0, #1 - mov sl, r0 - movs r1, #0x11 - mov sb, r1 - movs r0, #0 - mov r8, r0 -_080DAE1A: - ldr r0, _080DAEA4 - adds r0, r7, r0 - ldrb r0, [r0] - lsls r4, r0, #2 - adds r4, r4, r0 - adds r4, #2 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_080DAD14 - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - ldr r0, _080DAEA8 - ldr r0, [r0] - ldr r0, [r0, #4] - add r0, r8 - ldrb r0, [r0, #0xd] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #0xa - bl __divsi3 - lsls r0, r0, #0x18 - mov r1, sl - str r1, [sp] - asrs r6, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - mov r0, sb - str r0, [sp, #8] - movs r0, #0 - adds r1, r5, #0 - movs r2, #0x13 - adds r3, r4, #0 - bl ContestBG_FillBoxWithTile - adds r4, r4, r6 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r1, sl - str r1, [sp] - movs r0, #3 - subs r0, r0, r6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - mov r0, sb - str r0, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #0x13 - adds r3, r4, #0 - bl ContestBG_FillBoxWithTile - movs r1, #0x1c - add r8, r1 - adds r7, #1 - cmp r7, #3 - ble _080DAE1A - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DAEA4: .4byte gUnknown_2039BC6 -_080DAEA8: .4byte gUnknown_2039BD4 - thumb_func_end sub_080DAE00 - - thumb_func_start sub_080DAEAC -sub_080DAEAC: @ 0x080DAEAC - push {lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r0, #0 - cmp r1, #4 - bhi _080DAEEE - lsls r0, r1, #2 - ldr r1, _080DAEC4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080DAEC4: .4byte _080DAEC8 -_080DAEC8: @ jump table - .4byte _080DAEDC @ case 0 - .4byte _080DAEE0 @ case 1 - .4byte _080DAEE4 @ case 2 - .4byte _080DAEE8 @ case 3 - .4byte _080DAEEC @ case 4 -_080DAEDC: - movs r0, #0x80 - b _080DAEEE -_080DAEE0: - movs r0, #0x84 - b _080DAEEE -_080DAEE4: - movs r0, #0x86 - b _080DAEEE -_080DAEE8: - movs r0, #0x88 - b _080DAEEE -_080DAEEC: - movs r0, #0x82 -_080DAEEE: - movs r1, #0x90 - lsls r1, r1, #8 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - thumb_func_end sub_080DAEAC - - thumb_func_start sub_080DAEFC -sub_080DAEFC: @ 0x080DAEFC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - mov sb, r1 - movs r1, #0 - mov r8, r1 - ldr r1, _080DAF44 - adds r1, r0, r1 - ldrb r2, [r1] - lsls r1, r2, #2 - adds r1, r1, r2 - adds r1, #2 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - ldr r1, _080DAF48 - ldr r1, [r1] - ldr r2, [r1, #4] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r2, r1, r2 - ldr r0, [r2, #0x10] - ldr r1, _080DAF4C - ands r0, r1 - cmp r0, #0 - bne _080DAF40 - ldrb r0, [r2, #0xf] - cmp r0, #0 - beq _080DAF50 -_080DAF40: - movs r0, #0 - b _080DAF72 - .align 2, 0 -_080DAF44: .4byte gUnknown_2039BC6 -_080DAF48: .4byte gUnknown_2039BD4 -_080DAF4C: .4byte 0x00FF0003 -_080DAF50: - ldrb r1, [r2, #0xc] - mov r0, sb - ands r0, r1 - cmp r0, #0 - beq _080DAF5E - movs r0, #1 - b _080DAF72 -_080DAF5E: - movs r0, #6 - ands r0, r1 - cmp r0, #0 - bne _080DAF70 - ldrb r1, [r2, #0xb] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080DAF7E -_080DAF70: - movs r0, #2 -_080DAF72: - bl sub_080DAEAC - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - b _080DAF82 -_080DAF7E: - movs r0, #0 - mov sb, r0 -_080DAF82: - mov r1, sb - cmp r1, #0 - beq _080DAFC2 - movs r6, #2 - str r6, [sp] - movs r4, #1 - str r4, [sp, #4] - movs r5, #0x11 - str r5, [sp, #8] - str r4, [sp, #0xc] - movs r0, #0 - mov r1, r8 - movs r2, #0x14 - adds r3, r7, #0 - bl ContestBG_FillBoxWithIncrementingTile - mov r1, r8 - adds r1, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r3, r7, #1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r6, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - str r4, [sp, #0xc] - movs r0, #0 - movs r2, #0x14 - bl ContestBG_FillBoxWithIncrementingTile - b _080DAFD8 -_080DAFC2: - movs r0, #2 - str r0, [sp] - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #0x14 - adds r3, r7, #0 - bl ContestBG_FillBoxWithTile -_080DAFD8: - mov r0, sb - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_080DAEFC - - thumb_func_start sub_080DAFE8 -sub_080DAFE8: @ 0x080DAFE8 - push {r4, lr} - movs r4, #0 -_080DAFEC: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl sub_080DAEFC - adds r4, #1 - cmp r4, #3 - ble _080DAFEC - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080DAFE8 - - thumb_func_start sub_080DB000 -sub_080DB000: @ 0x080DB000 - push {lr} - movs r0, #8 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #8 - movs r1, #2 - bl CopyWindowToVram - movs r0, #0 - bl Contest_SetBgCopyFlags - pop {r0} - bx r0 - thumb_func_end sub_080DB000 - - thumb_func_start GetChosenMove -GetChosenMove: @ 0x080DB01C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, r4, #0 - adds r0, r4, #0 - bl Contest_IsMonsTurnDisabled - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080DB034 - movs r0, #0 - b _080DB06E -_080DB034: - ldr r0, _080DB050 - ldrb r0, [r0] - cmp r4, r0 - beq _080DB058 - adds r0, r4, #0 - bl ContestAI_ResetAI - bl ContestAI_GetActionToUse - lsls r0, r0, #0x18 - ldr r2, _080DB054 - lsrs r0, r0, #0x17 - lsls r1, r4, #6 - b _080DB066 - .align 2, 0 -_080DB050: .4byte gUnknown_2039BC5 -_080DB054: .4byte gUnknown_2039AA0 -_080DB058: - ldr r2, _080DB074 - ldr r0, _080DB078 - ldr r0, [r0] - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, r0, #1 - lsls r1, r5, #6 -_080DB066: - adds r0, r0, r1 - adds r2, #0x1e - adds r0, r0, r2 - ldrh r0, [r0] -_080DB06E: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080DB074: .4byte gUnknown_2039AA0 -_080DB078: .4byte gUnknown_2039BD4 - thumb_func_end GetChosenMove - - thumb_func_start GetAllChosenMoves -GetAllChosenMoves: @ 0x080DB07C - push {r4, r5, lr} - movs r4, #0 - movs r5, #0 -_080DB082: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl GetChosenMove - ldr r1, _080DB0A4 - ldr r1, [r1] - ldr r1, [r1, #4] - adds r1, r5, r1 - strh r0, [r1, #6] - adds r5, #0x1c - adds r4, #1 - cmp r4, #3 - ble _080DB082 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080DB0A4: .4byte gUnknown_2039BD4 - thumb_func_end GetAllChosenMoves - - thumb_func_start RankContestants -RankContestants: @ 0x080DB0A8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #8 - ldr r5, _080DB150 - mov r4, sp - movs r3, #0 - movs r6, #3 -_080DB0BA: - ldr r2, [r5] - ldr r1, [r2, #4] - adds r1, r3, r1 - ldrh r0, [r1, #2] - ldrh r7, [r1, #4] - adds r0, r0, r7 - strh r0, [r1, #4] - ldr r0, [r2, #4] - adds r0, r3, r0 - ldrh r0, [r0, #4] - strh r0, [r4] - adds r4, #2 - adds r3, #0x1c - subs r6, #1 - cmp r6, #0 - bge _080DB0BA - movs r6, #0 -_080DB0DC: - movs r4, #3 - cmp r4, r6 - ble _080DB108 -_080DB0E2: - subs r5, r4, #1 - lsls r0, r5, #1 - mov r1, sp - adds r3, r1, r0 - lsls r0, r4, #1 - adds r2, r1, r0 - ldrh r4, [r3] - movs r7, #0 - ldrsh r1, [r3, r7] - movs r7, #0 - ldrsh r0, [r2, r7] - cmp r1, r0 - bge _080DB102 - ldrh r0, [r2] - strh r4, [r2] - strh r0, [r3] -_080DB102: - adds r4, r5, #0 - cmp r4, r6 - bgt _080DB0E2 -_080DB108: - adds r6, #1 - cmp r6, #2 - ble _080DB0DC - movs r6, #0 - movs r0, #4 - rsbs r0, r0, #0 - mov sb, r0 - ldr r1, _080DB150 - mov r8, r1 - movs r7, #3 - mov ip, r7 -_080DB11E: - movs r4, #0 - lsls r0, r6, #3 - adds r7, r6, #1 - subs r0, r0, r6 - lsls r5, r0, #2 - mov r3, sp -_080DB12A: - mov r1, r8 - ldr r0, [r1] - ldr r0, [r0, #4] - adds r2, r5, r0 - movs r6, #4 - ldrsh r1, [r2, r6] - movs r6, #0 - ldrsh r0, [r3, r6] - cmp r1, r0 - bne _080DB154 - mov r0, ip - ands r4, r0 - ldrb r1, [r2, #0xb] - mov r0, sb - ands r0, r1 - orrs r0, r4 - strb r0, [r2, #0xb] - b _080DB15C - .align 2, 0 -_080DB150: .4byte gUnknown_2039BD4 -_080DB154: - adds r3, #2 - adds r4, #1 - cmp r4, #3 - ble _080DB12A -_080DB15C: - adds r6, r7, #0 - cmp r6, #3 - ble _080DB11E - movs r0, #1 - bl SortContestants - bl ApplyNextTurnOrder - add sp, #8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RankContestants - - thumb_func_start sub_080DB17C -sub_080DB17C: @ 0x080DB17C - push {r4, r5, lr} - ldr r4, _080DB194 - movs r2, #0 - movs r3, #3 -_080DB184: - ldr r0, [r4] - ldr r0, [r0, #4] - adds r1, r2, r0 - ldrh r0, [r1, #6] - cmp r0, #0 - bne _080DB198 - movs r1, #5 - b _080DB1B6 - .align 2, 0 -_080DB194: .4byte gUnknown_2039BD4 -_080DB198: - movs r5, #2 - ldrsh r0, [r1, r5] - movs r1, #0 - cmp r0, #0 - ble _080DB1B6 - movs r1, #1 - cmp r0, #0x1d - ble _080DB1B6 - movs r1, #2 - cmp r0, #0x3b - ble _080DB1B6 - movs r1, #4 - cmp r0, #0x4f - bgt _080DB1B6 - movs r1, #3 -_080DB1B6: - ldr r0, [r4] - ldr r0, [r0, #4] - adds r0, r2, r0 - strb r1, [r0, #0x1a] - adds r2, #0x1c - subs r3, #1 - cmp r3, #0 - bge _080DB184 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_080DB17C - - thumb_func_start ContestantCanUseTurn -ContestantCanUseTurn: @ 0x080DB1CC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080DB1F8 - ldr r1, [r1] - ldr r2, [r1, #4] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r2, r1, r2 - ldrb r1, [r2, #0xc] - movs r0, #6 - ands r0, r1 - cmp r0, #0 - bne _080DB1F4 - ldrb r1, [r2, #0xb] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080DB1FC -_080DB1F4: - movs r0, #0 - b _080DB1FE - .align 2, 0 -_080DB1F8: .4byte gUnknown_2039BD4 -_080DB1FC: - movs r0, #1 -_080DB1FE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ContestantCanUseTurn - - thumb_func_start sub_080DB204 -sub_080DB204: @ 0x080DB204 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r5, _080DB408 - movs r0, #0 - mov r8, r0 - movs r1, #7 - rsbs r1, r1, #0 - mov sl, r1 - movs r0, #2 - rsbs r0, r0, #0 - mov sb, r0 - movs r4, #0 - movs r6, #3 -_080DB224: - ldr r1, [r5] - ldr r0, [r1, #4] - adds r0, r4, r0 - movs r2, #0 - strh r2, [r0, #2] - ldr r0, [r1, #4] - adds r0, r4, r0 - strh r2, [r0] - ldr r0, [r1, #4] - adds r0, r4, r0 - mov r1, r8 - strb r1, [r0, #0x12] - ldr r0, [r5] - ldr r0, [r0, #4] - adds r3, r4, r0 - ldrb r2, [r3, #0xc] - movs r0, #6 - ands r0, r2 - cmp r0, #0 - beq _080DB260 - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1e - subs r0, #1 - movs r1, #3 - ands r0, r1 - lsls r0, r0, #1 - mov r1, sl - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0xc] -_080DB260: - ldr r0, [r5] - ldr r0, [r0, #4] - adds r0, r4, r0 - mov r1, r8 - strb r1, [r0, #0xe] - ldr r0, [r5] - ldr r1, [r0, #4] - adds r1, r4, r1 - ldrb r2, [r1, #0x10] - mov r0, sb - ands r0, r2 - strb r0, [r1, #0x10] - ldr r0, [r5] - ldr r0, [r0, #4] - adds r0, r4, r0 - mov r1, r8 - strb r1, [r0, #0xf] - ldr r0, [r5] - ldr r1, [r0, #4] - adds r1, r4, r1 - ldrb r2, [r1, #0x10] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #0x10] - ldr r0, [r5] - ldr r1, [r0, #4] - adds r1, r4, r1 - ldrb r2, [r1, #0x10] - movs r7, #5 - rsbs r7, r7, #0 - adds r0, r7, #0 - ands r0, r2 - strb r0, [r1, #0x10] - ldr r0, [r5] - ldr r1, [r0, #4] - adds r1, r4, r1 - ldrb r2, [r1, #0x10] - movs r0, #9 - rsbs r0, r0, #0 - mov ip, r0 - ands r0, r2 - strb r0, [r1, #0x10] - ldr r0, [r5] - ldr r1, [r0, #4] - adds r1, r4, r1 - ldrb r2, [r1, #0xc] - mov r0, sb - ands r0, r2 - strb r0, [r1, #0xc] - ldr r0, [r5] - ldr r0, [r0, #4] - adds r0, r4, r0 - movs r1, #0xff - strb r1, [r0, #0x13] - ldr r0, [r5] - ldr r0, [r0, #4] - adds r0, r4, r0 - movs r1, #1 - rsbs r1, r1, #0 - strb r1, [r0, #0x14] - ldr r0, [r5] - ldr r1, [r0, #4] - adds r1, r4, r1 - ldrb r2, [r1, #0x10] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #0x10] - ldr r0, [r5] - ldr r2, [r0, #4] - adds r2, r4, r2 - ldrb r3, [r2, #0x15] - lsls r1, r3, #0x1f - lsrs r1, r1, #0x1f - lsls r1, r1, #2 - adds r0, r7, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #0x15] - ldr r0, [r5] - ldr r1, [r0, #4] - adds r1, r4, r1 - ldrb r2, [r1, #0x15] - mov r0, sb - ands r0, r2 - strb r0, [r1, #0x15] - ldr r0, [r5] - ldr r1, [r0, #4] - adds r1, r4, r1 - ldrb r2, [r1, #0x11] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #0x11] - ldr r0, [r5] - ldr r1, [r0, #4] - adds r1, r4, r1 - ldrb r2, [r1, #0x11] - movs r0, #0x21 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #0x11] - ldr r0, [r5] - ldr r0, [r0, #4] - adds r2, r4, r0 - ldrb r1, [r2, #0x11] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080DB358 - ldrb r1, [r2, #0xc] - mov r0, sl - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r2, #0xc] - ldr r0, [r5] - ldr r1, [r0, #4] - adds r1, r4, r1 - ldrb r2, [r1, #0x11] - adds r0, r7, #0 - ands r0, r2 - strb r0, [r1, #0x11] -_080DB358: - ldr r0, [r5] - ldr r0, [r0, #4] - adds r2, r4, r0 - ldrb r1, [r2, #0x11] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080DB37E - ldrb r0, [r2, #0xb] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #0xb] - ldr r0, [r5] - ldr r1, [r0, #4] - adds r1, r4, r1 - ldrb r2, [r1, #0x11] - mov r0, ip - ands r0, r2 - strb r0, [r1, #0x11] -_080DB37E: - ldr r0, [r5] - ldr r1, [r0, #4] - adds r1, r4, r1 - ldrb r2, [r1, #0x11] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #0x11] - adds r4, #0x1c - subs r6, #1 - cmp r6, #0 - blt _080DB398 - b _080DB224 -_080DB398: - movs r6, #0 - ldr r5, _080DB408 - movs r7, #0 - movs r4, #0 -_080DB3A0: - ldr r3, [r5] - ldr r0, [r3, #4] - adds r0, r4, r0 - ldrh r1, [r0, #6] - strh r1, [r0, #8] - ldr r2, [r3] - lsls r1, r6, #1 - ldrb r0, [r2, #1] - lsls r0, r0, #3 - adds r1, r1, r0 - adds r2, #0x1c - adds r2, r2, r1 - ldr r0, [r3, #4] - adds r0, r4, r0 - ldrh r0, [r0, #6] - strh r0, [r2] - ldr r0, [r3, #4] - adds r0, r4, r0 - ldrh r0, [r0, #6] - bl Contest_GetMoveExcitement - ldr r1, [r5] - ldr r2, [r1] - ldrb r1, [r2, #1] - lsls r1, r1, #2 - adds r1, r6, r1 - adds r2, #0x44 - adds r2, r2, r1 - strb r0, [r2] - ldr r0, [r5] - ldr r0, [r0, #4] - adds r0, r4, r0 - strh r7, [r0, #6] - adds r4, #0x1c - adds r6, #1 - cmp r6, #3 - ble _080DB3A0 - ldr r0, _080DB408 - ldr r0, [r0] - ldr r2, [r0, #0x10] - ldrb r1, [r2, #1] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #1] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DB408: .4byte gUnknown_2039BD4 - thumb_func_end sub_080DB204 - - thumb_func_start Contest_IsMonsTurnDisabled -Contest_IsMonsTurnDisabled: @ 0x080DB40C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080DB438 - ldr r1, [r1] - ldr r2, [r1, #4] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r2, r1, r2 - ldrb r1, [r2, #0xc] - movs r0, #6 - ands r0, r1 - cmp r0, #0 - bne _080DB434 - ldrb r1, [r2, #0xb] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080DB43C -_080DB434: - movs r0, #1 - b _080DB43E - .align 2, 0 -_080DB438: .4byte gUnknown_2039BD4 -_080DB43C: - movs r0, #0 -_080DB43E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end Contest_IsMonsTurnDisabled - - thumb_func_start sub_080DB444 -sub_080DB444: @ 0x080DB444 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl sub_080DB498 - ldr r1, _080DB470 - lsls r4, r4, #1 - adds r1, r4, r1 - strh r0, [r1] - ldr r2, _080DB474 - adds r2, r4, r2 - ldr r1, _080DB478 - adds r4, r4, r1 - ldrh r4, [r4] - adds r0, r0, r4 - strh r0, [r2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DB470: .4byte gUnknown_2039BB8 -_080DB474: .4byte gUnknown_2039BA8 -_080DB478: .4byte gUnknown_2039BA0 - thumb_func_end sub_080DB444 - - thumb_func_start sub_080DB47C -sub_080DB47C: @ 0x080DB47C - push {r4, lr} - movs r4, #0 -_080DB480: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl sub_080DB444 - adds r4, #1 - cmp r4, #3 - ble _080DB480 - bl DetermineFinalStandings - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080DB47C - - thumb_func_start sub_080DB498 -sub_080DB498: @ 0x080DB498 - lsls r0, r0, #0x18 - ldr r1, _080DB4AC - lsrs r0, r0, #0x17 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - lsls r0, r0, #0x11 - asrs r0, r0, #0x10 - bx lr - .align 2, 0 -_080DB4AC: .4byte gUnknown_2039BB0 - thumb_func_end sub_080DB498 - - thumb_func_start DetermineFinalStandings -DetermineFinalStandings: @ 0x080DB4B0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x70 - mov r0, sp - movs r1, #0 - movs r2, #8 - bl memset - movs r0, #0 - mov sb, r0 - mov r1, sp - adds r1, #8 - str r1, [sp, #0x64] - mov r3, sp - adds r3, #0xc - str r3, [sp, #0x68] - mov r6, sp - adds r6, #0x14 - str r6, [sp, #0x6c] - mov r4, sp -_080DB4DE: - bl Random - strh r0, [r4] - movs r2, #0 - cmp r2, sb - bge _080DB51C - mov r1, sp - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrh r1, [r1] - cmp r0, r1 - bne _080DB500 - subs r4, #2 - movs r7, #1 - rsbs r7, r7, #0 - add sb, r7 - b _080DB51C -_080DB500: - adds r2, #1 - cmp r2, sb - bge _080DB51C - lsls r0, r2, #1 - mov r3, sp - adds r1, r3, r0 - ldrh r0, [r4] - ldrh r1, [r1] - cmp r0, r1 - bne _080DB500 - subs r4, #2 - movs r6, #1 - rsbs r6, r6, #0 - add sb, r6 -_080DB51C: - adds r4, #2 - movs r7, #1 - add sb, r7 - mov r0, sb - cmp r0, #3 - ble _080DB4DE - movs r1, #0 - mov sb, r1 - mov r4, sp - ldr r6, _080DB62C - ldr r2, [sp, #0x64] - ldr r5, _080DB630 - ldr r3, [sp, #0x68] -_080DB536: - mov r7, sb - lsls r1, r7, #4 - movs r7, #0 - ldrsh r0, [r6, r7] - str r0, [r2] - movs r7, #0 - ldrsh r0, [r5, r7] - str r0, [r3] - ldrh r0, [r4] - str r0, [r2, #8] - ldr r0, [sp, #0x6c] - adds r1, r0, r1 - mov r7, sb - str r7, [r1] - adds r4, #2 - adds r6, #2 - adds r2, #0x10 - adds r5, #2 - adds r3, #0x10 - movs r0, #1 - add sb, r0 - mov r1, sb - cmp r1, #3 - ble _080DB536 - movs r3, #0 - mov sb, r3 -_080DB56A: - movs r4, #3 - cmp r4, sb - ble _080DB5F4 - add r7, sp, #0x48 - ldr r6, [sp, #0x68] - str r6, [sp, #0x58] - ldr r0, [sp, #0x64] - adds r0, #8 - str r0, [sp, #0x5c] - ldr r1, [sp, #0x6c] - str r1, [sp, #0x60] -_080DB580: - subs r3, r4, #1 - mov sl, r3 - mov r0, sl - adds r1, r4, #0 - ldr r2, [sp, #0x64] - bl sub_080DB694 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080DB5EE - mov r6, sl - lsls r2, r6, #4 - ldr r0, [sp, #0x64] - adds r3, r0, r2 - ldr r0, [r3] - str r0, [sp, #0x48] - ldr r1, [sp, #0x58] - adds r6, r1, r2 - ldr r0, [r6] - str r0, [r7, #4] - ldr r0, [sp, #0x5c] - adds r0, r0, r2 - mov r8, r0 - ldr r0, [r0] - str r0, [r7, #8] - ldr r1, [sp, #0x60] - adds r2, r1, r2 - ldr r0, [r2] - str r0, [r7, #0xc] - lsls r1, r4, #4 - ldr r0, [sp, #0x64] - adds r5, r0, r1 - ldr r0, [r5] - str r0, [r3] - ldr r3, [sp, #0x58] - adds r4, r3, r1 - ldr r0, [r4] - str r0, [r6] - ldr r6, [sp, #0x5c] - adds r3, r6, r1 - ldr r0, [r3] - mov r6, r8 - str r0, [r6] - ldr r0, [sp, #0x60] - adds r1, r0, r1 - ldr r0, [r1] - str r0, [r2] - ldr r0, [sp, #0x48] - str r0, [r5] - ldr r0, [r7, #4] - str r0, [r4] - ldr r0, [r7, #8] - str r0, [r3] - ldr r0, [r7, #0xc] - str r0, [r1] -_080DB5EE: - mov r4, sl - cmp r4, sb - bgt _080DB580 -_080DB5F4: - movs r1, #1 - add sb, r1 - mov r3, sb - cmp r3, #2 - ble _080DB56A - movs r6, #0 - mov sb, r6 - ldr r2, _080DB634 - ldr r1, [sp, #0x6c] -_080DB606: - ldr r0, [r1] - adds r0, r0, r2 - mov r7, sb - strb r7, [r0] - adds r1, #0x10 - movs r0, #1 - add sb, r0 - mov r3, sb - cmp r3, #3 - ble _080DB606 - add sp, #0x70 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DB62C: .4byte gUnknown_2039BA8 -_080DB630: .4byte gUnknown_2039BA0 -_080DB634: .4byte gUnknown_2039BC0 - thumb_func_end DetermineFinalStandings - - thumb_func_start SaveLinkContestResults -SaveLinkContestResults: @ 0x080DB638 - push {lr} - ldr r0, _080DB678 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080DB672 - ldr r0, _080DB67C - ldr r2, [r0] - ldr r1, _080DB680 - ldr r0, _080DB684 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #1 - ldr r0, _080DB688 - ldrh r0, [r0] - lsls r0, r0, #3 - adds r1, r1, r0 - ldr r0, _080DB68C - adds r2, r2, r0 - adds r2, r2, r1 - ldrh r0, [r2] - adds r0, #1 - ldr r1, _080DB690 - cmp r0, r1 - ble _080DB670 - adds r0, r1, #0 -_080DB670: - strh r0, [r2] -_080DB672: - pop {r0} - bx r0 - .align 2, 0 -_080DB678: .4byte gUnknown_2039BCA -_080DB67C: .4byte gUnknown_3005AF0 -_080DB680: .4byte gUnknown_2039BC0 -_080DB684: .4byte gUnknown_2039BC5 -_080DB688: .4byte gUnknown_2039BCC -_080DB68C: .4byte 0x00000624 -_080DB690: .4byte 0x0000270F - thumb_func_end SaveLinkContestResults - - thumb_func_start sub_080DB694 -sub_080DB694: @ 0x080DB694 - push {lr} - lsls r0, r0, #4 - adds r0, r0, r2 - lsls r1, r1, #4 - adds r3, r1, r2 - ldr r2, [r0] - ldr r1, [r3] - cmp r2, r1 - blt _080DB6C4 - cmp r2, r1 - bgt _080DB6B6 - ldr r2, [r0, #4] - ldr r1, [r3, #4] - cmp r2, r1 - blt _080DB6C4 - cmp r2, r1 - ble _080DB6BA -_080DB6B6: - movs r2, #0 - b _080DB6C6 -_080DB6BA: - ldr r1, [r0, #8] - ldr r0, [r3, #8] - movs r2, #0 - cmp r1, r0 - bge _080DB6C6 -_080DB6C4: - movs r2, #1 -_080DB6C6: - adds r0, r2, #0 - pop {r1} - bx r1 - thumb_func_end sub_080DB694 - - thumb_func_start ContestPrintLinkStandby -ContestPrintLinkStandby: @ 0x080DB6CC - push {lr} - ldr r0, _080DB6E8 - movs r1, #0 - strh r1, [r0] - ldr r0, _080DB6EC - strh r1, [r0] - bl sub_080DB000 - ldr r0, _080DB6F0 - movs r1, #0 - bl Contest_StartTextPrinter - pop {r0} - bx r0 - .align 2, 0 -_080DB6E8: .4byte gUnknown_2022ACA -_080DB6EC: .4byte gUnknown_2022AD2 -_080DB6F0: .4byte gUnknown_824C140 - thumb_func_end ContestPrintLinkStandby - - thumb_func_start FillContestantWindowBgs -FillContestantWindowBgs: @ 0x080DB6F4 - push {r4, r5, lr} - sub sp, #0xc - movs r5, #0x80 - lsls r5, r5, #0x12 - movs r4, #3 -_080DB6FE: - lsrs r3, r5, #0x18 - movs r0, #8 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #0x16 - bl ContestBG_FillBoxWithTile - movs r0, #0xa0 - lsls r0, r0, #0x13 - adds r5, r5, r0 - subs r4, #1 - cmp r4, #0 - bge _080DB6FE - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end FillContestantWindowBgs - - thumb_func_start sub_080DB72C -sub_080DB72C: @ 0x080DB72C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080DB750 - cmp r0, #0 - beq _080DB746 - ldr r1, _080DB754 - cmp r0, #1 - beq _080DB746 - ldr r1, _080DB758 - cmp r0, #2 - bne _080DB746 - ldr r1, _080DB75C -_080DB746: - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 -_080DB750: .4byte 0x00005011 -_080DB754: .4byte 0x00006011 -_080DB758: .4byte 0x00008011 -_080DB75C: .4byte 0x00007011 - thumb_func_end sub_080DB72C - - thumb_func_start sub_080DB760 -sub_080DB760: @ 0x080DB760 - push {lr} - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0xa - bl __divsi3 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - asrs r2, r0, #0x18 - cmp r2, #0x10 - ble _080DB77A - movs r1, #0x10 - b _080DB784 -_080DB77A: - movs r0, #0x10 - rsbs r0, r0, #0 - cmp r2, r0 - bge _080DB784 - movs r1, #0xf0 -_080DB784: - lsls r0, r1, #0x18 - asrs r0, r0, #0x18 - pop {r1} - bx r1 - thumb_func_end sub_080DB760 - - thumb_func_start sub_080DB78C -sub_080DB78C: @ 0x080DB78C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - adds r6, r1, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r8, r2 - ldr r0, _080DB820 - ldr r0, [r0] - ldr r0, [r0, #0x14] - lsls r1, r2, #2 - adds r1, r1, r0 - ldrb r0, [r1, #2] - movs r2, #4 - orrs r0, r2 - strb r0, [r1, #2] - ldr r0, _080DB824 - movs r1, #0x14 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - adds r0, r5, #0 - bl sub_080DB760 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r6, r6, #0x10 - asrs r6, r6, #0x10 - adds r5, r5, r6 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - adds r0, r5, #0 - bl sub_080DB760 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - subs r0, r0, r4 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - mov r0, r8 - bl sub_080DB72C - ldr r2, _080DB828 - lsls r3, r7, #2 - adds r0, r3, r7 - lsls r0, r0, #3 - adds r1, r0, r2 - adds r0, r4, #0 - cmp r4, #0 - bge _080DB804 - rsbs r0, r4, #0 -_080DB804: - strh r0, [r1, #8] - lsls r0, r5, #0x18 - asrs r0, r0, #0x18 - strh r0, [r1, #0xa] - cmp r4, #0 - bgt _080DB818 - cmp r4, #0 - bne _080DB82C - cmp r0, #0 - ble _080DB82C -_080DB818: - movs r0, #1 - strh r0, [r1, #0xc] - b _080DB83A - .align 2, 0 -_080DB820: .4byte gUnknown_2039BD4 -_080DB824: .4byte sub_080DB858 -_080DB828: .4byte gUnknown_3005B60 -_080DB82C: - ldr r2, _080DB850 - lsls r3, r7, #2 - adds r0, r3, r7 - lsls r0, r0, #3 - adds r0, r0, r2 - ldr r1, _080DB854 - strh r1, [r0, #0xc] -_080DB83A: - adds r0, r3, r7 - lsls r0, r0, #3 - adds r0, r0, r2 - mov r1, r8 - strh r1, [r0, #0xe] - adds r0, r7, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080DB850: .4byte gUnknown_3005B60 -_080DB854: .4byte 0x0000FFFF - thumb_func_end sub_080DB78C - - thumb_func_start sub_080DB858 -sub_080DB858: @ 0x080DB858 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r1, _080DB8B8 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrb r0, [r4, #0xe] - mov sb, r0 - ldrh r3, [r4, #8] - ldrh r1, [r4, #0xa] - ldrh r0, [r4, #0x1c] - adds r0, #1 - strh r0, [r4, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xe - bgt _080DB88A - b _080DBA0C -_080DB88A: - movs r0, #0 - strh r0, [r4, #0x1c] - ldrh r2, [r4, #0xa] - movs r5, #0xa - ldrsh r0, [r4, r5] - cmp r0, #0 - bne _080DB8C0 - adds r0, r7, #0 - bl DestroyTask - ldr r0, _080DB8BC - ldr r0, [r0] - ldr r0, [r0, #0x14] - mov r2, sb - lsls r1, r2, #2 - adds r1, r1, r0 - ldrb r2, [r1, #2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #2] - b _080DBA0C - .align 2, 0 -_080DB8B8: .4byte gUnknown_3005B60 -_080DB8BC: .4byte gUnknown_2039BD4 -_080DB8C0: - cmp r3, #0 - bne _080DB908 - lsls r0, r1, #0x10 - mov r8, r0 - cmp r0, #0 - bge _080DB8DE - mov r0, sb - bl sub_080DB72C - adds r0, #2 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldrh r0, [r4, #0xa] - adds r0, #1 - b _080DB8EC -_080DB8DE: - mov r0, sb - bl sub_080DB72C - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldrh r0, [r4, #0xa] - subs r0, #1 -_080DB8EC: - strh r0, [r4, #0xa] - ldr r1, _080DB904 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #8] - adds r2, r1, #1 - strh r2, [r0, #8] - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - b _080DB974 - .align 2, 0 -_080DB904: .4byte gUnknown_3005B60 -_080DB908: - movs r3, #0xc - ldrsh r0, [r4, r3] - cmp r0, #0 - bge _080DB942 - lsls r0, r1, #0x10 - mov r8, r0 - cmp r0, #0 - bge _080DB930 - ldrh r0, [r4, #8] - adds r1, r0, #1 - strh r1, [r4, #8] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r2, #1 - strh r0, [r4, #0xa] - mov r0, sb - bl sub_080DB72C - adds r0, #2 - b _080DB970 -_080DB930: - ldrh r0, [r4, #8] - subs r0, #1 - strh r0, [r4, #8] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r6, #0 - subs r0, r2, #1 - strh r0, [r4, #0xa] - b _080DB974 -_080DB942: - lsls r0, r1, #0x10 - mov r8, r0 - cmp r0, #0 - bge _080DB95C - ldrh r0, [r4, #8] - subs r0, #1 - strh r0, [r4, #8] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r6, #0 - adds r0, r2, #1 - strh r0, [r4, #0xa] - b _080DB974 -_080DB95C: - ldrh r0, [r4, #8] - adds r1, r0, #1 - strh r1, [r4, #8] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - subs r0, r2, #1 - strh r0, [r4, #0xa] - mov r0, sb - bl sub_080DB72C -_080DB970: - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_080DB974: - str r5, [sp, #0xc] - movs r0, #0 - mov sl, r0 - cmp r5, #7 - bls _080DB98A - movs r2, #1 - mov sl, r2 - adds r0, r5, #0 - subs r0, #8 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_080DB98A: - adds r2, r5, #0 - adds r2, #0x16 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r0, _080DB9DC - add r0, sb - ldrb r0, [r0] - lsls r3, r0, #2 - adds r3, r3, r0 - adds r3, #2 - add r3, sl - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #1 - str r0, [sp] - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #0 - adds r1, r6, #0 - bl ContestBG_FillBoxWithTile - mov r3, r8 - cmp r3, #0 - ble _080DB9E8 - movs r0, #0x60 - bl sub_080A306C - ldr r4, _080DB9E0 - adds r0, r4, #0 - bl m4aMPlayImmInit - ldr r1, _080DB9E4 - ldr r0, [sp, #0xc] - lsls r2, r0, #0x18 - asrs r2, r2, #0x10 - adds r0, r4, #0 - bl m4aMPlayPitchControl - b _080DB9EE - .align 2, 0 -_080DB9DC: .4byte gUnknown_2039BC6 -_080DB9E0: .4byte gUnknown_3007510 -_080DB9E4: .4byte 0x0000FFFF -_080DB9E8: - movs r0, #0x16 - bl sub_080A306C -_080DB9EE: - mov r2, sl - cmp r2, #0 - bne _080DBA0C - cmp r5, #0 - bne _080DBA0C - cmp r6, #0 - bne _080DBA0C - ldr r0, _080DBA1C - lsls r1, r7, #2 - adds r1, r1, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0xc] - rsbs r0, r0, #0 - strh r0, [r1, #0xc] -_080DBA0C: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DBA1C: .4byte gUnknown_3005B60 - thumb_func_end sub_080DB858 - - thumb_func_start sub_080DBA20 -sub_080DBA20: @ 0x080DBA20 - push {r4, r5, lr} - ldr r0, _080DBA58 - bl LoadSpriteSheet - movs r4, #0 - ldr r5, _080DBA5C -_080DBA2C: - ldr r0, _080DBA60 - adds r0, r4, r0 - ldrb r0, [r0] - adds r0, r0, r5 - ldrb r2, [r0] - ldr r0, _080DBA64 - movs r1, #0xb4 - movs r3, #1 - bl CreateSprite - ldr r1, _080DBA68 - ldr r1, [r1] - ldr r2, [r1, #0x14] - lsls r1, r4, #2 - adds r1, r1, r2 - strb r0, [r1] - adds r4, #1 - cmp r4, #3 - ble _080DBA2C - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080DBA58: .4byte gUnknown_85609D8 -_080DBA5C: .4byte gUnknown_85609D0 -_080DBA60: .4byte gUnknown_2039BC6 -_080DBA64: .4byte gUnknown_8560A34 -_080DBA68: .4byte gUnknown_2039BD4 - thumb_func_end sub_080DBA20 - - thumb_func_start sub_080DBA6C -sub_080DBA6C: @ 0x080DBA6C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r4, _080DBAB0 - ldr r0, [r4] - ldr r2, [r0, #0x14] - lsls r3, r6, #2 - adds r2, r3, r2 - ldrb r0, [r2, #2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #2] - ldr r1, [r4] - ldr r0, [r1, #0x14] - adds r3, r3, r0 - ldrb r7, [r3] - ldr r1, [r1, #4] - lsls r0, r6, #3 - subs r0, r0, r6 - lsls r0, r0, #2 - adds r0, r0, r1 - movs r1, #4 - ldrsh r0, [r0, r1] - movs r1, #0xa - bl __divsi3 - lsls r0, r0, #0x11 - lsrs r5, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x38 - ble _080DBAB4 - movs r5, #0x38 - b _080DBABA - .align 2, 0 -_080DBAB0: .4byte gUnknown_2039BD4 -_080DBAB4: - cmp r0, #0 - bge _080DBABA - movs r5, #0 -_080DBABA: - ldr r2, _080DBAEC - lsls r3, r7, #4 - adds r0, r3, r7 - lsls r0, r0, #2 - adds r4, r0, r2 - movs r0, #0x3e - adds r0, r0, r4 - mov ip, r0 - ldrb r1, [r0] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - mov r1, ip - strb r0, [r1] - strh r6, [r4, #0x2e] - strh r5, [r4, #0x30] - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - movs r5, #0x24 - ldrsh r1, [r4, r5] - cmp r0, r1 - ble _080DBAF0 - movs r0, #1 - b _080DBAF2 - .align 2, 0 -_080DBAEC: .4byte gUnknown_20205AC -_080DBAF0: - ldr r0, _080DBB08 -_080DBAF2: - strh r0, [r4, #0x32] - adds r0, r3, r7 - lsls r0, r0, #2 - adds r1, r2, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _080DBB0C - str r1, [r0] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DBB08: .4byte 0x0000FFFF -_080DBB0C: .4byte sub_080DBB6C - thumb_func_end sub_080DBA6C - - thumb_func_start sub_080DBB10 -sub_080DBB10: @ 0x080DBB10 - push {r4, lr} - movs r4, #0 -_080DBB14: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl sub_080DBA6C - adds r4, #1 - cmp r4, #3 - ble _080DBB14 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080DBB10 - - thumb_func_start sub_080DBB28 -sub_080DBB28: @ 0x080DBB28 - push {r4, lr} - movs r2, #0 - ldr r3, _080DBB60 - ldr r0, [r3] - ldr r0, [r0, #0x14] - ldrb r1, [r0, #2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080DBB56 - movs r4, #1 -_080DBB3E: - adds r2, #1 - cmp r2, #3 - bgt _080DBB56 - ldr r0, [r3] - ldr r1, [r0, #0x14] - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r1, [r0, #2] - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - beq _080DBB3E -_080DBB56: - cmp r2, #4 - beq _080DBB64 - movs r0, #0 - b _080DBB66 - .align 2, 0 -_080DBB60: .4byte gUnknown_2039BD4 -_080DBB64: - movs r0, #1 -_080DBB66: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_080DBB28 - - thumb_func_start sub_080DBB6C -sub_080DBB6C: @ 0x080DBB6C - push {r4, lr} - adds r3, r0, #0 - ldrh r2, [r3, #0x24] - movs r0, #0x24 - ldrsh r1, [r3, r0] - movs r4, #0x30 - ldrsh r0, [r3, r4] - cmp r1, r0 - bne _080DBBA4 - ldr r0, _080DBB9C - ldr r0, [r0] - movs r2, #0x2e - ldrsh r1, [r3, r2] - ldr r0, [r0, #0x14] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #2] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #2] - ldr r0, _080DBBA0 - str r0, [r3, #0x1c] - b _080DBBAA - .align 2, 0 -_080DBB9C: .4byte gUnknown_2039BD4 -_080DBBA0: .4byte sub_08007140 -_080DBBA4: - ldrh r0, [r3, #0x32] - adds r0, r2, r0 - strh r0, [r3, #0x24] -_080DBBAA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080DBB6C - - thumb_func_start sub_080DBBB0 -sub_080DBBB0: @ 0x080DBBB0 - push {r4, r5, r6, lr} - movs r2, #0 - ldr r6, _080DBBE4 - ldr r5, _080DBBE8 - ldr r4, _080DBBEC - ldr r3, _080DBBF0 -_080DBBBC: - ldr r0, [r5] - ldr r1, [r0, #0x14] - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - adds r0, r2, r3 - ldrb r0, [r0] - adds r0, r0, r4 - ldrb r0, [r0] - strh r0, [r1, #0x22] - adds r2, #1 - cmp r2, #3 - ble _080DBBBC - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080DBBE4: .4byte gUnknown_20205AC -_080DBBE8: .4byte gUnknown_2039BD4 -_080DBBEC: .4byte gUnknown_85609D0 -_080DBBF0: .4byte gUnknown_2039BC6 - thumb_func_end sub_080DBBB0 - - thumb_func_start sub_080DBBF4 -sub_080DBBF4: @ 0x080DBBF4 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r3, #0 - ldr r7, _080DBC24 - ldr r5, _080DBC28 - ldr r4, _080DBC2C - movs r2, #0 -_080DBC04: - adds r0, r3, r7 - ldrb r0, [r0] - cmp r0, #1 - bls _080DBC46 - cmp r6, #0 - bne _080DBC30 - ldr r0, [r4] - ldr r0, [r0, #0x14] - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0xb4 - b _080DBC44 - .align 2, 0 -_080DBC24: .4byte gUnknown_2039BC6 -_080DBC28: .4byte gUnknown_20205AC -_080DBC2C: .4byte gUnknown_2039BD4 -_080DBC30: - ldr r0, [r4] - ldr r0, [r0, #0x14] - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0x80 - lsls r1, r1, #1 -_080DBC44: - strh r1, [r0, #0x20] -_080DBC46: - adds r2, #4 - adds r3, #1 - cmp r3, #3 - ble _080DBC04 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_080DBBF4 - - thumb_func_start sub_080DBC54 -sub_080DBC54: @ 0x080DBC54 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _080DBCD8 - bl LoadSpritePalette - movs r5, #0 - ldr r7, _080DBCDC - ldr r0, _080DBCE0 - mov r8, r0 - movs r6, #0 -_080DBC6A: - lsls r0, r5, #3 - ldr r1, _080DBCE4 - adds r0, r0, r1 - bl LoadCompressedSpriteSheet - ldr r0, _080DBCE8 - adds r0, r6, r0 - ldr r2, _080DBCEC - ldr r1, _080DBCF0 - adds r1, r5, r1 - ldrb r1, [r1] - adds r1, r1, r2 - ldrb r2, [r1] - movs r1, #0xcc - movs r3, #0 - bl CreateSprite - ldr r1, [r7] - ldr r1, [r1, #0x14] - lsls r4, r5, #2 - adds r1, r4, r1 - strb r0, [r1, #1] - ldr r0, [r7] - ldr r0, [r0, #0x14] - adds r0, r4, r0 - ldrb r1, [r0, #1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - ldr r1, _080DBCF4 - bl SetSubspriteTables - ldr r0, [r7] - ldr r0, [r0, #0x14] - adds r4, r4, r0 - ldrb r1, [r4, #1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - adds r6, #0x18 - adds r5, #1 - cmp r5, #3 - ble _080DBC6A - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DBCD8: .4byte gUnknown_8560A6C -_080DBCDC: .4byte gUnknown_2039BD4 -_080DBCE0: .4byte gUnknown_20205AC -_080DBCE4: .4byte gUnknown_8560A4C -_080DBCE8: .4byte gUnknown_8560A7C -_080DBCEC: .4byte gUnknown_85609D4 -_080DBCF0: .4byte gUnknown_2039BC6 -_080DBCF4: .4byte gUnknown_8560AE4 - thumb_func_end sub_080DBC54 - - thumb_func_start CreateApplauseMeterSprite -CreateApplauseMeterSprite: @ 0x080DBCF8 - push {lr} - ldr r0, _080DBD38 - bl LoadCompressedSpriteSheet - ldr r0, _080DBD3C - bl LoadSpritePalette - ldr r0, _080DBD40 - movs r1, #0x1e - movs r2, #0x2c - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080DBD44 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - adds r1, #0x3e - ldrb r2, [r1] - movs r3, #4 - orrs r2, r3 - strb r2, [r1] - ldr r1, _080DBD48 - ldr r1, [r1] - ldr r1, [r1] - adds r1, #0x58 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080DBD38: .4byte gUnknown_8560B14 -_080DBD3C: .4byte gUnknown_8560B1C -_080DBD40: .4byte gUnknown_8560B2C -_080DBD44: .4byte gUnknown_20205AC -_080DBD48: .4byte gUnknown_2039BD4 - thumb_func_end CreateApplauseMeterSprite - - thumb_func_start sub_080DBD4C -sub_080DBD4C: @ 0x080DBD4C - push {r4, lr} - ldr r0, _080DBD88 - movs r1, #0x1e - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080DBD8C - ldr r1, [r1] - ldr r1, [r1] - strb r0, [r1, #0xd] - movs r2, #0 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r4, _080DBD90 - movs r3, #0xff -_080DBD6E: - lsls r0, r2, #3 - adds r0, r0, r1 - adds r0, r0, r4 - strh r3, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #3 - bls _080DBD6E - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DBD88: .4byte sub_080DBE8C -_080DBD8C: .4byte gUnknown_2039BD4 -_080DBD90: .4byte gUnknown_3005B68 - thumb_func_end sub_080DBD4C - - thumb_func_start sub_080DBD94 -sub_080DBD94: @ 0x080DBD94 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _080DBDD0 - ldr r1, _080DBDD4 - ldr r5, [r1] - ldr r1, [r5] - ldrb r2, [r1, #0xd] - lsls r1, r2, #2 - adds r1, r1, r2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r3, #8 - adds r1, r1, r3 - movs r4, #0 - strh r4, [r1] - lsls r0, r0, #2 - adds r0, #1 - lsls r0, r0, #1 - ldr r1, [r5] - ldrb r2, [r1, #0xd] - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r0, r0, r1 - adds r0, r0, r3 - strh r4, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080DBDD0: .4byte gUnknown_3005B60 -_080DBDD4: .4byte gUnknown_2039BD4 - thumb_func_end sub_080DBD94 - - thumb_func_start sub_080DBDD8 -sub_080DBDD8: @ 0x080DBDD8 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _080DBE00 - movs r1, #0x1f - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080DBE04 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DBE00: .4byte sub_080DBE08 -_080DBE04: .4byte gUnknown_3005B60 - thumb_func_end sub_080DBDD8 - - thumb_func_start sub_080DBE08 -sub_080DBE08: @ 0x080DBE08 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r6, r0, #0 - ldr r2, _080DBE80 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrb r0, [r0, #8] - adds r5, r0, #0 - ldr r0, _080DBE84 - ldr r4, [r0] - ldr r0, [r4] - ldrb r1, [r0, #0xd] - lsls r0, r1, #2 - adds r0, r0, r1 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r7, r2, #0 - adds r7, #8 - adds r1, r0, r7 - movs r2, #0 - ldrsh r0, [r1, r2] - cmp r0, #0 - beq _080DBE40 - cmp r0, #0xff - bne _080DBE7A -_080DBE40: - movs r3, #0 - movs r0, #0xff - strh r0, [r1] - lsls r1, r5, #2 - adds r1, #1 - lsls r1, r1, #1 - ldr r0, [r4] - ldrb r2, [r0, #0xd] - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r1, r1, r0 - adds r1, r1, r7 - strh r3, [r1] - ldr r0, [r4] - adds r0, #0x14 - adds r0, r0, r5 - ldrb r0, [r0] - adds r0, #5 - lsls r0, r0, #4 - adds r0, #6 - ldr r3, _080DBE88 - movs r1, #2 - movs r2, #0 - bl BlendPalette - adds r0, r6, #0 - bl DestroyTask -_080DBE7A: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DBE80: .4byte gUnknown_3005B60 -_080DBE84: .4byte gUnknown_2039BD4 -_080DBE88: .4byte 0x00004BFF - thumb_func_end sub_080DBE08 - - thumb_func_start sub_080DBE8C -sub_080DBE8C: @ 0x080DBE8C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r6, #0 - lsls r1, r0, #2 - adds r1, r1, r0 - mov sb, r1 - lsls r7, r1, #3 - ldr r0, _080DBEDC - mov r8, r0 - movs r1, #8 - rsbs r1, r1, #0 - add r1, r8 - mov sl, r1 -_080DBEB0: - lsls r0, r6, #0x1a - lsrs r3, r0, #0x18 - lsls r0, r3, #1 - adds r0, r0, r7 - mov r4, r8 - adds r2, r0, r4 - ldrh r4, [r2] - movs r5, #0 - ldrsh r0, [r2, r5] - cmp r0, #0xff - beq _080DBF2E - adds r0, r3, #1 - lsls r1, r0, #1 - adds r1, r1, r7 - add r1, r8 - movs r5, #0 - ldrsh r1, [r1, r5] - adds r5, r0, #0 - cmp r1, #0 - bne _080DBEE0 - adds r0, r4, #1 - b _080DBEE2 - .align 2, 0 -_080DBEDC: .4byte gUnknown_3005B68 -_080DBEE0: - subs r0, r4, #1 -_080DBEE2: - strh r0, [r2] - lsls r1, r3, #1 - mov r0, sb - lsls r2, r0, #3 - adds r0, r1, r2 - mov r3, sl - adds r3, #8 - adds r0, r0, r3 - movs r4, #0 - ldrsh r0, [r0, r4] - adds r4, r1, #0 - cmp r0, #0x10 - beq _080DBF00 - cmp r0, #0 - bne _080DBF0E -_080DBF00: - lsls r0, r5, #1 - adds r0, r0, r2 - adds r0, r0, r3 - ldrh r1, [r0] - movs r2, #1 - eors r1, r2 - strh r1, [r0] -_080DBF0E: - ldr r0, _080DBF48 - ldr r0, [r0] - ldr r0, [r0] - adds r0, #0x14 - adds r0, r0, r6 - ldrb r0, [r0] - adds r0, #5 - lsls r0, r0, #4 - adds r0, #6 - adds r1, r4, r7 - add r1, r8 - ldrb r2, [r1] - movs r1, #2 - ldr r3, _080DBF4C - bl BlendPalette -_080DBF2E: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #3 - bls _080DBEB0 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DBF48: .4byte gUnknown_2039BD4 -_080DBF4C: .4byte 0x00004BFF - thumb_func_end sub_080DBE8C - - thumb_func_start sub_080DBF50 -sub_080DBF50: @ 0x080DBF50 - push {r4, lr} - ldr r0, _080DBF78 - movs r1, #0x1e - bl CreateTask - ldr r1, _080DBF7C - ldr r1, [r1] - ldr r1, [r1] - strb r0, [r1, #0xe] - movs r4, #0 -_080DBF64: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl sub_080DBF80 - adds r4, #1 - cmp r4, #3 - ble _080DBF64 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DBF78: .4byte sub_080DC034 -_080DBF7C: .4byte gUnknown_2039BD4 - thumb_func_end sub_080DBF50 - - thumb_func_start sub_080DBF80 -sub_080DBF80: @ 0x080DBF80 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _080DBFC0 - ldr r1, _080DBFC4 - ldr r4, [r1] - ldr r1, [r4] - ldrb r2, [r1, #0xe] - lsls r1, r2, #2 - adds r1, r1, r2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r3, #8 - adds r1, r1, r3 - movs r5, #0 - movs r2, #0xff - strh r2, [r1] - lsls r0, r0, #2 - adds r0, #1 - lsls r0, r0, #1 - ldr r1, [r4] - ldrb r2, [r1, #0xe] - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r0, r0, r1 - adds r0, r0, r3 - strh r5, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080DBFC0: .4byte gUnknown_3005B60 -_080DBFC4: .4byte gUnknown_2039BD4 - thumb_func_end sub_080DBF80 - - thumb_func_start sub_080DBFC8 -sub_080DBFC8: @ 0x080DBFC8 - push {r4, lr} - movs r4, #0 -_080DBFCC: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl sub_080DBFE0 - adds r4, #1 - cmp r4, #3 - ble _080DBFCC - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080DBFC8 - - thumb_func_start sub_080DBFE0 -sub_080DBFE0: @ 0x080DBFE0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl sub_080DBF80 - adds r0, r4, #5 - lsls r2, r0, #5 - ldr r3, _080DC024 - adds r6, r2, r3 - ldr r5, _080DC028 - adds r2, r2, r5 - ldr r1, _080DC02C - str r6, [r1] - str r2, [r1, #4] - ldr r2, _080DC030 - str r2, [r1, #8] - ldr r6, [r1, #8] - lsls r0, r0, #4 - adds r4, #0xc - adds r0, r0, r4 - lsls r0, r0, #1 - subs r3, #0x14 - adds r3, r0, r3 - subs r5, #0x14 - adds r0, r0, r5 - str r3, [r1] - str r0, [r1, #4] - str r2, [r1, #8] - ldr r0, [r1, #8] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080DC024: .4byte gUnknown_20373C8 -_080DC028: .4byte gUnknown_20377C8 -_080DC02C: .4byte 0x040000D4 -_080DC030: .4byte 0x80000001 - thumb_func_end sub_080DBFE0 - - thumb_func_start sub_080DC034 -sub_080DC034: @ 0x080DC034 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r7, #0 - lsls r1, r0, #2 - adds r1, r1, r0 - mov sb, r1 - lsls r6, r1, #3 - ldr r0, _080DC09C - mov r8, r0 - ldr r1, _080DC0A0 - mov sl, r1 -_080DC054: - lsls r0, r7, #0x1a - lsrs r3, r0, #0x18 - lsls r0, r3, #1 - adds r0, r0, r6 - mov r4, r8 - adds r2, r0, r4 - movs r5, #0 - ldrsh r0, [r2, r5] - cmp r0, #0xff - beq _080DC0FA - adds r0, r3, #2 - lsls r0, r0, #1 - adds r0, r0, r6 - adds r1, r0, r4 - ldrh r0, [r1] - adds r0, #1 - movs r4, #0 - strh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - ble _080DC0FA - strh r4, [r1] - adds r0, r3, #1 - lsls r1, r0, #1 - adds r1, r1, r6 - add r1, r8 - movs r4, #0 - ldrsh r1, [r1, r4] - adds r4, r0, #0 - cmp r1, #0 - bne _080DC0A4 - ldrh r0, [r2] - adds r0, #1 - b _080DC0A8 - .align 2, 0 -_080DC09C: .4byte gUnknown_3005B68 -_080DC0A0: .4byte 0x00004BFF -_080DC0A4: - ldrh r0, [r2] - subs r0, #1 -_080DC0A8: - strh r0, [r2] - lsls r1, r3, #1 - mov r5, sb - lsls r2, r5, #3 - adds r0, r1, r2 - ldr r3, _080DC114 - adds r3, #8 - adds r0, r0, r3 - movs r5, #0 - ldrsh r0, [r0, r5] - adds r5, r1, #0 - cmp r0, #0x10 - beq _080DC0C6 - cmp r0, #0 - bne _080DC0D4 -_080DC0C6: - lsls r0, r4, #1 - adds r0, r0, r2 - adds r0, r0, r3 - ldrh r1, [r0] - movs r2, #1 - eors r1, r2 - strh r1, [r0] -_080DC0D4: - adds r4, r7, #5 - lsls r4, r4, #4 - adds r0, r4, #0 - adds r0, #0xa - adds r5, r5, r6 - add r5, r8 - ldrb r2, [r5] - movs r1, #1 - mov r3, sl - bl BlendPalette - adds r4, #0xc - adds r4, r4, r7 - ldrb r2, [r5] - adds r0, r4, #0 - movs r1, #1 - mov r3, sl - bl BlendPalette -_080DC0FA: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #3 - bls _080DC054 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DC114: .4byte gUnknown_3005B60 - thumb_func_end sub_080DC034 - - thumb_func_start sub_080DC118 -sub_080DC118: @ 0x080DC118 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _080DC140 - ldr r0, [r0] - ldr r1, [r0, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #0x15] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080DC144 - adds r0, r2, #0 - bl sub_080DBD94 - b _080DC14A - .align 2, 0 -_080DC140: .4byte gUnknown_2039BD4 -_080DC144: - adds r0, r2, #0 - bl sub_080DBDD8 -_080DC14A: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080DC118 - - thumb_func_start IsMetatileDirectionallyImpassable -IsMetatileDirectionallyImpassable: @ 0x080DC150 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0xc] - ldr r6, _080DC2AC - adds r6, r0, r6 - ldrb r0, [r6] - lsls r5, r0, #2 - adds r5, r5, r0 - lsls r5, r5, #0x1b - movs r0, #0x80 - lsls r0, r0, #0x16 - adds r5, r5, r0 - lsrs r5, r5, #0x18 - ldr r1, [sp, #0xc] - lsls r4, r1, #3 - ldr r0, _080DC2B0 - adds r0, r4, r0 - bl LoadCompressedSpriteSheet - ldr r0, _080DC2B4 - adds r4, r4, r0 - adds r0, r4, #0 - bl LoadSpritePalette - ldr r2, [sp, #0xc] - lsls r4, r2, #1 - adds r4, r4, r2 - lsls r4, r4, #3 - ldr r0, _080DC2B8 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0xb8 - adds r2, r5, #0 - movs r3, #0x1d - bl CreateSprite - mov sb, r0 - mov r3, sb - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov sb, r3 - adds r0, r4, #0 - movs r1, #0xf8 - adds r2, r5, #0 - movs r3, #0x1d - bl CreateSprite - mov r8, r0 - mov r0, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r5, r0, #4 - add r5, r8 - lsls r5, r5, #2 - ldr r1, _080DC2BC - adds r5, r5, r1 - ldrh r2, [r5, #4] - lsls r1, r2, #0x16 - lsrs r1, r1, #0x16 - adds r1, #0x40 - ldr r3, _080DC2C0 - adds r0, r3, #0 - ands r1, r0 - ldr r0, _080DC2C4 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, #4] - movs r4, #0xc0 - lsls r4, r4, #0x13 - ldrb r0, [r6] - lsls r3, r0, #2 - adds r3, r3, r0 - lsls r3, r3, #6 - ldr r0, _080DC2C8 - adds r3, r3, r0 - ldr r7, _080DC2CC - ldr r0, [r7] - ldr r0, [r0, #0x34] - str r0, [sp] - movs r0, #0 - movs r1, #3 - adds r2, r4, #0 - bl CopySpriteTiles - ldrb r0, [r6] - lsls r3, r0, #2 - adds r3, r3, r0 - lsls r3, r3, #6 - ldr r1, _080DC2D0 - adds r3, r3, r1 - ldr r0, [r7] - ldr r0, [r0, #0x38] - str r0, [sp] - movs r0, #0 - movs r1, #3 - adds r2, r4, #0 - bl CopySpriteTiles - movs r4, #0 - str r4, [sp, #4] - ldr r0, [r7] - ldr r1, [r0, #0x34] - movs r6, #0xa0 - lsls r6, r6, #3 - adds r1, r1, r6 - ldr r2, _080DC2D4 - mov sl, r2 - add r0, sp, #4 - bl CpuSet - str r4, [sp, #8] - add r0, sp, #8 - ldr r1, [r7] - ldr r1, [r1, #0x38] - adds r1, r1, r6 - mov r2, sl - bl CpuSet - ldr r0, [r7] - ldr r0, [r0, #0x34] - mov r3, sb - lsls r4, r3, #4 - add r4, sb - lsls r4, r4, #2 - ldr r1, _080DC2BC - adds r4, r4, r1 - ldrh r1, [r4, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x11 - ldr r6, _080DC2D8 - adds r1, r1, r6 - movs r2, #0x80 - lsls r2, r2, #4 - mov sl, r2 - movs r3, #1 - bl RequestDma3Copy - ldr r0, [r7] - ldr r0, [r0, #0x38] - ldrh r1, [r5, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x11 - adds r1, r1, r6 - mov r2, sl - movs r3, #1 - bl RequestDma3Copy - mov r3, r8 - strh r3, [r4, #0x2e] - mov r0, sb - strh r0, [r5, #0x2e] - mov r1, sp - ldrh r1, [r1, #0xc] - strh r1, [r4, #0x30] - mov r2, sp - ldrh r2, [r2, #0xc] - strh r2, [r5, #0x30] - mov r0, sb - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080DC2AC: .4byte gUnknown_2039BC6 -_080DC2B0: .4byte gUnknown_8562888 -_080DC2B4: .4byte gUnknown_85628A8 -_080DC2B8: .4byte gUnknown_8562910 -_080DC2BC: .4byte gUnknown_20205AC -_080DC2C0: .4byte 0x000003FF -_080DC2C4: .4byte 0xFFFFFC00 -_080DC2C8: .4byte 0x0600E026 -_080DC2CC: .4byte gUnknown_2039BD4 -_080DC2D0: .4byte 0x0600E036 -_080DC2D4: .4byte 0x050000C0 -_080DC2D8: .4byte 0x06010000 - thumb_func_end IsMetatileDirectionallyImpassable - - thumb_func_start sub_080DC2DC -sub_080DC2DC: @ 0x080DC2DC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080DC314 - lsls r5, r0, #4 - adds r5, r5, r0 - lsls r5, r5, #2 - adds r5, r5, r1 - ldrh r0, [r5, #0x2e] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - adds r4, r4, r1 - adds r0, r4, #0 - bl FreeSpriteOamMatrix - adds r0, r4, #0 - bl DestroySprite - adds r0, r5, #0 - bl DestroySpriteAndFreeResources - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080DC314: .4byte gUnknown_20205AC - thumb_func_end sub_080DC2DC - - thumb_func_start sub_080DC318 -sub_080DC318: @ 0x080DC318 - push {lr} - movs r1, #0xfd - lsls r1, r1, #6 - movs r0, #0x50 - bl SetGpuReg - ldr r1, _080DC330 - movs r0, #0x52 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 -_080DC330: .4byte 0x00000907 - thumb_func_end sub_080DC318 - - thumb_func_start sub_080DC334 -sub_080DC334: @ 0x080DC334 - push {lr} - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080DC334 - - thumb_func_start sub_080DC34C -sub_080DC34C: @ 0x080DC34C - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - adds r4, r0, #0 - mov sb, r1 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r0, sb - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - bl sub_080DC318 - ldr r0, _080DC3C4 - ldr r1, [r0] - ldr r2, _080DC3C8 - mov r8, r2 - lsls r6, r4, #4 - adds r6, r6, r4 - lsls r6, r6, #2 - adds r0, r6, r2 - movs r3, #0x30 - ldrsh r2, [r0, r3] - ldr r1, [r1, #0x14] - lsls r2, r2, #2 - adds r2, r2, r1 - ldrb r1, [r2, #2] - movs r3, #2 - orrs r1, r3 - strb r1, [r2, #2] - ldrh r5, [r0, #0x2e] - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - movs r1, #1 - bl StartSpriteAffineAnim - lsls r4, r5, #4 - adds r4, r4, r5 - lsls r4, r4, #2 - mov r1, r8 - adds r0, r4, r1 - movs r1, #1 - bl StartSpriteAffineAnim - movs r2, #0x1c - add r8, r2 - add r6, r8 - ldr r0, _080DC3CC - str r0, [r6] - add r4, r8 - ldr r0, _080DC3D0 - str r0, [r4] - mov r3, sb - cmp r3, #0 - bne _080DC3D4 - movs r0, #0x65 - bl sub_080A306C - b _080DC3DA - .align 2, 0 -_080DC3C4: .4byte gUnknown_2039BD4 -_080DC3C8: .4byte gUnknown_20205AC -_080DC3CC: .4byte sub_080DC3E8 -_080DC3D0: .4byte sub_08007140 -_080DC3D4: - movs r0, #2 - bl sub_080A306C -_080DC3DA: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080DC34C - - thumb_func_start sub_080DC3E8 -sub_080DC3E8: @ 0x080DC3E8 - push {lr} - mov ip, r0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080DC430 - mov r0, ip - ldrh r1, [r0, #0x2e] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _080DC434 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r2 - adds r0, r1, #0 - adds r0, #0x3f - ldrb r0, [r0] - lsls r0, r0, #0x1a - cmp r0, #0 - bge _080DC430 - mov r3, ip - adds r3, #0x3e - ldrb r0, [r3] - movs r2, #4 - orrs r0, r2 - strb r0, [r3] - adds r1, #0x3e - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] - ldr r0, _080DC438 - mov r1, ip - str r0, [r1, #0x1c] -_080DC430: - pop {r0} - bx r0 - .align 2, 0 -_080DC434: .4byte gUnknown_20205AC -_080DC438: .4byte sub_080DC43C - thumb_func_end sub_080DC3E8 - - thumb_func_start sub_080DC43C -sub_080DC43C: @ 0x080DC43C - push {lr} - ldr r1, _080DC468 - ldr r1, [r1] - movs r3, #0x30 - ldrsh r2, [r0, r3] - ldr r1, [r1, #0x14] - lsls r2, r2, #2 - adds r2, r2, r1 - ldrb r3, [r2, #2] - movs r1, #3 - rsbs r1, r1, #0 - ands r1, r3 - strb r1, [r2, #2] - ldrh r0, [r0, #0x2e] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_080DC2DC - bl sub_080DC334 - pop {r0} - bx r0 - .align 2, 0 -_080DC468: .4byte gUnknown_2039BD4 - thumb_func_end sub_080DC43C - - thumb_func_start ContestDebugTogglePointTotal -ContestDebugTogglePointTotal: @ 0x080DC46C - push {lr} - ldr r0, _080DC484 - movs r1, #0xd0 - lsls r1, r1, #9 - adds r2, r0, r1 - ldrb r1, [r2] - adds r3, r0, #0 - cmp r1, #1 - bne _080DC488 - movs r0, #0 - b _080DC48A - .align 2, 0 -_080DC484: .4byte gUnknown_2000000 -_080DC488: - movs r0, #1 -_080DC48A: - strb r0, [r2] - movs r1, #0xd0 - lsls r1, r1, #9 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080DC4A2 - bl sub_080DA624 - bl SwapMoveDescAndContestTilemaps - b _080DC4A6 -_080DC4A2: - bl ContestDebugDoPrint -_080DC4A6: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ContestDebugTogglePointTotal - - thumb_func_start ContestDebugDoPrint -ContestDebugDoPrint: @ 0x080DC4AC - push {r4, r5, lr} - sub sp, #8 - ldr r0, _080DC4D8 - ldrb r0, [r0] - cmp r0, #0 - beq _080DC5A6 - ldr r0, _080DC4DC - movs r1, #0xd0 - lsls r1, r1, #9 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _080DC5A6 - cmp r0, #0 - blt _080DC4E0 - cmp r0, #3 - bgt _080DC4E0 - cmp r0, #2 - blt _080DC4E0 - bl sub_080DEE2C - b _080DC5A6 - .align 2, 0 -_080DC4D8: .4byte gUnknown_2031F75 -_080DC4DC: .4byte gUnknown_2000000 -_080DC4E0: - movs r4, #0 -_080DC4E2: - adds r0, r4, #0 - movs r1, #0 - bl FillWindowPixelBuffer - adds r0, r4, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl FillWindowPixelBuffer - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _080DC4E2 - movs r4, #0 -_080DC502: - ldr r0, _080DC5B0 - ldr r0, [r0] - ldr r1, [r0, #4] - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - mov r2, sp - ldrh r5, [r0, #4] - movs r1, #4 - ldrsh r0, [r0, r1] - cmp r0, #0 - bge _080DC52C - rsbs r0, r0, #0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - mov r0, sp - ldr r1, _080DC5B4 - bl StringCopy - adds r2, r0, #0 -_080DC52C: - lsls r1, r5, #0x10 - asrs r1, r1, #0x10 - adds r0, r2, #0 - movs r2, #0 - movs r3, #4 - bl sub_080089D8 - ldr r0, _080DC5B8 - adds r0, r4, r0 - ldrb r0, [r0] - adds r0, #4 - mov r1, sp - bl sub_080DE2D4 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _080DC502 - movs r4, #0 -_080DC554: - ldr r0, _080DC5B0 - ldr r0, [r0] - ldr r1, [r0, #4] - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - mov r2, sp - ldrh r5, [r0, #2] - movs r1, #2 - ldrsh r0, [r0, r1] - cmp r0, #0 - bge _080DC57E - rsbs r0, r0, #0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - mov r0, sp - ldr r1, _080DC5B4 - bl StringCopy - adds r2, r0, #0 -_080DC57E: - lsls r1, r5, #0x10 - asrs r1, r1, #0x10 - adds r0, r2, #0 - movs r2, #0 - movs r3, #4 - bl sub_080089D8 - ldr r0, _080DC5B8 - adds r0, r4, r0 - ldrb r0, [r0] - mov r1, sp - bl sub_080DE2D4 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _080DC554 - bl SwapMoveDescAndContestTilemaps -_080DC5A6: - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080DC5B0: .4byte gUnknown_2039BD4 -_080DC5B4: .4byte gUnknown_85C9401 -_080DC5B8: .4byte gUnknown_2039BC6 - thumb_func_end ContestDebugDoPrint - - thumb_func_start SortContestants -SortContestants: @ 0x080DC5BC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - add r4, sp, #4 - adds r0, r4, #0 - movs r1, #0 - movs r2, #8 - bl memset - movs r5, #0 - add r4, sp, #4 - adds r6, r4, #0 - movs r7, #0 -_080DC5E2: - bl Random - adds r1, r0, #0 - mov r0, sp - adds r0, r0, r7 - adds r0, #4 - strh r1, [r0] - movs r2, #0 - cmp r2, r5 - bge _080DC61A - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - mov r1, sp - ldrh r1, [r1, #4] - cmp r0, r1 - beq _080DC614 -_080DC602: - adds r2, #1 - cmp r2, r5 - bge _080DC61A - lsls r0, r2, #1 - adds r0, r4, r0 - ldrh r1, [r6] - ldrh r0, [r0] - cmp r1, r0 - bne _080DC602 -_080DC614: - subs r6, #2 - subs r7, #2 - subs r5, #1 -_080DC61A: - adds r6, #2 - adds r7, #2 - adds r5, #1 - cmp r5, #3 - ble _080DC5E2 - mov r2, r8 - cmp r2, #0 - bne _080DC6E4 - movs r5, #0 - ldr r3, _080DC69C - mov r8, r3 -_080DC630: - mov r6, r8 - strb r5, [r6] - movs r4, #0 - cmp r4, r5 - bge _080DC6AC - ldr r7, _080DC6A0 - mov sb, r7 - lsls r0, r5, #1 - adds r1, r0, #0 - add r1, sb - mov ip, r1 - mov r2, sp - adds r2, #4 - str r2, [sp, #0xc] - add r0, sp - adds r0, #4 - str r0, [sp, #0x10] - ldr r3, _080DC69C - adds r6, r3, #0 - mov sl, r6 -_080DC658: - ldrb r0, [r3] - lsls r2, r0, #1 - mov r7, sb - adds r0, r2, r7 - movs r6, #0 - ldrsh r1, [r0, r6] - mov r7, ip - movs r6, #0 - ldrsh r0, [r7, r6] - cmp r1, r0 - blt _080DC680 - cmp r1, r0 - bne _080DC6A4 - ldr r7, [sp, #0xc] - adds r0, r7, r2 - ldrh r0, [r0] - ldr r1, [sp, #0x10] - ldrh r1, [r1] - cmp r0, r1 - bhs _080DC6A4 -_080DC680: - adds r2, r5, #0 - cmp r5, r4 - ble _080DC698 - subs r0, r5, #1 - mov r6, sl - adds r1, r0, r6 -_080DC68C: - ldrb r0, [r1] - strb r0, [r1, #1] - subs r1, #1 - subs r2, #1 - cmp r2, r4 - bgt _080DC68C -_080DC698: - strb r5, [r3] - b _080DC6AC - .align 2, 0 -_080DC69C: .4byte gUnknown_2039BC6 -_080DC6A0: .4byte gUnknown_2039BA0 -_080DC6A4: - adds r3, #1 - adds r4, #1 - cmp r4, r5 - blt _080DC658 -_080DC6AC: - cmp r4, r5 - bne _080DC6B4 - mov r7, r8 - strb r5, [r7] -_080DC6B4: - movs r0, #1 - add r8, r0 - adds r5, #1 - cmp r5, #3 - ble _080DC630 - ldr r4, _080DC6E0 - mov r0, sp - adds r1, r4, #0 - movs r2, #4 - bl memcpy - movs r5, #0 -_080DC6CC: - mov r1, sp - adds r0, r1, r5 - ldrb r0, [r0] - adds r0, r0, r4 - strb r5, [r0] - adds r5, #1 - cmp r5, #3 - ble _080DC6CC - b _080DC798 - .align 2, 0 -_080DC6E0: .4byte gUnknown_2039BC6 -_080DC6E4: - mov r0, sp - movs r1, #0xff - movs r2, #4 - bl memset - movs r5, #0 - ldr r3, _080DC708 - movs r6, #0 -_080DC6F4: - ldr r0, _080DC70C - ldr r0, [r0] - ldr r0, [r0, #4] - adds r0, r6, r0 - ldrb r0, [r0, #0xb] - lsls r0, r0, #0x1e - lsrs r2, r0, #0x1e - mov r7, sp - adds r1, r7, r2 - b _080DC71A - .align 2, 0 -_080DC708: .4byte gUnknown_2039BC6 -_080DC70C: .4byte gUnknown_2039BD4 -_080DC710: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - mov r0, sp - adds r1, r0, r2 -_080DC71A: - ldrb r0, [r1] - cmp r0, #0xff - bne _080DC710 - strb r5, [r1] - strb r2, [r3] - adds r3, #1 - adds r6, #0x1c - adds r5, #1 - cmp r5, #3 - ble _080DC6F4 - movs r5, #0 -_080DC730: - movs r4, #3 - adds r1, r5, #1 - mov sl, r1 - cmp r4, r5 - ble _080DC792 - mov sb, r4 - ldr r2, _080DC7A8 - mov r8, r2 - add r3, sp, #4 - mov ip, r3 -_080DC744: - ldr r6, _080DC7AC - ldr r0, [r6] - ldr r1, [r0, #4] - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - adds r1, r0, #0 - subs r1, #0x1c - ldrb r2, [r1, #0xb] - ldrb r3, [r0, #0xb] - mov r1, sb - ands r1, r2 - mov r0, sb - ands r0, r3 - subs r3, r4, #1 - cmp r1, r0 - bne _080DC78C - mov r0, r8 - adds r7, r3, r0 - adds r2, r4, r0 - ldrb r6, [r7] - ldrb r1, [r2] - cmp r6, r1 - bhs _080DC78C - lsls r0, r3, #1 - add r0, ip - lsls r1, r4, #1 - add r1, ip - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - bhs _080DC78C - ldrb r0, [r2] - strb r6, [r2] - strb r0, [r7] -_080DC78C: - adds r4, r3, #0 - cmp r4, r5 - bgt _080DC744 -_080DC792: - mov r5, sl - cmp r5, #2 - ble _080DC730 -_080DC798: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DC7A8: .4byte gUnknown_2039BC6 -_080DC7AC: .4byte gUnknown_2039BD4 - thumb_func_end SortContestants - - thumb_func_start DrawContestantWindows -DrawContestantWindows: @ 0x080DC7B0 - push {r4, r5, lr} - movs r4, #0 - movs r5, #0xa0 -_080DC7B6: - ldr r0, _080DC7DC - adds r0, r5, r0 - ldr r1, _080DC7E0 - adds r1, r4, r1 - ldrb r1, [r1] - adds r1, #5 - lsls r1, r1, #4 - movs r2, #0x20 - bl LoadPalette - adds r5, #0x20 - adds r4, #1 - cmp r4, #3 - ble _080DC7B6 - bl sub_080DA624 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080DC7DC: .4byte gUnknown_201A004 -_080DC7E0: .4byte gUnknown_2039BC6 - thumb_func_end DrawContestantWindows - - thumb_func_start sub_080DC7E4 -sub_080DC7E4: @ 0x080DC7E4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r4, _080DC86C - ldr r3, [r4] - ldr r1, [r3, #4] - lsls r7, r6, #3 - subs r0, r7, r6 - lsls r5, r0, #2 - adds r1, r5, r1 - movs r2, #0 - strh r2, [r1, #2] - ldr r0, [r3, #4] - adds r0, r5, r0 - strh r2, [r0] - adds r0, r6, #0 - bl ContestantCanUseTurn - lsls r0, r0, #0x18 - mov r8, r4 - cmp r0, #0 - bne _080DC818 - b _080DCB28 -_080DC818: - ldr r0, [r4] - ldr r1, [r0, #4] - adds r1, r5, r1 - ldrh r0, [r1, #6] - ldr r2, _080DC870 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrb r2, [r0] - mov sb, r2 - ldrb r0, [r0, #1] - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1d - strb r0, [r1, #0xa] - ldr r0, [r4] - ldr r0, [r0, #4] - adds r2, r5, r0 - ldrh r0, [r2, #6] - ldrh r1, [r2, #8] - cmp r0, r1 - bne _080DC874 - cmp r0, #0 - beq _080DC874 - ldrb r0, [r2, #0x15] - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x15] - ldr r0, [r4] - ldr r2, [r0, #4] - adds r2, r5, r2 - ldrb r3, [r2, #0xb] - lsls r1, r3, #0x19 - lsrs r1, r1, #0x1d - adds r1, #1 - movs r0, #7 - ands r1, r0 - lsls r1, r1, #4 - movs r0, #0x71 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #0xb] - b _080DC890 - .align 2, 0 -_080DC86C: .4byte gUnknown_2039BD4 -_080DC870: .4byte gUnknown_8565FCC -_080DC874: - ldr r4, _080DC944 - ldr r0, [r4] - ldr r0, [r0, #4] - lsls r3, r6, #3 - subs r1, r3, r6 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #0xb] - movs r0, #0x71 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #0xb] - mov r8, r4 - adds r7, r3, #0 -_080DC890: - mov r2, r8 - ldr r4, [r2] - ldr r2, [r4, #4] - subs r0, r7, r6 - lsls r0, r0, #2 - adds r2, r0, r2 - ldr r3, _080DC948 - mov r1, sb - lsls r5, r1, #2 - adds r3, r5, r3 - ldrb r1, [r3, #1] - strh r1, [r2] - ldr r1, [r4, #4] - adds r0, r0, r1 - ldrh r1, [r0] - strh r1, [r0, #2] - ldr r1, [r4, #8] - ldrb r0, [r3, #2] - strh r0, [r1, #4] - ldr r1, [r4, #8] - ldrh r0, [r1, #4] - strh r0, [r1, #6] - ldr r0, [r4, #8] - strb r6, [r0, #0x11] - movs r2, #0 - mov sb, r5 - mov r4, r8 - movs r3, #0 - movs r1, #0 -_080DC8CA: - ldr r0, [r4] - ldr r0, [r0, #4] - adds r0, r1, r0 - strb r3, [r0, #0xe] - ldr r0, [r4] - ldr r0, [r0, #8] - adds r0, #0xd - adds r0, r0, r2 - strb r3, [r0] - adds r1, #0x1c - adds r2, #1 - cmp r2, #3 - ble _080DC8CA - ldr r5, _080DC944 - ldr r0, [r5] - ldr r1, [r0, #4] - subs r0, r7, r6 - lsls r4, r0, #2 - adds r2, r4, r1 - ldrb r1, [r2, #0x15] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080DC918 - ldrh r0, [r2, #8] - ldrh r1, [r2, #6] - bl AreMovesContestCombo - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080DC918 - ldr r0, [r5] - ldr r1, [r0, #4] - adds r1, r4, r1 - ldrb r2, [r1, #0x15] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #0x15] -_080DC918: - ldr r0, _080DC94C - add r0, sb - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _080DC944 - ldr r0, [r0] - ldr r1, [r0, #4] - subs r0, r7, r6 - lsls r0, r0, #2 - adds r2, r0, r1 - ldrb r1, [r2, #0x10] - movs r0, #0x30 - ands r0, r1 - cmp r0, #0x10 - bne _080DC950 - ldrh r1, [r2, #2] - subs r1, #0xa - movs r0, #0xd - ldrsb r0, [r2, r0] - b _080DC96A - .align 2, 0 -_080DC944: .4byte gUnknown_2039BD4 -_080DC948: .4byte gUnknown_8566AE4 -_080DC94C: .4byte gUnknown_8566BE4 -_080DC950: - ldrb r1, [r2, #0x11] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080DC964 - movs r1, #0xd - ldrsb r1, [r2, r1] - lsls r0, r1, #1 - adds r0, r0, r1 - b _080DC968 -_080DC964: - movs r0, #0xd - ldrsb r0, [r2, r0] -_080DC968: - ldrh r1, [r2, #2] -_080DC96A: - adds r0, r0, r1 - strh r0, [r2, #2] - ldr r5, _080DC9FC - ldr r0, [r5] - ldr r1, [r0, #4] - subs r0, r7, r6 - lsls r4, r0, #2 - adds r1, r4, r1 - movs r0, #0 - strb r0, [r1, #0x16] - ldr r0, [r5] - ldr r1, [r0, #4] - adds r1, r4, r1 - ldrb r2, [r1, #0x15] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #0x15] - adds r0, r6, #0 - bl sub_080DD94C - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080DCA46 - ldr r0, [r5] - ldr r1, [r0, #4] - adds r1, r4, r1 - ldrh r0, [r1, #8] - ldrh r1, [r1, #6] - bl AreMovesContestCombo - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - beq _080DCA00 - ldr r0, [r5] - ldr r0, [r0, #4] - adds r2, r4, r0 - ldrb r1, [r2, #0x15] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080DCA00 - strb r3, [r2, #0x16] - ldr r0, [r5] - ldr r1, [r0, #4] - adds r1, r4, r1 - ldrb r0, [r1, #0x15] - movs r2, #0x40 - orrs r0, r2 - strb r0, [r1, #0x15] - ldr r0, [r5] - ldr r1, [r0, #4] - adds r1, r4, r1 - ldrb r2, [r1, #0x15] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #0x15] - ldr r0, [r5] - ldr r0, [r0, #4] - adds r0, r4, r0 - movs r1, #0 - ldrsh r2, [r0, r1] - ldrb r1, [r0, #0x16] - muls r1, r2, r1 - strb r1, [r0, #0x17] - ldr r0, [r5] - ldr r1, [r0, #4] - adds r1, r4, r1 - ldrb r0, [r1, #0x15] - movs r2, #8 - b _080DCA2C - .align 2, 0 -_080DC9FC: .4byte gUnknown_2039BD4 -_080DCA00: - ldr r2, _080DCA34 - ldr r5, _080DCA38 - ldr r0, [r5] - ldr r1, [r0, #4] - subs r0, r7, r6 - lsls r4, r0, #2 - adds r3, r4, r1 - ldrh r0, [r3, #6] - lsls r0, r0, #3 - adds r0, r0, r2 - ldrb r0, [r0, #2] - cmp r0, #0 - beq _080DCA3C - ldrb r0, [r3, #0x15] - movs r1, #0x10 - orrs r0, r1 - strb r0, [r3, #0x15] - ldr r0, [r5] - ldr r1, [r0, #4] - adds r1, r4, r1 - ldrb r0, [r1, #0x15] - movs r2, #0x40 -_080DCA2C: - orrs r0, r2 - strb r0, [r1, #0x15] - b _080DCA46 - .align 2, 0 -_080DCA34: .4byte gUnknown_8565FCC -_080DCA38: .4byte gUnknown_2039BD4 -_080DCA3C: - ldrb r1, [r3, #0x15] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3, #0x15] -_080DCA46: - ldr r5, _080DCAE4 - ldr r0, [r5] - ldr r1, [r0, #4] - subs r0, r7, r6 - lsls r4, r0, #2 - adds r2, r4, r1 - ldrb r1, [r2, #0x15] - movs r0, #1 - mov r8, r0 - ands r0, r1 - cmp r0, #0 - beq _080DCA6E - ldrb r0, [r2, #0xb] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1d - adds r0, #1 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #1 - strb r1, [r2, #0x18] -_080DCA6E: - ldr r0, [r5] - ldr r0, [r0, #4] - adds r2, r4, r0 - ldrb r1, [r2, #0xc] - mov r0, r8 - ands r0, r1 - cmp r0, #0 - beq _080DCA98 - ldrb r1, [r2, #0x15] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x15] - ldr r2, [r5] - ldr r0, [r2, #4] - adds r0, r4, r0 - movs r1, #0 - strh r1, [r0, #2] - ldr r0, [r2, #4] - adds r0, r4, r0 - strh r1, [r0] -_080DCA98: - ldr r0, [r5] - ldr r0, [r0, #4] - adds r0, r4, r0 - ldrh r0, [r0, #6] - bl Contest_GetMoveExcitement - ldr r1, [r5] - ldr r1, [r1, #0x10] - strb r0, [r1] - ldr r2, [r5] - ldr r0, [r2, #4] - adds r0, r4, r0 - ldrb r1, [r0, #0x11] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080DCAC0 - ldr r0, [r2, #0x10] - mov r1, r8 - strb r1, [r0] -_080DCAC0: - ldr r1, [r5] - ldr r3, [r1, #0x10] - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #0 - ble _080DCAEC - ldr r0, [r1] - ldrb r0, [r0, #0x13] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #0 - ldrsb r1, [r3, r1] - adds r0, r0, r1 - cmp r0, #4 - ble _080DCAE8 - movs r0, #0x3c - b _080DCAEE - .align 2, 0 -_080DCAE4: .4byte gUnknown_2039BD4 -_080DCAE8: - movs r0, #0xa - b _080DCAEE -_080DCAEC: - movs r0, #0 -_080DCAEE: - strb r0, [r3, #2] - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0 - b _080DCB12 -_080DCB06: - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_080DCB0C: - adds r2, #1 - cmp r2, #3 - bgt _080DCB1A -_080DCB12: - cmp r2, r6 - beq _080DCB0C - cmp r0, #0 - bne _080DCB06 -_080DCB1A: - ldr r0, _080DCB34 - ldr r0, [r0] - ldr r1, [r0, #4] - subs r0, r7, r6 - lsls r0, r0, #2 - adds r0, r0, r1 - strb r2, [r0, #0x1b] -_080DCB28: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DCB34: .4byte gUnknown_2039BD4 - thumb_func_end sub_080DC7E4 - - thumb_func_start SetContestantEffectStringID -SetContestantEffectStringID: @ 0x080DCB38 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080DCB50 - ldr r2, [r2] - ldr r3, [r2, #4] - lsls r2, r0, #3 - subs r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r3 - strb r1, [r2, #0x13] - bx lr - .align 2, 0 -_080DCB50: .4byte gUnknown_2039BD4 - thumb_func_end SetContestantEffectStringID - - thumb_func_start SetContestantEffectStringID2 -SetContestantEffectStringID2: @ 0x080DCB54 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080DCB6C - ldr r2, [r2] - ldr r3, [r2, #4] - lsls r2, r0, #3 - subs r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r3 - strb r1, [r2, #0x14] - bx lr - .align 2, 0 -_080DCB6C: .4byte gUnknown_2039BD4 - thumb_func_end SetContestantEffectStringID2 - - thumb_func_start SetStartledString -SetStartledString: @ 0x080DCB70 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r3, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r2, r1, #0 - cmp r1, #0x3b - bls _080DCB8A - movs r1, #0x35 - bl SetContestantEffectStringID - b _080DCBBA -_080DCB8A: - cmp r1, #0x27 - bls _080DCB96 - movs r1, #0x34 - bl SetContestantEffectStringID - b _080DCBBA -_080DCB96: - cmp r1, #0x1d - bls _080DCBA2 - movs r1, #0x33 - bl SetContestantEffectStringID - b _080DCBBA -_080DCBA2: - cmp r1, #0x13 - bls _080DCBAE - movs r1, #0x32 - bl SetContestantEffectStringID - b _080DCBBA -_080DCBAE: - cmp r2, #9 - bls _080DCBBA - adds r0, r3, #0 - movs r1, #0x31 - bl SetContestantEffectStringID -_080DCBBA: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetStartledString - - thumb_func_start sub_080DCBC0 -sub_080DCBC0: @ 0x080DCBC0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - ldr r0, _080DCC20 - lsls r1, r4, #6 - ldr r2, _080DCC24 - adds r1, r1, r2 - bl StringCopy - ldr r0, _080DCC28 - ldr r5, _080DCC2C - ldr r1, [r5] - ldr r2, [r1, #4] - lsls r1, r4, #3 - subs r1, r1, r4 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r1, [r1, #6] - lsls r1, r1, #3 - ldr r2, _080DCC30 - adds r1, r1, r2 - bl StringCopy - ldr r3, _080DCC34 - ldr r1, [r5] - ldr r0, [r1, #8] - ldrb r2, [r0, #0x11] - ldr r1, [r1, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0, #6] - lsls r0, r0, #3 - adds r0, r0, r3 - ldrb r0, [r0, #1] - lsls r1, r0, #0x1d - cmp r1, #0 - bne _080DCC40 - ldr r0, _080DCC38 - ldr r1, _080DCC3C - bl StringCopy - b _080DCC90 - .align 2, 0 -_080DCC20: .4byte gUnknown_2021C40 -_080DCC24: .4byte gUnknown_2039AA2 -_080DCC28: .4byte gUnknown_2021C54 -_080DCC2C: .4byte gUnknown_2039BD4 -_080DCC30: .4byte gUnknown_82EACC4 -_080DCC34: .4byte gUnknown_8565FCC -_080DCC38: .4byte gUnknown_2021C68 -_080DCC3C: .4byte gUnknown_824C0D2 -_080DCC40: - lsrs r0, r1, #0x1d - cmp r0, #1 - bne _080DCC58 - ldr r0, _080DCC50 - ldr r1, _080DCC54 - bl StringCopy - b _080DCC90 - .align 2, 0 -_080DCC50: .4byte gUnknown_2021C68 -_080DCC54: .4byte gUnknown_824C0D7 -_080DCC58: - lsrs r0, r1, #0x1d - cmp r0, #2 - bne _080DCC70 - ldr r0, _080DCC68 - ldr r1, _080DCC6C - bl StringCopy - b _080DCC90 - .align 2, 0 -_080DCC68: .4byte gUnknown_2021C68 -_080DCC6C: .4byte gUnknown_824C0DC -_080DCC70: - lsrs r0, r1, #0x1d - cmp r0, #3 - bne _080DCC88 - ldr r0, _080DCC80 - ldr r1, _080DCC84 - bl StringCopy - b _080DCC90 - .align 2, 0 -_080DCC80: .4byte gUnknown_2021C68 -_080DCC84: .4byte gUnknown_824C0E1 -_080DCC88: - ldr r0, _080DCCB4 - ldr r1, _080DCCB8 - bl StringCopy -_080DCC90: - ldr r4, _080DCCBC - ldr r1, _080DCCC0 - lsls r0, r6, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl StringExpandPlaceholders - bl sub_080DB000 - adds r0, r4, #0 - movs r1, #1 - bl Contest_StartTextPrinter - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080DCCB4: .4byte gUnknown_2021C68 -_080DCCB8: .4byte gUnknown_824C0E6 -_080DCCBC: .4byte gUnknown_2021C7C -_080DCCC0: .4byte gUnknown_8560D74 - thumb_func_end sub_080DCBC0 - - thumb_func_start MakeContestantNervous -MakeContestantNervous: @ 0x080DCCC4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _080DCCF0 - ldr r1, [r4] - ldr r3, [r1, #4] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r3, r1, r3 - ldrb r0, [r3, #0xc] - movs r2, #1 - orrs r0, r2 - strb r0, [r3, #0xc] - ldr r0, [r4] - ldr r0, [r0, #4] - adds r1, r1, r0 - movs r0, #0 - strh r0, [r1, #6] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DCCF0: .4byte gUnknown_2039BD4 - thumb_func_end MakeContestantNervous - - thumb_func_start ApplyNextTurnOrder -ApplyNextTurnOrder: @ 0x080DCCF4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #8 - movs r0, #0 - mov ip, r0 - movs r4, #0 - ldr r1, _080DCD60 - mov sb, r1 - add r2, sp, #4 - mov r6, sb - movs r5, #0 - adds r3, r2, #0 -_080DCD10: - mov r0, sp - adds r1, r0, r4 - adds r0, r4, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, r4 - strb r5, [r0] - adds r4, #1 - cmp r4, #3 - ble _080DCD10 - movs r4, #0 - ldr r7, _080DCD64 - ldr r1, [r7] - mov r8, r1 - adds r5, r2, #0 -_080DCD2E: - movs r2, #0 - mov r0, r8 - ldr r1, [r0, #4] -_080DCD34: - ldrb r0, [r1, #0x19] - cmp r0, r4 - beq _080DCD68 - adds r1, #0x1c - adds r2, #1 - cmp r2, #3 - ble _080DCD34 -_080DCD42: - cmp r2, #4 - bne _080DCDE8 - movs r2, #0 - ldrb r0, [r5] - cmp r0, #0 - bne _080DCD76 - ldr r0, [r7] - ldr r0, [r0, #4] - ldrb r0, [r0, #0x19] - cmp r0, #0xff - bne _080DCD76 - mov ip, r2 - movs r2, #1 - b _080DCD9E - .align 2, 0 -_080DCD60: .4byte gUnknown_2039BC6 -_080DCD64: .4byte gUnknown_2039BD4 -_080DCD68: - mov r1, sp - adds r0, r1, r2 - strb r4, [r0] - adds r1, r5, r2 - movs r0, #1 - strb r0, [r1] - b _080DCD42 -_080DCD76: - adds r2, #1 - cmp r2, #3 - bgt _080DCDDA - adds r0, r5, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _080DCD76 - ldr r0, [r7] - ldr r1, [r0, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #0x19] - cmp r0, #0xff - bne _080DCD76 - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - mov ip, r0 - adds r2, #1 -_080DCD9E: - cmp r2, #3 - bgt _080DCDDA - ldr r6, _080DCE38 - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r3, r0, #2 -_080DCDAA: - adds r0, r5, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _080DCDD2 - ldr r0, [r7] - ldr r0, [r0, #4] - adds r0, r3, r0 - ldrb r0, [r0, #0x19] - cmp r0, #0xff - bne _080DCDD2 - mov r1, ip - adds r0, r1, r6 - adds r1, r2, r6 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080DCDD2 - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - mov ip, r0 -_080DCDD2: - adds r3, #0x1c - adds r2, #1 - cmp r2, #3 - ble _080DCDAA -_080DCDDA: - mov r0, sp - add r0, ip - strb r4, [r0] - mov r0, ip - adds r1, r5, r0 - movs r0, #1 - strb r0, [r1] -_080DCDE8: - adds r4, #1 - cmp r4, #3 - ble _080DCD2E - movs r4, #0 - ldr r6, _080DCE3C - movs r5, #0 -_080DCDF4: - ldr r0, [r6] - ldr r1, [r0, #8] - adds r1, r1, r4 - mov r0, sp - adds r3, r0, r4 - ldrb r0, [r3] - strb r0, [r1] - ldr r0, [r6] - ldr r0, [r0, #4] - adds r0, r5, r0 - movs r1, #0xff - strb r1, [r0, #0x19] - ldr r0, [r6] - ldr r1, [r0, #4] - adds r1, r5, r1 - ldrb r2, [r1, #0x10] - movs r0, #0x3f - ands r0, r2 - strb r0, [r1, #0x10] - mov r0, sb - adds r1, r4, r0 - ldrb r0, [r3] - strb r0, [r1] - adds r5, #0x1c - adds r4, #1 - cmp r4, #3 - ble _080DCDF4 - add sp, #8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DCE38: .4byte gUnknown_2039BC6 -_080DCE3C: .4byte gUnknown_2039BD4 - thumb_func_end ApplyNextTurnOrder - - thumb_func_start sub_080DCE40 -sub_080DCE40: @ 0x080DCE40 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x30] - adds r1, r0, #1 - strh r1, [r2, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x54 - ble _080DCE76 - movs r0, #0 - strh r0, [r2, #0x30] - adds r3, r2, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r1, #4 - orrs r0, r1 - strb r0, [r3] - ldr r0, _080DCE7C - str r0, [r2, #0x1c] - ldr r0, _080DCE80 - ldr r0, [r0] - ldr r2, [r0] - ldrb r1, [r2, #6] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #6] -_080DCE76: - pop {r0} - bx r0 - .align 2, 0 -_080DCE7C: .4byte sub_08007140 -_080DCE80: .4byte gUnknown_2039BD4 - thumb_func_end sub_080DCE40 - - thumb_func_start sub_080DCE84 -sub_080DCE84: @ 0x080DCE84 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r0, _080DCEA4 - ldr r0, [r0] - ldr r0, [r0] - ldrb r5, [r0, #0x12] - cmp r1, #8 - bls _080DCE98 - b _080DD038 -_080DCE98: - lsls r0, r1, #2 - ldr r1, _080DCEA8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080DCEA4: .4byte gUnknown_2039BD4 -_080DCEA8: .4byte _080DCEAC -_080DCEAC: @ jump table - .4byte _080DCED0 @ case 0 - .4byte _080DCED0 @ case 1 - .4byte _080DCF00 @ case 2 - .4byte _080DCF34 @ case 3 - .4byte _080DCF68 @ case 4 - .4byte _080DCF9C @ case 5 - .4byte _080DCFD0 @ case 6 - .4byte _080DD038 @ case 7 - .4byte _080DD004 @ case 8 -_080DCED0: - ldr r0, _080DCEF4 - lsls r4, r5, #4 - adds r1, r4, r5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r0, [r1, #0x2e] - ldr r2, _080DCEF8 - ands r2, r0 - ldrh r3, [r1, #4] - ldr r0, _080DCEFC - ands r0, r3 - orrs r0, r2 - strh r0, [r1, #4] - movs r0, #0x20 - bl sub_080A306C - b _080DD05C - .align 2, 0 -_080DCEF4: .4byte gUnknown_20205AC -_080DCEF8: .4byte 0x000003FF -_080DCEFC: .4byte 0xFFFFFC00 -_080DCF00: - ldr r0, _080DCF28 - lsls r4, r5, #4 - adds r1, r4, r5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r2, [r1, #0x2e] - adds r2, #4 - ldr r3, _080DCF2C - adds r0, r3, #0 - ands r2, r0 - ldrh r3, [r1, #4] - ldr r0, _080DCF30 - ands r0, r3 - orrs r0, r2 - strh r0, [r1, #4] - movs r0, #0x1f - bl sub_080A306C - b _080DD05C - .align 2, 0 -_080DCF28: .4byte gUnknown_20205AC -_080DCF2C: .4byte 0x000003FF -_080DCF30: .4byte 0xFFFFFC00 -_080DCF34: - ldr r0, _080DCF5C - lsls r4, r5, #4 - adds r1, r4, r5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r2, [r1, #0x2e] - adds r2, #8 - ldr r3, _080DCF60 - adds r0, r3, #0 - ands r2, r0 - ldrh r3, [r1, #4] - ldr r0, _080DCF64 - ands r0, r3 - orrs r0, r2 - strh r0, [r1, #4] - movs r0, #0x1f - bl sub_080A306C - b _080DD05C - .align 2, 0 -_080DCF5C: .4byte gUnknown_20205AC -_080DCF60: .4byte 0x000003FF -_080DCF64: .4byte 0xFFFFFC00 -_080DCF68: - ldr r0, _080DCF90 - lsls r4, r5, #4 - adds r1, r4, r5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r2, [r1, #0x2e] - adds r2, #0xc - ldr r3, _080DCF94 - adds r0, r3, #0 - ands r2, r0 - ldrh r3, [r1, #4] - ldr r0, _080DCF98 - ands r0, r3 - orrs r0, r2 - strh r0, [r1, #4] - movs r0, #0x2d - bl sub_080A306C - b _080DD05C - .align 2, 0 -_080DCF90: .4byte gUnknown_20205AC -_080DCF94: .4byte 0x000003FF -_080DCF98: .4byte 0xFFFFFC00 -_080DCF9C: - ldr r0, _080DCFC4 - lsls r4, r5, #4 - adds r1, r4, r5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r2, [r1, #0x2e] - adds r2, #0xc - ldr r3, _080DCFC8 - adds r0, r3, #0 - ands r2, r0 - ldrh r3, [r1, #4] - ldr r0, _080DCFCC - ands r0, r3 - orrs r0, r2 - strh r0, [r1, #4] - movs r0, #0x2d - bl sub_080A306C - b _080DD05C - .align 2, 0 -_080DCFC4: .4byte gUnknown_20205AC -_080DCFC8: .4byte 0x000003FF -_080DCFCC: .4byte 0xFFFFFC00 -_080DCFD0: - ldr r0, _080DCFF8 - lsls r4, r5, #4 - adds r1, r4, r5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r2, [r1, #0x2e] - adds r2, #0x10 - ldr r3, _080DCFFC - adds r0, r3, #0 - ands r2, r0 - ldrh r3, [r1, #4] - ldr r0, _080DD000 - ands r0, r3 - orrs r0, r2 - strh r0, [r1, #4] - movs r0, #0x2d - bl sub_080A306C - b _080DD05C - .align 2, 0 -_080DCFF8: .4byte gUnknown_20205AC -_080DCFFC: .4byte 0x000003FF -_080DD000: .4byte 0xFFFFFC00 -_080DD004: - ldr r0, _080DD02C - lsls r4, r5, #4 - adds r1, r4, r5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r2, [r1, #0x2e] - adds r2, #0x18 - ldr r3, _080DD030 - adds r0, r3, #0 - ands r2, r0 - ldrh r3, [r1, #4] - ldr r0, _080DD034 - ands r0, r3 - orrs r0, r2 - strh r0, [r1, #4] - movs r0, #0xc3 - bl sub_080A306C - b _080DD05C - .align 2, 0 -_080DD02C: .4byte gUnknown_20205AC -_080DD030: .4byte 0x000003FF -_080DD034: .4byte 0xFFFFFC00 -_080DD038: - ldr r0, _080DD090 - lsls r4, r5, #4 - adds r1, r4, r5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r2, [r1, #0x2e] - adds r2, #0x14 - ldr r3, _080DD094 - adds r0, r3, #0 - ands r2, r0 - ldrh r3, [r1, #4] - ldr r0, _080DD098 - ands r0, r3 - orrs r0, r2 - strh r0, [r1, #4] - movs r0, #0x2d - bl sub_080A306C -_080DD05C: - adds r2, r4, #0 - ldr r4, _080DD090 - adds r2, r2, r5 - lsls r2, r2, #2 - adds r1, r2, r4 - movs r0, #0 - strh r0, [r1, #0x30] - adds r1, #0x3e - ldrb r3, [r1] - subs r0, #5 - ands r0, r3 - strb r0, [r1] - adds r4, #0x1c - adds r2, r2, r4 - ldr r0, _080DD09C - str r0, [r2] - ldr r0, _080DD0A0 - ldr r0, [r0] - ldr r2, [r0] - ldrb r0, [r2, #6] - movs r1, #0x10 - orrs r0, r1 - strb r0, [r2, #6] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080DD090: .4byte gUnknown_20205AC -_080DD094: .4byte 0x000003FF -_080DD098: .4byte 0xFFFFFC00 -_080DD09C: .4byte sub_080DCE40 -_080DD0A0: .4byte gUnknown_2039BD4 - thumb_func_end sub_080DCE84 - - thumb_func_start UpdateApplauseMeter -UpdateApplauseMeter: @ 0x080DD0A4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - movs r5, #0 - ldr r6, _080DD140 - ldr r0, _080DD144 - mov sb, r0 - ldr r0, _080DD148 - mov r8, r0 - ldr r7, _080DD14C -_080DD0BA: - ldr r0, [r6] - ldr r1, [r0] - movs r0, #0x13 - ldrsb r0, [r1, r0] - ldr r4, _080DD150 - cmp r5, r0 - bge _080DD0CA - adds r4, #0x40 -_080DD0CA: - adds r0, r1, #0 - adds r0, #0x58 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sb - ldrh r1, [r0, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x16 - adds r0, r5, #0 - adds r0, #0x11 - adds r1, r1, r0 - lsls r1, r1, #5 - add r1, r8 - adds r0, r4, #0 - adds r2, r7, #0 - bl CpuSet - adds r0, r4, #0 - adds r0, #0x20 - ldr r1, [r6] - ldr r1, [r1] - adds r1, #0x58 - ldrb r2, [r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - add r1, sb - ldrh r1, [r1, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x16 - adds r2, r5, #0 - adds r2, #0x19 - adds r1, r1, r2 - lsls r1, r1, #5 - add r1, r8 - adds r2, r7, #0 - bl CpuSet - ldr r0, [r6] - ldr r0, [r0] - ldrb r0, [r0, #0x13] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #4 - ble _080DD12C - bl StartApplauseOverflowAnimation -_080DD12C: - adds r5, #1 - cmp r5, #4 - ble _080DD0BA - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DD140: .4byte gUnknown_2039BD4 -_080DD144: .4byte gUnknown_20205AC -_080DD148: .4byte 0x06010000 -_080DD14C: .4byte 0x04000008 -_080DD150: .4byte gUnknown_8D8EBD8 - thumb_func_end UpdateApplauseMeter - - thumb_func_start Contest_GetMoveExcitement -Contest_GetMoveExcitement: @ 0x080DD154 - lsls r0, r0, #0x10 - ldr r3, _080DD178 - ldr r1, _080DD17C - lsrs r0, r0, #0xd - adds r0, r0, r1 - ldrb r1, [r0, #1] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - ldr r0, _080DD180 - ldrh r2, [r0] - lsls r0, r2, #2 - adds r0, r0, r2 - adds r1, r1, r0 - adds r1, r1, r3 - movs r0, #0 - ldrsb r0, [r1, r0] - bx lr - .align 2, 0 -_080DD178: .4byte gUnknown_8562970 -_080DD17C: .4byte gUnknown_8565FCC -_080DD180: .4byte gUnknown_2039BCC - thumb_func_end Contest_GetMoveExcitement - - thumb_func_start StartApplauseOverflowAnimation -StartApplauseOverflowAnimation: @ 0x080DD184 - push {r4, r5, lr} - ldr r0, _080DD1B8 - movs r1, #0xa - bl CreateTask - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _080DD1BC - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - adds r4, r4, r0 - movs r0, #1 - strh r0, [r4, #0xa] - ldr r0, _080DD1C0 - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0xc] - adds r0, r5, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080DD1B8: .4byte Task_ApplauseOverflowAnimation -_080DD1BC: .4byte gUnknown_3005B60 -_080DD1C0: .4byte 0x0000ABE2 - thumb_func_end StartApplauseOverflowAnimation - - thumb_func_start Task_ApplauseOverflowAnimation -Task_ApplauseOverflowAnimation: @ 0x080DD1C4 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _080DD1F4 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r2, r0, r1 - ldrh r0, [r2, #8] - adds r0, #1 - strh r0, [r2, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - bne _080DD262 - movs r0, #0 - strh r0, [r2, #8] - movs r3, #0xe - ldrsh r0, [r2, r3] - cmp r0, #0 - bne _080DD1F8 - ldrh r0, [r2, #0x10] - adds r0, #1 - b _080DD1FC - .align 2, 0 -_080DD1F4: .4byte gUnknown_3005B60 -_080DD1F8: - ldrh r0, [r2, #0x10] - subs r0, #1 -_080DD1FC: - strh r0, [r2, #0x10] - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #0xc - ldrsh r0, [r4, r1] - lsls r0, r0, #4 - movs r3, #0x84 - lsls r3, r3, #1 - adds r6, r3, #0 - adds r0, r0, r6 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrb r2, [r4, #0x10] - ldr r3, _080DD268 - movs r1, #1 - bl BlendPalette - movs r1, #0x10 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _080DD22E - cmp r0, #0x10 - bne _080DD262 -_080DD22E: - ldrh r0, [r4, #0xe] - movs r1, #1 - eors r0, r1 - strh r0, [r4, #0xe] - ldr r0, _080DD26C - ldr r0, [r0] - ldr r0, [r0] - ldrb r0, [r0, #0x13] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #4 - bgt _080DD262 - movs r3, #0xc - ldrsh r0, [r4, r3] - lsls r0, r0, #4 - adds r0, r0, r6 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - movs r2, #0 - movs r3, #0x1f - bl BlendPalette - adds r0, r5, #0 - bl DestroyTask -_080DD262: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080DD268: .4byte 0x00007FFF -_080DD26C: .4byte gUnknown_2039BD4 - thumb_func_end Task_ApplauseOverflowAnimation - - thumb_func_start StartMoveApplauseMeterOnscreen -StartMoveApplauseMeterOnscreen: @ 0x080DD270 - push {r4, lr} - ldr r0, _080DD2C0 - movs r1, #0xa - bl CreateTask - ldr r3, _080DD2C4 - ldr r4, _080DD2C8 - ldr r2, [r4] - ldr r0, [r2] - adds r0, #0x58 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldr r1, _080DD2CC - strh r1, [r0, #0x24] - ldr r0, [r2] - adds r0, #0x58 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - ldr r0, [r4] - ldr r2, [r0] - ldrb r0, [r2, #6] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2, #6] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DD2C0: .4byte Task_MoveApplauseMeterOnscreen -_080DD2C4: .4byte gUnknown_20205AC -_080DD2C8: .4byte gUnknown_2039BD4 -_080DD2CC: .4byte 0x0000FFBA - thumb_func_end StartMoveApplauseMeterOnscreen - - thumb_func_start Task_MoveApplauseMeterOnscreen -Task_MoveApplauseMeterOnscreen: @ 0x080DD2D0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r3, r0, #0 - ldr r4, _080DD340 - ldr r0, [r4] - ldr r0, [r0] - adds r0, #0x58 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080DD344 - adds r2, r0, r1 - ldr r0, _080DD348 - lsls r1, r3, #2 - adds r1, r1, r3 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r5, #0xd0 - lsls r5, r5, #3 - adds r0, r5, #0 - ldrh r5, [r1, #0x1c] - adds r0, r0, r5 - strh r0, [r1, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - ldrh r5, [r2, #0x24] - adds r0, r0, r5 - strh r0, [r2, #0x24] - ldrb r0, [r1, #0x1c] - strh r0, [r1, #0x1c] - movs r1, #0x24 - ldrsh r0, [r2, r1] - cmp r0, #0 - ble _080DD31C - movs r0, #0 - strh r0, [r2, #0x24] -_080DD31C: - movs r5, #0x24 - ldrsh r0, [r2, r5] - cmp r0, #0 - bne _080DD338 - ldr r0, [r4] - ldr r2, [r0] - ldrb r1, [r2, #6] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #6] - adds r0, r3, #0 - bl DestroyTask -_080DD338: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080DD340: .4byte gUnknown_2039BD4 -_080DD344: .4byte gUnknown_20205AC -_080DD348: .4byte gUnknown_3005B60 - thumb_func_end Task_MoveApplauseMeterOnscreen - - thumb_func_start TryMoveApplauseMeterOffscreen -TryMoveApplauseMeterOffscreen: @ 0x080DD34C - push {r4, r5, lr} - ldr r5, _080DD378 - ldr r4, _080DD37C - ldr r0, [r4] - ldr r2, [r0] - adds r0, r2, #0 - adds r0, #0x58 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - bge _080DD380 - ldrb r1, [r2, #6] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - b _080DD3A4 - .align 2, 0 -_080DD378: .4byte gUnknown_20205AC -_080DD37C: .4byte gUnknown_2039BD4 -_080DD380: - ldr r0, _080DD3AC - movs r1, #0xa - bl CreateTask - ldr r2, [r4] - ldr r0, [r2] - adds r0, #0x58 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0 - strh r1, [r0, #0x24] - ldr r2, [r2] - ldrb r0, [r2, #6] - movs r1, #0x40 - orrs r0, r1 -_080DD3A4: - strb r0, [r2, #6] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080DD3AC: .4byte Task_MoveApplauseMeterOffscreen - thumb_func_end TryMoveApplauseMeterOffscreen - - thumb_func_start Task_MoveApplauseMeterOffscreen -Task_MoveApplauseMeterOffscreen: @ 0x080DD3B0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r4, r0, #0 - ldr r5, _080DD430 - ldr r0, [r5] - ldr r0, [r0] - adds r0, #0x58 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080DD434 - adds r3, r0, r1 - ldr r0, _080DD438 - lsls r2, r4, #2 - adds r2, r2, r4 - lsls r2, r2, #3 - adds r2, r2, r0 - movs r1, #0xd0 - lsls r1, r1, #3 - adds r0, r1, #0 - ldrh r1, [r2, #0x1c] - adds r0, r0, r1 - strh r0, [r2, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - ldrh r1, [r3, #0x24] - subs r1, r1, r0 - strh r1, [r3, #0x24] - ldrb r0, [r2, #0x1c] - strh r0, [r2, #0x1c] - movs r2, #0x24 - ldrsh r0, [r3, r2] - movs r1, #0x46 - rsbs r1, r1, #0 - cmp r0, r1 - bge _080DD400 - ldr r0, _080DD43C - strh r0, [r3, #0x24] -_080DD400: - movs r2, #0x24 - ldrsh r0, [r3, r2] - cmp r0, r1 - bne _080DD428 - adds r2, r3, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r5] - ldr r2, [r0] - ldrb r1, [r2, #6] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #6] - adds r0, r4, #0 - bl DestroyTask -_080DD428: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080DD430: .4byte gUnknown_2039BD4 -_080DD434: .4byte gUnknown_20205AC -_080DD438: .4byte gUnknown_3005B60 -_080DD43C: .4byte 0x0000FFBA - thumb_func_end Task_MoveApplauseMeterOffscreen - - thumb_func_start ShowAndUpdateApplauseMeter -ShowAndUpdateApplauseMeter: @ 0x080DD440 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _080DD478 - movs r1, #5 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080DD47C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - strh r4, [r1, #8] - ldr r0, _080DD480 - ldr r0, [r0] - ldr r2, [r0] - ldrb r0, [r2, #6] - movs r1, #0x20 - orrs r0, r1 - strb r0, [r2, #6] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DD478: .4byte Task_ShowAndUpdateApplauseMeter -_080DD47C: .4byte gUnknown_3005B60 -_080DD480: .4byte gUnknown_2039BD4 - thumb_func_end ShowAndUpdateApplauseMeter - - thumb_func_start Task_ShowAndUpdateApplauseMeter -Task_ShowAndUpdateApplauseMeter: @ 0x080DD484 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _080DD4A8 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #0x1c - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _080DD4B8 - cmp r0, #1 - bgt _080DD4AC - cmp r0, #0 - beq _080DD4B2 - b _080DD500 - .align 2, 0 -_080DD4A8: .4byte gUnknown_3005B60 -_080DD4AC: - cmp r0, #2 - beq _080DD4D4 - b _080DD500 -_080DD4B2: - bl StartMoveApplauseMeterOnscreen - b _080DD4C8 -_080DD4B8: - ldr r0, _080DD4D0 - ldr r0, [r0] - ldr r0, [r0] - ldrb r1, [r0, #6] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _080DD500 -_080DD4C8: - ldrh r0, [r4, #0x1c] - adds r0, #1 - strh r0, [r4, #0x1c] - b _080DD500 - .align 2, 0 -_080DD4D0: .4byte gUnknown_2039BD4 -_080DD4D4: - ldrh r0, [r4, #0x1e] - adds r1, r0, #1 - strh r1, [r4, #0x1e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x14 - ble _080DD500 - movs r0, #0 - strh r0, [r4, #0x1e] - bl UpdateApplauseMeter - ldr r0, _080DD508 - ldr r0, [r0] - ldr r2, [r0] - ldrb r1, [r2, #6] - movs r0, #0x21 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #6] - adds r0, r5, #0 - bl DestroyTask -_080DD500: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080DD508: .4byte gUnknown_2039BD4 - thumb_func_end Task_ShowAndUpdateApplauseMeter - - thumb_func_start HideApplauseMeterNoAnim -HideApplauseMeterNoAnim: @ 0x080DD50C - ldr r3, _080DD540 - ldr r0, _080DD544 - ldr r2, [r0] - ldr r0, [r2] - adds r0, #0x58 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r1, #0 - strh r1, [r0, #0x24] - ldr r0, [r2] - adds r0, #0x58 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 -_080DD540: .4byte gUnknown_20205AC -_080DD544: .4byte gUnknown_2039BD4 - thumb_func_end HideApplauseMeterNoAnim - - thumb_func_start ShowApplauseMeterNoAnim -ShowApplauseMeterNoAnim: @ 0x080DD548 - ldr r2, _080DD568 - ldr r0, _080DD56C - ldr r0, [r0] - ldr r0, [r0] - adds r0, #0x58 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 -_080DD568: .4byte gUnknown_20205AC -_080DD56C: .4byte gUnknown_2039BD4 - thumb_func_end ShowApplauseMeterNoAnim - - thumb_func_start sub_080DD570 -sub_080DD570: @ 0x080DD570 - push {lr} - ldr r0, _080DD58C - movs r1, #0xf - bl CreateTask - ldr r0, _080DD590 - ldr r0, [r0] - ldr r2, [r0] - ldrb r0, [r2, #6] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #6] - pop {r0} - bx r0 - .align 2, 0 -_080DD58C: .4byte sub_080DD594 -_080DD590: .4byte gUnknown_2039BD4 - thumb_func_end sub_080DD570 - - thumb_func_start sub_080DD594 -sub_080DD594: @ 0x080DD594 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _080DD5D0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrh r0, [r4, #0x1c] - adds r1, r0, #1 - strh r1, [r4, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #6 - ble _080DD61E - movs r0, #0 - strh r0, [r4, #0x1c] - movs r1, #0x1e - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080DD5DC - ldr r0, _080DD5D4 - ldr r1, _080DD5D8 - movs r2, #0x80 - lsls r2, r2, #5 - movs r3, #1 - bl RequestDma3Copy - b _080DD5F0 - .align 2, 0 -_080DD5D0: .4byte gUnknown_3005B60 -_080DD5D4: .4byte gUnknown_2019000 -_080DD5D8: .4byte 0x06002000 -_080DD5DC: - ldr r0, _080DD624 - ldr r1, _080DD628 - movs r2, #0x80 - lsls r2, r2, #5 - movs r3, #1 - bl RequestDma3Copy - ldrh r0, [r4, #0x20] - adds r0, #1 - strh r0, [r4, #0x20] -_080DD5F0: - ldr r1, _080DD62C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #0x1e] - movs r2, #1 - eors r1, r2 - strh r1, [r0, #0x1e] - movs r1, #0x20 - ldrsh r0, [r0, r1] - cmp r0, #9 - bne _080DD61E - ldr r0, _080DD630 - ldr r0, [r0] - ldr r2, [r0] - ldrb r1, [r2, #6] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #6] - adds r0, r5, #0 - bl DestroyTask -_080DD61E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080DD624: .4byte gUnknown_2018000 -_080DD628: .4byte 0x06002000 -_080DD62C: .4byte gUnknown_3005B60 -_080DD630: .4byte gUnknown_2039BD4 - thumb_func_end sub_080DD594 - - thumb_func_start sub_080DD634 -sub_080DD634: @ 0x080DD634 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - ldr r0, _080DD674 - movs r1, #0xa - bl CreateTask - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r4, r4, #0x18 - cmp r4, #0 - ble _080DD69C - ldr r7, _080DD678 - lsls r0, r5, #0x18 - adds r4, r0, #0 - cmp r4, #0 - ble _080DD680 - movs r5, #0 - ldr r2, _080DD67C - ldr r0, [r2] - ldr r0, [r0] - movs r1, #0x13 - ldrsb r1, [r0, r1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - b _080DD6B2 - .align 2, 0 -_080DD674: .4byte sub_080DD6E4 -_080DD678: .4byte 0x0000237E -_080DD67C: .4byte gUnknown_2039BD4 -_080DD680: - ldr r2, _080DD698 - ldr r0, [r2] - ldr r0, [r0] - movs r1, #0x13 - ldrsb r1, [r0, r1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r3, #0 - b _080DD6B2 - .align 2, 0 -_080DD698: .4byte gUnknown_2039BD4 -_080DD69C: - movs r7, #0 - lsls r0, r5, #0x18 - adds r4, r0, #0 - cmp r4, #0 - ble _080DD6AC - movs r5, #0 - movs r3, #0xc - b _080DD6B0 -_080DD6AC: - movs r5, #0xc - movs r3, #0 -_080DD6B0: - ldr r2, _080DD6DC -_080DD6B2: - ldr r1, _080DD6E0 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r7, [r0, #8] - strh r5, [r0, #0xa] - asrs r1, r4, #0x18 - strh r1, [r0, #0xc] - strh r3, [r0, #0xe] - ldr r0, [r2] - ldr r2, [r0] - ldrb r1, [r2, #7] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #7] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DD6DC: .4byte gUnknown_2039BD4 -_080DD6E0: .4byte gUnknown_3005B60 - thumb_func_end sub_080DD634 - - thumb_func_start sub_080DD6E4 -sub_080DD6E4: @ 0x080DD6E4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r2, _080DD714 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r3, r0, r2 - ldrh r0, [r3, #0x1c] - adds r1, r0, #1 - strh r1, [r3, #0x1c] - lsls r0, r0, #0x10 - cmp r0, #0 - blt _080DD760 - movs r0, #0 - strh r0, [r3, #0x1c] - movs r1, #0xc - ldrsh r0, [r3, r1] - cmp r0, #0 - ble _080DD718 - ldrh r0, [r3, #0xa] - adds r0, #1 - b _080DD71C - .align 2, 0 -_080DD714: .4byte gUnknown_3005B60 -_080DD718: - ldrh r0, [r3, #0xa] - subs r0, #1 -_080DD71C: - strh r0, [r3, #0xa] - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - adds r4, r4, r2 - ldrb r2, [r4, #0xa] - ldrh r3, [r4, #8] - movs r0, #0x11 - movs r1, #1 - bl BlendPalette - ldrb r2, [r4, #0xa] - ldrh r3, [r4, #8] - movs r0, #0x1a - movs r1, #1 - bl BlendPalette - movs r2, #0xa - ldrsh r1, [r4, r2] - movs r2, #0xe - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080DD760 - adds r0, r5, #0 - bl DestroyTask - ldr r0, _080DD768 - ldr r0, [r0] - ldr r2, [r0] - ldrb r1, [r2, #7] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #7] -_080DD760: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080DD768: .4byte gUnknown_2039BD4 - thumb_func_end sub_080DD6E4 - - thumb_func_start sub_080DD76C -sub_080DD76C: @ 0x080DD76C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - movs r5, #0 - ldr r0, _080DD808 - mov sb, r0 - mov r8, sb - ldr r6, _080DD80C - movs r4, #0 - movs r7, #0 -_080DD78A: - mov r1, r8 - ldr r0, [r1] - ldr r0, [r0, #4] - adds r0, r7, r0 - ldrb r1, [r0, #0x10] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0 - beq _080DD820 - mov r2, sl - cmp r2, #0 - beq _080DD820 - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - bl GetTurnOrderNumberGfx - mov r3, r8 - ldr r1, [r3] - ldr r1, [r1, #0x14] - adds r1, r4, r1 - ldrb r2, [r1, #1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrh r1, [r1, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x11 - ldr r2, _080DD810 - adds r1, r1, r2 - ldr r2, _080DD814 - bl CpuSet - mov r0, r8 - ldr r3, [r0] - ldr r0, [r3, #0x14] - adds r0, r4, r0 - ldrb r0, [r0, #1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldr r2, _080DD818 - ldr r0, _080DD81C - adds r0, r5, r0 - ldrb r0, [r0] - adds r0, r0, r2 - ldrb r0, [r0] - strh r0, [r1, #0x22] - ldr r0, [r3, #0x14] - adds r0, r4, r0 - ldrb r1, [r0, #1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x3e - ldrb r1, [r0] - movs r3, #5 - rsbs r3, r3, #0 - adds r2, r3, #0 - ands r1, r2 - b _080DD83A - .align 2, 0 -_080DD808: .4byte gUnknown_2039BD4 -_080DD80C: .4byte gUnknown_20205AC -_080DD810: .4byte 0x06010040 -_080DD814: .4byte 0x04000008 -_080DD818: .4byte gUnknown_85609D4 -_080DD81C: .4byte gUnknown_2039BC6 -_080DD820: - mov r1, sb - ldr r0, [r1] - ldr r0, [r0, #0x14] - adds r0, r4, r0 - ldrb r1, [r0, #1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 -_080DD83A: - strb r1, [r0] - adds r4, #4 - adds r7, #0x1c - adds r5, #1 - cmp r5, #3 - ble _080DD78A - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_080DD76C - - thumb_func_start GetTurnOrderNumberGfx -GetTurnOrderNumberGfx: @ 0x080DD854 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080DD87C - ldr r1, [r1] - ldr r2, [r1, #4] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r2, r1, r2 - ldrb r1, [r2, #0x10] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0x40 - bne _080DD884 - ldrb r0, [r2, #0x19] - lsls r0, r0, #5 - ldr r1, _080DD880 - adds r0, r0, r1 - b _080DD886 - .align 2, 0 -_080DD87C: .4byte gUnknown_2039BD4 -_080DD880: .4byte gUnknown_8D8E97C -_080DD884: - ldr r0, _080DD88C -_080DD886: - pop {r1} - bx r1 - .align 2, 0 -_080DD88C: .4byte gUnknown_8D8E9FC - thumb_func_end GetTurnOrderNumberGfx - - thumb_func_start sub_080DD890 -sub_080DD890: @ 0x080DD890 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - movs r7, #0 - movs r0, #2 - mov sl, r0 - movs r0, #1 - mov r8, r0 - movs r0, #0x11 - mov sb, r0 -_080DD8AA: - ldr r0, _080DD944 - ldr r0, [r0] - ldr r0, [r0, #8] - adds r0, #0xd - adds r0, r0, r7 - ldrb r0, [r0] - cmp r0, #0 - beq _080DD92E - lsls r0, r7, #0x18 - lsrs r0, r0, #0x18 - bl Contest_IsMonsTurnDisabled - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080DD92E - ldr r0, _080DD948 - adds r0, r7, r0 - ldrb r0, [r0] - lsls r5, r0, #2 - adds r5, r5, r0 - adds r6, r5, #2 - movs r0, #3 - bl sub_080DAEAC - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov r0, sl - str r0, [sp] - mov r0, r8 - str r0, [sp, #4] - mov r0, sb - str r0, [sp, #8] - mov r0, r8 - str r0, [sp, #0xc] - movs r0, #0 - adds r1, r4, #0 - movs r2, #0x14 - adds r3, r6, #0 - bl ContestBG_FillBoxWithIncrementingTile - adds r4, #0x10 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r5, #3 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - mov r0, sl - str r0, [sp] - mov r0, r8 - str r0, [sp, #4] - mov r0, sb - str r0, [sp, #8] - mov r0, r8 - str r0, [sp, #0xc] - movs r0, #0 - adds r1, r4, #0 - movs r2, #0x14 - adds r3, r5, #0 - bl ContestBG_FillBoxWithIncrementingTile - movs r0, #0x63 - bl sub_080A306C -_080DD92E: - adds r7, #1 - cmp r7, #3 - ble _080DD8AA - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DD944: .4byte gUnknown_2039BD4 -_080DD948: .4byte gUnknown_2039BC6 - thumb_func_end sub_080DD890 - - thumb_func_start sub_080DD94C -sub_080DD94C: @ 0x080DD94C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080DD97C - ldr r1, [r1] - ldr r2, [r1, #4] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r2, r1, r2 - ldrb r1, [r2, #0x15] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - bne _080DD976 - ldrb r1, [r2, #0xc] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _080DD980 -_080DD976: - movs r0, #0 - b _080DD982 - .align 2, 0 -_080DD97C: .4byte gUnknown_2039BD4 -_080DD980: - movs r0, #1 -_080DD982: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080DD94C - - thumb_func_start sub_080DD988 -sub_080DD988: @ 0x080DD988 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - movs r0, #0xa - bl GetGpuReg - mov r1, sp - strh r0, [r1] - mov r2, sp - ldrb r1, [r2] - movs r4, #4 - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r1 - strb r0, [r2] - ldrb r1, [r2, #1] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #1] - ldrb r1, [r2, #1] - movs r0, #0x21 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #1] - ldrb r1, [r2] - movs r0, #0xd - rsbs r0, r0, #0 - mov r8, r0 - ands r0, r1 - strb r0, [r2] - mov r0, sp - ldrh r1, [r0] - movs r0, #0xa - bl SetGpuReg - movs r0, #8 - bl GetGpuReg - mov r6, sp - adds r6, #2 - strh r0, [r6] - movs r0, #0xc - bl GetGpuReg - add r5, sp, #4 - strh r0, [r5] - ldrb r1, [r6] - adds r0, r4, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r6] - ldrb r0, [r5] - ands r4, r0 - orrs r4, r1 - strb r4, [r5] - ldrh r1, [r6] - movs r0, #8 - bl SetGpuReg - ldrh r1, [r5] - movs r0, #0xc - bl SetGpuReg - ldr r1, _080DDA9C - movs r0, #0xf0 - strh r0, [r1] - ldr r4, _080DDAA0 - movs r0, #0xa0 - strh r0, [r4] - movs r0, #0x14 - movs r1, #0xf0 - bl SetGpuReg - ldrh r1, [r4] - movs r0, #0x16 - bl SetGpuReg - movs r0, #0 - str r0, [sp, #8] - add r0, sp, #8 - ldr r4, _080DDAA4 - ldr r1, [r4] - ldr r1, [r1, #0x28] - ldr r2, _080DDAA8 - bl CpuSet - ldr r1, _080DDAAC - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - movs r0, #1 - bl Contest_SetBgCopyFlags - movs r5, #0 - ldr r7, _080DDAB0 - movs r6, #4 -_080DDA54: - ldr r0, [r4] - ldr r0, [r0, #0x14] - lsls r3, r5, #2 - adds r0, r3, r0 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r7 - ldrb r2, [r1, #5] - mov r0, r8 - ands r0, r2 - orrs r0, r6 - strb r0, [r1, #5] - ldr r0, [r4] - ldr r0, [r0, #0x14] - adds r3, r3, r0 - ldrb r0, [r3, #1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r7 - ldrb r2, [r1, #5] - mov r0, r8 - ands r0, r2 - orrs r0, r6 - strb r0, [r1, #5] - adds r5, #1 - cmp r5, #3 - ble _080DDA54 - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DDA9C: .4byte gUnknown_2022ACC -_080DDAA0: .4byte gUnknown_2022ACE -_080DDAA4: .4byte gUnknown_2039BD4 -_080DDAA8: .4byte 0x05000400 -_080DDAAC: .4byte gUnknown_8C17988 -_080DDAB0: .4byte gUnknown_20205AC - thumb_func_end sub_080DD988 - - thumb_func_start sub_080DDAB4 -sub_080DDAB4: @ 0x080DDAB4 - push {r4, r5, r6, r7, lr} - sub sp, #8 - ldr r1, _080DDB70 - movs r2, #0x80 - lsls r2, r2, #6 - movs r0, #0 - movs r3, #1 - bl RequestDma3Fill - movs r5, #0 - str r5, [sp] - ldr r6, _080DDB74 - ldr r0, [r6] - ldr r1, [r0, #0x28] - ldr r2, _080DDB78 - mov r0, sp - bl CpuSet - movs r0, #1 - bl Contest_SetBgCopyFlags - movs r0, #0xa - bl GetGpuReg - add r3, sp, #4 - strh r0, [r3] - ldrb r1, [r3] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r3] - mov r1, sp - adds r1, #5 - ldrb r2, [r1] - movs r0, #0x3f - ands r0, r2 - strb r0, [r1] - ldrb r2, [r1] - movs r0, #0x21 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldrb r1, [r3] - movs r4, #0xd - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r3] - ldrh r1, [r3] - movs r0, #0xa - bl SetGpuReg - ldr r0, _080DDB7C - strh r5, [r0] - ldr r0, _080DDB80 - strh r5, [r0] - ldr r7, _080DDB84 -_080DDB2E: - ldr r0, [r6] - ldr r0, [r0, #0x14] - lsls r3, r5, #2 - adds r0, r3, r0 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r7 - ldrb r2, [r1, #5] - adds r0, r4, #0 - ands r0, r2 - strb r0, [r1, #5] - ldr r0, [r6] - ldr r0, [r0, #0x14] - adds r3, r3, r0 - ldrb r0, [r3, #1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r7 - ldrb r2, [r1, #5] - adds r0, r4, #0 - ands r0, r2 - strb r0, [r1, #5] - adds r5, #1 - cmp r5, #3 - ble _080DDB2E - add sp, #8 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DDB70: .4byte 0x06008000 -_080DDB74: .4byte gUnknown_2039BD4 -_080DDB78: .4byte 0x05000400 -_080DDB7C: .4byte gUnknown_2022ACC -_080DDB80: .4byte gUnknown_2022ACE -_080DDB84: .4byte gUnknown_20205AC - thumb_func_end sub_080DDAB4 - - thumb_func_start sub_080DDB88 -sub_080DDB88: @ 0x080DDB88 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _080DDBB8 - movs r0, #0 - strh r0, [r1] - ldr r1, _080DDBBC - movs r0, #0xa0 - strh r0, [r1] - movs r0, #0x62 - movs r1, #0 - bl PlaySE12WithPanning - ldr r1, _080DDBC0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080DDBC4 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DDBB8: .4byte gUnknown_2022ACC -_080DDBBC: .4byte gUnknown_2022ACE -_080DDBC0: .4byte gUnknown_3005B60 -_080DDBC4: .4byte sub_080DDBC8 - thumb_func_end sub_080DDB88 - - thumb_func_start sub_080DDBC8 -sub_080DDBC8: @ 0x080DDBC8 - push {lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r1, _080DDC00 - ldrh r0, [r1] - subs r0, #7 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _080DDBE0 - movs r0, #0 - strh r0, [r1] -_080DDBE0: - ldrh r2, [r1] - cmp r2, #0 - bne _080DDBFA - ldr r0, _080DDC04 - lsls r1, r3, #2 - adds r1, r1, r3 - lsls r1, r1, #3 - adds r1, r1, r0 - strh r2, [r1, #8] - strh r2, [r1, #0xa] - strh r2, [r1, #0xc] - ldr r0, _080DDC08 - str r0, [r1] -_080DDBFA: - pop {r0} - bx r0 - .align 2, 0 -_080DDC00: .4byte gUnknown_2022ACE -_080DDC04: .4byte gUnknown_3005B60 -_080DDC08: .4byte sub_080DDC0C - thumb_func_end sub_080DDBC8 - - thumb_func_start sub_080DDC0C -sub_080DDC0C: @ 0x080DDC0C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _080DDC30 - lsls r3, r4, #2 - adds r0, r3, r4 - lsls r0, r0, #3 - adds r5, r0, r1 - movs r0, #8 - ldrsh r1, [r5, r0] - cmp r1, #1 - beq _080DDC90 - cmp r1, #1 - bgt _080DDC34 - cmp r1, #0 - beq _080DDC3E - b _080DDD18 - .align 2, 0 -_080DDC30: .4byte gUnknown_3005B60 -_080DDC34: - cmp r1, #2 - beq _080DDCEE - cmp r1, #3 - beq _080DDD08 - b _080DDD18 -_080DDC3E: - movs r2, #0 - adds r6, r3, #0 - ldr r5, _080DDC84 - ldr r3, _080DDC88 -_080DDC46: - ldr r0, [r5] - ldr r1, [r0] - adds r1, #0x14 - adds r1, r1, r2 - adds r0, r2, r3 - ldrb r0, [r0] - strb r0, [r1] - adds r2, #1 - cmp r2, #3 - ble _080DDC46 - bl FillContestantWindowBgs - bl sub_080DBFC8 - bl sub_080DAE00 - bl DrawContestantWindows - movs r0, #1 - bl sub_080DD76C - bl sub_080DBBB0 - ldr r0, _080DDC8C - adds r1, r6, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #1 - strh r0, [r1, #8] - b _080DDD18 - .align 2, 0 -_080DDC84: .4byte gUnknown_2039BD4 -_080DDC88: .4byte gUnknown_2039BC6 -_080DDC8C: .4byte gUnknown_3005B60 -_080DDC90: - ldr r0, _080DDCD8 - ldrb r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _080DDCE8 - ldr r0, _080DDCDC - ldr r0, [r0] - ldr r2, [r0] - ldrb r0, [r2, #7] - movs r1, #4 - orrs r0, r1 - strb r0, [r2, #7] - bl sub_080DA094 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080DDCB6 - bl sub_080DB204 -_080DDCB6: - ldr r4, _080DDCE0 - adds r0, r4, #0 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080DDCE4 - adds r1, r4, #0 - bl SetTaskFuncWithFollowupFunc - bl ContestPrintLinkStandby - movs r0, #2 - strh r0, [r5, #8] - b _080DDD18 - .align 2, 0 -_080DDCD8: .4byte gUnknown_2039BCA -_080DDCDC: .4byte gUnknown_2039BD4 -_080DDCE0: .4byte sub_080FD4DC -_080DDCE4: .4byte sub_080D9900 -_080DDCE8: - bl sub_080DB204 - b _080DDCFE -_080DDCEE: - ldr r0, _080DDD04 - ldr r0, [r0] - ldr r0, [r0] - ldrb r1, [r0, #7] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _080DDD18 -_080DDCFE: - movs r0, #3 - strh r0, [r5, #8] - b _080DDD18 - .align 2, 0 -_080DDD04: .4byte gUnknown_2039BD4 -_080DDD08: - bl sub_080DAFE8 - bl SwapMoveDescAndContestTilemaps - movs r0, #0 - strh r0, [r5, #8] - ldr r0, _080DDD20 - str r0, [r5] -_080DDD18: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080DDD20: .4byte sub_080DDD58 - thumb_func_end sub_080DDC0C - - thumb_func_start sub_080DDD24 -sub_080DDD24: @ 0x080DDD24 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _080DDD4C - ldrh r0, [r1] - adds r0, #7 - strh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xa0 - ble _080DDD48 - ldr r0, _080DDD50 - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080DDD54 - str r0, [r1] -_080DDD48: - pop {r0} - bx r0 - .align 2, 0 -_080DDD4C: .4byte gUnknown_2022ACE -_080DDD50: .4byte gUnknown_3005B60 -_080DDD54: .4byte sub_080D9CE4 - thumb_func_end sub_080DDD24 - - thumb_func_start sub_080DDD58 -sub_080DDD58: @ 0x080DDD58 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080DDD78 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldrh r2, [r1, #0xc] - movs r3, #0xc - ldrsh r0, [r1, r3] - cmp r0, #9 - bgt _080DDD7C - adds r0, r2, #1 - strh r0, [r1, #0xc] - b _080DDDB8 - .align 2, 0 -_080DDD78: .4byte gUnknown_3005B60 -_080DDD7C: - ldrh r3, [r1, #0xa] - movs r4, #0xa - ldrsh r0, [r1, r4] - cmp r0, #0 - bne _080DDD9A - ldrh r2, [r1, #8] - movs r4, #8 - ldrsh r0, [r1, r4] - cmp r0, #0x10 - bne _080DDD96 - adds r0, r3, #1 - strh r0, [r1, #0xa] - b _080DDDB8 -_080DDD96: - adds r0, r2, #1 - b _080DDDB6 -_080DDD9A: - ldrh r0, [r1, #8] - movs r3, #8 - ldrsh r2, [r1, r3] - cmp r2, #0 - bne _080DDDB4 - strh r2, [r1, #0xa] - strh r2, [r1, #0xc] - ldr r0, _080DDDB0 - str r0, [r1] - b _080DDDB8 - .align 2, 0 -_080DDDB0: .4byte sub_080DDDC0 -_080DDDB4: - subs r0, #1 -_080DDDB6: - strh r0, [r1, #8] -_080DDDB8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080DDD58 - - thumb_func_start sub_080DDDC0 -sub_080DDDC0: @ 0x080DDDC0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080DDDE0 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 - ldrh r1, [r4, #0xc] - movs r2, #0xc - ldrsh r0, [r4, r2] - cmp r0, #9 - bgt _080DDDE4 - adds r0, r1, #1 - strh r0, [r4, #0xc] - b _080DDDF4 - .align 2, 0 -_080DDDE0: .4byte gUnknown_3005B60 -_080DDDE4: - movs r0, #0 - strh r0, [r4, #0xc] - movs r0, #0x61 - movs r1, #0 - bl PlaySE12WithPanning - ldr r0, _080DDDFC - str r0, [r4] -_080DDDF4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DDDFC: .4byte sub_080DDD24 - thumb_func_end sub_080DDDC0 - - thumb_func_start sub_080DDE00 -sub_080DDE00: @ 0x080DDE00 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r7, #0 - ldr r6, _080DDEE8 - ldr r5, _080DDEEC -_080DDE12: - bl sub_080080C8 - ldr r1, [r5] - ldr r1, [r1, #0x14] - lsls r4, r7, #2 - adds r1, r4, r1 - ldrb r1, [r1] - lsls r3, r1, #4 - adds r3, r3, r1 - lsls r3, r3, #2 - adds r3, r3, r6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x1f - ands r0, r1 - lsls r0, r0, #1 - ldrb r1, [r3, #3] - movs r2, #0x3f - rsbs r2, r2, #0 - mov ip, r2 - mov r2, ip - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #3] - ldr r0, [r5] - ldr r0, [r0, #0x14] - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r2, [r0, #1] - movs r3, #4 - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r2, r1 - movs r1, #1 - orrs r2, r1 - strb r2, [r0, #1] - ldr r0, [r5] - ldr r0, [r0, #0x14] - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - mov r1, r8 - bl StartSpriteAffineAnim - mov r0, r8 - cmp r0, #2 - bne _080DDEB0 - ldr r0, [r5] - ldr r0, [r0, #0x14] - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - bl AnimateSprite - ldr r0, [r5] - ldr r0, [r0, #0x14] - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x3e - ldrb r1, [r0] - movs r3, #5 - rsbs r3, r3, #0 - adds r2, r3, #0 - ands r1, r2 - strb r1, [r0] -_080DDEB0: - adds r7, #1 - cmp r7, #3 - ble _080DDE12 - ldr r0, _080DDEF0 - movs r1, #5 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080DDEF4 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - mov r0, r8 - strh r0, [r1, #8] - ldr r0, _080DDEEC - ldr r0, [r0] - ldr r2, [r0] - ldrb r0, [r2, #7] - movs r1, #2 - orrs r0, r1 - strb r0, [r2, #7] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DDEE8: .4byte gUnknown_20205AC -_080DDEEC: .4byte gUnknown_2039BD4 -_080DDEF0: .4byte sub_080DDEF8 -_080DDEF4: .4byte gUnknown_3005B60 - thumb_func_end sub_080DDE00 - - thumb_func_start sub_080DDEF8 -sub_080DDEF8: @ 0x080DDEF8 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r2, _080DDF8C - ldr r3, _080DDF90 - ldr r0, [r3] - ldr r0, [r0, #0x14] - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3f - ldrb r0, [r0] - lsls r0, r0, #0x1a - cmp r0, #0 - bge _080DDF86 - ldr r0, _080DDF94 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrb r0, [r1, #8] - cmp r0, #1 - bne _080DDF50 - movs r4, #0 - adds r5, r2, #0 - movs r2, #4 -_080DDF30: - ldr r0, [r3] - ldr r1, [r0, #0x14] - lsls r0, r4, #2 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - adds r4, #1 - cmp r4, #3 - ble _080DDF30 -_080DDF50: - movs r4, #0 -_080DDF52: - ldr r5, _080DDF90 - ldr r0, [r5] - ldr r1, [r0, #0x14] - lsls r0, r4, #2 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080DDF8C - adds r0, r0, r1 - bl FreeSpriteOamMatrix - adds r4, #1 - cmp r4, #3 - ble _080DDF52 - ldr r0, [r5] - ldr r2, [r0] - ldrb r1, [r2, #7] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #7] - adds r0, r6, #0 - bl DestroyTask -_080DDF86: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080DDF8C: .4byte gUnknown_20205AC -_080DDF90: .4byte gUnknown_2039BD4 -_080DDF94: .4byte gUnknown_3005B60 - thumb_func_end sub_080DDEF8 - - thumb_func_start SanitizeMove -SanitizeMove: @ 0x080DDF98 - push {lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - movs r0, #0xb1 - lsls r0, r0, #1 - cmp r1, r0 - bls _080DDFA8 - movs r1, #1 -_080DDFA8: - adds r0, r1, #0 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end SanitizeMove - - thumb_func_start SanitizeSpecies -SanitizeSpecies: @ 0x080DDFB0 - push {lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r0, _080DDFC4 - cmp r1, r0 - bls _080DDFBE - movs r1, #0 -_080DDFBE: - adds r0, r1, #0 - pop {r1} - bx r1 - .align 2, 0 -_080DDFC4: .4byte 0x0000019B - thumb_func_end SanitizeSpecies - - thumb_func_start sub_080DDFC8 -sub_080DDFC8: @ 0x080DDFC8 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r4, _080DE02C - ldr r0, [r4] - ldr r1, [r0, #4] - lsls r0, r7, #3 - subs r0, r0, r7 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0, #6] - bl SanitizeMove - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r1, _080DE030 - lsls r0, r7, #6 - adds r0, r0, r1 - ldrh r0, [r0] - bl SanitizeSpecies - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r0, [r4] - ldr r0, [r0, #0x18] - movs r1, #0 - movs r2, #0x14 - bl memset - bl ClearBattleAnimationVars - ldr r1, _080DE034 - movs r2, #0 - adds r0, r1, #3 -_080DE00C: - strb r2, [r0] - subs r0, #1 - cmp r0, r1 - bge _080DE00C - cmp r5, #0x90 - beq _080DE084 - cmp r5, #0x90 - bgt _080DE042 - cmp r5, #0x4c - beq _080DE0DC - cmp r5, #0x4c - bgt _080DE038 - cmp r5, #0xd - beq _080DE0DC - b _080DE106 - .align 2, 0 -_080DE02C: .4byte gUnknown_2039BD4 -_080DE030: .4byte gUnknown_2039AA0 -_080DE034: .4byte gUnknown_2024188 -_080DE038: - cmp r5, #0x82 - beq _080DE0DC - cmp r5, #0x8f - beq _080DE0DC - b _080DE106 -_080DE042: - cmp r5, #0xd8 - beq _080DE0C4 - cmp r5, #0xd8 - bgt _080DE050 - cmp r5, #0xae - beq _080DE05E - b _080DE106 -_080DE050: - cmp r5, #0xda - beq _080DE0D0 - movs r0, #0x88 - lsls r0, r0, #1 - cmp r5, r0 - beq _080DE084 - b _080DE106 -_080DE05E: - ldr r0, _080DE07C - lsls r1, r6, #3 - subs r1, r1, r6 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #6] - cmp r0, #7 - beq _080DE074 - ldrb r0, [r1, #7] - cmp r0, #7 - bne _080DE100 -_080DE074: - ldr r1, _080DE080 - movs r0, #0 - b _080DE104 - .align 2, 0 -_080DE07C: .4byte gUnknown_82F0D54 -_080DE080: .4byte gUnknown_20380D2 -_080DE084: - ldr r6, _080DE0BC - ldr r0, [r6] - ldr r1, [r0, #4] - lsls r0, r7, #3 - subs r0, r0, r7 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r4, [r0, #0x1b] - ldr r5, _080DE0C0 - lsls r4, r4, #6 - adds r0, r4, r5 - ldrh r0, [r0] - bl SanitizeSpecies - ldr r2, [r6] - ldr r1, [r2, #0x18] - strh r0, [r1, #2] - ldr r2, [r2, #0x18] - adds r5, #0x38 - adds r4, r4, r5 - ldr r0, [r4] - str r0, [r2, #0x10] - ldrb r0, [r2, #4] - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #4] - b _080DE106 - .align 2, 0 -_080DE0BC: .4byte gUnknown_2039BD4 -_080DE0C0: .4byte gUnknown_2039AA0 -_080DE0C4: - ldr r1, _080DE0CC - movs r0, #0xff - b _080DE104 - .align 2, 0 -_080DE0CC: .4byte gUnknown_20380BA -_080DE0D0: - ldr r1, _080DE0D8 - movs r0, #0 - b _080DE104 - .align 2, 0 -_080DE0D8: .4byte gUnknown_20380BA -_080DE0DC: - ldr r0, _080DE0F8 - ldr r0, [r0] - ldr r0, [r0] - adds r2, r0, #0 - adds r2, #0x5a - ldrb r1, [r2] - cmp r1, #0 - bne _080DE100 - movs r0, #2 - strb r0, [r2] - ldr r0, _080DE0FC - strb r1, [r0] - b _080DE106 - .align 2, 0 -_080DE0F8: .4byte gUnknown_2039BD4 -_080DE0FC: .4byte gUnknown_20380D2 -_080DE100: - ldr r1, _080DE110 - movs r0, #1 -_080DE104: - strb r0, [r1] -_080DE106: - bl sub_080DE1C0 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DE110: .4byte gUnknown_20380D2 - thumb_func_end sub_080DDFC8 - - thumb_func_start sub_080DE114 -sub_080DE114: @ 0x080DE114 - push {r4, lr} - ldr r4, _080DE13C - ldr r0, [r4] - ldr r0, [r0, #0x18] - movs r1, #0 - movs r2, #0x14 - bl memset - ldr r0, [r4] - ldr r0, [r0] - adds r1, r0, #0 - adds r1, #0x5a - ldrb r0, [r1] - cmp r0, #0 - beq _080DE136 - subs r0, #1 - strb r0, [r1] -_080DE136: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DE13C: .4byte gUnknown_2039BD4 - thumb_func_end sub_080DE114 - - thumb_func_start sub_080DE140 -sub_080DE140: @ 0x080DE140 - push {r4, r5, r6, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r6, _080DE17C - ldr r0, [r6] - ldr r0, [r0, #0x18] - strb r4, [r0, #5] - ldr r5, _080DE180 - lsls r4, r4, #6 - adds r0, r4, r5 - ldrh r0, [r0] - bl SanitizeSpecies - ldr r2, [r6] - ldr r1, [r2, #0x18] - strh r0, [r1] - ldr r1, [r2, #0x18] - adds r0, r5, #0 - adds r0, #0x38 - adds r0, r4, r0 - ldr r0, [r0] - str r0, [r1, #8] - adds r5, #0x3c - adds r4, r4, r5 - ldr r0, [r4] - str r0, [r1, #0xc] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080DE17C: .4byte gUnknown_2039BD4 -_080DE180: .4byte gUnknown_2039AA0 - thumb_func_end sub_080DE140 - - thumb_func_start sub_080DE184 -sub_080DE184: @ 0x080DE184 - push {lr} - ldr r0, _080DE1B0 - bl CreateInvisibleSpriteWithCallback - ldr r1, _080DE1B4 - strb r0, [r1, #3] - ldr r0, _080DE1B8 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080DE1BC - adds r0, r0, r1 - bl InitSpriteAffineAnim - bl sub_080DE1C0 - pop {r0} - bx r0 - .align 2, 0 -_080DE1B0: .4byte sub_08007140 -_080DE1B4: .4byte gUnknown_2023E88 -_080DE1B8: .4byte gUnknown_2023EB0 -_080DE1BC: .4byte gUnknown_20205AC - thumb_func_end sub_080DE184 - - thumb_func_start sub_080DE1C0 -sub_080DE1C0: @ 0x080DE1C0 - push {r4, lr} - ldr r0, _080DE204 - ldrb r0, [r0, #3] - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _080DE208 - adds r4, r4, r0 - movs r0, #0 - strh r0, [r4, #0x24] - strh r0, [r4, #0x26] - movs r0, #3 - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x20] - movs r0, #3 - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x22] - adds r4, #0x3e - ldrb r0, [r4] - movs r1, #4 - orrs r0, r1 - strb r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DE204: .4byte gUnknown_2023E88 -_080DE208: .4byte gUnknown_20205AC - thumb_func_end sub_080DE1C0 - - thumb_func_start SelectContestMoveBankTarget -SelectContestMoveBankTarget: @ 0x080DE20C - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r2, _080DE22C - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r0, [r1, #6] - cmp r0, #0x20 - bhi _080DE2C4 - lsls r0, r0, #2 - ldr r1, _080DE230 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080DE22C: .4byte gUnknown_82ED220 -_080DE230: .4byte _080DE234 -_080DE234: @ jump table - .4byte _080DE2C4 @ case 0 - .4byte _080DE2C4 @ case 1 - .4byte _080DE2B8 @ case 2 - .4byte _080DE2C4 @ case 3 - .4byte _080DE2C4 @ case 4 - .4byte _080DE2C4 @ case 5 - .4byte _080DE2C4 @ case 6 - .4byte _080DE2C4 @ case 7 - .4byte _080DE2C4 @ case 8 - .4byte _080DE2C4 @ case 9 - .4byte _080DE2C4 @ case 10 - .4byte _080DE2C4 @ case 11 - .4byte _080DE2C4 @ case 12 - .4byte _080DE2C4 @ case 13 - .4byte _080DE2C4 @ case 14 - .4byte _080DE2C4 @ case 15 - .4byte _080DE2B8 @ case 16 - .4byte _080DE2C4 @ case 17 - .4byte _080DE2C4 @ case 18 - .4byte _080DE2C4 @ case 19 - .4byte _080DE2C4 @ case 20 - .4byte _080DE2C4 @ case 21 - .4byte _080DE2C4 @ case 22 - .4byte _080DE2C4 @ case 23 - .4byte _080DE2C4 @ case 24 - .4byte _080DE2C4 @ case 25 - .4byte _080DE2C4 @ case 26 - .4byte _080DE2C4 @ case 27 - .4byte _080DE2C4 @ case 28 - .4byte _080DE2C4 @ case 29 - .4byte _080DE2C4 @ case 30 - .4byte _080DE2C4 @ case 31 - .4byte _080DE2C4 @ case 32 -_080DE2B8: - ldr r1, _080DE2C0 - movs r0, #2 - b _080DE2C8 - .align 2, 0 -_080DE2C0: .4byte gUnknown_2023EB0 -_080DE2C4: - ldr r1, _080DE2D0 - movs r0, #3 -_080DE2C8: - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080DE2D0: .4byte gUnknown_2023EB0 - thumb_func_end SelectContestMoveBankTarget - - thumb_func_start sub_080DE2D4 -sub_080DE2D4: @ 0x080DE2D4 - push {r4, lr} - sub sp, #0x10 - adds r4, r0, #0 - str r1, [sp] - mov r0, sp - movs r2, #0 - strb r4, [r0, #4] - mov r1, sp - movs r0, #1 - strb r0, [r1, #5] - mov r0, sp - strb r2, [r0, #6] - movs r1, #2 - strb r1, [r0, #7] - strb r2, [r0, #8] - strb r1, [r0, #9] - strb r2, [r0, #0xa] - strb r2, [r0, #0xb] - mov r3, sp - ldrb r2, [r3, #0xc] - subs r1, #0x12 - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3, #0xc] - mov r2, sp - movs r0, #0xf0 - strb r0, [r2, #0xc] - ldrb r0, [r2, #0xd] - ands r1, r0 - strb r1, [r2, #0xd] - mov r1, sp - movs r0, #0x80 - strb r0, [r1, #0xd] - mov r0, sp - movs r1, #0 - movs r2, #0 - bl AddTextPrinter - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl PutWindowTilemap - movs r0, #0 - bl Contest_SetBgCopyFlags - add sp, #0x10 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080DE2D4 - - thumb_func_start Contest_StartTextPrinter -Contest_StartTextPrinter: @ 0x080DE338 - push {r4, r5, lr} - sub sp, #0x10 - str r0, [sp] - mov r2, sp - movs r3, #0 - movs r0, #8 - strb r0, [r2, #4] - mov r0, sp - movs r5, #1 - strb r5, [r0, #5] - strb r3, [r0, #6] - movs r2, #2 - strb r2, [r0, #7] - strb r3, [r0, #8] - strb r2, [r0, #9] - strb r3, [r0, #0xa] - strb r3, [r0, #0xb] - mov r4, sp - ldrb r3, [r4, #0xc] - subs r2, #0x12 - adds r0, r2, #0 - ands r0, r3 - strb r0, [r4, #0xc] - mov r3, sp - movs r0, #0x10 - strb r0, [r3, #0xc] - ldrb r0, [r3, #0xd] - ands r2, r0 - strb r2, [r3, #0xd] - mov r2, sp - movs r0, #0x80 - strb r0, [r2, #0xd] - cmp r1, #0 - bne _080DE388 - mov r0, sp - movs r1, #0 - movs r2, #0 - bl AddTextPrinter - b _080DE3AC -_080DE388: - ldr r0, _080DE398 - ldrb r1, [r0] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _080DE39C - movs r1, #4 - b _080DE3A4 - .align 2, 0 -_080DE398: .4byte gUnknown_2039BCA -_080DE39C: - bl GetPlayerTextSpeedDelay - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 -_080DE3A4: - mov r0, sp - movs r2, #0 - bl AddTextPrinter -_080DE3AC: - movs r0, #8 - bl PutWindowTilemap - movs r0, #0 - bl Contest_SetBgCopyFlags - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end Contest_StartTextPrinter - - thumb_func_start ContestBG_FillBoxWithIncrementingTile -ContestBG_FillBoxWithIncrementingTile: @ 0x080DE3C0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x10 - mov r8, r0 - ldr r0, [sp, #0x28] - ldr r4, [sp, #0x2c] - ldr r5, [sp, #0x30] - ldr r6, [sp, #0x34] - mov r7, r8 - lsls r7, r7, #0x18 - lsrs r7, r7, #0x18 - mov r8, r7 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - str r0, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - lsls r6, r6, #0x10 - asrs r6, r6, #0x10 - str r6, [sp, #0xc] - mov r0, r8 - bl WriteSequenceToBgTilemapBuffer - mov r0, r8 - bl Contest_SetBgCopyFlags - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ContestBG_FillBoxWithIncrementingTile - - thumb_func_start ContestBG_FillBoxWithTile -ContestBG_FillBoxWithTile: @ 0x080DE418 - push {r4, r5, r6, lr} - sub sp, #0x10 - ldr r4, [sp, #0x20] - ldr r5, [sp, #0x24] - ldr r6, [sp, #0x28] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - str r4, [sp] - str r5, [sp, #4] - str r6, [sp, #8] - movs r4, #0 - str r4, [sp, #0xc] - bl ContestBG_FillBoxWithIncrementingTile - add sp, #0x10 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end ContestBG_FillBoxWithTile - - thumb_func_start GetPlayerTextSpeed -GetPlayerTextSpeed: @ 0x080DE454 - push {lr} - bl sub_08004630 - movs r0, #8 - bl sub_080046A8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - thumb_func_end GetPlayerTextSpeed - - thumb_func_start Contest_SetBgCopyFlags -Contest_SetBgCopyFlags: @ 0x080DE468 - ldr r2, _080DE478 - movs r1, #1 - lsls r1, r0 - ldrb r0, [r2] - orrs r1, r0 - strb r1, [r2] - bx lr - .align 2, 0 -_080DE478: .4byte gUnknown_2039BD8 - thumb_func_end Contest_SetBgCopyFlags - - thumb_func_start ResetContestLinkResults -ResetContestLinkResults: @ 0x080DE47C - push {r4, r5, r6, lr} - movs r0, #0 - ldr r6, _080DE4A8 - ldr r5, _080DE4AC - movs r4, #0 -_080DE486: - adds r3, r0, #1 - lsls r1, r0, #3 - movs r2, #3 -_080DE48C: - ldr r0, [r6] - adds r0, r0, r5 - adds r0, r0, r1 - strh r4, [r0] - adds r1, #2 - subs r2, #1 - cmp r2, #0 - bge _080DE48C - adds r0, r3, #0 - cmp r0, #4 - ble _080DE486 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080DE4A8: .4byte gUnknown_3005AF0 -_080DE4AC: .4byte 0x00000624 - thumb_func_end ResetContestLinkResults - - thumb_func_start sub_080DE4B0 -sub_080DE4B0: @ 0x080DE4B0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r5, #0 - ldr r1, _080DE500 - ldrb r0, [r1] - cmp r0, #0 - beq _080DE4EE -_080DE4E0: - adds r5, #1 - cmp r5, #2 - bgt _080DE4EE - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080DE4E0 -_080DE4EE: - ldr r0, [sp] - cmp r0, #0xff - bne _080DE508 - ldr r0, _080DE504 - ldrb r0, [r0] - cmp r5, r0 - beq _080DE508 - movs r0, #0 - b _080DE698 - .align 2, 0 -_080DE500: .4byte gUnknown_2039BC0 -_080DE504: .4byte gUnknown_2039BC5 -_080DE508: - ldr r0, _080DE51C - ldrh r0, [r0] - cmp r0, #4 - bhi _080DE554 - lsls r0, r0, #2 - ldr r1, _080DE520 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080DE51C: .4byte gUnknown_2039BCC -_080DE520: .4byte _080DE524 -_080DE524: @ jump table - .4byte _080DE554 @ case 0 - .4byte _080DE538 @ case 1 - .4byte _080DE53E @ case 2 - .4byte _080DE544 @ case 3 - .4byte _080DE54A @ case 4 -_080DE538: - mov r0, r8 - adds r0, #3 - b _080DE54E -_080DE53E: - mov r0, r8 - adds r0, #6 - b _080DE54E -_080DE544: - mov r0, r8 - adds r0, #9 - b _080DE54E -_080DE54A: - mov r0, r8 - adds r0, #0xc -_080DE54E: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 -_080DE554: - ldr r1, [sp] - cmp r1, #0xfe - bne _080DE55C - b _080DE658 -_080DE55C: - adds r0, r1, #0 - movs r1, #1 - bl sub_080DE6B0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldr r2, _080DE5E0 - mov sl, r2 - ldr r0, [r2] - mov r3, sb - lsls r7, r3, #5 - ldr r6, _080DE5E4 - adds r2, r0, r6 - adds r2, r2, r7 - ldr r4, _080DE5E8 - lsls r5, r5, #6 - adds r1, r4, #0 - adds r1, #0x38 - adds r1, r5, r1 - ldr r1, [r1] - str r1, [r2] - adds r1, r0, r7 - adds r2, r5, r4 - ldrh r2, [r2] - ldr r3, _080DE5EC - adds r1, r1, r3 - strh r2, [r1] - ldr r1, _080DE5F0 - adds r2, r0, r1 - adds r2, r2, r7 - adds r1, r4, #0 - adds r1, #0x3c - adds r1, r5, r1 - ldr r1, [r1] - str r1, [r2] - adds r6, r7, r6 - adds r0, r0, r6 - adds r0, #0xb - adds r1, r4, #2 - adds r1, r5, r1 - bl StringCopy - mov r2, sl - ldr r0, [r2] - adds r0, r0, r6 - adds r0, #0x16 - adds r4, #0xd - adds r5, r5, r4 - adds r1, r5, #0 - bl StringCopy - ldr r0, _080DE5F4 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080DE5FC - mov r3, sl - ldr r0, [r3] - adds r0, r0, r7 - ldr r1, _080DE5F8 - adds r0, r0, r1 - movs r1, #4 - b _080DE60A - .align 2, 0 -_080DE5E0: .4byte gUnknown_3005AEC -_080DE5E4: .4byte 0x00002E90 -_080DE5E8: .4byte gUnknown_2039AA0 -_080DE5EC: .4byte 0x00002E98 -_080DE5F0: .4byte 0x00002E94 -_080DE5F4: .4byte gUnknown_2039BCA -_080DE5F8: .4byte 0x00002EAE -_080DE5FC: - mov r2, sl - ldr r0, [r2] - adds r0, r0, r7 - ldr r1, _080DE628 - ldrh r1, [r1] - ldr r3, _080DE62C - adds r0, r0, r3 -_080DE60A: - strb r1, [r0] - ldr r0, [sp] - cmp r0, #0xff - beq _080DE63C - ldr r0, _080DE630 - ldr r0, [r0] - mov r2, sb - lsls r1, r2, #5 - adds r0, r0, r1 - ldr r1, _080DE634 - ldrh r1, [r1] - ldr r3, _080DE638 - adds r0, r0, r3 - strb r1, [r0] - b _080DE696 - .align 2, 0 -_080DE628: .4byte gUnknown_2039BCE -_080DE62C: .4byte 0x00002EAE -_080DE630: .4byte gUnknown_3005AEC -_080DE634: .4byte gUnknown_2039BCC -_080DE638: .4byte 0x00002E9A -_080DE63C: - ldr r0, _080DE650 - ldr r0, [r0] - mov r2, sb - lsls r1, r2, #5 - adds r0, r0, r1 - ldr r3, _080DE654 - adds r0, r0, r3 - mov r1, r8 - strb r1, [r0] - b _080DE696 - .align 2, 0 -_080DE650: .4byte gUnknown_3005AEC -_080DE654: .4byte 0x00002E9A -_080DE658: - ldr r6, _080DE6A8 - ldr r4, _080DE6AC - lsls r5, r5, #6 - adds r0, r4, #0 - adds r0, #0x38 - adds r0, r5, r0 - ldr r0, [r0] - str r0, [r6] - adds r0, r4, #0 - adds r0, #0x3c - adds r0, r5, r0 - ldr r0, [r0] - str r0, [r6, #4] - adds r0, r5, r4 - ldrh r0, [r0] - strh r0, [r6, #8] - adds r0, r6, #0 - adds r0, #0xb - adds r1, r4, #2 - adds r1, r5, r1 - bl StringCopy - adds r0, r6, #0 - adds r0, #0x16 - adds r4, #0xd - adds r5, r5, r4 - adds r1, r5, #0 - bl StringCopy - mov r2, r8 - strb r2, [r6, #0xa] -_080DE696: - movs r0, #1 -_080DE698: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080DE6A8: .4byte gUnknown_2039BDC -_080DE6AC: .4byte gUnknown_2039AA0 - thumb_func_end sub_080DE4B0 - - thumb_func_start sub_080DE6B0 -sub_080DE6B0: @ 0x080DE6B0 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r0, #3 - bgt _080DE700 - cmp r0, #0 - blt _080DE700 - cmp r1, #0 - beq _080DE6EE - movs r2, #5 - ldr r0, _080DE6F4 - mov ip, r0 - ldr r4, _080DE6F8 - ldr r3, _080DE6FC -_080DE6D0: - mov r1, ip - ldr r0, [r1] - lsls r1, r2, #5 - adds r1, r1, r0 - adds r0, r1, r4 - adds r1, r1, r3 - ldm r1!, {r5, r6, r7} - stm r0!, {r5, r6, r7} - ldm r1!, {r5, r6, r7} - stm r0!, {r5, r6, r7} - ldm r1!, {r5, r6} - stm r0!, {r5, r6} - subs r2, #1 - cmp r2, #0 - bgt _080DE6D0 -_080DE6EE: - movs r0, #0 - b _080DE742 - .align 2, 0 -_080DE6F4: .4byte gUnknown_3005AEC -_080DE6F8: .4byte 0x00002E90 -_080DE6FC: .4byte 0x00002E70 -_080DE700: - ldr r0, _080DE714 - ldrh r0, [r0] - cmp r0, #4 - bhi _080DE740 - lsls r0, r0, #2 - ldr r1, _080DE718 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080DE714: .4byte gUnknown_2039BCC -_080DE718: .4byte _080DE71C -_080DE71C: @ jump table - .4byte _080DE730 @ case 0 - .4byte _080DE734 @ case 1 - .4byte _080DE738 @ case 2 - .4byte _080DE73C @ case 3 - .4byte _080DE740 @ case 4 -_080DE730: - movs r0, #8 - b _080DE742 -_080DE734: - movs r0, #9 - b _080DE742 -_080DE738: - movs r0, #0xa - b _080DE742 -_080DE73C: - movs r0, #0xb - b _080DE742 -_080DE740: - movs r0, #0xc -_080DE742: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_080DE6B0 - - thumb_func_start ClearContestWinnerPicsInContestHall -ClearContestWinnerPicsInContestHall: @ 0x080DE748 - push {r4, r5, r6, r7, lr} - movs r2, #0 - ldr r0, _080DE77C - mov ip, r0 - ldr r4, _080DE780 - ldr r3, _080DE784 -_080DE754: - mov r1, ip - ldr r0, [r1] - lsls r1, r2, #5 - adds r0, r0, r1 - adds r0, r0, r4 - adds r1, r3, #0 - ldm r1!, {r5, r6, r7} - stm r0!, {r5, r6, r7} - ldm r1!, {r5, r6, r7} - stm r0!, {r5, r6, r7} - ldm r1!, {r5, r6} - stm r0!, {r5, r6} - adds r3, #0x20 - adds r2, #1 - cmp r2, #7 - ble _080DE754 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DE77C: .4byte gUnknown_3005AEC -_080DE780: .4byte 0x00002E90 -_080DE784: .4byte gUnknown_8560F28 - thumb_func_end ClearContestWinnerPicsInContestHall - - thumb_func_start sub_080DE788 -sub_080DE788: @ 0x080DE788 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r2, _080DE8C0 - ldr r3, [r2] - ldr r5, [r3, #0x10] - ldrb r1, [r5, #1] - movs r7, #1 - adds r0, r7, #0 - ands r0, r1 - adds r6, r2, #0 - cmp r0, #0 - bne _080DE7DA - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, #0 - ble _080DE7DA - ldr r1, [r3, #4] - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #0x15] - adds r0, r7, #0 - ands r0, r1 - cmp r0, #0 - bne _080DE7DA - ldr r1, [r3, #0x1c] - lsls r2, r4, #4 - adds r1, r2, r1 - ldrb r3, [r1, #0xc] - movs r0, #1 - orrs r0, r3 - strb r0, [r1, #0xc] - ldr r0, [r6] - ldr r0, [r0, #0x1c] - adds r2, r2, r0 - ldrb r0, [r2, #0xe] - movs r1, #2 - orrs r0, r1 - strb r0, [r2, #0xe] -_080DE7DA: - ldr r3, [r6] - ldr r1, [r3, #4] - lsls r2, r4, #3 - subs r0, r2, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #0xc] - movs r5, #1 - adds r0, r5, #0 - ands r0, r1 - adds r7, r2, #0 - cmp r0, #0 - beq _080DE802 - ldr r0, [r3, #0x1c] - lsls r1, r4, #4 - adds r1, r1, r0 - ldrb r2, [r1, #0xc] - movs r0, #2 - orrs r0, r2 - strb r0, [r1, #0xc] -_080DE802: - ldr r3, [r6] - ldr r2, [r3, #0x10] - ldrb r1, [r2, #1] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - bne _080DE82E - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - beq _080DE82E - movs r0, #2 - ldrsb r0, [r2, r0] - cmp r0, #0x3c - bne _080DE82E - ldr r0, [r3, #0x1c] - lsls r1, r4, #4 - adds r1, r1, r0 - ldrb r2, [r1, #0xc] - movs r0, #4 - orrs r0, r2 - strb r0, [r1, #0xc] -_080DE82E: - ldr r3, [r6] - ldr r1, [r3, #4] - subs r0, r7, r4 - lsls r0, r0, #2 - adds r2, r0, r1 - ldrb r1, [r2, #0x15] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080DE856 - ldrb r0, [r2, #0x16] - cmp r0, #0 - beq _080DE856 - ldr r0, [r3, #0x1c] - lsls r1, r4, #4 - adds r1, r1, r0 - ldrb r2, [r1, #0xc] - movs r0, #8 - orrs r0, r2 - strb r0, [r1, #0xc] -_080DE856: - movs r3, #0 - movs r5, #0 -_080DE85A: - cmp r3, r4 - beq _080DE888 - ldr r1, [r6] - ldr r0, [r1, #4] - adds r0, r5, r0 - ldrb r0, [r0, #0xe] - cmp r0, #0 - beq _080DE888 - ldr r0, [r1, #0x1c] - lsls r2, r4, #4 - adds r2, r2, r0 - ldrb r0, [r2, #0xc] - movs r1, #0x10 - orrs r0, r1 - strb r0, [r2, #0xc] - ldr r0, [r6] - ldr r0, [r0, #0x1c] - lsls r2, r3, #4 - adds r2, r2, r0 - ldrb r0, [r2, #0xc] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2, #0xc] -_080DE888: - adds r5, #0x1c - adds r3, #1 - cmp r3, #3 - ble _080DE85A - ldr r2, [r6] - ldr r1, [r2, #4] - subs r0, r7, r4 - lsls r5, r0, #2 - adds r1, r5, r1 - ldrb r3, [r1, #0xc] - movs r0, #6 - ands r0, r3 - cmp r0, #0 - bne _080DE8AE - ldrb r1, [r1, #0xb] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080DE8C4 -_080DE8AE: - ldr r0, [r2, #0x1c] - lsls r1, r4, #4 - adds r1, r1, r0 - ldrb r2, [r1, #0xc] - movs r0, #0x20 - orrs r0, r2 - strb r0, [r1, #0xc] - b _080DE8FE - .align 2, 0 -_080DE8C0: .4byte gUnknown_2039BD4 -_080DE8C4: - movs r0, #1 - ands r0, r3 - cmp r0, #0 - bne _080DE8FE - ldr r2, [r2, #0x1c] - lsls r3, r4, #4 - adds r2, r3, r2 - ldrb r0, [r2, #0xc] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #0xc] - ldr r0, [r6] - ldr r1, [r0, #0x1c] - adds r1, r3, r1 - ldrb r0, [r1, #0xe] - movs r2, #1 - orrs r0, r2 - strb r0, [r1, #0xe] - ldr r1, [r6] - ldr r0, [r1, #0x1c] - adds r3, r3, r0 - ldr r0, [r1] - ldrb r0, [r0, #1] - lsls r0, r0, #1 - adds r3, r3, r0 - ldr r0, [r1, #4] - adds r0, r5, r0 - ldrh r0, [r0, #6] - strh r0, [r3] -_080DE8FE: - ldr r2, [r6] - ldr r1, [r2, #4] - subs r0, r7, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #0x15] - movs r5, #1 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _080DE922 - ldr r0, [r2, #0x1c] - lsls r1, r4, #4 - adds r1, r1, r0 - ldrb r2, [r1, #0xd] - movs r0, #2 - orrs r0, r2 - strb r0, [r1, #0xd] -_080DE922: - ldr r2, [r6] - ldr r0, [r2] - ldrb r0, [r0, #0x13] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #4 - bne _080DE952 - ldr r3, [r2, #0x10] - ldrb r1, [r3, #1] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - bne _080DE952 - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #0 - beq _080DE952 - ldr r0, [r2, #0x1c] - lsls r1, r4, #4 - adds r1, r1, r0 - ldrb r2, [r1, #0xd] - movs r0, #0x20 - orrs r0, r2 - strb r0, [r1, #0xd] -_080DE952: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_080DE788 - - thumb_func_start sub_080DE958 -sub_080DE958: @ 0x080DE958 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x38 - movs r1, #0 - movs r0, #0 - str r0, [sp, #0x20] - movs r4, #0 - ldr r6, _080DE998 - mov r2, sp - adds r2, #0xc - str r2, [sp, #0x28] - mov r3, sp - adds r3, #0x14 - str r3, [sp, #0x2c] - mov r7, sp - adds r7, #2 - str r7, [sp, #0x24] - ldr r5, _080DE99C - movs r2, #0 - movs r3, #0x80 - lsls r3, r3, #0x11 -_080DE988: - adds r0, r4, r5 - ldrb r0, [r0] - cmp r0, #0 - bne _080DE9A0 - lsrs r0, r2, #0x18 - str r0, [sp, #0x20] - b _080DE9A6 - .align 2, 0 -_080DE998: .4byte gUnknown_2039BD4 -_080DE99C: .4byte gUnknown_2039BC0 -_080DE9A0: - cmp r0, #3 - bne _080DE9A6 - lsrs r1, r2, #0x18 -_080DE9A6: - adds r2, r2, r3 - adds r4, #1 - cmp r4, #3 - ble _080DE988 - ldr r0, [r6] - ldr r0, [r0, #0x1c] - lsls r1, r1, #4 - adds r1, r1, r0 - ldrb r2, [r1, #0xd] - movs r0, #1 - orrs r0, r2 - strb r0, [r1, #0xd] - movs r4, #0 - ldr r1, [sp, #0x20] - lsls r1, r1, #4 - str r1, [sp, #0x30] - mov sb, r4 - mov sl, r4 -_080DE9CA: - ldr r2, [sp, #0x20] - cmp r4, r2 - beq _080DE9F6 - ldr r1, _080DEB94 - lsls r0, r2, #1 - adds r0, r0, r1 - movs r3, #0 - ldrsh r2, [r0, r3] - add r1, sl - movs r6, #0 - ldrsh r0, [r1, r6] - subs r2, r2, r0 - cmp r2, #0x32 - bgt _080DE9F6 - ldr r7, _080DEB98 - ldr r0, [r7] - ldr r2, [r0, #0x1c] - add r2, sb - ldrb r0, [r2, #0xd] - movs r1, #4 - orrs r0, r1 - strb r0, [r2, #0xd] -_080DE9F6: - ldr r1, _080DEB98 - ldr r0, [r1] - ldr r0, [r0, #0x1c] - mov r3, sb - adds r2, r3, r0 - ldrb r1, [r2, #0xe] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _080DEA12 - ldrb r0, [r2, #0xd] - movs r1, #8 - orrs r0, r1 - strb r0, [r2, #0xd] -_080DEA12: - movs r5, #0 - ldr r2, _080DEB9C - add r2, sl - movs r6, #0 - ldrsh r1, [r2, r6] - ldr r7, _080DEB9C - movs r3, #0 - ldrsh r0, [r7, r3] - cmp r1, r0 - blt _080DEA3E - adds r3, r2, #0 - adds r2, r7, #0 -_080DEA2A: - adds r2, #2 - adds r5, #1 - cmp r5, #3 - bgt _080DEA3E - movs r6, #0 - ldrsh r1, [r3, r6] - movs r7, #0 - ldrsh r0, [r2, r7] - cmp r1, r0 - bge _080DEA2A -_080DEA3E: - cmp r5, #4 - bne _080DEA5C - ldr r1, _080DEBA0 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _080DEA5C - ldr r2, _080DEB98 - ldr r0, [r2] - ldr r2, [r0, #0x1c] - add r2, sb - ldrb r0, [r2, #0xd] - movs r1, #0x10 - orrs r0, r1 - strb r0, [r2, #0xd] -_080DEA5C: - movs r3, #0 - mov ip, r3 - mov r8, r3 - movs r5, #0 - ldr r0, _080DEB9C - add r0, sl - movs r7, #0 - ldrsh r6, [r0, r7] - str r6, [sp, #0x34] - ldr r2, _080DEB9C - ldr r0, _080DEBA4 - mov r1, sl - adds r6, r1, r0 - adds r3, r0, #0 -_080DEA78: - movs r7, #0 - ldrsh r0, [r2, r7] - ldr r1, [sp, #0x34] - cmp r1, r0 - ble _080DEA86 - movs r7, #1 - mov ip, r7 -_080DEA86: - movs r0, #0 - ldrsh r1, [r6, r0] - movs r7, #0 - ldrsh r0, [r3, r7] - cmp r1, r0 - ble _080DEA96 - movs r0, #1 - mov r8, r0 -_080DEA96: - adds r2, #2 - adds r3, #2 - adds r5, #1 - cmp r5, #3 - ble _080DEA78 - mov r1, ip - cmp r1, #0 - bne _080DEABC - mov r2, r8 - cmp r2, #0 - bne _080DEABC - ldr r3, _080DEB98 - ldr r0, [r3] - ldr r2, [r0, #0x1c] - add r2, sb - ldrb r0, [r2, #0xd] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2, #0xd] -_080DEABC: - ldr r6, _080DEB98 - ldr r0, [r6] - ldr r0, [r0, #0x1c] - mov r7, sb - adds r2, r7, r0 - ldrb r1, [r2, #0xe] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080DEAD8 - ldrb r0, [r2, #0xd] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #0xd] -_080DEAD8: - movs r0, #0x10 - add sb, r0 - movs r1, #2 - add sl, r1 - adds r4, #1 - cmp r4, #3 - bgt _080DEAE8 - b _080DE9CA -_080DEAE8: - movs r4, #0 - movs r5, #0 - movs r3, #0 - ldr r2, [sp, #0x28] - mov r1, sp -_080DEAF2: - strh r3, [r1] - adds r0, r2, r4 - strb r5, [r0] - adds r1, #2 - adds r4, #1 - cmp r4, #4 - ble _080DEAF2 - mov r1, sp - ldr r0, _080DEBA8 - strh r0, [r1, #0xa] - movs r0, #0 - ldr r2, [sp, #0x28] - strb r0, [r2, #5] - movs r4, #0 - ldr r0, _080DEB98 - ldr r0, [r0] - mov r8, r0 - ldr r7, [sp, #0x30] -_080DEB16: - mov r3, r8 - ldr r0, [r3, #0x1c] - adds r0, r7, r0 - lsls r1, r4, #1 - adds r0, r0, r1 - ldrh r0, [r0] - adds r4, #1 - mov ip, r4 - cmp r0, #0 - beq _080DEB58 - ldr r0, _080DEB98 - ldr r6, [r0] - ldr r3, [sp, #0x28] - mov r4, sp - movs r5, #4 -_080DEB34: - ldr r0, [r6, #0x1c] - adds r0, r7, r0 - adds r0, r0, r1 - ldrh r0, [r0] - ldrh r2, [r4] - cmp r0, r2 - beq _080DEB48 - cmp r2, #0 - bne _080DEB4E - strh r0, [r4] -_080DEB48: - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] -_080DEB4E: - adds r3, #1 - adds r4, #2 - subs r5, #1 - cmp r5, #0 - bge _080DEB34 -_080DEB58: - mov r4, ip - cmp r4, #4 - ble _080DEB16 - mov r0, sp - ldrh r0, [r0] - ldr r6, [sp, #0x2c] - strh r0, [r6] - ldr r7, [sp, #0x28] - ldrb r3, [r7] - movs r6, #0 - movs r4, #1 - ldr r1, [sp, #0x24] - ldrh r0, [r1] - ldr r1, _080DEBA8 - cmp r0, r1 - beq _080DEBC8 - ldr r5, [sp, #0x2c] - adds r7, r1, #0 - mov r2, sp - adds r2, #2 -_080DEB80: - ldr r0, [sp, #0x28] - adds r1, r0, r4 - ldrb r0, [r1] - cmp r3, r0 - bhs _080DEBAC - ldrh r0, [r2] - strh r0, [r5] - ldrb r3, [r1] - movs r6, #1 - b _080DEBBE - .align 2, 0 -_080DEB94: .4byte gUnknown_2039BA8 -_080DEB98: .4byte gUnknown_2039BD4 -_080DEB9C: .4byte gUnknown_2039BA0 -_080DEBA0: .4byte gUnknown_2039BC0 -_080DEBA4: .4byte gUnknown_2039BB8 -_080DEBA8: .4byte 0x0000FFFF -_080DEBAC: - cmp r3, r0 - bne _080DEBBE - lsls r0, r6, #1 - adds r0, r5, r0 - ldrh r1, [r2] - strh r1, [r0] - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_080DEBBE: - adds r2, #2 - adds r4, #1 - ldrh r0, [r2] - cmp r0, r7 - bne _080DEB80 -_080DEBC8: - bl Random - ldr r1, _080DEBFC - ldr r1, [r1] - ldr r4, [r1, #0x1c] - ldr r1, [sp, #0x30] - adds r4, r1, r4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r6, #0 - bl __modsi3 - lsls r0, r0, #1 - ldr r2, [sp, #0x2c] - adds r0, r2, r0 - ldrh r0, [r0] - strh r0, [r4, #0xa] - add sp, #0x38 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DEBFC: .4byte gUnknown_2039BD4 - thumb_func_end sub_080DE958 - - thumb_func_start sub_080DEC00 -sub_080DEC00: @ 0x080DEC00 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - ldr r2, _080DED34 - ldr r0, _080DED38 - ldrb r0, [r0] - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080DEC1C - b _080DEDCC -_080DEC1C: - movs r1, #0 - movs r3, #0 - ldr r0, _080DED3C - mov sb, r0 -_080DEC24: - adds r0, r3, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _080DEC30 - lsls r0, r3, #0x18 - lsrs r1, r0, #0x18 -_080DEC30: - adds r3, #1 - cmp r3, #3 - ble _080DEC24 - movs r2, #0 - mov sl, r2 - movs r4, #0 - str r4, [sp, #4] - movs r3, #0 - lsls r2, r1, #1 - lsls r1, r1, #4 - mov r8, r1 - ldr r1, _080DED40 - adds r0, r2, r1 - movs r7, #0 - ldrsh r6, [r0, r7] - adds r5, r1, #0 - ldr r0, _080DED44 - adds r2, r2, r0 - adds r4, r0, #0 -_080DEC56: - movs r1, #0 - ldrsh r0, [r5, r1] - cmp r6, r0 - bge _080DEC68 - mov r0, sl - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 -_080DEC68: - movs r7, #0 - ldrsh r1, [r2, r7] - movs r7, #0 - ldrsh r0, [r4, r7] - cmp r1, r0 - bge _080DEC7E - ldr r0, [sp, #4] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] -_080DEC7E: - adds r5, #2 - adds r4, #2 - adds r3, #1 - cmp r3, #3 - ble _080DEC56 - mov r1, sb - ldr r0, [r1] - ldr r0, [r0, #0x1c] - add r0, r8 - ldrb r1, [r0, #0xc] - movs r4, #0 - movs r2, #1 - movs r3, #7 -_080DEC98: - adds r0, r1, #0 - ands r0, r2 - cmp r0, #0 - beq _080DECA6 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_080DECA6: - lsrs r1, r1, #1 - subs r3, #1 - cmp r3, #0 - bge _080DEC98 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r4, #0 - bl __modsi3 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _080DED3C - ldr r0, [r0] - ldr r0, [r0, #0x1c] - add r0, r8 - ldrb r1, [r0, #0xc] - movs r4, #0 - movs r2, #0 - movs r3, #0 - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080DECE2 - cmp r5, #0 - beq _080DECFC -_080DECDC: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_080DECE2: - lsrs r1, r1, #1 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r3, #1 - cmp r3, #7 - bgt _080DECFC - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080DECE2 - cmp r5, r4 - bne _080DECDC -_080DECFC: - movs r0, #0x80 - lsls r0, r0, #9 - lsls r0, r2 - lsrs r0, r0, #0x10 - mov sb, r0 - mov r1, sp - movs r0, #0 - strb r0, [r1] - ldr r0, _080DED3C - ldr r1, [r0] - ldr r0, [r1, #0x1c] - ldrb r4, [r0, #0xd] - movs r5, #1 - movs r3, #1 - mov r6, sp -_080DED1A: - ldr r0, [r1, #0x1c] - lsls r2, r3, #4 - adds r0, r2, r0 - ldrb r0, [r0, #0xd] - cmp r4, r0 - bhs _080DED48 - strb r3, [r6] - ldr r0, [r1, #0x1c] - adds r0, r2, r0 - ldrb r4, [r0, #0xd] - movs r5, #1 - b _080DED58 - .align 2, 0 -_080DED34: .4byte gUnknown_2039BC0 -_080DED38: .4byte gUnknown_2039BC5 -_080DED3C: .4byte gUnknown_2039BD4 -_080DED40: .4byte gUnknown_2039BA0 -_080DED44: .4byte gUnknown_2039BB8 -_080DED48: - cmp r4, r0 - bne _080DED58 - mov r2, sp - adds r0, r2, r5 - strb r3, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_080DED58: - adds r3, #1 - cmp r3, #3 - ble _080DED1A - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r5, #0 - bl __modsi3 - add r0, sp - ldrb r7, [r0] - movs r2, #0x80 - movs r3, #0 - ldr r5, _080DEDDC - ldr r0, [r5] - ldr r0, [r0, #0x1c] - lsls r1, r7, #4 - adds r0, r1, r0 - ldrb r0, [r0, #0xd] - ands r0, r2 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - mov r0, sb - lsls r6, r0, #0x18 - cmp r4, #0 - bne _080DEDA4 -_080DED8E: - lsrs r2, r2, #1 - adds r3, #1 - cmp r3, #7 - bgt _080DEDA4 - ldr r0, [r5] - ldr r0, [r0, #0x1c] - adds r0, r1, r0 - ldrb r4, [r0, #0xd] - ands r4, r2 - cmp r4, #0 - beq _080DED8E -_080DEDA4: - mov r0, sl - bl ContestLiveUpdates_BeforeInterview_1 - ldr r0, [sp, #4] - bl ContestLiveUpdates_BeforeInterview_2 - lsrs r0, r6, #0x18 - bl ContestLiveUpdates_BeforeInterview_3 - ldr r0, _080DEDDC - ldr r0, [r0] - ldr r0, [r0, #0x1c] - add r0, r8 - ldrh r0, [r0, #0xa] - bl ContestLiveUpdates_BeforeInterview_4 - adds r0, r4, #0 - adds r1, r7, #0 - bl sub_080EDA10 -_080DEDCC: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DEDDC: .4byte gUnknown_2039BD4 - thumb_func_end sub_080DEC00 - - thumb_func_start ContestDebugToggleBitfields -ContestDebugToggleBitfields: @ 0x080DEDE0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r0, _080DEE00 - movs r1, #0xd0 - lsls r1, r1, #9 - adds r2, r0, r1 - ldrb r1, [r2] - adds r4, r0, #0 - cmp r1, #0 - bne _080DEE08 - cmp r3, #0 - bne _080DEE04 - movs r0, #2 - b _080DEE0A - .align 2, 0 -_080DEE00: .4byte gUnknown_2000000 -_080DEE04: - movs r0, #3 - b _080DEE0A -_080DEE08: - movs r0, #0 -_080DEE0A: - strb r0, [r2] - movs r1, #0xd0 - lsls r1, r1, #9 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080DEE22 - bl sub_080DA624 - bl SwapMoveDescAndContestTilemaps - b _080DEE26 -_080DEE22: - bl sub_080DEE2C -_080DEE26: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ContestDebugToggleBitfields - - thumb_func_start sub_080DEE2C -sub_080DEE2C: @ 0x080DEE2C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x2c - ldr r0, _080DEF28 - ldrb r0, [r0] - cmp r0, #0 - bne _080DEE42 - b _080DEFD4 -_080DEE42: - ldr r0, _080DEF2C - movs r1, #0xd0 - lsls r1, r1, #9 - adds r0, r0, r1 - ldrb r0, [r0] - subs r0, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _080DEE58 - b _080DEFD4 -_080DEE58: - movs r7, #0 - add r2, sp, #0x14 - mov sl, r2 -_080DEE5E: - adds r0, r7, #0 - movs r1, #0 - bl FillWindowPixelBuffer - adds r0, r7, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl FillWindowPixelBuffer - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #3 - bls _080DEE5E - ldr r0, _080DEF2C - movs r4, #0xd0 - lsls r4, r4, #9 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #2 - bne _080DEF3C - movs r7, #0 - mov sb, sl -_080DEE8E: - mov r0, sp - ldr r1, _080DEF30 - bl StringCopy - adds r6, r0, #0 - ldr r0, _080DEF34 - adds r0, r7, r0 - ldrb r0, [r0] - mov r1, sp - bl sub_080DE2D4 - ldr r0, _080DEF38 - ldr r0, [r0] - ldr r1, [r0, #0x1c] - lsls r0, r7, #4 - adds r0, r0, r1 - ldrb r5, [r0, #0xc] - movs r4, #7 - adds r0, r7, #1 - mov r8, r0 -_080DEEB6: - movs r1, #1 - ands r1, r5 - adds r0, r6, #0 - movs r2, #0 - movs r3, #1 - bl sub_080089D8 - adds r6, r0, #0 - lsrs r5, r5, #1 - lsls r0, r4, #0x18 - movs r1, #0xff - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r4, r0, #0x18 - asrs r0, r0, #0x18 - movs r2, #1 - rsbs r2, r2, #0 - cmp r0, r2 - bgt _080DEEB6 - movs r4, #0 - ldr r6, _080DEF34 - mov r3, sl -_080DEEE2: - lsls r0, r4, #0x18 - asrs r0, r0, #0x18 - adds r2, r3, r0 - mov r4, sp - adds r1, r4, r0 - ldrb r1, [r1] - strb r1, [r2] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - asrs r5, r0, #0x18 - cmp r5, #4 - ble _080DEEE2 - mov r0, sb - adds r1, r0, r5 - movs r0, #0xff - strb r0, [r1] - adds r4, r7, r6 - ldrb r0, [r4] - mov r1, sb - bl sub_080DE2D4 - ldrb r0, [r4] - adds r0, #4 - mov r2, sp - adds r1, r2, r5 - bl sub_080DE2D4 - mov r4, r8 - lsls r0, r4, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #3 - bls _080DEE8E - b _080DEFD0 - .align 2, 0 -_080DEF28: .4byte gUnknown_2031F75 -_080DEF2C: .4byte gUnknown_2000000 -_080DEF30: .4byte gUnknown_85CC49D -_080DEF34: .4byte gUnknown_2039BC6 -_080DEF38: .4byte gUnknown_2039BD4 -_080DEF3C: - movs r7, #0 - mov r0, sp - adds r0, #2 - str r0, [sp, #0x28] - mov sb, sl -_080DEF46: - mov r0, sp - ldr r1, _080DEFE4 - bl StringCopy - ldr r0, _080DEFE8 - ldr r0, [r0] - ldr r1, [r0, #0x1c] - lsls r0, r7, #4 - adds r0, r0, r1 - ldrb r5, [r0, #0xd] - ldr r6, [sp, #0x28] - movs r4, #7 - adds r1, r7, #1 - mov r8, r1 -_080DEF62: - movs r1, #1 - ands r1, r5 - adds r0, r6, #0 - movs r2, #0 - movs r3, #1 - bl sub_080089D8 - adds r6, r0, #0 - lsrs r5, r5, #1 - lsls r0, r4, #0x18 - movs r2, #0xff - lsls r2, r2, #0x18 - adds r0, r0, r2 - lsrs r4, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bgt _080DEF62 - movs r4, #0 - ldr r6, _080DEFEC - mov r3, sl -_080DEF8E: - lsls r0, r4, #0x18 - asrs r0, r0, #0x18 - adds r2, r3, r0 - mov r4, sp - adds r1, r4, r0 - ldrb r1, [r1] - strb r1, [r2] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - asrs r5, r0, #0x18 - cmp r5, #4 - ble _080DEF8E - mov r0, sb - adds r1, r0, r5 - movs r0, #0xff - strb r0, [r1] - adds r4, r7, r6 - ldrb r0, [r4] - mov r1, sb - bl sub_080DE2D4 - ldrb r0, [r4] - adds r0, #4 - mov r2, sp - adds r1, r2, r5 - bl sub_080DE2D4 - mov r4, r8 - lsls r0, r4, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #3 - bls _080DEF46 -_080DEFD0: - bl SwapMoveDescAndContestTilemaps -_080DEFD4: - add sp, #0x2c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DEFE4: .4byte gUnknown_85CC4A0 -_080DEFE8: .4byte gUnknown_2039BD4 -_080DEFEC: .4byte gUnknown_2039BC6 - thumb_func_end sub_080DEE2C - - thumb_func_start sub_080DEFF0 -sub_080DEFF0: @ 0x080DEFF0 - push {r4, r5, r6, lr} - sub sp, #0xc - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_080987DC - ldr r5, _080DF018 - strb r4, [r5, #0xf] - cmp r4, #0 - bne _080DF024 - ldr r0, _080DF01C - bl AddWindow - strb r0, [r5, #0xe] - ldr r0, _080DF020 - str r0, [r5, #4] - movs r6, #3 - b _080DF032 - .align 2, 0 -_080DF018: .4byte gUnknown_2039C00 -_080DF01C: .4byte gUnknown_85629BC -_080DF020: .4byte gUnknown_8562994 -_080DF024: - ldr r0, _080DF088 - bl AddWindow - strb r0, [r5, #0xe] - ldr r0, _080DF08C - str r0, [r5, #4] - movs r6, #2 -_080DF032: - ldr r4, _080DF090 - ldrb r0, [r4, #0xe] - movs r1, #0 - bl SetStandardWindowBorderStyle - ldrb r0, [r4, #0xe] - movs r5, #0x10 - str r5, [sp] - str r6, [sp, #4] - ldr r1, [r4, #4] - str r1, [sp, #8] - movs r1, #1 - movs r2, #8 - movs r3, #2 - bl PrintTextArray - ldrb r0, [r4, #0xe] - str r5, [sp] - str r6, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl sub_081984B0 - ldrb r0, [r4, #0xe] - bl PutWindowTilemap - ldrb r0, [r4, #0xe] - movs r1, #1 - bl CopyWindowToVram - ldr r0, _080DF094 - movs r1, #8 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #0xc - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080DF088: .4byte gUnknown_85629C4 -_080DF08C: .4byte gUnknown_85629AC -_080DF090: .4byte gUnknown_2039C00 -_080DF094: .4byte Task_ShopMenu - thumb_func_end sub_080DEFF0 - - thumb_func_start sub_080DF098 -sub_080DF098: @ 0x080DF098 - ldr r1, _080DF0A0 - str r0, [r1] - bx lr - .align 2, 0 -_080DF0A0: .4byte gUnknown_2039C00 - thumb_func_end sub_080DF098 - - thumb_func_start SetShopItemsForSale -SetShopItemsForSale: @ 0x080DF0A4 - push {lr} - adds r1, r0, #0 - movs r2, #0 - ldr r3, _080DF0D0 - str r1, [r3, #8] - strh r2, [r3, #0xc] - ldrh r0, [r1] - cmp r0, #0 - beq _080DF0CC -_080DF0B6: - ldrh r0, [r3, #0xc] - adds r0, #1 - strh r0, [r3, #0xc] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0 - bne _080DF0B6 -_080DF0CC: - pop {r0} - bx r0 - .align 2, 0 -_080DF0D0: .4byte gUnknown_2039C00 - thumb_func_end SetShopItemsForSale - - thumb_func_start Task_ShopMenu -Task_ShopMenu: @ 0x080DF0D4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, r4, #0 - bl Menu_ProcessInputNoWrap - lsls r0, r0, #0x18 - asrs r2, r0, #0x18 - movs r0, #2 - rsbs r0, r0, #0 - cmp r2, r0 - beq _080DF110 - adds r0, #1 - cmp r2, r0 - bne _080DF100 - movs r0, #5 - bl sub_080A306C - adds r0, r4, #0 - bl Task_HandleShopMenuQuit - b _080DF110 -_080DF100: - ldr r0, _080DF118 - ldr r1, [r0, #4] - lsls r0, r2, #3 - adds r0, r0, r1 - ldr r1, [r0, #4] - adds r0, r5, #0 - bl _call_via_r1 -_080DF110: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080DF118: .4byte gUnknown_2039C00 - thumb_func_end Task_ShopMenu - - thumb_func_start sub_080DF11C -sub_080DF11C: @ 0x080DF11C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r2, _080DF14C - adds r4, r1, r2 - ldr r3, _080DF150 - lsrs r0, r3, #0x10 - strh r0, [r4, #0x10] - strh r3, [r4, #0x12] - subs r2, #8 - adds r1, r1, r2 - ldr r0, _080DF154 - str r0, [r1] - movs r0, #1 - movs r1, #0 - bl FadeScreen - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DF14C: .4byte gUnknown_3005B68 -_080DF150: .4byte CB2_InitBuyMenu -_080DF154: .4byte Task_GoToBuyOrSellMenu - thumb_func_end sub_080DF11C - - thumb_func_start sub_080DF158 -sub_080DF158: @ 0x080DF158 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r2, _080DF188 - adds r4, r1, r2 - ldr r3, _080DF18C - lsrs r0, r3, #0x10 - strh r0, [r4, #0x10] - strh r3, [r4, #0x12] - subs r2, #8 - adds r1, r1, r2 - ldr r0, _080DF190 - str r0, [r1] - movs r0, #1 - movs r1, #0 - bl FadeScreen - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DF188: .4byte gUnknown_3005B68 -_080DF18C: .4byte CB2_GoToSellMenu -_080DF190: .4byte Task_GoToBuyOrSellMenu - thumb_func_end sub_080DF158 - - thumb_func_start sub_080DF194 -sub_080DF194: @ 0x080DF194 - push {lr} - ldr r0, _080DF1A8 - ldr r1, _080DF1AC - str r1, [r0] - ldr r0, _080DF1B0 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080DF1A8: .4byte gUnknown_3005B0C -_080DF1AC: .4byte MapPostLoadHook_ReturnToShopMenu -_080DF1B0: .4byte sub_08085A30 - thumb_func_end sub_080DF194 - - thumb_func_start Task_HandleShopMenuQuit -Task_HandleShopMenuQuit: @ 0x080DF1B4 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r5, _080DF1EC - ldrb r0, [r5, #0xe] - movs r1, #2 - bl sub_08198134 - ldrb r0, [r5, #0xe] - bl RemoveWindow - bl SaveRecordedItemPurchasesForTVShow - bl sub_080987E8 - adds r0, r4, #0 - bl DestroyTask - ldr r5, [r5] - cmp r5, #0 - beq _080DF1E4 - bl _call_via_r5 -_080DF1E4: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080DF1EC: .4byte gUnknown_2039C00 - thumb_func_end Task_HandleShopMenuQuit - - thumb_func_start Task_GoToBuyOrSellMenu -Task_GoToBuyOrSellMenu: @ 0x080DF1F0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _080DF224 - adds r4, r0, r1 - ldr r0, _080DF228 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080DF21E - adds r0, r2, #0 - bl DestroyTask - ldrh r0, [r4, #0x10] - lsls r0, r0, #0x10 - ldrh r1, [r4, #0x12] - orrs r0, r1 - bl SetMainCallback2 -_080DF21E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DF224: .4byte gUnknown_3005B68 -_080DF228: .4byte gUnknown_2037C74 - thumb_func_end Task_GoToBuyOrSellMenu - - thumb_func_start MapPostLoadHook_ReturnToShopMenu -MapPostLoadHook_ReturnToShopMenu: @ 0x080DF22C - push {lr} - bl pal_fill_black - ldr r0, _080DF240 - movs r1, #8 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080DF240: .4byte Task_ReturnToShopMenu - thumb_func_end MapPostLoadHook_ReturnToShopMenu - - thumb_func_start Task_ReturnToShopMenu -Task_ReturnToShopMenu: @ 0x080DF244 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, r4, #0 - bl IsWeatherNotFadingIn - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080DF282 - ldr r0, _080DF26C - ldrb r0, [r0, #0xf] - cmp r0, #2 - bne _080DF278 - ldr r1, _080DF270 - ldr r2, _080DF274 - adds r0, r4, #0 - bl DisplayItemMessageOnField - b _080DF282 - .align 2, 0 -_080DF26C: .4byte gUnknown_2039C00 -_080DF270: .4byte gUnknown_85C9A15 -_080DF274: .4byte ShowShopMenuAfterExitingBuyOrSellMenu -_080DF278: - ldr r1, _080DF288 - ldr r2, _080DF28C - adds r0, r5, #0 - bl DisplayItemMessageOnField -_080DF282: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080DF288: .4byte gUnknown_85C99F5 -_080DF28C: .4byte ShowShopMenuAfterExitingBuyOrSellMenu - thumb_func_end Task_ReturnToShopMenu - - thumb_func_start ShowShopMenuAfterExitingBuyOrSellMenu -ShowShopMenuAfterExitingBuyOrSellMenu: @ 0x080DF290 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _080DF2AC - ldrb r0, [r0, #0xf] - bl sub_080DEFF0 - adds r0, r4, #0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DF2AC: .4byte gUnknown_2039C00 - thumb_func_end ShowShopMenuAfterExitingBuyOrSellMenu - - thumb_func_start sub_080DF2B0 -sub_080DF2B0: @ 0x080DF2B0 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080DF2B0 - - thumb_func_start VBlankCB_BuyMenu -VBlankCB_BuyMenu: @ 0x080DF2CC - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end VBlankCB_BuyMenu - - thumb_func_start CB2_InitBuyMenu -CB2_InitBuyMenu: @ 0x080DF2E0 - push {r4, r5, lr} - sub sp, #0xc - ldr r0, _080DF354 - movs r1, #0x87 - lsls r1, r1, #3 - adds r5, r0, r1 - ldrb r4, [r5] - cmp r4, #0 - beq _080DF36C - cmp r4, #1 - bne _080DF2F8 - b _080DF430 -_080DF2F8: - bl BuyMenuDrawGraphics - bl BuyMenuAddScrollIndicatorArrows - ldr r0, _080DF358 - movs r1, #8 - bl CreateTask - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _080DF35C - movs r1, #0 - movs r2, #0 - bl ListMenuInit - ldr r2, _080DF360 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r5, #0 - strh r0, [r1, #0x16] - movs r4, #1 - rsbs r4, r4, #0 - adds r0, r4, #0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - str r5, [sp] - adds r0, r4, #0 - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r0, _080DF364 - bl SetVBlankCallback - ldr r0, _080DF368 - bl SetMainCallback2 - b _080DF440 - .align 2, 0 -_080DF354: .4byte gUnknown_3002360 -_080DF358: .4byte Task_BuyMenu -_080DF35C: .4byte gUnknown_3006050 -_080DF360: .4byte gUnknown_3005B60 -_080DF364: .4byte VBlankCB_BuyMenu -_080DF368: .4byte sub_080DF2B0 -_080DF36C: - bl SetVBlankHBlankCallbacksToNull - str r4, [sp, #8] - movs r1, #0xe0 - lsls r1, r1, #0x13 - ldr r2, _080DF418 - add r0, sp, #8 - bl CpuFastSet - bl ScanlineEffect_Stop - bl reset_temp_tile_data_buffers - bl FreeAllSpritePalettes - bl ResetPaletteFade - bl ResetSpriteData - bl ResetTasks - bl sub_08199640 - ldr r4, _080DF41C - ldr r0, _080DF420 - bl AllocZeroed - str r0, [r4] - ldr r1, _080DF424 - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] - ldr r0, [r4] - ldr r1, _080DF428 - adds r0, r0, r1 - movs r1, #1 - rsbs r1, r1, #0 - strb r1, [r0] - ldr r0, [r4] - ldr r1, _080DF42C - adds r0, r0, r1 - movs r1, #1 - rsbs r1, r1, #0 - strb r1, [r0] - bl sub_080DF478 - bl BuyMenuInitBgs - movs r4, #0x20 - str r4, [sp] - str r4, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - str r4, [sp, #4] - movs r0, #1 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - str r4, [sp, #4] - movs r0, #2 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - str r4, [sp, #4] - movs r0, #3 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - bl BuyMenuInitWindows - bl BuyMenuDecompressBgGraphics - b _080DF43A - .align 2, 0 -_080DF418: .4byte 0x01000100 -_080DF41C: .4byte gUnknown_2039C10 -_080DF420: .4byte 0x000020B0 -_080DF424: .4byte 0x0000200B -_080DF428: .4byte 0x0000200D -_080DF42C: .4byte 0x0000200E -_080DF430: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080DF440 -_080DF43A: - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] -_080DF440: - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end CB2_InitBuyMenu - - thumb_func_start BuyMenuFreeMemory -BuyMenuFreeMemory: @ 0x080DF448 - push {lr} - ldr r0, _080DF46C - ldr r0, [r0] - bl Free - ldr r0, _080DF470 - ldr r0, [r0] - bl Free - ldr r0, _080DF474 - ldr r0, [r0] - bl Free - bl FreeAllWindowBuffers - pop {r0} - bx r0 - .align 2, 0 -_080DF46C: .4byte gUnknown_2039C10 -_080DF470: .4byte gUnknown_2039C14 -_080DF474: .4byte gUnknown_2039C18 - thumb_func_end BuyMenuFreeMemory - - thumb_func_start sub_080DF478 -sub_080DF478: @ 0x080DF478 - push {r4, r5, r6, r7, lr} - ldr r7, _080DF518 - ldr r4, _080DF51C - ldrh r0, [r4, #0xc] - adds r0, #1 - lsls r0, r0, #3 - bl sub_08000BC8 - str r0, [r7] - ldr r5, _080DF520 - ldrh r0, [r4, #0xc] - adds r0, #1 - movs r1, #0xb - muls r0, r1, r0 - bl sub_08000BC8 - str r0, [r5] - movs r6, #0 - ldrh r0, [r4, #0xc] - cmp r6, r0 - bhs _080DF4CA -_080DF4A2: - lsls r1, r6, #3 - ldr r0, [r7] - adds r0, r0, r1 - ldr r2, [r4, #8] - lsls r1, r6, #1 - adds r1, r1, r2 - ldrh r1, [r1] - movs r2, #0xb - adds r3, r6, #0 - muls r3, r2, r3 - ldr r2, [r5] - adds r2, r2, r3 - bl BuyMenuSetListEntry - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldrh r2, [r4, #0xc] - cmp r6, r2 - blo _080DF4A2 -_080DF4CA: - ldr r5, _080DF520 - movs r0, #0xb - adds r4, r6, #0 - muls r4, r0, r4 - ldr r0, [r5] - adds r0, r0, r4 - ldr r1, _080DF524 - bl StringCopy - ldr r2, _080DF518 - ldr r0, [r2] - lsls r1, r6, #3 - adds r1, r1, r0 - ldr r0, [r5] - adds r0, r0, r4 - str r0, [r1] - movs r0, #2 - rsbs r0, r0, #0 - str r0, [r1, #4] - ldr r3, _080DF528 - adds r1, r3, #0 - ldr r0, _080DF52C - ldm r0!, {r4, r5, r6} - stm r1!, {r4, r5, r6} - ldm r0!, {r4, r5, r6} - stm r1!, {r4, r5, r6} - ldr r0, [r2] - str r0, [r3] - ldr r0, _080DF51C - ldrh r0, [r0, #0xc] - adds r1, r0, #1 - strh r1, [r3, #0xc] - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #8 - bls _080DF530 - movs r0, #8 - strh r0, [r3, #0xe] - b _080DF532 - .align 2, 0 -_080DF518: .4byte gUnknown_2039C14 -_080DF51C: .4byte gUnknown_2039C00 -_080DF520: .4byte gUnknown_2039C18 -_080DF524: .4byte gUnknown_85C93C8 -_080DF528: .4byte gUnknown_3006050 -_080DF52C: .4byte gUnknown_85629CC -_080DF530: - strh r1, [r3, #0xe] -_080DF532: - ldr r0, _080DF548 - ldr r0, [r0] - ldr r1, _080DF54C - ldrh r1, [r1, #0xe] - ldr r2, _080DF550 - adds r0, r0, r2 - strh r1, [r0] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DF548: .4byte gUnknown_2039C10 -_080DF54C: .4byte gUnknown_3006050 -_080DF550: .4byte 0x00002004 - thumb_func_end sub_080DF478 - - thumb_func_start BuyMenuSetListEntry -BuyMenuSetListEntry: @ 0x080DF554 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r5, r2, #0 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - ldr r0, _080DF570 - ldrb r0, [r0, #0xf] - cmp r0, #0 - bne _080DF574 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080D5EC8 - b _080DF584 - .align 2, 0 -_080DF570: .4byte gUnknown_2039C00 -_080DF574: - lsls r1, r4, #3 - subs r1, r1, r4 - lsls r1, r1, #2 - ldr r0, _080DF590 - adds r1, r1, r0 - adds r0, r5, #0 - bl StringCopy -_080DF584: - str r5, [r6] - str r4, [r6, #4] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080DF590: .4byte gUnknown_8580CD1 - thumb_func_end BuyMenuSetListEntry - - thumb_func_start BuyMenuPrintItemDescriptionAndShowItemIcon -BuyMenuPrintItemDescriptionAndShowItemIcon: @ 0x080DF594 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - adds r7, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #1 - beq _080DF5AC - movs r0, #5 - bl sub_080A306C -_080DF5AC: - movs r0, #2 - rsbs r0, r0, #0 - cmp r7, r0 - beq _080DF5D0 - lsls r4, r7, #0x10 - lsrs r0, r4, #0x10 - ldr r1, _080DF5C8 - ldr r1, [r1] - ldr r2, _080DF5CC - adds r1, r1, r2 - ldrb r1, [r1] - bl BuyMenuAddItemIcon - b _080DF5E2 - .align 2, 0 -_080DF5C8: .4byte gUnknown_2039C10 -_080DF5CC: .4byte 0x0000200C -_080DF5D0: - ldr r0, _080DF620 - ldr r1, _080DF624 - ldr r1, [r1] - ldr r2, _080DF628 - adds r1, r1, r2 - ldrb r1, [r1] - bl BuyMenuAddItemIcon - lsls r4, r7, #0x10 -_080DF5E2: - lsrs r4, r4, #0x10 - mov r8, r4 - ldr r6, _080DF624 - ldr r0, [r6] - ldr r5, _080DF628 - adds r0, r0, r5 - ldrb r0, [r0] - movs r4, #1 - adds r1, r4, #0 - eors r1, r0 - mov r0, r8 - bl BuyMenuRemoveItemIcon - ldr r1, [r6] - adds r1, r1, r5 - ldrb r0, [r1] - eors r0, r4 - strb r0, [r1] - movs r0, #2 - rsbs r0, r0, #0 - cmp r7, r0 - beq _080DF644 - ldr r0, _080DF62C - ldrb r0, [r0, #0xf] - cmp r0, #0 - bne _080DF630 - mov r0, r8 - bl sub_080D6D40 - adds r4, r0, #0 - b _080DF646 - .align 2, 0 -_080DF620: .4byte 0x0000FFFF -_080DF624: .4byte gUnknown_2039C10 -_080DF628: .4byte 0x0000200C -_080DF62C: .4byte gUnknown_2039C00 -_080DF630: - ldr r1, _080DF640 - lsls r0, r7, #3 - subs r0, r0, r7 - lsls r0, r0, #2 - adds r1, #0x14 - adds r0, r0, r1 - ldr r4, [r0] - b _080DF646 - .align 2, 0 -_080DF640: .4byte gUnknown_8580CD0 -_080DF644: - ldr r4, _080DF66C -_080DF646: - movs r0, #2 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - movs r0, #2 - adds r1, r4, #0 - movs r2, #0 - movs r3, #2 - bl sub_080DF9E8 - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DF66C: .4byte gUnknown_85C98E0 - thumb_func_end BuyMenuPrintItemDescriptionAndShowItemIcon - - thumb_func_start sub_080DF670 -sub_080DF670: @ 0x080DF670 - push {r4, r5, r6, r7, lr} - sub sp, #8 - adds r3, r1, #0 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - movs r0, #2 - rsbs r0, r0, #0 - cmp r3, r0 - beq _080DF6F4 - ldr r0, _080DF6B8 - ldrb r0, [r0, #0xf] - cmp r0, #0 - bne _080DF6C0 - ldr r5, _080DF6BC - lsls r0, r3, #0x10 - lsrs r0, r0, #0x10 - bl sub_080D6CD4 - adds r4, r0, #0 - movs r0, #1 - bl GetPriceReduction - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - asrs r4, r0 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #1 - movs r3, #5 - bl sub_080089D8 - b _080DF6D6 - .align 2, 0 -_080DF6B8: .4byte gUnknown_2039C00 -_080DF6BC: .4byte gUnknown_2021C40 -_080DF6C0: - ldr r0, _080DF6FC - ldr r2, _080DF700 - lsls r1, r3, #3 - subs r1, r1, r3 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r1, [r1, #0x10] - movs r2, #1 - movs r3, #5 - bl sub_080089D8 -_080DF6D6: - ldr r4, _080DF704 - ldr r1, _080DF708 - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #0xff - str r0, [sp] - movs r0, #1 - str r0, [sp, #4] - adds r0, r6, #0 - adds r1, r4, #0 - movs r2, #0x48 - adds r3, r7, #0 - bl sub_080DF9E8 -_080DF6F4: - add sp, #8 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DF6FC: .4byte gUnknown_2021C40 -_080DF700: .4byte gUnknown_8580CD0 -_080DF704: .4byte gUnknown_2021C7C -_080DF708: .4byte gUnknown_85C9A9D - thumb_func_end sub_080DF670 - - thumb_func_start BuyMenuAddScrollIndicatorArrows -BuyMenuAddScrollIndicatorArrows: @ 0x080DF70C - push {r4, r5, lr} - sub sp, #0x10 - ldr r5, _080DF754 - ldr r2, [r5] - ldr r4, _080DF758 - adds r0, r2, r4 - ldrb r0, [r0] - cmp r0, #0xff - bne _080DF74A - ldr r0, _080DF75C - ldrh r1, [r0, #0xc] - adds r0, r1, #1 - cmp r0, #8 - ble _080DF74A - subs r0, r1, #7 - str r0, [sp] - ldr r0, _080DF760 - str r0, [sp, #4] - str r0, [sp, #8] - ldr r1, _080DF764 - adds r0, r2, r1 - str r0, [sp, #0xc] - movs r0, #2 - movs r1, #0xac - movs r2, #0xc - movs r3, #0x94 - bl AddScrollIndicatorArrowPairParameterized - ldr r1, [r5] - adds r1, r1, r4 - strb r0, [r1] -_080DF74A: - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080DF754: .4byte gUnknown_2039C10 -_080DF758: .4byte 0x0000200B -_080DF75C: .4byte gUnknown_2039C00 -_080DF760: .4byte 0x00000834 -_080DF764: .4byte 0x00002008 - thumb_func_end BuyMenuAddScrollIndicatorArrows - - thumb_func_start BuyMenuRemoveScrollIndicatorArrows -BuyMenuRemoveScrollIndicatorArrows: @ 0x080DF768 - push {r4, lr} - ldr r4, _080DF78C - ldr r0, [r4] - ldr r2, _080DF790 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, #0xff - beq _080DF786 - bl RemoveScrollIndicatorArrowPair - ldr r0, [r4] - ldr r1, _080DF790 - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] -_080DF786: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DF78C: .4byte gUnknown_2039C10 -_080DF790: .4byte 0x0000200B - thumb_func_end BuyMenuRemoveScrollIndicatorArrows - - thumb_func_start BuyMenuPrintCursor -BuyMenuPrintCursor: @ 0x080DF794 - push {r4, lr} - sub sp, #8 - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl ListMenuGetYCoordForPrintingArrowCursor - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r1, _080DF7C4 - movs r0, #0 - str r0, [sp] - str r4, [sp, #4] - movs r0, #1 - movs r2, #0 - bl sub_080DF9E8 - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DF7C4: .4byte gUnknown_85C9421 - thumb_func_end BuyMenuPrintCursor - - thumb_func_start BuyMenuAddItemIcon -BuyMenuAddItemIcon: @ 0x080DF7C8 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - ldr r0, _080DF81C - ldr r4, _080DF820 - adds r1, r3, r4 - ldr r0, [r0] - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, #0xff - bne _080DF854 - ldr r0, _080DF824 - ldrb r0, [r0, #0xf] - cmp r0, #0 - beq _080DF7F2 - ldr r0, _080DF828 - cmp r2, r0 - bne _080DF834 -_080DF7F2: - ldr r0, _080DF82C - adds r1, r3, r0 - adds r0, r1, #0 - bl AddItemIconSprite - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x40 - beq _080DF854 - strb r2, [r4] - ldr r1, _080DF830 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - movs r1, #0x18 - strh r1, [r0, #0x24] - movs r1, #0x58 - strh r1, [r0, #0x26] - b _080DF854 - .align 2, 0 -_080DF81C: .4byte gUnknown_2039C10 -_080DF820: .4byte 0x0000200D -_080DF824: .4byte gUnknown_2039C00 -_080DF828: .4byte 0x0000FFFF -_080DF82C: .4byte 0x0000083E -_080DF830: .4byte gUnknown_20205AC -_080DF834: - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080DF85C - adds r1, r3, r2 - str r1, [sp] - str r1, [sp, #4] - movs r1, #0x14 - movs r2, #0x54 - movs r3, #1 - bl AddDecorationIconObject - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x40 - beq _080DF854 - strb r2, [r4] -_080DF854: - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DF85C: .4byte 0x0000083E - thumb_func_end BuyMenuAddItemIcon - - thumb_func_start BuyMenuRemoveItemIcon -BuyMenuRemoveItemIcon: @ 0x080DF860 - push {r4, r5, lr} - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - ldr r0, _080DF8A0 - ldr r2, _080DF8A4 - adds r1, r4, r2 - ldr r0, [r0] - adds r5, r0, r1 - ldrb r0, [r5] - cmp r0, #0xff - beq _080DF89A - ldr r0, _080DF8A8 - adds r4, r4, r0 - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl FreeSpritePaletteByTag - ldrb r1, [r5] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080DF8AC - adds r0, r0, r1 - bl DestroySprite - movs r0, #0xff - strb r0, [r5] -_080DF89A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080DF8A0: .4byte gUnknown_2039C10 -_080DF8A4: .4byte 0x0000200D -_080DF8A8: .4byte 0x0000083E -_080DF8AC: .4byte gUnknown_20205AC - thumb_func_end BuyMenuRemoveItemIcon - - thumb_func_start BuyMenuInitBgs -BuyMenuInitBgs: @ 0x080DF8B0 - push {r4, lr} - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _080DF960 - movs r0, #0 - movs r2, #4 - bl InitBgsFromTemplates - ldr r4, _080DF964 - ldr r1, [r4] - movs r0, #0x80 - lsls r0, r0, #4 - adds r1, r1, r0 - movs r0, #1 - bl SetBgTilemapBuffer - ldr r1, [r4] - movs r0, #0xc0 - lsls r0, r0, #5 - adds r1, r1, r0 - movs r0, #2 - bl SetBgTilemapBuffer - ldr r1, [r4] - movs r0, #0x80 - lsls r0, r0, #5 - adds r1, r1, r0 - movs r0, #3 - bl SetBgTilemapBuffer - movs r0, #0x10 - movs r1, #0 - bl SetGpuReg - movs r0, #0x12 - movs r1, #0 - bl SetGpuReg - movs r0, #0x14 - movs r1, #0 - bl SetGpuReg - movs r0, #0x16 - movs r1, #0 - bl SetGpuReg - movs r0, #0x18 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1a - movs r1, #0 - bl SetGpuReg - movs r0, #0x1c - movs r1, #0 - bl SetGpuReg - movs r0, #0x1e - movs r1, #0 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DF960: .4byte gUnknown_85629E4 -_080DF964: .4byte gUnknown_2039C10 - thumb_func_end BuyMenuInitBgs - - thumb_func_start BuyMenuDecompressBgGraphics -BuyMenuDecompressBgGraphics: @ 0x080DF968 - push {lr} - sub sp, #4 - ldr r1, _080DF998 - movs r2, #0xe8 - lsls r2, r2, #2 - ldr r3, _080DF99C - movs r0, #0 - str r0, [sp] - movs r0, #1 - bl decompress_and_copy_tile_data_to_vram - ldr r0, _080DF9A0 - ldr r1, _080DF9A4 - ldr r1, [r1] - bl sub_08034370 - ldr r0, _080DF9A8 - movs r1, #0xc0 - movs r2, #0x20 - bl LoadCompressedPalette - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_080DF998: .4byte gUnknown_8D9B1B4 -_080DF99C: .4byte 0x000003E3 -_080DF9A0: .4byte gUnknown_8D9B2E8 -_080DF9A4: .4byte gUnknown_2039C10 -_080DF9A8: .4byte gUnknown_8D9B2C0 - thumb_func_end BuyMenuDecompressBgGraphics - - thumb_func_start BuyMenuInitWindows -BuyMenuInitWindows: @ 0x080DF9AC - push {lr} - ldr r0, _080DF9E4 - bl InitWindows - bl sub_08004480 - movs r0, #0 - movs r1, #1 - movs r2, #0xd0 - bl LoadUserWindowBorderGfx - movs r0, #0 - movs r1, #0xa - movs r2, #0xe0 - bl LoadMessageBoxGfx - movs r0, #0 - bl PutWindowTilemap - movs r0, #1 - bl PutWindowTilemap - movs r0, #2 - bl PutWindowTilemap - pop {r0} - bx r0 - .align 2, 0 -_080DF9E4: .4byte gUnknown_85629F4 - thumb_func_end BuyMenuInitWindows - - thumb_func_start sub_080DF9E8 -sub_080DF9E8: @ 0x080DF9E8 - push {r4, r5, r6, lr} - sub sp, #0x14 - ldr r6, [sp, #0x24] - ldr r5, [sp, #0x28] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - movs r4, #0 - str r4, [sp] - str r4, [sp, #4] - lsls r4, r5, #1 - adds r4, r4, r5 - ldr r5, _080DFA28 - adds r4, r4, r5 - str r4, [sp, #8] - lsls r6, r6, #0x18 - asrs r6, r6, #0x18 - str r6, [sp, #0xc] - str r1, [sp, #0x10] - movs r1, #1 - bl AddTextPrinterParameterized4 - add sp, #0x14 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080DFA28: .4byte gUnknown_8562A34 - thumb_func_end sub_080DF9E8 - - thumb_func_start BuyMenuDisplayMessage -BuyMenuDisplayMessage: @ 0x080DFA2C - push {r4, r5, r6, lr} - sub sp, #0x10 - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl GetPlayerTextSpeedDelay - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - str r1, [sp] - str r0, [sp, #4] - str r5, [sp, #8] - str r6, [sp, #0xc] - adds r0, r4, #0 - movs r1, #5 - movs r2, #0xa - movs r3, #0xe - bl DisplayMessageAndContinueTask - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - add sp, #0x10 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BuyMenuDisplayMessage - - thumb_func_start BuyMenuDrawGraphics -BuyMenuDrawGraphics: @ 0x080DFA68 - push {lr} - bl BuyMenuDrawMapGraphics - bl BuyMenuCopyMenuBgToBg1TilemapBuffer - movs r0, #0x13 - movs r1, #0xb - bl AddMoneyLabelObject - ldr r0, _080DFAB0 - ldr r0, [r0] - movs r1, #0x92 - lsls r1, r1, #3 - adds r0, r0, r1 - bl sub_080E4908 - adds r3, r0, #0 - movs r0, #0 - movs r1, #1 - movs r2, #0xd - bl PrintMoneyAmountInMoneyBoxWithBorder - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #3 - bl schedule_bg_copy_tilemap_to_vram - pop {r0} - bx r0 - .align 2, 0 -_080DFAB0: .4byte gUnknown_3005AEC - thumb_func_end BuyMenuDrawGraphics - - thumb_func_start BuyMenuDrawMapGraphics -BuyMenuDrawMapGraphics: @ 0x080DFAB4 - push {lr} - bl BuyMenuCollectEventObjectData - bl BuyMenuDrawEventObjects - bl BuyMenuDrawMapBg - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BuyMenuDrawMapGraphics - - thumb_func_start BuyMenuDrawMapBg -BuyMenuDrawMapBg: @ 0x080DFAC8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - ldr r0, _080DFB48 - ldr r0, [r0] - mov sb, r0 - mov r4, sp - adds r4, #2 - mov r0, sp - adds r1, r4, #0 - bl GetXYCoordsOneStepInFrontOfPlayer - mov r1, sp - mov r0, sp - ldrh r0, [r0] - subs r0, #4 - strh r0, [r1] - ldrh r0, [r4] - subs r0, #4 - strh r0, [r4] - movs r1, #0 - mov sl, r4 -_080DFAFA: - movs r4, #0 - lsls r7, r1, #0x10 - asrs r0, r7, #0x10 - mov r8, r0 -_080DFB02: - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - lsls r4, r4, #0x10 - asrs r5, r4, #0x10 - adds r0, r0, r5 - mov r2, sl - movs r3, #0 - ldrsh r1, [r2, r3] - add r1, r8 - bl MapGridGetMetatileIdAt - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r0, r5, #0 - mov r1, r8 - bl BuyMenuCheckForOverlapWithMenuBg - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080DFB4C - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - adds r0, r0, r5 - mov r2, sl - movs r3, #0 - ldrsh r1, [r2, r3] - add r1, r8 - bl MapGridGetMetatileLayerTypeAt - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - b _080DFB4E - .align 2, 0 -_080DFB48: .4byte gUnknown_2036FB8 -_080DFB4C: - movs r5, #1 -_080DFB4E: - ldr r0, _080DFB6C - cmp r6, r0 - bhi _080DFB70 - asrs r0, r4, #0x10 - mov r2, sb - ldr r1, [r2, #0x10] - lsls r3, r6, #4 - ldr r2, [r1, #0xc] - adds r2, r2, r3 - asrs r1, r7, #0x10 - adds r3, r5, #0 - bl BuyMenuDrawMapMetatile - b _080DFB88 - .align 2, 0 -_080DFB6C: .4byte 0x000001FF -_080DFB70: - asrs r0, r4, #0x10 - mov r3, sb - ldr r2, [r3, #0x14] - ldr r3, _080DFBB0 - adds r1, r6, r3 - lsls r1, r1, #4 - ldr r2, [r2, #0xc] - adds r2, r2, r1 - asrs r1, r7, #0x10 - adds r3, r5, #0 - bl BuyMenuDrawMapMetatile -_080DFB88: - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r4, r1 - lsrs r4, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xe - ble _080DFB02 - adds r0, r7, r1 - lsrs r1, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #9 - ble _080DFAFA - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DFBB0: .4byte 0xFFFFFE00 - thumb_func_end BuyMenuDrawMapBg - - thumb_func_start BuyMenuDrawMapMetatile -BuyMenuDrawMapMetatile: @ 0x080DFBB4 - push {r4, r5, r6, r7, lr} - adds r7, r2, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r2, r3, #0 - lsls r0, r0, #0x11 - lsrs r5, r0, #0x10 - lsls r1, r1, #0x16 - lsrs r1, r1, #0x10 - cmp r3, #1 - beq _080DFC04 - cmp r3, #1 - bgt _080DFBD4 - cmp r3, #0 - beq _080DFBDA - b _080DFC6C -_080DFBD4: - cmp r2, #2 - beq _080DFC3C - b _080DFC6C -_080DFBDA: - ldr r6, _080DFC00 - ldr r0, [r6] - movs r2, #0xc0 - lsls r2, r2, #5 - adds r0, r0, r2 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - lsls r4, r1, #0x10 - asrs r4, r4, #0x10 - adds r1, r5, #0 - adds r2, r4, #0 - adds r3, r7, #0 - bl BuyMenuDrawMapMetatileLayer - ldr r0, [r6] - movs r1, #0x80 - lsls r1, r1, #4 - b _080DFC26 - .align 2, 0 -_080DFC00: .4byte gUnknown_2039C10 -_080DFC04: - ldr r6, _080DFC38 - ldr r0, [r6] - movs r2, #0x80 - lsls r2, r2, #5 - adds r0, r0, r2 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - lsls r4, r1, #0x10 - asrs r4, r4, #0x10 - adds r1, r5, #0 - adds r2, r4, #0 - adds r3, r7, #0 - bl BuyMenuDrawMapMetatileLayer - ldr r0, [r6] - movs r1, #0xc0 - lsls r1, r1, #5 -_080DFC26: - adds r0, r0, r1 - adds r3, r7, #0 - adds r3, #8 - adds r1, r5, #0 - adds r2, r4, #0 - bl BuyMenuDrawMapMetatileLayer - b _080DFC6C - .align 2, 0 -_080DFC38: .4byte gUnknown_2039C10 -_080DFC3C: - ldr r6, _080DFC74 - ldr r0, [r6] - movs r2, #0x80 - lsls r2, r2, #5 - adds r0, r0, r2 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - lsls r4, r1, #0x10 - asrs r4, r4, #0x10 - adds r1, r5, #0 - adds r2, r4, #0 - adds r3, r7, #0 - bl BuyMenuDrawMapMetatileLayer - ldr r0, [r6] - movs r1, #0x80 - lsls r1, r1, #4 - adds r0, r0, r1 - adds r3, r7, #0 - adds r3, #8 - adds r1, r5, #0 - adds r2, r4, #0 - bl BuyMenuDrawMapMetatileLayer -_080DFC6C: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DFC74: .4byte gUnknown_2039C10 - thumb_func_end BuyMenuDrawMapMetatile - - thumb_func_start BuyMenuDrawMapMetatileLayer -BuyMenuDrawMapMetatileLayer: @ 0x080DFC78 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r1, r1, r2 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r3] - strh r0, [r1] - ldrh r0, [r3, #2] - strh r0, [r1, #2] - adds r2, r1, #0 - adds r2, #0x40 - ldrh r0, [r3, #4] - strh r0, [r2] - adds r1, #0x42 - ldrh r0, [r3, #6] - strh r0, [r1] - bx lr - .align 2, 0 - thumb_func_end BuyMenuDrawMapMetatileLayer - - thumb_func_start BuyMenuCollectEventObjectData -BuyMenuCollectEventObjectData: @ 0x080DFCA0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - movs r0, #0 - mov r8, r0 - mov r4, sp - adds r4, #2 - mov r0, sp - adds r1, r4, #0 - bl GetXYCoordsOneStepInFrontOfPlayer - movs r7, #0 - ldr r5, _080DFD94 - ldr r3, _080DFD98 - movs r2, #0x10 -_080DFCC4: - ldr r1, [r5] - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #1 - adds r1, r1, r3 - adds r1, r1, r0 - strh r2, [r1] - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #0xf - bls _080DFCC4 - movs r7, #0 - str r4, [sp, #8] - ldr r1, _080DFD94 - mov sb, r1 - mov r2, sp - str r2, [sp, #4] -_080DFCE8: - movs r3, #0 - adds r4, r7, #1 - str r4, [sp, #0xc] -_080DFCEE: - ldr r1, _080DFD9C - adds r0, r3, r1 - ldr r2, [sp, #4] - ldrh r2, [r2] - adds r0, r0, r2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldr r4, _080DFDA0 - adds r1, r7, r4 - ldr r2, [sp, #8] - ldrh r2, [r2] - adds r1, r1, r2 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - str r3, [sp, #0x10] - bl GetEventObjectIdByXY - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r3, [sp, #0x10] - cmp r6, #0x10 - beq _080DFE06 - mov r4, sb - ldr r1, [r4] - mov r0, r8 - lsls r4, r0, #2 - adds r0, r4, r0 - lsls r5, r0, #1 - ldr r2, _080DFD98 - adds r0, r1, r2 - adds r0, r0, r5 - movs r2, #0 - mov sl, r2 - strh r6, [r0] - ldr r2, _080DFDA4 - adds r0, r1, r2 - adds r0, r0, r5 - strh r3, [r0] - ldr r0, _080DFDA8 - adds r1, r1, r0 - adds r1, r1, r5 - strh r7, [r1] - ldr r1, [sp, #4] - movs r2, #0 - ldrsh r0, [r1, r2] - subs r1, r3, #4 - adds r0, r0, r1 - ldr r1, [sp, #8] - movs r2, #0 - ldrsh r1, [r1, r2] - mov ip, r1 - subs r1, r7, #2 - add r1, ip - str r3, [sp, #0x10] - bl MapGridGetMetatileLayerTypeAt - mov r1, sb - ldr r2, [r1] - ldr r1, _080DFDAC - adds r1, r1, r2 - mov ip, r1 - add ip, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, ip - strh r0, [r1] - ldr r1, _080DFDB0 - lsls r0, r6, #3 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - ldr r3, [sp, #0x10] - cmp r0, #2 - beq _080DFDC8 - cmp r0, #2 - bgt _080DFDB4 - cmp r0, #1 - beq _080DFDBA - b _080DFDE8 - .align 2, 0 -_080DFD94: .4byte gUnknown_2039C10 -_080DFD98: .4byte 0x00002010 -_080DFD9C: .4byte 0x0000FFFC -_080DFDA0: .4byte 0x0000FFFE -_080DFDA4: .4byte 0x00002012 -_080DFDA8: .4byte 0x00002014 -_080DFDAC: .4byte 0x00002018 -_080DFDB0: .4byte gUnknown_2036FF0 -_080DFDB4: - cmp r0, #3 - beq _080DFDD8 - b _080DFDE8 -_080DFDBA: - ldr r4, _080DFDC4 - adds r0, r2, r4 - adds r0, r0, r5 - mov r1, sl - b _080DFDFA - .align 2, 0 -_080DFDC4: .4byte 0x00002016 -_080DFDC8: - ldr r4, _080DFDD4 - adds r0, r2, r4 - adds r0, r0, r5 - movs r1, #1 - b _080DFDFA - .align 2, 0 -_080DFDD4: .4byte 0x00002016 -_080DFDD8: - ldr r1, _080DFDE4 - adds r0, r2, r1 - adds r0, r0, r5 - movs r1, #2 - b _080DFDFA - .align 2, 0 -_080DFDE4: .4byte 0x00002016 -_080DFDE8: - mov r2, sb - ldr r0, [r2] - mov r2, r8 - adds r1, r4, r2 - lsls r1, r1, #1 - ldr r4, _080DFE30 - adds r0, r0, r4 - adds r0, r0, r1 - movs r1, #3 -_080DFDFA: - strh r1, [r0] - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 -_080DFE06: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #6 - bhi _080DFE12 - b _080DFCEE -_080DFE12: - ldr r1, [sp, #0xc] - lsls r0, r1, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #4 - bhi _080DFE1E - b _080DFCE8 -_080DFE1E: - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DFE30: .4byte 0x00002016 - thumb_func_end BuyMenuCollectEventObjectData - - thumb_func_start BuyMenuDrawEventObjects -BuyMenuDrawEventObjects: @ 0x080DFE34 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - movs r7, #0 - ldr r0, _080DFF38 - mov r8, r0 - ldr r1, _080DFF3C - mov sl, r1 - ldr r2, _080DFF40 - mov sb, r2 -_080DFE4E: - mov r3, r8 - ldr r0, [r3] - lsls r1, r7, #2 - adds r1, r1, r7 - lsls r5, r1, #1 - ldr r4, _080DFF44 - adds r0, r0, r4 - adds r1, r0, r5 - movs r2, #0 - ldrsh r0, [r1, r2] - cmp r0, #0x10 - beq _080DFF1C - adds r1, r0, #0 - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sl - ldrb r0, [r0, #5] - bl GetEventObjectGraphicsInfo - mov r4, r8 - ldr r3, [r4] - ldr r2, _080DFF44 - adds r1, r3, r2 - adds r1, r1, r5 - movs r4, #0 - ldrsh r2, [r1, r4] - lsls r1, r2, #3 - adds r1, r1, r2 - lsls r1, r1, #2 - add r1, sl - ldrb r4, [r1, #5] - ldr r2, _080DFF48 - adds r1, r3, r2 - adds r1, r1, r5 - ldrh r2, [r1] - lsls r2, r2, #4 - adds r2, #8 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - ldr r1, _080DFF4C - adds r3, r3, r1 - adds r3, r3, r5 - ldrh r3, [r3] - lsls r3, r3, #4 - movs r1, #0xa - ldrsh r0, [r0, r1] - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - subs r0, #0x30 - subs r3, r3, r0 - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - movs r0, #2 - str r0, [sp] - adds r0, r4, #0 - ldr r1, _080DFF50 - bl AddPseudoEventObject - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r6, r4, #0 - ldr r2, _080DFF44 - adds r1, r5, r2 - mov r3, r8 - ldr r0, [r3] - adds r0, r0, r1 - bl BuyMenuCheckIfEventObjectOverlapsMenuBg - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080DFF04 - lsls r2, r4, #4 - adds r2, r2, r4 - lsls r2, r2, #2 - add r2, sb - adds r2, #0x42 - ldrb r0, [r2] - movs r4, #0x40 - rsbs r4, r4, #0 - adds r1, r4, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - movs r1, #0x3f - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2] -_080DFF04: - lsls r0, r6, #4 - adds r0, r0, r6 - lsls r0, r0, #2 - add r0, sb - mov r2, r8 - ldr r1, [r2] - ldr r3, _080DFF54 - adds r1, r1, r3 - adds r1, r1, r5 - ldrb r1, [r1] - bl StartSpriteAnim -_080DFF1C: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #0xf - bls _080DFE4E - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080DFF38: .4byte gUnknown_2039C10 -_080DFF3C: .4byte gUnknown_2036FF0 -_080DFF40: .4byte gUnknown_20205AC -_080DFF44: .4byte 0x00002010 -_080DFF48: .4byte 0x00002012 -_080DFF4C: .4byte 0x00002014 -_080DFF50: .4byte sub_08007140 -_080DFF54: .4byte 0x00002016 - thumb_func_end BuyMenuDrawEventObjects - - thumb_func_start BuyMenuCheckIfEventObjectOverlapsMenuBg -BuyMenuCheckIfEventObjectOverlapsMenuBg: @ 0x080DFF58 - push {r4, lr} - adds r4, r0, #0 - movs r1, #2 - ldrsh r0, [r4, r1] - movs r2, #4 - ldrsh r1, [r4, r2] - adds r1, #2 - bl BuyMenuCheckForOverlapWithMenuBg - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080DFF7C - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _080DFF7C - movs r0, #1 - b _080DFF7E -_080DFF7C: - movs r0, #0 -_080DFF7E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end BuyMenuCheckIfEventObjectOverlapsMenuBg - - thumb_func_start BuyMenuCopyMenuBgToBg1TilemapBuffer -BuyMenuCopyMenuBgToBg1TilemapBuffer: @ 0x080DFF84 - push {r4, r5, r6, lr} - ldr r0, _080DFFC0 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #4 - adds r4, r0, r1 - adds r3, r0, #0 - movs r1, #0 - ldr r0, _080DFFC4 - adds r6, r0, #0 - ldr r5, _080DFFC8 -_080DFF9A: - lsls r0, r1, #0x10 - asrs r2, r0, #0x10 - lsls r1, r2, #1 - adds r0, r1, r3 - ldrh r0, [r0] - cmp r0, #0 - beq _080DFFAE - adds r1, r1, r4 - adds r0, r0, r6 - strh r0, [r1] -_080DFFAE: - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, r5 - ble _080DFF9A - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080DFFC0: .4byte gUnknown_2039C10 -_080DFFC4: .4byte 0x0000C3E3 -_080DFFC8: .4byte 0x000003FF - thumb_func_end BuyMenuCopyMenuBgToBg1TilemapBuffer - - thumb_func_start BuyMenuCheckForOverlapWithMenuBg -BuyMenuCheckForOverlapWithMenuBg: @ 0x080DFFCC - push {lr} - ldr r2, _080E0000 - ldr r2, [r2] - lsls r0, r0, #1 - lsls r1, r1, #6 - adds r1, r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r0, [r1] - cmp r0, #0 - bne _080E0004 - adds r0, r1, #0 - adds r0, #0x40 - ldrh r0, [r0] - cmp r0, #0 - bne _080E0004 - ldrh r0, [r1, #2] - cmp r0, #0 - bne _080E0004 - adds r0, r1, #0 - adds r0, #0x42 - ldrh r0, [r0] - cmp r0, #0 - bne _080E0004 - movs r0, #1 - b _080E0006 - .align 2, 0 -_080E0000: .4byte gUnknown_2039C10 -_080E0004: - movs r0, #0 -_080E0006: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end BuyMenuCheckForOverlapWithMenuBg - - thumb_func_start Task_BuyMenu -Task_BuyMenu: @ 0x080E000C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _080E0058 - adds r4, r0, r1 - ldr r0, _080E005C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080E002E - b _080E01DA -_080E002E: - ldrb r0, [r4, #0xe] - bl ListMenu_ProcessInput - adds r5, r0, #0 - ldrb r0, [r4, #0xe] - ldr r7, _080E0060 - ldr r2, [r7] - ldr r3, _080E0064 - adds r1, r2, r3 - subs r3, #2 - adds r2, r2, r3 - bl ListMenuGetScrollAndRow - movs r0, #2 - rsbs r0, r0, #0 - cmp r5, r0 - beq _080E0068 - adds r0, #1 - cmp r5, r0 - bne _080E0076 - b _080E01DA - .align 2, 0 -_080E0058: .4byte gUnknown_3005B68 -_080E005C: .4byte gUnknown_2037C74 -_080E0060: .4byte gUnknown_2039C10 -_080E0064: .4byte 0x00002008 -_080E0068: - movs r0, #5 - bl sub_080A306C - adds r0, r6, #0 - bl ExitBuyMenu - b _080E01DA -_080E0076: - movs r0, #5 - bl sub_080A306C - strh r5, [r4, #0xa] - movs r0, #2 - bl ClearWindowTilemap - bl BuyMenuRemoveScrollIndicatorArrows - ldrb r0, [r4, #0xe] - movs r1, #2 - bl BuyMenuPrintCursor - ldr r0, _080E00C0 - ldrb r0, [r0, #0xf] - cmp r0, #0 - bne _080E00C4 - lsls r0, r5, #0x10 - lsrs r0, r0, #0x10 - bl sub_080D6CD4 - adds r4, r0, #0 - movs r0, #1 - bl GetPriceReduction - ldr r1, [r7] - movs r2, #0x80 - lsls r2, r2, #6 - adds r1, r1, r2 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - asrs r4, r0 - str r4, [r1] - b _080E00DA - .align 2, 0 -_080E00C0: .4byte gUnknown_2039C00 -_080E00C4: - ldr r1, [r7] - movs r3, #0x80 - lsls r3, r3, #6 - adds r1, r1, r3 - ldr r2, _080E0104 - lsls r0, r5, #3 - subs r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0, #0x10] - str r0, [r1] -_080E00DA: - ldr r0, _080E0108 - ldr r0, [r0] - movs r1, #0x92 - lsls r1, r1, #3 - adds r0, r0, r1 - ldr r2, _080E010C - mov r8, r2 - ldr r1, [r2] - movs r7, #0x80 - lsls r7, r7, #6 - adds r1, r1, r7 - ldr r1, [r1] - bl IsEnoughMoney - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080E0118 - ldr r1, _080E0110 - ldr r2, _080E0114 - b _080E0170 - .align 2, 0 -_080E0104: .4byte gUnknown_8580CD0 -_080E0108: .4byte gUnknown_3005AEC -_080E010C: .4byte gUnknown_2039C10 -_080E0110: .4byte gUnknown_85C99B8 -_080E0114: .4byte BuyMenuReturnToItemList -_080E0118: - ldr r4, _080E0158 - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _080E0180 - lsls r0, r5, #0x10 - lsrs r5, r0, #0x10 - ldr r1, _080E015C - adds r0, r5, #0 - bl sub_080D5EC8 - adds r0, r5, #0 - bl sub_080D6DB0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bne _080E016C - ldr r4, _080E0160 - adds r0, r5, #0 - bl ItemIdToBattleMoveId - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0xd - ldr r0, _080E0164 - adds r1, r1, r0 - adds r0, r4, #0 - bl StringCopy - ldr r1, _080E0168 - b _080E016E - .align 2, 0 -_080E0158: .4byte gUnknown_2039C00 -_080E015C: .4byte gUnknown_2021C40 -_080E0160: .4byte gUnknown_2021C54 -_080E0164: .4byte gUnknown_82EACC4 -_080E0168: .4byte gUnknown_85C9903 -_080E016C: - ldr r1, _080E0178 -_080E016E: - ldr r2, _080E017C -_080E0170: - adds r0, r6, #0 - bl BuyMenuDisplayMessage - b _080E01DA - .align 2, 0 -_080E0178: .4byte gUnknown_85C98EC -_080E017C: .4byte Task_BuyHowManyDialogueInit -_080E0180: - ldr r0, _080E01B4 - lsls r1, r5, #3 - subs r1, r1, r5 - lsls r1, r1, #2 - ldr r2, _080E01B8 - adds r1, r1, r2 - bl StringCopy - ldr r0, _080E01BC - mov r3, r8 - ldr r1, [r3] - adds r1, r1, r7 - ldr r1, [r1] - movs r2, #0 - movs r3, #6 - bl sub_080089D8 - ldrb r0, [r4, #0xf] - cmp r0, #1 - bne _080E01C8 - ldr r0, _080E01C0 - ldr r1, _080E01C4 - bl StringExpandPlaceholders - b _080E01D0 - .align 2, 0 -_080E01B4: .4byte gUnknown_2021C40 -_080E01B8: .4byte gUnknown_8580CD1 -_080E01BC: .4byte gUnknown_2021C54 -_080E01C0: .4byte gUnknown_2021C7C -_080E01C4: .4byte gUnknown_85C9936 -_080E01C8: - ldr r0, _080E01E4 - ldr r1, _080E01E8 - bl StringExpandPlaceholders -_080E01D0: - ldr r1, _080E01E4 - ldr r2, _080E01EC - adds r0, r6, #0 - bl BuyMenuDisplayMessage -_080E01DA: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E01E4: .4byte gUnknown_2021C7C -_080E01E8: .4byte gUnknown_85C994B -_080E01EC: .4byte BuyMenuConfirmPurchase - thumb_func_end Task_BuyMenu - - thumb_func_start Task_BuyHowManyDialogueInit -Task_BuyHowManyDialogueInit: @ 0x080E01F0 - push {r4, r5, r6, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r5, r6, #2 - adds r5, r5, r6 - lsls r5, r5, #3 - ldr r0, _080E0290 - adds r5, r5, r0 - ldrh r0, [r5, #0xa] - bl CountTotalItemQuantityInBag - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - movs r0, #3 - movs r1, #0 - movs r2, #1 - movs r3, #0xd - bl DrawStdFrameWithCustomTileAndPalette - ldr r0, _080E0294 - adds r1, r4, #0 - movs r2, #1 - movs r3, #4 - bl sub_080089D8 - ldr r4, _080E0298 - ldr r1, _080E029C - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - movs r0, #3 - adds r1, r4, #0 - movs r2, #0 - movs r3, #2 - bl sub_080DF9E8 - movs r0, #1 - strh r0, [r5, #2] - movs r0, #4 - movs r1, #0 - movs r2, #1 - movs r3, #0xd - bl DrawStdFrameWithCustomTileAndPalette - adds r0, r6, #0 - bl BuyMenuPrintItemQuantityAndPrice - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, _080E02A0 - ldr r0, [r0] - movs r1, #0x92 - lsls r1, r1, #3 - adds r0, r0, r1 - bl sub_080E4908 - ldr r1, _080E02A4 - ldr r4, [r1] - movs r2, #0x80 - lsls r2, r2, #6 - adds r1, r4, r2 - ldr r1, [r1] - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0x63 - bls _080E02AC - ldr r0, _080E02A8 - adds r1, r4, r0 - movs r0, #0x63 - strb r0, [r1] - b _080E02B2 - .align 2, 0 -_080E0290: .4byte gUnknown_3005B68 -_080E0294: .4byte gUnknown_2021C40 -_080E0298: .4byte gUnknown_2021C7C -_080E029C: .4byte gUnknown_85C98D5 -_080E02A0: .4byte gUnknown_3005AEC -_080E02A4: .4byte gUnknown_2039C10 -_080E02A8: .4byte 0x0000200A -_080E02AC: - ldr r2, _080E02C8 - adds r0, r4, r2 - strb r1, [r0] -_080E02B2: - ldr r0, _080E02CC - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080E02D0 - str r0, [r1] - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080E02C8: .4byte 0x0000200A -_080E02CC: .4byte gUnknown_3005B60 -_080E02D0: .4byte Task_BuyHowManyDialogueHandleInput - thumb_func_end Task_BuyHowManyDialogueInit - - thumb_func_start Task_BuyHowManyDialogueHandleInput -Task_BuyHowManyDialogueHandleInput: @ 0x080E02D4 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r4, r6, #0 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _080E0330 - adds r5, r0, r1 - adds r0, r5, #2 - ldr r7, _080E0334 - ldr r1, [r7] - ldr r2, _080E0338 - adds r1, r1, r2 - ldrb r1, [r1] - bl AdjustQuantityAccordingToDPadInput - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080E033C - ldrh r0, [r5, #0xa] - bl sub_080D6CD4 - adds r4, r0, #0 - movs r0, #1 - bl GetPriceReduction - ldr r1, [r7] - movs r2, #0x80 - lsls r2, r2, #6 - adds r1, r1, r2 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - asrs r4, r0 - movs r2, #2 - ldrsh r0, [r5, r2] - muls r0, r4, r0 - str r0, [r1] - adds r0, r6, #0 - bl BuyMenuPrintItemQuantityAndPrice - b _080E03F0 - .align 2, 0 -_080E0330: .4byte gUnknown_3005B68 -_080E0334: .4byte gUnknown_2039C10 -_080E0338: .4byte 0x0000200A -_080E033C: - ldr r0, _080E03A8 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080E03C0 - movs r0, #5 - bl sub_080A306C - movs r0, #4 - movs r1, #0 - bl sub_08198134 - movs r0, #3 - movs r1, #0 - bl sub_08198134 - movs r0, #4 - bl ClearWindowTilemap - movs r0, #3 - bl ClearWindowTilemap - movs r0, #1 - bl PutWindowTilemap - ldrh r0, [r5, #0xa] - ldr r1, _080E03AC - bl sub_080D5EC8 - ldr r0, _080E03B0 - movs r2, #2 - ldrsh r1, [r5, r2] - movs r2, #0 - movs r3, #2 - bl sub_080089D8 - ldr r0, _080E03B4 - ldr r1, [r7] - movs r2, #0x80 - lsls r2, r2, #6 - adds r1, r1, r2 - ldr r1, [r1] - movs r2, #0 - movs r3, #6 - bl sub_080089D8 - ldr r1, _080E03B8 - ldr r2, _080E03BC - adds r0, r6, #0 - bl BuyMenuDisplayMessage - b _080E03F0 - .align 2, 0 -_080E03A8: .4byte gUnknown_3002360 -_080E03AC: .4byte gUnknown_2021C40 -_080E03B0: .4byte gUnknown_2021C54 -_080E03B4: .4byte gUnknown_2021C68 -_080E03B8: .4byte gUnknown_85C991F -_080E03BC: .4byte BuyMenuConfirmPurchase -_080E03C0: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080E03F0 - movs r0, #5 - bl sub_080A306C - movs r0, #4 - movs r1, #0 - bl sub_08198134 - movs r0, #3 - movs r1, #0 - bl sub_08198134 - movs r0, #4 - bl ClearWindowTilemap - movs r0, #3 - bl ClearWindowTilemap - adds r0, r4, #0 - bl BuyMenuReturnToItemList -_080E03F0: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Task_BuyHowManyDialogueHandleInput - - thumb_func_start BuyMenuConfirmPurchase -BuyMenuConfirmPurchase: @ 0x080E03F8 - push {lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080E0420 - movs r2, #0 - str r2, [sp] - movs r2, #1 - str r2, [sp, #4] - movs r2, #0xd - str r2, [sp, #8] - ldr r2, _080E0424 - str r2, [sp, #0xc] - movs r2, #1 - movs r3, #0 - bl sub_08121F84 - add sp, #0x10 - pop {r0} - bx r0 - .align 2, 0 -_080E0420: .4byte gUnknown_8562A2C -_080E0424: .4byte gUnknown_856298C - thumb_func_end BuyMenuConfirmPurchase - - thumb_func_start BuyMenuTryMakePurchase -BuyMenuTryMakePurchase: @ 0x080E0428 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r7, r5, #0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080E046C - adds r4, r0, r1 - movs r0, #1 - bl PutWindowTilemap - ldr r6, _080E0470 - ldrb r0, [r6, #0xf] - cmp r0, #0 - bne _080E048C - ldrh r0, [r4, #0xa] - ldrh r1, [r4, #2] - bl AddBagItem - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080E047C - ldr r1, _080E0474 - ldr r2, _080E0478 - adds r0, r5, #0 - bl BuyMenuDisplayMessage - adds r0, r5, #0 - bl RecordItemPurchase - b _080E04C6 - .align 2, 0 -_080E046C: .4byte gUnknown_3005B68 -_080E0470: .4byte gUnknown_2039C00 -_080E0474: .4byte gUnknown_85C9962 -_080E0478: .4byte BuyMenuSubtractMoney -_080E047C: - ldr r1, _080E0484 - ldr r2, _080E0488 - b _080E04AC - .align 2, 0 -_080E0484: .4byte gUnknown_85C99C8 -_080E0488: .4byte BuyMenuReturnToItemList -_080E048C: - ldrb r0, [r4, #0xa] - bl sub_08161868 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080E04BC - ldrb r0, [r6, #0xf] - cmp r0, #1 - bne _080E04A8 - ldr r1, _080E04A4 - b _080E04AA - .align 2, 0 -_080E04A4: .4byte gUnknown_85C9976 -_080E04A8: - ldr r1, _080E04B4 -_080E04AA: - ldr r2, _080E04B8 -_080E04AC: - adds r0, r5, #0 - bl BuyMenuDisplayMessage - b _080E04C6 - .align 2, 0 -_080E04B4: .4byte gUnknown_85C9998 -_080E04B8: .4byte BuyMenuSubtractMoney -_080E04BC: - ldr r1, _080E04CC - ldr r2, _080E04D0 - adds r0, r7, #0 - bl BuyMenuDisplayMessage -_080E04C6: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E04CC: .4byte gUnknown_85C99DE -_080E04D0: .4byte BuyMenuReturnToItemList - thumb_func_end BuyMenuTryMakePurchase - - thumb_func_start BuyMenuSubtractMoney -BuyMenuSubtractMoney: @ 0x080E04D4 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r0, #0x26 - bl IncrementGameStat - ldr r5, _080E0528 - ldr r0, [r5] - movs r4, #0x92 - lsls r4, r4, #3 - adds r0, r0, r4 - ldr r1, _080E052C - ldr r1, [r1] - movs r2, #0x80 - lsls r2, r2, #6 - adds r1, r1, r2 - ldr r1, [r1] - bl RemoveMoney - movs r0, #0x5f - bl sub_080A306C - ldr r0, [r5] - adds r0, r0, r4 - bl sub_080E4908 - adds r1, r0, #0 - movs r0, #0 - movs r2, #0 - bl PrintMoneyAmountInMoneyBox - ldr r0, _080E0530 - ldrb r0, [r0, #0xf] - cmp r0, #0 - bne _080E053C - ldr r0, _080E0534 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080E0538 - b _080E0548 - .align 2, 0 -_080E0528: .4byte gUnknown_3005AEC -_080E052C: .4byte gUnknown_2039C10 -_080E0530: .4byte gUnknown_2039C00 -_080E0534: .4byte gUnknown_3005B60 -_080E0538: .4byte Task_ReturnToItemListAfterItemPurchase -_080E053C: - ldr r0, _080E0550 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080E0554 -_080E0548: - str r0, [r1] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080E0550: .4byte gUnknown_3005B60 -_080E0554: .4byte Task_ReturnToItemListAfterDecorationPurchase - thumb_func_end BuyMenuSubtractMoney - - thumb_func_start Task_ReturnToItemListAfterItemPurchase -Task_ReturnToItemListAfterItemPurchase: @ 0x080E0558 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _080E05A8 - adds r5, r0, r1 - ldr r0, _080E05AC - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _080E05BE - movs r0, #5 - bl sub_080A306C - movs r1, #0xa - ldrsh r0, [r5, r1] - cmp r0, #4 - bne _080E05B8 - movs r1, #2 - ldrsh r0, [r5, r1] - cmp r0, #9 - ble _080E05B8 - movs r0, #0xc - movs r1, #1 - bl AddBagItem - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080E05B8 - ldr r1, _080E05B0 - ldr r2, _080E05B4 - adds r0, r4, #0 - bl BuyMenuDisplayMessage - b _080E05BE - .align 2, 0 -_080E05A8: .4byte gUnknown_3005B68 -_080E05AC: .4byte gUnknown_3002360 -_080E05B0: .4byte gUnknown_85C9A2D -_080E05B4: .4byte BuyMenuReturnToItemList -_080E05B8: - adds r0, r4, #0 - bl BuyMenuReturnToItemList -_080E05BE: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end Task_ReturnToItemListAfterItemPurchase - - thumb_func_start Task_ReturnToItemListAfterDecorationPurchase -Task_ReturnToItemListAfterDecorationPurchase: @ 0x080E05C4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080E05E8 - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _080E05E2 - movs r0, #5 - bl sub_080A306C - adds r0, r4, #0 - bl BuyMenuReturnToItemList -_080E05E2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E05E8: .4byte gUnknown_3002360 - thumb_func_end Task_ReturnToItemListAfterDecorationPurchase - - thumb_func_start BuyMenuReturnToItemList -BuyMenuReturnToItemList: @ 0x080E05EC - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r5, _080E0630 - adds r6, r4, r5 - movs r0, #5 - movs r1, #0 - bl sub_08197EBC - ldrb r0, [r6, #0xe] - movs r1, #1 - bl BuyMenuPrintCursor - movs r0, #1 - bl PutWindowTilemap - movs r0, #2 - bl PutWindowTilemap - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - bl BuyMenuAddScrollIndicatorArrows - subs r5, #8 - adds r4, r4, r5 - ldr r0, _080E0634 - str r0, [r4] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080E0630: .4byte gUnknown_3005B68 -_080E0634: .4byte Task_BuyMenu - thumb_func_end BuyMenuReturnToItemList - - thumb_func_start BuyMenuPrintItemQuantityAndPrice -BuyMenuPrintItemQuantityAndPrice: @ 0x080E0638 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _080E06A0 - adds r4, r4, r0 - movs r0, #4 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r0, _080E06A4 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r0, r1 - ldr r3, [r0] - movs r0, #0xff - str r0, [sp] - movs r0, #4 - movs r1, #0x20 - movs r2, #2 - bl CreateBicycleAnimationTask - ldr r0, _080E06A8 - movs r2, #2 - ldrsh r1, [r4, r2] - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - ldr r4, _080E06AC - ldr r1, _080E06B0 - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - movs r0, #4 - adds r1, r4, #0 - movs r2, #0 - movs r3, #2 - bl sub_080DF9E8 - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E06A0: .4byte gUnknown_3005B68 -_080E06A4: .4byte gUnknown_2039C10 -_080E06A8: .4byte gUnknown_2021C40 -_080E06AC: .4byte gUnknown_2021C7C -_080E06B0: .4byte gUnknown_85C943C - thumb_func_end BuyMenuPrintItemQuantityAndPrice - - thumb_func_start ExitBuyMenu -ExitBuyMenu: @ 0x080E06B4 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _080E06EC - ldr r0, _080E06F0 - str r0, [r1] - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _080E06F4 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080E06F8 - str r1, [r0] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E06EC: .4byte gUnknown_3005B0C -_080E06F0: .4byte MapPostLoadHook_ReturnToShopMenu -_080E06F4: .4byte gUnknown_3005B60 -_080E06F8: .4byte Task_ExitBuyMenu - thumb_func_end ExitBuyMenu - - thumb_func_start Task_ExitBuyMenu -Task_ExitBuyMenu: @ 0x080E06FC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080E0728 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080E0722 - bl RemoveMoneyLabelObject - bl BuyMenuFreeMemory - ldr r0, _080E072C - bl SetMainCallback2 - adds r0, r4, #0 - bl DestroyTask -_080E0722: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E0728: .4byte gUnknown_2037C74 -_080E072C: .4byte sub_08085A30 - thumb_func_end Task_ExitBuyMenu - - thumb_func_start ClearItemPurchases -ClearItemPurchases: @ 0x080E0730 - push {lr} - ldr r0, _080E0748 - movs r1, #0 - strb r1, [r0] - ldr r0, _080E074C - movs r1, #0 - movs r2, #0xc - bl memset - pop {r0} - bx r0 - .align 2, 0 -_080E0748: .4byte gUnknown_2039C1C -_080E074C: .4byte gUnknown_2039C20 - thumb_func_end ClearItemPurchases - - thumb_func_start RecordItemPurchase -RecordItemPurchase: @ 0x080E0750 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080E078C - adds r4, r1, r0 - movs r3, #0 - ldr r5, _080E0790 - adds r6, r5, #0 -_080E0766: - lsls r0, r3, #2 - adds r2, r0, r6 - ldrh r1, [r2] - movs r7, #0xa - ldrsh r0, [r4, r7] - cmp r1, r0 - bne _080E079C - ldrh r0, [r2, #2] - cmp r0, #0 - beq _080E079C - adds r1, r0, #0 - movs r3, #2 - ldrsh r0, [r4, r3] - adds r0, r1, r0 - cmp r0, #0xff - ble _080E0794 - movs r0, #0xff - strh r0, [r2, #2] - b _080E07C6 - .align 2, 0 -_080E078C: .4byte gUnknown_3005B68 -_080E0790: .4byte gUnknown_2039C20 -_080E0794: - ldrh r0, [r4, #2] - adds r0, r1, r0 - strh r0, [r2, #2] - b _080E07C6 -_080E079C: - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #2 - bls _080E0766 - ldr r2, _080E07CC - ldrb r0, [r2] - cmp r0, #2 - bhi _080E07C6 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrh r1, [r4, #0xa] - strh r1, [r0] - ldrb r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r5 - ldrh r1, [r4, #2] - strh r1, [r0, #2] - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] -_080E07C6: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E07CC: .4byte gUnknown_2039C1C - thumb_func_end RecordItemPurchase - - thumb_func_start CreatePokemartMenu -CreatePokemartMenu: @ 0x080E07D0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0 - bl sub_080DEFF0 - adds r0, r4, #0 - bl SetShopItemsForSale - bl ClearItemPurchases - ldr r0, _080E07F0 - bl sub_080DF098 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E07F0: .4byte EnableBothScriptContexts - thumb_func_end CreatePokemartMenu - - thumb_func_start CreateDecorationShop1Menu -CreateDecorationShop1Menu: @ 0x080E07F4 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - bl sub_080DEFF0 - adds r0, r4, #0 - bl SetShopItemsForSale - ldr r0, _080E0810 - bl sub_080DF098 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E0810: .4byte EnableBothScriptContexts - thumb_func_end CreateDecorationShop1Menu - - thumb_func_start CreateDecorationShop2Menu -CreateDecorationShop2Menu: @ 0x080E0814 - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - bl sub_080DEFF0 - adds r0, r4, #0 - bl SetShopItemsForSale - ldr r0, _080E0830 - bl sub_080DF098 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E0830: .4byte EnableBothScriptContexts - thumb_func_end CreateDecorationShop2Menu - - thumb_func_start sub_080E0834 -sub_080E0834: @ 0x080E0834 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - mov sb, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - mov sl, r2 - ldr r2, _080E08C8 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldrh r0, [r1, #0x10] - subs r0, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldrh r0, [r1, #0x12] - subs r0, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldrh r4, [r1, #0xa] - movs r2, #0xc - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _080E08F8 - movs r2, #0 - lsls r5, r5, #0x10 - str r5, [sp, #0xc] - lsls r0, r3, #0x10 - lsls r1, r4, #0x10 - asrs r0, r0, #0x10 - str r0, [sp] - asrs r1, r1, #0x10 - str r1, [sp, #4] - lsls r0, r1, #1 - mov r1, sb - adds r7, r0, r1 -_080E0888: - movs r4, #0 - lsls r2, r2, #0x10 - mov r8, r2 - asrs r0, r2, #0x10 - ldr r2, [sp] - adds r6, r2, r0 -_080E0894: - ldr r0, [sp, #0xc] - asrs r1, r0, #0x10 - lsls r4, r4, #0x10 - asrs r0, r4, #0x10 - adds r5, r1, r0 - adds r0, r5, #0 - adds r1, r6, #0 - bl MapGridGetMetatileIdAt - movs r2, #0 - ldrsh r1, [r7, r2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r1, r0 - bne _080E08DC - ldr r0, [sp, #4] - cmp r0, #2 - beq _080E08CC - ldrh r0, [r7, #2] - mov r2, sl - orrs r2, r0 - adds r0, r5, #0 - adds r1, r6, #0 - bl MapGridSetMetatileIdAt - b _080E08DC - .align 2, 0 -_080E08C8: .4byte gUnknown_3005B60 -_080E08CC: - mov r1, sb - ldrh r0, [r1] - mov r2, sl - orrs r2, r0 - adds r0, r5, #0 - adds r1, r6, #0 - bl MapGridSetMetatileIdAt -_080E08DC: - movs r2, #0x80 - lsls r2, r2, #9 - adds r0, r4, r2 - lsrs r4, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - ble _080E0894 - adds r0, r2, #0 - add r0, r8 - lsrs r2, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - ble _080E0888 - b _080E0980 -_080E08F8: - movs r2, #0 - lsls r5, r5, #0x10 - str r5, [sp, #0xc] - lsls r0, r3, #0x10 - lsls r1, r4, #0x10 - asrs r0, r0, #0x10 - str r0, [sp, #8] - asrs r7, r1, #0x10 -_080E0908: - movs r4, #0 - lsls r2, r2, #0x10 - mov r8, r2 - asrs r0, r2, #0x10 - ldr r1, [sp, #8] - adds r6, r1, r0 -_080E0914: - ldr r2, [sp, #0xc] - asrs r1, r2, #0x10 - lsls r4, r4, #0x10 - asrs r0, r4, #0x10 - adds r5, r1, r0 - adds r0, r5, #0 - adds r1, r6, #0 - bl MapGridGetMetatileIdAt - movs r1, #2 - subs r1, r1, r7 - lsls r1, r1, #1 - add r1, sb - movs r2, #0 - ldrsh r1, [r1, r2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r1, r0 - bne _080E0966 - cmp r7, #2 - beq _080E0956 - movs r0, #1 - subs r0, r0, r7 - lsls r0, r0, #1 - add r0, sb - ldrh r0, [r0] - mov r2, sl - orrs r2, r0 - adds r0, r5, #0 - adds r1, r6, #0 - bl MapGridSetMetatileIdAt - b _080E0966 -_080E0956: - mov r1, sb - ldrh r0, [r1, #4] - mov r2, sl - orrs r2, r0 - adds r0, r5, #0 - adds r1, r6, #0 - bl MapGridSetMetatileIdAt -_080E0966: - movs r2, #0x80 - lsls r2, r2, #9 - adds r0, r4, r2 - lsrs r4, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - ble _080E0914 - adds r0, r2, #0 - add r0, r8 - lsrs r2, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - ble _080E0908 -_080E0980: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_080E0834 - - thumb_func_start sub_080E0990 -sub_080E0990: @ 0x080E0990 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #3 - ldr r1, _080E09B8 - adds r4, r0, r1 - movs r0, #1 - strh r0, [r4, #6] - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #6 - bhi _080E0A2A - lsls r0, r0, #2 - ldr r1, _080E09BC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E09B8: .4byte gUnknown_3005B68 -_080E09BC: .4byte _080E09C0 -_080E09C0: @ jump table - .4byte _080E09DC @ case 0 - .4byte _080E09E4 @ case 1 - .4byte _080E09EC @ case 2 - .4byte _080E09F4 @ case 3 - .4byte _080E09FC @ case 4 - .4byte _080E0A10 @ case 5 - .4byte _080E0A20 @ case 6 -_080E09DC: - ldr r1, _080E09E0 - b _080E0A12 - .align 2, 0 -_080E09E0: .4byte gUnknown_8562A3E -_080E09E4: - ldr r1, _080E09E8 - b _080E0A12 - .align 2, 0 -_080E09E8: .4byte gUnknown_8562A44 -_080E09EC: - ldr r1, _080E09F0 - b _080E09FE - .align 2, 0 -_080E09F0: .4byte gUnknown_8562A4A -_080E09F4: - ldr r1, _080E09F8 - b _080E0A12 - .align 2, 0 -_080E09F8: .4byte gUnknown_8562A50 -_080E09FC: - ldr r1, _080E0A0C -_080E09FE: - movs r2, #0xc0 - lsls r2, r2, #4 - adds r0, r3, #0 - bl sub_080E0834 - b _080E0A2A - .align 2, 0 -_080E0A0C: .4byte gUnknown_8562A56 -_080E0A10: - ldr r1, _080E0A1C -_080E0A12: - adds r0, r3, #0 - movs r2, #0 - bl sub_080E0834 - b _080E0A2A - .align 2, 0 -_080E0A1C: .4byte gUnknown_8562A5C -_080E0A20: - ldr r1, _080E0A54 - adds r0, r3, #0 - movs r2, #0 - bl sub_080E0834 -_080E0A2A: - ldrh r0, [r4] - adds r0, #1 - movs r1, #7 - ands r0, r1 - strh r0, [r4] - adds r5, r0, #0 - cmp r5, #0 - bne _080E0A4E - bl DrawWholeMapView - movs r1, #2 - ldrsh r0, [r4, r1] - adds r0, #1 - movs r1, #3 - bl __modsi3 - strh r0, [r4, #2] - strh r5, [r4, #6] -_080E0A4E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080E0A54: .4byte gUnknown_8562A62 - thumb_func_end sub_080E0990 - - thumb_func_start sub_080E0A58 -sub_080E0A58: @ 0x080E0A58 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - ldr r6, _080E0A9C - adds r0, r6, #0 - movs r1, #0 - bl CreateTask - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _080E0AA0 - adds r7, r0, r1 - adds r0, r7, #0 - adds r0, #8 - adds r1, r7, #0 - adds r1, #0xa - bl PlayerGetDestCoords - movs r0, #0 - strh r0, [r7] - strh r0, [r7, #2] - strh r5, [r7, #4] - adds r0, r4, #0 - bl _call_via_r6 - adds r0, r4, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080E0A9C: .4byte sub_080E0990 -_080E0AA0: .4byte gUnknown_3005B68 - thumb_func_end sub_080E0A58 - - thumb_func_start sub_080E0AA4 -sub_080E0AA4: @ 0x080E0AA4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_080E0A58 - ldr r1, _080E0AB8 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080E0AB8: .4byte gUnknown_2039C2C - thumb_func_end sub_080E0AA4 - - thumb_func_start sub_080E0ABC -sub_080E0ABC: @ 0x080E0ABC - push {lr} - ldr r0, _080E0ACC - ldrb r0, [r0] - bl DestroyTask - pop {r0} - bx r0 - .align 2, 0 -_080E0ACC: .4byte gUnknown_2039C2C - thumb_func_end sub_080E0ABC - - thumb_func_start sub_080E0AD0 -sub_080E0AD0: @ 0x080E0AD0 - push {lr} - ldr r2, _080E0AF4 - ldr r0, _080E0AF8 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r1, r0, r2 - movs r2, #0xe - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _080E0AFC - movs r2, #0xa - ldrsh r0, [r1, r2] - cmp r0, #2 - bne _080E0AFC - movs r0, #0 - b _080E0AFE - .align 2, 0 -_080E0AF4: .4byte gUnknown_3005B60 -_080E0AF8: .4byte gUnknown_2039C2C -_080E0AFC: - movs r0, #1 -_080E0AFE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080E0AD0 - - thumb_func_start sub_080E0B04 -sub_080E0B04: @ 0x080E0B04 - push {lr} - sub sp, #4 - mov r1, sp - movs r0, #0 - strh r0, [r1] - ldr r0, _080E0B24 - ldr r1, [r0] - ldr r0, _080E0B28 - adds r1, r1, r0 - ldr r2, _080E0B2C - mov r0, sp - bl CpuSet - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_080E0B24: .4byte gUnknown_3005AEC -_080E0B28: .4byte 0x000031F8 -_080E0B2C: .4byte 0x0100001A - thumb_func_end sub_080E0B04 - - thumb_func_start SetEnigmaBerry -SetEnigmaBerry: @ 0x080E0B30 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080E0B54 - ldr r0, [r0] - ldr r1, _080E0B58 - adds r3, r0, r1 - movs r2, #0 -_080E0B3E: - adds r0, r3, r2 - adds r1, r4, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, #0x33 - bls _080E0B3E - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E0B54: .4byte gUnknown_3005AEC -_080E0B58: .4byte 0x000031F8 - thumb_func_end SetEnigmaBerry - - thumb_func_start GetEnigmaBerryChecksum -GetEnigmaBerryChecksum: @ 0x080E0B5C - push {lr} - adds r3, r0, #0 - movs r2, #0 - movs r1, #0 -_080E0B64: - adds r0, r3, r1 - ldrb r0, [r0] - adds r2, r2, r0 - adds r1, #1 - cmp r1, #0x2f - bls _080E0B64 - adds r0, r2, #0 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetEnigmaBerryChecksum - - thumb_func_start IsEnigmaBerryValid -IsEnigmaBerryValid: @ 0x080E0B78 - push {r4, lr} - ldr r4, _080E0BAC - ldr r1, [r4] - ldr r2, _080E0BB0 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080E0BC0 - ldr r2, _080E0BB4 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080E0BC0 - ldr r2, _080E0BB8 - adds r0, r1, r2 - bl GetEnigmaBerryChecksum - ldr r1, [r4] - ldr r2, _080E0BBC - adds r1, r1, r2 - ldr r1, [r1] - cmp r0, r1 - bne _080E0BC0 - movs r0, #1 - b _080E0BC2 - .align 2, 0 -_080E0BAC: .4byte gUnknown_3005AEC -_080E0BB0: .4byte 0x0000320C -_080E0BB4: .4byte 0x00003202 -_080E0BB8: .4byte 0x000031F8 -_080E0BBC: .4byte 0x00003228 -_080E0BC0: - movs r0, #0 -_080E0BC2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end IsEnigmaBerryValid - - thumb_func_start GetBerryInfo -GetBerryInfo: @ 0x080E0BC8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x2b - bne _080E0BEC - bl IsEnigmaBerryValid - cmp r0, #0 - beq _080E0BEC - ldr r0, _080E0BE4 - ldr r0, [r0] - ldr r1, _080E0BE8 - b _080E0C00 - .align 2, 0 -_080E0BE4: .4byte gUnknown_3005AEC -_080E0BE8: .4byte 0x000031F8 -_080E0BEC: - subs r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x2a - bls _080E0BF8 - movs r4, #1 -_080E0BF8: - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - ldr r1, _080E0C08 -_080E0C00: - adds r0, r0, r1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080E0C08: .4byte gUnknown_8563134 - thumb_func_end GetBerryInfo - - thumb_func_start GetBerryTreeInfo -GetBerryTreeInfo: @ 0x080E0C0C - lsls r0, r0, #0x18 - ldr r1, _080E0C20 - lsrs r0, r0, #0x15 - ldr r2, _080E0C24 - adds r0, r0, r2 - ldr r1, [r1] - adds r1, r1, r0 - adds r0, r1, #0 - bx lr - .align 2, 0 -_080E0C20: .4byte gUnknown_3005AEC -_080E0C24: .4byte 0x0000169C - thumb_func_end GetBerryTreeInfo - - thumb_func_start EventObjectInteractionWaterBerryTree -EventObjectInteractionWaterBerryTree: @ 0x080E0C28 - push {lr} - ldr r0, _080E0C50 - ldrb r0, [r0] - bl EventObjectGetBerryTreeId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBerryTreeInfo - adds r2, r0, #0 - ldrb r0, [r2, #1] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x19 - cmp r0, #2 - beq _080E0C64 - cmp r0, #2 - bgt _080E0C54 - cmp r0, #1 - beq _080E0C5E - b _080E0C7A - .align 2, 0 -_080E0C50: .4byte gUnknown_3005B50 -_080E0C54: - cmp r0, #3 - beq _080E0C6A - cmp r0, #4 - beq _080E0C70 - b _080E0C7A -_080E0C5E: - ldrb r0, [r2, #5] - movs r1, #0x10 - b _080E0C74 -_080E0C64: - ldrb r0, [r2, #5] - movs r1, #0x20 - b _080E0C74 -_080E0C6A: - ldrb r0, [r2, #5] - movs r1, #0x40 - b _080E0C74 -_080E0C70: - ldrb r0, [r2, #5] - movs r1, #0x80 -_080E0C74: - orrs r0, r1 - strb r0, [r2, #5] - b _080E0C7E -_080E0C7A: - movs r0, #0 - b _080E0C80 -_080E0C7E: - movs r0, #1 -_080E0C80: - pop {r1} - bx r1 - thumb_func_end EventObjectInteractionWaterBerryTree - - thumb_func_start IsPlayerFacingEmptyBerryTreePatch -IsPlayerFacingEmptyBerryTreePatch: @ 0x080E0C84 - push {lr} - bl GetEventObjectScriptPointerPlayerFacing - ldr r1, _080E0CAC - cmp r0, r1 - bne _080E0CB4 - ldr r0, _080E0CB0 - ldrb r0, [r0] - bl EventObjectGetBerryTreeId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetStageByBerryTreeId - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080E0CB4 - movs r0, #1 - b _080E0CB6 - .align 2, 0 -_080E0CAC: .4byte gUnknown_8244D23 -_080E0CB0: .4byte gUnknown_3005B50 -_080E0CB4: - movs r0, #0 -_080E0CB6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsPlayerFacingEmptyBerryTreePatch - - thumb_func_start TryToWaterBerryTree -TryToWaterBerryTree: @ 0x080E0CBC - push {lr} - bl GetEventObjectScriptPointerPlayerFacing - ldr r1, _080E0CD4 - cmp r0, r1 - bne _080E0CD8 - bl EventObjectInteractionWaterBerryTree - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _080E0CDA - .align 2, 0 -_080E0CD4: .4byte gUnknown_8244D23 -_080E0CD8: - movs r0, #0 -_080E0CDA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end TryToWaterBerryTree - - thumb_func_start ClearBerryTrees -ClearBerryTrees: @ 0x080E0CE0 - push {r4, r5, r6, lr} - movs r2, #0 - ldr r6, _080E0D08 - ldr r5, _080E0D0C - ldr r0, _080E0D10 - ldr r3, [r0] - ldr r4, [r0, #4] -_080E0CEE: - ldr r0, [r6] - lsls r1, r2, #3 - adds r0, r0, r1 - adds r0, r0, r5 - str r3, [r0] - str r4, [r0, #4] - adds r2, #1 - cmp r2, #0x7f - ble _080E0CEE - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080E0D08: .4byte gUnknown_3005AEC -_080E0D0C: .4byte 0x0000169C -_080E0D10: .4byte gUnknown_85636B0 - thumb_func_end ClearBerryTrees - - thumb_func_start BerryTreeGrow -BerryTreeGrow: @ 0x080E0D14 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #1] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080E0D26 -_080E0D22: - movs r0, #0 - b _080E0DB2 -_080E0D26: - lsls r0, r1, #0x19 - lsrs r0, r0, #0x19 - cmp r0, #5 - bhi _080E0DB0 - lsls r0, r0, #2 - ldr r1, _080E0D38 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E0D38: .4byte _080E0D3C -_080E0D3C: @ jump table - .4byte _080E0D22 @ case 0 - .4byte _080E0D5C @ case 1 - .4byte _080E0D5C @ case 2 - .4byte _080E0D5C @ case 3 - .4byte _080E0D54 @ case 4 - .4byte _080E0D74 @ case 5 -_080E0D54: - adds r0, r4, #0 - bl CalcBerryYield - strb r0, [r4, #4] -_080E0D5C: - ldrb r2, [r4, #1] - lsls r1, r2, #0x19 - lsrs r1, r1, #0x19 - adds r1, #1 - movs r0, #0x7f - ands r1, r0 - movs r0, #0x80 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #1] - b _080E0DB0 -_080E0D74: - ldrb r0, [r4, #5] - movs r1, #0x11 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #0x21 - rsbs r0, r0, #0 - ands r1, r0 - subs r0, #0x20 - ands r1, r0 - movs r0, #0x7f - ands r1, r0 - movs r0, #0 - strb r0, [r4, #4] - ldrb r2, [r4, #1] - subs r0, #0x80 - ands r0, r2 - movs r2, #2 - orrs r0, r2 - strb r0, [r4, #1] - adds r1, #1 - movs r0, #0xf - ands r1, r0 - strb r1, [r4, #5] - cmp r1, #0xa - bne _080E0DB0 - ldr r0, _080E0DB8 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [r4] - str r1, [r4, #4] -_080E0DB0: - movs r0, #1 -_080E0DB2: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080E0DB8: .4byte gUnknown_85636B0 - thumb_func_end BerryTreeGrow - - thumb_func_start BerryTreeTimeUpdate -BerryTreeTimeUpdate: @ 0x080E0DBC - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - movs r2, #0 -_080E0DC2: - ldr r1, _080E0E0C - lsls r0, r2, #3 - ldr r3, _080E0E10 - adds r0, r0, r3 - ldr r1, [r1] - adds r4, r1, r0 - ldrb r0, [r4] - adds r7, r2, #1 - cmp r0, #0 - beq _080E0E5C - ldrb r1, [r4, #1] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - beq _080E0E5C - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080E0E5C - ldrb r0, [r4] - bl GetStageDurationByBerryType - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #3 - subs r1, r1, r0 - cmp r6, r1 - blt _080E0E18 - ldr r0, _080E0E14 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [r4] - str r1, [r4, #4] - b _080E0E5C - .align 2, 0 -_080E0E0C: .4byte gUnknown_3005AEC -_080E0E10: .4byte 0x0000169C -_080E0E14: .4byte gUnknown_85636B0 -_080E0E18: - adds r5, r6, #0 - cmp r5, #0 - beq _080E0E5C - ldrh r1, [r4, #2] - cmp r1, r5 - ble _080E0E28 - subs r0, r1, r5 - b _080E0E5A -_080E0E28: - subs r5, r5, r1 - ldrb r0, [r4] - bl GetStageDurationByBerryType - strh r0, [r4, #2] - adds r0, r4, #0 - bl BerryTreeGrow - cmp r0, #0 - beq _080E0E5C - ldrb r1, [r4, #1] - movs r0, #0x7f - ands r0, r1 - cmp r0, #5 - bne _080E0E4C - ldrh r0, [r4, #2] - lsls r0, r0, #2 - strh r0, [r4, #2] -_080E0E4C: - cmp r5, #0 - beq _080E0E5C - ldrh r0, [r4, #2] - adds r1, r0, #0 - cmp r0, r5 - ble _080E0E28 - subs r0, r0, r5 -_080E0E5A: - strh r0, [r4, #2] -_080E0E5C: - adds r2, r7, #0 - cmp r2, #0x7f - ble _080E0DC2 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end BerryTreeTimeUpdate - - thumb_func_start PlantBerryTree -PlantBerryTree: @ 0x080E0E68 - push {r4, r5, r6, r7, lr} - adds r4, r1, #0 - adds r5, r2, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r3, r3, #0x18 - lsrs r7, r3, #0x18 - bl GetBerryTreeInfo - adds r6, r0, #0 - ldr r0, _080E0ECC - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [r6] - str r1, [r6, #4] - strb r4, [r6] - adds r0, r4, #0 - bl GetStageDurationByBerryType - strh r0, [r6, #2] - movs r1, #0x7f - ands r1, r5 - ldrb r2, [r6, #1] - movs r0, #0x80 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r6, #1] - cmp r5, #5 - bne _080E0EBA - adds r0, r6, #0 - bl CalcBerryYield - strb r0, [r6, #4] - ldrh r0, [r6, #2] - lsls r0, r0, #2 - strh r0, [r6, #2] -_080E0EBA: - cmp r7, #0 - bne _080E0EC6 - ldrb r0, [r6, #1] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r6, #1] -_080E0EC6: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E0ECC: .4byte gUnknown_85636B0 - thumb_func_end PlantBerryTree - - thumb_func_start RemoveBerryTree -RemoveBerryTree: @ 0x080E0ED0 - lsls r0, r0, #0x18 - ldr r1, _080E0EEC - ldr r2, [r1] - lsrs r0, r0, #0x15 - adds r2, r2, r0 - ldr r0, _080E0EF0 - adds r2, r2, r0 - ldr r0, _080E0EF4 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [r2] - str r1, [r2, #4] - bx lr - .align 2, 0 -_080E0EEC: .4byte gUnknown_3005AEC -_080E0EF0: .4byte 0x0000169C -_080E0EF4: .4byte gUnknown_85636B0 - thumb_func_end RemoveBerryTree - - thumb_func_start GetBerryTypeByBerryTreeId -GetBerryTypeByBerryTreeId: @ 0x080E0EF8 - lsls r0, r0, #0x18 - ldr r1, _080E0F0C - ldr r1, [r1] - lsrs r0, r0, #0x15 - adds r1, r1, r0 - ldr r0, _080E0F10 - adds r1, r1, r0 - ldrb r0, [r1] - bx lr - .align 2, 0 -_080E0F0C: .4byte gUnknown_3005AEC -_080E0F10: .4byte 0x0000169C - thumb_func_end GetBerryTypeByBerryTreeId - - thumb_func_start GetStageByBerryTreeId -GetStageByBerryTreeId: @ 0x080E0F14 - lsls r0, r0, #0x18 - ldr r1, _080E0F2C - ldr r1, [r1] - lsrs r0, r0, #0x15 - adds r1, r1, r0 - ldr r0, _080E0F30 - adds r1, r1, r0 - ldrb r0, [r1] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x19 - bx lr - .align 2, 0 -_080E0F2C: .4byte gUnknown_3005AEC -_080E0F30: .4byte 0x0000169D - thumb_func_end GetStageByBerryTreeId - - thumb_func_start ItemIdToBerryType -ItemIdToBerryType: @ 0x080E0F34 - push {lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r2, _080E0F50 - adds r0, r0, r2 - lsrs r0, r0, #0x10 - cmp r0, #0x2a - bhi _080E0F54 - adds r0, r1, #0 - adds r0, #0x7c - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _080E0F56 - .align 2, 0 -_080E0F50: .4byte 0xFF7B0000 -_080E0F54: - movs r0, #1 -_080E0F56: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ItemIdToBerryType - - thumb_func_start BerryTypeToItemId -BerryTypeToItemId: @ 0x080E0F5C - push {lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r2, _080E0F78 - adds r0, r0, r2 - lsrs r0, r0, #0x10 - cmp r0, #0x2a - bhi _080E0F7C - adds r0, r1, #0 - adds r0, #0x84 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b _080E0F7E - .align 2, 0 -_080E0F78: .4byte 0xFFFF0000 -_080E0F7C: - movs r0, #0x85 -_080E0F7E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end BerryTypeToItemId - - thumb_func_start GetBerryNameByBerryType -GetBerryNameByBerryType: @ 0x080E0F84 - push {r4, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBerryInfo - adds r1, r0, #0 - adds r0, r4, #0 - movs r2, #6 - bl memcpy - movs r0, #0xff - strb r0, [r4, #6] - pop {r4} - pop {r0} - bx r0 - thumb_func_end GetBerryNameByBerryType - - thumb_func_start ResetBerryTreeSparkleFlag -ResetBerryTreeSparkleFlag: @ 0x080E0FA4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBerryTreeInfo - ldrb r2, [r0, #1] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #1] - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ResetBerryTreeSparkleFlag - - thumb_func_start BerryTreeGetNumStagesWatered -BerryTreeGetNumStagesWatered: @ 0x080E0FBC - push {lr} - ldrb r2, [r0, #5] - movs r0, #0x10 - ands r0, r2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - rsbs r0, r0, #0 - lsrs r1, r0, #0x1f - movs r0, #0x20 - ands r0, r2 - cmp r0, #0 - beq _080E0FD6 - adds r1, #1 -_080E0FD6: - movs r0, #0x40 - ands r0, r2 - cmp r0, #0 - beq _080E0FE4 - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 -_080E0FE4: - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - beq _080E0FF2 - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 -_080E0FF2: - adds r0, r1, #0 - pop {r1} - bx r1 - thumb_func_end BerryTreeGetNumStagesWatered - - thumb_func_start GetNumStagesWateredByBerryTreeId -GetNumStagesWateredByBerryTreeId: @ 0x080E0FF8 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBerryTreeInfo - bl BerryTreeGetNumStagesWatered - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetNumStagesWateredByBerryTreeId - - thumb_func_start CalcBerryYieldInternal -CalcBerryYieldInternal: @ 0x080E1010 - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - cmp r2, #0 - bne _080E1026 - lsls r0, r6, #0x18 - b _080E105A -_080E1026: - subs r1, r0, r6 - subs r0, r2, #1 - adds r5, r1, #0 - muls r5, r0, r5 - adds r4, r1, #0 - muls r4, r2, r4 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - subs r4, r4, r5 - adds r4, #1 - adds r1, r4, #0 - bl __umodsi3 - adds r5, r5, r0 - movs r0, #3 - ands r0, r5 - cmp r0, #1 - bls _080E1054 - lsrs r0, r5, #2 - adds r0, #1 - b _080E1056 -_080E1054: - lsrs r0, r5, #2 -_080E1056: - adds r0, r0, r6 - lsls r0, r0, #0x18 -_080E105A: - lsrs r0, r0, #0x18 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CalcBerryYieldInternal - - thumb_func_start CalcBerryYield -CalcBerryYield: @ 0x080E1064 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4] - bl GetBerryInfo - ldrb r6, [r0, #0xb] - ldrb r5, [r0, #0xa] - adds r0, r4, #0 - bl BerryTreeGetNumStagesWatered - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r5, #0 - adds r1, r6, #0 - bl CalcBerryYieldInternal - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end CalcBerryYield - - thumb_func_start GetBerryCountByBerryTreeId -GetBerryCountByBerryTreeId: @ 0x080E1090 - lsls r0, r0, #0x18 - ldr r1, _080E10A4 - ldr r1, [r1] - lsrs r0, r0, #0x15 - adds r1, r1, r0 - movs r0, #0xb5 - lsls r0, r0, #5 - adds r1, r1, r0 - ldrb r0, [r1] - bx lr - .align 2, 0 -_080E10A4: .4byte gUnknown_3005AEC - thumb_func_end GetBerryCountByBerryTreeId - - thumb_func_start GetStageDurationByBerryType -GetStageDurationByBerryType: @ 0x080E10A8 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBerryInfo - ldrb r1, [r0, #0x14] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #0x12 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - thumb_func_end GetStageDurationByBerryType - - thumb_func_start EventObjectInteractionGetBerryTreeData -EventObjectInteractionGetBerryTreeData: @ 0x080E10C0 - push {r4, r5, r6, lr} - ldr r0, _080E10FC - ldrb r0, [r0] - bl EventObjectGetBerryTreeId - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r5, #0 - bl GetBerryTypeByBerryTreeId - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r0, r5, #0 - bl ResetBerryTreeSparkleFlag - ldr r0, _080E1100 - ldrb r0, [r0] - ldr r1, _080E1104 - ldr r2, [r1] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - bl IsBerryTreeSparkling - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080E110C - ldr r1, _080E1108 - movs r0, #0xff - strh r0, [r1] - b _080E111A - .align 2, 0 -_080E10FC: .4byte gUnknown_3005B50 -_080E1100: .4byte gUnknown_2037292 -_080E1104: .4byte gUnknown_3005AEC -_080E1108: .4byte gUnknown_2037280 -_080E110C: - ldr r4, _080E1144 - adds r0, r5, #0 - bl GetStageByBerryTreeId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] -_080E111A: - ldr r4, _080E1148 - adds r0, r5, #0 - bl GetNumStagesWateredByBerryTreeId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - ldr r4, _080E114C - adds r0, r5, #0 - bl GetBerryCountByBerryTreeId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - ldr r1, _080E1150 - adds r0, r6, #0 - bl GetBerryNameByBerryType - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080E1144: .4byte gUnknown_2037280 -_080E1148: .4byte gUnknown_2037282 -_080E114C: .4byte gUnknown_2037284 -_080E1150: .4byte gUnknown_2021C40 - thumb_func_end EventObjectInteractionGetBerryTreeData - - thumb_func_start sub_080E1154 -sub_080E1154: @ 0x080E1154 - push {lr} - ldr r0, _080E1160 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080E1160: .4byte CB2_ChooseBerry - thumb_func_end sub_080E1154 - - thumb_func_start sub_080E1164 -sub_080E1164: @ 0x080E1164 - push {r4, lr} - ldr r0, _080E1194 - ldrh r0, [r0] - bl ItemIdToBerryType - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _080E1198 - ldrb r0, [r0] - bl EventObjectGetBerryTreeId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r4, #0 - movs r2, #1 - movs r3, #1 - bl PlantBerryTree - bl EventObjectInteractionGetBerryTreeData - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E1194: .4byte gUnknown_203CB48 -_080E1198: .4byte gUnknown_3005B50 - thumb_func_end sub_080E1164 - - thumb_func_start EventObjectInteractionPickBerryTree -EventObjectInteractionPickBerryTree: @ 0x080E119C - push {r4, r5, r6, lr} - ldr r0, _080E11E0 - ldrb r0, [r0] - bl EventObjectGetBerryTreeId - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - adds r0, r5, #0 - bl GetBerryTypeByBerryTreeId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r6, _080E11E4 - bl BerryTypeToItemId - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - bl GetBerryCountByBerryTreeId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl AddBagItem - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r6] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080E11E0: .4byte gUnknown_3005B50 -_080E11E4: .4byte gUnknown_2037280 - thumb_func_end EventObjectInteractionPickBerryTree - - thumb_func_start sub_080E11E8 -sub_080E11E8: @ 0x080E11E8 - push {lr} - ldr r0, _080E1210 - ldrb r0, [r0] - bl EventObjectGetBerryTreeId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl RemoveBerryTree - ldr r0, _080E1214 - ldrb r0, [r0] - ldr r1, _080E1218 - ldr r2, [r1] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - bl sub_08092860 - pop {r0} - bx r0 - .align 2, 0 -_080E1210: .4byte gUnknown_3005B50 -_080E1214: .4byte gUnknown_2037292 -_080E1218: .4byte gUnknown_3005AEC - thumb_func_end sub_080E11E8 - - thumb_func_start PlayerHasBerries -PlayerHasBerries: @ 0x080E121C - push {lr} - movs r0, #4 - bl IsBagPocketNonEmpty - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - thumb_func_end PlayerHasBerries - - thumb_func_start ResetBerryTreeSparkleFlags -ResetBerryTreeSparkleFlags: @ 0x080E122C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov r4, sp - adds r4, #2 - mov r0, sp - adds r1, r4, #0 - bl GetCameraCoords - mov r0, sp - ldrh r2, [r0] - ldrh r1, [r4] - adds r1, #3 - adds r3, r2, #0 - adds r3, #0xe - lsls r1, r1, #0x10 - movs r5, #0x80 - lsls r5, r5, #0xc - adds r0, r1, r5 - lsrs r0, r0, #0x10 - mov sl, r0 - mov r5, sp - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - mov sb, r2 - ldr r4, _080E12C4 - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - mov r8, r3 - asrs r7, r1, #0x10 - movs r6, #0xf -_080E1270: - ldrb r0, [r4] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _080E12AC - ldrb r0, [r4, #6] - cmp r0, #0xc - bne _080E12AC - ldrh r0, [r4, #0x10] - strh r0, [r5] - ldrh r0, [r4, #0x12] - mov r1, sp - strh r0, [r1, #2] - movs r2, #0 - ldrsh r1, [r5, r2] - cmp sb, r1 - bgt _080E12AC - cmp r1, r8 - bgt _080E12AC - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - cmp r7, r1 - bgt _080E12AC - mov r2, sl - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - cmp r1, r0 - bgt _080E12AC - ldrb r0, [r4, #0x1d] - bl ResetBerryTreeSparkleFlag -_080E12AC: - adds r4, #0x24 - subs r6, #1 - cmp r6, #0 - bge _080E1270 - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E12C4: .4byte gUnknown_2036FF0 - thumb_func_end ResetBerryTreeSparkleFlags - - thumb_func_start ScriptMenu_Multichoice -ScriptMenu_Multichoice: @ 0x080E12C8 - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r4, r3, #0x18 - ldr r0, _080E1304 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080E130C - ldr r0, _080E1308 - movs r1, #0xff - strh r1, [r0] - movs r0, #0 - str r0, [sp] - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r5, #0 - adds r3, r4, #0 - bl sub_080E13FC - movs r0, #1 - b _080E130E - .align 2, 0 -_080E1304: .4byte Task_HandleMultichoiceInput -_080E1308: .4byte gUnknown_2037290 -_080E130C: - movs r0, #0 -_080E130E: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScriptMenu_Multichoice - - thumb_func_start ScriptMenu_MultichoiceWithDefault -ScriptMenu_MultichoiceWithDefault: @ 0x080E1318 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - ldr r4, [sp, #0x1c] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r5, r3, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _080E1360 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080E1368 - ldr r1, _080E1364 - movs r0, #0xff - strh r0, [r1] - str r4, [sp] - mov r0, r8 - adds r1, r7, #0 - adds r2, r6, #0 - adds r3, r5, #0 - bl sub_080E13FC - movs r0, #1 - b _080E136A - .align 2, 0 -_080E1360: .4byte Task_HandleMultichoiceInput -_080E1364: .4byte gUnknown_2037290 -_080E1368: - movs r0, #0 -_080E136A: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScriptMenu_MultichoiceWithDefault - - thumb_func_start sub_080E1378 -sub_080E1378: @ 0x080E1378 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #0 - b _080E13AC -_080E1380: - cmp r1, #0xfd - bne _080E13A4 - adds r4, #1 - ldrb r0, [r4] - cmp r0, #1 - bne _080E13AC - ldr r0, _080E13A0 - ldr r0, [r0] - bl StringLength - adds r0, r5, r0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r4, #1 - b _080E13AC - .align 2, 0 -_080E13A0: .4byte gUnknown_3005AF0 -_080E13A4: - adds r4, #1 - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_080E13AC: - ldrb r1, [r4] - adds r0, r1, #0 - cmp r0, #0xff - bne _080E1380 - adds r0, r5, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_080E1378 - - thumb_func_start sub_080E13BC -sub_080E13BC: @ 0x080E13BC - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - lsls r4, r1, #0x18 - lsrs r4, r4, #0x18 - ldr r0, [r7] - bl sub_080E1378 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r5, #1 - cmp r5, r4 - bhs _080E13F2 -_080E13D4: - lsls r0, r5, #3 - adds r0, r0, r7 - ldr r0, [r0] - bl sub_080E1378 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r6, r0 - bhs _080E13E8 - adds r6, r0, #0 -_080E13E8: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, r4 - blo _080E13D4 -_080E13F2: - adds r0, r6, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080E13BC - - thumb_func_start sub_080E13FC -sub_080E13FC: @ 0x080E13FC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - adds r4, r0, #0 - adds r5, r1, #0 - mov sb, r2 - mov sl, r3 - ldr r0, [sp, #0x34] - mov r8, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sb, r2 - mov r0, sl - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - mov r2, r8 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r8, r2 - ldr r1, _080E14C8 - mov r2, sb - lsls r0, r2, #3 - adds r0, r0, r1 - ldrb r6, [r0, #4] - ldr r7, [r0] - adds r0, r7, #0 - adds r1, r6, #0 - bl sub_080E13BC - adds r2, r0, #0 - lsls r2, r2, #0x18 - movs r0, #0x80 - lsls r0, r0, #0x11 - adds r2, r2, r0 - lsrs r2, r2, #0x18 - lsls r3, r6, #0x19 - lsrs r3, r3, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl CreateWindowFromRect - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #0 - bl SetStandardWindowBorderStyle - movs r0, #1 - movs r1, #0 - bl GetFontAttribute - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r5, #0x10 - str r5, [sp] - str r6, [sp, #4] - str r7, [sp, #8] - movs r0, #0 - str r0, [sp, #0xc] - str r0, [sp, #0x10] - adds r0, r4, #0 - movs r1, #1 - movs r3, #2 - bl sub_081988CC - str r5, [sp] - str r6, [sp, #4] - mov r2, r8 - str r2, [sp, #8] - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl sub_081984B0 - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - mov r0, sl - adds r1, r6, #0 - adds r2, r4, #0 - mov r3, sb - bl sub_080E14CC - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E14C8: .4byte gUnknown_8564218 - thumb_func_end sub_080E13FC - - thumb_func_start sub_080E14CC -sub_080E14CC: @ 0x080E14CC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sb, r2 - lsls r3, r3, #0x18 - lsrs r4, r3, #0x18 - ldr r1, _080E152C - movs r0, #2 - strb r0, [r1] - movs r2, #0 - ldr r6, _080E1530 - ldr r5, _080E1534 - movs r3, #0xc -_080E14F6: - adds r0, r2, r5 - ldrb r0, [r0] - cmp r0, r4 - bne _080E1500 - strb r3, [r1] -_080E1500: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #5 - bls _080E14F6 - adds r0, r6, #0 - movs r1, #0x50 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _080E1538 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r1, r0, r1 - mov r0, r8 - strh r0, [r1, #0x10] - cmp r7, #3 - bls _080E153C - movs r0, #1 - b _080E153E - .align 2, 0 -_080E152C: .4byte gUnknown_2039C30 -_080E1530: .4byte Task_HandleMultichoiceInput -_080E1534: .4byte gUnknown_8564618 -_080E1538: .4byte gUnknown_3005B60 -_080E153C: - movs r0, #0 -_080E153E: - strh r0, [r1, #0x12] - ldr r1, _080E1564 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r0, r0, r1 - mov r1, sb - strh r1, [r0, #0x14] - strh r4, [r0, #0x16] - adds r0, r4, #0 - bl sub_080E1F88 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E1564: .4byte gUnknown_3005B60 - thumb_func_end sub_080E14CC - - thumb_func_start Task_HandleMultichoiceInput -Task_HandleMultichoiceInput: @ 0x080E1568 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _080E1594 - adds r5, r0, r1 - ldr r0, _080E1598 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080E160C - ldr r1, _080E159C - ldrb r0, [r1] - cmp r0, #0 - beq _080E15A0 - subs r0, #1 - strb r0, [r1] - b _080E160C - .align 2, 0 -_080E1594: .4byte gUnknown_3005B68 -_080E1598: .4byte gUnknown_2037C74 -_080E159C: .4byte gUnknown_2039C30 -_080E15A0: - movs r1, #0xa - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _080E15AE - bl Menu_ProcessInputNoWrap - b _080E15B2 -_080E15AE: - bl Menu_ProcessInput -_080E15B2: - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080E15F0 - ldrh r1, [r0, #0x2e] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0 - beq _080E15C8 - ldrb r0, [r5, #0xe] - bl sub_080E1F88 -_080E15C8: - lsls r0, r4, #0x18 - asrs r1, r0, #0x18 - movs r0, #2 - rsbs r0, r0, #0 - cmp r1, r0 - beq _080E160C - adds r0, #1 - cmp r1, r0 - bne _080E15F8 - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _080E160C - movs r0, #5 - bl sub_080A306C - ldr r1, _080E15F4 - movs r0, #0x7f - strh r0, [r1] - b _080E15FC - .align 2, 0 -_080E15F0: .4byte gUnknown_3002360 -_080E15F4: .4byte gUnknown_2037290 -_080E15F8: - ldr r0, _080E1614 - strh r1, [r0] -_080E15FC: - ldrb r0, [r5, #0xc] - bl sub_080E1F6C - adds r0, r6, #0 - bl DestroyTask - bl EnableBothScriptContexts -_080E160C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080E1614: .4byte gUnknown_2037290 - thumb_func_end Task_HandleMultichoiceInput - - thumb_func_start ScriptMenu_YesNo -ScriptMenu_YesNo: @ 0x080E1618 - push {r4, lr} - ldr r4, _080E1640 - adds r0, r4, #0 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080E1648 - ldr r1, _080E1644 - movs r0, #0xff - strh r0, [r1] - bl sub_08197714 - adds r0, r4, #0 - movs r1, #0x50 - bl CreateTask - movs r0, #1 - b _080E164A - .align 2, 0 -_080E1640: .4byte Task_HandleYesNoInput -_080E1644: .4byte gUnknown_2037290 -_080E1648: - movs r0, #0 -_080E164A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScriptMenu_YesNo - - thumb_func_start IsScriptActive -IsScriptActive: @ 0x080E1650 - push {lr} - ldr r0, _080E1660 - ldrh r0, [r0] - cmp r0, #0xff - beq _080E1664 - movs r0, #1 - b _080E1666 - .align 2, 0 -_080E1660: .4byte gUnknown_2037290 -_080E1664: - movs r0, #0 -_080E1666: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsScriptActive - - thumb_func_start Task_HandleYesNoInput -Task_HandleYesNoInput: @ 0x080E166C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _080E168C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r1, r0, r1 - ldrh r2, [r1, #0xc] - movs r3, #0xc - ldrsh r0, [r1, r3] - cmp r0, #4 - bgt _080E1690 - adds r0, r2, #1 - strh r0, [r1, #0xc] - b _080E16D4 - .align 2, 0 -_080E168C: .4byte gUnknown_3005B60 -_080E1690: - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _080E16B4 - cmp r1, r0 - bgt _080E16AC - subs r0, #1 - cmp r1, r0 - beq _080E16D4 - b _080E16CA -_080E16AC: - cmp r1, #0 - beq _080E16C4 - cmp r1, #1 - bne _080E16CA -_080E16B4: - movs r0, #5 - bl sub_080A306C - ldr r1, _080E16C0 - movs r0, #0 - b _080E16C8 - .align 2, 0 -_080E16C0: .4byte gUnknown_2037290 -_080E16C4: - ldr r1, _080E16DC - movs r0, #1 -_080E16C8: - strh r0, [r1] -_080E16CA: - adds r0, r4, #0 - bl DestroyTask - bl EnableBothScriptContexts -_080E16D4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E16DC: .4byte gUnknown_2037290 - thumb_func_end Task_HandleYesNoInput - - thumb_func_start sub_080E16E0 -sub_080E16E0: @ 0x080E16E0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - ldr r4, [sp, #0x3c] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x14] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp, #0x18] - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov sl, r3 - lsls r4, r4, #0x18 - lsrs r7, r4, #0x18 - ldr r0, _080E17C8 - mov sb, r0 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080E17D8 - ldr r1, _080E17CC - movs r0, #0xff - strh r0, [r1] - ldr r1, _080E17D0 - lsls r0, r5, #3 - adds r0, r0, r1 - ldr r1, [r0] - mov r8, r1 - ldrb r5, [r0, #4] - mov r0, r8 - adds r1, r5, #0 - bl sub_080E13BC - adds r4, r0, #0 - adds r4, #2 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - adds r1, r7, #0 - bl __udivsi3 - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov r0, sb - movs r1, #0x50 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080E17D4 - lsls r5, r0, #2 - adds r5, r5, r0 - lsls r5, r5, #3 - adds r5, r5, r1 - movs r0, #0 - mov sb, r0 - mov r1, sl - strh r1, [r5, #0x10] - adds r2, r4, #0 - muls r2, r7, r2 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r6, #0x19 - lsrs r3, r3, #0x18 - ldr r0, [sp, #0x14] - ldr r1, [sp, #0x18] - bl CreateWindowFromRect - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x14] - movs r1, #0 - bl SetStandardWindowBorderStyle - ldrb r0, [r5, #0x14] - lsls r4, r4, #0x1b - lsrs r4, r4, #0x18 - str r4, [sp] - movs r1, #0x10 - str r1, [sp, #4] - str r7, [sp, #8] - str r6, [sp, #0xc] - mov r1, r8 - str r1, [sp, #0x10] - movs r1, #1 - movs r2, #8 - movs r3, #2 - bl sub_08198DA4 - ldrb r0, [r5, #0x14] - str r4, [sp] - str r7, [sp, #4] - str r6, [sp, #8] - mov r1, sb - str r1, [sp, #0xc] - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl sub_081990E4 - ldrb r0, [r5, #0x14] - movs r1, #3 - bl CopyWindowToVram - movs r0, #1 - b _080E17DA - .align 2, 0 -_080E17C8: .4byte Task_HandleMultichoiceGridInput -_080E17CC: .4byte gUnknown_2037290 -_080E17D0: .4byte gUnknown_8564218 -_080E17D4: .4byte gUnknown_3005B60 -_080E17D8: - movs r0, #0 -_080E17DA: - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080E16E0 - - thumb_func_start Task_HandleMultichoiceGridInput -Task_HandleMultichoiceGridInput: @ 0x080E17EC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _080E1828 - adds r5, r0, r1 - bl Menu_ProcessInputGridLayout - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - movs r0, #2 - rsbs r0, r0, #0 - cmp r1, r0 - beq _080E1844 - adds r0, #1 - cmp r1, r0 - bne _080E1830 - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _080E1844 - movs r0, #5 - bl sub_080A306C - ldr r1, _080E182C - movs r0, #0x7f - strh r0, [r1] - b _080E1834 - .align 2, 0 -_080E1828: .4byte gUnknown_3005B68 -_080E182C: .4byte gUnknown_2037290 -_080E1830: - ldr r0, _080E184C - strh r1, [r0] -_080E1834: - ldrb r0, [r5, #0xc] - bl sub_080E1F6C - adds r0, r4, #0 - bl DestroyTask - bl EnableBothScriptContexts -_080E1844: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080E184C: .4byte gUnknown_2037290 - thumb_func_end Task_HandleMultichoiceGridInput - - thumb_func_start sub_080E1850 -sub_080E1850: @ 0x080E1850 - push {lr} - ldr r0, _080E1870 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080E1878 - ldr r1, _080E1874 - movs r0, #0xff - strh r0, [r1] - bl ShowDomeResultsWindow - movs r0, #1 - b _080E187A - .align 2, 0 -_080E1870: .4byte Task_HandleMultichoiceInput -_080E1874: .4byte gUnknown_2037290 -_080E1878: - movs r0, #0 -_080E187A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080E1850 - - thumb_func_start ShowDomeResultsWindow -ShowDomeResultsWindow: @ 0x080E1880 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - movs r0, #1 - movs r1, #0 - bl GetFontAttribute - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r0, #1 - movs r1, #1 - bl GetFontAttribute - ldr r0, _080E18BC - bl sub_080E1378 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, _080E18C0 - bl sub_080E1378 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r4, r0 - bls _080E18C4 - lsls r0, r4, #0x18 - lsrs r4, r0, #0x18 - b _080E18C6 - .align 2, 0 -_080E18BC: .4byte gUnknown_85CACFE -_080E18C0: .4byte gUnknown_85CACEC -_080E18C4: - movs r4, #8 -_080E18C6: - ldr r0, _080E1924 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - beq _080E1930 - movs r0, #4 - mov r8, r0 - adds r2, r4, #4 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r0, #0 - movs r1, #0 - movs r3, #8 - bl CreateWindowFromRect - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r0, r6, #0 - movs r1, #0 - bl SetStandardWindowBorderStyle - ldr r2, _080E1928 - movs r0, #0x22 - str r0, [sp] - movs r5, #0xff - str r5, [sp, #4] - movs r4, #0 - str r4, [sp, #8] - adds r0, r6, #0 - movs r1, #1 - adds r3, r7, #0 - bl AddTextPrinterParameterized - ldr r2, _080E192C - movs r0, #0x32 - str r0, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - adds r0, r6, #0 - movs r1, #1 - adds r3, r7, #0 - bl AddTextPrinterParameterized - b _080E1966 - .align 2, 0 -_080E1924: .4byte 0x00000864 -_080E1928: .4byte gUnknown_85CAD06 -_080E192C: .4byte gUnknown_85CAD0D -_080E1930: - movs r0, #3 - mov r8, r0 - adds r2, r4, #4 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r0, #0 - movs r1, #0 - movs r3, #6 - bl CreateWindowFromRect - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r0, r6, #0 - movs r1, #0 - bl SetStandardWindowBorderStyle - ldr r2, _080E1990 - movs r0, #0x22 - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - str r5, [sp, #8] - adds r0, r6, #0 - movs r1, #1 - adds r3, r7, #0 - bl AddTextPrinterParameterized -_080E1966: - ldr r0, _080E1994 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _080E199C - ldr r2, _080E1998 - movs r0, #2 - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - adds r0, r6, #0 - movs r1, #1 - adds r3, r7, #0 - bl AddTextPrinterParameterized - b _080E19B2 - .align 2, 0 -_080E1990: .4byte gUnknown_85CAD0D -_080E1994: .4byte 0x000008AB -_080E1998: .4byte gUnknown_85CACF5 -_080E199C: - ldr r2, _080E1A00 - movs r0, #2 - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - str r1, [sp, #8] - adds r0, r6, #0 - movs r1, #1 - adds r3, r7, #0 - bl AddTextPrinterParameterized -_080E19B2: - ldr r4, _080E1A04 - ldr r1, _080E1A08 - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r7, #0 - movs r3, #0x12 - bl PrintPlayerNameOnWindow - movs r0, #0x10 - str r0, [sp] - mov r0, r8 - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - adds r0, r6, #0 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl sub_081984B0 - adds r0, r6, #0 - movs r1, #3 - bl CopyWindowToVram - movs r0, #0 - mov r1, r8 - adds r2, r6, #0 - movs r3, #1 - bl sub_080E14CC - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E1A00: .4byte gUnknown_85CACEC -_080E1A04: .4byte gUnknown_2021C7C -_080E1A08: .4byte gUnknown_85CACFE - thumb_func_end ShowDomeResultsWindow - - thumb_func_start ScriptMenu_DisplayPCStartupPrompt -ScriptMenu_DisplayPCStartupPrompt: @ 0x080E1A0C - push {lr} - sub sp, #0x10 - movs r0, #0 - movs r1, #1 - bl sub_08197650 - ldr r2, _080E1A3C - movs r0, #0 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - movs r0, #3 - str r0, [sp, #0xc] - movs r0, #0 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized2 - add sp, #0x10 - pop {r0} - bx r0 - .align 2, 0 -_080E1A3C: .4byte gUnknown_82436CD - thumb_func_end ScriptMenu_DisplayPCStartupPrompt - - thumb_func_start sub_080E1A40 -sub_080E1A40: @ 0x080E1A40 - push {lr} - ldr r0, _080E1A60 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080E1A68 - ldr r1, _080E1A64 - movs r0, #0xff - strh r0, [r1] - bl sub_080E1A70 - movs r0, #1 - b _080E1A6A - .align 2, 0 -_080E1A60: .4byte Task_HandleMultichoiceInput -_080E1A64: .4byte gUnknown_2037290 -_080E1A68: - movs r0, #0 -_080E1A6A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080E1A40 - - thumb_func_start sub_080E1A70 -sub_080E1A70: @ 0x080E1A70 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0xc - movs r6, #0 - movs r5, #0 - movs r4, #0 - ldr r3, _080E1C94 - movs r2, #0xff -_080E1A84: - adds r0, r4, r3 - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #6 - bls _080E1A84 - movs r0, #1 - movs r1, #0 - bl GetFontAttribute - ldr r0, _080E1C98 - ldrh r1, [r0] - cmp r1, #0 - bne _080E1ACE - movs r6, #6 - ldr r4, _080E1C94 - adds r0, r5, r4 - strb r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r0, #0xe8 - lsls r0, r0, #1 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #1 - bne _080E1ACE - adds r0, r5, r4 - strb r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_080E1ACE: - ldr r0, _080E1C9C - movs r1, #1 - bl CheckBagHasItem - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080E1B30 - ldr r0, _080E1CA0 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080E1B30 - ldr r2, _080E1C98 - ldrh r0, [r2] - cmp r0, #0 - bne _080E1B04 - movs r6, #7 - ldr r0, _080E1C94 - adds r0, r5, r0 - movs r1, #2 - strb r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_080E1B04: - ldrh r0, [r2] - cmp r0, #1 - bne _080E1B30 - movs r4, #0xd7 - lsls r4, r4, #1 - adds r0, r4, #0 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080E1B30 - movs r6, #7 - ldr r0, _080E1C94 - adds r0, r5, r0 - movs r1, #2 - strb r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r4, #0 - bl FlagSet -_080E1B30: - movs r0, #0xb9 - lsls r0, r0, #1 - movs r1, #1 - bl CheckBagHasItem - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080E1B90 - movs r0, #0x8e - lsls r0, r0, #4 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080E1B90 - ldr r2, _080E1C98 - ldrh r0, [r2] - cmp r0, #0 - bne _080E1B68 - ldr r0, _080E1C94 - adds r0, r5, r0 - movs r1, #3 - strb r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_080E1B68: - ldrh r0, [r2] - cmp r0, #1 - bne _080E1B90 - ldr r4, _080E1CA4 - adds r0, r4, #0 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080E1B90 - ldr r0, _080E1C94 - adds r0, r5, r0 - movs r1, #3 - strb r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r4, #0 - bl FlagSet -_080E1B90: - ldr r0, _080E1CA8 - movs r1, #1 - bl CheckBagHasItem - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080E1BF0 - ldr r0, _080E1CAC - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080E1BF0 - ldr r2, _080E1C98 - ldrh r0, [r2] - cmp r0, #0 - bne _080E1BC6 - movs r6, #8 - ldr r0, _080E1C94 - adds r0, r5, r0 - movs r1, #4 - strb r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_080E1BC6: - ldrh r0, [r2] - cmp r0, #1 - bne _080E1BF0 - ldr r4, _080E1CB0 - adds r0, r4, #0 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080E1BF0 - movs r6, #8 - ldr r0, _080E1C94 - adds r0, r5, r0 - movs r1, #4 - strb r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r4, #0 - bl FlagSet -_080E1BF0: - movs r0, #0xbc - lsls r0, r0, #1 - movs r1, #1 - bl CheckBagHasItem - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080E1C54 - ldr r0, _080E1CB4 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080E1C54 - ldr r2, _080E1C98 - ldrh r0, [r2] - cmp r0, #0 - bne _080E1C28 - movs r6, #8 - ldr r0, _080E1C94 - adds r0, r5, r0 - movs r1, #5 - strb r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_080E1C28: - ldrh r0, [r2] - cmp r0, #1 - bne _080E1C54 - movs r4, #0xd8 - lsls r4, r4, #1 - adds r0, r4, #0 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080E1C54 - movs r6, #8 - ldr r0, _080E1C94 - adds r0, r5, r0 - movs r1, #5 - strb r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r4, #0 - bl FlagSet -_080E1C54: - ldr r0, _080E1C94 - adds r0, r5, r0 - movs r1, #6 - strb r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _080E1C98 - ldrh r0, [r0] - cmp r0, #0 - bne _080E1C7C - movs r0, #0xe8 - lsls r0, r0, #1 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080E1C7C - movs r6, #9 -_080E1C7C: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r7, r5, #0 - cmp r7, #7 - bne _080E1CB8 - ldr r1, _080E1C98 - movs r0, #0xb - strh r0, [r1] - bl sub_0813A164 - b _080E1D54 - .align 2, 0 -_080E1C94: .4byte gUnknown_3001124 -_080E1C98: .4byte gUnknown_2037280 -_080E1C9C: .4byte 0x00000113 -_080E1CA0: .4byte 0x000008B3 -_080E1CA4: .4byte 0x000001DB -_080E1CA8: .4byte 0x00000173 -_080E1CAC: .4byte 0x000008D5 -_080E1CB0: .4byte 0x000001AF -_080E1CB4: .4byte 0x000008D6 -_080E1CB8: - movs r0, #0x1c - subs r0, r0, r6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #6 - subs r1, r1, r7 - lsls r1, r1, #0x19 - lsrs r1, r1, #0x18 - lsls r3, r7, #0x19 - lsrs r3, r3, #0x18 - adds r2, r6, #0 - bl CreateWindowFromRect - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r0, r6, #0 - movs r1, #0 - bl SetStandardWindowBorderStyle - movs r5, #0 - movs r4, #0 - subs r0, r7, #1 - mov r8, r0 - ldr r1, _080E1D64 - mov sb, r1 -_080E1CEA: - ldr r0, _080E1D68 - adds r1, r4, r0 - ldrb r0, [r1] - cmp r0, #0xff - beq _080E1D1C - lsls r0, r0, #2 - add r0, sb - ldr r2, [r0] - lsls r0, r5, #4 - adds r0, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - adds r0, r6, #0 - movs r1, #1 - movs r3, #8 - bl AddTextPrinterParameterized - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_080E1D1C: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #6 - bls _080E1CEA - movs r0, #0x10 - str r0, [sp] - str r7, [sp, #4] - mov r1, r8 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #8] - adds r0, r6, #0 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl sub_081984B0 - adds r0, r6, #0 - movs r1, #3 - bl CopyWindowToVram - movs r0, #0 - adds r1, r7, #0 - adds r2, r6, #0 - movs r3, #8 - bl sub_080E14CC -_080E1D54: - add sp, #0xc - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E1D64: .4byte gUnknown_8564620 -_080E1D68: .4byte gUnknown_3001124 - thumb_func_end sub_080E1A70 - - thumb_func_start sub_080E1D6C -sub_080E1D6C: @ 0x080E1D6C - push {lr} - ldr r2, _080E1D84 - ldrh r0, [r2] - cmp r0, #0x7f - beq _080E1D80 - ldr r0, _080E1D88 - ldrh r1, [r2] - adds r1, r1, r0 - ldrb r0, [r1] - strh r0, [r2] -_080E1D80: - pop {r0} - bx r0 - .align 2, 0 -_080E1D84: .4byte gUnknown_2037290 -_080E1D88: .4byte gUnknown_3001124 - thumb_func_end sub_080E1D6C - - thumb_func_start Task_PokemonPicWindow -Task_PokemonPicWindow: @ 0x080E1D8C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080E1DB0 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _080E1DEC - cmp r0, #1 - bgt _080E1DB4 - cmp r0, #0 - beq _080E1DD2 - b _080E1DEC - .align 2, 0 -_080E1DB0: .4byte gUnknown_3005B60 -_080E1DB4: - cmp r0, #2 - beq _080E1DBE - cmp r0, #3 - beq _080E1DE0 - b _080E1DEC -_080E1DBE: - movs r0, #0xc - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080E1DDC - adds r0, r0, r1 - ldrb r1, [r4, #0xc] - bl FreeResourcesAndDestroySprite -_080E1DD2: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _080E1DEC - .align 2, 0 -_080E1DDC: .4byte gUnknown_20205AC -_080E1DE0: - ldrb r0, [r4, #0x12] - bl sub_080E1F6C - adds r0, r5, #0 - bl DestroyTask -_080E1DEC: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Task_PokemonPicWindow - - thumb_func_start ScriptMenu_ShowPokemonPic -ScriptMenu_ShowPokemonPic: @ 0x080E1DF4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - ldr r4, _080E1E9C - adds r0, r4, #0 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080E1EAC - lsls r1, r7, #0x13 - movs r0, #0xa0 - lsls r0, r0, #0xe - adds r1, r1, r0 - asrs r1, r1, #0x10 - lsls r2, r6, #0x13 - adds r2, r2, r0 - asrs r2, r2, #0x10 - mov r0, r8 - movs r3, #0 - bl CreateMonSprite_PicBox - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - adds r0, r4, #0 - movs r1, #0x50 - bl CreateTask - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r7, #0 - adds r1, r6, #0 - movs r2, #8 - movs r3, #8 - bl CreateWindowFromRect - ldr r1, _080E1EA0 - lsls r3, r4, #2 - adds r3, r3, r4 - lsls r3, r3, #3 - adds r3, r3, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - strh r0, [r3, #0x12] - strh r1, [r3, #8] - mov r0, r8 - strh r0, [r3, #0xa] - strh r5, [r3, #0xc] - ldr r4, _080E1EA4 - lsls r1, r5, #4 - adds r1, r1, r5 - lsls r1, r1, #2 - adds r0, r4, #0 - adds r0, #0x1c - adds r0, r1, r0 - ldr r2, _080E1EA8 - str r2, [r0] - adds r1, r1, r4 - ldrb r2, [r1, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #5] - ldrb r0, [r3, #0x12] - movs r1, #1 - bl SetStandardWindowBorderStyle - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #1 - b _080E1EAE - .align 2, 0 -_080E1E9C: .4byte Task_PokemonPicWindow -_080E1EA0: .4byte gUnknown_3005B60 -_080E1EA4: .4byte gUnknown_20205AC -_080E1EA8: .4byte sub_08007140 -_080E1EAC: - movs r0, #0 -_080E1EAE: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end ScriptMenu_ShowPokemonPic - - thumb_func_start ScriptMenu_GetPicboxWaitFunc -ScriptMenu_GetPicboxWaitFunc: @ 0x080E1EB8 - push {lr} - ldr r0, _080E1EDC - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xff - beq _080E1EE8 - ldr r0, _080E1EE0 - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - ldr r0, _080E1EE4 - b _080E1EEA - .align 2, 0 -_080E1EDC: .4byte Task_PokemonPicWindow -_080E1EE0: .4byte gUnknown_3005B60 -_080E1EE4: .4byte IsPicboxClosed -_080E1EE8: - movs r0, #0 -_080E1EEA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScriptMenu_GetPicboxWaitFunc - - thumb_func_start IsPicboxClosed -IsPicboxClosed: @ 0x080E1EF0 - push {lr} - ldr r0, _080E1F04 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _080E1F08 - movs r0, #0 - b _080E1F0A - .align 2, 0 -_080E1F04: .4byte Task_PokemonPicWindow -_080E1F08: - movs r0, #1 -_080E1F0A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsPicboxClosed - - thumb_func_start CreateWindowFromRect -CreateWindowFromRect: @ 0x080E1F10 - push {r4, r5, lr} - sub sp, #0x20 - adds r4, r0, #0 - adds r5, r1, #0 - lsls r4, r4, #0x18 - lsls r5, r5, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #0x80 - lsls r0, r0, #0x11 - adds r4, r4, r0 - lsrs r4, r4, #0x18 - adds r5, r5, r0 - lsrs r5, r5, #0x18 - str r2, [sp] - str r3, [sp, #4] - movs r0, #0xf - str r0, [sp, #8] - movs r0, #0x5c - str r0, [sp, #0xc] - add r0, sp, #0x10 - movs r1, #0 - adds r2, r4, #0 - adds r3, r5, #0 - bl CreateWindowTemplate - ldr r0, [sp, #0x10] - ldr r1, [sp, #0x14] - str r0, [sp, #0x18] - str r1, [sp, #0x1c] - add r0, sp, #0x18 - bl AddWindow - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl PutWindowTilemap - adds r0, r4, #0 - add sp, #0x20 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end CreateWindowFromRect - - thumb_func_start sub_080E1F6C -sub_080E1F6C: @ 0x080E1F6C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #1 - bl sub_08198134 - adds r0, r4, #0 - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080E1F6C - - thumb_func_start sub_080E1F88 -sub_080E1F88: @ 0x080E1F88 - push {r4, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, #0x4a - cmp r0, #5 - bhi _080E2064 - lsls r0, r0, #2 - ldr r1, _080E1FA0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E1FA0: .4byte _080E1FA4 -_080E1FA4: @ jump table - .4byte _080E2034 @ case 0 - .4byte _080E1FFC @ case 1 - .4byte _080E1FCC @ case 2 - .4byte _080E1FBC @ case 3 - .4byte _080E1FDC @ case 4 - .4byte _080E1FEC @ case 5 -_080E1FBC: - movs r0, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r4, _080E1FC8 - b _080E2006 - .align 2, 0 -_080E1FC8: .4byte gUnknown_856464C -_080E1FCC: - movs r0, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r4, _080E1FD8 - b _080E2006 - .align 2, 0 -_080E1FD8: .4byte gUnknown_856463C -_080E1FDC: - movs r0, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r4, _080E1FE8 - b _080E2006 - .align 2, 0 -_080E1FE8: .4byte gUnknown_856465C -_080E1FEC: - movs r0, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r4, _080E1FF8 - b _080E2006 - .align 2, 0 -_080E1FF8: .4byte gUnknown_856466C -_080E1FFC: - movs r0, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r4, _080E2030 -_080E2006: - bl Menu_GetCursorPos - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r0, r0, r4 - ldr r2, [r0] - movs r0, #0 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - movs r0, #3 - str r0, [sp, #0xc] - movs r0, #0 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized2 - b _080E2064 - .align 2, 0 -_080E2030: .4byte gUnknown_856468C -_080E2034: - movs r0, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r4, _080E206C - bl Menu_GetCursorPos - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r0, r0, r4 - ldr r2, [r0] - movs r0, #0 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - movs r0, #3 - str r0, [sp, #0xc] - movs r0, #0 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized2 -_080E2064: - add sp, #0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E206C: .4byte gUnknown_8564680 - thumb_func_end sub_080E1F88 - - thumb_func_start sub_080E2070 -sub_080E2070: @ 0x080E2070 - push {lr} - ldr r0, _080E2090 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080E2098 - ldr r1, _080E2094 - movs r0, #0xff - strh r0, [r1] - bl sub_080E20A0 - movs r0, #1 - b _080E209A - .align 2, 0 -_080E2090: .4byte Task_HandleMultichoiceInput -_080E2094: .4byte gUnknown_2037290 -_080E2098: - movs r0, #0 -_080E209A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080E2070 - - thumb_func_start sub_080E20A0 -sub_080E20A0: @ 0x080E20A0 - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - sub sp, #0xc - movs r0, #1 - movs r1, #0 - bl GetFontAttribute - adds r5, r0, #0 - adds r5, #1 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - movs r0, #1 - movs r1, #1 - bl GetFontAttribute - movs r0, #8 - mov sl, r0 - movs r0, #0x10 - mov sb, r0 - movs r0, #0x16 - movs r1, #0 - movs r2, #6 - movs r3, #0x10 - bl CreateWindowFromRect - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #0 - bl SetStandardWindowBorderStyle - ldr r2, _080E21D8 - movs r0, #2 - str r0, [sp] - movs r0, #0xff - mov r8, r0 - str r0, [sp, #4] - movs r6, #0 - str r6, [sp, #8] - adds r0, r4, #0 - movs r1, #1 - adds r3, r5, #0 - bl AddTextPrinterParameterized - ldr r2, _080E21DC - movs r0, #0x12 - str r0, [sp] - mov r0, r8 - str r0, [sp, #4] - str r6, [sp, #8] - adds r0, r4, #0 - movs r1, #1 - adds r3, r5, #0 - bl AddTextPrinterParameterized - ldr r2, _080E21E0 - movs r0, #0x22 - str r0, [sp] - mov r0, r8 - str r0, [sp, #4] - str r6, [sp, #8] - adds r0, r4, #0 - movs r1, #1 - adds r3, r5, #0 - bl AddTextPrinterParameterized - ldr r2, _080E21E4 - movs r0, #0x32 - str r0, [sp] - mov r0, r8 - str r0, [sp, #4] - str r6, [sp, #8] - adds r0, r4, #0 - movs r1, #1 - adds r3, r5, #0 - bl AddTextPrinterParameterized - ldr r0, _080E21E8 - ldr r2, [r0] - movs r0, #0x42 - str r0, [sp] - mov r0, r8 - str r0, [sp, #4] - str r6, [sp, #8] - adds r0, r4, #0 - movs r1, #1 - adds r3, r5, #0 - bl AddTextPrinterParameterized - ldr r2, _080E21EC - movs r0, #0x52 - str r0, [sp] - mov r0, r8 - str r0, [sp, #4] - str r6, [sp, #8] - adds r0, r4, #0 - movs r1, #1 - adds r3, r5, #0 - bl AddTextPrinterParameterized - ldr r2, _080E21F0 - movs r0, #0x62 - str r0, [sp] - mov r0, r8 - str r0, [sp, #4] - str r6, [sp, #8] - adds r0, r4, #0 - movs r1, #1 - adds r3, r5, #0 - bl AddTextPrinterParameterized - ldr r2, _080E21F4 - movs r0, #0x72 - str r0, [sp] - mov r0, r8 - str r0, [sp, #4] - str r6, [sp, #8] - adds r0, r4, #0 - movs r1, #1 - adds r3, r5, #0 - bl AddTextPrinterParameterized - mov r0, sb - str r0, [sp] - mov r0, sl - str r0, [sp, #4] - str r6, [sp, #8] - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl sub_081984B0 - movs r0, #0 - movs r1, #8 - adds r2, r4, #0 - movs r3, #0x56 - bl sub_080E21F8 - adds r0, r4, #0 - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080E21D8: .4byte gUnknown_85CADAE -_080E21DC: .4byte gUnknown_85CADB2 -_080E21E0: .4byte gUnknown_85CADB7 -_080E21E4: .4byte gUnknown_85CADBB -_080E21E8: .4byte gUnknown_3005AF0 -_080E21EC: .4byte gUnknown_85CADC6 -_080E21F0: .4byte gUnknown_85CADCB -_080E21F4: .4byte gUnknown_85CADD0 - thumb_func_end sub_080E20A0 - - thumb_func_start sub_080E21F8 -sub_080E21F8: @ 0x080E21F8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r2, #0 - adds r6, r3, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - ldr r1, _080E2238 - movs r0, #2 - strb r0, [r1] - ldr r0, _080E223C - movs r1, #0x50 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080E2240 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r0, #0 - strh r4, [r1, #0x10] - strh r0, [r1, #0x12] - strh r5, [r1, #0x14] - strh r6, [r1, #0x16] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080E2238: .4byte gUnknown_2039C30 -_080E223C: .4byte Task_HandleMultichoiceInput -_080E2240: .4byte gUnknown_3005B60 - thumb_func_end sub_080E21F8 - - thumb_func_start DoNamingScreen -DoNamingScreen: @ 0x080E2244 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r2, r2, #0x10 - lsrs r5, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r6, r3, #0x10 - ldr r4, _080E2270 - movs r0, #0xf2 - lsls r0, r0, #5 - bl sub_08000BC8 - str r0, [r4] - cmp r0, #0 - bne _080E2274 - ldr r0, [sp, #0x1c] - bl SetMainCallback2 - b _080E22AE - .align 2, 0 -_080E2270: .4byte gUnknown_2039C34 -_080E2274: - ldr r1, _080E22B8 - adds r0, r0, r1 - strb r7, [r0] - ldr r0, [r4] - ldr r2, _080E22BC - adds r1, r0, r2 - strh r5, [r1] - adds r2, #2 - adds r1, r0, r2 - strh r6, [r1] - ldr r1, _080E22C0 - adds r2, r0, r1 - ldr r1, [sp, #0x18] - str r1, [r2] - ldr r2, _080E22C4 - adds r1, r0, r2 - mov r2, r8 - str r2, [r1] - ldr r1, _080E22C8 - adds r0, r0, r1 - ldr r2, [sp, #0x1c] - str r2, [r0] - cmp r7, #0 - bne _080E22A8 - bl StartTimer1 -_080E22A8: - ldr r0, _080E22CC - bl SetMainCallback2 -_080E22AE: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E22B8: .4byte 0x00001E2C -_080E22BC: .4byte 0x00001E34 -_080E22C0: .4byte 0x00001E38 -_080E22C4: .4byte 0x00001E30 -_080E22C8: .4byte 0x00001E3C -_080E22CC: .4byte C2_NamingScreen - thumb_func_end DoNamingScreen - - thumb_func_start C2_NamingScreen -C2_NamingScreen: @ 0x080E22D0 - push {lr} - ldr r0, _080E22EC - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #7 - bhi _080E2368 - lsls r0, r0, #2 - ldr r1, _080E22F0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E22EC: .4byte gUnknown_3002360 -_080E22F0: .4byte _080E22F4 -_080E22F4: @ jump table - .4byte _080E2314 @ case 0 - .4byte _080E231E @ case 1 - .4byte _080E2324 @ case 2 - .4byte _080E232A @ case 3 - .4byte _080E2334 @ case 4 - .4byte _080E233A @ case 5 - .4byte _080E2340 @ case 6 - .4byte _080E2346 @ case 7 -_080E2314: - bl NamingScreen_TurnOffScreen - bl sub_080E2374 - b _080E2352 -_080E231E: - bl NamingScreen_InitBGs - b _080E2352 -_080E2324: - bl ResetPaletteFade - b _080E2352 -_080E232A: - bl ResetSpriteData - bl FreeAllSpritePalettes - b _080E2352 -_080E2334: - bl ResetTasks - b _080E2352 -_080E233A: - bl sub_080E4460 - b _080E2352 -_080E2340: - bl choose_name_or_words_screen_load_bg_tile_patterns - b _080E2352 -_080E2346: - bl sub_080E31EC - bl UpdatePaletteFade - bl sub_080E4810 -_080E2352: - ldr r1, _080E2364 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080E2370 - .align 2, 0 -_080E2364: .4byte gUnknown_3002360 -_080E2368: - bl sub_080E4450 - bl sub_080E265C -_080E2370: - pop {r0} - bx r0 - thumb_func_end C2_NamingScreen - - thumb_func_start sub_080E2374 -sub_080E2374: @ 0x080E2374 - push {r4, r5, r6, lr} - ldr r5, _080E2434 - ldr r0, [r5] - ldr r1, _080E2438 - adds r0, r0, r1 - movs r2, #0 - strb r2, [r0] - ldr r1, [r5] - ldr r3, _080E243C - adds r0, r1, r3 - movs r4, #0 - strh r2, [r0] - adds r3, #2 - adds r0, r1, r3 - strh r2, [r0] - ldr r0, _080E2440 - adds r2, r1, r0 - movs r3, #1 - movs r0, #1 - strh r0, [r2] - ldr r0, _080E2444 - adds r2, r1, r0 - movs r0, #2 - strh r0, [r2] - movs r2, #0xf1 - lsls r2, r2, #5 - adds r1, r1, r2 - strb r4, [r1] - ldr r0, [r5] - ldr r1, _080E2448 - adds r0, r0, r1 - strb r3, [r0] - ldr r1, [r5] - ldr r6, _080E244C - adds r3, r1, r6 - ldr r2, _080E2450 - ldr r4, _080E2454 - adds r0, r1, r4 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r3] - ldrb r0, [r0, #4] - ldr r2, _080E2458 - adds r1, r1, r2 - strb r0, [r1] - ldr r2, [r5] - adds r0, r2, r6 - ldr r0, [r0] - ldrb r0, [r0, #1] - lsrs r0, r0, #1 - movs r1, #0xe - subs r1, r1, r0 - ldr r0, _080E245C - adds r3, r2, r0 - strh r1, [r3] - adds r2, r2, r4 - ldrb r0, [r2] - cmp r0, #4 - bne _080E23F2 - adds r0, r1, #1 - strh r0, [r3] -_080E23F2: - ldr r0, [r5] - ldr r4, _080E2460 - ldrh r1, [r4] - ldr r2, _080E2464 - adds r0, r0, r2 - strb r1, [r0] - ldr r0, [r5] - movs r3, #0xc0 - lsls r3, r3, #5 - adds r0, r0, r3 - movs r1, #0xff - movs r2, #0x10 - bl memset - ldr r1, [r5] - adds r0, r1, r6 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, #0 - beq _080E242A - movs r2, #0xc0 - lsls r2, r2, #5 - adds r0, r1, r2 - ldr r3, _080E2468 - adds r1, r1, r3 - ldr r1, [r1] - bl StringCopy -_080E242A: - movs r0, #0x10 - strh r0, [r4] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080E2434: .4byte gUnknown_2039C34 -_080E2438: .4byte 0x00001E10 -_080E243C: .4byte 0x00001E18 -_080E2440: .4byte 0x00001E1C -_080E2444: .4byte 0x00001E1E -_080E2448: .4byte 0x00001E21 -_080E244C: .4byte 0x00001E28 -_080E2450: .4byte gUnknown_8565CE8 -_080E2454: .4byte 0x00001E2C -_080E2458: .4byte 0x00001E22 -_080E245C: .4byte 0x00001E16 -_080E2460: .4byte gUnknown_3002350 -_080E2464: .4byte 0x00001E25 -_080E2468: .4byte 0x00001E30 - thumb_func_end sub_080E2374 - - thumb_func_start sub_080E246C -sub_080E246C: @ 0x080E246C - push {r4, r5, lr} - movs r3, #0 - ldr r4, _080E24A8 - movs r5, #5 - rsbs r5, r5, #0 -_080E2476: - lsls r0, r3, #4 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r2, r0, #0 - adds r2, #0x3e - ldrb r1, [r2] - lsls r0, r1, #0x1f - cmp r0, #0 - beq _080E2490 - adds r0, r5, #0 - ands r0, r1 - strb r0, [r2] -_080E2490: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0x3f - bls _080E2476 - movs r0, #0 - bl sub_080E3320 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080E24A8: .4byte gUnknown_20205AC - thumb_func_end sub_080E246C - - thumb_func_start NamingScreen_InitBGs -NamingScreen_InitBGs: @ 0x080E24AC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x10 - movs r3, #0xc0 - lsls r3, r3, #0x13 - movs r4, #0xc0 - lsls r4, r4, #9 - add r0, sp, #0xc - mov r8, r0 - add r2, sp, #8 - movs r6, #0 - ldr r1, _080E2640 - movs r5, #0x80 - lsls r5, r5, #5 - ldr r7, _080E2644 - movs r0, #0x81 - lsls r0, r0, #0x18 - mov ip, r0 -_080E24D2: - strh r6, [r2] - add r0, sp, #8 - str r0, [r1] - str r3, [r1, #4] - str r7, [r1, #8] - ldr r0, [r1, #8] - adds r3, r3, r5 - subs r4, r4, r5 - cmp r4, r5 - bhi _080E24D2 - strh r6, [r2] - add r2, sp, #8 - str r2, [r1] - str r3, [r1, #4] - lsrs r0, r4, #1 - mov r2, ip - orrs r0, r2 - str r0, [r1, #8] - ldr r0, [r1, #8] - movs r0, #0xe0 - lsls r0, r0, #0x13 - movs r3, #0x80 - lsls r3, r3, #3 - movs r4, #0 - str r4, [sp, #0xc] - ldr r2, _080E2640 - mov r1, r8 - str r1, [r2] - str r0, [r2, #4] - lsrs r0, r3, #2 - movs r1, #0x85 - lsls r1, r1, #0x18 - orrs r0, r1 - str r0, [r2, #8] - ldr r0, [r2, #8] - movs r1, #0xa0 - lsls r1, r1, #0x13 - add r0, sp, #8 - strh r4, [r0] - str r0, [r2] - str r1, [r2, #4] - lsrs r3, r3, #1 - movs r0, #0x81 - lsls r0, r0, #0x18 - orrs r3, r0 - str r3, [r2, #8] - ldr r0, [r2, #8] - movs r0, #0 - movs r1, #0 - bl SetGpuReg - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _080E2648 - movs r0, #0 - movs r2, #4 - bl InitBgsFromTemplates - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - bl InitStandardTextBoxWindows - bl sub_08196DF4 -_080E25A0: - lsls r0, r4, #3 - ldr r1, _080E264C - adds r0, r0, r1 - bl AddWindow - ldr r5, _080E2650 - ldr r1, [r5] - ldr r2, _080E2654 - adds r1, r1, r2 - adds r1, r1, r4 - strb r0, [r1] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #4 - bls _080E25A0 - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r1, #0xc8 - lsls r1, r1, #3 - movs r0, #0x50 - bl SetGpuReg - ldr r1, _080E2658 - movs r0, #0x52 - bl SetGpuReg - ldr r1, [r5] - movs r0, #1 - bl SetBgTilemapBuffer - ldr r1, [r5] - movs r0, #0x80 - lsls r0, r0, #4 - adds r1, r1, r0 - movs r0, #2 - bl SetBgTilemapBuffer - ldr r1, [r5] - movs r2, #0x80 - lsls r2, r2, #5 - adds r1, r1, r2 - movs r0, #3 - bl SetBgTilemapBuffer - movs r4, #0x20 - str r4, [sp] - str r4, [sp, #4] - movs r0, #1 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - str r4, [sp, #4] - movs r0, #2 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - str r4, [sp, #4] - movs r0, #3 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E2640: .4byte 0x040000D4 -_080E2644: .4byte 0x81000800 -_080E2648: .4byte gUnknown_85659FC -_080E264C: .4byte gUnknown_8565A0C -_080E2650: .4byte gUnknown_2039C34 -_080E2654: .4byte 0x00001E11 -_080E2658: .4byte 0x0000080C - thumb_func_end NamingScreen_InitBGs - - thumb_func_start sub_080E265C -sub_080E265C: @ 0x080E265C - push {lr} - ldr r0, _080E2670 - movs r1, #2 - bl CreateTask - ldr r0, _080E2674 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080E2670: .4byte sub_080E2678 -_080E2674: .4byte sub_080E474C - thumb_func_end sub_080E265C - - thumb_func_start sub_080E2678 -sub_080E2678: @ 0x080E2678 - push {lr} - ldr r0, _080E2694 - ldr r0, [r0] - ldr r1, _080E2698 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #9 - bhi _080E2708 - lsls r0, r0, #2 - ldr r1, _080E269C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E2694: .4byte gUnknown_2039C34 -_080E2698: .4byte 0x00001E10 -_080E269C: .4byte _080E26A0 -_080E26A0: @ jump table - .4byte _080E26C8 @ case 0 - .4byte _080E26D6 @ case 1 - .4byte _080E26E0 @ case 2 - .4byte _080E26DC @ case 3 - .4byte _080E26E6 @ case 4 - .4byte _080E26EC @ case 5 - .4byte _080E26F2 @ case 6 - .4byte _080E26F8 @ case 7 - .4byte _080E26FE @ case 8 - .4byte _080E2704 @ case 9 -_080E26C8: - bl sub_080E27B8 - bl sub_080E246C - bl NamingScreen_InitDisplayMode - b _080E2708 -_080E26D6: - bl MainState_WaitFadeIn - b _080E2708 -_080E26DC: - bl MainState_MoveToOKButton -_080E26E0: - bl MainState_HandleInput - b _080E2708 -_080E26E6: - bl sub_080E2BD4 - b _080E2708 -_080E26EC: - bl sub_080E2C14 - b _080E2708 -_080E26F2: - bl MainState_6 - b _080E2708 -_080E26F8: - bl sub_080E2B98 - b _080E2708 -_080E26FE: - bl MainState_BeginFadeInOut - b _080E2708 -_080E2704: - bl MainState_WaitFadeOutAndExit -_080E2708: - pop {r0} - bx r0 - thumb_func_end sub_080E2678 - - thumb_func_start sub_080E270C -sub_080E270C: @ 0x080E270C - push {lr} - ldr r0, _080E2724 - ldr r0, [r0] - ldr r1, _080E2728 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _080E2720 - cmp r0, #4 - bne _080E272C -_080E2720: - movs r0, #1 - b _080E272E - .align 2, 0 -_080E2724: .4byte gUnknown_2039C34 -_080E2728: .4byte 0x00001E2C -_080E272C: - movs r0, #0 -_080E272E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080E270C - - thumb_func_start sub_080E2734 -sub_080E2734: @ 0x080E2734 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r5, _080E2754 - bl sub_080E270C - lsls r1, r0, #1 - adds r1, r1, r0 - adds r4, r4, r1 - adds r4, r4, r5 - ldrb r0, [r4] - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080E2754: .4byte gUnknown_8565A3C - thumb_func_end sub_080E2734 - - thumb_func_start sub_080E2758 -sub_080E2758: @ 0x080E2758 - push {r4, lr} - ldr r4, _080E277C - bl sub_080E270C - ldr r1, _080E2780 - ldr r2, [r1] - ldr r1, _080E2784 - adds r2, r2, r1 - lsls r1, r0, #1 - adds r1, r1, r0 - ldrb r2, [r2] - adds r1, r1, r2 - adds r1, r1, r4 - ldrb r0, [r1] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080E277C: .4byte gUnknown_8565A42 -_080E2780: .4byte gUnknown_2039C34 -_080E2784: .4byte 0x00001E22 - thumb_func_end sub_080E2758 - - thumb_func_start sub_080E2788 -sub_080E2788: @ 0x080E2788 - push {r4, lr} - ldr r4, _080E27AC - bl sub_080E270C - ldr r1, _080E27B0 - ldr r2, [r1] - ldr r1, _080E27B4 - adds r2, r2, r1 - lsls r1, r0, #1 - adds r1, r1, r0 - ldrb r2, [r2] - adds r1, r1, r2 - adds r1, r1, r4 - ldrb r0, [r1] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080E27AC: .4byte gUnknown_8565A48 -_080E27B0: .4byte gUnknown_2039C34 -_080E27B4: .4byte 0x00001E22 - thumb_func_end sub_080E2788 - - thumb_func_start sub_080E27B8 -sub_080E27B8: @ 0x080E27B8 - push {r4, lr} - sub sp, #4 - ldr r1, _080E2818 - movs r0, #3 - bl sub_080E4490 - bl sub_080E270C - adds r1, r0, #0 - cmp r1, #0 - beq _080E2834 - ldr r4, _080E281C - ldr r0, [r4] - ldr r1, _080E2820 - adds r0, r0, r1 - movs r1, #1 - strb r1, [r0] - ldr r1, _080E2824 - movs r0, #2 - bl sub_080E4490 - ldr r1, _080E2828 - movs r0, #1 - bl sub_080E4490 - ldr r0, [r4] - ldr r2, _080E282C - adds r0, r0, r2 - ldrb r0, [r0] - movs r1, #0 - bl sub_080E45D0 - ldr r0, [r4] - ldr r1, _080E2830 - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #1 - bl sub_080E45D0 - movs r0, #2 - movs r1, #0 - bl sub_080E44A4 - movs r0, #1 - movs r1, #1 - bl sub_080E44A4 - b _080E287A - .align 2, 0 -_080E2818: .4byte gUnknown_8565524 -_080E281C: .4byte gUnknown_2039C34 -_080E2820: .4byte 0x00001E22 -_080E2824: .4byte gUnknown_85656C8 -_080E2828: .4byte gUnknown_8565600 -_080E282C: .4byte 0x00001E12 -_080E2830: .4byte 0x00001E11 -_080E2834: - ldr r4, _080E28D4 - ldr r0, [r4] - ldr r2, _080E28D8 - adds r0, r0, r2 - strb r1, [r0] - ldr r1, _080E28DC - movs r0, #1 - bl sub_080E4490 - ldr r1, _080E28E0 - movs r0, #2 - bl sub_080E4490 - ldr r0, [r4] - ldr r1, _080E28E4 - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #0 - bl sub_080E45D0 - ldr r0, [r4] - ldr r2, _080E28E8 - adds r0, r0, r2 - ldrb r0, [r0] - movs r1, #1 - bl sub_080E45D0 - movs r0, #1 - movs r1, #0 - bl sub_080E44A4 - movs r0, #2 - movs r1, #1 - bl sub_080E44A4 -_080E287A: - bl sub_080E4510 - bl sub_080E3E4C - bl sub_080E3E24 - bl sub_080E46E4 - movs r0, #1 - bl CopyBgTilemapBufferToVram - movs r0, #2 - bl CopyBgTilemapBufferToVram - movs r0, #3 - bl CopyBgTilemapBufferToVram - movs r4, #1 - rsbs r4, r4, #0 - adds r0, r4, #0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - movs r0, #0 - str r0, [sp] - adds r0, r4, #0 - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r0, _080E28D4 - ldr r1, [r0] - ldr r0, _080E28EC - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #0 - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080E28D4: .4byte gUnknown_2039C34 -_080E28D8: .4byte 0x00001E22 -_080E28DC: .4byte gUnknown_85656C8 -_080E28E0: .4byte gUnknown_8565600 -_080E28E4: .4byte 0x00001E11 -_080E28E8: .4byte 0x00001E12 -_080E28EC: .4byte 0x00001E10 - thumb_func_end sub_080E27B8 - - thumb_func_start MainState_WaitFadeIn -MainState_WaitFadeIn: @ 0x080E28F0 - push {lr} - ldr r0, _080E2920 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080E2918 - movs r0, #1 - bl SetInputState - movs r0, #1 - bl sub_080E3378 - ldr r0, _080E2924 - ldr r1, [r0] - ldr r0, _080E2928 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_080E2918: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_080E2920: .4byte gUnknown_2037C74 -_080E2924: .4byte gUnknown_2039C34 -_080E2928: .4byte 0x00001E10 - thumb_func_end MainState_WaitFadeIn - - thumb_func_start MainState_HandleInput -MainState_HandleInput: @ 0x080E292C - push {lr} - bl HandleKeyboardEvent - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MainState_HandleInput - - thumb_func_start MainState_MoveToOKButton -MainState_MoveToOKButton: @ 0x080E293C - push {lr} - bl IsCursorAnimFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080E295E - movs r0, #1 - bl SetInputState - bl sub_080E3310 - ldr r0, _080E2964 - ldr r0, [r0] - ldr r1, _080E2968 - adds r0, r0, r1 - movs r1, #2 - strb r1, [r0] -_080E295E: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_080E2964: .4byte gUnknown_2039C34 -_080E2968: .4byte 0x00001E10 - thumb_func_end MainState_MoveToOKButton - - thumb_func_start MainState_6 -MainState_6: @ 0x080E296C - push {r4, lr} - bl sub_080E437C - movs r0, #0 - bl SetInputState - movs r0, #0 - bl sub_080E3378 - movs r0, #3 - movs r1, #0 - movs r2, #1 - bl sub_080E2E78 - ldr r4, _080E29B4 - ldr r0, [r4] - ldr r1, _080E29B8 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #2 - bne _080E29C0 - bl sub_0806B004 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #5 - bls _080E29C0 - bl DisplaySentToPCMessage - ldr r0, [r4] - ldr r1, _080E29BC - adds r0, r0, r1 - movs r1, #7 - strb r1, [r0] - movs r0, #0 - b _080E29CE - .align 2, 0 -_080E29B4: .4byte gUnknown_2039C34 -_080E29B8: .4byte 0x00001E2C -_080E29BC: .4byte 0x00001E10 -_080E29C0: - ldr r0, _080E29D4 - ldr r0, [r0] - ldr r1, _080E29D8 - adds r0, r0, r1 - movs r1, #8 - strb r1, [r0] - movs r0, #1 -_080E29CE: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080E29D4: .4byte gUnknown_2039C34 -_080E29D8: .4byte 0x00001E10 - thumb_func_end MainState_6 - - thumb_func_start MainState_BeginFadeInOut -MainState_BeginFadeInOut: @ 0x080E29DC - push {lr} - sub sp, #4 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _080E2A08 - ldr r1, [r0] - ldr r0, _080E2A0C - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #0 - add sp, #4 - pop {r1} - bx r1 - .align 2, 0 -_080E2A08: .4byte gUnknown_2039C34 -_080E2A0C: .4byte 0x00001E10 - thumb_func_end MainState_BeginFadeInOut - - thumb_func_start MainState_WaitFadeOutAndExit -MainState_WaitFadeOutAndExit: @ 0x080E2A10 - push {r4, r5, lr} - ldr r0, _080E2A64 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _080E2A5A - ldr r4, _080E2A68 - ldr r0, [r4] - ldr r1, _080E2A6C - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080E2A34 - bl SeedRngAndSetTrainerId -_080E2A34: - ldr r0, [r4] - ldr r1, _080E2A70 - adds r0, r0, r1 - ldr r0, [r0] - bl SetMainCallback2 - ldr r0, _080E2A74 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - bl FreeAllWindowBuffers - ldr r0, [r4] - bl Free - str r5, [r4] -_080E2A5A: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080E2A64: .4byte gUnknown_2037C74 -_080E2A68: .4byte gUnknown_2039C34 -_080E2A6C: .4byte 0x00001E2C -_080E2A70: .4byte 0x00001E3C -_080E2A74: .4byte sub_080E2678 - thumb_func_end MainState_WaitFadeOutAndExit - - thumb_func_start DisplaySentToPCMessage -DisplaySentToPCMessage: @ 0x080E2A78 - push {r4, r5, lr} - sub sp, #0x10 - movs r5, #0 - bl sub_0813B298 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080E2AC8 - ldr r4, _080E2AB4 - ldr r0, _080E2AB8 - bl VarGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBoxNamePtr - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCopy - ldr r0, _080E2ABC - ldr r1, _080E2AC0 - ldr r1, [r1] - ldr r2, _080E2AC4 - adds r1, r1, r2 - ldr r1, [r1] - bl StringCopy - b _080E2B08 - .align 2, 0 -_080E2AB4: .4byte gUnknown_2021C40 -_080E2AB8: .4byte 0x00004036 -_080E2ABC: .4byte gUnknown_2021C54 -_080E2AC0: .4byte gUnknown_2039C34 -_080E2AC4: .4byte 0x00001E30 -_080E2AC8: - ldr r4, _080E2B70 - ldr r0, _080E2B74 - bl VarGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBoxNamePtr - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCopy - ldr r0, _080E2B78 - ldr r1, _080E2B7C - ldr r1, [r1] - ldr r2, _080E2B80 - adds r1, r1, r2 - ldr r1, [r1] - bl StringCopy - ldr r4, _080E2B84 - bl sub_0813B248 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBoxNamePtr - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCopy - movs r5, #2 -_080E2B08: - ldr r0, _080E2B88 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080E2B1A - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_080E2B1A: - ldr r4, _080E2B8C - ldr r1, _080E2B90 - lsls r0, r5, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #0 - movs r1, #0 - bl sub_08196FB8 - ldr r2, _080E2B94 - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - bl GetPlayerTextSpeedDelay - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #0 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - movs r0, #3 - str r0, [sp, #0xc] - movs r0, #0 - movs r1, #1 - adds r2, r4, #0 - bl AddTextPrinterParameterized2 - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080E2B70: .4byte gUnknown_2021C40 -_080E2B74: .4byte 0x00004036 -_080E2B78: .4byte gUnknown_2021C54 -_080E2B7C: .4byte gUnknown_2039C34 -_080E2B80: .4byte 0x00001E30 -_080E2B84: .4byte gUnknown_2021C68 -_080E2B88: .4byte 0x000008AB -_080E2B8C: .4byte gUnknown_2021C7C -_080E2B90: .4byte gUnknown_8565858 -_080E2B94: .4byte gUnknown_30030B4 - thumb_func_end DisplaySentToPCMessage - - thumb_func_start sub_080E2B98 -sub_080E2B98: @ 0x080E2B98 - push {lr} - bl sub_08004630 - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080E2BC2 - ldr r0, _080E2BC8 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080E2BC2 - ldr r0, _080E2BCC - ldr r0, [r0] - ldr r1, _080E2BD0 - adds r0, r0, r1 - movs r1, #8 - strb r1, [r0] -_080E2BC2: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_080E2BC8: .4byte gUnknown_3002360 -_080E2BCC: .4byte gUnknown_2039C34 -_080E2BD0: .4byte 0x00001E10 - thumb_func_end sub_080E2B98 - - thumb_func_start sub_080E2BD4 -sub_080E2BD4: @ 0x080E2BD4 - push {lr} - movs r0, #0 - bl SetInputState - bl sub_080E3510 - bl StartPageSwapAnim - movs r0, #1 - bl sub_080E3320 - movs r0, #0 - movs r1, #0 - movs r2, #1 - bl sub_080E2E78 - movs r0, #6 - bl sub_080A306C - ldr r0, _080E2C0C - ldr r0, [r0] - ldr r1, _080E2C10 - adds r0, r0, r1 - movs r1, #5 - strb r1, [r0] - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_080E2C0C: .4byte gUnknown_2039C34 -_080E2C10: .4byte 0x00001E10 - thumb_func_end sub_080E2BD4 - - thumb_func_start sub_080E2C14 -sub_080E2C14: @ 0x080E2C14 - push {r4, lr} - bl IsPageSwapAnimNotInProgress - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080E2C56 - ldr r2, _080E2C60 - ldr r0, [r2] - ldr r1, _080E2C64 - adds r0, r0, r1 - movs r1, #2 - strb r1, [r0] - ldr r1, [r2] - ldr r3, _080E2C68 - adds r1, r1, r3 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r4, [r2] - adds r4, r4, r3 - ldrb r0, [r4] - movs r1, #3 - bl __umodsi3 - strb r0, [r4] - bl sub_080E4648 - movs r0, #1 - bl SetInputState - movs r0, #0 - bl sub_080E3320 -_080E2C56: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080E2C60: .4byte gUnknown_2039C34 -_080E2C64: .4byte 0x00001E10 -_080E2C68: .4byte 0x00001E22 - thumb_func_end sub_080E2C14 - - thumb_func_start StartPageSwapAnim -StartPageSwapAnim: @ 0x080E2C6C - push {r4, lr} - ldr r4, _080E2C88 - adds r0, r4, #0 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E2C88: .4byte sub_080E2C8C - thumb_func_end StartPageSwapAnim - - thumb_func_start sub_080E2C8C -sub_080E2C8C: @ 0x080E2C8C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _080E2CBC - ldr r2, _080E2CC0 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_080E2C9E: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080E2C9E - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080E2CBC: .4byte gUnknown_8565A50 -_080E2CC0: .4byte gUnknown_3005B60 - thumb_func_end sub_080E2C8C - - thumb_func_start IsPageSwapAnimNotInProgress -IsPageSwapAnimNotInProgress: @ 0x080E2CC4 - push {lr} - ldr r0, _080E2CD8 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _080E2CDC - movs r0, #0 - b _080E2CDE - .align 2, 0 -_080E2CD8: .4byte sub_080E2C8C -_080E2CDC: - movs r0, #1 -_080E2CDE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsPageSwapAnimNotInProgress - - thumb_func_start PageSwapAnimState_Init -PageSwapAnimState_Init: @ 0x080E2CE4 - ldr r1, _080E2D00 - ldr r1, [r1] - ldr r3, _080E2D04 - adds r2, r1, r3 - movs r3, #0 - strh r3, [r2] - ldr r2, _080E2D08 - adds r1, r1, r2 - strh r3, [r1] - ldrh r1, [r0, #8] - adds r1, #1 - strh r1, [r0, #8] - movs r0, #0 - bx lr - .align 2, 0 -_080E2D00: .4byte gUnknown_2039C34 -_080E2D04: .4byte 0x00001E18 -_080E2D08: .4byte 0x00001E1A - thumb_func_end PageSwapAnimState_Init - - thumb_func_start PageSwapAnimState_1 -PageSwapAnimState_1: @ 0x080E2D0C - push {r4, r5, lr} - sub sp, #8 - adds r4, r0, #0 - ldr r5, _080E2D8C - ldr r0, [r5] - ldr r2, _080E2D90 - adds r1, r0, r2 - str r1, [sp] - ldr r1, _080E2D94 - adds r0, r0, r1 - str r0, [sp, #4] - ldrh r0, [r4, #0xa] - adds r0, #4 - strh r0, [r4, #0xa] - movs r2, #0xa - ldrsh r0, [r4, r2] - movs r1, #0x28 - bl Sin - ldr r1, [r5] - movs r2, #0xf1 - lsls r2, r2, #5 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #2 - add r1, sp - ldr r1, [r1] - strh r0, [r1] - ldrh r0, [r4, #0xa] - adds r0, #0x80 - movs r1, #0xff - ands r0, r1 - movs r1, #0x28 - bl Sin - ldr r1, [r5] - ldr r2, _080E2D98 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #2 - add r1, sp - ldr r1, [r1] - strh r0, [r1] - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0x3f - ble _080E2D82 - ldr r0, [r5] - ldr r1, _080E2D9C - adds r2, r0, r1 - ldrb r3, [r2] - adds r1, #2 - adds r0, r0, r1 - ldrh r1, [r0] - strh r1, [r2] - strh r3, [r0] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080E2D82: - movs r0, #0 - add sp, #8 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080E2D8C: .4byte gUnknown_2039C34 -_080E2D90: .4byte 0x00001E1A -_080E2D94: .4byte 0x00001E18 -_080E2D98: .4byte 0x00001E21 -_080E2D9C: .4byte 0x00001E1C - thumb_func_end PageSwapAnimState_1 - - thumb_func_start PageSwapAnimState_2 -PageSwapAnimState_2: @ 0x080E2DA0 - push {r4, r5, lr} - sub sp, #8 - adds r4, r0, #0 - ldr r5, _080E2E24 - ldr r0, [r5] - ldr r2, _080E2E28 - adds r1, r0, r2 - str r1, [sp] - ldr r3, _080E2E2C - adds r0, r0, r3 - str r0, [sp, #4] - ldrh r0, [r4, #0xa] - adds r0, #4 - strh r0, [r4, #0xa] - movs r1, #0xa - ldrsh r0, [r4, r1] - movs r1, #0x28 - bl Sin - ldr r1, [r5] - movs r2, #0xf1 - lsls r2, r2, #5 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #2 - add r1, sp - ldr r1, [r1] - strh r0, [r1] - ldrh r0, [r4, #0xa] - adds r0, #0x80 - movs r1, #0xff - ands r0, r1 - movs r1, #0x28 - bl Sin - ldr r1, [r5] - ldr r3, _080E2E30 - adds r1, r1, r3 - ldrb r1, [r1] - lsls r1, r1, #2 - add r1, sp - ldr r1, [r1] - strh r0, [r1] - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0x7f - ble _080E2E1A - ldr r0, [r5] - movs r2, #0xf1 - lsls r2, r2, #5 - adds r1, r0, r2 - ldrb r2, [r1] - adds r0, r0, r3 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, [r5] - adds r0, r0, r3 - strb r2, [r0] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080E2E1A: - movs r0, #0 - add sp, #8 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080E2E24: .4byte gUnknown_2039C34 -_080E2E28: .4byte 0x00001E1A -_080E2E2C: .4byte 0x00001E18 -_080E2E30: .4byte 0x00001E21 - thumb_func_end PageSwapAnimState_2 - - thumb_func_start PageSwapAnimState_Done -PageSwapAnimState_Done: @ 0x080E2E34 - push {lr} - ldr r0, _080E2E4C - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_080E2E4C: .4byte sub_080E2C8C - thumb_func_end PageSwapAnimState_Done - - thumb_func_start sub_080E2E50 -sub_080E2E50: @ 0x080E2E50 - push {lr} - ldr r0, _080E2E70 - movs r1, #3 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080E2E74 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r0, #3 - strh r0, [r1, #8] - pop {r0} - bx r0 - .align 2, 0 -_080E2E70: .4byte Task_80E39BC -_080E2E74: .4byte gUnknown_3005B60 - thumb_func_end sub_080E2E50 - - thumb_func_start sub_080E2E78 -sub_080E2E78: @ 0x080E2E78 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - ldr r0, _080E2EB0 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080E2EB4 - adds r4, r1, r0 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r5, r0 - bne _080E2EB8 - cmp r6, #0 - bne _080E2EB8 - strh r7, [r4, #0xa] - movs r0, #1 - strh r0, [r4, #0xc] - b _080E2EE4 - .align 2, 0 -_080E2EB0: .4byte Task_80E39BC -_080E2EB4: .4byte gUnknown_3005B60 -_080E2EB8: - cmp r5, #3 - bne _080E2EC8 - movs r2, #0xa - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _080E2EC8 - cmp r6, #0 - beq _080E2EE4 -_080E2EC8: - ldrh r1, [r4, #8] - movs r2, #8 - ldrsh r0, [r4, r2] - cmp r0, #3 - beq _080E2EDA - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - bl sub_080E3018 -_080E2EDA: - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r7, #0 - bl sub_080E3040 -_080E2EE4: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080E2E78 - - thumb_func_start Task_80E39BC -Task_80E39BC: @ 0x080E2EEC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080E2F54 - adds r4, r1, r0 - ldrh r1, [r4, #8] - movs r2, #8 - ldrsh r0, [r4, r2] - cmp r0, #3 - beq _080E2F9E - movs r3, #0xc - ldrsh r0, [r4, r3] - cmp r0, #0 - beq _080E2F9E - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - bl sub_080E2FA4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrb r3, [r4, #0xe] - adds r1, r3, #0 - adds r2, r3, #0 - bl MultiplyInvertedPaletteRGBComponents - ldrh r1, [r4, #0x12] - movs r2, #0x12 - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _080E2F38 - subs r0, r1, #1 - strh r0, [r4, #0x12] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080E2F9E -_080E2F38: - movs r0, #2 - strh r0, [r4, #0x12] - ldrh r1, [r4, #0x10] - movs r3, #0x10 - ldrsh r0, [r4, r3] - cmp r0, #0 - blt _080E2F62 - ldrh r2, [r4, #0xe] - movs r3, #0xe - ldrsh r0, [r4, r3] - cmp r0, #0xd - bgt _080E2F58 - adds r0, r2, r1 - b _080E2F66 - .align 2, 0 -_080E2F54: .4byte gUnknown_3005B60 -_080E2F58: - movs r0, #0x10 - strh r0, [r4, #0xe] - ldrh r0, [r4, #0x14] - adds r0, #1 - b _080E2F6C -_080E2F62: - ldrh r3, [r4, #0xe] - adds r0, r1, r3 -_080E2F66: - strh r0, [r4, #0xe] - ldrh r2, [r4, #0x14] - adds r0, r1, r2 -_080E2F6C: - strh r0, [r4, #0x14] - movs r3, #0xe - ldrsh r0, [r4, r3] - ldrh r1, [r4, #0xe] - cmp r0, #0x10 - bne _080E2F8C - movs r2, #0x14 - ldrsh r0, [r4, r2] - cmp r0, #0x16 - bne _080E2F8C - ldr r0, _080E2F88 - strh r0, [r4, #0x10] - b _080E2F9E - .align 2, 0 -_080E2F88: .4byte 0x0000FFFC -_080E2F8C: - lsls r0, r1, #0x10 - asrs r1, r0, #0x10 - cmp r1, #0 - bne _080E2F9E - ldrh r0, [r4, #0xa] - strh r0, [r4, #0xc] - movs r0, #2 - strh r0, [r4, #0x10] - strh r1, [r4, #0x14] -_080E2F9E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end Task_80E39BC - - thumb_func_start sub_080E2FA4 -sub_080E2FA4: @ 0x080E2FA4 - push {r4, r5, r6, lr} - sub sp, #0x10 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #4 - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x14 - movs r1, #0x87 - lsls r1, r1, #1 - adds r5, r1, #0 - adds r0, r0, r5 - add r6, sp, #8 - strh r0, [r6] - movs r0, #6 - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x14 - adds r0, r0, r5 - mov r1, sp - adds r1, #0xa - strh r0, [r1] - movs r0, #7 - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x14 - adds r0, r0, r5 - add r1, sp, #0xc - strh r0, [r1] - movs r0, #7 - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x14 - ldr r1, _080E3014 - adds r0, r0, r1 - mov r1, sp - adds r1, #0xe - strh r0, [r1] - mov r0, sp - adds r1, r6, #0 - movs r2, #8 - bl memcpy - lsls r4, r4, #1 - mov r1, sp - adds r0, r1, r4 - ldrh r0, [r0] - add sp, #0x10 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080E3014: .4byte 0x00000101 - thumb_func_end sub_080E2FA4 - - thumb_func_start sub_080E3018 -sub_080E3018: @ 0x080E3018 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_080E2FA4 - lsls r0, r0, #0x10 - ldr r2, _080E3038 - lsrs r0, r0, #0xf - adds r2, r0, r2 - ldr r1, _080E303C - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2] - pop {r0} - bx r0 - .align 2, 0 -_080E3038: .4byte gUnknown_20377B4 -_080E303C: .4byte gUnknown_20373B4 - thumb_func_end sub_080E3018 - - thumb_func_start sub_080E3040 -sub_080E3040: @ 0x080E3040 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r3, #0 - strh r1, [r0, #8] - strh r2, [r0, #0xa] - movs r1, #1 - strh r1, [r0, #0xc] - movs r2, #4 - strh r2, [r0, #0xe] - movs r1, #2 - strh r1, [r0, #0x10] - strh r3, [r0, #0x12] - strh r2, [r0, #0x14] - bx lr - thumb_func_end sub_080E3040 - - thumb_func_start sub_080E3060 -sub_080E3060: @ 0x080E3060 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080E3078 - adds r0, r4, #0 - movs r1, #0 - bl StartSpriteAnim -_080E3078: - ldrh r1, [r4, #0x36] - movs r0, #0xff - ands r0, r1 - adds r3, r4, #0 - adds r3, #0x3e - movs r1, #1 - ands r0, r1 - lsls r0, r0, #2 - ldrb r1, [r3] - movs r2, #5 - rsbs r2, r2, #0 - ands r2, r1 - orrs r2, r0 - strb r2, [r3] - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0x13 - bne _080E30A2 - movs r0, #4 - orrs r2, r0 - strb r2, [r3] -_080E30A2: - ldrb r1, [r3] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _080E30D2 - movs r2, #0x36 - ldrsh r0, [r4, r2] - movs r1, #0xff - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - beq _080E30D2 - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r2, #0x32 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080E30D2 - movs r0, #0x30 - ldrsh r1, [r4, r0] - movs r2, #0x34 - ldrsh r0, [r4, r2] - cmp r1, r0 - beq _080E30DC -_080E30D2: - movs r0, #0 - strh r0, [r4, #0x38] - movs r0, #2 - strh r0, [r4, #0x3a] - strh r0, [r4, #0x3c] -_080E30DC: - ldrh r0, [r4, #0x3c] - subs r0, #1 - strh r0, [r4, #0x3c] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080E3104 - ldrh r1, [r4, #0x3a] - ldrh r2, [r4, #0x38] - adds r0, r1, r2 - strh r0, [r4, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x10 - beq _080E30FC - cmp r0, #0 - bne _080E3100 -_080E30FC: - rsbs r0, r1, #0 - strh r0, [r4, #0x3a] -_080E3100: - movs r0, #2 - strh r0, [r4, #0x3c] -_080E3104: - movs r1, #0x36 - ldrsh r0, [r4, r1] - movs r1, #0xff - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - beq _080E313A - ldrh r4, [r4, #0x38] - lsls r5, r4, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r4, #0x10 - asrs r4, r4, #0x11 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #5 - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #4 - ldr r2, _080E3140 - adds r0, r0, r2 - lsrs r0, r0, #0x10 - adds r1, r4, #0 - adds r2, r5, #0 - adds r3, r5, #0 - bl MultiplyInvertedPaletteRGBComponents -_080E313A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080E3140: .4byte 0x01010000 - thumb_func_end sub_080E3060 - - thumb_func_start sub_080E3144 -sub_080E3144: @ 0x080E3144 - push {r4, lr} - sub sp, #8 - adds r4, r0, #0 - ldr r1, _080E318C - mov r0, sp - movs r2, #8 - bl memcpy - ldrh r1, [r4, #0x2e] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _080E3168 - subs r0, r1, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080E3176 -_080E3168: - movs r0, #8 - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x30] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strh r0, [r4, #0x30] -_080E3176: - movs r1, #0x30 - ldrsh r0, [r4, r1] - lsls r0, r0, #1 - add r0, sp - ldrh r0, [r0] - strh r0, [r4, #0x24] - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E318C: .4byte gUnknown_8565A60 - thumb_func_end sub_080E3144 - - thumb_func_start sub_080E3190 -sub_080E3190: @ 0x080E3190 - push {r4, lr} - sub sp, #8 - adds r4, r0, #0 - ldr r1, _080E31B8 - mov r0, sp - movs r2, #8 - bl memcpy - bl GetTextCaretPosition - lsls r0, r0, #0x18 - ldrh r1, [r4, #0x2e] - lsls r1, r1, #0x18 - cmp r0, r1 - beq _080E31BC - movs r0, #0 - strh r0, [r4, #0x26] - strh r0, [r4, #0x30] - b _080E31E2 - .align 2, 0 -_080E31B8: .4byte gUnknown_8565A68 -_080E31BC: - movs r1, #0x30 - ldrsh r0, [r4, r1] - lsls r0, r0, #1 - add r0, sp - ldrh r0, [r0] - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #8 - ble _080E31E4 - ldrh r0, [r4, #0x30] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strh r0, [r4, #0x30] - movs r0, #0 -_080E31E2: - strh r0, [r4, #0x32] -_080E31E4: - add sp, #8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080E3190 - - thumb_func_start sub_080E31EC -sub_080E31EC: @ 0x080E31EC - push {lr} - bl CursorInit - bl CreatePageSwitcherSprites - bl CreateBackOkSprites - bl sub_080E3750 - bl CreateInputTargetIcon - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080E31EC - - thumb_func_start CursorInit -CursorInit: @ 0x080E3208 - push {r4, r5, r6, lr} - ldr r0, _080E328C - movs r1, #0x1b - movs r2, #0x57 - movs r3, #1 - bl CreateSprite - ldr r5, _080E3290 - ldr r1, [r5] - ldr r4, _080E3294 - adds r1, r1, r4 - strb r0, [r1] - movs r0, #1 - bl sub_080E3320 - ldr r6, _080E3298 - ldr r0, [r5] - adds r0, r0, r4 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrb r3, [r1, #5] - movs r2, #0xd - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r3 - movs r3, #4 - orrs r0, r3 - strb r0, [r1, #5] - ldr r0, [r5] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r1, [r0, #1] - ands r2, r1 - orrs r2, r3 - strb r2, [r0, #1] - ldr r2, [r5] - adds r2, r2, r4 - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #1 - strh r1, [r0, #0x3a] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #2 - strh r1, [r0, #0x3a] - movs r0, #0 - movs r1, #0 - bl sub_080E329C - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080E328C: .4byte gUnknown_8565E50 -_080E3290: .4byte gUnknown_2039C34 -_080E3294: .4byte 0x00001E23 -_080E3298: .4byte gUnknown_20205AC - thumb_func_end CursorInit - - thumb_func_start sub_080E329C -sub_080E329C: @ 0x080E329C - push {r4, lr} - lsls r0, r0, #0x10 - lsls r1, r1, #0x10 - ldr r2, _080E32D8 - ldr r2, [r2] - ldr r3, _080E32DC - adds r2, r2, r3 - ldrb r3, [r2] - lsls r2, r3, #4 - adds r2, r2, r3 - lsls r2, r2, #2 - ldr r3, _080E32E0 - adds r2, r2, r3 - lsrs r4, r0, #0x10 - asrs r0, r0, #0xd - adds r0, #0x1b - strh r0, [r2, #0x20] - lsrs r3, r1, #0x10 - asrs r1, r1, #0xc - adds r1, #0x57 - strh r1, [r2, #0x22] - ldrh r0, [r2, #0x2e] - strh r0, [r2, #0x32] - ldrh r0, [r2, #0x30] - strh r0, [r2, #0x34] - strh r4, [r2, #0x2e] - strh r3, [r2, #0x30] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E32D8: .4byte gUnknown_2039C34 -_080E32DC: .4byte 0x00001E23 -_080E32E0: .4byte gUnknown_20205AC - thumb_func_end sub_080E329C - - thumb_func_start GetCursorPos -GetCursorPos: @ 0x080E32E4 - ldr r2, _080E3304 - ldr r2, [r2] - ldr r3, _080E3308 - adds r2, r2, r3 - ldrb r3, [r2] - lsls r2, r3, #4 - adds r2, r2, r3 - lsls r2, r2, #2 - ldr r3, _080E330C - adds r2, r2, r3 - ldrh r3, [r2, #0x2e] - strh r3, [r0] - ldrh r0, [r2, #0x30] - strh r0, [r1] - bx lr - .align 2, 0 -_080E3304: .4byte gUnknown_2039C34 -_080E3308: .4byte 0x00001E23 -_080E330C: .4byte gUnknown_20205AC - thumb_func_end GetCursorPos - - thumb_func_start sub_080E3310 -sub_080E3310: @ 0x080E3310 - push {lr} - movs r0, #0x13 - movs r1, #2 - bl sub_080E329C - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080E3310 - - thumb_func_start sub_080E3320 -sub_080E3320: @ 0x080E3320 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _080E3368 - ldr r1, _080E336C - ldr r4, [r1] - ldr r1, _080E3370 - adds r4, r4, r1 - ldrb r1, [r4] - lsls r2, r1, #4 - adds r2, r2, r1 - lsls r2, r2, #2 - adds r2, r2, r5 - ldrh r3, [r2, #0x36] - ldr r1, _080E3374 - ands r1, r3 - strh r1, [r2, #0x36] - ldrb r2, [r4] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrh r2, [r1, #0x36] - orrs r0, r2 - strh r0, [r1, #0x36] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0 - bl StartSpriteAnim - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080E3368: .4byte gUnknown_20205AC -_080E336C: .4byte gUnknown_2039C34 -_080E3370: .4byte 0x00001E23 -_080E3374: .4byte 0xFFFFFF00 - thumb_func_end sub_080E3320 - - thumb_func_start sub_080E3378 -sub_080E3378: @ 0x080E3378 - push {r4, r5, lr} - lsls r0, r0, #0x18 - ldr r5, _080E33B0 - ldr r1, _080E33B4 - ldr r4, [r1] - ldr r1, _080E33B8 - adds r4, r4, r1 - ldrb r1, [r4] - lsls r2, r1, #4 - adds r2, r2, r1 - lsls r2, r2, #2 - adds r2, r2, r5 - ldrh r3, [r2, #0x36] - movs r1, #0xff - ands r1, r3 - strh r1, [r2, #0x36] - ldrb r2, [r4] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r5 - lsrs r0, r0, #0x10 - ldrh r2, [r1, #0x36] - orrs r0, r2 - strh r0, [r1, #0x36] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080E33B0: .4byte gUnknown_20205AC -_080E33B4: .4byte gUnknown_2039C34 -_080E33B8: .4byte 0x00001E23 - thumb_func_end sub_080E3378 - - thumb_func_start sub_080E33BC -sub_080E33BC: @ 0x080E33BC - push {lr} - ldr r0, _080E33DC - ldr r0, [r0] - ldr r1, _080E33E0 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080E33E4 - adds r0, r0, r1 - movs r1, #1 - bl StartSpriteAnim - pop {r0} - bx r0 - .align 2, 0 -_080E33DC: .4byte gUnknown_2039C34 -_080E33E0: .4byte 0x00001E23 -_080E33E4: .4byte gUnknown_20205AC - thumb_func_end sub_080E33BC - - thumb_func_start IsCursorAnimFinished -IsCursorAnimFinished: @ 0x080E33E8 - ldr r2, _080E3408 - ldr r0, _080E340C - ldr r0, [r0] - ldr r1, _080E3410 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3f - ldrb r0, [r0] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1f - bx lr - .align 2, 0 -_080E3408: .4byte gUnknown_20205AC -_080E340C: .4byte gUnknown_2039C34 -_080E3410: .4byte 0x00001E23 - thumb_func_end IsCursorAnimFinished - - thumb_func_start sub_080E3414 -sub_080E3414: @ 0x080E3414 - push {r4, lr} - sub sp, #4 - mov r4, sp - adds r4, #2 - mov r0, sp - adds r1, r4, #0 - bl GetCursorPos - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0x12 - ble _080E3440 - ldr r0, _080E343C - movs r2, #0 - ldrsh r1, [r4, r2] - adds r1, r1, r0 - ldrb r0, [r1] - b _080E3442 - .align 2, 0 -_080E343C: .4byte gUnknown_8565A70 -_080E3440: - movs r0, #0 -_080E3442: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080E3414 - - thumb_func_start CreatePageSwitcherSprites -CreatePageSwitcherSprites: @ 0x080E344C - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - ldr r0, _080E34F0 - movs r1, #0xcc - movs r2, #0x58 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080E34F4 - ldr r1, [r1] - ldr r2, _080E34F8 - adds r1, r1, r2 - strb r0, [r1] - lsls r5, r0, #4 - adds r5, r5, r0 - lsls r5, r5, #2 - ldr r0, _080E34FC - mov r8, r0 - add r5, r8 - ldr r1, _080E3500 - adds r0, r5, #0 - bl SetSubspriteTables - adds r1, r5, #0 - adds r1, #0x3e - ldrb r0, [r1] - movs r6, #4 - orrs r0, r6 - strb r0, [r1] - ldr r0, _080E3504 - movs r1, #0xcc - movs r2, #0x54 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x3a] - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - add r4, r8 - ldr r1, _080E3508 - adds r0, r4, #0 - bl SetSubspriteTables - adds r4, #0x3e - ldrb r0, [r4] - orrs r0, r6 - strb r0, [r4] - ldr r0, _080E350C - movs r1, #0xcc - movs r2, #0x53 - movs r3, #2 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - add r2, r8 - ldrb r3, [r2, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r3 - orrs r1, r6 - strb r1, [r2, #5] - strh r0, [r5, #0x3c] - adds r2, #0x3e - ldrb r0, [r2] - orrs r0, r6 - strb r0, [r2] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080E34F0: .4byte gUnknown_8565DD8 -_080E34F4: .4byte gUnknown_2039C34 -_080E34F8: .4byte 0x00001E24 -_080E34FC: .4byte gUnknown_20205AC -_080E3500: .4byte gUnknown_8565D68 -_080E3504: .4byte gUnknown_8565E08 -_080E3508: .4byte gUnknown_8565D70 -_080E350C: .4byte gUnknown_8565DF0 - thumb_func_end CreatePageSwitcherSprites - - thumb_func_start sub_080E3510 -sub_080E3510: @ 0x080E3510 - ldr r0, _080E3534 - ldr r2, [r0] - ldr r1, _080E3538 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080E353C - adds r0, r0, r1 - movs r1, #2 - strh r1, [r0, #0x2e] - ldr r1, _080E3540 - adds r2, r2, r1 - ldrb r1, [r2] - strh r1, [r0, #0x30] - bx lr - .align 2, 0 -_080E3534: .4byte gUnknown_2039C34 -_080E3538: .4byte 0x00001E24 -_080E353C: .4byte gUnknown_20205AC -_080E3540: .4byte 0x00001E22 - thumb_func_end sub_080E3510 - - thumb_func_start sub_080E3544 -sub_080E3544: @ 0x080E3544 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _080E3568 -_080E354A: - movs r1, #0x2e - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080E354A - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080E3568: .4byte gUnknown_8565A74 - thumb_func_end sub_080E3544 - - thumb_func_start sub_080E356C -sub_080E356C: @ 0x080E356C - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r1, #0x3a - ldrsh r0, [r6, r1] - lsls r5, r0, #4 - adds r5, r5, r0 - lsls r5, r5, #2 - ldr r1, _080E35B4 - adds r5, r5, r1 - movs r2, #0x3c - ldrsh r0, [r6, r2] - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - adds r4, r4, r1 - ldr r0, _080E35B8 - ldr r0, [r0] - ldr r1, _080E35BC - adds r0, r0, r1 - ldrb r0, [r0] - bl sub_080E2734 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r5, #0 - adds r2, r4, #0 - bl sub_080E3678 - ldrh r0, [r6, #0x2e] - adds r0, #1 - strh r0, [r6, #0x2e] - movs r0, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080E35B4: .4byte gUnknown_20205AC -_080E35B8: .4byte gUnknown_2039C34 -_080E35BC: .4byte 0x00001E22 - thumb_func_end sub_080E356C - - thumb_func_start sub_080E35C0 -sub_080E35C0: @ 0x080E35C0 - movs r0, #0 - bx lr - thumb_func_end sub_080E35C0 - - thumb_func_start sub_080E35C4 -sub_080E35C4: @ 0x080E35C4 - push {r4, r5, lr} - adds r3, r0, #0 - movs r0, #0x3a - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r2, _080E3630 - adds r4, r0, r2 - movs r0, #0x3c - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r5, r0, r2 - ldrh r0, [r4, #0x26] - adds r0, #1 - strh r0, [r4, #0x26] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #7 - ble _080E3628 - ldrh r0, [r3, #0x2e] - adds r0, #1 - strh r0, [r3, #0x2e] - ldr r0, _080E3634 - strh r0, [r4, #0x26] - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r3, #0x30] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #1 - movs r1, #3 - bl __modsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_080E2734 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_080E3678 -_080E3628: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080E3630: .4byte gUnknown_20205AC -_080E3634: .4byte 0x0000FFFC - thumb_func_end sub_080E35C4 - - thumb_func_start sub_080E3638 -sub_080E3638: @ 0x080E3638 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x3a - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080E3674 - adds r2, r0, r1 - adds r3, r2, #0 - adds r3, #0x3e - ldrb r1, [r3] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3] - ldrh r0, [r2, #0x26] - adds r0, #1 - strh r0, [r2, #0x26] - lsls r0, r0, #0x10 - cmp r0, #0 - blt _080E366C - movs r0, #0 - strh r0, [r2, #0x26] - movs r0, #1 - strh r0, [r4, #0x2e] -_080E366C: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080E3674: .4byte gUnknown_20205AC - thumb_func_end sub_080E3638 - - thumb_func_start sub_080E3678 -sub_080E3678: @ 0x080E3678 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r5, r0, #0 - adds r6, r1, #0 - mov r8, r2 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _080E36D0 - lsls r4, r5, #1 - adds r0, r4, r0 - ldrh r0, [r0] - bl IndexOfSpritePaletteTag - lsls r0, r0, #4 - mov r1, r8 - ldrb r2, [r1, #5] - movs r1, #0xf - ands r1, r2 - orrs r1, r0 - mov r0, r8 - strb r1, [r0, #5] - ldr r0, _080E36D4 - adds r4, r4, r0 - ldrh r0, [r4] - bl GetSpriteTileStartByTag - adds r1, r6, #0 - adds r1, #0x40 - strh r0, [r1] - adds r6, #0x42 - movs r1, #0x3f - ands r1, r5 - ldrb r2, [r6] - movs r0, #0x40 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r6] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080E36D0: .4byte gUnknown_8565A84 -_080E36D4: .4byte gUnknown_8565A8A - thumb_func_end sub_080E3678 - - thumb_func_start CreateBackOkSprites -CreateBackOkSprites: @ 0x080E36D8 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - ldr r0, _080E3740 - movs r1, #0xcc - movs r2, #0x74 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r6, _080E3744 - adds r4, r4, r6 - ldr r0, _080E3748 - mov r8, r0 - adds r0, r4, #0 - mov r1, r8 - bl SetSubspriteTables - adds r4, #0x3e - ldrb r0, [r4] - movs r5, #4 - orrs r0, r5 - strb r0, [r4] - ldr r0, _080E374C - movs r1, #0xcc - movs r2, #0x8c - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - adds r4, r4, r6 - adds r0, r4, #0 - mov r1, r8 - bl SetSubspriteTables - adds r4, #0x3e - ldrb r0, [r4] - orrs r0, r5 - strb r0, [r4] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080E3740: .4byte gUnknown_8565E20 -_080E3744: .4byte gUnknown_20205AC -_080E3748: .4byte gUnknown_8565D88 -_080E374C: .4byte gUnknown_8565E38 - thumb_func_end CreateBackOkSprites - - thumb_func_start sub_080E3750 -sub_080E3750: @ 0x080E3750 - push {r4, r5, r6, lr} - ldr r5, _080E3808 - ldr r0, [r5] - ldr r4, _080E380C - adds r0, r0, r4 - ldrh r1, [r0] - subs r1, #1 - lsls r1, r1, #3 - adds r1, #4 - ldr r0, _080E3810 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r2, #0x38 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r3, _080E3814 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0, #5] - movs r2, #0xc - orrs r1, r2 - strb r1, [r0, #5] - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - ldr r1, [r5] - adds r4, r1, r4 - ldrh r0, [r4] - lsls r0, r0, #3 - adds r0, #4 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r5, #0 - ldr r0, _080E3818 - adds r1, r1, r0 - ldr r0, [r1] - ldrb r0, [r0, #1] - cmp r5, r0 - bhs _080E3800 - adds r6, r3, #0 -_080E37AE: - lsls r1, r4, #0x10 - asrs r4, r1, #0x10 - movs r0, #0xc0 - lsls r0, r0, #0xa - adds r1, r1, r0 - asrs r1, r1, #0x10 - ldr r0, _080E381C - movs r2, #0x3c - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r1, [r0, #5] - movs r2, #0xc - orrs r1, r2 - strb r1, [r0, #5] - strh r5, [r0, #0x2e] - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r4, #0xa - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r0, _080E3808 - ldr r0, [r0] - ldr r1, _080E3818 - adds r0, r0, r1 - ldr r0, [r0] - ldrb r0, [r0, #1] - cmp r5, r0 - blo _080E37AE -_080E3800: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080E3808: .4byte gUnknown_2039C34 -_080E380C: .4byte 0x00001E16 -_080E3810: .4byte gUnknown_8565E68 -_080E3814: .4byte gUnknown_20205AC -_080E3818: .4byte 0x00001E28 -_080E381C: .4byte gUnknown_8565E80 - thumb_func_end sub_080E3750 - - thumb_func_start CreateInputTargetIcon -CreateInputTargetIcon: @ 0x080E3820 - push {lr} - ldr r1, _080E3840 - ldr r0, _080E3844 - ldr r0, [r0] - ldr r2, _080E3848 - adds r0, r0, r2 - ldr r0, [r0] - ldrb r0, [r0, #2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - thumb_func_end CreateInputTargetIcon - - thumb_func_start sub_080E383C -sub_080E383C: @ 0x080E383C - bx r0 - .align 2, 0 -_080E3840: .4byte gUnknown_8565A90 -_080E3844: .4byte gUnknown_2039C34 -_080E3848: .4byte 0x00001E28 - thumb_func_end sub_080E383C - - thumb_func_start sub_080E384C -sub_080E384C: @ 0x080E384C - bx lr - .align 2, 0 - thumb_func_end sub_080E384C - - thumb_func_start NamingScreen_CreatePlayerIcon -NamingScreen_CreatePlayerIcon: @ 0x080E3850 - push {lr} - sub sp, #4 - ldr r0, _080E389C - ldr r0, [r0] - ldr r1, _080E38A0 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0 - bl sub_0808B6A0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080E38A4 - movs r2, #0 - str r2, [sp] - movs r2, #0x38 - movs r3, #0x25 - bl AddPseudoEventObject - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _080E38A8 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #5] - movs r2, #0xc - orrs r1, r2 - strb r1, [r0, #5] - movs r1, #4 - bl StartSpriteAnim - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_080E389C: .4byte gUnknown_2039C34 -_080E38A0: .4byte 0x00001E34 -_080E38A4: .4byte sub_08007140 -_080E38A8: .4byte gUnknown_20205AC - thumb_func_end NamingScreen_CreatePlayerIcon - - thumb_func_start NamingScreen_CreatePCIcon -NamingScreen_CreatePCIcon: @ 0x080E38AC - push {r4, lr} - ldr r0, _080E38E0 - movs r1, #0x38 - movs r2, #0x29 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _080E38E4 - adds r4, r4, r0 - ldr r1, _080E38E8 - adds r0, r4, #0 - bl SetSubspriteTables - ldrb r0, [r4, #5] - movs r1, #0xc - orrs r0, r1 - strb r0, [r4, #5] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E38E0: .4byte gUnknown_8565E98 -_080E38E4: .4byte gUnknown_20205AC -_080E38E8: .4byte gUnknown_8565D90 - thumb_func_end NamingScreen_CreatePCIcon - - thumb_func_start NamingScreen_CreateMonIcon -NamingScreen_CreateMonIcon: @ 0x080E38EC - push {lr} - sub sp, #0xc - bl LoadMonIconPalettes - ldr r0, _080E3934 - ldr r3, [r0] - ldr r1, _080E3938 - adds r0, r3, r1 - ldrh r0, [r0] - ldr r1, _080E393C - movs r2, #0 - str r2, [sp] - ldr r2, _080E3940 - adds r3, r3, r2 - ldr r2, [r3] - str r2, [sp, #4] - movs r2, #1 - str r2, [sp, #8] - movs r2, #0x38 - movs r3, #0x28 - bl CreateMonIcon - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080E3944 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r0, [r1, #5] - movs r2, #0xc - orrs r0, r2 - strb r0, [r1, #5] - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_080E3934: .4byte gUnknown_2039C34 -_080E3938: .4byte 0x00001E34 -_080E393C: .4byte sub_08007140 -_080E3940: .4byte 0x00001E38 -_080E3944: .4byte gUnknown_20205AC - thumb_func_end NamingScreen_CreateMonIcon - - thumb_func_start NamingScreen_CreateWandaDadIcon -NamingScreen_CreateWandaDadIcon: @ 0x080E3948 - push {lr} - sub sp, #4 - ldr r1, _080E3980 - movs r0, #0 - str r0, [sp] - movs r0, #0x13 - movs r2, #0x38 - movs r3, #0x25 - bl AddPseudoEventObject - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _080E3984 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #5] - movs r2, #0xc - orrs r1, r2 - strb r1, [r0, #5] - movs r1, #4 - bl StartSpriteAnim - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_080E3980: .4byte sub_08007140 -_080E3984: .4byte gUnknown_20205AC - thumb_func_end NamingScreen_CreateWandaDadIcon - - thumb_func_start HandleKeyboardEvent -HandleKeyboardEvent: @ 0x080E3988 - push {r4, r5, lr} - bl GetInputEvent - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, r4, #0 - bl sub_080E3414 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, #8 - bne _080E39A6 - bl sub_080E3AB8 - b _080E39CC -_080E39A6: - cmp r4, #6 - bne _080E39B0 - bl DeleteTextCharacter - b _080E39DC -_080E39B0: - cmp r4, #7 - bne _080E39BA - bl sub_080E40A8 - b _080E39DC -_080E39BA: - cmp r5, #9 - beq _080E39D8 - ldr r1, _080E39D4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 -_080E39CC: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _080E39DE - .align 2, 0 -_080E39D4: .4byte gUnknown_8565AA4 -_080E39D8: - bl sub_080E3310 -_080E39DC: - movs r0, #0 -_080E39DE: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end HandleKeyboardEvent - - thumb_func_start KeyboardKeyHandler_Character -KeyboardKeyHandler_Character: @ 0x080E39E4 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl sub_080E2E78 - cmp r4, #5 - bne _080E3A1E - bl sub_080E4018 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_080E33BC - cmp r4, #0 - beq _080E3A1E - movs r0, #2 - bl SetInputState - ldr r0, _080E3A28 - ldr r0, [r0] - ldr r1, _080E3A2C - adds r0, r0, r1 - movs r1, #3 - strb r1, [r0] -_080E3A1E: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080E3A28: .4byte gUnknown_2039C34 -_080E3A2C: .4byte 0x00001E10 - thumb_func_end KeyboardKeyHandler_Character - - thumb_func_start KeyboardKeyHandler_Page -KeyboardKeyHandler_Page: @ 0x080E3A30 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - movs r1, #1 - movs r2, #0 - bl sub_080E2E78 - cmp r4, #5 - beq _080E3A4A - movs r0, #0 - b _080E3A52 -_080E3A4A: - bl sub_080E3AB8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_080E3A52: - pop {r4} - pop {r1} - bx r1 - thumb_func_end KeyboardKeyHandler_Page - - thumb_func_start KeyboardKeyHandler_Backspace -KeyboardKeyHandler_Backspace: @ 0x080E3A58 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - movs r1, #1 - movs r2, #0 - bl sub_080E2E78 - cmp r4, #5 - bne _080E3A72 - bl DeleteTextCharacter -_080E3A72: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end KeyboardKeyHandler_Backspace - - thumb_func_start KeyboardKeyHandler_OK -KeyboardKeyHandler_OK: @ 0x080E3A7C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #2 - movs r1, #1 - movs r2, #0 - bl sub_080E2E78 - cmp r4, #5 - beq _080E3A96 - movs r0, #0 - b _080E3AAA -_080E3A96: - movs r0, #5 - bl sub_080A306C - ldr r0, _080E3AB0 - ldr r0, [r0] - ldr r1, _080E3AB4 - adds r0, r0, r1 - movs r1, #6 - strb r1, [r0] - movs r0, #1 -_080E3AAA: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080E3AB0: .4byte gUnknown_2039C34 -_080E3AB4: .4byte 0x00001E10 - thumb_func_end KeyboardKeyHandler_OK - - thumb_func_start sub_080E3AB8 -sub_080E3AB8: @ 0x080E3AB8 - ldr r0, _080E3AC8 - ldr r0, [r0] - ldr r1, _080E3ACC - adds r0, r0, r1 - movs r1, #4 - strb r1, [r0] - movs r0, #1 - bx lr - .align 2, 0 -_080E3AC8: .4byte gUnknown_2039C34 -_080E3ACC: .4byte 0x00001E10 - thumb_func_end sub_080E3AB8 - - thumb_func_start sub_080E3AD0 -sub_080E3AD0: @ 0x080E3AD0 - push {lr} - ldr r0, _080E3AE0 - movs r1, #1 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080E3AE0: .4byte sub_080E3B34 - thumb_func_end sub_080E3AD0 - - thumb_func_start GetInputEvent -GetInputEvent: @ 0x080E3AE4 - push {lr} - ldr r0, _080E3B00 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080E3B04 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldrb r0, [r1, #0xa] - pop {r1} - bx r1 - .align 2, 0 -_080E3B00: .4byte sub_080E3B34 -_080E3B04: .4byte gUnknown_3005B60 - thumb_func_end GetInputEvent - - thumb_func_start SetInputState -SetInputState: @ 0x080E3B08 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _080E3B2C - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080E3B30 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E3B2C: .4byte sub_080E3B34 -_080E3B30: .4byte gUnknown_3005B60 - thumb_func_end SetInputState - - thumb_func_start sub_080E3B34 -sub_080E3B34: @ 0x080E3B34 - push {lr} - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r3, _080E3B5C - ldr r2, _080E3B60 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r2, #8 - ldrsh r1, [r0, r2] - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080E3B5C: .4byte gUnknown_8565AB4 -_080E3B60: .4byte gUnknown_3005B60 - thumb_func_end sub_080E3B34 - - thumb_func_start sub_080E3B64 -sub_080E3B64: @ 0x080E3B64 - movs r1, #0 - strh r1, [r0, #0xa] - bx lr - .align 2, 0 - thumb_func_end sub_080E3B64 - - thumb_func_start InputState_Enabled -InputState_Enabled: @ 0x080E3B6C - push {lr} - adds r1, r0, #0 - movs r0, #0 - strh r0, [r1, #0xa] - ldr r0, _080E3B88 - ldrh r2, [r0, #0x2e] - movs r0, #1 - ands r0, r2 - cmp r0, #0 - beq _080E3B8C - movs r0, #5 - strh r0, [r1, #0xa] - b _080E3BCC - .align 2, 0 -_080E3B88: .4byte gUnknown_3002360 -_080E3B8C: - movs r0, #2 - ands r0, r2 - cmp r0, #0 - beq _080E3B9A - movs r0, #6 - strh r0, [r1, #0xa] - b _080E3BCC -_080E3B9A: - movs r0, #4 - ands r0, r2 - cmp r0, #0 - beq _080E3BA8 - movs r0, #8 - strh r0, [r1, #0xa] - b _080E3BCC -_080E3BA8: - movs r0, #8 - ands r0, r2 - cmp r0, #0 - beq _080E3BB6 - movs r0, #9 - strh r0, [r1, #0xa] - b _080E3BCC -_080E3BB6: - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r2 - cmp r0, #0 - beq _080E3BC6 - movs r0, #7 - strh r0, [r1, #0xa] - b _080E3BCC -_080E3BC6: - adds r0, r1, #0 - bl sub_080E3BF4 -_080E3BCC: - pop {r0} - bx r0 - thumb_func_end InputState_Enabled - - thumb_func_start sub_080E3BD0 -sub_080E3BD0: @ 0x080E3BD0 - push {lr} - adds r2, r0, #0 - movs r0, #0 - strh r0, [r2, #0xa] - ldr r0, _080E3BF0 - ldrh r1, [r0, #0x2e] - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080E3BEA - movs r0, #7 - strh r0, [r2, #0xa] -_080E3BEA: - pop {r0} - bx r0 - .align 2, 0 -_080E3BF0: .4byte gUnknown_3002360 - thumb_func_end sub_080E3BD0 - - thumb_func_start sub_080E3BF4 -sub_080E3BF4: @ 0x080E3BF4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x2c - adds r6, r0, #0 - ldr r1, _080E3CB8 - mov r0, sp - movs r2, #0xa - bl memcpy - add r7, sp, #0xc - ldr r1, _080E3CBC - adds r0, r7, #0 - movs r2, #0xa - bl memcpy - add r0, sp, #0x18 - mov r8, r0 - ldr r1, _080E3CC0 - movs r2, #8 - bl memcpy - add r1, sp, #0x20 - mov sb, r1 - ldr r1, _080E3CC4 - mov r0, sb - movs r2, #6 - bl memcpy - add r4, sp, #0x28 - mov r5, sp - adds r5, #0x2a - adds r0, r4, #0 - adds r1, r5, #0 - bl GetCursorPos - ldr r0, _080E3CC8 - ldrh r2, [r0, #0x30] - movs r0, #0x40 - ands r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - rsbs r0, r0, #0 - lsrs r1, r0, #0x1f - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - beq _080E3C58 - movs r1, #2 -_080E3C58: - movs r0, #0x20 - ands r0, r2 - cmp r0, #0 - beq _080E3C62 - movs r1, #3 -_080E3C62: - movs r0, #0x10 - ands r0, r2 - cmp r0, #0 - beq _080E3C6C - movs r1, #4 -_080E3C6C: - ldrh r3, [r4] - lsls r1, r1, #1 - mov r2, sp - adds r0, r2, r1 - ldrh r2, [r0] - adds r0, r3, r2 - strh r0, [r4] - adds r1, r7, r1 - ldrh r0, [r1] - ldrh r1, [r5] - adds r0, r0, r1 - strh r0, [r5] - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #0 - bge _080E3C90 - movs r0, #0x13 - strh r0, [r4] -_080E3C90: - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #0x13 - ble _080E3C9C - movs r0, #0 - strh r0, [r4] -_080E3C9C: - lsls r0, r2, #0x10 - cmp r0, #0 - beq _080E3CE8 - movs r2, #0 - ldrsh r0, [r4, r2] - cmp r0, #0x13 - bne _080E3CCC - ldrh r0, [r5] - strh r0, [r6, #0xc] - movs r1, #0 - ldrsh r0, [r5, r1] - lsls r0, r0, #1 - add r0, r8 - b _080E3CE4 - .align 2, 0 -_080E3CB8: .4byte gUnknown_8565AC0 -_080E3CBC: .4byte gUnknown_8565ACA -_080E3CC0: .4byte gUnknown_8565AD4 -_080E3CC4: .4byte gUnknown_8565ADC -_080E3CC8: .4byte gUnknown_3002360 -_080E3CCC: - cmp r3, #0x13 - bne _080E3CE8 - movs r2, #0 - ldrsh r0, [r5, r2] - cmp r0, #1 - bne _080E3CDC - ldrh r0, [r6, #0xc] - b _080E3CE6 -_080E3CDC: - movs r1, #0 - ldrsh r0, [r5, r1] - lsls r0, r0, #1 - add r0, sb -_080E3CE4: - ldrh r0, [r0] -_080E3CE6: - strh r0, [r5] -_080E3CE8: - movs r2, #0 - ldrsh r0, [r4, r2] - cmp r0, #0x13 - bne _080E3D1E - movs r1, #0 - ldrsh r0, [r5, r1] - cmp r0, #0 - bge _080E3CFC - movs r0, #2 - strh r0, [r5] -_080E3CFC: - movs r2, #0 - ldrsh r0, [r5, r2] - cmp r0, #2 - ble _080E3D08 - movs r0, #0 - strh r0, [r5] -_080E3D08: - movs r1, #0 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _080E3D16 - movs r0, #1 - strh r0, [r6, #0xc] - b _080E3D36 -_080E3D16: - cmp r0, #2 - bne _080E3D36 - strh r0, [r6, #0xc] - b _080E3D36 -_080E3D1E: - movs r2, #0 - ldrsh r0, [r5, r2] - cmp r0, #0 - bge _080E3D2A - movs r0, #3 - strh r0, [r5] -_080E3D2A: - movs r1, #0 - ldrsh r0, [r5, r1] - cmp r0, #3 - ble _080E3D36 - movs r0, #0 - strh r0, [r5] -_080E3D36: - movs r2, #0 - ldrsh r0, [r4, r2] - movs r2, #0 - ldrsh r1, [r5, r2] - bl sub_080E329C - add sp, #0x2c - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_080E3BF4 - - thumb_func_start sub_080E3D50 -sub_080E3D50: @ 0x080E3D50 - push {r4, r5, lr} - sub sp, #0xc - ldr r5, _080E3D98 - ldr r0, [r5] - ldr r4, _080E3D9C - adds r0, r0, r4 - ldrb r0, [r0] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r1, [r5] - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, _080E3DA0 - adds r1, r1, r2 - ldr r1, [r1] - ldr r2, [r1, #8] - movs r1, #1 - str r1, [sp] - movs r1, #0 - str r1, [sp, #4] - str r1, [sp, #8] - movs r1, #1 - movs r3, #5 - bl AddTextPrinterParameterized - ldr r0, [r5] - adds r0, r0, r4 - ldrb r0, [r0] - bl PutWindowTilemap - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080E3D98: .4byte gUnknown_2039C34 -_080E3D9C: .4byte 0x00001E14 -_080E3DA0: .4byte 0x00001E28 - thumb_func_end sub_080E3D50 - - thumb_func_start sub_080E3DA4 -sub_080E3DA4: @ 0x080E3DA4 - push {r4, r5, lr} - sub sp, #0x2c - ldr r5, _080E3E10 - ldr r0, [r5] - ldr r1, _080E3E14 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - ldr r0, _080E3E18 - adds r1, r1, r0 - add r0, sp, #0xc - bl StringCopy - ldr r0, [r5] - ldr r1, _080E3E1C - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, [r0, #8] - add r0, sp, #0xc - movs r2, #0xf - bl StringAppendN - ldr r0, [r5] - ldr r4, _080E3E20 - adds r0, r0, r4 - ldrb r0, [r0] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r0, [r5] - adds r0, r0, r4 - ldrb r0, [r0] - movs r1, #1 - str r1, [sp] - movs r1, #0 - str r1, [sp, #4] - str r1, [sp, #8] - movs r1, #1 - add r2, sp, #0xc - movs r3, #9 - bl AddTextPrinterParameterized - ldr r0, [r5] - adds r0, r0, r4 - ldrb r0, [r0] - bl PutWindowTilemap - add sp, #0x2c - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080E3E10: .4byte gUnknown_2039C34 -_080E3E14: .4byte 0x00001E34 -_080E3E18: .4byte gUnknown_82EA31C -_080E3E1C: .4byte 0x00001E28 -_080E3E20: .4byte 0x00001E14 - thumb_func_end sub_080E3DA4 - - thumb_func_start sub_080E3E24 -sub_080E3E24: @ 0x080E3E24 - push {lr} - ldr r1, _080E3E40 - ldr r0, _080E3E44 - ldr r0, [r0] - ldr r2, _080E3E48 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - thumb_func_end sub_080E3E24 - - thumb_func_start sub_080E3E3C -sub_080E3E3C: @ 0x080E3E3C - pop {r0} - bx r0 - .align 2, 0 -_080E3E40: .4byte gUnknown_8565AE4 -_080E3E44: .4byte gUnknown_2039C34 -_080E3E48: .4byte 0x00001E2C - thumb_func_end sub_080E3E3C - - thumb_func_start sub_080E3E4C -sub_080E3E4C: @ 0x080E3E4C - push {lr} - ldr r1, _080E3E6C - ldr r0, _080E3E70 - ldr r0, [r0] - ldr r2, _080E3E74 - adds r0, r0, r2 - ldr r0, [r0] - ldrb r0, [r0, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - thumb_func_end sub_080E3E4C - - thumb_func_start sub_080E3E68 -sub_080E3E68: @ 0x080E3E68 - bx r0 - .align 2, 0 -_080E3E6C: .4byte gUnknown_8565AF8 -_080E3E70: .4byte gUnknown_2039C34 -_080E3E74: .4byte 0x00001E28 - thumb_func_end sub_080E3E68 - - thumb_func_start sub_080E3E78 -sub_080E3E78: @ 0x080E3E78 - bx lr - .align 2, 0 - thumb_func_end sub_080E3E78 - - thumb_func_start sub_080E3E7C -sub_080E3E7C: @ 0x080E3E7C - push {r4, r5, lr} - sub sp, #0x10 - movs r4, #0 - ldr r1, _080E3ED4 - add r0, sp, #0xc - bl StringCopy - ldr r5, _080E3ED8 - ldr r0, [r5] - ldr r1, _080E3EDC - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0xff - beq _080E3ECA - cmp r0, #0xfe - bne _080E3EA6 - ldr r1, _080E3EE0 - add r0, sp, #0xc - bl StringCopy - movs r4, #1 -_080E3EA6: - ldr r0, [r5] - ldr r1, _080E3EE4 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r1, r4, #1 - adds r1, r1, r4 - ldr r2, _080E3EE8 - adds r1, r1, r2 - str r1, [sp] - movs r1, #0 - str r1, [sp, #4] - add r1, sp, #0xc - str r1, [sp, #8] - movs r1, #1 - movs r2, #0x5b - movs r3, #1 - bl AddTextPrinterParameterized3 -_080E3ECA: - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080E3ED4: .4byte gUnknown_85C940A -_080E3ED8: .4byte gUnknown_2039C34 -_080E3EDC: .4byte 0x00001E36 -_080E3EE0: .4byte gUnknown_85C940C -_080E3EE4: .4byte 0x00001E13 -_080E3EE8: .4byte gUnknown_8565B00 - thumb_func_end sub_080E3E7C - - thumb_func_start sub_080E3EEC -sub_080E3EEC: @ 0x080E3EEC - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - bl sub_080E2788 - ldr r1, _080E3F1C - lsls r4, r4, #0x10 - asrs r4, r4, #0xe - lsls r0, r0, #0x18 - lsrs r0, r0, #0x14 - adds r4, r4, r0 - adds r4, r4, r1 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - ldr r0, [r4] - adds r0, r0, r5 - ldrb r0, [r0] - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080E3F1C: .4byte gUnknown_8565EB0 - thumb_func_end sub_080E3EEC - - thumb_func_start GetTextCaretPosition -GetTextCaretPosition: @ 0x080E3F20 - push {r4, r5, lr} - movs r2, #0 - ldr r0, _080E3F48 - ldr r4, [r0] - ldr r3, _080E3F4C - adds r1, r4, r3 - ldr r1, [r1] - ldrb r3, [r1, #1] - adds r5, r0, #0 - cmp r2, r3 - bhs _080E3F5A - movs r0, #0xc0 - lsls r0, r0, #5 - adds r1, r4, r0 -_080E3F3C: - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0xff - bne _080E3F50 - adds r0, r2, #0 - b _080E3F6A - .align 2, 0 -_080E3F48: .4byte gUnknown_2039C34 -_080E3F4C: .4byte 0x00001E28 -_080E3F50: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, r3 - blo _080E3F3C -_080E3F5A: - ldr r0, [r5] - ldr r1, _080E3F70 - adds r0, r0, r1 - ldr r0, [r0] - ldrb r0, [r0, #1] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_080E3F6A: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080E3F70: .4byte 0x00001E28 - thumb_func_end GetTextCaretPosition - - thumb_func_start GetPreviousTextCaretPosition -GetPreviousTextCaretPosition: @ 0x080E3F74 - push {lr} - ldr r0, _080E3FA0 - ldr r2, [r0] - ldr r1, _080E3FA4 - adds r0, r2, r1 - ldr r0, [r0] - ldrb r0, [r0, #1] - subs r0, #1 - lsls r1, r0, #0x18 - cmp r1, #0 - ble _080E3FB0 - movs r0, #0xc0 - lsls r0, r0, #5 - adds r3, r2, r0 -_080E3F90: - asrs r2, r1, #0x18 - adds r0, r3, r2 - ldrb r0, [r0] - cmp r0, #0xff - beq _080E3FA8 - lsrs r0, r1, #0x18 - b _080E3FB2 - .align 2, 0 -_080E3FA0: .4byte gUnknown_2039C34 -_080E3FA4: .4byte 0x00001E28 -_080E3FA8: - subs r0, r2, #1 - lsls r1, r0, #0x18 - cmp r1, #0 - bgt _080E3F90 -_080E3FB0: - movs r0, #0 -_080E3FB2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetPreviousTextCaretPosition - - thumb_func_start DeleteTextCharacter -DeleteTextCharacter: @ 0x080E3FB8 - push {r4, r5, r6, lr} - bl GetPreviousTextCaretPosition - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r6, _080E4014 - ldr r0, [r6] - movs r5, #0xc0 - lsls r5, r5, #5 - adds r0, r0, r5 - adds r0, r0, r4 - movs r1, #0 - strb r1, [r0] - bl sub_080E4510 - bl sub_080E3E4C - movs r0, #3 - bl CopyBgTilemapBufferToVram - ldr r0, [r6] - adds r0, r0, r5 - adds r0, r0, r4 - movs r1, #0xff - strb r1, [r0] - bl sub_080E3414 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _080E3FFC - cmp r0, #2 - bne _080E4006 -_080E3FFC: - movs r0, #1 - movs r1, #0 - movs r2, #1 - bl sub_080E2E78 -_080E4006: - movs r0, #0x17 - bl sub_080A306C - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080E4014: .4byte gUnknown_2039C34 - thumb_func_end DeleteTextCharacter - - thumb_func_start sub_080E4018 -sub_080E4018: @ 0x080E4018 - push {r4, lr} - sub sp, #4 - mov r4, sp - adds r4, #2 - mov r0, sp - adds r1, r4, #0 - bl GetCursorPos - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0 - ldrsh r1, [r4, r2] - bl sub_080E3EEC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - movs r4, #1 - cmp r0, #0xff - bne _080E4048 - bl sub_080E4110 - b _080E4050 -_080E4048: - cmp r0, #0xfe - bne _080E4056 - bl sub_080E414C -_080E4050: - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - b _080E405C -_080E4056: - adds r0, r1, #0 - bl AddTextCharacter -_080E405C: - bl sub_080E4510 - bl sub_080E3E4C - movs r0, #3 - bl CopyBgTilemapBufferToVram - movs r0, #5 - bl sub_080A306C - cmp r4, #0 - beq _080E409C - bl GetPreviousTextCaretPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080E4094 - ldr r1, [r1] - ldr r2, _080E4098 - adds r1, r1, r2 - ldr r1, [r1] - ldrb r1, [r1, #1] - subs r1, #1 - cmp r0, r1 - bne _080E409C - movs r0, #1 - b _080E409E - .align 2, 0 -_080E4094: .4byte gUnknown_2039C34 -_080E4098: .4byte 0x00001E28 -_080E409C: - movs r0, #0 -_080E409E: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080E4018 - - thumb_func_start sub_080E40A8 -sub_080E40A8: @ 0x080E40A8 - push {r4, r5, r6, r7, lr} - movs r4, #0 - bl GetPreviousTextCaretPosition - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r6, _080E40E0 - ldr r0, [r6] - movs r5, #0xc0 - lsls r5, r5, #5 - adds r0, r0, r5 - adds r0, r0, r3 - ldrb r1, [r0] - ldr r2, _080E40E4 - ldrb r0, [r2] - cmp r0, #0xff - beq _080E40F6 - ldr r7, _080E40E8 -_080E40CC: - ldrb r0, [r2] - cmp r1, r0 - bne _080E40EC - ldr r0, [r6] - adds r0, r0, r5 - adds r0, r0, r3 - adds r1, r4, r7 - ldrb r1, [r1] - strb r1, [r0] - b _080E40F6 - .align 2, 0 -_080E40E0: .4byte gUnknown_2039C34 -_080E40E4: .4byte gUnknown_8565B06 -_080E40E8: .4byte gUnknown_8565BC1 -_080E40EC: - adds r2, #1 - adds r4, #1 - ldrb r0, [r2] - cmp r0, #0xff - bne _080E40CC -_080E40F6: - bl sub_080E4510 - bl sub_080E3E4C - movs r0, #3 - bl CopyBgTilemapBufferToVram - movs r0, #5 - bl sub_080A306C - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_080E40A8 - - thumb_func_start sub_080E4110 -sub_080E4110: @ 0x080E4110 - push {r4, r5, lr} - bl GetPreviousTextCaretPosition - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _080E4138 - ldr r0, [r0] - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r0, r1 - adds r0, r0, r5 - ldrb r4, [r0] - adds r0, r4, #0 - bl sub_080E41B0 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080E413C - movs r0, #0 - b _080E4146 - .align 2, 0 -_080E4138: .4byte gUnknown_2039C34 -_080E413C: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080E4248 - movs r0, #1 -_080E4146: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_080E4110 - - thumb_func_start sub_080E414C -sub_080E414C: @ 0x080E414C - push {r4, r5, lr} - bl GetPreviousTextCaretPosition - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _080E4174 - ldr r0, [r0] - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r0, r1 - adds r0, r0, r5 - ldrb r4, [r0] - adds r0, r4, #0 - bl sub_080E4208 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080E4178 - movs r0, #0 - b _080E4182 - .align 2, 0 -_080E4174: .4byte gUnknown_2039C34 -_080E4178: - adds r0, r4, #0 - adds r1, r5, #0 - bl GetMultiplayerId_ - movs r0, #1 -_080E4182: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_080E414C - - thumb_func_start AddTextCharacter -AddTextCharacter: @ 0x080E4188 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl GetTextCaretPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080E41AC - ldr r1, [r1] - movs r2, #0xc0 - lsls r2, r2, #5 - adds r1, r1, r2 - adds r1, r1, r0 - strb r4, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E41AC: .4byte gUnknown_2039C34 - thumb_func_end AddTextCharacter - - thumb_func_start sub_080E41B0 -sub_080E41B0: @ 0x080E41B0 - push {lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r2, #0xfa - lsls r2, r2, #0x18 - adds r0, r0, r2 - lsrs r0, r0, #0x18 - cmp r0, #0xe - bls _080E41FE - adds r0, r1, #0 - subs r0, #0x1a - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bls _080E41FE - adds r0, r1, #0 - subs r0, #0x4b - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bls _080E41FE - adds r0, r1, #0 - subs r0, #0x56 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xe - bls _080E41FE - adds r0, r1, #0 - subs r0, #0x6a - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bls _080E41FE - adds r0, r1, #0 - adds r0, #0x65 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _080E4202 -_080E41FE: - movs r0, #1 - b _080E4204 -_080E4202: - movs r0, #0 -_080E4204: - pop {r1} - bx r1 - thumb_func_end sub_080E41B0 - - thumb_func_start sub_080E4208 -sub_080E4208: @ 0x080E4208 - push {lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r2, #0xe6 - lsls r2, r2, #0x18 - adds r0, r0, r2 - lsrs r0, r0, #0x18 - cmp r0, #4 - bls _080E423E - adds r0, r1, #0 - subs r0, #0x46 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bls _080E423E - adds r0, r1, #0 - subs r0, #0x6a - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bls _080E423E - adds r0, r1, #0 - adds r0, #0x6a - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _080E4242 -_080E423E: - movs r0, #1 - b _080E4244 -_080E4242: - movs r0, #0 -_080E4244: - pop {r1} - bx r1 - thumb_func_end sub_080E4208 - - thumb_func_start sub_080E4248 -sub_080E4248: @ 0x080E4248 - push {lr} - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsrs r2, r0, #0x18 - movs r3, #0xfa - lsls r3, r3, #0x18 - adds r0, r0, r3 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _080E4264 - adds r0, r2, #0 - adds r0, #0x31 - b _080E42FE -_080E4264: - adds r0, r2, #0 - subs r0, #0xb - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _080E4276 - adds r0, r2, #0 - adds r0, #0x31 - b _080E42FE -_080E4276: - adds r0, r2, #0 - subs r0, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _080E4288 - adds r0, r2, #0 - adds r0, #0x31 - b _080E42FE -_080E4288: - adds r0, r2, #0 - subs r0, #0x1a - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _080E429A - adds r0, r2, #0 - adds r0, #0x2c - b _080E42FE -_080E429A: - adds r0, r2, #0 - subs r0, #0x4b - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bls _080E42FA - adds r0, r2, #0 - subs r0, #0x56 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _080E42B8 - adds r0, r2, #0 - adds r0, #0x31 - b _080E42FE -_080E42B8: - adds r0, r2, #0 - subs r0, #0x5b - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _080E42CA - adds r0, r2, #0 - adds r0, #0x31 - b _080E42FE -_080E42CA: - adds r0, r2, #0 - subs r0, #0x60 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _080E42DC - adds r0, r2, #0 - adds r0, #0x31 - b _080E42FE -_080E42DC: - adds r0, r2, #0 - subs r0, #0x6a - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _080E42EE - adds r0, r2, #0 - adds r0, #0x2c - b _080E42FE -_080E42EE: - adds r0, r2, #0 - adds r0, #0x65 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _080E4302 -_080E42FA: - adds r0, r2, #0 - adds r0, #0xfb -_080E42FE: - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 -_080E4302: - ldr r0, _080E4314 - ldr r0, [r0] - movs r3, #0xc0 - lsls r3, r3, #5 - adds r0, r0, r3 - adds r0, r0, r1 - strb r2, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080E4314: .4byte gUnknown_2039C34 - thumb_func_end sub_080E4248 - - thumb_func_start GetMultiplayerId_ -GetMultiplayerId_: @ 0x080E4318 - push {lr} - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsrs r2, r0, #0x18 - movs r3, #0xe6 - lsls r3, r3, #0x18 - adds r0, r0, r3 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _080E4334 - adds r0, r2, #0 - adds r0, #0x31 - b _080E4360 -_080E4334: - adds r0, r2, #0 - subs r0, #0x46 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bls _080E435E - adds r0, r2, #0 - subs r0, #0x6a - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _080E4352 - adds r0, r2, #0 - adds r0, #0x31 - b _080E4360 -_080E4352: - adds r0, r2, #0 - adds r0, #0x6a - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _080E4364 -_080E435E: - adds r0, r2, #5 -_080E4360: - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 -_080E4364: - ldr r0, _080E4378 - ldr r0, [r0] - movs r3, #0xc0 - lsls r3, r3, #5 - adds r0, r0, r3 - adds r0, r0, r1 - strb r2, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080E4378: .4byte gUnknown_2039C34 - thumb_func_end GetMultiplayerId_ - - thumb_func_start sub_080E437C -sub_080E437C: @ 0x080E437C - push {r4, r5, lr} - movs r2, #0 - ldr r1, _080E4390 - ldr r0, [r1] - ldr r4, _080E4394 - adds r0, r0, r4 - ldr r0, [r0] - adds r5, r1, #0 - b _080E43DC - .align 2, 0 -_080E4390: .4byte gUnknown_2039C34 -_080E4394: .4byte 0x00001E28 -_080E4398: - ldr r1, [r1] - movs r0, #0xc0 - lsls r0, r0, #5 - adds r3, r1, r0 - adds r0, r3, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080E43CC - cmp r0, #0xff - beq _080E43CC - ldr r2, _080E43C8 - adds r0, r1, r2 - ldr r0, [r0] - adds r1, r1, r4 - ldr r1, [r1] - ldrb r2, [r1, #1] - adds r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r1, r3, #0 - bl StringCopyN - b _080E43E2 - .align 2, 0 -_080E43C8: .4byte 0x00001E30 -_080E43CC: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r1, r5, #0 - ldr r0, [r1] - ldr r4, _080E43E8 - adds r0, r0, r4 - ldr r0, [r0] -_080E43DC: - ldrb r0, [r0, #1] - cmp r2, r0 - blo _080E4398 -_080E43E2: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080E43E8: .4byte 0x00001E28 - thumb_func_end sub_080E437C - - thumb_func_start choose_name_or_words_screen_load_bg_tile_patterns -choose_name_or_words_screen_load_bg_tile_patterns: @ 0x080E43EC - push {r4, r5, r6, lr} - ldr r0, _080E443C - ldr r6, _080E4440 - ldr r1, [r6] - ldr r4, _080E4444 - adds r1, r1, r4 - bl LZ77UnCompWram - ldr r1, [r6] - adds r1, r1, r4 - movs r5, #0xc0 - lsls r5, r5, #3 - movs r0, #1 - adds r2, r5, #0 - movs r3, #0 - bl LoadBgTiles - ldr r1, [r6] - adds r1, r1, r4 - movs r0, #2 - adds r2, r5, #0 - movs r3, #0 - bl LoadBgTiles - ldr r1, [r6] - adds r1, r1, r4 - movs r0, #3 - adds r2, r5, #0 - movs r3, #0 - bl LoadBgTiles - ldr r0, _080E4448 - bl LoadSpriteSheets - ldr r0, _080E444C - bl LoadSpritePalettes - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080E443C: .4byte gUnknown_8565318 -_080E4440: .4byte gUnknown_2039C34 -_080E4444: .4byte 0x00001810 -_080E4448: .4byte gUnknown_8565EE0 -_080E444C: .4byte gUnknown_8565F48 - thumb_func_end choose_name_or_words_screen_load_bg_tile_patterns - - thumb_func_start sub_080E4450 -sub_080E4450: @ 0x080E4450 - push {lr} - bl sub_080E3AD0 - bl sub_080E2E50 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080E4450 - - thumb_func_start sub_080E4460 -sub_080E4460: @ 0x080E4460 - push {lr} - ldr r0, _080E4488 - movs r1, #0 - movs r2, #0xc0 - bl LoadPalette - ldr r0, _080E448C - movs r1, #0xa0 - movs r2, #0x20 - bl LoadPalette - movs r0, #2 - bl stdpal_get - movs r1, #0xb0 - movs r2, #0x20 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_080E4488: .4byte gUnknown_8565258 -_080E448C: .4byte gUnknown_8565218 - thumb_func_end sub_080E4460 - - thumb_func_start sub_080E4490 -sub_080E4490: @ 0x080E4490 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080E4490 - - thumb_func_start sub_080E44A4 -sub_080E44A4: @ 0x080E44A4 - push {r4, r5, r6, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #2 - beq _080E4504 - movs r4, #1 - str r4, [sp] - str r4, [sp, #4] - ldr r0, _080E450C - adds r0, r1, r0 - ldrb r5, [r0] - str r5, [sp, #8] - adds r0, r6, #0 - movs r1, #0x20 - movs r2, #0x13 - movs r3, #0xc - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - adds r0, r6, #0 - movs r1, #0x21 - movs r2, #0x14 - movs r3, #0xc - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - adds r0, r6, #0 - movs r1, #0x1e - movs r2, #0x14 - movs r3, #0xa - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - adds r0, r6, #0 - movs r1, #0x1f - movs r2, #0x14 - movs r3, #0xb - bl FillBgTilemapBufferRect -_080E4504: - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080E450C: .4byte gUnknown_8565C7B - thumb_func_end sub_080E44A4 - - thumb_func_start sub_080E4510 -sub_080E4510: @ 0x080E4510 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - ldr r7, _080E45C0 - ldr r1, [r7] - ldr r2, _080E45C4 - adds r0, r1, r2 - ldr r0, [r0] - ldrb r6, [r0, #1] - ldrb r0, [r0, #5] - mov sl, r0 - ldr r0, _080E45C8 - adds r1, r1, r0 - ldrb r0, [r1] - movs r1, #0x11 - bl FillWindowPixelBuffer - movs r4, #0 - cmp r4, r6 - bhs _080E45A0 - add r5, sp, #0xc - mov r8, r7 - movs r7, #0 - ldr r0, _080E45CC - ldrb r0, [r0] - mov sb, r0 -_080E454A: - mov r1, r8 - ldr r0, [r1] - movs r2, #0xc0 - lsls r2, r2, #5 - adds r0, r0, r2 - adds r0, r0, r4 - ldrb r0, [r0] - strb r0, [r5] - mov r0, sb - strb r0, [r5, #1] - ldrb r0, [r5] - bl sub_080E4830 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - cmp r0, #1 - bne _080E4570 - movs r1, #2 -_080E4570: - mov r2, r8 - ldr r0, [r2] - ldr r2, _080E45C8 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r3, r4, #2 - adds r3, r3, r4 - lsls r3, r3, #1 - add r3, sl - adds r3, r3, r1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r1, #1 - str r1, [sp] - str r7, [sp, #4] - str r7, [sp, #8] - add r2, sp, #0xc - bl AddTextPrinterParameterized - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r6 - blo _080E454A -_080E45A0: - ldr r0, _080E45C0 - ldr r0, [r0] - ldr r1, _080E45C8 - adds r0, r0, r1 - ldrb r0, [r0] - bl PutWindowTilemap - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E45C0: .4byte gUnknown_2039C34 -_080E45C4: .4byte 0x00001E28 -_080E45C8: .4byte 0x00001E13 -_080E45CC: .4byte gUnknown_85C8C24 - thumb_func_end sub_080E4510 - - thumb_func_start sub_080E45D0 -sub_080E45D0: @ 0x080E45D0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - ldr r0, _080E463C - adds r0, r5, r0 - ldrb r1, [r0] - adds r0, r6, #0 - bl FillWindowPixelBuffer - movs r4, #0 - ldr r1, _080E4640 - lsls r0, r5, #2 - adds r0, r0, r1 - ldr r7, [r0] - ldr r0, _080E4644 - mov r8, r0 -_080E45FA: - lsls r3, r4, #4 - adds r3, #1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r7, [sp] - movs r0, #0 - str r0, [sp, #4] - lsls r0, r4, #2 - lsls r1, r5, #4 - adds r0, r0, r1 - add r0, r8 - ldr r0, [r0] - str r0, [sp, #8] - adds r0, r6, #0 - movs r1, #1 - movs r2, #0 - bl AddTextPrinterParameterized3 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _080E45FA - adds r0, r6, #0 - bl PutWindowTilemap - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E463C: .4byte gUnknown_8565C8C -_080E4640: .4byte gUnknown_8565C90 -_080E4644: .4byte gUnknown_8565EB0 - thumb_func_end sub_080E45D0 - - thumb_func_start sub_080E4648 -sub_080E4648: @ 0x080E4648 - push {r4, r5, r6, r7, lr} - movs r0, #0xa - bl GetGpuReg - adds r4, r0, #0 - movs r5, #3 - ands r4, r5 - movs r0, #0xc - bl GetGpuReg - ands r0, r5 - cmp r4, r0 - bls _080E4678 - movs r6, #1 - movs r7, #1 - ldr r0, _080E4670 - ldr r0, [r0] - ldr r1, _080E4674 - b _080E4682 - .align 2, 0 -_080E4670: .4byte gUnknown_2039C34 -_080E4674: .4byte 0x00001E11 -_080E4678: - movs r6, #2 - movs r7, #2 - ldr r0, _080E46D4 - ldr r0, [r0] - ldr r1, _080E46D8 -_080E4682: - adds r0, r0, r1 - ldrb r5, [r0] - ldr r4, _080E46DC - bl sub_080E270C - ldr r1, _080E46D4 - ldr r2, [r1] - ldr r1, _080E46E0 - adds r2, r2, r1 - lsls r1, r0, #1 - adds r1, r1, r0 - ldrb r2, [r2] - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r4 - ldr r1, [r1] - adds r0, r6, #0 - bl sub_080E4490 - bl sub_080E2758 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl sub_080E45D0 - bl sub_080E2758 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r6, #0 - bl sub_080E44A4 - adds r0, r7, #0 - bl CopyBgTilemapBufferToVram - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E46D4: .4byte gUnknown_2039C34 -_080E46D8: .4byte 0x00001E12 -_080E46DC: .4byte gUnknown_8565C9C -_080E46E0: .4byte 0x00001E22 - thumb_func_end sub_080E4648 - - thumb_func_start sub_080E46E4 -sub_080E46E4: @ 0x080E46E4 - push {r4, r5, lr} - sub sp, #0x10 - ldr r1, _080E473C - add r0, sp, #0xc - movs r2, #3 - bl memcpy - ldr r5, _080E4740 - ldr r0, [r5] - ldr r4, _080E4744 - adds r0, r0, r4 - ldrb r0, [r0] - movs r1, #0xff - bl FillWindowPixelBuffer - ldr r0, [r5] - adds r0, r0, r4 - ldrb r0, [r0] - add r1, sp, #0xc - str r1, [sp] - movs r1, #0 - str r1, [sp, #4] - ldr r1, _080E4748 - str r1, [sp, #8] - movs r1, #0 - movs r2, #0x18 - movs r3, #0 - bl AddTextPrinterParameterized3 - ldr r0, [r5] - adds r0, r0, r4 - ldrb r0, [r0] - bl PutWindowTilemap - ldr r0, [r5] - adds r0, r0, r4 - ldrb r0, [r0] - movs r1, #3 - bl CopyWindowToVram - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080E473C: .4byte gUnknown_8565CB4 -_080E4740: .4byte gUnknown_2039C34 -_080E4744: .4byte 0x00001E15 -_080E4748: .4byte gUnknown_85658A0 - thumb_func_end sub_080E46E4 - - thumb_func_start sub_080E474C -sub_080E474C: @ 0x080E474C - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080E474C - - thumb_func_start NamingScreen_TurnOffScreen -NamingScreen_TurnOffScreen: @ 0x080E4764 - push {lr} - movs r0, #0 - bl SetVBlankCallback - movs r0, #0 - bl SetHBlankCallback - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end NamingScreen_TurnOffScreen - - thumb_func_start NamingScreen_InitDisplayMode -NamingScreen_InitDisplayMode: @ 0x080E4778 - push {lr} - ldr r0, _080E4784 - bl SetVBlankCallback - pop {r0} - bx r0 - .align 2, 0 -_080E4784: .4byte VBlankCB_NamingScreen - thumb_func_end NamingScreen_InitDisplayMode - - thumb_func_start VBlankCB_NamingScreen -VBlankCB_NamingScreen: @ 0x080E4788 - push {r4, r5, lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - ldr r5, _080E47F8 - ldr r0, [r5] - ldr r1, _080E47FC - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x16 - bl SetGpuReg - ldr r0, [r5] - ldr r1, _080E4800 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x1a - bl SetGpuReg - movs r0, #0xa - bl GetGpuReg - ldr r4, _080E4804 - adds r1, r4, #0 - ands r1, r0 - movs r0, #0xa - bl SetGpuReg - ldr r0, [r5] - ldr r1, _080E4808 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0xa - bl SetGpuRegBits - movs r0, #0xc - bl GetGpuReg - ands r4, r0 - movs r0, #0xc - adds r1, r4, #0 - bl SetGpuReg - ldr r0, [r5] - ldr r1, _080E480C - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0xc - bl SetGpuRegBits - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080E47F8: .4byte gUnknown_2039C34 -_080E47FC: .4byte 0x00001E18 -_080E4800: .4byte 0x00001E1A -_080E4804: .4byte 0x0000FFFC -_080E4808: .4byte 0x00001E1C -_080E480C: .4byte 0x00001E1E - thumb_func_end VBlankCB_NamingScreen - - thumb_func_start sub_080E4810 -sub_080E4810: @ 0x080E4810 - push {lr} - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080E4810 - - thumb_func_start sub_080E4830 -sub_080E4830: @ 0x080E4830 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r2, #0 - ldr r0, _080E4864 - ldrb r1, [r0] - adds r3, r0, #0 - cmp r1, #0xff - beq _080E485A - adds r1, r3, #0 -_080E4844: - adds r0, r2, r1 - ldrb r0, [r0] - cmp r4, r0 - beq _080E485A - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r0, #0xff - bne _080E4844 -_080E485A: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080E4864: .4byte gUnknown_85658C1 - thumb_func_end sub_080E4830 - - thumb_func_start sub_080E4868 -sub_080E4868: @ 0x080E4868 - push {lr} - sub sp, #8 - ldr r0, _080E4888 - ldr r1, [r0] - ldrb r2, [r1, #8] - movs r0, #0 - str r0, [sp] - ldr r0, _080E488C - str r0, [sp, #4] - movs r0, #0 - movs r3, #0 - bl DoNamingScreen - add sp, #8 - pop {r0} - bx r0 - .align 2, 0 -_080E4888: .4byte gUnknown_3005AF0 -_080E488C: .4byte CB2_ReturnToFieldWithOpenMenu - thumb_func_end sub_080E4868 - - thumb_func_start sub_080E4890 -sub_080E4890: @ 0x080E4890 - push {lr} - sub sp, #8 - ldr r0, _080E48B0 - ldr r1, [r0] - ldrb r2, [r1, #8] - movs r0, #0 - str r0, [sp] - ldr r0, _080E48B4 - str r0, [sp, #4] - movs r0, #1 - movs r3, #0 - bl DoNamingScreen - add sp, #8 - pop {r0} - bx r0 - .align 2, 0 -_080E48B0: .4byte gUnknown_3005AF0 -_080E48B4: .4byte CB2_ReturnToFieldWithOpenMenu - thumb_func_end sub_080E4890 - - thumb_func_start sub_080E48B8 -sub_080E48B8: @ 0x080E48B8 - push {lr} - sub sp, #8 - ldr r0, _080E48D8 - ldr r1, [r0] - ldrb r2, [r1, #8] - movs r0, #0 - str r0, [sp] - ldr r0, _080E48DC - str r0, [sp, #4] - movs r0, #2 - movs r3, #0 - bl DoNamingScreen - add sp, #8 - pop {r0} - bx r0 - .align 2, 0 -_080E48D8: .4byte gUnknown_3005AF0 -_080E48DC: .4byte CB2_ReturnToFieldWithOpenMenu - thumb_func_end sub_080E48B8 - - thumb_func_start sub_080E48E0 -sub_080E48E0: @ 0x080E48E0 - push {lr} - sub sp, #8 - ldr r0, _080E4900 - ldr r1, [r0] - ldrb r2, [r1, #8] - movs r0, #0 - str r0, [sp] - ldr r0, _080E4904 - str r0, [sp, #4] - movs r0, #3 - movs r3, #0 - bl DoNamingScreen - add sp, #8 - pop {r0} - bx r0 - .align 2, 0 -_080E4900: .4byte gUnknown_3005AF0 -_080E4904: .4byte CB2_ReturnToFieldWithOpenMenu - thumb_func_end sub_080E48E0 - - thumb_func_start sub_080E4908 -sub_080E4908: @ 0x080E4908 - ldr r1, _080E4918 - ldr r1, [r1] - adds r1, #0xac - ldr r0, [r0] - ldr r1, [r1] - eors r0, r1 - bx lr - .align 2, 0 -_080E4918: .4byte gUnknown_3005AF0 - thumb_func_end sub_080E4908 - - thumb_func_start sub_080E491C -sub_080E491C: @ 0x080E491C - ldr r2, _080E492C - ldr r2, [r2] - adds r2, #0xac - ldr r2, [r2] - eors r2, r1 - str r2, [r0] - bx lr - .align 2, 0 -_080E492C: .4byte gUnknown_3005AF0 - thumb_func_end sub_080E491C - - thumb_func_start IsEnoughMoney -IsEnoughMoney: @ 0x080E4930 - push {r4, lr} - adds r4, r1, #0 - bl sub_080E4908 - cmp r0, r4 - bhs _080E4940 - movs r0, #0 - b _080E4942 -_080E4940: - movs r0, #1 -_080E4942: - pop {r4} - pop {r1} - bx r1 - thumb_func_end IsEnoughMoney - - thumb_func_start AddMoney -AddMoney: @ 0x080E4948 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r4, r1, #0 - bl sub_080E4908 - adds r5, r0, #0 - adds r0, r5, r4 - ldr r5, _080E497C - adds r4, r5, #0 - cmp r0, r5 - bhi _080E496C - adds r5, r0, #0 - adds r0, r6, #0 - bl sub_080E4908 - cmp r5, r0 - bhs _080E496C - adds r5, r4, #0 -_080E496C: - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_080E491C - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080E497C: .4byte 0x000F423F - thumb_func_end AddMoney - - thumb_func_start RemoveMoney -RemoveMoney: @ 0x080E4980 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl sub_080E4908 - adds r1, r0, #0 - cmp r1, r4 - bhs _080E4994 - movs r1, #0 - b _080E4996 -_080E4994: - subs r1, r1, r4 -_080E4996: - adds r0, r5, #0 - bl sub_080E491C - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RemoveMoney - - thumb_func_start IsEnoughForCostInVar0x8005 -IsEnoughForCostInVar0x8005: @ 0x080E49A4 - push {lr} - ldr r0, _080E49C0 - ldr r0, [r0] - movs r1, #0x92 - lsls r1, r1, #3 - adds r0, r0, r1 - ldr r1, _080E49C4 - ldrh r1, [r1] - bl IsEnoughMoney - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_080E49C0: .4byte gUnknown_3005AEC -_080E49C4: .4byte gUnknown_2037282 - thumb_func_end IsEnoughForCostInVar0x8005 - - thumb_func_start SubtractMoneyFromVar0x8005 -SubtractMoneyFromVar0x8005: @ 0x080E49C8 - push {lr} - ldr r0, _080E49E0 - ldr r0, [r0] - movs r1, #0x92 - lsls r1, r1, #3 - adds r0, r0, r1 - ldr r1, _080E49E4 - ldrh r1, [r1] - bl RemoveMoney - pop {r0} - bx r0 - .align 2, 0 -_080E49E0: .4byte gUnknown_3005AEC -_080E49E4: .4byte gUnknown_2037282 - thumb_func_end SubtractMoneyFromVar0x8005 - - thumb_func_start PrintMoneyAmountInMoneyBox -PrintMoneyAmountInMoneyBox: @ 0x080E49E8 - push {lr} - sub sp, #4 - adds r3, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp] - movs r1, #0x28 - movs r2, #2 - bl CreateBicycleAnimationTask - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PrintMoneyAmountInMoneyBox - - thumb_func_start CreateBicycleAnimationTask -CreateBicycleAnimationTask: @ 0x080E4A08 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #0xc - adds r6, r0, #0 - mov r8, r1 - adds r5, r2, #0 - adds r1, r3, #0 - ldr r4, [sp, #0x24] - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov r0, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _080E4A68 - movs r2, #1 - movs r3, #6 - bl sub_080089D8 - ldr r0, _080E4A6C - mov sb, r0 - ldr r1, _080E4A70 - bl StringExpandPlaceholders - str r5, [sp] - str r4, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - adds r0, r6, #0 - movs r1, #1 - mov r2, sb - mov r3, r8 - bl AddTextPrinterParameterized - add sp, #0xc - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080E4A68: .4byte gUnknown_2021C40 -_080E4A6C: .4byte gUnknown_2021C7C -_080E4A70: .4byte gUnknown_85C9A9D - thumb_func_end CreateBicycleAnimationTask - - thumb_func_start PrintMoneyAmountInMoneyBoxWithBorder -PrintMoneyAmountInMoneyBoxWithBorder: @ 0x080E4A74 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r6, r0, #0 - adds r4, r1, #0 - adds r5, r2, #0 - mov r8, r3 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - adds r0, r6, #0 - movs r1, #0 - adds r2, r4, #0 - adds r3, r5, #0 - bl DrawStdFrameWithCustomTileAndPalette - adds r0, r6, #0 - mov r1, r8 - movs r2, #0 - bl PrintMoneyAmountInMoneyBox - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PrintMoneyAmountInMoneyBoxWithBorder - - thumb_func_start ChangeAmountInMoneyBox -ChangeAmountInMoneyBox: @ 0x080E4AB0 - push {lr} - adds r1, r0, #0 - ldr r0, _080E4AC4 - ldrb r0, [r0] - movs r2, #0 - bl PrintMoneyAmountInMoneyBox - pop {r0} - bx r0 - .align 2, 0 -_080E4AC4: .4byte gUnknown_2039C38 - thumb_func_end ChangeAmountInMoneyBox - - thumb_func_start DrawMoneyBox -DrawMoneyBox: @ 0x080E4AC8 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0x18 - mov r8, r0 - adds r4, r1, #0 - adds r3, r2, #0 - lsls r4, r4, #0x18 - lsls r3, r3, #0x18 - lsrs r6, r4, #0x18 - movs r0, #0x80 - lsls r0, r0, #0x11 - adds r4, r4, r0 - lsrs r4, r4, #0x18 - lsrs r5, r3, #0x18 - adds r3, r3, r0 - lsrs r3, r3, #0x18 - movs r0, #0xc - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #0xf - str r0, [sp, #8] - movs r0, #8 - str r0, [sp, #0xc] - add r0, sp, #0x10 - movs r1, #0 - adds r2, r4, #0 - bl SetWindowTemplateFields - ldr r4, _080E4B5C - add r0, sp, #0x10 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, #0 - bl FillWindowPixelBuffer - ldrb r0, [r4] - bl PutWindowTilemap - ldrb r0, [r4] - movs r1, #1 - bl CopyWindowToVram - ldrb r0, [r4] - movs r1, #0x85 - lsls r1, r1, #2 - movs r2, #0xe - mov r3, r8 - bl PrintMoneyAmountInMoneyBoxWithBorder - lsls r6, r6, #0x13 - movs r0, #0x98 - lsls r0, r0, #0xd - adds r6, r6, r0 - lsrs r6, r6, #0x10 - lsls r5, r5, #0x13 - movs r0, #0xb0 - lsls r0, r0, #0xc - adds r5, r5, r0 - lsrs r5, r5, #0x10 - adds r0, r6, #0 - adds r1, r5, #0 - bl AddMoneyLabelObject - add sp, #0x18 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080E4B5C: .4byte gUnknown_2039C38 - thumb_func_end DrawMoneyBox - - thumb_func_start HideMoneyBox -HideMoneyBox: @ 0x080E4B60 - push {r4, lr} - bl RemoveMoneyLabelObject - ldr r4, _080E4B84 - ldrb r0, [r4] - movs r1, #0 - bl sub_08198134 - ldrb r0, [r4] - movs r1, #2 - bl CopyWindowToVram - ldrb r0, [r4] - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E4B84: .4byte gUnknown_2039C38 - thumb_func_end HideMoneyBox - - thumb_func_start AddMoneyLabelObject -AddMoneyLabelObject: @ 0x080E4B88 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - ldr r0, _080E4BC0 - bl LoadCompressedSpriteSheet - ldr r0, _080E4BC4 - bl LoadCompressedSpritePalette - ldr r0, _080E4BC8 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - adds r1, r4, #0 - adds r2, r5, #0 - movs r3, #0 - bl CreateSprite - ldr r1, _080E4BCC - strb r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080E4BC0: .4byte gUnknown_8565FBC -_080E4BC4: .4byte gUnknown_8565FC4 -_080E4BC8: .4byte gUnknown_8565FA4 -_080E4BCC: .4byte gUnknown_2039C39 - thumb_func_end AddMoneyLabelObject - - thumb_func_start RemoveMoneyLabelObject -RemoveMoneyLabelObject: @ 0x080E4BD0 - push {lr} - ldr r0, _080E4BE8 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080E4BEC - adds r0, r0, r1 - bl DestroySpriteAndFreeResources - pop {r0} - bx r0 - .align 2, 0 -_080E4BE8: .4byte gUnknown_2039C39 -_080E4BEC: .4byte gUnknown_20205AC - thumb_func_end RemoveMoneyLabelObject - - thumb_func_start AreMovesContestCombo -AreMovesContestCombo: @ 0x080E4BF0 - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x10 - lsls r1, r1, #0x10 - ldr r2, _080E4C44 - lsrs r0, r0, #0xd - adds r0, r0, r2 - ldrb r4, [r0, #2] - mov r3, sp - lsrs r1, r1, #0xd - adds r1, r1, r2 - ldrb r0, [r1, #3] - strb r0, [r3] - mov r2, sp - ldrb r0, [r1, #4] - strb r0, [r2, #1] - ldrb r0, [r1, #5] - strb r0, [r2, #2] - mov r0, sp - ldrb r1, [r1, #6] - strb r1, [r0, #3] - cmp r4, #0 - beq _080E4C4C - mov r0, sp - ldrb r0, [r0] - cmp r4, r0 - beq _080E4C3A - mov r0, sp - ldrb r0, [r0, #1] - cmp r4, r0 - beq _080E4C3A - mov r0, sp - ldrb r0, [r0, #2] - cmp r4, r0 - beq _080E4C3A - cmp r4, r1 - bne _080E4C4C -_080E4C3A: - ldr r0, _080E4C48 - adds r0, r4, r0 - ldrb r0, [r0] - b _080E4C4E - .align 2, 0 -_080E4C44: .4byte gUnknown_8565FCC -_080E4C48: .4byte gUnknown_8566BA4 -_080E4C4C: - movs r0, #0 -_080E4C4E: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end AreMovesContestCombo - - thumb_func_start sub_080E4C58 -sub_080E4C58: @ 0x080E4C58 - bx lr - .align 2, 0 - thumb_func_end sub_080E4C58 - - thumb_func_start ContestEffect_UserMoreEasilyStartled -ContestEffect_UserMoreEasilyStartled: @ 0x080E4C5C - push {lr} - ldr r3, _080E4C88 - ldr r1, [r3] - ldr r0, [r1, #8] - ldrb r2, [r0, #0x11] - ldr r1, [r1, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #0x10] - movs r2, #4 - orrs r1, r2 - strb r1, [r0, #0x10] - ldr r0, [r3] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0 - bl SetContestantEffectStringID - pop {r0} - bx r0 - .align 2, 0 -_080E4C88: .4byte gUnknown_2039BD4 - thumb_func_end ContestEffect_UserMoreEasilyStartled - - thumb_func_start ContestEffect_GreatAppealButNoMoreMoves -ContestEffect_GreatAppealButNoMoreMoves: @ 0x080E4C8C - push {lr} - ldr r3, _080E4CB8 - ldr r1, [r3] - ldr r0, [r1, #8] - ldrb r2, [r0, #0x11] - ldr r1, [r1, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #0x11] - movs r2, #8 - orrs r1, r2 - strb r1, [r0, #0x11] - ldr r0, [r3] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #1 - bl SetContestantEffectStringID - pop {r0} - bx r0 - .align 2, 0 -_080E4CB8: .4byte gUnknown_2039BD4 - thumb_func_end ContestEffect_GreatAppealButNoMoreMoves - - thumb_func_start ContestEffect_RepetitionNotBoring -ContestEffect_RepetitionNotBoring: @ 0x080E4CBC - ldr r3, _080E4D0C - ldr r1, [r3] - ldr r0, [r1, #8] - ldrb r2, [r0, #0x11] - ldr r1, [r1, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #0x10] - movs r2, #8 - orrs r1, r2 - strb r1, [r0, #0x10] - ldr r1, [r3] - ldr r0, [r1, #8] - ldrb r0, [r0, #0x11] - ldr r2, [r1, #4] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r2, [r1, #0x15] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #0x15] - ldr r1, [r3] - ldr r0, [r1, #8] - ldrb r0, [r0, #0x11] - ldr r2, [r1, #4] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r2, [r1, #0xb] - movs r0, #0x71 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #0xb] - bx lr - .align 2, 0 -_080E4D0C: .4byte gUnknown_2039BD4 - thumb_func_end ContestEffect_RepetitionNotBoring - - thumb_func_start ContestEffect_AvoidStartleOnce -ContestEffect_AvoidStartleOnce: @ 0x080E4D10 - push {lr} - ldr r3, _080E4D38 - ldr r1, [r3] - ldr r0, [r1, #8] - ldrb r2, [r0, #0x11] - ldr r1, [r1, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - movs r1, #1 - strb r1, [r0, #0x12] - ldr r0, [r3] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #2 - bl SetContestantEffectStringID - pop {r0} - bx r0 - .align 2, 0 -_080E4D38: .4byte gUnknown_2039BD4 - thumb_func_end ContestEffect_AvoidStartleOnce - - thumb_func_start ContestEffect_AvoidStartle -ContestEffect_AvoidStartle: @ 0x080E4D3C - push {lr} - ldr r3, _080E4D68 - ldr r1, [r3] - ldr r0, [r1, #8] - ldrb r2, [r0, #0x11] - ldr r1, [r1, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #0x10] - movs r2, #2 - orrs r1, r2 - strb r1, [r0, #0x10] - ldr r0, [r3] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #3 - bl SetContestantEffectStringID - pop {r0} - bx r0 - .align 2, 0 -_080E4D68: .4byte gUnknown_2039BD4 - thumb_func_end ContestEffect_AvoidStartle - - thumb_func_start ContestEffect_AvoidStartleSlightly -ContestEffect_AvoidStartleSlightly: @ 0x080E4D6C - push {lr} - ldr r3, _080E4D94 - ldr r1, [r3] - ldr r0, [r1, #8] - ldrb r2, [r0, #0x11] - ldr r1, [r1, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - movs r1, #0x14 - strb r1, [r0, #0xf] - ldr r0, [r3] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #4 - bl SetContestantEffectStringID - pop {r0} - bx r0 - .align 2, 0 -_080E4D94: .4byte gUnknown_2039BD4 - thumb_func_end ContestEffect_AvoidStartleSlightly - - thumb_func_start ContestEffect_UserLessEasilyStartled -ContestEffect_UserLessEasilyStartled: @ 0x080E4D98 - push {lr} - ldr r3, _080E4DC4 - ldr r1, [r3] - ldr r0, [r1, #8] - ldrb r2, [r0, #0x11] - ldr r1, [r1, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #0x10] - movs r2, #1 - orrs r1, r2 - strb r1, [r0, #0x10] - ldr r0, [r3] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #5 - bl SetContestantEffectStringID - pop {r0} - bx r0 - .align 2, 0 -_080E4DC4: .4byte gUnknown_2039BD4 - thumb_func_end ContestEffect_UserLessEasilyStartled - - thumb_func_start ContestEffect_StartleFrontMon -ContestEffect_StartleFrontMon: @ 0x080E4DC8 - push {r4, r5, lr} - movs r2, #0 - ldr r5, _080E4E3C - ldr r0, [r5] - ldr r1, [r0, #8] - ldrb r4, [r1, #0x11] - adds r3, r1, r4 - ldrb r0, [r3] - cmp r0, #0 - beq _080E4E16 - subs r0, #1 - ldrb r1, [r1] - cmp r0, r1 - beq _080E4DFE - adds r3, r5, #0 -_080E4DE6: - adds r2, #1 - cmp r2, #3 - bgt _080E4DFE - ldr r0, [r3] - ldr r1, [r0, #8] - adds r0, r1, r4 - ldrb r0, [r0] - subs r0, #1 - adds r1, r1, r2 - ldrb r1, [r1] - cmp r0, r1 - bne _080E4DE6 -_080E4DFE: - ldr r1, _080E4E3C - ldr r0, [r1] - ldr r0, [r0, #8] - strb r2, [r0, #8] - ldr r0, [r1] - ldr r1, [r0, #8] - movs r0, #0xff - strb r0, [r1, #9] - bl WasAtLeastOneOpponentJammed - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 -_080E4E16: - cmp r2, #0 - bne _080E4E28 - ldr r0, _080E4E3C - ldr r0, [r0] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x36 - bl SetContestantEffectStringID2 -_080E4E28: - ldr r0, _080E4E3C - ldr r0, [r0] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x30 - bl SetContestantEffectStringID - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080E4E3C: .4byte gUnknown_2039BD4 - thumb_func_end ContestEffect_StartleFrontMon - - thumb_func_start ContestEffect_StartlePrevMons -ContestEffect_StartlePrevMons: @ 0x080E4E40 - push {r4, r5, r6, lr} - movs r1, #0 - ldr r2, _080E4EB8 - ldr r0, [r2] - ldr r0, [r0, #8] - ldrb r5, [r0, #0x11] - adds r0, r0, r5 - ldrb r0, [r0] - cmp r0, #0 - beq _080E4E90 - movs r3, #0 - movs r4, #0 - adds r6, r2, #0 -_080E4E5A: - ldr r0, [r6] - ldr r2, [r0, #8] - adds r0, r2, r5 - adds r1, r2, r3 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080E4E74 - adds r0, r2, #0 - adds r0, #8 - adds r0, r0, r4 - strb r3, [r0] - adds r4, #1 -_080E4E74: - adds r3, #1 - cmp r3, #3 - ble _080E4E5A - ldr r0, _080E4EB8 - ldr r0, [r0] - ldr r0, [r0, #8] - adds r0, #8 - adds r0, r0, r4 - movs r1, #0xff - strb r1, [r0] - bl WasAtLeastOneOpponentJammed - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 -_080E4E90: - cmp r1, #0 - bne _080E4EA2 - ldr r0, _080E4EB8 - ldr r0, [r0] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x36 - bl SetContestantEffectStringID2 -_080E4EA2: - ldr r0, _080E4EB8 - ldr r0, [r0] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x30 - bl SetContestantEffectStringID - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080E4EB8: .4byte gUnknown_2039BD4 - thumb_func_end ContestEffect_StartlePrevMons - - thumb_func_start ContestEffect_StartlePrevMon2 -ContestEffect_StartlePrevMon2: @ 0x080E4EBC - push {lr} - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x14 - cmp r0, #1 - bls _080E4EDE - movs r1, #0x3c - cmp r0, #7 - bhi _080E4EDE - movs r1, #0x28 -_080E4EDE: - ldr r0, _080E4EF0 - ldr r0, [r0] - ldr r0, [r0, #8] - strh r1, [r0, #4] - bl ContestEffect_StartleFrontMon - pop {r0} - bx r0 - .align 2, 0 -_080E4EF0: .4byte gUnknown_2039BD4 - thumb_func_end ContestEffect_StartlePrevMon2 - - thumb_func_start ContestEffect_StartlePrevMons2 -ContestEffect_StartlePrevMons2: @ 0x080E4EF4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r7, #0 - ldr r1, _080E4FA4 - ldr r0, [r1] - ldr r0, [r0, #8] - ldrb r5, [r0, #0x11] - adds r0, r0, r5 - ldrb r0, [r0] - mov r8, r1 - cmp r0, #0 - beq _080E4F7A - movs r4, #0 - mov r6, r8 -_080E4F12: - ldr r0, [r6] - ldr r2, [r0, #8] - adds r0, r2, r5 - adds r1, r2, r4 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080E4F74 - strb r4, [r2, #8] - ldr r0, [r6] - ldr r1, [r0, #8] - movs r0, #0xff - strb r0, [r1, #9] - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - cmp r0, #0 - beq _080E4F5E - movs r1, #0xa - cmp r0, #2 - bls _080E4F5E - movs r1, #0x14 - cmp r0, #4 - bls _080E4F5E - movs r1, #0x1e - cmp r0, #6 - bls _080E4F5E - movs r1, #0x3c - cmp r0, #8 - bhi _080E4F5E - movs r1, #0x28 -_080E4F5E: - ldr r0, [r6] - ldr r0, [r0, #8] - strh r1, [r0, #4] - bl WasAtLeastOneOpponentJammed - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080E4F74 - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 -_080E4F74: - adds r4, #1 - cmp r4, #3 - ble _080E4F12 -_080E4F7A: - mov r1, r8 - ldr r0, [r1] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x30 - bl SetContestantEffectStringID - cmp r7, #0 - bne _080E4F9A - mov r1, r8 - ldr r0, [r1] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x36 - bl SetContestantEffectStringID2 -_080E4F9A: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E4FA4: .4byte gUnknown_2039BD4 - thumb_func_end ContestEffect_StartlePrevMons2 - - thumb_func_start ContestEffect_ShiftJudgeAttention -ContestEffect_ShiftJudgeAttention: @ 0x080E4FA8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - movs r0, #0 - mov sb, r0 - ldr r1, _080E5064 - ldr r0, [r1] - ldr r0, [r0, #8] - ldrb r2, [r0, #0x11] - mov r8, r2 - add r0, r8 - ldrb r0, [r0] - mov sl, r1 - cmp r0, #0 - beq _080E5034 - movs r6, #0 - mov r7, sl - movs r5, #0 -_080E4FD0: - ldr r2, [r7] - ldr r0, [r2, #8] - mov r3, r8 - adds r1, r0, r3 - adds r0, r0, r6 - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bls _080E502C - ldr r0, [r2, #4] - adds r0, r5, r0 - ldrb r1, [r0, #0x15] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080E502C - lsls r0, r6, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl CanUnnerveContestant - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080E502C - ldr r0, [r7] - ldr r2, [r0, #4] - adds r2, r5, r2 - ldrb r0, [r2, #0x15] - movs r3, #0x11 - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r0, r1 - strb r0, [r2, #0x15] - ldr r0, [r7] - ldr r2, [r0, #4] - adds r2, r5, r2 - ldrb r0, [r2, #0x15] - movs r1, #0x20 - orrs r0, r1 - strb r0, [r2, #0x15] - adds r0, r4, #0 - movs r1, #8 - bl SetContestantEffectStringID - movs r0, #1 - mov sb, r0 -_080E502C: - adds r5, #0x1c - adds r6, #1 - cmp r6, #3 - ble _080E4FD0 -_080E5034: - mov r1, sl - ldr r0, [r1] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #7 - bl SetContestantEffectStringID - mov r2, sb - cmp r2, #0 - bne _080E5056 - mov r3, sl - ldr r0, [r3] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x36 - bl SetContestantEffectStringID2 -_080E5056: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E5064: .4byte gUnknown_2039BD4 - thumb_func_end ContestEffect_ShiftJudgeAttention - - thumb_func_start ContestEffect_StartleMonWithJudgesAttention -ContestEffect_StartleMonWithJudgesAttention: @ 0x080E5068 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - movs r0, #0 - mov sb, r0 - ldr r1, _080E50B0 - ldr r0, [r1] - ldr r0, [r0, #8] - ldrb r7, [r0, #0x11] - adds r0, r0, r7 - ldrb r0, [r0] - adds r4, r1, #0 - cmp r0, #0 - beq _080E50E6 - movs r5, #0 - movs r6, #0 - mov r8, r4 -_080E508C: - ldr r3, [r4] - ldr r2, [r3, #8] - adds r0, r2, r7 - adds r1, r2, r5 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080E50DC - ldr r0, [r3, #4] - adds r0, r6, r0 - ldrb r1, [r0, #0x15] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080E50B4 - movs r0, #0x32 - b _080E50B6 - .align 2, 0 -_080E50B0: .4byte gUnknown_2039BD4 -_080E50B4: - movs r0, #0xa -_080E50B6: - strh r0, [r2, #4] - mov r1, r8 - ldr r0, [r1] - ldr r0, [r0, #8] - strb r5, [r0, #8] - ldr r0, [r1] - ldr r1, [r0, #8] - movs r0, #0xff - strb r0, [r1, #9] - bl WasAtLeastOneOpponentJammed - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080E50DC - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 -_080E50DC: - adds r6, #0x1c - adds r5, #1 - ldr r4, _080E5110 - cmp r5, #3 - ble _080E508C -_080E50E6: - ldr r0, [r4] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x30 - bl SetContestantEffectStringID - mov r0, sb - cmp r0, #0 - bne _080E5104 - ldr r0, [r4] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x36 - bl SetContestantEffectStringID2 -_080E5104: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E5110: .4byte gUnknown_2039BD4 - thumb_func_end ContestEffect_StartleMonWithJudgesAttention - - thumb_func_start ContestEffect_JamsOthersButMissOneTurn -ContestEffect_JamsOthersButMissOneTurn: @ 0x080E5114 - push {r4, lr} - ldr r4, _080E5148 - ldr r1, [r4] - ldr r0, [r1, #8] - ldrb r2, [r0, #0x11] - ldr r1, [r1, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #0x11] - movs r2, #4 - orrs r1, r2 - strb r1, [r0, #0x11] - bl ContestEffect_StartlePrevMons - ldr r0, [r4] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x30 - bl SetContestantEffectStringID - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E5148: .4byte gUnknown_2039BD4 - thumb_func_end ContestEffect_JamsOthersButMissOneTurn - - thumb_func_start ContestEffect_StartleMonsSameTypeAppeal -ContestEffect_StartleMonsSameTypeAppeal: @ 0x080E514C - push {r4, lr} - ldr r4, _080E5184 - ldr r1, [r4] - ldr r0, [r1, #8] - ldrb r2, [r0, #0x11] - ldr r1, [r1, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0, #6] - ldr r1, _080E5188 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r0, [r0, #1] - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1d - bl JamByMoveCategory - ldr r0, [r4] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x30 - bl SetContestantEffectStringID - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E5184: .4byte gUnknown_2039BD4 -_080E5188: .4byte gUnknown_8565FCC - thumb_func_end ContestEffect_StartleMonsSameTypeAppeal - - thumb_func_start ContestEffect_StartleMonsCoolAppeal -ContestEffect_StartleMonsCoolAppeal: @ 0x080E518C - push {lr} - movs r0, #0 - bl JamByMoveCategory - ldr r0, _080E51A8 - ldr r0, [r0] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x30 - bl SetContestantEffectStringID - pop {r0} - bx r0 - .align 2, 0 -_080E51A8: .4byte gUnknown_2039BD4 - thumb_func_end ContestEffect_StartleMonsCoolAppeal - - thumb_func_start ContestEffect_StartleMonsBeautyAppeal -ContestEffect_StartleMonsBeautyAppeal: @ 0x080E51AC - push {lr} - movs r0, #1 - bl JamByMoveCategory - ldr r0, _080E51C8 - ldr r0, [r0] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x30 - bl SetContestantEffectStringID - pop {r0} - bx r0 - .align 2, 0 -_080E51C8: .4byte gUnknown_2039BD4 - thumb_func_end ContestEffect_StartleMonsBeautyAppeal - - thumb_func_start sub_080E51CC -sub_080E51CC: @ 0x080E51CC - push {lr} - movs r0, #2 - bl JamByMoveCategory - ldr r0, _080E51E8 - ldr r0, [r0] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x30 - bl SetContestantEffectStringID - pop {r0} - bx r0 - .align 2, 0 -_080E51E8: .4byte gUnknown_2039BD4 - thumb_func_end sub_080E51CC - - thumb_func_start ContestEffect_StartleMonsSmartAppeal -ContestEffect_StartleMonsSmartAppeal: @ 0x080E51EC - push {lr} - movs r0, #3 - bl JamByMoveCategory - ldr r0, _080E5208 - ldr r0, [r0] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x30 - bl SetContestantEffectStringID - pop {r0} - bx r0 - .align 2, 0 -_080E5208: .4byte gUnknown_2039BD4 - thumb_func_end ContestEffect_StartleMonsSmartAppeal - - thumb_func_start ContestEffect_StartleMonsToughAppeal -ContestEffect_StartleMonsToughAppeal: @ 0x080E520C - push {lr} - movs r0, #4 - bl JamByMoveCategory - ldr r0, _080E5228 - ldr r0, [r0] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x30 - bl SetContestantEffectStringID - pop {r0} - bx r0 - .align 2, 0 -_080E5228: .4byte gUnknown_2039BD4 - thumb_func_end ContestEffect_StartleMonsToughAppeal - - thumb_func_start ContestEffect_MakeFollowingMonNervous -ContestEffect_MakeFollowingMonNervous: @ 0x080E522C - push {r4, r5, r6, lr} - movs r4, #0 - ldr r2, _080E5278 - ldr r0, [r2] - ldr r0, [r0, #8] - ldrb r1, [r0, #0x11] - adds r0, r0, r1 - ldrb r0, [r0] - adds r6, r2, #0 - cmp r0, #3 - beq _080E528C - movs r5, #0 -_080E5244: - ldr r0, _080E5278 - ldr r0, [r0] - ldr r1, [r0, #8] - ldrb r0, [r1, #0x11] - adds r0, r1, r0 - ldrb r0, [r0] - adds r0, #1 - adds r1, r1, r5 - ldrb r1, [r1] - cmp r0, r1 - bne _080E5286 - lsls r0, r5, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl CanUnnerveContestant - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080E527C - adds r0, r4, #0 - bl MakeContestantNervous - adds r0, r4, #0 - movs r1, #0xa - b _080E5280 - .align 2, 0 -_080E5278: .4byte gUnknown_2039BD4 -_080E527C: - adds r0, r4, #0 - movs r1, #0x3c -_080E5280: - bl SetContestantEffectStringID - movs r4, #1 -_080E5286: - adds r5, #1 - cmp r5, #3 - ble _080E5244 -_080E528C: - ldr r0, [r6] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #9 - bl SetContestantEffectStringID - cmp r4, #0 - bne _080E52A8 - ldr r0, [r6] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x36 - bl SetContestantEffectStringID2 -_080E52A8: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ContestEffect_MakeFollowingMonNervous - - thumb_func_start ContestEffect_MakeFollowingMonsNervous -ContestEffect_MakeFollowingMonsNervous: @ 0x080E52B0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - movs r0, #0 - mov sb, r0 - movs r1, #0 - str r1, [sp, #0x18] - mov r0, sp - movs r1, #0xff - movs r2, #5 - bl memset - movs r5, #0 - movs r4, #0 - add r2, sp, #0x10 - mov r8, r2 - add r3, sp, #8 - mov sl, r3 - movs r6, #0 -_080E52DC: - ldr r0, _080E5328 - ldr r2, [r0] - ldr r1, [r2, #8] - ldrb r0, [r1, #0x11] - adds r0, r1, r0 - adds r1, r1, r5 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bhs _080E5314 - ldr r0, [r2, #4] - adds r0, r6, r0 - ldrb r1, [r0, #0xc] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080E5314 - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - bl Contest_IsMonsTurnDisabled - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080E5314 - mov r1, sp - adds r0, r1, r4 - strb r5, [r0] - adds r4, #1 -_080E5314: - adds r6, #0x1c - adds r5, #1 - cmp r5, #3 - ble _080E52DC - cmp r4, #1 - bne _080E532C - movs r0, #0x3c - mov r2, r8 - strh r0, [r2] - b _080E535A - .align 2, 0 -_080E5328: .4byte gUnknown_2039BD4 -_080E532C: - cmp r4, #2 - bne _080E533A - movs r0, #0x1e - mov r3, r8 - strh r0, [r3] - strh r0, [r3, #2] - b _080E535A -_080E533A: - cmp r4, #3 - bne _080E534A - movs r0, #0x14 - mov r6, r8 - strh r0, [r6] - strh r0, [r6, #2] - strh r0, [r6, #4] - b _080E535A -_080E534A: - mov r1, r8 - movs r2, #0 - mov r0, r8 - adds r0, #6 -_080E5352: - strh r2, [r0] - subs r0, #2 - cmp r0, r1 - bge _080E5352 -_080E535A: - movs r5, #0 - ldr r7, _080E53A0 - movs r6, #0 - mov r4, sl -_080E5362: - ldr r0, [r7] - ldr r0, [r0, #4] - adds r0, r6, r0 - ldrb r1, [r0, #0x15] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080E53AC - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - bl sub_080DD94C - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080E53AC - ldr r0, [r7] - ldr r0, [r0, #4] - adds r0, r6, r0 - ldrh r0, [r0, #8] - lsls r0, r0, #3 - ldr r1, _080E53A4 - adds r0, r0, r1 - ldrb r0, [r0, #2] - ldr r2, _080E53A8 - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #1 - b _080E53AE - .align 2, 0 -_080E53A0: .4byte gUnknown_2039BD4 -_080E53A4: .4byte gUnknown_8565FCC -_080E53A8: .4byte gUnknown_8566BA4 -_080E53AC: - movs r0, #0 -_080E53AE: - strh r0, [r4] - ldr r0, [r7] - ldr r0, [r0, #4] - adds r0, r6, r0 - ldrb r0, [r0, #0xd] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #0xa - bl __divsi3 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #1 - ldrh r0, [r4] - subs r0, r0, r1 - strh r0, [r4] - adds r6, #0x1c - adds r4, #2 - adds r5, #1 - cmp r5, #3 - ble _080E5362 - mov r3, r8 - movs r6, #0 - ldrsh r0, [r3, r6] - cmp r0, #0 - beq _080E547C - movs r5, #0 - mov r0, sp - ldrb r0, [r0] - cmp r0, #0xff - beq _080E547C - mov r4, sp -_080E53F2: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r5, #1 - add r1, r8 - movs r3, #0 - ldrsh r2, [r1, r3] - ldrb r3, [r4] - lsls r1, r3, #1 - add r1, sl - movs r6, #0 - ldrsh r1, [r1, r6] - adds r2, r2, r1 - cmp r0, r2 - bge _080E5442 - adds r0, r3, #0 - bl CanUnnerveContestant - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080E544C - ldrb r0, [r4] - bl MakeContestantNervous - ldrb r0, [r4] - movs r1, #0xa - bl SetContestantEffectStringID - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - b _080E5446 -_080E5442: - movs r0, #1 - str r0, [sp, #0x18] -_080E5446: - ldr r1, [sp, #0x18] - cmp r1, #0 - beq _080E5462 -_080E544C: - movs r2, #0 - str r2, [sp, #0x18] - ldrb r0, [r4] - movs r1, #0x3c - bl SetContestantEffectStringID - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 -_080E5462: - ldr r0, _080E54AC - ldr r0, [r0] - ldr r0, [r0, #8] - adds r0, #0xd - ldrb r3, [r4] - adds r0, r0, r3 - movs r1, #1 - strb r1, [r0] - adds r4, #1 - adds r5, #1 - ldrb r0, [r4] - cmp r0, #0xff - bne _080E53F2 -_080E547C: - ldr r6, _080E54AC - ldr r0, [r6] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0xb - bl SetContestantEffectStringID - mov r0, sb - cmp r0, #0 - bne _080E549C - ldr r0, [r6] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x36 - bl SetContestantEffectStringID2 -_080E549C: - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E54AC: .4byte gUnknown_2039BD4 - thumb_func_end ContestEffect_MakeFollowingMonsNervous - - thumb_func_start ContestEffect_WorsenConditionOfPrevMons -ContestEffect_WorsenConditionOfPrevMons: @ 0x080E54B0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r0, #0 - mov r8, r0 - movs r6, #0 - ldr r7, _080E5554 - movs r5, #0 -_080E54C0: - ldr r2, [r7] - ldr r0, [r2, #8] - ldrb r1, [r0, #0x11] - adds r1, r0, r1 - adds r0, r0, r6 - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bls _080E5522 - ldr r0, [r2, #4] - adds r0, r5, r0 - ldrb r0, [r0, #0xd] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _080E5522 - lsls r0, r6, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl CanUnnerveContestant - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080E5522 - ldr r0, [r7] - ldr r0, [r0, #4] - adds r0, r5, r0 - movs r1, #0 - strb r1, [r0, #0xd] - ldr r0, [r7] - ldr r2, [r0, #4] - adds r2, r5, r2 - ldrb r1, [r2, #0x10] - movs r3, #0x31 - rsbs r3, r3, #0 - adds r0, r3, #0 - ands r1, r0 - movs r0, #0x20 - orrs r1, r0 - strb r1, [r2, #0x10] - adds r0, r4, #0 - movs r1, #0xd - bl SetContestantEffectStringID - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 -_080E5522: - adds r5, #0x1c - adds r6, #1 - cmp r6, #3 - ble _080E54C0 - ldr r4, _080E5554 - ldr r0, [r4] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0xc - bl SetContestantEffectStringID - mov r0, r8 - cmp r0, #0 - bne _080E554A - ldr r0, [r4] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x39 - bl SetContestantEffectStringID2 -_080E554A: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E5554: .4byte gUnknown_2039BD4 - thumb_func_end ContestEffect_WorsenConditionOfPrevMons - - thumb_func_start ContestEffect_BadlyStartlesMonsInGoodCondition -ContestEffect_BadlyStartlesMonsInGoodCondition: @ 0x080E5558 - push {r4, r5, r6, r7, lr} - movs r7, #0 - movs r4, #0 - ldr r5, _080E5588 - movs r6, #0 -_080E5562: - ldr r3, [r5] - ldr r2, [r3, #8] - ldrb r0, [r2, #0x11] - adds r0, r2, r0 - adds r1, r2, r4 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080E55AE - ldr r0, [r3, #4] - adds r0, r6, r0 - ldrb r0, [r0, #0xd] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _080E558C - movs r0, #0x28 - b _080E558E - .align 2, 0 -_080E5588: .4byte gUnknown_2039BD4 -_080E558C: - movs r0, #0xa -_080E558E: - strh r0, [r2, #4] - ldr r0, [r5] - ldr r0, [r0, #8] - strb r4, [r0, #8] - ldr r0, [r5] - ldr r1, [r0, #8] - movs r0, #0xff - strb r0, [r1, #9] - bl WasAtLeastOneOpponentJammed - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080E55AE - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 -_080E55AE: - adds r6, #0x1c - adds r4, #1 - cmp r4, #3 - ble _080E5562 - ldr r4, _080E55DC - ldr r0, [r4] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0xe - bl SetContestantEffectStringID - cmp r7, #0 - bne _080E55D4 - ldr r0, [r4] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x39 - bl SetContestantEffectStringID2 -_080E55D4: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E55DC: .4byte gUnknown_2039BD4 - thumb_func_end ContestEffect_BadlyStartlesMonsInGoodCondition - - thumb_func_start ContestEffect_BetterIfFirst -ContestEffect_BetterIfFirst: @ 0x080E55E0 - push {r4, lr} - ldr r1, _080E5628 - ldr r0, _080E562C - ldr r4, [r0] - ldr r0, [r4, #8] - ldrb r2, [r0, #0x11] - adds r1, r2, r1 - ldrb r0, [r1] - cmp r0, #0 - bne _080E5622 - ldr r0, [r4, #4] - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r0, [r1, #6] - ldr r3, _080E5630 - ldr r2, _080E5634 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r0, [r0, #1] - lsls r0, r0, #1 - ldrh r2, [r1, #2] - adds r0, r0, r2 - strh r0, [r1, #2] - ldr r0, [r4, #8] - ldrb r0, [r0, #0x11] - movs r1, #0xf - bl SetContestantEffectStringID -_080E5622: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E5628: .4byte gUnknown_2039BC6 -_080E562C: .4byte gUnknown_2039BD4 -_080E5630: .4byte gUnknown_8566AE4 -_080E5634: .4byte gUnknown_8565FCC - thumb_func_end ContestEffect_BetterIfFirst - - thumb_func_start ContestEffect_BetterIfLast -ContestEffect_BetterIfLast: @ 0x080E5638 - push {r4, lr} - ldr r1, _080E5680 - ldr r0, _080E5684 - ldr r4, [r0] - ldr r0, [r4, #8] - ldrb r2, [r0, #0x11] - adds r1, r2, r1 - ldrb r0, [r1] - cmp r0, #3 - bne _080E567A - ldr r0, [r4, #4] - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r0, [r1, #6] - ldr r3, _080E5688 - ldr r2, _080E568C - lsls r0, r0, #3 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r0, [r0, #1] - lsls r0, r0, #1 - ldrh r2, [r1, #2] - adds r0, r0, r2 - strh r0, [r1, #2] - ldr r0, [r4, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x10 - bl SetContestantEffectStringID -_080E567A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E5680: .4byte gUnknown_2039BC6 -_080E5684: .4byte gUnknown_2039BD4 -_080E5688: .4byte gUnknown_8566AE4 -_080E568C: .4byte gUnknown_8565FCC - thumb_func_end ContestEffect_BetterIfLast - - thumb_func_start ContestEffect_AppealAsGoodAsPrevOnes -ContestEffect_AppealAsGoodAsPrevOnes: @ 0x080E5690 - push {r4, r5, r6, r7, lr} - movs r1, #0 - movs r5, #0 - ldr r0, _080E56E4 - ldr r4, [r0] - ldr r2, [r4, #8] - ldrb r0, [r2, #0x11] - adds r0, r2, r0 - ldrb r6, [r0] - movs r3, #0 -_080E56A4: - adds r0, r2, r1 - ldrb r0, [r0] - cmp r6, r0 - bls _080E56B6 - ldr r0, [r4, #4] - adds r0, r3, r0 - movs r7, #2 - ldrsh r0, [r0, r7] - adds r5, r5, r0 -_080E56B6: - adds r3, #0x1c - adds r1, #1 - cmp r1, #3 - ble _080E56A4 - cmp r5, #0 - bge _080E56C4 - movs r5, #0 -_080E56C4: - ldr r0, _080E56E4 - ldr r3, [r0] - ldr r0, [r3, #8] - ldrb r2, [r0, #0x11] - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080E56D8 - cmp r5, #0 - bne _080E56E8 -_080E56D8: - adds r0, r2, #0 - movs r1, #0x12 - bl SetContestantEffectStringID - b _080E5708 - .align 2, 0 -_080E56E4: .4byte gUnknown_2039BD4 -_080E56E8: - ldr r0, [r3, #4] - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - lsrs r0, r5, #0x1f - adds r0, r5, r0 - asrs r0, r0, #1 - ldrh r2, [r1, #2] - adds r0, r0, r2 - strh r0, [r1, #2] - ldr r0, [r3, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x11 - bl SetContestantEffectStringID -_080E5708: - ldr r4, _080E573C - ldr r1, [r4] - ldr r0, [r1, #8] - ldrb r2, [r0, #0x11] - ldr r1, [r1, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - movs r7, #2 - ldrsh r0, [r0, r7] - bl RoundTowardsZero - ldr r2, [r4] - ldr r1, [r2, #8] - ldrb r3, [r1, #0x11] - ldr r2, [r2, #4] - lsls r1, r3, #3 - subs r1, r1, r3 - lsls r1, r1, #2 - adds r1, r1, r2 - strh r0, [r1, #2] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E573C: .4byte gUnknown_2039BD4 - thumb_func_end ContestEffect_AppealAsGoodAsPrevOnes - - thumb_func_start ContestEffect_AppealAsGoodAsPrevOne -ContestEffect_AppealAsGoodAsPrevOne: @ 0x080E5740 - push {r4, r5, r6, r7, lr} - movs r6, #0 - ldr r0, _080E579C - ldr r4, [r0] - ldr r2, [r4, #8] - ldrb r1, [r2, #0x11] - adds r3, r2, r1 - ldrb r1, [r3] - adds r7, r0, #0 - cmp r1, #0 - beq _080E578E - movs r1, #0 - adds r5, r4, #0 - adds r4, r2, #0 - ldrb r0, [r3] - subs r3, r0, #1 - movs r2, #0 -_080E5762: - adds r0, r4, r1 - ldrb r0, [r0] - cmp r3, r0 - bne _080E5770 - ldr r0, [r5, #4] - adds r0, r2, r0 - ldrh r6, [r0, #2] -_080E5770: - adds r2, #0x1c - adds r1, #1 - cmp r1, #3 - ble _080E5762 - ldr r3, [r7] - ldr r0, [r3, #8] - ldrb r2, [r0, #0x11] - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080E578E - lsls r0, r6, #0x10 - asrs r4, r0, #0x10 - cmp r4, #0 - bgt _080E57A0 -_080E578E: - ldr r0, [r7] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x14 - bl SetContestantEffectStringID - b _080E57BA - .align 2, 0 -_080E579C: .4byte gUnknown_2039BD4 -_080E57A0: - ldr r1, [r3, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r1, [r0, #2] - adds r1, r4, r1 - strh r1, [r0, #2] - ldr r0, [r3, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x13 - bl SetContestantEffectStringID -_080E57BA: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end ContestEffect_AppealAsGoodAsPrevOne - - thumb_func_start ContestEffect_BetterWhenLater -ContestEffect_BetterWhenLater: @ 0x080E57C0 - push {r4, r5, lr} - ldr r1, _080E57E4 - ldr r3, [r1] - ldr r0, [r3, #8] - ldrb r2, [r0, #0x11] - adds r0, r0, r2 - ldrb r4, [r0] - adds r5, r1, #0 - cmp r4, #0 - bne _080E57E8 - ldr r0, [r3, #4] - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - movs r0, #0xa - b _080E57F8 - .align 2, 0 -_080E57E4: .4byte gUnknown_2039BD4 -_080E57E8: - ldr r0, [r3, #4] - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #2 -_080E57F8: - strh r0, [r1, #2] - cmp r4, #0 - bne _080E580C - ldr r0, [r5] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x15 - bl SetContestantEffectStringID - b _080E583C -_080E580C: - cmp r4, #1 - bne _080E581E - ldr r0, [r5] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x16 - bl SetContestantEffectStringID - b _080E583C -_080E581E: - cmp r4, #2 - bne _080E5830 - ldr r0, [r5] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x17 - bl SetContestantEffectStringID - b _080E583C -_080E5830: - ldr r0, [r5] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x18 - bl SetContestantEffectStringID -_080E583C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ContestEffect_BetterWhenLater - - thumb_func_start ContestEffect_QualityDependsOnTiming -ContestEffect_QualityDependsOnTiming: @ 0x080E5844 - push {r4, lr} - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - cmp r0, #2 - bhi _080E5874 - movs r4, #0xa - ldr r0, _080E5870 - ldr r0, [r0] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x1a - bl SetContestantEffectStringID - b _080E58D8 - .align 2, 0 -_080E5870: .4byte gUnknown_2039BD4 -_080E5874: - cmp r0, #5 - bhi _080E5890 - movs r4, #0x14 - ldr r0, _080E588C - ldr r0, [r0] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x1b - bl SetContestantEffectStringID - b _080E58D8 - .align 2, 0 -_080E588C: .4byte gUnknown_2039BD4 -_080E5890: - cmp r0, #7 - bhi _080E58AC - movs r4, #0x28 - ldr r0, _080E58A8 - ldr r0, [r0] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x1c - bl SetContestantEffectStringID - b _080E58D8 - .align 2, 0 -_080E58A8: .4byte gUnknown_2039BD4 -_080E58AC: - cmp r1, #8 - bhi _080E58C8 - movs r4, #0x3c - ldr r0, _080E58C4 - ldr r0, [r0] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x1d - bl SetContestantEffectStringID - b _080E58D8 - .align 2, 0 -_080E58C4: .4byte gUnknown_2039BD4 -_080E58C8: - movs r4, #0x50 - ldr r0, _080E58F4 - ldr r0, [r0] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x1e - bl SetContestantEffectStringID -_080E58D8: - ldr r0, _080E58F4 - ldr r1, [r0] - ldr r0, [r1, #8] - ldrb r2, [r0, #0x11] - ldr r1, [r1, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - strh r4, [r0, #2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E58F4: .4byte gUnknown_2039BD4 - thumb_func_end ContestEffect_QualityDependsOnTiming - - thumb_func_start ContestEffect_BetterIfSameType -ContestEffect_BetterIfSameType: @ 0x080E58F8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r2, _080E597C - ldr r0, [r2] - ldr r3, [r0, #8] - ldrb r0, [r3, #0x11] - adds r0, r3, r0 - movs r1, #0 - ldrsb r1, [r0, r1] - subs r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - mov r8, r2 - cmp r1, #0 - beq _080E59D4 - mov r7, r8 - ldrb r6, [r3] -_080E591C: - movs r2, #0 - lsls r0, r4, #0x18 - asrs r1, r0, #0x18 - adds r5, r0, #0 - cmp r6, r1 - beq _080E5946 - ldr r4, _080E597C -_080E592A: - lsls r0, r2, #0x18 - movs r2, #0x80 - lsls r2, r2, #0x11 - adds r0, r0, r2 - lsrs r2, r0, #0x18 - asrs r3, r0, #0x18 - cmp r3, #3 - bgt _080E5946 - ldr r0, [r4] - ldr r0, [r0, #8] - adds r0, r0, r3 - ldrb r0, [r0] - cmp r0, r1 - bne _080E592A -_080E5946: - ldr r0, [r7] - lsls r3, r2, #0x18 - asrs r1, r3, #0x18 - ldr r2, [r0, #4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r2, r0, r2 - ldrb r1, [r2, #0xb] - movs r0, #0x80 - ands r0, r1 - mov ip, r3 - cmp r0, #0 - bne _080E596C - ldrb r1, [r2, #0xc] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - beq _080E5980 -_080E596C: - movs r1, #0xff - lsls r1, r1, #0x18 - adds r0, r5, r1 - lsrs r4, r0, #0x18 - cmp r0, #0 - blt _080E59D4 - b _080E591C - .align 2, 0 -_080E597C: .4byte gUnknown_2039BD4 -_080E5980: - mov r2, r8 - ldr r6, [r2] - ldr r0, [r6, #8] - ldrb r1, [r0, #0x11] - ldr r4, [r6, #4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r5, r0, r4 - ldrh r0, [r5, #6] - ldr r3, _080E59E0 - lsls r0, r0, #3 - adds r7, r0, r3 - ldrb r2, [r7, #1] - lsls r2, r2, #0x1d - mov r0, ip - asrs r1, r0, #0x18 - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r0, [r0, #6] - lsls r0, r0, #3 - adds r0, r0, r3 - ldrb r0, [r0, #1] - lsls r0, r0, #0x1d - cmp r2, r0 - bne _080E59D4 - ldr r1, _080E59E4 - ldrb r0, [r7] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #1] - lsls r0, r0, #1 - ldrh r1, [r5, #2] - adds r0, r0, r1 - strh r0, [r5, #2] - ldr r0, [r6, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x1f - bl SetContestantEffectStringID -_080E59D4: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E59E0: .4byte gUnknown_8565FCC -_080E59E4: .4byte gUnknown_8566AE4 - thumb_func_end ContestEffect_BetterIfSameType - - thumb_func_start ContestEffect_BetterIfDiffType -ContestEffect_BetterIfDiffType: @ 0x080E59E8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r0, _080E5A74 - ldr r3, [r0] - ldr r1, [r3, #8] - ldrb r2, [r1, #0x11] - adds r1, r1, r2 - ldrb r1, [r1] - mov sb, r0 - cmp r1, #0 - beq _080E5A88 - ldr r1, [r3, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0, #6] - mov r8, r0 - movs r6, #0 - ldr r0, _080E5A78 - mov ip, r0 - movs r7, #0 -_080E5A18: - mov r1, sb - ldr r4, [r1] - ldr r0, [r4, #8] - ldrb r2, [r0, #0x11] - adds r1, r0, r2 - ldrb r1, [r1] - subs r1, #1 - adds r0, r0, r6 - ldrb r0, [r0] - cmp r1, r0 - bne _080E5A80 - mov r1, r8 - lsls r0, r1, #3 - mov r1, ip - adds r5, r0, r1 - ldrb r1, [r5, #1] - lsls r1, r1, #0x1d - ldr r3, [r4, #4] - adds r0, r7, r3 - ldrh r0, [r0, #6] - lsls r0, r0, #3 - add r0, ip - ldrb r0, [r0, #1] - lsls r0, r0, #0x1d - cmp r1, r0 - beq _080E5A80 - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r2, _080E5A7C - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #1] - lsls r0, r0, #1 - ldrh r2, [r1, #2] - adds r0, r0, r2 - strh r0, [r1, #2] - ldr r0, [r4, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x20 - bl SetContestantEffectStringID - b _080E5A88 - .align 2, 0 -_080E5A74: .4byte gUnknown_2039BD4 -_080E5A78: .4byte gUnknown_8565FCC -_080E5A7C: .4byte gUnknown_8566AE4 -_080E5A80: - adds r7, #0x1c - adds r6, #1 - cmp r6, #3 - ble _080E5A18 -_080E5A88: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end ContestEffect_BetterIfDiffType - - thumb_func_start ContestEffect_AffectedByPrevAppeal -ContestEffect_AffectedByPrevAppeal: @ 0x080E5A94 - push {r4, r5, r6, r7, lr} - ldr r0, _080E5AEC - ldr r0, [r0] - ldr r0, [r0, #8] - ldrb r1, [r0, #0x11] - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _080E5B0A - movs r5, #0 - movs r6, #0 -_080E5AAA: - ldr r0, _080E5AEC - ldr r4, [r0] - ldr r1, [r4, #8] - ldrb r2, [r1, #0x11] - adds r0, r1, r2 - ldrb r0, [r0] - subs r0, #1 - adds r1, r1, r5 - ldrb r1, [r1] - cmp r0, r1 - bne _080E5B02 - ldr r1, [r4, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r3, r0, r1 - adds r1, r6, r1 - movs r0, #2 - ldrsh r2, [r3, r0] - movs r7, #2 - ldrsh r0, [r1, r7] - cmp r2, r0 - ble _080E5AF0 - adds r0, r2, #0 - lsls r0, r0, #1 - strh r0, [r3, #2] - ldr r0, [r4, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x21 - bl SetContestantEffectStringID - b _080E5B02 - .align 2, 0 -_080E5AEC: .4byte gUnknown_2039BD4 -_080E5AF0: - cmp r2, r0 - bge _080E5B02 - movs r0, #0 - strh r0, [r3, #2] - ldr r0, [r4, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x22 - bl SetContestantEffectStringID -_080E5B02: - adds r6, #0x1c - adds r5, #1 - cmp r5, #3 - ble _080E5AAA -_080E5B0A: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end ContestEffect_AffectedByPrevAppeal - - thumb_func_start ContestEffect_ImproveConditionPreventNervousness -ContestEffect_ImproveConditionPreventNervousness: @ 0x080E5B10 - push {r4, lr} - ldr r4, _080E5B60 - ldr r1, [r4] - ldr r0, [r1, #8] - ldrb r2, [r0, #0x11] - ldr r1, [r1, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r1, r0, r1 - ldrb r3, [r1, #0xd] - movs r0, #0xd - ldrsb r0, [r1, r0] - cmp r0, #0x1d - bgt _080E5B64 - adds r0, r3, #0 - adds r0, #0xa - strb r0, [r1, #0xd] - ldr r1, [r4] - ldr r0, [r1, #8] - ldrb r2, [r0, #0x11] - ldr r1, [r1, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r2, [r0, #0x10] - movs r1, #0x31 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #0x10 - orrs r1, r2 - strb r1, [r0, #0x10] - ldr r0, [r4] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x23 - bl SetContestantEffectStringID - b _080E5B6C - .align 2, 0 -_080E5B60: .4byte gUnknown_2039BD4 -_080E5B64: - adds r0, r2, #0 - movs r1, #0x3a - bl SetContestantEffectStringID -_080E5B6C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ContestEffect_ImproveConditionPreventNervousness - - thumb_func_start ContestEffect_BetterWithGoodCondition -ContestEffect_BetterWithGoodCondition: @ 0x080E5B74 - push {lr} - ldr r3, _080E5BB4 - ldr r1, [r3] - ldr r0, [r1, #8] - ldrb r2, [r0, #0x11] - ldr r1, [r1, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #0x11] - movs r2, #0x20 - orrs r1, r2 - strb r1, [r0, #0x11] - ldr r1, [r3] - ldr r0, [r1, #8] - ldrb r2, [r0, #0x11] - ldr r1, [r1, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #0xd] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _080E5BB8 - adds r0, r2, #0 - movs r1, #0x24 - bl SetContestantEffectStringID - b _080E5BC0 - .align 2, 0 -_080E5BB4: .4byte gUnknown_2039BD4 -_080E5BB8: - adds r0, r2, #0 - movs r1, #0x3b - bl SetContestantEffectStringID -_080E5BC0: - pop {r0} - bx r0 - thumb_func_end ContestEffect_BetterWithGoodCondition - - thumb_func_start ContestEffect_NextAppealEarlier -ContestEffect_NextAppealEarlier: @ 0x080E5BC4 - push {r4, r5, r6, r7, lr} - sub sp, #4 - ldr r0, _080E5C4C - ldr r2, [r0] - ldr r1, [r2] - ldrb r1, [r1, #1] - mov ip, r0 - cmp r1, #4 - bne _080E5BD8 - b _080E5CF4 -_080E5BD8: - movs r6, #0 - adds r4, r2, #0 -_080E5BDC: - lsls r1, r6, #0x18 - asrs r1, r1, #0x18 - mov r0, sp - adds r3, r0, r1 - ldr r2, [r4, #4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #0x19] - strb r0, [r3] - adds r1, #1 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - asrs r1, r1, #0x18 - cmp r1, #3 - ble _080E5BDC - mov r1, ip - ldr r0, [r1] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - mov r2, sp - adds r1, r2, r0 - movs r0, #0xff - strb r0, [r1] - movs r6, #0 - mov r3, ip - ldr r7, [r3] -_080E5C14: - movs r5, #0 -_080E5C16: - lsls r0, r5, #0x18 - asrs r2, r0, #0x18 - ldr r0, [r7, #8] - ldrb r0, [r0, #0x11] - cmp r2, r0 - beq _080E5C50 - lsls r0, r6, #0x18 - asrs r3, r0, #0x18 - mov r0, sp - adds r4, r0, r2 - ldrb r1, [r4] - cmp r3, r1 - bne _080E5C50 - ldr r0, [r7, #4] - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - lsls r0, r3, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1, #0x19] - cmp r0, r1 - bne _080E5C50 - adds r0, r3, #1 - strb r0, [r4] - b _080E5C60 - .align 2, 0 -_080E5C4C: .4byte gUnknown_2039BD4 -_080E5C50: - lsls r0, r5, #0x18 - movs r2, #0x80 - lsls r2, r2, #0x11 - adds r0, r0, r2 - lsrs r5, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #3 - ble _080E5C16 -_080E5C60: - cmp r5, #4 - beq _080E5C74 - lsls r0, r6, #0x18 - movs r3, #0x80 - lsls r3, r3, #0x11 - adds r0, r0, r3 - lsrs r6, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #3 - ble _080E5C14 -_080E5C74: - mov r4, ip - ldr r1, [r4] - ldr r0, [r1, #8] - ldrb r0, [r0, #0x11] - mov r3, sp - adds r2, r3, r0 - movs r0, #0 - strb r0, [r2] - ldr r0, [r1, #8] - ldrb r2, [r0, #0x11] - ldr r1, [r1, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r2, [r0, #0x10] - movs r1, #0x3f - ands r1, r2 - movs r2, #0x40 - orrs r1, r2 - strb r1, [r0, #0x10] - movs r6, #0 - mov r3, ip -_080E5CA2: - ldr r0, [r3] - lsls r1, r6, #0x18 - asrs r1, r1, #0x18 - ldr r2, [r0, #4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - mov r4, sp - adds r2, r4, r1 - ldrb r2, [r2] - strb r2, [r0, #0x19] - adds r1, #1 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - asrs r1, r1, #0x18 - cmp r1, #3 - ble _080E5CA2 - mov r0, ip - ldr r1, [r0] - ldr r0, [r1, #8] - ldrb r2, [r0, #0x11] - ldr r1, [r1, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r2, [r0, #0x11] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #1 - orrs r1, r2 - strb r1, [r0, #0x11] - mov r1, ip - ldr r0, [r1] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x25 - bl SetContestantEffectStringID -_080E5CF4: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end ContestEffect_NextAppealEarlier - - thumb_func_start ContestEffect_NextAppealLater -ContestEffect_NextAppealLater: @ 0x080E5CFC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - ldr r0, _080E5D8C - ldr r2, [r0] - ldr r1, [r2] - ldrb r1, [r1, #1] - mov ip, r0 - cmp r1, #4 - bne _080E5D14 - b _080E5E34 -_080E5D14: - movs r6, #0 - adds r4, r2, #0 -_080E5D18: - lsls r1, r6, #0x18 - asrs r1, r1, #0x18 - mov r0, sp - adds r3, r0, r1 - ldr r2, [r4, #4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #0x19] - strb r0, [r3] - adds r1, #1 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - asrs r1, r1, #0x18 - cmp r1, #3 - ble _080E5D18 - mov r1, ip - ldr r0, [r1] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - mov r2, sp - adds r1, r2, r0 - movs r0, #0xff - strb r0, [r1] - movs r6, #3 - mov r3, ip - ldr r7, [r3] - movs r4, #1 - rsbs r4, r4, #0 - mov r8, r4 -_080E5D56: - movs r5, #0 -_080E5D58: - lsls r0, r5, #0x18 - asrs r2, r0, #0x18 - ldr r0, [r7, #8] - ldrb r0, [r0, #0x11] - cmp r2, r0 - beq _080E5D90 - lsls r0, r6, #0x18 - asrs r3, r0, #0x18 - mov r0, sp - adds r4, r0, r2 - ldrb r1, [r4] - cmp r3, r1 - bne _080E5D90 - ldr r0, [r7, #4] - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - lsls r0, r3, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1, #0x19] - cmp r0, r1 - bne _080E5D90 - subs r0, r3, #1 - strb r0, [r4] - b _080E5DA0 - .align 2, 0 -_080E5D8C: .4byte gUnknown_2039BD4 -_080E5D90: - lsls r0, r5, #0x18 - movs r2, #0x80 - lsls r2, r2, #0x11 - adds r0, r0, r2 - lsrs r5, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #3 - ble _080E5D58 -_080E5DA0: - cmp r5, #4 - beq _080E5DB4 - lsls r0, r6, #0x18 - movs r3, #0xff - lsls r3, r3, #0x18 - adds r0, r0, r3 - lsrs r6, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, r8 - bgt _080E5D56 -_080E5DB4: - mov r4, ip - ldr r1, [r4] - ldr r0, [r1, #8] - ldrb r0, [r0, #0x11] - mov r3, sp - adds r2, r3, r0 - movs r0, #3 - strb r0, [r2] - ldr r0, [r1, #8] - ldrb r2, [r0, #0x11] - ldr r1, [r1, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r2, [r0, #0x10] - movs r1, #0x3f - ands r1, r2 - movs r2, #0x40 - orrs r1, r2 - strb r1, [r0, #0x10] - movs r6, #0 - mov r3, ip -_080E5DE2: - ldr r0, [r3] - lsls r1, r6, #0x18 - asrs r1, r1, #0x18 - ldr r2, [r0, #4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - mov r4, sp - adds r2, r4, r1 - ldrb r2, [r2] - strb r2, [r0, #0x19] - adds r1, #1 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - asrs r1, r1, #0x18 - cmp r1, #3 - ble _080E5DE2 - mov r0, ip - ldr r1, [r0] - ldr r0, [r1, #8] - ldrb r2, [r0, #0x11] - ldr r1, [r1, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r2, [r0, #0x11] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #2 - orrs r1, r2 - strb r1, [r0, #0x11] - mov r1, ip - ldr r0, [r1] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x26 - bl SetContestantEffectStringID -_080E5E34: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end ContestEffect_NextAppealLater - - thumb_func_start sub_080E5E40 -sub_080E5E40: @ 0x080E5E40 - bx lr - .align 2, 0 - thumb_func_end sub_080E5E40 - - thumb_func_start ContestEffect_ScrambleNextTurnOrder -ContestEffect_ScrambleNextTurnOrder: @ 0x080E5E44 - push {r4, r5, r6, r7, lr} - sub sp, #8 - ldr r0, _080E5EC0 - ldr r1, [r0] - ldr r0, [r1] - ldrb r0, [r0, #1] - cmp r0, #4 - beq _080E5F48 - movs r6, #0 - add r5, sp, #4 - adds r4, r1, #0 - adds r7, r5, #0 -_080E5E5C: - lsls r1, r6, #0x18 - asrs r1, r1, #0x18 - mov r0, sp - adds r3, r0, r1 - ldr r2, [r4, #4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #0x19] - strb r0, [r3] - adds r0, r7, r1 - strb r6, [r0] - adds r1, #1 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - asrs r1, r1, #0x18 - cmp r1, #3 - ble _080E5E5C - movs r6, #0 - adds r7, r5, #0 -_080E5E86: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r2, r6, #0x18 - asrs r2, r2, #0x18 - movs r1, #4 - subs r1, r1, r2 - bl __modsi3 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r1, #0 -_080E5EA0: - lsls r0, r1, #0x18 - asrs r2, r0, #0x18 - adds r3, r7, r2 - ldrb r1, [r3] - adds r5, r0, #0 - cmp r1, #0xff - beq _080E5ECA - cmp r4, #0 - bne _080E5EC4 - mov r1, sp - adds r0, r1, r2 - strb r6, [r0] - movs r0, #0xff - strb r0, [r3] - b _080E5ED8 - .align 2, 0 -_080E5EC0: .4byte gUnknown_2039BD4 -_080E5EC4: - subs r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_080E5ECA: - movs r1, #0x80 - lsls r1, r1, #0x11 - adds r0, r5, r1 - lsrs r1, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #3 - ble _080E5EA0 -_080E5ED8: - lsls r0, r6, #0x18 - movs r6, #0x80 - lsls r6, r6, #0x11 - adds r0, r0, r6 - lsrs r6, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #3 - ble _080E5E86 - movs r6, #0 - ldr r5, _080E5F50 - adds r4, r5, #0 -_080E5EEE: - ldr r0, [r4] - lsls r3, r6, #0x18 - asrs r3, r3, #0x18 - ldr r1, [r0, #4] - lsls r2, r3, #3 - subs r2, r2, r3 - lsls r2, r2, #2 - adds r1, r2, r1 - mov r6, sp - adds r0, r6, r3 - ldrb r0, [r0] - strb r0, [r1, #0x19] - ldr r0, [r4] - ldr r0, [r0, #4] - adds r2, r2, r0 - ldrb r1, [r2, #0x10] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - adds r3, #1 - lsls r3, r3, #0x18 - lsrs r6, r3, #0x18 - asrs r3, r3, #0x18 - cmp r3, #3 - ble _080E5EEE - ldr r1, [r5] - ldr r0, [r1, #8] - ldrb r2, [r0, #0x11] - ldr r1, [r1, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #0x11] - movs r2, #3 - orrs r1, r2 - strb r1, [r0, #0x11] - ldr r0, [r5] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x27 - bl SetContestantEffectStringID -_080E5F48: - add sp, #8 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E5F50: .4byte gUnknown_2039BD4 - thumb_func_end ContestEffect_ScrambleNextTurnOrder - - thumb_func_start ContestEffect_ExciteAudienceInAnyContest -ContestEffect_ExciteAudienceInAnyContest: @ 0x080E5F54 - push {lr} - ldr r3, _080E5F8C - ldr r0, _080E5F90 - ldr r1, [r0] - ldr r0, [r1, #8] - ldrb r2, [r0, #0x11] - ldr r1, [r1, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r2, r0, r1 - ldrh r0, [r2, #6] - lsls r0, r0, #3 - adds r0, r0, r3 - ldrb r0, [r0, #1] - lsls r0, r0, #0x1d - ldr r1, _080E5F94 - lsrs r0, r0, #0x1d - ldrh r1, [r1] - cmp r0, r1 - beq _080E5F86 - ldrb r0, [r2, #0x11] - movs r1, #0x10 - orrs r0, r1 - strb r0, [r2, #0x11] -_080E5F86: - pop {r0} - bx r0 - .align 2, 0 -_080E5F8C: .4byte gUnknown_8565FCC -_080E5F90: .4byte gUnknown_2039BD4 -_080E5F94: .4byte gUnknown_2039BCC - thumb_func_end ContestEffect_ExciteAudienceInAnyContest - - thumb_func_start ContestEffect_BadlyStartleMonsWithGoodAppeals -ContestEffect_BadlyStartleMonsWithGoodAppeals: @ 0x080E5F98 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r0, #0 - mov r8, r0 - movs r4, #0 - ldr r5, _080E5FE0 - movs r6, #0 -_080E5FA8: - ldr r3, [r5] - ldr r2, [r3, #8] - ldrb r0, [r2, #0x11] - adds r0, r2, r0 - adds r1, r2, r4 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080E600A - ldr r0, [r3, #4] - adds r1, r6, r0 - movs r7, #2 - ldrsh r0, [r1, r7] - cmp r0, #0 - ble _080E5FE4 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - strh r0, [r2, #4] - ldr r0, [r3, #8] - movs r1, #4 - ldrsh r0, [r0, r1] - bl RoundUp - ldr r1, [r5] - ldr r1, [r1, #8] - strh r0, [r1, #4] - b _080E5FE8 - .align 2, 0 -_080E5FE0: .4byte gUnknown_2039BD4 -_080E5FE4: - movs r0, #0xa - strh r0, [r2, #4] -_080E5FE8: - ldr r0, [r5] - ldr r0, [r0, #8] - strb r4, [r0, #8] - ldr r0, [r5] - ldr r1, [r0, #8] - movs r0, #0xff - strb r0, [r1, #9] - bl WasAtLeastOneOpponentJammed - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080E600A - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 -_080E600A: - adds r6, #0x1c - adds r4, #1 - cmp r4, #3 - ble _080E5FA8 - mov r7, r8 - cmp r7, #0 - bne _080E6026 - ldr r0, _080E6040 - ldr r0, [r0] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x36 - bl SetContestantEffectStringID2 -_080E6026: - ldr r0, _080E6040 - ldr r0, [r0] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x30 - bl SetContestantEffectStringID - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E6040: .4byte gUnknown_2039BD4 - thumb_func_end ContestEffect_BadlyStartleMonsWithGoodAppeals - - thumb_func_start ContestEffect_BetterWhenAudienceExcited -ContestEffect_BetterWhenAudienceExcited: @ 0x080E6044 - push {r4, lr} - ldr r0, _080E6064 - ldr r1, [r0] - ldr r0, [r1] - ldrb r0, [r0, #0x13] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _080E6068 - movs r4, #0xa - ldr r0, [r1, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x1a - bl SetContestantEffectStringID - b _080E60AA - .align 2, 0 -_080E6064: .4byte gUnknown_2039BD4 -_080E6068: - cmp r0, #1 - bne _080E607A - movs r4, #0x14 - ldr r0, [r1, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x1b - bl SetContestantEffectStringID - b _080E60AA -_080E607A: - cmp r0, #2 - bne _080E608C - movs r4, #0x1e - ldr r0, [r1, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x1c - bl SetContestantEffectStringID - b _080E60AA -_080E608C: - cmp r0, #3 - bne _080E609E - movs r4, #0x32 - ldr r0, [r1, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x1d - bl SetContestantEffectStringID - b _080E60AA -_080E609E: - movs r4, #0x3c - ldr r0, [r1, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x1e - bl SetContestantEffectStringID -_080E60AA: - ldr r0, _080E60C4 - ldr r1, [r0] - ldr r0, [r1, #8] - ldrb r2, [r0, #0x11] - ldr r1, [r1, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - strh r4, [r0, #2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E60C4: .4byte gUnknown_2039BD4 - thumb_func_end ContestEffect_BetterWhenAudienceExcited - - thumb_func_start ContestEffect_DontExciteAudience -ContestEffect_DontExciteAudience: @ 0x080E60C8 - push {r4, lr} - ldr r4, _080E610C - ldr r0, [r4] - ldr r2, [r0, #0x10] - ldrb r1, [r2, #1] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080E6106 - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #1] - ldr r0, [r4] - ldr r3, [r0, #0x10] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #7 - ands r1, r0 - lsls r1, r1, #1 - ldrb r2, [r3, #1] - movs r0, #0xf - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #1] - ldr r0, [r4] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x3d - bl SetContestantEffectStringID -_080E6106: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E610C: .4byte gUnknown_2039BD4 - thumb_func_end ContestEffect_DontExciteAudience - - thumb_func_start JamByMoveCategory -JamByMoveCategory: @ 0x080E6110 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r7, #0 - movs r4, #0 - ldr r6, _080E6154 - ldr r0, _080E6158 - mov sb, r0 - movs r5, #0 -_080E612A: - ldr r3, [r6] - ldr r2, [r3, #8] - ldrb r0, [r2, #0x11] - adds r0, r2, r0 - adds r1, r2, r4 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080E617A - ldr r0, [r3, #4] - adds r0, r5, r0 - ldrh r0, [r0, #6] - lsls r0, r0, #3 - add r0, sb - ldrb r0, [r0, #1] - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1d - cmp r8, r0 - bne _080E615C - movs r0, #0x28 - b _080E615E - .align 2, 0 -_080E6154: .4byte gUnknown_2039BD4 -_080E6158: .4byte gUnknown_8565FCC -_080E615C: - movs r0, #0xa -_080E615E: - strh r0, [r2, #4] - ldr r0, [r6] - ldr r0, [r0, #8] - strb r4, [r0, #8] - ldr r0, [r6] - ldr r1, [r0, #8] - movs r0, #0xff - strb r0, [r1, #9] - bl WasAtLeastOneOpponentJammed - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080E617A - adds r7, #1 -_080E617A: - adds r5, #0x1c - adds r4, #1 - cmp r4, #3 - ble _080E612A - cmp r7, #0 - bne _080E6194 - ldr r0, _080E61A0 - ldr r0, [r0] - ldr r0, [r0, #8] - ldrb r0, [r0, #0x11] - movs r1, #0x36 - bl SetContestantEffectStringID2 -_080E6194: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E61A0: .4byte gUnknown_2039BD4 - thumb_func_end JamByMoveCategory - - thumb_func_start CanUnnerveContestant -CanUnnerveContestant: @ 0x080E61A4 - push {lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r2, _080E61D4 - ldr r0, [r2] - ldr r0, [r0, #8] - adds r0, #0xd - adds r0, r0, r3 - movs r1, #1 - strb r1, [r0] - ldr r0, [r2] - ldr r1, [r0, #4] - lsls r0, r3, #3 - subs r0, r0, r3 - lsls r0, r0, #2 - adds r2, r0, r1 - ldrb r1, [r2, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080E61D8 - adds r0, r3, #0 - movs r1, #0x2d - b _080E61FE - .align 2, 0 -_080E61D4: .4byte gUnknown_2039BD4 -_080E61D8: - ldrb r0, [r2, #0x12] - cmp r0, #0 - bne _080E61F6 - ldrb r1, [r2, #0xb] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080E6202 - ldrb r1, [r2, #0xc] - movs r0, #6 - ands r0, r1 - cmp r0, #0 - bne _080E6202 - movs r0, #1 - b _080E6204 -_080E61F6: - subs r0, #1 - strb r0, [r2, #0x12] - adds r0, r3, #0 - movs r1, #0x2c -_080E61FE: - bl SetContestantEffectStringID -_080E6202: - movs r0, #0 -_080E6204: - pop {r1} - bx r1 - thumb_func_end CanUnnerveContestant - - thumb_func_start WasAtLeastOneOpponentJammed -WasAtLeastOneOpponentJammed: @ 0x080E6208 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - mov r0, sp - movs r1, #0 - movs r2, #8 - bl memset - movs r7, #0 - ldr r4, _080E628C - ldr r0, [r4] - ldr r0, [r0, #8] - ldrb r0, [r0, #8] - cmp r0, #0xff - beq _080E62EC - mov r8, r4 -_080E622A: - mov r1, r8 - ldr r0, [r1] - ldr r0, [r0, #8] - adds r0, #8 - adds r0, r0, r7 - ldrb r5, [r0] - adds r6, r5, #0 - adds r0, r5, #0 - bl CanUnnerveContestant - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080E62DA - ldr r2, [r4] - ldr r1, [r2, #8] - ldrh r0, [r1, #4] - strh r0, [r1, #6] - ldr r1, [r2, #4] - lsls r0, r5, #3 - subs r0, r0, r5 - lsls r4, r0, #2 - adds r1, r4, r1 - ldrb r1, [r1, #0x10] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080E626A - ldr r1, [r2, #8] - movs r2, #6 - ldrsh r0, [r1, r2] - lsls r0, r0, #1 - strh r0, [r1, #6] -_080E626A: - mov r0, r8 - ldr r3, [r0] - ldr r0, [r3, #4] - adds r1, r4, r0 - ldrb r0, [r1, #0x10] - movs r4, #1 - ands r4, r0 - cmp r4, #0 - beq _080E6290 - ldr r1, [r3, #8] - movs r0, #0xa - strh r0, [r1, #6] - adds r0, r5, #0 - movs r1, #0x2f - bl SetContestantEffectStringID - b _080E62DA - .align 2, 0 -_080E628C: .4byte gUnknown_2039BD4 -_080E6290: - ldr r2, [r3, #8] - ldrb r1, [r1, #0xf] - ldrh r0, [r2, #6] - subs r0, r0, r1 - strh r0, [r2, #6] - ldr r2, [r3, #8] - ldrh r1, [r2, #6] - movs r3, #6 - ldrsh r0, [r2, r3] - cmp r0, #0 - bgt _080E62B2 - strh r4, [r2, #6] - adds r0, r5, #0 - movs r1, #0x2e - bl SetContestantEffectStringID - b _080E62DA -_080E62B2: - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r6, #0 - bl JamContestant - mov r1, r8 - ldr r0, [r1] - ldr r0, [r0, #8] - ldrb r1, [r0, #6] - adds r0, r6, #0 - bl SetStartledString - lsls r0, r6, #1 - mov r2, sp - adds r1, r2, r0 - mov r3, r8 - ldr r0, [r3] - ldr r0, [r0, #8] - ldrh r0, [r0, #6] - strh r0, [r1] -_080E62DA: - adds r7, #1 - ldr r4, _080E62FC - ldr r0, [r4] - ldr r0, [r0, #8] - adds r0, #8 - adds r0, r0, r7 - ldrb r0, [r0] - cmp r0, #0xff - bne _080E622A -_080E62EC: - movs r7, #0 - mov r1, sp -_080E62F0: - movs r2, #0 - ldrsh r0, [r1, r2] - cmp r0, #0 - beq _080E6300 - movs r0, #1 - b _080E630A - .align 2, 0 -_080E62FC: .4byte gUnknown_2039BD4 -_080E6300: - adds r1, #2 - adds r7, #1 - cmp r7, #3 - ble _080E62F0 - movs r0, #0 -_080E630A: - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end WasAtLeastOneOpponentJammed - - thumb_func_start JamContestant -JamContestant: @ 0x080E6318 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _080E6348 - ldr r4, [r2] - ldr r3, [r4, #4] - lsls r2, r0, #3 - subs r2, r2, r0 - lsls r2, r2, #2 - adds r3, r2, r3 - ldrh r0, [r3, #2] - subs r0, r0, r1 - strh r0, [r3, #2] - ldr r0, [r4, #4] - adds r2, r2, r0 - ldrb r0, [r2, #0xe] - adds r1, r1, r0 - strb r1, [r2, #0xe] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E6348: .4byte gUnknown_2039BD4 - thumb_func_end JamContestant - - thumb_func_start RoundTowardsZero -RoundTowardsZero: @ 0x080E634C - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - asrs r4, r0, #0x10 - adds r0, r4, #0 - cmp r4, #0 - bge _080E635C - rsbs r0, r4, #0 -_080E635C: - movs r1, #0xa - bl __modsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r4, #0 - bge _080E637A - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - cmp r1, #0 - beq _080E6384 - adds r0, r4, #0 - subs r0, #0xa - adds r0, r1, r0 - b _080E6380 -_080E637A: - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - subs r0, r4, r0 -_080E6380: - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_080E6384: - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end RoundTowardsZero - - thumb_func_start RoundUp -RoundUp: @ 0x080E6390 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - asrs r4, r0, #0x10 - adds r0, r4, #0 - cmp r4, #0 - bge _080E63A0 - rsbs r0, r4, #0 -_080E63A0: - movs r1, #0xa - bl __modsi3 - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - cmp r1, #0 - beq _080E63B8 - adds r0, r4, #0 - adds r0, #0xa - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_080E63B8: - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end RoundUp - - thumb_func_start RecordMixingPlayerSpotTriggered -RecordMixingPlayerSpotTriggered: @ 0x080E63C4 - push {lr} - ldr r0, _080E63D0 - bl sub_080B2F30 - pop {r0} - bx r0 - .align 2, 0 -_080E63D0: .4byte Task_RecordMixing_Main - thumb_func_end RecordMixingPlayerSpotTriggered - - thumb_func_start SetSrcLookupPointers -SetSrcLookupPointers: @ 0x080E63D4 - push {r4, lr} - ldr r2, _080E642C - ldr r0, _080E6430 - ldr r1, [r0] - ldr r3, _080E6434 - adds r0, r1, r3 - str r0, [r2] - ldr r2, _080E6438 - ldr r4, _080E643C - adds r0, r1, r4 - str r0, [r2] - ldr r2, _080E6440 - ldr r3, _080E6444 - adds r0, r1, r3 - str r0, [r2] - ldr r2, _080E6448 - ldr r4, _080E644C - adds r0, r1, r4 - str r0, [r2] - ldr r2, _080E6450 - ldr r3, _080E6454 - adds r0, r1, r3 - str r0, [r2] - ldr r2, _080E6458 - ldr r0, _080E645C - str r0, [r2] - ldr r2, _080E6460 - ldr r0, _080E6464 - ldr r0, [r0] - ldr r4, _080E6468 - adds r3, r0, r4 - str r3, [r2] - ldr r2, _080E646C - ldr r4, _080E6470 - adds r1, r1, r4 - str r1, [r2] - ldr r1, _080E6474 - adds r0, #0xdc - str r0, [r1] - ldr r0, _080E6478 - str r3, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E642C: .4byte gUnknown_3001134 -_080E6430: .4byte gUnknown_3005AEC -_080E6434: .4byte 0x00001A9C -_080E6438: .4byte gUnknown_3001138 -_080E643C: .4byte 0x000027CC -_080E6440: .4byte gUnknown_300113C -_080E6444: .4byte 0x00002B50 -_080E6448: .4byte gUnknown_3001140 -_080E644C: .4byte 0x00002E28 -_080E6450: .4byte gUnknown_3001144 -_080E6454: .4byte 0x00002E68 -_080E6458: .4byte gUnknown_3001148 -_080E645C: .4byte gUnknown_2039C3C -_080E6460: .4byte gUnknown_300114C -_080E6464: .4byte gUnknown_3005AF0 -_080E6468: .4byte 0x0000064C -_080E646C: .4byte gUnknown_3001150 -_080E6470: .4byte 0x00003B58 -_080E6474: .4byte gUnknown_3001154 -_080E6478: .4byte gUnknown_3001158 - thumb_func_end SetSrcLookupPointers - - thumb_func_start PrepareUnknownExchangePacket -PrepareUnknownExchangePacket: @ 0x080E647C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _080E6500 - ldr r1, [r0] - movs r4, #0xc8 - lsls r4, r4, #4 - adds r0, r5, #0 - adds r2, r4, #0 - bl memcpy - adds r4, r5, r4 - ldr r0, _080E6504 - ldr r1, [r0] - movs r2, #0xe1 - lsls r2, r2, #2 - adds r0, r4, #0 - bl memcpy - adds r0, r4, #0 - bl sub_080F1CE4 - ldr r1, _080E6508 - adds r0, r5, r1 - ldr r1, _080E650C - ldr r1, [r1] - movs r2, #0x40 - bl memcpy - ldr r2, _080E6510 - adds r0, r5, r2 - ldr r1, _080E6514 - ldr r1, [r1] - movs r2, #0x40 - bl memcpy - ldr r1, _080E6518 - adds r0, r5, r1 - ldr r1, _080E651C - ldr r1, [r1] - movs r2, #0x28 - bl memcpy - ldr r2, _080E6520 - adds r0, r5, r2 - bl sub_080E81E0 - ldr r0, _080E6524 - ldr r0, [r0] - ldr r2, _080E6528 - adds r1, r5, r2 - bl sub_08165820 - bl GetMultiplayerId - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080E64F8 - bl GetRecordMixingGift - ldr r2, _080E652C - adds r1, r5, r2 - strh r0, [r1] -_080E64F8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080E6500: .4byte gUnknown_3001134 -_080E6504: .4byte gUnknown_3001138 -_080E6508: .4byte 0x00001004 -_080E650C: .4byte gUnknown_300113C -_080E6510: .4byte 0x00001044 -_080E6514: .4byte gUnknown_3001140 -_080E6518: .4byte 0x00001084 -_080E651C: .4byte gUnknown_3001144 -_080E6520: .4byte 0x000010AC -_080E6524: .4byte gUnknown_300114C -_080E6528: .4byte 0x00001124 -_080E652C: .4byte 0x000011C8 - thumb_func_end PrepareUnknownExchangePacket - - thumb_func_start sub_080E6530 -sub_080E6530: @ 0x080E6530 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _080E65D4 - ldr r1, [r0] - movs r4, #0xc8 - lsls r4, r4, #4 - adds r0, r5, #0 - adds r2, r4, #0 - bl memcpy - adds r0, r5, #0 - bl ClearJapaneseSecretBases - adds r4, r5, r4 - ldr r0, _080E65D8 - ldr r1, [r0] - movs r2, #0xe1 - lsls r2, r2, #2 - adds r0, r4, #0 - bl memcpy - adds r0, r4, #0 - movs r1, #2 - bl sub_080F1A40 - ldr r1, _080E65DC - adds r0, r5, r1 - ldr r1, _080E65E0 - ldr r1, [r1] - movs r2, #0x40 - bl memcpy - ldr r2, _080E65E4 - adds r4, r5, r2 - ldr r0, _080E65E8 - ldr r1, [r0] - adds r0, r4, #0 - movs r2, #0x40 - bl memcpy - adds r0, r4, #0 - bl sub_08120E2C - ldr r1, _080E65EC - adds r0, r5, r1 - ldr r1, _080E65F0 - ldr r1, [r1] - movs r2, #0x28 - bl memcpy - ldr r2, _080E65F4 - adds r4, r5, r2 - adds r0, r4, #0 - bl sub_080E81E0 - adds r0, r4, #0 - bl sub_080E823C - ldr r0, _080E65F8 - adds r4, r5, r0 - ldr r0, _080E65FC - ldr r1, [r0] - adds r0, r4, #0 - bl sub_08165820 - adds r0, r4, #0 - bl sub_080E8290 - bl GetMultiplayerId - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080E65CC - bl GetRecordMixingGift - ldr r2, _080E6600 - adds r1, r5, r2 - strh r0, [r1] -_080E65CC: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080E65D4: .4byte gUnknown_3001134 -_080E65D8: .4byte gUnknown_3001138 -_080E65DC: .4byte 0x00001004 -_080E65E0: .4byte gUnknown_300113C -_080E65E4: .4byte 0x00001044 -_080E65E8: .4byte gUnknown_3001140 -_080E65EC: .4byte 0x00001084 -_080E65F0: .4byte gUnknown_3001144 -_080E65F4: .4byte 0x000010AC -_080E65F8: .4byte 0x00001124 -_080E65FC: .4byte gUnknown_300114C -_080E6600: .4byte 0x000011C8 - thumb_func_end sub_080E6530 - - thumb_func_start PrepareExchangePacket -PrepareExchangePacket: @ 0x080E6604 - push {r4, r5, lr} - bl SetPlayerSecretBaseParty - bl sub_080F1694 - bl SetSrcLookupPointers - bl Link_AnyPartnersPlayingRubyOrSapphire - cmp r0, #0 - beq _080E6640 - bl sub_08009BD4 - cmp r0, #0 - bne _080E6630 - ldr r0, _080E662C - ldr r0, [r0] - bl PrepareUnknownExchangePacket - b _080E66EA - .align 2, 0 -_080E662C: .4byte gUnknown_2039CB8 -_080E6630: - ldr r0, _080E663C - ldr r0, [r0] - bl sub_080E6530 - b _080E66EA - .align 2, 0 -_080E663C: .4byte gUnknown_2039CB8 -_080E6640: - ldr r5, _080E66F0 - ldr r0, [r5] - ldr r1, _080E66F4 - ldr r1, [r1] - movs r4, #0xc8 - lsls r4, r4, #4 - adds r2, r4, #0 - bl memcpy - ldr r0, [r5] - adds r0, r0, r4 - ldr r1, _080E66F8 - ldr r1, [r1] - movs r2, #0xe1 - lsls r2, r2, #2 - bl memcpy - ldr r0, [r5] - ldr r1, _080E66FC - adds r0, r0, r1 - ldr r1, _080E6700 - ldr r1, [r1] - movs r2, #0x40 - bl memcpy - ldr r0, [r5] - ldr r2, _080E6704 - adds r0, r0, r2 - ldr r1, _080E6708 - ldr r1, [r1] - movs r2, #0x40 - bl memcpy - ldr r0, [r5] - ldr r1, _080E670C - adds r0, r0, r1 - ldr r1, _080E6710 - ldr r1, [r1] - movs r2, #0x40 - bl memcpy - ldr r0, [r5] - ldr r2, _080E6714 - adds r0, r0, r2 - ldr r1, _080E6718 - ldr r1, [r1] - movs r2, #0x28 - bl memcpy - ldr r0, [r5] - ldr r1, _080E671C - adds r0, r0, r1 - bl sub_080E81E0 - ldr r0, [r5] - ldr r2, _080E6720 - adds r0, r0, r2 - ldr r1, _080E6724 - ldr r1, [r1] - movs r2, #0xec - bl memcpy - bl GetMultiplayerId - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080E66D2 - bl GetRecordMixingGift - ldr r1, [r5] - ldr r2, _080E6728 - adds r1, r1, r2 - strh r0, [r1] -_080E66D2: - ldr r0, [r5] - ldr r1, _080E672C - adds r0, r0, r1 - ldr r1, _080E6730 - ldr r1, [r1] - bl sub_080E78F8 - ldr r0, [r5] - ldr r2, _080E6734 - adds r0, r0, r2 - bl GetPlayerHallRecords -_080E66EA: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080E66F0: .4byte gUnknown_2039CB8 -_080E66F4: .4byte gUnknown_3001134 -_080E66F8: .4byte gUnknown_3001138 -_080E66FC: .4byte 0x00001004 -_080E6700: .4byte gUnknown_300113C -_080E6704: .4byte 0x00001044 -_080E6708: .4byte gUnknown_3001140 -_080E670C: .4byte 0x00001214 -_080E6710: .4byte gUnknown_3001150 -_080E6714: .4byte 0x00001084 -_080E6718: .4byte gUnknown_3001144 -_080E671C: .4byte 0x000010AC -_080E6720: .4byte 0x00001124 -_080E6724: .4byte gUnknown_300114C -_080E6728: .4byte 0x00001210 -_080E672C: .4byte 0x00001254 -_080E6730: .4byte gUnknown_3001154 -_080E6734: .4byte 0x000012DC - thumb_func_end PrepareExchangePacket - - thumb_func_start ReceiveExchangePacket -ReceiveExchangePacket: @ 0x080E6738 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r4, r0, #0 - bl Link_AnyPartnersPlayingRubyOrSapphire - cmp r0, #0 - beq _080E67EC - ldr r5, _080E67CC - ldr r0, [r5] - movs r1, #0xc8 - lsls r1, r1, #4 - mov r8, r1 - add r0, r8 - bl sub_080E72FC - ldr r0, [r5] - ldr r6, _080E67D0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r1, r6, #0 - adds r2, r4, #0 - bl ReceiveSecretBasesData - ldr r3, [r5] - ldr r1, _080E67D4 - adds r0, r3, r1 - add r3, r8 - adds r1, r6, #0 - adds r2, r4, #0 - bl sub_080E7330 - ldr r0, [r5] - ldr r1, _080E67D8 - adds r0, r0, r1 - adds r1, r6, #0 - adds r2, r4, #0 - bl sub_080E711C - ldr r0, [r5] - add r0, r8 - adds r1, r6, #0 - adds r2, r4, #0 - bl sub_080F0CB4 - ldr r0, [r5] - ldr r1, _080E67DC - adds r0, r0, r1 - adds r1, r6, #0 - adds r2, r4, #0 - bl ReceivePokeNewsData - ldr r0, [r5] - ldr r1, _080E67E0 - adds r0, r0, r1 - adds r1, r6, #0 - adds r2, r4, #0 - bl sub_080E709C - ldr r0, [r5] - ldr r1, _080E67E4 - adds r0, r0, r1 - adds r1, r6, #0 - adds r2, r4, #0 - bl ReceiveEasyChatPairsData - ldr r0, [r5] - ldr r1, _080E67E8 - adds r0, r0, r1 - adds r1, r4, #0 - bl ReceiveGiftItem - b _080E6896 - .align 2, 0 -_080E67CC: .4byte gUnknown_2039CB4 -_080E67D0: .4byte 0x00001230 -_080E67D4: .4byte 0x000010AC -_080E67D8: .4byte 0x00001124 -_080E67DC: .4byte 0x00001004 -_080E67E0: .4byte 0x00001044 -_080E67E4: .4byte 0x00001084 -_080E67E8: .4byte 0x000011C8 -_080E67EC: - ldr r5, _080E68A0 - ldr r0, [r5] - movs r1, #0xc8 - lsls r1, r1, #4 - mov r8, r1 - add r0, r8 - bl sub_080E72FC - ldr r0, [r5] - ldr r6, _080E68A4 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r1, r6, #0 - adds r2, r4, #0 - bl ReceiveSecretBasesData - ldr r0, [r5] - add r0, r8 - adds r1, r6, #0 - adds r2, r4, #0 - bl sub_080F0CB4 - ldr r0, [r5] - ldr r1, _080E68A8 - adds r0, r0, r1 - adds r1, r6, #0 - adds r2, r4, #0 - bl ReceivePokeNewsData - ldr r0, [r5] - ldr r1, _080E68AC - adds r0, r0, r1 - adds r1, r6, #0 - adds r2, r4, #0 - bl sub_080E709C - ldr r0, [r5] - ldr r1, _080E68B0 - adds r0, r0, r1 - adds r1, r6, #0 - adds r2, r4, #0 - bl ReceiveEasyChatPairsData - ldr r3, [r5] - ldr r1, _080E68B4 - adds r0, r3, r1 - add r3, r8 - adds r1, r6, #0 - adds r2, r4, #0 - bl sub_080E7330 - ldr r0, [r5] - ldr r1, _080E68B8 - adds r0, r0, r1 - adds r1, r6, #0 - adds r2, r4, #0 - bl sub_080E711C - ldr r0, [r5] - ldr r1, _080E68BC - adds r0, r0, r1 - adds r1, r4, #0 - bl ReceiveGiftItem - ldr r0, [r5] - ldr r1, _080E68C0 - adds r0, r0, r1 - adds r1, r6, #0 - adds r2, r4, #0 - bl ReceiveLilycoveLadyData - ldr r0, [r5] - ldr r1, _080E68C4 - adds r0, r0, r1 - adds r1, r6, #0 - adds r2, r4, #0 - bl ReceiveApprenticeData - ldr r0, [r5] - ldr r1, _080E68C8 - adds r0, r0, r1 - adds r1, r6, #0 - adds r2, r4, #0 - bl ReceiveRankingHallRecords -_080E6896: - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080E68A0: .4byte gUnknown_2039CB4 -_080E68A4: .4byte 0x00001444 -_080E68A8: .4byte 0x00001004 -_080E68AC: .4byte 0x00001044 -_080E68B0: .4byte 0x00001084 -_080E68B4: .4byte 0x000010AC -_080E68B8: .4byte 0x00001124 -_080E68BC: .4byte 0x00001210 -_080E68C0: .4byte 0x00001214 -_080E68C4: .4byte 0x00001254 -_080E68C8: .4byte 0x000012DC - thumb_func_end ReceiveExchangePacket - - thumb_func_start PrintTextOnRecordMixing -PrintTextOnRecordMixing: @ 0x080E68CC - push {r4, lr} - sub sp, #0xc - adds r4, r0, #0 - movs r0, #0 - movs r1, #0 - bl sub_08196FB8 - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - movs r1, #1 - adds r2, r4, #0 - movs r3, #0 - bl AddTextPrinterParameterized - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PrintTextOnRecordMixing - - thumb_func_start Task_RecordMixing_SoundEffect -Task_RecordMixing_SoundEffect: @ 0x080E6900 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080E6930 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x32 - bne _080E6928 - movs r0, #0xe2 - bl sub_080A306C - movs r0, #0 - strh r0, [r4, #8] -_080E6928: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E6930: .4byte gUnknown_3005B60 - thumb_func_end Task_RecordMixing_SoundEffect - - thumb_func_start Task_RecordMixing_Main -Task_RecordMixing_Main: @ 0x080E6934 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _080E6958 - adds r5, r0, r1 - movs r1, #0 - ldrsh r0, [r5, r1] - cmp r0, #5 - bls _080E694E - b _080E6AE2 -_080E694E: - lsls r0, r0, #2 - ldr r1, _080E695C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E6958: .4byte gUnknown_3005B68 -_080E695C: .4byte _080E6960 -_080E6960: @ jump table - .4byte _080E6978 @ case 0 - .4byte _080E69F0 @ case 1 - .4byte _080E6A24 @ case 2 - .4byte _080E6A44 @ case 3 - .4byte _080E6A84 @ case 4 - .4byte _080E6A98 @ case 5 -_080E6978: - ldr r4, _080E69D0 - ldr r0, _080E69D4 - bl sub_08000BC8 - str r0, [r4] - ldr r4, _080E69D8 - ldr r0, _080E69DC - bl sub_08000BC8 - str r0, [r4] - ldr r0, _080E69E0 - ldrb r0, [r0] - bl SetLocalLinkPlayerId - movs r0, #0x80 - lsls r0, r0, #7 - movs r1, #1 - bl VarSet - ldr r1, _080E69E4 - movs r0, #0 - strb r0, [r1] - bl PrepareExchangePacket - bl CreateRecordMixingSprite - movs r0, #1 - strh r0, [r5] - ldr r0, _080E69E8 - movs r1, #0x50 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x14] - ldr r0, _080E69EC - movs r1, #0x51 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x1e] - b _080E6AE2 - .align 2, 0 -_080E69D0: .4byte gUnknown_2039CB8 -_080E69D4: .4byte 0x00001444 -_080E69D8: .4byte gUnknown_2039CB4 -_080E69DC: .4byte 0x00005110 -_080E69E0: .4byte gUnknown_2037282 -_080E69E4: .4byte gUnknown_3001130 -_080E69E8: .4byte Task_MixingRecordsRecv -_080E69EC: .4byte Task_RecordMixing_SoundEffect -_080E69F0: - ldr r2, _080E6A1C - movs r0, #0x14 - ldrsh r1, [r5, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrb r0, [r0, #4] - cmp r0, #0 - bne _080E6AE2 - movs r0, #2 - strh r0, [r5] - ldr r0, _080E6A20 - bl FlagSet - bl DestroyRecordMixingSprite - ldrb r0, [r5, #0x1e] - bl DestroyTask - b _080E6AE2 - .align 2, 0 -_080E6A1C: .4byte gUnknown_3005B60 -_080E6A20: .4byte 0x00000894 -_080E6A24: - ldr r0, _080E6A40 - movs r1, #0xa - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x14] - movs r0, #3 - strh r0, [r5] - movs r0, #0xe0 - bl sub_080A306C - b _080E6AE2 - .align 2, 0 -_080E6A40: .4byte Task_DoRecordMixing -_080E6A44: - ldr r2, _080E6A78 - movs r0, #0x14 - ldrsh r1, [r5, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrb r4, [r0, #4] - cmp r4, #0 - bne _080E6AE2 - movs r0, #4 - strh r0, [r5] - ldr r0, _080E6A7C - ldrb r0, [r0] - cmp r0, #0 - bne _080E6A6E - bl sub_080B27FC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x14] -_080E6A6E: - ldr r0, _080E6A80 - bl PrintTextOnRecordMixing - strh r4, [r5, #0x10] - b _080E6AE2 - .align 2, 0 -_080E6A78: .4byte gUnknown_3005B60 -_080E6A7C: .4byte gUnknown_300319C -_080E6A80: .4byte gUnknown_8566CB1 -_080E6A84: - ldrh r0, [r5, #0x10] - adds r0, #1 - strh r0, [r5, #0x10] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3c - ble _080E6AE2 - movs r0, #5 - strh r0, [r5] - b _080E6AE2 -_080E6A98: - ldr r2, _080E6AE8 - movs r0, #0x14 - ldrsh r1, [r5, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrb r0, [r0, #4] - cmp r0, #0 - bne _080E6AE2 - ldr r0, _080E6AEC - ldr r0, [r0] - bl Free - ldr r0, _080E6AF0 - ldr r0, [r0] - bl Free - bl sub_08086C00 - ldr r0, _080E6AF4 - ldrb r0, [r0] - cmp r0, #0 - beq _080E6AD0 - ldr r0, _080E6AF8 - movs r1, #0xa - bl CreateTask -_080E6AD0: - movs r0, #0 - movs r1, #1 - bl sub_08197028 - adds r0, r4, #0 - bl DestroyTask - bl EnableBothScriptContexts -_080E6AE2: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080E6AE8: .4byte gUnknown_3005B60 -_080E6AEC: .4byte gUnknown_2039CB4 -_080E6AF0: .4byte gUnknown_2039CB8 -_080E6AF4: .4byte gUnknown_300319C -_080E6AF8: .4byte sub_080AEBB0 - thumb_func_end Task_RecordMixing_Main - - thumb_func_start Task_MixingRecordsRecv -Task_MixingRecordsRecv: @ 0x080E6AFC - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r6, _080E6B28 - adds r5, r0, r6 - movs r0, #8 - ldrsh r1, [r5, r0] - cmp r1, #0x64 - beq _080E6B78 - cmp r1, #0x64 - bgt _080E6B3A - cmp r1, #1 - bne _080E6B1E - b _080E6C3C -_080E6B1E: - cmp r1, #1 - bgt _080E6B2C - cmp r1, #0 - beq _080E6B5C - b _080E6D3E - .align 2, 0 -_080E6B28: .4byte gUnknown_3005B60 -_080E6B2C: - cmp r1, #2 - bne _080E6B32 - b _080E6C68 -_080E6B32: - cmp r1, #5 - bne _080E6B38 - b _080E6D28 -_080E6B38: - b _080E6D3E -_080E6B3A: - cmp r1, #0xc9 - beq _080E6BD0 - cmp r1, #0xc9 - bgt _080E6B48 - cmp r1, #0x65 - beq _080E6B90 - b _080E6D3E -_080E6B48: - ldr r0, _080E6B58 - cmp r1, r0 - beq _080E6C0A - adds r0, #0x63 - cmp r1, r0 - beq _080E6C22 - b _080E6D3E - .align 2, 0 -_080E6B58: .4byte 0x0000012D -_080E6B5C: - ldr r0, _080E6B74 - bl PrintTextOnRecordMixing - movs r0, #0xe1 - lsls r0, r0, #3 - strh r0, [r5, #0x18] - movs r0, #0xc8 - lsls r0, r0, #1 - strh r0, [r5, #8] - bl sub_08009B44 - b _080E6D3E - .align 2, 0 -_080E6B74: .4byte gUnknown_8566CA4 -_080E6B78: - ldrh r0, [r5, #0x20] - adds r0, #1 - strh r0, [r5, #0x20] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x14 - bgt _080E6B88 - b _080E6D3E -_080E6B88: - movs r0, #0 - strh r0, [r5, #0x20] - movs r0, #0x65 - b _080E6D3C -_080E6B90: - bl GetLinkPlayerCount_2 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl IsLinkMaster - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080E6BC2 - bl sub_0800A60C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - beq _080E6BB2 - b _080E6D3E -_080E6BB2: - movs r0, #0x15 - bl sub_080A306C - movs r1, #0 - movs r0, #0xc9 - strh r0, [r5, #8] - strh r1, [r5, #0x20] - b _080E6D3E -_080E6BC2: - movs r0, #0x16 - bl sub_080A306C - ldr r0, _080E6BCC - b _080E6D3C - .align 2, 0 -_080E6BCC: .4byte 0x0000012D -_080E6BD0: - bl sub_0800A60C - adds r4, r0, #0 - bl GetLinkPlayerCount_2 - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - beq _080E6BE4 - b _080E6D3E -_080E6BE4: - ldrh r4, [r5, #0x20] - adds r4, #1 - strh r4, [r5, #0x20] - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - bl GetLinkPlayerCount_2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - subs r1, r1, r0 - lsls r1, r1, #1 - cmp r4, r1 - bgt _080E6C02 - b _080E6D3E -_080E6C02: - bl CheckShouldAdvanceLinkState - movs r0, #1 - b _080E6D3C -_080E6C0A: - bl sub_0800A60C - adds r4, r0, #0 - bl GetLinkPlayerCount_2 - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - beq _080E6C1E - b _080E6D3E -_080E6C1E: - movs r0, #1 - b _080E6D3C -_080E6C22: - ldrh r0, [r5, #0x20] - adds r0, #1 - strh r0, [r5, #0x20] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x14 - bgt _080E6C32 - b _080E6D3E -_080E6C32: - movs r0, #1 - strh r0, [r5, #8] - movs r0, #0 - strh r0, [r5, #0x20] - b _080E6D3E -_080E6C3C: - ldr r0, _080E6C60 - ldrb r0, [r0] - cmp r0, #0 - bne _080E6C46 - b _080E6D3E -_080E6C46: - ldr r4, _080E6C64 - bl sub_080E6FE8 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - movs r0, #5 - b _080E6D3C - .align 2, 0 -_080E6C60: .4byte gUnknown_30031C4 -_080E6C64: .4byte gUnknown_2021C40 -_080E6C68: - bl GetLinkPlayerCount_2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - strh r0, [r5, #0x14] - strh r1, [r5, #8] - bl sub_080E6FE8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x12] - ldr r0, _080E6CC4 - str r0, [r5] - bl Link_AnyPartnersPlayingRubyOrSapphire - cmp r0, #0 - beq _080E6CDC - ldr r0, _080E6CC8 - ldr r0, [r0] - adds r1, r5, #0 - adds r1, #0xc - bl StorePtrInTaskData - ldr r0, _080E6CCC - movs r1, #0x50 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x1c] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r0, r1, r6 - strh r4, [r0, #8] - ldr r0, _080E6CD0 - ldr r0, [r0] - adds r1, r6, r1 - adds r1, #0x12 - bl StorePtrInTaskData - ldr r1, _080E6CD4 - ldr r0, _080E6CD8 - str r0, [r1] - b _080E6D3E - .align 2, 0 -_080E6CC4: .4byte Task_SendPacket -_080E6CC8: .4byte gUnknown_2039CB8 -_080E6CCC: .4byte Task_CopyReceiveBuffer -_080E6CD0: .4byte gUnknown_2039CB4 -_080E6CD4: .4byte gUnknown_300115C -_080E6CD8: .4byte 0x00001230 -_080E6CDC: - ldr r0, _080E6D14 - ldr r0, [r0] - adds r1, r5, #0 - adds r1, #0xc - bl StorePtrInTaskData - ldr r0, _080E6D18 - movs r1, #0x50 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x1c] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r0, r1, r6 - strh r4, [r0, #8] - ldr r0, _080E6D1C - ldr r0, [r0] - adds r1, r6, r1 - adds r1, #0x12 - bl StorePtrInTaskData - ldr r1, _080E6D20 - ldr r0, _080E6D24 - str r0, [r1] - b _080E6D3E - .align 2, 0 -_080E6D14: .4byte gUnknown_2039CB8 -_080E6D18: .4byte Task_CopyReceiveBuffer -_080E6D1C: .4byte gUnknown_2039CB4 -_080E6D20: .4byte gUnknown_300115C -_080E6D24: .4byte 0x00001444 -_080E6D28: - ldrh r0, [r5, #0x1c] - adds r0, #1 - strh r0, [r5, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3c - ble _080E6D3E - movs r0, #0 - strh r0, [r5, #0x1c] - movs r0, #2 -_080E6D3C: - strh r0, [r5, #8] -_080E6D3E: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end Task_MixingRecordsRecv - - thumb_func_start Task_SendPacket -Task_SendPacket: @ 0x080E6D44 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080E6D68 - adds r5, r1, r0 - movs r2, #8 - ldrsh r1, [r5, r2] - adds r2, r0, #0 - cmp r1, #4 - bhi _080E6DFC - lsls r0, r1, #2 - ldr r1, _080E6D6C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E6D68: .4byte gUnknown_3005B60 -_080E6D6C: .4byte _080E6D70 -_080E6D70: @ jump table - .4byte _080E6D84 @ case 0 - .4byte _080E6DA8 @ case 1 - .4byte _080E6DFC @ case 2 - .4byte _080E6DBA @ case 3 - .4byte _080E6DE6 @ case 4 -_080E6D84: - adds r0, r5, #0 - adds r0, #0xc - bl LoadPtrFromTaskData - adds r1, r0, #0 - movs r0, #0x10 - ldrsh r2, [r5, r0] - movs r0, #0xc8 - muls r0, r2, r0 - adds r1, r1, r0 - ldr r0, _080E6DA4 - movs r2, #0xc8 - bl memcpy - b _080E6DD4 - .align 2, 0 -_080E6DA4: .4byte gUnknown_202257C -_080E6DA8: - bl GetMultiplayerId - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080E6DD4 - movs r0, #1 - bl sub_0800A09C - b _080E6DD4 -_080E6DBA: - ldrh r0, [r5, #0x10] - adds r0, #1 - strh r0, [r5, #0x10] - movs r1, #0x10 - ldrsh r4, [r5, r1] - ldr r0, _080E6DDC - ldr r0, [r0] - movs r1, #0xc8 - bl __udivsi3 - adds r0, #1 - cmp r4, r0 - bne _080E6DE0 -_080E6DD4: - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - b _080E6DFC - .align 2, 0 -_080E6DDC: .4byte gUnknown_300115C -_080E6DE0: - movs r0, #0 - strh r0, [r5, #8] - b _080E6DFC -_080E6DE6: - movs r1, #0x1c - ldrsh r0, [r5, r1] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldrb r0, [r1, #4] - cmp r0, #0 - bne _080E6DFC - ldr r0, _080E6E04 - str r0, [r5] -_080E6DFC: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080E6E04: .4byte Task_SendPacket_SwitchToReceive - thumb_func_end Task_SendPacket - - thumb_func_start Task_CopyReceiveBuffer -Task_CopyReceiveBuffer: @ 0x080E6E08 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - lsls r0, r0, #2 - ldr r1, [sp] - adds r0, r0, r1 - lsls r0, r0, #3 - ldr r1, _080E6E4C - adds r0, r0, r1 - mov sl, r0 - bl GetBlockReceivedStatus - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - movs r2, #0 - str r2, [sp, #8] - bl sub_0800A59C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, [sp, #4] - cmp r3, r0 - bne _080E6F16 - movs r4, #0 - mov r8, r4 - b _080E6EF4 - .align 2, 0 -_080E6E4C: .4byte gUnknown_3005B60 -_080E6E50: - ldr r1, [sp, #4] - mov r0, r8 - asrs r1, r0 - movs r0, #1 - ands r1, r0 - movs r2, #1 - add r2, r8 - mov sb, r2 - cmp r1, #0 - beq _080E6EEC - mov r0, sl - adds r0, #0x12 - bl LoadPtrFromTaskData - mov r3, sb - lsls r4, r3, #1 - mov r5, sl - adds r5, #8 - adds r4, r5, r4 - movs r2, #0 - ldrsh r1, [r4, r2] - movs r7, #0xc8 - muls r1, r7, r1 - adds r0, r0, r1 - ldr r3, _080E6EB0 - ldr r1, [r3] - mov r2, r8 - muls r2, r1, r2 - adds r1, r2, #0 - adds r6, r0, r1 - mov r0, r8 - bl GetPlayerRecvBuffer - adds r1, r0, #0 - movs r3, #0 - ldrsh r2, [r4, r3] - adds r0, r2, #1 - muls r0, r7, r0 - ldr r4, _080E6EB0 - ldr r3, [r4] - cmp r0, r3 - bls _080E6EB4 - muls r2, r7, r2 - subs r2, r3, r2 - adds r0, r6, #0 - bl memcpy - b _080E6EBC - .align 2, 0 -_080E6EB0: .4byte gUnknown_300115C -_080E6EB4: - adds r0, r6, #0 - movs r2, #0xc8 - bl memcpy -_080E6EBC: - mov r0, r8 - bl ResetBlockReceivedFlag - mov r0, sb - lsls r1, r0, #1 - adds r1, r5, r1 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - movs r2, #0 - ldrsh r4, [r1, r2] - ldr r3, _080E6F3C - ldr r0, [r3] - movs r1, #0xc8 - bl __udivsi3 - adds r0, #1 - cmp r4, r0 - bne _080E6EEC - ldr r0, [sp, #8] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #8] -_080E6EEC: - mov r4, sb - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 -_080E6EF4: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r8, r0 - blo _080E6E50 - ldr r2, _080E6F40 - mov r0, sl - movs r3, #8 - ldrsh r1, [r0, r3] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrh r1, [r0, #8] - adds r1, #1 - strh r1, [r0, #8] -_080E6F16: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, [sp, #8] - cmp r4, r0 - bne _080E6F2A - ldr r0, [sp] - bl DestroyTask -_080E6F2A: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E6F3C: .4byte gUnknown_300115C -_080E6F40: .4byte gUnknown_3005B60 - thumb_func_end Task_CopyReceiveBuffer - - thumb_func_start sub_080E6F44 -sub_080E6F44: @ 0x080E6F44 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #3 - ldr r2, _080E6F74 - adds r0, r0, r2 - movs r4, #0x1c - ldrsh r1, [r0, r4] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrb r0, [r0, #4] - cmp r0, #0 - bne _080E6F6C - adds r0, r3, #0 - bl DestroyTask -_080E6F6C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E6F74: .4byte gUnknown_3005B60 - thumb_func_end sub_080E6F44 - - thumb_func_start Task_ReceivePacket -Task_ReceivePacket: @ 0x080E6F78 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080E6FA0 - adds r1, r1, r0 - ldr r0, _080E6FA4 - str r0, [r1] - ldr r0, _080E6FA8 - ldrb r0, [r0] - cmp r0, #1 - bne _080E6F9C - movs r2, #0x12 - ldrsh r0, [r1, r2] - bl ReceiveExchangePacket -_080E6F9C: - pop {r0} - bx r0 - .align 2, 0 -_080E6FA0: .4byte gUnknown_3005B60 -_080E6FA4: .4byte sub_080E6F44 -_080E6FA8: .4byte gUnknown_3001130 - thumb_func_end Task_ReceivePacket - - thumb_func_start Task_SendPacket_SwitchToReceive -Task_SendPacket_SwitchToReceive: @ 0x080E6FAC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080E6FC8 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r0, _080E6FCC - str r0, [r1] - ldr r1, _080E6FD0 - movs r0, #1 - strb r0, [r1] - bx lr - .align 2, 0 -_080E6FC8: .4byte gUnknown_3005B60 -_080E6FCC: .4byte Task_ReceivePacket -_080E6FD0: .4byte gUnknown_3001130 - thumb_func_end Task_SendPacket_SwitchToReceive - - thumb_func_start LoadPtrFromTaskData -LoadPtrFromTaskData: @ 0x080E6FD4 - adds r1, r0, #0 - ldrh r0, [r1] - ldrh r1, [r1, #2] - lsls r1, r1, #0x10 - orrs r0, r1 - bx lr - thumb_func_end LoadPtrFromTaskData - - thumb_func_start StorePtrInTaskData -StorePtrInTaskData: @ 0x080E6FE0 - strh r0, [r1] - lsrs r0, r0, #0x10 - strh r0, [r1, #2] - bx lr - thumb_func_end StorePtrInTaskData - - thumb_func_start sub_080E6FE8 -sub_080E6FE8: @ 0x080E6FE8 - push {lr} - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080E6FE8 - - thumb_func_start GetPlayerRecvBuffer -GetPlayerRecvBuffer: @ 0x080E6FF8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x10 - ldr r1, _080E7004 - adds r0, r0, r1 - bx lr - .align 2, 0 -_080E7004: .4byte gUnknown_202207C - thumb_func_end GetPlayerRecvBuffer - - thumb_func_start ShufflePlayerIndices -ShufflePlayerIndices: @ 0x080E7008 - push {r4, lr} - adds r4, r0, #0 - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - beq _080E7040 - cmp r0, #3 - bhi _080E7022 - cmp r0, #2 - beq _080E7028 - b _080E7090 -_080E7022: - cmp r0, #4 - beq _080E706C - b _080E7090 -_080E7028: - movs r3, #0 - ldr r2, _080E703C - adds r1, r4, #0 -_080E702E: - adds r0, r3, r2 - ldrb r0, [r0] - stm r1!, {r0} - adds r3, #1 - cmp r3, #1 - bls _080E702E - b _080E7090 - .align 2, 0 -_080E703C: .4byte gUnknown_8566CC7 -_080E7040: - movs r0, #0 - bl GetLinkPlayerTrainerId - adds r2, r0, #0 - movs r0, #1 - ands r2, r0 - movs r3, #0 - ldr r1, _080E7068 - lsls r0, r2, #1 - adds r0, r0, r2 - adds r1, r0, r1 - adds r2, r4, #0 -_080E7058: - ldrb r0, [r1] - stm r2!, {r0} - adds r1, #1 - adds r3, #1 - cmp r3, #2 - bls _080E7058 - b _080E7090 - .align 2, 0 -_080E7068: .4byte gUnknown_8566CC9 -_080E706C: - movs r0, #0 - bl GetLinkPlayerTrainerId - movs r1, #9 - bl __umodsi3 - adds r2, r0, #0 - movs r3, #0 - ldr r1, _080E7098 - lsls r0, r2, #2 - adds r1, r0, r1 - adds r2, r4, #0 -_080E7084: - ldrb r0, [r1] - stm r2!, {r0} - adds r1, #1 - adds r3, #1 - cmp r3, #3 - bls _080E7084 -_080E7090: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E7098: .4byte gUnknown_8566CCF - thumb_func_end ShufflePlayerIndices - - thumb_func_start sub_080E709C -sub_080E709C: @ 0x080E709C - push {r4, r5, r6, lr} - sub sp, #0x10 - adds r5, r0, #0 - adds r4, r1, #0 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - mov r0, sp - bl ShufflePlayerIndices - ldr r1, _080E70E4 - lsls r0, r6, #2 - add r0, sp - ldr r2, [r0] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r1, r0, r1 - ldrb r0, [r1] - subs r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bhi _080E70F8 - ldrh r0, [r1, #0x1a] - cmp r0, #1 - bne _080E70E8 - adds r0, r4, #0 - muls r0, r2, r0 - adds r0, r5, r0 - ldrh r3, [r1, #0x1a] - movs r1, #1 - movs r2, #2 - bl sub_08120E90 - b _080E70F8 - .align 2, 0 -_080E70E4: .4byte gUnknown_20226A0 -_080E70E8: - adds r0, r4, #0 - muls r0, r2, r0 - adds r0, r5, r0 - ldrh r3, [r1, #0x1a] - movs r1, #1 - adds r2, r3, #0 - bl sub_08120E90 -_080E70F8: - ldr r0, _080E7118 - ldr r0, [r0] - lsls r1, r6, #2 - add r1, sp - ldr r1, [r1] - muls r1, r4, r1 - adds r1, r5, r1 - movs r2, #0x40 - bl memcpy - bl ResetMauvilleOldManFlag - add sp, #0x10 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080E7118: .4byte gUnknown_3001140 - thumb_func_end sub_080E709C - - thumb_func_start sub_080E711C -sub_080E711C: @ 0x080E711C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x10 - mov r8, r0 - adds r6, r1, #0 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - mov r0, sp - bl ShufflePlayerIndices - bl Link_AnyPartnersPlayingRubyOrSapphire - cmp r0, #0 - beq _080E71B4 - lsls r0, r5, #2 - mov r1, sp - adds r7, r1, r0 - ldr r0, [r7] - muls r0, r6, r0 - add r0, r8 - adds r4, r6, #0 - muls r4, r5, r4 - mov r1, r8 - adds r5, r1, r4 - adds r1, r5, #0 - bl sub_081656C8 - adds r6, r0, #0 - mov sb, r4 - cmp r6, #1 - bne _080E71CE - ldr r4, _080E7184 - ldr r0, [r7] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrh r0, [r1, #0x1a] - cmp r0, #1 - bne _080E7188 - adds r0, r5, #4 - bl IsStringJapanese - cmp r0, #0 - bne _080E7192 - adds r1, r5, #0 - adds r1, #0xe4 - movs r0, #2 - strb r0, [r1] - b _080E71AC - .align 2, 0 -_080E7184: .4byte gUnknown_20226A0 -_080E7188: - adds r0, r5, #4 - bl IsStringJapanese - cmp r0, #0 - beq _080E719A -_080E7192: - adds r0, r5, #0 - adds r0, #0xe4 - strb r6, [r0] - b _080E71AC -_080E719A: - ldr r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r0, #0x1a] - adds r0, r5, #0 - adds r0, #0xe4 - strb r1, [r0] -_080E71AC: - adds r0, r5, #0 - bl CalcEmeraldBattleTowerChecksum - b _080E71CE -_080E71B4: - adds r4, r6, #0 - muls r4, r5, r4 - mov r1, r8 - adds r0, r1, r4 - lsls r1, r5, #2 - add r1, sp - ldr r1, [r1] - muls r1, r6, r1 - add r1, r8 - movs r2, #0xec - bl memcpy - mov sb, r4 -_080E71CE: - mov r0, r8 - add r0, sb - bl PutNewBattleTowerRecord - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_080E711C - - thumb_func_start ReceiveLilycoveLadyData -ReceiveLilycoveLadyData: @ 0x080E71E4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x10 - mov r8, r0 - adds r7, r1, #0 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - mov r0, sp - bl ShufflePlayerIndices - adds r0, r7, #0 - muls r0, r5, r0 - add r0, r8 - ldr r6, _080E722C - ldr r1, [r6] - movs r2, #0x40 - bl memcpy - bl sub_0818D6D8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080E7230 - movs r0, #0x40 - bl sub_08000BC8 - adds r4, r0, #0 - cmp r4, #0 - beq _080E725A - ldr r1, [r6] - movs r2, #0x40 - bl memcpy - b _080E7232 - .align 2, 0 -_080E722C: .4byte gUnknown_3001150 -_080E7230: - movs r4, #0 -_080E7232: - ldr r0, _080E7268 - ldr r0, [r0] - lsls r1, r5, #2 - add r1, sp - ldr r1, [r1] - muls r1, r7, r1 - add r1, r8 - movs r2, #0x40 - bl memcpy - bl sub_0818D7A4 - cmp r4, #0 - beq _080E725A - adds r0, r4, #0 - bl sub_0818E1CC - adds r0, r4, #0 - bl Free -_080E725A: - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E7268: .4byte gUnknown_3001150 - thumb_func_end ReceiveLilycoveLadyData - - thumb_func_start sub_080E726C -sub_080E726C: @ 0x080E726C - ldrh r0, [r0, #0x20] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bx lr - thumb_func_end sub_080E726C - - thumb_func_start sub_080E7274 -sub_080E7274: @ 0x080E7274 - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - sub sp, #0x38 - mov r8, r0 - mov sl, r1 - mov sb, r2 - adds r4, r3, #0 - ldr r5, [sp, #0x54] - lsls r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsrs r4, r4, #0x17 - add r4, sb - ldrb r0, [r4] - mov r6, sl - muls r6, r0, r6 - add r6, r8 - ldrb r0, [r4, #1] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #3 - adds r1, r6, r1 - mov r0, sp - movs r2, #0x38 - bl memcpy - lsls r5, r5, #1 - add r5, sb - ldrb r0, [r5] - mov r1, sl - muls r1, r0, r1 - adds r0, r1, #0 - add r8, r0 - ldrb r1, [r4, #1] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #3 - adds r6, r6, r0 - ldrb r0, [r5, #1] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #3 - add r1, r8 - adds r0, r6, #0 - movs r2, #0x38 - bl memcpy - ldrb r1, [r5, #1] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #3 - add r8, r0 - mov r0, r8 - mov r1, sp - movs r2, #0x38 - bl memcpy - add sp, #0x38 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_080E7274 - - thumb_func_start sub_080E72FC -sub_080E72FC: @ 0x080E72FC - push {r4, lr} - adds r3, r0, #0 - movs r2, #0 - movs r1, #0 - ldr r4, _080E7320 -_080E7306: - adds r0, r3, r1 - ldrb r0, [r0] - adds r0, r2, r0 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r1, #1 - cmp r1, #0xff - ble _080E7306 - strb r2, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E7320: .4byte gUnknown_3001160 - thumb_func_end sub_080E72FC - - thumb_func_start sub_080E7324 -sub_080E7324: @ 0x080E7324 - ldr r0, _080E732C - ldrb r0, [r0] - bx lr - .align 2, 0 -_080E732C: .4byte gUnknown_3001160 - thumb_func_end sub_080E7324 - - thumb_func_start sub_080E7330 -sub_080E7330: @ 0x080E7330 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x50 - str r0, [sp, #0x2c] - str r1, [sp, #0x30] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sb, r2 - bl sub_0806F0A4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x38] - ldr r0, _080E73BC - ldrh r0, [r0, #4] - bl sub_0806F094 - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #0 - mov r8, r0 - mov r1, sp - adds r1, #0x1c - str r1, [sp, #0x48] - mov r2, sp - adds r2, #0x1d - str r2, [sp, #0x4c] - mov r3, sp - adds r3, #0xc - str r3, [sp, #0x44] - movs r7, #0xff - add r3, sp, #8 - movs r2, #0 - adds r6, r1, #0 - ldr r5, [sp, #0x4c] -_080E7380: - mov r1, sp - add r1, r8 - adds r1, #4 - ldrb r0, [r1] - orrs r0, r7 - strb r0, [r1] - mov r1, r8 - adds r0, r3, r1 - strb r2, [r0] - lsls r1, r1, #1 - adds r0, r6, r1 - strb r2, [r0] - adds r1, r5, r1 - strb r2, [r1] - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - cmp r0, #3 - bls _080E7380 - movs r2, #0 - mov r8, r2 - lsls r4, r4, #0x10 - str r4, [sp, #0x3c] - ldr r0, [sp, #0x30] - mov r3, sb - muls r3, r0, r3 - str r3, [sp, #0x40] - b _080E74EC - .align 2, 0 -_080E73BC: .4byte gUnknown_20226A0 -_080E73C0: - ldr r1, [sp, #0x30] - mov r0, r8 - muls r0, r1, r0 - ldr r2, [sp, #0x2c] - adds r7, r2, r0 - ldr r1, _080E7408 - mov r3, r8 - lsls r0, r3, #3 - subs r0, r0, r3 - lsls r0, r0, #2 - adds r1, r0, r1 - ldrh r0, [r1, #0x1a] - cmp r0, #1 - bne _080E7458 - movs r6, #0 - movs r0, #0x10 - rsbs r0, r0, #0 - mov sb, r0 -_080E73E4: - lsls r4, r6, #3 - subs r0, r4, r6 - lsls r0, r0, #3 - adds r5, r7, r0 - adds r0, r5, #0 - adds r0, #0x24 - bl IsStringJapanese - cmp r0, #0 - beq _080E740C - adds r0, r5, #0 - adds r0, #0x37 - ldrb r1, [r0] - mov r2, sb - ands r1, r2 - movs r2, #1 - b _080E7418 - .align 2, 0 -_080E7408: .4byte gUnknown_20226A0 -_080E740C: - adds r0, r5, #0 - adds r0, #0x37 - ldrb r1, [r0] - mov r3, sb - ands r1, r3 - movs r2, #2 -_080E7418: - orrs r1, r2 - strb r1, [r0] - subs r0, r4, r6 - lsls r0, r0, #3 - adds r4, r7, r0 - adds r0, r4, #0 - adds r0, #0x2c - bl IsStringJapanese - cmp r0, #0 - beq _080E743C - adds r2, r4, #0 - adds r2, #0x37 - ldrb r1, [r2] - movs r0, #0xf - ands r0, r1 - movs r1, #0x10 - b _080E7448 -_080E743C: - adds r2, r4, #0 - adds r2, #0x37 - ldrb r1, [r2] - movs r0, #0xf - ands r0, r1 - movs r1, #0x20 -_080E7448: - orrs r0, r1 - strb r0, [r2] - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #1 - bls _080E73E4 - b _080E74E2 -_080E7458: - movs r6, #0 - mov sb, r1 - movs r0, #0xf - mov sl, r0 -_080E7460: - lsls r4, r6, #3 - subs r0, r4, r6 - lsls r0, r0, #3 - adds r5, r7, r0 - adds r0, r5, #0 - adds r0, #0x24 - bl IsStringJapanese - cmp r0, #0 - beq _080E7488 - adds r0, r5, #0 - adds r0, #0x37 - ldrb r1, [r0] - movs r2, #0x10 - rsbs r2, r2, #0 - ands r1, r2 - movs r2, #1 - orrs r1, r2 - strb r1, [r0] - b _080E74A0 -_080E7488: - mov r3, sb - ldrb r0, [r3, #0x1a] - adds r2, r5, #0 - adds r2, #0x37 - mov r1, sl - ands r1, r0 - ldrb r0, [r2] - movs r3, #0x10 - rsbs r3, r3, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] -_080E74A0: - subs r0, r4, r6 - lsls r0, r0, #3 - adds r4, r7, r0 - adds r0, r4, #0 - adds r0, #0x2c - bl IsStringJapanese - cmp r0, #0 - beq _080E74C4 - adds r2, r4, #0 - adds r2, #0x37 - ldrb r1, [r2] - mov r0, sl - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r2] - b _080E74D8 -_080E74C4: - mov r0, sb - ldrb r1, [r0, #0x1a] - adds r3, r4, #0 - adds r3, #0x37 - lsls r1, r1, #4 - ldrb r2, [r3] - mov r0, sl - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080E74D8: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #1 - bls _080E7460 -_080E74E2: - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 -_080E74EC: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r8, r0 - bhs _080E74FA - b _080E73C0 -_080E74FA: - movs r1, #0 - str r1, [sp, #0x34] - mov r8, r1 - ldr r2, [sp, #0x3c] - lsrs r0, r2, #0x10 - cmp r1, r0 - bhs _080E7556 - adds r5, r0, #0 -_080E750A: - ldr r3, [sp, #0x30] - mov r0, r8 - muls r0, r3, r0 - ldr r1, [sp, #0x2c] - adds r7, r1, r0 - ldr r0, [r7, #0x70] - cmp r0, #0 - beq _080E7548 - movs r6, #0 - cmp r6, r0 - bhs _080E7548 - adds r3, r7, #0 - adds r3, #0x74 - ldr r2, [sp, #0x48] - mov r0, r8 - lsls r1, r0, #1 - movs r4, #1 -_080E752C: - lsls r0, r6, #1 - adds r0, r3, r0 - ldrh r0, [r0] - cmp r0, #0 - bne _080E753C - adds r0, r6, r1 - adds r0, r2, r0 - strb r4, [r0] -_080E753C: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r0, [r7, #0x70] - cmp r6, r0 - blo _080E752C -_080E7548: - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - cmp r8, r5 - blo _080E750A -_080E7556: - movs r6, #0 - mov r8, r6 - ldr r1, [sp, #0x3c] - cmp r1, #0 - beq _080E764A - add r2, sp, #0x24 - mov sl, r2 - movs r3, #0x25 - add r3, sp - mov sb, r3 -_080E756A: - ldr r1, [sp, #0x30] - mov r0, r8 - muls r0, r1, r0 - ldr r2, [sp, #0x2c] - adds r7, r2, r0 - mov r3, r8 - lsls r1, r3, #1 - ldr r2, [sp, #0x48] - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #1 - beq _080E758C - ldr r3, [sp, #0x4c] - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, #1 - bne _080E7596 -_080E758C: - ldr r0, [sp, #0x34] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x34] -_080E7596: - ldr r2, [sp, #0x48] - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #1 - bne _080E75BA - ldr r3, [sp, #0x4c] - adds r0, r3, r1 - ldrb r2, [r0] - cmp r2, #0 - bne _080E75BA -_080E75AA: - lsls r1, r6, #1 - mov r3, sl - adds r0, r3, r1 - mov r3, r8 - strb r3, [r0] - add r1, sb - strb r2, [r1] - b _080E7634 -_080E75BA: - ldr r2, [sp, #0x48] - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080E75CE - ldr r3, [sp, #0x4c] - adds r0, r3, r1 - ldrb r2, [r0] - cmp r2, #1 - beq _080E75AA -_080E75CE: - ldr r2, [sp, #0x48] - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #1 - bne _080E763A - ldr r3, [sp, #0x4c] - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, #1 - bne _080E763A - lsls r5, r6, #1 - mov r1, sl - adds r0, r1, r5 - mov r2, r8 - strb r2, [r0] - adds r0, r7, #0 - bl sub_080E726C - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r7, #0 - adds r0, #0x38 - bl sub_080E726C - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r4, #0 - bne _080E7616 - cmp r1, #0 - beq _080E761A - mov r3, sb - adds r1, r3, r5 - movs r0, #1 - strb r0, [r1] - b _080E7634 -_080E7616: - cmp r1, #0 - beq _080E762E -_080E761A: - bl sub_0806F0A4 - mov r1, sb - adds r2, r1, r5 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - ands r0, r1 - strb r0, [r2] - b _080E7634 -_080E762E: - mov r2, sb - adds r0, r2, r5 - strb r1, [r0] -_080E7634: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_080E763A: - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - mov r8, r3 - ldr r1, [sp, #0x3c] - cmp r0, r1 - blo _080E756A -_080E764A: - movs r2, #0 - mov r8, r2 - ldr r3, [sp, #0x40] - lsls r0, r3, #4 - subs r0, r0, r3 - lsls r0, r0, #3 - ldr r1, [sp, #0x2c] - adds r7, r1, r0 - ldr r1, [sp, #0x44] -_080E765C: - mov r2, r8 - lsls r0, r2, #2 - adds r0, r1, r0 - str r7, [r0] - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - cmp r0, #3 - bls _080E765C - bl sub_080E7324 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #3 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r3, [sp, #0x34] - cmp r3, #3 - beq _080E76AE - cmp r3, #3 - bgt _080E7694 - cmp r3, #2 - beq _080E769C - b _080E7704 -_080E7694: - ldr r0, [sp, #0x34] - cmp r0, #4 - beq _080E76D0 - b _080E7704 -_080E769C: - add r2, sp, #0x24 - movs r0, #1 - str r0, [sp] - ldr r0, [sp, #0x2c] - ldr r1, [sp, #0x30] - movs r3, #0 - bl sub_080E7274 - b _080E7704 -_080E76AE: - ldr r0, _080E76CC - lsls r1, r1, #1 - adds r2, r1, r0 - ldrb r3, [r2] - adds r0, #1 - adds r1, r1, r0 - ldrb r0, [r1] - add r2, sp, #0x24 - str r0, [sp] - ldr r0, [sp, #0x2c] - ldr r1, [sp, #0x30] - bl sub_080E7274 - b _080E7704 - .align 2, 0 -_080E76CC: .4byte gUnknown_8566CF3 -_080E76D0: - add r6, sp, #0x24 - ldr r4, _080E7744 - lsls r5, r1, #2 - adds r0, r5, r4 - ldrb r3, [r0] - adds r0, r4, #1 - adds r0, r5, r0 - ldrb r0, [r0] - str r0, [sp] - ldr r0, [sp, #0x2c] - ldr r1, [sp, #0x30] - adds r2, r6, #0 - bl sub_080E7274 - adds r0, r4, #2 - adds r0, r5, r0 - ldrb r3, [r0] - adds r4, #3 - adds r5, r5, r4 - ldrb r0, [r5] - str r0, [sp] - ldr r0, [sp, #0x2c] - ldr r1, [sp, #0x30] - adds r2, r6, #0 - bl sub_080E7274 -_080E7704: - ldr r1, [sp, #0x2c] - ldr r2, [sp, #0x40] - adds r7, r1, r2 - ldr r4, _080E7748 - ldr r0, [r4] - movs r3, #0xc2 - lsls r3, r3, #6 - adds r0, r0, r3 - adds r1, r7, #0 - movs r2, #0x38 - bl memcpy - ldr r0, [r4] - ldr r1, _080E774C - adds r0, r0, r1 - adds r1, r7, #0 - adds r1, #0x38 - movs r2, #0x38 - bl memcpy - ldr r0, [sp, #0x38] - bl SeedRng - add sp, #0x50 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E7744: .4byte gUnknown_8566CF9 -_080E7748: .4byte gUnknown_3005AEC -_080E774C: .4byte 0x0000310C - thumb_func_end sub_080E7330 - - thumb_func_start ReceiveGiftItem -ReceiveGiftItem: @ 0x080E7750 - push {r4, lr} - adds r4, r0, #0 - lsls r1, r1, #0x18 - cmp r1, #0 - beq _080E77D4 - ldrh r0, [r4] - cmp r0, #0 - beq _080E77D4 - bl GetPocketByItemId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #5 - bne _080E77D4 - ldrh r0, [r4] - movs r1, #1 - bl CheckBagHasItem - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080E77CC - ldrh r0, [r4] - movs r1, #1 - bl CheckPCHasItem - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080E77CC - ldrh r0, [r4] - movs r1, #1 - bl AddBagItem - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080E77CC - ldr r0, _080E77B8 - ldrh r1, [r4] - bl VarSet - ldr r0, _080E77BC - ldr r1, _080E77C0 - bl StringCopy - ldrh r1, [r4] - ldr r0, _080E77C4 - cmp r1, r0 - bne _080E77D4 - ldr r0, _080E77C8 - bl FlagSet - b _080E77D4 - .align 2, 0 -_080E77B8: .4byte 0x00004001 -_080E77BC: .4byte gUnknown_2021C40 -_080E77C0: .4byte gUnknown_20226A8 -_080E77C4: .4byte 0x00000113 -_080E77C8: .4byte 0x000008B3 -_080E77CC: - ldr r0, _080E77DC - movs r1, #0 - bl VarSet -_080E77D4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E77DC: .4byte 0x00004001 - thumb_func_end ReceiveGiftItem - - thumb_func_start Task_DoRecordMixing -Task_DoRecordMixing: @ 0x080E77E0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080E7804 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #9 - bls _080E77FA - b _080E78F2 -_080E77FA: - lsls r0, r0, #2 - ldr r1, _080E7808 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E7804: .4byte gUnknown_3005B60 -_080E7808: .4byte _080E780C -_080E780C: @ jump table - .4byte _080E78DA @ case 0 - .4byte _080E7834 @ case 1 - .4byte _080E7842 @ case 2 - .4byte _080E784C @ case 3 - .4byte _080E7864 @ case 4 - .4byte _080E7878 @ case 5 - .4byte _080E788C @ case 6 - .4byte _080E78A8 @ case 7 - .4byte _080E78D6 @ case 8 - .4byte _080E78E2 @ case 9 -_080E7834: - bl Link_AnyPartnersPlayingRubyOrSapphire - cmp r0, #0 - bne _080E78DA - movs r0, #6 - strh r0, [r4, #8] - b _080E78F2 -_080E7842: - bl SetContinueGameWarpStatusToDynamicWarp - bl sub_0815336C - b _080E78DA -_080E784C: - bl CheckSaveFile - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080E78F2 - bl sub_08076780 - movs r1, #0 - movs r0, #4 - strh r0, [r4, #8] - strh r1, [r4, #0xa] - b _080E78F2 -_080E7864: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xa - ble _080E78F2 - bl sub_0800A7F8 - b _080E78DA -_080E7878: - ldr r0, _080E7888 - ldrb r0, [r0] - cmp r0, #0 - bne _080E78F2 - adds r0, r5, #0 - bl DestroyTask - b _080E78F2 - .align 2, 0 -_080E7888: .4byte gUnknown_30031C4 -_080E788C: - movs r0, #0 - bl sub_0800FF8C - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080E78F2 - ldr r0, _080E78A4 - movs r1, #5 - bl CreateTask - b _080E78DA - .align 2, 0 -_080E78A4: .4byte sub_081535C4 -_080E78A8: - ldr r0, _080E78C8 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080E78F2 - ldr r0, _080E78CC - ldrb r0, [r0] - cmp r0, #0 - beq _080E78D0 - movs r0, #1 - bl sub_0800FF8C - movs r0, #8 - strh r0, [r4, #8] - b _080E78F2 - .align 2, 0 -_080E78C8: .4byte sub_081535C4 -_080E78CC: .4byte gUnknown_300319C -_080E78D0: - movs r0, #4 - strh r0, [r4, #8] - b _080E78F2 -_080E78D6: - bl sub_0800A8D4 -_080E78DA: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _080E78F2 -_080E78E2: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080E78F2 - adds r0, r5, #0 - bl DestroyTask -_080E78F2: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end Task_DoRecordMixing - - thumb_func_start sub_080E78F8 -sub_080E78F8: @ 0x080E78F8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - str r0, [sp] - mov sl, r1 - adds r1, r0, #0 - adds r1, #0x38 - movs r0, #0xff - strb r0, [r1] - ldr r1, [sp] - adds r1, #0x7c - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r1] - ldr r0, [sp] - mov r1, sl - movs r2, #0x44 - bl memcpy - movs r0, #0 - str r0, [sp, #8] - movs r1, #0 - str r1, [sp, #0xc] - movs r2, #0 - str r2, [sp, #4] - mov r8, r2 - movs r7, #0 - ldr r0, _080E79C4 - mov sb, r0 -_080E7938: - mov r1, sb - ldr r0, [r1] - adds r0, #0xb2 - ldrb r0, [r0] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1e - adds r0, r7, r0 - movs r1, #3 - bl __modsi3 - adds r6, r0, #1 - lsls r0, r6, #4 - adds r0, r0, r6 - lsls r0, r0, #2 - mov r2, sl - adds r1, r0, r2 - adds r0, r1, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #0xff - beq _080E79A0 - adds r5, r1, #0 - adds r5, #0x34 - adds r0, r5, #0 - bl GetTrainerId - adds r4, r0, #0 - mov r1, sb - ldr r0, [r1] - adds r0, #0xa - bl GetTrainerId - cmp r4, r0 - beq _080E7982 - movs r2, #1 - add r8, r2 - str r6, [sp, #4] -_080E7982: - adds r0, r5, #0 - bl GetTrainerId - adds r4, r0, #0 - mov r1, sb - ldr r0, [r1] - adds r0, #0xa - bl GetTrainerId - cmp r4, r0 - bne _080E79A0 - ldr r2, [sp, #0xc] - adds r2, #1 - str r2, [sp, #0xc] - str r6, [sp, #8] -_080E79A0: - adds r7, #1 - cmp r7, #1 - ble _080E7938 - mov r0, r8 - cmp r0, #0 - bne _080E79B8 - ldr r1, [sp, #0xc] - cmp r1, #0 - beq _080E79B8 - mov r8, r1 - ldr r2, [sp, #8] - str r2, [sp, #4] -_080E79B8: - mov r0, r8 - cmp r0, #1 - beq _080E79C8 - cmp r0, #2 - beq _080E79D4 - b _080E7A34 - .align 2, 0 -_080E79C4: .4byte gUnknown_3005AF0 -_080E79C8: - ldr r2, [sp, #4] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - add r1, sl - b _080E79F6 -_080E79D4: - bl sub_0806F0A4 - lsls r0, r0, #0x10 - ldr r1, _080E7A04 - cmp r0, r1 - bls _080E7A0C - ldr r0, _080E7A08 - ldr r0, [r0] - adds r0, #0xb2 - ldrb r0, [r0] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1e - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - add r1, sl - adds r1, #0x44 -_080E79F6: - ldr r0, [sp] - adds r0, #0x44 - movs r2, #0x44 - bl memcpy - b _080E7A34 - .align 2, 0 -_080E7A04: .4byte 0x33330000 -_080E7A08: .4byte gUnknown_3005AF0 -_080E7A0C: - ldr r0, _080E7A44 - ldr r0, [r0] - adds r0, #0xb2 - ldrb r0, [r0] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1e - adds r0, #1 - movs r1, #3 - bl __modsi3 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - add r1, sl - adds r1, #0x44 - ldr r0, [sp] - adds r0, #0x44 - movs r2, #0x44 - bl memcpy -_080E7A34: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E7A44: .4byte gUnknown_3005AF0 - thumb_func_end sub_080E78F8 - - thumb_func_start GetPlayerHallRecords -GetPlayerHallRecords: @ 0x080E7A48 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - mov r8, r0 - movs r6, #0 - ldr r0, _080E7BDC - mov sl, r0 -_080E7A5C: - movs r7, #0 - lsls r0, r6, #5 - adds r6, #1 - mov sb, r6 - mov r1, r8 - adds r4, r0, r1 - adds r0, #6 - adds r6, r1, r0 - adds r5, r4, #0 -_080E7A6E: - mov r2, sl - ldr r1, [r2] - adds r1, #0xa - adds r0, r5, #0 - bl CopyTrainerId - movs r0, #1 - strb r0, [r4, #0xe] - mov r0, sl - ldr r1, [r0] - adds r0, r6, #0 - bl StringCopy - adds r4, #0x10 - adds r6, #0x10 - adds r5, #0x10 - adds r7, #1 - cmp r7, #1 - ble _080E7A6E - mov r6, sb - cmp r6, #8 - ble _080E7A5C - ldr r1, _080E7BDC - mov sl, r1 - ldr r2, _080E7BE0 - str r2, [sp, #4] - movs r4, #0x99 - lsls r4, r4, #1 - add r4, r8 - movs r0, #0x95 - lsls r0, r0, #1 - add r0, r8 - mov sb, r0 - ldr r1, _080E7BE4 - str r1, [sp, #8] - movs r6, #0x92 - lsls r6, r6, #1 - add r6, r8 - movs r5, #0x90 - lsls r5, r5, #1 - add r5, r8 - movs r7, #1 -_080E7AC2: - movs r0, #1 - strb r0, [r4, #8] - mov r2, sl - ldr r1, [r2] - adds r1, #0xa - adds r0, r5, #0 - bl CopyTrainerId - mov r0, sl - ldr r1, [r0] - ldr r2, [sp, #8] - adds r1, r1, r2 - adds r0, r6, #0 - bl CopyTrainerId - mov r0, sl - ldr r1, [r0] - mov r0, sb - bl StringCopy - mov r2, sl - ldr r1, [r2] - ldr r0, [sp, #4] - adds r1, r1, r0 - adds r0, r4, #0 - bl StringCopy - ldr r1, [sp, #4] - adds r1, #8 - str r1, [sp, #4] - adds r4, #0x1c - movs r2, #0x1c - add sb, r2 - ldr r0, [sp, #8] - adds r0, #4 - str r0, [sp, #8] - adds r6, #0x1c - adds r5, #0x1c - subs r7, #1 - cmp r7, #0 - bge _080E7AC2 - movs r6, #0 - ldr r0, _080E7BDC - ldr r3, [r0] - mov r4, r8 - movs r1, #0xc4 - adds r1, r1, r4 - mov sb, r1 - movs r2, #0x84 - adds r2, r2, r4 - mov r8, r2 - movs r0, #0x44 - adds r0, r0, r4 - mov ip, r0 - adds r7, r4, #4 - movs r1, #0xcf - lsls r1, r1, #4 - adds r1, r3, r1 - str r1, [sp] - mov sl, r4 - ldr r2, _080E7BE8 - adds r5, r3, r2 -_080E7B3E: - lsls r2, r6, #1 - ldr r1, [sp] - ldrh r0, [r1] - strh r0, [r7] - ldrh r0, [r5] - strh r0, [r7, #0x20] - ldrh r0, [r5, #4] - mov r1, ip - strh r0, [r1] - ldr r1, _080E7BEC - adds r0, r3, r1 - adds r0, r0, r2 - ldrh r0, [r0] - mov r1, ip - strh r0, [r1, #0x20] - movs r1, #0xdd - lsls r1, r1, #4 - adds r0, r3, r1 - adds r0, r0, r2 - ldrh r0, [r0] - mov r1, r8 - strh r0, [r1] - ldr r1, _080E7BF0 - adds r0, r3, r1 - adds r0, r0, r2 - ldrh r0, [r0] - mov r1, r8 - strh r0, [r1, #0x20] - ldr r1, _080E7BF4 - adds r0, r3, r1 - adds r0, r0, r2 - ldrh r0, [r0] - mov r1, sb - strh r0, [r1] - ldr r1, _080E7BF8 - adds r0, r3, r1 - adds r0, r0, r2 - ldrh r0, [r0] - mov r1, sb - strh r0, [r1, #0x20] - ldr r1, _080E7BFC - adds r0, r3, r1 - adds r0, r0, r2 - ldrh r1, [r0] - movs r0, #0x82 - lsls r0, r0, #1 - add r0, sl - strh r1, [r0] - ldr r1, _080E7C00 - adds r0, r3, r1 - adds r0, r0, r2 - ldrh r1, [r0] - movs r2, #0x94 - lsls r2, r2, #1 - adds r0, r4, r2 - strh r1, [r0] - adds r4, #0x1c - movs r0, #0x10 - add sb, r0 - add r8, r0 - add ip, r0 - adds r7, #0x10 - ldr r1, [sp] - adds r1, #2 - str r1, [sp] - add sl, r0 - adds r5, #2 - adds r6, #1 - cmp r6, #1 - ble _080E7B3E - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E7BDC: .4byte gUnknown_3005AF0 -_080E7BE0: .4byte 0x00000EE1 -_080E7BE4: .4byte 0x00000EF1 -_080E7BE8: .4byte 0x00000CF4 -_080E7BEC: .4byte 0x00000D14 -_080E7BF0: .4byte 0x00000DDE -_080E7BF4: .4byte 0x00000DEA -_080E7BF8: .4byte 0x00000E08 -_080E7BFC: .4byte 0x00000E1E -_080E7C00: .4byte 0x00000CFC - thumb_func_end GetPlayerHallRecords - - thumb_func_start sub_080E7C04 -sub_080E7C04: @ 0x080E7C04 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - movs r0, #0 - mov r8, r0 - adds r6, r1, #0 - adds r6, #0x34 - adds r5, r1, #0 -_080E7C16: - adds r0, r7, #0 - adds r0, #0x34 - bl GetTrainerId - adds r4, r0, #0 - adds r0, r6, #0 - bl GetTrainerId - cmp r4, r0 - bne _080E7C36 - ldrb r0, [r7, #2] - ldrb r1, [r5, #2] - cmp r0, r1 - bne _080E7C36 - movs r0, #1 - b _080E7C46 -_080E7C36: - adds r6, #0x44 - adds r5, #0x44 - movs r0, #1 - add r8, r0 - mov r1, r8 - cmp r1, #3 - ble _080E7C16 - movs r0, #0 -_080E7C46: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_080E7C04 - - thumb_func_start ReceiveApprenticeData -ReceiveApprenticeData: @ 0x080E7C50 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x14 - adds r6, r0, #0 - adds r5, r1, #0 - adds r4, r2, #0 - mov r0, sp - bl ShufflePlayerIndices - lsls r4, r4, #2 - mov r1, sp - adds r0, r1, r4 - ldr r0, [r0] - muls r0, r5, r0 - adds r3, r6, r0 - movs r7, #0 - movs r2, #0 - mov r8, r2 - movs r5, #0 - adds r6, r3, #0 - adds r6, #0x38 - adds r4, r3, #0 -_080E7C7E: - ldrb r0, [r6] - cmp r0, #0xff - beq _080E7C9C - ldr r0, _080E7CB0 - ldr r1, [r0] - adds r1, #0xdc - adds r0, r4, #0 - str r3, [sp, #0x10] - bl sub_080E7C04 - ldr r3, [sp, #0x10] - cmp r0, #0 - bne _080E7C9C - adds r7, #1 - mov r8, r5 -_080E7C9C: - adds r6, #0x44 - adds r4, #0x44 - adds r5, #1 - cmp r5, #1 - ble _080E7C7E - cmp r7, #1 - beq _080E7CB4 - cmp r7, #2 - beq _080E7CF0 - b _080E7D4E - .align 2, 0 -_080E7CB0: .4byte gUnknown_3005AF0 -_080E7CB4: - ldr r4, _080E7CEC - ldr r0, [r4] - adds r1, r0, #0 - adds r1, #0xb2 - ldrb r1, [r1] - lsls r1, r1, #0x1b - lsrs r1, r1, #0x1e - adds r2, r1, #1 - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r0, r0, r1 - adds r0, #0xdc - mov r2, r8 - lsls r1, r2, #4 - add r1, r8 - lsls r1, r1, #2 - adds r1, r1, r3 - movs r2, #0x44 - bl memcpy - ldr r4, [r4] - adds r4, #0xb2 - ldrb r5, [r4] - lsls r0, r5, #0x1b - lsrs r0, r0, #0x1e - adds r0, #1 - b _080E7D38 - .align 2, 0 -_080E7CEC: .4byte gUnknown_3005AF0 -_080E7CF0: - movs r5, #0 - adds r6, r3, #0 -_080E7CF4: - movs r0, #1 - eors r0, r5 - ldr r7, _080E7D5C - ldr r4, [r7] - adds r1, r4, #0 - adds r1, #0xb2 - ldrb r1, [r1] - lsls r1, r1, #0x1b - lsrs r1, r1, #0x1e - adds r0, r0, r1 - movs r1, #3 - bl __modsi3 - adds r2, r0, #1 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r4, r4, r0 - adds r4, #0xdc - adds r0, r4, #0 - adds r1, r6, #0 - movs r2, #0x44 - bl memcpy - adds r6, #0x44 - adds r5, #1 - cmp r5, #1 - ble _080E7CF4 - ldr r4, [r7] - adds r4, #0xb2 - ldrb r5, [r4] - lsls r0, r5, #0x1b - lsrs r0, r0, #0x1e - adds r0, #2 -_080E7D38: - movs r1, #3 - bl __modsi3 - movs r1, #3 - ands r0, r1 - lsls r0, r0, #3 - movs r1, #0x19 - rsbs r1, r1, #0 - ands r1, r5 - orrs r1, r0 - strb r1, [r4] -_080E7D4E: - add sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E7D5C: .4byte gUnknown_3005AF0 - thumb_func_end ReceiveApprenticeData - - thumb_func_start sub_080E7D60 -sub_080E7D60: @ 0x080E7D60 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x54 - str r0, [sp] - ldr r0, [sp, #0x74] - movs r4, #0 - mov r8, r4 - movs r5, #0 - str r5, [sp, #4] - ldr r4, _080E7D7C - b _080E7D88 - .align 2, 0 -_080E7D7C: .4byte gUnknown_3001168 -_080E7D80: - adds r1, r1, r2 - ldr r6, [sp, #4] - adds r6, #1 - str r6, [sp, #4] -_080E7D88: - ldr r5, [sp, #4] - cmp r5, r0 - bge _080E7D9E - cmp r5, r3 - beq _080E7D98 - stm r4!, {r1} - movs r6, #1 - add r8, r6 -_080E7D98: - mov r5, r8 - cmp r5, #3 - bne _080E7D80 -_080E7D9E: - movs r6, #0 - str r6, [sp, #4] - subs r0, #1 - str r0, [sp, #0x24] -_080E7DA6: - movs r0, #0 - str r0, [sp, #8] - ldr r1, [sp, #4] - adds r1, #1 - str r1, [sp, #0x28] - ldr r2, [sp, #4] - lsls r2, r2, #1 - str r2, [sp, #0x34] - ldr r3, [sp, #4] - adds r3, r2, r3 - str r3, [sp, #0x10] - movs r4, #0 - str r4, [sp, #0x44] - movs r5, #0 - str r5, [sp, #0x48] -_080E7DC4: - movs r6, #0 - mov r8, r6 - ldr r0, _080E805C - ldr r1, [r0] - ldr r2, [sp, #0x10] - lsls r0, r2, #5 - ldr r3, [sp, #0x48] - adds r0, r3, r0 - adds r3, r0, r1 - lsls r0, r2, #6 - ldr r4, [sp, #0x44] - adds r0, r4, r0 - ldr r5, [sp] - adds r2, r0, r5 -_080E7DE0: - adds r0, r2, #0 - movs r6, #0x87 - lsls r6, r6, #2 - adds r1, r3, r6 - ldm r1!, {r4, r5, r6} - stm r0!, {r4, r5, r6} - ldr r1, [r1] - str r1, [r0] - adds r3, #0x10 - adds r2, #0x10 - movs r0, #1 - add r8, r0 - mov r1, r8 - cmp r1, #2 - ble _080E7DE0 - movs r2, #0 - mov r8, r2 - ldr r3, [sp, #0x24] - cmp r8, r3 - bge _080E7EC4 - ldr r4, [sp, #4] - lsls r4, r4, #5 - mov sb, r4 - ldr r5, [sp, #8] - lsls r7, r5, #4 - ldr r6, [sp, #0x34] - ldr r1, [sp, #4] - adds r0, r6, r1 - lsls r0, r0, #6 - str r0, [sp, #0x14] - ldr r2, [sp] - adds r0, r2, r0 - ldr r3, [sp, #0x44] - str r3, [sp, #0x18] - adds r0, r0, r3 - str r0, [sp, #0x1c] - ldr r4, [sp, #0x14] - adds r0, r3, r4 - adds r0, r0, r2 - adds r0, #0x30 - mov sl, r0 -_080E7E32: - movs r5, #0 - str r5, [sp, #0xc] - movs r3, #0 - mov r6, r8 - lsls r6, r6, #2 - str r6, [sp, #0x38] - ldr r1, [sp, #0x18] - ldr r2, [sp, #0x14] - adds r0, r1, r2 - ldr r4, [sp] - adds r5, r0, r4 - ldr r0, _080E8060 - adds r0, r6, r0 - str r0, [sp, #0x50] -_080E7E4E: - lsls r0, r3, #4 - ldr r6, [sp, #0x1c] - adds r0, r6, r0 - str r3, [sp, #0x4c] - bl GetTrainerId - adds r4, r0, #0 - ldr r1, [sp, #0x50] - ldr r0, [r1] - add r0, sb - adds r0, r0, r7 - bl GetTrainerId - ldr r3, [sp, #0x4c] - cmp r4, r0 - bne _080E7E90 - ldr r2, [sp, #0xc] - adds r2, #1 - str r2, [sp, #0xc] - ldr r4, [sp, #0x50] - ldr r0, [r4] - mov r6, sb - adds r1, r7, r6 - adds r1, r0, r1 - ldrh r0, [r5, #4] - ldrh r2, [r1, #4] - cmp r0, r2 - bhs _080E7E90 - adds r0, r5, #0 - ldm r1!, {r2, r4, r6} - stm r0!, {r2, r4, r6} - ldr r1, [r1] - str r1, [r0] -_080E7E90: - adds r5, #0x10 - adds r3, #1 - cmp r3, #2 - ble _080E7E4E - ldr r3, [sp, #0xc] - cmp r3, #0 - bne _080E7EB6 - ldr r0, _080E8060 - ldr r4, [sp, #0x38] - adds r0, r4, r0 - ldr r0, [r0] - mov r5, sb - adds r2, r7, r5 - mov r1, sl - adds r0, r0, r2 - ldm r0!, {r2, r3, r6} - stm r1!, {r2, r3, r6} - ldr r0, [r0] - str r0, [r1] -_080E7EB6: - movs r4, #0x10 - add sl, r4 - movs r5, #1 - add r8, r5 - ldr r6, [sp, #0x24] - cmp r8, r6 - blt _080E7E32 -_080E7EC4: - ldr r0, [sp, #0x44] - adds r0, #0x60 - str r0, [sp, #0x44] - ldr r1, [sp, #0x48] - adds r1, #0x30 - str r1, [sp, #0x48] - ldr r2, [sp, #8] - adds r2, #1 - str r2, [sp, #8] - cmp r2, #1 - bgt _080E7EDC - b _080E7DC4 -_080E7EDC: - ldr r3, [sp, #0x28] - str r3, [sp, #4] - cmp r3, #8 - bgt _080E7EE6 - b _080E7DA6 -_080E7EE6: - movs r4, #0 - str r4, [sp, #8] -_080E7EEA: - ldr r5, [sp, #8] - adds r5, #1 - str r5, [sp, #0x2c] - ldr r0, _080E805C - ldr r1, [r0] - movs r0, #0x54 - ldr r6, [sp, #8] - muls r0, r6, r0 - adds r3, r0, r1 - movs r0, #0xa8 - muls r0, r6, r0 - ldr r1, [sp] - adds r2, r0, r1 - movs r4, #2 - mov r8, r4 -_080E7F08: - movs r5, #0xd8 - lsls r5, r5, #3 - adds r0, r2, r5 - ldr r6, _080E8064 - adds r1, r3, r6 - ldm r1!, {r4, r5, r6} - stm r0!, {r4, r5, r6} - ldm r1!, {r4, r5, r6} - stm r0!, {r4, r5, r6} - ldr r1, [r1] - str r1, [r0] - adds r3, #0x1c - adds r2, #0x1c - movs r0, #1 - rsbs r0, r0, #0 - add r8, r0 - mov r1, r8 - cmp r1, #0 - bge _080E7F08 - movs r2, #0 - mov r8, r2 - ldr r3, [sp, #0x24] - cmp r8, r3 - blt _080E7F3A - b _080E8042 -_080E7F3A: - ldr r4, [sp, #8] - lsls r1, r4, #3 - movs r0, #0xa8 - adds r5, r4, #0 - muls r5, r0, r5 - str r5, [sp, #0x20] - str r5, [sp, #0x3c] - subs r1, r1, r4 - lsls r1, r1, #2 - mov sl, r1 -_080E7F4E: - movs r6, #0 - str r6, [sp, #0xc] - mov r0, r8 - lsls r0, r0, #2 - str r0, [sp, #0x38] - mov r1, r8 - adds r1, #1 - str r1, [sp, #0x30] - ldr r0, _080E8060 - ldr r2, [sp, #0x38] - adds r2, r2, r0 - mov sb, r2 - ldr r3, [sp] - movs r4, #0xd8 - lsls r4, r4, #3 - adds r0, r3, r4 - ldr r5, [sp, #0x3c] - adds r7, r5, r0 - str r6, [sp, #0x40] - movs r3, #2 -_080E7F76: - ldr r1, [sp, #0x20] - movs r2, #0xd8 - lsls r2, r2, #3 - adds r0, r1, r2 - ldr r4, [sp] - adds r0, r4, r0 - ldr r6, [sp, #0x40] - adds r5, r0, r6 - adds r0, r5, #0 - str r3, [sp, #0x4c] - bl GetTrainerId - adds r4, r0, #0 - movs r6, #0x90 - lsls r6, r6, #1 - add r6, sl - mov r1, sb - ldr r0, [r1] - adds r0, r0, r6 - bl GetTrainerId - ldr r3, [sp, #0x4c] - cmp r4, r0 - bne _080E7FF0 - adds r0, r5, #4 - bl GetTrainerId - adds r4, r0, #0 - mov r2, sb - ldr r0, [r2] - adds r0, r0, r6 - adds r0, #4 - bl GetTrainerId - ldr r3, [sp, #0x4c] - cmp r4, r0 - bne _080E7FF0 - ldr r4, [sp, #0xc] - adds r4, #1 - str r4, [sp, #0xc] - mov r5, sb - ldr r0, [r5] - mov r6, sl - adds r2, r0, r6 - movs r0, #0x94 - lsls r0, r0, #1 - adds r1, r2, r0 - ldrh r0, [r7, #8] - ldrh r1, [r1] - cmp r0, r1 - bhs _080E7FF0 - adds r0, r7, #0 - movs r4, #0x90 - lsls r4, r4, #1 - adds r1, r2, r4 - ldm r1!, {r2, r5, r6} - stm r0!, {r2, r5, r6} - ldm r1!, {r4, r5, r6} - stm r0!, {r4, r5, r6} - ldr r1, [r1] - str r1, [r0] -_080E7FF0: - adds r7, #0x1c - ldr r0, [sp, #0x40] - adds r0, #0x1c - str r0, [sp, #0x40] - subs r3, #1 - cmp r3, #0 - bge _080E7F76 - ldr r1, [sp, #0xc] - cmp r1, #0 - bne _080E8038 - mov r0, r8 - adds r0, #3 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - ldr r2, [sp, #0x20] - adds r1, r1, r2 - ldr r3, [sp] - adds r1, r3, r1 - ldr r0, _080E8060 - ldr r4, [sp, #0x38] - adds r0, r4, r0 - ldr r0, [r0] - add r0, sl - movs r5, #0xd8 - lsls r5, r5, #3 - adds r1, r1, r5 - movs r6, #0x90 - lsls r6, r6, #1 - adds r0, r0, r6 - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - ldm r0!, {r2, r5, r6} - stm r1!, {r2, r5, r6} - ldr r0, [r0] - str r0, [r1] -_080E8038: - ldr r3, [sp, #0x30] - mov r8, r3 - ldr r4, [sp, #0x24] - cmp r8, r4 - blt _080E7F4E -_080E8042: - ldr r5, [sp, #0x2c] - str r5, [sp, #8] - cmp r5, #1 - bgt _080E804C - b _080E7EEA -_080E804C: - add sp, #0x54 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E805C: .4byte gUnknown_3005AF0 -_080E8060: .4byte gUnknown_3001168 -_080E8064: .4byte 0x0000057C - thumb_func_end sub_080E7D60 - - thumb_func_start sub_080E8068 -sub_080E8068: @ 0x080E8068 - push {r4, r5, r6, r7, lr} - mov ip, r0 - adds r7, r1, #0 - movs r5, #0 -_080E8070: - movs r2, #0 - movs r4, #1 - rsbs r4, r4, #0 - movs r1, #0 - adds r6, r5, #1 - adds r3, r7, #0 -_080E807C: - ldrh r0, [r3, #4] - cmp r0, r2 - ble _080E8086 - adds r4, r1, #0 - adds r2, r0, #0 -_080E8086: - adds r3, #0x10 - adds r1, #1 - cmp r1, #5 - ble _080E807C - cmp r4, #0 - blt _080E80A8 - lsls r1, r5, #4 - lsls r2, r4, #4 - adds r2, r2, r7 - add r1, ip - adds r0, r2, #0 - ldm r0!, {r3, r4, r5} - stm r1!, {r3, r4, r5} - ldr r0, [r0] - str r0, [r1] - movs r0, #0 - strh r0, [r2, #4] -_080E80A8: - adds r5, r6, #0 - cmp r5, #2 - ble _080E8070 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_080E8068 - - thumb_func_start sub_080E80B4 -sub_080E80B4: @ 0x080E80B4 - push {r4, r5, r6, r7, lr} - mov ip, r0 - adds r6, r1, #0 - movs r5, #0 -_080E80BC: - movs r3, #0 - movs r4, #1 - rsbs r4, r4, #0 - movs r2, #0 - adds r7, r5, #1 - adds r1, r6, #0 -_080E80C8: - ldrh r0, [r1, #8] - cmp r0, r3 - ble _080E80D2 - adds r4, r2, #0 - adds r3, r0, #0 -_080E80D2: - adds r1, #0x1c - adds r2, #1 - cmp r2, #5 - ble _080E80C8 - cmp r4, #0 - blt _080E8100 - lsls r1, r5, #3 - subs r1, r1, r5 - lsls r1, r1, #2 - lsls r2, r4, #3 - subs r2, r2, r4 - lsls r2, r2, #2 - adds r2, r2, r6 - add r1, ip - adds r0, r2, #0 - ldm r0!, {r3, r4, r5} - stm r1!, {r3, r4, r5} - ldm r0!, {r3, r4, r5} - stm r1!, {r3, r4, r5} - ldr r0, [r0] - str r0, [r1] - movs r0, #0 - strh r0, [r2, #8] -_080E8100: - adds r5, r7, #0 - cmp r5, #2 - ble _080E80BC - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_080E80B4 - - thumb_func_start sub_080E810C -sub_080E810C: @ 0x080E810C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sb, r0 - movs r0, #0 - ldr r1, _080E818C - mov sl, r1 -_080E811E: - lsls r1, r0, #1 - adds r2, r0, #1 - mov r8, r2 - adds r1, r1, r0 - lsls r0, r1, #5 - movs r2, #0x87 - lsls r2, r2, #2 - adds r7, r0, r2 - lsls r1, r1, #6 - mov r0, sb - adds r4, r0, r1 - movs r6, #0 - movs r5, #1 -_080E8138: - mov r1, sl - ldr r0, [r1] - adds r0, r0, r7 - adds r0, r0, r6 - adds r1, r4, #0 - bl sub_080E8068 - adds r4, #0x60 - adds r6, #0x30 - subs r5, #1 - cmp r5, #0 - bge _080E8138 - mov r0, r8 - cmp r0, #8 - ble _080E811E - movs r5, #0 - ldr r4, _080E818C -_080E815A: - movs r0, #0x54 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r2, _080E8190 - adds r1, r1, r2 - ldr r0, [r4] - adds r0, r0, r1 - movs r1, #0xa8 - muls r1, r5, r1 - movs r2, #0xd8 - lsls r2, r2, #3 - adds r1, r1, r2 - add r1, sb - bl sub_080E80B4 - adds r5, #1 - cmp r5, #1 - ble _080E815A - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E818C: .4byte gUnknown_3005AF0 -_080E8190: .4byte 0x0000057C - thumb_func_end sub_080E810C - - thumb_func_start ReceiveRankingHallRecords -ReceiveRankingHallRecords: @ 0x080E8194 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #4 - adds r6, r0, #0 - mov r8, r1 - mov sb, r2 - bl GetLinkPlayerCount - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0x81 - lsls r0, r0, #4 - bl AllocZeroed - adds r5, r0, #0 - str r4, [sp] - adds r1, r6, #0 - mov r2, r8 - mov r3, sb - bl sub_080E7D60 - adds r0, r5, #0 - bl sub_080E810C - adds r0, r5, #0 - bl Free - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ReceiveRankingHallRecords - - thumb_func_start sub_080E81E0 -sub_080E81E0: @ 0x080E81E0 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r5, _080E8228 - ldr r4, _080E822C - ldr r1, [r4] - movs r0, #0xc2 - lsls r0, r0, #6 - adds r1, r1, r0 - adds r0, r5, #0 - movs r2, #0x38 - bl memcpy - ldr r1, [r4] - ldr r0, _080E8230 - adds r1, r1, r0 - adds r0, r5, #0 - adds r0, #0x38 - movs r2, #0x38 - bl memcpy - ldr r0, [r4] - ldr r1, _080E8234 - adds r0, r0, r1 - adds r1, r5, #0 - bl InitDaycareMailRecordMixing - ldr r0, _080E8238 - ldr r1, [r0] - adds r0, r6, #0 - movs r2, #0x78 - bl memcpy - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080E8228: .4byte gUnknown_2039C3C -_080E822C: .4byte gUnknown_3005AEC -_080E8230: .4byte 0x0000310C -_080E8234: .4byte 0x00003030 -_080E8238: .4byte gUnknown_3001148 - thumb_func_end sub_080E81E0 - - thumb_func_start sub_080E823C -sub_080E823C: @ 0x080E823C - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - movs r7, #0 - ldr r0, [r6, #0x70] - cmp r7, r0 - bhs _080E8280 - adds r5, r6, #0 - adds r5, #0x2c - adds r4, r6, #0 - adds r4, #0x24 -_080E8250: - adds r0, r4, #0 - bl IsStringJapanese - cmp r0, #0 - beq _080E8262 - adds r0, r4, #0 - ldr r1, _080E8288 - bl StringCopy -_080E8262: - adds r0, r5, #0 - bl IsStringJapanese - cmp r0, #0 - beq _080E8274 - adds r0, r4, #0 - ldr r1, _080E828C - bl StringCopy -_080E8274: - adds r5, #0x38 - adds r4, #0x38 - adds r7, #1 - ldr r0, [r6, #0x70] - cmp r7, r0 - blo _080E8250 -_080E8280: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E8288: .4byte gUnknown_85CCEC5 -_080E828C: .4byte gUnknown_85CCECD - thumb_func_end sub_080E823C - - thumb_func_start sub_080E8290 -sub_080E8290: @ 0x080E8290 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldrh r0, [r6, #2] - cmp r0, #0 - beq _080E82D4 - adds r0, r6, #4 - bl IsStringJapanese - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r5, r1, #0x1f - cmp r5, #0 - bne _080E82CA - movs r4, #0 - b _080E82B0 -_080E82AE: - adds r4, #1 -_080E82B0: - cmp r4, #2 - bgt _080E82C6 - movs r0, #0x2c - muls r0, r4, r0 - adds r0, r0, r6 - adds r0, #0x3c - bl IsStringJapanese - cmp r0, #0 - beq _080E82AE - adds r5, #1 -_080E82C6: - cmp r5, #0 - beq _080E82D4 -_080E82CA: - adds r0, r6, #0 - movs r1, #0 - movs r2, #0xa4 - bl memset -_080E82D4: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080E8290 - - thumb_func_start sub_080E82DC -sub_080E82DC: @ 0x080E82DC - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080E82DC - - thumb_func_start sub_080E82F4 -sub_080E82F4: @ 0x080E82F4 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - ldr r0, _080E831C - ldrb r0, [r0] - cmp r0, #0 - beq _080E8316 - bl m4aSoundMain - bl m4aSoundMain - bl m4aSoundMain -_080E8316: - pop {r0} - bx r0 - .align 2, 0 -_080E831C: .4byte gUnknown_2039CBC - thumb_func_end sub_080E82F4 - - thumb_func_start sub_080E8320 -sub_080E8320: @ 0x080E8320 - push {r4, lr} - sub sp, #4 - ldr r1, _080E8340 - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, r1, #0 - cmp r0, #7 - bls _080E8336 - b _080E8480 -_080E8336: - lsls r0, r0, #2 - ldr r1, _080E8344 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E8340: .4byte gUnknown_3002360 -_080E8344: .4byte _080E8348 -_080E8348: @ jump table - .4byte _080E8368 @ case 0 - .4byte _080E8380 @ case 1 - .4byte _080E8386 @ case 2 - .4byte _080E83AC @ case 3 - .4byte _080E83B4 @ case 4 - .4byte _080E83C8 @ case 5 - .4byte _080E83E8 @ case 6 - .4byte _080E840C @ case 7 -_080E8368: - movs r0, #0 - bl SetVBlankCallback - bl sub_080E9560 - ldr r1, _080E837C - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _080E8400 - .align 2, 0 -_080E837C: .4byte gUnknown_3002360 -_080E8380: - bl PutFirstMemBlockHeader - b _080E83F8 -_080E8386: - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _080E83A4 - movs r0, #0 - movs r2, #1 - bl InitBgsFromTemplates - bl sub_080E96DC - ldr r1, _080E83A8 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _080E8400 - .align 2, 0 -_080E83A4: .4byte gUnknown_8566D08 -_080E83A8: .4byte gUnknown_3002360 -_080E83AC: - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r2, r0 - b _080E8400 -_080E83B4: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080E8480 - movs r0, #0 - bl ShowBg - b _080E83F8 -_080E83C8: - ldr r0, _080E83E0 - bl InitWindows - bl sub_08004480 - bl sub_08196F98 - ldr r1, _080E83E4 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _080E8400 - .align 2, 0 -_080E83E0: .4byte gUnknown_8566D0C -_080E83E4: .4byte gUnknown_3002360 -_080E83E8: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade -_080E83F8: - ldr r1, _080E8408 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 -_080E8400: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080E8480 - .align 2, 0 -_080E8408: .4byte gUnknown_3002360 -_080E840C: - bl sub_080E96C8 - ldr r1, _080E8488 - movs r0, #0x48 - bl SetGpuReg - movs r0, #0x4a - movs r1, #0x31 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0xe1 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #7 - bl SetGpuReg - movs r0, #1 - bl EnableInterrupts - ldr r0, _080E848C - bl SetVBlankCallback - ldr r0, _080E8490 - bl SetMainCallback2 - ldr r0, _080E8494 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080E8498 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r4, #0 - movs r0, #0 - strh r0, [r1, #8] - strh r0, [r1, #0xa] - strh r0, [r1, #0xc] - strh r0, [r1, #0xe] - strh r0, [r1, #0x10] - ldr r0, _080E849C - strb r4, [r0] - bl m4aSoundInit - ldr r0, _080E84A0 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - strb r4, [r0] -_080E8480: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E8488: .4byte 0x00001111 -_080E848C: .4byte sub_080E82F4 -_080E8490: .4byte sub_080E82DC -_080E8494: .4byte sub_080E84A4 -_080E8498: .4byte gUnknown_3005B60 -_080E849C: .4byte gUnknown_2039CBC -_080E84A0: .4byte gUnknown_3002360 - thumb_func_end sub_080E8320 - - thumb_func_start sub_080E84A4 -sub_080E84A4: @ 0x080E84A4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x48 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - ldr r1, _080E85D4 - add r0, sp, #0xc - movs r2, #0x16 - bl memcpy - add r0, sp, #0x24 - mov r8, r0 - ldr r1, _080E85D8 - movs r2, #4 - bl memcpy - add r2, sp, #0x28 - mov sb, r2 - ldr r1, _080E85DC - mov r0, sb - movs r2, #4 - bl memcpy - add r6, sp, #0x2c - ldr r1, _080E85E0 - adds r0, r6, #0 - movs r2, #0xc - bl memcpy - add r7, sp, #0x38 - ldr r1, _080E85E4 - adds r0, r7, #0 - movs r2, #0xe - bl memcpy - ldr r0, _080E85E8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _080E85C2 - movs r0, #0 - movs r1, #0 - bl SetStandardWindowBorderStyle - str r5, [sp] - movs r4, #0xff - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #1 - add r2, sp, #0xc - movs r3, #0 - bl AddTextPrinterParameterized - movs r0, #0xe - str r0, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #1 - adds r2, r7, #0 - movs r3, #0x64 - bl AddTextPrinterParameterized - movs r0, #0 - bl sub_080E9734 - movs r0, #1 - movs r1, #0 - bl SetStandardWindowBorderStyle - str r5, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #1 - movs r1, #1 - mov r2, r8 - movs r3, #0 - bl AddTextPrinterParameterized - str r5, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #1 - movs r1, #1 - adds r2, r6, #0 - movs r3, #0x64 - bl AddTextPrinterParameterized - movs r0, #1 - bl sub_080E9734 - movs r0, #2 - movs r1, #0 - bl SetStandardWindowBorderStyle - str r5, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #2 - movs r1, #1 - mov r2, sb - movs r3, #0 - bl AddTextPrinterParameterized - str r5, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #2 - movs r1, #1 - adds r2, r6, #0 - movs r3, #0x64 - bl AddTextPrinterParameterized - movs r0, #2 - bl sub_080E9734 - movs r0, #0x40 - movs r1, #0xef - bl SetGpuReg - movs r0, #0x44 - movs r1, #0x30 - bl SetGpuReg - movs r0, #0 - bl sub_080E88E8 - ldr r1, _080E85EC - mov r2, sl - lsls r0, r2, #2 - add r0, sl - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080E85F0 - str r1, [r0] -_080E85C2: - add sp, #0x48 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E85D4: .4byte gUnknown_8566D2C -_080E85D8: .4byte gUnknown_8566D42 -_080E85DC: .4byte gUnknown_8566D46 -_080E85E0: .4byte gUnknown_8566D4A -_080E85E4: .4byte gUnknown_8566D56 -_080E85E8: .4byte gUnknown_2037C74 -_080E85EC: .4byte gUnknown_3005B60 -_080E85F0: .4byte sub_080E85F4 - thumb_func_end sub_080E84A4 - - thumb_func_start sub_080E85F4 -sub_080E85F4: @ 0x080E85F4 - push {r4, r5, r6, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _080E8674 - adds r4, r4, r0 - movs r6, #0xe0 - str r6, [sp] - movs r5, #0xc - str r5, [sp, #4] - movs r0, #1 - movs r1, #0x11 - movs r2, #0 - movs r3, #0xe - bl sub_08003A34 - ldr r1, _080E8678 - adds r0, r1, #0 - ldrh r2, [r4, #0xa] - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - bl sub_080E8928 - ldr r1, _080E867C - movs r2, #0xa - ldrsh r0, [r4, r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #1 - bl sub_080E8978 - str r6, [sp] - str r5, [sp, #4] - movs r0, #2 - movs r1, #0x11 - movs r2, #0 - movs r3, #0xe - bl sub_08003A34 - ldrh r0, [r4, #0xc] - movs r1, #2 - bl sub_080E8928 - ldr r1, _080E8680 - movs r2, #0xc - ldrsh r0, [r4, r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #2 - bl sub_080E8978 - ldr r0, _080E8684 - str r0, [r4] - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080E8674: .4byte gUnknown_3005B60 -_080E8678: .4byte 0x0000015D -_080E867C: .4byte gUnknown_8568730 -_080E8680: .4byte gUnknown_85682F8 -_080E8684: .4byte sub_080E8878 - thumb_func_end sub_080E85F4 - - thumb_func_start sub_080E8688 -sub_080E8688: @ 0x080E8688 - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080E86BC - adds r5, r1, r0 - ldr r6, _080E86C0 - ldrh r2, [r6, #0x2e] - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r2 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - beq _080E86C8 - movs r0, #0 - movs r1, #1 - strh r1, [r5, #0x24] - strh r0, [r5, #0x26] -_080E86B4: - ldr r0, _080E86C4 - str r0, [r5] - b _080E8868 - .align 2, 0 -_080E86BC: .4byte gUnknown_3005B60 -_080E86C0: .4byte gUnknown_3002360 -_080E86C4: .4byte sub_080E89EC -_080E86C8: - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r2 - cmp r0, #0 - beq _080E86D8 - strh r1, [r5, #0x24] - strh r1, [r5, #0x26] - b _080E86B4 -_080E86D8: - movs r7, #1 - movs r4, #1 - ands r4, r2 - cmp r4, #0 - beq _080E878C - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _080E8722 - movs r2, #0x10 - ldrsh r0, [r5, r2] - cmp r0, #0 - beq _080E870C - movs r3, #0xc - ldrsh r4, [r5, r3] - cmp r4, #0 - beq _080E8702 - ldrh r0, [r5, #0x10] - bl m4aSongNumStop - b _080E8716 -_080E8702: - ldrh r0, [r5, #0x10] - bl m4aSongNumStop - strh r4, [r5, #0x10] - b _080E8868 -_080E870C: - movs r1, #0xc - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _080E8716 - b _080E8868 -_080E8716: - ldrh r0, [r5, #0xc] - bl m4aSongNumStart - ldrh r0, [r5, #0xc] - strh r0, [r5, #0x10] - b _080E8868 -_080E8722: - ldrh r1, [r5, #0xe] - movs r2, #0xe - ldrsh r0, [r5, r2] - cmp r0, #0 - beq _080E8768 - movs r3, #0xa - ldrsh r4, [r5, r3] - cmp r4, #0 - beq _080E8754 - ldr r0, _080E8750 - adds r4, r0, #0 - adds r0, r1, r4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl m4aSongNumStop - ldrh r1, [r5, #0xa] - adds r4, r4, r1 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r4, #0 - b _080E877C - .align 2, 0 -_080E8750: .4byte 0x0000015D -_080E8754: - ldr r2, _080E8764 - adds r0, r1, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl m4aSongNumStop - strh r4, [r5, #0xe] - b _080E8868 - .align 2, 0 -_080E8764: .4byte 0x0000015D -_080E8768: - ldrh r1, [r5, #0xa] - movs r3, #0xa - ldrsh r0, [r5, r3] - cmp r0, #0 - bne _080E8774 - b _080E8868 -_080E8774: - ldr r2, _080E8788 - adds r0, r1, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 -_080E877C: - bl m4aSongNumStart - ldrh r0, [r5, #0xa] - strh r0, [r5, #0xe] - b _080E8868 - .align 2, 0 -_080E8788: .4byte 0x0000015D -_080E878C: - movs r0, #2 - ands r0, r2 - cmp r0, #0 - beq _080E87B4 - movs r0, #5 - bl m4aSongNumStart - movs r0, #1 - rsbs r0, r0, #0 - str r4, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _080E87B0 - str r0, [r5] - b _080E8868 - .align 2, 0 -_080E87B0: .4byte sub_080E88A8 -_080E87B4: - ldrh r1, [r6, #0x30] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0 - beq _080E87CE - ldrh r0, [r5, #8] - eors r0, r7 - strh r0, [r5, #8] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_080E88E8 - b _080E8868 -_080E87CE: - movs r0, #0x10 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #0 - beq _080E880E - movs r3, #8 - ldrsh r0, [r5, r3] - cmp r0, #0 - beq _080E87FC - ldrh r1, [r5, #0xc] - movs r2, #0xc - ldrsh r0, [r5, r2] - cmp r0, #0 - ble _080E87F2 - subs r0, r1, #1 - strh r0, [r5, #0xc] - b _080E8848 -_080E87F2: - ldr r0, _080E87F8 - strh r0, [r5, #0xc] - b _080E8848 - .align 2, 0 -_080E87F8: .4byte 0x0000010D -_080E87FC: - ldrh r1, [r5, #0xa] - movs r3, #0xa - ldrsh r0, [r5, r3] - cmp r0, #0 - ble _080E880A - subs r0, r1, #1 - b _080E8842 -_080E880A: - movs r0, #0xd1 - b _080E8842 -_080E880E: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080E884C - movs r0, #8 - ldrsh r1, [r5, r0] - cmp r1, #0 - beq _080E8836 - ldrh r2, [r5, #0xc] - movs r0, #0xc - ldrsh r1, [r5, r0] - movs r0, #0x86 - lsls r0, r0, #1 - cmp r1, r0 - bgt _080E8832 - adds r0, r2, #1 - strh r0, [r5, #0xc] - b _080E8848 -_080E8832: - strh r3, [r5, #0xc] - b _080E8848 -_080E8836: - ldrh r2, [r5, #0xa] - movs r3, #0xa - ldrsh r0, [r5, r3] - cmp r0, #0xd0 - bgt _080E8846 - adds r0, r2, #1 -_080E8842: - strh r0, [r5, #0xa] - b _080E8848 -_080E8846: - strh r1, [r5, #0xa] -_080E8848: - movs r0, #1 - b _080E886A -_080E884C: - ldrh r1, [r6, #0x2c] - movs r0, #4 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - beq _080E8864 - ldr r0, _080E8860 - strb r7, [r0] - b _080E8868 - .align 2, 0 -_080E8860: .4byte gUnknown_2039CBC -_080E8864: - ldr r0, _080E8874 - strb r1, [r0] -_080E8868: - movs r0, #0 -_080E886A: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080E8874: .4byte gUnknown_2039CBC - thumb_func_end sub_080E8688 - - thumb_func_start sub_080E8878 -sub_080E8878: @ 0x080E8878 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl sub_080E8688 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080E8898 - ldr r0, _080E88A0 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080E88A4 - str r0, [r1] -_080E8898: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E88A0: .4byte gUnknown_3005B60 -_080E88A4: .4byte sub_080E85F4 - thumb_func_end sub_080E8878 - - thumb_func_start sub_080E88A8 -sub_080E88A8: @ 0x080E88A8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _080E88E0 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080E88D8 - movs r4, #0 -_080E88BC: - adds r0, r4, #0 - bl RemoveTrainerHillRecordsWindow - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #2 - bls _080E88BC - adds r0, r5, #0 - bl DestroyTask - ldr r0, _080E88E4 - bl SetMainCallback2 -_080E88D8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080E88E0: .4byte gUnknown_2037C74 -_080E88E4: .4byte sub_080AA06C - thumb_func_end sub_080E88A8 - - thumb_func_start sub_080E88E8 -sub_080E88E8: @ 0x080E88E8 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _080E88F8 - cmp r0, #1 - beq _080E8910 - b _080E8920 -_080E88F8: - movs r0, #0x42 - movs r1, #0xef - bl SetGpuReg - ldr r1, _080E890C - movs r0, #0x46 - bl SetGpuReg - b _080E8920 - .align 2, 0 -_080E890C: .4byte 0x00003868 -_080E8910: - movs r0, #0x42 - movs r1, #0xef - bl SetGpuReg - ldr r1, _080E8924 - movs r0, #0x46 - bl SetGpuReg -_080E8920: - pop {r0} - bx r0 - .align 2, 0 -_080E8924: .4byte 0x000070A0 - thumb_func_end sub_080E88E8 - - thumb_func_start sub_080E8928 -sub_080E8928: @ 0x080E8928 - push {r4, r5, lr} - sub sp, #0xc - adds r2, r0, #0 - adds r5, r1, #0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r4, _080E8974 - adds r0, r4, #0 - adds r1, r2, #0 - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - movs r1, #0 - movs r0, #0xb0 - strb r0, [r4, #3] - movs r0, #0xff - strb r0, [r4, #4] - movs r0, #0xe - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - str r1, [sp, #8] - adds r0, r5, #0 - movs r1, #1 - adds r2, r4, #0 - movs r3, #0 - bl AddTextPrinterParameterized - adds r0, r5, #0 - bl sub_080E9734 - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080E8974: .4byte gUnknown_2021C40 - thumb_func_end sub_080E8928 - - thumb_func_start sub_080E8978 -sub_080E8978: @ 0x080E8978 - push {r4, lr} - sub sp, #0x1c - adds r3, r0, #0 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - movs r2, #0 - movs r1, #0 -_080E8986: - mov r0, sp - adds r0, r0, r2 - adds r0, #0xc - strb r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xf - bls _080E8986 - add r0, sp, #0xc - movs r1, #0xff - strb r1, [r0, #0xf] - movs r2, #0 - ldrb r0, [r3] - cmp r0, #0xff - beq _080E89C4 -_080E89A6: - mov r1, sp - adds r1, r1, r2 - adds r1, #0xc - adds r0, r3, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r0, r3, r2 - ldrb r0, [r0] - cmp r0, #0xff - beq _080E89C4 - cmp r2, #0xe - bls _080E89A6 -_080E89C4: - movs r0, #0xe - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - adds r0, r4, #0 - movs r1, #1 - add r2, sp, #0xc - movs r3, #0x28 - bl AddTextPrinterParameterized - adds r0, r4, #0 - bl sub_080E9734 - add sp, #0x1c - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080E8978 - - thumb_func_start sub_080E89EC -sub_080E89EC: @ 0x080E89EC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080E8A10 - adds r5, r1, r0 - movs r1, #0x26 - ldrsh r0, [r5, r1] - cmp r0, #1 - beq _080E8A48 - cmp r0, #1 - bgt _080E8A14 - cmp r0, #0 - beq _080E8A1A - b _080E8A94 - .align 2, 0 -_080E8A10: .4byte gUnknown_3005B60 -_080E8A14: - cmp r0, #2 - beq _080E8A70 - b _080E8A94 -_080E8A1A: - movs r4, #0 -_080E8A1C: - adds r0, r4, #0 - bl RemoveTrainerHillRecordsWindow - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #2 - bls _080E8A1C - bl FreeAllWindowBuffers - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _080E8A44 - movs r0, #0 - movs r2, #1 - bl InitBgsFromTemplates - b _080E8A62 - .align 2, 0 -_080E8A44: .4byte gUnknown_8566D08 -_080E8A48: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080E8A94 - ldr r0, _080E8A6C - bl InitWindows - movs r0, #0 - movs r1, #1 - bl SetStandardWindowBorderStyle -_080E8A62: - ldrh r0, [r5, #0x26] - adds r0, #1 - strh r0, [r5, #0x26] - b _080E8A94 - .align 2, 0 -_080E8A6C: .4byte gUnknown_8566D64 -_080E8A70: - movs r0, #0 - bl ShowBg - movs r1, #0xc5 - lsls r1, r1, #6 - movs r0, #0 - bl SetGpuReg - movs r1, #0x24 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _080E8A90 - ldr r0, _080E8A8C - b _080E8A92 - .align 2, 0 -_080E8A8C: .4byte sub_080E91E4 -_080E8A90: - ldr r0, _080E8A9C -_080E8A92: - str r0, [r5] -_080E8A94: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080E8A9C: .4byte sub_080E8AA0 - thumb_func_end sub_080E89EC - - thumb_func_start sub_080E8AA0 -sub_080E8AA0: @ 0x080E8AA0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xdc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0xb4] - ldr r1, _080E8D10 - add r0, sp, #0xc - movs r2, #0xa - bl memcpy - add r7, sp, #0x18 - ldr r1, _080E8D14 - adds r0, r7, #0 - movs r2, #0xb - bl memcpy - mov r0, sp - adds r0, #0x24 - str r0, [sp, #0xb8] - ldr r1, _080E8D18 - movs r2, #0xa - bl memcpy - mov r2, sp - adds r2, #0x30 - str r2, [sp, #0xbc] - ldr r1, _080E8D1C - adds r0, r2, #0 - movs r2, #0xa - bl memcpy - mov r0, sp - adds r0, #0x3c - str r0, [sp, #0xc0] - ldr r1, _080E8D20 - movs r2, #0xa - bl memcpy - mov r2, sp - adds r2, #0x48 - str r2, [sp, #0xc4] - ldr r1, _080E8D24 - adds r0, r2, #0 - movs r2, #0xa - bl memcpy - mov r0, sp - adds r0, #0x54 - str r0, [sp, #0xc8] - ldr r1, _080E8D28 - movs r2, #0xa - bl memcpy - mov r2, sp - adds r2, #0x60 - str r2, [sp, #0xcc] - ldr r1, _080E8D2C - adds r0, r2, #0 - movs r2, #0xa - bl memcpy - mov r0, sp - adds r0, #0x6c - str r0, [sp, #0xd0] - ldr r1, _080E8D30 - movs r2, #0xa - bl memcpy - mov r2, sp - adds r2, #0x78 - str r2, [sp, #0xd4] - ldr r1, _080E8D34 - adds r0, r2, #0 - movs r2, #0xa - bl memcpy - mov r0, sp - adds r0, #0x84 - str r0, [sp, #0xd8] - ldr r1, _080E8D38 - movs r2, #0xa - bl memcpy - add r6, sp, #0x90 - ldr r1, _080E8D3C - adds r0, r6, #0 - movs r2, #9 - bl memcpy - add r2, sp, #0x9c - mov r8, r2 - ldr r1, _080E8D40 - mov r0, r8 - movs r2, #9 - bl memcpy - add r0, sp, #0xa8 - mov sl, r0 - ldr r1, _080E8D44 - movs r2, #9 - bl memcpy - movs r0, #0 - movs r1, #0 - bl SetStandardWindowBorderStyle - movs r2, #0x10 - str r2, [sp] - movs r5, #0xff - str r5, [sp, #4] - movs r4, #0 - str r4, [sp, #8] - movs r0, #0 - movs r1, #1 - add r2, sp, #0xc - movs r3, #0x88 - bl AddTextPrinterParameterized - movs r0, #0x20 - mov sb, r0 - str r0, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #0 - movs r1, #1 - adds r2, r7, #0 - movs r3, #0x88 - bl AddTextPrinterParameterized - movs r2, #0x50 - str r2, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #0 - movs r1, #1 - adds r2, r6, #0 - movs r3, #0x88 - bl AddTextPrinterParameterized - movs r7, #0x60 - str r7, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #0 - movs r1, #1 - mov r2, r8 - movs r3, #0x88 - bl AddTextPrinterParameterized - movs r6, #0x70 - str r6, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #0 - movs r1, #1 - mov r2, sl - movs r3, #0x88 - bl AddTextPrinterParameterized - str r4, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #0 - movs r1, #1 - ldr r2, [sp, #0xb8] - movs r3, #8 - bl AddTextPrinterParameterized - movs r0, #0x10 - str r0, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #0 - movs r1, #1 - ldr r2, [sp, #0xbc] - movs r3, #8 - bl AddTextPrinterParameterized - mov r2, sb - str r2, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #0 - movs r1, #1 - ldr r2, [sp, #0xc0] - movs r3, #8 - bl AddTextPrinterParameterized - movs r0, #0x30 - str r0, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #0 - movs r1, #1 - ldr r2, [sp, #0xc4] - movs r3, #8 - bl AddTextPrinterParameterized - movs r0, #0x40 - str r0, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #0 - movs r1, #1 - ldr r2, [sp, #0xc8] - movs r3, #8 - bl AddTextPrinterParameterized - movs r0, #0x50 - str r0, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #0 - movs r1, #1 - ldr r2, [sp, #0xcc] - movs r3, #8 - bl AddTextPrinterParameterized - str r7, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #0 - movs r1, #1 - ldr r2, [sp, #0xd0] - movs r3, #8 - bl AddTextPrinterParameterized - str r6, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #0 - movs r1, #1 - ldr r2, [sp, #0xd4] - movs r3, #8 - bl AddTextPrinterParameterized - movs r0, #0x80 - str r0, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #0 - movs r1, #1 - ldr r2, [sp, #0xd8] - movs r3, #8 - bl AddTextPrinterParameterized - movs r0, #0x40 - movs r1, #0xf0 - bl SetGpuReg - movs r0, #0x44 - movs r1, #0xa0 - bl SetGpuReg - ldr r0, _080E8D48 - strb r4, [r0] - ldr r0, _080E8D4C - strb r4, [r0] - ldr r0, _080E8D50 - str r4, [r0] - ldr r0, _080E8D54 - strb r4, [r0] - ldr r1, _080E8D58 - movs r0, #1 - strb r0, [r1] - ldr r0, _080E8D5C - str r4, [r0] - movs r1, #0x78 - str r1, [r0, #4] - str r4, [r0, #8] - movs r1, #0xf0 - lsls r1, r1, #6 - str r1, [r0, #0xc] - movs r1, #0xb4 - str r1, [r0, #0x10] - str r4, [r0, #0x18] - str r4, [r0, #0x14] - str r4, [r0, #0x1c] - movs r1, #2 - str r1, [r0, #0x20] - bl sub_080E900C - movs r0, #9 - str r0, [sp] - str r4, [sp, #4] - movs r0, #0 - movs r1, #1 - movs r2, #0 - movs r3, #0 - bl sub_081984F0 - ldr r1, _080E8D60 - ldr r2, [sp, #0xb4] - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080E8D64 - str r1, [r0] - add sp, #0xdc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E8D10: .4byte gUnknown_8566D74 -_080E8D14: .4byte gUnknown_8566D7E -_080E8D18: .4byte gUnknown_8566D89 -_080E8D1C: .4byte gUnknown_8566D93 -_080E8D20: .4byte gUnknown_8566D9D -_080E8D24: .4byte gUnknown_8566DA7 -_080E8D28: .4byte gUnknown_8566DB1 -_080E8D2C: .4byte gUnknown_8566DBB -_080E8D30: .4byte gUnknown_8566DC5 -_080E8D34: .4byte gUnknown_8566DCF -_080E8D38: .4byte gUnknown_8566DD9 -_080E8D3C: .4byte gUnknown_8566DE3 -_080E8D40: .4byte gUnknown_8566DEC -_080E8D44: .4byte gUnknown_8566DF5 -_080E8D48: .4byte gUnknown_2039CBD -_080E8D4C: .4byte gUnknown_2039CBE -_080E8D50: .4byte gUnknown_3005E1C -_080E8D54: .4byte gUnknown_2039CE4 -_080E8D58: .4byte gUnknown_2039CE5 -_080E8D5C: .4byte gUnknown_2039CC0 -_080E8D60: .4byte gUnknown_3005B60 -_080E8D64: .4byte sub_080E8D68 - thumb_func_end sub_080E8AA0 - - thumb_func_start sub_080E8D68 -sub_080E8D68: @ 0x080E8D68 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _080E8D90 - ldrh r3, [r1, #0x2e] - movs r0, #2 - ands r0, r3 - cmp r0, #0 - beq _080E8D9C - ldr r1, _080E8D94 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #0x26] - ldr r1, _080E8D98 - str r1, [r0] - b _080E8F8E - .align 2, 0 -_080E8D90: .4byte gUnknown_3002360 -_080E8D94: .4byte gUnknown_3005B60 -_080E8D98: .4byte sub_080E9410 -_080E8D9C: - ldrh r1, [r1, #0x30] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080E8DB0 - movs r0, #1 - rsbs r0, r0, #0 - bl Menu_MoveCursorNoWrapAround - b _080E8F8E -_080E8DB0: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080E8DC0 - movs r0, #1 - bl Menu_MoveCursorNoWrapAround - b _080E8F8E -_080E8DC0: - movs r0, #8 - ands r0, r3 - cmp r0, #0 - beq _080E8DDC - ldr r0, _080E8DD8 - ldrb r1, [r0] - movs r2, #1 - eors r1, r2 - strb r1, [r0] - bl sub_080E900C - b _080E8F8E - .align 2, 0 -_080E8DD8: .4byte gUnknown_2039CE4 -_080E8DDC: - movs r0, #4 - ands r0, r3 - cmp r0, #0 - beq _080E8E00 - ldr r4, _080E8DFC - ldrb r0, [r4] - movs r1, #1 - eors r0, r1 - strb r0, [r4] - bl sub_080E900C - ldrb r0, [r4] - bl SetPokemonCryStereo - b _080E8F8E - .align 2, 0 -_080E8DFC: .4byte gUnknown_2039CE5 -_080E8E00: - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080E8E0E - movs r0, #0xa - b _080E8E36 -_080E8E0E: - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080E8E1E - movs r0, #0xa - rsbs r0, r0, #0 - b _080E8E36 -_080E8E1E: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080E8E2C - movs r0, #1 - rsbs r0, r0, #0 - b _080E8E36 -_080E8E2C: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080E8E40 - movs r0, #1 -_080E8E36: - bl sub_080E8FA4 - bl sub_080E900C - b _080E8F8E -_080E8E40: - movs r0, #1 - ands r0, r3 - cmp r0, #0 - bne _080E8E4A - b _080E8F6A -_080E8E4A: - ldr r4, _080E8EAC - ldrb r0, [r4, #4] - bl SetPokemonCryVolume - movs r0, #8 - 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, r0, #0x18 - lsrs r0, r0, #0x18 - bl SetPokemonCryPriority - ldr r4, [r4] - adds r0, r4, #0 - cmp r4, #0 - bge _080E8E90 - adds r0, #0x7f -_080E8E90: - asrs r2, r0, #7 - lsls r0, r2, #7 - subs r0, r4, r0 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080E8EE4 - cmp r0, #1 - bgt _080E8EB0 - cmp r0, #0 - beq _080E8EBA - b _080E8F6A - .align 2, 0 -_080E8EAC: .4byte gUnknown_2039CC0 -_080E8EB0: - cmp r0, #2 - beq _080E8F10 - cmp r0, #3 - beq _080E8F3C - b _080E8F6A -_080E8EBA: - ldr r0, _080E8ECC - ldrb r0, [r0] - cmp r0, #0 - beq _080E8ED4 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080E8ED0 - b _080E8F60 - .align 2, 0 -_080E8ECC: .4byte gUnknown_2039CE4 -_080E8ED0: .4byte gUnknown_8626A44 -_080E8ED4: - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080E8EE0 - b _080E8F60 - .align 2, 0 -_080E8EE0: .4byte gUnknown_8625814 -_080E8EE4: - ldr r0, _080E8EF8 - ldrb r0, [r0] - cmp r0, #0 - beq _080E8F00 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080E8EFC - b _080E8F60 - .align 2, 0 -_080E8EF8: .4byte gUnknown_2039CE4 -_080E8EFC: .4byte gUnknown_8627044 -_080E8F00: - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080E8F0C - b _080E8F60 - .align 2, 0 -_080E8F0C: .4byte gUnknown_8625E14 -_080E8F10: - ldr r0, _080E8F24 - ldrb r0, [r0] - cmp r0, #0 - beq _080E8F2C - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080E8F28 - b _080E8F60 - .align 2, 0 -_080E8F24: .4byte gUnknown_2039CE4 -_080E8F28: .4byte gUnknown_8627644 -_080E8F2C: - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080E8F38 - b _080E8F60 - .align 2, 0 -_080E8F38: .4byte gUnknown_8626414 -_080E8F3C: - ldr r0, _080E8F50 - ldrb r0, [r0] - cmp r0, #0 - beq _080E8F58 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080E8F54 - b _080E8F60 - .align 2, 0 -_080E8F50: .4byte gUnknown_2039CE4 -_080E8F54: .4byte gUnknown_8627C44 -_080E8F58: - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080E8F94 -_080E8F60: - adds r0, r0, r1 - bl SetPokemonCryTone - ldr r1, _080E8F98 - str r0, [r1] -_080E8F6A: - ldr r0, _080E8F98 - ldr r0, [r0] - cmp r0, #0 - beq _080E8F8E - ldr r5, _080E8F9C - bl IsPokemonCryPlaying - strb r0, [r5] - ldr r4, _080E8FA0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r4] - cmp r0, r1 - beq _080E8F8A - bl sub_080E900C -_080E8F8A: - ldrb r0, [r5] - strb r0, [r4] -_080E8F8E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080E8F94: .4byte gUnknown_8626A14 -_080E8F98: .4byte gUnknown_3005E1C -_080E8F9C: .4byte gUnknown_2039CBD -_080E8FA0: .4byte gUnknown_2039CBE - thumb_func_end sub_080E8D68 - - thumb_func_start sub_080E8FA4 -sub_080E8FA4: @ 0x080E8FA4 - push {r4, r5, r6, lr} - sub sp, #0x40 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _080E9004 - mov r0, sp - movs r2, #0x40 - bl memcpy - bl Menu_GetCursorPos - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r5, r2, #0 - ldr r1, _080E9008 - lsls r0, r2, #2 - adds r3, r0, r1 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - ldr r1, [r3] - adds r1, r1, r4 - str r1, [r3] - lsls r0, r2, #1 - adds r0, #1 - lsls r0, r0, #2 - mov r6, sp - adds r4, r6, r0 - ldr r0, [r4] - cmp r1, r0 - ble _080E8FEA - lsls r0, r2, #3 - add r0, sp - ldr r0, [r0] - str r0, [r3] -_080E8FEA: - lsls r0, r5, #3 - add r0, sp - ldr r1, [r3] - ldr r0, [r0] - cmp r1, r0 - bge _080E8FFA - ldr r0, [r4] - str r0, [r3] -_080E8FFA: - add sp, #0x40 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080E9004: .4byte gUnknown_8566E00 -_080E9008: .4byte gUnknown_2039CC0 - thumb_func_end sub_080E8FA4 - - thumb_func_start sub_080E900C -sub_080E900C: @ 0x080E900C - push {r4, lr} - ldr r4, _080E90B0 - ldr r0, [r4] - adds r0, #1 - movs r1, #0x50 - movs r2, #0 - movs r3, #5 - bl sub_080E90C0 - ldr r0, [r4, #4] - movs r1, #0x50 - movs r2, #0x10 - movs r3, #5 - bl sub_080E90C0 - ldr r0, [r4, #8] - movs r1, #0x50 - movs r2, #0x20 - movs r3, #5 - bl sub_080E90C0 - ldr r0, [r4, #0xc] - movs r1, #0x50 - movs r2, #0x30 - movs r3, #5 - bl sub_080E90C0 - ldr r0, [r4, #0x10] - movs r1, #0x50 - movs r2, #0x40 - movs r3, #5 - bl sub_080E90C0 - ldr r0, [r4, #0x14] - movs r1, #0x50 - movs r2, #0x50 - movs r3, #5 - bl sub_080E90C0 - ldr r0, [r4, #0x18] - movs r1, #0x50 - movs r2, #0x60 - movs r3, #5 - bl sub_080E90C0 - ldr r0, [r4, #0x1c] - movs r1, #0x50 - movs r2, #0x70 - movs r3, #5 - bl sub_080E90C0 - ldr r0, [r4, #0x20] - movs r1, #0x50 - movs r2, #0x80 - movs r3, #5 - bl sub_080E90C0 - ldr r0, _080E90B4 - ldrb r0, [r0] - movs r1, #0xc8 - movs r2, #0x50 - movs r3, #1 - bl sub_080E90C0 - ldr r0, _080E90B8 - ldrb r0, [r0] - movs r1, #0xc8 - movs r2, #0x60 - movs r3, #1 - bl sub_080E90C0 - ldr r0, _080E90BC - ldrb r0, [r0] - movs r1, #0xc8 - movs r2, #0x70 - movs r3, #1 - bl sub_080E90C0 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E90B0: .4byte gUnknown_2039CC0 -_080E90B4: .4byte gUnknown_2039CBD -_080E90B8: .4byte gUnknown_2039CE4 -_080E90BC: .4byte gUnknown_2039CE5 - thumb_func_end sub_080E900C - - thumb_func_start sub_080E90C0 -sub_080E90C0: @ 0x080E90C0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x38 - mov r8, r0 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - lsls r3, r3, #0x18 - lsrs r7, r3, #0x18 - add r1, sp, #0xc - ldr r0, _080E91E0 - ldm r0!, {r3, r4, r5} - stm r1!, {r3, r4, r5} - ldm r0!, {r3, r4, r5} - stm r1!, {r3, r4, r5} - movs r5, #0 - add r0, sp, #0x24 - mov sb, r0 - cmp r5, r7 - bgt _080E9108 - mov r4, sb - movs r3, #0 -_080E90F4: - lsls r0, r5, #0x18 - asrs r0, r0, #0x18 - adds r1, r4, r0 - strb r3, [r1] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, r7 - ble _080E90F4 -_080E9108: - adds r0, r7, #1 - add r0, sb - movs r1, #0xff - strb r1, [r0] - movs r1, #0 - mov r3, r8 - cmp r3, #0 - bge _080E911E - rsbs r3, r3, #0 - mov r8, r3 - movs r1, #1 -_080E911E: - movs r4, #0 - mov sl, r4 - cmp r7, #1 - bne _080E912A - movs r5, #1 - mov sl, r5 -_080E912A: - subs r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #0x18 - lsls r6, r6, #0x18 - str r6, [sp, #0x30] - lsls r2, r2, #0x18 - str r2, [sp, #0x34] - cmp r0, #0 - blt _080E91AE - str r1, [sp, #0x2c] -_080E9140: - asrs r6, r0, #0x18 - lsls r0, r6, #2 - add r0, sp - adds r0, #0xc - ldr r1, [r0] - mov r0, r8 - bl __divsi3 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r0, #0 - bne _080E9164 - mov r0, sl - cmp r0, #0 - bne _080E9164 - lsls r4, r5, #0x18 - cmp r6, #0 - bne _080E9190 -_080E9164: - lsls r4, r5, #0x18 - ldr r1, [sp, #0x2c] - cmp r1, #0 - beq _080E917E - mov r3, sl - cmp r3, #0 - bne _080E917E - asrs r0, r4, #0x18 - subs r0, r7, r0 - subs r0, #1 - add r0, sb - movs r1, #0xae - strb r1, [r0] -_080E917E: - asrs r1, r4, #0x18 - subs r1, r7, r1 - add r1, sb - lsls r0, r2, #0x18 - asrs r0, r0, #0x18 - subs r0, #0x5f - strb r0, [r1] - movs r5, #1 - mov sl, r5 -_080E9190: - asrs r4, r4, #0x18 - lsls r0, r4, #2 - add r0, sp - adds r0, #0xc - ldr r1, [r0] - mov r0, r8 - bl __modsi3 - mov r8, r0 - subs r4, #1 - lsls r4, r4, #0x18 - lsrs r5, r4, #0x18 - lsls r0, r5, #0x18 - cmp r0, #0 - bge _080E9140 -_080E91AE: - ldr r0, [sp, #0x30] - lsrs r3, r0, #0x18 - ldr r1, [sp, #0x34] - lsrs r0, r1, #0x18 - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - movs r1, #1 - mov r2, sb - bl AddTextPrinterParameterized - movs r0, #0 - bl sub_080E9734 - add sp, #0x38 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E91E0: .4byte gUnknown_8566E40 - thumb_func_end sub_080E90C0 - - thumb_func_start sub_080E91E4 -sub_080E91E4: @ 0x080E91E4 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0x14 - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r1, _080E9270 - add r0, sp, #0xc - movs r2, #3 - bl memcpy - add r0, sp, #0x10 - mov r8, r0 - ldr r1, _080E9274 - movs r2, #4 - bl memcpy - movs r0, #0xe - str r0, [sp] - movs r6, #0xff - str r6, [sp, #4] - movs r4, #0 - str r4, [sp, #8] - movs r0, #0 - movs r1, #1 - add r2, sp, #0xc - movs r3, #0xa - bl AddTextPrinterParameterized - movs r0, #0x1c - str r0, [sp] - str r6, [sp, #4] - str r4, [sp, #8] - movs r0, #0 - movs r1, #1 - mov r2, r8 - movs r3, #0xa - bl AddTextPrinterParameterized - movs r0, #0x40 - movs r1, #0xf0 - bl SetGpuReg - movs r0, #0x44 - movs r1, #0xa0 - bl SetGpuReg - ldr r0, _080E9278 - movs r1, #1 - str r1, [r0] - str r4, [r0, #8] - str r4, [r0, #0x1c] - str r4, [r0, #0x18] - str r4, [r0, #0x14] - bl sub_080E94B8 - ldr r1, _080E927C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080E9280 - str r1, [r0] - add sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080E9270: .4byte gUnknown_8566E5D -_080E9274: .4byte gUnknown_8566E60 -_080E9278: .4byte gUnknown_2039CC0 -_080E927C: .4byte gUnknown_3005B60 -_080E9280: .4byte sub_080E9284 - thumb_func_end sub_080E91E4 - - thumb_func_start sub_080E9284 -sub_080E9284: @ 0x080E9284 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r2, _080E92A0 - ldr r0, [r2, #0x18] - cmp r0, #0 - beq _080E92EA - ldr r0, [r2, #0x14] - cmp r0, #0 - beq _080E92A4 - subs r0, #1 - str r0, [r2, #0x14] - b _080E92EA - .align 2, 0 -_080E92A0: .4byte gUnknown_2039CC0 -_080E92A4: - ldr r0, _080E92D0 - ldr r1, [r2, #8] - adds r1, r1, r0 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r0, #0x80 - rsbs r0, r0, #0 - cmp r1, r0 - beq _080E92D4 - cmp r1, #0x7f - bne _080E92EA - ldr r0, [r2, #0x1c] - adds r0, #2 - str r0, [r2, #0x1c] - cmp r0, #0x3e - bgt _080E92EA - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - bl SE12PanpotControl - b _080E92EA - .align 2, 0 -_080E92D0: .4byte gUnknown_8566E58 -_080E92D4: - ldr r0, [r2, #0x1c] - subs r1, r0, #2 - str r1, [r2, #0x1c] - movs r0, #0x40 - rsbs r0, r0, #0 - cmp r1, r0 - ble _080E92EA - lsls r0, r1, #0x18 - asrs r0, r0, #0x18 - bl SE12PanpotControl -_080E92EA: - ldr r0, _080E9310 - ldrh r1, [r0, #0x2e] - movs r0, #2 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0 - beq _080E931C - ldr r1, _080E9314 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #0x26] - ldr r1, _080E9318 - str r1, [r0] - b _080E9400 - .align 2, 0 -_080E9310: .4byte gUnknown_3002360 -_080E9314: .4byte gUnknown_3005B60 -_080E9318: .4byte sub_080E9410 -_080E931C: - movs r6, #1 - adds r2, r6, #0 - ands r2, r1 - cmp r2, #0 - beq _080E9376 - ldr r0, _080E9350 - ldr r5, _080E9354 - ldr r1, [r5, #8] - adds r1, r1, r0 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r0, #0x80 - rsbs r0, r0, #0 - cmp r1, r0 - beq _080E9358 - cmp r1, #0x7f - bne _080E936C - ldrh r0, [r5] - movs r4, #0x40 - rsbs r4, r4, #0 - adds r1, r4, #0 - bl PlaySE12WithPanning - str r4, [r5, #0x1c] - b _080E9364 - .align 2, 0 -_080E9350: .4byte gUnknown_8566E58 -_080E9354: .4byte gUnknown_2039CC0 -_080E9358: - ldrh r0, [r5] - movs r1, #0x3f - bl PlaySE12WithPanning - movs r0, #0x3f - str r0, [r5, #0x1c] -_080E9364: - str r6, [r5, #0x18] - movs r0, #0x1e - str r0, [r5, #0x14] - b _080E93D2 -_080E936C: - ldrh r0, [r5] - bl PlaySE12WithPanning - str r4, [r5, #0x18] - b _080E93D2 -_080E9376: - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080E9392 - ldr r1, _080E93D8 - ldr r0, [r1, #8] - adds r0, #1 - str r0, [r1, #8] - cmp r0, #4 - ble _080E938E - str r2, [r1, #8] -_080E938E: - bl sub_080E94B8 -_080E9392: - ldr r0, _080E93DC - ldrh r1, [r0, #0x2e] - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080E93B4 - ldr r1, _080E93D8 - ldr r0, [r1, #8] - subs r0, #1 - str r0, [r1, #8] - cmp r0, #0 - bge _080E93B0 - movs r0, #4 - str r0, [r1, #8] -_080E93B0: - bl sub_080E94B8 -_080E93B4: - ldr r0, _080E93DC - ldrh r1, [r0, #0x30] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080E93E4 - ldr r2, _080E93D8 - ldr r0, [r2] - adds r0, #1 - str r0, [r2] - ldr r1, _080E93E0 - cmp r0, r1 - ble _080E93D2 - movs r0, #0 - str r0, [r2] -_080E93D2: - bl sub_080E94B8 - b _080E9400 - .align 2, 0 -_080E93D8: .4byte gUnknown_2039CC0 -_080E93DC: .4byte gUnknown_3002360 -_080E93E0: .4byte 0x0000010D -_080E93E4: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080E9400 - ldr r1, _080E9408 - ldr r0, [r1] - subs r0, #1 - str r0, [r1] - cmp r0, #0 - bge _080E93FC - ldr r0, _080E940C - str r0, [r1] -_080E93FC: - bl sub_080E94B8 -_080E9400: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080E9408: .4byte gUnknown_2039CC0 -_080E940C: .4byte 0x0000010D - thumb_func_end sub_080E9284 - - thumb_func_start sub_080E9410 -sub_080E9410: @ 0x080E9410 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080E9434 - adds r4, r1, r0 - movs r1, #0x26 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _080E9460 - cmp r0, #1 - bgt _080E9438 - cmp r0, #0 - beq _080E943E - b _080E94A2 - .align 2, 0 -_080E9434: .4byte gUnknown_3005B60 -_080E9438: - cmp r0, #2 - beq _080E9480 - b _080E94A2 -_080E943E: - movs r0, #0 - bl RemoveTrainerHillRecordsWindow - bl FreeAllWindowBuffers - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _080E945C - movs r0, #0 - movs r2, #1 - bl InitBgsFromTemplates - b _080E9472 - .align 2, 0 -_080E945C: .4byte gUnknown_8566D08 -_080E9460: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080E94A2 - ldr r0, _080E947C - bl InitWindows -_080E9472: - ldrh r0, [r4, #0x26] - adds r0, #1 - strh r0, [r4, #0x26] - b _080E94A2 - .align 2, 0 -_080E947C: .4byte gUnknown_8566D0C -_080E9480: - movs r0, #0 - bl ShowBg - ldr r1, _080E94A8 - movs r0, #0 - bl SetGpuReg - ldr r1, _080E94AC - movs r0, #0x40 - bl SetGpuReg - ldr r1, _080E94B0 - movs r0, #0x44 - bl SetGpuReg - ldr r0, _080E94B4 - str r0, [r4] -_080E94A2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E94A8: .4byte 0x00007140 -_080E94AC: .4byte 0x000011DF -_080E94B0: .4byte 0x0000011F -_080E94B4: .4byte sub_080E84A4 - thumb_func_end sub_080E9410 - - thumb_func_start sub_080E94B8 -sub_080E94B8: @ 0x080E94B8 - push {r4, r5, lr} - sub sp, #0x1c - ldr r1, _080E951C - add r0, sp, #0xc - movs r2, #5 - bl memcpy - add r5, sp, #0x14 - ldr r1, _080E9520 - adds r0, r5, #0 - movs r2, #5 - bl memcpy - movs r0, #0x28 - str r0, [sp] - movs r0, #0xe - str r0, [sp, #4] - movs r0, #0 - movs r1, #0x11 - movs r2, #0x64 - movs r3, #0x1c - bl sub_08003A34 - ldr r4, _080E9524 - ldr r0, [r4] - movs r1, #0x64 - movs r2, #0xe - movs r3, #3 - bl sub_080E90C0 - ldr r1, _080E9528 - ldr r0, [r4, #8] - adds r0, r0, r1 - movs r1, #0 - ldrsb r1, [r0, r1] - movs r0, #0x80 - rsbs r0, r0, #0 - cmp r1, r0 - beq _080E952C - cmp r1, #0x7f - bne _080E954A - movs r0, #0x1c - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - movs r1, #1 - add r2, sp, #0xc - b _080E953C - .align 2, 0 -_080E951C: .4byte gUnknown_8566E64 -_080E9520: .4byte gUnknown_8566E69 -_080E9524: .4byte gUnknown_2039CC0 -_080E9528: .4byte gUnknown_8566E58 -_080E952C: - movs r0, #0x1c - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - movs r1, #1 - adds r2, r5, #0 -_080E953C: - movs r3, #0x64 - bl AddTextPrinterParameterized - movs r0, #0 - bl sub_080E9734 - b _080E9556 -_080E954A: - adds r0, r1, #0 - movs r1, #0x64 - movs r2, #0x1c - movs r3, #3 - bl sub_080E90C0 -_080E9556: - add sp, #0x1c - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080E94B8 - - thumb_func_start sub_080E9560 -sub_080E9560: @ 0x080E9560 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - movs r3, #0xc0 - lsls r3, r3, #0x13 - movs r4, #0xc0 - lsls r4, r4, #9 - add r0, sp, #4 - mov r8, r0 - mov r2, sp - movs r6, #0 - ldr r1, _080E96A0 - movs r5, #0x80 - lsls r5, r5, #5 - ldr r7, _080E96A4 - movs r0, #0x81 - lsls r0, r0, #0x18 - mov ip, r0 -_080E9586: - strh r6, [r2] - mov r0, sp - str r0, [r1] - str r3, [r1, #4] - str r7, [r1, #8] - ldr r0, [r1, #8] - adds r3, r3, r5 - subs r4, r4, r5 - cmp r4, r5 - bhi _080E9586 - strh r6, [r2] - mov r2, sp - str r2, [r1] - str r3, [r1, #4] - lsrs r0, r4, #1 - mov r2, ip - orrs r0, r2 - str r0, [r1, #8] - ldr r0, [r1, #8] - movs r0, #0xe0 - lsls r0, r0, #0x13 - movs r3, #0x80 - lsls r3, r3, #3 - movs r4, #0 - str r4, [sp, #4] - ldr r2, _080E96A0 - mov r1, r8 - str r1, [r2] - str r0, [r2, #4] - lsrs r0, r3, #2 - movs r1, #0x85 - lsls r1, r1, #0x18 - orrs r0, r1 - str r0, [r2, #8] - ldr r0, [r2, #8] - movs r1, #0xa0 - lsls r1, r1, #0x13 - mov r0, sp - strh r4, [r0] - str r0, [r2] - str r1, [r2, #4] - lsrs r3, r3, #1 - movs r0, #0x81 - lsls r0, r0, #0x18 - orrs r3, r0 - str r3, [r2, #8] - ldr r0, [r2, #8] - movs r0, #0 - movs r1, #0 - bl SetGpuReg - movs r0, #8 - movs r1, #0 - bl SetGpuReg - movs r0, #0x10 - movs r1, #0 - bl SetGpuReg - movs r0, #0x12 - movs r1, #0 - bl SetGpuReg - movs r0, #0xa - movs r1, #0 - bl SetGpuReg - movs r0, #0x14 - movs r1, #0 - bl SetGpuReg - movs r0, #0x16 - movs r1, #0 - bl SetGpuReg - movs r0, #0xc - movs r1, #0 - bl SetGpuReg - movs r0, #0x18 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1a - movs r1, #0 - bl SetGpuReg - movs r0, #0xe - movs r1, #0 - bl SetGpuReg - movs r0, #0x1c - movs r1, #0 - bl SetGpuReg - movs r0, #0x1e - movs r1, #0 - bl SetGpuReg - movs r0, #0x40 - movs r1, #0 - bl SetGpuReg - movs r0, #0x44 - movs r1, #0 - bl SetGpuReg - movs r0, #0x42 - movs r1, #0 - bl SetGpuReg - movs r0, #0x46 - movs r1, #0 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0 - bl SetGpuReg - movs r0, #0x4a - movs r1, #0 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E96A0: .4byte 0x040000D4 -_080E96A4: .4byte 0x81000800 - thumb_func_end sub_080E9560 - - thumb_func_start PutFirstMemBlockHeader -PutFirstMemBlockHeader: @ 0x080E96A8 - push {lr} - bl ScanlineEffect_Stop - bl ResetTasks - bl ResetSpriteData - bl ResetAllPicSprites - bl ResetPaletteFade - bl FreeAllSpritePalettes - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PutFirstMemBlockHeader - - thumb_func_start sub_080E96C8 -sub_080E96C8: @ 0x080E96C8 - push {lr} - ldr r1, _080E96D8 - movs r0, #0 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 -_080E96D8: .4byte 0x00007140 - thumb_func_end sub_080E96C8 - - thumb_func_start sub_080E96DC -sub_080E96DC: @ 0x080E96DC - push {lr} - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080E96DC - - thumb_func_start sub_080E9734 -sub_080E9734: @ 0x080E9734 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl PutWindowTilemap - adds r0, r4, #0 - movs r1, #3 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080E9734 - - thumb_func_start RemoveTrainerHillRecordsWindow -RemoveTrainerHillRecordsWindow: @ 0x080E9750 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #0 - bl FillWindowPixelBuffer - adds r0, r4, #0 - bl ClearWindowTilemap - adds r0, r4, #0 - movs r1, #2 - bl CopyWindowToVram - adds r0, r4, #0 - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RemoveTrainerHillRecordsWindow - - thumb_func_start ClearSecretBase -ClearSecretBase: @ 0x080E977C - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - movs r0, #0 - str r0, [sp] - ldr r2, _080E97B0 - mov r0, sp - adds r1, r4, #0 - bl CpuFastSet - movs r2, #0 - adds r4, #2 - movs r3, #0xff -_080E9796: - adds r0, r4, r2 - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #6 - bls _080E9796 - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E97B0: .4byte 0x01000028 - thumb_func_end ClearSecretBase - - thumb_func_start ClearSecretBases -ClearSecretBases: @ 0x080E97B4 - push {r4, r5, lr} - movs r4, #0 - ldr r5, _080E97DC -_080E97BA: - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #5 - ldr r0, _080E97E0 - adds r1, r1, r0 - ldr r0, [r5] - adds r0, r0, r1 - bl ClearSecretBase - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x13 - bls _080E97BA - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080E97DC: .4byte gUnknown_3005AEC -_080E97E0: .4byte 0x00001A9C - thumb_func_end ClearSecretBases - - thumb_func_start SetCurSecretBaseId -SetCurSecretBaseId: @ 0x080E97E4 - ldr r0, _080E97F0 - ldr r1, _080E97F4 - ldrh r1, [r1] - strb r1, [r0] - bx lr - .align 2, 0 -_080E97F0: .4byte gUnknown_2039CE8 -_080E97F4: .4byte gUnknown_2037280 - thumb_func_end SetCurSecretBaseId - - thumb_func_start TrySetCurSecretBaseIndex -TrySetCurSecretBaseIndex: @ 0x080E97F8 - push {r4, lr} - ldr r0, _080E9808 - movs r1, #0 - strh r1, [r0] - movs r3, #0 - adds r4, r0, #0 - b _080E9812 - .align 2, 0 -_080E9808: .4byte gUnknown_2037290 -_080E980C: - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 -_080E9812: - cmp r3, #0x13 - bhi _080E983C - ldr r2, _080E9844 - ldr r0, _080E9848 - ldr r1, [r0] - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #5 - adds r1, r1, r0 - ldr r0, _080E984C - adds r1, r1, r0 - ldrb r0, [r2] - ldrb r1, [r1] - cmp r0, r1 - bne _080E980C - movs r0, #1 - strh r0, [r4] - ldr r0, _080E9850 - adds r1, r3, #0 - bl VarSet -_080E983C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E9844: .4byte gUnknown_2039CE8 -_080E9848: .4byte gUnknown_3005AEC -_080E984C: .4byte 0x00001A9C -_080E9850: .4byte 0x00004054 - thumb_func_end TrySetCurSecretBaseIndex - - thumb_func_start CheckPlayerHasSecretBase -CheckPlayerHasSecretBase: @ 0x080E9854 - push {lr} - ldr r0, _080E986C - ldr r0, [r0] - ldr r1, _080E9870 - adds r0, r0, r1 - ldrb r1, [r0] - cmp r1, #0 - beq _080E9878 - ldr r1, _080E9874 - movs r0, #1 - strh r0, [r1] - b _080E987C - .align 2, 0 -_080E986C: .4byte gUnknown_3005AEC -_080E9870: .4byte 0x00001A9C -_080E9874: .4byte gUnknown_2037290 -_080E9878: - ldr r0, _080E9880 - strh r1, [r0] -_080E987C: - pop {r0} - bx r0 - .align 2, 0 -_080E9880: .4byte gUnknown_2037290 - thumb_func_end CheckPlayerHasSecretBase - - thumb_func_start GetSecretBaseTypeInFrontOfPlayer_ -GetSecretBaseTypeInFrontOfPlayer_: @ 0x080E9884 - push {r4, lr} - sub sp, #4 - mov r4, sp - adds r4, #2 - 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, _080E98BC - adds r0, r2, #0 - ands r1, r0 - adds r0, r1, #0 - subs r0, #0x90 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bhi _080E98C0 - movs r0, #1 - b _080E991A - .align 2, 0 -_080E98BC: .4byte 0x00000FFF -_080E98C0: - adds r0, r1, #0 - subs r0, #0x92 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bhi _080E98D0 - movs r0, #2 - b _080E991A -_080E98D0: - adds r0, r1, #0 - subs r0, #0x9a - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bhi _080E98E0 - movs r0, #3 - b _080E991A -_080E98E0: - adds r0, r1, #0 - subs r0, #0x94 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bhi _080E98F0 - movs r0, #4 - b _080E991A -_080E98F0: - adds r0, r1, #0 - subs r0, #0x96 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bls _080E9904 - cmp r1, #0x9c - beq _080E9904 - cmp r1, #0x9d - bne _080E9908 -_080E9904: - movs r0, #5 - b _080E991A -_080E9908: - adds r0, r1, #0 - subs r0, #0x98 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bls _080E9918 - movs r0, #0 - b _080E991A -_080E9918: - movs r0, #6 -_080E991A: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetSecretBaseTypeInFrontOfPlayer_ - - thumb_func_start GetSecretBaseTypeInFrontOfPlayer -GetSecretBaseTypeInFrontOfPlayer: @ 0x080E9924 - push {r4, lr} - ldr r4, _080E9938 - bl GetSecretBaseTypeInFrontOfPlayer_ - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E9938: .4byte gUnknown_2037286 - thumb_func_end GetSecretBaseTypeInFrontOfPlayer - - thumb_func_start FindMetatileIdMapCoords -FindMetatileIdMapCoords: @ 0x080E993C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - str r0, [sp] - str r1, [sp, #4] - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - mov sl, r2 - ldr r0, _080E99A0 - ldr r0, [r0] - mov r8, r0 - movs r0, #0 - mov ip, r0 - mov r1, r8 - ldr r0, [r1, #4] - cmp ip, r0 - bge _080E99C8 - ldr r4, [r1] -_080E9966: - movs r2, #0 - mov r0, ip - lsls r7, r0, #0x10 - cmp r2, r4 - bge _080E99B4 - asrs r0, r7, #0x10 - adds r6, r0, #0 - muls r6, r4, r6 - mov r1, r8 - ldr r5, [r1, #0xc] - ldr r0, _080E99A4 - mov sb, r0 -_080E997E: - lsls r0, r2, #0x10 - asrs r3, r0, #0x10 - adds r0, r6, r3 - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r1, [r0] - mov r0, sb - ands r0, r1 - cmp r0, sl - bne _080E99A8 - ldr r1, [sp] - strh r2, [r1] - mov r0, ip - ldr r2, [sp, #4] - strh r0, [r2] - b _080E99C8 - .align 2, 0 -_080E99A0: .4byte gUnknown_2036FB8 -_080E99A4: .4byte 0x000003FF -_080E99A8: - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, r4 - blt _080E997E -_080E99B4: - movs r2, #0x80 - lsls r2, r2, #9 - adds r1, r7, r2 - lsrs r0, r1, #0x10 - mov ip, r0 - asrs r1, r1, #0x10 - mov r2, r8 - ldr r0, [r2, #4] - cmp r1, r0 - blt _080E9966 -_080E99C8: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end FindMetatileIdMapCoords - - thumb_func_start ToggleSecretBaseEntranceMetatile -ToggleSecretBaseEntranceMetatile: @ 0x080E99D8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - mov r4, sp - adds r4, #2 - 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 ip, r4 - lsls r0, r0, #0x10 - asrs r3, r0, #0x10 - ldr r1, _080E9A24 - mov r8, r1 - adds r7, r0, #0 - mov r4, sp - mov r6, ip -_080E9A0C: - ldr r0, _080E9A24 - lsls r1, r5, #2 - adds r2, r1, r0 - ldrh r0, [r2] - cmp r0, r3 - bne _080E9A28 - movs r3, #0 - ldrsh r0, [r4, r3] - movs r5, #0 - ldrsh r1, [r6, r5] - ldrh r3, [r2, #2] - b _080E9A50 - .align 2, 0 -_080E9A24: .4byte gUnknown_8568A78 -_080E9A28: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #6 - bls _080E9A0C - movs r5, #0 - mov r4, sp - mov r6, ip -_080E9A38: - lsls r0, r5, #2 - mov r1, r8 - adds r3, r0, r1 - ldrh r1, [r3, #2] - asrs r0, r7, #0x10 - cmp r1, r0 - bne _080E9A6A - movs r2, #0 - ldrsh r0, [r4, r2] - movs r5, #0 - ldrsh r1, [r6, r5] - ldrh r3, [r3] -_080E9A50: - movs r5, #0xc0 - lsls r5, 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 _080E9A74 -_080E9A6A: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #6 - bls _080E9A38 -_080E9A74: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end ToggleSecretBaseEntranceMetatile - - thumb_func_start GetNameLength -GetNameLength: @ 0x080E9A80 - push {lr} - adds r2, r0, #0 - movs r1, #0 -_080E9A86: - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #0xff - bne _080E9A92 - adds r0, r1, #0 - b _080E9A9E -_080E9A92: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #6 - bls _080E9A86 - movs r0, #7 -_080E9A9E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetNameLength - - thumb_func_start SetPlayerSecretBase -SetPlayerSecretBase: @ 0x080E9AA4 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - ldr r2, _080E9B40 - ldr r0, [r2] - ldr r1, _080E9B44 - ldrb r1, [r1] - ldr r3, _080E9B48 - adds r0, r0, r3 - strb r1, [r0] - movs r3, #0 - ldr r5, _080E9B4C - ldr r4, _080E9B50 -_080E9ABE: - ldr r1, [r2] - adds r1, r1, r5 - adds r1, r1, r3 - ldr r0, [r4] - adds r0, #0xa - adds r0, r0, r3 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #3 - bls _080E9ABE - ldr r0, _080E9B54 - movs r1, #0 - bl VarSet - ldr r6, _080E9B40 - ldr r4, [r6] - ldr r0, _080E9B58 - adds r4, r4, r0 - ldr r1, _080E9B50 - mov r8, r1 - ldr r5, [r1] - adds r0, r5, #0 - bl GetNameLength - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl StringCopyN - ldr r3, [r6] - mov r1, r8 - ldr r0, [r1] - ldrb r0, [r0, #8] - ldr r1, _080E9B5C - adds r3, r3, r1 - movs r4, #1 - adds r1, r4, #0 - ands r1, r0 - lsls r1, r1, #4 - ldrb r2, [r3] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldr r0, [r6] - ldr r3, _080E9B60 - adds r0, r0, r3 - strb r4, [r0] - ldr r0, _080E9B64 - ldr r1, _080E9B68 - ldrb r1, [r1, #0x14] - bl VarSet - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080E9B40: .4byte gUnknown_3005AEC -_080E9B44: .4byte gUnknown_2039CE8 -_080E9B48: .4byte 0x00001A9C -_080E9B4C: .4byte 0x00001AA5 -_080E9B50: .4byte gUnknown_3005AF0 -_080E9B54: .4byte 0x00004054 -_080E9B58: .4byte 0x00001A9E -_080E9B5C: .4byte 0x00001A9D -_080E9B60: .4byte 0x00001AA9 -_080E9B64: .4byte 0x00004026 -_080E9B68: .4byte gUnknown_2036FB8 - thumb_func_end SetPlayerSecretBase - - thumb_func_start SetOccupiedSecretBaseEntranceMetatiles -SetOccupiedSecretBaseEntranceMetatiles: @ 0x080E9B6C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov r8, r0 - movs r5, #0 - b _080E9C16 -_080E9B7A: - mov r0, r8 - ldr r1, [r0, #0x10] - lsls r2, r5, #1 - adds r0, r2, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #5] - adds r6, r1, #0 - adds r1, r5, #1 - mov sb, r1 - cmp r0, #8 - bne _080E9C0E - movs r4, #0 - ldr r7, _080E9BEC -_080E9B96: - ldr r1, [r7] - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #5 - adds r1, r1, r0 - ldr r0, _080E9BF0 - adds r1, r1, r0 - ldrb r1, [r1] - adds r0, r2, r5 - lsls r0, r0, #2 - adds r3, r0, r6 - ldr r0, [r3, #8] - cmp r1, r0 - bne _080E9C04 - ldrh r5, [r3] - adds r5, #7 - ldrh r4, [r3, #2] - adds r4, #7 - lsls r5, r5, #0x10 - asrs r0, r5, #0x10 - lsls r4, r4, #0x10 - asrs r1, r4, #0x10 - bl MapGridGetMetatileIdAt - movs r3, #0 - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - ldr r6, _080E9BF4 -_080E9BCE: - lsls r0, r3, #2 - adds r2, r0, r6 - ldrh r0, [r2] - cmp r0, r1 - bne _080E9BF8 - ldrh r0, [r2, #2] - movs r1, #0xc0 - lsls r1, r1, #4 - adds r2, r1, #0 - orrs r2, r0 - asrs r0, r5, #0x10 - asrs r1, r4, #0x10 - bl MapGridSetMetatileIdAt - b _080E9C0E - .align 2, 0 -_080E9BEC: .4byte gUnknown_3005AEC -_080E9BF0: .4byte 0x00001A9C -_080E9BF4: .4byte gUnknown_8568A78 -_080E9BF8: - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #6 - bls _080E9BCE - b _080E9C0E -_080E9C04: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x13 - bls _080E9B96 -_080E9C0E: - mov r1, sb - lsls r0, r1, #0x10 - lsrs r5, r0, #0x10 - mov r0, r8 -_080E9C16: - ldrb r0, [r0, #3] - cmp r5, r0 - blo _080E9B7A - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end SetOccupiedSecretBaseEntranceMetatiles - - thumb_func_start SetSecretBaseWarpDestination -SetSecretBaseWarpDestination: @ 0x080E9C28 - push {lr} - ldr r0, _080E9C54 - ldrb r0, [r0] - movs r1, #0xa - bl __udivsi3 - ldr r2, _080E9C58 - lsls r0, r0, #0x1a - asrs r0, r0, #0x18 - adds r1, r0, r2 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, #1 - adds r0, r0, r2 - movs r2, #0 - ldrsb r2, [r0, r2] - movs r0, #0x19 - bl SetWarpDestinationToMapWarp - pop {r0} - bx r0 - .align 2, 0 -_080E9C54: .4byte gUnknown_2039CE8 -_080E9C58: .4byte gUnknown_8568A94 - thumb_func_end SetSecretBaseWarpDestination - - thumb_func_start Task_EnterSecretBase -Task_EnterSecretBase: @ 0x080E9C5C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _080E9C7C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r2, r0, r1 - movs r1, #8 - ldrsh r0, [r2, r1] - cmp r0, #0 - beq _080E9C80 - cmp r0, #1 - beq _080E9C98 - b _080E9CD6 - .align 2, 0 -_080E9C7C: .4byte gUnknown_3005B60 -_080E9C80: - ldr r0, _080E9C94 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080E9CD6 - movs r0, #1 - strh r0, [r2, #8] - b _080E9CD6 - .align 2, 0 -_080E9C94: .4byte gUnknown_2037C74 -_080E9C98: - ldr r0, _080E9CDC - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _080E9CE0 - ldr r2, [r1] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #5 - adds r2, r2, r1 - ldr r0, _080E9CE4 - adds r2, r2, r0 - ldrb r0, [r2] - cmp r0, #0xfe - bhi _080E9CBC - adds r0, #1 - strb r0, [r2] -_080E9CBC: - bl SetSecretBaseWarpDestination - bl WarpIntoMap - ldr r0, _080E9CE8 - ldr r1, _080E9CEC - str r1, [r0] - ldr r0, _080E9CF0 - bl SetMainCallback2 - adds r0, r4, #0 - bl DestroyTask -_080E9CD6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E9CDC: .4byte 0x00004054 -_080E9CE0: .4byte gUnknown_3005AEC -_080E9CE4: .4byte 0x00001AAC -_080E9CE8: .4byte gUnknown_3005B0C -_080E9CEC: .4byte FieldCallback_ReturnToEventScript2 -_080E9CF0: .4byte CB2_LoadMap - thumb_func_end Task_EnterSecretBase - - thumb_func_start EnterSecretBase -EnterSecretBase: @ 0x080E9CF4 - push {lr} - ldr r0, _080E9D20 - movs r1, #0 - bl CreateTask - movs r0, #1 - movs r1, #0 - bl FadeScreen - ldr r0, _080E9D24 - ldr r0, [r0] - movs r1, #4 - ldrsb r1, [r0, r1] - movs r2, #5 - ldrsb r2, [r0, r2] - movs r3, #1 - rsbs r3, r3, #0 - movs r0, #0 - bl SetDynamicWarp - pop {r0} - bx r0 - .align 2, 0 -_080E9D20: .4byte Task_EnterSecretBase -_080E9D24: .4byte gUnknown_3005AEC - thumb_func_end EnterSecretBase - - thumb_func_start SecretBaseMapPopupEnabled -SecretBaseMapPopupEnabled: @ 0x080E9D28 - push {lr} - ldr r0, _080E9D44 - ldrb r0, [r0, #0x17] - cmp r0, #9 - bne _080E9D4C - ldr r0, _080E9D48 - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080E9D4C - movs r0, #0 - b _080E9D4E - .align 2, 0 -_080E9D44: .4byte gUnknown_2036FB8 -_080E9D48: .4byte 0x00004097 -_080E9D4C: - movs r0, #1 -_080E9D4E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end SecretBaseMapPopupEnabled - - thumb_func_start EnterNewlyCreatedSecretBase_WaitFadeIn -EnterNewlyCreatedSecretBase_WaitFadeIn: @ 0x080E9D54 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080E9D8C - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080E9D90 - adds r0, r0, r1 - movs r1, #2 - bl EventObjectTurn - bl IsWeatherNotFadingIn - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080E9D84 - bl EnableBothScriptContexts - adds r0, r4, #0 - bl DestroyTask -_080E9D84: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E9D8C: .4byte gUnknown_2037230 -_080E9D90: .4byte gUnknown_2036FF0 - thumb_func_end EnterNewlyCreatedSecretBase_WaitFadeIn - - thumb_func_start EnterNewlyCreatedSecretBase_StartFadeIn -EnterNewlyCreatedSecretBase_StartFadeIn: @ 0x080E9D94 - push {r4, lr} - sub sp, #4 - bl sub_080987DC - bl HideMapNamePopUpWindow - mov r4, sp - adds r4, #2 - movs r2, #0x88 - lsls r2, r2, #2 - mov r0, sp - adds r1, r4, #0 - bl FindMetatileIdMapCoords - mov r1, sp - mov r0, sp - ldrh r0, [r0] - adds r0, #7 - strh r0, [r1] - ldrh r0, [r4] - adds r0, #7 - strh r0, [r4] - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0 - ldrsh r1, [r4, r2] - movs r2, #0xe2 - lsls r2, r2, #4 - bl MapGridSetMetatileIdAt - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0 - ldrsh r1, [r4, r2] - bl CurrentMapDrawMetatileAt - bl pal_fill_black - ldr r0, _080E9DF4 - movs r1, #0 - bl CreateTask - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E9DF4: .4byte EnterNewlyCreatedSecretBase_WaitFadeIn - thumb_func_end EnterNewlyCreatedSecretBase_StartFadeIn - - thumb_func_start Task_EnterNewlyCreatedSecretBase -Task_EnterNewlyCreatedSecretBase: @ 0x080E9DF8 - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _080E9E68 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080E9E60 - ldr r0, _080E9E6C - ldrb r0, [r0] - movs r1, #0xa - bl __udivsi3 - ldr r1, _080E9E70 - ldr r1, [r1] - movs r5, #4 - ldrsb r5, [r1, r5] - ldrb r1, [r1, #5] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r2, #1 - rsbs r2, r2, #0 - ldr r4, _080E9E74 - lsls r0, r0, #0x1a - asrs r0, r0, #0x18 - adds r3, r0, #2 - adds r3, r3, r4 - ldrb r3, [r3] - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - adds r0, #3 - adds r0, r0, r4 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - str r0, [sp] - adds r0, r5, #0 - bl SetWarpDestination - bl WarpIntoMap - ldr r1, _080E9E78 - ldr r0, _080E9E7C - str r0, [r1] - ldr r0, _080E9E80 - bl SetMainCallback2 - adds r0, r6, #0 - bl DestroyTask -_080E9E60: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080E9E68: .4byte gUnknown_2037C74 -_080E9E6C: .4byte gUnknown_2039CE8 -_080E9E70: .4byte gUnknown_3005AEC -_080E9E74: .4byte gUnknown_8568A94 -_080E9E78: .4byte gUnknown_3005B0C -_080E9E7C: .4byte EnterNewlyCreatedSecretBase_StartFadeIn -_080E9E80: .4byte CB2_LoadMap - thumb_func_end Task_EnterNewlyCreatedSecretBase - - thumb_func_start sub_080E9E84 -sub_080E9E84: @ 0x080E9E84 - push {lr} - ldr r0, _080E9E9C - movs r1, #0 - bl CreateTask - movs r0, #1 - movs r1, #0 - bl FadeScreen - pop {r0} - bx r0 - .align 2, 0 -_080E9E9C: .4byte Task_EnterNewlyCreatedSecretBase - thumb_func_end sub_080E9E84 - - thumb_func_start CurMapIsSecretBase -CurMapIsSecretBase: @ 0x080E9EA0 - push {lr} - ldr r0, _080E9EB8 - ldr r1, [r0] - movs r0, #4 - ldrsb r0, [r1, r0] - cmp r0, #0x19 - bne _080E9EBC - ldrb r0, [r1, #5] - cmp r0, #0x17 - bhi _080E9EBC - movs r0, #1 - b _080E9EBE - .align 2, 0 -_080E9EB8: .4byte gUnknown_3005AEC -_080E9EBC: - movs r0, #0 -_080E9EBE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CurMapIsSecretBase - - thumb_func_start sub_080E9EC4 -sub_080E9EC4: @ 0x080E9EC4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - bl CurMapIsSecretBase - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080E9FBC - ldr r0, _080E9F74 - bl VarGet - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r1, _080E9F78 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #5 - ldr r2, _080E9F7C - adds r0, r0, r2 - ldr r1, [r1] - adds r1, r1, r0 - adds r7, r1, #0 - adds r7, #0x12 - adds r6, r1, #0 - adds r6, #0x22 - movs r1, #0 - mov r0, sp - strh r1, [r0] - mov r4, sp - ldr r0, _080E9F80 - mov r8, r0 -_080E9F0C: - ldrh r1, [r4] - adds r2, r7, r1 - ldrb r0, [r2] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x77 - bhi _080E9F40 - ldrb r3, [r2] - lsls r0, r3, #3 - subs r0, r0, r3 - lsls r0, r0, #2 - add r0, r8 - ldrb r0, [r0, #0xc] - cmp r0, #4 - beq _080E9F40 - adds r0, r6, r1 - ldrb r2, [r0] - lsrs r0, r2, #4 - adds r0, #7 - movs r1, #0xf - ands r1, r2 - adds r1, #7 - adds r2, r3, #0 - bl sub_08127D08 -_080E9F40: - ldrh r0, [r4] - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - strh r0, [r4] - cmp r0, #0xf - bls _080E9F0C - cmp r5, #0 - beq _080E9F88 - mov r4, sp - adds r4, #2 - movs r2, #0x88 - lsls r2, r2, #2 - mov r0, sp - adds r1, r4, #0 - bl FindMetatileIdMapCoords - mov r0, sp - ldrh r0, [r0] - adds r0, #7 - ldrh r1, [r4] - adds r1, #7 - ldr r2, _080E9F84 - bl MapGridSetMetatileIdAt - b _080E9FBC - .align 2, 0 -_080E9F74: .4byte 0x00004054 -_080E9F78: .4byte gUnknown_3005AEC -_080E9F7C: .4byte 0x00001A9C -_080E9F80: .4byte gUnknown_8580CD0 -_080E9F84: .4byte 0x00000E21 -_080E9F88: - mov r2, sb - cmp r2, #1 - bne _080E9FBC - ldr r0, _080E9FCC - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bne _080E9FBC - mov r4, sp - adds r4, #2 - movs r2, #0x88 - lsls r2, r2, #2 - mov r0, sp - adds r1, r4, #0 - bl FindMetatileIdMapCoords - mov r0, sp - ldrh r0, [r0] - adds r0, #7 - ldrh r1, [r4] - adds r1, #7 - ldr r2, _080E9FD0 - bl MapGridSetMetatileIdAt -_080E9FBC: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080E9FCC: .4byte 0x00004089 -_080E9FD0: .4byte 0x00000E0A - thumb_func_end sub_080E9EC4 - - thumb_func_start InitSecretBaseDecorationSprites -InitSecretBaseDecorationSprites: @ 0x080E9FD4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - bl CurMapIsSecretBase - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080EA00C - ldr r0, _080EA000 - ldr r0, [r0] - ldr r1, _080EA004 - adds r1, r0, r1 - str r1, [sp, #4] - ldr r2, _080EA008 - adds r2, r0, r2 - str r2, [sp, #8] - movs r3, #0xc - str r3, [sp, #0x10] - b _080EA034 - .align 2, 0 -_080EA000: .4byte gUnknown_3005AEC -_080EA004: .4byte 0x0000271C -_080EA008: .4byte 0x00002728 -_080EA00C: - ldr r0, _080EA038 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r2, _080EA03C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #5 - ldr r4, _080EA040 - adds r1, r1, r4 - ldr r0, [r2] - adds r0, r0, r1 - adds r1, r0, #0 - adds r1, #0x12 - str r1, [sp, #4] - adds r0, #0x22 - str r0, [sp, #8] - movs r2, #0x10 - str r2, [sp, #0x10] -_080EA034: - movs r6, #0 - b _080EA1FA - .align 2, 0 -_080EA038: .4byte 0x00004054 -_080EA03C: .4byte gUnknown_3005AEC -_080EA040: .4byte 0x00001A9C -_080EA044: - ldr r4, [sp, #4] - adds r0, r4, r6 - ldrb r1, [r0] - mov sl, r0 - adds r0, r6, #1 - str r0, [sp, #0x14] - cmp r1, #0 - bne _080EA056 - b _080EA1F4 -_080EA056: - mov r1, sl - ldrb r0, [r1] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - ldr r2, _080EA1B0 - adds r1, r1, r2 - ldrb r0, [r1, #0xc] - ldrb r1, [r1, #0xe] - str r1, [sp, #0xc] - cmp r0, #4 - beq _080EA070 - b _080EA1F4 -_080EA070: - movs r5, #0 - ldr r0, _080EA1B4 - ldr r3, [r0, #4] - ldrb r4, [r3] - mov sb, r0 - cmp r5, r4 - bhs _080EA0AE - ldr r0, [r3, #4] - ldrh r2, [r0, #0x14] - ldr r1, _080EA1B8 - ldrh r0, [r1] - adds r0, #0xae - adds r7, r1, #0 - cmp r2, r0 - beq _080EA0AE - adds r2, r4, #0 -_080EA090: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, r2 - bhs _080EA0AE - ldr r1, [r3, #4] - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #0x14] - ldrh r0, [r7] - adds r0, #0xae - cmp r1, r0 - bne _080EA090 -_080EA0AE: - mov r3, sb - ldr r0, [r3, #4] - ldrb r0, [r0] - cmp r5, r0 - bne _080EA0BA - b _080EA1F4 -_080EA0BA: - ldr r4, _080EA1BC - mov r8, r4 - ldr r0, [sp, #8] - adds r1, r0, r6 - ldrb r0, [r1] - lsrs r0, r0, #4 - strh r0, [r4] - ldr r7, _080EA1C0 - ldrb r1, [r1] - movs r0, #0xf - ands r0, r1 - strh r0, [r7] - ldrh r0, [r4] - adds r0, #7 - ldrh r1, [r7] - adds r1, #7 - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl MetatileBehavior_HoldsSmallDecoration - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080EA0FE - adds r0, r4, #0 - bl MetatileBehavior_HoldsLargeDecoration - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080EA1F4 -_080EA0FE: - ldr r6, _080EA1C4 - mov r1, sb - ldr r0, [r1, #4] - ldr r1, [r0, #4] - lsls r4, r5, #1 - adds r4, r4, r5 - lsls r4, r4, #3 - adds r1, r4, r1 - ldr r2, _080EA1C8 - adds r0, r2, #0 - ldrb r1, [r1, #1] - adds r0, r0, r1 - strh r0, [r6] - ldrh r0, [r6] - mov r3, sl - ldrb r2, [r3] - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - ldr r2, _080EA1CC - adds r1, r1, r2 - ldr r1, [r1] - ldrh r1, [r1] - bl VarSet - mov r3, sb - ldr r0, [r3, #4] - ldr r0, [r0, #4] - adds r4, r4, r0 - ldrb r0, [r4] - strh r0, [r6] - ldr r0, _080EA1B8 - ldrh r0, [r0] - adds r0, #0xae - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl FlagClear - ldrb r0, [r6] - ldr r5, _080EA1D0 - ldr r2, [r5] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - bl TrySpawnEventObject - ldrb r0, [r6] - ldr r2, [r5] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - mov r4, r8 - movs r3, #0 - ldrsh r4, [r4, r3] - mov r8, r4 - movs r4, #0 - ldrsh r7, [r7, r4] - str r7, [sp] - mov r3, r8 - bl TryMoveEventObjectToMapCoords - ldrb r0, [r6] - ldr r2, [r5] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - bl TryOverrideEventObjectTemplateCoords - bl CurMapIsSecretBase - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080EA1EC - ldr r0, _080EA1D4 - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080EA1EC - ldr r0, [sp, #0xc] - cmp r0, #6 - bne _080EA1D8 - ldrb r0, [r6] - ldr r2, [r5] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - movs r3, #6 - bl OverrideSecretBaseDecorationSpriteScript - b _080EA1EC - .align 2, 0 -_080EA1B0: .4byte gUnknown_8580CD0 -_080EA1B4: .4byte gUnknown_2036FB8 -_080EA1B8: .4byte gUnknown_2037280 -_080EA1BC: .4byte gUnknown_2037284 -_080EA1C0: .4byte gUnknown_2037286 -_080EA1C4: .4byte gUnknown_2037290 -_080EA1C8: .4byte 0x00003F20 -_080EA1CC: .4byte gUnknown_8580CE8 -_080EA1D0: .4byte gUnknown_3005AEC -_080EA1D4: .4byte 0x00004054 -_080EA1D8: - ldr r1, [sp, #0xc] - cmp r1, #7 - bne _080EA1EC - ldrb r0, [r6] - ldr r2, [r5] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - movs r3, #7 - bl OverrideSecretBaseDecorationSpriteScript -_080EA1EC: - ldr r1, _080EA214 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_080EA1F4: - ldr r2, [sp, #0x14] - lsls r0, r2, #0x18 - lsrs r6, r0, #0x18 -_080EA1FA: - ldr r3, [sp, #0x10] - cmp r6, r3 - bhs _080EA202 - b _080EA044 -_080EA202: - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA214: .4byte gUnknown_2037280 - thumb_func_end InitSecretBaseDecorationSprites - - thumb_func_start HideSecretBaseDecorationSprites -HideSecretBaseDecorationSprites: @ 0x080EA218 - push {r4, r5, r6, lr} - movs r5, #0 - ldr r1, _080EA26C - ldr r0, [r1, #4] - ldrb r0, [r0] - cmp r5, r0 - bhs _080EA264 - adds r6, r1, #0 -_080EA228: - ldr r0, [r6, #4] - ldr r1, [r0, #4] - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r1, r0, r1 - ldrh r4, [r1, #0x14] - adds r0, r4, #0 - subs r0, #0xae - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xd - bhi _080EA256 - ldrb r0, [r1] - ldr r1, _080EA270 - ldr r2, [r1] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - bl RemoveEventObjectByLocalIdAndMap - adds r0, r4, #0 - bl FlagSet -_080EA256: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, [r6, #4] - ldrb r0, [r0] - cmp r5, r0 - blo _080EA228 -_080EA264: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080EA26C: .4byte gUnknown_2036FB8 -_080EA270: .4byte gUnknown_3005AEC - thumb_func_end HideSecretBaseDecorationSprites - - thumb_func_start SetSecretBaseOwnerGfxId -SetSecretBaseOwnerGfxId: @ 0x080EA274 - push {r4, r5, lr} - ldr r5, _080EA29C - ldr r4, _080EA2A0 - ldr r0, _080EA2A4 - bl VarGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetSecretBaseOwnerType - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r4 - ldrb r1, [r0] - adds r0, r5, #0 - bl VarSet - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080EA29C: .4byte 0x0000401F -_080EA2A0: .4byte gUnknown_8568B0C -_080EA2A4: .4byte 0x00004054 - thumb_func_end SetSecretBaseOwnerGfxId - - thumb_func_start SetCurSecretBaseIdFromPosition -SetCurSecretBaseIdFromPosition: @ 0x080EA2A8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - movs r3, #0 - ldrb r0, [r4, #3] - cmp r3, r0 - bge _080EA300 - ldr r6, _080EA2EC -_080EA2B8: - lsls r3, r3, #0x10 - asrs r1, r3, #0x10 - ldr r2, [r4, #0x10] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, r0, r2 - ldrb r0, [r2, #5] - cmp r0, #8 - bne _080EA2F0 - movs r0, #0 - ldrsh r1, [r5, r0] - ldrh r0, [r2] - adds r0, #7 - cmp r1, r0 - bne _080EA2F0 - movs r0, #2 - ldrsh r1, [r5, r0] - ldrh r0, [r2, #2] - adds r0, #7 - cmp r1, r0 - bne _080EA2F0 - ldr r0, [r2, #8] - strb r0, [r6] - b _080EA300 - .align 2, 0 -_080EA2EC: .4byte gUnknown_2039CE8 -_080EA2F0: - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r3, r1 - lsrs r3, r0, #0x10 - asrs r0, r0, #0x10 - ldrb r1, [r4, #3] - cmp r0, r1 - blt _080EA2B8 -_080EA300: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetCurSecretBaseIdFromPosition - - thumb_func_start FldEffPoison_Start -FldEffPoison_Start: @ 0x080EA308 - push {lr} - bl SetCurSecretBaseIdFromPosition - bl TrySetCurSecretBaseIndex - ldr r0, _080EA31C - bl ScriptContext1_SetupScript - pop {r0} - bx r0 - .align 2, 0 -_080EA31C: .4byte gUnknown_8245C66 - thumb_func_end FldEffPoison_Start - - thumb_func_start TrySetCurSecretBase -TrySetCurSecretBase: @ 0x080EA320 - push {lr} - bl SetCurSecretBaseId - bl TrySetCurSecretBaseIndex - ldr r0, _080EA338 - ldrh r0, [r0] - cmp r0, #1 - beq _080EA33C - movs r0, #1 - b _080EA33E - .align 2, 0 -_080EA338: .4byte gUnknown_2037290 -_080EA33C: - movs r0, #0 -_080EA33E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end TrySetCurSecretBase - - thumb_func_start Task_WarpOutOfSecretBase -Task_WarpOutOfSecretBase: @ 0x080EA344 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _080EA368 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _080EA37C - cmp r0, #1 - bgt _080EA36C - cmp r0, #0 - beq _080EA372 - b _080EA3B4 - .align 2, 0 -_080EA368: .4byte gUnknown_3005B60 -_080EA36C: - cmp r0, #2 - beq _080EA394 - b _080EA3B4 -_080EA372: - bl sub_080987DC - movs r0, #1 - strh r0, [r4, #8] - b _080EA3B4 -_080EA37C: - ldr r0, _080EA390 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080EA3B4 - movs r0, #2 - strh r0, [r4, #8] - b _080EA3B4 - .align 2, 0 -_080EA390: .4byte gUnknown_2037C74 -_080EA394: - movs r0, #0x7e - bl SetWarpDestinationToDynamicWarp - bl WarpIntoMap - ldr r0, _080EA3BC - ldr r1, _080EA3C0 - str r1, [r0] - ldr r0, _080EA3C4 - bl SetMainCallback2 - bl sub_080987E8 - adds r0, r5, #0 - bl DestroyTask -_080EA3B4: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080EA3BC: .4byte gUnknown_3005B0C -_080EA3C0: .4byte mapldr_default -_080EA3C4: .4byte CB2_LoadMap - thumb_func_end Task_WarpOutOfSecretBase - - thumb_func_start sub_080EA3C8 -sub_080EA3C8: @ 0x080EA3C8 - push {lr} - ldr r0, _080EA3E0 - movs r1, #0 - bl CreateTask - movs r0, #1 - movs r1, #0 - bl FadeScreen - pop {r0} - bx r0 - .align 2, 0 -_080EA3E0: .4byte Task_WarpOutOfSecretBase - thumb_func_end sub_080EA3C8 - - thumb_func_start IsCurSecretBaseOwnedByAnotherPlayer -IsCurSecretBaseOwnedByAnotherPlayer: @ 0x080EA3E4 - push {lr} - ldr r0, _080EA400 - ldr r0, [r0] - ldr r1, _080EA404 - adds r0, r0, r1 - ldr r1, _080EA408 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - beq _080EA410 - ldr r1, _080EA40C - movs r0, #1 - b _080EA414 - .align 2, 0 -_080EA400: .4byte gUnknown_3005AEC -_080EA404: .4byte 0x00001A9C -_080EA408: .4byte gUnknown_2039CE8 -_080EA40C: .4byte gUnknown_2037290 -_080EA410: - ldr r1, _080EA41C - movs r0, #0 -_080EA414: - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080EA41C: .4byte gUnknown_2037290 - thumb_func_end IsCurSecretBaseOwnedByAnotherPlayer - - thumb_func_start sub_080EA420 -sub_080EA420: @ 0x080EA420 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, _080EA460 - lsls r4, r1, #2 - adds r4, r4, r1 - lsls r4, r4, #5 - ldr r0, [r0] - adds r4, r4, r0 - ldr r0, _080EA464 - adds r4, r4, r0 - adds r0, r4, #0 - bl GetNameLength - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r5, #0 - adds r1, r4, #0 - bl StringCopyN - movs r1, #0xff - strb r1, [r0] - ldr r1, _080EA468 - adds r0, r5, #0 - bl StringAppend - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080EA460: .4byte gUnknown_3005AEC -_080EA464: .4byte 0x00001A9E -_080EA468: .4byte gUnknown_85CA654 - thumb_func_end sub_080EA420 - - thumb_func_start sub_080EA46C -sub_080EA46C: @ 0x080EA46C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080EA488 - bl VarGet - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl sub_080EA420 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080EA488: .4byte 0x00004054 - thumb_func_end sub_080EA46C - - thumb_func_start sub_080EA48C -sub_080EA48C: @ 0x080EA48C - push {r4, r5, lr} - ldr r0, _080EA4C8 - bl VarGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080EA4CC - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #5 - ldr r0, [r1] - adds r4, r4, r0 - ldr r0, _080EA4D0 - adds r4, r4, r0 - ldr r5, _080EA4D4 - adds r0, r4, #0 - bl GetNameLength - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - 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 -_080EA4C8: .4byte 0x00004054 -_080EA4CC: .4byte gUnknown_3005AEC -_080EA4D0: .4byte 0x00001A9E -_080EA4D4: .4byte gUnknown_2021C40 - thumb_func_end sub_080EA48C - - thumb_func_start IsSecretBaseRegistered -IsSecretBaseRegistered: @ 0x080EA4D8 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080EA4FC - ldr r2, [r1] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #5 - adds r2, r2, r1 - ldr r0, _080EA500 - adds r2, r2, r0 - ldrb r0, [r2] - lsrs r0, r0, #6 - cmp r0, #0 - bne _080EA504 - movs r0, #0 - b _080EA506 - .align 2, 0 -_080EA4FC: .4byte gUnknown_3005AEC -_080EA500: .4byte 0x00001A9D -_080EA504: - movs r0, #1 -_080EA506: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsSecretBaseRegistered - - thumb_func_start GetAverageEVs -GetAverageEVs: @ 0x080EA50C - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0x1a - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - movs r1, #0x1b - bl GetMonData - adds r4, r4, r0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - movs r1, #0x1c - bl GetMonData - adds r4, r4, r0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - movs r1, #0x1d - bl GetMonData - adds r4, r4, r0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - movs r1, #0x1e - bl GetMonData - adds r4, r4, r0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - movs r1, #0x1f - bl GetMonData - adds r4, r4, r0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r4, #0 - movs r1, #6 - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end GetAverageEVs - - thumb_func_start SetPlayerSecretBaseParty -SetPlayerSecretBaseParty: @ 0x080EA574 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x24 - movs r0, #0 - mov sl, r0 - ldr r0, _080EA6D0 - ldr r1, [r0] - ldr r2, _080EA6D4 - adds r2, r1, r2 - str r2, [sp] - ldr r3, _080EA6D8 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, #0 - bne _080EA59A - b _080EA6C0 -_080EA59A: - movs r6, #0 - ldr r7, _080EA6DC - adds r7, r1, r7 - str r7, [sp, #0x14] - ldr r0, _080EA6E0 - adds r0, r1, r0 - str r0, [sp, #0xc] - ldr r2, _080EA6E4 - adds r2, r1, r2 - str r2, [sp, #0x10] - adds r3, #0x94 - adds r3, r1, r3 - str r3, [sp, #0x18] - ldr r7, _080EA6E8 - adds r7, r1, r7 - str r7, [sp, #0x1c] - mov sb, r6 -_080EA5BC: - movs r4, #0 - lsls r5, r6, #2 - lsls r3, r6, #1 - ldr r0, _080EA6EC - mov r8, r0 - adds r1, r6, #1 - str r1, [sp, #4] - adds r2, r5, #0 - ldr r1, [sp, #0x14] -_080EA5CE: - adds r0, r2, r4 - lsls r0, r0, #1 - adds r0, r1, r0 - mov r7, sb - strh r7, [r0] - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #3 - bls _080EA5CE - ldr r1, [sp, #0xc] - adds r0, r1, r3 - mov r2, sb - strh r2, [r0] - ldr r7, [sp, #0x10] - adds r0, r7, r3 - strh r2, [r0] - ldr r1, [sp, #0x18] - adds r0, r1, r6 - mov r2, sb - strb r2, [r0] - ldr r3, [sp] - adds r0, r3, r5 - mov r7, sb - str r7, [r0] - ldr r1, [sp, #0x1c] - adds r0, r1, r6 - strb r7, [r0] - movs r2, #0x64 - adds r5, r6, #0 - muls r5, r2, r5 - mov r3, r8 - adds r4, r5, r3 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _080EA6B4 - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - bne _080EA6B4 - movs r4, #0 - mov r7, sl - lsls r7, r7, #2 - mov r8, r7 - mov r0, sl - lsls r7, r0, #1 - adds r0, #1 - str r0, [sp, #8] - ldr r2, _080EA6EC -_080EA63A: - adds r1, r4, #0 - adds r1, #0xd - adds r0, r5, r2 - str r2, [sp, #0x20] - bl GetMonData - mov r3, r8 - adds r1, r3, r4 - lsls r1, r1, #1 - ldr r3, [sp, #0x14] - adds r1, r3, r1 - strh r0, [r1] - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r2, [sp, #0x20] - cmp r4, #3 - bls _080EA63A - movs r0, #0x64 - adds r4, r6, #0 - muls r4, r0, r4 - ldr r0, _080EA6EC - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - ldr r2, [sp, #0xc] - adds r1, r2, r7 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0xc - bl GetMonData - ldr r3, [sp, #0x10] - adds r1, r3, r7 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0x38 - bl GetMonData - ldr r1, [sp, #0x18] - add r1, sl - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0 - bl GetMonData - ldr r1, [sp] - add r1, r8 - str r0, [r1] - adds r0, r4, #0 - bl GetAverageEVs - ldr r1, [sp, #0x1c] - add r1, sl - strb r0, [r1] - ldr r7, [sp, #8] - lsls r0, r7, #0x10 - lsrs r0, r0, #0x10 - mov sl, r0 -_080EA6B4: - ldr r1, [sp, #4] - lsls r0, r1, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #5 - bhi _080EA6C0 - b _080EA5BC -_080EA6C0: - add sp, #0x24 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA6D0: .4byte gUnknown_3005AEC -_080EA6D4: .4byte 0x00001AD0 -_080EA6D8: .4byte 0x00001A9C -_080EA6DC: .4byte 0x00001AE8 -_080EA6E0: .4byte 0x00001B18 -_080EA6E4: .4byte 0x00001B24 -_080EA6E8: .4byte 0x00001B36 -_080EA6EC: .4byte gUnknown_2024190 - thumb_func_end SetPlayerSecretBaseParty - - thumb_func_start ClearAndLeaveSecretBase -ClearAndLeaveSecretBase: @ 0x080EA6F0 - push {r4, r5, r6, lr} - ldr r5, _080EA714 - ldr r0, [r5] - ldr r4, _080EA718 - adds r1, r0, r4 - ldrh r6, [r1] - ldr r1, _080EA71C - adds r0, r0, r1 - bl ClearSecretBase - ldr r0, [r5] - adds r0, r0, r4 - strh r6, [r0] - bl sub_080EA3C8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080EA714: .4byte gUnknown_3005AEC -_080EA718: .4byte 0x00001AAA -_080EA71C: .4byte 0x00001A9C - thumb_func_end ClearAndLeaveSecretBase - - thumb_func_start MoveOutOfSecretBase -MoveOutOfSecretBase: @ 0x080EA720 - push {lr} - movs r0, #0x14 - bl IncrementGameStat - bl ClearAndLeaveSecretBase - pop {r0} - bx r0 - thumb_func_end MoveOutOfSecretBase - - thumb_func_start ClosePlayerSecretBaseEntrance -ClosePlayerSecretBaseEntrance: @ 0x080EA730 - push {r4, r5, r6, r7, lr} - ldr r0, _080EA73C - ldr r4, [r0, #4] - movs r6, #0 - b _080EA7C2 - .align 2, 0 -_080EA73C: .4byte gUnknown_2036FB8 -_080EA740: - ldr r2, [r4, #0x10] - lsls r1, r6, #1 - adds r0, r1, r6 - lsls r0, r0, #2 - adds r2, r0, r2 - ldrb r0, [r2, #5] - adds r7, r1, #0 - cmp r0, #8 - bne _080EA7BC - ldr r0, _080EA790 - ldr r0, [r0] - ldr r1, _080EA794 - adds r0, r0, r1 - ldrb r1, [r0] - ldr r0, [r2, #8] - cmp r1, r0 - bne _080EA7BC - ldrh r0, [r2] - adds r0, #7 - ldrh r1, [r2, #2] - adds r1, #7 - bl MapGridGetMetatileIdAt - movs r1, #0 - ldr r5, _080EA798 - lsls r0, r0, #0x10 - asrs r2, r0, #0x10 -_080EA776: - lsls r0, r1, #2 - adds r3, r0, r5 - ldrh r0, [r3, #2] - cmp r0, r2 - beq _080EA79C - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #6 - bls _080EA776 -_080EA78A: - bl DrawWholeMapView - b _080EA7C8 - .align 2, 0 -_080EA790: .4byte gUnknown_3005AEC -_080EA794: .4byte 0x00001A9C -_080EA798: .4byte gUnknown_8568A78 -_080EA79C: - ldr r0, [r4, #0x10] - adds r1, r7, r6 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r0, [r1] - adds r0, #7 - ldrh r1, [r1, #2] - adds r1, #7 - ldrh r3, [r3] - movs r4, #0xc0 - lsls r4, r4, #4 - adds r2, r4, #0 - orrs r2, r3 - bl MapGridSetMetatileIdAt - b _080EA78A -_080EA7BC: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_080EA7C2: - ldrb r0, [r4, #3] - cmp r6, r0 - blo _080EA740 -_080EA7C8: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ClosePlayerSecretBaseEntrance - - thumb_func_start MoveOutOfSecretBaseFromOutside -MoveOutOfSecretBaseFromOutside: @ 0x080EA7D0 - push {r4, r5, r6, lr} - bl ClosePlayerSecretBaseEntrance - movs r0, #0x14 - bl IncrementGameStat - ldr r5, _080EA7FC - ldr r0, [r5] - ldr r4, _080EA800 - adds r1, r0, r4 - ldrh r6, [r1] - ldr r1, _080EA804 - adds r0, r0, r1 - bl ClearSecretBase - ldr r0, [r5] - adds r0, r0, r4 - strh r6, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080EA7FC: .4byte gUnknown_3005AEC -_080EA800: .4byte 0x00001AAA -_080EA804: .4byte 0x00001A9C - thumb_func_end MoveOutOfSecretBaseFromOutside - - thumb_func_start GetNumRegisteredSecretBases -GetNumRegisteredSecretBases: @ 0x080EA808 - push {r4, r5, lr} - movs r5, #0 - movs r4, #1 -_080EA80E: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl IsSecretBaseRegistered - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080EA824 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_080EA824: - lsls r0, r4, #0x10 - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r0, r1 - lsrs r4, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x13 - ble _080EA80E - adds r0, r5, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end GetNumRegisteredSecretBases - - thumb_func_start GetCurSecretBaseRegistrationValidity -GetCurSecretBaseRegistrationValidity: @ 0x080EA83C - push {lr} - ldr r0, _080EA85C - bl VarGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl IsSecretBaseRegistered - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #1 - bne _080EA864 - ldr r0, _080EA860 - strh r1, [r0] - b _080EA882 - .align 2, 0 -_080EA85C: .4byte 0x00004054 -_080EA860: .4byte gUnknown_2037290 -_080EA864: - bl GetNumRegisteredSecretBases - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #9 - bls _080EA87C - ldr r1, _080EA878 - movs r0, #2 - b _080EA880 - .align 2, 0 -_080EA878: .4byte gUnknown_2037290 -_080EA87C: - ldr r1, _080EA888 - movs r0, #0 -_080EA880: - strh r0, [r1] -_080EA882: - pop {r0} - bx r0 - .align 2, 0 -_080EA888: .4byte gUnknown_2037290 - thumb_func_end GetCurSecretBaseRegistrationValidity - - thumb_func_start ToggleCurSecretBaseRegistry -ToggleCurSecretBaseRegistry: @ 0x080EA88C - push {lr} - ldr r0, _080EA8C8 - bl VarGet - ldr r1, _080EA8CC - ldr r2, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #5 - adds r2, r2, r1 - ldr r0, _080EA8D0 - adds r2, r2, r0 - ldrb r3, [r2] - lsrs r1, r3, #6 - movs r0, #1 - eors r1, r0 - lsls r1, r1, #6 - movs r0, #0x3f - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x86 - lsls r0, r0, #1 - bl FlagSet - pop {r0} - bx r0 - .align 2, 0 -_080EA8C8: .4byte 0x00004054 -_080EA8CC: .4byte gUnknown_3005AEC -_080EA8D0: .4byte 0x00001A9D - thumb_func_end ToggleCurSecretBaseRegistry - - thumb_func_start sub_080EA8D4 -sub_080EA8D4: @ 0x080EA8D4 - push {lr} - ldr r0, _080EA8E4 - movs r1, #0 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080EA8E4: .4byte DoSecretBaseDecorationMenu - thumb_func_end sub_080EA8D4 - - thumb_func_start sub_080EA8E8 -sub_080EA8E8: @ 0x080EA8E8 - push {lr} - ldr r0, _080EA8F8 - movs r1, #0 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080EA8F8: .4byte Task_ShowSecretBaseRegistryMenu - thumb_func_end sub_080EA8E8 - - thumb_func_start Task_ShowSecretBaseRegistryMenu -Task_ShowSecretBaseRegistryMenu: @ 0x080EA8FC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r7, r0, #3 - ldr r0, _080EA960 - mov r8, r0 - adds r5, r7, r0 - bl sub_080987DC - bl GetNumRegisteredSecretBases - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5] - cmp r0, #0 - beq _080EA970 - movs r0, #0 - strh r0, [r5, #2] - strh r0, [r5, #4] - movs r0, #0 - movs r1, #0 - bl sub_08197028 - ldr r4, _080EA964 - movs r0, #0x84 - lsls r0, r0, #1 - bl AllocZeroed - str r0, [r4] - ldr r0, _080EA968 - bl AddWindow - strh r0, [r5, #0xc] - adds r0, r6, #0 - bl BuildRegistryMenuItems - adds r0, r6, #0 - bl FinalizeRegistryMenu - mov r0, r8 - subs r0, #8 - adds r0, r7, r0 - ldr r1, _080EA96C - str r1, [r0] - b _080EA97A - .align 2, 0 -_080EA960: .4byte gUnknown_3005B68 -_080EA964: .4byte gUnknown_2039CEC -_080EA968: .4byte gUnknown_8568B18 -_080EA96C: .4byte HandleRegistryMenuInput -_080EA970: - ldr r1, _080EA984 - ldr r2, _080EA988 - adds r0, r6, #0 - bl DisplayItemMessageOnField -_080EA97A: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA984: .4byte gUnknown_85CA688 -_080EA988: .4byte EventObjectInteractionPlantBerryTree - thumb_func_end Task_ShowSecretBaseRegistryMenu - - thumb_func_start BuildRegistryMenuItems -BuildRegistryMenuItems: @ 0x080EA98C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080EAA0C - adds r7, r1, r0 - movs r6, #0 - movs r5, #1 - ldr r0, _080EAA10 - mov r8, r0 -_080EA9A8: - adds r0, r5, #0 - bl IsSecretBaseRegistered - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080EA9DC - lsls r4, r6, #4 - adds r4, #0x58 - mov r1, r8 - ldr r0, [r1] - adds r0, r0, r4 - adds r1, r5, #0 - bl sub_080EA420 - mov r3, r8 - ldr r0, [r3] - lsls r2, r6, #3 - adds r1, r0, r2 - adds r4, r0, r4 - str r4, [r1] - adds r0, #4 - adds r0, r0, r2 - str r5, [r0] - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_080EA9DC: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0x13 - bls _080EA9A8 - ldr r4, _080EAA10 - ldr r1, [r4] - lsls r3, r6, #3 - adds r2, r1, r3 - ldr r0, _080EAA14 - str r0, [r2] - adds r1, #4 - adds r1, r1, r3 - movs r0, #2 - rsbs r0, r0, #0 - str r0, [r1] - adds r2, r6, #1 - strh r2, [r7] - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - cmp r0, #7 - bgt _080EAA18 - strh r2, [r7, #6] - b _080EAA1C - .align 2, 0 -_080EAA0C: .4byte gUnknown_3005B68 -_080EAA10: .4byte gUnknown_2039CEC -_080EAA14: .4byte gUnknown_85C93C4 -_080EAA18: - movs r0, #8 - strh r0, [r7, #6] -_080EAA1C: - ldr r2, _080EAA44 - adds r1, r2, #0 - ldr r0, _080EAA48 - ldm r0!, {r3, r5, r6} - stm r1!, {r3, r5, r6} - ldm r0!, {r3, r5, r6} - stm r1!, {r3, r5, r6} - ldrh r0, [r7, #0xc] - strb r0, [r2, #0x10] - ldrh r0, [r7] - strh r0, [r2, #0xc] - ldr r0, [r4] - str r0, [r2] - ldrh r0, [r7, #6] - strh r0, [r2, #0xe] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080EAA44: .4byte gUnknown_3006050 -_080EAA48: .4byte gUnknown_8568B28 - thumb_func_end BuildRegistryMenuItems - - thumb_func_start sub_080EAA4C -sub_080EAA4C: @ 0x080EAA4C - push {lr} - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #1 - beq _080EAA5C - movs r0, #5 - bl sub_080A306C -_080EAA5C: - pop {r0} - bx r0 - thumb_func_end sub_080EAA4C - - thumb_func_start FinalizeRegistryMenu -FinalizeRegistryMenu: @ 0x080EAA60 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - ldr r0, _080EAA9C - adds r4, r4, r0 - ldrb r0, [r4, #0xc] - movs r1, #0 - bl SetStandardWindowBorderStyle - ldr r0, _080EAAA0 - ldrh r1, [r4, #4] - ldrh r2, [r4, #2] - bl ListMenuInit - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0xa] - adds r0, r5, #0 - bl AddRegistryMenuScrollArrows - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080EAA9C: .4byte gUnknown_3005B68 -_080EAAA0: .4byte gUnknown_3006050 - thumb_func_end FinalizeRegistryMenu - - thumb_func_start AddRegistryMenuScrollArrows -AddRegistryMenuScrollArrows: @ 0x080EAAA4 - push {r4, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _080EAAE8 - adds r4, r4, r0 - movs r1, #0 - ldrsh r0, [r4, r1] - movs r2, #6 - ldrsh r1, [r4, r2] - subs r0, r0, r1 - str r0, [sp] - ldr r0, _080EAAEC - str r0, [sp, #4] - str r0, [sp, #8] - adds r0, r4, #4 - str r0, [sp, #0xc] - movs r0, #2 - movs r1, #0xbc - movs r2, #0xc - movs r3, #0x94 - bl AddScrollIndicatorArrowPairParameterized - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x10] - add sp, #0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EAAE8: .4byte gUnknown_3005B68 -_080EAAEC: .4byte 0x000013F8 - thumb_func_end AddRegistryMenuScrollArrows - - thumb_func_start HandleRegistryMenuInput -HandleRegistryMenuInput: @ 0x080EAAF0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _080EAB24 - adds r4, r0, r1 - ldrb r0, [r4, #0xa] - bl ListMenu_ProcessInput - adds r5, r0, #0 - ldrb r0, [r4, #0xa] - adds r1, r4, #4 - adds r2, r4, #2 - bl ListMenuGetScrollAndRow - movs r0, #2 - rsbs r0, r0, #0 - cmp r5, r0 - beq _080EAB28 - adds r0, #1 - cmp r5, r0 - bne _080EAB6C - b _080EAB7A - .align 2, 0 -_080EAB24: .4byte gUnknown_3005B68 -_080EAB28: - movs r0, #5 - bl sub_080A306C - ldrb r0, [r4, #0xa] - movs r1, #0 - movs r2, #0 - bl DestroyListMenuTask - ldrb r0, [r4, #0x10] - bl RemoveScrollIndicatorArrowPair - ldrb r0, [r4, #0xc] - movs r1, #0 - bl sub_08197060 - ldrb r0, [r4, #0xc] - bl ClearWindowTilemap - ldrb r0, [r4, #0xc] - bl RemoveWindow - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, _080EAB68 - ldr r0, [r0] - bl Free - adds r0, r6, #0 - bl EventObjectInteractionPlantBerryTree - b _080EAB7A - .align 2, 0 -_080EAB68: .4byte gUnknown_2039CEC -_080EAB6C: - movs r0, #5 - bl sub_080A306C - strh r5, [r4, #8] - adds r0, r6, #0 - bl sub_080EAB80 -_080EAB7A: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end HandleRegistryMenuInput - - thumb_func_start sub_080EAB80 -sub_080EAB80: @ 0x080EAB80 - push {r4, r5, r6, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r6, _080EABE8 - adds r5, r4, r6 - ldrb r0, [r5, #0x10] - bl RemoveScrollIndicatorArrowPair - ldr r0, _080EABEC - bl AddWindow - strh r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl SetStandardWindowBorderStyle - ldrb r0, [r5, #0xe] - ldr r1, _080EABF0 - str r1, [sp] - movs r1, #1 - movs r2, #0x10 - movs r3, #2 - bl sub_08198964 - ldrb r0, [r5, #0xe] - movs r1, #0x10 - str r1, [sp] - movs r1, #2 - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl sub_081984B0 - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - subs r6, #8 - adds r4, r4, r6 - ldr r0, _080EABF4 - str r0, [r4] - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080EABE8: .4byte gUnknown_3005B68 -_080EABEC: .4byte gUnknown_8568B20 -_080EABF0: .4byte gUnknown_8568AF4 -_080EABF4: .4byte sub_080EABF8 - thumb_func_end sub_080EAB80 - - thumb_func_start sub_080EABF8 -sub_080EABF8: @ 0x080EABF8 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r6, r5, #0 - bl Menu_ProcessInputNoWrap - lsls r0, r0, #0x18 - asrs r4, r0, #0x18 - movs r0, #2 - rsbs r0, r0, #0 - cmp r4, r0 - beq _080EAC3A - adds r0, #1 - cmp r4, r0 - bne _080EAC24 - movs r0, #5 - bl sub_080A306C - adds r0, r5, #0 - bl ReturnToMainRegistryMenu - b _080EAC3A -_080EAC24: - movs r0, #5 - bl sub_080A306C - ldr r0, _080EAC40 - lsls r1, r4, #3 - adds r0, #4 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r6, #0 - bl _call_via_r1 -_080EAC3A: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080EAC40: .4byte gUnknown_8568AF4 - thumb_func_end sub_080EABF8 - - thumb_func_start ShowRegistryMenuDeleteConfirmation -ShowRegistryMenuDeleteConfirmation: @ 0x080EAC44 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - ldr r0, _080EACA0 - adds r4, r4, r0 - ldrb r0, [r4, #0xc] - movs r1, #0 - bl sub_08197060 - ldrb r0, [r4, #0xe] - movs r1, #0 - bl sub_08197060 - ldrb r0, [r4, #0xc] - bl ClearWindowTilemap - ldrb r0, [r4, #0xe] - bl ClearWindowTilemap - ldrb r0, [r4, #0xe] - bl RemoveWindow - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, _080EACA4 - ldrb r1, [r4, #8] - bl sub_080EA420 - ldr r4, _080EACA8 - ldr r1, _080EACAC - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r2, _080EACB0 - adds r0, r5, #0 - adds r1, r4, #0 - bl DisplayItemMessageOnField - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080EACA0: .4byte gUnknown_3005B68 -_080EACA4: .4byte gUnknown_2021C40 -_080EACA8: .4byte gUnknown_2021C7C -_080EACAC: .4byte gUnknown_85CA658 -_080EACB0: .4byte sub_080EACB4 - thumb_func_end ShowRegistryMenuDeleteConfirmation - - thumb_func_start sub_080EACB4 -sub_080EACB4: @ 0x080EACB4 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_08197714 - ldr r1, _080EACD0 - adds r0, r4, #0 - bl DoYesNoFuncWithChoice - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EACD0: .4byte gUnknown_8568B04 - thumb_func_end sub_080EACB4 - - thumb_func_start DeleteRegistry_Yes_Callback -DeleteRegistry_Yes_Callback: @ 0x080EACD4 - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r4, #2 - adds r5, r5, r4 - lsls r5, r5, #3 - ldr r0, _080EAD58 - mov r8, r0 - adds r6, r5, r0 - movs r0, #0 - movs r1, #0 - bl sub_08197028 - ldrb r0, [r6, #0xa] - adds r1, r6, #4 - mov sb, r1 - adds r1, r6, #2 - mov sl, r1 - mov r1, sb - mov r2, sl - bl DestroyListMenuTask - ldr r0, _080EAD5C - ldr r2, [r0] - movs r0, #8 - ldrsh r1, [r6, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #5 - adds r2, r2, r0 - ldr r1, _080EAD60 - adds r2, r2, r1 - ldrb r1, [r2] - movs r0, #0x3f - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl BuildRegistryMenuItems - ldrb r2, [r6, #6] - ldrb r3, [r6] - mov r0, sb - mov r1, sl - bl sub_08122268 - adds r0, r4, #0 - bl FinalizeRegistryMenu - movs r0, #8 - rsbs r0, r0, #0 - add r8, r0 - add r5, r8 - ldr r0, _080EAD64 - str r0, [r5] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080EAD58: .4byte gUnknown_3005B68 -_080EAD5C: .4byte gUnknown_3005AEC -_080EAD60: .4byte 0x00001A9D -_080EAD64: .4byte HandleRegistryMenuInput - thumb_func_end DeleteRegistry_Yes_Callback - - thumb_func_start sub_080EAD68 -sub_080EAD68: @ 0x080EAD68 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080EAD7C - ldr r2, _080EAD80 - bl DisplayItemMessageOnField - pop {r0} - bx r0 - .align 2, 0 -_080EAD7C: .4byte gUnknown_85CA676 -_080EAD80: .4byte DeleteRegistry_Yes_Callback - thumb_func_end sub_080EAD68 - - thumb_func_start DeleteRegistry_No -DeleteRegistry_No: @ 0x080EAD84 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - ldr r0, _080EADCC - mov r8, r0 - adds r6, r4, r0 - movs r0, #0 - movs r1, #0 - bl sub_08197028 - ldrb r0, [r6, #0xa] - adds r1, r6, #4 - adds r6, #2 - adds r2, r6, #0 - bl DestroyListMenuTask - adds r0, r5, #0 - bl FinalizeRegistryMenu - movs r0, #8 - rsbs r0, r0, #0 - add r8, r0 - add r4, r8 - ldr r0, _080EADD0 - str r0, [r4] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080EADCC: .4byte gUnknown_3005B68 -_080EADD0: .4byte HandleRegistryMenuInput - thumb_func_end DeleteRegistry_No - - thumb_func_start ReturnToMainRegistryMenu -ReturnToMainRegistryMenu: @ 0x080EADD4 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r6, _080EAE10 - adds r5, r4, r6 - bl AddRegistryMenuScrollArrows - ldrb r0, [r5, #0xe] - movs r1, #0 - bl sub_08197060 - ldrb r0, [r5, #0xe] - bl ClearWindowTilemap - ldrb r0, [r5, #0xe] - bl RemoveWindow - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - subs r6, #8 - adds r4, r4, r6 - ldr r0, _080EAE14 - str r0, [r4] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080EAE10: .4byte gUnknown_3005B68 -_080EAE14: .4byte HandleRegistryMenuInput - thumb_func_end ReturnToMainRegistryMenu - - thumb_func_start EventObjectInteractionPlantBerryTree -EventObjectInteractionPlantBerryTree: @ 0x080EAE18 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080EAE34 - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080EAE3C - ldr r0, _080EAE38 - bl ScriptContext1_SetupScript - b _080EAE42 - .align 2, 0 -_080EAE34: .4byte 0x00004054 -_080EAE38: .4byte gUnknown_821D3D7 -_080EAE3C: - ldr r0, _080EAE50 - bl ScriptContext1_SetupScript -_080EAE42: - adds r0, r4, #0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EAE50: .4byte gUnknown_821D4D8 - thumb_func_end EventObjectInteractionPlantBerryTree - - thumb_func_start GetSecretBaseOwnerType -GetSecretBaseOwnerType: @ 0x080EAE54 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080EAE8C - ldr r4, [r1] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #5 - adds r4, r4, r1 - ldr r1, _080EAE90 - adds r0, r4, r1 - ldrb r0, [r0] - movs r1, #5 - bl __umodsi3 - ldr r1, _080EAE94 - adds r4, r4, r1 - ldrb r2, [r4] - lsls r2, r2, #0x1b - lsrs r2, r2, #0x1f - lsls r1, r2, #2 - adds r1, r1, r2 - adds r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080EAE8C: .4byte gUnknown_3005AEC -_080EAE90: .4byte 0x00001AA5 -_080EAE94: .4byte 0x00001A9D - thumb_func_end GetSecretBaseOwnerType - - thumb_func_start GetSecretBaseTrainerLoseText -GetSecretBaseTrainerLoseText: @ 0x080EAE98 - push {lr} - ldr r0, _080EAEB8 - bl VarGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetSecretBaseOwnerType - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - cmp r0, #0 - bne _080EAEC0 - ldr r0, _080EAEBC - b _080EAF22 - .align 2, 0 -_080EAEB8: .4byte 0x00004054 -_080EAEBC: .4byte gUnknown_824516F -_080EAEC0: - cmp r0, #1 - bne _080EAECC - ldr r0, _080EAEC8 - b _080EAF22 - .align 2, 0 -_080EAEC8: .4byte gUnknown_8245374 -_080EAECC: - cmp r0, #2 - bne _080EAED8 - ldr r0, _080EAED4 - b _080EAF22 - .align 2, 0 -_080EAED4: .4byte gUnknown_8245550 -_080EAED8: - cmp r0, #3 - bne _080EAEE4 - ldr r0, _080EAEE0 - b _080EAF22 - .align 2, 0 -_080EAEE0: .4byte gUnknown_824573E -_080EAEE4: - cmp r0, #4 - bne _080EAEF0 - ldr r0, _080EAEEC - b _080EAF22 - .align 2, 0 -_080EAEEC: .4byte gUnknown_82458F4 -_080EAEF0: - cmp r0, #5 - bne _080EAEFC - ldr r0, _080EAEF8 - b _080EAF22 - .align 2, 0 -_080EAEF8: .4byte gUnknown_824526D -_080EAEFC: - cmp r0, #6 - bne _080EAF08 - ldr r0, _080EAF04 - b _080EAF22 - .align 2, 0 -_080EAF04: .4byte gUnknown_8245455 -_080EAF08: - cmp r0, #7 - bne _080EAF14 - ldr r0, _080EAF10 - b _080EAF22 - .align 2, 0 -_080EAF10: .4byte gUnknown_824565C -_080EAF14: - cmp r1, #8 - beq _080EAF20 - ldr r0, _080EAF1C - b _080EAF22 - .align 2, 0 -_080EAF1C: .4byte gUnknown_8245A06 -_080EAF20: - ldr r0, _080EAF28 -_080EAF22: - pop {r1} - bx r1 - .align 2, 0 -_080EAF28: .4byte gUnknown_8245819 - thumb_func_end GetSecretBaseTrainerLoseText - - thumb_func_start PrepSecretBaseBattleFlags -PrepSecretBaseBattleFlags: @ 0x080EAF2C - push {lr} - movs r0, #1 - bl sub_0813BB14 - ldr r1, _080EAF48 - movs r2, #0x80 - lsls r2, r2, #3 - adds r0, r2, #0 - strh r0, [r1] - ldr r1, _080EAF4C - ldr r0, _080EAF50 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080EAF48: .4byte gUnknown_203886A -_080EAF4C: .4byte gUnknown_2022C90 -_080EAF50: .4byte 0x08000008 - thumb_func_end PrepSecretBaseBattleFlags - - thumb_func_start sub_080EAF54 -sub_080EAF54: @ 0x080EAF54 - push {lr} - ldr r0, _080EAF8C - bl VarGet - ldr r1, _080EAF90 - ldr r3, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #5 - adds r3, r3, r1 - ldr r0, _080EAF94 - ldrb r0, [r0] - ldr r1, _080EAF98 - adds r3, r3, r1 - movs r1, #1 - ands r1, r0 - lsls r1, r1, #5 - ldrb r2, [r3] - movs r0, #0x21 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - pop {r0} - bx r0 - .align 2, 0 -_080EAF8C: .4byte 0x00004054 -_080EAF90: .4byte gUnknown_3005AEC -_080EAF94: .4byte gUnknown_2037290 -_080EAF98: .4byte 0x00001A9D - thumb_func_end sub_080EAF54 - - thumb_func_start GetSecretBaseOwnerInteractionState -GetSecretBaseOwnerInteractionState: @ 0x080EAF9C - push {r4, r5, r6, r7, lr} - ldr r0, _080EB014 - bl VarGet - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, _080EB018 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080EAFE2 - movs r3, #0 - ldr r7, _080EB01C - ldr r4, _080EB020 - movs r6, #0x21 - rsbs r6, r6, #0 -_080EAFBE: - ldr r1, [r7] - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #5 - adds r1, r1, r0 - adds r1, r1, r4 - ldrb r2, [r1] - adds r0, r6, #0 - ands r0, r2 - strb r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0x13 - bls _080EAFBE - ldr r0, _080EB018 - bl FlagSet -_080EAFE2: - ldr r4, _080EB024 - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - bl GetSecretBaseOwnerType - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - ldr r2, _080EB028 - ldr r0, _080EB01C - ldr r1, [r0] - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #5 - adds r1, r1, r0 - ldr r0, _080EB020 - adds r1, r1, r0 - ldrb r0, [r1] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1f - strh r0, [r2] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080EB014: .4byte 0x00004054 -_080EB018: .4byte 0x00000922 -_080EB01C: .4byte gUnknown_3005AEC -_080EB020: .4byte 0x00001A9D -_080EB024: .4byte gUnknown_2037280 -_080EB028: .4byte gUnknown_2037290 - thumb_func_end GetSecretBaseOwnerInteractionState - - thumb_func_start SecretBasePerStepCallback -SecretBasePerStepCallback: @ 0x080EB02C - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080EB050 - adds r5, r1, r0 - movs r1, #2 - ldrsh r0, [r5, r1] - cmp r0, #1 - beq _080EB090 - cmp r0, #1 - bgt _080EB054 - cmp r0, #0 - beq _080EB05C - b _080EB468 - .align 2, 0 -_080EB050: .4byte gUnknown_3005B68 -_080EB054: - cmp r0, #2 - bne _080EB05A - b _080EB458 -_080EB05A: - b _080EB468 -_080EB05C: - ldr r0, _080EB074 - bl VarGet - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - beq _080EB07C - ldr r1, _080EB078 - movs r0, #1 - strb r0, [r1] - b _080EB080 - .align 2, 0 -_080EB074: .4byte 0x00004054 -_080EB078: .4byte gUnknown_2039CE9 -_080EB07C: - ldr r0, _080EB08C - strb r1, [r0] -_080EB080: - adds r0, r5, #4 - adds r1, r5, #6 - bl PlayerGetDestCoords - b _080EB464 - .align 2, 0 -_080EB08C: .4byte gUnknown_2039CE9 -_080EB090: - mov r4, sp - adds r4, #2 - mov r0, sp - adds r1, r4, #0 - bl PlayerGetDestCoords - mov r0, sp - ldrh r2, [r0] - movs r3, #0 - ldrsh r1, [r0, r3] - movs r3, #4 - ldrsh r0, [r5, r3] - adds r6, r4, #0 - cmp r1, r0 - bne _080EB0BC - movs r0, #0 - ldrsh r1, [r6, r0] - movs r3, #6 - ldrsh r0, [r5, r3] - cmp r1, r0 - bne _080EB0BC - b _080EB468 -_080EB0BC: - strh r2, [r5, #4] - ldrh r0, [r6] - strh r0, [r5, #6] - ldr r4, _080EB124 - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - adds r1, #1 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl VarSet - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0 - ldrsh r1, [r6, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - mov r0, sp - movs r3, #0 - ldrsh r0, [r0, r3] - movs r2, #0 - ldrsh r1, [r6, r2] - bl MapGridGetMetatileIdAt - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r0, #0x8d - lsls r0, r0, #2 - cmp r4, r0 - beq _080EB10A - adds r0, #8 - cmp r4, r0 - bne _080EB130 -_080EB10A: - ldr r0, _080EB128 - ldrb r0, [r0] - cmp r0, #1 - beq _080EB114 - b _080EB468 -_080EB114: - ldr r4, _080EB12C - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r0, #0x20 - b _080EB442 - .align 2, 0 -_080EB124: .4byte 0x000040EC -_080EB128: .4byte gUnknown_2039CE9 -_080EB12C: .4byte 0x000040EF -_080EB130: - ldr r3, _080EB17C - adds r0, r4, r3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #2 - bls _080EB162 - movs r0, #0xb0 - lsls r0, r0, #2 - cmp r4, r0 - beq _080EB162 - adds r0, #1 - cmp r4, r0 - beq _080EB162 - adds r0, #1 - cmp r4, r0 - beq _080EB162 - adds r0, #6 - cmp r4, r0 - beq _080EB162 - adds r0, #1 - cmp r4, r0 - beq _080EB162 - adds r0, #1 - cmp r4, r0 - bne _080EB188 -_080EB162: - ldr r0, _080EB180 - ldrb r0, [r0] - cmp r0, #1 - beq _080EB16C - b _080EB468 -_080EB16C: - ldr r4, _080EB184 - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r0, #1 - b _080EB442 - .align 2, 0 -_080EB17C: .4byte 0xFFFFFD48 -_080EB180: .4byte gUnknown_2039CE9 -_080EB184: .4byte 0x000040EE -_080EB188: - ldr r0, _080EB1B8 - cmp r4, r0 - beq _080EB1A0 - adds r0, #8 - cmp r4, r0 - beq _080EB1A0 - adds r0, #0x10 - cmp r4, r0 - beq _080EB1A0 - adds r0, #8 - cmp r4, r0 - bne _080EB1C4 -_080EB1A0: - ldr r0, _080EB1BC - ldrb r0, [r0] - cmp r0, #1 - beq _080EB1AA - b _080EB468 -_080EB1AA: - ldr r4, _080EB1C0 - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r0, #4 - b _080EB442 - .align 2, 0 -_080EB1B8: .4byte 0x00000239 -_080EB1BC: .4byte gUnknown_2039CE9 -_080EB1C0: .4byte 0x000040EE -_080EB1C4: - cmp r5, #0x34 - bne _080EB1CE - ldr r0, _080EB204 - cmp r4, r0 - beq _080EB1E6 -_080EB1CE: - cmp r5, #0x35 - bne _080EB214 - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0 - ldrsh r1, [r6, r2] - bl MapGridGetMetatileIdAt - ldr r1, _080EB208 - cmp r0, r1 - bne _080EB214 -_080EB1E6: - ldr r0, _080EB20C - ldrb r0, [r0] - cmp r0, #1 - beq _080EB1F0 - b _080EB468 -_080EB1F0: - ldr r4, _080EB210 - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - b _080EB442 - .align 2, 0 -_080EB204: .4byte 0x0000026D -_080EB208: .4byte 0x0000026A -_080EB20C: .4byte gUnknown_2039CE9 -_080EB210: .4byte 0x000040EF -_080EB214: - cmp r5, #0xc1 - bne _080EB260 - ldr r0, _080EB254 - cmp r4, r0 - bne _080EB260 - ldr r0, _080EB258 - ldrb r0, [r0] - cmp r0, #1 - beq _080EB228 - b _080EB468 -_080EB228: - ldr r4, _080EB25C - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r2, #0x80 - lsls r2, r2, #5 - adds r0, r2, #0 - eors r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl VarSet - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r3, #0x80 - lsls r3, r3, #6 - adds r0, r3, #0 - b _080EB442 - .align 2, 0 -_080EB254: .4byte 0x0000023D -_080EB258: .4byte gUnknown_2039CE9 -_080EB25C: .4byte 0x000040EF -_080EB260: - cmp r5, #0x47 - bne _080EB2B0 - ldr r0, _080EB2A4 - cmp r4, r0 - bne _080EB2B0 - ldr r0, _080EB2A8 - ldrb r0, [r0] - cmp r0, #1 - beq _080EB274 - b _080EB468 -_080EB274: - ldr r4, _080EB2AC - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r2, #0x80 - lsls r2, r2, #5 - adds r0, r2, #0 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl VarSet - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r3, #0x80 - lsls r3, r3, #6 - adds r0, r3, #0 - eors r1, r0 - b _080EB444 - .align 2, 0 -_080EB2A4: .4byte 0x0000023E -_080EB2A8: .4byte gUnknown_2039CE9 -_080EB2AC: .4byte 0x000040EF -_080EB2B0: - adds r0, r5, #0 - bl MetatileBehavior_IsSecretBaseGlitterMat - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080EB2E0 - ldr r0, _080EB2D8 - ldrb r0, [r0] - cmp r0, #1 - beq _080EB2C8 - b _080EB468 -_080EB2C8: - ldr r4, _080EB2DC - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r0, #0x80 - b _080EB442 - .align 2, 0 -_080EB2D8: .4byte gUnknown_2039CE9 -_080EB2DC: .4byte 0x000040EF -_080EB2E0: - adds r0, r5, #0 - bl MetatileBehavior_IsSecretBaseBalloon - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080EB374 - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0 - ldrsh r1, [r6, r2] - bl MapGridGetMetatileIdAt - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov r1, sp - movs r3, #0 - ldrsh r1, [r1, r3] - movs r3, #0 - ldrsh r2, [r6, r3] - bl PopSecretBaseBalloon - ldr r0, _080EB340 - ldrb r0, [r0] - cmp r0, #1 - beq _080EB318 - b _080EB468 -_080EB318: - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0 - ldrsh r1, [r6, r2] - bl MapGridGetMetatileIdAt - adds r1, r0, #0 - movs r0, #0xce - lsls r0, r0, #2 - cmp r1, r0 - beq _080EB354 - cmp r1, r0 - bgt _080EB344 - movs r0, #0x8a - lsls r0, r0, #2 - cmp r1, r0 - beq _080EB35C - b _080EB468 - .align 2, 0 -_080EB340: .4byte gUnknown_2039CE9 -_080EB344: - movs r0, #0xcf - lsls r0, r0, #2 - cmp r1, r0 - beq _080EB354 - adds r0, #4 - cmp r1, r0 - beq _080EB354 - b _080EB468 -_080EB354: - ldr r4, _080EB358 - b _080EB438 - .align 2, 0 -_080EB358: .4byte 0x000040EE -_080EB35C: - ldr r4, _080EB370 - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r3, #0x80 - lsls r3, r3, #1 - adds r0, r3, #0 - b _080EB442 - .align 2, 0 -_080EB370: .4byte 0x000040EE -_080EB374: - adds r0, r5, #0 - bl MetatileBehavior_IsSecretBaseBreakableDoor - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080EB3C0 - ldr r0, _080EB3B8 - ldrb r0, [r0] - cmp r0, #1 - bne _080EB3A6 - ldr r4, _080EB3BC - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r2, #0x80 - lsls r2, r2, #3 - adds r0, r2, #0 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl VarSet -_080EB3A6: - mov r0, sp - movs r3, #0 - ldrsh r0, [r0, r3] - movs r2, #0 - ldrsh r1, [r6, r2] - bl ShatterSecretBaseBreakableDoor - b _080EB468 - .align 2, 0 -_080EB3B8: .4byte gUnknown_2039CE9 -_080EB3BC: .4byte 0x000040EF -_080EB3C0: - adds r0, r5, #0 - bl MetatileBehavior_IsSecretBaseSoundMat - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080EB3F0 - ldr r0, _080EB3E8 - ldrb r0, [r0] - cmp r0, #1 - bne _080EB468 - ldr r4, _080EB3EC - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r3, #0x80 - lsls r3, r3, #8 - adds r0, r3, #0 - b _080EB442 - .align 2, 0 -_080EB3E8: .4byte gUnknown_2039CE9 -_080EB3EC: .4byte 0x000040EE -_080EB3F0: - adds r0, r5, #0 - bl MetatileBehavior_IsSecretBaseJumpMat - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080EB420 - ldr r0, _080EB418 - ldrb r0, [r0] - cmp r0, #1 - bne _080EB468 - ldr r4, _080EB41C - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r2, #0x80 - lsls r2, r2, #7 - adds r0, r2, #0 - b _080EB442 - .align 2, 0 -_080EB418: .4byte gUnknown_2039CE9 -_080EB41C: .4byte 0x000040EF -_080EB420: - adds r0, r5, #0 - bl MetatileBehavior_IsSecretBaseSpinMat - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080EB468 - ldr r0, _080EB450 - ldrb r0, [r0] - cmp r0, #1 - bne _080EB468 - ldr r4, _080EB454 -_080EB438: - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r0, #2 -_080EB442: - orrs r1, r0 -_080EB444: - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl VarSet - b _080EB468 - .align 2, 0 -_080EB450: .4byte gUnknown_2039CE9 -_080EB454: .4byte 0x000040EF -_080EB458: - ldrb r0, [r5, #8] - bl FieldEffectActiveListContains - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080EB468 -_080EB464: - movs r0, #1 - strh r0, [r5, #2] -_080EB468: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end SecretBasePerStepCallback - - thumb_func_start sub_080EB470 -sub_080EB470: @ 0x080EB470 - push {r4, r5, r6, lr} - adds r3, r0, #0 - adds r4, r2, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r6, _080EB4BC - ldr r0, [r6] - lsls r2, r3, #2 - adds r2, r2, r3 - lsls r5, r2, #5 - adds r0, r0, r5 - ldr r2, _080EB4C0 - adds r0, r0, r2 - movs r2, #0xa0 - bl memcpy - ldr r2, [r6] - adds r2, r2, r5 - ldr r0, _080EB4C4 - adds r2, r2, r0 - ldrb r1, [r2] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2] - subs r4, #1 - cmp r4, #1 - bhi _080EB4B6 - ldr r0, [r6] - adds r0, r0, r5 - ldr r1, _080EB4C8 - adds r0, r0, r1 - movs r1, #1 - strb r1, [r0] -_080EB4B6: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080EB4BC: .4byte gUnknown_3005AEC -_080EB4C0: .4byte 0x00001A9C -_080EB4C4: .4byte 0x00001A9D -_080EB4C8: .4byte 0x00001AA9 - thumb_func_end sub_080EB470 - - thumb_func_start SecretBasesHaveSameTrainerId -SecretBasesHaveSameTrainerId: @ 0x080EB4CC - push {r4, lr} - movs r2, #0 - adds r4, r0, #0 - adds r4, #9 - adds r3, r1, #0 - adds r3, #9 -_080EB4D8: - adds r0, r4, r2 - adds r1, r3, r2 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - beq _080EB4E8 - movs r0, #0 - b _080EB4F4 -_080EB4E8: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #3 - bls _080EB4D8 - movs r0, #1 -_080EB4F4: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end SecretBasesHaveSameTrainerId - - thumb_func_start SecretBasesHaveSameTrainerName -SecretBasesHaveSameTrainerName: @ 0x080EB4FC - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r5, r1, #0 - movs r3, #0 - ldrb r0, [r6, #2] - cmp r0, #0xff - bne _080EB510 - ldrb r0, [r5, #2] - cmp r0, #0xff - beq _080EB53E -_080EB510: - adds r2, r6, #2 - adds r0, r2, r3 - adds r4, r5, #2 - adds r1, r4, r3 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - beq _080EB524 - movs r0, #0 - b _080EB540 -_080EB524: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #6 - bhi _080EB53E - adds r0, r2, r3 - ldrb r0, [r0] - cmp r0, #0xff - bne _080EB510 - adds r0, r4, r3 - ldrb r0, [r0] - cmp r0, #0xff - bne _080EB510 -_080EB53E: - movs r0, #1 -_080EB540: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end SecretBasesHaveSameTrainerName - - thumb_func_start SecretBasesBelongToSamePlayer -SecretBasesBelongToSamePlayer: @ 0x080EB548 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r2, [r4, #1] - movs r0, #0x10 - adds r1, r0, #0 - ands r1, r2 - ldrb r2, [r5, #1] - ands r0, r2 - cmp r1, r0 - bne _080EB57E - adds r0, r4, #0 - adds r1, r5, #0 - bl SecretBasesHaveSameTrainerId - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080EB57E - adds r0, r4, #0 - adds r1, r5, #0 - bl SecretBasesHaveSameTrainerName - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080EB57E - movs r0, #1 - b _080EB580 -_080EB57E: - movs r0, #0 -_080EB580: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end SecretBasesBelongToSamePlayer - - thumb_func_start GetSecretBaseIndexFromId -GetSecretBaseIndexFromId: @ 0x080EB588 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - movs r1, #0 - ldr r0, _080EB5B0 - ldr r2, [r0] - ldr r4, _080EB5B4 -_080EB596: - lsls r0, r1, #0x10 - asrs r1, r0, #0x10 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #5 - adds r0, r2, r0 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, r3 - bne _080EB5B8 - adds r0, r1, #0 - b _080EB5C8 - .align 2, 0 -_080EB5B0: .4byte gUnknown_3005AEC -_080EB5B4: .4byte 0x00001A9C -_080EB5B8: - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x13 - ble _080EB596 - movs r0, #1 - rsbs r0, r0, #0 -_080EB5C8: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetSecretBaseIndexFromId - - thumb_func_start FindAvailableSecretBaseIndex -FindAvailableSecretBaseIndex: @ 0x080EB5D0 - push {r4, lr} - movs r2, #1 - ldr r0, _080EB5F4 - ldr r3, [r0] - ldr r4, _080EB5F8 -_080EB5DA: - lsls r0, r2, #0x10 - asrs r1, r0, #0x10 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #5 - adds r0, r3, r0 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0 - bne _080EB5FC - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - b _080EB60A - .align 2, 0 -_080EB5F4: .4byte gUnknown_3005AEC -_080EB5F8: .4byte 0x00001A9C -_080EB5FC: - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x13 - ble _080EB5DA - movs r0, #0 -_080EB60A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end FindAvailableSecretBaseIndex - - thumb_func_start sub_080EB610 -sub_080EB610: @ 0x080EB610 - push {r4, lr} - movs r3, #1 - ldr r0, _080EB63C - ldr r4, [r0] -_080EB618: - lsls r2, r3, #0x10 - asrs r1, r2, #0x10 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #5 - adds r0, r4, r0 - ldr r1, _080EB640 - adds r0, r0, r1 - ldrb r1, [r0] - lsrs r0, r1, #6 - cmp r0, #0 - bne _080EB644 - lsls r0, r1, #0x1c - cmp r0, #0 - bne _080EB644 - lsls r0, r3, #0x18 - lsrs r0, r0, #0x18 - b _080EB654 - .align 2, 0 -_080EB63C: .4byte gUnknown_3005AEC -_080EB640: .4byte 0x00001A9D -_080EB644: - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r2, r1 - lsrs r3, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x13 - ble _080EB618 - movs r0, #0 -_080EB654: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080EB610 - - thumb_func_start sub_080EB65C -sub_080EB65C: @ 0x080EB65C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - ldrb r0, [r5] - cmp r0, #0 - beq _080EB6DE - ldrb r0, [r5] - bl GetSecretBaseIndexFromId - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - asrs r2, r0, #0x10 - cmp r2, #0 - beq _080EB6DE - movs r0, #1 - rsbs r0, r0, #0 - cmp r2, r0 - beq _080EB6B8 - ldr r0, _080EB6B0 - ldr r1, [r0] - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #5 - adds r1, r1, r0 - ldr r0, _080EB6B4 - adds r1, r1, r0 - ldrb r1, [r1] - lsls r0, r1, #0x1c - lsrs r0, r0, #0x1c - cmp r0, #1 - beq _080EB6DE - lsrs r0, r1, #6 - cmp r0, #2 - bne _080EB6AA - ldrb r1, [r5, #1] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - bne _080EB6DE -_080EB6AA: - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - b _080EB6D0 - .align 2, 0 -_080EB6B0: .4byte gUnknown_3005AEC -_080EB6B4: .4byte 0x00001A9D -_080EB6B8: - bl FindAvailableSecretBaseIndex - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _080EB6D0 - bl sub_080EB610 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - beq _080EB6DE -_080EB6D0: - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_080EB470 - adds r0, r4, #0 - b _080EB6E0 -_080EB6DE: - movs r0, #0 -_080EB6E0: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080EB65C - - thumb_func_start SortSecretBasesByRegistryStatus -SortSecretBasesByRegistryStatus: @ 0x080EB6E8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0xa0 - ldr r0, _080EB790 - ldr r0, [r0] - ldr r1, _080EB794 - adds r7, r0, r1 - movs r2, #1 -_080EB6FC: - adds r1, r2, #1 - lsls r0, r1, #0x18 - lsrs r5, r0, #0x18 - mov sb, r1 - cmp r5, #0x13 - bhi _080EB778 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #5 - adds r6, r0, r7 - movs r0, #0xc0 - mov r8, r0 -_080EB714: - ldrb r0, [r6, #1] - mov r3, r8 - ands r3, r0 - cmp r3, #0 - bne _080EB732 - lsls r2, r5, #2 - adds r0, r2, r5 - lsls r0, r0, #5 - adds r0, r0, r7 - ldrb r1, [r0, #1] - mov r0, r8 - ands r0, r1 - adds r4, r2, #0 - cmp r0, #0x40 - beq _080EB74A -_080EB732: - cmp r3, #0x80 - bne _080EB76E - lsls r2, r5, #2 - adds r0, r2, r5 - lsls r0, r0, #5 - adds r0, r0, r7 - ldrb r1, [r0, #1] - mov r0, r8 - ands r0, r1 - adds r4, r2, #0 - cmp r0, #0x80 - beq _080EB76E -_080EB74A: - mov r0, sp - adds r1, r6, #0 - movs r2, #0xa0 - bl memcpy - adds r4, r4, r5 - lsls r4, r4, #5 - adds r4, r4, r7 - 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 -_080EB76E: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0x13 - bls _080EB714 -_080EB778: - mov r1, sb - lsls r0, r1, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x12 - bls _080EB6FC - add sp, #0xa0 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080EB790: .4byte gUnknown_3005AEC -_080EB794: .4byte 0x00001A9C - thumb_func_end SortSecretBasesByRegistryStatus - - thumb_func_start sub_080EB798 -sub_080EB798: @ 0x080EB798 - push {r4, r5, r6, lr} - adds r5, r0, #0 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - movs r4, #1 -_080EB7A2: - ldr r0, [r5] - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #5 - adds r2, r1, r0 - ldrb r0, [r2, #1] - lsrs r0, r0, #6 - cmp r0, r6 - bne _080EB7BC - ldr r1, [r5, #4] - adds r0, r2, #0 - bl sub_080EB65C -_080EB7BC: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x13 - bls _080EB7A2 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_080EB798 - - thumb_func_start SecretBaseBelongsToPlayer -SecretBaseBelongsToPlayer: @ 0x080EB7CC - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5] - cmp r0, #0 - beq _080EB7E8 - ldrb r0, [r5, #1] - lsls r0, r0, #0x1b - ldr r1, _080EB7EC - ldr r3, [r1] - lsrs r0, r0, #0x1f - adds r6, r1, #0 - ldrb r1, [r3, #8] - cmp r0, r1 - beq _080EB7F0 -_080EB7E8: - movs r0, #0 - b _080EB846 - .align 2, 0 -_080EB7EC: .4byte gUnknown_3005AF0 -_080EB7F0: - movs r2, #0 - adds r4, r5, #0 - adds r4, #9 - adds r3, #0xa -_080EB7F8: - adds r0, r4, r2 - adds r1, r3, r2 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bne _080EB7E8 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #3 - bls _080EB7F8 - movs r2, #0 - ldrb r0, [r5, #2] - cmp r0, #0xff - bne _080EB81A - ldr r0, [r6] - b _080EB83E -_080EB81A: - adds r3, r5, #2 - adds r0, r3, r2 - ldr r4, [r6] - adds r1, r4, r2 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bne _080EB7E8 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #6 - bhi _080EB844 - adds r0, r3, r2 - ldrb r0, [r0] - cmp r0, #0xff - bne _080EB81A - adds r0, r4, r2 -_080EB83E: - ldrb r0, [r0] - cmp r0, #0xff - bne _080EB81A -_080EB844: - movs r0, #1 -_080EB846: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end SecretBaseBelongsToPlayer - - thumb_func_start DeleteFirstOldBaseFromPlayerInRecordMixingFriendsRecords -DeleteFirstOldBaseFromPlayerInRecordMixingFriendsRecords: @ 0x080EB84C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sl, r0 - mov sb, r1 - mov r8, r2 - movs r5, #0 - movs r6, #0 -_080EB860: - movs r0, #1 - ands r0, r5 - cmp r0, #0 - bne _080EB88A - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #5 - mov r1, sl - adds r4, r1, r0 - adds r0, r4, #0 - bl SecretBaseBelongsToPlayer - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080EB88A - adds r0, r4, #0 - bl ClearSecretBase - movs r0, #1 - orrs r5, r0 -_080EB88A: - movs r7, #2 - movs r0, #2 - ands r0, r5 - cmp r0, #0 - bne _080EB8B8 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #5 - mov r1, sb - adds r4, r1, r0 - adds r0, r4, #0 - bl SecretBaseBelongsToPlayer - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080EB8B8 - adds r0, r4, #0 - bl ClearSecretBase - orrs r5, r7 - lsls r0, r5, #0x18 - lsrs r5, r0, #0x18 -_080EB8B8: - movs r7, #4 - movs r0, #4 - ands r0, r5 - cmp r0, #0 - bne _080EB8E6 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #5 - mov r1, r8 - adds r4, r1, r0 - adds r0, r4, #0 - bl SecretBaseBelongsToPlayer - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080EB8E6 - adds r0, r4, #0 - bl ClearSecretBase - orrs r5, r7 - lsls r0, r5, #0x18 - lsrs r5, r0, #0x18 -_080EB8E6: - cmp r5, #7 - beq _080EB8F4 - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0x13 - bls _080EB860 -_080EB8F4: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end DeleteFirstOldBaseFromPlayerInRecordMixingFriendsRecords - - thumb_func_start sub_080EB904 -sub_080EB904: @ 0x080EB904 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - mov r8, r1 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - movs r5, #0 -_080EB914: - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #5 - mov r1, r8 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, #0 - beq _080EB96E - adds r0, r6, #0 - adds r1, r4, #0 - bl SecretBasesBelongToSamePlayer - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080EB96E - cmp r7, #0 - bne _080EB940 - adds r0, r4, #0 - bl ClearSecretBase - b _080EB978 -_080EB940: - ldrh r0, [r6, #0xe] - ldrh r3, [r4, #0xe] - cmp r0, r3 - bls _080EB950 - adds r0, r4, #0 - bl ClearSecretBase - b _080EB978 -_080EB950: - ldrb r0, [r6, #1] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - ldrb r1, [r4, #1] - movs r3, #0x10 - rsbs r3, r3, #0 - adds r2, r3, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #1] - adds r0, r6, #0 - bl ClearSecretBase - movs r0, #1 - b _080EB97A -_080EB96E: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0x13 - bls _080EB914 -_080EB978: - movs r0, #0 -_080EB97A: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_080EB904 - - thumb_func_start sub_080EB984 -sub_080EB984: @ 0x080EB984 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov sb, r0 - adds r7, r1, #0 - mov r8, r2 - adds r6, r3, #0 - movs r5, #1 -_080EB996: - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #5 - mov r1, sb - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, #0 - beq _080EB9E8 - ldrb r1, [r4, #1] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0x40 - bne _080EB9BE - movs r2, #0x10 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #1] -_080EB9BE: - adds r0, r4, #0 - adds r1, r7, #0 - adds r2, r5, #0 - bl sub_080EB904 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080EB9E8 - adds r0, r4, #0 - mov r1, r8 - adds r2, r5, #0 - bl sub_080EB904 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080EB9E8 - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r5, #0 - bl sub_080EB904 -_080EB9E8: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0x13 - bls _080EB996 - movs r5, #0 -_080EB9F4: - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #5 - adds r4, r0, r7 - ldrb r0, [r4] - cmp r0, #0 - beq _080EBA28 - ldrb r0, [r4, #1] - movs r2, #0x21 - rsbs r2, r2, #0 - adds r1, r2, #0 - ands r0, r1 - strb r0, [r4, #1] - adds r0, r4, #0 - mov r1, r8 - adds r2, r5, #0 - bl sub_080EB904 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080EBA28 - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r5, #0 - bl sub_080EB904 -_080EBA28: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0x13 - bls _080EB9F4 - movs r5, #0 - movs r0, #0x21 - rsbs r0, r0, #0 - adds r7, r0, #0 -_080EBA3A: - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r4, r0, #5 - mov r2, r8 - adds r1, r4, r2 - ldrb r0, [r1] - cmp r0, #0 - beq _080EBA5A - ldrb r0, [r1, #1] - ands r0, r7 - strb r0, [r1, #1] - adds r0, r1, #0 - adds r1, r6, #0 - adds r2, r5, #0 - bl sub_080EB904 -_080EBA5A: - adds r1, r4, r6 - ldrb r0, [r1] - cmp r0, #0 - beq _080EBA68 - ldrb r0, [r1, #1] - ands r0, r7 - strb r0, [r1, #1] -_080EBA68: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0x13 - bls _080EBA3A - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080EB984 - - thumb_func_start sub_080EBA80 -sub_080EBA80: @ 0x080EBA80 - push {r4, lr} - adds r4, r0, #0 - adds r2, r1, #0 - ldrb r1, [r4, #1] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - bne _080EBA9E - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_080EB65C - adds r0, r4, #0 - bl ClearSecretBase -_080EBA9E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080EBA80 - - thumb_func_start sub_080EBAA4 -sub_080EBAA4: @ 0x080EBAA4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r6, #0 -_080EBAAA: - lsls r4, r6, #2 - adds r4, r4, r6 - lsls r4, r4, #5 - ldr r0, [r5] - adds r0, r0, r4 - ldr r1, [r5, #4] - bl sub_080EBA80 - ldr r0, [r5, #8] - adds r0, r0, r4 - ldr r1, [r5, #0xc] - bl sub_080EBA80 - ldr r0, [r5, #0x10] - adds r0, r0, r4 - ldr r1, [r5, #0x14] - bl sub_080EBA80 - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0x13 - bls _080EBAAA - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080EBAA4 - - thumb_func_start sub_080EBAE0 -sub_080EBAE0: @ 0x080EBAE0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r0, [r4] - ldr r1, [r4, #8] - ldr r2, [r4, #0x10] - bl DeleteFirstOldBaseFromPlayerInRecordMixingFriendsRecords - ldr r0, _080EBB5C - ldr r0, [r0] - ldr r1, _080EBB60 - adds r0, r0, r1 - ldr r1, [r4] - ldr r2, [r4, #8] - ldr r3, [r4, #0x10] - bl sub_080EB984 - adds r0, r4, #0 - bl sub_080EBAA4 - ldr r0, [r4] - ldr r1, [r4, #4] - bl sub_080EB65C - ldr r0, [r4, #8] - ldr r1, [r4, #0xc] - bl sub_080EB65C - ldr r0, [r4, #0x10] - ldr r1, [r4, #0x14] - bl sub_080EB65C - adds r0, r4, #0 - movs r1, #1 - bl sub_080EB798 - adds r6, r4, #0 - adds r6, #8 - adds r0, r6, #0 - movs r1, #1 - bl sub_080EB798 - adds r5, r4, #0 - adds r5, #0x10 - adds r0, r5, #0 - movs r1, #1 - bl sub_080EB798 - adds r0, r4, #0 - movs r1, #0 - bl sub_080EB798 - adds r0, r6, #0 - movs r1, #0 - bl sub_080EB798 - adds r0, r5, #0 - movs r1, #0 - bl sub_080EB798 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080EBB5C: .4byte gUnknown_3005AEC -_080EBB60: .4byte 0x00001A9C - thumb_func_end sub_080EBAE0 - - thumb_func_start ReceiveSecretBasesData -ReceiveSecretBasesData: @ 0x080EBB64 - push {r4, r5, r6, r7, lr} - sub sp, #0x18 - adds r6, r0, #0 - adds r5, r1, #0 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - movs r0, #0x60 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080EBB7E - b _080EBD0C -_080EBB7E: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - beq _080EBB90 - cmp r0, #3 - beq _080EBBAC - b _080EBBBA -_080EBB90: - lsls r4, r5, #1 - adds r0, r6, r4 - movs r1, #0 - adds r2, r5, #0 - bl memset - adds r4, r4, r5 - adds r4, r6, r4 - adds r0, r4, #0 - movs r1, #0 - adds r2, r5, #0 - bl memset - b _080EBBBA -_080EBBAC: - lsls r0, r5, #1 - adds r0, r0, r5 - adds r0, r6, r0 - movs r1, #0 - adds r2, r5, #0 - bl memset -_080EBBBA: - cmp r7, #1 - beq _080EBC00 - cmp r7, #1 - bgt _080EBBC8 - cmp r7, #0 - beq _080EBBD2 - b _080EBC76 -_080EBBC8: - cmp r7, #2 - beq _080EBC30 - cmp r7, #3 - beq _080EBC58 - b _080EBC76 -_080EBBD2: - adds r0, r6, r5 - str r0, [sp] - ldr r3, _080EBBFC - movs r4, #0xff - ldrb r0, [r3, #0x1c] - str r0, [sp, #4] - lsls r1, r5, #1 - adds r0, r6, r1 - str r0, [sp, #8] - ldrh r2, [r3, #0x38] - adds r0, r4, #0 - ands r0, r2 - str r0, [sp, #0xc] - adds r1, r1, r5 - adds r1, r6, r1 - str r1, [sp, #0x10] - adds r3, #0x54 - ldrh r0, [r3] - ands r4, r0 - str r4, [sp, #0x14] - b _080EBC76 - .align 2, 0 -_080EBBFC: .4byte gUnknown_20226A0 -_080EBC00: - lsls r2, r5, #1 - adds r0, r6, r2 - str r0, [sp] - ldr r4, _080EBC2C - ldrh r3, [r4, #0x38] - movs r1, #0xff - adds r0, r1, #0 - ands r0, r3 - str r0, [sp, #4] - adds r2, r2, r5 - adds r2, r6, r2 - str r2, [sp, #8] - adds r0, r4, #0 - adds r0, #0x54 - ldrh r2, [r0] - adds r0, r1, #0 - ands r0, r2 - str r0, [sp, #0xc] - str r6, [sp, #0x10] - ldrh r0, [r4] - b _080EBC72 - .align 2, 0 -_080EBC2C: .4byte gUnknown_20226A0 -_080EBC30: - lsls r0, r5, #1 - adds r0, r0, r5 - adds r0, r6, r0 - str r0, [sp] - ldr r1, _080EBC54 - adds r0, r1, #0 - adds r0, #0x54 - ldrb r0, [r0] - str r0, [sp, #4] - str r6, [sp, #8] - ldrb r0, [r1] - str r0, [sp, #0xc] - adds r0, r6, r5 - str r0, [sp, #0x10] - ldrb r0, [r1, #0x1c] - str r0, [sp, #0x14] - b _080EBC76 - .align 2, 0 -_080EBC54: .4byte gUnknown_20226A0 -_080EBC58: - str r6, [sp] - ldr r2, _080EBD14 - ldrb r0, [r2] - str r0, [sp, #4] - adds r0, r6, r5 - str r0, [sp, #8] - movs r1, #0xff - ldrb r0, [r2, #0x1c] - str r0, [sp, #0xc] - lsls r0, r5, #1 - adds r0, r6, r0 - str r0, [sp, #0x10] - ldrh r0, [r2, #0x38] -_080EBC72: - ands r1, r0 - str r1, [sp, #0x14] -_080EBC76: - mov r0, sp - bl sub_080EBAE0 - movs r3, #1 - ldr r6, _080EBD18 - movs r7, #0x10 - rsbs r7, r7, #0 -_080EBC84: - ldr r0, [r6] - lsls r1, r3, #2 - adds r1, r1, r3 - lsls r4, r1, #5 - adds r0, r0, r4 - ldr r5, _080EBD1C - adds r2, r0, r5 - ldrb r1, [r2] - lsls r0, r1, #0x1c - lsrs r0, r0, #0x1c - cmp r0, #1 - bne _080EBCB4 - movs r0, #0x3f - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2] - ldr r1, [r6] - adds r1, r1, r4 - adds r1, r1, r5 - ldrb r2, [r1] - adds r0, r7, #0 - ands r0, r2 - strb r0, [r1] -_080EBCB4: - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #0x13 - bls _080EBC84 - bl SortSecretBasesByRegistryStatus - movs r3, #1 - ldr r7, _080EBD18 - adds r6, r7, #0 - adds r4, r5, #0 - movs r5, #0x3f -_080EBCCC: - ldr r0, [r6] - lsls r1, r3, #2 - adds r1, r1, r3 - lsls r1, r1, #5 - adds r0, r0, r1 - adds r2, r0, r4 - ldrb r1, [r2] - lsrs r0, r1, #6 - cmp r0, #2 - bne _080EBCE6 - adds r0, r5, #0 - ands r0, r1 - strb r0, [r2] -_080EBCE6: - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #0x13 - bls _080EBCCC - ldr r1, [r7] - ldr r2, _080EBD20 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080EBD0C - ldr r0, _080EBD24 - adds r2, r1, r0 - ldrh r1, [r2] - ldr r0, _080EBD28 - cmp r1, r0 - beq _080EBD0C - adds r0, r1, #1 - strh r0, [r2] -_080EBD0C: - add sp, #0x18 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080EBD14: .4byte gUnknown_20226A0 -_080EBD18: .4byte gUnknown_3005AEC -_080EBD1C: .4byte 0x00001A9D -_080EBD20: .4byte 0x00001A9C -_080EBD24: .4byte 0x00001AAA -_080EBD28: .4byte 0x0000FFFF - thumb_func_end ReceiveSecretBasesData - - thumb_func_start ClearJapaneseSecretBases -ClearJapaneseSecretBases: @ 0x080EBD2C - push {r4, r5, lr} - movs r5, #0 - adds r4, r0, #0 -_080EBD32: - ldrb r0, [r4, #0xd] - cmp r0, #1 - beq _080EBD3E - adds r0, r4, #0 - bl ClearSecretBase -_080EBD3E: - adds r4, #0xa0 - adds r5, #1 - cmp r5, #0x13 - bls _080EBD32 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end ClearJapaneseSecretBases - - thumb_func_start EventObjectInteractionRemoveBerryTree -EventObjectInteractionRemoveBerryTree: @ 0x080EBD4C - push {lr} - ldr r0, _080EBD84 - movs r1, #0 - bl VarSet - ldr r0, _080EBD88 - movs r1, #0 - bl VarSet - ldr r0, _080EBD8C - movs r1, #0 - bl VarSet - ldr r0, _080EBD90 - movs r1, #0 - bl VarSet - ldr r0, _080EBD94 - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080EBD9C - ldr r0, _080EBD98 - movs r1, #1 - bl VarSet - b _080EBDA4 - .align 2, 0 -_080EBD84: .4byte 0x000040EC -_080EBD88: .4byte 0x000040ED -_080EBD8C: .4byte 0x000040EE -_080EBD90: .4byte 0x000040EF -_080EBD94: .4byte 0x00004054 -_080EBD98: .4byte 0x000040F0 -_080EBD9C: - ldr r0, _080EBDB0 - movs r1, #0 - bl VarSet -_080EBDA4: - ldr r1, _080EBDB4 - movs r0, #0 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080EBDB0: .4byte 0x000040F0 -_080EBDB4: .4byte gUnknown_2039CE9 - thumb_func_end EventObjectInteractionRemoveBerryTree - - thumb_func_start sub_080EBDB8 -sub_080EBDB8: @ 0x080EBDB8 - push {r4, r5, r6, lr} - ldr r5, _080EBE18 - adds r0, r5, #0 - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080EBE12 - ldr r6, _080EBE1C - ldrb r0, [r6] - cmp r0, #1 - bne _080EBE12 - bl CurMapIsSecretBase - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _080EBE12 - adds r0, r5, #0 - movs r1, #0 - bl VarSet - strb r4, [r6] - bl sub_080EF588 - ldr r0, _080EBE20 - movs r1, #0 - bl VarSet - ldr r0, _080EBE24 - movs r1, #0 - bl VarSet - ldr r0, _080EBE28 - movs r1, #0 - bl VarSet - ldr r0, _080EBE2C - movs r1, #0 - bl VarSet - adds r0, r5, #0 - movs r1, #0 - bl VarSet -_080EBE12: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080EBE18: .4byte 0x000040F0 -_080EBE1C: .4byte gUnknown_2039CE9 -_080EBE20: .4byte 0x000040EC -_080EBE24: .4byte 0x000040ED -_080EBE28: .4byte 0x000040EE -_080EBE2C: .4byte 0x000040EF - thumb_func_end sub_080EBDB8 - - thumb_func_start sub_080EBE30 -sub_080EBE30: @ 0x080EBE30 - push {r4, lr} - ldr r0, _080EBE60 - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080EBE5A - ldr r4, _080EBE64 - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r2, #0x80 - lsls r2, r2, #4 - adds r0, r2, #0 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl VarSet -_080EBE5A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EBE60: .4byte 0x00004054 -_080EBE64: .4byte 0x000040EF - thumb_func_end sub_080EBE30 - - thumb_func_start sub_080EBE68 -sub_080EBE68: @ 0x080EBE68 - push {r4, lr} - ldr r0, _080EBE98 - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080EBE92 - ldr r4, _080EBE9C - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r2, #0x80 - lsls r2, r2, #3 - adds r0, r2, #0 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl VarSet -_080EBE92: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EBE98: .4byte 0x00004054 -_080EBE9C: .4byte 0x000040EE - thumb_func_end sub_080EBE68 - - thumb_func_start sub_080EBEA0 -sub_080EBEA0: @ 0x080EBEA0 - push {r4, r5, lr} - ldr r0, _080EBEF4 - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080EBEEC - ldr r5, _080EBEF8 - adds r0, r5, #0 - bl VarGet - ldr r1, _080EBEFC - ands r1, r0 - adds r0, r5, #0 - bl VarSet - ldr r4, _080EBF00 - adds r0, r4, #0 - bl VarGet - ldr r1, _080EBF04 - ands r1, r0 - adds r0, r4, #0 - bl VarSet - adds r0, r5, #0 - bl VarGet - adds r1, r0, #0 - movs r2, #0x80 - lsls r2, r2, #6 - adds r0, r2, #0 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r5, #0 - bl VarSet -_080EBEEC: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080EBEF4: .4byte 0x00004054 -_080EBEF8: .4byte 0x000040EE -_080EBEFC: .4byte 0x0000C7FF -_080EBF00: .4byte 0x000040EF -_080EBF04: .4byte 0x0000FFFE - thumb_func_end sub_080EBEA0 - - thumb_func_start sub_080EBF08 -sub_080EBF08: @ 0x080EBF08 - push {r4, r5, lr} - ldr r0, _080EBF5C - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080EBF54 - ldr r5, _080EBF60 - adds r0, r5, #0 - bl VarGet - ldr r1, _080EBF64 - ands r1, r0 - adds r0, r5, #0 - bl VarSet - ldr r4, _080EBF68 - adds r0, r4, #0 - bl VarGet - ldr r1, _080EBF6C - ands r1, r0 - adds r0, r4, #0 - bl VarSet - adds r0, r5, #0 - bl VarGet - adds r1, r0, #0 - movs r2, #0x80 - lsls r2, r2, #4 - adds r0, r2, #0 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r5, #0 - bl VarSet -_080EBF54: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080EBF5C: .4byte 0x00004054 -_080EBF60: .4byte 0x000040EE -_080EBF64: .4byte 0x0000C7FF -_080EBF68: .4byte 0x000040EF -_080EBF6C: .4byte 0x0000FFFE - thumb_func_end sub_080EBF08 - - thumb_func_start sub_080EBF70 -sub_080EBF70: @ 0x080EBF70 - push {r4, r5, lr} - ldr r0, _080EBFC4 - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080EBFBC - ldr r5, _080EBFC8 - adds r0, r5, #0 - bl VarGet - ldr r1, _080EBFCC - ands r1, r0 - adds r0, r5, #0 - bl VarSet - ldr r4, _080EBFD0 - adds r0, r4, #0 - bl VarGet - ldr r1, _080EBFD4 - ands r1, r0 - adds r0, r4, #0 - bl VarSet - adds r0, r5, #0 - bl VarGet - adds r1, r0, #0 - movs r2, #0x80 - lsls r2, r2, #5 - adds r0, r2, #0 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r5, #0 - bl VarSet -_080EBFBC: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080EBFC4: .4byte 0x00004054 -_080EBFC8: .4byte 0x000040EE -_080EBFCC: .4byte 0x0000C7FF -_080EBFD0: .4byte 0x000040EF -_080EBFD4: .4byte 0x0000FFFE - thumb_func_end sub_080EBF70 - - thumb_func_start sub_080EBFD8 -sub_080EBFD8: @ 0x080EBFD8 - push {r4, lr} - ldr r0, _080EC028 - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080EC020 - ldr r4, _080EC02C - adds r0, r4, #0 - bl VarGet - ldr r1, _080EC030 - ands r1, r0 - adds r0, r4, #0 - bl VarSet - adds r4, #1 - adds r0, r4, #0 - bl VarGet - ldr r1, _080EC034 - ands r1, r0 - adds r0, r4, #0 - bl VarSet - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r0, #1 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl VarSet -_080EC020: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EC028: .4byte 0x00004054 -_080EC02C: .4byte 0x000040EE -_080EC030: .4byte 0x0000C7FF -_080EC034: .4byte 0x0000FFFE - thumb_func_end sub_080EBFD8 - - thumb_func_start SetSecretBaseSecretsTvFlags_Poster -SetSecretBaseSecretsTvFlags_Poster: @ 0x080EC038 - push {r4, lr} - sub sp, #4 - mov r4, sp - adds r4, #2 - 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 - ldr r1, _080EC068 - adds r0, r0, r1 - cmp r0, #0x18 - bhi _080EC0FC - lsls r0, r0, #2 - ldr r1, _080EC06C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EC068: .4byte 0xFFFFFCE4 -_080EC06C: .4byte _080EC070 -_080EC070: @ jump table - .4byte _080EC0D4 @ case 0 - .4byte _080EC0D4 @ case 1 - .4byte _080EC0D4 @ case 2 - .4byte _080EC0D4 @ case 3 - .4byte _080EC0FC @ case 4 - .4byte _080EC0FC @ case 5 - .4byte _080EC0FC @ case 6 - .4byte _080EC0FC @ case 7 - .4byte _080EC0D4 @ case 8 - .4byte _080EC0D4 @ case 9 - .4byte _080EC0D4 @ case 10 - .4byte _080EC0D4 @ case 11 - .4byte _080EC0FC @ case 12 - .4byte _080EC0FC @ case 13 - .4byte _080EC0FC @ case 14 - .4byte _080EC0FC @ case 15 - .4byte _080EC0D4 @ case 16 - .4byte _080EC0D4 @ case 17 - .4byte _080EC0FC @ case 18 - .4byte _080EC0FC @ case 19 - .4byte _080EC0D4 @ case 20 - .4byte _080EC0D4 @ case 21 - .4byte _080EC0D4 @ case 22 - .4byte _080EC0D4 @ case 23 - .4byte _080EC0D4 @ case 24 -_080EC0D4: - ldr r0, _080EC104 - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080EC0FC - ldr r4, _080EC108 - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r2, #0x80 - lsls r2, r2, #7 - adds r0, r2, #0 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl VarSet -_080EC0FC: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EC104: .4byte 0x00004054 -_080EC108: .4byte 0x000040EE - thumb_func_end SetSecretBaseSecretsTvFlags_Poster - - thumb_func_start sub_080EC10C -sub_080EC10C: @ 0x080EC10C - push {r4, lr} - sub sp, #4 - mov r4, sp - adds r4, #2 - 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 - ldr r1, _080EC140 - adds r0, r0, r1 - cmp r0, #0xcf - bls _080EC134 - b _080EC570 -_080EC134: - lsls r0, r0, #2 - ldr r1, _080EC144 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EC140: .4byte 0xFFFFFDD4 -_080EC144: .4byte _080EC148 -_080EC148: @ jump table - .4byte _080EC4D0 @ case 0 - .4byte _080EC51C @ case 1 - .4byte _080EC51C @ case 2 - .4byte _080EC51C @ case 3 - .4byte _080EC570 @ case 4 - .4byte _080EC570 @ case 5 - .4byte _080EC570 @ case 6 - .4byte _080EC4D0 @ case 7 - .4byte _080EC570 @ case 8 - .4byte _080EC570 @ case 9 - .4byte _080EC570 @ case 10 - .4byte _080EC570 @ case 11 - .4byte _080EC570 @ case 12 - .4byte _080EC570 @ case 13 - .4byte _080EC570 @ case 14 - .4byte _080EC570 @ case 15 - .4byte _080EC570 @ case 16 - .4byte _080EC570 @ case 17 - .4byte _080EC570 @ case 18 - .4byte _080EC570 @ case 19 - .4byte _080EC570 @ case 20 - .4byte _080EC570 @ case 21 - .4byte _080EC570 @ case 22 - .4byte _080EC570 @ case 23 - .4byte _080EC570 @ case 24 - .4byte _080EC570 @ case 25 - .4byte _080EC570 @ case 26 - .4byte _080EC570 @ case 27 - .4byte _080EC570 @ case 28 - .4byte _080EC570 @ case 29 - .4byte _080EC570 @ case 30 - .4byte _080EC570 @ case 31 - .4byte _080EC570 @ case 32 - .4byte _080EC570 @ case 33 - .4byte _080EC570 @ case 34 - .4byte _080EC570 @ case 35 - .4byte _080EC570 @ case 36 - .4byte _080EC570 @ case 37 - .4byte _080EC570 @ case 38 - .4byte _080EC570 @ case 39 - .4byte _080EC570 @ case 40 - .4byte _080EC570 @ case 41 - .4byte _080EC570 @ case 42 - .4byte _080EC570 @ case 43 - .4byte _080EC570 @ case 44 - .4byte _080EC570 @ case 45 - .4byte _080EC570 @ case 46 - .4byte _080EC570 @ case 47 - .4byte _080EC570 @ case 48 - .4byte _080EC570 @ case 49 - .4byte _080EC570 @ case 50 - .4byte _080EC570 @ case 51 - .4byte _080EC570 @ case 52 - .4byte _080EC570 @ case 53 - .4byte _080EC570 @ case 54 - .4byte _080EC570 @ case 55 - .4byte _080EC570 @ case 56 - .4byte _080EC570 @ case 57 - .4byte _080EC570 @ case 58 - .4byte _080EC570 @ case 59 - .4byte _080EC570 @ case 60 - .4byte _080EC570 @ case 61 - .4byte _080EC570 @ case 62 - .4byte _080EC570 @ case 63 - .4byte _080EC570 @ case 64 - .4byte _080EC570 @ case 65 - .4byte _080EC570 @ case 66 - .4byte _080EC570 @ case 67 - .4byte _080EC570 @ case 68 - .4byte _080EC570 @ case 69 - .4byte _080EC570 @ case 70 - .4byte _080EC570 @ case 71 - .4byte _080EC570 @ case 72 - .4byte _080EC570 @ case 73 - .4byte _080EC570 @ case 74 - .4byte _080EC570 @ case 75 - .4byte _080EC570 @ case 76 - .4byte _080EC570 @ case 77 - .4byte _080EC570 @ case 78 - .4byte _080EC570 @ case 79 - .4byte _080EC570 @ case 80 - .4byte _080EC570 @ case 81 - .4byte _080EC570 @ case 82 - .4byte _080EC570 @ case 83 - .4byte _080EC570 @ case 84 - .4byte _080EC570 @ case 85 - .4byte _080EC570 @ case 86 - .4byte _080EC570 @ case 87 - .4byte _080EC570 @ case 88 - .4byte _080EC570 @ case 89 - .4byte _080EC570 @ case 90 - .4byte _080EC54C @ case 91 - .4byte _080EC4F4 @ case 92 - .4byte _080EC4F4 @ case 93 - .4byte _080EC488 @ case 94 - .4byte _080EC488 @ case 95 - .4byte _080EC570 @ case 96 - .4byte _080EC570 @ case 97 - .4byte _080EC570 @ case 98 - .4byte _080EC54C @ case 99 - .4byte _080EC570 @ case 100 - .4byte _080EC570 @ case 101 - .4byte _080EC570 @ case 102 - .4byte _080EC570 @ case 103 - .4byte _080EC570 @ case 104 - .4byte _080EC570 @ case 105 - .4byte _080EC570 @ case 106 - .4byte _080EC570 @ case 107 - .4byte _080EC54C @ case 108 - .4byte _080EC54C @ case 109 - .4byte _080EC54C @ case 110 - .4byte _080EC54C @ case 111 - .4byte _080EC54C @ case 112 - .4byte _080EC54C @ case 113 - .4byte _080EC54C @ case 114 - .4byte _080EC54C @ case 115 - .4byte _080EC570 @ case 116 - .4byte _080EC570 @ case 117 - .4byte _080EC570 @ case 118 - .4byte _080EC570 @ case 119 - .4byte _080EC570 @ case 120 - .4byte _080EC570 @ case 121 - .4byte _080EC570 @ case 122 - .4byte _080EC570 @ case 123 - .4byte _080EC570 @ case 124 - .4byte _080EC570 @ case 125 - .4byte _080EC570 @ case 126 - .4byte _080EC54C @ case 127 - .4byte _080EC570 @ case 128 - .4byte _080EC570 @ case 129 - .4byte _080EC570 @ case 130 - .4byte _080EC570 @ case 131 - .4byte _080EC54C @ case 132 - .4byte _080EC54C @ case 133 - .4byte _080EC54C @ case 134 - .4byte _080EC570 @ case 135 - .4byte _080EC54C @ case 136 - .4byte _080EC54C @ case 137 - .4byte _080EC54C @ case 138 - .4byte _080EC54C @ case 139 - .4byte _080EC570 @ case 140 - .4byte _080EC570 @ case 141 - .4byte _080EC570 @ case 142 - .4byte _080EC570 @ case 143 - .4byte _080EC570 @ case 144 - .4byte _080EC570 @ case 145 - .4byte _080EC570 @ case 146 - .4byte _080EC570 @ case 147 - .4byte _080EC570 @ case 148 - .4byte _080EC570 @ case 149 - .4byte _080EC570 @ case 150 - .4byte _080EC570 @ case 151 - .4byte _080EC570 @ case 152 - .4byte _080EC570 @ case 153 - .4byte _080EC570 @ case 154 - .4byte _080EC570 @ case 155 - .4byte _080EC570 @ case 156 - .4byte _080EC570 @ case 157 - .4byte _080EC570 @ case 158 - .4byte _080EC54C @ case 159 - .4byte _080EC54C @ case 160 - .4byte _080EC54C @ case 161 - .4byte _080EC54C @ case 162 - .4byte _080EC54C @ case 163 - .4byte _080EC570 @ case 164 - .4byte _080EC570 @ case 165 - .4byte _080EC570 @ case 166 - .4byte _080EC570 @ case 167 - .4byte _080EC570 @ case 168 - .4byte _080EC570 @ case 169 - .4byte _080EC570 @ case 170 - .4byte _080EC570 @ case 171 - .4byte _080EC4AC @ case 172 - .4byte _080EC4AC @ case 173 - .4byte _080EC4AC @ case 174 - .4byte _080EC4AC @ case 175 - .4byte _080EC4AC @ case 176 - .4byte _080EC4AC @ case 177 - .4byte _080EC570 @ case 178 - .4byte _080EC570 @ case 179 - .4byte _080EC570 @ case 180 - .4byte _080EC570 @ case 181 - .4byte _080EC570 @ case 182 - .4byte _080EC570 @ case 183 - .4byte _080EC570 @ case 184 - .4byte _080EC570 @ case 185 - .4byte _080EC570 @ case 186 - .4byte _080EC570 @ case 187 - .4byte _080EC4AC @ case 188 - .4byte _080EC4AC @ case 189 - .4byte _080EC4AC @ case 190 - .4byte _080EC4AC @ case 191 - .4byte _080EC4AC @ case 192 - .4byte _080EC4AC @ case 193 - .4byte _080EC4AC @ case 194 - .4byte _080EC4AC @ case 195 - .4byte _080EC570 @ case 196 - .4byte _080EC570 @ case 197 - .4byte _080EC570 @ case 198 - .4byte _080EC570 @ case 199 - .4byte _080EC570 @ case 200 - .4byte _080EC570 @ case 201 - .4byte _080EC570 @ case 202 - .4byte _080EC570 @ case 203 - .4byte _080EC4AC @ case 204 - .4byte _080EC4AC @ case 205 - .4byte _080EC4AC @ case 206 - .4byte _080EC4AC @ case 207 -_080EC488: - ldr r0, _080EC4A4 - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080EC570 - ldr r4, _080EC4A8 - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r0, #0x40 - b _080EC534 - .align 2, 0 -_080EC4A4: .4byte 0x00004054 -_080EC4A8: .4byte 0x000040EE -_080EC4AC: - ldr r0, _080EC4C8 - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080EC570 - ldr r4, _080EC4CC - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r0, #8 - b _080EC534 - .align 2, 0 -_080EC4C8: .4byte 0x00004054 -_080EC4CC: .4byte 0x000040EE -_080EC4D0: - ldr r0, _080EC4EC - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080EC570 - ldr r4, _080EC4F0 - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r0, #0x40 - b _080EC534 - .align 2, 0 -_080EC4EC: .4byte 0x00004054 -_080EC4F0: .4byte 0x000040EF -_080EC4F4: - ldr r0, _080EC514 - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080EC570 - ldr r4, _080EC518 - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r2, #0 - b _080EC534 - .align 2, 0 -_080EC514: .4byte 0x00004054 -_080EC518: .4byte 0x000040EF -_080EC51C: - ldr r0, _080EC544 - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080EC570 - ldr r4, _080EC548 - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r0, #0x10 -_080EC534: - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl VarSet - b _080EC570 - .align 2, 0 -_080EC544: .4byte 0x00004054 -_080EC548: .4byte 0x000040EF -_080EC54C: - ldr r0, _080EC578 - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080EC570 - ldr r4, _080EC57C - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl VarSet -_080EC570: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EC578: .4byte 0x00004054 -_080EC57C: .4byte 0x000040EF - thumb_func_end sub_080EC10C - - thumb_func_start SetSecretBaseSecretsTvFlags_LargeDecorationSpot -SetSecretBaseSecretsTvFlags_LargeDecorationSpot: @ 0x080EC580 - push {r4, lr} - sub sp, #4 - mov r4, sp - adds r4, #2 - 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 - ldr r1, _080EC5B4 - adds r0, r0, r1 - cmp r0, #0x35 - bls _080EC5A8 - b _080EC6B8 -_080EC5A8: - lsls r0, r0, #2 - ldr r1, _080EC5B8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EC5B4: .4byte 0xFFFFFD6F -_080EC5B8: .4byte _080EC5BC -_080EC5BC: @ jump table - .4byte _080EC694 @ case 0 - .4byte _080EC6B8 @ case 1 - .4byte _080EC6B8 @ case 2 - .4byte _080EC694 @ case 3 - .4byte _080EC6B8 @ case 4 - .4byte _080EC6B8 @ case 5 - .4byte _080EC694 @ case 6 - .4byte _080EC6B8 @ case 7 - .4byte _080EC6B8 @ case 8 - .4byte _080EC6B8 @ case 9 - .4byte _080EC6B8 @ case 10 - .4byte _080EC6B8 @ case 11 - .4byte _080EC6B8 @ case 12 - .4byte _080EC6B8 @ case 13 - .4byte _080EC6B8 @ case 14 - .4byte _080EC6B8 @ case 15 - .4byte _080EC694 @ case 16 - .4byte _080EC6B8 @ case 17 - .4byte _080EC6B8 @ case 18 - .4byte _080EC6B8 @ case 19 - .4byte _080EC694 @ case 20 - .4byte _080EC6B8 @ case 21 - .4byte _080EC6B8 @ case 22 - .4byte _080EC6B8 @ case 23 - .4byte _080EC694 @ case 24 - .4byte _080EC6B8 @ case 25 - .4byte _080EC6B8 @ case 26 - .4byte _080EC6B8 @ case 27 - .4byte _080EC694 @ case 28 - .4byte _080EC6B8 @ case 29 - .4byte _080EC6B8 @ case 30 - .4byte _080EC6B8 @ case 31 - .4byte _080EC6B8 @ case 32 - .4byte _080EC6B8 @ case 33 - .4byte _080EC6B8 @ case 34 - .4byte _080EC6B8 @ case 35 - .4byte _080EC6B8 @ case 36 - .4byte _080EC6B8 @ case 37 - .4byte _080EC6B8 @ case 38 - .4byte _080EC6B8 @ case 39 - .4byte _080EC6B8 @ case 40 - .4byte _080EC6B8 @ case 41 - .4byte _080EC694 @ case 42 - .4byte _080EC6B8 @ case 43 - .4byte _080EC6B8 @ case 44 - .4byte _080EC694 @ case 45 - .4byte _080EC6B8 @ case 46 - .4byte _080EC6B8 @ case 47 - .4byte _080EC6B8 @ case 48 - .4byte _080EC6B8 @ case 49 - .4byte _080EC694 @ case 50 - .4byte _080EC6B8 @ case 51 - .4byte _080EC6B8 @ case 52 - .4byte _080EC694 @ case 53 -_080EC694: - ldr r0, _080EC6C0 - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080EC6B8 - ldr r4, _080EC6C4 - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl VarSet -_080EC6B8: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EC6C0: .4byte 0x00004054 -_080EC6C4: .4byte 0x000040EF - thumb_func_end SetSecretBaseSecretsTvFlags_LargeDecorationSpot - - thumb_func_start SetSecretBaseSecretsTvFlags_SmallDecorationSpot -SetSecretBaseSecretsTvFlags_SmallDecorationSpot: @ 0x080EC6C8 - push {r4, lr} - sub sp, #4 - mov r4, sp - adds r4, #2 - 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 - ldr r1, _080EC6FC - adds r0, r0, r1 - cmp r0, #0xa2 - bls _080EC6F0 - b _080ECA0C -_080EC6F0: - lsls r0, r0, #2 - ldr r1, _080EC700 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EC6FC: .4byte 0xFFFFFDDB -_080EC700: .4byte _080EC704 -_080EC704: @ jump table - .4byte _080EC9E8 @ case 0 - .4byte _080EC9E8 @ case 1 - .4byte _080EC9E8 @ case 2 - .4byte _080ECA0C @ case 3 - .4byte _080ECA0C @ case 4 - .4byte _080ECA0C @ case 5 - .4byte _080ECA0C @ case 6 - .4byte _080ECA0C @ case 7 - .4byte _080ECA0C @ case 8 - .4byte _080ECA0C @ case 9 - .4byte _080ECA0C @ case 10 - .4byte _080ECA0C @ case 11 - .4byte _080ECA0C @ case 12 - .4byte _080ECA0C @ case 13 - .4byte _080ECA0C @ case 14 - .4byte _080ECA0C @ case 15 - .4byte _080ECA0C @ case 16 - .4byte _080ECA0C @ case 17 - .4byte _080ECA0C @ case 18 - .4byte _080ECA0C @ case 19 - .4byte _080ECA0C @ case 20 - .4byte _080ECA0C @ case 21 - .4byte _080ECA0C @ case 22 - .4byte _080ECA0C @ case 23 - .4byte _080ECA0C @ case 24 - .4byte _080ECA0C @ case 25 - .4byte _080ECA0C @ case 26 - .4byte _080ECA0C @ case 27 - .4byte _080ECA0C @ case 28 - .4byte _080ECA0C @ case 29 - .4byte _080ECA0C @ case 30 - .4byte _080ECA0C @ case 31 - .4byte _080ECA0C @ case 32 - .4byte _080ECA0C @ case 33 - .4byte _080ECA0C @ case 34 - .4byte _080ECA0C @ case 35 - .4byte _080ECA0C @ case 36 - .4byte _080ECA0C @ case 37 - .4byte _080ECA0C @ case 38 - .4byte _080ECA0C @ case 39 - .4byte _080ECA0C @ case 40 - .4byte _080ECA0C @ case 41 - .4byte _080ECA0C @ case 42 - .4byte _080ECA0C @ case 43 - .4byte _080ECA0C @ case 44 - .4byte _080ECA0C @ case 45 - .4byte _080ECA0C @ case 46 - .4byte _080ECA0C @ case 47 - .4byte _080ECA0C @ case 48 - .4byte _080ECA0C @ case 49 - .4byte _080ECA0C @ case 50 - .4byte _080ECA0C @ case 51 - .4byte _080ECA0C @ case 52 - .4byte _080ECA0C @ case 53 - .4byte _080ECA0C @ case 54 - .4byte _080ECA0C @ case 55 - .4byte _080ECA0C @ case 56 - .4byte _080ECA0C @ case 57 - .4byte _080ECA0C @ case 58 - .4byte _080ECA0C @ case 59 - .4byte _080ECA0C @ case 60 - .4byte _080ECA0C @ case 61 - .4byte _080ECA0C @ case 62 - .4byte _080ECA0C @ case 63 - .4byte _080ECA0C @ case 64 - .4byte _080ECA0C @ case 65 - .4byte _080ECA0C @ case 66 - .4byte _080ECA0C @ case 67 - .4byte _080ECA0C @ case 68 - .4byte _080ECA0C @ case 69 - .4byte _080ECA0C @ case 70 - .4byte _080ECA0C @ case 71 - .4byte _080ECA0C @ case 72 - .4byte _080ECA0C @ case 73 - .4byte _080ECA0C @ case 74 - .4byte _080ECA0C @ case 75 - .4byte _080ECA0C @ case 76 - .4byte _080ECA0C @ case 77 - .4byte _080ECA0C @ case 78 - .4byte _080ECA0C @ case 79 - .4byte _080ECA0C @ case 80 - .4byte _080ECA0C @ case 81 - .4byte _080ECA0C @ case 82 - .4byte _080ECA0C @ case 83 - .4byte _080ECA0C @ case 84 - .4byte _080ECA0C @ case 85 - .4byte _080ECA0C @ case 86 - .4byte _080ECA0C @ case 87 - .4byte _080ECA0C @ case 88 - .4byte _080ECA0C @ case 89 - .4byte _080ECA0C @ case 90 - .4byte _080EC9B4 @ case 91 - .4byte _080EC9B4 @ case 92 - .4byte _080ECA0C @ case 93 - .4byte _080ECA0C @ case 94 - .4byte _080ECA0C @ case 95 - .4byte _080ECA0C @ case 96 - .4byte _080ECA0C @ case 97 - .4byte _080ECA0C @ case 98 - .4byte _080ECA0C @ case 99 - .4byte _080ECA0C @ case 100 - .4byte _080ECA0C @ case 101 - .4byte _080ECA0C @ case 102 - .4byte _080ECA0C @ case 103 - .4byte _080ECA0C @ case 104 - .4byte _080ECA0C @ case 105 - .4byte _080ECA0C @ case 106 - .4byte _080EC990 @ case 107 - .4byte _080ECA0C @ case 108 - .4byte _080EC990 @ case 109 - .4byte _080EC990 @ case 110 - .4byte _080ECA0C @ case 111 - .4byte _080EC990 @ case 112 - .4byte _080EC990 @ case 113 - .4byte _080ECA0C @ case 114 - .4byte _080ECA0C @ case 115 - .4byte _080ECA0C @ case 116 - .4byte _080ECA0C @ case 117 - .4byte _080ECA0C @ case 118 - .4byte _080ECA0C @ case 119 - .4byte _080ECA0C @ case 120 - .4byte _080ECA0C @ case 121 - .4byte _080ECA0C @ case 122 - .4byte _080EC990 @ case 123 - .4byte _080ECA0C @ case 124 - .4byte _080EC990 @ case 125 - .4byte _080EC990 @ case 126 - .4byte _080EC990 @ case 127 - .4byte _080ECA0C @ case 128 - .4byte _080EC990 @ case 129 - .4byte _080EC990 @ case 130 - .4byte _080EC990 @ case 131 - .4byte _080ECA0C @ case 132 - .4byte _080EC990 @ case 133 - .4byte _080ECA0C @ case 134 - .4byte _080EC990 @ case 135 - .4byte _080ECA0C @ case 136 - .4byte _080EC990 @ case 137 - .4byte _080EC990 @ case 138 - .4byte _080ECA0C @ case 139 - .4byte _080ECA0C @ case 140 - .4byte _080ECA0C @ case 141 - .4byte _080ECA0C @ case 142 - .4byte _080ECA0C @ case 143 - .4byte _080ECA0C @ case 144 - .4byte _080ECA0C @ case 145 - .4byte _080ECA0C @ case 146 - .4byte _080ECA0C @ case 147 - .4byte _080ECA0C @ case 148 - .4byte _080ECA0C @ case 149 - .4byte _080ECA0C @ case 150 - .4byte _080EC990 @ case 151 - .4byte _080EC990 @ case 152 - .4byte _080ECA0C @ case 153 - .4byte _080EC990 @ case 154 - .4byte _080ECA0C @ case 155 - .4byte _080ECA0C @ case 156 - .4byte _080ECA0C @ case 157 - .4byte _080ECA0C @ case 158 - .4byte _080EC990 @ case 159 - .4byte _080EC990 @ case 160 - .4byte _080ECA0C @ case 161 - .4byte _080EC990 @ case 162 -_080EC990: - ldr r0, _080EC9AC - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080ECA0C - ldr r4, _080EC9B0 - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r0, #8 - b _080EC9D0 - .align 2, 0 -_080EC9AC: .4byte 0x00004054 -_080EC9B0: .4byte 0x000040EF -_080EC9B4: - ldr r0, _080EC9E0 - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080ECA0C - ldr r4, _080EC9E4 - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r2, #0 -_080EC9D0: - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl VarSet - b _080ECA0C - .align 2, 0 -_080EC9E0: .4byte 0x00004054 -_080EC9E4: .4byte 0x000040EF -_080EC9E8: - ldr r0, _080ECA14 - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080ECA0C - ldr r4, _080ECA18 - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r0, #0x10 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl VarSet -_080ECA0C: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ECA14: .4byte 0x00004054 -_080ECA18: .4byte 0x000040EF - thumb_func_end SetSecretBaseSecretsTvFlags_SmallDecorationSpot - - thumb_func_start SetSecretBaseSecretsTvFlags_SandOrnament -SetSecretBaseSecretsTvFlags_SandOrnament: @ 0x080ECA1C - push {r4, lr} - sub sp, #4 - mov r4, sp - adds r4, #2 - 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, _080ECA74 - cmp r1, r0 - bgt _080ECA6C - subs r0, #1 - cmp r1, r0 - blt _080ECA6C - ldr r0, _080ECA78 - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080ECA6C - ldr r4, _080ECA7C - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r0, #4 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl VarSet -_080ECA6C: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ECA74: .4byte 0x0000028E -_080ECA78: .4byte 0x00004054 -_080ECA7C: .4byte 0x000040EF - thumb_func_end SetSecretBaseSecretsTvFlags_SandOrnament - - thumb_func_start ClearTVShowData -ClearTVShowData: @ 0x080ECA80 - push {r4, r5, r6, r7, lr} - movs r3, #0 - ldr r6, _080ECAD0 - movs r5, #0 - ldr r7, _080ECAD4 -_080ECA8A: - ldr r0, [r6] - lsls r1, r3, #3 - adds r1, r1, r3 - lsls r1, r1, #2 - adds r0, r0, r1 - ldr r2, _080ECAD8 - adds r0, r0, r2 - strb r5, [r0] - ldr r0, [r6] - adds r0, r0, r1 - adds r2, #1 - adds r0, r0, r2 - strb r5, [r0] - movs r2, #0 - adds r4, r3, #1 - adds r3, r1, #0 -_080ECAAA: - ldr r0, [r6] - adds r1, r2, r3 - adds r0, r0, r7 - adds r0, r0, r1 - strb r5, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x21 - bls _080ECAAA - lsls r0, r4, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0x18 - bls _080ECA8A - bl ClearPokemonNews - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080ECAD0: .4byte gUnknown_3005AEC -_080ECAD4: .4byte 0x000027CE -_080ECAD8: .4byte 0x000027CC - thumb_func_end ClearTVShowData - - thumb_func_start special_0x44 -special_0x44: @ 0x080ECADC - push {r4, r5, r6, r7, lr} - movs r4, #5 - ldr r1, _080ECB50 - ldr r0, [r1] - movs r2, #0xa2 - lsls r2, r2, #6 - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080ECB10 - adds r3, r1, #0 - subs r2, #0xb4 -_080ECAF4: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x17 - bhi _080ECB10 - ldr r0, [r3] - lsls r1, r4, #3 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r0, r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _080ECAF4 -_080ECB10: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r4, #0 - bl __modsi3 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r7, r5, #0 - ldr r6, _080ECB50 -_080ECB26: - ldr r1, [r6] - lsls r0, r5, #3 - adds r0, r0, r5 - lsls r4, r0, #2 - adds r1, r1, r4 - ldr r0, _080ECB54 - adds r1, r1, r0 - ldrb r0, [r1] - bl GetTVChannelByShowType - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - beq _080ECB5C - ldr r0, [r6] - adds r0, r0, r4 - ldr r1, _080ECB58 - adds r0, r0, r1 - ldrb r0, [r0] - b _080ECB6C - .align 2, 0 -_080ECB50: .4byte gUnknown_3005AEC -_080ECB54: .4byte 0x000027CC -_080ECB58: .4byte 0x000027CD -_080ECB5C: - ldr r2, _080ECB74 - adds r0, r4, r2 - ldr r1, [r6] - adds r1, r1, r0 - ldrh r0, [r1, #0x16] - cmp r0, #0 - bne _080ECB78 - ldrb r0, [r1, #1] -_080ECB6C: - cmp r0, #1 - bne _080ECB78 - adds r0, r5, #0 - b _080ECB8C - .align 2, 0 -_080ECB74: .4byte 0x000027CC -_080ECB78: - cmp r5, #0 - bne _080ECB80 - movs r5, #0x17 - b _080ECB86 -_080ECB80: - subs r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_080ECB86: - cmp r5, r7 - bne _080ECB26 - movs r0, #0xff -_080ECB8C: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end special_0x44 - - thumb_func_start FindAnyTVShowOnTheAir -FindAnyTVShowOnTheAir: @ 0x080ECB94 - push {lr} - bl special_0x44 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xff - bne _080ECBA6 - movs r0, #0xff - b _080ECBDE -_080ECBA6: - ldr r0, _080ECBD0 - ldr r2, [r0] - ldr r3, _080ECBD4 - adds r0, r2, r3 - ldrh r0, [r0] - cmp r0, #0 - beq _080ECBDC - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r2, r0 - ldr r2, _080ECBD8 - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #0x29 - bne _080ECBDC - bl FindFirstActiveTVShowThatIsNotAMassOutbreak - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _080ECBDE - .align 2, 0 -_080ECBD0: .4byte gUnknown_3005AEC -_080ECBD4: .4byte 0x00002B90 -_080ECBD8: .4byte 0x000027CC -_080ECBDC: - adds r0, r1, #0 -_080ECBDE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end FindAnyTVShowOnTheAir - - thumb_func_start UpdateTVScreensOnMap -UpdateTVScreensOnMap: @ 0x080ECBE4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r0, _080ECC18 - bl FlagSet - bl CheckForBigMovieOrEmergencyNewsOnTV - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080ECC0A - cmp r0, #2 - beq _080ECC5E - ldr r0, _080ECC1C - ldr r0, [r0] - ldrh r0, [r0, #4] - cmp r0, #0xd - bne _080ECC20 -_080ECC0A: - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #3 - bl SetTVMetatilesOnMap - b _080ECC5E - .align 2, 0 -_080ECC18: .4byte 0x00000891 -_080ECC1C: .4byte gUnknown_3005AEC -_080ECC20: - ldr r0, _080ECC64 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080ECC5E - bl FindAnyTVShowOnTheAir - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080ECC4E - bl FindAnyTVNewsOnTheAir - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080ECC4E - bl IsTVShowInSearchOfTrainersAiring - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080ECC5E -_080ECC4E: - ldr r0, _080ECC68 - bl FlagClear - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #3 - bl SetTVMetatilesOnMap -_080ECC5E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080ECC64: .4byte 0x00000892 -_080ECC68: .4byte 0x00000891 - thumb_func_end UpdateTVScreensOnMap - - thumb_func_start SetTVMetatilesOnMap -SetTVMetatilesOnMap: @ 0x080ECC6C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sb, r0 - mov sl, r1 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - movs r5, #0 - cmp r5, sl - bge _080ECCC0 - movs r1, #0xc0 - lsls r1, r1, #4 - adds r0, r1, #0 - mov r8, r2 - mov r1, r8 - orrs r1, r0 - mov r8, r1 -_080ECC92: - movs r4, #0 - adds r7, r5, #1 - cmp r4, sb - bge _080ECCBA - mov r0, r8 - lsls r6, r0, #0x10 -_080ECC9E: - adds r0, r4, #0 - adds r1, r5, #0 - bl MapGridGetMetatileBehaviorAt - cmp r0, #0x86 - bne _080ECCB4 - adds r0, r4, #0 - adds r1, r5, #0 - lsrs r2, r6, #0x10 - bl MapGridSetMetatileIdAt -_080ECCB4: - adds r4, #1 - cmp r4, sb - blt _080ECC9E -_080ECCBA: - adds r5, r7, #0 - cmp r5, sl - blt _080ECC92 -_080ECCC0: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetTVMetatilesOnMap - - thumb_func_start TurnOffTVScreen -TurnOffTVScreen: @ 0x080ECCD0 - push {lr} - ldr r1, _080ECCE8 - ldr r0, [r1] - ldr r1, [r1, #4] - movs r2, #2 - bl SetTVMetatilesOnMap - bl DrawWholeMapView - pop {r0} - bx r0 - .align 2, 0 -_080ECCE8: .4byte gUnknown_3005B20 - thumb_func_end TurnOffTVScreen - - thumb_func_start TurnOnTVScreen -TurnOnTVScreen: @ 0x080ECCEC - push {lr} - ldr r1, _080ECD04 - ldr r0, [r1] - ldr r1, [r1, #4] - movs r2, #3 - bl SetTVMetatilesOnMap - bl DrawWholeMapView - pop {r0} - bx r0 - .align 2, 0 -_080ECD04: .4byte gUnknown_3005B20 - thumb_func_end TurnOnTVScreen - - thumb_func_start special_0x45 -special_0x45: @ 0x080ECD08 - ldr r0, _080ECD20 - ldr r1, [r0] - ldr r0, _080ECD24 - ldrh r2, [r0] - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r1, r1, r0 - ldr r0, _080ECD28 - adds r1, r1, r0 - ldrb r0, [r1] - bx lr - .align 2, 0 -_080ECD20: .4byte gUnknown_3005AEC -_080ECD24: .4byte gUnknown_2037280 -_080ECD28: .4byte 0x000027CC - thumb_func_end special_0x45 - - thumb_func_start FindFirstActiveTVShowThatIsNotAMassOutbreak -FindFirstActiveTVShowThatIsNotAMassOutbreak: @ 0x080ECD2C - push {r4, lr} - movs r2, #0 - ldr r0, _080ECD58 - ldr r3, [r0] -_080ECD34: - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r1, r3, r0 - ldr r4, _080ECD5C - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, #0 - beq _080ECD60 - cmp r0, #0x29 - beq _080ECD60 - adds r4, #1 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, #1 - bne _080ECD60 - adds r0, r2, #0 - b _080ECD6C - .align 2, 0 -_080ECD58: .4byte gUnknown_3005AEC -_080ECD5C: .4byte 0x000027CC -_080ECD60: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x17 - bls _080ECD34 - movs r0, #0xff -_080ECD6C: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end FindFirstActiveTVShowThatIsNotAMassOutbreak - - thumb_func_start sub_080ECD74 -sub_080ECD74: @ 0x080ECD74 - push {lr} - ldr r3, _080ECDA4 - ldr r2, _080ECDA8 - ldrh r1, [r2] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080ECDAC - adds r0, r0, r1 - ldr r3, [r3] - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, #0x29 - bne _080ECDB4 - ldr r1, _080ECDB0 - adds r0, r3, r1 - ldrh r0, [r0] - cmp r0, #0 - beq _080ECDB4 - bl FindFirstActiveTVShowThatIsNotAMassOutbreak - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _080ECDB6 - .align 2, 0 -_080ECDA4: .4byte gUnknown_3005AEC -_080ECDA8: .4byte gUnknown_2037280 -_080ECDAC: .4byte 0x000027CC -_080ECDB0: .4byte 0x00002B90 -_080ECDB4: - ldrb r0, [r2] -_080ECDB6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080ECD74 - - thumb_func_start ResetGabbyAndTy -ResetGabbyAndTy: @ 0x080ECDBC - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - ldr r3, _080ECEA0 - ldr r2, [r3] - ldr r1, _080ECEA4 - adds r0, r2, r1 - movs r4, #0 - mov sl, r4 - movs r1, #0 - strh r1, [r0] - ldr r4, _080ECEA8 - adds r0, r2, r4 - strh r1, [r0] - adds r4, #2 - adds r0, r2, r4 - strh r1, [r0] - ldr r0, _080ECEAC - adds r1, r2, r0 - ldr r0, _080ECEB0 - strh r0, [r1] - adds r4, #6 - adds r2, r2, r4 - ldrb r1, [r2] - movs r0, #2 - rsbs r0, r0, #0 - mov sb, r0 - ands r0, r1 - strb r0, [r2] - ldr r1, [r3] - adds r1, r1, r4 - ldrb r2, [r1] - movs r0, #3 - rsbs r0, r0, #0 - mov r8, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r3] - adds r1, r1, r4 - ldrb r2, [r1] - movs r6, #5 - rsbs r6, r6, #0 - adds r0, r6, #0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r3] - adds r1, r1, r4 - ldrb r2, [r1] - movs r5, #9 - rsbs r5, r5, #0 - adds r0, r5, #0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r3] - adds r1, r1, r4 - ldrb r2, [r1] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r3] - adds r1, r1, r4 - ldrb r2, [r1] - movs r0, #0x1f - ands r0, r2 - strb r0, [r1] - ldr r0, [r3] - ldr r2, _080ECEB4 - adds r0, r0, r2 - ldrb r1, [r0] - mov r4, sb - ands r4, r1 - strb r4, [r0] - ldr r0, [r3] - adds r0, r0, r2 - ldrb r1, [r0] - mov r4, r8 - ands r4, r1 - strb r4, [r0] - ldr r0, [r3] - adds r0, r0, r2 - ldrb r1, [r0] - ands r6, r1 - strb r6, [r0] - ldr r0, [r3] - adds r0, r0, r2 - ldrb r1, [r0] - ands r5, r1 - strb r5, [r0] - ldr r1, [r3] - adds r1, r1, r2 - ldrb r2, [r1] - movs r0, #0xf - ands r0, r2 - strb r0, [r1] - ldr r0, [r3] - ldr r1, _080ECEB8 - adds r0, r0, r1 - mov r4, sl - strb r4, [r0] - ldr r0, [r3] - adds r1, #1 - adds r0, r0, r1 - strb r4, [r0] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080ECEA0: .4byte gUnknown_3005AEC -_080ECEA4: .4byte 0x00002BA4 -_080ECEA8: .4byte 0x00002BA6 -_080ECEAC: .4byte 0x00002BAA -_080ECEB0: .4byte 0x0000FFFF -_080ECEB4: .4byte 0x00002BAF -_080ECEB8: .4byte 0x00002BAC - thumb_func_end ResetGabbyAndTy - - thumb_func_start GabbyAndTyBeforeInterview -GabbyAndTyBeforeInterview: @ 0x080ECEBC - push {r4, lr} - ldr r3, _080ECF24 - ldr r2, [r3] - ldr r0, _080ECF28 - mov ip, r0 - ldrh r1, [r0, #6] - ldr r4, _080ECF2C - adds r0, r2, r4 - strh r1, [r0] - mov r0, ip - ldrh r1, [r0, #0x26] - adds r4, #2 - adds r0, r2, r4 - strh r1, [r0] - mov r0, ip - ldrh r1, [r0, #0x22] - adds r4, #2 - adds r0, r2, r4 - strh r1, [r0] - ldr r0, _080ECF30 - adds r2, r2, r0 - ldrb r1, [r2] - adds r0, r1, #0 - adds r4, r3, #0 - cmp r0, #0xff - beq _080ECEF4 - adds r0, r1, #1 - strb r0, [r2] -_080ECEF4: - ldr r2, [r4] - mov r0, ip - ldrb r1, [r0, #5] - lsls r1, r1, #0x1f - ldr r0, _080ECF34 - adds r2, r2, r0 - lsrs r1, r1, #0x1f - ldrb r3, [r2] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - mov r1, ip - ldrb r0, [r1] - cmp r0, #0 - beq _080ECF38 - ldr r0, [r4] - ldr r1, _080ECF34 - adds r0, r0, r1 - ldrb r1, [r0] - movs r2, #2 - orrs r1, r2 - b _080ECF46 - .align 2, 0 -_080ECF24: .4byte gUnknown_3005AEC -_080ECF28: .4byte gUnknown_3005A70 -_080ECF2C: .4byte 0x00002BA4 -_080ECF30: .4byte 0x00002BAD -_080ECF34: .4byte 0x00002BAE -_080ECF38: - ldr r0, [r4] - ldr r1, _080ECF60 - adds r0, r0, r1 - ldrb r2, [r0] - movs r1, #3 - rsbs r1, r1, #0 - ands r1, r2 -_080ECF46: - strb r1, [r0] - mov r1, ip - ldrb r0, [r1, #3] - cmp r0, #0 - beq _080ECF64 - ldr r0, [r4] - ldr r1, _080ECF60 - adds r0, r0, r1 - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - b _080ECF72 - .align 2, 0 -_080ECF60: .4byte 0x00002BAE -_080ECF64: - ldr r0, [r4] - ldr r1, _080ECFAC - adds r0, r0, r1 - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 -_080ECF72: - strb r1, [r0] - mov r0, ip - ldrb r1, [r0, #5] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _080ECFB0 - movs r1, #0 - mov r0, ip - adds r0, #0x36 - ldrb r0, [r0] - cmp r0, #0 - bne _080ECFB0 -_080ECF8C: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xa - bhi _080ECFBE - mov r0, ip - adds r0, #0x36 - adds r0, r1, r0 - ldrb r0, [r0] - cmp r0, #0 - beq _080ECF8C - ldr r0, [r4] - ldr r4, _080ECFAC - adds r0, r0, r4 - b _080ECFB6 - .align 2, 0 -_080ECFAC: .4byte 0x00002BAE -_080ECFB0: - ldr r0, [r4] - ldr r1, _080ECFDC - adds r0, r0, r1 -_080ECFB6: - ldrb r1, [r0] - movs r2, #8 - orrs r1, r2 - strb r1, [r0] -_080ECFBE: - bl TakeTVShowInSearchOfTrainersOffTheAir - ldr r0, _080ECFE0 - ldr r0, [r0] - ldr r4, _080ECFE4 - adds r0, r0, r4 - ldrh r0, [r0] - cmp r0, #0 - bne _080ECFD6 - movs r0, #1 - bl FlagSet -_080ECFD6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ECFDC: .4byte 0x00002BAE -_080ECFE0: .4byte gUnknown_3005AEC -_080ECFE4: .4byte 0x00002BA8 - thumb_func_end GabbyAndTyBeforeInterview - - thumb_func_start GabbyAndTyAfterInterview -GabbyAndTyAfterInterview: @ 0x080ECFE8 - push {r4, r5, r6, lr} - ldr r5, _080ED074 - ldr r2, [r5] - ldr r6, _080ED078 - adds r0, r2, r6 - ldrb r1, [r0] - lsls r1, r1, #0x1f - ldr r4, _080ED07C - adds r2, r2, r4 - lsrs r1, r1, #0x1f - ldrb r3, [r2] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldr r2, [r5] - adds r0, r2, r6 - ldrb r0, [r0] - adds r2, r2, r4 - movs r1, #2 - ands r1, r0 - ldrb r3, [r2] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldr r2, [r5] - adds r0, r2, r6 - ldrb r0, [r0] - adds r2, r2, r4 - movs r1, #4 - ands r1, r0 - ldrb r3, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldr r2, [r5] - adds r0, r2, r6 - ldrb r0, [r0] - adds r2, r2, r4 - movs r1, #8 - ands r1, r0 - ldrb r3, [r2] - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldr r1, [r5] - adds r1, r1, r6 - ldrb r0, [r1] - movs r2, #0x10 - orrs r0, r2 - strb r0, [r1] - ldr r0, [r5] - ldr r1, _080ED080 - ldrb r1, [r1, #0x14] - ldr r2, _080ED084 - adds r0, r0, r2 - strb r1, [r0] - movs r0, #6 - bl IncrementGameStat - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080ED074: .4byte gUnknown_3005AEC -_080ED078: .4byte 0x00002BAE -_080ED07C: .4byte 0x00002BAF -_080ED080: .4byte gUnknown_2036FB8 -_080ED084: .4byte 0x00002BAC - thumb_func_end GabbyAndTyAfterInterview - - thumb_func_start TakeTVShowInSearchOfTrainersOffTheAir -TakeTVShowInSearchOfTrainersOffTheAir: @ 0x080ED088 - ldr r0, _080ED09C - ldr r1, [r0] - ldr r0, _080ED0A0 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - bx lr - .align 2, 0 -_080ED09C: .4byte gUnknown_3005AEC -_080ED0A0: .4byte 0x00002BAE - thumb_func_end TakeTVShowInSearchOfTrainersOffTheAir - - thumb_func_start GabbyAndTyGetBattleNum -GabbyAndTyGetBattleNum: @ 0x080ED0A4 - push {lr} - ldr r0, _080ED0C8 - ldr r0, [r0] - ldr r2, _080ED0CC - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, #5 - bls _080ED0C2 - ldrb r0, [r1] - movs r1, #3 - bl __umodsi3 - adds r0, #6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_080ED0C2: - pop {r1} - bx r1 - .align 2, 0 -_080ED0C8: .4byte gUnknown_3005AEC -_080ED0CC: .4byte 0x00002BAD - thumb_func_end GabbyAndTyGetBattleNum - - thumb_func_start IsTVShowInSearchOfTrainersAiring -IsTVShowInSearchOfTrainersAiring: @ 0x080ED0D0 - ldr r0, _080ED0E0 - ldr r0, [r0] - ldr r1, _080ED0E4 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1f - bx lr - .align 2, 0 -_080ED0E0: .4byte gUnknown_3005AEC -_080ED0E4: .4byte 0x00002BAE - thumb_func_end IsTVShowInSearchOfTrainersAiring - - thumb_func_start GabbyAndTyGetLastQuote -GabbyAndTyGetLastQuote: @ 0x080ED0E8 - push {r4, r5, lr} - ldr r5, _080ED114 - ldr r0, [r5] - ldr r2, _080ED118 - adds r1, r0, r2 - ldrh r0, [r1] - ldr r4, _080ED11C - cmp r0, r4 - beq _080ED124 - ldr r0, _080ED120 - ldrh r1, [r1] - bl CopyEasyChatWord - ldr r1, [r5] - ldr r0, _080ED118 - adds r1, r1, r0 - ldrh r2, [r1] - adds r0, r4, #0 - orrs r0, r2 - strh r0, [r1] - movs r0, #1 - b _080ED126 - .align 2, 0 -_080ED114: .4byte gUnknown_3005AEC -_080ED118: .4byte 0x00002BAA -_080ED11C: .4byte 0x0000FFFF -_080ED120: .4byte gUnknown_2021C40 -_080ED124: - movs r0, #0 -_080ED126: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end GabbyAndTyGetLastQuote - - thumb_func_start GabbyAndTyGetLastBattleTrivia -GabbyAndTyGetLastBattleTrivia: @ 0x080ED12C - push {lr} - ldr r0, _080ED144 - ldr r0, [r0] - ldr r1, _080ED148 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080ED14C - movs r0, #1 - b _080ED172 - .align 2, 0 -_080ED144: .4byte gUnknown_3005AEC -_080ED148: .4byte 0x00002BAF -_080ED14C: - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080ED158 - movs r0, #2 - b _080ED172 -_080ED158: - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080ED164 - movs r0, #3 - b _080ED172 -_080ED164: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _080ED170 - movs r0, #0 - b _080ED172 -_080ED170: - movs r0, #4 -_080ED172: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GabbyAndTyGetLastBattleTrivia - - thumb_func_start GabbyAndTySetScriptVarsToEventObjectLocalIds -GabbyAndTySetScriptVarsToEventObjectLocalIds: @ 0x080ED178 - push {lr} - bl GabbyAndTyGetBattleNum - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, #1 - cmp r0, #7 - bhi _080ED250 - lsls r0, r0, #2 - ldr r1, _080ED194 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ED194: .4byte _080ED198 -_080ED198: @ jump table - .4byte _080ED1B8 @ case 0 - .4byte _080ED1CC @ case 1 - .4byte _080ED1E0 @ case 2 - .4byte _080ED1F4 @ case 3 - .4byte _080ED208 @ case 4 - .4byte _080ED21C @ case 5 - .4byte _080ED230 @ case 6 - .4byte _080ED244 @ case 7 -_080ED1B8: - ldr r1, _080ED1C4 - movs r0, #0xe - strh r0, [r1] - ldr r1, _080ED1C8 - movs r0, #0xd - b _080ED24E - .align 2, 0 -_080ED1C4: .4byte gUnknown_2037280 -_080ED1C8: .4byte gUnknown_2037282 -_080ED1CC: - ldr r1, _080ED1D8 - movs r0, #5 - strh r0, [r1] - ldr r1, _080ED1DC - movs r0, #6 - b _080ED24E - .align 2, 0 -_080ED1D8: .4byte gUnknown_2037280 -_080ED1DC: .4byte gUnknown_2037282 -_080ED1E0: - ldr r1, _080ED1EC - movs r0, #0x12 - strh r0, [r1] - ldr r1, _080ED1F0 - movs r0, #0x11 - b _080ED24E - .align 2, 0 -_080ED1EC: .4byte gUnknown_2037280 -_080ED1F0: .4byte gUnknown_2037282 -_080ED1F4: - ldr r1, _080ED200 - movs r0, #0x15 - strh r0, [r1] - ldr r1, _080ED204 - movs r0, #0x16 - b _080ED24E - .align 2, 0 -_080ED200: .4byte gUnknown_2037280 -_080ED204: .4byte gUnknown_2037282 -_080ED208: - ldr r1, _080ED214 - movs r0, #8 - strh r0, [r1] - ldr r1, _080ED218 - movs r0, #9 - b _080ED24E - .align 2, 0 -_080ED214: .4byte gUnknown_2037280 -_080ED218: .4byte gUnknown_2037282 -_080ED21C: - ldr r1, _080ED228 - movs r0, #0x13 - strh r0, [r1] - ldr r1, _080ED22C - movs r0, #0x14 - b _080ED24E - .align 2, 0 -_080ED228: .4byte gUnknown_2037280 -_080ED22C: .4byte gUnknown_2037282 -_080ED230: - ldr r1, _080ED23C - movs r0, #0x17 - strh r0, [r1] - ldr r1, _080ED240 - movs r0, #0x18 - b _080ED24E - .align 2, 0 -_080ED23C: .4byte gUnknown_2037280 -_080ED240: .4byte gUnknown_2037282 -_080ED244: - ldr r1, _080ED254 - movs r0, #0xa - strh r0, [r1] - ldr r1, _080ED258 - movs r0, #0xb -_080ED24E: - strh r0, [r1] -_080ED250: - pop {r0} - bx r0 - .align 2, 0 -_080ED254: .4byte gUnknown_2037280 -_080ED258: .4byte gUnknown_2037282 - thumb_func_end GabbyAndTySetScriptVarsToEventObjectLocalIds - - thumb_func_start InterviewAfter -InterviewAfter: @ 0x080ED25C - push {lr} - ldr r0, _080ED274 - ldrh r0, [r0] - subs r0, #1 - cmp r0, #7 - bhi _080ED2C4 - lsls r0, r0, #2 - ldr r1, _080ED278 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ED274: .4byte gUnknown_2037282 -_080ED278: .4byte _080ED27C -_080ED27C: @ jump table - .4byte _080ED29C @ case 0 - .4byte _080ED2A2 @ case 1 - .4byte _080ED2A8 @ case 2 - .4byte _080ED2AE @ case 3 - .4byte _080ED2C4 @ case 4 - .4byte _080ED2B4 @ case 5 - .4byte _080ED2BA @ case 6 - .4byte _080ED2C0 @ case 7 -_080ED29C: - bl InterviewAfter_FanClubLetter - b _080ED2C4 -_080ED2A2: - bl InterviewAfter_RecentHappenings - b _080ED2C4 -_080ED2A8: - bl sub_080EE144 - b _080ED2C4 -_080ED2AE: - bl sub_080EE234 - b _080ED2C4 -_080ED2B4: - bl InterviewAfter_BravoTrainerPokemonProfile - b _080ED2C4 -_080ED2BA: - bl InterviewAfter_BravoTrainerBattleTowerProfile - b _080ED2C4 -_080ED2C0: - bl InterviewAfter_ContestLiveUpdates -_080ED2C4: - pop {r0} - bx r0 - thumb_func_end InterviewAfter - - thumb_func_start PutPokemonTodayCaughtOnAir -PutPokemonTodayCaughtOnAir: @ 0x080ED2C8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r4, #0 - bl sub_080EF88C - bl sub_080EE238 - ldr r5, _080ED2E8 - ldrh r0, [r5, #0x28] - cmp r0, #0 - bne _080ED2EC - bl PutPokemonTodayFailedOnTheAir - b _080ED41E - .align 2, 0 -_080ED2E8: .4byte gUnknown_3005A70 -_080ED2EC: - bl sub_080ED438 - ldr r0, _080ED3A8 - bl TV_BernoulliTrial - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080ED2FE - b _080ED41E -_080ED2FE: - ldrh r1, [r5, #0x28] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r1, _080ED3AC - adds r0, r0, r1 - adds r1, r5, #0 - adds r1, #0x2a - bl StringCompare - cmp r0, #0 - bne _080ED318 - b _080ED41E -_080ED318: - ldr r0, _080ED3B0 - ldr r0, [r0] - ldr r1, _080ED3B4 - adds r0, r0, r1 - bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray - ldr r1, _080ED3B8 - strb r0, [r1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080ED41E - movs r0, #0x15 - movs r1, #0 - bl HasMixableShowAlreadyBeenSpawnedWithPlayerID - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080ED41E - movs r2, #0 - adds r7, r5, #0 - adds r1, r7, #0 - adds r1, #0x36 -_080ED34C: - adds r0, r2, r1 - ldrb r0, [r0] - adds r0, r4, r0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xa - bls _080ED34C - cmp r4, #0 - bne _080ED36E - ldrb r1, [r7, #5] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080ED41E -_080ED36E: - movs r4, #0 - ldr r2, _080ED3B0 - ldr r0, _080ED3B8 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080ED3B4 - adds r0, r0, r1 - ldr r1, [r2] - adds r5, r1, r0 - movs r0, #0x15 - strb r0, [r5] - strb r4, [r5, #1] - ldrb r1, [r7, #5] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080ED3C0 - movs r4, #1 - movs r0, #1 - adds r3, r5, #0 - adds r3, #0x13 - ldr r1, _080ED3BC - mov r8, r1 - adds r6, r5, #4 - b _080ED3F2 - .align 2, 0 -_080ED3A8: .4byte 0x0000FFFF -_080ED3AC: .4byte gUnknown_82EA31C -_080ED3B0: .4byte gUnknown_3005AEC -_080ED3B4: .4byte 0x000027CC -_080ED3B8: .4byte gUnknown_3005E20 -_080ED3BC: .4byte gUnknown_3005AF0 -_080ED3C0: - movs r2, #0 - ldr r0, _080ED428 - mov ip, r0 - adds r3, r5, #0 - adds r3, #0x13 - ldr r1, _080ED42C - mov r8, r1 - adds r6, r5, #4 - adds r1, r7, #0 - adds r1, #0x36 -_080ED3D4: - adds r0, r2, r1 - ldrb r0, [r0] - adds r0, r4, r0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xa - bls _080ED3D4 - cmp r4, #0xff - bls _080ED3EE - movs r4, #0xff -_080ED3EE: - mov r1, ip - ldrh r0, [r1] -_080ED3F2: - strb r4, [r5, #0x12] - strb r0, [r5, #0xf] - mov r0, r8 - ldr r1, [r0] - adds r0, r3, #0 - bl StringCopy - ldr r4, _080ED430 - 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 tv_store_id_3x - ldr r0, _080ED434 - ldrb r0, [r0] - strb r0, [r5, #2] - strb r0, [r5, #3] -_080ED41E: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080ED428: .4byte gUnknown_2023EAC -_080ED42C: .4byte gUnknown_3005AF0 -_080ED430: .4byte gUnknown_3005A9A -_080ED434: .4byte gUnknown_829BDA5 - thumb_func_end PutPokemonTodayCaughtOnAir - - thumb_func_start sub_080ED438 -sub_080ED438: @ 0x080ED438 - push {r4, lr} - ldr r0, _080ED47C - ldr r1, [r0] - ldr r0, _080ED480 - adds r4, r1, r0 - ldrb r0, [r4] - cmp r0, #0x19 - beq _080ED45E - ldr r2, _080ED484 - adds r0, r1, r2 - movs r1, #0x18 - bl DeleteTVShowInArrayByIdx - movs r0, #5 - bl GetGameStat - strh r0, [r4, #6] - movs r0, #0x19 - strb r0, [r4] -_080ED45E: - ldrh r0, [r4, #2] - adds r0, #1 - strh r0, [r4, #2] - ldr r1, _080ED488 - ldrh r0, [r1, #0x28] - strh r0, [r4, #4] - ldrh r0, [r1, #6] - strh r0, [r4, #8] - ldr r0, _080ED48C - ldrb r0, [r0, #0x14] - strb r0, [r4, #0xa] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ED47C: .4byte gUnknown_3005AEC -_080ED480: .4byte 0x00002B2C -_080ED484: .4byte 0x000027CC -_080ED488: .4byte gUnknown_3005A70 -_080ED48C: .4byte gUnknown_2036FB8 - thumb_func_end sub_080ED438 - - thumb_func_start PutPokemonTodayFailedOnTheAir -PutPokemonTodayFailedOnTheAir: @ 0x080ED490 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _080ED554 - bl TV_BernoulliTrial - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080ED548 - movs r1, #0 - movs r5, #0 - ldr r2, _080ED558 -_080ED4A8: - adds r0, r1, r2 - ldrb r0, [r0] - adds r0, r5, r0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xa - bls _080ED4A8 - cmp r5, #0xff - bls _080ED4C2 - movs r5, #0xff -_080ED4C2: - cmp r5, #2 - bls _080ED548 - ldr r0, _080ED55C - mov r8, r0 - ldrb r0, [r0] - cmp r0, #6 - beq _080ED4D4 - cmp r0, #1 - bne _080ED548 -_080ED4D4: - ldr r7, _080ED560 - ldr r0, [r7] - ldr r6, _080ED564 - adds r0, r0, r6 - bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray - ldr r4, _080ED568 - strb r0, [r4] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080ED548 - movs r0, #0x17 - movs r1, #0 - bl HasMixableShowAlreadyBeenSpawnedWithPlayerID - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080ED548 - movs r1, #0 - ldrsb r1, [r4, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r4, [r7] - adds r4, r4, r0 - movs r1, #0 - movs r0, #0x17 - strb r0, [r4] - strb r1, [r4, #1] - ldr r1, _080ED56C - ldrh r0, [r1, #6] - strh r0, [r4, #0xc] - ldrh r0, [r1, #0x20] - strh r0, [r4, #0xe] - strb r5, [r4, #0x10] - mov r1, r8 - ldrb r0, [r1] - strb r0, [r4, #0x11] - ldr r0, _080ED570 - ldrb r0, [r0, #0x14] - strb r0, [r4, #0x12] - adds r0, r4, #0 - adds r0, #0x13 - ldr r1, _080ED574 - ldr r1, [r1] - bl StringCopy - adds r0, r4, #0 - bl tv_store_id_3x - ldr r0, _080ED578 - ldrb r0, [r0] - strb r0, [r4, #2] -_080ED548: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080ED554: .4byte 0x0000FFFF -_080ED558: .4byte gUnknown_3005AA6 -_080ED55C: .4byte gUnknown_2023FDE -_080ED560: .4byte gUnknown_3005AEC -_080ED564: .4byte 0x000027CC -_080ED568: .4byte gUnknown_3005E20 -_080ED56C: .4byte gUnknown_3005A70 -_080ED570: .4byte gUnknown_2036FB8 -_080ED574: .4byte gUnknown_3005AF0 -_080ED578: .4byte gUnknown_829BDA5 - thumb_func_end PutPokemonTodayFailedOnTheAir - - thumb_func_start tv_store_id_3x -tv_store_id_3x: @ 0x080ED57C - push {r4, lr} - adds r4, r0, #0 - bl GetPlayerIDAsU32 - strb r0, [r4, #0x1e] - lsrs r2, r0, #8 - strb r2, [r4, #0x1f] - adds r1, r4, #0 - adds r1, #0x20 - strb r0, [r1] - adds r1, #1 - strb r2, [r1] - adds r1, #1 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x23 - strb r2, [r0] - pop {r4} - pop {r0} - bx r0 - thumb_func_end tv_store_id_3x - - thumb_func_start tv_store_id_2x -tv_store_id_2x: @ 0x080ED5A4 - push {r4, lr} - adds r4, r0, #0 - bl GetPlayerIDAsU32 - 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, #1 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x23 - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end tv_store_id_2x - - thumb_func_start InterviewAfter_ContestLiveUpdates -InterviewAfter_ContestLiveUpdates: @ 0x080ED5CC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _080ED66C - mov r8, r0 - ldr r7, [r0] - ldr r1, _080ED670 - adds r6, r7, r1 - ldrb r1, [r6] - cmp r1, #8 - bne _080ED662 - ldr r0, _080ED674 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r4, r0, #3 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r5, _080ED678 - adds r4, r4, r5 - adds r4, r7, r4 - strb r1, [r4] - movs r0, #1 - strb r0, [r4, #1] - adds r0, r4, #0 - adds r0, #0x14 - ldr r1, _080ED67C - ldr r1, [r1] - bl StringCopy - ldr r0, _080ED680 - ldrh r0, [r0] - strb r0, [r4, #0x1c] - ldr r0, _080ED684 - ldrb r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080ED688 - adds r0, r0, r1 - movs r1, #0xb - movs r2, #0 - bl GetMonData - strh r0, [r4, #0x12] - ldrh r0, [r6, #2] - strh r0, [r4, #2] - ldrb r0, [r6, #0xc] - strb r0, [r4, #0xc] - ldrb r0, [r6, #0xd] - strb r0, [r4, #0xd] - ldrb r0, [r6, #0xe] - strb r0, [r4, #0xe] - ldrh r0, [r6, #0x10] - strh r0, [r4, #0x10] - ldrb r0, [r6, #0xf] - strb r0, [r4, #0xf] - adds r0, r4, #4 - ldr r2, _080ED68C - adds r1, r7, r2 - bl StringCopy - adds r0, r4, #0 - bl tv_store_id_2x - ldr r0, _080ED690 - ldrb r0, [r0] - strb r0, [r4, #0x1d] - ldrb r0, [r6, #0x1e] - strb r0, [r4, #0x1e] - mov r1, r8 - ldr r0, [r1] - adds r0, r0, r5 - movs r1, #0x18 - bl DeleteTVShowInArrayByIdx -_080ED662: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080ED66C: .4byte gUnknown_3005AEC -_080ED670: .4byte 0x00002B2C -_080ED674: .4byte gUnknown_3005E20 -_080ED678: .4byte 0x000027CC -_080ED67C: .4byte gUnknown_3005AF0 -_080ED680: .4byte gUnknown_2039BCC -_080ED684: .4byte gUnknown_2039BC4 -_080ED688: .4byte gUnknown_2024190 -_080ED68C: .4byte 0x00002B30 -_080ED690: .4byte gUnknown_829BDA5 - thumb_func_end InterviewAfter_ContestLiveUpdates - - thumb_func_start sub_080ED694 -sub_080ED694: @ 0x080ED694 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sl, r1 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - mov sb, r2 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - mov r8, r3 - ldr r6, _080ED718 - ldr r0, [r6] - ldr r5, _080ED71C - adds r0, r0, r5 - bl FindEmptyTVSlotWithinFirstFiveShowsOfArray - ldr r4, _080ED720 - strb r0, [r4] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080ED76E - movs r0, #0xa - bl FindActiveBroadcastByShowType_SetScriptResult - ldr r0, _080ED724 - ldrh r0, [r0] - cmp r0, #1 - beq _080ED76E - movs r1, #0 - ldrsb r1, [r4, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r6] - adds r4, r1, r0 - movs r0, #0xa - strb r0, [r4] - movs r5, #1 - strb r5, [r4, #1] - adds r0, r4, #4 - ldr r1, _080ED728 - ldr r1, [r1] - bl StringCopy - ldr r0, _080ED72C - ldr r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _080ED730 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _080ED732 - strb r5, [r4, #0x18] - b _080ED734 - .align 2, 0 -_080ED718: .4byte gUnknown_3005AEC -_080ED71C: .4byte 0x000027CC -_080ED720: .4byte gUnknown_3005E20 -_080ED724: .4byte gUnknown_2037290 -_080ED728: .4byte gUnknown_3005AF0 -_080ED72C: .4byte gUnknown_2022C90 -_080ED730: - movs r0, #2 -_080ED732: - strb r0, [r4, #0x18] -_080ED734: - mov r0, sl - strh r0, [r4, #0x14] - mov r0, sb - strh r0, [r4, #0x16] - mov r0, r8 - strh r0, [r4, #2] - adds r0, r4, #0 - adds r0, #0xc - lsls r1, r7, #3 - subs r1, r1, r7 - lsls r5, r1, #2 - ldr r6, _080ED77C - adds r1, r5, r6 - bl StringCopy - adds r0, r4, #0 - bl tv_store_id_2x - ldr r0, _080ED780 - ldrb r0, [r0] - strb r0, [r4, #0x19] - cmp r0, #1 - beq _080ED76A - adds r0, r6, r5 - ldrh r0, [r0, #0x12] - cmp r0, #1 - bne _080ED76C -_080ED76A: - movs r0, #1 -_080ED76C: - strb r0, [r4, #0x1a] -_080ED76E: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080ED77C: .4byte gUnknown_20226A8 -_080ED780: .4byte gUnknown_829BDA5 - thumb_func_end sub_080ED694 - - thumb_func_start Put3CheersForPokeblocksOnTheAir -Put3CheersForPokeblocksOnTheAir: @ 0x080ED784 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov sl, r0 - ldr r0, [sp, #0x24] - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r3, [sp] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldr r0, _080ED7D8 - mov r8, r0 - ldr r0, [r0] - ldr r7, _080ED7DC - adds r0, r0, r7 - bl FindEmptyTVSlotWithinFirstFiveShowsOfArray - ldr r4, _080ED7E0 - strb r0, [r4] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080ED7D4 - movs r0, #9 - bl FindActiveBroadcastByShowType_SetScriptResult - ldr r0, _080ED7E4 - ldrh r0, [r0] - cmp r0, #1 - bne _080ED7E8 -_080ED7D4: - movs r0, #0 - b _080ED85E - .align 2, 0 -_080ED7D8: .4byte gUnknown_3005AEC -_080ED7DC: .4byte 0x000027CC -_080ED7E0: .4byte gUnknown_3005E20 -_080ED7E4: .4byte gUnknown_2037290 -_080ED7E8: - movs r1, #0 - ldrsb r1, [r4, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - mov r2, r8 - ldr r1, [r2] - adds r4, r1, r0 - movs r0, #9 - strb r0, [r4] - movs r7, #1 - strb r7, [r4, #1] - adds r0, r4, #0 - adds r0, #0xc - ldr r1, _080ED850 - ldr r1, [r1] - bl StringCopy - adds r0, r4, #4 - mov r1, sl - bl StringCopy - movs r0, #7 - ands r5, r0 - ldrb r1, [r4, #3] - subs r0, #0xf - ands r0, r1 - orrs r0, r5 - movs r1, #3 - ands r6, r1 - lsls r2, r6, #3 - subs r1, #0x1c - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #3] - mov r0, sp - ldrb r0, [r0] - strb r0, [r4, #2] - adds r0, r4, #0 - bl tv_store_id_2x - ldr r0, _080ED854 - ldrb r0, [r0] - strb r0, [r4, #0x14] - cmp r0, #1 - beq _080ED84C - mov r1, sb - cmp r1, #1 - bne _080ED858 -_080ED84C: - strb r7, [r4, #0x15] - b _080ED85C - .align 2, 0 -_080ED850: .4byte gUnknown_3005AF0 -_080ED854: .4byte gUnknown_829BDA5 -_080ED858: - mov r2, sb - strb r2, [r4, #0x15] -_080ED85C: - movs r0, #1 -_080ED85E: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end Put3CheersForPokeblocksOnTheAir - - thumb_func_start sub_080ED870 -sub_080ED870: @ 0x080ED870 - push {r4, r5, r6, lr} - ldr r6, _080ED8D8 - ldr r0, _080ED8DC - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080ED8E0 - adds r0, r0, r1 - ldr r1, [r6] - adds r4, r1, r0 - ldr r0, _080ED8E4 - ldrh r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #1 - strb r0, [r4, #0x16] - adds r0, r4, #2 - ldr r1, _080ED8E8 - ldr r1, [r1] - bl StringCopy - movs r0, #0xb - strb r0, [r4] - movs r5, #1 - strb r5, [r4, #1] - bl GetPlayerIDAsU32 - strb r0, [r4, #0xa] - lsrs r0, r0, #8 - strb r0, [r4, #0xb] - adds r0, r4, #0 - adds r0, #0xc - ldr r1, _080ED8EC - bl StringCopy - adds r0, r4, #0 - bl tv_store_id_2x - ldr r0, _080ED8F0 - ldrb r0, [r0] - strb r0, [r4, #0x17] - cmp r0, #1 - beq _080ED8D4 - ldr r0, [r6] - ldr r1, _080ED8F4 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - bne _080ED8F8 -_080ED8D4: - strb r5, [r4, #0x18] - b _080ED8FA - .align 2, 0 -_080ED8D8: .4byte gUnknown_3005AEC -_080ED8DC: .4byte gUnknown_2037284 -_080ED8E0: .4byte 0x000027CC -_080ED8E4: .4byte gUnknown_2037282 -_080ED8E8: .4byte gUnknown_3005AF0 -_080ED8EC: .4byte gUnknown_2021C40 -_080ED8F0: .4byte gUnknown_829BDA5 -_080ED8F4: .4byte 0x000031A0 -_080ED8F8: - strb r0, [r4, #0x18] -_080ED8FA: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_080ED870 - - thumb_func_start ContestLiveUpdates_BeforeInterview_1 -ContestLiveUpdates_BeforeInterview_1: @ 0x080ED900 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r5, _080ED940 - ldr r0, [r5] - ldr r4, _080ED944 - adds r0, r0, r4 - movs r1, #0x18 - bl DeleteTVShowInArrayByIdx - ldr r0, [r5] - adds r0, r0, r4 - bl FindEmptyTVSlotWithinFirstFiveShowsOfArray - ldr r1, _080ED948 - strb r0, [r1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080ED938 - ldr r0, [r5] - ldr r1, _080ED94C - adds r0, r0, r1 - strb r6, [r0, #0xd] - movs r1, #8 - strb r1, [r0] -_080ED938: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080ED940: .4byte gUnknown_3005AEC -_080ED944: .4byte 0x000027CC -_080ED948: .4byte gUnknown_3005E20 -_080ED94C: .4byte 0x00002B2C - thumb_func_end ContestLiveUpdates_BeforeInterview_1 - - thumb_func_start ContestLiveUpdates_BeforeInterview_2 -ContestLiveUpdates_BeforeInterview_2: @ 0x080ED950 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _080ED980 - ldr r0, [r0] - ldr r1, _080ED984 - adds r4, r0, r1 - ldr r1, _080ED988 - adds r0, r0, r1 - bl FindEmptyTVSlotWithinFirstFiveShowsOfArray - ldr r1, _080ED98C - strb r0, [r1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080ED978 - strb r5, [r4, #0xe] -_080ED978: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080ED980: .4byte gUnknown_3005AEC -_080ED984: .4byte 0x00002B2C -_080ED988: .4byte 0x000027CC -_080ED98C: .4byte gUnknown_3005E20 - thumb_func_end ContestLiveUpdates_BeforeInterview_2 - - thumb_func_start ContestLiveUpdates_BeforeInterview_3 -ContestLiveUpdates_BeforeInterview_3: @ 0x080ED990 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _080ED9C0 - ldr r0, [r0] - ldr r1, _080ED9C4 - adds r4, r0, r1 - ldr r1, _080ED9C8 - adds r0, r0, r1 - bl FindEmptyTVSlotWithinFirstFiveShowsOfArray - ldr r1, _080ED9CC - strb r0, [r1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080ED9B8 - strb r5, [r4, #0xf] -_080ED9B8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080ED9C0: .4byte gUnknown_3005AEC -_080ED9C4: .4byte 0x00002B2C -_080ED9C8: .4byte 0x000027CC -_080ED9CC: .4byte gUnknown_3005E20 - thumb_func_end ContestLiveUpdates_BeforeInterview_3 - - thumb_func_start ContestLiveUpdates_BeforeInterview_4 -ContestLiveUpdates_BeforeInterview_4: @ 0x080ED9D0 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, _080EDA00 - ldr r0, [r0] - ldr r1, _080EDA04 - adds r4, r0, r1 - ldr r1, _080EDA08 - adds r0, r0, r1 - bl FindEmptyTVSlotWithinFirstFiveShowsOfArray - ldr r1, _080EDA0C - strb r0, [r1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080ED9F8 - strh r5, [r4, #0x10] -_080ED9F8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080EDA00: .4byte gUnknown_3005AEC -_080EDA04: .4byte 0x00002B2C -_080EDA08: .4byte 0x000027CC -_080EDA0C: .4byte gUnknown_3005E20 - thumb_func_end ContestLiveUpdates_BeforeInterview_4 - - thumb_func_start sub_080EDA10 -sub_080EDA10: @ 0x080EDA10 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - ldr r0, _080EDA64 - ldr r4, [r0] - ldr r0, _080EDA68 - adds r6, r4, r0 - ldr r1, _080EDA6C - adds r0, r4, r1 - bl FindEmptyTVSlotWithinFirstFiveShowsOfArray - ldr r1, _080EDA70 - strb r0, [r1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080EDAA0 - ldr r2, _080EDA74 - lsls r1, r5, #6 - adds r0, r1, r2 - ldrh r0, [r0] - strh r0, [r6, #2] - ldr r3, _080EDA78 - adds r0, r4, r3 - adds r2, #0xd - adds r1, r1, r2 - bl StringCopy - strb r7, [r6, #0xc] - adds r1, r5, #1 - ldr r0, _080EDA7C - ldrb r0, [r0] - cmp r1, r0 - ble _080EDA84 - ldr r0, _080EDA80 - ldrb r0, [r0] - b _080EDA9E - .align 2, 0 -_080EDA64: .4byte gUnknown_3005AEC -_080EDA68: .4byte 0x00002B2C -_080EDA6C: .4byte 0x000027CC -_080EDA70: .4byte gUnknown_3005E20 -_080EDA74: .4byte gUnknown_2039AA0 -_080EDA78: .4byte 0x00002B30 -_080EDA7C: .4byte gUnknown_2039BD0 -_080EDA80: .4byte gUnknown_829BDA5 -_080EDA84: - ldr r0, _080EDAA8 - ldrb r0, [r0] - cmp r0, #1 - beq _080EDA9C - ldr r1, _080EDAAC - lsls r0, r5, #3 - subs r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0, #0x1a] - cmp r0, #1 - bne _080EDA9E -_080EDA9C: - movs r0, #1 -_080EDA9E: - strb r0, [r6, #0x1e] -_080EDAA0: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080EDAA8: .4byte gUnknown_829BDA5 -_080EDAAC: .4byte gUnknown_20226A0 - thumb_func_end sub_080EDA10 - - thumb_func_start InterviewAfter_BravoTrainerPokemonProfile -InterviewAfter_BravoTrainerPokemonProfile: @ 0x080EDAB0 - push {r4, r5, r6, r7, lr} - ldr r0, _080EDB54 - ldr r6, [r0] - ldr r0, _080EDB58 - adds r5, r6, r0 - ldrb r2, [r5] - cmp r2, #6 - bne _080EDB80 - ldr r0, _080EDB5C - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080EDB60 - adds r0, r0, r1 - adds r4, r6, r0 - strb r2, [r4] - movs r7, #1 - strb r7, [r4, #1] - ldrh r0, [r5, #2] - strh r0, [r4, #2] - adds r0, r4, #0 - adds r0, #0x16 - ldr r1, _080EDB64 - ldr r1, [r1] - bl StringCopy - adds r0, r4, #0 - adds r0, #8 - ldr r2, _080EDB68 - adds r1, r6, r2 - bl StringCopy - ldrb r0, [r5, #0x13] - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1d - ldrb r2, [r4, #0x13] - movs r3, #8 - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #0x13] - ldrb r2, [r5, #0x13] - movs r0, #0x18 - ands r0, r2 - movs r2, #0x19 - rsbs r2, r2, #0 - ands r2, r1 - orrs r2, r0 - strb r2, [r4, #0x13] - ldrh r0, [r5, #0x14] - strh r0, [r4, #0x14] - ldrb r0, [r5, #0x13] - movs r1, #0x60 - ands r1, r0 - movs r0, #0x61 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x13] - ldrb r1, [r5, #0x13] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - ands r0, r3 - orrs r0, r1 - strb r0, [r4, #0x13] - adds r0, r4, #0 - bl tv_store_id_2x - ldr r0, _080EDB6C - ldrb r0, [r0] - strb r0, [r4, #0x1e] - cmp r0, #1 - beq _080EDB4E - ldrb r0, [r5, #0x1f] - cmp r0, #1 - bne _080EDB70 -_080EDB4E: - strb r7, [r4, #0x1f] - b _080EDB72 - .align 2, 0 -_080EDB54: .4byte gUnknown_3005AEC -_080EDB58: .4byte 0x00002B2C -_080EDB5C: .4byte gUnknown_3005E20 -_080EDB60: .4byte 0x000027CC -_080EDB64: .4byte gUnknown_3005AF0 -_080EDB68: .4byte 0x00002B34 -_080EDB6C: .4byte gUnknown_829BDA5 -_080EDB70: - strb r0, [r4, #0x1f] -_080EDB72: - ldr r0, _080EDB88 - ldr r0, [r0] - ldr r1, _080EDB8C - adds r0, r0, r1 - movs r1, #0x18 - bl DeleteTVShowInArrayByIdx -_080EDB80: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080EDB88: .4byte gUnknown_3005AEC -_080EDB8C: .4byte 0x000027CC - thumb_func_end InterviewAfter_BravoTrainerPokemonProfile - - thumb_func_start BravoTrainerPokemonProfile_BeforeInterview1 -BravoTrainerPokemonProfile_BeforeInterview1: @ 0x080EDB90 - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r4, _080EDBD4 - ldr r0, [r4] - ldr r1, _080EDBD8 - adds r5, r0, r1 - bl InterviewBefore_BravoTrainerPkmnProfile - ldr r0, [r4] - ldr r1, _080EDBDC - adds r0, r0, r1 - bl FindEmptyTVSlotWithinFirstFiveShowsOfArray - ldr r1, _080EDBE0 - strb r0, [r1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080EDBCE - ldr r0, [r4] - ldr r1, _080EDBDC - adds r0, r0, r1 - movs r1, #0x18 - bl DeleteTVShowInArrayByIdx - strh r6, [r5, #0x14] - movs r0, #6 - strb r0, [r5] -_080EDBCE: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080EDBD4: .4byte gUnknown_3005AEC -_080EDBD8: .4byte 0x00002B2C -_080EDBDC: .4byte 0x000027CC -_080EDBE0: .4byte gUnknown_3005E20 - thumb_func_end BravoTrainerPokemonProfile_BeforeInterview1 - - thumb_func_start sub_080EDBE4 -sub_080EDBE4: @ 0x080EDBE4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080EDC88 - ldr r0, [r0] - mov r8, r0 - ldr r7, _080EDC8C - add r7, r8 - ldr r0, _080EDC90 - add r0, r8 - bl FindEmptyTVSlotWithinFirstFiveShowsOfArray - ldr r1, _080EDC94 - strb r0, [r1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080EDC7C - movs r3, #3 - adds r0, r4, #0 - ands r0, r3 - lsls r0, r0, #5 - ldrb r1, [r7, #0x13] - movs r2, #0x61 - rsbs r2, r2, #0 - ands r2, r1 - orrs r2, r0 - strb r2, [r7, #0x13] - ldr r0, _080EDC98 - ldrb r0, [r0] - movs r1, #7 - ands r1, r0 - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r7, #0x13] - ldr r1, _080EDC9C - ldrb r1, [r1] - ands r3, r1 - lsls r3, r3, #3 - movs r1, #0x19 - rsbs r1, r1, #0 - ands r0, r1 - orrs r0, r3 - strb r0, [r7, #0x13] - ldr r6, _080EDCA0 - ldrb r0, [r6] - movs r5, #0x64 - muls r0, r5, r0 - ldr r4, _080EDCA4 - adds r0, r0, r4 - movs r1, #0xb - movs r2, #0 - bl GetMonData - strh r0, [r7, #2] - ldrb r0, [r6] - muls r0, r5, r0 - adds r0, r0, r4 - ldr r2, _080EDCA8 - add r2, r8 - movs r1, #2 - bl GetMonData - ldrb r0, [r6] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #3 - bl GetMonData - strb r0, [r7, #0x1f] -_080EDC7C: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080EDC88: .4byte gUnknown_3005AEC -_080EDC8C: .4byte 0x00002B2C -_080EDC90: .4byte 0x000027CC -_080EDC94: .4byte gUnknown_3005E20 -_080EDC98: .4byte gUnknown_2039BCC -_080EDC9C: .4byte gUnknown_2039BCE -_080EDCA0: .4byte gUnknown_2039BC4 -_080EDCA4: .4byte gUnknown_2024190 -_080EDCA8: .4byte 0x00002B34 - thumb_func_end sub_080EDBE4 - - thumb_func_start InterviewAfter_BravoTrainerBattleTowerProfile -InterviewAfter_BravoTrainerBattleTowerProfile: @ 0x080EDCAC - push {r4, r5, r6, lr} - ldr r2, _080EDD1C - ldr r0, _080EDD20 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080EDD24 - adds r0, r0, r1 - ldr r1, [r2] - adds r6, r1, r0 - movs r0, #7 - strb r0, [r6] - movs r0, #1 - strb r0, [r6, #1] - adds r0, r6, #2 - ldr r4, _080EDD28 - ldr r1, [r4] - bl StringCopy - adds r0, r6, #0 - adds r0, #0xc - ldr r1, [r4] - ldr r2, _080EDD2C - adds r1, r1, r2 - bl StringCopy - ldr r1, [r4] - ldr r2, _080EDD30 - adds r0, r1, r2 - ldrh r0, [r0] - strh r0, [r6, #0xa] - adds r2, #2 - adds r0, r1, r2 - ldrh r0, [r0] - strh r0, [r6, #0x14] - ldr r5, _080EDD34 - adds r1, r1, r5 - ldrb r0, [r1] - movs r1, #0 - bl GetCurrentBattleTowerWinStreak - strh r0, [r6, #0x16] - ldr r0, [r4] - ldr r1, _080EDD38 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r6, #0x1c] - ldr r0, [r4] - adds r0, r0, r5 - ldrb r0, [r0] - cmp r0, #0 - bne _080EDD3C - movs r0, #0x32 - b _080EDD3E - .align 2, 0 -_080EDD1C: .4byte gUnknown_3005AEC -_080EDD20: .4byte gUnknown_3005E20 -_080EDD24: .4byte 0x000027CC -_080EDD28: .4byte gUnknown_3005AF0 -_080EDD2C: .4byte 0x00000BD8 -_080EDD30: .4byte 0x00000BD4 -_080EDD34: .4byte 0x00000D07 -_080EDD38: .4byte 0x00000D06 -_080EDD3C: - movs r0, #0x64 -_080EDD3E: - strb r0, [r6, #0x1a] - ldr r0, _080EDD70 - ldrh r0, [r0] - strb r0, [r6, #0x1b] - adds r0, r6, #0 - bl tv_store_id_2x - ldr r0, _080EDD74 - ldrb r0, [r0] - strb r0, [r6, #0x1d] - cmp r0, #1 - beq _080EDD64 - ldr r0, _080EDD78 - ldr r0, [r0] - ldr r2, _080EDD7C - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #1 - bne _080EDD66 -_080EDD64: - movs r0, #1 -_080EDD66: - strb r0, [r6, #0x1e] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080EDD70: .4byte gUnknown_2037280 -_080EDD74: .4byte gUnknown_829BDA5 -_080EDD78: .4byte gUnknown_3005AF0 -_080EDD7C: .4byte 0x00000BEB - thumb_func_end InterviewAfter_BravoTrainerBattleTowerProfile - - thumb_func_start SaveRecordedItemPurchasesForTVShow -SaveRecordedItemPurchasesForTVShow: @ 0x080EDD80 - push {r4, r5, r6, r7, lr} - ldr r5, _080EDE40 - ldr r0, [r5] - ldrh r1, [r0, #4] - ldr r0, _080EDE44 - cmp r1, r0 - beq _080EDE3A - ldr r0, _080EDE48 - cmp r1, r0 - beq _080EDE3A - ldr r0, _080EDE4C - bl TV_BernoulliTrial - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _080EDE3A - ldr r0, [r5] - ldr r7, _080EDE50 - adds r0, r0, r7 - bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray - ldr r6, _080EDE54 - strb r0, [r6] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080EDE3A - movs r0, #0x16 - movs r1, #0 - bl HasMixableShowAlreadyBeenSpawnedWithPlayerID - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080EDE3A - bl TV_SortPurchasesByQuantity - ldr r2, _080EDE58 - ldrh r0, [r2, #2] - cmp r0, #0x13 - bls _080EDE3A - movs r1, #0 - ldrsb r1, [r6, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldr r1, [r5] - adds r5, r1, r0 - movs r0, #0x16 - strb r0, [r5] - strb r4, [r5, #1] - ldr r0, _080EDE5C - ldrb r0, [r0, #0x14] - strb r0, [r5, #0x12] - movs r4, #0 - adds r7, r5, #6 - mov ip, r2 - adds r6, r5, #0 - adds r6, #0xc -_080EDDFE: - lsls r2, r4, #1 - adds r3, r7, r2 - lsls r1, r4, #2 - add r1, ip - ldrh r0, [r1] - strh r0, [r3] - adds r2, r6, r2 - ldrh r0, [r1, #2] - strh r0, [r2] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #2 - bls _080EDDFE - movs r0, #1 - bl GetPriceReduction - strb r0, [r5, #2] - adds r0, r5, #0 - adds r0, #0x13 - ldr r1, _080EDE60 - ldr r1, [r1] - bl StringCopy - adds r0, r5, #0 - bl tv_store_id_3x - ldr r0, _080EDE64 - ldrb r0, [r0] - strb r0, [r5, #3] -_080EDE3A: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080EDE40: .4byte gUnknown_3005AEC -_080EDE44: .4byte 0x00003C1A -_080EDE48: .4byte 0x0000371A -_080EDE4C: .4byte 0x00005555 -_080EDE50: .4byte 0x000027CC -_080EDE54: .4byte gUnknown_3005E20 -_080EDE58: .4byte gUnknown_2039C20 -_080EDE5C: .4byte gUnknown_2036FB8 -_080EDE60: .4byte gUnknown_3005AF0 -_080EDE64: .4byte gUnknown_829BDA5 - thumb_func_end SaveRecordedItemPurchasesForTVShow - - thumb_func_start PutNameRaterShowOnTheAir -PutNameRaterShowOnTheAir: @ 0x080EDE68 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - bl InterviewBefore_NameRater - ldr r0, _080EDF40 - ldrh r0, [r0] - cmp r0, #1 - beq _080EDF32 - ldr r0, _080EDF44 - mov r8, r0 - ldrh r0, [r0] - movs r7, #0x64 - muls r0, r7, r0 - ldr r6, _080EDF48 - adds r0, r0, r6 - ldr r4, _080EDF4C - movs r1, #2 - adds r2, r4, #0 - bl GetMonData - ldr r1, _080EDF50 - mov sb, r1 - ldr r0, [r1] - bl StringLength - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bls _080EDF32 - adds r0, r4, #0 - bl StringLength - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bls _080EDF32 - ldr r2, _080EDF54 - ldr r0, _080EDF58 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080EDF5C - adds r0, r0, r1 - ldr r4, [r2] - adds r4, r4, r0 - movs r0, #5 - strb r0, [r4] - movs r5, #1 - strb r5, [r4, #1] - mov r2, r8 - ldrh r0, [r2] - muls r0, r7, r0 - adds r0, r0, r6 - movs r1, #0xb - movs r2, #0 - bl GetMonData - strh r0, [r4, #2] - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - strb r0, [r4, #0x1a] - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ands r0, r5 - strb r0, [r4, #0x1b] - ldrh r0, [r4, #2] - bl TV_GetSomeOtherSpeciesAlreadySeenByPlayer - strh r0, [r4, #0x1c] - adds r0, r4, #0 - adds r0, #0xf - mov r2, sb - ldr r1, [r2] - bl StringCopy - mov r1, r8 - ldrh r0, [r1] - muls r0, r7, r0 - adds r0, r0, r6 - adds r2, r4, #4 - movs r1, #2 - bl GetMonData - adds r0, r4, #0 - bl tv_store_id_2x - ldr r0, _080EDF60 - ldrb r0, [r0] - strb r0, [r4, #0x1e] - strb r0, [r4, #0x1f] -_080EDF32: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080EDF40: .4byte gUnknown_2037290 -_080EDF44: .4byte gUnknown_2037280 -_080EDF48: .4byte gUnknown_2024190 -_080EDF4C: .4byte gUnknown_2021C40 -_080EDF50: .4byte gUnknown_3005AF0 -_080EDF54: .4byte gUnknown_3005AEC -_080EDF58: .4byte gUnknown_3005E20 -_080EDF5C: .4byte 0x000027CC -_080EDF60: .4byte gUnknown_829BDA5 - thumb_func_end PutNameRaterShowOnTheAir - - thumb_func_start StartMassOutbreak -StartMassOutbreak: @ 0x080EDF64 - push {r4, r5, lr} - ldr r4, _080EDFF4 - ldr r0, _080EDFF8 - ldrh r0, [r0] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _080EDFFC - adds r1, r1, r0 - ldr r2, [r4] - adds r1, r2, r1 - ldrh r3, [r1, #0xc] - ldr r5, _080EE000 - adds r0, r2, r5 - strh r3, [r0] - ldrb r0, [r1, #0x10] - ldr r3, _080EE004 - adds r2, r2, r3 - strb r0, [r2] - ldr r0, [r4] - ldrb r2, [r1, #0x11] - adds r5, #3 - adds r0, r0, r5 - strb r2, [r0] - ldr r0, [r4] - ldrb r2, [r1, #0x14] - adds r3, #2 - adds r0, r0, r3 - strb r2, [r0] - ldr r0, [r4] - ldrb r2, [r1, #2] - adds r5, #2 - adds r0, r0, r5 - strb r2, [r0] - ldr r2, [r4] - ldrh r3, [r1, #0xe] - adds r5, #1 - adds r0, r2, r5 - strh r3, [r0] - ldrh r3, [r1, #4] - adds r5, #2 - adds r0, r2, r5 - strh r3, [r0] - ldrh r3, [r1, #6] - adds r5, #2 - adds r0, r2, r5 - strh r3, [r0] - ldrh r3, [r1, #8] - adds r5, #2 - adds r0, r2, r5 - strh r3, [r0] - ldrh r3, [r1, #0xa] - adds r5, #2 - adds r0, r2, r5 - strh r3, [r0] - ldrb r0, [r1, #3] - ldr r3, _080EE008 - adds r2, r2, r3 - strb r0, [r2] - ldr r0, [r4] - ldrb r1, [r1, #0x13] - adds r5, #3 - adds r0, r0, r5 - strb r1, [r0] - ldr r0, [r4] - ldr r1, _080EE00C - adds r0, r0, r1 - movs r1, #2 - strh r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080EDFF4: .4byte gUnknown_3005AEC -_080EDFF8: .4byte gUnknown_2037280 -_080EDFFC: .4byte 0x000027CC -_080EE000: .4byte 0x00002B90 -_080EE004: .4byte 0x00002B92 -_080EE008: .4byte 0x00002BA0 -_080EE00C: .4byte 0x00002BA2 - thumb_func_end StartMassOutbreak - - thumb_func_start PutLilycoveContestLadyShowOnTheAir -PutLilycoveContestLadyShowOnTheAir: @ 0x080EE010 - push {r4, lr} - bl sub_080F0578 - ldr r0, _080EE06C - ldrh r0, [r0] - cmp r0, #1 - beq _080EE066 - ldr r2, _080EE070 - ldr r0, _080EE074 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080EE078 - adds r0, r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - adds r0, r4, #0 - adds r0, #0x17 - bl sub_0818E4A4 - ldrb r0, [r4, #0x17] - strb r0, [r4, #0x18] - movs r0, #0xc - strb r0, [r4] - movs r0, #1 - strb r0, [r4, #1] - adds r0, r4, #2 - bl sub_0818E478 - adds r0, r4, #0 - adds r0, #0xa - adds r1, r4, #0 - adds r1, #0xb - bl sub_0818E43C - bl sub_0818E4DC - strb r0, [r4, #0x16] - adds r0, r4, #0 - bl tv_store_id_2x -_080EE066: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EE06C: .4byte gUnknown_2037290 -_080EE070: .4byte gUnknown_3005AEC -_080EE074: .4byte gUnknown_3005E20 -_080EE078: .4byte 0x000027CC - thumb_func_end PutLilycoveContestLadyShowOnTheAir - - thumb_func_start InterviewAfter_FanClubLetter -InterviewAfter_FanClubLetter: @ 0x080EE07C - push {r4, lr} - ldr r2, _080EE0D4 - ldr r0, _080EE0D8 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080EE0DC - adds r0, r0, r1 - ldr r4, [r2] - adds r4, r4, r0 - movs r0, #1 - strb r0, [r4] - strb r0, [r4, #1] - adds r0, r4, #0 - adds r0, #0x10 - ldr r1, _080EE0E0 - ldr r1, [r1] - bl StringCopy - bl GetLeadMonIndex - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x64 - muls r0, r1, r0 - ldr r1, _080EE0E4 - adds r0, r0, r1 - movs r1, #0xb - movs r2, #0 - bl GetMonData - strh r0, [r4, #2] - adds r0, r4, #0 - bl tv_store_id_2x - ldr r0, _080EE0E8 - ldrb r0, [r0] - strb r0, [r4, #0x18] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EE0D4: .4byte gUnknown_3005AEC -_080EE0D8: .4byte gUnknown_3005E20 -_080EE0DC: .4byte 0x000027CC -_080EE0E0: .4byte gUnknown_3005AF0 -_080EE0E4: .4byte gUnknown_2024190 -_080EE0E8: .4byte gUnknown_829BDA5 - thumb_func_end InterviewAfter_FanClubLetter - - thumb_func_start InterviewAfter_RecentHappenings -InterviewAfter_RecentHappenings: @ 0x080EE0EC - push {r4, r5, lr} - ldr r2, _080EE130 - ldr r0, _080EE134 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080EE138 - adds r0, r0, r1 - ldr r4, [r2] - adds r4, r4, r0 - movs r5, #0 - movs r0, #2 - strb r0, [r4] - movs r0, #1 - strb r0, [r4, #1] - adds r0, r4, #0 - adds r0, #0x10 - ldr r1, _080EE13C - ldr r1, [r1] - bl StringCopy - strh r5, [r4, #2] - adds r0, r4, #0 - bl tv_store_id_2x - ldr r0, _080EE140 - ldrb r0, [r0] - strb r0, [r4, #0x18] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080EE130: .4byte gUnknown_3005AEC -_080EE134: .4byte gUnknown_3005E20 -_080EE138: .4byte 0x000027CC -_080EE13C: .4byte gUnknown_3005AF0 -_080EE140: .4byte gUnknown_829BDA5 - thumb_func_end InterviewAfter_RecentHappenings - - thumb_func_start sub_080EE144 -sub_080EE144: @ 0x080EE144 - push {r4, r5, r6, r7, lr} - ldr r2, _080EE1FC - ldr r0, _080EE200 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080EE204 - adds r0, r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - movs r0, #3 - strb r0, [r4] - movs r7, #1 - strb r7, [r4, #1] - bl GetLeadMonIndex - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r6, #0x64 - muls r0, r6, r0 - ldr r5, _080EE208 - adds r0, r0, r5 - movs r1, #0x20 - movs r2, #0 - bl GetMonData - lsrs r0, r0, #4 - movs r1, #0xf - ands r0, r1 - ldrb r2, [r4, #4] - movs r1, #0x10 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #4] - ldr r0, _080EE20C - ldrb r0, [r0] - lsls r0, r0, #4 - movs r2, #0xf - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #4] - adds r0, r4, #5 - ldr r1, _080EE210 - ldr r1, [r1] - bl StringCopy - bl GetLeadMonIndex - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - muls r0, r6, r0 - adds r0, r0, r5 - adds r2, r4, #0 - adds r2, #0x10 - movs r1, #2 - bl GetMonData - bl GetLeadMonIndex - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #0xb - movs r2, #0 - bl GetMonData - strh r0, [r4, #2] - adds r0, r4, #0 - bl tv_store_id_2x - ldr r0, _080EE214 - ldrb r0, [r0] - strb r0, [r4, #0xd] - cmp r0, #1 - beq _080EE1F8 - bl GetLeadMonIndex - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #3 - bl GetMonData - cmp r0, #1 - bne _080EE218 -_080EE1F8: - strb r7, [r4, #0xe] - b _080EE22C - .align 2, 0 -_080EE1FC: .4byte gUnknown_3005AEC -_080EE200: .4byte gUnknown_3005E20 -_080EE204: .4byte 0x000027CC -_080EE208: .4byte gUnknown_2024190 -_080EE20C: .4byte gUnknown_2037286 -_080EE210: .4byte gUnknown_3005AF0 -_080EE214: .4byte gUnknown_829BDA5 -_080EE218: - bl GetLeadMonIndex - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #3 - bl GetMonData - strb r0, [r4, #0xe] -_080EE22C: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080EE144 - - thumb_func_start sub_080EE234 -sub_080EE234: @ 0x080EE234 - bx lr - .align 2, 0 - thumb_func_end sub_080EE234 - - thumb_func_start sub_080EE238 -sub_080EE238: @ 0x080EE238 - push {r4, r5, r6, lr} - ldr r0, _080EE30C - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080EE304 - movs r1, #0 - ldr r0, _080EE310 - ldr r2, [r0] - ldr r3, _080EE314 -_080EE24E: - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r2, r0 - adds r0, r0, r3 - ldrb r0, [r0] - cmp r0, #0x29 - beq _080EE304 - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x17 - bls _080EE24E - ldr r0, _080EE318 - bl TV_BernoulliTrial - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _080EE304 - ldr r6, _080EE310 - ldr r0, [r6] - ldr r1, _080EE314 - adds r0, r0, r1 - bl FindEmptyTVSlotWithinFirstFiveShowsOfArray - ldr r4, _080EE31C - strb r0, [r4] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080EE304 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #5 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r2, #0 - ldrsb r2, [r4, r2] - lsls r1, r2, #3 - adds r1, r1, r2 - lsls r1, r1, #2 - ldr r2, _080EE314 - adds r1, r1, r2 - ldr r4, [r6] - adds r4, r4, r1 - movs r1, #0x29 - strb r1, [r4] - movs r3, #1 - strb r3, [r4, #1] - ldr r2, _080EE320 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r0, [r1, #0xa] - strb r0, [r4, #0x14] - strb r5, [r4, #2] - strb r5, [r4, #3] - ldrh r0, [r1] - movs r2, #0 - strh r0, [r4, #0xc] - strh r5, [r4, #0xe] - ldrh r0, [r1, #2] - strh r0, [r4, #4] - ldrh r0, [r1, #4] - strh r0, [r4, #6] - ldrh r0, [r1, #6] - strh r0, [r4, #8] - ldrh r0, [r1, #8] - 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 tv_store_id_2x - ldr r0, _080EE324 - ldrb r0, [r0] - strb r0, [r4, #0x18] -_080EE304: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080EE30C: .4byte 0x00000864 -_080EE310: .4byte gUnknown_3005AEC -_080EE314: .4byte 0x000027CC -_080EE318: .4byte 0x00000147 -_080EE31C: .4byte gUnknown_3005E20 -_080EE320: .4byte gUnknown_8568B40 -_080EE324: .4byte gUnknown_829BDA5 - thumb_func_end sub_080EE238 - - thumb_func_start EndMassOutbreak -EndMassOutbreak: @ 0x080EE328 - push {r4, r5, lr} - ldr r3, _080EE394 - ldr r0, [r3] - ldr r2, _080EE398 - adds r1, r0, r2 - movs r4, #0 - movs r2, #0 - strh r2, [r1] - ldr r5, _080EE39C - adds r0, r0, r5 - strb r4, [r0] - ldr r0, [r3] - ldr r1, _080EE3A0 - adds r0, r0, r1 - strb r4, [r0] - ldr r0, [r3] - adds r5, #2 - adds r0, r0, r5 - strb r4, [r0] - ldr r0, [r3] - adds r1, #2 - adds r0, r0, r1 - strb r4, [r0] - ldr r0, [r3] - adds r5, #2 - adds r1, r0, r5 - strh r2, [r1] - adds r5, #2 - adds r1, r0, r5 - strh r2, [r1] - adds r5, #2 - adds r1, r0, r5 - strh r2, [r1] - adds r5, #2 - adds r1, r0, r5 - strh r2, [r1] - adds r5, #2 - adds r1, r0, r5 - strh r2, [r1] - ldr r1, _080EE3A4 - adds r0, r0, r1 - strb r4, [r0] - ldr r0, [r3] - adds r5, #3 - adds r0, r0, r5 - strb r4, [r0] - ldr r0, [r3] - adds r1, #2 - adds r0, r0, r1 - strh r2, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080EE394: .4byte gUnknown_3005AEC -_080EE398: .4byte 0x00002B90 -_080EE39C: .4byte 0x00002B92 -_080EE3A0: .4byte 0x00002B93 -_080EE3A4: .4byte 0x00002BA0 - thumb_func_end EndMassOutbreak - - thumb_func_start UpdateTVShowsPerDay -UpdateTVShowsPerDay: @ 0x080EE3A8 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r4, #0 - bl sub_080EE3D4 - adds r0, r4, #0 - bl UpdateMassOutbreakTimeLeft - adds r0, r4, #0 - bl sub_080EFC24 - adds r0, r4, #0 - bl sub_080EE568 - adds r0, r4, #0 - bl sub_080EF69C - pop {r4} - pop {r0} - bx r0 - thumb_func_end UpdateTVShowsPerDay - - thumb_func_start sub_080EE3D4 -sub_080EE3D4: @ 0x080EE3D4 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r1, _080EE41C - ldr r0, [r1] - ldr r2, _080EE420 - adds r0, r0, r2 - ldrh r0, [r0] - mov ip, r1 - cmp r0, #0 - bne _080EE43C - movs r1, #0 - ldr r6, _080EE424 -_080EE3EE: - mov r7, ip - ldr r4, [r7] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r3, r0, #2 - adds r2, r4, r3 - adds r0, r2, r6 - ldrb r0, [r0] - cmp r0, #0x29 - bne _080EE432 - ldr r7, _080EE428 - adds r0, r2, r7 - ldrb r0, [r0] - cmp r0, #1 - bne _080EE432 - adds r0, r3, r6 - adds r1, r4, r0 - ldrh r0, [r1, #0x16] - cmp r0, r5 - bhs _080EE42C - movs r0, #0 - strh r0, [r1, #0x16] - b _080EE43C - .align 2, 0 -_080EE41C: .4byte gUnknown_3005AEC -_080EE420: .4byte 0x00002B90 -_080EE424: .4byte 0x000027CC -_080EE428: .4byte 0x000027CD -_080EE42C: - subs r0, r0, r5 - strh r0, [r1, #0x16] - b _080EE43C -_080EE432: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x17 - bls _080EE3EE -_080EE43C: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080EE3D4 - - thumb_func_start UpdateMassOutbreakTimeLeft -UpdateMassOutbreakTimeLeft: @ 0x080EE444 - push {lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, _080EE460 - ldr r0, [r0] - ldr r3, _080EE464 - adds r1, r0, r3 - ldrh r0, [r1] - cmp r0, r2 - bhi _080EE468 - bl EndMassOutbreak - b _080EE46C - .align 2, 0 -_080EE460: .4byte gUnknown_3005AEC -_080EE464: .4byte 0x00002BA2 -_080EE468: - subs r0, r0, r2 - strh r0, [r1] -_080EE46C: - pop {r0} - bx r0 - thumb_func_end UpdateMassOutbreakTimeLeft - - thumb_func_start sub_080EE470 -sub_080EE470: @ 0x080EE470 - push {r4, lr} - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080EE498 - ldr r4, _080EE494 - ldrh r0, [r4] - lsrs r0, r0, #8 - cmp r0, #4 - bls _080EE486 - bl PutFishingAdviceShowOnTheAir -_080EE486: - ldrb r0, [r4] - strh r0, [r4] - cmp r0, #0xff - beq _080EE4BC - adds r0, #1 - b _080EE4BA - .align 2, 0 -_080EE494: .4byte gUnknown_2039CF2 -_080EE498: - ldr r4, _080EE4C4 - ldrb r0, [r4] - cmp r0, #4 - bls _080EE4A4 - bl PutFishingAdviceShowOnTheAir -_080EE4A4: - ldrh r0, [r4] - movs r1, #0xff - lsls r1, r1, #8 - ands r1, r0 - strh r1, [r4] - lsrs r0, r1, #8 - cmp r0, #0xff - beq _080EE4BC - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r1, r2 -_080EE4BA: - strh r0, [r4] -_080EE4BC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EE4C4: .4byte gUnknown_2039CF2 - thumb_func_end sub_080EE470 - - thumb_func_start PutFishingAdviceShowOnTheAir -PutFishingAdviceShowOnTheAir: @ 0x080EE4C8 - push {r4, r5, r6, lr} - ldr r6, _080EE540 - ldr r0, [r6] - ldr r5, _080EE544 - adds r0, r0, r5 - bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray - ldr r4, _080EE548 - strb r0, [r4] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080EE538 - movs r0, #0x18 - movs r1, #0 - bl HasMixableShowAlreadyBeenSpawnedWithPlayerID - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080EE538 - movs r1, #0 - ldrsb r1, [r4, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r4, [r6] - adds r4, r4, r0 - movs r1, #0 - movs r0, #0x18 - strb r0, [r4] - strb r1, [r4, #1] - ldr r1, _080EE54C - ldrh r0, [r1] - strb r0, [r4, #2] - ldrh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r4, #3] - ldr r0, _080EE550 - ldrh r0, [r0] - strh r0, [r4, #4] - adds r0, r4, #0 - adds r0, #0x13 - ldr r1, _080EE554 - ldr r1, [r1] - bl StringCopy - adds r0, r4, #0 - bl tv_store_id_3x - ldr r0, _080EE558 - ldrb r0, [r0] - strb r0, [r4, #6] -_080EE538: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080EE540: .4byte gUnknown_3005AEC -_080EE544: .4byte 0x000027CC -_080EE548: .4byte gUnknown_3005E20 -_080EE54C: .4byte gUnknown_2039CF2 -_080EE550: .4byte gUnknown_2039CF0 -_080EE554: .4byte gUnknown_3005AF0 -_080EE558: .4byte gUnknown_829BDA5 - thumb_func_end PutFishingAdviceShowOnTheAir - - thumb_func_start sub_080EE55C -sub_080EE55C: @ 0x080EE55C - ldr r1, _080EE564 - strh r0, [r1] - bx lr - .align 2, 0 -_080EE564: .4byte gUnknown_2039CF0 - thumb_func_end sub_080EE55C - - thumb_func_start sub_080EE568 -sub_080EE568: @ 0x080EE568 - push {r4, lr} - ldr r4, _080EE594 - ldr r0, [r4] - ldr r2, _080EE598 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, #0x19 - bne _080EE58E - ldrh r0, [r1, #2] - cmp r0, #0x13 - bls _080EE582 - bl sub_080EE5A0 -_080EE582: - ldr r0, [r4] - ldr r1, _080EE59C - adds r0, r0, r1 - movs r1, #0x18 - bl DeleteTVShowInArrayByIdx -_080EE58E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EE594: .4byte gUnknown_3005AEC -_080EE598: .4byte 0x00002B2C -_080EE59C: .4byte 0x000027CC - thumb_func_end sub_080EE568 - - thumb_func_start sub_080EE5A0 -sub_080EE5A0: @ 0x080EE5A0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r7, _080EE648 - ldr r0, [r7] - ldr r1, _080EE64C - adds r5, r0, r1 - ldr r0, _080EE650 - bl TV_BernoulliTrial - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - bne _080EE63C - ldr r0, [r7] - ldr r1, _080EE654 - mov r8, r1 - add r0, r8 - bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray - ldr r4, _080EE658 - strb r0, [r4] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080EE63C - movs r0, #0x19 - movs r1, #0 - bl HasMixableShowAlreadyBeenSpawnedWithPlayerID - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080EE63C - movs r1, #0 - ldrsb r1, [r4, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - ldr r4, [r7] - adds r4, r4, r0 - movs r0, #0x19 - strb r0, [r4] - strb r6, [r4, #1] - ldrh r0, [r5, #2] - strh r0, [r4, #2] - movs r0, #5 - bl GetGameStat - ldrh r1, [r5, #6] - subs r0, r0, r1 - strh r0, [r4, #6] - ldrh r0, [r5, #4] - strh r0, [r4, #4] - ldrh r0, [r5, #8] - strh r0, [r4, #8] - ldrb r0, [r5, #0xa] - strb r0, [r4, #0xa] - adds r0, r4, #0 - adds r0, #0x13 - ldr r1, _080EE65C - ldr r1, [r1] - bl StringCopy - adds r0, r4, #0 - bl tv_store_id_3x - ldr r0, _080EE660 - ldrb r0, [r0] - strb r0, [r4, #0xb] - ldr r0, [r7] - add r0, r8 - movs r1, #0x18 - bl DeleteTVShowInArrayByIdx -_080EE63C: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080EE648: .4byte gUnknown_3005AEC -_080EE64C: .4byte 0x00002B2C -_080EE650: .4byte 0x0000FFFF -_080EE654: .4byte 0x000027CC -_080EE658: .4byte gUnknown_3005E20 -_080EE65C: .4byte gUnknown_3005AF0 -_080EE660: .4byte gUnknown_829BDA5 - thumb_func_end sub_080EE5A0 - - thumb_func_start sub_080EE664 -sub_080EE664: @ 0x080EE664 - push {r4, r5, r6, r7, lr} - movs r0, #0x1a - movs r1, #1 - bl HasMixableShowAlreadyBeenSpawnedWithPlayerID - ldr r4, _080EE6D8 - ldr r0, [r4] - ldr r1, _080EE6DC - adds r0, r0, r1 - bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray - ldr r2, _080EE6E0 - strb r0, [r2] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080EE760 - movs r1, #0 - ldrsb r1, [r2, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r2, _080EE6DC - adds r0, r0, r2 - ldr r1, [r4] - adds r4, r1, r0 - movs r1, #0 - movs r0, #0x1a - strb r0, [r4] - strb r1, [r4, #1] - ldr r6, _080EE6E4 - movs r5, #0 -_080EE6A8: - lsls r0, r6, #0x10 - lsrs r0, r0, #0x10 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080EE6BC - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_080EE6BC: - adds r6, #1 - ldr r0, _080EE6E8 - cmp r6, r0 - bls _080EE6A8 - strb r5, [r4, #4] - bl IsNationalPokedexEnabled - cmp r0, #0 - beq _080EE6EC - movs r0, #1 - bl GetNationalPokedexCount - b _080EE6F2 - .align 2, 0 -_080EE6D8: .4byte gUnknown_3005AEC -_080EE6DC: .4byte 0x000027CC -_080EE6E0: .4byte gUnknown_3005E20 -_080EE6E4: .4byte 0x00000867 -_080EE6E8: .4byte 0x0000086E -_080EE6EC: - movs r0, #1 - bl GetHoennPokedexCount -_080EE6F2: - strh r0, [r4, #2] - ldr r1, _080EE768 - ldrb r0, [r1, #0x14] - strb r0, [r4, #7] - ldrh r0, [r1, #0x12] - movs r1, #0 - strh r0, [r4, #0xa] - strb r1, [r4, #5] - strb r1, [r4, #6] - movs r6, #0 - adds r7, r4, #0 - adds r7, #0x13 -_080EE70A: - ldr r0, _080EE76C - lsls r5, r6, #1 - adds r0, r5, r0 - ldrh r0, [r0] - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080EE724 - ldrb r0, [r4, #5] - adds r0, #1 - strb r0, [r4, #5] -_080EE724: - ldr r0, _080EE770 - adds r0, r5, r0 - ldrh r0, [r0] - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080EE73C - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] -_080EE73C: - adds r6, #1 - cmp r6, #6 - bls _080EE70A - ldr r0, _080EE774 - ldr r1, [r0] - ldr r2, _080EE778 - adds r0, r1, r2 - ldrh r0, [r0] - strh r0, [r4, #8] - adds r0, r7, #0 - bl StringCopy - adds r0, r4, #0 - bl tv_store_id_3x - ldr r0, _080EE77C - ldrb r0, [r0] - strb r0, [r4, #0xc] -_080EE760: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080EE768: .4byte gUnknown_2036FB8 -_080EE76C: .4byte gUnknown_8568B8A -_080EE770: .4byte gUnknown_8568B7C -_080EE774: .4byte gUnknown_3005AF0 -_080EE778: .4byte 0x00000EB8 -_080EE77C: .4byte gUnknown_829BDA5 - thumb_func_end sub_080EE664 - - thumb_func_start sub_080EE780 -sub_080EE780: @ 0x080EE780 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldr r7, _080EE7F4 - ldr r0, [r7] - ldr r6, _080EE7F8 - adds r0, r0, r6 - bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray - ldr r4, _080EE7FC - strb r0, [r4] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080EE7EE - movs r0, #0x1b - movs r1, #0 - bl HasMixableShowAlreadyBeenSpawnedWithPlayerID - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080EE7EE - movs r1, #0 - ldrsb r1, [r4, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r4, [r7] - adds r4, r4, r0 - movs r1, #0 - movs r0, #0x1b - strb r0, [r4] - strb r1, [r4, #1] - ldr r1, _080EE800 - ldr r0, [r1] - ldrb r0, [r0, #8] - strb r0, [r4, #8] - ldrh r0, [r5] - strh r0, [r4, #4] - ldrh r0, [r5, #2] - strh r0, [r4, #6] - adds r0, r4, #0 - adds r0, #0x13 - ldr r1, [r1] - bl StringCopy - adds r0, r4, #0 - bl tv_store_id_3x - ldr r0, _080EE804 - ldrb r0, [r0] - strb r0, [r4, #9] -_080EE7EE: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080EE7F4: .4byte gUnknown_3005AEC -_080EE7F8: .4byte 0x000027CC -_080EE7FC: .4byte gUnknown_3005E20 -_080EE800: .4byte gUnknown_3005AF0 -_080EE804: .4byte gUnknown_829BDA5 - thumb_func_end sub_080EE780 - - thumb_func_start sub_080EE808 -sub_080EE808: @ 0x080EE808 - push {r4, r5, r6, lr} - ldr r6, _080EE87C - ldr r0, [r6] - ldr r5, _080EE880 - adds r0, r0, r5 - bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray - ldr r4, _080EE884 - strb r0, [r4] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080EE876 - movs r0, #0x1c - movs r1, #0 - bl HasMixableShowAlreadyBeenSpawnedWithPlayerID - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080EE876 - movs r1, #0 - ldrsb r1, [r4, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r4, [r6] - adds r4, r4, r0 - movs r1, #0 - movs r0, #0x1c - strb r0, [r4] - strb r1, [r4, #1] - ldr r0, _080EE888 - ldrh r0, [r0] - strh r0, [r4, #2] - ldr r1, _080EE88C - ldrb r0, [r1, #0x14] - strb r0, [r4, #4] - ldrh r0, [r1, #0x12] - strh r0, [r4, #6] - adds r0, r4, #0 - adds r0, #0x13 - ldr r1, _080EE890 - ldr r1, [r1] - bl StringCopy - adds r0, r4, #0 - bl tv_store_id_3x - ldr r0, _080EE894 - ldrb r0, [r0] - strb r0, [r4, #5] -_080EE876: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080EE87C: .4byte gUnknown_3005AEC -_080EE880: .4byte 0x000027CC -_080EE884: .4byte gUnknown_3005E20 -_080EE888: .4byte gUnknown_2037282 -_080EE88C: .4byte gUnknown_2036FB8 -_080EE890: .4byte gUnknown_3005AF0 -_080EE894: .4byte gUnknown_829BDA5 - thumb_func_end sub_080EE808 - - thumb_func_start AlertTVOfNewCoinTotal -AlertTVOfNewCoinTotal: @ 0x080EE898 - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, _080EE8DC - ldr r0, [r0] - ldr r1, _080EE8E0 - adds r0, r0, r1 - bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray - ldr r1, _080EE8E4 - strb r0, [r1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080EE974 - movs r0, #0x1d - movs r1, #0 - bl HasMixableShowAlreadyBeenSpawnedWithPlayerID - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080EE974 - movs r5, #0 - ldr r0, _080EE8E8 - ldrb r1, [r0] - adds r6, r0, #0 - cmp r1, #0 - beq _080EE8EC - cmp r1, #1 - beq _080EE90E - b _080EE974 - .align 2, 0 -_080EE8DC: .4byte gUnknown_3005AEC -_080EE8E0: .4byte 0x000027CC -_080EE8E4: .4byte gUnknown_3005E20 -_080EE8E8: .4byte gUnknown_2039CF6 -_080EE8EC: - ldr r0, _080EE900 - ldrh r1, [r0] - adds r0, r1, #0 - adds r0, #0xc8 - cmp r4, r0 - blt _080EE904 - movs r5, #1 - subs r0, r4, r1 - b _080EE932 - .align 2, 0 -_080EE900: .4byte gUnknown_2039CF4 -_080EE904: - cmp r1, #0x63 - bls _080EE974 - adds r0, r1, #0 - subs r0, #0x64 - b _080EE92C -_080EE90E: - ldr r0, _080EE920 - ldrh r1, [r0] - adds r0, r1, #0 - adds r0, #0x32 - cmp r4, r0 - blt _080EE924 - movs r5, #1 - subs r0, r4, r1 - b _080EE932 - .align 2, 0 -_080EE920: .4byte gUnknown_2039CF4 -_080EE924: - cmp r1, #0x31 - bls _080EE974 - adds r0, r1, #0 - subs r0, #0x32 -_080EE92C: - cmp r4, r0 - bgt _080EE974 - subs r0, r1, r4 -_080EE932: - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldr r2, _080EE97C - ldr r0, _080EE980 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080EE984 - adds r0, r0, r1 - ldr r4, [r2] - adds r4, r4, r0 - movs r1, #0 - movs r0, #0x1d - strb r0, [r4] - strb r1, [r4, #1] - strh r3, [r4, #4] - ldrb r0, [r6] - strb r0, [r4, #3] - strb r5, [r4, #2] - adds r0, r4, #0 - adds r0, #0x13 - ldr r1, _080EE988 - ldr r1, [r1] - bl StringCopy - adds r0, r4, #0 - bl tv_store_id_3x - ldr r0, _080EE98C - ldrb r0, [r0] - strb r0, [r4, #8] -_080EE974: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080EE97C: .4byte gUnknown_3005AEC -_080EE980: .4byte gUnknown_3005E20 -_080EE984: .4byte 0x000027CC -_080EE988: .4byte gUnknown_3005AF0 -_080EE98C: .4byte gUnknown_829BDA5 - thumb_func_end AlertTVOfNewCoinTotal - - thumb_func_start AlertTVThatPlayerPlayedSlotMachine -AlertTVThatPlayerPlayedSlotMachine: @ 0x080EE990 - ldr r2, _080EE99C - movs r1, #0 - strb r1, [r2] - ldr r1, _080EE9A0 - strh r0, [r1] - bx lr - .align 2, 0 -_080EE99C: .4byte gUnknown_2039CF6 -_080EE9A0: .4byte gUnknown_2039CF4 - thumb_func_end AlertTVThatPlayerPlayedSlotMachine - - thumb_func_start AlertTVThatPlayerPlayedRoulette -AlertTVThatPlayerPlayedRoulette: @ 0x080EE9A4 - ldr r2, _080EE9B0 - movs r1, #1 - strb r1, [r2] - ldr r1, _080EE9B4 - strh r0, [r1] - bx lr - .align 2, 0 -_080EE9B0: .4byte gUnknown_2039CF6 -_080EE9B4: .4byte gUnknown_2039CF4 - thumb_func_end AlertTVThatPlayerPlayedRoulette - - thumb_func_start sub_080EE9B8 -sub_080EE9B8: @ 0x080EE9B8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov r8, r0 - movs r3, #0 - ldr r6, _080EE9FC - ldr r7, _080EEA00 - adds r2, r6, #0 - movs r1, #0 -_080EE9CC: - adds r0, r3, r2 - strb r1, [r0] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0xf - bls _080EE9CC - movs r3, #0 - movs r5, #0 -_080EE9DE: - ldr r0, [r7] - ldr r1, _080EEA04 - adds r0, r0, r1 - adds r0, r0, r3 - ldrb r4, [r0] - adds r3, #1 - cmp r4, #0 - beq _080EEA2A - movs r1, #0 - ldrb r0, [r6] - cmp r0, #0 - bne _080EEA08 - strb r4, [r6] - b _080EEA24 - .align 2, 0 -_080EE9FC: .4byte gUnknown_3005E40 -_080EEA00: .4byte gUnknown_3005AEC -_080EEA04: .4byte 0x00001AAE -_080EEA08: - adds r0, r1, r6 - ldrb r0, [r0] - cmp r0, r4 - beq _080EEA2A - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xf - bhi _080EEA2A - adds r2, r1, r6 - ldrb r0, [r2] - cmp r0, #0 - bne _080EEA08 - strb r4, [r2] -_080EEA24: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_080EEA2A: - lsls r0, r3, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0xf - bls _080EE9DE - cmp r5, #4 - bls _080EEA3E - movs r0, #4 - mov r1, r8 - strb r0, [r1, #3] - b _080EEA42 -_080EEA3E: - mov r0, r8 - strb r5, [r0, #3] -_080EEA42: - mov r1, r8 - ldrb r0, [r1, #3] - cmp r0, #0 - beq _080EEAC4 - cmp r0, #1 - bne _080EEA54 - ldrb r0, [r6] - strb r0, [r1, #4] - b _080EEAC4 -_080EEA54: - movs r6, #0 - adds r7, r5, #0 - muls r7, r5, r7 - cmp r6, r7 - bge _080EEA9E - ldr r0, _080EEAD0 - mov sb, r0 -_080EEA62: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r5, #0 - bl __modsi3 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r5, #0 - bl __modsi3 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - mov r0, sb - adds r2, r4, r0 - ldrb r3, [r2] - add r1, sb - ldrb r0, [r1] - strb r0, [r2] - strb r3, [r1] - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, r7 - blt _080EEA62 -_080EEA9E: - movs r3, #0 - mov r1, r8 - ldrb r1, [r1, #3] - cmp r3, r1 - bhs _080EEAC4 - mov r2, r8 - adds r2, #4 - ldr r4, _080EEAD0 -_080EEAAE: - adds r1, r2, r3 - adds r0, r3, r4 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - mov r0, r8 - ldrb r0, [r0, #3] - cmp r3, r0 - blo _080EEAAE -_080EEAC4: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080EEAD0: .4byte gUnknown_3005E40 - thumb_func_end sub_080EE9B8 - - thumb_func_start sub_080EEAD4 -sub_080EEAD4: @ 0x080EEAD4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sl, r0 - movs r7, #0 - movs r0, #0 - mov sb, r0 - ldr r1, _080EEC18 - mov r8, r1 -_080EEAEA: - movs r0, #0x64 - adds r1, r7, #0 - muls r1, r0, r1 - ldr r0, _080EEC1C - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _080EEBB4 - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - bne _080EEBB4 - adds r0, r4, #0 - movs r1, #0x38 - bl GetMonData - ldr r2, _080EEC20 - mov r3, sb - lsls r1, r3, #3 - adds r6, r1, r2 - strb r0, [r6] - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - strh r0, [r6, #2] - movs r5, #0 - adds r0, r4, #0 - movs r1, #0xd - bl GetMonData - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - beq _080EEB40 - mov r0, r8 - strh r1, [r0] - movs r5, #1 -_080EEB40: - adds r0, r4, #0 - movs r1, #0xe - bl GetMonData - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - beq _080EEB5C - lsls r0, r5, #1 - add r0, r8 - strh r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_080EEB5C: - adds r0, r4, #0 - movs r1, #0xf - bl GetMonData - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - beq _080EEB78 - lsls r0, r5, #1 - add r0, r8 - strh r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_080EEB78: - adds r0, r4, #0 - movs r1, #0x10 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - beq _080EEB94 - lsls r0, r5, #1 - add r0, r8 - strh r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_080EEB94: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r5, #0 - bl __modsi3 - lsls r0, r0, #1 - add r0, r8 - ldrh r0, [r0] - strh r0, [r6, #4] - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 -_080EEBB4: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #5 - bls _080EEAEA - movs r7, #0 - movs r1, #0 - cmp r1, sb - bhs _080EEBDE - ldr r2, _080EEC20 -_080EEBC8: - lsls r0, r7, #3 - adds r0, r0, r2 - ldrb r0, [r0] - adds r0, r1, r0 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, sb - blo _080EEBC8 -_080EEBDE: - adds r0, r1, #0 - mov r1, sb - bl __divsi3 - mov r1, sl - strb r0, [r1, #2] - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r1, sb - bl __modsi3 - lsls r0, r0, #0x10 - ldr r1, _080EEC20 - lsrs r0, r0, #0xd - adds r0, r0, r1 - ldrh r1, [r0, #2] - mov r2, sl - strh r1, [r2, #8] - ldrh r0, [r0, #4] - strh r0, [r2, #0xa] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080EEC18: .4byte gUnknown_3005E30 -_080EEC1C: .4byte gUnknown_2024190 -_080EEC20: .4byte gUnknown_3005E50 - thumb_func_end sub_080EEAD4 - - thumb_func_start TV_PutSecretBaseVisitOnTheAir -TV_PutSecretBaseVisitOnTheAir: @ 0x080EEC24 - push {r4, lr} - movs r0, #0x1f - movs r1, #1 - bl HasMixableShowAlreadyBeenSpawnedWithPlayerID - ldr r4, _080EEC90 - ldr r0, [r4] - ldr r1, _080EEC94 - adds r0, r0, r1 - bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray - ldr r2, _080EEC98 - strb r0, [r2] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080EEC88 - movs r1, #0 - ldrsb r1, [r2, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080EEC94 - adds r0, r0, r1 - ldr r4, [r4] - adds r4, r4, r0 - movs r1, #0 - movs r0, #0x1f - strb r0, [r4] - strb r1, [r4, #1] - adds r0, r4, #0 - adds r0, #0x13 - ldr r1, _080EEC9C - ldr r1, [r1] - bl StringCopy - adds r0, r4, #0 - bl sub_080EE9B8 - adds r0, r4, #0 - bl sub_080EEAD4 - adds r0, r4, #0 - bl tv_store_id_3x - ldr r0, _080EECA0 - ldrb r0, [r0] - strb r0, [r4, #0xc] -_080EEC88: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EEC90: .4byte gUnknown_3005AEC -_080EEC94: .4byte 0x000027CC -_080EEC98: .4byte gUnknown_3005E20 -_080EEC9C: .4byte gUnknown_3005AF0 -_080EECA0: .4byte gUnknown_829BDA5 - thumb_func_end TV_PutSecretBaseVisitOnTheAir - - thumb_func_start sub_080EECA4 -sub_080EECA4: @ 0x080EECA4 - push {r4, r5, r6, r7, lr} - ldr r6, _080EED44 - ldr r0, [r6] - ldr r5, _080EED48 - adds r0, r0, r5 - bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray - ldr r4, _080EED4C - strb r0, [r4] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _080EECC4 - b _080EEDE2 -_080EECC4: - movs r0, #0x1e - movs r1, #0 - bl HasMixableShowAlreadyBeenSpawnedWithPlayerID - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080EECD6 - b _080EEDE2 -_080EECD6: - movs r1, #0 - ldrsb r1, [r4, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r6] - adds r4, r1, r0 - movs r1, #0 - movs r0, #0x1e - strb r0, [r4] - strb r1, [r4, #1] - movs r5, #0 - ldr r6, _080EED50 - ldr r3, _080EED54 - ldr r7, _080EED58 - adds r2, r6, #0 - adds r2, #0x36 -_080EECFA: - adds r0, r1, r2 - ldrb r0, [r0] - adds r0, r5, r0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xa - bls _080EECFA - ldrb r1, [r6, #5] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080EED1E - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_080EED1E: - ldrb r0, [r3, #0x14] - strb r0, [r4, #4] - adds r0, r4, #0 - adds r0, #0x13 - ldr r1, [r7] - bl StringCopy - ldrh r0, [r6, #6] - strh r0, [r4, #0xa] - ldr r0, _080EED5C - ldrb r0, [r0] - subs r0, #1 - cmp r0, #9 - bhi _080EEDA2 - lsls r0, r0, #2 - ldr r1, _080EED60 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EED44: .4byte gUnknown_3005AEC -_080EED48: .4byte 0x000027CC -_080EED4C: .4byte gUnknown_3005E20 -_080EED50: .4byte gUnknown_3005A70 -_080EED54: .4byte gUnknown_2036FB8 -_080EED58: .4byte gUnknown_3005AF0 -_080EED5C: .4byte gUnknown_2023FDE -_080EED60: .4byte _080EED64 -_080EED64: @ jump table - .4byte _080EED96 @ case 0 - .4byte _080EED8C @ case 1 - .4byte _080EED8C @ case 2 - .4byte _080EED9A @ case 3 - .4byte _080EED9A @ case 4 - .4byte _080EED9E @ case 5 - .4byte _080EED92 @ case 6 - .4byte _080EED9A @ case 7 - .4byte _080EEDA2 @ case 8 - .4byte _080EED9E @ case 9 -_080EED8C: - movs r0, #0 - strb r0, [r4] - b _080EEDE2 -_080EED92: - movs r0, #0 - b _080EEDA0 -_080EED96: - movs r0, #1 - b _080EEDA0 -_080EED9A: - movs r0, #2 - b _080EEDA0 -_080EED9E: - movs r0, #3 -_080EEDA0: - strb r0, [r4, #5] -_080EEDA2: - ldr r1, _080EEDC4 - ldrh r0, [r1, #0x20] - strh r0, [r4, #2] - ldrb r0, [r4, #5] - cmp r0, #1 - beq _080EEDD2 - cmp r0, #1 - bgt _080EEDD6 - cmp r0, #0 - bne _080EEDD6 - ldrb r1, [r1, #5] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080EEDC8 - movs r0, #1 - b _080EEDCC - .align 2, 0 -_080EEDC4: .4byte gUnknown_3005A70 -_080EEDC8: - lsls r0, r1, #0x1a - lsrs r0, r0, #0x1c -_080EEDCC: - strh r0, [r4, #6] - strh r5, [r4, #8] - b _080EEDD6 -_080EEDD2: - ldrh r0, [r1, #0x22] - strh r0, [r4, #0xc] -_080EEDD6: - adds r0, r4, #0 - bl tv_store_id_3x - ldr r0, _080EEDE8 - ldrb r0, [r0] - strb r0, [r4, #0xe] -_080EEDE2: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080EEDE8: .4byte gUnknown_829BDA5 - thumb_func_end sub_080EECA4 - - thumb_func_start sub_080EEDEC -sub_080EEDEC: @ 0x080EEDEC - push {r4, r5, r6, lr} - ldr r6, _080EEE60 - ldr r0, [r6] - ldr r5, _080EEE64 - adds r0, r0, r5 - bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray - ldr r4, _080EEE68 - strb r0, [r4] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080EEE5A - movs r0, #0x20 - movs r1, #0 - bl HasMixableShowAlreadyBeenSpawnedWithPlayerID - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080EEE5A - movs r1, #0 - ldrsb r1, [r4, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r4, [r6] - adds r4, r4, r0 - movs r1, #0 - movs r0, #0x20 - strb r0, [r4] - strb r1, [r4, #1] - adds r0, r4, #0 - adds r0, #0x13 - ldr r1, _080EEE6C - ldr r1, [r1] - bl StringCopy - ldr r0, _080EEE70 - ldrb r1, [r0] - movs r0, #4 - subs r0, r0, r1 - strb r0, [r4, #4] - ldr r0, _080EEE74 - ldrh r0, [r0] - strh r0, [r4, #2] - adds r0, r4, #0 - bl tv_store_id_3x - ldr r0, _080EEE78 - ldrb r0, [r0] - strb r0, [r4, #5] -_080EEE5A: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080EEE60: .4byte gUnknown_3005AEC -_080EEE64: .4byte 0x000027CC -_080EEE68: .4byte gUnknown_3005E20 -_080EEE6C: .4byte gUnknown_3005AF0 -_080EEE70: .4byte gUnknown_2037280 -_080EEE74: .4byte gUnknown_2037282 -_080EEE78: .4byte gUnknown_829BDA5 - thumb_func_end sub_080EEDEC - - thumb_func_start sub_080EEE7C -sub_080EEE7C: @ 0x080EEE7C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r7, r3, #0 - ldr r3, [sp, #0x24] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sl, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sb, r1 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - str r3, [sp] - ldr r0, _080EEF58 - mov r8, r0 - ldr r0, [r0] - ldr r5, _080EEF5C - adds r0, r0, r5 - bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray - ldr r4, _080EEF60 - strb r0, [r4] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080EEF46 - movs r0, #0x21 - movs r1, #0 - bl HasMixableShowAlreadyBeenSpawnedWithPlayerID - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080EEF46 - movs r1, #0 - ldrsb r1, [r4, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - mov r2, r8 - ldr r1, [r2] - adds r4, r1, r0 - movs r1, #0 - movs r0, #0x21 - strb r0, [r4] - strb r1, [r4, #1] - adds r0, r4, #0 - adds r0, #0x13 - ldr r1, _080EEF64 - ldr r1, [r1] - bl StringCopy - mov r0, sl - strh r0, [r4, #4] - mov r1, sb - strh r1, [r4, #6] - lsls r0, r6, #1 - adds r0, r0, r7 - ldrh r0, [r0] - strh r0, [r4, #2] - movs r2, #0 - movs r3, #0 - adds r5, r4, #0 - adds r5, #8 -_080EEF0E: - cmp r2, r6 - beq _080EEF28 - lsls r0, r2, #1 - adds r0, r0, r7 - ldrh r1, [r0] - cmp r1, #0 - beq _080EEF28 - lsls r0, r3, #1 - adds r0, r5, r0 - strh r1, [r0] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 -_080EEF28: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #3 - bls _080EEF0E - strb r3, [r4, #0x10] - mov r2, sp - ldrh r2, [r2] - strh r2, [r4, #0xe] - adds r0, r4, #0 - bl tv_store_id_3x - ldr r0, _080EEF68 - ldrb r0, [r0] - strb r0, [r4, #0x11] -_080EEF46: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080EEF58: .4byte gUnknown_3005AEC -_080EEF5C: .4byte 0x000027CC -_080EEF60: .4byte gUnknown_3005E20 -_080EEF64: .4byte gUnknown_3005AF0 -_080EEF68: .4byte gUnknown_829BDA5 - thumb_func_end sub_080EEE7C - - thumb_func_start sub_080EEF6C -sub_080EEF6C: @ 0x080EEF6C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - ldr r6, _080EEFE8 - ldr r0, [r6] - ldr r5, _080EEFEC - adds r0, r0, r5 - bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray - ldr r4, _080EEFF0 - strb r0, [r4] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080EEFDE - movs r0, #0x27 - movs r1, #0 - bl HasMixableShowAlreadyBeenSpawnedWithPlayerID - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080EEFDE - movs r1, #0 - ldrsb r1, [r4, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r4, [r6] - adds r4, r4, r0 - movs r1, #0 - movs r0, #0x27 - strb r0, [r4] - strb r1, [r4, #1] - adds r0, r4, #0 - adds r0, #0x13 - ldr r1, _080EEFF4 - ldr r1, [r1] - bl StringCopy - mov r0, r8 - strb r0, [r4, #2] - strb r7, [r4, #3] - adds r0, r4, #0 - bl tv_store_id_3x - ldr r0, _080EEFF8 - ldrb r0, [r0] - strb r0, [r4, #4] -_080EEFDE: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080EEFE8: .4byte gUnknown_3005AEC -_080EEFEC: .4byte 0x000027CC -_080EEFF0: .4byte gUnknown_3005E20 -_080EEFF4: .4byte gUnknown_3005AF0 -_080EEFF8: .4byte gUnknown_829BDA5 - thumb_func_end sub_080EEF6C - - thumb_func_start sub_080EEFFC -sub_080EEFFC: @ 0x080EEFFC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - ldr r7, _080EF094 - ldr r0, [r7] - ldr r6, _080EF098 - adds r0, r0, r6 - bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray - ldr r4, _080EF09C - strb r0, [r4] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080EF0B2 - movs r0, #0x23 - movs r1, #0 - bl HasMixableShowAlreadyBeenSpawnedWithPlayerID - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080EF0B2 - movs r1, #0 - ldrsb r1, [r4, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r1, [r7] - adds r4, r1, r0 - movs r1, #0 - movs r0, #0x23 - strb r0, [r4] - strb r1, [r4, #1] - adds r0, r4, #0 - adds r0, #0x13 - ldr r1, _080EF0A0 - ldr r1, [r1] - bl StringCopy - adds r2, r4, #4 - adds r0, r5, #0 - movs r1, #2 - bl GetMonData - adds r0, r5, #0 - bl GetRibbonCount - strb r0, [r4, #2] - mov r0, r8 - bl TV_MonDataIdxToRibbon - strb r0, [r4, #3] - adds r0, r4, #0 - bl tv_store_id_3x - ldr r0, _080EF0A4 - ldrb r0, [r0] - strb r0, [r4, #0xf] - cmp r0, #1 - beq _080EF090 - adds r0, r5, #0 - movs r1, #3 - bl GetMonData - cmp r0, #1 - bne _080EF0A8 -_080EF090: - movs r0, #1 - b _080EF0B0 - .align 2, 0 -_080EF094: .4byte gUnknown_3005AEC -_080EF098: .4byte 0x000027CC -_080EF09C: .4byte gUnknown_3005E20 -_080EF0A0: .4byte gUnknown_3005AF0 -_080EF0A4: .4byte gUnknown_829BDA5 -_080EF0A8: - adds r0, r5, #0 - movs r1, #3 - bl GetMonData -_080EF0B0: - strb r0, [r4, #0x10] -_080EF0B2: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_080EEFFC - - thumb_func_start GetRibbonCount -GetRibbonCount: @ 0x080EF0BC - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0x32 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - movs r1, #0x33 - bl GetMonData - adds r4, r4, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - movs r1, #0x34 - bl GetMonData - adds r4, r4, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - movs r1, #0x35 - bl GetMonData - adds r4, r4, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - movs r1, #0x36 - bl GetMonData - adds r4, r4, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - movs r1, #0x43 - bl GetMonData - adds r4, r4, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - movs r1, #0x44 - bl GetMonData - adds r4, r4, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - movs r1, #0x45 - bl GetMonData - adds r4, r4, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - movs r1, #0x46 - bl GetMonData - adds r4, r4, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - movs r1, #0x47 - bl GetMonData - adds r4, r4, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - movs r1, #0x48 - bl GetMonData - adds r4, r4, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - movs r1, #0x49 - bl GetMonData - adds r4, r4, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - movs r1, #0x4a - bl GetMonData - adds r4, r4, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - movs r1, #0x4b - bl GetMonData - adds r4, r4, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - movs r1, #0x4c - bl GetMonData - adds r4, r4, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - movs r1, #0x4d - bl GetMonData - adds r4, r4, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - movs r1, #0x4e - bl GetMonData - adds r4, r4, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end GetRibbonCount - - thumb_func_start TV_MonDataIdxToRibbon -TV_MonDataIdxToRibbon: @ 0x080EF1B4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x43 - beq _080EF23A - cmp r0, #0x32 - bne _080EF1C6 - movs r0, #1 - b _080EF240 -_080EF1C6: - cmp r0, #0x33 - bne _080EF1CE - movs r0, #5 - b _080EF240 -_080EF1CE: - cmp r0, #0x34 - bne _080EF1D6 - movs r0, #9 - b _080EF240 -_080EF1D6: - cmp r0, #0x35 - bne _080EF1DE - movs r0, #0xd - b _080EF240 -_080EF1DE: - cmp r0, #0x36 - bne _080EF1E6 - movs r0, #0x11 - b _080EF240 -_080EF1E6: - cmp r0, #0x44 - bne _080EF1EE - movs r0, #0x15 - b _080EF240 -_080EF1EE: - cmp r0, #0x45 - bne _080EF1F6 - movs r0, #0x16 - b _080EF240 -_080EF1F6: - cmp r0, #0x46 - bne _080EF1FE - movs r0, #0x17 - b _080EF240 -_080EF1FE: - cmp r0, #0x47 - bne _080EF206 - movs r0, #0x18 - b _080EF240 -_080EF206: - cmp r0, #0x48 - bne _080EF20E - movs r0, #0x19 - b _080EF240 -_080EF20E: - cmp r0, #0x49 - bne _080EF216 - movs r0, #0x1a - b _080EF240 -_080EF216: - cmp r0, #0x4a - bne _080EF21E - movs r0, #0x1b - b _080EF240 -_080EF21E: - cmp r0, #0x4b - bne _080EF226 - movs r0, #0x1c - b _080EF240 -_080EF226: - cmp r0, #0x4c - bne _080EF22E - movs r0, #0x1d - b _080EF240 -_080EF22E: - cmp r0, #0x4d - bne _080EF236 - movs r0, #0x1e - b _080EF240 -_080EF236: - cmp r0, #0x4e - beq _080EF23E -_080EF23A: - movs r0, #0 - b _080EF240 -_080EF23E: - movs r0, #0x1f -_080EF240: - pop {r1} - bx r1 - thumb_func_end TV_MonDataIdxToRibbon - - thumb_func_start sub_080EF244 -sub_080EF244: @ 0x080EF244 - push {r4, r5, r6, lr} - ldr r5, _080EF2BC - ldr r0, [r5] - ldr r6, _080EF2C0 - adds r0, r0, r6 - bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray - ldr r4, _080EF2C4 - strb r0, [r4] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080EF2B4 - movs r0, #0x22 - movs r1, #0 - bl HasMixableShowAlreadyBeenSpawnedWithPlayerID - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080EF2B4 - movs r1, #0 - ldrsb r1, [r4, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r4, [r5] - adds r4, r4, r0 - movs r1, #0 - movs r0, #0x22 - strb r0, [r4] - strb r1, [r4, #1] - adds r0, r4, #0 - adds r0, #0x13 - ldr r1, _080EF2C8 - ldr r1, [r1] - bl StringCopy - ldr r0, [r5] - ldr r2, _080EF2CC - adds r1, r0, r2 - ldrh r1, [r1] - strh r1, [r4, #4] - ldr r1, _080EF2D0 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r4, #6] - adds r0, r4, #0 - bl tv_store_id_3x - ldr r0, _080EF2D4 - ldrb r0, [r0] - strb r0, [r4, #8] -_080EF2B4: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080EF2BC: .4byte gUnknown_3005AEC -_080EF2C0: .4byte 0x000027CC -_080EF2C4: .4byte gUnknown_3005E20 -_080EF2C8: .4byte gUnknown_3005AF0 -_080EF2CC: .4byte 0x00002BB0 -_080EF2D0: .4byte 0x00002BB2 -_080EF2D4: .4byte gUnknown_829BDA5 - thumb_func_end sub_080EF244 - - thumb_func_start sub_080EF2D8 -sub_080EF2D8: @ 0x080EF2D8 - push {r4, lr} - ldr r4, _080EF314 - ldr r0, [r4] - ldr r1, _080EF318 - adds r0, r0, r1 - bl FindEmptyTVSlotWithinFirstFiveShowsOfArray - ldr r1, _080EF31C - strb r0, [r1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080EF328 - movs r0, #0xb - bl FindActiveBroadcastByShowType_SetScriptResult - ldr r0, _080EF320 - ldrh r0, [r0] - cmp r0, #1 - beq _080EF328 - ldr r0, [r4] - ldr r1, _080EF324 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0xff - beq _080EF328 - movs r0, #0 - b _080EF32A - .align 2, 0 -_080EF314: .4byte gUnknown_3005AEC -_080EF318: .4byte 0x000027CC -_080EF31C: .4byte gUnknown_3005E20 -_080EF320: .4byte gUnknown_2037290 -_080EF324: .4byte 0x00003150 -_080EF328: - movs r0, #1 -_080EF32A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_080EF2D8 - - thumb_func_start sub_080EF330 -sub_080EF330: @ 0x080EF330 - push {r4, r5, r6, r7, lr} - movs r0, #0x24 - movs r1, #0 - bl HasMixableShowAlreadyBeenSpawnedWithPlayerID - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080EF388 - ldr r0, _080EF3A8 - ldr r0, [r0] - ldr r1, _080EF3AC - adds r7, r0, r1 - bl GetPlayerIDAsU32 - adds r4, r0, #0 - movs r6, #5 - lsrs r5, r4, #8 -_080EF354: - lsls r0, r6, #3 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r1, r0, r7 - ldrb r0, [r1] - cmp r0, #0x24 - bne _080EF37E - movs r3, #0xff - adds r0, r4, #0 - ands r0, r3 - adds r2, r1, #0 - adds r2, #0x22 - ldrb r2, [r2] - cmp r0, r2 - bne _080EF37E - adds r0, r5, #0 - ands r0, r3 - adds r1, #0x23 - ldrb r1, [r1] - cmp r0, r1 - beq _080EF3B4 -_080EF37E: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0x17 - bls _080EF354 -_080EF388: - ldr r0, _080EF3A8 - ldr r0, [r0] - ldr r1, _080EF3AC - adds r0, r0, r1 - bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray - ldr r1, _080EF3B0 - strb r0, [r1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080EF3D8 - movs r0, #1 - b _080EF3DA - .align 2, 0 -_080EF3A8: .4byte gUnknown_3005AEC -_080EF3AC: .4byte 0x000027CC -_080EF3B0: .4byte gUnknown_3005E20 -_080EF3B4: - ldr r5, _080EF3D0 - ldr r0, [r5] - ldr r4, _080EF3D4 - adds r0, r0, r4 - adds r1, r6, #0 - bl DeleteTVShowInArrayByIdx - ldr r0, [r5] - adds r0, r0, r4 - bl sub_080F0428 - movs r0, #1 - b _080EF3DA - .align 2, 0 -_080EF3D0: .4byte gUnknown_3005AEC -_080EF3D4: .4byte 0x000027CC -_080EF3D8: - movs r0, #0 -_080EF3DA: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_080EF330 - - thumb_func_start sub_080EF3E0 -sub_080EF3E0: @ 0x080EF3E0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - ldr r5, _080EF448 - ldr r0, [r5] - ldr r1, _080EF44C - adds r0, r0, r1 - bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray - ldr r2, _080EF450 - strb r0, [r2] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _080EF40C - b _080EF56A -_080EF40C: - movs r1, #0 - ldrsb r1, [r2, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r2, _080EF44C - adds r0, r0, r2 - ldr r1, [r5] - adds r7, r1, r0 - movs r1, #0 - movs r0, #0x24 - strb r0, [r7] - strb r1, [r7, #1] - adds r0, r7, #0 - adds r0, #0x13 - ldr r1, _080EF454 - ldr r1, [r1] - bl StringCopy - strh r6, [r7, #2] - strb r4, [r7, #0xd] - subs r0, r4, #1 - cmp r0, #0xc - bls _080EF43E - b _080EF55E -_080EF43E: - lsls r0, r0, #2 - ldr r1, _080EF458 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EF448: .4byte gUnknown_3005AEC -_080EF44C: .4byte 0x000027CC -_080EF450: .4byte gUnknown_3005E20 -_080EF454: .4byte gUnknown_3005AF0 -_080EF458: .4byte _080EF45C -_080EF45C: @ jump table - .4byte _080EF490 @ case 0 - .4byte _080EF4C0 @ case 1 - .4byte _080EF500 @ case 2 - .4byte _080EF518 @ case 3 - .4byte _080EF490 @ case 4 - .4byte _080EF490 @ case 5 - .4byte _080EF490 @ case 6 - .4byte _080EF490 @ case 7 - .4byte _080EF490 @ case 8 - .4byte _080EF490 @ case 9 - .4byte _080EF490 @ case 10 - .4byte _080EF490 @ case 11 - .4byte _080EF490 @ case 12 -_080EF490: - ldr r4, _080EF4BC - adds r0, r4, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - strh r0, [r7, #4] - adds r0, r4, #0 - adds r0, #0x64 - movs r1, #0xb - movs r2, #0 - bl GetMonData - strh r0, [r7, #6] - adds r4, #0xc8 - adds r0, r4, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - strh r0, [r7, #8] - b _080EF55E - .align 2, 0 -_080EF4BC: .4byte gUnknown_2024190 -_080EF4C0: - ldr r4, _080EF4FC - adds r0, r4, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - strh r0, [r7, #4] - adds r0, r4, #0 - adds r0, #0x64 - movs r1, #0xb - movs r2, #0 - bl GetMonData - strh r0, [r7, #6] - adds r0, r4, #0 - adds r0, #0xc8 - movs r1, #0xb - movs r2, #0 - bl GetMonData - strh r0, [r7, #8] - movs r1, #0x96 - lsls r1, r1, #1 - adds r0, r4, r1 - movs r1, #0xb - movs r2, #0 - bl GetMonData - strh r0, [r7, #0xa] - b _080EF55E - .align 2, 0 -_080EF4FC: .4byte gUnknown_2024190 -_080EF500: - ldr r4, _080EF514 - adds r0, r4, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - strh r0, [r7, #4] - adds r4, #0x64 - adds r0, r4, #0 - b _080EF554 - .align 2, 0 -_080EF514: .4byte gUnknown_2024190 -_080EF518: - ldr r2, _080EF574 - mov r8, r2 - ldr r6, _080EF578 - ldr r0, [r6] - ldr r1, _080EF57C - adds r0, r0, r1 - ldrh r0, [r0] - movs r5, #0x64 - adds r1, r0, #0 - muls r1, r5, r1 - movs r4, #0xea - lsls r4, r4, #1 - adds r1, r1, r4 - ldr r0, [r2] - adds r0, r0, r1 - movs r1, #0xb - movs r2, #0 - bl GetMonData - strh r0, [r7, #4] - ldr r0, [r6] - ldr r2, _080EF580 - adds r0, r0, r2 - ldrh r0, [r0] - adds r1, r0, #0 - muls r1, r5, r1 - adds r1, r1, r4 - mov r2, r8 - ldr r0, [r2] - adds r0, r0, r1 -_080EF554: - movs r1, #0xb - movs r2, #0 - bl GetMonData - strh r0, [r7, #6] -_080EF55E: - adds r0, r7, #0 - bl tv_store_id_3x - ldr r0, _080EF584 - ldrb r0, [r0] - strb r0, [r7, #0xc] -_080EF56A: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080EF574: .4byte gUnknown_3005AEC -_080EF578: .4byte gUnknown_3005AF0 -_080EF57C: .4byte 0x00000CAA -_080EF580: .4byte 0x00000CAC -_080EF584: .4byte gUnknown_829BDA5 - thumb_func_end sub_080EF3E0 - - thumb_func_start sub_080EF588 -sub_080EF588: @ 0x080EF588 - push {r4, r5, r6, r7, lr} - movs r0, #0x26 - movs r1, #0 - bl HasMixableShowAlreadyBeenSpawnedWithPlayerID - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080EF690 - ldr r7, _080EF644 - ldr r0, [r7] - ldr r1, _080EF648 - adds r0, r0, r1 - bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray - ldr r2, _080EF64C - strb r0, [r2] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080EF690 - movs r1, #0 - ldrsb r1, [r2, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080EF648 - adds r0, r0, r1 - ldr r1, [r7] - adds r5, r1, r0 - movs r1, #0 - movs r0, #0x26 - strb r0, [r5] - strb r1, [r5, #1] - adds r0, r5, #0 - adds r0, #0x13 - ldr r1, _080EF650 - ldr r1, [r1] - bl StringCopy - ldr r0, _080EF654 - bl VarGet - strh r0, [r5, #2] - bl sub_080EA48C - adds r0, r5, #4 - ldr r1, _080EF658 - bl StringCopy - ldr r0, _080EF65C - bl VarGet - strh r0, [r5, #0x10] - ldr r0, _080EF660 - bl VarGet - adds r4, r0, #0 - ldr r0, _080EF664 - bl VarGet - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r0, r0, #0x10 - adds r4, r4, r0 - str r4, [r5, #0xc] - adds r0, r5, #0 - bl tv_store_id_3x - ldr r0, _080EF668 - ldrb r0, [r0] - strb r0, [r5, #0x1b] - cmp r0, #1 - beq _080EF640 - ldr r4, [r7] - ldr r6, _080EF66C - adds r0, r6, #0 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #5 - adds r4, r4, r1 - ldr r0, _080EF670 - adds r4, r4, r0 - ldrb r0, [r4] - cmp r0, #1 - bne _080EF674 -_080EF640: - movs r0, #1 - b _080EF68E - .align 2, 0 -_080EF644: .4byte gUnknown_3005AEC -_080EF648: .4byte 0x000027CC -_080EF64C: .4byte gUnknown_3005E20 -_080EF650: .4byte gUnknown_3005AF0 -_080EF654: .4byte 0x000040EC -_080EF658: .4byte gUnknown_2021C40 -_080EF65C: .4byte 0x000040ED -_080EF660: .4byte 0x000040EE -_080EF664: .4byte 0x000040EF -_080EF668: .4byte gUnknown_829BDA5 -_080EF66C: .4byte 0x00004054 -_080EF670: .4byte 0x00001AA9 -_080EF674: - adds r0, r6, #0 - bl VarGet - ldr r2, [r7] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #5 - adds r2, r2, r1 - ldr r1, _080EF698 - adds r2, r2, r1 - ldrb r0, [r2] -_080EF68E: - strb r0, [r5, #0x1c] -_080EF690: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080EF698: .4byte 0x00001AA9 - thumb_func_end sub_080EF588 - - thumb_func_start sub_080EF69C -sub_080EF69C: @ 0x080EF69C - push {r4, r5, r6, r7, lr} - movs r5, #0 - ldr r6, _080EF6A8 - adds r7, r6, #2 - b _080EF6B2 - .align 2, 0 -_080EF6A8: .4byte gUnknown_8568B98 -_080EF6AC: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_080EF6B2: - cmp r5, #6 - bhi _080EF6D2 - lsls r4, r5, #2 - adds r0, r4, r6 - ldrh r0, [r0] - bl VarGet - adds r4, r4, r7 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrh r4, [r4] - cmp r0, r4 - blo _080EF6AC - adds r0, r5, #0 - bl sub_080EF6F8 -_080EF6D2: - movs r5, #0 - ldr r4, _080EF6F4 -_080EF6D6: - lsls r0, r5, #2 - adds r0, r0, r4 - ldrh r0, [r0] - movs r1, #0 - bl VarSet - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #6 - bls _080EF6D6 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080EF6F4: .4byte gUnknown_8568B98 - thumb_func_end sub_080EF69C - - thumb_func_start sub_080EF6F8 -sub_080EF6F8: @ 0x080EF6F8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r0, #0x25 - movs r1, #1 - bl HasMixableShowAlreadyBeenSpawnedWithPlayerID - ldr r4, _080EF76C - ldr r0, [r4] - ldr r1, _080EF770 - adds r0, r0, r1 - bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray - ldr r2, _080EF774 - strb r0, [r2] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080EF764 - movs r1, #0 - ldrsb r1, [r2, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080EF770 - adds r0, r0, r1 - ldr r4, [r4] - adds r4, r4, r0 - movs r1, #0 - movs r0, #0x25 - strb r0, [r4] - strb r1, [r4, #1] - adds r0, r4, #0 - adds r0, #0x13 - ldr r1, _080EF778 - ldr r1, [r1] - bl StringCopy - strb r5, [r4, #4] - ldr r1, _080EF77C - lsls r0, r5, #2 - adds r0, r0, r1 - ldrh r0, [r0] - bl VarGet - strh r0, [r4, #2] - adds r0, r4, #0 - bl tv_store_id_3x - ldr r0, _080EF780 - ldrb r0, [r0] - strb r0, [r4, #5] -_080EF764: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080EF76C: .4byte gUnknown_3005AEC -_080EF770: .4byte 0x000027CC -_080EF774: .4byte gUnknown_3005E20 -_080EF778: .4byte gUnknown_3005AF0 -_080EF77C: .4byte gUnknown_8568B98 -_080EF780: .4byte gUnknown_829BDA5 - thumb_func_end sub_080EF6F8 - - thumb_func_start sub_080EF784 -sub_080EF784: @ 0x080EF784 - push {r4, lr} - ldr r4, _080EF7A4 - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - adds r1, #1 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl VarSet - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EF7A4: .4byte 0x000040E6 - thumb_func_end sub_080EF784 - - thumb_func_start sub_080EF7A8 -sub_080EF7A8: @ 0x080EF7A8 - push {r4, lr} - ldr r4, _080EF7C8 - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - adds r1, #1 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl VarSet - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EF7C8: .4byte 0x000040EB - thumb_func_end sub_080EF7A8 - - thumb_func_start sub_080EF7CC -sub_080EF7CC: @ 0x080EF7CC - push {r4, lr} - ldr r4, _080EF7EC - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - adds r1, #1 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl VarSet - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EF7EC: .4byte 0x000040E7 - thumb_func_end sub_080EF7CC - - thumb_func_start sub_080EF7F0 -sub_080EF7F0: @ 0x080EF7F0 - push {r4, lr} - ldr r4, _080EF810 - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - adds r1, #1 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl VarSet - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EF810: .4byte 0x000040E8 - thumb_func_end sub_080EF7F0 - - thumb_func_start sub_080EF814 -sub_080EF814: @ 0x080EF814 - push {r4, lr} - ldr r4, _080EF834 - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - adds r1, #1 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl VarSet - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EF834: .4byte 0x000040E9 - thumb_func_end sub_080EF814 - - thumb_func_start sub_080EF838 -sub_080EF838: @ 0x080EF838 - push {r4, lr} - ldr r4, _080EF85C - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - ldr r0, _080EF860 - ldrh r0, [r0] - adds r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl VarSet - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EF85C: .4byte 0x000040EA -_080EF860: .4byte gUnknown_2037284 - thumb_func_end sub_080EF838 - - thumb_func_start sub_080EF864 -sub_080EF864: @ 0x080EF864 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r5, _080EF888 - adds r0, r5, #0 - bl VarGet - adds r4, r4, r0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl VarSet - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080EF888: .4byte 0x000040F1 - thumb_func_end sub_080EF864 - - thumb_func_start sub_080EF88C -sub_080EF88C: @ 0x080EF88C - push {r4, r5, r6, r7, lr} - ldr r0, _080EF918 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080EF910 - ldr r6, _080EF91C - ldr r0, [r6] - ldr r7, _080EF920 - adds r0, r0, r7 - bl sub_080EF934 - ldr r5, _080EF924 - strb r0, [r5] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080EF910 - ldr r0, _080EF928 - bl TV_BernoulliTrial - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080EF910 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - ands r0, r1 - adds r4, r0, #1 - adds r0, r4, #0 - bl sub_080EFBE8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080EF910 - ldr r1, [r6] - movs r0, #0 - ldrsb r0, [r5, r0] - lsls r0, r0, #2 - adds r1, r1, r0 - adds r1, r1, r7 - strb r4, [r1] - ldr r2, [r6] - movs r0, #0 - ldrsb r0, [r5, r0] - lsls r0, r0, #2 - adds r0, r2, r0 - ldr r1, _080EF92C - adds r0, r0, r1 - movs r1, #4 - strh r1, [r0] - movs r0, #0 - ldrsb r0, [r5, r0] - lsls r0, r0, #2 - adds r2, r2, r0 - ldr r0, _080EF930 - adds r2, r2, r0 - movs r0, #1 - strb r0, [r2] -_080EF910: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080EF918: .4byte 0x00000864 -_080EF91C: .4byte gUnknown_3005AEC -_080EF920: .4byte 0x00002B50 -_080EF924: .4byte gUnknown_3005E20 -_080EF928: .4byte 0x0000028F -_080EF92C: .4byte 0x00002B52 -_080EF930: .4byte 0x00002B51 - thumb_func_end sub_080EF88C - - thumb_func_start sub_080EF934 -sub_080EF934: @ 0x080EF934 - push {lr} - adds r2, r0, #0 - movs r1, #0 -_080EF93A: - lsls r0, r1, #0x18 - asrs r1, r0, #0x18 - lsls r0, r1, #2 - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _080EF94C - adds r0, r1, #0 - b _080EF95C -_080EF94C: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0xf - ble _080EF93A - movs r0, #1 - rsbs r0, r0, #0 -_080EF95C: - pop {r1} - bx r1 - thumb_func_end sub_080EF934 - - thumb_func_start ClearPokemonNews -ClearPokemonNews: @ 0x080EF960 - push {r4, lr} - movs r4, #0 -_080EF964: - adds r0, r4, #0 - bl ClearPokemonNewsI - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xf - bls _080EF964 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ClearPokemonNews - - thumb_func_start ClearPokemonNewsI -ClearPokemonNewsI: @ 0x080EF97C - push {r4, lr} - lsls r0, r0, #0x18 - ldr r3, _080EF9AC - ldr r1, [r3] - lsrs r0, r0, #0x16 - adds r1, r1, r0 - ldr r2, _080EF9B0 - adds r1, r1, r2 - movs r2, #0 - strb r2, [r1] - ldr r1, [r3] - adds r1, r1, r0 - ldr r4, _080EF9B4 - adds r1, r1, r4 - strb r2, [r1] - ldr r1, [r3] - adds r1, r1, r0 - ldr r0, _080EF9B8 - adds r1, r1, r0 - strh r2, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EF9AC: .4byte gUnknown_3005AEC -_080EF9B0: .4byte 0x00002B50 -_080EF9B4: .4byte 0x00002B51 -_080EF9B8: .4byte 0x00002B52 - thumb_func_end ClearPokemonNewsI - - thumb_func_start sub_080EF9BC -sub_080EF9BC: @ 0x080EF9BC - push {r4, r5, r6, r7, lr} - movs r2, #0 - ldr r6, _080EF9DC -_080EF9C2: - ldr r0, _080EF9DC - ldr r0, [r0] - lsls r1, r2, #2 - adds r0, r0, r1 - ldr r3, _080EF9E0 - adds r0, r0, r3 - ldrb r0, [r0] - adds r5, r2, #1 - cmp r0, #0 - bne _080EFA16 - lsls r0, r5, #0x18 - b _080EFA10 - .align 2, 0 -_080EF9DC: .4byte gUnknown_3005AEC -_080EF9E0: .4byte 0x00002B50 -_080EF9E4: - ldr r3, [r6] - lsls r4, r2, #2 - adds r0, r3, r4 - ldr r7, _080EFA08 - adds r0, r0, r7 - ldrb r0, [r0] - cmp r0, #0 - beq _080EFA0C - adds r0, r3, r7 - adds r1, r0, r1 - adds r0, r0, r4 - ldr r0, [r0] - str r0, [r1] - adds r0, r2, #0 - bl ClearPokemonNewsI - b _080EFA16 - .align 2, 0 -_080EFA08: .4byte 0x00002B50 -_080EFA0C: - adds r0, r2, #1 - lsls r0, r0, #0x18 -_080EFA10: - lsrs r2, r0, #0x18 - cmp r2, #0xf - bls _080EF9E4 -_080EFA16: - lsls r0, r5, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xe - bls _080EF9C2 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_080EF9BC - - thumb_func_start FindAnyTVNewsOnTheAir -FindAnyTVNewsOnTheAir: @ 0x080EFA24 - push {r4, lr} - movs r2, #0 - ldr r0, _080EFA54 - ldr r3, [r0] -_080EFA2C: - lsls r0, r2, #2 - adds r1, r3, r0 - ldr r4, _080EFA58 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, #0 - beq _080EFA5C - adds r4, #1 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, #1 - bne _080EFA5C - adds r4, #1 - adds r0, r1, r4 - ldrh r0, [r0] - cmp r0, #2 - bhi _080EFA5C - adds r0, r2, #0 - b _080EFA68 - .align 2, 0 -_080EFA54: .4byte gUnknown_3005AEC -_080EFA58: .4byte 0x00002B50 -_080EFA5C: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xf - bls _080EFA2C - movs r0, #0xff -_080EFA68: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end FindAnyTVNewsOnTheAir - - thumb_func_start DoPokeNews -DoPokeNews: @ 0x080EFA70 - push {r4, r5, lr} - bl FindAnyTVNewsOnTheAir - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xff - bne _080EFA88 - ldr r1, _080EFA84 - movs r0, #0 - b _080EFB1E - .align 2, 0 -_080EFA84: .4byte gUnknown_2037290 -_080EFA88: - ldr r5, _080EFAB8 - ldr r0, [r5] - lsls r4, r2, #2 - adds r1, r0, r4 - ldr r0, _080EFABC - adds r2, r1, r0 - ldrh r0, [r2] - cmp r0, #0 - bne _080EFAEC - ldr r2, _080EFAC0 - adds r1, r1, r2 - movs r0, #2 - strb r0, [r1] - ldr r0, _080EFAC4 - ldrb r0, [r0, #2] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0x13 - bgt _080EFACC - ldr r1, _080EFAC8 - ldr r0, [r5] - adds r0, r0, r4 - subs r2, #1 - b _080EFAD4 - .align 2, 0 -_080EFAB8: .4byte gUnknown_3005AEC -_080EFABC: .4byte 0x00002B52 -_080EFAC0: .4byte 0x00002B51 -_080EFAC4: .4byte gUnknown_3005A50 -_080EFAC8: .4byte gUnknown_8568BC8 -_080EFACC: - ldr r1, _080EFAE4 - ldr r0, [r5] - adds r0, r0, r4 - ldr r2, _080EFAE8 -_080EFAD4: - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl ShowFieldMessage - b _080EFB1A - .align 2, 0 -_080EFAE4: .4byte gUnknown_8568BDC -_080EFAE8: .4byte 0x00002B50 -_080EFAEC: - ldrh r1, [r2] - ldr r0, _080EFB28 - movs r2, #0 - movs r3, #1 - bl sub_080089D8 - ldr r0, [r5] - adds r0, r0, r4 - ldr r1, _080EFB2C - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - ldr r1, _080EFB30 - ldr r0, [r5] - adds r0, r0, r4 - ldr r2, _080EFB34 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl ShowFieldMessage -_080EFB1A: - ldr r1, _080EFB38 - movs r0, #1 -_080EFB1E: - strh r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080EFB28: .4byte gUnknown_2021C40 -_080EFB2C: .4byte 0x00002B51 -_080EFB30: .4byte gUnknown_8568BB4 -_080EFB34: .4byte 0x00002B50 -_080EFB38: .4byte gUnknown_2037290 - thumb_func_end DoPokeNews - - thumb_func_start GetPriceReduction -GetPriceReduction: @ 0x080EFB3C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - bne _080EFB4C - b _080EFB8E -_080EFB48: - movs r0, #1 - b _080EFB90 -_080EFB4C: - movs r2, #0 - ldr r4, _080EFB78 -_080EFB50: - ldr r1, [r4] - lsls r0, r2, #2 - adds r1, r1, r0 - ldr r5, _080EFB7C - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, r3 - bne _080EFB84 - ldr r2, _080EFB80 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #2 - bne _080EFB8E - adds r0, r3, #0 - bl IsPriceDiscounted - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080EFB48 - b _080EFB8E - .align 2, 0 -_080EFB78: .4byte gUnknown_3005AEC -_080EFB7C: .4byte 0x00002B50 -_080EFB80: .4byte 0x00002B51 -_080EFB84: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xf - bls _080EFB50 -_080EFB8E: - movs r0, #0 -_080EFB90: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetPriceReduction - - thumb_func_start IsPriceDiscounted -IsPriceDiscounted: @ 0x080EFB98 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080EFBAA - cmp r0, #3 - beq _080EFBCC -_080EFBA6: - movs r0, #1 - b _080EFBDA -_080EFBAA: - ldr r0, _080EFBC4 - ldr r0, [r0] - ldrh r1, [r0, #4] - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - bne _080EFBD8 - ldr r0, _080EFBC8 - ldrh r0, [r0] - cmp r0, #0x19 - beq _080EFBA6 - b _080EFBD8 - .align 2, 0 -_080EFBC4: .4byte gUnknown_3005AEC -_080EFBC8: .4byte gUnknown_2037292 -_080EFBCC: - ldr r0, _080EFBE0 - ldr r0, [r0] - ldrh r1, [r0, #4] - ldr r0, _080EFBE4 - cmp r1, r0 - beq _080EFBA6 -_080EFBD8: - movs r0, #0 -_080EFBDA: - pop {r1} - bx r1 - .align 2, 0 -_080EFBE0: .4byte gUnknown_3005AEC -_080EFBE4: .4byte 0x0000150D - thumb_func_end IsPriceDiscounted - - thumb_func_start sub_080EFBE8 -sub_080EFBE8: @ 0x080EFBE8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _080EFBF6 -_080EFBF2: - movs r0, #1 - b _080EFC16 -_080EFBF6: - movs r1, #0 - ldr r0, _080EFC1C - ldr r3, [r0] - ldr r4, _080EFC20 -_080EFBFE: - lsls r0, r1, #2 - adds r0, r3, r0 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, r2 - beq _080EFBF2 - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xf - bls _080EFBFE - movs r0, #0 -_080EFC16: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080EFC1C: .4byte gUnknown_3005AEC -_080EFC20: .4byte 0x00002B50 - thumb_func_end sub_080EFBE8 - - thumb_func_start sub_080EFC24 -sub_080EFC24: @ 0x080EFC24 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - movs r6, #0 - ldr r0, _080EFC5C - mov r8, r0 -_080EFC34: - mov r1, r8 - ldr r0, [r1] - lsls r1, r6, #2 - adds r2, r0, r1 - ldr r3, _080EFC60 - adds r0, r2, r3 - ldrb r0, [r0] - adds r4, r1, #0 - cmp r0, #0 - beq _080EFC9A - ldr r1, _080EFC64 - adds r0, r2, r1 - ldrh r0, [r0] - cmp r0, r7 - bhs _080EFC68 - adds r0, r6, #0 - bl ClearPokemonNewsI - b _080EFC9A - .align 2, 0 -_080EFC5C: .4byte gUnknown_3005AEC -_080EFC60: .4byte 0x00002B50 -_080EFC64: .4byte 0x00002B52 -_080EFC68: - ldr r5, _080EFCB4 - adds r0, r2, r5 - ldrb r0, [r0] - cmp r0, #0 - bne _080EFC8A - ldr r0, _080EFCB8 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #1 - bne _080EFC8A - mov r2, r8 - ldr r0, [r2] - adds r0, r0, r4 - adds r0, r0, r5 - strb r1, [r0] -_080EFC8A: - mov r3, r8 - ldr r1, [r3] - adds r1, r1, r4 - ldr r0, _080EFCBC - adds r1, r1, r0 - ldrh r0, [r1] - subs r0, r0, r7 - strh r0, [r1] -_080EFC9A: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0xf - bls _080EFC34 - bl sub_080EF9BC - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080EFCB4: .4byte 0x00002B51 -_080EFCB8: .4byte 0x00000864 -_080EFCBC: .4byte 0x00002B52 - thumb_func_end sub_080EFC24 - - thumb_func_start CopyContestRankToStringVar -CopyContestRankToStringVar: @ 0x080EFCC0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r2, r1, #0 - cmp r1, #1 - beq _080EFD00 - cmp r1, #1 - bgt _080EFCDA - cmp r1, #0 - beq _080EFCE4 - b _080EFD48 -_080EFCDA: - cmp r2, #2 - beq _080EFD1C - cmp r2, #3 - beq _080EFD38 - b _080EFD48 -_080EFCE4: - ldr r1, _080EFCF8 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _080EFCFC - ldr r1, [r1, #0x14] - bl StringCopy - b _080EFD48 - .align 2, 0 -_080EFCF8: .4byte gUnknown_8568BF0 -_080EFCFC: .4byte gUnknown_85645A0 -_080EFD00: - ldr r1, _080EFD14 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _080EFD18 - ldr r1, [r1, #0x18] - bl StringCopy - b _080EFD48 - .align 2, 0 -_080EFD14: .4byte gUnknown_8568BF0 -_080EFD18: .4byte gUnknown_85645A0 -_080EFD1C: - ldr r1, _080EFD30 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _080EFD34 - ldr r1, [r1, #0x1c] - bl StringCopy - b _080EFD48 - .align 2, 0 -_080EFD30: .4byte gUnknown_8568BF0 -_080EFD34: .4byte gUnknown_85645A0 -_080EFD38: - ldr r1, _080EFD4C - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _080EFD50 - ldr r1, [r1, #0x20] - bl StringCopy -_080EFD48: - pop {r0} - bx r0 - .align 2, 0 -_080EFD4C: .4byte gUnknown_8568BF0 -_080EFD50: .4byte gUnknown_85645A0 - thumb_func_end CopyContestRankToStringVar - - thumb_func_start CopyContestCategoryToStringVar -CopyContestCategoryToStringVar: @ 0x080EFD54 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r0, r1, #0x18 - cmp r0, #4 - bhi _080EFE04 - lsls r0, r0, #2 - ldr r1, _080EFD6C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EFD6C: .4byte _080EFD70 -_080EFD70: @ jump table - .4byte _080EFD84 @ case 0 - .4byte _080EFDA0 @ case 1 - .4byte _080EFDBC @ case 2 - .4byte _080EFDD8 @ case 3 - .4byte _080EFDF4 @ case 4 -_080EFD84: - ldr r1, _080EFD98 - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _080EFD9C - ldr r1, [r1] - bl StringCopy - b _080EFE04 - .align 2, 0 -_080EFD98: .4byte gUnknown_8568BF0 -_080EFD9C: .4byte gUnknown_85645A0 -_080EFDA0: - ldr r1, _080EFDB4 - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _080EFDB8 - ldr r1, [r1, #4] - bl StringCopy - b _080EFE04 - .align 2, 0 -_080EFDB4: .4byte gUnknown_8568BF0 -_080EFDB8: .4byte gUnknown_85645A0 -_080EFDBC: - ldr r1, _080EFDD0 - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _080EFDD4 - ldr r1, [r1, #8] - bl StringCopy - b _080EFE04 - .align 2, 0 -_080EFDD0: .4byte gUnknown_8568BF0 -_080EFDD4: .4byte gUnknown_85645A0 -_080EFDD8: - ldr r1, _080EFDEC - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _080EFDF0 - ldr r1, [r1, #0xc] - bl StringCopy - b _080EFE04 - .align 2, 0 -_080EFDEC: .4byte gUnknown_8568BF0 -_080EFDF0: .4byte gUnknown_85645A0 -_080EFDF4: - ldr r1, _080EFE08 - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _080EFE0C - ldr r1, [r1, #0x10] - bl StringCopy -_080EFE04: - pop {r0} - bx r0 - .align 2, 0 -_080EFE08: .4byte gUnknown_8568BF0 -_080EFE0C: .4byte gUnknown_85645A0 - thumb_func_end CopyContestCategoryToStringVar - - thumb_func_start SetContestCategoryStringVarForInterview -SetContestCategoryStringVarForInterview: @ 0x080EFE10 - push {lr} - ldr r2, _080EFE38 - ldr r0, _080EFE3C - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080EFE40 - adds r0, r0, r1 - ldr r1, [r2] - adds r1, r1, r0 - ldrb r1, [r1, #0x13] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - movs r0, #1 - bl CopyContestCategoryToStringVar - pop {r0} - bx r0 - .align 2, 0 -_080EFE38: .4byte gUnknown_3005AEC -_080EFE3C: .4byte gUnknown_2037280 -_080EFE40: .4byte 0x000027CC - thumb_func_end SetContestCategoryStringVarForInterview - - thumb_func_start TV_PrintIntToStringVar -TV_PrintIntToStringVar: @ 0x080EFE44 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - bl CountDigits - adds r3, r0, #0 - ldr r0, _080EFE70 - lsls r4, r4, #2 - adds r4, r4, r0 - ldr r0, [r4] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r1, r5, #0 - movs r2, #0 - bl sub_080089D8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080EFE70: .4byte gUnknown_8568BF0 - thumb_func_end TV_PrintIntToStringVar - - thumb_func_start CountDigits -CountDigits: @ 0x080EFE74 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xa - bl __divsi3 - cmp r0, #0 - beq _080EFF00 - adds r0, r4, #0 - movs r1, #0x64 - bl __divsi3 - cmp r0, #0 - bne _080EFE92 - movs r0, #2 - b _080EFF0A -_080EFE92: - movs r1, #0xfa - lsls r1, r1, #2 - adds r0, r4, #0 - bl __divsi3 - cmp r0, #0 - bne _080EFEA4 - movs r0, #3 - b _080EFF0A -_080EFEA4: - ldr r1, _080EFEB4 - adds r0, r4, #0 - bl __divsi3 - cmp r0, #0 - bne _080EFEB8 - movs r0, #4 - b _080EFF0A - .align 2, 0 -_080EFEB4: .4byte 0x00002710 -_080EFEB8: - ldr r1, _080EFEC8 - adds r0, r4, #0 - bl __divsi3 - cmp r0, #0 - bne _080EFECC - movs r0, #5 - b _080EFF0A - .align 2, 0 -_080EFEC8: .4byte 0x000186A0 -_080EFECC: - ldr r1, _080EFEDC - adds r0, r4, #0 - bl __divsi3 - cmp r0, #0 - bne _080EFEE0 - movs r0, #6 - b _080EFF0A - .align 2, 0 -_080EFEDC: .4byte 0x000F4240 -_080EFEE0: - ldr r1, _080EFEF0 - adds r0, r4, #0 - bl __divsi3 - cmp r0, #0 - bne _080EFEF4 - movs r0, #7 - b _080EFF0A - .align 2, 0 -_080EFEF0: .4byte 0x00989680 -_080EFEF4: - ldr r1, _080EFF04 - adds r0, r4, #0 - bl __divsi3 - cmp r0, #0 - beq _080EFF08 -_080EFF00: - movs r0, #1 - b _080EFF0A - .align 2, 0 -_080EFF04: .4byte 0x05F5E100 -_080EFF08: - movs r0, #8 -_080EFF0A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end CountDigits - - thumb_func_start sub_080EFF10 -sub_080EFF10: @ 0x080EFF10 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r7, #0 - movs r5, #0 -_080EFF22: - lsls r4, r5, #1 - adds r0, r6, #6 - adds r1, r0, r4 - ldrh r0, [r1] - cmp r0, #0 - beq _080EFF42 - bl sub_080D6CD4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r6, #0 - adds r1, #0xc - adds r1, r1, r4 - ldrh r1, [r1] - muls r0, r1, r0 - adds r7, r7, r0 -_080EFF42: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #2 - bls _080EFF22 - ldrb r0, [r6, #2] - cmp r0, #1 - bne _080EFF5C - asrs r1, r7, #1 - mov r0, r8 - bl TV_PrintIntToStringVar - b _080EFF64 -_080EFF5C: - mov r0, r8 - adds r1, r7, #0 - bl TV_PrintIntToStringVar -_080EFF64: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080EFF10 - - thumb_func_start HasMixableShowAlreadyBeenSpawnedWithPlayerID -HasMixableShowAlreadyBeenSpawnedWithPlayerID: @ 0x080EFF70 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sb, r1 - ldr r5, _080EFFE0 - ldr r0, [r5] - ldr r4, _080EFFE4 - adds r0, r0, r4 - mov r8, r0 - bl GetPlayerIDAsU32 - adds r7, r0, #0 - movs r6, #5 -_080EFF98: - lsls r0, r6, #3 - adds r0, r0, r6 - lsls r0, r0, #2 - mov r2, r8 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, sl - bne _080EFFE8 - movs r3, #0xff - adds r0, r7, #0 - ands r0, r3 - adds r2, r1, #0 - adds r2, #0x22 - ldrb r2, [r2] - cmp r0, r2 - bne _080EFFE8 - lsrs r0, r7, #8 - ands r0, r3 - adds r1, #0x23 - ldrb r1, [r1] - cmp r0, r1 - bne _080EFFE8 - mov r0, sb - cmp r0, #1 - bne _080EFFDC - ldr r0, [r5] - adds r0, r0, r4 - adds r1, r6, #0 - bl DeleteTVShowInArrayByIdx - ldr r0, [r5] - adds r0, r0, r4 - bl sub_080F0428 -_080EFFDC: - movs r0, #1 - b _080EFFF4 - .align 2, 0 -_080EFFE0: .4byte gUnknown_3005AEC -_080EFFE4: .4byte 0x000027CC -_080EFFE8: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0x17 - bls _080EFF98 - movs r0, #0 -_080EFFF4: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end HasMixableShowAlreadyBeenSpawnedWithPlayerID - - thumb_func_start TV_SortPurchasesByQuantity -TV_SortPurchasesByQuantity: @ 0x080F0004 - push {r4, r5, r6, r7, lr} - movs r2, #0 -_080F0008: - adds r1, r2, #1 - lsls r0, r1, #0x18 - lsrs r5, r0, #0x18 - adds r7, r1, #0 - cmp r5, #2 - bhi _080F0040 - ldr r6, _080F0050 - lsls r0, r2, #2 - adds r4, r0, r6 -_080F001A: - lsls r0, r5, #2 - adds r3, r0, r6 - ldrh r0, [r4, #2] - ldrh r1, [r3, #2] - cmp r0, r1 - bhs _080F0036 - ldrh r1, [r4] - adds r2, r0, #0 - ldrh r0, [r3] - strh r0, [r4] - ldrh r0, [r3, #2] - strh r0, [r4, #2] - strh r1, [r3] - strh r2, [r3, #2] -_080F0036: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #2 - bls _080F001A -_080F0040: - lsls r0, r7, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #1 - bls _080F0008 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F0050: .4byte gUnknown_2039C20 - thumb_func_end TV_SortPurchasesByQuantity - - thumb_func_start FindActiveBroadcastByShowType_SetScriptResult -FindActiveBroadcastByShowType_SetScriptResult: @ 0x080F0054 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r1, #0 - ldr r5, _080F0084 - ldr r4, _080F0088 -_080F0060: - ldr r3, [r5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, r3, r0 - adds r0, r2, r4 - ldrb r0, [r0] - cmp r0, r6 - bne _080F00A8 - ldr r6, _080F008C - adds r0, r2, r6 - ldrb r2, [r0] - cmp r2, #1 - bne _080F0094 - ldr r0, _080F0090 - strh r2, [r0] - b _080F00B6 - .align 2, 0 -_080F0084: .4byte gUnknown_3005AEC -_080F0088: .4byte 0x000027CC -_080F008C: .4byte 0x000027CD -_080F0090: .4byte gUnknown_2037290 -_080F0094: - adds r0, r3, r4 - bl DeleteTVShowInArrayByIdx - ldr r0, [r5] - adds r0, r0, r4 - bl sub_080F0428 - bl sub_080F0578 - b _080F00B6 -_080F00A8: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #4 - bls _080F0060 - bl sub_080F0578 -_080F00B6: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end FindActiveBroadcastByShowType_SetScriptResult - - thumb_func_start sub_080F00BC -sub_080F00BC: @ 0x080F00BC - push {lr} - ldr r1, _080F00D8 - movs r0, #0 - strh r0, [r1] - ldr r0, _080F00DC - ldrh r0, [r0] - subs r0, #1 - cmp r0, #0xa - bhi _080F014A - lsls r0, r0, #2 - ldr r1, _080F00E0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F00D8: .4byte gUnknown_2037290 -_080F00DC: .4byte gUnknown_2037282 -_080F00E0: .4byte _080F00E4 -_080F00E4: @ jump table - .4byte _080F0110 @ case 0 - .4byte _080F0116 @ case 1 - .4byte _080F011C @ case 2 - .4byte _080F0122 @ case 3 - .4byte _080F0128 @ case 4 - .4byte _080F012E @ case 5 - .4byte _080F0134 @ case 6 - .4byte _080F013A @ case 7 - .4byte _080F0140 @ case 8 - .4byte _080F014A @ case 9 - .4byte _080F0146 @ case 10 -_080F0110: - bl InterviewBefore_FanClubLetter - b _080F014A -_080F0116: - bl InterviewBefore_RecentHappenings - b _080F014A -_080F011C: - bl InterviewBefore_PkmnFanClubOpinions - b _080F014A -_080F0122: - bl sub_080F02A0 - b _080F014A -_080F0128: - bl InterviewBefore_NameRater - b _080F014A -_080F012E: - bl InterviewBefore_BravoTrainerPkmnProfile - b _080F014A -_080F0134: - bl InterviewBefore_BravoTrainerBTProfile - b _080F014A -_080F013A: - bl InterviewBefore_ContestLiveUpdates - b _080F014A -_080F0140: - bl InterviewBefore_3CheersForPokeblocks - b _080F014A -_080F0146: - bl InterviewBefore_FanClubSpecial -_080F014A: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080F00BC - - thumb_func_start InterviewBefore_FanClubLetter -InterviewBefore_FanClubLetter: @ 0x080F0150 - push {r4, lr} - movs r0, #1 - bl FindActiveBroadcastByShowType_SetScriptResult - ldr r0, _080F01AC - ldrh r0, [r0] - cmp r0, #0 - bne _080F01A6 - ldr r4, _080F01B0 - bl GetLeadMonIndex - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x64 - muls r0, r1, r0 - ldr r1, _080F01B4 - adds r0, r0, r1 - movs r1, #0xb - movs r2, #0 - bl GetMonData - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - ldr r0, _080F01B8 - adds r1, r1, r0 - adds r0, r4, #0 - bl StringCopy - ldr r2, _080F01BC - ldr r0, _080F01C0 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, [r2] - adds r0, r0, r1 - ldr r1, _080F01C4 - adds r0, r0, r1 - movs r1, #6 - bl InitializeEasyChatWordArray -_080F01A6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F01AC: .4byte gUnknown_2037290 -_080F01B0: .4byte gUnknown_2021C40 -_080F01B4: .4byte gUnknown_2024190 -_080F01B8: .4byte gUnknown_82EA31C -_080F01BC: .4byte gUnknown_3005AEC -_080F01C0: .4byte gUnknown_3005E20 -_080F01C4: .4byte 0x000027D0 - thumb_func_end InterviewBefore_FanClubLetter - - thumb_func_start InterviewBefore_RecentHappenings -InterviewBefore_RecentHappenings: @ 0x080F01C8 - push {lr} - movs r0, #2 - bl FindActiveBroadcastByShowType_SetScriptResult - ldr r0, _080F01F8 - ldrh r0, [r0] - cmp r0, #0 - bne _080F01F4 - ldr r2, _080F01FC - ldr r0, _080F0200 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, [r2] - adds r0, r0, r1 - ldr r1, _080F0204 - adds r0, r0, r1 - movs r1, #6 - bl InitializeEasyChatWordArray -_080F01F4: - pop {r0} - bx r0 - .align 2, 0 -_080F01F8: .4byte gUnknown_2037290 -_080F01FC: .4byte gUnknown_3005AEC -_080F0200: .4byte gUnknown_3005E20 -_080F0204: .4byte 0x000027D0 - thumb_func_end InterviewBefore_RecentHappenings - - thumb_func_start InterviewBefore_PkmnFanClubOpinions -InterviewBefore_PkmnFanClubOpinions: @ 0x080F0208 - push {r4, r5, r6, lr} - movs r0, #3 - bl FindActiveBroadcastByShowType_SetScriptResult - ldr r0, _080F0280 - ldrh r0, [r0] - cmp r0, #0 - bne _080F027A - ldr r6, _080F0284 - bl GetLeadMonIndex - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r5, #0x64 - muls r0, r5, r0 - ldr r4, _080F0288 - adds r0, r0, r4 - movs r1, #0xb - movs r2, #0 - bl GetMonData - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - ldr r0, _080F028C - adds r1, r1, r0 - adds r0, r6, #0 - bl StringCopy - bl GetLeadMonIndex - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - muls r0, r5, r0 - adds r0, r0, r4 - ldr r4, _080F0290 - movs r1, #2 - adds r2, r4, #0 - bl GetMonData - adds r0, r4, #0 - bl StringGetEnd10 - ldr r2, _080F0294 - ldr r0, _080F0298 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, [r2] - adds r0, r0, r1 - ldr r1, _080F029C - adds r0, r0, r1 - movs r1, #2 - bl InitializeEasyChatWordArray -_080F027A: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080F0280: .4byte gUnknown_2037290 -_080F0284: .4byte gUnknown_2021C40 -_080F0288: .4byte gUnknown_2024190 -_080F028C: .4byte gUnknown_82EA31C -_080F0290: .4byte gUnknown_2021C54 -_080F0294: .4byte gUnknown_3005AEC -_080F0298: .4byte gUnknown_3005E20 -_080F029C: .4byte 0x000027E8 - thumb_func_end InterviewBefore_PkmnFanClubOpinions - - thumb_func_start sub_080F02A0 -sub_080F02A0: @ 0x080F02A0 - ldr r1, _080F02A8 - movs r0, #1 - strh r0, [r1] - bx lr - .align 2, 0 -_080F02A8: .4byte gUnknown_2037290 - thumb_func_end sub_080F02A0 - - thumb_func_start InterviewBefore_NameRater -InterviewBefore_NameRater: @ 0x080F02AC - push {lr} - movs r0, #5 - bl FindActiveBroadcastByShowType_SetScriptResult - pop {r0} - bx r0 - thumb_func_end InterviewBefore_NameRater - - thumb_func_start InterviewBefore_BravoTrainerPkmnProfile -InterviewBefore_BravoTrainerPkmnProfile: @ 0x080F02B8 - push {lr} - movs r0, #6 - bl FindActiveBroadcastByShowType_SetScriptResult - ldr r0, _080F02E8 - ldrh r0, [r0] - cmp r0, #0 - bne _080F02E4 - ldr r2, _080F02EC - ldr r0, _080F02F0 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, [r2] - adds r0, r0, r1 - ldr r1, _080F02F4 - adds r0, r0, r1 - movs r1, #2 - bl InitializeEasyChatWordArray -_080F02E4: - pop {r0} - bx r0 - .align 2, 0 -_080F02E8: .4byte gUnknown_2037290 -_080F02EC: .4byte gUnknown_3005AEC -_080F02F0: .4byte gUnknown_3005E20 -_080F02F4: .4byte 0x000027D0 - thumb_func_end InterviewBefore_BravoTrainerPkmnProfile - - thumb_func_start InterviewBefore_ContestLiveUpdates -InterviewBefore_ContestLiveUpdates: @ 0x080F02F8 - push {lr} - movs r0, #8 - bl FindActiveBroadcastByShowType_SetScriptResult - pop {r0} - bx r0 - thumb_func_end InterviewBefore_ContestLiveUpdates - - thumb_func_start InterviewBefore_3CheersForPokeblocks -InterviewBefore_3CheersForPokeblocks: @ 0x080F0304 - push {lr} - movs r0, #9 - bl FindActiveBroadcastByShowType_SetScriptResult - pop {r0} - bx r0 - thumb_func_end InterviewBefore_3CheersForPokeblocks - - thumb_func_start InterviewBefore_BravoTrainerBTProfile -InterviewBefore_BravoTrainerBTProfile: @ 0x080F0310 - push {lr} - movs r0, #7 - bl FindActiveBroadcastByShowType_SetScriptResult - ldr r0, _080F0340 - ldrh r0, [r0] - cmp r0, #0 - bne _080F033C - ldr r2, _080F0344 - ldr r0, _080F0348 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, [r2] - adds r0, r0, r1 - ldr r1, _080F034C - adds r0, r0, r1 - movs r1, #1 - bl InitializeEasyChatWordArray -_080F033C: - pop {r0} - bx r0 - .align 2, 0 -_080F0340: .4byte gUnknown_2037290 -_080F0344: .4byte gUnknown_3005AEC -_080F0348: .4byte gUnknown_3005E20 -_080F034C: .4byte 0x000027E4 - thumb_func_end InterviewBefore_BravoTrainerBTProfile - - thumb_func_start InterviewBefore_FanClubSpecial -InterviewBefore_FanClubSpecial: @ 0x080F0350 - push {lr} - movs r0, #0xb - bl FindActiveBroadcastByShowType_SetScriptResult - ldr r0, _080F0380 - ldrh r0, [r0] - cmp r0, #0 - bne _080F037C - ldr r2, _080F0384 - ldr r0, _080F0388 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, [r2] - adds r0, r0, r1 - ldr r1, _080F038C - adds r0, r0, r1 - movs r1, #1 - bl InitializeEasyChatWordArray -_080F037C: - pop {r0} - bx r0 - .align 2, 0 -_080F0380: .4byte gUnknown_2037290 -_080F0384: .4byte gUnknown_3005AEC -_080F0388: .4byte gUnknown_3005E20 -_080F038C: .4byte 0x000027E0 - thumb_func_end InterviewBefore_FanClubSpecial - - thumb_func_start sub_080F0390 -sub_080F0390: @ 0x080F0390 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x64 - adds r4, r0, #0 - muls r4, r1, r4 - ldr r0, _080F03D0 - adds r4, r4, r0 - ldr r5, _080F03D4 - adds r0, r4, #0 - movs r1, #2 - adds r2, r5, #0 - bl GetMonData - adds r0, r4, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - adds r1, r0, #0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r1, _080F03D8 - adds r0, r0, r1 - adds r1, r5, #0 - bl StringCompare - cmp r0, #0 - beq _080F03DC - movs r0, #1 - b _080F03DE - .align 2, 0 -_080F03D0: .4byte gUnknown_2024190 -_080F03D4: .4byte gUnknown_2021C40 -_080F03D8: .4byte gUnknown_82EA31C -_080F03DC: - movs r0, #0 -_080F03DE: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_080F0390 - - thumb_func_start sub_080F03E4 -sub_080F03E4: @ 0x080F03E4 - push {lr} - bl GetLeadMonIndex - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_080F0390 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080F03E4 - - thumb_func_start DeleteTVShowInArrayByIdx -DeleteTVShowInArrayByIdx: @ 0x080F03FC - push {lr} - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r1, #3 - adds r2, r2, r1 - lsls r2, r2, #2 - adds r2, r2, r0 - movs r0, #0 - strb r0, [r2] - strb r0, [r2, #1] - movs r1, #0 - adds r2, #2 - movs r3, #0 -_080F0416: - adds r0, r2, r1 - strb r3, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x21 - bls _080F0416 - pop {r0} - bx r0 - thumb_func_end DeleteTVShowInArrayByIdx - - thumb_func_start sub_080F0428 -sub_080F0428: @ 0x080F0428 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - movs r5, #0 -_080F042E: - lsls r0, r5, #3 - adds r0, r0, r5 - lsls r1, r0, #2 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, #0 - bne _080F0472 - adds r0, r5, #1 - b _080F046A -_080F0440: - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r3, r0, r4 - ldrb r0, [r3] - cmp r0, #0 - beq _080F0468 - adds r1, 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 DeleteTVShowInArrayByIdx - b _080F0472 -_080F0468: - adds r0, r2, #1 -_080F046A: - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #4 - bls _080F0440 -_080F0472: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #3 - bls _080F042E - movs r5, #5 -_080F047E: - lsls r0, r5, #3 - adds r0, r0, r5 - lsls r1, r0, #2 - adds r0, r1, r4 - ldrb r0, [r0] - adds r5, #1 - cmp r0, #0 - bne _080F04C4 - lsls r0, r5, #0x18 - b _080F04BE -_080F0492: - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r3, r0, r4 - ldrb r0, [r3] - cmp r0, #0 - beq _080F04BA - adds r1, 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 DeleteTVShowInArrayByIdx - b _080F04C4 -_080F04BA: - adds r0, r2, #1 - lsls r0, r0, #0x18 -_080F04BE: - lsrs r2, r0, #0x18 - cmp r2, #0x17 - bls _080F0492 -_080F04C4: - lsls r0, r5, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0x17 - bls _080F047E - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080F0428 - - thumb_func_start TV_GetSomeOtherSpeciesAlreadySeenByPlayer_AndPrintName -TV_GetSomeOtherSpeciesAlreadySeenByPlayer_AndPrintName: @ 0x080F04D4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl TV_GetSomeOtherSpeciesAlreadySeenByPlayer - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - ldr r0, _080F050C - lsls r4, r4, #2 - adds r4, r4, r0 - ldr r0, [r4] - lsls r1, r5, #1 - adds r1, r1, r5 - lsls r1, r1, #1 - ldr r2, _080F0510 - adds r1, r1, r2 - bl StringCopy - adds r0, r5, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080F050C: .4byte gUnknown_8568BF0 -_080F0510: .4byte gUnknown_82EA31C - thumb_func_end TV_GetSomeOtherSpeciesAlreadySeenByPlayer_AndPrintName - - thumb_func_start TV_GetSomeOtherSpeciesAlreadySeenByPlayer -TV_GetSomeOtherSpeciesAlreadySeenByPlayer: @ 0x080F0514 - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _080F0534 - bl __umodsi3 - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r6, r4, #0 - b _080F0552 - .align 2, 0 -_080F0534: .4byte 0x0000019B -_080F0538: - cmp r4, #1 - bne _080F0544 - ldr r4, _080F0540 - b _080F054A - .align 2, 0 -_080F0540: .4byte 0x0000019B -_080F0544: - subs r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_080F054A: - cmp r4, r6 - bne _080F0552 - adds r4, r5, #0 - b _080F056E -_080F0552: - adds r0, r4, #0 - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0 - bl GetSetPokedexFlag - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - bne _080F0538 - cmp r4, r5 - beq _080F0538 -_080F056E: - adds r0, r4, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end TV_GetSomeOtherSpeciesAlreadySeenByPlayer - - thumb_func_start sub_080F0578 -sub_080F0578: @ 0x080F0578 - push {lr} - ldr r0, _080F05A8 - ldr r0, [r0] - ldr r1, _080F05AC - adds r0, r0, r1 - bl FindEmptyTVSlotWithinFirstFiveShowsOfArray - ldr r1, _080F05B0 - strb r0, [r1] - ldr r2, _080F05B4 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - strh r1, [r2] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _080F05BC - ldr r1, _080F05B8 - movs r0, #1 - b _080F05C0 - .align 2, 0 -_080F05A8: .4byte gUnknown_3005AEC -_080F05AC: .4byte 0x000027CC -_080F05B0: .4byte gUnknown_3005E20 -_080F05B4: .4byte gUnknown_2037284 -_080F05B8: .4byte gUnknown_2037290 -_080F05BC: - ldr r1, _080F05C8 - movs r0, #0 -_080F05C0: - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080F05C8: .4byte gUnknown_2037290 - thumb_func_end sub_080F0578 - - thumb_func_start FindEmptyTVSlotWithinFirstFiveShowsOfArray -FindEmptyTVSlotWithinFirstFiveShowsOfArray: @ 0x080F05CC - push {lr} - adds r2, r0, #0 - movs r1, #0 -_080F05D2: - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _080F05E6 - lsls r0, r1, #0x18 - asrs r0, r0, #0x18 - b _080F05F4 -_080F05E6: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #4 - bls _080F05D2 - movs r0, #1 - rsbs r0, r0, #0 -_080F05F4: - pop {r1} - bx r1 - thumb_func_end FindEmptyTVSlotWithinFirstFiveShowsOfArray - - thumb_func_start FindEmptyTVSlotBeyondFirstFiveShowsOfArray -FindEmptyTVSlotBeyondFirstFiveShowsOfArray: @ 0x080F05F8 - push {lr} - adds r2, r0, #0 - movs r1, #5 -_080F05FE: - lsls r0, r1, #0x18 - asrs r1, r0, #0x18 - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _080F0614 - adds r0, r1, #0 - b _080F0624 -_080F0614: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0x17 - ble _080F05FE - movs r0, #1 - rsbs r0, r0, #0 -_080F0624: - pop {r1} - bx r1 - thumb_func_end FindEmptyTVSlotBeyondFirstFiveShowsOfArray - - thumb_func_start TV_BernoulliTrial -TV_BernoulliTrial: @ 0x080F0628 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r4 - bls _080F0640 - movs r0, #1 - b _080F0642 -_080F0640: - movs r0, #0 -_080F0642: - pop {r4} - pop {r1} - bx r1 - thumb_func_end TV_BernoulliTrial - - thumb_func_start TV_FanClubLetter_RandomWordToStringVar3 -TV_FanClubLetter_RandomWordToStringVar3: @ 0x080F0648 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #6 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r5, r4, #4 - ldr r6, _080F0664 - b _080F066E - .align 2, 0 -_080F0664: .4byte 0x0000FFFF -_080F0668: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 -_080F066E: - cmp r2, #6 - bne _080F0674 - movs r2, #0 -_080F0674: - lsls r1, r2, #1 - adds r0, r5, r1 - ldrh r0, [r0] - adds r3, r4, #4 - cmp r0, r6 - beq _080F0668 - ldr r0, _080F0690 - adds r1, r3, r1 - ldrh r1, [r1] - bl CopyEasyChatWord - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080F0690: .4byte gUnknown_2021C68 - thumb_func_end TV_FanClubLetter_RandomWordToStringVar3 - - thumb_func_start TV_GetNicknameSumMod8 -TV_GetNicknameSumMod8: @ 0x080F0694 - push {lr} - adds r2, r0, #0 - movs r3, #0 - movs r1, #0 - ldrb r0, [r2, #4] - cmp r0, #0xff - beq _080F06C0 - adds r2, #4 -_080F06A4: - adds r0, r2, r1 - ldrb r0, [r0] - adds r0, r3, r0 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xa - bhi _080F06C0 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #0xff - bne _080F06A4 -_080F06C0: - movs r0, #7 - ands r3, r0 - adds r0, r3, #0 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end TV_GetNicknameSumMod8 - - thumb_func_start sub_080F06CC -sub_080F06CC: @ 0x080F06CC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - ldr r4, [sp, #0x1c] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - movs r2, #0 - movs r7, #0xff -_080F06F0: - mov r1, sp - adds r0, r1, r2 - ldrb r1, [r0] - orrs r1, r7 - strb r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #2 - bls _080F06F0 - cmp r3, #0 - bne _080F0752 - ldr r4, [sp, #0x20] - adds r4, #0xf - adds r0, r4, #0 - bl StringLength - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r6, #0 - bne _080F0720 - mov r0, sp - adds r1, r4, r5 - b _080F07CC -_080F0720: - cmp r6, #1 - bne _080F072C - mov r0, sp - subs r1, r2, r5 - adds r1, r4, r1 - b _080F07CC -_080F072C: - cmp r6, #2 - bne _080F073E - mov r1, sp - adds r0, r4, r5 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r5, #1 - adds r0, r4, r0 - b _080F07FC -_080F073E: - mov r1, sp - subs r0, r2, #2 - subs r0, r0, r5 - adds r0, r4, r0 - ldrb r0, [r0] - strb r0, [r1] - subs r0, r2, #1 - subs r0, r0, r5 - adds r0, r4, r0 - b _080F07FC -_080F0752: - cmp r3, #1 - bne _080F07A0 - ldr r4, [sp, #0x20] - adds r4, #4 - adds r0, r4, #0 - bl StringLength - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r6, #0 - bne _080F076E - mov r0, sp - adds r1, r4, r5 - b _080F07CC -_080F076E: - cmp r6, #1 - bne _080F077A - mov r0, sp - subs r1, r2, r5 - adds r1, r4, r1 - b _080F07CC -_080F077A: - cmp r6, #2 - bne _080F078C - mov r1, sp - adds r0, r4, r5 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r5, #1 - adds r0, r4, r0 - b _080F07FC -_080F078C: - mov r1, sp - subs r0, r2, #2 - subs r0, r0, r5 - adds r0, r4, r0 - ldrb r0, [r0] - strb r0, [r1] - subs r0, r2, #1 - subs r0, r0, r5 - adds r0, r4, r0 - b _080F07FC -_080F07A0: - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r4, r0, #1 - ldr r7, _080F07BC - adds r0, r4, r7 - bl StringLength - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r6, #0 - bne _080F07C0 - mov r0, sp - adds r1, r5, r4 - b _080F07CA - .align 2, 0 -_080F07BC: .4byte gUnknown_82EA31C -_080F07C0: - cmp r6, #1 - bne _080F07D2 - mov r0, sp - subs r1, r2, r5 - adds r1, r1, r4 -_080F07CA: - adds r1, r1, r7 -_080F07CC: - ldrb r1, [r1] - strb r1, [r0] - b _080F0800 -_080F07D2: - cmp r6, #2 - bne _080F07E6 - mov r1, sp - adds r0, r5, r4 - adds r0, r0, r7 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r4, #1 - adds r0, r5, r0 - b _080F07FA -_080F07E6: - mov r1, sp - subs r0, r2, #2 - subs r0, r0, r5 - adds r0, r0, r4 - adds r0, r0, r7 - ldrb r0, [r0] - strb r0, [r1] - subs r0, r2, #1 - subs r0, r0, r5 - adds r0, r0, r4 -_080F07FA: - adds r0, r0, r7 -_080F07FC: - ldrb r0, [r0] - strb r0, [r1, #1] -_080F0800: - ldr r0, _080F081C - mov r2, r8 - lsls r1, r2, #2 - adds r1, r1, r0 - ldr r0, [r1] - mov r1, sp - bl StringCopy - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F081C: .4byte gUnknown_8568BF0 - thumb_func_end sub_080F06CC - - thumb_func_start TV_IsScriptShowKindAlreadyInQueue -TV_IsScriptShowKindAlreadyInQueue: @ 0x080F0820 - push {r4, lr} - movs r1, #0 - ldr r0, _080F0844 - ldr r3, [r0] - ldr r0, _080F0848 - ldrh r2, [r0] - ldr r4, _080F084C -_080F082E: - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r3, r0 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, r2 - bne _080F0850 - movs r0, #1 - b _080F085C - .align 2, 0 -_080F0844: .4byte gUnknown_3005AEC -_080F0848: .4byte gUnknown_2037280 -_080F084C: .4byte 0x000027CC -_080F0850: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #4 - bls _080F082E - movs r0, #0 -_080F085C: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end TV_IsScriptShowKindAlreadyInQueue - - thumb_func_start TV_PutNameRaterShowOnTheAirIfNicknameChanged -TV_PutNameRaterShowOnTheAirIfNicknameChanged: @ 0x080F0864 - push {r4, lr} - ldr r0, _080F0890 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080F0894 - adds r0, r0, r1 - ldr r4, _080F0898 - movs r1, #2 - adds r2, r4, #0 - bl GetMonData - ldr r0, _080F089C - adds r1, r4, #0 - bl StringCompare - cmp r0, #0 - beq _080F08A0 - bl PutNameRaterShowOnTheAir - movs r0, #1 - b _080F08A2 - .align 2, 0 -_080F0890: .4byte gUnknown_2037280 -_080F0894: .4byte gUnknown_2024190 -_080F0898: .4byte gUnknown_2021C40 -_080F089C: .4byte gUnknown_2021C68 -_080F08A0: - movs r0, #0 -_080F08A2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end TV_PutNameRaterShowOnTheAirIfNicknameChanged - - thumb_func_start ChangePokemonNickname -ChangePokemonNickname: @ 0x080F08A8 - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - sub sp, #8 - ldr r0, _080F0950 - mov sb, r0 - ldrh r0, [r0] - movs r1, #0x64 - mov r8, r1 - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - ldr r6, _080F0954 - adds r0, r0, r6 - ldr r2, _080F0958 - movs r1, #2 - bl GetMonData - mov r1, sb - ldrh r0, [r1] - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - adds r0, r0, r6 - ldr r1, _080F095C - mov sl, r1 - movs r1, #2 - mov r2, sl - bl GetMonData - mov r1, sb - ldrh r0, [r1] - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - adds r0, r0, r6 - movs r1, #0xb - movs r2, #0 - bl GetMonData - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - mov r1, sb - ldrh r0, [r1] - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - adds r0, r0, r6 - bl GetMonGender - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r1, sb - ldrh r0, [r1] - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - adds r0, r0, r6 - movs r1, #0 - movs r2, #0 - bl GetMonData - str r0, [sp] - ldr r0, _080F0960 - str r0, [sp, #4] - movs r0, #3 - mov r1, sl - adds r2, r5, #0 - adds r3, r4, #0 - bl DoNamingScreen - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080F0950: .4byte gUnknown_2037280 -_080F0954: .4byte gUnknown_2024190 -_080F0958: .4byte gUnknown_2021C68 -_080F095C: .4byte gUnknown_2021C54 -_080F0960: .4byte ChangePokemonNickname_CB - thumb_func_end ChangePokemonNickname - - thumb_func_start ChangePokemonNickname_CB -ChangePokemonNickname_CB: @ 0x080F0964 - push {lr} - ldr r0, _080F0984 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080F0988 - adds r0, r0, r1 - ldr r2, _080F098C - movs r1, #2 - bl SetMonData - bl CB2_ReturnToFieldContinueScriptPlayMapMusic - pop {r0} - bx r0 - .align 2, 0 -_080F0984: .4byte gUnknown_2037280 -_080F0988: .4byte gUnknown_2024190 -_080F098C: .4byte gUnknown_2021C54 - thumb_func_end ChangePokemonNickname_CB - - thumb_func_start ChangeBoxPokemonNickname -ChangeBoxPokemonNickname: @ 0x080F0990 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #8 - ldr r0, _080F0A00 - ldrb r0, [r0] - ldr r1, _080F0A04 - ldrb r1, [r1] - bl GetBoxedMonPtr - adds r6, r0, #0 - ldr r2, _080F0A08 - movs r1, #2 - bl sub_0806A1B4 - ldr r0, _080F0A0C - mov r8, r0 - adds r0, r6, #0 - movs r1, #2 - mov r2, r8 - bl sub_0806A1B4 - adds r0, r6, #0 - movs r1, #0xb - movs r2, #0 - bl sub_0806A1B4 - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - adds r0, r6, #0 - bl GetBoxMonGender - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r6, #0 - movs r1, #0 - movs r2, #0 - bl sub_0806A1B4 - str r0, [sp] - ldr r0, _080F0A10 - str r0, [sp, #4] - movs r0, #3 - mov r1, r8 - adds r2, r5, #0 - adds r3, r4, #0 - bl DoNamingScreen - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080F0A00: .4byte gUnknown_2037296 -_080F0A04: .4byte gUnknown_2037298 -_080F0A08: .4byte gUnknown_2021C68 -_080F0A0C: .4byte gUnknown_2021C54 -_080F0A10: .4byte ChangeBoxPokemonNickname_CB - thumb_func_end ChangeBoxPokemonNickname - - thumb_func_start ChangeBoxPokemonNickname_CB -ChangeBoxPokemonNickname_CB: @ 0x080F0A14 - push {lr} - ldr r0, _080F0A2C - ldrb r0, [r0] - ldr r1, _080F0A30 - ldrb r1, [r1] - ldr r2, _080F0A34 - bl SetBoxMonNickAt - bl CB2_ReturnToFieldContinueScriptPlayMapMusic - pop {r0} - bx r0 - .align 2, 0 -_080F0A2C: .4byte gUnknown_2037296 -_080F0A30: .4byte gUnknown_2037298 -_080F0A34: .4byte gUnknown_2021C54 - thumb_func_end ChangeBoxPokemonNickname_CB - - thumb_func_start TV_CopyNicknameToStringVar1AndEnsureTerminated -TV_CopyNicknameToStringVar1AndEnsureTerminated: @ 0x080F0A38 - push {r4, lr} - ldr r0, _080F0A5C - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080F0A60 - adds r0, r0, r1 - ldr r4, _080F0A64 - movs r1, #2 - adds r2, r4, #0 - bl GetMonData - adds r0, r4, #0 - bl StringGetEnd10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F0A5C: .4byte gUnknown_2037280 -_080F0A60: .4byte gUnknown_2024190 -_080F0A64: .4byte gUnknown_2021C40 - thumb_func_end TV_CopyNicknameToStringVar1AndEnsureTerminated - - thumb_func_start TV_CheckMonOTIDEqualsPlayerID -TV_CheckMonOTIDEqualsPlayerID: @ 0x080F0A68 - push {r4, lr} - bl GetPlayerIDAsU32 - adds r4, r0, #0 - ldr r0, _080F0A90 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080F0A94 - adds r0, r0, r1 - movs r1, #1 - movs r2, #0 - bl GetMonData - cmp r4, r0 - bne _080F0A9C - ldr r1, _080F0A98 - movs r0, #0 - b _080F0AA0 - .align 2, 0 -_080F0A90: .4byte gUnknown_2037280 -_080F0A94: .4byte gUnknown_2024190 -_080F0A98: .4byte gUnknown_2037290 -_080F0A9C: - ldr r1, _080F0AA8 - movs r0, #1 -_080F0AA0: - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F0AA8: .4byte gUnknown_2037290 - thumb_func_end TV_CheckMonOTIDEqualsPlayerID - - thumb_func_start GetTVChannelByShowType -GetTVChannelByShowType: @ 0x080F0AAC - push {lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r2, r1, #0 - cmp r1, #0 - beq _080F0AE2 - subs r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x13 - bhi _080F0AC6 - movs r0, #2 - b _080F0AE8 -_080F0AC6: - adds r0, r1, #0 - subs r0, #0x15 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x13 - bhi _080F0AD6 - movs r0, #3 - b _080F0AE8 -_080F0AD6: - adds r0, r2, #0 - subs r0, #0x29 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x13 - bls _080F0AE6 -_080F0AE2: - movs r0, #0 - b _080F0AE8 -_080F0AE6: - movs r0, #4 -_080F0AE8: - pop {r1} - bx r1 - thumb_func_end GetTVChannelByShowType - - thumb_func_start GetPlayerIDAsU32 -GetPlayerIDAsU32: @ 0x080F0AEC - ldr r0, _080F0B08 - ldr r2, [r0] - ldrb r0, [r2, #0xd] - lsls r0, r0, #0x18 - ldrb r1, [r2, #0xc] - lsls r1, r1, #0x10 - orrs r0, r1 - ldrb r1, [r2, #0xb] - lsls r1, r1, #8 - orrs r0, r1 - ldrb r1, [r2, #0xa] - orrs r0, r1 - bx lr - .align 2, 0 -_080F0B08: .4byte gUnknown_3005AF0 - thumb_func_end GetPlayerIDAsU32 - - thumb_func_start CheckForBigMovieOrEmergencyNewsOnTV -CheckForBigMovieOrEmergencyNewsOnTV: @ 0x080F0B0C - push {lr} - ldr r0, _080F0B30 - ldr r1, [r0] - movs r0, #4 - ldrsb r0, [r1, r0] - cmp r0, #1 - bne _080F0B2C - ldr r0, _080F0B34 - ldr r0, [r0] - ldrb r0, [r0, #8] - cmp r0, #0 - bne _080F0B38 - movs r0, #5 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _080F0B40 -_080F0B2C: - movs r0, #0 - b _080F0B6A - .align 2, 0 -_080F0B30: .4byte gUnknown_3005AEC -_080F0B34: .4byte gUnknown_3005AF0 -_080F0B38: - movs r0, #5 - ldrsb r0, [r1, r0] - cmp r0, #2 - bne _080F0B2C -_080F0B40: - ldr r0, _080F0B64 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080F0B5E - movs r0, #0x89 - lsls r0, r0, #4 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080F0B68 -_080F0B5E: - movs r0, #1 - b _080F0B6A - .align 2, 0 -_080F0B64: .4byte 0x000008BD -_080F0B68: - movs r0, #2 -_080F0B6A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CheckForBigMovieOrEmergencyNewsOnTV - - thumb_func_start GetMomOrDadStringForTVMessage -GetMomOrDadStringForTVMessage: @ 0x080F0B70 - push {r4, lr} - ldr r0, _080F0BA4 - ldr r1, [r0] - movs r0, #4 - ldrsb r0, [r1, r0] - cmp r0, #1 - bne _080F0BD0 - ldr r0, _080F0BA8 - ldr r0, [r0] - ldrb r0, [r0, #8] - cmp r0, #0 - bne _080F0BB8 - movs r0, #5 - ldrsb r0, [r1, r0] - cmp r0, #0 - bne _080F0BD0 - ldr r0, _080F0BAC - ldr r1, _080F0BB0 - bl StringCopy - ldr r0, _080F0BB4 - movs r1, #1 - bl VarSet - b _080F0BD0 - .align 2, 0 -_080F0BA4: .4byte gUnknown_3005AEC -_080F0BA8: .4byte gUnknown_3005AF0 -_080F0BAC: .4byte gUnknown_2021C40 -_080F0BB0: .4byte gUnknown_85CA9E1 -_080F0BB4: .4byte 0x00004003 -_080F0BB8: - movs r0, #5 - ldrsb r0, [r1, r0] - cmp r0, #2 - bne _080F0BD0 - ldr r0, _080F0C18 - ldr r1, _080F0C1C - bl StringCopy - ldr r0, _080F0C20 - movs r1, #1 - bl VarSet -_080F0BD0: - ldr r4, _080F0C20 - adds r0, r4, #0 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - beq _080F0C0E - adds r0, r4, #0 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #2 - beq _080F0C24 - adds r0, r4, #0 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #2 - bls _080F0C38 - adds r0, r4, #0 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _080F0C24 -_080F0C0E: - ldr r0, _080F0C18 - ldr r1, _080F0C1C - bl StringCopy - b _080F0C74 - .align 2, 0 -_080F0C18: .4byte gUnknown_2021C40 -_080F0C1C: .4byte gUnknown_85CA9E1 -_080F0C20: .4byte 0x00004003 -_080F0C24: - ldr r0, _080F0C30 - ldr r1, _080F0C34 - bl StringCopy - b _080F0C74 - .align 2, 0 -_080F0C30: .4byte gUnknown_2021C40 -_080F0C34: .4byte gUnknown_85CA9DE -_080F0C38: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _080F0C64 - ldr r0, _080F0C5C - ldr r1, _080F0C60 - bl StringCopy - adds r0, r4, #0 - movs r1, #1 - bl VarSet - b _080F0C74 - .align 2, 0 -_080F0C5C: .4byte gUnknown_2021C40 -_080F0C60: .4byte gUnknown_85CA9E1 -_080F0C64: - ldr r0, _080F0C7C - ldr r1, _080F0C80 - bl StringCopy - adds r0, r4, #0 - movs r1, #2 - bl VarSet -_080F0C74: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F0C7C: .4byte gUnknown_2021C40 -_080F0C80: .4byte gUnknown_85CA9DE - thumb_func_end GetMomOrDadStringForTVMessage - - thumb_func_start sub_080F0C84 -sub_080F0C84: @ 0x080F0C84 - push {lr} - ldr r0, _080F0CA8 - movs r1, #0 - bl VarSet - ldr r0, _080F0CAC - ldr r0, [r0] - ldrb r1, [r0, #5] - ldrb r2, [r0, #4] - movs r0, #5 - bl RemoveEventObjectByLocalIdAndMap - ldr r0, _080F0CB0 - bl FlagSet - pop {r0} - bx r0 - .align 2, 0 -_080F0CA8: .4byte 0x000040BC -_080F0CAC: .4byte gUnknown_3005AEC -_080F0CB0: .4byte 0x00000396 - thumb_func_end sub_080F0C84 - - thumb_func_start sub_080F0CB4 -sub_080F0CB4: @ 0x080F0CB4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r7, r0, #0 - adds r6, r1, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r8, r2 - movs r0, #0xe1 - lsls r0, r0, #4 - bl sub_08000BC8 - mov sb, r0 - cmp r0, #0 - bne _080F0CD8 - b _080F0E1C -_080F0CD8: - movs r4, #0 -_080F0CDA: - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #5 - adds r0, r0, r4 - lsls r0, r0, #2 - add r0, sb - adds r1, r4, #0 - muls r1, r6, r1 - adds r1, r7, r1 - movs r2, #0xe1 - lsls r2, r2, #2 - bl memcpy - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _080F0CDA - mov r5, sb - movs r4, #0 - ldr r0, _080F0D08 - mov sl, r0 - b _080F0D48 - .align 2, 0 -_080F0D08: .4byte gUnknown_20226A0 -_080F0D0C: - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - mov r2, sl - adds r1, r0, r2 - ldrb r0, [r1] - subs r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bhi _080F0D42 - ldrh r0, [r1, #0x1a] - cmp r0, #1 - bne _080F0D36 - adds r0, r4, #0 - muls r0, r6, r0 - adds r0, r7, r0 - movs r1, #2 - bl sub_080F1A40 - b _080F0D42 -_080F0D36: - adds r0, r4, #0 - muls r0, r6, r0 - adds r0, r7, r0 - ldrh r1, [r1, #0x1a] - bl sub_080F1A40 -_080F0D42: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_080F0D48: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - blo _080F0D0C - mov r3, r8 - cmp r3, #1 - beq _080F0D9C - cmp r3, #1 - bgt _080F0D64 - cmp r3, #0 - beq _080F0D70 - b _080F0DF6 -_080F0D64: - mov r4, r8 - cmp r4, #2 - beq _080F0DB4 - cmp r4, #3 - beq _080F0DDC - b _080F0DF6 -_080F0D70: - ldr r0, _080F0D90 - ldr r0, [r0] - ldr r1, _080F0D94 - adds r0, r0, r1 - movs r2, #0xe1 - lsls r2, r2, #2 - adds r1, r5, r2 - movs r3, #0xe1 - lsls r3, r3, #3 - adds r2, r5, r3 - ldr r4, _080F0D98 - adds r3, r5, r4 - bl sub_080F0E34 - b _080F0DF6 - .align 2, 0 -_080F0D90: .4byte gUnknown_3005AEC -_080F0D94: .4byte 0x000027CC -_080F0D98: .4byte 0x00000A8C -_080F0D9C: - ldr r0, _080F0DAC - ldr r1, [r0] - ldr r0, _080F0DB0 - adds r1, r1, r0 - movs r3, #0xe1 - lsls r3, r3, #3 - adds r2, r5, r3 - b _080F0DC2 - .align 2, 0 -_080F0DAC: .4byte gUnknown_3005AEC -_080F0DB0: .4byte 0x000027CC -_080F0DB4: - movs r0, #0xe1 - lsls r0, r0, #2 - adds r1, r5, r0 - ldr r0, _080F0DD0 - ldr r2, [r0] - ldr r3, _080F0DD4 - adds r2, r2, r3 -_080F0DC2: - ldr r4, _080F0DD8 - adds r3, r5, r4 - adds r0, r5, #0 - bl sub_080F0E34 - b _080F0DF6 - .align 2, 0 -_080F0DD0: .4byte gUnknown_3005AEC -_080F0DD4: .4byte 0x000027CC -_080F0DD8: .4byte 0x00000A8C -_080F0DDC: - movs r0, #0xe1 - lsls r0, r0, #2 - adds r1, r5, r0 - movs r3, #0xe1 - lsls r3, r3, #3 - adds r2, r5, r3 - ldr r0, _080F0E2C - ldr r3, [r0] - ldr r4, _080F0E30 - adds r3, r3, r4 - adds r0, r5, #0 - bl sub_080F0E34 -_080F0DF6: - ldr r5, _080F0E2C - ldr r0, [r5] - ldr r4, _080F0E30 - adds r0, r0, r4 - bl sub_080F0428 - bl sub_080F16E0 - ldr r0, [r5] - adds r0, r0, r4 - bl sub_080F0428 - bl sub_080F11E4 - bl sub_080F1640 - mov r0, sb - bl Free -_080F0E1C: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F0E2C: .4byte gUnknown_3005AEC -_080F0E30: .4byte 0x000027CC - thumb_func_end sub_080F0CB4 - - thumb_func_start sub_080F0E34 -sub_080F0E34: @ 0x080F0E34 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, 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, #4] - add r0, sp, #0x18 - str r0, [sp, #8] - add r0, sp, #0x1c - str r0, [sp, #0xc] - bl GetLinkPlayerCount - ldr r1, _080F0EB0 - strb r0, [r1] -_080F0E60: - movs r6, #0 - ldr r0, _080F0EB0 - ldrb r1, [r0] - cmp r6, r1 - bhs _080F0E60 - mov sl, r0 -_080F0E6C: - cmp r6, #0 - bne _080F0E74 - ldr r2, _080F0EB4 - strb r6, [r2] -_080F0E74: - lsls r4, r6, #2 - mov r3, sp - adds r0, r3, r4 - ldr r0, [r0] - ldr r0, [r0] - bl sub_080F11AC - ldr r1, _080F0EB8 - strb r0, [r1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - adds r7, r4, #0 - cmp r0, r1 - bne _080F0EBC - ldr r1, _080F0EB4 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r2, sl - ldrb r2, [r2] - cmp r0, r2 - beq _080F0F68 - adds r6, #1 - mov sb, r6 - b _080F0F4C - .align 2, 0 -_080F0EB0: .4byte gUnknown_3001174 -_080F0EB4: .4byte gUnknown_2039CF8 -_080F0EB8: .4byte gUnknown_3001176 -_080F0EBC: - movs r5, #0 - mov r3, sl - ldrb r0, [r3] - subs r0, #1 - adds r2, r6, #1 - mov sb, r2 - cmp r5, r0 - bge _080F0F32 - ldr r3, _080F0F5C - mov r8, r3 -_080F0ED0: - adds r0, r6, r5 - adds r4, r0, #1 - mov r0, r8 - ldrb r1, [r0] - adds r0, r4, #0 - bl __modsi3 - lsls r0, r0, #2 - add r0, sp - ldr r0, [r0] - ldr r0, [r0] - bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray - ldr r1, _080F0F60 - strb r0, [r1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080F0F22 - 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, r2, #0x18 - lsrs r2, r2, #0x18 - bl sub_080F0F78 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080F0F32 -_080F0F22: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - mov r1, r8 - ldrb r0, [r1] - subs r0, #1 - cmp r5, r0 - blt _080F0ED0 -_080F0F32: - mov r2, sl - ldrb r0, [r2] - subs r0, #1 - cmp r5, r0 - bne _080F0F4C - mov r3, sp - adds r0, r3, r7 - ldr r0, [r0] - ldr r0, [r0] - ldr r1, _080F0F64 - ldrb r1, [r1] - bl DeleteTVShowInArrayByIdx -_080F0F4C: - mov r1, sb - lsls r0, r1, #0x18 - lsrs r6, r0, #0x18 - mov r2, sl - ldrb r2, [r2] - cmp r6, r2 - blo _080F0E6C - b _080F0E60 - .align 2, 0 -_080F0F5C: .4byte gUnknown_3001174 -_080F0F60: .4byte gUnknown_3005E20 -_080F0F64: .4byte gUnknown_3001176 -_080F0F68: - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_080F0E34 - - thumb_func_start sub_080F0F78 -sub_080F0F78: @ 0x080F0F78 - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - ldr r4, [r0] - ldr r6, [r1] - movs r5, #0 - ldr r2, _080F0FB4 - movs r1, #0 - ldrsb r1, [r2, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r0, [r0] - str r2, [sp] - bl GetTVChannelByShowType - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - ldr r2, [sp] - cmp r0, #3 - beq _080F0FE8 - cmp r0, #3 - bgt _080F0FB8 - cmp r0, #2 - beq _080F0FBE - b _080F1036 - .align 2, 0 -_080F0FB4: .4byte gUnknown_3001176 -_080F0FB8: - cmp r1, #4 - beq _080F1010 - b _080F1036 -_080F0FBE: - ldr r0, _080F0FE4 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r4, r0 - ldrb r2, [r2] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - lsls r1, r2, #3 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r6, r1 - adds r2, r7, #0 - bl sub_080F105C - b _080F1032 - .align 2, 0 -_080F0FE4: .4byte gUnknown_3005E20 -_080F0FE8: - ldr r0, _080F100C - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r4, r0 - ldrb r2, [r2] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - lsls r1, r2, #3 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r6, r1 - adds r2, r7, #0 - bl sub_080F10C4 - b _080F1032 - .align 2, 0 -_080F100C: .4byte gUnknown_3005E20 -_080F1010: - ldr r0, _080F1040 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r4, r0 - ldrb r2, [r2] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - lsls r1, r2, #3 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r6, r1 - adds r2, r7, #0 - bl sub_080F1144 -_080F1032: - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_080F1036: - cmp r5, #1 - beq _080F1044 - movs r0, #0 - b _080F1050 - .align 2, 0 -_080F1040: .4byte gUnknown_3005E20 -_080F1044: - ldr r0, _080F1058 - ldrb r1, [r0] - adds r0, r6, #0 - bl DeleteTVShowInArrayByIdx - movs r0, #1 -_080F1050: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080F1058: .4byte gUnknown_3001176 - thumb_func_end sub_080F0F78 - - thumb_func_start sub_080F105C -sub_080F105C: @ 0x080F105C - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r4, r1, #0 - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - 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 _080F108C - lsrs r0, r5, #8 - ands r0, r2 - adds r1, r4, #0 - adds r1, #0x23 - ldrb r1, [r1] - cmp r0, r1 - bne _080F108C - movs r0, #0 - b _080F10BC -_080F108C: - 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, #1 - strb r0, [r2] - strb r5, [r1] - lsrs r0, r5, #8 - strb r0, [r3] - adds r1, r6, #0 - adds r0, r4, #0 - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - movs r0, #1 - strb r0, [r6, #1] -_080F10BC: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080F105C - - thumb_func_start sub_080F10C4 -sub_080F10C4: @ 0x080F10C4 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r4, r1, #0 - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - 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 _080F10F0 - lsrs r0, r2, #8 - ands r0, r3 - adds r1, r4, #0 - adds r1, #0x21 - ldrb r1, [r1] - cmp r0, r1 - beq _080F1110 -_080F10F0: - 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 _080F1114 - adds r0, r5, #0 - ands r0, r3 - adds r1, r4, #0 - adds r1, #0x23 - ldrb r1, [r1] - cmp r0, r1 - bne _080F1114 -_080F1110: - movs r0, #0 - b _080F113C -_080F1114: - 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, r3, r4} - stm r1!, {r2, r3, r4} - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - movs r0, #1 - strb r0, [r6, #1] -_080F113C: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080F10C4 - - thumb_func_start sub_080F1144 -sub_080F1144: @ 0x080F1144 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r4, r1, #0 - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - 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 _080F1174 - lsrs r0, r5, #8 - ands r0, r2 - adds r1, r4, #0 - adds r1, #0x23 - ldrb r1, [r1] - cmp r0, r1 - bne _080F1174 - movs r0, #0 - b _080F11A6 -_080F1174: - 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, #1 - strb r0, [r2] - strb r5, [r1] - lsrs r0, r5, #8 - strb r0, [r3] - adds r1, r6, #0 - adds r0, r4, #0 - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - movs r0, #1 - strb r0, [r6, #1] - strh r0, [r6, #0x16] -_080F11A6: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_080F1144 - - thumb_func_start sub_080F11AC -sub_080F11AC: @ 0x080F11AC - push {lr} - adds r3, r0, #0 - movs r2, #0 -_080F11B2: - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r1, r0, r3 - ldrb r0, [r1, #1] - cmp r0, #0 - bne _080F11D2 - ldrb r0, [r1] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x3b - bhi _080F11D2 - lsls r0, r2, #0x18 - asrs r0, r0, #0x18 - b _080F11E0 -_080F11D2: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x17 - bls _080F11B2 - movs r0, #1 - rsbs r0, r0, #0 -_080F11E0: - pop {r1} - bx r1 - thumb_func_end sub_080F11AC - - thumb_func_start sub_080F11E4 -sub_080F11E4: @ 0x080F11E4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #8 - movs r0, #0 - mov sb, r0 -_080F11F2: - ldr r3, _080F1218 - ldr r1, [r3] - mov r4, sb - lsls r2, r4, #3 - adds r0, r2, r4 - lsls r0, r0, #2 - adds r1, r1, r0 - ldr r0, _080F121C - adds r1, r1, r0 - ldrb r0, [r1] - adds r7, r2, #0 - cmp r0, #0x29 - bls _080F120E - b _080F15B4 -_080F120E: - lsls r0, r0, #2 - ldr r1, _080F1220 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F1218: .4byte gUnknown_3005AEC -_080F121C: .4byte 0x000027CC -_080F1220: .4byte _080F1224 -_080F1224: @ jump table - .4byte _080F15BE @ case 0 - .4byte _080F1324 @ case 1 - .4byte _080F15BE @ case 2 - .4byte _080F133C @ case 3 - .4byte _080F1354 @ case 4 - .4byte _080F136C @ case 5 - .4byte _080F1398 @ case 6 - .4byte _080F13B0 @ case 7 - .4byte _080F12CC @ case 8 - .4byte _080F15BE @ case 9 - .4byte _080F12F8 @ case 10 - .4byte _080F15BE @ case 11 - .4byte _080F15BE @ case 12 - .4byte _080F15B4 @ case 13 - .4byte _080F15B4 @ case 14 - .4byte _080F15B4 @ case 15 - .4byte _080F15B4 @ case 16 - .4byte _080F15B4 @ case 17 - .4byte _080F15B4 @ case 18 - .4byte _080F15B4 @ case 19 - .4byte _080F15B4 @ case 20 - .4byte _080F13DC @ case 21 - .4byte _080F15BE @ case 22 - .4byte _080F13F4 @ case 23 - .4byte _080F1420 @ case 24 - .4byte _080F1438 @ case 25 - .4byte _080F15BE @ case 26 - .4byte _080F15BE @ case 27 - .4byte _080F15BE @ case 28 - .4byte _080F15BE @ case 29 - .4byte _080F1450 @ case 30 - .4byte _080F147C @ case 31 - .4byte _080F15BE @ case 32 - .4byte _080F149C @ case 33 - .4byte _080F15BE @ case 34 - .4byte _080F15BE @ case 35 - .4byte _080F14D0 @ case 36 - .4byte _080F15BE @ case 37 - .4byte _080F15BE @ case 38 - .4byte _080F15BE @ case 39 - .4byte _080F15B4 @ case 40 - .4byte _080F15BE @ case 41 -_080F12CC: - ldr r0, [r3] - mov r1, sb - adds r4, r7, r1 - lsls r4, r4, #2 - adds r0, r4, r0 - ldr r6, _080F12F4 - adds r0, r0, r6 - ldrh r0, [r0, #0x12] - lsls r5, r1, #0x18 - lsrs r5, r5, #0x18 - adds r1, r5, #0 - str r3, [sp, #4] - bl sub_080F1600 - ldr r3, [sp, #4] - ldr r0, [r3] - adds r4, r4, r0 - adds r4, r4, r6 - ldrh r0, [r4, #2] - b _080F14C2 - .align 2, 0 -_080F12F4: .4byte 0x000027CC -_080F12F8: - ldr r0, [r3] - mov r2, sb - adds r4, r7, r2 - lsls r4, r4, #2 - adds r0, r4, r0 - ldr r6, _080F1320 - adds r0, r0, r6 - ldrh r0, [r0, #0x16] - lsls r5, r2, #0x18 - lsrs r5, r5, #0x18 - adds r1, r5, #0 - str r3, [sp, #4] - bl sub_080F1600 - ldr r3, [sp, #4] - ldr r0, [r3] - adds r4, r4, r0 - adds r4, r4, r6 - ldrh r0, [r4, #2] - b _080F14C2 - .align 2, 0 -_080F1320: .4byte 0x000027CC -_080F1324: - ldr r0, [r3] - mov r4, sb - adds r1, r7, r4 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, _080F1338 - adds r1, r1, r0 - ldrh r0, [r1, #2] - b _080F148C - .align 2, 0 -_080F1338: .4byte 0x000027CC -_080F133C: - ldr r0, [r3] - mov r2, sb - adds r1, r7, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r4, _080F1350 - adds r1, r1, r4 - ldrh r0, [r1, #2] - lsls r1, r2, #0x18 - b _080F148E - .align 2, 0 -_080F1350: .4byte 0x000027CC -_080F1354: - ldr r0, [r3] - mov r2, sb - adds r1, r7, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r4, _080F1368 - adds r1, r1, r4 - ldrh r0, [r1, #6] - lsls r1, r2, #0x18 - b _080F148E - .align 2, 0 -_080F1368: .4byte 0x000027CC -_080F136C: - ldr r0, [r3] - mov r1, sb - adds r4, r7, r1 - lsls r4, r4, #2 - adds r0, r4, r0 - ldr r6, _080F1394 - adds r0, r0, r6 - ldrh r0, [r0, #2] - lsls r5, r1, #0x18 - lsrs r5, r5, #0x18 - adds r1, r5, #0 - str r3, [sp, #4] - bl sub_080F1600 - ldr r3, [sp, #4] - ldr r0, [r3] - adds r4, r4, r0 - adds r4, r4, r6 - ldrh r0, [r4, #0x1c] - b _080F14C2 - .align 2, 0 -_080F1394: .4byte 0x000027CC -_080F1398: - ldr r0, [r3] - mov r2, sb - adds r1, r7, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r4, _080F13AC - adds r1, r1, r4 - ldrh r0, [r1, #2] - lsls r1, r2, #0x18 - b _080F148E - .align 2, 0 -_080F13AC: .4byte 0x000027CC -_080F13B0: - ldr r0, [r3] - mov r1, sb - adds r4, r7, r1 - lsls r4, r4, #2 - adds r0, r4, r0 - ldr r6, _080F13D8 - adds r0, r0, r6 - ldrh r0, [r0, #0xa] - lsls r5, r1, #0x18 - lsrs r5, r5, #0x18 - adds r1, r5, #0 - str r3, [sp, #4] - bl sub_080F1600 - ldr r3, [sp, #4] - ldr r0, [r3] - adds r4, r4, r0 - adds r4, r4, r6 - ldrh r0, [r4, #0x14] - b _080F14C2 - .align 2, 0 -_080F13D8: .4byte 0x000027CC -_080F13DC: - ldr r0, [r3] - mov r2, sb - adds r1, r7, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r4, _080F13F0 - adds r1, r1, r4 - ldrh r0, [r1, #0x10] - lsls r1, r2, #0x18 - b _080F148E - .align 2, 0 -_080F13F0: .4byte 0x000027CC -_080F13F4: - ldr r0, [r3] - mov r1, sb - adds r4, r7, r1 - lsls r4, r4, #2 - adds r0, r4, r0 - ldr r6, _080F141C - adds r0, r0, r6 - ldrh r0, [r0, #0xc] - lsls r5, r1, #0x18 - lsrs r5, r5, #0x18 - adds r1, r5, #0 - str r3, [sp, #4] - bl sub_080F1600 - ldr r3, [sp, #4] - ldr r0, [r3] - adds r4, r4, r0 - adds r4, r4, r6 - ldrh r0, [r4, #0xe] - b _080F14C2 - .align 2, 0 -_080F141C: .4byte 0x000027CC -_080F1420: - ldr r0, [r3] - mov r2, sb - adds r1, r7, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r4, _080F1434 - adds r1, r1, r4 - ldrh r0, [r1, #4] - lsls r1, r2, #0x18 - b _080F148E - .align 2, 0 -_080F1434: .4byte 0x000027CC -_080F1438: - ldr r0, [r3] - mov r1, sb - adds r4, r7, r1 - lsls r4, r4, #2 - adds r0, r4, r0 - ldr r6, _080F144C - adds r0, r0, r6 - ldrh r0, [r0, #8] - b _080F14AC - .align 2, 0 -_080F144C: .4byte 0x000027CC -_080F1450: - ldr r0, [r3] - mov r2, sb - adds r4, r7, r2 - lsls r4, r4, #2 - adds r0, r4, r0 - ldr r6, _080F1478 - adds r0, r0, r6 - ldrh r0, [r0, #2] - lsls r5, r2, #0x18 - lsrs r5, r5, #0x18 - adds r1, r5, #0 - str r3, [sp, #4] - bl sub_080F1600 - ldr r3, [sp, #4] - ldr r0, [r3] - adds r4, r4, r0 - adds r4, r4, r6 - ldrh r0, [r4, #0xa] - b _080F14C2 - .align 2, 0 -_080F1478: .4byte 0x000027CC -_080F147C: - ldr r0, [r3] - mov r4, sb - adds r1, r7, r4 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, _080F1498 - adds r1, r1, r0 - ldrh r0, [r1, #8] -_080F148C: - lsls r1, r4, #0x18 -_080F148E: - lsrs r1, r1, #0x18 - bl sub_080F1600 - b _080F15BE - .align 2, 0 -_080F1498: .4byte 0x000027CC -_080F149C: - ldr r0, [r3] - mov r1, sb - adds r4, r7, r1 - lsls r4, r4, #2 - adds r0, r4, r0 - ldr r6, _080F14CC - adds r0, r0, r6 - ldrh r0, [r0, #6] -_080F14AC: - lsls r5, r1, #0x18 - lsrs r5, r5, #0x18 - adds r1, r5, #0 - str r3, [sp, #4] - bl sub_080F1600 - ldr r3, [sp, #4] - ldr r0, [r3] - adds r4, r4, r0 - adds r4, r4, r6 - ldrh r0, [r4, #4] -_080F14C2: - adds r1, r5, #0 - bl sub_080F1600 - b _080F15BE - .align 2, 0 -_080F14CC: .4byte 0x000027CC -_080F14D0: - ldr r0, [r3] - mov r2, sb - adds r4, r7, r2 - lsls r4, r4, #2 - adds r0, r4, r0 - ldr r5, _080F151C - adds r0, r0, r5 - ldrh r0, [r0, #4] - lsls r2, r2, #0x18 - mov r8, r2 - lsrs r6, r2, #0x18 - adds r1, r6, #0 - str r3, [sp, #4] - bl sub_080F1600 - ldr r3, [sp, #4] - ldr r0, [r3] - adds r0, r4, r0 - adds r0, r0, r5 - ldrh r0, [r0, #6] - adds r1, r6, #0 - bl sub_080F1600 - ldr r3, [sp, #4] - ldr r0, [r3] - adds r4, r4, r0 - adds r4, r4, r5 - ldrb r0, [r4, #0xd] - subs r0, #1 - mov r6, r8 - cmp r0, #0xc - bhi _080F15BE - lsls r0, r0, #2 - ldr r1, _080F1520 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F151C: .4byte 0x000027CC -_080F1520: .4byte _080F1524 -_080F1524: @ jump table - .4byte _080F1558 @ case 0 - .4byte _080F157C @ case 1 - .4byte _080F15BE @ case 2 - .4byte _080F15BE @ case 3 - .4byte _080F1558 @ case 4 - .4byte _080F1558 @ case 5 - .4byte _080F1558 @ case 6 - .4byte _080F1558 @ case 7 - .4byte _080F1558 @ case 8 - .4byte _080F1558 @ case 9 - .4byte _080F1558 @ case 10 - .4byte _080F1558 @ case 11 - .4byte _080F1558 @ case 12 -_080F1558: - ldr r0, _080F1574 - ldr r1, [r0] - mov r4, sb - adds r0, r7, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _080F1578 - adds r0, r0, r1 - ldrh r0, [r0, #8] - lsrs r1, r6, #0x18 - bl sub_080F1600 - b _080F15BE - .align 2, 0 -_080F1574: .4byte gUnknown_3005AEC -_080F1578: .4byte 0x000027CC -_080F157C: - ldr r2, _080F15AC - ldr r0, [r2] - mov r1, sb - adds r4, r7, r1 - lsls r4, r4, #2 - adds r0, r4, r0 - ldr r5, _080F15B0 - adds r0, r0, r5 - ldrh r0, [r0, #8] - lsrs r6, r6, #0x18 - adds r1, r6, #0 - str r2, [sp] - bl sub_080F1600 - ldr r2, [sp] - ldr r0, [r2] - adds r4, r4, r0 - adds r4, r4, r5 - ldrh r0, [r4, #0xa] - adds r1, r6, #0 - bl sub_080F1600 - b _080F15BE - .align 2, 0 -_080F15AC: .4byte gUnknown_3005AEC -_080F15B0: .4byte 0x000027CC -_080F15B4: - mov r2, sb - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - bl SetTvShowInactive -_080F15BE: - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - cmp r0, #0x17 - bhi _080F15CE - b _080F11F2 -_080F15CE: - add sp, #8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_080F11E4 - - thumb_func_start SetTvShowInactive -SetTvShowInactive: @ 0x080F15DC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080F15F8 - ldr r2, [r1] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r2, r2, r1 - ldr r0, _080F15FC - adds r2, r2, r0 - movs r0, #0 - strb r0, [r2] - bx lr - .align 2, 0 -_080F15F8: .4byte gUnknown_3005AEC -_080F15FC: .4byte 0x000027CD - thumb_func_end SetTvShowInactive - - thumb_func_start sub_080F1600 -sub_080F1600: @ 0x080F1600 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0 - bl GetSetPokedexFlag - lsls r0, r0, #0x18 - asrs r2, r0, #0x18 - cmp r2, #0 - bne _080F1632 - ldr r0, _080F1638 - ldr r1, [r0] - lsls r0, r4, #3 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r1, r1, r0 - ldr r0, _080F163C - adds r1, r1, r0 - strb r2, [r1] -_080F1632: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F1638: .4byte gUnknown_3005AEC -_080F163C: .4byte 0x000027CD - thumb_func_end sub_080F1600 - - thumb_func_start sub_080F1640 -sub_080F1640: @ 0x080F1640 - push {r4, r5, r6, lr} - ldr r0, _080F1684 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080F167E - movs r2, #0 - ldr r4, _080F1688 - movs r3, #0 - ldr r5, _080F168C -_080F1658: - ldr r0, [r5] - lsls r1, r2, #3 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r0, r1 - ldr r6, _080F1690 - adds r0, r1, r6 - ldrb r0, [r0] - cmp r0, #7 - beq _080F1670 - cmp r0, #0x29 - bne _080F1674 -_080F1670: - adds r0, r1, r4 - strb r3, [r0] -_080F1674: - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0x17 - bls _080F1658 -_080F167E: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080F1684: .4byte 0x00000864 -_080F1688: .4byte 0x000027CD -_080F168C: .4byte gUnknown_3005AEC -_080F1690: .4byte 0x000027CC - thumb_func_end sub_080F1640 - - thumb_func_start sub_080F1694 -sub_080F1694: @ 0x080F1694 - push {r4, r5, r6, lr} - movs r5, #0 - ldr r6, _080F16D4 -_080F169A: - ldr r1, [r6] - lsls r0, r5, #3 - adds r0, r0, r5 - lsls r4, r0, #2 - adds r1, r1, r4 - ldr r0, _080F16D8 - adds r1, r1, r0 - ldrb r0, [r1] - bl GetTVChannelByShowType - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _080F16C2 - ldr r0, [r6] - adds r0, r0, r4 - ldr r1, _080F16DC - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] -_080F16C2: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #4 - bls _080F169A - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080F16D4: .4byte gUnknown_3005AEC -_080F16D8: .4byte 0x000027CC -_080F16DC: .4byte 0x000027CD - thumb_func_end sub_080F1694 - - thumb_func_start sub_080F16E0 -sub_080F16E0: @ 0x080F16E0 - push {r4, r5, lr} - movs r3, #0 - movs r2, #5 - ldr r0, _080F1750 - ldr r4, [r0] - ldr r5, _080F1754 -_080F16EC: - lsls r0, r2, #0x18 - asrs r1, r0, #0x18 - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r4, r0 - adds r0, r0, r5 - ldrb r0, [r0] - cmp r0, #0 - bne _080F170A - lsls r0, r3, #0x18 - movs r2, #0x80 - lsls r2, r2, #0x11 - adds r0, r0, r2 - lsrs r3, r0, #0x18 -_080F170A: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0x17 - ble _080F16EC - movs r2, #0 - lsls r0, r3, #0x18 - asrs r0, r0, #0x18 - movs r1, #5 - subs r0, r1, r0 - cmp r2, r0 - bge _080F174A - adds r5, r0, #0 -_080F1726: - ldr r0, _080F1750 - ldr r0, [r0] - ldr r1, _080F1754 - adds r0, r0, r1 - lsls r1, r2, #0x18 - asrs r4, r1, #0x18 - movs r2, #0xa0 - lsls r2, r2, #0x13 - adds r1, r1, r2 - lsrs r1, r1, #0x18 - bl DeleteTVShowInArrayByIdx - adds r4, #1 - lsls r4, r4, #0x18 - lsrs r2, r4, #0x18 - asrs r4, r4, #0x18 - cmp r4, r5 - blt _080F1726 -_080F174A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080F1750: .4byte gUnknown_3005AEC -_080F1754: .4byte 0x000027CC - thumb_func_end sub_080F16E0 - - thumb_func_start ReceivePokeNewsData -ReceivePokeNewsData: @ 0x080F1758 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r7, r1, #0 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - movs r0, #0x80 - lsls r0, r0, #1 - bl sub_08000BC8 - adds r5, r0, #0 - cmp r5, #0 - beq _080F1828 - movs r4, #0 -_080F1776: - lsls r0, r4, #6 - adds r0, r0, r5 - adds r1, r4, #0 - muls r1, r7, r1 - add r1, r8 - movs r2, #0x40 - bl memcpy - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _080F1776 - cmp r6, #1 - beq _080F17CC - cmp r6, #1 - bgt _080F179E - cmp r6, #0 - beq _080F17A8 - b _080F181A -_080F179E: - cmp r6, #2 - beq _080F17E4 - cmp r6, #3 - beq _080F1804 - b _080F181A -_080F17A8: - ldr r0, _080F17C4 - ldr r0, [r0] - ldr r1, _080F17C8 - adds r0, r0, r1 - adds r1, r5, #0 - adds r1, #0x40 - adds r2, r5, #0 - adds r2, #0x80 - adds r3, r5, #0 - adds r3, #0xc0 - bl sub_080F183C - b _080F181A - .align 2, 0 -_080F17C4: .4byte gUnknown_3005AEC -_080F17C8: .4byte 0x00002B50 -_080F17CC: - ldr r0, _080F17DC - ldr r1, [r0] - ldr r0, _080F17E0 - adds r1, r1, r0 - adds r2, r5, #0 - adds r2, #0x80 - b _080F17F0 - .align 2, 0 -_080F17DC: .4byte gUnknown_3005AEC -_080F17E0: .4byte 0x00002B50 -_080F17E4: - adds r1, r5, #0 - adds r1, #0x40 - ldr r0, _080F17FC - ldr r2, [r0] - ldr r0, _080F1800 - adds r2, r2, r0 -_080F17F0: - adds r3, r5, #0 - adds r3, #0xc0 - adds r0, r5, #0 - bl sub_080F183C - b _080F181A - .align 2, 0 -_080F17FC: .4byte gUnknown_3005AEC -_080F1800: .4byte 0x00002B50 -_080F1804: - adds r1, r5, #0 - adds r1, #0x40 - adds r2, r5, #0 - adds r2, #0x80 - ldr r0, _080F1834 - ldr r3, [r0] - ldr r0, _080F1838 - adds r3, r3, r0 - adds r0, r5, #0 - bl sub_080F183C -_080F181A: - bl sub_080F19C8 - bl sub_080F1A00 - adds r0, r5, #0 - bl Free -_080F1828: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F1834: .4byte gUnknown_3005AEC -_080F1838: .4byte 0x00002B50 - thumb_func_end ReceivePokeNewsData - - thumb_func_start sub_080F183C -sub_080F183C: @ 0x080F183C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, 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, #4] - add r0, sp, #0x18 - str r0, [sp, #8] - add r0, sp, #0x1c - str r0, [sp, #0xc] - bl GetLinkPlayerCount - ldr r1, _080F1878 - strb r0, [r1] - movs r0, #0 - mov sl, r0 -_080F186C: - movs r7, #0 - mov r1, sl - adds r1, #1 - str r1, [sp, #0x20] - b _080F1904 - .align 2, 0 -_080F1878: .4byte gUnknown_3001175 -_080F187C: - lsls r4, r7, #2 - mov r1, sp - adds r0, r1, r4 - ldr r0, [r0] - ldr r0, [r0] - mov r1, sl - bl sub_080F19A8 - ldr r1, _080F1928 - strb r0, [r1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - mov r8, r4 - adds r1, r7, #1 - mov sb, r1 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080F18FE - movs r5, #0 - ldr r1, _080F192C - ldrb r0, [r1] - subs r0, #1 - cmp r5, r0 - bge _080F18FE - adds r6, r1, #0 -_080F18B0: - adds r0, r7, r5 - adds r4, r0, #1 - ldrb r1, [r6] - adds r0, r4, #0 - bl __modsi3 - lsls r0, r0, #2 - add r0, sp - ldr r0, [r0] - ldr r0, [r0] - bl sub_080EF934 - ldr r1, _080F1930 - strb r0, [r1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080F18F0 - ldrb r1, [r6] - adds r0, r4, #0 - bl __modsi3 - lsls r0, r0, #2 - add r0, sp - ldr r0, [r0] - mov r1, sp - add r1, r8 - ldr r1, [r1] - bl sub_080F1934 -_080F18F0: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldrb r0, [r6] - subs r0, #1 - cmp r5, r0 - blt _080F18B0 -_080F18FE: - mov r1, sb - lsls r0, r1, #0x18 - lsrs r7, r0, #0x18 -_080F1904: - ldr r0, _080F192C - ldrb r0, [r0] - cmp r7, r0 - blo _080F187C - ldr r1, [sp, #0x20] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - cmp r0, #0xf - bls _080F186C - add sp, #0x24 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F1928: .4byte gUnknown_3001176 -_080F192C: .4byte gUnknown_3001175 -_080F1930: .4byte gUnknown_3005E20 - thumb_func_end sub_080F183C - - thumb_func_start sub_080F1934 -sub_080F1934: @ 0x080F1934 - push {lr} - ldr r0, [r0] - ldr r1, [r1] - ldr r2, _080F1958 - ldrb r2, [r2] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - lsls r2, r2, #2 - adds r1, r1, r2 - ldr r2, _080F195C - ldrb r2, [r2] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - bl sub_080F1960 - pop {r0} - bx r0 - .align 2, 0 -_080F1958: .4byte gUnknown_3001176 -_080F195C: .4byte gUnknown_3005E20 - thumb_func_end sub_080F1934 - - thumb_func_start sub_080F1960 -sub_080F1960: @ 0x080F1960 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - ldrb r3, [r5] - adds r0, r3, #0 - cmp r0, #0 - bne _080F1976 -_080F1972: - movs r0, #0 - b _080F19A2 -_080F1976: - movs r1, #0 - adds r2, r3, #0 - adds r3, r0, #0 -_080F197C: - lsls r0, r1, #2 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, r3 - beq _080F1972 - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xf - bls _080F197C - lsls r0, r6, #0x18 - asrs r0, r0, #0x16 - adds r0, r0, r4 - strb r2, [r0] - movs r1, #1 - strb r1, [r0, #1] - ldrh r1, [r5, #2] - strh r1, [r0, #2] - movs r0, #1 -_080F19A2: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_080F1960 - - thumb_func_start sub_080F19A8 -sub_080F19A8: @ 0x080F19A8 - push {lr} - lsls r1, r1, #0x18 - lsrs r2, r1, #0x18 - lsls r1, r2, #2 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0 - beq _080F19BE - lsls r0, r2, #0x18 - asrs r0, r0, #0x18 - b _080F19C2 -_080F19BE: - movs r0, #1 - rsbs r0, r0, #0 -_080F19C2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080F19A8 - - thumb_func_start sub_080F19C8 -sub_080F19C8: @ 0x080F19C8 - push {r4, lr} - movs r4, #0 -_080F19CC: - ldr r0, _080F19F8 - ldr r0, [r0] - lsls r1, r4, #2 - adds r0, r0, r1 - ldr r1, _080F19FC - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #4 - bls _080F19E4 - adds r0, r4, #0 - bl ClearPokemonNewsI -_080F19E4: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xf - bls _080F19CC - bl sub_080EF9BC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F19F8: .4byte gUnknown_3005AEC -_080F19FC: .4byte 0x00002B50 - thumb_func_end sub_080F19C8 - - thumb_func_start sub_080F1A00 -sub_080F1A00: @ 0x080F1A00 - push {r4, r5, lr} - ldr r0, _080F1A34 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080F1A2C - movs r2, #0 - ldr r5, _080F1A38 - ldr r4, _080F1A3C - movs r3, #0 -_080F1A18: - ldr r0, [r5] - lsls r1, r2, #2 - adds r0, r0, r1 - adds r0, r0, r4 - strb r3, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xf - bls _080F1A18 -_080F1A2C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080F1A34: .4byte 0x00000864 -_080F1A38: .4byte gUnknown_3005AEC -_080F1A3C: .4byte 0x00002B51 - thumb_func_end sub_080F1A00 - - thumb_func_start sub_080F1A40 -sub_080F1A40: @ 0x080F1A40 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r5, r1, #0 - movs r0, #0x2c - bl AllocZeroed - adds r4, r0, #0 - movs r7, #0 -_080F1A50: - lsls r0, r7, #3 - adds r1, r0, r7 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrb r1, [r1] - subs r1, #1 - adds r2, r0, #0 - cmp r1, #0x28 - bls _080F1A64 - b _080F1CD0 -_080F1A64: - lsls r0, r1, #2 - ldr r1, _080F1A70 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F1A70: .4byte _080F1A74 -_080F1A74: @ jump table - .4byte _080F1B18 @ case 0 - .4byte _080F1B18 @ case 1 - .4byte _080F1B36 @ case 2 - .4byte _080F1CD0 @ case 3 - .4byte _080F1C2E @ case 4 - .4byte _080F1BFA @ case 5 - .4byte _080F1BC2 @ case 6 - .4byte _080F1CD0 @ case 7 - .4byte _080F1CD0 @ case 8 - .4byte _080F1CD0 @ case 9 - .4byte _080F1CD0 @ case 10 - .4byte _080F1CD0 @ case 11 - .4byte _080F1CD0 @ case 12 - .4byte _080F1CD0 @ case 13 - .4byte _080F1CD0 @ case 14 - .4byte _080F1CD0 @ case 15 - .4byte _080F1CD0 @ case 16 - .4byte _080F1CD0 @ case 17 - .4byte _080F1CD0 @ case 18 - .4byte _080F1CD0 @ case 19 - .4byte _080F1B6E @ case 20 - .4byte _080F1BA2 @ case 21 - .4byte _080F1C66 @ case 22 - .4byte _080F1C86 @ case 23 - .4byte _080F1CA6 @ case 24 - .4byte _080F1CD0 @ case 25 - .4byte _080F1CD0 @ case 26 - .4byte _080F1CD0 @ case 27 - .4byte _080F1CD0 @ case 28 - .4byte _080F1CD0 @ case 29 - .4byte _080F1CD0 @ case 30 - .4byte _080F1CD0 @ case 31 - .4byte _080F1CD0 @ case 32 - .4byte _080F1CD0 @ case 33 - .4byte _080F1CD0 @ case 34 - .4byte _080F1CD0 @ case 35 - .4byte _080F1CD0 @ case 36 - .4byte _080F1CD0 @ case 37 - .4byte _080F1CD0 @ case 38 - .4byte _080F1CD0 @ case 39 - .4byte _080F1CC6 @ case 40 -_080F1B18: - adds r0, r2, r7 - lsls r0, r0, #2 - adds r0, r6, r0 - str r0, [r4] - adds r0, #0x10 - bl IsStringJapanese - cmp r0, #0 - beq _080F1B32 - ldr r1, [r4] - movs r0, #1 - strb r0, [r1, #0x18] - b _080F1CD0 -_080F1B32: - ldr r0, [r4] - b _080F1CCE -_080F1B36: - adds r0, r2, r7 - lsls r0, r0, #2 - adds r0, r6, r0 - str r0, [r4, #4] - adds r0, #5 - bl IsStringJapanese - cmp r0, #0 - beq _080F1B50 - ldr r1, [r4, #4] - movs r0, #1 - strb r0, [r1, #0xd] - b _080F1B54 -_080F1B50: - ldr r0, [r4, #4] - strb r5, [r0, #0xd] -_080F1B54: - ldr r0, [r4, #4] - adds r0, #0x10 - bl IsStringJapanese - cmp r0, #0 - beq _080F1B68 - ldr r1, [r4, #4] - movs r0, #1 - strb r0, [r1, #0xe] - b _080F1CD0 -_080F1B68: - ldr r0, [r4, #4] - strb r5, [r0, #0xe] - b _080F1CD0 -_080F1B6E: - adds r0, r2, r7 - lsls r0, r0, #2 - adds r0, r6, r0 - str r0, [r4, #0x18] - adds r0, #0x13 - bl IsStringJapanese - cmp r0, #0 - beq _080F1B88 - ldr r1, [r4, #0x18] - movs r0, #1 - strb r0, [r1, #2] - b _080F1B8C -_080F1B88: - ldr r0, [r4, #0x18] - strb r5, [r0, #2] -_080F1B8C: - ldr r0, [r4, #0x18] - adds r0, #4 - bl IsStringJapanese - cmp r0, #0 - beq _080F1B9C - ldr r1, [r4, #0x18] - b _080F1BB6 -_080F1B9C: - ldr r0, [r4, #0x18] - strb r5, [r0, #3] - b _080F1CD0 -_080F1BA2: - adds r0, r2, r7 - lsls r0, r0, #2 - adds r0, r6, r0 - str r0, [r4, #0x1c] - adds r0, #0x13 - bl IsStringJapanese - cmp r0, #0 - beq _080F1BBC - ldr r1, [r4, #0x1c] -_080F1BB6: - movs r0, #1 - strb r0, [r1, #3] - b _080F1CD0 -_080F1BBC: - ldr r0, [r4, #0x1c] - strb r5, [r0, #3] - b _080F1CD0 -_080F1BC2: - adds r0, r2, r7 - lsls r0, r0, #2 - adds r0, r6, r0 - str r0, [r4, #0x14] - adds r0, #2 - bl IsStringJapanese - cmp r0, #0 - beq _080F1BDC - ldr r1, [r4, #0x14] - movs r0, #1 - strb r0, [r1, #0x1d] - b _080F1BE0 -_080F1BDC: - ldr r0, [r4, #0x14] - strb r5, [r0, #0x1d] -_080F1BE0: - ldr r0, [r4, #0x14] - adds r0, #0xc - bl IsStringJapanese - cmp r0, #0 - beq _080F1BF4 - ldr r1, [r4, #0x14] - movs r0, #1 - strb r0, [r1, #0x1e] - b _080F1CD0 -_080F1BF4: - ldr r0, [r4, #0x14] - strb r5, [r0, #0x1e] - b _080F1CD0 -_080F1BFA: - adds r0, r2, r7 - lsls r0, r0, #2 - adds r0, r6, r0 - str r0, [r4, #0x10] - adds r0, #0x16 - bl IsStringJapanese - cmp r0, #0 - beq _080F1C14 - ldr r1, [r4, #0x10] - movs r0, #1 - strb r0, [r1, #0x1e] - b _080F1C18 -_080F1C14: - ldr r0, [r4, #0x10] - strb r5, [r0, #0x1e] -_080F1C18: - ldr r0, [r4, #0x10] - adds r0, #8 - bl IsStringJapanese - cmp r0, #0 - beq _080F1C28 - ldr r1, [r4, #0x10] - b _080F1C5A -_080F1C28: - ldr r0, [r4, #0x10] - strb r5, [r0, #0x1f] - b _080F1CD0 -_080F1C2E: - adds r0, r2, r7 - lsls r0, r0, #2 - adds r0, r6, r0 - str r0, [r4, #0xc] - adds r0, #0xf - bl IsStringJapanese - cmp r0, #0 - beq _080F1C48 - ldr r1, [r4, #0xc] - movs r0, #1 - strb r0, [r1, #0x1e] - b _080F1C4C -_080F1C48: - ldr r0, [r4, #0xc] - strb r5, [r0, #0x1e] -_080F1C4C: - ldr r0, [r4, #0xc] - adds r0, #4 - bl IsStringJapanese - cmp r0, #0 - beq _080F1C60 - ldr r1, [r4, #0xc] -_080F1C5A: - movs r0, #1 - strb r0, [r1, #0x1f] - b _080F1CD0 -_080F1C60: - ldr r0, [r4, #0xc] - strb r5, [r0, #0x1f] - b _080F1CD0 -_080F1C66: - adds r0, r2, r7 - lsls r0, r0, #2 - adds r0, r6, r0 - str r0, [r4, #8] - adds r0, #0x13 - bl IsStringJapanese - cmp r0, #0 - beq _080F1C80 - ldr r1, [r4, #8] - movs r0, #1 - strb r0, [r1, #2] - b _080F1CD0 -_080F1C80: - ldr r0, [r4, #8] - strb r5, [r0, #2] - b _080F1CD0 -_080F1C86: - adds r0, r2, r7 - lsls r0, r0, #2 - adds r0, r6, r0 - str r0, [r4, #0x20] - adds r0, #0x13 - bl IsStringJapanese - cmp r0, #0 - beq _080F1CA0 - ldr r1, [r4, #0x20] - movs r0, #1 - strb r0, [r1, #6] - b _080F1CD0 -_080F1CA0: - ldr r0, [r4, #0x20] - strb r5, [r0, #6] - b _080F1CD0 -_080F1CA6: - adds r0, r2, r7 - lsls r0, r0, #2 - adds r0, r6, r0 - str r0, [r4, #0x24] - adds r0, #0x13 - bl IsStringJapanese - cmp r0, #0 - beq _080F1CC0 - ldr r1, [r4, #0x24] - movs r0, #1 - strb r0, [r1, #0xb] - b _080F1CD0 -_080F1CC0: - ldr r0, [r4, #0x24] - strb r5, [r0, #0xb] - b _080F1CD0 -_080F1CC6: - adds r0, r2, r7 - lsls r0, r0, #2 - adds r0, r6, r0 - str r0, [r4, #0x28] -_080F1CCE: - strb r5, [r0, #0x18] -_080F1CD0: - adds r7, #1 - cmp r7, #0x17 - bgt _080F1CD8 - b _080F1A50 -_080F1CD8: - adds r0, r4, #0 - bl Free - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_080F1A40 - - thumb_func_start sub_080F1CE4 -sub_080F1CE4: @ 0x080F1CE4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r5, #0 - movs r6, #0x17 -_080F1CEC: - ldrb r0, [r4] - cmp r0, #0x17 - beq _080F1D08 - cmp r0, #0x19 - bne _080F1D18 - ldrb r0, [r4, #0xa] - cmp r0, #0x58 - bls _080F1D18 - adds r0, r5, #0 - movs r1, #0 - movs r2, #0x24 - bl memset - b _080F1D18 -_080F1D08: - ldrb r0, [r4, #0x12] - cmp r0, #0x58 - bls _080F1D18 - adds r0, r5, #0 - movs r1, #0 - movs r2, #0x24 - bl memset -_080F1D18: - adds r4, #0x24 - adds r5, #0x24 - subs r6, #1 - cmp r6, #0 - bge _080F1CEC - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_080F1CE4 - - thumb_func_start DoTVShow -DoTVShow: @ 0x080F1D28 - push {lr} - ldr r0, _080F1D60 - ldr r2, [r0] - ldr r0, _080F1D64 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, r2, r0 - ldr r1, _080F1D68 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080F1D46 - b _080F1ED2 -_080F1D46: - subs r1, #1 - adds r0, r2, r1 - ldrb r0, [r0] - subs r0, #1 - cmp r0, #0x28 - bls _080F1D54 - b _080F1ED2 -_080F1D54: - lsls r0, r0, #2 - ldr r1, _080F1D6C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F1D60: .4byte gUnknown_3005AEC -_080F1D64: .4byte gUnknown_2037280 -_080F1D68: .4byte 0x000027CD -_080F1D6C: .4byte _080F1D70 -_080F1D70: @ jump table - .4byte _080F1E14 @ case 0 - .4byte _080F1E1A @ case 1 - .4byte _080F1E20 @ case 2 - .4byte _080F1E26 @ case 3 - .4byte _080F1E4A @ case 4 - .4byte _080F1E32 @ case 5 - .4byte _080F1E38 @ case 6 - .4byte _080F1E50 @ case 7 - .4byte _080F1E5C @ case 8 - .4byte _080F1E56 @ case 9 - .4byte _080F1EA4 @ case 10 - .4byte _080F1ECE @ case 11 - .4byte _080F1ED2 @ case 12 - .4byte _080F1ED2 @ case 13 - .4byte _080F1ED2 @ case 14 - .4byte _080F1ED2 @ case 15 - .4byte _080F1ED2 @ case 16 - .4byte _080F1ED2 @ case 17 - .4byte _080F1ED2 @ case 18 - .4byte _080F1ED2 @ case 19 - .4byte _080F1E3E @ case 20 - .4byte _080F1E44 @ case 21 - .4byte _080F1E62 @ case 22 - .4byte _080F1E68 @ case 23 - .4byte _080F1E6E @ case 24 - .4byte _080F1E74 @ case 25 - .4byte _080F1E7A @ case 26 - .4byte _080F1E80 @ case 27 - .4byte _080F1E86 @ case 28 - .4byte _080F1E8C @ case 29 - .4byte _080F1E92 @ case 30 - .4byte _080F1E98 @ case 31 - .4byte _080F1E9E @ case 32 - .4byte _080F1EAA @ case 33 - .4byte _080F1EB0 @ case 34 - .4byte _080F1EB6 @ case 35 - .4byte _080F1EBC @ case 36 - .4byte _080F1EC2 @ case 37 - .4byte _080F1EC8 @ case 38 - .4byte _080F1ED2 @ case 39 - .4byte _080F1E2C @ case 40 -_080F1E14: - bl DoTVShowPokemonFanClubLetter - b _080F1ED2 -_080F1E1A: - bl sub_080F2EE8 - b _080F1ED2 -_080F1E20: - bl DoTVShowPokemonFanClubOpinions - b _080F1ED2 -_080F1E26: - bl sub_080F3174 - b _080F1ED2 -_080F1E2C: - bl DoTVShowPokemonNewsMassOutbreak - b _080F1ED2 -_080F1E32: - bl sub_080F1ED8 - b _080F1ED2 -_080F1E38: - bl DoTVShowBravoTrainerBattleTower - b _080F1ED2 -_080F1E3E: - bl DoTVShowPokemonTodaySuccessfulCapture - b _080F1ED2 -_080F1E44: - bl DoTVShowTodaysSmartShopper - b _080F1ED2 -_080F1E4A: - bl DoTVShowTheNameRaterShow - b _080F1ED2 -_080F1E50: - bl sub_080F31E8 - b _080F1ED2 -_080F1E56: - bl sub_080F39CC - b _080F1ED2 -_080F1E5C: - bl sub_080F3C00 - b _080F1ED2 -_080F1E62: - bl DoTVShowPokemonTodayFailedCapture - b _080F1ED2 -_080F1E68: - bl DoTVShowPokemonAngler - b _080F1ED2 -_080F1E6E: - bl DoTVShowTheWorldOfMasters - b _080F1ED2 -_080F1E74: - bl sub_080F4260 - b _080F1ED2 -_080F1E7A: - bl DoTVShowDewfordTrendWatcherNetwork - b _080F1ED2 -_080F1E80: - bl DoTVShowHoennTreasureInvestigators - b _080F1ED2 -_080F1E86: - bl DoTVShowFindThatGamer - b _080F1ED2 -_080F1E8C: - bl sub_080F488C - b _080F1ED2 -_080F1E92: - bl DoTVShowSecretBaseVisit - b _080F1ED2 -_080F1E98: - bl DoTVShowPokemonLotteryWinnerFlashReport - b _080F1ED2 -_080F1E9E: - bl sub_080F4EA0 - b _080F1ED2 -_080F1EA4: - bl sub_080F50AC - b _080F1ED2 -_080F1EAA: - bl sub_080F51E0 - b _080F1ED2 -_080F1EB0: - bl sub_080F537C - b _080F1ED2 -_080F1EB6: - bl sub_080F55B0 - b _080F1ED2 -_080F1EBC: - bl DoTVShowWhatsNo1InHoennToday - b _080F1ED2 -_080F1EC2: - bl sub_080F5A10 - b _080F1ED2 -_080F1EC8: - bl DoTVShowSafariFanClub - b _080F1ED2 -_080F1ECE: - bl DoTVShowPokemonContestLiveUpdates2 -_080F1ED2: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end DoTVShow - - thumb_func_start sub_080F1ED8 -sub_080F1ED8: @ 0x080F1ED8 - push {r4, r5, lr} - ldr r2, _080F1F08 - ldr r0, _080F1F0C - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080F1F10 - adds r0, r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r1, _080F1F14 - movs r0, #0 - strh r0, [r1] - ldr r0, _080F1F18 - ldrb r5, [r0] - cmp r5, #8 - bls _080F1EFE - b _080F2140 -_080F1EFE: - lsls r0, r5, #2 - ldr r1, _080F1F1C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F1F08: .4byte gUnknown_3005AEC -_080F1F0C: .4byte gUnknown_2037280 -_080F1F10: .4byte 0x000027CC -_080F1F14: .4byte gUnknown_2037290 -_080F1F18: .4byte gUnknown_2039CFC -_080F1F1C: .4byte _080F1F20 -_080F1F20: @ jump table - .4byte _080F1F44 @ case 0 - .4byte _080F1F9C @ case 1 - .4byte _080F1FD4 @ case 2 - .4byte _080F2004 @ case 3 - .4byte _080F2038 @ case 4 - .4byte _080F206C @ case 5 - .4byte _080F20B0 @ case 6 - .4byte _080F20F8 @ case 7 - .4byte _080F2128 @ case 8 -_080F1F44: - ldr r0, _080F1F84 - adds r1, r4, #0 - adds r1, #0x16 - bl StringCopy - ldrb r1, [r4, #0x13] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - movs r0, #1 - bl CopyContestCategoryToStringVar - ldrb r1, [r4, #0x13] - lsls r1, r1, #0x1b - lsrs r1, r1, #0x1e - movs r0, #2 - bl CopyContestRankToStringVar - ldrh r1, [r4, #2] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r1, _080F1F88 - adds r0, r0, r1 - adds r1, r4, #0 - adds r1, #8 - bl StringCompare - cmp r0, #0 - bne _080F1F90 - ldr r1, _080F1F8C - movs r0, #8 - b _080F213E - .align 2, 0 -_080F1F84: .4byte gUnknown_2021C40 -_080F1F88: .4byte gUnknown_82EA31C -_080F1F8C: .4byte gUnknown_2039CFC -_080F1F90: - ldr r1, _080F1F98 - movs r0, #1 - b _080F213E - .align 2, 0 -_080F1F98: .4byte gUnknown_2039CFC -_080F1F9C: - ldr r0, _080F1FC8 - ldrh r2, [r4, #2] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F1FCC - adds r1, r1, r2 - bl StringCopy - ldr r0, _080F1FD0 - adds r1, r4, #0 - adds r1, #8 - bl StringCopy10 - ldrb r1, [r4, #0x13] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - movs r0, #2 - bl CopyContestCategoryToStringVar - b _080F213A - .align 2, 0 -_080F1FC8: .4byte gUnknown_2021C40 -_080F1FCC: .4byte gUnknown_82EA31C -_080F1FD0: .4byte gUnknown_2021C54 -_080F1FD4: - ldr r0, _080F1FF0 - adds r1, r4, #0 - adds r1, #0x16 - bl StringCopy - ldrb r1, [r4, #0x13] - movs r0, #0x60 - ands r0, r1 - cmp r0, #0 - bne _080F1FF8 - ldr r1, _080F1FF4 - movs r0, #3 - b _080F213E - .align 2, 0 -_080F1FF0: .4byte gUnknown_2021C40 -_080F1FF4: .4byte gUnknown_2039CFC -_080F1FF8: - ldr r1, _080F2000 - movs r0, #4 - b _080F213E - .align 2, 0 -_080F2000: .4byte gUnknown_2039CFC -_080F2004: - ldr r0, _080F202C - adds r1, r4, #0 - adds r1, #0x16 - bl StringCopy - ldr r0, _080F2030 - ldrh r1, [r4, #4] - bl CopyEasyChatWord - ldrb r1, [r4, #0x13] - lsls r1, r1, #0x19 - lsrs r1, r1, #0x1e - adds r1, #1 - movs r0, #2 - bl TV_PrintIntToStringVar - ldr r1, _080F2034 - movs r0, #5 - b _080F213E - .align 2, 0 -_080F202C: .4byte gUnknown_2021C40 -_080F2030: .4byte gUnknown_2021C54 -_080F2034: .4byte gUnknown_2039CFC -_080F2038: - ldr r0, _080F2060 - adds r1, r4, #0 - adds r1, #0x16 - bl StringCopy - ldr r0, _080F2064 - ldrh r1, [r4, #4] - bl CopyEasyChatWord - ldrb r1, [r4, #0x13] - lsls r1, r1, #0x19 - lsrs r1, r1, #0x1e - adds r1, #1 - movs r0, #2 - bl TV_PrintIntToStringVar - ldr r1, _080F2068 - movs r0, #5 - b _080F213E - .align 2, 0 -_080F2060: .4byte gUnknown_2021C40 -_080F2064: .4byte gUnknown_2021C54 -_080F2068: .4byte gUnknown_2039CFC -_080F206C: - ldr r0, _080F2098 - adds r1, r4, #0 - adds r1, #0x16 - bl StringCopy - ldrb r1, [r4, #0x13] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - movs r0, #1 - bl CopyContestCategoryToStringVar - ldr r0, _080F209C - ldrh r1, [r4, #6] - bl CopyEasyChatWord - ldrh r0, [r4, #0x14] - cmp r0, #0 - beq _080F20A4 - ldr r1, _080F20A0 - movs r0, #6 - b _080F213E - .align 2, 0 -_080F2098: .4byte gUnknown_2021C40 -_080F209C: .4byte gUnknown_2021C68 -_080F20A0: .4byte gUnknown_2039CFC -_080F20A4: - ldr r1, _080F20AC - movs r0, #7 - b _080F213E - .align 2, 0 -_080F20AC: .4byte gUnknown_2039CFC -_080F20B0: - ldr r0, _080F20E0 - ldrh r2, [r4, #2] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F20E4 - adds r1, r1, r2 - bl StringCopy - ldr r0, _080F20E8 - ldrh r1, [r4, #0x14] - lsls r1, r1, #3 - ldr r2, _080F20EC - adds r1, r1, r2 - bl StringCopy - ldr r0, _080F20F0 - ldrh r1, [r4, #6] - bl CopyEasyChatWord - ldr r1, _080F20F4 - movs r0, #7 - b _080F213E - .align 2, 0 -_080F20E0: .4byte gUnknown_2021C40 -_080F20E4: .4byte gUnknown_82EA31C -_080F20E8: .4byte gUnknown_2021C54 -_080F20EC: .4byte gUnknown_82EACC4 -_080F20F0: .4byte gUnknown_2021C68 -_080F20F4: .4byte gUnknown_2039CFC -_080F20F8: - ldr r0, _080F211C - adds r1, r4, #0 - adds r1, #0x16 - bl StringCopy - ldr r0, _080F2120 - ldrh r2, [r4, #2] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F2124 - adds r1, r1, r2 - bl StringCopy - bl TVShowDone - b _080F2140 - .align 2, 0 -_080F211C: .4byte gUnknown_2021C40 -_080F2120: .4byte gUnknown_2021C54 -_080F2124: .4byte gUnknown_82EA31C -_080F2128: - ldr r0, _080F2154 - ldrh r2, [r4, #2] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F2158 - adds r1, r1, r2 - bl StringCopy -_080F213A: - ldr r1, _080F215C - movs r0, #2 -_080F213E: - strb r0, [r1] -_080F2140: - ldr r0, _080F2160 - lsls r1, r5, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080F2154: .4byte gUnknown_2021C40 -_080F2158: .4byte gUnknown_82EA31C -_080F215C: .4byte gUnknown_2039CFC -_080F2160: .4byte gUnknown_8568CB0 - thumb_func_end sub_080F1ED8 - - thumb_func_start DoTVShowBravoTrainerBattleTower -DoTVShowBravoTrainerBattleTower: @ 0x080F2164 - push {r4, r5, lr} - ldr r2, _080F2198 - ldr r0, _080F219C - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080F21A0 - adds r0, r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r1, _080F21A4 - movs r0, #0 - strh r0, [r1] - ldr r0, _080F21A8 - ldrb r5, [r0] - adds r2, r0, #0 - cmp r5, #0xe - bls _080F218C - b _080F23CA -_080F218C: - lsls r0, r5, #2 - ldr r1, _080F21AC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F2198: .4byte gUnknown_3005AEC -_080F219C: .4byte gUnknown_2037280 -_080F21A0: .4byte 0x000027CC -_080F21A4: .4byte gUnknown_2037290 -_080F21A8: .4byte gUnknown_2039CFC -_080F21AC: .4byte _080F21B0 -_080F21B0: @ jump table - .4byte _080F21EC @ case 0 - .4byte _080F2230 @ case 1 - .4byte _080F2280 @ case 2 - .4byte _080F22A0 @ case 3 - .4byte _080F22CC @ case 4 - .4byte _080F2314 @ case 5 - .4byte _080F2320 @ case 6 - .4byte _080F232C @ case 7 - .4byte _080F2332 @ case 8 - .4byte _080F2332 @ case 9 - .4byte _080F2332 @ case 10 - .4byte _080F234C @ case 11 - .4byte _080F2378 @ case 12 - .4byte _080F2378 @ case 13 - .4byte _080F23AC @ case 14 -_080F21EC: - ldr r0, _080F2214 - adds r1, r4, #2 - bl StringCopy - ldr r0, _080F2218 - ldrh r2, [r4, #0xa] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F221C - adds r1, r1, r2 - bl StringCopy - ldrh r0, [r4, #0x16] - cmp r0, #6 - bls _080F2224 - ldr r1, _080F2220 - movs r0, #1 - strb r0, [r1] - b _080F23CA - .align 2, 0 -_080F2214: .4byte gUnknown_2021C40 -_080F2218: .4byte gUnknown_2021C54 -_080F221C: .4byte gUnknown_82EA31C -_080F2220: .4byte gUnknown_2039CFC -_080F2224: - ldr r1, _080F222C - movs r0, #2 - strb r0, [r1] - b _080F23CA - .align 2, 0 -_080F222C: .4byte gUnknown_2039CFC -_080F2230: - ldrb r0, [r4, #0x1a] - cmp r0, #0x32 - bne _080F2248 - ldr r0, _080F2240 - ldr r1, _080F2244 - bl StringCopy - b _080F2250 - .align 2, 0 -_080F2240: .4byte gUnknown_2021C40 -_080F2244: .4byte gUnknown_85CAB0D -_080F2248: - ldr r0, _080F2268 - ldr r1, _080F226C - bl StringCopy -_080F2250: - ldrh r1, [r4, #0x16] - movs r0, #1 - bl TV_PrintIntToStringVar - ldrb r0, [r4, #0x1c] - cmp r0, #1 - bne _080F2274 - ldr r1, _080F2270 - movs r0, #3 - strb r0, [r1] - b _080F23CA - .align 2, 0 -_080F2268: .4byte gUnknown_2021C40 -_080F226C: .4byte gUnknown_85CAB13 -_080F2270: .4byte gUnknown_2039CFC -_080F2274: - ldr r1, _080F227C - movs r0, #4 - strb r0, [r1] - b _080F23CA - .align 2, 0 -_080F227C: .4byte gUnknown_2039CFC -_080F2280: - ldr r0, _080F229C - adds r1, r4, #0 - adds r1, #0xc - bl StringCopy - ldrh r1, [r4, #0x16] - adds r1, #1 - movs r0, #1 - bl TV_PrintIntToStringVar -_080F2294: - ldrb r0, [r4, #0x1b] - cmp r0, #0 - beq _080F22EE - b _080F2308 - .align 2, 0 -_080F229C: .4byte gUnknown_2021C40 -_080F22A0: - ldr r0, _080F22C0 - adds r1, r4, #0 - adds r1, #0xc - bl StringCopy - ldr r0, _080F22C4 - ldrh r2, [r4, #0x14] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F22C8 - adds r1, r1, r2 - bl StringCopy - b _080F2294 - .align 2, 0 -_080F22C0: .4byte gUnknown_2021C40 -_080F22C4: .4byte gUnknown_2021C54 -_080F22C8: .4byte gUnknown_82EA31C -_080F22CC: - ldr r0, _080F22F8 - adds r1, r4, #0 - adds r1, #0xc - bl StringCopy - ldr r0, _080F22FC - ldrh r2, [r4, #0x14] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F2300 - adds r1, r1, r2 - bl StringCopy - ldrb r0, [r4, #0x1b] - cmp r0, #0 - bne _080F2308 -_080F22EE: - ldr r1, _080F2304 - movs r0, #5 - strb r0, [r1] - b _080F23CA - .align 2, 0 -_080F22F8: .4byte gUnknown_2021C40 -_080F22FC: .4byte gUnknown_2021C54 -_080F2300: .4byte gUnknown_82EA31C -_080F2304: .4byte gUnknown_2039CFC -_080F2308: - ldr r1, _080F2310 - movs r0, #6 - strb r0, [r1] - b _080F23CA - .align 2, 0 -_080F2310: .4byte gUnknown_2039CFC -_080F2314: - ldr r0, _080F231C - adds r1, r4, #0 - adds r1, #0xc - b _080F2336 - .align 2, 0 -_080F231C: .4byte gUnknown_2021C40 -_080F2320: - ldr r0, _080F2328 - adds r1, r4, #0 - adds r1, #0xc - b _080F2336 - .align 2, 0 -_080F2328: .4byte gUnknown_2021C40 -_080F232C: - movs r0, #0xb - strb r0, [r2] - b _080F23CA -_080F2332: - ldr r0, _080F2344 - adds r1, r4, #2 -_080F2336: - bl StringCopy - ldr r1, _080F2348 - movs r0, #0xb - strb r0, [r1] - b _080F23CA - .align 2, 0 -_080F2344: .4byte gUnknown_2021C40 -_080F2348: .4byte gUnknown_2039CFC -_080F234C: - ldr r0, _080F2364 - ldrh r1, [r4, #0x18] - bl CopyEasyChatWord - ldrb r0, [r4, #0x1b] - cmp r0, #0 - bne _080F236C - ldr r1, _080F2368 - movs r0, #0xc - strb r0, [r1] - b _080F23CA - .align 2, 0 -_080F2364: .4byte gUnknown_2021C40 -_080F2368: .4byte gUnknown_2039CFC -_080F236C: - ldr r1, _080F2374 - movs r0, #0xd - strb r0, [r1] - b _080F23CA - .align 2, 0 -_080F2374: .4byte gUnknown_2039CFC -_080F2378: - ldr r0, _080F239C - ldrh r1, [r4, #0x18] - bl CopyEasyChatWord - ldr r0, _080F23A0 - adds r1, r4, #2 - bl StringCopy - ldr r0, _080F23A4 - adds r1, r4, #0 - adds r1, #0xc - bl StringCopy - ldr r1, _080F23A8 - movs r0, #0xe - strb r0, [r1] - b _080F23CA - .align 2, 0 -_080F239C: .4byte gUnknown_2021C40 -_080F23A0: .4byte gUnknown_2021C54 -_080F23A4: .4byte gUnknown_2021C68 -_080F23A8: .4byte gUnknown_2039CFC -_080F23AC: - ldr r0, _080F23DC - adds r1, r4, #2 - bl StringCopy - ldr r0, _080F23E0 - ldrh r2, [r4, #0xa] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F23E4 - adds r1, r1, r2 - bl StringCopy - bl TVShowDone -_080F23CA: - ldr r0, _080F23E8 - lsls r1, r5, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080F23DC: .4byte gUnknown_2021C40 -_080F23E0: .4byte gUnknown_2021C54 -_080F23E4: .4byte gUnknown_82EA31C -_080F23E8: .4byte gUnknown_8568CEC - thumb_func_end DoTVShowBravoTrainerBattleTower - - thumb_func_start DoTVShowTodaysSmartShopper -DoTVShowTodaysSmartShopper: @ 0x080F23EC - push {r4, r5, r6, lr} - ldr r2, _080F2420 - ldr r0, _080F2424 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080F2428 - adds r0, r0, r1 - ldr r1, [r2] - adds r5, r1, r0 - ldr r1, _080F242C - movs r0, #0 - strh r0, [r1] - ldr r0, _080F2430 - ldrb r6, [r0] - adds r2, r0, #0 - cmp r6, #0xc - bls _080F2414 - b _080F2606 -_080F2414: - lsls r0, r6, #2 - ldr r1, _080F2434 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F2420: .4byte gUnknown_3005AEC -_080F2424: .4byte gUnknown_2037280 -_080F2428: .4byte 0x000027CC -_080F242C: .4byte gUnknown_2037290 -_080F2430: .4byte gUnknown_2039CFC -_080F2434: .4byte _080F2438 -_080F2438: @ jump table - .4byte _080F246C @ case 0 - .4byte _080F24A8 @ case 1 - .4byte _080F24F0 @ case 2 - .4byte _080F2502 @ case 3 - .4byte _080F24F0 @ case 4 - .4byte _080F24F0 @ case 5 - .4byte _080F252C @ case 6 - .4byte _080F255C @ case 7 - .4byte _080F258C @ case 8 - .4byte _080F2598 @ case 9 - .4byte _080F25A6 @ case 10 - .4byte _080F25B8 @ case 11 - .4byte _080F25F8 @ case 12 -_080F246C: - ldr r0, _080F2490 - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - ldr r0, _080F2494 - ldrb r1, [r5, #0x12] - movs r2, #0 - bl GetMapName - ldrh r0, [r5, #0xc] - cmp r0, #0xfe - bls _080F249C - ldr r1, _080F2498 - movs r0, #0xb - strb r0, [r1] - b _080F2606 - .align 2, 0 -_080F2490: .4byte gUnknown_2021C40 -_080F2494: .4byte gUnknown_2021C54 -_080F2498: .4byte gUnknown_2039CFC -_080F249C: - ldr r1, _080F24A4 - movs r0, #1 - strb r0, [r1] - b _080F2606 - .align 2, 0 -_080F24A4: .4byte gUnknown_2039CFC -_080F24A8: - ldr r0, _080F24E4 - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - ldr r4, _080F24E8 - ldrh r0, [r5, #6] - bl sub_080D6C8C - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCopy - ldrh r1, [r5, #0xc] - movs r0, #2 - bl TV_PrintIntToStringVar - ldr r4, _080F24EC - bl Random - ldrb r2, [r4] - adds r2, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - ands r0, r1 - adds r0, r0, r2 - strb r0, [r4] - b _080F2606 - .align 2, 0 -_080F24E4: .4byte gUnknown_2021C40 -_080F24E8: .4byte gUnknown_2021C54 -_080F24EC: .4byte gUnknown_2039CFC -_080F24F0: - ldrh r0, [r5, #8] - cmp r0, #0 - beq _080F24FC - movs r0, #6 - strb r0, [r2] - b _080F2606 -_080F24FC: - movs r0, #0xa - strb r0, [r2] - b _080F2606 -_080F2502: - ldrh r1, [r5, #0xc] - adds r1, #1 - movs r0, #2 - bl TV_PrintIntToStringVar - ldrh r0, [r5, #8] - cmp r0, #0 - beq _080F2520 - ldr r1, _080F251C - movs r0, #6 - strb r0, [r1] - b _080F2606 - .align 2, 0 -_080F251C: .4byte gUnknown_2039CFC -_080F2520: - ldr r1, _080F2528 - movs r0, #0xa - strb r0, [r1] - b _080F2606 - .align 2, 0 -_080F2528: .4byte gUnknown_2039CFC -_080F252C: - ldr r4, _080F2554 - ldrh r0, [r5, #8] - bl sub_080D6C8C - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCopy - ldrh r1, [r5, #0xe] - movs r0, #2 - bl TV_PrintIntToStringVar - ldrh r0, [r5, #0xa] - cmp r0, #0 - beq _080F2574 - ldr r1, _080F2558 - movs r0, #7 - strb r0, [r1] - b _080F2606 - .align 2, 0 -_080F2554: .4byte gUnknown_2021C54 -_080F2558: .4byte gUnknown_2039CFC -_080F255C: - ldr r4, _080F2584 - ldrh r0, [r5, #0xa] - bl sub_080D6C8C - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCopy - ldrh r1, [r5, #0x10] - movs r0, #2 - bl TV_PrintIntToStringVar -_080F2574: - ldrb r0, [r5, #2] - cmp r0, #1 - beq _080F25D8 - ldr r1, _080F2588 - movs r0, #9 - strb r0, [r1] - b _080F2606 - .align 2, 0 -_080F2584: .4byte gUnknown_2021C54 -_080F2588: .4byte gUnknown_2039CFC -_080F258C: - ldrh r0, [r5, #0xc] - cmp r0, #0xfe - bls _080F25B2 - movs r0, #0xc - strb r0, [r2] - b _080F2606 -_080F2598: - movs r0, #1 - adds r1, r5, #0 - bl sub_080EFF10 - bl TVShowDone - b _080F2606 -_080F25A6: - ldrb r0, [r5, #2] - cmp r0, #1 - bne _080F25B2 - movs r0, #8 - strb r0, [r2] - b _080F2606 -_080F25B2: - movs r0, #9 - strb r0, [r2] - b _080F2606 -_080F25B8: - ldr r0, _080F25E0 - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - ldr r4, _080F25E4 - ldrh r0, [r5, #6] - bl sub_080D6C8C - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCopy - ldrb r0, [r5, #2] - cmp r0, #1 - bne _080F25EC -_080F25D8: - ldr r1, _080F25E8 - movs r0, #8 - strb r0, [r1] - b _080F2606 - .align 2, 0 -_080F25E0: .4byte gUnknown_2021C40 -_080F25E4: .4byte gUnknown_2021C54 -_080F25E8: .4byte gUnknown_2039CFC -_080F25EC: - ldr r1, _080F25F4 - movs r0, #0xc - strb r0, [r1] - b _080F2606 - .align 2, 0 -_080F25F4: .4byte gUnknown_2039CFC -_080F25F8: - ldr r0, _080F2618 - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - bl TVShowDone -_080F2606: - ldr r0, _080F261C - lsls r1, r6, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080F2618: .4byte gUnknown_2021C40 -_080F261C: .4byte gUnknown_8568C7C - thumb_func_end DoTVShowTodaysSmartShopper - - thumb_func_start DoTVShowTheNameRaterShow -DoTVShowTheNameRaterShow: @ 0x080F2620 - push {r4, r5, r6, lr} - sub sp, #8 - ldr r2, _080F2654 - ldr r0, _080F2658 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080F265C - adds r0, r0, r1 - ldr r1, [r2] - adds r5, r1, r0 - ldr r1, _080F2660 - movs r0, #0 - strh r0, [r1] - ldr r0, _080F2664 - ldrb r6, [r0] - adds r2, r0, #0 - cmp r6, #0x12 - bls _080F264A - b _080F28E0 -_080F264A: - lsls r0, r6, #2 - ldr r1, _080F2668 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F2654: .4byte gUnknown_3005AEC -_080F2658: .4byte gUnknown_2037280 -_080F265C: .4byte 0x000027CC -_080F2660: .4byte gUnknown_2037290 -_080F2664: .4byte gUnknown_2039CFC -_080F2668: .4byte _080F266C -_080F266C: @ jump table - .4byte _080F26B8 @ case 0 - .4byte _080F2700 @ case 1 - .4byte _080F2722 @ case 2 - .4byte _080F2700 @ case 3 - .4byte _080F2700 @ case 4 - .4byte _080F2700 @ case 5 - .4byte _080F2700 @ case 6 - .4byte _080F2700 @ case 7 - .4byte _080F2700 @ case 8 - .4byte _080F2768 @ case 9 - .4byte _080F2768 @ case 10 - .4byte _080F2768 @ case 11 - .4byte _080F27A4 @ case 12 - .4byte _080F27B6 @ case 13 - .4byte _080F27F4 @ case 14 - .4byte _080F2814 @ case 15 - .4byte _080F285C @ case 16 - .4byte _080F288C @ case 17 - .4byte _080F28D4 @ case 18 -_080F26B8: - ldr r0, _080F26EC - adds r1, r5, #0 - adds r1, #0xf - bl StringCopy - ldr r0, _080F26F0 - ldrh r2, [r5, #2] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F26F4 - adds r1, r1, r2 - bl StringCopy - ldr r0, _080F26F8 - adds r1, r5, #4 - bl StringCopy10 - ldr r4, _080F26FC - adds r0, r5, #0 - bl TV_GetNicknameSumMod8 - adds r0, #1 - strb r0, [r4] - b _080F28E0 - .align 2, 0 -_080F26EC: .4byte gUnknown_2021C40 -_080F26F0: .4byte gUnknown_2021C54 -_080F26F4: .4byte gUnknown_82EA31C -_080F26F8: .4byte gUnknown_2021C68 -_080F26FC: .4byte gUnknown_2039CFC -_080F2700: - ldrb r0, [r5, #0x1a] - cmp r0, #0 - bne _080F270C - movs r0, #9 - strb r0, [r2] - b _080F28E0 -_080F270C: - cmp r0, #1 - bne _080F2716 - movs r0, #0xa - strb r0, [r2] - b _080F28E0 -_080F2716: - cmp r0, #2 - beq _080F271C - b _080F28E0 -_080F271C: - movs r0, #0xb - strb r0, [r2] - b _080F28E0 -_080F2722: - ldr r0, _080F273C - adds r1, r5, #0 - adds r1, #0xf - bl StringCopy - ldrb r0, [r5, #0x1a] - cmp r0, #0 - bne _080F2744 - ldr r1, _080F2740 - movs r0, #9 - strb r0, [r1] - b _080F28E0 - .align 2, 0 -_080F273C: .4byte gUnknown_2021C40 -_080F2740: .4byte gUnknown_2039CFC -_080F2744: - cmp r0, #1 - bne _080F2754 - ldr r1, _080F2750 - movs r0, #0xa - strb r0, [r1] - b _080F28E0 - .align 2, 0 -_080F2750: .4byte gUnknown_2039CFC -_080F2754: - cmp r0, #2 - beq _080F275A - b _080F28E0 -_080F275A: - ldr r1, _080F2764 - movs r0, #0xb - strb r0, [r1] - b _080F28E0 - .align 2, 0 -_080F2764: .4byte gUnknown_2039CFC -_080F2768: - ldr r0, _080F279C - adds r1, r5, #4 - bl StringCopy10 - movs r4, #0 - str r4, [sp] - str r5, [sp, #4] - movs r0, #1 - movs r1, #0 - movs r2, #0 - movs r3, #1 - bl sub_080F06CC - str r4, [sp] - str r5, [sp, #4] - movs r0, #2 - movs r1, #1 - movs r2, #0 - movs r3, #1 - bl sub_080F06CC - ldr r1, _080F27A0 - movs r0, #0xc - strb r0, [r1] - b _080F28E0 - .align 2, 0 -_080F279C: .4byte gUnknown_2021C40 -_080F27A0: .4byte gUnknown_2039CFC -_080F27A4: - ldrb r0, [r5, #0x1b] - cmp r0, #0 - bne _080F27B0 - movs r0, #0xd - strb r0, [r2] - b _080F28E0 -_080F27B0: - movs r0, #0xf - strb r0, [r2] - b _080F28E0 -_080F27B6: - ldr r0, _080F27EC - adds r1, r5, #0 - adds r1, #0xf - bl StringCopy - movs r4, #0 - str r4, [sp] - str r5, [sp, #4] - movs r0, #1 - movs r1, #0 - movs r2, #2 - movs r3, #0 - bl sub_080F06CC - str r4, [sp] - str r5, [sp, #4] - movs r0, #2 - movs r1, #0 - movs r2, #3 - movs r3, #1 - bl sub_080F06CC - ldr r1, _080F27F0 - movs r0, #0xe - strb r0, [r1] - b _080F28E0 - .align 2, 0 -_080F27EC: .4byte gUnknown_2021C40 -_080F27F0: .4byte gUnknown_2039CFC -_080F27F4: - movs r4, #0 - str r4, [sp] - str r5, [sp, #4] - movs r0, #1 - movs r1, #0 - movs r2, #2 - movs r3, #1 - bl sub_080F06CC - str r4, [sp] - str r5, [sp, #4] - movs r0, #2 - movs r1, #0 - movs r2, #3 - movs r3, #0 - b _080F28BC -_080F2814: - movs r0, #0 - str r0, [sp] - str r5, [sp, #4] - movs r1, #0 - movs r2, #2 - movs r3, #1 - bl sub_080F06CC - ldr r0, _080F2850 - ldrh r2, [r5, #2] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F2854 - adds r1, r1, r2 - bl StringCopy - ldrh r0, [r5, #2] - str r0, [sp] - str r5, [sp, #4] - movs r0, #2 - movs r1, #0 - movs r2, #3 - movs r3, #2 - bl sub_080F06CC - ldr r1, _080F2858 - movs r0, #0x10 - strb r0, [r1] - b _080F28E0 - .align 2, 0 -_080F2850: .4byte gUnknown_2021C54 -_080F2854: .4byte gUnknown_82EA31C -_080F2858: .4byte gUnknown_2039CFC -_080F285C: - ldrh r0, [r5, #2] - str r0, [sp] - str r5, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #2 - movs r3, #2 - bl sub_080F06CC - movs r0, #0 - str r0, [sp] - str r5, [sp, #4] - movs r0, #2 - movs r1, #0 - movs r2, #3 - movs r3, #1 - bl sub_080F06CC - ldr r1, _080F2888 - movs r0, #0x11 - strb r0, [r1] - b _080F28E0 - .align 2, 0 -_080F2888: .4byte gUnknown_2039CFC -_080F288C: - movs r0, #0 - str r0, [sp] - str r5, [sp, #4] - movs r1, #0 - movs r2, #2 - movs r3, #1 - bl sub_080F06CC - ldr r0, _080F28C8 - ldrh r2, [r5, #0x1c] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F28CC - adds r1, r1, r2 - bl StringCopy - ldrh r0, [r5, #0x1c] - str r0, [sp] - str r5, [sp, #4] - movs r0, #2 - movs r1, #0 - movs r2, #3 - movs r3, #2 -_080F28BC: - bl sub_080F06CC - ldr r1, _080F28D0 - movs r0, #0x12 - strb r0, [r1] - b _080F28E0 - .align 2, 0 -_080F28C8: .4byte gUnknown_2021C54 -_080F28CC: .4byte gUnknown_82EA31C -_080F28D0: .4byte gUnknown_2039CFC -_080F28D4: - ldr r0, _080F28F4 - adds r1, r5, #4 - bl StringCopy10 - bl TVShowDone -_080F28E0: - ldr r0, _080F28F8 - lsls r1, r6, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080F28F4: .4byte gUnknown_2021C40 -_080F28F8: .4byte gUnknown_8568DE4 - thumb_func_end DoTVShowTheNameRaterShow - - thumb_func_start DoTVShowPokemonTodaySuccessfulCapture -DoTVShowPokemonTodaySuccessfulCapture: @ 0x080F28FC - push {r4, r5, r6, lr} - ldr r2, _080F2930 - ldr r0, _080F2934 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080F2938 - adds r0, r0, r1 - ldr r1, [r2] - adds r5, r1, r0 - ldr r1, _080F293C - movs r0, #0 - strh r0, [r1] - ldr r0, _080F2940 - ldrb r6, [r0] - adds r2, r0, #0 - cmp r6, #0xb - bls _080F2924 - b _080F2B38 -_080F2924: - lsls r0, r6, #2 - ldr r1, _080F2944 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F2930: .4byte gUnknown_3005AEC -_080F2934: .4byte gUnknown_2037280 -_080F2938: .4byte 0x000027CC -_080F293C: .4byte gUnknown_2037290 -_080F2940: .4byte gUnknown_2039CFC -_080F2944: .4byte _080F2948 -_080F2948: @ jump table - .4byte _080F2978 @ case 0 - .4byte _080F29CC @ case 1 - .4byte _080F29D2 @ case 2 - .4byte _080F2A0C @ case 3 - .4byte _080F2A44 @ case 4 - .4byte _080F2A4A @ case 5 - .4byte _080F2A80 @ case 6 - .4byte _080F2AD0 @ case 7 - .4byte _080F2AD0 @ case 8 - .4byte _080F2B00 @ case 9 - .4byte _080F2B00 @ case 10 - .4byte _080F2B34 @ case 11 -_080F2978: - ldr r0, _080F29AC - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - ldr r0, _080F29B0 - ldrh r2, [r5, #0x10] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F29B4 - adds r1, r1, r2 - bl StringCopy - ldr r0, _080F29B8 - adds r1, r5, #4 - bl StringCopy10 - ldrb r0, [r5, #0xf] - cmp r0, #1 - bne _080F29C0 - ldr r1, _080F29BC - movs r0, #5 - strb r0, [r1] - b _080F2B38 - .align 2, 0 -_080F29AC: .4byte gUnknown_2021C40 -_080F29B0: .4byte gUnknown_2021C54 -_080F29B4: .4byte gUnknown_82EA31C -_080F29B8: .4byte gUnknown_2021C68 -_080F29BC: .4byte gUnknown_2039CFC -_080F29C0: - ldr r1, _080F29C8 - movs r0, #1 - strb r0, [r1] - b _080F2B38 - .align 2, 0 -_080F29C8: .4byte gUnknown_2039CFC -_080F29CC: - movs r0, #2 - strb r0, [r2] - b _080F2B38 -_080F29D2: - ldr r4, _080F29F8 - ldrb r0, [r5, #0xf] - bl sub_080D6C8C - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCopy - ldrb r1, [r5, #0x12] - movs r0, #2 - bl TV_PrintIntToStringVar - ldrb r0, [r5, #0x12] - cmp r0, #3 - bhi _080F2A00 - ldr r1, _080F29FC - movs r0, #3 - strb r0, [r1] - b _080F2B38 - .align 2, 0 -_080F29F8: .4byte gUnknown_2021C54 -_080F29FC: .4byte gUnknown_2039CFC -_080F2A00: - ldr r1, _080F2A08 - movs r0, #4 - strb r0, [r1] - b _080F2B38 - .align 2, 0 -_080F2A08: .4byte gUnknown_2039CFC -_080F2A0C: - ldr r0, _080F2A34 - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - ldr r0, _080F2A38 - ldrh r2, [r5, #0x10] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F2A3C - adds r1, r1, r2 - bl StringCopy - ldr r0, _080F2A40 - adds r1, r5, #4 - bl StringCopy10 - b _080F2A66 - .align 2, 0 -_080F2A34: .4byte gUnknown_2021C40 -_080F2A38: .4byte gUnknown_2021C54 -_080F2A3C: .4byte gUnknown_82EA31C -_080F2A40: .4byte gUnknown_2021C68 -_080F2A44: - movs r0, #6 - strb r0, [r2] - b _080F2B38 -_080F2A4A: - ldr r0, _080F2A70 - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - ldr r0, _080F2A74 - ldrh r2, [r5, #0x10] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F2A78 - adds r1, r1, r2 - bl StringCopy -_080F2A66: - ldr r1, _080F2A7C - movs r0, #6 - strb r0, [r1] - b _080F2B38 - .align 2, 0 -_080F2A70: .4byte gUnknown_2021C40 -_080F2A74: .4byte gUnknown_2021C54 -_080F2A78: .4byte gUnknown_82EA31C -_080F2A7C: .4byte gUnknown_2039CFC -_080F2A80: - ldr r0, _080F2ABC - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - ldr r0, _080F2AC0 - ldrh r2, [r5, #0x10] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F2AC4 - adds r1, r1, r2 - bl StringCopy - ldr r0, _080F2AC8 - adds r1, r5, #4 - bl StringCopy10 - ldr r4, _080F2ACC - bl Random - ldrb r2, [r4] - adds r2, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - ands r0, r1 - adds r0, r0, r2 - strb r0, [r4] - b _080F2B38 - .align 2, 0 -_080F2ABC: .4byte gUnknown_2021C40 -_080F2AC0: .4byte gUnknown_2021C54 -_080F2AC4: .4byte gUnknown_82EA31C -_080F2AC8: .4byte gUnknown_2021C68 -_080F2ACC: .4byte gUnknown_2039CFC -_080F2AD0: - ldr r0, _080F2AF4 - ldrh r2, [r5, #0x10] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F2AF8 - adds r1, r1, r2 - bl StringCopy - ldr r0, _080F2AFC - adds r1, r5, #4 - bl StringCopy10 - ldrh r1, [r5, #0x10] - movs r0, #2 - bl TV_GetSomeOtherSpeciesAlreadySeenByPlayer_AndPrintName - b _080F2B1A - .align 2, 0 -_080F2AF4: .4byte gUnknown_2021C40 -_080F2AF8: .4byte gUnknown_82EA31C -_080F2AFC: .4byte gUnknown_2021C54 -_080F2B00: - ldr r0, _080F2B24 - ldrh r2, [r5, #0x10] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F2B28 - adds r1, r1, r2 - bl StringCopy - ldr r0, _080F2B2C - adds r1, r5, #4 - bl StringCopy10 -_080F2B1A: - ldr r1, _080F2B30 - movs r0, #0xb - strb r0, [r1] - b _080F2B38 - .align 2, 0 -_080F2B24: .4byte gUnknown_2021C40 -_080F2B28: .4byte gUnknown_82EA31C -_080F2B2C: .4byte gUnknown_2021C54 -_080F2B30: .4byte gUnknown_2039CFC -_080F2B34: - bl TVShowDone -_080F2B38: - ldr r0, _080F2B4C - lsls r1, r6, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080F2B4C: .4byte gUnknown_8568C4C - thumb_func_end DoTVShowPokemonTodaySuccessfulCapture - - thumb_func_start DoTVShowPokemonTodayFailedCapture -DoTVShowPokemonTodayFailedCapture: @ 0x080F2B50 - push {r4, r5, lr} - ldr r2, _080F2B80 - ldr r0, _080F2B84 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080F2B88 - adds r0, r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r1, _080F2B8C - movs r0, #0 - strh r0, [r1] - ldr r0, _080F2B90 - ldrb r5, [r0] - cmp r5, #6 - bls _080F2B76 - b _080F2CA0 -_080F2B76: - lsls r0, r5, #2 - ldr r1, _080F2B94 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F2B80: .4byte gUnknown_3005AEC -_080F2B84: .4byte gUnknown_2037280 -_080F2B88: .4byte 0x000027CC -_080F2B8C: .4byte gUnknown_2037290 -_080F2B90: .4byte gUnknown_2039CFC -_080F2B94: .4byte _080F2B98 -_080F2B98: @ jump table - .4byte _080F2BB4 @ case 0 - .4byte _080F2BE8 @ case 1 - .4byte _080F2C3C @ case 2 - .4byte _080F2C3C @ case 3 - .4byte _080F2C80 @ case 4 - .4byte _080F2C80 @ case 5 - .4byte _080F2C9C @ case 6 -_080F2BB4: - ldr r0, _080F2BD8 - adds r1, r4, #0 - adds r1, #0x13 - bl StringCopy - ldr r0, _080F2BDC - ldrh r2, [r4, #0xc] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F2BE0 - adds r1, r1, r2 - bl StringCopy - ldr r1, _080F2BE4 - movs r0, #1 - strb r0, [r1] - b _080F2CA0 - .align 2, 0 -_080F2BD8: .4byte gUnknown_2021C40 -_080F2BDC: .4byte gUnknown_2021C54 -_080F2BE0: .4byte gUnknown_82EA31C -_080F2BE4: .4byte gUnknown_2039CFC -_080F2BE8: - ldr r0, _080F2C1C - adds r1, r4, #0 - adds r1, #0x13 - bl StringCopy - ldr r0, _080F2C20 - ldrb r1, [r4, #0x12] - movs r2, #0 - bl GetMapName - ldr r0, _080F2C24 - ldrh r2, [r4, #0xe] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F2C28 - adds r1, r1, r2 - bl StringCopy - ldrb r0, [r4, #0x11] - cmp r0, #1 - bne _080F2C30 - ldr r1, _080F2C2C - movs r0, #3 - strb r0, [r1] - b _080F2CA0 - .align 2, 0 -_080F2C1C: .4byte gUnknown_2021C40 -_080F2C20: .4byte gUnknown_2021C54 -_080F2C24: .4byte gUnknown_2021C68 -_080F2C28: .4byte gUnknown_82EA31C -_080F2C2C: .4byte gUnknown_2039CFC -_080F2C30: - ldr r1, _080F2C38 - movs r0, #2 - strb r0, [r1] - b _080F2CA0 - .align 2, 0 -_080F2C38: .4byte gUnknown_2039CFC -_080F2C3C: - ldr r0, _080F2C6C - adds r1, r4, #0 - adds r1, #0x13 - bl StringCopy - ldrb r1, [r4, #0x10] - movs r0, #1 - bl TV_PrintIntToStringVar - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080F2C74 - ldr r1, _080F2C70 - movs r0, #5 - strb r0, [r1] - b _080F2CA0 - .align 2, 0 -_080F2C6C: .4byte gUnknown_2021C40 -_080F2C70: .4byte gUnknown_2039CFC -_080F2C74: - ldr r1, _080F2C7C - movs r0, #4 - strb r0, [r1] - b _080F2CA0 - .align 2, 0 -_080F2C7C: .4byte gUnknown_2039CFC -_080F2C80: - ldr r0, _080F2C94 - adds r1, r4, #0 - adds r1, #0x13 - bl StringCopy - ldr r1, _080F2C98 - movs r0, #6 - strb r0, [r1] - b _080F2CA0 - .align 2, 0 -_080F2C94: .4byte gUnknown_2021C40 -_080F2C98: .4byte gUnknown_2039CFC -_080F2C9C: - bl TVShowDone -_080F2CA0: - ldr r0, _080F2CB4 - lsls r1, r5, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080F2CB4: .4byte gUnknown_8568E40 - thumb_func_end DoTVShowPokemonTodayFailedCapture - - thumb_func_start DoTVShowPokemonFanClubLetter -DoTVShowPokemonFanClubLetter: @ 0x080F2CB8 - push {r4, r5, r6, r7, lr} - ldr r2, _080F2CEC - ldr r0, _080F2CF0 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080F2CF4 - adds r0, r0, r1 - ldr r1, [r2] - adds r5, r1, r0 - ldr r1, _080F2CF8 - movs r0, #0 - strh r0, [r1] - ldr r0, _080F2CFC - ldrb r7, [r0] - adds r6, r0, #0 - cmp r7, #0x33 - bls _080F2CE0 - b _080F2ED0 -_080F2CE0: - lsls r0, r7, #2 - ldr r1, _080F2D00 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F2CEC: .4byte gUnknown_3005AEC -_080F2CF0: .4byte gUnknown_2037280 -_080F2CF4: .4byte 0x000027CC -_080F2CF8: .4byte gUnknown_2037290 -_080F2CFC: .4byte gUnknown_2039CFC -_080F2D00: .4byte _080F2D04 -_080F2D04: @ jump table - .4byte _080F2DD4 @ case 0 - .4byte _080F2E08 @ case 1 - .4byte _080F2E34 @ case 2 - .4byte _080F2E3A @ case 3 - .4byte _080F2E52 @ case 4 - .4byte _080F2E52 @ case 5 - .4byte _080F2E52 @ case 6 - .4byte _080F2E64 @ case 7 - .4byte _080F2ED0 @ case 8 - .4byte _080F2ED0 @ case 9 - .4byte _080F2ED0 @ case 10 - .4byte _080F2ED0 @ case 11 - .4byte _080F2ED0 @ case 12 - .4byte _080F2ED0 @ case 13 - .4byte _080F2ED0 @ case 14 - .4byte _080F2ED0 @ case 15 - .4byte _080F2ED0 @ case 16 - .4byte _080F2ED0 @ case 17 - .4byte _080F2ED0 @ case 18 - .4byte _080F2ED0 @ case 19 - .4byte _080F2ED0 @ case 20 - .4byte _080F2ED0 @ case 21 - .4byte _080F2ED0 @ case 22 - .4byte _080F2ED0 @ case 23 - .4byte _080F2ED0 @ case 24 - .4byte _080F2ED0 @ case 25 - .4byte _080F2ED0 @ case 26 - .4byte _080F2ED0 @ case 27 - .4byte _080F2ED0 @ case 28 - .4byte _080F2ED0 @ case 29 - .4byte _080F2ED0 @ case 30 - .4byte _080F2ED0 @ case 31 - .4byte _080F2ED0 @ case 32 - .4byte _080F2ED0 @ case 33 - .4byte _080F2ED0 @ case 34 - .4byte _080F2ED0 @ case 35 - .4byte _080F2ED0 @ case 36 - .4byte _080F2ED0 @ case 37 - .4byte _080F2ED0 @ case 38 - .4byte _080F2ED0 @ case 39 - .4byte _080F2ED0 @ case 40 - .4byte _080F2ED0 @ case 41 - .4byte _080F2ED0 @ case 42 - .4byte _080F2ED0 @ case 43 - .4byte _080F2ED0 @ case 44 - .4byte _080F2ED0 @ case 45 - .4byte _080F2ED0 @ case 46 - .4byte _080F2ED0 @ case 47 - .4byte _080F2ED0 @ case 48 - .4byte _080F2ED0 @ case 49 - .4byte _080F2E86 @ case 50 - .4byte _080F2EAC @ case 51 -_080F2DD4: - ldr r0, _080F2DF8 - adds r1, r5, #0 - adds r1, #0x10 - bl StringCopy - ldr r0, _080F2DFC - ldrh r2, [r5, #2] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F2E00 - adds r1, r1, r2 - bl StringCopy - ldr r1, _080F2E04 - movs r0, #0x32 - strb r0, [r1] - b _080F2ED0 - .align 2, 0 -_080F2DF8: .4byte gUnknown_2021C40 -_080F2DFC: .4byte gUnknown_2021C54 -_080F2E00: .4byte gUnknown_82EA31C -_080F2E04: .4byte gUnknown_2039CFC -_080F2E08: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - ands r0, r1 - adds r2, r0, #1 - cmp r2, #1 - bne _080F2E28 - ldr r1, _080F2E24 - movs r0, #2 - strb r0, [r1] - b _080F2ED0 - .align 2, 0 -_080F2E24: .4byte gUnknown_2039CFC -_080F2E28: - ldr r1, _080F2E30 - adds r0, r2, #2 - strb r0, [r1] - b _080F2ED0 - .align 2, 0 -_080F2E30: .4byte gUnknown_2039CFC -_080F2E34: - movs r0, #0x33 - strb r0, [r6] - b _080F2ED0 -_080F2E3A: - bl Random - ldrb r4, [r6] - adds r4, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - adds r0, r0, r4 - strb r0, [r6] - b _080F2ED0 -_080F2E52: - adds r0, r5, #0 - bl TV_FanClubLetter_RandomWordToStringVar3 - ldr r1, _080F2E60 - movs r0, #7 - strb r0, [r1] - b _080F2ED0 - .align 2, 0 -_080F2E60: .4byte gUnknown_2039CFC -_080F2E64: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x1f - bl __umodsi3 - adds r0, #0x46 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - movs r0, #2 - adds r1, r2, #0 - bl TV_PrintIntToStringVar - bl TVShowDone - b _080F2ED0 -_080F2E86: - ldr r4, _080F2EA4 - adds r1, r5, #4 - adds r0, r4, #0 - movs r2, #2 - movs r3, #2 - bl ConvertEasyChatWordsToString - adds r0, r4, #0 - bl ShowFieldMessage - ldr r1, _080F2EA8 - movs r0, #1 - strb r0, [r1] - b _080F2EDC - .align 2, 0 -_080F2EA4: .4byte gUnknown_2021C7C -_080F2EA8: .4byte gUnknown_2039CFC -_080F2EAC: - ldr r4, _080F2EC8 - adds r1, r5, #4 - adds r0, r4, #0 - movs r2, #2 - movs r3, #2 - bl ConvertEasyChatWordsToString - adds r0, r4, #0 - bl ShowFieldMessage - ldr r1, _080F2ECC - movs r0, #3 - strb r0, [r1] - b _080F2EDC - .align 2, 0 -_080F2EC8: .4byte gUnknown_2021C7C -_080F2ECC: .4byte gUnknown_2039CFC -_080F2ED0: - ldr r0, _080F2EE4 - lsls r1, r7, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl ShowFieldMessage -_080F2EDC: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F2EE4: .4byte gUnknown_8568BFC - thumb_func_end DoTVShowPokemonFanClubLetter - - thumb_func_start sub_080F2EE8 -sub_080F2EE8: @ 0x080F2EE8 - push {r4, r5, r6, r7, lr} - ldr r2, _080F2F1C - ldr r0, _080F2F20 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080F2F24 - adds r0, r0, r1 - ldr r1, [r2] - adds r5, r1, r0 - ldr r1, _080F2F28 - movs r0, #0 - strh r0, [r1] - ldr r0, _080F2F2C - ldrb r6, [r0] - adds r7, r0, #0 - cmp r6, #0x32 - bls _080F2F10 - b _080F3068 -_080F2F10: - lsls r0, r6, #2 - ldr r1, _080F2F30 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F2F1C: .4byte gUnknown_3005AEC -_080F2F20: .4byte gUnknown_2037280 -_080F2F24: .4byte 0x000027CC -_080F2F28: .4byte gUnknown_2037290 -_080F2F2C: .4byte gUnknown_2039CFC -_080F2F30: .4byte _080F2F34 -_080F2F34: @ jump table - .4byte _080F3000 @ case 0 - .4byte _080F3020 @ case 1 - .4byte _080F3038 @ case 2 - .4byte _080F3038 @ case 3 - .4byte _080F3038 @ case 4 - .4byte _080F303E @ case 5 - .4byte _080F3068 @ case 6 - .4byte _080F3068 @ case 7 - .4byte _080F3068 @ case 8 - .4byte _080F3068 @ case 9 - .4byte _080F3068 @ case 10 - .4byte _080F3068 @ case 11 - .4byte _080F3068 @ case 12 - .4byte _080F3068 @ case 13 - .4byte _080F3068 @ case 14 - .4byte _080F3068 @ case 15 - .4byte _080F3068 @ case 16 - .4byte _080F3068 @ case 17 - .4byte _080F3068 @ case 18 - .4byte _080F3068 @ case 19 - .4byte _080F3068 @ case 20 - .4byte _080F3068 @ case 21 - .4byte _080F3068 @ case 22 - .4byte _080F3068 @ case 23 - .4byte _080F3068 @ case 24 - .4byte _080F3068 @ case 25 - .4byte _080F3068 @ case 26 - .4byte _080F3068 @ case 27 - .4byte _080F3068 @ case 28 - .4byte _080F3068 @ case 29 - .4byte _080F3068 @ case 30 - .4byte _080F3068 @ case 31 - .4byte _080F3068 @ case 32 - .4byte _080F3068 @ case 33 - .4byte _080F3068 @ case 34 - .4byte _080F3068 @ case 35 - .4byte _080F3068 @ case 36 - .4byte _080F3068 @ case 37 - .4byte _080F3068 @ case 38 - .4byte _080F3068 @ case 39 - .4byte _080F3068 @ case 40 - .4byte _080F3068 @ case 41 - .4byte _080F3068 @ case 42 - .4byte _080F3068 @ case 43 - .4byte _080F3068 @ case 44 - .4byte _080F3068 @ case 45 - .4byte _080F3068 @ case 46 - .4byte _080F3068 @ case 47 - .4byte _080F3068 @ case 48 - .4byte _080F3068 @ case 49 - .4byte _080F3044 @ case 50 -_080F3000: - ldr r0, _080F3018 - adds r1, r5, #0 - adds r1, #0x10 - bl StringCopy - adds r0, r5, #0 - bl TV_FanClubLetter_RandomWordToStringVar3 - ldr r1, _080F301C - movs r0, #0x32 - strb r0, [r1] - b _080F3068 - .align 2, 0 -_080F3018: .4byte gUnknown_2021C40 -_080F301C: .4byte gUnknown_2039CFC -_080F3020: - bl Random - ldrb r4, [r7] - adds r4, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - adds r0, r0, r4 - strb r0, [r7] - b _080F3068 -_080F3038: - movs r0, #5 - strb r0, [r7] - b _080F3068 -_080F303E: - bl TVShowDone - b _080F3068 -_080F3044: - ldr r4, _080F3060 - adds r1, r5, #4 - adds r0, r4, #0 - movs r2, #2 - movs r3, #2 - bl ConvertEasyChatWordsToString - adds r0, r4, #0 - bl ShowFieldMessage - ldr r1, _080F3064 - movs r0, #1 - strb r0, [r1] - b _080F3074 - .align 2, 0 -_080F3060: .4byte gUnknown_2021C7C -_080F3064: .4byte gUnknown_2039CFC -_080F3068: - ldr r0, _080F307C - lsls r1, r6, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl ShowFieldMessage -_080F3074: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F307C: .4byte gUnknown_8568C1C - thumb_func_end sub_080F2EE8 - - thumb_func_start DoTVShowPokemonFanClubOpinions -DoTVShowPokemonFanClubOpinions: @ 0x080F3080 - push {r4, r5, r6, lr} - ldr r2, _080F30B0 - ldr r0, _080F30B4 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080F30B8 - adds r0, r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r1, _080F30BC - movs r0, #0 - strh r0, [r1] - ldr r6, _080F30C0 - ldrb r5, [r6] - cmp r5, #3 - bgt _080F30C4 - cmp r5, #1 - bge _080F3108 - cmp r5, #0 - beq _080F30CA - b _080F3154 - .align 2, 0 -_080F30B0: .4byte gUnknown_3005AEC -_080F30B4: .4byte gUnknown_2037280 -_080F30B8: .4byte 0x000027CC -_080F30BC: .4byte gUnknown_2037290 -_080F30C0: .4byte gUnknown_2039CFC -_080F30C4: - cmp r5, #4 - beq _080F3140 - b _080F3154 -_080F30CA: - ldr r0, _080F30F8 - adds r1, r4, #5 - bl StringCopy - ldr r0, _080F30FC - ldrh r2, [r4, #2] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F3100 - adds r1, r1, r2 - bl StringCopy - ldr r0, _080F3104 - adds r1, r4, #0 - adds r1, #0x10 - bl StringCopy10 - ldrb r0, [r4, #4] - lsrs r0, r0, #4 - adds r0, #1 - strb r0, [r6] - b _080F3154 - .align 2, 0 -_080F30F8: .4byte gUnknown_2021C40 -_080F30FC: .4byte gUnknown_2021C54 -_080F3100: .4byte gUnknown_82EA31C -_080F3104: .4byte gUnknown_2021C68 -_080F3108: - ldr r0, _080F3130 - adds r1, r4, #5 - bl StringCopy - ldr r0, _080F3134 - ldrh r2, [r4, #2] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F3138 - adds r1, r1, r2 - bl StringCopy - ldr r0, _080F313C - ldrh r1, [r4, #0x1c] - bl CopyEasyChatWord - movs r0, #4 - strb r0, [r6] - b _080F3154 - .align 2, 0 -_080F3130: .4byte gUnknown_2021C40 -_080F3134: .4byte gUnknown_2021C54 -_080F3138: .4byte gUnknown_82EA31C -_080F313C: .4byte gUnknown_2021C68 -_080F3140: - ldr r0, _080F3168 - adds r1, r4, #5 - bl StringCopy - ldr r0, _080F316C - ldrh r1, [r4, #0x1e] - bl CopyEasyChatWord - bl TVShowDone -_080F3154: - ldr r0, _080F3170 - lsls r1, r5, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080F3168: .4byte gUnknown_2021C40 -_080F316C: .4byte gUnknown_2021C68 -_080F3170: .4byte gUnknown_8568C34 - thumb_func_end DoTVShowPokemonFanClubOpinions - - thumb_func_start sub_080F3174 -sub_080F3174: @ 0x080F3174 - bx lr - .align 2, 0 - thumb_func_end sub_080F3174 - - thumb_func_start DoTVShowPokemonNewsMassOutbreak -DoTVShowPokemonNewsMassOutbreak: @ 0x080F3178 - push {r4, lr} - ldr r2, _080F31C8 - ldr r0, _080F31CC - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080F31D0 - adds r0, r0, r1 - ldr r4, [r2] - adds r4, r4, r0 - ldr r0, _080F31D4 - ldrb r1, [r4, #0x10] - movs r2, #0 - bl GetMapName - ldr r0, _080F31D8 - ldrh r2, [r4, #0xc] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F31DC - adds r1, r1, r2 - bl StringCopy - bl TVShowDone - bl StartMassOutbreak - ldr r1, _080F31E0 - ldr r0, _080F31E4 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl ShowFieldMessage - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F31C8: .4byte gUnknown_3005AEC -_080F31CC: .4byte gUnknown_2037280 -_080F31D0: .4byte 0x000027CC -_080F31D4: .4byte gUnknown_2021C40 -_080F31D8: .4byte gUnknown_2021C54 -_080F31DC: .4byte gUnknown_82EA31C -_080F31E0: .4byte gUnknown_8568C48 -_080F31E4: .4byte gUnknown_2039CFC - thumb_func_end DoTVShowPokemonNewsMassOutbreak - - thumb_func_start sub_080F31E8 -sub_080F31E8: @ 0x080F31E8 - push {r4, r5, r6, lr} - ldr r2, _080F321C - ldr r0, _080F3220 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080F3224 - adds r0, r0, r1 - ldr r1, [r2] - adds r5, r1, r0 - ldr r1, _080F3228 - movs r0, #0 - strh r0, [r1] - ldr r0, _080F322C - ldrb r6, [r0] - adds r2, r0, #0 - cmp r6, #0x20 - bls _080F3212 - bl _080F39A8 -_080F3212: - lsls r0, r6, #2 - ldr r1, _080F3230 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F321C: .4byte gUnknown_3005AEC -_080F3220: .4byte gUnknown_2037280 -_080F3224: .4byte 0x000027CC -_080F3228: .4byte gUnknown_2037290 -_080F322C: .4byte gUnknown_2039CFC -_080F3230: .4byte _080F3234 -_080F3234: @ jump table - .4byte _080F32B8 @ case 0 - .4byte _080F33A8 @ case 1 - .4byte _080F33F6 @ case 2 - .4byte _080F3420 @ case 3 - .4byte _080F3448 @ case 4 - .4byte _080F3584 @ case 5 - .4byte _080F359C @ case 6 - .4byte _080F35B4 @ case 7 - .4byte _080F35CC @ case 8 - .4byte _080F364C @ case 9 - .4byte _080F3664 @ case 10 - .4byte _080F367C @ case 11 - .4byte _080F3694 @ case 12 - .4byte _080F36AC @ case 13 - .4byte _080F36C4 @ case 14 - .4byte _080F3744 @ case 15 - .4byte _080F375C @ case 16 - .4byte _080F3774 @ case 17 - .4byte _080F378C @ case 18 - .4byte _080F37A4 @ case 19 - .4byte _080F37BC @ case 20 - .4byte _080F37D4 @ case 21 - .4byte _080F37EC @ case 22 - .4byte _080F3828 @ case 23 - .4byte _080F38FC @ case 24 - .4byte _080F3914 @ case 25 - .4byte _080F3970 @ case 26 - .4byte _080F3970 @ case 27 - .4byte _080F3938 @ case 28 - .4byte _080F393E @ case 29 - .4byte _080F3970 @ case 30 - .4byte _080F3970 @ case 31 - .4byte _080F3988 @ case 32 -_080F32B8: - ldrb r0, [r5, #0x1c] - cmp r0, #4 - bhi _080F3338 - lsls r0, r0, #2 - ldr r1, _080F32C8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F32C8: .4byte _080F32CC -_080F32CC: @ jump table - .4byte _080F32E0 @ case 0 - .4byte _080F32F4 @ case 1 - .4byte _080F3308 @ case 2 - .4byte _080F331C @ case 3 - .4byte _080F3330 @ case 4 -_080F32E0: - ldr r0, _080F32EC - ldr r1, _080F32F0 - bl StringCopy - b _080F3338 - .align 2, 0 -_080F32EC: .4byte gUnknown_2021C40 -_080F32F0: .4byte gUnknown_85CAC84 -_080F32F4: - ldr r0, _080F3300 - ldr r1, _080F3304 - bl StringCopy - b _080F3338 - .align 2, 0 -_080F3300: .4byte gUnknown_2021C40 -_080F3304: .4byte gUnknown_85CAC8A -_080F3308: - ldr r0, _080F3314 - ldr r1, _080F3318 - bl StringCopy - b _080F3338 - .align 2, 0 -_080F3314: .4byte gUnknown_2021C40 -_080F3318: .4byte gUnknown_85CAC90 -_080F331C: - ldr r0, _080F3328 - ldr r1, _080F332C - bl StringCopy - b _080F3338 - .align 2, 0 -_080F3328: .4byte gUnknown_2021C40 -_080F332C: .4byte gUnknown_85CAC95 -_080F3330: - ldr r0, _080F3368 - ldr r1, _080F336C - bl StringCopy -_080F3338: - ldr r0, _080F3370 - ldrh r2, [r5, #0x12] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F3374 - adds r1, r1, r2 - bl StringCopy - ldr r0, _080F3378 - adds r1, r5, #0 - adds r1, #0x14 - bl StringCopy - ldrb r0, [r5, #0xd] - ldrb r1, [r5, #0xe] - cmp r0, r1 - bne _080F338C - cmp r0, #0 - bne _080F3380 - ldr r1, _080F337C - movs r0, #1 - strb r0, [r1] - b _080F39A8 - .align 2, 0 -_080F3368: .4byte gUnknown_2021C40 -_080F336C: .4byte gUnknown_85CAC9A -_080F3370: .4byte gUnknown_2021C54 -_080F3374: .4byte gUnknown_82EA31C -_080F3378: .4byte gUnknown_2021C68 -_080F337C: .4byte gUnknown_2039CFC -_080F3380: - ldr r1, _080F3388 - movs r0, #3 - strb r0, [r1] - b _080F39A8 - .align 2, 0 -_080F3388: .4byte gUnknown_2039CFC -_080F338C: - cmp r0, r1 - bls _080F339C - ldr r1, _080F3398 - movs r0, #2 - strb r0, [r1] - b _080F39A8 - .align 2, 0 -_080F3398: .4byte gUnknown_2039CFC -_080F339C: - ldr r1, _080F33A4 - movs r0, #4 - strb r0, [r1] - b _080F39A8 - .align 2, 0 -_080F33A4: .4byte gUnknown_2039CFC -_080F33A8: - ldr r0, _080F33D4 - ldrh r2, [r5, #0x12] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F33D8 - adds r1, r1, r2 - bl StringCopy - ldrb r1, [r5, #0xf] - cmp r1, #8 - bne _080F33C2 - b _080F3548 -_080F33C2: - cmp r1, #8 - bgt _080F33DC -_080F33C6: - cmp r1, #2 - bne _080F33CC - b _080F3530 -_080F33CC: - cmp r1, #2 - bgt _080F33D2 - b _080F34EC -_080F33D2: - b _080F3504 - .align 2, 0 -_080F33D4: .4byte gUnknown_2021C54 -_080F33D8: .4byte gUnknown_82EA31C -_080F33DC: - cmp r1, #0x20 - bne _080F33E2 - b _080F3560 -_080F33E2: - cmp r1, #0x20 - bgt _080F33E8 - b _080F3512 -_080F33E8: - cmp r1, #0x40 - bne _080F33EE - b _080F356C -_080F33EE: - cmp r1, #0x80 - beq _080F33F4 - b _080F39A8 -_080F33F4: - b _080F3578 -_080F33F6: - ldr r0, _080F3418 - ldrh r2, [r5, #0x12] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F341C - adds r1, r1, r2 -_080F3404: - bl StringCopy - ldrb r1, [r5, #0xf] - cmp r1, #8 - bne _080F3410 - b _080F3548 -_080F3410: - cmp r1, #8 - ble _080F33C6 - b _080F33DC - .align 2, 0 -_080F3418: .4byte gUnknown_2021C54 -_080F341C: .4byte gUnknown_82EA31C -_080F3420: - ldr r0, _080F343C - ldrh r2, [r5, #0x12] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F3440 - adds r1, r1, r2 - bl StringCopy - ldr r0, _080F3444 - adds r1, r5, #0 - adds r1, #0x14 - b _080F3404 - .align 2, 0 -_080F343C: .4byte gUnknown_2021C54 -_080F3440: .4byte gUnknown_82EA31C -_080F3444: .4byte gUnknown_2021C68 -_080F3448: - ldrb r0, [r5, #0x1c] - cmp r0, #4 - bhi _080F34C8 - lsls r0, r0, #2 - ldr r1, _080F3458 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F3458: .4byte _080F345C -_080F345C: @ jump table - .4byte _080F3470 @ case 0 - .4byte _080F3484 @ case 1 - .4byte _080F3498 @ case 2 - .4byte _080F34AC @ case 3 - .4byte _080F34C0 @ case 4 -_080F3470: - ldr r0, _080F347C - ldr r1, _080F3480 - bl StringCopy - b _080F34C8 - .align 2, 0 -_080F347C: .4byte gUnknown_2021C40 -_080F3480: .4byte gUnknown_85CAC84 -_080F3484: - ldr r0, _080F3490 - ldr r1, _080F3494 - bl StringCopy - b _080F34C8 - .align 2, 0 -_080F3490: .4byte gUnknown_2021C40 -_080F3494: .4byte gUnknown_85CAC8A -_080F3498: - ldr r0, _080F34A4 - ldr r1, _080F34A8 - bl StringCopy - b _080F34C8 - .align 2, 0 -_080F34A4: .4byte gUnknown_2021C40 -_080F34A8: .4byte gUnknown_85CAC90 -_080F34AC: - ldr r0, _080F34B8 - ldr r1, _080F34BC - bl StringCopy - b _080F34C8 - .align 2, 0 -_080F34B8: .4byte gUnknown_2021C40 -_080F34BC: .4byte gUnknown_85CAC95 -_080F34C0: - ldr r0, _080F34F4 - ldr r1, _080F34F8 - bl StringCopy -_080F34C8: - ldr r0, _080F34FC - ldrh r2, [r5, #0x12] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F3500 - adds r1, r1, r2 - bl StringCopy - ldrb r1, [r5, #0xf] - cmp r1, #8 - beq _080F3548 - cmp r1, #8 - bgt _080F350A - cmp r1, #2 - beq _080F3530 - cmp r1, #2 - bgt _080F3504 -_080F34EC: - cmp r1, #1 - beq _080F3522 - b _080F39A8 - .align 2, 0 -_080F34F4: .4byte gUnknown_2021C40 -_080F34F8: .4byte gUnknown_85CAC9A -_080F34FC: .4byte gUnknown_2021C54 -_080F3500: .4byte gUnknown_82EA31C -_080F3504: - cmp r1, #4 - beq _080F353C - b _080F39A8 -_080F350A: - cmp r1, #0x20 - beq _080F3560 - cmp r1, #0x20 - bgt _080F3518 -_080F3512: - cmp r1, #0x10 - beq _080F3554 - b _080F39A8 -_080F3518: - cmp r1, #0x40 - beq _080F356C - cmp r1, #0x80 - beq _080F3578 - b _080F39A8 -_080F3522: - ldr r1, _080F352C - movs r0, #8 - strb r0, [r1] - b _080F39A8 - .align 2, 0 -_080F352C: .4byte gUnknown_2039CFC -_080F3530: - ldr r1, _080F3538 - movs r0, #5 - strb r0, [r1] - b _080F39A8 - .align 2, 0 -_080F3538: .4byte gUnknown_2039CFC -_080F353C: - ldr r1, _080F3544 - movs r0, #0xe - strb r0, [r1] - b _080F39A8 - .align 2, 0 -_080F3544: .4byte gUnknown_2039CFC -_080F3548: - ldr r1, _080F3550 - movs r0, #7 - strb r0, [r1] - b _080F39A8 - .align 2, 0 -_080F3550: .4byte gUnknown_2039CFC -_080F3554: - ldr r1, _080F355C - movs r0, #6 - strb r0, [r1] - b _080F39A8 - .align 2, 0 -_080F355C: .4byte gUnknown_2039CFC -_080F3560: - ldr r1, _080F3568 - movs r0, #0x14 - strb r0, [r1] - b _080F39A8 - .align 2, 0 -_080F3568: .4byte gUnknown_2039CFC -_080F356C: - ldr r1, _080F3574 - movs r0, #0x15 - strb r0, [r1] - b _080F39A8 - .align 2, 0 -_080F3574: .4byte gUnknown_2039CFC -_080F3578: - ldr r1, _080F3580 - movs r0, #0x16 - strb r0, [r1] - b _080F39A8 - .align 2, 0 -_080F3580: .4byte gUnknown_2039CFC -_080F3584: - ldr r0, _080F3594 - ldrh r2, [r5, #0x12] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F3598 - b _080F3806 - .align 2, 0 -_080F3594: .4byte gUnknown_2021C54 -_080F3598: .4byte gUnknown_82EA31C -_080F359C: - ldr r0, _080F35AC - ldrh r2, [r5, #0x12] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F35B0 - b _080F3806 - .align 2, 0 -_080F35AC: .4byte gUnknown_2021C54 -_080F35B0: .4byte gUnknown_82EA31C -_080F35B4: - ldr r0, _080F35C4 - ldrh r2, [r5, #0x12] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F35C8 - b _080F3806 - .align 2, 0 -_080F35C4: .4byte gUnknown_2021C54 -_080F35C8: .4byte gUnknown_82EA31C -_080F35CC: - ldr r0, _080F35F0 - ldrh r2, [r5, #0x12] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F35F4 - adds r1, r1, r2 - bl StringCopy - ldrb r0, [r5, #0x1c] - cmp r0, #4 - bls _080F35E6 - b _080F39A8 -_080F35E6: - lsls r0, r0, #2 - ldr r1, _080F35F8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F35F0: .4byte gUnknown_2021C54 -_080F35F4: .4byte gUnknown_82EA31C -_080F35F8: .4byte _080F35FC -_080F35FC: @ jump table - .4byte _080F3610 @ case 0 - .4byte _080F361C @ case 1 - .4byte _080F3628 @ case 2 - .4byte _080F3634 @ case 3 - .4byte _080F3640 @ case 4 -_080F3610: - ldr r1, _080F3618 - movs r0, #9 - strb r0, [r1] - b _080F39A8 - .align 2, 0 -_080F3618: .4byte gUnknown_2039CFC -_080F361C: - ldr r1, _080F3624 - movs r0, #0xa - strb r0, [r1] - b _080F39A8 - .align 2, 0 -_080F3624: .4byte gUnknown_2039CFC -_080F3628: - ldr r1, _080F3630 - movs r0, #0xb - strb r0, [r1] - b _080F39A8 - .align 2, 0 -_080F3630: .4byte gUnknown_2039CFC -_080F3634: - ldr r1, _080F363C - movs r0, #0xc - strb r0, [r1] - b _080F39A8 - .align 2, 0 -_080F363C: .4byte gUnknown_2039CFC -_080F3640: - ldr r1, _080F3648 - movs r0, #0xd - strb r0, [r1] - b _080F39A8 - .align 2, 0 -_080F3648: .4byte gUnknown_2039CFC -_080F364C: - ldr r0, _080F365C - ldrh r2, [r5, #0x12] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F3660 - b _080F3806 - .align 2, 0 -_080F365C: .4byte gUnknown_2021C54 -_080F3660: .4byte gUnknown_82EA31C -_080F3664: - ldr r0, _080F3674 - ldrh r2, [r5, #0x12] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F3678 - b _080F3806 - .align 2, 0 -_080F3674: .4byte gUnknown_2021C54 -_080F3678: .4byte gUnknown_82EA31C -_080F367C: - ldr r0, _080F368C - ldrh r2, [r5, #0x12] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F3690 - b _080F3806 - .align 2, 0 -_080F368C: .4byte gUnknown_2021C54 -_080F3690: .4byte gUnknown_82EA31C -_080F3694: - ldr r0, _080F36A4 - ldrh r2, [r5, #0x12] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F36A8 - b _080F3806 - .align 2, 0 -_080F36A4: .4byte gUnknown_2021C54 -_080F36A8: .4byte gUnknown_82EA31C -_080F36AC: - ldr r0, _080F36BC - ldrh r2, [r5, #0x12] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F36C0 - b _080F3806 - .align 2, 0 -_080F36BC: .4byte gUnknown_2021C54 -_080F36C0: .4byte gUnknown_82EA31C -_080F36C4: - ldr r0, _080F36E8 - ldrh r2, [r5, #0x12] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F36EC - adds r1, r1, r2 - bl StringCopy - ldrb r0, [r5, #0x1c] - cmp r0, #4 - bls _080F36DE - b _080F39A8 -_080F36DE: - lsls r0, r0, #2 - ldr r1, _080F36F0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F36E8: .4byte gUnknown_2021C54 -_080F36EC: .4byte gUnknown_82EA31C -_080F36F0: .4byte _080F36F4 -_080F36F4: @ jump table - .4byte _080F3708 @ case 0 - .4byte _080F3714 @ case 1 - .4byte _080F3720 @ case 2 - .4byte _080F372C @ case 3 - .4byte _080F3738 @ case 4 -_080F3708: - ldr r1, _080F3710 - movs r0, #0xf - strb r0, [r1] - b _080F39A8 - .align 2, 0 -_080F3710: .4byte gUnknown_2039CFC -_080F3714: - ldr r1, _080F371C - movs r0, #0x10 - strb r0, [r1] - b _080F39A8 - .align 2, 0 -_080F371C: .4byte gUnknown_2039CFC -_080F3720: - ldr r1, _080F3728 - movs r0, #0x11 - strb r0, [r1] - b _080F39A8 - .align 2, 0 -_080F3728: .4byte gUnknown_2039CFC -_080F372C: - ldr r1, _080F3734 - movs r0, #0x12 - strb r0, [r1] - b _080F39A8 - .align 2, 0 -_080F3734: .4byte gUnknown_2039CFC -_080F3738: - ldr r1, _080F3740 - movs r0, #0x13 - strb r0, [r1] - b _080F39A8 - .align 2, 0 -_080F3740: .4byte gUnknown_2039CFC -_080F3744: - ldr r0, _080F3754 - ldrh r2, [r5, #0x12] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F3758 - b _080F3806 - .align 2, 0 -_080F3754: .4byte gUnknown_2021C54 -_080F3758: .4byte gUnknown_82EA31C -_080F375C: - ldr r0, _080F376C - ldrh r2, [r5, #0x12] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F3770 - b _080F3806 - .align 2, 0 -_080F376C: .4byte gUnknown_2021C54 -_080F3770: .4byte gUnknown_82EA31C -_080F3774: - ldr r0, _080F3784 - ldrh r2, [r5, #0x12] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F3788 - b _080F3806 - .align 2, 0 -_080F3784: .4byte gUnknown_2021C54 -_080F3788: .4byte gUnknown_82EA31C -_080F378C: - ldr r0, _080F379C - ldrh r2, [r5, #0x12] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F37A0 - b _080F3806 - .align 2, 0 -_080F379C: .4byte gUnknown_2021C54 -_080F37A0: .4byte gUnknown_82EA31C -_080F37A4: - ldr r0, _080F37B4 - ldrh r2, [r5, #0x12] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F37B8 - b _080F3806 - .align 2, 0 -_080F37B4: .4byte gUnknown_2021C54 -_080F37B8: .4byte gUnknown_82EA31C -_080F37BC: - ldr r0, _080F37CC - ldrh r2, [r5, #0x12] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F37D0 - b _080F3806 - .align 2, 0 -_080F37CC: .4byte gUnknown_2021C54 -_080F37D0: .4byte gUnknown_82EA31C -_080F37D4: - ldr r0, _080F37E4 - ldrh r2, [r5, #0x12] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F37E8 - b _080F3806 - .align 2, 0 -_080F37E4: .4byte gUnknown_2021C54 -_080F37E8: .4byte gUnknown_82EA31C -_080F37EC: - ldr r0, _080F3814 - ldrh r2, [r5, #0x12] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F3818 - adds r1, r1, r2 - bl StringCopy - ldr r0, _080F381C - ldrh r1, [r5, #0x10] - lsls r1, r1, #3 - ldr r2, _080F3820 -_080F3806: - adds r1, r1, r2 - bl StringCopy - ldr r1, _080F3824 - movs r0, #0x17 - strb r0, [r1] - b _080F39A8 - .align 2, 0 -_080F3814: .4byte gUnknown_2021C54 -_080F3818: .4byte gUnknown_82EA31C -_080F381C: .4byte gUnknown_2021C68 -_080F3820: .4byte gUnknown_82EACC4 -_080F3824: .4byte gUnknown_2039CFC -_080F3828: - ldr r0, _080F386C - ldrh r2, [r5, #0x12] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r4, _080F3870 - adds r1, r1, r4 - bl StringCopy - ldr r0, _080F3874 - adds r1, r5, #4 - bl StringCopy - ldr r0, _080F3878 - ldrh r2, [r5, #2] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - adds r1, r1, r4 - bl StringCopy - ldrb r0, [r5, #0xc] - cmp r0, #8 - beq _080F38C0 - cmp r0, #8 - bgt _080F3882 - cmp r0, #2 - beq _080F38A8 - cmp r0, #2 - bgt _080F387C - cmp r0, #1 - beq _080F389A - b _080F39A8 - .align 2, 0 -_080F386C: .4byte gUnknown_2021C40 -_080F3870: .4byte gUnknown_82EA31C -_080F3874: .4byte gUnknown_2021C54 -_080F3878: .4byte gUnknown_2021C68 -_080F387C: - cmp r0, #4 - beq _080F38B4 - b _080F39A8 -_080F3882: - cmp r0, #0x20 - beq _080F38D8 - cmp r0, #0x20 - bgt _080F3890 - cmp r0, #0x10 - beq _080F38CC - b _080F39A8 -_080F3890: - cmp r0, #0x40 - beq _080F38E4 - cmp r0, #0x80 - beq _080F38F0 - b _080F39A8 -_080F389A: - ldr r1, _080F38A4 - movs r0, #0x1f - strb r0, [r1] - b _080F39A8 - .align 2, 0 -_080F38A4: .4byte gUnknown_2039CFC -_080F38A8: - ldr r1, _080F38B0 - movs r0, #0x1e - strb r0, [r1] - b _080F39A8 - .align 2, 0 -_080F38B0: .4byte gUnknown_2039CFC -_080F38B4: - ldr r1, _080F38BC - movs r0, #0x1d - strb r0, [r1] - b _080F39A8 - .align 2, 0 -_080F38BC: .4byte gUnknown_2039CFC -_080F38C0: - ldr r1, _080F38C8 - movs r0, #0x1c - strb r0, [r1] - b _080F39A8 - .align 2, 0 -_080F38C8: .4byte gUnknown_2039CFC -_080F38CC: - ldr r1, _080F38D4 - movs r0, #0x1b - strb r0, [r1] - b _080F39A8 - .align 2, 0 -_080F38D4: .4byte gUnknown_2039CFC -_080F38D8: - ldr r1, _080F38E0 - movs r0, #0x1a - strb r0, [r1] - b _080F39A8 - .align 2, 0 -_080F38E0: .4byte gUnknown_2039CFC -_080F38E4: - ldr r1, _080F38EC - movs r0, #0x19 - strb r0, [r1] - b _080F39A8 - .align 2, 0 -_080F38EC: .4byte gUnknown_2039CFC -_080F38F0: - ldr r1, _080F38F8 - movs r0, #0x18 - strb r0, [r1] - b _080F39A8 - .align 2, 0 -_080F38F8: .4byte gUnknown_2039CFC -_080F38FC: - ldr r0, _080F390C - ldrh r2, [r5, #2] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F3910 - adds r1, r1, r2 - b _080F3974 - .align 2, 0 -_080F390C: .4byte gUnknown_2021C40 -_080F3910: .4byte gUnknown_82EA31C -_080F3914: - ldr r0, _080F392C - adds r1, r5, #4 - bl StringCopy - ldr r0, _080F3930 - ldrh r2, [r5, #2] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F3934 - adds r1, r1, r2 - b _080F3974 - .align 2, 0 -_080F392C: .4byte gUnknown_2021C40 -_080F3930: .4byte gUnknown_2021C54 -_080F3934: .4byte gUnknown_82EA31C -_080F3938: - movs r0, #0x20 - strb r0, [r2] - b _080F39A8 -_080F393E: - ldr r0, _080F3960 - adds r1, r5, #0 - adds r1, #0x14 - bl StringCopy - ldr r0, _080F3964 - ldrh r2, [r5, #0x12] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F3968 - adds r1, r1, r2 - bl StringCopy - ldr r0, _080F396C - b _080F3972 - .align 2, 0 -_080F3960: .4byte gUnknown_2021C40 -_080F3964: .4byte gUnknown_2021C54 -_080F3968: .4byte gUnknown_82EA31C -_080F396C: .4byte gUnknown_2021C68 -_080F3970: - ldr r0, _080F3980 -_080F3972: - adds r1, r5, #4 -_080F3974: - bl StringCopy - ldr r1, _080F3984 - movs r0, #0x20 - strb r0, [r1] - b _080F39A8 - .align 2, 0 -_080F3980: .4byte gUnknown_2021C40 -_080F3984: .4byte gUnknown_2039CFC -_080F3988: - ldr r0, _080F39BC - adds r1, r5, #0 - adds r1, #0x14 - bl StringCopy - ldr r0, _080F39C0 - ldrh r2, [r5, #0x12] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F39C4 - adds r1, r1, r2 - bl StringCopy - bl TVShowDone -_080F39A8: - ldr r0, _080F39C8 - lsls r1, r6, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080F39BC: .4byte gUnknown_2021C40 -_080F39C0: .4byte gUnknown_2021C54 -_080F39C4: .4byte gUnknown_82EA31C -_080F39C8: .4byte gUnknown_8568D28 - thumb_func_end sub_080F31E8 - - thumb_func_start sub_080F39CC -sub_080F39CC: @ 0x080F39CC - push {r4, r5, lr} - ldr r2, _080F3A00 - ldr r0, _080F3A04 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080F3A08 - adds r0, r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r1, _080F3A0C - movs r0, #0 - strh r0, [r1] - ldr r0, _080F3A10 - ldrb r5, [r0] - adds r2, r0, #0 - cmp r5, #7 - bls _080F39F4 - b _080F3BD8 -_080F39F4: - lsls r0, r5, #2 - ldr r1, _080F3A14 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F3A00: .4byte gUnknown_3005AEC -_080F3A04: .4byte gUnknown_2037280 -_080F3A08: .4byte 0x000027CC -_080F3A0C: .4byte gUnknown_2037290 -_080F3A10: .4byte gUnknown_2039CFC -_080F3A14: .4byte _080F3A18 -_080F3A18: @ jump table - .4byte _080F3A38 @ case 0 - .4byte _080F3A56 @ case 1 - .4byte _080F3AA4 @ case 2 - .4byte _080F3AEC @ case 3 - .4byte _080F3B20 @ case 4 - .4byte _080F3B40 @ case 5 - .4byte _080F3B68 @ case 6 - .4byte _080F3BB0 @ case 7 -_080F3A38: - ldrb r1, [r4, #0x18] - cmp r1, #0 - bge _080F3A40 - b _080F3BD8 -_080F3A40: - cmp r1, #1 - ble _080F3A4A - cmp r1, #2 - beq _080F3A50 - b _080F3BD8 -_080F3A4A: - movs r0, #1 - strb r0, [r2] - b _080F3BD8 -_080F3A50: - movs r0, #5 - strb r0, [r2] - b _080F3BD8 -_080F3A56: - ldr r0, _080F3A78 - adds r1, r4, #4 - bl StringCopy - ldr r0, _080F3A7C - adds r1, r4, #0 - adds r1, #0xc - bl StringCopy - ldrb r0, [r4, #0x18] - cmp r0, #0 - bne _080F3A88 - ldr r0, _080F3A80 - ldr r1, _080F3A84 - bl StringCopy - b _080F3A90 - .align 2, 0 -_080F3A78: .4byte gUnknown_2021C40 -_080F3A7C: .4byte gUnknown_2021C54 -_080F3A80: .4byte gUnknown_2021C68 -_080F3A84: .4byte gUnknown_85CBFE3 -_080F3A88: - ldr r0, _080F3A98 - ldr r1, _080F3A9C - bl StringCopy -_080F3A90: - ldr r1, _080F3AA0 - movs r0, #2 - strb r0, [r1] - b _080F3BD8 - .align 2, 0 -_080F3A98: .4byte gUnknown_2021C68 -_080F3A9C: .4byte gUnknown_85CBFE8 -_080F3AA0: .4byte gUnknown_2039CFC -_080F3AA4: - ldr r0, _080F3AD4 - adds r1, r4, #4 - bl StringCopy - ldr r0, _080F3AD8 - ldrh r2, [r4, #0x16] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F3ADC - adds r1, r1, r2 - bl StringCopy - ldr r0, _080F3AE0 - ldrh r1, [r4, #0x14] - lsls r1, r1, #3 - ldr r2, _080F3AE4 - adds r1, r1, r2 - bl StringCopy - ldr r1, _080F3AE8 - movs r0, #3 - strb r0, [r1] - b _080F3BD8 - .align 2, 0 -_080F3AD4: .4byte gUnknown_2021C40 -_080F3AD8: .4byte gUnknown_2021C54 -_080F3ADC: .4byte gUnknown_82EA31C -_080F3AE0: .4byte gUnknown_2021C68 -_080F3AE4: .4byte gUnknown_82EACC4 -_080F3AE8: .4byte gUnknown_2039CFC -_080F3AEC: - ldr r0, _080F3B10 - adds r1, r4, #0 - adds r1, #0xc - bl StringCopy - ldr r0, _080F3B14 - ldrh r2, [r4, #2] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F3B18 - adds r1, r1, r2 - bl StringCopy - ldr r1, _080F3B1C - movs r0, #4 - strb r0, [r1] - b _080F3BD8 - .align 2, 0 -_080F3B10: .4byte gUnknown_2021C40 -_080F3B14: .4byte gUnknown_2021C54 -_080F3B18: .4byte gUnknown_82EA31C -_080F3B1C: .4byte gUnknown_2039CFC -_080F3B20: - ldr r0, _080F3B38 - adds r1, r4, #4 - bl StringCopy - ldr r0, _080F3B3C - adds r1, r4, #0 - adds r1, #0xc - bl StringCopy - bl TVShowDone - b _080F3BD8 - .align 2, 0 -_080F3B38: .4byte gUnknown_2021C40 -_080F3B3C: .4byte gUnknown_2021C54 -_080F3B40: - ldr r0, _080F3B5C - adds r1, r4, #4 - bl StringCopy - ldr r0, _080F3B60 - adds r1, r4, #0 - adds r1, #0xc - bl StringCopy - ldr r1, _080F3B64 - movs r0, #6 - strb r0, [r1] - b _080F3BD8 - .align 2, 0 -_080F3B5C: .4byte gUnknown_2021C40 -_080F3B60: .4byte gUnknown_2021C54 -_080F3B64: .4byte gUnknown_2039CFC -_080F3B68: - ldr r0, _080F3B98 - adds r1, r4, #4 - bl StringCopy - ldr r0, _080F3B9C - ldrh r2, [r4, #0x16] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F3BA0 - adds r1, r1, r2 - bl StringCopy - ldr r0, _080F3BA4 - ldrh r1, [r4, #0x14] - lsls r1, r1, #3 - ldr r2, _080F3BA8 - adds r1, r1, r2 - bl StringCopy - ldr r1, _080F3BAC - movs r0, #7 - strb r0, [r1] - b _080F3BD8 - .align 2, 0 -_080F3B98: .4byte gUnknown_2021C40 -_080F3B9C: .4byte gUnknown_2021C54 -_080F3BA0: .4byte gUnknown_82EA31C -_080F3BA4: .4byte gUnknown_2021C68 -_080F3BA8: .4byte gUnknown_82EACC4 -_080F3BAC: .4byte gUnknown_2039CFC -_080F3BB0: - ldr r0, _080F3BEC - adds r1, r4, #4 - bl StringCopy - ldr r0, _080F3BF0 - adds r1, r4, #0 - adds r1, #0xc - bl StringCopy - ldr r0, _080F3BF4 - ldrh r2, [r4, #2] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F3BF8 - adds r1, r1, r2 - bl StringCopy - bl TVShowDone -_080F3BD8: - ldr r0, _080F3BFC - lsls r1, r5, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080F3BEC: .4byte gUnknown_2021C40 -_080F3BF0: .4byte gUnknown_2021C54 -_080F3BF4: .4byte gUnknown_2021C68 -_080F3BF8: .4byte gUnknown_82EA31C -_080F3BFC: .4byte gUnknown_8568DAC - thumb_func_end sub_080F39CC - - thumb_func_start sub_080F3C00 -sub_080F3C00: @ 0x080F3C00 - push {r4, r5, lr} - ldr r2, _080F3C30 - ldr r0, _080F3C34 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080F3C38 - adds r0, r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r1, _080F3C3C - movs r0, #0 - strh r0, [r1] - ldr r0, _080F3C40 - ldrb r5, [r0] - cmp r5, #5 - bls _080F3C26 - b _080F3E94 -_080F3C26: - lsls r0, r5, #2 - ldr r1, _080F3C44 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F3C30: .4byte gUnknown_3005AEC -_080F3C34: .4byte gUnknown_2037280 -_080F3C38: .4byte 0x000027CC -_080F3C3C: .4byte gUnknown_2037290 -_080F3C40: .4byte gUnknown_2039CFC -_080F3C44: .4byte _080F3C48 -_080F3C48: @ jump table - .4byte _080F3C60 @ case 0 - .4byte _080F3C8C @ case 1 - .4byte _080F3D74 @ case 2 - .4byte _080F3D80 @ case 3 - .4byte _080F3E68 @ case 4 - .4byte _080F3E90 @ case 5 -_080F3C60: - ldr r0, _080F3C78 - adds r1, r4, #0 - adds r1, #0xc - bl StringCopy - ldrb r0, [r4, #2] - cmp r0, #0x14 - bls _080F3C80 - ldr r1, _080F3C7C - movs r0, #1 - strb r0, [r1] - b _080F3E94 - .align 2, 0 -_080F3C78: .4byte gUnknown_2021C40 -_080F3C7C: .4byte gUnknown_2039CFC -_080F3C80: - ldr r1, _080F3C88 - movs r0, #3 - strb r0, [r1] - b _080F3E94 - .align 2, 0 -_080F3C88: .4byte gUnknown_2039CFC -_080F3C8C: - ldrb r0, [r4, #3] - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1d - cmp r0, #4 - bhi _080F3D10 - lsls r0, r0, #2 - ldr r1, _080F3CA0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F3CA0: .4byte _080F3CA4 -_080F3CA4: @ jump table - .4byte _080F3CB8 @ case 0 - .4byte _080F3CCC @ case 1 - .4byte _080F3CE0 @ case 2 - .4byte _080F3CF4 @ case 3 - .4byte _080F3D08 @ case 4 -_080F3CB8: - ldr r0, _080F3CC4 - ldr r1, _080F3CC8 - bl StringCopy - b _080F3D10 - .align 2, 0 -_080F3CC4: .4byte gUnknown_2021C40 -_080F3CC8: .4byte gUnknown_85CBFD3 -_080F3CCC: - ldr r0, _080F3CD8 - ldr r1, _080F3CDC - bl StringCopy - b _080F3D10 - .align 2, 0 -_080F3CD8: .4byte gUnknown_2021C40 -_080F3CDC: .4byte gUnknown_85CBFD6 -_080F3CE0: - ldr r0, _080F3CEC - ldr r1, _080F3CF0 - bl StringCopy - b _080F3D10 - .align 2, 0 -_080F3CEC: .4byte gUnknown_2021C40 -_080F3CF0: .4byte gUnknown_85CBFD9 -_080F3CF4: - ldr r0, _080F3D00 - ldr r1, _080F3D04 - bl StringCopy - b _080F3D10 - .align 2, 0 -_080F3D00: .4byte gUnknown_2021C40 -_080F3D04: .4byte gUnknown_85CBFDC -_080F3D08: - ldr r0, _080F3D20 - ldr r1, _080F3D24 - bl StringCopy -_080F3D10: - ldrb r0, [r4, #2] - cmp r0, #0x18 - bls _080F3D30 - ldr r0, _080F3D28 - ldr r1, _080F3D2C - bl StringCopy - b _080F3D50 - .align 2, 0 -_080F3D20: .4byte gUnknown_2021C40 -_080F3D24: .4byte gUnknown_85CBFDF -_080F3D28: .4byte gUnknown_2021C54 -_080F3D2C: .4byte gUnknown_85CBFC0 -_080F3D30: - cmp r0, #0x16 - bls _080F3D48 - ldr r0, _080F3D40 - ldr r1, _080F3D44 - bl StringCopy - b _080F3D50 - .align 2, 0 -_080F3D40: .4byte gUnknown_2021C54 -_080F3D44: .4byte gUnknown_85CBFBB -_080F3D48: - ldr r0, _080F3D64 - ldr r1, _080F3D68 - bl StringCopy -_080F3D50: - ldr r0, _080F3D6C - adds r1, r4, #0 - adds r1, #0xc - bl StringCopy - ldr r1, _080F3D70 - movs r0, #2 - strb r0, [r1] - b _080F3E94 - .align 2, 0 -_080F3D64: .4byte gUnknown_2021C54 -_080F3D68: .4byte gUnknown_85CBFB8 -_080F3D6C: .4byte gUnknown_2021C68 -_080F3D70: .4byte gUnknown_2039CFC -_080F3D74: - ldr r0, _080F3D7C - adds r1, r4, #4 - b _080F3E76 - .align 2, 0 -_080F3D7C: .4byte gUnknown_2021C40 -_080F3D80: - ldrb r0, [r4, #3] - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1d - cmp r0, #4 - bhi _080F3E04 - lsls r0, r0, #2 - ldr r1, _080F3D94 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F3D94: .4byte _080F3D98 -_080F3D98: @ jump table - .4byte _080F3DAC @ case 0 - .4byte _080F3DC0 @ case 1 - .4byte _080F3DD4 @ case 2 - .4byte _080F3DE8 @ case 3 - .4byte _080F3DFC @ case 4 -_080F3DAC: - ldr r0, _080F3DB8 - ldr r1, _080F3DBC - bl StringCopy - b _080F3E04 - .align 2, 0 -_080F3DB8: .4byte gUnknown_2021C40 -_080F3DBC: .4byte gUnknown_85CBFD3 -_080F3DC0: - ldr r0, _080F3DCC - ldr r1, _080F3DD0 - bl StringCopy - b _080F3E04 - .align 2, 0 -_080F3DCC: .4byte gUnknown_2021C40 -_080F3DD0: .4byte gUnknown_85CBFD6 -_080F3DD4: - ldr r0, _080F3DE0 - ldr r1, _080F3DE4 - bl StringCopy - b _080F3E04 - .align 2, 0 -_080F3DE0: .4byte gUnknown_2021C40 -_080F3DE4: .4byte gUnknown_85CBFD9 -_080F3DE8: - ldr r0, _080F3DF4 - ldr r1, _080F3DF8 - bl StringCopy - b _080F3E04 - .align 2, 0 -_080F3DF4: .4byte gUnknown_2021C40 -_080F3DF8: .4byte gUnknown_85CBFDC -_080F3DFC: - ldr r0, _080F3E14 - ldr r1, _080F3E18 - bl StringCopy -_080F3E04: - ldrb r0, [r4, #2] - cmp r0, #0x10 - bls _080F3E24 - ldr r0, _080F3E1C - ldr r1, _080F3E20 - bl StringCopy - b _080F3E44 - .align 2, 0 -_080F3E14: .4byte gUnknown_2021C40 -_080F3E18: .4byte gUnknown_85CBFDF -_080F3E1C: .4byte gUnknown_2021C54 -_080F3E20: .4byte gUnknown_85CBFC5 -_080F3E24: - cmp r0, #0xd - bls _080F3E3C - ldr r0, _080F3E34 - ldr r1, _080F3E38 - bl StringCopy - b _080F3E44 - .align 2, 0 -_080F3E34: .4byte gUnknown_2021C54 -_080F3E38: .4byte gUnknown_85CBFCA -_080F3E3C: - ldr r0, _080F3E58 - ldr r1, _080F3E5C - bl StringCopy -_080F3E44: - ldr r0, _080F3E60 - adds r1, r4, #0 - adds r1, #0xc - bl StringCopy - ldr r1, _080F3E64 - movs r0, #4 - strb r0, [r1] - b _080F3E94 - .align 2, 0 -_080F3E58: .4byte gUnknown_2021C54 -_080F3E5C: .4byte gUnknown_85CBFCE -_080F3E60: .4byte gUnknown_2021C68 -_080F3E64: .4byte gUnknown_2039CFC -_080F3E68: - ldr r0, _080F3E84 - adds r1, r4, #4 - bl StringCopy - ldr r0, _080F3E88 - adds r1, r4, #0 - adds r1, #0xc -_080F3E76: - bl StringCopy - ldr r1, _080F3E8C - movs r0, #5 - strb r0, [r1] - b _080F3E94 - .align 2, 0 -_080F3E84: .4byte gUnknown_2021C40 -_080F3E88: .4byte gUnknown_2021C54 -_080F3E8C: .4byte gUnknown_2039CFC -_080F3E90: - bl TVShowDone -_080F3E94: - ldr r0, _080F3EA8 - lsls r1, r5, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080F3EA8: .4byte gUnknown_8568CD4 - thumb_func_end sub_080F3C00 - - thumb_func_start sub_080F3EAC -sub_080F3EAC: @ 0x080F3EAC - push {r4, r5, r6, lr} - ldr r0, _080F3ECC - movs r1, #0 - strh r1, [r0] - ldr r0, _080F3ED0 - ldrb r6, [r0] - adds r2, r0, #0 - cmp r6, #8 - bls _080F3EC0 - b _080F4064 -_080F3EC0: - lsls r0, r6, #2 - ldr r1, _080F3ED4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F3ECC: .4byte gUnknown_2037290 -_080F3ED0: .4byte gUnknown_2039CFC -_080F3ED4: .4byte _080F3ED8 -_080F3ED8: @ jump table - .4byte _080F3EFC @ case 0 - .4byte _080F3F44 @ case 1 - .4byte _080F3F4A @ case 2 - .4byte _080F3F9C @ case 3 - .4byte _080F4010 @ case 4 - .4byte _080F4010 @ case 5 - .4byte _080F4010 @ case 6 - .4byte _080F4010 @ case 7 - .4byte _080F4016 @ case 8 -_080F3EFC: - ldr r0, _080F3F24 - ldr r4, _080F3F28 - ldr r1, [r4] - ldr r2, _080F3F2C - adds r1, r1, r2 - ldrb r1, [r1] - movs r2, #0 - bl GetMapName - ldr r0, [r4] - ldr r1, _080F3F30 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - bls _080F3F38 - ldr r1, _080F3F34 - movs r0, #1 - strb r0, [r1] - b _080F4064 - .align 2, 0 -_080F3F24: .4byte gUnknown_2021C40 -_080F3F28: .4byte gUnknown_3005AEC -_080F3F2C: .4byte 0x00002BAC -_080F3F30: .4byte 0x00002BAD -_080F3F34: .4byte gUnknown_2039CFC -_080F3F38: - ldr r1, _080F3F40 - movs r0, #2 - strb r0, [r1] - b _080F4064 - .align 2, 0 -_080F3F40: .4byte gUnknown_2039CFC -_080F3F44: - movs r0, #2 - strb r0, [r2] - b _080F4064 -_080F3F4A: - ldr r0, _080F3F64 - ldr r0, [r0] - ldr r1, _080F3F68 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080F3F6C - movs r0, #4 - strb r0, [r2] - b _080F4064 - .align 2, 0 -_080F3F64: .4byte gUnknown_3005AEC -_080F3F68: .4byte 0x00002BAE -_080F3F6C: - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080F3F7A - movs r0, #5 - strb r0, [r2] - b _080F4064 -_080F3F7A: - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080F3F88 - movs r0, #6 - strb r0, [r2] - b _080F4064 -_080F3F88: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080F3F96 - movs r0, #7 - strb r0, [r2] - b _080F4064 -_080F3F96: - movs r0, #3 - strb r0, [r2] - b _080F4064 -_080F3F9C: - ldr r0, _080F3FE8 - ldr r4, _080F3FEC - ldr r1, [r4] - ldr r2, _080F3FF0 - adds r1, r1, r2 - ldrh r2, [r1] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r5, _080F3FF4 - adds r1, r1, r5 - bl StringCopy - ldr r0, _080F3FF8 - ldr r1, [r4] - ldr r2, _080F3FFC - adds r1, r1, r2 - ldrh r1, [r1] - lsls r1, r1, #3 - ldr r2, _080F4000 - adds r1, r1, r2 - bl StringCopy - ldr r0, _080F4004 - ldr r1, [r4] - ldr r2, _080F4008 - adds r1, r1, r2 - ldrh r2, [r1] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - adds r1, r1, r5 - bl StringCopy - ldr r1, _080F400C - movs r0, #8 - strb r0, [r1] - b _080F4064 - .align 2, 0 -_080F3FE8: .4byte gUnknown_2021C40 -_080F3FEC: .4byte gUnknown_3005AEC -_080F3FF0: .4byte 0x00002BA4 -_080F3FF4: .4byte gUnknown_82EA31C -_080F3FF8: .4byte gUnknown_2021C54 -_080F3FFC: .4byte 0x00002BA8 -_080F4000: .4byte gUnknown_82EACC4 -_080F4004: .4byte gUnknown_2021C68 -_080F4008: .4byte 0x00002BA6 -_080F400C: .4byte gUnknown_2039CFC -_080F4010: - movs r0, #8 - strb r0, [r2] - b _080F4064 -_080F4016: - ldr r0, _080F4078 - ldr r4, _080F407C - ldr r1, [r4] - ldr r2, _080F4080 - adds r1, r1, r2 - ldrh r1, [r1] - bl CopyEasyChatWord - ldr r0, _080F4084 - ldr r1, [r4] - ldr r2, _080F4088 - adds r1, r1, r2 - ldrh r2, [r1] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r5, _080F408C - adds r1, r1, r5 - bl StringCopy - ldr r0, _080F4090 - ldr r1, [r4] - ldr r2, _080F4094 - adds r1, r1, r2 - ldrh r2, [r1] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - adds r1, r1, r5 - bl StringCopy - ldr r1, _080F4098 - movs r0, #1 - strh r0, [r1] - ldr r1, _080F409C - movs r0, #0 - strb r0, [r1] - bl TakeTVShowInSearchOfTrainersOffTheAir -_080F4064: - ldr r0, _080F40A0 - lsls r1, r6, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080F4078: .4byte gUnknown_2021C40 -_080F407C: .4byte gUnknown_3005AEC -_080F4080: .4byte 0x00002BAA -_080F4084: .4byte gUnknown_2021C54 -_080F4088: .4byte 0x00002BA4 -_080F408C: .4byte gUnknown_82EA31C -_080F4090: .4byte gUnknown_2021C68 -_080F4094: .4byte 0x00002BA6 -_080F4098: .4byte gUnknown_2037290 -_080F409C: .4byte gUnknown_2039CFC -_080F40A0: .4byte gUnknown_8569118 - thumb_func_end sub_080F3EAC - - thumb_func_start DoTVShowPokemonAngler -DoTVShowPokemonAngler: @ 0x080F40A4 - push {r4, r5, lr} - ldr r2, _080F40D0 - ldr r0, _080F40D4 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080F40D8 - adds r0, r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r0, _080F40DC - movs r1, #0 - strh r1, [r0] - ldrb r0, [r4, #2] - ldrb r2, [r4, #3] - cmp r0, r2 - bhs _080F40E4 - ldr r0, _080F40E0 - strb r1, [r0] - b _080F40EC - .align 2, 0 -_080F40D0: .4byte gUnknown_3005AEC -_080F40D4: .4byte gUnknown_2037280 -_080F40D8: .4byte 0x000027CC -_080F40DC: .4byte gUnknown_2037290 -_080F40E0: .4byte gUnknown_2039CFC -_080F40E4: - ldr r1, _080F40F8 - movs r0, #1 - strb r0, [r1] - adds r0, r1, #0 -_080F40EC: - ldrb r5, [r0] - cmp r5, #0 - beq _080F40FC - cmp r5, #1 - beq _080F4134 - b _080F415C - .align 2, 0 -_080F40F8: .4byte gUnknown_2039CFC -_080F40FC: - ldr r0, _080F4128 - adds r1, r4, #0 - adds r1, #0x13 - bl StringCopy - ldr r0, _080F412C - ldrh r2, [r4, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F4130 - adds r1, r1, r2 - bl StringCopy - ldrb r1, [r4, #3] - movs r0, #2 - bl TV_PrintIntToStringVar - bl TVShowDone - b _080F415C - .align 2, 0 -_080F4128: .4byte gUnknown_2021C40 -_080F412C: .4byte gUnknown_2021C54 -_080F4130: .4byte gUnknown_82EA31C -_080F4134: - ldr r0, _080F4170 - adds r1, r4, #0 - adds r1, #0x13 - bl StringCopy - ldr r0, _080F4174 - ldrh r2, [r4, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F4178 - adds r1, r1, r2 - bl StringCopy - ldrb r1, [r4, #2] - movs r0, #2 - bl TV_PrintIntToStringVar - bl TVShowDone -_080F415C: - ldr r0, _080F417C - lsls r1, r5, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080F4170: .4byte gUnknown_2021C40 -_080F4174: .4byte gUnknown_2021C54 -_080F4178: .4byte gUnknown_82EA31C -_080F417C: .4byte gUnknown_8568E5C - thumb_func_end DoTVShowPokemonAngler - - thumb_func_start DoTVShowTheWorldOfMasters -DoTVShowTheWorldOfMasters: @ 0x080F4180 - push {r4, r5, r6, lr} - ldr r2, _080F41B0 - ldr r0, _080F41B4 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080F41B8 - adds r0, r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r1, _080F41BC - movs r0, #0 - strh r0, [r1] - ldr r6, _080F41C0 - ldrb r5, [r6] - cmp r5, #1 - beq _080F41F0 - cmp r5, #1 - bgt _080F41C4 - cmp r5, #0 - beq _080F41CA - b _080F423A - .align 2, 0 -_080F41B0: .4byte gUnknown_3005AEC -_080F41B4: .4byte gUnknown_2037280 -_080F41B8: .4byte 0x000027CC -_080F41BC: .4byte gUnknown_2037290 -_080F41C0: .4byte gUnknown_2039CFC -_080F41C4: - cmp r5, #2 - beq _080F4210 - b _080F423A -_080F41CA: - ldr r0, _080F41EC - adds r1, r4, #0 - adds r1, #0x13 - bl StringCopy - ldrh r1, [r4, #6] - movs r0, #1 - bl TV_PrintIntToStringVar - ldrh r1, [r4, #2] - movs r0, #2 - bl TV_PrintIntToStringVar - movs r0, #1 - strb r0, [r6] - b _080F423A - .align 2, 0 -_080F41EC: .4byte gUnknown_2021C40 -_080F41F0: - ldr r0, _080F4208 - ldrh r2, [r4, #8] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F420C - adds r1, r1, r2 - bl StringCopy - movs r0, #2 - strb r0, [r6] - b _080F423A - .align 2, 0 -_080F4208: .4byte gUnknown_2021C40 -_080F420C: .4byte gUnknown_82EA31C -_080F4210: - ldr r0, _080F424C - adds r1, r4, #0 - adds r1, #0x13 - bl StringCopy - ldr r0, _080F4250 - ldrb r1, [r4, #0xa] - movs r2, #0 - bl GetMapName - ldr r0, _080F4254 - ldrh r2, [r4, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F4258 - adds r1, r1, r2 - bl StringCopy - bl TVShowDone -_080F423A: - ldr r0, _080F425C - lsls r1, r5, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080F424C: .4byte gUnknown_2021C40 -_080F4250: .4byte gUnknown_2021C54 -_080F4254: .4byte gUnknown_2021C68 -_080F4258: .4byte gUnknown_82EA31C -_080F425C: .4byte gUnknown_8568E64 - thumb_func_end DoTVShowTheWorldOfMasters - - thumb_func_start sub_080F4260 -sub_080F4260: @ 0x080F4260 - push {r4, r5, lr} - ldr r2, _080F4294 - ldr r0, _080F4298 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080F429C - adds r0, r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r1, _080F42A0 - movs r0, #0 - strh r0, [r1] - ldr r0, _080F42A4 - ldrb r5, [r0] - adds r2, r0, #0 - cmp r5, #0xa - bls _080F4288 - b _080F4456 -_080F4288: - lsls r0, r5, #2 - ldr r1, _080F42A8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F4294: .4byte gUnknown_3005AEC -_080F4298: .4byte gUnknown_2037280 -_080F429C: .4byte 0x000027CC -_080F42A0: .4byte gUnknown_2037290 -_080F42A4: .4byte gUnknown_2039CFC -_080F42A8: .4byte _080F42AC -_080F42AC: @ jump table - .4byte _080F42D8 @ case 0 - .4byte _080F43A0 @ case 1 - .4byte _080F43C8 @ case 2 - .4byte _080F4400 @ case 3 - .4byte _080F4412 @ case 4 - .4byte _080F4434 @ case 5 - .4byte _080F4448 @ case 6 - .4byte _080F430E @ case 7 - .4byte _080F433C @ case 8 - .4byte _080F4354 @ case 9 - .4byte _080F436C @ case 10 -_080F42D8: - ldrb r0, [r4, #7] - cmp r0, #0x56 - beq _080F42E8 - cmp r0, #0x57 - beq _080F42EE - movs r0, #7 - strb r0, [r2] - b _080F4456 -_080F42E8: - movs r0, #8 - strb r0, [r2] - b _080F4456 -_080F42EE: - ldrh r1, [r4, #0xa] - ldr r0, _080F4304 - cmp r1, r0 - bgt _080F4308 - subs r0, #2 - cmp r1, r0 - blt _080F4308 - movs r0, #0xa - strb r0, [r2] - b _080F4456 - .align 2, 0 -_080F4304: .4byte 0x00000117 -_080F4308: - movs r0, #9 - strb r0, [r2] - b _080F4456 -_080F430E: - ldr r0, _080F4334 - adds r1, r4, #0 - adds r1, #0x13 - bl StringCopy - ldrh r1, [r4, #2] - movs r0, #1 - bl TV_PrintIntToStringVar - ldr r0, _080F4338 - ldrb r1, [r4, #7] - movs r2, #0 - bl GetMapName -_080F432A: - ldrb r0, [r4, #4] - cmp r0, #0 - bne _080F4384 - b _080F4394 - .align 2, 0 -_080F4334: .4byte gUnknown_2021C40 -_080F4338: .4byte gUnknown_2021C68 -_080F433C: - ldr r0, _080F4350 - adds r1, r4, #0 - adds r1, #0x13 - bl StringCopy - ldrh r1, [r4, #2] - movs r0, #1 - bl TV_PrintIntToStringVar - b _080F432A - .align 2, 0 -_080F4350: .4byte gUnknown_2021C40 -_080F4354: - ldr r0, _080F4368 - adds r1, r4, #0 - adds r1, #0x13 - bl StringCopy - ldrh r1, [r4, #2] - movs r0, #1 - bl TV_PrintIntToStringVar - b _080F432A - .align 2, 0 -_080F4368: .4byte gUnknown_2021C40 -_080F436C: - ldr r0, _080F438C - adds r1, r4, #0 - adds r1, #0x13 - bl StringCopy - ldrh r1, [r4, #2] - movs r0, #1 - bl TV_PrintIntToStringVar - ldrb r0, [r4, #4] - cmp r0, #0 - beq _080F4394 -_080F4384: - ldr r1, _080F4390 - movs r0, #1 - strb r0, [r1] - b _080F4456 - .align 2, 0 -_080F438C: .4byte gUnknown_2021C40 -_080F4390: .4byte gUnknown_2039CFC -_080F4394: - ldr r1, _080F439C - movs r0, #2 - strb r0, [r1] - b _080F4456 - .align 2, 0 -_080F439C: .4byte gUnknown_2039CFC -_080F43A0: - ldrb r1, [r4, #4] - movs r0, #0 - bl TV_PrintIntToStringVar - ldr r0, _080F43C0 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080F443C - ldr r0, [r4, #4] - ldr r1, _080F43C4 - ands r0, r1 - cmp r0, #0 - bne _080F43DE - b _080F43F4 - .align 2, 0 -_080F43C0: .4byte 0x000008A8 -_080F43C4: .4byte 0x00FFFF00 -_080F43C8: - ldr r0, _080F43E8 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080F443C - ldr r0, [r4, #4] - ldr r1, _080F43EC - ands r0, r1 - cmp r0, #0 - beq _080F43F4 -_080F43DE: - ldr r1, _080F43F0 - movs r0, #4 - strb r0, [r1] - b _080F4456 - .align 2, 0 -_080F43E8: .4byte 0x000008A8 -_080F43EC: .4byte 0x00FFFF00 -_080F43F0: .4byte gUnknown_2039CFC -_080F43F4: - ldr r1, _080F43FC - movs r0, #3 - strb r0, [r1] - b _080F4456 - .align 2, 0 -_080F43FC: .4byte gUnknown_2039CFC -_080F4400: - ldrh r0, [r4, #8] - cmp r0, #0 - bne _080F440C - movs r0, #6 - strb r0, [r2] - b _080F4456 -_080F440C: - movs r0, #5 - strb r0, [r2] - b _080F4456 -_080F4412: - ldrb r1, [r4, #6] - movs r0, #0 - bl TV_PrintIntToStringVar - ldrb r1, [r4, #5] - movs r0, #1 - bl TV_PrintIntToStringVar - ldrh r0, [r4, #8] - cmp r0, #0 - beq _080F443C - ldr r1, _080F4430 - movs r0, #5 - strb r0, [r1] - b _080F4456 - .align 2, 0 -_080F4430: .4byte gUnknown_2039CFC -_080F4434: - ldrh r1, [r4, #8] - movs r0, #0 - bl TV_PrintIntToStringVar -_080F443C: - ldr r1, _080F4444 - movs r0, #6 - strb r0, [r1] - b _080F4456 - .align 2, 0 -_080F4444: .4byte gUnknown_2039CFC -_080F4448: - ldr r0, _080F4468 - adds r1, r4, #0 - adds r1, #0x13 - bl StringCopy - bl TVShowDone -_080F4456: - ldr r0, _080F446C - lsls r1, r5, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080F4468: .4byte gUnknown_2021C40 -_080F446C: .4byte gUnknown_8568E70 - thumb_func_end sub_080F4260 - - thumb_func_start DoTVShowDewfordTrendWatcherNetwork -DoTVShowDewfordTrendWatcherNetwork: @ 0x080F4470 - push {r4, r5, lr} - ldr r2, _080F44A0 - ldr r0, _080F44A4 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080F44A8 - adds r0, r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r1, _080F44AC - movs r0, #0 - strh r0, [r1] - ldr r0, _080F44B0 - ldrb r5, [r0] - cmp r5, #6 - bls _080F4496 - b _080F45C0 -_080F4496: - lsls r0, r5, #2 - ldr r1, _080F44B4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F44A0: .4byte gUnknown_3005AEC -_080F44A4: .4byte gUnknown_2037280 -_080F44A8: .4byte 0x000027CC -_080F44AC: .4byte gUnknown_2037290 -_080F44B0: .4byte gUnknown_2039CFC -_080F44B4: .4byte _080F44B8 -_080F44B8: @ jump table - .4byte _080F44D4 @ case 0 - .4byte _080F450C @ case 1 - .4byte _080F450C @ case 2 - .4byte _080F4540 @ case 3 - .4byte _080F4578 @ case 4 - .4byte _080F4578 @ case 5 - .4byte _080F45AC @ case 6 -_080F44D4: - ldr r0, _080F44F4 - ldrh r1, [r4, #4] - bl CopyEasyChatWord - ldr r0, _080F44F8 - ldrh r1, [r4, #6] - bl CopyEasyChatWord - ldrb r0, [r4, #8] - cmp r0, #0 - bne _080F4500 - ldr r1, _080F44FC - movs r0, #1 - strb r0, [r1] - b _080F45C0 - .align 2, 0 -_080F44F4: .4byte gUnknown_2021C40 -_080F44F8: .4byte gUnknown_2021C54 -_080F44FC: .4byte gUnknown_2039CFC -_080F4500: - ldr r1, _080F4508 - movs r0, #2 - strb r0, [r1] - b _080F45C0 - .align 2, 0 -_080F4508: .4byte gUnknown_2039CFC -_080F450C: - ldr r0, _080F4530 - ldrh r1, [r4, #4] - bl CopyEasyChatWord - ldr r0, _080F4534 - ldrh r1, [r4, #6] - bl CopyEasyChatWord - ldr r0, _080F4538 - adds r1, r4, #0 - adds r1, #0x13 - bl StringCopy - ldr r1, _080F453C - movs r0, #3 - strb r0, [r1] - b _080F45C0 - .align 2, 0 -_080F4530: .4byte gUnknown_2021C40 -_080F4534: .4byte gUnknown_2021C54 -_080F4538: .4byte gUnknown_2021C68 -_080F453C: .4byte gUnknown_2039CFC -_080F4540: - ldr r0, _080F4560 - ldrh r1, [r4, #4] - bl CopyEasyChatWord - ldr r0, _080F4564 - ldrh r1, [r4, #6] - bl CopyEasyChatWord - ldrb r0, [r4, #8] - cmp r0, #0 - bne _080F456C - ldr r1, _080F4568 - movs r0, #4 - strb r0, [r1] - b _080F45C0 - .align 2, 0 -_080F4560: .4byte gUnknown_2021C40 -_080F4564: .4byte gUnknown_2021C54 -_080F4568: .4byte gUnknown_2039CFC -_080F456C: - ldr r1, _080F4574 - movs r0, #5 - strb r0, [r1] - b _080F45C0 - .align 2, 0 -_080F4574: .4byte gUnknown_2039CFC -_080F4578: - ldr r0, _080F459C - ldrh r1, [r4, #4] - bl CopyEasyChatWord - ldr r0, _080F45A0 - ldrh r1, [r4, #6] - bl CopyEasyChatWord - ldr r0, _080F45A4 - adds r1, r4, #0 - adds r1, #0x13 - bl StringCopy - ldr r1, _080F45A8 - movs r0, #6 - strb r0, [r1] - b _080F45C0 - .align 2, 0 -_080F459C: .4byte gUnknown_2021C40 -_080F45A0: .4byte gUnknown_2021C54 -_080F45A4: .4byte gUnknown_2021C68 -_080F45A8: .4byte gUnknown_2039CFC -_080F45AC: - ldr r0, _080F45D4 - ldrh r1, [r4, #4] - bl CopyEasyChatWord - ldr r0, _080F45D8 - ldrh r1, [r4, #6] - bl CopyEasyChatWord - bl TVShowDone -_080F45C0: - ldr r0, _080F45DC - lsls r1, r5, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080F45D4: .4byte gUnknown_2021C40 -_080F45D8: .4byte gUnknown_2021C54 -_080F45DC: .4byte gUnknown_8568E9C - thumb_func_end DoTVShowDewfordTrendWatcherNetwork - - thumb_func_start DoTVShowHoennTreasureInvestigators -DoTVShowHoennTreasureInvestigators: @ 0x080F45E0 - push {r4, r5, r6, r7, lr} - ldr r2, _080F4610 - ldr r0, _080F4614 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080F4618 - adds r0, r0, r1 - ldr r1, [r2] - adds r5, r1, r0 - ldr r1, _080F461C - movs r0, #0 - strh r0, [r1] - ldr r7, _080F4620 - ldrb r6, [r7] - cmp r6, #1 - beq _080F466E - cmp r6, #1 - bgt _080F4624 - cmp r6, #0 - beq _080F462A - b _080F46C2 - .align 2, 0 -_080F4610: .4byte gUnknown_3005AEC -_080F4614: .4byte gUnknown_2037280 -_080F4618: .4byte 0x000027CC -_080F461C: .4byte gUnknown_2037290 -_080F4620: .4byte gUnknown_2039CFC -_080F4624: - cmp r6, #2 - beq _080F46A4 - b _080F46C2 -_080F462A: - ldr r4, _080F4654 - ldrh r0, [r5, #2] - bl sub_080D6C8C - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCopy - ldrb r0, [r5, #4] - cmp r0, #0x57 - bne _080F4668 - ldrh r1, [r5, #6] - ldr r0, _080F4658 - cmp r1, r0 - bgt _080F465C - subs r0, #2 - cmp r1, r0 - blt _080F465C - movs r0, #2 - strb r0, [r7] - b _080F46C2 - .align 2, 0 -_080F4654: .4byte gUnknown_2021C40 -_080F4658: .4byte 0x00000117 -_080F465C: - ldr r1, _080F4664 - movs r0, #1 - strb r0, [r1] - b _080F46C2 - .align 2, 0 -_080F4664: .4byte gUnknown_2039CFC -_080F4668: - movs r0, #1 - strb r0, [r7] - b _080F46C2 -_080F466E: - ldr r4, _080F4698 - ldrh r0, [r5, #2] - bl sub_080D6C8C - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCopy - ldr r0, _080F469C - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - ldr r0, _080F46A0 - ldrb r1, [r5, #4] - movs r2, #0 - bl GetMapName - bl TVShowDone - b _080F46C2 - .align 2, 0 -_080F4698: .4byte gUnknown_2021C40 -_080F469C: .4byte gUnknown_2021C54 -_080F46A0: .4byte gUnknown_2021C68 -_080F46A4: - ldr r4, _080F46D4 - ldrh r0, [r5, #2] - bl sub_080D6C8C - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCopy - ldr r0, _080F46D8 - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - bl TVShowDone -_080F46C2: - ldr r0, _080F46DC - lsls r1, r6, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F46D4: .4byte gUnknown_2021C40 -_080F46D8: .4byte gUnknown_2021C54 -_080F46DC: .4byte gUnknown_8568EB8 - thumb_func_end DoTVShowHoennTreasureInvestigators - - thumb_func_start DoTVShowFindThatGamer -DoTVShowFindThatGamer: @ 0x080F46E0 - push {r4, r5, lr} - ldr r2, _080F4710 - ldr r0, _080F4714 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080F4718 - adds r0, r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r1, _080F471C - movs r0, #0 - strh r0, [r1] - ldr r0, _080F4720 - ldrb r5, [r0] - cmp r5, #1 - beq _080F478C - cmp r5, #1 - bgt _080F4724 - cmp r5, #0 - beq _080F4730 - b _080F486C - .align 2, 0 -_080F4710: .4byte gUnknown_3005AEC -_080F4714: .4byte gUnknown_2037280 -_080F4718: .4byte 0x000027CC -_080F471C: .4byte gUnknown_2037290 -_080F4720: .4byte gUnknown_2039CFC -_080F4724: - cmp r5, #2 - beq _080F47DC - cmp r5, #3 - bne _080F472E - b _080F4830 -_080F472E: - b _080F486C -_080F4730: - ldr r0, _080F4748 - adds r1, r4, #0 - adds r1, #0x13 - bl StringCopy - ldrb r0, [r4, #3] - cmp r0, #0 - beq _080F474C - cmp r0, #1 - beq _080F4760 - b _080F4768 - .align 2, 0 -_080F4748: .4byte gUnknown_2021C40 -_080F474C: - ldr r0, _080F4758 - ldr r1, _080F475C - bl StringCopy - b _080F4768 - .align 2, 0 -_080F4758: .4byte gUnknown_2021C54 -_080F475C: .4byte gUnknown_85CBFAD -_080F4760: - ldr r0, _080F4774 - ldr r1, _080F4778 - bl StringCopy -_080F4768: - ldrb r1, [r4, #2] - cmp r1, #1 - bne _080F4780 - ldr r0, _080F477C - strb r1, [r0] - b _080F486C - .align 2, 0 -_080F4774: .4byte gUnknown_2021C54 -_080F4778: .4byte gUnknown_85CBFB2 -_080F477C: .4byte gUnknown_2039CFC -_080F4780: - ldr r1, _080F4788 - movs r0, #2 - strb r0, [r1] - b _080F486C - .align 2, 0 -_080F4788: .4byte gUnknown_2039CFC -_080F478C: - ldr r0, _080F47A4 - adds r1, r4, #0 - adds r1, #0x13 - bl StringCopy - ldrb r0, [r4, #3] - cmp r0, #0 - beq _080F47A8 - cmp r0, #1 - beq _080F47BC - b _080F47C4 - .align 2, 0 -_080F47A4: .4byte gUnknown_2021C40 -_080F47A8: - ldr r0, _080F47B4 - ldr r1, _080F47B8 - bl StringCopy - b _080F47C4 - .align 2, 0 -_080F47B4: .4byte gUnknown_2021C54 -_080F47B8: .4byte gUnknown_85CBFAD -_080F47BC: - ldr r0, _080F47D4 - ldr r1, _080F47D8 - bl StringCopy -_080F47C4: - ldrh r1, [r4, #4] - movs r0, #2 - bl TV_PrintIntToStringVar - bl TVShowDone - b _080F486C - .align 2, 0 -_080F47D4: .4byte gUnknown_2021C54 -_080F47D8: .4byte gUnknown_85CBFB2 -_080F47DC: - ldr r0, _080F47F4 - adds r1, r4, #0 - adds r1, #0x13 - bl StringCopy - ldrb r0, [r4, #3] - cmp r0, #0 - beq _080F47F8 - cmp r0, #1 - beq _080F480C - b _080F4814 - .align 2, 0 -_080F47F4: .4byte gUnknown_2021C40 -_080F47F8: - ldr r0, _080F4804 - ldr r1, _080F4808 - bl StringCopy - b _080F4814 - .align 2, 0 -_080F4804: .4byte gUnknown_2021C54 -_080F4808: .4byte gUnknown_85CBFAD -_080F480C: - ldr r0, _080F4824 - ldr r1, _080F4828 - bl StringCopy -_080F4814: - ldrh r1, [r4, #4] - movs r0, #2 - bl TV_PrintIntToStringVar - ldr r1, _080F482C - movs r0, #3 - strb r0, [r1] - b _080F486C - .align 2, 0 -_080F4824: .4byte gUnknown_2021C54 -_080F4828: .4byte gUnknown_85CBFB2 -_080F482C: .4byte gUnknown_2039CFC -_080F4830: - ldr r0, _080F4848 - adds r1, r4, #0 - adds r1, #0x13 - bl StringCopy - ldrb r1, [r4, #3] - cmp r1, #0 - beq _080F484C - cmp r1, #1 - beq _080F4860 - b _080F4868 - .align 2, 0 -_080F4848: .4byte gUnknown_2021C40 -_080F484C: - ldr r0, _080F4858 - ldr r1, _080F485C - bl StringCopy - b _080F4868 - .align 2, 0 -_080F4858: .4byte gUnknown_2021C54 -_080F485C: .4byte gUnknown_85CBFB2 -_080F4860: - ldr r0, _080F4880 - ldr r1, _080F4884 - bl StringCopy -_080F4868: - bl TVShowDone -_080F486C: - ldr r0, _080F4888 - lsls r1, r5, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080F4880: .4byte gUnknown_2021C54 -_080F4884: .4byte gUnknown_85CBFAD -_080F4888: .4byte gUnknown_8568EC4 - thumb_func_end DoTVShowFindThatGamer - - thumb_func_start sub_080F488C -sub_080F488C: @ 0x080F488C - push {r4, r5, r6, lr} - ldr r2, _080F48C0 - ldr r0, _080F48C4 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080F48C8 - adds r0, r0, r1 - ldr r1, [r2] - adds r5, r1, r0 - ldr r1, _080F48CC - movs r0, #0 - strh r0, [r1] - ldr r0, _080F48D0 - ldrb r6, [r0] - adds r2, r0, #0 - cmp r6, #0xc - bls _080F48B4 - b _080F4BA2 -_080F48B4: - lsls r0, r6, #2 - ldr r1, _080F48D4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F48C0: .4byte gUnknown_3005AEC -_080F48C4: .4byte gUnknown_2037280 -_080F48C8: .4byte 0x000027CC -_080F48CC: .4byte gUnknown_2037290 -_080F48D0: .4byte gUnknown_2039CFC -_080F48D4: .4byte _080F48D8 -_080F48D8: @ jump table - .4byte _080F490C @ case 0 - .4byte _080F491E @ case 1 - .4byte _080F4960 @ case 2 - .4byte _080F49A8 @ case 3 - .4byte _080F49D0 @ case 4 - .4byte _080F49F4 @ case 5 - .4byte _080F4A38 @ case 6 - .4byte _080F4AC0 @ case 7 - .4byte _080F4B38 @ case 8 - .4byte _080F4B50 @ case 9 - .4byte _080F4B50 @ case 10 - .4byte _080F4B94 @ case 11 - .4byte _080F4AF0 @ case 12 -_080F490C: - ldrb r0, [r5, #5] - cmp r0, #0 - bne _080F4918 - movs r0, #1 - strb r0, [r2] - b _080F4BA2 -_080F4918: - movs r0, #5 - strb r0, [r2] - b _080F4BA2 -_080F491E: - ldr r0, _080F494C - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - ldr r0, _080F4950 - ldrh r2, [r5, #2] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F4954 - adds r1, r1, r2 - bl StringCopy - ldr r0, _080F4958 - ldrb r1, [r5, #4] - movs r2, #0 - bl GetMapName - ldr r1, _080F495C - movs r0, #2 - strb r0, [r1] - b _080F4BA2 - .align 2, 0 -_080F494C: .4byte gUnknown_2021C40 -_080F4950: .4byte gUnknown_2021C54 -_080F4954: .4byte gUnknown_82EA31C -_080F4958: .4byte gUnknown_2021C68 -_080F495C: .4byte gUnknown_2039CFC -_080F4960: - ldr r0, _080F4994 - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - ldr r0, _080F4998 - ldrh r2, [r5, #2] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r4, _080F499C - adds r1, r1, r4 - bl StringCopy - ldr r0, _080F49A0 - ldrh r2, [r5, #0xa] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - adds r1, r1, r4 - bl StringCopy - ldr r1, _080F49A4 - movs r0, #3 - strb r0, [r1] - b _080F4BA2 - .align 2, 0 -_080F4994: .4byte gUnknown_2021C40 -_080F4998: .4byte gUnknown_2021C54 -_080F499C: .4byte gUnknown_82EA31C -_080F49A0: .4byte gUnknown_2021C68 -_080F49A4: .4byte gUnknown_2039CFC -_080F49A8: - ldrh r1, [r5, #8] - movs r0, #0 - bl TV_PrintIntToStringVar - ldr r4, _080F49C8 - ldrh r0, [r5, #6] - bl sub_080D6C8C - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCopy - ldr r1, _080F49CC - movs r0, #4 - strb r0, [r1] - b _080F4BA2 - .align 2, 0 -_080F49C8: .4byte gUnknown_2021C54 -_080F49CC: .4byte gUnknown_2039CFC -_080F49D0: - ldr r0, _080F49EC - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - ldr r0, _080F49F0 - ldrb r1, [r5, #4] - movs r2, #0 - bl GetMapName - bl TVShowDone - b _080F4BA2 - .align 2, 0 -_080F49EC: .4byte gUnknown_2021C40 -_080F49F0: .4byte gUnknown_2021C54 -_080F49F4: - ldr r0, _080F4A24 - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - ldr r0, _080F4A28 - ldrh r2, [r5, #2] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F4A2C - adds r1, r1, r2 - bl StringCopy - ldr r0, _080F4A30 - ldrb r1, [r5, #4] - movs r2, #0 - bl GetMapName - ldr r1, _080F4A34 - movs r0, #6 - strb r0, [r1] - b _080F4BA2 - .align 2, 0 -_080F4A24: .4byte gUnknown_2021C40 -_080F4A28: .4byte gUnknown_2021C54 -_080F4A2C: .4byte gUnknown_82EA31C -_080F4A30: .4byte gUnknown_2021C68 -_080F4A34: .4byte gUnknown_2039CFC -_080F4A38: - ldr r0, _080F4A74 - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - ldr r0, _080F4A78 - ldrh r2, [r5, #2] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r4, _080F4A7C - adds r1, r1, r4 - bl StringCopy - ldr r0, _080F4A80 - ldrh r2, [r5, #0xa] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - adds r1, r1, r4 - bl StringCopy - ldrb r0, [r5, #5] - cmp r0, #2 - beq _080F4AA8 - cmp r0, #2 - bgt _080F4A84 - cmp r0, #1 - beq _080F4A8A - b _080F4BA2 - .align 2, 0 -_080F4A74: .4byte gUnknown_2021C40 -_080F4A78: .4byte gUnknown_2021C54 -_080F4A7C: .4byte gUnknown_82EA31C -_080F4A80: .4byte gUnknown_2021C68 -_080F4A84: - cmp r0, #3 - beq _080F4AB4 - b _080F4BA2 -_080F4A8A: - ldrh r0, [r5, #0xc] - cmp r0, #0 - bne _080F4A9C - ldr r1, _080F4A98 - movs r0, #0xc - strb r0, [r1] - b _080F4BA2 - .align 2, 0 -_080F4A98: .4byte gUnknown_2039CFC -_080F4A9C: - ldr r1, _080F4AA4 - movs r0, #7 - strb r0, [r1] - b _080F4BA2 - .align 2, 0 -_080F4AA4: .4byte gUnknown_2039CFC -_080F4AA8: - ldr r1, _080F4AB0 - movs r0, #9 - strb r0, [r1] - b _080F4BA2 - .align 2, 0 -_080F4AB0: .4byte gUnknown_2039CFC -_080F4AB4: - ldr r1, _080F4ABC - movs r0, #0xa - strb r0, [r1] - b _080F4BA2 - .align 2, 0 -_080F4ABC: .4byte gUnknown_2039CFC -_080F4AC0: - ldr r0, _080F4AE0 - ldrh r1, [r5, #0xc] - lsls r1, r1, #3 - ldr r2, _080F4AE4 - adds r1, r1, r2 - bl StringCopy - ldr r0, _080F4AE8 - ldrh r2, [r5, #0xa] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F4AEC - adds r1, r1, r2 - b _080F4B18 - .align 2, 0 -_080F4AE0: .4byte gUnknown_2021C40 -_080F4AE4: .4byte gUnknown_82EACC4 -_080F4AE8: .4byte gUnknown_2021C54 -_080F4AEC: .4byte gUnknown_82EA31C -_080F4AF0: - ldr r0, _080F4B24 - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - ldr r0, _080F4B28 - ldrh r2, [r5, #2] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r4, _080F4B2C - adds r1, r1, r4 - bl StringCopy - ldr r0, _080F4B30 - ldrh r2, [r5, #0xa] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - adds r1, r1, r4 -_080F4B18: - bl StringCopy - ldr r1, _080F4B34 - movs r0, #8 - strb r0, [r1] - b _080F4BA2 - .align 2, 0 -_080F4B24: .4byte gUnknown_2021C40 -_080F4B28: .4byte gUnknown_2021C54 -_080F4B2C: .4byte gUnknown_82EA31C -_080F4B30: .4byte gUnknown_2021C68 -_080F4B34: .4byte gUnknown_2039CFC -_080F4B38: - ldr r0, _080F4B48 - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - ldr r0, _080F4B4C - b _080F4B6E - .align 2, 0 -_080F4B48: .4byte gUnknown_2021C40 -_080F4B4C: .4byte gUnknown_2021C54 -_080F4B50: - ldr r0, _080F4B80 - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - ldr r0, _080F4B84 - ldrh r2, [r5, #2] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F4B88 - adds r1, r1, r2 - bl StringCopy - ldr r0, _080F4B8C -_080F4B6E: - ldrb r1, [r5, #4] - movs r2, #0 - bl GetMapName - ldr r1, _080F4B90 - movs r0, #0xb - strb r0, [r1] - b _080F4BA2 - .align 2, 0 -_080F4B80: .4byte gUnknown_2021C40 -_080F4B84: .4byte gUnknown_2021C54 -_080F4B88: .4byte gUnknown_82EA31C -_080F4B8C: .4byte gUnknown_2021C68 -_080F4B90: .4byte gUnknown_2039CFC -_080F4B94: - ldr r0, _080F4BB4 - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - bl TVShowDone -_080F4BA2: - ldr r0, _080F4BB8 - lsls r1, r6, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080F4BB4: .4byte gUnknown_2021C40 -_080F4BB8: .4byte gUnknown_8568ED4 - thumb_func_end sub_080F488C - - thumb_func_start DoTVShowSecretBaseVisit -DoTVShowSecretBaseVisit: @ 0x080F4BBC - push {r4, r5, r6, lr} - ldr r2, _080F4BF0 - ldr r0, _080F4BF4 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080F4BF8 - adds r0, r0, r1 - ldr r1, [r2] - adds r5, r1, r0 - ldr r1, _080F4BFC - movs r0, #0 - strh r0, [r1] - ldr r0, _080F4C00 - ldrb r6, [r0] - adds r2, r0, #0 - cmp r6, #0xd - bls _080F4BE4 - b _080F4DF4 -_080F4BE4: - lsls r0, r6, #2 - ldr r1, _080F4C04 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F4BF0: .4byte gUnknown_3005AEC -_080F4BF4: .4byte gUnknown_2037280 -_080F4BF8: .4byte 0x000027CC -_080F4BFC: .4byte gUnknown_2037290 -_080F4C00: .4byte gUnknown_2039CFC -_080F4C04: .4byte _080F4C08 -_080F4C08: @ jump table - .4byte _080F4C40 @ case 0 - .4byte _080F4C6C @ case 1 - .4byte _080F4D50 @ case 2 - .4byte _080F4CA4 @ case 3 - .4byte _080F4D50 @ case 4 - .4byte _080F4CFC @ case 5 - .4byte _080F4D28 @ case 6 - .4byte _080F4D50 @ case 7 - .4byte _080F4D56 @ case 8 - .4byte _080F4DA4 @ case 9 - .4byte _080F4DA4 @ case 10 - .4byte _080F4DA4 @ case 11 - .4byte _080F4DA4 @ case 12 - .4byte _080F4DF0 @ case 13 -_080F4C40: - ldr r0, _080F4C58 - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - ldrb r0, [r5, #3] - cmp r0, #0 - bne _080F4C60 - ldr r1, _080F4C5C - movs r0, #2 - strb r0, [r1] - b _080F4DF4 - .align 2, 0 -_080F4C58: .4byte gUnknown_2021C40 -_080F4C5C: .4byte gUnknown_2039CFC -_080F4C60: - ldr r1, _080F4C68 - movs r0, #1 - strb r0, [r1] - b _080F4DF4 - .align 2, 0 -_080F4C68: .4byte gUnknown_2039CFC -_080F4C6C: - ldr r0, _080F4C8C - ldrb r2, [r5, #4] - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - ldr r2, _080F4C90 - adds r1, r1, r2 - bl StringCopy - ldrb r0, [r5, #3] - cmp r0, #1 - bne _080F4C98 - ldr r1, _080F4C94 - movs r0, #4 - strb r0, [r1] - b _080F4DF4 - .align 2, 0 -_080F4C8C: .4byte gUnknown_2021C54 -_080F4C90: .4byte gUnknown_8580CD1 -_080F4C94: .4byte gUnknown_2039CFC -_080F4C98: - ldr r1, _080F4CA0 - movs r0, #3 - strb r0, [r1] - b _080F4DF4 - .align 2, 0 -_080F4CA0: .4byte gUnknown_2039CFC -_080F4CA4: - ldr r0, _080F4CC8 - ldrb r2, [r5, #5] - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - ldr r2, _080F4CCC - adds r1, r1, r2 - bl StringCopy - ldrb r1, [r5, #3] - cmp r1, #3 - beq _080F4CE4 - cmp r1, #3 - bgt _080F4CD0 - cmp r1, #2 - beq _080F4CD6 - b _080F4DF4 - .align 2, 0 -_080F4CC8: .4byte gUnknown_2021C54 -_080F4CCC: .4byte gUnknown_8580CD1 -_080F4CD0: - cmp r1, #4 - beq _080F4CF0 - b _080F4DF4 -_080F4CD6: - ldr r1, _080F4CE0 - movs r0, #7 - strb r0, [r1] - b _080F4DF4 - .align 2, 0 -_080F4CE0: .4byte gUnknown_2039CFC -_080F4CE4: - ldr r1, _080F4CEC - movs r0, #6 - strb r0, [r1] - b _080F4DF4 - .align 2, 0 -_080F4CEC: .4byte gUnknown_2039CFC -_080F4CF0: - ldr r1, _080F4CF8 - movs r0, #5 - strb r0, [r1] - b _080F4DF4 - .align 2, 0 -_080F4CF8: .4byte gUnknown_2039CFC -_080F4CFC: - ldr r0, _080F4D1C - ldrb r2, [r5, #6] - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - ldr r4, _080F4D20 - adds r1, r1, r4 - bl StringCopy - ldr r0, _080F4D24 - ldrb r2, [r5, #7] - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r4 - b _080F4D36 - .align 2, 0 -_080F4D1C: .4byte gUnknown_2021C54 -_080F4D20: .4byte gUnknown_8580CD1 -_080F4D24: .4byte gUnknown_2021C68 -_080F4D28: - ldr r0, _080F4D44 - ldrb r2, [r5, #6] - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - ldr r2, _080F4D48 - adds r1, r1, r2 -_080F4D36: - bl StringCopy - ldr r1, _080F4D4C - movs r0, #8 - strb r0, [r1] - b _080F4DF4 - .align 2, 0 -_080F4D44: .4byte gUnknown_2021C54 -_080F4D48: .4byte gUnknown_8580CD1 -_080F4D4C: .4byte gUnknown_2039CFC -_080F4D50: - movs r0, #8 - strb r0, [r2] - b _080F4DF4 -_080F4D56: - ldr r0, _080F4D70 - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - ldrb r1, [r5, #2] - cmp r1, #0x18 - bhi _080F4D78 - ldr r1, _080F4D74 - movs r0, #0xc - strb r0, [r1] - b _080F4DF4 - .align 2, 0 -_080F4D70: .4byte gUnknown_2021C40 -_080F4D74: .4byte gUnknown_2039CFC -_080F4D78: - cmp r1, #0x31 - bhi _080F4D88 - ldr r1, _080F4D84 - movs r0, #0xb - strb r0, [r1] - b _080F4DF4 - .align 2, 0 -_080F4D84: .4byte gUnknown_2039CFC -_080F4D88: - cmp r1, #0x45 - bhi _080F4D98 - ldr r1, _080F4D94 - movs r0, #0xa - strb r0, [r1] - b _080F4DF4 - .align 2, 0 -_080F4D94: .4byte gUnknown_2039CFC -_080F4D98: - ldr r1, _080F4DA0 - movs r0, #9 - strb r0, [r1] - b _080F4DF4 - .align 2, 0 -_080F4DA0: .4byte gUnknown_2039CFC -_080F4DA4: - ldr r0, _080F4DD8 - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - ldr r0, _080F4DDC - ldrh r2, [r5, #8] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F4DE0 - adds r1, r1, r2 - bl StringCopy - ldr r0, _080F4DE4 - ldrh r1, [r5, #0xa] - lsls r1, r1, #3 - ldr r2, _080F4DE8 - adds r1, r1, r2 - bl StringCopy - ldr r1, _080F4DEC - movs r0, #0xd - strb r0, [r1] - b _080F4DF4 - .align 2, 0 -_080F4DD8: .4byte gUnknown_2021C40 -_080F4DDC: .4byte gUnknown_2021C54 -_080F4DE0: .4byte gUnknown_82EA31C -_080F4DE4: .4byte gUnknown_2021C68 -_080F4DE8: .4byte gUnknown_82EACC4 -_080F4DEC: .4byte gUnknown_2039CFC -_080F4DF0: - bl TVShowDone -_080F4DF4: - ldr r0, _080F4E08 - lsls r1, r6, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080F4E08: .4byte gUnknown_8568F08 - thumb_func_end DoTVShowSecretBaseVisit - - thumb_func_start DoTVShowPokemonLotteryWinnerFlashReport -DoTVShowPokemonLotteryWinnerFlashReport: @ 0x080F4E0C - push {r4, r5, r6, lr} - ldr r2, _080F4E48 - ldr r0, _080F4E4C - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080F4E50 - adds r0, r0, r1 - ldr r1, [r2] - adds r5, r1, r0 - ldr r1, _080F4E54 - movs r0, #0 - strh r0, [r1] - ldr r0, _080F4E58 - ldrb r6, [r0] - ldr r0, _080F4E5C - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - ldrb r0, [r5, #4] - cmp r0, #0 - bne _080F4E68 - ldr r0, _080F4E60 - ldr r1, _080F4E64 - bl StringCopy - b _080F4E70 - .align 2, 0 -_080F4E48: .4byte gUnknown_3005AEC -_080F4E4C: .4byte gUnknown_2037280 -_080F4E50: .4byte 0x000027CC -_080F4E54: .4byte gUnknown_2037290 -_080F4E58: .4byte gUnknown_2039CFC -_080F4E5C: .4byte gUnknown_2021C40 -_080F4E60: .4byte gUnknown_2021C54 -_080F4E64: .4byte gUnknown_85CBFEC -_080F4E68: - ldrb r1, [r5, #4] - movs r0, #1 - bl TV_PrintIntToStringVar -_080F4E70: - ldr r4, _080F4E98 - ldrh r0, [r5, #2] - bl sub_080D6C8C - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCopy - bl TVShowDone - ldr r1, _080F4E9C - lsls r0, r6, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl ShowFieldMessage - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080F4E98: .4byte gUnknown_2021C68 -_080F4E9C: .4byte gUnknown_8568F40 - thumb_func_end DoTVShowPokemonLotteryWinnerFlashReport - - thumb_func_start sub_080F4EA0 -sub_080F4EA0: @ 0x080F4EA0 - push {r4, r5, r6, lr} - ldr r2, _080F4ED0 - ldr r0, _080F4ED4 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080F4ED8 - adds r0, r0, r1 - ldr r1, [r2] - adds r5, r1, r0 - ldr r1, _080F4EDC - movs r0, #0 - strh r0, [r1] - ldr r0, _080F4EE0 - ldrb r6, [r0] - cmp r6, #6 - bls _080F4EC6 - b _080F508A -_080F4EC6: - lsls r0, r6, #2 - ldr r1, _080F4EE4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F4ED0: .4byte gUnknown_3005AEC -_080F4ED4: .4byte gUnknown_2037280 -_080F4ED8: .4byte 0x000027CC -_080F4EDC: .4byte gUnknown_2037290 -_080F4EE0: .4byte gUnknown_2039CFC -_080F4EE4: .4byte _080F4EE8 -_080F4EE8: @ jump table - .4byte _080F4F04 @ case 0 - .4byte _080F4F4C @ case 1 - .4byte _080F4F98 @ case 2 - .4byte _080F4FF0 @ case 3 - .4byte _080F5024 @ case 4 - .4byte _080F5048 @ case 5 - .4byte _080F506C @ case 6 -_080F4F04: - ldr r0, _080F4F38 - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - ldr r0, _080F4F3C - ldrh r2, [r5, #6] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r4, _080F4F40 - adds r1, r1, r4 - bl StringCopy - ldr r0, _080F4F44 - ldrh r2, [r5, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - adds r1, r1, r4 - bl StringCopy - ldr r1, _080F4F48 - movs r0, #1 - strb r0, [r1] - b _080F508A - .align 2, 0 -_080F4F38: .4byte gUnknown_2021C40 -_080F4F3C: .4byte gUnknown_2021C54 -_080F4F40: .4byte gUnknown_82EA31C -_080F4F44: .4byte gUnknown_2021C68 -_080F4F48: .4byte gUnknown_2039CFC -_080F4F4C: - ldr r0, _080F4F80 - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - ldr r0, _080F4F84 - ldrh r2, [r5, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F4F88 - adds r1, r1, r2 - bl StringCopy - ldr r0, _080F4F8C - ldrh r1, [r5, #2] - lsls r1, r1, #3 - ldr r2, _080F4F90 - adds r1, r1, r2 - bl StringCopy - ldr r1, _080F4F94 - movs r0, #2 - strb r0, [r1] - b _080F508A - .align 2, 0 -_080F4F80: .4byte gUnknown_2021C40 -_080F4F84: .4byte gUnknown_2021C54 -_080F4F88: .4byte gUnknown_82EA31C -_080F4F8C: .4byte gUnknown_2021C68 -_080F4F90: .4byte gUnknown_82EACC4 -_080F4F94: .4byte gUnknown_2039CFC -_080F4F98: - ldr r0, _080F4FBC - ldrh r2, [r5, #6] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F4FC0 - adds r1, r1, r2 - bl StringCopy - ldrb r1, [r5, #0x10] - cmp r1, #2 - beq _080F4FD8 - cmp r1, #2 - bgt _080F4FC4 - cmp r1, #1 - beq _080F4FCA - b _080F5056 - .align 2, 0 -_080F4FBC: .4byte gUnknown_2021C40 -_080F4FC0: .4byte gUnknown_82EA31C -_080F4FC4: - cmp r1, #3 - beq _080F4FE4 - b _080F5056 -_080F4FCA: - ldr r1, _080F4FD4 - movs r0, #5 - strb r0, [r1] - b _080F508A - .align 2, 0 -_080F4FD4: .4byte gUnknown_2039CFC -_080F4FD8: - ldr r1, _080F4FE0 - movs r0, #4 - strb r0, [r1] - b _080F508A - .align 2, 0 -_080F4FE0: .4byte gUnknown_2039CFC -_080F4FE4: - ldr r0, _080F4FEC - strb r1, [r0] - b _080F508A - .align 2, 0 -_080F4FEC: .4byte gUnknown_2039CFC -_080F4FF0: - ldr r0, _080F5014 - ldrh r1, [r5, #8] - lsls r1, r1, #3 - ldr r4, _080F5018 - adds r1, r1, r4 - bl StringCopy - ldr r0, _080F501C - ldrh r1, [r5, #0xa] - lsls r1, r1, #3 - adds r1, r1, r4 - bl StringCopy - ldr r0, _080F5020 - ldrh r1, [r5, #0xc] - lsls r1, r1, #3 - adds r1, r1, r4 - b _080F5052 - .align 2, 0 -_080F5014: .4byte gUnknown_2021C40 -_080F5018: .4byte gUnknown_82EACC4 -_080F501C: .4byte gUnknown_2021C54 -_080F5020: .4byte gUnknown_2021C68 -_080F5024: - ldr r0, _080F503C - ldrh r1, [r5, #8] - lsls r1, r1, #3 - ldr r4, _080F5040 - adds r1, r1, r4 - bl StringCopy - ldr r0, _080F5044 - ldrh r1, [r5, #0xa] - lsls r1, r1, #3 - adds r1, r1, r4 - b _080F5052 - .align 2, 0 -_080F503C: .4byte gUnknown_2021C40 -_080F5040: .4byte gUnknown_82EACC4 -_080F5044: .4byte gUnknown_2021C54 -_080F5048: - ldr r0, _080F5060 - ldrh r1, [r5, #8] - lsls r1, r1, #3 - ldr r2, _080F5064 - adds r1, r1, r2 -_080F5052: - bl StringCopy -_080F5056: - ldr r1, _080F5068 - movs r0, #6 - strb r0, [r1] - b _080F508A - .align 2, 0 -_080F5060: .4byte gUnknown_2021C54 -_080F5064: .4byte gUnknown_82EACC4 -_080F5068: .4byte gUnknown_2039CFC -_080F506C: - ldr r0, _080F509C - ldrh r1, [r5, #0xe] - lsls r1, r1, #3 - ldr r4, _080F50A0 - adds r1, r1, r4 - bl StringCopy - ldr r0, _080F50A4 - ldrh r1, [r5, #2] - lsls r1, r1, #3 - adds r1, r1, r4 - bl StringCopy - bl TVShowDone -_080F508A: - ldr r0, _080F50A8 - lsls r1, r6, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080F509C: .4byte gUnknown_2021C40 -_080F50A0: .4byte gUnknown_82EACC4 -_080F50A4: .4byte gUnknown_2021C54 -_080F50A8: .4byte gUnknown_8568F44 - thumb_func_end sub_080F4EA0 - - thumb_func_start sub_080F50AC -sub_080F50AC: @ 0x080F50AC - push {r4, r5, lr} - ldr r2, _080F50DC - ldr r0, _080F50E0 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080F50E4 - adds r0, r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r1, _080F50E8 - movs r0, #0 - strh r0, [r1] - ldr r0, _080F50EC - ldrb r5, [r0] - cmp r5, #5 - bls _080F50D2 - b _080F51BE -_080F50D2: - lsls r0, r5, #2 - ldr r1, _080F50F0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F50DC: .4byte gUnknown_3005AEC -_080F50E0: .4byte gUnknown_2037280 -_080F50E4: .4byte 0x000027CC -_080F50E8: .4byte gUnknown_2037290 -_080F50EC: .4byte gUnknown_2039CFC -_080F50F0: .4byte _080F50F4 -_080F50F4: @ jump table - .4byte _080F510C @ case 0 - .4byte _080F5170 @ case 1 - .4byte _080F5170 @ case 2 - .4byte _080F5170 @ case 3 - .4byte _080F5170 @ case 4 - .4byte _080F51A0 @ case 5 -_080F510C: - ldr r0, _080F5134 - adds r1, r4, #0 - adds r1, #0xc - bl StringCopy - ldr r0, _080F5138 - adds r1, r4, #2 - bl StringCopy - ldr r0, _080F513C - ldrh r1, [r4, #0x14] - bl CopyEasyChatWord - ldrb r1, [r4, #0x16] - cmp r1, #0x59 - bls _080F5144 - ldr r1, _080F5140 - movs r0, #1 - strb r0, [r1] - b _080F51BE - .align 2, 0 -_080F5134: .4byte gUnknown_2021C40 -_080F5138: .4byte gUnknown_2021C54 -_080F513C: .4byte gUnknown_2021C68 -_080F5140: .4byte gUnknown_2039CFC -_080F5144: - cmp r1, #0x45 - bls _080F5154 - ldr r1, _080F5150 - movs r0, #2 - strb r0, [r1] - b _080F51BE - .align 2, 0 -_080F5150: .4byte gUnknown_2039CFC -_080F5154: - cmp r1, #0x1d - bls _080F5164 - ldr r1, _080F5160 - movs r0, #3 - strb r0, [r1] - b _080F51BE - .align 2, 0 -_080F5160: .4byte gUnknown_2039CFC -_080F5164: - ldr r1, _080F516C - movs r0, #4 - strb r0, [r1] - b _080F51BE - .align 2, 0 -_080F516C: .4byte gUnknown_2039CFC -_080F5170: - ldr r0, _080F5194 - adds r1, r4, #0 - adds r1, #0xc - bl StringCopy - ldr r0, _080F5198 - adds r1, r4, #2 - bl StringCopy - ldrb r1, [r4, #0x16] - movs r0, #2 - bl TV_PrintIntToStringVar - ldr r1, _080F519C - movs r0, #5 - strb r0, [r1] - b _080F51BE - .align 2, 0 -_080F5194: .4byte gUnknown_2021C40 -_080F5198: .4byte gUnknown_2021C54 -_080F519C: .4byte gUnknown_2039CFC -_080F51A0: - ldr r0, _080F51D0 - adds r1, r4, #0 - adds r1, #0xc - bl StringCopy - ldr r0, _080F51D4 - adds r1, r4, #2 - bl StringCopy - ldr r0, _080F51D8 - ldrh r1, [r4, #0x14] - bl CopyEasyChatWord - bl TVShowDone -_080F51BE: - ldr r0, _080F51DC - lsls r1, r5, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080F51D0: .4byte gUnknown_2021C40 -_080F51D4: .4byte gUnknown_2021C54 -_080F51D8: .4byte gUnknown_2021C68 -_080F51DC: .4byte gUnknown_8568DCC - thumb_func_end sub_080F50AC - - thumb_func_start sub_080F51E0 -sub_080F51E0: @ 0x080F51E0 - push {r4, r5, lr} - ldr r2, _080F5214 - ldr r0, _080F5218 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080F521C - adds r0, r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r1, _080F5220 - movs r0, #0 - strh r0, [r1] - ldr r0, _080F5224 - ldrb r5, [r0] - adds r2, r0, #0 - cmp r5, #0xb - bls _080F5208 - b _080F5358 -_080F5208: - lsls r0, r5, #2 - ldr r1, _080F5228 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F5214: .4byte gUnknown_3005AEC -_080F5218: .4byte gUnknown_2037280 -_080F521C: .4byte 0x000027CC -_080F5220: .4byte gUnknown_2037290 -_080F5224: .4byte gUnknown_2039CFC -_080F5228: .4byte _080F522C -_080F522C: @ jump table - .4byte _080F525C @ case 0 - .4byte _080F5334 @ case 1 - .4byte _080F5334 @ case 2 - .4byte _080F5334 @ case 3 - .4byte _080F5334 @ case 4 - .4byte _080F5334 @ case 5 - .4byte _080F5334 @ case 6 - .4byte _080F5334 @ case 7 - .4byte _080F5334 @ case 8 - .4byte _080F5334 @ case 9 - .4byte _080F5334 @ case 10 - .4byte _080F533A @ case 11 -_080F525C: - ldr r0, _080F528C - adds r1, r4, #0 - adds r1, #0x13 - bl StringCopy - adds r0, r4, #0 - adds r0, #0x23 - ldrb r0, [r0] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x22 - ldrb r1, [r1] - adds r0, r0, r1 - movs r1, #0xa - bl __umodsi3 - cmp r0, #9 - bls _080F5282 - b _080F5358 -_080F5282: - lsls r0, r0, #2 - ldr r1, _080F5290 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F528C: .4byte gUnknown_2021C40 -_080F5290: .4byte _080F5294 -_080F5294: @ jump table - .4byte _080F52BC @ case 0 - .4byte _080F52C8 @ case 1 - .4byte _080F52D4 @ case 2 - .4byte _080F52E0 @ case 3 - .4byte _080F52EC @ case 4 - .4byte _080F52F8 @ case 5 - .4byte _080F5304 @ case 6 - .4byte _080F5310 @ case 7 - .4byte _080F531C @ case 8 - .4byte _080F5328 @ case 9 -_080F52BC: - ldr r1, _080F52C4 - movs r0, #1 - strb r0, [r1] - b _080F5358 - .align 2, 0 -_080F52C4: .4byte gUnknown_2039CFC -_080F52C8: - ldr r1, _080F52D0 - movs r0, #2 - strb r0, [r1] - b _080F5358 - .align 2, 0 -_080F52D0: .4byte gUnknown_2039CFC -_080F52D4: - ldr r1, _080F52DC - movs r0, #3 - strb r0, [r1] - b _080F5358 - .align 2, 0 -_080F52DC: .4byte gUnknown_2039CFC -_080F52E0: - ldr r1, _080F52E8 - movs r0, #4 - strb r0, [r1] - b _080F5358 - .align 2, 0 -_080F52E8: .4byte gUnknown_2039CFC -_080F52EC: - ldr r1, _080F52F4 - movs r0, #5 - strb r0, [r1] - b _080F5358 - .align 2, 0 -_080F52F4: .4byte gUnknown_2039CFC -_080F52F8: - ldr r1, _080F5300 - movs r0, #6 - strb r0, [r1] - b _080F5358 - .align 2, 0 -_080F5300: .4byte gUnknown_2039CFC -_080F5304: - ldr r1, _080F530C - movs r0, #7 - strb r0, [r1] - b _080F5358 - .align 2, 0 -_080F530C: .4byte gUnknown_2039CFC -_080F5310: - ldr r1, _080F5318 - movs r0, #8 - strb r0, [r1] - b _080F5358 - .align 2, 0 -_080F5318: .4byte gUnknown_2039CFC -_080F531C: - ldr r1, _080F5324 - movs r0, #9 - strb r0, [r1] - b _080F5358 - .align 2, 0 -_080F5324: .4byte gUnknown_2039CFC -_080F5328: - ldr r1, _080F5330 - movs r0, #0xa - strb r0, [r1] - b _080F5358 - .align 2, 0 -_080F5330: .4byte gUnknown_2039CFC -_080F5334: - movs r0, #0xb - strb r0, [r2] - b _080F5358 -_080F533A: - ldr r0, _080F536C - adds r1, r4, #0 - adds r1, #0x13 - bl StringCopy - ldr r0, _080F5370 - ldrh r1, [r4, #4] - bl CopyEasyChatWord - ldr r0, _080F5374 - ldrh r1, [r4, #6] - bl CopyEasyChatWord - bl TVShowDone -_080F5358: - ldr r0, _080F5378 - lsls r1, r5, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080F536C: .4byte gUnknown_2021C40 -_080F5370: .4byte gUnknown_2021C54 -_080F5374: .4byte gUnknown_2021C68 -_080F5378: .4byte gUnknown_8568F60 - thumb_func_end sub_080F51E0 - - thumb_func_start sub_080F537C -sub_080F537C: @ 0x080F537C - push {r4, r5, lr} - ldr r2, _080F53AC - ldr r0, _080F53B0 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080F53B4 - adds r0, r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r1, _080F53B8 - movs r0, #0 - strh r0, [r1] - ldr r0, _080F53BC - ldrb r5, [r0] - cmp r5, #0xf - bls _080F53A2 - b _080F5598 -_080F53A2: - lsls r0, r5, #2 - ldr r1, _080F53C0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F53AC: .4byte gUnknown_3005AEC -_080F53B0: .4byte gUnknown_2037280 -_080F53B4: .4byte 0x000027CC -_080F53B8: .4byte gUnknown_2037290 -_080F53BC: .4byte gUnknown_2039CFC -_080F53C0: .4byte _080F53C4 -_080F53C4: @ jump table - .4byte _080F5404 @ case 0 - .4byte _080F544C @ case 1 - .4byte _080F544C @ case 2 - .4byte _080F544C @ case 3 - .4byte _080F547C @ case 4 - .4byte _080F557C @ case 5 - .4byte _080F557C @ case 6 - .4byte _080F557C @ case 7 - .4byte _080F557C @ case 8 - .4byte _080F557C @ case 9 - .4byte _080F557C @ case 10 - .4byte _080F557C @ case 11 - .4byte _080F557C @ case 12 - .4byte _080F557C @ case 13 - .4byte _080F557C @ case 14 - .4byte _080F5594 @ case 15 -_080F5404: - ldr r0, _080F5424 - adds r1, r4, #0 - adds r1, #0x13 - bl StringCopy - ldr r0, _080F5428 - adds r1, r4, #4 - bl StringCopy - ldrb r1, [r4, #2] - cmp r1, #9 - bhi _080F5430 - ldr r1, _080F542C - movs r0, #1 - strb r0, [r1] - b _080F5598 - .align 2, 0 -_080F5424: .4byte gUnknown_2021C40 -_080F5428: .4byte gUnknown_2021C54 -_080F542C: .4byte gUnknown_2039CFC -_080F5430: - cmp r1, #0x13 - bhi _080F5440 - ldr r1, _080F543C - movs r0, #2 - strb r0, [r1] - b _080F5598 - .align 2, 0 -_080F543C: .4byte gUnknown_2039CFC -_080F5440: - ldr r1, _080F5448 - movs r0, #3 - strb r0, [r1] - b _080F5598 - .align 2, 0 -_080F5448: .4byte gUnknown_2039CFC -_080F544C: - ldr r0, _080F5470 - adds r1, r4, #0 - adds r1, #0x13 - bl StringCopy - ldr r0, _080F5474 - adds r1, r4, #4 - bl StringCopy - ldrb r1, [r4, #2] - movs r0, #2 - bl TV_PrintIntToStringVar - ldr r1, _080F5478 - movs r0, #4 - strb r0, [r1] - b _080F5598 - .align 2, 0 -_080F5470: .4byte gUnknown_2021C40 -_080F5474: .4byte gUnknown_2021C54 -_080F5478: .4byte gUnknown_2039CFC -_080F547C: - ldr r0, _080F5498 - adds r1, r4, #4 - bl StringCopy - ldrb r0, [r4, #3] - cmp r0, #0x18 - bls _080F548C - b _080F5598 -_080F548C: - lsls r0, r0, #2 - ldr r1, _080F549C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F5498: .4byte gUnknown_2021C54 -_080F549C: .4byte _080F54A0 -_080F54A0: @ jump table - .4byte _080F5504 @ case 0 - .4byte _080F5510 @ case 1 - .4byte _080F5510 @ case 2 - .4byte _080F5510 @ case 3 - .4byte _080F5510 @ case 4 - .4byte _080F551C @ case 5 - .4byte _080F551C @ case 6 - .4byte _080F551C @ case 7 - .4byte _080F551C @ case 8 - .4byte _080F5528 @ case 9 - .4byte _080F5528 @ case 10 - .4byte _080F5528 @ case 11 - .4byte _080F5528 @ case 12 - .4byte _080F5534 @ case 13 - .4byte _080F5534 @ case 14 - .4byte _080F5534 @ case 15 - .4byte _080F5534 @ case 16 - .4byte _080F5540 @ case 17 - .4byte _080F5540 @ case 18 - .4byte _080F5540 @ case 19 - .4byte _080F5540 @ case 20 - .4byte _080F554C @ case 21 - .4byte _080F5558 @ case 22 - .4byte _080F5564 @ case 23 - .4byte _080F5570 @ case 24 -_080F5504: - ldr r1, _080F550C - movs r0, #5 - strb r0, [r1] - b _080F5598 - .align 2, 0 -_080F550C: .4byte gUnknown_2039CFC -_080F5510: - ldr r1, _080F5518 - movs r0, #6 - strb r0, [r1] - b _080F5598 - .align 2, 0 -_080F5518: .4byte gUnknown_2039CFC -_080F551C: - ldr r1, _080F5524 - movs r0, #7 - strb r0, [r1] - b _080F5598 - .align 2, 0 -_080F5524: .4byte gUnknown_2039CFC -_080F5528: - ldr r1, _080F5530 - movs r0, #8 - strb r0, [r1] - b _080F5598 - .align 2, 0 -_080F5530: .4byte gUnknown_2039CFC -_080F5534: - ldr r1, _080F553C - movs r0, #9 - strb r0, [r1] - b _080F5598 - .align 2, 0 -_080F553C: .4byte gUnknown_2039CFC -_080F5540: - ldr r1, _080F5548 - movs r0, #0xa - strb r0, [r1] - b _080F5598 - .align 2, 0 -_080F5548: .4byte gUnknown_2039CFC -_080F554C: - ldr r1, _080F5554 - movs r0, #0xb - strb r0, [r1] - b _080F5598 - .align 2, 0 -_080F5554: .4byte gUnknown_2039CFC -_080F5558: - ldr r1, _080F5560 - movs r0, #0xc - strb r0, [r1] - b _080F5598 - .align 2, 0 -_080F5560: .4byte gUnknown_2039CFC -_080F5564: - ldr r1, _080F556C - movs r0, #0xd - strb r0, [r1] - b _080F5598 - .align 2, 0 -_080F556C: .4byte gUnknown_2039CFC -_080F5570: - ldr r1, _080F5578 - movs r0, #0xe - strb r0, [r1] - b _080F5598 - .align 2, 0 -_080F5578: .4byte gUnknown_2039CFC -_080F557C: - ldr r0, _080F558C - adds r1, r4, #4 - bl StringCopy - ldr r1, _080F5590 - movs r0, #0xf - strb r0, [r1] - b _080F5598 - .align 2, 0 -_080F558C: .4byte gUnknown_2021C54 -_080F5590: .4byte gUnknown_2039CFC -_080F5594: - bl TVShowDone -_080F5598: - ldr r0, _080F55AC - lsls r1, r5, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080F55AC: .4byte gUnknown_8568F90 - thumb_func_end sub_080F537C - - thumb_func_start sub_080F55B0 -sub_080F55B0: @ 0x080F55B0 - push {r4, r5, r6, lr} - ldr r2, _080F55E4 - ldr r0, _080F55E8 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080F55EC - adds r0, r0, r1 - ldr r1, [r2] - adds r5, r1, r0 - ldr r1, _080F55F0 - movs r0, #0 - strh r0, [r1] - ldr r0, _080F55F4 - ldrb r6, [r0] - adds r2, r0, #0 - cmp r6, #0x12 - bls _080F55D8 - b _080F583E -_080F55D8: - lsls r0, r6, #2 - ldr r1, _080F55F8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F55E4: .4byte gUnknown_3005AEC -_080F55E8: .4byte gUnknown_2037280 -_080F55EC: .4byte 0x000027CC -_080F55F0: .4byte gUnknown_2037290 -_080F55F4: .4byte gUnknown_2039CFC -_080F55F8: .4byte _080F55FC -_080F55FC: @ jump table - .4byte _080F5648 @ case 0 - .4byte _080F5728 @ case 1 - .4byte _080F56E2 @ case 2 - .4byte _080F5704 @ case 3 - .4byte _080F5704 @ case 4 - .4byte _080F5728 @ case 5 - .4byte _080F5728 @ case 6 - .4byte _080F5728 @ case 7 - .4byte _080F5728 @ case 8 - .4byte _080F5728 @ case 9 - .4byte _080F5728 @ case 10 - .4byte _080F5728 @ case 11 - .4byte _080F5728 @ case 12 - .4byte _080F5728 @ case 13 - .4byte _080F574C @ case 14 - .4byte _080F578C @ case 15 - .4byte _080F57B8 @ case 16 - .4byte _080F5808 @ case 17 - .4byte _080F5830 @ case 18 -_080F5648: - ldrb r0, [r5, #0xd] - subs r0, #1 - cmp r0, #0xc - bls _080F5652 - b _080F583E -_080F5652: - lsls r0, r0, #2 - ldr r1, _080F565C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F565C: .4byte _080F5660 -_080F5660: @ jump table - .4byte _080F5694 @ case 0 - .4byte _080F569A @ case 1 - .4byte _080F56A0 @ case 2 - .4byte _080F56A6 @ case 3 - .4byte _080F56AC @ case 4 - .4byte _080F56B2 @ case 5 - .4byte _080F56B8 @ case 6 - .4byte _080F56BE @ case 7 - .4byte _080F56C4 @ case 8 - .4byte _080F56CA @ case 9 - .4byte _080F56D0 @ case 10 - .4byte _080F56D6 @ case 11 - .4byte _080F56DC @ case 12 -_080F5694: - movs r0, #1 - strb r0, [r2] - b _080F583E -_080F569A: - movs r0, #2 - strb r0, [r2] - b _080F583E -_080F56A0: - movs r0, #3 - strb r0, [r2] - b _080F583E -_080F56A6: - movs r0, #4 - strb r0, [r2] - b _080F583E -_080F56AC: - movs r0, #5 - strb r0, [r2] - b _080F583E -_080F56B2: - movs r0, #6 - strb r0, [r2] - b _080F583E -_080F56B8: - movs r0, #7 - strb r0, [r2] - b _080F583E -_080F56BE: - movs r0, #8 - strb r0, [r2] - b _080F583E -_080F56C4: - movs r0, #9 - strb r0, [r2] - b _080F583E -_080F56CA: - movs r0, #0xa - strb r0, [r2] - b _080F583E -_080F56D0: - movs r0, #0xb - strb r0, [r2] - b _080F583E -_080F56D6: - movs r0, #0xc - strb r0, [r2] - b _080F583E -_080F56DC: - movs r0, #0xd - strb r0, [r2] - b _080F583E -_080F56E2: - ldr r0, _080F56FC - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - ldrh r1, [r5, #2] - movs r0, #1 - bl TV_PrintIntToStringVar - ldr r1, _080F5700 - movs r0, #0x10 - strb r0, [r1] - b _080F583E - .align 2, 0 -_080F56FC: .4byte gUnknown_2021C40 -_080F5700: .4byte gUnknown_2039CFC -_080F5704: - ldr r0, _080F5720 - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - ldrh r1, [r5, #2] - movs r0, #1 - bl TV_PrintIntToStringVar - ldr r1, _080F5724 - movs r0, #0xf - strb r0, [r1] - b _080F583E - .align 2, 0 -_080F5720: .4byte gUnknown_2021C40 -_080F5724: .4byte gUnknown_2039CFC -_080F5728: - ldr r0, _080F5744 - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - ldrh r1, [r5, #2] - movs r0, #1 - bl TV_PrintIntToStringVar - ldr r1, _080F5748 - movs r0, #0xe - strb r0, [r1] - b _080F583E - .align 2, 0 -_080F5744: .4byte gUnknown_2021C40 -_080F5748: .4byte gUnknown_2039CFC -_080F574C: - ldr r0, _080F577C - ldrh r2, [r5, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r4, _080F5780 - adds r1, r1, r4 - bl StringCopy - ldr r0, _080F5784 - ldrh r2, [r5, #6] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - adds r1, r1, r4 - bl StringCopy - ldr r0, _080F5788 - ldrh r2, [r5, #8] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - adds r1, r1, r4 - b _080F5816 - .align 2, 0 -_080F577C: .4byte gUnknown_2021C40 -_080F5780: .4byte gUnknown_82EA31C -_080F5784: .4byte gUnknown_2021C54 -_080F5788: .4byte gUnknown_2021C68 -_080F578C: - ldr r0, _080F57AC - ldrh r2, [r5, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r4, _080F57B0 - adds r1, r1, r4 - bl StringCopy - ldr r0, _080F57B4 - ldrh r2, [r5, #6] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - adds r1, r1, r4 - b _080F5816 - .align 2, 0 -_080F57AC: .4byte gUnknown_2021C40 -_080F57B0: .4byte gUnknown_82EA31C -_080F57B4: .4byte gUnknown_2021C54 -_080F57B8: - ldr r0, _080F57F4 - ldrh r2, [r5, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r4, _080F57F8 - adds r1, r1, r4 - bl StringCopy - ldr r0, _080F57FC - ldrh r2, [r5, #6] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - adds r1, r1, r4 - bl StringCopy - ldr r0, _080F5800 - ldrh r2, [r5, #8] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - adds r1, r1, r4 - bl StringCopy - ldr r1, _080F5804 - movs r0, #0x11 - strb r0, [r1] - b _080F583E - .align 2, 0 -_080F57F4: .4byte gUnknown_2021C40 -_080F57F8: .4byte gUnknown_82EA31C -_080F57FC: .4byte gUnknown_2021C54 -_080F5800: .4byte gUnknown_2021C68 -_080F5804: .4byte gUnknown_2039CFC -_080F5808: - ldr r0, _080F5824 - ldrh r2, [r5, #0xa] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - ldr r2, _080F5828 - adds r1, r1, r2 -_080F5816: - bl StringCopy - ldr r1, _080F582C - movs r0, #0x12 - strb r0, [r1] - b _080F583E - .align 2, 0 -_080F5824: .4byte gUnknown_2021C40 -_080F5828: .4byte gUnknown_82EA31C -_080F582C: .4byte gUnknown_2039CFC -_080F5830: - ldr r0, _080F5850 - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - bl TVShowDone -_080F583E: - ldr r0, _080F5854 - lsls r1, r6, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080F5850: .4byte gUnknown_2021C40 -_080F5854: .4byte gUnknown_8568FD0 - thumb_func_end sub_080F55B0 - - thumb_func_start DoTVShowWhatsNo1InHoennToday -DoTVShowWhatsNo1InHoennToday: @ 0x080F5858 - push {r4, r5, lr} - ldr r2, _080F5888 - ldr r0, _080F588C - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080F5890 - adds r0, r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r1, _080F5894 - movs r0, #0 - strh r0, [r1] - ldr r0, _080F5898 - ldrb r5, [r0] - cmp r5, #8 - bls _080F587E - b _080F598A -_080F587E: - lsls r0, r5, #2 - ldr r1, _080F589C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F5888: .4byte gUnknown_3005AEC -_080F588C: .4byte gUnknown_2037280 -_080F5890: .4byte 0x000027CC -_080F5894: .4byte gUnknown_2037290 -_080F5898: .4byte gUnknown_2039CFC -_080F589C: .4byte _080F58A0 -_080F58A0: @ jump table - .4byte _080F58C4 @ case 0 - .4byte _080F5958 @ case 1 - .4byte _080F5958 @ case 2 - .4byte _080F5958 @ case 3 - .4byte _080F5958 @ case 4 - .4byte _080F5958 @ case 5 - .4byte _080F5958 @ case 6 - .4byte _080F5958 @ case 7 - .4byte _080F597C @ case 8 -_080F58C4: - ldr r0, _080F58E0 - adds r1, r4, #0 - adds r1, #0x13 - bl StringCopy - ldrb r0, [r4, #4] - cmp r0, #6 - bhi _080F598A - lsls r0, r0, #2 - ldr r1, _080F58E4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F58E0: .4byte gUnknown_2021C40 -_080F58E4: .4byte _080F58E8 -_080F58E8: @ jump table - .4byte _080F5904 @ case 0 - .4byte _080F5910 @ case 1 - .4byte _080F591C @ case 2 - .4byte _080F5928 @ case 3 - .4byte _080F5934 @ case 4 - .4byte _080F5940 @ case 5 - .4byte _080F594C @ case 6 -_080F5904: - ldr r1, _080F590C - movs r0, #1 - strb r0, [r1] - b _080F598A - .align 2, 0 -_080F590C: .4byte gUnknown_2039CFC -_080F5910: - ldr r1, _080F5918 - movs r0, #2 - strb r0, [r1] - b _080F598A - .align 2, 0 -_080F5918: .4byte gUnknown_2039CFC -_080F591C: - ldr r1, _080F5924 - movs r0, #3 - strb r0, [r1] - b _080F598A - .align 2, 0 -_080F5924: .4byte gUnknown_2039CFC -_080F5928: - ldr r1, _080F5930 - movs r0, #4 - strb r0, [r1] - b _080F598A - .align 2, 0 -_080F5930: .4byte gUnknown_2039CFC -_080F5934: - ldr r1, _080F593C - movs r0, #5 - strb r0, [r1] - b _080F598A - .align 2, 0 -_080F593C: .4byte gUnknown_2039CFC -_080F5940: - ldr r1, _080F5948 - movs r0, #6 - strb r0, [r1] - b _080F598A - .align 2, 0 -_080F5948: .4byte gUnknown_2039CFC -_080F594C: - ldr r1, _080F5954 - movs r0, #7 - strb r0, [r1] - b _080F598A - .align 2, 0 -_080F5954: .4byte gUnknown_2039CFC -_080F5958: - ldr r0, _080F5974 - adds r1, r4, #0 - adds r1, #0x13 - bl StringCopy - ldrh r1, [r4, #2] - movs r0, #1 - bl TV_PrintIntToStringVar - ldr r1, _080F5978 - movs r0, #8 - strb r0, [r1] - b _080F598A - .align 2, 0 -_080F5974: .4byte gUnknown_2021C40 -_080F5978: .4byte gUnknown_2039CFC -_080F597C: - ldr r0, _080F599C - adds r1, r4, #0 - adds r1, #0x13 - bl StringCopy - bl TVShowDone -_080F598A: - ldr r0, _080F59A0 - lsls r1, r5, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080F599C: .4byte gUnknown_2021C40 -_080F59A0: .4byte gUnknown_856901C - thumb_func_end DoTVShowWhatsNo1InHoennToday - - thumb_func_start TVShowGetFlagCount -TVShowGetFlagCount: @ 0x080F59A4 - push {r4, lr} - movs r1, #0 - movs r2, #0 - ldr r3, [r0, #0xc] - movs r4, #1 -_080F59AE: - adds r0, r3, #0 - lsrs r0, r1 - ands r0, r4 - cmp r0, #0 - beq _080F59BE - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 -_080F59BE: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x1f - bls _080F59AE - adds r0, r2, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end TVShowGetFlagCount - - thumb_func_start SecretBaseSecrets_GetStateForFlagNumber -SecretBaseSecrets_GetStateForFlagNumber: @ 0x080F59D0 - push {r4, r5, r6, lr} - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - movs r2, #0 - movs r3, #0 - ldr r1, [r0, #0xc] - movs r5, #1 - ldr r6, _080F59F4 -_080F59E0: - adds r0, r1, #0 - lsrs r0, r2 - ands r0, r5 - cmp r0, #0 - beq _080F59FE - cmp r3, r4 - bne _080F59F8 - adds r0, r2, r6 - ldrb r0, [r0] - b _080F5A0A - .align 2, 0 -_080F59F4: .4byte gUnknown_856913C -_080F59F8: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 -_080F59FE: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x1f - bls _080F59E0 - movs r0, #0 -_080F5A0A: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end SecretBaseSecrets_GetStateForFlagNumber - - thumb_func_start sub_080F5A10 -sub_080F5A10: @ 0x080F5A10 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r2, _080F5A4C - ldr r0, _080F5A50 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080F5A54 - adds r0, r0, r1 - ldr r1, [r2] - adds r5, r1, r0 - ldr r1, _080F5A58 - movs r0, #0 - strh r0, [r1] - ldr r0, _080F5A5C - ldrb r2, [r0] - mov sb, r2 - adds r2, r0, #0 - mov r0, sb - cmp r0, #0x2b - bls _080F5A42 - b _080F5D36 -_080F5A42: - lsls r0, r0, #2 - ldr r1, _080F5A60 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F5A4C: .4byte gUnknown_3005AEC -_080F5A50: .4byte gUnknown_2037280 -_080F5A54: .4byte 0x000027CC -_080F5A58: .4byte gUnknown_2037290 -_080F5A5C: .4byte gUnknown_2039CFC -_080F5A60: .4byte _080F5A64 -_080F5A64: @ jump table - .4byte _080F5B14 @ case 0 - .4byte _080F5B68 @ case 1 - .4byte _080F5BE0 @ case 2 - .4byte _080F5C5C @ case 3 - .4byte _080F5CAC @ case 4 - .4byte _080F5CAC @ case 5 - .4byte _080F5CAC @ case 6 - .4byte _080F5CD4 @ case 7 - .4byte _080F5CF4 @ case 8 - .4byte _080F5CF8 @ case 9 - .4byte _080F5D32 @ case 10 - .4byte _080F5D32 @ case 11 - .4byte _080F5D32 @ case 12 - .4byte _080F5D32 @ case 13 - .4byte _080F5D32 @ case 14 - .4byte _080F5D32 @ case 15 - .4byte _080F5D32 @ case 16 - .4byte _080F5D32 @ case 17 - .4byte _080F5D32 @ case 18 - .4byte _080F5CFC @ case 19 - .4byte _080F5D1C @ case 20 - .4byte _080F5D32 @ case 21 - .4byte _080F5D32 @ case 22 - .4byte _080F5D32 @ case 23 - .4byte _080F5D32 @ case 24 - .4byte _080F5D32 @ case 25 - .4byte _080F5D32 @ case 26 - .4byte _080F5D32 @ case 27 - .4byte _080F5D32 @ case 28 - .4byte _080F5D32 @ case 29 - .4byte _080F5D32 @ case 30 - .4byte _080F5D32 @ case 31 - .4byte _080F5D32 @ case 32 - .4byte _080F5D32 @ case 33 - .4byte _080F5D32 @ case 34 - .4byte _080F5D32 @ case 35 - .4byte _080F5D32 @ case 36 - .4byte _080F5D32 @ case 37 - .4byte _080F5D32 @ case 38 - .4byte _080F5D32 @ case 39 - .4byte _080F5D32 @ case 40 - .4byte _080F5D32 @ case 41 - .4byte _080F5D32 @ case 42 - .4byte _080F5D32 @ case 43 -_080F5B14: - ldr r0, _080F5B3C - adds r1, r5, #4 - bl StringCopy - ldr r0, _080F5B40 - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - adds r0, r5, #0 - bl TVShowGetFlagCount - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - bne _080F5B48 - ldr r1, _080F5B44 - movs r0, #8 - strb r0, [r1] - b _080F5D36 - .align 2, 0 -_080F5B3C: .4byte gUnknown_2021C40 -_080F5B40: .4byte gUnknown_2021C54 -_080F5B44: .4byte gUnknown_2039CFC -_080F5B48: - movs r0, #1 - strb r0, [r5, #0x12] - bl Random - ldr r4, _080F5B64 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r6, #0 - bl __modsi3 - strb r0, [r4] - ldrb r1, [r4] - b _080F5C42 - .align 2, 0 -_080F5B64: .4byte gUnknown_2039CFD -_080F5B68: - ldr r0, _080F5B88 - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - adds r0, r5, #0 - bl TVShowGetFlagCount - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #1 - beq _080F5BF8 - cmp r6, #2 - beq _080F5B8C - movs r4, #0 - b _080F5BA6 - .align 2, 0 -_080F5B88: .4byte gUnknown_2021C54 -_080F5B8C: - strb r6, [r5, #0x12] - ldr r0, _080F5B9C - ldrb r0, [r0] - cmp r0, #0 - bne _080F5BA0 - adds r0, r5, #0 - movs r1, #1 - b _080F5C44 - .align 2, 0 -_080F5B9C: .4byte gUnknown_2039CFD -_080F5BA0: - adds r0, r5, #0 - movs r1, #0 - b _080F5C44 -_080F5BA6: - bl Random - ldr r7, _080F5BD8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r6, #0 - bl __modsi3 - strb r0, [r7, #1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r7] - cmp r0, r1 - bne _080F5BCE - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, _080F5BDC - cmp r4, r0 - bls _080F5BA6 -_080F5BCE: - movs r0, #2 - strb r0, [r5, #0x12] - ldrb r1, [r7, #1] - b _080F5C42 - .align 2, 0 -_080F5BD8: .4byte gUnknown_2039CFD -_080F5BDC: .4byte 0x0000FFFE -_080F5BE0: - ldr r0, _080F5C00 - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - adds r0, r5, #0 - bl TVShowGetFlagCount - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #2 - bne _080F5C08 -_080F5BF8: - ldr r1, _080F5C04 - movs r0, #9 - strb r0, [r1] - b _080F5D36 - .align 2, 0 -_080F5C00: .4byte gUnknown_2021C54 -_080F5C04: .4byte gUnknown_2039CFC -_080F5C08: - movs r4, #0 - ldr r7, _080F5C50 - ldr r2, _080F5C54 - mov r8, r2 -_080F5C10: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r6, #0 - bl __modsi3 - strb r0, [r7, #2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r7] - cmp r0, r1 - beq _080F5C30 - ldrb r2, [r7, #1] - cmp r0, r2 - bne _080F5C3A -_080F5C30: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, r8 - bls _080F5C10 -_080F5C3A: - movs r0, #3 - strb r0, [r5, #0x12] - ldr r0, _080F5C50 - ldrb r1, [r0, #2] -_080F5C42: - adds r0, r5, #0 -_080F5C44: - bl SecretBaseSecrets_GetStateForFlagNumber - ldr r1, _080F5C58 - strb r0, [r1] - b _080F5D36 - .align 2, 0 -_080F5C50: .4byte gUnknown_2039CFD -_080F5C54: .4byte 0x0000FFFE -_080F5C58: .4byte gUnknown_2039CFC -_080F5C5C: - ldr r0, _080F5C84 - adds r1, r5, #4 - bl StringCopy - ldr r0, _080F5C88 - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - ldrh r1, [r5, #2] - movs r0, #2 - bl TV_PrintIntToStringVar - ldrh r0, [r5, #2] - cmp r0, #0x1e - bhi _080F5C90 - ldr r1, _080F5C8C - movs r0, #4 - strb r0, [r1] - b _080F5D36 - .align 2, 0 -_080F5C84: .4byte gUnknown_2021C40 -_080F5C88: .4byte gUnknown_2021C54 -_080F5C8C: .4byte gUnknown_2039CFC -_080F5C90: - cmp r0, #0x64 - bhi _080F5CA0 - ldr r1, _080F5C9C - movs r0, #5 - strb r0, [r1] - b _080F5D36 - .align 2, 0 -_080F5C9C: .4byte gUnknown_2039CFC -_080F5CA0: - ldr r1, _080F5CA8 - movs r0, #6 - strb r0, [r1] - b _080F5D36 - .align 2, 0 -_080F5CA8: .4byte gUnknown_2039CFC -_080F5CAC: - ldr r0, _080F5CC8 - adds r1, r5, #4 - bl StringCopy - ldr r0, _080F5CCC - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - ldr r1, _080F5CD0 - movs r0, #7 - strb r0, [r1] - b _080F5D36 - .align 2, 0 -_080F5CC8: .4byte gUnknown_2021C40 -_080F5CCC: .4byte gUnknown_2021C54 -_080F5CD0: .4byte gUnknown_2039CFC -_080F5CD4: - ldr r0, _080F5CEC - adds r1, r5, #4 - bl StringCopy - ldr r0, _080F5CF0 - adds r1, r5, #0 - adds r1, #0x13 - bl StringCopy - bl TVShowDone - b _080F5D36 - .align 2, 0 -_080F5CEC: .4byte gUnknown_2021C40 -_080F5CF0: .4byte gUnknown_2021C54 -_080F5CF4: - movs r0, #3 - b _080F5D34 -_080F5CF8: - movs r0, #3 - b _080F5D34 -_080F5CFC: - ldr r4, _080F5D14 - ldrh r0, [r5, #0x10] - bl sub_080D6C8C - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCopy - ldr r1, _080F5D18 - ldrb r0, [r5, #0x12] - strb r0, [r1] - b _080F5D36 - .align 2, 0 -_080F5D14: .4byte gUnknown_2021C54 -_080F5D18: .4byte gUnknown_2039CFC -_080F5D1C: - adds r0, r5, #0 - adds r0, #0x22 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080F5D2E - movs r0, #0x16 - b _080F5D34 -_080F5D2E: - movs r0, #0x15 - b _080F5D34 -_080F5D32: - ldrb r0, [r5, #0x12] -_080F5D34: - strb r0, [r2] -_080F5D36: - ldr r0, _080F5D50 - mov r2, sb - lsls r1, r2, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F5D50: .4byte gUnknown_8569040 - thumb_func_end sub_080F5A10 - - thumb_func_start DoTVShowSafariFanClub -DoTVShowSafariFanClub: @ 0x080F5D54 - push {r4, r5, lr} - ldr r2, _080F5D88 - ldr r0, _080F5D8C - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080F5D90 - adds r0, r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r1, _080F5D94 - movs r0, #0 - strh r0, [r1] - ldr r0, _080F5D98 - ldrb r5, [r0] - adds r2, r0, #0 - cmp r5, #0xa - bls _080F5D7C - b _080F5EB8 -_080F5D7C: - lsls r0, r5, #2 - ldr r1, _080F5D9C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F5D88: .4byte gUnknown_3005AEC -_080F5D8C: .4byte gUnknown_2037280 -_080F5D90: .4byte 0x000027CC -_080F5D94: .4byte gUnknown_2037290 -_080F5D98: .4byte gUnknown_2039CFC -_080F5D9C: .4byte _080F5DA0 -_080F5DA0: @ jump table - .4byte _080F5DCC @ case 0 - .4byte _080F5DE8 @ case 1 - .4byte _080F5E1C @ case 2 - .4byte _080F5E30 @ case 3 - .4byte _080F5E9A @ case 4 - .4byte _080F5E36 @ case 5 - .4byte _080F5E54 @ case 6 - .4byte _080F5E80 @ case 7 - .4byte _080F5E94 @ case 8 - .4byte _080F5E9A @ case 9 - .4byte _080F5EB4 @ case 10 -_080F5DCC: - ldrb r1, [r4, #2] - cmp r1, #0 - bne _080F5DD8 - movs r0, #6 - strb r0, [r2] - b _080F5EB8 -_080F5DD8: - cmp r1, #3 - bhi _080F5DE2 - movs r0, #5 - strb r0, [r2] - b _080F5EB8 -_080F5DE2: - movs r0, #1 - strb r0, [r2] - b _080F5EB8 -_080F5DE8: - ldr r0, _080F5E08 - adds r1, r4, #0 - adds r1, #0x13 - bl StringCopy - ldrb r1, [r4, #2] - movs r0, #1 - bl TV_PrintIntToStringVar - ldrb r0, [r4, #3] - cmp r0, #0 - bne _080F5E10 - ldr r1, _080F5E0C - movs r0, #3 - strb r0, [r1] - b _080F5EB8 - .align 2, 0 -_080F5E08: .4byte gUnknown_2021C40 -_080F5E0C: .4byte gUnknown_2039CFC -_080F5E10: - ldr r1, _080F5E18 - movs r0, #2 - strb r0, [r1] - b _080F5EB8 - .align 2, 0 -_080F5E18: .4byte gUnknown_2039CFC -_080F5E1C: - ldrb r1, [r4, #3] - movs r0, #1 - bl TV_PrintIntToStringVar - ldr r1, _080F5E2C - movs r0, #4 - strb r0, [r1] - b _080F5EB8 - .align 2, 0 -_080F5E2C: .4byte gUnknown_2039CFC -_080F5E30: - movs r0, #4 - strb r0, [r2] - b _080F5EB8 -_080F5E36: - ldr r0, _080F5E50 - adds r1, r4, #0 - adds r1, #0x13 - bl StringCopy - ldrb r1, [r4, #2] - movs r0, #1 - bl TV_PrintIntToStringVar - ldrb r0, [r4, #3] - cmp r0, #0 - beq _080F5E64 - b _080F5E74 - .align 2, 0 -_080F5E50: .4byte gUnknown_2021C40 -_080F5E54: - ldr r0, _080F5E6C - adds r1, r4, #0 - adds r1, #0x13 - bl StringCopy - ldrb r0, [r4, #3] - cmp r0, #0 - bne _080F5E74 -_080F5E64: - ldr r1, _080F5E70 - movs r0, #8 - strb r0, [r1] - b _080F5EB8 - .align 2, 0 -_080F5E6C: .4byte gUnknown_2021C40 -_080F5E70: .4byte gUnknown_2039CFC -_080F5E74: - ldr r1, _080F5E7C - movs r0, #7 - strb r0, [r1] - b _080F5EB8 - .align 2, 0 -_080F5E7C: .4byte gUnknown_2039CFC -_080F5E80: - ldrb r1, [r4, #3] - movs r0, #1 - bl TV_PrintIntToStringVar - ldr r1, _080F5E90 - movs r0, #9 - strb r0, [r1] - b _080F5EB8 - .align 2, 0 -_080F5E90: .4byte gUnknown_2039CFC -_080F5E94: - movs r0, #9 - strb r0, [r2] - b _080F5EB8 -_080F5E9A: - ldr r0, _080F5EAC - adds r1, r4, #0 - adds r1, #0x13 - bl StringCopy - ldr r1, _080F5EB0 - movs r0, #0xa - strb r0, [r1] - b _080F5EB8 - .align 2, 0 -_080F5EAC: .4byte gUnknown_2021C40 -_080F5EB0: .4byte gUnknown_2039CFC -_080F5EB4: - bl TVShowDone -_080F5EB8: - ldr r0, _080F5ECC - lsls r1, r5, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080F5ECC: .4byte gUnknown_85690EC - thumb_func_end DoTVShowSafariFanClub - - thumb_func_start DoTVShowPokemonContestLiveUpdates2 -DoTVShowPokemonContestLiveUpdates2: @ 0x080F5ED0 - push {r4, r5, r6, lr} - ldr r2, _080F5F00 - ldr r0, _080F5F04 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080F5F08 - adds r0, r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r1, _080F5F0C - movs r0, #0 - strh r0, [r1] - ldr r6, _080F5F10 - ldrb r5, [r6] - cmp r5, #2 - bgt _080F5F14 - cmp r5, #1 - bge _080F5F40 - cmp r5, #0 - beq _080F5F1A - b _080F5F56 - .align 2, 0 -_080F5F00: .4byte gUnknown_3005AEC -_080F5F04: .4byte gUnknown_2037280 -_080F5F08: .4byte 0x000027CC -_080F5F0C: .4byte gUnknown_2037290 -_080F5F10: .4byte gUnknown_2039CFC -_080F5F14: - cmp r5, #3 - beq _080F5F48 - b _080F5F56 -_080F5F1A: - ldr r0, _080F5F2C - ldrb r1, [r4, #0xa] - bl sub_0818E4C4 - ldrb r1, [r4, #0x16] - cmp r1, #1 - bne _080F5F30 - strb r1, [r6] - b _080F5F56 - .align 2, 0 -_080F5F2C: .4byte gUnknown_2021C40 -_080F5F30: - cmp r1, #0 - bne _080F5F3A - movs r0, #2 - strb r0, [r6] - b _080F5F56 -_080F5F3A: - movs r0, #3 - strb r0, [r6] - b _080F5F56 -_080F5F40: - ldr r0, _080F5F68 - adds r1, r4, #2 - bl StringCopy7 -_080F5F48: - ldr r0, _080F5F6C - adds r1, r4, #0 - adds r1, #0xb - bl StringCopy10 - bl TVShowDone -_080F5F56: - ldr r0, _080F5F70 - lsls r1, r5, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080F5F68: .4byte gUnknown_2021C68 -_080F5F6C: .4byte gUnknown_2021C54 -_080F5F70: .4byte gUnknown_8568E30 - thumb_func_end DoTVShowPokemonContestLiveUpdates2 - - thumb_func_start TVShowDone -TVShowDone: @ 0x080F5F74 - ldr r1, _080F5F9C - movs r0, #1 - strh r0, [r1] - ldr r1, _080F5FA0 - movs r0, #0 - strb r0, [r1] - ldr r0, _080F5FA4 - ldr r2, [r0] - ldr r0, _080F5FA8 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, r2, r0 - ldr r0, _080F5FAC - adds r2, r2, r0 - movs r0, #0 - strb r0, [r2] - bx lr - .align 2, 0 -_080F5F9C: .4byte gUnknown_2037290 -_080F5FA0: .4byte gUnknown_2039CFC -_080F5FA4: .4byte gUnknown_3005AEC -_080F5FA8: .4byte gUnknown_2037280 -_080F5FAC: .4byte 0x000027CD - thumb_func_end TVShowDone - - thumb_func_start sub_080F5FB0 -sub_080F5FB0: @ 0x080F5FB0 - ldr r1, _080F5FB8 - movs r0, #0 - strb r0, [r1] - bx lr - .align 2, 0 -_080F5FB8: .4byte gUnknown_2039CFC - thumb_func_end sub_080F5FB0 - - thumb_func_start sub_080F5FBC -sub_080F5FBC: @ 0x080F5FBC - push {r4, lr} - movs r0, #0 - movs r1, #0x40 - bl SetGpuReg - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _080F60D0 - movs r0, #0 - movs r2, #4 - bl InitBgsFromTemplates - movs r4, #0 -_080F5FD8: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080F60D4 - ldr r1, [r1] - lsls r2, r4, #2 - adds r1, #0xc - adds r1, r1, r2 - ldr r1, [r1] - bl SetBgTilemapBuffer - adds r4, #1 - cmp r4, #3 - ble _080F5FD8 - ldr r0, _080F60D8 - bl InitWindows - bl sub_08004480 - movs r0, #0x4c - movs r1, #0 - bl SetGpuReg - ldr r1, _080F60DC - movs r0, #0x48 - bl SetGpuReg - ldr r1, _080F60E0 - movs r0, #0x4a - bl SetGpuReg - movs r0, #0x40 - movs r1, #0 - bl SetGpuReg - movs r0, #0x44 - movs r1, #0 - bl SetGpuReg - movs r0, #0x42 - movs r1, #0 - bl SetGpuReg - movs r0, #0x46 - movs r1, #0 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - movs r0, #0x10 - movs r1, #0 - bl SetGpuReg - movs r0, #0x12 - movs r1, #0 - bl SetGpuReg - movs r0, #0x14 - movs r1, #0 - bl SetGpuReg - movs r0, #0x16 - movs r1, #0 - bl SetGpuReg - movs r0, #0x18 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1a - movs r1, #0 - bl SetGpuReg - movs r0, #0x1c - movs r1, #0 - bl SetGpuReg - movs r0, #0x1e - movs r1, #0 - bl SetGpuReg - movs r1, #0xff - lsls r1, r1, #8 - movs r0, #0 - bl SetGpuRegBits - ldr r0, _080F60E4 - movs r1, #0 - strh r1, [r0] - ldr r0, _080F60E8 - strh r1, [r0] - ldr r0, _080F60EC - strh r1, [r0] - ldr r0, _080F60F0 - strh r1, [r0] - ldr r0, _080F60F4 - strh r1, [r0] - ldr r0, _080F60F8 - strh r1, [r0] - ldr r0, _080F60FC - strh r1, [r0] - ldr r0, _080F6100 - strh r1, [r0] - ldr r0, _080F6104 - strh r1, [r0] - ldr r0, _080F6108 - strh r1, [r0] - ldr r0, _080F610C - strh r1, [r0] - ldr r0, _080F6110 - strh r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F60D0: .4byte gUnknown_856944C -_080F60D4: .4byte gUnknown_2039D00 -_080F60D8: .4byte gUnknown_856945C -_080F60DC: .4byte 0x00003F3F -_080F60E0: .4byte 0x00003F2E -_080F60E4: .4byte gUnknown_2022AC8 -_080F60E8: .4byte gUnknown_2022ACA -_080F60EC: .4byte gUnknown_2022ACC -_080F60F0: .4byte gUnknown_2022ACE -_080F60F4: .4byte gUnknown_2022AD0 -_080F60F8: .4byte gUnknown_2022AD2 -_080F60FC: .4byte gUnknown_2022AD4 -_080F6100: .4byte gUnknown_2022AD6 -_080F6104: .4byte gUnknown_2022AD8 -_080F6108: .4byte gUnknown_2022ADA -_080F610C: .4byte gUnknown_2022ADC -_080F6110: .4byte gUnknown_2022ADE - thumb_func_end sub_080F5FBC - - thumb_func_start sub_080F6114 -sub_080F6114: @ 0x080F6114 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - ldr r0, _080F61CC - movs r1, #0xc0 - lsls r1, r1, #0x13 - bl sub_0803437C - ldr r1, _080F61D0 - movs r0, #3 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - ldr r1, _080F61D4 - movs r0, #2 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - ldr r1, _080F61D8 - movs r0, #0 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - bl RecordedBattle_SaveParties - ldr r0, _080F61DC - movs r2, #0x80 - lsls r2, r2, #2 - movs r1, #0 - bl LoadCompressedPalette - ldr r0, _080F61E0 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - movs r7, #0 - movs r0, #1 - mov r8, r0 -_080F616E: - lsls r5, r7, #0x18 - lsrs r5, r5, #0x18 - adds r0, r5, #0 - movs r1, #1 - bl sub_080F7BA0 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - movs r1, #1 - bl sub_080F7BF4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #8] - movs r6, #0 - lsls r1, r7, #1 - adds r2, r7, #1 - str r2, [sp, #0xc] - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - mov sl, r4 - adds r1, r1, r7 - adds r0, r1, #6 - lsls r0, r0, #0x18 - mov sb, r0 - adds r1, #5 - lsls r7, r1, #0x18 -_080F61A8: - ldr r1, _080F61E4 - cmp r6, sl - bge _080F61B0 - adds r1, #2 -_080F61B0: - ldr r4, [sp, #8] - lsls r0, r4, #0x18 - asrs r0, r0, #0x18 - adds r2, r0, #0 - cmp r0, #0 - bge _080F61BE - rsbs r2, r0, #0 -_080F61BE: - cmp r6, r2 - bge _080F61EC - ldr r5, _080F61E8 - cmp r0, #0 - bge _080F61EE - adds r5, #2 - b _080F61EE - .align 2, 0 -_080F61CC: .4byte gUnknown_8C196CC -_080F61D0: .4byte gUnknown_8C1A174 -_080F61D4: .4byte gUnknown_8C1A048 -_080F61D8: .4byte gUnknown_8C19F34 -_080F61DC: .4byte gUnknown_8C1A2FC -_080F61E0: .4byte gUnknown_856915C -_080F61E4: .4byte 0x000060B2 -_080F61E8: .4byte 0x000060A4 -_080F61EC: - ldr r5, _080F6268 -_080F61EE: - adds r4, r6, #0 - adds r4, #0x13 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r0, r8 - str r0, [sp] - str r0, [sp, #4] - movs r0, #1 - adds r2, r4, #0 - lsrs r3, r7, #0x18 - bl FillBgTilemapBufferRect_Palette0 - mov r2, r8 - str r2, [sp] - str r2, [sp, #4] - movs r0, #1 - adds r1, r5, #0 - adds r2, r4, #0 - mov r4, sb - lsrs r3, r4, #0x18 - bl FillBgTilemapBufferRect_Palette0 - adds r6, #1 - cmp r6, #9 - ble _080F61A8 - ldr r7, [sp, #0xc] - cmp r7, #3 - ble _080F616E - movs r0, #0 - bl CopyBgTilemapBufferToVram - movs r0, #1 - bl CopyBgTilemapBufferToVram - movs r0, #2 - bl CopyBgTilemapBufferToVram - movs r0, #3 - bl CopyBgTilemapBufferToVram - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F6268: .4byte 0x000060A2 - thumb_func_end sub_080F6114 - - thumb_func_start sub_080F626C -sub_080F626C: @ 0x080F626C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _080F6288 - ldrb r0, [r0] - cmp r6, r0 - bne _080F6294 - ldr r0, _080F628C - ldr r1, _080F6290 - bl StringCopy - adds r5, r0, #0 - b _080F6296 - .align 2, 0 -_080F6288: .4byte gUnknown_2039BC5 -_080F628C: .4byte gUnknown_2022AE0 -_080F6290: .4byte gUnknown_85CC4E0 -_080F6294: - ldr r5, _080F62E0 -_080F6296: - lsls r4, r6, #6 - ldr r1, _080F62E4 - adds r1, r4, r1 - adds r0, r5, #0 - bl StringCopy - ldr r5, _080F62E0 - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_080F8760 - ldr r0, _080F62E8 - ldrb r0, [r0] - cmp r6, r0 - bne _080F62BE - ldr r1, _080F62EC - adds r0, r5, #0 - bl StringCopy - adds r5, r0, #0 -_080F62BE: - ldr r1, _080F62F0 - adds r0, r5, #0 - bl StringCopy - ldr r1, _080F62F4 - adds r1, r4, r1 - adds r0, r5, #0 - bl StringAppend - adds r0, r6, #4 - ldr r1, _080F62E0 - bl sub_080F8760 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080F62E0: .4byte gUnknown_2022AE0 -_080F62E4: .4byte gUnknown_2039AA2 -_080F62E8: .4byte gUnknown_2039BC5 -_080F62EC: .4byte gUnknown_85CC4E0 -_080F62F0: .4byte gUnknown_85C93FF -_080F62F4: .4byte gUnknown_2039AAD - thumb_func_end sub_080F626C - - thumb_func_start sub_080F62F8 -sub_080F62F8: @ 0x080F62F8 - push {r4, lr} - movs r4, #0 -_080F62FC: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl sub_080F626C - adds r4, #1 - cmp r4, #3 - ble _080F62FC - movs r0, #1 - bl CopyBgTilemapBufferToVram - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080F62F8 - - thumb_func_start sub_080F6318 -sub_080F6318: @ 0x080F6318 - push {r4, r5, r6, lr} - sub sp, #4 - ldr r5, _080F63D8 - ldrb r0, [r5, #8] - movs r6, #0x80 - orrs r0, r6 - strb r0, [r5, #8] - movs r0, #0 - bl SetVBlankCallback - bl sub_080F8684 - bl sub_080F5FBC - bl ScanlineEffect_Clear - bl ResetPaletteFade - bl ResetSpriteData - bl ResetTasks - bl FreeAllSpritePalettes - bl sub_080F6114 - bl HealStatusConditions - movs r0, #0 - movs r1, #1 - bl LoadAllContestMonIcons - bl sub_080F62F8 - ldr r4, _080F63DC - ldr r0, [r4] - ldr r0, [r0] - movs r1, #0 - movs r2, #0x18 - bl memset - ldr r0, [r4] - ldr r0, [r0, #4] - movs r1, #0 - movs r2, #0x50 - bl memset - bl sub_080F760C - bl sub_080F730C - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldrb r1, [r5, #8] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #8] - ldr r0, _080F63E0 - movs r1, #5 - bl CreateTask - ldr r1, [r4] - ldr r1, [r1] - strb r0, [r1, #2] - ldr r0, _080F63E4 - bl SetMainCallback2 - ldr r1, _080F63E8 - movs r0, #0xf0 - strh r0, [r1] - ldr r1, _080F63EC - ldr r2, _080F63F0 - adds r0, r2, #0 - strh r0, [r1] - ldr r0, _080F63F4 - movs r1, #0x14 - bl CreateTask - bl sub_080F8110 - ldr r0, _080F63F8 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080F63FC - ldrb r0, [r5, #8] - orrs r0, r6 - strb r0, [r5, #8] - b _080F6404 - .align 2, 0 -_080F63D8: .4byte gUnknown_2037C74 -_080F63DC: .4byte gUnknown_2039D00 -_080F63E0: .4byte sub_080F64FC -_080F63E4: .4byte sub_080F6418 -_080F63E8: .4byte gUnknown_2022ADC -_080F63EC: .4byte gUnknown_2022ADE -_080F63F0: .4byte 0x000080A0 -_080F63F4: .4byte sub_080F70D8 -_080F63F8: .4byte gUnknown_2039BCA -_080F63FC: - movs r0, #0xdf - lsls r0, r0, #1 - bl PlayBGM -_080F6404: - ldr r0, _080F6414 - bl SetVBlankCallback - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080F6414: .4byte sub_080F643C - thumb_func_end sub_080F6318 - - thumb_func_start sub_080F6418 -sub_080F6418: @ 0x080F6418 - push {lr} - bl AnimateSprites - bl BuildOamBuffer - bl RunTasks - bl UpdatePaletteFade - movs r0, #1 - bl CopyBgTilemapBufferToVram - movs r0, #2 - bl CopyBgTilemapBufferToVram - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080F6418 - - thumb_func_start sub_080F643C -sub_080F643C: @ 0x080F643C - push {lr} - ldr r0, _080F64CC - ldrh r1, [r0] - movs r0, #0x10 - bl SetGpuReg - ldr r0, _080F64D0 - ldrh r1, [r0] - movs r0, #0x12 - bl SetGpuReg - ldr r0, _080F64D4 - ldrh r1, [r0] - movs r0, #0x14 - bl SetGpuReg - ldr r0, _080F64D8 - ldrh r1, [r0] - movs r0, #0x16 - bl SetGpuReg - ldr r0, _080F64DC - ldrh r1, [r0] - movs r0, #0x18 - bl SetGpuReg - ldr r0, _080F64E0 - ldrh r1, [r0] - movs r0, #0x1a - bl SetGpuReg - ldr r0, _080F64E4 - ldrh r1, [r0] - movs r0, #0x1c - bl SetGpuReg - ldr r0, _080F64E8 - ldrh r1, [r0] - movs r0, #0x1e - bl SetGpuReg - ldr r0, _080F64EC - ldrh r1, [r0] - movs r0, #0x40 - bl SetGpuReg - ldr r0, _080F64F0 - ldrh r1, [r0] - movs r0, #0x44 - bl SetGpuReg - ldr r0, _080F64F4 - ldrh r1, [r0] - movs r0, #0x42 - bl SetGpuReg - ldr r0, _080F64F8 - ldrh r1, [r0] - movs r0, #0x46 - bl SetGpuReg - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl ScanlineEffect_InitHBlankDmaTransfer - pop {r0} - bx r0 - .align 2, 0 -_080F64CC: .4byte gUnknown_2022AC8 -_080F64D0: .4byte gUnknown_2022ACA -_080F64D4: .4byte gUnknown_2022ACC -_080F64D8: .4byte gUnknown_2022ACE -_080F64DC: .4byte gUnknown_2022AD0 -_080F64E0: .4byte gUnknown_2022AD2 -_080F64E4: .4byte gUnknown_2022AD4 -_080F64E8: .4byte gUnknown_2022AD6 -_080F64EC: .4byte gUnknown_2022AD8 -_080F64F0: .4byte gUnknown_2022ADA -_080F64F4: .4byte gUnknown_2022ADC -_080F64F8: .4byte gUnknown_2022ADE - thumb_func_end sub_080F643C - - thumb_func_start sub_080F64FC -sub_080F64FC: @ 0x080F64FC - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r3, _080F6530 - ldrb r1, [r3] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080F6510 - b _080F6646 -_080F6510: - ldr r2, _080F6534 - lsls r1, r6, #2 - adds r0, r1, r6 - lsls r0, r0, #3 - adds r4, r0, r2 - movs r2, #8 - ldrsh r0, [r4, r2] - adds r7, r1, #0 - cmp r0, #1 - beq _080F65F8 - cmp r0, #1 - bgt _080F6538 - cmp r0, #0 - beq _080F6542 - b _080F6646 - .align 2, 0 -_080F6530: .4byte gUnknown_2039BCA -_080F6534: .4byte gUnknown_3005B60 -_080F6538: - cmp r0, #2 - beq _080F660C - cmp r0, #3 - beq _080F6622 - b _080F6646 -_080F6542: - bl SaveLinkContestResults - ldr r1, _080F65D4 - ldr r0, _080F65D8 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080F6570 - movs r0, #0x23 - bl IncrementGameStat - ldr r1, _080F65DC - movs r0, #8 - strh r0, [r1] - bl sub_080F00BC - ldr r0, _080F65E0 - ldrh r0, [r0] - cmp r0, #1 - beq _080F6570 - bl InterviewAfter -_080F6570: - movs r0, #2 - bl sub_0813BB14 - ldr r0, _080F65E4 - ldrb r0, [r0] - bl sub_080DE4B0 - movs r0, #0xfe - bl sub_080DE4B0 - ldr r1, _080F65E8 - movs r0, #1 - strb r0, [r1] - movs r0, #0xfe - movs r1, #0 - bl sub_080DE6B0 - ldr r1, _080F65EC - strb r0, [r1] - ldr r5, _080F65F0 - adds r0, r5, #0 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - movs r1, #0 - bl VarSet - bl SetContinueGameWarpStatusToDynamicWarp - movs r0, #1 - bl TrySavingData - bl sub_08076780 - adds r0, r5, #0 - adds r1, r4, #0 - bl VarSet - ldr r0, _080F65F4 - adds r1, r7, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _080F6646 - .align 2, 0 -_080F65D4: .4byte gUnknown_2039BC0 -_080F65D8: .4byte gUnknown_2039BC5 -_080F65DC: .4byte gUnknown_2037282 -_080F65E0: .4byte gUnknown_2037290 -_080F65E4: .4byte gUnknown_2039BCE -_080F65E8: .4byte gUnknown_2039BFC -_080F65EC: .4byte gUnknown_2039BFD -_080F65F0: .4byte 0x00004086 -_080F65F4: .4byte gUnknown_3005B60 -_080F65F8: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - ldrb r1, [r3] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _080F6646 - movs r0, #0x64 - b _080F6644 -_080F660C: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080F66D2 - bl sub_0800A8D4 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _080F66D2 -_080F6622: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080F66D2 - movs r0, #0xdf - lsls r0, r0, #1 - bl PlayBGM - ldr r2, _080F667C - ldrb r1, [r2, #8] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #8] - ldrh r0, [r4, #8] - adds r0, #1 -_080F6644: - strh r0, [r4, #8] -_080F6646: - ldr r0, _080F667C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _080F66D2 - ldr r1, _080F6680 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r4, r0, r1 - strh r2, [r4, #8] - ldr r0, _080F6684 - ldrb r1, [r0] - movs r5, #1 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _080F6690 - ldr r0, _080F6688 - bl sub_080F78E8 - ldr r0, _080F668C - b _080F66D0 - .align 2, 0 -_080F667C: .4byte gUnknown_2037C74 -_080F6680: .4byte gUnknown_3005B60 -_080F6684: .4byte gUnknown_2039BCA -_080F6688: .4byte gUnknown_85CC4D5 -_080F668C: .4byte sub_080F66F0 -_080F6690: - movs r0, #0x24 - bl IncrementGameStat - ldr r1, _080F66D8 - ldr r0, _080F66DC - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080F66AA - movs r0, #0x25 - bl IncrementGameStat -_080F66AA: - ldr r0, _080F66E0 - ldrb r0, [r0] - bl sub_080DE4B0 - movs r0, #0xfe - bl sub_080DE4B0 - ldr r0, _080F66E4 - strb r5, [r0] - movs r0, #0xfe - movs r1, #0 - bl sub_080DE6B0 - ldr r1, _080F66E8 - strb r0, [r1] - movs r0, #2 - bl sub_0813BB14 - ldr r0, _080F66EC -_080F66D0: - str r0, [r4] -_080F66D2: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F66D8: .4byte gUnknown_2039BC0 -_080F66DC: .4byte gUnknown_2039BC5 -_080F66E0: .4byte gUnknown_2039BCE -_080F66E4: .4byte gUnknown_2039BFC -_080F66E8: .4byte gUnknown_2039BFD -_080F66EC: .4byte sub_080F678C - thumb_func_end sub_080F64FC - - thumb_func_start sub_080F66F0 -sub_080F66F0: @ 0x080F66F0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080F671C - ldrb r0, [r0] - cmp r0, #0 - beq _080F6714 - ldr r0, _080F6720 - movs r1, #0 - bl CreateTask - ldr r1, _080F6724 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080F6728 - str r1, [r0] -_080F6714: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F671C: .4byte gUnknown_30031C4 -_080F6720: .4byte sub_080F672C -_080F6724: .4byte gUnknown_3005B60 -_080F6728: .4byte sub_080A8A40 - thumb_func_end sub_080F66F0 - - thumb_func_start sub_080F672C -sub_080F672C: @ 0x080F672C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080F6740 - ldr r2, _080F6744 - bl SetTaskFuncWithFollowupFunc - pop {r0} - bx r0 - .align 2, 0 -_080F6740: .4byte sub_080FD1EC -_080F6744: .4byte sub_080F6748 - thumb_func_end sub_080F672C - - thumb_func_start sub_080F6748 -sub_080F6748: @ 0x080F6748 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080F6778 - adds r0, r4, #0 - bl DestroyTask - ldr r2, _080F6780 - ldr r0, _080F6784 - ldr r0, [r0] - ldr r0, [r0] - ldrb r1, [r0, #2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldr r1, _080F6788 - str r1, [r0] - bl sub_080F79B8 -_080F6778: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F6780: .4byte gUnknown_3005B60 -_080F6784: .4byte gUnknown_2039D00 -_080F6788: .4byte sub_080F678C - thumb_func_end sub_080F6748 - - thumb_func_start sub_080F678C -sub_080F678C: @ 0x080F678C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080F67D4 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r5, r1, r2 - ldrh r1, [r5, #8] - movs r2, #8 - ldrsh r0, [r5, r2] - cmp r0, #0 - bne _080F67E4 - ldr r0, _080F67D8 - movs r1, #0x14 - bl CreateTask - ldr r4, _080F67DC - ldr r0, _080F67E0 - ldr r0, [r0] - ldr r0, [r0] - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080F739C - adds r0, r4, #0 - bl SpeciesToMailSpecies - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r3, #0x88 - lsls r3, r3, #3 - movs r1, #0x90 - movs r2, #0x78 - b _080F683E - .align 2, 0 -_080F67D4: .4byte gUnknown_3005B60 -_080F67D8: .4byte sub_080F7114 -_080F67DC: .4byte gUnknown_85CC4A3 -_080F67E0: .4byte gUnknown_2039D00 -_080F67E4: - cmp r0, #1 - bne _080F67FC - ldr r0, _080F67F8 - ldr r0, [r0] - ldr r0, [r0] - ldrb r0, [r0, #4] - cmp r0, #0 - bne _080F6870 - b _080F6810 - .align 2, 0 -_080F67F8: .4byte gUnknown_2039D00 -_080F67FC: - cmp r0, #2 - bne _080F6818 - ldrh r0, [r5, #0xa] - adds r0, #1 - strh r0, [r5, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x15 - bne _080F6870 - movs r0, #0 -_080F6810: - strh r0, [r5, #0xa] - adds r0, r1, #1 - strh r0, [r5, #8] - b _080F6870 -_080F6818: - cmp r0, #3 - bne _080F6858 - ldr r4, _080F684C - ldr r0, _080F6850 - ldr r0, [r0] - ldr r0, [r0] - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080F739C - adds r0, r4, #0 - bl SpeciesToMailSpecies - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldr r2, _080F6854 - movs r3, #0x88 - lsls r3, r3, #3 - movs r1, #0x90 -_080F683E: - bl sub_080F7708 - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - b _080F6870 - .align 2, 0 -_080F684C: .4byte gUnknown_85CC4AE -_080F6850: .4byte gUnknown_2039D00 -_080F6854: .4byte 0x0000FFFF -_080F6858: - cmp r0, #4 - bne _080F6870 - ldr r0, _080F6878 - ldr r0, [r0] - ldr r0, [r0] - ldrb r0, [r0, #4] - cmp r0, #2 - bne _080F6870 - movs r0, #0 - strh r0, [r5, #8] - ldr r0, _080F687C - str r0, [r5] -_080F6870: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080F6878: .4byte gUnknown_2039D00 -_080F687C: .4byte sub_080F6880 - thumb_func_end sub_080F678C - - thumb_func_start sub_080F6880 -sub_080F6880: @ 0x080F6880 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080F68A4 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _080F68E8 - cmp r0, #1 - bgt _080F68A8 - cmp r0, #0 - beq _080F68AE - b _080F690E - .align 2, 0 -_080F68A4: .4byte gUnknown_3005B60 -_080F68A8: - cmp r0, #2 - beq _080F68FC - b _080F690E -_080F68AE: - ldr r5, _080F68DC - ldr r0, [r5] - ldr r0, [r0] - ldrb r0, [r0, #0xa] - cmp r0, #0 - bne _080F690E - ldrh r1, [r4, #0xc] - adds r0, r1, #1 - strh r0, [r4, #0xc] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0 - bl sub_080F8310 - ldr r0, [r5] - ldr r0, [r0] - ldrb r0, [r0, #0x14] - cmp r0, #0 - bne _080F68E0 - movs r0, #2 - strh r0, [r4, #8] - b _080F690E - .align 2, 0 -_080F68DC: .4byte gUnknown_2039D00 -_080F68E0: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _080F690E -_080F68E8: - ldr r0, _080F68F8 - ldr r0, [r0] - ldr r0, [r0] - ldrb r0, [r0, #0x14] - cmp r0, #0 - bne _080F690E - strh r0, [r4, #8] - b _080F690E - .align 2, 0 -_080F68F8: .4byte gUnknown_2039D00 -_080F68FC: - movs r0, #0x88 - lsls r0, r0, #3 - bl sub_080F7760 - movs r0, #0 - strh r0, [r4, #8] - strh r0, [r4, #0xc] - ldr r0, _080F6914 - str r0, [r4] -_080F690E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080F6914: .4byte sub_080F6918 - thumb_func_end sub_080F6880 - - thumb_func_start sub_080F6918 -sub_080F6918: @ 0x080F6918 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r4, r2, #0 - ldr r0, _080F696C - ldr r5, [r0] - ldr r0, [r5] - ldrb r3, [r0, #4] - cmp r3, #0 - bne _080F697C - ldr r1, _080F6970 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r1, r0, r1 - ldrh r0, [r1, #0xa] - adds r0, #1 - strh r0, [r1, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x15 - bne _080F698E - strh r3, [r1, #0xa] - ldr r4, _080F6974 - ldr r0, [r5] - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080F739C - adds r0, r4, #0 - bl SpeciesToMailSpecies - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldr r2, _080F6978 - movs r3, #0x88 - lsls r3, r3, #3 - movs r1, #0x90 - bl sub_080F7708 - b _080F698E - .align 2, 0 -_080F696C: .4byte gUnknown_2039D00 -_080F6970: .4byte gUnknown_3005B60 -_080F6974: .4byte gUnknown_85CC4BA -_080F6978: .4byte 0x0000FFFF -_080F697C: - cmp r3, #2 - bne _080F698E - ldr r0, _080F6994 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080F6998 - str r0, [r1] -_080F698E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080F6994: .4byte gUnknown_3005B60 -_080F6998: .4byte sub_080F699C - thumb_func_end sub_080F6918 - - thumb_func_start sub_080F699C -sub_080F699C: @ 0x080F699C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080F69C0 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _080F6A04 - cmp r0, #1 - bgt _080F69C4 - cmp r0, #0 - beq _080F69CA - b _080F6A28 - .align 2, 0 -_080F69C0: .4byte gUnknown_3005B60 -_080F69C4: - cmp r0, #2 - beq _080F6A18 - b _080F6A28 -_080F69CA: - ldr r5, _080F69F8 - ldr r0, [r5] - ldr r0, [r0] - ldrb r0, [r0, #0xa] - cmp r0, #0 - bne _080F6A28 - ldrh r1, [r4, #0xc] - adds r0, r1, #1 - strh r0, [r4, #0xc] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #1 - bl sub_080F8310 - ldr r0, [r5] - ldr r0, [r0] - ldrb r0, [r0, #0x14] - cmp r0, #0 - bne _080F69FC - movs r0, #2 - strh r0, [r4, #8] - b _080F6A28 - .align 2, 0 -_080F69F8: .4byte gUnknown_2039D00 -_080F69FC: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _080F6A28 -_080F6A04: - ldr r0, _080F6A14 - ldr r0, [r0] - ldr r0, [r0] - ldrb r0, [r0, #0x14] - cmp r0, #0 - bne _080F6A28 - strh r0, [r4, #8] - b _080F6A28 - .align 2, 0 -_080F6A14: .4byte gUnknown_2039D00 -_080F6A18: - movs r0, #0x88 - lsls r0, r0, #3 - bl sub_080F7760 - movs r0, #0 - strh r0, [r4, #8] - ldr r0, _080F6A30 - str r0, [r4] -_080F6A28: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080F6A30: .4byte sub_080F6A34 - thumb_func_end sub_080F699C - - thumb_func_start sub_080F6A34 -sub_080F6A34: @ 0x080F6A34 - push {r4, r5, r6, r7, lr} - sub sp, #0x64 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _080F6A5C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #8 - ldrsh r0, [r0, r2] - adds r2, r1, #0 - cmp r0, #5 - bls _080F6A52 - b _080F6C1C -_080F6A52: - lsls r0, r0, #2 - ldr r1, _080F6A60 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F6A5C: .4byte gUnknown_3005B60 -_080F6A60: .4byte _080F6A64 -_080F6A64: @ jump table - .4byte _080F6A7C @ case 0 - .4byte _080F6AA0 @ case 1 - .4byte _080F6ABE @ case 2 - .4byte _080F6AF8 @ case 3 - .4byte _080F6B60 @ case 4 - .4byte _080F6C0C @ case 5 -_080F6A7C: - ldr r0, _080F6A9C - ldr r0, [r0] - ldr r0, [r0] - ldrb r0, [r0, #4] - cmp r0, #0 - beq _080F6A8A - b _080F6C1C -_080F6A8A: - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrh r1, [r0, #8] - adds r1, #1 - strh r1, [r0, #8] - b _080F6C1C - .align 2, 0 -_080F6A9C: .4byte gUnknown_2039D00 -_080F6AA0: - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r1, r0, r2 - ldrh r0, [r1, #0xa] - adds r0, #1 - strh r0, [r1, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1f - beq _080F6AB8 - b _080F6C1C -_080F6AB8: - movs r0, #0 - strh r0, [r1, #0xa] - b _080F6BE4 -_080F6ABE: - movs r4, #0 - lsls r6, r5, #2 - ldr r7, _080F6AEC -_080F6AC4: - ldr r0, _080F6AF0 - movs r1, #0xa - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r7 - ldr r0, _080F6AF4 - adds r0, r4, r0 - ldrb r0, [r0] - strh r0, [r1, #8] - strh r4, [r1, #0xa] - adds r4, #1 - cmp r4, #3 - ble _080F6AC4 - b _080F6BDC - .align 2, 0 -_080F6AEC: .4byte gUnknown_3005B60 -_080F6AF0: .4byte sub_080F7C6C -_080F6AF4: .4byte gUnknown_2039BC0 -_080F6AF8: - ldr r0, _080F6B54 - ldr r0, [r0] - ldr r0, [r0] - ldrb r0, [r0, #5] - cmp r0, #4 - beq _080F6B06 - b _080F6C1C -_080F6B06: - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r2 - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1f - beq _080F6B1E - b _080F6C1C -_080F6B1E: - movs r0, #0 - strh r0, [r4, #0xa] - ldr r0, _080F6B58 - movs r1, #0xa - bl CreateTask - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r4, #0 - ldr r1, _080F6B5C - ldrb r0, [r1] - cmp r0, #0 - beq _080F6B48 -_080F6B3A: - adds r4, #1 - cmp r4, #3 - bgt _080F6B48 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080F6B3A -_080F6B48: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0xe - bl sub_080F8070 - b _080F6C1C - .align 2, 0 -_080F6B54: .4byte gUnknown_2039D00 -_080F6B58: .4byte sub_080F7D4C -_080F6B5C: .4byte gUnknown_2039BC0 -_080F6B60: - lsls r1, r5, #2 - adds r0, r1, r5 - lsls r0, r0, #3 - adds r2, r0, r2 - ldrh r0, [r2, #0xa] - adds r0, #1 - strh r0, [r2, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r6, r1, #0 - cmp r0, #0x15 - bne _080F6C1C - movs r0, #0 - strh r0, [r2, #0xa] - movs r4, #0 - ldr r1, _080F6BEC - ldrb r0, [r1] - ldr r2, _080F6BF0 - ldr r7, _080F6BF4 - cmp r0, #0 - beq _080F6B98 -_080F6B8A: - adds r4, #1 - cmp r4, #3 - bgt _080F6B98 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080F6B8A -_080F6B98: - lsls r4, r4, #6 - adds r1, r4, r7 - adds r0, r2, #0 - bl StringCopy - ldr r0, _080F6BF8 - adds r1, r7, #0 - subs r1, #0xb - adds r4, r4, r1 - adds r1, r4, #0 - bl StringCopy - ldr r1, _080F6BFC - mov r0, sp - bl StringExpandPlaceholders - ldr r0, _080F6C00 - ldr r0, [r0] - ldr r0, [r0] - ldrb r1, [r0] - mov r0, sp - bl sub_080F739C - mov r0, sp - bl SpeciesToMailSpecies - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldr r2, _080F6C04 - movs r3, #0x88 - lsls r3, r3, #3 - movs r1, #0x90 - bl sub_080F7708 -_080F6BDC: - ldr r0, _080F6C08 - adds r1, r6, r5 - lsls r1, r1, #3 - adds r1, r1, r0 -_080F6BE4: - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _080F6C1C - .align 2, 0 -_080F6BEC: .4byte gUnknown_2039BC0 -_080F6BF0: .4byte gUnknown_2021C40 -_080F6BF4: .4byte gUnknown_2039AAD -_080F6BF8: .4byte gUnknown_2021C54 -_080F6BFC: .4byte gUnknown_85CC4C6 -_080F6C00: .4byte gUnknown_2039D00 -_080F6C04: .4byte 0x0000FFFF -_080F6C08: .4byte gUnknown_3005B60 -_080F6C0C: - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r1, #0 - strh r1, [r0, #8] - ldr r1, _080F6C24 - str r1, [r0] -_080F6C1C: - add sp, #0x64 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F6C24: .4byte sub_080F6C28 - thumb_func_end sub_080F6A34 - - thumb_func_start sub_080F6C28 -sub_080F6C28: @ 0x080F6C28 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r1, _080F6C58 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #8 - ldrsh r0, [r0, r2] - adds r4, r1, #0 - cmp r0, #5 - bls _080F6C4C - b _080F6EC0 -_080F6C4C: - lsls r0, r0, #2 - ldr r1, _080F6C5C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F6C58: .4byte gUnknown_3005B60 -_080F6C5C: .4byte _080F6C60 -_080F6C60: @ jump table - .4byte _080F6C78 @ case 0 - .4byte _080F6DB0 @ case 1 - .4byte _080F6E00 @ case 2 - .4byte _080F6E14 @ case 3 - .4byte _080F6E5C @ case 4 - .4byte _080F6EA0 @ case 5 -_080F6C78: - ldr r1, _080F6CE4 - movs r0, #0xf0 - strh r0, [r1] - ldr r1, _080F6CE8 - ldr r3, _080F6CEC - adds r0, r3, #0 - strh r0, [r1] - movs r2, #0 - ldr r1, _080F6CF0 - ldrb r0, [r1] - lsls r4, r7, #2 - mov sl, r4 - ldr r3, _080F6CF4 - ldr r4, _080F6CF8 - mov sb, r4 - ldr r4, _080F6CFC - mov ip, r4 - ldr r4, _080F6D00 - mov r8, r4 - cmp r0, #0 - beq _080F6CB0 -_080F6CA2: - adds r2, #1 - cmp r2, #3 - bgt _080F6CB0 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080F6CA2 -_080F6CB0: - lsls r1, r2, #6 - adds r0, r1, r3 - ldrh r6, [r0] - adds r0, r3, #0 - adds r0, #0x38 - adds r0, r1, r0 - ldr r4, [r0] - adds r0, r3, #0 - adds r0, #0x3c - adds r1, r1, r0 - ldr r5, [r1] - mov r0, sb - ldrb r0, [r0] - cmp r2, r0 - bne _080F6D04 - lsls r0, r6, #3 - add r0, ip - mov r2, r8 - ldr r1, [r2] - ldr r1, [r1, #8] - adds r2, r6, #0 - adds r3, r4, #0 - bl HandleLoadSpecialPokePic_2 - b _080F6D16 - .align 2, 0 -_080F6CE4: .4byte gUnknown_2022AD8 -_080F6CE8: .4byte gUnknown_2022ADA -_080F6CEC: .4byte 0x00005050 -_080F6CF0: .4byte gUnknown_2039BC0 -_080F6CF4: .4byte gUnknown_2039AA0 -_080F6CF8: .4byte gUnknown_2039BC5 -_080F6CFC: .4byte gUnknown_82DDA1C -_080F6D00: .4byte gUnknown_2024178 -_080F6D04: - lsls r0, r6, #3 - add r0, ip - mov r3, r8 - ldr r1, [r3] - ldr r1, [r1, #8] - adds r2, r6, #0 - adds r3, r4, #0 - bl HandleLoadSpecialPokePic_DontHandleDeoxys -_080F6D16: - adds r0, r6, #0 - adds r1, r5, #0 - adds r2, r4, #0 - bl GetMonSpritePalStructFromOtIdPersonality - adds r4, r0, #0 - bl LoadCompressedSpritePalette - adds r0, r6, #0 - movs r1, #1 - bl SetMultiuseSpriteTemplateToPokemon - ldr r0, _080F6D90 - ldrh r1, [r4, #4] - strh r1, [r0, #2] - movs r1, #0x88 - lsls r1, r1, #1 - movs r2, #0x50 - movs r3, #0xa - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _080F6D94 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r3, r2, r5 - strh r6, [r3, #0x30] - ldrb r4, [r3, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r4 - strb r1, [r3, #5] - adds r5, #0x1c - adds r2, r2, r5 - ldr r1, _080F6D98 - str r1, [r2] - ldr r1, _080F6D9C - ldr r1, [r1] - ldr r1, [r1] - strb r0, [r1, #8] - ldr r0, _080F6DA0 - bl LoadCompressedSpriteSheet - ldr r0, _080F6DA4 - bl LoadCompressedSpritePalette - ldr r0, _080F6DA8 - movs r1, #0xa - bl CreateTask - ldr r0, _080F6DAC - mov r4, sl - adds r1, r4, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _080F6EC0 - .align 2, 0 -_080F6D90: .4byte gUnknown_2024640 -_080F6D94: .4byte gUnknown_20205AC -_080F6D98: .4byte sub_080F7E38 -_080F6D9C: .4byte gUnknown_2039D00 -_080F6DA0: .4byte gUnknown_8569324 -_080F6DA4: .4byte gUnknown_856932C -_080F6DA8: .4byte sub_080F7F00 -_080F6DAC: .4byte gUnknown_3005B60 -_080F6DB0: - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r4, r0, r4 - ldrh r0, [r4, #0xe] - adds r0, #1 - strh r0, [r4, #0xe] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - beq _080F6DC8 - b _080F6EC0 -_080F6DC8: - movs r0, #0 - strh r0, [r4, #0xe] - ldrh r0, [r4, #0xc] - adds r0, #2 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x20 - ble _080F6DDE - movs r0, #0x20 - strh r0, [r4, #0xc] -_080F6DDE: - ldrb r2, [r4, #0xc] - ldr r3, _080F6DFC - movs r0, #0x50 - subs r0, r0, r2 - lsls r0, r0, #8 - adds r1, r2, #0 - adds r1, #0x50 - orrs r0, r1 - strh r0, [r3] - cmp r2, #0x20 - bne _080F6EC0 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _080F6EC0 - .align 2, 0 -_080F6DFC: .4byte gUnknown_2022ADA -_080F6E00: - ldr r0, _080F6E10 - ldr r0, [r0] - ldr r0, [r0] - ldrb r0, [r0, #6] - cmp r0, #1 - bne _080F6EC0 - b _080F6E88 - .align 2, 0 -_080F6E10: .4byte gUnknown_2039D00 -_080F6E14: - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r3, r0, r4 - ldrh r0, [r3, #0xa] - adds r0, #1 - strh r0, [r3, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x79 - bne _080F6EC0 - movs r0, #0 - strh r0, [r3, #0xa] - ldr r2, _080F6E50 - ldr r0, _080F6E54 - ldr r0, [r0] - ldr r0, [r0] - ldrb r1, [r0, #8] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, _080F6E58 - str r1, [r0] - ldrh r0, [r3, #8] - adds r0, #1 - strh r0, [r3, #8] - b _080F6EC0 - .align 2, 0 -_080F6E50: .4byte gUnknown_20205AC -_080F6E54: .4byte gUnknown_2039D00 -_080F6E58: .4byte sub_080F7EB0 -_080F6E5C: - ldr r0, _080F6E98 - ldr r0, [r0] - ldr r0, [r0] - ldrb r0, [r0, #6] - cmp r0, #2 - bne _080F6EC0 - ldr r3, _080F6E9C - ldrh r0, [r3] - lsrs r2, r0, #8 - adds r0, r2, #2 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x50 - bls _080F6E7A - movs r2, #0x50 -_080F6E7A: - lsls r1, r2, #8 - movs r0, #0xa0 - subs r0, r0, r2 - orrs r1, r0 - strh r1, [r3] - cmp r2, #0x50 - bne _080F6EC0 -_080F6E88: - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r4 - ldrh r1, [r0, #8] - adds r1, #1 - strh r1, [r0, #8] - b _080F6EC0 - .align 2, 0 -_080F6E98: .4byte gUnknown_2039D00 -_080F6E9C: .4byte gUnknown_2022ADA -_080F6EA0: - ldr r0, _080F6ED0 - ldr r0, [r0] - ldr r2, [r0] - ldrb r0, [r2, #6] - cmp r0, #2 - bne _080F6EC0 - movs r1, #0 - movs r0, #1 - strb r0, [r2, #9] - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r4 - strh r1, [r0, #8] - ldr r1, _080F6ED4 - str r1, [r0] -_080F6EC0: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F6ED0: .4byte gUnknown_2039D00 -_080F6ED4: .4byte sub_080F6ED8 - thumb_func_end sub_080F6C28 - - thumb_func_start sub_080F6ED8 -sub_080F6ED8: @ 0x080F6ED8 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _080F6F2C - ldrh r1, [r0, #0x2e] - movs r2, #1 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _080F6F26 - ldr r0, _080F6F30 - ldrb r1, [r0] - adds r0, r2, #0 - ands r0, r1 - lsls r6, r7, #2 - cmp r0, #0 - bne _080F6F16 - ldr r5, _080F6F34 - movs r4, #3 -_080F6EFE: - ldrh r0, [r5] - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #2 - bl GetSetPokedexFlag - adds r5, #0x40 - subs r4, #1 - cmp r4, #0 - bge _080F6EFE -_080F6F16: - ldr r1, _080F6F38 - adds r0, r6, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #0x1c] - ldr r1, _080F6F3C - str r1, [r0] -_080F6F26: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F6F2C: .4byte gUnknown_3002360 -_080F6F30: .4byte gUnknown_2039BCA -_080F6F34: .4byte gUnknown_2039AA0 -_080F6F38: .4byte gUnknown_3005B60 -_080F6F3C: .4byte sub_080F6F40 - thumb_func_end sub_080F6ED8 - - thumb_func_start sub_080F6F40 -sub_080F6F40: @ 0x080F6F40 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _080F6F74 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080F6F84 - ldr r0, _080F6F78 - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r4, r1, r0 - movs r1, #0x1c - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080F6F92 - ldr r0, _080F6F7C - bl sub_080F78E8 - bl sub_0800A7F8 - ldr r0, _080F6F80 - str r0, [r4] - b _080F6F92 - .align 2, 0 -_080F6F74: .4byte gUnknown_2039BCA -_080F6F78: .4byte gUnknown_3005B60 -_080F6F7C: .4byte gUnknown_85CC4D5 -_080F6F80: .4byte sub_080F6FA0 -_080F6F84: - ldr r0, _080F6F98 - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080F6F9C - str r0, [r1] -_080F6F92: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F6F98: .4byte gUnknown_3005B60 -_080F6F9C: .4byte sub_080F6FE8 - thumb_func_end sub_080F6F40 - - thumb_func_start sub_080F6FA0 -sub_080F6FA0: @ 0x080F6FA0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080F6FD8 - ldrb r0, [r0] - cmp r0, #0 - bne _080F6FD0 - ldr r0, _080F6FDC - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080F6FBE - bl DestroyWirelessStatusIndicatorSprite -_080F6FBE: - bl sub_080F79B8 - ldr r0, _080F6FE0 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080F6FE4 - str r0, [r1] -_080F6FD0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F6FD8: .4byte gUnknown_30031C4 -_080F6FDC: .4byte gUnknown_2039BCA -_080F6FE0: .4byte gUnknown_3005B60 -_080F6FE4: .4byte sub_080F6FE8 - thumb_func_end sub_080F6FA0 - - thumb_func_start sub_080F6FE8 -sub_080F6FE8: @ 0x080F6FE8 - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080F7030 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080F700A - ldr r1, _080F7034 - ldr r0, _080F7038 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - bl sub_080EDBE4 -_080F700A: - movs r0, #0 - str r0, [sp] - movs r0, #0xff - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginHardwarePaletteFade - ldr r1, _080F703C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080F7040 - str r1, [r0] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F7030: .4byte gUnknown_2039BCA -_080F7034: .4byte gUnknown_2039BC0 -_080F7038: .4byte gUnknown_2039BC5 -_080F703C: .4byte gUnknown_3005B60 -_080F7040: .4byte sub_080F7044 - thumb_func_end sub_080F6FE8 - - thumb_func_start sub_080F7044 -sub_080F7044: @ 0x080F7044 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r5, r2, #0 - ldr r0, _080F707C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080F70CC - ldr r1, _080F7080 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080F708C - ldr r0, _080F7084 - ldr r0, [r0] - ldr r0, [r0] - ldrb r0, [r0, #3] - bl DestroyTask - ldr r0, _080F7088 - b _080F7092 - .align 2, 0 -_080F707C: .4byte gUnknown_2037C74 -_080F7080: .4byte gUnknown_3005B60 -_080F7084: .4byte gUnknown_2039D00 -_080F7088: .4byte 0x0000FFFF -_080F708C: - cmp r0, #1 - bne _080F70A8 - ldr r0, _080F70A4 -_080F7092: - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - b _080F70CC - .align 2, 0 -_080F70A4: .4byte 0xFFFF0000 -_080F70A8: - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - adds r0, r5, #0 - bl DestroyTask - bl FreeAllWindowBuffers - ldr r0, _080F70D4 - bl SetMainCallback2 - bl sub_080F86F4 -_080F70CC: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080F70D4: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic - thumb_func_end sub_080F7044 - - thumb_func_start sub_080F70D8 -sub_080F70D8: @ 0x080F70D8 - push {r4, r5, lr} - ldr r2, _080F710C - ldrh r3, [r2] - adds r0, r3, #2 - strh r0, [r2] - ldr r4, _080F7110 - ldrh r5, [r4] - adds r1, r5, #1 - strh r1, [r4] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xff - bls _080F70F8 - adds r0, r3, #0 - subs r0, #0xfd - strh r0, [r2] -_080F70F8: - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xff - bls _080F7106 - adds r0, r5, #0 - subs r0, #0xfe - strh r0, [r4] -_080F7106: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080F710C: .4byte gUnknown_2022AD4 -_080F7110: .4byte gUnknown_2022AD6 - thumb_func_end sub_080F70D8 - - thumb_func_start sub_080F7114 -sub_080F7114: @ 0x080F7114 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _080F7144 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r2, r0, r1 - ldrh r0, [r2, #8] - adds r0, #1 - strh r0, [r2, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - bne _080F7196 - movs r0, #0 - strh r0, [r2, #8] - movs r3, #0xc - ldrsh r0, [r2, r3] - cmp r0, #0 - bne _080F7148 - ldrh r0, [r2, #0xa] - adds r0, #1 - b _080F714C - .align 2, 0 -_080F7144: .4byte gUnknown_3005B60 -_080F7148: - ldrh r0, [r2, #0xa] - subs r0, #1 -_080F714C: - strh r0, [r2, #0xa] - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r1, r0, r1 - movs r2, #0xa - ldrsh r0, [r1, r2] - cmp r0, #0x10 - bne _080F7162 - movs r0, #1 - b _080F7166 -_080F7162: - cmp r0, #0 - bne _080F7168 -_080F7166: - strh r0, [r1, #0xc] -_080F7168: - ldr r0, _080F71B4 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - adds r4, r4, r0 - ldrb r2, [r4, #0xa] - ldr r3, _080F71B8 - movs r0, #0x6b - movs r1, #1 - bl BlendPalette - ldrb r2, [r4, #0xa] - ldr r3, _080F71BC - movs r0, #0x68 - movs r1, #1 - bl BlendPalette - ldrb r2, [r4, #0xa] - ldr r3, _080F71C0 - movs r0, #0x6e - movs r1, #1 - bl BlendPalette -_080F7196: - ldr r1, _080F71B4 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r3, #0xa - ldrsh r4, [r0, r3] - cmp r4, #0 - bne _080F71C8 - ldr r0, _080F71C4 - ldr r0, [r0] - ldr r0, [r0] - strb r4, [r0, #0xa] - b _080F71D2 - .align 2, 0 -_080F71B4: .4byte gUnknown_3005B60 -_080F71B8: .4byte 0x00002EDE -_080F71BC: .4byte 0x00007FFF -_080F71C0: .4byte 0x000077BE -_080F71C4: .4byte gUnknown_2039D00 -_080F71C8: - ldr r0, _080F71D8 - ldr r0, [r0] - ldr r1, [r0] - movs r0, #1 - strb r0, [r1, #0xa] -_080F71D2: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080F71D8: .4byte gUnknown_2039D00 - thumb_func_end sub_080F7114 - - thumb_func_start sub_080F71DC -sub_080F71DC: @ 0x080F71DC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x10 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - mov r8, r4 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r6, r3, #0x18 - ldr r0, _080F725C - movs r2, #0 - ldrb r0, [r0] - cmp r4, r0 - bne _080F7202 - movs r2, #1 -_080F7202: - adds r0, r7, #0 - ldr r1, [sp, #0x28] - bl GetMonIconPtr - adds r3, r0, #0 - lsls r0, r5, #9 - adds r0, #0x80 - adds r3, r3, r0 - cmp r6, #0 - beq _080F7264 - lsls r1, r4, #9 - ldr r0, _080F7260 - adds r1, r1, r0 - movs r2, #0xc0 - lsls r2, r2, #1 - adds r0, r3, #0 - movs r3, #1 - bl RequestDma3Copy - adds r0, r4, #0 - adds r0, #0xa - lsls r0, r0, #0x1c - lsls r1, r4, #0x14 - movs r2, #0x80 - lsls r2, r2, #0x12 - adds r1, r1, r2 - orrs r1, r0 - lsrs r1, r1, #0x10 - lsls r3, r4, #1 - adds r3, r3, r4 - adds r3, #4 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #4 - str r0, [sp] - movs r0, #3 - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #1 - str r0, [sp, #0xc] - movs r2, #3 - bl WriteSequenceToBgTilemapBuffer - b _080F7278 - .align 2, 0 -_080F725C: .4byte gUnknown_2039BC5 -_080F7260: .4byte 0x06004000 -_080F7264: - mov r0, r8 - lsls r1, r0, #9 - ldr r2, _080F7284 - adds r1, r1, r2 - movs r2, #0xc0 - lsls r2, r2, #1 - adds r0, r3, #0 - movs r3, #1 - bl RequestDma3Copy -_080F7278: - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F7284: .4byte 0x06004000 - thumb_func_end sub_080F71DC - - thumb_func_start LoadAllContestMonIcons -LoadAllContestMonIcons: @ 0x080F7288 - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - movs r5, #0 - ldr r4, _080F72BC -_080F7298: - ldrh r0, [r4] - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - ldr r2, [r4, #0x38] - str r2, [sp] - adds r2, r7, #0 - adds r3, r6, #0 - bl sub_080F71DC - adds r4, #0x40 - adds r5, #1 - cmp r5, #3 - ble _080F7298 - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F72BC: .4byte gUnknown_2039AA0 - thumb_func_end LoadAllContestMonIcons - - thumb_func_start HealStatusConditions -HealStatusConditions: @ 0x080F72C0 - push {r4, r5, r6, lr} - movs r4, #0 - ldr r6, _080F7300 - movs r5, #0xa0 - lsls r5, r5, #0x10 -_080F72CA: - ldr r1, _080F7304 - lsls r0, r4, #6 - adds r0, r0, r1 - ldrh r0, [r0] - movs r1, #0 - bl GetIconSpecies - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r0, r0, r6 - ldrb r0, [r0] - lsls r0, r0, #5 - ldr r1, _080F7308 - adds r0, r0, r1 - lsrs r1, r5, #0x10 - movs r2, #0x20 - bl LoadPalette - movs r0, #0x80 - lsls r0, r0, #0xd - adds r5, r5, r0 - adds r4, #1 - cmp r4, #3 - ble _080F72CA - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080F7300: .4byte gUnknown_8556EE4 -_080F7304: .4byte gUnknown_2039AA0 -_080F7308: .4byte gUnknown_85567A4 - thumb_func_end HealStatusConditions - - thumb_func_start sub_080F730C -sub_080F730C: @ 0x080F730C - push {r4, lr} - ldr r0, _080F7384 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080F737C - bl LoadWirelessStatusIndicatorSpriteGfx - movs r0, #8 - movs r1, #8 - bl CreateWirelessStatusIndicatorSprite - ldr r4, _080F7388 - ldr r0, _080F738C - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x43 - movs r1, #1 - strb r1, [r0] - ldr r0, _080F7390 - bl LoadSpriteSheet - adds r1, r0, #0 - lsls r1, r1, #0x10 - movs r0, #1 - rsbs r0, r0, #0 - lsrs r1, r1, #0xb - ldr r2, _080F7394 - adds r1, r1, r2 - movs r2, #0x80 - movs r3, #1 - bl RequestDma3Fill - ldr r0, _080F7398 - movs r1, #8 - movs r2, #8 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r2, [r1, #1] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - movs r2, #8 - orrs r0, r2 - strb r0, [r1, #1] -_080F737C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F7384: .4byte gUnknown_2039BCA -_080F7388: .4byte gUnknown_20205AC -_080F738C: .4byte gUnknown_20227C8 -_080F7390: .4byte gUnknown_85694C4 -_080F7394: .4byte 0x06010000 -_080F7398: .4byte gUnknown_85694AC - thumb_func_end sub_080F730C - - thumb_func_start sub_080F739C -sub_080F739C: @ 0x080F739C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - adds r5, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r1, #4 - adds r2, r2, r1 - lsls r2, r2, #2 - ldr r4, _080F74B4 - adds r2, r2, r4 - ldrh r0, [r2, #4] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x11 - ldr r3, _080F74B8 - adds r0, r0, r3 - str r0, [sp] - movs r0, #0x2e - ldrsh r1, [r2, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r0, [r0, #4] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x11 - adds r0, r0, r3 - str r0, [sp, #4] - movs r0, #0x30 - ldrsh r1, [r2, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r0, [r0, #4] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x11 - adds r0, r0, r3 - str r0, [sp, #8] - movs r0, #0x32 - ldrsh r1, [r2, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r0, [r0, #4] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x11 - adds r0, r0, r3 - str r0, [sp, #0xc] - movs r0, #0 - str r0, [sp, #0x10] - add r0, sp, #0x10 - ldr r1, _080F74BC - mov sl, r1 - ldr r1, [r1] - ldr r1, [r1, #0x1c] - ldr r2, _080F74C0 - bl CpuSet - ldr r4, _080F74C4 - ldr r1, _080F74C8 - adds r0, r4, #0 - bl StringCopy - adds r1, r5, #0 - bl StringCopy - mov r2, sl - ldr r0, [r2] - ldr r0, [r0, #8] - movs r1, #1 - adds r2, r4, #0 - bl RenderTextFont9 - adds r0, r5, #0 - bl StringLength - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - mov r1, sl - ldr r0, [r1] - ldr r7, [r0, #0x1c] - ldr r2, _080F74CC - mov r8, r2 - ldr r5, _080F74D0 - mov r0, r8 - adds r1, r7, #0 - adds r2, r5, #0 - bl CpuSet - mov r4, r8 - adds r4, #0x80 - movs r0, #0x80 - lsls r0, r0, #1 - adds r1, r7, r0 - adds r0, r4, #0 - adds r2, r5, #0 - bl CpuSet - movs r2, #0x80 - lsls r2, r2, #2 - adds r1, r7, r2 - adds r0, r4, #0 - adds r2, r5, #0 - bl CpuSet - mov r0, r8 - adds r0, #0x40 - movs r2, #0xc0 - lsls r2, r2, #2 - adds r1, r7, r2 - adds r2, r5, #0 - bl CpuSet - movs r6, #0 - cmp r6, sb - bgt _080F7588 - mov r4, sl - movs r0, #0x92 - lsls r0, r0, #4 - str r0, [sp, #0x14] - movs r1, #0xc4 - lsls r1, r1, #3 - str r1, [sp, #0x18] - movs r2, #0xc8 - lsls r2, r2, #2 - mov sl, r2 - mov r8, r5 -_080F74A6: - cmp r6, #6 - bgt _080F74D4 - ldr r0, [r4] - adds r1, r6, #1 - lsls r1, r1, #5 - ldr r0, [r0, #0x1c] - b _080F74F4 - .align 2, 0 -_080F74B4: .4byte gUnknown_20205AC -_080F74B8: .4byte 0x06010000 -_080F74BC: .4byte gUnknown_2039D00 -_080F74C0: .4byte 0x05000400 -_080F74C4: .4byte gUnknown_2022AE0 -_080F74C8: .4byte gUnknown_85CC4E4 -_080F74CC: .4byte gUnknown_856917C -_080F74D0: .4byte 0x04000008 -_080F74D4: - cmp r6, #0xe - bgt _080F74E0 - ldr r0, [r4] - ldr r0, [r0, #0x1c] - mov r1, sl - b _080F74F4 -_080F74E0: - cmp r6, #0x16 - bgt _080F74EE - ldr r0, [r4] - ldr r0, [r0, #0x1c] - ldr r2, [sp, #0x18] - adds r7, r0, r2 - b _080F74F6 -_080F74EE: - ldr r0, [r4] - ldr r0, [r0, #0x1c] - ldr r1, [sp, #0x14] -_080F74F4: - adds r7, r0, r1 -_080F74F6: - cmp r6, sb - beq _080F7588 - ldr r0, _080F75F8 - adds r1, r7, #0 - mov r2, r8 - bl CpuSet - movs r2, #0xc0 - lsls r2, r2, #2 - adds r1, r7, r2 - ldr r0, _080F75F8 - adds r0, #0x20 - mov r2, r8 - bl CpuSet - ldr r0, [r4] - lsls r1, r6, #6 - ldr r0, [r0, #8] - adds r3, r0, r1 - movs r0, #0x80 - lsls r0, r0, #1 - adds r5, r7, r0 - movs r1, #0x11 - ldr r2, _080F75FC - adds r0, r7, r2 -_080F7528: - strb r1, [r0] - subs r0, #1 - cmp r0, r5 - bge _080F7528 - movs r0, #0x84 - lsls r0, r0, #1 - adds r5, r7, r0 - movs r2, #0 -_080F7538: - adds r1, r5, r2 - ldrb r0, [r3] - strb r0, [r1] - adds r3, #1 - adds r2, #1 - cmp r2, #0x17 - ble _080F7538 - movs r1, #0x80 - lsls r1, r1, #2 - adds r5, r7, r1 - movs r2, #0 -_080F754E: - adds r1, r5, r2 - ldrb r0, [r3] - strb r0, [r1] - adds r3, #1 - adds r2, #1 - cmp r2, #0x1f - ble _080F754E - movs r2, #0xc0 - lsls r2, r2, #2 - adds r5, r7, r2 - movs r2, #0 -_080F7564: - adds r1, r5, r2 - ldrb r0, [r3] - strb r0, [r1] - adds r3, #1 - adds r2, #1 - cmp r2, #7 - ble _080F7564 - ldr r0, [sp, #0x14] - adds r0, #0x20 - str r0, [sp, #0x14] - ldr r1, [sp, #0x18] - adds r1, #0x20 - str r1, [sp, #0x18] - movs r2, #0x20 - add sl, r2 - adds r6, #1 - cmp r6, sb - ble _080F74A6 -_080F7588: - ldr r4, _080F7600 - ldr r5, _080F7604 - 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, r0, #1 - adds r1, r7, r0 - adds r0, r6, #0 - adds r2, r5, #0 - bl CpuSet - movs r2, #0x80 - lsls r2, r2, #2 - adds r1, r7, r2 - adds r0, r6, #0 - adds r2, r5, #0 - bl CpuSet - adds r4, #0x40 - movs r0, #0xc0 - lsls r0, r0, #2 - adds r1, r7, r0 - adds r0, r4, #0 - adds r2, r5, #0 - bl CpuSet - movs r6, #0 - mov r4, sp -_080F75CA: - ldr r0, _080F7608 - ldr r0, [r0] - lsls r1, r6, #0xa - ldr r0, [r0, #0x1c] - adds r0, r0, r1 - ldm r4!, {r1} - movs r2, #0x80 - lsls r2, r2, #3 - movs r3, #1 - bl RequestDma3Copy - adds r6, #1 - cmp r6, #3 - ble _080F75CA - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F75F8: .4byte gUnknown_856923C -_080F75FC: .4byte 0x00000107 -_080F7600: .4byte gUnknown_856919C -_080F7604: .4byte 0x04000008 -_080F7608: .4byte gUnknown_2039D00 - thumb_func_end sub_080F739C - - thumb_func_start sub_080F760C -sub_080F760C: @ 0x080F760C - push {r4, r5, r6, lr} - sub sp, #0x20 - mov r1, sp - ldr r0, _080F76D4 - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - add r5, sp, #0x18 - ldr r6, _080F76D8 - movs r4, #7 -_080F7622: - adds r0, r6, #0 - bl LoadSpriteSheet - adds r6, #8 - subs r4, #1 - cmp r4, #0 - bge _080F7622 - ldr r0, _080F76DC - bl LoadSpritePalette - movs r4, #0 - mov r6, sp -_080F763A: - mov r0, sp - movs r1, #0x88 - lsls r1, r1, #1 - movs r2, #0x90 - movs r3, #0xa - bl CreateSprite - adds r1, r5, r4 - strb r0, [r1] - ldrh r0, [r6] - adds r0, #1 - strh r0, [r6] - adds r4, #1 - cmp r4, #7 - ble _080F763A - ldr r2, _080F76E0 - ldrb r1, [r5] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r5, #1] - movs r3, #0 - strh r1, [r0, #0x2e] - ldrb r1, [r5] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r5, #2] - strh r1, [r0, #0x30] - ldrb r1, [r5] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r5, #3] - strh r1, [r0, #0x32] - ldrb r1, [r5, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r5, #5] - strh r1, [r0, #0x2e] - ldrb r1, [r5, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r5, #6] - strh r1, [r0, #0x30] - ldrb r1, [r5, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r5, #7] - strh r1, [r0, #0x32] - ldr r1, _080F76E4 - ldr r0, [r1] - ldr r2, [r0] - ldrb r0, [r5] - strb r0, [r2] - ldr r0, [r1] - ldr r0, [r0] - strb r3, [r0, #4] - ldr r0, [r1] - ldr r1, [r0] - ldrb r0, [r5, #4] - strb r0, [r1, #1] - bl sub_080F79B8 - add sp, #0x20 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080F76D4: .4byte gUnknown_85692A4 -_080F76D8: .4byte gUnknown_85692BC -_080F76DC: .4byte gUnknown_85692FC -_080F76E0: .4byte gUnknown_20205AC -_080F76E4: .4byte gUnknown_2039D00 - thumb_func_end sub_080F760C - - thumb_func_start SpeciesToMailSpecies -SpeciesToMailSpecies: @ 0x080F76E8 - push {lr} - bl StringLength - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x16 - movs r0, #0x78 - subs r0, r0, r1 - lsls r0, r0, #0x10 - ldr r1, _080F7704 - adds r0, r0, r1 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 -_080F7704: .4byte 0xFFF80000 - thumb_func_end SpeciesToMailSpecies - - thumb_func_start sub_080F7708 -sub_080F7708: @ 0x080F7708 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - ldr r4, _080F7754 - ldr r4, [r4] - mov r8, r4 - ldr r4, [r4] - ldrb r5, [r4] - lsls r4, r5, #4 - adds r4, r4, r5 - lsls r4, r4, #2 - ldr r5, _080F7758 - adds r4, r4, r5 - movs r6, #0 - movs r5, #0x88 - lsls r5, r5, #1 - strh r5, [r4, #0x20] - strh r1, [r4, #0x22] - strh r6, [r4, #0x24] - strh r6, [r4, #0x26] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r0, #0x20 - strh r0, [r4, #0x36] - strh r2, [r4, #0x38] - strh r3, [r4, #0x3a] - strh r6, [r4, #0x3c] - ldr r0, _080F775C - str r0, [r4, #0x1c] - mov r0, r8 - ldr r1, [r0] - movs r0, #1 - strb r0, [r1, #4] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080F7754: .4byte gUnknown_2039D00 -_080F7758: .4byte gUnknown_20205AC -_080F775C: .4byte sub_080F77D4 - thumb_func_end sub_080F7708 - - thumb_func_start sub_080F7760 -sub_080F7760: @ 0x080F7760 - push {r4, r5, lr} - ldr r1, _080F77A0 - ldr r4, [r1] - ldr r1, [r4] - ldrb r2, [r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - ldr r2, _080F77A4 - adds r1, r1, r2 - ldrh r2, [r1, #0x24] - ldrh r3, [r1, #0x20] - adds r2, r2, r3 - movs r3, #0 - strh r2, [r1, #0x20] - ldrh r2, [r1, #0x26] - ldrh r5, [r1, #0x22] - adds r2, r2, r5 - strh r2, [r1, #0x22] - strh r3, [r1, #0x26] - strh r3, [r1, #0x24] - strh r0, [r1, #0x3a] - strh r3, [r1, #0x3c] - ldr r0, _080F77A8 - str r0, [r1, #0x1c] - ldr r1, [r4] - movs r0, #3 - strb r0, [r1, #4] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080F77A0: .4byte gUnknown_2039D00 -_080F77A4: .4byte gUnknown_20205AC -_080F77A8: .4byte sub_080F7880 - thumb_func_end sub_080F7760 - - thumb_func_start sub_080F77AC -sub_080F77AC: @ 0x080F77AC - movs r3, #0 - movs r2, #0 - movs r1, #0x88 - lsls r1, r1, #1 - strh r1, [r0, #0x20] - movs r1, #0x90 - strh r1, [r0, #0x22] - strh r2, [r0, #0x26] - strh r2, [r0, #0x24] - ldr r1, _080F77CC - str r1, [r0, #0x1c] - ldr r0, _080F77D0 - ldr r0, [r0] - ldr r0, [r0] - strb r3, [r0, #4] - bx lr - .align 2, 0 -_080F77CC: .4byte sub_08007140 -_080F77D0: .4byte gUnknown_2039D00 - thumb_func_end sub_080F77AC - - thumb_func_start sub_080F77D4 -sub_080F77D4: @ 0x080F77D4 - push {r4, r5, r6, r7, lr} - adds r3, r0, #0 - ldrh r2, [r3, #0x3a] - ldrh r0, [r3, #0x3c] - adds r2, r2, r0 - lsls r1, r2, #0x10 - asrs r1, r1, #0x18 - ldrh r0, [r3, #0x20] - subs r0, r0, r1 - strh r0, [r3, #0x20] - movs r1, #0xff - ands r2, r1 - strh r2, [r3, #0x3c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrh r2, [r3, #0x36] - movs r4, #0x36 - ldrsh r1, [r3, r4] - cmp r0, r1 - bge _080F77FE - strh r2, [r3, #0x20] -_080F77FE: - movs r4, #0 - ldr r6, _080F7840 - movs r5, #0x40 - adds r2, r3, #0 - adds r2, #0x2e -_080F7808: - movs r7, #0 - ldrsh r0, [r2, r7] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrh r0, [r3, #0x24] - ldrh r7, [r3, #0x20] - adds r0, r0, r7 - adds r0, r0, r5 - strh r0, [r1, #0x20] - adds r5, #0x40 - adds r2, #2 - adds r4, #1 - cmp r4, #2 - ble _080F7808 - movs r0, #0x20 - ldrsh r1, [r3, r0] - movs r2, #0x36 - ldrsh r0, [r3, r2] - cmp r1, r0 - bne _080F7838 - ldr r0, _080F7844 - str r0, [r3, #0x1c] -_080F7838: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F7840: .4byte gUnknown_20205AC -_080F7844: .4byte sub_080F7848 - thumb_func_end sub_080F77D4 - - thumb_func_start sub_080F7848 -sub_080F7848: @ 0x080F7848 - push {lr} - adds r2, r0, #0 - ldr r0, _080F7878 - ldr r0, [r0] - ldr r1, [r0] - movs r0, #2 - strb r0, [r1, #4] - ldrh r3, [r2, #0x38] - ldr r1, _080F787C - lsrs r0, r1, #0x10 - cmp r3, r0 - beq _080F7874 - subs r0, r3, #1 - strh r0, [r2, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - asrs r1, r1, #0x10 - cmp r0, r1 - bne _080F7874 - ldrh r0, [r2, #0x3a] - bl sub_080F7760 -_080F7874: - pop {r0} - bx r0 - .align 2, 0 -_080F7878: .4byte gUnknown_2039D00 -_080F787C: .4byte 0xFFFF0000 - thumb_func_end sub_080F7848 - - thumb_func_start sub_080F7880 -sub_080F7880: @ 0x080F7880 - push {r4, r5, r6, r7, lr} - adds r3, r0, #0 - ldrh r2, [r3, #0x3a] - ldrh r0, [r3, #0x3c] - adds r2, r2, r0 - lsls r1, r2, #0x10 - asrs r1, r1, #0x18 - ldrh r0, [r3, #0x20] - subs r0, r0, r1 - strh r0, [r3, #0x20] - movs r0, #0xff - ands r2, r0 - strh r2, [r3, #0x3c] - movs r4, #0 - ldr r6, _080F78E4 - movs r5, #0x40 - adds r2, r3, #0 - adds r2, #0x2e -_080F78A4: - movs r1, #0 - ldrsh r0, [r2, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrh r0, [r3, #0x24] - ldrh r7, [r3, #0x20] - adds r0, r0, r7 - adds r0, r0, r5 - strh r0, [r1, #0x20] - adds r5, #0x40 - adds r2, #2 - adds r4, #1 - cmp r4, #2 - ble _080F78A4 - movs r1, #0x20 - ldrsh r0, [r3, r1] - movs r2, #0x24 - ldrsh r1, [r3, r2] - adds r0, r0, r1 - movs r1, #0xe0 - rsbs r1, r1, #0 - cmp r0, r1 - bge _080F78DC - adds r0, r3, #0 - bl sub_080F77AC -_080F78DC: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F78E4: .4byte gUnknown_20205AC - thumb_func_end sub_080F7880 - - thumb_func_start sub_080F78E8 -sub_080F78E8: @ 0x080F78E8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r5, _080F79A4 - ldr r0, [r5] - ldr r0, [r0] - ldrb r1, [r0, #1] - adds r0, r4, #0 - bl sub_080F739C - adds r0, r4, #0 - bl SpeciesToMailSpecies - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, [r5] - ldr r1, [r1] - ldrb r2, [r1, #1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - ldr r3, _080F79A8 - 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, #5 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r1 - strb r0, [r5] - movs r5, #0 - adds r6, r3, #0 - mov ip, r2 - movs r3, #0x40 -_080F7934: - lsls r0, r5, #1 - adds r2, r4, #0 - adds r2, #0x2e - adds r2, r2, r0 - movs r1, #0 - ldrsh r0, [r2, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrh r0, [r4, #0x24] - ldrh r7, [r4, #0x20] - adds r0, r0, r7 - adds r0, r0, r3 - strh r0, [r1, #0x20] - movs r0, #0 - ldrsh r1, [r2, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrh r1, [r4, #0x22] - strh r1, [r0, #0x22] - movs r1, #0 - ldrsh r0, [r2, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - adds r1, #0x3e - ldrb r2, [r1] - mov r0, ip - ands r0, r2 - strb r0, [r1] - adds r3, #0x40 - adds r5, #1 - cmp r5, #2 - ble _080F7934 - ldr r1, _080F79AC - movs r0, #0xf0 - strh r0, [r1] - ldr r2, _080F79B0 - ldrh r1, [r4, #0x22] - adds r0, r1, #0 - subs r0, #0x10 - lsls r0, r0, #8 - adds r1, #0x10 - orrs r0, r1 - strh r0, [r2] - ldr r1, _080F79B4 - movs r0, #0x48 - bl SetGpuReg - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F79A4: .4byte gUnknown_2039D00 -_080F79A8: .4byte gUnknown_20205AC -_080F79AC: .4byte gUnknown_2022AD8 -_080F79B0: .4byte gUnknown_2022ADA -_080F79B4: .4byte 0x00003F3E - thumb_func_end sub_080F78E8 - - thumb_func_start sub_080F79B8 -sub_080F79B8: @ 0x080F79B8 - push {r4, r5, r6, r7, lr} - ldr r0, _080F7A28 - ldr r0, [r0] - ldr r0, [r0] - ldrb r0, [r0, #1] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r3, _080F7A2C - adds r2, r2, r3 - movs r0, #0x3e - adds r0, r0, r2 - mov ip, r0 - ldrb r0, [r0] - movs r1, #4 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - ldr r7, _080F7A30 - ldr r6, _080F7A34 - adds r5, r3, #0 - movs r4, #4 - adds r2, #0x2e - movs r3, #2 -_080F79E8: - movs r1, #0 - ldrsh r0, [r2, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - adds r1, #0x3e - ldrb r0, [r1] - orrs r0, r4 - strb r0, [r1] - adds r2, #2 - subs r3, #1 - cmp r3, #0 - bge _080F79E8 - movs r0, #0 - strh r0, [r7] - strh r0, [r6] - movs r0, #0x40 - movs r1, #0 - bl SetGpuReg - ldrh r1, [r6] - movs r0, #0x44 - bl SetGpuReg - ldr r1, _080F7A38 - movs r0, #0x48 - bl SetGpuReg - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F7A28: .4byte gUnknown_2039D00 -_080F7A2C: .4byte gUnknown_20205AC -_080F7A30: .4byte gUnknown_2022AD8 -_080F7A34: .4byte gUnknown_2022ADA -_080F7A38: .4byte 0x00003F3F - thumb_func_end sub_080F79B8 - - thumb_func_start RecordedBattle_SaveParties -RecordedBattle_SaveParties: @ 0x080F7A3C - push {r4, r5, r6, lr} - sub sp, #0xc - movs r5, #0 - movs r4, #1 - ldr r0, _080F7A60 - ldrb r1, [r0] - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - beq _080F7A68 - movs r5, #1 - ldr r1, _080F7A64 - movs r0, #8 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - b _080F7AA6 - .align 2, 0 -_080F7A60: .4byte gUnknown_2039BCA -_080F7A64: .4byte gUnknown_85693B4 -_080F7A68: - ldr r0, _080F7A7C - ldrh r2, [r0] - cmp r2, #0 - bne _080F7A84 - ldr r1, _080F7A80 - movs r0, #8 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - b _080F7AA6 - .align 2, 0 -_080F7A7C: .4byte gUnknown_2039BCE -_080F7A80: .4byte gUnknown_8569334 -_080F7A84: - cmp r2, #1 - bne _080F7A98 - ldr r1, _080F7A94 - movs r0, #8 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - b _080F7AA6 - .align 2, 0 -_080F7A94: .4byte gUnknown_8569354 -_080F7A98: - cmp r2, #2 - bne _080F7AB4 - ldr r1, _080F7AB0 - movs r0, #8 - str r0, [sp] - str r2, [sp, #4] - movs r0, #2 -_080F7AA6: - movs r2, #5 - movs r3, #1 - bl CopyToBgTilemapBufferRect - b _080F7AC6 - .align 2, 0 -_080F7AB0: .4byte gUnknown_8569374 -_080F7AB4: - ldr r1, _080F7ADC - movs r0, #8 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r2, #5 - movs r3, #1 - bl CopyToBgTilemapBufferRect -_080F7AC6: - adds r2, r5, #0 - adds r2, #0xd - movs r5, #0 - ldr r0, _080F7AE0 - ldrh r0, [r0] - cmp r0, #0 - bne _080F7AE8 - movs r6, #0 - ldr r1, _080F7AE4 - b _080F7B26 - .align 2, 0 -_080F7ADC: .4byte gUnknown_8569394 -_080F7AE0: .4byte gUnknown_2039BCC -_080F7AE4: .4byte gUnknown_85693D4 -_080F7AE8: - cmp r0, #1 - bne _080F7AF8 - movs r6, #1 - ldr r1, _080F7AF4 - b _080F7B26 - .align 2, 0 -_080F7AF4: .4byte gUnknown_85693E8 -_080F7AF8: - cmp r0, #2 - bne _080F7B1C - movs r6, #2 - subs r5, #1 - ldr r1, _080F7B18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r4, r4, #0x18 - lsrs r3, r4, #0x18 - movs r0, #5 - str r0, [sp] - str r6, [sp, #4] - movs r0, #2 - bl CopyToBgTilemapBufferRect - b _080F7B58 - .align 2, 0 -_080F7B18: .4byte gUnknown_85693FC -_080F7B1C: - cmp r0, #3 - bne _080F7B40 - movs r6, #3 - subs r5, #1 - ldr r1, _080F7B3C -_080F7B26: - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r4, r4, #0x18 - lsrs r3, r4, #0x18 - movs r0, #5 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - bl CopyToBgTilemapBufferRect - b _080F7B58 - .align 2, 0 -_080F7B3C: .4byte gUnknown_8569410 -_080F7B40: - movs r6, #4 - ldr r1, _080F7B94 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r4, r4, #0x18 - lsrs r3, r4, #0x18 - movs r0, #5 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - bl CopyToBgTilemapBufferRect -_080F7B58: - adds r2, r5, #0 - adds r2, #0x13 - ldr r1, _080F7B98 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsrs r3, r4, #0x18 - movs r0, #5 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - bl CopyToBgTilemapBufferRect - ldr r0, _080F7B9C - ldr r0, [r0] - ldr r1, [r0, #0x14] - movs r0, #0x20 - str r0, [sp] - movs r0, #4 - str r0, [sp, #4] - str r6, [sp, #8] - movs r0, #2 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBufferRect_ChangePalette - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080F7B94: .4byte gUnknown_8569424 -_080F7B98: .4byte gUnknown_8569438 -_080F7B9C: .4byte gUnknown_2039D00 - thumb_func_end RecordedBattle_SaveParties - - thumb_func_start sub_080F7BA0 -sub_080F7BA0: @ 0x080F7BA0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - ldr r1, _080F7BEC - lsrs r0, r0, #0x17 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - lsls r4, r0, #0x10 - adds r0, r4, #0 - movs r1, #0x3f - bl __udivsi3 - adds r1, r0, #0 - ldr r0, _080F7BF0 - ands r0, r1 - cmp r0, #0 - beq _080F7BCC - movs r0, #0x80 - lsls r0, r0, #9 - adds r1, r1, r0 -_080F7BCC: - lsrs r1, r1, #0x10 - cmp r1, #0 - bne _080F7BD8 - cmp r4, #0 - beq _080F7BD8 - movs r1, #1 -_080F7BD8: - cmp r5, #0 - beq _080F7BE2 - cmp r1, #0xa - bls _080F7BE2 - movs r1, #0xa -_080F7BE2: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080F7BEC: .4byte gUnknown_2039BA0 -_080F7BF0: .4byte 0x0000FFFF - thumb_func_end sub_080F7BA0 - - thumb_func_start sub_080F7BF4 -sub_080F7BF4: @ 0x080F7BF4 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - ldr r1, _080F7C54 - lsls r0, r5, #1 - adds r0, r0, r1 - movs r2, #0 - ldrsh r0, [r0, r2] - adds r7, r1, #0 - cmp r0, #0 - bge _080F7C10 - rsbs r0, r0, #0 -_080F7C10: - lsls r4, r0, #0x10 - adds r0, r4, #0 - movs r1, #0x50 - bl __udivsi3 - adds r2, r0, #0 - ldr r0, _080F7C58 - ands r0, r2 - cmp r0, #0 - beq _080F7C2A - movs r0, #0x80 - lsls r0, r0, #9 - adds r2, r2, r0 -_080F7C2A: - lsrs r2, r2, #0x10 - cmp r2, #0 - bne _080F7C36 - cmp r4, #0 - beq _080F7C36 - movs r2, #1 -_080F7C36: - cmp r6, #0 - beq _080F7C40 - cmp r2, #0xa - bls _080F7C40 - movs r2, #0xa -_080F7C40: - lsls r0, r5, #1 - adds r0, r0, r7 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bge _080F7C5C - rsbs r0, r2, #0 - lsls r0, r0, #0x18 - b _080F7C5E - .align 2, 0 -_080F7C54: .4byte gUnknown_2039BB8 -_080F7C58: .4byte 0x0000FFFF -_080F7C5C: - lsls r0, r2, #0x18 -_080F7C5E: - lsrs r0, r0, #0x18 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080F7BF4 - - thumb_func_start sub_080F7C6C -sub_080F7C6C: @ 0x080F7C6C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r1, _080F7CA8 - lsls r0, r0, #2 - add r0, r8 - lsls r0, r0, #3 - adds r7, r0, r1 - ldrh r2, [r7, #0x1c] - movs r0, #0x1c - ldrsh r6, [r7, r0] - cmp r6, #0 - bne _080F7CAC - movs r1, #8 - ldrsh r0, [r7, r1] - movs r1, #3 - subs r1, r1, r0 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - strh r0, [r7, #0x1e] - adds r0, r2, #1 - strh r0, [r7, #0x1c] - b _080F7D34 - .align 2, 0 -_080F7CA8: .4byte gUnknown_3005B60 -_080F7CAC: - cmp r6, #1 - bne _080F7D34 - ldrh r0, [r7, #0x1e] - subs r0, #1 - strh r0, [r7, #0x1e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _080F7D34 - movs r2, #8 - ldrsh r4, [r7, r2] - lsls r4, r4, #0x11 - ldr r0, _080F7D44 - adds r4, r4, r0 - lsrs r4, r4, #0x10 - movs r1, #0xa - ldrsh r0, [r7, r1] - lsls r3, r0, #1 - adds r3, r3, r0 - adds r3, #5 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r2, #2 - mov sb, r2 - str r2, [sp] - str r6, [sp, #4] - movs r5, #0x11 - str r5, [sp, #8] - str r6, [sp, #0xc] - movs r0, #2 - adds r1, r4, #0 - movs r2, #1 - bl WriteSequenceToBgTilemapBuffer - adds r4, #0x10 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - movs r1, #0xa - ldrsh r0, [r7, r1] - lsls r3, r0, #1 - adds r3, r3, r0 - adds r3, #6 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r2, sb - str r2, [sp] - str r6, [sp, #4] - str r5, [sp, #8] - str r6, [sp, #0xc] - movs r0, #2 - adds r1, r4, #0 - movs r2, #1 - bl WriteSequenceToBgTilemapBuffer - ldr r0, _080F7D48 - ldr r0, [r0] - ldr r1, [r0] - ldrb r0, [r1, #5] - adds r0, #1 - strb r0, [r1, #5] - mov r0, r8 - bl DestroyTask - movs r0, #0x18 - bl sub_080A306C -_080F7D34: - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F7D44: .4byte 0x50430000 -_080F7D48: .4byte gUnknown_2039D00 - thumb_func_end sub_080F7C6C - - thumb_func_start sub_080F7D4C -sub_080F7D4C: @ 0x080F7D4C - push {r4, r5, r6, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r4, #0 - ldr r1, _080F7DBC - ldrb r0, [r1] - ldr r6, _080F7DC0 - cmp r0, #0 - beq _080F7D6E -_080F7D60: - adds r4, #1 - cmp r4, #3 - bgt _080F7D6E - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080F7D60 -_080F7D6E: - ldr r1, [r6] - lsls r3, r4, #1 - adds r3, r3, r4 - lsls r0, r3, #6 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r0, r2 - ldr r1, [r1, #0x14] - adds r1, r1, r0 - adds r3, #4 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #0x20 - str r0, [sp] - movs r0, #3 - str r0, [sp, #4] - movs r0, #9 - str r0, [sp, #8] - movs r0, #2 - movs r2, #0 - bl CopyToBgTilemapBufferRect_ChangePalette - ldr r1, _080F7DC4 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r4, [r0, #0x1c] - movs r1, #1 - strh r1, [r0, #0x20] - ldr r1, _080F7DC8 - str r1, [r0] - ldr r0, [r6] - ldr r0, [r0] - strb r5, [r0, #3] - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080F7DBC: .4byte gUnknown_2039BC0 -_080F7DC0: .4byte gUnknown_2039D00 -_080F7DC4: .4byte gUnknown_3005B60 -_080F7DC8: .4byte sub_080F7DCC - thumb_func_end sub_080F7D4C - - thumb_func_start sub_080F7DCC -sub_080F7DCC: @ 0x080F7DCC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080F7E18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 - ldrh r0, [r4, #0x1e] - adds r0, #1 - strh r0, [r4, #0x1e] - lsls r0, r0, #0x10 - asrs r5, r0, #0x10 - cmp r5, #1 - bne _080F7E30 - movs r0, #0 - strh r0, [r4, #0x1e] - ldrh r2, [r4, #0x20] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r3, _080F7E1C - movs r0, #0x91 - movs r1, #1 - bl BlendPalette - movs r1, #0x22 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080F7E20 - ldrh r0, [r4, #0x20] - adds r0, #1 - strh r0, [r4, #0x20] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x10 - bne _080F7E30 - strh r5, [r4, #0x22] - b _080F7E30 - .align 2, 0 -_080F7E18: .4byte gUnknown_3005B60 -_080F7E1C: .4byte 0x00006F8D -_080F7E20: - ldrh r0, [r4, #0x20] - subs r0, #1 - strh r0, [r4, #0x20] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bne _080F7E30 - strh r0, [r4, #0x22] -_080F7E30: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080F7DCC - - thumb_func_start sub_080F7E38 -sub_080F7E38: @ 0x080F7E38 - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x2e] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r0, #9 - bgt _080F7E60 - adds r0, r1, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xa - bne _080F7EA0 - ldrh r0, [r4, #0x30] - movs r1, #0 - bl PlayCry1 - movs r0, #0 - strh r0, [r4, #0x30] - b _080F7EA0 -_080F7E60: - movs r0, #0xc0 - lsls r0, r0, #3 - adds r2, r0, #0 - ldrh r1, [r4, #0x30] - adds r2, r2, r1 - lsls r1, r2, #0x10 - asrs r1, r1, #0x18 - ldrh r0, [r4, #0x20] - subs r0, r0, r1 - strh r0, [r4, #0x20] - movs r1, #0xff - ands r2, r1 - strh r2, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x77 - bgt _080F7E86 - movs r0, #0x78 - strh r0, [r4, #0x20] -_080F7E86: - movs r2, #0x20 - ldrsh r0, [r4, r2] - cmp r0, #0x78 - bne _080F7EA0 - ldr r0, _080F7EA8 - str r0, [r4, #0x1c] - movs r0, #0 - strh r0, [r4, #0x30] - ldr r0, _080F7EAC - ldr r0, [r0] - ldr r1, [r0] - movs r0, #1 - strb r0, [r1, #6] -_080F7EA0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F7EA8: .4byte sub_08007140 -_080F7EAC: .4byte gUnknown_2039D00 - thumb_func_end sub_080F7E38 - - thumb_func_start sub_080F7EB0 -sub_080F7EB0: @ 0x080F7EB0 - push {lr} - adds r3, r0, #0 - movs r0, #0xc0 - lsls r0, r0, #3 - adds r2, r0, #0 - ldrh r0, [r3, #0x30] - adds r2, r2, r0 - lsls r1, r2, #0x10 - asrs r1, r1, #0x18 - ldrh r0, [r3, #0x20] - subs r0, r0, r1 - strh r0, [r3, #0x20] - movs r1, #0xff - ands r2, r1 - strh r2, [r3, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x20 - rsbs r1, r1, #0 - cmp r0, r1 - bge _080F7EF4 - ldr r0, _080F7EF8 - str r0, [r3, #0x1c] - adds r2, r3, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080F7EFC - ldr r0, [r0] - ldr r1, [r0] - movs r0, #2 - strb r0, [r1, #6] -_080F7EF4: - pop {r0} - bx r0 - .align 2, 0 -_080F7EF8: .4byte sub_08007140 -_080F7EFC: .4byte gUnknown_2039D00 - thumb_func_end sub_080F7EB0 - - thumb_func_start sub_080F7F00 -sub_080F7F00: @ 0x080F7F00 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r1, _080F7FE0 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r1, r0, r1 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #5 - bne _080F7FC2 - movs r0, #0 - strh r0, [r1, #8] - ldr r0, _080F7FE4 - mov r8, r0 - ldr r0, [r0] - ldr r0, [r0] - ldrb r0, [r0, #7] - cmp r0, #0x27 - bhi _080F7FC2 - ldr r4, _080F7FE8 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xf0 - bl __umodsi3 - adds r1, r0, #0 - subs r1, #0x14 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r4, #0 - movs r2, #0x2c - movs r3, #5 - bl CreateSprite - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl Random - ldr r1, _080F7FEC - lsls r5, r4, #4 - adds r5, r5, r4 - lsls r5, r5, #2 - adds r5, r5, r1 - lsls r0, r0, #0x17 - lsrs r0, r0, #0x17 - strh r0, [r5, #0x2e] - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x18 - bl __umodsi3 - adds r0, #0x10 - strh r0, [r5, #0x30] - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xff - ands r0, r1 - adds r0, #0x30 - strh r0, [r5, #0x32] - bl Random - ldrh r6, [r5, #4] - lsls r4, r6, #0x16 - lsrs r4, r4, #0x16 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x11 - bl __umodsi3 - adds r4, r4, r0 - ldr r1, _080F7FF0 - adds r0, r1, #0 - ands r4, r0 - ldr r0, _080F7FF4 - ands r0, r6 - orrs r0, r4 - strh r0, [r5, #4] - mov r1, r8 - ldr r0, [r1] - ldr r1, [r0] - ldrb r0, [r1, #7] - adds r0, #1 - strb r0, [r1, #7] -_080F7FC2: - ldr r0, _080F7FE4 - ldr r0, [r0] - ldr r0, [r0] - ldrb r0, [r0, #9] - cmp r0, #0 - beq _080F7FD4 - adds r0, r7, #0 - bl DestroyTask -_080F7FD4: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F7FE0: .4byte gUnknown_3005B60 -_080F7FE4: .4byte gUnknown_2039D00 -_080F7FE8: .4byte gUnknown_856930C -_080F7FEC: .4byte gUnknown_20205AC -_080F7FF0: .4byte 0x000003FF -_080F7FF4: .4byte 0xFFFFFC00 - thumb_func_end sub_080F7F00 - - thumb_func_start sub_080F7FF8 -sub_080F7FF8: @ 0x080F7FF8 - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - ldrh r1, [r4, #0x34] - adds r0, r0, r1 - strh r0, [r4, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - movs r2, #0x30 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, #0x24] - ldrh r1, [r4, #0x32] - ldrh r0, [r4, #0x36] - adds r1, r1, r0 - lsls r0, r1, #0x10 - asrs r0, r0, #0x18 - ldrh r2, [r4, #0x20] - adds r0, r0, r2 - strh r0, [r4, #0x20] - movs r0, #0xff - ands r1, r0 - strh r1, [r4, #0x36] - ldrh r0, [r4, #0x22] - adds r0, #1 - strh r0, [r4, #0x22] - ldr r5, _080F806C - ldr r0, [r5] - ldr r0, [r0] - ldrb r0, [r0, #9] - cmp r0, #0 - beq _080F8046 - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] -_080F8046: - movs r1, #0x20 - ldrsh r0, [r4, r1] - cmp r0, #0xf8 - bgt _080F8056 - movs r2, #0x22 - ldrsh r0, [r4, r2] - cmp r0, #0x74 - ble _080F8066 -_080F8056: - adds r0, r4, #0 - bl DestroySprite - ldr r0, [r5] - ldr r1, [r0] - ldrb r0, [r1, #7] - subs r0, #1 - strb r0, [r1, #7] -_080F8066: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080F806C: .4byte gUnknown_2039D00 - thumb_func_end sub_080F7FF8 - - thumb_func_start sub_080F8070 -sub_080F8070: @ 0x080F8070 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _080F80A8 - movs r1, #8 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080F80AC - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #8] - strh r5, [r1, #0xa] - ldr r0, _080F80B0 - lsls r4, r4, #6 - adds r4, r4, r0 - ldrh r0, [r4] - strh r0, [r1, #0xc] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080F80A8: .4byte sub_080F80B4 -_080F80AC: .4byte gUnknown_3005B60 -_080F80B0: .4byte gUnknown_2039AA0 - thumb_func_end sub_080F8070 - - thumb_func_start sub_080F80B4 -sub_080F80B4: @ 0x080F80B4 - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080F8108 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 - ldrb r5, [r4, #8] - ldrh r0, [r4, #0x1c] - adds r1, r0, #1 - strh r1, [r4, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0xa - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _080F80FE - movs r0, #0 - strh r0, [r4, #0x1c] - ldrh r0, [r4, #0xc] - ldrb r2, [r4, #0x1e] - ldr r1, _080F810C - lsls r3, r5, #6 - adds r1, #0x38 - adds r3, r3, r1 - ldr r1, [r3] - str r1, [sp] - adds r1, r5, #0 - movs r3, #0 - bl sub_080F71DC - ldrh r0, [r4, #0x1e] - movs r1, #1 - eors r0, r1 - strh r0, [r4, #0x1e] -_080F80FE: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080F8108: .4byte gUnknown_3005B60 -_080F810C: .4byte gUnknown_2039AA0 - thumb_func_end sub_080F80B4 - - thumb_func_start sub_080F8110 -sub_080F8110: @ 0x080F8110 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - ldr r0, _080F82D4 - ldrh r2, [r0] - adds r4, r0, #0 - adds r3, r4, #2 - movs r0, #2 - mov r8, r0 -_080F8128: - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - movs r5, #0 - ldrsh r1, [r3, r5] - cmp r0, r1 - bge _080F8136 - ldrh r2, [r3] -_080F8136: - adds r3, #2 - movs r0, #1 - rsbs r0, r0, #0 - add r8, r0 - mov r1, r8 - cmp r1, #0 - bge _080F8128 - lsls r0, r2, #0x10 - str r0, [sp] - cmp r0, #0 - bge _080F8174 - ldrh r2, [r4] - adds r3, r4, #2 - movs r4, #2 - mov r8, r4 -_080F8154: - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - movs r5, #0 - ldrsh r1, [r3, r5] - cmp r0, r1 - ble _080F8162 - ldrh r2, [r3] -_080F8162: - adds r3, #2 - movs r0, #1 - rsbs r0, r0, #0 - add r8, r0 - lsls r1, r2, #0x10 - str r1, [sp] - mov r4, r8 - cmp r4, #0 - bge _080F8154 -_080F8174: - movs r5, #0 - mov r8, r5 - mov sl, r5 -_080F817A: - ldr r0, _080F82D8 - mov r1, r8 - lsls r7, r1, #1 - adds r0, r7, r0 - movs r2, #0 - ldrsh r1, [r0, r2] - lsls r0, r1, #5 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - ldr r4, [sp] - asrs r5, r4, #0x10 - adds r1, r5, #0 - cmp r5, #0 - bge _080F819C - rsbs r1, r5, #0 -_080F819C: - bl __divsi3 - adds r4, r0, #0 - movs r1, #0xa - bl __modsi3 - cmp r0, #4 - ble _080F81AE - adds r4, #0xa -_080F81AE: - ldr r0, _080F82DC - mov sb, r0 - ldr r0, [r0] - ldr r0, [r0, #4] - mov r1, sl - adds r6, r1, r0 - adds r0, r4, #0 - movs r1, #0xa - bl __divsi3 - str r0, [r6] - ldr r0, _080F82E0 - adds r7, r7, r0 - movs r2, #0 - ldrsh r1, [r7, r2] - cmp r1, #0 - bge _080F81D2 - rsbs r1, r1, #0 -_080F81D2: - lsls r0, r1, #5 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r1, r5, #0 - cmp r1, #0 - bge _080F81E4 - rsbs r1, r1, #0 -_080F81E4: - bl __divsi3 - adds r4, r0, #0 - movs r1, #0xa - bl __modsi3 - cmp r0, #4 - ble _080F81F6 - adds r4, #0xa -_080F81F6: - adds r0, r4, #0 - movs r1, #0xa - bl __divsi3 - str r0, [r6, #4] - movs r4, #0 - ldrsh r0, [r7, r4] - cmp r0, #0 - bge _080F820C - movs r0, #1 - strb r0, [r6, #0x10] -_080F820C: - mov r5, sb - ldr r0, [r5] - ldr r0, [r0, #4] - mov r1, sl - adds r4, r1, r0 - ldr r1, [r4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - subs r0, r0, r1 - lsls r0, r0, #0xb - movs r1, #0x64 - bl __divsi3 - adds r1, r0, #0 - movs r5, #0xff - ands r0, r5 - cmp r0, #0x7f - bls _080F8238 - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r1, r2 -_080F8238: - lsrs r0, r1, #8 - str r0, [r4, #8] - ldr r1, [r4, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - subs r0, r0, r1 - lsls r0, r0, #0xb - movs r1, #0x64 - bl __divsi3 - adds r1, r0, #0 - ands r0, r5 - cmp r0, #0x7f - bls _080F825C - movs r5, #0x80 - lsls r5, r5, #1 - adds r1, r1, r5 -_080F825C: - lsrs r0, r1, #8 - str r0, [r4, #0xc] - mov r0, r8 - lsls r4, r0, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #1 - bl sub_080F7BA0 - mov r2, sb - ldr r1, [r2] - ldr r1, [r1, #4] - add r1, sl - strb r0, [r1, #0x11] - adds r0, r4, #0 - movs r1, #1 - bl sub_080F7BF4 - mov r4, sb - ldr r1, [r4] - ldr r1, [r1, #4] - add r1, sl - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bge _080F8292 - rsbs r0, r0, #0 -_080F8292: - strb r0, [r1, #0x12] - ldr r0, _080F82E4 - add r0, r8 - ldrb r0, [r0] - cmp r0, #0 - beq _080F82F0 - mov r5, sb - ldr r0, [r5] - ldr r0, [r0, #4] - mov r2, sl - adds r1, r2, r0 - ldr r5, [r1, #8] - ldrh r3, [r1, #8] - ldr r4, [r1, #0xc] - ldrh r2, [r1, #0xc] - ldrb r0, [r1, #0x10] - cmp r0, #0 - beq _080F82BC - lsls r0, r2, #0x10 - rsbs r0, r0, #0 - lsrs r2, r0, #0x10 -_080F82BC: - lsls r0, r3, #0x10 - asrs r3, r0, #0x10 - lsls r0, r2, #0x10 - asrs r2, r0, #0x10 - adds r0, r3, r2 - cmp r0, #0x58 - bne _080F82F0 - cmp r2, #0 - ble _080F82E8 - subs r0, r4, #1 - str r0, [r1, #0xc] - b _080F82F0 - .align 2, 0 -_080F82D4: .4byte gUnknown_2039BA8 -_080F82D8: .4byte gUnknown_2039BA0 -_080F82DC: .4byte gUnknown_2039D00 -_080F82E0: .4byte gUnknown_2039BB8 -_080F82E4: .4byte gUnknown_2039BC0 -_080F82E8: - cmp r3, #0 - ble _080F82F0 - subs r0, r5, #1 - str r0, [r1, #8] -_080F82F0: - movs r4, #0x14 - add sl, r4 - movs r5, #1 - add r8, r5 - mov r0, r8 - cmp r0, #3 - bgt _080F8300 - b _080F817A -_080F8300: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_080F8110 - - thumb_func_start sub_080F8310 -sub_080F8310: @ 0x080F8310 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - movs r1, #0 - str r1, [sp, #8] - movs r3, #0 - str r3, [sp, #0xc] - cmp r0, #0 - bne _080F83EC - mov sb, r3 - ldr r4, _080F83D4 - mov sl, r4 - movs r7, #0xa0 - lsls r7, r7, #0x13 - movs r6, #0 -_080F833C: - mov r1, sl - ldr r0, [r1] - ldr r0, [r0, #4] - adds r0, r6, r0 - ldrb r2, [r0, #0x11] - cmp r8, r2 - bhs _080F83BE - adds r2, #0x13 - mov r3, r8 - subs r2, r2, r3 - subs r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsrs r3, r7, #0x18 - movs r0, #1 - str r0, [sp] - str r0, [sp, #4] - ldr r1, _080F83D8 - bl FillBgTilemapBufferRect_Palette0 - ldr r0, _080F83DC - movs r1, #0xa - bl CreateTask - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - mov r0, sl - ldr r4, [r0] - ldr r1, [r4, #4] - adds r1, r6, r1 - ldr r0, [r1, #8] - lsls r0, r0, #0x10 - ldrb r1, [r1, #0x11] - bl __udivsi3 - mov r1, r8 - adds r1, #1 - adds r3, r0, #0 - muls r3, r1, r3 - ldr r0, _080F83E0 - ands r0, r3 - ldr r1, _080F83E4 - cmp r0, r1 - bls _080F839A - movs r1, #0x80 - lsls r1, r1, #9 - adds r3, r3, r1 -_080F839A: - ldr r1, _080F83E8 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - mov r1, sb - strh r1, [r0, #8] - lsrs r1, r3, #0x10 - strh r1, [r0, #0xa] - ldr r1, [r4] - ldrb r0, [r1, #0x14] - adds r0, #1 - strb r0, [r1, #0x14] - ldr r0, [sp, #8] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #8] -_080F83BE: - movs r3, #0xc0 - lsls r3, r3, #0x12 - adds r7, r7, r3 - adds r6, #0x14 - movs r4, #1 - add sb, r4 - mov r0, sb - cmp r0, #3 - ble _080F833C - b _080F850E - .align 2, 0 -_080F83D4: .4byte gUnknown_2039D00 -_080F83D8: .4byte 0x000060B3 -_080F83DC: .4byte sub_080F8538 -_080F83E0: .4byte 0x0000FFFF -_080F83E4: .4byte 0x00007FFF -_080F83E8: .4byte gUnknown_3005B60 -_080F83EC: - movs r1, #0 - mov sb, r1 - mov sl, r1 - movs r3, #0xc0 - lsls r3, r3, #0x13 - str r3, [sp, #0x10] -_080F83F8: - ldr r4, _080F8494 - ldr r0, [r4] - ldr r0, [r0, #4] - add r0, sl - ldrb r2, [r0, #0x12] - ldrb r0, [r0, #0x10] - ldr r1, _080F8498 - cmp r0, #0 - beq _080F840C - adds r1, #2 -_080F840C: - lsls r0, r2, #0x18 - asrs r0, r0, #0x18 - cmp r8, r0 - bge _080F84F4 - mov r3, r8 - lsls r2, r3, #0x18 - asrs r2, r2, #0x18 - subs r2, #0x13 - subs r2, r0, r2 - subs r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r4, [sp, #0x10] - lsrs r3, r4, #0x18 - movs r7, #1 - str r7, [sp] - str r7, [sp, #4] - movs r0, #1 - bl FillBgTilemapBufferRect_Palette0 - ldr r0, _080F849C - movs r1, #0xa - bl CreateTask - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _080F8494 - ldr r6, [r0] - ldr r1, [r6, #4] - add r1, sl - ldr r0, [r1, #0xc] - lsls r0, r0, #0x10 - ldrb r1, [r1, #0x12] - bl __udivsi3 - mov r1, r8 - adds r1, #1 - adds r3, r0, #0 - muls r3, r1, r3 - ldr r0, _080F84A0 - ands r0, r3 - ldr r1, _080F84A4 - cmp r0, r1 - bls _080F846A - movs r1, #0x80 - lsls r1, r1, #9 - adds r3, r3, r1 -_080F846A: - ldr r1, _080F84A8 - lsls r2, r5, #2 - adds r0, r2, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - mov r0, sb - strh r0, [r4, #8] - ldr r0, [r6, #4] - add r0, sl - ldrb r0, [r0, #0x10] - adds r6, r1, #0 - cmp r0, #0 - beq _080F84AC - strh r7, [r4, #0xc] - ldr r0, [sp, #0xc] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0xc] - b _080F84B6 - .align 2, 0 -_080F8494: .4byte gUnknown_2039D00 -_080F8498: .4byte 0x000060A3 -_080F849C: .4byte sub_080F8538 -_080F84A0: .4byte 0x0000FFFF -_080F84A4: .4byte 0x00007FFF -_080F84A8: .4byte gUnknown_3005B60 -_080F84AC: - ldr r0, [sp, #8] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #8] -_080F84B6: - ldr r1, _080F84D8 - ldr r0, [r1] - ldr r0, [r0, #4] - mov r4, sl - adds r1, r4, r0 - ldrb r0, [r1, #0x10] - ldr r4, _080F84D8 - cmp r0, #0 - beq _080F84DC - adds r0, r2, r5 - lsls r0, r0, #3 - adds r0, r0, r6 - lsrs r2, r3, #0x10 - ldr r1, [r1, #8] - subs r1, r1, r2 - b _080F84E8 - .align 2, 0 -_080F84D8: .4byte gUnknown_2039D00 -_080F84DC: - adds r0, r2, r5 - lsls r0, r0, #3 - adds r0, r0, r6 - lsrs r2, r3, #0x10 - ldr r1, [r1, #8] - adds r1, r1, r2 -_080F84E8: - strh r1, [r0, #0xa] - ldr r0, [r4] - ldr r1, [r0] - ldrb r0, [r1, #0x14] - adds r0, #1 - strb r0, [r1, #0x14] -_080F84F4: - movs r0, #0x14 - add sl, r0 - ldr r1, [sp, #0x10] - movs r3, #0xc0 - lsls r3, r3, #0x12 - adds r1, r1, r3 - str r1, [sp, #0x10] - movs r4, #1 - add sb, r4 - mov r0, sb - cmp r0, #3 - bgt _080F850E - b _080F83F8 -_080F850E: - ldr r1, [sp, #0xc] - cmp r1, #0 - beq _080F851A - movs r0, #0x16 - bl sub_080A306C -_080F851A: - ldr r3, [sp, #8] - cmp r3, #0 - beq _080F8526 - movs r0, #0x15 - bl sub_080A306C -_080F8526: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080F8310 - - thumb_func_start sub_080F8538 -sub_080F8538: @ 0x080F8538 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r4, #0 - mov sb, r4 - ldr r1, _080F8580 - lsls r0, r0, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r6, [r0, #8] - ldrh r7, [r0, #0xa] - ldrh r1, [r0, #0xc] - mov ip, r1 - movs r2, #0xc - ldrsh r0, [r0, r2] - cmp r0, #0 - beq _080F8588 - ldr r2, _080F8584 - ldr r0, [r2] - ldr r0, [r0] - lsls r1, r6, #1 - adds r0, #0xc - adds r0, r0, r1 - movs r3, #0 - ldrsh r0, [r0, r3] - adds r5, r1, #0 - cmp r0, #0 - bgt _080F85A0 - b _080F859E - .align 2, 0 -_080F8580: .4byte gUnknown_3005B60 -_080F8584: .4byte gUnknown_2039D00 -_080F8588: - ldr r2, _080F85C8 - ldr r0, [r2] - ldr r0, [r0] - lsls r1, r6, #1 - adds r0, #0xc - adds r0, r0, r1 - movs r3, #0 - ldrsh r0, [r0, r3] - adds r5, r1, #0 - cmp r0, #0x57 - ble _080F85A0 -_080F859E: - movs r4, #1 -_080F85A0: - ldr r0, [r2] - ldr r0, [r0] - adds r0, #0xc - adds r2, r0, r5 - ldrh r3, [r2] - movs r0, #0 - ldrsh r1, [r2, r0] - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - cmp r1, r0 - bne _080F85BA - movs r1, #1 - mov sb, r1 -_080F85BA: - mov r0, sb - cmp r0, #0 - bne _080F85DA - cmp r4, #0 - beq _080F85CC - strh r7, [r2] - b _080F85DA - .align 2, 0 -_080F85C8: .4byte gUnknown_2039D00 -_080F85CC: - mov r1, ip - cmp r1, #0 - beq _080F85D6 - subs r0, r3, #1 - b _080F85D8 -_080F85D6: - adds r0, r3, #1 -_080F85D8: - strh r0, [r2] -_080F85DA: - cmp r4, #0 - bne _080F8654 - mov r2, sb - cmp r2, #0 - bne _080F865A - movs r2, #0 -_080F85E6: - ldr r0, _080F8604 - ldr r0, [r0] - ldr r0, [r0] - adds r0, #0xc - adds r0, r0, r5 - movs r1, #0 - ldrsh r3, [r0, r1] - adds r0, r2, #1 - lsls r1, r0, #3 - adds r4, r0, #0 - cmp r3, r1 - blt _080F8608 - movs r0, #8 - b _080F8624 - .align 2, 0 -_080F8604: .4byte gUnknown_2039D00 -_080F8608: - lsls r0, r2, #3 - cmp r3, r0 - blt _080F8622 - adds r0, r3, #0 - cmp r3, #0 - bge _080F8616 - adds r0, r3, #7 -_080F8616: - asrs r0, r0, #3 - lsls r0, r0, #3 - subs r0, r3, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _080F8624 -_080F8622: - movs r0, #0 -_080F8624: - cmp r0, #3 - bhi _080F8630 - ldr r3, _080F862C - b _080F8632 - .align 2, 0 -_080F862C: .4byte 0x0000504C -_080F8630: - ldr r3, _080F867C -_080F8632: - adds r1, r0, r3 - adds r2, #7 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r3, r5, r6 - adds r3, #6 - lsls r3, r3, #0x18 - movs r0, #1 - str r0, [sp] - str r0, [sp, #4] - movs r0, #2 - lsrs r3, r3, #0x18 - bl FillBgTilemapBufferRect_Palette0 - adds r2, r4, #0 - cmp r2, #0xa - ble _080F85E6 -_080F8654: - mov r0, sb - cmp r0, #0 - beq _080F866C -_080F865A: - ldr r0, _080F8680 - ldr r0, [r0] - ldr r1, [r0] - ldrb r0, [r1, #0x14] - subs r0, #1 - strb r0, [r1, #0x14] - mov r0, r8 - bl DestroyTask -_080F866C: - add sp, #8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F867C: .4byte 0x00005057 -_080F8680: .4byte gUnknown_2039D00 - thumb_func_end sub_080F8538 - - thumb_func_start sub_080F8684 -sub_080F8684: @ 0x080F8684 - push {r4, r5, lr} - ldr r4, _080F86F0 - movs r0, #0x20 - bl AllocZeroed - str r0, [r4] - movs r0, #0x18 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1] - movs r0, #0x50 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, #4] - movs r5, #0x80 - lsls r5, r5, #4 - adds r0, r5, #0 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, #8] - adds r0, r5, #0 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, #0xc] - adds r0, r5, #0 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, #0x10] - adds r0, r5, #0 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, #0x14] - adds r0, r5, #0 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, #0x18] - movs r0, #0x80 - lsls r0, r0, #5 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, #0x1c] - bl AllocateMonSpritesGfx - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080F86F0: .4byte gUnknown_2039D00 - thumb_func_end sub_080F8684 - - thumb_func_start sub_080F86F4 -sub_080F86F4: @ 0x080F86F4 - push {r4, r5, lr} - ldr r5, _080F875C - ldr r0, [r5] - ldr r0, [r0] - bl Free - ldr r0, [r5] - movs r4, #0 - str r4, [r0] - ldr r0, [r0, #4] - bl Free - ldr r0, [r5] - str r4, [r0, #4] - ldr r0, [r0, #8] - bl Free - ldr r0, [r5] - str r4, [r0, #8] - ldr r0, [r0, #0xc] - bl Free - ldr r0, [r5] - str r4, [r0, #0xc] - ldr r0, [r0, #0x10] - bl Free - ldr r0, [r5] - str r4, [r0, #0x10] - ldr r0, [r0, #0x14] - bl Free - ldr r0, [r5] - str r4, [r0, #0x14] - ldr r0, [r0, #0x18] - bl Free - ldr r0, [r5] - str r4, [r0, #0x18] - ldr r0, [r0, #0x1c] - bl Free - ldr r0, [r5] - str r4, [r0, #0x1c] - bl Free - str r4, [r5] - bl FreeMonSpritesGfx - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080F875C: .4byte gUnknown_2039D00 - thumb_func_end sub_080F86F4 - - thumb_func_start sub_080F8760 -sub_080F8760: @ 0x080F8760 - push {r4, lr} - sub sp, #0x10 - adds r4, r0, #0 - str r1, [sp] - mov r0, sp - movs r2, #0 - strb r4, [r0, #4] - mov r1, sp - movs r0, #1 - strb r0, [r1, #5] - mov r0, sp - strb r2, [r0, #6] - movs r1, #2 - strb r1, [r0, #7] - strb r2, [r0, #8] - strb r1, [r0, #9] - strb r2, [r0, #0xa] - strb r2, [r0, #0xb] - mov r3, sp - ldrb r2, [r3, #0xc] - subs r1, #0x12 - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3, #0xc] - mov r2, sp - movs r0, #0x10 - strb r0, [r2, #0xc] - ldrb r0, [r2, #0xd] - ands r1, r0 - strb r1, [r2, #0xd] - mov r1, sp - movs r0, #0x80 - strb r0, [r1, #0xd] - mov r0, sp - movs r1, #0 - movs r2, #0 - bl AddTextPrinter - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl PutWindowTilemap - add sp, #0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080F8760 - - thumb_func_start sub_080F87C0 -sub_080F87C0: @ 0x080F87C0 - push {r4, r5, lr} - ldr r0, _080F87F8 - ldrb r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _080F87FC - adds r0, r0, r1 - bl sub_080DA58C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - cmp r5, #0 - beq _080F87EE - ldr r4, _080F8800 - ldrb r0, [r4] - ldr r1, _080F8804 - ldrb r1, [r1] - bl sub_080DA330 - ldrb r0, [r4] - bl sub_080DA800 -_080F87EE: - ldr r0, _080F8808 - strh r5, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080F87F8: .4byte gUnknown_2039BC4 -_080F87FC: .4byte gUnknown_2024190 -_080F8800: .4byte gUnknown_2039BCC -_080F8804: .4byte gUnknown_2039BCE -_080F8808: .4byte gUnknown_2037290 - thumb_func_end sub_080F87C0 - - thumb_func_start sub_080F880C -sub_080F880C: @ 0x080F880C - push {r4, lr} - movs r4, #0 - ldr r0, _080F8830 - ldrb r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _080F8834 - adds r2, r1, r0 - ldr r0, _080F8838 - ldrh r0, [r0] - cmp r0, #4 - bhi _080F887E - lsls r0, r0, #2 - ldr r1, _080F883C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F8830: .4byte gUnknown_2039BC4 -_080F8834: .4byte gUnknown_2024190 -_080F8838: .4byte gUnknown_2039BCC -_080F883C: .4byte _080F8840 -_080F8840: @ jump table - .4byte _080F8854 @ case 0 - .4byte _080F885A @ case 1 - .4byte _080F8860 @ case 2 - .4byte _080F8866 @ case 3 - .4byte _080F886C @ case 4 -_080F8854: - adds r0, r2, #0 - movs r1, #0x32 - b _080F8870 -_080F885A: - adds r0, r2, #0 - movs r1, #0x33 - b _080F8870 -_080F8860: - adds r0, r2, #0 - movs r1, #0x34 - b _080F8870 -_080F8866: - adds r0, r2, #0 - movs r1, #0x35 - b _080F8870 -_080F886C: - adds r0, r2, #0 - movs r1, #0x36 -_080F8870: - bl GetMonData - ldr r1, _080F8888 - ldrh r1, [r1] - cmp r0, r1 - bls _080F887E - movs r4, #1 -_080F887E: - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080F8888: .4byte gUnknown_2039BCE - thumb_func_end sub_080F880C - - thumb_func_start sub_080F888C -sub_080F888C: @ 0x080F888C - push {r4, r5, r6, r7, lr} - sub sp, #4 - ldr r1, _080F88B4 - ldr r0, _080F88B8 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _080F88A0 - b _080F8AE0 -_080F88A0: - ldr r0, _080F88BC - ldrh r0, [r0] - cmp r0, #4 - bls _080F88AA - b _080F8AE0 -_080F88AA: - lsls r0, r0, #2 - ldr r1, _080F88C0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F88B4: .4byte gUnknown_2039BC0 -_080F88B8: .4byte gUnknown_2039BC5 -_080F88BC: .4byte gUnknown_2039BCC -_080F88C0: .4byte _080F88C4 -_080F88C4: @ jump table - .4byte _080F88D8 @ case 0 - .4byte _080F8948 @ case 1 - .4byte _080F89B4 @ case 2 - .4byte _080F8A20 @ case 3 - .4byte _080F8A88 @ case 4 -_080F88D8: - ldr r6, _080F893C - ldrb r0, [r6] - movs r5, #0x64 - muls r0, r5, r0 - ldr r4, _080F8940 - adds r0, r0, r4 - movs r1, #0x32 - bl GetMonData - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - mov r0, sp - strb r1, [r0] - ldr r0, _080F8944 - ldrh r0, [r0] - cmp r1, r0 - bls _080F88FC - b _080F8AE0 -_080F88FC: - adds r0, r1, #0 - cmp r0, #3 - bls _080F8904 - b _080F8AE0 -_080F8904: - adds r1, r0, #1 - mov r0, sp - strb r1, [r0] - ldrb r0, [r6] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #0x32 - mov r2, sp - bl SetMonData - ldrb r0, [r6] - muls r0, r5, r0 - adds r0, r0, r4 - bl GetRibbonCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _080F892C - b _080F8AE0 -_080F892C: - ldrb r0, [r6] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #0x32 - bl sub_080EEFFC - b _080F8AE0 - .align 2, 0 -_080F893C: .4byte gUnknown_2039BC4 -_080F8940: .4byte gUnknown_2024190 -_080F8944: .4byte gUnknown_2039BCE -_080F8948: - mov r4, sp - ldr r7, _080F89A8 - ldrb r0, [r7] - movs r6, #0x64 - muls r0, r6, r0 - ldr r5, _080F89AC - adds r0, r0, r5 - movs r1, #0x33 - bl GetMonData - strb r0, [r4] - mov r0, sp - ldrb r2, [r0] - ldr r0, _080F89B0 - ldrh r0, [r0] - cmp r2, r0 - bls _080F896C - b _080F8AE0 -_080F896C: - cmp r2, #3 - bls _080F8972 - b _080F8AE0 -_080F8972: - mov r1, sp - adds r0, r2, #1 - strb r0, [r1] - ldrb r0, [r7] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #0x33 - mov r2, sp - bl SetMonData - ldrb r0, [r7] - muls r0, r6, r0 - adds r0, r0, r5 - bl GetRibbonCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _080F899A - b _080F8AE0 -_080F899A: - ldrb r0, [r7] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #0x33 - bl sub_080EEFFC - b _080F8AE0 - .align 2, 0 -_080F89A8: .4byte gUnknown_2039BC4 -_080F89AC: .4byte gUnknown_2024190 -_080F89B0: .4byte gUnknown_2039BCE -_080F89B4: - mov r4, sp - ldr r7, _080F8A14 - ldrb r0, [r7] - movs r6, #0x64 - muls r0, r6, r0 - ldr r5, _080F8A18 - adds r0, r0, r5 - movs r1, #0x34 - bl GetMonData - strb r0, [r4] - mov r0, sp - ldrb r2, [r0] - ldr r0, _080F8A1C - ldrh r0, [r0] - cmp r2, r0 - bls _080F89D8 - b _080F8AE0 -_080F89D8: - cmp r2, #3 - bls _080F89DE - b _080F8AE0 -_080F89DE: - mov r1, sp - adds r0, r2, #1 - strb r0, [r1] - ldrb r0, [r7] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #0x34 - mov r2, sp - bl SetMonData - ldrb r0, [r7] - muls r0, r6, r0 - adds r0, r0, r5 - bl GetRibbonCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bls _080F8AE0 - ldrb r0, [r7] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #0x34 - bl sub_080EEFFC - b _080F8AE0 - .align 2, 0 -_080F8A14: .4byte gUnknown_2039BC4 -_080F8A18: .4byte gUnknown_2024190 -_080F8A1C: .4byte gUnknown_2039BCE -_080F8A20: - mov r4, sp - ldr r7, _080F8A7C - ldrb r0, [r7] - movs r6, #0x64 - muls r0, r6, r0 - ldr r5, _080F8A80 - adds r0, r0, r5 - movs r1, #0x35 - bl GetMonData - strb r0, [r4] - mov r0, sp - ldrb r2, [r0] - ldr r0, _080F8A84 - ldrh r0, [r0] - cmp r2, r0 - bhi _080F8AE0 - cmp r2, #3 - bhi _080F8AE0 - mov r1, sp - adds r0, r2, #1 - strb r0, [r1] - ldrb r0, [r7] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #0x35 - mov r2, sp - bl SetMonData - ldrb r0, [r7] - muls r0, r6, r0 - adds r0, r0, r5 - bl GetRibbonCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bls _080F8AE0 - ldrb r0, [r7] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #0x35 - bl sub_080EEFFC - b _080F8AE0 - .align 2, 0 -_080F8A7C: .4byte gUnknown_2039BC4 -_080F8A80: .4byte gUnknown_2024190 -_080F8A84: .4byte gUnknown_2039BCE -_080F8A88: - mov r4, sp - ldr r7, _080F8AE8 - ldrb r0, [r7] - movs r6, #0x64 - muls r0, r6, r0 - ldr r5, _080F8AEC - adds r0, r0, r5 - movs r1, #0x36 - bl GetMonData - strb r0, [r4] - mov r0, sp - ldrb r2, [r0] - ldr r0, _080F8AF0 - ldrh r0, [r0] - cmp r2, r0 - bhi _080F8AE0 - cmp r2, #3 - bhi _080F8AE0 - mov r1, sp - adds r0, r2, #1 - strb r0, [r1] - ldrb r0, [r7] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #0x36 - mov r2, sp - bl SetMonData - ldrb r0, [r7] - muls r0, r6, r0 - adds r0, r0, r5 - bl GetRibbonCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bls _080F8AE0 - ldrb r0, [r7] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #0x36 - bl sub_080EEFFC -_080F8AE0: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F8AE8: .4byte gUnknown_2039BC4 -_080F8AEC: .4byte gUnknown_2024190 -_080F8AF0: .4byte gUnknown_2039BCE - thumb_func_end sub_080F888C - - thumb_func_start sub_080F8AF4 -sub_080F8AF4: @ 0x080F8AF4 - push {lr} - ldr r0, _080F8B0C - ldr r1, _080F8B10 - ldrh r1, [r1] - lsls r1, r1, #6 - ldr r2, _080F8B14 - adds r1, r1, r2 - bl StringCopy - pop {r0} - bx r0 - .align 2, 0 -_080F8B0C: .4byte gUnknown_2021C40 -_080F8B10: .4byte gUnknown_2037284 -_080F8B14: .4byte gUnknown_2039AAD - thumb_func_end sub_080F8AF4 - - thumb_func_start sub_080F8B18 -sub_080F8B18: @ 0x080F8B18 - push {lr} - ldr r0, _080F8B30 - ldr r1, _080F8B34 - ldrh r1, [r1] - lsls r1, r1, #6 - ldr r2, _080F8B38 - adds r1, r1, r2 - bl StringCopy - pop {r0} - bx r0 - .align 2, 0 -_080F8B30: .4byte gUnknown_2021C68 -_080F8B34: .4byte gUnknown_2037284 -_080F8B38: .4byte gUnknown_2039AA2 - thumb_func_end sub_080F8B18 - - thumb_func_start sub_080F8B3C -sub_080F8B3C: @ 0x080F8B3C - push {r4, r5, r6, lr} - movs r1, #0 - movs r2, #0 - ldr r5, _080F8B78 - ldr r4, _080F8B7C - ldr r0, _080F8B80 - ldrh r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r4 - movs r6, #0 - ldrsh r3, [r0, r6] -_080F8B52: - lsls r0, r1, #1 - adds r0, r0, r4 - movs r6, #0 - ldrsh r0, [r0, r6] - cmp r3, r0 - bge _080F8B64 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 -_080F8B64: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #3 - bls _080F8B52 - strh r2, [r5] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080F8B78: .4byte gUnknown_2037280 -_080F8B7C: .4byte gUnknown_2039BA0 -_080F8B80: .4byte gUnknown_2037284 - thumb_func_end sub_080F8B3C - - thumb_func_start sub_080F8B84 -sub_080F8B84: @ 0x080F8B84 - ldr r2, _080F8B98 - ldr r1, _080F8B9C - ldr r0, _080F8BA0 - ldrh r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2] - bx lr - .align 2, 0 -_080F8B98: .4byte gUnknown_2037280 -_080F8B9C: .4byte gUnknown_2039BA0 -_080F8BA0: .4byte gUnknown_2037284 - thumb_func_end sub_080F8B84 - - thumb_func_start sub_080F8BA4 -sub_080F8BA4: @ 0x080F8BA4 - push {lr} - movs r1, #0 - ldr r2, _080F8BCC - ldrb r0, [r2] - ldr r3, _080F8BD0 - cmp r0, #0 - beq _080F8BC4 -_080F8BB2: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #3 - bhi _080F8BC4 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _080F8BB2 -_080F8BC4: - strh r1, [r3] - pop {r0} - bx r0 - .align 2, 0 -_080F8BCC: .4byte gUnknown_2039BC0 -_080F8BD0: .4byte gUnknown_2037282 - thumb_func_end sub_080F8BA4 - - thumb_func_start sub_080F8BD4 -sub_080F8BD4: @ 0x080F8BD4 - push {r4, lr} - movs r1, #0 - ldr r2, _080F8C08 - ldrb r0, [r2] - ldr r4, _080F8C0C - ldr r3, _080F8C10 - cmp r0, #0 - beq _080F8BF6 -_080F8BE4: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #3 - bhi _080F8BF6 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _080F8BE4 -_080F8BF6: - lsls r1, r1, #6 - adds r1, r1, r3 - adds r0, r4, #0 - bl StringCopy - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F8C08: .4byte gUnknown_2039BC0 -_080F8C0C: .4byte gUnknown_2021C68 -_080F8C10: .4byte gUnknown_2039AAD - thumb_func_end sub_080F8BD4 - - thumb_func_start sub_080F8C14 -sub_080F8C14: @ 0x080F8C14 - push {r4, lr} - movs r1, #0 - ldr r2, _080F8C48 - ldrb r0, [r2] - ldr r4, _080F8C4C - ldr r3, _080F8C50 - cmp r0, #0 - beq _080F8C36 -_080F8C24: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #3 - bhi _080F8C36 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _080F8C24 -_080F8C36: - lsls r1, r1, #6 - adds r1, r1, r3 - adds r0, r4, #0 - bl StringCopy - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F8C48: .4byte gUnknown_2039BC0 -_080F8C4C: .4byte gUnknown_2021C40 -_080F8C50: .4byte gUnknown_2039AA2 - thumb_func_end sub_080F8C14 - - thumb_func_start sub_080F8C54 -sub_080F8C54: @ 0x080F8C54 - push {lr} - ldr r0, _080F8C60 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080F8C60: .4byte CB2_StartContest - thumb_func_end sub_080F8C54 - - thumb_func_start sub_080F8C64 -sub_080F8C64: @ 0x080F8C64 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _080F8C88 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080F8C82 - adds r0, r2, #0 - bl DestroyTask - ldr r0, _080F8C8C - bl SetMainCallback2 -_080F8C82: - pop {r0} - bx r0 - .align 2, 0 -_080F8C88: .4byte gUnknown_2037C74 -_080F8C8C: .4byte sub_080F8C54 - thumb_func_end sub_080F8C64 - - thumb_func_start WarpIntoSecretBase -WarpIntoSecretBase: @ 0x080F8C90 - push {lr} - sub sp, #4 - bl sub_080987DC - ldr r0, _080F8CB8 - movs r1, #0xa - bl CreateTask - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_080F8CB8: .4byte sub_080F8C64 - thumb_func_end WarpIntoSecretBase - - thumb_func_start sub_080F8CBC -sub_080F8CBC: @ 0x080F8CBC - ldr r2, _080F8CD0 - ldr r1, _080F8CD4 - ldr r0, _080F8CD8 - ldrh r0, [r0] - lsls r0, r0, #6 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2] - bx lr - .align 2, 0 -_080F8CD0: .4byte gUnknown_2037280 -_080F8CD4: .4byte gUnknown_2039AA0 -_080F8CD8: .4byte gUnknown_2037284 - thumb_func_end sub_080F8CBC - - thumb_func_start sub_080F8CDC -sub_080F8CDC: @ 0x080F8CDC - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _080F8D00 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080F8CFA - adds r0, r2, #0 - bl DestroyTask - ldr r0, _080F8D04 - bl SetMainCallback2 -_080F8CFA: - pop {r0} - bx r0 - .align 2, 0 -_080F8D00: .4byte gUnknown_2037C74 -_080F8D04: .4byte sub_080F6318 - thumb_func_end sub_080F8CDC - - thumb_func_start sub_080F8D08 -sub_080F8D08: @ 0x080F8D08 - push {lr} - sub sp, #4 - bl sub_080987DC - ldr r0, _080F8D30 - movs r1, #0xa - bl CreateTask - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_080F8D30: .4byte sub_080F8CDC - thumb_func_end sub_080F8D08 - - thumb_func_start sub_080F8D34 -sub_080F8D34: @ 0x080F8D34 - ldr r0, _080F8D40 - ldr r1, _080F8D44 - ldrb r1, [r1] - strh r1, [r0] - bx lr - .align 2, 0 -_080F8D40: .4byte gUnknown_2037280 -_080F8D44: .4byte gUnknown_2039BC5 - thumb_func_end sub_080F8D34 - - thumb_func_start sub_080F8D48 -sub_080F8D48: @ 0x080F8D48 - push {r4, r5, r6, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - bl sub_080987DC - ldr r6, _080F8D80 - adds r0, r6, #0 - movs r1, #0 - bl CreateTask - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r2, _080F8D84 - adds r0, r4, #0 - adds r1, r6, #0 - bl SetTaskFuncWithFollowupFunc - ldr r1, _080F8D88 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r5, [r0, #0x1a] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080F8D80: .4byte sub_080FCDF0 -_080F8D84: .4byte sub_080F8D8C -_080F8D88: .4byte gUnknown_3005B60 - thumb_func_end sub_080F8D48 - - thumb_func_start sub_080F8D8C -sub_080F8D8C: @ 0x080F8D8C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080F8DB4 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080F8DC4 - ldr r0, _080F8DB8 - ldrb r0, [r0] - bl sub_080DA0B8 - ldr r1, _080F8DBC - ldr r2, _080F8DC0 - adds r0, r4, #0 - bl SetTaskFuncWithFollowupFunc - b _080F8DDA - .align 2, 0 -_080F8DB4: .4byte gUnknown_2039BCA -_080F8DB8: .4byte gUnknown_2039BC4 -_080F8DBC: .4byte ContestLiveUpdates_BeforeInterview_5 -_080F8DC0: .4byte sub_080F8DEC -_080F8DC4: - ldr r0, _080F8DE0 - ldrb r0, [r0] - bl sub_080DA0B8 - ldr r1, _080F8DE4 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080F8DE8 - str r1, [r0] -_080F8DDA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F8DE0: .4byte gUnknown_2039BC4 -_080F8DE4: .4byte gUnknown_3005B60 -_080F8DE8: .4byte sub_081D9690 - thumb_func_end sub_080F8D8C - - thumb_func_start sub_080F8DEC -sub_080F8DEC: @ 0x080F8DEC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080F8E00 - ldr r2, _080F8E04 - bl SetTaskFuncWithFollowupFunc - pop {r0} - bx r0 - .align 2, 0 -_080F8E00: .4byte sub_080FD058 -_080F8E04: .4byte sub_080F8E08 - thumb_func_end sub_080F8DEC - - thumb_func_start sub_080F8E08 -sub_080F8E08: @ 0x080F8E08 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080F8E1C - ldr r2, _080F8E20 - bl SetTaskFuncWithFollowupFunc - pop {r0} - bx r0 - .align 2, 0 -_080F8E1C: .4byte sub_080FD69C -_080F8E20: .4byte sub_080F8E24 - thumb_func_end sub_080F8E08 - - thumb_func_start sub_080F8E24 -sub_080F8E24: @ 0x080F8E24 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080F8E38 - ldr r2, _080F8E3C - bl SetTaskFuncWithFollowupFunc - pop {r0} - bx r0 - .align 2, 0 -_080F8E38: .4byte sub_080FD0E8 -_080F8E3C: .4byte sub_080F8E40 - thumb_func_end sub_080F8E24 - - thumb_func_start sub_080F8E40 -sub_080F8E40: @ 0x080F8E40 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - movs r3, #0 - ldr r5, _080F8EBC - mov ip, r5 - ldr r0, _080F8EC0 - mov sb, r0 - add r1, sp, #4 - mov r8, r1 - ldrb r0, [r5] - cmp r3, r0 - bhs _080F8E8A - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r4, r0, #3 - ldr r7, _080F8EC4 -_080F8E70: - mov r1, sp - adds r2, r1, r3 - adds r1, r3, #1 - lsls r0, r1, #1 - adds r0, r0, r4 - adds r0, r0, r7 - ldrh r0, [r0] - strb r0, [r2] - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - ldrb r0, [r5] - cmp r3, r0 - blo _080F8E70 -_080F8E8A: - movs r3, #0 - mov r1, ip - ldrb r0, [r1] - cmp r3, r0 - bhs _080F8EAE - adds r4, r0, #0 - mov r2, sp -_080F8E98: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, r4 - bhs _080F8EAE - mov r0, sp - adds r1, r0, r3 - ldrb r0, [r2] - ldrb r1, [r1] - cmp r0, r1 - beq _080F8E98 -_080F8EAE: - mov r1, ip - ldrb r1, [r1] - cmp r3, r1 - bne _080F8EC8 - movs r0, #0 - b _080F8ECA - .align 2, 0 -_080F8EBC: .4byte gUnknown_2039BD0 -_080F8EC0: .4byte gUnknown_2037280 -_080F8EC4: .4byte gUnknown_3005B68 -_080F8EC8: - movs r0, #1 -_080F8ECA: - mov r1, sb - strh r0, [r1] - movs r3, #0 - mov r4, ip - ldrb r0, [r4] - cmp r3, r0 - bhs _080F8EFC - mov r5, r8 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r2, r0, #3 - ldr r7, _080F8F28 -_080F8EE2: - adds r1, r5, r3 - adds r0, r3, #5 - lsls r0, r0, #1 - adds r0, r0, r2 - adds r0, r0, r7 - ldrh r0, [r0] - strb r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldrb r1, [r4] - cmp r3, r1 - blo _080F8EE2 -_080F8EFC: - mov r0, r8 - bl sub_080F8F64 - ldr r1, _080F8F2C - strb r0, [r1] - ldr r0, _080F8F30 - ldrb r0, [r0] - bl sub_080DA800 - ldr r1, _080F8F34 - ldr r2, _080F8F38 - adds r0, r6, #0 - bl SetTaskFuncWithFollowupFunc - add sp, #8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F8F28: .4byte gUnknown_3005B68 -_080F8F2C: .4byte gUnknown_2039BCB -_080F8F30: .4byte gUnknown_2039BCC -_080F8F34: .4byte sub_080FD794 -_080F8F38: .4byte sub_080F8F3C - thumb_func_end sub_080F8E40 - - thumb_func_start sub_080F8F3C -sub_080F8F3C: @ 0x080F8F3C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - bl SortContestants - ldr r1, _080F8F5C - ldr r2, _080F8F60 - adds r0, r4, #0 - bl SetTaskFuncWithFollowupFunc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F8F5C: .4byte sub_080FD824 -_080F8F60: .4byte ReceiveOldManData - thumb_func_end sub_080F8F3C - - thumb_func_start sub_080F8F64 -sub_080F8F64: @ 0x080F8F64 - push {r4, r5, lr} - adds r3, r0, #0 - movs r4, #0 - movs r2, #1 - ldr r0, _080F8F94 - ldrb r0, [r0] - cmp r2, r0 - bge _080F8F8C - adds r5, r0, #0 -_080F8F76: - adds r0, r3, r4 - adds r1, r3, r2 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bhs _080F8F86 - lsls r0, r2, #0x18 - lsrs r4, r0, #0x18 -_080F8F86: - adds r2, #1 - cmp r2, r5 - blt _080F8F76 -_080F8F8C: - adds r0, r4, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_080F8F94: .4byte gUnknown_2039BD0 - thumb_func_end sub_080F8F64 - - thumb_func_start ReceiveOldManData -ReceiveOldManData: @ 0x080F8F98 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _080F8FC0 - ldrh r0, [r0] - cmp r0, #1 - bne _080F8FCC - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080F900C - ldr r0, _080F8FC4 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080F8FC8 - str r0, [r1] - b _080F900C - .align 2, 0 -_080F8FC0: .4byte gUnknown_2037280 -_080F8FC4: .4byte gUnknown_3005B60 -_080F8FC8: .4byte sub_080F901C -_080F8FCC: - ldr r0, _080F9014 - adds r4, r0, #2 - movs r7, #0xff - movs r5, #3 -_080F8FD4: - ldrb r0, [r4, #0x10] - orrs r0, r7 - strb r0, [r4, #0x10] - adds r0, r4, #0 - bl StringGetEnd10 - adds r4, #0x40 - subs r5, #1 - cmp r5, #0 - bge _080F8FD4 - adds r0, r6, #0 - bl DestroyTask - ldr r0, _080F9018 - ldr r0, [r0] - movs r1, #4 - ldrsb r1, [r0, r1] - movs r2, #5 - ldrsb r2, [r0, r2] - movs r3, #1 - rsbs r3, r3, #0 - movs r0, #0 - bl SetDynamicWarp - bl sub_080987E8 - bl EnableBothScriptContexts -_080F900C: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F9014: .4byte gUnknown_2039AA0 -_080F9018: .4byte gUnknown_3005AEC - thumb_func_end ReceiveOldManData - - thumb_func_start sub_080F901C -sub_080F901C: @ 0x080F901C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_0800A7F8 - ldr r1, _080F903C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080F9040 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F903C: .4byte gUnknown_3005B60 -_080F9040: .4byte sub_080F9044 - thumb_func_end sub_080F901C - - thumb_func_start sub_080F9044 -sub_080F9044: @ 0x080F9044 - push {lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r0, _080F9064 - ldrb r0, [r0] - cmp r0, #0 - bne _080F9060 - adds r0, r1, #0 - bl DestroyTask - bl sub_080987E8 - bl EnableBothScriptContexts -_080F9060: - pop {r0} - bx r0 - .align 2, 0 -_080F9064: .4byte gUnknown_30031C4 - thumb_func_end sub_080F9044 - - thumb_func_start SetContestTrainerGfxIds -SetContestTrainerGfxIds: @ 0x080F9068 - push {r4, lr} - ldr r0, _080F9098 - ldr r2, [r0] - ldr r1, _080F909C - ldrb r3, [r1, #0x15] - ldr r4, _080F90A0 - adds r0, r2, r4 - strh r3, [r0] - adds r0, r1, #0 - adds r0, #0x55 - ldrb r3, [r0] - adds r4, #2 - adds r0, r2, r4 - strh r3, [r0] - adds r1, #0x95 - ldrb r0, [r1] - movs r1, #0x9e - lsls r1, r1, #5 - adds r2, r2, r1 - strh r0, [r2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F9098: .4byte gUnknown_3005AEC -_080F909C: .4byte gUnknown_2039AA0 -_080F90A0: .4byte 0x000013BC - thumb_func_end SetContestTrainerGfxIds - - thumb_func_start sub_080F90A4 -sub_080F90A4: @ 0x080F90A4 - push {lr} - ldr r0, _080F90BC - ldrb r0, [r0] - adds r1, r0, #0 - cmp r0, #1 - beq _080F90CA - cmp r0, #1 - bgt _080F90C0 - cmp r0, #0 - beq _080F90C6 - b _080F90D2 - .align 2, 0 -_080F90BC: .4byte gUnknown_2037282 -_080F90C0: - cmp r1, #2 - beq _080F90CE - b _080F90D2 -_080F90C6: - movs r1, #3 - b _080F90D4 -_080F90CA: - movs r1, #4 - b _080F90D4 -_080F90CE: - movs r1, #5 - b _080F90D4 -_080F90D2: - movs r1, #0x64 -_080F90D4: - ldr r0, _080F90DC - strh r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080F90DC: .4byte gUnknown_2037280 - thumb_func_end sub_080F90A4 - - thumb_func_start sub_080F90E0 -sub_080F90E0: @ 0x080F90E0 - push {lr} - bl sub_080F8AF4 - bl sub_080F8B18 - bl sub_080F8CBC - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080F90E0 - - thumb_func_start sub_080F90F4 -sub_080F90F4: @ 0x080F90F4 - push {lr} - ldr r0, _080F9108 - ldrh r0, [r0] - cmp r0, #4 - bhi _080F9134 - lsls r0, r0, #2 - ldr r1, _080F910C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F9108: .4byte gUnknown_2039BCC -_080F910C: .4byte _080F9110 -_080F9110: @ jump table - .4byte _080F9124 @ case 0 - .4byte _080F9128 @ case 1 - .4byte _080F912C @ case 2 - .4byte _080F9130 @ case 3 - .4byte _080F9134 @ case 4 -_080F9124: - movs r1, #8 - b _080F9136 -_080F9128: - movs r1, #9 - b _080F9136 -_080F912C: - movs r1, #0xa - b _080F9136 -_080F9130: - movs r1, #0xb - b _080F9136 -_080F9134: - movs r1, #0xc -_080F9136: - ldr r0, _080F9150 - ldr r0, [r0] - lsls r1, r1, #5 - adds r0, r0, r1 - ldr r1, _080F9154 - adds r0, r0, r1 - ldrh r1, [r0] - cmp r1, #0 - bne _080F915C - ldr r0, _080F9158 - strh r1, [r0] - b _080F9162 - .align 2, 0 -_080F9150: .4byte gUnknown_3005AEC -_080F9154: .4byte 0x00002E98 -_080F9158: .4byte gUnknown_2037280 -_080F915C: - ldr r1, _080F9168 - movs r0, #1 - strh r0, [r1] -_080F9162: - pop {r0} - bx r0 - .align 2, 0 -_080F9168: .4byte gUnknown_2037280 - thumb_func_end sub_080F90F4 - - thumb_func_start sub_080F916C -sub_080F916C: @ 0x080F916C - push {lr} - movs r0, #0xff - bl sub_080DE4B0 - pop {r0} - bx r0 - thumb_func_end sub_080F916C - - thumb_func_start sub_080F9178 -sub_080F9178: @ 0x080F9178 - push {lr} - ldr r0, _080F91A8 - ldr r1, _080F91AC - ldrb r2, [r1] - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, #0 - bne _080F91C0 - ldr r0, _080F91B0 - ldrh r0, [r0] - cmp r0, #3 - bne _080F91C0 - ldr r1, _080F91B4 - lsls r0, r2, #1 - adds r0, r0, r1 - movs r2, #0 - ldrsh r1, [r0, r2] - ldr r0, _080F91B8 - cmp r1, r0 - ble _080F91C0 - ldr r1, _080F91BC - movs r0, #1 - b _080F91C4 - .align 2, 0 -_080F91A8: .4byte gUnknown_2039BC0 -_080F91AC: .4byte gUnknown_2039BC5 -_080F91B0: .4byte gUnknown_2039BCE -_080F91B4: .4byte gUnknown_2039BA8 -_080F91B8: .4byte 0x0000031F -_080F91BC: .4byte gUnknown_2037280 -_080F91C0: - ldr r1, _080F91CC - movs r0, #0 -_080F91C4: - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080F91CC: .4byte gUnknown_2037280 - thumb_func_end sub_080F9178 - - thumb_func_start CountPlayerContestPaintings -CountPlayerContestPaintings: @ 0x080F91D0 - push {lr} - movs r3, #0 - ldr r0, _080F91F8 - ldr r0, [r0] - ldr r2, _080F91FC - adds r1, r0, r2 - movs r2, #4 -_080F91DE: - ldrh r0, [r1] - cmp r0, #0 - beq _080F91EA - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 -_080F91EA: - adds r1, #0x20 - subs r2, #1 - cmp r2, #0 - bge _080F91DE - adds r0, r3, #0 - pop {r1} - bx r1 - .align 2, 0 -_080F91F8: .4byte gUnknown_3005AEC -_080F91FC: .4byte 0x00002F98 - thumb_func_end CountPlayerContestPaintings - - thumb_func_start sub_080F9200 -sub_080F9200: @ 0x080F9200 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - ldr r0, _080F932C - mov ip, r0 - ldr r1, _080F9330 - mov r8, r1 - ldr r2, _080F9334 - mov sl, r2 - ldr r4, _080F9338 - mov sb, r4 - mov r2, ip - mov r1, sp - movs r6, #3 -_080F9222: - ldrh r0, [r2] - strh r0, [r1] - adds r2, #2 - adds r1, #2 - subs r6, #1 - cmp r6, #0 - bge _080F9222 - movs r6, #0 -_080F9232: - movs r1, #3 - cmp r1, r6 - ble _080F925C -_080F9238: - subs r4, r1, #1 - 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 _080F9256 - strh r5, [r2] - strh r0, [r3] -_080F9256: - adds r1, r4, #0 - cmp r1, r6 - bgt _080F9238 -_080F925C: - adds r6, #1 - cmp r6, #2 - ble _080F9232 - mov r2, r8 - ldrh r0, [r2] - lsls r0, r0, #1 - add r0, sp - ldrh r0, [r0] - movs r2, #0 - movs r7, #0 - movs r6, #0 - lsls r0, r0, #0x10 - asrs r4, r0, #0x10 - adds r3, r0, #0 - mov r1, sp -_080F927A: - movs r5, #0 - ldrsh r0, [r1, r5] - cmp r0, r4 - bne _080F9296 - lsls r0, r2, #0x18 - movs r2, #0x80 - lsls r2, r2, #0x11 - adds r0, r0, r2 - lsrs r2, r0, #0x18 - mov r5, r8 - ldrh r5, [r5] - cmp r6, r5 - bne _080F9296 - adds r7, r2, #0 -_080F9296: - adds r1, #2 - adds r6, #1 - cmp r6, #3 - ble _080F927A - movs r6, #0 - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - asrs r1, r3, #0x10 - lsls r2, r2, #0x18 - mov r8, r2 - cmp r0, r1 - beq _080F92C4 - adds r2, r1, #0 - mov r1, sp -_080F92B4: - adds r1, #2 - adds r6, #1 - cmp r6, #3 - bgt _080F92C4 - movs r4, #0 - ldrsh r0, [r1, r4] - cmp r0, r2 - bne _080F92B4 -_080F92C4: - lsls r0, r6, #0x18 - lsrs r5, r0, #0x18 - adds r2, r7, #0 - movs r6, #0 - asrs r0, r3, #0x10 - str r0, [sp, #8] - mov r1, ip - movs r4, #0 - ldrsh r0, [r1, r4] - ldr r1, [sp, #8] - cmp r1, r0 - bne _080F92E6 - cmp r7, #1 - beq _080F92FE -_080F92E0: - subs r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 -_080F92E6: - adds r6, #1 - cmp r6, #3 - bgt _080F92FE - lsls r0, r6, #1 - add r0, ip - asrs r1, r3, #0x10 - movs r4, #0 - ldrsh r0, [r0, r4] - cmp r1, r0 - bne _080F92E6 - cmp r2, #1 - bne _080F92E0 -_080F92FE: - lsls r4, r6, #6 - mov r0, sb - adds r1, r4, r0 - mov r0, sl - bl StringCopy - ldr r0, _080F933C - mov r1, sb - adds r1, #0xb - adds r4, r4, r1 - adds r1, r4, #0 - bl StringCopy - mov r1, r8 - asrs r0, r1, #0x18 - cmp r0, #1 - beq _080F9324 - cmp r7, r0 - bne _080F9340 -_080F9324: - ldr r0, _080F9330 - strh r5, [r0] - b _080F9346 - .align 2, 0 -_080F932C: .4byte gUnknown_2039BA0 -_080F9330: .4byte gUnknown_2037284 -_080F9334: .4byte gUnknown_2021C40 -_080F9338: .4byte gUnknown_2039AA2 -_080F933C: .4byte gUnknown_2021C54 -_080F9340: - ldr r1, _080F9358 - adds r0, r5, #4 - strh r0, [r1] -_080F9346: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F9358: .4byte gUnknown_2037284 - thumb_func_end sub_080F9200 - - thumb_func_start ShowContestWinnerCleanup -ShowContestWinnerCleanup: @ 0x080F935C - push {lr} - ldr r0, _080F9368 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080F9368: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic - thumb_func_end ShowContestWinnerCleanup - - thumb_func_start ShowContestWinner -ShowContestWinner: @ 0x080F936C - push {lr} - ldr r0, _080F9380 - bl SetMainCallback2 - ldr r1, _080F9384 - ldr r0, _080F9388 - str r0, [r1, #8] - pop {r0} - bx r0 - .align 2, 0 -_080F9380: .4byte CB2_ContestPainting -_080F9384: .4byte gUnknown_3002360 -_080F9388: .4byte ShowContestWinnerCleanup - thumb_func_end ShowContestWinner - - thumb_func_start sub_080F938C -sub_080F938C: @ 0x080F938C - push {r4, r5, lr} - ldr r0, _080F93C0 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080F940C - movs r3, #0 - ldr r0, _080F93C4 - adds r4, r0, #0 - ldr r5, _080F93C8 - ldrb r0, [r4] - cmp r3, r0 - bge _080F93E0 - adds r2, r5, #0 - ldr r1, _080F93CC -_080F93AC: - ldrb r0, [r1] - subs r0, #1 - cmp r0, #1 - bhi _080F93D4 - ldrb r0, [r1, #0x13] - cmp r0, #0 - bne _080F93D0 - movs r0, #0xeb - b _080F93D2 - .align 2, 0 -_080F93C0: .4byte gUnknown_2039BCA -_080F93C4: .4byte gUnknown_2039BD0 -_080F93C8: .4byte gUnknown_2039AA0 -_080F93CC: .4byte gUnknown_20226A0 -_080F93D0: - movs r0, #0xec -_080F93D2: - strb r0, [r2, #0x15] -_080F93D4: - adds r2, #0x40 - adds r1, #0x1c - adds r3, #1 - ldrb r0, [r4] - cmp r3, r0 - blt _080F93AC -_080F93E0: - ldr r0, _080F9414 - ldrb r1, [r5, #0x15] - bl VarSet - ldr r0, _080F9418 - adds r1, r5, #0 - adds r1, #0x55 - ldrb r1, [r1] - bl VarSet - ldr r0, _080F941C - adds r1, r5, #0 - adds r1, #0x95 - ldrb r1, [r1] - bl VarSet - ldr r0, _080F9420 - adds r1, r5, #0 - adds r1, #0xd5 - ldrb r1, [r1] - bl VarSet -_080F940C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080F9414: .4byte 0x00004010 -_080F9418: .4byte 0x00004011 -_080F941C: .4byte 0x00004012 -_080F9420: .4byte 0x00004013 - thumb_func_end sub_080F938C - - thumb_func_start sub_080F9424 -sub_080F9424: @ 0x080F9424 - push {r4, r5, r6, r7, lr} - ldr r1, _080F9498 - movs r0, #0xc - strb r0, [r1] - ldr r0, _080F949C - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080F94FE - movs r5, #0 - ldr r0, _080F94A0 - ldrb r0, [r0] - cmp r5, r0 - bge _080F94FE - movs r7, #0 - movs r6, #0x60 - movs r4, #0xb0 - lsls r4, r4, #0x11 -_080F944A: - ldr r0, _080F94A4 - adds r0, r5, r0 - ldrb r0, [r0] - ldr r1, _080F94A8 - ldr r2, [r1] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - bl GetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080F94AC - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r0, [r1, #4] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _080F94B0 - adds r1, r1, r0 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r6 - strb r0, [r1, #5] - ldr r0, _080F94B4 - adds r1, r7, r0 - ldrb r0, [r1] - subs r0, #1 - cmp r0, #1 - bhi _080F94C8 - ldrb r0, [r1, #0x13] - cmp r0, #0 - bne _080F94BC - lsrs r1, r4, #0x10 - ldr r0, _080F94B8 - b _080F94D2 - .align 2, 0 -_080F9498: .4byte gUnknown_30030BC -_080F949C: .4byte gUnknown_2039BCA -_080F94A0: .4byte gUnknown_2039BD0 -_080F94A4: .4byte gUnknown_85694CC -_080F94A8: .4byte gUnknown_3005AEC -_080F94AC: .4byte gUnknown_2036FF0 -_080F94B0: .4byte gUnknown_20205AC -_080F94B4: .4byte gUnknown_20226A0 -_080F94B8: .4byte gUnknown_8471E6C -_080F94BC: - lsrs r1, r4, #0x10 - ldr r0, _080F94C4 - b _080F94D2 - .align 2, 0 -_080F94C4: .4byte gUnknown_847D90C -_080F94C8: - ldrb r0, [r1, #0x13] - cmp r0, #0 - bne _080F94E0 - lsrs r1, r4, #0x10 - ldr r0, _080F94DC -_080F94D2: - movs r2, #0x20 - bl LoadPalette - b _080F94EA - .align 2, 0 -_080F94DC: .4byte gUnknown_8470C4C -_080F94E0: - lsrs r1, r4, #0x10 - ldr r0, _080F9504 - movs r2, #0x20 - bl LoadPalette -_080F94EA: - movs r0, #0x80 - lsls r0, r0, #0xd - adds r4, r4, r0 - adds r7, #0x1c - adds r6, #0x10 - adds r5, #1 - ldr r0, _080F9508 - ldrb r0, [r0] - cmp r5, r0 - blt _080F944A -_080F94FE: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F9504: .4byte gUnknown_847C6CC -_080F9508: .4byte gUnknown_2039BD0 - thumb_func_end sub_080F9424 - - thumb_func_start GiveMonArtistRibbon -GiveMonArtistRibbon: @ 0x080F950C - push {r4, r5, r6, lr} - sub sp, #4 - ldr r6, _080F958C - ldrb r0, [r6] - movs r5, #0x64 - muls r0, r5, r0 - ldr r4, _080F9590 - adds r0, r0, r4 - movs r1, #0x46 - bl GetMonData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, sp - strb r0, [r1] - cmp r0, #0 - bne _080F95A8 - ldr r0, _080F9594 - ldr r1, _080F9598 - ldrb r2, [r1] - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, #0 - bne _080F95A8 - ldr r0, _080F959C - ldrh r0, [r0] - cmp r0, #3 - bne _080F95A8 - ldr r1, _080F95A0 - lsls r0, r2, #1 - adds r0, r0, r1 - movs r2, #0 - ldrsh r1, [r0, r2] - ldr r0, _080F95A4 - cmp r1, r0 - ble _080F95A8 - movs r1, #1 - mov r0, sp - strb r1, [r0] - ldrb r0, [r6] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #0x46 - mov r2, sp - bl SetMonData - ldrb r0, [r6] - muls r0, r5, r0 - adds r0, r0, r4 - bl GetRibbonCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bls _080F9586 - ldrb r0, [r6] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #0x46 - bl sub_080EEFFC -_080F9586: - movs r0, #1 - b _080F95AA - .align 2, 0 -_080F958C: .4byte gUnknown_2039BC4 -_080F9590: .4byte gUnknown_2024190 -_080F9594: .4byte gUnknown_2039BC0 -_080F9598: .4byte gUnknown_2039BC5 -_080F959C: .4byte gUnknown_2039BCE -_080F95A0: .4byte gUnknown_2039BA8 -_080F95A4: .4byte 0x0000031F -_080F95A8: - movs r0, #0 -_080F95AA: - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GiveMonArtistRibbon - - thumb_func_start sub_080F95B4 -sub_080F95B4: @ 0x080F95B4 - movs r0, #0 - bx lr - thumb_func_end sub_080F95B4 - - thumb_func_start ShowContestEntryMonPic -ShowContestEntryMonPic: @ 0x080F95B8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r7, _080F9638 - adds r0, r7, #0 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _080F95D4 - b _080F972C -_080F95D4: - bl AllocateMonSpritesGfx - movs r0, #0xa - mov sb, r0 - movs r1, #3 - mov sl, r1 - ldr r2, _080F963C - ldr r4, _080F9640 - ldrh r1, [r4] - lsls r1, r1, #6 - adds r0, r1, r2 - ldrh r6, [r0] - adds r0, r2, #0 - adds r0, #0x38 - adds r0, r1, r0 - ldr r5, [r0] - adds r2, #0x3c - adds r1, r1, r2 - ldr r1, [r1] - mov r8, r1 - adds r0, r7, #0 - movs r1, #0x50 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r1, _080F9644 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #8] - strh r6, [r0, #0xa] - ldr r1, _080F9648 - ldrh r0, [r4] - ldrb r1, [r1] - cmp r0, r1 - bne _080F9654 - lsls r0, r6, #3 - ldr r1, _080F964C - adds r0, r0, r1 - ldr r1, _080F9650 - ldr r1, [r1] - ldr r1, [r1, #8] - adds r2, r6, #0 - adds r3, r5, #0 - bl HandleLoadSpecialPokePic_2 - b _080F9668 - .align 2, 0 -_080F9638: .4byte sub_080F9778 -_080F963C: .4byte gUnknown_2039AA0 -_080F9640: .4byte gUnknown_2037284 -_080F9644: .4byte gUnknown_3005B60 -_080F9648: .4byte gUnknown_2039BC5 -_080F964C: .4byte gUnknown_82DDA1C -_080F9650: .4byte gUnknown_2024178 -_080F9654: - lsls r0, r6, #3 - ldr r1, _080F96D4 - adds r0, r0, r1 - ldr r1, _080F96D8 - ldr r1, [r1] - ldr r1, [r1, #8] - adds r2, r6, #0 - adds r3, r5, #0 - bl HandleLoadSpecialPokePic_DontHandleDeoxys -_080F9668: - adds r0, r6, #0 - mov r1, r8 - adds r2, r5, #0 - bl GetMonSpritePalStructFromOtIdPersonality - adds r4, r0, #0 - bl LoadCompressedSpritePalette - adds r0, r6, #0 - movs r1, #1 - bl SetMultiuseSpriteTemplateToPokemon - ldr r0, _080F96DC - ldrh r1, [r4, #4] - strh r1, [r0, #2] - mov r1, sb - adds r1, #1 - lsls r1, r1, #0x13 - movs r2, #0x80 - lsls r2, r2, #0xe - adds r1, r1, r2 - asrs r1, r1, #0x10 - mov r3, sl - lsls r2, r3, #0x13 - movs r3, #0xa0 - lsls r3, r3, #0xe - adds r2, r2, r3 - asrs r2, r2, #0x10 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _080F96E0 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080F96E8 - movs r0, #4 - ands r0, r1 - lsls r4, r5, #4 - cmp r0, #0 - bne _080F96FC - adds r0, r4, r5 - lsls r0, r0, #2 - ldr r1, _080F96E4 - adds r0, r0, r1 - adds r1, r6, #0 - movs r2, #0 - movs r3, #0 - bl DoMonFrontSpriteAnimation - b _080F96FC - .align 2, 0 -_080F96D4: .4byte gUnknown_82DDA1C -_080F96D8: .4byte gUnknown_2024178 -_080F96DC: .4byte gUnknown_2024640 -_080F96E0: .4byte gUnknown_2039BCA -_080F96E4: .4byte gUnknown_20205AC -_080F96E8: - lsls r4, r5, #4 - adds r0, r4, r5 - lsls r0, r0, #2 - ldr r1, _080F973C - adds r0, r0, r1 - adds r1, r6, #0 - movs r2, #0 - movs r3, #0 - bl DoMonFrontSpriteAnimation -_080F96FC: - ldr r1, _080F9740 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r5, [r0, #0xc] - mov r1, sb - strh r1, [r0, #0xe] - mov r2, sl - strh r2, [r0, #0x10] - ldr r3, _080F973C - adds r1, r4, r5 - lsls r1, r1, #2 - adds r0, r3, #0 - adds r0, #0x1c - adds r0, r1, r0 - ldr r2, _080F9744 - str r2, [r0] - adds r1, r1, r3 - ldrb r2, [r1, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #5] -_080F972C: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F973C: .4byte gUnknown_20205AC -_080F9740: .4byte gUnknown_3005B60 -_080F9744: .4byte sub_08007140 - thumb_func_end ShowContestEntryMonPic - - thumb_func_start sub_080F9748 -sub_080F9748: @ 0x080F9748 - push {lr} - ldr r0, _080F9770 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xff - beq _080F976C - ldr r0, _080F9774 - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - bl FreeMonSpritesGfx -_080F976C: - pop {r0} - bx r0 - .align 2, 0 -_080F9770: .4byte sub_080F9778 -_080F9774: .4byte gUnknown_3005B60 - thumb_func_end sub_080F9748 - - thumb_func_start sub_080F9778 -sub_080F9778: @ 0x080F9778 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _080F979C - adds r5, r0, r1 - movs r2, #8 - ldrsh r0, [r5, r2] - adds r2, r1, #0 - cmp r0, #4 - bhi _080F9828 - lsls r0, r0, #2 - ldr r1, _080F97A0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F979C: .4byte gUnknown_3005B60 -_080F97A0: .4byte _080F97A4 -_080F97A4: @ jump table - .4byte _080F9808 @ case 0 - .4byte _080F97B8 @ case 1 - .4byte _080F9828 @ case 2 - .4byte _080F97D2 @ case 3 - .4byte _080F9814 @ case 4 -_080F97B8: - movs r0, #0xa - movs r1, #3 - movs r2, #8 - movs r3, #8 - bl CreateWindowFromRect - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x12] - movs r1, #1 - bl SetStandardWindowBorderStyle - b _080F9808 -_080F97D2: - movs r0, #0xc - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080F9810 - adds r4, r0, r1 - ldrb r0, [r4, #5] - lsrs r0, r0, #4 - bl sub_08008554 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl FreeSpritePaletteByTag - ldrb r0, [r4, #1] - lsls r0, r0, #0x1e - cmp r0, #0 - beq _080F9802 - ldrb r0, [r4, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix -_080F9802: - adds r0, r4, #0 - bl DestroySprite -_080F9808: - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - b _080F9828 - .align 2, 0 -_080F9810: .4byte gUnknown_20205AC -_080F9814: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrb r0, [r0, #0x12] - bl sub_080E1F6C - adds r0, r4, #0 - bl DestroyTask -_080F9828: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080F9778 - - thumb_func_start ScriptGetMultiplayerId -ScriptGetMultiplayerId: @ 0x080F9830 - push {r4, lr} - ldr r0, _080F985C - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080F9868 - ldr r0, _080F9860 - ldrb r0, [r0] - cmp r0, #4 - bne _080F9868 - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _080F9868 - ldr r4, _080F9864 - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - b _080F986E - .align 2, 0 -_080F985C: .4byte gUnknown_2039BCA -_080F9860: .4byte gUnknown_2039BD0 -_080F9864: .4byte gUnknown_2037290 -_080F9868: - ldr r1, _080F9874 - movs r0, #4 - strh r0, [r1] -_080F986E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F9874: .4byte gUnknown_2037290 - thumb_func_end ScriptGetMultiplayerId - - thumb_func_start ScriptRandom -ScriptRandom: @ 0x080F9878 - push {r4, lr} - ldr r0, _080F989C - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080F98B0 - ldr r2, _080F98A0 - ldr r1, [r2] - ldr r0, _080F98A4 - muls r0, r1, r0 - ldr r1, _080F98A8 - adds r0, r0, r1 - str r0, [r2] - lsrs r0, r0, #0x10 - ldr r4, _080F98AC - b _080F98BA - .align 2, 0 -_080F989C: .4byte gUnknown_2039BCA -_080F98A0: .4byte gUnknown_3005E18 -_080F98A4: .4byte 0x41C64E6D -_080F98A8: .4byte 0x00006073 -_080F98AC: .4byte gUnknown_2037290 -_080F98B0: - ldr r4, _080F98C8 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 -_080F98BA: - ldrh r1, [r4] - bl __umodsi3 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F98C8: .4byte gUnknown_2037290 - thumb_func_end ScriptRandom - - thumb_func_start sub_080F98CC -sub_080F98CC: @ 0x080F98CC - ldr r2, _080F98E0 - ldr r1, [r2] - ldr r0, _080F98E4 - muls r0, r1, r0 - ldr r1, _080F98E8 - adds r0, r0, r1 - str r0, [r2] - lsrs r0, r0, #0x10 - bx lr - .align 2, 0 -_080F98E0: .4byte gUnknown_3005E18 -_080F98E4: .4byte 0x41C64E6D -_080F98E8: .4byte 0x00006073 - thumb_func_end sub_080F98CC - - thumb_func_start sub_080F98EC -sub_080F98EC: @ 0x080F98EC - push {lr} - ldr r0, _080F9900 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _080F9904 - movs r0, #0 - b _080F990E - .align 2, 0 -_080F9900: .4byte gUnknown_2039BCA -_080F9904: - ldr r0, _080F9914 - movs r1, #5 - bl CreateTask - movs r0, #1 -_080F990E: - pop {r1} - bx r1 - .align 2, 0 -_080F9914: .4byte sub_080F9918 - thumb_func_end sub_080F98EC - - thumb_func_start sub_080F9918 -sub_080F9918: @ 0x080F9918 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _080F994C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _080F9950 - cmp r0, #1 - beq _080F995E - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080F9964 - bl EnableBothScriptContexts - adds r0, r5, #0 - bl DestroyTask - b _080F9964 - .align 2, 0 -_080F994C: .4byte gUnknown_3005B60 -_080F9950: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080F9964 - bl sub_0800A8D4 -_080F995E: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080F9964: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080F9918 - - thumb_func_start sub_080F996C -sub_080F996C: @ 0x080F996C - push {lr} - ldr r0, _080F9994 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080F998E - ldr r0, _080F9998 - ldrb r0, [r0] - cmp r0, #0 - beq _080F998E - bl LoadWirelessStatusIndicatorSpriteGfx - movs r0, #8 - movs r1, #8 - bl CreateWirelessStatusIndicatorSprite -_080F998E: - pop {r0} - bx r0 - .align 2, 0 -_080F9994: .4byte gUnknown_2039BCA -_080F9998: .4byte gUnknown_30031C4 - thumb_func_end sub_080F996C - - thumb_func_start sub_080F999C -sub_080F999C: @ 0x080F999C - push {lr} - ldr r0, _080F99BC - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080F99B6 - ldr r0, _080F99C0 - ldrb r0, [r0] - cmp r0, #0 - beq _080F99B6 - bl DestroyWirelessStatusIndicatorSprite -_080F99B6: - pop {r0} - bx r0 - .align 2, 0 -_080F99BC: .4byte gUnknown_2039BCA -_080F99C0: .4byte gUnknown_30031C4 - thumb_func_end sub_080F999C - - thumb_func_start sub_080F99C4 -sub_080F99C4: @ 0x080F99C4 - push {lr} - ldr r0, _080F99D8 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _080F99DC - movs r0, #0 - b _080F99DE - .align 2, 0 -_080F99D8: .4byte gUnknown_2039BCA -_080F99DC: - movs r0, #1 -_080F99DE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080F99C4 - - thumb_func_start sub_080F99E4 -sub_080F99E4: @ 0x080F99E4 - ldr r1, _080F99EC - movs r0, #0 - strb r0, [r1] - bx lr - .align 2, 0 -_080F99EC: .4byte gUnknown_2039BCA - thumb_func_end sub_080F99E4 - - thumb_func_start sub_080F99F0 -sub_080F99F0: @ 0x080F99F0 - push {lr} - ldr r0, _080F9A04 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _080F9A08 - movs r0, #0 - b _080F9A0A - .align 2, 0 -_080F9A04: .4byte gUnknown_2039BCA -_080F9A08: - movs r0, #1 -_080F9A0A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080F99F0 - - thumb_func_start HealPlayerParty -HealPlayerParty: @ 0x080F9A10 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - movs r0, #0 - mov r8, r0 - ldr r0, _080F9ACC - ldrb r0, [r0] - cmp r8, r0 - bhs _080F9ABC - ldr r1, _080F9AD0 - mov sl, r1 - mov r6, sp -_080F9A2E: - movs r0, #0x64 - mov r4, r8 - muls r4, r0, r4 - add r4, sl - adds r0, r4, #0 - movs r1, #0x3a - bl GetMonData - lsls r1, r0, #0x10 - strb r0, [r6] - lsrs r1, r1, #0x18 - strb r1, [r6, #1] - adds r0, r4, #0 - movs r1, #0x39 - mov r2, sp - bl SetMonData - adds r0, r4, #0 - movs r1, #0x15 - bl GetMonData - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r5, #0 - movs r1, #1 - add r1, r8 - mov sb, r1 -_080F9A64: - adds r1, r5, #0 - adds r1, #0xd - adds r0, r4, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - 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, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #3 - bls _080F9A64 - movs r0, #0 - strb r0, [r6] - strb r0, [r6, #1] - strb r0, [r6, #2] - strb r0, [r6, #3] - movs r1, #0x64 - mov r0, r8 - muls r0, r1, r0 - add r0, sl - movs r1, #0x37 - mov r2, sp - bl SetMonData - mov r1, sb - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r0, _080F9ACC - ldrb r0, [r0] - cmp r8, r0 - blo _080F9A2E -_080F9ABC: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F9ACC: .4byte gUnknown_202418D -_080F9AD0: .4byte gUnknown_2024190 - thumb_func_end HealPlayerParty - - thumb_func_start ScriptGiveMon -ScriptGiveMon: @ 0x080F9AD4 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0x78 - adds r5, r0, #0 - adds r3, r1, #0 - adds r4, r2, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r4, r4, #0x10 - lsrs r0, r4, #0x10 - mov r8, r0 - add r6, sp, #0x14 - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - str r0, [sp, #8] - 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, r4, #0x18 - strb r4, [r0, #1] - adds r0, r6, #0 - movs r1, #0xc - add r2, sp, #0x10 - bl SetMonData - adds r0, r6, #0 - bl GiveMonToPlayer - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r5, #0 - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r4, #1 - bgt _080F9B48 - cmp r4, #0 - blt _080F9B48 - adds r0, r5, #0 - movs r1, #2 - bl GetSetPokedexFlag - adds r0, r5, #0 - movs r1, #3 - bl GetSetPokedexFlag -_080F9B48: - adds r0, r4, #0 - add sp, #0x78 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScriptGiveMon - - thumb_func_start ScriptGiveEgg -ScriptGiveEgg: @ 0x080F9B58 - push {lr} - sub sp, #0x68 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r0, sp - movs r2, #1 - bl sub_080703AC - add r2, sp, #0x64 - movs r0, #1 - strb r0, [r2] - mov r0, sp - movs r1, #0x2d - bl SetMonData - mov r0, sp - bl GiveMonToPlayer - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #0x68 - pop {r1} - bx r1 - thumb_func_end ScriptGiveEgg - - thumb_func_start HasEnoughMonsForDoubleBattle -HasEnoughMonsForDoubleBattle: @ 0x080F9B88 - push {lr} - bl GetMonsStateToDoubles - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #1 - beq _080F9BA4 - cmp r1, #1 - bgt _080F9BA0 - cmp r1, #0 - beq _080F9BA4 - b _080F9BA8 -_080F9BA0: - cmp r1, #2 - bne _080F9BA8 -_080F9BA4: - ldr r0, _080F9BAC - strh r1, [r0] -_080F9BA8: - pop {r0} - bx r0 - .align 2, 0 -_080F9BAC: .4byte gUnknown_2037290 - thumb_func_end HasEnoughMonsForDoubleBattle - - thumb_func_start CheckPartyMonHasHeldItem -CheckPartyMonHasHeldItem: @ 0x080F9BB0 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - movs r5, #0 - movs r7, #0xce - lsls r7, r7, #1 -_080F9BBC: - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _080F9BEC - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - beq _080F9BF0 - cmp r0, r7 - beq _080F9BF0 - adds r0, r4, #0 - movs r1, #0xc - bl GetMonData - cmp r0, r6 - bne _080F9BF0 - movs r0, #1 - b _080F9BF8 - .align 2, 0 -_080F9BEC: .4byte gUnknown_2024190 -_080F9BF0: - adds r5, #1 - cmp r5, #5 - ble _080F9BBC - movs r0, #0 -_080F9BF8: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CheckPartyMonHasHeldItem - - thumb_func_start sub_080F9C00 -sub_080F9C00: @ 0x080F9C00 - push {r4, lr} - movs r0, #0xaf - bl CheckPartyMonHasHeldItem - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r4, r0, #0 - cmp r4, #1 - bne _080F9C22 - movs r0, #0xaf - bl ItemIdToBerryType - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080F9C2C - bl GetBerryNameByBerryType -_080F9C22: - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080F9C2C: .4byte gUnknown_2021C40 - thumb_func_end sub_080F9C00 - - thumb_func_start CreateScriptedWildMon -CreateScriptedWildMon: @ 0x080F9C30 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x14 - adds r4, r0, #0 - adds r5, r1, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r7, r2, #0x10 - lsrs r6, r7, #0x10 - bl ZeroEnemyPartyMons - ldr r0, _080F9C8C - mov r8, r0 - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - str r0, [sp, #8] - str r0, [sp, #0xc] - mov r0, r8 - adds r1, r4, #0 - adds r2, r5, #0 - movs r3, #0x20 - bl CreateMon - cmp r6, #0 - beq _080F9C7E - add r0, sp, #0x10 - strb r6, [r0] - adds r1, r0, #0 - lsrs r0, r7, #0x18 - strb r0, [r1, #1] - mov r0, r8 - movs r1, #0xc - add r2, sp, #0x10 - bl SetMonData -_080F9C7E: - add sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F9C8C: .4byte gUnknown_20243E8 - thumb_func_end CreateScriptedWildMon - - thumb_func_start ScriptSetMonMoveSlot -ScriptSetMonMoveSlot: @ 0x080F9C90 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - cmp r3, #6 - bls _080F9CAC - ldr r0, _080F9CC0 - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 -_080F9CAC: - movs r0, #0x64 - muls r0, r3, r0 - ldr r1, _080F9CC4 - adds r0, r0, r1 - adds r1, r4, #0 - bl SetMonMoveSlot - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F9CC0: .4byte gUnknown_202418D -_080F9CC4: .4byte gUnknown_2024190 - thumb_func_end ScriptSetMonMoveSlot - - thumb_func_start ChooseHalfPartyForBattle -ChooseHalfPartyForBattle: @ 0x080F9CC8 - push {lr} - ldr r0, _080F9CE4 - ldr r1, _080F9CE8 - str r1, [r0, #8] - ldr r0, _080F9CEC - movs r1, #9 - bl VarSet - movs r0, #0 - bl InitChooseHalfPartyForBattle - pop {r0} - bx r0 - .align 2, 0 -_080F9CE4: .4byte gUnknown_3002360 -_080F9CE8: .4byte sub_080F9CF0 -_080F9CEC: .4byte 0x000040CF - thumb_func_end ChooseHalfPartyForBattle - - thumb_func_start sub_080F9CF0 -sub_080F9CF0: @ 0x080F9CF0 - push {lr} - ldr r0, _080F9D00 - ldrb r1, [r0] - cmp r1, #0 - bne _080F9D08 - ldr r0, _080F9D04 - strh r1, [r0] - b _080F9D0E - .align 2, 0 -_080F9D00: .4byte gUnknown_203CBC4 -_080F9D04: .4byte gUnknown_2037290 -_080F9D08: - ldr r1, _080F9D18 - movs r0, #1 - strh r0, [r1] -_080F9D0E: - ldr r0, _080F9D1C - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080F9D18: .4byte gUnknown_2037290 -_080F9D1C: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic - thumb_func_end sub_080F9CF0 - - thumb_func_start sub_080F9D20 -sub_080F9D20: @ 0x080F9D20 - push {lr} - ldr r1, _080F9D3C - ldr r0, _080F9D40 - str r0, [r1, #8] - ldr r0, _080F9D44 - ldrb r0, [r0] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl InitChooseHalfPartyForBattle - pop {r0} - bx r0 - .align 2, 0 -_080F9D3C: .4byte gUnknown_3002360 -_080F9D40: .4byte sub_080F9D48 -_080F9D44: .4byte gUnknown_2037280 - thumb_func_end sub_080F9D20 - - thumb_func_start sub_080F9D48 -sub_080F9D48: @ 0x080F9D48 - push {lr} - ldr r0, _080F9D58 - ldrb r1, [r0] - cmp r1, #0 - bne _080F9D60 - ldr r0, _080F9D5C - strh r1, [r0] - b _080F9D66 - .align 2, 0 -_080F9D58: .4byte gUnknown_203CBC4 -_080F9D5C: .4byte gUnknown_2037290 -_080F9D60: - ldr r1, _080F9D70 - movs r0, #1 - strh r0, [r1] -_080F9D66: - ldr r0, _080F9D74 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080F9D70: .4byte gUnknown_2037290 -_080F9D74: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic - thumb_func_end sub_080F9D48 - - thumb_func_start ReducePlayerPartyToSelectedMons -ReducePlayerPartyToSelectedMons: @ 0x080F9D78 - push {r4, r5, r6, r7, lr} - sub sp, #0x198 - add r0, sp, #0x190 - movs r1, #0 - str r1, [r0] - ldr r2, _080F9DE8 - mov r1, sp - bl CpuSet - movs r5, #0 - movs r7, #0x64 - ldr r6, _080F9DEC - mov r4, sp -_080F9D92: - ldr r0, _080F9DF0 - adds r1, r5, r0 - ldrb r0, [r1] - cmp r0, #0 - beq _080F9DAC - subs r0, #1 - adds r1, r0, #0 - muls r1, r7, r1 - adds r1, r1, r6 - adds r0, r4, #0 - movs r2, #0x64 - bl memcpy -_080F9DAC: - adds r4, #0x64 - adds r5, #1 - cmp r5, #3 - ble _080F9D92 - add r0, sp, #0x194 - movs r1, #0 - str r1, [r0] - ldr r4, _080F9DEC - ldr r2, _080F9DF4 - adds r1, r4, #0 - bl CpuSet - mov r5, sp - add r6, sp, #0x12c -_080F9DC8: - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0x64 - bl memcpy - adds r5, #0x64 - adds r4, #0x64 - cmp r5, r6 - ble _080F9DC8 - bl sub_0806B004 - add sp, #0x198 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080F9DE8: .4byte 0x05000064 -_080F9DEC: .4byte gUnknown_2024190 -_080F9DF0: .4byte gUnknown_203CBC4 -_080F9DF4: .4byte 0x05000096 - thumb_func_end ReducePlayerPartyToSelectedMons - - thumb_func_start sub_080F9DF8 -sub_080F9DF8: @ 0x080F9DF8 - push {lr} - movs r1, #0x41 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - beq _080F9E10 - movs r0, #0xce - lsls r0, r0, #1 - cmp r1, r0 - bne _080F9E14 -_080F9E10: - movs r0, #0 - b _080F9E16 -_080F9E14: - movs r0, #1 -_080F9E16: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080F9DF8 - - thumb_func_start AllMonsFainted -AllMonsFainted: @ 0x080F9E1C - push {r4, r5, lr} - ldr r4, _080F9E3C - movs r5, #0 -_080F9E22: - adds r0, r4, #0 - bl sub_080F9DF8 - cmp r0, #0 - beq _080F9E40 - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _080F9E40 - movs r0, #0 - b _080F9E4A - .align 2, 0 -_080F9E3C: .4byte gUnknown_2024190 -_080F9E40: - adds r5, #1 - adds r4, #0x64 - cmp r5, #5 - ble _080F9E22 - movs r0, #1 -_080F9E4A: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end AllMonsFainted - - thumb_func_start FaintFromFieldPoison -FaintFromFieldPoison: @ 0x080F9E50 - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x64 - adds r4, r0, #0 - muls r4, r1, r4 - ldr r0, _080F9E94 - adds r4, r4, r0 - movs r0, #0 - str r0, [sp] - adds r0, r4, #0 - movs r1, #7 - bl AdjustFriendship - adds r0, r4, #0 - movs r1, #0x37 - mov r2, sp - bl SetMonData - ldr r5, _080F9E98 - adds r0, r4, #0 - movs r1, #2 - adds r2, r5, #0 - bl GetMonData - adds r0, r5, #0 - bl StringGetEnd10 - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080F9E94: .4byte gUnknown_2024190 -_080F9E98: .4byte gUnknown_2021C40 - thumb_func_end FaintFromFieldPoison - - thumb_func_start MonFaintedFromPoison -MonFaintedFromPoison: @ 0x080F9E9C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x64 - muls r1, r0, r1 - ldr r0, _080F9ED8 - adds r4, r1, r0 - adds r0, r4, #0 - bl sub_080F9DF8 - cmp r0, #0 - beq _080F9EDC - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - bne _080F9EDC - adds r0, r4, #0 - movs r1, #0x37 - bl GetMonData - bl pokemon_ailments_get_primary - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080F9EDC - movs r0, #1 - b _080F9EDE - .align 2, 0 -_080F9ED8: .4byte gUnknown_2024190 -_080F9EDC: - movs r0, #0 -_080F9EDE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end MonFaintedFromPoison - - thumb_func_start Task_WhiteOut -Task_WhiteOut: @ 0x080F9EE4 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _080F9F08 - adds r4, r0, r1 - movs r0, #0 - ldrsh r5, [r4, r0] - cmp r5, #1 - beq _080F9F3E - cmp r5, #1 - bgt _080F9F0C - cmp r5, #0 - beq _080F9F12 - b _080F9FB2 - .align 2, 0 -_080F9F08: .4byte gUnknown_3005B68 -_080F9F0C: - cmp r5, #2 - beq _080F9F50 - b _080F9FB2 -_080F9F12: - ldrh r1, [r4, #2] - movs r2, #2 - ldrsh r0, [r4, r2] - cmp r0, #5 - bgt _080F9F38 -_080F9F1C: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - bl MonFaintedFromPoison - cmp r0, #0 - bne _080F9F8C - ldrh r0, [r4, #2] - adds r0, #1 - strh r0, [r4, #2] - adds r1, r0, #0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #5 - ble _080F9F1C -_080F9F38: - movs r0, #2 - strh r0, [r4] - b _080F9FB2 -_080F9F3E: - bl sub_08097CC4 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080F9FB2 - ldrh r0, [r4] - subs r0, #1 - strh r0, [r4] - b _080F9FB2 -_080F9F50: - bl AllMonsFainted - adds r1, r0, #0 - cmp r1, #0 - beq _080F9FA4 - bl InBattlePyramid - adds r4, r0, #0 - bl InBattlePike - orrs r4, r0 - lsls r4, r4, #0x18 - cmp r4, #0 - bne _080F9F76 - bl sub_081D52F0 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080F9F80 -_080F9F76: - ldr r0, _080F9F7C - strh r5, [r0] - b _080F9FA8 - .align 2, 0 -_080F9F7C: .4byte gUnknown_2037290 -_080F9F80: - ldr r1, _080F9F88 - movs r0, #1 - strh r0, [r1] - b _080F9FA8 - .align 2, 0 -_080F9F88: .4byte gUnknown_2037290 -_080F9F8C: - ldrb r0, [r4, #2] - bl FaintFromFieldPoison - ldr r0, _080F9FA0 - bl ShowFieldMessage - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - b _080F9FB2 - .align 2, 0 -_080F9FA0: .4byte gUnknown_85CC30F -_080F9FA4: - ldr r0, _080F9FB8 - strh r1, [r0] -_080F9FA8: - bl EnableBothScriptContexts - adds r0, r6, #0 - bl DestroyTask -_080F9FB2: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080F9FB8: .4byte gUnknown_2037290 - thumb_func_end Task_WhiteOut - - thumb_func_start sub_080F9FBC -sub_080F9FBC: @ 0x080F9FBC - push {lr} - ldr r0, _080F9FD0 - movs r1, #0x50 - bl CreateTask - bl sub_080988B8 - pop {r0} - bx r0 - .align 2, 0 -_080F9FD0: .4byte Task_WhiteOut - thumb_func_end sub_080F9FBC - - thumb_func_start DoPoisonFieldEffect -DoPoisonFieldEffect: @ 0x080F9FD4 - push {r4, r5, r6, r7, lr} - sub sp, #4 - ldr r4, _080FA040 - movs r7, #0 - movs r6, #0 - movs r5, #5 -_080F9FE0: - adds r0, r4, #0 - movs r1, #5 - bl GetMonData - cmp r0, #0 - beq _080FA024 - adds r0, r4, #0 - movs r1, #0x37 - bl GetMonData - bl pokemon_ailments_get_primary - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080FA024 - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - str r0, [sp] - cmp r0, #0 - beq _080FA016 - subs r0, #1 - str r0, [sp] - cmp r0, #0 - bne _080FA018 -_080FA016: - adds r6, #1 -_080FA018: - adds r0, r4, #0 - movs r1, #0x39 - mov r2, sp - bl SetMonData - adds r7, #1 -_080FA024: - adds r4, #0x64 - subs r5, #1 - cmp r5, #0 - bge _080F9FE0 - cmp r6, #0 - bne _080FA034 - cmp r7, #0 - beq _080FA038 -_080FA034: - bl sub_080FB718 -_080FA038: - cmp r6, #0 - beq _080FA044 - movs r0, #2 - b _080FA04E - .align 2, 0 -_080FA040: .4byte gUnknown_2024190 -_080FA044: - cmp r7, #0 - bne _080FA04C - movs r0, #0 - b _080FA04E -_080FA04C: - movs r0, #1 -_080FA04E: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end DoPoisonFieldEffect - - thumb_func_start GetMonSizeHash -GetMonSizeHash: @ 0x080FA058 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - adds r5, r0, #0 - movs r1, #0 - bl GetMonData - lsls r0, r0, #0x10 - str r0, [sp, #4] - lsrs r0, r0, #0x10 - 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 sb, r0 - mov r3, sb - ands r3, r6 - mov sb, r3 - adds r0, r5, #0 - movs r1, #0x2a - bl GetMonData - mov sl, r0 - ands r0, r6 - mov sl, 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, sb - eors r1, r3 - mov r8, r1 - mov r0, r8 - muls r0, r7, r0 - movs r1, #0xff - ldr r3, [sp] - ands r3, r1 - eors r0, r3 - eors r4, r2 - mov r1, sl - muls r1, r4, r1 - ldr r3, [sp, #4] - lsrs r2, r3, #0x18 - eors r1, r2 - lsls r0, r0, #8 - adds r0, r0, r1 - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end GetMonSizeHash - - thumb_func_start TranslateBigMonSizeTableIndex -TranslateBigMonSizeTableIndex: @ 0x080FA0FC - push {lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - movs r1, #1 - ldr r3, _080FA118 -_080FA106: - lsls r0, r1, #3 - adds r0, r0, r3 - ldrh r0, [r0, #4] - cmp r2, r0 - bhs _080FA11C - subs r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _080FA128 - .align 2, 0 -_080FA118: .4byte gUnknown_85694D0 -_080FA11C: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xe - bls _080FA106 - adds r0, r1, #0 -_080FA128: - pop {r1} - bx r1 - thumb_func_end TranslateBigMonSizeTableIndex - - thumb_func_start GetMonSize -GetMonSize: @ 0x080FA12C - push {r4, r5, r6, r7, lr} - sub sp, #8 - adds r6, r1, #0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0 - bl GetPokedexHeightWeight - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - adds r0, r6, #0 - bl TranslateBigMonSizeTableIndex - lsls r0, r0, #0x18 - ldr r1, _080FA19C - lsrs r0, r0, #0x15 - adds r0, r0, r1 - ldrh r1, [r0] - str r1, [sp] - movs r2, #0 - str r2, [sp, #4] - ldrb r2, [r0, #2] - movs r3, #0 - ldrh r4, [r0, #4] - movs r5, #0 - adds r0, r6, #0 - movs r1, #0 - subs r0, r0, r4 - sbcs r1, r5 - bl __udivdi3 - ldr r2, [sp] - ldr r3, [sp, #4] - adds r2, r2, r0 - adcs r3, r1 - str r2, [sp] - str r3, [sp, #4] - adds r0, r7, #0 - movs r1, #0 - bl __muldi3 - movs r2, #0xa - movs r3, #0 - bl __udivdi3 - add sp, #8 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080FA19C: .4byte gUnknown_85694D0 - thumb_func_end GetMonSize - - thumb_func_start sub_080FA1A0 -sub_080FA1A0: @ 0x080FA1A0 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _080FA1EC - mov r0, sp - movs r2, #2 - bl memcpy - adds r0, r5, #0 - movs r1, #0xa - bl __udivsi3 - adds r1, r0, #0 - adds r0, r4, #0 - movs r2, #0 - movs r3, #8 - bl sub_080089D8 - mov r1, sp - bl StringAppend - adds r4, r0, #0 - adds r0, r5, #0 - movs r1, #0xa - bl __umodsi3 - adds r1, r0, #0 - adds r0, r4, #0 - movs r2, #0 - movs r3, #1 - bl sub_080089D8 - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FA1EC: .4byte gUnknown_8569550 - thumb_func_end sub_080FA1A0 - - thumb_func_start CompareMonSize -CompareMonSize: @ 0x080FA1F0 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r7, r1, #0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r1, _080FA208 - ldrh r0, [r1] - cmp r0, #0xff - bne _080FA20C - movs r0, #0 - b _080FA276 - .align 2, 0 -_080FA208: .4byte gUnknown_2037290 -_080FA20C: - ldrh r1, [r1] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _080FA234 - adds r5, r1, r0 - adds r0, r5, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #1 - beq _080FA22E - adds r0, r5, #0 - movs r1, #0xb - bl GetMonData - cmp r0, r6 - beq _080FA238 -_080FA22E: - movs r0, #1 - b _080FA276 - .align 2, 0 -_080FA234: .4byte gUnknown_2024190 -_080FA238: - mov r4, sp - adds r0, r5, #0 - bl GetMonSizeHash - strh r0, [r4] - mov r0, sp - ldrh r1, [r0] - adds r0, r6, #0 - bl GetMonSize - adds r5, r0, #0 - ldrh r1, [r7] - adds r0, r6, #0 - bl GetMonSize - adds r4, r0, #0 - ldr r0, _080FA270 - adds r1, r5, #0 - bl sub_080FA1A0 - cmp r5, r4 - bls _080FA274 - mov r0, sp - ldrh r0, [r0] - strh r0, [r7] - movs r0, #3 - b _080FA276 - .align 2, 0 -_080FA270: .4byte gUnknown_2021C54 -_080FA274: - movs r0, #2 -_080FA276: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CompareMonSize - - thumb_func_start GetMonSizeRecordInfo -GetMonSizeRecordInfo: @ 0x080FA280 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldrh r1, [r5] - adds r0, r4, #0 - bl GetMonSize - adds r1, r0, #0 - ldr r0, _080FA2C0 - bl sub_080FA1A0 - ldr r0, _080FA2C4 - lsls r1, r4, #1 - adds r1, r1, r4 - lsls r1, r1, #1 - ldr r2, _080FA2C8 - adds r1, r1, r2 - bl StringCopy - ldrh r1, [r5] - movs r0, #0x80 - lsls r0, r0, #8 - cmp r1, r0 - bne _080FA2D4 - ldr r0, _080FA2CC - ldr r1, _080FA2D0 - bl StringCopy - b _080FA2DE - .align 2, 0 -_080FA2C0: .4byte gUnknown_2021C68 -_080FA2C4: .4byte gUnknown_2021C40 -_080FA2C8: .4byte gUnknown_82EA31C -_080FA2CC: .4byte gUnknown_2021C54 -_080FA2D0: .4byte gUnknown_85CC31B -_080FA2D4: - ldr r0, _080FA2E4 - ldr r1, _080FA2E8 - ldr r1, [r1] - bl StringCopy -_080FA2DE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FA2E4: .4byte gUnknown_2021C54 -_080FA2E8: .4byte gUnknown_3005AF0 - thumb_func_end GetMonSizeRecordInfo - - thumb_func_start sub_080FA2EC -sub_080FA2EC: @ 0x080FA2EC - push {lr} - ldr r0, _080FA2FC - movs r1, #0x80 - lsls r1, r1, #8 - bl VarSet - pop {r0} - bx r0 - .align 2, 0 -_080FA2FC: .4byte 0x00004047 - thumb_func_end sub_080FA2EC - - thumb_func_start GetSeedotSizeRecordInfo -GetSeedotSizeRecordInfo: @ 0x080FA300 - push {lr} - ldr r0, _080FA318 - bl GetVarPointer - adds r1, r0, #0 - movs r0, #0x95 - lsls r0, r0, #1 - bl GetMonSizeRecordInfo - pop {r0} - bx r0 - .align 2, 0 -_080FA318: .4byte 0x00004047 - thumb_func_end GetSeedotSizeRecordInfo - - thumb_func_start CompareSeedotSize -CompareSeedotSize: @ 0x080FA31C - push {r4, lr} - ldr r0, _080FA33C - bl GetVarPointer - adds r1, r0, #0 - ldr r4, _080FA340 - movs r0, #0x95 - lsls r0, r0, #1 - bl CompareMonSize - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FA33C: .4byte 0x00004047 -_080FA340: .4byte gUnknown_2037290 - thumb_func_end CompareSeedotSize - - thumb_func_start sub_080FA344 -sub_080FA344: @ 0x080FA344 - push {lr} - ldr r0, _080FA354 - movs r1, #0x80 - lsls r1, r1, #8 - bl VarSet - pop {r0} - bx r0 - .align 2, 0 -_080FA354: .4byte 0x0000404F - thumb_func_end sub_080FA344 - - thumb_func_start GetLotadSizeRecordInfo -GetLotadSizeRecordInfo: @ 0x080FA358 - push {lr} - ldr r0, _080FA36C - bl GetVarPointer - adds r1, r0, #0 - ldr r0, _080FA370 - bl GetMonSizeRecordInfo - pop {r0} - bx r0 - .align 2, 0 -_080FA36C: .4byte 0x0000404F -_080FA370: .4byte 0x00000127 - thumb_func_end GetLotadSizeRecordInfo - - thumb_func_start CompareLotadSize -CompareLotadSize: @ 0x080FA374 - push {r4, lr} - ldr r0, _080FA394 - bl GetVarPointer - adds r1, r0, #0 - ldr r4, _080FA398 - ldr r0, _080FA39C - bl CompareMonSize - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FA394: .4byte 0x0000404F -_080FA398: .4byte gUnknown_2037290 -_080FA39C: .4byte 0x00000127 - thumb_func_end CompareLotadSize - - thumb_func_start GiveGiftRibbonToParty -GiveGiftRibbonToParty: @ 0x080FA3A0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - movs r7, #0 - add r4, sp, #8 - movs r0, #1 - strb r0, [r4] - ldr r1, _080FA428 - mov r0, sp - movs r2, #7 - bl memcpy - mov r8, r4 - cmp r6, #0xa - bhi _080FA41C - cmp r5, #0x40 - bhi _080FA41C - ldr r0, _080FA42C - ldr r0, [r0] - ldr r1, _080FA430 - adds r0, r0, r1 - adds r0, r0, r6 - strb r5, [r0] - movs r5, #0 -_080FA3DA: - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _080FA434 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _080FA40C - adds r0, r4, #0 - movs r1, #6 - bl GetMonData - cmp r0, #0 - bne _080FA40C - mov r1, sp - adds r0, r1, r6 - ldrb r1, [r0] - adds r0, r4, #0 - mov r2, r8 - bl SetMonData - movs r7, #1 -_080FA40C: - adds r5, #1 - cmp r5, #5 - ble _080FA3DA - cmp r7, #0 - beq _080FA41C - ldr r0, _080FA438 - bl FlagSet -_080FA41C: - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080FA428: .4byte gUnknown_8569552 -_080FA42C: .4byte gUnknown_3005AEC -_080FA430: .4byte 0x000031A8 -_080FA434: .4byte gUnknown_2024190 -_080FA438: .4byte 0x0000089B - thumb_func_end GiveGiftRibbonToParty - - thumb_func_start sub_080FA43C -sub_080FA43C: @ 0x080FA43C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r3, r2, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r0, _080FA460 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_080FA4B4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FA460: .4byte sub_080FA500 - thumb_func_end sub_080FA43C - - thumb_func_start sub_080FA464 -sub_080FA464: @ 0x080FA464 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r3, r2, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r0, _080FA488 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_080FA4B4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FA488: .4byte sub_080FA66C - thumb_func_end sub_080FA464 - - thumb_func_start sub_080FA48C -sub_080FA48C: @ 0x080FA48C - push {lr} - ldr r0, _080FA49C - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_080FA49C: .4byte sub_080FA500 - thumb_func_end sub_080FA48C - - thumb_func_start FldEffPoison_IsActive -FldEffPoison_IsActive: @ 0x080FA4A0 - push {lr} - ldr r0, _080FA4B0 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_080FA4B0: .4byte sub_080FA66C - thumb_func_end FldEffPoison_IsActive - - thumb_func_start sub_080FA4B4 -sub_080FA4B4: @ 0x080FA4B4 - push {r4, r5, lr} - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - adds r5, r4, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r1, r3, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r2, r0, #0 - ldr r1, _080FA4FC - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r1, r0, r1 - movs r0, #0 - strh r0, [r1, #8] - movs r0, #0x10 - cmp r4, #0 - beq _080FA4E2 - adds r0, r4, #0 -_080FA4E2: - strh r0, [r1, #0xa] - movs r0, #0x14 - cmp r5, #0 - beq _080FA4EC - adds r0, r5, #0 -_080FA4EC: - strh r0, [r1, #0xc] - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FA4FC: .4byte gUnknown_3005B60 - thumb_func_end sub_080FA4B4 - - thumb_func_start sub_080FA500 -sub_080FA500: @ 0x080FA500 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080FA524 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _080FA580 - cmp r0, #1 - bgt _080FA528 - cmp r0, #0 - beq _080FA532 - b _080FA64E - .align 2, 0 -_080FA524: .4byte gUnknown_3005B60 -_080FA528: - cmp r0, #2 - beq _080FA5A2 - cmp r0, #3 - beq _080FA604 - b _080FA64E -_080FA532: - movs r0, #0x78 - strh r0, [r4, #0xe] - strh r0, [r4, #0x10] - movs r0, #0x50 - strh r0, [r4, #0x12] - movs r0, #0x51 - strh r0, [r4, #0x14] - movs r1, #0x80 - lsls r1, r1, #6 - movs r0, #0 - bl SetGpuRegBits - ldrh r1, [r4, #0xe] - lsls r1, r1, #8 - ldrh r0, [r4, #0x10] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x40 - bl SetGpuReg - ldrh r1, [r4, #0x12] - lsls r1, r1, #8 - ldrh r0, [r4, #0x14] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x44 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0x3f - bl SetGpuReg - movs r0, #0x4a - movs r1, #0 - bl SetGpuReg - b _080FA65E -_080FA580: - movs r0, #0x50 - bl GetGpuReg - strh r0, [r4, #0x16] - movs r0, #0x54 - bl GetGpuReg - strh r0, [r4, #0x18] - movs r0, #0x50 - movs r1, #0xbf - bl SetGpuReg - movs r0, #0x54 - movs r1, #0x10 - bl SetGpuReg - b _080FA65E -_080FA5A2: - ldrh r0, [r4, #0xe] - ldrh r1, [r4, #0xa] - subs r0, r0, r1 - movs r5, #0 - strh r0, [r4, #0xe] - ldrh r2, [r4, #0x10] - adds r1, r1, r2 - strh r1, [r4, #0x10] - lsls r0, r0, #0x10 - cmp r0, #0 - ble _080FA5C0 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xef - ble _080FA5E6 -_080FA5C0: - strh r5, [r4, #0xe] - movs r0, #0xf0 - strh r0, [r4, #0x10] - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - ldrh r1, [r4, #0x16] - movs r0, #0x50 - bl SetGpuReg - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - movs r2, #0 - bl BlendPalettes - ldr r0, _080FA600 - strh r5, [r0] -_080FA5E6: - ldrh r1, [r4, #0xe] - lsls r1, r1, #8 - ldrh r0, [r4, #0x10] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x40 - bl SetGpuReg - movs r1, #0xe - ldrsh r0, [r4, r1] - b _080FA648 - .align 2, 0 -_080FA600: .4byte gUnknown_20377B4 -_080FA604: - ldrh r0, [r4, #0x12] - ldrh r1, [r4, #0xc] - subs r0, r0, r1 - strh r0, [r4, #0x12] - ldrh r2, [r4, #0x14] - adds r1, r1, r2 - strh r1, [r4, #0x14] - lsls r0, r0, #0x10 - cmp r0, #0 - ble _080FA620 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x9f - ble _080FA632 -_080FA620: - movs r0, #0 - strh r0, [r4, #0x12] - movs r0, #0xa0 - strh r0, [r4, #0x14] - movs r1, #0x80 - lsls r1, r1, #6 - movs r0, #0 - bl ClearGpuRegBits -_080FA632: - ldrh r1, [r4, #0x12] - lsls r1, r1, #8 - ldrh r0, [r4, #0x14] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x44 - bl SetGpuReg - movs r1, #0x12 - ldrsh r0, [r4, r1] -_080FA648: - cmp r0, #0 - bne _080FA664 - b _080FA65E -_080FA64E: - ldrh r1, [r4, #0x16] - movs r0, #0x50 - bl SetGpuReg - adds r0, r5, #0 - bl DestroyTask - b _080FA664 -_080FA65E: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080FA664: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080FA500 - - thumb_func_start sub_080FA66C -sub_080FA66C: @ 0x080FA66C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080FA690 - adds r4, r0, r1 - movs r0, #8 - ldrsh r1, [r4, r0] - cmp r1, #1 - beq _080FA6A8 - cmp r1, #1 - bgt _080FA694 - cmp r1, #0 - beq _080FA69E - b _080FA79C - .align 2, 0 -_080FA690: .4byte gUnknown_3005B60 -_080FA694: - cmp r1, #2 - beq _080FA6F6 - cmp r1, #3 - beq _080FA748 - b _080FA79C -_080FA69E: - ldr r0, _080FA6A4 - strh r1, [r0] - b _080FA7BE - .align 2, 0 -_080FA6A4: .4byte gUnknown_20377B4 -_080FA6A8: - movs r1, #0 - strh r1, [r4, #0xe] - movs r0, #0xf0 - strh r0, [r4, #0x10] - strh r1, [r4, #0x12] - movs r0, #0xa0 - strh r0, [r4, #0x14] - movs r1, #0x80 - lsls r1, r1, #6 - movs r0, #0 - bl SetGpuRegBits - ldrh r1, [r4, #0xe] - lsls r1, r1, #8 - ldrh r0, [r4, #0x10] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x40 - bl SetGpuReg - ldrh r1, [r4, #0x12] - lsls r1, r1, #8 - ldrh r0, [r4, #0x14] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x44 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0x3f - bl SetGpuReg - movs r0, #0x4a - movs r1, #0 - bl SetGpuReg - b _080FA7BE -_080FA6F6: - ldrh r0, [r4, #0xc] - ldrh r2, [r4, #0x12] - adds r1, r0, r2 - strh r1, [r4, #0x12] - ldrh r2, [r4, #0x14] - subs r0, r2, r0 - strh r0, [r4, #0x14] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0x4f - bgt _080FA714 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x51 - bgt _080FA72C -_080FA714: - movs r0, #0x50 - strh r0, [r4, #0x12] - movs r0, #0x51 - strh r0, [r4, #0x14] - movs r0, #0x50 - movs r1, #0xbf - bl SetGpuReg - movs r0, #0x54 - movs r1, #0x10 - bl SetGpuReg -_080FA72C: - ldrh r1, [r4, #0x12] - lsls r1, r1, #8 - ldrh r0, [r4, #0x14] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x44 - bl SetGpuReg - movs r1, #0x12 - ldrsh r0, [r4, r1] - cmp r0, #0x50 - bne _080FA7C4 - b _080FA7BE -_080FA748: - ldrh r0, [r4, #0xa] - ldrh r2, [r4, #0xe] - adds r1, r0, r2 - strh r1, [r4, #0xe] - ldrh r2, [r4, #0x10] - subs r0, r2, r0 - strh r0, [r4, #0x10] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0x77 - bgt _080FA766 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x78 - bgt _080FA77C -_080FA766: - movs r0, #0x78 - strh r0, [r4, #0xe] - strh r0, [r4, #0x10] - subs r0, #0x79 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - ldr r1, _080FA798 - movs r0, #0 - strh r0, [r1] -_080FA77C: - ldrh r1, [r4, #0xe] - lsls r1, r1, #8 - ldrh r0, [r4, #0x10] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x40 - bl SetGpuReg - movs r1, #0xe - ldrsh r0, [r4, r1] - cmp r0, #0x78 - bne _080FA7C4 - b _080FA7BE - .align 2, 0 -_080FA798: .4byte gUnknown_20377B4 -_080FA79C: - movs r1, #0x80 - lsls r1, r1, #6 - movs r0, #0 - bl ClearGpuRegBits - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - adds r0, r5, #0 - bl DestroyTask - b _080FA7C4 -_080FA7BE: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080FA7C4: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080FA66C - - thumb_func_start SetCurrentSecretBase -SetCurrentSecretBase: @ 0x080FA7CC - push {lr} - ldr r0, _080FA7E0 - ldr r1, _080FA7E4 - ldr r1, [r1, #4] - bl SetCurSecretBaseIdFromPosition - bl TrySetCurSecretBaseIndex - pop {r0} - bx r0 - .align 2, 0 -_080FA7E0: .4byte gUnknown_203A80C -_080FA7E4: .4byte gUnknown_2036FB8 - thumb_func_end SetCurrentSecretBase - - thumb_func_start AdjustSecretPowerSpritePixelOffsets -AdjustSecretPowerSpritePixelOffsets: @ 0x080FA7E8 - push {lr} - ldr r0, _080FA808 - ldrb r1, [r0] - movs r0, #6 - ands r0, r1 - cmp r0, #0 - beq _080FA830 - ldr r1, _080FA80C - ldr r0, [r1, #4] - cmp r0, #2 - beq _080FA81E - cmp r0, #2 - bgt _080FA810 - cmp r0, #1 - beq _080FA816 - b _080FA86E - .align 2, 0 -_080FA808: .4byte gUnknown_2037230 -_080FA80C: .4byte gUnknown_20388A8 -_080FA810: - cmp r0, #3 - beq _080FA826 - b _080FA84C -_080FA816: - movs r0, #0x10 - str r0, [r1, #0x14] - movs r0, #0x28 - b _080FA86C -_080FA81E: - movs r0, #0x10 - str r0, [r1, #0x14] - movs r0, #8 - b _080FA86C -_080FA826: - movs r0, #8 - rsbs r0, r0, #0 - str r0, [r1, #0x14] - movs r0, #0x18 - b _080FA86C -_080FA830: - ldr r1, _080FA844 - ldr r0, [r1, #4] - cmp r0, #2 - beq _080FA85A - cmp r0, #2 - bgt _080FA848 - cmp r0, #1 - beq _080FA852 - b _080FA86E - .align 2, 0 -_080FA844: .4byte gUnknown_20388A8 -_080FA848: - cmp r0, #3 - beq _080FA85E -_080FA84C: - cmp r0, #4 - beq _080FA868 - b _080FA86E -_080FA852: - movs r0, #8 - str r0, [r1, #0x14] - movs r0, #0x28 - b _080FA86C -_080FA85A: - movs r0, #8 - b _080FA86A -_080FA85E: - movs r0, #8 - rsbs r0, r0, #0 - str r0, [r1, #0x14] - movs r0, #0x18 - b _080FA86C -_080FA868: - movs r0, #0x18 -_080FA86A: - str r0, [r1, #0x14] -_080FA86C: - str r0, [r1, #0x18] -_080FA86E: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AdjustSecretPowerSpritePixelOffsets - - thumb_func_start SetUpFieldMove_SecretPower -SetUpFieldMove_SecretPower: @ 0x080FA874 - push {r4, lr} - bl CheckPlayerHasSecretBase - ldr r0, _080FA8C8 - ldrh r0, [r0] - cmp r0, #1 - beq _080FA91E - bl GetPlayerFacingDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _080FA91E - ldr r4, _080FA8CC - adds r1, r4, #2 - adds r0, r4, #0 - bl GetXYCoordsOneStepInFrontOfPlayer - movs r1, #0 - ldrsh r0, [r4, r1] - movs r2, #2 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl MetatileBehavior_IsSecretBaseCave - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080FA8E0 - bl SetCurrentSecretBase - ldr r1, _080FA8D0 - ldr r0, _080FA8D4 - str r0, [r1] - ldr r1, _080FA8D8 - ldr r0, _080FA8DC - b _080FA930 - .align 2, 0 -_080FA8C8: .4byte gUnknown_2037290 -_080FA8CC: .4byte gUnknown_203A80C -_080FA8D0: .4byte gUnknown_3005B10 -_080FA8D4: .4byte FieldCallback_PrepareFadeInFromMenu -_080FA8D8: .4byte gUnknown_203CBB8 -_080FA8DC: .4byte sub_080FA94C -_080FA8E0: - adds r0, r4, #0 - bl MetatileBehavior_IsSecretBaseTree - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080FA910 - bl SetCurrentSecretBase - ldr r1, _080FA900 - ldr r0, _080FA904 - str r0, [r1] - ldr r1, _080FA908 - ldr r0, _080FA90C - b _080FA930 - .align 2, 0 -_080FA900: .4byte gUnknown_3005B10 -_080FA904: .4byte FieldCallback_PrepareFadeInFromMenu -_080FA908: .4byte gUnknown_203CBB8 -_080FA90C: .4byte sub_080FAA58 -_080FA910: - adds r0, r4, #0 - bl MetatileBehavior_IsSecretBaseShrub - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080FA922 -_080FA91E: - movs r0, #0 - b _080FA934 -_080FA922: - bl SetCurrentSecretBase - ldr r1, _080FA93C - ldr r0, _080FA940 - str r0, [r1] - ldr r1, _080FA944 - ldr r0, _080FA948 -_080FA930: - str r0, [r1] - movs r0, #1 -_080FA934: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080FA93C: .4byte gUnknown_3005B10 -_080FA940: .4byte FieldCallback_PrepareFadeInFromMenu -_080FA944: .4byte gUnknown_203CBB8 -_080FA948: .4byte sub_080FABBC - thumb_func_end SetUpFieldMove_SecretPower - - thumb_func_start sub_080FA94C -sub_080FA94C: @ 0x080FA94C - push {lr} - bl GetCursorSelectionMonId - ldr r1, _080FA964 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [r1] - ldr r0, _080FA968 - bl ScriptContext1_SetupScript - pop {r0} - bx r0 - .align 2, 0 -_080FA964: .4byte gUnknown_20388A8 -_080FA968: .4byte gUnknown_8245B35 - thumb_func_end sub_080FA94C - - thumb_func_start sub_080FA96C -sub_080FA96C: @ 0x080FA96C - push {lr} - bl oei_task_add - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080FA990 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r2, _080FA994 - lsrs r0, r2, #0x10 - strh r0, [r1, #0x18] - strh r2, [r1, #0x1a] - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_080FA990: .4byte gUnknown_3005B60 -_080FA994: .4byte StartSecretBaseCaveFieldEffect - thumb_func_end sub_080FA96C - - thumb_func_start StartSecretBaseCaveFieldEffect -StartSecretBaseCaveFieldEffect: @ 0x080FA998 - push {lr} - movs r0, #0xb - bl FieldEffectActiveListRemove - movs r0, #0x37 - bl FieldEffectStart - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end StartSecretBaseCaveFieldEffect - - thumb_func_start FldEff_SecretPowerCave -FldEff_SecretPowerCave: @ 0x080FA9AC - push {r4, lr} - bl AdjustSecretPowerSpritePixelOffsets - ldr r0, _080FA9EC - ldr r3, _080FA9F0 - ldr r1, _080FA9F4 - ldrb r1, [r1, #4] - lsls r2, r1, #4 - adds r2, r2, r1 - lsls r2, r2, #2 - adds r2, r2, r3 - ldrh r1, [r2, #2] - lsls r1, r1, #0x17 - lsrs r1, r1, #0x17 - ldr r4, _080FA9F8 - ldr r3, [r4, #0x14] - adds r1, r1, r3 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldrb r2, [r2] - ldr r3, [r4, #0x18] - adds r2, r2, r3 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - movs r3, #0x94 - bl CreateSprite - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080FA9EC: .4byte gUnknown_856A1E4 -_080FA9F0: .4byte gUnknown_20205AC -_080FA9F4: .4byte gUnknown_2037230 -_080FA9F8: .4byte gUnknown_20388A8 - thumb_func_end FldEff_SecretPowerCave - - thumb_func_start sub_080FA9FC -sub_080FA9FC: @ 0x080FA9FC - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x83 - bl sub_080A306C - movs r0, #0 - strh r0, [r4, #0x2e] - ldr r0, _080FAA14 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FAA14: .4byte sub_080FAA18 - thumb_func_end sub_080FA9FC - - thumb_func_start sub_080FAA18 -sub_080FAA18: @ 0x080FAA18 - push {lr} - adds r1, r0, #0 - ldrh r2, [r1, #0x2e] - movs r3, #0x2e - ldrsh r0, [r1, r3] - cmp r0, #0x27 - bgt _080FAA38 - adds r0, r2, #1 - strh r0, [r1, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x14 - bne _080FAA40 - bl ToggleSecretBaseEntranceMetatile - b _080FAA40 -_080FAA38: - movs r0, #0 - strh r0, [r1, #0x2e] - ldr r0, _080FAA44 - str r0, [r1, #0x1c] -_080FAA40: - pop {r0} - bx r0 - .align 2, 0 -_080FAA44: .4byte CaveEntranceSpriteCallbackEnd - thumb_func_end sub_080FAA18 - - thumb_func_start CaveEntranceSpriteCallbackEnd -CaveEntranceSpriteCallbackEnd: @ 0x080FAA48 - push {lr} - movs r1, #0x37 - bl FieldEffectStop - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end CaveEntranceSpriteCallbackEnd - - thumb_func_start sub_080FAA58 -sub_080FAA58: @ 0x080FAA58 - push {lr} - bl GetCursorSelectionMonId - ldr r1, _080FAA70 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [r1] - ldr r0, _080FAA74 - bl ScriptContext1_SetupScript - pop {r0} - bx r0 - .align 2, 0 -_080FAA70: .4byte gUnknown_20388A8 -_080FAA74: .4byte gUnknown_8245B8E - thumb_func_end sub_080FAA58 - - thumb_func_start sub_080FAA78 -sub_080FAA78: @ 0x080FAA78 - push {lr} - bl oei_task_add - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080FAA9C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r2, _080FAAA0 - lsrs r0, r2, #0x10 - strh r0, [r1, #0x18] - strh r2, [r1, #0x1a] - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_080FAA9C: .4byte gUnknown_3005B60 -_080FAAA0: .4byte StartSecretBaseTreeFieldEffect - thumb_func_end sub_080FAA78 - - thumb_func_start StartSecretBaseTreeFieldEffect -StartSecretBaseTreeFieldEffect: @ 0x080FAAA4 - push {lr} - movs r0, #0x1a - bl FieldEffectActiveListRemove - movs r0, #0x38 - bl FieldEffectStart - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end StartSecretBaseTreeFieldEffect - - thumb_func_start FldEff_SecretPowerTree -FldEff_SecretPowerTree: @ 0x080FAAB8 - push {r4, lr} - ldr r1, _080FAB30 - movs r2, #0 - ldrsh r0, [r1, r2] - movs r2, #2 - ldrsh r1, [r1, r2] - bl MapGridGetMetatileBehaviorAt - adds r2, r0, #0 - ldr r1, _080FAB34 - adds r0, r1, #0 - ands r2, r0 - cmp r2, #0x96 - bne _080FAADA - ldr r1, _080FAB38 - movs r0, #0 - str r0, [r1, #0x1c] -_080FAADA: - cmp r2, #0x9c - bne _080FAAE4 - ldr r1, _080FAB38 - movs r0, #2 - str r0, [r1, #0x1c] -_080FAAE4: - bl AdjustSecretPowerSpritePixelOffsets - ldr r0, _080FAB3C - ldr r3, _080FAB40 - ldr r1, _080FAB44 - ldrb r1, [r1, #4] - lsls r2, r1, #4 - adds r2, r2, r1 - lsls r2, r2, #2 - adds r2, r2, r3 - ldrh r1, [r2, #2] - lsls r1, r1, #0x17 - lsrs r1, r1, #0x17 - ldr r4, _080FAB38 - ldr r3, [r4, #0x14] - adds r1, r1, r3 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldrb r2, [r2] - ldr r3, [r4, #0x18] - adds r2, r2, r3 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - movs r3, #0x94 - bl CreateSprite - ldr r0, [r4, #0x1c] - cmp r0, #1 - beq _080FAB22 - cmp r0, #3 - bne _080FAB26 -_080FAB22: - bl ToggleSecretBaseEntranceMetatile -_080FAB26: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080FAB30: .4byte gUnknown_203A80C -_080FAB34: .4byte 0x00000FFF -_080FAB38: .4byte gUnknown_20388A8 -_080FAB3C: .4byte gUnknown_856A1FC -_080FAB40: .4byte gUnknown_20205AC -_080FAB44: .4byte gUnknown_2037230 - thumb_func_end FldEff_SecretPowerTree - - thumb_func_start TreeEntranceSpriteCallback1 -TreeEntranceSpriteCallback1: @ 0x080FAB48 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x9b - bl sub_080A306C - ldr r0, _080FAB6C - ldr r1, [r0, #0x1c] - adds r2, r4, #0 - adds r2, #0x2a - movs r0, #0 - strb r1, [r2] - strh r0, [r4, #0x2e] - ldr r0, _080FAB70 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FAB6C: .4byte gUnknown_20388A8 -_080FAB70: .4byte TreeEntranceSpriteCallback2 - thumb_func_end TreeEntranceSpriteCallback1 - - thumb_func_start TreeEntranceSpriteCallback2 -TreeEntranceSpriteCallback2: @ 0x080FAB74 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x27 - ble _080FAB9E - ldr r0, _080FABA4 - ldr r0, [r0, #0x1c] - cmp r0, #0 - beq _080FAB92 - cmp r0, #2 - bne _080FAB96 -_080FAB92: - bl ToggleSecretBaseEntranceMetatile -_080FAB96: - movs r0, #0 - strh r0, [r4, #0x2e] - ldr r0, _080FABA8 - str r0, [r4, #0x1c] -_080FAB9E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FABA4: .4byte gUnknown_20388A8 -_080FABA8: .4byte TreeEntranceSpriteCallbackEnd - thumb_func_end TreeEntranceSpriteCallback2 - - thumb_func_start TreeEntranceSpriteCallbackEnd -TreeEntranceSpriteCallbackEnd: @ 0x080FABAC - push {lr} - movs r1, #0x38 - bl FieldEffectStop - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end TreeEntranceSpriteCallbackEnd - - thumb_func_start sub_080FABBC -sub_080FABBC: @ 0x080FABBC - push {lr} - bl GetCursorSelectionMonId - ldr r1, _080FABD4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [r1] - ldr r0, _080FABD8 - bl ScriptContext1_SetupScript - pop {r0} - bx r0 - .align 2, 0 -_080FABD4: .4byte gUnknown_20388A8 -_080FABD8: .4byte gUnknown_8245BE7 - thumb_func_end sub_080FABBC - - thumb_func_start sub_080FABDC -sub_080FABDC: @ 0x080FABDC - push {lr} - bl oei_task_add - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080FAC00 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r2, _080FAC04 - lsrs r0, r2, #0x10 - strh r0, [r1, #0x18] - strh r2, [r1, #0x1a] - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_080FAC00: .4byte gUnknown_3005B60 -_080FAC04: .4byte StartSecretBaseShrubFieldEffect - thumb_func_end sub_080FABDC - - thumb_func_start StartSecretBaseShrubFieldEffect -StartSecretBaseShrubFieldEffect: @ 0x080FAC08 - push {lr} - movs r0, #0x1b - bl FieldEffectActiveListRemove - movs r0, #0x39 - bl FieldEffectStart - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end StartSecretBaseShrubFieldEffect - - thumb_func_start sub_080FAC1C -sub_080FAC1C: @ 0x080FAC1C - push {r4, lr} - bl AdjustSecretPowerSpritePixelOffsets - ldr r0, _080FAC5C - ldr r3, _080FAC60 - ldr r1, _080FAC64 - ldrb r1, [r1, #4] - lsls r2, r1, #4 - adds r2, r2, r1 - lsls r2, r2, #2 - adds r2, r2, r3 - ldrh r1, [r2, #2] - lsls r1, r1, #0x17 - lsrs r1, r1, #0x17 - ldr r4, _080FAC68 - ldr r3, [r4, #0x14] - adds r1, r1, r3 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldrb r2, [r2] - ldr r3, [r4, #0x18] - adds r2, r2, r3 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - movs r3, #0x94 - bl CreateSprite - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080FAC5C: .4byte gUnknown_856A214 -_080FAC60: .4byte gUnknown_20205AC -_080FAC64: .4byte gUnknown_2037230 -_080FAC68: .4byte gUnknown_20388A8 - thumb_func_end sub_080FAC1C - - thumb_func_start ShrubEntranceSpriteCallback1 -ShrubEntranceSpriteCallback1: @ 0x080FAC6C - push {r4, lr} - adds r4, r0, #0 - movs r0, #0xa9 - bl sub_080A306C - movs r0, #0 - strh r0, [r4, #0x2e] - ldr r0, _080FAC84 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FAC84: .4byte sub_080FAC88 - thumb_func_end ShrubEntranceSpriteCallback1 - - thumb_func_start sub_080FAC88 -sub_080FAC88: @ 0x080FAC88 - push {lr} - adds r1, r0, #0 - ldrh r2, [r1, #0x2e] - movs r3, #0x2e - ldrsh r0, [r1, r3] - cmp r0, #0x27 - bgt _080FACA8 - adds r0, r2, #1 - strh r0, [r1, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x14 - bne _080FACB0 - bl ToggleSecretBaseEntranceMetatile - b _080FACB0 -_080FACA8: - movs r0, #0 - strh r0, [r1, #0x2e] - ldr r0, _080FACB4 - str r0, [r1, #0x1c] -_080FACB0: - pop {r0} - bx r0 - .align 2, 0 -_080FACB4: .4byte ShrubEntranceSpriteCallbackEnd - thumb_func_end sub_080FAC88 - - thumb_func_start ShrubEntranceSpriteCallbackEnd -ShrubEntranceSpriteCallbackEnd: @ 0x080FACB8 - push {lr} - movs r1, #0x39 - bl FieldEffectStop - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end ShrubEntranceSpriteCallbackEnd - - thumb_func_start FldEff_SecretBasePCTurnOn -FldEff_SecretBasePCTurnOn: @ 0x080FACC8 - push {r4, lr} - sub sp, #4 - mov r4, sp - adds r4, #2 - mov r0, sp - adds r1, r4, #0 - bl GetXYCoordsOneStepInFrontOfPlayer - ldr r0, _080FAD08 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080FAD0C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - mov r0, sp - ldrh r0, [r0] - movs r2, #0 - strh r0, [r1, #8] - ldrh r0, [r4] - strh r0, [r1, #0xa] - strh r2, [r1, #0xc] - movs r0, #0 - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080FAD08: .4byte Task_SecretBasePCTurnOn -_080FAD0C: .4byte gUnknown_3005B60 - thumb_func_end FldEff_SecretBasePCTurnOn - - thumb_func_start Task_SecretBasePCTurnOn -Task_SecretBasePCTurnOn: @ 0x080FAD10 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080FAD38 - adds r4, r0, r1 - ldrh r0, [r4, #4] - subs r0, #4 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x10 - bhi _080FADDE - lsls r0, r0, #2 - ldr r1, _080FAD3C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FAD38: .4byte gUnknown_3005B68 -_080FAD3C: .4byte _080FAD40 -_080FAD40: @ jump table - .4byte _080FAD84 @ case 0 - .4byte _080FADDE @ case 1 - .4byte _080FADDE @ case 2 - .4byte _080FADDE @ case 3 - .4byte _080FAD92 @ case 4 - .4byte _080FADDE @ case 5 - .4byte _080FADDE @ case 6 - .4byte _080FADDE @ case 7 - .4byte _080FAD84 @ case 8 - .4byte _080FADDE @ case 9 - .4byte _080FADDE @ case 10 - .4byte _080FADDE @ case 11 - .4byte _080FAD92 @ case 12 - .4byte _080FADDE @ case 13 - .4byte _080FADDE @ case 14 - .4byte _080FADDE @ case 15 - .4byte _080FADB0 @ case 16 -_080FAD84: - movs r1, #0 - ldrsh r0, [r4, r1] - movs r2, #2 - ldrsh r1, [r4, r2] - movs r2, #0x89 - lsls r2, r2, #2 - b _080FAD9E -_080FAD92: - movs r1, #0 - ldrsh r0, [r4, r1] - movs r2, #2 - ldrsh r1, [r4, r2] - movs r2, #0x88 - lsls r2, r2, #2 -_080FAD9E: - bl MapGridSetMetatileIdAt - movs r1, #0 - ldrsh r0, [r4, r1] - movs r2, #2 - ldrsh r1, [r4, r2] - bl CurrentMapDrawMetatileAt - b _080FADDE -_080FADB0: - movs r1, #0 - ldrsh r0, [r4, r1] - movs r2, #2 - ldrsh r1, [r4, r2] - movs r2, #0x89 - lsls r2, r2, #2 - bl MapGridSetMetatileIdAt - movs r1, #0 - ldrsh r0, [r4, r1] - movs r2, #2 - ldrsh r1, [r4, r2] - bl CurrentMapDrawMetatileAt - movs r0, #0x3d - bl FieldEffectActiveListRemove - bl EnableBothScriptContexts - adds r0, r5, #0 - bl DestroyTask - b _080FADE4 -_080FADDE: - ldrh r0, [r4, #4] - adds r0, #1 - strh r0, [r4, #4] -_080FADE4: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Task_SecretBasePCTurnOn - - thumb_func_start DoSecretBasePCTurnOffEffect -DoSecretBasePCTurnOffEffect: @ 0x080FADEC - push {r4, lr} - sub sp, #4 - mov r4, sp - adds r4, #2 - mov r0, sp - adds r1, r4, #0 - bl GetXYCoordsOneStepInFrontOfPlayer - movs r0, #3 - bl sub_080A306C - ldr r0, _080FAE24 - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080FAE28 - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0 - ldrsh r1, [r4, r2] - movs r2, #0xe2 - lsls r2, r2, #4 - bl MapGridSetMetatileIdAt - b _080FAE38 - .align 2, 0 -_080FAE24: .4byte 0x00004054 -_080FAE28: - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0 - ldrsh r1, [r4, r2] - ldr r2, _080FAE50 - bl MapGridSetMetatileIdAt -_080FAE38: - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0 - ldrsh r1, [r4, r2] - bl CurrentMapDrawMetatileAt - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FAE50: .4byte 0x00000E21 - thumb_func_end DoSecretBasePCTurnOffEffect - - thumb_func_start PopSecretBaseBalloon -PopSecretBaseBalloon: @ 0x080FAE54 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - ldr r0, _080FAE94 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080FAE98 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r0, #0 - strh r4, [r1, #8] - strh r5, [r1, #0xa] - strh r6, [r1, #0xc] - strh r0, [r1, #0xe] - movs r0, #1 - strh r0, [r1, #0x10] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080FAE94: .4byte Task_PopSecretBaseBalloon -_080FAE98: .4byte gUnknown_3005B60 - thumb_func_end PopSecretBaseBalloon - - thumb_func_start Task_PopSecretBaseBalloon -Task_PopSecretBaseBalloon: @ 0x080FAE9C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080FAEBC - adds r4, r0, r1 - ldrh r1, [r4, #6] - movs r2, #6 - ldrsh r0, [r4, r2] - cmp r0, #6 - bne _080FAEC0 - movs r0, #0 - b _080FAEC2 - .align 2, 0 -_080FAEBC: .4byte gUnknown_3005B68 -_080FAEC0: - adds r0, r1, #1 -_080FAEC2: - strh r0, [r4, #6] - movs r3, #6 - ldrsh r0, [r4, r3] - cmp r0, #0 - bne _080FAF14 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #2 - bne _080FAEDC - movs r2, #0 - ldrsh r0, [r4, r2] - bl DoBalloonSoundEffect -_080FAEDC: - movs r3, #2 - ldrsh r0, [r4, r3] - movs r2, #4 - ldrsh r1, [r4, r2] - ldrh r2, [r4, #8] - ldrh r3, [r4] - adds r2, r2, r3 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - bl MapGridSetMetatileIdAt - movs r1, #2 - ldrsh r0, [r4, r1] - movs r2, #4 - ldrsh r1, [r4, r2] - bl CurrentMapDrawMetatileAt - ldrh r1, [r4, #8] - movs r3, #8 - ldrsh r0, [r4, r3] - cmp r0, #3 - bne _080FAF10 - adds r0, r5, #0 - bl DestroyTask - b _080FAF14 -_080FAF10: - adds r0, r1, #1 - strh r0, [r4, #8] -_080FAF14: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Task_PopSecretBaseBalloon - - thumb_func_start DoBalloonSoundEffect -DoBalloonSoundEffect: @ 0x080FAF1C - push {lr} - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - movs r0, #0xce - lsls r0, r0, #2 - cmp r1, r0 - beq _080FAF48 - cmp r1, r0 - bgt _080FAF38 - movs r0, #0x8a - lsls r0, r0, #2 - cmp r1, r0 - beq _080FAF60 - b _080FAF66 -_080FAF38: - movs r0, #0xcf - lsls r0, r0, #2 - cmp r1, r0 - beq _080FAF50 - adds r0, #4 - cmp r1, r0 - beq _080FAF58 - b _080FAF66 -_080FAF48: - movs r0, #0x4a - bl sub_080A306C - b _080FAF66 -_080FAF50: - movs r0, #0x4b - bl sub_080A306C - b _080FAF66 -_080FAF58: - movs r0, #0x4c - bl sub_080A306C - b _080FAF66 -_080FAF60: - movs r0, #0x4e - bl sub_080A306C -_080FAF66: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end DoBalloonSoundEffect - - thumb_func_start sub_080FAF6C -sub_080FAF6C: @ 0x080FAF6C - movs r0, #0 - bx lr - thumb_func_end sub_080FAF6C - - thumb_func_start sub_080FAF70 -sub_080FAF70: @ 0x080FAF70 - movs r0, #0 - bx lr - thumb_func_end sub_080FAF70 - - thumb_func_start DoSecretBaseBreakableDoorEffect -DoSecretBaseBreakableDoorEffect: @ 0x080FAF74 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - movs r0, #0x4d - bl sub_080A306C - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - ldr r2, _080FAFBC - adds r0, r5, #0 - adds r1, r4, #0 - bl MapGridSetMetatileIdAt - subs r6, r4, #1 - ldr r2, _080FAFC0 - 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, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080FAFBC: .4byte 0x00000276 -_080FAFC0: .4byte 0x0000026E - thumb_func_end DoSecretBaseBreakableDoorEffect - - thumb_func_start Task_ShatterSecretBaseBreakableDoor -Task_ShatterSecretBaseBreakableDoor: @ 0x080FAFC4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _080FAFF4 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r1, r0, r1 - ldrh r2, [r1, #8] - movs r3, #8 - ldrsh r0, [r1, r3] - cmp r0, #7 - bne _080FAFF8 - movs r2, #0xa - ldrsh r0, [r1, r2] - movs r3, #0xc - ldrsh r1, [r1, r3] - bl DoSecretBaseBreakableDoorEffect - adds r0, r4, #0 - bl DestroyTask - b _080FAFFC - .align 2, 0 -_080FAFF4: .4byte gUnknown_3005B60 -_080FAFF8: - adds r0, r2, #1 - strh r0, [r1, #8] -_080FAFFC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Task_ShatterSecretBaseBreakableDoor - - thumb_func_start ShatterSecretBaseBreakableDoor -ShatterSecretBaseBreakableDoor: @ 0x080FB004 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r7, r5, #0 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - adds r6, r4, #0 - bl GetPlayerFacingDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080FB02C - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - lsls r1, r4, #0x10 - asrs r1, r1, #0x10 - bl DoSecretBaseBreakableDoorEffect - b _080FB04E -_080FB02C: - cmp r0, #2 - bne _080FB04E - ldr r0, _080FB054 - movs r1, #5 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080FB058 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r0, #0 - strh r0, [r1, #8] - strh r7, [r1, #0xa] - strh r6, [r1, #0xc] -_080FB04E: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080FB054: .4byte Task_ShatterSecretBaseBreakableDoor -_080FB058: .4byte gUnknown_3005B60 - thumb_func_end ShatterSecretBaseBreakableDoor - - thumb_func_start Task_SecretBaseMusicNoteMatSound -Task_SecretBaseMusicNoteMatSound: @ 0x080FB05C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _080FB094 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r1, r0, r1 - ldrh r2, [r1, #0xa] - movs r3, #0xa - ldrsh r0, [r1, r3] - cmp r0, #7 - beq _080FB078 - b _080FB1D6 -_080FB078: - ldr r2, _080FB098 - adds r0, r2, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3b - bls _080FB08A - b _080FB1CE -_080FB08A: - lsls r0, r0, #2 - ldr r1, _080FB09C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FB094: .4byte gUnknown_3005B60 -_080FB098: .4byte 0xFFFFFD88 -_080FB09C: .4byte _080FB0A0 -_080FB0A0: @ jump table - .4byte _080FB190 @ case 0 - .4byte _080FB198 @ case 1 - .4byte _080FB1A0 @ case 2 - .4byte _080FB1A8 @ case 3 - .4byte _080FB1B0 @ case 4 - .4byte _080FB1B8 @ case 5 - .4byte _080FB1C0 @ case 6 - .4byte _080FB1CE @ case 7 - .4byte _080FB1CE @ case 8 - .4byte _080FB1CE @ case 9 - .4byte _080FB1CE @ case 10 - .4byte _080FB1CE @ case 11 - .4byte _080FB1CE @ case 12 - .4byte _080FB1CE @ case 13 - .4byte _080FB1CE @ case 14 - .4byte _080FB1CE @ case 15 - .4byte _080FB1CE @ case 16 - .4byte _080FB1CE @ case 17 - .4byte _080FB1CE @ case 18 - .4byte _080FB1CE @ case 19 - .4byte _080FB1CE @ case 20 - .4byte _080FB1CE @ case 21 - .4byte _080FB1CE @ case 22 - .4byte _080FB1CE @ case 23 - .4byte _080FB1CE @ case 24 - .4byte _080FB1CE @ case 25 - .4byte _080FB1CE @ case 26 - .4byte _080FB1CE @ case 27 - .4byte _080FB1CE @ case 28 - .4byte _080FB1CE @ case 29 - .4byte _080FB1CE @ case 30 - .4byte _080FB1CE @ case 31 - .4byte _080FB1CE @ case 32 - .4byte _080FB1CE @ case 33 - .4byte _080FB1CE @ case 34 - .4byte _080FB1CE @ case 35 - .4byte _080FB1CE @ case 36 - .4byte _080FB1CE @ case 37 - .4byte _080FB1CE @ case 38 - .4byte _080FB1CE @ case 39 - .4byte _080FB1CE @ case 40 - .4byte _080FB1CE @ case 41 - .4byte _080FB1CE @ case 42 - .4byte _080FB1CE @ case 43 - .4byte _080FB1CE @ case 44 - .4byte _080FB1CE @ case 45 - .4byte _080FB1CE @ case 46 - .4byte _080FB1CE @ case 47 - .4byte _080FB1CE @ case 48 - .4byte _080FB1CE @ case 49 - .4byte _080FB1CE @ case 50 - .4byte _080FB1CE @ case 51 - .4byte _080FB1CE @ case 52 - .4byte _080FB1CE @ case 53 - .4byte _080FB1CE @ case 54 - .4byte _080FB1CE @ case 55 - .4byte _080FB1CE @ case 56 - .4byte _080FB1CE @ case 57 - .4byte _080FB1CE @ case 58 - .4byte _080FB1C8 @ case 59 -_080FB190: - movs r0, #0x3e - bl sub_080A306C - b _080FB1CE -_080FB198: - movs r0, #0x3f - bl sub_080A306C - b _080FB1CE -_080FB1A0: - movs r0, #0x40 - bl sub_080A306C - b _080FB1CE -_080FB1A8: - movs r0, #0x41 - bl sub_080A306C - b _080FB1CE -_080FB1B0: - movs r0, #0x42 - bl sub_080A306C - b _080FB1CE -_080FB1B8: - movs r0, #0x43 - bl sub_080A306C - b _080FB1CE -_080FB1C0: - movs r0, #0x44 - bl sub_080A306C - b _080FB1CE -_080FB1C8: - movs r0, #0x45 - bl sub_080A306C -_080FB1CE: - adds r0, r4, #0 - bl DestroyTask - b _080FB1DA -_080FB1D6: - adds r0, r2, #1 - strh r0, [r1, #0xa] -_080FB1DA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end Task_SecretBaseMusicNoteMatSound - - thumb_func_start PlaySecretBaseMusicNoteMatSound -PlaySecretBaseMusicNoteMatSound: @ 0x080FB1E0 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r0, _080FB20C - movs r1, #5 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080FB210 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r0, #0 - strh r4, [r1, #8] - strh r0, [r1, #0xa] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FB20C: .4byte Task_SecretBaseMusicNoteMatSound -_080FB210: .4byte gUnknown_3005B60 - thumb_func_end PlaySecretBaseMusicNoteMatSound - - thumb_func_start SpriteCB_GlitterMatSparkle -SpriteCB_GlitterMatSparkle: @ 0x080FB214 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #8 - bne _080FB22C - movs r0, #0xc3 - bl sub_080A306C -_080FB22C: - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0x1f - ble _080FB23A - adds r0, r4, #0 - bl DestroySprite -_080FB23A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end SpriteCB_GlitterMatSparkle - - thumb_func_start DoSecretBaseGlitterMatSparkle -DoSecretBaseGlitterMatSparkle: @ 0x080FB240 - push {r4, lr} - sub sp, #4 - ldr r3, _080FB2D8 - ldr r2, _080FB2DC - ldrb r1, [r2, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r0, #0x10] - mov r0, sp - strh r1, [r0] - ldrb r1, [r2, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r0, [r0, #0x12] - mov r4, sp - adds r4, #2 - strh r0, [r4] - mov r0, sp - adds r1, r4, #0 - movs r2, #8 - movs r3, #4 - bl sub_08092A50 - ldr r0, _080FB2E0 - 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, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _080FB2CE - ldr r3, _080FB2E4 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r4, r2, r3 - movs r0, #0x3e - adds r0, r0, r4 - mov ip, r0 - ldrb r0, [r0] - movs r1, #2 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - ldrb r1, [r4, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - movs r1, #0xf - ands r0, r1 - movs r1, #0x50 - orrs r0, r1 - strb r0, [r4, #5] - adds r3, #0x1c - adds r2, r2, r3 - ldr r0, _080FB2E8 - str r0, [r2] - movs r0, #0 - strh r0, [r4, #0x2e] -_080FB2CE: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FB2D8: .4byte gUnknown_2036FF0 -_080FB2DC: .4byte gUnknown_2037230 -_080FB2E0: .4byte gUnknown_84DDE4C -_080FB2E4: .4byte gUnknown_20205AC -_080FB2E8: .4byte SpriteCB_GlitterMatSparkle - thumb_func_end DoSecretBaseGlitterMatSparkle - - thumb_func_start FldEff_SandPillar -FldEff_SandPillar: @ 0x080FB2EC - push {r4, lr} - sub sp, #4 - bl sub_080987DC - mov r4, sp - adds r4, #2 - mov r0, sp - adds r1, r4, #0 - bl GetXYCoordsOneStepInFrontOfPlayer - ldr r1, _080FB328 - 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 GetPlayerFacingDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - beq _080FB36C - cmp r0, #2 - bgt _080FB32C - cmp r0, #1 - beq _080FB336 - b _080FB3FC - .align 2, 0 -_080FB328: .4byte gUnknown_20388A8 -_080FB32C: - cmp r0, #3 - beq _080FB39C - cmp r0, #4 - beq _080FB3D4 - b _080FB3FC -_080FB336: - ldr r0, _080FB360 - ldr r3, _080FB364 - ldr r1, _080FB368 - ldrb r1, [r1, #4] - lsls r2, r1, #4 - adds r2, r2, r1 - lsls r2, r2, #2 - adds r2, r2, r3 - ldrh r1, [r2, #2] - lsls r1, r1, #0x17 - lsrs r1, r1, #7 - movs r3, #0x80 - lsls r3, r3, #0xc - adds r1, r1, r3 - asrs r1, r1, #0x10 - ldrb r2, [r2] - adds r2, #0x20 - movs r3, #0 - bl CreateSprite - b _080FB3FC - .align 2, 0 -_080FB360: .4byte gUnknown_856A270 -_080FB364: .4byte gUnknown_20205AC -_080FB368: .4byte gUnknown_2037230 -_080FB36C: - ldr r0, _080FB390 - ldr r3, _080FB394 - ldr r1, _080FB398 - ldrb r1, [r1, #4] - lsls r2, r1, #4 - adds r2, r2, r1 - lsls r2, r2, #2 - adds r2, r2, r3 - ldrh r1, [r2, #2] - lsls r1, r1, #0x17 - lsrs r1, r1, #7 - movs r3, #0x80 - lsls r3, r3, #0xc - adds r1, r1, r3 - asrs r1, r1, #0x10 - ldrb r2, [r2] - b _080FB3BC - .align 2, 0 -_080FB390: .4byte gUnknown_856A270 -_080FB394: .4byte gUnknown_20205AC -_080FB398: .4byte gUnknown_2037230 -_080FB39C: - ldr r0, _080FB3C4 - ldr r3, _080FB3C8 - ldr r1, _080FB3CC - ldrb r1, [r1, #4] - lsls r2, r1, #4 - adds r2, r2, r1 - lsls r2, r2, #2 - adds r2, r2, r3 - ldrh r1, [r2, #2] - lsls r1, r1, #0x17 - lsrs r1, r1, #7 - ldr r3, _080FB3D0 - adds r1, r1, r3 - asrs r1, r1, #0x10 - ldrb r2, [r2] - adds r2, #0x10 -_080FB3BC: - movs r3, #0x94 - bl CreateSprite - b _080FB3FC - .align 2, 0 -_080FB3C4: .4byte gUnknown_856A270 -_080FB3C8: .4byte gUnknown_20205AC -_080FB3CC: .4byte gUnknown_2037230 -_080FB3D0: .4byte 0xFFF80000 -_080FB3D4: - ldr r0, _080FB408 - ldr r3, _080FB40C - ldr r1, _080FB410 - ldrb r1, [r1, #4] - lsls r2, r1, #4 - adds r2, r2, r1 - lsls r2, r2, #2 - adds r2, r2, r3 - ldrh r1, [r2, #2] - lsls r1, r1, #0x17 - lsrs r1, r1, #7 - movs r3, #0xc0 - lsls r3, r3, #0xd - adds r1, r1, r3 - asrs r1, r1, #0x10 - ldrb r2, [r2] - adds r2, #0x10 - movs r3, #0x94 - bl CreateSprite -_080FB3FC: - movs r0, #0 - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080FB408: .4byte gUnknown_856A270 -_080FB40C: .4byte gUnknown_20205AC -_080FB410: .4byte gUnknown_2037230 - thumb_func_end FldEff_SandPillar - - thumb_func_start SpriteCB_SandPillar_0 -SpriteCB_SandPillar_0: @ 0x080FB414 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x83 - bl sub_080A306C - ldr r4, _080FB440 - ldr r0, [r4, #0x14] - ldr r1, [r4, #0x18] - subs r1, #1 - bl MapGridGetMetatileIdAt - ldr r1, _080FB444 - cmp r0, r1 - bne _080FB44C - ldr r0, [r4, #0x14] - ldr r1, [r4, #0x18] - subs r1, #1 - ldr r2, _080FB448 - bl MapGridSetMetatileIdAt - b _080FB45A - .align 2, 0 -_080FB440: .4byte gUnknown_20388A8 -_080FB444: .4byte 0x00000286 -_080FB448: .4byte 0x00000E02 -_080FB44C: - ldr r0, [r4, #0x14] - ldr r1, [r4, #0x18] - subs r1, #1 - movs r2, #0xa1 - lsls r2, r2, #2 - bl MapGridSetMetatileIdAt -_080FB45A: - ldr r4, _080FB488 - ldr r0, [r4, #0x14] - ldr r1, [r4, #0x18] - ldr r2, _080FB48C - bl MapGridSetMetatileIdAt - ldr r0, [r4, #0x14] - ldr r1, [r4, #0x18] - subs r1, #1 - bl CurrentMapDrawMetatileAt - ldr r0, [r4, #0x14] - ldr r1, [r4, #0x18] - bl CurrentMapDrawMetatileAt - movs r0, #0 - strh r0, [r5, #0x2e] - ldr r0, _080FB490 - str r0, [r5, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FB488: .4byte gUnknown_20388A8 -_080FB48C: .4byte 0x0000020A -_080FB490: .4byte SpriteCB_SandPillar_1 - thumb_func_end SpriteCB_SandPillar_0 - - thumb_func_start SpriteCB_SandPillar_1 -SpriteCB_SandPillar_1: @ 0x080FB494 - push {r4, r5, lr} - adds r5, r0, #0 - ldrh r1, [r5, #0x2e] - movs r2, #0x2e - ldrsh r0, [r5, r2] - cmp r0, #0x11 - bgt _080FB4A8 - adds r0, r1, #1 - strh r0, [r5, #0x2e] - b _080FB4C4 -_080FB4A8: - ldr r4, _080FB4CC - ldr r0, [r4, #0x14] - ldr r1, [r4, #0x18] - ldr r2, _080FB4D0 - bl MapGridSetMetatileIdAt - ldr r0, [r4, #0x14] - ldr r1, [r4, #0x18] - bl CurrentMapDrawMetatileAt - movs r0, #0 - strh r0, [r5, #0x2e] - ldr r0, _080FB4D4 - str r0, [r5, #0x1c] -_080FB4C4: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FB4CC: .4byte gUnknown_20388A8 -_080FB4D0: .4byte 0x00000E8C -_080FB4D4: .4byte sub_080FB4D8 - thumb_func_end SpriteCB_SandPillar_1 - - thumb_func_start sub_080FB4D8 -sub_080FB4D8: @ 0x080FB4D8 - push {lr} - movs r1, #0x34 - bl FieldEffectStop - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end sub_080FB4D8 - - thumb_func_start GetShieldToyTVDecorationInfo -GetShieldToyTVDecorationInfo: @ 0x080FB4E8 - push {r4, lr} - sub sp, #4 - mov r4, sp - adds r4, #2 - 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, _080FB520 - cmp r1, r0 - beq _080FB5DC - cmp r1, r0 - bgt _080FB524 - subs r0, #0x17 - cmp r1, r0 - beq _080FB584 - adds r0, #0x16 - cmp r1, r0 - beq _080FB5D0 - b _080FB63E - .align 2, 0 -_080FB520: .4byte 0x000002F5 -_080FB524: - ldr r0, _080FB568 - cmp r1, r0 - beq _080FB614 - adds r0, #0x40 - cmp r1, r0 - beq _080FB532 - b _080FB63E -_080FB532: - ldr r0, _080FB56C - movs r1, #0x64 - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - ldr r0, _080FB570 - ldr r1, _080FB574 - bl StringCopy - ldr r1, _080FB578 - movs r0, #0 - strh r0, [r1] - ldr r0, _080FB57C - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080FB63E - ldr r4, _080FB580 - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r0, #0x10 - b _080FB5FA - .align 2, 0 -_080FB568: .4byte 0x000002F6 -_080FB56C: .4byte gUnknown_2021C40 -_080FB570: .4byte gUnknown_2021C54 -_080FB574: .4byte gUnknown_85CA73F -_080FB578: .4byte gUnknown_2037290 -_080FB57C: .4byte 0x00004054 -_080FB580: .4byte 0x000040EE -_080FB584: - ldr r0, _080FB5B8 - movs r1, #0x32 - movs r2, #0 - movs r3, #2 - bl sub_080089D8 - ldr r0, _080FB5BC - ldr r1, _080FB5C0 - bl StringCopy - ldr r1, _080FB5C4 - movs r0, #0 - strh r0, [r1] - ldr r0, _080FB5C8 - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080FB63E - ldr r4, _080FB5CC - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r0, #0x20 - b _080FB5FA - .align 2, 0 -_080FB5B8: .4byte gUnknown_2021C40 -_080FB5BC: .4byte gUnknown_2021C54 -_080FB5C0: .4byte gUnknown_85CA742 -_080FB5C4: .4byte gUnknown_2037290 -_080FB5C8: .4byte 0x00004054 -_080FB5CC: .4byte 0x000040EE -_080FB5D0: - ldr r1, _080FB5D8 - movs r0, #1 - b _080FB5E0 - .align 2, 0 -_080FB5D8: .4byte gUnknown_2037290 -_080FB5DC: - ldr r1, _080FB608 - movs r0, #2 -_080FB5E0: - strh r0, [r1] - ldr r0, _080FB60C - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080FB63E - ldr r4, _080FB610 - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r0, #0x80 -_080FB5FA: - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl VarSet - b _080FB63E - .align 2, 0 -_080FB608: .4byte gUnknown_2037290 -_080FB60C: .4byte 0x00004054 -_080FB610: .4byte 0x000040EE -_080FB614: - ldr r1, _080FB648 - movs r0, #3 - strh r0, [r1] - ldr r0, _080FB64C - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080FB63E - ldr r4, _080FB650 - adds r0, r4, #0 - bl VarGet - adds r1, r0, #0 - movs r0, #0x80 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl VarSet -_080FB63E: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FB648: .4byte gUnknown_2037290 -_080FB64C: .4byte 0x00004054 -_080FB650: .4byte 0x000040EE - thumb_func_end GetShieldToyTVDecorationInfo - - thumb_func_start sub_080FB654 -sub_080FB654: @ 0x080FB654 - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r6, r4, #0 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - bl CurMapIsSecretBase - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FB698 - cmp r5, #0 - bne _080FB68C - ldr r1, _080FB684 - adds r0, r4, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bls _080FB680 - ldr r0, _080FB688 - cmp r4, r0 - bne _080FB698 -_080FB680: - movs r0, #1 - b _080FB69A - .align 2, 0 -_080FB684: .4byte 0xFFFFFD7B -_080FB688: .4byte 0x00000237 -_080FB68C: - ldr r0, _080FB6A0 - cmp r4, r0 - beq _080FB680 - ldr r0, _080FB6A4 - cmp r6, r0 - beq _080FB680 -_080FB698: - movs r0, #0 -_080FB69A: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080FB6A0: .4byte 0x0000028D -_080FB6A4: .4byte 0x0000023F - thumb_func_end sub_080FB654 - - thumb_func_start Task_FieldPoisonEffect -Task_FieldPoisonEffect: @ 0x080FB6A8 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _080FB6CC - adds r1, r0, r1 - movs r3, #0 - ldrsh r0, [r1, r3] - cmp r0, #1 - beq _080FB6E6 - cmp r0, #1 - bgt _080FB6D0 - cmp r0, #0 - beq _080FB6D6 - b _080FB702 - .align 2, 0 -_080FB6CC: .4byte gUnknown_3005B68 -_080FB6D0: - cmp r0, #2 - beq _080FB6FA - b _080FB702 -_080FB6D6: - ldrh r0, [r1, #2] - adds r0, #2 - strh r0, [r1, #2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #8 - ble _080FB702 - b _080FB6F2 -_080FB6E6: - ldrh r0, [r1, #2] - subs r0, #2 - strh r0, [r1, #2] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080FB702 -_080FB6F2: - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _080FB702 -_080FB6FA: - adds r0, r2, #0 - bl DestroyTask - b _080FB712 -_080FB702: - ldrh r0, [r1, #2] - lsls r1, r0, #4 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x4c - bl SetGpuReg -_080FB712: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Task_FieldPoisonEffect - - thumb_func_start sub_080FB718 -sub_080FB718: @ 0x080FB718 - push {lr} - movs r0, #0x4f - bl sub_080A306C - ldr r0, _080FB72C - movs r1, #0x50 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080FB72C: .4byte Task_FieldPoisonEffect - thumb_func_end sub_080FB718 - - thumb_func_start sub_080FB730 -sub_080FB730: @ 0x080FB730 - push {lr} - ldr r0, _080FB740 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_080FB740: .4byte Task_FieldPoisonEffect - thumb_func_end sub_080FB730 - - thumb_func_start sub_080FB744 -sub_080FB744: @ 0x080FB744 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080FB758 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r0, _080FB75C - str r0, [r1] - bx lr - .align 2, 0 -_080FB758: .4byte gUnknown_3005B60 -_080FB75C: .4byte Task_WateringBerryTreeAnim_1 - thumb_func_end sub_080FB744 - - thumb_func_start Task_WateringBerryTreeAnim_1 -Task_WateringBerryTreeAnim_1: @ 0x080FB760 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _080FB7C4 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080FB7C8 - adds r4, r0, r1 - adds r0, r4, #0 - bl EventObjectIsMovementOverridden - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FB78C - adds r0, r4, #0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FB7BE -_080FB78C: - bl GetPlayerFacingDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_0808BB8C - bl GetPlayerFacingDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_08092F08 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetHeldMovement - ldr r1, _080FB7CC - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080FB7D0 - str r1, [r0] -_080FB7BE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FB7C4: .4byte gUnknown_2037230 -_080FB7C8: .4byte gUnknown_2036FF0 -_080FB7CC: .4byte gUnknown_3005B60 -_080FB7D0: .4byte Task_WateringBerryTreeAnim_2 - thumb_func_end Task_WateringBerryTreeAnim_1 - - thumb_func_start Task_WateringBerryTreeAnim_2 -Task_WateringBerryTreeAnim_2: @ 0x080FB7D4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080FB828 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080FB82C - adds r5, r0, r1 - adds r0, r5, #0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FB838 - ldr r1, _080FB830 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r2, r0, r1 - ldrh r0, [r2, #0xa] - adds r1, r0, #1 - strh r1, [r2, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #9 - bgt _080FB834 - bl GetPlayerFacingDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_08092F08 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl EventObjectSetHeldMovement - b _080FB838 - .align 2, 0 -_080FB828: .4byte gUnknown_2037230 -_080FB82C: .4byte gUnknown_2036FF0 -_080FB830: .4byte gUnknown_3005B60 -_080FB834: - ldr r0, _080FB840 - str r0, [r2] -_080FB838: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FB840: .4byte AnimBonemerangProjectileEnd - thumb_func_end Task_WateringBerryTreeAnim_2 - - thumb_func_start AnimBonemerangProjectileEnd -AnimBonemerangProjectileEnd: @ 0x080FB844 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_0808B634 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl SetPlayerAvatarTransitionFlags - adds r0, r4, #0 - bl DestroyTask - bl EnableBothScriptContexts - pop {r4} - pop {r0} - bx r0 - thumb_func_end AnimBonemerangProjectileEnd - - thumb_func_start DoWateringBerryTreeAnim -DoWateringBerryTreeAnim: @ 0x080FB868 - push {lr} - ldr r0, _080FB878 - movs r1, #0x50 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080FB878: .4byte sub_080FB744 - thumb_func_end DoWateringBerryTreeAnim - - thumb_func_start CreateRecordMixingSprite -CreateRecordMixingSprite: @ 0x080FB87C - push {r4, r5, lr} - ldr r0, _080FB8D0 - bl LoadSpritePalette - ldr r0, _080FB8D4 - movs r1, #0 - movs r2, #0 - movs r3, #0x52 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0x40 - beq _080FB8DC - lsls r0, r5, #4 - adds r0, r0, r5 - lsls r0, r0, #2 - ldr r1, _080FB8D8 - 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_08092960 - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #2 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r4, #0x20] - adds r0, #0x10 - strh r0, [r4, #0x20] - ldrh r0, [r4, #0x22] - adds r0, #2 - strh r0, [r4, #0x22] - adds r0, r5, #0 - b _080FB8DE - .align 2, 0 -_080FB8D0: .4byte gUnknown_856A448 -_080FB8D4: .4byte gUnknown_856A464 -_080FB8D8: .4byte gUnknown_20205AC -_080FB8DC: - movs r0, #0x40 -_080FB8DE: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end CreateRecordMixingSprite - - thumb_func_start DestroyRecordMixingSprite -DestroyRecordMixingSprite: @ 0x080FB8E4 - push {r4, r5, r6, r7, lr} - ldr r4, _080FB918 - adds r7, r4, #0 - movs r6, #0 - movs r5, #0x3f -_080FB8EE: - adds r0, r7, #0 - adds r0, #0x14 - adds r0, r6, r0 - ldr r1, [r0] - ldr r0, _080FB91C - cmp r1, r0 - bne _080FB908 - adds r0, r4, #0 - bl FreeSpritePalette - adds r0, r4, #0 - bl DestroySprite -_080FB908: - adds r4, #0x44 - adds r6, #0x44 - subs r5, #1 - cmp r5, #0 - bge _080FB8EE - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080FB918: .4byte gUnknown_20205AC -_080FB91C: .4byte gUnknown_856A464 - thumb_func_end DestroyRecordMixingSprite - - thumb_func_start sub_080FB920 -sub_080FB920: @ 0x080FB920 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x78 - bl __modsi3 - cmp r0, #0 - bne _080FB934 - movs r0, #1 - rsbs r0, r0, #0 - b _080FB946 -_080FB934: - adds r0, r4, #0 - movs r1, #0xa - bl __modsi3 - cmp r0, #4 - ble _080FB944 - movs r0, #0 - b _080FB946 -_080FB944: - movs r0, #1 -_080FB946: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_080FB920 - - thumb_func_start GetTruckBoxMovement -GetTruckBoxMovement: @ 0x080FB94C - push {lr} - adds r0, #0x78 - movs r1, #0xb4 - bl __modsi3 - cmp r0, #0 - beq _080FB95E - movs r0, #0 - b _080FB962 -_080FB95E: - movs r0, #1 - rsbs r0, r0, #0 -_080FB962: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetTruckBoxMovement - - thumb_func_start Task_Truck1 -Task_Truck1: @ 0x080FB968 - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080FBA0C - adds r5, r1, r0 - movs r1, #0 - ldrsh r0, [r5, r1] - adds r0, #0x1e - bl GetTruckBoxMovement - ldr r4, _080FBA10 - ldr r2, [r4] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - lsls r0, r0, #0x12 - movs r3, #0xc0 - lsls r3, r3, #0xa - orrs r0, r3 - asrs r0, r0, #0x10 - str r0, [sp] - movs r0, #1 - movs r3, #3 - bl sub_0808E19C - movs r3, #0 - ldrsh r0, [r5, r3] - bl GetTruckBoxMovement - ldr r2, [r4] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - lsls r0, r0, #0x11 - ldr r3, _080FBA14 - adds r0, r0, r3 - asrs r0, r0, #0x10 - str r0, [sp] - movs r0, #2 - movs r3, #0 - bl sub_0808E19C - movs r1, #0 - ldrsh r0, [r5, r1] - bl GetTruckBoxMovement - ldr r2, [r4] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - movs r4, #0 - movs r3, #3 - rsbs r3, r3, #0 - lsls r0, r0, #0x12 - asrs r0, r0, #0x10 - str r0, [sp] - movs r0, #3 - bl sub_0808E19C - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - lsls r0, r0, #0x10 - ldr r1, _080FBA18 - cmp r0, r1 - bne _080FB9F0 - strh r4, [r5] -_080FB9F0: - movs r3, #0 - ldrsh r0, [r5, r3] - bl sub_080FB920 - adds r1, r0, #0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #0 - bl SetCameraPanning - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FBA0C: .4byte gUnknown_3005B68 -_080FBA10: .4byte gUnknown_3005AEC -_080FBA14: .4byte 0xFFFD0000 -_080FBA18: .4byte 0x75300000 - thumb_func_end Task_Truck1 - - thumb_func_start Task_Truck2 -Task_Truck2: @ 0x080FBA1C - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r3, r0, #3 - ldr r4, _080FBA5C - adds r7, r3, r4 - ldrh r1, [r7] - adds r1, #1 - strh r1, [r7] - ldrh r0, [r7, #4] - adds r0, #1 - strh r0, [r7, #4] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #5 - ble _080FBA4C - movs r0, #0 - strh r0, [r7] - ldrh r0, [r7, #2] - adds r0, #1 - strh r0, [r7, #2] -_080FBA4C: - ldrh r0, [r7, #2] - cmp r0, #0x13 - bne _080FBA60 - adds r0, r2, #0 - bl DestroyTask - b _080FBB18 - .align 2, 0 -_080FBA5C: .4byte gUnknown_3005B68 -_080FBA60: - ldr r2, _080FBB20 - movs r1, #2 - ldrsh r0, [r7, r1] - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #2 - bne _080FBA7C - adds r0, r4, #0 - subs r0, #8 - adds r0, r3, r0 - ldr r1, _080FBB24 - str r1, [r0] -_080FBA7C: - movs r4, #2 - ldrsh r0, [r7, r4] - adds r0, r0, r2 - movs r5, #0 - ldrsb r5, [r0, r5] - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - movs r1, #4 - ldrsh r0, [r7, r1] - bl sub_080FB920 - adds r1, r0, #0 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r5, #0 - bl SetCameraPanning - movs r4, #4 - ldrsh r0, [r7, r4] - adds r0, #0x1e - bl GetTruckBoxMovement - ldr r6, _080FBB28 - ldr r2, [r6] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - movs r3, #3 - subs r3, r3, r5 - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - lsls r0, r0, #0x12 - movs r4, #0xc0 - lsls r4, r4, #0xa - orrs r0, r4 - asrs r0, r0, #0x10 - str r0, [sp] - movs r0, #1 - bl sub_0808E19C - movs r1, #4 - ldrsh r0, [r7, r1] - bl GetTruckBoxMovement - ldr r2, [r6] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - rsbs r3, r5, #0 - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - lsls r0, r0, #0x11 - ldr r4, _080FBB2C - adds r0, r0, r4 - asrs r0, r0, #0x10 - str r0, [sp] - movs r0, #2 - bl sub_0808E19C - movs r1, #4 - ldrsh r0, [r7, r1] - bl GetTruckBoxMovement - ldr r2, [r6] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - movs r4, #3 - rsbs r4, r4, #0 - adds r3, r4, #0 - subs r3, r3, r5 - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - lsls r0, r0, #0x12 - asrs r0, r0, #0x10 - str r0, [sp] - movs r0, #3 - bl sub_0808E19C -_080FBB18: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080FBB20: .4byte gUnknown_856A47C -_080FBB24: .4byte sub_080FBB30 -_080FBB28: .4byte gUnknown_3005AEC -_080FBB2C: .4byte 0xFFFD0000 - thumb_func_end Task_Truck2 - - thumb_func_start sub_080FBB30 -sub_080FBB30: @ 0x080FBB30 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r3, r0, #0 - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #3 - ldr r1, _080FBB70 - adds r2, r0, r1 - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #5 - ble _080FBB60 - movs r0, #0 - strh r0, [r2] - ldrh r0, [r2, #2] - adds r0, #1 - strh r0, [r2, #2] -_080FBB60: - ldrh r0, [r2, #2] - cmp r0, #0x13 - bne _080FBB74 - adds r0, r3, #0 - bl DestroyTask - b _080FBBC8 - .align 2, 0 -_080FBB70: .4byte gUnknown_3005B68 -_080FBB74: - ldr r1, _080FBBD4 - movs r3, #2 - ldrsh r0, [r2, r3] - adds r0, r0, r1 - movs r1, #0 - mov r8, r1 - movs r6, #0 - ldrsb r6, [r0, r6] - adds r0, r6, #0 - bl SetCameraPanning - ldr r5, _080FBBD8 - ldr r0, [r5] - ldrb r1, [r0, #5] - ldrb r2, [r0, #4] - movs r3, #3 - subs r3, r3, r6 - movs r0, #3 - str r0, [sp] - movs r0, #1 - bl sub_0808E19C - ldr r0, [r5] - ldrb r1, [r0, #5] - ldrb r2, [r0, #4] - rsbs r3, r6, #0 - mov r4, r8 - subs r4, #3 - str r4, [sp] - movs r0, #2 - bl sub_0808E19C - ldr r0, [r5] - ldrb r1, [r0, #5] - ldrb r2, [r0, #4] - subs r4, r4, r6 - mov r3, r8 - str r3, [sp] - movs r0, #3 - adds r3, r4, #0 - bl sub_0808E19C -_080FBBC8: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080FBBD4: .4byte gUnknown_856A47C -_080FBBD8: .4byte gUnknown_3005AEC - thumb_func_end sub_080FBB30 - - thumb_func_start Task_HandleTruckSequence -Task_HandleTruckSequence: @ 0x080FBBDC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080FBC00 - adds r4, r0, r1 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #5 - bls _080FBBF6 - b _080FBD48 -_080FBBF6: - lsls r0, r0, #2 - ldr r1, _080FBC04 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FBC00: .4byte gUnknown_3005B68 -_080FBC04: .4byte _080FBC08 -_080FBC08: @ jump table - .4byte _080FBC20 @ case 0 - .4byte _080FBC58 @ case 1 - .4byte _080FBC74 @ case 2 - .4byte _080FBCC0 @ case 3 - .4byte _080FBCE4 @ case 4 - .4byte _080FBD02 @ case 5 -_080FBC20: - ldrh r0, [r4, #2] - adds r0, #1 - strh r0, [r4, #2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x5a - beq _080FBC30 - b _080FBD48 -_080FBC30: - movs r0, #0 - bl sub_08089C24 - movs r0, #0 - strh r0, [r4, #2] - ldr r0, _080FBC54 - movs r1, #0xa - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #4] - movs r0, #1 - strh r0, [r4] - movs r0, #0x31 - bl sub_080A306C - b _080FBD48 - .align 2, 0 -_080FBC54: .4byte Task_Truck1 -_080FBC58: - ldrh r0, [r4, #2] - adds r0, #1 - strh r0, [r4, #2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x96 - bne _080FBD48 - bl pal_fill_black - movs r0, #0 - strh r0, [r4, #2] - movs r0, #2 - strh r0, [r4] - b _080FBD48 -_080FBC74: - ldrh r0, [r4, #2] - adds r3, r0, #1 - strh r3, [r4, #2] - ldr r0, _080FBCB8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _080FBD48 - lsls r1, r3, #0x10 - movs r0, #0x96 - lsls r0, r0, #0x11 - cmp r1, r0 - ble _080FBD48 - strh r2, [r4, #2] - ldrb r0, [r4, #4] - bl DestroyTask - ldr r0, _080FBCBC - movs r1, #0xa - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #6] - movs r0, #3 - strh r0, [r4] - movs r0, #0x32 - bl sub_080A306C - b _080FBD48 - .align 2, 0 -_080FBCB8: .4byte gUnknown_2037C74 -_080FBCBC: .4byte Task_Truck2 -_080FBCC0: - ldr r2, _080FBCE0 - movs r0, #6 - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrb r5, [r0, #4] - cmp r5, #0 - bne _080FBD48 - bl InstallCameraPanAheadCallback - strh r5, [r4, #2] - movs r0, #4 - strh r0, [r4] - b _080FBD48 - .align 2, 0 -_080FBCE0: .4byte gUnknown_3005B60 -_080FBCE4: - ldrh r0, [r4, #2] - adds r0, #1 - strh r0, [r4, #2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x5a - bne _080FBD48 - movs r0, #0x33 - bl sub_080A306C - movs r0, #0 - strh r0, [r4, #2] - movs r0, #5 - strh r0, [r4] - b _080FBD48 -_080FBD02: - ldrh r0, [r4, #2] - adds r0, #1 - strh r0, [r4, #2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x78 - bne _080FBD48 - movs r2, #0x82 - lsls r2, r2, #2 - movs r0, #0xb - movs r1, #8 - bl MapGridSetMetatileIdAt - movs r2, #0x84 - lsls r2, r2, #2 - movs r0, #0xb - movs r1, #9 - bl MapGridSetMetatileIdAt - movs r2, #0x86 - lsls r2, r2, #2 - movs r0, #0xb - movs r1, #0xa - bl MapGridSetMetatileIdAt - bl DrawWholeMapView - movs r0, #0x34 - bl sub_080A306C - adds r0, r5, #0 - bl DestroyTask - bl sub_080987E8 -_080FBD48: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Task_HandleTruckSequence - - thumb_func_start ExecuteTruckSequence -ExecuteTruckSequence: @ 0x080FBD50 - push {lr} - sub sp, #4 - ldr r2, _080FBD98 - movs r0, #0xb - movs r1, #8 - bl MapGridSetMetatileIdAt - ldr r2, _080FBD9C - movs r0, #0xb - movs r1, #9 - bl MapGridSetMetatileIdAt - ldr r2, _080FBDA0 - movs r0, #0xb - movs r1, #0xa - bl MapGridSetMetatileIdAt - bl DrawWholeMapView - bl sub_080987DC - movs r0, #0 - str r0, [sp] - ldr r1, _080FBDA4 - ldr r2, _080FBDA8 - mov r0, sp - bl CpuFastSet - ldr r0, _080FBDAC - movs r1, #0xa - bl CreateTask - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_080FBD98: .4byte 0x0000020D -_080FBD9C: .4byte 0x00000215 -_080FBDA0: .4byte 0x0000021D -_080FBDA4: .4byte gUnknown_20377B4 -_080FBDA8: .4byte 0x01000100 -_080FBDAC: .4byte Task_HandleTruckSequence - thumb_func_end ExecuteTruckSequence - - thumb_func_start EndTruckSequence -EndTruckSequence: @ 0x080FBDB0 - push {r4, r5, r6, lr} - sub sp, #4 - ldr r0, _080FBE04 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - bne _080FBDFA - ldr r4, _080FBE08 - ldr r0, [r4] - ldrb r1, [r0, #5] - ldrb r2, [r0, #4] - movs r0, #3 - str r0, [sp] - movs r0, #1 - movs r3, #3 - bl sub_0808E19C - ldr r0, [r4] - ldrb r1, [r0, #5] - ldrb r2, [r0, #4] - movs r5, #3 - rsbs r5, r5, #0 - str r5, [sp] - movs r0, #2 - movs r3, #0 - bl sub_0808E19C - ldr r0, [r4] - ldrb r1, [r0, #5] - ldrb r2, [r0, #4] - str r6, [sp] - movs r0, #3 - adds r3, r5, #0 - bl sub_0808E19C -_080FBDFA: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080FBE04: .4byte Task_HandleTruckSequence -_080FBE08: .4byte gUnknown_3005AEC - thumb_func_end EndTruckSequence - - thumb_func_start sub_080FBE0C -sub_080FBE0C: @ 0x080FBE0C - push {r4, r5, r6, lr} - sub sp, #0xc - mov r4, sp - adds r4, #5 - mov r5, sp - adds r5, #6 - add r6, sp, #8 - add r0, sp, #4 - adds r1, r4, #0 - adds r2, r5, #0 - adds r3, r6, #0 - bl GetSSTidalLocation - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FBE4E - add r0, sp, #4 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #0 - ldrsb r1, [r4, r1] - movs r2, #1 - rsbs r2, r2, #0 - movs r3, #0 - ldrsb r3, [r5, r3] - movs r4, #0 - ldrsb r4, [r6, r4] - str r4, [sp] - bl SetWarpDestination - movs r0, #1 - b _080FBE50 -_080FBE4E: - movs r0, #0 -_080FBE50: - add sp, #0xc - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_080FBE0C - - thumb_func_start Task_HandlePorthole -Task_HandlePorthole: @ 0x080FBE58 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080FBE88 - adds r4, r0, r1 - ldr r0, _080FBE8C - bl GetVarPointer - adds r7, r0, #0 - ldr r0, _080FBE90 - ldr r3, [r0] - adds r6, r3, #4 - movs r0, #0 - ldrsh r2, [r4, r0] - cmp r2, #1 - beq _080FBEB8 - cmp r2, #1 - bgt _080FBE94 - cmp r2, #0 - beq _080FBE9E - b _080FBF52 - .align 2, 0 -_080FBE88: .4byte gUnknown_3005B68 -_080FBE8C: .4byte 0x000040B4 -_080FBE90: .4byte gUnknown_3005AEC -_080FBE94: - cmp r2, #2 - beq _080FBEFA - cmp r2, #3 - beq _080FBF34 - b _080FBF52 -_080FBE9E: - ldr r0, _080FBEB4 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080FBF52 - strh r2, [r4, #2] - movs r0, #2 - strh r0, [r4] - b _080FBF52 - .align 2, 0 -_080FBEB4: .4byte gUnknown_2037C74 -_080FBEB8: - ldr r0, _080FBEEC - ldrh r1, [r0, #0x2e] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _080FBEC6 - strh r2, [r4, #2] -_080FBEC6: - ldrb r1, [r6, #1] - ldrb r2, [r3, #4] - movs r0, #0xff - bl ScriptMovement_IsObjectMovementFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FBF52 - movs r0, #1 - bl CountSSTidalStep - cmp r0, #1 - bne _080FBEF6 - ldrh r0, [r7] - cmp r0, #2 - bne _080FBEF0 - movs r0, #9 - b _080FBEF2 - .align 2, 0 -_080FBEEC: .4byte gUnknown_3002360 -_080FBEF0: - movs r0, #0xa -_080FBEF2: - strh r0, [r7] - b _080FBF02 -_080FBEF6: - movs r0, #2 - strh r0, [r4] -_080FBEFA: - movs r1, #2 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _080FBF08 -_080FBF02: - movs r0, #3 - strh r0, [r4] - b _080FBF52 -_080FBF08: - ldrh r0, [r7] - cmp r0, #2 - bne _080FBF1C - ldrb r1, [r6, #1] - ldrb r2, [r6] - ldr r3, _080FBF18 - b _080FBF22 - .align 2, 0 -_080FBF18: .4byte gUnknown_856A48F -_080FBF1C: - ldrb r1, [r6, #1] - ldrb r2, [r6] - ldr r3, _080FBF30 -_080FBF22: - movs r0, #0xff - bl ScriptMovement_StartObjectMovementScript - movs r0, #1 - strh r0, [r4] - b _080FBF52 - .align 2, 0 -_080FBF30: .4byte gUnknown_856A491 -_080FBF34: - ldr r0, _080FBF58 - bl FlagClear - movs r0, #0x80 - lsls r0, r0, #7 - bl FlagClear - movs r0, #0 - bl SetWarpDestinationToDynamicWarp - bl DoDiveWarp - adds r0, r5, #0 - bl DestroyTask -_080FBF52: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080FBF58: .4byte 0x00004001 - thumb_func_end Task_HandlePorthole - - thumb_func_start sub_080FBF5C -sub_080FBF5C: @ 0x080FBF5C - push {r4, lr} - sub sp, #4 - ldr r1, _080FBFB0 - movs r0, #0 - str r0, [sp] - movs r0, #0x8c - movs r2, #0x70 - movs r3, #0x50 - bl AddPseudoEventObject - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080FBFB4 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r4, r1, r2 - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldr r0, _080FBFB8 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #2 - bne _080FBFBC - movs r0, #4 - bl sub_080922CC - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim - b _080FBFCE - .align 2, 0 -_080FBFB0: .4byte sub_08007140 -_080FBFB4: .4byte gUnknown_20205AC -_080FBFB8: .4byte 0x000040B4 -_080FBFBC: - movs r0, #3 - bl sub_080922CC - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim -_080FBFCE: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080FBF5C - - thumb_func_start sub_080FBFD8 -sub_080FBFD8: @ 0x080FBFD8 - push {lr} - bl sub_080FBF5C - ldr r2, _080FC008 - ldr r0, _080FC00C - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #1] - movs r2, #0x20 - orrs r1, r2 - strb r1, [r0, #1] - bl pal_fill_black - ldr r0, _080FC010 - movs r1, #0x50 - bl CreateTask - bl sub_080987DC - pop {r0} - bx r0 - .align 2, 0 -_080FC008: .4byte gUnknown_2036FF0 -_080FC00C: .4byte gUnknown_2037230 -_080FC010: .4byte Task_HandlePorthole - thumb_func_end sub_080FBFD8 - - thumb_func_start sub_080FC014 -sub_080FC014: @ 0x080FC014 - push {lr} - ldr r0, _080FC04C - bl FlagSet - ldr r0, _080FC050 - bl FlagSet - movs r0, #0x80 - lsls r0, r0, #7 - bl FlagSet - ldr r0, _080FC054 - ldr r0, [r0] - movs r1, #4 - ldrsb r1, [r0, r1] - movs r2, #5 - ldrsb r2, [r0, r2] - movs r3, #1 - rsbs r3, r3, #0 - movs r0, #0 - bl SetDynamicWarp - bl sub_080FBE0C - bl sub_080AF1B4 - pop {r0} - bx r0 - .align 2, 0 -_080FC04C: .4byte 0x0000088D -_080FC050: .4byte 0x00004001 -_080FC054: .4byte gUnknown_3005AEC - thumb_func_end sub_080FC014 - - thumb_func_start GetCurrentMapRotatingGatePuzzleType -GetCurrentMapRotatingGatePuzzleType: @ 0x080FC058 - push {lr} - ldr r0, _080FC06C - ldr r0, [r0] - ldrh r1, [r0, #4] - movs r0, #0x86 - lsls r0, r0, #1 - cmp r1, r0 - bne _080FC070 - movs r0, #1 - b _080FC082 - .align 2, 0 -_080FC06C: .4byte gUnknown_3005AEC -_080FC070: - ldr r0, _080FC07C - cmp r1, r0 - beq _080FC080 - movs r0, #0 - b _080FC082 - .align 2, 0 -_080FC07C: .4byte 0x0000081D -_080FC080: - movs r0, #2 -_080FC082: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetCurrentMapRotatingGatePuzzleType - - thumb_func_start RotatingGate_ResetAllGateOrientations -RotatingGate_ResetAllGateOrientations: @ 0x080FC088 - push {r4, r5, r6, lr} - movs r0, #0x80 - lsls r0, r0, #7 - bl GetVarPointer - adds r5, r0, #0 - movs r3, #0 - ldr r4, _080FC0BC - ldrb r0, [r4] - cmp r3, r0 - bge _080FC0B4 - ldr r6, _080FC0C0 -_080FC0A0: - adds r2, r5, r3 - ldr r1, [r6] - lsls r0, r3, #3 - adds r0, r0, r1 - ldrb r0, [r0, #5] - strb r0, [r2] - adds r3, #1 - ldrb r0, [r4] - cmp r3, r0 - blt _080FC0A0 -_080FC0B4: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080FC0BC: .4byte gUnknown_2039D14 -_080FC0C0: .4byte gUnknown_2039D10 - thumb_func_end RotatingGate_ResetAllGateOrientations - - thumb_func_start RotatingGate_GetGateOrientation -RotatingGate_GetGateOrientation: @ 0x080FC0C4 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0x80 - lsls r0, r0, #7 - bl GetVarPointer - adds r0, r0, r4 - ldrb r0, [r0] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end RotatingGate_GetGateOrientation - - thumb_func_start RotatingGate_SetGateOrientation -RotatingGate_SetGateOrientation: @ 0x080FC0E0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - movs r0, #0x80 - lsls r0, r0, #7 - bl GetVarPointer - adds r0, r0, r4 - strb r5, [r0] - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end RotatingGate_SetGateOrientation - - thumb_func_start RotatingGate_RotateInDirection -RotatingGate_RotateInDirection: @ 0x080FC100 - push {r4, r5, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r5, #0 - bl RotatingGate_GetGateOrientation - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r4, #1 - bne _080FC124 - cmp r1, #0 - beq _080FC120 - subs r0, r1, #1 - lsls r0, r0, #0x18 - b _080FC12E -_080FC120: - movs r1, #3 - b _080FC130 -_080FC124: - adds r1, #1 - lsls r1, r1, #0x18 - movs r0, #0xc0 - lsls r0, r0, #0x12 - ands r0, r1 -_080FC12E: - lsrs r1, r0, #0x18 -_080FC130: - adds r0, r5, #0 - bl RotatingGate_SetGateOrientation - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end RotatingGate_RotateInDirection - - thumb_func_start RotatingGate_LoadPuzzleConfig -RotatingGate_LoadPuzzleConfig: @ 0x080FC13C - push {lr} - bl GetCurrentMapRotatingGatePuzzleType - cmp r0, #1 - beq _080FC150 - cmp r0, #1 - ble _080FC184 - cmp r0, #2 - beq _080FC168 - b _080FC184 -_080FC150: - ldr r1, _080FC15C - ldr r0, _080FC160 - str r0, [r1] - ldr r1, _080FC164 - movs r0, #8 - b _080FC172 - .align 2, 0 -_080FC15C: .4byte gUnknown_2039D10 -_080FC160: .4byte gUnknown_856A494 -_080FC164: .4byte gUnknown_2039D14 -_080FC168: - ldr r1, _080FC188 - ldr r0, _080FC18C - str r0, [r1] - ldr r1, _080FC190 - movs r0, #0xb -_080FC172: - strb r0, [r1] - movs r1, #0 - ldr r3, _080FC194 - movs r2, #0x40 -_080FC17A: - adds r0, r1, r3 - strb r2, [r0] - adds r1, #1 - cmp r1, #0xa - bls _080FC17A -_080FC184: - pop {r0} - bx r0 - .align 2, 0 -_080FC188: .4byte gUnknown_2039D10 -_080FC18C: .4byte gUnknown_856A4D4 -_080FC190: .4byte gUnknown_2039D14 -_080FC194: .4byte gUnknown_2039D04 - thumb_func_end RotatingGate_LoadPuzzleConfig - - thumb_func_start RotatingGate_CreateGatesWithinViewport -RotatingGate_CreateGatesWithinViewport: @ 0x080FC198 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sl, r1 - ldr r0, _080FC25C - ldr r2, [r0] - ldrh r1, [r2] - subs r0, r1, #2 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - adds r1, #0x11 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sb, r1 - ldrh r1, [r2, #2] - subs r0, r1, #2 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - adds r1, #0xe - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r8, r1 - movs r5, #0 - ldr r0, _080FC260 - ldrb r0, [r0] - cmp r5, r0 - bhs _080FC24A - lsls r0, r2, #0x10 - asrs r7, r0, #0x10 - lsls r0, r3, #0x10 - asrs r6, r0, #0x10 -_080FC1E6: - ldr r0, _080FC264 - ldr r0, [r0] - lsls r1, r5, #3 - adds r1, r1, r0 - ldrh r0, [r1] - adds r0, #7 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldrh r0, [r1, #2] - adds r0, #7 - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - cmp r7, r1 - bgt _080FC23C - mov r3, r8 - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - cmp r0, r1 - blt _080FC23C - lsls r0, r2, #0x10 - asrs r1, r0, #0x10 - cmp r6, r1 - bgt _080FC23C - mov r2, sb - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - cmp r0, r1 - blt _080FC23C - ldr r0, _080FC268 - adds r4, r5, r0 - ldrb r0, [r4] - cmp r0, #0x40 - bne _080FC23C - ldr r3, [sp] - lsls r1, r3, #0x10 - mov r0, sl - lsls r2, r0, #0x10 - adds r0, r5, #0 - asrs r1, r1, #0x10 - asrs r2, r2, #0x10 - bl RotatingGate_CreateGate - strb r0, [r4] -_080FC23C: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _080FC260 - ldrb r0, [r0] - cmp r5, r0 - blo _080FC1E6 -_080FC24A: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080FC25C: .4byte gUnknown_3005AEC -_080FC260: .4byte gUnknown_2039D14 -_080FC264: .4byte gUnknown_2039D10 -_080FC268: .4byte gUnknown_2039D04 - thumb_func_end RotatingGate_CreateGatesWithinViewport - - thumb_func_start RotatingGate_CreateGate -RotatingGate_CreateGate: @ 0x080FC26C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x18 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - mov r8, r2 - ldr r0, _080FC29C - lsls r1, r6, #3 - ldr r0, [r0] - adds r4, r0, r1 - ldrb r0, [r4, #4] - cmp r0, #0 - beq _080FC294 - cmp r0, #4 - bne _080FC2A4 -_080FC294: - mov r1, sp - ldr r0, _080FC2A0 - b _080FC2A8 - .align 2, 0 -_080FC29C: .4byte gUnknown_2039D10 -_080FC2A0: .4byte gUnknown_856DBC4 -_080FC2A4: - mov r1, sp - ldr r0, _080FC33C -_080FC2A8: - 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, #4] - movs r3, #0x98 - lsls r3, r3, #5 - adds r1, r3, #0 - adds r0, r0, r1 - strh r0, [r2] - mov r0, sp - movs r1, #0 - movs r2, #0 - movs r3, #0x94 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0x40 - beq _080FC344 - ldrh r0, [r4] - adds r0, #7 - ldrh r1, [r4, #2] - adds r1, #7 - lsls r4, r5, #4 - adds r4, r4, r5 - lsls r4, r4, #2 - ldr r2, _080FC340 - adds r4, r4, r2 - strh r6, [r4, #0x2e] - movs r2, #0x3e - adds r2, r2, r4 - mov ip, r2 - ldrb r2, [r2] - movs r3, #2 - orrs r2, r3 - mov r3, ip - strb r2, [r3] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r2, r7, #0x10 - asrs r2, r2, #0x10 - adds r0, r0, r2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - mov r3, r8 - lsls r2, r3, #0x10 - asrs r2, r2, #0x10 - adds r1, r1, r2 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r2, r4, #0 - adds r2, #0x20 - adds r3, r4, #0 - adds r3, #0x22 - bl sub_08092960 - adds r0, r4, #0 - bl RotatingGate_HideGatesOutsideViewport - adds r0, r6, #0 - bl RotatingGate_GetGateOrientation - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAffineAnim - adds r0, r5, #0 - b _080FC346 - .align 2, 0 -_080FC33C: .4byte gUnknown_856DBAC -_080FC340: .4byte gUnknown_20205AC -_080FC344: - movs r0, #0x40 -_080FC346: - add sp, #0x18 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end RotatingGate_CreateGate - - thumb_func_start SpriteCallback_RotatingGate -SpriteCallback_RotatingGate: @ 0x080FC354 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldrh r0, [r6, #0x30] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldrh r0, [r6, #0x32] - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r7, r4, #0 - adds r0, r6, #0 - bl RotatingGate_HideGatesOutsideViewport - cmp r5, #1 - bne _080FC39A - adds r0, r4, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl GetPlayerSpeed - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - beq _080FC38A - adds r0, r4, #0 - adds r0, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_080FC38A: - movs r0, #0x30 - bl sub_080A306C - adds r0, r6, #0 - adds r1, r4, #0 - bl StartSpriteAffineAnim - b _080FC3C8 -_080FC39A: - cmp r5, #2 - bne _080FC3C8 - adds r0, r7, #0 - adds r0, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl GetPlayerSpeed - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - beq _080FC3BA - adds r0, r4, #0 - adds r0, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_080FC3BA: - movs r0, #0x30 - bl sub_080A306C - adds r0, r6, #0 - adds r1, r4, #0 - bl StartSpriteAffineAnim -_080FC3C8: - movs r0, #0 - strh r0, [r6, #0x30] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SpriteCallback_RotatingGate - - thumb_func_start RotatingGate_HideGatesOutsideViewport -RotatingGate_HideGatesOutsideViewport: @ 0x080FC3D4 - push {r4, r5, r6, lr} - mov ip, r0 - mov r4, ip - adds r4, #0x3e - ldrb r0, [r4] - movs r5, #5 - rsbs r5, r5, #0 - ands r5, r0 - strb r5, [r4] - mov r0, ip - ldrh r1, [r0, #0x24] - ldrh r2, [r0, #0x20] - adds r1, r1, r2 - adds r0, #0x28 - movs r2, #0 - ldrsb r2, [r0, r2] - ldr r0, _080FC468 - adds r2, r2, r1 - ldrh r0, [r0] - adds r2, r2, r0 - lsls r2, r2, #0x10 - mov r3, ip - ldrh r1, [r3, #0x26] - ldrh r0, [r3, #0x22] - adds r1, r1, r0 - mov r0, ip - adds r0, #0x29 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldr r3, _080FC46C - adds r0, r0, r1 - ldrh r3, [r3] - adds r0, r0, r3 - lsls r0, r0, #0x10 - movs r3, #0x80 - lsls r3, r3, #0xf - adds r1, r2, r3 - lsrs r1, r1, #0x10 - lsrs r6, r0, #0x10 - adds r0, r0, r3 - lsrs r3, r0, #0x10 - asrs r2, r2, #0x10 - cmp r2, #0xff - bgt _080FC43A - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x10 - rsbs r1, r1, #0 - cmp r0, r1 - bge _080FC442 -_080FC43A: - movs r1, #4 - adds r0, r5, #0 - orrs r0, r1 - strb r0, [r4] -_080FC442: - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xaf - bgt _080FC456 - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x10 - rsbs r1, r1, #0 - cmp r0, r1 - bge _080FC462 -_080FC456: - mov r0, ip - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_080FC462: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080FC468: .4byte gUnknown_2021B38 -_080FC46C: .4byte gUnknown_2021B3A - thumb_func_end RotatingGate_HideGatesOutsideViewport - - thumb_func_start sub_080FC470 -sub_080FC470: @ 0x080FC470 - push {lr} - ldr r0, _080FC47C - bl LoadSpriteSheets - pop {r0} - bx r0 - .align 2, 0 -_080FC47C: .4byte gUnknown_856D93C - thumb_func_end sub_080FC470 - - thumb_func_start RotatingGate_DestroyGatesOutsideViewport -RotatingGate_DestroyGatesOutsideViewport: @ 0x080FC480 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _080FC4B4 - ldr r2, [r0] - ldrh r1, [r2] - subs r0, r1, #2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sl, r0 - adds r1, #0x11 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sb, r1 - ldrh r1, [r2, #2] - subs r0, r1, #2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - adds r1, #0xe - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - movs r6, #0 - b _080FC526 - .align 2, 0 -_080FC4B4: .4byte gUnknown_3005AEC -_080FC4B8: - ldr r0, _080FC53C - ldr r0, [r0] - lsls r1, r6, #3 - adds r1, r1, r0 - ldrh r0, [r1] - adds r0, #7 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldrh r0, [r1, #2] - adds r0, #7 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldr r0, _080FC540 - adds r0, r6, r0 - ldrb r0, [r0] - cmp r0, #0x40 - beq _080FC524 - lsls r0, r2, #0x10 - mov r2, sl - lsls r1, r2, #0x10 - asrs r2, r0, #0x10 - cmp r0, r1 - blt _080FC504 - mov r1, sb - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r2, r0 - bgt _080FC504 - lsls r0, r3, #0x10 - mov r2, r8 - lsls r1, r2, #0x10 - asrs r2, r0, #0x10 - cmp r0, r1 - blt _080FC504 - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - cmp r2, r0 - ble _080FC524 -_080FC504: - ldr r0, _080FC540 - adds r5, r6, r0 - ldrb r0, [r5] - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _080FC544 - adds r4, r4, r0 - adds r0, r4, #0 - bl FreeSpriteOamMatrix - adds r0, r4, #0 - bl DestroySprite - movs r0, #0x40 - strb r0, [r5] -_080FC524: - adds r6, #1 -_080FC526: - ldr r0, _080FC548 - ldrb r0, [r0] - cmp r6, r0 - blt _080FC4B8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080FC53C: .4byte gUnknown_2039D10 -_080FC540: .4byte gUnknown_2039D04 -_080FC544: .4byte gUnknown_20205AC -_080FC548: .4byte gUnknown_2039D14 - thumb_func_end RotatingGate_DestroyGatesOutsideViewport - - thumb_func_start RotatingGate_CanRotate -RotatingGate_CanRotate: @ 0x080FC54C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r1, #1 - bne _080FC56C - ldr r0, _080FC568 - mov sl, r0 - b _080FC578 - .align 2, 0 -_080FC568: .4byte gUnknown_856DC3C -_080FC56C: - cmp r1, #2 - beq _080FC574 -_080FC570: - movs r0, #0 - b _080FC608 -_080FC574: - ldr r1, _080FC618 - mov sl, r1 -_080FC578: - adds r0, r4, #0 - bl RotatingGate_GetGateOrientation - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - ldr r0, _080FC61C - ldr r1, [r0] - lsls r0, r4, #3 - adds r0, r0, r1 - ldrb r2, [r0, #4] - ldrh r1, [r0] - adds r1, #7 - ldrh r0, [r0, #2] - adds r0, #7 - movs r3, #0 - lsls r2, r2, #3 - str r2, [sp, #4] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - mov sb, r1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov r8, r0 -_080FC5A8: - movs r6, #0 - ldr r2, [sp] - adds r7, r2, r3 - lsls r0, r3, #1 - adds r5, r7, #0 - ldr r1, [sp, #4] - adds r0, r0, r1 - ldr r2, _080FC620 - adds r4, r0, r2 -_080FC5BA: - adds r0, r5, #0 - cmp r5, #0 - bge _080FC5C2 - adds r0, r7, #3 -_080FC5C2: - asrs r0, r0, #2 - lsls r0, r0, #2 - subs r0, r5, r0 - lsls r0, r0, #1 - adds r0, r0, r6 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldrb r0, [r4] - cmp r0, #0 - beq _080FC5F8 - lsls r1, r1, #2 - add r1, sl - movs r0, #0 - ldrsb r0, [r1, r0] - add r0, sb - ldrb r1, [r1, #1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - add r1, r8 - str r3, [sp, #8] - bl MapGridIsImpassableAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, [sp, #8] - cmp r0, #1 - beq _080FC570 -_080FC5F8: - adds r4, #1 - adds r6, #1 - cmp r6, #1 - ble _080FC5BA - adds r3, #1 - cmp r3, #3 - ble _080FC5A8 - movs r0, #1 -_080FC608: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080FC618: .4byte gUnknown_856DC1C -_080FC61C: .4byte gUnknown_2039D10 -_080FC620: .4byte gUnknown_856DC5C - thumb_func_end RotatingGate_CanRotate - - thumb_func_start RotatingGate_HasArm -RotatingGate_HasArm: @ 0x080FC624 - push {r4, r5, r6, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r6, r0, #0 - lsls r4, r4, #0x18 - lsrs r5, r4, #0x18 - lsrs r4, r4, #0x19 - movs r0, #1 - ands r5, r0 - adds r0, r6, #0 - bl RotatingGate_GetGateOrientation - subs r4, r4, r0 - adds r1, r4, #4 - adds r0, r1, #0 - cmp r1, #0 - bge _080FC64A - adds r0, r4, #7 -_080FC64A: - asrs r0, r0, #2 - lsls r0, r0, #2 - subs r0, r1, r0 - ldr r1, _080FC670 - ldr r2, [r1] - lsls r1, r6, #3 - adds r1, r1, r2 - ldrb r1, [r1, #4] - ldr r2, _080FC674 - lsls r0, r0, #0x18 - asrs r0, r0, #0x17 - adds r0, r0, r5 - lsls r1, r1, #3 - adds r0, r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080FC670: .4byte gUnknown_2039D10 -_080FC674: .4byte gUnknown_856DC5C - thumb_func_end RotatingGate_HasArm - - thumb_func_start RotatingGate_TriggerRotationAnimation -RotatingGate_TriggerRotationAnimation: @ 0x080FC678 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r0, _080FC6A4 - adds r2, r3, r0 - ldrb r0, [r2] - cmp r0, #0x40 - beq _080FC69C - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _080FC6A8 - adds r4, r4, r0 - strh r1, [r4, #0x30] - adds r0, r3, #0 - bl RotatingGate_GetGateOrientation - strh r0, [r4, #0x32] -_080FC69C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FC6A4: .4byte gUnknown_2039D04 -_080FC6A8: .4byte gUnknown_20205AC - thumb_func_end RotatingGate_TriggerRotationAnimation - - thumb_func_start RotatingGate_GetRotationInfo -RotatingGate_GetRotationInfo: @ 0x080FC6AC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r3, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - cmp r0, #2 - bne _080FC6C8 - ldr r3, _080FC6C4 - b _080FC6EA - .align 2, 0 -_080FC6C4: .4byte gUnknown_856DBDC -_080FC6C8: - cmp r0, #1 - bne _080FC6D4 - ldr r3, _080FC6D0 - b _080FC6EA - .align 2, 0 -_080FC6D0: .4byte gUnknown_856DBEC -_080FC6D4: - cmp r0, #3 - bne _080FC6E0 - ldr r3, _080FC6DC - b _080FC6EA - .align 2, 0 -_080FC6DC: .4byte gUnknown_856DBFC -_080FC6E0: - cmp r3, #4 - beq _080FC6E8 - movs r0, #0xff - b _080FC6F8 -_080FC6E8: - ldr r3, _080FC6FC -_080FC6EA: - lsls r0, r2, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - asrs r0, r0, #0xe - adds r0, r0, r1 - adds r0, r3, r0 - ldrb r0, [r0] -_080FC6F8: - pop {r1} - bx r1 - .align 2, 0 -_080FC6FC: .4byte gUnknown_856DC0C - thumb_func_end RotatingGate_GetRotationInfo - - thumb_func_start RotatingGate_InitPuzzle -RotatingGate_InitPuzzle: @ 0x080FC700 - push {lr} - bl GetCurrentMapRotatingGatePuzzleType - cmp r0, #0 - beq _080FC712 - bl RotatingGate_LoadPuzzleConfig - bl RotatingGate_ResetAllGateOrientations -_080FC712: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RotatingGate_InitPuzzle - - thumb_func_start RotatingGatePuzzleCameraUpdate -RotatingGatePuzzleCameraUpdate: @ 0x080FC718 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - bl GetCurrentMapRotatingGatePuzzleType - cmp r0, #0 - beq _080FC73A - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - lsls r1, r5, #0x10 - asrs r1, r1, #0x10 - bl RotatingGate_CreateGatesWithinViewport - bl RotatingGate_DestroyGatesOutsideViewport -_080FC73A: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end RotatingGatePuzzleCameraUpdate - - thumb_func_start RotatingGate_InitPuzzleAndGraphics -RotatingGate_InitPuzzleAndGraphics: @ 0x080FC740 - push {lr} - bl GetCurrentMapRotatingGatePuzzleType - cmp r0, #0 - beq _080FC75A - bl sub_080FC470 - bl RotatingGate_LoadPuzzleConfig - movs r0, #0 - movs r1, #0 - bl RotatingGate_CreateGatesWithinViewport -_080FC75A: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RotatingGate_InitPuzzleAndGraphics - - thumb_func_start CheckForRotatingGatePuzzleCollision -CheckForRotatingGatePuzzleCollision: @ 0x080FC760 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - mov r8, r2 - bl GetCurrentMapRotatingGatePuzzleType - cmp r0, #0 - bne _080FC794 - b _080FC832 -_080FC782: - adds r0, r4, #0 - adds r1, r5, #0 - bl RotatingGate_TriggerRotationAnimation - adds r0, r4, #0 - adds r1, r5, #0 - bl RotatingGate_RotateInDirection - b _080FC832 -_080FC794: - movs r6, #0 - ldr r0, _080FC820 - ldrb r0, [r0] - cmp r6, r0 - bge _080FC832 - lsls r0, r4, #0x10 - asrs r7, r0, #0x10 -_080FC7A2: - ldr r0, _080FC824 - ldr r1, [r0] - lsls r0, r6, #3 - adds r0, r0, r1 - ldrh r1, [r0] - adds r1, #7 - ldrh r0, [r0, #2] - adds r0, #7 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - lsls r1, r1, #0x10 - asrs r4, r1, #0x10 - subs r0, r4, #2 - cmp r0, r7 - bgt _080FC828 - adds r0, r4, #1 - cmp r7, r0 - bgt _080FC828 - lsls r0, r2, #0x10 - asrs r3, r0, #0x10 - subs r1, r3, #2 - mov r2, r8 - lsls r0, r2, #0x10 - asrs r2, r0, #0x10 - cmp r1, r2 - bgt _080FC828 - adds r0, r3, #1 - cmp r2, r0 - bgt _080FC828 - subs r1, r7, r4 - adds r1, #2 - subs r2, r2, r3 - adds r2, #2 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - mov r0, sb - bl RotatingGate_GetRotationInfo - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _080FC828 - lsrs r5, r0, #4 - movs r1, #0xf - ands r1, r0 - lsls r0, r6, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl RotatingGate_HasArm - cmp r0, #0 - beq _080FC828 - adds r0, r4, #0 - adds r1, r5, #0 - bl RotatingGate_CanRotate - cmp r0, #0 - bne _080FC782 - movs r0, #1 - b _080FC834 - .align 2, 0 -_080FC820: .4byte gUnknown_2039D14 -_080FC824: .4byte gUnknown_2039D10 -_080FC828: - adds r6, #1 - ldr r0, _080FC840 - ldrb r0, [r0] - cmp r6, r0 - blt _080FC7A2 -_080FC832: - movs r0, #0 -_080FC834: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080FC840: .4byte gUnknown_2039D14 - thumb_func_end CheckForRotatingGatePuzzleCollision - - thumb_func_start CheckForRotatingGatePuzzleCollisionWithoutAnimation -CheckForRotatingGatePuzzleCollisionWithoutAnimation: @ 0x080FC844 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - mov r8, r2 - bl GetCurrentMapRotatingGatePuzzleType - cmp r0, #0 - bne _080FC86A - b _080FC8FA -_080FC866: - movs r0, #1 - b _080FC8FC -_080FC86A: - movs r6, #0 - ldr r0, _080FC908 - ldrb r0, [r0] - cmp r6, r0 - bge _080FC8FA - lsls r0, r4, #0x10 - asrs r7, r0, #0x10 -_080FC878: - ldr r0, _080FC90C - ldr r1, [r0] - lsls r0, r6, #3 - adds r0, r0, r1 - ldrh r1, [r0] - adds r1, #7 - ldrh r0, [r0, #2] - adds r0, #7 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - lsls r1, r1, #0x10 - asrs r4, r1, #0x10 - subs r0, r4, #2 - cmp r0, r7 - bgt _080FC8F0 - adds r0, r4, #1 - cmp r7, r0 - bgt _080FC8F0 - lsls r0, r2, #0x10 - asrs r3, r0, #0x10 - subs r1, r3, #2 - mov r2, r8 - lsls r0, r2, #0x10 - asrs r2, r0, #0x10 - cmp r1, r2 - bgt _080FC8F0 - adds r0, r3, #1 - cmp r2, r0 - bgt _080FC8F0 - subs r1, r7, r4 - adds r1, #2 - subs r2, r2, r3 - adds r2, #2 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - mov r0, sb - bl RotatingGate_GetRotationInfo - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _080FC8F0 - lsrs r5, r0, #4 - movs r1, #0xf - ands r1, r0 - lsls r0, r6, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl RotatingGate_HasArm - cmp r0, #0 - beq _080FC8F0 - adds r0, r4, #0 - adds r1, r5, #0 - bl RotatingGate_CanRotate - cmp r0, #0 - beq _080FC866 -_080FC8F0: - adds r6, #1 - ldr r0, _080FC908 - ldrb r0, [r0] - cmp r6, r0 - blt _080FC878 -_080FC8FA: - movs r0, #0 -_080FC8FC: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080FC908: .4byte gUnknown_2039D14 -_080FC90C: .4byte gUnknown_2039D10 - thumb_func_end CheckForRotatingGatePuzzleCollisionWithoutAnimation - - thumb_func_start sub_080FC910 -sub_080FC910: @ 0x080FC910 - push {lr} - ldr r0, _080FC920 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_080FC920: .4byte 0x0000088C - thumb_func_end sub_080FC910 - - thumb_func_start sub_080FC924 -sub_080FC924: @ 0x080FC924 - push {lr} - ldr r0, _080FC930 - bl FlagSet - pop {r0} - bx r0 - .align 2, 0 -_080FC930: .4byte 0x0000088C - thumb_func_end sub_080FC924 - - thumb_func_start sub_080FC934 -sub_080FC934: @ 0x080FC934 - push {lr} - ldr r0, _080FC940 - bl FlagClear - pop {r0} - bx r0 - .align 2, 0 -_080FC940: .4byte 0x0000088C - thumb_func_end sub_080FC934 - - thumb_func_start EnterSafariMode -EnterSafariMode: @ 0x080FC944 - push {lr} - movs r0, #0x11 - bl IncrementGameStat - bl sub_080FC924 - bl ClearAllPokeblockFeeders - ldr r1, _080FC974 - movs r0, #0x1e - strb r0, [r1] - ldr r1, _080FC978 - movs r2, #0xfa - lsls r2, r2, #1 - adds r0, r2, #0 - strh r0, [r1] - ldr r0, _080FC97C - movs r1, #0 - strb r1, [r0] - ldr r0, _080FC980 - strb r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080FC974: .4byte gUnknown_2039D18 -_080FC978: .4byte gUnknown_2039D1A -_080FC97C: .4byte gUnknown_2039D1C -_080FC980: .4byte gUnknown_2039D1D - thumb_func_end EnterSafariMode - - thumb_func_start ExitSafariMode -ExitSafariMode: @ 0x080FC984 - push {lr} - ldr r0, _080FC9AC - ldrb r0, [r0] - ldr r1, _080FC9B0 - ldrb r1, [r1] - bl sub_080EEF6C - bl sub_080FC934 - bl ClearAllPokeblockFeeders - ldr r1, _080FC9B4 - movs r0, #0 - strb r0, [r1] - ldr r1, _080FC9B8 - movs r0, #0 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080FC9AC: .4byte gUnknown_2039D1C -_080FC9B0: .4byte gUnknown_2039D1D -_080FC9B4: .4byte gUnknown_2039D18 -_080FC9B8: .4byte gUnknown_2039D1A - thumb_func_end ExitSafariMode - - thumb_func_start SafariZoneTakeStep -SafariZoneTakeStep: @ 0x080FC9BC - push {lr} - bl sub_080FC910 - cmp r0, #0 - beq _080FC9D8 - bl DecrementFeederStepCounters - ldr r1, _080FC9DC - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080FC9E0 -_080FC9D8: - movs r0, #0 - b _080FC9E8 - .align 2, 0 -_080FC9DC: .4byte gUnknown_2039D1A -_080FC9E0: - ldr r0, _080FC9EC - bl ScriptContext1_SetupScript - movs r0, #1 -_080FC9E8: - pop {r1} - bx r1 - .align 2, 0 -_080FC9EC: .4byte gUnknown_82623E8 - thumb_func_end SafariZoneTakeStep - - thumb_func_start sub_080FC9F0 -sub_080FC9F0: @ 0x080FC9F0 - push {lr} - ldr r0, _080FC9FC - bl ScriptContext1_SetupScript - pop {r0} - bx r0 - .align 2, 0 -_080FC9FC: .4byte gUnknown_82623CD - thumb_func_end sub_080FC9F0 - - thumb_func_start CB2_EndSafariBattle -CB2_EndSafariBattle: @ 0x080FCA00 - push {lr} - ldr r1, _080FCA30 - ldr r0, _080FCA34 - ldrb r0, [r0, #0x1f] - ldrb r2, [r1] - adds r0, r0, r2 - strb r0, [r1] - ldr r2, _080FCA38 - ldrb r0, [r2] - cmp r0, #7 - bne _080FCA1E - ldr r1, _080FCA3C - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_080FCA1E: - ldr r0, _080FCA40 - ldrb r0, [r0] - cmp r0, #0 - beq _080FCA48 - ldr r0, _080FCA44 - bl SetMainCallback2 - b _080FCA8C - .align 2, 0 -_080FCA30: .4byte gUnknown_2039D1D -_080FCA34: .4byte gUnknown_3005A70 -_080FCA38: .4byte gUnknown_2023FDE -_080FCA3C: .4byte gUnknown_2039D1C -_080FCA40: .4byte gUnknown_2039D18 -_080FCA44: .4byte sub_08085A30 -_080FCA48: - ldrb r0, [r2] - cmp r0, #8 - bne _080FCA78 - ldr r0, _080FCA68 - bl ScriptContext2_RunNewScript - bl WarpIntoMap - ldr r1, _080FCA6C - ldr r0, _080FCA70 - str r0, [r1] - ldr r0, _080FCA74 - bl SetMainCallback2 - b _080FCA8C - .align 2, 0 -_080FCA68: .4byte gUnknown_82623AA -_080FCA6C: .4byte gUnknown_3005B0C -_080FCA70: .4byte sub_080AEFEC -_080FCA74: .4byte CB2_LoadMap -_080FCA78: - cmp r0, #7 - bne _080FCA8C - ldr r0, _080FCA90 - bl ScriptContext1_SetupScript - bl sub_080988B8 - ldr r0, _080FCA94 - bl SetMainCallback2 -_080FCA8C: - pop {r0} - bx r0 - .align 2, 0 -_080FCA90: .4byte gUnknown_82623F9 -_080FCA94: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic - thumb_func_end CB2_EndSafariBattle - - thumb_func_start ClearPokeblockFeeder -ClearPokeblockFeeder: @ 0x080FCA98 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x14 - ldr r1, _080FCAB0 - adds r0, r0, r1 - movs r1, #0 - movs r2, #0x10 - bl memset - pop {r0} - bx r0 - .align 2, 0 -_080FCAB0: .4byte gUnknown_2039D20 - thumb_func_end ClearPokeblockFeeder - - thumb_func_start ClearAllPokeblockFeeders -ClearAllPokeblockFeeders: @ 0x080FCAB4 - push {lr} - ldr r0, _080FCAC4 - movs r1, #0 - movs r2, #0xa0 - bl memset - pop {r0} - bx r0 - .align 2, 0 -_080FCAC4: .4byte gUnknown_2039D20 - thumb_func_end ClearAllPokeblockFeeders - - thumb_func_start GetPokeblockFeederInFront -GetPokeblockFeederInFront: @ 0x080FCAC8 - push {r4, r5, lr} - sub sp, #4 - mov r4, sp - adds r4, #2 - mov r0, sp - adds r1, r4, #0 - bl GetXYCoordsOneStepInFrontOfPlayer - movs r5, #0 -_080FCADA: - ldr r0, _080FCB20 - ldr r2, [r0] - ldr r1, _080FCB24 - lsls r0, r5, #4 - adds r3, r0, r1 - movs r1, #5 - ldrsb r1, [r2, r1] - movs r0, #4 - ldrsb r0, [r3, r0] - cmp r1, r0 - bne _080FCB34 - mov r0, sp - movs r2, #0 - ldrsh r1, [r3, r2] - movs r2, #0 - ldrsh r0, [r0, r2] - cmp r1, r0 - bne _080FCB34 - movs r0, #2 - ldrsh r1, [r3, r0] - movs r2, #0 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080FCB34 - ldr r0, _080FCB28 - strh r5, [r0] - ldr r1, _080FCB2C - ldrb r0, [r3, #8] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - ldr r0, _080FCB30 - bl StringCopy - b _080FCB46 - .align 2, 0 -_080FCB20: .4byte gUnknown_3005AEC -_080FCB24: .4byte gUnknown_2039D20 -_080FCB28: .4byte gUnknown_2037290 -_080FCB2C: .4byte gUnknown_8592078 -_080FCB30: .4byte gUnknown_2021C40 -_080FCB34: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #9 - bls _080FCADA - ldr r1, _080FCB50 - ldr r2, _080FCB54 - adds r0, r2, #0 - strh r0, [r1] -_080FCB46: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FCB50: .4byte gUnknown_2037290 -_080FCB54: .4byte 0x0000FFFF - thumb_func_end GetPokeblockFeederInFront - - thumb_func_start GetPokeblockFeederWithinRange -GetPokeblockFeederWithinRange: @ 0x080FCB58 - push {r4, r5, r6, r7, lr} - sub sp, #4 - mov r4, sp - adds r4, #2 - mov r0, sp - adds r1, r4, #0 - bl PlayerGetDestCoords - movs r5, #0 - adds r6, r4, #0 - ldr r0, _080FCBC8 - ldr r7, [r0] - mov r4, sp - ldr r0, _080FCBCC - mov ip, r0 -_080FCB76: - lsls r0, r5, #4 - mov r1, ip - adds r3, r0, r1 - movs r1, #5 - ldrsb r1, [r7, r1] - movs r0, #4 - ldrsb r0, [r3, r0] - cmp r1, r0 - bne _080FCBD4 - ldrh r0, [r4] - ldrh r1, [r3] - subs r0, r0, r1 - strh r0, [r4] - adds r2, r6, #0 - ldrh r0, [r2] - ldrh r1, [r3, #2] - subs r0, r0, r1 - strh r0, [r2] - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #0 - bge _080FCBA6 - rsbs r0, r0, #0 - strh r0, [r4] -_080FCBA6: - movs r1, #0 - ldrsh r0, [r2, r1] - cmp r0, #0 - bge _080FCBB2 - rsbs r0, r0, #0 - strh r0, [r2] -_080FCBB2: - movs r2, #0 - ldrsh r0, [r4, r2] - movs r2, #0 - ldrsh r1, [r6, r2] - adds r0, r0, r1 - cmp r0, #5 - bgt _080FCBD4 - ldr r0, _080FCBD0 - strh r5, [r0] - b _080FCBE6 - .align 2, 0 -_080FCBC8: .4byte gUnknown_3005AEC -_080FCBCC: .4byte gUnknown_2039D20 -_080FCBD0: .4byte gUnknown_2037290 -_080FCBD4: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #9 - bls _080FCB76 - ldr r1, _080FCBF0 - ldr r2, _080FCBF4 - adds r0, r2, #0 - strh r0, [r1] -_080FCBE6: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080FCBF0: .4byte gUnknown_2037290 -_080FCBF4: .4byte 0x0000FFFF - thumb_func_end GetPokeblockFeederWithinRange - - thumb_func_start SafariZoneGetPokeblockInFront -SafariZoneGetPokeblockInFront: @ 0x080FCBF8 - push {lr} - bl GetPokeblockFeederInFront - ldr r2, _080FCC14 - ldrh r1, [r2] - ldr r0, _080FCC18 - cmp r1, r0 - beq _080FCC20 - adds r0, r1, #0 - lsls r0, r0, #4 - ldr r1, _080FCC1C - adds r0, r0, r1 - b _080FCC22 - .align 2, 0 -_080FCC14: .4byte gUnknown_2037290 -_080FCC18: .4byte 0x0000FFFF -_080FCC1C: .4byte gUnknown_2039D28 -_080FCC20: - movs r0, #0 -_080FCC22: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end SafariZoneGetPokeblockInFront - - thumb_func_start SafariZoneGetActivePokeblock -SafariZoneGetActivePokeblock: @ 0x080FCC28 - push {lr} - bl GetPokeblockFeederWithinRange - ldr r2, _080FCC44 - ldrh r1, [r2] - ldr r0, _080FCC48 - cmp r1, r0 - beq _080FCC50 - adds r0, r1, #0 - lsls r0, r0, #4 - ldr r1, _080FCC4C - adds r0, r0, r1 - b _080FCC52 - .align 2, 0 -_080FCC44: .4byte gUnknown_2037290 -_080FCC48: .4byte 0x0000FFFF -_080FCC4C: .4byte gUnknown_2039D28 -_080FCC50: - movs r0, #0 -_080FCC52: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end SafariZoneGetActivePokeblock - - thumb_func_start SafariZoneActivatePokeblockFeeder -SafariZoneActivatePokeblockFeeder: @ 0x080FCC58 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r1, #0 - ldr r2, _080FCCCC - mov r6, sp - adds r6, #2 - movs r0, #8 - adds r0, r0, r2 - mov sb, r0 - ldr r7, _080FCCD0 -_080FCC78: - lsls r5, r1, #4 - adds r4, r5, r2 - movs r0, #4 - ldrsb r0, [r4, r0] - cmp r0, #0 - bne _080FCCD8 - movs r3, #0 - ldrsh r0, [r4, r3] - cmp r0, #0 - bne _080FCCD8 - movs r3, #2 - ldrsh r0, [r4, r3] - cmp r0, #0 - bne _080FCCD8 - mov r0, sp - adds r1, r6, #0 - bl GetXYCoordsOneStepInFrontOfPlayer - ldr r0, [r7] - ldrb r0, [r0, #5] - strb r0, [r4, #4] - mov r0, sb - adds r2, r5, r0 - ldr r0, [r7] - mov r3, r8 - lsls r1, r3, #3 - ldr r3, _080FCCD4 - adds r0, r0, r3 - adds r0, r0, r1 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [r2] - str r1, [r2, #4] - movs r0, #0x64 - strb r0, [r4, #5] - mov r0, sp - ldrh r0, [r0] - strh r0, [r4] - ldrh r0, [r6] - strh r0, [r4, #2] - b _080FCCE2 - .align 2, 0 -_080FCCCC: .4byte gUnknown_2039D20 -_080FCCD0: .4byte gUnknown_3005AEC -_080FCCD4: .4byte 0x00000848 -_080FCCD8: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #9 - bls _080FCC78 -_080FCCE2: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end SafariZoneActivatePokeblockFeeder - - thumb_func_start DecrementFeederStepCounters -DecrementFeederStepCounters: @ 0x080FCCF0 - push {r4, r5, lr} - movs r4, #0 - ldr r5, _080FCD20 -_080FCCF6: - lsls r0, r4, #4 - adds r1, r0, r5 - ldrb r0, [r1, #5] - cmp r0, #0 - beq _080FCD10 - subs r0, #1 - strb r0, [r1, #5] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FCD10 - adds r0, r4, #0 - bl ClearPokeblockFeeder -_080FCD10: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #9 - bls _080FCCF6 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FCD20: .4byte gUnknown_2039D20 - thumb_func_end DecrementFeederStepCounters - - thumb_func_start GetInFrontFeederPokeblockAndSteps -GetInFrontFeederPokeblockAndSteps: @ 0x080FCD24 - push {lr} - bl GetPokeblockFeederInFront - ldr r3, _080FCD4C - ldrh r1, [r3] - ldr r0, _080FCD50 - cmp r1, r0 - beq _080FCD5C - ldr r0, _080FCD54 - ldr r2, _080FCD58 - lsls r1, r1, #4 - adds r1, r1, r2 - ldrb r1, [r1, #5] - movs r2, #2 - movs r3, #3 - bl sub_080089D8 - movs r0, #1 - b _080FCD5E - .align 2, 0 -_080FCD4C: .4byte gUnknown_2037290 -_080FCD50: .4byte 0x0000FFFF -_080FCD54: .4byte gUnknown_2021C54 -_080FCD58: .4byte gUnknown_2039D20 -_080FCD5C: - movs r0, #0 -_080FCD5E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetInFrontFeederPokeblockAndSteps - - thumb_func_start sub_080FCD64 -sub_080FCD64: @ 0x080FCD64 - push {r4, r5, lr} - adds r2, r0, #0 - lsls r4, r1, #0x10 - lsrs r4, r4, #0x10 - ldr r5, _080FCD94 - adds r0, r5, #0 - adds r1, r2, #0 - adds r2, r4, #0 - bl memcpy - bl bitmask_all_link_players_but_self - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r5, #0 - adds r2, r4, #0 - bl SendBlock - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FCD98 - movs r0, #0 - b _080FCD9A - .align 2, 0 -_080FCD94: .4byte gUnknown_201C000 -_080FCD98: - movs r0, #1 -_080FCD9A: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_080FCD64 - - thumb_func_start sub_080FCDA0 -sub_080FCDA0: @ 0x080FCDA0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r4, #0x80 - lsls r4, r4, #0x11 - lsls r4, r5 - lsrs r4, r4, #0x18 - bl GetBlockReceivedStatus - ands r4, r0 - cmp r4, #0 - beq _080FCDC2 - adds r0, r5, #0 - bl ResetBlockReceivedFlag - movs r0, #1 - b _080FCDC4 -_080FCDC2: - movs r0, #0 -_080FCDC4: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080FCDA0 - - thumb_func_start sub_080FCDCC -sub_080FCDCC: @ 0x080FCDCC - push {r4, lr} - bl GetBlockReceivedStatus - adds r4, r0, #0 - bl sub_0800A59C - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - beq _080FCDE4 - movs r0, #0 - b _080FCDEA -_080FCDE4: - bl ResetBlockReceivedFlags - movs r0, #1 -_080FCDEA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_080FCDCC - - thumb_func_start sub_080FCDF0 -sub_080FCDF0: @ 0x080FCDF0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - movs r1, #0 - ldr r5, _080FCE24 - ldr r6, _080FCE28 - ldr r4, _080FCE2C - movs r3, #0xff -_080FCE00: - lsls r0, r1, #8 - adds r0, r0, r4 - strh r3, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #3 - bls _080FCE00 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r1, #0 - strh r1, [r0, #8] - str r6, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080FCE24: .4byte gUnknown_3005B60 -_080FCE28: .4byte sub_080FCE30 -_080FCE2C: .4byte gUnknown_202207C - thumb_func_end sub_080FCDF0 - - thumb_func_start sub_080FCE30 -sub_080FCE30: @ 0x080FCE30 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080FCE44 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r0, _080FCE48 - str r0, [r1] - bx lr - .align 2, 0 -_080FCE44: .4byte gUnknown_3005B60 -_080FCE48: .4byte sub_080FCE4C - thumb_func_end sub_080FCE30 - - thumb_func_start sub_080FCE4C -sub_080FCE4C: @ 0x080FCE4C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _080FCEC8 - ldrb r0, [r0] - cmp r0, #0 - beq _080FCEC0 - bl GetMultiplayerId - ldr r1, _080FCECC - strb r0, [r1] - bl GetLinkPlayerCount - ldr r4, _080FCED0 - strb r0, [r4] - ldr r1, _080FCED4 - movs r0, #1 - strb r0, [r1] - ldr r0, _080FCED8 - ldrb r0, [r0] - cmp r0, #1 - bne _080FCE7C - movs r0, #3 - strb r0, [r1] -_080FCE7C: - movs r3, #0 - ldrb r2, [r4] - cmp r3, r2 - bge _080FCEBA - ldr r1, _080FCEDC - ldrb r0, [r1] - subs r0, #1 - adds r6, r4, #0 - cmp r0, #1 - bls _080FCEAA - adds r4, r2, #0 - adds r2, r1, #0 - movs r5, #0xff -_080FCE96: - adds r2, #0x1c - adds r3, #1 - cmp r3, r4 - bge _080FCEBA - ldrh r1, [r2] - adds r0, r5, #0 - ands r0, r1 - subs r0, #1 - cmp r0, #1 - bhi _080FCE96 -_080FCEAA: - ldrb r6, [r6] - cmp r3, r6 - bge _080FCEBA - ldr r0, _080FCED4 - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_080FCEBA: - adds r0, r7, #0 - bl SwitchTaskToFollowupFunc -_080FCEC0: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080FCEC8: .4byte gUnknown_30031C4 -_080FCECC: .4byte gUnknown_2039BC5 -_080FCED0: .4byte gUnknown_2039BD0 -_080FCED4: .4byte gUnknown_2039BCA -_080FCED8: .4byte gUnknown_300319C -_080FCEDC: .4byte gUnknown_20226A0 - thumb_func_end sub_080FCE4C - - thumb_func_start sub_080FCEE0 -sub_080FCEE0: @ 0x080FCEE0 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080FCF0C - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _080FCF08 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _080FCF10 - cmp r0, #1 - beq _080FCF1E - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080FCF24 -_080FCF08: - movs r0, #1 - b _080FCF26 - .align 2, 0 -_080FCF0C: .4byte gUnknown_2039BCA -_080FCF10: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FCF24 - bl sub_0800A8D4 -_080FCF1E: - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] -_080FCF24: - movs r0, #0 -_080FCF26: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_080FCEE0 - - thumb_func_start ContestLiveUpdates_BeforeInterview_5 -ContestLiveUpdates_BeforeInterview_5: @ 0x080FCF2C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r7, r5, #2 - adds r0, r7, r5 - lsls r4, r0, #3 - ldr r6, _080FCF60 - adds r0, r4, r6 - adds r0, #0x18 - bl sub_080FCEE0 - cmp r0, #0 - bne _080FCF48 - b _080FD04C -_080FCF48: - adds r0, r6, #0 - subs r0, #8 - adds r4, r4, r0 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _080FCFC4 - cmp r0, #1 - bgt _080FCF64 - cmp r0, #0 - beq _080FCF6A - b _080FD034 - .align 2, 0 -_080FCF60: .4byte gUnknown_3005B68 -_080FCF64: - cmp r0, #0xa - beq _080FD018 - b _080FD034 -_080FCF6A: - bl GetMultiplayerId - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FCFA4 - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FD04C - ldr r0, _080FCF98 - ldr r1, _080FCF9C - ldrb r1, [r1] - lsls r1, r1, #6 - ldr r2, _080FCFA0 - adds r1, r1, r2 - movs r2, #0x40 - bl memcpy - movs r0, #0xa - strh r0, [r4, #8] - b _080FD04C - .align 2, 0 -_080FCF98: .4byte gUnknown_202257C -_080FCF9C: .4byte gUnknown_2039BC5 -_080FCFA0: .4byte gUnknown_2039AA0 -_080FCFA4: - ldr r0, _080FCFB8 - ldr r1, _080FCFBC - ldrb r1, [r1] - lsls r1, r1, #6 - ldr r2, _080FCFC0 - adds r1, r1, r2 - movs r2, #0x40 - bl memcpy - b _080FD02E - .align 2, 0 -_080FCFB8: .4byte gUnknown_202257C -_080FCFBC: .4byte gUnknown_2039BC5 -_080FCFC0: .4byte gUnknown_2039AA0 -_080FCFC4: - bl sub_080FCDCC - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FD04C - movs r4, #0 - ldr r0, _080FCFD8 - adds r6, r7, #0 - b _080FCFF2 - .align 2, 0 -_080FCFD8: .4byte gUnknown_2039BD0 -_080FCFDC: - lsls r0, r4, #6 - ldr r1, _080FD008 - adds r0, r0, r1 - lsls r1, r4, #8 - ldr r2, _080FD00C - adds r1, r1, r2 - movs r2, #0x40 - bl memcpy - adds r4, #1 - ldr r0, _080FD010 -_080FCFF2: - ldrb r0, [r0] - cmp r4, r0 - blt _080FCFDC - ldr r0, _080FD014 - adds r1, r6, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _080FD04C - .align 2, 0 -_080FD008: .4byte gUnknown_2039AA0 -_080FD00C: .4byte gUnknown_202207C -_080FD010: .4byte gUnknown_2039BD0 -_080FD014: .4byte gUnknown_3005B60 -_080FD018: - ldrh r0, [r4, #0x1e] - adds r0, #1 - strh r0, [r4, #0x1e] - lsls r0, r0, #0x10 - movs r1, #0x96 - lsls r1, r1, #0x11 - cmp r0, r1 - ble _080FD04C - movs r0, #2 - bl sub_0800A09C -_080FD02E: - movs r0, #1 - strh r0, [r4, #8] - b _080FD04C -_080FD034: - ldr r0, _080FD054 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0 - strh r0, [r1, #8] - strh r0, [r1, #0x1e] - strh r0, [r1, #0x20] - adds r0, r5, #0 - bl SwitchTaskToFollowupFunc -_080FD04C: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080FD054: .4byte gUnknown_3005B60 - thumb_func_end ContestLiveUpdates_BeforeInterview_5 - - thumb_func_start sub_080FD058 -sub_080FD058: @ 0x080FD058 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _080FD080 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r5, r0, r1 - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _080FD084 - cmp r0, #1 - beq _080FD0AC - movs r0, #0 - strh r0, [r5, #8] - adds r0, r2, #0 - bl SwitchTaskToFollowupFunc - b _080FD0D4 - .align 2, 0 -_080FD080: .4byte gUnknown_3005B60 -_080FD084: - bl GetMultiplayerId - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FD0CE - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FD0D4 - ldr r0, _080FD0A8 - movs r1, #4 - bl sub_080FCD64 - cmp r0, #1 - bne _080FD0D4 - b _080FD0CE - .align 2, 0 -_080FD0A8: .4byte gUnknown_3005AE0 -_080FD0AC: - movs r0, #0 - bl sub_080FCDA0 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FD0D4 - ldr r0, _080FD0DC - ldr r4, _080FD0E0 - adds r1, r4, #0 - movs r2, #4 - bl memcpy - ldr r0, _080FD0E4 - adds r1, r4, #0 - movs r2, #4 - bl memcpy -_080FD0CE: - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] -_080FD0D4: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FD0DC: .4byte gUnknown_3005AE0 -_080FD0E0: .4byte gUnknown_202207C -_080FD0E4: .4byte gUnknown_3005E18 - thumb_func_end sub_080FD058 - - thumb_func_start sub_080FD0E8 -sub_080FD0E8: @ 0x080FD0E8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - mov r8, r0 - adds r0, r0, r6 - lsls r5, r0, #3 - ldr r7, _080FD128 - adds r0, r5, r7 - adds r0, #0x18 - bl sub_080FCEE0 - cmp r0, #0 - beq _080FD1DA - movs r1, #8 - rsbs r1, r1, #0 - adds r1, r1, r7 - mov sb, r1 - adds r4, r5, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _080FD160 - cmp r0, #1 - bgt _080FD12C - cmp r0, #0 - beq _080FD132 - b _080FD1C2 - .align 2, 0 -_080FD128: .4byte gUnknown_3005B68 -_080FD12C: - cmp r0, #0xa - beq _080FD1A8 - b _080FD1C2 -_080FD132: - ldr r1, _080FD154 - ldrh r0, [r4, #0x1a] - strb r0, [r1] - bl GetMultiplayerId - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FD158 - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FD1DA - movs r0, #0xa - strh r0, [r4, #8] - b _080FD1DA - .align 2, 0 -_080FD154: .4byte gUnknown_202257C -_080FD158: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _080FD1DA -_080FD160: - bl sub_080FCDCC - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FD1DA - movs r3, #0 - ldr r1, _080FD1A0 - ldrb r0, [r1] - cmp r3, r0 - bge _080FD18E - ldr r4, _080FD1A4 - adds r0, r7, #2 - adds r2, r5, r0 - movs r5, #0x80 - lsls r5, r5, #1 -_080FD17E: - ldrh r0, [r4] - strh r0, [r2] - adds r4, r4, r5 - adds r2, #2 - adds r3, #1 - ldrb r0, [r1] - cmp r3, r0 - blt _080FD17E -_080FD18E: - mov r0, r8 - adds r1, r0, r6 - lsls r1, r1, #3 - add r1, sb - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _080FD1DA - .align 2, 0 -_080FD1A0: .4byte gUnknown_2039BD0 -_080FD1A4: .4byte gUnknown_202207C -_080FD1A8: - ldrh r0, [r4, #0x1e] - adds r0, #1 - strh r0, [r4, #0x1e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xa - ble _080FD1DA - movs r0, #2 - bl sub_0800A09C - movs r0, #1 - strh r0, [r4, #8] - b _080FD1DA -_080FD1C2: - ldr r0, _080FD1E8 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0 - strh r0, [r1, #8] - strh r0, [r1, #0x1e] - strh r0, [r1, #0x20] - adds r0, r6, #0 - bl SwitchTaskToFollowupFunc -_080FD1DA: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080FD1E8: .4byte gUnknown_3005B60 - thumb_func_end sub_080FD0E8 - - thumb_func_start sub_080FD1EC -sub_080FD1EC: @ 0x080FD1EC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _080FD214 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _080FD218 - cmp r0, #1 - beq _080FD234 - movs r0, #0 - strh r0, [r4, #8] - adds r0, r2, #0 - bl SwitchTaskToFollowupFunc - b _080FD244 - .align 2, 0 -_080FD214: .4byte gUnknown_3005B60 -_080FD218: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FD244 - ldr r0, _080FD230 - movs r1, #1 - bl sub_080FCD64 - cmp r0, #1 - bne _080FD244 - b _080FD23E - .align 2, 0 -_080FD230: .4byte gUnknown_2039BC5 -_080FD234: - bl sub_080FCDCC - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FD244 -_080FD23E: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080FD244: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080FD1EC - - thumb_func_start sub_080FD24C -sub_080FD24C: @ 0x080FD24C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _080FD280 - mov r8, r0 - lsls r7, r5, #2 - adds r0, r7, r5 - lsls r0, r0, #3 - mov r1, r8 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _080FD284 - cmp r0, #1 - beq _080FD2BC - movs r0, #0 - strh r0, [r4, #8] - adds r0, r5, #0 - bl SwitchTaskToFollowupFunc - b _080FD306 - .align 2, 0 -_080FD280: .4byte gUnknown_3005B60 -_080FD284: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FD306 - ldr r0, _080FD2B4 - ldr r2, [r0] - ldr r0, _080FD2B8 - ldrb r0, [r0] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - ldr r0, [r2, #4] - adds r0, r0, r1 - adds r0, #6 - movs r1, #2 - bl sub_080FCD64 - cmp r0, #1 - bne _080FD306 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _080FD306 - .align 2, 0 -_080FD2B4: .4byte gUnknown_2039BD4 -_080FD2B8: .4byte gUnknown_2039BC5 -_080FD2BC: - bl sub_080FCDCC - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FD306 - movs r2, #0 - ldr r6, _080FD314 - mov sb, r8 - mov ip, r7 - ldrb r0, [r6] - cmp r2, r0 - bge _080FD2F8 - ldr r1, _080FD318 - mov r8, r1 - ldr r4, _080FD31C - movs r3, #0 - movs r7, #0x80 - lsls r7, r7, #1 -_080FD2E0: - mov r1, r8 - ldr r0, [r1] - ldr r0, [r0, #4] - adds r0, r3, r0 - ldrh r1, [r4] - strh r1, [r0, #6] - adds r4, r4, r7 - adds r3, #0x1c - adds r2, #1 - ldrb r0, [r6] - cmp r2, r0 - blt _080FD2E0 -_080FD2F8: - mov r0, ip - adds r1, r0, r5 - lsls r1, r1, #3 - add r1, sb - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] -_080FD306: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080FD314: .4byte gUnknown_2039BD0 -_080FD318: .4byte gUnknown_2039BD4 -_080FD31C: .4byte gUnknown_202207C - thumb_func_end sub_080FD24C - - thumb_func_start sub_080FD320 -sub_080FD320: @ 0x080FD320 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _080FD348 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r2, r0, r1 - movs r3, #8 - ldrsh r0, [r2, r3] - adds r3, r1, #0 - cmp r0, #0xb - bls _080FD33C - b _080FD4CC -_080FD33C: - lsls r0, r0, #2 - ldr r1, _080FD34C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FD348: .4byte gUnknown_3005B60 -_080FD34C: .4byte _080FD350 -_080FD350: @ jump table - .4byte _080FD380 @ case 0 - .4byte _080FD398 @ case 1 - .4byte _080FD3C0 @ case 2 - .4byte _080FD3E4 @ case 3 - .4byte _080FD3F8 @ case 4 - .4byte _080FD3C0 @ case 5 - .4byte _080FD420 @ case 6 - .4byte _080FD434 @ case 7 - .4byte _080FD3C0 @ case 8 - .4byte _080FD45C @ case 9 - .4byte _080FD48C @ case 10 - .4byte _080FD3C0 @ case 11 -_080FD380: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FD38C - b _080FD4D6 -_080FD38C: - ldr r0, _080FD394 - movs r1, #8 - b _080FD46A - .align 2, 0 -_080FD394: .4byte gUnknown_2039BA8 -_080FD398: - bl sub_080FCDCC - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FD3A4 - b _080FD4D6 -_080FD3A4: - ldr r0, _080FD3B4 - ldr r1, _080FD3B8 - ldrb r1, [r1] - lsls r1, r1, #8 - ldr r2, _080FD3BC - adds r1, r1, r2 - movs r2, #8 - b _080FD4A4 - .align 2, 0 -_080FD3B4: .4byte gUnknown_2039BA8 -_080FD3B8: .4byte gUnknown_2039BCB -_080FD3BC: .4byte gUnknown_202207C -_080FD3C0: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r2, r0, r3 - ldrh r0, [r2, #0xa] - adds r1, r0, #1 - strh r1, [r2, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xa - bgt _080FD3D8 - b _080FD4D6 -_080FD3D8: - movs r0, #0 - strh r0, [r2, #0xa] - ldrh r0, [r2, #8] - adds r0, #1 - strh r0, [r2, #8] - b _080FD4D6 -_080FD3E4: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FD4D6 - ldr r0, _080FD3F4 - movs r1, #8 - b _080FD46A - .align 2, 0 -_080FD3F4: .4byte gUnknown_2039BB0 -_080FD3F8: - bl sub_080FCDCC - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FD4D6 - ldr r0, _080FD414 - ldr r1, _080FD418 - ldrb r1, [r1] - lsls r1, r1, #8 - ldr r2, _080FD41C - adds r1, r1, r2 - movs r2, #8 - b _080FD4A4 - .align 2, 0 -_080FD414: .4byte gUnknown_2039BB0 -_080FD418: .4byte gUnknown_2039BCB -_080FD41C: .4byte gUnknown_202207C -_080FD420: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FD4D6 - ldr r0, _080FD430 - movs r1, #8 - b _080FD46A - .align 2, 0 -_080FD430: .4byte gUnknown_2039BB8 -_080FD434: - bl sub_080FCDCC - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FD4D6 - ldr r0, _080FD450 - ldr r1, _080FD454 - ldrb r1, [r1] - lsls r1, r1, #8 - ldr r2, _080FD458 - adds r1, r1, r2 - movs r2, #8 - b _080FD4A4 - .align 2, 0 -_080FD450: .4byte gUnknown_2039BB8 -_080FD454: .4byte gUnknown_2039BCB -_080FD458: .4byte gUnknown_202207C -_080FD45C: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FD4D6 - ldr r0, _080FD484 - movs r1, #4 -_080FD46A: - bl sub_080FCD64 - cmp r0, #1 - bne _080FD4D6 - ldr r0, _080FD488 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _080FD4D6 - .align 2, 0 -_080FD484: .4byte gUnknown_2039BC0 -_080FD488: .4byte gUnknown_3005B60 -_080FD48C: - bl sub_080FCDCC - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FD4D6 - ldr r0, _080FD4BC - ldr r1, _080FD4C0 - ldrb r1, [r1] - lsls r1, r1, #8 - ldr r2, _080FD4C4 - adds r1, r1, r2 - movs r2, #4 -_080FD4A4: - bl memcpy - ldr r1, _080FD4C8 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #8] - adds r1, #1 - strh r1, [r0, #8] - b _080FD4D6 - .align 2, 0 -_080FD4BC: .4byte gUnknown_2039BC0 -_080FD4C0: .4byte gUnknown_2039BCB -_080FD4C4: .4byte gUnknown_202207C -_080FD4C8: .4byte gUnknown_3005B60 -_080FD4CC: - movs r0, #0 - strh r0, [r2, #8] - adds r0, r4, #0 - bl SwitchTaskToFollowupFunc -_080FD4D6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080FD320 - - thumb_func_start sub_080FD4DC -sub_080FD4DC: @ 0x080FD4DC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _080FD504 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r2, r0, r1 - movs r3, #8 - ldrsh r0, [r2, r3] - adds r3, r1, #0 - cmp r0, #0xb - bls _080FD4F8 - b _080FD68C -_080FD4F8: - lsls r0, r0, #2 - ldr r1, _080FD508 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FD504: .4byte gUnknown_3005B60 -_080FD508: .4byte _080FD50C -_080FD50C: @ jump table - .4byte _080FD53C @ case 0 - .4byte _080FD558 @ case 1 - .4byte _080FD584 @ case 2 - .4byte _080FD5A8 @ case 3 - .4byte _080FD5C0 @ case 4 - .4byte _080FD584 @ case 5 - .4byte _080FD5EC @ case 6 - .4byte _080FD604 @ case 7 - .4byte _080FD584 @ case 8 - .4byte _080FD61C @ case 9 - .4byte _080FD64C @ case 10 - .4byte _080FD584 @ case 11 -_080FD53C: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FD548 - b _080FD696 -_080FD548: - ldr r0, _080FD554 - ldr r0, [r0] - ldr r0, [r0, #4] - movs r1, #0x70 - b _080FD62A - .align 2, 0 -_080FD554: .4byte gUnknown_2039BD4 -_080FD558: - bl sub_080FCDCC - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FD564 - b _080FD696 -_080FD564: - ldr r0, _080FD578 - ldr r0, [r0] - ldr r0, [r0, #4] - ldr r1, _080FD57C - ldrb r1, [r1] - lsls r1, r1, #8 - ldr r2, _080FD580 - adds r1, r1, r2 - movs r2, #0x70 - b _080FD664 - .align 2, 0 -_080FD578: .4byte gUnknown_2039BD4 -_080FD57C: .4byte gUnknown_2039BCB -_080FD580: .4byte gUnknown_202207C -_080FD584: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r2, r0, r3 - ldrh r0, [r2, #0xa] - adds r1, r0, #1 - strh r1, [r2, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xa - bgt _080FD59C - b _080FD696 -_080FD59C: - movs r0, #0 - strh r0, [r2, #0xa] - ldrh r0, [r2, #8] - adds r0, #1 - strh r0, [r2, #8] - b _080FD696 -_080FD5A8: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FD696 - ldr r0, _080FD5BC - ldr r0, [r0] - ldr r0, [r0, #8] - movs r1, #0x14 - b _080FD62A - .align 2, 0 -_080FD5BC: .4byte gUnknown_2039BD4 -_080FD5C0: - bl sub_080FCDCC - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FD696 - ldr r0, _080FD5E0 - ldr r0, [r0] - ldr r0, [r0, #8] - ldr r1, _080FD5E4 - ldrb r1, [r1] - lsls r1, r1, #8 - ldr r2, _080FD5E8 - adds r1, r1, r2 - movs r2, #0x14 - b _080FD664 - .align 2, 0 -_080FD5E0: .4byte gUnknown_2039BD4 -_080FD5E4: .4byte gUnknown_2039BCB -_080FD5E8: .4byte gUnknown_202207C -_080FD5EC: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FD696 - ldr r0, _080FD600 - ldr r0, [r0] - ldr r0, [r0, #0x10] - b _080FD628 - .align 2, 0 -_080FD600: .4byte gUnknown_2039BD4 -_080FD604: - bl sub_080FCDCC - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FD696 - ldr r0, _080FD618 - ldr r0, [r0] - ldr r0, [r0, #0x10] - b _080FD658 - .align 2, 0 -_080FD618: .4byte gUnknown_2039BD4 -_080FD61C: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FD696 - ldr r0, _080FD644 -_080FD628: - movs r1, #4 -_080FD62A: - bl sub_080FCD64 - cmp r0, #1 - bne _080FD696 - ldr r0, _080FD648 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _080FD696 - .align 2, 0 -_080FD644: .4byte gUnknown_2039BC6 -_080FD648: .4byte gUnknown_3005B60 -_080FD64C: - bl sub_080FCDCC - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FD696 - ldr r0, _080FD67C -_080FD658: - ldr r1, _080FD680 - ldrb r1, [r1] - lsls r1, r1, #8 - ldr r2, _080FD684 - adds r1, r1, r2 - movs r2, #4 -_080FD664: - bl memcpy - ldr r1, _080FD688 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #8] - adds r1, #1 - strh r1, [r0, #8] - b _080FD696 - .align 2, 0 -_080FD67C: .4byte gUnknown_2039BC6 -_080FD680: .4byte gUnknown_2039BCB -_080FD684: .4byte gUnknown_202207C -_080FD688: .4byte gUnknown_3005B60 -_080FD68C: - movs r0, #0 - strh r0, [r2, #8] - adds r0, r4, #0 - bl SwitchTaskToFollowupFunc -_080FD696: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080FD4DC - - thumb_func_start sub_080FD69C -sub_080FD69C: @ 0x080FD69C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - mov r8, r0 - adds r0, r0, r6 - lsls r5, r0, #3 - ldr r7, _080FD6DC - adds r0, r5, r7 - adds r0, #0x18 - bl sub_080FCEE0 - cmp r0, #0 - beq _080FD782 - movs r1, #8 - rsbs r1, r1, #0 - adds r1, r1, r7 - mov sb, r1 - adds r4, r5, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _080FD714 - cmp r0, #1 - bgt _080FD6E0 - cmp r0, #0 - beq _080FD6E6 - b _080FD76A - .align 2, 0 -_080FD6DC: .4byte gUnknown_3005B68 -_080FD6E0: - cmp r0, #0xa - beq _080FD750 - b _080FD76A -_080FD6E6: - ldr r1, _080FD708 - movs r0, #0x6e - strb r0, [r1] - bl GetMultiplayerId - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FD70C - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FD782 - movs r0, #0xa - strh r0, [r4, #8] - b _080FD782 - .align 2, 0 -_080FD708: .4byte gUnknown_202257C -_080FD70C: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _080FD782 -_080FD714: - bl sub_080FCDCC - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FD782 - mov r1, r8 - mov r8, sb - ldr r4, _080FD74C - adds r0, r7, #0 - adds r0, #0xa - adds r2, r5, r0 - movs r5, #0x80 - lsls r5, r5, #1 - movs r3, #3 -_080FD730: - ldrh r0, [r4] - strh r0, [r2] - adds r4, r4, r5 - adds r2, #2 - subs r3, #1 - cmp r3, #0 - bge _080FD730 - adds r1, r1, r6 - lsls r1, r1, #3 - add r1, r8 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _080FD782 - .align 2, 0 -_080FD74C: .4byte gUnknown_202207C -_080FD750: - ldrh r0, [r4, #0x1e] - adds r0, #1 - strh r0, [r4, #0x1e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xa - ble _080FD782 - movs r0, #2 - bl sub_0800A09C - movs r0, #1 - strh r0, [r4, #8] - b _080FD782 -_080FD76A: - ldr r0, _080FD790 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0 - strh r0, [r1, #8] - strh r0, [r1, #0x1e] - strh r0, [r1, #0x20] - adds r0, r6, #0 - bl SwitchTaskToFollowupFunc -_080FD782: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080FD790: .4byte gUnknown_3005B60 - thumb_func_end sub_080FD69C - - thumb_func_start sub_080FD794 -sub_080FD794: @ 0x080FD794 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r4, r0, #3 - ldr r6, _080FD7D0 - adds r0, r4, r6 - adds r0, #0x18 - bl sub_080FCEE0 - cmp r0, #0 - beq _080FD812 - adds r0, r6, #0 - subs r0, #8 - adds r4, r4, r0 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _080FD7D4 - cmp r0, #1 - beq _080FD7F0 - movs r0, #0 - strh r0, [r4, #8] - strh r0, [r4, #0x20] - adds r0, r5, #0 - bl SwitchTaskToFollowupFunc - b _080FD812 - .align 2, 0 -_080FD7D0: .4byte gUnknown_3005B68 -_080FD7D4: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FD812 - ldr r0, _080FD7EC - movs r1, #8 - bl sub_080FCD64 - cmp r0, #1 - bne _080FD812 - b _080FD80C - .align 2, 0 -_080FD7EC: .4byte gUnknown_2039BA0 -_080FD7F0: - bl sub_080FCDCC - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FD812 - ldr r0, _080FD818 - ldr r1, _080FD81C - ldrb r1, [r1] - lsls r1, r1, #8 - ldr r2, _080FD820 - adds r1, r1, r2 - movs r2, #8 - bl memcpy -_080FD80C: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080FD812: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080FD818: .4byte gUnknown_2039BA0 -_080FD81C: .4byte gUnknown_2039BCB -_080FD820: .4byte gUnknown_202207C - thumb_func_end sub_080FD794 - - thumb_func_start sub_080FD824 -sub_080FD824: @ 0x080FD824 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r4, r0, #3 - ldr r6, _080FD860 - adds r0, r4, r6 - adds r0, #0x18 - bl sub_080FCEE0 - cmp r0, #0 - beq _080FD8A2 - adds r0, r6, #0 - subs r0, #8 - adds r4, r4, r0 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _080FD864 - cmp r0, #1 - beq _080FD880 - movs r0, #0 - strh r0, [r4, #8] - strh r0, [r4, #0x20] - adds r0, r5, #0 - bl SwitchTaskToFollowupFunc - b _080FD8A2 - .align 2, 0 -_080FD860: .4byte gUnknown_3005B68 -_080FD864: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FD8A2 - ldr r0, _080FD87C - movs r1, #4 - bl sub_080FCD64 - cmp r0, #1 - bne _080FD8A2 - b _080FD89C - .align 2, 0 -_080FD87C: .4byte gUnknown_2039BC6 -_080FD880: - bl sub_080FCDCC - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FD8A2 - ldr r0, _080FD8A8 - ldr r1, _080FD8AC - ldrb r1, [r1] - lsls r1, r1, #8 - ldr r2, _080FD8B0 - adds r1, r1, r2 - movs r2, #4 - bl memcpy -_080FD89C: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080FD8A2: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080FD8A8: .4byte gUnknown_2039BC6 -_080FD8AC: .4byte gUnknown_2039BCB -_080FD8B0: .4byte gUnknown_202207C - thumb_func_end sub_080FD824 - - thumb_func_start SetUpItemUseCallback -SetUpItemUseCallback: @ 0x080FD8B4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _080FD8D0 - ldrh r0, [r1] - cmp r0, #0xaf - bne _080FD8D8 - ldr r0, _080FD8D4 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrb r0, [r1, #0x10] - b _080FD8DE - .align 2, 0 -_080FD8D0: .4byte gUnknown_203CB48 -_080FD8D4: .4byte gUnknown_3005B60 -_080FD8D8: - ldrh r0, [r1] - bl sub_080D6DD4 -_080FD8DE: - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FD90C - ldr r0, _080FD904 - ldr r2, [r0] - ldr r1, _080FD908 - lsls r0, r4, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r2] - adds r0, r5, #0 - bl sub_081AB6A4 - b _080FD920 - .align 2, 0 -_080FD904: .4byte gUnknown_203CB20 -_080FD908: .4byte gUnknown_856DCBC -_080FD90C: - ldr r0, _080FD928 - ldr r2, [r0] - ldr r1, _080FD92C - lsls r0, r4, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r2] - adds r0, r5, #0 - bl sub_081C5310 -_080FD920: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FD928: .4byte gUnknown_203CBF8 -_080FD92C: .4byte gUnknown_856DCBC - thumb_func_end SetUpItemUseCallback - - thumb_func_start SetUpItemUseOnFieldCallback -SetUpItemUseOnFieldCallback: @ 0x080FD930 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _080FD958 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0xe - ldrsh r0, [r0, r1] - cmp r0, #1 - beq _080FD964 - ldr r1, _080FD95C - ldr r0, _080FD960 - str r0, [r1] - adds r0, r2, #0 - bl SetUpItemUseCallback - b _080FD96E - .align 2, 0 -_080FD958: .4byte gUnknown_3005B60 -_080FD95C: .4byte gUnknown_3005B0C -_080FD960: .4byte MapPostLoadHook_UseItem -_080FD964: - ldr r0, _080FD974 - ldr r1, [r0] - adds r0, r2, #0 - bl _call_via_r1 -_080FD96E: - pop {r0} - bx r0 - .align 2, 0 -_080FD974: .4byte gUnknown_2039DC0 - thumb_func_end SetUpItemUseOnFieldCallback - - thumb_func_start MapPostLoadHook_UseItem -MapPostLoadHook_UseItem: @ 0x080FD978 - push {lr} - bl pal_fill_black - ldr r0, _080FD98C - movs r1, #8 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080FD98C: .4byte Task_CallItemUseOnFieldCallback - thumb_func_end MapPostLoadHook_UseItem - - thumb_func_start Task_CallItemUseOnFieldCallback -Task_CallItemUseOnFieldCallback: @ 0x080FD990 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl IsWeatherNotFadingIn - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080FD9AC - ldr r0, _080FD9B4 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 -_080FD9AC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FD9B4: .4byte gUnknown_2039DC0 - thumb_func_end Task_CallItemUseOnFieldCallback - - thumb_func_start DisplayCannotUseItemMessage -DisplayCannotUseItemMessage: @ 0x080FD9B8 - push {r4, r5, r6, lr} - adds r4, r1, #0 - adds r1, r2, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r6, _080FD9EC - adds r0, r6, #0 - bl StringExpandPlaceholders - cmp r4, #0 - bne _080FDA08 - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FD9F4 - ldr r3, _080FD9F0 - adds r0, r5, #0 - movs r1, #1 - adds r2, r6, #0 - bl DisplayItemMessage - b _080FDA12 - .align 2, 0 -_080FD9EC: .4byte gUnknown_2021C7C -_080FD9F0: .4byte BagMenu_InitListsMenu -_080FD9F4: - ldr r1, _080FDA00 - ldr r2, _080FDA04 - adds r0, r5, #0 - bl sub_081C6598 - b _080FDA12 - .align 2, 0 -_080FDA00: .4byte gUnknown_85C9556 -_080FDA04: .4byte sub_081C5F24 -_080FDA08: - ldr r2, _080FDA18 - adds r0, r5, #0 - adds r1, r6, #0 - bl DisplayItemMessageOnField -_080FDA12: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080FDA18: .4byte CleanUpAfterFailingToUseRegisteredKeyItemOnField - thumb_func_end DisplayCannotUseItemMessage - - thumb_func_start DisplayDadsAdviceCannotUseItemMessage -DisplayDadsAdviceCannotUseItemMessage: @ 0x080FDA1C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _080FDA30 - bl DisplayCannotUseItemMessage - pop {r0} - bx r0 - .align 2, 0 -_080FDA30: .4byte gUnknown_85C9556 - thumb_func_end DisplayDadsAdviceCannotUseItemMessage - - thumb_func_start DisplayCannotDismountBikeMessage -DisplayCannotDismountBikeMessage: @ 0x080FDA34 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _080FDA48 - bl DisplayCannotUseItemMessage - pop {r0} - bx r0 - .align 2, 0 -_080FDA48: .4byte gUnknown_85C957F - thumb_func_end DisplayCannotDismountBikeMessage - - thumb_func_start CleanUpAfterFailingToUseRegisteredKeyItemOnField -CleanUpAfterFailingToUseRegisteredKeyItemOnField: @ 0x080FDA4C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - movs r1, #1 - bl sub_08197028 - adds r0, r4, #0 - bl DestroyTask - bl ScriptUnfreezeEventObjects - bl sub_080987E8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end CleanUpAfterFailingToUseRegisteredKeyItemOnField - - thumb_func_start CheckIfItemIsTMHMOrEvolutionStone -CheckIfItemIsTMHMOrEvolutionStone: @ 0x080FDA70 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r4, #0 - bl sub_080D6DF8 - ldr r1, _080FDA88 - cmp r0, r1 - bne _080FDA8C - movs r0, #1 - b _080FDAA2 - .align 2, 0 -_080FDA88: .4byte ItemUseOutOfBattle_TMHM -_080FDA8C: - adds r0, r4, #0 - bl sub_080D6DF8 - ldr r1, _080FDA9C - cmp r0, r1 - beq _080FDAA0 - movs r0, #0 - b _080FDAA2 - .align 2, 0 -_080FDA9C: .4byte ItemUseOutOfBattle_EvolutionStone -_080FDAA0: - movs r0, #2 -_080FDAA2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end CheckIfItemIsTMHMOrEvolutionStone - - thumb_func_start sub_080FDAA8 -sub_080FDAA8: @ 0x080FDAA8 - push {lr} - sub sp, #0x24 - mov r1, sp - ldr r0, _080FDAC4 - ldrh r0, [r0] - strh r0, [r1, #0x20] - ldr r1, _080FDAC8 - mov r0, sp - movs r2, #0 - bl sub_08121568 - add sp, #0x24 - pop {r0} - bx r0 - .align 2, 0 -_080FDAC4: .4byte gUnknown_203CB48 -_080FDAC8: .4byte bag_menu_mail_related - thumb_func_end sub_080FDAA8 - - thumb_func_start sub_080FDACC -sub_080FDACC: @ 0x080FDACC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _080FDAE4 - ldr r2, [r1] - ldr r1, _080FDAE8 - str r1, [r2] - bl sub_081AB6A4 - pop {r0} - bx r0 - .align 2, 0 -_080FDAE4: .4byte gUnknown_203CB20 -_080FDAE8: .4byte sub_080FDAA8 - thumb_func_end sub_080FDACC - - thumb_func_start ItemUseOutOfBattle_Bike -ItemUseOutOfBattle_Bike: @ 0x080FDAEC - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080FDB6C - adds r6, r0, r1 - mov r4, sp - adds r4, #2 - 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, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080FDB70 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080FDB62 - adds r0, r4, #0 - bl MetatileBehavior_IsVerticalRail - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080FDB62 - adds r0, r4, #0 - bl MetatileBehavior_IsHorizontalRail - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080FDB62 - adds r0, r4, #0 - bl MetatileBehavior_IsIsolatedVerticalRail - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080FDB62 - adds r0, r4, #0 - bl MetatileBehavior_IsIsolatedHorizontalRail - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080FDB74 -_080FDB62: - ldrb r1, [r6, #6] - adds r0, r5, #0 - bl DisplayCannotDismountBikeMessage - b _080FDBA4 - .align 2, 0 -_080FDB6C: .4byte gUnknown_3005B68 -_080FDB70: .4byte 0x0000088B -_080FDB74: - bl Overworld_IsBikingAllowed - cmp r0, #1 - bne _080FDB9C - bl IsBikingDisallowedByPlayer - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FDB9C - ldr r1, _080FDB94 - ldr r0, _080FDB98 - str r0, [r1] - adds r0, r5, #0 - bl SetUpItemUseOnFieldCallback - b _080FDBA4 - .align 2, 0 -_080FDB94: .4byte gUnknown_2039DC0 -_080FDB98: .4byte sub_080FDBAC -_080FDB9C: - ldrb r1, [r6, #6] - adds r0, r5, #0 - bl DisplayDadsAdviceCannotUseItemMessage -_080FDBA4: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end ItemUseOutOfBattle_Bike - - thumb_func_start sub_080FDBAC -sub_080FDBAC: @ 0x080FDBAC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080FDBC8 - ldrh r0, [r0] - bl sub_080D6E6C - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FDBCC - movs r0, #2 - bl GetOnOffBike - b _080FDBD2 - .align 2, 0 -_080FDBC8: .4byte gUnknown_203CB48 -_080FDBCC: - movs r0, #4 - bl GetOnOffBike -_080FDBD2: - bl ScriptUnfreezeEventObjects - bl sub_080987E8 - adds r0, r4, #0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080FDBAC - - thumb_func_start CanFish -CanFish: @ 0x080FDBE8 - push {r4, r5, r6, lr} - sub sp, #4 - mov r4, sp - adds r4, #2 - 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, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r0, r6, #0x18 - lsrs r5, r0, #0x18 - adds r0, r5, #0 - bl MetatileBehavior_IsWaterfall - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FDC70 - movs r0, #0x10 - bl TestPlayerAvatarFlags - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FDC70 - movs r0, #8 - bl TestPlayerAvatarFlags - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FDC40 - bl IsPlayerFacingSurfableFishableWater - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FDC70 -_080FDC3C: - movs r0, #1 - b _080FDC72 -_080FDC40: - adds r0, r5, #0 - bl MetatileBehavior_IsSurfableWaterOrUnderwater - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FDC60 - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0 - ldrsh r1, [r4, r2] - bl MapGridIsImpassableAt - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FDC3C -_080FDC60: - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_8089510 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080FDC3C -_080FDC70: - movs r0, #0 -_080FDC72: - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CanFish - - thumb_func_start ItemUseOutOfBattle_Rod -ItemUseOutOfBattle_Rod: @ 0x080FDC7C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl CanFish - cmp r0, #1 - bne _080FDCA0 - ldr r1, _080FDC98 - ldr r0, _080FDC9C - str r0, [r1] - adds r0, r4, #0 - bl SetUpItemUseOnFieldCallback - b _080FDCB2 - .align 2, 0 -_080FDC98: .4byte gUnknown_2039DC0 -_080FDC9C: .4byte sub_080FDCBC -_080FDCA0: - ldr r0, _080FDCB8 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrb r1, [r1, #0xe] - adds r0, r4, #0 - bl DisplayDadsAdviceCannotUseItemMessage -_080FDCB2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FDCB8: .4byte gUnknown_3005B60 - thumb_func_end ItemUseOutOfBattle_Rod - - thumb_func_start sub_080FDCBC -sub_080FDCBC: @ 0x080FDCBC - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _080FDCE0 - ldrh r0, [r0] - bl sub_080D6E6C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl StartFishing - adds r0, r4, #0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FDCE0: .4byte gUnknown_203CB48 - thumb_func_end sub_080FDCBC - - thumb_func_start ItemUseOutOfBattle_Itemfinder -ItemUseOutOfBattle_Itemfinder: @ 0x080FDCE4 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0x27 - bl IncrementGameStat - ldr r1, _080FDD04 - ldr r0, _080FDD08 - str r0, [r1] - adds r0, r4, #0 - bl SetUpItemUseOnFieldCallback - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FDD04: .4byte gUnknown_2039DC0 -_080FDD08: .4byte ItemUseOnFieldCB_Itemfinder - thumb_func_end ItemUseOutOfBattle_Itemfinder - - thumb_func_start ItemUseOnFieldCB_Itemfinder -ItemUseOnFieldCB_Itemfinder: @ 0x080FDD0C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080FDD34 - ldr r0, [r0, #4] - adds r1, r4, #0 - bl ItemfinderCheckForHiddenItems - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080FDD40 - ldr r0, _080FDD38 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080FDD3C - str r0, [r1] - b _080FDD4A - .align 2, 0 -_080FDD34: .4byte gUnknown_2036FB8 -_080FDD38: .4byte gUnknown_3005B60 -_080FDD3C: .4byte sub_080FDD58 -_080FDD40: - ldr r1, _080FDD50 - ldr r2, _080FDD54 - adds r0, r4, #0 - bl DisplayItemMessageOnField -_080FDD4A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FDD50: .4byte gUnknown_85C95D3 -_080FDD54: .4byte sub_080FDE20 - thumb_func_end ItemUseOnFieldCB_Itemfinder - - thumb_func_start sub_080FDD58 -sub_080FDD58: @ 0x080FDD58 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r6, r5, #2 - adds r0, r6, r5 - lsls r7, r0, #3 - ldr r0, _080FDDAC - mov r8, r0 - adds r4, r7, r0 - movs r1, #6 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080FDE0C - movs r2, #8 - ldrsh r0, [r4, r2] - cmp r0, #4 - bne _080FDE00 - movs r1, #0 - ldrsh r0, [r4, r1] - movs r2, #2 - ldrsh r1, [r4, r2] - bl sub_080FE204 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _080FDDB8 - ldr r1, _080FDDB0 - subs r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - bl sub_080FE278 - mov r0, r8 - subs r0, #8 - adds r0, r7, r0 - ldr r1, _080FDDB4 - str r1, [r0] - b _080FDE16 - .align 2, 0 -_080FDDAC: .4byte gUnknown_3005B68 -_080FDDB0: .4byte gUnknown_856DCC8 -_080FDDB4: .4byte sub_080FE2E8 -_080FDDB8: - bl GetPlayerFacingDirection - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - movs r1, #0 - adds r3, r6, #0 - ldr r7, _080FDDF4 - movs r6, #3 -_080FDDC8: - adds r0, r1, r7 - adds r1, #1 - ldrb r0, [r0] - cmp r2, r0 - bne _080FDDD8 - adds r0, r1, #0 - ands r0, r6 - strh r0, [r4, #0xa] -_080FDDD8: - lsls r0, r1, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #3 - bls _080FDDC8 - ldr r1, _080FDDF8 - adds r0, r3, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080FDDFC - str r1, [r0] - movs r0, #0 - strh r0, [r4, #6] - strh r0, [r4, #4] - b _080FDE16 - .align 2, 0 -_080FDDF4: .4byte gUnknown_856DCC8 -_080FDDF8: .4byte gUnknown_3005B60 -_080FDDFC: .4byte sub_080FE330 -_080FDE00: - movs r0, #0x48 - bl sub_080A306C - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_080FDE0C: - ldrh r0, [r4, #6] - adds r0, #1 - movs r1, #0x1f - ands r0, r1 - strh r0, [r4, #6] -_080FDE16: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_080FDD58 - - thumb_func_start sub_080FDE20 -sub_080FDE20: @ 0x080FDE20 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - movs r1, #1 - bl sub_08197028 - bl ScriptUnfreezeEventObjects - bl sub_080987E8 - adds r0, r4, #0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080FDE20 - - thumb_func_start ItemfinderCheckForHiddenItems -ItemfinderCheckForHiddenItems: @ 0x080FDE44 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - adds r5, r0, #0 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - mov r4, sp - adds r4, #2 - mov r0, sp - adds r1, r4, #0 - bl PlayerGetDestCoords - ldr r1, _080FDF14 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #0xc] - movs r3, #0 - mov sb, r4 - ldrb r0, [r5, #3] - cmp r3, r0 - bge _080FDEF8 - subs r1, #5 - mov r8, r1 -_080FDE7C: - lsls r3, r3, #0x10 - asrs r1, r3, #0x10 - ldr r2, [r5, #0x10] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r4, r0, #2 - adds r1, r4, r2 - ldrb r0, [r1, #5] - adds r7, r3, #0 - cmp r0, #7 - bne _080FDEE8 - movs r2, #0xfa - lsls r2, r2, #1 - adds r0, r2, #0 - ldrh r1, [r1, #0xa] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FDEE8 - ldr r1, [r5, #0x10] - adds r1, r4, r1 - ldrh r2, [r1] - adds r2, #7 - mov r0, sp - ldrh r0, [r0] - subs r2, r2, r0 - ldrh r0, [r1, #2] - adds r0, #7 - mov r3, sb - ldrh r1, [r3] - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r2, r2, #0x10 - asrs r1, r2, #0x10 - movs r3, #0xe0 - lsls r3, r3, #0xb - adds r2, r2, r3 - lsrs r2, r2, #0x10 - cmp r2, #0xe - bhi _080FDEE8 - lsls r0, r0, #0x10 - asrs r2, r0, #0x10 - cmp r2, r8 - blt _080FDEE8 - cmp r2, #5 - bgt _080FDEE8 - adds r0, r6, #0 - bl sub_080FE134 -_080FDEE8: - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r7, r1 - lsrs r3, r0, #0x10 - asrs r0, r0, #0x10 - ldrb r2, [r5, #3] - cmp r0, r2 - blt _080FDE7C -_080FDEF8: - adds r0, r6, #0 - bl sub_080FE01C - ldr r0, _080FDF14 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r3, #0xc - ldrsh r0, [r1, r3] - cmp r0, #1 - beq _080FDF18 - movs r0, #0 - b _080FDF1A - .align 2, 0 -_080FDF14: .4byte gUnknown_3005B60 -_080FDF18: - movs r0, #1 -_080FDF1A: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end ItemfinderCheckForHiddenItems - - thumb_func_start sub_080FDF28 -sub_080FDF28: @ 0x080FDF28 - push {r4, r5, r6, lr} - lsls r1, r1, #0x10 - lsrs r3, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r4, r2, #0x10 - ldrb r2, [r0, #3] - ldr r5, [r0, #0x10] - movs r1, #0 - cmp r1, r2 - bge _080FDF7C - lsls r0, r3, #0x10 - asrs r6, r0, #0x10 - lsls r0, r4, #0x10 - asrs r4, r0, #0x10 - adds r3, r5, #0 -_080FDF46: - ldrb r0, [r3, #5] - cmp r0, #7 - bne _080FDF74 - ldrh r0, [r3] - cmp r6, r0 - bne _080FDF74 - ldrh r0, [r3, #2] - cmp r4, r0 - bne _080FDF74 - movs r1, #0xfa - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r3, [r3, #0xa] - adds r0, r0, r3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FDF7C - movs r0, #1 - b _080FDF7E -_080FDF74: - adds r3, #0xc - adds r1, #1 - cmp r1, r2 - blt _080FDF46 -_080FDF7C: - movs r0, #0 -_080FDF7E: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_080FDF28 - - thumb_func_start sub_080FDF84 -sub_080FDF84: @ 0x080FDF84 - push {r4, r5, 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, #2 - beq _080FDFAC - cmp r0, #2 - bgt _080FDFA2 - cmp r0, #1 - beq _080FDFC0 - b _080FE000 -_080FDFA2: - cmp r0, #3 - beq _080FDFD8 - cmp r0, #4 - beq _080FDFE2 - b _080FE000 -_080FDFAC: - ldr r0, [r4, #4] - adds r0, #7 - subs r0, r5, r0 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r0, [r3] - ldr r0, [r0, #4] - subs r0, #7 - adds r0, r0, r6 - b _080FDFF6 -_080FDFC0: - ldr r0, [r4, #4] - adds r0, #7 - subs r0, r5, r0 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r0, _080FDFD4 - ldr r0, [r0] - ldr r0, [r0, #4] - b _080FDFF2 - .align 2, 0 -_080FDFD4: .4byte gUnknown_2036FB8 -_080FDFD8: - ldr r0, [r3] - ldr r0, [r0] - subs r0, #7 - adds r0, r0, r5 - b _080FDFEC -_080FDFE2: - ldr r0, _080FDFFC - ldr r0, [r0] - ldr r0, [r0] - adds r0, #7 - subs r0, r5, r0 -_080FDFEC: - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r0, [r4, #4] -_080FDFF2: - adds r0, #7 - subs r0, r6, r0 -_080FDFF6: - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - b _080FE004 - .align 2, 0 -_080FDFFC: .4byte gUnknown_2036FB8 -_080FE000: - movs r0, #0 - b _080FE016 -_080FE004: - ldr r0, [r3, #4] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - bl sub_080FDF28 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_080FE016: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_080FDF84 - - thumb_func_start sub_080FE01C -sub_080FE01C: @ 0x080FE01C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - ldr r0, _080FE130 - ldr r1, [r0] - ldr r0, [r1] - adds r0, #7 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #8] - ldr r0, [r1, #4] - adds r0, #7 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0xc] - mov r4, sp - adds r4, #2 - mov r0, sp - adds r1, r4, #0 - bl PlayerGetDestCoords - mov r0, sp - ldrh r0, [r0] - subs r0, #7 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - asrs r0, r0, #0x10 - mov r1, sp - movs r2, #0 - ldrsh r1, [r1, r2] - adds r1, #7 - cmp r0, r1 - bgt _080FE120 -_080FE06A: - mov r5, sp - ldrh r0, [r5, #2] - subs r0, #5 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - lsls r2, r4, #0x10 - asrs r1, r2, #0x10 - movs r6, #2 - ldrsh r0, [r5, r6] - adds r0, #5 - lsls r3, r3, #0x10 - mov r8, r3 - cmp r1, r0 - bgt _080FE10A - movs r0, #7 - str r0, [sp, #0x10] - mov r1, r8 - asrs r1, r1, #0x10 - mov sb, r1 - mov sl, r0 -_080FE092: - ldr r3, [sp, #0x10] - cmp r3, sb - bgt _080FE0B4 - ldr r5, [sp, #8] - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - cmp sb, r0 - bge _080FE0B4 - asrs r1, r2, #0x10 - cmp sl, r1 - bgt _080FE0B4 - ldr r6, [sp, #0xc] - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - lsls r7, r4, #0x10 - cmp r1, r0 - blt _080FE0F2 -_080FE0B4: - mov r0, r8 - asrs r5, r0, #0x10 - lsls r4, r4, #0x10 - asrs r6, r4, #0x10 - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_080883F0 - adds r7, r4, #0 - cmp r0, #0 - beq _080FE0F2 - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_080FDF84 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080FE0F2 - mov r0, sp - ldrh r1, [r0] - subs r1, r5, r1 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldrh r2, [r0, #2] - subs r2, r6, r2 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - ldr r0, [sp, #4] - bl sub_080FE134 -_080FE0F2: - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r7, r1 - lsrs r4, r0, #0x10 - lsls r2, r4, #0x10 - asrs r1, r2, #0x10 - mov r3, sp - movs r5, #2 - ldrsh r0, [r3, r5] - adds r0, #5 - cmp r1, r0 - ble _080FE092 -_080FE10A: - movs r1, #0x80 - lsls r1, r1, #9 - add r1, r8 - lsrs r3, r1, #0x10 - asrs r1, r1, #0x10 - mov r0, sp - movs r6, #0 - ldrsh r0, [r0, r6] - adds r0, #7 - cmp r1, r0 - ble _080FE06A -_080FE120: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080FE130: .4byte gUnknown_2036FB8 - thumb_func_end sub_080FE01C - - thumb_func_start sub_080FE134 -sub_080FE134: @ 0x080FE134 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - mov ip, r2 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _080FE168 - adds r3, r1, r0 - movs r1, #4 - ldrsh r0, [r3, r1] - cmp r0, #0 - bne _080FE16C - strh r7, [r3] - mov r0, ip - strh r0, [r3, #2] - movs r0, #1 - strh r0, [r3, #4] - b _080FE1F6 - .align 2, 0 -_080FE168: .4byte gUnknown_3005B68 -_080FE16C: - movs r1, #0 - ldrsh r0, [r3, r1] - cmp r0, #0 - bge _080FE17C - rsbs r0, r0, #0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - b _080FE17E -_080FE17C: - ldrh r4, [r3] -_080FE17E: - movs r1, #2 - ldrsh r0, [r3, r1] - ldrh r1, [r3, #2] - mov sb, r1 - cmp r0, #0 - bge _080FE192 - rsbs r0, r0, #0 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - b _080FE194 -_080FE192: - ldrh r2, [r3, #2] -_080FE194: - lsls r1, r7, #0x10 - asrs r0, r1, #0x10 - cmp r0, #0 - bge _080FE1A4 - rsbs r0, r0, #0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - b _080FE1A6 -_080FE1A4: - lsrs r6, r1, #0x10 -_080FE1A6: - mov r1, ip - lsls r0, r1, #0x10 - asrs r1, r0, #0x10 - mov r8, r0 - cmp r1, #0 - bge _080FE1B8 - rsbs r0, r1, #0 - lsls r0, r0, #0x10 - b _080FE1BA -_080FE1B8: - mov r0, r8 -_080FE1BA: - lsrs r5, r0, #0x10 - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - lsls r1, r2, #0x10 - asrs r2, r1, #0x10 - adds r4, r0, r2 - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - lsls r1, r5, #0x10 - asrs r1, r1, #0x10 - adds r0, r0, r1 - cmp r4, r0 - ble _080FE1DC - strh r7, [r3] - mov r1, ip - strh r1, [r3, #2] - b _080FE1F6 -_080FE1DC: - cmp r4, r0 - bne _080FE1F6 - cmp r2, r1 - bgt _080FE1F0 - cmp r2, r1 - bne _080FE1F6 - mov r1, sb - lsls r0, r1, #0x10 - cmp r0, r8 - bge _080FE1F6 -_080FE1F0: - strh r7, [r3] - mov r0, ip - strh r0, [r3, #2] -_080FE1F6: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080FE134 - - thumb_func_start sub_080FE204 -sub_080FE204: @ 0x080FE204 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsrs r2, r0, #0x10 - cmp r0, #0 - bne _080FE216 - cmp r1, #0 - beq _080FE270 -_080FE216: - lsls r0, r2, #0x10 - asrs r2, r0, #0x10 - adds r5, r0, #0 - cmp r2, #0 - bge _080FE228 - rsbs r0, r2, #0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - b _080FE22A -_080FE228: - lsrs r4, r5, #0x10 -_080FE22A: - lsls r0, r1, #0x10 - asrs r2, r0, #0x10 - adds r1, r0, #0 - cmp r2, #0 - bge _080FE23C - rsbs r0, r2, #0 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - b _080FE23E -_080FE23C: - lsrs r3, r1, #0x10 -_080FE23E: - lsls r0, r4, #0x10 - asrs r2, r0, #0x10 - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - cmp r2, r0 - ble _080FE256 - cmp r5, #0 - bge _080FE252 - movs r0, #4 - b _080FE272 -_080FE252: - movs r0, #2 - b _080FE272 -_080FE256: - cmp r2, r0 - bge _080FE260 - cmp r1, #0 - blt _080FE268 - b _080FE26C -_080FE260: - cmp r2, r0 - bne _080FE270 - cmp r1, #0 - bge _080FE26C -_080FE268: - movs r0, #1 - b _080FE272 -_080FE26C: - movs r0, #3 - b _080FE272 -_080FE270: - movs r0, #0 -_080FE272: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_080FE204 - - thumb_func_start sub_080FE278 -sub_080FE278: @ 0x080FE278 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - movs r0, #0xff - movs r1, #0 - movs r2, #0 - bl GetEventObjectIdByLocalIdAndMap - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _080FE2E4 - adds r0, r0, r4 - bl EventObjectClearHeldMovementIfFinished - movs r0, #0xff - movs r1, #0 - movs r2, #0 - bl GetEventObjectIdByLocalIdAndMap - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl EventObjectClearHeldMovement - movs r0, #0xff - movs r1, #0 - movs r2, #0 - bl GetEventObjectIdByLocalIdAndMap - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl UnfreezeEventObject - adds r0, r5, #0 - bl PlayerTurnInPlace - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FE2E4: .4byte gUnknown_2036FF0 - thumb_func_end sub_080FE278 - - thumb_func_start sub_080FE2E8 -sub_080FE2E8: @ 0x080FE2E8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #0xff - movs r1, #0 - movs r2, #0 - bl GetEventObjectIdByLocalIdAndMap - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080FE324 - adds r0, r0, r1 - bl EventObjectCheckHeldMovementStatus - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080FE31E - ldr r1, _080FE328 - ldr r2, _080FE32C - adds r0, r4, #0 - bl DisplayItemMessageOnField -_080FE31E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FE324: .4byte gUnknown_2036FF0 -_080FE328: .4byte gUnknown_85C958E -_080FE32C: .4byte sub_080FDE20 - thumb_func_end sub_080FE2E8 - - thumb_func_start sub_080FE330 -sub_080FE330: @ 0x080FE330 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _080FE3AC - adds r4, r0, r1 - movs r0, #0xff - movs r1, #0 - movs r2, #0 - bl GetEventObjectIdByLocalIdAndMap - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080FE3B0 - adds r0, r0, r1 - bl EventObjectCheckHeldMovementStatus - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _080FE370 - movs r1, #4 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080FE3A4 -_080FE370: - ldr r1, _080FE3B4 - movs r2, #0xa - ldrsh r0, [r4, r2] - adds r0, r0, r1 - ldrb r0, [r0] - bl sub_080FE278 - movs r0, #1 - strh r0, [r4, #4] - ldrh r0, [r4, #0xa] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strh r0, [r4, #0xa] - ldrh r0, [r4, #6] - adds r0, #1 - strh r0, [r4, #6] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - bne _080FE3A4 - ldr r1, _080FE3B8 - ldr r2, _080FE3BC - adds r0, r5, #0 - bl DisplayItemMessageOnField -_080FE3A4: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FE3AC: .4byte gUnknown_3005B68 -_080FE3B0: .4byte gUnknown_2036FF0 -_080FE3B4: .4byte gUnknown_856DCC8 -_080FE3B8: .4byte gUnknown_85C95B6 -_080FE3BC: .4byte sub_080FDE20 - thumb_func_end sub_080FE330 - - thumb_func_start ItemUseOutOfBattle_PokeblockCase -ItemUseOutOfBattle_PokeblockCase: @ 0x080FE3C0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl sub_081221B8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080FE3EC - ldr r0, _080FE3E8 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrb r1, [r1, #0xe] - adds r0, r4, #0 - bl DisplayDadsAdviceCannotUseItemMessage - b _080FE42E - .align 2, 0 -_080FE3E8: .4byte gUnknown_3005B60 -_080FE3EC: - ldr r0, _080FE410 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r5, r1, r0 - movs r1, #0xe - ldrsh r0, [r5, r1] - cmp r0, #1 - beq _080FE41C - ldr r0, _080FE414 - ldr r1, [r0] - ldr r0, _080FE418 - str r0, [r1] - adds r0, r4, #0 - bl sub_081AB6A4 - b _080FE42E - .align 2, 0 -_080FE410: .4byte gUnknown_3005B60 -_080FE414: .4byte gUnknown_203CB20 -_080FE418: .4byte sub_080FE440 -_080FE41C: - ldr r0, _080FE434 - ldr r1, _080FE438 - str r1, [r0] - movs r0, #1 - movs r1, #0 - bl FadeScreen - ldr r0, _080FE43C - str r0, [r5] -_080FE42E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FE434: .4byte gUnknown_3005B0C -_080FE438: .4byte sub_080AEFD0 -_080FE43C: .4byte sub_080FE454 - thumb_func_end ItemUseOutOfBattle_PokeblockCase - - thumb_func_start sub_080FE440 -sub_080FE440: @ 0x080FE440 - push {lr} - ldr r1, _080FE450 - movs r0, #0 - bl sub_08135850 - pop {r0} - bx r0 - .align 2, 0 -_080FE450: .4byte bag_menu_mail_related - thumb_func_end sub_080FE440 - - thumb_func_start sub_080FE454 -sub_080FE454: @ 0x080FE454 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080FE480 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080FE478 - bl CleanupOverworldWindowsAndTilemaps - ldr r1, _080FE484 - movs r0, #0 - bl sub_08135850 - adds r0, r4, #0 - bl DestroyTask -_080FE478: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FE480: .4byte gUnknown_2037C74 -_080FE484: .4byte sub_08085A30 - thumb_func_end sub_080FE454 - - thumb_func_start ItemUseOutOfBattle_CoinCase -ItemUseOutOfBattle_CoinCase: @ 0x080FE488 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r4, _080FE4D0 - bl GetCoins - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - movs r2, #0 - movs r3, #4 - bl sub_080089D8 - ldr r4, _080FE4D4 - ldr r1, _080FE4D8 - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r1, _080FE4DC - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0xe - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _080FE4E4 - ldr r3, _080FE4E0 - adds r0, r5, #0 - movs r1, #1 - adds r2, r4, #0 - bl DisplayItemMessage - b _080FE4EE - .align 2, 0 -_080FE4D0: .4byte gUnknown_2021C40 -_080FE4D4: .4byte gUnknown_2021C7C -_080FE4D8: .4byte gUnknown_85C95F0 -_080FE4DC: .4byte gUnknown_3005B60 -_080FE4E0: .4byte BagMenu_InitListsMenu -_080FE4E4: - ldr r2, _080FE4F4 - adds r0, r5, #0 - adds r1, r4, #0 - bl DisplayItemMessageOnField -_080FE4EE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FE4F4: .4byte CleanUpAfterFailingToUseRegisteredKeyItemOnField - thumb_func_end ItemUseOutOfBattle_CoinCase - - thumb_func_start ItemUseOutOfBattle_PowderJar -ItemUseOutOfBattle_PowderJar: @ 0x080FE4F8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r4, _080FE53C - bl GetBerryPowder - adds r1, r0, #0 - adds r0, r4, #0 - movs r2, #0 - movs r3, #5 - bl sub_080089D8 - ldr r4, _080FE540 - ldr r1, _080FE544 - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r1, _080FE548 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0xe - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _080FE550 - ldr r3, _080FE54C - adds r0, r5, #0 - movs r1, #1 - adds r2, r4, #0 - bl DisplayItemMessage - b _080FE55A - .align 2, 0 -_080FE53C: .4byte gUnknown_2021C40 -_080FE540: .4byte gUnknown_2021C7C -_080FE544: .4byte gUnknown_85C96CE -_080FE548: .4byte gUnknown_3005B60 -_080FE54C: .4byte BagMenu_InitListsMenu -_080FE550: - ldr r2, _080FE560 - adds r0, r5, #0 - adds r1, r4, #0 - bl DisplayItemMessageOnField -_080FE55A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FE560: .4byte CleanUpAfterFailingToUseRegisteredKeyItemOnField - thumb_func_end ItemUseOutOfBattle_PowderJar - - thumb_func_start sub_080FE564 -sub_080FE564: @ 0x080FE564 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl IsPlayerFacingEmptyBerryTreePatch - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080FE5AC - ldr r1, _080FE594 - ldr r0, _080FE598 - str r0, [r1] - ldr r1, _080FE59C - ldr r0, _080FE5A0 - str r0, [r1] - ldr r0, _080FE5A4 - ldr r1, [r0] - ldr r0, _080FE5A8 - str r0, [r1] - adds r0, r4, #0 - bl sub_081AB6A4 - b _080FE5BC - .align 2, 0 -_080FE594: .4byte gUnknown_2039DC0 -_080FE598: .4byte sub_080FE5C8 -_080FE59C: .4byte gUnknown_3005B0C -_080FE5A0: .4byte MapPostLoadHook_UseItem -_080FE5A4: .4byte gUnknown_203CB20 -_080FE5A8: .4byte sub_08085A30 -_080FE5AC: - ldr r0, _080FE5C4 - ldrh r0, [r0] - bl sub_080D6DF8 - adds r1, r0, #0 - adds r0, r4, #0 - bl _call_via_r1 -_080FE5BC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FE5C4: .4byte gUnknown_203CB48 - thumb_func_end sub_080FE564 - - thumb_func_start sub_080FE5C8 -sub_080FE5C8: @ 0x080FE5C8 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _080FE5F0 - ldrh r0, [r0] - movs r1, #1 - bl RemoveBagItem - bl sub_080987DC - ldr r0, _080FE5F4 - bl ScriptContext1_SetupScript - adds r0, r4, #0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FE5F0: .4byte gUnknown_203CB48 -_080FE5F4: .4byte gUnknown_8244E9D - thumb_func_end sub_080FE5C8 - - thumb_func_start ItemUseOutOfBattle_WailmerPail -ItemUseOutOfBattle_WailmerPail: @ 0x080FE5F8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, r4, #0 - bl sub_080FE680 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080FE61C - ldr r1, _080FE614 - ldr r0, _080FE618 - b _080FE62C - .align 2, 0 -_080FE614: .4byte gUnknown_2039DC0 -_080FE618: .4byte sub_080FE6D0 -_080FE61C: - bl TryToWaterBerryTree - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080FE640 - ldr r1, _080FE638 - ldr r0, _080FE63C -_080FE62C: - str r0, [r1] - adds r0, r4, #0 - bl SetUpItemUseOnFieldCallback - b _080FE652 - .align 2, 0 -_080FE638: .4byte gUnknown_2039DC0 -_080FE63C: .4byte sub_080FE65C -_080FE640: - ldr r0, _080FE658 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrb r1, [r1, #0xe] - adds r0, r5, #0 - bl DisplayDadsAdviceCannotUseItemMessage -_080FE652: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FE658: .4byte gUnknown_3005B60 - thumb_func_end ItemUseOutOfBattle_WailmerPail - - thumb_func_start sub_080FE65C -sub_080FE65C: @ 0x080FE65C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_080987DC - ldr r0, _080FE67C - bl ScriptContext1_SetupScript - adds r0, r4, #0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FE67C: .4byte gUnknown_8244ED8 - thumb_func_end sub_080FE65C - - thumb_func_start sub_080FE680 -sub_080FE680: @ 0x080FE680 - push {r4, lr} - sub sp, #4 - mov r4, sp - adds r4, #2 - mov r0, sp - adds r1, r4, #0 - bl GetXYCoordsOneStepInFrontOfPlayer - bl PlayerGetZCoord - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r0, sp - ldrh r0, [r0] - ldrh r1, [r4] - bl GetEventObjectIdByXYZ - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x10 - beq _080FE6BC - ldr r0, _080FE6C0 - lsls r1, r2, #3 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #5] - cmp r0, #0xe4 - beq _080FE6C4 -_080FE6BC: - movs r0, #0 - b _080FE6C6 - .align 2, 0 -_080FE6C0: .4byte gUnknown_2036FF0 -_080FE6C4: - movs r0, #1 -_080FE6C6: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_080FE680 - - thumb_func_start sub_080FE6D0 -sub_080FE6D0: @ 0x080FE6D0 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_080987DC - ldr r0, _080FE6F0 - bl ScriptContext1_SetupScript - adds r0, r4, #0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FE6F0: .4byte gUnknown_8222A99 - thumb_func_end sub_080FE6D0 - - thumb_func_start ItemUseOutOfBattle_Medicine -ItemUseOutOfBattle_Medicine: @ 0x080FE6F4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080FE708 - ldr r1, _080FE70C - str r1, [r2] - bl SetUpItemUseCallback - pop {r0} - bx r0 - .align 2, 0 -_080FE708: .4byte gUnknown_3006068 -_080FE70C: .4byte ItemUseCB_Medicine - thumb_func_end ItemUseOutOfBattle_Medicine - - thumb_func_start ItemUseOutOfBattle_ReduceEV -ItemUseOutOfBattle_ReduceEV: @ 0x080FE710 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080FE724 - ldr r1, _080FE728 - str r1, [r2] - bl SetUpItemUseCallback - pop {r0} - bx r0 - .align 2, 0 -_080FE724: .4byte gUnknown_3006068 -_080FE728: .4byte sub_081B6468 - thumb_func_end ItemUseOutOfBattle_ReduceEV - - thumb_func_start ItemUseOutOfBattle_SacredAsh -ItemUseOutOfBattle_SacredAsh: @ 0x080FE72C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080FE740 - ldr r1, _080FE744 - str r1, [r2] - bl SetUpItemUseCallback - pop {r0} - bx r0 - .align 2, 0 -_080FE740: .4byte gUnknown_3006068 -_080FE744: .4byte sub_081B768C - thumb_func_end ItemUseOutOfBattle_SacredAsh - - thumb_func_start ItemUseOutOfBattle_PPRecovery -ItemUseOutOfBattle_PPRecovery: @ 0x080FE748 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080FE75C - ldr r1, _080FE760 - str r1, [r2] - bl SetUpItemUseCallback - pop {r0} - bx r0 - .align 2, 0 -_080FE75C: .4byte gUnknown_3006068 -_080FE760: .4byte dp05_ether - thumb_func_end ItemUseOutOfBattle_PPRecovery - - thumb_func_start ItemUseOutOfBattle_PPUp -ItemUseOutOfBattle_PPUp: @ 0x080FE764 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080FE778 - ldr r1, _080FE77C - str r1, [r2] - bl SetUpItemUseCallback - pop {r0} - bx r0 - .align 2, 0 -_080FE778: .4byte gUnknown_3006068 -_080FE77C: .4byte dp05_pp_up - thumb_func_end ItemUseOutOfBattle_PPUp - - thumb_func_start ItemUseOutOfBattle_RareCandy -ItemUseOutOfBattle_RareCandy: @ 0x080FE780 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080FE794 - ldr r1, _080FE798 - str r1, [r2] - bl SetUpItemUseCallback - pop {r0} - bx r0 - .align 2, 0 -_080FE794: .4byte gUnknown_3006068 -_080FE798: .4byte dp05_rare_candy - thumb_func_end ItemUseOutOfBattle_RareCandy - - thumb_func_start ItemUseOutOfBattle_TMHM -ItemUseOutOfBattle_TMHM: @ 0x080FE79C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080FE7BC - ldrh r1, [r0] - movs r0, #0xa9 - lsls r0, r0, #1 - cmp r1, r0 - bls _080FE7C8 - ldr r2, _080FE7C0 - ldr r3, _080FE7C4 - adds r0, r4, #0 - movs r1, #1 - bl DisplayItemMessage - b _080FE7D4 - .align 2, 0 -_080FE7BC: .4byte gUnknown_203CB48 -_080FE7C0: .4byte gUnknown_85C960E -_080FE7C4: .4byte sub_080FE7E4 -_080FE7C8: - ldr r2, _080FE7DC - ldr r3, _080FE7E0 - adds r0, r4, #0 - movs r1, #1 - bl DisplayItemMessage -_080FE7D4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FE7DC: .4byte gUnknown_85C9600 -_080FE7E0: .4byte sub_080FE7E4 - thumb_func_end ItemUseOutOfBattle_TMHM - - thumb_func_start sub_080FE7E4 -sub_080FE7E4: @ 0x080FE7E4 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #2 - bl sub_080A306C - ldr r1, _080FE808 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _080FE80C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FE808: .4byte gUnknown_3005B60 -_080FE80C: .4byte sub_080FE810 - thumb_func_end sub_080FE7E4 - - thumb_func_start sub_080FE810 -sub_080FE810: @ 0x080FE810 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _080FE858 - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _080FE852 - ldr r4, _080FE85C - ldr r0, _080FE860 - ldrh r0, [r0] - bl ItemIdToBattleMoveId - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0xd - ldr r0, _080FE864 - adds r1, r1, r0 - adds r0, r4, #0 - bl StringCopy - ldr r4, _080FE868 - ldr r1, _080FE86C - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r3, _080FE870 - adds r0, r5, #0 - movs r1, #1 - adds r2, r4, #0 - bl DisplayItemMessage -_080FE852: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FE858: .4byte gUnknown_3002360 -_080FE85C: .4byte gUnknown_2021C40 -_080FE860: .4byte gUnknown_203CB48 -_080FE864: .4byte gUnknown_82EACC4 -_080FE868: .4byte gUnknown_2021C7C -_080FE86C: .4byte gUnknown_85C961D -_080FE870: .4byte sub_080FE874 - thumb_func_end sub_080FE810 - - thumb_func_start sub_080FE874 -sub_080FE874: @ 0x080FE874 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080FE888 - movs r1, #6 - bl BagMenu_YesNo - pop {r0} - bx r0 - .align 2, 0 -_080FE888: .4byte gUnknown_856DCCC - thumb_func_end sub_080FE874 - - thumb_func_start sub_080FE88C -sub_080FE88C: @ 0x080FE88C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080FE8A0 - ldr r1, _080FE8A4 - str r1, [r2] - bl SetUpItemUseCallback - pop {r0} - bx r0 - .align 2, 0 -_080FE8A0: .4byte gUnknown_3006068 -_080FE8A4: .4byte sub_081B6A7C - thumb_func_end sub_080FE88C - - thumb_func_start sub_080FE8A8 -sub_080FE8A8: @ 0x080FE8A8 - push {r4, lr} - ldr r4, _080FE8EC - ldrh r0, [r4] - movs r1, #1 - bl RemoveBagItem - ldrh r0, [r4] - ldr r1, _080FE8F0 - bl sub_080D5EC8 - ldr r0, _080FE8F4 - ldr r1, _080FE8F8 - bl StringExpandPlaceholders - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FE8FC - ldrh r0, [r4] - bl sub_080D6DB0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_081AB754 - ldrh r0, [r4] - bl sub_080D6DB0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl SetInitialScrollAndCursorPositions - b _080FE904 - .align 2, 0 -_080FE8EC: .4byte gUnknown_203CB48 -_080FE8F0: .4byte gUnknown_2021C54 -_080FE8F4: .4byte gUnknown_2021C7C -_080FE8F8: .4byte gUnknown_85C9644 -_080FE8FC: - bl sub_081C5120 - bl sub_081C51B8 -_080FE904: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080FE8A8 - - thumb_func_start ItemUseOutOfBattle_Repel -ItemUseOutOfBattle_Repel: @ 0x080FE90C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, r4, #0 - ldr r0, _080FE930 - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080FE93C - ldr r0, _080FE934 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080FE938 - str r0, [r1] - b _080FE966 - .align 2, 0 -_080FE930: .4byte 0x00004021 -_080FE934: .4byte gUnknown_3005B60 -_080FE938: .4byte sub_080FE974 -_080FE93C: - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FE95C - ldr r2, _080FE954 - ldr r3, _080FE958 - adds r0, r4, #0 - movs r1, #1 - bl DisplayItemMessage - b _080FE966 - .align 2, 0 -_080FE954: .4byte gUnknown_85C9654 -_080FE958: .4byte BagMenu_InitListsMenu -_080FE95C: - ldr r1, _080FE96C - ldr r2, _080FE970 - adds r0, r5, #0 - bl sub_081C6598 -_080FE966: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FE96C: .4byte gUnknown_85C9654 -_080FE970: .4byte sub_081C5F24 - thumb_func_end ItemUseOutOfBattle_Repel - - thumb_func_start sub_080FE974 -sub_080FE974: @ 0x080FE974 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r4, r1, #3 - ldr r5, _080FE9AC - adds r1, r4, r5 - ldrh r0, [r1, #0x10] - adds r0, #1 - strh r0, [r1, #0x10] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #7 - ble _080FE9A6 - movs r0, #0 - strh r0, [r1, #0x10] - movs r0, #0x2f - bl sub_080A306C - adds r0, r5, #0 - subs r0, #8 - adds r0, r4, r0 - ldr r1, _080FE9B0 - str r1, [r0] -_080FE9A6: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FE9AC: .4byte gUnknown_3005B68 -_080FE9B0: .4byte sub_080FE9B4 - thumb_func_end sub_080FE974 - - thumb_func_start sub_080FE9B4 -sub_080FE9B4: @ 0x080FE9B4 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r6, r5, #0 - bl IsSEPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FEA12 - ldr r4, _080FE9F8 - ldr r0, _080FE9FC - ldrh r0, [r0] - bl sub_080D6D1C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl VarSet - bl sub_080FE8A8 - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FEA08 - ldr r2, _080FEA00 - ldr r3, _080FEA04 - adds r0, r5, #0 - movs r1, #1 - bl DisplayItemMessage - b _080FEA12 - .align 2, 0 -_080FE9F8: .4byte 0x00004021 -_080FE9FC: .4byte gUnknown_203CB48 -_080FEA00: .4byte gUnknown_2021C7C -_080FEA04: .4byte BagMenu_InitListsMenu -_080FEA08: - ldr r1, _080FEA18 - ldr r2, _080FEA1C - adds r0, r6, #0 - bl sub_081C6598 -_080FEA12: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080FEA18: .4byte gUnknown_2021C7C -_080FEA1C: .4byte sub_081C5F24 - thumb_func_end sub_080FE9B4 - - thumb_func_start sub_080FEA20 -sub_080FEA20: @ 0x080FEA20 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, r4, #0 - ldr r0, _080FEA60 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x18] - adds r0, #1 - strh r0, [r1, #0x18] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #7 - ble _080FEA76 - movs r0, #0x75 - bl sub_080A306C - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FEA6C - ldr r2, _080FEA64 - ldr r3, _080FEA68 - adds r0, r4, #0 - movs r1, #1 - bl DisplayItemMessage - b _080FEA76 - .align 2, 0 -_080FEA60: .4byte gUnknown_3005B60 -_080FEA64: .4byte gUnknown_2021C7C -_080FEA68: .4byte BagMenu_InitListsMenu -_080FEA6C: - ldr r1, _080FEA7C - ldr r2, _080FEA80 - adds r0, r5, #0 - bl sub_081C6598 -_080FEA76: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FEA7C: .4byte gUnknown_2021C7C -_080FEA80: .4byte sub_081C5F24 - thumb_func_end sub_080FEA20 - - thumb_func_start ItemUseOutOfBattle_BlackWhiteFlute -ItemUseOutOfBattle_BlackWhiteFlute: @ 0x080FEA84 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r4, _080FEAB0 - ldrh r0, [r4] - ldr r1, _080FEAB4 - bl sub_080D5EC8 - ldrh r0, [r4] - cmp r0, #0x2b - bne _080FEAC8 - ldr r0, _080FEAB8 - bl FlagSet - ldr r0, _080FEABC - bl FlagClear - ldr r0, _080FEAC0 - ldr r1, _080FEAC4 - bl StringExpandPlaceholders - b _080FEADC - .align 2, 0 -_080FEAB0: .4byte gUnknown_203CB48 -_080FEAB4: .4byte gUnknown_2021C54 -_080FEAB8: .4byte 0x000008AD -_080FEABC: .4byte 0x000008AE -_080FEAC0: .4byte gUnknown_2021C7C -_080FEAC4: .4byte gUnknown_85C9675 -_080FEAC8: - ldr r0, _080FEAF4 - bl FlagSet - ldr r0, _080FEAF8 - bl FlagClear - ldr r0, _080FEAFC - ldr r1, _080FEB00 - bl StringExpandPlaceholders -_080FEADC: - ldr r1, _080FEB04 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #0x18] - ldr r1, _080FEB08 - str r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FEAF4: .4byte 0x000008AE -_080FEAF8: .4byte 0x000008AD -_080FEAFC: .4byte gUnknown_2021C7C -_080FEB00: .4byte gUnknown_85C9699 -_080FEB04: .4byte gUnknown_3005B60 -_080FEB08: .4byte sub_080FEA20 - thumb_func_end ItemUseOutOfBattle_BlackWhiteFlute - - thumb_func_start sub_080FEB0C -sub_080FEB0C: @ 0x080FEB0C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl ResetInitialPlayerAvatarState - bl StartEscapeRopeFieldEffect - adds r0, r4, #0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080FEB0C - - thumb_func_start re_escape_rope -re_escape_rope: @ 0x080FEB28 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_0808406C - bl sub_080FE8A8 - ldr r1, _080FEB58 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #8] - ldr r1, _080FEB5C - ldr r2, _080FEB60 - adds r0, r4, #0 - bl DisplayItemMessageOnField - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FEB58: .4byte gUnknown_3005B60 -_080FEB5C: .4byte gUnknown_2021C7C -_080FEB60: .4byte sub_080FEB0C - thumb_func_end re_escape_rope - - thumb_func_start CanUseEscapeRopeOnCurrMap -CanUseEscapeRopeOnCurrMap: @ 0x080FEB64 - push {lr} - ldr r0, _080FEB78 - ldrb r1, [r0, #0x1a] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _080FEB7C - movs r0, #0 - b _080FEB7E - .align 2, 0 -_080FEB78: .4byte gUnknown_2036FB8 -_080FEB7C: - movs r0, #1 -_080FEB7E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CanUseEscapeRopeOnCurrMap - - thumb_func_start ItemUseOutOfBattle_EscapeRope -ItemUseOutOfBattle_EscapeRope: @ 0x080FEB84 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl CanUseEscapeRopeOnCurrMap - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080FEBAC - ldr r1, _080FEBA4 - ldr r0, _080FEBA8 - str r0, [r1] - adds r0, r4, #0 - bl SetUpItemUseOnFieldCallback - b _080FEBBE - .align 2, 0 -_080FEBA4: .4byte gUnknown_2039DC0 -_080FEBA8: .4byte re_escape_rope -_080FEBAC: - ldr r0, _080FEBC4 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrb r1, [r1, #0xe] - adds r0, r4, #0 - bl DisplayDadsAdviceCannotUseItemMessage -_080FEBBE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FEBC4: .4byte gUnknown_3005B60 - thumb_func_end ItemUseOutOfBattle_EscapeRope - - thumb_func_start ItemUseOutOfBattle_EvolutionStone -ItemUseOutOfBattle_EvolutionStone: @ 0x080FEBC8 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080FEBDC - ldr r1, _080FEBE0 - str r1, [r2] - bl SetUpItemUseCallback - pop {r0} - bx r0 - .align 2, 0 -_080FEBDC: .4byte gUnknown_3006068 -_080FEBE0: .4byte sub_081B7918 - thumb_func_end ItemUseOutOfBattle_EvolutionStone - - thumb_func_start ItemUseInBattle_PokeBall -ItemUseInBattle_PokeBall: @ 0x080FEBE4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, r4, #0 - bl IsPlayerPartyAndPokemonStorageFull - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FEC20 - ldr r0, _080FEC14 - ldrh r0, [r0] - movs r1, #1 - bl RemoveBagItem - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FEC18 - adds r0, r4, #0 - bl sub_081AB6A4 - b _080FEC4A - .align 2, 0 -_080FEC14: .4byte gUnknown_203CB48 -_080FEC18: - adds r0, r4, #0 - bl sub_081C5310 - b _080FEC4A -_080FEC20: - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FEC40 - ldr r2, _080FEC38 - ldr r3, _080FEC3C - adds r0, r4, #0 - movs r1, #1 - bl DisplayItemMessage - b _080FEC4A - .align 2, 0 -_080FEC38: .4byte gUnknown_85C96BD -_080FEC3C: .4byte BagMenu_InitListsMenu -_080FEC40: - ldr r1, _080FEC50 - ldr r2, _080FEC54 - adds r0, r5, #0 - bl sub_081C6598 -_080FEC4A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FEC50: .4byte gUnknown_85C96BD -_080FEC54: .4byte sub_081C5F24 - thumb_func_end ItemUseInBattle_PokeBall - - thumb_func_start sub_080FEC58 -sub_080FEC58: @ 0x080FEC58 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, r4, #0 - ldr r0, _080FEC80 - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _080FEC8A - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FEC84 - adds r0, r4, #0 - bl sub_081AB6A4 - b _080FEC8A - .align 2, 0 -_080FEC80: .4byte gUnknown_3002360 -_080FEC84: - adds r0, r5, #0 - bl sub_081C5310 -_080FEC8A: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_080FEC58 - - thumb_func_start OpponentHandleFaintAnimation -OpponentHandleFaintAnimation: @ 0x080FEC90 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r6, r5, #0 - ldr r0, _080FECE0 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x18] - adds r0, #1 - strh r0, [r1, #0x18] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #7 - ble _080FECFC - movs r0, #1 - bl sub_080A306C - ldr r4, _080FECE4 - ldrh r0, [r4] - movs r1, #1 - bl RemoveBagItem - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FECEC - ldrh r0, [r4] - bl sub_0806CA3C - adds r2, r0, #0 - ldr r3, _080FECE8 - adds r0, r5, #0 - movs r1, #1 - bl DisplayItemMessage - b _080FECFC - .align 2, 0 -_080FECE0: .4byte gUnknown_3005B60 -_080FECE4: .4byte gUnknown_203CB48 -_080FECE8: .4byte sub_080FEC58 -_080FECEC: - ldrh r0, [r4] - bl sub_0806CA3C - adds r1, r0, #0 - ldr r2, _080FED04 - adds r0, r6, #0 - bl sub_081C6598 -_080FECFC: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080FED04: .4byte sub_080FEC58 - thumb_func_end OpponentHandleFaintAnimation - - thumb_func_start ItemUseInBattle_StatIncrease -ItemUseInBattle_StatIncrease: @ 0x080FED08 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _080FED50 - ldr r0, _080FED54 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r2, [r0] - movs r0, #0x64 - muls r0, r2, r0 - ldr r1, _080FED58 - adds r0, r0, r1 - ldr r1, _080FED5C - ldrh r1, [r1] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r3, #0 - bl ExecuteTableBasedItemEffect - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - beq _080FED7C - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FED68 - ldr r2, _080FED60 - ldr r3, _080FED64 - adds r0, r4, #0 - movs r1, #1 - bl DisplayItemMessage - b _080FED8C - .align 2, 0 -_080FED50: .4byte gUnknown_2023D12 -_080FED54: .4byte gUnknown_202415C -_080FED58: .4byte gUnknown_2024190 -_080FED5C: .4byte gUnknown_203CB48 -_080FED60: .4byte gUnknown_85C9AF7 -_080FED64: .4byte BagMenu_InitListsMenu -_080FED68: - ldr r1, _080FED74 - ldr r2, _080FED78 - adds r0, r4, #0 - bl sub_081C6598 - b _080FED8C - .align 2, 0 -_080FED74: .4byte gUnknown_85C9AF7 -_080FED78: .4byte sub_081C5F24 -_080FED7C: - ldr r0, _080FED94 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _080FED98 - str r0, [r1] - strh r2, [r1, #0x18] -_080FED8C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FED94: .4byte gUnknown_3005B60 -_080FED98: .4byte OpponentHandleFaintAnimation - thumb_func_end ItemUseInBattle_StatIncrease - - thumb_func_start sub_080FED9C -sub_080FED9C: @ 0x080FED9C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FEDC4 - ldr r0, _080FEDBC - ldr r1, [r0] - ldr r0, _080FEDC0 - str r0, [r1] - adds r0, r4, #0 - bl sub_081AB6A4 - b _080FEDD2 - .align 2, 0 -_080FEDBC: .4byte gUnknown_203CB20 -_080FEDC0: .4byte sub_081B8690 -_080FEDC4: - ldr r0, _080FEDD8 - ldr r1, [r0] - ldr r0, _080FEDDC - str r0, [r1] - adds r0, r4, #0 - bl sub_081C5310 -_080FEDD2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FEDD8: .4byte gUnknown_203CBF8 -_080FEDDC: .4byte sub_081B8690 - thumb_func_end sub_080FED9C - - thumb_func_start ItemUseInBattle_Medicine -ItemUseInBattle_Medicine: @ 0x080FEDE0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080FEDF4 - ldr r1, _080FEDF8 - str r1, [r2] - bl sub_080FED9C - pop {r0} - bx r0 - .align 2, 0 -_080FEDF4: .4byte gUnknown_3006068 -_080FEDF8: .4byte ItemUseCB_Medicine - thumb_func_end ItemUseInBattle_Medicine - - thumb_func_start sub_080FEDFC -sub_080FEDFC: @ 0x080FEDFC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080FEE10 - ldr r1, _080FEE14 - str r1, [r2] - bl sub_080FED9C - pop {r0} - bx r0 - .align 2, 0 -_080FEE10: .4byte gUnknown_3006068 -_080FEE14: .4byte sub_081B768C - thumb_func_end sub_080FEDFC - - thumb_func_start ItemUseInBattle_PPRecovery -ItemUseInBattle_PPRecovery: @ 0x080FEE18 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080FEE2C - ldr r1, _080FEE30 - str r1, [r2] - bl sub_080FED9C - pop {r0} - bx r0 - .align 2, 0 -_080FEE2C: .4byte gUnknown_3006068 -_080FEE30: .4byte dp05_ether - thumb_func_end ItemUseInBattle_PPRecovery - - thumb_func_start sub_080FEE34 -sub_080FEE34: @ 0x080FEE34 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080FEE64 - ldr r0, [r0] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - bne _080FEE84 - bl sub_080FE8A8 - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FEE70 - ldr r2, _080FEE68 - ldr r3, _080FEE6C - adds r0, r4, #0 - movs r1, #1 - bl DisplayItemMessage - b _080FEE96 - .align 2, 0 -_080FEE64: .4byte gUnknown_2022C90 -_080FEE68: .4byte gUnknown_2021C7C -_080FEE6C: .4byte sub_081AB6A4 -_080FEE70: - ldr r1, _080FEE7C - ldr r2, _080FEE80 - adds r0, r4, #0 - bl sub_081C6598 - b _080FEE96 - .align 2, 0 -_080FEE7C: .4byte gUnknown_2021C7C -_080FEE80: .4byte sub_081C5310 -_080FEE84: - ldr r0, _080FEE9C - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrb r1, [r1, #0xe] - adds r0, r4, #0 - bl DisplayDadsAdviceCannotUseItemMessage -_080FEE96: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FEE9C: .4byte gUnknown_3005B60 - thumb_func_end sub_080FEE34 - - thumb_func_start ItemUseOutOfBattle_EnigmaBerry -ItemUseOutOfBattle_EnigmaBerry: @ 0x080FEEA0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080FEEC4 - ldrh r0, [r0] - bl GetItemEffectType - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, #1 - cmp r0, #0x14 - bls _080FEEBA - b _080FEFAC -_080FEEBA: - lsls r0, r0, #2 - ldr r1, _080FEEC8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FEEC4: .4byte gUnknown_203CB48 -_080FEEC8: .4byte _080FEECC -_080FEECC: @ jump table - .4byte _080FEF58 @ case 0 - .4byte _080FEF20 @ case 1 - .4byte _080FEF20 @ case 2 - .4byte _080FEF20 @ case 3 - .4byte _080FEF20 @ case 4 - .4byte _080FEF20 @ case 5 - .4byte _080FEF20 @ case 6 - .4byte _080FEFAC @ case 7 - .4byte _080FEFAC @ case 8 - .4byte _080FEF3C @ case 9 - .4byte _080FEF20 @ case 10 - .4byte _080FEF20 @ case 11 - .4byte _080FEF20 @ case 12 - .4byte _080FEF20 @ case 13 - .4byte _080FEF20 @ case 14 - .4byte _080FEF20 @ case 15 - .4byte _080FEF20 @ case 16 - .4byte _080FEFAC @ case 17 - .4byte _080FEF74 @ case 18 - .4byte _080FEF74 @ case 19 - .4byte _080FEF90 @ case 20 -_080FEF20: - ldr r0, _080FEF38 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #1 - strh r0, [r1, #0x10] - adds r0, r4, #0 - bl ItemUseOutOfBattle_Medicine - b _080FEFC0 - .align 2, 0 -_080FEF38: .4byte gUnknown_3005B60 -_080FEF3C: - ldr r0, _080FEF54 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #1 - strh r0, [r1, #0x10] - adds r0, r4, #0 - bl ItemUseOutOfBattle_SacredAsh - b _080FEFC0 - .align 2, 0 -_080FEF54: .4byte gUnknown_3005B60 -_080FEF58: - ldr r0, _080FEF70 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #1 - strh r0, [r1, #0x10] - adds r0, r4, #0 - bl ItemUseOutOfBattle_RareCandy - b _080FEFC0 - .align 2, 0 -_080FEF70: .4byte gUnknown_3005B60 -_080FEF74: - ldr r0, _080FEF8C - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #1 - strh r0, [r1, #0x10] - adds r0, r4, #0 - bl ItemUseOutOfBattle_PPUp - b _080FEFC0 - .align 2, 0 -_080FEF8C: .4byte gUnknown_3005B60 -_080FEF90: - ldr r0, _080FEFA8 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #1 - strh r0, [r1, #0x10] - adds r0, r4, #0 - bl ItemUseOutOfBattle_PPRecovery - b _080FEFC0 - .align 2, 0 -_080FEFA8: .4byte gUnknown_3005B60 -_080FEFAC: - ldr r0, _080FEFC8 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #4 - strh r0, [r1, #0x10] - adds r0, r4, #0 - bl ItemUseOutOfBattle_CannotUse -_080FEFC0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FEFC8: .4byte gUnknown_3005B60 - thumb_func_end ItemUseOutOfBattle_EnigmaBerry - - thumb_func_start sub_080FEFCC -sub_080FEFCC: @ 0x080FEFCC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _080FEFEC - ldrh r0, [r0] - bl GetItemEffectType - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x15 - bhi _080FF064 - lsls r0, r0, #2 - ldr r1, _080FEFF0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FEFEC: .4byte gUnknown_203CB48 -_080FEFF0: .4byte _080FEFF4 -_080FEFF4: @ jump table - .4byte _080FF04C @ case 0 - .4byte _080FF064 @ case 1 - .4byte _080FF054 @ case 2 - .4byte _080FF054 @ case 3 - .4byte _080FF054 @ case 4 - .4byte _080FF054 @ case 5 - .4byte _080FF054 @ case 6 - .4byte _080FF054 @ case 7 - .4byte _080FF054 @ case 8 - .4byte _080FF054 @ case 9 - .4byte _080FF064 @ case 10 - .4byte _080FF054 @ case 11 - .4byte _080FF064 @ case 12 - .4byte _080FF064 @ case 13 - .4byte _080FF064 @ case 14 - .4byte _080FF064 @ case 15 - .4byte _080FF064 @ case 16 - .4byte _080FF064 @ case 17 - .4byte _080FF064 @ case 18 - .4byte _080FF064 @ case 19 - .4byte _080FF064 @ case 20 - .4byte _080FF05C @ case 21 -_080FF04C: - adds r0, r4, #0 - bl ItemUseInBattle_StatIncrease - b _080FF06A -_080FF054: - adds r0, r4, #0 - bl ItemUseInBattle_Medicine - b _080FF06A -_080FF05C: - adds r0, r4, #0 - bl ItemUseInBattle_PPRecovery - b _080FF06A -_080FF064: - adds r0, r4, #0 - bl ItemUseOutOfBattle_CannotUse -_080FF06A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_080FEFCC - - thumb_func_start ItemUseOutOfBattle_CannotUse -ItemUseOutOfBattle_CannotUse: @ 0x080FF070 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _080FF08C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldrb r1, [r1, #0xe] - bl DisplayDadsAdviceCannotUseItemMessage - pop {r0} - bx r0 - .align 2, 0 -_080FF08C: .4byte gUnknown_3005B60 - thumb_func_end ItemUseOutOfBattle_CannotUse - - thumb_func_start AnimMovePowderParticle -AnimMovePowderParticle: @ 0x080FF090 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _080FF0C4 - ldrh r0, [r5] - ldrh r1, [r4, #0x20] - adds r0, r0, r1 - strh r0, [r4, #0x20] - ldrh r0, [r5, #2] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] - ldrh r0, [r5, #4] - strh r0, [r4, #0x2e] - ldrh r0, [r5, #6] - strh r0, [r4, #0x30] - ldr r0, _080FF0C8 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FF0CC - ldrh r0, [r5, #8] - rsbs r0, r0, #0 - b _080FF0CE - .align 2, 0 -_080FF0C4: .4byte gUnknown_20380BE -_080FF0C8: .4byte gUnknown_20380D6 -_080FF0CC: - ldrh r0, [r5, #8] -_080FF0CE: - strh r0, [r4, #0x34] - ldr r0, _080FF0E0 - ldrh r0, [r0, #0xa] - strh r0, [r4, #0x36] - ldr r0, _080FF0E4 - str r0, [r4, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FF0E0: .4byte gUnknown_20380BE -_080FF0E4: .4byte AnimMovePowderParticleStep - thumb_func_end AnimMovePowderParticle - - thumb_func_start AnimMovePowderParticleStep -AnimMovePowderParticleStep: @ 0x080FF0E8 - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x2e] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r0, #0 - ble _080FF124 - subs r0, r1, #1 - strh r0, [r4, #0x2e] - ldrh r1, [r4, #0x32] - lsls r0, r1, #0x10 - asrs r0, r0, #0x18 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x30] - adds r1, 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, r0, r1 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x38] - b _080FF12A -_080FF124: - adds r0, r4, #0 - bl DestroyAnimSprite -_080FF12A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end AnimMovePowderParticleStep - - thumb_func_start AnimPowerAbsorptionOrb -AnimPowerAbsorptionOrb: @ 0x080FF130 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldr r0, _080FF170 - ldrh r0, [r0, #4] - strh r0, [r4, #0x2e] - ldr r5, _080FF174 - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x32] - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x36] - ldr r0, _080FF178 - str r0, [r4, #0x1c] - ldr r1, _080FF17C - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FF170: .4byte gUnknown_20380BE -_080FF174: .4byte gUnknown_20380D6 -_080FF178: .4byte sub_080A67B4 -_080FF17C: .4byte DestroySpriteAndMatrix - thumb_func_end AnimPowerAbsorptionOrb - - thumb_func_start sub_080FF180 -sub_080FF180: @ 0x080FF180 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldr r5, _080FF1C8 - ldrb r1, [r5, #6] - adds r0, r4, #0 - bl StartSpriteAnim - ldrh r0, [r5, #4] - strh r0, [r4, #0x2e] - ldr r5, _080FF1CC - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x32] - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x36] - ldr r0, _080FF1D0 - str r0, [r4, #0x1c] - ldr r1, _080FF1D4 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FF1C8: .4byte gUnknown_20380BE -_080FF1CC: .4byte gUnknown_20380D7 -_080FF1D0: .4byte sub_080A67B4 -_080FF1D4: .4byte DestroyAnimSprite - thumb_func_end sub_080FF180 - - thumb_func_start sub_080FF1D8 -sub_080FF1D8: @ 0x080FF1D8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldr r6, _080FF228 - ldrh r0, [r6, #4] - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x20] - strh r0, [r4, #0x30] - ldr r5, _080FF22C - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x32] - ldrh r0, [r4, #0x22] - strh r0, [r4, #0x34] - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl InitAnimLinearTranslation - ldrh r0, [r6, #6] - strh r0, [r4, #0x38] - ldr r1, _080FF230 - str r1, [r4, #0x1c] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080FF228: .4byte gUnknown_20380BE -_080FF22C: .4byte gUnknown_20380D7 -_080FF230: .4byte AnimSolarbeamSmallOrbStep - thumb_func_end sub_080FF1D8 - - thumb_func_start AnimSolarbeamSmallOrbStep -AnimSolarbeamSmallOrbStep: @ 0x080FF234 - push {r4, lr} - adds r4, r0, #0 - bl AnimTranslateLinear - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FF24A - adds r0, r4, #0 - bl DestroySprite - b _080FF29E -_080FF24A: - movs r1, #0x38 - ldrsh r0, [r4, r1] - cmp r0, #0x7f - ble _080FF264 - ldr r0, _080FF260 - ldrb r0, [r0] - bl GetBattlerSpriteSubpriority - adds r0, #1 - b _080FF26E - .align 2, 0 -_080FF260: .4byte gUnknown_20380D7 -_080FF264: - ldr r0, _080FF2A4 - ldrb r0, [r0] - bl GetBattlerSpriteSubpriority - adds r0, #6 -_080FF26E: - adds r1, r4, #0 - adds r1, #0x43 - strb r0, [r1] - movs r1, #0x38 - ldrsh r0, [r4, r1] - movs r1, #5 - bl Sin - ldrh r1, [r4, #0x24] - adds r0, r0, r1 - strh r0, [r4, #0x24] - movs r1, #0x38 - ldrsh r0, [r4, r1] - movs r1, #0xe - bl Cos - ldrh r1, [r4, #0x26] - adds r0, r0, r1 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x38] - adds r0, #0xf - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x38] -_080FF29E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FF2A4: .4byte gUnknown_20380D7 - thumb_func_end AnimSolarbeamSmallOrbStep - - thumb_func_start AnimTask_CreateSmallSolarbeamOrbs -AnimTask_CreateSmallSolarbeamOrbs: @ 0x080FF2A8 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r6, r0, #0 - ldr r1, _080FF318 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r5, r0, r1 - ldrh r0, [r5, #8] - subs r0, #1 - movs r2, #0 - strh r0, [r5, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _080FF302 - ldrh r0, [r5, #0xa] - adds r0, #1 - strh r0, [r5, #0xa] - movs r0, #6 - strh r0, [r5, #8] - ldr r1, _080FF31C - movs r0, #0xf - strh r0, [r1] - strh r2, [r1, #2] - movs r0, #0x50 - strh r0, [r1, #4] - strh r2, [r1, #6] - ldr r4, _080FF320 - ldr r0, _080FF324 - ldrb r0, [r0] - bl GetBattlerSpriteSubpriority - adds r3, r0, #0 - adds r3, #1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - bl CreateSpriteAndAnimate -_080FF302: - movs r1, #0xa - ldrsh r0, [r5, r1] - cmp r0, #0xf - bne _080FF310 - adds r0, r6, #0 - bl DestroyAnimVisualTask -_080FF310: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080FF318: .4byte gUnknown_3005B60 -_080FF31C: .4byte gUnknown_20380BE -_080FF320: .4byte gUnknown_856DDF4 -_080FF324: .4byte gUnknown_20380D7 - thumb_func_end AnimTask_CreateSmallSolarbeamOrbs - - thumb_func_start AnimAbsorptionOrb -AnimAbsorptionOrb: @ 0x080FF328 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimTarget - ldr r6, _080FF36C - ldrh r0, [r6, #6] - strh r0, [r4, #0x2e] - ldr r5, _080FF370 - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x32] - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x36] - ldrh r0, [r6, #4] - strh r0, [r4, #0x38] - adds r0, r4, #0 - bl InitAnimArcTranslation - ldr r0, _080FF374 - str r0, [r4, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080FF36C: .4byte gUnknown_20380BE -_080FF370: .4byte gUnknown_20380D6 -_080FF374: .4byte sub_080FF378 - thumb_func_end AnimAbsorptionOrb - - thumb_func_start sub_080FF378 -sub_080FF378: @ 0x080FF378 - push {r4, lr} - adds r4, r0, #0 - bl TranslateAnimHorizontalArc - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FF38C - adds r0, r4, #0 - bl DestroyAnimSprite -_080FF38C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_080FF378 - - thumb_func_start AnimHyperBeamOrb -AnimHyperBeamOrb: @ 0x080FF394 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_0806F0A4 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #7 - ands r1, r0 - adds r0, r5, #0 - bl StartSpriteAnim - ldr r4, _080FF3DC - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FF3E0 - ldrh r0, [r5, #0x20] - subs r0, #0x14 - b _080FF3E4 - .align 2, 0 -_080FF3DC: .4byte gUnknown_20380D6 -_080FF3E0: - ldrh r0, [r5, #0x20] - adds r0, #0x14 -_080FF3E4: - strh r0, [r5, #0x20] - bl sub_0806F0A4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x1f - ands r0, r1 - adds r0, #0x40 - strh r0, [r5, #0x2e] - ldrh r0, [r5, #0x20] - strh r0, [r5, #0x30] - ldr r4, _080FF444 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x32] - ldrh r0, [r5, #0x22] - strh r0, [r5, #0x34] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x36] - adds r0, r5, #0 - bl InitAnimFastLinearTranslationWithSpeed - bl sub_0806F0A4 - 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, _080FF448 - str r1, [r5, #0x1c] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FF444: .4byte gUnknown_20380D7 -_080FF448: .4byte AnimHyperBeamOrbStep - thumb_func_end AnimHyperBeamOrb - - thumb_func_start AnimHyperBeamOrbStep -AnimHyperBeamOrbStep: @ 0x080FF44C - push {r4, lr} - adds r4, r0, #0 - bl AnimFastTranslateLinear - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FF462 - adds r0, r4, #0 - bl DestroyAnimSprite - b _080FF492 -_080FF462: - movs r1, #0x38 - ldrsh r0, [r4, r1] - movs r1, #0xc - bl Cos - ldrh r1, [r4, #0x26] - adds r0, r0, r1 - strh r0, [r4, #0x26] - movs r1, #0x38 - ldrsh r0, [r4, r1] - cmp r0, #0x7e - bgt _080FF47E - ldrh r0, [r4, #0x3a] - b _080FF482 -_080FF47E: - ldrh r0, [r4, #0x3a] - adds r0, #1 -_080FF482: - 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] -_080FF492: - pop {r4} - pop {r0} - bx r0 - thumb_func_end AnimHyperBeamOrbStep - - thumb_func_start AnimLeechSeed -AnimLeechSeed: @ 0x080FF498 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldr r0, _080FF4F8 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FF4B8 - ldr r1, _080FF4FC - ldrh r0, [r1, #4] - rsbs r0, r0, #0 - strh r0, [r1, #4] -_080FF4B8: - ldr r4, _080FF4FC - ldrh r0, [r4, #8] - strh r0, [r6, #0x2e] - ldr r5, _080FF500 - ldrb r0, [r5] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #4] - adds r0, r0, r1 - strh r0, [r6, #0x32] - ldrb r0, [r5] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #6] - adds r0, r0, r1 - strh r0, [r6, #0x36] - ldrh r0, [r4, #0xa] - strh r0, [r6, #0x38] - adds r0, r6, #0 - bl InitAnimArcTranslation - ldr r0, _080FF504 - str r0, [r6, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080FF4F8: .4byte gUnknown_20380D6 -_080FF4FC: .4byte gUnknown_20380BE -_080FF500: .4byte gUnknown_20380D7 -_080FF504: .4byte AnimLeechSeedStep - thumb_func_end AnimLeechSeed - - thumb_func_start AnimLeechSeedStep -AnimLeechSeedStep: @ 0x080FF508 - push {r4, lr} - adds r4, r0, #0 - bl TranslateAnimHorizontalArc - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FF532 - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - movs r0, #0xa - strh r0, [r4, #0x2e] - ldr r0, _080FF538 - str r0, [r4, #0x1c] - ldr r1, _080FF53C - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 -_080FF532: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FF538: .4byte WaitAnimForDuration -_080FF53C: .4byte AnimLeechSeedSprouts - thumb_func_end AnimLeechSeedStep - - thumb_func_start AnimLeechSeedSprouts -AnimLeechSeedSprouts: @ 0x080FF540 - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAnim - movs r0, #0x3c - strh r0, [r4, #0x2e] - ldr r0, _080FF570 - str r0, [r4, #0x1c] - ldr r1, _080FF574 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FF570: .4byte WaitAnimForDuration -_080FF574: .4byte DestroyAnimSprite - thumb_func_end AnimLeechSeedSprouts - - thumb_func_start AnimSporeParticle -AnimSporeParticle: @ 0x080FF578 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimTarget - ldr r5, _080FF5BC - ldrb r1, [r5, #8] - adds r0, r4, #0 - bl StartSpriteAnim - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #1 - bne _080FF5A2 - ldrb r0, [r4, #1] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #4 - orrs r1, r0 - strb r1, [r4, #1] -_080FF5A2: - ldrh r0, [r5, #6] - strh r0, [r4, #0x2e] - ldrh r0, [r5, #4] - strh r0, [r4, #0x30] - ldr r1, _080FF5C0 - str r1, [r4, #0x1c] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FF5BC: .4byte gUnknown_20380BE -_080FF5C0: .4byte AnimSporeParticleStep - thumb_func_end AnimSporeParticle - - thumb_func_start AnimSporeParticleStep -AnimSporeParticleStep: @ 0x080FF5C4 - 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, #3 - rsbs r1, r1, #0 - bl Cos - ldrh r1, [r4, #0x32] - adds r1, #0x18 - strh r1, [r4, #0x32] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - adds r0, r0, r1 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x30] - subs r0, #0x40 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x7f - bhi _080FF618 - ldr r0, _080FF614 - ldrb r0, [r0] - bl GetBattlerSpriteBGPriority - movs r1, #3 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r4, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - b _080FF63C - .align 2, 0 -_080FF614: .4byte gUnknown_20380D7 -_080FF618: - ldr r0, _080FF668 - ldrb r0, [r0] - bl GetBattlerSpriteBGPriority - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #3 - bls _080FF62C - movs r2, #3 -_080FF62C: - movs r0, #3 - ands r2, r0 - lsls r2, r2, #2 - ldrb r1, [r4, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 -_080FF63C: - strb r0, [r4, #5] - ldrh r0, [r4, #0x30] - adds r0, #2 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x2e] - subs r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _080FF660 - adds r0, r4, #0 - bl DestroyAnimSprite -_080FF660: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FF668: .4byte gUnknown_20380D7 - thumb_func_end AnimSporeParticleStep - - thumb_func_start AnimTask_SporeDoubleBattle -AnimTask_SporeDoubleBattle: @ 0x080FF66C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FF686 - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FF68E -_080FF686: - adds r0, r4, #0 - bl DestroyAnimVisualTask - b _080FF6C0 -_080FF68E: - ldr r0, _080FF6AC - ldrb r0, [r0] - bl GetBattlerSpriteBGPriorityRank - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080FF6B0 - movs r0, #2 - movs r1, #4 - movs r2, #3 - bl SetAnimBgAttribute - b _080FF6BA - .align 2, 0 -_080FF6AC: .4byte gUnknown_20380D7 -_080FF6B0: - movs r0, #1 - movs r1, #4 - movs r2, #1 - bl SetAnimBgAttribute -_080FF6BA: - adds r0, r4, #0 - bl DestroyAnimVisualTask -_080FF6C0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AnimTask_SporeDoubleBattle - - thumb_func_start AnimPetalDanceBigFlower -AnimPetalDanceBigFlower: @ 0x080FF6C8 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0 - bl InitSpritePosToAnimAttacker - ldr r5, _080FF710 - ldrh r0, [r5, #6] - 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, _080FF714 - ldrb r0, [r0] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r5, [r5, #4] - adds r0, r0, r5 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl InitAnimLinearTranslation - movs r0, #0x40 - strh r0, [r4, #0x38] - ldr r1, _080FF718 - str r1, [r4, #0x1c] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FF710: .4byte gUnknown_20380BE -_080FF714: .4byte gUnknown_20380D6 -_080FF718: .4byte AnimPetalDanceBigFlowerStep - thumb_func_end AnimPetalDanceBigFlower - - thumb_func_start AnimPetalDanceBigFlowerStep -AnimPetalDanceBigFlowerStep: @ 0x080FF71C - push {r4, lr} - adds r4, r0, #0 - bl AnimTranslateLinear - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FF788 - movs r1, #0x38 - ldrsh r0, [r4, r1] - movs r1, #0x20 - bl Sin - ldrh r1, [r4, #0x24] - adds r0, r0, r1 - strh r0, [r4, #0x24] - movs r1, #0x38 - ldrsh r0, [r4, r1] - movs r1, #5 - rsbs r1, r1, #0 - bl Cos - ldrh r1, [r4, #0x26] - adds r0, r0, r1 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x38] - subs r0, #0x40 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x7f - bhi _080FF768 - ldr r0, _080FF764 - ldrb r0, [r0] - bl GetBattlerSpriteSubpriority - subs r0, #1 - b _080FF772 - .align 2, 0 -_080FF764: .4byte gUnknown_20380D6 -_080FF768: - ldr r0, _080FF784 - ldrb r0, [r0] - bl GetBattlerSpriteSubpriority - adds r0, #1 -_080FF772: - adds r1, r4, #0 - adds r1, #0x43 - strb r0, [r1] - ldrh r0, [r4, #0x38] - adds r0, #5 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x38] - b _080FF78E - .align 2, 0 -_080FF784: .4byte gUnknown_20380D6 -_080FF788: - adds r0, r4, #0 - bl DestroyAnimSprite -_080FF78E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end AnimPetalDanceBigFlowerStep - - thumb_func_start AnimPetalDanceSmallFlower -AnimPetalDanceSmallFlower: @ 0x080FF794 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldr r5, _080FF7DC - ldrh r0, [r5, #6] - 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, _080FF7E0 - ldrb r0, [r0] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r5, [r5, #4] - adds r0, r0, r5 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl InitAnimLinearTranslation - movs r0, #0x40 - strh r0, [r4, #0x38] - ldr r1, _080FF7E4 - str r1, [r4, #0x1c] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FF7DC: .4byte gUnknown_20380BE -_080FF7E0: .4byte gUnknown_20380D6 -_080FF7E4: .4byte AnimPetalDanceSmallFlowerStep - thumb_func_end AnimPetalDanceSmallFlower - - thumb_func_start AnimPetalDanceSmallFlowerStep -AnimPetalDanceSmallFlowerStep: @ 0x080FF7E8 - push {r4, lr} - adds r4, r0, #0 - bl AnimTranslateLinear - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FF840 - movs r1, #0x38 - ldrsh r0, [r4, r1] - movs r1, #8 - bl Sin - ldrh r1, [r4, #0x24] - adds r0, r0, r1 - strh r0, [r4, #0x24] - ldrh r1, [r4, #0x38] - adds r0, r1, #0 - subs r0, #0x3b - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #4 - bls _080FF820 - adds r0, r1, #0 - subs r0, #0xbb - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #4 - bhi _080FF834 -_080FF820: - ldrb r2, [r4, #3] - lsls r1, r2, #0x1a - lsrs r1, r1, #0x1b - movs r0, #8 - eors r1, r0 - lsls r1, r1, #1 - subs r0, #0x47 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #3] -_080FF834: - ldrh r0, [r4, #0x38] - adds r0, #5 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x38] - b _080FF846 -_080FF840: - adds r0, r4, #0 - bl DestroyAnimSprite -_080FF846: - pop {r4} - pop {r0} - bx r0 - thumb_func_end AnimPetalDanceSmallFlowerStep - - thumb_func_start AnimCuttingSlice -AnimCuttingSlice: @ 0x080FF84C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _080FF888 - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x20] - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x22] - ldr r1, _080FF88C - ldrh r0, [r1] - strh r0, [r4, #0x2e] - ldrh r0, [r1, #2] - strh r0, [r4, #0x30] - ldrh r0, [r1, #4] - strh r0, [r4, #0x32] - ldr r0, _080FF890 - str r0, [r4, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FF888: .4byte gUnknown_20380D6 -_080FF88C: .4byte gUnknown_20380BE -_080FF890: .4byte AnimRazorLeafParticleStep1 - thumb_func_end AnimCuttingSlice - - thumb_func_start AnimRazorLeafParticleStep1 -AnimRazorLeafParticleStep1: @ 0x080FF894 - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0x32] - movs r2, #0x32 - ldrsh r3, [r1, r2] - cmp r3, #0 - bne _080FF8C8 - ldrh r0, [r1, #0x30] - movs r2, #1 - ands r2, r0 - cmp r2, #0 - beq _080FF8B6 - movs r0, #0x80 - strh r0, [r1, #0x2e] - strh r3, [r1, #0x30] - strh r3, [r1, #0x32] - b _080FF8BC -_080FF8B6: - strh r2, [r1, #0x2e] - strh r2, [r1, #0x30] - strh r2, [r1, #0x32] -_080FF8BC: - ldr r0, _080FF8C4 - str r0, [r1, #0x1c] - b _080FF8DC - .align 2, 0 -_080FF8C4: .4byte AnimRazorLeafParticleStep2 -_080FF8C8: - subs r0, #1 - strh r0, [r1, #0x32] - ldrh r0, [r1, #0x2e] - ldrh r2, [r1, #0x20] - adds r0, r0, r2 - strh r0, [r1, #0x20] - ldrh r0, [r1, #0x30] - ldrh r2, [r1, #0x22] - adds r0, r0, r2 - strh r0, [r1, #0x22] -_080FF8DC: - pop {r0} - bx r0 - thumb_func_end AnimRazorLeafParticleStep1 - - thumb_func_start AnimRazorLeafParticleStep2 -AnimRazorLeafParticleStep2: @ 0x080FF8E0 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080FF900 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FF904 - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r1, #0x19 - bl Sin - rsbs r0, r0, #0 - b _080FF90E - .align 2, 0 -_080FF900: .4byte gUnknown_20380D6 -_080FF904: - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r1, #0x19 - bl Sin -_080FF90E: - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x2e] - adds r0, #2 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _080FF92E - ldrh r0, [r4, #0x26] - adds r0, #1 - strh r0, [r4, #0x26] -_080FF92E: - movs r1, #0x30 - ldrsh r0, [r4, r1] - cmp r0, #0x50 - ble _080FF93C - adds r0, r4, #0 - bl DestroyAnimSprite -_080FF93C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AnimRazorLeafParticleStep2 - - thumb_func_start AnimTranslateLinearSingleSineWave -AnimTranslateLinearSingleSineWave: @ 0x080FF944 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldr r0, _080FF998 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FF964 - ldr r1, _080FF99C - ldrh r0, [r1, #4] - rsbs r0, r0, #0 - strh r0, [r1, #4] -_080FF964: - ldr r6, _080FF99C - ldrh r0, [r6, #8] - strh r0, [r5, #0x2e] - movs r1, #0xc - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _080FF9A4 - ldr r4, _080FF9A0 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r6, #4] - adds r0, r0, r1 - strh r0, [r5, #0x32] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r6, [r6, #6] - adds r0, r0, r6 - b _080FF9C4 - .align 2, 0 -_080FF998: .4byte gUnknown_20380D6 -_080FF99C: .4byte gUnknown_20380BE -_080FF9A0: .4byte gUnknown_20380D7 -_080FF9A4: - ldr r0, _080FF9F0 - ldrb r0, [r0] - adds r2, r5, #0 - adds r2, #0x32 - adds r3, r5, #0 - adds r3, #0x36 - movs r1, #1 - bl SetAverageBattlerPositions - ldrh r0, [r6, #4] - ldrh r1, [r5, #0x32] - adds r0, r0, r1 - strh r0, [r5, #0x32] - ldrh r0, [r6, #6] - ldrh r1, [r5, #0x36] - adds r0, r0, r1 -_080FF9C4: - strh r0, [r5, #0x36] - ldr r0, _080FF9F4 - ldrh r0, [r0, #0xa] - strh r0, [r5, #0x38] - adds r0, r5, #0 - bl InitAnimArcTranslation - ldr r0, _080FF9F8 - ldrb r0, [r0] - bl GetBattlerSide - adds r4, r0, #0 - ldr r0, _080FF9F0 - ldrb r0, [r0] - bl GetBattlerSide - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - bne _080FF9FC - movs r0, #1 - b _080FF9FE - .align 2, 0 -_080FF9F0: .4byte gUnknown_20380D7 -_080FF9F4: .4byte gUnknown_20380BE -_080FF9F8: .4byte gUnknown_20380D6 -_080FF9FC: - movs r0, #0 -_080FF9FE: - strh r0, [r5, #0x2e] - ldr r0, _080FFA0C - str r0, [r5, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080FFA0C: .4byte AnimTranslateLinearSingleSineWaveStep - thumb_func_end AnimTranslateLinearSingleSineWave - - thumb_func_start AnimTranslateLinearSingleSineWaveStep -AnimTranslateLinearSingleSineWaveStep: @ 0x080FFA10 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - movs r7, #0 - ldrh r5, [r6, #0x2e] - ldrh r4, [r6, #0x3c] - movs r0, #1 - strh r0, [r6, #0x2e] - adds r0, r6, #0 - bl TranslateAnimHorizontalArc - ldrh r0, [r6, #0x3c] - strh r5, [r6, #0x2e] - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - cmp r4, #0xc8 - ble _080FFA42 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x37 - bgt _080FFA42 - ldrh r0, [r6, #6] - cmp r0, #0 - bne _080FFA48 - adds r0, #1 - strh r0, [r6, #6] -_080FFA42: - ldrh r0, [r6, #6] - cmp r0, #0 - beq _080FFA7A -_080FFA48: - movs r1, #0x2e - ldrsh r0, [r6, r1] - cmp r0, #0 - beq _080FFA7A - adds r3, r6, #0 - adds r3, #0x3e - ldrb r2, [r3] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r6, #6] - adds r0, #1 - strh r0, [r6, #6] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x1e - bne _080FFA7A - movs r7, #1 -_080FFA7A: - movs r2, #0x20 - ldrsh r0, [r6, r2] - movs r2, #0x24 - ldrsh r1, [r6, r2] - adds r0, r0, r1 - adds r0, #0x10 - movs r1, #0x88 - lsls r1, r1, #1 - cmp r0, r1 - bhi _080FFAA4 - movs r0, #0x22 - ldrsh r1, [r6, r0] - movs r2, #0x26 - ldrsh r0, [r6, r2] - adds r1, r1, r0 - cmp r1, #0xa0 - bgt _080FFAA4 - movs r0, #0x10 - rsbs r0, r0, #0 - cmp r1, r0 - bge _080FFAA6 -_080FFAA4: - movs r7, #1 -_080FFAA6: - cmp r7, #0 - beq _080FFAB0 - adds r0, r6, #0 - bl DestroyAnimSprite -_080FFAB0: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AnimTranslateLinearSingleSineWaveStep - - thumb_func_start AnimMoveTwisterParticle -AnimMoveTwisterParticle: @ 0x080FFAB8 - push {r4, lr} - adds r4, r0, #0 - bl IsDoubleBattle - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080FFADA - ldr r0, _080FFB00 - ldrb r0, [r0] - adds r2, r4, #0 - adds r2, #0x20 - adds r3, r4, #0 - adds r3, #0x22 - movs r1, #1 - bl SetAverageBattlerPositions -_080FFADA: - ldrh r0, [r4, #0x22] - adds r0, #0x20 - strh r0, [r4, #0x22] - ldr r1, _080FFB04 - ldrh r0, [r1] - strh r0, [r4, #0x2e] - ldrh r0, [r1, #2] - strh r0, [r4, #0x30] - ldrh r0, [r1, #4] - strh r0, [r4, #0x32] - ldrh r0, [r1, #6] - strh r0, [r4, #0x34] - ldrh r0, [r1, #8] - strh r0, [r4, #0x36] - ldr r0, _080FFB08 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FFB00: .4byte gUnknown_20380D7 -_080FFB04: .4byte gUnknown_20380BE -_080FFB08: .4byte AnimMoveTwisterParticleStep - thumb_func_end AnimMoveTwisterParticle - - thumb_func_start AnimMoveTwisterParticleStep -AnimMoveTwisterParticleStep: @ 0x080FFB0C - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x30] - movs r2, #0x30 - ldrsh r0, [r4, r2] - cmp r0, #0xff - bne _080FFB22 - ldrh r0, [r4, #0x22] - subs r0, #2 - strh r0, [r4, #0x22] - b _080FFB30 -_080FFB22: - cmp r0, #0 - ble _080FFB30 - ldrh r0, [r4, #0x22] - subs r0, #2 - strh r0, [r4, #0x22] - subs r0, r1, #2 - strh r0, [r4, #0x30] -_080FFB30: - 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 _080FFB48 - adds r0, r2, r3 - strh r0, [r4, #0x38] -_080FFB48: - 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, #5 - bl Sin - strh r0, [r4, #0x26] - movs r1, #0x38 - ldrsh r0, [r4, r1] - cmp r0, #0x7f - bgt _080FFB88 - ldr r0, _080FFB84 - ldrb r0, [r0] - bl GetBattlerSpriteBGPriority - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, #1 - b _080FFB96 - .align 2, 0 -_080FFB84: .4byte gUnknown_20380D7 -_080FFB88: - ldr r0, _080FFBC0 - ldrb r0, [r0] - bl GetBattlerSpriteBGPriority - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #1 -_080FFB96: - movs r1, #3 - ands r0, r1 - lsls r0, r0, #2 - ldrb r2, [r4, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #5] - ldrh r0, [r4, #0x2e] - subs r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080FFBBA - adds r0, r4, #0 - bl DestroyAnimSprite -_080FFBBA: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FFBC0: .4byte gUnknown_20380D7 - thumb_func_end AnimMoveTwisterParticleStep - - thumb_func_start AnimConstrictBinding -AnimConstrictBinding: @ 0x080FFBC4 - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0 - bl InitSpritePosToAnimTarget - adds r2, r5, #0 - adds r2, #0x2c - ldrb r0, [r2] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2] - ldr r4, _080FFBF8 - ldrb r1, [r4, #4] - adds r0, r5, #0 - bl StartSpriteAffineAnim - ldrh r0, [r4, #4] - strh r0, [r5, #0x3a] - ldrh r0, [r4, #6] - strh r0, [r5, #0x3c] - ldr r0, _080FFBFC - str r0, [r5, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080FFBF8: .4byte gUnknown_20380BE -_080FFBFC: .4byte AnimConstrictBindingStep1 - thumb_func_end AnimConstrictBinding - - thumb_func_start AnimConstrictBindingStep1 -AnimConstrictBindingStep1: @ 0x080FFC00 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080FFC30 - ldrh r1, [r0, #0xe] - ldr r0, _080FFC34 - cmp r1, r0 - bne _080FFC2A - adds r2, r4, #0 - adds r2, #0x2c - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - movs r0, #1 - bl GetAnimBattlerSpriteId - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x2e] - ldr r0, _080FFC38 - str r0, [r4, #0x1c] -_080FFC2A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FFC30: .4byte gUnknown_20380BE -_080FFC34: .4byte 0x0000FFFF -_080FFC38: .4byte AnimConstrictBindingStep2 - thumb_func_end AnimConstrictBindingStep1 - - thumb_func_start AnimConstrictBindingStep2 -AnimConstrictBindingStep2: @ 0x080FFC3C - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - bl GetAnimBattlerSpriteId - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080FFC54 - ldrh r0, [r4, #0x2e] - adds r0, #0xb - b _080FFC58 -_080FFC54: - ldrh r0, [r4, #0x2e] - subs r0, #0xb -_080FFC58: - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #6 - bne _080FFC74 - movs r0, #0 - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x32] - movs r1, #1 - eors r0, r1 - strh r0, [r4, #0x32] -_080FFC74: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080FFCA2 - ldrh r0, [r4, #0x3c] - subs r0, #1 - strh r0, [r4, #0x3c] - lsls r0, r0, #0x10 - cmp r0, #0 - ble _080FFC9C - ldrh r1, [r4, #0x3a] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAffineAnim - b _080FFCA2 -_080FFC9C: - adds r0, r4, #0 - bl DestroyAnimSprite -_080FFCA2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end AnimConstrictBindingStep2 - - thumb_func_start sub_080FFCA8 -sub_080FFCA8: @ 0x080FFCA8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #1 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r0, _080FFCE4 - mov sl, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - mov r2, sl - adds r7, r0, r2 - adds r0, r7, #0 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - bge _080FFCE8 - adds r0, r4, #0 - bl DestroyAnimVisualTask - b _080FFD6C - .align 2, 0 -_080FFCE4: .4byte gUnknown_20205AC -_080FFCE8: - adds r0, r1, #0 - movs r1, #1 - bl PrepareBattlerSpriteForRotScale - ldr r0, _080FFD7C - lsls r6, r4, #2 - adds r6, r6, r4 - lsls r6, r6, #3 - adds r6, r6, r0 - ldrb r0, [r7, #5] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1e - strh r0, [r6, #0x24] - ldr r0, _080FFD80 - mov sb, r0 - ldrb r0, [r0] - bl GetBattlerSpriteBGPriority - movs r1, #3 - mov r8, r1 - mov r1, r8 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r7, #5] - movs r5, #0xd - rsbs r5, r5, #0 - adds r0, r5, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r7, #5] - movs r0, #3 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - lsls r4, r1, #4 - adds r4, r4, r1 - lsls r4, r4, #2 - add r4, sl - ldrb r0, [r4, #5] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1e - strh r0, [r6, #0x26] - mov r2, sb - ldrb r1, [r2] - movs r0, #2 - eors r0, r1 - bl GetBattlerSpriteBGPriority - mov r1, r8 - ands r1, r0 - lsls r1, r1, #2 - ldrb r0, [r4, #5] - ands r5, r0 - orrs r5, r1 - strb r5, [r4, #5] - ldr r1, _080FFD84 - ldrh r0, [r1] - strh r0, [r6, #8] - ldrh r0, [r1, #2] - strh r0, [r6, #0xa] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r6, #0x1e] - ldr r0, _080FFD88 - str r0, [r6] -_080FFD6C: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080FFD7C: .4byte gUnknown_3005B60 -_080FFD80: .4byte gUnknown_20380D7 -_080FFD84: .4byte gUnknown_20380BE -_080FFD88: .4byte sub_080FFD8C - thumb_func_end sub_080FFCA8 - - thumb_func_start sub_080FFD8C -sub_080FFD8C: @ 0x080FFD8C - push {r4, r5, r6, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r6, r0, #0 - ldr r1, _080FFE0C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrh r1, [r4, #8] - ldrh r0, [r4, #0x1c] - adds r1, r1, r0 - strh r1, [r4, #0x1c] - ldr r2, _080FFE10 - lsls r0, r6, #4 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r5, r0, r2 - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - strh r1, [r5, #0x24] - ldr r0, _080FFE14 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080FFDD6 - ldrh r0, [r5, #0x24] - rsbs r0, r0, #0 - strh r0, [r5, #0x24] -_080FFDD6: - 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 SetSpriteRotScale - adds r0, r6, #0 - bl SetBattlerSpriteYOffsetFromYScale - ldrh r0, [r4, #0xa] - subs r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bne _080FFE04 - strh r0, [r4, #8] - ldr r0, _080FFE18 - str r0, [r4] -_080FFE04: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080FFE0C: .4byte gUnknown_3005B60 -_080FFE10: .4byte gUnknown_20205AC -_080FFE14: .4byte gUnknown_20380D7 -_080FFE18: .4byte sub_080FFE1C - thumb_func_end sub_080FFD8C - - thumb_func_start sub_080FFE1C -sub_080FFE1C: @ 0x080FFE1C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r0, _080FFEA0 - ldrh r1, [r0, #0xe] - ldr r0, _080FFEA4 - cmp r1, r0 - bne _080FFEB0 - ldr r0, _080FFEA8 - lsls r2, r3, #2 - adds r1, r2, r3 - lsls r1, r1, #3 - adds r7, r1, r0 - movs r1, #8 - ldrsh r5, [r7, r1] - adds r4, r0, #0 - cmp r5, #0 - bne _080FFEC4 - movs r0, #1 - bl GetAnimBattlerSpriteId - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl ResetSpriteRotScale - ldr r6, _080FFEAC - lsls r1, r4, #4 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r1, r1, r6 - strh r5, [r1, #0x24] - strh r5, [r1, #0x26] - movs r5, #3 - ldrh r2, [r7, #0x24] - ands r2, r5 - lsls r2, r2, #2 - ldrb r3, [r1, #5] - movs r4, #0xd - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, #5] - movs r0, #3 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrh r0, [r7, #0x26] - ands r0, r5 - lsls r0, r0, #2 - ldrb r2, [r1, #5] - ands r4, r2 - orrs r4, r0 - strb r4, [r1, #5] - ldrh r0, [r7, #8] - adds r0, #1 - strh r0, [r7, #8] - b _080FFEDE - .align 2, 0 -_080FFEA0: .4byte gUnknown_20380BE -_080FFEA4: .4byte 0x0000FFFF -_080FFEA8: .4byte gUnknown_3005B60 -_080FFEAC: .4byte gUnknown_20205AC -_080FFEB0: - ldr r1, _080FFEE4 - lsls r2, r3, #2 - adds r0, r2, r3 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r4, #8 - ldrsh r0, [r0, r4] - adds r4, r1, #0 - cmp r0, #0 - beq _080FFEDE -_080FFEC4: - adds r1, r2, r3 - lsls r1, r1, #3 - adds r1, r1, r4 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - bne _080FFEDE - adds r0, r3, #0 - bl DestroyAnimVisualTask -_080FFEDE: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080FFEE4: .4byte gUnknown_3005B60 - thumb_func_end sub_080FFE1C - - thumb_func_start AnimMimicOrb -AnimMimicOrb: @ 0x080FFEE8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _080FFEFA - cmp r0, #1 - beq _080FFF54 - b _080FFFA6 -_080FFEFA: - ldr r6, _080FFF4C - ldrb r0, [r6] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080FFF12 - ldr r1, _080FFF50 - movs r2, #0 - ldrsh r0, [r1, r2] - rsbs r0, r0, #0 - strh r0, [r1] -_080FFF12: - ldrb r0, [r6] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - ldr r4, _080FFF50 - lsrs r0, r0, #0x18 - ldrh r1, [r4] - adds r0, r0, r1 - strh r0, [r5, #0x20] - ldrb r0, [r6] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r4, [r4, #2] - adds r0, r0, r4 - strh r0, [r5, #0x22] - adds r2, r5, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] - b _080FFFA6 - .align 2, 0 -_080FFF4C: .4byte gUnknown_20380D7 -_080FFF50: .4byte gUnknown_20380BE -_080FFF54: - adds r2, r5, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - 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 _080FFFA6 - adds r0, r5, #0 - movs r1, #1 - bl ChangeSpriteAffineAnim - movs r0, #0x19 - strh r0, [r5, #0x2e] - ldr r4, _080FFFAC - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x32] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x36] - ldr r0, _080FFFB0 - str r0, [r5, #0x1c] - ldr r1, _080FFFB4 - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 -_080FFFA6: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080FFFAC: .4byte gUnknown_20380D6 -_080FFFB0: .4byte sub_080A6988 -_080FFFB4: .4byte DestroyAnimSprite - thumb_func_end AnimMimicOrb - - thumb_func_start AnimIngrainRoot -AnimIngrainRoot: @ 0x080FFFB8 - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _08100024 - ldr r4, _08100030 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - ldr r4, _08100034 - ldrh r0, [r4] - strh r0, [r5, #0x24] - ldrh r0, [r4, #2] - strh r0, [r5, #0x26] - ldrb r0, [r4, #4] - adds r0, #0x1e - adds r1, r5, #0 - adds r1, #0x43 - strb r0, [r1] - ldrb r1, [r4, #6] - adds r0, r5, #0 - bl StartSpriteAnim - ldrh r0, [r4, #8] - strh r0, [r5, #0x32] - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] - movs r2, #0x22 - ldrsh r0, [r5, r2] - movs r2, #0x26 - ldrsh r1, [r5, r2] - adds r0, r0, r1 - cmp r0, #0x78 - ble _08100024 - ldrh r0, [r5, #0x22] - adds r1, r0, #0 - subs r1, #0x78 - ldrh r2, [r5, #0x26] - adds r0, r0, r2 - adds r1, r1, r0 - strh r1, [r5, #0x22] -_08100024: - ldr r0, _08100038 - str r0, [r5, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08100030: .4byte gUnknown_20380D6 -_08100034: .4byte gUnknown_20380BE -_08100038: .4byte AnimRootFlickerOut - thumb_func_end AnimIngrainRoot - - thumb_func_start AnimFrenzyPlantRoot -AnimFrenzyPlantRoot: @ 0x0810003C - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - sub sp, #4 - mov sb, r0 - ldr r4, _08100118 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - mov r8, r0 - mov r0, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r6, _0810011C - ldrb r0, [r6] - movs r1, #2 - bl GetBattlerSpriteCoord - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldrb r0, [r6] - movs r1, #3 - bl GetBattlerSpriteCoord - adds r2, r0, #0 - lsls r2, r2, #0x18 - subs r4, r4, r5 - lsls r4, r4, #0x10 - lsrs r2, r2, #0x18 - mov r1, r8 - subs r2, r2, r1 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - lsrs r3, r4, #0x10 - mov sl, r3 - asrs r4, r4, #0x10 - ldr r6, _08100120 - movs r1, #0 - ldrsh r0, [r6, r1] - muls r0, r4, r0 - movs r1, #0x64 - str r2, [sp] - bl __divsi3 - adds r5, r5, r0 - mov r3, sb - strh r5, [r3, #0x20] - ldr r2, [sp] - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - movs r3, #0 - ldrsh r1, [r6, r3] - muls r0, r1, r0 - movs r1, #0x64 - bl __divsi3 - add r8, r0 - mov r1, r8 - mov r0, sb - strh r1, [r0, #0x22] - ldrh r0, [r6, #2] - mov r3, sb - strh r0, [r3, #0x24] - ldrh r0, [r6, #4] - strh r0, [r3, #0x26] - ldrb r0, [r6, #6] - adds r0, #0x1e - mov r1, sb - adds r1, #0x43 - strb r0, [r1] - ldrb r1, [r6, #8] - mov r0, sb - bl StartSpriteAnim - ldrh r0, [r6, #0xa] - mov r1, sb - strh r0, [r1, #0x32] - ldr r0, _08100124 - str r0, [r1, #0x1c] - ldr r1, _08100128 - mov r3, sb - ldrh r0, [r3, #0x20] - strh r0, [r1] - ldrh r0, [r3, #0x22] - strh r0, [r1, #2] - mov r0, sl - strh r0, [r1, #4] - ldr r2, [sp] - strh r2, [r1, #6] - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08100118: .4byte gUnknown_20380D6 -_0810011C: .4byte gUnknown_20380D7 -_08100120: .4byte gUnknown_20380BE -_08100124: .4byte AnimRootFlickerOut -_08100128: .4byte gUnknown_2039DC4 - thumb_func_end AnimFrenzyPlantRoot - - thumb_func_start AnimRootFlickerOut -AnimRootFlickerOut: @ 0x0810012C - push {lr} - adds r3, r0, #0 - ldrh r1, [r3, #0x2e] - adds r1, #1 - strh r1, [r3, #0x2e] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r2, #0x32 - ldrsh r0, [r3, r2] - subs r0, #0xa - cmp r1, r0 - ble _0810016C - movs r0, #0x2e - ldrsh r1, [r3, r0] - lsrs r0, r1, #0x1f - adds r0, r1, r0 - asrs r0, r0, #1 - lsls r0, r0, #1 - subs r1, r1, r0 - movs r2, #0x3e - adds r2, r2, r3 - mov ip, r2 - movs r0, #1 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1] -_0810016C: - movs r2, #0x2e - ldrsh r1, [r3, r2] - movs r2, #0x32 - ldrsh r0, [r3, r2] - cmp r1, r0 - ble _0810017E - adds r0, r3, #0 - bl DestroyAnimSprite -_0810017E: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AnimRootFlickerOut - - thumb_func_start AnimIngrainOrb -AnimIngrainOrb: @ 0x08100184 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r1, #0x2e - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _081001C4 - ldr r5, _08100200 - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - ldr r4, _08100204 - lsrs r0, r0, #0x18 - ldrh r2, [r4] - adds r0, r0, r2 - strh r0, [r6, #0x20] - ldrb r0, [r5] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #2] - adds r0, r0, r1 - strh r0, [r6, #0x22] - ldrh r0, [r4, #4] - strh r0, [r6, #0x30] - ldrh r0, [r4, #6] - strh r0, [r6, #0x32] - ldrh r0, [r4, #8] - strh r0, [r6, #0x34] -_081001C4: - ldrh r0, [r6, #0x2e] - adds r0, #1 - strh r0, [r6, #0x2e] - ldrh r1, [r6, #0x30] - muls r0, r1, r0 - strh r0, [r6, #0x24] - movs r2, #0x2e - ldrsh r1, [r6, r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, 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 _081001FA - adds r0, r6, #0 - bl DestroyAnimSprite -_081001FA: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08100200: .4byte gUnknown_20380D6 -_08100204: .4byte gUnknown_20380BE - thumb_func_end AnimIngrainOrb - - thumb_func_start sub_08100208 -sub_08100208: @ 0x08100208 - push {r4, r5, lr} - movs r2, #0x20 - ldrsh r4, [r0, r2] - lsls r4, r4, #8 - movs r3, #0x22 - ldrsh r2, [r0, r3] - orrs r4, r2 - movs r5, #0x3a - ldrsh r2, [r0, r5] - lsls r2, r2, #8 - movs r5, #0x3c - ldrsh r3, [r0, r5] - orrs r2, r3 - lsls r1, 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_08100208 - - thumb_func_start sub_08100230 -sub_08100230: @ 0x08100230 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov r8, r0 - ldrh r0, [r0, #0x38] - lsrs r1, r0, #8 - mov sl, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - mov r1, r8 - ldrh r0, [r1, #0x3a] - lsrs r2, r0, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldrh r1, [r1, #0x3c] - lsls r0, r1, #0x10 - asrs r0, r0, #0x18 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - movs r3, #0xff - ands r3, r1 - cmp r2, #0 - bne _0810026A - movs r2, #0x20 - rsbs r2, r2, #0 - b _08100272 -_0810026A: - cmp r2, #0xff - bne _08100272 - movs r2, #0x88 - lsls r2, r2, #1 -_08100272: - mov r0, sb - subs r4, r4, r0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - mov r1, sl - subs r0, r2, r1 - lsls r5, r3, #0x10 - asrs r5, r5, #0x10 - muls r0, r5, r0 - lsls r1, r6, #0x10 - asrs r7, r1, #0x10 - adds r1, r7, #0 - bl __divsi3 - adds r6, r0, #0 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - adds r0, r4, #0 - muls r0, r5, r0 - adds r1, r7, #0 - bl __divsi3 - add r6, sl - mov r1, r8 - strh r6, [r1, #0x20] - add r0, sb - strh r0, [r1, #0x22] - adds r5, #1 - lsls r5, r5, #0x10 - lsrs r3, r5, #0x10 - asrs r5, r5, #0x10 - cmp r5, r7 - beq _081002C4 - lsls r1, r7, #8 - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - orrs r0, r1 - mov r1, r8 - strh r0, [r1, #0x3c] - movs r0, #0 - b _081002C6 -_081002C4: - movs r0, #1 -_081002C6: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_08100230 - - thumb_func_start sub_081002D4 -sub_081002D4: @ 0x081002D4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0xa - bne _081002E8 - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAffineAnim -_081002E8: - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x32 - ble _081002FC - adds r0, r4, #0 - bl DestroyAnimSprite -_081002FC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081002D4 - - thumb_func_start sub_08100304 -sub_08100304: @ 0x08100304 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x34 - ldrsh r0, [r4, r1] - lsls r0, r0, #7 - movs r2, #0x36 - ldrsh r1, [r4, r2] - bl __divsi3 - ldrh r1, [r4, #0x2e] - adds r1, r1, r0 - movs r5, #0 - strh r1, [r4, #0x2e] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0x7f - ble _0810032E - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - strh r5, [r4, #0x2e] -_0810032E: - ldrh r0, [r4, #0x2e] - adds r0, #0x80 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x30 - ldrsh r2, [r4, r1] - lsls r2, r2, #3 - movs r1, #0x1e - subs r1, r1, r2 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl Sin - strh r0, [r4, #0x26] - adds r0, r4, #0 - bl sub_08100230 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810035E - strh r5, [r4, #0x26] - strh r5, [r4, #0x2e] - ldr r0, _08100364 - str r0, [r4, #0x1c] -_0810035E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08100364: .4byte sub_081002D4 - thumb_func_end sub_08100304 - - thumb_func_start AnimPresent -AnimPresent: @ 0x08100368 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r1, #0 - bl InitSpritePosToAnimAttacker - ldr r4, _081003B0 - ldrb r0, [r4] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldrb r0, [r4] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _081003B4 - ldrb r1, [r0] - movs r0, #2 - eors r0, r1 - ldrb r4, [r4] - cmp r0, r4 - bne _081003B8 - strh r6, [r5, #0x3a] - adds r0, r2, #0 - adds r0, #0xa - strh r0, [r5, #0x3c] - adds r0, r5, #0 - movs r1, #0x3c - bl sub_08100208 - movs r0, #1 - b _081003CA - .align 2, 0 -_081003B0: .4byte gUnknown_20380D7 -_081003B4: .4byte gUnknown_20380D6 -_081003B8: - strh r6, [r5, #0x3a] - adds r0, r2, #0 - adds r0, #0xa - strh r0, [r5, #0x3c] - adds r0, r5, #0 - movs r1, #0x3c - bl sub_08100208 - movs r0, #3 -_081003CA: - strh r0, [r5, #0x34] - movs r0, #0x3c - strh r0, [r5, #0x36] - ldr r0, _081003DC - str r0, [r5, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081003DC: .4byte sub_08100304 - thumb_func_end AnimPresent - - thumb_func_start sub_081003E0 -sub_081003E0: @ 0x081003E0 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x34 - ldrsh r0, [r4, r1] - lsls r0, r0, #7 - movs r2, #0x36 - ldrsh r1, [r4, r2] - bl __divsi3 - ldrh r1, [r4, #0x2e] - adds r1, r1, r0 - movs r5, #0 - strh r1, [r4, #0x2e] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0x7f - ble _0810040A - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - strh r5, [r4, #0x2e] -_0810040A: - ldrh r0, [r4, #0x2e] - adds r0, #0x80 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x30 - ldrsh r2, [r4, r1] - lsls r2, r2, #3 - movs r1, #0x1e - subs r1, r1, r2 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl Sin - strh r0, [r4, #0x26] - adds r0, r4, #0 - bl sub_08100230 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810043C - strh r5, [r4, #0x26] - strh r5, [r4, #0x2e] - adds r0, r4, #0 - bl DestroyAnimSprite -_0810043C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081003E0 - - thumb_func_start AnimKnockOffItem -AnimKnockOffItem: @ 0x08100444 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r4, _08100480 - ldrb r0, [r4] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _08100488 - strh r0, [r5, #0x3a] - adds r0, r6, #0 - adds r0, #0xa - strh r0, [r5, #0x3c] - adds r0, r5, #0 - movs r1, #0x28 - bl sub_08100208 - movs r0, #3 - strh r0, [r5, #0x34] - movs r0, #0x3c - strh r0, [r5, #0x36] - ldr r0, _08100484 - b _081004B2 - .align 2, 0 -_08100480: .4byte gUnknown_20380D7 -_08100484: .4byte sub_08100304 -_08100488: - movs r0, #0xff - strh r0, [r5, #0x3a] - adds r0, r6, #0 - adds r0, #0xa - strh r0, [r5, #0x3c] - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081004A0 - movs r0, #0 - strh r0, [r5, #0x3a] -_081004A0: - adds r0, r5, #0 - movs r1, #0x28 - bl sub_08100208 - movs r0, #3 - strh r0, [r5, #0x34] - movs r0, #0x3c - strh r0, [r5, #0x36] - ldr r0, _081004BC -_081004B2: - str r0, [r5, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081004BC: .4byte sub_081003E0 - thumb_func_end AnimKnockOffItem - - thumb_func_start AnimPresentHealParticle -AnimPresentHealParticle: @ 0x081004C0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _081004DA - adds r0, r4, #0 - movs r1, #0 - bl InitSpritePosToAnimTarget - ldr r0, _08100500 - ldrh r0, [r0, #4] - strh r0, [r4, #0x30] -_081004DA: - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - ldrh r1, [r4, #0x30] - muls r0, r1, r0 - strh r0, [r4, #0x26] - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _081004FA - adds r0, r4, #0 - bl DestroyAnimSprite -_081004FA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08100500: .4byte gUnknown_20380BE - thumb_func_end AnimPresentHealParticle - - thumb_func_start AnimItemSteal -AnimItemSteal: @ 0x08100504 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r1, #0 - bl InitSpritePosToAnimTarget - ldr r4, _0810054C - ldrb r0, [r4] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldrb r0, [r4] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _08100550 - ldrb r1, [r0] - movs r0, #2 - eors r0, r1 - ldrb r4, [r4] - cmp r0, r4 - bne _08100554 - strh r6, [r5, #0x3a] - adds r0, r2, #0 - adds r0, #0xa - strh r0, [r5, #0x3c] - adds r0, r5, #0 - movs r1, #0x3c - bl sub_08100208 - movs r0, #1 - b _08100566 - .align 2, 0 -_0810054C: .4byte gUnknown_20380D6 -_08100550: .4byte gUnknown_20380D7 -_08100554: - strh r6, [r5, #0x3a] - adds r0, r2, #0 - adds r0, #0xa - strh r0, [r5, #0x3c] - adds r0, r5, #0 - movs r1, #0x3c - bl sub_08100208 - movs r0, #3 -_08100566: - strh r0, [r5, #0x34] - movs r0, #0x3c - strh r0, [r5, #0x36] - ldr r0, _08100578 - str r0, [r5, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08100578: .4byte AnimItemStealStep - thumb_func_end AnimItemSteal - - thumb_func_start AnimItemStealStep -AnimItemStealStep: @ 0x0810057C - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x34 - ldrsh r0, [r4, r1] - lsls r0, r0, #7 - movs r2, #0x36 - ldrsh r1, [r4, r2] - bl __divsi3 - ldrh r1, [r4, #0x2e] - adds r1, r1, r0 - movs r5, #0 - strh r1, [r4, #0x2e] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0x7f - ble _081005A6 - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - strh r5, [r4, #0x2e] -_081005A6: - ldrh r0, [r4, #0x2e] - adds r0, #0x80 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x30 - ldrsh r2, [r4, r1] - lsls r2, r2, #3 - movs r1, #0x1e - subs r1, r1, r2 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl Sin - strh r0, [r4, #0x26] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _081005DA - movs r0, #0x3f - bl BattleAnimAdjustPanning - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r0, #0x7d - bl PlaySE12WithPanning -_081005DA: - adds r0, r4, #0 - bl sub_08100230 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08100602 - strh r5, [r4, #0x26] - strh r5, [r4, #0x2e] - ldr r0, _08100608 - str r0, [r4, #0x1c] - movs r0, #0x40 - rsbs r0, r0, #0 - bl BattleAnimAdjustPanning - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r0, #0x7d - bl PlaySE12WithPanning -_08100602: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08100608: .4byte sub_081002D4 - thumb_func_end AnimItemStealStep - - thumb_func_start AnimTrickBag -AnimTrickBag: @ 0x0810060C - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _081006A0 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08100634 - ldr r0, _08100630 - ldrh r1, [r0, #2] - strh r1, [r4, #0x30] - movs r1, #0x78 - strh r1, [r4, #0x20] - adds r5, r0, #0 - b _08100656 - .align 2, 0 -_08100630: .4byte gUnknown_20380BE -_08100634: - ldr r0, _08100690 - movs r1, #2 - ldrsh r3, [r0, r1] - adds r1, r3, #0 - subs r1, #0x20 - adds r2, r1, #0 - adds r5, r0, #0 - cmp r1, #0 - bge _0810064A - adds r2, r3, #0 - adds r2, #0xdf -_0810064A: - asrs r0, r2, #8 - lsls r0, r0, #8 - subs r0, r1, r0 - strh r0, [r4, #0x30] - movs r0, #0x46 - strh r0, [r4, #0x20] -_08100656: - 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, _08100694 - str r0, [r4, #0x1c] - ldrh r0, [r4, #0x30] - subs r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xbe - bhi _08100698 - adds r1, r4, #0 - adds r1, #0x43 - movs r0, #0x1f - b _0810069E - .align 2, 0 -_08100690: .4byte gUnknown_20380BE -_08100694: .4byte AnimTrickBagStep1 -_08100698: - adds r1, r4, #0 - adds r1, #0x43 - movs r0, #0x1d -_0810069E: - strb r0, [r1] -_081006A0: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AnimTrickBag - - thumb_func_start AnimTrickBagStep1 -AnimTrickBagStep1: @ 0x081006A8 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x34 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _081006BA - cmp r0, #1 - beq _081006EA - b _0810070A -_081006BA: - ldrh r5, [r4, #0x32] - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0x4e - ble _081006D2 - movs r0, #1 - strh r0, [r4, #0x34] - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAffineAnim - b _0810070A -_081006D2: - 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, #3 - strh r1, [r4, #0x36] - strh r0, [r4, #0x22] - b _0810070A -_081006EA: - movs r1, #0x34 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0810070A - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0810070A - movs r0, #0 - strh r0, [r4, #0x2e] - strh r0, [r4, #0x32] - ldr r0, _08100710 - str r0, [r4, #0x1c] -_0810070A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08100710: .4byte AnimTrickBagStep2 - thumb_func_end AnimTrickBagStep1 - - thumb_func_start AnimTrickBagStep2 -AnimTrickBagStep2: @ 0x08100714 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r5, _08100758 - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #1 - adds r3, r0, r1 - adds r0, r5, #1 - adds r0, r3, r0 - ldrh r2, [r4, #0x32] - movs r6, #0x32 - ldrsh r1, [r4, r6] - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r1, r0 - bne _08100760 - adds r0, r5, #2 - adds r0, r3, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0x7f - bne _0810074C - movs r0, #0 - strh r0, [r4, #0x2e] - ldr r0, _0810075C - str r0, [r4, #0x1c] -_0810074C: - movs r0, #0 - strh r0, [r4, #0x32] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - b _081007C6 - .align 2, 0 -_08100758: .4byte gUnknown_856E2E4 -_0810075C: .4byte AnimTrickBagStep3 -_08100760: - adds r0, r2, #1 - strh r0, [r4, #0x32] - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #1 - adds r0, r0, r1 - adds r1, r0, r5 - movs r2, #0 - ldrsb r2, [r1, r2] - adds r1, r5, #2 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - muls r0, r2, r0 - ldrh r1, [r4, #0x30] - adds r0, r0, r1 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x30] - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081007AE - ldrh r0, [r4, #0x30] - subs r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xbe - bhi _081007A6 - adds r1, r4, #0 - adds r1, #0x43 - movs r0, #0x1f - b _081007AC -_081007A6: - adds r1, r4, #0 - adds r1, #0x43 - movs r0, #0x1d -_081007AC: - strb r0, [r1] -_081007AE: - 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] -_081007C6: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end AnimTrickBagStep2 - - thumb_func_start AnimTrickBagStep3 -AnimTrickBagStep3: @ 0x081007CC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0x14 - ble _081007DE - adds r0, r4, #0 - bl DestroyAnimSprite -_081007DE: - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsrs r0, r1, #0x1f - adds r0, r1, r0 - asrs r0, r0, #1 - lsls r0, r0, #1 - subs r1, r1, r0 - adds r3, r4, #0 - adds r3, #0x3e - movs r0, #1 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r3] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AnimTrickBagStep3 - - thumb_func_start sub_08100810 -sub_08100810: @ 0x08100810 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r6, r0, #0 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _08100964 - adds r5, r0, r1 - ldr r4, _08100968 - ldrb r0, [r4] - bl GetBattlerSpriteSubpriority - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, #1 - strh r0, [r5, #0x10] - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x14] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x16] - ldrb r0, [r4] - movs r1, #1 - bl GetBattlerSpriteCoordAttr - strh r0, [r5, #0x1c] - ldrb r0, [r4] - movs r1, #0 - bl GetBattlerSpriteCoordAttr - strh r0, [r5, #0x1e] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #1 - rsbs r2, r2, #0 - adds r1, r2, #0 - cmp r0, #1 - bne _08100878 - movs r1, #1 -_08100878: - strh r1, [r5, #0x12] - movs r3, #0x12 - ldrsh r0, [r5, r3] - lsls r0, r0, #6 - movs r1, #0x38 - subs r1, r1, r0 - strh r1, [r5, #0x1a] - ldrh r0, [r5, #0x16] - subs r0, r0, r1 - ldrh r1, [r5, #0x14] - adds r0, r0, r1 - strh r0, [r5, #0x18] - ldr r0, _0810096C - movs r2, #0x18 - ldrsh r1, [r5, r2] - movs r3, #0x1a - ldrsh r2, [r5, r3] - ldrb r3, [r5, #0x10] - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0xc] - cmp r0, #0x40 - bne _081008B0 - adds r0, r6, #0 - bl DestroyAnimVisualTask -_081008B0: - ldr r4, _08100970 - movs r0, #0xc - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0xa - strh r1, [r0, #0x2e] - movs r2, #0xc - ldrsh r1, [r5, r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r5, #0x18] - strh r1, [r0, #0x30] - movs r3, #0xc - ldrsh r0, [r5, r3] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r4 - movs r1, #0x1c - ldrsh r0, [r5, r1] - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - adds r0, #0xa - movs r3, #0x12 - ldrsh r1, [r5, r3] - muls r1, r0, r1 - ldrh r0, [r5, #0x14] - subs r0, r0, r1 - strh r0, [r2, #0x32] - movs r0, #0xc - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r5, #0x1a] - strh r1, [r0, #0x34] - movs r1, #0xc - ldrsh r0, [r5, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - movs r2, #0x1e - ldrsh r0, [r5, r2] - lsrs r2, r0, #0x1f - adds r0, r0, r2 - asrs r0, r0, #1 - adds r0, #0xa - movs r3, #0x12 - ldrsh r2, [r5, r3] - muls r0, r2, r0 - ldrh r2, [r5, #0x16] - adds r0, r0, r2 - strh r0, [r1, #0x36] - movs r3, #0xc - ldrsh r1, [r5, r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl sub_08100D54 - movs r1, #0xc - ldrsh r2, [r5, r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r4 - strh r0, [r1, #0x38] - movs r2, #0xc - ldrsh r1, [r5, r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl InitAnimArcTranslation - ldr r0, _08100974 - str r0, [r5] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08100964: .4byte gUnknown_3005B60 -_08100968: .4byte gUnknown_20380D7 -_0810096C: .4byte gUnknown_856E35C -_08100970: .4byte gUnknown_20205AC -_08100974: .4byte sub_08100978 - thumb_func_end sub_08100810 - - thumb_func_start sub_08100978 -sub_08100978: @ 0x08100978 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _081009BC - adds r6, r0, r1 - movs r0, #0xc - ldrsh r1, [r6, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _081009C0 - adds r4, r0, r1 - movs r1, #8 - ldrsh r5, [r6, r1] - cmp r5, #7 - bne _081009A0 - b _08100BD0 -_081009A0: - cmp r5, #7 - bgt _081009EE - cmp r5, #3 - bne _081009AA - b _08100AC2 -_081009AA: - cmp r5, #3 - bgt _081009C4 - cmp r5, #1 - beq _08100A54 - cmp r5, #1 - bgt _08100AA4 - cmp r5, #0 - beq _08100A36 - b _08100D4C - .align 2, 0 -_081009BC: .4byte gUnknown_3005B60 -_081009C0: .4byte gUnknown_20205AC -_081009C4: - cmp r5, #5 - bne _081009CA - b _08100B38 -_081009CA: - cmp r5, #5 - ble _081009D0 - b _08100BB2 -_081009D0: - adds r0, r6, #0 - adds r1, r2, #0 - bl sub_08100D74 - adds r0, r4, #0 - bl TranslateAnimHorizontalArc - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081009E6 - b _08100D4C -_081009E6: - movs r0, #5 - strh r0, [r6, #0x26] - movs r0, #0xff - b _08100D4A -_081009EE: - cmp r5, #0xb - bne _081009F4 - b _08100CB4 -_081009F4: - cmp r5, #0xb - bgt _08100A22 - cmp r5, #9 - bne _081009FE - b _08100C22 -_081009FE: - cmp r5, #9 - ble _08100A04 - b _08100C98 -_08100A04: - adds r0, r6, #0 - adds r1, r2, #0 - bl sub_08100D74 - adds r0, r4, #0 - bl TranslateAnimHorizontalArc - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08100A1A - b _08100D4C -_08100A1A: - movs r0, #9 - strh r0, [r6, #0x26] - movs r0, #0xff - b _08100D4A -_08100A22: - cmp r5, #0xd - bne _08100A28 - b _08100D26 -_08100A28: - cmp r5, #0xd - bge _08100A2E - b _08100D06 -_08100A2E: - cmp r5, #0xff - bne _08100A34 - b _08100D36 -_08100A34: - b _08100D4C -_08100A36: - adds r0, r6, #0 - adds r1, r2, #0 - bl sub_08100D74 - adds r0, r4, #0 - bl TranslateAnimHorizontalArc - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08100A4C - b _08100D4C -_08100A4C: - movs r0, #1 - strh r0, [r6, #0x26] - movs r0, #0xff - b _08100D4A -_08100A54: - ldrh r2, [r4, #0x24] - ldrh r3, [r4, #0x20] - adds r2, r2, r3 - movs r0, #0 - strh r2, [r4, #0x20] - ldrh r1, [r4, #0x26] - ldrh r3, [r4, #0x22] - adds r1, 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_08100D54 - strh r0, [r4, #0x38] - ldrh r0, [r6, #0x10] - adds r0, #2 - 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 InitAnimArcTranslation - ldrh r0, [r6, #8] - adds r0, #1 - b _08100D4A -_08100AA4: - adds r0, r6, #0 - adds r1, r2, #0 - bl sub_08100D74 - adds r0, r4, #0 - bl TranslateAnimHorizontalArc - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08100ABA - b _08100D4C -_08100ABA: - movs r0, #3 - strh r0, [r6, #0x26] - movs r0, #0xff - b _08100D4A -_08100AC2: - ldrh r1, [r4, #0x24] - ldrh r0, [r4, #0x20] - adds r1, r1, r0 - movs r0, #0 - strh r1, [r4, #0x20] - ldrh r2, [r4, #0x26] - ldrh r3, [r4, #0x22] - adds r2, 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, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - adds r0, #0xa - movs r3, #0x12 - ldrsh r1, [r6, r3] - muls r1, r0, r1 - ldrh r0, [r6, #0x14] - subs r0, r0, r1 - strh r0, [r4, #0x32] - strh r2, [r4, #0x34] - movs r1, #0x1e - ldrsh r0, [r6, r1] - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - adds r0, #0xa - movs r2, #0x12 - ldrsh r1, [r6, r2] - muls r1, r0, r1 - ldrh r0, [r6, #0x16] - subs r0, r0, r1 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_08100D54 - strh r0, [r4, #0x38] - movs r0, #2 - 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 InitAnimArcTranslation - ldrh r0, [r6, #8] - adds r0, #1 - b _08100D4A -_08100B38: - ldrh r1, [r4, #0x24] - ldrh r3, [r4, #0x20] - adds r1, r1, r3 - movs r0, #0 - strh r1, [r4, #0x20] - ldrh r2, [r4, #0x26] - ldrh r3, [r4, #0x22] - adds r2, 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, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - adds r0, #0xa - movs r3, #0x12 - ldrsh r1, [r6, r3] - muls r0, r1, r0 - ldrh r1, [r6, #0x14] - adds r0, r0, r1 - strh r0, [r4, #0x32] - strh r2, [r4, #0x34] - movs r2, #0x1e - ldrsh r0, [r6, r2] - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - adds r0, #0xa - movs r3, #0x12 - ldrsh r1, [r6, r3] - muls r0, r1, r0 - ldrh r1, [r6, #0x16] - adds r0, r0, r1 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_08100D54 - strh r0, [r4, #0x38] - ldrh r1, [r6, #0x10] - subs r1, #2 - strh r1, [r6, #0x10] - movs r0, #3 - 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 InitAnimArcTranslation - ldrh r0, [r6, #8] - adds r0, #1 - b _08100D4A -_08100BB2: - adds r0, r6, #0 - adds r1, r2, #0 - bl sub_08100D74 - adds r0, r4, #0 - bl TranslateAnimHorizontalArc - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08100BC8 - b _08100D4C -_08100BC8: - movs r0, #7 - strh r0, [r6, #0x26] - movs r0, #0xff - b _08100D4A -_08100BD0: - ldrh r2, [r4, #0x24] - ldrh r3, [r4, #0x20] - adds r2, r2, r3 - movs r0, #0 - strh r2, [r4, #0x20] - ldrh r1, [r4, #0x26] - ldrh r3, [r4, #0x22] - adds r1, 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_08100D54 - strh r0, [r4, #0x38] - ldrh r1, [r6, #0x10] - adds r1, #2 - strh r1, [r6, #0x10] - movs r0, #4 - 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 InitAnimArcTranslation - ldrh r0, [r6, #8] - adds r0, #1 - b _08100D4A -_08100C22: - ldrh r1, [r4, #0x24] - ldrh r0, [r4, #0x20] - adds r1, r1, r0 - movs r0, #0 - strh r1, [r4, #0x20] - ldrh r2, [r4, #0x26] - ldrh r3, [r4, #0x22] - adds r2, 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, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - adds r0, #0xa - movs r3, #0x12 - ldrsh r1, [r6, r3] - muls r1, r0, r1 - ldrh r0, [r6, #0x14] - subs r0, r0, r1 - strh r0, [r4, #0x32] - strh r2, [r4, #0x34] - movs r1, #0x1e - ldrsh r0, [r6, r1] - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - adds r0, #0xa - movs r2, #0x12 - ldrsh r1, [r6, r2] - muls r0, r1, r0 - ldrh r3, [r6, #0x16] - adds r0, r0, r3 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_08100D54 - strh r0, [r4, #0x38] - movs r0, #5 - 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 InitAnimArcTranslation - ldrh r0, [r6, #8] - adds r0, #1 - b _08100D4A -_08100C98: - adds r0, r6, #0 - adds r1, r2, #0 - bl sub_08100D74 - adds r0, r4, #0 - bl TranslateAnimHorizontalArc - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08100D4C - movs r0, #0xb - strh r0, [r6, #0x26] - movs r0, #0xff - b _08100D4A -_08100CB4: - ldrh r2, [r4, #0x24] - ldrh r0, [r4, #0x20] - adds r2, r2, r0 - movs r0, #0 - strh r2, [r4, #0x20] - ldrh r1, [r4, #0x26] - ldrh r3, [r4, #0x22] - adds r1, 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_08100D54 - strh r0, [r4, #0x38] - ldrh r1, [r6, #0x10] - subs r1, #2 - strh r1, [r6, #0x10] - movs r0, #6 - 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 InitAnimArcTranslation - ldrh r0, [r6, #8] - adds r0, #1 - b _08100D4A -_08100D06: - adds r0, r6, #0 - adds r1, r2, #0 - bl sub_08100D74 - adds r0, r4, #0 - bl TranslateAnimHorizontalArc - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08100D4C - adds r0, r4, #0 - bl DestroySprite - ldrh r0, [r6, #8] - adds r0, #1 - b _08100D4A -_08100D26: - movs r1, #0x20 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _08100D4C - adds r0, r2, #0 - bl DestroyAnimVisualTask - b _08100D4C -_08100D36: - ldrh r0, [r6, #0xa] - adds r0, #1 - strh r0, [r6, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #5 - ble _08100D4C - movs r0, #0 - strh r0, [r6, #0xa] - ldrh r0, [r6, #0x26] -_08100D4A: - strh r0, [r6, #8] -_08100D4C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08100978 - - thumb_func_start sub_08100D54 -sub_08100D54: @ 0x08100D54 - push {lr} - movs r2, #8 - movs r3, #0x36 - ldrsh r1, [r0, r3] - movs r3, #0x22 - ldrsh r0, [r0, r3] - cmp r1, r0 - bge _08100D6A - rsbs r0, r2, #0 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 -_08100D6A: - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08100D54 - - thumb_func_start sub_08100D74 -sub_08100D74: @ 0x08100D74 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - ldrh r0, [r6, #0x24] - adds r0, #1 - strh r0, [r6, #0x24] - lsls r0, r0, #0x10 - cmp r0, #0 - ble _08100E0A - movs r0, #0 - strh r0, [r6, #0x24] - ldr r0, _08100E14 - mov r8, r0 - movs r2, #0xc - ldrsh r1, [r6, r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - ldrh r1, [r0, #0x24] - ldrh r2, [r0, #0x20] - adds r1, r1, r2 - ldrh r2, [r0, #0x26] - ldrh r0, [r0, #0x22] - adds r2, r2, r0 - ldr r0, _08100E18 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - ldrb r3, [r6, #0x10] - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _08100E0A - lsls r5, r0, #4 - adds r5, r5, r0 - lsls r5, r5, #2 - mov r0, r8 - adds r4, r5, r0 - strh r7, [r4, #0x3a] - movs r0, #0xc - strh r0, [r4, #0x3c] - ldr r0, _08100E1C - lsls r1, r7, #2 - adds r1, r1, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x20] - adds r0, #1 - strh r0, [r1, #0x20] - ldrh r2, [r6, #0x22] - movs r0, #1 - ands r0, r2 - strh r0, [r4, #0x2e] - ldrh r0, [r1, #0x22] - adds r0, #1 - 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, r5, r0 - ldr r0, _08100E20 - str r0, [r5] -_08100E0A: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08100E14: .4byte gUnknown_20205AC -_08100E18: .4byte gUnknown_856E35C -_08100E1C: .4byte gUnknown_3005B60 -_08100E20: .4byte sub_08100E24 - thumb_func_end sub_08100D74 - - thumb_func_start sub_08100E24 -sub_08100E24: @ 0x08100E24 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _08100E86 - movs r0, #0 - strh r0, [r4, #0x2e] - adds r3, r4, #0 - adds r3, #0x3e - ldrb r2, [r3] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #8 - ble _08100E86 - ldr r3, _08100E8C - movs r0, #0x3c - ldrsh r1, [r4, r0] - lsls r1, r1, #1 - movs r0, #0x3a - ldrsh r2, [r4, r0] - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r1, r1, r0 - adds r3, #8 - adds r1, r1, r3 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - adds r0, r4, #0 - bl DestroySprite -_08100E86: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08100E8C: .4byte gUnknown_3005B60 - thumb_func_end sub_08100E24 - - thumb_func_start sub_08100E90 -sub_08100E90: @ 0x08100E90 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r0, _08100EA4 - movs r1, #0xc - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08100EAC - ldr r0, _08100EA8 - b _08100EAE - .align 2, 0 -_08100EA4: .4byte gUnknown_20380BE -_08100EA8: .4byte gUnknown_20380D6 -_08100EAC: - ldr r0, _08100ECC -_08100EAE: - ldrb r6, [r0] - adds r0, r6, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08100ED8 - movs r0, #0 - strh r0, [r4, #0x36] - ldr r1, _08100ED0 - ldrh r0, [r1, #6] - strh r0, [r4, #0x32] - ldr r0, _08100ED4 - b _08100EE8 - .align 2, 0 -_08100ECC: .4byte gUnknown_20380D7 -_08100ED0: .4byte gUnknown_20380BE -_08100ED4: .4byte 0x0000FFF0 -_08100ED8: - movs r0, #1 - strh r0, [r4, #0x36] - ldr r1, _08100F0C - ldrh r0, [r1, #6] - rsbs r0, r0, #0 - strh r0, [r4, #0x32] - movs r0, #0x80 - lsls r0, r0, #1 -_08100EE8: - strh r0, [r4, #0x20] - adds r7, r1, #0 - adds r5, r7, #0 - ldrh r0, [r5, #2] - strh r0, [r4, #0x30] - ldrh r0, [r5, #4] - strh r0, [r4, #0x2e] - ldrh r0, [r5, #8] - strh r0, [r4, #0x34] - movs r1, #0xa - ldrsh r0, [r5, r1] - cmp r0, #1 - beq _08100F1E - cmp r0, #1 - bgt _08100F10 - cmp r0, #0 - beq _08100F1A - b _08100F88 - .align 2, 0 -_08100F0C: .4byte gUnknown_20380BE -_08100F10: - cmp r0, #2 - beq _08100F24 - cmp r0, #3 - beq _08100F50 - b _08100F88 -_08100F1A: - ldrh r0, [r5] - b _08100F34 -_08100F1E: - ldrh r0, [r5] - strh r0, [r4, #0x22] - b _08100F6A -_08100F24: - adds r0, r6, #0 - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r5, [r5] - adds r0, r0, r5 -_08100F34: - strh r0, [r4, #0x22] - adds r0, r6, #0 - bl GetBattlerSpriteBGPriority - movs r1, #3 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r4, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #5] - b _08100F88 -_08100F50: - ldr r0, _08100F94 - ldrb r0, [r0] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r7, [r7] - adds r0, r0, r7 - strh r0, [r4, #0x22] - movs r0, #1 - bl GetAnimBattlerSpriteId -_08100F6A: - adds r0, r6, #0 - bl GetBattlerSpriteBGPriority - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #1 - movs r1, #3 - ands r0, r1 - lsls r0, r0, #2 - ldrb r2, [r4, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #5] -_08100F88: - ldr r0, _08100F98 - str r0, [r4, #0x1c] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08100F94: .4byte gUnknown_20380D7 -_08100F98: .4byte sub_08100F9C - thumb_func_end sub_08100E90 - - thumb_func_start sub_08100F9C -sub_08100F9C: @ 0x08100F9C - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x3c - ldrsh r3, [r4, r0] - ldrh r0, [r4, #0x3c] - adds r0, #1 - strh r0, [r4, #0x3c] - movs r1, #0x30 - ldrsh r2, [r4, r1] - ldr r1, _08100FF0 - movs r5, #0x2e - ldrsh r0, [r4, r5] - lsls r0, r0, #1 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - muls r0, r2, r0 - asrs r0, r0, #8 - strh r0, [r4, #0x26] - movs r2, #0x32 - ldrsh r0, [r4, r2] - muls r0, r3, r0 - strh r0, [r4, #0x24] - movs r5, #0x34 - ldrsh r0, [r4, r5] - muls r0, r3, r0 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x2e] - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08100FF4 - movs r2, #0x24 - ldrsh r0, [r4, r2] - movs r5, #0x20 - ldrsh r1, [r4, r5] - adds r0, r0, r1 - cmp r0, #0xf7 - ble _0810100C - b _08101006 - .align 2, 0 -_08100FF0: .4byte gUnknown_82FA8CC -_08100FF4: - movs r1, #0x24 - ldrsh r0, [r4, r1] - movs r2, #0x20 - ldrsh r1, [r4, r2] - adds r0, r0, r1 - movs r1, #0x10 - rsbs r1, r1, #0 - cmp r0, r1 - bgt _0810100C -_08101006: - adds r0, r4, #0 - bl DestroySpriteAndMatrix -_0810100C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08100F9C - - thumb_func_start sub_08101014 -sub_08101014: @ 0x08101014 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _08101034 - adds r5, r0, r1 - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _08101038 - cmp r0, #1 - beq _0810106C - b _081010C6 - .align 2, 0 -_08101034: .4byte gUnknown_3005B60 -_08101038: - ldr r0, _08101064 - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x14 - movs r2, #0x80 - lsls r2, r2, #1 - adds r4, r2, #0 - adds r0, r0, r4 - strh r0, [r5, #0x18] - ldr r0, _08101068 - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x14 - adds r0, r0, r4 - strh r0, [r5, #0x20] - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - b _081010C6 - .align 2, 0 -_08101064: .4byte 0x0000274F -_08101068: .4byte 0x000027B0 -_0810106C: - ldrh r0, [r5, #0x1a] - adds r0, #1 - movs r7, #0 - strh r0, [r5, #0x1a] - lsls r0, r0, #0x10 - cmp r0, #0 - blt _081010C6 - strh r7, [r5, #0x1a] - ldrh r0, [r5, #0x18] - ldrb r2, [r5, #0x1c] - ldr r4, _081010E0 - movs r3, #0x1e - ldrsh r1, [r5, r3] - lsls r1, r1, #1 - adds r1, 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, r1, #1 - adds r1, r1, r4 - ldrh r3, [r1] - movs r1, #0x10 - bl BlendPalette - ldrh r0, [r5, #0x1c] - adds r0, #1 - strh r0, [r5, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x11 - bne _081010C6 - strh r7, [r5, #0x1c] - ldrh r0, [r5, #0x1e] - adds r0, #1 - strh r0, [r5, #0x1e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #7 - bne _081010C6 - strh r7, [r5, #0x1e] -_081010C6: - ldr r0, _081010E4 - movs r2, #0xe - ldrsh r1, [r0, r2] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _081010DA - adds r0, r6, #0 - bl DestroyAnimVisualTask -_081010DA: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081010E0: .4byte gUnknown_856E45C -_081010E4: .4byte gUnknown_20380BE - thumb_func_end sub_08101014 - - thumb_func_start sub_081010E8 -sub_081010E8: @ 0x081010E8 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r6, r0, #0 - ldr r1, _08101100 - movs r2, #8 - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _08101104 - adds r0, r6, #0 - bl DestroyAnimSprite - b _081011DE - .align 2, 0 -_08101100: .4byte gUnknown_20380BE -_08101104: - movs r3, #0 - ldrsh r0, [r1, r3] - cmp r0, #0 - bne _08101114 - ldr r4, _08101110 - b _08101116 - .align 2, 0 -_08101110: .4byte gUnknown_20380D6 -_08101114: - ldr r4, _08101150 -_08101116: - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _08101154 - ldrh r1, [r0, #8] - strh r1, [r6, #0x2e] - movs r3, #2 - ldrsh r1, [r0, r3] - adds r7, r0, #0 - cmp r1, #0 - bne _08101158 - ldrh r0, [r7, #4] - adds r0, r0, r5 - strh r0, [r6, #0x20] - ldrh r0, [r7, #6] - adds r0, r0, r2 - strh r0, [r6, #0x22] - strh r5, [r6, #0x38] - strh r2, [r6, #0x3a] - b _08101168 - .align 2, 0 -_08101150: .4byte gUnknown_20380D7 -_08101154: .4byte gUnknown_20380BE -_08101158: - strh r5, [r6, #0x20] - strh r2, [r6, #0x22] - ldrh r0, [r7, #4] - adds r0, r0, r5 - strh r0, [r6, #0x38] - ldrh r0, [r7, #6] - adds r0, r0, r2 - strh r0, [r6, #0x3a] -_08101168: - 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, r0, r1 - lsls r0, r0, #4 - movs r3, #8 - 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, r0, r1 - lsls r0, r0, #4 - movs r3, #8 - ldrsh r1, [r7, r3] - bl __divsi3 - strh r0, [r6, #0x36] - ldrh r0, [r6, #0x38] - subs r0, r0, r4 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrh r1, [r6, #0x3a] - subs r1, r1, r5 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl ArcTan2Neg - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081011CA - ldr r1, _081011E8 - adds r0, r4, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_081011CA: - movs r3, #0x80 - lsls r3, r3, #1 - str r4, [sp] - adds r0, r6, #0 - movs r1, #0 - adds r2, r3, #0 - bl TrySetSpriteRotScale - ldr r0, _081011EC - str r0, [r6, #0x1c] -_081011DE: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081011E8: .4byte 0xFFFF8000 -_081011EC: .4byte sub_081011F0 - thumb_func_end sub_081010E8 - - thumb_func_start sub_081011F0 -sub_081011F0: @ 0x081011F0 - push {r4, lr} - adds r2, r0, #0 - ldrh r3, [r2, #0x2e] - movs r1, #0x2e - ldrsh r0, [r2, r1] - cmp r0, #0 - beq _08101220 - ldrh r0, [r2, #0x34] - ldrh r4, [r2, #0x30] - adds r0, r0, r4 - strh r0, [r2, #0x30] - ldrh r1, [r2, #0x36] - ldrh r4, [r2, #0x32] - adds r1, r1, r4 - strh r1, [r2, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - strh r0, [r2, #0x20] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - strh r1, [r2, #0x22] - subs r0, r3, #1 - strh r0, [r2, #0x2e] - b _08101226 -_08101220: - adds r0, r2, #0 - bl DestroySpriteAndMatrix -_08101226: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081011F0 - - thumb_func_start sub_0810122C -sub_0810122C: @ 0x0810122C - push {lr} - adds r2, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08101242 - adds r0, r2, #0 - bl DestroyAnimSprite -_08101242: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0810122C - - thumb_func_start sub_08101248 -sub_08101248: @ 0x08101248 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08101268 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08101270 - ldr r2, _0810126C - ldrh r0, [r4, #0x20] - ldrh r1, [r2] - subs r0, r0, r1 - strh r0, [r4, #0x20] - ldrh r0, [r2, #2] - b _0810127C - .align 2, 0 -_08101268: .4byte gUnknown_20380D6 -_0810126C: .4byte gUnknown_20380BE -_08101270: - ldr r0, _08101294 - ldrh r1, [r0] - ldrh r2, [r4, #0x20] - adds r1, r1, r2 - strh r1, [r4, #0x20] - ldrh r0, [r0, #2] -_0810127C: - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] - ldr r0, _08101298 - str r0, [r4, #0x1c] - ldr r1, _0810129C - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08101294: .4byte gUnknown_20380BE -_08101298: .4byte RunStoredCallbackWhenAnimEnds -_0810129C: .4byte DestroyAnimSprite - thumb_func_end sub_08101248 - - thumb_func_start sub_081012A0 -sub_081012A0: @ 0x081012A0 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _081012D8 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081012BA - adds r0, r5, #0 - movs r1, #1 - bl StartSpriteAnim -_081012BA: - ldr r0, _081012DC - str r0, [r5, #0x1c] - ldr r4, _081012E0 - movs r0, #0 - ldrsh r1, [r4, r0] - adds r0, r5, #0 - bl SetAnimSpriteInitialXOffset - ldrh r0, [r4, #2] - ldrh r1, [r5, #0x22] - adds r0, r0, r1 - strh r0, [r5, #0x22] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081012D8: .4byte gUnknown_20380D6 -_081012DC: .4byte sub_0810122C -_081012E0: .4byte gUnknown_20380BE - thumb_func_end sub_081012A0 - - thumb_func_start sub_081012E4 -sub_081012E4: @ 0x081012E4 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08101324 - ldrh r0, [r1] - ldrh r2, [r4, #0x20] - adds r0, r0, r2 - strh r0, [r4, #0x20] - ldrh r0, [r1, #2] - ldrh r2, [r4, #0x22] - adds r0, r0, r2 - strh r0, [r4, #0x22] - ldrh r0, [r1, #4] - strh r0, [r4, #0x2e] - ldrh r0, [r1, #6] - strh r0, [r4, #0x30] - ldrh r0, [r1, #8] - strh r0, [r4, #0x34] - ldrh r0, [r1, #0xa] - strh r0, [r4, #0x38] - ldrb r1, [r1, #0xc] - adds r0, r4, #0 - bl StartSpriteAffineAnim - ldr r1, _08101328 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _0810132C - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08101324: .4byte gUnknown_20380BE -_08101328: .4byte DestroySpriteAndMatrix -_0810132C: .4byte TranslateSpriteLinearAndFlicker - thumb_func_end sub_081012E4 - - thumb_func_start sub_08101330 -sub_08101330: @ 0x08101330 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08101380 - ldrb r0, [r4] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08101364 - ldrh r0, [r5, #0x22] - adds r0, #8 - strh r0, [r5, #0x22] -_08101364: - ldr r0, _08101384 - str r0, [r5, #0x1c] - ldr r0, _08101388 - movs r2, #4 - ldrsh r1, [r0, r2] - adds r3, r0, #0 - cmp r1, #0 - bne _0810138C - ldrh r0, [r3] - ldrh r1, [r5, #0x20] - adds r0, r0, r1 - strh r0, [r5, #0x20] - b _081013A0 - .align 2, 0 -_08101380: .4byte gUnknown_20380D7 -_08101384: .4byte AnimSliceStep -_08101388: .4byte gUnknown_20380BE -_0810138C: - ldrh r0, [r5, #0x20] - ldrh r1, [r3] - subs r0, r0, r1 - strh r0, [r5, #0x20] - adds r2, r5, #0 - adds r2, #0x3f - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] -_081013A0: - ldrh r0, [r3, #2] - ldrh r2, [r5, #0x22] - adds r0, r0, r2 - strh r0, [r5, #0x22] - ldr r1, _081013D4 - adds r0, r1, #0 - ldrh r2, [r5, #0x30] - adds r1, r0, r2 - strh r1, [r5, #0x30] - movs r2, #0x80 - lsls r2, r2, #3 - adds r0, r2, #0 - ldrh r2, [r5, #0x32] - adds r0, r0, r2 - strh r0, [r5, #0x32] - ldrh r0, [r3, #4] - strh r0, [r5, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - bne _081013CE - rsbs r0, r1, #0 - strh r0, [r5, #0x30] -_081013CE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081013D4: .4byte 0xFFFFFC00 - thumb_func_end sub_08101330 - - thumb_func_start sub_081013D8 -sub_081013D8: @ 0x081013D8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - ldr r0, _081013F4 - movs r1, #6 - ldrsh r0, [r0, r1] - cmp r0, #1 - beq _081013F8 - cmp r0, #1 - ble _08101474 - cmp r0, #2 - beq _08101418 - b _08101474 - .align 2, 0 -_081013F4: .4byte gUnknown_20380BE -_081013F8: - ldr r5, _08101414 - ldrb r0, [r5] - movs r4, #2 - eors r0, r4 - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldrb r0, [r5] - eors r4, r0 - adds r0, r4, #0 - b _08101484 - .align 2, 0 -_08101414: .4byte gUnknown_20380D7 -_08101418: - ldr r5, _08101470 - ldrb r0, [r5] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldrb r0, [r5] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldrb r0, [r5] - movs r2, #2 - mov r8, r2 - mov r1, r8 - eors r0, r1 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810148E - ldrb r0, [r5] - mov r2, r8 - eors r0, r2 - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r7 - lsrs r7, r0, #1 - ldrb r0, [r5] - mov r1, r8 - eors r0, r1 - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r4 - lsrs r4, r0, #1 - b _0810148E - .align 2, 0 -_08101470: .4byte gUnknown_20380D7 -_08101474: - ldr r4, _081014C0 - ldrb r0, [r4] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldrb r0, [r4] -_08101484: - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_0810148E: - strh r7, [r6, #0x20] - strh r4, [r6, #0x22] - ldr r0, _081014C0 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081014A6 - ldrh r0, [r6, #0x22] - adds r0, #8 - strh r0, [r6, #0x22] -_081014A6: - ldr r0, _081014C4 - str r0, [r6, #0x1c] - ldr r0, _081014C8 - movs r2, #4 - ldrsh r1, [r0, r2] - adds r3, r0, #0 - cmp r1, #0 - bne _081014CC - ldrh r0, [r3] - ldrh r1, [r6, #0x20] - adds r0, r0, r1 - strh r0, [r6, #0x20] - b _081014E0 - .align 2, 0 -_081014C0: .4byte gUnknown_20380D7 -_081014C4: .4byte AnimSliceStep -_081014C8: .4byte gUnknown_20380BE -_081014CC: - ldrh r0, [r6, #0x20] - ldrh r1, [r3] - subs r0, r0, r1 - strh r0, [r6, #0x20] - adds r2, r6, #0 - adds r2, #0x3f - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] -_081014E0: - ldrh r0, [r3, #2] - ldrh r2, [r6, #0x22] - adds r0, r0, r2 - strh r0, [r6, #0x22] - ldr r1, _08101518 - adds r0, r1, #0 - ldrh r2, [r6, #0x30] - adds r1, r0, r2 - strh r1, [r6, #0x30] - movs r2, #0x80 - lsls r2, r2, #3 - adds r0, r2, #0 - ldrh r2, [r6, #0x32] - adds r0, r0, r2 - strh r0, [r6, #0x32] - ldrh r0, [r3, #4] - strh r0, [r6, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - bne _0810150E - rsbs r0, r1, #0 - strh r0, [r6, #0x30] -_0810150E: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08101518: .4byte 0xFFFFFC00 - thumb_func_end sub_081013D8 - - thumb_func_start AnimSliceStep -AnimSliceStep: @ 0x0810151C - 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, r0, r2 - strh r0, [r4, #0x36] - movs r2, #0x38 - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _0810153E - adds r0, r1, #0 - adds r0, #0x18 - b _08101542 -_0810153E: - adds r0, r1, #0 - subs r0, #0x18 -_08101542: - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x32] - subs r0, #0x18 - strh r0, [r4, #0x32] - ldrh r0, [r4, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x14 - bne _08101578 - ldr r1, _08101580 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - movs r0, #3 - strh r0, [r4, #0x2e] - ldr r0, _08101584 - str r0, [r4, #0x1c] -_08101578: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08101580: .4byte DestroyAnimSprite -_08101584: .4byte WaitAnimForDuration - thumb_func_end AnimSliceStep - - thumb_func_start unref_sub_8100D38 -unref_sub_8100D38: @ 0x08101588 - push {r4, r5, lr} - adds r5, r0, #0 - ldrh r1, [r5, #0x32] - movs r2, #0x32 - ldrsh r0, [r5, r2] - cmp r0, #1 - ble _0810162C - ldrh r1, [r5, #0x34] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081015E4 - adds r3, r5, #0 - adds r3, #0x3e - ldrb r1, [r3] - movs r2, #5 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r1 - strb r0, [r3] - ldr r4, _081015E0 - movs r0, #0x2e - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, 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, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - b _0810161A - .align 2, 0 -_081015E0: .4byte gUnknown_20205AC -_081015E4: - adds r1, r5, #0 - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - ldr r3, _08101628 - movs r0, #0x2e - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, 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, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] -_0810161A: - movs r0, #0 - strh r0, [r5, #0x32] - ldrh r0, [r5, #0x34] - adds r0, #1 - strh r0, [r5, #0x34] - b _08101630 - .align 2, 0 -_08101628: .4byte gUnknown_20205AC -_0810162C: - adds r0, r1, #1 - strh r0, [r5, #0x32] -_08101630: - movs r1, #0x34 - ldrsh r0, [r5, r1] - cmp r0, #0xa - bne _08101660 - movs r2, #0x2e - ldrsh r1, [r5, r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _08101668 - adds r0, r0, r4 - bl DestroySprite - movs r0, #0x30 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - adds r0, r5, #0 - bl DestroyAnimSprite -_08101660: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08101668: .4byte gUnknown_20205AC - thumb_func_end unref_sub_8100D38 - - thumb_func_start sub_0810166C -sub_0810166C: @ 0x0810166C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0810168C - ldrh r0, [r4, #4] - strh r0, [r5, #0x2e] - ldr r0, _08101690 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08101694 - ldrh r0, [r5, #0x20] - ldrh r1, [r4] - subs r0, r0, r1 - b _0810169A - .align 2, 0 -_0810168C: .4byte gUnknown_20380BE -_08101690: .4byte gUnknown_20380D6 -_08101694: - ldrh r0, [r4] - ldrh r1, [r5, #0x20] - adds r0, r0, r1 -_0810169A: - strh r0, [r5, #0x20] - ldr r4, _081016C8 - ldrb r1, [r4, #0xa] - adds r0, r5, #0 - bl StartSpriteAnim - ldrh r0, [r4, #6] - rsbs r0, r0, #0 - strh r0, [r5, #0x30] - ldrh r0, [r4, #2] - ldrh r1, [r5, #0x22] - adds r0, r0, r1 - strh r0, [r5, #0x22] - ldrh r0, [r4, #8] - strh r0, [r5, #0x34] - ldr r1, _081016CC - str r1, [r5, #0x1c] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081016C8: .4byte gUnknown_20380BE -_081016CC: .4byte sub_081016D0 - thumb_func_end sub_0810166C - - thumb_func_start sub_081016D0 -sub_081016D0: @ 0x081016D0 - 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 _081016FC - adds r1, r4, #0 - adds r1, #0x43 - movs r0, #0 - b _08101702 -_081016FC: - adds r1, r4, #0 - adds r1, #0x43 - movs r0, #0xe -_08101702: - strb r0, [r1] - ldrh r0, [r4, #0x30] - ldrh r2, [r4, #0x2e] - adds r0, 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, r0, #0x10 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x26] - adds r0, r0, r1 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x34 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _08101738 - adds r0, r4, #0 - bl DestroyAnimSprite -_08101738: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081016D0 - - thumb_func_start sub_08101740 -sub_08101740: @ 0x08101740 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08101756 - ldr r1, _081017B4 - ldrh r0, [r1, #2] - adds r0, #8 - strh r0, [r1, #2] -_08101756: - ldr r6, _081017B8 - ldrb r0, [r6] - movs r1, #0 - bl GetBattlerSpriteCoord2 - lsls r0, r0, #0x18 - ldr r4, _081017B4 - lsrs r0, r0, #0x18 - ldrh r1, [r4] - adds r0, r0, r1 - strh r0, [r5, #0x20] - ldrb r0, [r6] - movs r1, #1 - bl GetBattlerSpriteCoord2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r4, [r4, #2] - adds r0, r0, r4 - strh r0, [r5, #0x22] - ldrb r0, [r6] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08101794 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081017BC -_08101794: - ldrb r0, [r6] - bl GetBattlerSpriteBGPriority - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #1 - movs r1, #3 - ands r0, r1 - lsls r0, r0, #2 - ldrb r2, [r5, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, #5] - b _081017D4 - .align 2, 0 -_081017B4: .4byte gUnknown_20380BE -_081017B8: .4byte gUnknown_20380D6 -_081017BC: - ldrb r0, [r6] - bl GetBattlerSpriteBGPriority - movs r1, #3 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r5, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #5] -_081017D4: - ldr r0, _08101818 - ldrh r0, [r0, #4] - strh r0, [r5, #0x2e] - ldr r0, _0810181C - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x14 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r0, r1 - strh r0, [r5, #0x32] - movs r4, #0x10 - movs r0, #0x10 - strh r0, [r5, #0x3c] - movs r1, #0xfd - lsls r1, r1, #6 - movs r0, #0x50 - bl SetGpuReg - ldrh r0, [r5, #0x3c] - lsls r1, r0, #8 - subs r4, r4, r0 - orrs r1, r4 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - ldr r0, _08101820 - str r0, [r5, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08101818: .4byte gUnknown_20380BE -_0810181C: .4byte 0x00002828 -_08101820: .4byte sub_08101824 - thumb_func_end sub_08101740 - - thumb_func_start sub_08101824 -sub_08101824: @ 0x08101824 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x38] - adds r0, #0x60 - strh r0, [r4, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - rsbs r0, r0, #0 - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _08101882 - movs r0, #0 - strh r0, [r4, #0x30] - ldr r1, _081018CC - movs r2, #0x32 - ldrsh r0, [r4, r2] - adds r0, #1 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r5, [r0] - movs r2, #0 - adds r6, r1, #0 - adds r3, r6, #0 -_0810185C: - movs r1, #0x32 - ldrsh r0, [r4, r1] - adds r2, #1 - adds r0, r0, r2 - lsls r1, r0, #1 - adds r1, r1, r3 - adds r0, #1 - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r0, [r0] - strh r0, [r1] - cmp r2, #5 - ble _0810185C - movs r2, #0x32 - ldrsh r0, [r4, r2] - adds r0, #7 - lsls r0, r0, #1 - adds r0, r0, r6 - strh r5, [r0] -_08101882: - ldrh r2, [r4, #0x3c] - movs r1, #0x3c - ldrsh r0, [r4, r1] - cmp r0, #6 - ble _081018BC - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - ble _081018D0 - ldrh r0, [r4, #0x3a] - adds r0, #1 - strh r0, [r4, #0x3a] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _081018BC - movs r0, #0 - strh r0, [r4, #0x3a] - subs r2, #1 - strh r2, [r4, #0x3c] - lsls r1, r2, #8 - movs r0, #0x10 - subs r0, r0, r2 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg -_081018BC: - ldrh r1, [r4, #0x2e] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r0, #0 - ble _081018D0 - subs r0, r1, #1 - strh r0, [r4, #0x2e] - b _08101912 - .align 2, 0 -_081018CC: .4byte gUnknown_20377B4 -_081018D0: - ldrh r0, [r4, #0x3a] - adds r0, #1 - strh r0, [r4, #0x3a] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _08101912 - movs r0, #0 - strh r0, [r4, #0x3a] - ldrh r2, [r4, #0x3c] - adds r2, #1 - strh r2, [r4, #0x3c] - lsls r1, r2, #8 - movs r0, #0x10 - subs r0, r0, r2 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r1, #0x3c - ldrsh r0, [r4, r1] - cmp r0, #0x10 - bne _08101912 - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08101918 - str r0, [r4, #0x1c] -_08101912: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08101918: .4byte sub_080A60BC - thumb_func_end sub_08101824 - - thumb_func_start sub_0810191C -sub_0810191C: @ 0x0810191C - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r6, _0810197C - ldrb r0, [r6] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r5, #0 - strh r0, [r4, #0x20] - ldrb r0, [r6] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08101980 - adds r0, 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] - movs r1, #0xfd - lsls r1, r1, #6 - movs r0, #0x50 - bl SetGpuReg - ldrh r1, [r4, #0x3c] - lsls r1, r1, #8 - ldrh r0, [r4, #0x3a] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - ldr r0, _08101984 - str r0, [r4, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0810197C: .4byte gUnknown_20380D7 -_08101980: .4byte 0x0000FFE8 -_08101984: .4byte sub_08101988 - thumb_func_end sub_0810191C - - thumb_func_start sub_08101988 -sub_08101988: @ 0x08101988 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #4 - bls _08101996 - b _08101AE0 -_08101996: - lsls r0, r0, #2 - ldr r1, _081019A0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081019A0: .4byte _081019A4 -_081019A4: @ jump table - .4byte _081019B8 @ case 0 - .4byte _08101A1C @ case 1 - .4byte _08101A38 @ case 2 - .4byte _08101AB6 @ case 3 - .4byte _08101ACA @ case 4 -_081019B8: - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _081019C6 - b _08101AE0 -_081019C6: - movs r0, #0 - strh r0, [r4, #0x32] - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _081019E8 - ldrh r1, [r4, #0x3a] - movs r2, #0x3a - ldrsh r0, [r4, r2] - cmp r0, #0xf - bgt _081019F6 - adds r0, r1, #1 - strh r0, [r4, #0x3a] - b _081019F6 -_081019E8: - ldrh r1, [r4, #0x3c] - movs r2, #0x3c - ldrsh r0, [r4, r2] - cmp r0, #0 - ble _081019F6 - subs r0, r1, #1 - strh r0, [r4, #0x3c] -_081019F6: - ldrh r1, [r4, #0x3c] - lsls r1, r1, #8 - ldrh r0, [r4, #0x3a] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r1, #0x3a - ldrsh r0, [r4, r1] - cmp r0, #0x10 - bne _08101AE0 - movs r2, #0x3c - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _08101AE0 - strh r0, [r4, #0x30] - b _08101AC2 -_08101A1C: - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #8 - ble _08101AE0 - movs r0, #0 - strh r0, [r4, #0x30] - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAffineAnim - b _08101AC2 -_08101A38: - adds r0, r4, #0 - movs r1, #0x10 - movs r2, #4 - bl sub_08101AE8 - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - ble _08101A5A - movs r0, #0 - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x22] - adds r0, #1 - strh r0, [r4, #0x22] -_08101A5A: - ldrh r0, [r4, #0x32] - adds r1, r0, #1 - strh r1, [r4, #0x32] - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1d - ble _08101AE0 - movs r0, #1 - ands r1, r0 - cmp r1, #0 - beq _08101A80 - ldrh r1, [r4, #0x3a] - movs r2, #0x3a - ldrsh r0, [r4, r2] - cmp r0, #0 - ble _08101A8E - subs r0, r1, #1 - strh r0, [r4, #0x3a] - b _08101A8E -_08101A80: - ldrh r1, [r4, #0x3c] - movs r2, #0x3c - ldrsh r0, [r4, r2] - cmp r0, #0xf - bgt _08101A8E - adds r0, r1, #1 - strh r0, [r4, #0x3c] -_08101A8E: - ldrh r1, [r4, #0x3c] - lsls r1, r1, #8 - ldrh r0, [r4, #0x3a] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r0, #0x3a - ldrsh r1, [r4, r0] - cmp r1, #0 - bne _08101AE0 - movs r2, #0x3c - ldrsh r0, [r4, r2] - cmp r0, #0x10 - bne _08101AE0 - strh r1, [r4, #0x30] - strh r1, [r4, #0x32] - b _08101AC2 -_08101AB6: - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] -_08101AC2: - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - b _08101AE0 -_08101ACA: - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - adds r0, r4, #0 - bl DestroyAnimSprite -_08101AE0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08101988 - - thumb_func_start sub_08101AE8 -sub_08101AE8: @ 0x08101AE8 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x34 - ldrsh r0, [r4, r1] - cmp r0, #0xb - bgt _08101AFA - ldrh r0, [r4, #0x36] - adds r0, #2 - strh r0, [r4, #0x36] -_08101AFA: - ldrh r5, [r4, #0x34] - adds r0, r5, #0 - subs r0, #0x12 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r5, #0 - cmp r0, #0x17 - bhi _08101B10 - ldrh r0, [r4, #0x36] - subs r0, #2 - strh r0, [r4, #0x36] -_08101B10: - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x2f - ble _08101B1E - ldrh r0, [r4, #0x36] - adds r0, #2 - strh r0, [r4, #0x36] -_08101B1E: - movs r1, #0x36 - ldrsh r0, [r4, r1] - movs r1, #9 - bl __divsi3 - strh r0, [r4, #0x24] - movs r1, #0x36 - ldrsh r0, [r4, r1] - movs r1, #0xe - bl __divsi3 - strh r0, [r4, #0x26] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _08101B44 - movs r1, #0x26 - ldrsh r0, [r4, r1] - rsbs r0, r0, #0 - strh r0, [r4, #0x26] -_08101B44: - adds r0, r5, #1 - strh r0, [r4, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3b - ble _08101B54 - movs r0, #0 - strh r0, [r4, #0x34] -_08101B54: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08101AE8 - - thumb_func_start sub_08101B5C -sub_08101B5C: @ 0x08101B5C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08101BA0 - movs r1, #4 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _08101B70 - adds r0, r4, #0 - bl SetSpriteCoordsToAnimAttackerCoords -_08101B70: - movs r0, #0 - ldrsh r1, [r5, r0] - adds r0, r4, #0 - bl SetAnimSpriteInitialXOffset - ldrh r0, [r5, #2] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] - ldrh r0, [r5, #0xa] - strh r0, [r4, #0x2e] - ldrh r0, [r5, #6] - strh r0, [r4, #0x30] - ldrh r0, [r5, #8] - strh r0, [r4, #0x32] - ldr r1, _08101BA4 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _08101BA8 - str r0, [r4, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08101BA0: .4byte gUnknown_20380BE -_08101BA4: .4byte DestroyAnimSprite -_08101BA8: .4byte TranslateSpriteLinearFixedPoint - thumb_func_end sub_08101B5C - - thumb_func_start sub_08101BAC -sub_08101BAC: @ 0x08101BAC - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r0, _08101BC0 - movs r1, #4 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08101BC8 - ldr r0, _08101BC4 - b _08101BCA - .align 2, 0 -_08101BC0: .4byte gUnknown_20380BE -_08101BC4: .4byte gUnknown_20380D6 -_08101BC8: - ldr r0, _08101C0C -_08101BCA: - ldrb r6, [r0] - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08101C14 - movs r1, #2 - adds r0, r6, #0 - eors r0, r1 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08101C14 - ldr r4, _08101C10 - ldrb r1, [r4, #0xc] - adds r2, r5, #0 - adds r2, #0x20 - adds r3, r5, #0 - adds r3, #0x22 - adds r0, r6, #0 - bl SetAverageBattlerPositions - movs r2, #0 - ldrsh r1, [r4, r2] - adds r0, r5, #0 - bl SetAnimSpriteInitialXOffset - ldrh r0, [r4, #2] - ldrh r1, [r5, #0x22] - adds r0, r0, r1 - strh r0, [r5, #0x22] - b _08101C64 - .align 2, 0 -_08101C0C: .4byte gUnknown_20380D7 -_08101C10: .4byte gUnknown_20380BE -_08101C14: - ldr r4, _08101C34 - movs r2, #0xc - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _08101C38 - adds r0, r6, #0 - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - adds r0, r6, #0 - movs r1, #1 - b _08101C4A - .align 2, 0 -_08101C34: .4byte gUnknown_20380BE -_08101C38: - adds r0, r6, #0 - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - adds r0, r6, #0 - movs r1, #3 -_08101C4A: - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r4, [r4, #2] - adds r0, r0, r4 - strh r0, [r5, #0x22] - ldr r0, _08101C84 - movs r2, #0 - ldrsh r1, [r0, r2] - adds r0, r5, #0 - bl SetAnimSpriteInitialXOffset -_08101C64: - ldr r1, _08101C84 - ldrh r0, [r1, #0xa] - strh r0, [r5, #0x2e] - ldrh r0, [r1, #6] - strh r0, [r5, #0x30] - ldrh r0, [r1, #8] - strh r0, [r5, #0x32] - ldr r1, _08101C88 - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _08101C8C - str r0, [r5, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08101C84: .4byte gUnknown_20380BE -_08101C88: .4byte DestroyAnimSprite -_08101C8C: .4byte TranslateSpriteLinearFixedPoint - thumb_func_end sub_08101BAC - - thumb_func_start sub_08101C90 -sub_08101C90: @ 0x08101C90 - push {r4, lr} - adds r4, r0, #0 - bl SetSpriteCoordsToAnimAttackerCoords - ldr r0, _08101CBC - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08101CC4 - ldr r0, _08101CC0 - ldrh r1, [r0] - ldrh r2, [r4, #0x20] - adds r1, r1, r2 - strh r1, [r4, #0x20] - ldrh r0, [r0, #2] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] - b _08101CDE - .align 2, 0 -_08101CBC: .4byte gUnknown_20380D6 -_08101CC0: .4byte gUnknown_20380BE -_08101CC4: - ldr r2, _08101CE8 - ldrh r0, [r4, #0x20] - ldrh r1, [r2] - subs r0, r0, r1 - strh r0, [r4, #0x20] - ldrh r0, [r2, #2] - ldrh r2, [r4, #0x22] - adds r0, r0, r2 - strh r0, [r4, #0x22] - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAnim -_08101CDE: - ldr r0, _08101CEC - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08101CE8: .4byte gUnknown_20380BE -_08101CEC: .4byte sub_08101CF0 - thumb_func_end sub_08101C90 - - thumb_func_start sub_08101CF0 -sub_08101CF0: @ 0x08101CF0 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1e - ble _08101D28 - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r0, #0x1e - subs r0, r0, r1 - movs r1, #3 - bl __divsi3 - strh r0, [r4, #0x26] - movs r1, #0x30 - ldrsh r0, [r4, r1] - lsls r0, r0, #0x12 - asrs r0, r0, #0x10 - movs r1, #3 - bl Sin - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] -_08101D28: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08101D3C - adds r0, r4, #0 - bl DestroyAnimSprite -_08101D3C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08101CF0 - - thumb_func_start sub_08101D44 -sub_08101D44: @ 0x08101D44 - push {r4, lr} - adds r4, r0, #0 - bl SetSpriteCoordsToAnimAttackerCoords - ldr r0, _08101D74 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08101D7C - ldr r1, _08101D78 - ldrh r0, [r1] - ldrh r2, [r4, #0x20] - adds r0, r0, r2 - strh r0, [r4, #0x20] - ldrh r0, [r1, #2] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] - movs r0, #1 - strh r0, [r4, #0x34] - b _08101D9A - .align 2, 0 -_08101D74: .4byte gUnknown_20380D6 -_08101D78: .4byte gUnknown_20380BE -_08101D7C: - ldr r2, _08101DA4 - ldrh r0, [r4, #0x20] - ldrh r1, [r2] - subs r0, r0, r1 - strh r0, [r4, #0x20] - ldrh r0, [r2, #2] - ldrh r2, [r4, #0x22] - adds r0, r0, r2 - strh r0, [r4, #0x22] - ldr r0, _08101DA8 - strh r0, [r4, #0x34] - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAffineAnim -_08101D9A: - ldr r0, _08101DAC - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08101DA4: .4byte gUnknown_20380BE -_08101DA8: .4byte 0x0000FFFF -_08101DAC: .4byte sub_08101DB0 - thumb_func_end sub_08101D44 - - thumb_func_start sub_08101DB0 -sub_08101DB0: @ 0x08101DB0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r1, #0x28 - bl __divsi3 - rsbs r0, r0, #0 - 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, r0, #1 - ldrh r2, [r4, #0x36] - adds r0, r0, r2 - strh r0, [r4, #0x36] - ldrh r0, [r4, #0x30] - ldrh r2, [r4, #0x2e] - adds r1, r0, r2 - strh r1, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3c - ble _08101DF4 - adds r0, r4, #0 - bl DestroySpriteAndMatrix -_08101DF4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08101DB0 - - thumb_func_start sub_08101DFC -sub_08101DFC: @ 0x08101DFC - 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, _08101E1C - str r1, [r0, #0x1c] - ldr r1, _08101E20 - bl StoreSpriteCallbackInData6 - pop {r0} - bx r0 - .align 2, 0 -_08101E1C: .4byte WaitAnimForDuration -_08101E20: .4byte sub_08101E24 - thumb_func_end sub_08101DFC - - thumb_func_start sub_08101E24 -sub_08101E24: @ 0x08101E24 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrh r6, [r5, #0x38] - movs r1, #1 - adds r0, r1, #0 - ands r0, r6 - cmp r0, #0 - beq _08101E3A - cmp r0, #1 - beq _08101E54 - b _08101EBA -_08101E3A: - strh r1, [r5, #0x2e] - ldr r0, _08101E4C - str r0, [r5, #0x1c] - ldr r1, _08101E50 - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - b _08101EBA - .align 2, 0 -_08101E4C: .4byte WaitAnimForDuration -_08101E50: .4byte sub_08101E24 -_08101E54: - ldrh r3, [r5, #0x24] - ldrh r0, [r5, #0x20] - adds r3, r3, r0 - movs r0, #0 - strh r3, [r5, #0x20] - ldrh r4, [r5, #0x26] - ldrh r1, [r5, #0x22] - adds r4, r4, r1 - strh r4, [r5, #0x22] - strh r0, [r5, #0x26] - strh r0, [r5, #0x24] - movs r0, #8 - strh r0, [r5, #0x2e] - ldr r2, _08101EC8 - lsls r0, r6, #0x10 - asrs r0, r0, #0x18 - lsls r0, r0, #1 - adds r1, r0, r2 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r3, r3, r1 - strh r3, [r5, #0x32] - adds r2, #1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r4, r4, r0 - strh r4, [r5, #0x36] - ldr r0, _08101ECC - str r0, [r5, #0x1c] - ldr r1, _08101ED0 - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r1, [r5, #0x38] - adds r0, r0, r1 - strh r0, [r5, #0x38] - movs r0, #0x3f - bl BattleAnimAdjustPanning - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r0, #0xd2 - bl PlaySE12WithPanning -_08101EBA: - ldrh r0, [r5, #0x38] - movs r1, #1 - eors r0, r1 - strh r0, [r5, #0x38] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08101EC8: .4byte gUnknown_856E8B4 -_08101ECC: .4byte sub_080A67B4 -_08101ED0: .4byte sub_08101ED4 - thumb_func_end sub_08101E24 - - thumb_func_start sub_08101ED4 -sub_08101ED4: @ 0x08101ED4 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - cmp r0, #4 - bne _08101EFC - movs r0, #0xa - strh r0, [r2, #0x2e] - ldr r0, _08101EF4 - str r0, [r2, #0x1c] - ldr r1, _08101EF8 - adds r0, r2, #0 - bl StoreSpriteCallbackInData6 - b _08101F00 - .align 2, 0 -_08101EF4: .4byte WaitAnimForDuration -_08101EF8: .4byte sub_08101F08 -_08101EFC: - ldr r0, _08101F04 - str r0, [r2, #0x1c] -_08101F00: - pop {r0} - bx r0 - .align 2, 0 -_08101F04: .4byte sub_08101E24 - thumb_func_end sub_08101ED4 - - thumb_func_start sub_08101F08 -sub_08101F08: @ 0x08101F08 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldrh r1, [r5, #6] - cmp r1, #0 - bne _08101F30 - movs r0, #3 - strh r0, [r5, #0x2e] - strh r1, [r5, #0x30] - strh r1, [r5, #0x32] - ldr r0, _08101F28 - str r0, [r5, #0x1c] - ldr r1, _08101F2C - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - b _08101FB0 - .align 2, 0 -_08101F28: .4byte WaitAnimForDuration -_08101F2C: .4byte sub_08101FC4 -_08101F30: - ldrh r0, [r5, #6] - cmp r0, #2 - beq _08101F50 - cmp r0, #2 - bgt _08101F40 - cmp r0, #1 - beq _08101F46 - b _08101F64 -_08101F40: - cmp r0, #3 - beq _08101F58 - b _08101F64 -_08101F46: - ldr r6, _08101F4C - adds r7, r6, #0 - b _08101F68 - .align 2, 0 -_08101F4C: .4byte 0x0000FFF8 -_08101F50: - ldr r7, _08101F54 - b _08101F66 - .align 2, 0 -_08101F54: .4byte 0x0000FFF8 -_08101F58: - movs r7, #8 - ldr r6, _08101F60 - b _08101F68 - .align 2, 0 -_08101F60: .4byte 0x0000FFF8 -_08101F64: - movs r7, #8 -_08101F66: - movs r6, #8 -_08101F68: - ldrh r0, [r5, #0x24] - ldrh r1, [r5, #0x20] - adds r0, r0, r1 - movs r1, #0 - strh r0, [r5, #0x20] - ldrh r0, [r5, #0x26] - ldrh r2, [r5, #0x22] - adds r0, r0, r2 - strh r0, [r5, #0x22] - strh r1, [r5, #0x26] - strh r1, [r5, #0x24] - movs r0, #6 - strh r0, [r5, #0x2e] - ldr r4, _08101FB8 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r7 - strh r0, [r5, #0x32] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r6 - strh r0, [r5, #0x36] - ldr r0, _08101FBC - str r0, [r5, #0x1c] - ldr r1, _08101FC0 - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 -_08101FB0: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08101FB8: .4byte gUnknown_20380D7 -_08101FBC: .4byte sub_080A67B4 -_08101FC0: .4byte sub_08102070 - thumb_func_end sub_08101F08 - - thumb_func_start sub_08101FC4 -sub_08101FC4: @ 0x08101FC4 - push {r4, lr} - sub sp, #0xc - adds r4, r0, #0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08101FE4 - ldrh r0, [r4, #0x30] - adds r0, #3 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x10 - ble _08101FF4 - movs r0, #0x10 - b _08101FF2 -_08101FE4: - ldrh r0, [r4, #0x30] - subs r0, #3 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _08101FF4 - movs r0, #0 -_08101FF2: - strh r0, [r4, #0x30] -_08101FF4: - movs r0, #1 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r2, #1 - movs r3, #1 - bl sub_080A6E74 - ldrh r1, [r4, #0x30] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _08102050 - bl BlendPalettes - movs r3, #0x30 - ldrsh r0, [r4, r3] - cmp r0, #0x10 - bne _0810205C - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - ldrb r1, [r4, #5] - lsrs r1, r1, #4 - lsls r0, r1, #5 - ldr r2, _08102054 - adds r0, r0, r2 - lsls r1, r1, #4 - ldr r3, _08102058 - adds r2, r3, #0 - orrs r1, r2 - movs r2, #4 - bl LoadPalette - movs r0, #0x3f - bl BattleAnimAdjustPanning - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r0, #0xc0 - bl PlaySE12WithPanning - b _08102064 - .align 2, 0 -_08102050: .4byte 0x00007FFF -_08102054: .4byte gUnknown_20375C4 -_08102058: .4byte 0x00000101 -_0810205C: - cmp r0, #0 - bne _08102064 - ldr r0, _0810206C - str r0, [r4, #0x1c] -_08102064: - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810206C: .4byte sub_08102070 - thumb_func_end sub_08101FC4 - - thumb_func_start sub_08102070 -sub_08102070: @ 0x08102070 - push {lr} - adds r2, r0, #0 - ldr r0, _0810208C - ldrh r1, [r0, #0xe] - ldr r0, _08102090 - cmp r1, r0 - bne _08102088 - movs r0, #0 - strh r0, [r2, #0x30] - strh r0, [r2, #0x2e] - ldr r0, _08102094 - str r0, [r2, #0x1c] -_08102088: - pop {r0} - bx r0 - .align 2, 0 -_0810208C: .4byte gUnknown_20380BE -_08102090: .4byte 0x0000FFFF -_08102094: .4byte sub_08102098 - thumb_func_end sub_08102070 - - thumb_func_start sub_08102098 -sub_08102098: @ 0x08102098 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r1, #3 - bl __modsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _081020CC - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - adds r3, r4, #0 - adds r3, #0x3e - ldrb r2, [r3] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_081020CC: - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - movs r1, #0x30 - ldrsh r0, [r4, r1] - cmp r0, #8 - bne _081020E0 - adds r0, r4, #0 - bl DestroyAnimSprite -_081020E0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08102098 - - thumb_func_start sub_081020E8 -sub_081020E8: @ 0x081020E8 - push {r4, lr} - adds r3, r0, #0 - ldr r0, _08102108 - ldrh r0, [r0] - strh r0, [r3, #6] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - bne _0810210C - ldrh r0, [r3, #0x20] - subs r0, #0x18 - strh r0, [r3, #0x20] - ldrh r0, [r3, #0x22] - subs r0, #0x18 - strh r0, [r3, #0x22] - b _0810215E - .align 2, 0 -_08102108: .4byte gUnknown_20380BE -_0810210C: - cmp r0, #2 - bne _08102128 - 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, #3] - movs r0, #0x3f - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x20 - b _0810215A -_08102128: - cmp r0, #3 - bne _08102144 - 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, #3] - movs r0, #0x3f - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x10 - b _0810215A -_08102144: - 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, #3] - movs r0, #0x3f - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x30 -_0810215A: - orrs r0, r1 - strb r0, [r3, #3] -_0810215E: - ldrh r2, [r3, #4] - lsls r1, r2, #0x16 - lsrs r1, r1, #0x16 - adds r1, #0x10 - ldr r4, _08102184 - adds r0, r4, #0 - ands r1, r0 - ldr r0, _08102188 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, #4] - ldr r1, _0810218C - str r1, [r3, #0x1c] - adds r0, r3, #0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08102184: .4byte 0x000003FF -_08102188: .4byte 0xFFFFFC00 -_0810218C: .4byte sub_08101DFC - thumb_func_end sub_081020E8 - - thumb_func_start sub_08102190 -sub_08102190: @ 0x08102190 - push {lr} - adds r3, r0, #0 - adds r2, r3, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - movs r0, #0 - strh r0, [r3, #0x2e] - ldr r0, _081021B8 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #1 - beq _081021CC - cmp r0, #1 - bgt _081021BC - cmp r0, #0 - beq _081021C2 - b _081021DC - .align 2, 0 -_081021B8: .4byte gUnknown_20380BE -_081021BC: - cmp r0, #2 - beq _081021D4 - b _081021DC -_081021C2: - ldr r0, _081021C8 - b _081021DE - .align 2, 0 -_081021C8: .4byte sub_081021E8 -_081021CC: - ldr r0, _081021D0 - b _081021DE - .align 2, 0 -_081021D0: .4byte sub_081022C4 -_081021D4: - ldr r0, _081021D8 - b _081021DE - .align 2, 0 -_081021D8: .4byte sub_08102314 -_081021DC: - ldr r0, _081021E4 -_081021DE: - str r0, [r3, #0x1c] - pop {r0} - bx r0 - .align 2, 0 -_081021E4: .4byte sub_081023D4 - thumb_func_end sub_08102190 - - thumb_func_start sub_081021E8 -sub_081021E8: @ 0x081021E8 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #6 - strh r0, [r4, #0x2e] - ldr r5, _08102228 - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, r0, #0x18 - movs r2, #2 - rsbs r2, r2, #0 - adds r1, r2, #0 - cmp r0, #0 - beq _08102206 - movs r1, #2 -_08102206: - strh r1, [r4, #0x30] - movs r0, #0 - strh r0, [r4, #0x32] - ldr r1, _0810222C - ldrb r0, [r5] - adds r0, r0, r1 - ldrb r0, [r0] - strh r0, [r4, #0x34] - ldr r1, _08102230 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _08102234 - str r0, [r4, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08102228: .4byte gUnknown_20380D6 -_0810222C: .4byte gUnknown_2023E88 -_08102230: .4byte sub_08102238 -_08102234: .4byte TranslateMonSpriteLinear - thumb_func_end sub_081021E8 - - thumb_func_start sub_08102238 -sub_08102238: @ 0x08102238 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #0x2e - ldrsh r6, [r5, r0] - cmp r6, #0 - bne _08102274 - ldr r1, _081022B4 - ldr r4, _081022B8 - ldrb r0, [r4] - adds r0, r0, r1 - ldrb r0, [r0] - strh r0, [r5, #0x34] - movs r1, #0 - bl PrepareBattlerSpriteForRotScale - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x3a] - ldr r2, _081022BC - adds r1, r2, #0 - cmp r0, #0 - beq _08102270 - movs r0, #0xc0 - lsls r0, r0, #2 - adds r1, r0, #0 -_08102270: - strh r1, [r5, #0x36] - strh r6, [r5, #0x38] -_08102274: - ldrh r0, [r5, #0x36] - ldrh r1, [r5, #0x38] - adds r0, r0, r1 - strh r0, [r5, #0x38] - ldrh r0, [r5, #0x34] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0x80 - lsls r2, r2, #1 - ldrh r3, [r5, #0x38] - adds r1, r2, #0 - bl SetSpriteRotScale - ldrh r0, [r5, #0x34] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl SetBattlerSpriteYOffsetFromRotation - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - ble _081022AE - movs r0, #0 - strh r0, [r5, #0x2e] - ldr r0, _081022C0 - str r0, [r5, #0x1c] -_081022AE: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081022B4: .4byte gUnknown_2023E88 -_081022B8: .4byte gUnknown_20380D6 -_081022BC: .4byte 0xFFFFFD00 -_081022C0: .4byte sub_081023D4 - thumb_func_end sub_08102238 - - thumb_func_start sub_081022C4 -sub_081022C4: @ 0x081022C4 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #4 - strh r0, [r4, #0x2e] - ldr r5, _08102304 - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, r0, #0x18 - movs r1, #3 - cmp r0, #0 - beq _081022E2 - movs r0, #3 - rsbs r0, r0, #0 - adds r1, r0, #0 -_081022E2: - strh r1, [r4, #0x30] - movs r0, #0 - strh r0, [r4, #0x32] - ldr r1, _08102308 - ldrb r0, [r5] - adds r0, r0, r1 - ldrb r0, [r0] - strh r0, [r4, #0x34] - ldr r1, _0810230C - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _08102310 - str r0, [r4, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08102304: .4byte gUnknown_20380D6 -_08102308: .4byte gUnknown_2023E88 -_0810230C: .4byte sub_081023D4 -_08102310: .4byte TranslateMonSpriteLinear - thumb_func_end sub_081022C4 - - thumb_func_start sub_08102314 -sub_08102314: @ 0x08102314 - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0x2e] - adds r0, #1 - strh r0, [r1, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #8 - ble _0810232E - movs r0, #0 - strh r0, [r1, #0x2e] - ldr r0, _08102334 - str r0, [r1, #0x1c] -_0810232E: - pop {r0} - bx r0 - .align 2, 0 -_08102334: .4byte sub_08102338 - thumb_func_end sub_08102314 - - thumb_func_start sub_08102338 -sub_08102338: @ 0x08102338 - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _08102388 - ldr r1, _08102374 - ldr r4, _08102378 - ldrb r0, [r4] - adds r0, r0, r1 - ldrb r0, [r0] - strh r0, [r5, #0x34] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x3a] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810237C - movs r0, #0xfc - lsls r0, r0, #8 - strh r0, [r5, #0x36] - movs r0, #0xc0 - lsls r0, r0, #4 - b _08102386 - .align 2, 0 -_08102374: .4byte gUnknown_2023E88 -_08102378: .4byte gUnknown_20380D6 -_0810237C: - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r5, #0x36] - movs r0, #0xf4 - lsls r0, r0, #8 -_08102386: - strh r0, [r5, #0x38] -_08102388: - ldrh r0, [r5, #0x36] - ldrh r1, [r5, #0x38] - adds r0, r0, r1 - strh r0, [r5, #0x38] - ldrh r0, [r5, #0x34] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0x80 - lsls r2, r2, #1 - ldrh r3, [r5, #0x38] - adds r1, r2, #0 - bl SetSpriteRotScale - ldrh r0, [r5, #0x34] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl SetBattlerSpriteYOffsetFromRotation - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - ble _081023C8 - ldrh r0, [r5, #0x34] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl ResetSpriteRotScale - ldr r0, _081023D0 - str r0, [r5, #0x1c] -_081023C8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081023D0: .4byte sub_081023D4 - thumb_func_end sub_08102338 - - thumb_func_start sub_081023D4 -sub_081023D4: @ 0x081023D4 - push {lr} - bl DestroyAnimSprite - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081023D4 - - thumb_func_start sub_081023E0 -sub_081023E0: @ 0x081023E0 - movs r1, #0 - strh r1, [r0, #0x2e] - ldr r1, _081023EC - str r1, [r0, #0x1c] - bx lr - .align 2, 0 -_081023EC: .4byte sub_081023F0 - thumb_func_end sub_081023E0 - - thumb_func_start sub_081023F0 -sub_081023F0: @ 0x081023F0 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r5, [r4, r0] - cmp r5, #1 - beq _0810244A - cmp r5, #1 - bgt _08102406 - cmp r5, #0 - beq _0810240C - b _081024DE -_08102406: - cmp r5, #2 - beq _0810249C - b _081024DE -_0810240C: - strh r5, [r4, #0x30] - ldr r1, _08102490 - ldr r2, _08102494 - ldrb r0, [r2] - adds r0, r0, r1 - ldrb r0, [r0] - strh r0, [r4, #0x32] - ldrb r0, [r2] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x34] - ldr r2, _08102498 - adds r1, r2, #0 - cmp r0, #0 - beq _08102434 - movs r0, #0x80 - lsls r0, r0, #2 - adds r1, r0, #0 -_08102434: - strh r1, [r4, #0x36] - strh r5, [r4, #0x38] - ldrh r0, [r4, #0x32] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl PrepareBattlerSpriteForRotScale - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] -_0810244A: - ldrh r0, [r4, #0x36] - ldrh r1, [r4, #0x38] - adds r0, r0, r1 - strh r0, [r4, #0x38] - ldrh r0, [r4, #0x32] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0x80 - lsls r2, r2, #1 - ldrh r3, [r4, #0x38] - adds r1, r2, #0 - bl SetSpriteRotScale - ldrh r0, [r4, #0x32] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl SetBattlerSpriteYOffsetFromRotation - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - ble _081024DE - movs r0, #0 - strh r0, [r4, #0x30] - movs r2, #0x36 - ldrsh r0, [r4, r2] - rsbs r0, r0, #0 - strh r0, [r4, #0x36] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - b _081024DE - .align 2, 0 -_08102490: .4byte gUnknown_2023E88 -_08102494: .4byte gUnknown_20380D6 -_08102498: .4byte 0xFFFFFE00 -_0810249C: - ldrh r0, [r4, #0x36] - ldrh r1, [r4, #0x38] - adds r0, r0, r1 - strh r0, [r4, #0x38] - ldrh r0, [r4, #0x32] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0x80 - lsls r2, r2, #1 - ldrh r3, [r4, #0x38] - adds r1, r2, #0 - bl SetSpriteRotScale - ldrh r0, [r4, #0x32] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl SetBattlerSpriteYOffsetFromRotation - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - ble _081024DE - ldrh r0, [r4, #0x32] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl ResetSpriteRotScale - adds r0, r4, #0 - bl DestroyAnimSprite -_081024DE: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_081023F0 - - thumb_func_start sub_081024E4 -sub_081024E4: @ 0x081024E4 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _08102528 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r5, r0, r1 - ldr r1, _0810252C - ldr r2, _08102530 - ldrb r0, [r2] - adds r0, r0, r1 - ldrb r0, [r0] - movs r4, #0 - strh r0, [r5, #8] - ldrb r0, [r2] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - strh r2, [r5, #0xa] - strh r4, [r5, #0xc] - ldr r0, _08102534 - movs r3, #0 - ldrsh r1, [r0, r3] - cmp r1, #0 - beq _08102538 - cmp r1, #1 - beq _08102554 - adds r0, r6, #0 - bl DestroyAnimVisualTask - b _08102572 - .align 2, 0 -_08102528: .4byte gUnknown_3005B60 -_0810252C: .4byte gUnknown_2023E88 -_08102530: .4byte gUnknown_20380D6 -_08102534: .4byte gUnknown_20380BE -_08102538: - strh r1, [r5, #0xc] - movs r0, #8 - strh r0, [r5, #0xe] - strh r1, [r5, #0x10] - movs r0, #3 - strh r0, [r5, #0x12] - cmp r2, #0 - bne _0810254C - rsbs r0, r0, #0 - strh r0, [r5, #0x12] -_0810254C: - ldr r0, _08102550 - b _08102570 - .align 2, 0 -_08102550: .4byte sub_0810257C -_08102554: - movs r0, #8 - strh r0, [r5, #0xe] - movs r0, #0xc0 - lsls r0, r0, #3 - strh r0, [r5, #0x10] - movs r1, #0xc0 - strh r1, [r5, #0x12] - cmp r2, #0 - bne _0810256E - rsbs r0, r0, #0 - strh r0, [r5, #0x10] - rsbs r0, r1, #0 - strh r0, [r5, #0x12] -_0810256E: - ldr r0, _08102578 -_08102570: - str r0, [r5] -_08102572: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08102578: .4byte sub_0810273C - thumb_func_end sub_081024E4 - - thumb_func_start sub_0810257C -sub_0810257C: @ 0x0810257C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _081025A0 - adds r4, r0, r1 - movs r1, #0xc - ldrsh r0, [r4, r1] - cmp r0, #4 - bls _08102596 - b _08102736 -_08102596: - lsls r0, r0, #2 - ldr r1, _081025A4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081025A0: .4byte gUnknown_3005B60 -_081025A4: .4byte _081025A8 -_081025A8: @ jump table - .4byte _081025BC @ case 0 - .4byte _081025EE @ case 1 - .4byte _08102648 @ case 2 - .4byte _081026C0 @ case 3 - .4byte _08102704 @ case 4 -_081025BC: - movs r2, #0xe - ldrsh r1, [r4, r2] - cmp r1, #0 - beq _081025CC - ldrh r2, [r4, #0x12] - ldrh r3, [r4, #0x10] - adds r2, r2, r3 - b _08102712 -_081025CC: - movs r0, #8 - strh r0, [r4, #0xe] - strh r1, [r4, #0x10] - movs r1, #0xa - ldrsh r0, [r4, r1] - movs r1, #0xc0 - cmp r0, #0 - bne _081025E2 - movs r2, #0xc0 - rsbs r2, r2, #0 - adds r1, r2, #0 -_081025E2: - strh r1, [r4, #0x12] - ldrb r0, [r4, #8] - movs r1, #0 - bl PrepareBattlerSpriteForRotScale - b _081026F8 -_081025EE: - movs r3, #0xe - ldrsh r0, [r4, r3] - cmp r0, #0 - beq _08102614 - ldrh r0, [r4, #0x12] - ldrh r1, [r4, #0x10] - adds r0, r0, r1 - strh r0, [r4, #0x10] - ldrb r0, [r4, #8] - movs r2, #0x80 - lsls r2, r2, #1 - ldrh r3, [r4, #0x10] - adds r1, r2, #0 - bl SetSpriteRotScale - ldrb r0, [r4, #8] - bl SetBattlerSpriteYOffsetFromRotation - b _08102724 -_08102614: - movs r0, #8 - strh r0, [r4, #0xe] - ldr r2, _08102644 - movs r3, #8 - ldrsh r1, [r4, r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0, #0x24] - strh r0, [r4, #0x10] - movs r1, #0xa - ldrsh r0, [r4, r1] - movs r2, #2 - rsbs r2, r2, #0 - adds r1, r2, #0 - cmp r0, #0 - bne _0810263A - movs r1, #2 -_0810263A: - strh r1, [r4, #0x12] - movs r0, #1 - strh r0, [r4, #0x14] - b _081026F8 - .align 2, 0 -_08102644: .4byte gUnknown_20205AC -_08102648: - ldrh r2, [r4, #0xe] - movs r3, #0xe - ldrsh r0, [r4, r3] - cmp r0, #0 - beq _081026A4 - ldrh r1, [r4, #0x14] - movs r3, #0x14 - ldrsh r0, [r4, r3] - cmp r0, #0 - beq _08102662 - subs r0, r1, #1 - strh r0, [r4, #0x14] - b _08102736 -_08102662: - movs r0, #1 - ands r0, r2 - cmp r0, #0 - beq _08102684 - ldr r2, _08102680 - movs r0, #8 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r4, #0x12] - ldrh r2, [r4, #0x10] - adds r1, r1, r2 - b _08102698 - .align 2, 0 -_08102680: .4byte gUnknown_20205AC -_08102684: - ldr r2, _081026A0 - movs r3, #8 - ldrsh r1, [r4, r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r4, #0x10] - ldrh r2, [r4, #0x12] - subs r1, r1, r2 -_08102698: - strh r1, [r0, #0x24] - movs r0, #1 - strh r0, [r4, #0x14] - b _08102724 - .align 2, 0 -_081026A0: .4byte gUnknown_20205AC -_081026A4: - ldr r2, _081026BC - movs r0, #8 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r4, #0x10] - strh r1, [r0, #0x24] - movs r0, #0xc - strh r0, [r4, #0xe] - b _081026F8 - .align 2, 0 -_081026BC: .4byte gUnknown_20205AC -_081026C0: - ldrh r1, [r4, #0xe] - movs r2, #0xe - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _081026D0 - subs r0, r1, #1 - strh r0, [r4, #0xe] - b _08102736 -_081026D0: - movs r0, #3 - strh r0, [r4, #0xe] - ldr r2, _08102700 - movs r3, #8 - ldrsh r1, [r4, r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0, #0x24] - strh r0, [r4, #0x10] - movs r1, #0xa - ldrsh r0, [r4, r1] - movs r2, #8 - rsbs r2, r2, #0 - adds r1, r2, #0 - cmp r0, #0 - bne _081026F6 - movs r1, #8 -_081026F6: - strh r1, [r4, #0x12] -_081026F8: - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - b _08102736 - .align 2, 0 -_08102700: .4byte gUnknown_20205AC -_08102704: - movs r3, #0xe - ldrsh r0, [r4, r3] - cmp r0, #0 - beq _08102730 - ldrh r2, [r4, #0x12] - ldrh r0, [r4, #0x10] - adds r2, r2, r0 -_08102712: - strh r2, [r4, #0x10] - ldr r3, _0810272C - movs r0, #8 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r2, [r0, #0x24] -_08102724: - ldrh r0, [r4, #0xe] - subs r0, #1 - strh r0, [r4, #0xe] - b _08102736 - .align 2, 0 -_0810272C: .4byte gUnknown_20205AC -_08102730: - adds r0, r2, #0 - bl DestroyAnimVisualTask -_08102736: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0810257C - - thumb_func_start sub_0810273C -sub_0810273C: @ 0x0810273C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _08102778 - adds r4, r0, r1 - movs r1, #0xe - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0810277C - ldrh r0, [r4, #0x10] - ldrh r1, [r4, #0x12] - subs r0, r0, r1 - strh r0, [r4, #0x10] - ldrb r0, [r4, #8] - movs r2, #0x80 - lsls r2, r2, #1 - ldrh r3, [r4, #0x10] - adds r1, r2, #0 - bl SetSpriteRotScale - ldrb r0, [r4, #8] - bl SetBattlerSpriteYOffsetFromRotation - ldrh r0, [r4, #0xe] - subs r0, #1 - strh r0, [r4, #0xe] - b _08102788 - .align 2, 0 -_08102778: .4byte gUnknown_3005B60 -_0810277C: - ldrb r0, [r4, #8] - bl ResetSpriteRotScale - adds r0, r5, #0 - bl DestroyAnimVisualTask -_08102788: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0810273C - - thumb_func_start sub_08102790 -sub_08102790: @ 0x08102790 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r6, _081027A4 - movs r1, #0 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _081027AC - ldr r4, _081027A8 - b _081027AE - .align 2, 0 -_081027A4: .4byte gUnknown_20380BE -_081027A8: .4byte gUnknown_20380D6 -_081027AC: - ldr r4, _081027EC -_081027AE: - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r6, #2] - adds r0, r0, r1 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r6, [r6, #4] - adds r0, r0, r6 - strh r0, [r5, #0x22] - movs r0, #0 - strh r0, [r5, #0x2e] - strh r0, [r5, #0x30] - ldr r1, _081027F0 - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _081027F4 - str r0, [r5, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081027EC: .4byte gUnknown_20380D7 -_081027F0: .4byte sub_081028DC -_081027F4: .4byte RunStoredCallbackWhenAnimEnds - thumb_func_end sub_08102790 - - thumb_func_start sub_081027F8 -sub_081027F8: @ 0x081027F8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08102830 - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08102834 - adds r0, r0, r1 - strh r0, [r4, #0x20] - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x22] - ldr r1, _08102838 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _0810283C - str r0, [r4, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08102830: .4byte gUnknown_20380D7 -_08102834: .4byte 0x0000FFD0 -_08102838: .4byte sub_08102894 -_0810283C: .4byte RunStoredCallbackWhenAnimEnds - thumb_func_end sub_081027F8 - - thumb_func_start sub_08102840 -sub_08102840: @ 0x08102840 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r5, _08102884 - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08102888 - ldr r2, _0810288C - adds r0, r0, r2 - ldrh r1, [r1] - adds r0, r0, r1 - movs r6, #0 - strh r0, [r4, #0x20] - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x22] - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAnim - strh r6, [r4, #0x2e] - strh r6, [r4, #0x30] - ldr r0, _08102890 - str r0, [r4, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08102884: .4byte gUnknown_20380D7 -_08102888: .4byte gUnknown_20380BE -_0810288C: .4byte 0x0000FFD0 -_08102890: .4byte sub_081028DC - thumb_func_end sub_08102840 - - thumb_func_start sub_08102894 -sub_08102894: @ 0x08102894 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #8 - ble _081028BE - movs r0, #0xc - strh r0, [r4, #0x2e] - movs r0, #8 - strh r0, [r4, #0x30] - movs r0, #0 - strh r0, [r4, #0x32] - ldr r1, _081028C4 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _081028C8 - str r0, [r4, #0x1c] -_081028BE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081028C4: .4byte sub_081028CC -_081028C8: .4byte TranslateSpriteLinear - thumb_func_end sub_08102894 - - thumb_func_start sub_081028CC -sub_081028CC: @ 0x081028CC - movs r1, #0 - strh r1, [r0, #0x2e] - strh r1, [r0, #0x30] - ldr r1, _081028D8 - str r1, [r0, #0x1c] - bx lr - .align 2, 0 -_081028D8: .4byte sub_081028DC - thumb_func_end sub_081028CC - - thumb_func_start sub_081028DC -sub_081028DC: @ 0x081028DC - push {lr} - adds r3, r0, #0 - ldrh r0, [r3, #0x2e] - adds r0, #1 - strh r0, [r3, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _08102924 - movs r0, #0 - strh r0, [r3, #0x2e] - movs r0, #0x3e - adds r0, r0, r3 - mov ip, r0 - ldrb r2, [r0] - lsrs r1, r2, #2 - movs r0, #1 - eors r1, r0 - ands r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - ldrh r0, [r3, #0x30] - adds r0, #1 - strh r0, [r3, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #8 - ble _08102924 - adds r0, r3, #0 - bl DestroyAnimSprite -_08102924: - pop {r0} - bx r0 - thumb_func_end sub_081028DC - - thumb_func_start sub_08102928 -sub_08102928: @ 0x08102928 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r6, _0810293C - movs r1, #0 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _08102944 - ldr r4, _08102940 - b _08102946 - .align 2, 0 -_0810293C: .4byte gUnknown_20380BE -_08102940: .4byte gUnknown_20380D6 -_08102944: - ldr r4, _08102980 -_08102946: - ldrb r0, [r4] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r6, #2] - adds r0, r0, r1 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r6, [r6, #4] - adds r0, r0, r6 - strh r0, [r5, #0x22] - movs r0, #0 - strh r0, [r5, #0x2e] - ldr r0, _08102984 - ldrh r0, [r0, #6] - strh r0, [r5, #0x30] - ldr r0, _08102988 - str r0, [r5, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08102980: .4byte gUnknown_20380D7 -_08102984: .4byte gUnknown_20380BE -_08102988: .4byte sub_0810298C - thumb_func_end sub_08102928 - - thumb_func_start sub_0810298C -sub_0810298C: @ 0x0810298C - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x2e] - adds r0, #1 - strh r0, [r2, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r3, #0x30 - ldrsh r1, [r2, r3] - cmp r0, r1 - ble _081029AC - movs r0, #0 - strh r0, [r2, #0x2e] - ldrh r0, [r2, #0x22] - subs r0, #1 - strh r0, [r2, #0x22] -_081029AC: - ldrh r0, [r2, #0x22] - ldrh r1, [r2, #0x2e] - subs r0, 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 _081029C8 - adds r0, r2, #0 - bl DestroyAnimSprite -_081029C8: - pop {r0} - bx r0 - thumb_func_end sub_0810298C - - thumb_func_start sub_081029CC -sub_081029CC: @ 0x081029CC - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r6, _08102A14 - ldrb r0, [r6] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r5, #0 - strh r0, [r4, #0x20] - ldrb r0, [r6] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, #0xc - strh r0, [r4, #0x22] - strh r5, [r4, #0x2e] - movs r0, #2 - strh r0, [r4, #0x30] - strh r5, [r4, #0x32] - strh r5, [r4, #0x34] - strh r5, [r4, #0x36] - subs r0, #0x42 - bl BattleAnimAdjustPanning - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - strh r0, [r4, #0x38] - ldr r0, _08102A18 - str r0, [r4, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08102A14: .4byte gUnknown_20380D6 -_08102A18: .4byte sub_08102A1C - thumb_func_end sub_081029CC - - thumb_func_start sub_08102A1C -sub_08102A1C: @ 0x08102A1C - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x30 - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _08102A88 - adds r3, r4, #0 - adds r3, #0x3e - ldrb r2, [r3] - lsrs r1, r2, #2 - movs r0, #1 - eors r1, r0 - ands r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r1, #4 - ands r0, r1 - cmp r0, #0 - bne _08102A6E - ldrh r0, [r4, #0x36] - adds r0, #1 - strh r0, [r4, #0x36] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08102A6E - ldrh r1, [r4, #0x38] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r0, #0xc2 - bl PlaySE12WithPanning -_08102A6E: - movs r1, #0 - strh r1, [r4, #0x2e] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _08102A88 - strh r1, [r4, #0x32] - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] -_08102A88: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08102AB2 - movs r1, #0x30 - ldrsh r0, [r4, r1] - cmp r0, #0x10 - ble _08102AB2 - adds r0, r4, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08102AB2 - adds r0, r4, #0 - bl DestroyAnimSprite -_08102AB2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08102A1C - - thumb_func_start sub_08102AB8 -sub_08102AB8: @ 0x08102AB8 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r1, #0x2e - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _08102B02 - ldr r4, _08102B18 - ldrb r0, [r4] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - ldr r5, _08102B1C - lsrs r0, r0, #0x18 - ldrh r1, [r5] - adds r0, r0, r1 - strh r0, [r6, #0x20] - ldrb r0, [r4] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r5, [r5, #2] - adds r0, r0, r5 - strh r0, [r6, #0x22] - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08102AFC - ldrh r0, [r6, #0x22] - adds r0, #0xa - strh r0, [r6, #0x22] -_08102AFC: - ldrh r0, [r6, #0x2e] - adds r0, #1 - strh r0, [r6, #0x2e] -_08102B02: - ldr r0, _08102B1C - ldrh r1, [r0, #0xe] - ldr r0, _08102B20 - cmp r1, r0 - bne _08102B12 - adds r0, r6, #0 - bl DestroyAnimSprite -_08102B12: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08102B18: .4byte gUnknown_20380D6 -_08102B1C: .4byte gUnknown_20380BE -_08102B20: .4byte 0x0000FFFF - thumb_func_end sub_08102AB8 - - thumb_func_start sub_08102B24 -sub_08102B24: @ 0x08102B24 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _08102B44 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #0xc - ldrsh r0, [r4, r1] - cmp r0, #1 - bne _08102B50 - ldr r1, _08102B48 - ldr r0, _08102B4C - strh r0, [r1, #0xe] - b _08102B8E - .align 2, 0 -_08102B44: .4byte gUnknown_3005B60 -_08102B48: .4byte gUnknown_20380BE -_08102B4C: .4byte 0x0000FFFF -_08102B50: - cmp r0, #2 - bne _08102B5C - adds r0, r2, #0 - bl DestroyAnimVisualTask - b _08102B94 -_08102B5C: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - bne _08102B94 - movs r0, #0 - strh r0, [r4, #8] - ldrh r2, [r4, #0xa] - adds r2, #1 - strh r2, [r4, #0xa] - lsls r1, r2, #8 - movs r0, #0x10 - subs r0, r0, r2 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0x10 - bne _08102B94 -_08102B8E: - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] -_08102B94: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08102B24 - - thumb_func_start sub_08102B9C -sub_08102B9C: @ 0x08102B9C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl InitSpritePosToAnimTarget - adds r2, r4, #0 - adds r2, #0x2c - ldrb r0, [r2] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08102BC4 - ldrh r0, [r0, #4] - strh r0, [r4, #0x2e] - ldr r0, _08102BC8 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08102BC4: .4byte gUnknown_20380BE -_08102BC8: .4byte sub_08102BCC - thumb_func_end sub_08102B9C - - thumb_func_start sub_08102BCC -sub_08102BCC: @ 0x08102BCC - push {r4, r5, lr} - adds r5, r0, #0 - ldrh r1, [r5, #0x2e] - movs r2, #0x2e - ldrsh r0, [r5, r2] - cmp r0, #0 - beq _08102BE0 - subs r0, r1, #1 - strh r0, [r5, #0x2e] - b _08102C1C -_08102BE0: - adds r2, r5, #0 - adds r2, #0x2c - ldrb r1, [r2] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - movs r0, #0x1e - strh r0, [r5, #0x2e] - ldr r4, _08102C24 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x32] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x36] - ldr r0, _08102C28 - str r0, [r5, #0x1c] - ldr r1, _08102C2C - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 -_08102C1C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08102C24: .4byte gUnknown_20380D6 -_08102C28: .4byte sub_080A67B4 -_08102C2C: .4byte DestroyAnimSprite - thumb_func_end sub_08102BCC - - thumb_func_start sub_08102C30 -sub_08102C30: @ 0x08102C30 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _08102C80 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - bne _08102C78 - movs r0, #0 - strh r0, [r4, #8] - ldrh r1, [r4, #0xa] - adds r1, #1 - strh r1, [r4, #0xa] - movs r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0x10 - bne _08102C78 - adds r0, r5, #0 - bl DestroyAnimVisualTask -_08102C78: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08102C80: .4byte gUnknown_3005B60 - thumb_func_end sub_08102C30 - - thumb_func_start unref_sub_8102434 -unref_sub_8102434: @ 0x08102C84 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r4, #0 - ldr r0, _08102CEC - ldrb r0, [r0] - cmp r4, r0 - bhs _08102CE0 - ldr r6, _08102CF0 - ldr r5, _08102CF4 -_08102C98: - movs r1, #0 - ldrsh r0, [r6, r1] - cmp r0, #1 - bne _08102CB4 - adds r0, r4, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08102CB4 - adds r0, r4, r5 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible -_08102CB4: - movs r1, #2 - ldrsh r0, [r6, r1] - cmp r0, #1 - bne _08102CD2 - adds r0, r4, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08102CD2 - adds r0, r4, r5 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible -_08102CD2: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _08102CEC - ldrb r0, [r0] - cmp r4, r0 - blo _08102C98 -_08102CE0: - adds r0, r7, #0 - bl DestroyAnimVisualTask - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08102CEC: .4byte gUnknown_2023D10 -_08102CF0: .4byte gUnknown_20380BE -_08102CF4: .4byte gUnknown_3005AD0 - thumb_func_end unref_sub_8102434 - - thumb_func_start unref_sub_81024A8 -unref_sub_81024A8: @ 0x08102CF8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r4, #0 - b _08102D12 -_08102D02: - ldr r0, _08102D28 - adds r0, r4, r0 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_08102D12: - ldr r0, _08102D2C - ldrb r0, [r0] - cmp r4, r0 - blo _08102D02 - adds r0, r5, #0 - bl DestroyAnimVisualTask - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08102D28: .4byte gUnknown_3005AD0 -_08102D2C: .4byte gUnknown_2023D10 - thumb_func_end unref_sub_81024A8 - - thumb_func_start sub_08102D30 -sub_08102D30: @ 0x08102D30 - push {r4, lr} - adds r4, r0, #0 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08102D46 - movs r0, #0x30 - strh r0, [r4, #0x20] - movs r0, #0x28 - b _08102D4E -_08102D46: - ldr r0, _08102D70 - ldrh r1, [r0] - strh r1, [r4, #0x20] - ldrh r0, [r0, #2] -_08102D4E: - strh r0, [r4, #0x22] - ldrb r1, [r4, #1] - movs r0, #0x3f - ands r0, r1 - strb r0, [r4, #1] - ldrb r0, [r4, #3] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #3] - movs r0, #0 - strh r0, [r4, #0x2e] - ldr r0, _08102D74 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08102D70: .4byte gUnknown_20380BE -_08102D74: .4byte sub_08102D78 - thumb_func_end sub_08102D30 - - thumb_func_start sub_08102D78 -sub_08102D78: @ 0x08102D78 - push {lr} - adds r1, r0, #0 - movs r2, #0x2e - ldrsh r0, [r1, r2] - cmp r0, #0 - beq _08102D8A - adds r0, r1, #0 - bl DestroyAnimSprite -_08102D8A: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08102D78 - - thumb_func_start sub_08102D90 -sub_08102D90: @ 0x08102D90 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08102DC8 - ldrb r0, [r0] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - ldr r2, _08102DCC - lsrs r0, r0, #0x18 - ldrh r1, [r2] - adds r0, r0, r1 - movs r1, #0 - strh r0, [r4, #0x20] - ldrh r0, [r2, #2] - strh r0, [r4, #0x22] - strh r1, [r4, #0x2e] - strh r1, [r4, #0x30] - strh r1, [r4, #0x32] - strh r1, [r4, #0x34] - movs r0, #1 - strh r0, [r4, #0x36] - ldr r0, _08102DD0 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08102DC8: .4byte gUnknown_20380D6 -_08102DCC: .4byte gUnknown_20380BE -_08102DD0: .4byte sub_08102DD4 - thumb_func_end sub_08102D90 - - thumb_func_start sub_08102DD4 -sub_08102DD4: @ 0x08102DD4 - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0x30] - adds r0, #1 - strh r0, [r1, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _08102DFE - movs r0, #0 - strh r0, [r1, #0x30] - ldrh r2, [r1, #0x32] - movs r3, #0x32 - ldrsh r0, [r1, r3] - cmp r0, #0x77 - bgt _08102DFE - ldrh r0, [r1, #0x22] - adds r0, #1 - strh r0, [r1, #0x22] - adds r0, r2, #1 - strh r0, [r1, #0x32] -_08102DFE: - movs r2, #0x2e - ldrsh r0, [r1, r2] - cmp r0, #0 - beq _08102E0C - adds r0, r1, #0 - bl DestroyAnimSprite -_08102E0C: - pop {r0} - bx r0 - thumb_func_end sub_08102DD4 - - thumb_func_start sub_08102E10 -sub_08102E10: @ 0x08102E10 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r4, #0 - str r4, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r0, #1 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_080A6E74 - mov r8, r0 - ldr r0, _08102EE0 - mov r1, r8 - ands r1, r0 - mov r8, r1 - ldr r0, _08102EE4 - mov sb, r0 - lsls r5, r7, #2 - adds r5, r5, r7 - lsls r5, r5, #3 - adds r6, r5, r0 - strh r4, [r6, #8] - 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, #1 - movs r1, #1 - movs r2, #1 - movs r3, #1 - bl sub_080A6F8C - mov sl, r0 - mov r1, r8 - orrs r1, r0 - mov r8, r1 - movs r0, #8 - add sb, r0 - add r5, sb - adds r0, r5, #0 - adds r0, #0x1c - adds r5, #0x1e - adds r1, r5, #0 - mov r2, r8 - bl StorePointerInVars - ldr r0, _08102EE8 - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r4, #0x80 - lsls r4, r4, #9 - adds r1, r4, #0 - lsls r1, r0 - mov r0, sl - orrs r0, r1 - mov sl, r0 - ldr r0, _08102EEC - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0 - mov r1, sl - orrs r4, r1 - ldr r0, _08102EF0 - str r0, [sp] - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _08102EF4 - str r1, [r6] - adds r0, r7, #0 - bl _call_via_r1 - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08102EE0: .4byte 0x0000FFFF -_08102EE4: .4byte gUnknown_3005B60 -_08102EE8: .4byte 0x000027D2 -_08102EEC: .4byte 0x000027D3 -_08102EF0: .4byte 0x00007FBB -_08102EF4: .4byte sub_08102EF8 - thumb_func_end sub_08102E10 - - thumb_func_start sub_08102EF8 -sub_08102EF8: @ 0x08102EF8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _08102F20 - adds r4, r0, r1 - movs r0, #8 - ldrsh r1, [r4, r0] - cmp r1, #1 - beq _08102FE4 - cmp r1, #1 - bgt _08102F24 - cmp r1, #0 - beq _08102F32 - b _08103082 - .align 2, 0 -_08102F20: .4byte gUnknown_3005B60 -_08102F24: - cmp r1, #2 - bne _08102F2A - b _0810303C -_08102F2A: - cmp r1, #3 - bne _08102F30 - b _08103070 -_08102F30: - b _08103082 -_08102F32: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _08102F40 - b _08103082 -_08102F40: - strh r1, [r4, #0xa] - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xf - bgt _08102F8C - ldrh r0, [r4, #0x16] - ldrh r1, [r4, #0x10] - adds r0, r0, r1 - strh r0, [r4, #0x10] - ldrh r2, [r4, #0x18] - ldrh r3, [r4, #0x12] - adds r2, r2, r3 - strh r2, [r4, #0x12] - ldrh r1, [r4, #0x1a] - ldrh r5, [r4, #0x14] - adds r1, r1, r5 - strh r1, [r4, #0x14] - lsls r0, r0, #0x10 - asrs r0, r0, #0x13 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r2, r2, #0x10 - asrs r2, r2, #0x13 - lsls r2, r2, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x13 - lsls r1, r1, #0x10 - lsrs r2, r2, #0xb - orrs r0, r2 - lsrs r1, r1, #6 - orrs r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov ip, r0 - b _08102F96 -_08102F8C: - ldr r7, _08102FDC - mov ip, r7 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_08102F96: - movs r2, #1 - movs r3, #0 - movs r1, #0 -_08102F9C: - movs r5, #0xe - ldrsh r0, [r4, r5] - ands r0, r2 - lsls r5, r2, #0x11 - adds r6, r3, #0 - adds r6, #0x10 - adds r1, #1 - mov r8, r1 - cmp r0, #0 - beq _08102FC8 - movs r1, #1 - ldr r2, _08102FE0 -_08102FB4: - adds r0, r3, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - mov r7, ip - strh r7, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0xf - bls _08102FB4 -_08102FC8: - lsrs r2, r5, #0x10 - lsls r0, r6, #0x10 - lsrs r3, r0, #0x10 - mov r1, r8 - lsls r0, r1, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0xf - bls _08102F9C - b _08103082 - .align 2, 0 -_08102FDC: .4byte 0x00007FBB -_08102FE0: .4byte gUnknown_20377B4 -_08102FE4: - ldr r0, _0810302C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08103082 - movs r2, #0 - ldr r3, _08103030 - movs r5, #0x14 - adds r5, r5, r3 - mov ip, r5 - ldr r7, _08103034 - mov r8, r7 - ldr r6, _08103038 - movs r5, #1 -_08103002: - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r1, r0, #2 - mov r7, ip - adds r0, r1, r7 - ldr r0, [r0] - cmp r0, r8 - beq _08103016 - cmp r0, r6 - bne _0810301A -_08103016: - adds r0, r1, r3 - strh r5, [r0, #0x2e] -_0810301A: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x3f - bls _08103002 - movs r0, #0 - strh r0, [r4, #0xa] - b _08103064 - .align 2, 0 -_0810302C: .4byte gUnknown_2037C74 -_08103030: .4byte gUnknown_20205AC -_08103034: .4byte gUnknown_856EAA0 -_08103038: .4byte gUnknown_856EAD0 -_0810303C: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1e - ble _08103082 - movs r1, #0x24 - ldrsh r0, [r4, r1] - movs r2, #0x26 - ldrsh r1, [r4, r2] - bl LoadPointerFromVars - ldr r1, _0810306C - str r1, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade -_08103064: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _08103082 - .align 2, 0 -_0810306C: .4byte 0x00007FBB -_08103070: - ldr r0, _08103090 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08103082 - adds r0, r2, #0 - bl DestroyAnimVisualTask -_08103082: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08103090: .4byte gUnknown_2037C74 - thumb_func_end sub_08102EF8 - - thumb_func_start sub_08103094 -sub_08103094: @ 0x08103094 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r6, _08103118 - movs r1, #4 - ldrsh r0, [r6, r1] - cmp r0, #1 - bgt _081030A6 - movs r0, #2 - strh r0, [r6, #4] -_081030A6: - movs r1, #4 - ldrsh r0, [r6, r1] - cmp r0, #0x7f - ble _081030B2 - movs r0, #0x7f - strh r0, [r6, #4] -_081030B2: - movs r0, #0 - strh r0, [r5, #0x2e] - ldrh r0, [r6, #4] - strh r0, [r5, #0x30] - ldr r4, _0810311C - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r6] - adds r0, r0, r1 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r6, [r6, #2] - adds r0, r0, r6 - strh r0, [r5, #0x22] - ldrh r1, [r5, #0x20] - strh r1, [r5, #0x3a] - strh r0, [r5, #0x3c] - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08103124 - ldrb r1, [r5, #3] - movs r0, #0x3f - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r5, #3] - ldrh r0, [r5, #0x20] - adds r0, #0x28 - strh r0, [r5, #0x20] - ldrh r4, [r5, #0x22] - adds r4, #0x14 - strh r4, [r5, #0x22] - lsls r0, r0, #7 - strh r0, [r5, #0x32] - movs r0, #0x30 - ldrsh r1, [r5, r0] - ldr r0, _08103120 - b _0810314A - .align 2, 0 -_08103118: .4byte gUnknown_20380BE -_0810311C: .4byte gUnknown_20380D7 -_08103120: .4byte 0xFFFFEC00 -_08103124: - ldr r0, _08103164 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810316C - ldrh r0, [r5, #0x20] - subs r0, #0x28 - strh r0, [r5, #0x20] - ldrh r4, [r5, #0x22] - adds r4, #0x14 - strh r4, [r5, #0x22] - lsls r0, r0, #7 - strh r0, [r5, #0x32] - movs r0, #0x30 - ldrsh r1, [r5, r0] - movs r0, #0xa0 - lsls r0, r0, #5 -_0810314A: - bl __divsi3 - strh r0, [r5, #0x34] - lsls r4, r4, #7 - strh r4, [r5, #0x36] - movs r0, #0x30 - ldrsh r1, [r5, r0] - ldr r0, _08103168 - bl __divsi3 - strh r0, [r5, #0x38] - b _081031A8 - .align 2, 0 -_08103164: .4byte gUnknown_20380D6 -_08103168: .4byte 0xFFFFF600 -_0810316C: - ldrh r0, [r5, #0x20] - adds r0, #0x28 - strh r0, [r5, #0x20] - ldrh r4, [r5, #0x22] - subs r4, #0x14 - strh r4, [r5, #0x22] - lsls r0, r0, #7 - strh r0, [r5, #0x32] - movs r0, #0x30 - ldrsh r1, [r5, r0] - ldr r0, _081031B4 - bl __divsi3 - strh r0, [r5, #0x34] - lsls r4, r4, #7 - strh r4, [r5, #0x36] - movs r0, #0x30 - ldrsh r1, [r5, r0] - movs r0, #0xa0 - lsls r0, r0, #4 - bl __divsi3 - strh r0, [r5, #0x38] - ldrb r1, [r5, #3] - movs r0, #0x3f - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x30 - orrs r0, r1 - strb r0, [r5, #3] -_081031A8: - ldr r0, _081031B8 - str r0, [r5, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081031B4: .4byte 0xFFFFEC00 -_081031B8: .4byte sub_081031BC - thumb_func_end sub_08103094 - - thumb_func_start sub_081031BC -sub_081031BC: @ 0x081031BC - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x34] - ldrh r1, [r2, #0x32] - adds r0, r0, r1 - strh r0, [r2, #0x32] - ldrh r1, [r2, #0x38] - ldrh r3, [r2, #0x36] - adds r1, r1, r3 - strh r1, [r2, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x17 - strh r0, [r2, #0x20] - lsls r1, r1, #0x10 - asrs r1, r1, #0x17 - strh r1, [r2, #0x22] - ldrh r0, [r2, #0x30] - subs r0, #1 - strh r0, [r2, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - bne _081031F2 - ldrh r0, [r2, #0x3a] - strh r0, [r2, #0x20] - ldrh r0, [r2, #0x3c] - strh r0, [r2, #0x22] -_081031F2: - movs r1, #0x30 - ldrsh r0, [r2, r1] - cmp r0, #0 - bne _08103200 - adds r0, r2, #0 - bl DestroyAnimSprite -_08103200: - pop {r0} - bx r0 - thumb_func_end sub_081031BC - - thumb_func_start sub_08103204 -sub_08103204: @ 0x08103204 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r0, r0, #2 - add r0, r8 - lsls r0, r0, #3 - ldr r1, _08103294 - adds r6, r0, r1 - movs r0, #0 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r6, #8] - ldr r0, _08103298 - bl AllocSpritePalette - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r6, #0xa] - movs r1, #0xa - ldrsh r0, [r6, r1] - lsls r0, r0, #0x14 - movs r1, #0x80 - lsls r1, r1, #0x11 - adds r0, r0, r1 - lsrs r3, r0, #0x10 - ldr r2, _0810329C - movs r0, #8 - ldrsh r1, [r6, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #5] - lsrs r0, r0, #4 - adds r0, #0x10 - lsls r4, r0, #4 - movs r5, #1 - ldr r2, _081032A0 -_0810325C: - adds r1, r3, r5 - lsls r1, r1, #1 - adds r1, r1, r2 - adds r0, r4, r5 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0xf - bls _0810325C - 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, _0810329C - movs r1, #0x1c - adds r1, r1, r7 - mov sb, r1 - b _081032D8 - .align 2, 0 -_08103294: .4byte gUnknown_3005B60 -_08103298: .4byte 0x00002771 -_0810329C: .4byte gUnknown_20205AC -_081032A0: .4byte gUnknown_20373B4 -_081032A4: - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r4, r2, r7 - ldrb r1, [r6, #0xa] - lsls r1, r1, #4 - ldrb r3, [r4, #5] - movs r0, #0xf - ands r0, r3 - orrs r0, r1 - strb r0, [r4, #5] - movs r0, #0 - strh r0, [r4, #0x2e] - lsls r0, r5, #7 - strh r0, [r4, #0x30] - mov r0, r8 - strh r0, [r4, #0x32] - add r2, sb - ldr r0, _0810330C - str r0, [r2] - ldrh r0, [r6, #0xe] - adds r0, #1 - strh r0, [r6, #0xe] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_081032D8: - cmp r5, #1 - bhi _081032EA - movs r0, #0 - bl CloneBattlerSpriteWithBlend - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _081032A4 -_081032EA: - ldr r0, _08103310 - str r0, [r6] - ldr r0, _08103314 - ldrb r0, [r0] - bl GetBattlerSpriteBGPriorityRank - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08103318 - movs r1, #0x80 - lsls r1, r1, #2 - movs r0, #0 - bl ClearGpuRegBits - b _08103322 - .align 2, 0 -_0810330C: .4byte sub_0810338C -_08103310: .4byte sub_08103330 -_08103314: .4byte gUnknown_20380D6 -_08103318: - movs r1, #0x80 - lsls r1, r1, #3 - movs r0, #0 - bl ClearGpuRegBits -_08103322: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08103204 - - thumb_func_start sub_08103330 -sub_08103330: @ 0x08103330 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _08103364 - adds r0, r0, r1 - movs r1, #0xe - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08103382 - ldr r0, _08103368 - ldrb r0, [r0] - bl GetBattlerSpriteBGPriorityRank - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0810336C - movs r1, #0x80 - lsls r1, r1, #2 - movs r0, #0 - bl SetGpuRegBits - b _08103376 - .align 2, 0 -_08103364: .4byte gUnknown_3005B60 -_08103368: .4byte gUnknown_20380D6 -_0810336C: - movs r1, #0x80 - lsls r1, r1, #3 - movs r0, #0 - bl SetGpuRegBits -_08103376: - ldr r0, _08103388 - bl FreeSpritePaletteByTag - adds r0, r4, #0 - bl DestroyAnimVisualTask -_08103382: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08103388: .4byte 0x00002771 - thumb_func_end sub_08103330 - - thumb_func_start sub_0810338C -sub_0810338C: @ 0x0810338C - push {r4, r5, lr} - adds r5, r0, #0 - ldrh r0, [r5, #0x34] - adds r0, #1 - strh r0, [r5, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _081033A8 - movs r0, #0 - strh r0, [r5, #0x34] - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] -_081033A8: - movs r1, #0x2e - ldrsh r0, [r5, r1] - cmp r0, #0x40 - ble _081033D0 - ldr r2, _081033CC - movs r0, #0x32 - ldrsh r1, [r5, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrh r1, [r0, #0xe] - subs r1, #1 - strh r1, [r0, #0xe] - adds r0, r5, #0 - bl obj_delete_but_dont_free_vram - b _08103412 - .align 2, 0 -_081033CC: .4byte gUnknown_3005B60 -_081033D0: - ldr r4, _08103418 - movs r1, #0x2e - ldrsh r0, [r5, r1] - lsls r0, r0, #1 - adds r0, r0, r4 - movs r2, #0 - ldrsh r0, [r0, r2] - movs r1, #6 - bl __divsi3 - strh r0, [r5, #0x36] - movs r1, #0x2e - ldrsh r0, [r5, r1] - lsls r0, r0, #1 - adds r0, r0, r4 - movs r2, #0 - ldrsh r0, [r0, r2] - movs r1, #0xd - bl __divsi3 - strh r0, [r5, #0x38] - ldrh r1, [r5, #0x30] - adds r1, 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] -_08103412: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08103418: .4byte gUnknown_82FA8CC - thumb_func_end sub_0810338C - - thumb_func_start sub_0810341C -sub_0810341C: @ 0x0810341C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08103430 - bl StoreSpriteCallbackInData6 - ldr r0, _08103434 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08103430: .4byte DestroyAnimSprite -_08103434: .4byte RunStoredCallbackWhenAnimEnds - thumb_func_end sub_0810341C - - thumb_func_start sub_08103438 -sub_08103438: @ 0x08103438 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldr r4, _081034E8 - ldrh r0, [r4] - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0xff - beq _0810347C - lsls r0, r3, #0x14 - movs r1, #0x80 - lsls r1, r1, #0x11 - adds r0, r0, r1 - lsrs r3, r0, #0x10 - movs r2, #1 - ldr r5, _081034EC -_08103464: - adds r1, r3, r2 - lsls r1, r1, #1 - adds r1, r1, r5 - lsls r0, r2, #1 - adds r0, r0, r4 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #5 - bls _08103464 -_0810347C: - movs r4, #1 - ldr r0, _081034E8 - mov r8, r0 -_08103482: - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r5, r0, #2 - mov r1, r8 - adds r0, r5, r1 - ldrh r0, [r0] - bl AllocSpritePalette - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - adds r4, #1 - mov ip, r4 - cmp r3, #0xff - beq _081034CA - lsls r0, r3, #0x14 - movs r1, #0x80 - lsls r1, r1, #0x11 - adds r0, r0, r1 - lsrs r3, r0, #0x10 - movs r2, #1 - ldr r7, _081034EC - ldr r6, _081034E8 - adds r4, r5, #0 -_081034B0: - adds r1, r3, r2 - lsls r1, r1, #1 - adds r1, r1, r7 - lsls r0, r2, #1 - adds r0, r0, r4 - adds r0, r0, r6 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #5 - bls _081034B0 -_081034CA: - mov r1, ip - lsls r0, r1, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #3 - bls _08103482 - mov r0, sb - bl DestroyAnimVisualTask - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081034E8: .4byte gUnknown_856EC04 -_081034EC: .4byte gUnknown_20377B4 - thumb_func_end sub_08103438 - - thumb_func_start sub_081034F0 -sub_081034F0: @ 0x081034F0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r4, #1 - ldr r6, _08103520 -_081034FA: - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrh r0, [r0] - bl FreeSpritePaletteByTag - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #3 - bls _081034FA - adds r0, r5, #0 - bl DestroyAnimVisualTask - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08103520: .4byte gUnknown_856EC04 - thumb_func_end sub_081034F0 - - thumb_func_start sub_08103524 -sub_08103524: @ 0x08103524 - push {r4, r5, r6, lr} - sub sp, #4 - adds r5, r0, #0 - bl SetSpriteCoordsToAnimAttackerCoords - ldr r4, _0810357C - ldrb r1, [r4] - adds r0, r5, #0 - bl StartSpriteAnim - ldr r2, _08103580 - movs r0, #2 - ldrsh r1, [r4, r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0] - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _08103560 - lsls r2, r0, #4 - ldrb r1, [r5, #5] - movs r0, #0xf - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #5] -_08103560: - ldrh r0, [r4, #2] - movs r1, #0 - strh r0, [r5, #0x30] - strh r1, [r5, #0x32] - ldrh r0, [r4, #4] - strh r0, [r5, #0x34] - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08103584 - movs r6, #0x30 - movs r3, #0x28 - b _0810359E - .align 2, 0 -_0810357C: .4byte gUnknown_20380BE -_08103580: .4byte gUnknown_856EC04 -_08103584: - ldr r4, _081035D4 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 -_0810359E: - 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, r0, #0x10 - asrs r0, r0, #0x10 - subs r1, r3, r1 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r2, r5, #0 - adds r2, #0x3a - adds r3, r5, #0 - adds r3, #0x3c - movs r4, #0x28 - str r4, [sp] - bl sub_081035DC - ldr r0, _081035D8 - str r0, [r5, #0x1c] - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081035D4: .4byte gUnknown_20380D7 -_081035D8: .4byte sub_08103634 - thumb_func_end sub_08103524 - - thumb_func_start sub_081035DC -sub_081035DC: @ 0x081035DC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r2, #0 - mov r8, r3 - ldr r2, [sp, #0x18] - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r1, r2, #0x18 - lsls r0, r0, #0x10 - asrs r2, r0, #0x10 - cmp r2, #0 - bge _081035FE - lsls r0, r1, #0x18 - rsbs r0, r0, #0 - lsrs r1, r0, #0x18 -_081035FE: - lsls r5, r2, #8 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r5, #0 - bl __divsi3 - adds r4, r0, #0 - cmp r4, #0 - bne _08103612 - movs r4, #1 -_08103612: - adds r0, r5, #0 - adds r1, r4, #0 - bl __divsi3 - strh r0, [r7] - lsls r0, r6, #0x10 - asrs r0, r0, #8 - adds r1, r4, #0 - bl __divsi3 - mov r1, r8 - strh r0, [r1] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_081035DC - - thumb_func_start sub_08103634 -sub_08103634: @ 0x08103634 - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - adds r0, #1 - 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 _08103650 - adds r0, #0xff -_08103650: - asrs r0, r0, #8 - lsls r0, r0, #8 - subs r0, r1, r0 - ldrh r1, [r4, #0x3a] - ldrh r2, [r4, #0x36] - adds r1, r1, r2 - strh r1, [r4, #0x36] - ldrh r2, [r4, #0x3c] - ldrh r3, [r4, #0x38] - adds r2, r2, r3 - strh r2, [r4, #0x38] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - strh r1, [r4, #0x20] - lsls r2, r2, #0x10 - asrs r2, r2, #0x14 - strh r2, [r4, #0x22] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0xf - bl Sin - strh r0, [r4, #0x26] - ldrh r2, [r4, #0x22] - ldrh r0, [r4, #0x20] - adds r0, #0x10 - lsls r0, r0, #0x10 - movs r1, #0x88 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _0810369E - lsls r0, r2, #0x10 - asrs r1, r0, #0x10 - movs r0, #0x10 - rsbs r0, r0, #0 - cmp r1, r0 - blt _0810369E - cmp r1, #0x80 - ble _081036A6 -_0810369E: - adds r0, r4, #0 - bl DestroySpriteAndMatrix - b _081036F6 -_081036A6: - movs r0, #0x34 - ldrsh r1, [r4, r0] - cmp r1, #0 - beq _081036F6 - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, r1 - ble _081036F6 - strh r5, [r4, #0x32] - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - ble _081036CE - strh r5, [r4, #0x30] -_081036CE: - ldr r2, _081036FC - movs r3, #0x30 - ldrsh r1, [r4, r3] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0] - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _081036F6 - lsls r2, r0, #4 - ldrb r1, [r4, #5] - movs r0, #0xf - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #5] -_081036F6: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081036FC: .4byte gUnknown_856EC04 - thumb_func_end sub_08103634 - - thumb_func_start sub_08103700 -sub_08103700: @ 0x08103700 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldr r7, _08103784 - ldrb r0, [r7] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0810371E - ldr r1, _08103788 - movs r2, #2 - ldrsh r0, [r1, r2] - rsbs r0, r0, #0 - strh r0, [r1, #2] -_0810371E: - ldrb r0, [r7] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - ldr r4, _08103788 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #2] - adds r0, r0, r1 - movs r5, #0 - strh r0, [r6, #0x20] - ldrb r0, [r7] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r2, [r4, #4] - adds r0, 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, r0, #4 - strh r0, [r6, #0x36] - ldrh r0, [r6, #0x22] - lsls r0, r0, #4 - strh r0, [r6, #0x38] - movs r1, #2 - ldrsh r0, [r4, r1] - lsls r0, r0, #4 - movs r1, #5 - bl __divsi3 - strh r0, [r6, #0x3a] - movs r2, #4 - ldrsh r0, [r4, r2] - lsls r0, r0, #7 - movs r1, #5 - bl __divsi3 - strh r0, [r6, #0x3c] - ldr r0, _0810378C - str r0, [r6, #0x1c] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08103784: .4byte gUnknown_20380D6 -_08103788: .4byte gUnknown_20380BE -_0810378C: .4byte sub_08103790 - thumb_func_end sub_08103700 - - thumb_func_start sub_08103790 -sub_08103790: @ 0x08103790 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3a] - ldrh r1, [r4, #0x36] - adds r0, r0, r1 - strh r0, [r4, #0x36] - ldrh r1, [r4, #0x3c] - ldrh r2, [r4, #0x38] - adds r1, r1, r2 - strh r1, [r4, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - strh r0, [r4, #0x20] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - strh r1, [r4, #0x22] - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #5 - ble _081037EE - movs r2, #0x34 - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _081037EE - 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 _081037EE - movs r0, #1 - strh r0, [r4, #0x34] -_081037EE: - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x30 - bne _08103802 - adds r0, r4, #0 - bl DestroySpriteAndMatrix -_08103802: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08103790 - - thumb_func_start sub_08103808 -sub_08103808: @ 0x08103808 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r0, _08103828 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #1 - bne _0810382C - ldrb r0, [r5, #3] - movs r1, #0x3f - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #0x10 - orrs r1, r0 - strb r1, [r5, #3] - movs r6, #0x10 - b _0810382E - .align 2, 0 -_08103828: .4byte gUnknown_20380BE -_0810382C: - ldr r6, _08103868 -_0810382E: - ldr r4, _0810386C - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r6 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #8 - strh r0, [r5, #0x22] - movs r0, #8 - strh r0, [r5, #0x2e] - ldr r0, _08103870 - str r0, [r5, #0x1c] - ldr r1, _08103874 - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08103868: .4byte 0x0000FFF0 -_0810386C: .4byte gUnknown_20380D6 -_08103870: .4byte WaitAnimForDuration -_08103874: .4byte DestroyAnimSprite - thumb_func_end sub_08103808 - - thumb_func_start sub_08103878 -sub_08103878: @ 0x08103878 - push {r4, r5, lr} - adds r4, r0, #0 - bl SetSpriteCoordsToAnimAttackerCoords - ldrh r0, [r4, #0x22] - adds r0, #8 - strh r0, [r4, #0x22] - ldr r5, _081038F0 - ldrb r1, [r5, #2] - adds r0, r4, #0 - bl StartSpriteAnim - ldr r2, _081038F4 - movs r0, #4 - ldrsh r1, [r5, r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0] - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _081038B8 - lsls r2, r0, #4 - ldrb r1, [r4, #5] - movs r0, #0xf - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #5] -_081038B8: - movs r1, #0 - ldrsh r0, [r5, r1] - movs r2, #0x20 - cmp r0, #0 - bne _081038C4 - ldr r2, _081038F8 -_081038C4: - movs r0, #0x28 - strh r0, [r4, #0x2e] - ldrh r1, [r4, #0x20] - strh r1, [r4, #0x30] - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - adds r0, 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 InitAnimLinearTranslation - ldrh r0, [r5, #6] - strh r0, [r4, #0x38] - ldr r0, _081038FC - str r0, [r4, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081038F0: .4byte gUnknown_20380BE -_081038F4: .4byte gUnknown_856EC04 -_081038F8: .4byte 0x0000FFE0 -_081038FC: .4byte sub_08103900 - thumb_func_end sub_08103878 - - thumb_func_start sub_08103900 -sub_08103900: @ 0x08103900 - push {r4, lr} - adds r4, r0, #0 - bl AnimTranslateLinear - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08103950 - movs r1, #0x38 - ldrsh r0, [r4, r1] - movs r1, #8 - bl Sin - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldrh r2, [r4, #0x24] - movs r3, #0x24 - ldrsh r0, [r4, r3] - cmp r0, #0 - bge _0810392C - lsls r0, r1, #0x10 - rsbs r0, r0, #0 - lsrs r1, r0, #0x10 -_0810392C: - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - adds r0, r0, r2 - strh r0, [r4, #0x24] - movs r1, #0x38 - ldrsh r0, [r4, r1] - movs r1, #4 - bl Sin - ldrh r3, [r4, #0x26] - adds r0, r0, r3 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x38] - adds r0, #8 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x38] - b _08103956 -_08103950: - adds r0, r4, #0 - bl DestroyAnimSprite -_08103956: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08103900 - - thumb_func_start sub_0810395C -sub_0810395C: @ 0x0810395C - push {r4, r5, r6, lr} - adds r6, r1, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r5, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810397C - adds r0, r5, #0 - movs r1, #5 - bl GetBattlerSpriteCoordAttr - adds r0, #8 - b _08103986 -_0810397C: - adds r0, r5, #0 - movs r1, #4 - bl GetBattlerSpriteCoordAttr - subs r0, #8 -_08103986: - strh r0, [r6, #0x20] - adds r0, r5, #0 - movs r1, #3 - bl GetBattlerSpriteCoord - adds r4, r0, #0 - adds r0, r5, #0 - movs r1, #0 - bl GetBattlerSpriteCoordAttr - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _081039A8 - adds r0, #3 -_081039A8: - asrs r0, r0, #2 - subs r0, r4, r0 - strh r0, [r6, #0x22] - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_0810395C - - thumb_func_start sub_081039B4 -sub_081039B4: @ 0x081039B4 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _081039C8 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _081039D0 - ldr r0, _081039CC - b _081039D2 - .align 2, 0 -_081039C8: .4byte gUnknown_20380BE -_081039CC: .4byte gUnknown_20380D6 -_081039D0: - ldr r0, _08103A10 -_081039D2: - ldrb r4, [r0] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0810395C - adds r0, r4, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - ldr r0, _08103A14 - ldrh r0, [r0, #2] - strh r0, [r5, #0x2e] - adds r0, r1, #2 - strh r0, [r5, #0x30] - adds r0, r5, #0 - bl StartSpriteAnim - ldr r1, _08103A18 - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _08103A1C - str r0, [r5, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08103A10: .4byte gUnknown_20380D7 -_08103A14: .4byte gUnknown_20380BE -_08103A18: .4byte sub_08103A20 -_08103A1C: .4byte RunStoredCallbackWhenAnimEnds - thumb_func_end sub_081039B4 - - thumb_func_start sub_08103A20 -sub_08103A20: @ 0x08103A20 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - subs r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08103A48 - ldr r1, _08103A50 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - ldrh r1, [r4, #0x30] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim - ldr r0, _08103A54 - str r0, [r4, #0x1c] -_08103A48: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08103A50: .4byte DestroyAnimSprite -_08103A54: .4byte RunStoredCallbackWhenAnimEnds - thumb_func_end sub_08103A20 - - thumb_func_start sub_08103A58 -sub_08103A58: @ 0x08103A58 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08103A6C - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08103A74 - ldr r0, _08103A70 - b _08103A76 - .align 2, 0 -_08103A6C: .4byte gUnknown_20380BE -_08103A70: .4byte gUnknown_20380D6 -_08103A74: - ldr r0, _08103A94 -_08103A76: - ldrb r0, [r0] - adds r1, r4, #0 - bl sub_0810395C - movs r0, #0 - strh r0, [r4, #0x2e] - ldr r1, _08103A98 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _08103A9C - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08103A94: .4byte gUnknown_20380D7 -_08103A98: .4byte sub_08103AA0 -_08103A9C: .4byte RunStoredCallbackWhenAffineAnimEnds - thumb_func_end sub_08103A58 - - thumb_func_start sub_08103AA0 -sub_08103AA0: @ 0x08103AA0 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x10 - ble _08103AC6 - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAffineAnim - ldr r1, _08103ACC - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _08103AD0 - str r0, [r4, #0x1c] -_08103AC6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08103ACC: .4byte DestroySpriteAndMatrix -_08103AD0: .4byte RunStoredCallbackWhenAffineAnimEnds - thumb_func_end sub_08103AA0 - - thumb_func_start sub_08103AD4 -sub_08103AD4: @ 0x08103AD4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r0, _08103AE8 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08103AF0 - ldr r0, _08103AEC - b _08103AF2 - .align 2, 0 -_08103AE8: .4byte gUnknown_20380BE -_08103AEC: .4byte gUnknown_20380D6 -_08103AF0: - ldr r0, _08103B44 -_08103AF2: - ldrb r5, [r0] - adds r0, r5, #0 - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r6, #0 - strh r0, [r4, #0x20] - adds r0, r5, #0 - movs r1, #2 - bl GetBattlerSpriteCoordAttr - strh r0, [r4, #0x22] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #9 - bgt _08103B1A - movs r0, #0xa - strh r0, [r4, #0x22] -_08103B1A: - movs r0, #1 - 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, #4 - strh r0, [r4, #0x34] - strh r6, [r4, #0x36] - ldr r1, _08103B48 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _08103B4C - str r0, [r4, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08103B44: .4byte gUnknown_20380D7 -_08103B48: .4byte sub_08103B50 -_08103B4C: .4byte RunStoredCallbackWhenAffineAnimEnds - thumb_func_end sub_08103AD4 - - thumb_func_start sub_08103B50 -sub_08103B50: @ 0x08103B50 - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0x36] - adds r0, #1 - strh r0, [r1, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xc - ble _08103B66 - ldr r0, _08103B6C - str r0, [r1, #0x1c] -_08103B66: - pop {r0} - bx r0 - .align 2, 0 -_08103B6C: .4byte sub_08103B70 - thumb_func_end sub_08103B50 - - thumb_func_start sub_08103B70 -sub_08103B70: @ 0x08103B70 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x30] - adds r1, r0, #4 - strh r1, [r2, #0x30] - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xfe - ble _08103BA2 - ldrh r0, [r2, #0x2e] - subs r0, #1 - strh r0, [r2, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bne _08103B9C - strh r0, [r2, #0x24] - ldr r0, _08103B98 - str r0, [r2, #0x1c] - b _08103BD8 - .align 2, 0 -_08103B98: .4byte sub_08103AA0 -_08103B9C: - movs r0, #0xff - ands r1, r0 - strh r1, [r2, #0x30] -_08103BA2: - movs r1, #0x30 - ldrsh r0, [r2, r1] - cmp r0, #0x4f - ble _08103BB2 - ldrh r0, [r2, #0x34] - adds r1, r2, #0 - adds r1, #0x43 - strb r0, [r1] -_08103BB2: - movs r3, #0x30 - ldrsh r0, [r2, r3] - cmp r0, #0x9f - ble _08103BC2 - ldrh r0, [r2, #0x32] - adds r1, r2, #0 - adds r1, #0x43 - strb r0, [r1] -_08103BC2: - ldr r1, _08103BDC - movs r3, #0x30 - ldrsh r0, [r2, r3] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x13 - asrs r1, r0, #1 - adds r0, r0, r1 - strh r0, [r2, #0x24] -_08103BD8: - pop {r0} - bx r0 - .align 2, 0 -_08103BDC: .4byte gUnknown_82FA8CC - thumb_func_end sub_08103B70 - - thumb_func_start sub_08103BE0 -sub_08103BE0: @ 0x08103BE0 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _08103BF4 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08103BFC - ldr r0, _08103BF8 - b _08103BFE - .align 2, 0 -_08103BF4: .4byte gUnknown_20380BE -_08103BF8: .4byte gUnknown_20380D6 -_08103BFC: - ldr r0, _08103C20 -_08103BFE: - ldrb r4, [r0] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0810395C - adds r0, r4, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08103C24 - adds r0, r5, #0 - movs r1, #0 - bl StartSpriteAnim - movs r0, #2 - b _08103C2E - .align 2, 0 -_08103C20: .4byte gUnknown_20380D7 -_08103C24: - adds r0, r5, #0 - movs r1, #1 - bl StartSpriteAnim - movs r0, #3 -_08103C2E: - strh r0, [r5, #0x2e] - ldr r0, _08103C3C - str r0, [r5, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08103C3C: .4byte sub_08103C40 - thumb_func_end sub_08103BE0 - - thumb_func_start sub_08103C40 -sub_08103C40: @ 0x08103C40 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xa - ble _08103C6E - movs r0, #0 - strh r0, [r4, #0x30] - ldrh r1, [r4, #0x2e] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim - ldr r1, _08103C74 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _08103C78 - str r0, [r4, #0x1c] -_08103C6E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08103C74: .4byte sub_08103C7C -_08103C78: .4byte RunStoredCallbackWhenAnimEnds - thumb_func_end sub_08103C40 - - thumb_func_start sub_08103C7C -sub_08103C7C: @ 0x08103C7C - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0x30] - adds r0, #1 - strh r0, [r1, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #5 - ble _08103C94 - adds r0, r1, #0 - bl DestroyAnimSprite -_08103C94: - pop {r0} - bx r0 - thumb_func_end sub_08103C7C - - thumb_func_start sub_08103C98 -sub_08103C98: @ 0x08103C98 - push {r4, r5, lr} - adds r4, r0, #0 - bl SetSpriteCoordsToAnimAttackerCoords - ldr r5, _08103CDC - movs r0, #0 - ldrsh r1, [r5, r0] - adds r0, r4, #0 - bl SetAnimSpriteInitialXOffset - ldrh r0, [r5, #2] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] - ldrh r0, [r5, #4] - strh r0, [r4, #0x30] - ldrh r0, [r5, #8] - strh r0, [r4, #0x32] - ldrh r0, [r5, #0xa] - strh r0, [r4, #0x34] - ldrh r0, [r5, #6] - strh r0, [r4, #0x36] - ldr r1, _08103CE0 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - ldr r1, _08103CE4 - str r1, [r4, #0x1c] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08103CDC: .4byte gUnknown_20380BE -_08103CE0: .4byte DestroySpriteAndMatrix -_08103CE4: .4byte TranslateSpriteInEllipseOverDuration - thumb_func_end sub_08103C98 - - thumb_func_start sub_08103CE8 -sub_08103CE8: @ 0x08103CE8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08103CFC - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08103D04 - ldr r0, _08103D00 - b _08103D06 - .align 2, 0 -_08103CFC: .4byte gUnknown_20380BE -_08103D00: .4byte gUnknown_20380D6 -_08103D04: - ldr r0, _08103D20 -_08103D06: - ldrb r0, [r0] - adds r1, r4, #0 - bl sub_0810395C - movs r0, #0 - strh r0, [r4, #0x2e] - strh r0, [r4, #0x30] - ldr r0, _08103D24 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08103D20: .4byte gUnknown_20380D7 -_08103D24: .4byte sub_08103D28 - thumb_func_end sub_08103CE8 - - thumb_func_start sub_08103D28 -sub_08103D28: @ 0x08103D28 - push {lr} - adds r1, r0, #0 - movs r2, #0x2e - ldrsh r0, [r1, r2] - cmp r0, #1 - beq _08103D5A - cmp r0, #1 - bgt _08103D3E - cmp r0, #0 - beq _08103D44 - b _08103D88 -_08103D3E: - cmp r0, #2 - beq _08103D74 - b _08103D88 -_08103D44: - ldrh r0, [r1, #0x26] - subs r0, #3 - strh r0, [r1, #0x26] - ldrh r0, [r1, #0x30] - adds r0, #1 - strh r0, [r1, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #6 - bne _08103D88 - b _08103D6C -_08103D5A: - ldrh r0, [r1, #0x26] - adds r0, #3 - strh r0, [r1, #0x26] - ldrh r0, [r1, #0x30] - subs r0, #1 - strh r0, [r1, #0x30] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08103D88 -_08103D6C: - ldrh r0, [r1, #0x2e] - adds r0, #1 - strh r0, [r1, #0x2e] - b _08103D88 -_08103D74: - ldrh r0, [r1, #0x30] - adds r0, #1 - strh r0, [r1, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x40 - bne _08103D88 - adds r0, r1, #0 - bl DestroyAnimSprite -_08103D88: - pop {r0} - bx r0 - thumb_func_end sub_08103D28 - - thumb_func_start sub_08103D8C -sub_08103D8C: @ 0x08103D8C - push {r4, lr} - adds r4, r0, #0 - ldr r3, _08103DD8 - movs r0, #0x32 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r4, #0x30] - ldrh r2, [r0, #0x24] - adds r1, r1, r2 - strh r1, [r0, #0x24] - movs r1, #0x30 - ldrsh r0, [r4, r1] - rsbs r0, r0, #0 - strh r0, [r4, #0x30] - movs r0, #0x2e - ldrsh r2, [r4, r0] - cmp r2, #0 - bne _08103DCA - movs r0, #0x32 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r2, [r0, #0x24] - adds r0, r4, #0 - bl DestroySpriteAndMatrix -_08103DCA: - ldrh r0, [r4, #0x2e] - subs r0, #1 - strh r0, [r4, #0x2e] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08103DD8: .4byte gUnknown_20205AC - thumb_func_end sub_08103D8C - - thumb_func_start sub_08103DDC -sub_08103DDC: @ 0x08103DDC - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r4, _08103E24 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - ldr r1, _08103E28 - ldr r0, _08103E2C - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r6, [r0] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08103E34 - ldr r0, _08103E30 - ldrh r1, [r5, #0x20] - ldrh r2, [r0] - subs r1, r1, r2 - strh r1, [r5, #0x20] - adds r1, r0, #0 - b _08103E3E - .align 2, 0 -_08103E24: .4byte gUnknown_20380D6 -_08103E28: .4byte gUnknown_2023E88 -_08103E2C: .4byte gUnknown_20380D7 -_08103E30: .4byte gUnknown_20380BE -_08103E34: - ldr r1, _08103E68 - ldrh r0, [r1] - ldrh r2, [r5, #0x20] - adds r0, r0, r2 - strh r0, [r5, #0x20] -_08103E3E: - ldrh r0, [r1, #2] - ldrh r2, [r5, #0x22] - adds r0, r0, r2 - strh r0, [r5, #0x22] - ldrh r0, [r1, #4] - strh r0, [r5, #0x2e] - ldrh r0, [r1, #6] - strh r0, [r5, #0x30] - strh r6, [r5, #0x32] - ldr r0, _08103E6C - str r0, [r5, #0x1c] - adds r2, r5, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08103E68: .4byte gUnknown_20380BE -_08103E6C: .4byte sub_08103D8C - thumb_func_end sub_08103DDC - - thumb_func_start sub_08103E70 -sub_08103E70: @ 0x08103E70 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldr r1, _08103E9C - ldrh r0, [r1, #4] - strh r0, [r4, #0x2e] - ldrh r0, [r1, #6] - strh r0, [r4, #0x30] - ldrh r0, [r1, #8] - strh r0, [r4, #0x38] - ldr r0, _08103EA0 - str r0, [r4, #0x1c] - ldr r1, _08103EA4 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08103E9C: .4byte gUnknown_20380BE -_08103EA0: .4byte WaitAnimForDuration -_08103EA4: .4byte sub_08103EA8 - thumb_func_end sub_08103E70 - - thumb_func_start sub_08103EA8 -sub_08103EA8: @ 0x08103EA8 - 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, _08103EC8 - str r1, [r0, #0x1c] - ldr r1, _08103ECC - bl StoreSpriteCallbackInData6 - pop {r0} - bx r0 - .align 2, 0 -_08103EC8: .4byte sub_080A67B4 -_08103ECC: .4byte sub_08103ED0 - thumb_func_end sub_08103EA8 - - thumb_func_start sub_08103ED0 -sub_08103ED0: @ 0x08103ED0 - push {lr} - adds r1, r0, #0 - ldrh r2, [r1, #0x38] - movs r3, #0x38 - ldrsh r0, [r1, r3] - cmp r0, #0 - bne _08103EE6 - adds r0, r1, #0 - bl DestroyAnimSprite - b _08103EEA -_08103EE6: - subs r0, r2, #1 - strh r0, [r1, #0x38] -_08103EEA: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08103ED0 - - thumb_func_start AnimTask_Withdraw -AnimTask_Withdraw: @ 0x08103EF0 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _08103F1C - ldr r0, _08103F20 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #0 - bl PrepareBattlerSpriteForRotScale - ldr r1, _08103F24 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08103F28 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08103F1C: .4byte gUnknown_2023E88 -_08103F20: .4byte gUnknown_20380D6 -_08103F24: .4byte gUnknown_3005B60 -_08103F28: .4byte AnimTask_WithdrawStep - thumb_func_end AnimTask_Withdraw - - thumb_func_start AnimTask_WithdrawStep -AnimTask_WithdrawStep: @ 0x08103F2C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _08103F5C - ldr r0, _08103F60 - ldrb r0, [r0] - adds r1, r0, r1 - ldrb r4, [r1] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08103F68 - ldr r1, _08103F64 - lsls r2, r5, #2 - adds r0, r2, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r0, [r0, #8] - rsbs r0, r0, #0 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - adds r6, r2, #0 - b _08103F76 - .align 2, 0 -_08103F5C: .4byte gUnknown_2023E88 -_08103F60: .4byte gUnknown_20380D6 -_08103F64: .4byte gUnknown_3005B60 -_08103F68: - ldr r2, _08103FA8 - lsls r1, r5, #2 - adds r0, r1, r5 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrh r3, [r0, #8] - adds r6, r1, #0 -_08103F76: - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r2, #0 - bl SetSpriteRotScale - ldr r1, _08103FA8 - adds r0, r6, r5 - lsls r0, r0, #3 - adds r1, r0, r1 - movs r2, #0xa - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _08103FB0 - ldrh r0, [r1, #8] - adds r0, #0xb0 - strh r0, [r1, #8] - ldr r1, _08103FAC - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r1, [r0, #0x26] - adds r1, #1 - b _08103FDA - .align 2, 0 -_08103FA8: .4byte gUnknown_3005B60 -_08103FAC: .4byte gUnknown_20205AC -_08103FB0: - cmp r0, #1 - bne _08103FC6 - ldrh r0, [r1, #0xe] - adds r0, #1 - strh r0, [r1, #0xe] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1e - bne _08104020 - movs r0, #2 - b _0810401E -_08103FC6: - ldrh r0, [r1, #8] - subs r0, #0xb0 - strh r0, [r1, #8] - ldr r1, _08104014 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r1, [r0, #0x26] - subs r1, #1 -_08103FDA: - strh r1, [r0, #0x26] - adds r0, r4, #0 - bl SetBattlerSpriteYOffsetFromRotation - ldr r0, _08104018 - adds r1, r6, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r3, #8 - ldrsh r2, [r1, r3] - movs r0, #0xf2 - lsls r0, r0, #4 - cmp r2, r0 - beq _08103FFA - cmp r2, #0 - bne _08104020 -_08103FFA: - ldrh r2, [r1, #0xa] - movs r3, #0xa - ldrsh r0, [r1, r3] - cmp r0, #2 - bne _0810401C - adds r0, r4, #0 - bl ResetSpriteRotScale - adds r0, r5, #0 - bl DestroyAnimVisualTask - b _08104020 - .align 2, 0 -_08104014: .4byte gUnknown_20205AC -_08104018: .4byte gUnknown_3005B60 -_0810401C: - adds r0, r2, #1 -_0810401E: - strh r0, [r1, #0xa] -_08104020: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AnimTask_WithdrawStep - - thumb_func_start Anim_KinesisZapEnergy -Anim_KinesisZapEnergy: @ 0x08104028 - push {r4, r5, lr} - adds r4, r0, #0 - bl SetSpriteCoordsToAnimAttackerCoords - ldr r0, _0810404C - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08104054 - ldr r0, _08104050 - ldrh r1, [r4, #0x20] - ldrh r2, [r0] - subs r1, r1, r2 - strh r1, [r4, #0x20] - adds r5, r0, #0 - b _08104060 - .align 2, 0 -_0810404C: .4byte gUnknown_20380D6 -_08104050: .4byte gUnknown_20380BE -_08104054: - ldr r1, _08104094 - ldrh r0, [r1] - ldrh r2, [r4, #0x20] - adds r0, r0, r2 - strh r0, [r4, #0x20] - adds r5, r1, #0 -_08104060: - ldrh r0, [r5, #2] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] - ldr r0, _08104098 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810409C - adds r3, r4, #0 - adds r3, #0x3f - ldrb r0, [r3] - movs r1, #1 - adds r2, r0, #0 - orrs r2, r1 - strb r2, [r3] - movs r1, #4 - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _081040B0 - movs r0, #2 - orrs r2, r0 - strb r2, [r3] - b _081040B0 - .align 2, 0 -_08104094: .4byte gUnknown_20380BE -_08104098: .4byte gUnknown_20380D6 -_0810409C: - movs r2, #4 - ldrsh r0, [r5, r2] - cmp r0, #0 - beq _081040B0 - adds r2, r4, #0 - adds r2, #0x3f - ldrb r0, [r2] - movs r1, #2 - orrs r0, r1 - strb r0, [r2] -_081040B0: - ldr r0, _081040C4 - str r0, [r4, #0x1c] - ldr r1, _081040C8 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081040C4: .4byte RunStoredCallbackWhenAnimEnds -_081040C8: .4byte DestroyAnimSprite - thumb_func_end Anim_KinesisZapEnergy - - thumb_func_start sub_081040CC -sub_081040CC: @ 0x081040CC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl InitSpritePosToAnimAttacker - ldr r0, _081040E8 - str r0, [r4, #0x1c] - ldr r1, _081040EC - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081040E8: .4byte RunStoredCallbackWhenAffineAnimEnds -_081040EC: .4byte Anim_SwordsDanceBladeStep - thumb_func_end sub_081040CC - - thumb_func_start Anim_SwordsDanceBladeStep -Anim_SwordsDanceBladeStep: @ 0x081040F0 - push {lr} - movs r1, #6 - 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, _08104110 - str r1, [r0, #0x1c] - ldr r1, _08104114 - bl StoreSpriteCallbackInData6 - pop {r0} - bx r0 - .align 2, 0 -_08104110: .4byte sub_080A67B4 -_08104114: .4byte DestroyAnimSprite - thumb_func_end Anim_SwordsDanceBladeStep - - thumb_func_start AnimSonicBoomProjectile -AnimSonicBoomProjectile: @ 0x08104118 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r5, r0, #0 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810413C - ldr r1, _08104138 - ldrh r0, [r1, #4] - rsbs r0, r0, #0 - strh r0, [r1, #4] - b _0810415E - .align 2, 0 -_08104138: .4byte gUnknown_20380BE -_0810413C: - ldr r0, _08104204 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810415E - ldr r1, _08104208 - ldrh r0, [r1, #4] - rsbs r0, r0, #0 - strh r0, [r1, #4] - ldrh r0, [r1, #2] - rsbs r0, r0, #0 - strh r0, [r1, #2] - ldrh r0, [r1, #6] - rsbs r0, r0, #0 - strh r0, [r1, #6] -_0810415E: - adds r0, r5, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldr r4, _0810420C - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - ldr r6, _08104208 - lsrs r0, r0, #0x18 - ldrh r1, [r6, #4] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r2, [r6, #6] - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r7, r0, #0 - ldrh r1, [r5, #0x20] - mov r2, r8 - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrh r2, [r5, #0x22] - lsls r1, r7, #0x10 - asrs r1, r1, #0x10 - subs r1, r1, r2 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl ArcTan2Neg - lsls r0, r0, #0x10 - movs r1, #0xf0 - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r4, r0, #0x10 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081041D0 - ldr r2, _08104210 - adds r0, r4, r2 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_081041D0: - movs r3, #0x80 - lsls r3, r3, #1 - str r4, [sp] - adds r0, r5, #0 - movs r1, #0 - adds r2, r3, #0 - bl TrySetSpriteRotScale - ldrh r0, [r6, #8] - strh r0, [r5, #0x2e] - mov r0, r8 - strh r0, [r5, #0x32] - strh r7, [r5, #0x36] - ldr r0, _08104214 - str r0, [r5, #0x1c] - ldr r1, _08104218 - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08104204: .4byte gUnknown_20380D6 -_08104208: .4byte gUnknown_20380BE -_0810420C: .4byte gUnknown_20380D7 -_08104210: .4byte 0xFFFFA000 -_08104214: .4byte sub_080A67B4 -_08104218: .4byte DestroyAnimSprite - thumb_func_end AnimSonicBoomProjectile - - thumb_func_start sub_0810421C -sub_0810421C: @ 0x0810421C - push {lr} - adds r3, r0, #0 - ldrh r0, [r3, #0x2e] - subs r1, r0, #1 - strh r1, [r3, #0x2e] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _08104246 - ldr r2, _0810424C - movs r0, #0x3c - ldrsh r1, [r3, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrh r1, [r0, #0xa] - subs r1, #1 - strh r1, [r0, #0xa] - adds r0, r3, #0 - bl DestroySprite -_08104246: - pop {r0} - bx r0 - .align 2, 0 -_0810424C: .4byte gUnknown_3005B60 - thumb_func_end sub_0810421C - - thumb_func_start sub_08104250 -sub_08104250: @ 0x08104250 - push {r4, lr} - adds r2, r0, #0 - movs r0, #0x3c - ldrsh r1, [r2, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - ldr r1, _08104280 - adds r4, r0, r1 - movs r3, #0x2e - ldrsh r1, [r2, r3] - movs r3, #0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - ble _08104284 - ldrh r0, [r2, #0x34] - ldrh r1, [r2, #0x38] - adds r0, r0, r1 - strh r0, [r2, #0x38] - ldrh r0, [r2, #0x36] - ldrh r3, [r2, #0x3a] - adds r0, r0, r3 - b _08104292 - .align 2, 0 -_08104280: .4byte gUnknown_3005B60 -_08104284: - ldrh r0, [r2, #0x38] - ldrh r1, [r2, #0x34] - subs r0, r0, r1 - strh r0, [r2, #0x38] - ldrh r0, [r2, #0x3a] - ldrh r1, [r2, #0x36] - subs r0, r0, r1 -_08104292: - 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, r0, r1 - strh r0, [r2, #0x32] - ldrh r1, [r4, #0x16] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081042B6 - lsls r0, r3, #0x10 - lsrs r0, r0, #0x18 - rsbs r0, r0, #0 - b _081042BA -_081042B6: - lsls r0, r3, #0x10 - lsrs r0, r0, #0x18 -_081042BA: - strh r0, [r2, #0x24] - ldrh r1, [r4, #0x18] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081042CE - ldrh r0, [r2, #0x32] - lsrs r0, r0, #8 - rsbs r0, r0, #0 - b _081042D2 -_081042CE: - ldrh r0, [r2, #0x32] - lsrs r0, r0, #8 -_081042D2: - strh r0, [r2, #0x26] - ldrh r0, [r2, #0x2e] - subs r1, r0, #1 - strh r1, [r2, #0x2e] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _081042E8 - movs r0, #0x1e - strh r0, [r2, #0x2e] - ldr r0, _081042F0 - str r0, [r2, #0x1c] -_081042E8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081042F0: .4byte sub_0810421C - thumb_func_end sub_08104250 - - thumb_func_start sub_081042F4 -sub_081042F4: @ 0x081042F4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - movs r0, #0x3c - ldrsh r1, [r7, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - ldr r1, _08104338 - adds r6, r0, r1 - ldrh r2, [r6, #0x16] - movs r1, #2 - rsbs r1, r1, #0 - 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, r1, r0 - strh r1, [r7, #0x32] - ldrh r1, [r6, #0x16] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0810433C - lsls r0, r2, #0x10 - lsrs r0, r0, #0x18 - rsbs r0, r0, #0 - b _08104340 - .align 2, 0 -_08104338: .4byte gUnknown_3005B60 -_0810433C: - lsls r0, r2, #0x10 - lsrs r0, r0, #0x18 -_08104340: - strh r0, [r7, #0x24] - ldrh r1, [r6, #0x18] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08104354 - ldrh r0, [r7, #0x32] - lsrs r0, r0, #8 - rsbs r0, r0, #0 - b _08104358 -_08104354: - ldrh r0, [r7, #0x32] - lsrs r0, r0, #8 -_08104358: - strh r0, [r7, #0x26] - ldrh r0, [r7, #0x2e] - subs r1, r0, #1 - strh r1, [r7, #0x2e] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _08104424 - movs r4, #0 - movs r0, #8 - strh r0, [r7, #0x2e] - movs r0, #4 - strh r0, [r6, #0x12] - movs r0, #0x80 - lsls r0, r0, #5 - bl sub_08151600 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - 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, 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, #0x10 - asrs r0, r0, #0x10 - cmp r1, r0 - blt _081043A2 - subs r0, r3, r2 - b _081043A4 -_081043A2: - subs r0, r2, r3 -_081043A4: - lsls r0, r0, #0x18 - lsrs r4, r0, #0x10 - 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 _081043BC - subs r0, r3, r2 - b _081043BE -_081043BC: - subs r0, r2, r3 -_081043BE: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x10 - 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, #0x10 - asrs r0, r0, #0x10 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - adds r1, r5, #0 - bl sub_08151510 - adds r4, r0, #0 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - movs r6, #0xe0 - lsls r6, r6, #1 - adds r0, r6, #0 - bl sub_08151600 - adds r1, r0, #0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r4, #0 - bl sub_08151510 - strh r0, [r7, #0x34] - mov r1, r8 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - adds r1, r5, #0 - bl sub_08151510 - adds r4, r0, #0 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - adds r0, r6, #0 - bl sub_08151600 - adds r1, r0, #0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r4, #0 - bl sub_08151510 - strh r0, [r7, #0x36] - ldr r0, _08104430 - str r0, [r7, #0x1c] -_08104424: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08104430: .4byte sub_08104250 - thumb_func_end sub_081042F4 - - thumb_func_start sub_08104434 -sub_08104434: @ 0x08104434 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _08104458 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0xa - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08104452 - adds r0, r2, #0 - bl DestroyAnimVisualTask -_08104452: - pop {r0} - bx r0 - .align 2, 0 -_08104458: .4byte gUnknown_3005B60 - thumb_func_end sub_08104434 - - thumb_func_start sub_0810445C -sub_0810445C: @ 0x0810445C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r1, _081044B0 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r5, r0, r1 - ldrh r0, [r5, #8] - subs r1, r0, #1 - strh r1, [r5, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _08104530 - ldr r0, _081044B4 - movs r2, #0x1a - ldrsh r1, [r5, r2] - movs r3, #0x1c - ldrsh r2, [r5, r3] - ldrb r3, [r5, #0xc] - ldrb r4, [r5, #0xa] - subs r3, r3, r4 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov ip, r0 - lsls r0, r0, #4 - add r0, ip - lsls r0, r0, #2 - ldr r1, _081044B8 - adds r6, r0, r1 - movs r1, #0x10 - ldrsh r0, [r5, r1] - cmp r0, #1 - beq _081044BC - cmp r0, #2 - beq _081044D2 - b _081044E0 - .align 2, 0 -_081044B0: .4byte gUnknown_3005B60 -_081044B4: .4byte gUnknown_856EF94 -_081044B8: .4byte gUnknown_20205AC -_081044BC: - ldrb r2, [r6, #3] - lsls r1, r2, #0x1a - lsrs r1, r1, #0x1b - movs r0, #0x18 - orrs r1, r0 - lsls r1, r1, #1 - subs r0, #0x57 - ands r0, r2 - orrs r0, r1 - strb r0, [r6, #3] - b _081044E0 -_081044D2: - ldrb r0, [r6, #3] - movs r1, #0x3f - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #0x10 - orrs r1, r0 - strb r1, [r6, #3] -_081044E0: - ldr r3, _08104538 - lsls r2, r7, #2 - adds r2, r2, r7 - lsls r2, r2, #3 - adds r4, r2, r3 - ldrh r0, [r4, #0x12] - ldrh r1, [r4, #0x14] - subs r0, r0, r1 - strh r0, [r6, #0x2e] - strh r7, [r6, #0x3c] - movs r1, #0xa - ldrsh r0, [r4, r1] - adds r0, #0xd - lsls r0, r0, #1 - adds r0, r0, r2 - adds r3, #8 - adds r0, r0, r3 - mov r2, ip - strh r2, [r0] - ldrh r0, [r4, #0xe] - strh r0, [r4, #8] - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - movs r0, #0x3f - rsbs r0, r0, #0 - bl BattleAnimAdjustPanning - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r0, #0x9a - bl PlaySE12WithPanning - movs r3, #0xa - ldrsh r0, [r4, r3] - cmp r0, #2 - ble _08104530 - ldr r0, _0810453C - str r0, [r4] -_08104530: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08104538: .4byte gUnknown_3005B60 -_0810453C: .4byte sub_08104434 - thumb_func_end sub_0810445C - - thumb_func_start sub_08104540 -sub_08104540: @ 0x08104540 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r0, #0 - mov sb, r0 - movs r5, #0 - mov r0, sp - mov r1, sb - strh r1, [r0] - mov r4, sp - adds r4, #2 - strh r1, [r4] - bl IsContest - lsls r0, r0, #0x18 - mov sl, r4 - cmp r0, #0 - beq _081045AC - ldr r1, _0810459C - lsls r2, r7, #2 - adds r0, r2, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #2 - strh r1, [r0, #0x10] - ldr r3, _081045A0 - ldrh r0, [r3] - rsbs r0, r0, #0 - strh r0, [r3] - ldrh r1, [r3, #4] - movs r0, #1 - ands r0, r1 - mov r8, r2 - cmp r0, #0 - beq _081045A4 - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r1 - strh r0, [r3, #4] - b _08104606 - .align 2, 0 -_0810459C: .4byte gUnknown_3005B60 -_081045A0: .4byte gUnknown_20380BE -_081045A4: - movs r0, #1 - orrs r0, r1 - strh r0, [r3, #4] - b _08104606 -_081045AC: - ldr r1, _081045F0 - ldr r0, _081045F4 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - lsls r2, r7, #2 - mov r8, r2 - cmp r0, #0 - bne _08104606 - ldr r1, _081045F8 - adds r0, r2, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r3, [r0, #0x10] - ldr r2, _081045FC - ldrh r0, [r2] - rsbs r0, r0, #0 - strh r0, [r2] - ldrh r0, [r2, #2] - rsbs r0, r0, #0 - strh r0, [r2, #2] - ldrh r1, [r2, #4] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08104600 - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r1 - b _08104604 - .align 2, 0 -_081045F0: .4byte gUnknown_2023D1A -_081045F4: .4byte gUnknown_20380D7 -_081045F8: .4byte gUnknown_3005B60 -_081045FC: .4byte gUnknown_20380BE -_08104600: - movs r0, #1 - orrs r0, r1 -_08104604: - strh r0, [r2, #4] -_08104606: - ldr r5, _08104660 - ldrb r0, [r5] - movs r1, #0 - bl GetBattlerSpriteCoord - ldr r1, _08104664 - mov r3, r8 - adds r4, r3, r7 - lsls r4, r4, #3 - adds r4, r4, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x1a] - adds r6, r0, #0 - ldrb r0, [r5] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x1c] - mov sb, r0 - ldr r0, _08104668 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08104670 - ldr r4, _0810466C - ldrb r1, [r4] - movs r0, #2 - eors r0, r1 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08104670 - ldrb r0, [r4] - movs r1, #0 - mov r2, sp - mov r3, sl - bl SetAverageBattlerPositions - b _08104692 - .align 2, 0 -_08104660: .4byte gUnknown_20380D6 -_08104664: .4byte gUnknown_3005B60 -_08104668: .4byte gUnknown_2022C90 -_0810466C: .4byte gUnknown_20380D7 -_08104670: - mov r5, sp - ldr r4, _081046CC - ldrb r0, [r4] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5] - ldrb r0, [r4] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, sl - strh r0, [r1] -_08104692: - mov r4, sp - ldr r0, _081046D0 - mov r2, r8 - adds r1, r2, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - mov r2, sp - ldr r3, _081046D4 - ldrh r0, [r3] - ldrh r2, [r2] - adds r0, r0, r2 - strh r0, [r1, #0x1e] - strh r0, [r4] - ldrh r0, [r3, #2] - mov r3, sl - ldrh r3, [r3] - adds r0, r0, r3 - strh r0, [r1, #0x20] - mov r1, sl - strh r0, [r1] - mov r0, sp - ldrh r2, [r0] - movs r3, #0 - ldrsh r0, [r0, r3] - adds r1, r6, #0 - cmp r0, r1 - blt _081046D8 - subs r0, r2, r1 - b _081046DA - .align 2, 0 -_081046CC: .4byte gUnknown_20380D7 -_081046D0: .4byte gUnknown_3005B60 -_081046D4: .4byte gUnknown_20380BE -_081046D8: - subs r0, r1, r2 -_081046DA: - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r4, r0, #0x10 - asrs r4, r4, #0x10 - ldr r5, _08104750 - ldrh r1, [r5, #4] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - bl sub_08151600 - adds r1, r0, #0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r4, #0 - bl sub_08151510 - ldr r2, _08104754 - mov r3, r8 - adds r1, r3, r7 - lsls r1, r1, #3 - adds r6, r1, r2 - strh r0, [r6, #0x12] - movs r1, #0x12 - ldrsh r0, [r6, r1] - movs r1, #0x80 - bl sub_08151510 - strh r0, [r6, #0x14] - ldrh r0, [r5, #4] - strh r0, [r6, #0x16] - mov r2, sl - ldrh r1, [r2] - movs r3, #0 - ldrsh r0, [r2, r3] - mov r4, sb - cmp r0, r4 - blt _08104758 - subs r4, r1, r4 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - movs r1, #0x12 - ldrsh r0, [r6, r1] - bl sub_08151600 - adds r1, r0, #0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r4, #0 - bl sub_08151510 - movs r1, #2 - rsbs r1, r1, #0 - ands r1, r0 - strh r1, [r6, #0x18] - b _08104778 - .align 2, 0 -_08104750: .4byte gUnknown_20380BE -_08104754: .4byte gUnknown_3005B60 -_08104758: - subs r4, r4, r1 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - movs r2, #0x12 - ldrsh r0, [r6, r2] - bl sub_08151600 - adds r1, r0, #0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r4, #0 - bl sub_08151510 - movs r1, #1 - orrs r0, r1 - strh r0, [r6, #0x18] -_08104778: - ldr r1, _081047B8 - mov r3, r8 - adds r0, r3, r7 - lsls r0, r0, #3 - adds r5, r0, r1 - ldr r4, _081047BC - ldrh r0, [r4, #6] - strh r0, [r5, #0xe] - ldrh r1, [r4, #8] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _081047C8 - movs r0, #0x80 - eors r0, r1 - strh r0, [r4, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3f - ble _081047F0 - ldr r0, _081047C0 - ldrb r0, [r0] - bl GetBattlerSpriteSubpriority - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _081047C4 - adds r1, r2, #0 - ldrh r4, [r4, #8] - adds r1, r1, r4 - adds r0, r0, r1 - b _08104800 - .align 2, 0 -_081047B8: .4byte gUnknown_3005B60 -_081047BC: .4byte gUnknown_20380BE -_081047C0: .4byte gUnknown_20380D7 -_081047C4: .4byte 0x0000FFC0 -_081047C8: - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3f - ble _081047F0 - ldr r0, _081047E8 - ldrb r0, [r0] - bl GetBattlerSpriteSubpriority - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _081047EC - adds r1, r3, #0 - ldrh r4, [r4, #8] - adds r1, r1, r4 - adds r0, r0, r1 - b _08104800 - .align 2, 0 -_081047E8: .4byte gUnknown_20380D7 -_081047EC: .4byte 0x0000FFC0 -_081047F0: - ldr r0, _0810482C - ldrb r0, [r0] - bl GetBattlerSpriteSubpriority - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #8] - subs r0, r0, r1 -_08104800: - strh r0, [r5, #0xc] - ldr r0, _08104830 - mov r2, r8 - adds r1, r2, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r3, #0xc - ldrsh r0, [r1, r3] - cmp r0, #2 - bgt _08104818 - movs r0, #3 - strh r0, [r1, #0xc] -_08104818: - ldr r0, _08104834 - str r0, [r1] - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0810482C: .4byte gUnknown_20380D7 -_08104830: .4byte gUnknown_3005B60 -_08104834: .4byte sub_0810445C - thumb_func_end sub_08104540 - - thumb_func_start sub_08104838 -sub_08104838: @ 0x08104838 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl InitSpritePosToAnimAttacker - ldr r0, _08104860 - ldrh r0, [r0, #2] - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x14 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r0, r1 - strh r0, [r4, #0x2e] - ldr r0, _08104864 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08104860: .4byte gUnknown_856F084 -_08104864: .4byte sub_08104868 - thumb_func_end sub_08104838 - - thumb_func_start sub_08104868 -sub_08104868: @ 0x08104868 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - bne _081048CC - movs r0, #0 - strh r0, [r4, #0x30] - ldrh r5, [r4, #0x2e] - ldr r1, _081048D4 - adds r0, r5, #0 - adds r0, #8 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r7, [r0] - adds r6, r1, #0 - adds r1, r5, #0 - adds r1, #9 - lsls r0, r5, #1 - adds r0, r0, r6 - adds r2, r0, #0 - adds r2, #0x10 - movs r3, #7 - lsls r1, r1, #1 - adds r1, r1, r6 -_081048A0: - ldrh r0, [r1] - strh r0, [r2] - adds r1, #2 - adds r2, #2 - subs r3, #1 - cmp r3, #0 - bge _081048A0 - adds r0, r5, #0 - adds r0, #0xf - lsls r0, r0, #1 - adds r0, r0, r6 - strh r7, [r0] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x18 - bne _081048CC - adds r0, r4, #0 - bl DestroyAnimSprite -_081048CC: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081048D4: .4byte gUnknown_20377B4 - thumb_func_end sub_08104868 - - thumb_func_start sub_081048D8 -sub_081048D8: @ 0x081048D8 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r5, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldr r4, _08104978 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - ldr r4, _0810497C - lsrs r0, r0, #0x18 - ldrh r1, [r4, #6] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - ldr r0, _08104980 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810491C - ldrh r0, [r4, #4] - rsbs r0, r0, #0 - strh r0, [r4, #4] -_0810491C: - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - ldrh r1, [r4, #4] - adds r0, r0, r1 - lsls r0, r0, #0x10 - ldrh r1, [r5, #0x20] - lsrs r6, r0, #0x10 - asrs r0, r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrh r2, [r5, #0x22] - lsls r1, r7, #0x10 - asrs r1, r1, #0x10 - subs r1, r1, r2 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl ArcTan2Neg - lsls r0, r0, #0x10 - movs r1, #0xc0 - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r0, r0, #0x10 - movs r3, #0x80 - lsls r3, r3, #1 - str r0, [sp] - adds r0, r5, #0 - movs r1, #0 - adds r2, r3, #0 - bl TrySetSpriteRotScale - ldrh r0, [r4, #8] - strh r0, [r5, #0x2e] - strh r6, [r5, #0x32] - strh r7, [r5, #0x36] - ldr r0, _08104984 - str r0, [r5, #0x1c] - ldr r1, _08104988 - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08104978: .4byte gUnknown_20380D7 -_0810497C: .4byte gUnknown_20380BE -_08104980: .4byte gUnknown_20380D6 -_08104984: .4byte sub_080A68C8 -_08104988: .4byte DestroyAnimSprite - thumb_func_end sub_081048D8 - - thumb_func_start sub_0810498C -sub_0810498C: @ 0x0810498C - ldr r1, _0810499C - strh r1, [r0, #0x32] - ldrh r1, [r0, #0x22] - adds r1, #8 - strh r1, [r0, #0x22] - ldr r1, _081049A0 - str r1, [r0, #0x1c] - bx lr - .align 2, 0 -_0810499C: .4byte 0x0000FFF0 -_081049A0: .4byte sub_081049A4 - thumb_func_end sub_0810498C - - thumb_func_start sub_081049A4 -sub_081049A4: @ 0x081049A4 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - adds r0, #0x80 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - strh r0, [r4, #0x24] - ldr r0, _08104A10 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081049C8 - ldrh r0, [r4, #0x24] - rsbs r0, r0, #0 - strh r0, [r4, #0x24] -_081049C8: - 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, #5 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x7e - ble _08104A08 - movs r0, #0 - strh r0, [r4, #0x30] - movs r1, #0x32 - ldrsh r0, [r4, r1] - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - strh r0, [r4, #0x32] - ldrh r0, [r4, #0x34] - adds r0, #1 - strh r0, [r4, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - bne _08104A08 - adds r0, r4, #0 - bl DestroyAnimSprite -_08104A08: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08104A10: .4byte gUnknown_20380D6 - thumb_func_end sub_081049A4 - - thumb_func_start sub_08104A14 -sub_08104A14: @ 0x08104A14 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - movs r0, #0x14 - strh r0, [r4, #0x2e] - ldr r5, _08104A60 - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x32] - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x36] - ldr r0, _08104A64 - 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, _08104A68 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08104A60: .4byte gUnknown_20380D7 -_08104A64: .4byte sub_080A67B4 -_08104A68: .4byte sub_08104A6C - thumb_func_end sub_08104A14 - - thumb_func_start sub_08104A6C -sub_08104A6C: @ 0x08104A6C - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x3f - bl BattleAnimAdjustPanning - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r0, #0xa6 - bl PlaySE12WithPanning - ldrh r0, [r4, #0x24] - ldrh r1, [r4, #0x20] - adds r0, r0, r1 - movs r1, #0 - strh r0, [r4, #0x20] - ldrh r0, [r4, #0x26] - ldrh r2, [r4, #0x22] - adds r0, r0, r2 - strh r0, [r4, #0x22] - strh r1, [r4, #0x26] - strh r1, [r4, #0x24] - movs r2, #0 - movs r1, #7 - adds r0, r4, #0 - adds r0, #0x3c -_08104AA0: - strh r2, [r0] - subs r0, #2 - subs r1, #1 - cmp r1, #0 - bge _08104AA0 - bl sub_0806F0A4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #7 - ands r0, r1 - ldr r2, _08104AE8 - adds r1, r2, #0 - subs r1, r1, r0 - strh r1, [r4, #0x3a] - bl sub_0806F0A4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa0 - bl __umodsi3 - adds r0, #0xa0 - strh r0, [r4, #0x3c] - ldr r0, _08104AEC - 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 -_08104AE8: .4byte 0x0000FFF4 -_08104AEC: .4byte sub_08104AF0 - thumb_func_end sub_08104A6C - - thumb_func_start sub_08104AF0 -sub_08104AF0: @ 0x08104AF0 - 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, r0, #0x10 - asrs r2, r0, #0x18 - strh r2, [r4, #0x24] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08104B0E - rsbs r0, r2, #0 - strh r0, [r4, #0x24] -_08104B0E: - 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, #8 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x7e - ble _08104B4E - movs r0, #0 - strh r0, [r4, #0x30] - movs r1, #0x32 - ldrsh r0, [r4, r1] - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - strh r0, [r4, #0x32] - ldrh r0, [r4, #0x34] - adds r0, #1 - strh r0, [r4, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - bne _08104B4E - adds r0, r4, #0 - bl DestroyAnimSprite -_08104B4E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08104AF0 - - thumb_func_start Anim_RazorWindTornado -Anim_RazorWindTornado: @ 0x08104B54 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl InitSpritePosToAnimAttacker - ldr r0, _08104BA4 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08104B72 - ldrh r0, [r4, #0x22] - adds r0, #0x10 - strh r0, [r4, #0x22] -_08104B72: - ldr r1, _08104BA8 - ldrh r0, [r1, #8] - strh r0, [r4, #0x2e] - ldrh r0, [r1, #4] - strh r0, [r4, #0x30] - ldrh r0, [r1, #0xa] - strh r0, [r4, #0x32] - ldrh r0, [r1, #0xc] - strh r0, [r4, #0x34] - ldrh r0, [r1, #6] - strh r0, [r4, #0x36] - ldr r0, _08104BAC - str r0, [r4, #0x1c] - ldr r1, _08104BB0 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - ldr r1, [r4, #0x1c] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08104BA4: .4byte gUnknown_20380D6 -_08104BA8: .4byte gUnknown_20380BE -_08104BAC: .4byte TranslateSpriteInCircleOverDuration -_08104BB0: .4byte DestroyAnimSprite - thumb_func_end Anim_RazorWindTornado - - thumb_func_start Anim_ViceGripPincer -Anim_ViceGripPincer: @ 0x08104BB4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - movs r7, #0x20 - ldr r4, _08104C30 - movs r0, #0x10 - mov r8, r0 - ldr r6, _08104C34 - ldr r0, _08104C38 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _08104BE0 - adds r7, r4, #0 - movs r4, #0x20 - mov r8, r6 - movs r6, #0x10 - adds r0, r5, #0 - movs r1, #1 - bl StartSpriteAnim -_08104BE0: - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - ldrh r1, [r5, #0x20] - adds r0, r0, r1 - strh r0, [r5, #0x20] - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - ldrh r1, [r5, #0x22] - adds r0, r0, r1 - strh r0, [r5, #0x22] - movs r0, #6 - strh r0, [r5, #0x2e] - ldr r4, _08104C3C - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add r0, r8 - strh r0, [r5, #0x32] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r6 - strh r0, [r5, #0x36] - ldr r0, _08104C40 - str r0, [r5, #0x1c] - ldr r1, _08104C44 - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08104C30: .4byte 0x0000FFE0 -_08104C34: .4byte 0x0000FFF0 -_08104C38: .4byte gUnknown_20380BE -_08104C3C: .4byte gUnknown_20380D7 -_08104C40: .4byte sub_080A67B4 -_08104C44: .4byte sub_08104C48 - thumb_func_end Anim_ViceGripPincer - - thumb_func_start sub_08104C48 -sub_08104C48: @ 0x08104C48 - push {lr} - adds r2, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08104C5E - adds r0, r2, #0 - bl DestroyAnimSprite -_08104C5E: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08104C48 - - thumb_func_start Anim_GuillotinePincer -Anim_GuillotinePincer: @ 0x08104C64 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - movs r0, #0x20 - mov r8, r0 - ldr r4, _08104CF8 - movs r2, #0x10 - mov sb, r2 - ldr r6, _08104CFC - ldr r7, _08104D00 - ldrh r1, [r7] - movs r2, #0 - ldrsh r0, [r7, r2] - cmp r0, #0 - beq _08104C98 - mov r8, r4 - movs r4, #0x20 - mov sb, r6 - movs r6, #0x10 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl StartSpriteAnim -_08104C98: - mov r0, r8 - lsls r1, r0, #0x10 - asrs r1, r1, #0x10 - ldrh r2, [r5, #0x20] - adds r1, r1, r2 - strh r1, [r5, #0x20] - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - ldrh r2, [r5, #0x22] - adds r0, r0, r2 - strh r0, [r5, #0x22] - movs r0, #6 - strh r0, [r5, #0x2e] - strh r1, [r5, #0x30] - ldr r4, _08104D04 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add r0, sb - strh r0, [r5, #0x32] - ldrh r0, [r5, #0x22] - strh r0, [r5, #0x34] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r6 - strh r0, [r5, #0x36] - adds r0, r5, #0 - bl InitAnimLinearTranslation - ldrh r0, [r7] - strh r0, [r5, #0x38] - ldrh r0, [r5, #0x2e] - strh r0, [r5, #0x3a] - ldr r0, _08104D08 - str r0, [r5, #0x1c] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08104CF8: .4byte 0x0000FFE0 -_08104CFC: .4byte 0x0000FFF0 -_08104D00: .4byte gUnknown_20380BE -_08104D04: .4byte gUnknown_20380D7 -_08104D08: .4byte Anim_GuillotinePincerStep1 - thumb_func_end Anim_GuillotinePincer - - thumb_func_start Anim_GuillotinePincerStep1 -Anim_GuillotinePincerStep1: @ 0x08104D0C - push {r4, lr} - adds r4, r0, #0 - bl AnimTranslateLinear - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08104D70 - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08104D70 - 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, r0, r1 - movs r2, #0 - strh r0, [r4, #0x20] - ldrh r0, [r4, #0x26] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] - movs r0, #2 - strh r0, [r4, #0x24] - ldr r0, _08104D78 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x3a] - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x30] - movs r1, #1 - 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, _08104D7C - str r0, [r4, #0x1c] -_08104D70: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08104D78: .4byte 0x0000FFFE -_08104D7C: .4byte Anim_GuillotinePincerStep2 - thumb_func_end Anim_GuillotinePincerStep1 - - thumb_func_start Anim_GuillotinePincerStep2 -Anim_GuillotinePincerStep2: @ 0x08104D80 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x34 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _08104D98 - ldrh r0, [r4, #0x24] - rsbs r0, r0, #0 - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x26] - rsbs r0, r0, #0 - strh r0, [r4, #0x26] -_08104D98: - ldrh r0, [r4, #0x34] - movs r1, #1 - eors r0, r1 - movs r1, #0 - strh r0, [r4, #0x34] - ldrh r0, [r4, #0x36] - adds r0, #1 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x33 - bne _08104DDA - 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 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldrh r0, [r4, #0x38] - movs r1, #1 - eors r1, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim - ldr r0, _08104DE0 - str r0, [r4, #0x1c] -_08104DDA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08104DE0: .4byte sub_08104DE4 - thumb_func_end Anim_GuillotinePincerStep2 - - thumb_func_start sub_08104DE4 -sub_08104DE4: @ 0x08104DE4 - push {r4, lr} - adds r4, r0, #0 - bl AnimTranslateLinear - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08104DF8 - adds r0, r4, #0 - bl DestroyAnimSprite -_08104DF8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08104DE4 - - thumb_func_start AnimTask_GrowAndGreyscale -AnimTask_GrowAndGreyscale: @ 0x08104E00 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - movs r0, #1 - bl GetAnimBattlerSpriteId - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #1 - bl PrepareBattlerSpriteForRotScale - adds r0, r4, #0 - movs r1, #0xd0 - movs r2, #0xd0 - movs r3, #0 - bl SetSpriteRotScale - ldr r1, _08104E58 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #5] - lsrs r0, r0, #4 - adds r0, #0x10 - movs r1, #0 - bl SetGreyscaleOrOriginalPalette - ldr r1, _08104E5C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0x50 - strh r1, [r0, #8] - ldr r1, _08104E60 - str r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08104E58: .4byte gUnknown_20205AC -_08104E5C: .4byte gUnknown_3005B60 -_08104E60: .4byte AnimTask_GrowAndGreyscaleStep - thumb_func_end AnimTask_GrowAndGreyscale - - thumb_func_start AnimTask_GrowAndGreyscaleStep -AnimTask_GrowAndGreyscaleStep: @ 0x08104E64 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _08104EBC - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #8] - subs r1, #1 - strh r1, [r0, #8] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _08104EB4 - movs r0, #1 - bl GetAnimBattlerSpriteId - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl ResetSpriteRotScale - ldr r1, _08104EC0 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #5] - lsrs r0, r0, #4 - adds r0, #0x10 - movs r1, #1 - bl SetGreyscaleOrOriginalPalette - adds r0, r5, #0 - bl DestroyAnimVisualTask -_08104EB4: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08104EBC: .4byte gUnknown_3005B60 -_08104EC0: .4byte gUnknown_20205AC - thumb_func_end AnimTask_GrowAndGreyscaleStep - - thumb_func_start AnimTask_Minimize -AnimTask_Minimize: @ 0x08104EC4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _08104F10 - adds r4, r4, r0 - movs r0, #0 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r5, #0 - strh r0, [r4, #8] - movs r1, #0 - bl PrepareBattlerSpriteForRotScale - strh r5, [r4, #0xa] - strh r5, [r4, #0xc] - strh r5, [r4, #0xe] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x10] - strh r5, [r4, #0x12] - strh r5, [r4, #0x14] - ldr r0, _08104F14 - ldrb r0, [r0] - bl GetBattlerSpriteSubpriority - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x16] - ldr r0, _08104F18 - str r0, [r4] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08104F10: .4byte gUnknown_3005B60 -_08104F14: .4byte gUnknown_20380D6 -_08104F18: .4byte AnimTask_MinimizeStep1 - thumb_func_end AnimTask_Minimize - - thumb_func_start AnimTask_MinimizeStep1 -AnimTask_MinimizeStep1: @ 0x08104F1C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _08104F40 - adds r4, r0, r1 - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #5 - bls _08104F36 - b _08105046 -_08104F36: - lsls r0, r0, #2 - ldr r1, _08104F44 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08104F40: .4byte gUnknown_3005B60 -_08104F44: .4byte _08104F48 -_08104F48: @ jump table - .4byte _08104F60 @ case 0 - .4byte _08104FA8 @ case 1 - .4byte _08104FDE @ case 2 - .4byte _08104FE4 @ case 3 - .4byte _08104FF4 @ case 4 - .4byte _08105028 @ case 5 -_08104F60: - movs r2, #0xc - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _08104F70 - cmp r0, #3 - beq _08104F70 - cmp r0, #6 - bne _08104F78 -_08104F70: - adds r0, r4, #0 - adds r1, r5, #0 - bl CreateMinimizeSprite -_08104F78: - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0x10] - adds r0, #0x28 - strh r0, [r4, #0x10] - ldrb r0, [r4, #8] - movs r1, #0x10 - ldrsh r2, [r4, r1] - adds r1, r2, #0 - movs r3, #0 - bl SetSpriteRotScale - ldrb r0, [r4, #8] - bl SetBattlerSpriteYOffsetFromYScale - movs r2, #0xc - ldrsh r0, [r4, r2] - cmp r0, #0x20 - bne _08105046 - ldrh r0, [r4, #0x12] - adds r0, #1 - strh r0, [r4, #0x12] - b _08105020 -_08104FA8: - movs r1, #0x14 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08105046 - movs r2, #0x12 - ldrsh r1, [r4, r2] - cmp r1, #3 - bne _08104FBE - strh r0, [r4, #0xc] - strh r1, [r4, #0xa] - b _08105046 -_08104FBE: - strh r0, [r4, #0xc] - strh r0, [r4, #0xe] - movs r2, #0x80 - lsls r2, r2, #1 - strh r2, [r4, #0x10] - ldrb r0, [r4, #8] - adds r1, r2, #0 - movs r3, #0 - bl SetSpriteRotScale - ldrb r0, [r4, #8] - bl SetBattlerSpriteYOffsetFromYScale - movs r0, #2 - strh r0, [r4, #0xa] - b _08105046 -_08104FDE: - movs r0, #0 - strh r0, [r4, #0xa] - b _08105046 -_08104FE4: - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x20 - ble _08105046 - b _0810501C -_08104FF4: - ldrh r0, [r4, #0xc] - adds r0, #2 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0x10] - subs r0, #0x50 - strh r0, [r4, #0x10] - ldrb r0, [r4, #8] - movs r1, #0x10 - ldrsh r2, [r4, r1] - adds r1, r2, #0 - movs r3, #0 - bl SetSpriteRotScale - ldrb r0, [r4, #8] - bl SetBattlerSpriteYOffsetFromYScale - movs r2, #0xc - ldrsh r0, [r4, r2] - cmp r0, #0x20 - bne _08105046 -_0810501C: - movs r0, #0 - strh r0, [r4, #0xc] -_08105020: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - b _08105046 -_08105028: - ldrb r0, [r4, #8] - bl ResetSpriteRotScale - ldr r2, _0810504C - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0 - strh r1, [r0, #0x26] - adds r0, r5, #0 - bl DestroyAnimVisualTask -_08105046: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810504C: .4byte gUnknown_20205AC - thumb_func_end AnimTask_MinimizeStep1 - - thumb_func_start CreateMinimizeSprite -CreateMinimizeSprite: @ 0x08105050 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sb, r1 - movs r0, #0 - bl CloneBattlerSpriteWithBlend - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - lsls r0, r0, #0x10 - asrs r4, r0, #0x10 - cmp r4, #0 - blt _0810512A - bl sub_080080C8 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0xff - bne _08105094 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - ldr r1, _08105090 - adds r0, r0, r1 - bl obj_delete_but_dont_free_vram - b _0810512A - .align 2, 0 -_08105090: .4byte gUnknown_20205AC -_08105094: - ldr r5, _08105138 - lsls r3, r4, #4 - adds r3, r3, r4 - lsls r3, r3, #2 - adds r4, r3, r5 - ldrb r1, [r4, #1] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #1] - 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, #3] - movs r0, #0x3f - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #3] - ldrb r0, [r7, #0x16] - ldrb r1, [r7, #0xe] - subs r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x43 - strb r0, [r1] - ldrh r0, [r7, #0xe] - adds r0, #1 - strh r0, [r7, #0xe] - ldrh r0, [r7, #0x14] - adds r0, #1 - strh r0, [r7, #0x14] - movs r0, #0x10 - strh r0, [r4, #0x2e] - mov r0, sb - strh r0, [r4, #0x30] - movs r0, #6 - strh r0, [r4, #0x32] - adds r5, #0x1c - adds r3, r3, r5 - ldr r0, _0810513C - str r0, [r3] - mov r1, r8 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x10 - ldrsh r2, [r7, r1] - adds r1, r2, #0 - movs r3, #0 - bl SetSpriteRotScale - ldrb r0, [r4, #1] - movs r3, #4 - rsbs r3, r3, #0 - ands r3, r0 - movs r0, #1 - orrs r3, r0 - strb r3, [r4, #1] - lsrs r1, r3, #6 - ldrb r2, [r4, #3] - lsrs r2, r2, #6 - lsls r3, r3, #0x1e - lsrs r3, r3, #0x1e - adds r0, r4, #0 - bl CalcCenterToCornerVec -_0810512A: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08105138: .4byte gUnknown_20205AC -_0810513C: .4byte ClonedMinizeSprite_Step - thumb_func_end CreateMinimizeSprite - - thumb_func_start ClonedMinizeSprite_Step -ClonedMinizeSprite_Step: @ 0x08105140 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - subs r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0810517E - ldr r3, _08105184 - movs r0, #0x32 - ldrsh r1, [r4, r0] - lsls r1, r1, #1 - movs r0, #0x30 - ldrsh r2, [r4, r0] - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r1, r1, r0 - adds r3, #8 - adds r1, r1, r3 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - ldrb r0, [r4, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - adds r0, r4, #0 - bl obj_delete_but_dont_free_vram -_0810517E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08105184: .4byte gUnknown_3005B60 - thumb_func_end ClonedMinizeSprite_Step - - thumb_func_start sub_08105188 -sub_08105188: @ 0x08105188 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _081051AC - adds r4, r0, r1 - ldr r5, _081051B0 - movs r1, #2 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _081051B4 - adds r0, r2, #0 - bl DestroyAnimVisualTask - b _081051DA - .align 2, 0 -_081051AC: .4byte gUnknown_3005B60 -_081051B0: .4byte gUnknown_20380BE -_081051B4: - ldrb r0, [r5] - bl GetAnimBattlerSpriteId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r2, #0 - strh r1, [r4, #8] - strh r2, [r4, #0xa] - ldrh r0, [r5, #2] - strh r0, [r4, #0xc] - strh r2, [r4, #0xe] - strh r2, [r4, #0x10] - ldr r2, _081051E0 - adds r0, r4, #0 - bl PrepareAffineAnimInTaskData - ldr r0, _081051E4 - str r0, [r4] -_081051DA: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081051E0: .4byte gUnknown_856F1CC -_081051E4: .4byte AnimTask_SplashStep - thumb_func_end sub_08105188 - - thumb_func_start AnimTask_SplashStep -AnimTask_SplashStep: @ 0x081051E8 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _0810520C - adds r4, r0, r1 - movs r0, #0xa - ldrsh r5, [r4, r0] - cmp r5, #1 - beq _08105250 - cmp r5, #1 - bgt _08105210 - cmp r5, #0 - beq _0810521A - b _081052F8 - .align 2, 0 -_0810520C: .4byte gUnknown_3005B60 -_08105210: - cmp r5, #2 - beq _08105284 - cmp r5, #3 - beq _081052B4 - b _081052F8 -_0810521A: - adds r0, r4, #0 - bl RunAffineAnimFromTaskData - ldrh r2, [r4, #0x10] - adds r2, #3 - strh r2, [r4, #0x10] - ldr r3, _0810524C - movs r0, #8 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r0, #0x26] - adds r1, r1, r2 - strh r1, [r0, #0x26] - ldrh r0, [r4, #0xe] - adds r0, #1 - strh r0, [r4, #0xe] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #7 - ble _081052F8 - strh r5, [r4, #0xe] - b _081052AC - .align 2, 0 -_0810524C: .4byte gUnknown_20205AC -_08105250: - adds r0, r4, #0 - bl RunAffineAnimFromTaskData - ldr r2, _08105280 - movs r0, #8 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r4, #0x10] - ldrh r2, [r0, #0x26] - adds r1, r1, r2 - strh r1, [r0, #0x26] - ldrh r0, [r4, #0xe] - adds r0, #1 - strh r0, [r4, #0xe] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #7 - ble _081052F8 - movs r0, #0 - strh r0, [r4, #0xe] - b _081052AC - .align 2, 0 -_08105280: .4byte gUnknown_20205AC -_08105284: - movs r1, #0x10 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _081052AC - ldr r2, _081052A8 - movs r0, #8 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x26] - subs r1, #2 - strh r1, [r0, #0x26] - ldrh r0, [r4, #0x10] - subs r0, #2 - strh r0, [r4, #0x10] - b _081052F8 - .align 2, 0 -_081052A8: .4byte gUnknown_20205AC -_081052AC: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - b _081052F8 -_081052B4: - adds r0, r4, #0 - bl RunAffineAnimFromTaskData - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _081052F8 - ldrh r0, [r4, #0xc] - subs r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _081052EC - ldr r2, _081052E8 - movs r0, #8 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r5, [r0, #0x26] - adds r0, r6, #0 - bl DestroyAnimVisualTask - b _081052F8 - .align 2, 0 -_081052E8: .4byte gUnknown_20205AC -_081052EC: - ldrb r1, [r4, #8] - ldr r2, _08105300 - adds r0, r4, #0 - bl PrepareAffineAnimInTaskData - strh r5, [r4, #0xa] -_081052F8: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08105300: .4byte gUnknown_856F1CC - thumb_func_end AnimTask_SplashStep - - thumb_func_start AnimTask_GrowAndShrink -AnimTask_GrowAndShrink: @ 0x08105304 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _08105334 - adds r4, r4, r0 - movs r0, #0 - bl GetAnimBattlerSpriteId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _08105338 - adds r0, r4, #0 - bl PrepareAffineAnimInTaskData - ldr r0, _0810533C - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08105334: .4byte gUnknown_3005B60 -_08105338: .4byte gUnknown_856F1EC -_0810533C: .4byte sub_08105340 - thumb_func_end AnimTask_GrowAndShrink - - thumb_func_start sub_08105340 -sub_08105340: @ 0x08105340 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _08105368 - adds r0, r0, r1 - bl RunAffineAnimFromTaskData - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08105360 - adds r0, r4, #0 - bl DestroyAnimVisualTask -_08105360: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08105368: .4byte gUnknown_3005B60 - thumb_func_end sub_08105340 - - thumb_func_start Anim_BreathPuff -Anim_BreathPuff: @ 0x0810536C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _0810539C - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081053A0 - adds r0, r4, #0 - movs r1, #0 - bl StartSpriteAnim - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #0x20 - strh r0, [r4, #0x20] - movs r0, #0x40 - b _081053BA - .align 2, 0 -_0810539C: .4byte gUnknown_20380D6 -_081053A0: - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAnim - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, #0x20 - strh r0, [r4, #0x20] - ldr r0, _081053EC -_081053BA: - strh r0, [r4, #0x30] - ldr r0, _081053F0 - ldrb r0, [r0] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - 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, _081053F4 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _081053F8 - str r0, [r4, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081053EC: .4byte 0x0000FFC0 -_081053F0: .4byte gUnknown_20380D6 -_081053F4: .4byte DestroyAnimSprite -_081053F8: .4byte TranslateSpriteLinearFixedPoint - thumb_func_end Anim_BreathPuff - - thumb_func_start Anim_AngerMark -Anim_AngerMark: @ 0x081053FC - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r0, _08105410 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08105418 - ldr r0, _08105414 - b _0810541A - .align 2, 0 -_08105410: .4byte gUnknown_20380BE -_08105414: .4byte gUnknown_20380D6 -_08105418: - ldr r0, _08105478 -_0810541A: - ldrb r5, [r0] - adds r0, r5, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08105434 - ldr r1, _0810547C - movs r2, #2 - ldrsh r0, [r1, r2] - rsbs r0, r0, #0 - strh r0, [r1, #2] -_08105434: - adds r0, r5, #0 - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - ldr r4, _0810547C - lsrs r0, r0, #0x18 - ldrh r1, [r4, #2] - adds r0, r0, r1 - strh r0, [r6, #0x20] - adds r0, r5, #0 - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r4, [r4, #4] - adds r0, r0, r4 - strh r0, [r6, #0x22] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #7 - bgt _08105466 - movs r0, #8 - strh r0, [r6, #0x22] -_08105466: - ldr r1, _08105480 - adds r0, r6, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _08105484 - str r0, [r6, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08105478: .4byte gUnknown_20380D7 -_0810547C: .4byte gUnknown_20380BE -_08105480: .4byte DestroySpriteAndMatrix -_08105484: .4byte RunStoredCallbackWhenAffineAnimEnds - thumb_func_end Anim_AngerMark - - thumb_func_start sub_08105488 -sub_08105488: @ 0x08105488 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _081054BC - adds r4, r4, r0 - movs r0, #0 - bl GetAnimBattlerSpriteId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0 - strh r1, [r4, #8] - strh r0, [r4, #0xa] - ldr r2, _081054C0 - adds r0, r4, #0 - bl PrepareAffineAnimInTaskData - ldr r0, _081054C4 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081054BC: .4byte gUnknown_3005B60 -_081054C0: .4byte gUnknown_856F288 -_081054C4: .4byte sub_081054C8 - thumb_func_end sub_08105488 - - thumb_func_start sub_081054C8 -sub_081054C8: @ 0x081054C8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _081054F0 - adds r0, r0, r1 - bl RunAffineAnimFromTaskData - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081054E8 - adds r0, r4, #0 - bl DestroyAnimVisualTask -_081054E8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081054F0: .4byte gUnknown_3005B60 - thumb_func_end sub_081054C8 - - thumb_func_start sub_081054F4 -sub_081054F4: @ 0x081054F4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _08105568 - adds r4, r1, r0 - movs r0, #0 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0 - strh r0, [r4, #8] - strh r2, [r4, #0xa] - movs r0, #4 - strh r0, [r4, #0xc] - movs r0, #7 - strh r0, [r4, #0xe] - movs r0, #3 - strh r0, [r4, #0x10] - ldr r3, _0810556C - movs r0, #8 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r0, [r0, #0x20] - strh r0, [r4, #0x12] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r0, [r0, #0x22] - strh r0, [r4, #0x14] - strh r2, [r4, #0x16] - strh r2, [r4, #0x18] - movs r0, #2 - strh r0, [r4, #0x1a] - ldr r0, _08105570 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0810555E - movs r1, #0xc - ldrsh r0, [r4, r1] - rsbs r0, r0, #0 - strh r0, [r4, #0xc] -_0810555E: - ldr r0, _08105574 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08105568: .4byte gUnknown_3005B60 -_0810556C: .4byte gUnknown_20205AC -_08105570: .4byte gUnknown_20380D6 -_08105574: .4byte sub_08105578 - thumb_func_end sub_081054F4 - - thumb_func_start sub_08105578 -sub_08105578: @ 0x08105578 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _081055C0 - adds r3, r0, r1 - ldrh r0, [r3, #0x16] - adds r0, #1 - strh r0, [r3, #0x16] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - ble _081055DE - movs r0, #0 - strh r0, [r3, #0x16] - ldrh r0, [r3, #0x18] - adds r0, #1 - strh r0, [r3, #0x18] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _081055C8 - ldr r2, _081055C4 - movs r0, #8 - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r3, #0x1a] - ldrh r2, [r0, #0x22] - adds r1, r1, r2 - b _081055DC - .align 2, 0 -_081055C0: .4byte gUnknown_3005B60 -_081055C4: .4byte gUnknown_20205AC -_081055C8: - ldr r2, _081055F0 - movs r5, #8 - ldrsh r1, [r3, r5] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x22] - ldrh r2, [r3, #0x1a] - subs r1, r1, r2 -_081055DC: - strh r1, [r0, #0x22] -_081055DE: - movs r1, #0xa - ldrsh r0, [r3, r1] - cmp r0, #1 - beq _0810562C - cmp r0, #1 - bgt _081055F4 - cmp r0, #0 - beq _081055FA - b _081056BC - .align 2, 0 -_081055F0: .4byte gUnknown_20205AC -_081055F4: - cmp r0, #2 - beq _0810565C - b _081056BC -_081055FA: - ldr r2, _08105628 - movs r5, #8 - ldrsh r1, [r3, r5] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r3, #0xc] - ldrh r2, [r0, #0x20] - adds r1, r1, r2 - strh r1, [r0, #0x20] - ldrh r0, [r3, #0xe] - subs r0, #1 - strh r0, [r3, #0xe] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _081056BC - movs r0, #0xe - strh r0, [r3, #0xe] - movs r0, #1 - strh r0, [r3, #0xa] - b _081056BC - .align 2, 0 -_08105628: .4byte gUnknown_20205AC -_0810562C: - ldr r2, _08105658 - movs r5, #8 - ldrsh r1, [r3, r5] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x20] - ldrh r2, [r3, #0xc] - subs r1, r1, r2 - strh r1, [r0, #0x20] - ldrh r0, [r3, #0xe] - subs r0, #1 - strh r0, [r3, #0xe] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _081056BC - movs r0, #7 - strh r0, [r3, #0xe] - movs r0, #2 - strh r0, [r3, #0xa] - b _081056BC - .align 2, 0 -_08105658: .4byte gUnknown_20205AC -_0810565C: - ldr r2, _08105694 - movs r0, #8 - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r3, #0xc] - ldrh r5, [r0, #0x20] - adds r1, r1, r5 - strh r1, [r0, #0x20] - ldrh r0, [r3, #0xe] - subs r0, #1 - strh r0, [r3, #0xe] - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - cmp r1, #0 - bne _081056BC - ldrh r0, [r3, #0x10] - subs r0, #1 - strh r0, [r3, #0x10] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08105698 - movs r0, #7 - strh r0, [r3, #0xe] - strh r1, [r3, #0xa] - b _081056BC - .align 2, 0 -_08105694: .4byte gUnknown_20205AC -_08105698: - ldrh r1, [r3, #0x18] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081056B6 - movs r0, #8 - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x22] - ldrh r2, [r3, #0x1a] - subs r1, r1, r2 - strh r1, [r0, #0x22] -_081056B6: - adds r0, r4, #0 - bl DestroyAnimVisualTask -_081056BC: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08105578 - - thumb_func_start sub_081056C4 -sub_081056C4: @ 0x081056C4 - push {r4, r5, r6, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _08105714 - adds r5, r1, r0 - ldr r4, _08105718 - ldrb r0, [r4] - bl GetBattlerYCoordWithElevation - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #0x20 - movs r1, #0 - strh r0, [r5, #8] - movs r0, #4 - strh r0, [r5, #0xa] - strh r1, [r5, #0xc] - strh r1, [r5, #0xe] - strh r1, [r5, #0x10] - strh r1, [r5, #0x12] - ldrb r0, [r4] - bl GetBattlerSpriteCoordAttr - strh r0, [r5, #0x26] - ldrb r0, [r4] - bl GetBattlerSpriteBGPriorityRank - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08105724 - ldr r0, _0810571C - ldrh r0, [r0] - strh r0, [r5, #0x14] - ldr r0, _08105720 - b _0810572C - .align 2, 0 -_08105714: .4byte gUnknown_3005B60 -_08105718: .4byte gUnknown_20380D7 -_0810571C: .4byte gUnknown_2022ACC -_08105720: .4byte 0x04000014 -_08105724: - ldr r0, _08105790 - ldrh r0, [r0] - strh r0, [r5, #0x14] - ldr r0, _08105794 -_0810572C: - str r0, [sp] - ldrh r0, [r5, #8] - adds r1, r0, #0 - subs r1, #0x40 - lsls r2, r1, #0x10 - lsls r0, r0, #0x10 - cmp r2, r0 - bgt _0810576A - ldr r4, _08105798 - movs r0, #0xf0 - lsls r0, r0, #3 - adds r6, r4, r0 -_08105744: - asrs r3, r2, #0x10 - cmp r3, #0 - blt _0810575C - lsls r1, r3, #1 - adds r2, r1, r4 - ldrh r0, [r5, #0x14] - adds r0, #0xf0 - strh r0, [r2] - adds r1, r1, r6 - ldrh r0, [r5, #0x14] - adds r0, #0xf0 - strh r0, [r1] -_0810575C: - adds r0, r3, #1 - lsls r2, r0, #0x10 - asrs r1, r2, #0x10 - movs r3, #8 - ldrsh r0, [r5, r3] - cmp r1, r0 - ble _08105744 -_0810576A: - ldr r0, _0810579C - str r0, [sp, #4] - mov r1, sp - movs r2, #0 - movs r0, #1 - strb r0, [r1, #8] - mov r0, sp - strb r2, [r0, #9] - ldr r0, [sp] - ldr r1, [sp, #4] - ldr r2, [sp, #8] - bl ScanlineEffect_SetParams - ldr r0, _081057A0 - str r0, [r5] - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08105790: .4byte gUnknown_2022AD0 -_08105794: .4byte 0x04000018 -_08105798: .4byte gUnknown_20388C8 -_0810579C: .4byte 0xA2600001 -_081057A0: .4byte sub_081057A4 - thumb_func_end sub_081056C4 - - thumb_func_start sub_081057A4 -sub_081057A4: @ 0x081057A4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _081057C4 - adds r3, r0, r1 - movs r1, #0x10 - ldrsh r0, [r3, r1] - cmp r0, #0 - beq _081057C8 - cmp r0, #1 - beq _081057DE - b _0810585E - .align 2, 0 -_081057C4: .4byte gUnknown_3005B60 -_081057C8: - ldrh r0, [r3, #0x12] - adds r0, #1 - strh r0, [r3, #0x12] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x14 - ble _0810585E - ldrh r0, [r3, #0x10] - adds r0, #1 - strh r0, [r3, #0x10] - b _0810585E -_081057DE: - ldrh r0, [r3, #0xa] - adds r0, #1 - strh r0, [r3, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - ble _0810585E - movs r0, #0 - strh r0, [r3, #0xa] - ldrh r1, [r3, #0xe] - movs r0, #3 - ands r0, r1 - strh r0, [r3, #0xc] - ldrh r0, [r3, #8] - subs r0, r0, r1 - strh r0, [r3, #0x12] - movs r2, #0xc - ldrsh r1, [r3, r2] - cmp r1, #1 - beq _08105814 - cmp r1, #1 - ble _0810581C - cmp r1, #2 - beq _08105818 - cmp r1, #3 - beq _08105818 - b _0810581C -_08105814: - subs r0, #2 - b _0810581A -_08105818: - adds r0, #1 -_0810581A: - strh r0, [r3, #0x12] -_0810581C: - movs r1, #0x12 - ldrsh r0, [r3, r1] - cmp r0, #0 - blt _08105840 - ldr r2, _08105864 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r1, [r3, #0x14] - strh r1, [r0] - movs r1, #0x12 - ldrsh r0, [r3, r1] - lsls r0, r0, #1 - movs r1, #0xf0 - lsls r1, r1, #3 - adds r2, r2, r1 - adds r0, r0, r2 - ldrh r1, [r3, #0x14] - strh r1, [r0] -_08105840: - ldrh r0, [r3, #0xe] - adds r0, #1 - strh r0, [r3, #0xe] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x26 - ldrsh r1, [r3, r2] - cmp r0, r1 - blt _0810585E - ldr r1, _08105868 - movs r0, #3 - strb r0, [r1, #0x15] - adds r0, r4, #0 - bl DestroyAnimVisualTask -_0810585E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08105864: .4byte gUnknown_20388C8 -_08105868: .4byte gUnknown_20397C8 - thumb_func_end sub_081057A4 - - thumb_func_start sub_0810586C -sub_0810586C: @ 0x0810586C - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r6, _081058C0 - ldrb r0, [r6] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, #0x10 - movs r5, #0 - strh r0, [r4, #0x20] - ldrb r0, [r6] - bl GetBattlerYCoordWithElevation - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - 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 GetBattlerSpriteCoordAttr - adds r0, #2 - strh r0, [r4, #0x38] - movs r0, #0x3f - bl BattleAnimAdjustPanning - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - strh r0, [r4, #0x3a] - ldr r0, _081058C4 - str r0, [r4, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081058C0: .4byte gUnknown_20380D7 -_081058C4: .4byte sub_081058C8 - thumb_func_end sub_0810586C - - thumb_func_start sub_081058C8 -sub_081058C8: @ 0x081058C8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r1, [r4, r0] - cmp r1, #1 - beq _0810592C - cmp r1, #1 - bgt _081058DE - cmp r1, #0 - beq _081058E4 - b _08105A0C -_081058DE: - cmp r1, #2 - beq _081059BE - b _08105A0C -_081058E4: - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _0810590E - strh r1, [r4, #0x32] - adds r3, r4, #0 - adds r3, #0x3e - ldrb r2, [r3] - lsrs r1, r2, #2 - movs r0, #1 - eors r1, r0 - ands r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_0810590E: - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x10 - ble _08105A0C - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r2] - b _081059B6 -_0810592C: - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - ble _08105972 - ldrh r2, [r4, #0x32] - movs r3, #0x32 - ldrsh r1, [r4, r3] - movs r3, #0x38 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _08105972 - movs r0, #0 - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x22] - subs r0, #1 - strh r0, [r4, #0x22] - adds r0, r2, #1 - strh r0, [r4, #0x32] - movs r1, #0x32 - ldrsh r0, [r4, r1] - movs r1, #0xa - bl __modsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08105972 - ldrh r1, [r4, #0x3a] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r0, #0xcd - bl PlaySE12WithPanning -_08105972: - ldrh r0, [r4, #0x34] - ldrh r2, [r4, #0x36] - adds r1, r0, r2 - strh r1, [r4, #0x36] - lsls r0, r1, #0x10 - asrs r2, r0, #0x10 - cmp r2, #0x1f - ble _08105986 - movs r0, #0x40 - b _08105994 -_08105986: - movs r0, #0x20 - rsbs r0, r0, #0 - cmp r2, r0 - bgt _081059A0 - movs r2, #0x40 - rsbs r2, r2, #0 - adds r0, r2, #0 -_08105994: - subs r0, r0, r1 - strh r0, [r4, #0x36] - movs r3, #0x34 - ldrsh r0, [r4, r3] - rsbs r0, r0, #0 - strh r0, [r4, #0x34] -_081059A0: - 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 _08105A0C - strh r2, [r4, #0x30] - strh r2, [r4, #0x32] -_081059B6: - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - b _08105A0C -_081059BE: - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _081059EA - movs r0, #0 - strh r0, [r4, #0x32] - adds r3, r4, #0 - adds r3, #0x3e - ldrb r2, [r3] - lsrs r1, r2, #2 - movs r0, #1 - eors r1, r0 - ands r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_081059EA: - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x10 - ble _08105A0C - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl DestroyAnimSprite -_08105A0C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081058C8 - - thumb_func_start sub_08105A14 -sub_08105A14: @ 0x08105A14 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r6, r0, #0 - movs r5, #0 - mov r0, sp - strh r5, [r0] - mov r1, sp - adds r1, #2 - strh r5, [r1] - ldr r0, _08105A38 - movs r3, #4 - ldrsh r2, [r0, r3] - adds r7, r1, #0 - adds r1, r0, #0 - cmp r2, #0 - bne _08105A40 - ldr r0, _08105A3C - b _08105A42 - .align 2, 0 -_08105A38: .4byte gUnknown_20380BE -_08105A3C: .4byte gUnknown_20380D6 -_08105A40: - ldr r0, _08105A7C -_08105A42: - ldrb r5, [r0] - ldrb r1, [r1, #6] - movs r0, #1 - adds r4, r0, #0 - eors r4, r1 - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08105ABA - movs r1, #2 - adds r0, r5, #0 - eors r0, r1 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08105ABA - adds r0, r5, #0 - adds r1, r4, #0 - mov r2, sp - adds r3, r7, #0 - bl SetAverageBattlerPositions - cmp r4, #0 - bne _08105A80 - adds r0, r5, #0 - movs r1, #0 - b _08105A84 - .align 2, 0 -_08105A7C: .4byte gUnknown_20380D7 -_08105A80: - adds r0, r5, #0 - movs r1, #2 -_08105A84: - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r5, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08105AB0 - ldr r2, _08105AAC - mov r0, sp - ldrh r1, [r0] - subs r1, r1, r4 - ldrh r0, [r2] - subs r1, r1, r0 - subs r0, r0, r1 - strh r0, [r2] - b _08105ABA - .align 2, 0 -_08105AAC: .4byte gUnknown_20380BE -_08105AB0: - ldr r1, _08105ACC - mov r0, sp - ldrh r0, [r0] - subs r0, r0, r4 - strh r0, [r1] -_08105ABA: - ldr r1, _08105AD0 - str r1, [r6, #0x1c] - adds r0, r6, #0 - bl _call_via_r1 - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08105ACC: .4byte gUnknown_20380BE -_08105AD0: .4byte sub_080A7090 - thumb_func_end sub_08105A14 - - thumb_func_start sub_08105AD4 -sub_08105AD4: @ 0x08105AD4 - push {r4, lr} - adds r4, r0, #0 - bl AnimTranslateLinear - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08105AEE - adds r0, r4, #0 - bl FreeSpriteOamMatrix - adds r0, r4, #0 - bl DestroyAnimSprite -_08105AEE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08105AD4 - - thumb_func_start sub_08105AF4 -sub_08105AF4: @ 0x08105AF4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - adds r5, r0, #0 - movs r6, #0 - mov r0, sp - strh r6, [r0] - mov r1, sp - adds r1, #2 - strh r6, [r1] - ldr r0, _08105B20 - movs r2, #0xa - ldrsh r0, [r0, r2] - cmp r0, #0 - bne _08105B2C - ldr r0, _08105B24 - ldrb r7, [r0] - ldr r0, _08105B28 - b _08105B32 - .align 2, 0 -_08105B20: .4byte gUnknown_20380BE -_08105B24: .4byte gUnknown_20380D6 -_08105B28: .4byte gUnknown_20380D7 -_08105B2C: - ldr r0, _08105B4C - ldrb r7, [r0] - ldr r0, _08105B50 -_08105B32: - ldrb r0, [r0] - mov r8, r0 - ldr r0, _08105B54 - movs r3, #0xc - ldrsh r0, [r0, r3] - cmp r0, #0 - bne _08105B58 - movs r0, #0 - mov sl, r0 - movs r1, #1 - str r1, [sp, #4] - b _08105B60 - .align 2, 0 -_08105B4C: .4byte gUnknown_20380D7 -_08105B50: .4byte gUnknown_20380D6 -_08105B54: .4byte gUnknown_20380BE -_08105B58: - movs r2, #2 - mov sl, r2 - movs r3, #3 - str r3, [sp, #4] -_08105B60: - adds r0, r7, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08105BBC - adds r0, r7, #0 - mov r1, sl - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - ldr r1, _08105BA0 - lsrs r0, r0, #0x18 - ldrh r1, [r1] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - movs r0, #2 - mov r4, r8 - eors r4, r0 - adds r0, r4, #0 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08105BAC - ldr r2, _08105BA4 - ldr r0, _08105BA8 - adds r0, r4, r0 - b _08105C3A - .align 2, 0 -_08105BA0: .4byte gUnknown_20380BE -_08105BA4: .4byte gUnknown_20205AC -_08105BA8: .4byte gUnknown_2023E88 -_08105BAC: - ldr r2, _08105BB4 - ldr r0, _08105BB8 - add r0, r8 - b _08105C3A - .align 2, 0 -_08105BB4: .4byte gUnknown_20205AC -_08105BB8: .4byte gUnknown_2023E88 -_08105BBC: - adds r0, r7, #0 - mov r1, sl - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08105C24 - ldrh r1, [r1] - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08105C34 - movs r0, #2 - adds r4, r7, #0 - eors r4, r0 - adds r0, r4, #0 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08105C34 - ldr r3, _08105C28 - ldr r2, _08105C2C - adds r0, r7, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r6, r0, r3 - adds r2, r4, r2 - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, r0, r3 - movs r0, #0x20 - ldrsh r1, [r6, r0] - movs r3, #0x20 - ldrsh r0, [r2, r3] - cmp r1, r0 - bge _08105C30 - adds r0, r2, #0 - adds r0, #0x43 - ldrb r0, [r0] - adds r0, #1 - b _08105C4A - .align 2, 0 -_08105C24: .4byte gUnknown_20380BE -_08105C28: .4byte gUnknown_20205AC -_08105C2C: .4byte gUnknown_2023E88 -_08105C30: - adds r0, r6, #0 - b _08105C44 -_08105C34: - ldr r2, _08105C90 - ldr r0, _08105C94 - adds r0, r7, r0 -_08105C3A: - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 -_08105C44: - adds r0, #0x43 - ldrb r0, [r0] - subs r0, #1 -_08105C4A: - adds r1, r5, #0 - adds r1, #0x43 - strb r0, [r1] - adds r0, r7, #0 - ldr r1, [sp, #4] - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - ldr r4, _08105C98 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #2] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08105C9C - movs r1, #2 - mov r0, r8 - eors r0, r1 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08105C9C - ldrb r1, [r4, #0xc] - mov r0, r8 - mov r2, sp - mov r3, sp - adds r3, #2 - bl SetAverageBattlerPositions - b _08105CBC - .align 2, 0 -_08105C90: .4byte gUnknown_20205AC -_08105C94: .4byte gUnknown_2023E88 -_08105C98: .4byte gUnknown_20380BE -_08105C9C: - mov r4, sp - mov r0, r8 - mov r1, sl - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - mov r0, r8 - ldr r1, [sp, #4] - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r2, sp - strh r0, [r2, #2] -_08105CBC: - mov r0, r8 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08105CE0 - mov r3, sp - mov r2, sp - ldr r1, _08105CDC - ldrh r0, [r1, #6] - ldrh r2, [r2] - adds r0, r0, r2 - strh r0, [r3] - adds r2, r1, #0 - b _08105CEE - .align 2, 0 -_08105CDC: .4byte gUnknown_20380BE -_08105CE0: - mov r3, sp - mov r0, sp - ldr r2, _08105D30 - ldrh r0, [r0] - ldrh r1, [r2, #6] - subs r0, r0, r1 - strh r0, [r3] -_08105CEE: - ldrh r1, [r2, #8] - mov r3, sp - ldrh r3, [r3, #2] - adds r1, r1, r3 - mov r0, sp - strh r1, [r0, #2] - mov r3, sb - strh r3, [r5, #0x30] - strh r3, [r5, #0x20] - strh r6, [r5, #0x34] - strh r6, [r5, #0x22] - ldrh r0, [r0] - strh r0, [r5, #0x32] - strh r1, [r5, #0x36] - ldrh r0, [r2] - strh r0, [r5, #0x2e] - adds r0, r5, #0 - bl InitAnimLinearTranslation - ldr r1, _08105D34 - str r1, [r5, #0x1c] - adds r0, r5, #0 - bl _call_via_r1 - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08105D30: .4byte gUnknown_20380BE -_08105D34: .4byte sub_08105AD4 - thumb_func_end sub_08105AF4 - - thumb_func_start sub_08105D38 -sub_08105D38: @ 0x08105D38 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08105D78 - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _08105D5E - lsls r0, r0, #0x14 - ldr r1, _08105D7C - adds r0, r0, r1 - lsrs r0, r0, #0x10 - ldr r1, _08105D80 - ldrb r2, [r1, #0xa] - ldrh r3, [r1, #8] - movs r1, #0xf - bl BlendPalette -_08105D5E: - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAffineAnim - ldr r1, _08105D84 - str r1, [r4, #0x1c] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08105D78: .4byte 0x000027DB -_08105D7C: .4byte 0x01010000 -_08105D80: .4byte gUnknown_20380BE -_08105D84: .4byte sub_080A7090 - thumb_func_end sub_08105D38 - - thumb_func_start sub_08105D88 -sub_08105D88: @ 0x08105D88 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl InitSpritePosToAnimAttacker - ldr r0, _08105DBC - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - movs r1, #0xa0 - cmp r0, #0 - beq _08105DA4 - ldr r1, _08105DC0 -_08105DA4: - movs r0, #0xe0 - lsls r0, r0, #2 - strh r0, [r4, #0x2e] - strh r1, [r4, #0x30] - ldr r0, _08105DC4 - ldrh r0, [r0, #4] - strh r0, [r4, #0x3c] - ldr r0, _08105DC8 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08105DBC: .4byte gUnknown_20380D6 -_08105DC0: .4byte 0x0000FF60 -_08105DC4: .4byte gUnknown_20380BE -_08105DC8: .4byte sub_08105DCC - thumb_func_end sub_08105D88 - - thumb_func_start sub_08105DCC -sub_08105DCC: @ 0x08105DCC - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r2, [r4, #0x2e] - lsls r0, r2, #0x10 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x26] - subs r1, r1, r0 - movs r5, #0 - strh r1, [r4, #0x26] - ldrh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - strh r0, [r4, #0x24] - subs r2, #0x20 - strh r2, [r4, #0x2e] - ldr r0, _08105E38 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - movs r1, #0xa0 - cmp r0, #0 - beq _08105DFC - ldr r1, _08105E3C -_08105DFC: - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - ldrh r1, [r4, #0x30] - adds r0, r0, r1 - strh r0, [r4, #0x30] - ldrh r1, [r4, #0x26] - movs r2, #0x26 - ldrsh r0, [r4, r2] - cmp r0, #0 - ble _08105E30 - ldrh r2, [r4, #0x22] - adds r0, r1, r2 - strh r0, [r4, #0x22] - ldrh r0, [r4, #0x24] - ldrh r1, [r4, #0x20] - adds r0, r0, r1 - strh r0, [r4, #0x20] - strh r5, [r4, #0x26] - strh r5, [r4, #0x24] - strh r5, [r4, #0x2e] - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAffineAnim - ldr r0, _08105E40 - str r0, [r4, #0x1c] -_08105E30: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08105E38: .4byte gUnknown_20380D6 -_08105E3C: .4byte 0x0000FF60 -_08105E40: .4byte sub_08105E44 - thumb_func_end sub_08105DCC - - thumb_func_start sub_08105E44 -sub_08105E44: @ 0x08105E44 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - adds r1, r0, #1 - strh r1, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x13 - ble _08105E62 - adds r0, r4, #0 - movs r1, #2 - bl StartSpriteAffineAnim - ldr r0, _08105E68 - str r0, [r4, #0x1c] -_08105E62: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08105E68: .4byte sub_08105E6C - thumb_func_end sub_08105E44 - - thumb_func_start sub_08105E6C -sub_08105E6C: @ 0x08105E6C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08105ED2 - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAffineAnim - movs r0, #0 - strh r0, [r4, #0x2e] - movs r1, #0x3c - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08105EB8 - ldrh r2, [r4, #4] - lsls r1, r2, #0x16 - lsrs r1, r1, #0x16 - adds r1, #0x10 - ldr r3, _08105EAC - adds r0, r3, #0 - ands r1, r0 - ldr r0, _08105EB0 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, #4] - ldr r0, _08105EB4 - b _08105ED0 - .align 2, 0 -_08105EAC: .4byte 0x000003FF -_08105EB0: .4byte 0xFFFFFC00 -_08105EB4: .4byte sub_08105EE4 -_08105EB8: - ldrh r2, [r4, #4] - lsls r1, r2, #0x16 - lsrs r1, r1, #0x16 - adds r1, #0x20 - ldr r3, _08105ED8 - adds r0, r3, #0 - ands r1, r0 - ldr r0, _08105EDC - ands r0, r2 - orrs r0, r1 - strh r0, [r4, #4] - ldr r0, _08105EE0 -_08105ED0: - str r0, [r4, #0x1c] -_08105ED2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08105ED8: .4byte 0x000003FF -_08105EDC: .4byte 0xFFFFFC00 -_08105EE0: .4byte sub_08105F6C - thumb_func_end sub_08105E6C - - thumb_func_start sub_08105EE4 -sub_08105EE4: @ 0x08105EE4 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x26] - subs r0, #2 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #9 - bne _08105F1A - movs r0, #0x10 - strh r0, [r4, #0x2e] - movs r0, #0 - strh r0, [r4, #0x30] - movs r1, #0xfd - lsls r1, r1, #6 - movs r0, #0x50 - bl SetGpuReg - ldrh r1, [r4, #0x2e] - movs r0, #0x52 - bl SetGpuReg - ldr r0, _08105F20 - str r0, [r4, #0x1c] -_08105F1A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08105F20: .4byte sub_08105F24 - thumb_func_end sub_08105EE4 - - thumb_func_start sub_08105F24 -sub_08105F24: @ 0x08105F24 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x30] - adds r1, r0, #1 - strh r1, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #3 - bl __modsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08105F62 - ldrh r1, [r4, #0x2e] - subs r1, #1 - strh r1, [r4, #0x2e] - movs r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08105F62 - ldr r0, _08105F68 - str r0, [r4, #0x1c] -_08105F62: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08105F68: .4byte sub_08105F6C - thumb_func_end sub_08105F24 - - thumb_func_start sub_08105F6C -sub_08105F6C: @ 0x08105F6C - push {lr} - adds r3, r0, #0 - ldr r0, _08105F94 - ldrh r1, [r0, #0xe] - ldr r0, _08105F98 - cmp r1, r0 - bne _08105FA4 - adds r2, r3, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - movs r1, #0x3c - ldrsh r0, [r3, r1] - cmp r0, #0 - bne _08105FA0 - ldr r0, _08105F9C - b _08105FA2 - .align 2, 0 -_08105F94: .4byte gUnknown_20380BE -_08105F98: .4byte 0x0000FFFF -_08105F9C: .4byte sub_08105FAC -_08105FA0: - ldr r0, _08105FA8 -_08105FA2: - str r0, [r3, #0x1c] -_08105FA4: - pop {r0} - bx r0 - .align 2, 0 -_08105FA8: .4byte DestroyAnimSprite - thumb_func_end sub_08105F6C - - thumb_func_start sub_08105FAC -sub_08105FAC: @ 0x08105FAC - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - adds r0, r4, #0 - bl DestroyAnimSprite - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08105FAC - - thumb_func_start sub_08105FCC -sub_08105FCC: @ 0x08105FCC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _08105FFC - adds r4, r4, r0 - movs r0, #0 - bl GetAnimBattlerSpriteId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - strh r1, [r4, #8] - ldr r2, _08106000 - adds r0, r4, #0 - bl PrepareAffineAnimInTaskData - ldr r0, _08106004 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08105FFC: .4byte gUnknown_3005B60 -_08106000: .4byte gUnknown_856F494 -_08106004: .4byte sub_08106008 - thumb_func_end sub_08105FCC - - thumb_func_start sub_08106008 -sub_08106008: @ 0x08106008 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _08106058 - adds r4, r0, r1 - adds r0, r4, #0 - bl RunAffineAnimFromTaskData - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - bne _08106052 - ldr r2, _0810605C - movs r0, #8 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r3, [r0, #0x26] - movs r0, #8 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - adds r0, r5, #0 - bl DestroyAnimVisualTask -_08106052: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08106058: .4byte gUnknown_3005B60 -_0810605C: .4byte gUnknown_20205AC - thumb_func_end sub_08106008 - - thumb_func_start sub_08106060 -sub_08106060: @ 0x08106060 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _08106094 - adds r4, r1, r0 - movs r0, #0 - strh r0, [r4, #8] - strh r0, [r4, #0xa] - strh r0, [r4, #0xc] - strh r0, [r4, #0xe] - movs r0, #3 - strh r0, [r4, #0x20] - ldr r0, _08106098 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081060A0 - ldr r0, _0810609C - strh r0, [r4, #0x22] - movs r0, #8 - b _081060A6 - .align 2, 0 -_08106094: .4byte gUnknown_3005B60 -_08106098: .4byte gUnknown_20380D7 -_0810609C: .4byte 0x0000FFFF -_081060A0: - movs r0, #1 - strh r0, [r4, #0x22] - ldr r0, _081060C0 -_081060A6: - strh r0, [r4, #0x24] - movs r0, #1 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x26] - ldr r0, _081060C4 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081060C0: .4byte 0x0000FFF8 -_081060C4: .4byte sub_081060C8 - thumb_func_end sub_08106060 - - thumb_func_start sub_081060C8 -sub_081060C8: @ 0x081060C8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _081060EC - adds r3, r0, r1 - movs r0, #8 - ldrsh r4, [r3, r0] - cmp r4, #1 - beq _0810611C - cmp r4, #1 - bgt _081060F0 - cmp r4, #0 - beq _081060FA - b _081061E2 - .align 2, 0 -_081060EC: .4byte gUnknown_3005B60 -_081060F0: - cmp r4, #2 - beq _08106198 - cmp r4, #3 - beq _081061B2 - b _081061E2 -_081060FA: - ldr r2, _08106118 - movs r0, #0x26 - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r3, #0x24] - ldrh r2, [r0, #0x24] - adds r1, r1, r2 - strh r1, [r0, #0x24] - strh r4, [r3, #0xa] - strh r4, [r3, #0xc] - strh r4, [r3, #0xe] - b _081061AA - .align 2, 0 -_08106118: .4byte gUnknown_20205AC -_0810611C: - ldrh r0, [r3, #0xa] - adds r0, #1 - strh r0, [r3, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _081061E2 - movs r0, #0 - strh r0, [r3, #0xa] - ldrh r0, [r3, #0xc] - adds r0, #1 - strh r0, [r3, #0xc] - ands r0, r4 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08106154 - ldr r2, _08106150 - movs r4, #0x26 - ldrsh r1, [r3, r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x24] - adds r1, #6 - b _08106166 - .align 2, 0 -_08106150: .4byte gUnknown_20205AC -_08106154: - ldr r2, _08106194 - movs r0, #0x26 - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x24] - subs r1, #6 -_08106166: - strh r1, [r0, #0x24] - ldrh r0, [r3, #0xe] - adds r0, #1 - strh r0, [r3, #0xe] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - ble _081061E2 - ldrh r1, [r3, #0xc] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081061AA - movs r1, #0x26 - ldrsh r0, [r3, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r0, [r1, #0x24] - subs r0, #6 - strh r0, [r1, #0x24] - b _081061AA - .align 2, 0 -_08106194: .4byte gUnknown_20205AC -_08106198: - ldrh r0, [r3, #0x20] - subs r0, #1 - strh r0, [r3, #0x20] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _081061AA - movs r0, #0 - strh r0, [r3, #8] - b _081061E2 -_081061AA: - ldrh r0, [r3, #8] - adds r0, #1 - strh r0, [r3, #8] - b _081061E2 -_081061B2: - ldr r2, _081061E8 - movs r4, #0x26 - ldrsh r1, [r3, r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r3, #0x22] - ldrh r4, [r0, #0x24] - adds r1, r1, r4 - strh r1, [r0, #0x24] - movs r0, #0x26 - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0x24 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _081061E2 - adds r0, r5, #0 - bl DestroyAnimVisualTask -_081061E2: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081061E8: .4byte gUnknown_20205AC - thumb_func_end sub_081060C8 - - thumb_func_start sub_081061EC -sub_081061EC: @ 0x081061EC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _08106228 - adds r4, r4, r0 - movs r0, #0 - strh r0, [r4, #8] - strh r0, [r4, #0xa] - strh r0, [r4, #0xc] - strh r0, [r4, #0xe] - movs r0, #1 - strh r0, [r4, #0x10] - movs r0, #0xe - strh r0, [r4, #0x22] - movs r0, #2 - strh r0, [r4, #0x24] - movs r0, #0 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x26] - ldr r0, _0810622C - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08106228: .4byte gUnknown_3005B60 -_0810622C: .4byte sub_08106230 - thumb_func_end sub_081061EC - - thumb_func_start sub_08106230 -sub_08106230: @ 0x08106230 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _08106284 - adds r4, r0, r1 - movs r0, #8 - ldrsh r2, [r4, r0] - cmp r2, #0 - bne _081062F6 - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r3, #0x10 - ldrsh r1, [r4, r3] - cmp r0, r1 - ble _081062F6 - strh r2, [r4, #0xa] - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0810628C - ldr r3, _08106288 - movs r6, #0x26 - ldrsh r1, [r4, r6] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - b _081062A2 - .align 2, 0 -_08106284: .4byte gUnknown_3005B60 -_08106288: .4byte gUnknown_20205AC -_0810628C: - ldr r3, _081062D4 - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 -_081062A2: - strb r1, [r0] - ldrh r0, [r4, #0xe] - adds r0, #1 - movs r2, #0 - strh r0, [r4, #0xe] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r6, #0x22 - ldrsh r1, [r4, r6] - cmp r0, r1 - blt _081062F6 - ldrh r0, [r4, #0x10] - adds r0, #1 - strh r0, [r4, #0x10] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r6, #0x24 - ldrsh r1, [r4, r6] - cmp r0, r1 - bge _081062D8 - strh r2, [r4, #0xa] - strh r2, [r4, #0xc] - strh r2, [r4, #0xe] - b _081062F6 - .align 2, 0 -_081062D4: .4byte gUnknown_20205AC -_081062D8: - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - adds r0, r5, #0 - bl DestroyAnimVisualTask -_081062F6: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_08106230 - - thumb_func_start sub_081062FC -sub_081062FC: @ 0x081062FC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _0810634C - adds r4, r4, r0 - movs r0, #0 - strh r0, [r4, #8] - movs r1, #4 - 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, _08106350 - ldrb r0, [r5] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x24] - ldrb r0, [r5] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x26] - ldr r0, _08106354 - str r0, [r4] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810634C: .4byte gUnknown_3005B60 -_08106350: .4byte gUnknown_20380D6 -_08106354: .4byte sub_08106358 - thumb_func_end sub_081062FC - - thumb_func_start sub_08106358 -sub_08106358: @ 0x08106358 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _0810637C - adds r4, r0, r1 - movs r0, #0x18 - ldrsh r2, [r4, r0] - cmp r2, #1 - beq _081063C4 - cmp r2, #1 - bgt _08106380 - cmp r2, #0 - beq _08106386 - b _081063E0 - .align 2, 0 -_0810637C: .4byte gUnknown_3005B60 -_08106380: - cmp r2, #2 - beq _081063DC - b _081063E0 -_08106386: - ldrh r0, [r4, #0x10] - adds r0, #1 - strh r0, [r4, #0x10] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _081063E0 - strh r2, [r4, #0x10] - ldrh r0, [r4, #0x12] - adds r0, #1 - movs r1, #1 - ands r0, r1 - strh r0, [r4, #0x12] - ldrh r0, [r4, #0x14] - adds r0, #1 - strh r0, [r4, #0x14] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x14 - ble _081063E0 - movs r1, #0x16 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _081063BE - strh r2, [r4, #0x14] - movs r0, #1 - strh r0, [r4, #0x18] - b _081063E0 -_081063BE: - movs r0, #2 - strh r0, [r4, #0x18] - b _081063E0 -_081063C4: - movs r1, #0 - strh r1, [r4, #0x12] - ldrh r0, [r4, #0x10] - adds r0, #1 - strh r0, [r4, #0x10] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x14 - ble _081063E0 - strh r2, [r4, #0x16] - strh r1, [r4, #0x18] - b _081063E0 -_081063DC: - movs r0, #1 - strh r0, [r4, #0x12] -_081063E0: - movs r2, #8 - ldrsh r5, [r4, r2] - cmp r5, #0 - beq _081063EE - cmp r5, #1 - beq _08106484 - b _08106492 -_081063EE: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - ble _08106492 - strh r5, [r4, #0xa] - ldr r0, _08106478 - movs r3, #0x24 - ldrsh r1, [r4, r3] - movs r3, #0x26 - ldrsh r2, [r4, r3] - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x40 - beq _08106492 - ldr r0, _0810647C - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - strh r6, [r1, #0x2e] - movs r0, #0xd - strh r0, [r1, #0x30] - ldr r2, _08106480 - movs r3, #0xc - ldrsh r0, [r4, r3] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - strh r0, [r1, #0x24] - movs r3, #0xc - ldrsh r0, [r4, r3] - lsls r0, r0, #1 - adds r2, #1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - strh r0, [r1, #0x26] - ldrh r0, [r4, #0x22] - adds r0, #1 - strh r0, [r4, #0x22] - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - ble _08106492 - strh r5, [r4, #0xc] - ldrh r0, [r4, #0xe] - adds r0, #1 - strh r0, [r4, #0xe] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #5 - ble _08106492 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _08106492 - .align 2, 0 -_08106478: .4byte gUnknown_856F4C0 -_0810647C: .4byte gUnknown_20205AC -_08106480: .4byte gUnknown_856F4D8 -_08106484: - movs r1, #0x22 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08106492 - adds r0, r6, #0 - bl DestroyAnimVisualTask -_08106492: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_08106358 - - thumb_func_start sub_08106498 -sub_08106498: @ 0x08106498 - push {r4, lr} - adds r3, r0, #0 - ldr r4, _08106500 - movs r0, #0x2e - ldrsh r1, [r3, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r4 - movs r1, #0x3e - adds r1, r1, r3 - mov ip, r1 - movs r2, #1 - ldrb r1, [r0, #0x12] - ands r1, r2 - lsls r1, r1, #2 - mov r0, ip - ldrb r2, [r0] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - adds r0, r3, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _081064FA - movs r0, #0x30 - ldrsh r1, [r3, r0] - lsls r1, r1, #1 - movs r0, #0x2e - ldrsh r2, [r3, r0] - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r1, r1, r0 - adds r0, r4, #0 - adds r0, #8 - adds r1, r1, r0 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - adds r0, r3, #0 - bl DestroySprite -_081064FA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08106500: .4byte gUnknown_3005B60 - thumb_func_end sub_08106498 - - thumb_func_start sub_08106504 -sub_08106504: @ 0x08106504 - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _081065A0 - bl IndexOfSpritePaletteTag - mov r1, sp - strb r0, [r1] - movs r4, #1 - ldr r0, _081065A4 - adds r5, r0, #0 -_0810651C: - subs r0, r5, r4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl AllocSpritePalette - mov r2, sp - adds r1, r2, r4 - strb r0, [r1] - adds r4, #1 - cmp r4, #2 - ble _0810651C - movs r0, #0x80 - lsls r0, r0, #6 - bl AllocZeroed - adds r1, r0, #0 - ldr r0, _081065A8 - ldr r0, [r0] - movs r2, #0xbe - lsls r2, r2, #1 - adds r0, r0, r2 - str r1, [r0] - ldr r0, _081065AC - bl sub_08034370 - movs r4, #0 -_08106550: - ldr r5, _081065A8 - ldr r0, [r5] - movs r1, #0xbe - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r1, r4, #6 - ldr r0, [r0] - adds r0, r0, r1 - mov r2, sp - adds r1, r2, r4 - ldrb r1, [r1] - lsls r1, r1, #0x14 - movs r2, #0x80 - lsls r2, r2, #0x11 - adds r1, r1, r2 - lsrs r1, r1, #0x10 - movs r2, #0x20 - bl LoadPalette - adds r4, #1 - cmp r4, #2 - ble _08106550 - ldr r0, [r5] - movs r4, #0xbe - lsls r4, r4, #1 - adds r0, r0, r4 - ldr r0, [r0] - bl Free - ldr r0, [r5] - adds r0, r0, r4 - movs r1, #0 - str r1, [r0] - adds r0, r6, #0 - bl DestroyAnimVisualTask - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081065A0: .4byte 0x000027DE -_081065A4: .4byte 0x00002710 -_081065A8: .4byte gUnknown_2024178 -_081065AC: .4byte gUnknown_8C226B4 - thumb_func_end sub_08106504 - - thumb_func_start sub_081065B0 -sub_081065B0: @ 0x081065B0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r5, _081065D4 - movs r4, #2 -_081065BA: - ldrh r0, [r5] - bl FreeSpritePaletteByTag - adds r5, #2 - subs r4, #1 - cmp r4, #0 - bge _081065BA - adds r0, r6, #0 - bl DestroyAnimVisualTask - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081065D4: .4byte gUnknown_856F534 - thumb_func_end sub_081065B0 - - thumb_func_start sub_081065D8 -sub_081065D8: @ 0x081065D8 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r3, r2, #0x18 - movs r0, #1 - ands r3, r0 - rsbs r0, r3, #0 - orrs r0, r3 - asrs r0, r0, #0x1f - movs r3, #0x20 - ands r0, r3 - ldrh r4, [r5, #4] - lsls r3, r4, #0x16 - lsrs r3, r3, #0x16 - lsrs r1, r1, #0x16 - adds r0, r0, r1 - adds r3, r3, r0 - ldr r1, _0810662C - adds r0, r1, #0 - ands r3, r0 - ldr r0, _08106630 - ands r0, r4 - orrs r0, r3 - strh r0, [r5, #4] - ldr r0, _08106634 - lsrs r2, r2, #0x19 - lsls r2, r2, #1 - adds r2, r2, r0 - ldrh r0, [r2] - bl IndexOfSpritePaletteTag - lsls r0, r0, #4 - ldrb r2, [r5, #5] - movs r1, #0xf - ands r1, r2 - orrs r1, r0 - strb r1, [r5, #5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810662C: .4byte 0x000003FF -_08106630: .4byte 0xFFFFFC00 -_08106634: .4byte gUnknown_856F534 - thumb_func_end sub_081065D8 - - thumb_func_start sub_08106638 -sub_08106638: @ 0x08106638 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r1, #0 - bl InitSpritePosToAnimAttacker - ldr r6, _081066A0 - ldrb r0, [r6] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08106658 - ldr r1, _081066A4 - ldrh r0, [r1, #4] - rsbs r0, r0, #0 - strh r0, [r1, #4] -_08106658: - ldr r4, _081066A4 - ldrh r0, [r4, #8] - strh r0, [r5, #0x2e] - ldrb r0, [r6] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #4] - adds r0, r0, r1 - strh r0, [r5, #0x32] - ldrb r0, [r6] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #6] - adds r0, r0, r1 - strh r0, [r5, #0x36] - ldr r0, _081066A8 - str r0, [r5, #0x1c] - ldr r1, _081066AC - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - ldrb r1, [r4, #0xa] - ldrb r2, [r4, #0xc] - adds r0, r5, #0 - bl sub_081065D8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081066A0: .4byte gUnknown_20380D6 -_081066A4: .4byte gUnknown_20380BE -_081066A8: .4byte sub_080A67B4 -_081066AC: .4byte DestroyAnimSprite - thumb_func_end sub_08106638 - - thumb_func_start sub_081066B0 -sub_081066B0: @ 0x081066B0 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - bne _081066CA - adds r0, r4, #0 - movs r1, #0 - bl InitSpritePosToAnimAttacker -_081066CA: - movs r1, #0x30 - ldrsh r0, [r4, r1] - movs r1, #8 - bl Sin - strh r0, [r4, #0x24] - ldrh r2, [r4, #0x32] - lsls r0, r2, #0x10 - asrs r0, r0, #0x18 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x30] - adds r0, #7 - 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 _081066FA - adds r0, r4, #0 - bl DestroyAnimSprite -_081066FA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081066B0 - - thumb_func_start sub_08106700 -sub_08106700: @ 0x08106700 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - bl IsContest - lsls r0, r0, #0x18 - movs r6, #0xf0 - cmp r0, #0 - beq _08106714 - movs r6, #0x98 -_08106714: - movs r5, #0 - ldr r1, _08106768 - strh r6, [r1] - ldr r4, _0810676C - movs r0, #0xa0 - strh r0, [r4] - ldrh r1, [r1] - movs r0, #0x40 - bl SetGpuReg - ldrh r1, [r4] - movs r0, #0x44 - bl SetGpuReg - ldr r1, _08106770 - movs r0, #0x48 - bl SetGpuReg - ldr r1, _08106774 - movs r0, #0x4a - bl SetGpuReg - movs r0, #0x50 - movs r1, #0xc8 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0x10 - bl SetGpuReg - ldr r1, _08106778 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r5, [r0, #8] - strh r6, [r0, #0xa] - ldr r1, _0810677C - str r1, [r0] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08106768: .4byte gUnknown_2022AD8 -_0810676C: .4byte gUnknown_2022ADA -_08106770: .4byte 0x00003F1F -_08106774: .4byte 0x00003F3F -_08106778: .4byte gUnknown_3005B60 -_0810677C: .4byte sub_08106780 - thumb_func_end sub_08106700 - - thumb_func_start sub_08106780 -sub_08106780: @ 0x08106780 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _081067B4 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r3, r1, r2 - ldrh r0, [r3, #8] - adds r4, r0, #0 - adds r4, #0xd - strh r4, [r3, #8] - ldrh r0, [r3, #0xa] - adds r2, r0, #0 - subs r2, #0xd - strh r2, [r3, #0xa] - lsls r1, r4, #0x10 - lsls r0, r2, #0x10 - cmp r1, r0 - blt _081067C0 - ldr r0, _081067B8 - movs r1, #0 - strh r1, [r0] - ldr r0, _081067BC - str r0, [r3] - b _081067C8 - .align 2, 0 -_081067B4: .4byte gUnknown_3005B60 -_081067B8: .4byte gUnknown_2022AD8 -_081067BC: .4byte sub_081067D4 -_081067C0: - ldr r1, _081067D0 - lsls r0, r4, #8 - orrs r2, r0 - strh r2, [r1] -_081067C8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081067D0: .4byte gUnknown_2022AD8 - thumb_func_end sub_08106780 - - thumb_func_start sub_081067D4 -sub_081067D4: @ 0x081067D4 - push {r4, r5, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - ldr r1, _08106820 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r1, r0, r1 - ldrh r0, [r1, #0x1c] - adds r0, #1 - movs r4, #0 - strh r0, [r1, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #5 - bne _08106828 - movs r0, #0x88 - strh r0, [r1, #0x1e] - movs r0, #0x50 - movs r1, #0x88 - bl SetGpuReg - str r4, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r0, #1 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_080A6E74 - ldr r2, _08106824 - movs r1, #0x10 - bl BlendPalettes - b _0810685C - .align 2, 0 -_08106820: .4byte gUnknown_3005B60 -_08106824: .4byte 0x00007FFF -_08106828: - cmp r0, #4 - ble _0810685C - ldr r0, _08106864 - strh r4, [r0] - ldr r0, _08106868 - strh r4, [r0] - ldr r4, _0810686C - movs r0, #0x48 - adds r1, r4, #0 - bl SetGpuReg - movs r0, #0x4a - adds r1, r4, #0 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - adds r0, r5, #0 - bl DestroyAnimVisualTask -_0810685C: - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08106864: .4byte gUnknown_2022AD8 -_08106868: .4byte gUnknown_2022ADA -_0810686C: .4byte 0x00003F3F - thumb_func_end sub_081067D4 - - thumb_func_start sub_08106870 -sub_08106870: @ 0x08106870 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r6, r0, #0 - movs r0, #1 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _081068C0 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r5, r0, r1 - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - bne _081068CC - movs r0, #1 - bl GetAnimBattlerSpriteId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _081068C4 - adds r0, r5, #0 - bl PrepareAffineAnimInTaskData - ldr r1, _081068C8 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - movs r1, #4 - strh r1, [r0, #0x24] - b _081068F4 - .align 2, 0 -_081068C0: .4byte gUnknown_3005B60 -_081068C4: .4byte gUnknown_856F56C -_081068C8: .4byte gUnknown_20205AC -_081068CC: - ldr r1, _081068FC - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r4, r0, r1 - ldrh r0, [r4, #0x24] - rsbs r0, r0, #0 - strh r0, [r4, #0x24] - adds r0, r5, #0 - bl RunAffineAnimFromTaskData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _081068F4 - strh r0, [r4, #0x24] - strh r0, [r4, #0x26] - adds r0, r6, #0 - bl DestroyAnimVisualTask -_081068F4: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081068FC: .4byte gUnknown_20205AC - thumb_func_end sub_08106870 - - thumb_func_start sub_08106900 -sub_08106900: @ 0x08106900 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r6, r0, #0 - movs r0, #0 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08106950 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r5, r0, r1 - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - bne _0810695C - movs r0, #0 - bl GetAnimBattlerSpriteId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _08106954 - adds r0, r5, #0 - bl PrepareAffineAnimInTaskData - ldr r1, _08106958 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - movs r1, #4 - strh r1, [r0, #0x24] - b _08106984 - .align 2, 0 -_08106950: .4byte gUnknown_3005B60 -_08106954: .4byte gUnknown_856F56C -_08106958: .4byte gUnknown_20205AC -_0810695C: - ldr r1, _0810698C - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r4, r0, r1 - ldrh r0, [r4, #0x24] - rsbs r0, r0, #0 - strh r0, [r4, #0x24] - adds r0, r5, #0 - bl RunAffineAnimFromTaskData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _08106984 - strh r0, [r4, #0x24] - strh r0, [r4, #0x26] - adds r0, r6, #0 - bl DestroyAnimVisualTask -_08106984: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0810698C: .4byte gUnknown_20205AC - thumb_func_end sub_08106900 - - thumb_func_start sub_08106990 -sub_08106990: @ 0x08106990 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - movs r0, #0x5f - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x20] - strh r0, [r4, #0x30] - ldr r5, _081069D4 - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x32] - ldrh r0, [r4, #0x22] - strh r0, [r4, #0x34] - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl InitAnimLinearTranslation - ldr r0, _081069D8 - str r0, [r4, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081069D4: .4byte gUnknown_20380D7 -_081069D8: .4byte sub_081069DC - thumb_func_end sub_08106990 - - thumb_func_start sub_081069DC -sub_081069DC: @ 0x081069DC - push {r4, lr} - adds r4, r0, #0 - bl AnimTranslateLinear - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08106A06 - movs r1, #0x38 - ldrsh r0, [r4, r1] - movs r1, #0xe - bl Sin - ldrh r1, [r4, #0x26] - adds r0, r0, r1 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x38] - adds r0, #4 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x38] - b _08106A0C -_08106A06: - adds r0, r4, #0 - bl DestroyAnimSprite -_08106A0C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081069DC - - thumb_func_start sub_08106A14 -sub_08106A14: @ 0x08106A14 - push {r4, lr} - adds r4, r0, #0 - ldrh r2, [r4, #0x2e] - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08106A38 - ldr r1, _08106A34 - ldrh r0, [r1] - strh r0, [r4, #0x30] - ldrh r0, [r1, #2] - strh r0, [r4, #0x32] - adds r0, r2, #1 - strh r0, [r4, #0x2e] - b _08106A94 - .align 2, 0 -_08106A34: .4byte gUnknown_20380BE -_08106A38: - ldrh r0, [r4, #0x30] - ldrh r2, [r4, #0x36] - adds r0, r0, r2 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - 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, #3 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x34] - cmp r0, #0x64 - ble _08106A86 - movs r0, #0x34 - ldrsh r1, [r4, r0] - lsrs r0, r1, #0x1f - adds r0, r1, r0 - asrs r0, r0, #1 - lsls r0, r0, #1 - subs r1, r1, r0 - adds r3, r4, #0 - adds r3, #0x3e - movs r0, #1 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r3] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_08106A86: - movs r1, #0x34 - ldrsh r0, [r4, r1] - cmp r0, #0x78 - ble _08106A94 - adds r0, r4, #0 - bl DestroyAnimSprite -_08106A94: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08106A14 - - thumb_func_start sub_08106A9C -sub_08106A9C: @ 0x08106A9C - push {lr} - ldr r2, _08106AC0 - ldrh r1, [r2] - strh r1, [r0, #0x20] - movs r1, #0xa0 - strh r1, [r0, #0x22] - ldrh r1, [r2, #4] - strh r1, [r0, #0x2e] - ldrh r1, [r2, #2] - strh r1, [r0, #0x30] - ldr r1, _08106AC4 - str r1, [r0, #0x1c] - ldr r1, _08106AC8 - bl StoreSpriteCallbackInData6 - pop {r0} - bx r0 - .align 2, 0 -_08106AC0: .4byte gUnknown_20380BE -_08106AC4: .4byte WaitAnimForDuration -_08106AC8: .4byte sub_08106ACC - thumb_func_end sub_08106A9C - - thumb_func_start sub_08106ACC -sub_08106ACC: @ 0x08106ACC - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x30] - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - movs r1, #0x34 - ldrsh r0, [r4, r1] - movs r1, #4 - bl Sin - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x34] - adds r0, #3 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x34] - ldrh r0, [r4, #0x26] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - lsls r0, r0, #0x10 - asrs r5, r0, #0x10 - cmp r5, #0x48 - bgt _08106B32 - movs r0, #0x34 - ldrsh r1, [r4, r0] - lsrs r0, r1, #0x1f - adds r0, r1, r0 - asrs r0, r0, #1 - lsls r0, r0, #1 - subs r1, r1, r0 - adds r3, r4, #0 - adds r3, #0x3e - movs r0, #1 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r3] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - cmp r5, #0x40 - bgt _08106B32 - adds r0, r4, #0 - bl DestroyAnimSprite -_08106B32: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_08106ACC - - thumb_func_start AnimTask_HeartsBackground -AnimTask_HeartsBackground: @ 0x08106B38 - push {r4, r5, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _08106BD8 - movs r0, #0x50 - bl SetGpuReg - movs r1, #0x80 - lsls r1, r1, #5 - movs r0, #0x52 - bl SetGpuReg - movs r0, #1 - movs r1, #4 - movs r2, #3 - bl SetAnimBgAttribute - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl SetAnimBgAttribute - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08106B7A - movs r0, #1 - movs r1, #3 - movs r2, #1 - bl SetAnimBgAttribute -_08106B7A: - ldr r0, _08106BDC - movs r1, #0 - strh r1, [r0] - ldr r4, _08106BE0 - strh r1, [r4] - movs r0, #0x14 - movs r1, #0 - bl SetGpuReg - ldrh r1, [r4] - movs r0, #0x16 - bl SetGpuReg - mov r0, sp - bl sub_080A63F8 - mov r0, sp - ldrb r0, [r0, #9] - ldr r1, _08106BE4 - mov r2, sp - ldrh r2, [r2, #0xa] - bl AnimLoadCompressedBgGfx - ldr r1, _08106BE8 - mov r0, sp - movs r2, #0 - bl sub_080A6628 - ldr r0, _08106BEC - mov r1, sp - ldrb r1, [r1, #8] - lsls r1, r1, #4 - movs r2, #0x20 - bl LoadCompressedPalette - ldr r1, _08106BF0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08106BF4 - str r1, [r0] - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08106BD8: .4byte 0x00003F42 -_08106BDC: .4byte gUnknown_2022ACC -_08106BE0: .4byte gUnknown_2022ACE -_08106BE4: .4byte gUnknown_8C23384 -_08106BE8: .4byte gUnknown_8C23E1C -_08106BEC: .4byte gUnknown_8C23DF4 -_08106BF0: .4byte gUnknown_3005B60 -_08106BF4: .4byte sub_08106BF8 - thumb_func_end AnimTask_HeartsBackground - - thumb_func_start sub_08106BF8 -sub_08106BF8: @ 0x08106BF8 - push {r4, r5, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08106C20 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #0x20 - ldrsh r0, [r0, r2] - adds r2, r1, #0 - cmp r0, #4 - bls _08106C16 - b _08106D40 -_08106C16: - lsls r0, r0, #2 - ldr r1, _08106C24 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08106C20: .4byte gUnknown_3005B60 -_08106C24: .4byte _08106C28 -_08106C28: @ jump table - .4byte _08106C3C @ case 0 - .4byte _08106C80 @ case 1 - .4byte _08106CA2 @ case 2 - .4byte _08106CE6 @ case 3 - .4byte _08106D0C @ case 4 -_08106C3C: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r4, r0, r2 - ldrh r0, [r4, #0x1c] - adds r0, #1 - movs r5, #0 - strh r0, [r4, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - bne _08106D40 - strh r5, [r4, #0x1c] - ldrh r1, [r4, #0x1e] - adds r1, #1 - strh r1, [r4, #0x1e] - movs r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r1, #0x1e - ldrsh r0, [r4, r1] - cmp r0, #0x10 - bne _08106D40 - ldrh r0, [r4, #0x20] - adds r0, #1 - strh r0, [r4, #0x20] - strh r5, [r4, #0x1e] - b _08106D40 -_08106C80: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r1, r0, r2 - ldrh r0, [r1, #0x1e] - adds r0, #1 - strh r0, [r1, #0x1e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x8d - bne _08106D40 - movs r0, #0x10 - strh r0, [r1, #0x1e] - ldrh r0, [r1, #0x20] - adds r0, #1 - strh r0, [r1, #0x20] - b _08106D40 -_08106CA2: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r4, r0, r2 - ldrh r0, [r4, #0x1c] - adds r0, #1 - strh r0, [r4, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - bne _08106D40 - movs r0, #0 - strh r0, [r4, #0x1c] - ldrh r1, [r4, #0x1e] - subs r1, #1 - strh r1, [r4, #0x1e] - movs r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r2, #0x1e - ldrsh r1, [r4, r2] - cmp r1, #0 - bne _08106D40 - ldrh r0, [r4, #0x20] - adds r0, #1 - strh r0, [r4, #0x20] - strh r1, [r4, #0x1e] - b _08106D40 -_08106CE6: - mov r0, sp - bl sub_080A63F8 - mov r0, sp - ldrb r0, [r0, #9] - bl sub_080A6530 - ldr r1, _08106D08 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #0x20] - adds r1, #1 - strh r1, [r0, #0x20] - b _08106D40 - .align 2, 0 -_08106D08: .4byte gUnknown_3005B60 -_08106D0C: - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08106D20 - movs r0, #1 - movs r1, #3 - movs r2, #0 - bl SetAnimBgAttribute -_08106D20: - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #1 - movs r1, #4 - movs r2, #1 - bl SetAnimBgAttribute - adds r0, r4, #0 - bl DestroyAnimVisualTask -_08106D40: - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_08106BF8 - - thumb_func_start sub_08106D48 -sub_08106D48: @ 0x08106D48 - push {r4, r5, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _08106DB8 - movs r0, #0x50 - bl SetGpuReg - movs r1, #0x80 - lsls r1, r1, #5 - movs r0, #0x52 - bl SetGpuReg - movs r0, #1 - movs r1, #4 - movs r2, #1 - bl SetAnimBgAttribute - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl SetAnimBgAttribute - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08106D8A - movs r0, #1 - movs r1, #3 - movs r2, #1 - bl SetAnimBgAttribute -_08106D8A: - ldr r0, _08106DBC - movs r1, #0 - strh r1, [r0] - ldr r4, _08106DC0 - strh r1, [r4] - movs r0, #0x14 - movs r1, #0 - bl SetGpuReg - ldrh r1, [r4] - movs r0, #0x16 - bl SetGpuReg - mov r0, sp - bl sub_080A63F8 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08106DC8 - ldr r1, _08106DC4 - b _08106DDA - .align 2, 0 -_08106DB8: .4byte 0x00003F42 -_08106DBC: .4byte gUnknown_2022ACC -_08106DC0: .4byte gUnknown_2022ACE -_08106DC4: .4byte gUnknown_8D93914 -_08106DC8: - ldr r0, _08106DE4 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08106DEC - ldr r1, _08106DE8 -_08106DDA: - mov r0, sp - movs r2, #0 - bl sub_080A6628 - b _08106DF6 - .align 2, 0 -_08106DE4: .4byte gUnknown_20380D7 -_08106DE8: .4byte gUnknown_8D9354C -_08106DEC: - ldr r1, _08106E28 - mov r0, sp - movs r2, #0 - bl sub_080A6628 -_08106DF6: - mov r0, sp - ldrb r0, [r0, #9] - ldr r1, _08106E2C - mov r2, sp - ldrh r2, [r2, #0xa] - bl AnimLoadCompressedBgGfx - ldr r0, _08106E30 - mov r1, sp - ldrb r1, [r1, #8] - lsls r1, r1, #4 - movs r2, #0x20 - bl LoadCompressedPalette - ldr r1, _08106E34 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08106E38 - str r1, [r0] - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08106E28: .4byte gUnknown_8D93730 -_08106E2C: .4byte gUnknown_8C24A9C -_08106E30: .4byte gUnknown_8C24A74 -_08106E34: .4byte gUnknown_3005B60 -_08106E38: .4byte sub_08106E3C - thumb_func_end sub_08106D48 - - thumb_func_start sub_08106E3C -sub_08106E3C: @ 0x08106E3C - push {r4, r5, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08106E64 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #0x20 - ldrsh r0, [r0, r2] - adds r2, r1, #0 - cmp r0, #4 - bls _08106E5A - b _08106F80 -_08106E5A: - lsls r0, r0, #2 - ldr r1, _08106E68 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08106E64: .4byte gUnknown_3005B60 -_08106E68: .4byte _08106E6C -_08106E6C: @ jump table - .4byte _08106E80 @ case 0 - .4byte _08106EC4 @ case 1 - .4byte _08106EE6 @ case 2 - .4byte _08106F2A @ case 3 - .4byte _08106F4C @ case 4 -_08106E80: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r4, r0, r2 - ldrh r0, [r4, #0x1c] - adds r0, #1 - movs r5, #0 - strh r0, [r4, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - bne _08106F80 - strh r5, [r4, #0x1c] - ldrh r1, [r4, #0x1e] - adds r1, #1 - strh r1, [r4, #0x1e] - movs r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r1, #0x1e - ldrsh r0, [r4, r1] - cmp r0, #0xe - bne _08106F80 - ldrh r0, [r4, #0x20] - adds r0, #1 - strh r0, [r4, #0x20] - strh r5, [r4, #0x1e] - b _08106F80 -_08106EC4: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r1, r0, r2 - ldrh r0, [r1, #0x1e] - adds r0, #1 - strh r0, [r1, #0x1e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x15 - bne _08106F80 - movs r0, #0xe - strh r0, [r1, #0x1e] - ldrh r0, [r1, #0x20] - adds r0, #1 - strh r0, [r1, #0x20] - b _08106F80 -_08106EE6: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r4, r0, r2 - ldrh r0, [r4, #0x1c] - adds r0, #1 - strh r0, [r4, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - bne _08106F80 - movs r0, #0 - strh r0, [r4, #0x1c] - ldrh r1, [r4, #0x1e] - subs r1, #1 - strh r1, [r4, #0x1e] - movs r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r2, #0x1e - ldrsh r1, [r4, r2] - cmp r1, #0 - bne _08106F80 - ldrh r0, [r4, #0x20] - adds r0, #1 - strh r0, [r4, #0x20] - strh r1, [r4, #0x1e] - b _08106F80 -_08106F2A: - mov r0, sp - bl sub_080A63F8 - movs r0, #1 - bl sub_080A6530 - movs r0, #2 - bl sub_080A6530 - ldr r0, _08106F88 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x20] - adds r0, #1 - strh r0, [r1, #0x20] -_08106F4C: - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08106F60 - movs r0, #1 - movs r1, #3 - movs r2, #0 - bl SetAnimBgAttribute -_08106F60: - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #1 - movs r1, #4 - movs r2, #1 - bl SetAnimBgAttribute - adds r0, r4, #0 - bl DestroyAnimVisualTask -_08106F80: - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08106F88: .4byte gUnknown_3005B60 - thumb_func_end sub_08106E3C - - thumb_func_start AnimOrbitFast -AnimOrbitFast: @ 0x08106F8C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08106FE0 - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x20] - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - 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, _08106FE4 - ldrh r0, [r1] - strh r0, [r4, #0x2e] - ldrh r0, [r1, #2] - strh r0, [r4, #0x30] - ldrb r0, [r5] - bl GetBattlerSpriteSubpriority - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x3c] - ldr r1, _08106FE8 - str r1, [r4, #0x1c] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08106FE0: .4byte gUnknown_20380D6 -_08106FE4: .4byte gUnknown_20380BE -_08106FE8: .4byte AnimOrbitFastStep - thumb_func_end AnimOrbitFast - - thumb_func_start AnimOrbitFastStep -AnimOrbitFastStep: @ 0x08106FEC - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x30] - subs r0, #0x40 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x7f - bhi _08107002 - ldrh r0, [r4, #0x3c] - adds r0, #1 - b _08107006 -_08107002: - ldrh r0, [r4, #0x3c] - subs r0, #1 -_08107006: - adds r1, r4, #0 - adds r1, #0x43 - strb r0, [r1] - movs r1, #0x30 - ldrsh r0, [r4, r1] - ldrh r1, [r4, #0x32] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - bl Sin - strh r0, [r4, #0x24] - movs r2, #0x30 - ldrsh r0, [r4, r2] - ldrh r1, [r4, #0x34] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - bl Cos - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x30] - adds r0, #9 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x30] - movs r3, #0x38 - ldrsh r2, [r4, r3] - cmp r2, #0 - beq _08107078 - cmp r2, #1 - bne _081070A8 - ldr r1, _08107070 - adds r0, r1, #0 - ldrh r2, [r4, #0x32] - adds r0, r0, r2 - strh r0, [r4, #0x32] - ldr r3, _08107074 - adds r0, r3, #0 - ldrh r1, [r4, #0x34] - adds r0, r0, r1 - strh r0, [r4, #0x34] - ldrh r0, [r4, #0x36] - adds r0, #1 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x2e - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _081070A8 - movs r0, #2 - strh r0, [r4, #0x38] - b _081070B8 - .align 2, 0 -_08107070: .4byte 0xFFFFFC00 -_08107074: .4byte 0xFFFFFF00 -_08107078: - movs r3, #0x80 - lsls r3, r3, #3 - adds r0, r3, #0 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - movs r3, #0x80 - lsls r3, r3, #1 - adds r0, r3, #0 - ldrh r1, [r4, #0x34] - adds r0, r0, r1 - strh r0, [r4, #0x34] - ldrh r0, [r4, #0x36] - adds r0, #1 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r3, #0x2e - ldrsh r1, [r4, r3] - cmp r0, r1 - bne _081070A8 - strh r2, [r4, #0x36] - movs r0, #1 - strh r0, [r4, #0x38] -_081070A8: - ldr r0, _081070C0 - ldrh r1, [r0, #0xe] - ldr r0, _081070C4 - cmp r1, r0 - bne _081070B8 - adds r0, r4, #0 - bl DestroyAnimSprite -_081070B8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081070C0: .4byte gUnknown_20380BE -_081070C4: .4byte 0x0000FFFF - thumb_func_end AnimOrbitFastStep - - thumb_func_start sub_081070C8 -sub_081070C8: @ 0x081070C8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08107110 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - ldr r4, _08107114 - 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, #7 - bl Cos - strh r0, [r5, #0x30] - ldr r0, _08107118 - str r0, [r5, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08107110: .4byte gUnknown_20380D6 -_08107114: .4byte gUnknown_20380BE -_08107118: .4byte AnimOrbitScatterStep - thumb_func_end sub_081070C8 - - thumb_func_start AnimOrbitScatterStep -AnimOrbitScatterStep: @ 0x0810711C - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x2e] - ldrh r1, [r2, #0x24] - adds r0, r0, r1 - strh r0, [r2, #0x24] - ldrh r0, [r2, #0x30] - ldrh r3, [r2, #0x26] - adds r0, r0, r3 - strh r0, [r2, #0x26] - movs r1, #0x20 - ldrsh r0, [r2, r1] - movs r3, #0x24 - ldrsh r1, [r2, r3] - adds r0, r0, r1 - adds r0, #0x10 - movs r1, #0x88 - lsls r1, r1, #1 - cmp r0, r1 - bhi _0810715A - movs r0, #0x22 - ldrsh r1, [r2, r0] - movs r3, #0x26 - ldrsh r0, [r2, r3] - adds r1, r1, r0 - cmp r1, #0xa0 - bgt _0810715A - movs r0, #0x10 - rsbs r0, r0, #0 - cmp r1, r0 - bge _08107160 -_0810715A: - adds r0, r2, #0 - bl DestroyAnimSprite -_08107160: - pop {r0} - bx r0 - thumb_func_end AnimOrbitScatterStep - - thumb_func_start sub_08107164 -sub_08107164: @ 0x08107164 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x2e] - ldrh r1, [r2, #0x24] - adds r0, r0, r1 - strh r0, [r2, #0x24] - ldrh r0, [r2, #0x30] - ldrh r3, [r2, #0x26] - adds r0, r0, r3 - strh r0, [r2, #0x26] - ldrh r0, [r2, #0x34] - adds r1, r0, #1 - strh r1, [r2, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r3, #0x32 - ldrsh r1, [r2, r3] - cmp r0, r1 - blt _08107190 - adds r0, r2, #0 - bl DestroyAnimSprite -_08107190: - pop {r0} - bx r0 - thumb_func_end sub_08107164 - - thumb_func_start sub_08107194 -sub_08107194: @ 0x08107194 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _081071E0 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - ldr r4, _081071E4 - 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, #7 - bl Cos - strh r0, [r5, #0x30] - ldrh r0, [r4, #2] - strh r0, [r5, #0x32] - ldr r0, _081071E8 - str r0, [r5, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081071E0: .4byte gUnknown_20380D6 -_081071E4: .4byte gUnknown_20380BE -_081071E8: .4byte sub_08107164 - thumb_func_end sub_08107194 - - thumb_func_start sub_081071EC -sub_081071EC: @ 0x081071EC - push {lr} - adds r2, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08107202 - adds r0, r2, #0 - bl DestroyAnimSprite -_08107202: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081071EC - - thumb_func_start sub_08107208 -sub_08107208: @ 0x08107208 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldr r0, _0810721C - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810721C: .4byte sub_081071EC - thumb_func_end sub_08107208 - - thumb_func_start sub_08107220 -sub_08107220: @ 0x08107220 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0810723E - ldr r0, _081072B0 - ldrh r1, [r0] - ldrh r2, [r4, #0x20] - adds r1, r1, r2 - strh r1, [r4, #0x20] - ldrh r0, [r0, #2] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] -_0810723E: - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - movs r2, #0x2e - ldrsh r1, [r4, r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r5, r0, #1 - movs r0, #0xff - ands r5, r0 - adds r0, r5, #0 - movs r1, #0x50 - bl Sin - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - strh r0, [r4, #0x24] - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0x4f - bgt _08107282 - adds r0, r5, #0 - movs r1, #0x50 - bl Cos - movs r2, #0x2e - ldrsh r1, [r4, r2] - lsrs r2, r1, #0x1f - adds r1, r1, r2 - asrs r1, r1, #1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - adds r1, r1, r0 - strh r1, [r4, #0x26] -_08107282: - movs r0, #0x2e - ldrsh r2, [r4, r0] - cmp r2, #0x5a - ble _081072A0 - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - movs r0, #0x32 - ldrsh r1, [r4, r0] - lsrs r0, r1, #0x1f - adds r1, r1, r0 - asrs r1, r1, #1 - ldrh r0, [r4, #0x24] - subs r0, r0, r1 - strh r0, [r4, #0x24] -_081072A0: - cmp r2, #0x64 - ble _081072AA - adds r0, r4, #0 - bl DestroyAnimSprite -_081072AA: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081072B0: .4byte gUnknown_20380BE - thumb_func_end sub_08107220 - - thumb_func_start sub_081072B4 -sub_081072B4: @ 0x081072B4 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x38] - adds r0, #1 - strh r0, [r4, #0x38] - movs r1, #0x34 - ldrsh r0, [r4, r1] - movs r1, #5 - bl Sin - strh r0, [r4, #0x24] - movs r1, #0x38 - ldrsh r0, [r4, r1] - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x34] - adds r0, #3 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x34] - movs r1, #0x38 - ldrsh r0, [r4, r1] - cmp r0, #0x14 - ble _0810730A - adds r1, r0, #0 - lsrs r0, r1, #0x1f - adds r0, r1, r0 - asrs r0, r0, #1 - lsls r0, r0, #1 - subs r1, r1, r0 - adds r3, r4, #0 - adds r3, #0x3e - movs r0, #1 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r3] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_0810730A: - movs r1, #0x38 - ldrsh r0, [r4, r1] - cmp r0, #0x1e - ble _08107318 - adds r0, r4, #0 - bl DestroyAnimSprite -_08107318: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081072B4 - - thumb_func_start sub_08107320 -sub_08107320: @ 0x08107320 - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r2, [r4, #0x2e] - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08107344 - ldr r1, _08107340 - ldrh r0, [r1] - strh r0, [r4, #0x30] - ldrh r0, [r1, #2] - strh r0, [r4, #0x32] - adds r0, r2, #1 - strh r0, [r4, #0x2e] - b _08107398 - .align 2, 0 -_08107340: .4byte gUnknown_20380BE -_08107344: - ldrh r0, [r4, #0x30] - ldrh r2, [r4, #0x36] - adds r0, r0, r2 - movs r5, #0 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - 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, #3 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x34] - cmp r0, #0x46 - ble _08107398 - ldr r0, _081073A0 - str r0, [r4, #0x1c] - ldrh r0, [r4, #0x24] - ldrh r1, [r4, #0x20] - adds r0, 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 sub_0806F0A4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xb4 - bl __umodsi3 - strh r0, [r4, #0x34] -_08107398: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081073A0: .4byte sub_081072B4 - thumb_func_end sub_08107320 - - thumb_func_start sub_081073A4 -sub_081073A4: @ 0x081073A4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x34 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _081073DE - ldr r1, _081074A0 - ldrh r0, [r1] - ldrh r2, [r4, #0x20] - adds r0, r0, r2 - strh r0, [r4, #0x20] - ldrh r0, [r1, #2] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] - adds r0, r4, #0 - movs r1, #0 - bl StartSpriteAnim - ldr r0, _081074A4 - ldrb r0, [r0] - bl GetBattlerSpriteSubpriority - subs r0, #1 - adds r1, r4, #0 - adds r1, #0x43 - strb r0, [r1] - movs r0, #1 - strh r0, [r4, #0x32] -_081073DE: - ldrh r0, [r4, #0x32] - ldrh r2, [r4, #0x2e] - adds r0, 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 _081073F4 - adds r0, #0xff -_081073F4: - asrs r0, r0, #8 - lsls r0, r0, #8 - subs r0, r1, r0 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _08107406 - movs r0, #0 - strh r0, [r4, #0x30] -_08107406: - movs r0, #0x30 - ldrsh r2, [r4, r0] - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - bge _08107414 - adds r0, #3 -_08107414: - asrs r0, r0, #2 - movs r1, #0x1e - subs r1, 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 _08107430 - adds r0, #7 -_08107430: - asrs r0, r0, #3 - movs r1, #0xa - subs r1, r1, r0 - adds r0, r2, #0 - bl Sin - strh r0, [r4, #0x26] - movs r2, #0x30 - ldrsh r0, [r4, r2] - cmp r0, #0x80 - ble _08107454 - ldrh r1, [r4, #0x32] - movs r2, #0x32 - ldrsh r0, [r4, r2] - cmp r0, #0 - ble _08107454 - ldr r0, _081074A8 - strh r0, [r4, #0x32] -_08107454: - movs r1, #0x30 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08107468 - movs r2, #0x32 - ldrsh r0, [r4, r2] - cmp r0, #0 - bge _08107468 - movs r0, #1 - strh r0, [r4, #0x32] -_08107468: - ldrh r0, [r4, #0x34] - adds r1, r0, #1 - strh r1, [r4, #0x34] - subs r0, #9 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x46 - bls _081074AC - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsrs r0, r1, #0x1f - adds r0, r1, r0 - asrs r0, r0, #1 - lsls r0, r0, #1 - subs r1, r1, r0 - adds r3, r4, #0 - adds r3, #0x3e - movs r0, #1 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r3] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _081074BA - .align 2, 0 -_081074A0: .4byte gUnknown_20380BE -_081074A4: .4byte gUnknown_20380D7 -_081074A8: .4byte 0x0000FFFF -_081074AC: - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_081074BA: - movs r1, #0x34 - ldrsh r0, [r4, r1] - cmp r0, #0x5a - ble _081074C8 - adds r0, r4, #0 - bl DestroyAnimSprite -_081074C8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081073A4 - - thumb_func_start sub_081074D0 -sub_081074D0: @ 0x081074D0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08107504 - ldr r1, _08107500 - ldrh r0, [r1] - ldrh r2, [r4, #0x20] - adds r0, r0, r2 - strh r0, [r4, #0x20] - ldrh r0, [r1, #2] - ldrh r2, [r4, #0x22] - adds r0, r0, r2 - strh r0, [r4, #0x22] - ldrb r1, [r1, #4] - adds r0, r4, #0 - bl StartSpriteAnim - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - b _08107518 - .align 2, 0 -_08107500: .4byte gUnknown_20380BE -_08107504: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08107518 - adds r0, r4, #0 - bl DestroyAnimSprite -_08107518: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081074D0 - - thumb_func_start sub_08107520 -sub_08107520: @ 0x08107520 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r1, _08107538 - movs r2, #4 - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _0810753C - adds r0, r5, #0 - bl DestroyAnimSprite - b _081075A0 - .align 2, 0 -_08107538: .4byte gUnknown_20380BE -_0810753C: - movs r2, #0 - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _0810754C - ldr r4, _08107548 - b _0810754E - .align 2, 0 -_08107548: .4byte gUnknown_20380D6 -_0810754C: - ldr r4, _0810757C -_0810754E: - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - ldr r0, _08107580 - movs r2, #2 - ldrsh r1, [r0, r2] - adds r2, r0, #0 - cmp r1, #0 - bne _08107584 - ldrh r0, [r5, #0x20] - adds r0, #0x20 - b _08107588 - .align 2, 0 -_0810757C: .4byte gUnknown_20380D7 -_08107580: .4byte gUnknown_20380BE -_08107584: - ldrh r0, [r5, #0x20] - subs r0, #0x20 -_08107588: - strh r0, [r5, #0x20] - ldrh r0, [r2, #4] - strh r0, [r5, #0x2e] - ldrh r1, [r2, #2] - strh r1, [r5, #0x30] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl StartSpriteAnim - ldr r0, _081075A8 - str r0, [r5, #0x1c] -_081075A0: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081075A8: .4byte sub_081075AC - thumb_func_end sub_08107520 - - thumb_func_start sub_081075AC -sub_081075AC: @ 0x081075AC - push {lr} - adds r2, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _081075DC - ldrh r0, [r2, #0x2e] - subs r0, #1 - strh r0, [r2, #0x2e] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _081075D6 - ldrh r1, [r2, #0x30] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r2, #0 - bl StartSpriteAnim - b _081075DC -_081075D6: - adds r0, r2, #0 - bl DestroyAnimSprite -_081075DC: - pop {r0} - bx r0 - thumb_func_end sub_081075AC - - thumb_func_start sub_081075E0 -sub_081075E0: @ 0x081075E0 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _08107614 - ldrb r0, [r0] - bl GetAnimBattlerSpriteId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - ldr r0, _08107618 - adds r4, r4, r0 - ldr r2, _0810761C - adds r0, r4, #0 - bl PrepareAffineAnimInTaskData - ldr r0, _08107620 - str r0, [r4] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08107614: .4byte gUnknown_20380BE -_08107618: .4byte gUnknown_3005B60 -_0810761C: .4byte gUnknown_856F77C -_08107620: .4byte sub_08107624 - thumb_func_end sub_081075E0 - - thumb_func_start sub_08107624 -sub_08107624: @ 0x08107624 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _0810764C - adds r0, r0, r1 - bl RunAffineAnimFromTaskData - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08107644 - adds r0, r4, #0 - bl DestroyAnimVisualTask -_08107644: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810764C: .4byte gUnknown_3005B60 - thumb_func_end sub_08107624 - - thumb_func_start sub_08107650 -sub_08107650: @ 0x08107650 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldr r0, _08107664 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _0810766C - ldr r0, _08107668 - b _0810766E - .align 2, 0 -_08107664: .4byte gUnknown_20380BE -_08107668: .4byte gUnknown_20380D6 -_0810766C: - ldr r0, _08107704 -_0810766E: - ldrb r6, [r0] - adds r0, r6, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08107688 - ldr r1, _08107708 - movs r2, #2 - ldrsh r0, [r1, r2] - rsbs r0, r0, #0 - strh r0, [r1, #2] -_08107688: - adds r0, r6, #0 - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - ldr r7, _08107708 - lsrs r0, r0, #0x18 - ldrh r3, [r7, #2] - adds r0, r0, r3 - movs r4, #0 - strh r0, [r5, #0x20] - adds r0, r6, #0 - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r7, #4] - adds r0, r0, r1 - strh r0, [r5, #0x22] - strh r4, [r5, #0x2e] - ldrh r1, [r5, #0x20] - lsls r1, r1, #3 - strh r1, [r5, #0x30] - lsls r0, r0, #3 - strh r0, [r5, #0x32] - movs r2, #2 - ldrsh r0, [r7, r2] - lsls r0, r0, #3 - cmp r0, #0 - bge _081076C8 - adds r0, #7 -_081076C8: - asrs r0, r0, #3 - strh r0, [r5, #0x34] - movs r3, #4 - ldrsh r0, [r7, r3] - lsls r0, r0, #3 - cmp r0, #0 - bge _081076D8 - adds r0, #7 -_081076D8: - asrs r0, r0, #3 - strh r0, [r5, #0x36] - ldrh r2, [r5, #4] - lsls r1, r2, #0x16 - lsrs r1, r1, #0x16 - movs r3, #6 - ldrsh r0, [r7, r3] - lsls r0, r0, #4 - adds r1, r1, r0 - ldr r3, _0810770C - adds r0, r3, #0 - ands r1, r0 - ldr r0, _08107710 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, #4] - ldr r0, _08107714 - str r0, [r5, #0x1c] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08107704: .4byte gUnknown_20380D7 -_08107708: .4byte gUnknown_20380BE -_0810770C: .4byte 0x000003FF -_08107710: .4byte 0xFFFFFC00 -_08107714: .4byte sub_08107718 - thumb_func_end sub_08107650 - - thumb_func_start sub_08107718 -sub_08107718: @ 0x08107718 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x34] - ldrh r1, [r2, #0x30] - adds r0, r0, r1 - strh r0, [r2, #0x30] - ldrh r1, [r2, #0x36] - ldrh r3, [r2, #0x32] - adds r1, r1, r3 - strh r1, [r2, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x13 - strh r0, [r2, #0x20] - lsls r1, r1, #0x10 - asrs r1, r1, #0x13 - strh r1, [r2, #0x22] - ldrh r0, [r2, #0x2e] - adds r0, #1 - strh r0, [r2, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x10 - ble _0810774C - adds r0, r2, #0 - bl DestroyAnimSprite -_0810774C: - pop {r0} - bx r0 - thumb_func_end sub_08107718 - - thumb_func_start sub_08107750 -sub_08107750: @ 0x08107750 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08107772 - ldr r0, _081077AC - ldrh r1, [r0] - movs r0, #0x78 - subs r0, r0, r1 - strh r0, [r4, #0x30] - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] -_08107772: - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x30 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _08107790 - ldrb r0, [r4, #5] - lsrs r0, r0, #4 - adds r0, #0x10 - movs r1, #0 - bl SetGreyscaleOrOriginalPalette -_08107790: - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r2, #0x30 - ldrsh r0, [r4, r2] - adds r0, #0x50 - cmp r1, r0 - bne _081077A4 - adds r0, r4, #0 - bl DestroyAnimSprite -_081077A4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081077AC: .4byte gUnknown_20380BE - thumb_func_end sub_08107750 - - thumb_func_start sub_081077B0 -sub_081077B0: @ 0x081077B0 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r1, #0x2e - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _081077DE - movs r5, #0x78 - strh r5, [r6, #0x20] - ldr r4, _08107860 - movs r2, #0 - ldrsh r0, [r4, r2] - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - subs r0, #0xf - strh r0, [r6, #0x22] - ldrb r1, [r4, #2] - adds r0, r6, #0 - bl StartSpriteAnim - strh r5, [r6, #0x38] - ldrh r0, [r4, #4] - strh r0, [r6, #0x34] -_081077DE: - ldrh r0, [r6, #0x2e] - adds r0, #1 - movs r5, #0 - strh r0, [r6, #0x2e] - movs r1, #0x2e - ldrsh r0, [r6, r1] - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - strh r0, [r6, #0x30] - movs r2, #0x2e - ldrsh r0, [r6, r2] - lsls r4, r0, #1 - adds r4, r4, r0 - ldrh r0, [r6, #0x34] - adds r4, 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, #4 - bl Cos - ldrh r2, [r6, #0x30] - adds r4, r4, r2 - adds r0, r0, r4 - strh r0, [r6, #0x26] - movs r0, #0x2e - ldrsh r1, [r6, r0] - movs r2, #0x38 - ldrsh r0, [r6, r2] - cmp r1, r0 - ble _0810785A - ldr r0, _08107864 - str r0, [r6, #0x1c] - strh r5, [r6, #0x2e] - adds r0, r6, #0 - bl SetSpritePrimaryCoordsFromSecondaryCoords - movs r0, #5 - strh r0, [r6, #0x32] - strh r5, [r6, #0x36] - strh r5, [r6, #0x34] - adds r0, r6, #0 - movs r1, #1 - bl StartSpriteAffineAnim -_0810785A: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08107860: .4byte gUnknown_20380BE -_08107864: .4byte sub_08107868 - thumb_func_end sub_081077B0 - - thumb_func_start sub_08107868 -sub_08107868: @ 0x08107868 - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0x2e] - adds r0, #1 - strh r0, [r1, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xa - ble _08107882 - movs r0, #0 - strh r0, [r1, #0x2e] - ldr r0, _08107888 - str r0, [r1, #0x1c] -_08107882: - pop {r0} - bx r0 - .align 2, 0 -_08107888: .4byte sub_0810788C - thumb_func_end sub_08107868 - - thumb_func_start sub_0810788C -sub_0810788C: @ 0x0810788C - 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, #1 - strh r1, [r4, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x30 - ble _081078B6 - lsls r0, r1, #0x10 - cmp r0, #0 - ble _081078B6 - ldrh r0, [r4, #0x36] - subs r1, r0, #5 - strh r1, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x36] -_081078B6: - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #3 - ble _081078E8 - movs r2, #0x32 - ldrsh r1, [r4, r2] - lsrs r0, r1, #0x1f - adds r0, r1, r0 - asrs r0, r0, #1 - lsls r0, r0, #1 - subs r1, r1, r0 - adds r3, r4, #0 - adds r3, #0x3e - movs r0, #1 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r3] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - adds r0, r4, #0 - bl DestroyAnimSprite -_081078E8: - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #4 - bne _081078F6 - adds r0, r4, #0 - bl DestroyAnimSprite -_081078F6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0810788C - - thumb_func_start sub_081078FC -sub_081078FC: @ 0x081078FC - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _08107940 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08107948 - ldr r4, _08107944 - ldrb r1, [r4] - movs r0, #2 - eors r0, r1 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08107948 - ldrb r0, [r4] - adds r2, r5, #0 - adds r2, #0x20 - adds r3, r5, #0 - adds r3, #0x22 - movs r1, #0 - bl SetAverageBattlerPositions - ldrh r0, [r5, #0x22] - adds r0, #0x28 - strh r0, [r5, #0x22] - adds r0, r5, #0 - movs r1, #1 - bl StartSpriteAffineAnim - b _08107968 - .align 2, 0 -_08107940: .4byte gUnknown_2022C90 -_08107944: .4byte gUnknown_20380D6 -_08107948: - ldr r4, _08107988 - ldrb r0, [r4] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #0x28 - strh r0, [r5, #0x22] -_08107968: - 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, _0810798C - str r0, [r5, #0x1c] - ldr r1, _08107990 - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08107988: .4byte gUnknown_20380D6 -_0810798C: .4byte sub_080A67B4 -_08107990: .4byte DestroyAnimSprite - thumb_func_end sub_081078FC - - thumb_func_start AnimTask_IsFuryCutterHitRight -AnimTask_IsFuryCutterHitRight: @ 0x08107994 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _081079B0 - ldr r1, _081079B4 - ldr r1, [r1] - ldrb r2, [r1, #0x10] - movs r1, #1 - ands r1, r2 - strh r1, [r3, #0xe] - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_081079B0: .4byte gUnknown_20380BE -_081079B4: .4byte gUnknown_20380A0 - thumb_func_end AnimTask_IsFuryCutterHitRight - - thumb_func_start AnimTask_GetFuryCutterHitCount -AnimTask_GetFuryCutterHitCount: @ 0x081079B8 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _081079D0 - ldr r1, _081079D4 - ldr r1, [r1] - ldrb r1, [r1, #0x10] - strh r1, [r2, #0xe] - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_081079D0: .4byte gUnknown_20380BE -_081079D4: .4byte gUnknown_20380A0 - thumb_func_end AnimTask_GetFuryCutterHitCount - - thumb_func_start AnimTask_CreateRaindrops -AnimTask_CreateRaindrops: @ 0x081079D8 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r6, r0, #0 - ldr r1, _08107A60 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r5, r0, r1 - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _08107A00 - ldr r1, _08107A64 - ldrh r0, [r1] - strh r0, [r5, #0xa] - ldrh r0, [r1, #2] - strh r0, [r5, #0xc] - ldrh r0, [r1, #4] - strh r0, [r5, #0xe] -_08107A00: - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - movs r2, #8 - ldrsh r0, [r5, r2] - movs r2, #0xc - ldrsh r1, [r5, r2] - bl __modsi3 - cmp r0, #1 - bne _08107A48 - bl sub_0806F0A4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xf0 - bl __umodsi3 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_0806F0A4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x50 - bl __umodsi3 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r0, _08107A68 - adds r1, r4, #0 - movs r3, #4 - bl CreateSprite -_08107A48: - movs r0, #8 - ldrsh r1, [r5, r0] - movs r2, #0xe - ldrsh r0, [r5, r2] - cmp r1, r0 - bne _08107A5A - adds r0, r6, #0 - bl DestroyAnimVisualTask -_08107A5A: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08107A60: .4byte gUnknown_3005B60 -_08107A64: .4byte gUnknown_20380BE -_08107A68: .4byte gUnknown_8570C04 - thumb_func_end AnimTask_CreateRaindrops - - thumb_func_start sub_08107A6C -sub_08107A6C: @ 0x08107A6C - ldr r1, _08107A74 - str r1, [r0, #0x1c] - bx lr - .align 2, 0 -_08107A74: .4byte sub_08107A78 - thumb_func_end sub_08107A6C - - thumb_func_start sub_08107A78 -sub_08107A78: @ 0x08107A78 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x2e] - adds r0, #1 - strh r0, [r2, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xd - bgt _08107A96 - ldrh r0, [r2, #0x24] - adds r0, #1 - strh r0, [r2, #0x24] - ldrh r0, [r2, #0x26] - adds r0, #4 - strh r0, [r2, #0x26] -_08107A96: - adds r0, r2, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08107AAA - adds r0, r2, #0 - bl DestroySprite -_08107AAA: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08107A78 - - thumb_func_start sub_08107AB0 -sub_08107AB0: @ 0x08107AB0 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r5, _08107AD8 - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08107AE0 - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _08107ADC - ldrh r1, [r4] - subs r0, r0, r1 - b _08107AF2 - .align 2, 0 -_08107AD8: .4byte gUnknown_20380D6 -_08107ADC: .4byte gUnknown_20380BE -_08107AE0: - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - ldr r4, _08107BB8 - lsrs r0, r0, #0x18 - ldrh r1, [r4] - adds r0, r0, r1 -_08107AF2: - strh r0, [r6, #0x20] - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r4, [r4, #2] - adds r0, 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, _08107BBC - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08107B28 - ldr r1, _08107BB8 - ldrh r0, [r1, #4] - rsbs r0, r0, #0 - strh r0, [r1, #4] -_08107B28: - ldr r5, _08107BB8 - ldrh r0, [r5, #0xc] - strh r0, [r6, #0x2e] - ldrh r0, [r6, #0x20] - strh r0, [r6, #0x30] - ldr r4, _08107BC0 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r6, #0x32] - ldrh r0, [r6, #0x22] - strh r0, [r6, #0x34] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r6, #0x36] - adds r0, r6, #0 - bl InitAnimLinearTranslation - ldr r0, _08107BC4 - bl CreateInvisibleSpriteWithCallback - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - strh r4, [r6, #0x38] - ldrb r0, [r5, #8] - movs r2, #4 - ldrsh r1, [r5, r2] - bl Sin - ldrh r1, [r6, #0x20] - subs r1, r1, r0 - strh r1, [r6, #0x20] - ldrb r0, [r5, #8] - movs r2, #6 - ldrsh r1, [r5, r2] - bl Cos - ldrh r1, [r6, #0x22] - subs r1, r1, r0 - strh r1, [r6, #0x22] - ldr r0, _08107BC8 - lsls r1, r4, #4 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r0, [r5, #4] - strh r0, [r1, #0x2e] - ldrh r0, [r5, #6] - strh r0, [r1, #0x30] - ldrh r0, [r5, #0xa] - strh r0, [r1, #0x32] - ldrb r0, [r5, #8] - lsls r0, r0, #8 - strh r0, [r1, #0x34] - ldrh r0, [r5, #0xc] - strh r0, [r1, #0x36] - ldr r1, _08107BCC - str r1, [r6, #0x1c] - adds r0, r6, #0 - bl _call_via_r1 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08107BB8: .4byte gUnknown_20380BE -_08107BBC: .4byte gUnknown_20380D6 -_08107BC0: .4byte gUnknown_20380D7 -_08107BC4: .4byte sub_08007140 -_08107BC8: .4byte gUnknown_20205AC -_08107BCC: .4byte sub_08107BD0 - thumb_func_end sub_08107AB0 - - thumb_func_start sub_08107BD0 -sub_08107BD0: @ 0x08107BD0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r5, r0, #0 - ldrh r1, [r5, #0x38] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _08107C38 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r7, r0, r2 - ldrh r4, [r7, #0x36] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldrh r0, [r7, #0x34] - mov r8, r0 - movs r0, #1 - strh r0, [r5, #0x2e] - adds r0, r5, #0 - bl AnimTranslateLinear - 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, 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, r0, r1 - strh r0, [r5, #0x26] - ldrh r0, [r7, #0x32] - mov r1, r8 - adds r1, r1, r0 - strh r1, [r7, #0x34] - subs r4, #1 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - cmp r4, #0 - beq _08107C3C - strh r4, [r7, #0x36] - b _08107C46 - .align 2, 0 -_08107C38: .4byte gUnknown_20205AC -_08107C3C: - ldr r0, _08107C54 - str r0, [r5, #0x1c] - adds r0, r7, #0 - bl DestroySprite -_08107C46: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08107C54: .4byte sub_08107C58 - thumb_func_end sub_08107BD0 - - thumb_func_start sub_08107C58 -sub_08107C58: @ 0x08107C58 - push {lr} - adds r3, r0, #0 - adds r3, #0x2c - ldrb r2, [r3] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r3] - ldr r1, _08107C78 - str r1, [r0, #0x1c] - ldr r1, _08107C7C - bl StoreSpriteCallbackInData6 - pop {r0} - bx r0 - .align 2, 0 -_08107C78: .4byte RunStoredCallbackWhenAnimEnds -_08107C7C: .4byte sub_08107C80 - thumb_func_end sub_08107C58 - - thumb_func_start sub_08107C80 -sub_08107C80: @ 0x08107C80 - push {lr} - movs r1, #0xa - strh r1, [r0, #0x2e] - ldr r1, _08107C94 - str r1, [r0, #0x1c] - ldr r1, _08107C98 - bl StoreSpriteCallbackInData6 - pop {r0} - bx r0 - .align 2, 0 -_08107C94: .4byte WaitAnimForDuration -_08107C98: .4byte DestroySpriteAndMatrix - thumb_func_end sub_08107C80 - - thumb_func_start sub_08107C9C -sub_08107C9C: @ 0x08107C9C - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldr r0, _08107CC4 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08107CCC - ldr r1, _08107CC8 - ldrh r0, [r1, #4] - rsbs r0, r0, #0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r7, r1, #0 - b _08107CD2 - .align 2, 0 -_08107CC4: .4byte gUnknown_20380D6 -_08107CC8: .4byte gUnknown_20380BE -_08107CCC: - ldr r0, _08107D28 - ldrh r6, [r0, #4] - adds r7, r0, #0 -_08107CD2: - ldrh r0, [r7, #8] - strh r0, [r5, #0x2e] - ldrh r0, [r5, #0x20] - strh r0, [r5, #0x30] - ldr r4, _08107D2C - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r6 - strh r0, [r5, #0x32] - ldrh r0, [r5, #0x22] - strh r0, [r5, #0x34] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r7, [r7, #6] - adds r0, r0, r7 - strh r0, [r5, #0x36] - adds r0, r5, #0 - bl InitAnimLinearTranslation - ldr r0, _08107D30 - 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, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08107D28: .4byte gUnknown_20380BE -_08107D2C: .4byte gUnknown_20380D7 -_08107D30: .4byte sub_08107D34 - thumb_func_end sub_08107C9C - - thumb_func_start sub_08107D34 -sub_08107D34: @ 0x08107D34 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08107D70 - ldrh r1, [r0, #0xe] - ldr r0, _08107D74 - cmp r1, r0 - bne _08107D56 - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAnim - adds r2, r4, #0 - adds r2, #0x2c - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] -_08107D56: - adds r0, r4, #0 - bl AnimTranslateLinear - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08107D68 - adds r0, r4, #0 - bl DestroyAnimSprite -_08107D68: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08107D70: .4byte gUnknown_20380BE -_08107D74: .4byte 0x0000FFFF - thumb_func_end sub_08107D34 - - thumb_func_start sub_08107D78 -sub_08107D78: @ 0x08107D78 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08107DAC - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - adds r4, r4, r1 - ldr r0, _08107DB0 - ldrh r0, [r0] - strh r0, [r4, #8] - ldr r0, _08107DB4 - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x14 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r0, r1 - strh r0, [r4, #0xc] - ldr r0, _08107DB8 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08107DAC: .4byte gUnknown_3005B60 -_08107DB0: .4byte gUnknown_20380BE -_08107DB4: .4byte 0x0000279C -_08107DB8: .4byte sub_08107DBC - thumb_func_end sub_08107D78 - - thumb_func_start sub_08107DBC -sub_08107DBC: @ 0x08107DBC - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08107E34 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r2, r0, r1 - ldrh r0, [r2, #0x1c] - adds r0, #1 - strh r0, [r2, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov ip, r1 - cmp r0, #3 - bne _08107E0E - movs r0, #0 - strh r0, [r2, #0x1c] - ldrh r0, [r2, #0xc] - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r1, _08107E38 - lsls r0, r5, #1 - adds r0, r0, r1 - ldrh r6, [r0] - adds r7, r1, #0 - adds r3, r0, #2 - movs r1, #6 - adds r2, r0, #0 -_08107DF8: - ldrh r0, [r3] - strh r0, [r2] - adds r3, #2 - adds r2, #2 - subs r1, #1 - cmp r1, #0 - bge _08107DF8 - adds r0, r5, #7 - lsls r0, r0, #1 - adds r0, r0, r7 - strh r6, [r0] -_08107E0E: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - add r0, ip - ldrh r1, [r0, #0x1e] - adds r1, #1 - strh r1, [r0, #0x1e] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r2, #8 - ldrsh r0, [r0, r2] - cmp r1, r0 - bne _08107E2E - adds r0, r4, #0 - bl DestroyAnimVisualTask -_08107E2E: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08107E34: .4byte gUnknown_3005B60 -_08107E38: .4byte gUnknown_20377B4 - thumb_func_end sub_08107DBC - - thumb_func_start sub_08107E3C -sub_08107E3C: @ 0x08107E3C - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - movs r0, #0x1e - strh r0, [r5, #0x2e] - ldrh r0, [r5, #0x20] - strh r0, [r5, #0x30] - ldr r4, _08107EA4 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x32] - ldrh r0, [r5, #0x22] - strh r0, [r5, #0x34] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x36] - adds r0, r5, #0 - bl InitAnimLinearTranslation - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r0, #0xd2 - lsls r0, r0, #8 - bl __divsi3 - strh r0, [r5, #0x38] - ldr r0, _08107EA8 - ldrh r2, [r0, #6] - strh r2, [r5, #0x3c] - ldrh r1, [r0, #0xe] - movs r3, #0xe - ldrsh r0, [r0, r3] - cmp r0, #0x7f - ble _08107EAC - adds r0, r1, #0 - subs r0, #0x7f - lsls r0, r0, #8 - strh r0, [r5, #0x3a] - rsbs r0, r2, #0 - strh r0, [r5, #0x3c] - b _08107EB0 - .align 2, 0 -_08107EA4: .4byte gUnknown_20380D7 -_08107EA8: .4byte gUnknown_20380BE -_08107EAC: - lsls r0, r1, #8 - strh r0, [r5, #0x3a] -_08107EB0: - ldr r1, _08107EC0 - str r1, [r5, #0x1c] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08107EC0: .4byte sub_08107EC4 - thumb_func_end sub_08107E3C - - thumb_func_start sub_08107EC4 -sub_08107EC4: @ 0x08107EC4 - push {r4, lr} - adds r4, r0, #0 - bl AnimTranslateLinear - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08107ED8 - adds r0, r4, #0 - bl DestroyAnimSprite -_08107ED8: - ldrh r0, [r4, #0x3a] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - movs r2, #0x3c - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, #0x26] - adds r0, r0, r1 - strh r0, [r4, #0x26] - movs r2, #0x3a - ldrsh r0, [r4, r2] - movs r2, #0x38 - ldrsh r1, [r4, r2] - adds r0, r0, r1 - asrs r0, r0, #8 - cmp r0, #0x7f - ble _08107F08 - movs r0, #0 - strh r0, [r4, #0x3a] - ldrh r0, [r4, #0x3c] - rsbs r0, r0, #0 - strh r0, [r4, #0x3c] - b _08107F10 -_08107F08: - ldrh r0, [r4, #0x38] - ldrh r1, [r4, #0x3a] - adds r0, r0, r1 - strh r0, [r4, #0x3a] -_08107F10: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08107EC4 - - thumb_func_start sub_08107F18 -sub_08107F18: @ 0x08107F18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08107F38 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r3, _08107F3C - ldrh r0, [r3] - movs r2, #0 - strh r0, [r1, #8] - strh r2, [r3, #0xe] - ldr r0, _08107F40 - str r0, [r1] - bx lr - .align 2, 0 -_08107F38: .4byte gUnknown_3005B60 -_08107F3C: .4byte gUnknown_20380BE -_08107F40: .4byte sub_08107F44 - thumb_func_end sub_08107F18 - - thumb_func_start sub_08107F44 -sub_08107F44: @ 0x08107F44 - push {lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r2, _08107F78 - ldrh r0, [r2, #0xe] - adds r0, #3 - movs r1, #0xff - ands r0, r1 - strh r0, [r2, #0xe] - ldr r1, _08107F7C - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #8] - subs r1, #1 - strh r1, [r0, #8] - lsls r1, r1, #0x10 - cmp r1, #0 - bne _08107F72 - adds r0, r3, #0 - bl DestroyAnimVisualTask -_08107F72: - pop {r0} - bx r0 - .align 2, 0 -_08107F78: .4byte gUnknown_20380BE -_08107F7C: .4byte gUnknown_3005B60 - thumb_func_end sub_08107F44 - - thumb_func_start sub_08107F80 -sub_08107F80: @ 0x08107F80 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r7, _08107FCC - ldrb r0, [r7] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x20] - ldrb r0, [r7] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x22] - ldr r6, _08107FD0 - strh r6, [r4, #0x26] - ldrb r0, [r7] - bl GetBattlerSpriteSubpriority - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08107FDA - ldrb r0, [r7] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08107FD4 - movs r0, #0xa - strh r0, [r4, #0x24] - b _08107FDC - .align 2, 0 -_08107FCC: .4byte gUnknown_20380D6 -_08107FD0: .4byte 0x0000FFF6 -_08107FD4: - strh r6, [r4, #0x24] - subs r0, r5, #2 - b _08107FDE -_08107FDA: - strh r6, [r4, #0x24] -_08107FDC: - adds r0, r5, #2 -_08107FDE: - adds r1, r4, #0 - adds r1, #0x43 - strb r0, [r1] - ldr r0, _08107FF0 - str r0, [r4, #0x1c] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08107FF0: .4byte sub_08107FF4 - thumb_func_end sub_08107F80 - - thumb_func_start sub_08107FF4 -sub_08107FF4: @ 0x08107FF4 - push {lr} - adds r2, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0810800A - adds r0, r2, #0 - bl DestroyAnimSprite -_0810800A: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08107FF4 - - thumb_func_start sub_08108010 -sub_08108010: @ 0x08108010 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldr r5, _081080D0 - ldrb r0, [r5] - bl GetBattlerSide - adds r4, r0, #0 - ldr r0, _081080D4 - ldrb r0, [r0] - bl GetBattlerSide - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - bne _0810805A - ldr r4, _081080D8 - movs r1, #0 - ldrsh r0, [r4, r1] - rsbs r0, r0, #0 - strh r0, [r4] - ldrb r0, [r5] - bl sub_080A630C - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08108052 - ldrb r0, [r5] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0810805A -_08108052: - movs r1, #0 - ldrsh r0, [r4, r1] - rsbs r0, r0, #0 - strh r0, [r4] -_0810805A: - ldr r5, _081080D8 - movs r1, #0xa - ldrsh r0, [r5, r1] - movs r1, #0xff - lsls r1, r1, #8 - ands r0, r1 - movs r1, #0 - cmp r0, #0 - bne _0810806E - movs r1, #1 -_0810806E: - ldrb r0, [r5, #0xa] - movs r7, #1 - cmp r0, #0 - bne _08108078 - movs r7, #3 -_08108078: - adds r0, r6, #0 - bl InitSpritePosToAnimAttacker - ldr r0, _081080D0 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08108092 - ldrh r0, [r5, #4] - rsbs r0, r0, #0 - strh r0, [r5, #4] -_08108092: - ldrh r0, [r5, #8] - strh r0, [r6, #0x2e] - ldr r4, _081080D4 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r5, #4] - adds r0, r0, r1 - strh r0, [r6, #0x32] - ldrb r0, [r4] - adds r1, r7, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r5, [r5, #6] - adds r0, r0, r5 - strh r0, [r6, #0x36] - ldr r0, _081080DC - str r0, [r6, #0x1c] - ldr r1, _081080E0 - adds r0, r6, #0 - bl StoreSpriteCallbackInData6 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081080D0: .4byte gUnknown_20380D6 -_081080D4: .4byte gUnknown_20380D7 -_081080D8: .4byte gUnknown_20380BE -_081080DC: .4byte sub_080A67B4 -_081080E0: .4byte DestroyAnimSprite - thumb_func_end sub_08108010 - - thumb_func_start sub_081080E4 -sub_081080E4: @ 0x081080E4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimTarget - ldr r0, _08108114 - ldrh r1, [r0, #8] - strh r1, [r4, #0x2e] - ldrh r0, [r0, #4] - ldrh r2, [r4, #0x20] - adds r0, r0, r2 - strh r0, [r4, #0x32] - ldrh r0, [r4, #0x22] - adds r1, r1, r0 - strh r1, [r4, #0x36] - ldr r0, _08108118 - str r0, [r4, #0x1c] - ldr r1, _0810811C - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08108114: .4byte gUnknown_20380BE -_08108118: .4byte sub_080A67B4 -_0810811C: .4byte DestroyAnimSprite - thumb_func_end sub_081080E4 - - thumb_func_start sub_08108120 -sub_08108120: @ 0x08108120 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08108138 - movs r1, #6 - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _0810813C - adds r0, r4, #0 - movs r1, #1 - bl InitSpritePosToAnimTarget - b _08108144 - .align 2, 0 -_08108138: .4byte gUnknown_20380BE -_0810813C: - adds r0, r4, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker -_08108144: - ldr r0, _08108154 - ldrh r0, [r0, #4] - strh r0, [r4, #0x3c] - ldr r0, _08108158 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08108154: .4byte gUnknown_20380BE -_08108158: .4byte sub_0810815C - thumb_func_end sub_08108120 - - thumb_func_start sub_0810815C -sub_0810815C: @ 0x0810815C - 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, #4 - bl Sin - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x30] - adds r0, #0x30 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x3c] - subs r0, #1 - strh r0, [r4, #0x3c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _0810819C - adds r0, r4, #0 - bl DestroyAnimSprite -_0810819C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0810815C - - thumb_func_start AnimTask_CreateSurfWave -AnimTask_CreateSurfWave: @ 0x081081A4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - ldr r1, _08108214 - movs r0, #0x50 - bl SetGpuReg - movs r1, #0x80 - lsls r1, r1, #5 - movs r0, #0x52 - bl SetGpuReg - movs r0, #1 - movs r1, #4 - movs r2, #1 - bl SetAnimBgAttribute - movs r0, #1 - movs r1, #0 - movs r2, #1 - bl SetAnimBgAttribute - mov r0, sp - bl sub_080A63F8 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08108230 - movs r0, #1 - movs r1, #3 - movs r2, #1 - bl SetAnimBgAttribute - ldr r0, _08108218 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08108220 - mov r0, sp - ldrb r0, [r0, #9] - ldr r1, _0810821C - bl AnimLoadCompressedBgTilemap - b _0810823A - .align 2, 0 -_08108214: .4byte 0x00003F42 -_08108218: .4byte gUnknown_20380D6 -_0810821C: .4byte gUnknown_8D95DB4 -_08108220: - mov r0, sp - ldrb r0, [r0, #9] - ldr r1, _0810822C - bl AnimLoadCompressedBgTilemap - b _0810823A - .align 2, 0 -_0810822C: .4byte gUnknown_8D96084 -_08108230: - ldr r1, _08108264 - mov r0, sp - movs r2, #1 - bl sub_080A6628 -_0810823A: - mov r0, sp - ldrb r0, [r0, #9] - ldr r1, _08108268 - mov r2, sp - ldrh r2, [r2, #0xa] - bl AnimLoadCompressedBgGfx - ldr r0, _0810826C - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08108274 - ldr r0, _08108270 - mov r1, sp - ldrb r1, [r1, #8] - lsls r1, r1, #4 - movs r2, #0x20 - bl LoadCompressedPalette - b _08108282 - .align 2, 0 -_08108264: .4byte gUnknown_8D96358 -_08108268: .4byte gUnknown_8D94A6C -_0810826C: .4byte gUnknown_20380BE -_08108270: .4byte gUnknown_8D95D8C -_08108274: - ldr r0, _081082EC - mov r1, sp - ldrb r1, [r1, #8] - lsls r1, r1, #4 - movs r2, #0x20 - bl LoadCompressedPalette -_08108282: - ldr r0, _081082F0 - ldr r4, _081082F4 - mov r2, sl - lsls r5, r2, #2 - adds r1, r5, r2 - lsls r1, r1, #3 - adds r6, r1, r4 - ldrb r1, [r6, #7] - adds r1, #1 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r0, #0 - mov sb, r0 - mov r1, r8 - strh r1, [r6, #0x26] - mov r2, r8 - lsls r0, r2, #2 - add r0, r8 - lsls r0, r0, #3 - adds r7, r0, r4 - mov r0, sb - strh r0, [r7, #8] - movs r0, #0x80 - lsls r0, r0, #5 - strh r0, [r7, #0xa] - strh r0, [r7, #0xc] - bl IsContest - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - beq _08108304 - ldr r1, _081082F8 - adds r0, r1, #0 - ldr r2, _081082FC - strh r0, [r2] - adds r1, #0x20 - adds r0, r1, #0 - ldr r2, _08108300 - strh r0, [r2] - movs r0, #2 - strh r0, [r6, #8] - movs r0, #1 - strh r0, [r6, #0xa] - mov r0, sb - strh r0, [r7, #0xe] - b _0810835E - .align 2, 0 -_081082EC: .4byte gUnknown_8D8FB50 -_081082F0: .4byte sub_081085A8 -_081082F4: .4byte gUnknown_3005B60 -_081082F8: .4byte 0x0000FFB0 -_081082FC: .4byte gUnknown_2022ACC -_08108300: .4byte gUnknown_2022ACE -_08108304: - ldr r0, _08108334 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #1 - bne _08108348 - ldr r2, _08108338 - adds r0, r2, #0 - ldr r2, _0810833C - strh r0, [r2] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r2, #0 - ldr r2, _08108340 - strh r0, [r2] - movs r0, #2 - strh r0, [r6, #8] - ldr r0, _08108344 - strh r0, [r6, #0xa] - strh r1, [r7, #0xe] - b _0810835E - .align 2, 0 -_08108334: .4byte gUnknown_20380D6 -_08108338: .4byte 0x0000FF20 -_0810833C: .4byte gUnknown_2022ACC -_08108340: .4byte gUnknown_2022ACE -_08108344: .4byte 0x0000FFFF -_08108348: - ldr r0, _08108390 - strh r4, [r0] - ldr r1, _08108394 - adds r0, r1, #0 - ldr r2, _08108398 - strh r0, [r2] - ldr r0, _0810839C - strh r0, [r6, #8] - movs r0, #1 - strh r0, [r6, #0xa] - strh r4, [r7, #0xe] -_0810835E: - ldr r0, _08108390 - ldrh r1, [r0] - movs r0, #0x14 - bl SetGpuReg - ldr r2, _08108398 - ldrh r1, [r2] - movs r0, #0x16 - bl SetGpuReg - ldr r1, _081083A0 - mov r2, r8 - lsls r0, r2, #2 - add r0, r8 - lsls r0, r0, #3 - adds r1, r0, r1 - movs r2, #0xe - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _081083A4 - movs r0, #0x30 - strh r0, [r1, #0x10] - movs r0, #0x70 - b _081083A8 - .align 2, 0 -_08108390: .4byte gUnknown_2022ACC -_08108394: .4byte 0x0000FFD0 -_08108398: .4byte gUnknown_2022ACE -_0810839C: .4byte 0x0000FFFE -_081083A0: .4byte gUnknown_3005B60 -_081083A4: - movs r0, #0 - strh r0, [r1, #0x10] -_081083A8: - strh r0, [r1, #0x12] - ldr r1, _081083CC - mov r2, sl - adds r0, r5, r2 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #1 - strh r1, [r0, #0x14] - ldr r1, _081083D0 - str r1, [r0] - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081083CC: .4byte gUnknown_3005B60 -_081083D0: .4byte sub_081083D4 - thumb_func_end AnimTask_CreateSurfWave - - thumb_func_start sub_081083D4 -sub_081083D4: @ 0x081083D4 - push {r4, r5, r6, r7, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _08108500 - ldr r2, _08108504 - ldr r0, _08108508 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - adds r4, r4, r0 - ldrh r0, [r4, #8] - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - ldrh r0, [r4, #0xa] - ldrh r1, [r2] - adds r0, r0, r1 - strh r0, [r2] - mov r0, sp - bl sub_080A63F8 - ldrh r0, [r4, #0xa] - ldrh r3, [r4, #0xc] - adds r0, r0, r3 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0x12] - adds r0, #1 - strh r0, [r4, #0x12] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - bne _08108468 - ldr r1, _0810850C - mov r0, sp - ldrb r0, [r0, #8] - lsls r0, r0, #4 - adds r0, #7 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r6, [r0] - movs r2, #6 - adds r7, r1, #0 - adds r3, r7, #0 - mov r4, sp -_0810842E: - ldrb r0, [r4, #8] - lsls r0, r0, #4 - adds r1, r2, #1 - adds r0, r0, r1 - lsls r1, r0, #1 - adds r1, r1, r3 - subs r0, #1 - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r0, [r0] - strh r0, [r1] - subs r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _0810842E - mov r0, sp - ldrb r0, [r0, #8] - lsls r0, r0, #4 - adds r0, #1 - lsls r0, r0, #1 - adds r0, r0, r7 - strh r6, [r0] - ldr r1, _08108508 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r2, [r0, #0x12] -_08108468: - ldr r1, _08108508 - lsls r2, r5, #2 - adds r0, r2, r5 - lsls r0, r0, #3 - adds r3, r0, r1 - ldrh r0, [r3, #0x14] - adds r0, #1 - strh r0, [r3, #0x14] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r4, r1, #0 - adds r6, r2, #0 - cmp r0, #1 - ble _081084D6 - movs r0, #0 - strh r0, [r3, #0x14] - ldrh r0, [r3, #0xe] - adds r2, r0, #1 - strh r2, [r3, #0xe] - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xd - bgt _081084B2 - movs r1, #0x26 - ldrsh r0, [r3, r1] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r4 - movs r0, #0x10 - subs r0, r0, r2 - lsls r0, r0, #8 - orrs r2, r0 - strh r2, [r1, #0xa] - ldrh r0, [r3, #0x10] - adds r0, #1 - strh r0, [r3, #0x10] -_081084B2: - movs r1, #0xe - ldrsh r0, [r3, r1] - cmp r0, #0x36 - ble _081084D6 - ldrh r2, [r3, #0x10] - subs r2, #1 - strh r2, [r3, #0x10] - movs r1, #0x26 - ldrsh r0, [r3, r1] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r4 - movs r0, #0x10 - subs r0, r0, r2 - lsls r0, r0, #8 - orrs r2, r0 - strh r2, [r1, #0xa] -_081084D6: - adds r0, r6, r5 - lsls r0, r0, #3 - adds r2, r0, r4 - movs r3, #0x26 - ldrsh r1, [r2, r3] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r4 - ldrh r0, [r0, #0xa] - movs r3, #0x1f - ands r3, r0 - cmp r3, #0 - bne _081084F8 - strh r3, [r2, #8] - ldr r0, _08108510 - str r0, [r2] -_081084F8: - add sp, #0x10 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08108500: .4byte gUnknown_2022ACC -_08108504: .4byte gUnknown_2022ACE -_08108508: .4byte gUnknown_3005B60 -_0810850C: .4byte gUnknown_20377B4 -_08108510: .4byte sub_08108514 - thumb_func_end sub_081083D4 - - thumb_func_start sub_08108514 -sub_08108514: @ 0x08108514 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - ldr r7, _0810854C - ldr r0, _08108550 - mov r8, r0 - ldr r6, _08108554 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r6 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08108558 - movs r0, #1 - bl sub_080A6530 - movs r0, #2 - bl sub_080A6530 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _0810859A - .align 2, 0 -_0810854C: .4byte gUnknown_2022ACC -_08108550: .4byte gUnknown_2022ACE -_08108554: .4byte gUnknown_3005B60 -_08108558: - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810856C - movs r0, #1 - movs r1, #3 - movs r2, #0 - bl SetAnimBgAttribute -_0810856C: - movs r0, #0 - strh r0, [r7] - mov r1, r8 - strh r0, [r1] - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r6 - ldr r1, _081085A4 - strh r1, [r0, #0x26] - adds r0, r5, #0 - bl DestroyAnimVisualTask -_0810859A: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081085A4: .4byte 0x0000FFFF - thumb_func_end sub_08108514 - - thumb_func_start sub_081085A8 -sub_081085A8: @ 0x081085A8 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - ldr r1, _081085D0 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #1 - bne _081085C4 - b _081086FC -_081085C4: - cmp r0, #1 - bgt _081085D4 - cmp r0, #0 - beq _081085DC - b _08108872 - .align 2, 0 -_081085D0: .4byte gUnknown_3005B60 -_081085D4: - cmp r0, #2 - bne _081085DA - b _081087C8 -_081085DA: - b _08108872 -_081085DC: - movs r3, #0 - movs r2, #0x10 - ldrsh r0, [r4, r2] - ldr r1, _081086AC - mov ip, r1 - cmp r3, r0 - bge _0810861A - mov r7, ip - movs r5, #0xf0 - lsls r5, r5, #3 - add r5, ip - ldr r6, _081086B0 -_081085F4: - lsls r2, r3, #0x10 - asrs r2, r2, #0x10 - lsls r1, r2, #1 - adds r3, r1, r7 - adds r1, 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, #1 - lsls r2, r2, #0x10 - lsrs r3, r2, #0x10 - asrs r2, r2, #0x10 - movs r1, #0x10 - ldrsh r0, [r4, r1] - cmp r2, r0 - blt _081085F4 -_0810861A: - ldrh r3, [r4, #0x10] - lsls r2, r3, #0x10 - asrs r1, r2, #0x10 - movs r3, #0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _08108654 - ldr r5, _081086AC - movs r0, #0xf0 - lsls r0, r0, #3 - adds r6, r5, r0 - ldr r7, _081086B0 -_08108632: - asrs r2, r2, #0x10 - lsls r1, r2, #1 - adds r3, r1, r5 - adds r1, 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, #1 - lsls r2, r2, #0x10 - asrs r1, r2, #0x10 - movs r3, #0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - blt _08108632 -_08108654: - ldrh r3, [r4, #0x12] - lsls r2, r3, #0x10 - asrs r0, r2, #0x10 - cmp r0, #0x9f - bgt _0810868A - ldr r5, _081086AC - movs r0, #0xf0 - lsls r0, r0, #3 - adds r6, r5, r0 - ldr r7, _081086B0 -_08108668: - asrs r2, r2, #0x10 - lsls r1, r2, #1 - adds r3, r1, r5 - adds r1, 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, #1 - lsls r2, r2, #0x10 - lsrs r3, r2, #0x10 - lsls r2, r3, #0x10 - asrs r0, r2, #0x10 - cmp r0, #0x9f - ble _08108668 -_0810868A: - movs r1, #0x10 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _081086B4 - lsls r0, r3, #0x10 - asrs r0, r0, #0xf - mov r3, ip - adds r2, r0, r3 - movs r1, #0xf0 - lsls r1, r1, #3 - add r1, ip - adds r0, r0, r1 - ldrh r1, [r4, #0xa] - strh r1, [r0] - ldrh r0, [r4, #0xa] - b _081086CA - .align 2, 0 -_081086AC: .4byte gUnknown_20388C8 -_081086B0: .4byte 0x0000FFFF -_081086B4: - lsls r0, r3, #0x10 - asrs r0, r0, #0xf - mov r1, ip - adds r2, r0, r1 - movs r1, #0xf0 - lsls r1, r1, #3 - add r1, ip - adds r0, r0, r1 - ldrh r1, [r4, #0xc] - strh r1, [r0] - ldrh r0, [r4, #0xc] -_081086CA: - strh r0, [r2] - ldr r0, _081086F4 - str r0, [sp] - ldr r0, _081086F8 - str r0, [sp, #4] - mov r1, sp - movs r2, #0 - movs r0, #1 - strb r0, [r1, #8] - mov r0, sp - strb r2, [r0, #9] - ldr r0, [sp] - ldr r1, [sp, #4] - ldr r2, [sp, #8] - bl ScanlineEffect_SetParams - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _08108872 - .align 2, 0 -_081086F4: .4byte 0x04000052 -_081086F8: .4byte 0xA2600001 -_081086FC: - movs r2, #0xe - ldrsh r1, [r4, r2] - cmp r1, #0 - bne _08108714 - ldrh r0, [r4, #0x10] - subs r0, #1 - strh r0, [r4, #0x10] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _08108728 - strh r1, [r4, #0x10] - b _08108722 -_08108714: - ldrh r0, [r4, #0x12] - adds r0, #1 - strh r0, [r4, #0x12] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x6f - ble _08108728 -_08108722: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_08108728: - movs r3, #0 - movs r1, #0x10 - ldrsh r0, [r4, r1] - cmp r3, r0 - bge _0810875C - ldr r6, _081087C0 - ldr r5, _081087C4 -_08108736: - lsls r1, r3, #0x10 - asrs r1, r1, #0x10 - lsls r3, r1, #1 - ldrb r2, [r5, #0x14] - lsls r0, r2, #4 - subs r0, r0, r2 - lsls r0, r0, #7 - adds r3, r3, r0 - adds r3, r3, r6 - ldrh r0, [r4, #0xc] - strh r0, [r3] - adds r1, #1 - lsls r1, r1, #0x10 - lsrs r3, r1, #0x10 - asrs r1, r1, #0x10 - movs r2, #0x10 - ldrsh r0, [r4, r2] - cmp r1, r0 - blt _08108736 -_0810875C: - ldrh r3, [r4, #0x10] - lsls r2, r3, #0x10 - asrs r1, r2, #0x10 - movs r3, #0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _08108790 - ldr r6, _081087C0 - ldr r5, _081087C4 -_0810876E: - asrs r3, r2, #0x10 - lsls r2, r3, #1 - ldrb r1, [r5, #0x14] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #7 - adds r2, r2, r0 - adds r2, r2, r6 - ldrh r0, [r4, #0xa] - strh r0, [r2] - adds r3, #1 - lsls r2, r3, #0x10 - asrs r1, r2, #0x10 - movs r3, #0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - blt _0810876E -_08108790: - ldrh r3, [r4, #0x12] - lsls r1, r3, #0x10 - asrs r0, r1, #0x10 - cmp r0, #0x9f - bgt _08108872 - ldr r6, _081087C0 - ldr r5, _081087C4 -_0810879E: - asrs r3, r1, #0x10 - lsls r2, r3, #1 - ldrb r1, [r5, #0x14] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #7 - adds r2, r2, r0 - adds r2, r2, r6 - ldrh r0, [r4, #0xc] - strh r0, [r2] - adds r3, #1 - lsls r1, r3, #0x10 - asrs r0, r1, #0x10 - cmp r0, #0x9f - ble _0810879E - b _08108872 - .align 2, 0 -_081087C0: .4byte gUnknown_20388C8 -_081087C4: .4byte gUnknown_20397C8 -_081087C8: - movs r3, #0 - movs r1, #0x10 - ldrsh r0, [r4, r1] - cmp r3, r0 - bge _081087FC - ldr r6, _0810887C - ldr r5, _08108880 -_081087D6: - lsls r1, r3, #0x10 - asrs r1, r1, #0x10 - lsls r3, r1, #1 - ldrb r2, [r5, #0x14] - lsls r0, r2, #4 - subs r0, r0, r2 - lsls r0, r0, #7 - adds r3, r3, r0 - adds r3, r3, r6 - ldrh r0, [r4, #0xc] - strh r0, [r3] - adds r1, #1 - lsls r1, r1, #0x10 - lsrs r3, r1, #0x10 - asrs r1, r1, #0x10 - movs r2, #0x10 - ldrsh r0, [r4, r2] - cmp r1, r0 - blt _081087D6 -_081087FC: - ldrh r3, [r4, #0x10] - lsls r2, r3, #0x10 - asrs r1, r2, #0x10 - movs r3, #0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _08108830 - ldr r6, _0810887C - ldr r5, _08108880 -_0810880E: - asrs r3, r2, #0x10 - lsls r2, r3, #1 - ldrb r1, [r5, #0x14] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #7 - adds r2, r2, r0 - adds r2, r2, r6 - ldrh r0, [r4, #0xa] - strh r0, [r2] - adds r3, #1 - lsls r2, r3, #0x10 - asrs r1, r2, #0x10 - movs r3, #0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - blt _0810880E -_08108830: - ldrh r3, [r4, #0x12] - lsls r1, r3, #0x10 - asrs r0, r1, #0x10 - cmp r0, #0x9f - bgt _0810885C - ldr r6, _0810887C - ldr r5, _08108880 -_0810883E: - asrs r3, r1, #0x10 - lsls r2, r3, #1 - ldrb r1, [r5, #0x14] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #7 - adds r2, r2, r0 - adds r2, r2, r6 - ldrh r0, [r4, #0xc] - strh r0, [r2] - adds r3, #1 - lsls r1, r3, #0x10 - asrs r0, r1, #0x10 - cmp r0, #0x9f - ble _0810883E -_0810885C: - movs r0, #0x26 - ldrsh r1, [r4, r0] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _08108872 - bl ScanlineEffect_Stop - adds r0, r7, #0 - bl DestroyTask -_08108872: - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0810887C: .4byte gUnknown_20388C8 -_08108880: .4byte gUnknown_20397C8 - thumb_func_end sub_081085A8 - - thumb_func_start sub_08108884 -sub_08108884: @ 0x08108884 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrh r2, [r4, #4] - lsls r1, r2, #0x16 - lsrs r1, r1, #0x16 - adds r1, #8 - ldr r3, _081088D8 - adds r0, r3, #0 - ands r1, r0 - ldr r0, _081088DC - ands r0, r2 - orrs r0, r1 - strh r0, [r4, #4] - adds r0, r4, #0 - movs r1, #1 - bl InitSpritePosToAnimTarget - bl sub_0806F0A4 - movs r5, #0xff - ands r5, r0 - movs r0, #0x80 - lsls r0, r0, #1 - adds r6, r0, #0 - orrs r5, r6 - bl sub_0806F0A4 - ldr r1, _081088E0 - ands r1, r0 - adds r0, r1, #0 - cmp r0, #0xff - ble _081088CA - subs r0, r6, r0 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 -_081088CA: - strh r5, [r4, #0x30] - strh r1, [r4, #0x32] - ldr r0, _081088E4 - str r0, [r4, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081088D8: .4byte 0x000003FF -_081088DC: .4byte 0xFFFFFC00 -_081088E0: .4byte 0x000001FF -_081088E4: .4byte sub_081088E8 - thumb_func_end sub_08108884 - - thumb_func_start sub_081088E8 -sub_081088E8: @ 0x081088E8 - 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, r1, r4 - strh r1, [r2, #0x36] - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0810890C - lsls r0, r3, #0x10 - asrs r0, r0, #0x18 - rsbs r0, r0, #0 - b _08108910 -_0810890C: - lsls r0, r3, #0x10 - asrs r0, r0, #0x18 -_08108910: - strh r0, [r2, #0x24] - ldrh r0, [r2, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - strh r0, [r2, #0x26] - ldrh r0, [r2, #0x2e] - adds r0, #1 - strh r0, [r2, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x15 - bne _0810892E - adds r0, r2, #0 - bl DestroyAnimSprite -_0810892E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081088E8 - - thumb_func_start sub_08108934 -sub_08108934: @ 0x08108934 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _08108984 - adds r4, r4, r0 - movs r0, #0 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x26] - ldr r2, _08108988 - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0, #0x22] - strh r0, [r4, #0x12] - bl sub_08108BD4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0xa] - ldrh r0, [r4, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl PrepareBattlerSpriteForRotScale - ldr r0, _0810898C - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08108984: .4byte gUnknown_3005B60 -_08108988: .4byte gUnknown_20205AC -_0810898C: .4byte sub_08108990 - thumb_func_end sub_08108934 - - thumb_func_start sub_08108990 -sub_08108990: @ 0x08108990 - push {r4, r5, r6, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _081089B8 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #7 - bls _081089AC - b _08108BCA -_081089AC: - lsls r0, r0, #2 - ldr r1, _081089BC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081089B8: .4byte gUnknown_3005B60 -_081089BC: .4byte _081089C0 -_081089C0: @ jump table - .4byte _081089E0 @ case 0 - .4byte _08108A06 @ case 1 - .4byte _08108A98 @ case 2 - .4byte _08108ACE @ case 3 - .4byte _08108AE2 @ case 4 - .4byte _08108AF0 @ case 5 - .4byte _08108B70 @ case 6 - .4byte _08108BBC @ case 7 -_081089E0: - ldrh r1, [r4, #0x26] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r3, #0x80 - lsls r3, r3, #1 - movs r0, #0xe0 - str r0, [sp] - movs r0, #0x80 - lsls r0, r0, #2 - str r0, [sp, #4] - movs r0, #0x20 - str r0, [sp, #8] - adds r0, r4, #0 - adds r2, r3, #0 - bl sub_080A7924 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_08108A06: - ldrh r0, [r4, #0xe] - adds r0, #1 - strh r0, [r4, #0xe] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _08108A62 - movs r0, #0 - strh r0, [r4, #0xe] - ldrh r0, [r4, #0x10] - adds r0, #1 - strh r0, [r4, #0x10] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08108A50 - ldr r2, _08108A4C - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #3 - strh r1, [r0, #0x24] - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x22] - adds r1, #1 - strh r1, [r0, #0x22] - b _08108A62 - .align 2, 0 -_08108A4C: .4byte gUnknown_20205AC -_08108A50: - ldr r2, _08108A90 - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, _08108A94 - strh r1, [r0, #0x24] -_08108A62: - adds r0, r4, #0 - bl sub_080A7990 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - beq _08108A72 - b _08108BCA -_08108A72: - ldrh r0, [r4, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl SetBattlerSpriteYOffsetFromYScale - ldr r2, _08108A90 - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r5, [r0, #0x24] - strh r5, [r4, #0xe] - b _08108BAC - .align 2, 0 -_08108A90: .4byte gUnknown_20205AC -_08108A94: .4byte 0x0000FFFD -_08108A98: - ldrh r0, [r4, #0xe] - adds r0, #1 - strh r0, [r4, #0xe] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - bgt _08108AA8 - b _08108BCA -_08108AA8: - ldrh r1, [r4, #0x26] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r3, #0x80 - lsls r3, r3, #2 - movs r0, #0xc0 - lsls r0, r0, #1 - str r0, [sp] - movs r0, #0xe0 - str r0, [sp, #4] - movs r0, #8 - str r0, [sp, #8] - adds r0, r4, #0 - movs r2, #0xe0 - bl sub_080A7924 - movs r0, #0 - strh r0, [r4, #0xe] - b _08108BAE -_08108ACE: - adds r0, r4, #0 - bl sub_080A7990 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _08108BCA - strh r0, [r4, #0xe] - strh r0, [r4, #0x10] - b _08108BAE -_08108AE2: - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_08108C58 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_08108AF0: - ldrh r0, [r4, #0xe] - adds r0, #1 - strh r0, [r4, #0xe] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _08108BCA - movs r0, #0 - strh r0, [r4, #0xe] - ldrh r0, [r4, #0x10] - adds r0, #1 - strh r0, [r4, #0x10] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08108B28 - ldr r2, _08108B24 - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x26] - adds r1, #2 - b _08108B3A - .align 2, 0 -_08108B24: .4byte gUnknown_20205AC -_08108B28: - ldr r2, _08108B6C - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x26] - subs r1, #2 -_08108B3A: - strh r1, [r0, #0x26] - movs r1, #0x10 - ldrsh r0, [r4, r1] - cmp r0, #0xa - bne _08108BCA - ldrh r1, [r4, #0x26] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r2, #0xc0 - lsls r2, r2, #1 - movs r0, #0x80 - lsls r0, r0, #1 - str r0, [sp] - str r0, [sp, #4] - movs r0, #8 - str r0, [sp, #8] - adds r0, r4, #0 - movs r3, #0xe0 - bl sub_080A7924 - movs r0, #0 - strh r0, [r4, #0xe] - strh r0, [r4, #0x10] - b _08108BAE - .align 2, 0 -_08108B6C: .4byte gUnknown_20205AC -_08108B70: - ldr r6, _08108BB8 - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrh r1, [r0, #0x22] - subs r1, #1 - strh r1, [r0, #0x22] - adds r0, r4, #0 - bl sub_080A7990 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _08108BCA - ldrh r0, [r4, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl ResetSpriteRotScale - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrh r1, [r4, #0x12] - strh r1, [r0, #0x22] -_08108BAC: - strh r5, [r4, #0x10] -_08108BAE: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _08108BCA - .align 2, 0 -_08108BB8: .4byte gUnknown_20205AC -_08108BBC: - movs r1, #0xc - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08108BCA - adds r0, r2, #0 - bl DestroyAnimVisualTask -_08108BCA: - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08108990 - - thumb_func_start sub_08108BD4 -sub_08108BD4: @ 0x08108BD4 - push {r4, r5, lr} - ldr r4, _08108BF8 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08108C08 - ldr r1, _08108BFC - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _08108C00 - b _08108C18 - .align 2, 0 -_08108BF8: .4byte gUnknown_20380D6 -_08108BFC: .4byte gUnknown_2023D12 -_08108C00: .4byte gUnknown_2024190 -_08108C04: - adds r0, r2, #0 - b _08108C4A -_08108C08: - ldr r1, _08108C50 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _08108C54 -_08108C18: - adds r5, r1, r0 - adds r0, r5, #0 - movs r1, #0x3a - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - adds r0, r5, #0 - movs r1, #0x39 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - lsrs r4, r4, #0x12 - movs r2, #0 -_08108C36: - adds r1, r2, #1 - adds r0, r4, #0 - muls r0, r1, r0 - cmp r3, r0 - blt _08108C04 - lsls r0, r1, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #2 - bls _08108C36 - movs r0, #3 -_08108C4A: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08108C50: .4byte gUnknown_2023D12 -_08108C54: .4byte gUnknown_20243E8 - thumb_func_end sub_08108BD4 - - thumb_func_start sub_08108C58 -sub_08108C58: @ 0x08108C58 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - adds r7, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp] - ldr r4, _08108D60 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r5, #0xac - ldrb r0, [r4] - bl GetBattlerSpriteSubpriority - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #8] - ldrh r1, [r7, #0xa] - movs r0, #4 - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r0, #0 - bgt _08108CA8 - movs r1, #1 -_08108CA8: - movs r0, #0 - str r0, [sp, #4] - lsls r0, r1, #0x10 - mov sl, r8 - mov sb, r6 - mov r1, sl - lsls r1, r1, #4 - str r1, [sp, #0xc] - mov r1, sb - lsls r1, r1, #4 - str r1, [sp, #0x10] - asrs r0, r0, #0x10 - mov r8, r0 -_08108CC2: - ldr r0, _08108D64 - mov r1, sl - mov r2, sb - ldr r3, [sp, #8] - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r6, r5, #0x10 - cmp r2, #0x40 - beq _08108D2A - ldr r1, _08108D68 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r5, r0, r1 - mov r0, sp - ldrh r0, [r0, #4] - 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, #0x10 - 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, #2 - strh r0, [r5, #0x3c] - ldrh r1, [r7, #0xc] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08108D24 - adds r0, r5, #0 - bl sub_08108D6C -_08108D24: - ldrh r0, [r7, #0xc] - adds r0, #1 - strh r0, [r7, #0xc] -_08108D2A: - mov r1, r8 - lsls r0, r1, #1 - asrs r1, r6, #0x10 - adds r1, r1, r0 - lsls r1, r1, #0x10 - movs r0, #0xff - lsls r0, r0, #0x10 - ands r0, r1 - lsrs r5, r0, #0x10 - ldr r1, [sp, #4] - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - add r0, r8 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - str r1, [sp, #4] - asrs r0, r0, #0x10 - cmp r0, #0x13 - ble _08108CC2 - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08108D60: .4byte gUnknown_20380D6 -_08108D64: .4byte gUnknown_8570E4C -_08108D68: .4byte gUnknown_20205AC - thumb_func_end sub_08108C58 - - thumb_func_start sub_08108D6C -sub_08108D6C: @ 0x08108D6C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _08108D7E - cmp r0, #1 - beq _08108DB4 - b _08108E0E -_08108D7E: - movs r2, #0x30 - ldrsh r0, [r4, r2] - movs r1, #6 - bl __modsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r1, r0, #1 - adds r1, r1, r0 - ldrh r0, [r4, #0x36] - adds r1, r1, r0 - strh r1, [r4, #0x36] - movs r1, #0x30 - ldrsh r0, [r4, r1] - movs r1, #3 - bl __modsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r1, r0, #1 - adds r1, r1, r0 - ldrh r2, [r4, #0x38] - adds r1, r1, r2 - strh r1, [r4, #0x38] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] -_08108DB4: - ldrh r0, [r4, #0x36] - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - ldrh r1, [r4, #0x38] - ldrh r2, [r4, #0x34] - adds r1, r1, r2 - strh r1, [r4, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - strh r0, [r4, #0x20] - lsls r1, r1, #0x10 - asrs r2, r1, #0x14 - strh r2, [r4, #0x22] - adds r0, #8 - lsls r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _08108DEA - adds r1, r2, #0 - movs r0, #8 - rsbs r0, r0, #0 - cmp r1, r0 - blt _08108DEA - cmp r1, #0x78 - ble _08108E0E -_08108DEA: - ldr r3, _08108E14 - movs r0, #0x3c - ldrsh r1, [r4, r0] - lsls r1, r1, #1 - movs r0, #0x3a - ldrsh r2, [r4, r0] - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r1, r1, r0 - adds r3, #8 - adds r1, r1, r3 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - adds r0, r4, #0 - bl DestroySprite -_08108E0E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08108E14: .4byte gUnknown_3005B60 - thumb_func_end sub_08108D6C - - thumb_func_start sub_08108E18 -sub_08108E18: @ 0x08108E18 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _08108E48 - adds r4, r1, r0 - bl sub_08108BD4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0xa] - ldr r0, _08108E4C - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08108E50 - movs r0, #0x88 - strh r0, [r4, #0x10] - movs r0, #0x28 - b _08108E56 - .align 2, 0 -_08108E48: .4byte gUnknown_3005B60 -_08108E4C: .4byte gUnknown_20380D6 -_08108E50: - movs r0, #0x10 - strh r0, [r4, #0x10] - movs r0, #0x50 -_08108E56: - 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, r0, r1 - adds r0, #5 - strh r0, [r4, #0x20] - ldr r0, _08108E78 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08108E78: .4byte sub_08108E7C - thumb_func_end sub_08108E18 - - thumb_func_start sub_08108E7C -sub_08108E7C: @ 0x08108E7C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - ldr r7, _08108EA0 - adds r4, r0, r7 - movs r0, #8 - ldrsh r2, [r4, r0] - cmp r2, #0 - beq _08108EA4 - cmp r2, #1 - beq _08108F54 - b _08108F62 - .align 2, 0 -_08108EA0: .4byte gUnknown_3005B60 -_08108EA4: - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - ble _08108EBA - strh r2, [r4, #0xc] - adds r0, r4, #0 - bl sub_08108F6C -_08108EBA: - movs r1, #0x1c - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _08108F34 - movs r2, #0x22 - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _08108F34 - ldr r5, _08108F48 - movs r1, #1 - mov r8, r1 - mov r2, r8 - strh r2, [r5] - strh r0, [r5, #2] - movs r0, #0xc - strh r0, [r5, #4] - ldr r6, _08108F4C - adds r0, r6, #0 - movs r1, #0x50 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xff - beq _08108F04 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r0, r0, r7 - ldr r1, [r0] - adds r0, r2, #0 - bl _call_via_r1 - ldr r1, _08108F50 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_08108F04: - movs r0, #3 - strh r0, [r5] - adds r0, r6, #0 - movs r1, #0x50 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xff - beq _08108F30 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r0, r0, r7 - ldr r1, [r0] - adds r0, r2, #0 - bl _call_via_r1 - ldr r1, _08108F50 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_08108F30: - mov r0, r8 - strh r0, [r4, #0x22] -_08108F34: - movs r2, #0x1e - ldrsh r1, [r4, r2] - movs r2, #0x20 - ldrsh r0, [r4, r2] - cmp r1, r0 - blt _08108F62 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _08108F62 - .align 2, 0 -_08108F48: .4byte gUnknown_20380BE -_08108F4C: .4byte sub_08115B2C -_08108F50: .4byte gUnknown_203809E -_08108F54: - movs r2, #0x1a - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _08108F62 - adds r0, r1, #0 - bl DestroyAnimVisualTask -_08108F62: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08108E7C - - thumb_func_start sub_08108F6C -sub_08108F6C: @ 0x08108F6C - push {r4, r5, r6, lr} - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - ldr r1, _08108FF8 - movs r2, #0x18 - ldrsh r0, [r4, r2] - lsls r0, r0, #1 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - adds r0, #3 - asrs r0, r0, #4 - ldrh r2, [r4, #0x14] - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, _08108FFC - movs r2, #0x16 - ldrsh r1, [r4, r2] - movs r2, #0 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x40 - beq _08108FC6 - ldr r3, _08109000 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r3, #0 - adds r1, #0x1c - adds r1, r0, r1 - ldr r2, _08109004 - str r2, [r1] - adds r0, r0, r3 - strh r5, [r0, #0x38] - strh r6, [r0, #0x3a] - movs r1, #9 - strh r1, [r0, #0x3c] - ldrh r0, [r4, #0x1a] - adds r0, #1 - strh r0, [r4, #0x1a] -_08108FC6: - ldrh r0, [r4, #0x1e] - adds r0, #1 - 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, _08109008 - muls r0, r1, r0 - ldr r1, _0810900C - adds r0, r0, r1 - movs r2, #0x12 - ldrsh r1, [r4, r2] - bl __modsi3 - ldrh r1, [r4, #0x10] - adds r1, r1, r0 - strh r1, [r4, #0x16] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08108FF8: .4byte gUnknown_82FA8CC -_08108FFC: .4byte gUnknown_8570E4C -_08109000: .4byte gUnknown_20205AC -_08109004: .4byte sub_08109010 -_08109008: .4byte 0x41C64E6D -_0810900C: .4byte 0x00003039 - thumb_func_end sub_08108F6C - - thumb_func_start sub_08109010 -sub_08109010: @ 0x08109010 - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _081090A6 - ldrh r0, [r5, #0x22] - adds r0, #8 - strh r0, [r5, #0x22] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x38 - ldrsh r1, [r5, r2] - cmp r0, r1 - blt _081090A6 - ldr r2, _081090AC - movs r3, #0x3a - ldrsh r1, [r5, r3] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r1, #1 - strh r1, [r0, #0x1c] - ldr r0, _081090B0 - movs r2, #0x20 - ldrsh r1, [r5, r2] - movs r3, #0x22 - ldrsh r2, [r5, r3] - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x30] - cmp r0, #0x40 - beq _081090A0 - movs r0, #0x30 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _081090B4 - adds r0, r0, r4 - movs r1, #3 - bl StartSpriteAffineAnim - movs r2, #0x30 - ldrsh r1, [r5, r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r5, #0x3a] - strh r1, [r0, #0x3a] - movs r3, #0x30 - ldrsh r1, [r5, r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r5, #0x3c] - strh r1, [r0, #0x3c] - movs r0, #0x30 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, #0x1c - adds r0, r0, r4 - ldr r1, _081090B8 - str r1, [r0] -_081090A0: - adds r0, r5, #0 - bl DestroySprite -_081090A6: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081090AC: .4byte gUnknown_3005B60 -_081090B0: .4byte gUnknown_8572F6C -_081090B4: .4byte gUnknown_20205AC -_081090B8: .4byte sub_081090BC - thumb_func_end sub_08109010 - - thumb_func_start sub_081090BC -sub_081090BC: @ 0x081090BC - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _08109128 - movs r0, #0 - strh r0, [r4, #0x30] - adds r3, r4, #0 - adds r3, #0x3e - ldrb r2, [r3] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xc - bne _08109128 - ldr r3, _08109130 - movs r0, #0x3c - ldrsh r1, [r4, r0] - lsls r1, r1, #1 - movs r0, #0x3a - ldrsh r2, [r4, r0] - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r1, r1, r0 - adds r3, #8 - adds r1, r1, r3 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - ldrb r0, [r4, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - adds r0, r4, #0 - bl DestroySprite -_08109128: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08109130: .4byte gUnknown_3005B60 - thumb_func_end sub_081090BC - - thumb_func_start sub_08109134 -sub_08109134: @ 0x08109134 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _081091B8 - adds r5, r1, r0 - ldr r4, _081091BC - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r6, #0 - strh r0, [r5, #0xe] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x10] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - movs r2, #1 - rsbs r2, r2, #0 - adds r1, r2, #0 - cmp r0, #0 - bne _08109178 - movs r1, #1 -_08109178: - strh r1, [r5, #0x16] - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810918C - movs r1, #0x16 - ldrsh r0, [r5, r1] - rsbs r0, r0, #0 - strh r0, [r5, #0x16] -_0810918C: - movs r2, #0x16 - ldrsh r0, [r5, r2] - lsls r0, r0, #3 - ldrh r1, [r5, #0xe] - adds r0, r0, r1 - strh r0, [r5, #0x12] - movs r2, #0x16 - ldrsh r1, [r5, r2] - lsls r1, r1, #3 - ldrh r0, [r5, #0x10] - subs r0, r0, r1 - strh r0, [r5, #0x14] - ldr r0, _081091C0 - strh r0, [r5, #0x1a] - strh r6, [r5, #0xa] - strh r6, [r5, #8] - ldr r0, _081091C4 - str r0, [r5] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081091B8: .4byte gUnknown_3005B60 -_081091BC: .4byte gUnknown_20380D6 -_081091C0: .4byte 0x0000FFE0 -_081091C4: .4byte sub_081091C8 - thumb_func_end sub_08109134 - - thumb_func_start sub_081091C8 -sub_081091C8: @ 0x081091C8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _081091EC - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #6 - bls _081091E2 - b _08109302 -_081091E2: - lsls r0, r0, #2 - ldr r1, _081091F0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081091EC: .4byte gUnknown_3005B60 -_081091F0: .4byte _081091F4 -_081091F4: @ jump table - .4byte _08109210 @ case 0 - .4byte _08109220 @ case 1 - .4byte _0810923A @ case 2 - .4byte _0810927C @ case 3 - .4byte _0810929E @ case 4 - .4byte _081092CC @ case 5 - .4byte _081092F2 @ case 6 -_08109210: - adds r0, r4, #0 - bl sub_08109310 - movs r1, #0x1c - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _08109308 - b _081092FA -_08109220: - adds r0, r4, #0 - bl sub_08109310 - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x10 - ble _08109308 - movs r0, #0 - strh r0, [r4, #0xa] - b _081092FA -_0810923A: - adds r0, r4, #0 - bl sub_08109310 - movs r1, #0x16 - ldrsh r0, [r4, r1] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - ldrh r0, [r4, #0x12] - adds r1, r1, r0 - movs r2, #0 - strh r1, [r4, #0x12] - adds r1, #0x10 - lsls r1, r1, #0x10 - movs r0, #0x88 - lsls r0, r0, #0x11 - cmp r1, r0 - bls _08109308 - ldrh r0, [r4, #0x20] - adds r0, #1 - strh r0, [r4, #0x20] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - ble _08109278 - movs r0, #1 - strh r0, [r4, #0x22] - movs r0, #6 - strh r0, [r4, #8] - strh r2, [r4, #0xa] - b _08109308 -_08109278: - strh r2, [r4, #0xa] - b _081092FA -_0810927C: - adds r0, r4, #0 - bl sub_08109310 - movs r0, #0x16 - ldrsh r1, [r4, r0] - lsls r1, r1, #1 - ldrh r0, [r4, #0x14] - subs r0, r0, r1 - strh r0, [r4, #0x14] - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #7 - ble _08109308 - b _081092FA -_0810929E: - adds r0, r4, #0 - bl sub_08109310 - movs r1, #0x16 - ldrsh r0, [r4, r1] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - ldrh r0, [r4, #0x12] - subs r0, r0, r1 - strh r0, [r4, #0x12] - adds r0, #0x10 - lsls r0, r0, #0x10 - movs r1, #0x88 - lsls r1, r1, #0x11 - cmp r0, r1 - bls _08109308 - ldrh r0, [r4, #0x20] - adds r0, #1 - strh r0, [r4, #0x20] - movs r0, #0 - strh r0, [r4, #0xa] - b _081092FA -_081092CC: - adds r0, r4, #0 - bl sub_08109310 - movs r0, #0x16 - ldrsh r1, [r4, r0] - lsls r1, r1, #1 - ldrh r0, [r4, #0x14] - subs r0, r0, r1 - strh r0, [r4, #0x14] - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #7 - ble _08109308 - movs r0, #2 - strh r0, [r4, #8] - b _08109308 -_081092F2: - movs r1, #0x18 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08109308 -_081092FA: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _08109308 -_08109302: - adds r0, r2, #0 - bl DestroyAnimVisualTask -_08109308: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081091C8 - - thumb_func_start sub_08109310 -sub_08109310: @ 0x08109310 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldrh r0, [r6, #0xc] - adds r0, #1 - strh r0, [r6, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _0810936A - movs r0, #0 - strh r0, [r6, #0xc] - ldr r0, _08109370 - movs r2, #0xe - ldrsh r1, [r6, r2] - movs r3, #0x10 - ldrsh r2, [r6, r3] - movs r3, #0xa - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _0810936A - ldr r5, _08109374 - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, 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 InitAnimArcTranslation - adds r5, #0x1c - adds r4, r4, r5 - ldr r0, _08109378 - str r0, [r4] - ldrh r0, [r6, #0x18] - adds r0, #1 - strh r0, [r6, #0x18] -_0810936A: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08109370: .4byte gUnknown_8570E4C -_08109374: .4byte gUnknown_20205AC -_08109378: .4byte sub_0810937C - thumb_func_end sub_08109310 - - thumb_func_start sub_0810937C -sub_0810937C: @ 0x0810937C - push {r4, r5, r6, lr} - adds r6, r0, #0 - bl TranslateAnimHorizontalArc - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081093D6 - ldrh r0, [r6, #0x24] - ldrh r1, [r6, #0x20] - adds r0, r0, r1 - strh r0, [r6, #0x20] - ldrh r0, [r6, #0x26] - ldrh r1, [r6, #0x22] - adds r0, r0, r1 - strh r0, [r6, #0x22] - movs r0, #6 - strh r0, [r6, #0x2e] - bl sub_0806F0A4 - movs r4, #0x1f - adds r1, r4, #0 - ands r1, r0 - ldr r5, _081093DC - adds r1, r1, r5 - ldrh r0, [r6, #0x20] - adds r1, r1, r0 - strh r1, [r6, #0x32] - bl sub_0806F0A4 - ands r4, r0 - adds r4, r4, r5 - ldrh r1, [r6, #0x22] - adds r4, r4, r1 - strh r4, [r6, #0x36] - bl sub_0806F0A4 - movs r1, #7 - ands r1, r0 - mvns r1, r1 - strh r1, [r6, #0x38] - adds r0, r6, #0 - bl InitAnimArcTranslation - ldr r0, _081093E0 - str r0, [r6, #0x1c] -_081093D6: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081093DC: .4byte 0x0000FFF0 -_081093E0: .4byte sub_081093E4 - thumb_func_end sub_0810937C - - thumb_func_start sub_081093E4 -sub_081093E4: @ 0x081093E4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl TranslateAnimHorizontalArc - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08109420 - movs r4, #0 - ldr r6, _08109428 -_081093F6: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r2, r0, r6 - ldr r1, [r2] - ldr r0, _0810942C - cmp r1, r0 - bne _08109416 - movs r0, #1 - strh r0, [r2, #0x1c] - ldrh r0, [r2, #0x18] - subs r0, #1 - strh r0, [r2, #0x18] - adds r0, r5, #0 - bl DestroySprite -_08109416: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0xf - bls _081093F6 -_08109420: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08109428: .4byte gUnknown_3005B60 -_0810942C: .4byte sub_081091C8 - thumb_func_end sub_081093E4 - - thumb_func_start sub_08109430 -sub_08109430: @ 0x08109430 - ldr r2, _08109450 - ldrh r1, [r2] - strh r1, [r0, #0x20] - ldrh r1, [r2, #2] - strh r1, [r0, #0x22] - ldrh r1, [r2, #4] - strh r1, [r0, #0x2e] - ldrh r1, [r2, #6] - strh r1, [r0, #0x30] - ldrh r1, [r2, #8] - strh r1, [r0, #0x32] - ldrh r1, [r2, #0xa] - strh r1, [r0, #0x34] - ldr r1, _08109454 - str r1, [r0, #0x1c] - bx lr - .align 2, 0 -_08109450: .4byte gUnknown_20380BE -_08109454: .4byte sub_08109458 - thumb_func_end sub_08109430 - - thumb_func_start sub_08109458 -sub_08109458: @ 0x08109458 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x36] - ldrh r1, [r4, #0x2e] - subs r0, 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, 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, #1 - strh r0, [r4, #0x34] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0810949C - adds r0, r4, #0 - bl DestroyAnimSprite -_0810949C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08109458 - - thumb_func_start sub_081094A4 -sub_081094A4: @ 0x081094A4 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x30] - ldrh r1, [r4, #0x34] - adds r0, r0, r1 - strh r0, [r4, #0x34] - ldrh r1, [r4, #0x32] - ldrh r2, [r4, #0x36] - adds r1, r1, r2 - strh r1, [r4, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x17 - strh r0, [r4, #0x24] - lsls r1, r1, #0x10 - asrs r1, r1, #0x17 - strh r1, [r4, #0x26] - ldrh r0, [r4, #0x2e] - subs r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _081094DC - adds r0, r4, #0 - bl FreeSpriteOamMatrix - adds r0, r4, #0 - bl DestroySprite -_081094DC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081094A4 - - thumb_func_start sub_081094E4 -sub_081094E4: @ 0x081094E4 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldr r5, _08109520 - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x30] - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x32] - ldr r1, _08109524 - ldrh r0, [r1, #4] - strh r0, [r4, #0x34] - ldrh r0, [r1, #6] - strh r0, [r4, #0x36] - ldr r0, _08109528 - str r0, [r4, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08109520: .4byte gUnknown_20380D7 -_08109524: .4byte gUnknown_20380BE -_08109528: .4byte sub_0810952C - thumb_func_end sub_081094E4 - - thumb_func_start sub_0810952C -sub_0810952C: @ 0x0810952C - push {r4, r5, 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, r0 - movs r2, #0x34 - ldrsh r1, [r4, r2] - bl __divsi3 - strh r0, [r4, #0x24] - movs r1, #0x2e - ldrsh r0, [r4, r1] - muls r0, r5, r0 - movs r2, #0x34 - ldrsh r1, [r4, r2] - bl __divsi3 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x38] - adds r0, #1 - strh r0, [r4, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x36 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _08109584 - movs r0, #0 - strh r0, [r4, #0x38] - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r5, #0 - bl sub_081095A4 -_08109584: - movs r0, #0x34 - ldrsh r1, [r4, r0] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _08109596 - adds r0, r4, #0 - bl DestroyAnimSprite -_08109596: - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0810952C - - thumb_func_start sub_081095A4 -sub_081095A4: @ 0x081095A4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - adds r4, r1, #0 - adds r5, r2, #0 - movs r2, #0x2e - ldrsh r1, [r0, r2] - lsrs r2, r1, #0x1f - adds r1, r1, r2 - lsls r1, r1, #0xf - lsrs r1, r1, #0x10 - str r1, [sp] - ldrh r1, [r0, #0x24] - ldrh r3, [r0, #0x20] - adds r1, r1, r3 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r8, r1 - ldrh r1, [r0, #0x26] - ldrh r0, [r0, #0x22] - adds r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sl, r1 - bl sub_0806F0A4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __umodsi3 - adds r0, r5, r0 - subs r0, #5 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - bl sub_0806F0A4 - rsbs r4, r4, #0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __umodsi3 - adds r4, r4, r0 - subs r4, #5 - lsls r4, r4, #0x10 - lsrs r7, r4, #0x10 - movs r6, #0 - mov r0, r8 - lsls r0, r0, #0x10 - mov r8, r0 - mov r1, sl - lsls r1, r1, #0x10 - str r1, [sp, #0xc] - ldr r2, [sp] - lsls r2, r2, #0x10 - str r2, [sp, #0x10] - asrs r1, r1, #0x10 - lsls r0, r7, #0x10 - asrs r5, r0, #0x10 - str r0, [sp, #0x14] - rsbs r3, r5, #0 - str r3, [sp, #4] - asrs r0, r2, #0x10 - adds r1, r1, r0 - lsls r1, r1, #0x10 - mov sl, r1 -_08109632: - ldr r0, _08109674 - mov r2, r8 - asrs r1, r2, #0x10 - mov r3, sl - asrs r2, r3, #0x10 - movs r3, #0x82 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _08109678 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r4, r0, r1 - movs r0, #0x14 - strh r0, [r4, #0x2e] - mov r0, sb - strh r0, [r4, #0x30] - ldr r0, _0810967C - ldrb r0, [r0] - bl GetBattlerSpriteSubpriority - subs r0, #1 - adds r1, r4, #0 - adds r1, #0x43 - strb r0, [r1] - cmp r5, #0 - bge _08109680 - mov r1, sp - ldrh r1, [r1, #4] - strh r1, [r4, #0x32] - b _08109682 - .align 2, 0 -_08109674: .4byte gUnknown_8570EF4 -_08109678: .4byte gUnknown_20205AC -_0810967C: .4byte gUnknown_20380D6 -_08109680: - strh r7, [r4, #0x32] -_08109682: - lsls r0, r6, #0x10 - movs r2, #0x80 - lsls r2, r2, #9 - adds r0, r0, r2 - lsrs r6, r0, #0x10 - cmp r0, #0 - ble _08109632 - movs r6, #0 - ldr r3, [sp, #0xc] - asrs r1, r3, #0x10 - ldr r0, [sp, #0x14] - asrs r5, r0, #0x10 - rsbs r2, r5, #0 - str r2, [sp, #8] - ldr r3, [sp, #0x10] - asrs r0, r3, #0x10 - subs r1, r1, r0 - lsls r1, r1, #0x10 - mov sl, r1 -_081096A8: - ldr r0, _081096EC - mov r2, r8 - asrs r1, r2, #0x10 - mov r3, sl - asrs r2, r3, #0x10 - movs r3, #0x82 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _081096F0 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r4, r0, r1 - movs r0, #0x14 - strh r0, [r4, #0x2e] - mov r0, sb - strh r0, [r4, #0x30] - ldr r0, _081096F4 - ldrb r0, [r0] - bl GetBattlerSpriteSubpriority - subs r0, #1 - adds r1, r4, #0 - adds r1, #0x43 - strb r0, [r1] - cmp r5, #0 - ble _081096F8 - mov r1, sp - ldrh r1, [r1, #8] - strh r1, [r4, #0x32] - b _081096FA - .align 2, 0 -_081096EC: .4byte gUnknown_8570EF4 -_081096F0: .4byte gUnknown_20205AC -_081096F4: .4byte gUnknown_20380D6 -_081096F8: - strh r7, [r4, #0x32] -_081096FA: - lsls r0, r6, #0x10 - movs r2, #0x80 - lsls r2, r2, #9 - adds r0, r0, r2 - lsrs r6, r0, #0x10 - cmp r0, #0 - ble _081096A8 - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_081095A4 - - thumb_func_start sub_08109718 -sub_08109718: @ 0x08109718 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0810974C - ldrh r0, [r0] - strh r0, [r4, #0x2e] - movs r0, #0x3c - strh r0, [r4, #0x30] - movs r0, #9 - strh r0, [r4, #0x32] - movs r0, #0x1e - strh r0, [r4, #0x34] - movs r0, #0xfe - lsls r0, r0, #8 - strh r0, [r4, #0x36] - ldr r1, _08109750 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - ldr r1, _08109754 - str r1, [r4, #0x1c] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810974C: .4byte gUnknown_20380BE -_08109750: .4byte DestroyAnimSprite -_08109754: .4byte TranslateSpriteInGrowingCircleOverDuration - thumb_func_end sub_08109718 - - thumb_func_start sub_08109758 -sub_08109758: @ 0x08109758 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08109790 - movs r0, #0 - ldrsh r1, [r5, r0] - adds r0, r4, #0 - bl SetAnimSpriteInitialXOffset - ldrh r0, [r5, #2] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] - ldrh r0, [r5, #8] - strh r0, [r4, #0x2e] - ldrh r0, [r5, #4] - strh r0, [r4, #0x30] - ldrh r0, [r5, #6] - strh r0, [r4, #0x32] - ldr r0, _08109794 - str r0, [r4, #0x1c] - ldr r1, _08109798 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08109790: .4byte gUnknown_20380BE -_08109794: .4byte TranslateSpriteLinearFixedPoint -_08109798: .4byte DestroyAnimSprite - thumb_func_end sub_08109758 - - thumb_func_start sub_0810979C -sub_0810979C: @ 0x0810979C - push {r4, lr} - adds r4, r0, #0 - bl SetSpriteCoordsToAnimAttackerCoords - ldr r0, _081097D0 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081097D8 - ldr r2, _081097D4 - ldrh r0, [r4, #0x20] - ldrh r1, [r2] - subs r0, r0, r1 - strh r0, [r4, #0x20] - ldrh r0, [r2, #2] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] - ldrh r0, [r2, #8] - rsbs r0, r0, #0 - strh r0, [r4, #0x32] - adds r1, r2, #0 - b _081097EE - .align 2, 0 -_081097D0: .4byte gUnknown_20380D6 -_081097D4: .4byte gUnknown_20380BE -_081097D8: - ldr r1, _08109804 - ldrh r0, [r1] - ldrh r2, [r4, #0x20] - adds r0, r0, r2 - strh r0, [r4, #0x20] - ldrh r0, [r1, #2] - ldrh r2, [r4, #0x22] - adds r0, r0, r2 - strh r0, [r4, #0x22] - ldrh r0, [r1, #8] - strh r0, [r4, #0x32] -_081097EE: - ldrh r0, [r1, #4] - strh r0, [r4, #0x30] - ldrh r0, [r1, #6] - strh r0, [r4, #0x36] - ldrh r0, [r1, #0xa] - strh r0, [r4, #0x34] - ldr r0, _08109808 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08109804: .4byte gUnknown_20380BE -_08109808: .4byte sub_08109878 - thumb_func_end sub_0810979C - - thumb_func_start sub_0810980C -sub_0810980C: @ 0x0810980C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08109838 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08109840 - ldr r2, _0810983C - ldrh r0, [r4, #0x20] - ldrh r1, [r2] - subs r0, r0, r1 - strh r0, [r4, #0x20] - ldrh r0, [r2, #2] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] - ldrh r0, [r2, #8] - strh r0, [r4, #0x32] - adds r1, r2, #0 - b _08109858 - .align 2, 0 -_08109838: .4byte gUnknown_20380D6 -_0810983C: .4byte gUnknown_20380BE -_08109840: - ldr r1, _08109870 - ldrh r0, [r1] - ldrh r2, [r4, #0x20] - adds r0, r0, r2 - strh r0, [r4, #0x20] - ldrh r0, [r1, #2] - ldrh r2, [r4, #0x22] - adds r0, r0, r2 - strh r0, [r4, #0x22] - ldrh r0, [r1, #8] - rsbs r0, r0, #0 - strh r0, [r4, #0x32] -_08109858: - ldrh r0, [r1, #4] - strh r0, [r4, #0x30] - ldrh r0, [r1, #6] - strh r0, [r4, #0x36] - ldrh r0, [r1, #0xa] - strh r0, [r4, #0x34] - ldr r0, _08109874 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08109870: .4byte gUnknown_20380BE -_08109874: .4byte sub_08109878 - thumb_func_end sub_0810980C - - thumb_func_start sub_08109878 -sub_08109878: @ 0x08109878 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x2e] - adds r0, #1 - strh r0, [r2, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r3, #0x36 - ldrsh r1, [r2, r3] - cmp r0, r1 - bge _0810989E - ldrh r0, [r2, #0x32] - ldrh r1, [r2, #0x24] - adds r0, r0, r1 - strh r0, [r2, #0x24] - ldrh r0, [r2, #0x34] - ldrh r3, [r2, #0x26] - adds r0, r0, r3 - strh r0, [r2, #0x26] -_0810989E: - movs r0, #0x2e - ldrsh r1, [r2, r0] - movs r3, #0x30 - ldrsh r0, [r2, r3] - cmp r1, r0 - bne _081098B0 - adds r0, r2, #0 - bl DestroySpriteAndMatrix -_081098B0: - pop {r0} - bx r0 - thumb_func_end sub_08109878 - - thumb_func_start sub_081098B4 -sub_081098B4: @ 0x081098B4 - push {r4, lr} - adds r4, r0, #0 - bl SetSpriteCoordsToAnimAttackerCoords - ldr r0, _081098D8 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081098E0 - ldr r0, _081098DC - ldrh r1, [r4, #0x20] - ldrh r2, [r0] - subs r1, r1, r2 - strh r1, [r4, #0x20] - b _081098F2 - .align 2, 0 -_081098D8: .4byte gUnknown_20380D6 -_081098DC: .4byte gUnknown_20380BE -_081098E0: - ldr r0, _08109920 - ldrh r1, [r0] - ldrh r2, [r4, #0x20] - adds r1, r1, r2 - strh r1, [r4, #0x20] - adds r2, r4, #0 - adds r2, #0x43 - movs r1, #8 - strb r1, [r2] -_081098F2: - adds r2, r0, #0 - ldrh r0, [r2, #2] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - movs r1, #0 - strh r0, [r4, #0x22] - ldrh r0, [r2, #4] - strh r0, [r4, #0x2e] - ldrh r0, [r2, #6] - strh r0, [r4, #0x30] - ldrh r0, [r2, #8] - 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, _08109924 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08109920: .4byte gUnknown_20380BE -_08109924: .4byte sub_08109928 - thumb_func_end sub_081098B4 - - thumb_func_start sub_08109928 -sub_08109928: @ 0x08109928 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x34 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _081099B0 - movs r2, #0x38 - ldrsh r1, [r4, r2] - ldr r0, _08109994 - cmp r1, r0 - ble _08109946 - adds r1, r4, #0 - adds r1, #0x43 - movs r0, #1 - strb r0, [r1] -_08109946: - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldrh r1, [r4, #0x38] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - ldrh r2, [r4, #0x30] - adds r1, r1, r2 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl Sin - strh r0, [r4, #0x24] - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldrh r1, [r4, #0x38] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - ldrh r2, [r4, #0x30] - adds r1, r1, r2 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - 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, r0, r2 - strh r0, [r4, #0x38] - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xff - ble _0810999C - ldr r2, _08109998 - b _081099A4 - .align 2, 0 -_08109994: .4byte 0x00002710 -_08109998: .4byte 0xFFFFFF00 -_0810999C: - cmp r0, #0 - bge _081099A8 - movs r2, #0x80 - lsls r2, r2, #1 -_081099A4: - adds r0, r1, r2 - strh r0, [r4, #0x2e] -_081099A8: - ldrh r0, [r4, #0x34] - subs r0, #1 - strh r0, [r4, #0x34] - b _081099B6 -_081099B0: - adds r0, r4, #0 - bl DestroySpriteAndMatrix -_081099B6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08109928 - - thumb_func_start sub_081099BC -sub_081099BC: @ 0x081099BC - 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, _081099E0 - str r1, [r0, #0x1c] - ldr r1, _081099E4 - bl StoreSpriteCallbackInData6 - pop {r0} - bx r0 - .align 2, 0 -_081099E0: .4byte sub_080A67B4 -_081099E4: .4byte DestroyAnimSprite - thumb_func_end sub_081099BC - - thumb_func_start AnimEmberFlare -AnimEmberFlare: @ 0x081099E8 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r5, _08109A40 - ldrb r0, [r5] - bl GetBattlerSide - adds r4, r0, #0 - ldr r0, _08109A44 - ldrb r0, [r0] - bl GetBattlerSide - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - bne _08109A2E - movs r0, #2 - bl GetBattlerAtPosition - ldrb r1, [r5] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r1, r0 - beq _08109A26 - movs r0, #3 - bl GetBattlerAtPosition - ldrb r1, [r5] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r1, r0 - bne _08109A2E -_08109A26: - ldr r1, _08109A48 - ldrh r0, [r1, #4] - rsbs r0, r0, #0 - strh r0, [r1, #4] -_08109A2E: - ldr r1, _08109A4C - str r1, [r6, #0x1c] - adds r0, r6, #0 - bl _call_via_r1 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08109A40: .4byte gUnknown_20380D6 -_08109A44: .4byte gUnknown_20380D7 -_08109A48: .4byte gUnknown_20380BE -_08109A4C: .4byte sub_080A7200 - thumb_func_end AnimEmberFlare - - thumb_func_start sub_08109A50 -sub_08109A50: @ 0x08109A50 - ldr r2, _08109A64 - ldrh r1, [r2] - rsbs r1, r1, #0 - strh r1, [r2] - ldrh r1, [r2, #4] - rsbs r1, r1, #0 - strh r1, [r2, #4] - ldr r1, _08109A68 - str r1, [r0, #0x1c] - bx lr - .align 2, 0 -_08109A64: .4byte gUnknown_20380BE -_08109A68: .4byte sub_080A7200 - thumb_func_end sub_08109A50 - - thumb_func_start AnimFireRing -AnimFireRing: @ 0x08109A6C - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldr r0, _08109A8C - ldrh r0, [r0, #4] - movs r1, #0 - strh r0, [r4, #0x3c] - strh r1, [r4, #0x2e] - ldr r0, _08109A90 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08109A8C: .4byte gUnknown_20380BE -_08109A90: .4byte AnimFireRingStep1 - thumb_func_end AnimFireRing - - thumb_func_start AnimFireRingStep1 -AnimFireRingStep1: @ 0x08109A94 - push {r4, r5, lr} - adds r5, r0, #0 - bl UpdateFireRingCircleOffset - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x12 - bne _08109ADE - movs r0, #0x19 - strh r0, [r5, #0x2e] - ldrh r0, [r5, #0x20] - strh r0, [r5, #0x30] - ldr r4, _08109AE4 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x32] - ldrh r0, [r5, #0x22] - strh r0, [r5, #0x34] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x36] - adds r0, r5, #0 - bl InitAnimLinearTranslation - ldr r0, _08109AE8 - str r0, [r5, #0x1c] -_08109ADE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08109AE4: .4byte gUnknown_20380D7 -_08109AE8: .4byte AnimFireRingStep2 - thumb_func_end AnimFireRingStep1 - - thumb_func_start AnimFireRingStep2 -AnimFireRingStep2: @ 0x08109AEC - push {r4, r5, r6, lr} - adds r6, r0, #0 - bl AnimTranslateLinear - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08109B34 - movs r4, #0 - strh r4, [r6, #0x2e] - ldr r5, _08109B2C - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r6, #0x20] - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r6, #0x22] - strh r4, [r6, #0x26] - strh r4, [r6, #0x24] - ldr r1, _08109B30 - str r1, [r6, #0x1c] - adds r0, r6, #0 - bl _call_via_r1 - b _08109B5E - .align 2, 0 -_08109B2C: .4byte gUnknown_20380D7 -_08109B30: .4byte AnimFireRingStep3 -_08109B34: - movs r1, #0x3c - ldrsh r0, [r6, r1] - movs r1, #0x1c - bl Sin - ldrh r1, [r6, #0x24] - adds r0, r0, r1 - strh r0, [r6, #0x24] - movs r1, #0x3c - ldrsh r0, [r6, r1] - movs r1, #0x1c - bl Cos - ldrh r1, [r6, #0x26] - adds r0, r0, r1 - strh r0, [r6, #0x26] - ldrh r0, [r6, #0x3c] - adds r0, #0x14 - movs r1, #0xff - ands r0, r1 - strh r0, [r6, #0x3c] -_08109B5E: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end AnimFireRingStep2 - - thumb_func_start AnimFireRingStep3 -AnimFireRingStep3: @ 0x08109B64 - push {r4, lr} - adds r4, r0, #0 - bl UpdateFireRingCircleOffset - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1f - bne _08109B80 - adds r0, r4, #0 - bl DestroyAnimSprite -_08109B80: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AnimFireRingStep3 - - thumb_func_start UpdateFireRingCircleOffset -UpdateFireRingCircleOffset: @ 0x08109B88 - 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 UpdateFireRingCircleOffset - - thumb_func_start AnimFireCross -AnimFireCross: @ 0x08109BB4 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08109BE8 - ldrh r0, [r1] - ldrh r2, [r4, #0x20] - adds r0, r0, r2 - strh r0, [r4, #0x20] - ldrh r0, [r1, #2] - ldrh r2, [r4, #0x22] - adds r0, r0, r2 - strh r0, [r4, #0x22] - ldrh r0, [r1, #4] - strh r0, [r4, #0x2e] - ldrh r0, [r1, #6] - strh r0, [r4, #0x30] - ldrh r0, [r1, #8] - strh r0, [r4, #0x32] - ldr r1, _08109BEC - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _08109BF0 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08109BE8: .4byte gUnknown_20380BE -_08109BEC: .4byte DestroyAnimSprite -_08109BF0: .4byte TranslateSpriteLinear - thumb_func_end AnimFireCross - - thumb_func_start sub_08109BF4 -sub_08109BF4: @ 0x08109BF4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldr r1, _08109C28 - ldrh r0, [r1, #4] - strh r0, [r4, #0x30] - ldrh r0, [r1, #6] - strh r0, [r4, #0x2e] - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08109C2C - str r0, [r4, #0x1c] - ldr r1, _08109C30 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08109C28: .4byte gUnknown_20380BE -_08109C2C: .4byte WaitAnimForDuration -_08109C30: .4byte sub_08109C34 - thumb_func_end sub_08109BF4 - - thumb_func_start sub_08109C34 -sub_08109C34: @ 0x08109C34 - push {lr} - adds r3, r0, #0 - adds r3, #0x3e - ldrb r2, [r3] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r3] - ldrh r1, [r0, #0x30] - movs r2, #0 - strh r1, [r0, #0x2e] - strh r2, [r0, #0x30] - ldr r1, _08109C58 - str r1, [r0, #0x1c] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_08109C58: .4byte sub_08109C5C - thumb_func_end sub_08109C34 - - thumb_func_start sub_08109C5C -sub_08109C5C: @ 0x08109C5C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x30 - ldrsh r0, [r4, r1] - ldrh r1, [r4, #0x32] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - bl Sin - strh r0, [r4, #0x24] - movs r1, #0x30 - ldrsh r0, [r4, r1] - ldrh r1, [r4, #0x32] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - 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, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _08109CA8 - adds r0, r4, #0 - bl DestroyAnimSprite -_08109CA8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08109C5C - - thumb_func_start sub_08109CB0 -sub_08109CB0: @ 0x08109CB0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _08109D10 - adds r4, r4, r0 - movs r0, #0 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r5, #0 - strh r0, [r4, #0x26] - strh r5, [r4, #8] - strh r5, [r4, #0xa] - strh r5, [r4, #0xc] - strh r5, [r4, #0xe] - ldr r2, _08109D14 - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0, #0x22] - strh r0, [r4, #0x10] - ldr r0, _08109D18 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x12] - strh r5, [r4, #0x14] - ldrh r0, [r4, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl PrepareBattlerSpriteForRotScale - ldr r0, _08109D1C - str r0, [r4] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08109D10: .4byte gUnknown_3005B60 -_08109D14: .4byte gUnknown_20205AC -_08109D18: .4byte gUnknown_20380D6 -_08109D1C: .4byte sub_08109D20 - thumb_func_end sub_08109CB0 - - thumb_func_start sub_08109D20 -sub_08109D20: @ 0x08109D20 - push {r4, r5, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _08109D48 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #6 - bls _08109D3C - b _08109FFA -_08109D3C: - lsls r0, r0, #2 - ldr r1, _08109D4C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08109D48: .4byte gUnknown_3005B60 -_08109D4C: .4byte _08109D50 -_08109D50: @ jump table - .4byte _08109D6C @ case 0 - .4byte _08109D92 @ case 1 - .4byte _08109E44 @ case 2 - .4byte _08109EA4 @ case 3 - .4byte _08109EC2 @ case 4 - .4byte _08109F98 @ case 5 - .4byte _08109FEC @ case 6 -_08109D6C: - ldrh r1, [r4, #0x26] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r3, #0x80 - lsls r3, r3, #1 - movs r0, #0xe0 - str r0, [sp] - movs r0, #0x80 - lsls r0, r0, #2 - str r0, [sp, #4] - movs r0, #0x20 - str r0, [sp, #8] - adds r0, r4, #0 - adds r2, r3, #0 - bl sub_080A7924 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_08109D92: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _08109DDA - movs r0, #0 - strh r0, [r4, #0xa] - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08109DC8 - ldr r2, _08109DC4 - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #3 - b _08109DD8 - .align 2, 0 -_08109DC4: .4byte gUnknown_20205AC -_08109DC8: - ldr r2, _08109E3C - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, _08109E40 -_08109DD8: - strh r1, [r0, #0x24] -_08109DDA: - movs r1, #0x12 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _08109E08 - ldrh r0, [r4, #0xe] - adds r0, #1 - strh r0, [r4, #0xe] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - ble _08109E08 - movs r0, #0 - strh r0, [r4, #0xe] - ldr r2, _08109E3C - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x22] - adds r1, #1 - strh r1, [r0, #0x22] -_08109E08: - adds r0, r4, #0 - bl sub_080A7990 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - beq _08109E18 - b _08109FFA -_08109E18: - ldrh r0, [r4, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl SetBattlerSpriteYOffsetFromYScale - ldr r2, _08109E3C - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r5, [r0, #0x24] - strh r5, [r4, #0xa] - strh r5, [r4, #0xc] - strh r5, [r4, #0xe] - b _08109FE0 - .align 2, 0 -_08109E3C: .4byte gUnknown_20205AC -_08109E40: .4byte 0x0000FFFD -_08109E44: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - bgt _08109E54 - b _08109FFA -_08109E54: - movs r1, #0x12 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _08109E7E - ldrh r1, [r4, #0x26] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r3, #0x80 - lsls r3, r3, #2 - movs r0, #0xc0 - lsls r0, r0, #1 - str r0, [sp] - movs r0, #0xf0 - str r0, [sp, #4] - movs r0, #6 - str r0, [sp, #8] - adds r0, r4, #0 - movs r2, #0xe0 - bl sub_080A7924 - b _08109E9E -_08109E7E: - ldrh r1, [r4, #0x26] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r3, #0x80 - lsls r3, r3, #2 - movs r0, #0xc0 - lsls r0, r0, #1 - str r0, [sp] - movs r0, #0xc0 - str r0, [sp, #4] - movs r0, #6 - str r0, [sp, #8] - adds r0, r4, #0 - movs r2, #0xe0 - bl sub_080A7924 -_08109E9E: - movs r0, #0 - strh r0, [r4, #0xa] - b _08109FE0 -_08109EA4: - adds r0, r4, #0 - bl sub_080A7990 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08109EB2 - b _08109FFA -_08109EB2: - ldrh r0, [r4, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r5, #0 - movs r2, #6 - bl sub_0810A004 - b _08109FE0 -_08109EC2: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _08109F10 - movs r0, #0 - strh r0, [r4, #0xa] - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08109EFC - ldr r2, _08109EF8 - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x26] - adds r1, #3 - b _08109F0E - .align 2, 0 -_08109EF8: .4byte gUnknown_20205AC -_08109EFC: - ldr r2, _08109F48 - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x26] - subs r1, #3 -_08109F0E: - strh r1, [r0, #0x26] -_08109F10: - ldrh r0, [r4, #0xe] - adds r0, #1 - strh r0, [r4, #0xe] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x18 - ble _08109FFA - movs r1, #0x12 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _08109F4C - ldrh r1, [r4, #0x26] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r2, #0xc0 - lsls r2, r2, #1 - movs r0, #0x80 - lsls r0, r0, #1 - str r0, [sp] - str r0, [sp, #4] - movs r0, #8 - str r0, [sp, #8] - adds r0, r4, #0 - movs r3, #0xf0 - bl sub_080A7924 - b _08109F6A - .align 2, 0 -_08109F48: .4byte gUnknown_20205AC -_08109F4C: - ldrh r1, [r4, #0x26] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r2, #0xc0 - lsls r2, r2, #1 - movs r0, #0x80 - lsls r0, r0, #1 - str r0, [sp] - str r0, [sp, #4] - movs r0, #8 - str r0, [sp, #8] - adds r0, r4, #0 - movs r3, #0xc0 - bl sub_080A7924 -_08109F6A: - ldrh r1, [r4, #0xc] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08109F88 - ldr r2, _08109F94 - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x26] - subs r1, #3 - strh r1, [r0, #0x26] -_08109F88: - movs r0, #0 - strh r0, [r4, #0xa] - strh r0, [r4, #0xc] - strh r0, [r4, #0xe] - b _08109FE0 - .align 2, 0 -_08109F94: .4byte gUnknown_20205AC -_08109F98: - movs r1, #0x12 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _08109FB4 - ldr r2, _08109FE8 - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x22] - subs r1, #1 - strh r1, [r0, #0x22] -_08109FB4: - adds r0, r4, #0 - bl sub_080A7990 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _08109FFA - ldr r2, _08109FE8 - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r4, #0x10] - strh r1, [r0, #0x22] - ldrh r0, [r4, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl ResetSpriteRotScale - strh r5, [r4, #0xc] -_08109FE0: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _08109FFA - .align 2, 0 -_08109FE8: .4byte gUnknown_20205AC -_08109FEC: - movs r1, #0x14 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08109FFA - adds r0, r5, #0 - bl DestroyAnimVisualTask -_08109FFA: - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08109D20 - - thumb_func_start sub_0810A004 -sub_0810A004: @ 0x0810A004 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r8, r2 - adds r0, r4, #0 - bl sub_0810A180 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - ldr r1, _0810A054 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r4, [r0, #0x20] - ldr r0, _0810A058 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810A05C - adds r0, r4, #0 - subs r0, #0xc - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r0, #1 - b _0810A066 - .align 2, 0 -_0810A054: .4byte gUnknown_20205AC -_0810A058: .4byte gUnknown_20380D6 -_0810A05C: - adds r0, r4, #0 - adds r0, #0x10 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r0, #0xff -_0810A066: - movs r6, #0 - movs r5, #0 - lsls r4, r4, #0x10 - str r4, [sp, #8] - mov r1, sb - lsls r1, r1, #0x10 - str r1, [sp, #4] - ldr r2, _0810A120 - mov sb, r2 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - str r0, [sp] - mov r3, r8 - lsls r3, r3, #1 - mov sl, r3 -_0810A084: - ldr r0, _0810A124 - ldr r2, [sp, #8] - asrs r1, r2, #0x10 - ldr r3, [sp, #4] - asrs r2, r3, #0x10 - movs r3, #2 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x40 - beq _0810A106 - ldr r1, _0810A128 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r4, r0, r1 - ldrh r2, [r4, #4] - lsls r1, r2, #0x16 - lsrs r1, r1, #0x16 - lsls r0, r5, #2 - adds r0, #0x40 - adds r1, r1, r0 - ldr r3, _0810A12C - adds r0, r3, #0 - ands r1, r0 - ldr r3, _0810A130 - adds r0, r3, #0 - ands r2, r0 - orrs r2, r1 - strh r2, [r4, #4] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #4 - bls _0810A0CE - movs r5, #0 -_0810A0CE: - lsls r2, r6, #2 - mov r1, sb - adds r0, r2, r1 - ldrh r0, [r0] - ldr r3, [sp] - adds r1, r0, #0 - muls r1, r3, r1 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldr r0, _0810A134 - adds r2, r2, r0 - movs r3, #0 - ldrsh r2, [r2, r3] - adds r0, r4, #0 - bl sub_0810A1D4 - strh r7, [r4, #0x3a] - mov r0, r8 - strh r0, [r4, #0x3c] - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - add r0, sl - ldr r1, _0810A138 - adds r0, r0, r1 - ldrh r1, [r0] - adds r1, #1 - strh r1, [r0] -_0810A106: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #6 - bls _0810A084 - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0810A120: .4byte gUnknown_85711B0 -_0810A124: .4byte gUnknown_8571198 -_0810A128: .4byte gUnknown_20205AC -_0810A12C: .4byte 0x000003FF -_0810A130: .4byte 0xFFFFFC00 -_0810A134: .4byte gUnknown_85711B2 -_0810A138: .4byte gUnknown_3005B68 - thumb_func_end sub_0810A004 - - thumb_func_start sub_0810A13C -sub_0810A13C: @ 0x0810A13C - push {r4, lr} - adds r4, r0, #0 - bl sub_0810A1F0 - adds r0, r4, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0810A176 - ldr r3, _0810A17C - movs r0, #0x3c - ldrsh r1, [r4, r0] - lsls r1, r1, #1 - movs r0, #0x3a - ldrsh r2, [r4, r0] - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r1, r1, r0 - adds r3, #8 - adds r1, r1, r3 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - adds r0, r4, #0 - bl DestroySprite -_0810A176: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810A17C: .4byte gUnknown_3005B60 - thumb_func_end sub_0810A13C - - thumb_func_start sub_0810A180 -sub_0810A180: @ 0x0810A180 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0810A1B8 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r2, [r1, #0x26] - ldrh r0, [r1, #0x22] - adds r2, r2, r0 - adds r1, #0x29 - movs r0, #0 - ldrsb r0, [r1, r0] - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, _0810A1BC - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810A1C0 - lsls r0, r4, #0x10 - movs r1, #0x94 - lsls r1, r1, #0xf - b _0810A1C6 - .align 2, 0 -_0810A1B8: .4byte gUnknown_20205AC -_0810A1BC: .4byte gUnknown_20380D6 -_0810A1C0: - lsls r0, r4, #0x10 - movs r1, #0xb0 - lsls r1, r1, #0xe -_0810A1C6: - adds r0, r0, r1 - lsrs r4, r0, #0x10 - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0810A180 - - thumb_func_start sub_0810A1D4 -sub_0810A1D4: @ 0x0810A1D4 - movs r3, #0 - strh r3, [r0, #0x2e] - strh r3, [r0, #0x30] - ldrh r3, [r0, #0x20] - lsls r3, r3, #3 - strh r3, [r0, #0x32] - ldrh r3, [r0, #0x22] - lsls r3, r3, #3 - strh r3, [r0, #0x34] - lsls r1, r1, #3 - strh r1, [r0, #0x36] - lsls r2, r2, #3 - strh r2, [r0, #0x38] - bx lr - thumb_func_end sub_0810A1D4 - - thumb_func_start sub_0810A1F0 -sub_0810A1F0: @ 0x0810A1F0 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x2e] - adds r0, #1 - strh r0, [r2, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - ble _0810A21A - movs r0, #0 - strh r0, [r2, #0x2e] - ldrh r0, [r2, #0x30] - adds r0, #1 - strh r0, [r2, #0x30] - ldrh r0, [r2, #0x30] - adds r1, r0, #0 - muls r1, r0, r1 - adds r0, r1, #0 - ldrh r3, [r2, #0x34] - adds r0, r0, r3 - strh r0, [r2, #0x34] -_0810A21A: - ldrh r0, [r2, #0x36] - ldrh r1, [r2, #0x32] - adds r0, r0, r1 - strh r0, [r2, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x13 - strh r0, [r2, #0x20] - ldrh r1, [r2, #0x38] - ldrh r3, [r2, #0x34] - adds r1, r1, r3 - strh r1, [r2, #0x34] - lsls r1, r1, #0x10 - asrs r3, r1, #0x13 - strh r3, [r2, #0x22] - adds r0, #8 - lsls r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _0810A250 - adds r1, r3, #0 - movs r0, #8 - rsbs r0, r0, #0 - cmp r1, r0 - blt _0810A250 - cmp r1, #0x78 - ble _0810A25C -_0810A250: - adds r0, r2, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_0810A25C: - pop {r0} - bx r0 - thumb_func_end sub_0810A1F0 - - thumb_func_start sub_0810A260 -sub_0810A260: @ 0x0810A260 - push {r4, r5, lr} - ldr r3, _0810A2A4 - ldrh r1, [r3] - movs r2, #0 - strh r1, [r0, #0x20] - ldrh r1, [r3, #2] - strh r1, [r0, #0x22] - strh r2, [r0, #0x2e] - strh r2, [r0, #0x30] - strh r2, [r0, #0x32] - ldrh r1, [r3, #4] - strh r1, [r0, #0x3a] - ldrh r1, [r3, #6] - strh r1, [r0, #0x3c] - ldrh r4, [r0, #4] - lsls r2, r4, #0x16 - lsrs r2, r2, #0x16 - movs r5, #8 - ldrsh r1, [r3, r5] - lsls r1, r1, #4 - adds r2, r2, r1 - ldr r3, _0810A2A8 - adds r1, r3, #0 - ands r2, r1 - ldr r1, _0810A2AC - ands r1, r4 - orrs r1, r2 - strh r1, [r0, #4] - ldr r1, _0810A2B0 - str r1, [r0, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810A2A4: .4byte gUnknown_20380BE -_0810A2A8: .4byte 0x000003FF -_0810A2AC: .4byte 0xFFFFFC00 -_0810A2B0: .4byte sub_0810A2B4 - thumb_func_end sub_0810A260 - - thumb_func_start sub_0810A2B4 -sub_0810A2B4: @ 0x0810A2B4 - push {r4, lr} - adds r2, r0, #0 - movs r1, #0x2e - ldrsh r0, [r2, r1] - cmp r0, #1 - beq _0810A2E6 - cmp r0, #1 - bgt _0810A2CA - cmp r0, #0 - beq _0810A2D0 - b _0810A344 -_0810A2CA: - cmp r0, #2 - beq _0810A304 - b _0810A344 -_0810A2D0: - ldrh r1, [r2, #0x3a] - movs r3, #0x3a - ldrsh r0, [r2, r3] - cmp r0, #0 - beq _0810A2E0 - subs r0, r1, #1 - strh r0, [r2, #0x3a] - b _0810A344 -_0810A2E0: - ldrh r0, [r2, #0x2e] - adds r0, #1 - strh r0, [r2, #0x2e] -_0810A2E6: - ldrh r0, [r2, #0x22] - adds r0, #8 - strh r0, [r2, #0x22] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrh r3, [r2, #0x3c] - movs r4, #0x3c - ldrsh r1, [r2, r4] - cmp r0, r1 - blt _0810A344 - strh r3, [r2, #0x22] - ldrh r0, [r2, #0x2e] - adds r0, #1 - strh r0, [r2, #0x2e] - b _0810A344 -_0810A304: - ldrh r0, [r2, #0x30] - adds r0, #1 - strh r0, [r2, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _0810A330 - movs r0, #0 - strh r0, [r2, #0x30] - ldrh r0, [r2, #0x32] - adds r0, #1 - strh r0, [r2, #0x32] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0810A32C - ldr r0, _0810A328 - b _0810A32E - .align 2, 0 -_0810A328: .4byte 0x0000FFFD -_0810A32C: - movs r0, #3 -_0810A32E: - strh r0, [r2, #0x26] -_0810A330: - ldrh r0, [r2, #0x34] - adds r0, #1 - strh r0, [r2, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x10 - ble _0810A344 - adds r0, r2, #0 - bl DestroyAnimSprite -_0810A344: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0810A2B4 - - thumb_func_start sub_0810A34C -sub_0810A34C: @ 0x0810A34C - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - cmp r0, #1 - beq _0810A3C0 - cmp r0, #1 - bgt _0810A362 - cmp r0, #0 - beq _0810A368 - b _0810A48E -_0810A362: - cmp r0, #2 - beq _0810A41E - b _0810A48E -_0810A368: - adds r0, r5, #0 - movs r1, #0 - bl InitSpritePosToAnimAttacker - ldr r4, _0810A390 - ldrb r1, [r4, #4] - adds r0, r5, #0 - bl StartSpriteAnim - ldrh r0, [r4, #4] - strh r0, [r5, #0x3c] - ldr r0, _0810A394 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810A398 - movs r0, #4 - b _0810A39A - .align 2, 0 -_0810A390: .4byte gUnknown_20380BE -_0810A394: .4byte gUnknown_20380D6 -_0810A398: - ldr r0, _0810A3B8 -_0810A39A: - strh r0, [r5, #0x36] - ldr r0, _0810A3BC - ldrb r0, [r0] - bl GetBattlerSpriteBGPriority - movs r1, #3 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r5, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #5] - b _0810A416 - .align 2, 0 -_0810A3B8: .4byte 0x0000FFFC -_0810A3BC: .4byte gUnknown_20380D7 -_0810A3C0: - ldrh r0, [r5, #0x30] - adds r0, #0xc0 - strh r0, [r5, #0x30] - ldr r0, _0810A3E0 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810A3E4 - ldrh r0, [r5, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - rsbs r0, r0, #0 - b _0810A3EA - .align 2, 0 -_0810A3E0: .4byte gUnknown_20380D6 -_0810A3E4: - ldrh r0, [r5, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 -_0810A3EA: - 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, #4 - movs r1, #0xff - ands r0, r1 - strh r0, [r5, #0x32] - ldrh r0, [r5, #0x34] - adds r0, #1 - strh r0, [r5, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - bne _0810A48E - movs r0, #0 - strh r0, [r5, #0x34] -_0810A416: - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] - b _0810A48E -_0810A41E: - 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, #4 - movs r1, #0xff - ands r0, r1 - strh r0, [r5, #0x32] - ldrh r0, [r5, #0x34] - adds r0, #1 - strh r0, [r5, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1f - bne _0810A48E - ldrh r0, [r5, #0x20] - adds r1, r2, r0 - strh r1, [r5, #0x20] - ldrh r0, [r5, #0x26] - ldrh r2, [r5, #0x22] - adds r0, r0, r2 - strh r0, [r5, #0x22] - strh r3, [r5, #0x26] - strh r3, [r5, #0x24] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r5, #0x2e] - strh r1, [r5, #0x30] - ldr r4, _0810A494 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x32] - ldrh r0, [r5, #0x22] - strh r0, [r5, #0x34] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x36] - adds r0, r5, #0 - bl sub_080A689C - ldr r0, _0810A498 - str r0, [r5, #0x1c] -_0810A48E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810A494: .4byte gUnknown_20380D7 -_0810A498: .4byte sub_0810A49C - thumb_func_end sub_0810A34C - - thumb_func_start sub_0810A49C -sub_0810A49C: @ 0x0810A49C - push {r4, lr} - adds r4, r0, #0 - bl AnimTranslateLinear - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810A4F4 - movs r1, #0x38 - ldrsh r0, [r4, r1] - movs r1, #0x10 - bl Sin - ldrh r1, [r4, #0x24] - adds r0, r0, r1 - strh r0, [r4, #0x24] - ldrh r2, [r4, #0x38] - adds r0, r2, #4 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x38] - ldrh r0, [r4, #0x38] - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - cmp r2, #0 - beq _0810A4D2 - cmp r2, #0xc4 - ble _0810A4FA -_0810A4D2: - lsls r0, r0, #0x10 - cmp r0, #0 - ble _0810A4FA - movs r1, #0x3c - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0810A4FA - ldr r0, _0810A4F0 - movs r1, #0 - ldrsb r1, [r0, r1] - movs r0, #0x90 - bl PlaySE12WithPanning - b _0810A4FA - .align 2, 0 -_0810A4F0: .4byte gUnknown_20380E0 -_0810A4F4: - adds r0, r4, #0 - bl DestroyAnimSprite -_0810A4FA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0810A49C - - thumb_func_start sub_0810A500 -sub_0810A500: @ 0x0810A500 - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x2e] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _0810A518 - ldr r0, _0810A584 - ldrh r0, [r0] - strh r0, [r4, #0x30] - adds r0, r1, #1 - strh r0, [r4, #0x2e] -_0810A518: - movs r0, #0xc0 - lsls r0, r0, #1 - adds r1, r0, #0 - ldrh r2, [r4, #0x34] - adds r1, 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, r1, #0x10 - asrs r1, r1, #0x18 - bl Sin - strh r0, [r4, #0x24] - movs r1, #0x30 - ldrsh r0, [r4, r1] - ldrh r1, [r4, #0x36] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - bl Cos - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x30] - adds r0, #7 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x30] - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810A5B4 - ldrh r0, [r4, #0x30] - subs r0, #0x40 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x83 - bls _0810A58C - ldr r0, _0810A588 - ldrb r0, [r0] - bl GetBattlerSpriteBGPriority - movs r1, #3 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r4, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #5] - b _0810A5D0 - .align 2, 0 -_0810A584: .4byte gUnknown_20380BE -_0810A588: .4byte gUnknown_20380D7 -_0810A58C: - ldr r0, _0810A5B0 - ldrb r0, [r0] - bl GetBattlerSpriteBGPriority - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #1 - movs r1, #3 - ands r0, r1 - lsls r0, r0, #2 - ldrb r2, [r4, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #5] - b _0810A5D0 - .align 2, 0 -_0810A5B0: .4byte gUnknown_20380D7 -_0810A5B4: - ldrh r0, [r4, #0x30] - subs r0, #0x40 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x83 - bls _0810A5C8 - adds r1, r4, #0 - adds r1, #0x43 - movs r0, #0x1d - b _0810A5CE -_0810A5C8: - adds r1, r4, #0 - adds r1, #0x43 - movs r0, #0x1f -_0810A5CE: - strb r0, [r1] -_0810A5D0: - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x14 - ble _0810A5F8 - adds r3, r4, #0 - adds r3, #0x3e - ldrb r2, [r3] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_0810A5F8: - movs r2, #0x32 - ldrsh r0, [r4, r2] - cmp r0, #0x1e - bne _0810A606 - adds r0, r4, #0 - bl DestroyAnimSprite -_0810A606: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0810A500 - - thumb_func_start sub_0810A60C -sub_0810A60C: @ 0x0810A60C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _0810A66C - adds r4, r1, r0 - ldr r0, _0810A670 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - movs r2, #1 - rsbs r2, r2, #0 - adds r1, r2, #0 - cmp r0, #0 - bne _0810A632 - movs r1, #1 -_0810A632: - strh r1, [r4, #0x20] - ldr r0, _0810A674 - ldrb r1, [r0] - movs r0, #2 - eors r0, r1 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #1 - strh r0, [r4, #0x22] - movs r0, #1 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x24] - movs r0, #3 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x26] - ldr r0, _0810A678 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810A66C: .4byte gUnknown_3005B60 -_0810A670: .4byte gUnknown_20380D6 -_0810A674: .4byte gUnknown_20380D7 -_0810A678: .4byte sub_0810A67C - thumb_func_end sub_0810A60C - - thumb_func_start sub_0810A67C -sub_0810A67C: @ 0x0810A67C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _0810A6A0 - adds r2, r0, r1 - movs r0, #8 - ldrsh r3, [r2, r0] - cmp r3, #1 - beq _0810A744 - cmp r3, #1 - bgt _0810A6A4 - cmp r3, #0 - beq _0810A6B2 - b _0810A8A4 - .align 2, 0 -_0810A6A0: .4byte gUnknown_3005B60 -_0810A6A4: - cmp r3, #2 - bne _0810A6AA - b _0810A7CC -_0810A6AA: - cmp r3, #3 - bne _0810A6B0 - b _0810A860 -_0810A6B0: - b _0810A8A4 -_0810A6B2: - movs r1, #0x20 - ldrsh r0, [r2, r1] - lsls r0, r0, #1 - ldrh r5, [r2, #0x1c] - adds r0, r0, r5 - strh r0, [r2, #0x1c] - ldrh r0, [r2, #0xa] - adds r0, #1 - strh r0, [r2, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _0810A6E4 - strh r3, [r2, #0xa] - ldrh r0, [r2, #0xc] - adds r0, #1 - strh r0, [r2, #0xc] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0810A6E0 - movs r0, #2 - b _0810A6E2 -_0810A6E0: - ldr r0, _0810A73C -_0810A6E2: - strh r0, [r2, #0x1e] -_0810A6E4: - movs r1, #0 - strh r1, [r2, #0xe] - movs r7, #0x22 - ldrsh r0, [r2, r7] - cmp r1, r0 - bge _0810A726 - ldr r4, _0810A740 - adds r3, r2, #0 - adds r3, #8 -_0810A6F6: - movs r1, #0xe - ldrsh r0, [r2, r1] - adds r0, #0xe - lsls r0, r0, #1 - adds r0, r3, r0 - movs r5, #0 - ldrsh r0, [r0, r5] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrh r0, [r2, #0x1e] - ldrh r7, [r2, #0x1c] - adds r0, r0, r7 - strh r0, [r1, #0x24] - ldrh r0, [r2, #0xe] - adds r0, #1 - strh r0, [r2, #0xe] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r5, #0x22 - ldrsh r1, [r2, r5] - cmp r0, r1 - blt _0810A6F6 -_0810A726: - ldrh r0, [r2, #0x1a] - adds r0, #1 - strh r0, [r2, #0x1a] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x10 - beq _0810A736 - b _0810A8A4 -_0810A736: - movs r0, #0 - strh r0, [r2, #0x1a] - b _0810A850 - .align 2, 0 -_0810A73C: .4byte 0x0000FFFE -_0810A740: .4byte gUnknown_20205AC -_0810A744: - ldrh r0, [r2, #0xa] - adds r0, #1 - strh r0, [r2, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - ble _0810A76C - movs r0, #0 - strh r0, [r2, #0xa] - ldrh r0, [r2, #0xc] - adds r0, #1 - strh r0, [r2, #0xc] - ands r0, r3 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0810A768 - movs r0, #2 - b _0810A76A -_0810A768: - ldr r0, _0810A7C4 -_0810A76A: - strh r0, [r2, #0x1e] -_0810A76C: - movs r1, #0 - strh r1, [r2, #0xe] - movs r7, #0x22 - ldrsh r0, [r2, r7] - cmp r1, r0 - bge _0810A7AE - ldr r4, _0810A7C8 - adds r3, r2, #0 - adds r3, #8 -_0810A77E: - movs r1, #0xe - ldrsh r0, [r2, r1] - adds r0, #0xe - lsls r0, r0, #1 - adds r0, r3, r0 - movs r5, #0 - ldrsh r0, [r0, r5] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrh r0, [r2, #0x1e] - ldrh r7, [r2, #0x1c] - adds r0, r0, r7 - strh r0, [r1, #0x24] - ldrh r0, [r2, #0xe] - adds r0, #1 - strh r0, [r2, #0xe] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r5, #0x22 - ldrsh r1, [r2, r5] - cmp r0, r1 - blt _0810A77E -_0810A7AE: - ldrh r0, [r2, #0x1a] - adds r0, #1 - strh r0, [r2, #0x1a] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x60 - bne _0810A8A4 - movs r0, #0 - strh r0, [r2, #0x1a] - b _0810A850 - .align 2, 0 -_0810A7C4: .4byte 0x0000FFFE -_0810A7C8: .4byte gUnknown_20205AC -_0810A7CC: - movs r7, #0x20 - ldrsh r1, [r2, r7] - lsls r1, r1, #1 - ldrh r0, [r2, #0x1c] - subs r0, r0, r1 - strh r0, [r2, #0x1c] - ldrh r0, [r2, #0xa] - adds r0, #1 - strh r0, [r2, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _0810A800 - movs r0, #0 - strh r0, [r2, #0xa] - ldrh r0, [r2, #0xc] - adds r0, #1 - strh r0, [r2, #0xc] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0810A7FC - strh r3, [r2, #0x1e] - b _0810A800 -_0810A7FC: - ldr r0, _0810A858 - strh r0, [r2, #0x1e] -_0810A800: - movs r1, #0 - strh r1, [r2, #0xe] - movs r3, #0x22 - ldrsh r0, [r2, r3] - cmp r1, r0 - bge _0810A842 - ldr r4, _0810A85C - adds r3, r2, #0 - adds r3, #8 -_0810A812: - movs r5, #0xe - ldrsh r0, [r2, r5] - adds r0, #0xe - lsls r0, r0, #1 - adds r0, r3, r0 - movs r7, #0 - ldrsh r0, [r0, r7] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrh r0, [r2, #0x1e] - ldrh r5, [r2, #0x1c] - adds r0, r0, r5 - strh r0, [r1, #0x24] - ldrh r0, [r2, #0xe] - adds r0, #1 - strh r0, [r2, #0xe] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r7, #0x22 - ldrsh r1, [r2, r7] - cmp r0, r1 - blt _0810A812 -_0810A842: - ldrh r0, [r2, #0x1a] - adds r0, #1 - strh r0, [r2, #0x1a] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x10 - bne _0810A8A4 -_0810A850: - ldrh r0, [r2, #8] - adds r0, #1 - strh r0, [r2, #8] - b _0810A8A4 - .align 2, 0 -_0810A858: .4byte 0x0000FFFE -_0810A85C: .4byte gUnknown_20205AC -_0810A860: - movs r1, #0 - strh r1, [r2, #0xe] - movs r3, #0x22 - ldrsh r0, [r2, r3] - cmp r1, r0 - bge _0810A89E - ldr r6, _0810A8AC - adds r3, r2, #0 - adds r3, #8 - movs r5, #0 -_0810A874: - movs r7, #0xe - ldrsh r0, [r2, r7] - adds r0, #0xe - lsls r0, r0, #1 - adds r0, r3, r0 - movs r7, #0 - ldrsh r1, [r0, r7] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - strh r5, [r0, #0x24] - ldrh r0, [r2, #0xe] - adds r0, #1 - strh r0, [r2, #0xe] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r7, #0x22 - ldrsh r1, [r2, r7] - cmp r0, r1 - blt _0810A874 -_0810A89E: - adds r0, r4, #0 - bl DestroyAnimVisualTask -_0810A8A4: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0810A8AC: .4byte gUnknown_20205AC - thumb_func_end sub_0810A67C - - thumb_func_start AnimTask_BlendBackground -AnimTask_BlendBackground: @ 0x0810A8B0 - push {r4, lr} - sub sp, #0x10 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r0, sp - bl sub_080A63F8 - mov r0, sp - ldrb r0, [r0, #8] - lsls r0, r0, #4 - ldr r1, _0810A8E0 - ldrb r2, [r1] - ldrh r3, [r1, #2] - movs r1, #0x10 - bl BlendPalette - adds r0, r4, #0 - bl DestroyAnimVisualTask - add sp, #0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810A8E0: .4byte gUnknown_20380BE - thumb_func_end AnimTask_BlendBackground - - thumb_func_start sub_0810A8E4 -sub_0810A8E4: @ 0x0810A8E4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r1, _0810A93C - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r2, r0, r1 - movs r3, #8 - ldrsh r0, [r2, r3] - mov sb, r1 - ldr r4, _0810A940 - mov r8, r4 - cmp r0, #0 - bne _0810A91A - ldrh r0, [r4] - strh r0, [r2, #0xa] - ldrh r0, [r4, #2] - strh r0, [r2, #0xc] - ldrh r0, [r4, #4] - strh r0, [r2, #0xe] - ldrh r0, [r4, #6] - strh r0, [r2, #0x10] -_0810A91A: - ldrh r0, [r2, #8] - adds r0, #1 - strh r0, [r2, #8] - ldr r1, _0810A944 - ldr r0, _0810A948 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r6, [r0] - movs r5, #0x10 - ldrsh r0, [r2, r5] - cmp r0, #0 - bne _0810A950 - ldr r4, _0810A94C - movs r1, #8 - ldrsh r0, [r2, r1] - b _0810A956 - .align 2, 0 -_0810A93C: .4byte gUnknown_3005B60 -_0810A940: .4byte gUnknown_20380BE -_0810A944: .4byte gUnknown_2023E88 -_0810A948: .4byte gUnknown_20380D7 -_0810A94C: .4byte gUnknown_8571268 -_0810A950: - ldr r4, _0810A99C - movs r3, #8 - ldrsh r0, [r2, r3] -_0810A956: - movs r1, #0xa - bl __modsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r0, r0, r4 - ldrb r5, [r0] - lsls r0, r7, #2 - adds r1, r0, r7 - lsls r1, r1, #3 - add r1, sb - movs r4, #0xe - ldrsh r1, [r1, r4] - mov ip, r0 - cmp r1, #1 - bne _0810A9A4 - ldr r2, _0810A9A0 - lsls r3, r6, #4 - adds r0, r3, r6 - lsls r0, r0, #2 - adds r0, r0, r2 - mov sl, r0 - mov r0, r8 - movs r4, #2 - ldrsh r1, [r0, r4] - lsls r0, r5, #0x18 - asrs r0, r0, #0x18 - muls r0, r1, r0 - cmp r0, #0 - bge _0810A994 - rsbs r0, r0, #0 -_0810A994: - mov r5, sl - strh r0, [r5, #0x26] - b _0810A9BE - .align 2, 0 -_0810A99C: .4byte gUnknown_8571278 -_0810A9A0: .4byte gUnknown_20205AC -_0810A9A4: - ldr r3, _0810A9F4 - lsls r4, r6, #4 - adds r2, r4, r6 - lsls r2, r2, #2 - adds r2, r2, r3 - lsls r0, r5, #0x18 - asrs r0, r0, #0x18 - mov r5, r8 - ldrh r1, [r5, #2] - muls r0, r1, r0 - strh r0, [r2, #0x24] - adds r2, r3, #0 - adds r3, r4, #0 -_0810A9BE: - mov r1, ip - adds r0, r1, r7 - lsls r0, r0, #3 - add r0, sb - movs r4, #8 - ldrsh r1, [r0, r4] - movs r5, #0xa - ldrsh r0, [r0, r5] - cmp r1, r0 - bne _0810A9E4 - adds r0, r3, r6 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0 - strh r1, [r0, #0x24] - strh r1, [r0, #0x26] - adds r0, r7, #0 - bl DestroyAnimVisualTask -_0810A9E4: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0810A9F4: .4byte gUnknown_20205AC - thumb_func_end sub_0810A8E4 - - thumb_func_start sub_0810A9F8 -sub_0810A9F8: @ 0x0810A9F8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0810AA18 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810AA20 - ldr r0, _0810AA1C - ldrh r1, [r4, #0x20] - ldrh r2, [r0] - subs r1, r1, r2 - strh r1, [r4, #0x20] - b _0810AA2C - .align 2, 0 -_0810AA18: .4byte gUnknown_20380D6 -_0810AA1C: .4byte gUnknown_20380BE -_0810AA20: - ldr r1, _0810AA40 - ldrh r0, [r1] - ldrh r2, [r4, #0x20] - adds r0, r0, r2 - strh r0, [r4, #0x20] - adds r0, r1, #0 -_0810AA2C: - ldrh r0, [r0, #2] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] - ldr r0, _0810AA44 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810AA40: .4byte gUnknown_20380BE -_0810AA44: .4byte sub_0810AA48 - thumb_func_end sub_0810A9F8 - - thumb_func_start sub_0810AA48 -sub_0810AA48: @ 0x0810AA48 - push {lr} - adds r2, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0810AA5E - adds r0, r2, #0 - bl DestroyAnimSprite -_0810AA5E: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0810AA48 - - thumb_func_start sub_0810AA64 -sub_0810AA64: @ 0x0810AA64 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0810AA84 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810AA8C - ldr r0, _0810AA88 - ldrh r1, [r4, #0x20] - ldrh r0, [r0] - subs r1, r1, r0 - strh r1, [r4, #0x20] - b _0810AA96 - .align 2, 0 -_0810AA84: .4byte gUnknown_20380D6 -_0810AA88: .4byte gUnknown_20380BE -_0810AA8C: - ldr r0, _0810AAA0 - ldrh r0, [r0] - ldrh r1, [r4, #0x20] - adds r0, r0, r1 - strh r0, [r4, #0x20] -_0810AA96: - ldr r0, _0810AAA4 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810AAA0: .4byte gUnknown_20380BE -_0810AAA4: .4byte sub_0810AAA8 - thumb_func_end sub_0810AA64 - - thumb_func_start sub_0810AAA8 -sub_0810AAA8: @ 0x0810AAA8 - push {lr} - adds r2, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0810AABE - adds r0, r2, #0 - bl DestroySpriteAndMatrix -_0810AABE: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0810AAA8 - - thumb_func_start sub_0810AAC4 -sub_0810AAC4: @ 0x0810AAC4 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0810AB08 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - ldr r0, _0810AB0C - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810AB14 - ldr r2, _0810AB10 - ldrh r0, [r5, #0x20] - ldrh r1, [r2] - subs r0, r0, r1 - strh r0, [r5, #0x20] - ldrh r0, [r5, #0x22] - ldrh r1, [r2, #2] - subs r0, r0, r1 - strh r0, [r5, #0x22] - b _0810AB28 - .align 2, 0 -_0810AB08: .4byte gUnknown_20380D7 -_0810AB0C: .4byte gUnknown_20380D6 -_0810AB10: .4byte gUnknown_20380BE -_0810AB14: - ldr r0, _0810AB4C - ldrh r1, [r0] - ldrh r2, [r5, #0x20] - adds r1, r1, r2 - strh r1, [r5, #0x20] - ldrh r1, [r0, #2] - ldrh r2, [r5, #0x22] - adds r1, r1, r2 - strh r1, [r5, #0x22] - adds r2, r0, #0 -_0810AB28: - movs r0, #0 - strh r0, [r5, #0x2e] - ldrh r0, [r2, #4] - strh r0, [r5, #0x30] - ldrh r0, [r2, #6] - strh r0, [r5, #0x32] - ldrh r0, [r2, #8] - strh r0, [r5, #0x34] - ldr r1, _0810AB50 - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _0810AB54 - str r0, [r5, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810AB4C: .4byte gUnknown_20380BE -_0810AB50: .4byte DestroySpriteAndMatrix -_0810AB54: .4byte TranslateSpriteInCircleOverDuration - thumb_func_end sub_0810AAC4 - - thumb_func_start sub_0810AB58 -sub_0810AB58: @ 0x0810AB58 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldr r0, _0810AB70 - movs r1, #8 - ldrsh r0, [r0, r1] - cmp r0, #1 - beq _0810ABD0 - cmp r0, #1 - bgt _0810AB74 - cmp r0, #0 - beq _0810AB7E - b _0810ABD0 - .align 2, 0 -_0810AB70: .4byte gUnknown_20380BE -_0810AB74: - cmp r0, #2 - beq _0810AB88 - cmp r0, #3 - beq _0810ABAC - b _0810ABD0 -_0810AB7E: - ldr r0, _0810AB84 - b _0810ABD2 - .align 2, 0 -_0810AB84: .4byte gUnknown_20380D6 -_0810AB88: - ldr r4, _0810ABA0 - ldrb r0, [r4] - movs r6, #2 - eors r0, r6 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810ABA4 - ldrb r4, [r4] - b _0810ABD4 - .align 2, 0 -_0810ABA0: .4byte gUnknown_20380D6 -_0810ABA4: - ldrb r0, [r4] - adds r4, r6, #0 - eors r4, r0 - b _0810ABD4 -_0810ABAC: - ldr r0, _0810ABC8 - ldrb r0, [r0] - movs r4, #2 - eors r0, r4 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810ABD0 - ldr r0, _0810ABCC - ldrb r0, [r0] - eors r4, r0 - b _0810ABD4 - .align 2, 0 -_0810ABC8: .4byte gUnknown_20380D6 -_0810ABCC: .4byte gUnknown_20380D7 -_0810ABD0: - ldr r0, _0810ABF4 -_0810ABD2: - ldrb r4, [r0] -_0810ABD4: - ldr r0, _0810ABF8 - movs r2, #0xa - ldrsh r0, [r0, r2] - cmp r0, #0 - bne _0810ABFC - adds r0, r4, #0 - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - adds r0, r4, #0 - movs r1, #1 - b _0810AC0E - .align 2, 0 -_0810ABF4: .4byte gUnknown_20380D7 -_0810ABF8: .4byte gUnknown_20380BE -_0810ABFC: - adds r0, r4, #0 - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - adds r0, r4, #0 - movs r1, #3 -_0810AC0E: - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - ldr r7, _0810ACAC - ldr r6, _0810ACB0 - movs r1, #0 - ldrsh r0, [r6, r1] - lsls r0, r0, #1 - adds r0, r0, r7 - movs r2, #0 - ldrsh r1, [r0, r2] - movs r2, #2 - ldrsh r0, [r6, r2] - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r5, #0x24] - movs r1, #0 - ldrsh r0, [r6, r1] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r7 - movs r2, #0 - ldrsh r1, [r0, r2] - movs r2, #2 - ldrsh r0, [r6, r2] - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r5, #0x26] - ldrh r1, [r6, #0xc] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0810AC72 - adds r0, r4, #0 - bl GetBattlerSpriteBGPriority - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #1 - movs r1, #3 - ands r0, r1 - lsls r0, r0, #2 - ldrb r2, [r5, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, #5] -_0810AC72: - ldrb r2, [r5, #3] - lsls r2, r2, #0x1a - lsrs r2, r2, #0x1b - movs r0, #4 - ldrsh r1, [r6, r0] - lsls r0, r1, #1 - adds r0, r0, r7 - ldrh r0, [r0] - ldr r3, _0810ACB4 - lsls r2, r2, #3 - adds r2, r2, r3 - adds r1, #0x40 - lsls r1, r1, #1 - adds r1, r1, r7 - ldrh r1, [r1] - strh r1, [r2, #6] - strh r1, [r2] - strh r0, [r2, #2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - rsbs r0, r0, #0 - strh r0, [r2, #4] - ldrh r0, [r6, #6] - strh r0, [r5, #0x2e] - ldr r0, _0810ACB8 - str r0, [r5, #0x1c] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0810ACAC: .4byte gUnknown_82FA8CC -_0810ACB0: .4byte gUnknown_20380BE -_0810ACB4: .4byte gUnknown_2021B3C -_0810ACB8: .4byte sub_0810EB18 - thumb_func_end sub_0810AB58 - - thumb_func_start sub_0810ACBC -sub_0810ACBC: @ 0x0810ACBC - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldr r5, _0810AD30 - ldrh r0, [r5, #6] - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x20] - strh r0, [r4, #0x30] - ldr r6, _0810AD34 - ldrb r0, [r6] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x32] - ldrh r0, [r4, #0x22] - strh r0, [r4, #0x34] - ldrb r0, [r6] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl InitAnimLinearTranslation - ldrh r0, [r5, #4] - strh r0, [r4, #0x38] - ldrh r0, [r5, #0xa] - strh r0, [r4, #0x3a] - ldrh r0, [r5, #8] - strh r0, [r4, #0x3c] - ldrh r2, [r4, #4] - lsls r1, r2, #0x16 - lsrs r1, r1, #0x16 - movs r3, #0xc - ldrsh r0, [r5, r3] - lsls r0, r0, #2 - adds r1, r1, r0 - ldr r3, _0810AD38 - adds r0, r3, #0 - ands r1, r0 - ldr r0, _0810AD3C - ands r0, r2 - orrs r0, r1 - strh r0, [r4, #4] - ldr r1, _0810AD40 - str r1, [r4, #0x1c] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0810AD30: .4byte gUnknown_20380BE -_0810AD34: .4byte gUnknown_20380D7 -_0810AD38: .4byte 0x000003FF -_0810AD3C: .4byte 0xFFFFFC00 -_0810AD40: .4byte sub_0810AD44 - thumb_func_end sub_0810ACBC - - thumb_func_start sub_0810AD44 -sub_0810AD44: @ 0x0810AD44 - push {r4, lr} - adds r4, r0, #0 - bl AnimTranslateLinear - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810ADAE - movs r1, #0x3c - ldrsh r0, [r4, r1] - movs r2, #0x38 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, #0x24] - adds r0, 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, r0, r1 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x3a] - ldrh r2, [r4, #0x3c] - adds r0, r0, r2 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x3c] - movs r1, #0x3c - ldrsh r0, [r4, r1] - movs r1, #3 - bl __modsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0810ADB4 - adds r3, r4, #0 - adds r3, #0x3e - ldrb r2, [r3] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _0810ADB4 -_0810ADAE: - adds r0, r4, #0 - bl DestroyAnimSprite -_0810ADB4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0810AD44 - - thumb_func_start sub_0810ADBC -sub_0810ADBC: @ 0x0810ADBC - push {lr} - adds r3, r0, #0 - ldrh r0, [r3, #0x38] - subs r0, #1 - strh r0, [r3, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _0810ADF4 - movs r0, #0x3e - adds r0, r0, r3 - mov ip, r0 - ldrb r2, [r0] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - ldrh r0, [r3, #0x36] - strh r0, [r3, #0x38] -_0810ADF4: - ldrh r0, [r3, #0x34] - subs r1, r0, #1 - strh r1, [r3, #0x34] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _0810AE06 - adds r0, r3, #0 - bl DestroyAnimSprite -_0810AE06: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0810ADBC - - thumb_func_start sub_0810AE0C -sub_0810AE0C: @ 0x0810AE0C - push {r4, r5, r6, lr} - adds r6, r0, #0 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810AE28 - ldr r0, _0810AE6C - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810AE30 -_0810AE28: - ldr r1, _0810AE70 - ldrh r0, [r1, #2] - rsbs r0, r0, #0 - strh r0, [r1, #2] -_0810AE30: - ldr r5, _0810AE6C - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - ldr r4, _0810AE70 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #2] - adds r0, r0, r1 - strh r0, [r6, #0x20] - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #4] - adds r0, r0, r1 - strh r0, [r6, #0x22] - ldrh r0, [r4] - strh r0, [r6, #0x34] - ldrh r0, [r4, #6] - strh r0, [r6, #0x36] - strh r0, [r6, #0x38] - ldr r0, _0810AE74 - str r0, [r6, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0810AE6C: .4byte gUnknown_20380D7 -_0810AE70: .4byte gUnknown_20380BE -_0810AE74: .4byte sub_0810ADBC - thumb_func_end sub_0810AE0C - - thumb_func_start sub_0810AE78 -sub_0810AE78: @ 0x0810AE78 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r1, _0810AE94 - ldrh r0, [r1, #6] - strh r0, [r5, #0x2e] - movs r2, #0xe - ldrsh r0, [r1, r2] - movs r1, #0x80 - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - beq _0810AE9C - ldr r0, _0810AE98 - b _0810AE9E - .align 2, 0 -_0810AE94: .4byte gUnknown_20380BE -_0810AE98: .4byte gUnknown_20380D7 -_0810AE9C: - ldr r0, _0810AF24 -_0810AE9E: - ldrb r6, [r0] - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810AEB6 - adds r0, r6, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810AEBE -_0810AEB6: - ldr r1, _0810AF28 - ldrh r0, [r1] - rsbs r0, r0, #0 - strh r0, [r1] -_0810AEBE: - adds r0, r6, #0 - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - ldr r4, _0810AF28 - lsrs r0, r0, #0x18 - ldrh r3, [r4] - adds r0, r0, r3 - strh r0, [r5, #0x20] - adds r0, r6, #0 - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #2] - adds r0, r0, r1 - strh r0, [r5, #0x22] - ldrh r1, [r4, #0xe] - ldr r0, _0810AF2C - ands r0, r1 - strh r0, [r5, #0x36] - ldrh r0, [r4, #4] - strh r0, [r5, #0x38] - ldrh r0, [r4, #0xa] - strh r0, [r5, #0x3a] - ldrh r0, [r4, #8] - strh r0, [r5, #0x3c] - ldrh r2, [r5, #4] - lsls r1, r2, #0x16 - lsrs r1, r1, #0x16 - movs r3, #0xc - ldrsh r0, [r4, r3] - lsls r0, r0, #2 - adds r1, r1, r0 - ldr r3, _0810AF30 - adds r0, r3, #0 - ands r1, r0 - ldr r0, _0810AF34 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, #4] - ldr r1, _0810AF38 - str r1, [r5, #0x1c] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0810AF24: .4byte gUnknown_20380D6 -_0810AF28: .4byte gUnknown_20380BE -_0810AF2C: .4byte 0x00007FFF -_0810AF30: .4byte 0x000003FF -_0810AF34: .4byte 0xFFFFFC00 -_0810AF38: .4byte sub_0810AF3C - thumb_func_end sub_0810AE78 - - thumb_func_start sub_0810AF3C -sub_0810AF3C: @ 0x0810AF3C - 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, 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 _0810AF92 - adds r3, r4, #0 - adds r3, #0x3e - ldrb r2, [r3] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_0810AF92: - ldrh r0, [r4, #0x2e] - subs r1, r0, #1 - strh r1, [r4, #0x2e] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _0810AFA4 - adds r0, r4, #0 - bl DestroyAnimSprite -_0810AFA4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0810AF3C - - thumb_func_start sub_0810AFAC -sub_0810AFAC: @ 0x0810AFAC - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0 - bl InitSpritePosToAnimTarget - ldrh r2, [r4, #4] - lsls r1, r2, #0x16 - lsrs r1, r1, #0x16 - ldr r3, _0810AFE8 - movs r5, #6 - ldrsh r0, [r3, r5] - lsls r0, r0, #2 - adds r1, r1, r0 - ldr r5, _0810AFEC - adds r0, r5, #0 - ands r1, r0 - ldr r0, _0810AFF0 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, #4] - movs r1, #6 - ldrsh r0, [r3, r1] - cmp r0, #1 - bne _0810AFF4 - ldrb r0, [r4, #3] - movs r1, #0x3f - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #0x10 - b _0810B002 - .align 2, 0 -_0810AFE8: .4byte gUnknown_20380BE -_0810AFEC: .4byte 0x000003FF -_0810AFF0: .4byte 0xFFFFFC00 -_0810AFF4: - cmp r0, #2 - bne _0810B006 - ldrb r0, [r4, #3] - movs r1, #0x3f - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #0x20 -_0810B002: - orrs r1, r0 - strb r1, [r4, #3] -_0810B006: - ldr r0, _0810B020 - ldrh r0, [r0, #4] - strh r0, [r4, #0x2e] - ldr r0, _0810B024 - str r0, [r4, #0x1c] - ldr r1, _0810B028 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810B020: .4byte gUnknown_20380BE -_0810B024: .4byte WaitAnimForDuration -_0810B028: .4byte DestroyAnimSprite - thumb_func_end sub_0810AFAC - - thumb_func_start sub_0810B02C -sub_0810B02C: @ 0x0810B02C - push {r4, r5, r6, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r6, _0810B074 - ldrb r0, [r6] - movs r1, #0 - bl GetBattlerSpriteCoord - ldr r1, _0810B078 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - adds r4, r4, r1 - lsls r0, r0, #0x18 - ldr r5, _0810B07C - lsrs r0, r0, #0x18 - ldrh r1, [r5] - adds r0, r0, r1 - strh r0, [r4, #8] - ldrb r0, [r6] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r5, #2] - adds r0, r0, r1 - strh r0, [r4, #0xa] - ldrh r0, [r5, #4] - strh r0, [r4, #0xc] - ldr r0, _0810B080 - str r0, [r4] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0810B074: .4byte gUnknown_20380D7 -_0810B078: .4byte gUnknown_3005B60 -_0810B07C: .4byte gUnknown_20380BE -_0810B080: .4byte sub_0810B084 - thumb_func_end sub_0810B02C - - thumb_func_start sub_0810B084 -sub_0810B084: @ 0x0810B084 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - movs r5, #0 - movs r7, #0 - ldr r1, _0810B0C4 - lsls r0, r0, #2 - add r0, sb - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r2, [r0, #0xc] - str r2, [sp] - ldrh r4, [r0, #8] - ldrh r6, [r0, #0xa] - movs r3, #0xc - ldrsh r0, [r0, r3] - mov sl, r1 - cmp r0, #0 - bne _0810B0C8 - movs r0, #0 - mov r8, r0 - movs r2, #1 - movs r1, #0x10 - mov ip, r1 - b _0810B0D2 - .align 2, 0 -_0810B0C4: .4byte gUnknown_3005B60 -_0810B0C8: - movs r2, #0x10 - mov ip, r2 - movs r3, #8 - mov r8, r3 - movs r2, #4 -_0810B0D2: - mov r0, sb - lsls r1, r0, #2 - adds r0, r1, r0 - lsls r0, r0, #3 - add r0, sl - movs r3, #0x1c - ldrsh r0, [r0, r3] - mov sl, r1 - cmp r0, #0xa - bhi _0810B1C8 - lsls r0, r0, #2 - ldr r1, _0810B0F0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0810B0F0: .4byte _0810B0F4 -_0810B0F4: @ jump table - .4byte _0810B120 @ case 0 - .4byte _0810B1C8 @ case 1 - .4byte _0810B134 @ case 2 - .4byte _0810B1C8 @ case 3 - .4byte _0810B154 @ case 4 - .4byte _0810B1C8 @ case 5 - .4byte _0810B16A @ case 6 - .4byte _0810B1C8 @ case 7 - .4byte _0810B18C @ case 8 - .4byte _0810B1C8 @ case 9 - .4byte _0810B1C0 @ case 10 -_0810B120: - ldr r0, _0810B130 - lsls r1, r4, #0x10 - asrs r1, r1, #0x10 - lsls r2, r6, #0x10 - asrs r2, r2, #0x10 - mov r4, ip - lsls r3, r4, #0x10 - b _0810B1A2 - .align 2, 0 -_0810B130: .4byte gUnknown_857140C -_0810B134: - mov r0, ip - lsls r3, r0, #0x11 - mov r1, r8 - adds r0, r1, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - ldr r0, _0810B150 - lsls r1, r4, #0x10 - asrs r1, r1, #0x10 - lsls r2, r6, #0x10 - asrs r2, r2, #0x10 - b _0810B1A2 - .align 2, 0 -_0810B150: .4byte gUnknown_857140C -_0810B154: - mov r3, ip - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - lsls r3, r0, #1 - adds r3, r3, r0 - lsls r0, r2, #1 - add r0, r8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - b _0810B196 -_0810B16A: - mov r0, ip - lsls r3, r0, #0x12 - lsls r0, r2, #1 - adds r0, r0, r2 - add r0, r8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - ldr r0, _0810B188 - lsls r1, r4, #0x10 - asrs r1, r1, #0x10 - lsls r2, r6, #0x10 - asrs r2, r2, #0x10 - b _0810B1A2 - .align 2, 0 -_0810B188: .4byte gUnknown_857140C -_0810B18C: - mov r1, ip - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - lsls r3, r0, #2 - adds r3, r3, r0 -_0810B196: - ldr r0, _0810B1BC - lsls r1, r4, #0x10 - asrs r1, r1, #0x10 - lsls r2, r6, #0x10 - asrs r2, r2, #0x10 - lsls r3, r3, #0x10 -_0810B1A2: - asrs r3, r3, #0x10 - adds r2, r2, r3 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - movs r3, #2 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - b _0810B1C8 - .align 2, 0 -_0810B1BC: .4byte gUnknown_857140C -_0810B1C0: - mov r0, sb - bl DestroyAnimVisualTask - b _0810B20C -_0810B1C8: - cmp r7, #0 - beq _0810B1FC - ldr r4, _0810B21C - lsls r3, r5, #4 - adds r3, r3, r5 - lsls r3, r3, #2 - adds r0, r3, r4 - ldrh r5, [r0, #4] - lsls r2, r5, #0x16 - lsrs r2, r2, #0x16 - add r2, r8 - ldr r6, _0810B220 - adds r1, r6, #0 - ands r2, r1 - ldr r1, _0810B224 - ands r1, r5 - orrs r1, r2 - strh r1, [r0, #4] - mov r1, sp - ldrh r1, [r1] - strh r1, [r0, #0x2e] - adds r4, #0x1c - adds r3, r3, r4 - ldr r1, [r3] - bl _call_via_r1 -_0810B1FC: - ldr r0, _0810B228 - mov r1, sl - add r1, sb - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x1c] - adds r0, #1 - strh r0, [r1, #0x1c] -_0810B20C: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0810B21C: .4byte gUnknown_20205AC -_0810B220: .4byte 0x000003FF -_0810B224: .4byte 0xFFFFFC00 -_0810B228: .4byte gUnknown_3005B60 - thumb_func_end sub_0810B084 - - thumb_func_start sub_0810B22C -sub_0810B22C: @ 0x0810B22C - push {lr} - adds r3, r0, #0 - movs r1, #0x2e - ldrsh r0, [r3, r1] - cmp r0, #0 - bne _0810B24E - ldrb r1, [r3, #1] - movs r2, #0x3f - adds r0, r2, #0 - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r3, #1] - ldrb r0, [r3, #3] - ands r2, r0 - strb r2, [r3, #3] - b _0810B262 -_0810B24E: - ldrb r2, [r3, #1] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3, #1] - ldrb r0, [r3, #3] - ands r1, r0 - movs r0, #0x40 - orrs r1, r0 - strb r1, [r3, #3] -_0810B262: - ldrh r0, [r3, #0x30] - adds r0, #1 - strh r0, [r3, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xf - bne _0810B276 - adds r0, r3, #0 - bl DestroySprite -_0810B276: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0810B22C - - thumb_func_start sub_0810B27C -sub_0810B27C: @ 0x0810B27C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r0, _0810B2E4 - ldrh r1, [r0] - ldrh r2, [r4, #0x20] - adds r1, r1, r2 - strh r1, [r4, #0x20] - ldrh r0, [r0, #2] - ldrh r3, [r4, #0x22] - adds r0, r0, r3 - strh r0, [r4, #0x22] - ldr r0, _0810B2E8 - adds r1, #0x20 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r7, #0x22 - ldrsh r2, [r4, r7] - adds r3, r4, #0 - adds r3, #0x43 - ldrb r3, [r3] - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _0810B2EC - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r6, r2, r3 - ldrh r5, [r6, #4] - lsls r1, r5, #0x16 - lsrs r1, r1, #0x16 - adds r1, #8 - ldr r7, _0810B2F0 - adds r0, r7, #0 - ands r1, r0 - ldr r0, _0810B2F4 - ands r0, r5 - orrs r0, r1 - strh r0, [r6, #4] - ldr r1, _0810B2F8 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - adds r3, #0x1c - adds r2, r2, r3 - ldr r0, _0810B2FC - str r0, [r2] - str r0, [r4, #0x1c] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0810B2E4: .4byte gUnknown_20380BE -_0810B2E8: .4byte gUnknown_8571424 -_0810B2EC: .4byte gUnknown_20205AC -_0810B2F0: .4byte 0x000003FF -_0810B2F4: .4byte 0xFFFFFC00 -_0810B2F8: .4byte gUnknown_203809E -_0810B2FC: .4byte sub_0810B300 - thumb_func_end sub_0810B27C - - thumb_func_start sub_0810B300 -sub_0810B300: @ 0x0810B300 - push {lr} - adds r3, r0, #0 - ldrh r0, [r3, #0x2e] - adds r0, #1 - strh r0, [r3, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - bne _0810B334 - movs r0, #0 - strh r0, [r3, #0x2e] - movs r0, #0x3e - adds r0, r0, r3 - mov ip, r0 - ldrb r2, [r0] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1] -_0810B334: - ldrh r0, [r3, #0x30] - adds r0, #1 - strh r0, [r3, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x33 - bne _0810B348 - adds r0, r3, #0 - bl DestroyAnimSprite -_0810B348: - pop {r0} - bx r0 - thumb_func_end sub_0810B300 - - thumb_func_start sub_0810B34C -sub_0810B34C: @ 0x0810B34C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _0810B36C - adds r5, r1, r0 - ldr r0, _0810B370 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _0810B378 - ldr r4, _0810B374 - b _0810B37A - .align 2, 0 -_0810B36C: .4byte gUnknown_3005B60 -_0810B370: .4byte gUnknown_20380BE -_0810B374: .4byte gUnknown_20380D6 -_0810B378: - ldr r4, _0810B3BC -_0810B37A: - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x24] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x26] - ldr r2, _0810B3C0 - ldrh r0, [r2, #2] - 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, #6] - strh r0, [r5, #0x1e] - strh r1, [r5, #0x20] - ldrh r0, [r2, #4] - strh r0, [r5, #0x22] - ldr r0, _0810B3C4 - str r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810B3BC: .4byte gUnknown_20380D7 -_0810B3C0: .4byte gUnknown_20380BE -_0810B3C4: .4byte sub_0810B3C8 - thumb_func_end sub_0810B34C - - thumb_func_start sub_0810B3C8 -sub_0810B3C8: @ 0x0810B3C8 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r2, r6, #0 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _0810B4B0 - adds r5, r0, r1 - movs r1, #0x14 - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _0810B4C8 - ldrh r0, [r5, #0x20] - adds r0, #1 - movs r7, #0 - strh r0, [r5, #0x20] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x22 - ldrsh r1, [r5, r2] - cmp r0, r1 - ble _0810B4D6 - strh r7, [r5, #0x20] - ldr r0, _0810B4B4 - movs r3, #0x24 - ldrsh r1, [r5, r3] - movs r3, #0x26 - ldrsh r2, [r5, r3] - movs r3, #2 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _0810B4D6 - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _0810B4B8 - adds r4, r4, r0 - ldr r1, _0810B4BC - movs r2, #0x1a - ldrsh r0, [r5, r2] - lsls r0, r0, #1 - adds r0, r0, r1 - movs r3, #0 - ldrsb r3, [r0, r3] - ldrh r0, [r4, #0x20] - adds r3, r3, r0 - strh r3, [r4, #0x20] - movs r2, #0x1a - ldrsh r0, [r5, r2] - lsls r0, r0, #1 - adds r1, #1 - adds r0, r0, r1 - movs r2, #0 - ldrsb r2, [r0, r2] - ldrh r0, [r4, #0x22] - adds r2, r2, r0 - strh r2, [r4, #0x22] - movs r1, #0x18 - ldrsh r0, [r5, r1] - lsls r1, r0, #2 - adds r1, r1, r0 - movs r0, #0x28 - subs r0, 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 InitAnimLinearTranslation - ldr r1, _0810B4C0 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _0810B4C4 - str r0, [r4, #0x1c] - ldrh r0, [r5, #0x1a] - adds r0, #1 - strh r0, [r5, #0x1a] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xf - ble _0810B480 - strh r7, [r5, #0x1a] -_0810B480: - ldrh r0, [r5, #0x1c] - adds r0, #1 - strh r0, [r5, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x1e - ldrsh r1, [r5, r2] - cmp r0, r1 - blt _0810B4A2 - strh r7, [r5, #0x1c] - ldrh r1, [r5, #0x18] - movs r3, #0x18 - ldrsh r0, [r5, r3] - cmp r0, #5 - bgt _0810B4A2 - adds r0, r1, #1 - strh r0, [r5, #0x18] -_0810B4A2: - ldrh r0, [r5, #0x16] - adds r0, #1 - strh r0, [r5, #0x16] - ldrh r0, [r5, #0x14] - subs r0, #1 - strh r0, [r5, #0x14] - b _0810B4D6 - .align 2, 0 -_0810B4B0: .4byte gUnknown_3005B60 -_0810B4B4: .4byte gUnknown_857148C -_0810B4B8: .4byte gUnknown_20205AC -_0810B4BC: .4byte gUnknown_857143C -_0810B4C0: .4byte sub_0810B510 -_0810B4C4: .4byte RunStoredCallbackWhenAnimEnds -_0810B4C8: - movs r1, #0x16 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _0810B4D6 - adds r0, r2, #0 - bl DestroyAnimVisualTask -_0810B4D6: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_0810B3C8 - - thumb_func_start sub_0810B4DC -sub_0810B4DC: @ 0x0810B4DC - push {r4, lr} - adds r4, r0, #0 - bl AnimTranslateLinear - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810B504 - ldr r2, _0810B50C - movs r0, #0x38 - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrh r1, [r0, #0x16] - subs r1, #1 - strh r1, [r0, #0x16] - adds r0, r4, #0 - bl DestroySprite -_0810B504: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810B50C: .4byte gUnknown_3005B60 - thumb_func_end sub_0810B4DC - - thumb_func_start sub_0810B510 -sub_0810B510: @ 0x0810B510 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl StartSpriteAnim - ldr r0, _0810B524 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810B524: .4byte sub_0810B4DC - thumb_func_end sub_0810B510 - - thumb_func_start sub_0810B528 -sub_0810B528: @ 0x0810B528 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0810B53C - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _0810B544 - ldr r4, _0810B540 - b _0810B546 - .align 2, 0 -_0810B53C: .4byte gUnknown_20380BE -_0810B540: .4byte gUnknown_20380D6 -_0810B544: - ldr r4, _0810B574 -_0810B546: - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - ldr r1, _0810B578 - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _0810B57C - str r0, [r5, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810B574: .4byte gUnknown_20380D7 -_0810B578: .4byte DestroySpriteAndMatrix -_0810B57C: .4byte RunStoredCallbackWhenAffineAnimEnds - thumb_func_end sub_0810B528 - - thumb_func_start sub_0810B580 -sub_0810B580: @ 0x0810B580 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0810B594 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _0810B59C - ldr r4, _0810B598 - b _0810B59E - .align 2, 0 -_0810B594: .4byte gUnknown_20380BE -_0810B598: .4byte gUnknown_20380D6 -_0810B59C: - ldr r4, _0810B5D8 -_0810B59E: - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - ldr r1, _0810B5DC - ldrh r0, [r1, #2] - strh r0, [r5, #0x24] - ldrh r0, [r1, #4] - strh r0, [r5, #0x26] - ldr r1, _0810B5E0 - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _0810B5E4 - str r0, [r5, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810B5D8: .4byte gUnknown_20380D7 -_0810B5DC: .4byte gUnknown_20380BE -_0810B5E0: .4byte DestroyAnimSprite -_0810B5E4: .4byte RunStoredCallbackWhenAnimEnds - thumb_func_end sub_0810B580 - - thumb_func_start sub_0810B5E8 -sub_0810B5E8: @ 0x0810B5E8 - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #1 - bl StartSpriteAffineAnim - ldr r4, _0810B640 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - movs r0, #0 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x3a] - movs r0, #0x10 - strh r0, [r5, #0x3c] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0810B636 - movs r1, #0x3c - ldrsh r0, [r5, r1] - rsbs r0, r0, #0 - strh r0, [r5, #0x3c] -_0810B636: - ldr r0, _0810B644 - str r0, [r5, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810B640: .4byte gUnknown_20380D6 -_0810B644: .4byte sub_0810B648 - thumb_func_end sub_0810B5E8 - - thumb_func_start sub_0810B648 -sub_0810B648: @ 0x0810B648 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0810B65A - cmp r0, #1 - beq _0810B670 - b _0810B6A0 -_0810B65A: - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x28 - ble _0810B6A0 - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - b _0810B6A0 -_0810B670: - ldrh r2, [r4, #0x3c] - ldrh r1, [r4, #0x20] - adds r0, r2, r1 - strh r0, [r4, #0x20] - ldr r3, _0810B6A8 - movs r0, #0x3a - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r0, #0x24] - adds r2, r2, r1 - strh r2, [r0, #0x24] - ldrh r0, [r4, #0x20] - adds r0, #0x50 - lsls r0, r0, #0x10 - movs r1, #0xc8 - lsls r1, r1, #0x11 - cmp r0, r1 - bls _0810B6A0 - adds r0, r4, #0 - bl DestroySpriteAndMatrix -_0810B6A0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810B6A8: .4byte gUnknown_20205AC - thumb_func_end sub_0810B648 - - thumb_func_start sub_0810B6AC -sub_0810B6AC: @ 0x0810B6AC - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #3 - ldr r1, _0810B6D0 - adds r5, r0, r1 - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #1 - beq _0810B740 - cmp r0, #1 - bgt _0810B6D4 - cmp r0, #0 - beq _0810B6E0 - b _0810B810 - .align 2, 0 -_0810B6D0: .4byte gUnknown_3005B60 -_0810B6D4: - cmp r0, #2 - beq _0810B79C - cmp r0, #3 - bne _0810B6DE - b _0810B7F0 -_0810B6DE: - b _0810B810 -_0810B6E0: - movs r0, #0 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r6, #0 - strh r0, [r5, #0x26] - ldr r4, _0810B714 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x24] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810B71C - ldr r0, _0810B718 - strh r0, [r5, #0x24] - movs r0, #2 - b _0810B722 - .align 2, 0 -_0810B714: .4byte gUnknown_20380D6 -_0810B718: .4byte 0x0000FFE0 -_0810B71C: - movs r0, #0x20 - strh r0, [r5, #0x24] - ldr r0, _0810B738 -_0810B722: - strh r0, [r5, #0x22] - ldr r2, _0810B73C - movs r0, #0x26 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r5, #0x24] - strh r1, [r0, #0x24] - b _0810B7E2 - .align 2, 0 -_0810B738: .4byte 0x0000FFFE -_0810B73C: .4byte gUnknown_20205AC -_0810B740: - ldrh r0, [r5, #0xa] - adds r0, #1 - strh r0, [r5, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _0810B810 - movs r0, #0 - strh r0, [r5, #0xa] - ldr r4, _0810B798 - movs r1, #0x26 - ldrsh r0, [r5, r1] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r4 - adds r2, #0x3e - ldrb r3, [r2] - lsls r0, r3, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldrh r1, [r5, #0x24] - movs r2, #0x24 - ldrsh r0, [r5, r2] - cmp r0, #0 - beq _0810B7E2 - 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, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - strh r2, [r0, #0x24] - b _0810B810 - .align 2, 0 -_0810B798: .4byte gUnknown_20205AC -_0810B79C: - ldrh r0, [r5, #0xa] - adds r0, #1 - strh r0, [r5, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _0810B810 - movs r0, #0 - strh r0, [r5, #0xa] - ldr r1, _0810B7EC - movs r2, #0x26 - ldrsh r0, [r5, r2] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r1 - adds r2, #0x3e - ldrb r3, [r2] - lsls r0, r3, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r5, #0xc] - adds r0, #1 - strh r0, [r5, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #8 - bne _0810B810 -_0810B7E2: - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - b _0810B810 - .align 2, 0 -_0810B7EC: .4byte gUnknown_20205AC -_0810B7F0: - ldr r2, _0810B818 - movs r0, #0x26 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - adds r0, r3, #0 - bl DestroyAnimVisualTask -_0810B810: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0810B818: .4byte gUnknown_20205AC - thumb_func_end sub_0810B6AC - - thumb_func_start sub_0810B81C -sub_0810B81C: @ 0x0810B81C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _0810B840 - adds r5, r0, r1 - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #1 - bne _0810B836 - b _0810B95C -_0810B836: - cmp r0, #1 - bgt _0810B844 - cmp r0, #0 - beq _0810B84C - b _0810B99E - .align 2, 0 -_0810B840: .4byte gUnknown_3005B60 -_0810B844: - cmp r0, #2 - bne _0810B84A - b _0810B990 -_0810B84A: - b _0810B99E -_0810B84C: - ldr r4, _0810B88C - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - movs r2, #1 - rsbs r2, r2, #0 - adds r1, r2, #0 - cmp r0, #0 - bne _0810B862 - movs r1, #1 -_0810B862: - movs r6, #0 - strh r1, [r5, #0xa] - ldr r0, _0810B890 - movs r1, #0 - ldrsh r2, [r0, r1] - adds r3, r0, #0 - cmp r2, #0 - beq _0810B898 - cmp r2, #4 - beq _0810B8C0 - ldrh r1, [r3] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0810B8F8 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r5, #0xe] - ldr r0, _0810B894 - b _0810B900 - .align 2, 0 -_0810B88C: .4byte gUnknown_20380D6 -_0810B890: .4byte gUnknown_20380BE -_0810B894: .4byte 0x0000FFF0 -_0810B898: - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0xe] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x12] - movs r2, #0xa - ldrsh r0, [r5, r2] - lsls r0, r0, #7 - adds r0, #0x78 - strh r0, [r5, #0x10] - b _0810B936 -_0810B8C0: - movs r0, #0xa - ldrsh r1, [r5, r0] - lsls r1, r1, #7 - movs r0, #0x78 - subs r0, r0, r1 - strh r0, [r5, #0xe] - ldr r4, _0810B8F4 - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x12] - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0xa - ldrsh r1, [r5, r2] - lsls r1, r1, #5 - subs r0, r0, r1 - strh r0, [r5, #0x10] - b _0810B936 - .align 2, 0 -_0810B8F4: .4byte gUnknown_20380D7 -_0810B8F8: - ldr r0, _0810B91C - strh r0, [r5, #0xe] - movs r0, #0x80 - lsls r0, r0, #1 -_0810B900: - strh r0, [r5, #0x10] - movs r1, #0xa - ldrsh r0, [r5, r1] - cmp r0, #1 - bne _0810B920 - movs r2, #0 - ldrsh r0, [r3, r2] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #1 - movs r0, #0x50 - subs r0, r0, r1 - strh r0, [r5, #0x12] - b _0810B936 - .align 2, 0 -_0810B91C: .4byte 0x0000FFF0 -_0810B920: - movs r0, #0 - ldrsh r1, [r3, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, 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] -_0810B936: - movs r2, #0xe - ldrsh r1, [r5, r2] - movs r2, #0x10 - ldrsh r0, [r5, r2] - cmp r1, r0 - bge _0810B94C - movs r1, #0 - movs r0, #1 - strh r0, [r5, #0xa] - strh r1, [r5, #0x14] - b _0810B988 -_0810B94C: - ldr r0, _0810B958 - strh r0, [r5, #0xa] - movs r0, #3 - strh r0, [r5, #0x14] - b _0810B988 - .align 2, 0 -_0810B958: .4byte 0x0000FFFF -_0810B95C: - ldrh r0, [r5, #0xc] - adds r0, #1 - strh r0, [r5, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - ble _0810B99E - movs r0, #0 - strh r0, [r5, #0xc] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0810B9A4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810B988 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0810B9A4 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810B99E -_0810B988: - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - b _0810B99E -_0810B990: - movs r1, #0x16 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _0810B99E - adds r0, r4, #0 - bl DestroyAnimVisualTask -_0810B99E: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_0810B81C - - thumb_func_start sub_0810B9A4 -sub_0810B9A4: @ 0x0810B9A4 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - ldr r0, _0810BA30 - movs r2, #0xe - ldrsh r1, [r4, r2] - movs r3, #0x12 - ldrsh r2, [r4, r3] - movs r3, #0x23 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x40 - beq _0810B9DA - ldr r1, _0810BA34 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - strh r5, [r0, #0x3a] - movs r1, #7 - strh r1, [r0, #0x3c] - ldrh r0, [r4, #0x16] - adds r0, #1 - strh r0, [r4, #0x16] -_0810B9DA: - ldrh r1, [r4, #0xa] - ldrh r5, [r4, #0x14] - adds r0, r1, r5 - strh r0, [r4, #0x14] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _0810B9EC - movs r0, #3 - strh r0, [r4, #0x14] -_0810B9EC: - movs r2, #0x14 - ldrsh r0, [r4, r2] - cmp r0, #3 - ble _0810B9F8 - movs r0, #0 - strh r0, [r4, #0x14] -_0810B9F8: - movs r3, #0xa - ldrsh r0, [r4, r3] - lsls r0, r0, #4 - ldrh r5, [r4, #0xe] - adds r2, r0, r5 - strh r2, [r4, #0xe] - lsls r0, r1, #0x10 - asrs r3, r0, #0x10 - cmp r3, #1 - bne _0810BA18 - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - movs r5, #0x10 - ldrsh r1, [r4, r5] - cmp r0, r1 - bge _0810BA2C -_0810BA18: - movs r0, #1 - rsbs r0, r0, #0 - cmp r3, r0 - bne _0810BA38 - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x10 - ldrsh r1, [r4, r2] - cmp r0, r1 - bgt _0810BA38 -_0810BA2C: - movs r0, #1 - b _0810BA3A - .align 2, 0 -_0810BA30: .4byte gUnknown_85715E4 -_0810BA34: .4byte gUnknown_20205AC -_0810BA38: - movs r0, #0 -_0810BA3A: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_0810B9A4 - - thumb_func_start sub_0810BA40 -sub_0810BA40: @ 0x0810BA40 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xc - ble _0810BA80 - ldr r3, _0810BA88 - movs r0, #0x3c - ldrsh r1, [r4, r0] - lsls r1, r1, #1 - movs r0, #0x3a - ldrsh r2, [r4, r0] - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r1, r1, r0 - adds r3, #8 - adds r1, r1, r3 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - ldrb r0, [r4, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - adds r0, r4, #0 - bl DestroySprite -_0810BA80: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810BA88: .4byte gUnknown_3005B60 - thumb_func_end sub_0810BA40 - - thumb_func_start sub_0810BA8C -sub_0810BA8C: @ 0x0810BA8C - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _0810BA9E - cmp r0, #1 - beq _0810BAD0 - b _0810BAE4 -_0810BA9E: - ldr r4, _0810BACC - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - adds r0, r5, #0 - movs r1, #2 - bl StartSpriteAffineAnim - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] - b _0810BAE4 - .align 2, 0 -_0810BACC: .4byte gUnknown_20380D6 -_0810BAD0: - adds r0, r5, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0810BAE4 - adds r0, r5, #0 - bl DestroySpriteAndMatrix -_0810BAE4: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0810BA8C - - thumb_func_start sub_0810BAEC -sub_0810BAEC: @ 0x0810BAEC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _0810BB10 - adds r5, r0, r1 - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #4 - bls _0810BB06 - b _0810BC78 -_0810BB06: - lsls r0, r0, #2 - ldr r1, _0810BB14 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0810BB10: .4byte gUnknown_3005B60 -_0810BB14: .4byte _0810BB18 -_0810BB18: @ jump table - .4byte _0810BB2C @ case 0 - .4byte _0810BBBC @ case 1 - .4byte _0810BBF8 @ case 2 - .4byte _0810BC54 @ case 3 - .4byte _0810BC64 @ case 4 -_0810BB2C: - ldr r4, _0810BBB0 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x14] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x16] - movs r0, #4 - strh r0, [r5, #0x18] - ldr r0, _0810BBB4 - ldrb r0, [r0] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x1c] - movs r2, #0x1c - ldrsh r0, [r5, r2] - movs r2, #0x14 - ldrsh r1, [r5, r2] - subs r0, r0, r1 - movs r1, #5 - bl __divsi3 - strh r0, [r5, #0x1a] - movs r0, #7 - strh r0, [r5, #0x10] - ldr r0, _0810BBB8 - strh r0, [r5, #0x12] - movs r0, #0xc - strh r0, [r5, #0x1e] - subs r0, #0x4c - bl BattleAnimAdjustPanning - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - strh r0, [r5, #0x20] - movs r0, #0x3f - bl BattleAnimAdjustPanning - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - 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, r0, r1 - movs r1, #3 - bl __divsi3 - strh r0, [r5, #0x26] - ldrh r0, [r5, #8] - adds r0, #1 - b _0810BC76 - .align 2, 0 -_0810BBB0: .4byte gUnknown_20380D6 -_0810BBB4: .4byte gUnknown_20380D7 -_0810BBB8: .4byte 0x0000FFFF -_0810BBBC: - ldrh r0, [r5, #0xa] - adds r0, #1 - strh r0, [r5, #0xa] - lsls r0, r0, #0x10 - cmp r0, #0 - ble _0810BBEC - movs r0, #0 - strh r0, [r5, #0xa] - adds r0, r5, #0 - adds r1, r2, #0 - bl sub_0810BC80 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810BBEC - movs r1, #0xc - ldrsh r0, [r5, r1] - cmp r0, #5 - bne _0810BBE6 - movs r0, #3 - b _0810BBEA -_0810BBE6: - ldrh r0, [r5, #8] - adds r0, #1 -_0810BBEA: - strh r0, [r5, #8] -_0810BBEC: - ldrh r1, [r5, #0x1e] - movs r2, #0x1e - ldrsh r0, [r5, r2] - cmp r0, #0 - beq _0810BC78 - b _0810BC6E -_0810BBF8: - ldrh r1, [r5, #0x1e] - movs r2, #0x1e - ldrsh r0, [r5, r2] - cmp r0, #0 - beq _0810BC06 - subs r0, r1, #1 - strh r0, [r5, #0x1e] -_0810BC06: - ldrh r0, [r5, #0xa] - adds r0, #1 - movs r3, #0 - strh r0, [r5, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - ble _0810BC78 - strh r3, [r5, #0xa] - ldrh r1, [r5, #0xc] - movs r2, #1 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0810BC32 - movs r0, #4 - strh r0, [r5, #0x16] - movs r0, #0x44 - strh r0, [r5, #0x18] - strh r3, [r5, #0x10] - strh r2, [r5, #0x12] - b _0810BC42 -_0810BC32: - movs r0, #0x44 - strh r0, [r5, #0x16] - movs r0, #4 - strh r0, [r5, #0x18] - movs r0, #7 - strh r0, [r5, #0x10] - ldr r0, _0810BC50 - strh r0, [r5, #0x12] -_0810BC42: - movs r1, #0x1e - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _0810BC74 - movs r0, #4 - b _0810BC76 - .align 2, 0 -_0810BC50: .4byte 0x0000FFFF -_0810BC54: - movs r1, #0xe - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _0810BC78 - adds r0, r2, #0 - bl DestroyAnimVisualTask - b _0810BC78 -_0810BC64: - ldrh r1, [r5, #0x1e] - movs r2, #0x1e - ldrsh r0, [r5, r2] - cmp r0, #0 - beq _0810BC74 -_0810BC6E: - subs r0, r1, #1 - strh r0, [r5, #0x1e] - b _0810BC78 -_0810BC74: - movs r0, #1 -_0810BC76: - strh r0, [r5, #8] -_0810BC78: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0810BAEC - - thumb_func_start sub_0810BC80 -sub_0810BC80: @ 0x0810BC80 - push {r4, r5, r6, lr} - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - ldr r0, _0810BD48 - movs r2, #0x14 - ldrsh r1, [r4, r2] - movs r3, #0x16 - ldrsh r2, [r4, r3] - movs r3, #0x23 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x40 - beq _0810BCEC - ldr r1, _0810BD4C - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r3, r0, r1 - ldrh r2, [r3, #4] - lsls r1, r2, #0x16 - lsrs r1, r1, #0x16 - ldrh r6, [r4, #0x10] - adds r1, r1, r6 - ldr r6, _0810BD50 - adds r0, r6, #0 - ands r1, r0 - ldr r0, _0810BD54 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, #4] - ldrh r0, [r4, #0x12] - ldrh r1, [r4, #0x10] - adds r0, r0, r1 - strh r0, [r4, #0x10] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _0810BCD4 - movs r0, #7 - strh r0, [r4, #0x10] -_0810BCD4: - movs r2, #0x10 - ldrsh r0, [r4, r2] - cmp r0, #7 - ble _0810BCE0 - movs r0, #0 - strh r0, [r4, #0x10] -_0810BCE0: - strh r5, [r3, #0x3a] - movs r0, #3 - strh r0, [r3, #0x3c] - ldrh r0, [r4, #0xe] - adds r0, #1 - strh r0, [r4, #0xe] -_0810BCEC: - movs r3, #0x10 - ldrsh r0, [r4, r3] - cmp r0, #0 - bne _0810BD0E - movs r5, #0x12 - ldrsh r0, [r4, r5] - cmp r0, #0 - ble _0810BD0E - ldrh r1, [r4, #0x26] - ldrh r6, [r4, #0x24] - adds r1, r1, r6 - strh r1, [r4, #0x24] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r0, #0x76 - bl PlaySE12WithPanning -_0810BD0E: - movs r0, #0x12 - ldrsh r3, [r4, r0] - ldrh r2, [r4, #0x16] - cmp r3, #0 - bge _0810BD24 - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - movs r5, #0x18 - ldrsh r1, [r4, r5] - cmp r0, r1 - ble _0810BD34 -_0810BD24: - cmp r3, #0 - ble _0810BD58 - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - movs r6, #0x18 - ldrsh r1, [r4, r6] - cmp r0, r1 - blt _0810BD58 -_0810BD34: - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0x1a] - ldrh r1, [r4, #0x14] - adds r0, r0, r1 - strh r0, [r4, #0x14] - movs r0, #1 - b _0810BD64 - .align 2, 0 -_0810BD48: .4byte gUnknown_8571614 -_0810BD4C: .4byte gUnknown_20205AC -_0810BD50: .4byte 0x000003FF -_0810BD54: .4byte 0xFFFFFC00 -_0810BD58: - movs r3, #0x12 - ldrsh r0, [r4, r3] - lsls r0, r0, #3 - adds r0, r2, r0 - strh r0, [r4, #0x16] - movs r0, #0 -_0810BD64: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0810BC80 - - thumb_func_start sub_0810BD6C -sub_0810BD6C: @ 0x0810BD6C - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xc - ble _0810BDA2 - ldr r3, _0810BDA8 - movs r0, #0x3c - ldrsh r1, [r4, r0] - lsls r1, r1, #1 - movs r0, #0x3a - ldrsh r2, [r4, r0] - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r1, r1, r0 - adds r3, #8 - adds r1, r1, r3 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - adds r0, r4, #0 - bl DestroySprite -_0810BDA2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810BDA8: .4byte gUnknown_3005B60 - thumb_func_end sub_0810BD6C - - thumb_func_start sub_0810BDAC -sub_0810BDAC: @ 0x0810BDAC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _0810BDD0 - adds r5, r0, r1 - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #1 - beq _0810BE28 - cmp r0, #1 - bgt _0810BDD4 - cmp r0, #0 - beq _0810BDDA - b _0810BE5E - .align 2, 0 -_0810BDD0: .4byte gUnknown_3005B60 -_0810BDD4: - cmp r0, #2 - beq _0810BE50 - b _0810BE5E -_0810BDDA: - ldr r0, _0810BE24 - ldrb r0, [r0] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #0x20 - strh r0, [r5, #0x26] - strh r0, [r5, #0x24] - cmp r0, #0x10 - ble _0810BE04 - adds r2, r0, #0 -_0810BDF4: - adds r1, r2, #0 - subs r1, #0x20 - adds r2, r1, #0 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x10 - bgt _0810BDF4 - strh r1, [r5, #0x24] -_0810BE04: - ldr r4, _0810BE24 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - ldrb r0, [r4] - bl GetBattlerSpriteSubpriority - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, #2 - strh r0, [r5, #0x20] - b _0810BE48 - .align 2, 0 -_0810BE24: .4byte gUnknown_20380D7 -_0810BE28: - ldrh r0, [r5, #0xa] - adds r0, #1 - strh r0, [r5, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _0810BE5E - movs r0, #0 - strh r0, [r5, #0xa] - adds r0, r5, #0 - adds r1, r2, #0 - bl sub_0810BE64 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810BE5E -_0810BE48: - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - b _0810BE5E -_0810BE50: - movs r1, #0x1c - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _0810BE5E - adds r0, r2, #0 - bl DestroyAnimVisualTask -_0810BE5E: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_0810BDAC - - thumb_func_start sub_0810BE64 -sub_0810BE64: @ 0x0810BE64 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - ldr r0, _0810BEC0 - movs r2, #0x22 - ldrsh r1, [r4, r2] - movs r3, #0x24 - ldrsh r2, [r4, r3] - ldrh r3, [r4, #0x20] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x40 - beq _0810BEA8 - ldr r3, _0810BEC4 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r3, #0 - adds r1, #0x1c - adds r1, r0, r1 - ldr r2, _0810BEC8 - str r2, [r1] - adds r0, r0, r3 - strh r5, [r0, #0x3a] - movs r1, #0xa - strh r1, [r0, #0x3c] - ldrh r0, [r4, #0x1c] - adds r0, #1 - strh r0, [r4, #0x1c] -_0810BEA8: - ldrh r2, [r4, #0x24] - movs r0, #0x24 - ldrsh r1, [r4, r0] - movs r3, #0x26 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _0810BECC - adds r0, r2, #0 - adds r0, #0x20 - strh r0, [r4, #0x24] - movs r0, #0 - b _0810BECE - .align 2, 0 -_0810BEC0: .4byte gUnknown_85712A4 -_0810BEC4: .4byte gUnknown_20205AC -_0810BEC8: .4byte sub_0810BED4 -_0810BECC: - movs r0, #1 -_0810BECE: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_0810BE64 - - thumb_func_start sub_0810BED4 -sub_0810BED4: @ 0x0810BED4 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0810BF08 - ldr r3, _0810BF10 - movs r0, #0x3c - ldrsh r1, [r4, r0] - lsls r1, r1, #1 - movs r0, #0x3a - ldrsh r2, [r4, r0] - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r1, r1, r0 - adds r3, #8 - adds r1, r1, r3 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - adds r0, r4, #0 - bl DestroySprite -_0810BF08: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810BF10: .4byte gUnknown_3005B60 - thumb_func_end sub_0810BED4 - - thumb_func_start sub_0810BF14 -sub_0810BF14: @ 0x0810BF14 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r5, r0, #0 - ldrh r2, [r5, #4] - lsls r1, r2, #0x16 - lsrs r1, r1, #0x16 - adds r1, #7 - ldr r3, _0810C01C - adds r0, r3, #0 - ands r1, r0 - ldr r0, _0810C020 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, #4] - ldr r4, _0810C024 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r4, _0810C028 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldrb r0, [r4] - movs r1, #3 - str r3, [sp] - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _0810C02C - ldrh r0, [r1, #8] - strh r0, [r5, #0x2e] - ldrh r0, [r1] - ldr r3, [sp] - adds r0, r0, r3 - strh r0, [r5, #0x30] - ldrh r0, [r1, #4] - mov r4, sb - adds r0, r4, r0 - strh r0, [r5, #0x32] - ldrh r0, [r1, #2] - adds r0, r0, r6 - strh r0, [r5, #0x34] - ldrh r0, [r1, #6] - mov r7, r8 - adds r0, r7, r0 - strh r0, [r5, #0x36] - adds r0, r5, #0 - bl sub_080A5DB4 - adds r4, #0x20 - movs r0, #0x98 - lsls r0, r0, #1 - mov ip, r0 - ldr r3, [sp] - cmp r4, ip - bhi _0810BFEE - adds r0, r7, #0 - adds r0, #0x20 - ldrh r1, [r5, #0x30] - ldrh r2, [r5, #0x32] - cmp r0, #0xe0 - bhi _0810BFEE - adds r4, r1, #0 - mov sl, ip -_0810BFBA: - mov r7, sb - lsls r1, r7, #0x10 - asrs r1, r1, #0x10 - adds r1, r1, r4 - lsls r1, r1, #0x10 - mov r7, r8 - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - lsrs r0, r1, #0x10 - mov sb, r0 - movs r7, #0x80 - lsls r7, r7, #0xe - adds r1, r1, r7 - lsrs r1, r1, #0x10 - cmp r1, sl - bhi _0810BFEE - mov r1, r8 - lsls r0, r1, #0x10 - adds r0, r0, r7 - lsrs r0, r0, #0x10 - cmp r0, #0xe0 - bls _0810BFBA -_0810BFEE: - ldrh r0, [r5, #0x30] - rsbs r7, r0, #0 - strh r7, [r5, #0x30] - ldrh r0, [r5, #0x32] - rsbs r4, r0, #0 - strh r4, [r5, #0x32] - lsls r0, r3, #0x10 - movs r1, #0x80 - lsls r1, r1, #0xe - adds r0, r0, r1 - lsrs r0, r0, #0x10 - movs r2, #0x98 - lsls r2, r2, #1 - mov ip, r2 - ldr r1, _0810C02C - mov sl, r1 - cmp r0, ip - bhi _0810C05A - lsls r1, r6, #0x10 - movs r2, #0x80 - lsls r2, r2, #0xe - adds r0, r1, r2 - b _0810C052 - .align 2, 0 -_0810C01C: .4byte 0x000003FF -_0810C020: .4byte 0xFFFFFC00 -_0810C024: .4byte gUnknown_20380D7 -_0810C028: .4byte gUnknown_20380D6 -_0810C02C: .4byte gUnknown_20380BE -_0810C030: - lsls r1, r3, #0x10 - asrs r1, r1, #0x10 - adds r1, r1, r7 - lsls r1, r1, #0x10 - asrs r0, r2, #0x10 - adds r0, r0, r4 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsrs r3, r1, #0x10 - movs r0, #0x80 - lsls r0, r0, #0xe - adds r1, r1, r0 - lsrs r1, r1, #0x10 - cmp r1, ip - bhi _0810C05A - lsls r1, r6, #0x10 - adds r0, r1, r0 -_0810C052: - lsrs r0, r0, #0x10 - adds r2, r1, #0 - cmp r0, #0xe0 - bls _0810C030 -_0810C05A: - strh r3, [r5, #0x20] - strh r6, [r5, #0x22] - mov r1, sl - ldrh r0, [r1, #8] - strh r0, [r5, #0x2e] - strh r3, [r5, #0x30] - mov r2, sb - strh r2, [r5, #0x32] - strh r6, [r5, #0x34] - mov r3, r8 - strh r3, [r5, #0x36] - adds r0, r5, #0 - bl sub_080A5DB4 - mov r7, sl - ldrh r0, [r7, #0xa] - strh r0, [r5, #0x34] - ldrh r0, [r7, #0xc] - strh r0, [r5, #0x36] - ldr r0, _0810C094 - str r0, [r5, #0x1c] - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0810C094: .4byte sub_0810C098 - thumb_func_end sub_0810BF14 - - thumb_func_start sub_0810C098 -sub_0810C098: @ 0x0810C098 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0810C0F0 - ldrh r1, [r4, #0x30] - ldrh r2, [r4, #0x38] - adds r1, r1, r2 - strh r1, [r4, #0x38] - ldrh r0, [r4, #0x32] - ldrh r2, [r4, #0x3a] - adds r0, 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, 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, r0, r1 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x36] - ldrh r2, [r4, #0x3c] - adds r0, r0, r2 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x3c] - ldrh r0, [r4, #0x2e] - subs r0, #1 - strh r0, [r4, #0x2e] - b _0810C0F6 -_0810C0F0: - adds r0, r4, #0 - bl DestroyAnimSprite -_0810C0F6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0810C098 - - thumb_func_start sub_0810C0FC -sub_0810C0FC: @ 0x0810C0FC - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0810C130 - ldrh r0, [r0] - strh r0, [r4, #0x2e] - movs r0, #0x3c - strh r0, [r4, #0x30] - movs r0, #9 - strh r0, [r4, #0x32] - movs r0, #0x1e - strh r0, [r4, #0x34] - movs r0, #0xfe - lsls r0, r0, #8 - strh r0, [r4, #0x36] - ldr r1, _0810C134 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - ldr r1, _0810C138 - str r1, [r4, #0x1c] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810C130: .4byte gUnknown_20380BE -_0810C134: .4byte DestroyAnimSprite -_0810C138: .4byte TranslateSpriteInGrowingCircleOverDuration - thumb_func_end sub_0810C0FC - - thumb_func_start AnimIceBeamParticle -AnimIceBeamParticle: @ 0x0810C13C - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldr r0, _0810C170 - ldrb r0, [r0] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x32] - ldr r0, _0810C174 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810C17C - ldr r0, _0810C178 - ldrh r1, [r4, #0x32] - ldrh r0, [r0, #4] - subs r1, r1, r0 - strh r1, [r4, #0x32] - b _0810C186 - .align 2, 0 -_0810C170: .4byte gUnknown_20380D7 -_0810C174: .4byte gUnknown_20380D6 -_0810C178: .4byte gUnknown_20380BE -_0810C17C: - ldr r0, _0810C1B4 - ldrh r0, [r0, #4] - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] -_0810C186: - ldr r0, _0810C1B8 - ldrb r0, [r0] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - ldr r1, _0810C1B4 - lsrs r0, r0, #0x18 - ldrh r2, [r1, #6] - adds r0, r0, r2 - strh r0, [r4, #0x36] - ldrh r0, [r1, #8] - strh r0, [r4, #0x2e] - ldr r1, _0810C1BC - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _0810C1C0 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810C1B4: .4byte gUnknown_20380BE -_0810C1B8: .4byte gUnknown_20380D7 -_0810C1BC: .4byte DestroyAnimSprite -_0810C1C0: .4byte sub_080A67B4 - thumb_func_end AnimIceBeamParticle - - thumb_func_start AnimIceEffectParticle -AnimIceEffectParticle: @ 0x0810C1C4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _0810C1DC - movs r1, #4 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _0810C1E0 - adds r0, r4, #0 - movs r1, #1 - bl InitSpritePosToAnimTarget - b _0810C216 - .align 2, 0 -_0810C1DC: .4byte gUnknown_20380BE -_0810C1E0: - ldr r0, _0810C228 - ldrb r0, [r0] - adds r2, r4, #0 - adds r2, #0x20 - adds r3, r4, #0 - adds r3, #0x22 - movs r1, #1 - bl SetAverageBattlerPositions - ldr r0, _0810C22C - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810C206 - ldrh r0, [r5] - rsbs r0, r0, #0 - strh r0, [r5] -_0810C206: - ldrh r0, [r5] - ldrh r1, [r4, #0x20] - adds r0, r0, r1 - strh r0, [r4, #0x20] - ldrh r0, [r5, #2] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] -_0810C216: - ldr r1, _0810C230 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _0810C234 - str r0, [r4, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810C228: .4byte gUnknown_20380D7 -_0810C22C: .4byte gUnknown_20380D6 -_0810C230: .4byte AnimFlickerIceEffectParticle -_0810C234: .4byte RunStoredCallbackWhenAffineAnimEnds - thumb_func_end AnimIceEffectParticle - - thumb_func_start AnimFlickerIceEffectParticle -AnimFlickerIceEffectParticle: @ 0x0810C238 - push {lr} - adds r3, r0, #0 - movs r0, #0x3e - adds r0, r0, r3 - mov ip, r0 - ldrb r2, [r0] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - ldrh r0, [r3, #0x2e] - adds r0, #1 - strh r0, [r3, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x14 - bne _0810C26E - adds r0, r3, #0 - bl DestroySpriteAndMatrix -_0810C26E: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AnimFlickerIceEffectParticle - - thumb_func_start AnimSwirlingSnowball_Step1 -AnimSwirlingSnowball_Step1: @ 0x0810C274 - push {r4, r5, r6, r7, lr} - sub sp, #0x10 - adds r5, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldr r6, _0810C2BC - ldrh r0, [r6, #8] - 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 _0810C2C4 - ldr r4, _0810C2C0 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x32] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r6, [r6, #6] - adds r0, r0, r6 - strh r0, [r5, #0x36] - b _0810C2D6 - .align 2, 0 -_0810C2BC: .4byte gUnknown_20380BE -_0810C2C0: .4byte gUnknown_20380D7 -_0810C2C4: - ldr r0, _0810C2F0 - ldrb r0, [r0] - adds r2, r5, #0 - adds r2, #0x32 - adds r3, r5, #0 - adds r3, #0x36 - movs r1, #1 - bl SetAverageBattlerPositions -_0810C2D6: - ldr r0, _0810C2F4 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810C2FC - ldr r0, _0810C2F8 - ldrh r1, [r5, #0x32] - ldrh r0, [r0, #4] - subs r1, r1, r0 - strh r1, [r5, #0x32] - b _0810C306 - .align 2, 0 -_0810C2F0: .4byte gUnknown_20380D7 -_0810C2F4: .4byte gUnknown_20380D6 -_0810C2F8: .4byte gUnknown_20380BE -_0810C2FC: - ldr r0, _0810C3A4 - ldrh r0, [r0, #4] - ldrh r2, [r5, #0x32] - adds r0, r0, r2 - strh r0, [r5, #0x32] -_0810C306: - adds r7, r5, #0 - adds r7, #0x2e - adds r2, r7, #0 - mov r1, sp - movs r4, #7 -_0810C310: - ldrh r0, [r2] - strh r0, [r1] - adds r2, #2 - adds r1, #2 - subs r4, #1 - cmp r4, #0 - bge _0810C310 - adds r0, r5, #0 - bl InitAnimFastLinearTranslationWithSpeed - ldrh r0, [r5, #0x30] - movs r1, #1 - eors r0, r1 - strh r0, [r5, #0x30] - ldrh r0, [r5, #0x32] - eors r0, r1 - strh r0, [r5, #0x32] -_0810C332: - movs r0, #1 - strh r0, [r5, #0x2e] - adds r0, r5, #0 - bl AnimFastTranslateLinear - movs r0, #0x20 - ldrsh r1, [r5, r0] - movs r2, #0x24 - ldrsh r0, [r5, r2] - adds r1, r1, r0 - adds r1, #0x10 - movs r0, #0x88 - lsls r0, r0, #1 - cmp r1, r0 - bhi _0810C366 - movs r0, #0x22 - ldrsh r1, [r5, r0] - movs r2, #0x26 - ldrsh r0, [r5, r2] - adds r1, r1, r0 - cmp r1, #0xa0 - bgt _0810C366 - movs r0, #0x10 - rsbs r0, r0, #0 - cmp r1, r0 - bge _0810C332 -_0810C366: - ldrh r0, [r5, #0x24] - ldrh r1, [r5, #0x20] - adds r0, r0, r1 - movs r1, #0 - strh r0, [r5, #0x20] - ldrh r0, [r5, #0x26] - ldrh r2, [r5, #0x22] - adds r0, r0, r2 - strh r0, [r5, #0x22] - strh r1, [r5, #0x26] - strh r1, [r5, #0x24] - ldr r6, _0810C3A8 - ldr r1, _0810C3AC - mov r3, sp - adds r2, r7, #0 - movs r4, #7 -_0810C386: - ldrh r0, [r3] - strh r0, [r2] - adds r3, #2 - adds r2, #2 - subs r4, #1 - cmp r4, #0 - bge _0810C386 - str r6, [r5, #0x1c] - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - add sp, #0x10 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0810C3A4: .4byte gUnknown_20380BE -_0810C3A8: .4byte sub_080A6A54 -_0810C3AC: .4byte AnimSwirlingSnowball_Step2 - thumb_func_end AnimSwirlingSnowball_Step1 - - thumb_func_start AnimSwirlingSnowball_Step2 -AnimSwirlingSnowball_Step2: @ 0x0810C3B0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x24] - ldrh r1, [r4, #0x20] - adds r0, r0, r1 - movs r5, #0 - strh r0, [r4, #0x20] - ldrh r0, [r4, #0x26] - ldrh r2, [r4, #0x22] - adds r0, r0, r2 - strh r0, [r4, #0x22] - strh r5, [r4, #0x26] - strh r5, [r4, #0x24] - movs r0, #0x80 - strh r0, [r4, #0x2e] - ldr r0, _0810C40C - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - ldr r1, _0810C410 - cmp r0, #0 - beq _0810C3E0 - movs r1, #0x14 -_0810C3E0: - movs r2, #0x2e - ldrsh r0, [r4, r2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - 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, _0810C414 - str r1, [r4, #0x1c] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810C40C: .4byte gUnknown_20380D6 -_0810C410: .4byte 0x0000FFEC -_0810C414: .4byte AnimSwirlingSnowball_Step3 - thumb_func_end AnimSwirlingSnowball_Step2 - - thumb_func_start AnimSwirlingSnowball_Step3 -AnimSwirlingSnowball_Step3: @ 0x0810C418 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0810C46C - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - ldr r1, _0810C470 - cmp r0, #0 - beq _0810C42E - movs r1, #0x14 -_0810C42E: - movs r2, #0x38 - ldrsh r0, [r4, r2] - cmp r0, #0x1f - bgt _0810C474 - movs r2, #0x2e - ldrsh r0, [r4, r2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl Sin - ldrh r1, [r4, #0x34] - subs r0, r0, r1 - strh r0, [r4, #0x24] - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r1, #0xf - bl Cos - ldrh r1, [r4, #0x36] - subs r0, 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, #1 - strh r0, [r4, #0x38] - b _0810C492 - .align 2, 0 -_0810C46C: .4byte gUnknown_20380D6 -_0810C470: .4byte 0x0000FFEC -_0810C474: - ldrh r0, [r4, #0x24] - ldrh r2, [r4, #0x20] - adds r0, r0, r2 - movs r1, #0 - strh r0, [r4, #0x20] - ldrh r0, [r4, #0x26] - ldrh r2, [r4, #0x22] - adds r0, r0, r2 - strh r0, [r4, #0x22] - strh r1, [r4, #0x26] - strh r1, [r4, #0x24] - strh r1, [r4, #0x36] - strh r1, [r4, #0x34] - ldr r0, _0810C498 - str r0, [r4, #0x1c] -_0810C492: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810C498: .4byte AnimSwirlingSnowball_End - thumb_func_end AnimSwirlingSnowball_Step3 - - thumb_func_start AnimSwirlingSnowball_End -AnimSwirlingSnowball_End: @ 0x0810C49C - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strh r0, [r4, #0x2e] - adds r0, r4, #0 - bl AnimFastTranslateLinear - movs r1, #0x20 - ldrsh r0, [r4, r1] - movs r2, #0x24 - ldrsh r1, [r4, r2] - adds r0, r0, r1 - adds r0, #0x10 - movs r1, #0x88 - lsls r1, r1, #1 - cmp r0, r1 - bhi _0810C4D8 - movs r1, #0x22 - ldrsh r0, [r4, r1] - movs r2, #0x26 - ldrsh r1, [r4, r2] - adds r1, r0, r1 - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - bgt _0810C4D8 - movs r0, #0x10 - rsbs r0, r0, #0 - cmp r1, r0 - bge _0810C4DE -_0810C4D8: - adds r0, r4, #0 - bl DestroyAnimSprite -_0810C4DE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end AnimSwirlingSnowball_End - - thumb_func_start AnimMoveParticleBeyondTarget -AnimMoveParticleBeyondTarget: @ 0x0810C4E4 - push {r4, r5, r6, r7, lr} - sub sp, #0x10 - adds r5, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldr r1, _0810C528 - ldrh r0, [r1, #8] - 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 _0810C530 - ldr r4, _0810C52C - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x32] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x36] - b _0810C542 - .align 2, 0 -_0810C528: .4byte gUnknown_20380BE -_0810C52C: .4byte gUnknown_20380D7 -_0810C530: - ldr r0, _0810C560 - ldrb r0, [r0] - adds r2, r5, #0 - adds r2, #0x32 - adds r3, r5, #0 - adds r3, #0x36 - movs r1, #1 - bl SetAverageBattlerPositions -_0810C542: - ldr r0, _0810C564 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810C56C - ldr r0, _0810C568 - ldrh r1, [r5, #0x32] - ldrh r2, [r0, #4] - subs r1, r1, r2 - strh r1, [r5, #0x32] - adds r1, r0, #0 - b _0810C576 - .align 2, 0 -_0810C560: .4byte gUnknown_20380D7 -_0810C564: .4byte gUnknown_20380D6 -_0810C568: .4byte gUnknown_20380BE -_0810C56C: - ldr r1, _0810C620 - ldrh r0, [r1, #4] - ldrh r2, [r5, #0x32] - adds r0, r0, r2 - strh r0, [r5, #0x32] -_0810C576: - ldrh r0, [r1, #6] - ldrh r1, [r5, #0x36] - adds r0, r0, r1 - strh r0, [r5, #0x36] - adds r0, r5, #0 - bl InitAnimFastLinearTranslationWithSpeed - adds r7, r5, #0 - adds r7, #0x2e - adds r2, r7, #0 - mov r1, sp - movs r4, #7 -_0810C58E: - ldrh r0, [r2] - strh r0, [r1] - adds r2, #2 - adds r1, #2 - subs r4, #1 - cmp r4, #0 - bge _0810C58E - ldrh r0, [r5, #0x30] - movs r1, #1 - eors r0, r1 - strh r0, [r5, #0x30] - ldrh r0, [r5, #0x32] - eors r0, r1 - strh r0, [r5, #0x32] -_0810C5AA: - movs r0, #1 - strh r0, [r5, #0x2e] - adds r0, r5, #0 - bl AnimFastTranslateLinear - movs r2, #0x20 - ldrsh r1, [r5, r2] - movs r2, #0x24 - ldrsh r0, [r5, r2] - adds r1, r1, r0 - adds r1, #0x10 - movs r0, #0x88 - lsls r0, r0, #1 - cmp r1, r0 - bhi _0810C5DE - movs r0, #0x22 - ldrsh r1, [r5, r0] - movs r2, #0x26 - ldrsh r0, [r5, r2] - adds r1, r1, r0 - cmp r1, #0xa0 - bgt _0810C5DE - movs r0, #0x10 - rsbs r0, r0, #0 - cmp r1, r0 - bge _0810C5AA -_0810C5DE: - ldrh r0, [r5, #0x24] - ldrh r1, [r5, #0x20] - adds r0, r0, r1 - movs r1, #0 - strh r0, [r5, #0x20] - ldrh r0, [r5, #0x26] - ldrh r2, [r5, #0x22] - adds r0, r0, r2 - strh r0, [r5, #0x22] - strh r1, [r5, #0x26] - strh r1, [r5, #0x24] - ldr r1, _0810C620 - ldr r6, _0810C624 - mov r3, sp - adds r2, r7, #0 - movs r4, #7 -_0810C5FE: - ldrh r0, [r3] - strh r0, [r2] - adds r3, #2 - adds r2, #2 - subs r4, #1 - cmp r4, #0 - bge _0810C5FE - 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, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0810C620: .4byte gUnknown_20380BE -_0810C624: .4byte AnimWiggleParticleTowardsTarget - thumb_func_end AnimMoveParticleBeyondTarget - - thumb_func_start AnimWiggleParticleTowardsTarget -AnimWiggleParticleTowardsTarget: @ 0x0810C628 - push {r4, lr} - adds r4, r0, #0 - bl AnimFastTranslateLinear - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0810C63C - movs r0, #1 - strh r0, [r4, #0x2e] -_0810C63C: - movs r2, #0x3c - ldrsh r0, [r4, r2] - movs r2, #0x38 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, #0x26] - adds r0, r0, r1 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x3a] - ldrh r2, [r4, #0x3c] - adds r0, r0, r2 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x3c] - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #1 - bne _0810C692 - movs r2, #0x20 - ldrsh r0, [r4, r2] - movs r2, #0x24 - ldrsh r1, [r4, r2] - adds r0, r0, r1 - adds r0, #0x10 - movs r1, #0x88 - lsls r1, r1, #1 - cmp r0, r1 - bhi _0810C68C - movs r0, #0x22 - ldrsh r1, [r4, r0] - movs r2, #0x26 - ldrsh r0, [r4, r2] - adds r1, r1, r0 - cmp r1, #0xa0 - bgt _0810C68C - movs r0, #0x10 - rsbs r0, r0, #0 - cmp r1, r0 - bge _0810C692 -_0810C68C: - adds r0, r4, #0 - bl DestroyAnimSprite -_0810C692: - pop {r4} - pop {r0} - bx r0 - thumb_func_end AnimWiggleParticleTowardsTarget - - thumb_func_start AnimWaveFromCenterOfTarget -AnimWaveFromCenterOfTarget: @ 0x0810C698 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0810C704 - ldr r5, _0810C6B8 - movs r1, #4 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _0810C6BC - adds r0, r4, #0 - movs r1, #0 - bl InitSpritePosToAnimTarget - b _0810C6F2 - .align 2, 0 -_0810C6B8: .4byte gUnknown_20380BE -_0810C6BC: - ldr r0, _0810C6FC - ldrb r0, [r0] - adds r2, r4, #0 - adds r2, #0x20 - adds r3, r4, #0 - adds r3, #0x22 - movs r1, #0 - bl SetAverageBattlerPositions - ldr r0, _0810C700 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810C6E2 - ldrh r0, [r5] - rsbs r0, r0, #0 - strh r0, [r5] -_0810C6E2: - ldrh r0, [r5] - ldrh r1, [r4, #0x20] - adds r0, r0, r1 - strh r0, [r4, #0x20] - ldrh r0, [r5, #2] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] -_0810C6F2: - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - b _0810C718 - .align 2, 0 -_0810C6FC: .4byte gUnknown_20380D7 -_0810C700: .4byte gUnknown_20380D6 -_0810C704: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0810C718 - adds r0, r4, #0 - bl DestroyAnimSprite -_0810C718: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AnimWaveFromCenterOfTarget - - thumb_func_start InitSwirlingFogAnim -InitSwirlingFogAnim: @ 0x0810C720 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r6, _0810C740 - movs r1, #8 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _0810C790 - movs r1, #0xa - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _0810C744 - adds r0, r5, #0 - movs r1, #0 - bl InitSpritePosToAnimAttacker - b _0810C782 - .align 2, 0 -_0810C740: .4byte gUnknown_20380BE -_0810C744: - ldr r4, _0810C76C - ldrb r0, [r4] - adds r2, r5, #0 - adds r2, #0x20 - adds r3, r5, #0 - adds r3, #0x22 - movs r1, #0 - bl SetAverageBattlerPositions - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810C770 - ldrh r0, [r5, #0x20] - ldrh r1, [r6] - subs r0, r0, r1 - b _0810C776 - .align 2, 0 -_0810C76C: .4byte gUnknown_20380D6 -_0810C770: - ldrh r0, [r6] - ldrh r1, [r5, #0x20] - adds r0, r0, r1 -_0810C776: - strh r0, [r5, #0x20] - ldr r0, _0810C788 - ldrh r0, [r0, #2] - ldrh r1, [r5, #0x22] - adds r0, r0, r1 - strh r0, [r5, #0x22] -_0810C782: - ldr r0, _0810C78C - b _0810C7E0 - .align 2, 0 -_0810C788: .4byte gUnknown_20380BE -_0810C78C: .4byte gUnknown_20380D6 -_0810C790: - movs r1, #0xa - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _0810C7A2 - adds r0, r5, #0 - movs r1, #0 - bl InitSpritePosToAnimTarget - b _0810C7DE -_0810C7A2: - ldr r4, _0810C7C8 - ldrb r0, [r4] - adds r2, r5, #0 - adds r2, #0x20 - adds r3, r5, #0 - adds r3, #0x22 - movs r1, #0 - bl SetAverageBattlerPositions - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810C7CC - ldrh r0, [r5, #0x20] - ldrh r1, [r6] - subs r0, r0, r1 - b _0810C7D2 - .align 2, 0 -_0810C7C8: .4byte gUnknown_20380D7 -_0810C7CC: - ldrh r0, [r6] - ldrh r1, [r5, #0x20] - adds r0, r0, r1 -_0810C7D2: - strh r0, [r5, #0x20] - ldr r0, _0810C7FC - ldrh r0, [r0, #2] - ldrh r1, [r5, #0x22] - adds r0, r0, r1 - strh r0, [r5, #0x22] -_0810C7DE: - ldr r0, _0810C800 -_0810C7E0: - ldrb r0, [r0] - strh r0, [r5, #0x3c] - ldr r0, _0810C7FC - movs r1, #0xa - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _0810C7F8 - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810C804 -_0810C7F8: - movs r0, #0x20 - b _0810C806 - .align 2, 0 -_0810C7FC: .4byte gUnknown_20380BE -_0810C800: .4byte gUnknown_20380D7 -_0810C804: - movs r0, #0x40 -_0810C806: - strh r0, [r5, #0x3a] - ldr r0, _0810C84C - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810C81C - ldrh r0, [r5, #0x22] - adds r0, #8 - strh r0, [r5, #0x22] -_0810C81C: - ldr r1, _0810C850 - ldrh r0, [r1, #6] - 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, #4] - adds r0, r0, r1 - strh r0, [r5, #0x36] - adds r0, r5, #0 - bl InitAnimLinearTranslation - movs r0, #0x40 - strh r0, [r5, #0x38] - ldr r1, _0810C854 - str r1, [r5, #0x1c] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0810C84C: .4byte gUnknown_20380D7 -_0810C850: .4byte gUnknown_20380BE -_0810C854: .4byte AnimSwirlingFogAnim - thumb_func_end InitSwirlingFogAnim - - thumb_func_start AnimSwirlingFogAnim -AnimSwirlingFogAnim: @ 0x0810C858 - push {r4, lr} - adds r4, r0, #0 - bl AnimTranslateLinear - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810C8E2 - movs r1, #0x38 - ldrsh r0, [r4, r1] - movs r2, #0x3a - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, #0x24] - adds r0, r0, r1 - strh r0, [r4, #0x24] - movs r2, #0x38 - ldrsh r0, [r4, r2] - movs r1, #6 - rsbs r1, r1, #0 - bl Cos - ldrh r1, [r4, #0x26] - adds r0, r0, r1 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x38] - subs r0, #0x40 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x7f - bhi _0810C8B4 - ldrh r0, [r4, #0x3c] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerSpriteBGPriority - movs r1, #3 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r4, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #5] - b _0810C8D6 -_0810C8B4: - ldrh r0, [r4, #0x3c] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerSpriteBGPriority - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #1 - movs r1, #3 - ands r0, r1 - lsls r0, r0, #2 - ldrb r2, [r4, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #5] -_0810C8D6: - ldrh r0, [r4, #0x38] - adds r0, #3 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x38] - b _0810C8E8 -_0810C8E2: - adds r0, r4, #0 - bl DestroyAnimSprite -_0810C8E8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AnimSwirlingFogAnim - - thumb_func_start AnimTask_Haze1 -AnimTask_Haze1: @ 0x0810C8F0 - push {r4, r5, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _0810C994 - movs r0, #0x50 - bl SetGpuReg - movs r1, #0x80 - lsls r1, r1, #5 - movs r0, #0x52 - bl SetGpuReg - movs r0, #1 - movs r1, #4 - movs r2, #1 - bl SetAnimBgAttribute - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl SetAnimBgAttribute - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810C932 - movs r0, #1 - movs r1, #3 - movs r2, #1 - bl SetAnimBgAttribute -_0810C932: - ldr r0, _0810C998 - movs r1, #0 - strh r1, [r0] - ldr r4, _0810C99C - strh r1, [r4] - movs r0, #0x14 - movs r1, #0 - bl SetGpuReg - ldrh r1, [r4] - movs r0, #0x16 - bl SetGpuReg - mov r0, sp - bl sub_080A63F8 - mov r0, sp - ldrb r0, [r0, #9] - ldr r1, _0810C9A0 - movs r2, #0x80 - lsls r2, r2, #4 - mov r3, sp - ldrh r3, [r3, #0xa] - bl LoadBgTiles - ldr r1, _0810C9A4 - mov r0, sp - movs r2, #0 - bl sub_080A6628 - ldr r0, _0810C9A8 - mov r1, sp - ldrb r1, [r1, #8] - lsls r1, r1, #4 - movs r2, #0x20 - bl LoadPalette - ldr r1, _0810C9AC - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0810C9B0 - str r1, [r0] - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810C994: .4byte 0x00003F42 -_0810C998: .4byte gUnknown_2022ACC -_0810C99C: .4byte gUnknown_2022ACE -_0810C9A0: .4byte gUnknown_852776C -_0810C9A4: .4byte gUnknown_8D93294 -_0810C9A8: .4byte gUnknown_8526F0C -_0810C9AC: .4byte gUnknown_3005B60 -_0810C9B0: .4byte AnimTask_Haze2 - thumb_func_end AnimTask_Haze1 - - thumb_func_start AnimTask_Haze2 -AnimTask_Haze2: @ 0x0810C9B4 - push {r4, r5, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _0810C9E8 - ldr r2, _0810C9EC - adds r0, r2, #0 - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - ldr r1, _0810C9F0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #0x20 - ldrsh r0, [r0, r2] - adds r2, r1, #0 - cmp r0, #4 - bls _0810C9DE - b _0810CB2A -_0810C9DE: - lsls r0, r0, #2 - ldr r1, _0810C9F4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0810C9E8: .4byte gUnknown_2022ACC -_0810C9EC: .4byte 0x0000FFFF -_0810C9F0: .4byte gUnknown_3005B60 -_0810C9F4: .4byte _0810C9F8 -_0810C9F8: @ jump table - .4byte _0810CA0C @ case 0 - .4byte _0810CA64 @ case 1 - .4byte _0810CA86 @ case 2 - .4byte _0810CACA @ case 3 - .4byte _0810CAEC @ case 4 -_0810CA0C: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r4, r0, r2 - ldrh r0, [r4, #0x1c] - adds r0, #1 - movs r5, #0 - strh r0, [r4, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - beq _0810CA26 - b _0810CB2A -_0810CA26: - strh r5, [r4, #0x1c] - ldrh r0, [r4, #0x1a] - adds r0, #1 - strh r0, [r4, #0x1a] - ldr r1, _0810CA60 - movs r2, #0x1a - ldrsh r0, [r4, r2] - adds r0, r0, r1 - ldrb r1, [r0] - strh r1, [r4, #0x1e] - movs r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r1, #0x1e - ldrsh r0, [r4, r1] - cmp r0, #9 - bne _0810CB2A - ldrh r0, [r4, #0x20] - adds r0, #1 - strh r0, [r4, #0x20] - strh r5, [r4, #0x1e] - b _0810CB2A - .align 2, 0 -_0810CA60: .4byte gUnknown_8571840 -_0810CA64: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r1, r0, r2 - ldrh r0, [r1, #0x1e] - adds r0, #1 - strh r0, [r1, #0x1e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x51 - bne _0810CB2A - movs r0, #9 - strh r0, [r1, #0x1e] - ldrh r0, [r1, #0x20] - adds r0, #1 - strh r0, [r1, #0x20] - b _0810CB2A -_0810CA86: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r4, r0, r2 - ldrh r0, [r4, #0x1c] - adds r0, #1 - strh r0, [r4, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - bne _0810CB2A - movs r0, #0 - strh r0, [r4, #0x1c] - ldrh r1, [r4, #0x1e] - subs r1, #1 - strh r1, [r4, #0x1e] - movs r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r2, #0x1e - ldrsh r1, [r4, r2] - cmp r1, #0 - bne _0810CB2A - ldrh r0, [r4, #0x20] - adds r0, #1 - strh r0, [r4, #0x20] - strh r1, [r4, #0x1e] - b _0810CB2A -_0810CACA: - mov r0, sp - bl sub_080A63F8 - movs r0, #1 - bl sub_080A6530 - movs r0, #2 - bl sub_080A6530 - ldr r0, _0810CB34 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x20] - adds r0, #1 - strh r0, [r1, #0x20] -_0810CAEC: - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810CB00 - movs r0, #1 - movs r1, #3 - movs r2, #0 - bl SetAnimBgAttribute -_0810CB00: - ldr r0, _0810CB38 - movs r1, #0 - strh r1, [r0] - ldr r0, _0810CB3C - strh r1, [r0] - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #1 - movs r1, #4 - movs r2, #1 - bl SetAnimBgAttribute - adds r0, r4, #0 - bl DestroyAnimVisualTask -_0810CB2A: - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810CB34: .4byte gUnknown_3005B60 -_0810CB38: .4byte gUnknown_2022ACC -_0810CB3C: .4byte gUnknown_2022ACE - thumb_func_end AnimTask_Haze2 - - thumb_func_start AnimThrowMistBall -AnimThrowMistBall: @ 0x0810CB40 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _0810CB6C - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x20] - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x22] - ldr r0, _0810CB70 - str r0, [r4, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810CB6C: .4byte gUnknown_20380D6 -_0810CB70: .4byte TranslateAnimSpriteToTargetMonLocation - thumb_func_end AnimThrowMistBall - - thumb_func_start AnimTask_LoadMistTiles -AnimTask_LoadMistTiles: @ 0x0810CB74 - push {r4, r5, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _0810CC1C - movs r0, #0x50 - bl SetGpuReg - movs r1, #0x80 - lsls r1, r1, #5 - movs r0, #0x52 - bl SetGpuReg - movs r0, #1 - movs r1, #4 - movs r2, #1 - bl SetAnimBgAttribute - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl SetAnimBgAttribute - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810CBB6 - movs r0, #1 - movs r1, #3 - movs r2, #1 - bl SetAnimBgAttribute -_0810CBB6: - ldr r0, _0810CC20 - movs r1, #0 - strh r1, [r0] - ldr r4, _0810CC24 - strh r1, [r4] - movs r0, #0x14 - movs r1, #0 - bl SetGpuReg - ldrh r1, [r4] - movs r0, #0x16 - bl SetGpuReg - mov r0, sp - bl sub_080A63F8 - mov r0, sp - ldrb r0, [r0, #9] - ldr r1, _0810CC28 - movs r2, #0x80 - lsls r2, r2, #4 - mov r3, sp - ldrh r3, [r3, #0xa] - bl LoadBgTiles - ldr r1, _0810CC2C - mov r0, sp - movs r2, #0 - bl sub_080A6628 - ldr r0, _0810CC30 - mov r1, sp - ldrb r1, [r1, #8] - lsls r1, r1, #4 - movs r2, #0x20 - bl LoadPalette - ldr r1, _0810CC34 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0810CC38 - strh r1, [r0, #0x26] - ldr r1, _0810CC3C - str r1, [r0] - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810CC1C: .4byte 0x00003F42 -_0810CC20: .4byte gUnknown_2022ACC -_0810CC24: .4byte gUnknown_2022ACE -_0810CC28: .4byte gUnknown_852776C -_0810CC2C: .4byte gUnknown_8D93294 -_0810CC30: .4byte gUnknown_8526F0C -_0810CC34: .4byte gUnknown_3005B60 -_0810CC38: .4byte 0x0000FFFF -_0810CC3C: .4byte AnimTask_OverlayFogTiles - thumb_func_end AnimTask_LoadMistTiles - - thumb_func_start AnimTask_OverlayFogTiles -AnimTask_OverlayFogTiles: @ 0x0810CC40 - push {r4, r5, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r2, _0810CC70 - ldr r3, _0810CC74 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r3 - ldrh r0, [r1, #0x26] - ldrh r5, [r2] - adds r0, r0, r5 - strh r0, [r2] - movs r2, #0x20 - ldrsh r0, [r1, r2] - cmp r0, #4 - bls _0810CC66 - b _0810CD9A -_0810CC66: - lsls r0, r0, #2 - ldr r1, _0810CC78 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0810CC70: .4byte gUnknown_2022ACC -_0810CC74: .4byte gUnknown_3005B60 -_0810CC78: .4byte _0810CC7C -_0810CC7C: @ jump table - .4byte _0810CC90 @ case 0 - .4byte _0810CCD4 @ case 1 - .4byte _0810CCF6 @ case 2 - .4byte _0810CD3A @ case 3 - .4byte _0810CD5C @ case 4 -_0810CC90: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r4, r0, r3 - ldrh r0, [r4, #0x1a] - adds r0, #1 - strh r0, [r4, #0x1a] - ldr r1, _0810CCD0 - movs r5, #0x1a - ldrsh r0, [r4, r5] - adds r0, r0, r1 - ldrb r1, [r0] - strh r1, [r4, #0x1e] - movs r0, #0x11 - subs r0, r0, r1 - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r1, #0x1e - ldrsh r0, [r4, r1] - cmp r0, #5 - bne _0810CD9A - ldrh r0, [r4, #0x20] - adds r0, #1 - strh r0, [r4, #0x20] - movs r0, #0 - strh r0, [r4, #0x1e] - b _0810CD9A - .align 2, 0 -_0810CCD0: .4byte gUnknown_857186C -_0810CCD4: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r1, r0, r3 - ldrh r0, [r1, #0x1e] - adds r0, #1 - strh r0, [r1, #0x1e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x51 - bne _0810CD9A - movs r0, #5 - strh r0, [r1, #0x1e] - ldrh r0, [r1, #0x20] - adds r0, #1 - strh r0, [r1, #0x20] - b _0810CD9A -_0810CCF6: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r4, r0, r3 - ldrh r0, [r4, #0x1c] - adds r0, #1 - strh r0, [r4, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - bne _0810CD9A - movs r0, #0 - strh r0, [r4, #0x1c] - ldrh r1, [r4, #0x1e] - subs r1, #1 - strh r1, [r4, #0x1e] - movs r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r2, #0x1e - ldrsh r1, [r4, r2] - cmp r1, #0 - bne _0810CD9A - ldrh r0, [r4, #0x20] - adds r0, #1 - strh r0, [r4, #0x20] - strh r1, [r4, #0x1e] - b _0810CD9A -_0810CD3A: - mov r0, sp - bl sub_080A63F8 - movs r0, #1 - bl sub_080A6530 - movs r0, #2 - bl sub_080A6530 - ldr r0, _0810CDA4 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x20] - adds r0, #1 - strh r0, [r1, #0x20] -_0810CD5C: - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810CD70 - movs r0, #1 - movs r1, #3 - movs r2, #0 - bl SetAnimBgAttribute -_0810CD70: - ldr r0, _0810CDA8 - movs r1, #0 - strh r1, [r0] - ldr r0, _0810CDAC - strh r1, [r0] - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #1 - movs r1, #4 - movs r2, #1 - bl SetAnimBgAttribute - adds r0, r4, #0 - bl DestroyAnimVisualTask -_0810CD9A: - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810CDA4: .4byte gUnknown_3005B60 -_0810CDA8: .4byte gUnknown_2022ACC -_0810CDAC: .4byte gUnknown_2022ACE - thumb_func_end AnimTask_OverlayFogTiles - - thumb_func_start InitPoisonGasCloudAnim -InitPoisonGasCloudAnim: @ 0x0810CDB0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - ldr r6, _0810CE98 - ldrh r0, [r6] - strh r0, [r5, #0x2e] - ldr r0, _0810CE9C - mov r8, r0 - ldrb r0, [r0] - movs r1, #2 - bl GetBattlerSpriteCoord - adds r4, r0, #0 - ldr r7, _0810CEA0 - ldrb r0, [r7] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - bhs _0810CDE4 - movs r0, #0x80 - lsls r0, r0, #8 - strh r0, [r5, #0x3c] -_0810CDE4: - ldr r3, _0810CEA4 - ldrb r0, [r7] - adds r0, r0, r3 - ldrb r1, [r0] - movs r2, #1 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _0810CE44 - ldrh r0, [r6, #2] - rsbs r0, r0, #0 - strh r0, [r6, #2] - ldrh r0, [r6, #6] - rsbs r0, r0, #0 - strh r0, [r6, #6] - movs r1, #0x3c - ldrsh r0, [r5, r1] - movs r1, #0x80 - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - beq _0810CE40 - mov r1, r8 - ldrb r0, [r1] - adds r0, r0, r3 - ldrb r1, [r0] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _0810CE40 - movs r0, #1 - bl GetAnimBattlerSpriteId - ldr r2, _0810CEA8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - adds r1, #0x43 - ldrb r0, [r1] - adds r0, #1 - adds r1, r5, #0 - adds r1, #0x43 - strb r0, [r1] -_0810CE40: - movs r0, #1 - strh r0, [r5, #0x3a] -_0810CE44: - ldr r4, _0810CE9C - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - ldr r6, _0810CE98 - movs r1, #0xe - ldrsh r0, [r6, r1] - cmp r0, #0 - beq _0810CEAC - ldrh r0, [r6, #2] - ldrh r1, [r5, #0x20] - adds r0, r0, r1 - strh r0, [r5, #0x30] - ldr r4, _0810CEA0 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r6, #6] - adds r0, r0, r1 - strh r0, [r5, #0x32] - ldrh r0, [r6, #4] - ldrh r1, [r5, #0x22] - adds r0, r0, r1 - strh r0, [r5, #0x34] - ldrb r0, [r4] - movs r1, #3 - b _0810CED4 - .align 2, 0 -_0810CE98: .4byte gUnknown_20380BE -_0810CE9C: .4byte gUnknown_20380D6 -_0810CEA0: .4byte gUnknown_20380D7 -_0810CEA4: .4byte gUnknown_2023D1A -_0810CEA8: .4byte gUnknown_20205AC -_0810CEAC: - ldrh r0, [r6, #2] - ldrh r1, [r5, #0x20] - adds r0, r0, r1 - strh r0, [r5, #0x30] - ldr r4, _0810CF1C - ldrb r0, [r4] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r6, #6] - adds r0, r0, r1 - strh r0, [r5, #0x32] - ldrh r0, [r6, #4] - ldrh r1, [r5, #0x22] - adds r0, r0, r1 - strh r0, [r5, #0x34] - ldrb r0, [r4] - movs r1, #1 -_0810CED4: - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r6, [r6, #8] - adds r0, r0, r6 - strh r0, [r5, #0x36] - ldrb r0, [r4] - bl GetBattlerSpriteBGPriority - lsls r0, r0, #0x18 - lsrs r0, r0, #0x10 - ldrh r1, [r5, #0x3c] - orrs r0, r1 - strh r0, [r5, #0x3c] - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810CF08 - movs r0, #1 - strh r0, [r5, #0x3a] - adds r1, r5, #0 - adds r1, #0x43 - movs r0, #0x80 - strb r0, [r1] -_0810CF08: - adds r0, r5, #0 - bl InitAnimLinearTranslation - ldr r0, _0810CF20 - str r0, [r5, #0x1c] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0810CF1C: .4byte gUnknown_20380D7 -_0810CF20: .4byte MovePoisonGasCloud - thumb_func_end InitPoisonGasCloudAnim - - thumb_func_start MovePoisonGasCloud -MovePoisonGasCloud: @ 0x0810CF24 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3c] - movs r5, #0xff - movs r1, #0xff - ands r1, r0 - cmp r1, #1 - beq _0810D00C - cmp r1, #1 - bgt _0810CF3E - cmp r1, #0 - beq _0810CF46 - b _0810D15C -_0810CF3E: - cmp r1, #2 - bne _0810CF44 - b _0810D120 -_0810CF44: - b _0810D15C -_0810CF46: - adds r0, r4, #0 - bl AnimTranslateLinear - ldr r1, _0810CF70 - movs r2, #0x38 - ldrsh r0, [r4, r2] - lsls r0, r0, #1 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - asrs r0, r0, #4 - ldrh r2, [r4, #0x24] - adds r0, r0, r2 - strh r0, [r4, #0x24] - movs r1, #0x3a - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0810CF74 - ldrh r0, [r4, #0x38] - subs r0, #8 - b _0810CF78 - .align 2, 0 -_0810CF70: .4byte gUnknown_82FA8CC -_0810CF74: - ldrh r0, [r4, #0x38] - adds r0, #8 -_0810CF78: - ands r0, r5 - strh r0, [r4, #0x38] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r0, #0 - ble _0810CF86 - b _0810D15C -_0810CF86: - movs r5, #0x50 - strh r5, [r4, #0x2e] - ldr r6, _0810CFD4 - ldrb r0, [r6] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x20] - strh r0, [r4, #0x30] - strh r0, [r4, #0x32] - ldrh r0, [r4, #0x26] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] - strh r0, [r4, #0x34] - adds r0, #0x1d - strh r0, [r4, #0x36] - ldrh r0, [r4, #0x3c] - adds r0, #1 - strh r0, [r4, #0x3c] - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810CFDC - ldr r1, _0810CFD8 - ldrb r0, [r6] - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0810CFDC - movs r0, #0xcc - strh r0, [r4, #0x38] - b _0810CFDE - .align 2, 0 -_0810CFD4: .4byte gUnknown_20380D7 -_0810CFD8: .4byte gUnknown_2023D1A -_0810CFDC: - strh r5, [r4, #0x38] -_0810CFDE: - movs r0, #0 - strh r0, [r4, #0x26] - ldr r1, _0810D008 - movs r2, #0x38 - ldrsh r0, [r4, r2] - lsls r0, r0, #1 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - asrs r0, r0, #3 - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x38] - adds r0, #2 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x38] - adds r0, r4, #0 - bl InitAnimLinearTranslation - b _0810D15C - .align 2, 0 -_0810D008: .4byte gUnknown_82FA8CC -_0810D00C: - adds r0, r4, #0 - bl AnimTranslateLinear - ldr r1, _0810D068 - movs r2, #0x38 - ldrsh r0, [r4, r2] - lsls r0, r0, #1 - adds r0, r0, r1 - movs r2, #0 - ldrsh r0, [r0, r2] - asrs r0, r0, #3 - ldrh r2, [r4, #0x24] - adds r0, r0, r2 - strh r0, [r4, #0x24] - movs r2, #0x38 - ldrsh r0, [r4, r2] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r1 - movs r2, #0 - ldrsh r1, [r0, r2] - lsls r0, r1, #1 - adds r0, r0, r1 - rsbs r0, r0, #0 - asrs r0, r0, #8 - ldrh r1, [r4, #0x26] - adds r0, r0, r1 - strh r0, [r4, #0x26] - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810D08A - ldrh r1, [r4, #0x38] - adds r0, r1, #0 - subs r0, #0x40 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r3, r1, #0 - cmp r0, #0x7f - bhi _0810D06C - ldrh r1, [r4, #0x3c] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - b _0810D074 - .align 2, 0 -_0810D068: .4byte gUnknown_82FA8CC -_0810D06C: - ldrh r1, [r4, #0x3c] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - adds r1, #1 -_0810D074: - movs r0, #3 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r4, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #5] - adds r0, r3, #4 - b _0810D0AA -_0810D08A: - ldrh r0, [r4, #0x38] - subs r0, #0x40 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x7f - bhi _0810D09E - adds r1, r4, #0 - adds r1, #0x43 - movs r0, #0x80 - b _0810D0A4 -_0810D09E: - adds r1, r4, #0 - adds r1, #0x43 - movs r0, #0x8c -_0810D0A4: - strb r0, [r1] - ldrh r0, [r4, #0x38] - subs r0, #4 -_0810D0AA: - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x38] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r0, #0 - bgt _0810D15C - movs r5, #0 - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x24] - ldrh r1, [r4, #0x20] - adds r0, r0, r1 - strh r0, [r4, #0x20] - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x26] - ldrh r2, [r4, #0x22] - adds r0, r0, r2 - strh r0, [r4, #0x22] - strh r0, [r4, #0x34] - adds r0, #4 - strh r0, [r4, #0x36] - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810D104 - ldr r1, _0810D0FC - ldr r0, _0810D100 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0810D104 - movs r0, #0x80 - lsls r0, r0, #1 - b _0810D106 - .align 2, 0 -_0810D0FC: .4byte gUnknown_2023D1A -_0810D100: .4byte gUnknown_20380D7 -_0810D104: - ldr r0, _0810D11C -_0810D106: - strh r0, [r4, #0x32] - ldrh r0, [r4, #0x3c] - adds r0, #1 - movs r1, #0 - strh r0, [r4, #0x3c] - strh r1, [r4, #0x26] - strh r1, [r4, #0x24] - adds r0, r4, #0 - bl sub_080A689C - b _0810D15C - .align 2, 0 -_0810D11C: .4byte 0x0000FFF0 -_0810D120: - adds r0, r4, #0 - bl AnimTranslateLinear - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810D15C - ldrb r0, [r4, #1] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0810D14E - ldrb r0, [r4, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - ldrb r1, [r4, #1] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #1] -_0810D14E: - adds r0, r4, #0 - bl DestroySprite - ldr r1, _0810D164 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] -_0810D15C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0810D164: .4byte gUnknown_203809E - thumb_func_end MovePoisonGasCloud - - thumb_func_start AnimTask_Hail1 -AnimTask_Hail1: @ 0x0810D168 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _0810D17C - adds r1, r1, r0 - ldr r0, _0810D180 - str r0, [r1] - bx lr - .align 2, 0 -_0810D17C: .4byte gUnknown_3005B60 -_0810D180: .4byte AnimTask_Hail2 - thumb_func_end AnimTask_Hail1 - - thumb_func_start AnimTask_Hail2 -AnimTask_Hail2: @ 0x0810D184 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _0810D1A8 - adds r4, r0, r1 - movs r0, #8 - ldrsh r5, [r4, r0] - cmp r5, #1 - beq _0810D1C8 - cmp r5, #1 - bgt _0810D1AC - cmp r5, #0 - beq _0810D1B2 - b _0810D22C - .align 2, 0 -_0810D1A8: .4byte gUnknown_3005B60 -_0810D1AC: - cmp r5, #2 - beq _0810D21E - b _0810D22C -_0810D1B2: - ldrh r0, [r4, #0x10] - adds r0, #1 - strh r0, [r4, #0x10] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - ble _0810D22C - strh r5, [r4, #0x10] - strh r5, [r4, #0x12] - strh r5, [r4, #0xc] - b _0810D204 -_0810D1C8: - ldrh r1, [r4, #0x12] - movs r3, #0x12 - ldrsh r0, [r4, r3] - cmp r0, #0 - bne _0810D218 - ldrb r0, [r4, #0xe] - ldrb r1, [r4, #0xc] - movs r3, #1 - bl GenerateHailParticle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810D1E8 - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] -_0810D1E8: - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - bne _0810D214 - ldrh r0, [r4, #0xe] - adds r0, #1 - strh r0, [r4, #0xe] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xa - bne _0810D20C -_0810D204: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _0810D22C -_0810D20C: - ldrh r0, [r4, #8] - subs r0, #1 - strh r0, [r4, #8] - b _0810D22C -_0810D214: - strh r5, [r4, #0x12] - b _0810D22C -_0810D218: - subs r0, r1, #1 - strh r0, [r4, #0x12] - b _0810D22C -_0810D21E: - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0810D22C - adds r0, r2, #0 - bl DestroyAnimVisualTask -_0810D22C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AnimTask_Hail2 - - thumb_func_start GenerateHailParticle -GenerateHailParticle: @ 0x0810D234 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sb, r1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov sl, r3 - movs r1, #0 - str r1, [sp, #4] - ldr r1, _0810D2AC - lsrs r0, r0, #0x16 - adds r4, r0, r1 - ldrb r0, [r4, #3] - lsls r0, r0, #0x18 - asrs r0, r0, #0x1c - mov r8, r0 - cmp r0, #2 - beq _0810D320 - ldrh r0, [r4, #2] - lsls r0, r0, #0x14 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r5, #0 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810D320 - movs r0, #1 - str r0, [sp, #4] - adds r0, r5, #0 - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - adds r0, r5, #0 - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - mov r1, r8 - cmp r1, #0 - beq _0810D2B0 - cmp r1, #1 - beq _0810D2E6 - b _0810D332 - .align 2, 0 -_0810D2AC: .4byte gUnknown_8571898 -_0810D2B0: - adds r0, r5, #0 - movs r1, #1 - bl GetBattlerSpriteCoordAttr - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #6 - bl __divsi3 - lsls r1, r7, #0x10 - asrs r1, r1, #0x10 - subs r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - adds r0, r5, #0 - movs r1, #0 - bl GetBattlerSpriteCoordAttr - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #6 - bl __divsi3 - lsls r1, r6, #0x10 - asrs r1, r1, #0x10 - subs r1, r1, r0 - b _0810D31A -_0810D2E6: - adds r0, r5, #0 - movs r1, #1 - bl GetBattlerSpriteCoordAttr - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #6 - bl __divsi3 - lsls r1, r7, #0x10 - asrs r1, r1, #0x10 - adds r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - adds r0, r5, #0 - movs r1, #0 - bl GetBattlerSpriteCoordAttr - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #6 - bl __divsi3 - lsls r1, r6, #0x10 - asrs r1, r1, #0x10 - adds r1, r1, r0 -_0810D31A: - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - b _0810D332 -_0810D320: - ldrh r0, [r4] - lsls r0, r0, #0x16 - asrs r0, r0, #6 - lsrs r7, r0, #0x10 - ldr r0, [r4] - lsls r0, r0, #0xc - asrs r0, r0, #0x16 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_0810D332: - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - adds r0, #8 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - lsls r1, r7, #0x10 - asrs r1, r1, #0x10 - subs r1, r1, r0 - ldr r0, _0810D38C - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r2, #8 - rsbs r2, r2, #0 - movs r3, #0x12 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0x40 - beq _0810D394 - lsls r4, r5, #4 - adds r4, r4, r5 - lsls r4, r4, #2 - ldr r0, _0810D390 - adds r4, r4, r0 - adds r0, r4, #0 - mov r1, sb - bl StartSpriteAffineAnim - mov r0, sp - ldrh r0, [r0, #4] - strh r0, [r4, #0x2e] - strh r7, [r4, #0x34] - strh r6, [r4, #0x36] - mov r1, sb - strh r1, [r4, #0x38] - mov r0, sp - ldrh r0, [r0] - strh r0, [r4, #0x3a] - mov r1, sl - strh r1, [r4, #0x3c] - movs r0, #1 - b _0810D396 - .align 2, 0 -_0810D38C: .4byte gUnknown_8571910 -_0810D390: .4byte gUnknown_20205AC -_0810D394: - movs r0, #0 -_0810D396: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GenerateHailParticle - - thumb_func_start AnimHailBegin -AnimHailBegin: @ 0x0810D3A8 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x20] - adds r0, #4 - strh r0, [r4, #0x20] - ldrh r1, [r4, #0x22] - adds r2, r1, #0 - adds r2, #8 - strh r2, [r4, #0x22] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r3, #0x34 - ldrsh r1, [r4, r3] - cmp r0, r1 - bge _0810D3D2 - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x36 - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _0810D482 -_0810D3D2: - movs r3, #0x2e - ldrsh r0, [r4, r3] - cmp r0, #1 - bne _0810D454 - movs r1, #0x38 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0810D454 - ldr r0, _0810D448 - 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, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x2e] - cmp r0, #0x40 - beq _0810D436 - ldr r2, _0810D44C - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r2, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _0810D450 - str r1, [r0] - movs r3, #0x2e - ldrsh r1, [r4, r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r4, #0x3a] - strh r1, [r0, #0x3a] - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r4, #0x3c] - strh r1, [r0, #0x3c] -_0810D436: - ldrb r0, [r4, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - adds r0, r4, #0 - bl DestroySprite - b _0810D482 - .align 2, 0 -_0810D448: .4byte gUnknown_857174C -_0810D44C: .4byte gUnknown_20205AC -_0810D450: .4byte AnimHailContinue -_0810D454: - ldr r3, _0810D488 - movs r2, #0x3c - ldrsh r1, [r4, r2] - lsls r1, r1, #1 - movs r0, #0x3a - ldrsh r2, [r4, r0] - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r1, r1, r0 - adds r3, #8 - adds r1, r1, r3 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - ldrb r0, [r4, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - adds r0, r4, #0 - bl DestroySprite -_0810D482: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810D488: .4byte gUnknown_3005B60 - thumb_func_end AnimHailBegin - - thumb_func_start AnimHailContinue -AnimHailContinue: @ 0x0810D48C - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x14 - bne _0810D4CC - ldr r3, _0810D4D4 - movs r0, #0x3c - ldrsh r1, [r4, r0] - lsls r1, r1, #1 - movs r0, #0x3a - ldrsh r2, [r4, r0] - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r1, r1, r0 - adds r3, #8 - adds r1, r1, r3 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - ldrb r0, [r4, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - adds r0, r4, #0 - bl DestroySprite -_0810D4CC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810D4D4: .4byte gUnknown_3005B60 - thumb_func_end AnimHailContinue - - thumb_func_start InitIceBallAnim -InitIceBallAnim: @ 0x0810D4D8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r0, _0810D558 - ldr r0, [r0] - ldrb r1, [r0, #0x11] - lsrs r0, r1, #4 - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - subs r0, r0, r1 - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #4 - bls _0810D4F6 - movs r1, #4 -_0810D4F6: - adds r0, r5, #0 - bl StartSpriteAffineAnim - adds r0, r5, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldr r6, _0810D55C - ldrh r0, [r6, #8] - strh r0, [r5, #0x2e] - ldr r0, _0810D560 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810D51E - ldrh r0, [r6, #4] - rsbs r0, r0, #0 - strh r0, [r6, #4] -_0810D51E: - ldr r4, _0810D564 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r6, #4] - adds r0, r0, r1 - strh r0, [r5, #0x32] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r6, #6] - adds r0, r0, r1 - strh r0, [r5, #0x36] - ldrh r0, [r6, #0xa] - strh r0, [r5, #0x38] - adds r0, r5, #0 - bl InitAnimArcTranslation - ldr r0, _0810D568 - str r0, [r5, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0810D558: .4byte gUnknown_20380A0 -_0810D55C: .4byte gUnknown_20380BE -_0810D560: .4byte gUnknown_20380D6 -_0810D564: .4byte gUnknown_20380D7 -_0810D568: .4byte sub_0810D56C - thumb_func_end InitIceBallAnim - - thumb_func_start sub_0810D56C -sub_0810D56C: @ 0x0810D56C - push {r4, lr} - adds r4, r0, #0 - bl TranslateAnimHorizontalArc - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810D58E - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAnim - ldr r0, _0810D594 - str r0, [r4, #0x1c] - ldr r1, _0810D598 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 -_0810D58E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810D594: .4byte RunStoredCallbackWhenAnimEnds -_0810D598: .4byte DestroyAnimSprite - thumb_func_end sub_0810D56C - - thumb_func_start sub_0810D59C -sub_0810D59C: @ 0x0810D59C - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrh r2, [r4, #4] - lsls r1, r2, #0x16 - lsrs r1, r1, #0x16 - adds r1, #8 - ldr r3, _0810D5F0 - adds r0, r3, #0 - ands r1, r0 - ldr r0, _0810D5F4 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, #4] - adds r0, r4, #0 - movs r1, #1 - bl InitSpritePosToAnimTarget - bl sub_0806F0A4 - movs r5, #0xff - ands r5, r0 - movs r0, #0x80 - lsls r0, r0, #1 - adds r6, r0, #0 - orrs r5, r6 - bl sub_0806F0A4 - ldr r1, _0810D5F8 - ands r1, r0 - adds r0, r1, #0 - cmp r0, #0xff - ble _0810D5E2 - subs r0, r6, r0 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 -_0810D5E2: - strh r5, [r4, #0x30] - strh r1, [r4, #0x32] - ldr r0, _0810D5FC - str r0, [r4, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0810D5F0: .4byte 0x000003FF -_0810D5F4: .4byte 0xFFFFFC00 -_0810D5F8: .4byte 0x000001FF -_0810D5FC: .4byte sub_0810D600 - thumb_func_end sub_0810D59C - - thumb_func_start sub_0810D600 -sub_0810D600: @ 0x0810D600 - 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, r1, r4 - strh r1, [r2, #0x36] - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0810D624 - lsls r0, r3, #0x10 - asrs r0, r0, #0x18 - rsbs r0, r0, #0 - b _0810D628 -_0810D624: - lsls r0, r3, #0x10 - asrs r0, r0, #0x18 -_0810D628: - strh r0, [r2, #0x24] - ldrh r0, [r2, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - strh r0, [r2, #0x26] - ldrh r0, [r2, #0x2e] - adds r0, #1 - strh r0, [r2, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x15 - bne _0810D646 - adds r0, r2, #0 - bl DestroyAnimSprite -_0810D646: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0810D600 - - thumb_func_start AnimTask_GetRolloutCounter -AnimTask_GetRolloutCounter: @ 0x0810D64C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0810D674 - ldrb r3, [r1] - lsls r3, r3, #1 - adds r3, r3, r1 - ldr r1, _0810D678 - ldr r1, [r1] - ldrb r1, [r1, #0x11] - lsrs r2, r1, #4 - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - subs r2, r2, r1 - subs r2, #1 - strh r2, [r3] - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_0810D674: .4byte gUnknown_20380BE -_0810D678: .4byte gUnknown_20380A0 - thumb_func_end AnimTask_GetRolloutCounter - - thumb_func_start unc_080B08A0 -unc_080B08A0: @ 0x0810D67C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _0810D6AC - movs r0, #0 - ldrsh r1, [r5, r0] - adds r0, r4, #0 - bl SetAnimSpriteInitialXOffset - ldrh r0, [r5, #2] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] - movs r0, #0xf - strh r0, [r4, #0x2e] - ldr r0, _0810D6B0 - str r0, [r4, #0x1c] - ldr r1, _0810D6B4 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810D6AC: .4byte gUnknown_20380BE -_0810D6B0: .4byte WaitAnimForDuration -_0810D6B4: .4byte DestroyAnimSprite - thumb_func_end unc_080B08A0 - - thumb_func_start sub_0810D6B8 -sub_0810D6B8: @ 0x0810D6B8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0810D6FC - movs r1, #0xe - ldrsh r0, [r4, r1] - cmp r0, #1 - bne _0810D6E0 - ldr r0, _0810D700 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810D6E0 - ldrh r0, [r4, #2] - rsbs r0, r0, #0 - strh r0, [r4, #2] - ldrh r0, [r4, #6] - rsbs r0, r0, #0 - strh r0, [r4, #6] -_0810D6E0: - ldr r4, _0810D6FC - ldrb r1, [r4, #0xc] - adds r0, r5, #0 - bl StartSpriteAnim - movs r0, #0 - strh r0, [r4, #0xc] - adds r0, r5, #0 - bl sub_080A7200 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810D6FC: .4byte gUnknown_20380BE -_0810D700: .4byte gUnknown_20380D6 - thumb_func_end sub_0810D6B8 - - thumb_func_start sub_0810D704 -sub_0810D704: @ 0x0810D704 - push {r4, lr} - adds r4, r0, #0 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810D720 - ldr r0, _0810D72C - ldrh r1, [r0, #2] - rsbs r1, r1, #0 - strh r1, [r0, #2] - ldrh r1, [r0, #6] - rsbs r1, r1, #0 - strh r1, [r0, #6] -_0810D720: - adds r0, r4, #0 - bl sub_0810D6B8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810D72C: .4byte gUnknown_20380BE - thumb_func_end sub_0810D704 - - thumb_func_start AnimBasicFistOrFoot -AnimBasicFistOrFoot: @ 0x0810D730 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0810D750 - ldrb r1, [r4, #8] - bl StartSpriteAnim - movs r1, #6 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0810D754 - adds r0, r5, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - b _0810D75C - .align 2, 0 -_0810D750: .4byte gUnknown_20380BE -_0810D754: - adds r0, r5, #0 - movs r1, #1 - bl InitSpritePosToAnimTarget -_0810D75C: - ldr r0, _0810D774 - ldrh r0, [r0, #4] - strh r0, [r5, #0x2e] - ldr r0, _0810D778 - str r0, [r5, #0x1c] - ldr r1, _0810D77C - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810D774: .4byte gUnknown_20380BE -_0810D778: .4byte WaitAnimForDuration -_0810D77C: .4byte DestroyAnimSprite - thumb_func_end AnimBasicFistOrFoot - - thumb_func_start sub_0810D780 -sub_0810D780: @ 0x0810D780 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - ldr r0, _0810D79C - movs r2, #0 - ldrsh r1, [r0, r2] - mov sb, r0 - cmp r1, #0 - bne _0810D7A4 - ldr r0, _0810D7A0 - b _0810D7A6 - .align 2, 0 -_0810D79C: .4byte gUnknown_20380BE -_0810D7A0: .4byte gUnknown_20380D6 -_0810D7A4: - ldr r0, _0810D8EC -_0810D7A6: - ldrb r0, [r0] - mov r8, r0 - mov r4, sb - movs r3, #4 - ldrsh r0, [r4, r3] - cmp r0, #0 - bge _0810D7C4 - bl sub_0806F0A4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #5 - bl __umodsi3 - strh r0, [r4, #4] -_0810D7C4: - ldrb r1, [r4, #4] - adds r0, r5, #0 - bl StartSpriteAnim - mov r0, r8 - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - mov r0, r8 - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - mov r0, r8 - movs r1, #1 - bl GetBattlerSpriteCoordAttr - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - lsrs r0, r0, #0x1f - adds r1, r1, r0 - lsls r1, r1, #0xf - lsrs r6, r1, #0x10 - mov r0, r8 - movs r1, #0 - bl GetBattlerSpriteCoordAttr - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _0810D80E - adds r0, #3 -_0810D80E: - lsls r4, r0, #0xe - lsrs r4, r4, #0x10 - bl sub_0806F0A4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r6, #0x10 - asrs r1, r1, #0x10 - bl __modsi3 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - bl sub_0806F0A4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - adds r1, r4, #0 - bl __modsi3 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - bl sub_0806F0A4 - movs r7, #1 - adds r1, r7, #0 - ands r1, r0 - cmp r1, #0 - beq _0810D850 - lsls r0, r6, #0x10 - rsbs r0, r0, #0 - lsrs r6, r0, #0x10 -_0810D850: - bl sub_0806F0A4 - adds r1, r7, #0 - ands r1, r0 - cmp r1, #0 - beq _0810D862 - lsls r0, r4, #0x10 - rsbs r0, r0, #0 - lsrs r4, r0, #0x10 -_0810D862: - ldr r0, _0810D8F0 - add r0, r8 - ldrb r1, [r0] - adds r0, r7, #0 - ands r0, r1 - cmp r0, #0 - bne _0810D878 - lsls r0, r4, #0x10 - ldr r1, _0810D8F4 - adds r0, r0, r1 - lsrs r4, r0, #0x10 -_0810D878: - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - ldrh r2, [r5, #0x20] - adds r0, r0, r2 - strh r0, [r5, #0x20] - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - ldrh r3, [r5, #0x22] - adds r0, r0, r3 - strh r0, [r5, #0x22] - mov r1, sb - ldrh r0, [r1, #2] - strh r0, [r5, #0x2e] - ldr r0, _0810D8F8 - 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, #1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x3c] - cmp r0, #0x40 - beq _0810D8DC - movs r0, #0x3c - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _0810D8FC - adds r0, r0, r4 - movs r1, #0 - bl StartSpriteAffineAnim - movs r2, #0x3c - ldrsh r1, [r5, r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, #0x1c - adds r0, r0, r4 - ldr r1, _0810D900 - str r1, [r0] -_0810D8DC: - ldr r0, _0810D904 - str r0, [r5, #0x1c] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0810D8EC: .4byte gUnknown_20380D7 -_0810D8F0: .4byte gUnknown_2023D1A -_0810D8F4: .4byte 0xFFF00000 -_0810D8F8: .4byte gUnknown_8572F3C -_0810D8FC: .4byte gUnknown_20205AC -_0810D900: .4byte sub_08007140 -_0810D904: .4byte sub_0810D908 - thumb_func_end sub_0810D780 - - thumb_func_start sub_0810D908 -sub_0810D908: @ 0x0810D908 - push {r4, r5, lr} - adds r5, r0, #0 - ldrh r1, [r5, #0x2e] - movs r2, #0x2e - ldrsh r0, [r5, r2] - cmp r0, #0 - bne _0810D950 - movs r1, #0x3c - ldrsh r0, [r5, r1] - cmp r0, #0x40 - beq _0810D944 - ldr r4, _0810D94C - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r0, [r0, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - movs r0, #0x3c - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite -_0810D944: - adds r0, r5, #0 - bl DestroyAnimSprite - b _0810D954 - .align 2, 0 -_0810D94C: .4byte gUnknown_20205AC -_0810D950: - subs r0, r1, #1 - strh r0, [r5, #0x2e] -_0810D954: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0810D908 - - thumb_func_start sub_0810D95C -sub_0810D95C: @ 0x0810D95C - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimTarget - movs r0, #0x1e - strh r0, [r4, #0x2e] - ldr r0, _0810D97C - movs r1, #4 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _0810D980 - ldrh r0, [r4, #0x20] - subs r0, #0x14 - strh r0, [r4, #0x32] - b _0810D992 - .align 2, 0 -_0810D97C: .4byte gUnknown_20380BE -_0810D980: - ldrh r0, [r4, #0x20] - adds r0, #0x14 - strh r0, [r4, #0x32] - adds r2, r4, #0 - adds r2, #0x3f - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] -_0810D992: - ldrh r0, [r4, #0x22] - subs r0, #0x14 - strh r0, [r4, #0x36] - ldr r0, _0810D9AC - str r0, [r4, #0x1c] - ldr r1, _0810D9B0 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810D9AC: .4byte sub_080A67B4 -_0810D9B0: .4byte sub_0810D9B4 - thumb_func_end sub_0810D95C - - thumb_func_start sub_0810D9B4 -sub_0810D9B4: @ 0x0810D9B4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrh r0, [r5, #0x38] - adds r0, #1 - movs r6, #0 - strh r0, [r5, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xb - bne _0810D9F4 - 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, #8 - strh r0, [r5, #0x2e] - adds r2, r2, r4 - strh r2, [r5, #0x20] - adds r1, r1, r3 - strh r1, [r5, #0x22] - strh r6, [r5, #0x26] - strh r6, [r5, #0x24] - ldr r0, _0810D9FC - str r0, [r5, #0x1c] - ldr r1, _0810DA00 - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 -_0810D9F4: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0810D9FC: .4byte sub_080A67B4 -_0810DA00: .4byte DestroyAnimSprite - thumb_func_end sub_0810D9B4 - - thumb_func_start sub_0810DA04 -sub_0810DA04: @ 0x0810DA04 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r0, _0810DA80 - ldrb r1, [r0] - movs r0, #2 - ldr r2, _0810DA84 - eors r0, r1 - ldrb r1, [r2] - cmp r0, r1 - bne _0810DA30 - ldrb r0, [r2] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0810DA30 - ldr r1, _0810DA88 - movs r2, #0 - ldrsh r0, [r1, r2] - rsbs r0, r0, #0 - strh r0, [r1] -_0810DA30: - adds r0, r6, #0 - movs r1, #1 - bl InitSpritePosToAnimTarget - ldr r0, _0810DA80 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810DA4E - ldr r1, _0810DA88 - ldrh r0, [r1, #4] - rsbs r0, r0, #0 - strh r0, [r1, #4] -_0810DA4E: - ldr r4, _0810DA88 - ldrh r0, [r4, #6] - movs r5, #0 - strh r0, [r6, #0x2e] - ldrh r0, [r6, #0x20] - strh r0, [r6, #0x30] - ldrh r1, [r4, #4] - adds r0, r0, r1 - strh r0, [r6, #0x32] - ldrh r0, [r6, #0x22] - strh r0, [r6, #0x34] - strh r0, [r6, #0x36] - adds r0, r6, #0 - bl InitAnimLinearTranslation - ldrh r0, [r4, #0xa] - strh r0, [r6, #0x38] - ldrh r0, [r4, #8] - strh r0, [r6, #0x3a] - strh r5, [r6, #0x3c] - ldr r0, _0810DA8C - str r0, [r6, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0810DA80: .4byte gUnknown_20380D6 -_0810DA84: .4byte gUnknown_20380D7 -_0810DA88: .4byte gUnknown_20380BE -_0810DA8C: .4byte sub_0810DA90 - thumb_func_end sub_0810DA04 - - thumb_func_start sub_0810DA90 -sub_0810DA90: @ 0x0810DA90 - push {r4, lr} - adds r4, r0, #0 - bl AnimTranslateLinear - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810DABC - ldrh r0, [r4, #0x3c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - movs r2, #0x38 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, #0x26] - adds r0, r0, r1 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x3a] - ldrh r2, [r4, #0x3c] - adds r0, r0, r2 - strh r0, [r4, #0x3c] - b _0810DAC2 -_0810DABC: - adds r0, r4, #0 - bl DestroyAnimSprite -_0810DAC2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0810DA90 - - thumb_func_start AnimSpinningKickOrPunch -AnimSpinningKickOrPunch: @ 0x0810DAC8 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimTarget - ldr r5, _0810DAF4 - ldrb r1, [r5, #4] - adds r0, r4, #0 - bl StartSpriteAnim - ldrh r0, [r5, #6] - strh r0, [r4, #0x2e] - ldr r0, _0810DAF8 - str r0, [r4, #0x1c] - ldr r1, _0810DAFC - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810DAF4: .4byte gUnknown_20380BE -_0810DAF8: .4byte WaitAnimForDuration -_0810DAFC: .4byte AnimSpinningKickOrPunchFinish - thumb_func_end AnimSpinningKickOrPunch - - thumb_func_start AnimSpinningKickOrPunchFinish -AnimSpinningKickOrPunchFinish: @ 0x0810DB00 - 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, _0810DB2C - str r0, [r4, #0x1c] - ldr r1, _0810DB30 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810DB2C: .4byte WaitAnimForDuration -_0810DB30: .4byte DestroyAnimSprite - thumb_func_end AnimSpinningKickOrPunchFinish - - thumb_func_start AnimStompFoot -AnimStompFoot: @ 0x0810DB34 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimTarget - ldr r0, _0810DB50 - ldrh r0, [r0, #4] - strh r0, [r4, #0x2e] - ldr r0, _0810DB54 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810DB50: .4byte gUnknown_20380BE -_0810DB54: .4byte AnimStompFootStep - thumb_func_end AnimStompFoot - - thumb_func_start AnimStompFootStep -AnimStompFootStep: @ 0x0810DB58 - push {r4, r5, lr} - adds r5, r0, #0 - ldrh r0, [r5, #0x2e] - subs r0, #1 - strh r0, [r5, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _0810DB9C - movs r0, #6 - strh r0, [r5, #0x2e] - ldr r4, _0810DBA4 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x32] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x36] - ldr r0, _0810DBA8 - str r0, [r5, #0x1c] - ldr r1, _0810DBAC - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 -_0810DB9C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810DBA4: .4byte gUnknown_20380D7 -_0810DBA8: .4byte sub_080A67B4 -_0810DBAC: .4byte AnimStompFootEnd - thumb_func_end AnimStompFootStep - - thumb_func_start AnimStompFootEnd -AnimStompFootEnd: @ 0x0810DBB0 - push {lr} - movs r1, #0xf - strh r1, [r0, #0x2e] - ldr r1, _0810DBC4 - str r1, [r0, #0x1c] - ldr r1, _0810DBC8 - bl StoreSpriteCallbackInData6 - pop {r0} - bx r0 - .align 2, 0 -_0810DBC4: .4byte WaitAnimForDuration -_0810DBC8: .4byte DestroyAnimSprite - thumb_func_end AnimStompFootEnd - - thumb_func_start sub_0810DBCC -sub_0810DBCC: @ 0x0810DBCC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0810DBF8 - adds r0, r4, #0 - movs r1, #1 - bl InitSpritePosToAnimTarget - ldr r1, _0810DBF4 - ldrh r0, [r1, #4] - strh r0, [r4, #0x30] - ldrh r0, [r1, #6] - strh r0, [r4, #0x32] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - b _0810DC54 - .align 2, 0 -_0810DBF4: .4byte gUnknown_20380BE -_0810DBF8: - ldrh r0, [r4, #0x30] - ldrh r2, [r4, #0x36] - adds r0, r0, r2 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - 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, #3 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x34] - cmp r0, #0x64 - ble _0810DC46 - movs r0, #0x34 - ldrsh r1, [r4, r0] - lsrs r0, r1, #0x1f - adds r0, r1, r0 - asrs r0, r0, #1 - lsls r0, r0, #1 - subs r1, r1, r0 - adds r3, r4, #0 - adds r3, #0x3e - movs r0, #1 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r3] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_0810DC46: - movs r1, #0x34 - ldrsh r0, [r4, r1] - cmp r0, #0x78 - ble _0810DC54 - adds r0, r4, #0 - bl DestroyAnimSprite -_0810DC54: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0810DBCC - - thumb_func_start sub_0810DC5C -sub_0810DC5C: @ 0x0810DC5C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0810DC70 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _0810DC78 - ldr r4, _0810DC74 - b _0810DC7A - .align 2, 0 -_0810DC70: .4byte gUnknown_20380BE -_0810DC74: .4byte gUnknown_20380D6 -_0810DC78: - ldr r4, _0810DCC0 -_0810DC7A: - ldrb r0, [r4] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - ldr r1, _0810DCC4 - ldrh r0, [r1, #2] - ldrh r2, [r5, #0x20] - adds r0, r0, r2 - movs r2, #0 - strh r0, [r5, #0x20] - ldrh r0, [r1, #4] - ldrh r3, [r5, #0x22] - adds r0, r0, r3 - strh r0, [r5, #0x22] - strh r2, [r5, #0x2e] - ldrh r0, [r1, #6] - strh r0, [r5, #0x30] - ldrh r0, [r1, #8] - strh r0, [r5, #0x32] - strh r2, [r5, #0x34] - ldr r0, _0810DCC8 - str r0, [r5, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810DCC0: .4byte gUnknown_20380D7 -_0810DCC4: .4byte gUnknown_20380BE -_0810DCC8: .4byte sub_0810DCCC - thumb_func_end sub_0810DC5C - - thumb_func_start sub_0810DCCC -sub_0810DCCC: @ 0x0810DCCC - push {lr} - adds r1, r0, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - cmp r2, #0 - beq _0810DCDE - cmp r2, #1 - beq _0810DD02 - b _0810DD3C -_0810DCDE: - ldrh r0, [r1, #0x30] - subs r0, #1 - strh r0, [r1, #0x30] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0810DD3C - movs r2, #0x32 - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _0810DCFA - adds r0, r1, #0 - bl DestroyAnimSprite - b _0810DD3C -_0810DCFA: - ldrh r0, [r1, #0x2e] - adds r0, #1 - strh r0, [r1, #0x2e] - b _0810DD3C -_0810DD02: - ldrh r0, [r1, #0x30] - adds r0, #1 - strh r0, [r1, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _0810DD2A - movs r0, #0 - strh r0, [r1, #0x30] - ldrh r0, [r1, #0x34] - adds r0, #1 - strh r0, [r1, #0x34] - ands r0, r2 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0810DD26 - movs r0, #2 - b _0810DD28 -_0810DD26: - ldr r0, _0810DD40 -_0810DD28: - strh r0, [r1, #0x24] -_0810DD2A: - ldrh r0, [r1, #0x32] - subs r0, #1 - strh r0, [r1, #0x32] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0810DD3C - adds r0, r1, #0 - bl DestroyAnimSprite -_0810DD3C: - pop {r0} - bx r0 - .align 2, 0 -_0810DD40: .4byte 0x0000FFFE - thumb_func_end sub_0810DCCC - - thumb_func_start DaycarePrintMonLvl -DaycarePrintMonLvl: @ 0x0810DD44 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r6, _0810DD68 - movs r1, #0 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _0810DD70 - ldr r4, _0810DD6C - ldrb r0, [r4] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r2, [r6, #4] - adds r0, r0, r2 - b _0810DD82 - .align 2, 0 -_0810DD68: .4byte gUnknown_20380BE -_0810DD6C: .4byte gUnknown_20380D6 -_0810DD70: - ldr r4, _0810DDCC - ldrb r0, [r4] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r6, #4] - adds r0, r0, r1 -_0810DD82: - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r6, [r6, #6] - adds r0, r0, r6 - strh r0, [r5, #0x22] - ldrh r2, [r5, #4] - lsls r1, r2, #0x16 - lsrs r1, r1, #0x16 - ldr r3, _0810DDD0 - movs r4, #2 - ldrsh r0, [r3, r4] - lsls r0, r0, #4 - adds r1, r1, r0 - ldr r4, _0810DDD4 - adds r0, r4, #0 - ands r1, r0 - ldr r0, _0810DDD8 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, #4] - movs r1, #0 - movs r0, #0 - strh r0, [r5, #0x2e] - movs r2, #2 - ldrsh r0, [r3, r2] - cmp r0, #1 - beq _0810DDF0 - cmp r0, #1 - bgt _0810DDDC - cmp r0, #0 - beq _0810DDE6 - b _0810DE16 - .align 2, 0 -_0810DDCC: .4byte gUnknown_20380D7 -_0810DDD0: .4byte gUnknown_20380BE -_0810DDD4: .4byte 0x000003FF -_0810DDD8: .4byte 0xFFFFFC00 -_0810DDDC: - cmp r0, #2 - beq _0810DE00 - cmp r0, #3 - beq _0810DE10 - b _0810DE16 -_0810DDE6: - ldr r0, _0810DDEC - b _0810DE10 - .align 2, 0 -_0810DDEC: .4byte 0x0000FFFD -_0810DDF0: - movs r0, #3 - strh r0, [r5, #0x3a] - ldr r0, _0810DDFC - strh r0, [r5, #0x3c] - b _0810DE1E - .align 2, 0 -_0810DDFC: .4byte 0x0000FFFD -_0810DE00: - ldr r0, _0810DE0C - strh r0, [r5, #0x3a] - movs r0, #3 - strh r0, [r5, #0x3c] - b _0810DE1E - .align 2, 0 -_0810DE0C: .4byte 0x0000FFFD -_0810DE10: - strh r0, [r5, #0x3a] - strh r0, [r5, #0x3c] - b _0810DE1E -_0810DE16: - adds r0, r5, #0 - bl DestroyAnimSprite - b _0810DE22 -_0810DE1E: - ldr r0, _0810DE28 - str r0, [r5, #0x1c] -_0810DE22: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0810DE28: .4byte sub_0810DE2C - thumb_func_end DaycarePrintMonLvl - - thumb_func_start sub_0810DE2C -sub_0810DE2C: @ 0x0810DE2C - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0x3a] - ldrh r2, [r1, #0x20] - adds r0, r0, r2 - strh r0, [r1, #0x20] - ldrh r0, [r1, #0x3c] - ldrh r2, [r1, #0x22] - adds r0, r0, r2 - strh r0, [r1, #0x22] - ldrh r0, [r1, #0x2e] - adds r0, #1 - strh r0, [r1, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x28 - ble _0810DE54 - adds r0, r1, #0 - bl DestroyAnimSprite -_0810DE54: - pop {r0} - bx r0 - thumb_func_end sub_0810DE2C - - thumb_func_start sub_0810DE58 -sub_0810DE58: @ 0x0810DE58 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0810DEA4 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _0810DEB4 - ldr r4, _0810DEA8 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - ldr r0, _0810DEAC - ldrb r0, [r0] - bl GetBattlerSpriteBGPriority - movs r1, #3 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r5, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #5] - ldr r0, _0810DEB0 - b _0810DED0 - .align 2, 0 -_0810DEA4: .4byte gUnknown_20380BE -_0810DEA8: .4byte gUnknown_2023EAF -_0810DEAC: .4byte gUnknown_20380D6 -_0810DEB0: .4byte gUnknown_20380D7 -_0810DEB4: - ldr r0, _0810DEEC - ldrb r0, [r0] - bl GetBattlerSpriteBGPriority - movs r1, #3 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r5, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #5] - ldr r0, _0810DEF0 -_0810DED0: - ldrb r0, [r0] - strh r0, [r5, #0x3c] - movs r0, #0 - strh r0, [r5, #0x2e] - movs r0, #0xc - strh r0, [r5, #0x30] - movs r0, #8 - strh r0, [r5, #0x32] - ldr r0, _0810DEF4 - str r0, [r5, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810DEEC: .4byte gUnknown_20380D7 -_0810DEF0: .4byte gUnknown_20380D6 -_0810DEF4: .4byte sub_0810DEF8 - thumb_func_end sub_0810DE58 - - thumb_func_start sub_0810DEF8 -sub_0810DEF8: @ 0x0810DEF8 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xb4 - bne _0810DF54 - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x10 - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x20] - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x3c] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x32] - ldrh r0, [r4, #0x22] - strh r0, [r4, #0x34] - ldrh r0, [r4, #0x3c] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl InitAnimLinearTranslation - ldr r1, _0810DF5C - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _0810DF60 - str r0, [r4, #0x1c] -_0810DF54: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810DF5C: .4byte DestroySpriteAndMatrix -_0810DF60: .4byte sub_080A6860 - thumb_func_end sub_0810DEF8 - - thumb_func_start sub_0810DF64 -sub_0810DF64: @ 0x0810DF64 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0810DFB0 - ldrh r0, [r4] - strh r0, [r5, #0x20] - movs r2, #0x78 - strh r2, [r5, #0x22] - ldrh r0, [r4, #6] - strh r0, [r5, #0x2e] - adds r0, r5, #0 - adds r0, #0x36 - adds r1, r5, #0 - adds r1, #0x38 - lsls r2, r2, #8 - bl StorePointerInVars - ldrh r0, [r4, #2] - strh r0, [r5, #0x3a] - ldrh r2, [r5, #4] - lsls r1, r2, #0x16 - lsrs r1, r1, #0x16 - movs r3, #4 - ldrsh r0, [r4, r3] - lsls r0, r0, #2 - adds r1, r1, r0 - ldr r3, _0810DFB4 - adds r0, r3, #0 - ands r1, r0 - ldr r0, _0810DFB8 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, #4] - ldr r0, _0810DFBC - str r0, [r5, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810DFB0: .4byte gUnknown_20380BE -_0810DFB4: .4byte 0x000003FF -_0810DFB8: .4byte 0xFFFFFC00 -_0810DFBC: .4byte sub_0810DFC0 - thumb_func_end sub_0810DF64 - - thumb_func_start sub_0810DFC0 -sub_0810DFC0: @ 0x0810DFC0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - movs r1, #0x2e - ldrsh r0, [r7, r1] - cmp r0, #0 - beq _0810E012 - movs r2, #0x36 - ldrsh r0, [r7, r2] - movs r2, #0x38 - ldrsh r1, [r7, r2] - bl LoadPointerFromVars - adds r4, r0, #0 - movs r1, #0x3a - ldrsh r0, [r7, r1] - subs r4, r4, r0 - adds r0, r7, #0 - adds r0, #0x36 - adds r1, r7, #0 - adds r1, #0x38 - adds r2, r4, #0 - bl StorePointerInVars - asrs r4, r4, #8 - strh r4, [r7, #0x22] - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - movs r0, #8 - rsbs r0, r0, #0 - cmp r4, r0 - bge _0810E00A - adds r0, r7, #0 - bl DestroyAnimSprite - b _0810E068 -_0810E00A: - ldrh r0, [r7, #0x2e] - subs r0, #1 - strh r0, [r7, #0x2e] - b _0810E068 -_0810E012: - ldr r4, _0810E074 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r2, _0810E078 - mov r8, r2 - ldrb r0, [r2] - movs r1, #2 - bl GetBattlerSpriteCoord - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r1, r8 - ldrb r0, [r1] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - subs r4, r4, r6 - strh r4, [r7, #0x2e] - lsrs r0, r0, #0x18 - subs r0, r0, r5 - strh r0, [r7, #0x30] - ldrh r0, [r7, #0x20] - lsls r0, r0, #4 - strh r0, [r7, #0x32] - ldrh r0, [r7, #0x22] - lsls r0, r0, #4 - strh r0, [r7, #0x34] - ldr r0, _0810E07C - str r0, [r7, #0x1c] -_0810E068: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0810E074: .4byte gUnknown_20380D6 -_0810E078: .4byte gUnknown_20380D7 -_0810E07C: .4byte sub_0810E080 - thumb_func_end sub_0810DFC0 - - thumb_func_start sub_0810E080 -sub_0810E080: @ 0x0810E080 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x2e] - ldrh r1, [r2, #0x32] - adds r0, r0, r1 - strh r0, [r2, #0x32] - ldrh r1, [r2, #0x30] - ldrh r3, [r2, #0x34] - adds r1, r1, r3 - strh r1, [r2, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - strh r0, [r2, #0x20] - lsls r1, r1, #0x10 - asrs r3, r1, #0x14 - strh r3, [r2, #0x22] - adds r0, #8 - lsls r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _0810E0BA - adds r1, r3, #0 - movs r0, #8 - rsbs r0, r0, #0 - cmp r1, r0 - blt _0810E0BA - cmp r1, #0x78 - ble _0810E0C0 -_0810E0BA: - adds r0, r2, #0 - bl DestroyAnimSprite -_0810E0C0: - pop {r0} - bx r0 - thumb_func_end sub_0810E080 - - thumb_func_start sub_0810E0C4 -sub_0810E0C4: @ 0x0810E0C4 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0810E0F8 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _0810E108 - ldr r4, _0810E0FC - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - ldr r0, _0810E100 - ldrb r4, [r0] - ldr r0, _0810E104 - b _0810E10E - .align 2, 0 -_0810E0F8: .4byte gUnknown_20380BE -_0810E0FC: .4byte gUnknown_2023EAF -_0810E100: .4byte gUnknown_20380D7 -_0810E104: .4byte gUnknown_20380D6 -_0810E108: - ldr r0, _0810E140 - ldrb r4, [r0] - ldr r0, _0810E144 -_0810E10E: - ldrb r0, [r0] - bl GetBattlerSpriteBGPriority - movs r1, #3 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r5, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #5] - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810E148 - ldrb r2, [r5, #3] - lsls r1, r2, #0x1a - lsrs r1, r1, #0x1b - movs r0, #8 - orrs r1, r0 - lsls r1, r1, #1 - subs r0, #0x47 - b _0810E162 - .align 2, 0 -_0810E140: .4byte gUnknown_20380D6 -_0810E144: .4byte gUnknown_20380D7 -_0810E148: - adds r0, r4, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810E168 - ldrb r2, [r5, #3] - lsls r1, r2, #0x1a - lsrs r1, r1, #0x1b - movs r0, #0x18 - orrs r1, r0 - lsls r1, r1, #1 - subs r0, #0x57 -_0810E162: - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #3] -_0810E168: - movs r0, #0x10 - strh r0, [r5, #0x2e] - ldrh r0, [r5, #0x20] - strh r0, [r5, #0x30] - adds r0, r4, #0 - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x32] - ldrh r0, [r5, #0x22] - strh r0, [r5, #0x34] - adds r0, r4, #0 - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x36] - adds r0, r5, #0 - bl InitAnimLinearTranslation - ldr r1, _0810E1A8 - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _0810E1AC - str r0, [r5, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810E1A8: .4byte DestroyAnimSprite -_0810E1AC: .4byte sub_080A6860 - thumb_func_end sub_0810E0C4 - - thumb_func_start sub_0810E1B0 -sub_0810E1B0: @ 0x0810E1B0 - 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 _0810E1C6 - adds r0, r4, #0 - bl DestroyAnimSprite -_0810E1C6: - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0810E1B0 - - thumb_func_start sub_0810E1D4 -sub_0810E1D4: @ 0x0810E1D4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r4, _0810E250 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - ldr r1, _0810E254 - ldrh r0, [r1, #6] - strh r0, [r5, #0x30] - ldrh r0, [r1] - strh r0, [r5, #0x32] - ldrh r0, [r1, #2] - strh r0, [r5, #0x34] - ldrh r0, [r1, #4] - strh r0, [r5, #0x36] - ldr r0, _0810E258 - ldrb r6, [r0] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810E21E - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_0810E21E: - movs r0, #1 - ands r6, r0 - cmp r6, #0 - beq _0810E232 - ldrh r0, [r5, #0x32] - rsbs r0, r0, #0 - strh r0, [r5, #0x32] - ldrh r0, [r5, #0x30] - adds r0, #1 - strh r0, [r5, #0x30] -_0810E232: - ldrh r1, [r5, #0x30] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl StartSpriteAnim - ldrh r0, [r5, #0x32] - strh r0, [r5, #0x24] - ldrh r0, [r5, #0x34] - strh r0, [r5, #0x26] - ldr r0, _0810E25C - str r0, [r5, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0810E250: .4byte gUnknown_20380D7 -_0810E254: .4byte gUnknown_20380BE -_0810E258: .4byte gUnknown_20380D2 -_0810E25C: .4byte sub_0810E1B0 - thumb_func_end sub_0810E1D4 - - thumb_func_start sub_0810E260 -sub_0810E260: @ 0x0810E260 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0810E278 - movs r1, #4 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _0810E27C - adds r0, r4, #0 - movs r1, #0 - bl InitSpritePosToAnimAttacker - b _0810E284 - .align 2, 0 -_0810E278: .4byte gUnknown_20380BE -_0810E27C: - adds r0, r4, #0 - movs r1, #0 - bl InitSpritePosToAnimTarget -_0810E284: - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810E298 - adds r0, r4, #0 - movs r1, #2 - bl StartSpriteAnim - b _0810E2AE -_0810E298: - ldr r0, _0810E2C0 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810E2AE - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAnim -_0810E2AE: - ldr r0, _0810E2C4 - str r0, [r4, #0x1c] - ldr r1, _0810E2C8 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810E2C0: .4byte gUnknown_20380D6 -_0810E2C4: .4byte RunStoredCallbackWhenAnimEnds -_0810E2C8: .4byte DestroyAnimSprite - thumb_func_end sub_0810E260 - - thumb_func_start sub_0810E2CC -sub_0810E2CC: @ 0x0810E2CC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0810E306 - 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, #2 - bl Sin - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x28 - ble _0810E306 - adds r0, r4, #0 - bl DestroyAnimSprite -_0810E306: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0810E2CC - - thumb_func_start sub_0810E30C -sub_0810E30C: @ 0x0810E30C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _0810E33C - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _0810E344 - cmp r0, #1 - bgt _0810E35E - cmp r0, #0 - bne _0810E35E - movs r0, #0 - bl sub_080A6674 - ldr r0, _0810E340 - ldrh r0, [r0] - strh r0, [r4, #0x18] - b _0810E356 - .align 2, 0 -_0810E33C: .4byte gUnknown_3005B60 -_0810E340: .4byte gUnknown_20380BE -_0810E344: - ldrh r0, [r4, #0x18] - subs r0, #1 - strh r0, [r4, #0x18] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _0810E36A -_0810E356: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _0810E36A -_0810E35E: - movs r2, #0xa0 - lsls r2, r2, #3 - adds r0, r2, #0 - ldrh r1, [r4, #0x1a] - adds r0, r0, r1 - strh r0, [r4, #0x1a] -_0810E36A: - movs r2, #0xb0 - lsls r2, r2, #4 - adds r0, r2, #0 - ldrh r1, [r4, #0x1c] - adds r0, r0, r1 - strh r0, [r4, #0x1c] - ldr r0, _0810E398 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810E3A0 - ldr r1, _0810E39C - ldrh r0, [r4, #0x1a] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - adds r7, r1, #0 - b _0810E3B0 - .align 2, 0 -_0810E398: .4byte gUnknown_20380D7 -_0810E39C: .4byte gUnknown_2022AD4 -_0810E3A0: - ldr r2, _0810E3F0 - ldrh r1, [r4, #0x1a] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - ldrh r0, [r2] - subs r0, r0, r1 - strh r0, [r2] - adds r7, r2, #0 -_0810E3B0: - ldr r3, _0810E3F4 - ldrh r2, [r4, #0x1c] - lsls r0, r2, #0x10 - asrs r0, r0, #0x18 - ldrh r1, [r3] - adds r0, 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, _0810E3F8 - movs r2, #0xe - ldrsh r1, [r0, r2] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _0810E3E8 - strh r5, [r7] - strh r5, [r3] - movs r0, #1 - bl sub_080A6674 - adds r0, r6, #0 - bl DestroyAnimVisualTask -_0810E3E8: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0810E3F0: .4byte gUnknown_2022AD4 -_0810E3F4: .4byte gUnknown_2022AD6 -_0810E3F8: .4byte gUnknown_20380BE - thumb_func_end sub_0810E30C - - thumb_func_start sub_0810E3FC -sub_0810E3FC: @ 0x0810E3FC - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0810E450 - movs r1, #6 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0810E412 - adds r0, r5, #0 - movs r1, #2 - bl StartSpriteAnim -_0810E412: - adds r0, r5, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldrh r0, [r4, #4] - strh r0, [r5, #0x2e] - ldr r4, _0810E454 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x32] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x36] - ldr r0, _0810E458 - strh r0, [r5, #0x38] - adds r0, r5, #0 - bl InitAnimArcTranslation - ldr r0, _0810E45C - str r0, [r5, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810E450: .4byte gUnknown_20380BE -_0810E454: .4byte gUnknown_20380D7 -_0810E458: .4byte 0x0000FFE2 -_0810E45C: .4byte sub_0810E460 - thumb_func_end sub_0810E3FC - - thumb_func_start sub_0810E460 -sub_0810E460: @ 0x0810E460 - push {r4, lr} - adds r4, r0, #0 - bl TranslateAnimHorizontalArc - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810E474 - adds r0, r4, #0 - bl DestroyAnimSprite -_0810E474: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0810E460 - - thumb_func_start sub_0810E47C -sub_0810E47C: @ 0x0810E47C - push {r4, r5, r6, lr} - sub sp, #4 - adds r4, r0, #0 - ldr r5, _0810E4F0 - movs r1, #6 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _0810E494 - adds r0, r4, #0 - movs r1, #2 - bl StartSpriteAnim -_0810E494: - adds r0, r4, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldr r0, _0810E4F4 - ldrb r0, [r0] - mov r6, sp - adds r6, #2 - movs r1, #1 - mov r2, sp - adds r3, r6, #0 - bl SetAverageBattlerPositions - ldr r0, _0810E4F8 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810E4C2 - ldrh r0, [r5, #8] - rsbs r0, r0, #0 - strh r0, [r5, #8] -_0810E4C2: - ldrh r0, [r5, #4] - strh r0, [r4, #0x2e] - mov r1, sp - ldrh r0, [r5, #8] - ldrh r1, [r1] - adds r0, r0, r1 - strh r0, [r4, #0x32] - ldrh r0, [r5, #0xa] - ldrh r6, [r6] - adds r0, r0, r6 - strh r0, [r4, #0x36] - ldr r0, _0810E4FC - strh r0, [r4, #0x38] - adds r0, r4, #0 - bl InitAnimArcTranslation - ldr r0, _0810E500 - str r0, [r4, #0x1c] - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0810E4F0: .4byte gUnknown_20380BE -_0810E4F4: .4byte gUnknown_20380D7 -_0810E4F8: .4byte gUnknown_20380D6 -_0810E4FC: .4byte 0x0000FFE2 -_0810E500: .4byte sub_0810E504 - thumb_func_end sub_0810E47C - - thumb_func_start sub_0810E504 -sub_0810E504: @ 0x0810E504 - push {r4, lr} - adds r4, r0, #0 - bl TranslateAnimHorizontalArc - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810E518 - adds r0, r4, #0 - bl DestroyAnimSprite -_0810E518: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0810E504 - - thumb_func_start sub_0810E520 -sub_0810E520: @ 0x0810E520 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _0810E56C - ldrh r0, [r5, #4] - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x20] - strh r0, [r4, #0x30] - ldrh r1, [r5] - adds r0, r0, r1 - strh r0, [r4, #0x32] - ldrh r0, [r4, #0x22] - strh r0, [r4, #0x34] - ldrh r1, [r5, #2] - adds r0, r0, r1 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl InitSpriteDataForLinearTranslation - movs r1, #0x30 - ldrsh r0, [r4, r1] - movs r2, #4 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r4, #0x38] - movs r1, #0x32 - ldrsh r0, [r4, r1] - movs r2, #4 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r4, #0x3a] - ldr r0, _0810E570 - str r0, [r4, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810E56C: .4byte gUnknown_20380BE -_0810E570: .4byte sub_0810E574 - thumb_func_end sub_0810E520 - - thumb_func_start sub_0810E574 -sub_0810E574: @ 0x0810E574 - push {r4, lr} - adds r4, r0, #0 - bl TranslateSpriteLinearFixedPoint - ldrh r0, [r4, #0x30] - ldrh r1, [r4, #0x38] - subs r0, r0, r1 - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x32] - ldrh r1, [r4, #0x3a] - subs r0, r0, r1 - strh r0, [r4, #0x32] - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0810E59A - adds r0, r4, #0 - bl DestroyAnimSprite -_0810E59A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0810E574 - - thumb_func_start sub_0810E5A0 -sub_0810E5A0: @ 0x0810E5A0 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0810E600 - ldrb r0, [r0] - adds r2, r4, #0 - adds r2, #0x20 - adds r3, r4, #0 - adds r3, #0x22 - movs r1, #1 - bl SetAverageBattlerPositions - ldr r0, _0810E604 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810E5CC - ldr r1, _0810E608 - ldrh r0, [r1] - rsbs r0, r0, #0 - strh r0, [r1] -_0810E5CC: - ldr r0, _0810E608 - ldrh r2, [r0] - ldrh r1, [r4, #0x20] - adds r2, r2, r1 - strh r2, [r4, #0x20] - ldrh r1, [r0, #2] - ldrh r3, [r4, #0x22] - adds r1, r1, r3 - strh r1, [r4, #0x22] - ldrh r3, [r0, #8] - strh r3, [r4, #0x2e] - ldrh r0, [r0, #4] - adds r2, r2, r0 - strh r2, [r4, #0x32] - adds r1, r1, r3 - strh r1, [r4, #0x36] - ldr r0, _0810E60C - str r0, [r4, #0x1c] - ldr r1, _0810E610 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810E600: .4byte gUnknown_20380D7 -_0810E604: .4byte gUnknown_20380D6 -_0810E608: .4byte gUnknown_20380BE -_0810E60C: .4byte sub_080A67B4 -_0810E610: .4byte DestroyAnimSprite - thumb_func_end sub_0810E5A0 - - thumb_func_start AnimBubbleEffect -AnimBubbleEffect: @ 0x0810E614 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _0810E62C - movs r1, #4 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _0810E630 - adds r0, r4, #0 - movs r1, #1 - bl InitSpritePosToAnimTarget - b _0810E666 - .align 2, 0 -_0810E62C: .4byte gUnknown_20380BE -_0810E630: - ldr r0, _0810E670 - ldrb r0, [r0] - adds r2, r4, #0 - adds r2, #0x20 - adds r3, r4, #0 - adds r3, #0x22 - movs r1, #1 - bl SetAverageBattlerPositions - ldr r0, _0810E674 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810E656 - ldrh r0, [r5] - rsbs r0, r0, #0 - strh r0, [r5] -_0810E656: - ldrh r0, [r5] - ldrh r1, [r4, #0x20] - adds r0, r0, r1 - strh r0, [r4, #0x20] - ldrh r0, [r5, #2] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] -_0810E666: - ldr r0, _0810E678 - str r0, [r4, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810E670: .4byte gUnknown_20380D7 -_0810E674: .4byte gUnknown_20380D6 -_0810E678: .4byte AnimBubbleEffectStep - thumb_func_end AnimBubbleEffect - - thumb_func_start AnimBubbleEffectStep -AnimBubbleEffectStep: @ 0x0810E67C - 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, #4 - bl Sin - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x30] - adds r0, #0x30 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0810E6B8 - adds r0, r4, #0 - bl DestroyAnimSprite -_0810E6B8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AnimBubbleEffectStep - - thumb_func_start sub_0810E6C0 -sub_0810E6C0: @ 0x0810E6C0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl InitSpritePosToAnimTarget - ldrh r0, [r4, #0x22] - adds r0, #0x14 - strh r0, [r4, #0x22] - movs r0, #0xbf - strh r0, [r4, #0x30] - ldr r1, _0810E6E4 - str r1, [r4, #0x1c] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810E6E4: .4byte sub_0810E6E8 - thumb_func_end sub_0810E6C0 - - thumb_func_start sub_0810E6E8 -sub_0810E6E8: @ 0x0810E6E8 - 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, #8 - bl Cos - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x30] - adds r0, #5 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x47 - bne _0810E722 - adds r0, r4, #0 - bl DestroyAnimSprite -_0810E722: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0810E6E8 - - thumb_func_start sub_0810E728 -sub_0810E728: @ 0x0810E728 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0810E758 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - adds r4, r4, r1 - ldr r1, _0810E75C - ldrh r0, [r1, #2] - strh r0, [r4, #8] - ldrh r0, [r1] - strh r0, [r4, #0xa] - ldr r0, _0810E760 - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0xc] - ldr r0, _0810E764 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810E758: .4byte gUnknown_3005B60 -_0810E75C: .4byte gUnknown_20380BE -_0810E760: .4byte 0x00002719 -_0810E764: .4byte sub_0810E768 - thumb_func_end sub_0810E728 - - thumb_func_start sub_0810E768 -sub_0810E768: @ 0x0810E768 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r2, _0810E7E8 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r3, r0, r2 - ldrh r0, [r3, #0x1c] - adds r1, r0, #1 - strh r1, [r3, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r4, #0xa - ldrsh r1, [r3, r4] - adds r7, r2, #0 - cmp r0, r1 - bne _0810E7C6 - movs r0, #0 - strh r0, [r3, #0x1c] - ldrb r0, [r3, #0xc] - ldr r2, _0810E7EC - lsls r0, r0, #4 - movs r3, #0x84 - lsls r3, r3, #1 - adds r1, r0, r3 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r6, [r1] - movs r4, #7 - mov ip, r0 - ldr r0, _0810E7F0 - add r0, ip - lsls r0, r0, #1 - adds r3, r0, r2 -_0810E7AE: - ldrh r0, [r3] - strh r0, [r1] - subs r3, #2 - subs r1, #2 - subs r4, #1 - cmp r4, #0 - bgt _0810E7AE - ldr r0, _0810E7F4 - add r0, ip - lsls r0, r0, #1 - adds r0, r0, r2 - strh r6, [r0] -_0810E7C6: - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r7 - ldrh r1, [r0, #8] - subs r1, #1 - strh r1, [r0, #8] - lsls r1, r1, #0x10 - cmp r1, #0 - bne _0810E7E0 - adds r0, r5, #0 - bl DestroyAnimVisualTask -_0810E7E0: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0810E7E8: .4byte gUnknown_3005B60 -_0810E7EC: .4byte gUnknown_20377B4 -_0810E7F0: .4byte 0x00000107 -_0810E7F4: .4byte 0x00000101 - thumb_func_end sub_0810E768 - - thumb_func_start sub_0810E7F8 -sub_0810E7F8: @ 0x0810E7F8 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldr r0, _0810E864 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810E818 - ldr r1, _0810E868 - ldrh r0, [r1, #4] - rsbs r0, r0, #0 - strh r0, [r1, #4] -_0810E818: - ldr r4, _0810E868 - ldrh r0, [r4, #8] - strh r0, [r6, #0x2e] - ldrh r0, [r6, #0x20] - strh r0, [r6, #0x30] - ldr r5, _0810E86C - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #4] - adds r0, r0, r1 - strh r0, [r6, #0x32] - ldrh r0, [r6, #0x22] - strh r0, [r6, #0x34] - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r4, [r4, #6] - adds r0, r0, r4 - strh r0, [r6, #0x36] - adds r0, r6, #0 - bl InitAnimLinearTranslation - ldr r0, _0810E870 - str r0, [r6, #0x1c] - ldr r1, _0810E874 - adds r0, r6, #0 - bl StoreSpriteCallbackInData6 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0810E864: .4byte gUnknown_20380D6 -_0810E868: .4byte gUnknown_20380BE -_0810E86C: .4byte gUnknown_20380D7 -_0810E870: .4byte RunStoredCallbackWhenAffineAnimEnds -_0810E874: .4byte sub_0810E878 - thumb_func_end sub_0810E7F8 - - thumb_func_start sub_0810E878 -sub_0810E878: @ 0x0810E878 - push {r4, lr} - adds r4, r0, #0 - bl AnimTranslateLinear - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810E88C - adds r0, r4, #0 - bl DestroyAnimSprite -_0810E88C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0810E878 - - thumb_func_start sub_0810E894 -sub_0810E894: @ 0x0810E894 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0810E930 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810E8C0 - ldr r1, _0810E934 - ldrh r0, [r1] - rsbs r0, r0, #0 - strh r0, [r1] - ldrh r0, [r1, #2] - rsbs r0, r0, #0 - strh r0, [r1, #2] - ldrh r0, [r1, #4] - rsbs r0, r0, #0 - strh r0, [r1, #4] - ldrh r0, [r1, #6] - rsbs r0, r0, #0 - strh r0, [r1, #6] -_0810E8C0: - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810E8D8 - ldr r0, _0810E934 - ldrh r1, [r0, #2] - rsbs r1, r1, #0 - strh r1, [r0, #2] - ldrh r1, [r0, #6] - rsbs r1, r1, #0 - strh r1, [r0, #6] -_0810E8D8: - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - ldr r2, _0810E934 - ldrh r1, [r2] - ldrh r3, [r5, #0x20] - adds r1, r1, r3 - strh r1, [r5, #0x20] - lsrs r0, r0, #0x18 - ldrh r1, [r2, #2] - adds r0, r0, r1 - strh r0, [r5, #0x22] - ldrh r0, [r2, #8] - strh r0, [r5, #0x2e] - movs r3, #0xc - ldrsh r0, [r2, r3] - cmp r0, #0 - bne _0810E93C - ldr r4, _0810E938 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x32] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x36] - b _0810E94E - .align 2, 0 -_0810E930: .4byte gUnknown_20380D6 -_0810E934: .4byte gUnknown_20380BE -_0810E938: .4byte gUnknown_20380D7 -_0810E93C: - ldr r0, _0810E97C - ldrb r0, [r0] - adds r2, r5, #0 - adds r2, #0x32 - adds r3, r5, #0 - adds r3, #0x36 - movs r1, #1 - bl SetAverageBattlerPositions -_0810E94E: - ldr r4, _0810E980 - ldrh r0, [r4, #4] - ldrh r1, [r5, #0x32] - adds r0, r0, r1 - strh r0, [r5, #0x32] - ldrh r0, [r4, #6] - ldrh r3, [r5, #0x36] - adds r0, r0, r3 - strh r0, [r5, #0x36] - ldr r0, _0810E984 - str r0, [r5, #0x1c] - ldr r1, _0810E988 - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - ldrb r1, [r4, #0xa] - adds r0, r5, #0 - bl SeekSpriteAnim - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810E97C: .4byte gUnknown_20380D7 -_0810E980: .4byte gUnknown_20380BE -_0810E984: .4byte sub_080A67B4 -_0810E988: .4byte DestroyAnimSprite - thumb_func_end sub_0810E894 - - thumb_func_start sub_0810E98C -sub_0810E98C: @ 0x0810E98C - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldr r1, _0810E9C8 - ldrh r0, [r1, #4] - strh r0, [r4, #0x2e] - ldrh r0, [r1, #6] - strh r0, [r4, #0x30] - ldr r0, _0810E9CC - str r0, [r4, #0x1c] - movs r0, #0 - bl GetAnimBattlerSpriteId - ldr r2, _0810E9D0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810E9C8: .4byte gUnknown_20380BE -_0810E9CC: .4byte sub_0810E9D4 -_0810E9D0: .4byte gUnknown_20205AC - thumb_func_end sub_0810E98C - - thumb_func_start sub_0810E9D4 -sub_0810E9D4: @ 0x0810E9D4 - push {lr} - adds r2, r0, #0 - ldrh r1, [r2, #0x2e] - movs r3, #0x2e - ldrsh r0, [r2, r3] - cmp r0, #0 - ble _0810E9E8 - subs r0, r1, #1 - strh r0, [r2, #0x2e] - b _0810E9FA -_0810E9E8: - ldrh r0, [r2, #0x30] - ldrh r1, [r2, #0x32] - adds r0, r0, r1 - strh r0, [r2, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - ldrh r1, [r2, #0x26] - subs r1, r1, r0 - strh r1, [r2, #0x26] -_0810E9FA: - movs r3, #0x22 - ldrsh r0, [r2, r3] - movs r3, #0x26 - ldrsh r1, [r2, r3] - adds r0, r0, r1 - movs r1, #0x20 - rsbs r1, r1, #0 - cmp r0, r1 - bge _0810EA12 - adds r0, r2, #0 - bl DestroyAnimSprite -_0810EA12: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0810E9D4 - - thumb_func_start sub_0810EA18 -sub_0810EA18: @ 0x0810EA18 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0810EA40 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810EA48 - movs r0, #0x88 - lsls r0, r0, #1 - strh r0, [r5, #0x20] - ldr r0, _0810EA44 - strh r0, [r5, #0x22] - adds r0, r5, #0 - movs r1, #1 - bl StartSpriteAffineAnim - b _0810EA4E - .align 2, 0 -_0810EA40: .4byte gUnknown_20380D6 -_0810EA44: .4byte 0x0000FFE0 -_0810EA48: - ldr r0, _0810EA8C - strh r0, [r5, #0x20] - strh r0, [r5, #0x22] -_0810EA4E: - ldr r0, _0810EA90 - ldrh r0, [r0] - strh r0, [r5, #0x2e] - ldrh r0, [r5, #0x20] - strh r0, [r5, #0x30] - ldr r4, _0810EA94 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x32] - ldrh r0, [r5, #0x22] - strh r0, [r5, #0x34] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x36] - adds r0, r5, #0 - bl InitAnimLinearTranslation - ldr r0, _0810EA98 - str r0, [r5, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810EA8C: .4byte 0x0000FFE0 -_0810EA90: .4byte gUnknown_20380BE -_0810EA94: .4byte gUnknown_20380D7 -_0810EA98: .4byte sub_0810EA9C - thumb_func_end sub_0810EA18 - - thumb_func_start sub_0810EA9C -sub_0810EA9C: @ 0x0810EA9C - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strh r0, [r4, #0x2e] - adds r0, r4, #0 - bl AnimTranslateLinear - ldrh r1, [r4, #0x34] - lsrs r0, r1, #8 - cmp r0, #0xc8 - bls _0810EAC4 - ldrh r0, [r4, #0x24] - ldrh r2, [r4, #0x20] - adds r0, r0, r2 - strh r0, [r4, #0x20] - movs r0, #0 - strh r0, [r4, #0x24] - movs r0, #0xff - ands r0, r1 - strh r0, [r4, #0x34] -_0810EAC4: - movs r1, #0x20 - ldrsh r0, [r4, r1] - movs r2, #0x24 - ldrsh r1, [r4, r2] - adds r0, r0, r1 - adds r0, #0x20 - movs r1, #0x98 - lsls r1, r1, #1 - cmp r0, r1 - bhi _0810EAE6 - movs r1, #0x22 - ldrsh r0, [r4, r1] - movs r2, #0x26 - ldrsh r1, [r4, r2] - adds r0, r0, r1 - cmp r0, #0xa0 - ble _0810EB0C -_0810EAE6: - movs r0, #0 - bl GetAnimBattlerSpriteId - ldr r2, _0810EB14 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - adds r1, #0x3e - ldrb r2, [r1] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - adds r0, r4, #0 - bl DestroyAnimSprite -_0810EB0C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810EB14: .4byte gUnknown_20205AC - thumb_func_end sub_0810EA9C - - thumb_func_start sub_0810EB18 -sub_0810EB18: @ 0x0810EB18 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - subs r1, r0, #1 - strh r1, [r4, #0x2e] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _0810EB58 - ldrb r0, [r4, #1] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0810EB4A - ldrb r0, [r4, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - ldrb r1, [r4, #1] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #1] -_0810EB4A: - adds r0, r4, #0 - bl DestroySprite - ldr r1, _0810EB60 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] -_0810EB58: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810EB60: .4byte gUnknown_203809E - thumb_func_end sub_0810EB18 - - thumb_func_start sub_0810EB64 -sub_0810EB64: @ 0x0810EB64 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - adds r5, r7, #0 - adds r5, #0x2e - ldr r0, _0810EB84 - ldrh r1, [r0, #0xe] - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0810EB8C - ldr r0, _0810EB88 - b _0810EB8E - .align 2, 0 -_0810EB84: .4byte gUnknown_20380BE -_0810EB88: .4byte gUnknown_20380D6 -_0810EB8C: - ldr r0, _0810EC38 -_0810EB8E: - ldrb r6, [r0] - adds r0, r6, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810EBA4 - ldr r1, _0810EC3C - ldrh r0, [r1] - rsbs r0, r0, #0 - strh r0, [r1] -_0810EBA4: - adds r0, r6, #0 - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - ldr r4, _0810EC3C - lsrs r0, r0, #0x18 - ldrh r1, [r4] - adds r0, r0, r1 - strh r0, [r7, #0x20] - adds r0, r6, #0 - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - ldrh r1, [r4, #2] - lsrs r0, r0, #0x18 - adds r1, r0, r1 - strh r1, [r7, #0x22] - lsls r1, r1, #8 - strh r1, [r5, #8] - ldrh r1, [r4, #0xc] - adds r0, r0, r1 - lsls r0, r0, #1 - ldrh r2, [r5, #0xe] - movs r1, #1 - ands r1, r2 - orrs r1, r0 - strh r1, [r5, #0xe] - ldrb r0, [r5] - movs r2, #4 - mov r8, r2 - mov r1, r8 - orrs r0, r1 - strb r0, [r5] - ldrh r0, [r4, #4] - ldrb r1, [r4, #4] - strh r1, [r5, #2] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strh r0, [r5, #0xa] - ldrh r0, [r4, #6] - strh r0, [r5, #4] - ldrh r0, [r4, #8] - strh r0, [r5, #6] - ldrh r0, [r4, #0xa] - strh r0, [r5, #0xc] - subs r1, #0x40 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - cmp r1, #0x7f - bhi _0810EC9A - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810EC40 - adds r0, r6, #0 - bl GetBattlerSpriteBGPriority - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #1 - movs r1, #3 - ands r0, r1 - lsls r0, r0, #2 - ldrb r2, [r7, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r7, #5] - b _0810EC58 - .align 2, 0 -_0810EC38: .4byte gUnknown_20380D7 -_0810EC3C: .4byte gUnknown_20380BE -_0810EC40: - adds r0, r6, #0 - bl GetBattlerSpriteBGPriority - movs r1, #3 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r7, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r7, #5] -_0810EC58: - ldrb r1, [r5, #0xe] - movs r4, #2 - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r1 - strb r0, [r5, #0xe] - movs r2, #4 - ldrsh r0, [r5, r2] - movs r1, #0x80 - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - bne _0810ECFA - adds r3, r7, #0 - adds r3, #0x3f - ldrb r2, [r3] - lsls r0, r2, #0x1f - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - adds r0, r4, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, r0, #0x1f - lsrs r0, r0, #0x1f - adds r1, r7, #0 - adds r1, #0x2a - strb r0, [r1] - ldrb r0, [r3] - movs r1, #4 - orrs r0, r1 - b _0810ECF2 -_0810EC9A: - adds r0, r6, #0 - bl GetBattlerSpriteBGPriority - movs r1, #3 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r7, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r7, #5] - ldrb r0, [r5, #0xe] - movs r4, #1 - orrs r0, r4 - strb r0, [r5, #0xe] - movs r1, #4 - ldrsh r0, [r5, r1] - movs r1, #0x80 - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - beq _0810ECFA - adds r3, r7, #0 - adds r3, #0x3f - ldrb r2, [r3] - lsls r1, r2, #0x1f - lsrs r1, r1, #0x1f - movs r0, #1 - eors r1, r0 - ands r1, r4 - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, r0, #0x1f - lsrs r0, r0, #0x1f - adds r1, r7, #0 - adds r1, #0x2a - strb r0, [r1] - ldrb r0, [r3] - mov r2, r8 - orrs r0, r2 -_0810ECF2: - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r3] -_0810ECFA: - ldrh r1, [r5, #2] - lsrs r1, r1, #6 - lsls r1, r1, #4 - ldrb r2, [r5] - movs r0, #0xf - ands r0, r2 - orrs r0, r1 - strb r0, [r5] - ldr r3, _0810ED64 - ldrh r0, [r5, #2] - lsls r0, r0, #1 - adds r0, r0, r3 - movs r2, #0 - ldrsh r1, [r0, r2] - ldrb r0, [r5, #0xc] - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r7, #0x24] - ldrb r2, [r7, #3] - lsls r2, r2, #0x1a - lsrs r2, r2, #0x1b - movs r1, #0x24 - ldrsh r0, [r7, r1] - rsbs r0, r0, #0 - asrs r0, r0, #1 - ldrb r5, [r5, #0xa] - adds r0, r0, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #1 - adds r1, r1, r3 - ldrh r4, [r1] - ldr r1, _0810ED68 - lsls r2, r2, #3 - adds r2, r2, r1 - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r0, [r0] - strh r0, [r2, #6] - strh r0, [r2] - strh r4, [r2, #2] - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - rsbs r0, r0, #0 - strh r0, [r2, #4] - ldr r0, _0810ED6C - str r0, [r7, #0x1c] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0810ED64: .4byte gUnknown_82FA8CC -_0810ED68: .4byte gUnknown_2021B3C -_0810ED6C: .4byte sub_0810ED70 - thumb_func_end sub_0810EB64 - - thumb_func_start sub_0810ED70 -sub_0810ED70: @ 0x0810ED70 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - movs r6, #0 - adds r4, r5, #0 - adds r4, #0x2e - ldrb r2, [r4] - movs r7, #1 - movs r0, #1 - mov sb, r0 - ands r0, r2 - cmp r0, #0 - beq _0810EDAA - ldrb r0, [r4, #1] - adds r1, r0, #0 - adds r1, #0xff - strb r1, [r4, #1] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810ED9E - b _0810F286 -_0810ED9E: - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r4] - strb r6, [r4, #1] - b _0810F286 -_0810EDAA: - ldrh r0, [r4, #2] - lsrs r1, r0, #6 - mov ip, r0 - cmp r1, #1 - bne _0810EDB6 - b _0810EEDA -_0810EDB6: - cmp r1, #1 - bgt _0810EDC0 - cmp r1, #0 - beq _0810EDCE - b _0810F1CC -_0810EDC0: - cmp r1, #2 - bne _0810EDC6 - b _0810EFCE -_0810EDC6: - cmp r1, #3 - bne _0810EDCC - b _0810F0C2 -_0810EDCC: - b _0810F1CC -_0810EDCE: - lsls r1, r2, #0x18 - lsrs r0, r1, #0x1c - cmp r0, #1 - bne _0810EDE2 - movs r0, #8 - orrs r0, r2 - orrs r0, r7 - strb r0, [r4] - strb r6, [r4, #1] - b _0810EED0 -_0810EDE2: - lsrs r0, r1, #0x1c - cmp r0, #3 - bne _0810EE04 - lsls r0, r2, #0x1e - lsrs r0, r0, #0x1f - movs r1, #1 - eors r0, r1 - ands r0, r7 - lsls r0, r0, #1 - movs r1, #3 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - orrs r1, r7 - strb r1, [r4] - strb r6, [r4, #1] - b _0810EED0 -_0810EE04: - movs r0, #8 - ands r0, r2 - cmp r0, #0 - beq _0810EED0 - adds r3, r5, #0 - adds r3, #0x3f - ldrb r2, [r3] - lsls r1, r2, #0x1f - lsrs r1, r1, #0x1f - movs r6, #1 - eors r1, r6 - ands r1, r7 - movs r0, #2 - rsbs r0, r0, #0 - mov r8, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, r0, #0x1f - lsrs r0, r0, #0x1f - adds r1, r5, #0 - adds r1, #0x2a - strb r0, [r1] - ldrb r0, [r3] - movs r1, #4 - orrs r0, r1 - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r3] - ldrb r1, [r4] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0810EEC2 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810EE92 - ldrb r1, [r4, #0xe] - mov r0, sb - ands r0, r1 - cmp r0, #0 - bne _0810EE78 - ldrb r2, [r5, #5] - lsls r1, r2, #0x1c - lsrs r1, r1, #0x1e - subs r1, #1 - movs r0, #3 - ands r1, r0 - lsls r1, r1, #2 - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #5] - b _0810EEB0 -_0810EE78: - ldrb r2, [r5, #5] - lsls r1, r2, #0x1c - lsrs r1, r1, #0x1e - adds r1, #1 - movs r0, #3 - ands r1, r0 - lsls r1, r1, #2 - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #5] - b _0810EEB0 -_0810EE92: - ldrb r1, [r4, #0xe] - mov r0, sb - ands r0, r1 - cmp r0, #0 - bne _0810EEA6 - adds r1, r5, #0 - adds r1, #0x43 - ldrb r0, [r1] - subs r0, #0xc - b _0810EEAE -_0810EEA6: - adds r1, r5, #0 - adds r1, #0x43 - ldrb r0, [r1] - adds r0, #0xc -_0810EEAE: - strb r0, [r1] -_0810EEB0: - ldrb r2, [r4, #0xe] - lsls r0, r2, #0x1f - lsrs r0, r0, #0x1f - eors r0, r6 - ands r0, r7 - mov r1, r8 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #0xe] -_0810EEC2: - ldrb r1, [r4] - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4] - ldrh r1, [r4, #2] - mov ip, r1 -_0810EED0: - ldrb r1, [r4] - movs r0, #0xf - ands r0, r1 - strb r0, [r4] - b _0810F1CC -_0810EEDA: - lsls r1, r2, #0x18 - lsrs r0, r1, #0x1c - cmp r0, #0 - bne _0810EEE8 - movs r0, #8 - orrs r0, r2 - b _0810EEF0 -_0810EEE8: - lsrs r0, r1, #0x1c - cmp r0, #2 - bne _0810EEF8 - adds r0, r2, #0 -_0810EEF0: - orrs r0, r7 - strb r0, [r4] - strb r6, [r4, #1] - b _0810EFC4 -_0810EEF8: - movs r0, #8 - ands r0, r2 - cmp r0, #0 - beq _0810EFC4 - adds r3, r5, #0 - adds r3, #0x3f - ldrb r2, [r3] - lsls r1, r2, #0x1f - lsrs r1, r1, #0x1f - movs r6, #1 - eors r1, r6 - ands r1, r7 - movs r0, #2 - rsbs r0, r0, #0 - mov r8, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, r0, #0x1f - lsrs r0, r0, #0x1f - adds r1, r5, #0 - adds r1, #0x2a - strb r0, [r1] - ldrb r0, [r3] - movs r1, #4 - orrs r0, r1 - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r3] - ldrb r1, [r4] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0810EFB6 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810EF86 - ldrb r1, [r4, #0xe] - mov r0, sb - ands r0, r1 - cmp r0, #0 - bne _0810EF6C - ldrb r2, [r5, #5] - lsls r1, r2, #0x1c - lsrs r1, r1, #0x1e - subs r1, #1 - movs r0, #3 - ands r1, r0 - lsls r1, r1, #2 - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #5] - b _0810EFA4 -_0810EF6C: - ldrb r2, [r5, #5] - lsls r1, r2, #0x1c - lsrs r1, r1, #0x1e - adds r1, #1 - movs r0, #3 - ands r1, r0 - lsls r1, r1, #2 - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #5] - b _0810EFA4 -_0810EF86: - ldrb r1, [r4, #0xe] - mov r0, sb - ands r0, r1 - cmp r0, #0 - bne _0810EF9A - adds r1, r5, #0 - adds r1, #0x43 - ldrb r0, [r1] - subs r0, #0xc - b _0810EFA2 -_0810EF9A: - adds r1, r5, #0 - adds r1, #0x43 - ldrb r0, [r1] - adds r0, #0xc -_0810EFA2: - strb r0, [r1] -_0810EFA4: - ldrb r2, [r4, #0xe] - lsls r0, r2, #0x1f - lsrs r0, r0, #0x1f - eors r0, r6 - ands r0, r7 - mov r1, r8 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #0xe] -_0810EFB6: - ldrb r1, [r4] - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4] - ldrh r1, [r4, #2] - mov ip, r1 -_0810EFC4: - ldrb r0, [r4] - movs r1, #0xf - ands r1, r0 - movs r0, #0x10 - b _0810F1C8 -_0810EFCE: - lsls r1, r2, #0x18 - lsrs r0, r1, #0x1c - cmp r0, #3 - bne _0810EFDC - movs r0, #8 - orrs r0, r2 - b _0810EFE4 -_0810EFDC: - lsrs r0, r1, #0x1c - cmp r0, #1 - bne _0810EFEC - adds r0, r2, #0 -_0810EFE4: - orrs r0, r7 - strb r0, [r4] - strb r6, [r4, #1] - b _0810F0B8 -_0810EFEC: - movs r0, #8 - ands r0, r2 - cmp r0, #0 - beq _0810F0B8 - adds r3, r5, #0 - adds r3, #0x3f - ldrb r2, [r3] - lsls r1, r2, #0x1f - lsrs r1, r1, #0x1f - movs r6, #1 - eors r1, r6 - ands r1, r7 - movs r0, #2 - rsbs r0, r0, #0 - mov r8, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, r0, #0x1f - lsrs r0, r0, #0x1f - adds r1, r5, #0 - adds r1, #0x2a - strb r0, [r1] - ldrb r0, [r3] - movs r1, #4 - orrs r0, r1 - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r3] - ldrb r1, [r4] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0810F0AA - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810F07A - ldrb r1, [r4, #0xe] - mov r0, sb - ands r0, r1 - cmp r0, #0 - bne _0810F060 - ldrb r2, [r5, #5] - lsls r1, r2, #0x1c - lsrs r1, r1, #0x1e - subs r1, #1 - movs r0, #3 - ands r1, r0 - lsls r1, r1, #2 - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #5] - b _0810F098 -_0810F060: - ldrb r2, [r5, #5] - lsls r1, r2, #0x1c - lsrs r1, r1, #0x1e - adds r1, #1 - movs r0, #3 - ands r1, r0 - lsls r1, r1, #2 - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #5] - b _0810F098 -_0810F07A: - ldrb r1, [r4, #0xe] - mov r0, sb - ands r0, r1 - cmp r0, #0 - bne _0810F08E - adds r1, r5, #0 - adds r1, #0x43 - ldrb r0, [r1] - subs r0, #0xc - b _0810F096 -_0810F08E: - adds r1, r5, #0 - adds r1, #0x43 - ldrb r0, [r1] - adds r0, #0xc -_0810F096: - strb r0, [r1] -_0810F098: - ldrb r2, [r4, #0xe] - lsls r0, r2, #0x1f - lsrs r0, r0, #0x1f - eors r0, r6 - ands r0, r7 - mov r1, r8 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #0xe] -_0810F0AA: - ldrb r1, [r4] - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4] - ldrh r1, [r4, #2] - mov ip, r1 -_0810F0B8: - ldrb r0, [r4] - movs r1, #0xf - ands r1, r0 - movs r0, #0x20 - b _0810F1C8 -_0810F0C2: - lsls r1, r2, #0x18 - lsrs r0, r1, #0x1c - cmp r0, #2 - bne _0810F0D2 - movs r0, #8 - orrs r0, r2 - strb r0, [r4] - b _0810F1C0 -_0810F0D2: - lsrs r0, r1, #0x1c - cmp r0, #0 - bne _0810F0F4 - lsls r0, r2, #0x1e - lsrs r0, r0, #0x1f - movs r1, #1 - eors r0, r1 - ands r0, r7 - lsls r0, r0, #1 - movs r1, #3 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - orrs r1, r7 - strb r1, [r4] - strb r6, [r4, #1] - b _0810F1C0 -_0810F0F4: - movs r0, #8 - ands r0, r2 - cmp r0, #0 - beq _0810F1C0 - adds r3, r5, #0 - adds r3, #0x3f - ldrb r2, [r3] - lsls r1, r2, #0x1f - lsrs r1, r1, #0x1f - movs r6, #1 - eors r1, r6 - ands r1, r7 - movs r0, #2 - rsbs r0, r0, #0 - mov r8, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, r0, #0x1f - lsrs r0, r0, #0x1f - adds r1, r5, #0 - adds r1, #0x2a - strb r0, [r1] - ldrb r0, [r3] - movs r1, #4 - orrs r0, r1 - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r3] - ldrb r1, [r4] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0810F1B2 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810F182 - ldrb r1, [r4, #0xe] - mov r0, sb - ands r0, r1 - cmp r0, #0 - bne _0810F168 - ldrb r2, [r5, #5] - lsls r1, r2, #0x1c - lsrs r1, r1, #0x1e - subs r1, #1 - movs r0, #3 - ands r1, r0 - lsls r1, r1, #2 - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #5] - b _0810F1A0 -_0810F168: - ldrb r2, [r5, #5] - lsls r1, r2, #0x1c - lsrs r1, r1, #0x1e - adds r1, #1 - movs r0, #3 - ands r1, r0 - lsls r1, r1, #2 - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #5] - b _0810F1A0 -_0810F182: - ldrb r1, [r4, #0xe] - mov r0, sb - ands r0, r1 - cmp r0, #0 - bne _0810F196 - adds r1, r5, #0 - adds r1, #0x43 - ldrb r0, [r1] - subs r0, #0xc - b _0810F19E -_0810F196: - adds r1, r5, #0 - adds r1, #0x43 - ldrb r0, [r1] - adds r0, #0xc -_0810F19E: - strb r0, [r1] -_0810F1A0: - ldrb r2, [r4, #0xe] - lsls r0, r2, #0x1f - lsrs r0, r0, #0x1f - eors r0, r6 - ands r0, r7 - mov r1, r8 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #0xe] -_0810F1B2: - ldrb r1, [r4] - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4] - ldrh r1, [r4, #2] - mov ip, r1 -_0810F1C0: - ldrb r0, [r4] - movs r1, #0xf - ands r1, r0 - movs r0, #0x30 -_0810F1C8: - orrs r1, r0 - strb r1, [r4] -_0810F1CC: - ldrb r1, [r4] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1f - adds r0, r4, #0 - adds r0, #0xc - adds r0, r0, r1 - ldrb r1, [r0] - ldr r3, _0810F254 - mov r2, ip - lsls r0, r2, #1 - adds r0, r0, r3 - movs r2, #0 - ldrsh r0, [r0, r2] - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r5, #0x24] - ldrb r2, [r5, #3] - lsls r2, r2, #0x1a - lsrs r2, r2, #0x1b - movs r1, #0x24 - ldrsh r0, [r5, r1] - rsbs r0, r0, #0 - asrs r0, r0, #1 - ldrb r1, [r4, #0xa] - adds r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #1 - adds r1, r1, r3 - ldrh r6, [r1] - ldr r1, _0810F258 - lsls r2, r2, #3 - adds r2, r2, r1 - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r0, [r0] - strh r0, [r2, #6] - strh r0, [r2] - strh r6, [r2, #2] - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - rsbs r0, r0, #0 - strh r0, [r2, #4] - ldrh r0, [r4, #6] - ldrh r2, [r4, #8] - adds r0, r0, r2 - strh r0, [r4, #8] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - movs r1, #4 - ldrsh r0, [r4, r1] - movs r1, #0x80 - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - beq _0810F25C - ldrh r0, [r4, #4] - subs r1, #1 - ands r1, r0 - ldrh r0, [r4, #2] - subs r0, r0, r1 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #2] - b _0810F26C - .align 2, 0 -_0810F254: .4byte gUnknown_82FA8CC -_0810F258: .4byte gUnknown_2021B3C -_0810F25C: - ldrh r0, [r4, #4] - ldr r1, _0810F294 - ands r1, r0 - ldrh r2, [r4, #2] - adds r1, r1, r2 - movs r0, #0xff - ands r1, r0 - strh r1, [r4, #2] -_0810F26C: - movs r0, #0x22 - ldrsh r1, [r5, r0] - movs r2, #0x26 - ldrsh r0, [r5, r2] - adds r1, r1, r0 - ldrh r0, [r4, #0xe] - lsrs r0, r0, #1 - cmp r1, r0 - blt _0810F286 - movs r0, #0 - strh r0, [r5, #0x2e] - ldr r0, _0810F298 - str r0, [r5, #0x1c] -_0810F286: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0810F294: .4byte 0x00007FFF -_0810F298: .4byte sub_0810EB18 - thumb_func_end sub_0810ED70 - - thumb_func_start sub_0810F29C -sub_0810F29C: @ 0x0810F29C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _0810F2E4 - ldrb r0, [r0] - bl GetBattlerSpriteBGPriority - movs r1, #3 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r4, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #5] - ldr r5, _0810F2E8 - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x20] - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x22] - ldr r0, _0810F2EC - str r0, [r4, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810F2E4: .4byte gUnknown_20380D7 -_0810F2E8: .4byte gUnknown_20380D6 -_0810F2EC: .4byte TranslateAnimSpriteToTargetMonLocation - thumb_func_end sub_0810F29C - - thumb_func_start sub_0810F2F0 -sub_0810F2F0: @ 0x0810F2F0 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0810F308 - movs r1, #4 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _0810F30C - adds r0, r5, #0 - movs r1, #0 - bl InitSpritePosToAnimAttacker - b _0810F314 - .align 2, 0 -_0810F308: .4byte gUnknown_20380BE -_0810F30C: - adds r0, r5, #0 - movs r1, #0 - bl InitSpritePosToAnimTarget -_0810F314: - ldr r4, _0810F37C - movs r2, #4 - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _0810F32C - ldr r0, _0810F380 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810F342 -_0810F32C: - movs r1, #4 - ldrsh r0, [r4, r1] - cmp r0, #1 - bne _0810F348 - ldr r0, _0810F384 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810F348 -_0810F342: - ldrh r0, [r5, #0x20] - adds r0, #8 - strh r0, [r5, #0x20] -_0810F348: - ldr r4, _0810F37C - ldrb r1, [r4, #8] - adds r0, r5, #0 - bl SeekSpriteAnim - ldrh r0, [r5, #0x20] - subs r0, #0x20 - strh r0, [r5, #0x20] - ldr r0, _0810F388 - strh r0, [r5, #0x30] - ldrh r1, [r4, #8] - movs r0, #0xc - adds r2, r0, #0 - muls r2, r1, r2 - adds r0, r2, #0 - ldrh r2, [r5, #0x24] - adds r0, r0, r2 - strh r0, [r5, #0x24] - strh r1, [r5, #0x2e] - ldrh r0, [r4, #6] - strh r0, [r5, #0x3c] - ldr r0, _0810F38C - str r0, [r5, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810F37C: .4byte gUnknown_20380BE -_0810F380: .4byte gUnknown_20380D6 -_0810F384: .4byte gUnknown_20380D7 -_0810F388: .4byte 0x00000CCC -_0810F38C: .4byte sub_0810F390 - thumb_func_end sub_0810F2F0 - - thumb_func_start sub_0810F390 -sub_0810F390: @ 0x0810F390 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x24] - adds r0, r0, r1 - movs r1, #0 - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #6 - bne _0810F3BA - strh r1, [r4, #0x2e] - strh r1, [r4, #0x24] - adds r0, r4, #0 - bl StartSpriteAnim -_0810F3BA: - ldrh r0, [r4, #0x3c] - subs r0, #1 - strh r0, [r4, #0x3c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _0810F3D2 - adds r0, r4, #0 - bl DestroyAnimSprite -_0810F3D2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0810F390 - - thumb_func_start sub_0810F3D8 -sub_0810F3D8: @ 0x0810F3D8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r6, r0, #0 - ldr r1, _0810F470 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r7, r0, r1 - ldrh r0, [r7, #8] - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - bne _0810F452 - ldr r1, _0810F474 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r1, #8 - ldrsh r0, [r7, r1] - movs r5, #0xd - rsbs r5, r5, #0 - adds r1, r5, #0 - bl Sin - ldr r4, _0810F478 - strh r0, [r4] - movs r1, #8 - ldrsh r0, [r7, r1] - adds r1, r5, #0 - bl Cos - strh r0, [r4, #2] - movs r0, #1 - strh r0, [r4, #4] - movs r0, #3 - strh r0, [r4, #6] - ldr r0, _0810F47C - mov r8, r0 - ldr r5, _0810F480 - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r0, r8 - adds r1, r4, #0 - movs r3, #3 - bl CreateSpriteAndAnimate -_0810F452: - ldrh r0, [r7, #8] - adds r0, #8 - strh r0, [r7, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xff - ble _0810F466 - adds r0, r6, #0 - bl DestroyAnimVisualTask -_0810F466: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0810F470: .4byte gUnknown_3005B60 -_0810F474: .4byte gUnknown_203809E -_0810F478: .4byte gUnknown_20380BE -_0810F47C: .4byte gUnknown_8572FCC -_0810F480: .4byte gUnknown_20380D7 - thumb_func_end sub_0810F3D8 - - thumb_func_start sub_0810F484 -sub_0810F484: @ 0x0810F484 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0810F496 - cmp r0, #1 - beq _0810F4C8 - b _0810F4DC -_0810F496: - adds r0, r4, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - movs r0, #0 - bl GetAnimBattlerSpriteId - ldr r2, _0810F4C4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - b _0810F4DC - .align 2, 0 -_0810F4C4: .4byte gUnknown_20205AC -_0810F4C8: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0810F4DC - adds r0, r4, #0 - bl DestroyAnimSprite -_0810F4DC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0810F484 - - thumb_func_start sub_0810F4E4 -sub_0810F4E4: @ 0x0810F4E4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _0810F51C - cmp r0, #1 - bgt _0810F4FA - cmp r0, #0 - beq _0810F500 - b _0810F56E -_0810F4FA: - cmp r0, #2 - beq _0810F530 - b _0810F56E -_0810F500: - ldr r0, _0810F518 - ldrb r0, [r0] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x22] - rsbs r0, r0, #0 - subs r0, #0x20 - strh r0, [r4, #0x26] - b _0810F528 - .align 2, 0 -_0810F518: .4byte gUnknown_20380D7 -_0810F51C: - ldrh r0, [r4, #0x26] - adds r0, #0xa - strh r0, [r4, #0x26] - lsls r0, r0, #0x10 - cmp r0, #0 - blt _0810F56E -_0810F528: - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - b _0810F56E -_0810F530: - 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, r0, r1 - movs r1, #0x20 - rsbs r1, r1, #0 - cmp r0, r1 - bge _0810F56E - movs r0, #0 - bl GetAnimBattlerSpriteId - ldr r2, _0810F574 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - adds r1, #0x3e - ldrb r2, [r1] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - adds r0, r4, #0 - bl DestroyAnimSprite -_0810F56E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810F574: .4byte gUnknown_20205AC - thumb_func_end sub_0810F4E4 - - thumb_func_start sub_0810F578 -sub_0810F578: @ 0x0810F578 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldr r1, _0810F5B4 - ldrh r0, [r1, #4] - strh r0, [r4, #0x2e] - ldrh r0, [r1, #6] - strh r0, [r4, #0x30] - ldr r0, _0810F5B8 - str r0, [r4, #0x1c] - movs r0, #0 - bl GetAnimBattlerSpriteId - ldr r2, _0810F5BC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810F5B4: .4byte gUnknown_20380BE -_0810F5B8: .4byte sub_0810F5C0 -_0810F5BC: .4byte gUnknown_20205AC - thumb_func_end sub_0810F578 - - thumb_func_start sub_0810F5C0 -sub_0810F5C0: @ 0x0810F5C0 - push {lr} - adds r2, r0, #0 - ldrh r1, [r2, #0x2e] - movs r3, #0x2e - ldrsh r0, [r2, r3] - cmp r0, #0 - ble _0810F5D4 - subs r0, r1, #1 - strh r0, [r2, #0x2e] - b _0810F618 -_0810F5D4: - movs r1, #0x22 - ldrsh r0, [r2, r1] - movs r3, #0x26 - ldrsh r1, [r2, r3] - adds r0, r0, r1 - movs r1, #0x20 - rsbs r1, r1, #0 - cmp r0, r1 - ble _0810F5FA - ldrh r0, [r2, #0x30] - ldrh r1, [r2, #0x32] - adds r0, r0, r1 - strh r0, [r2, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - ldrh r1, [r2, #0x26] - subs r1, r1, r0 - strh r1, [r2, #0x26] - b _0810F618 -_0810F5FA: - adds r3, r2, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r1, #4 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r2, #0x34] - adds r1, r0, #1 - strh r1, [r2, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x14 - ble _0810F618 - ldr r0, _0810F61C - str r0, [r2, #0x1c] -_0810F618: - pop {r0} - bx r0 - .align 2, 0 -_0810F61C: .4byte LinkOpponentHandlePaletteFade - thumb_func_end sub_0810F5C0 - - thumb_func_start LinkOpponentHandlePaletteFade -LinkOpponentHandlePaletteFade: @ 0x0810F620 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - ldrh r1, [r2, #0x26] - adds r0, r0, r1 - strh r0, [r2, #0x26] - movs r3, #0x22 - ldrsh r0, [r2, r3] - movs r3, #0x26 - ldrsh r1, [r2, r3] - adds r0, r0, r1 - movs r1, #0x20 - rsbs r1, r1, #0 - cmp r0, r1 - ble _0810F650 - adds r3, r2, #0 - adds r3, #0x3e - ldrb r1, [r3] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3] -_0810F650: - movs r1, #0x26 - ldrsh r0, [r2, r1] - cmp r0, #0 - ble _0810F65E - adds r0, r2, #0 - bl DestroyAnimSprite -_0810F65E: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkOpponentHandlePaletteFade - - thumb_func_start sub_0810F664 -sub_0810F664: @ 0x0810F664 - push {r4, r5, lr} - sub sp, #4 - adds r5, r0, #0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _0810F678 - cmp r0, #1 - beq _0810F6D0 - b _0810F73C -_0810F678: - ldr r0, _0810F688 - movs r2, #0 - ldrsh r0, [r0, r2] - cmp r0, #0 - bne _0810F690 - ldr r4, _0810F68C - b _0810F692 - .align 2, 0 -_0810F688: .4byte gUnknown_20380BE -_0810F68C: .4byte gUnknown_20380D6 -_0810F690: - ldr r4, _0810F6CC -_0810F692: - ldrb r0, [r4] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - movs r0, #0 - movs r3, #0x80 - lsls r3, r3, #2 - strh r3, [r5, #0x30] - movs r2, #0x80 - lsls r2, r2, #1 - str r0, [sp] - adds r0, r5, #0 - movs r1, #0 - bl TrySetSpriteRotScale - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] - b _0810F73C - .align 2, 0 -_0810F6CC: .4byte gUnknown_20380D7 -_0810F6D0: - movs r1, #0x32 - ldrsh r0, [r5, r1] - cmp r0, #0xb - bgt _0810F6DE - ldrh r0, [r5, #0x30] - subs r0, #0x28 - b _0810F6E2 -_0810F6DE: - ldrh r0, [r5, #0x30] - adds r0, #0x28 -_0810F6E2: - strh r0, [r5, #0x30] - ldrh r0, [r5, #0x32] - adds r0, #1 - movs r1, #0 - strh r0, [r5, #0x32] - movs r2, #0x80 - lsls r2, r2, #1 - movs r0, #0x30 - ldrsh r3, [r5, r0] - str r1, [sp] - adds r0, r5, #0 - bl TrySetSpriteRotScale - ldrb r1, [r5, #3] - lsls r1, r1, #0x1a - lsrs r1, r1, #0x1b - movs r0, #0xf4 - lsls r0, r0, #6 - ldr r2, _0810F744 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r2, #6 - ldrsh r1, [r1, r2] - bl __divsi3 - adds r1, r0, #1 - cmp r1, #0x80 - ble _0810F71C - movs r1, #0x80 -_0810F71C: - movs r0, #0x40 - subs r0, r0, r1 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r1, r0, #1 - strh r1, [r5, #0x26] - movs r1, #0x32 - ldrsh r0, [r5, r1] - cmp r0, #0x18 - bne _0810F73C - adds r0, r5, #0 - bl sub_080A6D64 - adds r0, r5, #0 - bl DestroyAnimSprite -_0810F73C: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810F744: .4byte gUnknown_2021B3C - thumb_func_end sub_0810F664 - - thumb_func_start sub_0810F748 -sub_0810F748: @ 0x0810F748 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_0806F0A4 - ldr r4, _0810F76C - ands r4, r0 - bl sub_0806F0A4 - movs r1, #0x7f - ands r1, r0 - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _0810F770 - movs r2, #0xb8 - lsls r2, r2, #2 - adds r0, r4, r2 - b _0810F778 - .align 2, 0 -_0810F76C: .4byte 0x000001FF -_0810F770: - movs r2, #0xb8 - lsls r2, r2, #2 - adds r0, r2, #0 - subs r0, r0, r4 -_0810F778: - strh r0, [r5, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0810F78C - movs r2, #0xe0 - lsls r2, r2, #2 - adds r0, r2, #0 - adds r0, r1, r0 - b _0810F794 -_0810F78C: - movs r2, #0xe0 - lsls r2, r2, #2 - adds r0, r2, #0 - subs r0, r0, r1 -_0810F794: - strh r0, [r5, #0x30] - ldr r2, _0810F7BC - ldrh r0, [r2] - strh r0, [r5, #0x32] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0810F7B0 - ldrb r0, [r5, #3] - movs r1, #0x3f - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #0x10 - orrs r1, r0 - strb r1, [r5, #3] -_0810F7B0: - movs r1, #2 - ldrsh r0, [r2, r1] - cmp r0, #0 - bne _0810F7C4 - ldr r4, _0810F7C0 - b _0810F7C6 - .align 2, 0 -_0810F7BC: .4byte gUnknown_20380BE -_0810F7C0: .4byte gUnknown_20380D6 -_0810F7C4: - ldr r4, _0810F7F0 -_0810F7C6: - ldrb r0, [r4] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #0x20 - strh r0, [r5, #0x22] - ldr r0, _0810F7F4 - str r0, [r5, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810F7F0: .4byte gUnknown_20380D7 -_0810F7F4: .4byte sub_0810F7F8 - thumb_func_end sub_0810F748 - - thumb_func_start sub_0810F7F8 -sub_0810F7F8: @ 0x0810F7F8 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0810F810 - ldrh r3, [r4, #0x2e] - lsls r0, r3, #0x10 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x24] - adds r0, r0, r1 - b _0810F81A -_0810F810: - ldrh r3, [r4, #0x2e] - lsls r1, r3, #0x10 - asrs r1, r1, #0x18 - ldrh r0, [r4, #0x24] - subs r0, r0, r1 -_0810F81A: - strh r0, [r4, #0x24] - ldrh r2, [r4, #0x30] - lsls r1, r2, #0x10 - asrs r1, r1, #0x18 - ldrh r0, [r4, #0x26] - subs r0, r0, r1 - strh r0, [r4, #0x26] - strh r3, [r4, #0x2e] - adds r0, r2, #0 - subs r0, #0x20 - strh r0, [r4, #0x30] - lsls r0, r3, #0x10 - cmp r0, #0 - bge _0810F83A - movs r0, #0 - strh r0, [r4, #0x2e] -_0810F83A: - ldrh r0, [r4, #0x34] - adds r0, #1 - strh r0, [r4, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1f - bne _0810F84E - adds r0, r4, #0 - bl DestroyAnimSprite -_0810F84E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0810F7F8 - - thumb_func_start sub_0810F854 -sub_0810F854: @ 0x0810F854 - movs r1, #0 - strh r1, [r0, #0x3a] - movs r1, #0x40 - strh r1, [r0, #0x3c] - ldr r1, _0810F864 - str r1, [r0, #0x1c] - bx lr - .align 2, 0 -_0810F864: .4byte sub_0810F868 - thumb_func_end sub_0810F854 - - thumb_func_start sub_0810F868 -sub_0810F868: @ 0x0810F868 - push {lr} - adds r3, r0, #0 - movs r0, #0x2e - ldrsh r1, [r3, r0] - cmp r1, #0 - beq _0810F87A - cmp r1, #1 - beq _0810F8C8 - b _0810F8CE -_0810F87A: - ldrh r0, [r3, #0x30] - adds r0, #1 - strh r0, [r3, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #8 - ble _0810F8CE - strh r1, [r3, #0x30] - movs r1, #0x3e - adds r1, r1, r3 - mov ip, r1 - ldrb r2, [r1] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - ldrh r0, [r3, #0x32] - adds r0, #1 - strh r0, [r3, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #5 - ble _0810F8CE - ldrb r1, [r1] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0810F8CE - ldrh r0, [r3, #0x2e] - adds r0, #1 - strh r0, [r3, #0x2e] - b _0810F8CE -_0810F8C8: - adds r0, r3, #0 - bl DestroyAnimSprite -_0810F8CE: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0810F868 - - thumb_func_start sub_0810F8D4 -sub_0810F8D4: @ 0x0810F8D4 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #4 - mov r8, r0 - ldrh r4, [r0, #0x20] - ldrh r5, [r0, #0x22] - ldr r6, _0810F988 - ldrb r0, [r6] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, r8 - strh r0, [r1, #0x20] - ldrb r0, [r6] - movs r1, #3 - bl GetBattlerSpriteCoord - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov r2, r8 - strh r6, [r2, #0x22] - ldrh r0, [r2, #0x20] - mov sb, r0 - mov r1, sb - lsls r0, r1, #4 - strh r0, [r2, #0x36] - lsls r0, r6, #4 - strh r0, [r2, #0x38] - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - movs r1, #0x20 - ldrsh r0, [r2, r1] - subs r0, r4, r0 - lsls r0, r0, #4 - movs r1, #0xc - bl __divsi3 - mov r2, r8 - strh r0, [r2, #0x3a] - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - movs r1, #0x22 - ldrsh r0, [r2, r1] - subs r0, r5, r0 - lsls r0, r0, #4 - movs r1, #0xc - bl __divsi3 - mov r2, r8 - strh r0, [r2, #0x3c] - mov r0, sb - subs r4, r4, r0 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - subs r5, r5, r6 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - bl ArcTan2Neg - lsls r0, r0, #0x10 - movs r1, #0xc0 - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r0, r0, #0x10 - movs r3, #0x80 - lsls r3, r3, #1 - str r0, [sp] - mov r0, r8 - movs r1, #1 - adds r2, r3, #0 - bl TrySetSpriteRotScale - ldr r0, _0810F98C - mov r2, r8 - str r0, [r2, #0x1c] - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0810F988: .4byte gUnknown_20380D6 -_0810F98C: .4byte sub_0810F990 - thumb_func_end sub_0810F8D4 - - thumb_func_start sub_0810F990 -sub_0810F990: @ 0x0810F990 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x3a] - ldrh r1, [r2, #0x36] - adds r0, r0, r1 - strh r0, [r2, #0x36] - ldrh r1, [r2, #0x3c] - ldrh r3, [r2, #0x38] - adds r1, r1, r3 - strh r1, [r2, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - strh r0, [r2, #0x20] - lsls r1, r1, #0x10 - asrs r3, r1, #0x14 - strh r3, [r2, #0x22] - adds r0, #0x2d - lsls r0, r0, #0x10 - movs r1, #0xa5 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _0810F9CA - adds r1, r3, #0 - cmp r1, #0x9d - bgt _0810F9CA - movs r0, #0x2d - rsbs r0, r0, #0 - cmp r1, r0 - bge _0810F9D0 -_0810F9CA: - adds r0, r2, #0 - bl DestroySpriteAndMatrix -_0810F9D0: - pop {r0} - bx r0 - thumb_func_end sub_0810F990 - - thumb_func_start unref_sub_810F184 -unref_sub_810F184: @ 0x0810F9D4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0810FA04 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _0810FA0C - movs r0, #0 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0810FA08 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - b _0810FA2A - .align 2, 0 -_0810FA04: .4byte gUnknown_20380BE -_0810FA08: .4byte gUnknown_20205AC -_0810FA0C: - movs r0, #0 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0810FA38 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - adds r1, #0x3e - ldrb r2, [r1] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 -_0810FA2A: - strb r0, [r1] - adds r0, r4, #0 - bl DestroyAnimVisualTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810FA38: .4byte gUnknown_20205AC - thumb_func_end unref_sub_810F184 - - thumb_func_start sub_0810FA3C -sub_0810FA3C: @ 0x0810FA3C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - bl IsContest - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r0, _0810FAFC - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810FA62 - mov r0, r8 - cmp r0, #0 - beq _0810FA7E -_0810FA62: - ldrb r1, [r5, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r5, #5] - adds r1, r5, #0 - adds r1, #0x43 - movs r0, #0xc8 - strb r0, [r1] - mov r1, r8 - cmp r1, #0 - bne _0810FB08 -_0810FA7E: - movs r0, #1 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r7, r4, #0 - adds r0, r4, #0 - bl GetBattlerSpriteBGPriorityRank - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - eors r0, r1 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r6, r1, #0x1f - adds r0, r4, #0 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810FAB4 - adds r0, r4, #0 - adds r1, r6, #0 - movs r2, #0 - bl MoveBattlerSpriteToBG -_0810FAB4: - movs r0, #2 - adds r4, r0, #0 - eors r4, r7 - adds r0, r4, #0 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810FAD4 - movs r0, #1 - eors r6, r0 - adds r0, r4, #0 - adds r1, r6, #0 - movs r2, #0 - bl MoveBattlerSpriteToBG -_0810FAD4: - mov r0, r8 - cmp r0, #0 - bne _0810FB08 - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810FB08 - ldr r0, _0810FAFC - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810FB00 - movs r0, #0x48 - strh r0, [r5, #0x20] - movs r0, #0x50 - b _0810FB42 - .align 2, 0 -_0810FAFC: .4byte gUnknown_20380D6 -_0810FB00: - movs r0, #0xb0 - strh r0, [r5, #0x20] - movs r0, #0x28 - b _0810FB42 -_0810FB08: - ldr r6, _0810FB70 - ldrb r0, [r6] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810FB1E - ldr r1, _0810FB74 - ldrh r0, [r1] - rsbs r0, r0, #0 - strh r0, [r1] -_0810FB1E: - ldrb r0, [r6] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - ldr r4, _0810FB74 - lsrs r0, r0, #0x18 - ldrh r1, [r4] - adds r0, r0, r1 - strh r0, [r5, #0x20] - ldrb r0, [r6] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r4, [r4, #2] - adds r0, r0, r4 -_0810FB42: - strh r0, [r5, #0x22] - ldr r0, _0810FB74 - ldrh r0, [r0, #4] - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x14 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r0, r1 - strh r0, [r5, #0x2e] - mov r0, r8 - cmp r0, #0 - beq _0810FB7C - ldrh r0, [r5, #0x22] - adds r0, #9 - strh r0, [r5, #0x22] - ldr r1, _0810FB78 - str r1, [r5, #0x1c] - adds r0, r5, #0 - bl _call_via_r1 - b _0810FB80 - .align 2, 0 -_0810FB70: .4byte gUnknown_20380D6 -_0810FB74: .4byte gUnknown_20380BE -_0810FB78: .4byte sub_0810FC18 -_0810FB7C: - ldr r0, _0810FB8C - str r0, [r5, #0x1c] -_0810FB80: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0810FB8C: .4byte sub_0810FB90 - thumb_func_end sub_0810FA3C - - thumb_func_start sub_0810FB90 -sub_0810FB90: @ 0x0810FB90 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #1 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r1, #0x3c - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _0810FBAC - movs r0, #1 - strh r0, [r5, #0x3c] - b _0810FC06 -_0810FBAC: - adds r0, r4, #0 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810FBD2 - ldr r2, _0810FC0C - ldr r0, _0810FC10 - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_0810FBD2: - movs r0, #2 - eors r4, r0 - adds r0, r4, #0 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810FBFC - ldr r2, _0810FC0C - ldr r0, _0810FC10 - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_0810FBFC: - ldr r1, _0810FC14 - str r1, [r5, #0x1c] - adds r0, r5, #0 - bl _call_via_r1 -_0810FC06: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810FC0C: .4byte gUnknown_20205AC -_0810FC10: .4byte gUnknown_2023E88 -_0810FC14: .4byte sub_0810FC18 - thumb_func_end sub_0810FB90 - - thumb_func_start sub_0810FC18 -sub_0810FC18: @ 0x0810FC18 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x34] - movs r1, #0x10 - subs r1, r1, r0 - lsls r1, r1, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - ldrh r1, [r4, #0x34] - movs r2, #0x34 - ldrsh r0, [r4, r2] - cmp r0, #0xd - bne _0810FC44 - ldr r0, _0810FC40 - str r0, [r4, #0x1c] - b _0810FC48 - .align 2, 0 -_0810FC40: .4byte sub_0810FC50 -_0810FC44: - adds r0, r1, #1 - strh r0, [r4, #0x34] -_0810FC48: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0810FC18 - - thumb_func_start sub_0810FC50 -sub_0810FC50: @ 0x0810FC50 - push {r4, r5, r6, r7, lr} - adds r3, r0, #0 - ldrh r0, [r3, #0x30] - adds r0, #1 - strh r0, [r3, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - bne _0810FCAE - movs r0, #0 - strh r0, [r3, #0x30] - ldrh r4, [r3, #0x2e] - ldr r1, _0810FCB4 - adds r0, r4, #0 - adds r0, #8 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r7, [r0] - movs r5, #8 - adds r6, r1, #0 - adds r1, r4, #7 - lsls r0, r4, #1 - adds r0, r0, r6 - adds r2, r0, #0 - adds r2, #0x10 - lsls r1, r1, #1 - adds r1, r1, r6 -_0810FC86: - ldrh r0, [r1] - strh r0, [r2] - subs r1, #2 - subs r2, #2 - subs r5, #1 - cmp r5, #0 - bgt _0810FC86 - adds r0, r4, #1 - lsls r0, r0, #1 - adds r0, r0, r6 - strh r7, [r0] - ldrh r0, [r3, #0x32] - adds r0, #1 - strh r0, [r3, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x10 - bne _0810FCAE - ldr r0, _0810FCB8 - str r0, [r3, #0x1c] -_0810FCAE: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0810FCB4: .4byte gUnknown_20377B4 -_0810FCB8: .4byte sub_0810FCBC - thumb_func_end sub_0810FC50 - - thumb_func_start sub_0810FCBC -sub_0810FCBC: @ 0x0810FCBC - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrh r0, [r5, #0x34] - movs r1, #0x10 - subs r1, r1, r0 - lsls r1, r1, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - ldrh r0, [r5, #0x34] - subs r0, #1 - strh r0, [r5, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _0810FD62 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810FD52 - movs r0, #1 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r6, r4, #0 - adds r0, r4, #0 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810FD24 - ldr r2, _0810FD68 - ldr r0, _0810FD6C - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] -_0810FD24: - movs r0, #2 - adds r4, r0, #0 - eors r4, r6 - adds r0, r4, #0 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810FD52 - ldr r2, _0810FD68 - ldr r0, _0810FD6C - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] -_0810FD52: - adds r2, r5, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _0810FD70 - str r0, [r5, #0x1c] -_0810FD62: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0810FD68: .4byte gUnknown_20205AC -_0810FD6C: .4byte gUnknown_2023E88 -_0810FD70: .4byte sub_0810FD74 - thumb_func_end sub_0810FCBC - - thumb_func_start sub_0810FD74 -sub_0810FD74: @ 0x0810FD74 - push {r4, r5, r6, lr} - adds r6, r0, #0 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810FDCC - movs r0, #1 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r4, r0, #0 - bl GetBattlerSpriteBGPriorityRank - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - eors r0, r1 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r5, r1, #0x1f - adds r0, r4, #0 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810FDB2 - adds r0, r5, #0 - bl sub_080A4044 -_0810FDB2: - movs r0, #2 - eors r4, r0 - adds r0, r4, #0 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810FDCC - movs r0, #1 - eors r5, r0 - adds r0, r5, #0 - bl sub_080A4044 -_0810FDCC: - ldr r0, _0810FDD8 - str r0, [r6, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0810FDD8: .4byte DestroyAnimSprite - thumb_func_end sub_0810FD74 - - thumb_func_start sub_0810FDDC -sub_0810FDDC: @ 0x0810FDDC - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0810FE68 - ldr r5, _0810FE28 - movs r1, #6 - ldrsh r0, [r5, r1] - movs r6, #0 - cmp r0, #0 - bne _0810FDF6 - movs r6, #1 -_0810FDF6: - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810FE3E - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810FE3E - ldr r0, _0810FE2C - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0810FE30 - ldrh r0, [r5] - movs r1, #0x48 - subs r1, r1, r0 - strh r1, [r4, #0x20] - ldrh r0, [r5, #2] - adds r0, #0x50 - strh r0, [r4, #0x22] - b _0810FE60 - .align 2, 0 -_0810FE28: .4byte gUnknown_20380BE -_0810FE2C: .4byte gUnknown_20380D6 -_0810FE30: - ldrh r0, [r5] - adds r0, #0xb0 - strh r0, [r4, #0x20] - ldrh r0, [r5, #2] - adds r0, #0x28 - strh r0, [r4, #0x22] - b _0810FE60 -_0810FE3E: - ldr r0, _0810FE54 - movs r1, #4 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _0810FE58 - adds r0, r4, #0 - adds r1, r6, #0 - bl InitSpritePosToAnimAttacker - b _0810FE60 - .align 2, 0 -_0810FE54: .4byte gUnknown_20380BE -_0810FE58: - adds r0, r4, #0 - adds r1, r6, #0 - bl InitSpritePosToAnimTarget -_0810FE60: - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - b _0810FE7C -_0810FE68: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x30 - ands r0, r1 - cmp r0, #0 - beq _0810FE7C - adds r0, r4, #0 - bl DestroySpriteAndMatrix -_0810FE7C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0810FDDC - - thumb_func_start sub_0810FE84 -sub_0810FE84: @ 0x0810FE84 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0810FECC - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0810FED4 - adds r0, r5, #0 - movs r1, #1 - 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, _0810FED0 - b _0810FEE2 - .align 2, 0 -_0810FECC: .4byte gUnknown_20380D6 -_0810FED0: .4byte 0x0000FFFF -_0810FED4: - ldrh r0, [r5, #0x20] - adds r0, #0x28 - strh r0, [r5, #0x20] - ldrh r0, [r5, #0x22] - subs r0, #0xa - strh r0, [r5, #0x22] - movs r0, #1 -_0810FEE2: - strh r0, [r5, #0x30] - ldr r1, _0810FEF8 - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _0810FEFC - str r0, [r5, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0810FEF8: .4byte DestroyAnimSprite -_0810FEFC: .4byte RunStoredCallbackWhenAnimEnds - thumb_func_end sub_0810FE84 - - thumb_func_start sub_0810FF00 -sub_0810FF00: @ 0x0810FF00 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldr r6, _0810FF84 - ldrb r0, [r6] - movs r1, #1 - bl GetBattlerSpriteCoordAttr - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - lsrs r0, r0, #0x1f - adds r1, r1, r0 - lsls r1, r1, #0xf - lsrs r4, r1, #0x10 - ldrb r0, [r6] - movs r1, #0 - bl GetBattlerSpriteCoordAttr - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - lsrs r0, r0, #0x1f - adds r1, r1, r0 - asrs r1, r1, #1 - rsbs r1, r1, #0 - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - ldrb r0, [r6] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0810FF46 - lsls r0, r4, #0x10 - rsbs r0, r0, #0 - lsrs r4, r0, #0x10 -_0810FF46: - ldrb r0, [r6] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r4 - strh r0, [r5, #0x20] - ldrb r0, [r6] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r7 - strh r0, [r5, #0x22] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xf - bgt _0810FF72 - movs r0, #0x10 - strh r0, [r5, #0x22] -_0810FF72: - ldr r1, _0810FF88 - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _0810FF8C - str r0, [r5, #0x1c] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0810FF84: .4byte gUnknown_20380D6 -_0810FF88: .4byte sub_0810FF90 -_0810FF8C: .4byte RunStoredCallbackWhenAnimEnds - thumb_func_end sub_0810FF00 - - thumb_func_start sub_0810FF90 -sub_0810FF90: @ 0x0810FF90 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #1] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #1] - ldr r0, _0810FFBC - str r0, [r4, #0x10] - movs r0, #0 - strh r0, [r4, #0x2e] - adds r0, r4, #0 - bl InitSpriteAffineAnim - ldr r0, _0810FFC0 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810FFBC: .4byte gUnknown_8572324 -_0810FFC0: .4byte sub_0810FFC4 - thumb_func_end sub_0810FF90 - - thumb_func_start sub_0810FFC4 -sub_0810FFC4: @ 0x0810FFC4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0810FFD6 - cmp r0, #1 - beq _08110004 - b _0811001C -_0810FFD6: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0811001C - ldrb r0, [r4, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - ldrb r1, [r4, #1] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #1] - movs r0, #0x12 - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - b _0811001C -_08110004: - ldrh r0, [r4, #0x30] - subs r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _0811001C - adds r0, r4, #0 - bl DestroyAnimSprite -_0811001C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0810FFC4 - - thumb_func_start sub_08110024 -sub_08110024: @ 0x08110024 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _08110054 - adds r4, r4, r0 - movs r0, #0 - bl GetAnimBattlerSpriteId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - strh r1, [r4, #8] - ldr r2, _08110058 - adds r0, r4, #0 - bl PrepareAffineAnimInTaskData - ldr r0, _0811005C - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08110054: .4byte gUnknown_3005B60 -_08110058: .4byte gUnknown_8572340 -_0811005C: .4byte sub_08110060 - thumb_func_end sub_08110024 - - thumb_func_start sub_08110060 -sub_08110060: @ 0x08110060 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _08110088 - adds r0, r0, r1 - bl RunAffineAnimFromTaskData - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08110080 - adds r0, r4, #0 - bl DestroyAnimVisualTask -_08110080: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08110088: .4byte gUnknown_3005B60 - thumb_func_end sub_08110060 - - thumb_func_start sub_0811008C -sub_0811008C: @ 0x0811008C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _081100D8 - adds r4, r1, r0 - movs r0, #0 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - strh r0, [r4, #8] - strh r1, [r4, #0xa] - strh r1, [r4, #0xc] - ldr r0, _081100DC - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - movs r1, #8 - cmp r0, #0 - beq _081100C0 - movs r1, #4 -_081100C0: - strh r1, [r4, #0xe] - ldrb r1, [r4, #8] - ldr r2, _081100E0 - adds r0, r4, #0 - bl PrepareAffineAnimInTaskData - ldr r0, _081100E4 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081100D8: .4byte gUnknown_3005B60 -_081100DC: .4byte gUnknown_20380D6 -_081100E0: .4byte gUnknown_8572360 -_081100E4: .4byte sub_081100E8 - thumb_func_end sub_0811008C - - thumb_func_start sub_081100E8 -sub_081100E8: @ 0x081100E8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _08110108 - adds r4, r0, r1 - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0811010C - cmp r0, #1 - beq _08110128 - b _08110186 - .align 2, 0 -_08110108: .4byte gUnknown_3005B60 -_0811010C: - adds r0, r4, #0 - bl RunAffineAnimFromTaskData - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x13 - ble _08110186 - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - b _08110186 -_08110128: - movs r1, #0xe - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _08110150 - ldr r2, _0811014C - movs r0, #8 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x26] - subs r1, #8 - strh r1, [r0, #0x26] - ldrh r0, [r4, #0xe] - subs r0, #1 - strh r0, [r4, #0xe] - b _08110186 - .align 2, 0 -_0811014C: .4byte gUnknown_20205AC -_08110150: - ldr r3, _0811018C - movs r0, #8 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - movs r0, #8 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r1, #0x88 - lsls r1, r1, #1 - strh r1, [r0, #0x20] - ldrb r0, [r4, #8] - bl ResetSpriteRotScale - adds r0, r5, #0 - bl DestroyAnimVisualTask -_08110186: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0811018C: .4byte gUnknown_20205AC - thumb_func_end sub_081100E8 - - thumb_func_start sub_08110190 -sub_08110190: @ 0x08110190 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _08110218 - adds r5, r1, r0 - movs r1, #0 - movs r0, #0x10 - strh r0, [r5, #0xe] - strh r1, [r5, #0x10] - ldr r4, _0811021C - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x24] - ldrb r0, [r4] - movs r1, #1 - bl GetBattlerSpriteCoordAttr - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #3 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldrb r0, [r4] - movs r1, #0 - bl GetBattlerSpriteCoordAttr - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #3 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r0, #0 - cmp r0, r6 - bhs _081101FA - adds r1, r6, #0 -_081101FA: - strh r1, [r5, #0x20] - movs r1, #0xfd - lsls r1, r1, #6 - movs r0, #0x50 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0x10 - bl SetGpuReg - ldr r0, _08110220 - str r0, [r5] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08110218: .4byte gUnknown_3005B60 -_0811021C: .4byte gUnknown_20380D6 -_08110220: .4byte sub_08110224 - thumb_func_end sub_08110190 - - thumb_func_start sub_08110224 -sub_08110224: @ 0x08110224 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _08110248 - adds r4, r0, r1 - movs r0, #8 - ldrsh r1, [r4, r0] - cmp r1, #1 - beq _08110324 - cmp r1, #1 - bgt _0811024C - cmp r1, #0 - beq _0811025A - b _081103AA - .align 2, 0 -_08110248: .4byte gUnknown_3005B60 -_0811024C: - cmp r1, #2 - bne _08110252 - b _08110386 -_08110252: - cmp r1, #3 - bne _08110258 - b _08110394 -_08110258: - b _081103AA -_0811025A: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #8 - bgt _0811026A - b _081103AA -_0811026A: - strh r1, [r4, #0xa] - ldr r0, _081102A8 - movs r2, #0x22 - ldrsh r1, [r4, r2] - movs r3, #0x24 - ldrsh r2, [r4, r3] - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - movs r0, #0xc - ldrsh r1, [r4, r0] - adds r1, #8 - lsls r1, r1, #1 - adds r0, r4, #0 - adds r0, #8 - adds r0, r0, r1 - strh r2, [r0] - cmp r2, #0x40 - beq _0811030E - movs r1, #0xc - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _081102C8 - cmp r0, #1 - bgt _081102AC - cmp r0, #0 - beq _081102B6 - b _0811030E - .align 2, 0 -_081102A8: .4byte gUnknown_8572378 -_081102AC: - cmp r0, #2 - beq _081102E0 - cmp r0, #3 - beq _081102F8 - b _0811030E -_081102B6: - ldr r0, _081102C4 - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r0, [r4, #0x20] - b _08110306 - .align 2, 0 -_081102C4: .4byte gUnknown_20205AC -_081102C8: - ldr r0, _081102DC - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r0, [r4, #0x20] - rsbs r0, r0, #0 - strh r0, [r1, #0x24] - ldrh r0, [r4, #0x20] - b _0811030C - .align 2, 0 -_081102DC: .4byte gUnknown_20205AC -_081102E0: - ldr r1, _081102F4 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r1, [r4, #0x20] - strh r1, [r0, #0x24] - ldrh r1, [r4, #0x20] - strh r1, [r0, #0x26] - b _0811030E - .align 2, 0 -_081102F4: .4byte gUnknown_20205AC -_081102F8: - ldr r0, _08110320 - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r0, [r4, #0x20] - rsbs r0, r0, #0 -_08110306: - strh r0, [r1, #0x24] - ldrh r0, [r4, #0x20] - rsbs r0, r0, #0 -_0811030C: - strh r0, [r1, #0x26] -_0811030E: - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #5 - bne _081103AA - b _08110386 - .align 2, 0 -_08110320: .4byte gUnknown_20205AC -_08110324: - ldrh r0, [r4, #0xa] - ands r1, r0 - cmp r1, #0 - beq _08110334 - ldrh r0, [r4, #0xe] - subs r0, #1 - strh r0, [r4, #0xe] - b _0811033A -_08110334: - ldrh r0, [r4, #0x10] - adds r0, #1 - strh r0, [r4, #0x10] -_0811033A: - ldrh r1, [r4, #0x10] - lsls r1, r1, #8 - ldrh r0, [r4, #0xe] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x20 - bne _081103AA - movs r5, #8 - adds r6, r4, #0 - adds r6, #8 -_08110360: - lsls r0, r5, #1 - adds r1, r6, r0 - movs r2, #0 - ldrsh r0, [r1, r2] - cmp r0, #0x40 - beq _0811037C - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08110390 - adds r0, r0, r1 - bl DestroySprite -_0811037C: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0xc - bls _08110360 -_08110386: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _081103AA - .align 2, 0 -_08110390: .4byte gUnknown_20205AC -_08110394: - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - adds r0, r5, #0 - bl DestroyAnimVisualTask -_081103AA: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_08110224 - - thumb_func_start sub_081103B0 -sub_081103B0: @ 0x081103B0 - 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 _081103DA - ldrh r0, [r4, #0x30] - movs r1, #1 - ands r1, r0 - adds r3, r4, #0 - adds r3, #0x3e - lsls r1, r1, #2 - ldrb r2, [r3] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_081103DA: - movs r0, #0x30 - ldrsh r1, [r4, r0] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _081103EC - adds r0, r4, #0 - bl DestroyAnimSprite -_081103EC: - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081103B0 - - thumb_func_start sub_081103F8 -sub_081103F8: @ 0x081103F8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r6, _08110434 - movs r1, #0 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _08110424 - ldr r4, _08110438 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] -_08110424: - ldrh r0, [r6, #2] - strh r0, [r5, #0x2e] - ldr r0, _0811043C - str r0, [r5, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08110434: .4byte gUnknown_20380BE -_08110438: .4byte gUnknown_20380D6 -_0811043C: .4byte sub_081103B0 - thumb_func_end sub_081103F8 - - thumb_func_start sub_08110440 -sub_08110440: @ 0x08110440 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _0811049C - adds r5, r1, r0 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081104E4 - ldr r0, _081104A0 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #1 - bne _081104B0 - ldr r0, _081104A4 - strh r0, [r5, #0x1c] - ldr r4, _081104A8 - ldrb r0, [r4] - movs r1, #5 - bl GetBattlerSpriteCoordAttr - subs r0, #8 - strh r0, [r5, #0x1e] - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoordAttr - adds r0, #8 - strh r0, [r5, #0x20] - ldr r4, _081104AC - ldrb r0, [r4] - movs r1, #5 - bl GetBattlerSpriteCoordAttr - subs r0, #8 - strh r0, [r5, #0x22] - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoordAttr - adds r0, #8 - b _0811056E - .align 2, 0 -_0811049C: .4byte gUnknown_3005B60 -_081104A0: .4byte gUnknown_20380BE -_081104A4: .4byte 0x0000FFF6 -_081104A8: .4byte gUnknown_20380D7 -_081104AC: .4byte gUnknown_20380D6 -_081104B0: - movs r0, #0xa - strh r0, [r5, #0x1c] - ldr r4, _081104DC - ldrb r0, [r4] - movs r1, #4 - bl GetBattlerSpriteCoordAttr - adds r0, #8 - strh r0, [r5, #0x1e] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoordAttr - subs r0, #8 - strh r0, [r5, #0x20] - ldr r4, _081104E0 - ldrb r0, [r4] - movs r1, #4 - bl GetBattlerSpriteCoordAttr - adds r0, #8 - b _08110562 - .align 2, 0 -_081104DC: .4byte gUnknown_20380D6 -_081104E0: .4byte gUnknown_20380D7 -_081104E4: - ldr r0, _08110528 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #1 - bne _08110538 - ldr r0, _0811052C - strh r0, [r5, #0x1c] - ldr r4, _08110530 - ldrb r0, [r4] - movs r1, #4 - bl GetBattlerSpriteCoordAttr - adds r0, #8 - strh r0, [r5, #0x1e] - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoordAttr - adds r0, #8 - strh r0, [r5, #0x20] - ldr r4, _08110534 - ldrb r0, [r4] - movs r1, #4 - bl GetBattlerSpriteCoordAttr - adds r0, #8 - strh r0, [r5, #0x22] - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoordAttr - adds r0, #8 - b _0811056E - .align 2, 0 -_08110528: .4byte gUnknown_20380BE -_0811052C: .4byte 0x0000FFF6 -_08110530: .4byte gUnknown_20380D7 -_08110534: .4byte gUnknown_20380D6 -_08110538: - movs r0, #0xa - strh r0, [r5, #0x1c] - ldr r4, _08110580 - ldrb r0, [r4] - movs r1, #5 - bl GetBattlerSpriteCoordAttr - subs r0, #8 - strh r0, [r5, #0x1e] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoordAttr - subs r0, #8 - strh r0, [r5, #0x20] - ldr r4, _08110584 - ldrb r0, [r4] - movs r1, #5 - bl GetBattlerSpriteCoordAttr - subs r0, #8 -_08110562: - strh r0, [r5, #0x22] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoordAttr - subs r0, #8 -_0811056E: - strh r0, [r5, #0x24] - movs r0, #6 - strh r0, [r5, #0xa] - ldr r0, _08110588 - str r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08110580: .4byte gUnknown_20380D6 -_08110584: .4byte gUnknown_20380D7 -_08110588: .4byte sub_0811058C - thumb_func_end sub_08110440 - - thumb_func_start sub_0811058C -sub_0811058C: @ 0x0811058C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _081105AC - adds r5, r0, r1 - movs r0, #8 - ldrsh r1, [r5, r0] - cmp r1, #0 - beq _081105B0 - cmp r1, #1 - beq _08110624 - b _08110638 - .align 2, 0 -_081105AC: .4byte gUnknown_3005B60 -_081105B0: - ldrh r0, [r5, #0xa] - adds r0, #1 - strh r0, [r5, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #6 - ble _08110638 - strh r1, [r5, #0xa] - ldr r0, _0811061C - movs r2, #0x1e - ldrsh r1, [r5, r2] - movs r3, #0x20 - ldrsh r2, [r5, r3] - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x40 - beq _08110604 - ldr r0, _08110620 - lsls r4, r1, #4 - adds r4, r4, r1 - lsls r4, r4, #2 - adds r4, 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 InitAnimArcTranslation - ldrb r0, [r5, #0xc] - movs r1, #3 - ands r1, r0 - adds r0, r4, #0 - bl StartSpriteAffineAnim -_08110604: - ldrh r0, [r5, #0xc] - adds r0, #1 - strh r0, [r5, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xc - bne _08110638 - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - b _08110638 - .align 2, 0 -_0811061C: .4byte gUnknown_8572448 -_08110620: .4byte gUnknown_20205AC -_08110624: - ldrh r0, [r5, #0xa] - adds r0, #1 - strh r0, [r5, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x11 - ble _08110638 - adds r0, r2, #0 - bl DestroyAnimVisualTask -_08110638: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0811058C - - thumb_func_start sub_08110640 -sub_08110640: @ 0x08110640 - push {r4, lr} - adds r4, r0, #0 - bl TranslateAnimHorizontalArc - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0811065E - ldrb r0, [r4, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - adds r0, r4, #0 - bl DestroySprite -_0811065E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08110640 - - thumb_func_start sub_08110664 -sub_08110664: @ 0x08110664 - push {r4, r5, r6, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _0811069C - adds r4, r1, r0 - ldr r0, _081106A0 - ldrb r0, [r0] - bl GetBattlerYCoordWithElevation - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r0, r1, #0 - subs r0, #0x20 - strh r0, [r4, #0x24] - ldr r0, _081106A4 - movs r2, #0 - ldrsh r0, [r0, r2] - cmp r0, #1 - beq _081106BA - cmp r0, #1 - bgt _081106A8 - cmp r0, #0 - beq _081106AE - b _081106D6 - .align 2, 0 -_0811069C: .4byte gUnknown_3005B60 -_081106A0: .4byte gUnknown_20380D7 -_081106A4: .4byte gUnknown_20380BE -_081106A8: - cmp r0, #2 - beq _081106C6 - b _081106D6 -_081106AE: - movs r0, #2 - strh r0, [r4, #0x1e] - movs r0, #5 - strh r0, [r4, #0x20] - movs r0, #0x40 - b _081106CE -_081106BA: - movs r0, #2 - strh r0, [r4, #0x1e] - movs r0, #5 - strh r0, [r4, #0x20] - movs r0, #0xc0 - b _081106CE -_081106C6: - movs r0, #4 - strh r0, [r4, #0x1e] - strh r0, [r4, #0x20] - movs r0, #0 -_081106CE: - strh r0, [r4, #0x22] - adds r0, r1, #0 - adds r0, #0x20 - strh r0, [r4, #0x26] -_081106D6: - movs r1, #0x24 - ldrsh r0, [r4, r1] - cmp r0, #0 - bge _081106E2 - movs r0, #0 - strh r0, [r4, #0x24] -_081106E2: - ldr r0, _081106FC - ldrb r0, [r0] - bl GetBattlerSpriteBGPriorityRank - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08110708 - ldr r0, _08110700 - ldrh r0, [r0] - strh r0, [r4, #0x1c] - ldr r0, _08110704 - b _08110710 - .align 2, 0 -_081106FC: .4byte gUnknown_20380D7 -_08110700: .4byte gUnknown_2022ACC -_08110704: .4byte 0x04000014 -_08110708: - ldr r0, _08110770 - ldrh r0, [r0] - strh r0, [r4, #0x1c] - ldr r0, _08110774 -_08110710: - str r0, [sp] - ldrh r1, [r4, #0x24] - lsls r3, r1, #0x10 - asrs r1, r3, #0x10 - movs r2, #0x24 - ldrsh r0, [r4, r2] - adds r0, #0x40 - cmp r1, r0 - bgt _0811074A - ldr r5, _08110778 - movs r0, #0xf0 - lsls r0, r0, #3 - adds r6, r5, r0 -_0811072A: - asrs r3, r3, #0x10 - lsls r1, r3, #1 - adds r2, r1, r5 - ldrh r0, [r4, #0x1c] - strh r0, [r2] - adds r1, r1, r6 - ldrh r0, [r4, #0x1c] - strh r0, [r1] - adds r3, #1 - lsls r3, r3, #0x10 - asrs r1, r3, #0x10 - movs r2, #0x24 - ldrsh r0, [r4, r2] - adds r0, #0x40 - cmp r1, r0 - ble _0811072A -_0811074A: - ldr r0, _0811077C - str r0, [sp, #4] - mov r1, sp - movs r2, #0 - movs r0, #1 - strb r0, [r1, #8] - mov r0, sp - strb r2, [r0, #9] - ldr r0, [sp] - ldr r1, [sp, #4] - ldr r2, [sp, #8] - bl ScanlineEffect_SetParams - ldr r0, _08110780 - str r0, [r4] - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08110770: .4byte gUnknown_2022AD0 -_08110774: .4byte 0x04000018 -_08110778: .4byte gUnknown_20388C8 -_0811077C: .4byte 0xA2600001 -_08110780: .4byte sub_08110784 - thumb_func_end sub_08110664 - - thumb_func_start sub_08110784 -sub_08110784: @ 0x08110784 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _081107AC - adds r5, r0, r1 - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #1 - beq _0811085E - cmp r0, #1 - bgt _081107B0 - cmp r0, #0 - beq _081107B6 - b _08110876 - .align 2, 0 -_081107AC: .4byte gUnknown_3005B60 -_081107B0: - cmp r0, #2 - beq _08110870 - b _08110876 -_081107B6: - 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 _0811084E - ldr r0, _08110800 - mov sb, r0 - movs r7, #3 - ldr r1, _08110804 - mov ip, r1 - movs r2, #0xf0 - lsls r2, r2, #3 - add r2, ip - mov r8, r2 -_081107D8: - lsls r2, r3, #0x10 - asrs r0, r2, #0xf - add r0, sb - movs r3, #0 - ldrsh r0, [r0, r3] - movs r3, #0x20 - ldrsh r1, [r5, r3] - asrs r0, r1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - asrs r3, r0, #0x10 - adds r6, r2, #0 - cmp r3, #0 - ble _08110808 - ldrh r1, [r5, #0xa] - adds r0, r7, #0 - ands r0, r1 - adds r0, r3, r0 - b _08110814 - .align 2, 0 -_08110800: .4byte gUnknown_82FA8CC -_08110804: .4byte gUnknown_20388C8 -_08110808: - cmp r3, #0 - bge _08110818 - ldrh r1, [r5, #0xa] - adds r0, r7, #0 - ands r0, r1 - subs r0, r3, r0 -_08110814: - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 -_08110818: - lsls r2, r4, #0x10 - asrs r2, r2, #0x10 - lsls r3, r2, #1 - mov r0, ip - adds r4, r3, r0 - ldrh r0, [r5, #0x1c] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r1, r0 - strh r0, [r4] - add r3, r8 - ldrh r0, [r5, #0x1c] - adds r1, r1, r0 - strh r1, [r3] - asrs r0, r6, #0x10 - ldrh r1, [r5, #0x1e] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - adds r2, #1 - lsls r2, r2, #0x10 - lsrs r4, r2, #0x10 - asrs r2, r2, #0x10 - movs r1, #0x26 - ldrsh r0, [r5, r1] - cmp r2, r0 - ble _081107D8 -_0811084E: - ldrh r0, [r5, #0xa] - adds r0, #1 - strh r0, [r5, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x17 - ble _08110876 - b _08110864 -_0811085E: - ldr r1, _0811086C - movs r0, #3 - strb r0, [r1, #0x15] -_08110864: - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - b _08110876 - .align 2, 0 -_0811086C: .4byte gUnknown_20397C8 -_08110870: - adds r0, r2, #0 - bl DestroyAnimVisualTask -_08110876: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08110784 - - thumb_func_start sub_08110884 -sub_08110884: @ 0x08110884 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - mov r8, r4 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _081108B8 - adds r7, r0, r1 - bl sub_080080C8 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - mov sl, r5 - adds r6, r5, #0 - cmp r6, #0xff - bne _081108BC - adds r0, r4, #0 - bl DestroyAnimVisualTask - b _08110966 - .align 2, 0 -_081108B8: .4byte gUnknown_3005B60 -_081108BC: - ldr r1, _081108E0 - ldrb r0, [r1] - bl CloneBattlerSpriteWithBlend - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - mov sb, r1 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _081108E4 - adds r0, r5, #0 - bl FreeOamMatrix - mov r0, r8 - bl DestroyAnimVisualTask - b _08110966 - .align 2, 0 -_081108E0: .4byte gUnknown_20380BE -_081108E4: - ldr r2, _08110974 - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - adds r0, r2, #0 - adds r0, #0x1c - adds r0, r4, r0 - ldr r1, _08110978 - str r1, [r0] - adds r4, r4, r2 - ldrb r0, [r4, #1] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #1] - movs r0, #0x1f - ands r6, r0 - lsls r2, r6, #1 - ldrb r1, [r4, #3] - movs r0, #0x3f - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #3] - 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, #1 - strb r0, [r1] - mov r1, sb - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r2, #0 - movs r3, #0 - bl SetSpriteRotScale - ldrb r3, [r4, #1] - lsrs r1, r3, #6 - ldrb r2, [r4, #3] - lsrs r2, r2, #6 - lsls r3, r3, #0x1e - lsrs r3, r3, #0x1e - adds r0, r4, #0 - bl CalcCenterToCornerVec - ldr r1, _0811097C - ldrb r0, [r1] - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r7, #0x22] - mov r0, sl - strh r0, [r7, #0x24] - mov r1, sb - strh r1, [r7, #0x26] - ldr r0, _08110980 - str r0, [r7] -_08110966: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08110974: .4byte gUnknown_20205AC -_08110978: .4byte sub_08007140 -_0811097C: .4byte gUnknown_20380BE -_08110980: .4byte sub_08110984 - thumb_func_end sub_08110884 - - thumb_func_start sub_08110984 -sub_08110984: @ 0x08110984 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _081109A8 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _08110A08 - cmp r0, #1 - bgt _081109AC - cmp r0, #0 - beq _081109B6 - b _08110A88 - .align 2, 0 -_081109A8: .4byte gUnknown_3005B60 -_081109AC: - cmp r0, #2 - beq _08110A58 - cmp r0, #3 - beq _08110A78 - b _08110A88 -_081109B6: - ldrh r0, [r4, #0xa] - adds r0, #4 - strh r0, [r4, #0xa] - ldr r1, _08110A04 - movs r2, #0xa - ldrsh r0, [r4, r2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - lsls r1, r1, #0x10 - asrs r1, r1, #0x11 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r2, #0 - subs r0, r0, r1 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0xc - ldrsh r2, [r4, r1] - adds r1, r2, #0 - movs r3, #0 - bl SetSpriteRotScale - ldrh r0, [r4, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #0x22] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl SetBattlerSpriteYOffsetFromOtherYScale - movs r2, #0xa - ldrsh r0, [r4, r2] - cmp r0, #0x30 - bne _08110A88 - b _08110A6A - .align 2, 0 -_08110A04: .4byte gUnknown_82FA8CC -_08110A08: - ldrh r0, [r4, #0xa] - subs r0, #4 - strh r0, [r4, #0xa] - ldr r1, _08110A54 - movs r2, #0xa - ldrsh r0, [r4, r2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - lsls r1, r1, #0x10 - asrs r1, r1, #0x11 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r2, #0 - subs r0, r0, r1 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0xc - ldrsh r2, [r4, r1] - adds r1, r2, #0 - movs r3, #0 - bl SetSpriteRotScale - ldrh r0, [r4, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #0x22] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl SetBattlerSpriteYOffsetFromOtherYScale - movs r2, #0xa - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _08110A88 - b _08110A6A - .align 2, 0 -_08110A54: .4byte gUnknown_82FA8CC -_08110A58: - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08110A74 - adds r0, r0, r1 - bl obj_delete_but_dont_free_vram -_08110A6A: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _08110A88 - .align 2, 0 -_08110A74: .4byte gUnknown_20205AC -_08110A78: - ldrh r0, [r4, #0x24] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl FreeOamMatrix - adds r0, r5, #0 - bl DestroyAnimVisualTask -_08110A88: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08110984 - - thumb_func_start sub_08110A90 -sub_08110A90: @ 0x08110A90 - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - cmp r0, #1 - beq _08110B08 - cmp r0, #1 - bgt _08110AA6 - cmp r0, #0 - beq _08110AB0 - b _08110BB0 -_08110AA6: - cmp r0, #2 - beq _08110B3A - cmp r0, #3 - beq _08110B9A - b _08110BB0 -_08110AB0: - ldr r4, _08110B04 - ldrb r0, [r4] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08110ADE - ldrh r0, [r5, #0x22] - adds r0, #0xc - strh r0, [r5, #0x22] -_08110ADE: - movs r0, #8 - strh r0, [r5, #0x30] - movs r1, #0xfd - lsls r1, r1, #6 - movs r0, #0x50 - bl SetGpuReg - ldrh r0, [r5, #0x30] - movs r1, #0x10 - subs r1, r1, r0 - lsls r1, r1, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - b _08110B32 - .align 2, 0 -_08110B04: .4byte gUnknown_20380D6 -_08110B08: - adds r0, r5, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08110BB0 - movs r0, #0x40 - rsbs r0, r0, #0 - bl BattleAnimAdjustPanning - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r0, #0xcb - bl PlaySE12WithPanning - adds r0, r5, #0 - movs r1, #1 - bl ChangeSpriteAffineAnim -_08110B32: - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] - b _08110BB0 -_08110B3A: - ldrh r0, [r5, #0x32] - adds r1, r0, #1 - strh r1, [r5, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _08110B7E - movs r0, #0 - strh r0, [r5, #0x32] - ldrh r1, [r5, #0x30] - subs r1, #1 - strh r1, [r5, #0x30] - movs r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r1, #0x30 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _08110B7E - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] - adds r2, r5, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] -_08110B7E: - movs r0, #0xe0 - lsls r0, r0, #2 - adds r2, r0, #0 - ldrh r1, [r5, #0x34] - adds r2, r2, r1 - lsls r1, r2, #0x10 - asrs r1, r1, #0x18 - ldrh r0, [r5, #0x26] - subs r0, r0, r1 - strh r0, [r5, #0x26] - movs r0, #0xff - ands r2, r0 - strh r2, [r5, #0x34] - b _08110BB0 -_08110B9A: - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - adds r0, r5, #0 - bl DestroyAnimSprite -_08110BB0: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08110A90 - - thumb_func_start sub_08110BB8 -sub_08110BB8: @ 0x08110BB8 - push {r4, r5, r6, lr} - adds r6, r0, #0 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08110BE4 - adds r0, r6, #0 - movs r1, #2 - bl StartSpriteAffineAnim - ldr r0, _08110BE0 - ldrh r1, [r0, #4] - rsbs r1, r1, #0 - strh r1, [r0, #4] - ldrh r1, [r0] - rsbs r1, r1, #0 - strh r1, [r0] - b _08110C14 - .align 2, 0 -_08110BE0: .4byte gUnknown_20380BE -_08110BE4: - ldr r0, _08110C78 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08110C14 - adds r0, r6, #0 - movs r1, #1 - bl StartSpriteAffineAnim - ldr r1, _08110C7C - ldrh r0, [r1, #2] - rsbs r0, r0, #0 - strh r0, [r1, #2] - ldrh r0, [r1, #4] - rsbs r0, r0, #0 - strh r0, [r1, #4] - ldrh r0, [r1, #6] - rsbs r0, r0, #0 - strh r0, [r1, #6] - ldrh r0, [r1] - rsbs r0, r0, #0 - strh r0, [r1] -_08110C14: - ldr r5, _08110C78 - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord2 - lsls r0, r0, #0x18 - ldr r4, _08110C7C - lsrs r0, r0, #0x18 - ldrh r1, [r4] - adds r0, r0, r1 - strh r0, [r6, #0x20] - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #2] - adds r0, r0, r1 - strh r0, [r6, #0x22] - ldrh r0, [r4, #8] - strh r0, [r6, #0x2e] - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #4] - adds r0, r0, r1 - strh r0, [r6, #0x32] - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r4, [r4, #6] - adds r0, r0, r4 - strh r0, [r6, #0x36] - ldr r0, _08110C80 - str r0, [r6, #0x1c] - ldr r1, _08110C84 - adds r0, r6, #0 - bl StoreSpriteCallbackInData6 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08110C78: .4byte gUnknown_20380D7 -_08110C7C: .4byte gUnknown_20380BE -_08110C80: .4byte sub_080A67B4 -_08110C84: .4byte DestroyAnimSprite - thumb_func_end sub_08110BB8 - - thumb_func_start sub_08110C88 -sub_08110C88: @ 0x08110C88 - push {r4, r5, r6, lr} - adds r6, r0, #0 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08110CAC - ldr r1, _08110CA8 - ldrh r0, [r1] - rsbs r0, r0, #0 - strh r0, [r1] - adds r0, r6, #0 - movs r1, #2 - bl StartSpriteAffineAnim - b _08110CC8 - .align 2, 0 -_08110CA8: .4byte gUnknown_20380BE -_08110CAC: - ldr r0, _08110D24 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08110CC8 - ldr r0, _08110D28 - ldrh r1, [r0, #2] - rsbs r1, r1, #0 - strh r1, [r0, #2] - ldrh r1, [r0] - rsbs r1, r1, #0 - strh r1, [r0] -_08110CC8: - ldr r5, _08110D24 - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord2 - lsls r0, r0, #0x18 - ldr r4, _08110D28 - lsrs r0, r0, #0x18 - ldrh r1, [r4] - adds r0, r0, r1 - strh r0, [r6, #0x20] - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #2] - adds r0, r0, r1 - strh r0, [r6, #0x22] - ldrh r0, [r4, #4] - strh r0, [r6, #0x2e] - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r6, #0x32] - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r6, #0x36] - ldr r0, _08110D2C - str r0, [r6, #0x1c] - ldr r1, _08110D30 - adds r0, r6, #0 - bl StoreSpriteCallbackInData6 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08110D24: .4byte gUnknown_20380D7 -_08110D28: .4byte gUnknown_20380BE -_08110D2C: .4byte sub_080A67B4 -_08110D30: .4byte DestroyAnimSprite - thumb_func_end sub_08110C88 - - thumb_func_start AnimTranslateWebThread -AnimTranslateWebThread: @ 0x08110D34 - push {r4, r5, lr} - adds r5, r0, #0 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08110D50 - ldr r0, _08110D90 - movs r2, #4 - ldrsh r1, [r0, r2] - lsrs r2, r1, #0x1f - adds r1, r1, r2 - asrs r1, r1, #1 - strh r1, [r0, #4] -_08110D50: - adds r0, r5, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldr r1, _08110D90 - ldrh r0, [r1, #4] - strh r0, [r5, #0x2e] - ldrh r0, [r5, #0x20] - strh r0, [r5, #0x30] - ldrh r0, [r5, #0x22] - strh r0, [r5, #0x34] - movs r2, #8 - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _08110D98 - ldr r4, _08110D94 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x32] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x36] - b _08110DAA - .align 2, 0 -_08110D90: .4byte gUnknown_20380BE -_08110D94: .4byte gUnknown_20380D7 -_08110D98: - ldr r0, _08110DC0 - ldrb r0, [r0] - adds r2, r5, #0 - adds r2, #0x32 - adds r3, r5, #0 - adds r3, #0x36 - movs r1, #1 - bl SetAverageBattlerPositions -_08110DAA: - adds r0, r5, #0 - bl sub_080A689C - ldr r0, _08110DC4 - ldrh r0, [r0, #6] - strh r0, [r5, #0x38] - ldr r0, _08110DC8 - str r0, [r5, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08110DC0: .4byte gUnknown_20380D7 -_08110DC4: .4byte gUnknown_20380BE -_08110DC8: .4byte sub_08110DCC - thumb_func_end AnimTranslateWebThread - - thumb_func_start sub_08110DCC -sub_08110DCC: @ 0x08110DCC - push {r4, lr} - adds r4, r0, #0 - bl AnimTranslateLinear - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08110DE2 - adds r0, r4, #0 - bl DestroyAnimSprite - b _08110DFE -_08110DE2: - movs r1, #0x3a - ldrsh r0, [r4, r1] - movs r2, #0x38 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, #0x24] - adds r0, r0, r1 - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x3a] - adds r0, #0xd - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x3a] -_08110DFE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08110DCC - - thumb_func_start sub_08110E04 -sub_08110E04: @ 0x08110E04 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08110E34 - ldrb r0, [r0] - adds r2, r4, #0 - adds r2, #0x20 - adds r3, r4, #0 - adds r3, #0x22 - movs r1, #0 - bl SetAverageBattlerPositions - ldr r0, _08110E38 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08110E40 - ldr r0, _08110E3C - ldrh r1, [r4, #0x20] - ldrh r2, [r0] - subs r1, r1, r2 - strh r1, [r4, #0x20] - b _08110E4C - .align 2, 0 -_08110E34: .4byte gUnknown_20380D7 -_08110E38: .4byte gUnknown_20380D6 -_08110E3C: .4byte gUnknown_20380BE -_08110E40: - ldr r1, _08110E74 - ldrh r0, [r1] - ldrh r2, [r4, #0x20] - adds r0, r0, r2 - strh r0, [r4, #0x20] - adds r0, r1, #0 -_08110E4C: - ldrh r0, [r0, #2] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] - ldr r0, _08110E78 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08110E68 - ldrh r0, [r4, #0x22] - adds r0, #8 - strh r0, [r4, #0x22] -_08110E68: - ldr r0, _08110E7C - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08110E74: .4byte gUnknown_20380BE -_08110E78: .4byte gUnknown_20380D7 -_08110E7C: .4byte sub_08110E80 - thumb_func_end sub_08110E04 - - thumb_func_start sub_08110E80 -sub_08110E80: @ 0x08110E80 - push {lr} - adds r3, r0, #0 - ldrh r0, [r3, #0x2e] - adds r0, #1 - strh r0, [r3, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - bne _08110EB4 - movs r0, #0 - strh r0, [r3, #0x2e] - movs r0, #0x3e - adds r0, r0, r3 - mov ip, r0 - ldrb r2, [r0] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1] -_08110EB4: - ldrh r0, [r3, #0x30] - adds r0, #1 - strh r0, [r3, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x33 - bne _08110EC8 - adds r0, r3, #0 - bl DestroyAnimSprite -_08110EC8: - pop {r0} - bx r0 - thumb_func_end sub_08110E80 - - thumb_func_start sub_08110ECC -sub_08110ECC: @ 0x08110ECC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xfd - lsls r1, r1, #6 - movs r0, #0x50 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0x10 - bl SetGpuReg - movs r0, #0x10 - strh r0, [r4, #0x2e] - ldr r0, _08110EF0 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08110EF0: .4byte sub_08110EF4 - thumb_func_end sub_08110ECC - - thumb_func_start sub_08110EF4 -sub_08110EF4: @ 0x08110EF4 - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x32] - movs r2, #0x32 - ldrsh r0, [r4, r2] - cmp r0, #0x13 - bgt _08110F08 - adds r0, r1, #1 - strh r0, [r4, #0x32] - b _08110F46 -_08110F08: - ldrh r1, [r4, #0x30] - adds r0, r1, #1 - strh r0, [r4, #0x30] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08110F46 - ldrh r1, [r4, #0x2e] - subs r1, #1 - strh r1, [r4, #0x2e] - movs r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08110F46 - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08110F4C - str r0, [r4, #0x1c] -_08110F46: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08110F4C: .4byte sub_08110F50 - thumb_func_end sub_08110EF4 - - thumb_func_start sub_08110F50 -sub_08110F50: @ 0x08110F50 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - adds r0, r4, #0 - bl DestroyAnimSprite - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08110F50 - - thumb_func_start AnimTranslateStinger -AnimTranslateStinger: @ 0x08110F70 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r7, r0, #0 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08110F90 - ldr r1, _08110F8C - ldrh r0, [r1, #4] - rsbs r0, r0, #0 - strh r0, [r1, #4] - b _08110FB2 - .align 2, 0 -_08110F8C: .4byte gUnknown_20380BE -_08110F90: - ldr r0, _0811108C - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08110FB2 - ldr r1, _08111090 - ldrh r0, [r1, #4] - rsbs r0, r0, #0 - strh r0, [r1, #4] - ldrh r0, [r1, #2] - rsbs r0, r0, #0 - strh r0, [r1, #2] - ldrh r0, [r1, #6] - rsbs r0, r0, #0 - strh r0, [r1, #6] -_08110FB2: - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08111002 - ldr r0, _0811108C - ldrb r0, [r0] - bl GetBattlerSide - adds r4, r0, #0 - ldr r5, _08111094 - ldrb r0, [r5] - bl GetBattlerSide - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - bne _08111002 - ldrb r0, [r5] - bl sub_080A630C - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08110FF0 - ldrb r0, [r5] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08111002 -_08110FF0: - ldr r0, _08111090 - movs r2, #4 - ldrsh r1, [r0, r2] - rsbs r1, r1, #0 - strh r1, [r0, #4] - movs r2, #0 - ldrsh r1, [r0, r2] - rsbs r1, r1, #0 - strh r1, [r0] -_08111002: - adds r0, r7, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldr r5, _08111094 - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - adds r4, r0, #0 - lsls r4, r4, #0x18 - ldr r6, _08111090 - lsrs r4, r4, #0x18 - ldrh r0, [r6, #4] - adds r4, r4, r0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrh r2, [r6, #6] - adds r1, r1, r2 - lsls r1, r1, #0x10 - ldrh r2, [r7, #0x20] - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - subs r0, r0, r2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrh r2, [r7, #0x22] - lsrs r5, r1, #0x10 - asrs r1, r1, #0x10 - subs r1, r1, r2 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl ArcTan2Neg - lsls r0, r0, #0x10 - movs r1, #0xc0 - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r0, r0, #0x10 - movs r3, #0x80 - lsls r3, r3, #1 - str r0, [sp] - adds r0, r7, #0 - movs r1, #0 - adds r2, r3, #0 - bl TrySetSpriteRotScale - ldrh r0, [r6, #8] - strh r0, [r7, #0x2e] - strh r4, [r7, #0x32] - strh r5, [r7, #0x36] - ldr r0, _08111098 - str r0, [r7, #0x1c] - ldr r1, _0811109C - adds r0, r7, #0 - bl StoreSpriteCallbackInData6 - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0811108C: .4byte gUnknown_20380D6 -_08111090: .4byte gUnknown_20380BE -_08111094: .4byte gUnknown_20380D7 -_08111098: .4byte sub_080A67B4 -_0811109C: .4byte DestroyAnimSprite - thumb_func_end AnimTranslateStinger - - thumb_func_start sub_081110A0 -sub_081110A0: @ 0x081110A0 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldr r0, _0811110C - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081110C0 - ldr r1, _08111110 - ldrh r0, [r1, #4] - rsbs r0, r0, #0 - strh r0, [r1, #4] -_081110C0: - ldr r4, _08111110 - ldrh r0, [r4, #8] - strh r0, [r6, #0x2e] - ldr r5, _08111114 - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #4] - adds r0, r0, r1 - strh r0, [r6, #0x32] - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #6] - adds r0, r0, r1 - strh r0, [r6, #0x36] - ldrh r0, [r4, #0xa] - strh r0, [r6, #0x38] - adds r0, r6, #0 - bl InitAnimArcTranslation - ldr r0, _08111118 - str r0, [r6, #0x1c] - adds r2, r6, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0811110C: .4byte gUnknown_20380D6 -_08111110: .4byte gUnknown_20380BE -_08111114: .4byte gUnknown_20380D7 -_08111118: .4byte AnimMissileArcStep - thumb_func_end sub_081110A0 - - thumb_func_start AnimMissileArcStep -AnimMissileArcStep: @ 0x0811111C - push {r4, r5, r6, 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, #5 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r2] - adds r0, r4, #0 - bl TranslateAnimHorizontalArc - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08111148 - adds r0, r4, #0 - bl DestroyAnimSprite - b _081111D8 -_08111148: - movs r0, #0x2e - adds r0, r0, r4 - mov r8, r0 - ldrh r7, [r4, #0x20] - ldrh r5, [r4, #0x24] - ldrh r1, [r4, #0x22] - mov ip, r1 - ldrh r6, [r4, #0x26] - mov r2, r8 - add r1, sp, #4 - movs r3, #7 -_0811115E: - ldrh r0, [r2] - strh r0, [r1] - adds r2, #2 - adds r1, #2 - subs r3, #1 - cmp r3, #0 - bge _0811115E - adds r0, r7, r5 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - mov r2, ip - adds r0, r2, r6 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r0, r4, #0 - bl TranslateAnimHorizontalArc - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081111D8 - ldrh r0, [r4, #0x24] - ldrh r1, [r4, #0x20] - adds r0, r0, r1 - lsls r1, r5, #0x10 - asrs r1, r1, #0x10 - subs r0, r0, r1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrh r1, [r4, #0x26] - ldrh r2, [r4, #0x22] - adds r1, r1, r2 - lsls r2, r6, #0x10 - asrs r2, r2, #0x10 - subs r1, r1, r2 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl ArcTan2Neg - lsls r0, r0, #0x10 - movs r1, #0xc0 - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r0, r0, #0x10 - movs r3, #0x80 - lsls r3, r3, #1 - str r0, [sp] - adds r0, r4, #0 - movs r1, #0 - adds r2, r3, #0 - bl TrySetSpriteRotScale - add r2, sp, #4 - mov r1, r8 - movs r3, #7 -_081111CA: - ldrh r0, [r2] - strh r0, [r1] - adds r2, #2 - adds r1, #2 - subs r3, #1 - cmp r3, #0 - bge _081111CA -_081111D8: - add sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end AnimMissileArcStep - - thumb_func_start sub_081111E4 -sub_081111E4: @ 0x081111E4 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _081111F8 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08111200 - ldr r4, _081111FC - b _08111202 - .align 2, 0 -_081111F8: .4byte gUnknown_20380BE -_081111FC: .4byte gUnknown_20380D6 -_08111200: - ldr r4, _08111234 -_08111202: - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #0x12 - strh r0, [r5, #0x22] - ldr r1, _08111238 - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _0811123C - str r0, [r5, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08111234: .4byte gUnknown_20380D7 -_08111238: .4byte DestroySpriteAndMatrix -_0811123C: .4byte RunStoredCallbackWhenAffineAnimEnds - thumb_func_end sub_081111E4 - - thumb_func_start sub_08111240 -sub_08111240: @ 0x08111240 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r6, _081112AC - movs r1, #6 - ldrsh r0, [r6, r1] - cmp r0, #0 - beq _08111260 - ldr r0, _081112B0 - ldrb r0, [r0] - adds r2, r5, #0 - adds r2, #0x20 - adds r3, r5, #0 - adds r3, #0x22 - movs r1, #0 - bl SetAverageBattlerPositions -_08111260: - ldrh r0, [r6] - ldrh r1, [r5, #0x20] - adds r0, r0, r1 - movs r4, #0 - strh r0, [r5, #0x20] - ldrh r0, [r5, #0x22] - adds r0, #0xe - strh r0, [r5, #0x22] - ldrb r1, [r6, #2] - adds r0, r5, #0 - bl StartSpriteAnim - adds r0, r5, #0 - bl AnimateSprite - strh r4, [r5, #0x2e] - strh r4, [r5, #0x30] - movs r0, #4 - strh r0, [r5, #0x32] - movs r0, #0x10 - strh r0, [r5, #0x34] - ldr r0, _081112B4 - strh r0, [r5, #0x36] - ldrh r0, [r6, #4] - strh r0, [r5, #0x38] - ldr r1, _081112B8 - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - ldr r1, _081112BC - str r1, [r5, #0x1c] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081112AC: .4byte gUnknown_20380BE -_081112B0: .4byte gUnknown_20380D7 -_081112B4: .4byte 0x0000FFBA -_081112B8: .4byte sub_081112C0 -_081112BC: .4byte TranslateSpriteInEllipseOverDuration - thumb_func_end sub_08111240 - - thumb_func_start sub_081112C0 -sub_081112C0: @ 0x081112C0 - 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, #4 - strh r0, [r4, #0x32] - movs r0, #0x20 - strh r0, [r4, #0x34] - ldr r0, _081112F8 - strh r0, [r4, #0x36] - ldr r1, _081112FC - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - ldr r1, _08111300 - str r1, [r4, #0x1c] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081112F8: .4byte 0x0000FFE8 -_081112FC: .4byte DestroySpriteAndMatrix -_08111300: .4byte TranslateSpriteInEllipseOverDuration - thumb_func_end sub_081112C0 - - thumb_func_start sub_08111304 -sub_08111304: @ 0x08111304 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0811132C - ldrb r1, [r4, #0xa] - bl StartSpriteAnim - adds r0, r5, #0 - bl AnimateSprite - ldr r0, _08111330 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08111334 - ldrh r0, [r5, #0x20] - ldrh r1, [r4] - subs r0, r0, r1 - b _0811133A - .align 2, 0 -_0811132C: .4byte gUnknown_20380BE -_08111330: .4byte gUnknown_20380D6 -_08111334: - ldrh r0, [r4] - ldrh r1, [r5, #0x20] - adds r0, r0, r1 -_0811133A: - strh r0, [r5, #0x20] - ldr r3, _0811137C - ldrh r2, [r3, #2] - ldrh r0, [r5, #0x22] - adds r2, r2, r0 - movs r4, #0 - strh r2, [r5, #0x22] - ldrh r0, [r3, #8] - strh r0, [r5, #0x2e] - ldrh r0, [r5, #0x20] - strh r0, [r5, #0x30] - ldrh r1, [r3, #4] - adds r0, r0, r1 - strh r0, [r5, #0x32] - strh r2, [r5, #0x34] - ldrh r0, [r3, #6] - adds r2, r2, r0 - strh r2, [r5, #0x36] - adds r0, r5, #0 - bl InitSpriteDataForLinearTranslation - strh r4, [r5, #0x34] - strh r4, [r5, #0x36] - ldr r0, _08111380 - str r0, [r5, #0x1c] - ldr r1, _08111384 - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0811137C: .4byte gUnknown_20380BE -_08111380: .4byte TranslateSpriteLinearFixedPoint -_08111384: .4byte DestroySpriteAndMatrix - thumb_func_end sub_08111304 - - thumb_func_start sub_08111388 -sub_08111388: @ 0x08111388 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _081113A0 - movs r1, #0xc - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _081113A4 - adds r0, r4, #0 - movs r1, #0 - bl InitSpritePosToAnimAttacker - b _081113AC - .align 2, 0 -_081113A0: .4byte gUnknown_20380BE -_081113A4: - adds r0, r4, #0 - movs r1, #0 - bl InitSpritePosToAnimTarget -_081113AC: - ldr r1, _081113C8 - ldrh r0, [r1, #6] - strh r0, [r4, #0x2e] - ldrh r0, [r1, #4] - strh r0, [r4, #0x30] - ldrh r0, [r1, #8] - strh r0, [r4, #0x32] - ldrh r0, [r1, #0xa] - strh r0, [r4, #0x34] - ldr r0, _081113CC - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081113C8: .4byte gUnknown_20380BE -_081113CC: .4byte sub_081113D0 - thumb_func_end sub_08111388 - - thumb_func_start sub_081113D0 -sub_081113D0: @ 0x081113D0 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x30] - ldrh r1, [r4, #0x36] - adds r0, r0, r1 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - rsbs r0, r0, #0 - 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, r0, r1 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x38] - ldrh r0, [r4, #0x2e] - subs r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _08111416 - adds r0, r4, #0 - bl DestroyAnimSprite -_08111416: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081113D0 - - thumb_func_start AnimTask_LoadSandstormBackground -AnimTask_LoadSandstormBackground: @ 0x0811141C - push {r4, r5, r6, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r5, #0 - ldr r1, _081114D8 - movs r0, #0x50 - bl SetGpuReg - movs r1, #0x80 - lsls r1, r1, #5 - movs r0, #0x52 - bl SetGpuReg - movs r0, #1 - movs r1, #4 - movs r2, #1 - bl SetAnimBgAttribute - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl SetAnimBgAttribute - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08111460 - movs r0, #1 - movs r1, #3 - movs r2, #1 - bl SetAnimBgAttribute -_08111460: - ldr r0, _081114DC - strh r5, [r0] - ldr r4, _081114E0 - strh r5, [r4] - movs r0, #0x14 - movs r1, #0 - bl SetGpuReg - ldrh r1, [r4] - movs r0, #0x16 - bl SetGpuReg - mov r0, sp - bl sub_080A63F8 - mov r0, sp - ldrb r0, [r0, #9] - ldr r1, _081114E4 - mov r2, sp - ldrh r2, [r2, #0xa] - bl AnimLoadCompressedBgGfx - ldr r1, _081114E8 - mov r0, sp - movs r2, #0 - bl sub_080A6628 - ldr r0, _081114EC - mov r1, sp - ldrb r1, [r1, #8] - lsls r1, r1, #4 - movs r2, #0x20 - bl LoadCompressedPalette - ldr r0, _081114F0 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _081114BE - ldr r0, _081114F4 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081114BE - movs r5, #1 -_081114BE: - ldr r0, _081114F8 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - strh r5, [r1, #8] - ldr r0, _081114FC - str r0, [r1] - add sp, #0x10 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081114D8: .4byte 0x00003F42 -_081114DC: .4byte gUnknown_2022ACC -_081114E0: .4byte gUnknown_2022ACE -_081114E4: .4byte gUnknown_8D8D570 -_081114E8: .4byte gUnknown_8D8D3F4 -_081114EC: .4byte gUnknown_8D8DA9C -_081114F0: .4byte gUnknown_20380BE -_081114F4: .4byte gUnknown_20380D6 -_081114F8: .4byte gUnknown_3005B60 -_081114FC: .4byte sub_08111500 - thumb_func_end AnimTask_LoadSandstormBackground - - thumb_func_start sub_08111500 -sub_08111500: @ 0x08111500 - push {r4, r5, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _08111528 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #8 - ldrsh r0, [r0, r2] - adds r2, r1, #0 - cmp r0, #0 - bne _08111534 - ldr r1, _0811152C - ldr r3, _08111530 - adds r0, r3, #0 - ldrh r3, [r1] - adds r0, r0, r3 - b _0811153A - .align 2, 0 -_08111528: .4byte gUnknown_3005B60 -_0811152C: .4byte gUnknown_2022ACC -_08111530: .4byte 0x0000FFFA -_08111534: - ldr r1, _08111568 - ldrh r0, [r1] - adds r0, #6 -_0811153A: - strh r0, [r1] - ldr r1, _0811156C - ldr r3, _08111570 - adds r0, r3, #0 - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - lsls r1, r5, #2 - adds r0, r1, r5 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r3, #0x20 - ldrsh r0, [r0, r3] - adds r4, r1, #0 - cmp r0, #4 - bls _0811155C - b _0811168A -_0811155C: - lsls r0, r0, #2 - ldr r1, _08111574 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08111568: .4byte gUnknown_2022ACC -_0811156C: .4byte gUnknown_2022ACE -_08111570: .4byte 0x0000FFFF -_08111574: .4byte _08111578 -_08111578: @ jump table - .4byte _0811158C @ case 0 - .4byte _081115CE @ case 1 - .4byte _081115E8 @ case 2 - .4byte _0811162A @ case 3 - .4byte _0811164C @ case 4 -_0811158C: - adds r0, r4, r5 - lsls r0, r0, #3 - adds r4, r0, r2 - ldrh r0, [r4, #0x1c] - adds r0, #1 - movs r5, #0 - strh r0, [r4, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - bne _0811168A - strh r5, [r4, #0x1c] - ldrh r1, [r4, #0x1e] - adds r1, #1 - strh r1, [r4, #0x1e] - movs r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r1, #0x1e - ldrsh r0, [r4, r1] - cmp r0, #7 - bne _0811168A - ldrh r0, [r4, #0x20] - adds r0, #1 - strh r0, [r4, #0x20] - strh r5, [r4, #0x1e] - b _0811168A -_081115CE: - adds r0, r4, r5 - lsls r0, r0, #3 - adds r1, r0, r2 - ldrh r0, [r1, #0x1e] - adds r0, #1 - strh r0, [r1, #0x1e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x65 - bne _0811168A - movs r0, #7 - strh r0, [r1, #0x1e] - b _08111640 -_081115E8: - adds r0, r4, r5 - lsls r0, r0, #3 - adds r4, r0, r2 - ldrh r0, [r4, #0x1c] - adds r0, #1 - strh r0, [r4, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - bne _0811168A - movs r0, #0 - strh r0, [r4, #0x1c] - ldrh r1, [r4, #0x1e] - subs r1, #1 - strh r1, [r4, #0x1e] - movs r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r2, #0x1e - ldrsh r1, [r4, r2] - cmp r1, #0 - bne _0811168A - ldrh r0, [r4, #0x20] - adds r0, #1 - strh r0, [r4, #0x20] - strh r1, [r4, #0x1e] - b _0811168A -_0811162A: - mov r0, sp - bl sub_080A63F8 - mov r0, sp - ldrb r0, [r0, #9] - bl sub_080A6530 - ldr r0, _08111648 - adds r1, r4, r5 - lsls r1, r1, #3 - adds r1, r1, r0 -_08111640: - ldrh r0, [r1, #0x20] - adds r0, #1 - strh r0, [r1, #0x20] - b _0811168A - .align 2, 0 -_08111648: .4byte gUnknown_3005B60 -_0811164C: - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08111660 - movs r0, #1 - movs r1, #3 - movs r2, #0 - bl SetAnimBgAttribute -_08111660: - ldr r0, _08111694 - movs r1, #0 - strh r1, [r0] - ldr r0, _08111698 - strh r1, [r0] - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #1 - movs r1, #4 - movs r2, #1 - bl SetAnimBgAttribute - adds r0, r5, #0 - bl DestroyAnimVisualTask -_0811168A: - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08111694: .4byte gUnknown_2022ACC -_08111698: .4byte gUnknown_2022ACE - thumb_func_end sub_08111500 - - thumb_func_start AnimDirtParticleAcrossScreen -AnimDirtParticleAcrossScreen: @ 0x0811169C - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _08111718 - ldr r4, _081116E0 - movs r2, #6 - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _081116E8 - ldr r0, _081116E4 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081116E8 - movs r0, #0x98 - lsls r0, r0, #1 - strh r0, [r5, #0x20] - ldrh r0, [r4, #2] - rsbs r0, r0, #0 - strh r0, [r4, #2] - movs r0, #1 - strh r0, [r5, #0x38] - ldrb r1, [r5, #3] - subs r0, #0x40 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r5, #3] - b _081116EC - .align 2, 0 -_081116E0: .4byte gUnknown_20380BE -_081116E4: .4byte gUnknown_20380D6 -_081116E8: - ldr r0, _0811170C - strh r0, [r5, #0x20] -_081116EC: - ldr r4, _08111710 - ldrh r0, [r4] - strh r0, [r5, #0x22] - ldr r1, _08111714 - adds r0, r5, #0 - bl SetSubspriteTables - ldrh r0, [r4, #2] - strh r0, [r5, #0x30] - ldrh r0, [r4, #4] - strh r0, [r5, #0x32] - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] - b _08111774 - .align 2, 0 -_0811170C: .4byte 0x0000FFC0 -_08111710: .4byte gUnknown_20380BE -_08111714: .4byte gUnknown_85727A4 -_08111718: - ldrh r1, [r5, #0x30] - ldrh r3, [r5, #0x34] - adds r1, r1, r3 - ldrh r2, [r5, #0x32] - ldrh r0, [r5, #0x36] - adds r2, r2, r0 - lsls r0, r1, #0x10 - asrs r0, r0, #0x18 - ldrh r3, [r5, #0x24] - adds r0, r0, r3 - strh r0, [r5, #0x24] - lsls r0, r2, #0x10 - asrs r0, r0, #0x18 - ldrh r3, [r5, #0x26] - adds r0, 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 _0811175E - movs r2, #0x20 - ldrsh r0, [r5, r2] - movs r3, #0x24 - ldrsh r1, [r5, r3] - adds r0, r0, r1 - movs r1, #0x88 - lsls r1, r1, #1 - cmp r0, r1 - ble _08111774 - b _08111770 -_0811175E: - movs r1, #0x20 - ldrsh r0, [r5, r1] - movs r2, #0x24 - ldrsh r1, [r5, r2] - adds r0, r0, r1 - movs r1, #0x20 - rsbs r1, r1, #0 - cmp r0, r1 - bge _08111774 -_08111770: - ldr r0, _0811177C - str r0, [r5, #0x1c] -_08111774: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0811177C: .4byte DestroyAnimSprite - thumb_func_end AnimDirtParticleAcrossScreen - - thumb_func_start AnimRaiseSprite -AnimRaiseSprite: @ 0x08111780 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _081117B8 - ldrb r1, [r5, #8] - bl StartSpriteAnim - adds r0, r4, #0 - movs r1, #0 - bl InitSpritePosToAnimAttacker - ldrh r0, [r5, #6] - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x20] - strh r0, [r4, #0x32] - ldrh r0, [r5, #4] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x36] - ldr r0, _081117BC - str r0, [r4, #0x1c] - ldr r1, _081117C0 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081117B8: .4byte gUnknown_20380BE -_081117BC: .4byte sub_080A67B4 -_081117C0: .4byte DestroyAnimSprite - thumb_func_end AnimRaiseSprite - - thumb_func_start sub_081117C4 -sub_081117C4: @ 0x081117C4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _08111844 - adds r6, r1, r0 - ldr r5, _08111848 - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldrb r0, [r5] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #8 - movs r1, #0xc0 - lsls r1, r1, #0xd - adds r0, r0, r1 - lsrs r7, r0, #0x10 - ldr r4, _0811184C - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - ldrb r0, [r4] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #8 - movs r2, #0xc0 - lsls r2, r2, #0xd - adds r0, r0, r2 - lsrs r0, r0, #0x10 - mov r8, r0 - ldrb r1, [r5] - movs r0, #2 - eors r0, r1 - ldrb r4, [r4] - cmp r0, r4 - bne _08111834 - mov r8, r7 -_08111834: - bl sub_08111BAC - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #1 - bne _08111850 - movs r0, #0x20 - b _08111856 - .align 2, 0 -_08111844: .4byte gUnknown_3005B60 -_08111848: .4byte gUnknown_20380D6 -_0811184C: .4byte gUnknown_20380D7 -_08111850: - lsls r1, r5, #3 - movs r0, #0x30 - subs r0, r0, r1 -_08111856: - strh r0, [r6, #0x18] - movs r4, #0 - strh r4, [r6, #8] - strh r4, [r6, #0x1e] - strh r4, [r6, #0x1a] - movs r0, #1 - strh r0, [r6, #0x20] - movs r1, #0x18 - ldrsh r0, [r6, r1] - cmp r0, #0 - bge _0811186E - adds r0, #7 -_0811186E: - asrs r0, r0, #3 - subs r0, #1 - strh r0, [r6, #0x1c] - mov r2, sb - lsls r0, r2, #3 - strh r0, [r6, #0xc] - lsls r0, r7, #3 - strh r0, [r6, #0xe] - mov r1, sl - subs r0, r1, r2 - lsls r0, r0, #3 - movs r2, #0x18 - ldrsh r1, [r6, r2] - bl __divsi3 - strh r0, [r6, #0x10] - mov r1, r8 - subs r0, r1, r7 - lsls r0, 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 - rsbs r0, r0, #0 - bl BattleAnimAdjustPanning - adds r4, r0, #0 - lsls r4, r4, #0x18 - asrs r4, r4, #8 - lsrs r4, r4, #0x10 - movs r0, #0x3f - bl BattleAnimAdjustPanning - lsls r0, r0, #0x18 - strh r4, [r6, #0x22] - asrs r0, r0, #0x18 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - subs r0, r0, r4 - movs r2, #0x18 - ldrsh r1, [r6, r2] - bl __divsi3 - strh r0, [r6, #0x24] - strh r5, [r6, #0xa] - movs r0, #0 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r6, #0x26] - ldr r0, _081118F0 - str r0, [r6] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081118F0: .4byte sub_081118F4 - thumb_func_end sub_081117C4 - - thumb_func_start sub_081118F4 -sub_081118F4: @ 0x081118F4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _08111918 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #4 - bls _0811190E - b _08111A5C -_0811190E: - lsls r0, r0, #2 - ldr r1, _0811191C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08111918: .4byte gUnknown_3005B60 -_0811191C: .4byte _08111920 -_08111920: @ jump table - .4byte _08111934 @ case 0 - .4byte _08111998 @ case 1 - .4byte _081119A0 @ case 2 - .4byte _081119FC @ case 3 - .4byte _08111A4E @ case 4 -_08111934: - ldrh r2, [r4, #0x14] - ldrh r0, [r4, #0x10] - subs r2, r2, r0 - strh r2, [r4, #0x14] - ldrh r0, [r4, #0x16] - ldrh r1, [r4, #0x12] - subs r0, r0, r1 - strh r0, [r4, #0x16] - ldr r3, _08111994 - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - lsls r2, r2, #0x10 - asrs r2, r2, #0x13 - strh r2, [r0, #0x24] - movs r1, #0x26 - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrh r0, [r4, #0x16] - lsls r0, r0, #0x10 - asrs r0, r0, #0x13 - strh r0, [r1, #0x26] - ldrh r0, [r4, #0x1a] - adds r0, #1 - strh r0, [r4, #0x1a] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xa - bne _08111984 - movs r0, #0x14 - strh r0, [r4, #0x1e] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_08111984: - ldrh r1, [r4, #0x22] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r0, #0xa2 - bl PlaySE12WithPanning - b _08111A5C - .align 2, 0 -_08111994: .4byte gUnknown_20205AC -_08111998: - ldrh r0, [r4, #0x1e] - subs r0, #1 - strh r0, [r4, #0x1e] - b _08111A40 -_081119A0: - ldrh r0, [r4, #0x1a] - subs r0, #1 - strh r0, [r4, #0x1a] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - beq _081119C0 - ldrh r0, [r4, #0x10] - ldrh r2, [r4, #0x14] - adds r0, r0, r2 - strh r0, [r4, #0x14] - ldrh r0, [r4, #0x12] - ldrh r1, [r4, #0x16] - adds r0, r0, r1 - strh r0, [r4, #0x16] - b _081119CA -_081119C0: - strh r0, [r4, #0x14] - strh r0, [r4, #0x16] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_081119CA: - ldr r2, _081119F8 - movs r1, #0x26 - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r0, [r4, #0x14] - lsls r0, r0, #0x10 - asrs r0, r0, #0x13 - strh r0, [r1, #0x24] - movs r1, #0x26 - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r0, [r4, #0x16] - lsls r0, r0, #0x10 - asrs r0, r0, #0x13 - strh r0, [r1, #0x26] - b _08111A5C - .align 2, 0 -_081119F8: .4byte gUnknown_20205AC -_081119FC: - ldrh r0, [r4, #0x10] - ldrh r2, [r4, #0xc] - adds r0, r0, r2 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0x12] - ldrh r1, [r4, #0xe] - adds r0, r0, r1 - strh r0, [r4, #0xe] - ldrh r0, [r4, #0x1a] - adds r0, #1 - strh r0, [r4, #0x1a] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x1c - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _08111A3A - movs r0, #0 - strh r0, [r4, #0x1a] - adds r0, r4, #0 - bl sub_08111A64 - ldrh r1, [r4, #0x24] - ldrh r0, [r4, #0x22] - adds r1, r1, r0 - strh r1, [r4, #0x22] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r0, #0xaf - bl PlaySE12WithPanning -_08111A3A: - ldrh r0, [r4, #0x18] - subs r0, #1 - strh r0, [r4, #0x18] -_08111A40: - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08111A5C - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _08111A5C -_08111A4E: - movs r1, #0x1e - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08111A5C - adds r0, r2, #0 - bl DestroyAnimVisualTask -_08111A5C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081118F4 - - thumb_func_start sub_08111A64 -sub_08111A64: @ 0x08111A64 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0xa] - subs r0, #1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - bhi _08111B54 - lsls r0, r0, #2 - ldr r1, _08111A80 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08111A80: .4byte _08111A84 -_08111A84: @ jump table - .4byte _08111A98 @ case 0 - .4byte _08111AA4 @ case 1 - .4byte _08111AA4 @ case 2 - .4byte _08111AB0 @ case 3 - .4byte _08111ABC @ case 4 -_08111A98: - ldr r3, _08111AA0 - movs r5, #0 - b _08111AC0 - .align 2, 0 -_08111AA0: .4byte gUnknown_857280C -_08111AA4: - ldr r3, _08111AAC - movs r5, #0x50 - b _08111AC0 - .align 2, 0 -_08111AAC: .4byte gUnknown_8572824 -_08111AB0: - ldr r3, _08111AB8 - movs r5, #0x40 - b _08111AC0 - .align 2, 0 -_08111AB8: .4byte gUnknown_8572824 -_08111ABC: - ldr r3, _08111B5C - movs r5, #0x30 -_08111AC0: - ldrh r1, [r4, #0xc] - lsls r1, r1, #0x10 - asrs r1, r1, #0x13 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldrh r2, [r4, #0xe] - lsls r2, r2, #0x10 - asrs r2, r2, #0x13 - lsls r2, r2, #0x10 - movs r6, #0x20 - ldrsh r0, [r4, r6] - lsls r0, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - asrs r1, r1, #0x10 - lsrs r7, r2, #0x10 - asrs r2, r2, #0x10 - adds r0, r3, #0 - movs r3, #0x23 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x40 - beq _08111B4C - ldr r1, _08111B60 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - movs r1, #0x12 - strh r1, [r0, #0x2e] - movs r2, #0x20 - ldrsh r1, [r4, r2] - lsls r2, r1, #2 - adds r2, r2, r1 - lsls r2, r2, #2 - adds r2, r6, r2 - movs r6, #0xa - ldrsh r3, [r4, r6] - lsls r1, r3, #1 - adds r1, r1, r3 - adds r2, r2, r1 - strh r2, [r0, #0x32] - strh r7, [r0, #0x36] - movs r1, #0xa - ldrsh r2, [r4, r1] - lsls r2, r2, #1 - movs r3, #0x10 - rsbs r3, r3, #0 - adds r1, r3, #0 - subs r1, r1, r2 - strh r1, [r0, #0x38] - ldrh r3, [r0, #4] - lsls r2, r3, #0x16 - lsrs r2, r2, #0x16 - adds r2, r2, r5 - ldr r5, _08111B64 - adds r1, r5, #0 - ands r2, r1 - ldr r1, _08111B68 - ands r1, r3 - orrs r1, r2 - strh r1, [r0, #4] - bl InitAnimArcTranslation - ldrh r0, [r4, #0x1e] - adds r0, #1 - strh r0, [r4, #0x1e] -_08111B4C: - movs r6, #0x20 - ldrsh r0, [r4, r6] - rsbs r0, r0, #0 - strh r0, [r4, #0x20] -_08111B54: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08111B5C: .4byte gUnknown_8572824 -_08111B60: .4byte gUnknown_20205AC -_08111B64: .4byte 0x000003FF -_08111B68: .4byte 0xFFFFFC00 - thumb_func_end sub_08111A64 - - thumb_func_start sub_08111B6C -sub_08111B6C: @ 0x08111B6C - push {r4, lr} - adds r4, r0, #0 - bl TranslateAnimHorizontalArc - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08111B9E - ldr r0, _08111BA4 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xff - beq _08111B98 - ldr r0, _08111BA8 - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x1e] - subs r0, #1 - strh r0, [r1, #0x1e] -_08111B98: - adds r0, r4, #0 - bl DestroySprite -_08111B9E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08111BA4: .4byte sub_081118F4 -_08111BA8: .4byte gUnknown_3005B60 - thumb_func_end sub_08111B6C - - thumb_func_start sub_08111BAC -sub_08111BAC: @ 0x08111BAC - push {lr} - ldr r0, _08111BD4 - ldr r0, [r0] - ldrb r1, [r0, #0x11] - lsrs r0, r1, #4 - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - subs r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r2, #0xff - lsls r2, r2, #0x18 - adds r0, r0, r2 - lsrs r0, r0, #0x18 - cmp r0, #4 - bls _08111BCE - movs r1, #1 -_08111BCE: - adds r0, r1, #0 - pop {r1} - bx r1 - .align 2, 0 -_08111BD4: .4byte gUnknown_20380A0 - thumb_func_end sub_08111BAC - - thumb_func_start sub_08111BD8 -sub_08111BD8: @ 0x08111BD8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08111C10 - ldrb r1, [r5, #8] - bl StartSpriteAnim - ldrh r0, [r5] - strh r0, [r4, #0x24] - ldrh r0, [r5, #2] - strh r0, [r4, #0x32] - ldrh r0, [r4, #0x34] - ldrh r1, [r5, #4] - subs r0, r0, r1 - strh r0, [r4, #0x34] - movs r0, #3 - strh r0, [r4, #0x2e] - ldrh r0, [r5, #6] - strh r0, [r4, #0x30] - ldr r0, _08111C14 - str r0, [r4, #0x1c] - adds r4, #0x3e - ldrb r0, [r4] - movs r1, #4 - orrs r0, r1 - strb r0, [r4] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08111C10: .4byte gUnknown_20380BE -_08111C14: .4byte sub_08111C18 - thumb_func_end sub_08111BD8 - - thumb_func_start sub_08111C18 -sub_08111C18: @ 0x08111C18 - push {lr} - adds r2, r0, #0 - adds r3, r2, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r3] - ldrh r1, [r2, #0x34] - movs r3, #0x34 - ldrsh r0, [r2, r3] - cmp r0, #0 - beq _08111C50 - ldrh r3, [r2, #0x32] - adds r0, r1, r3 - strh r0, [r2, #0x26] - ldrh r0, [r2, #0x2e] - adds r1, r1, r0 - strh r1, [r2, #0x34] - adds r0, #1 - strh r0, [r2, #0x2e] - lsls r1, r1, #0x10 - cmp r1, #0 - ble _08111C62 - movs r0, #0 - strh r0, [r2, #0x34] - b _08111C62 -_08111C50: - ldrh r0, [r2, #0x30] - subs r0, #1 - strh r0, [r2, #0x30] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08111C62 - adds r0, r2, #0 - bl DestroyAnimSprite -_08111C62: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08111C18 - - thumb_func_start sub_08111C68 -sub_08111C68: @ 0x08111C68 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08111C90 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08111C84 - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAffineAnim -_08111C84: - adds r0, r4, #0 - bl TranslateAnimSpriteToTargetMonLocation - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08111C90: .4byte gUnknown_20380D6 - thumb_func_end sub_08111C68 - - thumb_func_start sub_08111C94 -sub_08111C94: @ 0x08111C94 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08111CE0 - ldrb r0, [r5] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x20] - ldrb r0, [r5] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08111CE4 - ldrh r3, [r2] - ldrh r5, [r4, #0x20] - adds r1, r3, r5 - strh r1, [r4, #0x20] - ldrh r1, [r2, #2] - adds r0, r0, r1 - strh r0, [r4, #0x22] - strh r3, [r4, #0x30] - strh r1, [r4, #0x32] - ldrh r0, [r2, #4] - strh r0, [r4, #0x38] - ldrb r1, [r2, #6] - adds r0, r4, #0 - bl StartSpriteAnim - ldr r0, _08111CE8 - str r0, [r4, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08111CE0: .4byte gUnknown_20380D7 -_08111CE4: .4byte gUnknown_20380BE -_08111CE8: .4byte sub_08111CEC - thumb_func_end sub_08111C94 - - thumb_func_start sub_08111CEC -sub_08111CEC: @ 0x08111CEC - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - adds r0, #8 - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x30] - ldrh r1, [r4, #0x34] - adds r0, r0, r1 - strh r0, [r4, #0x34] - ldrh r0, [r4, #0x32] - ldrh r2, [r4, #0x36] - adds r0, r0, r2 - strh r0, [r4, #0x36] - movs r1, #0x34 - ldrsh r0, [r4, r1] - movs r1, #0x28 - bl __divsi3 - ldrh r1, [r4, #0x24] - adds r1, 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, r1, r0 - strh r1, [r4, #0x26] - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0x8c - ble _08111D36 - adds r0, r4, #0 - bl DestroyAnimSprite -_08111D36: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08111CEC - - thumb_func_start SafariHandleLoadMonSprite -SafariHandleLoadMonSprite: @ 0x08111D3C - push {lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r2, _08111D74 - ldr r0, [r2] - cmp r0, #0x20 - bgt _08111D50 - ldr r1, _08111D78 - movs r0, #0 - strh r0, [r1, #0xe] -_08111D50: - ldr r2, [r2] - adds r0, r2, #0 - subs r0, #0x21 - cmp r0, #0x20 - bhi _08111D60 - ldr r1, _08111D78 - movs r0, #1 - strh r0, [r1, #0xe] -_08111D60: - cmp r2, #0x41 - ble _08111D6A - ldr r1, _08111D78 - movs r0, #2 - strh r0, [r1, #0xe] -_08111D6A: - adds r0, r3, #0 - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_08111D74: .4byte gUnknown_20380A4 -_08111D78: .4byte gUnknown_20380BE - thumb_func_end SafariHandleLoadMonSprite - - thumb_func_start sub_08111D7C -sub_08111D7C: @ 0x08111D7C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _08111DD8 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r5, r0, r1 - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _08111D9E - movs r0, #0 - bl sub_080A6674 - movs r0, #0xc8 - strh r0, [r5, #0xa] -_08111D9E: - ldr r4, _08111DDC - movs r1, #0xa - ldrsh r0, [r5, r1] - movs r1, #0xa - bl __divsi3 - ldrh r1, [r4] - adds r1, r1, r0 - strh r1, [r4] - ldrh r0, [r5, #0xa] - subs r0, #3 - strh r0, [r5, #0xa] - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #0x78 - bne _08111DCA - movs r0, #1 - bl sub_080A6674 - adds r0, r6, #0 - bl DestroyAnimVisualTask -_08111DCA: - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08111DD8: .4byte gUnknown_3005B60 -_08111DDC: .4byte gUnknown_2022AD6 - thumb_func_end sub_08111D7C - - thumb_func_start sub_08111DE0 -sub_08111DE0: @ 0x08111DE0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - ldr r1, _08111E4C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08111E0C - movs r0, #0 - bl sub_080A6674 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - ldr r0, _08111E50 - ldrh r0, [r0] - strh r0, [r4, #0xc] -_08111E0C: - ldrh r0, [r4, #0xa] - adds r0, #0x50 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0xa] - ldr r6, _08111E50 - movs r2, #0xa - ldrsh r1, [r4, r2] - movs r0, #4 - bl Cos - ldrh r4, [r4, #0xc] - adds r0, r0, r4 - strh r0, [r6] - ldr r0, _08111E54 - movs r2, #0xe - ldrsh r1, [r0, r2] - ldr r0, _08111E58 - cmp r1, r0 - bne _08111E44 - movs r0, #0 - strh r0, [r6] - movs r0, #1 - bl sub_080A6674 - adds r0, r5, #0 - bl DestroyAnimVisualTask -_08111E44: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08111E4C: .4byte gUnknown_3005B60 -_08111E50: .4byte gUnknown_2022AD6 -_08111E54: .4byte gUnknown_20380BE -_08111E58: .4byte 0x00000FFF - thumb_func_end sub_08111DE0 - - thumb_func_start sub_08111E5C -sub_08111E5C: @ 0x08111E5C - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldr r0, _08111EB8 - ldrh r0, [r0, #4] - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x20] - strh r0, [r4, #0x30] - ldr r5, _08111EBC - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x32] - ldrh r0, [r4, #0x22] - strh r0, [r4, #0x34] - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_080A689C - ldr r0, _08111EC0 - str r0, [r4, #0x1c] - movs r0, #0x10 - strh r0, [r4, #0x3a] - movs r1, #0xfd - lsls r1, r1, #6 - movs r0, #0x50 - bl SetGpuReg - ldrh r1, [r4, #0x3a] - movs r0, #0x52 - bl SetGpuReg - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08111EB8: .4byte gUnknown_20380BE -_08111EBC: .4byte gUnknown_20380D7 -_08111EC0: .4byte sub_08111EC4 - thumb_func_end sub_08111E5C - - thumb_func_start sub_08111EC4 -sub_08111EC4: @ 0x08111EC4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08111FB4 - adds r0, r4, #0 - bl AnimTranslateLinear - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08111EE4 - ldr r0, _08111EE0 - str r0, [r4, #0x1c] - b _08111F2E - .align 2, 0 -_08111EE0: .4byte sub_08111F38 -_08111EE4: - movs r1, #0x38 - ldrsh r0, [r4, r1] - movs r1, #0xa - bl Sin - ldrh r1, [r4, #0x24] - adds r0, r0, r1 - strh r0, [r4, #0x24] - movs r1, #0x38 - ldrsh r0, [r4, r1] - movs r1, #0xf - bl Cos - ldrh r1, [r4, #0x26] - adds r0, r0, r1 - strh r0, [r4, #0x26] - ldrh r2, [r4, #0x38] - adds r0, r2, #5 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x38] - ldrh r0, [r4, #0x38] - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - cmp r2, #0 - beq _08111F1C - cmp r2, #0xc4 - ble _08111F2E -_08111F1C: - lsls r0, r0, #0x10 - cmp r0, #0 - ble _08111F2E - ldr r0, _08111F34 - movs r1, #0 - ldrsb r1, [r0, r1] - movs r0, #0xc4 - bl PlaySE12WithPanning -_08111F2E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08111F34: .4byte gUnknown_20380E0 - thumb_func_end sub_08111EC4 - - thumb_func_start sub_08111F38 -sub_08111F38: @ 0x08111F38 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strh r0, [r4, #0x2e] - adds r0, r4, #0 - bl AnimTranslateLinear - movs r1, #0x38 - ldrsh r0, [r4, r1] - movs r1, #0xa - bl Sin - ldrh r1, [r4, #0x24] - adds r0, r0, r1 - strh r0, [r4, #0x24] - movs r1, #0x38 - ldrsh r0, [r4, r1] - movs r1, #0xf - bl Cos - ldrh r1, [r4, #0x26] - adds r0, r0, r1 - strh r0, [r4, #0x26] - ldrh r2, [r4, #0x38] - adds r0, r2, #5 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x38] - ldrh r0, [r4, #0x38] - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - cmp r2, #0 - beq _08111F7E - cmp r2, #0xc4 - ble _08111F8A -_08111F7E: - lsls r0, r0, #0x10 - cmp r0, #0 - ble _08111F8A - movs r0, #0xc4 - bl sub_080A306C -_08111F8A: - movs r1, #0x3a - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08111FA8 - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08111FA4 - str r0, [r4, #0x1c] - b _08111FAE - .align 2, 0 -_08111FA4: .4byte sub_080A60BC -_08111FA8: - adds r0, r4, #0 - bl sub_08111FB4 -_08111FAE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08111F38 - - thumb_func_start sub_08111FB4 -sub_08111FB4: @ 0x08111FB4 - push {r4, lr} - adds r4, r0, #0 - ldrh r2, [r4, #0x3a] - movs r1, #0x3a - ldrsh r0, [r4, r1] - cmp r0, #0xff - ble _08111FD8 - adds r0, r2, #1 - strh r0, [r4, #0x3a] - lsls r0, r0, #0x10 - ldr r1, _08111FD4 - cmp r0, r1 - bne _0811203E - movs r0, #0 - b _0811203C - .align 2, 0 -_08111FD4: .4byte 0x010D0000 -_08111FD8: - ldrh r1, [r4, #0x3c] - adds r3, r1, #1 - strh r3, [r4, #0x3c] - movs r0, #0xff - ands r0, r1 - cmp r0, #0 - bne _0811203E - ldr r1, _08111FFC - ands r1, r3 - strh r1, [r4, #0x3c] - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08112000 - adds r0, r2, #1 - b _08112002 - .align 2, 0 -_08111FFC: .4byte 0xFFFFFF00 -_08112000: - subs r0, r2, #1 -_08112002: - strh r0, [r4, #0x3a] - ldrh r0, [r4, #0x3a] - movs r1, #0x10 - subs r1, r1, r0 - lsls r1, r1, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r2, #0x3a - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _08112024 - cmp r0, #0x10 - bne _08112030 -_08112024: - ldrh r0, [r4, #0x3c] - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r2, #0 - eors r0, r1 - strh r0, [r4, #0x3c] -_08112030: - movs r1, #0x3a - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0811203E - movs r0, #0x80 - lsls r0, r0, #1 -_0811203C: - strh r0, [r4, #0x3a] -_0811203E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08111FB4 - - thumb_func_start sub_08112044 -sub_08112044: @ 0x08112044 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimTarget - ldr r1, _08112060 - str r1, [r4, #0x1c] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08112060: .4byte sub_08112064 - thumb_func_end sub_08112044 - - thumb_func_start sub_08112064 -sub_08112064: @ 0x08112064 - 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, #8 - bl Cos - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x2e] - subs r0, #0x41 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x82 - bhi _08112098 - ldrb r0, [r4, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #8 - b _081120A2 -_08112098: - ldrb r0, [r4, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #4 -_081120A2: - orrs r1, r0 - strb r1, [r4, #5] - 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, r0, #0x10 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x26] - adds r0, r0, r1 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x3c] - adds r0, #1 - strh r0, [r4, #0x3c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3d - bne _081120D4 - adds r0, r4, #0 - bl DestroyAnimSprite -_081120D4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08112064 - - thumb_func_start sub_081120DC -sub_081120DC: @ 0x081120DC - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - movs r1, #0xfd - lsls r1, r1, #6 - movs r0, #0x50 - bl SetGpuReg - movs r1, #0x80 - lsls r1, r1, #5 - movs r0, #0x52 - bl SetGpuReg - movs r0, #0 - bl GetAnimBattlerSpriteId - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #1 - bl PrepareBattlerSpriteForRotScale - adds r0, r4, #0 - movs r1, #0x80 - movs r2, #0x80 - movs r3, #0 - bl SetSpriteRotScale - ldr r1, _08112154 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - ldr r1, _08112158 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #0 - movs r1, #0x80 - strh r1, [r0, #8] - ldr r1, _0811215C - ldrh r1, [r1] - strh r1, [r0, #0xa] - strh r2, [r0, #0xc] - movs r1, #0x10 - strh r1, [r0, #0xe] - ldr r1, _08112160 - str r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08112154: .4byte gUnknown_20205AC -_08112158: .4byte gUnknown_3005B60 -_0811215C: .4byte gUnknown_20380BE -_08112160: .4byte sub_08112164 - thumb_func_end sub_081120DC - - thumb_func_start sub_08112164 -sub_08112164: @ 0x08112164 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _081121B4 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 - ldrh r0, [r4, #0x1c] - adds r0, #1 - strh r0, [r4, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - bne _081121AC - movs r0, #0 - strh r0, [r4, #0x1c] - ldrh r1, [r4, #0xc] - adds r1, #1 - strh r1, [r4, #0xc] - ldrh r0, [r4, #0xe] - subs r0, #1 - strh r0, [r4, #0xe] - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r1, #0xc - ldrsh r0, [r4, r1] - cmp r0, #9 - bne _081121AC - ldr r0, _081121B8 - str r0, [r4] -_081121AC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081121B4: .4byte gUnknown_3005B60 -_081121B8: .4byte sub_081121BC - thumb_func_end sub_08112164 - - thumb_func_start sub_081121BC -sub_081121BC: @ 0x081121BC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - ldr r1, _081121E0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrh r1, [r4, #0xa] - movs r2, #0xa - ldrsh r0, [r4, r2] - cmp r0, #0 - ble _081121E4 - subs r0, r1, #1 - strh r0, [r4, #0xa] - b _08112228 - .align 2, 0 -_081121E0: .4byte gUnknown_3005B60 -_081121E4: - movs r0, #0 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldrh r0, [r4, #8] - adds r0, #8 - strh r0, [r4, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xff - bgt _0811220C - movs r0, #8 - ldrsh r2, [r4, r0] - adds r0, r1, #0 - adds r1, r2, #0 - movs r3, #0 - bl SetSpriteRotScale - b _08112228 -_0811220C: - adds r0, r1, #0 - bl ResetSpriteRotScale - adds r0, r5, #0 - bl DestroyAnimVisualTask - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg -_08112228: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081121BC - - thumb_func_start InitAnimShadowBall -InitAnimShadowBall: @ 0x08112230 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #4 - adds r4, r0, #0 - ldrh r5, [r4, #0x20] - ldrh r6, [r4, #0x22] - ldr r0, _081122CC - mov r8, r0 - ldrb r0, [r0] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - mov sb, r1 - strh r0, [r4, #0x20] - mov r1, r8 - ldrb r0, [r1] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x22] - mov r1, sb - strh r1, [r4, #0x2e] - ldr r2, _081122D0 - ldrh r1, [r2] - strh r1, [r4, #0x30] - ldrh r1, [r2, #2] - strh r1, [r4, #0x32] - ldrh r1, [r2, #4] - strh r1, [r4, #0x34] - ldrh r1, [r4, #0x20] - lsls r1, r1, #4 - strh r1, [r4, #0x36] - lsls r0, r0, #4 - strh r0, [r4, #0x38] - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - movs r1, #0x20 - ldrsh r0, [r4, r1] - subs r5, r5, r0 - lsls r5, r5, #4 - movs r0, #0 - ldrsh r1, [r2, r0] - lsls r1, r1, #1 - adds r0, r5, #0 - str r2, [sp] - bl __divsi3 - strh r0, [r4, #0x3a] - lsls r6, r6, #0x10 - asrs r6, r6, #0x10 - movs r1, #0x22 - ldrsh r0, [r4, r1] - subs r6, r6, r0 - lsls r6, r6, #4 - ldr r2, [sp] - movs r0, #0 - ldrsh r1, [r2, r0] - lsls r1, r1, #1 - adds r0, r6, #0 - bl __divsi3 - strh r0, [r4, #0x3c] - ldr r0, _081122D4 - str r0, [r4, #0x1c] - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081122CC: .4byte gUnknown_20380D6 -_081122D0: .4byte gUnknown_20380BE -_081122D4: .4byte AnimShadowBallStep - thumb_func_end InitAnimShadowBall - - thumb_func_start AnimShadowBallStep -AnimShadowBallStep: @ 0x081122D8 - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - cmp r0, #1 - beq _08112322 - cmp r0, #1 - bgt _081122EE - cmp r0, #0 - beq _081122F8 - b _081123E6 -_081122EE: - cmp r0, #2 - beq _0811238C - cmp r0, #3 - beq _081123E0 - b _081123E6 -_081122F8: - ldrh r0, [r5, #0x3a] - ldrh r2, [r5, #0x36] - adds r0, r0, r2 - strh r0, [r5, #0x36] - ldrh r1, [r5, #0x3c] - ldrh r2, [r5, #0x38] - adds r1, r1, r2 - strh r1, [r5, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - strh r0, [r5, #0x20] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - strh r1, [r5, #0x22] - ldrh r0, [r5, #0x30] - subs r0, #1 - strh r0, [r5, #0x30] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _081123E6 - b _081123D2 -_08112322: - ldrh r0, [r5, #0x32] - subs r0, #1 - strh r0, [r5, #0x32] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _081123E6 - ldr r4, _08112388 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x30] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x32] - ldrh r0, [r5, #0x20] - lsls r0, r0, #4 - strh r0, [r5, #0x36] - ldrh r0, [r5, #0x22] - lsls r0, r0, #4 - strh r0, [r5, #0x38] - movs r1, #0x30 - ldrsh r0, [r5, r1] - movs r2, #0x20 - ldrsh r1, [r5, r2] - subs r0, r0, r1 - lsls r0, 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, r0, r1 - lsls r0, r0, #4 - movs r2, #0x34 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r5, #0x3c] - b _081123D2 - .align 2, 0 -_08112388: .4byte gUnknown_20380D7 -_0811238C: - ldrh r0, [r5, #0x3a] - ldrh r1, [r5, #0x36] - adds r0, r0, r1 - strh r0, [r5, #0x36] - ldrh r1, [r5, #0x3c] - ldrh r2, [r5, #0x38] - adds r1, r1, r2 - strh r1, [r5, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - strh r0, [r5, #0x20] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - strh r1, [r5, #0x22] - ldrh r0, [r5, #0x34] - subs r0, #1 - strh r0, [r5, #0x34] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _081123E6 - ldr r4, _081123DC - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] -_081123D2: - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] - b _081123E6 - .align 2, 0 -_081123DC: .4byte gUnknown_20380D7 -_081123E0: - adds r0, r5, #0 - bl DestroySpriteAndMatrix -_081123E6: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end AnimShadowBallStep - - thumb_func_start sub_081123EC -sub_081123EC: @ 0x081123EC - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimTarget - ldr r0, _08112400 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08112400: .4byte sub_08112404 - thumb_func_end sub_081123EC - - thumb_func_start sub_08112404 -sub_08112404: @ 0x08112404 - push {r4, r5, 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 _0811249A - adds r1, r3, #0 - adds r1, #0x3e - ldrb r2, [r1] - movs r0, #4 - ands r0, r2 - adds r4, r1, #0 - cmp r0, #0 - bne _0811242E - movs r0, #4 - orrs r0, r2 - strb r0, [r4] -_0811242E: - movs r1, #0x2e - ldrsh r0, [r3, r1] - cmp r0, #0 - beq _0811243E - cmp r0, #1 - beq _08112448 - movs r6, #1 - b _08112452 -_0811243E: - movs r1, #0x30 - ldrsh r0, [r3, r1] - cmp r0, #2 - bne _08112452 - b _08112456 -_08112448: - movs r1, #0x30 - ldrsh r0, [r3, r1] - cmp r0, #4 - bne _08112452 - movs r5, #1 -_08112452: - cmp r5, #0 - beq _08112488 -_08112456: - ldrb r2, [r4] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4] - ldrh r0, [r3, #0x32] - adds r0, #1 - movs r1, #0 - strh r0, [r3, #0x32] - strh r1, [r3, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #5 - bne _0811249A - strh r1, [r3, #0x32] - ldrh r0, [r3, #0x2e] - adds r0, #1 - strh r0, [r3, #0x2e] - b _0811249A -_08112488: - cmp r6, #0 - beq _08112494 - adds r0, r3, #0 - bl DestroyAnimSprite - b _0811249A -_08112494: - ldrh r0, [r3, #0x30] - adds r0, #1 - strh r0, [r3, #0x30] -_0811249A: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_08112404 - - thumb_func_start sub_081124A0 -sub_081124A0: @ 0x081124A0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _081124CC - adds r5, r0, r1 - movs r0, #1 - bl CloneBattlerSpriteWithBlend - movs r6, #0 - movs r1, #0 - strh r0, [r5, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _081124D0 - adds r0, r4, #0 - bl DestroyAnimVisualTask - b _081125AC - .align 2, 0 -_081124CC: .4byte gUnknown_3005B60 -_081124D0: - strh r1, [r5, #0xa] - movs r0, #0xf - strh r0, [r5, #0xc] - movs r0, #2 - strh r0, [r5, #0xe] - strh r1, [r5, #0x10] - movs r1, #0xfd - lsls r1, r1, #6 - movs r0, #0x50 - bl SetGpuReg - ldrh r1, [r5, #0xe] - lsls r1, r1, #8 - ldrh r0, [r5, #0xc] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - ldr r4, _08112538 - movs r0, #8 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0x50 - strh r1, [r0, #0x2e] - ldr r0, _0811253C - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08112544 - movs r0, #8 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _08112540 - strh r1, [r0, #0x30] - movs r0, #8 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0x70 - b _08112562 - .align 2, 0 -_08112538: .4byte gUnknown_20205AC -_0811253C: .4byte gUnknown_20380D7 -_08112540: .4byte 0x0000FF70 -_08112544: - movs r0, #8 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0x90 - strh r1, [r0, #0x30] - movs r0, #8 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _081125B4 -_08112562: - strh r1, [r0, #0x32] - ldr r4, _081125B8 - movs r0, #8 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r2, #0 - strh r2, [r0, #0x34] - movs r0, #8 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - strh r2, [r0, #0x36] - movs r0, #8 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _081125BC - bl StoreSpriteCallbackInData6 - movs r0, #8 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, #0x1c - adds r0, r0, r4 - ldr r1, _081125C0 - str r1, [r0] - ldr r0, _081125C4 - str r0, [r5] -_081125AC: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081125B4: .4byte 0x0000FF90 -_081125B8: .4byte gUnknown_20205AC -_081125BC: .4byte sub_08007140 -_081125C0: .4byte TranslateSpriteLinearFixedPoint -_081125C4: .4byte sub_081125C8 - thumb_func_end sub_081124A0 - - thumb_func_start sub_081125C8 -sub_081125C8: @ 0x081125C8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _081125EC - adds r4, r0, r1 - movs r1, #0x10 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _0811266C - cmp r0, #1 - bgt _081125F0 - cmp r0, #0 - beq _081125F6 - b _08112698 - .align 2, 0 -_081125EC: .4byte gUnknown_3005B60 -_081125F0: - cmp r0, #2 - beq _08112692 - b _08112698 -_081125F6: - ldrh r1, [r4, #0xa] - adds r1, #1 - strh r1, [r4, #0xa] - movs r0, #3 - ands r0, r1 - strh r0, [r4, #0x12] - cmp r0, #1 - bne _08112614 - ldrh r1, [r4, #0xc] - movs r2, #0xc - ldrsh r0, [r4, r2] - cmp r0, #0 - ble _08112614 - subs r0, r1, #1 - strh r0, [r4, #0xc] -_08112614: - movs r1, #0x12 - ldrsh r0, [r4, r1] - cmp r0, #3 - bne _0811262A - ldrh r1, [r4, #0xe] - movs r2, #0xe - ldrsh r0, [r4, r2] - cmp r0, #0xf - bgt _0811262A - adds r0, r1, #1 - strh r0, [r4, #0xe] -_0811262A: - ldrh r1, [r4, #0xe] - lsls r1, r1, #8 - ldrh r0, [r4, #0xc] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - ldr r1, [r4, #0xc] - movs r0, #0x80 - lsls r0, r0, #0xd - cmp r1, r0 - bne _08112698 - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0x50 - ble _08112698 - movs r2, #8 - ldrsh r1, [r4, r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08112668 - adds r0, r0, r1 - bl obj_delete_but_dont_free_vram - movs r0, #1 - strh r0, [r4, #0x10] - b _08112698 - .align 2, 0 -_08112668: .4byte gUnknown_20205AC -_0811266C: - ldrh r0, [r4, #0x14] - adds r0, #1 - strh r0, [r4, #0x14] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _08112698 - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - ldrh r0, [r4, #0x10] - adds r0, #1 - strh r0, [r4, #0x10] - b _08112698 -_08112692: - adds r0, r2, #0 - bl DestroyAnimVisualTask -_08112698: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081125C8 - - thumb_func_start sub_081126A0 -sub_081126A0: @ 0x081126A0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r2, _081126C0 - adds r1, r1, r2 - movs r2, #0 - strh r2, [r1, #0x26] - ldr r2, _081126C4 - str r2, [r1] - bl _call_via_r2 - thumb_func_end sub_081126A0 - - thumb_func_start sub_081126BC -sub_081126BC: @ 0x081126BC - pop {r0} - bx r0 - .align 2, 0 -_081126C0: .4byte gUnknown_3005B60 -_081126C4: .4byte sub_081126C8 - thumb_func_end sub_081126BC - - thumb_func_start sub_081126C8 -sub_081126C8: @ 0x081126C8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _08112700 - adds r5, r0, r1 - ldr r0, _08112704 - ldrb r0, [r0] - bl GetBattlerSpriteBGPriorityRank - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r1, #0x26 - ldrsh r0, [r5, r1] - cmp r0, #4 - bls _081126F4 - b _08112916 -_081126F4: - lsls r0, r0, #2 - ldr r1, _08112708 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08112700: .4byte gUnknown_3005B60 -_08112704: .4byte gUnknown_20380D7 -_08112708: .4byte _0811270C -_0811270C: @ jump table - .4byte _08112720 @ case 0 - .4byte _08112820 @ case 1 - .4byte _08112864 @ case 2 - .4byte _081128CC @ case 3 - .4byte _081128F8 @ case 4 -_08112720: - ldr r7, _08112758 - adds r0, r7, #0 - bl AllocSpritePalette - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0 - mov r8, r2 - strh r0, [r5, #0x24] - cmp r0, #0xff - beq _0811274E - cmp r0, #0xf - beq _0811274E - movs r0, #1 - bl CloneBattlerSpriteWithBlend - strh r0, [r5, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _0811275C - adds r0, r7, #0 - bl FreeSpritePaletteByTag -_0811274E: - adds r0, r4, #0 - bl DestroyAnimVisualTask - b _0811291C - .align 2, 0 -_08112758: .4byte 0x00002771 -_0811275C: - ldr r4, _08112808 - movs r1, #8 - ldrsh r0, [r5, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrh r2, [r5, #0x24] - lsls r2, r2, #4 - ldrb r3, [r1, #5] - movs r0, #0xf - ands r0, r3 - orrs r0, r2 - strb r0, [r1, #5] - movs r2, #8 - ldrsh r0, [r5, r2] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r2, [r1, #1] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #1] - movs r0, #8 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r1, [r0, #5] - movs r2, #0xc - orrs r1, r2 - strb r1, [r0, #5] - movs r1, #8 - ldrsh r0, [r5, r1] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r4 - ldr r0, _0811280C - ldr r1, [r0] - ldr r0, _08112810 - ldrb r0, [r0] - ldr r1, [r1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - lsls r1, r1, #0x1f - adds r2, #0x3e - lsrs r1, r1, #0x1f - lsls r1, r1, #2 - ldrb r3, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - mov r2, r8 - strh r2, [r5, #0xa] - strh r2, [r5, #0xc] - movs r0, #0x10 - strh r0, [r5, #0xe] - movs r0, #1 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - movs r0, #0x22 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r0, [r0, #5] - lsrs r0, r0, #4 - adds r0, #0x10 - lsls r0, r0, #4 - strh r0, [r5, #0x10] - cmp r6, #1 - bne _08112814 - movs r1, #0x80 - lsls r1, r1, #2 - b _08112818 - .align 2, 0 -_08112808: .4byte gUnknown_20205AC -_0811280C: .4byte gUnknown_2024174 -_08112810: .4byte gUnknown_20380D7 -_08112814: - movs r1, #0x80 - lsls r1, r1, #3 -_08112818: - movs r0, #0 - bl ClearGpuRegBits - b _08112916 -_08112820: - movs r1, #0x24 - ldrsh r0, [r5, r1] - adds r0, #0x10 - lsls r0, r0, #4 - strh r0, [r5, #0x24] - movs r2, #0x10 - ldrsh r0, [r5, r2] - lsls r0, r0, #1 - ldr r1, _08112854 - adds r0, r0, r1 - movs r2, #0x24 - ldrsh r1, [r5, r2] - lsls r1, r1, #1 - ldr r2, _08112858 - adds r1, r1, r2 - ldr r2, _0811285C - bl CpuSet - ldrh r0, [r5, #0x10] - ldr r3, _08112860 - movs r1, #0x10 - movs r2, #0xa - bl BlendPalette - b _08112916 - .align 2, 0 -_08112854: .4byte gUnknown_20373B4 -_08112858: .4byte gUnknown_20377B4 -_0811285C: .4byte 0x04000008 -_08112860: .4byte 0x00003C0D -_08112864: - ldr r2, _081128A0 - movs r0, #0x22 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x26] - ldrh r0, [r0, #0x22] - adds r1, r1, r0 - subs r1, #0x20 - lsls r1, r1, #0x10 - lsrs r2, r1, #0x10 - cmp r1, #0 - bge _08112884 - movs r2, #0 -_08112884: - cmp r6, #1 - bne _081128A4 - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - adds r1, r2, #0 - adds r1, #0x40 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r2, #0 - str r2, [sp] - movs r2, #4 - str r2, [sp, #4] - str r6, [sp, #8] - b _081128BC - .align 2, 0 -_081128A0: .4byte gUnknown_20205AC -_081128A4: - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - adds r1, r2, #0 - adds r1, #0x40 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r2, #0 - str r2, [sp] - movs r2, #8 - str r2, [sp, #4] - movs r2, #1 - str r2, [sp, #8] -_081128BC: - movs r2, #2 - movs r3, #6 - bl ScanlineEffect_InitWave - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x1c] - b _08112916 -_081128CC: - cmp r6, #1 - bne _081128E0 - ldr r1, _081128DC - movs r0, #0x50 - bl SetGpuReg - b _081128E8 - .align 2, 0 -_081128DC: .4byte 0x00003F42 -_081128E0: - ldr r1, _081128F4 - movs r0, #0x50 - bl SetGpuReg -_081128E8: - movs r1, #0x80 - lsls r1, r1, #5 - movs r0, #0x52 - bl SetGpuReg - b _08112916 - .align 2, 0 -_081128F4: .4byte 0x00003F44 -_081128F8: - cmp r6, #1 - bne _08112908 - movs r1, #0x80 - lsls r1, r1, #2 - movs r0, #0 - bl SetGpuRegBits - b _08112912 -_08112908: - movs r1, #0x80 - lsls r1, r1, #3 - movs r0, #0 - bl SetGpuRegBits -_08112912: - ldr r0, _08112928 - str r0, [r5] -_08112916: - ldrh r0, [r5, #0x26] - adds r0, #1 - strh r0, [r5, #0x26] -_0811291C: - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08112928: .4byte sub_0811292C - thumb_func_end sub_081126C8 - - thumb_func_start sub_0811292C -sub_0811292C: @ 0x0811292C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _081129B4 - adds r4, r0, r1 - ldrh r1, [r4, #0xa] - adds r1, #1 - strh r1, [r4, #0xa] - movs r0, #1 - ands r0, r1 - strh r0, [r4, #0x12] - cmp r0, #0 - bne _08112964 - ldr r1, _081129B8 - movs r2, #0xa - ldrsh r0, [r4, r2] - lsls r0, r0, #1 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - movs r1, #0x12 - bl __divsi3 - strh r0, [r4, #0xc] -_08112964: - movs r2, #0x12 - ldrsh r0, [r4, r2] - cmp r0, #1 - bne _08112986 - ldr r1, _081129B8 - movs r2, #0xa - ldrsh r0, [r4, r2] - lsls r0, r0, #1 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - movs r1, #0x12 - bl __divsi3 - movs r1, #0x10 - subs r1, r1, r0 - strh r1, [r4, #0xe] -_08112986: - ldrh r1, [r4, #0xe] - lsls r1, r1, #8 - ldrh r0, [r4, #0xc] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r2, #0xa - ldrsh r0, [r4, r2] - cmp r0, #0x80 - bne _081129AE - movs r0, #0 - strh r0, [r4, #0x26] - ldr r1, _081129BC - str r1, [r4] - adds r0, r5, #0 - bl _call_via_r1 -_081129AE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081129B4: .4byte gUnknown_3005B60 -_081129B8: .4byte gUnknown_82FA8CC -_081129BC: .4byte sub_081129C0 - thumb_func_end sub_0811292C - - thumb_func_start sub_081129C0 -sub_081129C0: @ 0x081129C0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _081129F0 - adds r4, r0, r1 - ldr r0, _081129F4 - ldrb r0, [r0] - bl GetBattlerSpriteBGPriorityRank - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r1, #0x26 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _08112A2C - cmp r0, #1 - bgt _081129F8 - cmp r0, #0 - beq _081129FE - b _08112AA8 - .align 2, 0 -_081129F0: .4byte gUnknown_3005B60 -_081129F4: .4byte gUnknown_20380D7 -_081129F8: - cmp r0, #2 - beq _08112A40 - b _08112AA8 -_081129FE: - ldr r1, _08112A1C - movs r0, #3 - strb r0, [r1, #0x15] - movs r0, #1 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x24] - cmp r6, #1 - bne _08112A20 - movs r1, #0x80 - lsls r1, r1, #2 - b _08112A24 - .align 2, 0 -_08112A1C: .4byte gUnknown_20397C8 -_08112A20: - movs r1, #0x80 - lsls r1, r1, #3 -_08112A24: - movs r0, #0 - bl ClearGpuRegBits - b _08112AA8 -_08112A2C: - ldrh r0, [r4, #0x10] - ldr r3, _08112A3C - movs r1, #0x10 - movs r2, #0 - bl BlendPalette - b _08112AA8 - .align 2, 0 -_08112A3C: .4byte 0x00003C0D -_08112A40: - ldr r3, _08112A90 - movs r0, #0x24 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - movs r0, #8 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - bl obj_delete_but_dont_free_vram - ldr r0, _08112A94 - bl FreeSpritePaletteByTag - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - cmp r6, #1 - bne _08112A98 - movs r1, #0x80 - lsls r1, r1, #2 - movs r0, #0 - bl SetGpuRegBits - b _08112AA2 - .align 2, 0 -_08112A90: .4byte gUnknown_20205AC -_08112A94: .4byte 0x00002771 -_08112A98: - movs r1, #0x80 - lsls r1, r1, #3 - movs r0, #0 - bl SetGpuRegBits -_08112AA2: - adds r0, r5, #0 - bl DestroyAnimVisualTask -_08112AA8: - ldrh r0, [r4, #0x26] - adds r0, #1 - strh r0, [r4, #0x26] - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_081129C0 - - thumb_func_start sub_08112AB4 -sub_08112AB4: @ 0x08112AB4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r7, r0, #0 - ldr r0, _08112AF0 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08112AFC - ldr r4, _08112AF4 - ldrb r0, [r4] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldrb r0, [r4] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #8 - movs r2, #0xe0 - lsls r2, r2, #0xd - adds r0, r0, r2 - lsrs r5, r0, #0x10 - ldr r4, _08112AF8 - b _08112B20 - .align 2, 0 -_08112AF0: .4byte gUnknown_20380BE -_08112AF4: .4byte gUnknown_20380D6 -_08112AF8: .4byte gUnknown_20380D7 -_08112AFC: - ldr r4, _08112BC4 - ldrb r0, [r4] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldrb r0, [r4] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #8 - movs r2, #0xe0 - lsls r2, r2, #0xd - adds r0, r0, r2 - lsrs r5, r0, #0x10 - ldr r4, _08112BC8 -_08112B20: - ldrb r0, [r4] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - ldrb r0, [r4] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #8 - movs r1, #0xe0 - lsls r1, r1, #0xd - adds r0, r0, r1 - lsrs r0, r0, #0x10 - mov sb, r0 - mov r8, r5 - mov r2, sb - subs r4, r2, r5 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r0, r6, #4 - strh r0, [r7, #0x2e] - lsls r0, r5, #4 - strh r0, [r7, #0x30] - mov r1, sl - subs r0, r1, r6 - lsls r0, r0, #4 - ldr r5, _08112BCC - movs r2, #2 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r7, #0x32] - lsls r4, r4, #0x10 - asrs r4, r4, #0xc - movs r0, #2 - ldrsh r1, [r5, r0] - adds r0, r4, #0 - bl __divsi3 - strh r0, [r7, #0x34] - ldrh r0, [r5, #2] - strh r0, [r7, #0x36] - mov r1, sl - strh r1, [r7, #0x38] - mov r2, sb - strh r2, [r7, #0x3a] - movs r1, #0x36 - ldrsh r0, [r7, r1] - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - strh r0, [r7, #0x3c] - ldrb r1, [r7, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r7, #5] - strh r6, [r7, #0x20] - mov r2, r8 - strh r2, [r7, #0x22] - ldr r0, _08112BD0 - str r0, [r7, #0x1c] - adds r2, r7, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08112BC4: .4byte gUnknown_20380D7 -_08112BC8: .4byte gUnknown_20380D6 -_08112BCC: .4byte gUnknown_20380BE -_08112BD0: .4byte sub_08112BD4 - thumb_func_end sub_08112AB4 - - thumb_func_start sub_08112BD4 -sub_08112BD4: @ 0x08112BD4 - push {r4, lr} - adds r2, r0, #0 - ldrh r3, [r2, #0x36] - movs r1, #0x36 - ldrsh r0, [r2, r1] - cmp r0, #0 - beq _08112C0C - ldrh r0, [r2, #0x32] - ldrh r4, [r2, #0x2e] - adds r0, r0, r4 - strh r0, [r2, #0x2e] - ldrh r1, [r2, #0x34] - ldrh r4, [r2, #0x30] - adds r1, r1, r4 - strh r1, [r2, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - strh r0, [r2, #0x20] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - strh r1, [r2, #0x22] - subs r0, r3, #1 - strh r0, [r2, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bne _08112C0C - strh r0, [r2, #0x2e] -_08112C0C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08112BD4 - - thumb_func_start sub_08112C14 -sub_08112C14: @ 0x08112C14 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _08112D64 - adds r1, r1, r0 - str r1, [sp] - movs r1, #0xfd - lsls r1, r1, #6 - movs r0, #0x50 - bl SetGpuReg - movs r1, #0x80 - lsls r1, r1, #5 - movs r0, #0x52 - bl SetGpuReg - 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, _08112D68 - ldrh r0, [r2] - strh r0, [r1, #0x1c] - ldr r4, _08112D6C - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoordAttr - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #8] - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08112C84 - b _08112D80 -_08112C84: - movs r4, #0 -_08112C86: - lsls r1, r4, #0x10 - asrs r3, r1, #0x10 - ldr r0, _08112D6C - ldrb r2, [r0] - str r1, [sp, #0x10] - cmp r3, r2 - beq _08112D52 - movs r0, #2 - eors r2, r0 - cmp r3, r2 - beq _08112D52 - lsls r0, r4, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08112D52 - ldr r6, [sp, #4] - ldr r3, [sp, #8] - lsls r0, r3, #0x10 - asrs r7, r0, #0x10 - ldr r0, _08112D70 - adds r1, r6, #0 - adds r2, r7, #0 - movs r3, #0x37 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - cmp r0, #0x40 - beq _08112D52 - adds r0, r4, #0 - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - adds r0, r4, #0 - movs r1, #3 - bl GetBattlerSpriteCoordAttr - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - mov r0, r8 - lsls r5, r0, #4 - add r5, r8 - lsls r5, r5, #2 - ldr r1, _08112D74 - adds r4, r5, r1 - lsls r0, r6, #4 - strh r0, [r4, #0x2e] - lsls r0, r7, #4 - strh r0, [r4, #0x30] - mov r2, sl - subs r0, r2, r6 - lsls r0, r0, #4 - ldr r3, _08112D68 - movs r2, #2 - ldrsh r1, [r3, r2] - bl __divsi3 - strh r0, [r4, #0x32] - mov r3, sb - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - subs r0, r0, r7 - lsls r0, r0, #4 - ldr r2, _08112D68 - movs r3, #2 - ldrsh r1, [r2, r3] - bl __divsi3 - strh r0, [r4, #0x34] - ldr r1, _08112D68 - ldrh r0, [r1, #2] - strh r0, [r4, #0x36] - mov r2, sl - strh r2, [r4, #0x38] - mov r3, sb - strh r3, [r4, #0x3a] - ldr r0, _08112D78 - adds r5, r5, r0 - ldr r0, _08112D7C - str r0, [r5] - ldr r2, [sp] - movs r3, #0x20 - ldrsh r1, [r2, r3] - adds r1, #0xd - lsls r1, r1, #1 - adds r0, r2, #0 - adds r0, #8 - adds r0, r0, r1 - mov r1, r8 - strh r1, [r0] - ldrh r0, [r2, #0x20] - adds r0, #1 - strh r0, [r2, #0x20] -_08112D52: - ldr r2, [sp, #0x10] - movs r3, #0x80 - lsls r3, r3, #9 - adds r0, r2, r3 - lsrs r4, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - ble _08112C86 - b _08112E04 - .align 2, 0 -_08112D64: .4byte gUnknown_3005B60 -_08112D68: .4byte gUnknown_20380BE -_08112D6C: .4byte gUnknown_20380D6 -_08112D70: .4byte gUnknown_857299C -_08112D74: .4byte gUnknown_20205AC -_08112D78: .4byte gUnknown_20205C8 -_08112D7C: .4byte sub_08112BD4 -_08112D80: - ldr r0, _08112E1C - ldr r7, [sp, #4] - ldr r2, [sp, #8] - lsls r1, r2, #0x10 - asrs r1, r1, #0x10 - str r1, [sp, #0xc] - adds r1, r7, #0 - ldr r2, [sp, #0xc] - movs r3, #0x37 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - cmp r0, #0x40 - beq _08112E04 - movs r3, #0x30 - mov sl, r3 - movs r0, #0x28 - mov sb, r0 - ldr r6, _08112E20 - mov r1, r8 - lsls r5, r1, #4 - add r5, r8 - lsls r5, 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, r0, #4 - ldr r3, _08112E24 - movs r2, #2 - ldrsh r1, [r3, r2] - bl __divsi3 - strh r0, [r4, #0x32] - mov r3, sb - ldr r1, [sp, #0xc] - subs r0, r3, r1 - lsls r0, r0, #4 - ldr r2, _08112E24 - movs r3, #2 - ldrsh r1, [r2, r3] - bl __divsi3 - strh r0, [r4, #0x34] - ldr r1, _08112E24 - ldrh r0, [r1, #2] - strh r0, [r4, #0x36] - mov r2, sl - strh r2, [r4, #0x38] - mov r3, sb - strh r3, [r4, #0x3a] - adds r6, #0x1c - adds r5, r5, r6 - ldr r0, _08112E28 - str r0, [r5] - mov r1, r8 - ldr r0, [sp] - strh r1, [r0, #0x22] - movs r0, #1 - ldr r2, [sp] - strh r0, [r2, #0x20] -_08112E04: - ldr r0, _08112E2C - ldr r3, [sp] - str r0, [r3] - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08112E1C: .4byte gUnknown_857299C -_08112E20: .4byte gUnknown_20205AC -_08112E24: .4byte gUnknown_20380BE -_08112E28: .4byte sub_08112BD4 -_08112E2C: .4byte sub_08112E30 - thumb_func_end sub_08112C14 - - thumb_func_start sub_08112E30 -sub_08112E30: @ 0x08112E30 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _08112E54 - adds r4, r0, r1 - movs r0, #8 - ldrsh r1, [r4, r0] - cmp r1, #1 - beq _08112EE6 - cmp r1, #1 - bgt _08112E58 - cmp r1, #0 - beq _08112E66 - b _08112FA2 - .align 2, 0 -_08112E54: .4byte gUnknown_3005B60 -_08112E58: - cmp r1, #2 - bne _08112E5E - b _08112F78 -_08112E5E: - cmp r1, #3 - bne _08112E64 - b _08112F8C -_08112E64: - b _08112FA2 -_08112E66: - movs r2, #0x14 - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _08112ECC - ldrh r0, [r4, #0x12] - adds r0, #1 - strh r0, [r4, #0x12] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _08112ECC - strh r1, [r4, #0x12] - ldrh r0, [r4, #0x16] - adds r0, #1 - strh r0, [r4, #0x16] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08112E9C - ldrh r1, [r4, #0x18] - movs r2, #0x18 - ldrsh r0, [r4, r2] - cmp r0, #0xf - bgt _08112EAA - adds r0, r1, #1 - strh r0, [r4, #0x18] - b _08112EAA -_08112E9C: - ldrh r1, [r4, #0x1a] - movs r2, #0x1a - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _08112EAA - subs r0, r1, #1 - strh r0, [r4, #0x1a] -_08112EAA: - ldrh r1, [r4, #0x1a] - lsls r1, r1, #8 - ldrh r0, [r4, #0x18] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r1, #0x16 - ldrsh r0, [r4, r1] - cmp r0, #0x17 - ble _08112ECC - movs r0, #0 - strh r0, [r4, #0x16] - movs r0, #1 - strh r0, [r4, #0x14] -_08112ECC: - ldrh r1, [r4, #0x1c] - movs r2, #0x1c - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _08112EDC - subs r0, r1, #1 - strh r0, [r4, #0x1c] - b _08112FA2 -_08112EDC: - movs r1, #0x14 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _08112FA2 - b _08112F84 -_08112EE6: - ldrh r0, [r4, #0x12] - adds r0, #1 - strh r0, [r4, #0x12] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _08112FA2 - movs r0, #0 - strh r0, [r4, #0x12] - ldrh r0, [r4, #0x16] - adds r0, #1 - strh r0, [r4, #0x16] - ands r0, r1 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08112F16 - ldrh r1, [r4, #0x18] - movs r2, #0x18 - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _08112F24 - subs r0, r1, #1 - strh r0, [r4, #0x18] - b _08112F24 -_08112F16: - ldrh r1, [r4, #0x1a] - movs r2, #0x1a - ldrsh r0, [r4, r2] - cmp r0, #0xf - bgt _08112F24 - adds r0, r1, #1 - strh r0, [r4, #0x1a] -_08112F24: - ldrh r1, [r4, #0x1a] - lsls r1, r1, #8 - ldrh r0, [r4, #0x18] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - ldr r1, [r4, #0x18] - movs r0, #0x80 - lsls r0, r0, #0xd - cmp r1, r0 - bne _08112FA2 - movs r5, #0 - b _08112F68 -_08112F44: - adds r1, r5, #0 - adds r1, #0xd - lsls r1, r1, #1 - adds r0, r4, #0 - adds r0, #8 - adds r0, r0, r1 - movs r2, #0 - ldrsh r1, [r0, r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08112F74 - adds r0, r0, r1 - bl DestroySprite - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_08112F68: - movs r1, #0x20 - ldrsh r0, [r4, r1] - cmp r5, r0 - blt _08112F44 - b _08112F84 - .align 2, 0 -_08112F74: .4byte gUnknown_20205AC -_08112F78: - ldrh r0, [r4, #0x12] - adds r0, #1 - strh r0, [r4, #0x12] - lsls r0, r0, #0x10 - cmp r0, #0 - ble _08112FA2 -_08112F84: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _08112FA2 -_08112F8C: - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - adds r0, r5, #0 - bl DestroyAnimVisualTask -_08112FA2: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_08112E30 - - thumb_func_start sub_08112FA8 -sub_08112FA8: @ 0x08112FA8 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _08112FF4 - movs r1, #0 - strh r1, [r0] - ldr r0, _08112FF8 - strh r1, [r0] - ldr r1, _08112FFC - movs r0, #0x48 - bl SetGpuReg - ldr r1, _08113000 - movs r0, #0x4a - bl SetGpuReg - movs r0, #0x50 - movs r1, #0xc8 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0x10 - bl SetGpuReg - ldr r0, _08113004 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08112FF0 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08113008 -_08112FF0: - movs r6, #0x28 - b _0811300A - .align 2, 0 -_08112FF4: .4byte gUnknown_2022AD8 -_08112FF8: .4byte gUnknown_2022ADA -_08112FFC: .4byte 0x00003F3F -_08113000: .4byte 0x00003F1F -_08113004: .4byte gUnknown_20380D6 -_08113008: - movs r6, #0xc8 -_0811300A: - ldr r1, _08113048 - lsls r3, r6, #0x10 - asrs r2, r3, #0x10 - lsls r0, r2, #8 - orrs r0, r2 - strh r0, [r1] - ldr r1, _0811304C - movs r5, #0x28 - ldr r0, _08113050 - strh r0, [r1] - lsrs r3, r3, #0x10 - movs r1, #0xf0 - subs r1, r1, r2 - movs r4, #0x48 - ldr r2, _08113054 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, 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, _08113058 - str r1, [r0] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08113048: .4byte gUnknown_2022AD8 -_0811304C: .4byte gUnknown_2022ADA -_08113050: .4byte 0x00002828 -_08113054: .4byte gUnknown_3005B60 -_08113058: .4byte sub_0811305C - thumb_func_end sub_08112FA8 - - thumb_func_start sub_0811305C -sub_0811305C: @ 0x0811305C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0811317C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 - ldrh r1, [r4, #8] - adds r0, r1, #1 - strh r0, [r4, #8] - ldrh r5, [r4, #0xa] - ldrh r7, [r4, #0xc] - ldrh r0, [r4, #0xe] - mov sl, r0 - ldrh r2, [r4, #0x10] - str r2, [sp, #0xc] - ldrh r0, [r4, #0x12] - ldrh r2, [r4, #0x14] - mov r8, r2 - lsls r1, r1, #0x10 - asrs r6, r1, #0x10 - cmp r6, #0xf - ble _08113098 - b _08113188 -_08113098: - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - bl __floatsidf - str r0, [sp, #0x10] - str r1, [sp, #0x14] - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - bl __floatsidf - ldr r2, _08113180 - ldr r3, _08113184 - 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, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - bl __floatsidf - ldr r2, _08113180 - ldr r3, _08113184 - 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, r0, #0x10 - lsrs r7, r0, #0x10 - mov r1, r8 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - bl __floatsidf - adds r5, r1, #0 - adds r4, r0, #0 - mov r2, sl - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - bl __floatsidf - ldr r2, _08113180 - ldr r3, _08113184 - 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, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r1, [sp, #0xc] - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - bl __floatsidf - ldr r2, _08113180 - ldr r3, _08113184 - 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, r0, #0x10 - lsrs r5, r0, #0x10 - b _081131B6 - .align 2, 0 -_0811317C: .4byte gUnknown_3005B60 -_08113180: .4byte 0x3FB00000 -_08113184: .4byte 0x00000000 -_08113188: - movs r2, #0 - mov sb, r2 - movs r7, #0xf0 - movs r6, #0 - movs r5, #0x70 - str r6, [sp] - str r6, [sp, #4] - str r6, [sp, #8] - movs r0, #1 - movs r1, #0 - movs r3, #0 - bl sub_080A6E74 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r6, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _081131D8 - str r0, [r4] -_081131B6: - ldr r1, _081131DC - mov r2, sb - lsls r0, r2, #8 - orrs r7, r0 - strh r7, [r1] - ldr r1, _081131E0 - lsls r0, r6, #8 - orrs r5, r0 - strh r5, [r1] - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081131D8: .4byte sub_081131E4 -_081131DC: .4byte gUnknown_2022AD8 -_081131E0: .4byte gUnknown_2022ADA - thumb_func_end sub_0811305C - - thumb_func_start sub_081131E4 -sub_081131E4: @ 0x081131E4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _08113230 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0811322A - ldr r0, _08113234 - strh r1, [r0] - ldr r0, _08113238 - strh r1, [r0] - ldr r4, _0811323C - movs r0, #0x48 - adds r1, r4, #0 - bl SetGpuReg - movs r0, #0x4a - adds r1, r4, #0 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - adds r0, r5, #0 - bl DestroyAnimVisualTask -_0811322A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08113230: .4byte gUnknown_2037C74 -_08113234: .4byte gUnknown_2022AD8 -_08113238: .4byte gUnknown_2022ADA -_0811323C: .4byte 0x00003F3F - thumb_func_end sub_081131E4 - - thumb_func_start sub_08113240 -sub_08113240: @ 0x08113240 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldr r0, _0811326C - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08113274 - movs r2, #0x18 - ldr r3, _08113270 - ldrb r0, [r4, #3] - movs r1, #0x3f - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #0x10 - orrs r1, r0 - strb r1, [r4, #3] - b _08113278 - .align 2, 0 -_0811326C: .4byte gUnknown_20380D6 -_08113270: .4byte 0x0000FFFE -_08113274: - ldr r2, _08113294 - movs r3, #2 -_08113278: - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - ldrh r1, [r4, #0x20] - adds r0, r0, r1 - strh r0, [r4, #0x20] - strh r3, [r4, #0x30] - movs r0, #0x3c - strh r0, [r4, #0x2e] - ldr r0, _08113298 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08113294: .4byte 0x0000FFE8 -_08113298: .4byte sub_0811329C - thumb_func_end sub_08113240 - - thumb_func_start sub_0811329C -sub_0811329C: @ 0x0811329C - push {r4, lr} - adds r3, r0, #0 - ldrh r1, [r3, #0x2e] - movs r2, #0x2e - ldrsh r0, [r3, r2] - cmp r0, #0 - ble _081132AE - subs r0, r1, #1 - b _08113312 -_081132AE: - ldrh r0, [r3, #0x30] - ldrh r4, [r3, #0x24] - adds r1, r0, r4 - strh r1, [r3, #0x24] - adds r0, r1, #7 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xe - bls _08113314 - ldrh r0, [r3, #0x20] - adds r0, r0, r1 - strh r0, [r3, #0x20] - movs r0, #0 - strh r0, [r3, #0x24] - ldrh r2, [r3, #4] - lsls r1, r2, #0x16 - lsrs r1, r1, #0x16 - adds r1, #8 - ldr r4, _08113300 - adds r0, r4, #0 - ands r1, r0 - ldr r0, _08113304 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, #4] - ldrh r0, [r3, #0x32] - adds r0, #1 - strh r0, [r3, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - bne _08113310 - movs r0, #0x1e - strh r0, [r3, #0x2e] - ldr r0, _08113308 - str r0, [r3, #0x1c] - ldr r1, _0811330C - adds r0, r3, #0 - bl StoreSpriteCallbackInData6 - b _08113314 - .align 2, 0 -_08113300: .4byte 0x000003FF -_08113304: .4byte 0xFFFFFC00 -_08113308: .4byte WaitAnimForDuration -_0811330C: .4byte sub_0811331C -_08113310: - movs r0, #0x28 -_08113312: - strh r0, [r3, #0x2e] -_08113314: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0811329C - - thumb_func_start sub_0811331C -sub_0811331C: @ 0x0811331C - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r5, [r4, r0] - cmp r5, #0 - bne _08113346 - movs r1, #0xfd - lsls r1, r1, #6 - movs r0, #0x50 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0x10 - bl SetGpuReg - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - strh r5, [r4, #0x30] - strh r5, [r4, #0x32] - b _0811338A -_08113346: - ldrh r1, [r4, #0x30] - movs r2, #0x30 - ldrsh r0, [r4, r2] - cmp r0, #1 - bgt _08113356 - adds r0, r1, #1 - strh r0, [r4, #0x30] - b _0811338A -_08113356: - movs r0, #0 - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - movs r1, #0x10 - subs r1, r1, r0 - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0x10 - bne _0811338A - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08113390 - str r0, [r4, #0x1c] -_0811338A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08113390: .4byte sub_08113394 - thumb_func_end sub_0811331C - - thumb_func_start sub_08113394 -sub_08113394: @ 0x08113394 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - ldr r0, _081133C0 - movs r1, #0 - strh r1, [r0] - ldr r0, _081133C4 - strh r1, [r0] - adds r0, r4, #0 - bl DestroyAnimSprite - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081133C0: .4byte gUnknown_2022AD8 -_081133C4: .4byte gUnknown_2022ADA - thumb_func_end sub_08113394 - - thumb_func_start sub_081133C8 -sub_081133C8: @ 0x081133C8 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - movs r1, #0xc - bl Sin - strh r0, [r5, #0x24] - ldr r0, _08113430 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081133EC - ldrh r0, [r5, #0x24] - rsbs r0, r0, #0 - strh r0, [r5, #0x24] -_081133EC: - ldrh r0, [r5, #0x2e] - adds r0, #6 - movs r1, #0xff - ands r0, r1 - strh r0, [r5, #0x2e] - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r1, [r5, #0x30] - adds r0, r0, r1 - strh r0, [r5, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - rsbs r0, r0, #0 - strh r0, [r5, #0x26] - ldrh r0, [r5, #0x3c] - adds r0, #1 - strh r0, [r5, #0x3c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - bne _08113438 - ldr r0, _08113434 - strh r0, [r5, #0x3a] - movs r1, #0xfd - lsls r1, r1, #6 - movs r0, #0x50 - bl SetGpuReg - ldrh r1, [r5, #0x3a] - movs r0, #0x52 - bl SetGpuReg - b _08113490 - .align 2, 0 -_08113430: .4byte gUnknown_20380D6 -_08113434: .4byte 0x0000050B -_08113438: - cmp r0, #0x1e - ble _08113490 - ldrh r0, [r5, #0x32] - adds r0, #1 - strh r0, [r5, #0x32] - ldrh r1, [r5, #0x3a] - lsls r0, r1, #0x10 - asrs r0, r0, #0x18 - lsls r0, r0, #0x10 - movs r6, #0xff - ands r6, r1 - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r0, r1 - lsrs r7, r0, #0x10 - cmp r7, #0x10 - bls _0811345C - movs r7, #0x10 -_0811345C: - subs r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r0, #0 - bge _08113468 - movs r6, #0 -_08113468: - lsls r4, r7, #8 - orrs r4, r6 - lsls r1, r4, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - strh r4, [r5, #0x3a] - cmp r7, #0x10 - bne _08113490 - cmp r6, #0 - bne _08113490 - adds r2, r5, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08113498 - str r0, [r5, #0x1c] -_08113490: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08113498: .4byte sub_0811349C - thumb_func_end sub_081133C8 - - thumb_func_start sub_0811349C -sub_0811349C: @ 0x0811349C - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - adds r0, r4, #0 - bl DestroyAnimSprite - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0811349C - - thumb_func_start sub_081134BC -sub_081134BC: @ 0x081134BC - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _08113554 - adds r4, r4, r0 - movs r6, #0 - strh r6, [r4, #8] - movs r0, #0x10 - mov r8, r0 - mov r0, r8 - strh r0, [r4, #0xa] - ldr r5, _08113558 - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x1a] - ldrb r0, [r5] - bl GetBattlerYCoordWithElevation - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x1c] - ldrb r0, [r5] - movs r1, #1 - bl GetBattlerSpriteCoordAttr - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - lsrs r0, r0, #0x1f - adds r1, r1, r0 - asrs r1, r1, #1 - adds r1, #8 - strh r1, [r4, #0x1e] - strh r6, [r4, #0x16] - ldrb r0, [r5] - bl GetBattlerSpriteBGPriority - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x12] - ldrb r0, [r5] - bl GetBattlerSpriteSubpriority - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, #2 - strh r0, [r4, #0x14] - strh r6, [r4, #0xe] - mov r0, r8 - strh r0, [r4, #0x10] - movs r1, #0xfd - lsls r1, r1, #6 - movs r0, #0x50 - bl SetGpuReg - movs r1, #0x80 - lsls r1, r1, #5 - movs r0, #0x52 - bl SetGpuReg - strh r6, [r4, #0x18] - ldr r0, _0811355C - str r0, [r4] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08113554: .4byte gUnknown_3005B60 -_08113558: .4byte gUnknown_20380D6 -_0811355C: .4byte sub_08113560 - thumb_func_end sub_081134BC - - thumb_func_start sub_08113560 -sub_08113560: @ 0x08113560 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - ldr r1, _08113584 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #5 - bls _0811357A - b _081136E6 -_0811357A: - lsls r0, r0, #2 - ldr r1, _08113588 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08113584: .4byte gUnknown_3005B60 -_08113588: .4byte _0811358C -_0811358C: @ jump table - .4byte _081135A4 @ case 0 - .4byte _08113614 @ case 1 - .4byte _08113656 @ case 2 - .4byte _0811366A @ case 3 - .4byte _081136C0 @ case 4 - .4byte _081136D0 @ case 5 -_081135A4: - movs r6, #0 -_081135A6: - movs r2, #0x1a - ldrsh r1, [r4, r2] - movs r0, #0x1c - ldrsh r2, [r4, r0] - ldrb r3, [r4, #0x14] - ldr r0, _08113608 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x40 - beq _081135FA - ldr r1, _0811360C - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r5, r0, r1 - strh r7, [r5, #0x2e] - ldr r0, _08113610 - ldrb r0, [r0] - bl GetBattlerSide - movs r1, #0 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081135DC - movs r1, #1 -_081135DC: - strh r1, [r5, #0x30] - movs r0, #0x2a - muls r0, r6, r0 - movs r1, #0xff - ands r0, r1 - strh r0, [r5, #0x32] - ldrh r0, [r4, #0x1e] - strh r0, [r5, #0x34] - lsls r0, r6, #1 - adds r0, r0, r6 - lsls r0, r0, #1 - strh r0, [r5, #0x38] - ldrh r0, [r4, #0x16] - adds r0, #1 - strh r0, [r4, #0x16] -_081135FA: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #5 - bls _081135A6 - b _081136C8 - .align 2, 0 -_08113608: .4byte gUnknown_8572A14 -_0811360C: .4byte gUnknown_20205AC -_08113610: .4byte gUnknown_20380D6 -_08113614: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08113632 - ldrh r1, [r4, #0xe] - movs r2, #0xe - ldrsh r0, [r4, r2] - cmp r0, #0xd - bgt _08113640 - adds r0, r1, #1 - strh r0, [r4, #0xe] - b _08113640 -_08113632: - ldrh r1, [r4, #0x10] - movs r2, #0x10 - ldrsh r0, [r4, r2] - cmp r0, #4 - ble _08113640 - subs r0, r1, #1 - strh r0, [r4, #0x10] -_08113640: - movs r1, #0xe - ldrsh r0, [r4, r1] - ldrh r2, [r4, #0xe] - ldrh r1, [r4, #0x10] - cmp r0, #0xe - bne _081136B0 - cmp r1, #4 - bne _081136B0 - movs r0, #0 - strh r0, [r4, #0xa] - b _081136AA -_08113656: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1e - ble _081136E6 - movs r0, #0 - strh r0, [r4, #0xa] - b _081136C8 -_0811366A: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08113688 - ldrh r1, [r4, #0xe] - movs r2, #0xe - ldrsh r0, [r4, r2] - cmp r0, #0 - ble _08113696 - subs r0, r1, #1 - strh r0, [r4, #0xe] - b _08113696 -_08113688: - ldrh r1, [r4, #0x10] - movs r2, #0x10 - ldrsh r0, [r4, r2] - cmp r0, #0xf - bgt _08113696 - adds r0, r1, #1 - strh r0, [r4, #0x10] -_08113696: - movs r1, #0xe - ldrsh r0, [r4, r1] - ldrh r2, [r4, #0xe] - ldrh r1, [r4, #0x10] - cmp r0, #0 - bne _081136B0 - cmp r1, #0x10 - bne _081136B0 - movs r0, #1 - strh r0, [r4, #0x18] -_081136AA: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_081136B0: - lsls r1, r1, #8 - orrs r1, r2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - b _081136E6 -_081136C0: - movs r2, #0x16 - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _081136E6 -_081136C8: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _081136E6 -_081136D0: - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - adds r0, r7, #0 - bl DestroyAnimVisualTask -_081136E6: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08113560 - - thumb_func_start sub_081136EC -sub_081136EC: @ 0x081136EC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x30 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _081136FE - ldrh r0, [r4, #0x32] - adds r0, #2 - b _08113702 -_081136FE: - ldrh r0, [r4, #0x32] - subs r0, #2 -_08113702: - 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, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x7e - bhi _08113744 - ldr r2, _08113740 - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrh r1, [r0, #0x12] - adds r1, #1 - movs r0, #3 - ands r1, r0 - b _08113758 - .align 2, 0 -_08113740: .4byte gUnknown_3005B60 -_08113744: - ldr r2, _081137AC - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r2, #3 - ldrb r1, [r0, #0x12] - ands r1, r2 -_08113758: - lsls r1, r1, #2 - ldrb r2, [r4, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #5] - ldrh r0, [r4, #0x38] - adds r0, #1 - strh r0, [r4, #0x38] - movs r1, #0x38 - ldrsh r0, [r4, r1] - lsls r0, r0, #3 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x3a] - movs r2, #0x3a - ldrsh r0, [r4, r2] - movs r1, #7 - bl Sin - strh r0, [r4, #0x26] - ldr r2, _081137AC - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r1, r0, r2 - movs r2, #0x18 - ldrsh r0, [r1, r2] - cmp r0, #0 - beq _081137A6 - ldrh r0, [r1, #0x16] - subs r0, #1 - strh r0, [r1, #0x16] - adds r0, r4, #0 - bl DestroySprite -_081137A6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081137AC: .4byte gUnknown_3005B60 - thumb_func_end sub_081136EC - - thumb_func_start sub_081137B0 -sub_081137B0: @ 0x081137B0 - adds r3, r0, #0 - adds r3, #0x3e - ldrb r1, [r3] - movs r2, #4 - orrs r1, r2 - strb r1, [r3] - ldr r2, _081137F4 - ldr r1, _081137F8 - ldrb r1, [r1] - adds r1, 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, _081137FC - ldrh r1, [r2] - strh r1, [r0, #0x32] - ldrh r1, [r2, #2] - strh r1, [r0, #0x34] - ldr r1, _08113800 - str r1, [r0, #0x1c] - ldr r2, _08113804 - movs r3, #0x38 - ldrsh r1, [r0, r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x22] - adds r1, #8 - strh r1, [r0, #0x22] - bx lr - .align 2, 0 -_081137F4: .4byte gUnknown_2023E88 -_081137F8: .4byte gUnknown_20380D6 -_081137FC: .4byte gUnknown_20380BE -_08113800: .4byte sub_08113808 -_08113804: .4byte gUnknown_20205AC - thumb_func_end sub_081137B0 - - thumb_func_start sub_08113808 -sub_08113808: @ 0x08113808 - push {r4, r5, lr} - adds r5, r0, #0 - ldrh r0, [r5, #0x34] - movs r1, #0x34 - ldrsh r3, [r5, r1] - cmp r3, #0 - beq _08113870 - subs r0, #1 - strh r0, [r5, #0x34] - movs r2, #0x2e - ldrsh r0, [r5, r2] - movs r2, #0x30 - ldrsh r1, [r5, r2] - bl Sin - ldr r4, _08113868 - movs r1, #0x38 - ldrsh r2, [r5, r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, 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, r1, r2 - lsls r1, r1, #2 - adds r1, 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, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xff - ble _081138A4 - ldr r2, _0811386C - adds r0, r1, r2 - strh r0, [r5, #0x2e] - b _081138A4 - .align 2, 0 -_08113868: .4byte gUnknown_20205AC -_0811386C: .4byte 0xFFFFFF00 -_08113870: - ldr r2, _081138AC - movs r0, #0x38 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r3, [r0, #0x24] - movs r0, #0x38 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r3, [r0, #0x26] - movs r0, #0x38 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x22] - subs r1, #8 - strh r1, [r0, #0x22] - ldr r0, _081138B0 - str r0, [r5, #0x1c] -_081138A4: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081138AC: .4byte gUnknown_20205AC -_081138B0: .4byte DestroySpriteAndMatrix - thumb_func_end sub_08113808 - - thumb_func_start sub_081138B4 -sub_081138B4: @ 0x081138B4 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _081138FC - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08113904 - ldr r2, _08113900 - ldrh r0, [r5, #0x20] - ldrh r1, [r2] - subs r0, r0, r1 - strh r0, [r5, #0x20] - ldrh r0, [r2, #6] - rsbs r0, r0, #0 - strh r0, [r2, #6] - ldrh r0, [r2, #8] - rsbs r0, r0, #0 - strh r0, [r2, #8] - adds r1, r2, #0 - b _0811390E - .align 2, 0 -_081138FC: .4byte gUnknown_20380D6 -_08113900: .4byte gUnknown_20380BE -_08113904: - ldr r1, _08113944 - ldrh r0, [r1] - ldrh r2, [r5, #0x20] - adds r0, r0, r2 - strh r0, [r5, #0x20] -_0811390E: - ldrh r0, [r1, #2] - ldrh r2, [r5, #0x22] - adds r0, r0, r2 - strh r0, [r5, #0x22] - ldrh r0, [r1, #4] - strh r0, [r5, #0x2e] - ldrh r0, [r1, #6] - strh r0, [r5, #0x30] - ldrh r0, [r1, #8] - strh r0, [r5, #0x34] - ldrh r0, [r1, #0xa] - strh r0, [r5, #0x38] - adds r2, r5, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r1, _08113948 - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _0811394C - str r0, [r5, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08113944: .4byte gUnknown_20380BE -_08113948: .4byte DestroySpriteAndMatrix -_0811394C: .4byte TranslateSpriteLinearAndFlicker - thumb_func_end sub_081138B4 - - thumb_func_start sub_08113950 -sub_08113950: @ 0x08113950 - push {r4, r5, lr} - adds r5, r0, #0 - bl SetSpriteCoordsToAnimAttackerCoords - ldr r4, _081139A8 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x32] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x36] - ldr r0, _081139AC - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081139B4 - ldr r2, _081139B0 - ldrh r0, [r5, #0x20] - ldrh r1, [r2, #2] - subs r0, r0, r1 - strh r0, [r5, #0x20] - ldrh r0, [r5, #0x22] - adds r1, r1, r0 - strh r1, [r5, #0x22] - ldrh r0, [r5, #0x32] - ldrh r1, [r2, #4] - subs r0, r0, r1 - strh r0, [r5, #0x32] - ldrh r0, [r2, #6] - ldrh r1, [r5, #0x36] - adds r0, r0, r1 - strh r0, [r5, #0x36] - b _081139DE - .align 2, 0 -_081139A8: .4byte gUnknown_20380D7 -_081139AC: .4byte gUnknown_20380D6 -_081139B0: .4byte gUnknown_20380BE -_081139B4: - ldr r1, _081139F8 - ldrh r0, [r1] - ldrh r2, [r5, #0x20] - adds r0, r0, r2 - strh r0, [r5, #0x20] - ldrh r0, [r1, #2] - ldrh r2, [r5, #0x22] - adds r0, r0, r2 - strh r0, [r5, #0x22] - ldrh r0, [r1, #4] - ldrh r2, [r5, #0x32] - adds r0, r0, r2 - strh r0, [r5, #0x32] - ldrh r0, [r1, #6] - ldrh r1, [r5, #0x36] - adds r0, r0, r1 - strh r0, [r5, #0x36] - adds r0, r5, #0 - movs r1, #1 - bl StartSpriteAnim -_081139DE: - ldr r0, _081139F8 - ldrh r0, [r0, #8] - strh r0, [r5, #0x2e] - ldr r0, _081139FC - str r0, [r5, #0x1c] - ldr r1, _08113A00 - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081139F8: .4byte gUnknown_20380BE -_081139FC: .4byte sub_080A67B4 -_08113A00: .4byte DestroySpriteAndMatrix - thumb_func_end sub_08113950 - - thumb_func_start sub_08113A04 -sub_08113A04: @ 0x08113A04 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _08113A18 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08113A20 - ldr r4, _08113A1C - b _08113A22 - .align 2, 0 -_08113A18: .4byte gUnknown_20380BE -_08113A1C: .4byte gUnknown_20380D6 -_08113A20: - ldr r4, _08113A64 -_08113A22: - ldrb r0, [r4] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - ldr r4, _08113A68 - movs r0, #2 - ldrsh r1, [r4, r0] - adds r0, r5, #0 - bl SetAnimSpriteInitialXOffset - ldrh r0, [r4, #4] - ldrh r1, [r5, #0x22] - adds r0, r0, r1 - strh r0, [r5, #0x22] - ldr r0, _08113A6C - str r0, [r5, #0x1c] - ldr r1, _08113A70 - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08113A64: .4byte gUnknown_20380D7 -_08113A68: .4byte gUnknown_20380BE -_08113A6C: .4byte RunStoredCallbackWhenAnimEnds -_08113A70: .4byte DestroySpriteAndMatrix - thumb_func_end sub_08113A04 - - thumb_func_start sub_08113A74 -sub_08113A74: @ 0x08113A74 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08113A9C - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08113A8E - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAffineAnim -_08113A8E: - adds r0, r4, #0 - bl sub_08113950 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08113A9C: .4byte gUnknown_20380D6 - thumb_func_end sub_08113A74 - - thumb_func_start sub_08113AA0 -sub_08113AA0: @ 0x08113AA0 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldr r4, _08113AF4 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r5, #0 - strh r0, [r6, #0x20] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r6, #0x22] - strh r5, [r6, #0x36] - movs r0, #1 - strh r0, [r6, #0x38] - ldr r0, _08113AF8 - ldrh r0, [r0] - strh r0, [r6, #0x3a] - ldr r4, _08113AFC - ldrb r0, [r4] - movs r1, #0 - bl GetBattlerSpriteCoordAttr - lsls r7, r0, #0x10 - lsrs r5, r7, #0x10 - ldrb r0, [r4] - movs r1, #1 - bl GetBattlerSpriteCoordAttr - lsls r1, r0, #0x10 - lsrs r0, r1, #0x10 - cmp r5, r0 - bls _08113B00 - lsrs r0, r7, #0x11 - b _08113B02 - .align 2, 0 -_08113AF4: .4byte gUnknown_20380D6 -_08113AF8: .4byte gUnknown_20380BE -_08113AFC: .4byte gUnknown_2023EAF -_08113B00: - lsrs r0, r1, #0x11 -_08113B02: - 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, _08113B2C - str r0, [r6, #0x1c] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08113B2C: .4byte sub_08113B30 - thumb_func_end sub_08113AA0 - - thumb_func_start sub_08113B30 -sub_08113B30: @ 0x08113B30 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r5, [r4, r0] - cmp r5, #0 - beq _08113B42 - cmp r5, #1 - beq _08113BAE - b _08113C32 -_08113B42: - ldrh r0, [r4, #0x3a] - ldrh r1, [r4, #0x38] - subs r0, 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, #1 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #5 - ble _08113B94 - strh r5, [r4, #0x36] - ldrh r1, [r4, #0x38] - movs r2, #0x38 - ldrsh r0, [r4, r2] - cmp r0, #0xf - bgt _08113B94 - adds r0, r1, #1 - strh r0, [r4, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xf - ble _08113B94 - movs r0, #0x10 - strh r0, [r4, #0x38] -_08113B94: - ldrh r0, [r4, #0x34] - adds r0, #1 - strh r0, [r4, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3c - ble _08113C32 - movs r0, #0 - strh r0, [r4, #0x34] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - b _08113C32 -_08113BAE: - ldrh r0, [r4, #0x3a] - ldrh r1, [r4, #0x38] - subs r0, 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 _08113BD6 - adds r0, r1, #0 - adds r0, #8 - strh r0, [r4, #0x3c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x95 - ble _08113BD6 - movs r0, #0x96 - strh r0, [r4, #0x3c] -_08113BD6: - 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, #1 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #5 - ble _08113C1E - movs r0, #0 - strh r0, [r4, #0x36] - ldrh r1, [r4, #0x38] - movs r2, #0x38 - ldrsh r0, [r4, r2] - cmp r0, #0xf - bgt _08113C1E - adds r0, r1, #1 - strh r0, [r4, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xf - ble _08113C1E - movs r0, #0x10 - strh r0, [r4, #0x38] -_08113C1E: - ldrh r0, [r4, #0x34] - adds r0, #1 - strh r0, [r4, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x14 - ble _08113C32 - adds r0, r4, #0 - bl DestroyAnimSprite -_08113C32: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_08113B30 - - thumb_func_start sub_08113C38 -sub_08113C38: @ 0x08113C38 - push {r4, r5, r6, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _08113C64 - adds r4, r1, r0 - ldr r0, _08113C68 - ldrb r0, [r0] - bl GetBattlerSpriteBGPriorityRank - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08113C74 - ldr r0, _08113C6C - str r0, [sp] - ldr r0, _08113C70 - b _08113C7A - .align 2, 0 -_08113C64: .4byte gUnknown_3005B60 -_08113C68: .4byte gUnknown_20380D6 -_08113C6C: .4byte 0x04000014 -_08113C70: .4byte gUnknown_2022ACC -_08113C74: - ldr r0, _08113CF0 - str r0, [sp] - ldr r0, _08113CF4 -_08113C7A: - ldrh r0, [r0] - strh r0, [r4, #0xc] - ldr r0, _08113CF8 - str r0, [sp, #4] - mov r1, sp - movs r5, #0 - movs r0, #1 - strb r0, [r1, #8] - mov r0, sp - strb r5, [r0, #9] - ldr r0, _08113CFC - ldrb r0, [r0] - bl GetBattlerYCoordWithElevation - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - subs r1, #0x20 - strh r1, [r4, #0xe] - adds r0, #0x20 - strh r0, [r4, #0x10] - cmp r1, #0 - bge _08113CAA - strh r5, [r4, #0xe] -_08113CAA: - ldrh r3, [r4, #0xe] - movs r1, #0x10 - ldrsh r0, [r4, r1] - cmp r3, r0 - bgt _08113CD8 - ldr r5, _08113D00 - movs r0, #0xf0 - lsls r0, r0, #3 - adds r6, r5, r0 -_08113CBC: - lsls r1, r3, #1 - adds r2, r1, r5 - ldrh r0, [r4, #0xc] - strh r0, [r2] - adds r1, r1, r6 - ldrh r0, [r4, #0xc] - strh r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - movs r1, #0x10 - ldrsh r0, [r4, r1] - cmp r3, r0 - ble _08113CBC -_08113CD8: - ldr r0, [sp] - ldr r1, [sp, #4] - ldr r2, [sp, #8] - bl ScanlineEffect_SetParams - ldr r0, _08113D04 - str r0, [r4] - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08113CF0: .4byte 0x04000018 -_08113CF4: .4byte gUnknown_2022AD0 -_08113CF8: .4byte 0xA2600001 -_08113CFC: .4byte gUnknown_20380D6 -_08113D00: .4byte gUnknown_20388C8 -_08113D04: .4byte sub_08113D08 - thumb_func_end sub_08113C38 - - thumb_func_start sub_08113D08 -sub_08113D08: @ 0x08113D08 - push {lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #3 - ldr r1, _08113D2C - adds r2, r0, r1 - movs r1, #8 - ldrsh r0, [r2, r1] - cmp r0, #4 - bhi _08113DBE - lsls r0, r0, #2 - ldr r1, _08113D30 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08113D2C: .4byte gUnknown_3005B60 -_08113D30: .4byte _08113D34 -_08113D34: @ jump table - .4byte _08113D48 @ case 0 - .4byte _08113D6A @ case 1 - .4byte _08113D7A @ case 2 - .4byte _08113DA6 @ case 3 - .4byte _08113DB8 @ case 4 -_08113D48: - ldrh r0, [r2, #0x16] - adds r0, #1 - strh r0, [r2, #0x16] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _08113D9E - movs r0, #0 - strh r0, [r2, #0x16] - ldrh r0, [r2, #0x14] - adds r0, #1 - strh r0, [r2, #0x14] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - bne _08113D9E - b _08113D98 -_08113D6A: - ldrh r0, [r2, #0xa] - adds r0, #1 - strh r0, [r2, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3c - ble _08113D9E - b _08113D98 -_08113D7A: - ldrh r0, [r2, #0x16] - adds r0, #1 - strh r0, [r2, #0x16] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _08113D9E - movs r0, #0 - strh r0, [r2, #0x16] - ldrh r0, [r2, #0x14] - subs r0, #1 - strh r0, [r2, #0x14] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08113D9E -_08113D98: - ldrh r0, [r2, #8] - adds r0, #1 - strh r0, [r2, #8] -_08113D9E: - adds r0, r2, #0 - bl sub_08113DC4 - b _08113DBE -_08113DA6: - ldr r1, _08113DB4 - movs r0, #3 - strb r0, [r1, #0x15] - ldrh r0, [r2, #8] - adds r0, #1 - strh r0, [r2, #8] - b _08113DBE - .align 2, 0 -_08113DB4: .4byte gUnknown_20397C8 -_08113DB8: - adds r0, r3, #0 - bl DestroyAnimVisualTask -_08113DBE: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08113D08 - - thumb_func_start sub_08113DC4 -sub_08113DC4: @ 0x08113DC4 - push {r4, r5, r6, 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 _08113E1A - ldr r7, _08113E30 - mov ip, r7 - ldr r0, _08113E34 - mov r8, r0 - ldr r6, _08113E38 -_08113DE2: - lsls r2, r4, #1 - ldrb r1, [r6, #0x14] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #7 - adds r2, r2, r0 - add r2, ip - lsls r0, r3, #1 - add r0, r8 - movs r7, #0 - ldrsh r1, [r0, r7] - movs r7, #0x14 - ldrsh r0, [r5, r7] - muls r0, r1, r0 - asrs r0, r0, #7 - ldrh r1, [r5, #0xc] - adds r0, r0, r1 - strh r0, [r2] - adds r3, #8 - movs r0, #0xff - ands r3, r0 - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r7, #0x10 - ldrsh r0, [r5, r7] - cmp r4, r0 - ble _08113DE2 -_08113E1A: - ldrh r0, [r5, #0x12] - adds r0, #9 - movs r1, #0xff - ands r0, r1 - strh r0, [r5, #0x12] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08113E30: .4byte gUnknown_20388C8 -_08113E34: .4byte gUnknown_82FA8CC -_08113E38: .4byte gUnknown_20397C8 - thumb_func_end sub_08113DC4 - - thumb_func_start sub_08113E3C -sub_08113E3C: @ 0x08113E3C - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r4, r0, #0 - ldr r5, _08113EDC - movs r0, #4 - ldrsh r1, [r5, r0] - lsls r0, r1, #1 - adds r0, r0, r1 - movs r1, #5 - bl __divsi3 - adds r6, r0, #0 - ldr r1, _08113EE0 - mov r8, r1 - ldrb r0, [r1] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x20] - mov r2, r8 - ldrb r0, [r2] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r3, [r5, #8] - adds r0, r0, r3 - strh r0, [r4, #0x22] - movs r1, #2 - ldrsh r0, [r5, r1] - movs r2, #4 - ldrsh r1, [r5, r2] - bl Cos - strh r0, [r4, #0x30] - movs r3, #2 - ldrsh r0, [r5, r3] - lsls r6, r6, #0x10 - asrs r6, r6, #0x10 - adds r1, r6, #0 - bl Sin - strh r0, [r4, #0x32] - ldrh r1, [r4, #0x30] - ldrh r2, [r5] - adds r3, r2, #0 - muls r3, r1, r3 - adds r1, r3, #0 - ldrh r3, [r4, #0x20] - adds r1, r1, r3 - strh r1, [r4, #0x20] - adds r1, r2, #0 - muls r1, r0, r1 - adds r0, r1, #0 - ldrh r2, [r4, #0x22] - adds r0, r0, r2 - strh r0, [r4, #0x22] - ldrh r0, [r5, #6] - strh r0, [r4, #0x34] - ldr r0, _08113EE4 - str r0, [r4, #0x1c] - adds r4, #0x2e - ldr r2, _08113EE8 - movs r1, #6 -_08113EC4: - ldrh r0, [r4] - strh r0, [r2] - adds r4, #2 - adds r2, #2 - subs r1, #1 - cmp r1, #0 - bge _08113EC4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08113EDC: .4byte gUnknown_20380BE -_08113EE0: .4byte gUnknown_20380D6 -_08113EE4: .4byte sub_08113EEC -_08113EE8: .4byte gUnknown_2039DCC - thumb_func_end sub_08113E3C - - thumb_func_start sub_08113EEC -sub_08113EEC: @ 0x08113EEC - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x30] - ldrh r1, [r4, #0x36] - adds r0, r0, r1 - strh r0, [r4, #0x36] - ldrh r0, [r4, #0x32] - ldrh r2, [r4, #0x38] - adds r0, 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, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x34 - ldrsh r1, [r4, r2] - cmp r0, r1 - ble _08113F30 - adds r0, r4, #0 - bl DestroyAnimSprite -_08113F30: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08113EEC - - thumb_func_start sub_08113F38 -sub_08113F38: @ 0x08113F38 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _08113F74 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08113F78 - ldrh r1, [r1] - strh r1, [r0, #8] - ldr r1, _08113F7C - ldrb r4, [r1] - movs r1, #0x10 - strh r1, [r0, #0xa] - movs r0, #0x52 - bl SetGpuReg - adds r0, r4, #0 - bl GetBattlerSpriteBGPriorityRank - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08113F84 - ldr r1, _08113F80 - movs r0, #0x50 - bl SetGpuReg - b _08113F8C - .align 2, 0 -_08113F74: .4byte gUnknown_3005B60 -_08113F78: .4byte gUnknown_20380BE -_08113F7C: .4byte gUnknown_20380D6 -_08113F80: .4byte 0x00003F42 -_08113F84: - ldr r1, _08113FA0 - movs r0, #0x50 - bl SetGpuReg -_08113F8C: - ldr r0, _08113FA4 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _08113FA8 - str r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08113FA0: .4byte 0x00003F44 -_08113FA4: .4byte gUnknown_3005B60 -_08113FA8: .4byte sub_08113FAC - thumb_func_end sub_08113F38 - - thumb_func_start sub_08113FAC -sub_08113FAC: @ 0x08113FAC - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r1, _08114018 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r6, r0, r1 - ldrh r0, [r6, #0xa] - lsrs r4, r0, #8 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r2, #0xc - ldrsh r0, [r6, r2] - ldrb r2, [r6, #8] - cmp r0, r2 - bne _08114028 - adds r4, #1 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - subs r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r4, #8 - orrs r1, r0 - movs r5, #0 - strh r1, [r6, #0xa] - ldrh r1, [r6, #0xa] - movs r0, #0x52 - bl SetGpuReg - strh r5, [r6, #0xc] - cmp r4, #0x10 - bne _0811402E - ldr r2, _0811401C - ldr r1, _08114020 - ldr r0, _08114024 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - adds r0, r7, #0 - bl DestroyAnimVisualTask - b _0811402E - .align 2, 0 -_08114018: .4byte gUnknown_3005B60 -_0811401C: .4byte gUnknown_20205AC -_08114020: .4byte gUnknown_2023E88 -_08114024: .4byte gUnknown_20380D6 -_08114028: - ldrh r0, [r6, #0xc] - adds r0, #1 - strh r0, [r6, #0xc] -_0811402E: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08113FAC - - thumb_func_start sub_08114034 -sub_08114034: @ 0x08114034 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08114060 - lsls r2, r0, #2 - adds r2, r2, r0 - lsls r2, r2, #3 - adds r2, r2, r1 - ldr r0, _08114064 - ldrh r0, [r0] - strh r0, [r2, #8] - movs r1, #0x80 - lsls r1, r1, #5 - strh r1, [r2, #0xa] - ldr r0, _08114068 - str r0, [r2] - movs r0, #0x52 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 -_08114060: .4byte gUnknown_3005B60 -_08114064: .4byte gUnknown_20380BE -_08114068: .4byte sub_0811406C - thumb_func_end sub_08114034 - - thumb_func_start sub_0811406C -sub_0811406C: @ 0x0811406C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r1, _081140C8 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r6, r0, r1 - ldrh r0, [r6, #0xa] - lsrs r4, r0, #8 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r2, #0xc - ldrsh r0, [r6, r2] - ldrb r2, [r6, #8] - cmp r0, r2 - bne _081140CC - subs r4, #1 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r4, #8 - orrs r1, r0 - movs r5, #0 - strh r1, [r6, #0xa] - ldrh r1, [r6, #0xa] - movs r0, #0x52 - bl SetGpuReg - strh r5, [r6, #0xc] - cmp r4, #0 - bne _081140D2 - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - adds r0, r7, #0 - bl DestroyAnimVisualTask - b _081140D2 - .align 2, 0 -_081140C8: .4byte gUnknown_3005B60 -_081140CC: - ldrh r0, [r6, #0xc] - adds r0, #1 - strh r0, [r6, #0xc] -_081140D2: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_0811406C - - thumb_func_start sub_081140D8 -sub_081140D8: @ 0x081140D8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r1, #0x80 - lsls r1, r1, #5 - movs r0, #0x52 - bl SetGpuReg - ldr r0, _08114104 - ldrb r0, [r0] - bl GetBattlerSpriteBGPriorityRank - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0811410C - ldr r1, _08114108 - movs r0, #0x50 - bl SetGpuReg - b _08114114 - .align 2, 0 -_08114104: .4byte gUnknown_20380D6 -_08114108: .4byte 0x00003F42 -_0811410C: - ldr r1, _08114120 - movs r0, #0x50 - bl SetGpuReg -_08114114: - adds r0, r4, #0 - bl DestroyAnimVisualTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08114120: .4byte 0x00003F44 - thumb_func_end sub_081140D8 - - thumb_func_start sub_08114124 -sub_08114124: @ 0x08114124 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r6, _08114190 - ldrb r0, [r6] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x30] - ldr r5, _08114194 - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x32] - ldrb r0, [r6] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x34] - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x36] - movs r0, #0x7e - strh r0, [r4, #0x2e] - adds r0, r4, #0 - bl InitSpriteDataForLinearTranslation - ldrh r0, [r4, #0x30] - rsbs r0, r0, #0 - strh r0, [r4, #0x34] - ldrh r0, [r4, #0x32] - rsbs r0, r0, #0 - strh r0, [r4, #0x36] - ldr r0, _08114198 - strh r0, [r4, #0x3a] - ldr r1, _0811419C - str r1, [r4, #0x1c] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08114190: .4byte gUnknown_20380D7 -_08114194: .4byte gUnknown_20380D6 -_08114198: .4byte 0x0000FFD8 -_0811419C: .4byte sub_081141A0 - thumb_func_end sub_08114124 - - thumb_func_start sub_081141A0 -sub_081141A0: @ 0x081141A0 - push {r4, r5, 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, #0x10 - asrs r0, r0, #0x18 - strh r0, [r4, #0x24] - lsls r0, r1, #0x10 - asrs r0, r0, #0x18 - strh r0, [r4, #0x26] - movs r6, #0x3c - ldrsh r0, [r4, r6] - cmp r0, #0 - bne _081141E2 - adds r0, r2, r5 - strh r0, [r4, #0x34] - adds r1, r1, r3 - strh r1, [r4, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - strh r0, [r4, #0x24] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - strh r1, [r4, #0x26] - ldrh r0, [r4, #0x2e] - subs r0, #1 - strh r0, [r4, #0x2e] -_081141E2: - movs r1, #0x38 - ldrsh r0, [r4, r1] - movs r2, #0x3a - ldrsh r1, [r4, r2] - bl Sin - ldrh r6, [r4, #0x26] - adds r0, r0, r6 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x38] - adds r0, #3 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x38] - cmp r0, #0x7f - ble _08114212 - movs r0, #0 - strh r0, [r4, #0x38] - ldrh r0, [r4, #0x3a] - adds r0, #0x14 - strh r0, [r4, #0x3a] - ldrh r0, [r4, #0x3c] - adds r0, #1 - strh r0, [r4, #0x3c] -_08114212: - ldrh r0, [r4, #0x2e] - subs r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08114224 - adds r0, r4, #0 - bl DestroyAnimSprite -_08114224: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081141A0 - - thumb_func_start sub_0811422C -sub_0811422C: @ 0x0811422C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08114260 - ldrh r0, [r5] - ldrh r1, [r4, #0x20] - adds r0, r0, r1 - strh r0, [r4, #0x20] - ldrh r0, [r5, #2] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] - ldrb r1, [r5, #4] - adds r0, r4, #0 - bl StartSpriteAffineAnim - ldrh r0, [r5, #6] - strh r0, [r4, #0x2e] - ldrh r0, [r5, #8] - strh r0, [r4, #0x30] - ldrh r0, [r5, #0xa] - strh r0, [r4, #0x32] - ldr r0, _08114264 - str r0, [r4, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08114260: .4byte gUnknown_20380BE -_08114264: .4byte sub_08114268 - thumb_func_end sub_0811422C - - thumb_func_start sub_08114268 -sub_08114268: @ 0x08114268 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x2e] - ldrh r1, [r2, #0x36] - adds r0, r0, r1 - strh r0, [r2, #0x36] - ldrh r1, [r2, #0x30] - ldrh r3, [r2, #0x38] - adds r1, r1, r3 - strh r1, [r2, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - strh r0, [r2, #0x24] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - strh r1, [r2, #0x26] - ldrh r0, [r2, #0x34] - adds r0, #1 - strh r0, [r2, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r3, #0x32 - ldrsh r1, [r2, r3] - cmp r0, r1 - bne _0811429E - ldr r0, _081142A4 - str r0, [r2, #0x1c] -_0811429E: - pop {r0} - bx r0 - .align 2, 0 -_081142A4: .4byte sub_081142A8 - thumb_func_end sub_08114268 - - thumb_func_start sub_081142A8 -sub_081142A8: @ 0x081142A8 - push {lr} - adds r3, r0, #0 - ldrh r1, [r3, #0x36] - ldrh r0, [r3, #0x2e] - subs r1, r1, r0 - strh r1, [r3, #0x36] - ldrh r0, [r3, #0x38] - ldrh r2, [r3, #0x30] - subs r0, r0, r2 - strh r0, [r3, #0x38] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - strh r1, [r3, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - strh r0, [r3, #0x26] - ldrh r0, [r3, #0x34] - subs r0, #1 - strh r0, [r3, #0x34] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _081142DA - adds r0, r3, #0 - bl DestroySpriteAndMatrix -_081142DA: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081142A8 - - thumb_func_start sub_081142E0 -sub_081142E0: @ 0x081142E0 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r0, _081142F4 - movs r2, #0 - ldrsh r1, [r0, r2] - adds r3, r0, #0 - cmp r1, #0 - bne _081142FC - ldr r0, _081142F8 - b _081142FE - .align 2, 0 -_081142F4: .4byte gUnknown_20380BE -_081142F8: .4byte gUnknown_20380D6 -_081142FC: - ldr r0, _0811432C -_081142FE: - ldrb r5, [r0] - movs r6, #0x14 - ldrh r2, [r4, #4] - lsls r1, r2, #0x16 - lsrs r1, r1, #0x16 - adds r1, #4 - ldr r7, _08114330 - adds r0, r7, #0 - ands r1, r0 - ldr r0, _08114334 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, #4] - movs r1, #2 - ldrsh r0, [r3, r1] - cmp r0, #1 - beq _0811435C - cmp r0, #1 - bgt _08114338 - cmp r0, #0 - beq _08114342 - b _081143B0 - .align 2, 0 -_0811432C: .4byte gUnknown_20380D7 -_08114330: .4byte 0x000003FF -_08114334: .4byte 0xFFFFFC00 -_08114338: - cmp r0, #2 - beq _08114376 - cmp r0, #3 - beq _0811438E - b _081143B0 -_08114342: - adds r0, r5, #0 - movs r1, #5 - bl GetBattlerSpriteCoordAttr - subs r0, #8 - strh r0, [r4, #0x20] - adds r0, r5, #0 - movs r1, #2 - bl GetBattlerSpriteCoordAttr - adds r0, #8 - strh r0, [r4, #0x22] - b _081143B0 -_0811435C: - adds r0, r5, #0 - movs r1, #5 - bl GetBattlerSpriteCoordAttr - subs r0, #0xe - strh r0, [r4, #0x20] - adds r0, r5, #0 - movs r1, #2 - bl GetBattlerSpriteCoordAttr - adds r0, #0x10 - strh r0, [r4, #0x22] - b _081143B0 -_08114376: - adds r0, r5, #0 - movs r1, #4 - bl GetBattlerSpriteCoordAttr - adds r0, #8 - strh r0, [r4, #0x20] - adds r0, r5, #0 - movs r1, #2 - bl GetBattlerSpriteCoordAttr - adds r0, #8 - b _081143A4 -_0811438E: - adds r0, r5, #0 - movs r1, #4 - bl GetBattlerSpriteCoordAttr - adds r0, #0xe - strh r0, [r4, #0x20] - adds r0, r5, #0 - movs r1, #2 - bl GetBattlerSpriteCoordAttr - adds r0, #0x10 -_081143A4: - strh r0, [r4, #0x22] - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAffineAnim - movs r6, #0xec -_081143B0: - movs r0, #0x20 - strh r0, [r4, #0x2e] - lsls r0, r6, #0x18 - asrs r0, r0, #0x18 - ldrh r2, [r4, #0x20] - adds r0, r0, r2 - strh r0, [r4, #0x32] - ldrh r0, [r4, #0x22] - adds r0, #0xc - strh r0, [r4, #0x36] - ldr r0, _081143D8 - strh r0, [r4, #0x38] - adds r0, r4, #0 - bl InitAnimArcTranslation - ldr r0, _081143DC - str r0, [r4, #0x1c] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081143D8: .4byte 0x0000FFF4 -_081143DC: .4byte sub_081143E0 - thumb_func_end sub_081142E0 - - thumb_func_start sub_081143E0 -sub_081143E0: @ 0x081143E0 - push {r4, lr} - adds r4, r0, #0 - bl TranslateAnimHorizontalArc - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081143F4 - adds r0, r4, #0 - bl DestroySpriteAndMatrix -_081143F4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081143E0 - - thumb_func_start sub_081143FC -sub_081143FC: @ 0x081143FC - push {r4, r5, r6, r7, lr} - sub sp, #0x1c - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _08114460 - adds r5, r1, r0 - ldr r4, _08114464 - ldrb r0, [r4] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #0x1f - movs r6, #0 - strh r0, [r5, #0x16] - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoordAttr - subs r0, #7 - strh r0, [r5, #0x14] - ldrh r1, [r5, #0x16] - strh r1, [r5, #0x12] - strh r0, [r5, #0x10] - subs r1, r1, r0 - lsls r1, r1, #8 - strh r1, [r5, #0x22] - ldrb r0, [r4] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - subs r1, #0x20 - strh r1, [r5, #0x24] - adds r0, #0x20 - strh r0, [r5, #0x26] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811446C - ldr r0, _08114468 - b _0811446E - .align 2, 0 -_08114460: .4byte gUnknown_3005B60 -_08114464: .4byte gUnknown_20380D6 -_08114468: .4byte 0x0000FFF4 -_0811446C: - ldr r0, _081144B8 -_0811446E: - strh r0, [r5, #0x18] - ldr r0, _081144BC - ldrb r0, [r0] - bl GetBattlerSpriteBGPriorityRank - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0xe] - cmp r0, #1 - bne _081144D0 - add r4, sp, #0xc - adds r0, r4, #0 - bl sub_080A63F8 - ldr r0, _081144C0 - ldrh r0, [r0] - strh r0, [r5, #0x1c] - ldr r1, _081144C4 - movs r0, #0x50 - bl SetGpuReg - ldrb r1, [r4, #8] - lsls r1, r1, #4 - movs r0, #0 - movs r2, #0x20 - bl FillPalette - ldr r0, _081144C8 - str r0, [sp] - movs r7, #2 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08114500 - ldr r1, _081144CC - b _081144FA - .align 2, 0 -_081144B8: .4byte 0x0000FFC0 -_081144BC: .4byte gUnknown_20380D6 -_081144C0: .4byte gUnknown_2022ACE -_081144C4: .4byte 0x00003F42 -_081144C8: .4byte 0x04000016 -_081144CC: .4byte gUnknown_2022AD0 -_081144D0: - ldr r0, _08114588 - ldrh r0, [r0] - strh r0, [r5, #0x1c] - ldr r1, _0811458C - movs r0, #0x50 - bl SetGpuReg - movs r0, #0 - movs r1, #0x90 - movs r2, #0x20 - bl FillPalette - ldr r0, _08114590 - str r0, [sp] - movs r7, #4 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08114500 - ldr r1, _08114594 -_081144FA: - ldrh r0, [r1] - adds r0, #0xf0 - strh r0, [r1] -_08114500: - ldr r0, _08114598 - str r0, [sp, #4] - mov r2, sp - movs r1, #0 - movs r0, #1 - strb r0, [r2, #8] - mov r0, sp - strb r1, [r0, #9] - strh r1, [r5, #0x1e] - movs r0, #0x10 - strh r0, [r5, #0x20] - strh r1, [r5, #8] - strh r1, [r5, #0xa] - strh r1, [r5, #0xc] - movs r0, #3 - bl sub_08114BC4 - movs r3, #0 - ldr r4, _0811459C - movs r0, #0xf0 - lsls r0, r0, #3 - adds r6, r4, r0 -_0811452C: - lsls r1, r3, #1 - adds r2, r1, r4 - ldrh r0, [r5, #0x1c] - strh r0, [r2] - adds r1, r1, r6 - ldrh r0, [r5, #0x1c] - strh r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #0x6f - bls _0811452C - ldr r0, [sp] - ldr r1, [sp, #4] - ldr r2, [sp, #8] - bl ScanlineEffect_SetParams - movs r0, #0x3f - eors r7, r0 - movs r1, #0xfc - lsls r1, r1, #6 - adds r0, r1, #0 - orrs r7, r0 - movs r0, #0x4a - adds r1, r7, #0 - bl SetGpuReg - ldr r1, _081145A0 - movs r0, #0x48 - bl SetGpuReg - ldr r2, _081145A4 - ldrh r0, [r5, #0x24] - lsls r0, r0, #8 - ldrh r1, [r5, #0x26] - orrs r0, r1 - strh r0, [r2] - ldr r1, _081145A8 - movs r0, #0xa0 - strh r0, [r1] - ldr r0, _081145AC - str r0, [r5] - add sp, #0x1c - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08114588: .4byte gUnknown_2022AD2 -_0811458C: .4byte 0x00003F44 -_08114590: .4byte 0x0400001A -_08114594: .4byte gUnknown_2022ACC -_08114598: .4byte 0xA2600001 -_0811459C: .4byte gUnknown_20388C8 -_081145A0: .4byte 0x00003F3F -_081145A4: .4byte gUnknown_2022AD8 -_081145A8: .4byte gUnknown_2022ADA -_081145AC: .4byte sub_081145B0 - thumb_func_end sub_081143FC - - thumb_func_start sub_081145B0 -sub_081145B0: @ 0x081145B0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _081145D4 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #4 - bls _081145CA - b _081146C2 -_081145CA: - lsls r0, r0, #2 - ldr r1, _081145D8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081145D4: .4byte gUnknown_3005B60 -_081145D8: .4byte _081145DC -_081145DC: @ jump table - .4byte _081145F0 @ case 0 - .4byte _08114652 @ case 1 - .4byte _0811466C @ case 2 - .4byte _081146A8 @ case 3 - .4byte _081146BC @ case 4 -_081145F0: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _081146C2 - movs r0, #0 - strh r0, [r4, #0xa] - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08114620 - ldrh r1, [r4, #0x1e] - movs r2, #0x1e - ldrsh r0, [r4, r2] - cmp r0, #0xc - beq _0811462E - adds r0, r1, #1 - strh r0, [r4, #0x1e] - b _0811462E -_08114620: - ldrh r1, [r4, #0x20] - movs r2, #0x20 - ldrsh r0, [r4, r2] - cmp r0, #8 - beq _0811462E - subs r0, r1, #1 - strh r0, [r4, #0x20] -_0811462E: - ldrh r1, [r4, #0x20] - lsls r1, r1, #8 - ldrh r0, [r4, #0x1e] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r1, #0x1e - ldrsh r0, [r4, r1] - cmp r0, #0xc - bne _081146C2 - movs r2, #0x20 - ldrsh r0, [r4, r2] - cmp r0, #8 - bne _081146C2 - b _081146AE -_08114652: - ldrh r0, [r4, #0x10] - subs r0, #8 - strh r0, [r4, #0x10] - adds r0, r4, #0 - bl sub_08114A94 - movs r0, #0x10 - ldrsh r1, [r4, r0] - movs r2, #0x18 - ldrsh r0, [r4, r2] - cmp r1, r0 - bge _081146C2 - b _081146AE -_0811466C: - ldrh r0, [r4, #0x10] - subs r0, #8 - strh r0, [r4, #0x10] - adds r0, r4, #0 - bl sub_08114A94 - ldrh r1, [r4, #0x24] - adds r1, #4 - strh r1, [r4, #0x24] - ldrh r0, [r4, #0x26] - subs r2, r0, #4 - strh r2, [r4, #0x26] - lsls r1, r1, #0x10 - lsls r0, r2, #0x10 - cmp r1, r0 - blt _0811468E - strh r2, [r4, #0x24] -_0811468E: - ldr r3, _081146A4 - ldrh r2, [r4, #0x24] - lsls r0, r2, #8 - ldrh r1, [r4, #0x26] - orrs r0, r1 - strh r0, [r3] - lsls r2, r2, #0x10 - lsls r1, r1, #0x10 - cmp r2, r1 - bne _081146C2 - b _081146AE - .align 2, 0 -_081146A4: .4byte gUnknown_2022AD8 -_081146A8: - ldr r1, _081146B8 - movs r0, #3 - strb r0, [r1, #0x15] -_081146AE: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _081146C2 - .align 2, 0 -_081146B8: .4byte gUnknown_20397C8 -_081146BC: - adds r0, r2, #0 - bl DestroyAnimVisualTask -_081146C2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081145B0 - - thumb_func_start sub_081146C8 -sub_081146C8: @ 0x081146C8 - push {r4, r5, r6, r7, lr} - sub sp, #0x1c - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _081146F0 - adds r5, r0, r1 - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #4 - bls _081146E4 - b _081148F6 -_081146E4: - lsls r0, r0, #2 - ldr r1, _081146F4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081146F0: .4byte gUnknown_3005B60 -_081146F4: .4byte _081146F8 -_081146F8: @ jump table - .4byte _0811470C @ case 0 - .4byte _08114790 @ case 1 - .4byte _081147D4 @ case 2 - .4byte _08114840 @ case 3 - .4byte _081148A8 @ case 4 -_0811470C: - bl IsContest - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08114748 - ldr r0, _0811473C - movs r1, #0 - strh r1, [r0] - ldr r0, _08114740 - strh r1, [r0] - ldr r4, _08114744 - movs r0, #0x48 - adds r1, r4, #0 - bl SetGpuReg - movs r0, #0x4a - adds r1, r4, #0 - bl SetGpuReg - adds r0, r6, #0 - bl DestroyAnimVisualTask - b _081148F6 - .align 2, 0 -_0811473C: .4byte gUnknown_2022AD8 -_08114740: .4byte gUnknown_2022ADA -_08114744: .4byte 0x00003F3F -_08114748: - ldr r0, _08114768 - ldrb r0, [r0] - bl GetBattlerSpriteBGPriorityRank - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0xe] - cmp r0, #1 - bne _08114774 - ldr r1, _0811476C - movs r0, #0x50 - bl SetGpuReg - ldr r1, _08114770 - b _0811477E - .align 2, 0 -_08114768: .4byte gUnknown_20380D7 -_0811476C: .4byte 0x00003F42 -_08114770: .4byte gUnknown_2022AD0 -_08114774: - ldr r1, _08114788 - movs r0, #0x50 - bl SetGpuReg - ldr r1, _0811478C -_0811477E: - ldrh r0, [r1] - adds r0, #0xf0 - strh r0, [r1] - b _08114894 - .align 2, 0 -_08114788: .4byte 0x00003F44 -_0811478C: .4byte gUnknown_2022ACC -_08114790: - movs r1, #0xe - ldrsh r0, [r5, r1] - cmp r0, #1 - bne _081147B8 - mov r0, sp - bl sub_080A63F8 - ldr r0, _081147B4 - ldrh r0, [r0] - strh r0, [r5, #0x1c] - mov r0, sp - ldrb r1, [r0, #8] - lsls r1, r1, #4 - movs r0, #0 - movs r2, #0x20 - bl FillPalette - b _081147C8 - .align 2, 0 -_081147B4: .4byte gUnknown_2022ACE -_081147B8: - ldr r0, _081147D0 - ldrh r0, [r0] - strh r0, [r5, #0x1c] - movs r0, #0 - movs r1, #0x90 - movs r2, #0x20 - bl FillPalette -_081147C8: - movs r0, #3 - bl sub_08114BC4 - b _08114894 - .align 2, 0 -_081147D0: .4byte gUnknown_2022AD2 -_081147D4: - ldr r4, _08114820 - ldrb r0, [r4] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #0x1f - movs r6, #0 - strh r0, [r5, #0x16] - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoordAttr - subs r0, #7 - strh r0, [r5, #0x14] - ldrh r1, [r5, #0x16] - subs r1, r1, r0 - lsls r1, r1, #8 - strh r1, [r5, #0x22] - ldrb r0, [r4] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r1, r0, #4 - strh r1, [r5, #0x24] - adds r0, #4 - strh r0, [r5, #0x26] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08114828 - ldr r0, _08114824 - b _0811482A - .align 2, 0 -_08114820: .4byte gUnknown_20380D7 -_08114824: .4byte 0x0000FFF4 -_08114828: - ldr r0, _0811483C -_0811482A: - 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, #8 - strh r0, [r5, #0x20] - b _08114894 - .align 2, 0 -_0811483C: .4byte 0x0000FFC0 -_08114840: - movs r1, #0xe - ldrsh r0, [r5, r1] - cmp r0, #1 - bne _08114850 - ldr r0, _0811484C - b _08114852 - .align 2, 0 -_0811484C: .4byte 0x04000016 -_08114850: - ldr r0, _0811489C -_08114852: - str r0, [sp, #0x10] - movs r3, #0 - add r4, sp, #0x10 - ldr r6, _081148A0 - movs r0, #0xf0 - lsls r0, r0, #3 - adds r7, r6, r0 -_08114860: - lsls r1, r3, #1 - adds r2, r1, r6 - ldrh r0, [r5, #0x1c] - adds r0, #0x9f - subs r0, r0, r3 - strh r0, [r2] - adds r1, r1, r7 - ldrh r0, [r5, #0x1c] - adds r0, #0x9f - subs r0, r0, r3 - strh r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #0x6f - bls _08114860 - ldr r1, _081148A4 - str r1, [r4, #4] - movs r2, #0 - movs r0, #1 - strb r0, [r4, #8] - strb r2, [r4, #9] - ldr r0, [sp, #0x10] - ldr r2, [r4, #8] - bl ScanlineEffect_SetParams -_08114894: - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - b _081148F6 - .align 2, 0 -_0811489C: .4byte 0x0400001A -_081148A0: .4byte gUnknown_20388C8 -_081148A4: .4byte 0xA2600001 -_081148A8: - movs r1, #0xe - ldrsh r0, [r5, r1] - cmp r0, #1 - bne _081148C0 - ldr r1, _081148BC - movs r0, #0x4a - bl SetGpuReg - b _081148C8 - .align 2, 0 -_081148BC: .4byte 0x00003F3D -_081148C0: - ldr r1, _08114900 - movs r0, #0x4a - bl SetGpuReg -_081148C8: - ldr r1, _08114904 - movs r0, #0x48 - bl SetGpuReg - ldr r2, _08114908 - ldrh r0, [r5, #0x24] - lsls r0, r0, #8 - ldrh r1, [r5, #0x26] - orrs r0, r1 - strh r0, [r2] - ldr r1, _0811490C - movs r0, #0xa0 - strh r0, [r1] - movs r0, #0 - strh r0, [r5, #8] - strh r0, [r5, #0xa] - strh r0, [r5, #0xc] - ldr r1, _08114910 - movs r0, #0x52 - bl SetGpuReg - ldr r0, _08114914 - str r0, [r5] -_081148F6: - add sp, #0x1c - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08114900: .4byte 0x00003F3B -_08114904: .4byte 0x00003F3F -_08114908: .4byte gUnknown_2022AD8 -_0811490C: .4byte gUnknown_2022ADA -_08114910: .4byte 0x0000080C -_08114914: .4byte sub_08114918 - thumb_func_end sub_081146C8 - - thumb_func_start sub_08114918 -sub_08114918: @ 0x08114918 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _0811493C - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #4 - bls _08114932 - b _08114A82 -_08114932: - lsls r0, r0, #2 - ldr r1, _08114940 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0811493C: .4byte gUnknown_3005B60 -_08114940: .4byte _08114944 -_08114944: @ jump table - .4byte _08114958 @ case 0 - .4byte _08114984 @ case 1 - .4byte _081149EC @ case 2 - .4byte _08114A4E @ case 3 - .4byte _08114A60 @ case 4 -_08114958: - ldrh r0, [r4, #0x12] - adds r0, #8 - strh r0, [r4, #0x12] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrh r2, [r4, #0x16] - movs r3, #0x16 - ldrsh r1, [r4, r3] - cmp r0, r1 - blt _0811496E - strh r2, [r4, #0x12] -_0811496E: - adds r0, r4, #0 - bl sub_08114A94 - movs r0, #0x12 - ldrsh r1, [r4, r0] - movs r2, #0x16 - ldrsh r0, [r4, r2] - cmp r1, r0 - beq _08114982 - b _08114A82 -_08114982: - b _08114A54 -_08114984: - movs r3, #0x26 - ldrsh r0, [r4, r3] - movs r2, #0x24 - ldrsh r1, [r4, r2] - subs r0, r0, r1 - cmp r0, #0x3f - bgt _081149A0 - ldrh r0, [r4, #0x24] - subs r0, #4 - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x26] - adds r0, #4 - strh r0, [r4, #0x26] - b _081149A4 -_081149A0: - movs r0, #1 - strh r0, [r4, #0xa] -_081149A4: - ldr r2, _081149E8 - ldrh r0, [r4, #0x24] - lsls r0, r0, #8 - ldrh r1, [r4, #0x26] - orrs r0, r1 - strh r0, [r2] - ldrh r0, [r4, #0x10] - adds r0, #8 - strh r0, [r4, #0x10] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrh r2, [r4, #0x14] - movs r3, #0x14 - ldrsh r1, [r4, r3] - cmp r0, r1 - blt _081149C6 - strh r2, [r4, #0x10] -_081149C6: - adds r0, r4, #0 - bl sub_08114A94 - movs r0, #0x10 - ldrsh r1, [r4, r0] - movs r2, #0x14 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _08114A82 - movs r3, #0xa - ldrsh r0, [r4, r3] - cmp r0, #0 - beq _08114A82 - movs r0, #0 - strh r0, [r4, #0xa] - b _08114A54 - .align 2, 0 -_081149E8: .4byte gUnknown_2022AD8 -_081149EC: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _08114A82 - movs r0, #0 - strh r0, [r4, #0xa] - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08114A1C - ldrh r1, [r4, #0x1e] - movs r2, #0x1e - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _08114A2A - subs r0, r1, #1 - strh r0, [r4, #0x1e] - b _08114A2A -_08114A1C: - ldrh r1, [r4, #0x20] - movs r3, #0x20 - ldrsh r0, [r4, r3] - cmp r0, #0xf - bgt _08114A2A - adds r0, r1, #1 - strh r0, [r4, #0x20] -_08114A2A: - ldrh r1, [r4, #0x20] - lsls r1, r1, #8 - ldrh r0, [r4, #0x1e] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r1, #0x1e - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08114A82 - movs r2, #0x20 - ldrsh r0, [r4, r2] - cmp r0, #0x10 - bne _08114A82 - b _08114A54 -_08114A4E: - ldr r1, _08114A5C - movs r0, #3 - strb r0, [r1, #0x15] -_08114A54: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _08114A82 - .align 2, 0 -_08114A5C: .4byte gUnknown_20397C8 -_08114A60: - ldr r0, _08114A88 - movs r1, #0 - strh r1, [r0] - ldr r0, _08114A8C - strh r1, [r0] - ldr r4, _08114A90 - movs r0, #0x48 - adds r1, r4, #0 - bl SetGpuReg - movs r0, #0x4a - adds r1, r4, #0 - bl SetGpuReg - adds r0, r5, #0 - bl DestroyAnimVisualTask -_08114A82: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08114A88: .4byte gUnknown_2022AD8 -_08114A8C: .4byte gUnknown_2022ADA -_08114A90: .4byte 0x00003F3F - thumb_func_end sub_08114918 - - thumb_func_start sub_08114A94 -sub_08114A94: @ 0x08114A94 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - ldrh r0, [r6, #0x12] - ldrh r4, [r6, #0x10] - subs r0, r0, r4 - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - cmp r1, #0 - beq _08114B88 - 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, #0x10 - movs r4, #0 - cmp r0, #0 - ble _08114AF4 - ldr r0, _08114B80 - mov ip, r0 - ldr r7, _08114B84 -_08114AC8: - lsls r2, r4, #0x10 - asrs r2, r2, #0x10 - lsls r3, r2, #1 - ldrb r1, [r7, #0x14] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #7 - adds r3, r3, r0 - add r3, ip - adds r1, r2, #0 - subs r1, #0x9f - ldrh r0, [r6, #0x1c] - subs r0, r0, r1 - strh r0, [r3] - adds r2, #1 - lsls r2, r2, #0x10 - lsrs r4, r2, #0x10 - asrs r2, r2, #0x10 - movs r1, #0x10 - ldrsh r0, [r6, r1] - cmp r2, r0 - blt _08114AC8 -_08114AF4: - ldrh r4, [r6, #0x10] - lsls r3, r4, #0x10 - asrs r1, r3, #0x10 - movs r2, #0x12 - ldrsh r0, [r6, r2] - cmp r1, r0 - bgt _08114B3E - ldr r0, _08114B80 - mov ip, r0 - ldr r7, _08114B84 -_08114B08: - asrs r4, r3, #0x10 - cmp r4, #0 - blt _08114B2A - asrs r1, r5, #8 - subs r1, r1, r4 - lsls r3, r4, #1 - ldrb r2, [r7, #0x14] - lsls r0, r2, #4 - subs r0, r0, r2 - lsls r0, r0, #7 - adds r3, r3, r0 - add r3, ip - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldrh r2, [r6, #0x1c] - adds r1, r1, r2 - strh r1, [r3] -_08114B2A: - add r5, r8 - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - lsls r3, r4, #0x10 - asrs r1, r3, #0x10 - movs r2, #0x12 - ldrsh r0, [r6, r2] - cmp r1, r0 - ble _08114B08 -_08114B3E: - movs r3, #0x1c - ldrsh r0, [r6, r3] - adds r0, #0x9f - lsls r2, r4, #0x10 - asrs r1, r2, #0x10 - subs r5, r0, r1 - movs r3, #0x16 - ldrsh r0, [r6, r3] - cmp r1, r0 - bge _08114BB6 - ldr r7, _08114B80 - ldr r4, _08114B84 -_08114B56: - asrs r3, r2, #0x10 - cmp r3, #0 - blt _08114B6E - lsls r2, r3, #1 - ldrb r1, [r4, #0x14] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #7 - adds r2, r2, r0 - adds r2, r2, r7 - strh r5, [r2] - subs r5, #1 -_08114B6E: - adds r0, r3, #1 - lsls r2, r0, #0x10 - asrs r1, r2, #0x10 - movs r3, #0x16 - ldrsh r0, [r6, r3] - cmp r1, r0 - blt _08114B56 - b _08114BB6 - .align 2, 0 -_08114B80: .4byte gUnknown_20388C8 -_08114B84: .4byte gUnknown_20397C8 -_08114B88: - movs r1, #0x1c - ldrsh r0, [r6, r1] - adds r5, r0, #0 - adds r5, #0x9f - movs r4, #0 - ldr r3, _08114BC0 - movs r2, #0xf0 - lsls r2, r2, #3 - adds r6, r3, r2 -_08114B9A: - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - lsls r2, r0, #1 - adds r1, r2, r3 - strh r5, [r1] - adds r2, r2, r6 - strh r5, [r2] - subs r5, #1 - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x6f - ble _08114B9A -_08114BB6: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08114BC0: .4byte gUnknown_20388C8 - thumb_func_end sub_08114A94 - - thumb_func_start sub_08114BC4 -sub_08114BC4: @ 0x08114BC4 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r4, #0 - ldr r7, _08114C0C - movs r1, #3 - ands r0, r1 - lsls r5, r0, #2 - movs r0, #0xd - rsbs r0, r0, #0 - adds r6, r0, #0 -_08114BDA: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _08114BFA - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r7 - ldrb r0, [r1, #5] - ands r0, r6 - orrs r0, r5 - strb r0, [r1, #5] -_08114BFA: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #3 - bls _08114BDA - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08114C0C: .4byte gUnknown_20205AC - thumb_func_end sub_08114BC4 - - thumb_func_start sub_08114C10 -sub_08114C10: @ 0x08114C10 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - ldr r6, _08114CB4 - ldrb r0, [r6] - bl GetBattlerSpriteBGPriorityRank - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - eors r0, r1 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r4, r1, #0x1f - ldrb r0, [r6] - adds r1, r4, #0 - movs r2, #1 - bl MoveBattlerSpriteToBG - ldr r0, _08114CB8 - mov sb, r0 - ldr r0, _08114CBC - mov r8, r0 - ldrb r0, [r6] - add r0, r8 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - add r1, sb - adds r1, #0x3e - ldrb r2, [r1] - movs r7, #5 - rsbs r7, r7, #0 - adds r0, r7, #0 - ands r0, r2 - strb r0, [r1] - ldrb r0, [r6] - movs r5, #2 - eors r0, r5 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08114C9E - ldrb r0, [r6] - eors r0, r5 - movs r1, #1 - eors r4, r1 - adds r1, r4, #0 - movs r2, #1 - bl MoveBattlerSpriteToBG - ldrb r0, [r6] - eors r0, r5 - add r0, r8 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sb - adds r0, #0x3e - ldrb r2, [r0] - adds r1, r7, #0 - ands r1, r2 - strb r1, [r0] -_08114C9E: - mov r0, sl - bl DestroyAnimVisualTask - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08114CB4: .4byte gUnknown_20380D6 -_08114CB8: .4byte gUnknown_20205AC -_08114CBC: .4byte gUnknown_2023E88 - thumb_func_end sub_08114C10 - - thumb_func_start sub_08114CC0 -sub_08114CC0: @ 0x08114CC0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r4, _08114D08 - ldrb r0, [r4] - bl GetBattlerSpriteBGPriorityRank - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - eors r0, r1 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r5, r1, #0x1f - adds r0, r5, #0 - bl sub_080A4044 - ldrb r1, [r4] - movs r0, #2 - eors r0, r1 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08114CFC - movs r0, #1 - eors r5, r0 - adds r0, r5, #0 - bl sub_080A4044 -_08114CFC: - adds r0, r6, #0 - bl DestroyAnimVisualTask - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08114D08: .4byte gUnknown_20380D6 - thumb_func_end sub_08114CC0 - - thumb_func_start sub_08114D0C -sub_08114D0C: @ 0x08114D0C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08114D3C - ldrh r0, [r1] - ldrh r2, [r4, #0x20] - adds r0, r0, r2 - strh r0, [r4, #0x20] - ldrh r0, [r1, #2] - ldrh r2, [r4, #0x22] - adds r0, r0, r2 - strh r0, [r4, #0x22] - ldrb r1, [r1, #4] - adds r0, r4, #0 - bl StartSpriteAnim - ldr r0, _08114D40 - str r0, [r4, #0x1c] - ldr r1, _08114D44 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08114D3C: .4byte gUnknown_20380BE -_08114D40: .4byte RunStoredCallbackWhenAnimEnds -_08114D44: .4byte DestroyAnimSprite - thumb_func_end sub_08114D0C - - thumb_func_start AnimTask_MetallicShine -AnimTask_MetallicShine: @ 0x08114D48 - push {r4, r5, r6, r7, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r6, #0 - ldr r0, _08114E3C - strh r6, [r0] - ldr r0, _08114E40 - strh r6, [r0] - ldr r1, _08114E44 - movs r0, #0x48 - bl SetGpuReg - ldr r1, _08114E48 - movs r0, #0x4a - bl SetGpuReg - movs r1, #0x80 - lsls r1, r1, #8 - movs r0, #0 - bl SetGpuRegBits - ldr r1, _08114E4C - movs r0, #0x50 - bl SetGpuReg - ldr r1, _08114E50 - movs r0, #0x52 - bl SetGpuReg - movs r0, #1 - movs r1, #4 - movs r2, #0 - bl SetAnimBgAttribute - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl SetAnimBgAttribute - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08114DAC - movs r0, #1 - movs r1, #3 - movs r2, #1 - bl SetAnimBgAttribute -_08114DAC: - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08114E26 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08114E26 - ldr r4, _08114E54 - ldrb r0, [r4] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - beq _08114DDC - ldrb r0, [r4] - bl sub_080A630C - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08114E26 -_08114DDC: - ldrb r0, [r4] - movs r5, #2 - eors r0, r5 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08114E26 - ldr r3, _08114E58 - ldr r1, _08114E5C - ldrb r0, [r4] - eors r0, r5 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r3 - ldrb r3, [r2, #5] - lsls r1, r3, #0x1c - lsrs r1, r1, #0x1e - subs r1, #1 - movs r0, #3 - ands r1, r0 - lsls r1, r1, #2 - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #5] - movs r0, #1 - movs r1, #4 - movs r2, #1 - bl SetAnimBgAttribute - movs r6, #1 -_08114E26: - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08114E64 - ldr r0, _08114E60 - ldr r0, [r0] - ldr r0, [r0, #0x18] - ldrh r5, [r0] - b _08114EAC - .align 2, 0 -_08114E3C: .4byte gUnknown_2022AD8 -_08114E40: .4byte gUnknown_2022ADA -_08114E44: .4byte 0x00003F3F -_08114E48: .4byte 0x00003F3D -_08114E4C: .4byte 0x00003F42 -_08114E50: .4byte 0x00000C08 -_08114E54: .4byte gUnknown_20380D6 -_08114E58: .4byte gUnknown_20205AC -_08114E5C: .4byte gUnknown_2023E88 -_08114E60: .4byte gUnknown_2039BD4 -_08114E64: - ldr r4, _08114E84 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08114E90 - ldr r1, _08114E88 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08114E8C - b _08114EA0 - .align 2, 0 -_08114E84: .4byte gUnknown_20380D6 -_08114E88: .4byte gUnknown_2023D12 -_08114E8C: .4byte gUnknown_20243E8 -_08114E90: - ldr r1, _08114F30 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08114F34 -_08114EA0: - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_08114EAC: - movs r0, #0 - bl GetAnimBattlerSpriteId - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _08114F38 - ldrb r0, [r0] - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_080A8290 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - mov r0, sp - bl sub_080A63F8 - mov r0, sp - ldrb r0, [r0, #9] - ldr r1, _08114F3C - bl AnimLoadCompressedBgTilemap - mov r0, sp - ldrb r0, [r0, #9] - ldr r1, _08114F40 - mov r2, sp - ldrh r2, [r2, #0xa] - bl AnimLoadCompressedBgGfx - ldr r0, _08114F44 - mov r1, sp - ldrb r1, [r1, #8] - lsls r1, r1, #4 - movs r2, #0x20 - bl LoadCompressedPalette - ldr r2, _08114F48 - ldr r0, _08114F4C - lsls r1, r4, #4 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r0, [r1, #0x20] - rsbs r0, r0, #0 - adds r0, #0x60 - strh r0, [r2] - ldr r2, _08114F50 - ldrh r0, [r1, #0x22] - rsbs r0, r0, #0 - adds r0, #0x20 - strh r0, [r2] - ldrb r0, [r1, #5] - lsrs r0, r0, #4 - adds r0, #0x10 - adds r1, r0, #0 - ldr r2, _08114F54 - movs r3, #2 - ldrsh r0, [r2, r3] - cmp r0, #0 - bne _08114F58 - adds r0, r1, #0 - movs r1, #0 - bl SetGreyscaleOrOriginalPalette - b _08114F64 - .align 2, 0 -_08114F30: .4byte gUnknown_2023D12 -_08114F34: .4byte gUnknown_2024190 -_08114F38: .4byte gUnknown_20380D6 -_08114F3C: .4byte gUnknown_8C1D258 -_08114F40: .4byte gUnknown_8C1D0F4 -_08114F44: .4byte gUnknown_8C1D230 -_08114F48: .4byte gUnknown_2022ACC -_08114F4C: .4byte gUnknown_20205AC -_08114F50: .4byte gUnknown_2022ACE -_08114F54: .4byte gUnknown_20380BE -_08114F58: - lsls r0, r1, #4 - ldrh r3, [r2, #4] - movs r1, #0x10 - movs r2, #0xb - bl BlendPalette -_08114F64: - ldr r1, _08114F8C - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r5, [r0, #8] - ldr r2, _08114F90 - ldrh r1, [r2] - strh r1, [r0, #0xa] - ldrh r1, [r2, #2] - strh r1, [r0, #0xc] - ldrh r1, [r2, #4] - strh r1, [r0, #0xe] - strh r6, [r0, #0x14] - ldr r1, _08114F94 - str r1, [r0] - add sp, #0x10 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08114F8C: .4byte gUnknown_3005B60 -_08114F90: .4byte gUnknown_20380BE -_08114F94: .4byte sub_08114F98 - thumb_func_end AnimTask_MetallicShine - - thumb_func_start sub_08114F98 -sub_08114F98: @ 0x08114F98 - push {r4, r5, r6, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r6, r0, #0 - ldr r1, _08115060 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrh r0, [r4, #0x1c] - adds r0, #4 - movs r5, #0 - strh r0, [r4, #0x1c] - ldr r2, _08115064 - ldrh r3, [r2] - subs r1, r3, #4 - strh r1, [r2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x80 - beq _08114FC6 - b _081150D6 -_08114FC6: - strh r5, [r4, #0x1c] - adds r0, r3, #0 - adds r0, #0x7c - strh r0, [r2] - ldrh r0, [r4, #0x1e] - adds r0, #1 - strh r0, [r4, #0x1e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - bne _08115074 - movs r0, #0 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _08115068 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrb r0, [r1, #5] - lsrs r0, r0, #4 - adds r0, #0x10 - adds r1, r0, #0 - movs r2, #0xa - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _08115008 - adds r0, r1, #0 - movs r1, #1 - bl SetGreyscaleOrOriginalPalette -_08115008: - movs r0, #8 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - bl DestroySprite - mov r0, sp - bl sub_080A63F8 - mov r0, sp - ldrb r0, [r0, #9] - bl sub_080A6530 - movs r1, #0x14 - ldrsh r0, [r4, r1] - cmp r0, #1 - bne _081150D6 - ldr r2, _0811506C - ldr r0, _08115070 - ldrb r1, [r0] - movs r0, #2 - eors r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r5 - ldrb r3, [r2, #5] - lsls r1, r3, #0x1c - lsrs r1, r1, #0x1e - adds r1, #1 - movs r0, #3 - ands r1, r0 - lsls r1, r1, #2 - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #5] - b _081150D6 - .align 2, 0 -_08115060: .4byte gUnknown_3005B60 -_08115064: .4byte gUnknown_2022ACC -_08115068: .4byte gUnknown_20205AC -_0811506C: .4byte gUnknown_2023E88 -_08115070: .4byte gUnknown_20380D6 -_08115074: - cmp r0, #3 - bne _081150D6 - ldr r0, _081150E0 - strh r5, [r0] - ldr r0, _081150E4 - strh r5, [r0] - ldr r4, _081150E8 - movs r0, #0x48 - adds r1, r4, #0 - bl SetGpuReg - movs r0, #0x4a - adds r1, r4, #0 - bl SetGpuReg - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081150A6 - movs r0, #1 - movs r1, #3 - movs r2, #0 - bl SetAnimBgAttribute -_081150A6: - movs r0, #0 - bl GetGpuReg - adds r1, r0, #0 - movs r2, #0x80 - lsls r2, r2, #8 - adds r0, r2, #0 - eors r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - adds r0, r6, #0 - bl DestroyAnimVisualTask -_081150D6: - add sp, #0x10 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081150E0: .4byte gUnknown_2022AD8 -_081150E4: .4byte gUnknown_2022ADA -_081150E8: .4byte 0x00003F3F - thumb_func_end sub_08114F98 - - thumb_func_start AnimTask_SetGreyscaleOrOriginalPal -AnimTask_SetGreyscaleOrOriginalPal: @ 0x081150EC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r4, #0 - ldr r0, _0811510C - movs r2, #0 - ldrsh r1, [r0, r2] - adds r2, r0, #0 - cmp r1, #7 - bhi _08115150 - lsls r0, r1, #2 - ldr r1, _08115110 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0811510C: .4byte gUnknown_20380BE -_08115110: .4byte _08115114 -_08115114: @ jump table - .4byte _08115134 @ case 0 - .4byte _08115134 @ case 1 - .4byte _08115134 @ case 2 - .4byte _08115134 @ case 3 - .4byte _08115140 @ case 4 - .4byte _08115144 @ case 5 - .4byte _08115148 @ case 6 - .4byte _0811514C @ case 7 -_08115134: - ldrb r0, [r2] - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - b _08115152 -_08115140: - movs r4, #0 - b _08115158 -_08115144: - movs r4, #2 - b _08115158 -_08115148: - movs r4, #1 - b _08115158 -_0811514C: - movs r4, #3 - b _08115158 -_08115150: - movs r2, #0xff -_08115152: - movs r0, #0 - cmp r0, #0 - beq _0811517E -_08115158: - adds r0, r4, #0 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0811517C - ldr r0, _08115178 - adds r0, r4, r0 - ldrb r2, [r0] - b _0811517E - .align 2, 0 -_08115178: .4byte gUnknown_2023E88 -_0811517C: - movs r2, #0xff -_0811517E: - cmp r2, #0xff - beq _0811519A - ldr r1, _081151A8 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #5] - lsrs r0, r0, #4 - adds r0, #0x10 - ldr r1, _081151AC - ldrb r1, [r1, #2] - bl SetGreyscaleOrOriginalPalette -_0811519A: - adds r0, r5, #0 - bl DestroyAnimVisualTask - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081151A8: .4byte gUnknown_20205AC -_081151AC: .4byte gUnknown_20380BE - thumb_func_end AnimTask_SetGreyscaleOrOriginalPal - - thumb_func_start sub_081151B0 -sub_081151B0: @ 0x081151B0 - push {lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r2, _081151DC - ldrb r0, [r2] - cmp r0, #1 - bhi _081151C4 - ldr r1, _081151E0 - movs r0, #0 - strh r0, [r1, #0xe] -_081151C4: - ldrb r0, [r2] - cmp r0, #2 - bne _081151D0 - ldr r1, _081151E0 - movs r0, #1 - strh r0, [r1, #0xe] -_081151D0: - adds r0, r3, #0 - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_081151DC: .4byte gUnknown_20380D2 -_081151E0: .4byte gUnknown_20380BE - thumb_func_end sub_081151B0 - - thumb_func_start AnimBonemerangProjectile -AnimBonemerangProjectile: @ 0x081151E4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _0811523C - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x20] - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x22] - movs r0, #0x14 - strh r0, [r4, #0x2e] - ldr r5, _08115240 - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x32] - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x36] - ldr r0, _08115244 - strh r0, [r4, #0x38] - adds r0, r4, #0 - bl InitAnimArcTranslation - ldr r0, _08115248 - str r0, [r4, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0811523C: .4byte gUnknown_20380D6 -_08115240: .4byte gUnknown_20380D7 -_08115244: .4byte 0x0000FFD8 -_08115248: .4byte AnimBonemerangProjectileStep - thumb_func_end AnimBonemerangProjectile - - thumb_func_start AnimBonemerangProjectileStep -AnimBonemerangProjectileStep: @ 0x0811524C - push {r4, r5, lr} - adds r5, r0, #0 - bl TranslateAnimHorizontalArc - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081152A0 - ldrh r0, [r5, #0x24] - ldrh r1, [r5, #0x20] - adds r0, r0, r1 - movs r1, #0 - strh r0, [r5, #0x20] - ldrh r0, [r5, #0x26] - ldrh r2, [r5, #0x22] - adds r0, r0, r2 - strh r0, [r5, #0x22] - strh r1, [r5, #0x26] - strh r1, [r5, #0x24] - movs r0, #0x14 - strh r0, [r5, #0x2e] - ldr r4, _081152A8 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x32] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x36] - movs r0, #0x28 - strh r0, [r5, #0x38] - adds r0, r5, #0 - bl InitAnimArcTranslation - ldr r0, _081152AC - str r0, [r5, #0x1c] -_081152A0: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081152A8: .4byte gUnknown_20380D6 -_081152AC: .4byte AnimFissureDirtPlumeParticleStep - thumb_func_end AnimBonemerangProjectileStep - - thumb_func_start AnimFissureDirtPlumeParticleStep -AnimFissureDirtPlumeParticleStep: @ 0x081152B0 - push {r4, lr} - adds r4, r0, #0 - bl TranslateAnimHorizontalArc - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081152C4 - adds r0, r4, #0 - bl DestroyAnimSprite -_081152C4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AnimFissureDirtPlumeParticleStep - - thumb_func_start sub_081152CC -sub_081152CC: @ 0x081152CC - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimTarget - ldr r0, _0811532C - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081152EC - ldr r1, _08115330 - ldrh r0, [r1, #4] - rsbs r0, r0, #0 - strh r0, [r1, #4] -_081152EC: - ldr r4, _08115330 - ldrh r0, [r4, #8] - strh r0, [r6, #0x2e] - ldr r5, _08115334 - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #4] - adds r0, r0, r1 - strh r0, [r6, #0x32] - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r4, [r4, #6] - adds r0, r0, r4 - strh r0, [r6, #0x36] - ldr r0, _08115338 - str r0, [r6, #0x1c] - ldr r1, _0811533C - adds r0, r6, #0 - bl StoreSpriteCallbackInData6 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0811532C: .4byte gUnknown_20380D6 -_08115330: .4byte gUnknown_20380BE -_08115334: .4byte gUnknown_20380D7 -_08115338: .4byte sub_080A67B4 -_0811533C: .4byte DestroyAnimSprite - thumb_func_end sub_081152CC - - thumb_func_start AnimDirtScatter -AnimDirtScatter: @ 0x08115340 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldr r4, _081153C0 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord2 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - bl sub_0806F0A4 - movs r4, #0x1f - adds r5, r4, #0 - ands r5, r0 - bl sub_0806F0A4 - ands r4, r0 - adds r1, r5, #0 - cmp r1, #0x10 - ble _08115388 - movs r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_08115388: - lsls r0, r4, #0x10 - asrs r1, r0, #0x10 - cmp r1, #0x10 - ble _08115398 - movs r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_08115398: - ldr r0, _081153C4 - ldrh r0, [r0, #4] - 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, _081153C8 - str r0, [r6, #0x1c] - ldr r1, _081153CC - adds r0, r6, #0 - bl StoreSpriteCallbackInData6 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081153C0: .4byte gUnknown_20380D7 -_081153C4: .4byte gUnknown_20380BE -_081153C8: .4byte sub_080A67B4 -_081153CC: .4byte DestroySpriteAndMatrix - thumb_func_end AnimDirtScatter - - thumb_func_start sub_081153D0 -sub_081153D0: @ 0x081153D0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrh r2, [r5, #4] - lsls r1, r2, #0x16 - lsrs r1, r1, #0x16 - adds r1, #1 - ldr r3, _08115430 - adds r0, r3, #0 - ands r1, r0 - ldr r0, _08115434 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, #4] - ldr r6, _08115438 - movs r1, #0 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _08115444 - ldr r4, _0811543C - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r2, [r6, #2] - adds r0, r0, r2 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r3, [r6, #4] - adds r0, r0, r3 - strh r0, [r5, #0x22] - movs r1, #2 - ldrsh r0, [r6, r1] - movs r2, #1 - rsbs r2, r2, #0 - adds r1, r2, #0 - cmp r0, #0 - ble _0811542A - movs r1, #1 -_0811542A: - strh r1, [r5, #0x2e] - ldr r0, _08115440 - b _08115452 - .align 2, 0 -_08115430: .4byte 0x000003FF -_08115434: .4byte 0xFFFFFC00 -_08115438: .4byte gUnknown_20380BE -_0811543C: .4byte gUnknown_20380D6 -_08115440: .4byte AnimMudSportDirtRising -_08115444: - ldrh r0, [r6, #2] - strh r0, [r5, #0x20] - ldrh r0, [r6, #4] - strh r0, [r5, #0x22] - rsbs r0, r0, #0 - strh r0, [r5, #0x26] - ldr r0, _0811545C -_08115452: - str r0, [r5, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0811545C: .4byte AnimMudSportDirtFalling - thumb_func_end sub_081153D0 - - thumb_func_start AnimMudSportDirtRising -AnimMudSportDirtRising: @ 0x08115460 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x30] - adds r0, #1 - strh r0, [r2, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _0811547E - movs r0, #0 - strh r0, [r2, #0x30] - ldrh r0, [r2, #0x2e] - ldrh r1, [r2, #0x20] - adds r0, r0, r1 - strh r0, [r2, #0x20] -_0811547E: - ldrh r0, [r2, #0x22] - subs r0, #4 - strh r0, [r2, #0x22] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #4 - rsbs r1, r1, #0 - cmp r0, r1 - bge _08115496 - adds r0, r2, #0 - bl DestroyAnimSprite -_08115496: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AnimMudSportDirtRising - - thumb_func_start AnimMudSportDirtFalling -AnimMudSportDirtFalling: @ 0x0811549C - push {lr} - adds r3, r0, #0 - movs r0, #0x2e - ldrsh r1, [r3, r0] - cmp r1, #0 - beq _081154AE - cmp r1, #1 - beq _081154C4 - b _08115506 -_081154AE: - ldrh r0, [r3, #0x26] - adds r0, #4 - strh r0, [r3, #0x26] - lsls r0, r0, #0x10 - cmp r0, #0 - blt _08115506 - strh r1, [r3, #0x26] - ldrh r0, [r3, #0x2e] - adds r0, #1 - strh r0, [r3, #0x2e] - b _08115506 -_081154C4: - ldrh r0, [r3, #0x30] - adds r0, #1 - strh r0, [r3, #0x30] - lsls r0, r0, #0x10 - cmp r0, #0 - ble _08115506 - movs r0, #0 - strh r0, [r3, #0x30] - movs r1, #0x3e - adds r1, r1, r3 - mov ip, r1 - ldrb r2, [r1] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - ldrh r0, [r3, #0x32] - adds r0, #1 - strh r0, [r3, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xa - bne _08115506 - adds r0, r3, #0 - bl DestroyAnimSprite -_08115506: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AnimMudSportDirtFalling - - thumb_func_start sub_0811550C -sub_0811550C: @ 0x0811550C - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _0811552C - adds r1, r0, r1 - ldr r0, _08115530 - movs r3, #0 - ldrsh r0, [r0, r3] - cmp r0, #0 - bne _08115538 - ldr r0, _08115534 - b _0811553A - .align 2, 0 -_0811552C: .4byte gUnknown_3005B60 -_08115530: .4byte gUnknown_20380BE -_08115534: .4byte sub_0811554C -_08115538: - ldr r0, _08115548 -_0811553A: - str r0, [r1] - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_08115548: .4byte sub_08115704 - thumb_func_end sub_0811550C - - thumb_func_start sub_0811554C -sub_0811554C: @ 0x0811554C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _08115570 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #4 - bls _08115566 - b _081156FA -_08115566: - lsls r0, r0, #2 - ldr r1, _08115574 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08115570: .4byte gUnknown_3005B60 -_08115574: .4byte _08115578 -_08115578: @ jump table - .4byte _0811558C @ case 0 - .4byte _08115614 @ case 1 - .4byte _08115624 @ case 2 - .4byte _081156C8 @ case 3 - .4byte _081156DC @ case 4 -_0811558C: - movs r0, #0 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x1c] - ldr r0, _081155B4 - ldrb r0, [r0] - bl GetBattlerSpriteBGPriorityRank - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x1e] - cmp r0, #1 - bne _081155C0 - ldr r0, _081155B8 - ldrh r0, [r0] - strh r0, [r4, #0x20] - ldr r0, _081155BC - b _081155C8 - .align 2, 0 -_081155B4: .4byte gUnknown_20380D6 -_081155B8: .4byte gUnknown_2022ACC -_081155BC: .4byte gUnknown_2022ACE -_081155C0: - ldr r0, _08115604 - ldrh r0, [r0] - strh r0, [r4, #0x20] - ldr r0, _08115608 -_081155C8: - ldrh r0, [r0] - strh r0, [r4, #0x22] - ldr r0, _0811560C - ldrb r0, [r0] - bl GetBattlerYCoordWithElevation - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - subs r1, #0x20 - strh r1, [r4, #0x24] - adds r0, #0x20 - strh r0, [r4, #0x26] - cmp r1, #0 - bge _081155EA - movs r0, #0 - strh r0, [r4, #0x24] -_081155EA: - ldr r2, _08115610 - movs r3, #0x1c - ldrsh r1, [r4, r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - b _081156CE - .align 2, 0 -_08115604: .4byte gUnknown_2022AD0 -_08115608: .4byte gUnknown_2022AD2 -_0811560C: .4byte gUnknown_20380D6 -_08115610: .4byte gUnknown_20205AC -_08115614: - ldrb r0, [r4, #0x1e] - movs r2, #0x24 - ldrsh r1, [r4, r2] - movs r3, #0x26 - ldrsh r2, [r4, r3] - bl sub_08115930 - b _081156CE -_08115624: - ldrh r0, [r4, #0xc] - adds r0, #6 - movs r1, #0x7f - ands r0, r1 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0x10] - adds r0, #1 - strh r0, [r4, #0x10] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - ble _08115646 - movs r0, #0 - strh r0, [r4, #0x10] - ldrh r0, [r4, #0xe] - adds r0, #1 - strh r0, [r4, #0xe] -_08115646: - ldr r1, _08115668 - movs r2, #0xc - ldrsh r0, [r4, r2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - ldrh r3, [r4, #0xe] - adds r2, r0, r3 - strh r2, [r4, #0x12] - movs r1, #0x1e - ldrsh r0, [r4, r1] - cmp r0, #1 - bne _08115670 - ldr r1, _0811566C - b _08115672 - .align 2, 0 -_08115668: .4byte gUnknown_82FA8CC -_0811566C: .4byte gUnknown_2022ACE -_08115670: - ldr r1, _08115694 -_08115672: - ldrh r0, [r4, #0x22] - subs r0, r0, r2 - strh r0, [r1] - movs r2, #0x12 - ldrsh r0, [r4, r2] - cmp r0, #0x3f - ble _081156FA - ldrh r0, [r4, #0x24] - movs r1, #0x78 - subs r2, r1, r0 - strh r2, [r4, #0x12] - movs r3, #0x1e - ldrsh r0, [r4, r3] - cmp r0, #1 - bne _0811569C - ldr r1, _08115698 - b _0811569E - .align 2, 0 -_08115694: .4byte gUnknown_2022AD2 -_08115698: .4byte gUnknown_2022ACE -_0811569C: - ldr r1, _081156C0 -_0811569E: - ldrh r0, [r4, #0x22] - subs r0, r0, r2 - strh r0, [r1] - ldr r2, _081156C4 - movs r1, #0x1c - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r2, [r1, #0x20] - movs r3, #0x88 - lsls r3, r3, #1 - adds r0, r3, #0 - subs r0, r0, r2 - strh r0, [r1, #0x24] - b _081156CE - .align 2, 0 -_081156C0: .4byte gUnknown_2022AD2 -_081156C4: .4byte gUnknown_20205AC -_081156C8: - ldr r1, _081156D8 - movs r0, #3 - strb r0, [r1, #0x15] -_081156CE: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _081156FA - .align 2, 0 -_081156D8: .4byte gUnknown_20397C8 -_081156DC: - adds r0, r2, #0 - bl DestroyAnimVisualTask - ldr r2, _08115700 - movs r0, #0x1c - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_081156FA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08115700: .4byte gUnknown_20205AC - thumb_func_end sub_0811554C - - thumb_func_start sub_08115704 -sub_08115704: @ 0x08115704 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r0, #0 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08115744 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - adds r3, r1, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r2, #4 - orrs r0, r2 - strb r0, [r3] - movs r4, #0 - strh r4, [r1, #0x24] - strh r4, [r1, #0x26] - ldr r0, _08115748 - ldrb r0, [r0] - bl GetBattlerSpriteBGPriorityRank - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08115750 - ldr r0, _0811574C - b _08115752 - .align 2, 0 -_08115744: .4byte gUnknown_20205AC -_08115748: .4byte gUnknown_20380D6 -_0811574C: .4byte gUnknown_2022ACE -_08115750: - ldr r0, _08115760 -_08115752: - strh r4, [r0] - adds r0, r5, #0 - bl DestroyAnimVisualTask - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08115760: .4byte gUnknown_2022AD2 - thumb_func_end sub_08115704 - - thumb_func_start sub_08115764 -sub_08115764: @ 0x08115764 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _08115784 - adds r1, r0, r1 - ldr r0, _08115788 - movs r3, #0 - ldrsh r0, [r0, r3] - cmp r0, #0 - bne _08115790 - ldr r0, _0811578C - b _08115792 - .align 2, 0 -_08115784: .4byte gUnknown_3005B60 -_08115788: .4byte gUnknown_20380BE -_0811578C: .4byte sub_081157A4 -_08115790: - ldr r0, _081157A0 -_08115792: - str r0, [r1] - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_081157A0: .4byte sub_08115828 - thumb_func_end sub_08115764 - - thumb_func_start sub_081157A4 -sub_081157A4: @ 0x081157A4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _081157C4 - adds r4, r0, r1 - movs r0, #8 - ldrsh r5, [r4, r0] - cmp r5, #0 - beq _081157C8 - cmp r5, #1 - beq _0811581C - b _08115822 - .align 2, 0 -_081157C4: .4byte gUnknown_3005B60 -_081157C8: - movs r0, #0 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x1c] - ldr r3, _08115818 - movs r0, #0x1c - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - movs r0, #0x1c - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r5, [r0, #0x24] - movs r1, #0x1c - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrh r2, [r1, #0x22] - movs r0, #0xa0 - subs r0, r0, r2 - strh r0, [r1, #0x26] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _08115822 - .align 2, 0 -_08115818: .4byte gUnknown_20205AC -_0811581C: - adds r0, r2, #0 - bl DestroyAnimVisualTask -_08115822: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_081157A4 - - thumb_func_start sub_08115828 -sub_08115828: @ 0x08115828 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _0811584C - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #4 - bhi _0811592A - lsls r0, r0, #2 - ldr r1, _08115850 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0811584C: .4byte gUnknown_3005B60 -_08115850: .4byte _08115854 -_08115854: @ jump table - .4byte _08115868 @ case 0 - .4byte _081158BC @ case 1 - .4byte _081158CA @ case 2 - .4byte _081158E4 @ case 3 - .4byte _08115924 @ case 4 -_08115868: - movs r0, #0 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x1c] - ldr r0, _0811588C - ldrb r0, [r0] - bl GetBattlerSpriteBGPriorityRank - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x1e] - cmp r0, #1 - bne _08115894 - ldr r0, _08115890 - b _08115896 - .align 2, 0 -_0811588C: .4byte gUnknown_20380D6 -_08115890: .4byte gUnknown_2022ACC -_08115894: - ldr r0, _081158B4 -_08115896: - ldrh r0, [r0] - strh r0, [r4, #0x20] - ldr r0, _081158B8 - ldrb r0, [r0] - bl GetBattlerYCoordWithElevation - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - subs r1, #0x20 - strh r1, [r4, #0x24] - adds r0, #0x20 - strh r0, [r4, #0x26] - b _08115912 - .align 2, 0 -_081158B4: .4byte gUnknown_2022AD0 -_081158B8: .4byte gUnknown_20380D6 -_081158BC: - ldrb r0, [r4, #0x1e] - movs r1, #0x26 - ldrsh r2, [r4, r1] - movs r1, #0 - bl sub_08115930 - b _08115912 -_081158CA: - ldr r2, _081158E0 - movs r0, #0x1c - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0x60 - strh r1, [r0, #0x26] - b _08115912 - .align 2, 0 -_081158E0: .4byte gUnknown_20205AC -_081158E4: - ldr r2, _0811591C - movs r0, #0x1c - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x26] - subs r1, #8 - strh r1, [r0, #0x26] - movs r0, #0x1c - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0x26 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _0811592A - ldr r1, _08115920 - movs r0, #3 - strb r0, [r1, #0x15] -_08115912: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _0811592A - .align 2, 0 -_0811591C: .4byte gUnknown_20205AC -_08115920: .4byte gUnknown_20397C8 -_08115924: - adds r0, r2, #0 - bl DestroyAnimVisualTask -_0811592A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08115828 - - thumb_func_start sub_08115930 -sub_08115930: @ 0x08115930 - push {r4, r5, r6, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r4, r2, #0x10 - cmp r0, #1 - bne _08115954 - ldr r0, _0811594C - ldrh r3, [r0] - ldr r0, _08115950 - b _0811595A - .align 2, 0 -_0811594C: .4byte gUnknown_2022ACC -_08115950: .4byte 0x04000014 -_08115954: - ldr r0, _081159E0 - ldrh r3, [r0] - ldr r0, _081159E4 -_0811595A: - str r0, [sp] - lsls r0, r1, #0x10 - cmp r0, #0 - bge _08115964 - movs r1, #0 -_08115964: - lsls r2, r1, #0x10 - lsls r0, r4, #0x10 - asrs r4, r0, #0x10 - cmp r2, r0 - bge _08115990 - ldr r5, _081159E8 - movs r0, #0xf0 - lsls r0, r0, #3 - adds r6, r5, r0 -_08115976: - asrs r2, r2, #0x10 - lsls r1, r2, #1 - adds r0, r1, r5 - strh r3, [r0] - adds r1, r1, r6 - strh r3, [r1] - adds r2, #1 - lsls r2, r2, #0x10 - lsrs r1, r2, #0x10 - lsls r2, r1, #0x10 - asrs r0, r2, #0x10 - cmp r0, r4 - blt _08115976 -_08115990: - lsls r1, r1, #0x10 - asrs r0, r1, #0x10 - cmp r0, #0x9f - bgt _081159BE - ldr r4, _081159E8 - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - adds r3, r0, #0 - adds r3, #0xf0 - movs r0, #0xf0 - lsls r0, r0, #3 - adds r5, r4, r0 -_081159A8: - asrs r2, r1, #0x10 - lsls r1, r2, #1 - adds r0, r1, r4 - strh r3, [r0] - adds r1, r1, r5 - strh r3, [r1] - adds r2, #1 - lsls r1, r2, #0x10 - asrs r0, r1, #0x10 - cmp r0, #0x9f - ble _081159A8 -_081159BE: - ldr r0, _081159EC - str r0, [sp, #4] - mov r1, sp - movs r2, #0 - movs r0, #1 - strb r0, [r1, #8] - mov r0, sp - strb r2, [r0, #9] - ldr r0, [sp] - ldr r1, [sp, #4] - ldr r2, [sp, #8] - bl ScanlineEffect_SetParams - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081159E0: .4byte gUnknown_2022AD0 -_081159E4: .4byte 0x04000018 -_081159E8: .4byte gUnknown_20388C8 -_081159EC: .4byte 0xA2600001 - thumb_func_end sub_08115930 - - thumb_func_start AnimFissureDirtPlumeParticle -AnimFissureDirtPlumeParticle: @ 0x081159F0 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldr r0, _08115A04 - movs r2, #0 - ldrsh r1, [r0, r2] - adds r7, r0, #0 - cmp r1, #0 - bne _08115A0C - ldr r0, _08115A08 - b _08115A0E - .align 2, 0 -_08115A04: .4byte gUnknown_20380BE -_08115A08: .4byte gUnknown_20380D6 -_08115A0C: - ldr r0, _08115A70 -_08115A0E: - ldrb r4, [r0] - movs r6, #0x18 - adds r1, r7, #0 - movs r2, #2 - ldrsh r0, [r1, r2] - cmp r0, #1 - bne _08115A2A - rsbs r0, r6, #0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - movs r2, #4 - ldrsh r0, [r1, r2] - rsbs r0, r0, #0 - strh r0, [r1, #4] -_08115A2A: - adds r0, r4, #0 - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r6 - strh r0, [r5, #0x20] - adds r0, r4, #0 - bl GetBattlerYCoordWithElevation - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #0x1e - strh r0, [r5, #0x22] - ldrh r1, [r7, #0xa] - strh r1, [r5, #0x2e] - ldrh r1, [r7, #4] - ldrh r2, [r5, #0x20] - adds r1, r1, r2 - strh r1, [r5, #0x32] - ldrh r1, [r7, #6] - adds r0, r0, r1 - strh r0, [r5, #0x36] - ldrh r0, [r7, #8] - strh r0, [r5, #0x38] - adds r0, r5, #0 - bl InitAnimArcTranslation - ldr r0, _08115A74 - str r0, [r5, #0x1c] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08115A70: .4byte gUnknown_20380D7 -_08115A74: .4byte sub_08115A78 - thumb_func_end AnimFissureDirtPlumeParticle - - thumb_func_start sub_08115A78 -sub_08115A78: @ 0x08115A78 - push {r4, lr} - adds r4, r0, #0 - bl TranslateAnimHorizontalArc - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08115A8C - adds r0, r4, #0 - bl DestroyAnimSprite -_08115A8C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08115A78 - - thumb_func_start AnimDigDirtMound -AnimDigDirtMound: @ 0x08115A94 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r0, _08115AA8 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08115AB0 - ldr r0, _08115AAC - b _08115AB2 - .align 2, 0 -_08115AA8: .4byte gUnknown_20380BE -_08115AAC: .4byte gUnknown_20380D6 -_08115AB0: - ldr r0, _08115B10 -_08115AB2: - ldrb r5, [r0] - adds r0, r5, #0 - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08115B14 - adds r0, r0, r2 - ldr r4, _08115B18 - movs r3, #2 - ldrsh r1, [r4, r3] - lsls r1, r1, #5 - adds r0, r0, r1 - strh r0, [r6, #0x20] - adds r0, r5, #0 - bl GetBattlerYCoordWithElevation - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #0x20 - strh r0, [r6, #0x22] - ldrh r2, [r6, #4] - lsls r1, r2, #0x16 - lsrs r1, r1, #0x16 - movs r3, #2 - ldrsh r0, [r4, r3] - lsls r0, r0, #3 - adds r1, r1, r0 - ldr r3, _08115B1C - adds r0, r3, #0 - ands r1, r0 - ldr r0, _08115B20 - ands r0, r2 - orrs r0, r1 - strh r0, [r6, #4] - ldr r1, _08115B24 - adds r0, r6, #0 - bl StoreSpriteCallbackInData6 - ldrh r0, [r4, #4] - strh r0, [r6, #0x2e] - ldr r0, _08115B28 - str r0, [r6, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08115B10: .4byte gUnknown_20380D7 -_08115B14: .4byte 0x0000FFF0 -_08115B18: .4byte gUnknown_20380BE -_08115B1C: .4byte 0x000003FF -_08115B20: .4byte 0xFFFFFC00 -_08115B24: .4byte DestroyAnimSprite -_08115B28: .4byte WaitAnimForDuration - thumb_func_end AnimDigDirtMound - - thumb_func_start sub_08115B2C -sub_08115B2C: @ 0x08115B2C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _08115B50 - adds r4, r0, r1 - ldr r0, _08115B54 - ldrh r2, [r0, #2] - movs r3, #2 - ldrsh r1, [r0, r3] - adds r6, r0, #0 - cmp r1, #0 - beq _08115B58 - adds r0, r2, #3 - b _08115B64 - .align 2, 0 -_08115B50: .4byte gUnknown_3005B60 -_08115B54: .4byte gUnknown_20380BE -_08115B58: - ldr r0, _08115B84 - ldrh r0, [r0] - movs r1, #0xa - bl __udivsi3 - adds r0, #3 -_08115B64: - strh r0, [r4, #0x26] - strh r0, [r4, #0x24] - adds r1, r6, #0 - ldrh r0, [r1, #4] - strh r0, [r4, #0xe] - movs r2, #0 - ldrsh r0, [r1, r2] - cmp r0, #4 - beq _08115B90 - cmp r0, #5 - bne _08115BD0 - ldr r0, _08115B88 - ldrh r0, [r0] - strh r0, [r4, #0x22] - ldr r0, _08115B8C - b _08115BEE - .align 2, 0 -_08115B84: .4byte gUnknown_20380A8 -_08115B88: .4byte gUnknown_2022AD4 -_08115B8C: .4byte sub_08115BFC -_08115B90: - movs r0, #0 - strh r0, [r4, #0x22] - movs r5, #0 -_08115B96: - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08115BC0 - movs r3, #0x22 - ldrsh r0, [r4, r3] - adds r0, #9 - lsls r0, r0, #1 - adds r1, r4, #0 - adds r1, #8 - adds r1, r1, r0 - ldr r0, _08115BCC - adds r0, r5, r0 - ldrb r0, [r0] - strh r0, [r1] - ldrh r0, [r4, #0x22] - adds r0, #1 - strh r0, [r4, #0x22] -_08115BC0: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #3 - bls _08115B96 - b _08115BEC - .align 2, 0 -_08115BCC: .4byte gUnknown_2023E88 -_08115BD0: - ldrb r0, [r6] - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x1a] - cmp r0, #0xff - bne _08115BE8 - adds r0, r5, #0 - bl DestroyAnimVisualTask - b _08115BF0 -_08115BE8: - movs r0, #1 - strh r0, [r4, #0x22] -_08115BEC: - ldr r0, _08115BF8 -_08115BEE: - str r0, [r4] -_08115BF0: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08115BF8: .4byte sub_08115CF4 - thumb_func_end sub_08115B2C - - thumb_func_start sub_08115BFC -sub_08115BFC: @ 0x08115BFC - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _08115C20 - adds r3, r0, r1 - movs r0, #8 - ldrsh r1, [r3, r0] - cmp r1, #1 - beq _08115C80 - cmp r1, #1 - bgt _08115C24 - cmp r1, #0 - beq _08115C2A - b _08115CEC - .align 2, 0 -_08115C20: .4byte gUnknown_3005B60 -_08115C24: - cmp r1, #2 - beq _08115CE0 - b _08115CEC -_08115C2A: - ldrh r0, [r3, #0xa] - adds r0, #1 - strh r0, [r3, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _08115CEC - strh r1, [r3, #0xa] - ldrh r1, [r3, #0xc] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08115C54 - ldr r1, _08115C50 - ldrh r0, [r3, #0x26] - ldrh r2, [r3, #0x22] - adds r0, r0, r2 - strh r0, [r1] - b _08115C5E - .align 2, 0 -_08115C50: .4byte gUnknown_2022AD4 -_08115C54: - ldr r0, _08115C7C - ldrh r1, [r3, #0x22] - ldrh r2, [r3, #0x26] - subs r1, r1, r2 - strh r1, [r0] -_08115C5E: - ldrh r0, [r3, #0xc] - adds r0, #1 - strh r0, [r3, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0xe - ldrsh r1, [r3, r2] - cmp r0, r1 - bne _08115CEC - movs r0, #0 - strh r0, [r3, #0xc] - ldrh r0, [r3, #0x24] - subs r0, #1 - strh r0, [r3, #0x24] - b _08115CD4 - .align 2, 0 -_08115C7C: .4byte gUnknown_2022AD4 -_08115C80: - ldrh r0, [r3, #0xa] - adds r0, #1 - strh r0, [r3, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _08115CEC - movs r0, #0 - strh r0, [r3, #0xa] - ldrh r0, [r3, #0xc] - ands r1, r0 - cmp r1, #0 - bne _08115CAC - ldr r1, _08115CA8 - ldrh r0, [r3, #0x24] - ldrh r2, [r3, #0x22] - adds r0, r0, r2 - strh r0, [r1] - b _08115CB6 - .align 2, 0 -_08115CA8: .4byte gUnknown_2022AD4 -_08115CAC: - ldr r0, _08115CDC - ldrh r1, [r3, #0x22] - ldrh r2, [r3, #0x24] - subs r1, r1, r2 - strh r1, [r0] -_08115CB6: - ldrh r0, [r3, #0xc] - adds r0, #1 - strh r0, [r3, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - bne _08115CEC - movs r0, #0 - strh r0, [r3, #0xc] - ldrh r0, [r3, #0x24] - subs r0, #1 - strh r0, [r3, #0x24] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08115CEC -_08115CD4: - ldrh r0, [r3, #8] - adds r0, #1 - strh r0, [r3, #8] - b _08115CEC - .align 2, 0 -_08115CDC: .4byte gUnknown_2022AD4 -_08115CE0: - ldr r1, _08115CF0 - ldrh r0, [r3, #0x22] - strh r0, [r1] - adds r0, r2, #0 - bl DestroyAnimVisualTask -_08115CEC: - pop {r0} - bx r0 - .align 2, 0 -_08115CF0: .4byte gUnknown_2022AD4 - thumb_func_end sub_08115BFC - - thumb_func_start sub_08115CF4 -sub_08115CF4: @ 0x08115CF4 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #3 - ldr r1, _08115D18 - adds r4, r0, r1 - movs r0, #8 - ldrsh r5, [r4, r0] - cmp r5, #1 - beq _08115D54 - cmp r5, #1 - bgt _08115D1C - cmp r5, #0 - beq _08115D22 - b _08115DCE - .align 2, 0 -_08115D18: .4byte gUnknown_3005B60 -_08115D1C: - cmp r5, #2 - beq _08115D90 - b _08115DCE -_08115D22: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _08115DCE - strh r5, [r4, #0xa] - adds r0, r4, #0 - bl sub_08115DD8 - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0xe - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _08115DCE - strh r5, [r4, #0xc] - ldrh r0, [r4, #0x24] - subs r0, #1 - strh r0, [r4, #0x24] - b _08115D88 -_08115D54: - ldrh r0, [r4, #0xa] - adds r0, #1 - movs r5, #0 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _08115DCE - strh r5, [r4, #0xa] - adds r0, r4, #0 - bl sub_08115DD8 - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - bne _08115DCE - strh r5, [r4, #0xc] - ldrh r0, [r4, #0x24] - subs r0, #1 - strh r0, [r4, #0x24] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08115DCE -_08115D88: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _08115DCE -_08115D90: - movs r2, #0 - movs r7, #0x22 - ldrsh r0, [r4, r7] - cmp r2, r0 - bge _08115DC8 - ldr r0, _08115DD4 - mov ip, r0 - adds r5, r4, #0 - adds r5, #8 - movs r6, #0 -_08115DA4: - adds r0, r2, #0 - adds r0, #9 - lsls r0, r0, #1 - adds r0, r5, r0 - movs r7, #0 - ldrsh r1, [r0, r7] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, ip - strh r6, [r0, #0x24] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - movs r1, #0x22 - ldrsh r0, [r4, r1] - cmp r2, r0 - blt _08115DA4 -_08115DC8: - adds r0, r3, #0 - bl DestroyAnimVisualTask -_08115DCE: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08115DD4: .4byte gUnknown_20205AC - thumb_func_end sub_08115CF4 - - thumb_func_start sub_08115DD8 -sub_08115DD8: @ 0x08115DD8 - push {r4, r5, r6, r7, lr} - adds r3, r0, #0 - ldrh r1, [r3, #0xc] - movs r4, #1 - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - bne _08115E00 - movs r0, #0x24 - ldrsh r1, [r3, r0] - lsrs r0, r1, #0x1f - adds r1, r1, r0 - asrs r1, r1, #1 - ldrh r2, [r3, #0x24] - adds r0, r4, #0 - ands r0, r2 - adds r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - b _08115E10 -_08115E00: - movs r1, #0x24 - ldrsh r0, [r3, r1] - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - rsbs r0, r0, #0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_08115E10: - movs r2, #0 - movs r7, #0x22 - ldrsh r0, [r3, r7] - cmp r2, r0 - bge _08115E44 - ldr r6, _08115E4C - adds r5, r3, #0 - adds r5, #8 -_08115E20: - adds r0, r2, #0 - adds r0, #9 - lsls r0, r0, #1 - adds r0, r5, r0 - movs r7, #0 - ldrsh r1, [r0, r7] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - strh r4, [r0, #0x24] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - movs r1, #0x22 - ldrsh r0, [r3, r1] - cmp r2, r0 - blt _08115E20 -_08115E44: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08115E4C: .4byte gUnknown_20205AC - thumb_func_end sub_08115DD8 - - thumb_func_start AnimTask_IsPowerOver99 -AnimTask_IsPowerOver99: @ 0x08115E50 - push {lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r3, _08115E70 - movs r2, #0 - ldr r0, _08115E74 - ldrh r0, [r0] - cmp r0, #0x63 - bls _08115E64 - movs r2, #1 -_08115E64: - strh r2, [r3, #0x1e] - adds r0, r1, #0 - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_08115E70: .4byte gUnknown_20380BE -_08115E74: .4byte gUnknown_20380A8 - thumb_func_end AnimTask_IsPowerOver99 - - thumb_func_start sub_08115E78 -sub_08115E78: @ 0x08115E78 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r2, _08115E90 - ldrh r1, [r2] - movs r0, #1 - ands r0, r1 - adds r6, r2, #0 - cmp r0, #0 - beq _08115E98 - ldr r0, _08115E94 - b _08115E9A - .align 2, 0 -_08115E90: .4byte gUnknown_20380BE -_08115E94: .4byte gUnknown_20380D7 -_08115E98: - ldr r0, _08115F08 -_08115E9A: - ldrb r0, [r0] - adds r5, r0, #0 - movs r1, #0 - ldrsh r0, [r6, r1] - cmp r0, #1 - ble _08115EAA - movs r0, #2 - eors r5, r0 -_08115EAA: - ldr r0, _08115F0C - ldrb r1, [r6, #2] - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _08115F10 - adds r4, r4, r0 - adds r0, r5, #0 - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x20 - subs r1, r1, r0 - ldr r2, _08115F14 - adds r0, r2, #0 - ands r1, r0 - strh r1, [r4, #0xa] - adds r0, r5, #0 - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x40 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - strh r1, [r4, #0xc] - ldr r2, _08115F18 - ldrh r0, [r4, #0xa] - strh r0, [r2] - ldr r0, _08115F1C - strh r1, [r0] - ldrh r0, [r6, #4] - strh r0, [r4, #0xe] - adds r0, r7, #0 - bl DestroyAnimVisualTask - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08115F08: .4byte gUnknown_20380D6 -_08115F0C: .4byte sub_08115F20 -_08115F10: .4byte gUnknown_3005B60 -_08115F14: .4byte 0x000001FF -_08115F18: .4byte gUnknown_2022AD4 -_08115F1C: .4byte gUnknown_2022AD6 - thumb_func_end sub_08115E78 - - thumb_func_start sub_08115F20 -sub_08115F20: @ 0x08115F20 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #3 - ldr r1, _08115F50 - adds r2, r0, r1 - ldr r0, _08115F54 - movs r4, #0xe - ldrsh r1, [r0, r4] - movs r4, #0xe - ldrsh r0, [r2, r4] - cmp r1, r0 - bne _08115F60 - ldr r0, _08115F58 - movs r1, #0 - strh r1, [r0] - ldr r0, _08115F5C - strh r1, [r0] - adds r0, r3, #0 - bl DestroyTask - b _08115F6C - .align 2, 0 -_08115F50: .4byte gUnknown_3005B60 -_08115F54: .4byte gUnknown_20380BE -_08115F58: .4byte gUnknown_2022AD4 -_08115F5C: .4byte gUnknown_2022AD6 -_08115F60: - ldr r1, _08115F74 - ldrh r0, [r2, #0xa] - strh r0, [r1] - ldr r1, _08115F78 - ldrh r0, [r2, #0xc] - strh r0, [r1] -_08115F6C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08115F74: .4byte gUnknown_2022AD4 -_08115F78: .4byte gUnknown_2022AD6 - thumb_func_end sub_08115F20 - - thumb_func_start AnimConfusionDuck -AnimConfusionDuck: @ 0x08115F7C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08115FB4 - ldrh r0, [r5] - ldrh r1, [r4, #0x20] - adds r0, r0, r1 - strh r0, [r4, #0x20] - ldrh r0, [r5, #2] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] - ldrh r0, [r5, #4] - strh r0, [r4, #0x2e] - ldr r0, _08115FB8 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _08115FBC - ldrh r0, [r5, #6] - rsbs r0, r0, #0 - strh r0, [r4, #0x30] - movs r0, #1 - strh r0, [r4, #0x36] - b _08115FCA - .align 2, 0 -_08115FB4: .4byte gUnknown_20380BE -_08115FB8: .4byte gUnknown_20380D6 -_08115FBC: - ldrh r0, [r5, #6] - strh r0, [r4, #0x30] - strh r1, [r4, #0x36] - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAnim -_08115FCA: - ldr r0, _08115FE0 - ldrh r0, [r0, #8] - strh r0, [r4, #0x34] - ldr r1, _08115FE4 - str r1, [r4, #0x1c] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08115FE0: .4byte gUnknown_20380BE -_08115FE4: .4byte AnimConfusionDuckStep - thumb_func_end AnimConfusionDuck - - thumb_func_start AnimConfusionDuckStep -AnimConfusionDuckStep: @ 0x08115FE8 - 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 _0811601A - ldrb r0, [r4, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #4 - orrs r1, r0 - strb r1, [r4, #5] - b _08116022 -_0811601A: - ldrb r0, [r4, #5] - movs r1, #0xc - orrs r0, r1 - strb r0, [r4, #5] -_08116022: - ldrh r0, [r4, #0x30] - ldrh r1, [r4, #0x2e] - adds r0, r0, r1 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x34 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _08116046 - adds r0, r4, #0 - bl DestroyAnimSprite -_08116046: - pop {r4} - pop {r0} - bx r0 - thumb_func_end AnimConfusionDuckStep - - thumb_func_start AnimSimplePaletteBlend -AnimSimplePaletteBlend: @ 0x0811604C - push {r4, r5, lr} - sub sp, #4 - adds r5, r0, #0 - ldr r4, _08116084 - movs r1, #0 - ldrsh r0, [r4, r1] - bl UnpackSelectedBattleAnimPalettes - movs r1, #2 - ldrsb r1, [r4, r1] - ldrb r2, [r4, #4] - ldrb r3, [r4, #6] - ldrh r4, [r4, #8] - str r4, [sp] - bl BeginNormalPaletteFade - adds r2, r5, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08116088 - str r0, [r5, #0x1c] - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08116084: .4byte gUnknown_20380BE -_08116088: .4byte sub_081160D4 - thumb_func_end AnimSimplePaletteBlend - - thumb_func_start UnpackSelectedBattleAnimPalettes -UnpackSelectedBattleAnimPalettes: @ 0x0811608C - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0xc - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r4, #1 - mov r8, r0 - mov r1, r8 - ands r1, r4 - mov r8, r1 - lsls r0, r0, #0x10 - asrs r1, r0, #0x11 - ands r1, r4 - asrs r2, r0, #0x12 - ands r2, r4 - asrs r3, r0, #0x13 - ands r3, r4 - asrs r6, r0, #0x14 - ands r6, r4 - asrs r5, r0, #0x15 - ands r5, r4 - asrs r0, r0, #0x16 - ands r0, r4 - str r6, [sp] - str r5, [sp, #4] - str r0, [sp, #8] - mov r0, r8 - bl sub_080A6E74 - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end UnpackSelectedBattleAnimPalettes - - thumb_func_start sub_081160D4 -sub_081160D4: @ 0x081160D4 - push {lr} - adds r2, r0, #0 - ldr r0, _081160F0 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081160EA - adds r0, r2, #0 - bl DestroyAnimSprite -_081160EA: - pop {r0} - bx r0 - .align 2, 0 -_081160F0: .4byte gUnknown_2037C74 - thumb_func_end sub_081160D4 - - thumb_func_start sub_081160F4 -sub_081160F4: @ 0x081160F4 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08116140 - ldrh r0, [r4, #2] - strh r0, [r5, #0x2e] - strh r0, [r5, #0x30] - ldrh r0, [r4, #4] - strh r0, [r5, #0x32] - ldrh r0, [r4, #6] - strh r0, [r5, #0x34] - ldrh r0, [r4, #8] - 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 UnpackSelectedBattleAnimPalettes - ldrb r1, [r4, #8] - ldrh r2, [r4, #6] - bl BlendPalettes - adds r2, r5, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08116144 - str r0, [r5, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08116140: .4byte gUnknown_20380BE -_08116144: .4byte sub_08116148 - thumb_func_end sub_081160F4 - - thumb_func_start sub_08116148 -sub_08116148: @ 0x08116148 - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x2e] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r0, #0 - ble _0811615C - subs r0, r1, #1 - strh r0, [r4, #0x2e] - b _081161CC -_0811615C: - ldr r0, _08116178 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081161CC - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08116180 - ldr r0, _0811617C - str r0, [r4, #0x1c] - b _081161CC - .align 2, 0 -_08116178: .4byte gUnknown_2037C74 -_0811617C: .4byte sub_081161D4 -_08116180: - movs r2, #0x3c - ldrsh r0, [r4, r2] - bl UnpackSelectedBattleAnimPalettes - adds r3, r0, #0 - ldrh r1, [r4, #0x30] - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081161A6 - ldrh r1, [r4, #0x36] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrh r2, [r4, #0x34] - adds r0, r3, #0 - bl BlendPalettes - b _081161B4 -_081161A6: - ldrh r1, [r4, #0x3a] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrh r2, [r4, #0x38] - adds r0, r3, #0 - bl BlendPalettes -_081161B4: - ldrh r0, [r4, #0x30] - movs r2, #0x80 - lsls r2, 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, #1 - strh r0, [r4, #0x32] -_081161CC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08116148 - - thumb_func_start sub_081161D4 -sub_081161D4: @ 0x081161D4 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08116200 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081161FA - movs r1, #0x3c - ldrsh r0, [r4, r1] - bl UnpackSelectedBattleAnimPalettes - movs r1, #0 - movs r2, #0 - bl BlendPalettes - adds r0, r4, #0 - bl DestroyAnimSprite -_081161FA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08116200: .4byte gUnknown_2037C74 - thumb_func_end sub_081161D4 - - thumb_func_start sub_08116204 -sub_08116204: @ 0x08116204 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08116248 - ldrh r0, [r1] - ldrh r2, [r4, #0x20] - adds r0, r0, r2 - movs r2, #0 - strh r0, [r4, #0x20] - ldrh r0, [r1, #2] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] - strh r2, [r4, #0x2e] - movs r0, #0xa - strh r0, [r4, #0x30] - movs r0, #8 - strh r0, [r4, #0x32] - movs r0, #0x28 - strh r0, [r4, #0x34] - movs r0, #0x70 - strh r0, [r4, #0x36] - strh r2, [r4, #0x38] - ldr r1, _0811624C - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - ldr r1, _08116250 - str r1, [r4, #0x1c] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08116248: .4byte gUnknown_20380BE -_0811624C: .4byte DestroySpriteAndMatrix -_08116250: .4byte TranslateSpriteInGrowingCircleOverDuration - thumb_func_end sub_08116204 - - thumb_func_start sub_08116254 -sub_08116254: @ 0x08116254 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08116298 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - adds r4, r4, r1 - ldr r3, _0811629C - ldrh r1, [r3] - movs r5, #0 - strh r1, [r4, #8] - ldrh r1, [r3, #2] - strh r1, [r4, #0xa] - ldrh r1, [r3, #4] - strh r1, [r4, #0xc] - ldrh r1, [r3, #6] - strh r1, [r4, #0xe] - ldrh r2, [r3, #8] - strh r2, [r4, #0x10] - ldrh r1, [r3, #0xa] - strh r1, [r4, #0x12] - strh r5, [r4, #0x18] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r1, #0 - bl sub_081162A4 - ldr r0, _081162A0 - str r0, [r4] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08116298: .4byte gUnknown_3005B60 -_0811629C: .4byte gUnknown_20380BE -_081162A0: .4byte sub_081162F4 - thumb_func_end sub_08116254 - - thumb_func_start sub_081162A4 -sub_081162A4: @ 0x081162A4 - push {r4, r5, r6, lr} - sub sp, #4 - adds r5, r1, #0 - adds r6, r2, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - ldr r1, _081162F0 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - adds r4, r4, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - bl UnpackSelectedBattleAnimPalettes - 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, #1 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0x18] - movs r1, #1 - eors r0, r1 - strh r0, [r4, #0x18] - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081162F0: .4byte gUnknown_3005B60 - thumb_func_end sub_081162A4 - - thumb_func_start sub_081162F4 -sub_081162F4: @ 0x081162F4 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - adds r4, r3, #0 - ldr r0, _0811632C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08116356 - ldr r1, _08116330 - lsls r2, r3, #2 - adds r0, r2, r3 - lsls r0, 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 _08116350 - movs r1, #0x18 - ldrsh r0, [r3, r1] - cmp r0, #0 - bne _08116334 - ldrb r1, [r3, #0xe] - ldrb r2, [r3, #0x10] - b _08116338 - .align 2, 0 -_0811632C: .4byte gUnknown_2037C74 -_08116330: .4byte gUnknown_3005B60 -_08116334: - ldrb r1, [r3, #0x10] - ldrb r2, [r3, #0xe] -_08116338: - adds r0, r5, r4 - lsls r0, r0, #3 - adds r0, r0, r6 - movs r3, #0xc - ldrsh r0, [r0, r3] - cmp r0, #1 - bne _08116348 - movs r2, #0 -_08116348: - adds r0, r4, #0 - bl sub_081162A4 - b _08116356 -_08116350: - adds r0, r4, #0 - bl DestroyAnimVisualTask -_08116356: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_081162F4 - - thumb_func_start sub_0811635C -sub_0811635C: @ 0x0811635C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r5, #0 - ldr r3, _08116400 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r3 - ldr r2, _08116404 - ldrh r1, [r2] - strh r1, [r0, #8] - ldrh r1, [r2, #2] - strh r1, [r0, #0xa] - ldrh r1, [r2, #4] - strh r1, [r0, #0xc] - ldrh r1, [r2, #6] - strh r1, [r0, #0xe] - ldrh r1, [r2, #8] - strh r1, [r0, #0x10] - ldrh r1, [r2, #0xa] - strh r1, [r0, #0x12] - strh r5, [r0, #0x18] - movs r4, #0 - ldr r0, _08116408 - ldrb r1, [r0] - mov sb, r3 - mov r8, r2 - cmp r5, r1 - bge _081163C4 - ldr r0, _0811640C - ldrb r3, [r0] - ldr r7, _08116410 - movs r0, #1 - mov ip, r0 - adds r2, r1, #0 -_081163AA: - cmp r4, r3 - beq _081163BE - ldrb r1, [r7] - cmp r4, r1 - beq _081163BE - adds r1, r4, #0 - adds r1, #0x10 - mov r0, ip - lsls r0, r1 - orrs r5, r0 -_081163BE: - adds r4, #1 - cmp r4, r2 - blt _081163AA -_081163C4: - mov r2, r8 - movs r1, #0 - ldrsh r0, [r2, r1] - cmp r0, #1 - bne _081163D2 - movs r0, #0xe - orrs r5, r0 -_081163D2: - lsls r4, r6, #2 - adds r4, r4, r6 - lsls r4, r4, #3 - add r4, sb - lsrs r0, r5, #0x10 - strh r0, [r4, #0x1a] - movs r0, #0xff - ands r5, r0 - strh r5, [r4, #0x1c] - ldrb r2, [r4, #0x10] - adds r0, r6, #0 - movs r1, #0 - bl sub_08116418 - ldr r0, _08116414 - str r0, [r4] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08116400: .4byte gUnknown_3005B60 -_08116404: .4byte gUnknown_20380BE -_08116408: .4byte gUnknown_2023D10 -_0811640C: .4byte gUnknown_20380D6 -_08116410: .4byte gUnknown_20380D7 -_08116414: .4byte sub_08116468 - thumb_func_end sub_0811635C - - thumb_func_start sub_08116418 -sub_08116418: @ 0x08116418 - push {r4, r5, lr} - sub sp, #4 - adds r5, r1, #0 - adds r3, r2, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r1, _08116464 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - adds r4, r4, r1 - ldrh r0, [r4, #0x1a] - lsls r0, r0, #0x10 - ldrh r1, [r4, #0x1c] - orrs r0, r1 - movs r1, #0xa - ldrsb r1, [r4, r1] - ldrh r2, [r4, #0x12] - str r2, [sp] - adds r2, r5, #0 - bl BeginNormalPaletteFade - ldrh r0, [r4, #0xc] - subs r0, #1 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0x18] - movs r1, #1 - eors r0, r1 - strh r0, [r4, #0x18] - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08116464: .4byte gUnknown_3005B60 - thumb_func_end sub_08116418 - - thumb_func_start sub_08116468 -sub_08116468: @ 0x08116468 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - adds r4, r3, #0 - ldr r0, _081164A0 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081164CA - ldr r1, _081164A4 - lsls r2, r3, #2 - adds r0, r2, r3 - lsls r0, 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 _081164C4 - movs r1, #0x18 - ldrsh r0, [r3, r1] - cmp r0, #0 - bne _081164A8 - ldrb r1, [r3, #0xe] - ldrb r2, [r3, #0x10] - b _081164AC - .align 2, 0 -_081164A0: .4byte gUnknown_2037C74 -_081164A4: .4byte gUnknown_3005B60 -_081164A8: - ldrb r1, [r3, #0x10] - ldrb r2, [r3, #0xe] -_081164AC: - adds r0, r5, r4 - lsls r0, r0, #3 - adds r0, r0, r6 - movs r3, #0xc - ldrsh r0, [r0, r3] - cmp r0, #1 - bne _081164BC - movs r2, #0 -_081164BC: - adds r0, r4, #0 - bl sub_08116418 - b _081164CA -_081164C4: - adds r0, r4, #0 - bl DestroyAnimVisualTask -_081164CA: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_08116468 - - thumb_func_start sub_081164D0 -sub_081164D0: @ 0x081164D0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08116514 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - adds r4, r4, r1 - ldr r3, _08116518 - ldrh r1, [r3] - movs r5, #0 - strh r1, [r4, #8] - ldrh r1, [r3, #2] - strh r1, [r4, #0xa] - ldrh r1, [r3, #4] - strh r1, [r4, #0xc] - ldrh r1, [r3, #6] - strh r1, [r4, #0xe] - ldrh r2, [r3, #8] - strh r2, [r4, #0x10] - ldrh r1, [r3, #0xa] - strh r1, [r4, #0x12] - strh r5, [r4, #0x18] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r1, #0 - bl sub_08116520 - ldr r0, _0811651C - str r0, [r4] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08116514: .4byte gUnknown_3005B60 -_08116518: .4byte gUnknown_20380BE -_0811651C: .4byte sub_0811657C - thumb_func_end sub_081164D0 - - thumb_func_start sub_08116520 -sub_08116520: @ 0x08116520 - push {r4, r5, r6, lr} - sub sp, #4 - adds r5, r1, #0 - adds r6, r2, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - ldr r1, _08116578 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - adds r4, r4, r1 - ldrh r0, [r4, #8] - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #0x10 - movs r2, #1 - 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, #1 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0x18] - movs r1, #1 - eors r0, r1 - strh r0, [r4, #0x18] - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08116578: .4byte gUnknown_3005B60 - thumb_func_end sub_08116520 - - thumb_func_start sub_0811657C -sub_0811657C: @ 0x0811657C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - adds r4, r3, #0 - ldr r0, _081165B4 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081165DE - ldr r1, _081165B8 - lsls r2, r3, #2 - adds r0, r2, r3 - lsls r0, 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 _081165D8 - movs r1, #0x18 - ldrsh r0, [r3, r1] - cmp r0, #0 - bne _081165BC - ldrb r1, [r3, #0xe] - ldrb r2, [r3, #0x10] - b _081165C0 - .align 2, 0 -_081165B4: .4byte gUnknown_2037C74 -_081165B8: .4byte gUnknown_3005B60 -_081165BC: - ldrb r1, [r3, #0x10] - ldrb r2, [r3, #0xe] -_081165C0: - adds r0, r5, r4 - lsls r0, r0, #3 - adds r0, r0, r6 - movs r3, #0xc - ldrsh r0, [r0, r3] - cmp r0, #1 - bne _081165D0 - movs r2, #0 -_081165D0: - adds r0, r4, #0 - bl sub_08116520 - b _081165DE -_081165D8: - adds r0, r4, #0 - bl DestroyAnimVisualTask -_081165DE: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_0811657C - - thumb_func_start sub_081165E4 -sub_081165E4: @ 0x081165E4 - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08116644 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - adds r4, r4, r1 - ldr r5, _08116648 - ldrh r0, [r5, #2] - strh r0, [r4, #8] - ldrh r0, [r5, #2] - strh r0, [r4, #0xa] - ldrh r0, [r5, #4] - strh r0, [r4, #0xc] - ldrh r0, [r5, #6] - strh r0, [r4, #0xe] - ldrh r0, [r5, #8] - 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, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #0x10 - movs r1, #1 - lsls r1, r0 - ldrb r3, [r5, #8] - ldrh r0, [r5, #6] - str r0, [sp] - adds r0, r1, #0 - movs r1, #0 - adds r2, r3, #0 - bl BeginNormalPaletteFade - ldr r0, _0811664C - str r0, [r4] - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08116644: .4byte gUnknown_3005B60 -_08116648: .4byte gUnknown_20380BE -_0811664C: .4byte sub_08116650 - thumb_func_end sub_081165E4 - - thumb_func_start sub_08116650 -sub_08116650: @ 0x08116650 - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _08116674 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrh r1, [r4, #8] - movs r2, #8 - ldrsh r0, [r4, r2] - cmp r0, #0 - ble _08116678 - subs r0, r1, #1 - strh r0, [r4, #8] - b _081166FC - .align 2, 0 -_08116674: .4byte gUnknown_3005B60 -_08116678: - ldr r0, _08116694 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081166FC - movs r3, #0xc - ldrsh r0, [r4, r3] - cmp r0, #0 - bne _0811669C - ldr r0, _08116698 - str r0, [r4] - b _081166FC - .align 2, 0 -_08116694: .4byte gUnknown_2037C74 -_08116698: .4byte sub_08116708 -_0811669C: - ldrh r0, [r4, #0x16] - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #0x10 - movs r2, #1 - lsls r2, r0 - ldrh r1, [r4, #0xa] - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081166CA - 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 _081166DA -_081166CA: - ldrb r3, [r4, #0x14] - ldrh r0, [r4, #0x12] - str r0, [sp] - adds r0, r2, #0 - movs r1, #0 - adds r2, r3, #0 - bl BeginNormalPaletteFade -_081166DA: - ldr r0, _08116704 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0xa] - movs r3, #0x80 - lsls r3, r3, #1 - adds r2, r3, #0 - eors r0, r2 - strh r0, [r1, #0xa] - movs r2, #0xff - ands r0, r2 - strh r0, [r1, #8] - ldrh r0, [r1, #0xc] - subs r0, #1 - strh r0, [r1, #0xc] -_081166FC: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08116704: .4byte gUnknown_3005B60 - thumb_func_end sub_08116650 - - thumb_func_start sub_08116708 -sub_08116708: @ 0x08116708 - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _08116758 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _0811674E - ldr r1, _0811675C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r0, [r0, #0x16] - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #0x10 - movs r1, #1 - 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 DestroyAnimVisualTask -_0811674E: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08116758: .4byte gUnknown_2037C74 -_0811675C: .4byte gUnknown_3005B60 - thumb_func_end sub_08116708 - - thumb_func_start sub_08116760 -sub_08116760: @ 0x08116760 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r2, #0 - ldr r0, _081167D8 - ldrb r6, [r0] - ldr r0, _081167DC - ldrb r7, [r0] - ldr r4, _081167E0 - ldrh r1, [r4] - movs r5, #0x80 - lsls r5, r5, #1 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _0811679A - str r2, [sp] - str r2, [sp, #4] - str r2, [sp, #8] - movs r0, #1 - movs r1, #0 - movs r3, #0 - bl sub_080A6E74 - adds r2, r0, #0 -_0811679A: - ldrh r1, [r4, #2] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _081167AC - movs r0, #0x80 - lsls r0, r0, #9 - lsls r0, r6 - orrs r2, r0 -_081167AC: - ldrh r1, [r4, #4] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _081167BE - movs r0, #0x80 - lsls r0, r0, #9 - lsls r0, r7 - orrs r2, r0 -_081167BE: - adds r0, r2, #0 - bl InvertPlttBuffer - mov r0, r8 - bl DestroyAnimVisualTask - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081167D8: .4byte gUnknown_20380D6 -_081167DC: .4byte gUnknown_20380D7 -_081167E0: .4byte gUnknown_20380BE - thumb_func_end sub_08116760 - - thumb_func_start sub_081167E4 -sub_081167E4: @ 0x081167E4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r5, #0 - ldr r1, _081168D8 - lsls r0, r0, #2 - add r0, r8 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08116826 - ldr r1, _081168DC - ldrh r0, [r1] - strh r0, [r4, #0xc] - ldrh r0, [r1, #2] - strh r0, [r4, #0xe] - ldrh r0, [r1, #4] - strh r0, [r4, #0x10] - ldrh r0, [r1, #6] - strh r0, [r4, #0xa] - ldrh r0, [r1, #8] - strh r0, [r4, #0x12] - ldrh r0, [r1, #0xa] - strh r0, [r4, #0x14] - ldrh r0, [r1, #0xc] - strh r0, [r4, #0x16] -_08116826: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - ldr r0, _081168E0 - ldrb r0, [r0] - mov sb, r0 - ldr r0, _081168E4 - ldrb r0, [r0] - mov sl, r0 - ldrh r1, [r4, #0xc] - movs r7, #0x80 - lsls r7, r7, #1 - adds r0, r7, #0 - ands r0, r1 - cmp r0, #0 - beq _08116848 - ldr r5, _081168E8 -_08116848: - movs r6, #1 - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _08116878 - ldr r2, _081168EC - ldr r0, _081168F0 - add r0, sb - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x14 - adds r0, r0, r2 - ldr r0, [r0] - ldrh r0, [r0, #2] - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r6, #0 - lsls r1, r0 - lsls r1, r1, #0x10 - orrs r5, r1 -_08116878: - ldrh r1, [r4, #0xe] - adds r0, r7, #0 - ands r0, r1 - cmp r0, #0 - beq _0811688C - adds r0, r6, #0 - mov r2, sb - lsls r0, r2 - lsls r0, r0, #0x10 - orrs r5, r0 -_0811688C: - ldrh r1, [r4, #0x10] - adds r0, r7, #0 - ands r0, r1 - cmp r0, #0 - beq _081168A0 - adds r0, r6, #0 - mov r1, sl - lsls r0, r1 - lsls r0, r0, #0x10 - orrs r5, r0 -_081168A0: - 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, #8 - ldrsh r1, [r4, r2] - movs r2, #0xa - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _081168CA - adds r0, r5, #0 - bl UnfadePlttBuffer - mov r0, r8 - bl DestroyAnimVisualTask -_081168CA: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081168D8: .4byte gUnknown_3005B60 -_081168DC: .4byte gUnknown_20380BE -_081168E0: .4byte gUnknown_20380D6 -_081168E4: .4byte gUnknown_20380D7 -_081168E8: .4byte 0x0000FFFF -_081168EC: .4byte gUnknown_20205AC -_081168F0: .4byte gUnknown_3005AD0 - thumb_func_end sub_081167E4 - - thumb_func_start sub_081168F4 -sub_081168F4: @ 0x081168F4 - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r1, _08116928 - ldrh r0, [r1] - rsbs r0, r0, #0 - strh r0, [r4, #0x2e] - ldrh r0, [r1, #2] - strh r0, [r4, #0x30] - strh r0, [r4, #0x32] - ldrh r0, [r1, #4] - strh r0, [r4, #0x34] - movs r2, #6 - ldrsh r0, [r1, r2] - cmp r0, #1 - beq _0811693C - cmp r0, #1 - bgt _0811692C - cmp r0, #0 - beq _08116932 - b _08116954 - .align 2, 0 -_08116928: .4byte gUnknown_20380BE -_0811692C: - cmp r0, #2 - beq _08116944 - b _08116954 -_08116932: - ldr r1, _08116938 - b _08116946 - .align 2, 0 -_08116938: .4byte gUnknown_2022AD4 -_0811693C: - ldr r1, _08116940 - b _08116946 - .align 2, 0 -_08116940: .4byte gUnknown_2022AD6 -_08116944: - ldr r1, _08116950 -_08116946: - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - b _0811695C - .align 2, 0 -_08116950: .4byte gUnknown_2021B38 -_08116954: - ldr r1, _0811698C - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 -_0811695C: - movs r0, #0x3a - ldrsh r1, [r4, r0] - movs r2, #0x3c - ldrsh r0, [r4, r2] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrh r0, [r1] - strh r0, [r4, #0x36] - ldr r0, _08116990 - ldrh r0, [r0, #6] - strh r0, [r4, #0x38] - subs r0, #2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bhi _08116980 - bl sub_08116A44 -_08116980: - ldr r0, _08116994 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811698C: .4byte gUnknown_2021B3A -_08116990: .4byte gUnknown_20380BE -_08116994: .4byte sub_08116998 - thumb_func_end sub_081168F4 - - thumb_func_start sub_08116998 -sub_08116998: @ 0x08116998 - push {r4, r5, r6, r7, lr} - adds r3, r0, #0 - ldrh r1, [r3, #0x34] - movs r2, #0x34 - ldrsh r0, [r3, r2] - cmp r0, #0 - ble _081169DA - subs r0, r1, #1 - strh r0, [r3, #0x34] - ldrh r1, [r3, #0x30] - movs r2, #0x30 - ldrsh r0, [r3, r2] - cmp r0, #0 - ble _081169BA - subs r0, r1, #1 - strh r0, [r3, #0x30] - b _08116A32 -_081169BA: - ldrh r0, [r3, #0x32] - strh r0, [r3, #0x30] - movs r0, #0x3a - ldrsh r1, [r3, r0] - movs r2, #0x3c - ldrsh r0, [r3, r2] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrh r0, [r3, #0x2e] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - ldrh r0, [r3, #0x2e] - rsbs r0, r0, #0 - strh r0, [r3, #0x2e] - b _08116A32 -_081169DA: - movs r0, #0x3a - ldrsh r1, [r3, r0] - movs r2, #0x3c - ldrsh r0, [r3, r2] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrh r0, [r3, #0x36] - strh r0, [r1] - ldrh r0, [r3, #0x38] - subs r0, #2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bhi _08116A2C - movs r4, #0 - ldr r5, _08116A38 - ldrb r0, [r5] - cmp r4, r0 - bhs _08116A2C - ldr r2, _08116A3C - mov ip, r2 - ldr r6, _08116A40 - movs r7, #3 - rsbs r7, r7, #0 -_08116A0A: - adds r0, r4, r6 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - add r1, ip - adds r1, #0x3e - ldrb r2, [r1] - adds r0, r7, #0 - ands r0, r2 - strb r0, [r1] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldrb r0, [r5] - cmp r4, r0 - blo _08116A0A -_08116A2C: - adds r0, r3, #0 - bl DestroyAnimSprite -_08116A32: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08116A38: .4byte gUnknown_2023D10 -_08116A3C: .4byte gUnknown_20205AC -_08116A40: .4byte gUnknown_2023E88 - thumb_func_end sub_08116998 - - thumb_func_start sub_08116A44 -sub_08116A44: @ 0x08116A44 - push {r4, r5, r6, lr} - ldr r6, _08116AB8 - ldr r4, _08116ABC - ldr r5, _08116AC0 - ldrb r0, [r5] - adds r0, r0, r4 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - adds r1, #0x3e - ldrb r3, [r1] - movs r2, #3 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r3 - strb r0, [r1] - ldr r3, _08116AC4 - ldrb r0, [r3] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x3e - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - ldr r0, _08116AC8 - movs r1, #8 - ldrsh r0, [r0, r1] - cmp r0, #2 - bne _08116ACC - ldrb r0, [r5] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #2 - orrs r1, r2 - strb r1, [r0] - ldrb r0, [r3] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x3e - ldrb r1, [r0] - b _08116AE8 - .align 2, 0 -_08116AB8: .4byte gUnknown_20205AC -_08116ABC: .4byte gUnknown_2023E88 -_08116AC0: .4byte gUnknown_20380D6 -_08116AC4: .4byte gUnknown_20380D7 -_08116AC8: .4byte gUnknown_20380BE -_08116ACC: - cmp r0, #0 - bne _08116AD4 - ldrb r0, [r5] - b _08116AD6 -_08116AD4: - ldrb r0, [r3] -_08116AD6: - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #2 -_08116AE8: - orrs r1, r2 - strb r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08116A44 - - thumb_func_start sub_08116AF4 -sub_08116AF4: @ 0x08116AF4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08116B34 - lsls r2, r0, #2 - adds r2, r2, r0 - lsls r2, r2, #3 - adds r2, r2, r1 - ldr r3, _08116B38 - ldrh r1, [r3] - strh r1, [r2, #8] - ldrh r1, [r3, #2] - strh r1, [r2, #0xa] - ldrh r1, [r3, #4] - strh r1, [r2, #0xc] - ldrh r1, [r3, #6] - strh r1, [r2, #0xe] - ldrh r1, [r3, #6] - strh r1, [r2, #0x18] - ldr r4, _08116B3C - ldrh r1, [r3] - strh r1, [r4] - ldr r4, _08116B40 - ldrh r1, [r3, #2] - strh r1, [r4] - ldr r1, _08116B44 - str r1, [r2] - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08116B34: .4byte gUnknown_3005B60 -_08116B38: .4byte gUnknown_20380BE -_08116B3C: .4byte gUnknown_2022AD4 -_08116B40: .4byte gUnknown_2022AD6 -_08116B44: .4byte sub_08116B48 - thumb_func_end sub_08116AF4 - - thumb_func_start sub_08116B48 -sub_08116B48: @ 0x08116B48 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _08116B78 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r3, r0, r1 - ldrh r2, [r3, #0xe] - movs r4, #0xe - ldrsh r0, [r3, r4] - mov ip, r1 - cmp r0, #0 - bne _08116BCE - ldr r0, _08116B7C - ldrh r2, [r0] - movs r7, #8 - ldrsh r1, [r3, r7] - adds r6, r0, #0 - cmp r2, r1 - bne _08116B80 - ldrh r0, [r3, #8] - rsbs r0, r0, #0 - b _08116B82 - .align 2, 0 -_08116B78: .4byte gUnknown_3005B60 -_08116B7C: .4byte gUnknown_2022AD4 -_08116B80: - ldrh r0, [r3, #8] -_08116B82: - strh r0, [r6] - ldr r2, _08116BA0 - ldrh r3, [r2] - lsls r1, r5, #2 - adds r0, r1, r5 - lsls r0, r0, #3 - mov r7, ip - adds r4, r0, r7 - movs r7, #0xa - ldrsh r0, [r4, r7] - cmn r3, r0 - bne _08116BA4 - movs r0, #0 - b _08116BA8 - .align 2, 0 -_08116BA0: .4byte gUnknown_2022AD6 -_08116BA4: - ldrh r0, [r4, #0xa] - rsbs r0, r0, #0 -_08116BA8: - strh r0, [r2] - adds r0, r1, r5 - lsls r0, r0, #3 - add r0, ip - ldrh r1, [r0, #0x18] - strh r1, [r0, #0xe] - ldrh r1, [r0, #0xc] - subs r1, #1 - strh r1, [r0, #0xc] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0 - bne _08116BD2 - strh r1, [r6] - strh r1, [r2] - adds r0, r5, #0 - bl DestroyAnimVisualTask - b _08116BD2 -_08116BCE: - subs r0, r2, #1 - strh r0, [r3, #0xe] -_08116BD2: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08116B48 - - thumb_func_start sub_08116BD8 -sub_08116BD8: @ 0x08116BD8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08116BF8 - ldrb r1, [r4, #6] - bl StartSpriteAffineAnim - movs r1, #4 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08116BFC - adds r0, r5, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - b _08116C04 - .align 2, 0 -_08116BF8: .4byte gUnknown_20380BE -_08116BFC: - adds r0, r5, #0 - movs r1, #1 - bl InitSpritePosToAnimTarget -_08116C04: - ldr r0, _08116C18 - str r0, [r5, #0x1c] - ldr r1, _08116C1C - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08116C18: .4byte RunStoredCallbackWhenAffineAnimEnds -_08116C1C: .4byte DestroyAnimSprite - thumb_func_end sub_08116BD8 - - thumb_func_start sub_08116C20 -sub_08116C20: @ 0x08116C20 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08116C40 - ldrb r1, [r4, #6] - bl StartSpriteAffineAnim - movs r1, #4 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08116C44 - adds r0, r5, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - b _08116C4C - .align 2, 0 -_08116C40: .4byte gUnknown_20380BE -_08116C44: - adds r0, r5, #0 - movs r1, #1 - bl InitSpritePosToAnimTarget -_08116C4C: - ldr r0, _08116C64 - ldrh r0, [r0, #8] - strh r0, [r5, #0x2e] - ldr r0, _08116C68 - str r0, [r5, #0x1c] - ldr r1, _08116C6C - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08116C64: .4byte gUnknown_20380BE -_08116C68: .4byte RunStoredCallbackWhenAffineAnimEnds -_08116C6C: .4byte sub_0810EB18 - thumb_func_end sub_08116C20 - - thumb_func_start sub_08116C70 -sub_08116C70: @ 0x08116C70 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08116CA0 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08116C94 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08116C94 - ldr r1, _08116CA4 - ldrh r0, [r1, #2] - rsbs r0, r0, #0 - strh r0, [r1, #2] -_08116C94: - adds r0, r4, #0 - bl sub_08116BD8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08116CA0: .4byte gUnknown_20380D6 -_08116CA4: .4byte gUnknown_20380BE - thumb_func_end sub_08116C70 - - thumb_func_start sub_08116CA8 -sub_08116CA8: @ 0x08116CA8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08116CE0 - movs r0, #2 - ldrsh r1, [r5, r0] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _08116CC4 - bl sub_0806F0A4 - movs r1, #3 - ands r1, r0 - strh r1, [r5, #2] -_08116CC4: - ldrb r1, [r5, #2] - adds r0, r4, #0 - bl StartSpriteAffineAnim - movs r1, #0 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _08116CE4 - adds r0, r4, #0 - movs r1, #0 - bl InitSpritePosToAnimAttacker - b _08116CEC - .align 2, 0 -_08116CE0: .4byte gUnknown_20380BE -_08116CE4: - adds r0, r4, #0 - movs r1, #0 - bl InitSpritePosToAnimTarget -_08116CEC: - bl sub_0806F0A4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x30 - bl __umodsi3 - ldr r1, _08116D30 - adds r0, r0, r1 - ldrh r1, [r4, #0x24] - adds r0, r0, r1 - strh r0, [r4, #0x24] - bl sub_0806F0A4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x18 - bl __umodsi3 - ldr r1, _08116D34 - adds r0, r0, r1 - ldrh r1, [r4, #0x26] - adds r0, r0, r1 - strh r0, [r4, #0x26] - ldr r1, _08116D38 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _08116D3C - str r0, [r4, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08116D30: .4byte 0x0000FFE8 -_08116D34: .4byte 0x0000FFF4 -_08116D38: .4byte DestroySpriteAndMatrix -_08116D3C: .4byte RunStoredCallbackWhenAffineAnimEnds - thumb_func_end sub_08116CA8 - - thumb_func_start sub_08116D40 -sub_08116D40: @ 0x08116D40 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08116DA0 - ldrb r0, [r5] - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x2e] - ldr r2, _08116DA4 - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x24] - ldrh r0, [r0, #0x20] - adds r1, r1, r0 - strh r1, [r4, #0x20] - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x26] - ldrh r0, [r0, #0x22] - adds r1, r1, r0 - strh r1, [r4, #0x22] - ldrh r0, [r5, #2] - strh r0, [r4, #0x24] - ldrh r0, [r5, #4] - strh r0, [r4, #0x26] - ldrb r1, [r5, #6] - adds r0, r4, #0 - bl StartSpriteAffineAnim - ldr r1, _08116DA8 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _08116DAC - str r0, [r4, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08116DA0: .4byte gUnknown_20380BE -_08116DA4: .4byte gUnknown_20205AC -_08116DA8: .4byte DestroySpriteAndMatrix -_08116DAC: .4byte RunStoredCallbackWhenAffineAnimEnds - thumb_func_end sub_08116D40 - - thumb_func_start sub_08116DB0 -sub_08116DB0: @ 0x08116DB0 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08116DC8 - movs r1, #4 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08116DCC - adds r0, r4, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - b _08116DD4 - .align 2, 0 -_08116DC8: .4byte gUnknown_20380BE -_08116DCC: - adds r0, r4, #0 - movs r1, #1 - bl InitSpritePosToAnimTarget -_08116DD4: - ldr r0, _08116DEC - ldrh r0, [r0, #6] - strh r0, [r4, #0x2e] - ldr r1, _08116DF0 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _08116DF4 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08116DEC: .4byte gUnknown_20380BE -_08116DF0: .4byte DestroyAnimSprite -_08116DF4: .4byte WaitAnimForDuration - thumb_func_end sub_08116DB0 - - thumb_func_start sub_08116DF8 -sub_08116DF8: @ 0x08116DF8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08116E18 - ldrb r1, [r4, #6] - bl StartSpriteAffineAnim - movs r1, #4 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08116E1C - adds r0, r5, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - b _08116E24 - .align 2, 0 -_08116E18: .4byte gUnknown_20380BE -_08116E1C: - adds r0, r5, #0 - movs r1, #1 - bl InitSpritePosToAnimTarget -_08116E24: - ldr r0, _08116E30 - str r0, [r5, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08116E30: .4byte sub_08116E34 - thumb_func_end sub_08116DF8 - - thumb_func_start sub_08116E34 -sub_08116E34: @ 0x08116E34 - push {lr} - adds r3, r0, #0 - movs r0, #0x3e - adds r0, r0, r3 - mov ip, r0 - ldrb r2, [r0] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - ldrh r0, [r3, #0x2e] - adds r1, r0, #1 - strh r1, [r3, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xc - ble _08116E6A - adds r0, r3, #0 - bl DestroyAnimSprite -_08116E6A: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08116E34 - - thumb_func_start sub_08116E70 -sub_08116E70: @ 0x08116E70 - push {r4, r5, r6, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r4, _08116EB0 - movs r1, #0 - ldrsh r0, [r4, r1] - bl UnpackSelectedBattleAnimPalettes - adds r6, r0, #0 - ldrh r3, [r4] - lsls r3, r3, #0x10 - asrs r0, r3, #0x17 - movs r4, #1 - ands r0, r4 - asrs r1, r3, #0x18 - ands r1, r4 - asrs r2, r3, #0x19 - ands r2, r4 - asrs r3, r3, #0x1a - ands r3, r4 - bl sub_080A6F8C - orrs r6, r0 - adds r0, r5, #0 - adds r1, r6, #0 - bl StartBlendAnimSpriteColor - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08116EB0: .4byte gUnknown_20380BE - thumb_func_end sub_08116E70 - - thumb_func_start sub_08116EB4 -sub_08116EB4: @ 0x08116EB4 - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - mov r1, sp - movs r0, #0xff - strb r0, [r1, #1] - movs r0, #1 - bl UnpackSelectedBattleAnimPalettes - adds r5, r0, #0 - ldr r0, _08116EE0 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #7 - bhi _08116F5E - lsls r0, r0, #2 - ldr r1, _08116EE4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08116EE0: .4byte gUnknown_20380BE -_08116EE4: .4byte _08116EE8 -_08116EE8: @ jump table - .4byte _08116F0A @ case 0 - .4byte _08116F16 @ case 1 - .4byte _08116F08 @ case 2 - .4byte _08116F14 @ case 3 - .4byte _08116F24 @ case 4 - .4byte _08116F3C @ case 5 - .4byte _08116F44 @ case 6 - .4byte _08116F50 @ case 7 -_08116F08: - movs r5, #0 -_08116F0A: - mov r0, sp - ldr r1, _08116F10 - b _08116F1A - .align 2, 0 -_08116F10: .4byte gUnknown_20380D6 -_08116F14: - movs r5, #0 -_08116F16: - mov r0, sp - ldr r1, _08116F20 -_08116F1A: - ldrb r1, [r1] - strb r1, [r0] - b _08116F5E - .align 2, 0 -_08116F20: .4byte gUnknown_20380D7 -_08116F24: - mov r1, sp - ldr r0, _08116F34 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _08116F38 - ldrb r0, [r0] - strb r0, [r1, #1] - b _08116F5E - .align 2, 0 -_08116F34: .4byte gUnknown_20380D6 -_08116F38: .4byte gUnknown_20380D7 -_08116F3C: - mov r1, sp - movs r0, #0xff - strb r0, [r1] - b _08116F5E -_08116F44: - movs r5, #0 - mov r2, sp - ldr r0, _08116F4C - b _08116F56 - .align 2, 0 -_08116F4C: .4byte gUnknown_20380D6 -_08116F50: - movs r5, #0 - mov r2, sp - ldr r0, _08116FA8 -_08116F56: - ldrb r0, [r0] - movs r1, #2 - eors r0, r1 - strb r0, [r2] -_08116F5E: - movs r4, #0 - mov r6, sp -_08116F62: - ldrb r0, [r6] - cmp r4, r0 - beq _08116F8C - ldrb r0, [r6, #1] - cmp r4, r0 - beq _08116F8C - adds r0, r4, #0 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08116F8C - adds r0, r4, #0 - bl sub_080A7074 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x80 - lsls r1, r1, #9 - lsls r1, r0 - orrs r5, r1 -_08116F8C: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _08116F62 - adds r0, r7, #0 - adds r1, r5, #0 - bl StartBlendAnimSpriteColor - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08116FA8: .4byte gUnknown_20380D7 - thumb_func_end sub_08116EB4 - - thumb_func_start AnimTask_SetCamouflageBlend -AnimTask_SetCamouflageBlend: @ 0x08116FAC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _08116FD0 - movs r1, #0 - ldrsh r0, [r0, r1] - bl UnpackSelectedBattleAnimPalettes - adds r2, r0, #0 - ldr r0, _08116FD4 - ldrb r0, [r0] - cmp r0, #9 - bhi _08117082 - lsls r0, r0, #2 - ldr r1, _08116FD8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08116FD0: .4byte gUnknown_20380BE -_08116FD4: .4byte gUnknown_2022C94 -_08116FD8: .4byte _08116FDC -_08116FDC: @ jump table - .4byte _08117004 @ case 0 - .4byte _08117014 @ case 1 - .4byte _08117020 @ case 2 - .4byte _08117030 @ case 3 - .4byte _0811703C @ case 4 - .4byte _0811704C @ case 5 - .4byte _0811705C @ case 6 - .4byte _0811706C @ case 7 - .4byte _0811707C @ case 8 - .4byte _0811707C @ case 9 -_08117004: - ldr r1, _0811700C - ldr r0, _08117010 - b _08117080 - .align 2, 0 -_0811700C: .4byte gUnknown_20380BE -_08117010: .4byte 0x00000B0C -_08117014: - ldr r1, _0811701C - movs r0, #0x9e - lsls r0, r0, #4 - b _08117080 - .align 2, 0 -_0811701C: .4byte gUnknown_20380BE -_08117020: - ldr r1, _08117028 - ldr r0, _0811702C - b _08117080 - .align 2, 0 -_08117028: .4byte gUnknown_20380BE -_0811702C: .4byte 0x00002F1E -_08117030: - ldr r1, _08117038 - movs r0, #0x90 - lsls r0, r0, #7 - b _08117080 - .align 2, 0 -_08117038: .4byte gUnknown_20380BE -_0811703C: - ldr r1, _08117044 - ldr r0, _08117048 - b _08117080 - .align 2, 0 -_08117044: .4byte gUnknown_20380BE -_08117048: .4byte 0x00007ECB -_0811704C: - ldr r1, _08117054 - ldr r0, _08117058 - b _08117080 - .align 2, 0 -_08117054: .4byte gUnknown_20380BE -_08117058: .4byte 0x00007ECB -_0811705C: - ldr r1, _08117064 - ldr r0, _08117068 - b _08117080 - .align 2, 0 -_08117064: .4byte gUnknown_20380BE -_08117068: .4byte 0x00002A16 -_0811706C: - ldr r1, _08117074 - ldr r0, _08117078 - b _08117080 - .align 2, 0 -_08117074: .4byte gUnknown_20380BE -_08117078: .4byte 0x00000D2E -_0811707C: - ldr r1, _08117090 - ldr r0, _08117094 -_08117080: - strh r0, [r1, #8] -_08117082: - adds r0, r4, #0 - adds r1, r2, #0 - bl StartBlendAnimSpriteColor - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08117090: .4byte gUnknown_20380BE -_08117094: .4byte 0x00007FFF - thumb_func_end AnimTask_SetCamouflageBlend - - thumb_func_start AnimTask_BlendParticle -AnimTask_BlendParticle: @ 0x08117098 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081170C0 - ldrh r0, [r0] - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #0x10 - movs r1, #1 - lsls r1, r0 - adds r0, r4, #0 - bl StartBlendAnimSpriteColor - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081170C0: .4byte gUnknown_20380BE - thumb_func_end AnimTask_BlendParticle - - thumb_func_start StartBlendAnimSpriteColor -StartBlendAnimSpriteColor: @ 0x081170C4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _081170FC - lsls r2, r0, #2 - adds r2, r2, r0 - lsls r2, r2, #3 - adds r2, r2, r3 - strh r1, [r2, #8] - lsrs r1, r1, #0x10 - strh r1, [r2, #0xa] - ldr r3, _08117100 - ldrh r1, [r3, #2] - strh r1, [r2, #0xc] - ldrh r1, [r3, #4] - strh r1, [r2, #0xe] - ldrh r1, [r3, #6] - strh r1, [r2, #0x10] - ldrh r1, [r3, #8] - strh r1, [r2, #0x12] - ldrh r1, [r3, #4] - strh r1, [r2, #0x1c] - ldr r1, _08117104 - str r1, [r2] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_081170FC: .4byte gUnknown_3005B60 -_08117100: .4byte gUnknown_20380BE -_08117104: .4byte AnimTask_BlendSpriteColor_Step2 - thumb_func_end StartBlendAnimSpriteColor - - thumb_func_start AnimTask_BlendSpriteColor_Step2 -AnimTask_BlendSpriteColor_Step2: @ 0x08117108 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r6, #0 - ldr r2, _08117188 - lsls r5, r7, #2 - adds r0, r5, r7 - lsls r0, 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 sb, r2 - cmp r1, r0 - bne _0811719E - strh r6, [r3, #0x1a] - movs r0, #8 - ldrsh r4, [r3, r0] - movs r1, #0xa - ldrsh r0, [r3, r1] - lsls r0, r0, #0x10 - orrs r4, r0 - mov r8, r5 - cmp r4, #0 - beq _0811716A - adds r5, r3, #0 -_08117148: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _0811715C - ldrb r2, [r5, #0x1c] - ldrh r3, [r5, #0x12] - adds r0, r6, #0 - movs r1, #0x10 - bl BlendPalette -_0811715C: - adds r0, r6, #0 - adds r0, #0x10 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsrs r4, r4, #1 - cmp r4, #0 - bne _08117148 -_0811716A: - mov r4, r8 - adds r0, r4, r7 - lsls r0, r0, #3 - mov r1, sb - 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 _0811718C - adds r0, #1 - strh r0, [r2, #0x1c] - b _081171A4 - .align 2, 0 -_08117188: .4byte gUnknown_3005B60 -_0811718C: - cmp r3, r1 - ble _08117196 - subs r0, #1 - strh r0, [r2, #0x1c] - b _081171A4 -_08117196: - adds r0, r7, #0 - bl DestroyAnimVisualTask - b _081171A4 -_0811719E: - mov r0, r8 - adds r0, #1 - strh r0, [r3, #0x1a] -_081171A4: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end AnimTask_BlendSpriteColor_Step2 - - thumb_func_start sub_081171B0 -sub_081171B0: @ 0x081171B0 - push {r4, r5, lr} - sub sp, #4 - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r4, _081171E4 - ldrb r0, [r4] - ldrb r1, [r4, #2] - ldrb r2, [r4, #4] - ldrb r3, [r4, #6] - ldrb r4, [r4, #8] - str r4, [sp] - bl BeginHardwarePaletteFade - ldr r1, _081171E8 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081171EC - str r1, [r0] - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081171E4: .4byte gUnknown_20380BE -_081171E8: .4byte gUnknown_3005B60 -_081171EC: .4byte sub_081171F0 - thumb_func_end sub_081171B0 - - thumb_func_start sub_081171F0 -sub_081171F0: @ 0x081171F0 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _0811720C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08117208 - adds r0, r2, #0 - bl DestroyAnimVisualTask -_08117208: - pop {r0} - bx r0 - .align 2, 0 -_0811720C: .4byte gUnknown_2037C74 - thumb_func_end sub_081171F0 - - thumb_func_start sub_08117210 -sub_08117210: @ 0x08117210 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _0811723C - adds r1, r1, r0 - ldr r2, _08117240 - ldrh r0, [r2] - movs r3, #0 - strh r0, [r1, #8] - strh r3, [r1, #0xa] - ldrh r0, [r2, #2] - strh r0, [r1, #0xc] - ldrh r0, [r2, #4] - strh r0, [r1, #0xe] - ldrh r0, [r2, #6] - strh r0, [r1, #0x10] - strh r3, [r1, #0x12] - ldr r0, _08117244 - str r0, [r1] - bx lr - .align 2, 0 -_0811723C: .4byte gUnknown_3005B60 -_08117240: .4byte gUnknown_20380BE -_08117244: .4byte sub_08117248 - thumb_func_end sub_08117210 - - thumb_func_start sub_08117248 -sub_08117248: @ 0x08117248 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r2, r5, #0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _08117274 - adds r4, r0, r1 - movs r1, #0x10 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0811730C - ldrh r1, [r4, #0xa] - movs r2, #0xa - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _08117278 - subs r0, r1, #1 - strh r0, [r4, #0xa] - b _0811731A - .align 2, 0 -_08117274: .4byte gUnknown_3005B60 -_08117278: - ldrb r0, [r4, #8] - bl CloneBattlerSpriteWithBlend - strh r0, [r4, #0x14] - lsls r0, r0, #0x10 - cmp r0, #0 - blt _081172F6 - ldr r6, _08117304 - movs r1, #0x14 - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r3, r1, r6 - movs r2, #8 - ldrsh r0, [r4, r2] - movs r2, #2 - cmp r0, #0 - beq _081172A0 - movs r2, #1 -_081172A0: - lsls r2, r2, #2 - ldrb r1, [r3, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, #5] - movs r0, #0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrh r1, [r4, #0xe] - strh r1, [r0, #0x2e] - movs r2, #0x14 - ldrsh r1, [r4, r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - strh r5, [r0, #0x30] - movs r0, #0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #5 - strh r1, [r0, #0x32] - movs r2, #0x14 - ldrsh r1, [r4, r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r6, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _08117308 - str r1, [r0] - ldrh r0, [r4, #0x12] - adds r0, #1 - strh r0, [r4, #0x12] -_081172F6: - ldrh r0, [r4, #0x10] - subs r0, #1 - strh r0, [r4, #0x10] - ldrh r0, [r4, #0xc] - strh r0, [r4, #0xa] - b _0811731A - .align 2, 0 -_08117304: .4byte gUnknown_20205AC -_08117308: .4byte sub_08117320 -_0811730C: - movs r1, #0x12 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0811731A - adds r0, r2, #0 - bl DestroyAnimVisualTask -_0811731A: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_08117248 - - thumb_func_start sub_08117320 -sub_08117320: @ 0x08117320 - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x2e] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _08117334 - subs r0, r1, #1 - strh r0, [r4, #0x2e] - b _08117358 -_08117334: - ldr r3, _08117360 - movs r0, #0x32 - ldrsh r1, [r4, r0] - lsls r1, r1, #1 - movs r0, #0x30 - ldrsh r2, [r4, r0] - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r1, r1, r0 - adds r3, #8 - adds r1, r1, r3 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - adds r0, r4, #0 - bl obj_delete_but_dont_free_vram -_08117358: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08117360: .4byte gUnknown_3005B60 - thumb_func_end sub_08117320 - - thumb_func_start sub_08117364 -sub_08117364: @ 0x08117364 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - movs r7, #0 - ldr r0, _0811748C - strh r7, [r0] - ldr r0, _08117490 - strh r7, [r0] - ldr r1, _08117494 - movs r0, #0x48 - bl SetGpuReg - ldr r1, _08117498 - movs r0, #0x4a - bl SetGpuReg - movs r1, #0x80 - lsls r1, r1, #8 - movs r0, #0 - bl SetGpuRegBits - ldr r1, _0811749C - movs r0, #0x50 - bl SetGpuReg - ldr r1, _081174A0 - movs r0, #0x52 - bl SetGpuReg - movs r0, #0xa - bl GetGpuReg - add r4, sp, #0x10 - strh r0, [r4] - ldrb r1, [r4] - movs r0, #4 - rsbs r0, r0, #0 - mov r8, r0 - ands r0, r1 - strb r0, [r4] - mov r2, sp - adds r2, #0x11 - ldrb r1, [r2] - movs r0, #0x3f - ands r0, r1 - strb r0, [r2] - ldrh r1, [r4] - movs r0, #0xa - bl SetGpuReg - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081173F2 - ldrb r1, [r4] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r4] - ldrh r1, [r4] - movs r0, #0xa - bl SetGpuReg -_081173F2: - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08117476 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08117476 - ldr r5, _081174A4 - ldrb r0, [r5] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - beq _08117422 - ldrb r0, [r5] - bl sub_080A630C - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08117476 -_08117422: - ldrb r0, [r5] - movs r6, #2 - eors r0, r6 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08117476 - ldr r3, _081174A8 - ldr r1, _081174AC - ldrb r0, [r5] - eors r0, r6 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r3 - ldrb r3, [r2, #5] - lsls r1, r3, #0x1c - lsrs r1, r1, #0x1e - subs r1, #1 - movs r0, #3 - ands r1, r0 - lsls r1, r1, #2 - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #5] - ldrb r1, [r4] - mov r0, r8 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4] - ldrh r1, [r4] - movs r0, #0xa - bl SetGpuReg - movs r7, #1 -_08117476: - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081174B4 - ldr r0, _081174B0 - ldr r0, [r0] - ldr r0, [r0, #0x18] - ldrh r5, [r0] - b _081174FC - .align 2, 0 -_0811748C: .4byte gUnknown_2022AD8 -_08117490: .4byte gUnknown_2022ADA -_08117494: .4byte 0x00003F3F -_08117498: .4byte 0x00003F3D -_0811749C: .4byte 0x00003F42 -_081174A0: .4byte 0x00000C08 -_081174A4: .4byte gUnknown_20380D6 -_081174A8: .4byte gUnknown_20205AC -_081174AC: .4byte gUnknown_2023E88 -_081174B0: .4byte gUnknown_2039BD4 -_081174B4: - ldr r4, _081174D4 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081174E0 - ldr r1, _081174D8 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081174DC - b _081174F0 - .align 2, 0 -_081174D4: .4byte gUnknown_20380D6 -_081174D8: .4byte gUnknown_2023D12 -_081174DC: .4byte gUnknown_20243E8 -_081174E0: - ldr r1, _08117588 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0811758C -_081174F0: - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_081174FC: - movs r0, #0 - bl GetAnimBattlerSpriteId - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _08117590 - ldrb r0, [r0] - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_080A8290 - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - mov r0, sp - bl sub_080A63F8 - ldr r1, _08117594 - mov r0, sp - movs r2, #0 - bl sub_080A6628 - mov r0, sp - ldrb r0, [r0, #9] - ldr r1, _08117598 - mov r2, sp - ldrh r2, [r2, #0xa] - bl AnimLoadCompressedBgGfx - ldr r0, _0811759C - mov r1, sp - ldrb r1, [r1, #8] - lsls r1, r1, #4 - adds r1, #1 - movs r2, #2 - bl LoadPalette - ldr r2, _081175A0 - ldr r0, _081175A4 - lsls r1, r4, #4 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r0, [r1, #0x20] - rsbs r0, r0, #0 - adds r0, #0x20 - strh r0, [r2] - ldr r2, _081175A8 - ldrh r0, [r1, #0x22] - rsbs r0, r0, #0 - adds r0, #0x20 - strh r0, [r2] - ldr r1, _081175AC - mov r2, sb - lsls r0, r2, #2 - add r0, sb - lsls r0, r0, #3 - adds r0, r0, r1 - strh r5, [r0, #8] - strh r7, [r0, #0x14] - ldr r1, _081175B0 - str r1, [r0] - add sp, #0x14 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08117588: .4byte gUnknown_2023D12 -_0811758C: .4byte gUnknown_2024190 -_08117590: .4byte gUnknown_20380D6 -_08117594: .4byte gUnknown_8C20728 -_08117598: .4byte gUnknown_8C2070C -_0811759C: .4byte gUnknown_8572FFC -_081175A0: .4byte gUnknown_2022ACC -_081175A4: .4byte gUnknown_20205AC -_081175A8: .4byte gUnknown_2022ACE -_081175AC: .4byte gUnknown_3005B60 -_081175B0: .4byte sub_081175B4 - thumb_func_end sub_08117364 - - thumb_func_start sub_081175B4 -sub_081175B4: @ 0x081175B4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r6, r0, #0 - ldr r1, _081176E4 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r5, r0, r1 - ldrh r0, [r5, #0x1c] - adds r0, #4 - movs r1, #0 - mov r8, r1 - strh r0, [r5, #0x1c] - ldr r7, _081176E8 - ldrh r2, [r7] - subs r1, r2, #4 - strh r1, [r7] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x40 - bne _081176D6 - mov r0, r8 - strh r0, [r5, #0x1c] - adds r0, r2, #0 - adds r0, #0x3c - strh r0, [r7] - ldrh r0, [r5, #0x1e] - adds r0, #1 - strh r0, [r5, #0x1e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - bne _081176D6 - movs r0, #0 - bl sub_080A4044 - ldr r0, _081176EC - mov r1, r8 - strh r1, [r0] - ldr r0, _081176F0 - strh r1, [r0] - ldr r4, _081176F4 - movs r0, #0x48 - adds r1, r4, #0 - bl SetGpuReg - movs r0, #0x4a - adds r1, r4, #0 - bl SetGpuReg - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08117646 - movs r0, #0xa - bl GetGpuReg - add r1, sp, #0x10 - strh r0, [r1] - ldrb r2, [r1] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldrh r1, [r1] - movs r0, #0xa - bl SetGpuReg -_08117646: - movs r0, #0 - bl GetGpuReg - adds r1, r0, #0 - movs r2, #0x80 - lsls r2, r2, #8 - adds r0, r2, #0 - eors r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0 - bl GetAnimBattlerSpriteId - ldr r4, _081176F8 - movs r0, #8 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - mov r0, sp - bl sub_080A63F8 - mov r0, sp - ldrb r0, [r0, #9] - bl sub_080A6530 - movs r1, #0x14 - ldrsh r0, [r5, r1] - cmp r0, #1 - bne _081176CC - ldr r2, _081176FC - ldr r0, _08117700 - ldrb r1, [r0] - movs r0, #2 - eors r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r4 - ldrb r3, [r2, #5] - lsls r1, r3, #0x1c - lsrs r1, r1, #0x1e - adds r1, #1 - movs r0, #3 - ands r1, r0 - lsls r1, r1, #2 - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #5] -_081176CC: - mov r2, r8 - strh r2, [r7] - adds r0, r6, #0 - bl DestroyAnimVisualTask -_081176D6: - add sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081176E4: .4byte gUnknown_3005B60 -_081176E8: .4byte gUnknown_2022ACE -_081176EC: .4byte gUnknown_2022AD8 -_081176F0: .4byte gUnknown_2022ADA -_081176F4: .4byte 0x00003F3F -_081176F8: .4byte gUnknown_20205AC -_081176FC: .4byte gUnknown_2023E88 -_08117700: .4byte gUnknown_20380D6 - thumb_func_end sub_081175B4 - - thumb_func_start sub_08117704 -sub_08117704: @ 0x08117704 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r4, _08117744 - movs r0, #0x18 - bl AllocZeroed - str r0, [r4] - movs r2, #0 - ldr r3, _08117748 -_08117718: - ldr r1, [r4] - lsls r0, r2, #1 - adds r1, #4 - adds r1, r1, r0 - adds r0, r0, r3 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #7 - bls _08117718 - ldr r0, _0811774C - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _08117750 - str r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08117744: .4byte gUnknown_2039DDC -_08117748: .4byte gUnknown_20380BE -_0811774C: .4byte gUnknown_3005B60 -_08117750: .4byte sub_08117754 - thumb_func_end sub_08117704 - - thumb_func_start sub_08117754 -sub_08117754: @ 0x08117754 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _0811776C - ldr r1, [r0] - movs r2, #8 - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _08117774 - ldr r0, _08117770 - b _08117776 - .align 2, 0 -_0811776C: .4byte gUnknown_2039DDC -_08117770: .4byte gUnknown_20380D6 -_08117774: - ldr r0, _081178A0 -_08117776: - ldrb r0, [r0] - strb r0, [r1] - ldr r4, _081178A4 - ldr r2, [r4] - ldrb r0, [r2] - movs r1, #2 - eors r0, r1 - strb r0, [r2, #1] - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081177A6 - ldr r1, [r4] - movs r2, #0xa - ldrsh r0, [r1, r2] - cmp r0, #0 - beq _081177AC - ldrb r0, [r1, #1] - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081177AC -_081177A6: - ldr r1, [r4] - movs r0, #0 - strh r0, [r1, #0xa] -_081177AC: - ldr r0, _081178A8 - movs r1, #0 - strh r1, [r0] - ldr r0, _081178AC - strh r1, [r0] - ldr r1, _081178B0 - movs r0, #0x48 - bl SetGpuReg - ldr r1, _081178B4 - movs r0, #0x4a - bl SetGpuReg - movs r1, #0x80 - lsls r1, r1, #8 - movs r0, #0 - bl SetGpuRegBits - ldr r1, _081178B8 - movs r0, #0x50 - bl SetGpuReg - movs r1, #0x80 - lsls r1, r1, #5 - movs r0, #0x52 - bl SetGpuReg - movs r0, #1 - movs r1, #4 - movs r2, #0 - bl SetAnimBgAttribute - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl SetAnimBgAttribute - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811780A - movs r0, #1 - movs r1, #3 - movs r2, #1 - bl SetAnimBgAttribute -_0811780A: - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08117886 - ldr r4, _081178A4 - ldr r1, [r4] - movs r2, #0xa - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _08117886 - ldrb r0, [r1] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - beq _0811783C - ldr r0, [r4] - ldrb r0, [r0] - bl sub_080A630C - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08117886 -_0811783C: - ldr r0, [r4] - ldrb r0, [r0, #1] - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #1 - bne _08117886 - ldr r3, _081178BC - ldr r1, _081178C0 - ldr r0, [r4] - ldrb r0, [r0, #1] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r3 - ldrb r3, [r2, #5] - lsls r1, r3, #0x1c - lsrs r1, r1, #0x1e - subs r1, #1 - movs r0, #3 - ands r1, r0 - lsls r1, r1, #2 - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #5] - movs r0, #1 - movs r1, #4 - movs r2, #1 - bl SetAnimBgAttribute - ldr r0, [r4] - strb r5, [r0, #2] -_08117886: - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081178C8 - ldr r0, _081178A4 - ldr r1, [r0] - ldr r0, _081178C4 - ldr r0, [r0] - ldr r0, [r0, #0x18] - ldrh r0, [r0] - b _08117914 - .align 2, 0 -_081178A0: .4byte gUnknown_20380D7 -_081178A4: .4byte gUnknown_2039DDC -_081178A8: .4byte gUnknown_2022AD8 -_081178AC: .4byte gUnknown_2022ADA -_081178B0: .4byte 0x00003F3F -_081178B4: .4byte 0x00003F3D -_081178B8: .4byte 0x00003F42 -_081178BC: .4byte gUnknown_20205AC -_081178C0: .4byte gUnknown_2023E88 -_081178C4: .4byte gUnknown_2039BD4 -_081178C8: - ldr r4, _081178EC - ldr r0, [r4] - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081178F8 - ldr r1, _081178F0 - ldr r0, [r4] - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081178F4 - b _0811790A - .align 2, 0 -_081178EC: .4byte gUnknown_2039DDC -_081178F0: .4byte gUnknown_2023D12 -_081178F4: .4byte gUnknown_20243E8 -_081178F8: - ldr r1, _0811792C - ldr r0, [r4] - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08117930 -_0811790A: - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - ldr r1, [r4] -_08117914: - strh r0, [r1, #0x14] - ldr r0, _08117934 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _08117938 - str r0, [r1] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0811792C: .4byte gUnknown_2023D12 -_08117930: .4byte gUnknown_2024190 -_08117934: .4byte gUnknown_3005B60 -_08117938: .4byte sub_0811793C - thumb_func_end sub_08117754 - - thumb_func_start sub_0811793C -sub_0811793C: @ 0x0811793C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r0, #0 - mov r8, r0 - ldr r6, _0811799C - ldr r4, _081179A0 - ldr r2, [r4] - ldrb r0, [r2] - adds r1, r0, r6 - ldrb r1, [r1] - ldrh r2, [r2, #0x14] - bl sub_080A8290 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r2, [r4] - movs r1, #0xa - ldrsh r0, [r2, r1] - cmp r0, #0 - beq _0811797E - ldrb r0, [r2, #1] - adds r1, r0, r6 - ldrb r1, [r1] - ldrh r2, [r2, #0x14] - bl sub_080A8290 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 -_0811797E: - mov r0, sp - bl sub_080A63F8 - ldr r0, [r4] - movs r4, #4 - ldrsh r0, [r0, r4] - cmp r0, #0 - bne _081179A8 - ldr r1, _081179A4 - mov r0, sp - movs r2, #0 - bl sub_080A6628 - b _081179B2 - .align 2, 0 -_0811799C: .4byte gUnknown_2023E88 -_081179A0: .4byte gUnknown_2039DDC -_081179A4: .4byte gUnknown_8C2D9D4 -_081179A8: - ldr r1, _081179D8 - mov r0, sp - movs r2, #0 - bl sub_080A6628 -_081179B2: - mov r0, sp - ldrb r0, [r0, #9] - ldr r1, _081179DC - mov r2, sp - ldrh r2, [r2, #0xa] - bl AnimLoadCompressedBgGfx - ldr r0, _081179E0 - ldr r0, [r0] - movs r1, #6 - ldrsh r0, [r0, r1] - cmp r0, #6 - bhi _08117A48 - lsls r0, r0, #2 - ldr r1, _081179E4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081179D8: .4byte gUnknown_8C2DAF0 -_081179DC: .4byte gUnknown_8C2D7C4 -_081179E0: .4byte gUnknown_2039DDC -_081179E4: .4byte _081179E8 -_081179E8: @ jump table - .4byte _08117A04 @ case 0 - .4byte _08117A0C @ case 1 - .4byte _08117A14 @ case 2 - .4byte _08117A1C @ case 3 - .4byte _08117A24 @ case 4 - .4byte _08117A2C @ case 5 - .4byte _08117A34 @ case 6 -_08117A04: - ldr r0, _08117A08 - b _08117A36 - .align 2, 0 -_08117A08: .4byte gUnknown_8C2DC2C -_08117A0C: - ldr r0, _08117A10 - b _08117A36 - .align 2, 0 -_08117A10: .4byte gUnknown_8C2DC0C -_08117A14: - ldr r0, _08117A18 - b _08117A36 - .align 2, 0 -_08117A18: .4byte gUnknown_8C2DC4C -_08117A1C: - ldr r0, _08117A20 - b _08117A36 - .align 2, 0 -_08117A20: .4byte gUnknown_8C2DC6C -_08117A24: - ldr r0, _08117A28 - b _08117A36 - .align 2, 0 -_08117A28: .4byte gUnknown_8C2DCAC -_08117A2C: - ldr r0, _08117A30 - b _08117A36 - .align 2, 0 -_08117A30: .4byte gUnknown_8C2DCCC -_08117A34: - ldr r0, _08117A44 -_08117A36: - mov r1, sp - ldrb r1, [r1, #8] - lsls r1, r1, #4 - movs r2, #0x20 - bl LoadCompressedPalette - b _08117A56 - .align 2, 0 -_08117A44: .4byte gUnknown_8C2DCEC -_08117A48: - ldr r0, _08117A80 - mov r1, sp - ldrb r1, [r1, #8] - lsls r1, r1, #4 - movs r2, #0x20 - bl LoadCompressedPalette -_08117A56: - ldr r3, _08117A84 - movs r2, #0 - strh r2, [r3] - ldr r0, _08117A88 - strh r2, [r0] - ldr r1, _08117A8C - ldr r0, [r1] - movs r4, #4 - ldrsh r0, [r0, r4] - adds r4, r1, #0 - cmp r0, #1 - bne _08117A98 - movs r0, #0x40 - strh r0, [r3] - ldr r2, _08117A90 - lsls r3, r5, #2 - adds r0, r3, r5 - lsls r0, r0, #3 - adds r0, r0, r2 - ldr r1, _08117A94 - b _08117AA4 - .align 2, 0 -_08117A80: .4byte gUnknown_8C2DC8C -_08117A84: .4byte gUnknown_2022ACC -_08117A88: .4byte gUnknown_2022ACE -_08117A8C: .4byte gUnknown_2039DDC -_08117A90: .4byte gUnknown_3005B60 -_08117A94: .4byte 0x0000FFFD -_08117A98: - ldr r2, _08117AC0 - lsls r3, r5, #2 - adds r0, r3, r5 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r1, #3 -_08117AA4: - strh r1, [r0, #0xa] - ldr r0, [r4] - movs r1, #0xc - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08117AC4 - adds r0, r3, r5 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r1, #0xa - strh r1, [r0, #0x10] - movs r1, #0x14 - b _08117AD0 - .align 2, 0 -_08117AC0: .4byte gUnknown_3005B60 -_08117AC4: - adds r0, r3, r5 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r1, #0xd - strh r1, [r0, #0x10] - movs r1, #0x1e -_08117AD0: - strh r1, [r0, #0x12] - adds r1, r3, r5 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r7, [r1, #8] - ldr r3, [r4] - ldrh r0, [r3, #0xa] - strh r0, [r1, #0xc] - mov r4, r8 - strh r4, [r1, #0xe] - ldrb r0, [r3, #2] - strh r0, [r1, #0x14] - ldr r2, _08117B14 - ldrb r0, [r3, #1] - adds r0, r0, r2 - ldrb r0, [r0] - strh r0, [r1, #0x16] - ldr r0, _08117B18 - str r0, [r1] - movs r1, #4 - ldrsh r0, [r3, r1] - cmp r0, #0 - bne _08117B1C - movs r0, #0x40 - rsbs r0, r0, #0 - bl BattleAnimAdjustPanning2 - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r0, #0xef - bl PlaySE12WithPanning - b _08117B30 - .align 2, 0 -_08117B14: .4byte gUnknown_2023E88 -_08117B18: .4byte sub_08117B3C -_08117B1C: - movs r0, #0x40 - rsbs r0, r0, #0 - bl BattleAnimAdjustPanning2 - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r0, #0xf5 - bl PlaySE12WithPanning -_08117B30: - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_0811793C - - thumb_func_start sub_08117B3C -sub_08117B3C: @ 0x08117B3C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r2, _08117B68 - ldr r1, _08117B6C - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r5, r0, r1 - ldrh r0, [r5, #0xa] - ldrh r1, [r2] - adds r0, r0, r1 - strh r0, [r2] - movs r0, #0x26 - ldrsh r2, [r5, r0] - cmp r2, #1 - beq _08117BB2 - cmp r2, #1 - bgt _08117B70 - cmp r2, #0 - beq _08117B7A - b _08117CC8 - .align 2, 0 -_08117B68: .4byte gUnknown_2022ACE -_08117B6C: .4byte gUnknown_3005B60 -_08117B70: - cmp r2, #2 - beq _08117BC8 - cmp r2, #3 - beq _08117C06 - b _08117CC8 -_08117B7A: - ldrh r0, [r5, #0x1e] - adds r1, r0, #1 - strh r1, [r5, #0x1e] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _08117B88 - b _08117CC8 -_08117B88: - strh r2, [r5, #0x1e] - ldrh r1, [r5, #0x20] - adds r1, #1 - strh r1, [r5, #0x20] - movs r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r2, #0x20 - ldrsh r1, [r5, r2] - movs r2, #0x10 - ldrsh r0, [r5, r2] - cmp r1, r0 - beq _08117BB0 - b _08117CC8 -_08117BB0: - b _08117BFE -_08117BB2: - ldrh r0, [r5, #0x1c] - adds r0, #1 - strh r0, [r5, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x12 - ldrsh r1, [r5, r2] - cmp r0, r1 - beq _08117BC6 - b _08117CC8 -_08117BC6: - b _08117BFE -_08117BC8: - ldrh r0, [r5, #0x1e] - adds r1, r0, #1 - strh r1, [r5, #0x1e] - lsls r0, r0, #0x10 - cmp r0, #0 - ble _08117CC8 - movs r0, #0 - strh r0, [r5, #0x1e] - ldrh r1, [r5, #0x20] - subs r1, #1 - strh r1, [r5, #0x20] - movs r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r1, #0x20 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _08117CC8 - movs r0, #0 - bl sub_080A4044 -_08117BFE: - ldrh r0, [r5, #0x26] - adds r0, #1 - strh r0, [r5, #0x26] - b _08117CC8 -_08117C06: - ldr r0, _08117CD0 - movs r1, #0 - strh r1, [r0] - ldr r0, _08117CD4 - strh r1, [r0] - ldr r4, _08117CD8 - movs r0, #0x48 - adds r1, r4, #0 - bl SetGpuReg - movs r0, #0x4a - adds r1, r4, #0 - bl SetGpuReg - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08117C36 - movs r0, #1 - movs r1, #3 - movs r2, #0 - bl SetAnimBgAttribute -_08117C36: - movs r0, #0 - bl GetGpuReg - adds r1, r0, #0 - movs r2, #0x80 - lsls r2, r2, #8 - adds r0, r2, #0 - eors r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #8 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _08117CDC - adds r0, r0, r4 - bl DestroySprite - movs r1, #0xc - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _08117C8A - movs r2, #0xe - ldrsh r1, [r5, r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite -_08117C8A: - movs r1, #0x14 - ldrsh r0, [r5, r1] - cmp r0, #1 - bne _08117CB6 - movs r2, #0x16 - ldrsh r0, [r5, r2] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r4 - ldrb r3, [r2, #5] - lsls r1, r3, #0x1c - lsrs r1, r1, #0x1e - adds r1, #1 - movs r0, #3 - ands r1, r0 - lsls r1, r1, #2 - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #5] -_08117CB6: - ldr r4, _08117CE0 - ldr r0, [r4] - bl Free - movs r0, #0 - str r0, [r4] - adds r0, r6, #0 - bl DestroyAnimVisualTask -_08117CC8: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08117CD0: .4byte gUnknown_2022AD8 -_08117CD4: .4byte gUnknown_2022ADA -_08117CD8: .4byte 0x00003F3F -_08117CDC: .4byte gUnknown_20205AC -_08117CE0: .4byte gUnknown_2039DDC - thumb_func_end sub_08117B3C - - thumb_func_start sub_08117CE4 -sub_08117CE4: @ 0x08117CE4 - push {r4, r5, r6, lr} - sub sp, #0xc - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - movs r0, #1 - movs r1, #1 - movs r2, #1 - movs r3, #1 - bl sub_080A6F8C - adds r6, r0, #0 - movs r1, #0 - bl sub_08117E14 - ldr r0, _08117D44 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - adds r4, r4, r0 - lsrs r0, r6, #0x10 - movs r5, #0 - strh r0, [r4, #0x24] - str r5, [sp] - str r5, [sp, #4] - str r5, [sp, #8] - movs r0, #1 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_080A6E74 - adds r6, r0, #0 - ldr r1, _08117D48 - ands r6, r1 - adds r0, r6, #0 - bl sub_08117E14 - strh r6, [r4, #0x26] - strh r5, [r4, #8] - strh r5, [r4, #0xa] - ldr r0, _08117D4C - str r0, [r4] - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08117D44: .4byte gUnknown_3005B60 -_08117D48: .4byte 0x0000FFFF -_08117D4C: .4byte sub_08117D50 - thumb_func_end sub_08117CE4 - - thumb_func_start sub_08117D50 -sub_08117D50: @ 0x08117D50 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _08117D74 - adds r4, r0, r1 - movs r0, #8 - ldrsh r1, [r4, r0] - cmp r1, #1 - beq _08117D94 - cmp r1, #1 - bgt _08117D78 - cmp r1, #0 - beq _08117D7E - b _08117E0E - .align 2, 0 -_08117D74: .4byte gUnknown_3005B60 -_08117D78: - cmp r1, #2 - beq _08117E08 - b _08117E0E -_08117D7E: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #6 - ble _08117E0E - strh r1, [r4, #0xa] - movs r0, #0x10 - strh r0, [r4, #0xc] - b _08117DFC -_08117D94: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _08117E0E - movs r0, #0 - strh r0, [r4, #0xa] - ldrh r0, [r4, #0xc] - subs r0, #1 - strh r0, [r4, #0xc] - movs r5, #0 - movs r6, #1 -_08117DB0: - movs r1, #0x26 - ldrsh r0, [r4, r1] - asrs r0, r5 - ands r0, r6 - cmp r0, #0 - beq _08117DCA - lsls r0, r5, #0x14 - lsrs r0, r0, #0x10 - ldrb r2, [r4, #0xc] - movs r1, #0x10 - ldr r3, _08117E04 - bl BlendPalette -_08117DCA: - movs r1, #0x24 - ldrsh r0, [r4, r1] - asrs r0, r5 - ands r0, r6 - cmp r0, #0 - beq _08117DEA - lsls r0, r5, #0x14 - movs r1, #0x80 - lsls r1, r1, #0x11 - adds r0, r0, r1 - lsrs r0, r0, #0x10 - ldrb r2, [r4, #0xc] - movs r1, #0x10 - movs r3, #0 - bl BlendPalette -_08117DEA: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0xf - bls _08117DB0 - movs r1, #0xc - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08117E0E -_08117DFC: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _08117E0E - .align 2, 0 -_08117E04: .4byte 0x0000FFFF -_08117E08: - adds r0, r2, #0 - bl DestroyAnimVisualTask -_08117E0E: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_08117D50 - - thumb_func_start sub_08117E14 -sub_08117E14: @ 0x08117E14 - push {r4, r5, r6, lr} - adds r3, r0, #0 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - movs r2, #0 -_08117E1E: - movs r0, #1 - ands r0, r3 - lsrs r4, r3, #1 - adds r5, r2, #1 - cmp r0, #0 - beq _08117E4A - lsls r0, r2, #0x14 - lsrs r2, r0, #0x10 - adds r0, r2, #0 - adds r0, #0x10 - cmp r2, r0 - bge _08117E4A - ldr r1, _08117E5C - adds r3, r0, #0 -_08117E3A: - lsls r0, r2, #1 - adds r0, r0, r1 - strh r6, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, r3 - blt _08117E3A -_08117E4A: - adds r3, r4, #0 - lsls r0, r5, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0x1f - bls _08117E1E - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08117E5C: .4byte gUnknown_20377B4 - thumb_func_end sub_08117E14 - - thumb_func_start sub_08117E60 -sub_08117E60: @ 0x08117E60 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r4, #0 - movs r2, #0 - ldr r0, _08117EA8 - ldrb r3, [r0] - movs r5, #1 -_08117E70: - cmp r3, r2 - beq _08117E7E - adds r1, r2, #0 - adds r1, #0x10 - adds r0, r5, #0 - lsls r0, r1 - orrs r4, r0 -_08117E7E: - adds r2, #1 - cmp r2, #3 - bls _08117E70 - movs r2, #5 - ldr r0, _08117EAC - adds r1, r0, #0 - adds r1, #8 -_08117E8C: - ldrh r0, [r1] - strh r0, [r1, #2] - subs r1, #2 - subs r2, #1 - cmp r2, #0 - bne _08117E8C - adds r0, r6, #0 - adds r1, r4, #0 - bl StartBlendAnimSpriteColor - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08117EA8: .4byte gUnknown_20380D6 -_08117EAC: .4byte gUnknown_20380BE - thumb_func_end sub_08117E60 - - thumb_func_start sub_08117EB0 -sub_08117EB0: @ 0x08117EB0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r0, #0 - bl sub_080A6674 - ldr r0, _08117F18 - movs r1, #5 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r4, _08117F1C - movs r1, #4 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _08117EEC - ldr r0, _08117F20 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08117EEC - ldrh r0, [r4] - rsbs r0, r0, #0 - strh r0, [r4] - ldrh r0, [r4, #2] - rsbs r0, r0, #0 - strh r0, [r4, #2] -_08117EEC: - ldr r0, _08117F24 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r2, _08117F1C - ldrh r0, [r2] - strh r0, [r1, #0xa] - ldrh r0, [r2, #2] - strh r0, [r1, #0xc] - ldrh r0, [r2, #6] - strh r0, [r1, #0xe] - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - adds r0, r6, #0 - bl DestroyAnimVisualTask - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08117F18: .4byte sub_08117F28 -_08117F1C: .4byte gUnknown_20380BE -_08117F20: .4byte gUnknown_20380D6 -_08117F24: .4byte gUnknown_3005B60 - thumb_func_end sub_08117EB0 - - thumb_func_start sub_08117F28 -sub_08117F28: @ 0x08117F28 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _08117F94 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r3, [r1, #0xa] - ldrh r0, [r1, #0x1c] - adds r3, r3, r0 - movs r4, #0 - mov ip, r4 - strh r3, [r1, #0x1c] - ldrh r2, [r1, #0xc] - ldrh r7, [r1, #0x1e] - adds r2, r2, r7 - strh r2, [r1, #0x1e] - ldr r6, _08117F98 - lsls r0, r3, #0x10 - asrs r0, r0, #0x18 - ldrh r4, [r6] - adds r0, r0, r4 - strh r0, [r6] - ldr r4, _08117F9C - lsls r0, r2, #0x10 - asrs r0, r0, #0x18 - ldrh r7, [r4] - adds r0, r0, r7 - strh r0, [r4] - movs r0, #0xff - ands r3, r0 - strh r3, [r1, #0x1c] - ands r2, r0 - strh r2, [r1, #0x1e] - ldr r0, _08117FA0 - movs r3, #0xe - ldrsh r2, [r0, r3] - movs r7, #0xe - ldrsh r0, [r1, r7] - cmp r2, r0 - bne _08117F8E - mov r0, ip - strh r0, [r6] - strh r0, [r4] - movs r0, #1 - bl sub_080A6674 - adds r0, r5, #0 - bl DestroyTask -_08117F8E: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08117F94: .4byte gUnknown_3005B60 -_08117F98: .4byte gUnknown_2022AD4 -_08117F9C: .4byte gUnknown_2022AD6 -_08117FA0: .4byte gUnknown_20380BE - thumb_func_end sub_08117F28 - - thumb_func_start sub_08117FA4 -sub_08117FA4: @ 0x08117FA4 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _08117FC8 - ldrb r0, [r0] - bl GetBattlerSide - ldr r1, _08117FCC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r1, #0xe] - adds r0, r4, #0 - bl DestroyAnimVisualTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08117FC8: .4byte gUnknown_20380D6 -_08117FCC: .4byte gUnknown_20380BE - thumb_func_end sub_08117FA4 - - thumb_func_start sub_08117FD0 -sub_08117FD0: @ 0x08117FD0 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _08117FF4 - ldrb r0, [r0] - bl GetBattlerSide - ldr r1, _08117FF8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r1, #0xe] - adds r0, r4, #0 - bl DestroyAnimVisualTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08117FF4: .4byte gUnknown_20380D7 -_08117FF8: .4byte gUnknown_20380BE - thumb_func_end sub_08117FD0 - - thumb_func_start AnimTask_GetTargetIsAttackerPartner -AnimTask_GetTargetIsAttackerPartner: @ 0x08117FFC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r5, _08118028 - movs r4, #0 - ldr r0, _0811802C - ldrb r2, [r0] - movs r0, #2 - ldr r1, _08118030 - eors r0, r2 - ldrb r1, [r1] - cmp r0, r1 - bne _08118018 - movs r4, #1 -_08118018: - strh r4, [r5, #0xe] - adds r0, r3, #0 - bl DestroyAnimVisualTask - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08118028: .4byte gUnknown_20380BE -_0811802C: .4byte gUnknown_20380D6 -_08118030: .4byte gUnknown_20380D7 - thumb_func_end AnimTask_GetTargetIsAttackerPartner - - thumb_func_start sub_08118034 -sub_08118034: @ 0x08118034 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r4, #0 - ldr r6, _08118094 -_0811803E: - ldr r0, _08118098 - ldrb r0, [r0] - cmp r4, r0 - beq _0811807C - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0811807C - ldr r0, _0811809C - adds r0, r4, r0 - ldrb r0, [r0] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r6 - ldr r1, _081180A0 - adds r2, #0x3e - movs r0, #1 - ldrb r3, [r1] - ands r3, r0 - lsls r3, r3, #2 - ldrb r0, [r2] - movs r7, #5 - rsbs r7, r7, #0 - adds r1, r7, #0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2] -_0811807C: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #3 - bls _0811803E - adds r0, r5, #0 - bl DestroyAnimVisualTask - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08118094: .4byte gUnknown_20205AC -_08118098: .4byte gUnknown_20380D6 -_0811809C: .4byte gUnknown_2023E88 -_081180A0: .4byte gUnknown_20380BE - thumb_func_end sub_08118034 - - thumb_func_start sub_081180A4 -sub_081180A4: @ 0x081180A4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x24 - ldr r1, [sp, #0x44] - ldr r4, [sp, #0x48] - ldr r5, [sp, #0x4c] - ldr r6, [sp, #0x50] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - str r2, [sp, #0x14] - lsls r3, r3, #0x18 - lsrs r7, r3, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp, #0x18] - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - str r5, [sp, #0x1c] - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov sl, r6 - movs r0, #0 - str r0, [sp, #0x20] - movs r0, #2 - adds r6, r7, #0 - eors r6, r0 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08118106 - mov r1, r8 - cmp r1, #0 - beq _0811810A - adds r0, r6, #0 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811810A -_08118106: - movs r2, #0 - mov r8, r2 -_0811810A: - ldr r0, _0811819C - movs r1, #0 - strh r1, [r0] - ldr r0, _081181A0 - strh r1, [r0] - ldr r1, _081181A4 - movs r0, #0x48 - bl SetGpuReg - ldr r1, _081181A8 - movs r0, #0x4a - bl SetGpuReg - movs r1, #0x80 - lsls r1, r1, #8 - movs r0, #0 - bl SetGpuRegBits - ldr r1, _081181AC - movs r0, #0x50 - bl SetGpuReg - movs r1, #0x80 - lsls r1, r1, #5 - movs r0, #0x52 - bl SetGpuReg - movs r0, #0xa - bl GetGpuReg - add r4, sp, #0x10 - strh r0, [r4] - ldrb r1, [r4] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4] - mov r2, sp - adds r2, #0x11 - ldrb r1, [r2] - movs r0, #0x3f - ands r0, r1 - strb r0, [r2] - ldrb r0, [r2] - movs r1, #0x20 - orrs r0, r1 - strb r0, [r2] - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08118180 - ldrb r0, [r4] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #4 - orrs r1, r0 - strb r1, [r4] -_08118180: - ldrh r1, [r4] - movs r0, #0xa - bl SetGpuReg - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081181B4 - ldr r0, _081181B0 - ldr r0, [r0] - ldr r0, [r0, #0x18] - ldrh r4, [r0] - b _081181F2 - .align 2, 0 -_0811819C: .4byte gUnknown_2022AD8 -_081181A0: .4byte gUnknown_2022ADA -_081181A4: .4byte 0x00003F3F -_081181A8: .4byte 0x00003F3D -_081181AC: .4byte 0x00003F42 -_081181B0: .4byte gUnknown_2039BD4 -_081181B4: - adds r0, r7, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081181D8 - ldr r1, _081181D0 - lsls r0, r7, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081181D4 - b _081181E6 - .align 2, 0 -_081181D0: .4byte gUnknown_2023D12 -_081181D4: .4byte gUnknown_20243E8 -_081181D8: - ldr r1, _08118294 - lsls r0, r7, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08118298 -_081181E6: - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_081181F2: - ldr r5, _0811829C - adds r0, r7, r5 - ldrb r1, [r0] - adds r0, r7, #0 - adds r2, r4, #0 - bl sub_080A8290 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - mov r0, r8 - cmp r0, #0 - beq _0811821C - adds r0, r6, r5 - ldrb r1, [r0] - adds r0, r6, #0 - adds r2, r4, #0 - bl sub_080A8290 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x20] -_0811821C: - mov r0, sp - bl sub_080A63F8 - mov r0, sp - ldr r1, [sp, #0x58] - movs r2, #0 - bl sub_080A6628 - mov r0, sp - ldrb r0, [r0, #9] - mov r1, sp - ldrh r2, [r1, #0xa] - ldr r1, [sp, #0x54] - bl AnimLoadCompressedBgGfx - mov r0, sp - ldrb r1, [r0, #8] - lsls r1, r1, #4 - ldr r0, [sp, #0x5c] - movs r2, #0x20 - bl LoadCompressedPalette - ldr r0, _081182A0 - movs r1, #0 - strh r1, [r0] - ldr r0, _081182A4 - strh r1, [r0] - ldr r1, _081182A8 - mov r2, sb - lsls r0, r2, #2 - add r0, sb - lsls r0, r0, #3 - adds r0, r0, r1 - mov r1, sp - ldrh r1, [r1, #0x14] - strh r1, [r0, #0xa] - mov r2, sp - ldrh r2, [r2, #0x18] - strh r2, [r0, #0x10] - mov r1, sl - strh r1, [r0, #0x12] - mov r2, sp - ldrh r2, [r2, #0x1c] - strh r2, [r0, #0x14] - strh r7, [r0, #8] - mov r1, r8 - strh r1, [r0, #0xc] - mov r2, sp - ldrh r2, [r2, #0x20] - strh r2, [r0, #0xe] - ldr r1, _081182AC - str r1, [r0] - add sp, #0x24 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08118294: .4byte gUnknown_2023D12 -_08118298: .4byte gUnknown_2024190 -_0811829C: .4byte gUnknown_2023E88 -_081182A0: .4byte gUnknown_2022ACC -_081182A4: .4byte gUnknown_2022ACE -_081182A8: .4byte gUnknown_3005B60 -_081182AC: .4byte sub_081182B0 - thumb_func_end sub_081180A4 - - thumb_func_start sub_081182B0 -sub_081182B0: @ 0x081182B0 - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _081182EC - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r3, r0, r1 - movs r0, #0xa - ldrsh r2, [r3, r0] - adds r5, r1, #0 - cmp r2, #0 - bge _081182CE - rsbs r2, r2, #0 -_081182CE: - ldrh r0, [r3, #0x22] - adds r4, r0, r2 - strh r4, [r3, #0x22] - movs r1, #0xa - ldrsh r0, [r3, r1] - cmp r0, #0 - bge _081182F4 - ldr r2, _081182F0 - lsls r1, r4, #0x10 - asrs r1, r1, #0x18 - ldrh r0, [r2] - subs r0, r0, r1 - strh r0, [r2] - b _08118300 - .align 2, 0 -_081182EC: .4byte gUnknown_3005B60 -_081182F0: .4byte gUnknown_2022ACE -_081182F4: - ldr r1, _08118324 - lsls r0, r4, #0x10 - asrs r0, r0, #0x18 - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] -_08118300: - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r5, r0, r5 - ldrh r1, [r5, #0x22] - movs r0, #0xff - ands r0, r1 - movs r2, #0 - strh r0, [r5, #0x22] - movs r3, #0x26 - ldrsh r0, [r5, r3] - cmp r0, #1 - beq _0811836A - cmp r0, #1 - bgt _08118328 - cmp r0, #0 - beq _0811832E - b _0811845C - .align 2, 0 -_08118324: .4byte gUnknown_2022ACE -_08118328: - cmp r0, #2 - beq _08118384 - b _0811845C -_0811832E: - ldrh r0, [r5, #0x1e] - adds r1, r0, #1 - strh r1, [r5, #0x1e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r3, #0x14 - ldrsh r1, [r5, r3] - cmp r0, r1 - bge _08118342 - b _0811845C -_08118342: - strh r2, [r5, #0x1e] - ldrh r1, [r5, #0x20] - adds r1, #1 - strh r1, [r5, #0x20] - movs r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r0, #0x20 - ldrsh r1, [r5, r0] - movs r2, #0x10 - ldrsh r0, [r5, r2] - cmp r1, r0 - bne _0811845C - b _0811837C -_0811836A: - ldrh r0, [r5, #0x1c] - adds r0, #1 - strh r0, [r5, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r3, #0x12 - ldrsh r1, [r5, r3] - cmp r0, r1 - bne _0811845C -_0811837C: - ldrh r0, [r5, #0x26] - adds r0, #1 - strh r0, [r5, #0x26] - b _0811845C -_08118384: - ldrh r0, [r5, #0x1e] - adds r1, r0, #1 - strh r1, [r5, #0x1e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r3, #0x14 - ldrsh r1, [r5, r3] - cmp r0, r1 - blt _0811845C - strh r2, [r5, #0x1e] - ldrh r1, [r5, #0x20] - subs r1, #1 - strh r1, [r5, #0x20] - movs r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r0, #0x20 - ldrsh r4, [r5, r0] - cmp r4, #0 - bne _0811845C - movs r0, #0 - bl sub_080A4044 - ldr r0, _08118464 - strh r4, [r0] - ldr r0, _08118468 - strh r4, [r0] - ldr r4, _0811846C - movs r0, #0x48 - adds r1, r4, #0 - bl SetGpuReg - movs r0, #0x4a - adds r1, r4, #0 - bl SetGpuReg - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08118402 - movs r0, #0xa - bl GetGpuReg - mov r1, sp - strh r0, [r1] - mov r2, sp - ldrb r1, [r2] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - mov r0, sp - ldrh r1, [r0] - movs r0, #0xa - bl SetGpuReg -_08118402: - movs r0, #0 - bl GetGpuReg - adds r1, r0, #0 - movs r2, #0x80 - lsls r2, r2, #8 - adds r0, r2, #0 - eors r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r3, #8 - ldrsh r1, [r5, r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _08118470 - adds r0, r0, r4 - bl DestroySprite - movs r1, #0xc - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _08118456 - movs r2, #0xe - ldrsh r1, [r5, r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite -_08118456: - adds r0, r6, #0 - bl DestroyAnimVisualTask -_0811845C: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08118464: .4byte gUnknown_2022AD8 -_08118468: .4byte gUnknown_2022ADA -_0811846C: .4byte 0x00003F3F -_08118470: .4byte gUnknown_20205AC - thumb_func_end sub_081182B0 - - thumb_func_start AnimTask_GetBattleTerrain -AnimTask_GetBattleTerrain: @ 0x08118474 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0811848C - ldr r1, _08118490 - ldrb r1, [r1] - strh r1, [r2] - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_0811848C: .4byte gUnknown_20380BE -_08118490: .4byte gUnknown_2022C94 - thumb_func_end AnimTask_GetBattleTerrain - - thumb_func_start sub_08118494 -sub_08118494: @ 0x08118494 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0x80 - lsls r0, r0, #6 - bl AllocZeroed - ldr r1, _081184BC - ldr r1, [r1] - movs r2, #0xbe - lsls r2, r2, #1 - adds r1, r1, r2 - str r0, [r1] - adds r0, r4, #0 - bl DestroyAnimVisualTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081184BC: .4byte gUnknown_2024178 - thumb_func_end sub_08118494 - - thumb_func_start sub_081184C0 -sub_081184C0: @ 0x081184C0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r6, _081184EC - ldr r0, [r6] - movs r5, #0xbe - lsls r5, r5, #1 - adds r0, r0, r5 - ldr r0, [r0] - bl Free - ldr r0, [r6] - adds r0, r0, r5 - movs r1, #0 - str r1, [r0] - adds r0, r4, #0 - bl DestroyAnimVisualTask - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081184EC: .4byte gUnknown_2024178 - thumb_func_end sub_081184C0 - - thumb_func_start sub_081184F0 -sub_081184F0: @ 0x081184F0 - push {r4, r5, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r4, #0 - ldr r0, _08118530 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08118534 - str r4, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r0, #1 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_080A6E74 - adds r1, r0, #0 - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0811854C - movs r2, #1 -_08118522: - lsrs r1, r1, #1 - adds r4, #1 - adds r0, r1, #0 - ands r0, r2 - cmp r0, #0 - beq _08118522 - b _0811854C - .align 2, 0 -_08118530: .4byte gUnknown_20380BE -_08118534: - cmp r0, #1 - bne _08118540 - ldr r0, _0811853C - b _08118546 - .align 2, 0 -_0811853C: .4byte gUnknown_20380D6 -_08118540: - cmp r0, #2 - bne _0811854C - ldr r0, _0811857C -_08118546: - ldrb r0, [r0] - adds r4, r0, #0 - adds r4, #0x10 -_0811854C: - ldr r0, _08118580 - ldr r1, [r0] - ldr r0, _08118584 - movs r2, #2 - ldrsh r0, [r0, r2] - movs r2, #0xbe - lsls r2, r2, #1 - adds r1, r1, r2 - ldr r1, [r1] - lsls r0, r0, #5 - adds r0, r0, r1 - lsls r1, r4, #5 - ldr r2, _08118588 - adds r1, r1, r2 - movs r2, #0x20 - bl memcpy - adds r0, r5, #0 - bl DestroyAnimVisualTask - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0811857C: .4byte gUnknown_20380D7 -_08118580: .4byte gUnknown_2024178 -_08118584: .4byte gUnknown_20380BE -_08118588: .4byte gUnknown_20373B4 - thumb_func_end sub_081184F0 - - thumb_func_start sub_0811858C -sub_0811858C: @ 0x0811858C - push {r4, r5, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r4, #0 - ldr r0, _081185CC - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _081185D0 - str r4, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r0, #1 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_080A6E74 - adds r1, r0, #0 - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _081185E8 - movs r2, #1 -_081185BE: - lsrs r1, r1, #1 - adds r4, #1 - adds r0, r1, #0 - ands r0, r2 - cmp r0, #0 - beq _081185BE - b _081185E8 - .align 2, 0 -_081185CC: .4byte gUnknown_20380BE -_081185D0: - cmp r0, #1 - bne _081185DC - ldr r0, _081185D8 - b _081185E2 - .align 2, 0 -_081185D8: .4byte gUnknown_20380D6 -_081185DC: - cmp r0, #2 - bne _081185E8 - ldr r0, _08118618 -_081185E2: - ldrb r0, [r0] - adds r4, r0, #0 - adds r4, #0x10 -_081185E8: - lsls r0, r4, #5 - ldr r1, _0811861C - adds r0, r0, r1 - ldr r1, _08118620 - ldr r2, [r1] - ldr r1, _08118624 - movs r3, #2 - ldrsh r1, [r1, r3] - movs r3, #0xbe - lsls r3, r3, #1 - adds r2, r2, r3 - ldr r2, [r2] - lsls r1, r1, #5 - adds r1, r1, r2 - movs r2, #0x20 - bl memcpy - adds r0, r5, #0 - bl DestroyAnimVisualTask - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08118618: .4byte gUnknown_20380D7 -_0811861C: .4byte gUnknown_20373B4 -_08118620: .4byte gUnknown_2024178 -_08118624: .4byte gUnknown_20380BE - thumb_func_end sub_0811858C - - thumb_func_start sub_08118628 -sub_08118628: @ 0x08118628 - push {r4, r5, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r4, #0 - ldr r0, _08118668 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _0811866C - str r4, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r0, #1 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_080A6E74 - adds r1, r0, #0 - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08118684 - movs r2, #1 -_0811865A: - lsrs r1, r1, #1 - adds r4, #1 - adds r0, r1, #0 - ands r0, r2 - cmp r0, #0 - beq _0811865A - b _08118684 - .align 2, 0 -_08118668: .4byte gUnknown_20380BE -_0811866C: - cmp r0, #1 - bne _08118678 - ldr r0, _08118674 - b _0811867E - .align 2, 0 -_08118674: .4byte gUnknown_20380D6 -_08118678: - cmp r0, #2 - bne _08118684 - ldr r0, _081186A4 -_0811867E: - ldrb r0, [r0] - adds r4, r0, #0 - adds r4, #0x10 -_08118684: - lsls r1, r4, #5 - ldr r0, _081186A8 - adds r0, r1, r0 - ldr r2, _081186AC - adds r1, r1, r2 - movs r2, #0x20 - bl memcpy - adds r0, r5, #0 - bl DestroyAnimVisualTask - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081186A4: .4byte gUnknown_20380D7 -_081186A8: .4byte gUnknown_20373B4 -_081186AC: .4byte gUnknown_20377B4 - thumb_func_end sub_08118628 - - thumb_func_start AnimTask_IsContest -AnimTask_IsContest: @ 0x081186B0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl IsContest - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _081186D0 - ldr r1, _081186CC - movs r0, #1 - strh r0, [r1, #0xe] - b _081186D4 - .align 2, 0 -_081186CC: .4byte gUnknown_20380BE -_081186D0: - ldr r0, _081186E0 - strh r1, [r0, #0xe] -_081186D4: - adds r0, r4, #0 - bl DestroyAnimVisualTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081186E0: .4byte gUnknown_20380BE - thumb_func_end AnimTask_IsContest - - thumb_func_start sub_081186E4 -sub_081186E4: @ 0x081186E4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08118704 - ldr r1, _08118708 - ldrb r1, [r1] - strb r1, [r2] - ldr r2, _0811870C - ldr r1, _08118710 - ldrb r1, [r1] - strb r1, [r2] - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_08118704: .4byte gUnknown_20380D6 -_08118708: .4byte gUnknown_2023EB0 -_0811870C: .4byte gUnknown_20380D7 -_08118710: .4byte gUnknown_2023EB2 - thumb_func_end sub_081186E4 - - thumb_func_start AnimTask_IsTargetSameSide -AnimTask_IsTargetSameSide: @ 0x08118714 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _0811873C - ldrb r0, [r0] - bl GetBattlerSide - adds r4, r0, #0 - ldr r0, _08118740 - ldrb r0, [r0] - bl GetBattlerSide - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - bne _08118748 - ldr r1, _08118744 - movs r0, #1 - b _0811874C - .align 2, 0 -_0811873C: .4byte gUnknown_20380D6 -_08118740: .4byte gUnknown_20380D7 -_08118744: .4byte gUnknown_20380BE -_08118748: - ldr r1, _0811875C - movs r0, #0 -_0811874C: - strh r0, [r1, #0xe] - adds r0, r5, #0 - bl DestroyAnimVisualTask - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0811875C: .4byte gUnknown_20380BE - thumb_func_end AnimTask_IsTargetSameSide - - thumb_func_start sub_08118760 -sub_08118760: @ 0x08118760 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08118778 - ldr r1, _0811877C - ldrb r1, [r1] - strb r1, [r2] - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_08118778: .4byte gUnknown_20380D7 -_0811877C: .4byte gUnknown_2023EB0 - thumb_func_end sub_08118760 - - thumb_func_start sub_08118780 -sub_08118780: @ 0x08118780 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _081187A0 - ldr r1, _081187A4 - ldrb r1, [r1] - strb r1, [r2] - ldr r2, _081187A8 - ldr r1, _081187AC - ldrb r1, [r1] - strb r1, [r2] - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_081187A0: .4byte gUnknown_20380D6 -_081187A4: .4byte gUnknown_2023EAF -_081187A8: .4byte gUnknown_20380D7 -_081187AC: .4byte gUnknown_2023EB2 - thumb_func_end sub_08118780 - - thumb_func_start sub_081187B0 -sub_081187B0: @ 0x081187B0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081187C8 - adds r0, r4, #0 - bl DestroyAnimVisualTask - b _08118804 -_081187C8: - ldr r0, _0811880C - lsls r3, r4, #2 - adds r3, r3, r4 - lsls r3, r3, #3 - adds r3, r3, r0 - ldr r0, _08118810 - ldr r4, [r0] - ldr r2, _08118814 - ldrb r0, [r2] - ldr r1, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - lsls r0, r0, #0x1f - lsrs r0, r0, #0x1f - strh r0, [r3, #8] - ldrb r1, [r2] - ldr r0, [r4] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1] - movs r2, #1 - orrs r0, r2 - strb r0, [r1] - ldr r0, _08118818 - str r0, [r3] - ldr r1, _0811881C - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] -_08118804: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811880C: .4byte gUnknown_3005B60 -_08118810: .4byte gUnknown_2024174 -_08118814: .4byte gUnknown_20380D6 -_08118818: .4byte sub_08118820 -_0811881C: .4byte gUnknown_203809E - thumb_func_end sub_081187B0 - - thumb_func_start sub_08118820 -sub_08118820: @ 0x08118820 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0811886C - movs r2, #0xe - ldrsh r1, [r0, r2] - movs r0, #0x80 - lsls r0, r0, #5 - cmp r1, r0 - bne _08118864 - ldr r0, _08118870 - ldr r1, [r0] - ldr r0, _08118874 - ldrb r3, [r0] - ldr r0, [r1] - lsls r3, r3, #2 - adds r3, r3, r0 - ldr r1, _08118878 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r0, [r0, #8] - movs r1, #1 - ands r1, r0 - ldrb r2, [r3] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - adds r0, r4, #0 - bl DestroyTask -_08118864: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811886C: .4byte gUnknown_20380BE -_08118870: .4byte gUnknown_2024174 -_08118874: .4byte gUnknown_20380D6 -_08118878: .4byte gUnknown_3005B60 - thumb_func_end sub_08118820 - - thumb_func_start SetAnimBgAttribute -SetAnimBgAttribute: @ 0x0811887C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r4, r2, #0x18 - cmp r6, #3 - bls _08118890 - b _08118982 -_08118890: - ldr r0, _081188AC - adds r0, r6, r0 - ldrb r0, [r0] - bl GetGpuReg - ldr r1, _081188B0 - strh r0, [r1] - cmp r5, #6 - bhi _08118974 - lsls r0, r5, #2 - ldr r1, _081188B4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081188AC: .4byte gUnknown_8572FFE -_081188B0: .4byte gUnknown_2039DE0 -_081188B4: .4byte _081188B8 -_081188B8: @ jump table - .4byte _081188D4 @ case 0 - .4byte _081188E8 @ case 1 - .4byte _08118900 @ case 2 - .4byte _08118918 @ case 3 - .4byte _08118930 @ case 4 - .4byte _0811894C @ case 5 - .4byte _08118960 @ case 6 -_081188D4: - ldr r2, _081188E4 - lsls r3, r4, #6 - ldrb r1, [r2, #1] - movs r0, #0x3f - ands r0, r1 - orrs r0, r3 - strb r0, [r2, #1] - b _08118974 - .align 2, 0 -_081188E4: .4byte gUnknown_2039DE0 -_081188E8: - ldr r3, _081188FC - movs r0, #1 - adds r1, r4, #0 - ands r1, r0 - lsls r1, r1, #5 - ldrb r2, [r3, #1] - movs r0, #0x21 - rsbs r0, r0, #0 - b _0811896E - .align 2, 0 -_081188FC: .4byte gUnknown_2039DE0 -_08118900: - ldr r3, _08118914 - movs r0, #1 - adds r1, r4, #0 - ands r1, r0 - lsls r1, r1, #6 - ldrb r2, [r3] - movs r0, #0x41 - rsbs r0, r0, #0 - b _0811893E - .align 2, 0 -_08118914: .4byte gUnknown_2039DE0 -_08118918: - ldr r3, _0811892C - movs r0, #3 - adds r1, r4, #0 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r3] - movs r0, #0xd - rsbs r0, r0, #0 - b _0811893E - .align 2, 0 -_0811892C: .4byte gUnknown_2039DE0 -_08118930: - ldr r3, _08118948 - movs r0, #3 - adds r1, r4, #0 - ands r1, r0 - ldrb r2, [r3] - movs r0, #4 - rsbs r0, r0, #0 -_0811893E: - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _08118974 - .align 2, 0 -_08118948: .4byte gUnknown_2039DE0 -_0811894C: - ldr r2, _0811895C - lsls r3, r4, #7 - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - orrs r0, r3 - strb r0, [r2] - b _08118974 - .align 2, 0 -_0811895C: .4byte gUnknown_2039DE0 -_08118960: - ldr r3, _08118988 - movs r0, #0x1f - adds r1, r4, #0 - ands r1, r0 - ldrb r2, [r3, #1] - movs r0, #0x20 - rsbs r0, r0, #0 -_0811896E: - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #1] -_08118974: - ldr r0, _0811898C - adds r0, r6, r0 - ldrb r0, [r0] - ldr r1, _08118988 - ldrh r1, [r1] - bl SetGpuReg -_08118982: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08118988: .4byte gUnknown_2039DE0 -_0811898C: .4byte gUnknown_8572FFE - thumb_func_end SetAnimBgAttribute - - thumb_func_start GetAnimBgAttribute -GetAnimBgAttribute: @ 0x08118990 - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - cmp r2, #3 - bhi _08118A18 - ldr r0, _081189BC - adds r0, r2, r0 - ldrb r0, [r0] - bl GetGpuReg - mov r1, sp - strh r0, [r1] - cmp r4, #6 - bhi _08118A18 - lsls r0, r4, #2 - ldr r1, _081189C0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081189BC: .4byte gUnknown_8573002 -_081189C0: .4byte _081189C4 -_081189C4: @ jump table - .4byte _081189E0 @ case 0 - .4byte _081189E8 @ case 1 - .4byte _081189F0 @ case 2 - .4byte _081189F8 @ case 3 - .4byte _08118A00 @ case 4 - .4byte _08118A08 @ case 5 - .4byte _08118A10 @ case 6 -_081189E0: - ldr r0, [sp] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x1e - b _08118A1A -_081189E8: - ldr r0, [sp] - lsls r0, r0, #0x12 - lsrs r0, r0, #0x1f - b _08118A1A -_081189F0: - ldr r0, [sp] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1f - b _08118A1A -_081189F8: - ldr r0, [sp] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1e - b _08118A1A -_08118A00: - ldr r0, [sp] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - b _08118A1A -_08118A08: - ldr r0, [sp] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1f - b _08118A1A -_08118A10: - ldr r0, [sp] - lsls r0, r0, #0x13 - lsrs r0, r0, #0x1b - b _08118A1A -_08118A18: - movs r0, #0 -_08118A1A: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetAnimBgAttribute - - thumb_func_start HandleIntroSlide -HandleIntroSlide: @ 0x08118A24 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r2, _08118A48 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - beq _08118A58 - ldr r0, _08118A4C - ldrh r1, [r0] - ldr r0, _08118A50 - cmp r1, r0 - beq _08118A58 - ldr r0, _08118A54 - b _08118AA8 - .align 2, 0 -_08118A48: .4byte gUnknown_2022C90 -_08118A4C: .4byte gUnknown_203886E -_08118A50: .4byte 0x00000C03 -_08118A54: .4byte BattleIntroSlidePartner -_08118A58: - ldr r2, [r2] - movs r0, #2 - ands r0, r2 - cmp r0, #0 - beq _08118A6C - ldr r0, _08118A68 - b _08118AA8 - .align 2, 0 -_08118A68: .4byte BattleIntroSlideLink -_08118A6C: - ldr r0, _08118A78 - ands r0, r2 - cmp r0, #0 - beq _08118A80 - ldr r0, _08118A7C - b _08118AA8 - .align 2, 0 -_08118A78: .4byte 0x003F0100 -_08118A7C: .4byte BattleIntroSlide3 -_08118A80: - movs r0, #0x80 - lsls r0, r0, #5 - ands r2, r0 - cmp r2, #0 - beq _08118AA0 - ldr r0, _08118A98 - ldrb r0, [r0] - cmp r0, #2 - beq _08118AA0 - movs r4, #3 - ldr r0, _08118A9C - b _08118AA8 - .align 2, 0 -_08118A98: .4byte gUnknown_829BDA4 -_08118A9C: .4byte BattleIntroSlide2 -_08118AA0: - ldr r1, _08118AD4 - lsls r0, r4, #2 - adds r0, r0, r1 - ldr r0, [r0] -_08118AA8: - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _08118AD8 - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0 - strh r0, [r1, #8] - 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 -_08118AD4: .4byte gUnknown_8573008 -_08118AD8: .4byte gUnknown_3005B60 - thumb_func_end HandleIntroSlide - - thumb_func_start sub_08118ADC -sub_08118ADC: @ 0x08118ADC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - ldr r0, _08118B28 - movs r1, #0 - strh r1, [r0] - ldr r0, _08118B2C - strh r1, [r0] - ldr r0, _08118B30 - strh r1, [r0] - ldr r0, _08118B34 - strh r1, [r0] - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - ldr r4, _08118B38 - movs r0, #0x48 - adds r1, r4, #0 - bl SetGpuReg - movs r0, #0x4a - adds r1, r4, #0 - bl SetGpuReg - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08118B28: .4byte gUnknown_2022ACC -_08118B2C: .4byte gUnknown_2022ACE -_08118B30: .4byte gUnknown_2022AD0 -_08118B34: .4byte gUnknown_2022AD2 -_08118B38: .4byte 0x00003F3F - thumb_func_end sub_08118ADC - - thumb_func_start BattleIntroSlide1 -BattleIntroSlide1: @ 0x08118B3C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08118B74 - ldrh r0, [r1] - adds r0, #6 - strh r0, [r1] - ldr r1, _08118B78 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #8 - ldrsh r0, [r0, r2] - mov r8, r1 - cmp r0, #4 - bls _08118B68 - b _08118D7A -_08118B68: - lsls r0, r0, #2 - ldr r1, _08118B7C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08118B74: .4byte gUnknown_2022ACC -_08118B78: .4byte gUnknown_3005B60 -_08118B7C: .4byte _08118B80 -_08118B80: @ jump table - .4byte _08118B94 @ case 0 - .4byte _08118BC4 @ case 1 - .4byte _08118BEC @ case 2 - .4byte _08118C34 @ case 3 - .4byte _08118D74 @ case 4 -_08118B94: - ldr r0, _08118BAC - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _08118BB0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - add r0, r8 - movs r1, #0x10 - b _08118BBA - .align 2, 0 -_08118BAC: .4byte gUnknown_2022C90 -_08118BB0: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - add r0, r8 - movs r1, #1 -_08118BBA: - strh r1, [r0, #0xc] - ldrh r1, [r0, #8] - adds r1, #1 - strh r1, [r0, #8] - b _08118D7A -_08118BC4: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - mov r3, r8 - adds r1, r0, r3 - ldrh r0, [r1, #0xc] - subs r0, #1 - strh r0, [r1, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08118BDC - b _08118D7A -_08118BDC: - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - movs r0, #0x48 - movs r1, #0x3f - bl SetGpuReg - b _08118D7A -_08118BEC: - ldr r1, _08118C28 - ldrh r0, [r1] - subs r0, #0xff - strh r0, [r1] - movs r1, #0xff - lsls r1, r1, #8 - ands r0, r1 - movs r1, #0xc0 - lsls r1, r1, #6 - cmp r0, r1 - beq _08118C04 - b _08118D7A -_08118C04: - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - add r1, r8 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - movs r0, #0xf0 - strh r0, [r1, #0xc] - movs r0, #0x20 - strh r0, [r1, #0xe] - ldr r2, _08118C2C - ldrh r1, [r2] - ldr r0, _08118C30 - ands r0, r1 - strh r0, [r2] - b _08118D7A - .align 2, 0 -_08118C28: .4byte gUnknown_2022ADA -_08118C2C: .4byte gUnknown_20240A0 -_08118C30: .4byte 0x0000FFFE -_08118C34: - lsls r0, r4, #2 - adds r1, r0, r4 - lsls r1, r1, #3 - mov r5, r8 - adds r2, r1, r5 - ldrh r3, [r2, #0xe] - movs r5, #0xe - ldrsh r1, [r2, r5] - mov ip, r0 - cmp r1, #0 - beq _08118C50 - subs r0, r3, #1 - strh r0, [r2, #0xe] - b _08118C7E -_08118C50: - movs r1, #0xa - ldrsh r0, [r2, r1] - cmp r0, #1 - bne _08118C70 - ldr r2, _08118C68 - ldrh r1, [r2] - ldr r0, _08118C6C - cmp r1, r0 - beq _08118C7E - subs r0, r1, #2 - b _08118C7C - .align 2, 0 -_08118C68: .4byte gUnknown_2022ACE -_08118C6C: .4byte 0x0000FFB0 -_08118C70: - ldr r2, _08118D50 - ldrh r1, [r2] - ldr r0, _08118D54 - cmp r1, r0 - beq _08118C7E - subs r0, r1, #1 -_08118C7C: - strh r0, [r2] -_08118C7E: - ldr r2, _08118D58 - ldrh r1, [r2] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08118C92 - ldr r3, _08118D5C - adds r0, r1, r3 - strh r0, [r2] -_08118C92: - mov r5, ip - adds r0, r5, r4 - lsls r0, r0, #3 - mov r2, r8 - adds r1, r0, r2 - ldrh r2, [r1, #0xc] - movs r3, #0xc - ldrsh r0, [r1, r3] - cmp r0, #0 - beq _08118CAA - subs r0, r2, #2 - strh r0, [r1, #0xc] -_08118CAA: - movs r3, #0 - ldr r5, _08118D60 - mov sb, r5 - ldr r7, _08118D64 - mov r6, sb - adds r5, r1, #0 -_08118CB6: - lsls r2, r3, #1 - ldrb r1, [r6, #0x14] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #7 - adds r2, r2, r0 - adds r2, r2, r7 - ldrh r0, [r5, #0xc] - strh r0, [r2] - adds r3, #1 - cmp r3, #0x4f - ble _08118CB6 - cmp r3, #0x9f - bgt _08118CFA - ldr r7, _08118D64 - ldr r6, _08118D60 - ldr r1, _08118D68 - mov r2, ip - adds r0, r2, r4 - lsls r0, r0, #3 - adds r5, r0, r1 -_08118CE0: - lsls r2, r3, #1 - ldrb r1, [r6, #0x14] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #7 - adds r2, r2, r0 - adds r2, r2, r7 - ldrh r0, [r5, #0xc] - rsbs r0, r0, #0 - strh r0, [r2] - adds r3, #1 - cmp r3, #0x9f - ble _08118CE0 -_08118CFA: - mov r3, ip - adds r0, r3, r4 - lsls r0, r0, #3 - mov r5, r8 - adds r1, r0, r5 - movs r0, #0xc - ldrsh r2, [r1, r0] - cmp r2, #0 - bne _08118D7A - movs r0, #3 - mov r3, sb - strb r0, [r3, #0x15] - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - str r2, [sp] - ldr r1, _08118D6C - ldr r2, _08118D70 - mov r0, sp - bl CpuSet - movs r0, #1 - movs r1, #1 - movs r2, #0 - bl SetBgAttribute - movs r0, #2 - movs r1, #1 - movs r2, #0 - bl SetBgAttribute - movs r1, #0x9c - lsls r1, r1, #8 - movs r0, #0xa - bl SetGpuReg - movs r1, #0xbc - lsls r1, r1, #7 - movs r0, #0xc - bl SetGpuReg - b _08118D7A - .align 2, 0 -_08118D50: .4byte gUnknown_2022ACE -_08118D54: .4byte 0x0000FFC8 -_08118D58: .4byte gUnknown_2022ADA -_08118D5C: .4byte 0xFFFFFC04 -_08118D60: .4byte gUnknown_20397C8 -_08118D64: .4byte gUnknown_20388C8 -_08118D68: .4byte gUnknown_3005B60 -_08118D6C: .4byte 0x0600E000 -_08118D70: .4byte 0x05000200 -_08118D74: - adds r0, r4, #0 - bl sub_08118ADC -_08118D7A: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end BattleIntroSlide1 - - thumb_func_start BattleIntroSlide2 -BattleIntroSlide2: @ 0x08118D88 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _08118DB4 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #0xa - ldrsh r0, [r0, r2] - adds r2, r1, #0 - cmp r0, #3 - beq _08118DC8 - cmp r0, #3 - bgt _08118DB8 - cmp r0, #2 - beq _08118DBC - b _08118DD0 - .align 2, 0 -_08118DB4: .4byte gUnknown_3005B60 -_08118DB8: - cmp r0, #4 - bne _08118DD0 -_08118DBC: - ldr r1, _08118DC4 - ldrh r0, [r1] - adds r0, #8 - b _08118DCE - .align 2, 0 -_08118DC4: .4byte gUnknown_2022ACC -_08118DC8: - ldr r1, _08118E0C - ldrh r0, [r1] - adds r0, #6 -_08118DCE: - strh r0, [r1] -_08118DD0: - lsls r0, r5, #2 - adds r1, r0, r5 - lsls r1, r1, #3 - adds r4, r1, r2 - movs r3, #0xa - ldrsh r1, [r4, r3] - adds r6, r0, #0 - cmp r1, #4 - bne _08118E34 - ldr r7, _08118E10 - ldrh r0, [r4, #0x14] - bl Cos2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _08118DF6 - ldr r1, _08118E14 - adds r0, r0, r1 -_08118DF6: - asrs r0, r0, #9 - subs r0, #8 - strh r0, [r7] - ldrh r1, [r4, #0x14] - movs r2, #0x14 - ldrsh r0, [r4, r2] - cmp r0, #0xb3 - bgt _08118E18 - adds r0, r1, #4 - b _08118E1A - .align 2, 0 -_08118E0C: .4byte gUnknown_2022ACC -_08118E10: .4byte gUnknown_2022ACE -_08118E14: .4byte 0x000001FF -_08118E18: - adds r0, r1, #6 -_08118E1A: - strh r0, [r4, #0x14] - ldr r2, _08118E50 - adds r0, r6, r5 - lsls r0, r0, #3 - adds r3, r0, r2 - movs r0, #0x14 - ldrsh r1, [r3, r0] - movs r0, #0xb4 - lsls r0, r0, #1 - cmp r1, r0 - bne _08118E34 - movs r0, #0 - strh r0, [r3, #0x14] -_08118E34: - adds r0, r6, r5 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r1, #8 - ldrsh r0, [r0, r1] - cmp r0, #4 - bls _08118E44 - b _0811906A -_08118E44: - lsls r0, r0, #2 - ldr r1, _08118E54 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08118E50: .4byte gUnknown_3005B60 -_08118E54: .4byte _08118E58 -_08118E58: @ jump table - .4byte _08118E6C @ case 0 - .4byte _08118E9C @ case 1 - .4byte _08118EC8 @ case 2 - .4byte _08118F18 @ case 3 - .4byte _08119064 @ case 4 -_08118E6C: - ldr r1, _08118E88 - adds r0, r6, r5 - lsls r0, r0, #3 - adds r2, r0, r1 - movs r3, #0x10 - strh r3, [r2, #0x10] - ldr r0, _08118E8C - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _08118E90 - strh r3, [r2, #0xc] - b _08118E94 - .align 2, 0 -_08118E88: .4byte gUnknown_3005B60 -_08118E8C: .4byte gUnknown_2022C90 -_08118E90: - movs r0, #1 - strh r0, [r2, #0xc] -_08118E94: - ldrh r0, [r2, #8] - adds r0, #1 - strh r0, [r2, #8] - b _0811906A -_08118E9C: - ldr r0, _08118EC4 - adds r1, r6, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0xc] - subs r0, #1 - strh r0, [r1, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08118EB2 - b _0811906A -_08118EB2: - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - movs r0, #0x48 - movs r1, #0x3f - bl SetGpuReg - b _0811906A - .align 2, 0 -_08118EC4: .4byte gUnknown_3005B60 -_08118EC8: - ldr r1, _08118F08 - ldrh r0, [r1] - subs r0, #0xff - strh r0, [r1] - movs r1, #0xff - lsls r1, r1, #8 - ands r0, r1 - movs r1, #0xc0 - lsls r1, r1, #6 - cmp r0, r1 - beq _08118EE0 - b _0811906A -_08118EE0: - ldr r0, _08118F0C - adds r1, r6, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - movs r0, #0xf0 - strh r0, [r1, #0xc] - movs r0, #0x20 - strh r0, [r1, #0xe] - movs r0, #1 - strh r0, [r1, #0x12] - ldr r2, _08118F10 - ldrh r1, [r2] - ldr r0, _08118F14 - ands r0, r1 - strh r0, [r2] - b _0811906A - .align 2, 0 -_08118F08: .4byte gUnknown_2022ADA -_08118F0C: .4byte gUnknown_3005B60 -_08118F10: .4byte gUnknown_20240A0 -_08118F14: .4byte 0x0000FFFE -_08118F18: - ldr r0, _08118F50 - adds r1, r6, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r2, [r1, #0xe] - movs r3, #0xe - ldrsh r0, [r1, r3] - cmp r0, #0 - beq _08118F58 - subs r0, r2, #1 - strh r0, [r1, #0xe] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08118F78 - ldr r1, _08118F54 - movs r0, #0x50 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0xf - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - b _08118F78 - .align 2, 0 -_08118F50: .4byte gUnknown_3005B60 -_08118F54: .4byte 0x00001842 -_08118F58: - ldrh r2, [r1, #0x10] - movs r0, #0x1f - ands r0, r2 - cmp r0, #0 - beq _08118F78 - ldrh r0, [r1, #0x12] - subs r0, #1 - strh r0, [r1, #0x12] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08118F78 - adds r0, r2, #0 - adds r0, #0xff - strh r0, [r1, #0x10] - movs r0, #4 - strh r0, [r1, #0x12] -_08118F78: - ldr r2, _08119048 - ldrh r1, [r2] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08118F8C - ldr r3, _0811904C - adds r0, r1, r3 - strh r0, [r2] -_08118F8C: - ldr r0, _08119050 - adds r1, r6, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r2, [r1, #0xc] - movs r3, #0xc - ldrsh r0, [r1, r3] - cmp r0, #0 - beq _08118FA2 - subs r0, r2, #2 - strh r0, [r1, #0xc] -_08118FA2: - movs r3, #0 - ldr r0, _08119054 - mov r8, r0 - ldr r2, _08119058 - mov ip, r2 - mov r7, r8 - adds r4, r1, #0 -_08118FB0: - lsls r2, r3, #1 - ldrb r1, [r7, #0x14] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #7 - adds r2, r2, r0 - add r2, ip - ldrh r0, [r4, #0xc] - strh r0, [r2] - adds r3, #1 - cmp r3, #0x4f - ble _08118FB0 - cmp r3, #0x9f - bgt _08118FF4 - ldr r0, _08119058 - mov ip, r0 - ldr r7, _08119054 - ldr r1, _08119050 - adds r0, r6, r5 - lsls r0, r0, #3 - adds r4, r0, r1 -_08118FDA: - lsls r2, r3, #1 - ldrb r1, [r7, #0x14] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #7 - adds r2, r2, r0 - add r2, ip - ldrh r0, [r4, #0xc] - rsbs r0, r0, #0 - strh r0, [r2] - adds r3, #1 - cmp r3, #0x9f - ble _08118FDA -_08118FF4: - ldr r1, _08119050 - adds r0, r6, r5 - lsls r0, r0, #3 - adds r1, r0, r1 - movs r3, #0xc - ldrsh r2, [r1, r3] - cmp r2, #0 - bne _0811906A - movs r0, #3 - mov r3, r8 - strb r0, [r3, #0x15] - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - str r2, [sp] - ldr r1, _0811905C - ldr r2, _08119060 - mov r0, sp - bl CpuSet - movs r0, #1 - movs r1, #1 - movs r2, #0 - bl SetBgAttribute - movs r0, #2 - movs r1, #1 - movs r2, #0 - bl SetBgAttribute - movs r1, #0x9c - lsls r1, r1, #8 - movs r0, #0xa - bl SetGpuReg - movs r1, #0xbc - lsls r1, r1, #7 - movs r0, #0xc - bl SetGpuReg - b _0811906A - .align 2, 0 -_08119048: .4byte gUnknown_2022ADA -_0811904C: .4byte 0xFFFFFC04 -_08119050: .4byte gUnknown_3005B60 -_08119054: .4byte gUnknown_20397C8 -_08119058: .4byte gUnknown_20388C8 -_0811905C: .4byte 0x0600E000 -_08119060: .4byte 0x05000200 -_08119064: - adds r0, r5, #0 - bl sub_08118ADC -_0811906A: - ldr r0, _08119090 - adds r1, r6, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r2, #8 - ldrsh r0, [r1, r2] - cmp r0, #4 - beq _08119082 - ldrh r1, [r1, #0x10] - movs r0, #0x52 - bl SetGpuReg -_08119082: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08119090: .4byte gUnknown_3005B60 - thumb_func_end BattleIntroSlide2 - - thumb_func_start BattleIntroSlide3 -BattleIntroSlide3: @ 0x08119094 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _081190C8 - ldrh r0, [r1] - adds r0, #8 - strh r0, [r1] - ldr r1, _081190CC - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #8 - ldrsh r0, [r0, r2] - adds r4, r1, #0 - cmp r0, #4 - bls _081190BE - b _081192E6 -_081190BE: - lsls r0, r0, #2 - ldr r1, _081190D0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081190C8: .4byte gUnknown_2022ACC -_081190CC: .4byte gUnknown_3005B60 -_081190D0: .4byte _081190D4 -_081190D4: @ jump table - .4byte _081190E8 @ case 0 - .4byte _08119140 @ case 1 - .4byte _0811916C @ case 2 - .4byte _081191BC @ case 3 - .4byte _081192E0 @ case 4 -_081190E8: - ldr r1, _08119120 - movs r0, #0x50 - bl SetGpuReg - ldr r4, _08119124 - movs r0, #0x52 - adds r1, r4, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - ldr r1, _08119128 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r2, r0, r1 - strh r4, [r2, #0x10] - ldr r0, _0811912C - ldr r0, [r0] - ldr r1, _08119130 - ands r0, r1 - cmp r0, #0 - beq _08119134 - movs r0, #0x10 - b _08119136 - .align 2, 0 -_08119120: .4byte 0x00001842 -_08119124: .4byte 0x00000808 -_08119128: .4byte gUnknown_3005B60 -_0811912C: .4byte gUnknown_2022C90 -_08119130: .4byte gUnknown_2000002 -_08119134: - movs r0, #1 -_08119136: - strh r0, [r2, #0xc] - ldrh r0, [r2, #8] - adds r0, #1 - strh r0, [r2, #8] - b _081192E6 -_08119140: - ldr r0, _08119168 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0xc] - subs r0, #1 - strh r0, [r1, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08119158 - b _081192E6 -_08119158: - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - movs r0, #0x48 - movs r1, #0x3f - bl SetGpuReg - b _081192E6 - .align 2, 0 -_08119168: .4byte gUnknown_3005B60 -_0811916C: - ldr r1, _081191AC - ldrh r0, [r1] - subs r0, #0xff - strh r0, [r1] - movs r1, #0xff - lsls r1, r1, #8 - ands r0, r1 - movs r1, #0xc0 - lsls r1, r1, #6 - cmp r0, r1 - beq _08119184 - b _081192E6 -_08119184: - ldr r0, _081191B0 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - movs r0, #0xf0 - strh r0, [r1, #0xc] - movs r0, #0x20 - strh r0, [r1, #0xe] - movs r0, #1 - strh r0, [r1, #0x12] - ldr r2, _081191B4 - ldrh r1, [r2] - ldr r0, _081191B8 - ands r0, r1 - strh r0, [r2] - b _081192E6 - .align 2, 0 -_081191AC: .4byte gUnknown_2022ADA -_081191B0: .4byte gUnknown_3005B60 -_081191B4: .4byte gUnknown_20240A0 -_081191B8: .4byte 0x0000FFFE -_081191BC: - lsls r0, r5, #2 - adds r1, r0, r5 - lsls r1, r1, #3 - adds r2, r1, r4 - ldrh r3, [r2, #0xe] - movs r6, #0xe - ldrsh r1, [r2, r6] - mov ip, r0 - cmp r1, #0 - beq _081191D6 - subs r0, r3, #1 - strh r0, [r2, #0xe] - b _081191F6 -_081191D6: - ldrh r1, [r2, #0x10] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - beq _081191F6 - ldrh r0, [r2, #0x12] - subs r0, #1 - strh r0, [r2, #0x12] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _081191F6 - adds r0, r1, #0 - adds r0, #0xff - strh r0, [r2, #0x10] - movs r0, #6 - strh r0, [r2, #0x12] -_081191F6: - ldr r2, _081192C4 - ldrh r1, [r2] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0811920A - ldr r3, _081192C8 - adds r0, r1, r3 - strh r0, [r2] -_0811920A: - mov r6, ip - adds r0, r6, r5 - lsls r0, r0, #3 - adds r1, r0, r4 - ldrh r2, [r1, #0xc] - movs r3, #0xc - ldrsh r0, [r1, r3] - cmp r0, #0 - beq _08119220 - subs r0, r2, #2 - strh r0, [r1, #0xc] -_08119220: - movs r3, #0 - ldr r6, _081192CC - mov r8, r6 - ldr r7, _081192D0 - adds r4, r1, #0 -_0811922A: - lsls r2, r3, #1 - ldrb r1, [r6, #0x14] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #7 - adds r2, r2, r0 - adds r2, r2, r7 - ldrh r0, [r4, #0xc] - strh r0, [r2] - adds r3, #1 - cmp r3, #0x4f - ble _0811922A - cmp r3, #0x9f - bgt _0811926E - ldr r7, _081192D0 - ldr r6, _081192CC - ldr r1, _081192D4 - mov r2, ip - adds r0, r2, r5 - lsls r0, r0, #3 - adds r4, r0, r1 -_08119254: - lsls r2, r3, #1 - ldrb r1, [r6, #0x14] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #7 - adds r2, r2, r0 - adds r2, r2, r7 - ldrh r0, [r4, #0xc] - rsbs r0, r0, #0 - strh r0, [r2] - adds r3, #1 - cmp r3, #0x9f - ble _08119254 -_0811926E: - ldr r1, _081192D4 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r1, r0, r1 - movs r3, #0xc - ldrsh r2, [r1, r3] - cmp r2, #0 - bne _081192E6 - movs r0, #3 - mov r6, r8 - strb r0, [r6, #0x15] - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - str r2, [sp] - ldr r1, _081192D8 - ldr r2, _081192DC - mov r0, sp - bl CpuSet - movs r0, #1 - movs r1, #1 - movs r2, #0 - bl SetBgAttribute - movs r0, #2 - movs r1, #1 - movs r2, #0 - bl SetBgAttribute - movs r1, #0x9c - lsls r1, r1, #8 - movs r0, #0xa - bl SetGpuReg - movs r1, #0xbc - lsls r1, r1, #7 - movs r0, #0xc - bl SetGpuReg - b _081192E6 - .align 2, 0 -_081192C4: .4byte gUnknown_2022ADA -_081192C8: .4byte 0xFFFFFC04 -_081192CC: .4byte gUnknown_20397C8 -_081192D0: .4byte gUnknown_20388C8 -_081192D4: .4byte gUnknown_3005B60 -_081192D8: .4byte 0x0600E000 -_081192DC: .4byte 0x05000200 -_081192E0: - adds r0, r5, #0 - bl sub_08118ADC -_081192E6: - ldr r0, _0811930C - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r2, #8 - ldrsh r0, [r1, r2] - cmp r0, #4 - beq _08119300 - ldrh r1, [r1, #0x10] - movs r0, #0x52 - bl SetGpuReg -_08119300: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0811930C: .4byte gUnknown_3005B60 - thumb_func_end BattleIntroSlide3 - - thumb_func_start BattleIntroSlideLink -BattleIntroSlideLink: @ 0x08119310 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _0811935C - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r7, r0, r1 - movs r1, #8 - ldrsh r0, [r7, r1] - cmp r0, #1 - ble _08119386 - movs r2, #0x10 - ldrsh r0, [r7, r2] - cmp r0, #0 - bne _08119386 - ldr r2, _08119360 - ldrh r1, [r2] - movs r0, #0x80 - lsls r0, r0, #8 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0 - bne _0811934E - cmp r1, #0x4f - bhi _08119368 -_0811934E: - adds r0, r1, #3 - strh r0, [r2] - ldr r1, _08119364 - ldrh r0, [r1] - subs r0, #3 - strh r0, [r1] - b _08119386 - .align 2, 0 -_0811935C: .4byte gUnknown_3005B60 -_08119360: .4byte gUnknown_2022ACC -_08119364: .4byte gUnknown_2022AD0 -_08119368: - str r5, [sp] - ldr r1, _081193A8 - ldr r4, _081193AC - mov r0, sp - adds r2, r4, #0 - bl CpuSet - str r5, [sp, #4] - add r0, sp, #4 - ldr r1, _081193B0 - adds r2, r4, #0 - bl CpuSet - movs r0, #1 - strh r0, [r7, #0x10] -_08119386: - ldr r0, _081193B4 - lsls r2, r6, #2 - adds r1, r2, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r3, #8 - ldrsh r1, [r1, r3] - mov sb, r0 - adds r5, r2, #0 - cmp r1, #4 - bls _0811939E - b _081195AA -_0811939E: - lsls r0, r1, #2 - ldr r1, _081193B8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081193A8: .4byte 0x0600E000 -_081193AC: .4byte 0x05000200 -_081193B0: .4byte 0x0600F000 -_081193B4: .4byte gUnknown_3005B60 -_081193B8: .4byte _081193BC -_081193BC: @ jump table - .4byte _081193D0 @ case 0 - .4byte _081193E2 @ case 1 - .4byte _08119488 @ case 2 - .4byte _081194CC @ case 3 - .4byte _081195A4 @ case 4 -_081193D0: - adds r0, r5, r6 - lsls r0, r0, #3 - add r0, sb - movs r1, #0x20 - strh r1, [r0, #0xc] - ldrh r1, [r0, #8] - adds r1, #1 - strh r1, [r0, #8] - b _081195AA -_081193E2: - adds r0, r5, r6 - lsls r0, r0, #3 - mov r2, sb - adds r1, r0, r2 - ldrh r0, [r1, #0xc] - subs r0, #1 - strh r0, [r1, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _081193F8 - b _081195AA -_081193F8: - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - ldr r4, _08119478 - ldr r5, _0811947C - ldr r0, [r5] - adds r0, #0x7d - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r3, [r1, #1] - movs r2, #0xd - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r3 - movs r3, #8 - mov sb, r3 - mov r3, sb - orrs r0, r3 - strb r0, [r1, #1] - ldr r3, [r5] - adds r0, r3, #0 - adds r0, #0x7d - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - movs r1, #0x1c - adds r1, r1, r4 - mov r8, r1 - add r0, r8 - ldr r6, _08119480 - str r6, [r0] - adds r3, #0x7e - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r1, [r0, #1] - ands r2, r1 - mov r3, sb - orrs r2, r3 - strb r2, [r0, #1] - ldr r0, [r5] - adds r0, #0x7e - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - str r6, [r0] - movs r0, #0x48 - movs r1, #0x3f - bl SetGpuReg - ldr r1, _08119484 - movs r0, #0x4a - bl SetGpuReg - b _081195AA - .align 2, 0 -_08119478: .4byte gUnknown_20205AC -_0811947C: .4byte gUnknown_2024140 -_08119480: .4byte sub_08038828 -_08119484: .4byte 0x00003F06 -_08119488: - ldr r1, _081194C0 - ldrh r0, [r1] - subs r0, #0xff - strh r0, [r1] - movs r1, #0xff - lsls r1, r1, #8 - ands r0, r1 - movs r1, #0xc0 - lsls r1, r1, #6 - cmp r0, r1 - beq _081194A0 - b _081195AA -_081194A0: - adds r1, r5, r6 - lsls r1, r1, #3 - add r1, sb - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - movs r0, #0xf0 - strh r0, [r1, #0xc] - movs r0, #0x20 - strh r0, [r1, #0xe] - ldr r2, _081194C4 - ldrh r1, [r2] - ldr r0, _081194C8 - ands r0, r1 - strh r0, [r2] - b _081195AA - .align 2, 0 -_081194C0: .4byte gUnknown_2022ADA -_081194C4: .4byte gUnknown_20240A0 -_081194C8: .4byte 0x0000FFFE -_081194CC: - ldr r2, _08119590 - ldrh r1, [r2] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - cmp r0, #0 - beq _081194E0 - ldr r3, _08119594 - adds r0, r1, r3 - strh r0, [r2] -_081194E0: - adds r0, r5, r6 - lsls r0, r0, #3 - mov r2, sb - adds r1, r0, r2 - ldrh r2, [r1, #0xc] - movs r3, #0xc - ldrsh r0, [r1, r3] - cmp r0, #0 - beq _081194F6 - subs r0, r2, #2 - strh r0, [r1, #0xc] -_081194F6: - movs r3, #0 - ldr r0, _08119598 - mov ip, r0 - ldr r2, _0811959C - mov r8, r2 - mov r7, ip - adds r4, r1, #0 -_08119504: - lsls r2, r3, #1 - ldrb r1, [r7, #0x14] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #7 - adds r2, r2, r0 - add r2, r8 - ldrh r0, [r4, #0xc] - strh r0, [r2] - adds r3, #1 - cmp r3, #0x4f - ble _08119504 - cmp r3, #0x9f - bgt _08119548 - ldr r0, _0811959C - mov r8, r0 - ldr r7, _08119598 - ldr r1, _081195A0 - adds r0, r5, r6 - lsls r0, r0, #3 - adds r4, r0, r1 -_0811952E: - lsls r2, r3, #1 - ldrb r1, [r7, #0x14] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #7 - adds r2, r2, r0 - add r2, r8 - ldrh r0, [r4, #0xc] - rsbs r0, r0, #0 - strh r0, [r2] - adds r3, #1 - cmp r3, #0x9f - ble _0811952E -_08119548: - adds r0, r5, r6 - lsls r0, r0, #3 - mov r2, sb - adds r1, r0, r2 - movs r3, #0xc - ldrsh r0, [r1, r3] - cmp r0, #0 - bne _081195AA - movs r0, #3 - mov r2, ip - strb r0, [r2, #0x15] - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - movs r0, #1 - movs r1, #1 - movs r2, #0 - bl SetBgAttribute - movs r0, #2 - movs r1, #1 - movs r2, #0 - bl SetBgAttribute - movs r1, #0x9c - lsls r1, r1, #8 - movs r0, #0xa - bl SetGpuReg - movs r1, #0xbc - lsls r1, r1, #7 - movs r0, #0xc - bl SetGpuReg - b _081195AA - .align 2, 0 -_08119590: .4byte gUnknown_2022ADA -_08119594: .4byte 0xFFFFFC04 -_08119598: .4byte gUnknown_20397C8 -_0811959C: .4byte gUnknown_20388C8 -_081195A0: .4byte gUnknown_3005B60 -_081195A4: - adds r0, r6, #0 - bl sub_08118ADC -_081195AA: - add sp, #8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end BattleIntroSlideLink - - thumb_func_start BattleIntroSlidePartner -BattleIntroSlidePartner: @ 0x081195B8 - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _081195E0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #8 - ldrsh r0, [r0, r2] - adds r6, r1, #0 - cmp r0, #5 - bls _081195D6 - b _08119802 -_081195D6: - lsls r0, r0, #2 - ldr r1, _081195E4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081195E0: .4byte gUnknown_3005B60 -_081195E4: .4byte _081195E8 -_081195E8: @ jump table - .4byte _08119600 @ case 0 - .4byte _0811960E @ case 1 - .4byte _0811969C @ case 2 - .4byte _081196F8 @ case 3 - .4byte _08119750 @ case 4 - .4byte _081197FC @ case 5 -_08119600: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r6 - movs r1, #1 - strh r1, [r0, #0xc] - b _081197D4 -_0811960E: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r1, r0, r6 - ldrh r0, [r1, #0xc] - subs r0, #1 - strh r0, [r1, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08119624 - b _08119802 -_08119624: - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - ldr r1, _0811967C - movs r0, #0xa - bl SetGpuReg - ldr r1, _08119680 - movs r0, #0xc - bl SetGpuReg - movs r0, #0 - bl GetGpuReg - adds r1, r0, #0 - ldr r2, _08119684 - adds r0, r2, #0 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0 - bl SetGpuReg - movs r1, #0xf8 - lsls r1, r1, #6 - movs r0, #0x48 - bl SetGpuReg - ldr r1, _08119688 - movs r0, #0x4a - bl SetGpuReg - ldr r1, _0811968C - ldr r2, _08119690 - adds r0, r2, #0 - strh r0, [r1] - ldr r1, _08119694 - movs r0, #0xf0 - strh r0, [r1] - ldr r1, _08119698 - subs r2, #0xc0 - adds r0, r2, #0 - strh r0, [r1] - b _08119802 - .align 2, 0 -_0811967C: .4byte 0x00005C0A -_08119680: .4byte 0x00005E0A -_08119684: .4byte 0x0000F040 -_08119688: .4byte 0x00003F3F -_0811968C: .4byte gUnknown_2022ACA -_08119690: .4byte 0x0000FFD0 -_08119694: .4byte gUnknown_2022ACC -_08119698: .4byte gUnknown_2022AD0 -_0811969C: - ldr r2, _081196EC - ldrh r3, [r2] - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r1, #0 - adds r1, r3, r0 - strh r1, [r2] - movs r5, #0xff - lsls r5, r5, #8 - ands r1, r5 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r1, r0 - beq _081196BE - adds r0, r3, #0 - adds r0, #0xff - strh r0, [r2] -_081196BE: - ldrh r0, [r2] - adds r1, r5, #0 - ands r1, r0 - movs r0, #0x80 - lsls r0, r0, #6 - cmp r1, r0 - beq _081196CE - b _08119802 -_081196CE: - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r6 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - movs r0, #0xf0 - strh r0, [r1, #0xc] - ldr r2, _081196F0 - ldrh r1, [r2] - ldr r0, _081196F4 - ands r0, r1 - strh r0, [r2] - b _08119802 - .align 2, 0 -_081196EC: .4byte gUnknown_2022ADA -_081196F0: .4byte gUnknown_20240A0 -_081196F4: .4byte 0x0000FFFE -_081196F8: - ldr r3, _08119744 - ldrh r2, [r3] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r2 - movs r1, #0x98 - lsls r1, r1, #7 - cmp r0, r1 - beq _08119712 - movs r1, #0xff - lsls r1, r1, #2 - adds r0, r2, r1 - strh r0, [r3] -_08119712: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r3, r0, r6 - ldrh r1, [r3, #0xc] - movs r2, #0xc - ldrsh r0, [r3, r2] - cmp r0, #0 - beq _08119728 - subs r0, r1, #2 - strh r0, [r3, #0xc] -_08119728: - ldr r1, _08119748 - ldrh r0, [r3, #0xc] - strh r0, [r1] - ldr r2, _0811974C - rsbs r1, r0, #0 - strh r1, [r2] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08119802 - ldrh r0, [r3, #8] - adds r0, #1 - strh r0, [r3, #8] - b _08119802 - .align 2, 0 -_08119744: .4byte gUnknown_2022ADA -_08119748: .4byte gUnknown_2022ACC -_0811974C: .4byte gUnknown_2022AD0 -_08119750: - ldr r1, _081197DC - ldrh r0, [r1] - adds r3, r0, #2 - strh r3, [r1] - ldr r1, _081197E0 - ldrh r0, [r1] - adds r0, #2 - strh r0, [r1] - ldr r5, _081197E4 - ldrh r2, [r5] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r2 - movs r1, #0xa0 - lsls r1, r1, #7 - cmp r0, r1 - beq _08119778 - adds r0, r2, #0 - adds r0, #0xff - strh r0, [r5] -_08119778: - lsls r0, r3, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - bne _08119802 - str r0, [sp] - ldr r1, _081197E8 - ldr r2, _081197EC - mov r0, sp - bl CpuSet - movs r0, #0 - bl GetGpuReg - ldr r1, _081197F0 - ands r1, r0 - movs r0, #0 - bl SetGpuReg - movs r0, #1 - movs r1, #1 - movs r2, #0 - bl SetBgAttribute - movs r0, #2 - movs r1, #1 - movs r2, #0 - bl SetBgAttribute - movs r1, #0x9c - lsls r1, r1, #8 - movs r0, #0xa - bl SetGpuReg - movs r1, #0xbc - lsls r1, r1, #7 - movs r0, #0xc - bl SetGpuReg - ldr r1, _081197F4 - movs r0, #3 - strb r0, [r1, #0x15] - ldr r1, _081197F8 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 -_081197D4: - ldrh r1, [r0, #8] - adds r1, #1 - strh r1, [r0, #8] - b _08119802 - .align 2, 0 -_081197DC: .4byte gUnknown_2022ACA -_081197E0: .4byte gUnknown_2022AD2 -_081197E4: .4byte gUnknown_2022ADA -_081197E8: .4byte 0x0600E000 -_081197EC: .4byte 0x05000800 -_081197F0: .4byte 0x0000BFFF -_081197F4: .4byte gUnknown_20397C8 -_081197F8: .4byte gUnknown_3005B60 -_081197FC: - adds r0, r4, #0 - bl sub_08118ADC -_08119802: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BattleIntroSlidePartner - - thumb_func_start sub_0811980C -sub_0811980C: @ 0x0811980C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - str r0, [sp] - adds r6, r2, #0 - adds r4, r3, #0 - ldr r0, [sp, #0x24] - ldr r7, [sp, #0x28] - ldr r2, [sp, #0x2c] - mov sb, r2 - ldr r5, [sp, #0x30] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - adds r0, r4, #0 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081198DC - ldr r2, [r1] - lsls r4, r4, #2 - adds r2, #4 - adds r2, r2, r4 - ldr r1, _081198E0 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #0xb - ldr r0, [r2] - adds r0, r0, r1 - movs r2, #0x80 - lsls r2, r2, #3 - adds r1, r7, #0 - bl CpuSet - ldr r1, [sp] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0x80 - lsls r2, r2, #5 - adds r1, r7, #0 - adds r3, r5, #0 - bl LoadBgTiles - adds r0, r6, #0 - adds r0, #8 - cmp r6, r0 - bge _081198B8 - mov ip, r0 - mov r2, r8 - lsls r7, r2, #1 -_0811988A: - mov r1, r8 - adds r2, r1, #0 - adds r2, #8 - adds r4, r6, #1 - cmp r1, r2 - bge _081198B2 - mov r0, sl - lsls r3, r0, #0xc - lsls r0, r6, #6 - add r0, sb - adds r6, r7, r0 - subs r1, r2, r1 -_081198A2: - adds r0, r5, #0 - orrs r0, r3 - strh r0, [r6] - adds r5, #1 - adds r6, #2 - subs r1, #1 - cmp r1, #0 - bne _081198A2 -_081198B2: - adds r6, r4, #0 - cmp r6, ip - blt _0811988A -_081198B8: - ldr r1, [sp] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0x80 - lsls r2, r2, #4 - mov r1, sb - movs r3, #0 - bl LoadBgTilemap - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081198DC: .4byte gUnknown_2024178 -_081198E0: .4byte gUnknown_2024188 - thumb_func_end sub_0811980C - - thumb_func_start unref_sub_8119094 -unref_sub_8119094: @ 0x081198E4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - ldr r4, [sp, #0x24] - ldr r5, [sp, #0x28] - mov r8, r5 - ldr r5, [sp, #0x2c] - ldr r6, [sp, #0x30] - mov sb, r6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov ip, r0 - lsls r1, r1, #0x18 - lsls r2, r2, #0x18 - lsls r3, r3, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov sl, r4 - mov r7, r8 - lsls r7, r7, #0x10 - lsrs r6, r7, #0x10 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - mov r0, sb - lsls r0, r0, #0x18 - mov sb, r0 - ldr r4, _081199A8 - ldr r0, _081199AC - ldr r0, [r0] - lsrs r2, r2, #0x16 - adds r0, #4 - adds r0, r0, r2 - lsrs r3, r3, #0xd - ldr r0, [r0] - adds r0, r0, r3 - str r0, [r4] - movs r0, #0xc0 - lsls r0, r0, #0x13 - adds r6, r6, r0 - str r6, [r4, #4] - ldr r0, _081199B0 - str r0, [r4, #8] - ldr r0, [r4, #8] - adds r2, r7, #0 - lsrs r2, r2, #0x15 - mov r6, sb - lsrs r6, r6, #0xf - subs r4, r2, r6 - lsrs r0, r1, #0x18 - adds r1, r0, #0 - adds r1, #8 - cmp r0, r1 - bge _08119998 - mov sb, r1 - mov r7, ip - lsls r7, r7, #1 - mov r8, r7 - lsls r5, r5, #0xb - str r5, [sp] -_08119960: - mov r2, ip - adds r3, r2, #0 - adds r3, #8 - adds r5, r0, #1 - cmp r2, r3 - bge _08119992 - mov r1, sl - lsls r6, r1, #0xc - lsls r0, r0, #6 - movs r7, #0xc0 - lsls r7, r7, #0x13 - adds r0, r0, r7 - ldr r1, [sp] - adds r0, r1, r0 - mov r7, r8 - adds r1, r7, r0 - subs r2, r3, r2 -_08119982: - adds r0, r4, #0 - orrs r0, r6 - strh r0, [r1] - adds r4, #1 - adds r1, #2 - subs r2, #1 - cmp r2, #0 - bne _08119982 -_08119992: - adds r0, r5, #0 - cmp r0, sb - blt _08119960 -_08119998: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081199A8: .4byte 0x040000D4 -_081199AC: .4byte gUnknown_2024178 -_081199B0: .4byte 0x80000400 - thumb_func_end unref_sub_8119094 - - thumb_func_start MovePlayerOnBike -MovePlayerOnBike: @ 0x081199B4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldr r0, _081199D8 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081199DC - adds r0, r3, #0 - adds r1, r4, #0 - bl MovePlayerOnMachBike - b _081199E4 - .align 2, 0 -_081199D8: .4byte gUnknown_2037230 -_081199DC: - adds r0, r3, #0 - adds r1, r4, #0 - bl MovePlayerOnAcroBike -_081199E4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end MovePlayerOnBike - - thumb_func_start MovePlayerOnMachBike -MovePlayerOnMachBike: @ 0x081199EC - push {r4, lr} - sub sp, #4 - mov r1, sp - strb r0, [r1] - ldr r4, _08119A18 - mov r0, sp - bl GetMachBikeTransition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r0, r0, r4 - mov r1, sp - ldrb r1, [r1] - ldr r2, [r0] - adds r0, r1, #0 - bl _call_via_r2 - add sp, #4 - thumb_func_end MovePlayerOnMachBike - - thumb_func_start sub_08119A10 -sub_08119A10: @ 0x08119A10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08119A18: .4byte gUnknown_8573030 - thumb_func_end sub_08119A10 - - thumb_func_start GetMachBikeTransition -GetMachBikeTransition: @ 0x08119A1C - push {r4, lr} - adds r4, r0, #0 - bl GetPlayerMovementDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r3, r0, #0 - ldrb r1, [r4] - cmp r1, #0 - bne _08119A44 - strb r0, [r4] - ldr r2, _08119A40 - ldrb r0, [r2, #0xb] - cmp r0, #0 - bne _08119A58 - strb r1, [r2, #2] - movs r0, #0 - b _08119A6C - .align 2, 0 -_08119A40: .4byte gUnknown_2037230 -_08119A44: - ldr r2, _08119A60 - cmp r1, r3 - beq _08119A68 - ldrb r0, [r2, #2] - cmp r0, #2 - beq _08119A68 - ldrb r0, [r2, #0xb] - cmp r0, #0 - beq _08119A64 - strb r3, [r4] -_08119A58: - movs r0, #2 - strb r0, [r2, #2] - movs r0, #3 - b _08119A6C - .align 2, 0 -_08119A60: .4byte gUnknown_2037230 -_08119A64: - movs r0, #1 - b _08119A6A -_08119A68: - movs r0, #2 -_08119A6A: - strb r0, [r2, #2] -_08119A6C: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetMachBikeTransition - - thumb_func_start MachBikeTransition_FaceDirection -MachBikeTransition_FaceDirection: @ 0x08119A74 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_0808B174 - bl Bike_SetBikeStill - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end MachBikeTransition_FaceDirection - - thumb_func_start MachBikeTransition_TurnDirection -MachBikeTransition_TurnDirection: @ 0x08119A88 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _08119AB8 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08119ABC - adds r4, r0, r1 - ldrb r1, [r4, #0x1e] - adds r0, r5, #0 - bl CanBikeFaceDirOnMetatile - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08119AC0 - adds r0, r5, #0 - bl PlayerTurnInPlace - bl Bike_SetBikeStill - b _08119ACA - .align 2, 0 -_08119AB8: .4byte gUnknown_2037230 -_08119ABC: .4byte gUnknown_2036FF0 -_08119AC0: - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bl MachBikeTransition_FaceDirection -_08119ACA: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end MachBikeTransition_TurnDirection - - thumb_func_start MachBikeTransition_TrySpeedUp -MachBikeTransition_TrySpeedUp: @ 0x08119AD0 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r7, r5, #0 - ldr r6, _08119B04 - ldrb r1, [r6, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08119B08 - adds r4, r0, r1 - ldrb r1, [r4, #0x1e] - adds r0, r5, #0 - bl CanBikeFaceDirOnMetatile - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08119B16 - ldrb r0, [r6, #0xb] - cmp r0, #0 - beq _08119B0C - ldrb r0, [r4, #0x18] - lsrs r0, r0, #4 - bl sub_08119B94 - b _08119B8A - .align 2, 0 -_08119B04: .4byte gUnknown_2037230 -_08119B08: .4byte gUnknown_2036FF0 -_08119B0C: - ldrb r0, [r4, #0x18] - lsrs r0, r0, #4 - bl MachBikeTransition_FaceDirection - b _08119B8A -_08119B16: - adds r0, r5, #0 - bl get_some_collision - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r1, #0xff - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - cmp r0, #0xa - bhi _08119B66 - cmp r4, #6 - bne _08119B38 - adds r0, r5, #0 - bl sub_0808B1A4 - b _08119B8A -_08119B38: - bl Bike_SetBikeStill - cmp r4, #4 - bne _08119B54 - adds r0, r5, #0 - bl IsPlayerCollidingWithFarawayIslandMew - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08119B54 - adds r0, r5, #0 - bl PlayerOnBikeCollideWithFarawayIslandMew - b _08119B8A -_08119B54: - subs r0, r4, #5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bls _08119B8A - adds r0, r7, #0 - bl PlayerOnBikeCollide - b _08119B8A -_08119B66: - ldr r1, _08119B90 - ldrb r0, [r6, #0xa] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r7, #0 - bl _call_via_r1 - ldrb r2, [r6, #0xa] - lsls r0, r2, #0x18 - lsrs r1, r0, #0x18 - lsrs r0, r0, #0x19 - adds r0, r2, r0 - strb r0, [r6, #0xb] - cmp r1, #1 - bhi _08119B8A - adds r0, r2, #1 - strb r0, [r6, #0xa] -_08119B8A: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08119B90: .4byte gUnknown_8573040 - thumb_func_end MachBikeTransition_TrySpeedUp - - thumb_func_start sub_08119B94 -sub_08119B94: @ 0x08119B94 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r7, r5, #0 - ldr r6, _08119BCC - ldrb r0, [r6, #0xb] - cmp r0, #0 - beq _08119BAA - subs r0, #1 - strb r0, [r6, #0xb] - strb r0, [r6, #0xa] -_08119BAA: - adds r0, r5, #0 - bl get_some_collision - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r1, #0xff - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - cmp r0, #0xa - bhi _08119BFE - cmp r4, #6 - bne _08119BD0 - adds r0, r5, #0 - bl sub_0808B1A4 - b _08119C0E - .align 2, 0 -_08119BCC: .4byte gUnknown_2037230 -_08119BD0: - bl Bike_SetBikeStill - cmp r4, #4 - bne _08119BEC - adds r0, r5, #0 - bl IsPlayerCollidingWithFarawayIslandMew - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08119BEC - adds r0, r5, #0 - bl PlayerOnBikeCollideWithFarawayIslandMew - b _08119C0E -_08119BEC: - subs r0, r4, #5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bls _08119C0E - adds r0, r7, #0 - bl PlayerOnBikeCollide - b _08119C0E -_08119BFE: - ldr r0, _08119C14 - ldrb r1, [r6, #0xa] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r7, #0 - bl _call_via_r1 -_08119C0E: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08119C14: .4byte gUnknown_8573040 - thumb_func_end sub_08119B94 - - thumb_func_start MovePlayerOnAcroBike -MovePlayerOnAcroBike: @ 0x08119C18 - push {r4, lr} - sub sp, #4 - mov r3, sp - strb r0, [r3] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldr r4, _08119C4C - mov r0, sp - bl CheckMovementInputAcroBike - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r0, r0, r4 - mov r1, sp - ldrb r1, [r1] - ldr r2, [r0] - adds r0, r1, #0 - bl _call_via_r2 - add sp, #4 - thumb_func_end MovePlayerOnAcroBike - - thumb_func_start sub_08119C44 -sub_08119C44: @ 0x08119C44 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08119C4C: .4byte gUnknown_857304C - thumb_func_end sub_08119C44 - - thumb_func_start CheckMovementInputAcroBike -CheckMovementInputAcroBike: @ 0x08119C50 - push {r4, lr} - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldr r4, _08119C74 - ldr r3, _08119C78 - ldrb r3, [r3, #8] - lsls r3, r3, #2 - adds r3, r3, r4 - ldr r3, [r3] - bl _call_via_r3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08119C74: .4byte gUnknown_8573080 -_08119C78: .4byte gUnknown_2037230 - thumb_func_end CheckMovementInputAcroBike - - thumb_func_start AcroBikeHandleInputNormal -AcroBikeHandleInputNormal: @ 0x08119C7C - push {r4, r5, r6, lr} - adds r4, r0, #0 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r5, r2, #0x10 - bl GetPlayerMovementDirection - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r2, _08119CB0 - movs r0, #0 - strb r0, [r2, #0xa] - ldrb r1, [r4] - cmp r1, #0 - bne _08119CBC - movs r0, #2 - ands r0, r6 - cmp r0, #0 - beq _08119CB4 - strb r3, [r4] - strb r1, [r2, #2] - movs r0, #2 - strb r0, [r2, #8] - movs r0, #3 - b _08119D10 - .align 2, 0 -_08119CB0: .4byte gUnknown_2037230 -_08119CB4: - strb r3, [r4] - strb r1, [r2, #2] - movs r0, #0 - b _08119D10 -_08119CBC: - cmp r1, r3 - bne _08119CE2 - movs r0, #2 - ands r0, r5 - cmp r0, #0 - beq _08119CDA - ldrb r0, [r2, #0xb] - cmp r0, #0 - bne _08119CDA - adds r0, #1 - strb r0, [r2, #0xb] - movs r0, #4 - strb r0, [r2, #8] - movs r0, #0xb - b _08119D10 -_08119CDA: - ldrb r0, [r4] - ldr r2, _08119D08 - cmp r0, r3 - beq _08119D0C -_08119CE2: - ldr r0, _08119D08 - ldrb r1, [r0, #2] - adds r2, r0, #0 - cmp r1, #2 - beq _08119D0C - movs r1, #0 - movs r0, #1 - strb r0, [r2, #8] - ldrb r0, [r4] - strb r0, [r2, #9] - strb r1, [r2, #2] - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r5, #0 - bl CheckMovementInputAcroBike - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _08119D10 - .align 2, 0 -_08119D08: .4byte gUnknown_2037230 -_08119D0C: - movs r0, #2 - strb r0, [r2, #2] -_08119D10: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end AcroBikeHandleInputNormal - - thumb_func_start AcroBikeHandleInputTurning -AcroBikeHandleInputTurning: @ 0x08119D18 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r4, _08119D40 - ldrb r0, [r4, #9] - strb r0, [r5] - ldrb r0, [r4, #0xa] - adds r0, #1 - strb r0, [r4, #0xa] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #6 - bls _08119D44 - movs r0, #1 - strb r0, [r4, #2] - movs r0, #0 - strb r0, [r4, #8] - bl Bike_SetBikeStill - movs r0, #1 - b _08119D8A - .align 2, 0 -_08119D40: .4byte gUnknown_2037230 -_08119D44: - bl GetPlayerMovementDirection - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - bl AcroBike_GetJumpDirection - ldrb r1, [r5] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r1, r0 - bne _08119D86 - bl Bike_SetBikeStill - movs r0, #1 - strb r0, [r4, #0xb] - adds r0, r6, #0 - bl GetOppositeDirection - ldrb r1, [r5] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r1, r0 - bne _08119D7A - movs r0, #6 - strb r0, [r4, #8] - movs r0, #9 - b _08119D8A -_08119D7A: - movs r0, #2 - strb r0, [r4, #2] - movs r0, #5 - strb r0, [r4, #8] - movs r0, #8 - b _08119D8A -_08119D86: - strb r6, [r5] - movs r0, #0 -_08119D8A: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end AcroBikeHandleInputTurning - - thumb_func_start AcroBikeHandleInputWheelieStanding -AcroBikeHandleInputWheelieStanding: @ 0x08119D90 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - lsls r4, r2, #0x10 - lsrs r4, r4, #0x10 - bl GetPlayerMovementDirection - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r5, _08119DDC - ldrb r1, [r5, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08119DE0 - adds r1, r0, r1 - movs r0, #0 - strb r0, [r5, #2] - movs r0, #2 - ands r4, r0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - cmp r4, #0 - bne _08119DE4 - strb r4, [r5, #0xa] - ldrb r0, [r1, #0x1e] - bl MetatileBehavior_IsBumpySlope - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _08119DEA - strb r6, [r7] - strb r0, [r5, #8] - bl Bike_SetBikeStill - movs r0, #4 - b _08119E28 - .align 2, 0 -_08119DDC: .4byte gUnknown_2037230 -_08119DE0: .4byte gUnknown_2036FF0 -_08119DE4: - ldrb r0, [r5, #0xa] - adds r0, #1 - strb r0, [r5, #0xa] -_08119DEA: - ldr r1, _08119E00 - ldrb r0, [r1, #0xa] - cmp r0, #0x27 - bls _08119E04 - strb r6, [r7] - movs r0, #3 - strb r0, [r1, #8] - bl Bike_SetBikeStill - movs r0, #6 - b _08119E28 - .align 2, 0 -_08119E00: .4byte gUnknown_2037230 -_08119E04: - ldrb r0, [r7] - cmp r0, r6 - bne _08119E1A - movs r0, #2 - strb r0, [r1, #2] - movs r0, #4 - strb r0, [r1, #8] - bl Bike_SetBikeStill - movs r0, #0xa - b _08119E28 -_08119E1A: - cmp r0, #0 - beq _08119E24 - movs r0, #1 - strb r0, [r1, #2] - b _08119E26 -_08119E24: - strb r6, [r7] -_08119E26: - movs r0, #5 -_08119E28: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end AcroBikeHandleInputWheelieStanding - - thumb_func_start AcroBikeHandleInputBunnyHop -AcroBikeHandleInputBunnyHop: @ 0x08119E30 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sb, r1 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - mov r8, r2 - bl GetPlayerMovementDirection - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r2, r5, #0 - ldr r4, _08119E90 - ldrb r1, [r4, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08119E94 - adds r7, r0, r1 - movs r0, #2 - mov r1, r8 - ands r0, r1 - cmp r0, #0 - bne _08119EA2 - bl Bike_SetBikeStill - ldrb r0, [r7, #0x1e] - bl MetatileBehavior_IsBumpySlope - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _08119E98 - movs r0, #2 - strb r0, [r4, #8] - adds r0, r6, #0 - mov r1, sb - mov r2, r8 - bl CheckMovementInputAcroBike - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _08119EC6 - .align 2, 0 -_08119E90: .4byte gUnknown_2037230 -_08119E94: .4byte gUnknown_2036FF0 -_08119E98: - strb r5, [r6] - strb r0, [r4, #2] - strb r0, [r4, #8] - movs r0, #4 - b _08119EC6 -_08119EA2: - ldrb r0, [r6] - cmp r0, #0 - bne _08119EAC - strb r5, [r6] - b _08119EB8 -_08119EAC: - cmp r0, r2 - beq _08119EBE - ldrb r0, [r4, #2] - cmp r0, #2 - beq _08119EBE - movs r0, #1 -_08119EB8: - strb r0, [r4, #2] - movs r0, #6 - b _08119EC6 -_08119EBE: - ldr r1, _08119ED4 - movs r0, #2 - strb r0, [r1, #2] - movs r0, #7 -_08119EC6: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08119ED4: .4byte gUnknown_2037230 - thumb_func_end AcroBikeHandleInputBunnyHop - - thumb_func_start AcroBikeHandleInputWheelieMoving -AcroBikeHandleInputWheelieMoving: @ 0x08119ED8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r6, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sl, r1 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - mov r8, r2 - bl GetPlayerFacingDirection - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r2, r5, #0 - ldr r4, _08119F34 - ldrb r1, [r4, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08119F38 - adds r7, r0, r1 - movs r0, #2 - mov sb, r0 - movs r0, #2 - mov r1, r8 - ands r0, r1 - cmp r0, #0 - bne _08119F70 - bl Bike_SetBikeStill - ldrb r0, [r7, #0x1e] - bl MetatileBehavior_IsBumpySlope - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _08119F5C - strb r1, [r4, #8] - ldrb r0, [r6] - cmp r0, #0 - bne _08119F3C - strb r5, [r6] - b _08119F46 - .align 2, 0 -_08119F34: .4byte gUnknown_2037230 -_08119F38: .4byte gUnknown_2036FF0 -_08119F3C: - cmp r0, r5 - beq _08119F4C - ldrb r0, [r4, #2] - cmp r0, #2 - beq _08119F4C -_08119F46: - strb r1, [r4, #2] - movs r0, #4 - b _08119FA0 -_08119F4C: - ldr r1, _08119F58 - movs r0, #2 - strb r0, [r1, #2] - movs r0, #0xc - b _08119FA0 - .align 2, 0 -_08119F58: .4byte gUnknown_2037230 -_08119F5C: - mov r0, sb - strb r0, [r4, #8] - adds r0, r6, #0 - mov r1, sl - mov r2, r8 - bl CheckMovementInputAcroBike - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _08119FA0 -_08119F70: - ldrb r0, [r6] - cmp r0, #0 - bne _08119F86 - strb r5, [r6] - mov r1, sb - strb r1, [r4, #8] - strb r0, [r4, #2] - bl Bike_SetBikeStill - movs r0, #5 - b _08119FA0 -_08119F86: - cmp r2, r0 - beq _08119F98 - ldrb r0, [r4, #2] - cmp r0, #2 - beq _08119F98 - movs r0, #0 - strb r0, [r4, #2] - movs r0, #5 - b _08119FA0 -_08119F98: - ldr r1, _08119FB0 - movs r0, #2 - strb r0, [r1, #2] - movs r0, #0xa -_08119FA0: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08119FB0: .4byte gUnknown_2037230 - thumb_func_end AcroBikeHandleInputWheelieMoving - - thumb_func_start AcroBikeHandleInputSidewaysJump -AcroBikeHandleInputSidewaysJump: @ 0x08119FB4 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - mov r8, r0 - adds r4, r1, #0 - adds r5, r2, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - ldr r6, _0811A008 - ldrb r1, [r6, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0811A00C - adds r0, r0, r1 - ldrb r2, [r0, #1] - movs r1, #3 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0, #1] - ldrb r1, [r0, #0x18] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - bl SetEventObjectDirection - movs r0, #0 - strb r0, [r6, #8] - mov r0, r8 - adds r1, r4, #0 - adds r2, r5, #0 - bl CheckMovementInputAcroBike - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0811A008: .4byte gUnknown_2037230 -_0811A00C: .4byte gUnknown_2036FF0 - thumb_func_end AcroBikeHandleInputSidewaysJump - - thumb_func_start AcroBikeHandleInputTurnJump -AcroBikeHandleInputTurnJump: @ 0x0811A010 - push {r4, lr} - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldr r4, _0811A030 - movs r3, #0 - strb r3, [r4, #8] - bl CheckMovementInputAcroBike - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0811A030: .4byte gUnknown_2037230 - thumb_func_end AcroBikeHandleInputTurnJump - - thumb_func_start AcroBikeTransition_TurnJump -AcroBikeTransition_TurnJump: @ 0x0811A034 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_0808B174 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AcroBikeTransition_TurnJump - - thumb_func_start AcroBikeTransition_TurnDirection -AcroBikeTransition_TurnDirection: @ 0x0811A044 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0811A078 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0811A07C - adds r5, r0, r1 - ldrb r1, [r5, #0x1e] - adds r0, r4, #0 - bl CanBikeFaceDirOnMetatile - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811A06A - ldrb r0, [r5, #0x18] - lsrs r4, r0, #4 -_0811A06A: - adds r0, r4, #0 - bl sub_0808B174 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0811A078: .4byte gUnknown_2037230 -_0811A07C: .4byte gUnknown_2036FF0 - thumb_func_end AcroBikeTransition_TurnDirection - - thumb_func_start AcroBikeTransition_Moving -AcroBikeTransition_Moving: @ 0x0811A080 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r6, r5, #0 - ldr r0, _0811A0B0 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0811A0B4 - adds r4, r0, r1 - ldrb r1, [r4, #0x1e] - adds r0, r5, #0 - bl CanBikeFaceDirOnMetatile - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811A0B8 - ldrb r0, [r4, #0x18] - lsrs r0, r0, #4 - bl AcroBikeTransition_TurnJump - b _0811A10A - .align 2, 0 -_0811A0B0: .4byte gUnknown_2037230 -_0811A0B4: .4byte gUnknown_2036FF0 -_0811A0B8: - adds r0, r5, #0 - bl get_some_collision - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r1, #0xff - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - cmp r0, #0xa - bhi _0811A104 - cmp r4, #6 - bne _0811A0DA - adds r0, r5, #0 - bl sub_0808B1A4 - b _0811A10A -_0811A0DA: - cmp r4, #4 - bne _0811A0F2 - adds r0, r5, #0 - bl IsPlayerCollidingWithFarawayIslandMew - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0811A0F2 - adds r0, r5, #0 - bl PlayerOnBikeCollideWithFarawayIslandMew - b _0811A10A -_0811A0F2: - subs r0, r4, #5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bls _0811A10A - adds r0, r6, #0 - bl PlayerOnBikeCollide - b _0811A10A -_0811A104: - adds r0, r6, #0 - bl pokemonanimfunc_49 -_0811A10A: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end AcroBikeTransition_Moving - - thumb_func_start AcroBikeTransition_NormalToWheelie -AcroBikeTransition_NormalToWheelie: @ 0x0811A110 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0811A144 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0811A148 - adds r5, r0, r1 - ldrb r1, [r5, #0x1e] - adds r0, r4, #0 - bl CanBikeFaceDirOnMetatile - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811A136 - ldrb r0, [r5, #0x18] - lsrs r4, r0, #4 -_0811A136: - adds r0, r4, #0 - bl PlayerStartWheelie - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0811A144: .4byte gUnknown_2037230 -_0811A148: .4byte gUnknown_2036FF0 - thumb_func_end AcroBikeTransition_NormalToWheelie - - thumb_func_start AcroBikeTransition_WheelieToNormal -AcroBikeTransition_WheelieToNormal: @ 0x0811A14C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0811A180 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0811A184 - adds r5, r0, r1 - ldrb r1, [r5, #0x1e] - adds r0, r4, #0 - bl CanBikeFaceDirOnMetatile - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811A172 - ldrb r0, [r5, #0x18] - lsrs r4, r0, #4 -_0811A172: - adds r0, r4, #0 - bl sub_0808B23C - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0811A180: .4byte gUnknown_2037230 -_0811A184: .4byte gUnknown_2036FF0 - thumb_func_end AcroBikeTransition_WheelieToNormal - - thumb_func_start AcroBikeTransition_WheelieIdle -AcroBikeTransition_WheelieIdle: @ 0x0811A188 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0811A1BC - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0811A1C0 - adds r5, r0, r1 - ldrb r1, [r5, #0x1e] - adds r0, r4, #0 - bl CanBikeFaceDirOnMetatile - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811A1AE - ldrb r0, [r5, #0x18] - lsrs r4, r0, #4 -_0811A1AE: - adds r0, r4, #0 - bl PlayerIdleWheelie - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0811A1BC: .4byte gUnknown_2037230 -_0811A1C0: .4byte gUnknown_2036FF0 - thumb_func_end AcroBikeTransition_WheelieIdle - - thumb_func_start AcroBikeTransition_WheelieHoppingStanding -AcroBikeTransition_WheelieHoppingStanding: @ 0x0811A1C4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0811A1F8 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0811A1FC - adds r5, r0, r1 - ldrb r1, [r5, #0x1e] - adds r0, r4, #0 - bl CanBikeFaceDirOnMetatile - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811A1EA - ldrb r0, [r5, #0x18] - lsrs r4, r0, #4 -_0811A1EA: - adds r0, r4, #0 - bl sub_0808B254 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0811A1F8: .4byte gUnknown_2037230 -_0811A1FC: .4byte gUnknown_2036FF0 - thumb_func_end AcroBikeTransition_WheelieHoppingStanding - - thumb_func_start AcroBikeTransition_WheelieHoppingMoving -AcroBikeTransition_WheelieHoppingMoving: @ 0x0811A200 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0811A22C - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0811A230 - adds r5, r0, r1 - ldrb r1, [r5, #0x1e] - adds r0, r4, #0 - bl CanBikeFaceDirOnMetatile - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811A234 - ldrb r0, [r5, #0x18] - lsrs r0, r0, #4 - bl AcroBikeTransition_WheelieHoppingStanding - b _0811A26E - .align 2, 0 -_0811A22C: .4byte gUnknown_2037230 -_0811A230: .4byte gUnknown_2036FF0 -_0811A234: - adds r0, r4, #0 - bl get_some_collision - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _0811A268 - cmp r1, #9 - beq _0811A268 - cmp r1, #6 - bne _0811A252 - adds r0, r4, #0 - bl PlayerLedgeHoppingWheelie - b _0811A26E -_0811A252: - subs r0, r1, #5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bls _0811A26E - cmp r1, #0xb - bhi _0811A268 - adds r0, r4, #0 - bl AcroBikeTransition_WheelieHoppingStanding - b _0811A26E -_0811A268: - adds r0, r4, #0 - bl PlayerMovingHoppingWheelie -_0811A26E: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end AcroBikeTransition_WheelieHoppingMoving - - thumb_func_start AcroBikeTransition_SideJump -AcroBikeTransition_SideJump: @ 0x0811A274 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r5, #0 - bl get_some_collision - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - cmp r0, #0 - beq _0811A2A8 - cmp r0, #7 - beq _0811A2D4 - cmp r0, #9 - bls _0811A2A0 - adds r0, r1, #0 - adds r1, r5, #0 - bl WillPlayerCollideWithCollision - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811A2A8 -_0811A2A0: - adds r0, r5, #0 - bl AcroBikeTransition_TurnDirection - b _0811A2D4 -_0811A2A8: - ldr r0, _0811A2DC - ldrb r0, [r0, #5] - lsls r4, r0, #3 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _0811A2E0 - adds r4, r4, r0 - movs r0, #0x22 - bl sub_080A306C - ldrb r0, [r4, #1] - movs r1, #2 - orrs r0, r1 - strb r0, [r4, #1] - adds r0, r5, #0 - bl sub_08092E84 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - bl PlayerSetAnimId -_0811A2D4: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0811A2DC: .4byte gUnknown_2037230 -_0811A2E0: .4byte gUnknown_2036FF0 - thumb_func_end AcroBikeTransition_SideJump - - thumb_func_start sub_0811A2E4 -sub_0811A2E4: @ 0x0811A2E4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl PlayerAcroTurnJump - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0811A2E4 - - thumb_func_start AcroBikeTransition_WheelieMoving -AcroBikeTransition_WheelieMoving: @ 0x0811A2F4 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r6, r4, #0 - ldr r7, _0811A324 - ldrb r1, [r7, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0811A328 - adds r5, r0, r1 - ldrb r1, [r5, #0x1e] - adds r0, r4, #0 - bl CanBikeFaceDirOnMetatile - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811A32C - ldrb r0, [r5, #0x18] - lsrs r0, r0, #4 - bl PlayerIdleWheelie - b _0811A37C - .align 2, 0 -_0811A324: .4byte gUnknown_2037230 -_0811A328: .4byte gUnknown_2036FF0 -_0811A32C: - adds r0, r4, #0 - bl get_some_collision - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r2, #0xff - lsls r2, r2, #0x18 - adds r0, r0, r2 - lsrs r0, r0, #0x18 - cmp r0, #0xa - bhi _0811A372 - cmp r1, #6 - bne _0811A34E - adds r0, r4, #0 - bl PlayerLedgeHoppingWheelie - b _0811A37C -_0811A34E: - cmp r1, #9 - beq _0811A362 - cmp r1, #4 - bhi _0811A37C - ldrb r0, [r5, #0x1e] - bl MetatileBehavior_IsBumpySlope - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0811A36A -_0811A362: - adds r0, r4, #0 - bl PlayerIdleWheelie - b _0811A37C -_0811A36A: - adds r0, r4, #0 - bl PlayerStandingHoppingWheelie - b _0811A37C -_0811A372: - adds r0, r6, #0 - bl sub_0808B320 - movs r0, #2 - strb r0, [r7, #2] -_0811A37C: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AcroBikeTransition_WheelieMoving - - thumb_func_start AcroBikeTransition_WheelieRisingMoving -AcroBikeTransition_WheelieRisingMoving: @ 0x0811A384 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r6, r4, #0 - ldr r7, _0811A3B4 - ldrb r1, [r7, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0811A3B8 - adds r5, r0, r1 - ldrb r1, [r5, #0x1e] - adds r0, r4, #0 - bl CanBikeFaceDirOnMetatile - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811A3BC - ldrb r0, [r5, #0x18] - lsrs r0, r0, #4 - bl PlayerStartWheelie - b _0811A40C - .align 2, 0 -_0811A3B4: .4byte gUnknown_2037230 -_0811A3B8: .4byte gUnknown_2036FF0 -_0811A3BC: - adds r0, r4, #0 - bl get_some_collision - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r2, #0xff - lsls r2, r2, #0x18 - adds r0, r0, r2 - lsrs r0, r0, #0x18 - cmp r0, #0xa - bhi _0811A402 - cmp r1, #6 - bne _0811A3DE - adds r0, r4, #0 - bl PlayerLedgeHoppingWheelie - b _0811A40C -_0811A3DE: - cmp r1, #9 - beq _0811A3F2 - cmp r1, #4 - bhi _0811A40C - ldrb r0, [r5, #0x1e] - bl MetatileBehavior_IsBumpySlope - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0811A3FA -_0811A3F2: - adds r0, r4, #0 - bl PlayerIdleWheelie - b _0811A40C -_0811A3FA: - adds r0, r4, #0 - bl PlayerStandingHoppingWheelie - b _0811A40C -_0811A402: - adds r0, r6, #0 - bl sub_0808B308 - movs r0, #2 - strb r0, [r7, #2] -_0811A40C: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AcroBikeTransition_WheelieRisingMoving - - thumb_func_start AcroBikeTransition_WheelieLoweringMoving -AcroBikeTransition_WheelieLoweringMoving: @ 0x0811A414 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r6, r4, #0 - ldr r0, _0811A444 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0811A448 - adds r5, r0, r1 - ldrb r1, [r5, #0x1e] - adds r0, r4, #0 - bl CanBikeFaceDirOnMetatile - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811A44C - ldrb r0, [r5, #0x18] - lsrs r0, r0, #4 - bl sub_0808B23C - b _0811A486 - .align 2, 0 -_0811A444: .4byte gUnknown_2037230 -_0811A448: .4byte gUnknown_2036FF0 -_0811A44C: - adds r0, r4, #0 - bl get_some_collision - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r2, #0xff - lsls r2, r2, #0x18 - adds r0, r0, r2 - lsrs r0, r0, #0x18 - cmp r0, #0xa - bhi _0811A480 - cmp r1, #6 - bne _0811A46E - adds r0, r4, #0 - bl sub_0808B1A4 - b _0811A486 -_0811A46E: - subs r0, r1, #5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bls _0811A486 - adds r0, r4, #0 - bl sub_0808B23C - b _0811A486 -_0811A480: - adds r0, r6, #0 - bl sub_0808B338 -_0811A486: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end AcroBikeTransition_WheelieLoweringMoving - - thumb_func_start Bike_TryAcroBikeHistoryUpdate -Bike_TryAcroBikeHistoryUpdate: @ 0x0811A48C - push {lr} - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r2, r1, #0x10 - ldr r0, _0811A4B0 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0811A4AA - adds r0, r3, #0 - adds r1, r2, #0 - bl AcroBike_TryHistoryUpdate -_0811A4AA: - pop {r0} - bx r0 - .align 2, 0 -_0811A4B0: .4byte gUnknown_2037230 - thumb_func_end Bike_TryAcroBikeHistoryUpdate - - thumb_func_start AcroBike_TryHistoryUpdate -AcroBike_TryHistoryUpdate: @ 0x0811A4B4 - push {r4, r5, lr} - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - adds r0, r5, #0 - bl Bike_DPadToDirection - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r4, _0811A4DC - ldr r0, [r4, #0xc] - movs r1, #0xf - ands r0, r1 - cmp r2, r0 - bne _0811A4E0 - ldrb r0, [r4, #0x14] - cmp r0, #0xfe - bhi _0811A4EA - adds r0, #1 - strb r0, [r4, #0x14] - b _0811A4EA - .align 2, 0 -_0811A4DC: .4byte gUnknown_2037230 -_0811A4E0: - adds r0, r2, #0 - bl Bike_UpdateDirTimerHistory - movs r0, #0 - strb r0, [r4, #0xb] -_0811A4EA: - movs r0, #0xf - adds r2, r5, #0 - ands r2, r0 - ldr r4, _0811A508 - ldr r0, [r4, #0x10] - movs r1, #0xf - ands r0, r1 - cmp r2, r0 - bne _0811A50C - ldrb r0, [r4, #0x1c] - cmp r0, #0xfe - bhi _0811A516 - adds r0, #1 - strb r0, [r4, #0x1c] - b _0811A516 - .align 2, 0 -_0811A508: .4byte gUnknown_2037230 -_0811A50C: - adds r0, r2, #0 - bl Bike_UpdateABStartSelectHistory - movs r0, #0 - strb r0, [r4, #0xb] -_0811A516: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end AcroBike_TryHistoryUpdate - - thumb_func_start HasPlayerInputTakenLongerThanList -HasPlayerInputTakenLongerThanList: @ 0x0811A51C - push {r4, r5, lr} - adds r3, r0, #0 - adds r4, r1, #0 - movs r2, #0 - ldrb r0, [r3] - cmp r0, #0 - beq _0811A546 - ldr r5, _0811A560 -_0811A52C: - adds r0, r2, r5 - adds r1, r3, r2 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bhi _0811A55C - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r0, r3, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _0811A52C -_0811A546: - movs r2, #0 - ldrb r0, [r4] - cmp r0, #0 - beq _0811A576 - ldr r3, _0811A564 -_0811A550: - adds r0, r2, r3 - adds r1, r4, r2 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _0811A568 -_0811A55C: - movs r0, #0 - b _0811A578 - .align 2, 0 -_0811A560: .4byte gUnknown_2037244 -_0811A564: .4byte gUnknown_203724C -_0811A568: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _0811A550 -_0811A576: - movs r0, #1 -_0811A578: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end HasPlayerInputTakenLongerThanList - - thumb_func_start AcroBike_GetJumpDirection -AcroBike_GetJumpDirection: @ 0x0811A580 - push {r4, r5, r6, lr} - movs r6, #0 - movs r5, #0 -_0811A586: - ldr r0, _0811A5B8 - adds r4, r5, r0 - ldr r0, _0811A5BC - ldr r1, [r0, #0xc] - ldr r2, [r0, #0x10] - ldr r0, [r4, #8] - ands r1, r0 - ldr r0, [r4, #0xc] - ands r2, r0 - ldr r0, [r4] - cmp r1, r0 - bne _0811A5C0 - ldr r0, [r4, #4] - cmp r2, r0 - bne _0811A5C0 - ldr r0, [r4, #0x10] - ldr r1, [r4, #0x14] - bl HasPlayerInputTakenLongerThanList - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0811A5C0 - ldrb r0, [r4, #0x18] - b _0811A5CA - .align 2, 0 -_0811A5B8: .4byte gUnknown_85730A4 -_0811A5BC: .4byte gUnknown_2037230 -_0811A5C0: - adds r5, #0x1c - adds r6, #1 - cmp r6, #3 - bls _0811A586 - movs r0, #0 -_0811A5CA: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end AcroBike_GetJumpDirection - - thumb_func_start Bike_UpdateDirTimerHistory -Bike_UpdateDirTimerHistory: @ 0x0811A5D0 - push {r4, lr} - lsls r0, r0, #0x18 - ldr r3, _0811A608 - ldr r2, [r3, #0xc] - lsls r2, r2, #4 - movs r1, #0xf0 - lsls r1, r1, #0x14 - ands r1, r0 - lsrs r1, r1, #0x18 - orrs r2, r1 - str r2, [r3, #0xc] - movs r1, #7 - adds r4, r3, #0 - adds r3, #0x14 -_0811A5EC: - adds r2, r1, r3 - subs r1, #1 - adds r0, r1, r3 - ldrb r0, [r0] - strb r0, [r2] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #0 - bne _0811A5EC - movs r0, #1 - strb r0, [r4, #0x14] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811A608: .4byte gUnknown_2037230 - thumb_func_end Bike_UpdateDirTimerHistory - - thumb_func_start Bike_UpdateABStartSelectHistory -Bike_UpdateABStartSelectHistory: @ 0x0811A60C - push {r4, lr} - lsls r0, r0, #0x18 - ldr r3, _0811A644 - ldr r2, [r3, #0x10] - lsls r2, r2, #4 - movs r1, #0xf0 - lsls r1, r1, #0x14 - ands r1, r0 - lsrs r1, r1, #0x18 - orrs r2, r1 - str r2, [r3, #0x10] - movs r1, #7 - adds r4, r3, #0 - adds r3, #0x1c -_0811A628: - adds r2, r1, r3 - subs r1, #1 - adds r0, r1, r3 - ldrb r0, [r0] - strb r0, [r2] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #0 - bne _0811A628 - movs r0, #1 - strb r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811A644: .4byte gUnknown_2037230 - thumb_func_end Bike_UpdateABStartSelectHistory - - thumb_func_start Bike_DPadToDirection -Bike_DPadToDirection: @ 0x0811A648 - push {lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - adds r2, r1, #0 - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0811A65C - movs r0, #2 - b _0811A682 -_0811A65C: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0811A668 - movs r0, #1 - b _0811A682 -_0811A668: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0811A674 - movs r0, #3 - b _0811A682 -_0811A674: - movs r0, #0x10 - ands r2, r0 - cmp r2, #0 - bne _0811A680 - movs r0, #0 - b _0811A682 -_0811A680: - movs r0, #4 -_0811A682: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end Bike_DPadToDirection - - thumb_func_start get_some_collision -get_some_collision: @ 0x0811A688 - push {r4, r5, r6, lr} - sub sp, #8 - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - ldr r0, _0811A6EC - ldrb r0, [r0, #5] - lsls r4, r0, #3 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _0811A6F0 - adds r4, r4, r0 - ldrh r1, [r4, #0x10] - add r0, sp, #4 - strh r1, [r0] - ldrh r0, [r4, #0x12] - mov r5, sp - adds r5, #6 - strh r0, [r5] - adds r0, r6, #0 - add r1, sp, #4 - adds r2, r5, #0 - bl MoveCoords - add r0, sp, #4 - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add r1, sp, #4 - 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 Bike_CheckCollisionTryAdvanceCollisionCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #8 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0811A6EC: .4byte gUnknown_2037230 -_0811A6F0: .4byte gUnknown_2036FF0 - thumb_func_end get_some_collision - - thumb_func_start Bike_CheckCollisionTryAdvanceCollisionCount -Bike_CheckCollisionTryAdvanceCollisionCount: @ 0x0811A6F4 - push {r4, r5, lr} - sub sp, #4 - ldr r4, [sp, #0x10] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r5, r4, #0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - str r5, [sp] - bl CheckForEventObjectCollision - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #4 - bhi _0811A734 - cmp r4, #0 - bne _0811A730 - adds r0, r5, #0 - bl IsRunningDisallowedByMetatile - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0811A72C - movs r4, #2 -_0811A72C: - cmp r4, #0 - beq _0811A734 -_0811A730: - bl Bike_TryAdvanceCyclingRoadCollisions -_0811A734: - adds r0, r4, #0 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end Bike_CheckCollisionTryAdvanceCollisionCount - - thumb_func_start RS_IsRunningDisallowed -RS_IsRunningDisallowed: @ 0x0811A740 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl IsRunningDisallowedByMetatile - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811A758 - ldr r0, _0811A75C - ldrb r0, [r0, #0x17] - cmp r0, #8 - bne _0811A760 -_0811A758: - movs r0, #1 - b _0811A762 - .align 2, 0 -_0811A75C: .4byte gUnknown_2036FB8 -_0811A760: - movs r0, #0 -_0811A762: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end RS_IsRunningDisallowed - - thumb_func_start IsRunningDisallowedByMetatile -IsRunningDisallowedByMetatile: @ 0x0811A768 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl MetatileBehavior_IsRunningDisallowed - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811A792 - adds r0, r4, #0 - bl MetatileBehavior_IsFortreeBridge - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0811A796 - bl PlayerGetZCoord - movs r1, #1 - ands r1, r0 - cmp r1, #0 - bne _0811A796 -_0811A792: - movs r0, #1 - b _0811A798 -_0811A796: - movs r0, #0 -_0811A798: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsRunningDisallowedByMetatile - - thumb_func_start Bike_TryAdvanceCyclingRoadCollisions -Bike_TryAdvanceCyclingRoadCollisions: @ 0x0811A7A0 - push {lr} - ldr r0, _0811A7BC - ldrb r0, [r0] - cmp r0, #0 - beq _0811A7B6 - ldr r1, _0811A7C0 - ldrb r0, [r1] - cmp r0, #0x63 - bhi _0811A7B6 - adds r0, #1 - strb r0, [r1] -_0811A7B6: - pop {r0} - bx r0 - .align 2, 0 -_0811A7BC: .4byte gUnknown_203A820 -_0811A7C0: .4byte gUnknown_203A821 - thumb_func_end Bike_TryAdvanceCyclingRoadCollisions - - thumb_func_start CanBikeFaceDirOnMetatile -CanBikeFaceDirOnMetatile: @ 0x0811A7C4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - adds r5, r4, #0 - movs r1, #0xfd - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0811A7EE - adds r0, r4, #0 - bl MetatileBehavior_IsIsolatedVerticalRail - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811A806 - adds r0, r4, #0 - bl MetatileBehavior_IsVerticalRail - b _0811A800 -_0811A7EE: - adds r0, r5, #0 - bl MetatileBehavior_IsIsolatedHorizontalRail - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811A806 - adds r0, r5, #0 - bl MetatileBehavior_IsHorizontalRail -_0811A800: - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0811A80A -_0811A806: - movs r0, #0 - b _0811A80C -_0811A80A: - movs r0, #1 -_0811A80C: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CanBikeFaceDirOnMetatile - - thumb_func_start WillPlayerCollideWithCollision -WillPlayerCollideWithCollision: @ 0x0811A814 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r2, r0, #0 - lsls r1, r1, #0x18 - movs r3, #0xff - lsls r3, r3, #0x18 - adds r1, r1, r3 - lsrs r1, r1, #0x18 - cmp r1, #1 - bhi _0811A834 - cmp r0, #0xa - beq _0811A83C - cmp r0, #0xc - bne _0811A840 - b _0811A83C -_0811A834: - cmp r2, #0xb - beq _0811A83C - cmp r2, #0xd - bne _0811A840 -_0811A83C: - movs r0, #0 - b _0811A842 -_0811A840: - movs r0, #1 -_0811A842: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end WillPlayerCollideWithCollision - - thumb_func_start IsBikingDisallowedByPlayer -IsBikingDisallowedByPlayer: @ 0x0811A848 - push {r4, lr} - sub sp, #4 - ldr r0, _0811A884 - ldrb r1, [r0] - movs r0, #0x18 - ands r0, r1 - cmp r0, #0 - bne _0811A888 - mov r4, sp - adds r4, #2 - 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, r0, #0x18 - lsrs r0, r0, #0x18 - bl IsRunningDisallowedByMetatile - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811A888 - movs r0, #0 - b _0811A88A - .align 2, 0 -_0811A884: .4byte gUnknown_2037230 -_0811A888: - movs r0, #1 -_0811A88A: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsBikingDisallowedByPlayer - - thumb_func_start IsMonValidSpecies -IsMonValidSpecies: @ 0x0811A894 - push {lr} - movs r0, #4 - bl TestPlayerAvatarFlags - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0811A8C8 - ldr r2, _0811A8C0 - ldr r0, _0811A8C4 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #0x1e] - bl MetatileBehavior_IsBumpySlope - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0811A8C8 - movs r0, #0 - b _0811A8CA - .align 2, 0 -_0811A8C0: .4byte gUnknown_2036FF0 -_0811A8C4: .4byte gUnknown_2037230 -_0811A8C8: - movs r0, #1 -_0811A8CA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsMonValidSpecies - - thumb_func_start GetOnOffBike -GetOnOffBike: @ 0x0811A8D0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _0811A8F8 - movs r0, #0 - strb r0, [r1] - ldr r0, _0811A8FC - ldrb r1, [r0] - movs r0, #6 - ands r0, r1 - cmp r0, #0 - beq _0811A900 - movs r0, #1 - bl SetPlayerAvatarTransitionFlags - bl Overworld_ClearSavedMusic - bl Overworld_PlaySpecialMapMusic - b _0811A914 - .align 2, 0 -_0811A8F8: .4byte gUnknown_2036FE8 -_0811A8FC: .4byte gUnknown_2037230 -_0811A900: - adds r0, r2, #0 - bl SetPlayerAvatarTransitionFlags - ldr r4, _0811A91C - adds r0, r4, #0 - bl Overworld_SetSavedMusic - adds r0, r4, #0 - bl GetTruckCameraBobbingY -_0811A914: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811A91C: .4byte 0x00000193 - thumb_func_end GetOnOffBike - - thumb_func_start BikeClearState -BikeClearState: @ 0x0811A920 - push {lr} - ldr r2, _0811A95C - movs r3, #0 - strb r3, [r2, #8] - strb r3, [r2, #9] - strb r3, [r2, #0xa] - strb r3, [r2, #0xb] - str r0, [r2, #0xc] - str r1, [r2, #0x10] - movs r1, #0 - adds r2, #0x14 -_0811A936: - adds r0, r1, r2 - strb r3, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #7 - bls _0811A936 - movs r1, #0 - ldr r3, _0811A960 - movs r2, #0 -_0811A94A: - adds r0, r1, r3 - strb r2, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #7 - bls _0811A94A - pop {r0} - bx r0 - .align 2, 0 -_0811A95C: .4byte gUnknown_2037230 -_0811A960: .4byte gUnknown_203724C - thumb_func_end BikeClearState - - thumb_func_start Bike_UpdateBikeCounterSpeed -Bike_UpdateBikeCounterSpeed: @ 0x0811A964 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0811A974 - strb r0, [r2, #0xa] - lsrs r1, r0, #1 - adds r0, r0, r1 - strb r0, [r2, #0xb] - bx lr - .align 2, 0 -_0811A974: .4byte gUnknown_2037230 - thumb_func_end Bike_UpdateBikeCounterSpeed - - thumb_func_start Bike_SetBikeStill -Bike_SetBikeStill: @ 0x0811A978 - ldr r1, _0811A984 - movs r0, #0 - strb r0, [r1, #0xa] - strb r0, [r1, #0xb] - bx lr - .align 2, 0 -_0811A984: .4byte gUnknown_2037230 - thumb_func_end Bike_SetBikeStill - - thumb_func_start GetPlayerSpeed -GetPlayerSpeed: @ 0x0811A988 - push {lr} - sub sp, #8 - ldr r1, _0811A9B0 - mov r0, sp - movs r2, #6 - bl memcpy - ldr r2, _0811A9B4 - ldrb r1, [r2] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0811A9B8 - ldrb r0, [r2, #0xa] - lsls r0, r0, #1 - add r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - b _0811A9D2 - .align 2, 0 -_0811A9B0: .4byte gUnknown_857309C -_0811A9B4: .4byte gUnknown_2037230 -_0811A9B8: - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0811A9C4 - movs r0, #3 - b _0811A9D2 -_0811A9C4: - movs r0, #0x88 - ands r0, r1 - cmp r0, #0 - bne _0811A9D0 - movs r0, #1 - b _0811A9D2 -_0811A9D0: - movs r0, #2 -_0811A9D2: - add sp, #8 - pop {r1} - bx r1 - thumb_func_end GetPlayerSpeed - - thumb_func_start Bike_HandleBumpySlopeJump -Bike_HandleBumpySlopeJump: @ 0x0811A9D8 - push {r4, r5, lr} - sub sp, #4 - ldr r5, _0811AA28 - ldrb r1, [r5] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0811AA20 - mov r4, sp - adds r4, #2 - 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, r0, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsBumpySlope - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0811AA20 - movs r0, #2 - strb r0, [r5, #8] - bl GetPlayerMovementDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_0808BB18 -_0811AA20: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0811AA28: .4byte gUnknown_2037230 - thumb_func_end Bike_HandleBumpySlopeJump - - thumb_func_start IsRunningDisallowed -IsRunningDisallowed: @ 0x0811AA2C - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _0811AA50 - ldrb r1, [r0, #0x1a] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0811AA4C - adds r0, r2, #0 - bl IsRunningDisallowedByMetatile - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0811AA54 -_0811AA4C: - movs r0, #1 - b _0811AA56 - .align 2, 0 -_0811AA50: .4byte gUnknown_2036FB8 -_0811AA54: - movs r0, #0 -_0811AA56: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsRunningDisallowed - - thumb_func_start DoEasyChatScreen -DoEasyChatScreen: @ 0x0811AA5C - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - adds r6, r0, #0 - mov r8, r1 - mov sb, r2 - adds r5, r3, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - bl ResetTasks - ldr r0, _0811AABC - movs r1, #0 - bl CreateTask - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _0811AAC0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r6, [r0, #0xa] - strh r5, [r0, #0x16] - adds r0, r4, #0 - movs r1, #2 - mov r2, r8 - bl SetWordTaskArg - adds r0, r4, #0 - movs r1, #4 - mov r2, sb - bl SetWordTaskArg - ldr r0, _0811AAC4 - bl SetMainCallback2 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0811AABC: .4byte sub_0811AB10 -_0811AAC0: .4byte gUnknown_3005B60 -_0811AAC4: .4byte sub_0811AAC8 - thumb_func_end DoEasyChatScreen - - thumb_func_start sub_0811AAC8 -sub_0811AAC8: @ 0x0811AAC8 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0811AAC8 - - thumb_func_start sub_0811AAE0 -sub_0811AAE0: @ 0x0811AAE0 - push {lr} - bl TransferPlttBuffer - bl LoadOam - bl ProcessSpriteCopyRequests - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0811AAE0 - - thumb_func_start sub_0811AAF4 -sub_0811AAF4: @ 0x0811AAF4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _0811AB0C - lsls r2, r0, #2 - adds r2, r2, r0 - lsls r2, r2, #3 - adds r2, r2, r3 - str r1, [r2] - movs r0, #0 - strh r0, [r2, #8] - bx lr - .align 2, 0 -_0811AB0C: .4byte gUnknown_3005B60 - thumb_func_end sub_0811AAF4 - - thumb_func_start sub_0811AB10 -sub_0811AB10: @ 0x0811AB10 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl IsUpdateLinkStateCBActive - cmp r0, #0 - bne _0811AB2C -_0811AB1E: - adds r0, r4, #0 - bl sub_0811AC78 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811AB1E - b _0811AB3A -_0811AB2C: - adds r0, r4, #0 - bl sub_0811AC78 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0811AB42 -_0811AB3A: - ldr r1, _0811AB48 - adds r0, r4, #0 - bl sub_0811AAF4 -_0811AB42: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811AB48: .4byte sub_0811AB4C - thumb_func_end sub_0811AB10 - - thumb_func_start sub_0811AB4C -sub_0811AB4C: @ 0x0811AB4C - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _0811AB74 - adds r5, r0, r1 - movs r1, #0 - ldrsh r0, [r5, r1] - cmp r0, #5 - bls _0811AB68 - b _0811AC6C -_0811AB68: - lsls r0, r0, #2 - ldr r1, _0811AB78 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0811AB74: .4byte gUnknown_3005B68 -_0811AB78: .4byte _0811AB7C -_0811AB7C: @ jump table - .4byte _0811AB94 @ case 0 - .4byte _0811ABC0 @ case 1 - .4byte _0811AC1C @ case 2 - .4byte _0811AC24 @ case 3 - .4byte _0811AC3C @ case 4 - .4byte _0811AC5C @ case 5 -_0811AB94: - ldr r0, _0811ABBC - bl SetVBlankCallback - movs r4, #1 - rsbs r4, r4, #0 - adds r0, r4, #0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - movs r0, #0 - str r0, [sp] - adds r0, r4, #0 - adds r1, r4, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - movs r0, #5 - b _0811AC6A - .align 2, 0 -_0811ABBC: .4byte sub_0811AAE0 -_0811ABC0: - bl sub_0811B2EC - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r6, r4, #0 - adds r0, r4, #0 - bl sub_0811B0DC - cmp r0, #0 - beq _0811ABEE - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #2 - rsbs r1, r1, #0 - movs r2, #0 - str r2, [sp] - movs r3, #0x10 - bl BeginNormalPaletteFade - movs r0, #3 - strh r0, [r5] - strh r4, [r5, #0xc] - b _0811AC6C -_0811ABEE: - cmp r4, #0x18 - bne _0811AC06 - movs r1, #1 - rsbs r1, r1, #0 - str r0, [sp] - adds r0, r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - movs r0, #4 - b _0811AC6A -_0811AC06: - cmp r6, #0 - beq _0811AC6C - movs r0, #5 - bl sub_080A306C - adds r0, r6, #0 - bl sub_0811CA18 - ldrh r0, [r5] - adds r0, #1 - b _0811AC6A -_0811AC1C: - bl sub_0811CA30 - lsls r0, r0, #0x18 - b _0811AC64 -_0811AC24: - ldr r0, _0811AC38 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0811AC6C - ldrh r0, [r5, #0xc] - bl sub_0811B0F4 - b _0811AC6C - .align 2, 0 -_0811AC38: .4byte gUnknown_2037C74 -_0811AC3C: - ldr r0, _0811AC58 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0811AC6C - adds r0, r2, #0 - movs r1, #4 - bl GetWordTaskArg - bl sub_0811AD20 - b _0811AC6C - .align 2, 0 -_0811AC58: .4byte gUnknown_2037C74 -_0811AC5C: - ldr r0, _0811AC74 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 -_0811AC64: - cmp r0, #0 - bne _0811AC6C - movs r0, #1 -_0811AC6A: - strh r0, [r5] -_0811AC6C: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0811AC74: .4byte gUnknown_2037C74 - thumb_func_end sub_0811AB4C - - thumb_func_start sub_0811AC78 -sub_0811AC78: @ 0x0811AC78 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _0811AC9C - adds r6, r0, r1 - movs r1, #0 - ldrsh r0, [r6, r1] - cmp r0, #4 - bhi _0811AD0C - lsls r0, r0, #2 - ldr r1, _0811ACA0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0811AC9C: .4byte gUnknown_3005B68 -_0811ACA0: .4byte _0811ACA4 -_0811ACA4: @ jump table - .4byte _0811ACB8 @ case 0 - .4byte _0811ACCC @ case 1 - .4byte _0811ACD2 @ case 2 - .4byte _0811ACE8 @ case 3 - .4byte _0811AD00 @ case 4 -_0811ACB8: - movs r0, #0 - bl SetVBlankCallback - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetPaletteFade - b _0811AD10 -_0811ACCC: - bl sub_0811F7E8 - b _0811ACEC -_0811ACD2: - ldrb r4, [r6, #2] - adds r0, r5, #0 - movs r1, #2 - bl GetWordTaskArg - adds r1, r0, #0 - ldrb r2, [r6, #0xe] - adds r0, r4, #0 - bl EasyChat_AllocateResources - b _0811ACEC -_0811ACE8: - bl sub_0811C850 -_0811ACEC: - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811AD10 - adds r0, r5, #0 - movs r1, #4 - bl GetWordTaskArg - bl sub_0811AD20 - b _0811AD10 -_0811AD00: - bl sub_0811C868 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0811AD10 - b _0811AD16 -_0811AD0C: - movs r0, #0 - b _0811AD18 -_0811AD10: - ldrh r0, [r6] - adds r0, #1 - strh r0, [r6] -_0811AD16: - movs r0, #1 -_0811AD18: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811AC78 - - thumb_func_start sub_0811AD20 -sub_0811AD20: @ 0x0811AD20 - push {r4, lr} - adds r4, r0, #0 - bl sub_0811C9FC - bl sub_0811B2D0 - bl sub_0811F814 - bl FreeAllWindowBuffers - adds r0, r4, #0 - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0811AD20 - - thumb_func_start ShowEasyChatScreen -ShowEasyChatScreen: @ 0x0811AD40 - push {r4, r5, lr} - movs r5, #3 - ldr r0, _0811AD58 - ldrh r0, [r0] - cmp r0, #0x14 - bls _0811AD4E - b _0811B024 -_0811AD4E: - lsls r0, r0, #2 - ldr r1, _0811AD5C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0811AD58: .4byte gUnknown_2037280 -_0811AD5C: .4byte _0811AD60 -_0811AD60: @ jump table - .4byte _0811ADB4 @ case 0 - .4byte _0811ADC8 @ case 1 - .4byte _0811ADDC @ case 2 - .4byte _0811ADF0 @ case 3 - .4byte _0811AE04 @ case 4 - .4byte _0811AE54 @ case 5 - .4byte _0811AE28 @ case 6 - .4byte _0811AE80 @ case 7 - .4byte _0811AEB4 @ case 8 - .4byte _0811AED8 @ case 9 - .4byte _0811AF04 @ case 10 - .4byte _0811AF24 @ case 11 - .4byte _0811AF58 @ case 12 - .4byte _0811AF7C @ case 13 - .4byte _0811AF8C @ case 14 - .4byte _0811AFC0 @ case 15 - .4byte _0811B024 @ case 16 - .4byte _0811AFD4 @ case 17 - .4byte _0811AFE8 @ case 18 - .4byte _0811AFFC @ case 19 - .4byte _0811B00C @ case 20 -_0811ADB4: - ldr r0, _0811ADC0 - ldr r0, [r0] - ldr r1, _0811ADC4 - adds r4, r0, r1 - b _0811B012 - .align 2, 0 -_0811ADC0: .4byte gUnknown_3005AEC -_0811ADC4: .4byte 0x00002BB0 -_0811ADC8: - ldr r0, _0811ADD4 - ldr r0, [r0] - ldr r2, _0811ADD8 - adds r4, r0, r2 - b _0811B012 - .align 2, 0 -_0811ADD4: .4byte gUnknown_3005AEC -_0811ADD8: .4byte 0x00002BBC -_0811ADDC: - ldr r0, _0811ADE8 - ldr r0, [r0] - ldr r3, _0811ADEC - adds r4, r0, r3 - b _0811B012 - .align 2, 0 -_0811ADE8: .4byte gUnknown_3005AEC -_0811ADEC: .4byte 0x00002BC8 -_0811ADF0: - ldr r0, _0811ADFC - ldr r0, [r0] - ldr r1, _0811AE00 - adds r4, r0, r1 - b _0811B012 - .align 2, 0 -_0811ADFC: .4byte gUnknown_3005AEC -_0811AE00: .4byte 0x00002BD4 -_0811AE04: - ldr r2, _0811AE1C - ldr r0, _0811AE20 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r3, _0811AE24 - adds r0, r0, r3 - ldr r1, [r2] - adds r4, r1, r0 - b _0811B012 - .align 2, 0 -_0811AE1C: .4byte gUnknown_3005AEC -_0811AE20: .4byte gUnknown_2037282 -_0811AE24: .4byte 0x00002BE0 -_0811AE28: - ldr r0, _0811AE48 - ldr r0, [r0] - ldr r2, _0811AE4C - adds r1, r0, r2 - ldr r3, _0811AE50 - adds r2, r0, r3 - movs r3, #5 -_0811AE36: - ldrh r0, [r2] - strh r0, [r2, #0xc] - adds r2, #2 - subs r3, #1 - cmp r3, #0 - bge _0811AE36 - adds r4, r1, #0 - b _0811B012 - .align 2, 0 -_0811AE48: .4byte gUnknown_3005AEC -_0811AE4C: .4byte 0x00002E36 -_0811AE50: .4byte 0x00002E2A -_0811AE54: - ldr r2, _0811AE70 - ldr r0, _0811AE74 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, [r2] - adds r0, r0, r1 - ldr r1, _0811AE78 - adds r4, r0, r1 - ldr r0, _0811AE7C - ldrb r5, [r0] - b _0811B012 - .align 2, 0 -_0811AE70: .4byte gUnknown_3005AEC -_0811AE74: .4byte gUnknown_2037282 -_0811AE78: .4byte 0x000027D0 -_0811AE7C: .4byte gUnknown_2037284 -_0811AE80: - ldr r2, _0811AEA4 - ldr r0, _0811AEA8 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r3, _0811AEAC - adds r0, r0, r3 - ldr r1, [r2] - adds r1, r1, r0 - ldr r0, _0811AEB0 - ldrh r0, [r0] - lsls r0, r0, #1 - adds r0, #0x1c - adds r4, r1, r0 - movs r5, #1 - b _0811B012 - .align 2, 0 -_0811AEA4: .4byte gUnknown_3005AEC -_0811AEA8: .4byte gUnknown_2037282 -_0811AEAC: .4byte 0x000027CC -_0811AEB0: .4byte gUnknown_2037284 -_0811AEB4: - ldr r2, _0811AECC - ldr r0, _0811AED0 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, [r2] - adds r0, r0, r1 - ldr r1, _0811AED4 - adds r4, r0, r1 - movs r5, #0 - b _0811B012 - .align 2, 0 -_0811AECC: .4byte gUnknown_3005AEC -_0811AED0: .4byte gUnknown_2037282 -_0811AED4: .4byte 0x000027CE -_0811AED8: - ldr r4, _0811AEF4 - ldr r1, _0811AEF8 - ldr r0, [r1] - ldr r2, _0811AEFC - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r4] - ldr r0, [r1] - ldr r3, _0811AF00 - adds r0, r0, r3 - ldrh r0, [r0] - strh r0, [r4, #2] - b _0811B012 - .align 2, 0 -_0811AEF4: .4byte gUnknown_2021C68 -_0811AEF8: .4byte gUnknown_3005AEC -_0811AEFC: .4byte 0x00002E6C -_0811AF00: .4byte 0x00002E6E -_0811AF04: - ldr r0, _0811AF18 - ldr r0, [r0] - ldr r1, _0811AF1C - adds r4, r0, r1 - ldr r2, _0811AF20 - adds r0, r2, #0 - strh r0, [r4] - movs r5, #1 - b _0811B012 - .align 2, 0 -_0811AF18: .4byte gUnknown_3005AEC -_0811AF1C: .4byte 0x00002BAA -_0811AF20: .4byte 0x0000FFFF -_0811AF24: - ldr r2, _0811AF48 - ldr r0, _0811AF4C - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r3, _0811AF50 - adds r0, r0, r3 - ldr r1, [r2] - adds r1, r1, r0 - ldr r0, _0811AF54 - ldrh r0, [r0] - lsls r0, r0, #1 - adds r0, #4 - adds r4, r1, r0 - movs r5, #0 - b _0811B012 - .align 2, 0 -_0811AF48: .4byte gUnknown_3005AEC -_0811AF4C: .4byte gUnknown_2037282 -_0811AF50: .4byte 0x000027CC -_0811AF54: .4byte gUnknown_2037284 -_0811AF58: - ldr r2, _0811AF70 - ldr r0, _0811AF74 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, [r2] - adds r0, r0, r1 - ldr r1, _0811AF78 - adds r4, r0, r1 - movs r5, #1 - b _0811B012 - .align 2, 0 -_0811AF70: .4byte gUnknown_3005AEC -_0811AF74: .4byte gUnknown_2037282 -_0811AF78: .4byte 0x000027E4 -_0811AF7C: - ldr r4, _0811AF88 - adds r0, r4, #0 - movs r1, #2 - bl InitializeEasyChatWordArray - b _0811B012 - .align 2, 0 -_0811AF88: .4byte gUnknown_2021C68 -_0811AF8C: - ldr r2, _0811AFB0 - ldr r0, _0811AFB4 - ldrh r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r3, _0811AFB8 - adds r0, r0, r3 - ldr r1, [r2] - adds r1, r1, r0 - adds r4, r1, #0 - adds r4, #0x14 - ldr r2, _0811AFBC - adds r0, r2, #0 - strh r0, [r1, #0x14] - movs r5, #2 - b _0811B012 - .align 2, 0 -_0811AFB0: .4byte gUnknown_3005AEC -_0811AFB4: .4byte gUnknown_2037282 -_0811AFB8: .4byte 0x000027CC -_0811AFBC: .4byte 0x0000FFFF -_0811AFC0: - ldr r0, _0811AFCC - ldr r0, [r0] - ldr r3, _0811AFD0 - adds r4, r0, r3 - b _0811B012 - .align 2, 0 -_0811AFCC: .4byte gUnknown_3005AEC -_0811AFD0: .4byte 0x00003B6E -_0811AFD4: - ldr r0, _0811AFE0 - ldr r0, [r0] - ldr r1, _0811AFE4 - adds r4, r0, r1 - b _0811B012 - .align 2, 0 -_0811AFE0: .4byte gUnknown_3005AEC -_0811AFE4: .4byte 0x00003B5A -_0811AFE8: - ldr r0, _0811AFF4 - ldr r0, [r0] - ldr r2, _0811AFF8 - adds r4, r0, r2 - b _0811B012 - .align 2, 0 -_0811AFF4: .4byte gUnknown_3005AEC -_0811AFF8: .4byte 0x00003B6C -_0811AFFC: - ldr r0, _0811B008 - ldr r0, [r0] - movs r3, #0x82 - lsls r3, r3, #1 - adds r4, r0, r3 - b _0811B012 - .align 2, 0 -_0811B008: .4byte gUnknown_3005AF0 -_0811B00C: - bl sub_0801AB30 - adds r4, r0, #0 -_0811B012: - bl CleanupOverworldWindowsAndTilemaps - ldr r0, _0811B02C - ldrb r0, [r0] - ldr r2, _0811B030 - adds r1, r4, #0 - adds r3, r5, #0 - bl DoEasyChatScreen -_0811B024: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0811B02C: .4byte gUnknown_2037280 -_0811B030: .4byte CB2_ReturnToFieldContinueScript - thumb_func_end ShowEasyChatScreen - - thumb_func_start sub_0811B034 -sub_0811B034: @ 0x0811B034 - push {lr} - bl UpdatePaletteFade - ldr r0, _0811B050 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _0811B054 - cmp r0, #1 - beq _0811B05E - b _0811B090 - .align 2, 0 -_0811B050: .4byte gUnknown_3002360 -_0811B054: - movs r0, #1 - movs r1, #0 - bl FadeScreen - b _0811B090 -_0811B05E: - ldr r0, _0811B080 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0811B09E - ldr r0, _0811B084 - ldr r0, [r0] - ldr r1, _0811B088 - adds r0, r0, r1 - ldr r1, _0811B08C - strh r1, [r0, #0x16] - bl CleanupOverworldWindowsAndTilemaps - bl DoQuizQuestionEasyChatScreen - b _0811B09E - .align 2, 0 -_0811B080: .4byte gUnknown_2037C74 -_0811B084: .4byte gUnknown_3005AEC -_0811B088: .4byte 0x00003B58 -_0811B08C: .4byte 0x0000FFFF -_0811B090: - ldr r1, _0811B0A4 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_0811B09E: - pop {r0} - bx r0 - .align 2, 0 -_0811B0A4: .4byte gUnknown_3002360 - thumb_func_end sub_0811B034 - - thumb_func_start sub_0811B0A8 -sub_0811B0A8: @ 0x0811B0A8 - push {lr} - ldr r0, _0811B0B4 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0811B0B4: .4byte sub_0811B034 - thumb_func_end sub_0811B0A8 - - thumb_func_start sub_0811B0B8 -sub_0811B0B8: @ 0x0811B0B8 - push {lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - movs r0, #0 - ldr r1, _0811B0D8 -_0811B0C2: - ldrh r3, [r1] - cmp r2, r3 - beq _0811B0D4 - adds r1, #8 - adds r0, #1 - cmp r0, #3 - bls _0811B0C2 - movs r0, #1 - rsbs r0, r0, #0 -_0811B0D4: - pop {r1} - bx r1 - .align 2, 0 -_0811B0D8: .4byte gUnknown_8573114 - thumb_func_end sub_0811B0B8 - - thumb_func_start sub_0811B0DC -sub_0811B0DC: @ 0x0811B0DC - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_0811B0B8 - adds r1, r0, #0 - mvns r1, r1 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - pop {r1} - bx r1 - thumb_func_end sub_0811B0DC - - thumb_func_start sub_0811B0F4 -sub_0811B0F4: @ 0x0811B0F4 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_0811B0B8 - adds r4, r0, #0 - bl ResetTasks - ldr r0, _0811B118 - lsls r4, r4, #3 - adds r0, #4 - adds r4, r4, r0 - ldr r0, [r4] - bl sub_0811AD20 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811B118: .4byte gUnknown_8573114 - thumb_func_end sub_0811B0F4 - - thumb_func_start DoQuizAnswerEasyChatScreen -DoQuizAnswerEasyChatScreen: @ 0x0811B11C - push {lr} - ldr r0, _0811B134 - ldr r1, [r0] - ldr r0, _0811B138 - adds r1, r1, r0 - ldr r2, _0811B13C - movs r0, #0xf - movs r3, #3 - bl DoEasyChatScreen - pop {r0} - bx r0 - .align 2, 0 -_0811B134: .4byte gUnknown_3005AEC -_0811B138: .4byte 0x00003B6E -_0811B13C: .4byte CB2_ReturnToFieldContinueScript - thumb_func_end DoQuizAnswerEasyChatScreen - - thumb_func_start DoQuizQuestionEasyChatScreen -DoQuizQuestionEasyChatScreen: @ 0x0811B140 - push {lr} - ldr r0, _0811B158 - ldr r1, [r0] - ldr r0, _0811B15C - adds r1, r1, r0 - ldr r2, _0811B160 - movs r0, #0x10 - movs r3, #3 - bl DoEasyChatScreen - pop {r0} - bx r0 - .align 2, 0 -_0811B158: .4byte gUnknown_3005AEC -_0811B15C: .4byte 0x00003B5A -_0811B160: .4byte CB2_ReturnToFieldContinueScript - thumb_func_end DoQuizQuestionEasyChatScreen - - thumb_func_start DoQuizSetAnswerEasyChatScreen -DoQuizSetAnswerEasyChatScreen: @ 0x0811B164 - push {lr} - ldr r0, _0811B17C - ldr r1, [r0] - ldr r0, _0811B180 - adds r1, r1, r0 - ldr r2, _0811B184 - movs r0, #0x12 - movs r3, #3 - bl DoEasyChatScreen - pop {r0} - bx r0 - .align 2, 0 -_0811B17C: .4byte gUnknown_3005AEC -_0811B180: .4byte 0x00003B6C -_0811B184: .4byte CB2_ReturnToFieldContinueScript - thumb_func_end DoQuizSetAnswerEasyChatScreen - - thumb_func_start DoQuizSetQuestionEasyChatScreen -DoQuizSetQuestionEasyChatScreen: @ 0x0811B188 - push {lr} - ldr r0, _0811B1A0 - ldr r1, [r0] - ldr r0, _0811B1A4 - adds r1, r1, r0 - ldr r2, _0811B1A8 - movs r0, #0x11 - movs r3, #3 - bl DoEasyChatScreen - pop {r0} - bx r0 - .align 2, 0 -_0811B1A0: .4byte gUnknown_3005AEC -_0811B1A4: .4byte 0x00003B5A -_0811B1A8: .4byte CB2_ReturnToFieldContinueScript - thumb_func_end DoQuizSetQuestionEasyChatScreen - - thumb_func_start EasyChat_AllocateResources -EasyChat_AllocateResources: @ 0x0811B1AC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - ldr r4, _0811B1D0 - movs r0, #0x50 - bl sub_08000BC8 - str r0, [r4] - cmp r0, #0 - bne _0811B1D4 - movs r0, #0 - b _0811B2BE - .align 2, 0 -_0811B1D0: .4byte gUnknown_2039DE4 -_0811B1D4: - movs r7, #0 - strb r5, [r0] - ldr r0, [r4] - mov r1, r8 - str r1, [r0, #0x38] - strb r7, [r0, #5] - ldr r0, [r4] - strb r7, [r0, #6] - ldr r0, [r4] - strb r7, [r0, #9] - ldr r0, [r4] - strb r6, [r0, #0x12] - ldr r0, [r4] - strb r7, [r0, #0x13] - adds r0, r5, #0 - bl GetEachChatScreenTemplateId - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r5, #0x10 - bne _0811B216 - ldr r0, [r4] - adds r0, #0x14 - bl sub_0811C5F4 - ldr r0, [r4] - adds r1, r0, #0 - adds r1, #0x14 - str r1, [r0, #0x34] - movs r1, #7 - strb r1, [r0, #4] - lsls r0, r6, #1 - b _0811B22E -_0811B216: - ldr r0, [r4] - strb r7, [r0, #4] - ldr r3, [r4] - ldr r1, _0811B26C - lsls r2, r6, #1 - adds r0, r2, r6 - lsls r0, r0, #3 - adds r1, #4 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r3, #0x34] - adds r0, r2, #0 -_0811B22E: - ldr r3, _0811B270 - ldr r2, [r3] - ldr r1, _0811B26C - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r1, [r0, #1] - strb r1, [r2, #2] - ldr r1, [r3] - ldrb r0, [r0, #2] - strb r0, [r1, #3] - ldr r0, [r3] - ldrb r2, [r0, #2] - ldrb r1, [r0, #3] - adds r4, r2, #0 - muls r4, r1, r4 - adds r1, r4, #0 - strb r1, [r0, #7] - ldr r0, [r3] - strb r6, [r0, #1] - mov r0, r8 - cmp r0, #0 - beq _0811B274 - ldr r0, [r3] - adds r1, r0, #0 - adds r1, #0x3c - ldrb r2, [r0, #7] - mov r0, r8 - bl CpuSet - b _0811B2A4 - .align 2, 0 -_0811B26C: .4byte gUnknown_8573134 -_0811B270: .4byte gUnknown_2039DE4 -_0811B274: - movs r4, #0 - ldr r0, [r3] - ldrb r0, [r0, #7] - cmp r4, r0 - bge _0811B29C - adds r6, r3, #0 - ldr r1, _0811B2C8 - adds r5, r1, #0 -_0811B284: - ldr r2, [r6] - lsls r0, r4, #1 - adds r1, r2, #0 - adds r1, #0x3c - adds r1, r1, r0 - ldrh r0, [r1] - orrs r0, r5 - strh r0, [r1] - adds r4, #1 - ldrb r2, [r2, #7] - cmp r4, r2 - blt _0811B284 -_0811B29C: - ldr r1, [r3] - adds r0, r1, #0 - adds r0, #0x3c - str r0, [r1, #0x38] -_0811B2A4: - bl sub_0811F908 - ldr r1, _0811B2CC - ldr r4, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, #1 - movs r1, #3 - bl __divsi3 - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #1 -_0811B2BE: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0811B2C8: .4byte 0x0000FFFF -_0811B2CC: .4byte gUnknown_2039DE4 - thumb_func_end EasyChat_AllocateResources - - thumb_func_start sub_0811B2D0 -sub_0811B2D0: @ 0x0811B2D0 - push {r4, lr} - ldr r4, _0811B2E8 - ldr r0, [r4] - cmp r0, #0 - beq _0811B2E2 - bl Free - movs r0, #0 - str r0, [r4] -_0811B2E2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811B2E8: .4byte gUnknown_2039DE4 - thumb_func_end sub_0811B2D0 - - thumb_func_start sub_0811B2EC -sub_0811B2EC: @ 0x0811B2EC - push {lr} - ldr r0, _0811B304 - ldr r0, [r0] - ldrb r0, [r0, #4] - cmp r0, #0xa - bhi _0811B37E - lsls r0, r0, #2 - ldr r1, _0811B308 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0811B304: .4byte gUnknown_2039DE4 -_0811B308: .4byte _0811B30C -_0811B30C: @ jump table - .4byte _0811B338 @ case 0 - .4byte _0811B33E @ case 1 - .4byte _0811B344 @ case 2 - .4byte _0811B34A @ case 3 - .4byte _0811B350 @ case 4 - .4byte _0811B356 @ case 5 - .4byte _0811B35C @ case 6 - .4byte _0811B362 @ case 7 - .4byte _0811B368 @ case 8 - .4byte _0811B36E @ case 9 - .4byte _0811B374 @ case 10 -_0811B338: - bl sub_0811B384 - b _0811B378 -_0811B33E: - bl sub_0811B4D4 - b _0811B378 -_0811B344: - bl sub_0811B614 - b _0811B378 -_0811B34A: - bl sub_0811B6D0 - b _0811B378 -_0811B350: - bl sub_0811B75C - b _0811B378 -_0811B356: - bl sub_0811B810 - b _0811B378 -_0811B35C: - bl sub_0811B7BC - b _0811B378 -_0811B362: - bl sub_0811B85C - b _0811B378 -_0811B368: - bl sub_0811B88C - b _0811B378 -_0811B36E: - bl sub_0811B8B8 - b _0811B378 -_0811B374: - bl sub_0811B8C8 -_0811B378: - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b _0811B380 -_0811B37E: - movs r0, #0 -_0811B380: - pop {r1} - bx r1 - thumb_func_end sub_0811B2EC - - thumb_func_start sub_0811B384 -sub_0811B384: @ 0x0811B384 - push {r4, r5, r6, r7, lr} - ldr r0, _0811B3B0 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0811B3D4 - bl sub_0811C79C - ldr r1, _0811B3B4 - ldr r3, [r1] - movs r2, #0 - movs r0, #2 - strb r0, [r3, #4] - ldr r0, [r1] - strb r2, [r0, #0xa] - ldr r0, [r1] - strb r2, [r0, #0xb] - ldr r0, [r1] - strb r2, [r0, #0xc] - movs r0, #9 - b _0811B4CE - .align 2, 0 -_0811B3B0: .4byte gUnknown_3002360 -_0811B3B4: .4byte gUnknown_2039DE4 -_0811B3B8: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _0811B484 - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0811B474 - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _0811B464 - movs r0, #0 - b _0811B4CE -_0811B3D4: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0811B494 - movs r0, #8 - ands r0, r1 - cmp r0, #0 - bne _0811B49A - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0811B3B8 - ldr r2, _0811B45C - ldr r1, [r2] - ldrb r0, [r1, #6] - subs r0, #1 -_0811B3F4: - strb r0, [r1, #6] -_0811B3F6: - adds r7, r2, #0 - adds r4, r7, #0 - ldr r2, [r4] - movs r0, #6 - ldrsb r0, [r2, r0] - ldr r6, _0811B460 - cmp r0, #0 - bge _0811B414 - ldrb r0, [r2, #1] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r6 - ldrb r0, [r1, #2] - strb r0, [r2, #6] -_0811B414: - ldr r3, [r4] - movs r2, #6 - ldrsb r2, [r3, r2] - adds r5, r6, #0 - ldrb r1, [r3, #1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - ldrb r0, [r0, #2] - cmp r2, r0 - ble _0811B430 - movs r0, #0 - strb r0, [r3, #6] -_0811B430: - ldr r3, [r4] - movs r2, #6 - ldrsb r2, [r3, r2] - ldrb r1, [r3, #1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r1, r0, r5 - ldrb r0, [r1, #2] - cmp r2, r0 - bne _0811B4A4 - movs r0, #5 - ldrsb r0, [r3, r0] - cmp r0, #2 - ble _0811B452 - movs r0, #2 - strb r0, [r3, #5] -_0811B452: - ldr r1, [r4] - movs r0, #1 - strb r0, [r1, #4] - movs r0, #3 - b _0811B4CE - .align 2, 0 -_0811B45C: .4byte gUnknown_2039DE4 -_0811B460: .4byte gUnknown_8573134 -_0811B464: - ldr r2, _0811B470 - ldr r1, [r2] - ldrb r0, [r1, #5] - adds r0, #1 - strb r0, [r1, #5] - b _0811B3F6 - .align 2, 0 -_0811B470: .4byte gUnknown_2039DE4 -_0811B474: - ldr r2, _0811B480 - ldr r1, [r2] - ldrb r0, [r1, #6] - adds r0, #1 - b _0811B3F4 - .align 2, 0 -_0811B480: .4byte gUnknown_2039DE4 -_0811B484: - ldr r2, _0811B490 - ldr r1, [r2] - ldrb r0, [r1, #5] - subs r0, #1 - strb r0, [r1, #5] - b _0811B3F6 - .align 2, 0 -_0811B490: .4byte gUnknown_2039DE4 -_0811B494: - bl sub_0811B920 - b _0811B49E -_0811B49A: - bl sub_0811B984 -_0811B49E: - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b _0811B4CE -_0811B4A4: - movs r0, #5 - ldrsb r0, [r3, r0] - cmp r0, #0 - bge _0811B4B2 - ldrb r0, [r1, #1] - subs r0, #1 - strb r0, [r3, #5] -_0811B4B2: - ldr r3, [r7] - movs r2, #5 - ldrsb r2, [r3, r2] - ldrb r1, [r3, #1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r6 - ldrb r0, [r0, #1] - cmp r2, r0 - blt _0811B4CC - movs r0, #0 - strb r0, [r3, #5] -_0811B4CC: - movs r0, #2 -_0811B4CE: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_0811B384 - - thumb_func_start sub_0811B4D4 -sub_0811B4D4: @ 0x0811B4D4 - push {r4, r5, r6, lr} - ldr r2, _0811B4F4 - ldrh r1, [r2, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0811B542 - ldr r0, _0811B4F8 - ldr r0, [r0] - ldrb r0, [r0, #5] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - beq _0811B536 - b _0811B51C - .align 2, 0 -_0811B4F4: .4byte gUnknown_3002360 -_0811B4F8: .4byte gUnknown_2039DE4 -_0811B4FC: - movs r0, #0x20 - ands r0, r2 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #0 - bne _0811B5D8 - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - bne _0811B5C8 - movs r0, #0x10 - ands r0, r2 - cmp r0, #0 - bne _0811B5B8 - movs r0, #0 - b _0811B60E -_0811B51C: - cmp r0, #1 - bgt _0811B526 - cmp r0, #0 - beq _0811B530 - b _0811B542 -_0811B526: - cmp r0, #2 - beq _0811B5EE - cmp r0, #3 - beq _0811B53C - b _0811B542 -_0811B530: - bl sub_0811B954 - b _0811B5F2 -_0811B536: - bl sub_0811B920 - b _0811B5F2 -_0811B53C: - bl sub_0811BA34 - b _0811B5F2 -_0811B542: - ldrh r2, [r2, #0x2e] - movs r0, #2 - ands r0, r2 - cmp r0, #0 - bne _0811B5E8 - movs r0, #8 - ands r0, r2 - cmp r0, #0 - bne _0811B5EE - movs r0, #0x40 - ands r0, r2 - cmp r0, #0 - beq _0811B4FC - ldr r2, _0811B5B0 - ldr r1, [r2] - ldrb r0, [r1, #6] - subs r0, #1 - strb r0, [r1, #6] -_0811B566: - adds r6, r2, #0 -_0811B568: - adds r5, r6, #0 - ldr r4, [r5] - movs r3, #6 - ldrsb r3, [r4, r3] - ldr r2, _0811B5B4 - ldrb r1, [r4, #1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r1, r0, r2 - ldrb r0, [r1, #2] - cmp r3, r0 - bne _0811B5F8 - bl FooterHasFourOptions - movs r2, #3 - cmp r0, #0 - beq _0811B58E - movs r2, #4 -_0811B58E: - ldr r1, [r5] - movs r0, #5 - ldrsb r0, [r1, r0] - cmp r0, #0 - bge _0811B59C - subs r0, r2, #1 - strb r0, [r1, #5] -_0811B59C: - ldr r1, [r5] - movs r0, #5 - ldrsb r0, [r1, r0] - cmp r0, r2 - blt _0811B5AA - movs r0, #0 - strb r0, [r1, #5] -_0811B5AA: - movs r0, #3 - b _0811B60E - .align 2, 0 -_0811B5B0: .4byte gUnknown_2039DE4 -_0811B5B4: .4byte gUnknown_8573134 -_0811B5B8: - ldr r2, _0811B5C4 - ldr r1, [r2] - ldrb r0, [r1, #5] - adds r0, #1 - strb r0, [r1, #5] - b _0811B566 - .align 2, 0 -_0811B5C4: .4byte gUnknown_2039DE4 -_0811B5C8: - ldr r1, _0811B5D4 - ldr r0, [r1] - strb r3, [r0, #6] - adds r6, r1, #0 - b _0811B568 - .align 2, 0 -_0811B5D4: .4byte gUnknown_2039DE4 -_0811B5D8: - ldr r2, _0811B5E4 - ldr r1, [r2] - ldrb r0, [r1, #5] - subs r0, #1 - strb r0, [r1, #5] - b _0811B566 - .align 2, 0 -_0811B5E4: .4byte gUnknown_2039DE4 -_0811B5E8: - bl sub_0811B920 - b _0811B5F2 -_0811B5EE: - bl sub_0811B984 -_0811B5F2: - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b _0811B60E -_0811B5F8: - movs r0, #5 - ldrsb r0, [r4, r0] - ldrb r1, [r1, #1] - cmp r0, r1 - blt _0811B606 - subs r0, r1, #1 - strb r0, [r4, #5] -_0811B606: - ldr r1, [r6] - movs r0, #0 - strb r0, [r1, #4] - movs r0, #2 -_0811B60E: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_0811B4D4 - - thumb_func_start sub_0811B614 -sub_0811B614: @ 0x0811B614 - push {lr} - ldr r1, _0811B62C - ldrh r2, [r1, #0x2e] - movs r0, #2 - ands r0, r2 - adds r3, r1, #0 - cmp r0, #0 - beq _0811B630 - bl sub_0811BAFC - b _0811B6C6 - .align 2, 0 -_0811B62C: .4byte gUnknown_3002360 -_0811B630: - movs r0, #1 - ands r0, r2 - cmp r0, #0 - beq _0811B67E - ldr r0, _0811B650 - ldr r2, [r0] - movs r1, #0xa - ldrsb r1, [r2, r1] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0811B654 - bl sub_0811BA80 - b _0811B6C6 - .align 2, 0 -_0811B650: .4byte gUnknown_2039DE4 -_0811B654: - movs r0, #0xb - ldrsb r0, [r2, r0] - cmp r0, #1 - beq _0811B672 - cmp r0, #1 - bgt _0811B666 - cmp r0, #0 - beq _0811B66C - b _0811B67E -_0811B666: - cmp r0, #2 - beq _0811B678 - b _0811B67E -_0811B66C: - bl sub_0811BB0C - b _0811B6C6 -_0811B672: - bl sub_0811BB38 - b _0811B6C6 -_0811B678: - bl sub_0811BAFC - b _0811B6C6 -_0811B67E: - ldrh r1, [r3, #0x2e] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0811B68E - bl sub_0811BB0C - b _0811B6C6 -_0811B68E: - ldrh r1, [r3, #0x30] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0811B69C - movs r0, #2 - b _0811B6C2 -_0811B69C: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0811B6A8 - movs r0, #3 - b _0811B6C2 -_0811B6A8: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0811B6B4 - movs r0, #1 - b _0811B6C2 -_0811B6B4: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _0811B6C0 - movs r0, #0 - b _0811B6CA -_0811B6C0: - movs r0, #0 -_0811B6C2: - bl sub_0811BCF8 -_0811B6C6: - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 -_0811B6CA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811B614 - - thumb_func_start sub_0811B6D0 -sub_0811B6D0: @ 0x0811B6D0 - push {lr} - ldr r2, _0811B6EC - ldrh r1, [r2, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0811B6F4 - ldr r0, _0811B6F0 - ldr r1, [r0] - movs r0, #2 - strb r0, [r1, #4] - movs r0, #0xe - b _0811B756 - .align 2, 0 -_0811B6EC: .4byte gUnknown_3002360 -_0811B6F0: .4byte gUnknown_2039DE4 -_0811B6F4: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0811B702 - bl sub_0811BB64 - b _0811B752 -_0811B702: - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0811B70E - movs r0, #4 - b _0811B74E -_0811B70E: - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0811B71A - movs r0, #5 - b _0811B74E -_0811B71A: - ldrh r1, [r2, #0x30] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0811B728 - movs r0, #2 - b _0811B74E -_0811B728: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0811B734 - movs r0, #3 - b _0811B74E -_0811B734: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0811B740 - movs r0, #1 - b _0811B74E -_0811B740: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _0811B74C - movs r0, #0 - b _0811B756 -_0811B74C: - movs r0, #0 -_0811B74E: - bl sub_0811BF64 -_0811B752: - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 -_0811B756: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811B6D0 - - thumb_func_start sub_0811B75C -sub_0811B75C: @ 0x0811B75C - push {lr} - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _0811B790 - cmp r1, #0 - bgt _0811B778 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0811B77C - b _0811B7B4 -_0811B778: - cmp r1, #1 - bne _0811B7B4 -_0811B77C: - bl sub_0811BA74 - ldr r1, _0811B78C - ldr r1, [r1] - strb r0, [r1, #4] - movs r0, #7 - b _0811B7B6 - .align 2, 0 -_0811B78C: .4byte gUnknown_2039DE4 -_0811B790: - ldr r0, _0811B7AC - strh r1, [r0] - ldr r0, _0811B7B0 - ldr r0, [r0] - ldrb r0, [r0] - subs r0, #0x11 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0811B7A8 - bl sub_0811BBB4 -_0811B7A8: - movs r0, #0x18 - b _0811B7B6 - .align 2, 0 -_0811B7AC: .4byte gUnknown_2037290 -_0811B7B0: .4byte gUnknown_2039DE4 -_0811B7B4: - movs r0, #0 -_0811B7B6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811B75C - - thumb_func_start sub_0811B7BC -sub_0811B7BC: @ 0x0811B7BC - push {r4, lr} - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _0811B7F0 - cmp r1, #0 - bgt _0811B7D8 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0811B7DC - b _0811B808 -_0811B7D8: - cmp r1, #1 - bne _0811B808 -_0811B7DC: - bl sub_0811BA74 - ldr r1, _0811B7EC - ldr r1, [r1] - strb r0, [r1, #4] - movs r0, #7 - b _0811B80A - .align 2, 0 -_0811B7EC: .4byte gUnknown_2039DE4 -_0811B7F0: - bl sub_0811C68C - ldr r4, _0811B804 - bl sub_0811BCBC - strh r0, [r4] - bl sub_0811BBB4 - movs r0, #0x18 - b _0811B80A - .align 2, 0 -_0811B804: .4byte gUnknown_2037290 -_0811B808: - movs r0, #0 -_0811B80A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0811B7BC - - thumb_func_start sub_0811B810 -sub_0811B810: @ 0x0811B810 - push {lr} - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _0811B840 - cmp r1, #0 - bgt _0811B82C - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0811B830 - b _0811B854 -_0811B82C: - cmp r1, #1 - bne _0811B854 -_0811B830: - ldr r0, _0811B83C - ldr r1, [r0] - movs r0, #1 - strb r0, [r1, #4] - movs r0, #7 - b _0811B856 - .align 2, 0 -_0811B83C: .4byte gUnknown_2039DE4 -_0811B840: - bl sub_0811BBE8 - ldr r0, _0811B850 - ldr r1, [r0] - movs r0, #1 - strb r0, [r1, #4] - movs r0, #8 - b _0811B856 - .align 2, 0 -_0811B850: .4byte gUnknown_2039DE4 -_0811B854: - movs r0, #0 -_0811B856: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811B810 - - thumb_func_start sub_0811B85C -sub_0811B85C: @ 0x0811B85C - push {lr} - ldr r0, _0811B870 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0811B874 - movs r0, #0x1a - b _0811B888 - .align 2, 0 -_0811B870: .4byte gUnknown_3002360 -_0811B874: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0811B880 - movs r0, #0 - b _0811B888 -_0811B880: - bl sub_0811B920 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 -_0811B888: - pop {r1} - bx r1 - thumb_func_end sub_0811B85C - - thumb_func_start sub_0811B88C -sub_0811B88C: @ 0x0811B88C - push {lr} - ldr r0, _0811B8A0 - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _0811B8A4 - movs r0, #0 - b _0811B8B0 - .align 2, 0 -_0811B8A0: .4byte gUnknown_3002360 -_0811B8A4: - bl sub_0811BA74 - ldr r1, _0811B8B4 - ldr r1, [r1] - strb r0, [r1, #4] - movs r0, #7 -_0811B8B0: - pop {r1} - bx r1 - .align 2, 0 -_0811B8B4: .4byte gUnknown_2039DE4 - thumb_func_end sub_0811B88C - - thumb_func_start sub_0811B8B8 -sub_0811B8B8: @ 0x0811B8B8 - ldr r0, _0811B8C4 - ldr r1, [r0] - movs r0, #0xa - strb r0, [r1, #4] - movs r0, #6 - bx lr - .align 2, 0 -_0811B8C4: .4byte gUnknown_2039DE4 - thumb_func_end sub_0811B8B8 - - thumb_func_start sub_0811B8C8 -sub_0811B8C8: @ 0x0811B8C8 - push {r4, lr} - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _0811B904 - cmp r1, #0 - bgt _0811B8E4 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0811B8E8 - b _0811B918 -_0811B8E4: - cmp r1, #1 - bne _0811B918 -_0811B8E8: - bl sub_0811BC24 - ldr r2, _0811B900 - ldr r1, [r2] - movs r0, #0 - strb r0, [r1, #8] - ldr r1, [r2] - movs r0, #8 - strb r0, [r1, #4] - movs r0, #0x1f - b _0811B91A - .align 2, 0 -_0811B900: .4byte gUnknown_2039DE4 -_0811B904: - ldr r4, _0811B914 - bl sub_0811BCBC - strh r0, [r4] - bl sub_0811BBB4 - movs r0, #0x18 - b _0811B91A - .align 2, 0 -_0811B914: .4byte gUnknown_2037290 -_0811B918: - movs r0, #0 -_0811B91A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0811B8C8 - - thumb_func_start sub_0811B920 -sub_0811B920: @ 0x0811B920 - push {lr} - ldr r1, _0811B940 - ldr r2, [r1] - ldrb r0, [r2] - cmp r0, #0x13 - beq _0811B930 - cmp r0, #0xb - bne _0811B944 -_0811B930: - ldrb r0, [r2, #4] - strb r0, [r2, #8] - ldr r1, [r1] - movs r0, #8 - strb r0, [r1, #4] - movs r0, #0x22 - b _0811B950 - .align 2, 0 -_0811B940: .4byte gUnknown_2039DE4 -_0811B944: - ldrb r0, [r2, #4] - strb r0, [r2, #8] - ldr r1, [r1] - movs r0, #4 - strb r0, [r1, #4] - movs r0, #5 -_0811B950: - pop {r1} - bx r1 - thumb_func_end sub_0811B920 - - thumb_func_start sub_0811B954 -sub_0811B954: @ 0x0811B954 - push {lr} - ldr r2, _0811B974 - ldr r0, [r2] - ldrb r1, [r0, #4] - strb r1, [r0, #8] - ldr r1, [r2] - ldrb r0, [r1] - cmp r0, #6 - bne _0811B978 - ldrb r0, [r1, #4] - strb r0, [r1, #8] - ldr r1, [r2] - movs r0, #8 - strb r0, [r1, #4] - movs r0, #0x20 - b _0811B97E - .align 2, 0 -_0811B974: .4byte gUnknown_2039DE4 -_0811B978: - movs r0, #5 - strb r0, [r1, #4] - movs r0, #4 -_0811B97E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811B954 - - thumb_func_start sub_0811B984 -sub_0811B984: @ 0x0811B984 - push {r4, lr} - ldr r4, _0811B9A8 - ldr r1, [r4] - ldrb r0, [r1, #4] - strb r0, [r1, #8] - ldr r1, [r4] - ldrb r0, [r1] - cmp r0, #0x11 - bne _0811B9AC - bl sub_0811C568 - cmp r0, #0 - bne _0811B9CA - bl sub_0811C5B4 - cmp r0, #0 - bne _0811B9B8 - b _0811BA26 - .align 2, 0 -_0811B9A8: .4byte gUnknown_2039DE4 -_0811B9AC: - cmp r0, #0x12 - bne _0811B9D4 - bl sub_0811C5B4 - cmp r0, #0 - beq _0811B9C2 -_0811B9B8: - ldr r1, [r4] - movs r0, #8 - strb r0, [r1, #4] - movs r0, #0x1e - b _0811BA2C -_0811B9C2: - bl sub_0811C568 - cmp r0, #0 - beq _0811BA26 -_0811B9CA: - ldr r1, [r4] - movs r0, #8 - strb r0, [r1, #4] - movs r0, #0x1d - b _0811BA2C -_0811B9D4: - cmp r0, #9 - beq _0811B9DC - cmp r0, #0xd - bne _0811B9EE -_0811B9DC: - bl sub_0811C530 - cmp r0, #0 - bne _0811BA26 - ldr r1, [r4] - movs r0, #8 - strb r0, [r1, #4] - movs r0, #0x21 - b _0811BA2C -_0811B9EE: - cmp r0, #0x13 - beq _0811B9F6 - cmp r0, #0xb - bne _0811BA08 -_0811B9F6: - bl sub_0811C4F8 - cmp r0, #0 - beq _0811BA26 - ldr r1, [r4] - movs r0, #8 - strb r0, [r1, #4] - movs r0, #0x22 - b _0811BA2C -_0811BA08: - cmp r0, #0x14 - beq _0811BA28 - bl sub_0811C4F8 - cmp r0, #1 - beq _0811BA1C - bl sub_0811BCBC - cmp r0, #0 - bne _0811BA26 -_0811BA1C: - ldr r1, [r4] - movs r0, #4 - strb r0, [r1, #4] - movs r0, #5 - b _0811BA2C -_0811BA26: - ldr r1, [r4] -_0811BA28: - movs r0, #6 - strb r0, [r1, #4] -_0811BA2C: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811B984 - - thumb_func_start sub_0811BA34 -sub_0811BA34: @ 0x0811BA34 - push {lr} - ldr r2, _0811BA50 - ldr r1, [r2] - ldrb r0, [r1, #4] - strb r0, [r1, #8] - ldr r0, [r2] - ldrb r0, [r0] - cmp r0, #0x11 - beq _0811BA5E - cmp r0, #0x11 - bgt _0811BA54 - cmp r0, #0xf - beq _0811BA5A - b _0811BA6E - .align 2, 0 -_0811BA50: .4byte gUnknown_2039DE4 -_0811BA54: - cmp r0, #0x12 - beq _0811BA66 - b _0811BA6E -_0811BA5A: - movs r0, #0x19 - b _0811BA70 -_0811BA5E: - bl sub_0811BBB4 - movs r0, #0x1c - b _0811BA70 -_0811BA66: - bl sub_0811BBB4 - movs r0, #0x1b - b _0811BA70 -_0811BA6E: - movs r0, #0 -_0811BA70: - pop {r1} - bx r1 - thumb_func_end sub_0811BA34 - - thumb_func_start sub_0811BA74 -sub_0811BA74: @ 0x0811BA74 - ldr r0, _0811BA7C - ldr r0, [r0] - ldrb r0, [r0, #8] - bx lr - .align 2, 0 -_0811BA7C: .4byte gUnknown_2039DE4 - thumb_func_end sub_0811BA74 - - thumb_func_start sub_0811BA80 -sub_0811BA80: @ 0x0811BA80 - push {r4, r5, r6, lr} - ldr r0, _0811BAA8 - ldr r0, [r0] - ldrb r0, [r0, #9] - cmp r0, #0 - bne _0811BAAC - bl sub_0811C0B8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_0811F914 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0 - bl sub_0811FAA0 - b _0811BABC - .align 2, 0 -_0811BAA8: .4byte gUnknown_2039DE4 -_0811BAAC: - bl sub_0811C0D8 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #1 - bl sub_0811FAA0 -_0811BABC: - bl sub_0811FB08 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - beq _0811BAF4 - ldr r4, _0811BAF0 - ldr r5, [r4] - subs r0, #1 - movs r6, #3 - movs r1, #3 - bl __divsi3 - movs r1, #0 - strb r0, [r5, #0xf] - ldr r0, [r4] - strb r1, [r0, #0xe] - ldr r0, [r4] - strb r1, [r0, #0x10] - ldr r0, [r4] - strb r1, [r0, #0x11] - ldr r0, [r4] - strb r6, [r0, #4] - movs r0, #0xb - b _0811BAF6 - .align 2, 0 -_0811BAF0: .4byte gUnknown_2039DE4 -_0811BAF4: - movs r0, #0 -_0811BAF6: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_0811BA80 - - thumb_func_start sub_0811BAFC -sub_0811BAFC: @ 0x0811BAFC - ldr r0, _0811BB08 - ldr r1, [r0] - movs r0, #0 - strb r0, [r1, #4] - movs r0, #0xa - bx lr - .align 2, 0 -_0811BB08: .4byte gUnknown_2039DE4 - thumb_func_end sub_0811BAFC - - thumb_func_start sub_0811BB0C -sub_0811BB0C: @ 0x0811BB0C - push {lr} - ldr r1, _0811BB2C - ldr r0, [r1] - movs r2, #0 - strb r2, [r0, #0xa] - ldr r0, [r1] - strb r2, [r0, #0xb] - ldr r0, [r1] - strb r2, [r0, #0xc] - ldr r1, [r1] - ldrb r0, [r1, #9] - cmp r0, #0 - bne _0811BB30 - movs r0, #1 - strb r0, [r1, #9] - b _0811BB32 - .align 2, 0 -_0811BB2C: .4byte gUnknown_2039DE4 -_0811BB30: - strb r2, [r1, #9] -_0811BB32: - movs r0, #0x17 - pop {r1} - bx r1 - thumb_func_end sub_0811BB0C - - thumb_func_start sub_0811BB38 -sub_0811BB38: @ 0x0811BB38 - push {lr} - ldr r0, _0811BB50 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, #6 - beq _0811BB58 - ldr r0, _0811BB54 - bl sub_0811BC58 - movs r0, #1 - b _0811BB60 - .align 2, 0 -_0811BB50: .4byte gUnknown_2039DE4 -_0811BB54: .4byte 0x0000FFFF -_0811BB58: - movs r0, #0x20 - bl sub_080A306C - movs r0, #0 -_0811BB60: - pop {r1} - bx r1 - thumb_func_end sub_0811BB38 - - thumb_func_start sub_0811BB64 -sub_0811BB64: @ 0x0811BB64 - push {r4, r5, lr} - bl sub_0811C140 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_0811FAD0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r4, #0 - bl sub_0811C820 - adds r5, r0, #0 - cmp r5, #0 - beq _0811BB8C - movs r0, #0x20 - bl sub_080A306C - movs r0, #0 - b _0811BBAC -_0811BB8C: - adds r0, r4, #0 - bl sub_0811BC58 - ldr r0, _0811BBA4 - ldr r1, [r0] - ldrb r0, [r1] - cmp r0, #6 - bne _0811BBA8 - movs r0, #9 - strb r0, [r1, #4] - movs r0, #0xd - b _0811BBAC - .align 2, 0 -_0811BBA4: .4byte gUnknown_2039DE4 -_0811BBA8: - strb r5, [r1, #4] - movs r0, #0xc -_0811BBAC: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811BB64 - - thumb_func_start sub_0811BBB4 -sub_0811BBB4: @ 0x0811BBB4 - push {r4, r5, lr} - movs r4, #0 - ldr r3, _0811BBE4 - ldr r0, [r3] - ldrb r0, [r0, #7] - cmp r4, r0 - bge _0811BBDE - adds r5, r3, #0 -_0811BBC4: - ldr r3, [r5] - ldr r1, [r3, #0x38] - lsls r2, r4, #1 - adds r1, r2, r1 - adds r0, r3, #0 - adds r0, #0x3c - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r1] - adds r4, #1 - ldrb r3, [r3, #7] - cmp r4, r3 - blt _0811BBC4 -_0811BBDE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0811BBE4: .4byte gUnknown_2039DE4 - thumb_func_end sub_0811BBB4 - - thumb_func_start sub_0811BBE8 -sub_0811BBE8: @ 0x0811BBE8 - push {r4, r5, lr} - movs r3, #0 - ldr r2, _0811BC1C - ldr r0, [r2] - ldrb r0, [r0, #7] - cmp r3, r0 - bge _0811BC14 - adds r5, r2, #0 - ldr r0, _0811BC20 - adds r4, r0, #0 -_0811BBFC: - ldr r2, [r5] - lsls r0, r3, #1 - adds r1, r2, #0 - adds r1, #0x3c - adds r1, r1, r0 - ldrh r0, [r1] - orrs r0, r4 - strh r0, [r1] - adds r3, #1 - ldrb r2, [r2, #7] - cmp r3, r2 - blt _0811BBFC -_0811BC14: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0811BC1C: .4byte gUnknown_2039DE4 -_0811BC20: .4byte 0x0000FFFF - thumb_func_end sub_0811BBE8 - - thumb_func_start sub_0811BC24 -sub_0811BC24: @ 0x0811BC24 - push {r4, r5, lr} - movs r4, #0 - ldr r3, _0811BC54 - ldr r0, [r3] - ldrb r0, [r0, #7] - cmp r4, r0 - bge _0811BC4E - adds r5, r3, #0 -_0811BC34: - ldr r3, [r5] - lsls r1, r4, #1 - adds r2, r3, #0 - adds r2, #0x3c - adds r2, r2, r1 - ldr r0, [r3, #0x38] - adds r1, r1, r0 - ldrh r0, [r1] - strh r0, [r2] - adds r4, #1 - ldrb r3, [r3, #7] - cmp r4, r3 - blt _0811BC34 -_0811BC4E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0811BC54: .4byte gUnknown_2039DE4 - thumb_func_end sub_0811BC24 - - thumb_func_start sub_0811BC58 -sub_0811BC58: @ 0x0811BC58 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - bl sub_0811C098 - lsls r0, r0, #0x10 - ldr r1, _0811BC78 - ldr r1, [r1] - lsrs r0, r0, #0xf - adds r1, #0x3c - adds r1, r1, r0 - strh r4, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811BC78: .4byte gUnknown_2039DE4 - thumb_func_end sub_0811BC58 - - thumb_func_start sub_0811BC7C -sub_0811BC7C: @ 0x0811BC7C - push {r4, r5, lr} - movs r2, #0 - ldr r0, _0811BCA4 - ldr r0, [r0] - ldrb r1, [r0, #7] - cmp r2, r1 - bhs _0811BCB2 - adds r5, r1, #0 - adds r4, r0, #0 - adds r4, #0x3c - ldr r3, [r0, #0x38] -_0811BC92: - lsls r0, r2, #1 - adds r1, r4, r0 - adds r0, r0, r3 - ldrh r1, [r1] - ldrh r0, [r0] - cmp r1, r0 - beq _0811BCA8 - movs r0, #1 - b _0811BCB4 - .align 2, 0 -_0811BCA4: .4byte gUnknown_2039DE4 -_0811BCA8: - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, r5 - blo _0811BC92 -_0811BCB2: - movs r0, #0 -_0811BCB4: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811BC7C - - thumb_func_start sub_0811BCBC -sub_0811BCBC: @ 0x0811BCBC - push {lr} - ldr r0, _0811BCE4 - ldr r0, [r0] - ldrb r0, [r0] - subs r0, #0x11 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0811BCEC - bl sub_0811C568 - cmp r0, #0 - bne _0811BCDE - bl sub_0811C5B4 - cmp r0, #0 - beq _0811BCE8 -_0811BCDE: - movs r0, #0 - b _0811BCF4 - .align 2, 0 -_0811BCE4: .4byte gUnknown_2039DE4 -_0811BCE8: - movs r0, #1 - b _0811BCF4 -_0811BCEC: - bl sub_0811BC7C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_0811BCF4: - pop {r1} - bx r1 - thumb_func_end sub_0811BCBC - - thumb_func_start sub_0811BCF8 -sub_0811BCF8: @ 0x0811BCF8 - push {lr} - adds r2, r0, #0 - ldr r0, _0811BD1C - ldr r3, [r0] - movs r1, #0xa - ldrsb r1, [r3, r1] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0811BD28 - ldrb r0, [r3, #9] - cmp r0, #0 - bne _0811BD20 - adds r0, r2, #0 - bl sub_0811BD38 - b _0811BD2E - .align 2, 0 -_0811BD1C: .4byte gUnknown_2039DE4 -_0811BD20: - adds r0, r2, #0 - bl sub_0811BE04 - b _0811BD2E -_0811BD28: - adds r0, r2, #0 - bl sub_0811BE94 -_0811BD2E: - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811BCF8 - - thumb_func_start sub_0811BD38 -sub_0811BD38: @ 0x0811BD38 - push {r4, lr} - cmp r0, #1 - beq _0811BDAE - cmp r0, #1 - blo _0811BDCE - cmp r0, #2 - beq _0811BD4C - cmp r0, #3 - beq _0811BD74 - b _0811BDFA -_0811BD4C: - ldr r0, _0811BD68 - ldr r1, [r0] - movs r0, #0xb - ldrsb r0, [r1, r0] - ldrb r3, [r1, #0xc] - cmn r0, r3 - beq _0811BDFA - ldrb r2, [r1, #0xb] - cmp r0, #0 - beq _0811BD6C - subs r0, r2, #1 - strb r0, [r1, #0xb] -_0811BD64: - movs r0, #0xf - b _0811BDFC - .align 2, 0 -_0811BD68: .4byte gUnknown_2039DE4 -_0811BD6C: - subs r0, r3, #1 - strb r0, [r1, #0xc] - movs r0, #0x11 - b _0811BDFC -_0811BD74: - ldr r0, _0811BD9C - ldr r2, [r0] - movs r1, #0xb - ldrsb r1, [r2, r1] - ldrb r3, [r2, #0xc] - adds r1, r1, r3 - ldrb r0, [r2, #0xd] - subs r0, #1 - cmp r1, r0 - bge _0811BDFA - ldrb r1, [r2, #0xb] - movs r0, #0xb - ldrsb r0, [r2, r0] - cmp r0, #2 - bgt _0811BDA0 - adds r0, r1, #1 - strb r0, [r2, #0xb] - movs r4, #0xf - b _0811BDA6 - .align 2, 0 -_0811BD9C: .4byte gUnknown_2039DE4 -_0811BDA0: - adds r0, r3, #1 - strb r0, [r2, #0xc] - movs r4, #0x10 -_0811BDA6: - bl sub_0811C17C - adds r0, r4, #0 - b _0811BDFC -_0811BDAE: - ldr r0, _0811BDC4 - ldr r1, [r0] - ldrb r2, [r1, #0xa] - movs r0, #0xa - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _0811BDC8 - subs r0, r2, #1 - strb r0, [r1, #0xa] - b _0811BD64 - .align 2, 0 -_0811BDC4: .4byte gUnknown_2039DE4 -_0811BDC8: - bl sub_0811BF14 - b _0811BD64 -_0811BDCE: - ldr r0, _0811BDF0 - ldr r1, [r0] - ldrb r2, [r1, #0xa] - movs r0, #0xa - ldrsb r0, [r1, r0] - cmp r0, #1 - bgt _0811BDF4 - adds r0, r2, #1 - strb r0, [r1, #0xa] - bl sub_0811C1CC - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0811BD64 - bl sub_0811BF14 - b _0811BD64 - .align 2, 0 -_0811BDF0: .4byte gUnknown_2039DE4 -_0811BDF4: - bl sub_0811BF14 - b _0811BD64 -_0811BDFA: - movs r0, #0 -_0811BDFC: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811BD38 - - thumb_func_start sub_0811BE04 -sub_0811BE04: @ 0x0811BE04 - push {lr} - cmp r0, #1 - beq _0811BE70 - cmp r0, #1 - blo _0811BE54 - cmp r0, #2 - beq _0811BE1A - cmp r0, #3 - beq _0811BE3A - movs r0, #0 - b _0811BE8C -_0811BE1A: - ldr r0, _0811BE2C - ldr r1, [r0] - ldrb r2, [r1, #0xb] - movs r0, #0xb - ldrsb r0, [r1, r0] - cmp r0, #0 - ble _0811BE30 - subs r0, r2, #1 - b _0811BE32 - .align 2, 0 -_0811BE2C: .4byte gUnknown_2039DE4 -_0811BE30: - movs r0, #3 -_0811BE32: - strb r0, [r1, #0xb] - bl sub_0811C17C - b _0811BE8A -_0811BE3A: - ldr r0, _0811BE4C - ldr r1, [r0] - ldrb r2, [r1, #0xb] - movs r0, #0xb - ldrsb r0, [r1, r0] - cmp r0, #2 - bgt _0811BE50 - adds r0, r2, #1 - b _0811BE32 - .align 2, 0 -_0811BE4C: .4byte gUnknown_2039DE4 -_0811BE50: - movs r0, #0 - b _0811BE32 -_0811BE54: - ldr r0, _0811BE6C - ldr r1, [r0] - ldrb r0, [r1, #0xa] - adds r0, #1 - strb r0, [r1, #0xa] - bl sub_0811C1CC - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0811BE8A - b _0811BE86 - .align 2, 0 -_0811BE6C: .4byte gUnknown_2039DE4 -_0811BE70: - ldr r2, _0811BE90 - ldr r1, [r2] - ldrb r0, [r1, #0xa] - subs r0, #1 - strb r0, [r1, #0xa] - ldr r0, [r2] - ldrb r0, [r0, #0xa] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bge _0811BE8A -_0811BE86: - bl sub_0811BF14 -_0811BE8A: - movs r0, #0xf -_0811BE8C: - pop {r1} - bx r1 - .align 2, 0 -_0811BE90: .4byte gUnknown_2039DE4 - thumb_func_end sub_0811BE04 - - thumb_func_start sub_0811BE94 -sub_0811BE94: @ 0x0811BE94 - push {lr} - adds r2, r0, #0 - cmp r2, #1 - beq _0811BEE4 - cmp r2, #1 - blo _0811BEF8 - cmp r2, #2 - beq _0811BEAC - cmp r2, #3 - beq _0811BEC8 - movs r0, #0 - b _0811BF0A -_0811BEAC: - ldr r0, _0811BEC0 - ldr r1, [r0] - ldrb r3, [r1, #0xb] - movs r0, #0xb - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _0811BEC4 - subs r0, r3, #1 - b _0811BF06 - .align 2, 0 -_0811BEC0: .4byte gUnknown_2039DE4 -_0811BEC4: - strb r2, [r1, #0xb] - b _0811BF08 -_0811BEC8: - ldr r0, _0811BEDC - ldr r1, [r0] - ldrb r2, [r1, #0xb] - movs r0, #0xb - ldrsb r0, [r1, r0] - cmp r0, #1 - bgt _0811BEE0 - adds r0, r2, #1 - b _0811BF06 - .align 2, 0 -_0811BEDC: .4byte gUnknown_2039DE4 -_0811BEE0: - movs r0, #0 - b _0811BF06 -_0811BEE4: - ldr r0, _0811BEF4 - ldr r1, [r0] - ldrb r0, [r1, #0xb] - adds r0, #1 - strb r0, [r1, #0xb] - bl AnimTask_GrowAndShrinkStep - b _0811BF08 - .align 2, 0 -_0811BEF4: .4byte gUnknown_2039DE4 -_0811BEF8: - ldr r2, _0811BF10 - ldr r1, [r2] - movs r0, #0 - strb r0, [r1, #0xa] - ldr r1, [r2] - ldrb r0, [r1, #0xb] - adds r0, #1 -_0811BF06: - strb r0, [r1, #0xb] -_0811BF08: - movs r0, #0xf -_0811BF0A: - pop {r1} - bx r1 - .align 2, 0 -_0811BF10: .4byte gUnknown_2039DE4 - thumb_func_end sub_0811BE94 - - thumb_func_start sub_0811BF14 -sub_0811BF14: @ 0x0811BF14 - push {lr} - ldr r2, _0811BF34 - ldr r1, [r2] - movs r0, #0xff - strb r0, [r1, #0xa] - ldr r2, [r2] - ldrb r1, [r2, #0xb] - movs r0, #0xb - ldrsb r0, [r2, r0] - cmp r0, #0 - beq _0811BF2E - subs r0, r1, #1 - strb r0, [r2, #0xb] -_0811BF2E: - pop {r0} - bx r0 - .align 2, 0 -_0811BF34: .4byte gUnknown_2039DE4 - thumb_func_end sub_0811BF14 - - thumb_func_start AnimTask_GrowAndShrinkStep -AnimTask_GrowAndShrinkStep: @ 0x0811BF38 - push {r4, lr} - ldr r4, _0811BF50 - ldr r1, [r4] - ldrb r0, [r1, #9] - cmp r0, #0 - bne _0811BF54 - movs r0, #2 - strb r0, [r1, #0xa] - bl sub_0811C17C - b _0811BF5E - .align 2, 0 -_0811BF50: .4byte gUnknown_2039DE4 -_0811BF54: - ldrb r0, [r1, #0xb] - bl sub_0811C160 - ldr r1, [r4] - strb r0, [r1, #0xa] -_0811BF5E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end AnimTask_GrowAndShrinkStep - - thumb_func_start sub_0811BF64 -sub_0811BF64: @ 0x0811BF64 - push {r4, lr} - cmp r0, #5 - bls _0811BF6C - b _0811C090 -_0811BF6C: - lsls r0, r0, #2 - ldr r1, _0811BF78 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0811BF78: .4byte _0811BF7C -_0811BF7C: @ jump table - .4byte _0811C018 @ case 0 - .4byte _0811BFF6 @ case 1 - .4byte _0811BF94 @ case 2 - .4byte _0811BFC0 @ case 3 - .4byte _0811C040 @ case 4 - .4byte _0811C060 @ case 5 -_0811BF94: - ldr r0, _0811BFB4 - ldr r1, [r0] - movs r0, #0x11 - ldrsb r0, [r1, r0] - ldrb r3, [r1, #0xe] - adds r0, r0, r3 - cmp r0, #0 - bgt _0811BFA6 - b _0811C090 -_0811BFA6: - ldrb r2, [r1, #0x11] - movs r0, #0x11 - ldrsb r0, [r1, r0] - cmp r0, #0 - ble _0811BFB8 - subs r0, r2, #1 - b _0811BFDE - .align 2, 0 -_0811BFB4: .4byte gUnknown_2039DE4 -_0811BFB8: - subs r0, r3, #1 - strb r0, [r1, #0xe] - movs r4, #0x13 - b _0811BFEE -_0811BFC0: - ldr r0, _0811BFE4 - ldr r1, [r0] - movs r0, #0x11 - ldrsb r0, [r1, r0] - ldrb r3, [r1, #0xe] - adds r0, r0, r3 - ldrb r2, [r1, #0xf] - cmp r0, r2 - bge _0811C090 - ldrb r2, [r1, #0x11] - movs r0, #0x11 - ldrsb r0, [r1, r0] - cmp r0, #2 - bgt _0811BFE8 - adds r0, r2, #1 -_0811BFDE: - strb r0, [r1, #0x11] - movs r4, #0x12 - b _0811BFEE - .align 2, 0 -_0811BFE4: .4byte gUnknown_2039DE4 -_0811BFE8: - adds r0, r3, #1 - strb r0, [r1, #0xe] - movs r4, #0x14 -_0811BFEE: - bl sub_0811C1A4 - adds r0, r4, #0 - b _0811C092 -_0811BFF6: - ldr r0, _0811C008 - ldr r1, [r0] - ldrb r2, [r1, #0x10] - movs r0, #0x10 - ldrsb r0, [r1, r0] - cmp r0, #0 - ble _0811C00C - subs r0, r2, #1 - b _0811C00E - .align 2, 0 -_0811C008: .4byte gUnknown_2039DE4 -_0811C00C: - movs r0, #2 -_0811C00E: - strb r0, [r1, #0x10] - bl sub_0811C1A4 -_0811C014: - movs r0, #0x12 - b _0811C092 -_0811C018: - ldr r4, _0811C03C - ldr r1, [r4] - ldrb r2, [r1, #0x10] - movs r0, #0x10 - ldrsb r0, [r1, r0] - cmp r0, #1 - bgt _0811C036 - adds r0, r2, #1 - strb r0, [r1, #0x10] - bl sub_0811C220 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0811C014 - ldr r1, [r4] -_0811C036: - movs r0, #0 - strb r0, [r1, #0x10] - b _0811C014 - .align 2, 0 -_0811C03C: .4byte gUnknown_2039DE4 -_0811C040: - ldr r0, _0811C054 - ldr r2, [r0] - ldrb r0, [r2, #0xe] - adds r1, r0, #0 - cmp r1, #0 - beq _0811C090 - cmp r1, #3 - bls _0811C058 - subs r0, #4 - b _0811C05A - .align 2, 0 -_0811C054: .4byte gUnknown_2039DE4 -_0811C058: - movs r0, #0 -_0811C05A: - strb r0, [r2, #0xe] - movs r0, #0x15 - b _0811C092 -_0811C060: - ldr r3, _0811C08C - ldr r1, [r3] - ldrb r2, [r1, #0xe] - ldrb r0, [r1, #0xf] - subs r0, #4 - cmp r2, r0 - bgt _0811C090 - adds r0, r2, #4 - strb r0, [r1, #0xe] - ldr r2, [r3] - ldrb r1, [r2, #0xe] - ldrb r3, [r2, #0xf] - subs r0, r3, #3 - cmp r1, r0 - ble _0811C084 - adds r0, r3, #0 - adds r0, #0xfd - strb r0, [r2, #0xe] -_0811C084: - bl sub_0811C1A4 - movs r0, #0x16 - b _0811C092 - .align 2, 0 -_0811C08C: .4byte gUnknown_2039DE4 -_0811C090: - movs r0, #0 -_0811C092: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0811BF64 - - thumb_func_start sub_0811C098 -sub_0811C098: @ 0x0811C098 - ldr r0, _0811C0B4 - ldr r0, [r0] - movs r2, #6 - ldrsb r2, [r0, r2] - ldrb r1, [r0, #2] - muls r1, r2, r1 - ldrb r0, [r0, #5] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bx lr - .align 2, 0 -_0811C0B4: .4byte gUnknown_2039DE4 - thumb_func_end sub_0811C098 - - thumb_func_start sub_0811C0B8 -sub_0811C0B8: @ 0x0811C0B8 - ldr r0, _0811C0D4 - ldr r2, [r0] - movs r0, #0xb - ldrsb r0, [r2, r0] - ldrb r1, [r2, #0xc] - adds r0, r0, r1 - lsls r1, r0, #1 - adds r1, r1, r0 - movs r0, #0xa - ldrsb r0, [r2, r0] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bx lr - .align 2, 0 -_0811C0D4: .4byte gUnknown_2039DE4 - thumb_func_end sub_0811C0B8 - - thumb_func_start sub_0811C0D8 -sub_0811C0D8: @ 0x0811C0D8 - push {lr} - ldr r0, _0811C0F8 - ldr r2, [r0] - movs r0, #0xa - ldrsb r0, [r2, r0] - cmp r0, #4 - bgt _0811C0FC - movs r0, #0xb - ldrsb r0, [r2, r0] - lsls r1, r0, #2 - adds r1, r1, r0 - adds r1, #1 - movs r0, #0xa - ldrsb r0, [r2, r0] - adds r0, r0, r1 - b _0811C130 - .align 2, 0 -_0811C0F8: .4byte gUnknown_2039DE4 -_0811C0FC: - cmp r0, #9 - bgt _0811C11E - movs r0, #0xb - ldrsb r0, [r2, r0] - cmp r0, #2 - bgt _0811C116 - lsls r1, r0, #2 - adds r1, r1, r0 - movs r0, #0xa - ldrsb r0, [r2, r0] - adds r0, r0, r1 - adds r0, #0x10 - b _0811C130 -_0811C116: - movs r0, #0xa - ldrsb r0, [r2, r0] - adds r0, #0x22 - b _0811C130 -_0811C11E: - cmp r0, #0xc - bgt _0811C13A - movs r0, #0xb - ldrsb r0, [r2, r0] - cmp r0, #0 - bne _0811C136 - movs r0, #0xa - ldrsb r0, [r2, r0] - adds r0, #0x1a -_0811C130: - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b _0811C13C -_0811C136: - movs r0, #0 - b _0811C13C -_0811C13A: - movs r0, #0x2c -_0811C13C: - pop {r1} - bx r1 - thumb_func_end sub_0811C0D8 - - thumb_func_start sub_0811C140 -sub_0811C140: @ 0x0811C140 - ldr r0, _0811C15C - ldr r2, [r0] - movs r0, #0x11 - ldrsb r0, [r2, r0] - ldrb r1, [r2, #0xe] - adds r0, r0, r1 - lsls r1, r0, #1 - adds r1, r1, r0 - movs r0, #0x10 - ldrsb r0, [r2, r0] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bx lr - .align 2, 0 -_0811C15C: .4byte gUnknown_2039DE4 - thumb_func_end sub_0811C140 - - thumb_func_start sub_0811C160 -sub_0811C160: @ 0x0811C160 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _0811C172 - cmp r0, #1 - beq _0811C176 - movs r0, #9 - b _0811C178 -_0811C172: - movs r0, #0xd - b _0811C178 -_0811C176: - movs r0, #0xa -_0811C178: - pop {r1} - bx r1 - thumb_func_end sub_0811C160 - - thumb_func_start sub_0811C17C -sub_0811C17C: @ 0x0811C17C - push {lr} - b _0811C192 -_0811C180: - ldr r0, _0811C1A0 - ldr r1, [r0] - ldrb r2, [r1, #0xa] - movs r0, #0xa - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _0811C19C - subs r0, r2, #1 - strb r0, [r1, #0xa] -_0811C192: - bl sub_0811C1CC - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811C180 -_0811C19C: - pop {r0} - bx r0 - .align 2, 0 -_0811C1A0: .4byte gUnknown_2039DE4 - thumb_func_end sub_0811C17C - - thumb_func_start sub_0811C1A4 -sub_0811C1A4: @ 0x0811C1A4 - push {lr} - b _0811C1BA -_0811C1A8: - ldr r0, _0811C1C8 - ldr r1, [r0] - ldrb r2, [r1, #0x10] - movs r0, #0x10 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _0811C1C4 - subs r0, r2, #1 - strb r0, [r1, #0x10] -_0811C1BA: - bl sub_0811C220 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811C1A8 -_0811C1C4: - pop {r0} - bx r0 - .align 2, 0 -_0811C1C8: .4byte gUnknown_2039DE4 - thumb_func_end sub_0811C1A4 - - thumb_func_start sub_0811C1CC -sub_0811C1CC: @ 0x0811C1CC - push {r4, lr} - ldr r4, _0811C1F8 - ldr r1, [r4] - ldrb r0, [r1, #9] - cmp r0, #0 - bne _0811C1FC - bl sub_0811C0B8 - adds r4, r0, #0 - bl sub_0811F908 - movs r1, #0 - lsls r0, r0, #0x18 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsrs r0, r0, #0x18 - cmp r4, r0 - blo _0811C1F2 - movs r1, #1 -_0811C1F2: - adds r0, r1, #0 - b _0811C218 - .align 2, 0 -_0811C1F8: .4byte gUnknown_2039DE4 -_0811C1FC: - ldrb r0, [r1, #0xb] - bl sub_0811C160 - movs r2, #0 - ldr r1, [r4] - ldrb r1, [r1, #0xa] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r1, r0 - ble _0811C216 - movs r2, #1 -_0811C216: - adds r0, r2, #0 -_0811C218: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811C1CC - - thumb_func_start sub_0811C220 -sub_0811C220: @ 0x0811C220 - push {r4, lr} - bl sub_0811C140 - adds r4, r0, #0 - bl sub_0811FB08 - movs r1, #0 - lsls r4, r4, #0x10 - lsls r0, r0, #0x10 - cmp r4, r0 - blo _0811C238 - movs r1, #1 -_0811C238: - adds r0, r1, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0811C220 - - thumb_func_start FooterHasFourOptions -FooterHasFourOptions: @ 0x0811C240 - ldr r2, _0811C258 - ldr r0, _0811C25C - ldr r0, [r0] - ldrb r1, [r0, #1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrb r0, [r0, #3] - lsrs r0, r0, #7 - bx lr - .align 2, 0 -_0811C258: .4byte gUnknown_8573134 -_0811C25C: .4byte gUnknown_2039DE4 - thumb_func_end FooterHasFourOptions - - thumb_func_start sub_0811C260 -sub_0811C260: @ 0x0811C260 - ldr r0, _0811C268 - ldr r0, [r0] - ldrb r0, [r0] - bx lr - .align 2, 0 -_0811C268: .4byte gUnknown_2039DE4 - thumb_func_end sub_0811C260 - - thumb_func_start GetEasyChatScreenFrameId -GetEasyChatScreenFrameId: @ 0x0811C26C - ldr r2, _0811C284 - ldr r0, _0811C288 - ldr r0, [r0] - ldrb r1, [r0, #1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrb r0, [r0, #3] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x19 - bx lr - .align 2, 0 -_0811C284: .4byte gUnknown_8573134 -_0811C288: .4byte gUnknown_2039DE4 - thumb_func_end GetEasyChatScreenFrameId - - thumb_func_start GetTitleText -GetTitleText: @ 0x0811C28C - ldr r0, _0811C294 - ldr r0, [r0] - ldr r0, [r0, #0x34] - bx lr - .align 2, 0 -_0811C294: .4byte gUnknown_2039DE4 - thumb_func_end GetTitleText - - thumb_func_start GetEasyChatWordBuffer -GetEasyChatWordBuffer: @ 0x0811C298 - ldr r0, _0811C2A0 - ldr r0, [r0] - adds r0, #0x3c - bx lr - .align 2, 0 -_0811C2A0: .4byte gUnknown_2039DE4 - thumb_func_end GetEasyChatWordBuffer - - thumb_func_start GetNumRows -GetNumRows: @ 0x0811C2A4 - ldr r0, _0811C2AC - ldr r0, [r0] - ldrb r0, [r0, #3] - bx lr - .align 2, 0 -_0811C2AC: .4byte gUnknown_2039DE4 - thumb_func_end GetNumRows - - thumb_func_start GetNumColumns -GetNumColumns: @ 0x0811C2B0 - ldr r0, _0811C2B8 - ldr r0, [r0] - ldrb r0, [r0, #2] - bx lr - .align 2, 0 -_0811C2B8: .4byte gUnknown_2039DE4 - thumb_func_end GetNumColumns - - thumb_func_start GetMainCursorColumn -GetMainCursorColumn: @ 0x0811C2BC - ldr r0, _0811C2C4 - ldr r0, [r0] - ldrb r0, [r0, #5] - bx lr - .align 2, 0 -_0811C2C4: .4byte gUnknown_2039DE4 - thumb_func_end GetMainCursorColumn - - thumb_func_start sub_0811C2C8 -sub_0811C2C8: @ 0x0811C2C8 - ldr r0, _0811C2D0 - ldr r0, [r0] - ldrb r0, [r0, #6] - bx lr - .align 2, 0 -_0811C2D0: .4byte gUnknown_2039DE4 - thumb_func_end sub_0811C2C8 - - thumb_func_start GetEasyChatInstructionsText -GetEasyChatInstructionsText: @ 0x0811C2D4 - push {r4, r5, lr} - ldr r4, _0811C304 - ldr r2, _0811C308 - ldr r5, [r2] - ldrb r3, [r5, #1] - lsls r2, r3, #1 - adds r2, r2, r3 - lsls r2, r2, #3 - adds r3, r4, #0 - adds r3, #8 - adds r2, r2, r3 - ldr r2, [r2] - str r2, [r0] - ldrb r2, [r5, #1] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r4, #0xc - adds r0, r0, r4 - ldr r0, [r0] - str r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0811C304: .4byte gUnknown_8573134 -_0811C308: .4byte gUnknown_2039DE4 - thumb_func_end GetEasyChatInstructionsText - - thumb_func_start GetEasyChatConfirmText -GetEasyChatConfirmText: @ 0x0811C30C - push {r4, r5, lr} - ldr r4, _0811C33C - ldr r2, _0811C340 - ldr r5, [r2] - ldrb r3, [r5, #1] - lsls r2, r3, #1 - adds r2, r2, r3 - lsls r2, r2, #3 - adds r3, r4, #0 - adds r3, #0x10 - adds r2, r2, r3 - ldr r2, [r2] - str r2, [r0] - ldrb r2, [r5, #1] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r4, #0x14 - adds r0, r0, r4 - ldr r0, [r0] - str r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0811C33C: .4byte gUnknown_8573134 -_0811C340: .4byte gUnknown_2039DE4 - thumb_func_end GetEasyChatConfirmText - - thumb_func_start sub_0811C344 -sub_0811C344: @ 0x0811C344 - push {lr} - adds r2, r0, #0 - ldr r0, _0811C358 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, #4 - bne _0811C360 - ldr r0, _0811C35C - b _0811C37E - .align 2, 0 -_0811C358: .4byte gUnknown_2039DE4 -_0811C35C: .4byte gUnknown_85CBA71 -_0811C360: - cmp r0, #4 - blt _0811C37C - cmp r0, #0x10 - bgt _0811C37C - cmp r0, #0xf - blt _0811C37C - ldr r0, _0811C374 - str r0, [r2] - ldr r0, _0811C378 - b _0811C382 - .align 2, 0 -_0811C374: .4byte gUnknown_85CBCAB -_0811C378: .4byte gUnknown_85CBCB7 -_0811C37C: - ldr r0, _0811C388 -_0811C37E: - str r0, [r2] - movs r0, #0 -_0811C382: - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0811C388: .4byte gUnknown_85CBA63 - thumb_func_end sub_0811C344 - - thumb_func_start GetEasyChatConfirmDeletionText -GetEasyChatConfirmDeletionText: @ 0x0811C38C - ldr r2, _0811C398 - str r2, [r0] - ldr r0, _0811C39C - str r0, [r1] - bx lr - .align 2, 0 -_0811C398: .4byte gUnknown_85CBAA7 -_0811C39C: .4byte gUnknown_85CBAB6 - thumb_func_end GetEasyChatConfirmDeletionText - - thumb_func_start sub_0811C3A0 -sub_0811C3A0: @ 0x0811C3A0 - ldr r2, _0811C3B0 - ldr r3, [r2] - ldrb r2, [r3, #0xa] - strb r2, [r0] - ldrb r0, [r3, #0xb] - strb r0, [r1] - bx lr - .align 2, 0 -_0811C3B0: .4byte gUnknown_2039DE4 - thumb_func_end sub_0811C3A0 - - thumb_func_start sub_0811C3B4 -sub_0811C3B4: @ 0x0811C3B4 - ldr r0, _0811C3BC - ldr r0, [r0] - ldrb r0, [r0, #9] - bx lr - .align 2, 0 -_0811C3BC: .4byte gUnknown_2039DE4 - thumb_func_end sub_0811C3B4 - - thumb_func_start sub_0811C3C0 -sub_0811C3C0: @ 0x0811C3C0 - ldr r0, _0811C3C8 - ldr r0, [r0] - ldrb r0, [r0, #0xc] - bx lr - .align 2, 0 -_0811C3C8: .4byte gUnknown_2039DE4 - thumb_func_end sub_0811C3C0 - - thumb_func_start sub_0811C3CC -sub_0811C3CC: @ 0x0811C3CC - ldr r2, _0811C3DC - ldr r3, [r2] - ldrb r2, [r3, #0x10] - strb r2, [r0] - ldrb r0, [r3, #0x11] - strb r0, [r1] - bx lr - .align 2, 0 -_0811C3DC: .4byte gUnknown_2039DE4 - thumb_func_end sub_0811C3CC - - thumb_func_start sub_0811C3E0 -sub_0811C3E0: @ 0x0811C3E0 - ldr r0, _0811C3E8 - ldr r0, [r0] - ldrb r0, [r0, #0xe] - bx lr - .align 2, 0 -_0811C3E8: .4byte gUnknown_2039DE4 - thumb_func_end sub_0811C3E0 - - thumb_func_start sub_0811C3EC -sub_0811C3EC: @ 0x0811C3EC - ldr r0, _0811C3F4 - ldr r0, [r0] - ldrb r0, [r0, #0xf] - bx lr - .align 2, 0 -_0811C3F4: .4byte gUnknown_2039DE4 - thumb_func_end sub_0811C3EC - - thumb_func_start sub_0811C3F8 -sub_0811C3F8: @ 0x0811C3F8 - movs r0, #0 - bx lr - thumb_func_end sub_0811C3F8 - - thumb_func_start sub_0811C3FC -sub_0811C3FC: @ 0x0811C3FC - push {lr} - ldr r0, _0811C410 - ldr r1, [r0] - ldrb r0, [r1, #4] - cmp r0, #2 - beq _0811C414 - cmp r0, #3 - beq _0811C41E - b _0811C428 - .align 2, 0 -_0811C410: .4byte gUnknown_2039DE4 -_0811C414: - ldrb r0, [r1, #9] - cmp r0, #0 - bne _0811C428 - ldrb r0, [r1, #0xc] - b _0811C420 -_0811C41E: - ldrb r0, [r1, #0xe] -_0811C420: - cmp r0, #0 - beq _0811C428 - movs r0, #1 - b _0811C42A -_0811C428: - movs r0, #0 -_0811C42A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811C3FC - - thumb_func_start sub_0811C430 -sub_0811C430: @ 0x0811C430 - push {lr} - ldr r0, _0811C444 - ldr r2, [r0] - ldrb r0, [r2, #4] - cmp r0, #2 - beq _0811C448 - cmp r0, #3 - beq _0811C45E - b _0811C46C - .align 2, 0 -_0811C444: .4byte gUnknown_2039DE4 -_0811C448: - ldrb r0, [r2, #9] - cmp r0, #0 - bne _0811C46C - ldrb r1, [r2, #0xc] - adds r1, #4 - ldrb r0, [r2, #0xd] - subs r0, #1 - cmp r1, r0 - bgt _0811C46C - movs r0, #1 - b _0811C46E -_0811C45E: - ldrb r0, [r2, #0xe] - adds r0, #4 - ldrb r2, [r2, #0xf] - cmp r0, r2 - bgt _0811C46C - movs r0, #1 - b _0811C46E -_0811C46C: - movs r0, #0 -_0811C46E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811C430 - - thumb_func_start FooterHasFourOptions_ -FooterHasFourOptions_: @ 0x0811C474 - push {lr} - bl FooterHasFourOptions - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end FooterHasFourOptions_ - - thumb_func_start sub_0811C480 -sub_0811C480: @ 0x0811C480 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - movs r2, #0 - cmp r2, r3 - bhs _0811C4B6 - ldr r0, _0811C4A8 - ldr r0, [r0] - adds r4, r0, #0 - adds r4, #0x3c -_0811C496: - lsls r0, r2, #1 - adds r1, r0, r5 - adds r0, r4, r0 - ldrh r1, [r1] - ldrh r0, [r0] - cmp r1, r0 - beq _0811C4AC - movs r0, #1 - b _0811C4B8 - .align 2, 0 -_0811C4A8: .4byte gUnknown_2039DE4 -_0811C4AC: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, r3 - blo _0811C496 -_0811C4B6: - movs r0, #0 -_0811C4B8: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811C480 - - thumb_func_start GetDisplayedPersonType -GetDisplayedPersonType: @ 0x0811C4C0 - ldr r0, _0811C4C8 - ldr r0, [r0] - ldrb r0, [r0, #0x12] - bx lr - .align 2, 0 -_0811C4C8: .4byte gUnknown_2039DE4 - thumb_func_end GetDisplayedPersonType - - thumb_func_start GetEachChatScreenTemplateId -GetEachChatScreenTemplateId: @ 0x0811C4CC - push {lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - movs r1, #0 - ldr r2, _0811C4E4 -_0811C4D6: - ldrb r0, [r2] - cmp r0, r3 - bne _0811C4E8 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - b _0811C4F2 - .align 2, 0 -_0811C4E4: .4byte gUnknown_8573134 -_0811C4E8: - adds r2, #0x18 - adds r1, #1 - cmp r1, #0x14 - bls _0811C4D6 - movs r0, #0 -_0811C4F2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetEachChatScreenTemplateId - - thumb_func_start sub_0811C4F8 -sub_0811C4F8: @ 0x0811C4F8 - push {r4, lr} - movs r2, #0 - ldr r0, _0811C518 - ldr r0, [r0] - ldrb r1, [r0, #7] - cmp r2, r1 - bge _0811C528 - ldr r4, _0811C51C - adds r3, r1, #0 - adds r1, r0, #0 - adds r1, #0x3c -_0811C50E: - ldrh r0, [r1] - cmp r0, r4 - beq _0811C520 - movs r0, #0 - b _0811C52A - .align 2, 0 -_0811C518: .4byte gUnknown_2039DE4 -_0811C51C: .4byte 0x0000FFFF -_0811C520: - adds r1, #2 - adds r2, #1 - cmp r2, r3 - blt _0811C50E -_0811C528: - movs r0, #1 -_0811C52A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0811C4F8 - - thumb_func_start sub_0811C530 -sub_0811C530: @ 0x0811C530 - push {r4, lr} - movs r2, #0 - ldr r0, _0811C550 - ldr r0, [r0] - ldrb r1, [r0, #7] - cmp r2, r1 - bge _0811C560 - ldr r4, _0811C554 - adds r3, r1, #0 - adds r1, r0, #0 - adds r1, #0x3c -_0811C546: - ldrh r0, [r1] - cmp r0, r4 - bne _0811C558 - movs r0, #0 - b _0811C562 - .align 2, 0 -_0811C550: .4byte gUnknown_2039DE4 -_0811C554: .4byte 0x0000FFFF -_0811C558: - adds r1, #2 - adds r2, #1 - cmp r2, r3 - blt _0811C546 -_0811C560: - movs r0, #1 -_0811C562: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0811C530 - - thumb_func_start sub_0811C568 -sub_0811C568: @ 0x0811C568 - push {r4, lr} - ldr r0, _0811C57C - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, #0x11 - bne _0811C584 - bl sub_0811C4F8 - b _0811C5A0 - .align 2, 0 -_0811C57C: .4byte gUnknown_2039DE4 -_0811C580: - movs r0, #0 - b _0811C5A0 -_0811C584: - ldr r0, _0811C5A8 - ldr r0, [r0] - movs r2, #0 - ldr r3, _0811C5AC - ldr r4, _0811C5B0 - adds r1, r0, r4 -_0811C590: - ldrh r0, [r1] - cmp r0, r3 - bne _0811C580 - adds r1, #2 - adds r2, #1 - cmp r2, #8 - ble _0811C590 - movs r0, #1 -_0811C5A0: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0811C5A8: .4byte gUnknown_3005AEC -_0811C5AC: .4byte 0x0000FFFF -_0811C5B0: .4byte 0x00003B5A - thumb_func_end sub_0811C568 - - thumb_func_start sub_0811C5B4 -sub_0811C5B4: @ 0x0811C5B4 - push {lr} - ldr r0, _0811C5C8 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, #0x12 - bne _0811C5CC - bl sub_0811C4F8 - b _0811C5E2 - .align 2, 0 -_0811C5C8: .4byte gUnknown_2039DE4 -_0811C5CC: - ldr r0, _0811C5E8 - ldr r0, [r0] - ldr r1, _0811C5EC - adds r0, r0, r1 - movs r2, #0 - ldrh r1, [r0, #0x14] - ldr r0, _0811C5F0 - cmp r1, r0 - bne _0811C5E0 - movs r2, #1 -_0811C5E0: - adds r0, r2, #0 -_0811C5E2: - pop {r1} - bx r1 - .align 2, 0 -_0811C5E8: .4byte gUnknown_3005AEC -_0811C5EC: .4byte 0x00003B58 -_0811C5F0: .4byte 0x0000FFFF - thumb_func_end sub_0811C5B4 - - thumb_func_start sub_0811C5F4 -sub_0811C5F4: @ 0x0811C5F4 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0811C61C - ldr r4, [r0] - bl DynamicPlaceholderTextUtil_Reset - ldr r0, _0811C620 - adds r4, r4, r0 - adds r0, r4, #0 - bl StringLength - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0811C624 - movs r0, #0 - adds r1, r4, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - b _0811C62C - .align 2, 0 -_0811C61C: .4byte gUnknown_3005AEC -_0811C620: .4byte 0x00003B70 -_0811C624: - ldr r1, _0811C63C - movs r0, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr -_0811C62C: - ldr r1, _0811C640 - adds r0, r5, #0 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0811C63C: .4byte gUnknown_85CBC85 -_0811C640: .4byte gUnknown_85CBC7B - thumb_func_end sub_0811C5F4 - - thumb_func_start sub_0811C644 -sub_0811C644: @ 0x0811C644 - push {r4, r5, lr} - ldr r0, _0811C654 - ldr r0, [r0] - adds r4, r0, #0 - adds r4, #0x3c - ldr r2, _0811C658 - movs r5, #0 - b _0811C676 - .align 2, 0 -_0811C654: .4byte gUnknown_2039DE4 -_0811C658: .4byte gUnknown_2021C54 -_0811C65C: - ldrh r1, [r4] - adds r0, r2, #0 - movs r2, #0 - bl CopyEasyChatWordPadded - adds r2, r0, #0 - movs r0, #0 - strb r0, [r2] - adds r2, #1 - adds r4, #2 - adds r5, #1 - ldr r0, _0811C688 - ldr r0, [r0] -_0811C676: - ldrb r0, [r0, #7] - cmp r5, r0 - blt _0811C65C - subs r2, #1 - movs r0, #0xff - strb r0, [r2] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0811C688: .4byte gUnknown_2039DE4 - thumb_func_end sub_0811C644 - - thumb_func_start sub_0811C68C -sub_0811C68C: @ 0x0811C68C - push {r4, r5, lr} - ldr r5, _0811C6A4 - ldr r0, [r5] - ldrb r0, [r0] - cmp r0, #9 - beq _0811C6F4 - cmp r0, #9 - bgt _0811C6A8 - cmp r0, #0 - beq _0811C6B2 - b _0811C718 - .align 2, 0 -_0811C6A4: .4byte gUnknown_2039DE4 -_0811C6A8: - cmp r0, #0xd - beq _0811C710 - cmp r0, #0x14 - beq _0811C6C0 - b _0811C718 -_0811C6B2: - ldr r0, _0811C6BC - bl FlagSet - b _0811C718 - .align 2, 0 -_0811C6BC: .4byte 0x00000865 -_0811C6C0: - bl sub_0811C724 - cmp r0, #0 - beq _0811C6D4 - ldr r1, _0811C6D0 - movs r0, #1 - b _0811C716 - .align 2, 0 -_0811C6D0: .4byte gUnknown_2037280 -_0811C6D4: - bl sub_0811C744 - adds r1, r0, #0 - cmp r1, #0 - beq _0811C6E8 - ldr r1, _0811C6E4 - movs r0, #2 - b _0811C716 - .align 2, 0 -_0811C6E4: .4byte gUnknown_2037280 -_0811C6E8: - ldr r0, _0811C6F0 - strh r1, [r0] - b _0811C718 - .align 2, 0 -_0811C6F0: .4byte gUnknown_2037280 -_0811C6F4: - bl sub_0811C644 - ldr r4, _0811C70C - ldr r0, [r5] - adds r0, #0x3c - bl sub_081226E4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - b _0811C718 - .align 2, 0 -_0811C70C: .4byte gUnknown_2037280 -_0811C710: - bl sub_0811C764 - ldr r1, _0811C720 -_0811C716: - strh r0, [r1] -_0811C718: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0811C720: .4byte gUnknown_2037280 - thumb_func_end sub_0811C68C - - thumb_func_start sub_0811C724 -sub_0811C724: @ 0x0811C724 - push {lr} - ldr r0, _0811C740 - movs r1, #4 - bl sub_0811C480 - movs r1, #0 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811C738 - movs r1, #1 -_0811C738: - adds r0, r1, #0 - pop {r1} - bx r1 - .align 2, 0 -_0811C740: .4byte gUnknown_857332C - thumb_func_end sub_0811C724 - - thumb_func_start sub_0811C744 -sub_0811C744: @ 0x0811C744 - push {lr} - ldr r0, _0811C760 - movs r1, #4 - bl sub_0811C480 - movs r1, #0 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811C758 - movs r1, #1 -_0811C758: - adds r0, r1, #0 - pop {r1} - bx r1 - .align 2, 0 -_0811C760: .4byte gUnknown_8573334 - thumb_func_end sub_0811C744 - - thumb_func_start sub_0811C764 -sub_0811C764: @ 0x0811C764 - push {r4, r5, lr} - movs r4, #0 - movs r5, #0x80 - lsls r5, r5, #9 -_0811C76C: - lsls r0, r4, #2 - ldr r1, _0811C784 - adds r0, r0, r1 - movs r1, #2 - bl sub_0811C480 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811C788 - lsrs r0, r5, #0x10 - b _0811C796 - .align 2, 0 -_0811C784: .4byte gUnknown_857333C -_0811C788: - movs r0, #0x80 - lsls r0, r0, #9 - adds r5, r5, r0 - adds r4, #1 - cmp r4, #4 - ble _0811C76C - movs r0, #0 -_0811C796: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_0811C764 - - thumb_func_start sub_0811C79C -sub_0811C79C: @ 0x0811C79C - push {r4, r5, r6, lr} - ldr r6, _0811C81C - ldr r1, [r6] - ldrb r0, [r1] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bhi _0811C814 - movs r0, #0 - strb r0, [r1, #0x13] - ldr r4, [r6] - bl sub_0811C098 - lsls r0, r0, #0x10 - lsrs r0, r0, #0xf - adds r4, #0x3c - adds r4, r4, r0 - ldrh r0, [r4] - bl GetEasyChatWordStringLength - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #6 - bhi _0811C814 - ldr r0, [r6] - movs r1, #6 - ldrsb r1, [r0, r1] - ldrb r0, [r0, #2] - adds r5, r1, #0 - muls r5, r0, r5 - movs r4, #0 - cmp r4, r0 - bge _0811C80C -_0811C7E0: - ldr r2, [r6] - movs r0, #5 - ldrsb r0, [r2, r0] - cmp r4, r0 - beq _0811C800 - lsls r1, r5, #1 - adds r0, r2, #0 - adds r0, #0x3c - adds r0, r0, r1 - ldrh r0, [r0] - bl GetEasyChatWordStringLength - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #6 - bls _0811C814 -_0811C800: - adds r5, #1 - adds r4, #1 - ldr r0, [r6] - ldrb r0, [r0, #2] - cmp r4, r0 - blt _0811C7E0 -_0811C80C: - ldr r0, _0811C81C - ldr r1, [r0] - movs r0, #1 - strb r0, [r1, #0x13] -_0811C814: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0811C81C: .4byte gUnknown_2039DE4 - thumb_func_end sub_0811C79C - - thumb_func_start sub_0811C820 -sub_0811C820: @ 0x0811C820 - push {lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r0, _0811C844 - ldr r0, [r0] - ldrb r0, [r0, #0x13] - cmp r0, #0 - beq _0811C848 - adds r0, r1, #0 - bl GetEasyChatWordStringLength - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #6 - bls _0811C848 - movs r0, #1 - b _0811C84A - .align 2, 0 -_0811C844: .4byte gUnknown_2039DE4 -_0811C848: - movs r0, #0 -_0811C84A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811C820 - - thumb_func_start sub_0811C850 -sub_0811C850: @ 0x0811C850 - push {lr} - bl sub_0811D748 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0811C860 - movs r0, #1 - b _0811C862 -_0811C860: - movs r0, #0 -_0811C862: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811C850 - - thumb_func_start sub_0811C868 -sub_0811C868: @ 0x0811C868 - push {r4, lr} - sub sp, #8 - ldr r0, _0811C884 - ldr r0, [r0] - ldrh r0, [r0] - cmp r0, #5 - bls _0811C878 - b _0811C9E0 -_0811C878: - lsls r0, r0, #2 - ldr r1, _0811C888 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0811C884: .4byte gUnknown_2039DE8 -_0811C888: .4byte _0811C88C -_0811C88C: @ jump table - .4byte _0811C8A4 @ case 0 - .4byte _0811C908 @ case 1 - .4byte _0811C950 @ case 2 - .4byte _0811C96C @ case 3 - .4byte _0811C97E @ case 4 - .4byte _0811C994 @ case 5 -_0811C8A4: - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _0811C8F4 - movs r0, #0 - movs r2, #4 - bl InitBgsFromTemplates - ldr r4, _0811C8F8 - ldr r1, [r4] - ldr r0, _0811C8FC - adds r1, r1, r0 - movs r0, #3 - bl SetBgTilemapBuffer - ldr r1, [r4] - movs r0, #0xbf - lsls r0, r0, #2 - adds r1, r1, r0 - movs r0, #1 - bl SetBgTilemapBuffer - ldr r0, _0811C900 - bl InitWindows - bl sub_08004480 - bl sub_0811D814 - bl sub_0811D7B4 - movs r0, #0 - str r0, [sp, #4] - movs r1, #0xe0 - lsls r1, r1, #0x13 - ldr r2, _0811C904 - add r0, sp, #4 - bl CpuFastSet - b _0811C9E4 - .align 2, 0 -_0811C8F4: .4byte gUnknown_857437C -_0811C8F8: .4byte gUnknown_2039DE8 -_0811C8FC: .4byte 0x00000AFC -_0811C900: .4byte gUnknown_857438C -_0811C904: .4byte 0x01000100 -_0811C908: - ldr r1, _0811C944 - movs r0, #0 - str r0, [sp] - movs r0, #3 - movs r2, #0 - movs r3, #0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r1, _0811C948 - movs r0, #3 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - bl sub_0811DE14 - ldr r0, _0811C94C - ldr r0, [r0] - movs r1, #0xbf - lsls r1, r1, #2 - adds r0, r0, r1 - bl sub_0811DCAC - bl sub_0811DB10 - movs r0, #3 - bl CopyBgTilemapBufferToVram - b _0811C9E4 - .align 2, 0 -_0811C944: .4byte gUnknown_8573E84 -_0811C948: .4byte gUnknown_85740E4 -_0811C94C: .4byte gUnknown_2039DE8 -_0811C950: - ldr r1, _0811C968 - movs r0, #0 - str r0, [sp] - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl DecompressAndLoadBgGfxUsingHeap - movs r0, #1 - bl CopyBgTilemapBufferToVram - b _0811C9E4 - .align 2, 0 -_0811C968: .4byte gUnknown_857427C -_0811C96C: - bl sub_0811D87C - bl sub_0811D990 - bl sub_0811DBA8 - bl sub_0811DE8C - b _0811C9E4 -_0811C97E: - bl sub_0811E6A4 - bl sub_0811C260 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x10 - beq _0811C9E4 - bl sub_0811E6D8 - b _0811C9E4 -_0811C994: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811C9EE - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_0811E670 - movs r0, #0x48 - movs r1, #0x3f - bl SetGpuReg - movs r0, #0x4a - movs r1, #0x3b - bl SetGpuReg - movs r0, #3 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #0 - bl ShowBg - bl sub_0811ED20 - bl sub_0811EE6C - bl GetCoolColorFromPersonality - b _0811C9E4 -_0811C9E0: - movs r0, #0 - b _0811C9F0 -_0811C9E4: - ldr r0, _0811C9F8 - ldr r1, [r0] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_0811C9EE: - movs r0, #1 -_0811C9F0: - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0811C9F8: .4byte gUnknown_2039DE8 - thumb_func_end sub_0811C868 - - thumb_func_start sub_0811C9FC -sub_0811C9FC: @ 0x0811C9FC - push {r4, lr} - ldr r4, _0811CA14 - ldr r0, [r4] - cmp r0, #0 - beq _0811CA0E - bl Free - movs r0, #0 - str r0, [r4] -_0811CA0E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811CA14: .4byte gUnknown_2039DE8 - thumb_func_end sub_0811C9FC - - thumb_func_start sub_0811CA18 -sub_0811CA18: @ 0x0811CA18 - push {lr} - ldr r1, _0811CA2C - ldr r1, [r1] - movs r2, #0 - strh r0, [r1, #4] - strh r2, [r1] - bl sub_0811CA30 - pop {r0} - bx r0 - .align 2, 0 -_0811CA2C: .4byte gUnknown_2039DE8 - thumb_func_end sub_0811CA18 - - thumb_func_start sub_0811CA30 -sub_0811CA30: @ 0x0811CA30 - push {lr} - ldr r0, _0811CA48 - ldr r0, [r0] - ldrh r0, [r0, #4] - cmp r0, #0x22 - bls _0811CA3E - b _0811CB8E -_0811CA3E: - lsls r0, r0, #2 - ldr r1, _0811CA4C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0811CA48: .4byte gUnknown_2039DE8 -_0811CA4C: .4byte _0811CA50 -_0811CA50: @ jump table - .4byte _0811CB8E @ case 0 - .4byte _0811CADC @ case 1 - .4byte _0811CAE2 @ case 2 - .4byte _0811CAE8 @ case 3 - .4byte _0811CAEE @ case 4 - .4byte _0811CAF4 @ case 5 - .4byte _0811CAFA @ case 6 - .4byte _0811CB00 @ case 7 - .4byte _0811CB06 @ case 8 - .4byte _0811CB0C @ case 9 - .4byte _0811CB12 @ case 10 - .4byte _0811CB18 @ case 11 - .4byte _0811CB1E @ case 12 - .4byte _0811CB24 @ case 13 - .4byte _0811CB2A @ case 14 - .4byte _0811CB30 @ case 15 - .4byte _0811CB36 @ case 16 - .4byte _0811CB3C @ case 17 - .4byte _0811CB42 @ case 18 - .4byte _0811CB48 @ case 19 - .4byte _0811CB4E @ case 20 - .4byte _0811CB54 @ case 21 - .4byte _0811CB5A @ case 22 - .4byte _0811CB60 @ case 23 - .4byte _0811CB8E @ case 24 - .4byte _0811CB8E @ case 25 - .4byte _0811CB8E @ case 26 - .4byte _0811CB8E @ case 27 - .4byte _0811CB8E @ case 28 - .4byte _0811CB66 @ case 29 - .4byte _0811CB6C @ case 30 - .4byte _0811CB72 @ case 31 - .4byte _0811CB78 @ case 32 - .4byte _0811CB7E @ case 33 - .4byte _0811CB84 @ case 34 -_0811CADC: - bl sub_0811CB94 - b _0811CB88 -_0811CAE2: - bl sub_0811CBCC - b _0811CB88 -_0811CAE8: - bl sub_0811CC88 - b _0811CB88 -_0811CAEE: - bl sub_0811CD40 - b _0811CB88 -_0811CAF4: - bl sub_0811CCB8 - b _0811CB88 -_0811CAFA: - bl sub_0811CCFC - b _0811CB88 -_0811CB00: - bl sub_0811CD84 - b _0811CB88 -_0811CB06: - bl sub_0811CDCC - b _0811CB88 -_0811CB0C: - bl sub_0811CE08 - b _0811CB88 -_0811CB12: - bl sub_0811CED4 - b _0811CB88 -_0811CB18: - bl sub_0811D0E4 - b _0811CB88 -_0811CB1E: - bl IsDma3ManagerBusyWithBgCopy_ - b _0811CB88 -_0811CB24: - bl sub_0811D250 - b _0811CB88 -_0811CB2A: - bl sub_0811D310 - b _0811CB88 -_0811CB30: - bl sub_0811D034 - b _0811CB88 -_0811CB36: - bl sub_0811D040 - b _0811CB88 -_0811CB3C: - bl sub_0811D088 - b _0811CB88 -_0811CB42: - bl sub_0811D3CC - b _0811CB88 -_0811CB48: - bl sub_0811D44C - b _0811CB88 -_0811CB4E: - bl sub_0811D3D8 - b _0811CB88 -_0811CB54: - bl sub_0811D544 - b _0811CB88 -_0811CB5A: - bl sub_0811D4BC - b _0811CB88 -_0811CB60: - bl sub_0811CF74 - b _0811CB88 -_0811CB66: - bl sub_0811D5C8 - b _0811CB88 -_0811CB6C: - bl sub_0811D608 - b _0811CB88 -_0811CB72: - bl sub_0811D648 - b _0811CB88 -_0811CB78: - bl sub_0811D688 - b _0811CB88 -_0811CB7E: - bl sub_0811D6C8 - b _0811CB88 -_0811CB84: - bl sub_0811D708 -_0811CB88: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0811CB90 -_0811CB8E: - movs r0, #0 -_0811CB90: - pop {r1} - bx r1 - thumb_func_end sub_0811CA30 - - thumb_func_start sub_0811CB94 -sub_0811CB94: @ 0x0811CB94 - push {r4, lr} - ldr r4, _0811CBA8 - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, #0 - beq _0811CBAC - cmp r0, #1 - beq _0811CBBA - b _0811CBC4 - .align 2, 0 -_0811CBA8: .4byte gUnknown_2039DE8 -_0811CBAC: - bl sub_0811DBA8 - ldr r1, [r4] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _0811CBC4 -_0811CBBA: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0811CBC6 -_0811CBC4: - movs r0, #1 -_0811CBC6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0811CB94 - - thumb_func_start sub_0811CBCC -sub_0811CBCC: @ 0x0811CBCC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - bl GetEasyChatWordBuffer - adds r5, r0, #0 - bl GetEasyChatScreenFrameId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - bl GetMainCursorColumn - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - bl sub_0811C2C8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - bl GetNumColumns - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, sb - muls r1, r0, r1 - adds r0, r1, #0 - lsls r0, r0, #1 - adds r5, r5, r0 - ldr r1, _0811CC3C - mov r2, sl - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1b - lsrs r0, r0, #0xb - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r0, r1 - lsrs r4, r0, #0x10 - movs r6, #0 - cmp r6, r7 - bhs _0811CC56 - ldr r2, _0811CC40 - mov r8, r2 -_0811CC2A: - ldrh r0, [r5] - cmp r0, r8 - beq _0811CC44 - bl GetEasyChatWordStringLength - adds r1, r4, #2 - adds r0, r0, r1 - b _0811CC46 - .align 2, 0 -_0811CC3C: .4byte gUnknown_8574358 -_0811CC40: .4byte 0x0000FFFF -_0811CC44: - adds r0, r4, #7 -_0811CC46: - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r5, #2 - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, r7 - blo _0811CC2A -_0811CC56: - ldr r1, _0811CC84 - mov r2, sl - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r1, [r0] - lsrs r1, r1, #5 - mov r2, sb - lsls r0, r2, #1 - adds r1, r1, r0 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl sub_0811E76C - movs r0, #0 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0811CC84: .4byte gUnknown_8574358 - thumb_func_end sub_0811CBCC - - thumb_func_start sub_0811CC88 -sub_0811CC88: @ 0x0811CC88 - push {r4, lr} - ldr r4, _0811CCB0 - bl GetMainCursorColumn - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0811CCB4 - ldr r1, [r1] - ldrb r1, [r1, #0xa] - lsls r1, r1, #2 - adds r0, r0, r1 - adds r0, r0, r4 - ldrb r0, [r0] - movs r1, #0xa - bl sub_0811E76C - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0811CCB0: .4byte gUnknown_85743B4 -_0811CCB4: .4byte gUnknown_2039DE8 - thumb_func_end sub_0811CC88 - - thumb_func_start sub_0811CCB8 -sub_0811CCB8: @ 0x0811CCB8 - push {r4, lr} - ldr r4, _0811CCCC - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, #0 - beq _0811CCD0 - cmp r0, #1 - beq _0811CCEA - b _0811CCF4 - .align 2, 0 -_0811CCCC: .4byte gUnknown_2039DE8 -_0811CCD0: - bl sub_0811E7A0 - movs r0, #2 - bl sub_0811D9D8 - movs r0, #1 - bl sub_0811DAE4 - ldr r1, [r4] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _0811CCF4 -_0811CCEA: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0811CCF6 -_0811CCF4: - movs r0, #1 -_0811CCF6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0811CCB8 - - thumb_func_start sub_0811CCFC -sub_0811CCFC: @ 0x0811CCFC - push {r4, lr} - ldr r4, _0811CD10 - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, #0 - beq _0811CD14 - cmp r0, #1 - beq _0811CD2E - b _0811CD38 - .align 2, 0 -_0811CD10: .4byte gUnknown_2039DE8 -_0811CD14: - bl sub_0811E7A0 - movs r0, #3 - bl sub_0811D9D8 - movs r0, #0 - bl sub_0811DAE4 - ldr r1, [r4] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _0811CD38 -_0811CD2E: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0811CD3A -_0811CD38: - movs r0, #1 -_0811CD3A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0811CCFC - - thumb_func_start sub_0811CD40 -sub_0811CD40: @ 0x0811CD40 - push {r4, lr} - ldr r4, _0811CD54 - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, #0 - beq _0811CD58 - cmp r0, #1 - beq _0811CD72 - b _0811CD7C - .align 2, 0 -_0811CD54: .4byte gUnknown_2039DE8 -_0811CD58: - bl sub_0811E7A0 - movs r0, #1 - bl sub_0811D9D8 - movs r0, #1 - bl sub_0811DAE4 - ldr r1, [r4] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _0811CD7C -_0811CD72: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0811CD7E -_0811CD7C: - movs r0, #1 -_0811CD7E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0811CD40 - - thumb_func_start sub_0811CD84 -sub_0811CD84: @ 0x0811CD84 - push {r4, lr} - ldr r4, _0811CD98 - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, #0 - beq _0811CD9C - cmp r0, #1 - beq _0811CDBA - b _0811CDC4 - .align 2, 0 -_0811CD98: .4byte gUnknown_2039DE8 -_0811CD9C: - bl sub_0811E7C0 - movs r0, #0 - bl sub_0811D9D8 - bl sub_0811DBA8 - movs r0, #0 - bl ShowBg - ldr r1, [r4] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _0811CDC4 -_0811CDBA: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0811CDC6 -_0811CDC4: - movs r0, #1 -_0811CDC6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0811CD84 - - thumb_func_start sub_0811CDCC -sub_0811CDCC: @ 0x0811CDCC - push {r4, lr} - ldr r4, _0811CDE0 - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, #0 - beq _0811CDE4 - cmp r0, #1 - beq _0811CDFA - movs r0, #1 - b _0811CE02 - .align 2, 0 -_0811CDE0: .4byte gUnknown_2039DE8 -_0811CDE4: - bl sub_0811E7C0 - movs r0, #0 - bl sub_0811D9D8 - bl sub_0811DBA8 - ldr r1, [r4] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_0811CDFA: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_0811CE02: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0811CDCC - - thumb_func_start sub_0811CE08 -sub_0811CE08: @ 0x0811CE08 - push {lr} - ldr r0, _0811CE20 - ldr r0, [r0] - ldrh r0, [r0] - cmp r0, #4 - bhi _0811CEC2 - lsls r0, r0, #2 - ldr r1, _0811CE24 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0811CE20: .4byte gUnknown_2039DE8 -_0811CE24: .4byte _0811CE28 -_0811CE28: @ jump table - .4byte _0811CE3C @ case 0 - .4byte _0811CE58 @ case 1 - .4byte _0811CE6A @ case 2 - .4byte _0811CE80 @ case 3 - .4byte _0811CEA0 @ case 4 -_0811CE3C: - bl sub_0811E7A0 - movs r0, #0 - bl HideBg - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_0811E670 - bl sub_0811DEDC - b _0811CE8E -_0811CE58: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811CECC - movs r0, #0 - bl sub_0811E1E0 - b _0811CE8E -_0811CE6A: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811CECC - bl sub_0811E2B8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811CECC - b _0811CE8E -_0811CE80: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811CECC - bl sub_0811EAF8 -_0811CE8E: - ldr r0, _0811CE9C - ldr r1, [r0] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _0811CECC - .align 2, 0 -_0811CE9C: .4byte gUnknown_2039DE8 -_0811CEA0: - bl sub_0811EB64 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811CECC - bl sub_0811E7D8 - movs r0, #0 - bl sub_0811EE2C - bl sub_0811ED98 - ldr r0, _0811CEC8 - ldr r1, [r0] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_0811CEC2: - movs r0, #0 - b _0811CECE - .align 2, 0 -_0811CEC8: .4byte gUnknown_2039DE8 -_0811CECC: - movs r0, #1 -_0811CECE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811CE08 - - thumb_func_start sub_0811CED4 -sub_0811CED4: @ 0x0811CED4 - push {lr} - ldr r0, _0811CEEC - ldr r0, [r0] - ldrh r0, [r0] - cmp r0, #4 - bhi _0811CF6C - lsls r0, r0, #2 - ldr r1, _0811CEF0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0811CEEC: .4byte gUnknown_2039DE8 -_0811CEF0: .4byte _0811CEF4 -_0811CEF4: @ jump table - .4byte _0811CF08 @ case 0 - .4byte _0811CF16 @ case 1 - .4byte _0811CF32 @ case 2 - .4byte _0811CF44 @ case 3 - .4byte _0811CF68 @ case 4 -_0811CF08: - bl sub_0811E814 - bl sub_0811EBF8 - bl sub_0811EDFC - b _0811CF58 -_0811CF16: - bl sub_0811EC1C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0811CF6C - movs r0, #1 - bl sub_0811E1E0 - ldr r0, _0811CF40 - ldr r1, [r0] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_0811CF32: - bl sub_0811E2B8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811CF6C - b _0811CF58 - .align 2, 0 -_0811CF40: .4byte gUnknown_2039DE8 -_0811CF44: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811CF6C - bl sub_0811E7C0 - movs r0, #0 - bl ShowBg -_0811CF58: - ldr r0, _0811CF64 - ldr r1, [r0] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _0811CF6C - .align 2, 0 -_0811CF64: .4byte gUnknown_2039DE8 -_0811CF68: - movs r0, #0 - b _0811CF6E -_0811CF6C: - movs r0, #1 -_0811CF6E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811CED4 - - thumb_func_start sub_0811CF74 -sub_0811CF74: @ 0x0811CF74 - push {lr} - ldr r0, _0811CF8C - ldr r0, [r0] - ldrh r0, [r0] - cmp r0, #4 - bhi _0811D02C - lsls r0, r0, #2 - ldr r1, _0811CF90 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0811CF8C: .4byte gUnknown_2039DE8 -_0811CF90: .4byte _0811CF94 -_0811CF94: @ jump table - .4byte _0811CFA8 @ case 0 - .4byte _0811CFBC @ case 1 - .4byte _0811CFD6 @ case 2 - .4byte _0811CFFC @ case 3 - .4byte _0811D022 @ case 4 -_0811CFA8: - bl sub_0811E814 - bl sub_0811EDFC - bl sub_0811ECA8 - movs r0, #5 - bl sub_0811E1E0 - b _0811CFEA -_0811CFBC: - bl sub_0811E2B8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811D02C - bl sub_0811ED04 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811D02C - bl sub_0811DEDC - b _0811CFEA -_0811CFD6: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811D02C - movs r0, #6 - bl sub_0811E1E0 - bl sub_0811ECC4 -_0811CFEA: - ldr r0, _0811CFF8 - ldr r1, [r0] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _0811D02C - .align 2, 0 -_0811CFF8: .4byte gUnknown_2039DE8 -_0811CFFC: - bl sub_0811E2B8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811D02C - bl sub_0811ED04 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811D02C - bl sub_0811ED98 - bl sub_0811E7D8 - ldr r0, _0811D028 - ldr r1, [r0] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_0811D022: - movs r0, #0 - b _0811D02E - .align 2, 0 -_0811D028: .4byte gUnknown_2039DE8 -_0811D02C: - movs r0, #1 -_0811D02E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811CF74 - - thumb_func_start sub_0811D034 -sub_0811D034: @ 0x0811D034 - push {lr} - bl sub_0811E838 - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end sub_0811D034 - - thumb_func_start sub_0811D040 -sub_0811D040: @ 0x0811D040 - push {r4, lr} - ldr r4, _0811D054 - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, #0 - beq _0811D058 - cmp r0, #1 - beq _0811D068 - b _0811D07E - .align 2, 0 -_0811D054: .4byte gUnknown_2039DE8 -_0811D058: - movs r0, #1 - movs r1, #4 - bl sub_0811E5C0 - ldr r1, [r4] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_0811D068: - bl sub_0811E624 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811D07E - bl sub_0811E838 - bl sub_0811ED98 - movs r0, #0 - b _0811D080 -_0811D07E: - movs r0, #1 -_0811D080: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811D040 - - thumb_func_start sub_0811D088 -sub_0811D088: @ 0x0811D088 - push {r4, lr} - ldr r4, _0811D0A0 - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, #1 - beq _0811D0BC - cmp r0, #1 - bgt _0811D0A4 - cmp r0, #0 - beq _0811D0AA - b _0811D0DC - .align 2, 0 -_0811D0A0: .4byte gUnknown_2039DE8 -_0811D0A4: - cmp r0, #2 - beq _0811D0D4 - b _0811D0DC -_0811D0AA: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #4 - bl sub_0811E5C0 - ldr r1, [r4] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_0811D0BC: - bl sub_0811E624 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811D0DC - bl sub_0811ED98 - ldr r0, _0811D0D8 - ldr r1, [r0] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_0811D0D4: - movs r0, #0 - b _0811D0DE - .align 2, 0 -_0811D0D8: .4byte gUnknown_2039DE8 -_0811D0DC: - movs r0, #1 -_0811D0DE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0811D088 - - thumb_func_start sub_0811D0E4 -sub_0811D0E4: @ 0x0811D0E4 - push {lr} - ldr r0, _0811D0FC - ldr r0, [r0] - ldrh r0, [r0] - cmp r0, #5 - bhi _0811D19C - lsls r0, r0, #2 - ldr r1, _0811D100 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0811D0FC: .4byte gUnknown_2039DE8 -_0811D100: .4byte _0811D104 -_0811D104: @ jump table - .4byte _0811D11C @ case 0 - .4byte _0811D12A @ case 1 - .4byte _0811D13A @ case 2 - .4byte _0811D14C @ case 3 - .4byte _0811D16C @ case 4 - .4byte _0811D192 @ case 5 -_0811D11C: - bl sub_0811E814 - bl sub_0811EBF8 - bl sub_0811EDFC - b _0811D15C -_0811D12A: - bl sub_0811EC1C - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811D19C - bl VBlankCB_MailRead - b _0811D15C -_0811D13A: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811D19C - movs r0, #2 - bl sub_0811E1E0 - b _0811D15C -_0811D14C: - bl sub_0811E2B8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811D19C - movs r0, #2 - bl sub_0811DEA0 -_0811D15C: - ldr r0, _0811D168 - ldr r1, [r0] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _0811D19C - .align 2, 0 -_0811D168: .4byte gUnknown_2039DE8 -_0811D16C: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811D19C - bl sub_0811E9D0 - movs r0, #1 - bl sub_0811EE2C - bl sub_0811ED98 - bl sub_0811EEE0 - ldr r0, _0811D198 - ldr r1, [r0] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_0811D192: - movs r0, #0 - b _0811D19E - .align 2, 0 -_0811D198: .4byte gUnknown_2039DE8 -_0811D19C: - movs r0, #1 -_0811D19E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811D0E4 - - thumb_func_start IsDma3ManagerBusyWithBgCopy_ -IsDma3ManagerBusyWithBgCopy_: @ 0x0811D1A4 - push {lr} - ldr r0, _0811D1BC - ldr r0, [r0] - ldrh r0, [r0] - cmp r0, #5 - bhi _0811D248 - lsls r0, r0, #2 - ldr r1, _0811D1C0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0811D1BC: .4byte gUnknown_2039DE8 -_0811D1C0: .4byte _0811D1C4 -_0811D1C4: @ jump table - .4byte _0811D1DC @ case 0 - .4byte _0811D1E2 @ case 1 - .4byte _0811D1F4 @ case 2 - .4byte _0811D206 @ case 3 - .4byte _0811D228 @ case 4 - .4byte _0811D240 @ case 5 -_0811D1DC: - bl sub_0811DBA8 - b _0811D216 -_0811D1E2: - bl sub_0811EACC - bl sub_0811EDFC - bl sub_0811EF44 - bl VBlankCB_MailRead - b _0811D216 -_0811D1F4: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811D248 - movs r0, #3 - bl sub_0811E1E0 - b _0811D216 -_0811D206: - bl sub_0811E2B8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811D248 - movs r0, #0 - bl ShowBg -_0811D216: - ldr r0, _0811D224 - ldr r1, [r0] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _0811D248 - .align 2, 0 -_0811D224: .4byte gUnknown_2039DE8 -_0811D228: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811D248 - bl sub_0811E7C0 - ldr r0, _0811D244 - ldr r1, [r0] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_0811D240: - movs r0, #0 - b _0811D24A - .align 2, 0 -_0811D244: .4byte gUnknown_2039DE8 -_0811D248: - movs r0, #1 -_0811D24A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsDma3ManagerBusyWithBgCopy_ - - thumb_func_start sub_0811D250 -sub_0811D250: @ 0x0811D250 - push {lr} - ldr r0, _0811D268 - ldr r0, [r0] - ldrh r0, [r0] - cmp r0, #6 - bhi _0811D308 - lsls r0, r0, #2 - ldr r1, _0811D26C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0811D268: .4byte gUnknown_2039DE8 -_0811D26C: .4byte _0811D270 -_0811D270: @ jump table - .4byte _0811D28C @ case 0 - .4byte _0811D292 @ case 1 - .4byte _0811D2A4 @ case 2 - .4byte _0811D2B6 @ case 3 - .4byte _0811D2C8 @ case 4 - .4byte _0811D2E8 @ case 5 - .4byte _0811D300 @ case 6 -_0811D28C: - bl sub_0811DBA8 - b _0811D2D8 -_0811D292: - bl sub_0811EACC - bl sub_0811EDFC - bl sub_0811EF44 - bl VBlankCB_MailRead - b _0811D2D8 -_0811D2A4: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811D308 - movs r0, #3 - bl sub_0811E1E0 - b _0811D2D8 -_0811D2B6: - bl sub_0811E2B8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811D308 - movs r0, #3 - bl sub_0811D9D8 - b _0811D2D8 -_0811D2C8: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811D308 - movs r0, #0 - bl ShowBg -_0811D2D8: - ldr r0, _0811D2E4 - ldr r1, [r0] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _0811D308 - .align 2, 0 -_0811D2E4: .4byte gUnknown_2039DE8 -_0811D2E8: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811D308 - bl sub_0811E7C0 - ldr r0, _0811D304 - ldr r1, [r0] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_0811D300: - movs r0, #0 - b _0811D30A - .align 2, 0 -_0811D304: .4byte gUnknown_2039DE8 -_0811D308: - movs r0, #1 -_0811D30A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811D250 - - thumb_func_start sub_0811D310 -sub_0811D310: @ 0x0811D310 - push {lr} - ldr r0, _0811D328 - ldr r0, [r0] - ldrh r0, [r0] - cmp r0, #4 - bhi _0811D3C4 - lsls r0, r0, #2 - ldr r1, _0811D32C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0811D328: .4byte gUnknown_2039DE8 -_0811D32C: .4byte _0811D330 -_0811D330: @ jump table - .4byte _0811D344 @ case 0 - .4byte _0811D356 @ case 1 - .4byte _0811D368 @ case 2 - .4byte _0811D378 @ case 3 - .4byte _0811D398 @ case 4 -_0811D344: - bl sub_0811EACC - bl sub_0811EDFC - bl sub_0811EF44 - bl VBlankCB_MailRead - b _0811D386 -_0811D356: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811D3C4 - movs r0, #4 - bl sub_0811E1E0 - b _0811D386 -_0811D368: - bl sub_0811E2B8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811D3C4 - bl sub_0811DEDC - b _0811D386 -_0811D378: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811D3C4 - bl sub_0811EAF8 -_0811D386: - ldr r0, _0811D394 - ldr r1, [r0] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _0811D3C4 - .align 2, 0 -_0811D394: .4byte gUnknown_2039DE8 -_0811D398: - bl sub_0811EB64 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811D3C4 - bl sub_0811E7D8 - movs r0, #0 - bl sub_0811EE2C - bl sub_0811ED98 - ldr r0, _0811D3C0 - ldr r1, [r0] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - movs r0, #0 - b _0811D3C6 - .align 2, 0 -_0811D3C0: .4byte gUnknown_2039DE8 -_0811D3C4: - movs r0, #1 -_0811D3C6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811D310 - - thumb_func_start sub_0811D3CC -sub_0811D3CC: @ 0x0811D3CC - push {lr} - bl sub_0811EA54 - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end sub_0811D3CC - - thumb_func_start sub_0811D3D8 -sub_0811D3D8: @ 0x0811D3D8 - push {r4, lr} - ldr r4, _0811D3F0 - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, #1 - beq _0811D404 - cmp r0, #1 - bgt _0811D3F4 - cmp r0, #0 - beq _0811D3FE - b _0811D442 - .align 2, 0 -_0811D3F0: .4byte gUnknown_2039DE8 -_0811D3F4: - cmp r0, #2 - beq _0811D420 - cmp r0, #3 - beq _0811D43E - b _0811D442 -_0811D3FE: - bl sub_0811DFBC - b _0811D416 -_0811D404: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811D442 - movs r0, #1 - movs r1, #4 - bl sub_0811E5C0 -_0811D416: - ldr r1, [r4] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _0811D442 -_0811D420: - bl sub_0811E624 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811D442 - bl sub_0811EA54 - bl sub_0811ED98 - bl sub_0811EEE0 - ldr r1, [r4] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_0811D43E: - movs r0, #0 - b _0811D444 -_0811D442: - movs r0, #1 -_0811D444: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811D3D8 - - thumb_func_start sub_0811D44C -sub_0811D44C: @ 0x0811D44C - push {r4, lr} - ldr r4, _0811D464 - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, #1 - beq _0811D478 - cmp r0, #1 - bgt _0811D468 - cmp r0, #0 - beq _0811D472 - b _0811D4B4 - .align 2, 0 -_0811D464: .4byte gUnknown_2039DE8 -_0811D468: - cmp r0, #2 - beq _0811D496 - cmp r0, #3 - beq _0811D4B0 - b _0811D4B4 -_0811D472: - bl sub_0811DFE0 - b _0811D48C -_0811D478: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811D4B4 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #4 - bl sub_0811E5C0 -_0811D48C: - ldr r1, [r4] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _0811D4B4 -_0811D496: - bl sub_0811E624 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811D4B4 - bl sub_0811ED98 - bl sub_0811EEE0 - ldr r1, [r4] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_0811D4B0: - movs r0, #0 - b _0811D4B6 -_0811D4B4: - movs r0, #1 -_0811D4B6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0811D44C - - thumb_func_start sub_0811D4BC -sub_0811D4BC: @ 0x0811D4BC - push {r4, r5, lr} - ldr r5, _0811D4D4 - ldr r0, [r5] - ldrh r0, [r0] - cmp r0, #1 - beq _0811D4E8 - cmp r0, #1 - bgt _0811D4D8 - cmp r0, #0 - beq _0811D4E2 - b _0811D53A - .align 2, 0 -_0811D4D4: .4byte gUnknown_2039DE8 -_0811D4D8: - cmp r0, #2 - beq _0811D518 - cmp r0, #3 - beq _0811D536 - b _0811D53A -_0811D4E2: - bl sub_0811E004 - b _0811D50E -_0811D4E8: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811D53A - bl sub_0811C3E0 - adds r4, r0, #0 - bl sub_0811E65C - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - subs r4, r4, r0 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - adds r0, r4, #0 - movs r1, #8 - bl sub_0811E5C0 -_0811D50E: - ldr r1, [r5] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _0811D53A -_0811D518: - bl sub_0811E624 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811D53A - bl sub_0811EA54 - bl sub_0811ED98 - bl sub_0811EEE0 - ldr r1, [r5] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_0811D536: - movs r0, #0 - b _0811D53C -_0811D53A: - movs r0, #1 -_0811D53C: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811D4BC - - thumb_func_start sub_0811D544 -sub_0811D544: @ 0x0811D544 - push {r4, r5, lr} - ldr r5, _0811D55C - ldr r0, [r5] - ldrh r0, [r0] - cmp r0, #1 - beq _0811D570 - cmp r0, #1 - bgt _0811D560 - cmp r0, #0 - beq _0811D56A - b _0811D5BE - .align 2, 0 -_0811D55C: .4byte gUnknown_2039DE8 -_0811D560: - cmp r0, #2 - beq _0811D5A0 - cmp r0, #3 - beq _0811D5BA - b _0811D5BE -_0811D56A: - bl sub_0811E048 - b _0811D596 -_0811D570: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811D5BE - bl sub_0811C3E0 - adds r4, r0, #0 - bl sub_0811E65C - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - subs r4, r4, r0 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - adds r0, r4, #0 - movs r1, #8 - bl sub_0811E5C0 -_0811D596: - ldr r1, [r5] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _0811D5BE -_0811D5A0: - bl sub_0811E624 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811D5BE - bl sub_0811ED98 - bl sub_0811EEE0 - ldr r1, [r5] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_0811D5BA: - movs r0, #0 - b _0811D5C0 -_0811D5BE: - movs r0, #1 -_0811D5C0: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811D544 - - thumb_func_start sub_0811D5C8 -sub_0811D5C8: @ 0x0811D5C8 - push {r4, lr} - ldr r4, _0811D5DC - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, #0 - beq _0811D5E0 - cmp r0, #1 - beq _0811D5F4 - b _0811D5FE - .align 2, 0 -_0811D5DC: .4byte gUnknown_2039DE8 -_0811D5E0: - bl sub_0811E7A0 - movs r0, #4 - bl sub_0811D9D8 - ldr r1, [r4] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _0811D5FE -_0811D5F4: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0811D600 -_0811D5FE: - movs r0, #1 -_0811D600: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811D5C8 - - thumb_func_start sub_0811D608 -sub_0811D608: @ 0x0811D608 - push {r4, lr} - ldr r4, _0811D61C - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, #0 - beq _0811D620 - cmp r0, #1 - beq _0811D634 - b _0811D63E - .align 2, 0 -_0811D61C: .4byte gUnknown_2039DE8 -_0811D620: - bl sub_0811E7A0 - movs r0, #5 - bl sub_0811D9D8 - ldr r1, [r4] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _0811D63E -_0811D634: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0811D640 -_0811D63E: - movs r0, #1 -_0811D640: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811D608 - - thumb_func_start sub_0811D648 -sub_0811D648: @ 0x0811D648 - push {r4, lr} - ldr r4, _0811D65C - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, #0 - beq _0811D660 - cmp r0, #1 - beq _0811D674 - b _0811D67E - .align 2, 0 -_0811D65C: .4byte gUnknown_2039DE8 -_0811D660: - bl sub_0811E7A0 - movs r0, #6 - bl sub_0811D9D8 - ldr r1, [r4] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _0811D67E -_0811D674: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0811D680 -_0811D67E: - movs r0, #1 -_0811D680: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811D648 - - thumb_func_start sub_0811D688 -sub_0811D688: @ 0x0811D688 - push {r4, lr} - ldr r4, _0811D69C - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, #0 - beq _0811D6A0 - cmp r0, #1 - beq _0811D6B4 - b _0811D6BE - .align 2, 0 -_0811D69C: .4byte gUnknown_2039DE8 -_0811D6A0: - bl sub_0811E7A0 - movs r0, #7 - bl sub_0811D9D8 - ldr r1, [r4] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _0811D6BE -_0811D6B4: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0811D6C0 -_0811D6BE: - movs r0, #1 -_0811D6C0: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811D688 - - thumb_func_start sub_0811D6C8 -sub_0811D6C8: @ 0x0811D6C8 - push {r4, lr} - ldr r4, _0811D6DC - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, #0 - beq _0811D6E0 - cmp r0, #1 - beq _0811D6F4 - b _0811D6FE - .align 2, 0 -_0811D6DC: .4byte gUnknown_2039DE8 -_0811D6E0: - bl sub_0811E7A0 - movs r0, #8 - bl sub_0811D9D8 - ldr r1, [r4] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _0811D6FE -_0811D6F4: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0811D700 -_0811D6FE: - movs r0, #1 -_0811D700: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811D6C8 - - thumb_func_start sub_0811D708 -sub_0811D708: @ 0x0811D708 - push {r4, lr} - ldr r4, _0811D71C - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, #0 - beq _0811D720 - cmp r0, #1 - beq _0811D734 - b _0811D73E - .align 2, 0 -_0811D71C: .4byte gUnknown_2039DE8 -_0811D720: - bl sub_0811E7A0 - movs r0, #9 - bl sub_0811D9D8 - ldr r1, [r4] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _0811D73E -_0811D734: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0811D740 -_0811D73E: - movs r0, #1 -_0811D740: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811D708 - - thumb_func_start sub_0811D748 -sub_0811D748: @ 0x0811D748 - push {r4, lr} - ldr r4, _0811D7A4 - ldr r0, _0811D7A8 - bl sub_08000BC8 - adds r2, r0, #0 - str r2, [r4] - cmp r2, #0 - beq _0811D7AC - movs r1, #0 - strh r1, [r2] - movs r3, #0xb6 - lsls r3, r3, #2 - adds r0, r2, r3 - str r1, [r0] - adds r3, #4 - adds r0, r2, r3 - str r1, [r0] - adds r3, #4 - adds r0, r2, r3 - str r1, [r0] - adds r3, #4 - adds r0, r2, r3 - str r1, [r0] - adds r3, #4 - adds r0, r2, r3 - str r1, [r0] - adds r3, #4 - adds r0, r2, r3 - str r1, [r0] - adds r3, #4 - adds r0, r2, r3 - str r1, [r0] - adds r3, #4 - adds r0, r2, r3 - str r1, [r0] - adds r3, #4 - adds r0, r2, r3 - str r1, [r0] - bl FooterHasFourOptions_ - ldr r1, [r4] - strb r0, [r1, #0xa] - movs r0, #1 - b _0811D7AE - .align 2, 0 -_0811D7A4: .4byte gUnknown_2039DE8 -_0811D7A8: .4byte 0x000012FC -_0811D7AC: - movs r0, #0 -_0811D7AE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0811D748 - - thumb_func_start sub_0811D7B4 -sub_0811D7B4: @ 0x0811D7B4 - push {lr} - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r1, #0xc1 - lsls r1, r1, #6 - movs r0, #0 - bl SetGpuReg - pop {r0} - bx r0 - thumb_func_end sub_0811D7B4 - - thumb_func_start sub_0811D814 -sub_0811D814: @ 0x0811D814 - push {r4, lr} - bl ResetPaletteFade - ldr r0, _0811D868 - movs r1, #0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _0811D86C - movs r1, #0x10 - movs r2, #0x20 - bl LoadPalette - ldr r0, _0811D870 - movs r1, #0x40 - movs r2, #0x20 - bl LoadPalette - ldr r0, _0811D874 - movs r1, #0xa0 - movs r2, #8 - bl LoadPalette - ldr r4, _0811D878 - adds r0, r4, #0 - movs r1, #0xb0 - movs r2, #0xc - bl LoadPalette - adds r0, r4, #0 - movs r1, #0xf0 - movs r2, #0xc - bl LoadPalette - adds r0, r4, #0 - movs r1, #0x30 - movs r2, #0xc - bl LoadPalette - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811D868: .4byte gUnknown_8573E64 -_0811D86C: .4byte gUnknown_857423C -_0811D870: .4byte gUnknown_857425C -_0811D874: .4byte gUnknown_8574344 -_0811D878: .4byte gUnknown_857434C - thumb_func_end sub_0811D814 - - thumb_func_start sub_0811D87C -sub_0811D87C: @ 0x0811D87C - push {r4, r5, lr} - sub sp, #0x14 - bl GetTitleText - adds r5, r0, #0 - cmp r5, #0 - beq _0811D8D8 - bl StringLength - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r4, #0x10 - subs r4, r4, r0 - lsrs r0, r4, #0x1f - adds r4, r4, r0 - asrs r4, r4, #1 - lsls r4, r4, #0x13 - lsrs r4, r4, #0x10 - movs r0, #0 - movs r1, #0 - bl FillWindowPixelBuffer - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r1, #0 - str r1, [sp] - movs r0, #0xff - str r0, [sp, #4] - str r1, [sp, #8] - movs r0, #2 - str r0, [sp, #0xc] - movs r0, #3 - str r0, [sp, #0x10] - movs r0, #0 - movs r1, #1 - adds r2, r5, #0 - adds r3, r4, #0 - bl sub_0811D920 - movs r0, #0 - bl PutWindowTilemap - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram -_0811D8D8: - add sp, #0x14 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_0811D87C - - thumb_func_start sub_0811D8E0 -sub_0811D8E0: @ 0x0811D8E0 - push {r4, r5, r6, lr} - sub sp, #0xc - adds r6, r2, #0 - ldr r2, [sp, #0x1c] - ldr r4, [sp, #0x20] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r2, r2, #0x18 - lsrs r0, r2, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - cmp r1, #1 - bne _0811D908 - adds r0, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_0811D908: - str r0, [sp] - str r4, [sp, #4] - ldr r0, [sp, #0x24] - str r0, [sp, #8] - adds r0, r5, #0 - adds r2, r6, #0 - bl AddTextPrinterParameterized - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_0811D8E0 - - thumb_func_start sub_0811D920 -sub_0811D920: @ 0x0811D920 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x10 - mov sb, r2 - ldr r2, [sp, #0x2c] - ldr r4, [sp, #0x30] - ldr r5, [sp, #0x34] - ldr r6, [sp, #0x38] - ldr r7, [sp, #0x3c] - mov r8, r7 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov ip, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r3, r3, #0x18 - lsrs r7, r3, #0x18 - lsls r2, r2, #0x18 - lsrs r3, r2, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov r0, r8 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r1, #1 - bne _0811D966 - adds r0, r3, #2 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 -_0811D966: - add r0, sp, #0xc - strb r5, [r0] - strb r6, [r0, #1] - strb r2, [r0, #2] - str r0, [sp] - lsls r0, r4, #0x18 - asrs r0, r0, #0x18 - str r0, [sp, #4] - mov r0, sb - str r0, [sp, #8] - mov r0, ip - adds r2, r7, #0 - bl AddTextPrinterParameterized3 - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_0811D920 - - thumb_func_start sub_0811D990 -sub_0811D990: @ 0x0811D990 - push {lr} - sub sp, #0xc - movs r0, #0x20 - str r0, [sp] - movs r0, #0x14 - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect - movs r0, #1 - movs r1, #1 - movs r2, #0xe0 - bl LoadUserWindowBorderGfx - movs r0, #1 - movs r1, #1 - movs r2, #0xe - bl DrawTextBorderOuter - movs r0, #0 - bl sub_0811D9D8 - movs r0, #1 - bl PutWindowTilemap - movs r0, #0 - bl CopyBgTilemapBufferToVram - add sp, #0xc - pop {r0} - bx r0 - thumb_func_end sub_0811D990 - - thumb_func_start sub_0811D9D8 -sub_0811D9D8: @ 0x0811D9D8 - push {lr} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r0, #0 - str r0, [sp, #0x10] - str r0, [sp, #0xc] - cmp r1, #9 - bhi _0811DA90 - lsls r0, r1, #2 - ldr r1, _0811D9F4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0811D9F4: .4byte _0811D9F8 -_0811D9F8: @ jump table - .4byte _0811DA20 @ case 0 - .4byte _0811DA3E @ case 1 - .4byte _0811DA2A @ case 2 - .4byte _0811DA34 @ case 3 - .4byte _0811DA48 @ case 4 - .4byte _0811DA54 @ case 5 - .4byte _0811DA60 @ case 6 - .4byte _0811DA70 @ case 7 - .4byte _0811DA7C @ case 8 - .4byte _0811DA88 @ case 9 -_0811DA20: - add r1, sp, #0x10 - add r0, sp, #0xc - bl GetEasyChatInstructionsText - b _0811DA90 -_0811DA2A: - add r1, sp, #0x10 - add r0, sp, #0xc - bl sub_0811C344 - b _0811DA90 -_0811DA34: - add r1, sp, #0x10 - add r0, sp, #0xc - bl GetEasyChatConfirmText - b _0811DA90 -_0811DA3E: - add r1, sp, #0x10 - add r0, sp, #0xc - bl GetEasyChatConfirmDeletionText - b _0811DA90 -_0811DA48: - ldr r0, _0811DA50 - str r0, [sp, #0xc] - b _0811DA90 - .align 2, 0 -_0811DA50: .4byte gUnknown_85CBCD0 -_0811DA54: - ldr r0, _0811DA5C - str r0, [sp, #0xc] - b _0811DA90 - .align 2, 0 -_0811DA5C: .4byte gUnknown_85CBCE0 -_0811DA60: - ldr r0, _0811DA68 - str r0, [sp, #0xc] - ldr r0, _0811DA6C - b _0811DA8E - .align 2, 0 -_0811DA68: .4byte gUnknown_85CBB1B -_0811DA6C: .4byte gUnknown_85CBB2F -_0811DA70: - ldr r0, _0811DA78 - str r0, [sp, #0xc] - b _0811DA90 - .align 2, 0 -_0811DA78: .4byte gUnknown_85CBCEF -_0811DA7C: - ldr r0, _0811DA84 - str r0, [sp, #0xc] - b _0811DA90 - .align 2, 0 -_0811DA84: .4byte gUnknown_85CBB4E -_0811DA88: - ldr r0, _0811DADC - str r0, [sp, #0xc] - ldr r0, _0811DAE0 -_0811DA8E: - str r0, [sp, #0x10] -_0811DA90: - movs r0, #1 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r2, [sp, #0xc] - cmp r2, #0 - beq _0811DAB2 - movs r1, #0 - str r1, [sp] - movs r0, #0xff - str r0, [sp, #4] - str r1, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r3, #0 - bl sub_0811D8E0 -_0811DAB2: - ldr r2, [sp, #0x10] - cmp r2, #0 - beq _0811DACE - movs r0, #0x10 - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r3, #0 - bl sub_0811D8E0 -_0811DACE: - movs r0, #1 - movs r1, #3 - bl CopyWindowToVram - add sp, #0x14 - pop {r0} - bx r0 - .align 2, 0 -_0811DADC: .4byte gUnknown_85CBC62 -_0811DAE0: .4byte gUnknown_85CBC6D - thumb_func_end sub_0811D9D8 - - thumb_func_start sub_0811DAE4 -sub_0811DAE4: @ 0x0811DAE4 - push {lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0811DB0C - movs r1, #1 - str r1, [sp] - movs r1, #0xe - str r1, [sp, #4] - str r0, [sp, #8] - adds r0, r2, #0 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl sub_08198C08 - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_0811DB0C: .4byte gUnknown_85743AC - thumb_func_end sub_0811DAE4 - - thumb_func_start sub_0811DB10 -sub_0811DB10: @ 0x0811DB10 - push {r4, r5, r6, lr} - sub sp, #8 - bl GetEasyChatScreenFrameId - lsls r0, r0, #0x18 - ldr r6, _0811DB8C - ldr r4, [sp] - ands r4, r6 - movs r1, #3 - orrs r4, r1 - str r4, [sp] - ldr r1, _0811DB90 - lsrs r0, r0, #0x16 - adds r0, r0, r1 - ldrb r3, [r0] - lsls r1, r3, #0x1b - lsrs r1, r1, #0x13 - ldr r5, _0811DB94 - adds r2, r5, #0 - ands r2, r4 - orrs r2, r1 - lsrs r3, r3, #5 - lsls r3, r3, #0x10 - ldr r1, _0811DB98 - ands r2, r1 - orrs r2, r3 - str r2, [sp] - ldrb r3, [r0, #1] - lsls r3, r3, #0x18 - ldr r1, _0811DB9C - ands r1, r2 - orrs r1, r3 - str r1, [sp] - ldrb r1, [r0, #2] - ldr r0, [sp, #4] - ands r0, r6 - orrs r0, r1 - ands r0, r5 - movs r1, #0xb0 - lsls r1, r1, #4 - orrs r0, r1 - ldr r1, _0811DBA0 - ands r0, r1 - movs r1, #0xc0 - lsls r1, r1, #0xe - orrs r0, r1 - str r0, [sp, #4] - mov r0, sp - bl AddWindow - ldr r1, _0811DBA4 - ldr r1, [r1] - strh r0, [r1, #2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl PutWindowTilemap - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0811DB8C: .4byte 0xFFFFFF00 -_0811DB90: .4byte gUnknown_8574358 -_0811DB94: .4byte 0xFFFF00FF -_0811DB98: .4byte 0xFF00FFFF -_0811DB9C: .4byte 0x00FFFFFF -_0811DBA0: .4byte 0x0000FFFF -_0811DBA4: .4byte gUnknown_2039DE8 - thumb_func_end sub_0811DB10 - - thumb_func_start sub_0811DBA8 -sub_0811DBA8: @ 0x0811DBA8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - bl GetEasyChatWordBuffer - adds r6, r0, #0 - bl GetNumColumns - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - bl GetNumRows - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0xc] - ldr r4, _0811DBE0 - ldr r0, [r4] - ldrb r0, [r0, #2] - movs r1, #0x11 - bl FillWindowPixelBuffer - movs r5, #0 - b _0811DC86 - .align 2, 0 -_0811DBE0: .4byte gUnknown_2039DE8 -_0811DBE4: - ldr r1, _0811DC20 - ldr r0, [r1] - adds r0, #0xb - movs r1, #0 - movs r2, #0xc0 - bl StringFill - ldr r1, _0811DC20 - ldr r0, [r1] - adds r2, r0, #0 - adds r2, #0xd - movs r4, #0 - lsls r7, r5, #0x1c - adds r5, #1 - mov sb, r5 - cmp r4, r8 - bge _0811DC64 - ldr r0, _0811DC24 - mov sl, r0 -_0811DC0A: - ldrh r0, [r6] - cmp r0, sl - beq _0811DC28 - adds r1, r0, #0 - adds r0, r2, #0 - bl CopyEasyChatWord - adds r2, r0, #0 - adds r5, r6, #2 - adds r4, #1 - b _0811DC58 - .align 2, 0 -_0811DC20: .4byte gUnknown_2039DE8 -_0811DC24: .4byte 0x0000FFFF -_0811DC28: - adds r0, r2, #0 - movs r1, #0 - movs r2, #4 - bl WriteColorChangeControlCode - adds r2, r0, #0 - adds r5, r6, #2 - adds r4, #1 - movs r3, #0xf9 - movs r1, #9 - movs r0, #4 -_0811DC3E: - strb r3, [r2] - adds r2, #1 - strb r1, [r2] - adds r2, #1 - subs r0, #1 - cmp r0, #0 - bge _0811DC3E - adds r0, r2, #0 - movs r1, #0 - movs r2, #2 - bl WriteColorChangeControlCode - adds r2, r0, #0 -_0811DC58: - movs r0, #0 - strb r0, [r2] - adds r2, #2 - adds r6, r5, #0 - cmp r4, r8 - blt _0811DC0A -_0811DC64: - movs r0, #0xff - strb r0, [r2] - ldr r1, _0811DCA8 - ldr r2, [r1] - ldrb r0, [r2, #2] - adds r2, #0xb - lsrs r1, r7, #0x18 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - movs r3, #0 - bl sub_0811D8E0 - mov r5, sb -_0811DC86: - ldr r0, [sp, #0xc] - cmp r5, r0 - blt _0811DBE4 - ldr r0, _0811DCA8 - ldr r0, [r0] - ldrb r0, [r0, #2] - movs r1, #3 - bl CopyWindowToVram - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0811DCA8: .4byte gUnknown_2039DE8 - thumb_func_end sub_0811DBA8 - - thumb_func_start sub_0811DCAC -sub_0811DCAC: @ 0x0811DCAC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov r8, r0 - bl GetEasyChatScreenFrameId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - movs r0, #0 - str r0, [sp] - ldr r2, _0811DDEC - mov r0, sp - mov r1, r8 - bl CpuFastSet - ldr r0, _0811DDF0 - mov r1, sb - lsls r3, r1, #2 - adds r3, r3, r0 - ldrb r0, [r3] - lsls r2, r0, #0x18 - lsrs r1, r2, #0x1d - subs r6, r1, #1 - lsls r0, r0, #0x1b - lsrs r4, r0, #0x1b - subs r5, r4, #1 - adds r0, r4, #0 - ldrb r1, [r3, #1] - adds r7, r0, r1 - lsrs r2, r2, #0x1d - ldrb r3, [r3, #2] - adds r3, r2, r3 - lsls r0, r6, #5 - adds r0, r0, r5 - lsls r0, r0, #1 - add r0, r8 - ldr r2, _0811DDF4 - adds r1, r2, #0 - strh r1, [r0] - adds r5, r4, #0 - cmp r5, r7 - bge _0811DD22 - ldr r4, _0811DDF8 - adds r2, r4, #0 - lsls r1, r5, #1 - lsls r0, r6, #6 - add r0, r8 - adds r1, r1, r0 - subs r5, r7, r5 -_0811DD16: - strh r2, [r1] - adds r1, #2 - subs r5, #1 - cmp r5, #0 - bne _0811DD16 - adds r5, r7, #0 -_0811DD22: - lsls r0, r6, #5 - adds r0, r0, r5 - lsls r0, r0, #1 - add r0, r8 - ldr r2, _0811DDFC - adds r1, r2, #0 - strh r1, [r0] - adds r6, #1 - ldr r4, _0811DDF0 - mov sl, r4 - mov r0, sb - lsls r0, r0, #2 - mov sb, r0 - cmp r6, r3 - bge _0811DD94 - add r0, sl - ldrb r0, [r0] - lsls r0, r0, #0x1b - mov ip, r0 -_0811DD48: - mov r1, ip - lsrs r0, r1, #0x1b - subs r5, r0, #1 - lsls r1, r6, #5 - adds r1, r1, r5 - lsls r1, r1, #1 - add r1, r8 - ldr r4, _0811DE00 - adds r2, r4, #0 - strh r2, [r1] - adds r5, r0, #0 - adds r4, r6, #1 - cmp r5, r7 - bge _0811DD80 - movs r0, #0x80 - lsls r0, r0, #5 - adds r2, r0, #0 - lsls r1, r5, #1 - lsls r0, r6, #6 - add r0, r8 - adds r1, r1, r0 - subs r5, r7, r5 -_0811DD74: - strh r2, [r1] - adds r1, #2 - subs r5, #1 - cmp r5, #0 - bne _0811DD74 - adds r5, r7, #0 -_0811DD80: - lsls r0, r6, #5 - adds r0, r0, r5 - lsls r0, r0, #1 - add r0, r8 - ldr r2, _0811DE04 - adds r1, r2, #0 - strh r1, [r0] - adds r6, r4, #0 - cmp r6, r3 - blt _0811DD48 -_0811DD94: - mov r0, sb - add r0, sl - ldrb r2, [r0] - lsls r2, r2, #0x1b - lsrs r2, r2, #0x1b - subs r5, r2, #1 - lsls r3, r6, #5 - adds r0, r3, r5 - lsls r0, r0, #1 - add r0, r8 - ldr r4, _0811DE08 - adds r1, r4, #0 - strh r1, [r0] - adds r5, r2, #0 - cmp r5, r7 - bge _0811DDCE - ldr r0, _0811DE0C - adds r2, r0, #0 - lsls r1, r5, #1 - lsls r0, r6, #6 - add r0, r8 - adds r0, r1, r0 - subs r5, r7, r5 -_0811DDC2: - strh r2, [r0] - adds r0, #2 - subs r5, #1 - cmp r5, #0 - bne _0811DDC2 - adds r5, r7, #0 -_0811DDCE: - adds r0, r3, r5 - lsls r0, r0, #1 - add r0, r8 - ldr r2, _0811DE10 - adds r1, r2, #0 - strh r1, [r0] - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0811DDEC: .4byte 0x01000200 -_0811DDF0: .4byte gUnknown_8574358 -_0811DDF4: .4byte 0x00001001 -_0811DDF8: .4byte 0x00001002 -_0811DDFC: .4byte 0x00001003 -_0811DE00: .4byte 0x00001005 -_0811DE04: .4byte 0x00001007 -_0811DE08: .4byte 0x00001009 -_0811DE0C: .4byte 0x0000100A -_0811DE10: .4byte 0x0000100B - thumb_func_end sub_0811DCAC - - thumb_func_start sub_0811DE14 -sub_0811DE14: @ 0x0811DE14 - push {r4, lr} - sub sp, #8 - movs r0, #3 - bl GetBgTilemapBuffer - adds r4, r0, #0 - bl GetEasyChatScreenFrameId - lsls r0, r0, #0x18 - ldr r1, _0811DE3C - lsrs r0, r0, #0x16 - adds r0, r0, r1 - ldrb r1, [r0, #3] - cmp r1, #2 - beq _0811DE46 - cmp r1, #2 - bgt _0811DE40 - cmp r1, #1 - beq _0811DE54 - b _0811DE84 - .align 2, 0 -_0811DE3C: .4byte gUnknown_8574358 -_0811DE40: - cmp r1, #3 - beq _0811DE70 - b _0811DE84 -_0811DE46: - movs r0, #0xa8 - lsls r0, r0, #3 - adds r4, r4, r0 - movs r0, #0x20 - str r0, [sp] - str r1, [sp, #4] - b _0811DE62 -_0811DE54: - movs r0, #0xc0 - lsls r0, r0, #3 - adds r4, r4, r0 - movs r0, #0x20 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] -_0811DE62: - movs r0, #3 - adds r1, r4, #0 - movs r2, #0 - movs r3, #0xa - bl CopyToBgTilemapBufferRect - b _0811DE84 -_0811DE70: - movs r0, #0x20 - str r0, [sp] - movs r0, #4 - str r0, [sp, #4] - movs r0, #3 - adds r1, r4, #0 - movs r2, #0 - movs r3, #9 - bl CopyToBgTilemapBufferRect -_0811DE84: - add sp, #8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0811DE14 - - thumb_func_start sub_0811DE8C -sub_0811DE8C: @ 0x0811DE8C - push {lr} - movs r0, #2 - bl PutWindowTilemap - movs r0, #2 - bl CopyBgTilemapBufferToVram - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0811DE8C - - thumb_func_start sub_0811DEA0 -sub_0811DEA0: @ 0x0811DEA0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0811E598 - movs r0, #2 - movs r1, #0x11 - bl FillWindowPixelBuffer - cmp r4, #1 - beq _0811DEC4 - cmp r4, #1 - blo _0811DEBE - cmp r4, #2 - beq _0811DECA - b _0811DECE -_0811DEBE: - bl sub_0811DEFC - b _0811DECE -_0811DEC4: - bl sub_0811DF70 - b _0811DECE -_0811DECA: - bl sub_0811DFAC -_0811DECE: - movs r0, #2 - movs r1, #2 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0811DEA0 - - thumb_func_start sub_0811DEDC -sub_0811DEDC: @ 0x0811DEDC - push {lr} - bl sub_0811C3B4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811DEF0 - movs r0, #0 - bl sub_0811DEA0 - b _0811DEF6 -_0811DEF0: - movs r0, #1 - bl sub_0811DEA0 -_0811DEF6: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0811DEDC - - thumb_func_start sub_0811DEFC -sub_0811DEFC: @ 0x0811DEFC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - movs r6, #0 - movs r0, #0x60 - mov r8, r0 -_0811DF0A: - movs r5, #0 - mov r1, r8 - lsls r0, r1, #0x18 - lsrs r7, r0, #0x18 - movs r4, #0x80 - lsls r4, r4, #0x14 -_0811DF16: - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - adds r6, #1 - bl sub_0811F914 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x16 - beq _0811DF54 - bl sub_0811F980 - adds r2, r0, #0 - lsrs r3, r4, #0x18 - str r7, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - movs r0, #2 - movs r1, #1 - bl sub_0811D8E0 - movs r0, #0xe0 - lsls r0, r0, #0x16 - adds r4, r4, r0 - adds r5, #1 - cmp r5, #2 - ble _0811DF16 - movs r1, #0x10 - add r8, r1 - b _0811DF0A -_0811DF54: - bl sub_0811C3C0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl sub_0811E5C0 - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0811DEFC - - thumb_func_start sub_0811DF70 -sub_0811DF70: @ 0x0811DF70 - push {r4, r5, r6, lr} - sub sp, #0xc - movs r5, #0 - movs r4, #0xc0 - lsls r4, r4, #0x17 - ldr r6, _0811DFA8 -_0811DF7C: - ldm r6!, {r2} - lsrs r0, r4, #0x18 - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - movs r0, #2 - movs r1, #1 - movs r3, #8 - bl sub_0811D8E0 - movs r0, #0x80 - lsls r0, r0, #0x15 - adds r4, r4, r0 - adds r5, #1 - cmp r5, #3 - bls _0811DF7C - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0811DFA8: .4byte gUnknown_85743BC - thumb_func_end sub_0811DF70 - - thumb_func_start sub_0811DFAC -sub_0811DFAC: @ 0x0811DFAC - push {lr} - movs r0, #0 - movs r1, #4 - bl sub_0811E07C - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0811DFAC - - thumb_func_start sub_0811DFBC -sub_0811DFBC: @ 0x0811DFBC - push {r4, lr} - bl sub_0811C3E0 - adds r4, r0, #0 - adds r4, #3 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #1 - bl sub_0811E164 - adds r0, r4, #0 - movs r1, #1 - bl sub_0811E07C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0811DFBC - - thumb_func_start sub_0811DFE0 -sub_0811DFE0: @ 0x0811DFE0 - push {r4, lr} - bl sub_0811C3E0 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #1 - bl sub_0811E164 - adds r0, r4, #0 - movs r1, #1 - bl sub_0811E07C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0811DFE0 - - thumb_func_start sub_0811E004 -sub_0811E004: @ 0x0811E004 - push {r4, r5, lr} - bl sub_0811C3E0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - adds r0, r5, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl sub_0811C3EC - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - bls _0811E026 - adds r4, r0, #0 -_0811E026: - cmp r5, r4 - bhs _0811E040 - subs r4, r4, r5 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0811E164 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0811E07C -_0811E040: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0811E004 - - thumb_func_start sub_0811E048 -sub_0811E048: @ 0x0811E048 - push {r4, r5, lr} - bl sub_0811C3E0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - bl sub_0811E65C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r5, r0 - bhs _0811E074 - subs r4, r0, r5 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0811E164 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0811E07C -_0811E074: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0811E048 - - thumb_func_start sub_0811E07C -sub_0811E07C: @ 0x0811E07C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp, #0x14] - lsls r1, r0, #1 - adds r7, r1, r0 - lsls r0, r0, #4 - adds r1, r0, #0 - adds r1, #0x60 - movs r0, #0xff - ands r1, r0 - movs r0, #0 - b _0811E144 -_0811E0A4: - movs r2, #0x10 - adds r2, r2, r1 - mov sl, r2 - adds r0, #1 - str r0, [sp, #0x18] - lsls r0, r1, #0x18 - lsrs r6, r0, #0x18 - movs r0, #0x80 - lsls r0, r0, #0x15 - mov r8, r0 - movs r2, #2 - mov sb, r2 -_0811E0BC: - lsls r0, r7, #0x10 - lsrs r0, r0, #0x10 - adds r7, #1 - bl sub_0811FAD0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, _0811E104 - cmp r4, r0 - beq _0811E12E - ldr r5, _0811E108 - ldr r0, [r5] - adds r0, #0xcc - adds r1, r4, #0 - movs r2, #0 - bl CopyEasyChatWordPadded - adds r0, r4, #0 - bl sub_0811C820 - adds r1, r0, #0 - cmp r1, #0 - bne _0811E10C - ldr r2, [r5] - adds r2, #0xcc - mov r0, r8 - lsrs r3, r0, #0x18 - str r6, [sp] - movs r0, #0xff - str r0, [sp, #4] - str r1, [sp, #8] - movs r0, #2 - movs r1, #1 - bl sub_0811D8E0 - b _0811E12E - .align 2, 0 -_0811E104: .4byte 0x0000FFFF -_0811E108: .4byte gUnknown_2039DE8 -_0811E10C: - ldr r2, [r5] - adds r2, #0xcc - mov r0, r8 - lsrs r3, r0, #0x18 - str r6, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - movs r0, #5 - str r0, [sp, #0xc] - movs r0, #3 - str r0, [sp, #0x10] - movs r0, #2 - movs r1, #1 - bl sub_0811D920 -_0811E12E: - movs r2, #0x90 - lsls r2, r2, #0x17 - add r8, r2 - movs r0, #1 - rsbs r0, r0, #0 - add sb, r0 - mov r2, sb - cmp r2, #0 - bge _0811E0BC - mov r1, sl - ldr r0, [sp, #0x18] -_0811E144: - ldr r2, [sp, #0x14] - cmp r0, r2 - blt _0811E0A4 - movs r0, #2 - movs r1, #2 - bl CopyWindowToVram - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0811E07C - - thumb_func_start sub_0811E164 -sub_0811E164: @ 0x0811E164 - push {r4, r5, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r0, r0, #0x14 - adds r3, r0, #0 - adds r3, #0x60 - movs r0, #0xff - ands r3, r0 - lsrs r0, r1, #0x14 - adds r1, r3, r0 - cmp r1, #0xff - ble _0811E190 - ldr r0, _0811E18C - adds r4, r1, r0 - movs r0, #0x80 - lsls r0, r0, #1 - subs r0, r0, r3 - b _0811E192 - .align 2, 0 -_0811E18C: .4byte 0xFFFFFF00 -_0811E190: - movs r4, #0 -_0811E192: - movs r5, #0xe0 - str r5, [sp] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #4] - movs r0, #2 - movs r1, #0x11 - movs r2, #0 - bl sub_08003A34 - cmp r4, #0 - beq _0811E1BE - str r5, [sp] - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #4] - movs r0, #2 - movs r1, #0x11 - movs r2, #0 - movs r3, #0 - bl sub_08003A34 -_0811E1BE: - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0811E164 - - thumb_func_start VBlankCB_MailRead -VBlankCB_MailRead: @ 0x0811E1C8 - push {lr} - movs r0, #2 - movs r1, #0x11 - bl FillWindowPixelBuffer - movs r0, #2 - movs r1, #2 - bl CopyWindowToVram - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end VBlankCB_MailRead - - thumb_func_start sub_0811E1E0 -sub_0811E1E0: @ 0x0811E1E0 - push {lr} - ldr r1, _0811E1F4 - cmp r0, #6 - bhi _0811E29A - lsls r0, r0, #2 - ldr r1, _0811E1F8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0811E1F4: .4byte gUnknown_2039DE8 -_0811E1F8: .4byte _0811E1FC -_0811E1FC: @ jump table - .4byte _0811E218 @ case 0 - .4byte _0811E22C @ case 1 - .4byte _0811E23C @ case 2 - .4byte _0811E250 @ case 3 - .4byte _0811E264 @ case 4 - .4byte _0811E278 @ case 5 - .4byte _0811E28C @ case 6 -_0811E218: - ldr r1, _0811E228 - ldr r2, [r1] - movs r0, #0 - strb r0, [r2, #6] - ldr r2, [r1] - movs r0, #0xa - b _0811E298 - .align 2, 0 -_0811E228: .4byte gUnknown_2039DE8 -_0811E22C: - ldr r1, _0811E238 - ldr r2, [r1] - movs r3, #0 - movs r0, #9 - b _0811E258 - .align 2, 0 -_0811E238: .4byte gUnknown_2039DE8 -_0811E23C: - ldr r1, _0811E24C - ldr r2, [r1] - movs r0, #0xb - strb r0, [r2, #6] - ldr r2, [r1] - movs r0, #0x11 - b _0811E298 - .align 2, 0 -_0811E24C: .4byte gUnknown_2039DE8 -_0811E250: - ldr r1, _0811E260 - ldr r2, [r1] - movs r3, #0 - movs r0, #0x11 -_0811E258: - strb r0, [r2, #6] - ldr r0, [r1] - strb r3, [r0, #7] - b _0811E29A - .align 2, 0 -_0811E260: .4byte gUnknown_2039DE8 -_0811E264: - ldr r1, _0811E274 - ldr r2, [r1] - movs r0, #0x11 - strb r0, [r2, #6] - ldr r2, [r1] - movs r0, #0xa - b _0811E298 - .align 2, 0 -_0811E274: .4byte gUnknown_2039DE8 -_0811E278: - ldr r1, _0811E288 - ldr r2, [r1] - movs r0, #0x12 - strb r0, [r2, #6] - ldr r2, [r1] - movs r0, #0x16 - b _0811E298 - .align 2, 0 -_0811E288: .4byte gUnknown_2039DE8 -_0811E28C: - ldr r1, _0811E2B4 - ldr r2, [r1] - movs r0, #0x16 - strb r0, [r2, #6] - ldr r2, [r1] - movs r0, #0x12 -_0811E298: - strb r0, [r2, #7] -_0811E29A: - ldr r1, [r1] - ldrb r0, [r1, #6] - movs r3, #1 - rsbs r3, r3, #0 - adds r2, r3, #0 - ldrb r3, [r1, #7] - cmp r0, r3 - bhs _0811E2AC - movs r2, #1 -_0811E2AC: - strb r2, [r1, #8] - pop {r0} - bx r0 - .align 2, 0 -_0811E2B4: .4byte gUnknown_2039DE8 - thumb_func_end sub_0811E1E0 - - thumb_func_start sub_0811E2B8 -sub_0811E2B8: @ 0x0811E2B8 - push {r4, lr} - ldr r4, _0811E2E4 - ldr r1, [r4] - ldrb r2, [r1, #6] - ldrb r0, [r1, #7] - cmp r2, r0 - beq _0811E2E8 - ldrb r0, [r1, #8] - adds r0, r2, r0 - strb r0, [r1, #6] - ldr r0, [r4] - ldrb r0, [r0, #6] - bl sub_0811E2F0 - ldr r0, [r4] - ldrb r1, [r0, #6] - ldrb r0, [r0, #7] - eors r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - b _0811E2EA - .align 2, 0 -_0811E2E4: .4byte gUnknown_2039DE8 -_0811E2E8: - movs r0, #0 -_0811E2EA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0811E2B8 - - thumb_func_start sub_0811E2F0 -sub_0811E2F0: @ 0x0811E2F0 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #0x1e - str r0, [sp] - movs r0, #0xa - str r0, [sp, #4] - movs r0, #1 - movs r1, #0 - movs r2, #0 - movs r3, #0xa - bl FillBgTilemapBufferRect_Palette0 - cmp r4, #0x16 - bls _0811E312 - b _0811E42E -_0811E312: - lsls r0, r4, #2 - ldr r1, _0811E31C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0811E31C: .4byte _0811E320 -_0811E320: @ jump table - .4byte _0811E42E @ case 0 - .4byte _0811E37C @ case 1 - .4byte _0811E384 @ case 2 - .4byte _0811E38C @ case 3 - .4byte _0811E394 @ case 4 - .4byte _0811E39C @ case 5 - .4byte _0811E3A4 @ case 6 - .4byte _0811E414 @ case 7 - .4byte _0811E406 @ case 8 - .4byte _0811E3F8 @ case 9 - .4byte _0811E3EA @ case 10 - .4byte _0811E3B2 @ case 11 - .4byte _0811E3BA @ case 12 - .4byte _0811E3C2 @ case 13 - .4byte _0811E3CA @ case 14 - .4byte _0811E3D2 @ case 15 - .4byte _0811E3DA @ case 16 - .4byte _0811E3E2 @ case 17 - .4byte _0811E3EA @ case 18 - .4byte _0811E3F8 @ case 19 - .4byte _0811E406 @ case 20 - .4byte _0811E414 @ case 21 - .4byte _0811E422 @ case 22 -_0811E37C: - movs r0, #0xb - movs r1, #0xe - movs r2, #3 - b _0811E3AA -_0811E384: - movs r0, #9 - movs r1, #0xe - movs r2, #7 - b _0811E3AA -_0811E38C: - movs r0, #7 - movs r1, #0xe - movs r2, #0xb - b _0811E3AA -_0811E394: - movs r0, #5 - movs r1, #0xe - movs r2, #0xf - b _0811E3AA -_0811E39C: - movs r0, #3 - movs r1, #0xe - movs r2, #0x13 - b _0811E3AA -_0811E3A4: - movs r0, #1 - movs r1, #0xe - movs r2, #0x17 -_0811E3AA: - movs r3, #2 - bl sub_0811E43C - b _0811E42E -_0811E3B2: - movs r0, #1 - movs r1, #0xa - movs r2, #0x18 - b _0811E3F0 -_0811E3BA: - movs r0, #1 - movs r1, #0xa - movs r2, #0x19 - b _0811E3F0 -_0811E3C2: - movs r0, #1 - movs r1, #0xa - movs r2, #0x1a - b _0811E3F0 -_0811E3CA: - movs r0, #1 - movs r1, #0xa - movs r2, #0x1b - b _0811E3F0 -_0811E3D2: - movs r0, #1 - movs r1, #0xa - movs r2, #0x1c - b _0811E3F0 -_0811E3DA: - movs r0, #1 - movs r1, #0xa - movs r2, #0x1d - b _0811E3F0 -_0811E3E2: - movs r0, #0 - movs r1, #0xa - movs r2, #0x1e - b _0811E3F0 -_0811E3EA: - movs r0, #1 - movs r1, #0xa - movs r2, #0x17 -_0811E3F0: - movs r3, #0xa - bl sub_0811E43C - b _0811E42E -_0811E3F8: - movs r0, #1 - movs r1, #0xb - movs r2, #0x17 - movs r3, #8 - bl sub_0811E43C - b _0811E42E -_0811E406: - movs r0, #1 - movs r1, #0xc - movs r2, #0x17 - movs r3, #6 - bl sub_0811E43C - b _0811E42E -_0811E414: - movs r0, #1 - movs r1, #0xd - movs r2, #0x17 - movs r3, #4 - bl sub_0811E43C - b _0811E42E -_0811E422: - movs r0, #1 - movs r1, #0xe - movs r2, #0x17 - movs r3, #2 - bl sub_0811E43C -_0811E42E: - movs r0, #1 - bl CopyBgTilemapBufferToVram - add sp, #8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0811E2F0 - - thumb_func_start sub_0811E43C -sub_0811E43C: @ 0x0811E43C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - mov ip, r0 - adds r7, r1, #0 - mov sb, r2 - mov sl, r3 - ldr r0, _0811E574 - ldr r0, [r0] - movs r1, #0xbf - lsls r1, r1, #2 - adds r6, r0, r1 - mov r0, ip - add r0, sb - subs r5, r0, #1 - adds r0, r7, r3 - subs r0, #1 - mov r8, r0 - mov r2, ip - adds r3, r7, #0 - lsls r0, r3, #5 - adds r0, r0, r2 - lsls r0, r0, #1 - adds r0, r0, r6 - ldr r4, _0811E578 - adds r1, r4, #0 - strh r1, [r0] - adds r2, #1 - cmp r2, r5 - bge _0811E498 - ldr r0, _0811E57C - adds r4, r0, #0 - lsls r1, r2, #1 - lsls r0, r3, #6 - adds r0, r0, r6 - adds r1, r1, r0 - subs r2, r5, r2 -_0811E48C: - strh r4, [r1] - adds r1, #2 - subs r2, #1 - cmp r2, #0 - bne _0811E48C - adds r2, r5, #0 -_0811E498: - lsls r0, r3, #5 - adds r0, r0, r2 - lsls r0, r0, #1 - adds r0, r0, r6 - ldr r2, _0811E580 - adds r1, r2, #0 - strh r1, [r0] - adds r3, #1 - mov r4, ip - adds r4, #1 - adds r0, r7, #1 - str r0, [sp, #4] - mov r1, sb - subs r1, #2 - str r1, [sp] - movs r2, #2 - rsbs r2, r2, #0 - add sl, r2 - cmp r3, r8 - bge _0811E508 - lsls r7, r4, #1 - mov sb, r7 -_0811E4C4: - lsls r0, r3, #5 - add r0, ip - lsls r0, r0, #1 - adds r0, r0, r6 - ldr r2, _0811E584 - adds r1, r2, #0 - strh r1, [r0] - adds r2, r4, #0 - adds r7, r3, #1 - cmp r4, r5 - bge _0811E4F4 - movs r0, #0x80 - lsls r0, r0, #7 - adds r1, r0, #0 - lsls r0, r3, #6 - adds r0, r0, r6 - add r0, sb - subs r2, r5, r4 -_0811E4E8: - strh r1, [r0] - adds r0, #2 - subs r2, #1 - cmp r2, #0 - bne _0811E4E8 - adds r2, r5, #0 -_0811E4F4: - lsls r0, r3, #5 - adds r0, r0, r2 - lsls r0, r0, #1 - adds r0, r0, r6 - ldr r2, _0811E588 - adds r1, r2, #0 - strh r1, [r0] - adds r3, r7, #0 - cmp r3, r8 - blt _0811E4C4 -_0811E508: - lsls r0, r3, #5 - mov r7, ip - adds r1, r0, r7 - lsls r1, r1, #1 - adds r1, r1, r6 - ldr r7, _0811E58C - adds r2, r7, #0 - strh r2, [r1] - adds r2, r4, #0 - mov ip, r0 - cmp r4, r5 - bge _0811E53A - ldr r0, _0811E590 - adds r7, r0, #0 - lsls r1, r4, #1 - lsls r0, r3, #6 - adds r0, r0, r6 - adds r0, r1, r0 - subs r2, r5, r4 -_0811E52E: - strh r7, [r0] - adds r0, #2 - subs r2, #1 - cmp r2, #0 - bne _0811E52E - adds r2, r5, #0 -_0811E53A: - mov r1, ip - adds r0, r1, r2 - lsls r0, r0, #1 - adds r0, r0, r6 - ldr r2, _0811E594 - adds r1, r2, #0 - strh r1, [r0] - lsls r0, r4, #0x1b - lsrs r0, r0, #0x18 - ldr r3, [sp, #4] - lsls r1, r3, #0x1b - lsrs r1, r1, #0x18 - ldr r4, [sp] - lsls r2, r4, #0x1b - lsrs r2, r2, #0x18 - mov r7, sl - lsls r3, r7, #0x1b - lsrs r3, r3, #0x18 - bl sub_0811E670 - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0811E574: .4byte gUnknown_2039DE8 -_0811E578: .4byte 0x00004001 -_0811E57C: .4byte 0x00004002 -_0811E580: .4byte 0x00004003 -_0811E584: .4byte 0x00004005 -_0811E588: .4byte 0x00004007 -_0811E58C: .4byte 0x00004009 -_0811E590: .4byte 0x0000400A -_0811E594: .4byte 0x0000400B - thumb_func_end sub_0811E43C - - thumb_func_start sub_0811E598 -sub_0811E598: @ 0x0811E598 - push {lr} - movs r1, #0x80 - lsls r1, r1, #4 - movs r0, #2 - movs r2, #0 - bl ChangeBgY - ldr r0, _0811E5B8 - ldr r0, [r0] - ldr r1, _0811E5BC - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_0811E5B8: .4byte gUnknown_2039DE8 -_0811E5BC: .4byte 0x000002CE - thumb_func_end sub_0811E598 - - thumb_func_start sub_0811E5C0 -sub_0811E5C0: @ 0x0811E5C0 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - movs r0, #2 - bl GetBgY - adds r2, r0, #0 - ldr r0, _0811E60C - ldr r3, [r0] - ldr r0, _0811E610 - adds r1, r3, r0 - ldrh r0, [r1] - adds r0, r0, r4 - strh r0, [r1] - lsls r4, r4, #0x14 - asrs r4, r4, #0x10 - lsls r0, r4, #8 - adds r2, r2, r0 - cmp r5, #0 - beq _0811E614 - movs r1, #0xb4 - lsls r1, r1, #2 - adds r0, r3, r1 - str r2, [r0] - movs r0, #0xb5 - lsls r0, r0, #2 - adds r1, r3, r0 - lsls r0, r5, #8 - str r0, [r1] - cmp r4, #0 - bge _0811E61E - rsbs r0, r0, #0 - str r0, [r1] - b _0811E61E - .align 2, 0 -_0811E60C: .4byte gUnknown_2039DE8 -_0811E610: .4byte 0x000002CE -_0811E614: - movs r0, #2 - adds r1, r2, #0 - movs r2, #0 - bl ChangeBgY -_0811E61E: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_0811E5C0 - - thumb_func_start sub_0811E624 -sub_0811E624: @ 0x0811E624 - push {lr} - movs r0, #2 - bl GetBgY - ldr r1, _0811E650 - ldr r2, [r1] - movs r3, #0xb4 - lsls r3, r3, #2 - adds r1, r2, r3 - ldr r1, [r1] - cmp r0, r1 - beq _0811E654 - movs r1, #0xb5 - lsls r1, r1, #2 - adds r0, r2, r1 - ldr r1, [r0] - movs r0, #2 - movs r2, #1 - bl ChangeBgY - movs r0, #1 - b _0811E656 - .align 2, 0 -_0811E650: .4byte gUnknown_2039DE8 -_0811E654: - movs r0, #0 -_0811E656: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811E624 - - thumb_func_start sub_0811E65C -sub_0811E65C: @ 0x0811E65C - ldr r0, _0811E668 - ldr r0, [r0] - ldr r1, _0811E66C - adds r0, r0, r1 - ldrh r0, [r0] - bx lr - .align 2, 0 -_0811E668: .4byte gUnknown_2039DE8 -_0811E66C: .4byte 0x000002CE - thumb_func_end sub_0811E65C - - thumb_func_start sub_0811E670 -sub_0811E670: @ 0x0811E670 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r4, r0, #8 - adds r0, r0, r2 - orrs r4, r0 - lsls r5, r1, #8 - adds r1, r1, r3 - orrs r5, r1 - movs r0, #0x40 - adds r1, r4, #0 - bl SetGpuReg - movs r0, #0x44 - adds r1, r5, #0 - bl SetGpuReg - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_0811E670 - - thumb_func_start sub_0811E6A4 -sub_0811E6A4: @ 0x0811E6A4 - push {r4, r5, lr} - ldr r0, _0811E6CC - bl LoadSpriteSheets - ldr r0, _0811E6D0 - bl LoadSpritePalettes - movs r5, #0 - ldr r4, _0811E6D4 -_0811E6B6: - adds r0, r4, #0 - bl LoadCompressedSpriteSheet - adds r4, #8 - adds r5, #1 - cmp r5, #3 - bls _0811E6B6 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0811E6CC: .4byte gUnknown_85743CC -_0811E6D0: .4byte gUnknown_85743EC -_0811E6D4: .4byte gUnknown_8574414 - thumb_func_end sub_0811E6A4 - - thumb_func_start sub_0811E6D8 -sub_0811E6D8: @ 0x0811E6D8 - push {lr} - bl GetEasyChatScreenFrameId - lsls r0, r0, #0x18 - ldr r1, _0811E724 - lsrs r0, r0, #0x16 - adds r0, r0, r1 - ldrb r2, [r0] - lsls r1, r2, #0x1b - lsrs r1, r1, #8 - lsrs r2, r2, #5 - adds r2, #1 - ldr r0, _0811E728 - movs r3, #0xc0 - lsls r3, r3, #0xc - adds r1, r1, r3 - asrs r1, r1, #0x10 - lsls r2, r2, #3 - movs r3, #2 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0811E72C - ldr r2, [r1] - movs r1, #0xb6 - lsls r1, r1, #2 - adds r2, r2, r1 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _0811E730 - adds r1, r1, r0 - str r1, [r2] - movs r0, #1 - strh r0, [r1, #0x30] - pop {r0} - bx r0 - .align 2, 0 -_0811E724: .4byte gUnknown_8574358 -_0811E728: .4byte gUnknown_857443C -_0811E72C: .4byte gUnknown_2039DE8 -_0811E730: .4byte gUnknown_20205AC - thumb_func_end sub_0811E6D8 - - thumb_func_start sub_0811E734 -sub_0811E734: @ 0x0811E734 - push {lr} - adds r1, r0, #0 - movs r2, #0x30 - ldrsh r0, [r1, r2] - cmp r0, #0 - beq _0811E762 - ldrh r0, [r1, #0x2e] - adds r0, #1 - strh r0, [r1, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - ble _0811E762 - movs r0, #0 - strh r0, [r1, #0x2e] - ldrh r0, [r1, #0x24] - adds r0, #1 - strh r0, [r1, #0x24] - lsls r0, r0, #0x10 - cmp r0, #0 - ble _0811E762 - ldr r0, _0811E768 - strh r0, [r1, #0x24] -_0811E762: - pop {r0} - bx r0 - .align 2, 0 -_0811E768: .4byte 0x0000FFFA - thumb_func_end sub_0811E734 - - thumb_func_start sub_0811E76C -sub_0811E76C: @ 0x0811E76C - push {r4, lr} - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - ldr r2, _0811E79C - ldr r2, [r2] - movs r3, #0xb6 - lsls r3, r3, #2 - adds r2, r2, r3 - ldr r3, [r2] - lsrs r0, r0, #0x15 - adds r0, #4 - movs r4, #0 - strh r0, [r3, #0x20] - ldr r0, [r2] - lsrs r1, r1, #0x15 - adds r1, #8 - strh r1, [r0, #0x22] - ldr r0, [r2] - strh r4, [r0, #0x24] - ldr r0, [r2] - strh r4, [r0, #0x2e] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811E79C: .4byte gUnknown_2039DE8 - thumb_func_end sub_0811E76C - - thumb_func_start sub_0811E7A0 -sub_0811E7A0: @ 0x0811E7A0 - ldr r0, _0811E7BC - ldr r1, [r0] - movs r0, #0xb6 - lsls r0, r0, #2 - adds r1, r1, r0 - ldr r0, [r1] - movs r2, #0 - strh r2, [r0, #0x2e] - ldr r0, [r1] - strh r2, [r0, #0x30] - ldr r0, [r1] - strh r2, [r0, #0x24] - bx lr - .align 2, 0 -_0811E7BC: .4byte gUnknown_2039DE8 - thumb_func_end sub_0811E7A0 - - thumb_func_start sub_0811E7C0 -sub_0811E7C0: @ 0x0811E7C0 - ldr r0, _0811E7D4 - ldr r0, [r0] - movs r1, #0xb6 - lsls r1, r1, #2 - adds r0, r0, r1 - ldr r1, [r0] - movs r0, #1 - strh r0, [r1, #0x30] - bx lr - .align 2, 0 -_0811E7D4: .4byte gUnknown_2039DE8 - thumb_func_end sub_0811E7C0 - - thumb_func_start sub_0811E7D8 -sub_0811E7D8: @ 0x0811E7D8 - push {lr} - ldr r0, _0811E808 - movs r1, #0 - movs r2, #0 - movs r3, #3 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0811E80C - ldr r2, [r1] - movs r1, #0xb7 - lsls r1, r1, #2 - adds r2, r2, r1 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _0811E810 - adds r1, r1, r0 - str r1, [r2] - bl sub_0811E838 - pop {r0} - bx r0 - .align 2, 0 -_0811E808: .4byte gUnknown_857448C -_0811E80C: .4byte gUnknown_2039DE8 -_0811E810: .4byte gUnknown_20205AC - thumb_func_end sub_0811E7D8 - - thumb_func_start sub_0811E814 -sub_0811E814: @ 0x0811E814 - push {r4, r5, lr} - ldr r5, _0811E834 - ldr r0, [r5] - movs r4, #0xb7 - lsls r4, r4, #2 - adds r0, r0, r4 - ldr r0, [r0] - bl DestroySprite - ldr r0, [r5] - adds r0, r0, r4 - movs r1, #0 - str r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0811E834: .4byte gUnknown_2039DE8 - thumb_func_end sub_0811E814 - - thumb_func_start sub_0811E838 -sub_0811E838: @ 0x0811E838 - push {r4, lr} - sub sp, #4 - ldr r0, _0811E874 - ldr r0, [r0] - movs r1, #0xb7 - lsls r1, r1, #2 - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #0 - beq _0811E888 - mov r4, sp - adds r4, #1 - mov r0, sp - adds r1, r4, #0 - bl sub_0811C3A0 - bl sub_0811C3B4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811E878 - mov r0, sp - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #0 - ldrsb r1, [r4, r1] - bl sub_0811E890 - b _0811E888 - .align 2, 0 -_0811E874: .4byte gUnknown_2039DE8 -_0811E878: - mov r0, sp - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #0 - ldrsb r1, [r4, r1] - bl sub_0811E904 -_0811E888: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0811E838 - - thumb_func_start sub_0811E890 -sub_0811E890: @ 0x0811E890 - push {r4, r5, r6, r7, lr} - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - lsls r0, r0, #0x18 - asrs r6, r0, #0x18 - movs r0, #1 - rsbs r0, r0, #0 - cmp r6, r0 - beq _0811E8D4 - ldr r5, _0811E8D0 - ldr r0, [r5] - movs r4, #0xb7 - lsls r4, r4, #2 - adds r0, r0, r4 - ldr r0, [r0] - movs r1, #0 - bl StartSpriteAnim - ldr r1, [r5] - adds r1, r1, r4 - ldr r2, [r1] - lsls r0, r6, #3 - subs r0, r0, r6 - lsls r0, r0, #3 - adds r0, #0x28 - strh r0, [r2, #0x20] - ldr r1, [r1] - lsls r0, r7, #0x18 - asrs r0, r0, #0x14 - adds r0, #0x60 - b _0811E8F8 - .align 2, 0 -_0811E8D0: .4byte gUnknown_2039DE8 -_0811E8D4: - ldr r5, _0811E900 - ldr r0, [r5] - movs r4, #0xb7 - lsls r4, r4, #2 - adds r0, r0, r4 - ldr r0, [r0] - movs r1, #1 - bl StartSpriteAnim - ldr r0, [r5] - adds r0, r0, r4 - ldr r2, [r0] - movs r1, #0xd8 - strh r1, [r2, #0x20] - ldr r1, [r0] - lsls r0, r7, #0x18 - asrs r0, r0, #0x14 - adds r0, #0x70 -_0811E8F8: - strh r0, [r1, #0x22] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0811E900: .4byte gUnknown_2039DE8 - thumb_func_end sub_0811E890 - - thumb_func_start sub_0811E904 -sub_0811E904: @ 0x0811E904 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - lsrs r1, r0, #0x18 - mov r8, r1 - asrs r1, r0, #0x18 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0811E99C - lsls r7, r6, #0x18 - cmp r1, #0xa - bne _0811E950 - asrs r0, r7, #0x18 - cmp r0, #1 - bne _0811E950 - ldr r5, _0811E94C - ldr r0, [r5] - movs r4, #0xb7 - lsls r4, r4, #2 - adds r0, r0, r4 - ldr r0, [r0] - movs r1, #2 - bl StartSpriteAnim - ldr r0, [r5] - adds r0, r0, r4 - ldr r2, [r0] - movs r1, #0x7c - strh r1, [r2, #0x20] - ldr r1, [r0] - movs r0, #0x70 - b _0811E9C0 - .align 2, 0 -_0811E94C: .4byte gUnknown_2039DE8 -_0811E950: - ldr r5, _0811E998 - ldr r0, [r5] - movs r4, #0xb7 - lsls r4, r4, #2 - adds r0, r0, r4 - ldr r0, [r0] - movs r1, #3 - bl StartSpriteAnim - ldr r0, [r5] - adds r6, r0, r4 - ldr r5, [r6] - mov r0, r8 - lsls r4, r0, #0x18 - asrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #5 - bl __divsi3 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, r4, r0 - lsls r0, r0, #3 - adds r0, #0x14 - strh r0, [r5, #0x20] - ldr r1, [r6] - asrs r0, r7, #0x14 - adds r0, #0x60 - strh r0, [r1, #0x22] - cmp r4, #0xc - ble _0811E9C2 - ldr r1, [r6] - ldrh r0, [r1, #0x20] - adds r0, #8 - strh r0, [r1, #0x20] - b _0811E9C2 - .align 2, 0 -_0811E998: .4byte gUnknown_2039DE8 -_0811E99C: - ldr r5, _0811E9CC - ldr r0, [r5] - movs r4, #0xb7 - lsls r4, r4, #2 - adds r0, r0, r4 - ldr r0, [r0] - movs r1, #1 - bl StartSpriteAnim - ldr r0, [r5] - adds r0, r0, r4 - ldr r2, [r0] - movs r1, #0xd8 - strh r1, [r2, #0x20] - ldr r1, [r0] - lsls r0, r6, #0x18 - asrs r0, r0, #0x14 - adds r0, #0x70 -_0811E9C0: - strh r0, [r1, #0x22] -_0811E9C2: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0811E9CC: .4byte gUnknown_2039DE8 - thumb_func_end sub_0811E904 - - thumb_func_start sub_0811E9D0 -sub_0811E9D0: @ 0x0811E9D0 - push {lr} - ldr r0, _0811EA14 - movs r1, #0 - movs r2, #0 - movs r3, #4 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0811EA18 - ldr r2, [r1] - movs r1, #0xb8 - lsls r1, r1, #2 - adds r2, r2, r1 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _0811EA1C - adds r1, r1, r0 - str r1, [r2] - ldr r0, _0811EA20 - str r0, [r1, #0x1c] - ldrb r2, [r1, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - movs r2, #8 - orrs r0, r2 - strb r0, [r1, #5] - bl sub_0811EA54 - pop {r0} - bx r0 - .align 2, 0 -_0811EA14: .4byte gUnknown_857443C -_0811EA18: .4byte gUnknown_2039DE8 -_0811EA1C: .4byte gUnknown_20205AC -_0811EA20: .4byte sub_0811EA24 - thumb_func_end sub_0811E9D0 - - thumb_func_start sub_0811EA24 -sub_0811EA24: @ 0x0811EA24 - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0x2e] - adds r0, #1 - strh r0, [r1, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - ble _0811EA4A - movs r0, #0 - strh r0, [r1, #0x2e] - ldrh r0, [r1, #0x24] - adds r0, #1 - strh r0, [r1, #0x24] - lsls r0, r0, #0x10 - cmp r0, #0 - ble _0811EA4A - ldr r0, _0811EA50 - strh r0, [r1, #0x24] -_0811EA4A: - pop {r0} - bx r0 - .align 2, 0 -_0811EA50: .4byte 0x0000FFFA - thumb_func_end sub_0811EA24 - - thumb_func_start sub_0811EA54 -sub_0811EA54: @ 0x0811EA54 - push {r4, lr} - sub sp, #4 - mov r4, sp - adds r4, #1 - mov r0, sp - adds r1, r4, #0 - bl sub_0811C3CC - mov r0, sp - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - adds r0, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - ldrsb r1, [r4, r1] - lsls r1, r1, #0x19 - movs r2, #0xb0 - lsls r2, r2, #0x14 - adds r1, r1, r2 - lsrs r1, r1, #0x18 - bl sub_0811EA90 - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0811EA54 - - thumb_func_start sub_0811EA90 -sub_0811EA90: @ 0x0811EA90 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - ldr r0, _0811EAC8 - ldr r0, [r0] - movs r1, #0xb8 - lsls r1, r1, #2 - adds r3, r0, r1 - ldr r1, [r3] - cmp r1, #0 - beq _0811EAC2 - lsls r0, r2, #3 - adds r0, #4 - movs r2, #0 - strh r0, [r1, #0x20] - ldr r1, [r3] - adds r0, r4, #1 - lsls r0, r0, #3 - strh r0, [r1, #0x22] - ldr r0, [r3] - strh r2, [r0, #0x24] - ldr r0, [r3] - strh r2, [r0, #0x2e] -_0811EAC2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811EAC8: .4byte gUnknown_2039DE8 - thumb_func_end sub_0811EA90 - - thumb_func_start sub_0811EACC -sub_0811EACC: @ 0x0811EACC - push {r4, lr} - ldr r4, _0811EAF4 - ldr r0, [r4] - movs r1, #0xb8 - lsls r1, r1, #2 - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #0 - beq _0811EAEE - bl DestroySprite - ldr r0, [r4] - movs r1, #0xb8 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r1, #0 - str r1, [r0] -_0811EAEE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811EAF4: .4byte gUnknown_2039DE8 - thumb_func_end sub_0811EACC - - thumb_func_start sub_0811EAF8 -sub_0811EAF8: @ 0x0811EAF8 - push {r4, r5, r6, lr} - ldr r0, _0811EB50 - movs r1, #0xd0 - movs r2, #0x80 - movs r3, #6 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _0811EB54 - ldr r2, [r5] - movs r1, #0xb9 - lsls r1, r1, #2 - adds r2, r2, r1 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r4, _0811EB58 - adds r1, r1, r4 - str r1, [r2] - movs r6, #0 - ldr r0, _0811EB5C - strh r0, [r1, #0x24] - ldr r0, _0811EB60 - movs r1, #0xd0 - movs r2, #0x50 - movs r3, #5 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, [r5] - movs r1, #0xba - lsls r1, r1, #2 - adds r3, r2, r1 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - str r1, [r3] - strb r6, [r2, #9] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0811EB50: .4byte gUnknown_8574514 -_0811EB54: .4byte gUnknown_2039DE8 -_0811EB58: .4byte gUnknown_20205AC -_0811EB5C: .4byte 0x0000FFC0 -_0811EB60: .4byte gUnknown_85744F4 - thumb_func_end sub_0811EAF8 - - thumb_func_start sub_0811EB64 -sub_0811EB64: @ 0x0811EB64 - push {r4, lr} - ldr r4, _0811EB78 - ldr r2, [r4] - ldrb r3, [r2, #9] - cmp r3, #0 - beq _0811EB7C - cmp r3, #1 - beq _0811EBD4 - movs r0, #0 - b _0811EBF2 - .align 2, 0 -_0811EB78: .4byte gUnknown_2039DE8 -_0811EB7C: - movs r0, #0xb9 - lsls r0, r0, #2 - adds r2, r2, r0 - ldr r1, [r2] - ldrh r0, [r1, #0x24] - adds r0, #8 - strh r0, [r1, #0x24] - ldr r2, [r2] - movs r1, #0x24 - ldrsh r0, [r2, r1] - cmp r0, #0 - blt _0811EBF0 - strh r3, [r2, #0x24] - bl sub_0811C3B4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811EBB2 - ldr r0, [r4] - movs r1, #0xba - lsls r1, r1, #2 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #1 - bl StartSpriteAnim - b _0811EBC2 -_0811EBB2: - ldr r0, [r4] - movs r1, #0xba - lsls r1, r1, #2 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #2 - bl StartSpriteAnim -_0811EBC2: - ldr r0, _0811EBD0 - ldr r1, [r0] - ldrb r0, [r1, #9] - adds r0, #1 - strb r0, [r1, #9] - b _0811EBF0 - .align 2, 0 -_0811EBD0: .4byte gUnknown_2039DE8 -_0811EBD4: - movs r1, #0xba - lsls r1, r1, #2 - adds r0, r2, r1 - ldr r0, [r0] - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0811EBF0 - movs r0, #2 - strb r0, [r2, #9] - movs r0, #0 - b _0811EBF2 -_0811EBF0: - movs r0, #1 -_0811EBF2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0811EB64 - - thumb_func_start sub_0811EBF8 -sub_0811EBF8: @ 0x0811EBF8 - push {lr} - ldr r2, _0811EC18 - ldr r1, [r2] - movs r0, #0 - strb r0, [r1, #9] - ldr r0, [r2] - movs r1, #0xba - lsls r1, r1, #2 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #3 - bl StartSpriteAnim - pop {r0} - bx r0 - .align 2, 0 -_0811EC18: .4byte gUnknown_2039DE8 - thumb_func_end sub_0811EBF8 - - thumb_func_start sub_0811EC1C -sub_0811EC1C: @ 0x0811EC1C - push {r4, r5, r6, lr} - ldr r5, _0811EC30 - ldr r3, [r5] - ldrb r0, [r3, #9] - cmp r0, #0 - beq _0811EC34 - cmp r0, #1 - beq _0811EC4E - movs r0, #0 - b _0811ECA0 - .align 2, 0 -_0811EC30: .4byte gUnknown_2039DE8 -_0811EC34: - movs r1, #0xba - lsls r1, r1, #2 - adds r0, r3, r1 - ldr r0, [r0] - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0811EC9E - movs r0, #1 - strb r0, [r3, #9] - b _0811EC9E -_0811EC4E: - movs r0, #0xb9 - lsls r0, r0, #2 - adds r2, r3, r0 - ldr r1, [r2] - ldrh r0, [r1, #0x24] - subs r0, #8 - movs r6, #0 - strh r0, [r1, #0x24] - ldr r0, [r2] - movs r2, #0x24 - ldrsh r1, [r0, r2] - movs r0, #0x40 - rsbs r0, r0, #0 - cmp r1, r0 - bgt _0811EC9E - movs r4, #0xba - lsls r4, r4, #2 - adds r0, r3, r4 - ldr r0, [r0] - bl DestroySprite - ldr r0, [r5] - movs r1, #0xb9 - lsls r1, r1, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl DestroySprite - ldr r1, [r5] - adds r4, r1, r4 - str r6, [r4] - movs r2, #0xb9 - lsls r2, r2, #2 - adds r0, r1, r2 - str r6, [r0] - ldrb r0, [r1, #9] - adds r0, #1 - strb r0, [r1, #9] - movs r0, #0 - b _0811ECA0 -_0811EC9E: - movs r0, #1 -_0811ECA0: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811EC1C - - thumb_func_start sub_0811ECA8 -sub_0811ECA8: @ 0x0811ECA8 - push {lr} - ldr r0, _0811ECC0 - ldr r0, [r0] - movs r1, #0xba - lsls r1, r1, #2 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #4 - bl StartSpriteAnim - pop {r0} - bx r0 - .align 2, 0 -_0811ECC0: .4byte gUnknown_2039DE8 - thumb_func_end sub_0811ECA8 - - thumb_func_start sub_0811ECC4 -sub_0811ECC4: @ 0x0811ECC4 - push {lr} - bl sub_0811C3B4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811ECE8 - ldr r0, _0811ECE4 - ldr r0, [r0] - movs r1, #0xba - lsls r1, r1, #2 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #1 - bl StartSpriteAnim - b _0811ECFA - .align 2, 0 -_0811ECE4: .4byte gUnknown_2039DE8 -_0811ECE8: - ldr r0, _0811ED00 - ldr r0, [r0] - movs r1, #0xba - lsls r1, r1, #2 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #2 - bl StartSpriteAnim -_0811ECFA: - pop {r0} - bx r0 - .align 2, 0 -_0811ED00: .4byte gUnknown_2039DE8 - thumb_func_end sub_0811ECC4 - - thumb_func_start sub_0811ED04 -sub_0811ED04: @ 0x0811ED04 - ldr r0, _0811ED1C - ldr r0, [r0] - movs r1, #0xba - lsls r1, r1, #2 - adds r0, r0, r1 - ldr r0, [r0] - adds r0, #0x3f - ldrb r1, [r0] - lsrs r1, r1, #4 - movs r0, #1 - bics r0, r1 - bx lr - .align 2, 0 -_0811ED1C: .4byte gUnknown_2039DE8 - thumb_func_end sub_0811ED04 - - thumb_func_start sub_0811ED20 -sub_0811ED20: @ 0x0811ED20 - push {r4, lr} - ldr r4, _0811ED8C - adds r0, r4, #0 - movs r1, #0x60 - movs r2, #0x50 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x40 - beq _0811ED4E - ldr r0, _0811ED90 - ldr r2, [r0] - movs r0, #0xbb - lsls r0, r0, #2 - adds r2, r2, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0811ED94 - adds r0, r0, r1 - str r0, [r2] -_0811ED4E: - adds r0, r4, #0 - movs r1, #0x60 - movs r2, #0x9c - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x40 - beq _0811ED82 - ldr r0, _0811ED90 - ldr r2, [r0] - movs r0, #0xbc - lsls r0, r0, #2 - adds r2, r2, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0811ED94 - adds r0, r0, r1 - str r0, [r2] - adds r0, #0x3f - ldrb r1, [r0] - movs r2, #2 - orrs r1, r2 - strb r1, [r0] -_0811ED82: - bl sub_0811EDFC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811ED8C: .4byte gUnknown_857456C -_0811ED90: .4byte gUnknown_2039DE8 -_0811ED94: .4byte gUnknown_20205AC - thumb_func_end sub_0811ED20 - - thumb_func_start sub_0811ED98 -sub_0811ED98: @ 0x0811ED98 - push {r4, r5, r6, lr} - bl sub_0811C3FC - ldr r6, _0811EDF8 - ldr r1, [r6] - movs r2, #0xbb - lsls r2, r2, #2 - adds r1, r1, r2 - ldr r1, [r1] - movs r2, #0 - cmp r0, #0 - bne _0811EDB2 - movs r2, #1 -_0811EDB2: - adds r3, r1, #0 - adds r3, #0x3e - movs r4, #1 - lsls r2, r2, #2 - ldrb r1, [r3] - movs r5, #5 - rsbs r5, r5, #0 - adds r0, r5, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3] - bl sub_0811C430 - ldr r1, [r6] - movs r2, #0xbc - lsls r2, r2, #2 - adds r1, r1, r2 - ldr r1, [r1] - movs r2, #0 - cmp r0, #0 - bne _0811EDDE - movs r2, #1 -_0811EDDE: - adds r3, r1, #0 - adds r3, #0x3e - adds r1, r4, #0 - ands r1, r2 - lsls r1, r1, #2 - ldrb r2, [r3] - adds r0, r5, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0811EDF8: .4byte gUnknown_2039DE8 - thumb_func_end sub_0811ED98 - - thumb_func_start sub_0811EDFC -sub_0811EDFC: @ 0x0811EDFC - ldr r3, _0811EE28 - ldr r0, [r3] - movs r1, #0xbb - lsls r1, r1, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - ldr r0, [r3] - movs r1, #0xbc - lsls r1, r1, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r1, #0x3e - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] - bx lr - .align 2, 0 -_0811EE28: .4byte gUnknown_2039DE8 - thumb_func_end sub_0811EDFC - - thumb_func_start sub_0811EE2C -sub_0811EE2C: @ 0x0811EE2C - push {lr} - cmp r0, #0 - bne _0811EE48 - ldr r0, _0811EE44 - ldr r2, [r0] - movs r1, #0xbb - lsls r1, r1, #2 - adds r0, r2, r1 - ldr r0, [r0] - movs r1, #0x60 - b _0811EE56 - .align 2, 0 -_0811EE44: .4byte gUnknown_2039DE8 -_0811EE48: - ldr r0, _0811EE68 - ldr r2, [r0] - movs r1, #0xbb - lsls r1, r1, #2 - adds r0, r2, r1 - ldr r0, [r0] - movs r1, #0x78 -_0811EE56: - strh r1, [r0, #0x20] - movs r3, #0xbc - lsls r3, r3, #2 - adds r0, r2, r3 - ldr r0, [r0] - strh r1, [r0, #0x20] - pop {r0} - bx r0 - .align 2, 0 -_0811EE68: .4byte gUnknown_2039DE8 - thumb_func_end sub_0811EE2C - - thumb_func_start sub_0811EE6C -sub_0811EE6C: @ 0x0811EE6C - push {r4, lr} - ldr r4, _0811EED4 - adds r0, r4, #0 - movs r1, #0xdc - movs r2, #0x54 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x40 - beq _0811EE9A - ldr r0, _0811EED8 - ldr r2, [r0] - movs r0, #0xbd - lsls r0, r0, #2 - adds r2, r2, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0811EEDC - adds r0, r0, r1 - str r0, [r2] -_0811EE9A: - adds r0, r4, #0 - movs r1, #0xdc - movs r2, #0x9c - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x40 - beq _0811EECA - ldr r0, _0811EED8 - ldr r2, [r0] - movs r0, #0xbe - lsls r0, r0, #2 - adds r2, r2, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0811EEDC - adds r0, r0, r1 - str r0, [r2] - movs r1, #1 - bl StartSpriteAnim -_0811EECA: - bl sub_0811EF44 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811EED4: .4byte gUnknown_8574554 -_0811EED8: .4byte gUnknown_2039DE8 -_0811EEDC: .4byte gUnknown_20205AC - thumb_func_end sub_0811EE6C - - thumb_func_start sub_0811EEE0 -sub_0811EEE0: @ 0x0811EEE0 - push {r4, r5, r6, lr} - bl sub_0811C3FC - ldr r6, _0811EF40 - ldr r1, [r6] - movs r2, #0xbd - lsls r2, r2, #2 - adds r1, r1, r2 - ldr r1, [r1] - movs r2, #0 - cmp r0, #0 - bne _0811EEFA - movs r2, #1 -_0811EEFA: - adds r3, r1, #0 - adds r3, #0x3e - movs r4, #1 - lsls r2, r2, #2 - ldrb r1, [r3] - movs r5, #5 - rsbs r5, r5, #0 - adds r0, r5, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3] - bl sub_0811C430 - ldr r1, [r6] - movs r2, #0xbe - lsls r2, r2, #2 - adds r1, r1, r2 - ldr r1, [r1] - movs r2, #0 - cmp r0, #0 - bne _0811EF26 - movs r2, #1 -_0811EF26: - adds r3, r1, #0 - adds r3, #0x3e - adds r1, r4, #0 - ands r1, r2 - lsls r1, r1, #2 - ldrb r2, [r3] - adds r0, r5, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0811EF40: .4byte gUnknown_2039DE8 - thumb_func_end sub_0811EEE0 - - thumb_func_start sub_0811EF44 -sub_0811EF44: @ 0x0811EF44 - ldr r3, _0811EF70 - ldr r0, [r3] - movs r1, #0xbd - lsls r1, r1, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - ldr r0, [r3] - movs r1, #0xbe - lsls r1, r1, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r1, #0x3e - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] - bx lr - .align 2, 0 -_0811EF70: .4byte gUnknown_2039DE8 - thumb_func_end sub_0811EF44 - - thumb_func_start GetCoolColorFromPersonality -GetCoolColorFromPersonality: @ 0x0811EF74 - push {r4, r5, r6, r7, lr} - sub sp, #4 - bl GetDisplayedPersonType - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0811EF98 - cmp r0, #1 - bgt _0811EF8E - cmp r0, #0 - beq _0811EF94 - b _0811F02E -_0811EF8E: - cmp r0, #2 - beq _0811EF9C - b _0811F02E -_0811EF94: - movs r4, #0x43 - b _0811EF9E -_0811EF98: - movs r4, #0x44 - b _0811EF9E -_0811EF9C: - movs r4, #7 -_0811EF9E: - bl GetEasyChatScreenFrameId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - beq _0811EFB0 - cmp r0, #5 - beq _0811EFB6 - b _0811F02E -_0811EFB0: - movs r5, #0x4c - movs r3, #0x28 - b _0811EFBA -_0811EFB6: - movs r5, #0x30 - movs r3, #0x30 -_0811EFBA: - adds r0, r4, #0 - ldr r7, _0811F038 - adds r2, r5, #0 - adds r4, r3, #0 - movs r6, #0 - str r6, [sp] - adds r1, r7, #0 - bl AddPseudoEventObject - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x40 - beq _0811EFEE - ldr r1, _0811F03C - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r2, [r0, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0, #5] - movs r1, #2 - bl StartSpriteAnim -_0811EFEE: - ldr r0, _0811F040 - ldr r0, [r0] - ldrb r0, [r0, #8] - movs r1, #0x69 - cmp r0, #0 - bne _0811EFFC - movs r1, #0x64 -_0811EFFC: - adds r2, r5, #0 - subs r2, #0x18 - str r6, [sp] - adds r0, r1, #0 - adds r1, r7, #0 - adds r3, r4, #0 - bl AddPseudoEventObject - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x40 - beq _0811F02E - ldr r1, _0811F03C - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r2, [r0, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0, #5] - movs r1, #3 - bl StartSpriteAnim -_0811F02E: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0811F038: .4byte sub_08007140 -_0811F03C: .4byte gUnknown_20205AC -_0811F040: .4byte gUnknown_3005AF0 - thumb_func_end GetCoolColorFromPersonality - - thumb_func_start sub_0811F044 -sub_0811F044: @ 0x0811F044 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - cmp r0, #0x14 - beq _0811F06A - cmp r0, #0x14 - bgt _0811F064 - cmp r0, #0x11 - blt _0811F082 - ldr r0, _0811F060 - bl FlagGet - b _0811F07C - .align 2, 0 -_0811F060: .4byte 0x00000864 -_0811F064: - cmp r1, #0x15 - beq _0811F078 - b _0811F082 -_0811F06A: - ldr r0, _0811F074 - bl FlagGet - b _0811F07C - .align 2, 0 -_0811F074: .4byte 0x00000866 -_0811F078: - bl sub_0811F5D8 -_0811F07C: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0811F084 -_0811F082: - movs r0, #1 -_0811F084: - pop {r1} - bx r1 - thumb_func_end sub_0811F044 - - thumb_func_start EasyChat_GetNumWordsInGroup -EasyChat_GetNumWordsInGroup: @ 0x0811F088 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r4, r0, #0 - cmp r0, #0 - bne _0811F0A0 - movs r0, #0 - bl GetNationalPokedexCount - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b _0811F0B6 -_0811F0A0: - bl sub_0811F044 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811F0AE - movs r0, #0 - b _0811F0B6 -_0811F0AE: - ldr r0, _0811F0BC - lsls r1, r4, #3 - adds r1, r1, r0 - ldrh r0, [r1, #6] -_0811F0B6: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0811F0BC: .4byte gUnknown_8578D14 - thumb_func_end EasyChat_GetNumWordsInGroup - - thumb_func_start sub_0811F0C0 -sub_0811F0C0: @ 0x0811F0C0 - push {r4, r5, lr} - lsls r2, r0, #0x10 - lsrs r1, r2, #0x10 - ldr r0, _0811F0EC - cmp r1, r0 - beq _0811F120 - lsrs r3, r2, #0x19 - ldr r5, _0811F0F0 - ands r5, r1 - cmp r3, #0x15 - bhi _0811F124 - ldr r0, _0811F0F4 - lsls r2, r3, #3 - adds r1, r2, r0 - ldrh r4, [r1, #4] - cmp r3, #0x13 - bgt _0811F0F8 - cmp r3, #0x12 - bge _0811F0FC - cmp r3, #0 - beq _0811F0FC - b _0811F11C - .align 2, 0 -_0811F0EC: .4byte 0x0000FFFF -_0811F0F0: .4byte 0x000001FF -_0811F0F4: .4byte gUnknown_8578D14 -_0811F0F8: - cmp r3, #0x15 - bne _0811F11C -_0811F0FC: - adds r0, r2, r0 - ldr r2, [r0] - movs r1, #0 - cmp r1, r4 - bhs _0811F124 -_0811F106: - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r5, r0 - beq _0811F120 - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, r4 - blo _0811F106 - b _0811F124 -_0811F11C: - cmp r5, r4 - bhs _0811F124 -_0811F120: - movs r0, #0 - b _0811F126 -_0811F124: - movs r0, #1 -_0811F126: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_0811F0C0 - - thumb_func_start GetEasyChatWord -GetEasyChatWord: @ 0x0811F12C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r2, r1, #0x10 - cmp r0, #0x13 - bgt _0811F144 - cmp r0, #0x12 - bge _0811F158 - cmp r0, #0 - beq _0811F148 - b _0811F164 -_0811F144: - cmp r0, #0x15 - bne _0811F164 -_0811F148: - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #1 - ldr r1, _0811F154 - adds r0, r0, r1 - b _0811F176 - .align 2, 0 -_0811F154: .4byte gUnknown_82EA31C -_0811F158: - lsls r0, r2, #3 - ldr r1, _0811F160 - adds r0, r0, r1 - b _0811F176 - .align 2, 0 -_0811F160: .4byte gUnknown_82EACC4 -_0811F164: - ldr r1, _0811F17C - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, [r0] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] -_0811F176: - pop {r1} - bx r1 - .align 2, 0 -_0811F17C: .4byte gUnknown_8578D14 - thumb_func_end GetEasyChatWord - - thumb_func_start CopyEasyChatWord -CopyEasyChatWord: @ 0x0811F180 - push {r4, r5, r6, lr} - adds r5, r0, #0 - lsls r6, r1, #0x10 - lsrs r0, r6, #0x10 - adds r4, r0, #0 - bl sub_0811F0C0 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0811F19C - ldr r1, _0811F198 - b _0811F1AE - .align 2, 0 -_0811F198: .4byte gUnknown_8579F30 -_0811F19C: - ldr r0, _0811F1B8 - cmp r4, r0 - beq _0811F1C0 - ldr r1, _0811F1BC - ands r1, r4 - lsrs r0, r6, #0x19 - bl GetEasyChatWord - adds r1, r0, #0 -_0811F1AE: - adds r0, r5, #0 - bl StringCopy - b _0811F1C6 - .align 2, 0 -_0811F1B8: .4byte 0x0000FFFF -_0811F1BC: .4byte 0x000001FF -_0811F1C0: - movs r0, #0xff - strb r0, [r5] - adds r0, r5, #0 -_0811F1C6: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end CopyEasyChatWord - - thumb_func_start ConvertEasyChatWordsToString -ConvertEasyChatWordsToString: @ 0x0811F1CC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - lsls r2, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - mov sb, r3 - ldr r0, _0811F254 - adds r2, r2, r0 - lsrs r7, r2, #0x10 - movs r0, #0 - cmp r0, sb - bhs _0811F23C -_0811F1EE: - movs r6, #0 - adds r0, #1 - mov r8, r0 - cmp r6, r7 - bhs _0811F220 - ldr r2, _0811F258 -_0811F1FA: - ldrh r1, [r5] - adds r0, r4, #0 - str r2, [sp] - bl CopyEasyChatWord - adds r4, r0, #0 - ldrh r0, [r5] - ldr r2, [sp] - cmp r0, r2 - beq _0811F214 - movs r0, #0 - strb r0, [r4] - adds r4, #1 -_0811F214: - adds r5, #2 - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, r7 - blo _0811F1FA -_0811F220: - ldrh r1, [r5] - adds r5, #2 - adds r0, r4, #0 - bl CopyEasyChatWord - adds r4, r0, #0 - movs r0, #0xfe - strb r0, [r4] - adds r4, #1 - mov r1, r8 - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - cmp r0, sb - blo _0811F1EE -_0811F23C: - subs r4, #1 - movs r0, #0xff - strb r0, [r4] - adds r0, r4, #0 - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0811F254: .4byte 0xFFFF0000 -_0811F258: .4byte 0x0000FFFF - thumb_func_end ConvertEasyChatWordsToString - - thumb_func_start GetEasyChatWordStringLength -GetEasyChatWordStringLength: @ 0x0811F25C - push {r4, r5, lr} - lsls r5, r0, #0x10 - lsrs r0, r5, #0x10 - adds r4, r0, #0 - ldr r0, _0811F270 - cmp r4, r0 - bne _0811F274 - movs r0, #0 - b _0811F29A - .align 2, 0 -_0811F270: .4byte 0x0000FFFF -_0811F274: - adds r0, r4, #0 - bl sub_0811F0C0 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811F290 - ldr r1, _0811F28C - ands r1, r4 - lsrs r0, r5, #0x19 - bl GetEasyChatWord - b _0811F292 - .align 2, 0 -_0811F28C: .4byte 0x000001FF -_0811F290: - ldr r0, _0811F2A0 -_0811F292: - bl StringLength - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 -_0811F29A: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0811F2A0: .4byte gUnknown_8579F30 - thumb_func_end GetEasyChatWordStringLength - - thumb_func_start sub_0811F2A4 -sub_0811F2A4: @ 0x0811F2A4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r6, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r8, r2 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - mov sl, r3 - movs r7, #0 - cmp r7, r8 - bhs _0811F306 - subs r0, r1, #1 - lsls r0, r0, #0x10 - mov sb, r0 -_0811F2CE: - mov r0, sb - lsrs r4, r0, #0x10 - movs r5, #0 - cmp r5, r1 - bhs _0811F2F4 -_0811F2D8: - ldrh r0, [r6] - adds r6, #2 - str r1, [sp] - bl GetEasyChatWordStringLength - adds r0, r4, r0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, [sp] - cmp r5, r1 - blo _0811F2D8 -_0811F2F4: - cmp r4, sl - bls _0811F2FC - movs r0, #1 - b _0811F308 -_0811F2FC: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, r8 - blo _0811F2CE -_0811F306: - movs r0, #0 -_0811F308: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_0811F2A4 - - thumb_func_start sub_0811F318 -sub_0811F318: @ 0x0811F318 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - bl Random - ldr r2, _0811F368 - lsls r1, r4, #3 - adds r1, r1, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrh r1, [r1, #4] - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r4, #0 - beq _0811F346 - cmp r4, #0x15 - beq _0811F346 - cmp r4, #0x12 - beq _0811F346 - cmp r4, #0x13 - bne _0811F354 -_0811F346: - ldr r1, _0811F368 - lsls r0, r4, #3 - adds r0, r0, r1 - ldr r1, [r0] - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r2, [r0] -_0811F354: - movs r0, #0x7f - ands r0, r4 - lsls r0, r0, #9 - ldr r1, _0811F36C - ands r2, r1 - orrs r0, r2 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0811F368: .4byte gUnknown_8578D14 -_0811F36C: .4byte 0x000001FF - thumb_func_end sub_0811F318 - - thumb_func_start sub_0811F370 -sub_0811F370: @ 0x0811F370 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r4, r0, #0 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl sub_0811F044 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811F390 - ldr r0, _0811F38C - b _0811F3A4 - .align 2, 0 -_0811F38C: .4byte 0x0000FFFF -_0811F390: - cmp r4, #0 - beq _0811F39C - adds r0, r4, #0 - bl sub_0811F318 - b _0811F3A0 -_0811F39C: - bl sub_0811F5E8 -_0811F3A0: - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 -_0811F3A4: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811F370 - - thumb_func_start sub_0811F3AC -sub_0811F3AC: @ 0x0811F3AC - push {r4, r5, lr} - ldr r0, _0811F3C0 - ldrh r0, [r0] - cmp r0, #1 - beq _0811F3E4 - cmp r0, #1 - bgt _0811F3C4 - cmp r0, #0 - beq _0811F3CE - b _0811F438 - .align 2, 0 -_0811F3C0: .4byte gUnknown_2037280 -_0811F3C4: - cmp r0, #2 - beq _0811F40C - cmp r0, #3 - beq _0811F41C - b _0811F438 -_0811F3CE: - ldr r0, _0811F3DC - ldr r0, [r0] - ldr r1, _0811F3E0 - adds r5, r0, r1 - movs r2, #2 - b _0811F426 - .align 2, 0 -_0811F3DC: .4byte gUnknown_3005AEC -_0811F3E0: .4byte 0x00002BB0 -_0811F3E4: - ldr r0, _0811F404 - ldr r0, [r0] - ldr r1, _0811F408 - adds r5, r0, r1 - adds r0, r5, #0 - movs r1, #3 - movs r2, #2 - movs r3, #0x12 - bl sub_0811F2A4 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0811F424 - movs r2, #2 - movs r3, #3 - b _0811F428 - .align 2, 0 -_0811F404: .4byte gUnknown_3005AEC -_0811F408: .4byte 0x00002BBC -_0811F40C: - ldr r0, _0811F414 - ldr r0, [r0] - ldr r1, _0811F418 - b _0811F422 - .align 2, 0 -_0811F414: .4byte gUnknown_3005AEC -_0811F418: .4byte 0x00002BC8 -_0811F41C: - ldr r0, _0811F440 - ldr r0, [r0] - ldr r1, _0811F444 -_0811F422: - adds r5, r0, r1 -_0811F424: - movs r2, #3 -_0811F426: - movs r3, #2 -_0811F428: - ldr r4, _0811F448 - adds r0, r4, #0 - adds r1, r5, #0 - bl ConvertEasyChatWordsToString - adds r0, r4, #0 - bl ShowFieldAutoScrollMessage -_0811F438: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0811F440: .4byte gUnknown_3005AEC -_0811F444: .4byte 0x00002BD4 -_0811F448: .4byte gUnknown_2021C7C - thumb_func_end sub_0811F3AC - - thumb_func_start sub_0811F44C -sub_0811F44C: @ 0x0811F44C - push {lr} - bl Random - movs r1, #1 - ands r1, r0 - movs r0, #0xc - cmp r1, #0 - beq _0811F45E - movs r0, #0xd -_0811F45E: - bl sub_0811F370 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, _0811F474 - bl CopyEasyChatWord - pop {r0} - bx r0 - .align 2, 0 -_0811F474: .4byte gUnknown_2021C54 - thumb_func_end sub_0811F44C - - thumb_func_start sub_0811F478 -sub_0811F478: @ 0x0811F478 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x1b - movs r1, #0xe0 - lsls r1, r1, #0x13 - ands r1, r0 - lsrs r1, r1, #0x18 - ldr r0, _0811F498 - ldr r0, [r0] - ldr r3, _0811F49C - adds r0, r0, r3 - adds r0, r0, r2 - ldrb r0, [r0] - asrs r0, r1 - movs r1, #1 - ands r0, r1 - bx lr - .align 2, 0 -_0811F498: .4byte gUnknown_3005AEC -_0811F49C: .4byte 0x00002E20 - thumb_func_end sub_0811F478 - - thumb_func_start sub_0811F4A0 -sub_0811F4A0: @ 0x0811F4A0 - push {lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x20 - bhi _0811F4C4 - lsrs r3, r0, #0x1b - movs r2, #7 - ands r2, r1 - ldr r0, _0811F4C8 - ldr r1, [r0] - ldr r0, _0811F4CC - adds r1, r1, r0 - adds r1, r1, r3 - movs r0, #1 - lsls r0, r2 - ldrb r2, [r1] - orrs r0, r2 - strb r0, [r1] -_0811F4C4: - pop {r0} - bx r0 - .align 2, 0 -_0811F4C8: .4byte gUnknown_3005AEC -_0811F4CC: .4byte 0x00002E20 - thumb_func_end sub_0811F4A0 - - thumb_func_start sub_0811F4D0 -sub_0811F4D0: @ 0x0811F4D0 - push {r4, r5, lr} - movs r4, #0 - movs r5, #0 -_0811F4D6: - adds r0, r4, #0 - bl sub_0811F478 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0811F4E8 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_0811F4E8: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x20 - bls _0811F4D6 - adds r0, r5, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811F4D0 - - thumb_func_start sub_0811F4FC -sub_0811F4FC: @ 0x0811F4FC - push {r4, r5, r6, lr} - bl sub_0811F4D0 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x21 - bne _0811F528 - b _0811F562 -_0811F50C: - adds r0, r5, #0 - bl sub_0811F4A0 - ldr r0, _0811F524 - ands r4, r0 - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r1, #0 - orrs r4, r0 - adds r0, r4, #0 - b _0811F564 - .align 2, 0 -_0811F524: .4byte 0x000001FF -_0811F528: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x21 - subs r1, r1, r4 - bl __modsi3 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - movs r4, #0 -_0811F53E: - lsls r0, r4, #0x18 - lsrs r5, r0, #0x18 - adds r0, r5, #0 - bl sub_0811F478 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811F558 - cmp r6, #0 - beq _0811F50C - subs r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_0811F558: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x20 - bls _0811F53E -_0811F562: - ldr r0, _0811F56C -_0811F564: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0811F56C: .4byte 0x0000FFFF - thumb_func_end sub_0811F4FC - - thumb_func_start sub_0811F570 -sub_0811F570: @ 0x0811F570 - push {r4, r5, lr} - bl sub_0811F4D0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _0811F594 - b _0811F5CA -_0811F580: - ldr r0, _0811F590 - ands r4, r0 - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r1, #0 - orrs r4, r0 - adds r0, r4, #0 - b _0811F5CC - .align 2, 0 -_0811F590: .4byte 0x000001FF -_0811F594: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r5, #0 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - movs r4, #0 -_0811F5A8: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl sub_0811F478 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0811F5C0 - cmp r5, #0 - beq _0811F580 - subs r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_0811F5C0: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x20 - bls _0811F5A8 -_0811F5CA: - ldr r0, _0811F5D4 -_0811F5CC: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0811F5D4: .4byte 0x0000FFFF - thumb_func_end sub_0811F570 - - thumb_func_start sub_0811F5D8 -sub_0811F5D8: @ 0x0811F5D8 - push {lr} - bl IsNationalPokedexEnabled - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811F5D8 - - thumb_func_start sub_0811F5E8 -sub_0811F5E8: @ 0x0811F5E8 - push {r4, r5, r6, r7, lr} - movs r0, #0 - bl EasyChat_GetNumWordsInGroup - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0 - bne _0811F608 - b _0811F652 -_0811F5FA: - ldrh r1, [r5] - ldr r0, _0811F604 - ands r0, r1 - b _0811F654 - .align 2, 0 -_0811F604: .4byte 0x000001FF -_0811F608: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r4, #0 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, _0811F65C - ldr r5, [r0] - ldrh r7, [r0, #4] - movs r6, #0 - cmp r6, r7 - bhs _0811F652 -_0811F626: - ldrh r0, [r5] - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0 - bl GetSetPokedexFlag - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0811F646 - cmp r4, #0 - beq _0811F5FA - subs r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_0811F646: - adds r5, #2 - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, r7 - blo _0811F626 -_0811F652: - ldr r0, _0811F660 -_0811F654: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0811F65C: .4byte gUnknown_8578D14 -_0811F660: .4byte 0x0000FFFF - thumb_func_end sub_0811F5E8 - - thumb_func_start sub_0811F664 -sub_0811F664: @ 0x0811F664 - push {r4, r5, r6, r7, lr} - ldr r4, _0811F770 - ldr r1, [r4] - ldr r0, _0811F774 - adds r2, r1, r0 - ldr r0, _0811F778 - strh r0, [r2] - ldr r5, _0811F77C - adds r2, r1, r5 - ldr r0, _0811F780 - strh r0, [r2] - ldr r0, _0811F784 - adds r2, r1, r0 - ldr r0, _0811F788 - strh r0, [r2] - adds r5, #4 - adds r2, r1, r5 - ldr r0, _0811F78C - strh r0, [r2] - ldr r0, _0811F790 - adds r2, r1, r0 - ldr r0, _0811F794 - strh r0, [r2] - adds r5, #8 - adds r2, r1, r5 - ldr r0, _0811F798 - strh r0, [r2] - movs r0, #0xaf - lsls r0, r0, #6 - adds r2, r1, r0 - ldr r0, _0811F79C - strh r0, [r2] - adds r5, #4 - adds r2, r1, r5 - ldr r0, _0811F7A0 - strh r0, [r2] - ldr r0, _0811F7A4 - adds r2, r1, r0 - ldr r0, _0811F7A8 - strh r0, [r2] - ldr r2, _0811F7AC - adds r0, r1, r2 - ldr r3, _0811F7B0 - strh r3, [r0] - adds r5, #6 - adds r2, r1, r5 - ldr r0, _0811F7B4 - strh r0, [r2] - ldr r2, _0811F7B8 - adds r0, r1, r2 - strh r3, [r0] - adds r5, #4 - adds r2, r1, r5 - ldr r0, _0811F7BC - strh r0, [r2] - ldr r2, _0811F7C0 - adds r0, r1, r2 - ldr r2, _0811F7C4 - strh r2, [r0] - adds r5, #4 - adds r0, r1, r5 - strh r2, [r0] - ldr r2, _0811F7C8 - adds r0, r1, r2 - strh r3, [r0] - adds r5, #4 - adds r2, r1, r5 - ldr r0, _0811F7CC - strh r0, [r2] - ldr r2, _0811F7D0 - adds r0, r1, r2 - adds r3, #5 - strh r3, [r0] - adds r5, #4 - adds r2, r1, r5 - movs r0, #1 - rsbs r0, r0, #0 - strh r0, [r2] - ldr r0, _0811F7D4 - adds r2, r1, r0 - movs r0, #0xc6 - lsls r0, r0, #3 - strh r0, [r2] - adds r5, #4 - adds r2, r1, r5 - ldr r0, _0811F7D8 - strh r0, [r2] - ldr r0, _0811F7DC - adds r1, r1, r0 - strh r3, [r1] - movs r3, #0 - adds r7, r4, #0 - ldr r6, _0811F7E0 - movs r2, #1 - rsbs r2, r2, #0 - adds r5, r2, #0 -_0811F724: - movs r2, #0 - lsls r0, r3, #3 - adds r0, r0, r3 - lsls r4, r0, #2 -_0811F72C: - ldr r1, [r7] - lsls r0, r2, #1 - adds r0, r0, r4 - adds r1, r1, r6 - adds r1, r1, r0 - ldrh r0, [r1] - orrs r0, r5 - strh r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #8 - bls _0811F72C - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #0xf - bls _0811F724 - movs r3, #0 - ldr r4, _0811F770 - ldr r2, _0811F7E4 - movs r1, #0 -_0811F758: - ldr r0, [r4] - adds r0, r0, r2 - adds r0, r0, r3 - strb r1, [r0] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #0x3f - bls _0811F758 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0811F770: .4byte gUnknown_3005AEC -_0811F774: .4byte 0x00002BB0 -_0811F778: .4byte 0x0000020E -_0811F77C: .4byte 0x00002BB2 -_0811F780: .4byte 0x00001228 -_0811F784: .4byte 0x00002BB4 -_0811F788: .4byte 0x0000020B -_0811F78C: .4byte 0x0000101F -_0811F790: .4byte 0x00002BBC -_0811F794: .4byte 0x00000603 -_0811F798: .4byte 0x00001405 -_0811F79C: .4byte 0x00000C02 -_0811F7A0: .4byte 0x00000E0E -_0811F7A4: .4byte 0x00002BC4 -_0811F7A8: .4byte 0x00000803 -_0811F7AC: .4byte 0x00002BC6 -_0811F7B0: .4byte 0x00000C01 -_0811F7B4: .4byte 0x0000123C -_0811F7B8: .4byte 0x00002BCA -_0811F7BC: .4byte 0x0000FFFF -_0811F7C0: .4byte 0x00002BCE -_0811F7C4: .4byte 0x00000607 -_0811F7C8: .4byte 0x00002BD2 -_0811F7CC: .4byte 0x0000121B -_0811F7D0: .4byte 0x00002BD6 -_0811F7D4: .4byte 0x00002BDA -_0811F7D8: .4byte 0x0000121F -_0811F7DC: .4byte 0x00002BDE -_0811F7E0: .4byte 0x00002BE0 -_0811F7E4: .4byte 0x00002E20 - thumb_func_end sub_0811F664 - - thumb_func_start sub_0811F7E8 -sub_0811F7E8: @ 0x0811F7E8 - push {r4, lr} - ldr r4, _0811F804 - ldr r0, _0811F808 - bl sub_08000BC8 - str r0, [r4] - cmp r0, #0 - beq _0811F80C - bl sub_0811F830 - bl sub_0811F9C8 - movs r0, #1 - b _0811F80E - .align 2, 0 -_0811F804: .4byte gUnknown_2039DEC -_0811F808: .4byte 0x00002CE8 -_0811F80C: - movs r0, #0 -_0811F80E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0811F7E8 - - thumb_func_start sub_0811F814 -sub_0811F814: @ 0x0811F814 - push {r4, lr} - ldr r4, _0811F82C - ldr r0, [r4] - cmp r0, #0 - beq _0811F826 - bl Free - movs r0, #0 - str r0, [r4] -_0811F826: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811F82C: .4byte gUnknown_2039DEC - thumb_func_end sub_0811F814 - - thumb_func_start sub_0811F830 -sub_0811F830: @ 0x0811F830 - push {r4, r5, lr} - ldr r4, _0811F8FC - ldr r0, [r4] - movs r5, #0 - strh r5, [r0] - movs r0, #0 - bl GetNationalPokedexCount - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0811F858 - ldr r0, [r4] - ldrh r1, [r0] - adds r2, r1, #1 - strh r2, [r0] - lsls r1, r1, #0x10 - lsrs r1, r1, #0xf - adds r0, #2 - adds r0, r0, r1 - strh r5, [r0] -_0811F858: - movs r3, #1 -_0811F85A: - ldr r0, [r4] - ldrh r2, [r0] - adds r1, r2, #1 - strh r1, [r0] - lsls r2, r2, #0x10 - lsrs r2, r2, #0xf - adds r0, #2 - adds r0, r0, r2 - strh r3, [r0] - adds r3, #1 - cmp r3, #0x10 - ble _0811F85A - ldr r0, _0811F900 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0811F8B4 - ldr r0, _0811F8FC - ldr r2, [r0] - ldrh r0, [r2] - adds r1, r0, #1 - strh r1, [r2] - lsls r0, r0, #0x10 - lsrs r0, r0, #0xf - adds r3, r2, #2 - adds r0, r3, r0 - movs r1, #0x11 - strh r1, [r0] - ldrh r0, [r2] - adds r1, r0, #1 - strh r1, [r2] - lsls r0, r0, #0x10 - lsrs r0, r0, #0xf - adds r0, r3, r0 - movs r1, #0x12 - strh r1, [r0] - ldrh r0, [r2] - adds r1, r0, #1 - strh r1, [r2] - lsls r0, r0, #0x10 - lsrs r0, r0, #0xf - adds r3, r3, r0 - movs r0, #0x13 - strh r0, [r3] -_0811F8B4: - ldr r0, _0811F904 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0811F8D6 - ldr r0, _0811F8FC - ldr r0, [r0] - ldrh r1, [r0] - adds r2, r1, #1 - strh r2, [r0] - lsls r1, r1, #0x10 - lsrs r1, r1, #0xf - adds r0, #2 - adds r0, r0, r1 - movs r1, #0x14 - strh r1, [r0] -_0811F8D6: - bl IsNationalPokedexEnabled - cmp r0, #0 - beq _0811F8F4 - ldr r0, _0811F8FC - ldr r0, [r0] - ldrh r1, [r0] - adds r2, r1, #1 - strh r2, [r0] - lsls r1, r1, #0x10 - lsrs r1, r1, #0xf - adds r0, #2 - adds r0, r0, r1 - movs r1, #0x15 - strh r1, [r0] -_0811F8F4: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0811F8FC: .4byte gUnknown_2039DEC -_0811F900: .4byte 0x00000864 -_0811F904: .4byte 0x00000866 - thumb_func_end sub_0811F830 - - thumb_func_start sub_0811F908 -sub_0811F908: @ 0x0811F908 - ldr r0, _0811F910 - ldr r0, [r0] - ldrb r0, [r0] - bx lr - .align 2, 0 -_0811F910: .4byte gUnknown_2039DEC - thumb_func_end sub_0811F908 - - thumb_func_start sub_0811F914 -sub_0811F914: @ 0x0811F914 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _0811F930 - ldr r1, [r0] - ldrh r0, [r1] - cmp r2, r0 - bhs _0811F934 - lsls r0, r2, #1 - adds r1, #2 - adds r1, r1, r0 - ldrb r0, [r1] - b _0811F936 - .align 2, 0 -_0811F930: .4byte gUnknown_2039DEC -_0811F934: - movs r0, #0x16 -_0811F936: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811F914 - - thumb_func_start unref_sub_811F3E0 -unref_sub_811F3E0: @ 0x0811F93C - push {r4, r5, lr} - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsls r2, r2, #0x10 - lsrs r5, r2, #0x10 - ldr r0, _0811F97C - lsrs r1, r1, #0x16 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl StringCopy - adds r1, r0, #0 - subs r4, r1, r4 - lsls r4, r4, #0x10 - lsrs r0, r4, #0x10 - cmp r0, r5 - bhs _0811F970 - movs r2, #0 -_0811F962: - strb r2, [r1] - adds r1, #1 - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r5 - blo _0811F962 -_0811F970: - movs r0, #0xff - strb r0, [r1] - adds r0, r1, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0811F97C: .4byte gUnknown_8579ED8 - thumb_func_end unref_sub_811F3E0 - - thumb_func_start sub_0811F980 -sub_0811F980: @ 0x0811F980 - lsls r0, r0, #0x18 - ldr r1, _0811F98C - lsrs r0, r0, #0x16 - adds r0, r0, r1 - ldr r0, [r0] - bx lr - .align 2, 0 -_0811F98C: .4byte gUnknown_8579ED8 - thumb_func_end sub_0811F980 - - thumb_func_start CopyEasyChatWordPadded -CopyEasyChatWordPadded: @ 0x0811F990 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r5, r2, #0x10 - bl CopyEasyChatWord - adds r1, r0, #0 - subs r4, r1, r4 - lsls r4, r4, #0x10 - lsrs r0, r4, #0x10 - cmp r0, r5 - bhs _0811F9BC - movs r2, #0 -_0811F9AE: - strb r2, [r1] - adds r1, #1 - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r5 - blo _0811F9AE -_0811F9BC: - movs r0, #0xff - strb r0, [r1] - adds r0, r1, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end CopyEasyChatWordPadded - - thumb_func_start sub_0811F9C8 -sub_0811F9C8: @ 0x0811F9C8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - movs r3, #0 -_0811F9D6: - ldr r2, _0811FA18 - lsls r1, r3, #3 - adds r0, r2, #4 - adds r0, r1, r0 - ldr r0, [r0] - str r0, [sp] - adds r1, r1, r2 - ldr r7, [r1] - ldr r0, _0811FA1C - ldr r1, [r0] - lsls r2, r3, #1 - adds r1, #0x2e - adds r1, r1, r2 - movs r0, #0 - strh r0, [r1] - mov sl, r0 - movs r1, #0 - str r2, [sp, #4] - adds r0, r3, #1 - str r0, [sp, #8] - ldr r2, [sp] - cmp r1, r2 - bge _0811FA88 -_0811FA04: - ldrh r0, [r7] - ldr r2, _0811FA20 - cmp r0, r2 - bne _0811FA54 - adds r7, #2 - ldrh r4, [r7] - adds r7, #2 - adds r0, r1, #1 - adds r1, r0, r4 - b _0811FA56 - .align 2, 0 -_0811FA18: .4byte gUnknown_8579D04 -_0811FA1C: .4byte gUnknown_2039DEC -_0811FA20: .4byte 0x0000FFFF -_0811FA24: - ldr r0, _0811FA50 - ldr r2, [r0] - mov r0, sl - lsls r1, r0, #1 - lsls r0, r3, #4 - subs r0, r0, r3 - lsls r0, r0, #4 - adds r1, r1, r0 - adds r0, r2, #0 - adds r0, #0x88 - adds r0, r0, r1 - ldrh r1, [r5] - strh r1, [r0] - movs r0, #1 - add sl, r0 - adds r2, #0x2e - ldr r0, [sp, #4] - adds r2, r2, r0 - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - b _0811FA7E - .align 2, 0 -_0811FA50: .4byte gUnknown_2039DEC -_0811FA54: - movs r4, #1 -_0811FA56: - movs r6, #0 - adds r1, #1 - mov sb, r1 - lsls r2, r4, #1 - mov r8, r2 - cmp r6, r4 - bge _0811FA7E - adds r5, r7, #0 -_0811FA66: - ldrh r0, [r5] - str r3, [sp, #0xc] - bl sub_0811FDB4 - lsls r0, r0, #0x18 - ldr r3, [sp, #0xc] - cmp r0, #0 - bne _0811FA24 - adds r5, #2 - adds r6, #1 - cmp r6, r4 - blt _0811FA66 -_0811FA7E: - add r7, r8 - mov r1, sb - ldr r0, [sp] - cmp r1, r0 - blt _0811FA04 -_0811FA88: - ldr r3, [sp, #8] - cmp r3, #0x2c - ble _0811F9D6 - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0811F9C8 - - thumb_func_start sub_0811FAA0 -sub_0811FAA0: @ 0x0811FAA0 - push {lr} - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - cmp r0, #0 - bne _0811FAB2 - adds r0, r1, #0 - bl sub_0811FB1C - b _0811FAB8 -_0811FAB2: - adds r0, r1, #0 - bl sub_0811FC10 -_0811FAB8: - ldr r1, _0811FAC8 - ldr r1, [r1] - ldr r2, _0811FACC - adds r1, r1, r2 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0811FAC8: .4byte gUnknown_2039DEC -_0811FACC: .4byte 0x00002CE4 - thumb_func_end sub_0811FAA0 - - thumb_func_start sub_0811FAD0 -sub_0811FAD0: @ 0x0811FAD0 - push {lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, _0811FAF0 - ldr r1, [r0] - ldr r3, _0811FAF4 - adds r0, r1, r3 - ldrh r0, [r0] - cmp r2, r0 - bhs _0811FAFC - lsls r0, r2, #1 - ldr r2, _0811FAF8 - adds r1, r1, r2 - adds r1, r1, r0 - ldrh r0, [r1] - b _0811FAFE - .align 2, 0 -_0811FAF0: .4byte gUnknown_2039DEC -_0811FAF4: .4byte 0x00002CE4 -_0811FAF8: .4byte 0x00002AE4 -_0811FAFC: - ldr r0, _0811FB04 -_0811FAFE: - pop {r1} - bx r1 - .align 2, 0 -_0811FB04: .4byte 0x0000FFFF - thumb_func_end sub_0811FAD0 - - thumb_func_start sub_0811FB08 -sub_0811FB08: @ 0x0811FB08 - ldr r0, _0811FB14 - ldr r0, [r0] - ldr r1, _0811FB18 - adds r0, r0, r1 - ldrh r0, [r0] - bx lr - .align 2, 0 -_0811FB14: .4byte gUnknown_2039DEC -_0811FB18: .4byte 0x00002CE4 - thumb_func_end sub_0811FB08 - - thumb_func_start sub_0811FB1C -sub_0811FB1C: @ 0x0811FB1C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r1, _0811FB94 - lsls r0, r2, #3 - adds r0, r0, r1 - ldrh r3, [r0, #4] - mov r8, r3 - cmp r2, #0 - beq _0811FB44 - cmp r2, #0x15 - beq _0811FB44 - cmp r2, #0x12 - beq _0811FB44 - cmp r2, #0x13 - bne _0811FBA4 -_0811FB44: - lsls r0, r2, #3 - adds r0, r0, r1 - ldr r1, [r0] - movs r7, #0 - movs r5, #0 - cmp r5, r8 - bhs _0811FBF0 - movs r0, #0x7f - ands r0, r2 - lsls r0, r0, #9 - mov sb, r0 - adds r4, r1, #0 - lsls r6, r2, #0x18 -_0811FB5E: - ldrh r0, [r4] - lsrs r1, r6, #0x18 - bl sub_0811FCB8 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0811FB88 - ldr r0, _0811FB98 - ldr r2, [r0] - lsls r0, r5, #1 - ldr r1, _0811FB9C - adds r2, r2, r1 - adds r2, r2, r0 - ldrh r0, [r4] - ldr r3, _0811FBA0 - adds r1, r3, #0 - ands r0, r1 - mov r1, sb - orrs r0, r1 - strh r0, [r2] - adds r5, #1 -_0811FB88: - adds r4, #2 - adds r7, #1 - cmp r7, r8 - blo _0811FB5E - b _0811FBF0 - .align 2, 0 -_0811FB94: .4byte gUnknown_8578D14 -_0811FB98: .4byte gUnknown_2039DEC -_0811FB9C: .4byte 0x00002AE4 -_0811FBA0: .4byte 0x000001FF -_0811FBA4: - ldr r1, [r0] - movs r7, #0 - movs r5, #0 - cmp r5, r8 - bhs _0811FBF0 - movs r0, #0x7f - ands r0, r2 - lsls r0, r0, #9 - mov sl, r0 - adds r6, r1, #0 - lsls r2, r2, #0x18 - mov sb, r2 -_0811FBBC: - ldrh r4, [r6, #4] - adds r0, r4, #0 - mov r2, sb - lsrs r1, r2, #0x18 - bl sub_0811FCB8 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0811FBE8 - ldr r0, _0811FC04 - ldr r1, [r0] - lsls r0, r5, #1 - ldr r3, _0811FC08 - adds r1, r1, r3 - adds r1, r1, r0 - ldr r2, _0811FC0C - adds r0, r2, #0 - ands r4, r0 - mov r3, sl - orrs r4, r3 - strh r4, [r1] - adds r5, #1 -_0811FBE8: - adds r6, #0xc - adds r7, #1 - cmp r7, r8 - blo _0811FBBC -_0811FBF0: - lsls r0, r5, #0x10 - lsrs r0, r0, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0811FC04: .4byte gUnknown_2039DEC -_0811FC08: .4byte 0x00002AE4 -_0811FC0C: .4byte 0x000001FF - thumb_func_end sub_0811FB1C - - thumb_func_start sub_0811FC10 -sub_0811FC10: @ 0x0811FC10 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - movs r4, #0 - movs r6, #0 - ldr r3, _0811FC78 - ldr r0, [r3] - lsls r5, r1, #1 - adds r0, #0x2e - adds r0, r0, r5 - ldrh r0, [r0] - cmp r6, r0 - bhs _0811FC6C - mov r8, r3 - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r7, r0, #4 - ldr r0, _0811FC7C - mov ip, r0 -_0811FC3A: - mov r0, r8 - ldr r3, [r0] - adds r1, r6, #0 - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r1, r1, #1 - mov r0, ip - adds r2, r3, r0 - adds r2, r2, r1 - lsls r1, r4, #1 - adds r1, r1, r7 - adds r0, r3, #0 - adds r0, #0x88 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2] - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r3, #0x2e - adds r3, r3, r5 - ldrh r3, [r3] - cmp r4, r3 - blo _0811FC3A -_0811FC6C: - adds r0, r6, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0811FC78: .4byte gUnknown_2039DEC -_0811FC7C: .4byte 0x00002AE4 - thumb_func_end sub_0811FC10 - - thumb_func_start sub_0811FC80 -sub_0811FC80: @ 0x0811FC80 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - movs r2, #0 - ldr r0, _0811FCA4 - ldr r0, [r0] - ldrh r1, [r0] - cmp r2, r1 - bge _0811FCB0 - adds r4, r3, #0 - adds r3, r1, #0 - adds r1, r0, #2 -_0811FC98: - ldrh r0, [r1] - cmp r0, r4 - bne _0811FCA8 - movs r0, #1 - b _0811FCB2 - .align 2, 0 -_0811FCA4: .4byte gUnknown_2039DEC -_0811FCA8: - adds r1, #2 - adds r2, #1 - cmp r2, r3 - blt _0811FC98 -_0811FCB0: - movs r0, #0 -_0811FCB2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0811FC80 - - thumb_func_start sub_0811FCB8 -sub_0811FCB8: @ 0x0811FCB8 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r2, r1, #0x18 - cmp r2, #0x15 - bhi _0811FD6E - lsls r0, r2, #2 - ldr r1, _0811FCD0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0811FCD0: .4byte _0811FCD4 -_0811FCD4: @ jump table - .4byte _0811FD2C @ case 0 - .4byte _0811FD6E @ case 1 - .4byte _0811FD6E @ case 2 - .4byte _0811FD6E @ case 3 - .4byte _0811FD6E @ case 4 - .4byte _0811FD6E @ case 5 - .4byte _0811FD6E @ case 6 - .4byte _0811FD6E @ case 7 - .4byte _0811FD6E @ case 8 - .4byte _0811FD6E @ case 9 - .4byte _0811FD6E @ case 10 - .4byte _0811FD6E @ case 11 - .4byte _0811FD6E @ case 12 - .4byte _0811FD6E @ case 13 - .4byte _0811FD6E @ case 14 - .4byte _0811FD6E @ case 15 - .4byte _0811FD6E @ case 16 - .4byte _0811FD6E @ case 17 - .4byte _0811FD5C @ case 18 - .4byte _0811FD5C @ case 19 - .4byte _0811FD60 @ case 20 - .4byte _0811FD42 @ case 21 -_0811FD2C: - adds r0, r4, #0 - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0 - bl GetSetPokedexFlag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0811FD80 -_0811FD42: - adds r0, r4, #0 - bl sub_0811FD8C - cmp r0, #0 - beq _0811FD5C - adds r0, r4, #0 - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0 - bl GetSetPokedexFlag -_0811FD5C: - movs r0, #1 - b _0811FD80 -_0811FD60: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl sub_0811F478 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0811FD80 -_0811FD6E: - ldr r1, _0811FD88 - lsls r0, r2, #3 - adds r0, r0, r1 - ldr r1, [r0] - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #8] -_0811FD80: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0811FD88: .4byte gUnknown_8578D14 - thumb_func_end sub_0811FCB8 - - thumb_func_start sub_0811FD8C -sub_0811FD8C: @ 0x0811FD8C - push {lr} - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - movs r2, #0 - ldr r1, _0811FDA0 -_0811FD96: - ldrh r0, [r1] - cmp r0, r3 - bne _0811FDA4 - movs r0, #1 - b _0811FDAE - .align 2, 0 -_0811FDA0: .4byte gUnknown_8579F34 -_0811FDA4: - adds r1, #2 - adds r2, #1 - cmp r2, #0 - beq _0811FD96 - movs r0, #0 -_0811FDAE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0811FD8C - - thumb_func_start sub_0811FDB4 -sub_0811FDB4: @ 0x0811FDB4 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r5, r0, #0x19 - lsls r0, r0, #7 - lsrs r4, r0, #0x17 - adds r0, r5, #0 - bl sub_0811FC80 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0811FDD8 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0811FCB8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0811FDDA -_0811FDD8: - movs r0, #0 -_0811FDDA: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_0811FDB4 - - thumb_func_start InitializeEasyChatWordArray -InitializeEasyChatWordArray: @ 0x0811FDE0 - push {lr} - adds r2, r0, #0 - lsls r1, r1, #0x10 - ldr r0, _0811FE08 - adds r1, r1, r0 - lsrs r0, r1, #0x10 - ldr r1, _0811FE0C - cmp r0, r1 - beq _0811FE02 - adds r3, r1, #0 -_0811FDF4: - strh r3, [r2] - adds r2, #2 - subs r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r1 - bne _0811FDF4 -_0811FE02: - pop {r0} - bx r0 - .align 2, 0 -_0811FE08: .4byte 0xFFFF0000 -_0811FE0C: .4byte 0x0000FFFF - thumb_func_end InitializeEasyChatWordArray - - thumb_func_start sub_0811FE10 -sub_0811FE10: @ 0x0811FE10 - push {lr} - bl sub_0801AB30 - ldr r1, _0811FE28 - adds r2, r1, #0 - adds r1, r0, #6 -_0811FE1C: - strh r2, [r1] - subs r1, #2 - cmp r1, r0 - bge _0811FE1C - pop {r0} - bx r0 - .align 2, 0 -_0811FE28: .4byte 0x0000FFFF - thumb_func_end sub_0811FE10 - - thumb_func_start sub_0811FE2C -sub_0811FE2C: @ 0x0811FE2C - ldr r1, _0811FE34 - str r0, [r1] - bx lr - .align 2, 0 -_0811FE34: .4byte gUnknown_2039DF0 - thumb_func_end sub_0811FE2C - - thumb_func_start sub_0811FE38 -sub_0811FE38: @ 0x0811FE38 - push {lr} - sub sp, #4 - ldr r0, _0811FE70 - ldr r0, [r0] - ldrb r0, [r0, #0x14] - lsrs r0, r0, #3 - bl GetWindowFrameTilesPal - ldr r3, _0811FE74 - ldr r2, [r3] - ldr r1, [r0] - str r1, [r2, #0x2c] - ldr r0, [r0, #4] - str r0, [r2, #0x30] - ldr r0, _0811FE78 - adds r2, r2, r0 - movs r1, #0 - strb r1, [r2] - mov r0, sp - strh r1, [r0] - ldr r1, [r3] - adds r1, #0x34 - ldr r2, _0811FE7C - bl CpuSet - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_0811FE70: .4byte gUnknown_3005AF0 -_0811FE74: .4byte gUnknown_2039DF0 -_0811FE78: .4byte 0x000010B4 -_0811FE7C: .4byte 0x01000800 - thumb_func_end sub_0811FE38 - - thumb_func_start sub_0811FE80 -sub_0811FE80: @ 0x0811FE80 - push {r4, r5, r6, r7, lr} - ldr r0, _0811FEA0 - ldr r1, [r0] - ldr r2, _0811FEA4 - adds r0, r1, r2 - ldrb r2, [r0] - lsls r0, r2, #8 - adds r0, #0x34 - adds r5, r1, r0 - cmp r2, #0xd - beq _0811FF50 - cmp r2, #0xd - bgt _0811FEA8 - cmp r2, #0 - beq _0811FEAE - b _0811FEF8 - .align 2, 0 -_0811FEA0: .4byte gUnknown_2039DF0 -_0811FEA4: .4byte 0x000010B4 -_0811FEA8: - cmp r2, #0xe - beq _0811FF9C - b _0811FEF8 -_0811FEAE: - ldr r0, [r1, #0x2c] - adds r1, r5, #0 - movs r2, #8 - bl CpuFastSet - movs r4, #0 - adds r7, r5, #0 - adds r7, #0xe0 -_0811FEBE: - ldr r6, _0811FEF0 - ldr r0, [r6] - ldr r0, [r0, #0x2c] - adds r0, #0x20 - adds r4, #1 - lsls r1, r4, #5 - adds r1, r5, r1 - movs r2, #8 - bl CpuFastSet - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - cmp r4, #5 - bls _0811FEBE - ldr r0, [r6] - ldr r0, [r0, #0x2c] - adds r0, #0x40 - adds r1, r7, #0 - movs r2, #8 - bl CpuFastSet - ldr r1, [r6] - ldr r0, _0811FEF4 - adds r1, r1, r0 - b _0811FF3E - .align 2, 0 -_0811FEF0: .4byte gUnknown_2039DF0 -_0811FEF4: .4byte 0x000010B4 -_0811FEF8: - ldr r0, _0811FF48 - ldr r0, [r0] - ldr r0, [r0, #0x2c] - adds r0, #0x60 - adds r1, r5, #0 - movs r2, #8 - bl CpuFastSet - movs r4, #0 - adds r7, r5, #0 - adds r7, #0xe0 -_0811FF0E: - ldr r6, _0811FF48 - ldr r0, [r6] - ldr r0, [r0, #0x2c] - adds r0, #0x80 - adds r4, #1 - lsls r1, r4, #5 - adds r1, r5, r1 - movs r2, #8 - bl CpuFastSet - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - cmp r4, #5 - bls _0811FF0E - ldr r0, [r6] - ldr r0, [r0, #0x2c] - adds r0, #0xa0 - adds r1, r7, #0 - movs r2, #8 - bl CpuFastSet - ldr r1, [r6] - ldr r2, _0811FF4C - adds r1, r1, r2 -_0811FF3E: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0811FFA8 - .align 2, 0 -_0811FF48: .4byte gUnknown_2039DF0 -_0811FF4C: .4byte 0x000010B4 -_0811FF50: - ldr r0, [r1, #0x2c] - adds r0, #0xc0 - adds r1, r5, #0 - movs r2, #8 - bl CpuFastSet - movs r4, #0 - adds r7, r5, #0 - adds r7, #0xe0 -_0811FF62: - ldr r6, _0811FFA0 - ldr r0, [r6] - ldr r0, [r0, #0x2c] - adds r0, #0xe0 - adds r4, #1 - lsls r1, r4, #5 - adds r1, r5, r1 - movs r2, #8 - bl CpuFastSet - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - cmp r4, #5 - bls _0811FF62 - ldr r0, [r6] - ldr r0, [r0, #0x2c] - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r0, r1 - adds r1, r7, #0 - movs r2, #8 - bl CpuFastSet - ldr r1, [r6] - ldr r2, _0811FFA4 - adds r1, r1, r2 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_0811FF9C: - movs r0, #0 - b _0811FFAA - .align 2, 0 -_0811FFA0: .4byte gUnknown_2039DF0 -_0811FFA4: .4byte 0x000010B4 -_0811FFA8: - movs r0, #1 -_0811FFAA: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_0811FE80 - - thumb_func_start sub_0811FFB0 -sub_0811FFB0: @ 0x0811FFB0 - push {lr} - bl sub_0811FE38 -_0811FFB6: - bl sub_0811FE80 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0811FFB6 - pop {r0} - bx r0 - thumb_func_end sub_0811FFB0 - - thumb_func_start sub_0811FFC4 -sub_0811FFC4: @ 0x0811FFC4 - push {r4, r5, r6, r7, lr} - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r6, r2, #0x10 - ldr r2, _08120014 - ldr r3, [r2] - movs r1, #0 - strb r1, [r3, #5] - ldr r1, [r2] - strb r0, [r1, #4] - movs r3, #0 - adds r7, r2, #0 - adds r4, r7, #0 - movs r2, #1 -_0811FFE2: - ldr r0, [r4] - adds r1, r0, #6 - adds r1, r1, r3 - ldrb r0, [r0, #4] - asrs r0, r3 - ands r0, r2 - strb r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #3 - bls _0811FFE2 - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - lsls r1, r6, #0x10 - asrs r1, r1, #0x10 - ldr r3, [r7] - ldrh r2, [r3] - ldrh r3, [r3, #2] - bl sub_081201A0 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08120014: .4byte gUnknown_2039DF0 - thumb_func_end sub_0811FFC4 - - thumb_func_start sub_08120018 -sub_08120018: @ 0x08120018 - push {r4, r5, r6, r7, lr} - movs r5, #0 - ldr r4, _081200C0 -_0812001E: - ldr r0, [r4] - ldrh r0, [r0] - adds r0, r5, r0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl FreeSpriteTilesByTag - ldr r0, [r4] - ldrh r0, [r0, #2] - adds r0, r5, r0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl FreeSpritePaletteByTag - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #1 - bls _0812001E - movs r5, #0 - ldr r6, _081200C0 -_08120048: - ldr r0, [r6] - lsls r4, r5, #2 - adds r0, #0xc - adds r0, r0, r4 - ldr r0, [r0] - cmp r0, #0 - beq _081200BA - bl DestroySprite - ldr r0, [r6] - adds r0, #0xc - adds r0, r0, r4 - movs r1, #0 - str r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #1 - bls _08120048 - movs r5, #0 - ldr r6, _081200C0 -_08120072: - ldr r0, [r6] - lsls r4, r5, #2 - adds r0, #0x14 - adds r0, r0, r4 - ldr r0, [r0] - cmp r0, #0 - beq _081200BA - bl DestroySprite - ldr r0, [r6] - adds r0, #0x14 - adds r0, r0, r4 - movs r7, #0 - str r7, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #3 - bls _08120072 - ldr r4, _081200C0 - ldr r0, [r4] - ldr r0, [r0, #0x24] - cmp r0, #0 - beq _081200AA - bl DestroySprite - ldr r0, [r4] - str r7, [r0, #0x24] -_081200AA: - ldr r0, [r4] - ldr r0, [r0, #0x28] - cmp r0, #0 - beq _081200BA - bl DestroySprite - ldr r0, [r4] - str r7, [r0, #0x28] -_081200BA: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081200C0: .4byte gUnknown_2039DF0 - thumb_func_end sub_08120018 - - thumb_func_start sub_081200C4 -sub_081200C4: @ 0x081200C4 - push {r4, r5, lr} - ldr r0, _081200F4 - ldrh r1, [r0, #0x2e] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0 - beq _081200FC - movs r0, #5 - bl sub_080A306C - ldr r2, _081200F8 - ldr r1, [r2] - ldrb r0, [r1, #5] - subs r0, #1 - strb r0, [r1, #5] - lsls r0, r0, #0x18 - cmp r0, #0 - bge _08120184 - ldr r1, [r2] - movs r0, #5 - strb r0, [r1, #5] - b _08120184 - .align 2, 0 -_081200F4: .4byte gUnknown_3002360 -_081200F8: .4byte gUnknown_2039DF0 -_081200FC: - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0 - beq _0812012C - movs r0, #5 - bl sub_080A306C - ldr r2, _08120128 - ldr r1, [r2] - ldrb r0, [r1, #5] - adds r0, #1 - strb r0, [r1, #5] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #5 - ble _08120184 - ldr r0, [r2] - strb r5, [r0, #5] - b _08120184 - .align 2, 0 -_08120128: .4byte gUnknown_2039DF0 -_0812012C: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08120188 - movs r0, #5 - bl sub_080A306C - ldr r2, _0812015C - ldr r0, [r2] - movs r1, #5 - ldrsb r1, [r0, r1] - cmp r1, #4 - beq _08120160 - cmp r1, #5 - beq _08120196 - adds r0, #6 - adds r1, r0, r1 - movs r2, #0 - ldrb r0, [r1] - cmp r0, #0 - bne _08120182 - movs r2, #1 - b _08120182 - .align 2, 0 -_0812015C: .4byte gUnknown_2039DF0 -_08120160: - strb r4, [r0, #4] - movs r3, #0 - adds r4, r2, #0 -_08120166: - ldr r2, [r4] - adds r0, r2, #6 - adds r0, r0, r3 - ldrb r0, [r0] - lsls r0, r3 - ldrb r1, [r2, #4] - orrs r0, r1 - strb r0, [r2, #4] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #3 - bls _08120166 - b _08120196 -_08120182: - strb r2, [r1] -_08120184: - movs r0, #1 - b _08120198 -_08120188: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08120184 - movs r0, #5 - bl sub_080A306C -_08120196: - movs r0, #0 -_08120198: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081200C4 - - thumb_func_start sub_081201A0 -sub_081201A0: @ 0x081201A0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x50 - mov r8, r0 - mov sb, r1 - adds r5, r2, #0 - adds r6, r3, #0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sb, r1 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - ldr r4, _08120398 - ldr r0, [r4] - adds r0, #0x34 - str r0, [sp, #0x18] - add r1, sp, #0x1c - movs r7, #0 - movs r0, #0x80 - lsls r0, r0, #5 - strh r0, [r1] - mov r0, sp - adds r0, #0x1e - strh r5, [r0] - add r1, sp, #0x20 - ldr r0, _0812039C - str r0, [sp, #0x20] - movs r0, #0xc8 - lsls r0, r0, #2 - strh r0, [r1, #4] - adds r0, r5, #1 - strh r0, [r1, #6] - add r0, sp, #0x28 - movs r1, #0 - movs r2, #8 - bl memset - add r2, sp, #0x18 - mov sl, r2 - mov r0, sp - mov r1, sl - movs r2, #0x18 - bl memcpy - ldr r0, [r4] - ldr r0, [r0, #0x30] - str r0, [sp, #0x30] - add r0, sp, #0x34 - strh r6, [r0] - add r1, sp, #0x38 - ldr r0, _081203A0 - str r0, [sp, #0x38] - adds r0, r6, #1 - strh r0, [r1, #4] - add r0, sp, #0x40 - movs r1, #0 - movs r2, #8 - bl memset - add r4, sp, #0x30 - mov r0, sl - adds r1, r4, #0 - movs r2, #0x18 - bl memcpy - strh r5, [r4] - strh r6, [r4, #2] - ldr r0, _081203A4 - str r0, [r4, #4] - ldr r0, _081203A8 - str r0, [r4, #8] - str r7, [r4, #0xc] - ldr r0, _081203AC - str r0, [r4, #0x10] - ldr r0, _081203B0 - str r0, [r4, #0x14] - mov r0, sp - bl LoadSpriteSheets - mov r0, sl - bl LoadSpritePalettes - movs r5, #0 - mov r3, r8 - lsls r3, r3, #0x10 - mov r8, r3 - movs r0, #0x80 - lsls r0, r0, #0xe - add r0, r8 - mov sl, r0 - mov r1, r8 - str r1, [sp, #0x48] - mov r2, sb - lsls r2, r2, #0x10 - mov sb, r2 - movs r7, #0x80 - lsls r7, r7, #0xe - add r7, sb - mov r3, sb - str r3, [sp, #0x4c] -_08120278: - adds r0, r4, #0 - mov r2, sl - asrs r1, r2, #0x10 - asrs r2, r7, #0x10 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0x40 - bne _08120290 - b _0812041C -_08120290: - ldr r6, _08120398 - ldr r2, [r6] - lsls r0, r5, #2 - adds r2, #0xc - adds r2, r2, r0 - lsls r0, r3, #4 - adds r0, r0, r3 - lsls r0, r0, #2 - ldr r1, _081203B4 - adds r0, r0, r1 - str r0, [r2] - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - bl StartSpriteAnim - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #1 - bls _08120278 - ldr r0, [r6] - ldr r1, [r0, #0x10] - ldr r3, [sp, #0x4c] - asrs r0, r3, #0x10 - adds r0, #0x60 - strh r0, [r1, #0x22] - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - ldrh r0, [r4, #2] - adds r0, #1 - strh r0, [r4, #2] - ldr r0, _081203B8 - str r0, [r4, #8] - ldr r0, _081203BC - str r0, [r4, #0x14] - ldr r0, _081203C0 - str r0, [r4, #4] - movs r5, #0 - ldr r0, [sp, #0x48] - movs r1, #0x80 - lsls r1, r1, #0xe - adds r0, r0, r1 - mov sb, r0 -_081202E8: - lsls r2, r5, #4 - adds r2, #0x10 - ldr r3, [sp, #0x4c] - asrs r3, r3, #0x10 - mov r8, r3 - add r2, r8 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r0, r4, #0 - mov r3, sb - asrs r1, r3, #0x10 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0x40 - bne _0812030E - b _0812042C -_0812030E: - ldr r6, _08120398 - ldr r1, [r6] - lsls r0, r5, #2 - adds r1, #0x14 - adds r1, r1, r0 - lsls r0, r3, #4 - adds r0, r0, r3 - lsls r0, r0, #2 - ldr r7, _081203B4 - adds r0, r0, r7 - str r0, [r1] - strh r5, [r0, #0x2e] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #3 - bls _081202E8 - ldr r0, _081203C4 - str r0, [r4, #0x14] - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0x40 - beq _081203C8 - ldr r0, [r6] - lsls r1, r3, #4 - adds r1, r1, r3 - lsls r1, r1, #2 - adds r1, r1, r7 - str r1, [r0, #0x28] - ldrb r3, [r1, #1] - movs r2, #0x3f - adds r0, r2, #0 - ands r0, r3 - strb r0, [r1, #1] - ldr r0, [r6] - ldr r1, [r0, #0x28] - ldrb r0, [r1, #3] - ands r2, r0 - movs r0, #0x80 - orrs r2, r0 - strb r2, [r1, #3] - ldr r0, [r6] - ldr r0, [r0, #0x28] - movs r1, #9 - bl StartSpriteAnim - ldr r1, [r6] - ldr r2, [r1, #0x28] - ldr r3, [sp, #0x48] - asrs r0, r3, #0x10 - adds r0, #0x20 - strh r0, [r2, #0x20] - ldr r2, [r1, #0x28] - mov r0, r8 - adds r0, #0x50 - strh r0, [r2, #0x22] - ldr r0, [r1, #0x28] - movs r1, #1 - movs r2, #2 - movs r3, #0 - bl CalcCenterToCornerVec - b _081203CE - .align 2, 0 -_08120398: .4byte gUnknown_2039DF0 -_0812039C: .4byte gUnknown_8579F58 -_081203A0: .4byte gUnknown_8579F38 -_081203A4: .4byte gUnknown_857AAA0 -_081203A8: .4byte gUnknown_857AB38 -_081203AC: .4byte gUnknown_82BF310 -_081203B0: .4byte sub_0812045C -_081203B4: .4byte gUnknown_20205AC -_081203B8: .4byte gUnknown_857AB00 -_081203BC: .4byte OpponentHandleChosenMonReturnValue -_081203C0: .4byte gUnknown_857AAA8 -_081203C4: .4byte sub_08007140 -_081203C8: - ldr r1, [r6] - movs r0, #0 - str r0, [r1, #0x28] -_081203CE: - ldr r0, _08120410 - str r0, [r4, #0x14] - ldr r0, [sp, #0x48] - movs r2, #0xc0 - lsls r2, r2, #0xc - adds r1, r0, r2 - asrs r1, r1, #0x10 - adds r0, r4, #0 - movs r2, #0 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0x40 - beq _08120440 - ldr r0, _08120414 - ldr r2, [r0] - lsls r1, r3, #4 - adds r1, r1, r3 - lsls r1, r1, #2 - ldr r0, _08120418 - adds r1, r1, r0 - str r1, [r2, #0x24] - ldr r3, [sp, #0x4c] - asrs r0, r3, #0x10 - adds r0, #0x10 - strh r0, [r1, #0x2e] - ldr r0, [r2, #0x24] - movs r1, #8 - bl StartSpriteAnim - b _08120448 - .align 2, 0 -_08120410: .4byte sub_0812049C -_08120414: .4byte gUnknown_2039DF0 -_08120418: .4byte gUnknown_20205AC -_0812041C: - ldr r0, _08120428 - ldr r0, [r0] - lsls r1, r5, #2 - adds r0, #0xc - b _08120434 - .align 2, 0 -_08120428: .4byte gUnknown_2039DF0 -_0812042C: - ldr r0, _0812043C - ldr r0, [r0] - lsls r1, r5, #2 - adds r0, #0x14 -_08120434: - adds r0, r0, r1 - movs r1, #0 - str r1, [r0] - b _08120448 - .align 2, 0 -_0812043C: .4byte gUnknown_2039DF0 -_08120440: - ldr r0, _08120458 - ldr r1, [r0] - movs r0, #0 - str r0, [r1, #0x24] -_08120448: - add sp, #0x50 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08120458: .4byte gUnknown_2039DF0 - thumb_func_end sub_081201A0 - - thumb_func_start sub_0812045C -sub_0812045C: @ 0x0812045C - bx lr - .align 2, 0 - thumb_func_end sub_0812045C - - thumb_func_start OpponentHandleChosenMonReturnValue -OpponentHandleChosenMonReturnValue: @ 0x08120460 - push {lr} - adds r2, r0, #0 - ldr r0, _08120488 - ldr r0, [r0] - movs r3, #0x2e - ldrsh r1, [r2, r3] - adds r0, #6 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _0812048C - lsls r1, r1, #1 - adds r1, #1 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r2, #0 - bl StartSpriteAnim - b _08120496 - .align 2, 0 -_08120488: .4byte gUnknown_2039DF0 -_0812048C: - lsls r1, r1, #0x19 - lsrs r1, r1, #0x18 - adds r0, r2, #0 - bl StartSpriteAnim -_08120496: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end OpponentHandleChosenMonReturnValue - - thumb_func_start sub_0812049C -sub_0812049C: @ 0x0812049C - ldr r1, _081204B0 - ldr r1, [r1] - ldrb r1, [r1, #5] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - lsls r1, r1, #4 - ldrh r2, [r0, #0x2e] - adds r1, r1, r2 - strh r1, [r0, #0x22] - bx lr - .align 2, 0 -_081204B0: .4byte gUnknown_2039DF0 - thumb_func_end sub_0812049C - - thumb_func_start sub_081204B4 -sub_081204B4: @ 0x081204B4 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - cmp r2, #0 - bne _081204C4 - ldr r2, _081204D0 -_081204C4: - movs r3, #0x10 - bl sub_081204F4 - pop {r1} - bx r1 - .align 2, 0 -_081204D0: .4byte gUnknown_857A278 - thumb_func_end sub_081204B4 - - thumb_func_start sub_081204D4 -sub_081204D4: @ 0x081204D4 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - cmp r2, #0 - bne _081204E4 - ldr r2, _081204F0 -_081204E4: - movs r3, #1 - bl sub_081204F4 - pop {r1} - bx r1 - .align 2, 0 -_081204F0: .4byte gUnknown_857A278 - thumb_func_end sub_081204D4 - - thumb_func_start sub_081204F4 -sub_081204F4: @ 0x081204F4 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0x28 - lsls r0, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r4, _08120570 - str r4, [sp, #0x18] - movs r4, #0x80 - add r5, sp, #0x18 - lsrs r6, r0, #0x10 - orrs r0, r4 - str r0, [r5, #4] - str r2, [sp, #0x20] - ldr r0, _08120574 - mov r8, r0 - add r4, sp, #0x20 - ldr r0, [r4, #4] - mov r2, r8 - ands r0, r2 - orrs r0, r1 - str r0, [r4, #4] - mov r0, sp - movs r2, #0 - strh r6, [r0] - strh r1, [r0, #2] - ldr r0, _08120578 - str r0, [sp, #4] - ldr r0, _0812057C - str r0, [sp, #8] - str r2, [sp, #0xc] - ldr r0, _08120580 - str r0, [sp, #0x10] - ldr r0, _08120584 - str r0, [sp, #0x14] - lsls r3, r3, #0x17 - lsrs r3, r3, #0x10 - ldr r0, [r5, #4] - mov r1, r8 - ands r0, r1 - orrs r0, r3 - str r0, [r5, #4] - 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, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x40 - bne _08120588 - movs r0, #0 - b _08120592 - .align 2, 0 -_08120570: .4byte gUnknown_857A298 -_08120574: .4byte 0xFFFF0000 -_08120578: .4byte gUnknown_857AB40 -_0812057C: .4byte gUnknown_857ABC8 -_08120580: .4byte gUnknown_82BF310 -_08120584: .4byte sub_0812045C -_08120588: - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _081205A0 - adds r0, r0, r1 -_08120592: - add sp, #0x28 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_081205A0: .4byte gUnknown_20205AC - thumb_func_end sub_081204F4 - - thumb_func_start sub_081205A4 -sub_081205A4: @ 0x081205A4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x11 - ldr r2, _081205BC - adds r0, r0, r2 - movs r2, #0x80 - movs r3, #0x10 - bl RequestDma3Copy - pop {r0} - bx r0 - .align 2, 0 -_081205BC: .4byte gUnknown_857A298 - thumb_func_end sub_081205A4 - - thumb_func_start SetupBard -SetupBard: @ 0x081205C0 - push {r4, lr} - ldr r0, _08120600 - ldr r2, [r0] - ldr r1, _08120604 - adds r0, r2, r1 - movs r1, #0 - strb r1, [r0] - ldr r3, _08120608 - adds r0, r2, r3 - strb r1, [r0] - ldr r0, _0812060C - ldrb r1, [r0] - adds r3, #1 - adds r0, r2, r3 - strb r1, [r0] - movs r3, #0 - ldr r0, _08120610 - adds r2, r2, r0 - ldr r4, _08120614 -_081205E6: - lsls r0, r3, #1 - adds r1, r2, r0 - adds r0, r0, r4 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #5 - bls _081205E6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08120600: .4byte gUnknown_3005AEC -_08120604: .4byte 0x00002E28 -_08120608: .4byte 0x00002E51 -_0812060C: .4byte gUnknown_829BDA5 -_08120610: .4byte 0x00002E2A -_08120614: .4byte gUnknown_857AC08 - thumb_func_end SetupBard - - thumb_func_start SetupHipster -SetupHipster: @ 0x08120618 - ldr r0, _08120630 - ldr r1, [r0] - ldr r0, _08120634 - adds r1, r1, r0 - movs r2, #0 - movs r0, #1 - strb r0, [r1] - strb r2, [r1, #1] - ldr r0, _08120638 - ldrb r0, [r0] - strb r0, [r1, #2] - bx lr - .align 2, 0 -_08120630: .4byte gUnknown_3005AEC -_08120634: .4byte 0x00002E28 -_08120638: .4byte gUnknown_829BDA5 - thumb_func_end SetupHipster - - thumb_func_start SafariHandleDrawPartyStatusSummary -SafariHandleDrawPartyStatusSummary: @ 0x0812063C - push {lr} - bl StorytellerSetup - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleDrawPartyStatusSummary - - thumb_func_start SetupGiddy -SetupGiddy: @ 0x08120648 - ldr r0, _08120664 - ldr r1, [r0] - ldr r0, _08120668 - adds r2, r1, r0 - movs r3, #0 - movs r0, #4 - strb r0, [r2] - strb r3, [r2, #1] - ldr r0, _0812066C - ldrb r0, [r0] - ldr r2, _08120670 - adds r1, r1, r2 - strb r0, [r1] - bx lr - .align 2, 0 -_08120664: .4byte gUnknown_3005AEC -_08120668: .4byte 0x00002E28 -_0812066C: .4byte gUnknown_829BDA5 -_08120670: .4byte 0x00002E48 - thumb_func_end SetupGiddy - - thumb_func_start sub_08120674 -sub_08120674: @ 0x08120674 - push {lr} - bl TraderSetup - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08120674 - - thumb_func_start SetMauvilleOldMan -SetMauvilleOldMan: @ 0x08120680 - push {lr} - ldr r0, _081206A8 - ldr r0, [r0] - ldrb r1, [r0, #0xb] - lsls r1, r1, #8 - ldrb r0, [r0, #0xa] - orrs r0, r1 - movs r1, #0xa - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x11 - cmp r0, #4 - bhi _081206E0 - lsls r0, r0, #2 - ldr r1, _081206AC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081206A8: .4byte gUnknown_3005AF0 -_081206AC: .4byte _081206B0 -_081206B0: @ jump table - .4byte _081206C4 @ case 0 - .4byte _081206CA @ case 1 - .4byte _081206D0 @ case 2 - .4byte _081206D6 @ case 3 - .4byte _081206DC @ case 4 -_081206C4: - bl SetupBard - b _081206E0 -_081206CA: - bl SetupHipster - b _081206E0 -_081206D0: - bl sub_08120674 - b _081206E0 -_081206D6: - bl SafariHandleDrawPartyStatusSummary - b _081206E0 -_081206DC: - bl SetupGiddy -_081206E0: - bl ScrSpecial_SetMauvilleOldManEventObjGfx - pop {r0} - bx r0 - thumb_func_end SetMauvilleOldMan - - thumb_func_start sub_081206E8 -sub_081206E8: @ 0x081206E8 - ldr r0, _081206F4 - ldr r0, [r0] - ldr r1, _081206F8 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_081206F4: .4byte gUnknown_3005AEC -_081206F8: .4byte 0x00002E28 - thumb_func_end sub_081206E8 - - thumb_func_start ScrSpecial_GetCurrentMauvilleMan -ScrSpecial_GetCurrentMauvilleMan: @ 0x081206FC - push {r4, lr} - ldr r4, _08120710 - bl sub_081206E8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08120710: .4byte gUnknown_2037290 - thumb_func_end ScrSpecial_GetCurrentMauvilleMan - - thumb_func_start ScrSpecial_HasBardSongBeenChanged -ScrSpecial_HasBardSongBeenChanged: @ 0x08120714 - ldr r1, _08120724 - ldr r0, _08120728 - ldr r0, [r0] - ldr r2, _0812072C - adds r0, r0, r2 - ldrb r0, [r0] - strh r0, [r1] - bx lr - .align 2, 0 -_08120724: .4byte gUnknown_2037290 -_08120728: .4byte gUnknown_3005AEC -_0812072C: .4byte 0x00002E51 - thumb_func_end ScrSpecial_HasBardSongBeenChanged - - thumb_func_start ScrSpecial_SaveBardSongLyrics -ScrSpecial_SaveBardSongLyrics: @ 0x08120730 - push {r4, r5, r6, lr} - ldr r0, _0812078C - ldr r4, [r0] - ldr r0, _08120790 - adds r6, r4, r0 - ldr r1, _08120794 - adds r0, r4, r1 - ldr r5, _08120798 - ldr r1, [r5] - bl StringCopy - movs r2, #0 - ldr r0, _0812079C - adds r4, r4, r0 -_0812074C: - adds r1, r4, r2 - ldr r0, [r5] - adds r0, #0xa - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #3 - bls _0812074C - movs r2, #0 - adds r5, r6, #0 - adds r5, #0x29 - adds r3, r6, #2 - adds r4, r6, #0 - adds r4, #0xe -_0812076E: - lsls r0, r2, #1 - adds r1, r3, r0 - adds r0, r4, r0 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #5 - bls _0812076E - movs r0, #1 - strb r0, [r5] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0812078C: .4byte gUnknown_3005AEC -_08120790: .4byte 0x00002E28 -_08120794: .4byte 0x00002E42 -_08120798: .4byte gUnknown_3005AF0 -_0812079C: .4byte 0x00002E4D - thumb_func_end ScrSpecial_SaveBardSongLyrics - - thumb_func_start sub_081207A0 -sub_081207A0: @ 0x081207A0 - push {r4, r5, lr} - ldr r0, _0812080C - ldr r1, [r0] - ldr r0, _08120810 - ldrh r0, [r0] - ldr r2, _08120814 - adds r4, r1, r2 - cmp r0, #0 - bne _081207B6 - ldr r0, _08120818 - adds r4, r1, r0 -_081207B6: - ldr r2, _0812081C - movs r5, #0 -_081207BA: - ldrh r1, [r4] - adds r4, #2 - adds r0, r2, #0 - bl CopyEasyChatWord - adds r2, r0, #0 - movs r0, #0 - strb r0, [r2] - adds r2, #1 - ldrh r1, [r4] - adds r4, #2 - adds r0, r2, #0 - bl CopyEasyChatWord - adds r2, r0, #0 - movs r0, #0xfe - strb r0, [r2] - adds r2, #1 - ldrh r1, [r4] - adds r4, #2 - adds r0, r2, #0 - bl CopyEasyChatWord - adds r2, r0, #0 - cmp r5, #0 - bne _081207FA - movs r0, #0xfc - strb r0, [r2] - adds r2, #1 - movs r0, #0xf - strb r0, [r2] - adds r2, #1 -_081207FA: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #1 - bls _081207BA - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0812080C: .4byte gUnknown_3005AEC -_08120810: .4byte gUnknown_2037280 -_08120814: .4byte 0x00002E36 -_08120818: .4byte 0x00002E2A -_0812081C: .4byte gUnknown_2021C7C - thumb_func_end sub_081207A0 - - thumb_func_start ScrSpecial_PlayBardSong -ScrSpecial_PlayBardSong: @ 0x08120820 - push {lr} - ldr r0, _08120834 - ldrb r0, [r0] - bl StartBardSong - bl sub_080988B8 - pop {r0} - bx r0 - .align 2, 0 -_08120834: .4byte gUnknown_2037280 - thumb_func_end ScrSpecial_PlayBardSong - - thumb_func_start ScrSpecial_GetHipsterSpokenFlag -ScrSpecial_GetHipsterSpokenFlag: @ 0x08120838 - ldr r1, _08120848 - ldr r0, _0812084C - ldr r0, [r0] - ldr r2, _08120850 - adds r0, r0, r2 - ldrb r0, [r0, #1] - strh r0, [r1] - bx lr - .align 2, 0 -_08120848: .4byte gUnknown_2037290 -_0812084C: .4byte gUnknown_3005AEC -_08120850: .4byte 0x00002E28 - thumb_func_end ScrSpecial_GetHipsterSpokenFlag - - thumb_func_start ScrSpecial_SetHipsterSpokenFlag -ScrSpecial_SetHipsterSpokenFlag: @ 0x08120854 - ldr r0, _08120864 - ldr r0, [r0] - ldr r1, _08120868 - adds r0, r0, r1 - movs r1, #1 - strb r1, [r0, #1] - bx lr - .align 2, 0 -_08120864: .4byte gUnknown_3005AEC -_08120868: .4byte 0x00002E28 - thumb_func_end ScrSpecial_SetHipsterSpokenFlag - - thumb_func_start ScrSpecial_HipsterTeachWord -ScrSpecial_HipsterTeachWord: @ 0x0812086C - push {lr} - bl sub_0811F4FC - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r0, _08120884 - cmp r1, r0 - bne _0812088C - ldr r1, _08120888 - movs r0, #0 - b _08120896 - .align 2, 0 -_08120884: .4byte 0x0000FFFF -_08120888: .4byte gUnknown_2037290 -_0812088C: - ldr r0, _0812089C - bl CopyEasyChatWord - ldr r1, _081208A0 - movs r0, #1 -_08120896: - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0812089C: .4byte gUnknown_2021C40 -_081208A0: .4byte gUnknown_2037290 - thumb_func_end ScrSpecial_HipsterTeachWord - - thumb_func_start ScrSpecial_GiddyShouldTellAnotherTale -ScrSpecial_GiddyShouldTellAnotherTale: @ 0x081208A4 - push {lr} - ldr r0, _081208C0 - ldr r0, [r0] - ldr r1, _081208C4 - adds r2, r0, r1 - ldrb r0, [r2, #1] - cmp r0, #0xa - bne _081208CC - ldr r1, _081208C8 - movs r0, #0 - strh r0, [r1] - strb r0, [r2, #1] - b _081208D2 - .align 2, 0 -_081208C0: .4byte gUnknown_3005AEC -_081208C4: .4byte 0x00002E28 -_081208C8: .4byte gUnknown_2037290 -_081208CC: - ldr r1, _081208D8 - movs r0, #1 - strh r0, [r1] -_081208D2: - pop {r0} - bx r0 - .align 2, 0 -_081208D8: .4byte gUnknown_2037290 - thumb_func_end ScrSpecial_GiddyShouldTellAnotherTale - - thumb_func_start ScrSpecial_GenerateGiddyLine -ScrSpecial_GenerateGiddyLine: @ 0x081208DC - push {r4, r5, r6, lr} - ldr r0, _08120940 - ldr r4, [r0] - ldr r0, _08120944 - adds r5, r4, r0 - ldrb r0, [r5, #1] - cmp r0, #0 - bne _081208F0 - bl InitGiddyTaleList -_081208F0: - ldrb r0, [r5, #1] - lsls r0, r0, #1 - ldr r1, _08120948 - adds r6, r4, r1 - adds r0, r6, r0 - ldrh r1, [r0] - ldr r0, _0812094C - cmp r1, r0 - beq _08120960 - bl Random - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - movs r0, #7 - ands r4, r0 - ldr r0, _08120950 - ldrb r1, [r5, #1] - lsls r1, r1, #1 - adds r1, r6, r1 - ldrh r1, [r1] - bl CopyEasyChatWord - adds r2, r0, #0 - ldr r1, _08120954 - bl StringCopy - adds r2, r0, #0 - ldr r0, _08120958 - lsls r4, r4, #2 - adds r4, r4, r0 - ldr r1, [r4] - adds r0, r2, #0 - bl StringCopy - adds r2, r0, #0 - ldr r1, _0812095C - bl StringCopy - b _08120982 - .align 2, 0 -_08120940: .4byte gUnknown_3005AEC -_08120944: .4byte 0x00002E28 -_08120948: .4byte 0x00002E2C -_0812094C: .4byte 0x0000FFFF -_08120950: .4byte gUnknown_2021C7C -_08120954: .4byte gUnknown_825941C -_08120958: .4byte gUnknown_857AC14 -_0812095C: .4byte gUnknown_825941F -_08120960: - ldr r0, _0812099C - ldr r3, _081209A0 - ldrb r2, [r5, #2] - adds r1, r2, #1 - strb r1, [r5, #2] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r6, #0xb9 - lsls r6, r6, #6 - adds r1, r4, r6 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r1, [r1] - bl StringCopy -_08120982: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __umodsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _081209A4 - movs r0, #0xa - b _081209A8 - .align 2, 0 -_0812099C: .4byte gUnknown_2021C7C -_081209A0: .4byte gUnknown_857AC34 -_081209A4: - ldrb r0, [r5, #1] - adds r0, #1 -_081209A8: - strb r0, [r5, #1] - ldr r1, _081209B8 - movs r0, #1 - strh r0, [r1] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081209B8: .4byte gUnknown_2037290 - thumb_func_end ScrSpecial_GenerateGiddyLine - - thumb_func_start InitGiddyTaleList -InitGiddyTaleList: @ 0x081209BC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - ldr r0, _08120A8C - ldr r4, [r0] - ldr r0, _08120A90 - adds r0, r4, r0 - str r0, [sp, #0x18] - ldr r1, _08120A94 - mov r0, sp - movs r2, #0x18 - bl memcpy - movs r5, #0 - movs r1, #2 - add r1, sp - mov r8, r1 - movs r2, #0xb9 - lsls r2, r2, #6 - adds r3, r4, r2 - adds r1, r3, #0 -_081209EC: - adds r0, r3, r5 - strb r5, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #7 - bls _081209EC - movs r5, #0 - ldr r3, [sp, #0x18] - adds r3, #4 - mov sb, r3 - adds r6, r1, #0 -_08120A04: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r4, r5, #1 - adds r1, r4, #0 - bl __modsi3 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - adds r2, r6, r5 - ldrb r7, [r2] - adds r1, r6, r1 - ldrb r0, [r1] - strb r0, [r2] - strb r7, [r1] - lsls r4, r4, #0x10 - lsrs r5, r4, #0x10 - cmp r5, #7 - bls _08120A04 - movs r0, #0 - mov sl, r0 - movs r5, #0 -_08120A32: - lsls r4, r5, #2 - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - bl EasyChat_GetNumWordsInGroup - add r4, r8 - strh r0, [r4] - add r0, sl - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sl, r0 - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #5 - bls _08120A32 - movs r0, #0 - ldr r2, [sp, #0x18] - strb r0, [r2, #2] - movs r7, #0 - movs r5, #0 -_08120A5E: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #2 - bhi _08120A9C - cmp r7, #7 - bhi _08120A9C - lsls r0, r5, #1 - add r0, sb - ldr r1, _08120A98 - strh r1, [r0] - adds r0, r7, #1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - adds r4, r5, #1 - b _08120AEE - .align 2, 0 -_08120A8C: .4byte gUnknown_3005AEC -_08120A90: .4byte 0x00002E28 -_08120A94: .4byte gUnknown_857AC54 -_08120A98: .4byte 0x0000FFFF -_08120A9C: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r1, sl - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - movs r1, #0 - adds r4, r5, #1 - lsls r6, r5, #1 - cmp r5, #5 - bhi _08120AD8 - mov r3, r8 - ldrh r0, [r3] - b _08120ACE -_08120ABE: - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r5, #5 - bhi _08120AD8 - lsls r0, r1, #2 - adds r0, r3, r0 - ldrh r0, [r0] -_08120ACE: - subs r0, r2, r0 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r0, #0 - bgt _08120ABE -_08120AD8: - cmp r1, #6 - bne _08120ADE - movs r1, #0 -_08120ADE: - lsls r0, r1, #2 - add r0, sp - ldrh r0, [r0] - bl sub_0811F370 - mov r2, sb - adds r1, r2, r6 - strh r0, [r1] -_08120AEE: - lsls r0, r4, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #9 - bls _08120A5E - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end InitGiddyTaleList - - thumb_func_start sub_08120B08 -sub_08120B08: @ 0x08120B08 - ldr r0, _08120B18 - ldr r0, [r0] - ldr r1, _08120B1C - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - bx lr - .align 2, 0 -_08120B18: .4byte gUnknown_3005AEC -_08120B1C: .4byte 0x00002E51 - thumb_func_end sub_08120B08 - - thumb_func_start ResetHipsterFlag -ResetHipsterFlag: @ 0x08120B20 - ldr r0, _08120B30 - ldr r0, [r0] - ldr r1, _08120B34 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0, #1] - bx lr - .align 2, 0 -_08120B30: .4byte gUnknown_3005AEC -_08120B34: .4byte 0x00002E28 - thumb_func_end ResetHipsterFlag - - thumb_func_start sub_08120B38 -sub_08120B38: @ 0x08120B38 - push {lr} - bl sub_08133A94 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08120B38 - - thumb_func_start sub_08120B44 -sub_08120B44: @ 0x08120B44 - push {lr} - bl Storyteller_ResetFlag - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08120B44 - - thumb_func_start ResetMauvilleOldManFlag -ResetMauvilleOldManFlag: @ 0x08120B50 - push {lr} - bl sub_081206E8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _08120B96 - lsls r0, r0, #2 - ldr r1, _08120B68 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08120B68: .4byte _08120B6C -_08120B6C: @ jump table - .4byte _08120B80 @ case 0 - .4byte _08120B86 @ case 1 - .4byte _08120B92 @ case 2 - .4byte _08120B8C @ case 3 - .4byte _08120B96 @ case 4 -_08120B80: - bl sub_08120B08 - b _08120B96 -_08120B86: - bl ResetHipsterFlag - b _08120B96 -_08120B8C: - bl sub_08120B44 - b _08120B96 -_08120B92: - bl sub_08120B38 -_08120B96: - bl ScrSpecial_SetMauvilleOldManEventObjGfx - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ResetMauvilleOldManFlag - - thumb_func_start StartBardSong -StartBardSong: @ 0x08120BA0 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _08120BC8 - movs r1, #0x50 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08120BCC - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #0x12] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08120BC8: .4byte sub_08120C2C -_08120BCC: .4byte gUnknown_3005B60 - thumb_func_end StartBardSong - - thumb_func_start sub_08120BD0 -sub_08120BD0: @ 0x08120BD0 - ldr r1, _08120BD8 - movs r0, #0 - strb r0, [r1] - bx lr - .align 2, 0 -_08120BD8: .4byte gUnknown_3003024 - thumb_func_end sub_08120BD0 - - thumb_func_start sub_08120BDC -sub_08120BDC: @ 0x08120BDC - ldr r1, _08120BE4 - movs r0, #1 - strb r0, [r1] - bx lr - .align 2, 0 -_08120BE4: .4byte gUnknown_3003024 - thumb_func_end sub_08120BDC - - thumb_func_start sub_08120BE8 -sub_08120BE8: @ 0x08120BE8 - push {r4, r5, lr} - sub sp, #0xc - adds r5, r0, #0 - movs r0, #0 - movs r1, #0 - bl sub_08196FB8 - movs r0, #2 - str r0, [sp] - movs r4, #1 - str r4, [sp, #4] - ldr r0, _08120C24 - str r0, [sp, #8] - movs r0, #0 - movs r1, #1 - adds r2, r5, #0 - movs r3, #0 - bl AddTextPrinterParameterized - ldr r0, _08120C28 - strb r4, [r0] - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08120C24: .4byte sub_08120BDC -_08120C28: .4byte gUnknown_3003024 - thumb_func_end sub_08120BE8 - - thumb_func_start sub_08120C2C -sub_08120C2C: @ 0x08120C2C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _08120C50 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #5 - bls _08120C46 - b _08120E0C -_08120C46: - lsls r0, r0, #2 - ldr r1, _08120C54 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08120C50: .4byte gUnknown_3005B60 -_08120C54: .4byte _08120C58 -_08120C58: @ jump table - .4byte _08120C70 @ case 0 - .4byte _08120C94 @ case 1 - .4byte _08120CA4 @ case 2 - .4byte _08120D4E @ case 3 - .4byte _08120DFC @ case 4 - .4byte _08120D3E @ case 5 -_08120C70: - bl sub_081207A0 - ldr r0, _08120C90 - bl sub_08120BE8 - movs r0, #0 - strh r0, [r4, #0xa] - strh r0, [r4, #0xc] - strh r0, [r4, #0xe] - strh r0, [r4, #0x10] - movs r0, #4 - bl PlayBattleBGM - movs r0, #1 - b _08120E0A - .align 2, 0 -_08120C90: .4byte gUnknown_2021C7C -_08120C94: - bl IsBGMPausedOrStopped - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08120CA0 - b _08120E0C -_08120CA0: - movs r0, #2 - b _08120E0A -_08120CA4: - ldr r0, _08120CC4 - ldr r0, [r0] - ldr r2, _08120CC8 - adds r5, r0, r2 - movs r0, #0xe - ldrsh r1, [r4, r0] - ldr r0, _08120CCC - adds r1, r1, r0 - movs r3, #0 - ldrb r0, [r1] - ldrh r2, [r4, #0x12] - ldr r7, _08120CD0 - adds r6, r4, #0 - adds r6, #8 - b _08120CDE - .align 2, 0 -_08120CC4: .4byte gUnknown_3005AEC -_08120CC8: .4byte 0x00002E28 -_08120CCC: .4byte gUnknown_2021C7C -_08120CD0: .4byte gUnknown_2039DF4 -_08120CD4: - adds r1, #1 - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldrb r0, [r1] -_08120CDE: - cmp r0, #0 - beq _08120CEE - cmp r0, #0xfe - beq _08120CEE - cmp r0, #0xfc - beq _08120CEE - cmp r0, #0xff - bne _08120CD4 -_08120CEE: - cmp r2, #0 - bne _08120CFC - movs r2, #0x10 - ldrsh r1, [r4, r2] - lsls r1, r1, #1 - adds r0, r5, #2 - b _08120D06 -_08120CFC: - movs r0, #0x10 - ldrsh r1, [r4, r0] - lsls r1, r1, #1 - adds r0, r5, #0 - adds r0, #0xe -_08120D06: - adds r0, r0, r1 - ldrh r0, [r0] - movs r1, #3 - ands r1, r0 - lsrs r0, r0, #3 - movs r2, #1 - ands r0, r2 - adds r1, r1, r0 - strh r1, [r7] - ldrh r2, [r7] - adds r0, r6, #0 - adds r1, r3, #0 - bl sub_0817C69C - ldrh r0, [r4, #0x10] - adds r0, #1 - movs r1, #0 - strh r0, [r4, #0x10] - movs r2, #0xc - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _08120D36 - movs r0, #3 - b _08120D38 -_08120D36: - movs r0, #5 -_08120D38: - strh r0, [r4, #8] - strh r1, [r4, #0xa] - b _08120E0C -_08120D3E: - ldrh r1, [r4, #0xc] - movs r2, #0xc - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _08120E08 - subs r0, r1, #1 - strh r0, [r4, #0xc] - b _08120E0C -_08120D4E: - ldr r1, _08120D70 - movs r2, #0xe - ldrsh r0, [r4, r2] - adds r1, r0, r1 - ldrb r5, [r1] - cmp r5, #0xff - bne _08120D74 - movs r0, #6 - bl sub_080A2AF0 - bl EnableBothScriptContexts - adds r0, r6, #0 - bl DestroyTask - b _08120E0C - .align 2, 0 -_08120D70: .4byte gUnknown_2021C7C -_08120D74: - cmp r5, #0 - bne _08120D8A - bl sub_08120BD0 - ldrh r0, [r4, #0xe] - adds r0, #1 - strh r0, [r4, #0xe] - movs r0, #2 - strh r0, [r4, #8] - strh r5, [r4, #0xc] - b _08120E0C -_08120D8A: - cmp r5, #0xfe - bne _08120D9E - ldrh r0, [r4, #0xe] - adds r0, #1 - movs r1, #0 - strh r0, [r4, #0xe] - movs r0, #2 - strh r0, [r4, #8] - strh r1, [r4, #0xc] - b _08120E0C -_08120D9E: - cmp r5, #0xfc - bne _08120DB2 - ldrh r0, [r4, #0xe] - adds r0, #2 - strh r0, [r4, #0xe] - movs r0, #2 - strh r0, [r4, #8] - movs r0, #8 - strh r0, [r4, #0xc] - b _08120E0C -_08120DB2: - movs r2, #0xa - ldrsh r0, [r4, r2] - cmp r0, #1 - beq _08120DD0 - cmp r0, #1 - bgt _08120DC4 - cmp r0, #0 - beq _08120DCA - b _08120E0C -_08120DC4: - cmp r0, #2 - beq _08120DE2 - b _08120E0C -_08120DCA: - bl sub_08120BD0 - b _08120DDA -_08120DD0: - adds r0, r4, #0 - adds r0, #8 - ldrb r1, [r1] - bl sub_0817C6B0 -_08120DDA: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - b _08120E0C -_08120DE2: - adds r0, r4, #0 - adds r0, #8 - bl sub_0817C704 - ldrh r0, [r4, #0xe] - adds r0, #1 - movs r1, #0 - strh r0, [r4, #0xe] - strh r1, [r4, #0xa] - movs r0, #0x10 - strh r0, [r4, #0xc] - movs r0, #4 - b _08120E0A -_08120DFC: - ldrh r0, [r4, #0xc] - subs r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08120E0C -_08120E08: - movs r0, #3 -_08120E0A: - strh r0, [r4, #8] -_08120E0C: - bl RunTextPrintersAndIsPrinter0Active - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08120C2C - - thumb_func_start ScrSpecial_SetMauvilleOldManEventObjGfx -ScrSpecial_SetMauvilleOldManEventObjGfx: @ 0x08120E18 - push {lr} - ldr r0, _08120E28 - movs r1, #0x45 - bl VarSet - pop {r0} - bx r0 - .align 2, 0 -_08120E28: .4byte 0x00004010 - thumb_func_end ScrSpecial_SetMauvilleOldManEventObjGfx - - thumb_func_start sub_08120E2C -sub_08120E2C: @ 0x08120E2C - push {r4, r5, r6, lr} - ldrb r1, [r0] - cmp r1, #2 - beq _08120E3A - cmp r1, #3 - beq _08120E64 - b _08120E86 -_08120E3A: - adds r6, r0, #0 - movs r5, #0 -_08120E3E: - movs r0, #0xb - muls r0, r5, r0 - adds r0, #5 - adds r4, r6, r0 - adds r0, r4, #0 - bl IsStringJapanese - cmp r0, #0 - beq _08120E58 - adds r0, r4, #0 - ldr r1, _08120E60 - bl StringCopy -_08120E58: - adds r5, #1 - cmp r5, #3 - ble _08120E3E - b _08120E86 - .align 2, 0 -_08120E60: .4byte gUnknown_85CCEC5 -_08120E64: - adds r4, r0, #0 - adds r4, #8 - movs r5, #3 -_08120E6A: - adds r0, r4, #0 - bl IsStringJapanese - cmp r0, #0 - beq _08120E7E - adds r0, r4, #0 - ldr r1, _08120E8C - movs r2, #7 - bl StringCopyN -_08120E7E: - adds r4, #7 - subs r5, #1 - cmp r5, #0 - bge _08120E6A -_08120E86: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08120E8C: .4byte gUnknown_85CCEC5 - thumb_func_end sub_08120E2C - - thumb_func_start sub_08120E90 -sub_08120E90: @ 0x08120E90 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - mov r8, r1 - adds r7, r2, #0 - ldrb r0, [r5] - cmp r0, #4 - bhi _08120F48 - lsls r0, r0, #2 - ldr r1, _08120EAC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08120EAC: .4byte _08120EB0 -_08120EB0: @ jump table - .4byte _08120F16 @ case 0 - .4byte _08120F26 @ case 1 - .4byte _08120EC4 @ case 2 - .4byte _08120EEE @ case 3 - .4byte _08120F34 @ case 4 -_08120EC4: - adds r6, r5, #0 - movs r5, #0 - adds r4, r6, #0 - adds r4, #0x32 -_08120ECC: - movs r0, #0xb - muls r0, r5, r0 - adds r0, #5 - adds r0, r6, r0 - bl IsStringJapanese - cmp r0, #0 - beq _08120EE2 - mov r0, r8 - strb r0, [r4] - b _08120EE4 -_08120EE2: - strb r7, [r4] -_08120EE4: - adds r4, #1 - adds r5, #1 - cmp r5, #3 - ble _08120ECC - b _08120F48 -_08120EEE: - adds r4, r5, #0 - adds r4, #0x34 - adds r6, r5, #0 - adds r6, #8 - movs r5, #3 -_08120EF8: - adds r0, r6, #0 - bl IsStringJapanese - cmp r0, #0 - beq _08120F08 - mov r1, r8 - strb r1, [r4] - b _08120F0A -_08120F08: - strb r7, [r4] -_08120F0A: - adds r4, #1 - adds r6, #7 - subs r5, #1 - cmp r5, #0 - bge _08120EF8 - b _08120F48 -_08120F16: - cmp r3, #1 - bne _08120F20 - adds r0, r5, #0 - adds r0, #0x2a - b _08120F3C -_08120F20: - adds r0, r5, #0 - adds r0, #0x2a - b _08120F46 -_08120F26: - cmp r3, #1 - bne _08120F30 - mov r0, r8 - strb r0, [r5, #2] - b _08120F48 -_08120F30: - strb r7, [r5, #2] - b _08120F48 -_08120F34: - cmp r3, #1 - bne _08120F42 - adds r0, r5, #0 - adds r0, #0x20 -_08120F3C: - mov r1, r8 - strb r1, [r0] - b _08120F48 -_08120F42: - adds r0, r5, #0 - adds r0, #0x20 -_08120F46: - strb r7, [r0] -_08120F48: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08120E90 - - thumb_func_start StorytellerSetup -StorytellerSetup: @ 0x08120F54 - push {r4, r5, lr} - ldr r2, _08120F90 - ldr r0, _08120F94 - ldr r0, [r0] - ldr r1, _08120F98 - adds r0, r0, r1 - str r0, [r2] - movs r3, #0 - movs r1, #3 - strb r1, [r0] - ldr r0, [r2] - strb r3, [r0, #1] - movs r5, #0 - movs r4, #0xff -_08120F70: - ldr r0, [r2] - adds r0, #4 - adds r0, r0, r3 - strb r5, [r0] - ldr r1, [r2] - adds r1, #8 - adds r1, r1, r3 - ldrb r0, [r1] - orrs r0, r4 - strb r0, [r1] - adds r3, #1 - cmp r3, #3 - ble _08120F70 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08120F90: .4byte gUnknown_2039DF8 -_08120F94: .4byte gUnknown_3005AEC -_08120F98: .4byte 0x00002E28 - thumb_func_end StorytellerSetup - - thumb_func_start Storyteller_ResetFlag -Storyteller_ResetFlag: @ 0x08120F9C - ldr r3, _08120FB4 - ldr r0, _08120FB8 - ldr r0, [r0] - ldr r1, _08120FBC - adds r0, r0, r1 - str r0, [r3] - movs r2, #0 - movs r1, #3 - strb r1, [r0] - ldr r0, [r3] - strb r2, [r0, #1] - bx lr - .align 2, 0 -_08120FB4: .4byte gUnknown_2039DF8 -_08120FB8: .4byte gUnknown_3005AEC -_08120FBC: .4byte 0x00002E28 - thumb_func_end Storyteller_ResetFlag - - thumb_func_start StorytellerGetGameStat -StorytellerGetGameStat: @ 0x08120FC0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x32 - bne _08120FCC - movs r0, #0 -_08120FCC: - bl GetGameStat - pop {r1} - bx r1 - thumb_func_end StorytellerGetGameStat - - thumb_func_start GetStoryByStat -GetStoryByStat: @ 0x08120FD4 - push {lr} - adds r3, r0, #0 - movs r2, #0 - ldr r1, _08120FE8 -_08120FDC: - ldrb r0, [r1] - cmp r0, r3 - bne _08120FEC - adds r0, r1, #0 - b _08120FF6 - .align 2, 0 -_08120FE8: .4byte gUnknown_857AC6C -_08120FEC: - adds r1, #0x10 - adds r2, #1 - cmp r2, #0x23 - ble _08120FDC - ldr r0, _08120FFC -_08120FF6: - pop {r1} - bx r1 - .align 2, 0 -_08120FFC: .4byte gUnknown_857AE9C - thumb_func_end GetStoryByStat - - thumb_func_start GetStoryTitleByStat -GetStoryTitleByStat: @ 0x08121000 - push {lr} - bl GetStoryByStat - ldr r0, [r0, #4] - pop {r1} - bx r1 - thumb_func_end GetStoryTitleByStat - - thumb_func_start GetStoryTextByStat -GetStoryTextByStat: @ 0x0812100C - push {lr} - bl GetStoryByStat - ldr r0, [r0, #0xc] - pop {r1} - bx r1 - thumb_func_end GetStoryTextByStat - - thumb_func_start GetStoryActionByStat -GetStoryActionByStat: @ 0x08121018 - push {lr} - bl GetStoryByStat - ldr r0, [r0, #8] - pop {r1} - bx r1 - thumb_func_end GetStoryActionByStat - - thumb_func_start GetFreeStorySlot -GetFreeStorySlot: @ 0x08121024 - push {lr} - movs r1, #0 - ldr r2, _08121050 - ldr r0, [r2] - ldrb r0, [r0, #4] - cmp r0, #0 - beq _08121048 -_08121032: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #3 - bhi _08121048 - ldr r0, [r2] - adds r0, #4 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _08121032 -_08121048: - adds r0, r1, #0 - pop {r1} - bx r1 - .align 2, 0 -_08121050: .4byte gUnknown_2039DF8 - thumb_func_end GetFreeStorySlot - - thumb_func_start StorytellerGetRecordedTrainerStat -StorytellerGetRecordedTrainerStat: @ 0x08121054 - ldr r1, _08121074 - lsls r0, r0, #2 - adds r0, #0x24 - ldr r2, [r1] - adds r2, r2, r0 - ldrb r0, [r2] - ldrb r1, [r2, #1] - lsls r1, r1, #8 - orrs r0, r1 - ldrb r1, [r2, #2] - lsls r1, r1, #0x10 - orrs r0, r1 - ldrb r1, [r2, #3] - lsls r1, r1, #0x18 - orrs r0, r1 - bx lr - .align 2, 0 -_08121074: .4byte gUnknown_2039DF8 - thumb_func_end StorytellerGetRecordedTrainerStat - - thumb_func_start StorytellerSetRecordedTrainerStat -StorytellerSetRecordedTrainerStat: @ 0x08121078 - ldr r2, _08121094 - lsls r0, r0, #2 - adds r0, #0x24 - ldr r2, [r2] - adds r2, r2, r0 - strb r1, [r2] - lsrs r0, r1, #8 - strb r0, [r2, #1] - lsrs r0, r1, #0x10 - strb r0, [r2, #2] - lsrs r1, r1, #0x18 - strb r1, [r2, #3] - bx lr - .align 2, 0 -_08121094: .4byte gUnknown_2039DF8 - thumb_func_end StorytellerSetRecordedTrainerStat - - thumb_func_start HasTrainerStatIncreased -HasTrainerStatIncreased: @ 0x08121098 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _081210BC - ldr r0, [r0] - adds r0, #4 - adds r0, r0, r5 - ldrb r0, [r0] - bl StorytellerGetGameStat - adds r4, r0, #0 - adds r0, r5, #0 - bl StorytellerGetRecordedTrainerStat - cmp r4, r0 - bhi _081210C0 - movs r0, #0 - b _081210C2 - .align 2, 0 -_081210BC: .4byte gUnknown_2039DF8 -_081210C0: - movs r0, #1 -_081210C2: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end HasTrainerStatIncreased - - thumb_func_start GetStoryByStattellerPlayerName -GetStoryByStattellerPlayerName: @ 0x081210C8 - push {r4, r5, lr} - adds r5, r1, #0 - ldr r2, _081210F4 - lsls r1, r0, #3 - subs r1, r1, r0 - adds r1, #8 - ldr r4, [r2] - adds r4, r4, r1 - adds r0, r5, #0 - movs r1, #0xff - movs r2, #8 - bl memset - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #7 - bl memcpy - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081210F4: .4byte gUnknown_2039DF8 - thumb_func_end GetStoryByStattellerPlayerName - - thumb_func_start StorytellerSetPlayerName -StorytellerSetPlayerName: @ 0x081210F8 - push {r4, r5, lr} - adds r5, r1, #0 - ldr r2, _08121124 - lsls r1, r0, #3 - subs r1, r1, r0 - adds r1, #8 - ldr r4, [r2] - adds r4, r4, r1 - adds r0, r4, #0 - movs r1, #0xff - movs r2, #7 - bl memset - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #7 - bl memcpy - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08121124: .4byte gUnknown_2039DF8 - thumb_func_end StorytellerSetPlayerName - - thumb_func_start StorytellerRecordNewStat -StorytellerRecordNewStat: @ 0x08121128 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - mov r8, r0 - adds r6, r1, #0 - ldr r0, _0812119C - mov sb, r0 - ldr r0, [r0] - adds r0, #4 - add r0, r8 - strb r6, [r0] - ldr r0, _081211A0 - ldr r1, [r0] - mov r0, r8 - bl StorytellerSetPlayerName - lsls r4, r6, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl StorytellerGetGameStat - adds r1, r0, #0 - mov r0, r8 - bl StorytellerSetRecordedTrainerStat - ldr r5, _081211A4 - adds r0, r4, #0 - bl StorytellerGetGameStat - adds r1, r0, #0 - adds r0, r5, #0 - movs r2, #0 - movs r3, #0xa - bl sub_080089D8 - ldr r4, _081211A8 - adds r0, r6, #0 - bl GetStoryActionByStat - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCopy - mov r1, sb - ldr r0, [r1] - adds r0, #0x34 - add r0, r8 - ldr r1, _081211AC - ldrb r1, [r1] - strb r1, [r0] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0812119C: .4byte gUnknown_2039DF8 -_081211A0: .4byte gUnknown_3005AF0 -_081211A4: .4byte gUnknown_2021C40 -_081211A8: .4byte gUnknown_2021C54 -_081211AC: .4byte gUnknown_829BDA5 - thumb_func_end StorytellerRecordNewStat - - thumb_func_start ScrambleStatList -ScrambleStatList: @ 0x081211B0 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r6, r1, #0 - movs r5, #0 - cmp r5, r6 - bge _081211C6 -_081211BC: - adds r0, r7, r5 - strb r5, [r0] - adds r5, #1 - cmp r5, r6 - blt _081211BC -_081211C6: - cmp r6, #0 - ble _081211FC - adds r5, r6, #0 -_081211CC: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r6, #0 - bl __modsi3 - adds r4, r0, #0 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - 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, #1 - cmp r5, #0 - bne _081211CC -_081211FC: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ScrambleStatList - - thumb_func_start StorytellerInitializeRandomStat -StorytellerInitializeRandomStat: @ 0x08121204 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov r7, sp - mov r8, sp - ldr r0, _0812128C - ldr r0, [r0] - lsls r0, r0, #3 - lsrs r0, r0, #3 - adds r0, #3 - lsrs r0, r0, #2 - lsls r0, r0, #2 - mov r1, sp - subs r1, r1, r0 - mov sp, r1 - mov sb, sp - mov r0, sp - movs r1, #0x24 - bl ScrambleStatList - movs r5, #0 -_08121230: - ldr r1, _08121290 - mov r2, sb - adds r0, r2, r5 - ldrb r0, [r0] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrb r4, [r0] - ldrb r6, [r0, #1] - movs r1, #0 - ldr r2, _08121294 - ldr r0, [r2] - ldrb r0, [r0, #4] - cmp r0, r4 - beq _0812125E -_0812124C: - adds r1, #1 - cmp r1, #3 - bgt _0812125E - ldr r0, [r2] - adds r0, #4 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, r4 - bne _0812124C -_0812125E: - cmp r1, #4 - bne _081212AE - adds r0, r4, #0 - bl StorytellerGetGameStat - cmp r0, r6 - blo _081212AE - ldr r0, _08121294 - ldr r1, [r0] - movs r0, #1 - strb r0, [r1, #1] - bl GetFreeStorySlot - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bne _0812129C - ldr r0, _08121298 - ldrb r0, [r0] - adds r1, r4, #0 - bl StorytellerRecordNewStat - b _081212AA - .align 2, 0 -_0812128C: .4byte gUnknown_857AEAC -_08121290: .4byte gUnknown_857AC6C -_08121294: .4byte gUnknown_2039DF8 -_08121298: .4byte gUnknown_3001178 -_0812129C: - bl GetFreeStorySlot - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r4, #0 - bl StorytellerRecordNewStat -_081212AA: - movs r0, #1 - b _081212B6 -_081212AE: - adds r5, #1 - cmp r5, #0x23 - ble _08121230 - movs r0, #0 -_081212B6: - mov sp, r8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end StorytellerInitializeRandomStat - - thumb_func_start sub_081212C4 -sub_081212C4: @ 0x081212C4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r0, _08121310 - ldr r0, [r0] - adds r0, #4 - adds r0, r0, r5 - ldrb r6, [r0] - ldr r4, _08121314 - adds r0, r5, #0 - bl StorytellerGetRecordedTrainerStat - adds r1, r0, #0 - adds r0, r4, #0 - movs r2, #0 - movs r3, #0xa - bl sub_080089D8 - ldr r4, _08121318 - adds r0, r6, #0 - bl GetStoryActionByStat - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCopy - ldr r1, _0812131C - adds r0, r5, #0 - bl GetStoryByStattellerPlayerName - adds r0, r6, #0 - bl GetStoryTextByStat - bl ShowFieldMessage - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08121310: .4byte gUnknown_2039DF8 -_08121314: .4byte gUnknown_2021C40 -_08121318: .4byte gUnknown_2021C54 -_0812131C: .4byte gUnknown_2021C68 - thumb_func_end sub_081212C4 - - thumb_func_start Task_Dive -Task_Dive: @ 0x08121320 - push {r4, r5, lr} - sub sp, #0xc - bl GetFreeStorySlot - adds r3, r0, #0 - lsls r3, r3, #0x19 - movs r0, #0x80 - lsls r0, r0, #0x12 - adds r3, r3, r0 - lsrs r3, r3, #0x18 - movs r0, #0 - movs r1, #0 - movs r2, #0x17 - bl CreateWindowFromRect - ldr r1, _081213E0 - strb r0, [r1] - ldrb r0, [r1] - movs r1, #0 - bl SetStandardWindowBorderStyle - movs r5, #0 - ldr r0, _081213E4 - ldr r0, [r0] - ldrb r0, [r0, #4] - cmp r0, #0 - beq _08121392 - movs r4, #0x80 - lsls r4, r4, #0x12 -_0812135A: - bl GetStoryTitleByStat - adds r2, r0, #0 - ldr r0, _081213E0 - ldrb r0, [r0] - lsrs r1, r4, #0x18 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - movs r3, #0xa - bl AddTextPrinterParameterized - movs r0, #0x80 - lsls r0, r0, #0x15 - adds r4, r4, r0 - adds r5, #1 - cmp r5, #3 - bgt _08121392 - ldr r0, _081213E4 - ldr r0, [r0] - adds r0, #4 - adds r0, r0, r5 - ldrb r0, [r0] - cmp r0, #0 - bne _0812135A -_08121392: - ldr r4, _081213E0 - ldrb r0, [r4] - ldr r2, _081213E8 - lsls r1, r5, #4 - adds r1, #2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r5, #0 - str r5, [sp, #8] - movs r1, #1 - movs r3, #0xa - bl AddTextPrinterParameterized - bl GetFreeStorySlot - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r4] - str r0, [sp] - str r5, [sp, #4] - adds r0, r1, #0 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl sub_081984F0 - ldrb r0, [r4] - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081213E0: .4byte gUnknown_2039DFC -_081213E4: .4byte gUnknown_2039DF8 -_081213E8: .4byte gUnknown_85CB1B9 - thumb_func_end Task_Dive - - thumb_func_start Task_StoryListMenu -Task_StoryListMenu: @ 0x081213EC - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _0812140C - adds r4, r0, r1 - movs r0, #8 - ldrsh r5, [r4, r0] - cmp r5, #0 - beq _08121410 - cmp r5, #1 - beq _0812141C - b _08121466 - .align 2, 0 -_0812140C: .4byte gUnknown_3005B60 -_08121410: - bl Task_Dive - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _08121466 -_0812141C: - bl Menu_ProcessInput - lsls r0, r0, #0x18 - asrs r4, r0, #0x18 - movs r0, #2 - rsbs r0, r0, #0 - cmp r4, r0 - beq _08121466 - adds r0, #1 - cmp r4, r0 - beq _0812143E - bl GetFreeStorySlot - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - bne _0812144C -_0812143E: - ldr r1, _08121448 - movs r0, #0 - strh r0, [r1] - b _08121454 - .align 2, 0 -_08121448: .4byte gUnknown_2037290 -_0812144C: - ldr r0, _0812146C - strh r5, [r0] - ldr r0, _08121470 - strb r4, [r0] -_08121454: - ldr r0, _08121474 - ldrb r0, [r0] - bl sub_080E1F6C - adds r0, r6, #0 - bl DestroyTask - bl EnableBothScriptContexts -_08121466: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0812146C: .4byte gUnknown_2037290 -_08121470: .4byte gUnknown_3001178 -_08121474: .4byte gUnknown_2039DFC - thumb_func_end Task_StoryListMenu - - thumb_func_start ScrSpecial_StorytellerStoryListMenu -ScrSpecial_StorytellerStoryListMenu: @ 0x08121478 - push {lr} - ldr r0, _08121488 - movs r1, #0x50 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_08121488: .4byte Task_StoryListMenu - thumb_func_end ScrSpecial_StorytellerStoryListMenu - - thumb_func_start sub_0812148C -sub_0812148C: @ 0x0812148C - push {lr} - ldr r0, _0812149C - ldrb r0, [r0] - bl sub_081212C4 - pop {r0} - bx r0 - .align 2, 0 -_0812149C: .4byte gUnknown_3001178 - thumb_func_end sub_0812148C - - thumb_func_start sub_081214A0 -sub_081214A0: @ 0x081214A0 - push {lr} - ldr r1, _081214BC - ldr r0, _081214C0 - ldr r0, [r0] - ldr r2, _081214C4 - adds r0, r0, r2 - str r0, [r1] - bl GetFreeStorySlot - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_081214BC: .4byte gUnknown_2039DF8 -_081214C0: .4byte gUnknown_3005AEC -_081214C4: .4byte 0x00002E28 - thumb_func_end sub_081214A0 - - thumb_func_start ScrSpecial_StorytellerUpdateStat -ScrSpecial_StorytellerUpdateStat: @ 0x081214C8 - push {r4, r5, lr} - ldr r2, _081214F0 - ldr r0, _081214F4 - ldr r1, [r0] - ldr r3, _081214F8 - adds r0, r1, r3 - str r0, [r2] - ldr r5, _081214FC - ldrb r0, [r5] - ldr r2, _08121500 - adds r1, r1, r2 - adds r1, r1, r0 - ldrb r4, [r1] - bl HasTrainerStatIncreased - cmp r0, #1 - beq _08121504 - movs r0, #0 - b _0812150E - .align 2, 0 -_081214F0: .4byte gUnknown_2039DF8 -_081214F4: .4byte gUnknown_3005AEC -_081214F8: .4byte 0x00002E28 -_081214FC: .4byte gUnknown_3001178 -_08121500: .4byte 0x00002E2C -_08121504: - ldrb r0, [r5] - adds r1, r4, #0 - bl StorytellerRecordNewStat - movs r0, #1 -_0812150E: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end ScrSpecial_StorytellerUpdateStat - - thumb_func_start ScrSpecial_HasStorytellerAlreadyRecorded -ScrSpecial_HasStorytellerAlreadyRecorded: @ 0x08121514 - push {lr} - ldr r1, _0812152C - ldr r0, _08121530 - ldr r0, [r0] - ldr r2, _08121534 - adds r0, r0, r2 - str r0, [r1] - ldrb r0, [r0, #1] - cmp r0, #0 - beq _08121538 - movs r0, #1 - b _0812153A - .align 2, 0 -_0812152C: .4byte gUnknown_2039DF8 -_08121530: .4byte gUnknown_3005AEC -_08121534: .4byte 0x00002E28 -_08121538: - movs r0, #0 -_0812153A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScrSpecial_HasStorytellerAlreadyRecorded - - thumb_func_start sub_08121540 -sub_08121540: @ 0x08121540 - push {lr} - ldr r1, _0812155C - ldr r0, _08121560 - ldr r0, [r0] - ldr r2, _08121564 - adds r0, r0, r2 - str r0, [r1] - bl StorytellerInitializeRandomStat - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0812155C: .4byte gUnknown_2039DF8 -_08121560: .4byte gUnknown_3005AEC -_08121564: .4byte 0x00002E28 - thumb_func_end sub_08121540 - - thumb_func_start sub_08121568 -sub_08121568: @ 0x08121568 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r5, r0, #0 - adds r7, r1, #0 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - ldr r4, _081215B4 - ldr r0, _081215B8 - bl AllocZeroed - str r0, [r4] - adds r0, #0xdd - movs r3, #0 - movs r1, #1 - strb r1, [r0] - ldr r0, [r4] - adds r0, #0xde - strb r3, [r0] - ldr r2, [r4] - adds r1, r2, #0 - adds r1, #0xe0 - ldr r0, _081215BC - str r0, [r1] - adds r1, #4 - ldr r0, _081215C0 - str r0, [r1] - ldrh r1, [r5, #0x20] - adds r0, r1, #0 - subs r0, #0x79 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xb - bhi _081215C4 - subs r1, #0x79 - adds r0, r2, #0 - adds r0, #0xda - strb r1, [r0] - b _081215CC - .align 2, 0 -_081215B4: .4byte gUnknown_2039E00 -_081215B8: .4byte 0x000020EC -_081215BC: .4byte CopyEasyChatWord -_081215C0: .4byte ConvertEasyChatWordsToString -_081215C4: - adds r0, r2, #0 - adds r0, #0xda - strb r3, [r0] - movs r6, #0 -_081215CC: - ldr r0, _081215EC - ldr r0, [r0] - adds r1, r0, #0 - adds r1, #0xde - ldrb r1, [r1] - cmp r1, #0 - beq _081215DE - cmp r1, #1 - beq _081215F4 -_081215DE: - adds r2, r0, #0 - adds r2, #0xe8 - adds r0, #0xda - ldrb r0, [r0] - lsls r0, r0, #3 - ldr r1, _081215F0 - b _08121600 - .align 2, 0 -_081215EC: .4byte gUnknown_2039E00 -_081215F0: .4byte gUnknown_857AFE0 -_081215F4: - adds r2, r0, #0 - adds r2, #0xe8 - adds r0, #0xda - ldrb r0, [r0] - lsls r0, r0, #3 - ldr r1, _08121638 -_08121600: - adds r0, r0, r1 - str r0, [r2] - ldrh r0, [r5, #0x1e] - mov r1, sp - bl MailSpeciesToSpecies - lsls r0, r0, #0x10 - ldr r1, _0812163C - adds r0, r0, r1 - movs r1, #0xcd - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _08121654 - ldr r0, _08121640 - ldr r1, [r0] - adds r2, r1, #0 - adds r2, #0xda - ldrb r2, [r2] - adds r3, r0, #0 - cmp r2, #6 - beq _08121644 - cmp r2, #9 - beq _0812164C - adds r1, #0xdb - movs r0, #0 - strb r0, [r1] - b _08121660 - .align 2, 0 -_08121638: .4byte gUnknown_857B054 -_0812163C: .4byte 0xFFFF0000 -_08121640: .4byte gUnknown_2039E00 -_08121644: - adds r1, #0xdb - movs r0, #1 - strb r0, [r1] - b _08121660 -_0812164C: - adds r1, #0xdb - movs r0, #2 - strb r0, [r1] - b _08121660 -_08121654: - ldr r0, _08121680 - ldr r1, [r0] - adds r1, #0xdb - movs r2, #0 - strb r2, [r1] - adds r3, r0, #0 -_08121660: - ldr r1, [r3] - adds r0, r1, #0 - adds r0, #0xd4 - str r5, [r0] - subs r0, #8 - str r7, [r0] - adds r0, #0xc - strb r6, [r0] - ldr r0, _08121684 - bl SetMainCallback2 - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08121680: .4byte gUnknown_2039E00 -_08121684: .4byte CB2_InitMailRead - thumb_func_end sub_08121568 - - thumb_func_start MailReadBuildGraphics -MailReadBuildGraphics: @ 0x08121688 - push {r4, r5, r6, lr} - sub sp, #0xc - ldr r0, _081216A8 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0x12 - bls _0812169C - b _08121A52 -_0812169C: - lsls r0, r0, #2 - ldr r1, _081216AC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081216A8: .4byte gUnknown_3002360 -_081216AC: .4byte _081216B0 -_081216B0: @ jump table - .4byte _081216FC @ case 0 - .4byte _0812170A @ case 1 - .4byte _08121724 @ case 2 - .4byte _0812172A @ case 3 - .4byte _08121730 @ case 4 - .4byte _08121736 @ case 5 - .4byte _08121790 @ case 6 - .4byte _081217C8 @ case 7 - .4byte _081217D8 @ case 8 - .4byte _08121808 @ case 9 - .4byte _08121816 @ case 10 - .4byte _08121864 @ case 11 - .4byte _08121878 @ case 12 - .4byte _08121938 @ case 13 - .4byte _08121950 @ case 14 - .4byte _0812196C @ case 15 - .4byte _08121976 @ case 16 - .4byte _08121990 @ case 17 - .4byte _081219F4 @ case 18 -_081216FC: - movs r0, #0 - bl SetVBlankCallback - bl ScanlineEffect_Stop - movs r0, #0 - b _08121788 -_0812170A: - add r1, sp, #8 - movs r0, #0 - strh r0, [r1] - movs r1, #0xe0 - lsls r1, r1, #0x13 - ldr r2, _08121720 - add r0, sp, #8 - bl CpuSet - b _08121A44 - .align 2, 0 -_08121720: .4byte 0x01000200 -_08121724: - bl ResetPaletteFade - b _08121A44 -_0812172A: - bl ResetTasks - b _08121A44 -_08121730: - bl ResetSpriteData - b _08121A44 -_08121736: - bl FreeAllSpritePalettes - bl reset_temp_tile_data_buffers - movs r0, #0x10 - movs r1, #0 - bl SetGpuReg - movs r0, #0x12 - movs r1, #0 - bl SetGpuReg - movs r0, #0x14 - movs r1, #0 - bl SetGpuReg - movs r0, #0x16 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1a - movs r1, #0 - bl SetGpuReg - movs r0, #0x18 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1c - movs r1, #0 - bl SetGpuReg - movs r0, #0x1e - movs r1, #0 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 -_08121788: - movs r1, #0 - bl SetGpuReg - b _08121A44 -_08121790: - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _081217BC - movs r0, #0 - movs r2, #3 - bl InitBgsFromTemplates - ldr r4, _081217C0 - ldr r1, [r4] - adds r1, #0xec - movs r0, #1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, _081217C4 - adds r1, r1, r0 - movs r0, #2 - bl SetBgTilemapBuffer - b _08121A44 - .align 2, 0 -_081217BC: .4byte gUnknown_857AEB4 -_081217C0: .4byte gUnknown_2039E00 -_081217C4: .4byte 0x000010EC -_081217C8: - ldr r0, _081217D4 - bl InitWindows - bl sub_08004480 - b _08121A44 - .align 2, 0 -_081217D4: .4byte gUnknown_857AEC0 -_081217D8: - ldr r2, _08121800 - ldr r0, _08121804 - ldr r0, [r0] - adds r0, #0xda - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #4 - adds r0, r0, r2 - ldr r1, [r0] - movs r0, #0 - str r0, [sp] - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - b _08121A44 - .align 2, 0 -_08121800: .4byte gUnknown_857AEE4 -_08121804: .4byte gUnknown_2039E00 -_08121808: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08121814 - b _08121A44 -_08121814: - b _08121A52 -_08121816: - movs r5, #0x1e - str r5, [sp] - movs r4, #0x14 - str r4, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - str r5, [sp] - str r4, [sp, #4] - movs r0, #2 - movs r1, #1 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - ldr r2, _0812185C - ldr r0, _08121860 - ldr r0, [r0] - adds r0, #0xda - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #8 - adds r0, r0, r2 - ldr r1, [r0] - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - b _08121A44 - .align 2, 0 -_0812185C: .4byte gUnknown_857AEE4 -_08121860: .4byte gUnknown_2039E00 -_08121864: - movs r0, #0 - bl CopyBgTilemapBufferToVram - movs r0, #1 - bl CopyBgTilemapBufferToVram - movs r0, #2 - bl CopyBgTilemapBufferToVram - b _08121A44 -_08121878: - bl sub_080985EC - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - ldr r6, _08121920 - ldr r4, _08121924 - ldr r0, _08121928 - ldr r3, [r0] - adds r3, #0xda - ldrb r1, [r3] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r0, #0x10] - movs r2, #0xfa - lsls r2, r2, #1 - adds r0, r6, r2 - strh r1, [r0] - ldr r5, _0812192C - ldrb r1, [r3] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r0, [r0, #0x10] - adds r2, r5, r2 - strh r0, [r2] - ldrb r1, [r3] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r0, #0x12] - movs r2, #0xfb - lsls r2, r2, #1 - adds r0, r6, r2 - strh r1, [r0] - ldrb r1, [r3] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r0, [r0, #0x12] - adds r2, r5, r2 - strh r0, [r2] - ldrb r1, [r3] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r0, [r0] - movs r1, #0 - movs r2, #0x20 - bl LoadPalette - ldr r1, _08121930 - ldr r0, _08121934 - ldr r2, [r0] - ldrb r0, [r2, #8] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r6, #0x14] - ldrb r0, [r2, #8] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r5, #0x14] - ldrb r0, [r2, #8] - lsls r0, r0, #2 - adds r1, #2 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r6, #0x16] - ldrb r0, [r2, #8] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r5, #0x16] - b _08121A44 - .align 2, 0 -_08121920: .4byte gUnknown_20373B4 -_08121924: .4byte gUnknown_857AEE4 -_08121928: .4byte gUnknown_2039E00 -_0812192C: .4byte gUnknown_20377B4 -_08121930: .4byte gUnknown_857AEDC -_08121934: .4byte gUnknown_3005AF0 -_08121938: - ldr r0, _0812194C - ldr r0, [r0] - adds r0, #0xd8 - ldrb r0, [r0] - cmp r0, #0 - bne _08121946 - b _08121A44 -_08121946: - bl sub_08121A8C - b _08121A44 - .align 2, 0 -_0812194C: .4byte gUnknown_2039E00 -_08121950: - ldr r0, _08121968 - ldr r0, [r0] - adds r0, #0xd8 - ldrb r0, [r0] - cmp r0, #0 - beq _08121A44 - bl LoadSavedMapView - bl sub_08004630 - b _08121A44 - .align 2, 0 -_08121968: .4byte gUnknown_2039E00 -_0812196C: - bl sub_08086EFC - cmp r0, #1 - bne _08121A44 - b _08121A52 -_08121976: - ldr r0, _08121988 - bl SetVBlankCallback - ldr r2, _0812198C - ldrb r0, [r2, #8] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #8] - b _08121A44 - .align 2, 0 -_08121988: .4byte sub_08121C60 -_0812198C: .4byte gUnknown_2037C74 -_08121990: - ldr r5, _081219B4 - ldr r0, [r5] - adds r0, #0xd4 - ldr r0, [r0] - ldrh r0, [r0, #0x1e] - bl sub_080D2724 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, [r5] - adds r0, #0xdb - ldrb r0, [r0] - cmp r0, #1 - beq _081219B8 - cmp r0, #2 - beq _081219D0 - b _08121A44 - .align 2, 0 -_081219B4: .4byte gUnknown_2039E00 -_081219B8: - adds r0, r4, #0 - bl LoadMonIconPalette - ldr r1, _081219CC - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - adds r0, r4, #0 - movs r2, #0x60 - b _081219E2 - .align 2, 0 -_081219CC: .4byte sub_08007140 -_081219D0: - adds r0, r4, #0 - bl LoadMonIconPalette - ldr r1, _081219F0 - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - adds r0, r4, #0 - movs r2, #0x28 -_081219E2: - movs r3, #0x80 - bl sub_080D2618 - ldr r1, [r5] - adds r1, #0xdc - strb r0, [r1] - b _08121A44 - .align 2, 0 -_081219F0: .4byte sub_08007140 -_081219F4: - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r2, _08121A38 - ldrb r1, [r2, #8] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #8] - ldr r0, _08121A3C - ldr r0, [r0] - adds r0, #0xd0 - ldr r1, _08121A40 - str r1, [r0] - movs r0, #1 - b _08121A54 - .align 2, 0 -_08121A38: .4byte gUnknown_2037C74 -_08121A3C: .4byte gUnknown_2039E00 -_08121A40: .4byte CB2_WaitForPaletteExitOnKeyPress -_08121A44: - ldr r1, _08121A5C - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_08121A52: - movs r0, #0 -_08121A54: - add sp, #0xc - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08121A5C: .4byte gUnknown_3002360 - thumb_func_end MailReadBuildGraphics - - thumb_func_start CB2_InitMailRead -CB2_InitMailRead: @ 0x08121A60 - push {lr} -_08121A62: - bl MailReadBuildGraphics - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08121A7C - ldr r0, _08121A78 - bl SetMainCallback2 - b _08121A88 - .align 2, 0 -_08121A78: .4byte sub_08121C74 -_08121A7C: - bl sub_081221B8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08121A62 -_08121A88: - pop {r0} - bx r0 - thumb_func_end CB2_InitMailRead - - thumb_func_start sub_08121A8C -sub_08121A8C: @ 0x08121A8C - push {r4, r5, r6, r7, lr} - sub sp, #4 - ldr r1, _08121B44 - mov r0, sp - movs r2, #4 - bl memcpy - movs r6, #0 - movs r5, #0 - ldr r2, _08121B48 - ldr r0, [r2] - adds r0, #0xe8 - ldr r0, [r0] - ldrb r0, [r0] - cmp r5, r0 - bhs _08121AFA - adds r7, r2, #0 -_08121AAE: - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r2, [r7] - adds r0, r2, r0 - adds r1, r2, #0 - adds r1, #0xd4 - lsls r3, r6, #1 - ldr r1, [r1] - adds r1, r1, r3 - adds r2, #0xe8 - ldr r2, [r2] - ldr r2, [r2, #4] - lsls r4, r5, #2 - adds r2, r4, r2 - ldr r2, [r2] - lsls r2, r2, #0x1e - lsrs r2, r2, #0x1e - movs r3, #1 - bl ConvertEasyChatWordsToString - ldr r0, [r7] - adds r0, #0xe8 - ldr r1, [r0] - ldr r0, [r1, #4] - adds r4, r4, r0 - ldr r0, [r4] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - adds r0, r6, r0 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldrb r1, [r1] - cmp r5, r1 - blo _08121AAE -_08121AFA: - ldr r4, _08121B48 - ldr r1, [r4] - adds r0, r1, #0 - adds r0, #0xc0 - adds r1, #0xd4 - ldr r1, [r1] - adds r1, #0x12 - bl StringCopy - adds r2, r0, #0 - ldr r1, [r4] - adds r0, r1, #0 - adds r0, #0xde - ldrb r0, [r0] - cmp r0, #0 - bne _08121B4C - adds r0, r2, #0 - mov r1, sp - bl StringCopy - ldr r0, [r4] - adds r0, #0xc0 - bl StringLength - ldr r2, [r4] - adds r1, r2, #0 - adds r1, #0xe8 - ldr r1, [r1] - ldrb r1, [r1, #1] - lsrs r1, r1, #4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0xd - subs r0, #0x60 - subs r1, r1, r0 - adds r2, #0xd9 - strb r1, [r2] - b _08121B5A - .align 2, 0 -_08121B44: .4byte gUnknown_857B0B4 -_08121B48: .4byte gUnknown_2039E00 -_08121B4C: - adds r0, r1, #0 - adds r0, #0xe8 - ldr r0, [r0] - ldrb r0, [r0, #1] - lsrs r0, r0, #4 - adds r1, #0xd9 - strb r0, [r1] -_08121B5A: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08121A8C - - thumb_func_start LoadSavedMapView -LoadSavedMapView: @ 0x08121B64 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0xc - movs r7, #0 - movs r0, #0 - bl PutWindowTilemap - movs r0, #1 - bl PutWindowTilemap - movs r0, #0 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #1 - movs r1, #0 - bl FillWindowPixelBuffer - movs r6, #0 - ldr r0, _08121C58 - mov sb, r0 - ldr r0, [r0] - adds r0, #0xe8 - ldr r0, [r0] - ldrb r0, [r0] - cmp r6, r0 - bhs _08121C10 - mov r8, sb -_08121BA0: - mov r0, r8 - ldr r1, [r0] - lsls r0, r6, #1 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r5, r1, r0 - ldrb r0, [r5] - cmp r0, #0xff - beq _08121BFC - cmp r0, #0 - beq _08121BFC - adds r0, r1, #0 - adds r0, #0xe8 - ldr r1, [r0] - ldr r0, [r1, #4] - lsls r4, r6, #2 - adds r0, r4, r0 - ldr r2, [r0] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x1a - ldrb r0, [r1, #3] - adds r2, r2, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r3, [r1, #2] - adds r3, r7, r3 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r0, _08121C5C - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r5, [sp, #8] - movs r1, #1 - bl AddTextPrinterParameterized3 - mov r1, r8 - ldr r0, [r1] - adds r0, #0xe8 - ldr r0, [r0] - ldr r0, [r0, #4] - adds r4, r4, r0 - ldrb r0, [r4, #1] - adds r0, r7, r0 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 -_08121BFC: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - mov r1, sb - ldr r0, [r1] - adds r0, #0xe8 - ldr r0, [r0] - ldrb r0, [r0] - cmp r6, r0 - blo _08121BA0 -_08121C10: - ldr r0, _08121C58 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0xd9 - ldrb r2, [r0] - adds r0, #0xf - ldr r0, [r0] - ldrb r3, [r0, #1] - lsls r3, r3, #0x1c - lsrs r3, r3, #0x1c - ldr r0, _08121C5C - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - adds r0, r1, #0 - adds r0, #0xc0 - str r0, [sp, #8] - movs r0, #1 - movs r1, #1 - bl AddTextPrinterParameterized3 - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - movs r0, #1 - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08121C58: .4byte gUnknown_2039E00 -_08121C5C: .4byte gUnknown_857AED8 - thumb_func_end LoadSavedMapView - - thumb_func_start sub_08121C60 -sub_08121C60: @ 0x08121C60 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08121C60 - - thumb_func_start sub_08121C74 -sub_08121C74: @ 0x08121C74 - push {r4, lr} - ldr r4, _08121C9C - ldr r0, [r4] - adds r0, #0xdb - ldrb r0, [r0] - cmp r0, #0 - beq _08121C8A - bl AnimateSprites - bl BuildOamBuffer -_08121C8A: - ldr r0, [r4] - adds r0, #0xd0 - ldr r0, [r0] - bl _call_via_r0 - thumb_func_end sub_08121C74 - - thumb_func_start sub_08121C94 -sub_08121C94: @ 0x08121C94 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08121C9C: .4byte gUnknown_2039E00 - thumb_func_end sub_08121C94 - - thumb_func_start CB2_WaitForPaletteExitOnKeyPress -CB2_WaitForPaletteExitOnKeyPress: @ 0x08121CA0 - push {lr} - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08121CB6 - ldr r0, _08121CBC - ldr r0, [r0] - adds r0, #0xd0 - ldr r1, _08121CC0 - str r1, [r0] -_08121CB6: - pop {r0} - bx r0 - .align 2, 0 -_08121CBC: .4byte gUnknown_2039E00 -_08121CC0: .4byte CB2_ExitOnKeyPress - thumb_func_end CB2_WaitForPaletteExitOnKeyPress - - thumb_func_start CB2_ExitOnKeyPress -CB2_ExitOnKeyPress: @ 0x08121CC4 - push {lr} - sub sp, #4 - ldr r0, _08121CF4 - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _08121CEE - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _08121CF8 - ldr r0, [r0] - adds r0, #0xd0 - ldr r1, _08121CFC - str r1, [r0] -_08121CEE: - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_08121CF4: .4byte gUnknown_3002360 -_08121CF8: .4byte gUnknown_2039E00 -_08121CFC: .4byte CB2_ExitMailReadFreeVars - thumb_func_end CB2_ExitOnKeyPress - - thumb_func_start CB2_ExitMailReadFreeVars -CB2_ExitMailReadFreeVars: @ 0x08121D00 - push {r4, lr} - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08121D7E - ldr r4, _08121D84 - ldr r0, [r4] - adds r0, #0xcc - ldr r0, [r0] - bl SetMainCallback2 - ldr r0, [r4] - adds r1, r0, #0 - adds r1, #0xdb - ldrb r1, [r1] - cmp r1, #2 - bgt _08121D4E - cmp r1, #1 - blt _08121D4E - adds r0, #0xd4 - ldr r0, [r0] - ldrh r0, [r0, #0x1e] - bl sub_080D2724 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl FreeMonIconPalette - ldr r0, [r4] - adds r0, #0xdc - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08121D88 - adds r0, r0, r1 - bl sub_080D2798 -_08121D4E: - ldr r4, _08121D84 - ldr r0, [r4] - ldr r2, _08121D8C - movs r1, #0 - bl memset - bl ResetPaletteFade - movs r0, #0 - bl UnsetBgTilemapBuffer - movs r0, #1 - bl UnsetBgTilemapBuffer - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - bl FreeAllWindowBuffers - ldr r0, [r4] - bl Free - movs r0, #0 - str r0, [r4] -_08121D7E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08121D84: .4byte gUnknown_2039E00 -_08121D88: .4byte gUnknown_20205AC -_08121D8C: .4byte 0x000020EC - thumb_func_end CB2_ExitMailReadFreeVars - - thumb_func_start ResetVramOamAndBgCntRegs -ResetVramOamAndBgCntRegs: @ 0x08121D90 - push {r4, lr} - sub sp, #0xc - movs r0, #0 - movs r1, #0 - bl SetGpuReg - movs r0, #0xe - movs r1, #0 - bl SetGpuReg - movs r0, #0xc - movs r1, #0 - bl SetGpuReg - movs r0, #0xa - movs r1, #0 - bl SetGpuReg - movs r0, #8 - movs r1, #0 - bl SetGpuReg - mov r1, sp - movs r0, #0 - strh r0, [r1] - movs r1, #0xc0 - lsls r1, r1, #0x13 - ldr r2, _08121DF4 - mov r0, sp - bl CpuSet - movs r4, #0 - str r4, [sp, #4] - add r0, sp, #4 - movs r1, #0xe0 - lsls r1, r1, #0x13 - ldr r2, _08121DF8 - bl CpuSet - add r0, sp, #8 - strh r4, [r0] - movs r1, #0xa0 - lsls r1, r1, #0x13 - ldr r2, _08121DFC - bl CpuSet - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08121DF4: .4byte 0x0100C000 -_08121DF8: .4byte 0x05000100 -_08121DFC: .4byte 0x01000200 - thumb_func_end ResetVramOamAndBgCntRegs - - thumb_func_start ResetAllBgsCoordinates -ResetAllBgsCoordinates: @ 0x08121E00 - push {lr} - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ResetAllBgsCoordinates - - thumb_func_start SetVBlankHBlankCallbacksToNull -SetVBlankHBlankCallbacksToNull: @ 0x08121E58 - push {lr} - movs r0, #0 - bl SetVBlankCallback - movs r0, #0 - bl SetHBlankCallback - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetVBlankHBlankCallbacksToNull - - thumb_func_start DisplayMessageAndContinueTask -DisplayMessageAndContinueTask: @ 0x08121E6C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x10 - ldr r4, [sp, #0x28] - ldr r5, [sp, #0x2c] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r6, r1, #0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r4, r4, #0x18 - lsrs r7, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _08121EF8 - strb r6, [r0] - adds r0, r6, #0 - movs r1, #1 - bl DrawDialogFrameWithCustomTileAndPalette - ldr r4, _08121EFC - ldr r0, [sp, #0x30] - cmp r0, r4 - beq _08121EB0 - adds r0, r4, #0 - ldr r1, [sp, #0x30] - bl StringExpandPlaceholders -_08121EB0: - ldr r2, _08121F00 - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - movs r0, #0 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - movs r0, #3 - str r0, [sp, #0xc] - adds r0, r6, #0 - adds r1, r7, #0 - adds r2, r4, #0 - adds r3, r5, #0 - bl AddTextPrinterParameterized2 - ldr r1, _08121F04 - ldr r0, [sp, #0x34] - str r0, [r1] - ldr r1, _08121F08 - mov r2, r8 - lsls r0, r2, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08121F0C - str r1, [r0] - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08121EF8: .4byte gUnknown_2039E0C -_08121EFC: .4byte gUnknown_2021C7C -_08121F00: .4byte gUnknown_30030B4 -_08121F04: .4byte gUnknown_300117C -_08121F08: .4byte gUnknown_3005B60 -_08121F0C: .4byte Task_ContinueTaskAfterMessagePrints - thumb_func_end DisplayMessageAndContinueTask - - thumb_func_start RunTextPrintersRetIsActive -RunTextPrintersRetIsActive: @ 0x08121F10 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_08004630 - adds r0, r4, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r4} - pop {r1} - bx r1 - thumb_func_end RunTextPrintersRetIsActive - - thumb_func_start Task_ContinueTaskAfterMessagePrints -Task_ContinueTaskAfterMessagePrints: @ 0x08121F2C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _08121F50 - ldrb r0, [r0] - bl RunTextPrintersRetIsActive - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08121F4A - ldr r0, _08121F54 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 -_08121F4A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08121F50: .4byte gUnknown_2039E0C -_08121F54: .4byte gUnknown_300117C - thumb_func_end Task_ContinueTaskAfterMessagePrints - - thumb_func_start DoYesNoFuncWithChoice -DoYesNoFuncWithChoice: @ 0x08121F58 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _08121F78 - ldr r2, [r1, #4] - ldr r1, [r1] - str r1, [r3] - str r2, [r3, #4] - ldr r2, _08121F7C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r0, _08121F80 - str r0, [r1] - bx lr - .align 2, 0 -_08121F78: .4byte gUnknown_2039E04 -_08121F7C: .4byte gUnknown_3005B60 -_08121F80: .4byte Task_CallYesOrNoCallback - thumb_func_end DoYesNoFuncWithChoice - - thumb_func_start sub_08121F84 -sub_08121F84: @ 0x08121F84 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - adds r6, r0, #0 - adds r0, r1, #0 - adds r1, r2, #0 - adds r2, r3, #0 - ldr r3, [sp, #0x20] - ldr r4, [sp, #0x24] - ldr r5, [sp, #0x28] - ldr r7, [sp, #0x2c] - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - str r4, [sp] - str r5, [sp, #4] - movs r4, #0 - str r4, [sp, #8] - bl sub_08198C08 - ldr r2, _08121FDC - ldr r0, [r7] - ldr r1, [r7, #4] - str r0, [r2] - str r1, [r2, #4] - ldr r1, _08121FE0 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08121FE4 - str r1, [r0] - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08121FDC: .4byte gUnknown_2039E04 -_08121FE0: .4byte gUnknown_3005B60 -_08121FE4: .4byte Task_CallYesOrNoCallback - thumb_func_end sub_08121F84 - - thumb_func_start Task_CallYesOrNoCallback -Task_CallYesOrNoCallback: @ 0x08121FE8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _0812200E - cmp r1, #0 - bgt _08122008 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _08122024 - b _08122034 -_08122008: - cmp r1, #1 - beq _08122024 - b _08122034 -_0812200E: - movs r0, #5 - bl sub_080A306C - ldr r0, _08122020 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - b _08122034 - .align 2, 0 -_08122020: .4byte gUnknown_2039E04 -_08122024: - movs r0, #5 - bl sub_080A306C - ldr r0, _0812203C - ldr r1, [r0, #4] - adds r0, r4, #0 - bl _call_via_r1 -_08122034: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812203C: .4byte gUnknown_2039E04 - thumb_func_end Task_CallYesOrNoCallback - - thumb_func_start AdjustQuantityAccordingToDPadInput -AdjustQuantityAccordingToDPadInput: @ 0x08122040 - push {r4, r5, r6, lr} - adds r2, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r5, r1, #0 - ldrh r4, [r2] - adds r6, r4, #0 - ldr r0, _08122074 - ldrh r0, [r0, #0x30] - movs r3, #0xf0 - ands r3, r0 - cmp r3, #0x40 - bne _08122078 - adds r0, r4, #1 - strh r0, [r2] - movs r3, #0 - ldrsh r0, [r2, r3] - cmp r0, r1 - ble _0812206A - movs r0, #1 - strh r0, [r2] -_0812206A: - movs r0, #0 - ldrsh r1, [r2, r0] -_0812206E: - lsls r0, r4, #0x10 - b _081220C2 - .align 2, 0 -_08122074: .4byte gUnknown_3002360 -_08122078: - cmp r3, #0x80 - bne _0812208E - subs r0, r4, #1 - strh r0, [r2] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _08122088 - strh r1, [r2] -_08122088: - movs r3, #0 - ldrsh r1, [r2, r3] - b _0812206E -_0812208E: - cmp r3, #0x10 - bne _081220A8 - adds r0, r4, #0 - adds r0, #0xa - strh r0, [r2] - movs r1, #0 - ldrsh r0, [r2, r1] - cmp r0, r5 - ble _081220A2 - strh r5, [r2] -_081220A2: - movs r3, #0 - ldrsh r1, [r2, r3] - b _0812206E -_081220A8: - cmp r3, #0x20 - bne _081220D2 - adds r0, r4, #0 - subs r0, #0xa - strh r0, [r2] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _081220BC - movs r0, #1 - strh r0, [r2] -_081220BC: - movs r0, #0 - ldrsh r1, [r2, r0] - lsls r0, r6, #0x10 -_081220C2: - asrs r0, r0, #0x10 - cmp r1, r0 - beq _081220D2 - movs r0, #5 - bl sub_080A306C - movs r0, #1 - b _081220D4 -_081220D2: - movs r0, #0 -_081220D4: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end AdjustQuantityAccordingToDPadInput - - thumb_func_start GetLRKeysState -GetLRKeysState: @ 0x081220DC - push {lr} - ldr r0, _081220FC - ldr r0, [r0] - ldrb r0, [r0, #0x13] - cmp r0, #1 - bne _08122112 - ldr r0, _08122100 - ldrh r1, [r0, #0x2e] - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08122104 - movs r0, #1 - b _08122114 - .align 2, 0 -_081220FC: .4byte gUnknown_3005AF0 -_08122100: .4byte gUnknown_3002360 -_08122104: - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08122112 - movs r0, #2 - b _08122114 -_08122112: - movs r0, #0 -_08122114: - pop {r1} - bx r1 - thumb_func_end GetLRKeysState - - thumb_func_start sub_08122118 -sub_08122118: @ 0x08122118 - push {lr} - ldr r0, _08122138 - ldr r0, [r0] - ldrb r0, [r0, #0x13] - cmp r0, #1 - bne _0812214E - ldr r0, _0812213C - ldrh r1, [r0, #0x30] - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08122140 - movs r0, #1 - b _08122150 - .align 2, 0 -_08122138: .4byte gUnknown_3005AF0 -_0812213C: .4byte gUnknown_3002360 -_08122140: - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0812214E - movs r0, #2 - b _08122150 -_0812214E: - movs r0, #0 -_08122150: - pop {r1} - bx r1 - thumb_func_end sub_08122118 - - thumb_func_start sub_08122154 -sub_08122154: @ 0x08122154 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xaf - bne _08122180 - ldr r0, _08122178 - ldr r0, [r0] - ldrh r1, [r0, #4] - ldr r0, _0812217C - cmp r1, r0 - beq _08122172 - bl InUnionRoom - cmp r0, #1 - bne _08122180 -_08122172: - movs r0, #0 - b _08122182 - .align 2, 0 -_08122178: .4byte gUnknown_3005AEC -_0812217C: .4byte 0x00001919 -_08122180: - movs r0, #1 -_08122182: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08122154 - - thumb_func_start itemid_80BF6D8_mail_related -itemid_80BF6D8_mail_related: @ 0x08122188 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - bl IsUpdateLinkStateCBActive - cmp r0, #1 - beq _0812219E - bl InUnionRoom - cmp r0, #1 - bne _081221B0 -_0812219E: - adds r0, r4, #0 - bl ItemIsMail - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081221B0 - movs r0, #0 - b _081221B2 -_081221B0: - movs r0, #1 -_081221B2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end itemid_80BF6D8_mail_related - - thumb_func_start sub_081221B8 -sub_081221B8: @ 0x081221B8 - push {lr} - bl IsUpdateLinkStateCBActive - cmp r0, #1 - beq _081221CA - ldr r0, _081221D0 - ldrb r0, [r0] - cmp r0, #1 - bne _081221D4 -_081221CA: - movs r0, #1 - b _081221D6 - .align 2, 0 -_081221D0: .4byte gUnknown_30031C4 -_081221D4: - movs r0, #0 -_081221D6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081221B8 - - thumb_func_start sub_081221DC -sub_081221DC: @ 0x081221DC - push {lr} - bl sub_081221B8 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081221F2 - bl sub_08086EFC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _081221F4 -_081221F2: - movs r0, #0 -_081221F4: - pop {r1} - bx r1 - thumb_func_end sub_081221DC - - thumb_func_start sub_081221F8 -sub_081221F8: @ 0x081221F8 - push {lr} - bl sub_081221DC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0812220E - bl sub_0800AFD8 - cmp r0, #1 - bne _08122212 -_0812220E: - movs r0, #1 - b _08122214 -_08122212: - movs r0, #0 -_08122214: - pop {r1} - bx r1 - thumb_func_end sub_081221F8 - - thumb_func_start sub_08122218 -sub_08122218: @ 0x08122218 - push {r4, r5, r6, lr} - adds r6, r2, #0 - ldr r2, [sp, #0x10] - lsls r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - adds r4, r0, #0 - movs r0, #0 - strb r0, [r3] - movs r2, #0 - lsrs r1, r1, #0x18 - cmp r2, r1 - bhs _0812224C -_08122232: - lsls r0, r2, #2 - adds r0, r0, r4 - ldrh r0, [r0] - cmp r0, #0 - beq _08122242 - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] -_08122242: - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, r1 - blo _08122232 -_0812224C: - ldrb r0, [r3] - adds r1, r0, #1 - strb r1, [r3] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r5 - bls _0812225E - strb r5, [r6] - b _08122260 -_0812225E: - strb r1, [r6] -_08122260: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08122218 - - thumb_func_start sub_08122268 -sub_08122268: @ 0x08122268 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldrh r0, [r4] - cmp r0, #0 - beq _08122286 - adds r0, r0, r2 - cmp r0, r3 - ble _08122286 - subs r0, r3, r2 - strh r0, [r4] -_08122286: - ldrh r0, [r4] - ldrh r1, [r5] - adds r0, r0, r1 - cmp r0, r3 - blt _0812229C - cmp r3, #0 - bne _08122298 - strh r3, [r5] - b _0812229C -_08122298: - subs r0, r3, #1 - strh r0, [r5] -_0812229C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08122268 - - thumb_func_start sub_081222A4 -sub_081222A4: @ 0x081222A4 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r4, r1, #0 - ldr r0, [sp, #0x14] - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r6, r3, #0x18 - lsls r2, r0, #0x18 - lsrs r0, r2, #0x18 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _081222FC - lsrs r2, r2, #0x19 - ldrh r0, [r4] - cmp r0, r2 - blo _0812232E - movs r1, #0 - subs r0, r0, r2 - cmp r1, r0 - bge _0812232E - ldrh r0, [r5] - adds r0, r0, r7 - cmp r0, r6 - beq _0812232E -_081222D8: - ldrh r0, [r4] - subs r0, #1 - strh r0, [r4] - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldrh r0, [r4] - subs r0, r0, r2 - cmp r1, r0 - bge _0812232E - ldrh r0, [r5] - adds r0, r0, r7 - cmp r0, r6 - bne _081222D8 - b _0812232E -_081222FC: - ldrh r3, [r4] - lsrs r2, r2, #0x19 - adds r0, r2, #1 - cmp r3, r0 - blt _0812232E - movs r1, #0 - subs r0, r3, r2 - b _08122322 -_0812230C: - ldrh r0, [r4] - subs r0, #1 - strh r0, [r4] - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldrh r0, [r4] - subs r0, r0, r2 -_08122322: - cmp r1, r0 - bgt _0812232E - ldrh r0, [r5] - adds r0, r0, r7 - cmp r0, r6 - bne _0812230C -_0812232E: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_081222A4 - - thumb_func_start sub_08122334 -sub_08122334: @ 0x08122334 - push {lr} - ldr r0, _08122348 - bl LoadCompressedSpriteSheet - ldr r0, _0812234C - bl LoadCompressedSpritePalette - pop {r0} - bx r0 - .align 2, 0 -_08122348: .4byte gUnknown_857B0E4 -_0812234C: .4byte gUnknown_857B0EC - thumb_func_end sub_08122334 - - thumb_func_start sub_08122350 -sub_08122350: @ 0x08122350 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r0 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - movs r5, #0 - cmp r5, r6 - bhs _081223A8 - ldr r7, _081223B4 -_08122364: - lsls r1, r5, #4 - ldr r0, _081223B8 - movs r2, #0 - movs r3, #0 - bl CreateSprite - mov r1, r8 - adds r4, r1, r5 - strb r0, [r4] - cmp r5, #0 - beq _0812238A - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - movs r1, #1 - bl StartSpriteAnim -_0812238A: - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, r6 - blo _08122364 -_081223A8: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081223B4: .4byte gUnknown_20205AC -_081223B8: .4byte gUnknown_857B0F4 - thumb_func_end sub_08122350 - - thumb_func_start sub_081223BC -sub_081223BC: @ 0x081223BC - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - movs r4, #0 - cmp r4, r5 - bhs _08122402 - ldr r7, _081223E4 -_081223CC: - subs r0, r5, #1 - cmp r4, r0 - bne _081223E8 - adds r0, r6, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - bl DestroySpriteAndFreeResources - b _081223F8 - .align 2, 0 -_081223E4: .4byte gUnknown_20205AC -_081223E8: - adds r0, r6, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - bl DestroySprite -_081223F8: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r5 - blo _081223CC -_08122402: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_081223BC - - thumb_func_start sub_08122408 -sub_08122408: @ 0x08122408 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r0, r2, #0x18 - movs r3, #0 - cmp r3, r4 - bhs _0812244A - ldr r1, _08122450 - mov ip, r1 - movs r1, #1 - ands r0, r1 - lsls r5, r0, #2 - movs r7, #5 - rsbs r7, r7, #0 -_08122428: - adds r0, r6, r3 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - add r1, ip - adds r1, #0x3e - ldrb r2, [r1] - adds r0, r7, #0 - ands r0, r2 - orrs r0, r5 - strb r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, r4 - blo _08122428 -_0812244A: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08122450: .4byte gUnknown_20205AC - thumb_func_end sub_08122408 - - thumb_func_start sub_08122454 -sub_08122454: @ 0x08122454 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - lsls r2, r2, #0x10 - lsrs r7, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - mov sb, r3 - movs r0, #0x80 - ands r0, r4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r0, #0x7f - ands r4, r0 - movs r3, #0 - cmp r3, r4 - bhs _081224D4 - ldr r5, _081224A8 - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - subs r0, #8 - mov ip, r0 -_0812248A: - subs r0, r4, #1 - cmp r3, r0 - bne _081224AC - mov r0, r8 - cmp r0, #0 - beq _081224AC - adds r2, r6, r3 - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - mov r1, ip - strh r1, [r0, #0x24] - b _081224BA - .align 2, 0 -_081224A8: .4byte gUnknown_20205AC -_081224AC: - adds r2, r6, r3 - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r7, [r0, #0x24] -_081224BA: - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - mov r1, sb - adds r1, #1 - strh r1, [r0, #0x22] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, r4 - blo _0812248A -_081224D4: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08122454 - - thumb_func_start InitDewfordTrend -InitDewfordTrend: @ 0x081224E0 - push {r4, r5, r6, r7, lr} - movs r6, #0 - ldr r5, _08122514 -_081224E6: - movs r0, #0xa - bl sub_0811F318 - ldr r1, [r5] - lsls r4, r6, #3 - adds r1, r1, r4 - ldr r2, _08122518 - adds r1, r1, r2 - strh r0, [r1] - bl Random - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _08122520 - movs r0, #0xc - bl sub_0811F318 - ldr r1, [r5] - adds r1, r1, r4 - ldr r7, _0812251C - adds r1, r1, r7 - b _0812252E - .align 2, 0 -_08122514: .4byte gUnknown_3005AEC -_08122518: .4byte 0x00002E6C -_0812251C: .4byte 0x00002E6E -_08122520: - movs r0, #0xd - bl sub_0811F318 - ldr r1, [r5] - adds r1, r1, r4 - ldr r2, _0812257C - adds r1, r1, r2 -_0812252E: - strh r0, [r1] - bl Random - ldr r3, [r5] - adds r3, r3, r4 - movs r2, #1 - ands r2, r0 - ldr r7, _08122580 - adds r3, r3, r7 - lsls r2, r2, #6 - ldrb r0, [r3] - movs r7, #0x41 - rsbs r7, r7, #0 - adds r1, r7, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3] - ldr r0, _08122584 - adds r1, r4, r0 - ldr r0, [r5] - adds r0, r0, r1 - bl sub_08122B34 - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #4 - bls _081224E6 - ldr r0, _08122588 - ldr r0, [r0] - ldr r1, _08122584 - adds r0, r0, r1 - movs r1, #5 - movs r2, #0 - bl sub_08122810 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0812257C: .4byte 0x00002E6E -_08122580: .4byte 0x00002E69 -_08122584: .4byte 0x00002E68 -_08122588: .4byte gUnknown_3005AEC - thumb_func_end InitDewfordTrend - - thumb_func_start UpdateDewfordTrendPerDay -UpdateDewfordTrendPerDay: @ 0x0812258C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - bne _081225A2 - b _081226CA -_081225A2: - lsls r0, r1, #2 - adds r0, r0, r1 - str r0, [sp] - movs r0, #0 - mov sl, r0 - movs r1, #0x7f - mov sb, r1 - movs r2, #0x80 - rsbs r2, r2, #0 - mov r8, r2 -_081225B6: - ldr r2, [sp] - mov r3, sl - lsls r0, r3, #3 - ldr r4, _081225FC - adds r0, r0, r4 - ldr r3, _08122600 - ldr r1, [r3] - adds r5, r1, r0 - ldrb r6, [r5, #1] - movs r0, #0x40 - ands r0, r6 - cmp r0, #0 - bne _08122614 - ldrb r4, [r5] - lsls r3, r4, #0x19 - lsrs r1, r3, #0x19 - lsls r0, r2, #0x10 - lsrs r0, r0, #0x10 - cmp r1, r0 - blo _08122604 - adds r0, r1, #0 - subs r0, r0, r2 - mov r1, sb - ands r0, r1 - mov r1, r8 - ands r1, r4 - orrs r1, r0 - strb r1, [r5] - movs r0, #0x7f - ands r1, r0 - cmp r1, #0 - bne _081226AA - movs r0, #0x40 - orrs r0, r6 - b _081226A8 - .align 2, 0 -_081225FC: .4byte 0x00002E68 -_08122600: .4byte gUnknown_3005AEC -_08122604: - lsrs r0, r3, #0x19 - subs r2, r2, r0 - mov r0, r8 - ands r0, r4 - strb r0, [r5] - movs r0, #0x40 - orrs r0, r6 - strb r0, [r5, #1] -_08122614: - ldrb r7, [r5] - lsls r0, r7, #0x19 - lsrs r0, r0, #0x19 - adds r4, r0, r2 - ldrh r0, [r5] - lsls r6, r0, #0x12 - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - lsrs r1, r6, #0x19 - cmp r0, r1 - bls _08122684 - adds r0, r4, #0 - bl __umodsi3 - adds r3, r0, #0 - lsrs r1, r6, #0x19 - adds r0, r4, #0 - str r3, [sp, #4] - bl __udivsi3 - adds r4, r0, #0 - movs r0, #1 - eors r4, r0 - ands r4, r0 - lsls r2, r4, #6 - ldrb r0, [r5, #1] - movs r4, #0x41 - rsbs r4, r4, #0 - adds r1, r4, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #1] - movs r1, #0x40 - ands r0, r1 - ldr r3, [sp, #4] - cmp r0, #0 - beq _0812266E - adds r1, r3, #0 - mov r0, sb - ands r1, r0 - mov r0, r8 - ands r0, r7 - orrs r0, r1 - strb r0, [r5] - b _081226AA -_0812266E: - ldrh r0, [r5] - lsls r0, r0, #0x12 - lsrs r0, r0, #0x19 - subs r0, r0, r3 - mov r1, sb - ands r0, r1 - mov r1, r8 - ands r1, r7 - orrs r1, r0 - strb r1, [r5] - b _081226AA -_08122684: - mov r2, sb - ands r4, r2 - mov r0, r8 - ands r0, r7 - orrs r0, r4 - strb r0, [r5] - lsls r0, r0, #0x19 - ldrh r1, [r5] - lsls r1, r1, #0x12 - lsrs r0, r0, #0x19 - lsrs r1, r1, #0x19 - cmp r0, r1 - bne _081226AA - ldrb r0, [r5, #1] - movs r3, #0x41 - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r0, r1 -_081226A8: - strb r0, [r5, #1] -_081226AA: - mov r0, sl - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sl, r0 - cmp r0, #4 - bhi _081226BA - b _081225B6 -_081226BA: - ldr r4, _081226DC - ldr r0, [r4] - ldr r1, _081226E0 - adds r0, r0, r1 - movs r1, #5 - movs r2, #0 - bl sub_08122810 -_081226CA: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081226DC: .4byte gUnknown_3005AEC -_081226E0: .4byte 0x00002E68 - thumb_func_end UpdateDewfordTrendPerDay - - thumb_func_start sub_081226E4 -sub_081226E4: @ 0x081226E4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - mov r8, r0 - movs r0, #0 - movs r1, #0 - str r0, [sp] - str r1, [sp, #4] - mov r0, r8 - bl SB1ContainsWords - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08122704 - b _081227FE -_08122704: - ldr r4, _08122740 - adds r0, r4, #0 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08122750 - adds r0, r4, #0 - bl FlagSet - ldr r0, _08122744 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08122750 - ldr r0, _08122748 - ldr r1, [r0] - mov r0, r8 - ldrh r2, [r0] - ldr r3, _0812274C - adds r0, r1, r3 - strh r2, [r0] - mov r2, r8 - ldrh r0, [r2, #2] - adds r3, #2 - adds r1, r1, r3 - strh r0, [r1] - movs r0, #1 - b _08122800 - .align 2, 0 -_08122740: .4byte 0x00000893 -_08122744: .4byte 0x00000894 -_08122748: .4byte gUnknown_3005AEC -_0812274C: .4byte 0x00002E6C -_08122750: - mov r0, r8 - ldrh r1, [r0, #2] - lsls r1, r1, #0x10 - ldrh r0, [r0] - orrs r0, r1 - str r0, [sp, #4] - movs r1, #0x80 - lsls r1, r1, #7 - ldr r0, [sp] - orrs r0, r1 - str r0, [sp] - mov r0, sp - bl sub_08122B34 - movs r5, #0 -_0812276E: - ldr r6, _081227D8 - lsls r4, r5, #3 - ldr r1, _081227DC - adds r0, r4, r1 - ldr r1, [r6] - adds r1, r1, r0 - mov r0, sp - movs r2, #0 - bl sub_08122A64 - lsls r0, r0, #0x18 - adds r7, r4, #0 - cmp r0, #0 - beq _081227E0 - movs r2, #4 - mov ip, r6 - cmp r2, r5 - bls _081227B2 - ldr r4, _081227DC -_08122794: - ldr r0, [r6] - lsls r3, r2, #3 - adds r0, r0, r4 - adds r3, r0, r3 - subs r2, #1 - lsls r1, r2, #3 - adds r0, r0, r1 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [r3] - str r1, [r3, #4] - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - cmp r2, r5 - bhi _08122794 -_081227B2: - mov r3, ip - ldr r2, [r3] - ldr r0, _081227DC - adds r2, r2, r0 - adds r2, r2, r7 - ldr r0, [sp] - ldr r1, [sp, #4] - str r0, [r2] - str r1, [r2, #4] - cmp r5, #4 - bne _081227CE - mov r0, r8 - bl sub_080EE780 -_081227CE: - movs r0, #0 - cmp r5, #0 - bne _08122800 - movs r0, #1 - b _08122800 - .align 2, 0 -_081227D8: .4byte gUnknown_3005AEC -_081227DC: .4byte 0x00002E68 -_081227E0: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #4 - bls _0812276E - ldr r2, [r6] - ldr r1, _0812280C - adds r2, r2, r1 - ldr r0, [sp] - ldr r1, [sp, #4] - str r0, [r2] - str r1, [r2, #4] - mov r0, r8 - bl sub_080EE780 -_081227FE: - movs r0, #0 -_08122800: - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0812280C: .4byte 0x00002E88 - thumb_func_end sub_081226E4 - - thumb_func_start sub_08122810 -sub_08122810: @ 0x08122810 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sb, r0 - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sl, r2 - movs r2, #0 - cmp r2, r7 - bhs _08122878 -_0812282C: - adds r1, r2, #1 - lsls r0, r1, #0x10 - lsrs r5, r0, #0x10 - mov r8, r1 - cmp r5, r7 - bhs _0812286E - lsls r0, r2, #3 - mov r1, sb - adds r6, r1, r0 -_0812283E: - lsls r0, r5, #3 - mov r1, sb - adds r4, r1, r0 - adds r0, r4, #0 - adds r1, r6, #0 - mov r2, sl - bl sub_08122A64 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08122864 - ldr r2, [r4] - ldr r3, [r4, #4] - ldr r0, [r6] - ldr r1, [r6, #4] - str r0, [r4] - str r1, [r4, #4] - str r2, [r6] - str r3, [r6, #4] -_08122864: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, r7 - blo _0812283E -_0812286E: - mov r1, r8 - lsls r0, r1, #0x10 - lsrs r2, r0, #0x10 - cmp r2, r7 - blo _0812282C -_08122878: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08122810 - - thumb_func_start ReceiveEasyChatPairsData -ReceiveEasyChatPairsData: @ 0x08122888 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov r8, r0 - adds r6, r1, #0 - movs r4, #0x80 - lsls r4, r4, #1 - adds r0, r4, #0 - bl sub_08000BC8 - mov sl, r0 - cmp r0, #0 - beq _0812298C - adds r0, r4, #0 - bl sub_08000BC8 - adds r7, r0, #0 - cmp r7, #0 - bne _081228BC - mov r0, sl - bl Free - b _0812298C -_081228BC: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - movs r5, #0 - cmp r5, sb - bhs _081228EA -_081228CC: - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - add r0, sl - adds r1, r5, #0 - muls r1, r6, r1 - add r1, r8 - movs r2, #0x28 - bl memcpy - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, sb - blo _081228CC -_081228EA: - mov r4, sl - mov r8, r7 - movs r3, #0 - movs r5, #0 - cmp r5, sb - bhs _08122952 -_081228F6: - movs r6, #0 -_081228F8: - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r3, #0 - str r3, [sp] - bl GetEqualEasyChatPairIndex - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldr r3, [sp] - cmp r0, #0 - bge _08122924 - ldr r0, [r4] - ldr r1, [r4, #4] - mov r2, r8 - adds r2, #8 - mov r8, r2 - subs r2, #8 - stm r2!, {r0, r1} - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - b _0812293C -_08122924: - lsls r0, r0, #3 - adds r2, r7, r0 - ldrb r1, [r2] - lsls r1, r1, #0x19 - ldrb r0, [r4] - lsls r0, r0, #0x19 - cmp r1, r0 - bhs _0812293C - ldr r0, [r4] - ldr r1, [r4, #4] - str r0, [r2] - str r1, [r2, #4] -_0812293C: - adds r4, #8 - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #4 - bls _081228F8 - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, sb - blo _081228F6 -_08122952: - adds r0, r7, #0 - adds r1, r3, #0 - movs r2, #2 - bl sub_08122810 - adds r4, r7, #0 - ldr r0, _0812299C - ldr r0, [r0] - ldr r1, _081229A0 - adds r1, r1, r0 - mov r8, r1 - movs r5, #0 -_0812296A: - ldm r4!, {r0, r1} - mov r2, r8 - adds r2, #8 - mov r8, r2 - subs r2, #8 - stm r2!, {r0, r1} - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #4 - bls _0812296A - mov r0, sl - bl Free - adds r0, r7, #0 - bl Free -_0812298C: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0812299C: .4byte gUnknown_3005AEC -_081229A0: .4byte 0x00002E68 - thumb_func_end ReceiveEasyChatPairsData - - thumb_func_start BufferTrendyPhraseString -BufferTrendyPhraseString: @ 0x081229A4 - push {lr} - ldr r2, _081229C4 - ldr r0, _081229C8 - ldrh r1, [r0] - lsls r1, r1, #3 - ldr r0, [r2] - adds r1, r1, r0 - ldr r0, _081229CC - ldr r2, _081229D0 - adds r1, r1, r2 - movs r2, #2 - movs r3, #1 - bl ConvertEasyChatWordsToString - pop {r0} - bx r0 - .align 2, 0 -_081229C4: .4byte gUnknown_3005AEC -_081229C8: .4byte gUnknown_2037280 -_081229CC: .4byte gUnknown_2021C40 -_081229D0: .4byte 0x00002E6C - thumb_func_end BufferTrendyPhraseString - - thumb_func_start TrendyPhraseIsOld -TrendyPhraseIsOld: @ 0x081229D4 - push {r4, lr} - movs r4, #0 - ldr r0, _08122A24 - ldr r3, [r0] - ldr r1, _08122A28 - adds r0, r3, r1 - ldrb r1, [r0] - lsls r1, r1, #0x19 - lsrs r1, r1, #0x19 - ldr r2, _08122A2C - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x19 - subs r1, r1, r0 - cmp r1, #1 - bgt _08122A18 - ldr r1, _08122A30 - adds r0, r3, r1 - ldrb r1, [r0] - movs r2, #0x40 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _08122A18 - ldr r1, _08122A34 - adds r0, r3, r1 - ldrb r1, [r0] - adds r0, r2, #0 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - rsbs r0, r0, #0 - lsrs r4, r0, #0x1f -_08122A18: - ldr r0, _08122A38 - strh r4, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08122A24: .4byte gUnknown_3005AEC -_08122A28: .4byte 0x00002E68 -_08122A2C: .4byte 0x00002E70 -_08122A30: .4byte 0x00002E69 -_08122A34: .4byte 0x00002E71 -_08122A38: .4byte gUnknown_2037290 - thumb_func_end TrendyPhraseIsOld - - thumb_func_start GetDewfordHallPaintingNameIndex -GetDewfordHallPaintingNameIndex: @ 0x08122A3C - ldr r2, _08122A58 - ldr r0, _08122A5C - ldr r0, [r0] - ldr r3, _08122A60 - adds r1, r0, r3 - adds r3, #2 - adds r0, r0, r3 - ldrh r0, [r0] - ldrh r1, [r1] - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - strh r0, [r2] - bx lr - .align 2, 0 -_08122A58: .4byte gUnknown_2037290 -_08122A5C: .4byte gUnknown_3005AEC -_08122A60: .4byte 0x00002E6C - thumb_func_end GetDewfordHallPaintingNameIndex - - thumb_func_start sub_08122A64 -sub_08122A64: @ 0x08122A64 - push {r4, r5, lr} - adds r3, r0, #0 - adds r5, r1, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r2, #0 - cmp r2, #1 - beq _08122AAA - cmp r2, #1 - bgt _08122A7E - cmp r2, #0 - beq _08122A84 - b _08122B26 -_08122A7E: - cmp r0, #2 - beq _08122AD6 - b _08122B26 -_08122A84: - ldrb r0, [r3] - lsls r1, r0, #0x19 - ldrb r0, [r5] - lsls r0, r0, #0x19 - cmp r1, r0 - bhi _08122B22 - cmp r1, r0 - blo _08122AD2 - ldrh r0, [r3] - lsls r3, r0, #0x12 - ldrh r0, [r5] - lsls r2, r0, #0x12 - lsrs r1, r3, #0x19 - lsrs r0, r2, #0x19 - cmp r1, r0 - bhi _08122B22 - lsrs r1, r3, #0x19 - lsrs r0, r2, #0x19 - b _08122ACE -_08122AAA: - ldrh r0, [r3] - lsls r4, r0, #0x12 - ldrh r0, [r5] - lsls r2, r0, #0x12 - lsrs r1, r4, #0x19 - lsrs r0, r2, #0x19 - cmp r1, r0 - bhi _08122B22 - lsrs r1, r4, #0x19 - lsrs r0, r2, #0x19 - cmp r1, r0 - blo _08122AD2 - ldrb r0, [r3] - lsls r1, r0, #0x19 - ldrb r0, [r5] - lsls r0, r0, #0x19 - cmp r1, r0 - bhi _08122B22 -_08122ACE: - cmp r1, r0 - bhs _08122B26 -_08122AD2: - movs r0, #0 - b _08122B2E -_08122AD6: - ldrb r0, [r3] - lsls r1, r0, #0x19 - ldrb r0, [r5] - lsls r0, r0, #0x19 - cmp r1, r0 - bhi _08122B22 - cmp r1, r0 - blo _08122AD2 - ldrh r0, [r3] - lsls r4, r0, #0x12 - ldrh r0, [r5] - lsls r2, r0, #0x12 - lsrs r1, r4, #0x19 - lsrs r0, r2, #0x19 - cmp r1, r0 - bhi _08122B22 - lsrs r1, r4, #0x19 - lsrs r0, r2, #0x19 - cmp r1, r0 - blo _08122AD2 - ldrh r1, [r3, #2] - ldrh r0, [r5, #2] - cmp r1, r0 - bhi _08122B22 - cmp r1, r0 - blo _08122AD2 - ldrh r1, [r3, #4] - ldrh r0, [r5, #4] - cmp r1, r0 - bhi _08122B22 - cmp r1, r0 - blo _08122AD2 - ldrh r1, [r3, #6] - ldrh r0, [r5, #6] - cmp r1, r0 - bhi _08122B22 - cmp r1, r0 - blo _08122AD2 -_08122B22: - movs r0, #1 - b _08122B2E -_08122B26: - bl Random - movs r1, #1 - ands r0, r1 -_08122B2E: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_08122A64 - - thumb_func_start sub_08122B34 -sub_08122B34: @ 0x08122B34 - push {r4, r5, lr} - adds r5, r0, #0 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x62 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x32 - bls _08122B76 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x62 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x50 - bls _08122B76 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x62 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_08122B76: - adds r1, r4, #0 - adds r1, #0x1e - movs r0, #0x7f - ands r1, r0 - lsls r1, r1, #7 - ldrh r2, [r5] - ldr r0, _08122BB8 - ands r0, r2 - orrs r0, r1 - strh r0, [r5] - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r4, #1 - bl __modsi3 - adds r0, #0x1e - movs r1, #0x7f - ands r0, r1 - ldrb r2, [r5] - movs r1, #0x80 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r5] - bl Random - strh r0, [r5, #2] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08122BB8: .4byte 0xFFFFC07F - thumb_func_end sub_08122B34 - - thumb_func_start SB1ContainsWords -SB1ContainsWords: @ 0x08122BBC - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r4, #0 - ldr r6, _08122BE0 -_08122BC4: - lsls r1, r4, #3 - ldr r0, [r6] - adds r1, r1, r0 - ldr r0, _08122BE4 - adds r1, r1, r0 - adds r0, r5, #0 - bl IsEasyChatPairEqual - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08122BE8 - movs r0, #1 - b _08122BF4 - .align 2, 0 -_08122BE0: .4byte gUnknown_3005AEC -_08122BE4: .4byte 0x00002E6C -_08122BE8: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #4 - bls _08122BC4 - movs r0, #0 -_08122BF4: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end SB1ContainsWords - - thumb_func_start IsEasyChatPairEqual -IsEasyChatPairEqual: @ 0x08122BFC - push {r4, lr} - adds r3, r0, #0 - adds r2, r1, #0 - movs r4, #0 -_08122C04: - ldrh r1, [r3] - ldrh r0, [r2] - adds r2, #2 - adds r3, #2 - cmp r1, r0 - beq _08122C14 - movs r0, #0 - b _08122C20 -_08122C14: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #1 - bls _08122C04 - movs r0, #1 -_08122C20: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsEasyChatPairEqual - - thumb_func_start GetEqualEasyChatPairIndex -GetEqualEasyChatPairIndex: @ 0x08122C28 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r7, r1, #0 - lsls r2, r2, #0x10 - lsrs r6, r2, #0x10 - movs r4, #0 - cmp r4, r6 - bge _08122C5E -_08122C38: - adds r1, r5, #4 - adds r0, r7, #4 - bl IsEasyChatPairEqual - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08122C4C - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - b _08122C62 -_08122C4C: - adds r5, #8 - lsls r0, r4, #0x10 - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r0, r1 - lsrs r4, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, r6 - blt _08122C38 -_08122C5E: - movs r0, #1 - rsbs r0, r0, #0 -_08122C62: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end GetEqualEasyChatPairIndex - - thumb_func_start GetHealLocationIndexByMap -GetHealLocationIndexByMap: @ 0x08122C68 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r3, #0 - ldr r2, _08122C8C -_08122C76: - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, r4 - bne _08122C90 - movs r0, #1 - ldrsb r0, [r2, r0] - cmp r0, r1 - bne _08122C90 - adds r0, r3, #1 - b _08122C9A - .align 2, 0 -_08122C8C: .4byte gUnknown_857B10C -_08122C90: - adds r2, #8 - adds r3, #1 - cmp r3, #0x15 - bls _08122C76 - movs r0, #0 -_08122C9A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetHealLocationIndexByMap - - thumb_func_start GetHealLocationByMap -GetHealLocationByMap: @ 0x08122CA0 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl GetHealLocationIndexByMap - cmp r0, #0 - beq _08122CC0 - lsls r0, r0, #3 - ldr r1, _08122CBC - adds r0, r0, r1 - b _08122CC2 - .align 2, 0 -_08122CBC: .4byte gUnknown_857B104 -_08122CC0: - movs r0, #0 -_08122CC2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetHealLocationByMap - - thumb_func_start GetHealLocation -GetHealLocation: @ 0x08122CC8 - push {lr} - cmp r0, #0 - beq _08122CE0 - cmp r0, #0x16 - bhi _08122CE0 - lsls r0, r0, #3 - ldr r1, _08122CDC - adds r0, r0, r1 - b _08122CE2 - .align 2, 0 -_08122CDC: .4byte gUnknown_857B104 -_08122CE0: - movs r0, #0 -_08122CE2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetHealLocation - - thumb_func_start InitRegionMap -InitRegionMap: @ 0x08122CE8 - push {lr} - lsls r2, r1, #0x18 - lsrs r2, r2, #0x18 - movs r1, #0 - bl sub_08122D04 -_08122CF4: - bl sub_08122DBC - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08122CF4 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end InitRegionMap - - thumb_func_start sub_08122D04 -sub_08122D04: @ 0x08122D04 - push {r4, r5, lr} - adds r4, r1, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r3, _08122D2C - str r0, [r3] - movs r1, #0x79 - adds r1, r1, r0 - mov ip, r1 - movs r1, #0 - mov r5, ip - strb r1, [r5] - adds r0, #0x78 - strb r2, [r0] - ldr r1, [r3] - cmp r2, #1 - bne _08122D34 - ldr r0, _08122D30 - b _08122D36 - .align 2, 0 -_08122D2C: .4byte gUnknown_2039E10 -_08122D30: .4byte ProcessRegionMapInput_Zoomed -_08122D34: - ldr r0, _08122D6C -_08122D36: - str r0, [r1, #0x18] - cmp r4, #0 - beq _08122D70 - ldr r1, [r3] - ldr r0, [r4] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - adds r1, #0x80 - strb r0, [r1] - ldr r1, [r3] - ldr r0, [r4] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1e - adds r1, #0x81 - strb r0, [r1] - ldr r1, [r3] - ldr r0, [r4] - lsls r0, r0, #0x17 - lsrs r0, r0, #0x1b - adds r1, #0x82 - strb r0, [r1] - ldr r0, [r3] - adds r0, #0x83 - movs r1, #1 - strb r1, [r0] - b _08122D8C - .align 2, 0 -_08122D6C: .4byte ProcessRegionMapInput_Full -_08122D70: - ldr r0, [r3] - adds r0, #0x80 - movs r1, #2 - strb r1, [r0] - ldr r0, [r3] - adds r0, #0x81 - strb r1, [r0] - ldr r0, [r3] - adds r0, #0x82 - movs r1, #0x1c - strb r1, [r0] - ldr r0, [r3] - adds r0, #0x83 - strb r4, [r0] -_08122D8C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08122D04 - - thumb_func_start sub_08122D94 -sub_08122D94: @ 0x08122D94 - push {r4, lr} - ldr r4, _08122DB8 - str r0, [r4] - bl RegionMap_InitializeStateBasedOnPlayerLocation - ldr r2, [r4] - adds r0, r2, #0 - adds r0, #0x54 - ldrh r1, [r0] - adds r0, #0x20 - strh r1, [r0] - subs r0, #0x1e - ldrh r1, [r0] - adds r0, #0x20 - strh r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08122DB8: .4byte gUnknown_2039E10 - thumb_func_end sub_08122D94 - - thumb_func_start sub_08122DBC -sub_08122DBC: @ 0x08122DBC - push {r4, r5, lr} - sub sp, #0xc - ldr r0, _08122DD8 - ldr r0, [r0] - adds r0, #0x79 - ldrb r0, [r0] - cmp r0, #7 - bls _08122DCE - b _08123018 -_08122DCE: - lsls r0, r0, #2 - ldr r1, _08122DDC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08122DD8: .4byte gUnknown_2039E10 -_08122DDC: .4byte _08122DE0 -_08122DE0: @ jump table - .4byte _08122E00 @ case 0 - .4byte _08122E38 @ case 1 - .4byte _08122E84 @ case 2 - .4byte _08122EA0 @ case 3 - .4byte _08122EBC @ case 4 - .4byte _08122ED8 @ case 5 - .4byte _08122F1C @ case 6 - .4byte _08122F98 @ case 7 -_08122E00: - ldr r0, _08122E1C - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0x83 - ldrb r0, [r0] - cmp r0, #0 - beq _08122E24 - adds r0, r1, #0 - adds r0, #0x80 - ldrb r0, [r0] - ldr r1, _08122E20 - movs r2, #0 - str r2, [sp] - b _08122E5E - .align 2, 0 -_08122E1C: .4byte gUnknown_2039E10 -_08122E20: .4byte gUnknown_857B34C -_08122E24: - ldr r0, _08122E30 - ldr r1, _08122E34 - bl LZ77UnCompVram - b _08123020 - .align 2, 0 -_08122E30: .4byte gUnknown_857B34C -_08122E34: .4byte 0x06008000 -_08122E38: - ldr r4, _08122E68 - ldr r0, [r4] - adds r0, #0x83 - ldrb r0, [r0] - cmp r0, #0 - beq _08122E70 - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08122E50 - b _08123020 -_08122E50: - ldr r0, [r4] - adds r0, #0x80 - ldrb r0, [r0] - ldr r1, _08122E6C - movs r2, #1 - str r2, [sp] - movs r2, #0 -_08122E5E: - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - b _08123020 - .align 2, 0 -_08122E68: .4byte gUnknown_2039E10 -_08122E6C: .4byte gUnknown_857C0B0 -_08122E70: - ldr r0, _08122E7C - ldr r1, _08122E80 - bl LZ77UnCompVram - b _08123020 - .align 2, 0 -_08122E7C: .4byte gUnknown_857C0B0 -_08122E80: .4byte 0x0600E000 -_08122E84: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08122E90 - b _08123020 -_08122E90: - ldr r0, _08122E9C - movs r1, #0x70 - movs r2, #0x60 - bl LoadPalette - b _08123020 - .align 2, 0 -_08122E9C: .4byte gUnknown_857B30C -_08122EA0: - ldr r0, _08122EB4 - ldr r1, _08122EB8 - ldr r1, [r1] - movs r2, #0xc2 - lsls r2, r2, #1 - adds r1, r1, r2 - bl LZ77UnCompWram - b _08123020 - .align 2, 0 -_08122EB4: .4byte gUnknown_857B1DC -_08122EB8: .4byte gUnknown_2039E10 -_08122EBC: - ldr r0, _08122ED0 - ldr r1, _08122ED4 - ldr r1, [r1] - movs r5, #0xa1 - lsls r5, r5, #2 - adds r1, r1, r5 - bl LZ77UnCompWram - b _08123020 - .align 2, 0 -_08122ED0: .4byte gUnknown_857B220 -_08122ED4: .4byte gUnknown_2039E10 -_08122ED8: - bl RegionMap_InitializeStateBasedOnPlayerLocation - ldr r4, _08122F18 - 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] - bl CorrectSpecialMapSecId_Internal - ldr r1, [r4] - strh r0, [r1] - ldrh r0, [r1] - bl get_flagnr_blue_points - ldr r1, [r4] - strb r0, [r1, #2] - ldr r1, [r4] - adds r0, r1, #4 - ldrh r1, [r1] - movs r2, #0xa - bl GetMapName - b _08123020 - .align 2, 0 -_08122F18: .4byte gUnknown_2039E10 -_08122F1C: - ldr r0, _08122F44 - ldr r4, [r0] - adds r0, r4, #0 - adds r0, #0x78 - ldrb r1, [r0] - cmp r1, #0 - bne _08122F48 - movs r0, #0x80 - lsls r0, r0, #1 - str r0, [sp] - str r0, [sp, #4] - str r1, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl CalcZoomScrollParams - b _08123020 - .align 2, 0 -_08122F44: .4byte gUnknown_2039E10 -_08122F48: - adds r1, r4, #0 - adds r1, #0x54 - ldrh r0, [r1] - lsls r0, r0, #3 - subs r0, #0x34 - adds r2, r4, #0 - adds r2, #0x5c - movs r3, #0 - strh r0, [r2] - movs r0, #0x56 - adds r0, r0, r4 - mov ip, r0 - ldrh r0, [r0] - lsls r0, 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, ip - 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, #4] - str r3, [sp, #8] - movs r2, #0x38 - movs r3, #0x48 - bl CalcZoomScrollParams - b _08123020 -_08122F98: - bl RegionMap_GetPositionOfCursorWithinMapSection - bl UpdateRegionMapVideoRegs - ldr r4, _0812301C - ldr r0, [r4] - movs r1, #0 - str r1, [r0, #0x1c] - str r1, [r0, #0x20] - adds r0, #0x7a - strb r1, [r0] - ldr r0, [r4] - adds r0, #0x7e - strb r1, [r0] - ldr r1, [r4] - adds r0, r1, #0 - adds r0, #0x83 - ldrb r0, [r0] - cmp r0, #0 - beq _0812300E - adds r0, r1, #0 - adds r0, #0x80 - ldrb r0, [r0] - movs r1, #3 - movs r2, #2 - bl SetBgAttribute - ldr r1, [r4] - adds r0, r1, #0 - adds r0, #0x80 - ldrb r0, [r0] - adds r1, #0x81 - ldrb r2, [r1] - movs r1, #1 - bl SetBgAttribute - ldr r1, [r4] - adds r0, r1, #0 - adds r0, #0x80 - ldrb r0, [r0] - adds r1, #0x82 - ldrb r2, [r1] - movs r1, #2 - bl SetBgAttribute - ldr r0, [r4] - adds r0, #0x80 - ldrb r0, [r0] - movs r1, #6 - movs r2, #1 - bl SetBgAttribute - ldr r0, [r4] - adds r0, #0x80 - ldrb r0, [r0] - movs r1, #4 - movs r2, #1 - bl SetBgAttribute -_0812300E: - ldr r1, [r4] - adds r1, #0x79 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_08123018: - movs r0, #0 - b _0812302E - .align 2, 0 -_0812301C: .4byte gUnknown_2039E10 -_08123020: - ldr r0, _08123038 - ldr r1, [r0] - adds r1, #0x79 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #1 -_0812302E: - add sp, #0xc - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08123038: .4byte gUnknown_2039E10 - thumb_func_end sub_08122DBC - - thumb_func_start sub_0812303C -sub_0812303C: @ 0x0812303C - push {lr} - adds r2, r0, #0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - movs r0, #0xe0 - lsls r0, r0, #2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl BlendPalettes - ldr r0, _08123060 - ldr r1, _08123064 - movs r2, #0x30 - bl CpuSet - pop {r0} - bx r0 - .align 2, 0 -_08123060: .4byte gUnknown_2037894 -_08123064: .4byte gUnknown_2037494 - thumb_func_end sub_0812303C - - thumb_func_start FreeRegionMapIconResources -FreeRegionMapIconResources: @ 0x08123068 - push {r4, lr} - ldr r4, _081230B4 - ldr r0, [r4] - ldr r0, [r0, #0x1c] - cmp r0, #0 - beq _0812308C - bl DestroySprite - ldr r0, [r4] - adds r0, #0x58 - ldrh r0, [r0] - bl FreeSpriteTilesByTag - ldr r0, [r4] - adds r0, #0x5a - ldrh r0, [r0] - bl FreeSpritePaletteByTag -_0812308C: - ldr r0, [r4] - ldr r0, [r0, #0x20] - cmp r0, #0 - beq _081230AC - bl DestroySprite - ldr r0, [r4] - adds r0, #0x70 - ldrh r0, [r0] - bl FreeSpriteTilesByTag - ldr r0, [r4] - adds r0, #0x72 - ldrh r0, [r0] - bl FreeSpritePaletteByTag -_081230AC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081230B4: .4byte gUnknown_2039E10 - thumb_func_end FreeRegionMapIconResources - - thumb_func_start sub_081230B8 -sub_081230B8: @ 0x081230B8 - push {lr} - ldr r0, _081230CC - ldr r0, [r0] - ldr r0, [r0, #0x18] - bl _call_via_r0 - thumb_func_end sub_081230B8 - - thumb_func_start sub_081230C4 -sub_081230C4: @ 0x081230C4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_081230CC: .4byte gUnknown_2039E10 - thumb_func_end sub_081230C4 - - thumb_func_start ProcessRegionMapInput_Full -ProcessRegionMapInput_Full: @ 0x081230D0 - push {r4, lr} - movs r4, #0 - ldr r2, _0812316C - ldr r0, [r2] - adds r0, #0x7b - strb r4, [r0] - ldr r0, [r2] - adds r0, #0x7c - strb r4, [r0] - ldr r3, _08123170 - ldrh r1, [r3, #0x2c] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08123102 - ldr r1, [r2] - adds r0, r1, #0 - adds r0, #0x56 - ldrh r0, [r0] - cmp r0, #2 - bls _08123102 - adds r1, #0x7c - movs r0, #0xff - strb r0, [r1] - movs r4, #1 -_08123102: - ldrh r1, [r3, #0x2c] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08123120 - ldr r1, [r2] - adds r0, r1, #0 - adds r0, #0x56 - ldrh r0, [r0] - cmp r0, #0xf - bhi _08123120 - adds r1, #0x7c - movs r0, #1 - strb r0, [r1] - movs r4, #1 -_08123120: - ldrh r1, [r3, #0x2c] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0812313E - ldr r1, [r2] - adds r0, r1, #0 - adds r0, #0x54 - ldrh r0, [r0] - cmp r0, #1 - bls _0812313E - adds r1, #0x7b - movs r0, #0xff - strb r0, [r1] - movs r4, #1 -_0812313E: - ldrh r1, [r3, #0x2c] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0812315C - ldr r1, [r2] - adds r0, r1, #0 - adds r0, #0x54 - ldrh r0, [r0] - cmp r0, #0x1b - bhi _0812315C - adds r1, #0x7b - movs r0, #1 - strb r0, [r1] - movs r4, #1 -_0812315C: - ldrh r3, [r3, #0x2e] - movs r0, #1 - ands r0, r3 - cmp r0, #0 - beq _08123174 - movs r4, #4 - b _0812317E - .align 2, 0 -_0812316C: .4byte gUnknown_2039E10 -_08123170: .4byte gUnknown_3002360 -_08123174: - movs r0, #2 - ands r0, r3 - cmp r0, #0 - beq _0812317E - movs r4, #5 -_0812317E: - cmp r4, #1 - bne _08123190 - ldr r0, [r2] - adds r0, #0x7a - movs r1, #4 - strb r1, [r0] - ldr r1, [r2] - ldr r0, _08123198 - str r0, [r1, #0x18] -_08123190: - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08123198: .4byte MoveRegionMapCursor_Full - thumb_func_end ProcessRegionMapInput_Full - - thumb_func_start MoveRegionMapCursor_Full -MoveRegionMapCursor_Full: @ 0x0812319C - push {r4, r5, lr} - ldr r5, _081231B4 - ldr r1, [r5] - adds r0, r1, #0 - adds r0, #0x7a - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _081231B8 - movs r0, #2 - b _08123254 - .align 2, 0 -_081231B4: .4byte gUnknown_2039E10 -_081231B8: - adds r0, r1, #0 - adds r0, #0x7b - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _081231CE - adds r1, #0x54 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_081231CE: - ldr r1, [r5] - adds r0, r1, #0 - adds r0, #0x7b - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bge _081231E6 - adds r1, #0x54 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] -_081231E6: - ldr r1, [r5] - adds r0, r1, #0 - adds r0, #0x7c - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _081231FE - adds r1, #0x56 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_081231FE: - ldr r1, [r5] - adds r0, r1, #0 - adds r0, #0x7c - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bge _08123216 - adds r1, #0x56 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] -_08123216: - ldr r1, [r5] - adds r0, r1, #0 - adds r0, #0x54 - ldrh r0, [r0] - adds r1, #0x56 - ldrh r1, [r1] - bl GetRegionMapSectionIdAt_Internal - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r4, #0 - bl get_flagnr_blue_points - ldr r1, [r5] - strb r0, [r1, #2] - ldr r1, [r5] - ldrh r0, [r1] - cmp r4, r0 - beq _08123248 - strh r4, [r1] - adds r0, r1, #4 - ldrh r1, [r1] - movs r2, #0xa - bl GetMapName -_08123248: - bl RegionMap_GetPositionOfCursorWithinMapSection - ldr r1, [r5] - ldr r0, _0812325C - str r0, [r1, #0x18] - movs r0, #3 -_08123254: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0812325C: .4byte ProcessRegionMapInput_Full - thumb_func_end MoveRegionMapCursor_Full - - thumb_func_start ProcessRegionMapInput_Zoomed -ProcessRegionMapInput_Zoomed: @ 0x08123260 - push {r4, r5, r6, lr} - movs r4, #0 - ldr r3, _08123330 - ldr r0, [r3] - mov ip, r0 - adds r0, #0x6a - strh r4, [r0] - mov r5, ip - adds r5, #0x68 - strh r4, [r5] - ldr r2, _08123334 - ldrh r1, [r2, #0x2c] - movs r0, #0x40 - ands r0, r1 - adds r6, r3, #0 - adds r3, r2, #0 - cmp r0, #0 - beq _0812329A - mov r0, ip - adds r0, #0x5e - movs r2, #0 - ldrsh r1, [r0, r2] - movs r0, #0x34 - rsbs r0, r0, #0 - cmp r1, r0 - ble _0812329A - ldr r0, _08123338 - strh r0, [r5] - movs r4, #1 -_0812329A: - ldrh r1, [r3, #0x2c] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _081232BA - ldr r1, [r6] - adds r0, r1, #0 - adds r0, #0x5e - movs r5, #0 - ldrsh r0, [r0, r5] - cmp r0, #0x3b - bgt _081232BA - adds r1, #0x68 - movs r0, #1 - strh r0, [r1] - movs r4, #1 -_081232BA: - ldrh r1, [r3, #0x2c] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _081232E0 - ldr r2, [r6] - adds r0, r2, #0 - adds r0, #0x5c - movs r5, #0 - ldrsh r1, [r0, r5] - movs r0, #0x2c - rsbs r0, r0, #0 - cmp r1, r0 - ble _081232E0 - adds r1, r2, #0 - adds r1, #0x6a - ldr r0, _08123338 - strh r0, [r1] - movs r4, #1 -_081232E0: - ldrh r1, [r3, #0x2c] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08123300 - ldr r1, [r6] - adds r0, r1, #0 - adds r0, #0x5c - movs r2, #0 - ldrsh r0, [r0, r2] - cmp r0, #0xab - bgt _08123300 - adds r1, #0x6a - movs r0, #1 - strh r0, [r1] - movs r4, #1 -_08123300: - ldrh r2, [r3, #0x2e] - movs r0, #1 - ands r0, r2 - cmp r0, #0 - beq _0812330C - movs r4, #4 -_0812330C: - movs r0, #2 - ands r0, r2 - cmp r0, #0 - beq _08123316 - movs r4, #5 -_08123316: - cmp r4, #1 - bne _08123326 - ldr r0, [r6] - ldr r1, _0812333C - str r1, [r0, #0x18] - adds r0, #0x6c - movs r1, #0 - strh r1, [r0] -_08123326: - adds r0, r4, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08123330: .4byte gUnknown_2039E10 -_08123334: .4byte gUnknown_3002360 -_08123338: .4byte 0x0000FFFF -_0812333C: .4byte MoveRegionMapCursor_Zoomed - thumb_func_end ProcessRegionMapInput_Zoomed - - thumb_func_start MoveRegionMapCursor_Zoomed -MoveRegionMapCursor_Zoomed: @ 0x08123340 - push {r4, r5, lr} - ldr r5, _08123414 - 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, 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, r0, r2 - strh r0, [r1] - movs r4, #0 - ldrsh r0, [r1, r4] - movs r2, #0 - ldrsh r1, [r3, r2] - bl RegionMap_SetBG2XAndBG2Y - ldr r2, [r5] - adds r1, r2, #0 - adds r1, #0x6c - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #8 - bne _0812341C - 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 _08123398 - adds r0, #7 -_08123398: - asrs r0, r0, #3 - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - 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 _081233B2 - adds r0, #7 -_081233B2: - asrs r0, r0, #3 - adds r0, #2 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - adds r4, r2, #0 - adds r4, #0x64 - adds r0, r2, #0 - adds r0, #0x66 - ldrh r2, [r4] - cmp r3, r2 - bne _081233CE - ldrh r2, [r0] - cmp r1, r2 - beq _081233FE -_081233CE: - strh r3, [r4] - strh r1, [r0] - adds r0, r3, #0 - bl GetRegionMapSectionIdAt_Internal - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r4, #0 - bl get_flagnr_blue_points - ldr r1, [r5] - strb r0, [r1, #2] - ldr r1, [r5] - ldrh r3, [r1] - cmp r4, r3 - beq _081233FA - strh r4, [r1] - adds r0, r1, #4 - ldrh r1, [r1] - movs r2, #0xa - bl GetMapName -_081233FA: - bl RegionMap_GetPositionOfCursorWithinMapSection -_081233FE: - ldr r0, _08123414 - ldr r2, [r0] - adds r1, r2, #0 - adds r1, #0x6c - movs r0, #0 - strh r0, [r1] - ldr r0, _08123418 - str r0, [r2, #0x18] - movs r0, #3 - b _0812341E - .align 2, 0 -_08123414: .4byte gUnknown_2039E10 -_08123418: .4byte ProcessRegionMapInput_Zoomed -_0812341C: - movs r0, #2 -_0812341E: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MoveRegionMapCursor_Zoomed - - thumb_func_start sub_08123424 -sub_08123424: @ 0x08123424 - push {r4, r5, r6, lr} - ldr r1, _081234A0 - ldr r2, [r1] - adds r0, r2, #0 - adds r0, #0x78 - ldrb r3, [r0] - adds r5, r1, #0 - cmp r3, #0 - bne _081234A8 - subs r0, #0x1a - strh r3, [r0] - subs r0, #2 - strh r3, [r0] - str r3, [r2, #0x40] - str r3, [r2, #0x3c] - adds r4, r2, #0 - adds r4, #0x54 - ldrh r0, [r4] - lsls r0, r0, #3 - subs r0, #0x34 - adds r1, r2, #0 - adds r1, #0x60 - strh r0, [r1] - movs r0, #0x56 - adds r0, r0, r2 - mov ip, r0 - ldrh r0, [r0] - lsls r0, r0, #3 - subs r0, #0x44 - adds r3, r2, #0 - adds r3, #0x62 - strh r0, [r3] - movs r6, #0 - ldrsh r0, [r1, r6] - lsls r0, r0, #8 - cmp r0, #0 - bge _08123470 - adds r0, #0xf -_08123470: - asrs r0, r0, #4 - str r0, [r2, #0x44] - movs r1, #0 - ldrsh r0, [r3, r1] - lsls r0, r0, #8 - cmp r0, #0 - bge _08123480 - adds r0, #0xf -_08123480: - asrs r0, r0, #4 - str r0, [r2, #0x48] - ldrh r1, [r4] - adds r0, r2, #0 - adds r0, #0x64 - strh r1, [r0] - mov r3, ip - ldrh r0, [r3] - adds r1, r2, #0 - adds r1, #0x66 - strh r0, [r1] - movs r0, #0x80 - lsls r0, r0, #9 - str r0, [r2, #0x4c] - ldr r0, _081234A4 - b _08123506 - .align 2, 0 -_081234A0: .4byte gUnknown_2039E10 -_081234A4: .4byte 0xFFFFF800 -_081234A8: - adds r0, r2, #0 - adds r0, #0x5c - movs r6, #0 - ldrsh r0, [r0, r6] - lsls r0, r0, #8 - str r0, [r2, #0x3c] - adds r0, r2, #0 - adds r0, #0x5e - movs r1, #0 - ldrsh r0, [r0, r1] - lsls r0, r0, #8 - str r0, [r2, #0x40] - adds r0, r2, #0 - adds r0, #0x60 - movs r1, #0 - strh r1, [r0] - adds r0, #2 - strh r1, [r0] - ldr r0, [r2, #0x3c] - cmp r0, #0 - bge _081234D4 - adds r0, #0xf -_081234D4: - asrs r0, r0, #4 - rsbs r0, r0, #0 - str r0, [r2, #0x44] - ldr r0, [r2, #0x40] - cmp r0, #0 - bge _081234E2 - adds r0, #0xf -_081234E2: - asrs r0, r0, #4 - rsbs r0, r0, #0 - 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, r0, #8 - str r0, [r2, #0x4c] - movs r0, #0x80 - lsls r0, r0, #4 -_08123506: - str r0, [r2, #0x50] - ldr r0, [r5] - adds r0, #0x6e - movs r1, #0 - strh r1, [r0] - bl FreeRegionMapCursorSprite - bl HideRegionMapPlayerIcon - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08123424 - - thumb_func_start sub_08123520 -sub_08123520: @ 0x08123520 - push {r4, r5, r6, lr} - sub sp, #0xc - ldr r0, _08123538 - ldr r3, [r0] - adds r2, r3, #0 - adds r2, #0x6e - ldrh r1, [r2] - adds r5, r0, #0 - cmp r1, #0xf - bls _0812353C - movs r0, #0 - b _081236C4 - .align 2, 0 -_08123538: .4byte gUnknown_2039E10 -_0812353C: - adds r0, r1, #1 - movs r1, #0 - strh r0, [r2] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x10 - bne _081235B0 - str r1, [r3, #0x44] - str r1, [r3, #0x48] - adds r0, r3, #0 - adds r0, #0x60 - ldrh r1, [r0] - subs r0, #4 - strh r1, [r0] - adds r0, #6 - ldrh r0, [r0] - adds r1, r3, #0 - adds r1, #0x5e - strh r0, [r1] - adds r1, #0x1a - ldrb r0, [r1] - movs r2, #0x80 - lsls r2, r2, #9 - cmp r0, #0 - bne _08123572 - movs r2, #0x80 - lsls r2, r2, #8 -_08123572: - str r2, [r3, #0x4c] - movs r2, #0 - ldrb r0, [r1] - cmp r0, #0 - bne _0812357E - movs r2, #1 -_0812357E: - strb r2, [r1] - ldr r1, [r5] - adds r0, r1, #0 - adds r0, #0x78 - ldrb r0, [r0] - ldr r2, _081235A8 - cmp r0, #0 - bne _08123590 - ldr r2, _081235AC -_08123590: - str r2, [r1, #0x18] - adds r0, r1, #0 - adds r0, #0x58 - ldrh r0, [r0] - adds r1, #0x5a - ldrh r1, [r1] - bl CreateRegionMapCursor - bl UnhideRegionMapPlayerIcon - movs r4, #0 - b _08123692 - .align 2, 0 -_081235A8: .4byte ProcessRegionMapInput_Zoomed -_081235AC: .4byte ProcessRegionMapInput_Full -_081235B0: - ldr r2, [r3, #0x3c] - ldr r0, [r3, #0x44] - adds r2, r2, r0 - str r2, [r3, #0x3c] - ldr r0, [r3, #0x40] - ldr r1, [r3, #0x48] - adds r0, r0, r1 - str r0, [r3, #0x40] - asrs r2, r2, #8 - adds r4, r3, #0 - adds r4, #0x5c - strh r2, [r4] - ldr r0, [r3, #0x40] - asrs r0, r0, #8 - adds r1, r3, #0 - adds r1, #0x5e - strh r0, [r1] - ldr r0, [r3, #0x4c] - ldr r1, [r3, #0x50] - adds r0, r0, r1 - str r0, [r3, #0x4c] - ldr r2, [r3, #0x44] - cmp r2, #0 - bge _081235F0 - 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 _08123604 -_081235F0: - cmp r2, #0 - ble _08123614 - 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 _08123614 -_08123604: - ldr r3, [r5] - adds r0, r3, #0 - adds r0, #0x60 - ldrh r2, [r0] - subs r0, #4 - movs r1, #0 - strh r2, [r0] - str r1, [r3, #0x44] -_08123614: - ldr r2, [r5] - ldr r4, [r2, #0x48] - cmp r4, #0 - bge _08123630 - 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 _08123648 -_08123630: - cmp r4, #0 - ble _0812365A - 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 _0812365A -_08123648: - 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] -_0812365A: - ldr r0, _08123678 - ldr r2, [r0] - adds r0, r2, #0 - adds r0, #0x78 - ldrb r3, [r0] - cmp r3, #0 - bne _08123680 - ldr r1, [r2, #0x4c] - ldr r0, _0812367C - cmp r1, r0 - bgt _08123690 - adds r0, #1 - str r0, [r2, #0x4c] - str r3, [r2, #0x50] - b _08123690 - .align 2, 0 -_08123678: .4byte gUnknown_2039E10 -_0812367C: .4byte 0x00007FFF -_08123680: - ldr r0, [r2, #0x4c] - movs r1, #0x80 - lsls r1, r1, #9 - cmp r0, r1 - ble _08123690 - str r1, [r2, #0x4c] - movs r0, #0 - str r0, [r2, #0x50] -_08123690: - movs r4, #1 -_08123692: - ldr r0, _081236CC - 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, r2, #8 - lsrs r2, r2, #0x10 - str r2, [sp] - ldr r2, [r3, #0x4c] - lsls r2, r2, #8 - lsrs r2, r2, #0x10 - str r2, [sp, #4] - movs r2, #0 - str r2, [sp, #8] - movs r2, #0x38 - movs r3, #0x48 - bl CalcZoomScrollParams - adds r0, r4, #0 -_081236C4: - add sp, #0xc - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_081236CC: .4byte gUnknown_2039E10 - thumb_func_end sub_08123520 - - thumb_func_start CalcZoomScrollParams -CalcZoomScrollParams: @ 0x081236D0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - ldr r4, [sp, #0x24] - ldr r7, [sp, #0x28] - ldr r5, [sp, #0x2c] - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - mov r8, r4 - lsls r7, r7, #0x10 - adds r4, r7, #0 - lsrs r4, r4, #0x10 - mov sb, r4 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r4, _08123790 - ldr r6, [r4] - ldr r7, _08123794 - mov ip, r7 - adds r4, r5, #0 - adds r4, #0x40 - lsls r4, r4, #1 - add r4, ip - movs r7, #0 - ldrsh r4, [r4, r7] - str r4, [sp] - mov r7, r8 - muls r7, r4, r7 - adds r4, r7, #0 - asrs r4, r4, #8 - mov sl, r4 - str r4, [r6, #0x2c] - lsls r5, r5, #1 - add r5, ip - movs r7, #0 - ldrsh r5, [r5, r7] - rsbs r4, r5, #0 - mov r7, r8 - muls r7, r4, r7 - adds r4, r7, #0 - asrs r4, r4, #8 - mov ip, r4 - str r4, [r6, #0x30] - mov r7, sb - muls r7, r5, r7 - adds r5, r7, #0 - asrs r5, r5, #8 - str r5, [r6, #0x34] - ldr r7, [sp] - mov r4, sb - muls r4, r7, r4 - asrs r4, r4, #8 - mov r8, r4 - str r4, [r6, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - lsls r4, r2, #8 - adds r0, r0, r4 - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - adds r4, r3, #0 - muls r4, r5, r4 - mov r5, sl - muls r5, r2, r5 - adds r4, r4, r5 - subs r0, r0, r4 - str r0, [r6, #0x24] - lsls r1, r1, #0x10 - asrs r1, r1, #8 - lsls r0, r3, #8 - adds r1, r1, r0 - mov r0, r8 - muls r0, r3, r0 - mov r3, ip - muls r3, r2, r3 - adds r2, r3, #0 - adds r0, r0, r2 - subs r1, r1, r0 - str r1, [r6, #0x28] - adds r6, #0x7d - movs r0, #1 - strb r0, [r6] - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08123790: .4byte gUnknown_2039E10 -_08123794: .4byte gUnknown_82FA8CC - thumb_func_end CalcZoomScrollParams - - thumb_func_start RegionMap_SetBG2XAndBG2Y -RegionMap_SetBG2XAndBG2Y: @ 0x08123798 - ldr r2, _081237BC - ldr r2, [r2] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - movs r3, #0xe0 - lsls r3, r3, #5 - adds r0, r0, r3 - str r0, [r2, #0x24] - lsls r1, r1, #0x10 - asrs r1, r1, #8 - movs r0, #0x90 - lsls r0, r0, #6 - adds r1, r1, r0 - str r1, [r2, #0x28] - adds r2, #0x7d - movs r0, #1 - strb r0, [r2] - bx lr - .align 2, 0 -_081237BC: .4byte gUnknown_2039E10 - thumb_func_end RegionMap_SetBG2XAndBG2Y - - thumb_func_start UpdateRegionMapVideoRegs -UpdateRegionMapVideoRegs: @ 0x081237C0 - push {r4, lr} - ldr r4, _0812382C - ldr r1, [r4] - adds r0, r1, #0 - adds r0, #0x7d - ldrb r0, [r0] - cmp r0, #0 - beq _08123826 - ldrh r1, [r1, #0x2c] - movs r0, #0x20 - bl SetGpuReg - ldr r0, [r4] - ldrh r1, [r0, #0x34] - movs r0, #0x22 - bl SetGpuReg - ldr r0, [r4] - ldrh r1, [r0, #0x30] - movs r0, #0x24 - bl SetGpuReg - ldr r0, [r4] - ldrh r1, [r0, #0x38] - movs r0, #0x26 - bl SetGpuReg - ldr r0, [r4] - ldrh r1, [r0, #0x24] - movs r0, #0x28 - bl SetGpuReg - ldr r0, [r4] - ldrh r1, [r0, #0x26] - movs r0, #0x2a - bl SetGpuReg - ldr r0, [r4] - ldrh r1, [r0, #0x28] - movs r0, #0x2c - bl SetGpuReg - ldr r0, [r4] - ldrh r1, [r0, #0x2a] - movs r0, #0x2e - bl SetGpuReg - ldr r0, [r4] - adds r0, #0x7d - movs r1, #0 - strb r1, [r0] -_08123826: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812382C: .4byte gUnknown_2039E10 - thumb_func_end UpdateRegionMapVideoRegs - - thumb_func_start PokedexAreaScreen_UpdateRegionMapVariablesAndVideoRegs -PokedexAreaScreen_UpdateRegionMapVariablesAndVideoRegs: @ 0x08123830 - push {r4, r5, lr} - sub sp, #0xc - lsls r0, r0, #0x10 - asrs r4, r0, #0x10 - lsls r1, r1, #0x10 - asrs r5, r1, #0x10 - movs r0, #0x80 - lsls r0, r0, #1 - str r0, [sp] - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0x38 - movs r3, #0x48 - bl CalcZoomScrollParams - bl UpdateRegionMapVideoRegs - ldr r0, _08123874 - ldr r2, [r0] - ldr r1, [r2, #0x20] - cmp r1, #0 - beq _0812386C - rsbs r0, r4, #0 - strh r0, [r1, #0x24] - ldr r1, [r2, #0x20] - rsbs r0, r5, #0 - strh r0, [r1, #0x26] -_0812386C: - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08123874: .4byte gUnknown_2039E10 - thumb_func_end PokedexAreaScreen_UpdateRegionMapVariablesAndVideoRegs - - thumb_func_start GetRegionMapSectionIdAt_Internal -GetRegionMapSectionIdAt_Internal: @ 0x08123878 - push {lr} - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - lsls r1, r1, #0x10 - ldr r0, _08123898 - adds r1, r1, r0 - lsrs r2, r1, #0x10 - cmp r2, #0xe - bhi _08123892 - cmp r3, #0 - beq _08123892 - cmp r3, #0x1c - bls _0812389C -_08123892: - movs r0, #0xd5 - b _081238B0 - .align 2, 0 -_08123898: .4byte 0xFFFE0000 -_0812389C: - subs r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldr r1, _081238B4 - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r3, r0 - adds r0, r0, r1 - ldrb r0, [r0] -_081238B0: - pop {r1} - bx r1 - .align 2, 0 -_081238B4: .4byte gUnknown_857C53C - thumb_func_end GetRegionMapSectionIdAt_Internal - - thumb_func_start RegionMap_InitializeStateBasedOnPlayerLocation -RegionMap_InitializeStateBasedOnPlayerLocation: @ 0x081238B8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - ldr r0, _081238E4 - ldr r2, [r0] - movs r1, #4 - ldrsb r1, [r2, r1] - adds r3, r0, #0 - cmp r1, #0x19 - bne _081238E8 - ldrb r0, [r2, #5] - subs r0, #0x29 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bhi _081238E8 - bl RegionMap_InitializeStateBasedOnSSTidalLocation - b _08123BF8 - .align 2, 0 -_081238E4: .4byte gUnknown_3005AEC -_081238E8: - ldr r1, [r3] - movs r0, #4 - ldrsb r0, [r1, r0] - ldrb r1, [r1, #5] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - bl GetMapTypeByGroupAndId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, #1 - cmp r0, #8 - bhi _08123934 - lsls r0, r0, #2 - ldr r1, _0812390C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0812390C: .4byte _08123910 -_08123910: @ jump table - .4byte _08123934 @ case 0 - .4byte _08123934 @ case 1 - .4byte _08123934 @ case 2 - .4byte _08123978 @ case 3 - .4byte _08123934 @ case 4 - .4byte _08123934 @ case 5 - .4byte _08123978 @ case 6 - .4byte _08123A34 @ case 7 - .4byte _081239F0 @ case 8 -_08123934: - ldr r4, _0812396C - ldr r0, [r4] - ldr r3, _08123970 - ldrb r1, [r3, #0x14] - movs r2, #0 - strh r1, [r0] - adds r0, #0x7f - strb r2, [r0] - ldr r0, [r3] - ldrh r2, [r0] - ldrh r0, [r0, #4] - mov sb, r0 - ldr r0, _08123974 - ldr r0, [r0] - ldrh r6, [r0] - ldrh r3, [r0, #2] - ldr r1, [r4] - ldrh r0, [r1] - cmp r0, #0x45 - beq _08123962 - cmp r0, #0xcc - beq _08123962 - b _08123ACA -_08123962: - adds r1, #0x7f - movs r0, #1 - strb r0, [r1] - b _08123ACA - .align 2, 0 -_0812396C: .4byte gUnknown_2039E10 -_08123970: .4byte gUnknown_2036FB8 -_08123974: .4byte gUnknown_3005AEC -_08123978: - ldr r2, _081239C8 - ldrb r1, [r2, #0x1a] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081239D4 - ldr r4, _081239CC - ldr r1, [r4] - adds r0, r1, #0 - adds r0, #0x24 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, #0x25 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl Overworld_GetMapHeaderByGroupAndId - adds r5, r0, #0 - ldr r0, _081239D0 - ldr r0, [r0] - ldrb r1, [r5, #0x14] - strh r1, [r0] - adds r0, #0x7f - movs r1, #1 - strb r1, [r0] - ldr r0, [r5] - ldrh r2, [r0] - ldrh r0, [r0, #4] - mov sb, r0 - ldr r0, [r4] - ldrh r6, [r0, #0x28] - ldrh r3, [r0, #0x2a] - b _08123ACA - .align 2, 0 -_081239C8: .4byte gUnknown_2036FB8 -_081239CC: .4byte gUnknown_3005AEC -_081239D0: .4byte gUnknown_2039E10 -_081239D4: - ldr r0, _081239EC - ldr r0, [r0] - ldrb r1, [r2, #0x14] - strh r1, [r0] - adds r0, #0x7f - movs r1, #1 - strb r1, [r0] - movs r2, #1 - mov sb, r2 - movs r6, #1 - movs r3, #1 - b _08123ACA - .align 2, 0 -_081239EC: .4byte gUnknown_2039E10 -_081239F0: - ldr r4, _08123A2C - ldr r1, [r4] - movs r0, #0x14 - ldrsb r0, [r1, r0] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r1, #0x15] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl Overworld_GetMapHeaderByGroupAndId - adds r5, r0, #0 - ldr r0, _08123A30 - ldr r0, [r0] - ldrb r1, [r5, #0x14] - strh r1, [r0] - adds r0, #0x7f - movs r1, #1 - strb r1, [r0] - ldr r0, [r5] - ldrh r2, [r0] - ldrh r0, [r0, #4] - mov sb, r0 - ldr r0, [r4] - ldrh r6, [r0, #0x18] - ldrh r3, [r0, #0x1a] - b _08123ACA - .align 2, 0 -_08123A2C: .4byte gUnknown_3005AEC -_08123A30: .4byte gUnknown_2039E10 -_08123A34: - ldr r4, _08123A64 - ldr r0, [r4] - ldr r1, _08123A68 - ldrb r1, [r1, #0x14] - strh r1, [r0] - cmp r1, #0x57 - beq _08123A70 - ldr r0, _08123A6C - ldr r0, [r0] - adds r7, r0, #0 - adds r7, #0x24 - movs r0, #0 - ldrsb r0, [r7, r0] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - ldrsb r1, [r7, r1] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl Overworld_GetMapHeaderByGroupAndId - adds r5, r0, #0 - b _08123A96 - .align 2, 0 -_08123A64: .4byte gUnknown_2039E10 -_08123A68: .4byte gUnknown_2036FB8 -_08123A6C: .4byte gUnknown_3005AEC -_08123A70: - ldr r0, _08123AB0 - ldr r0, [r0] - adds r7, r0, #0 - adds r7, #0x14 - ldrb r0, [r0, #0x14] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - ldrsb r1, [r7, r1] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl Overworld_GetMapHeaderByGroupAndId - adds r5, r0, #0 - ldr r1, [r4] - ldrb r0, [r5, #0x14] - strh r0, [r1] -_08123A96: - ldr r4, _08123AB4 - ldr r0, [r4] - ldrb r0, [r0] - bl RegionMap_IsPlayerInCave - adds r1, r0, #0 - cmp r1, #0 - beq _08123AB8 - ldr r0, [r4] - adds r0, #0x7f - movs r1, #1 - b _08123ABC - .align 2, 0 -_08123AB0: .4byte gUnknown_3005AEC -_08123AB4: .4byte gUnknown_2039E10 -_08123AB8: - ldr r0, [r4] - adds r0, #0x7f -_08123ABC: - strb r1, [r0] - ldr r0, [r5] - ldrh r2, [r0] - ldrh r0, [r0, #4] - mov sb, r0 - ldrh r6, [r7, #4] - ldrh r3, [r7, #6] -_08123ACA: - str r6, [sp] - ldr r5, _08123B50 - ldr r4, _08123B54 - ldr r0, [r4] - mov sl, r0 - ldrh r7, [r0] - lsls r0, r7, #3 - adds r0, r0, r5 - str r0, [sp, #4] - ldrb r0, [r0, #2] - mov r8, r0 - adds r0, r2, #0 - mov r1, r8 - str r3, [sp, #8] - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r3, [sp, #8] - cmp r1, #0 - bne _08123AF6 - movs r1, #1 -_08123AF6: - adds r0, r6, #0 - str r3, [sp, #8] - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r3, [sp, #8] - cmp r6, r8 - blo _08123B10 - mov r0, r8 - subs r0, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_08123B10: - ldr r2, [sp, #4] - ldrb r4, [r2, #3] - mov r0, sb - adds r1, r4, #0 - str r3, [sp, #8] - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r3, [sp, #8] - cmp r1, #0 - bne _08123B2A - movs r1, #1 -_08123B2A: - adds r0, r3, #0 - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, r4 - blo _08123B3E - subs r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 -_08123B3E: - cmp r7, #0x29 - beq _08123B6A - cmp r7, #0x29 - bgt _08123B58 - cmp r7, #0x1d - beq _08123B62 - cmp r7, #0x24 - beq _08123BA0 - b _08123BD2 - .align 2, 0 -_08123B50: .4byte gUnknown_857CD6C -_08123B54: .4byte gUnknown_2039E10 -_08123B58: - cmp r7, #0x33 - beq _08123B6A - cmp r7, #0xcc - beq _08123BC4 - b _08123BD2 -_08123B62: - cmp r3, #0 - beq _08123BD2 - movs r6, #0 - b _08123BD2 -_08123B6A: - movs r6, #0 - ldr r0, _08123B9C - ldr r1, [r0] - movs r2, #0 - ldrsh r0, [r1, r2] - cmp r0, #0x20 - ble _08123B7A - movs r6, #1 -_08123B7A: - cmp r0, #0x33 - ble _08123B84 - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_08123B84: - movs r3, #0 - movs r2, #2 - ldrsh r0, [r1, r2] - cmp r0, #0x25 - ble _08123B90 - movs r3, #1 -_08123B90: - cmp r0, #0x38 - ble _08123BD2 - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - b _08123BD2 - .align 2, 0 -_08123B9C: .4byte gUnknown_3005AEC -_08123BA0: - movs r6, #0 - ldr r0, [sp] - cmp r0, #0xe - bls _08123BAA - movs r6, #1 -_08123BAA: - ldr r2, [sp] - cmp r2, #0x1c - bls _08123BB6 - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_08123BB6: - ldr r0, [sp] - cmp r0, #0x36 - bls _08123BD2 - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - b _08123BD2 -_08123BC4: - mov r0, sl - adds r0, #0x54 - mov r1, sl - adds r1, #0x56 - bl sub_08123F3C - b _08123BF8 -_08123BD2: - ldr r0, _08123C08 - ldr r2, [r0] - ldrh r0, [r2] - lsls r0, r0, #3 - adds r0, r0, r5 - ldrb r0, [r0] - adds r0, r6, r0 - adds r0, #1 - adds r1, r2, #0 - adds r1, #0x54 - strh r0, [r1] - ldrh r0, [r2] - lsls r0, r0, #3 - adds r0, r0, r5 - ldrb r0, [r0, #1] - adds r0, r3, r0 - adds r0, #2 - adds r2, #0x56 - strh r0, [r2] -_08123BF8: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08123C08: .4byte gUnknown_2039E10 - thumb_func_end RegionMap_InitializeStateBasedOnPlayerLocation - - thumb_func_start RegionMap_InitializeStateBasedOnSSTidalLocation -RegionMap_InitializeStateBasedOnSSTidalLocation: @ 0x08123C0C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - movs r7, #0 - movs r0, #0 - mov r8, r0 - mov r4, sp - adds r4, #1 - mov r5, sp - adds r5, #2 - add r6, sp, #4 - mov r0, sp - adds r1, r4, #0 - adds r2, r5, #0 - adds r3, r6, #0 - bl GetSSTidalLocation - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r5 - cmp r0, #4 - bhi _08123CA0 - lsls r0, r0, #2 - ldr r1, _08123C48 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08123C48: .4byte _08123C4C -_08123C4C: @ jump table - .4byte _08123CA0 @ case 0 - .4byte _08123C60 @ case 1 - .4byte _08123C70 @ case 2 - .4byte _08123C80 @ case 3 - .4byte _08123C90 @ case 4 -_08123C60: - ldr r2, _08123C6C - ldr r1, [r2] - movs r0, #8 - strh r0, [r1] - b _08123D1C - .align 2, 0 -_08123C6C: .4byte gUnknown_2039E10 -_08123C70: - ldr r2, _08123C7C - ldr r1, [r2] - movs r0, #0xc - strh r0, [r1] - b _08123D1C - .align 2, 0 -_08123C7C: .4byte gUnknown_2039E10 -_08123C80: - ldr r2, _08123C8C - ldr r1, [r2] - movs r0, #0x27 - strh r0, [r1] - b _08123D1C - .align 2, 0 -_08123C8C: .4byte gUnknown_2039E10 -_08123C90: - ldr r2, _08123C9C - ldr r1, [r2] - movs r0, #0x2e - strh r0, [r1] - b _08123D1C - .align 2, 0 -_08123C9C: .4byte gUnknown_2039E10 -_08123CA0: - mov r0, sp - ldrb r0, [r0] - ldrb r1, [r4] - bl Overworld_GetMapHeaderByGroupAndId - ldr r1, _08123D5C - mov sb, r1 - ldr r2, [r1] - ldrb r1, [r0, #0x14] - strh r1, [r2] - ldr r6, [r0] - ldr r1, _08123D60 - ldrh r0, [r2] - lsls r0, r0, #3 - adds r5, r0, r1 - ldrb r4, [r5, #2] - ldr r0, [r6] - adds r1, r4, #0 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - bne _08123CD2 - movs r1, #1 -_08123CD2: - mov r2, sl - movs r3, #0 - ldrsh r0, [r2, r3] - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - cmp r8, r4 - blo _08123CEE - subs r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 -_08123CEE: - ldrb r4, [r5, #3] - ldr r0, [r6, #4] - adds r1, r4, #0 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - bne _08123D02 - movs r1, #1 -_08123D02: - mov r2, sp - movs r3, #4 - ldrsh r0, [r2, r3] - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - mov r2, sb - cmp r7, r4 - blo _08123D1C - subs r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 -_08123D1C: - ldr r0, [r2] - adds r0, #0x7f - movs r1, #0 - strb r1, [r0] - ldr r2, [r2] - ldr r3, _08123D60 - ldrh r0, [r2] - lsls r0, r0, #3 - adds r0, r0, r3 - ldrb r0, [r0] - add r0, r8 - adds r0, #1 - adds r1, r2, #0 - adds r1, #0x54 - strh r0, [r1] - ldrh r0, [r2] - lsls r0, r0, #3 - adds r0, r0, r3 - ldrb r0, [r0, #1] - adds r0, r7, r0 - adds r0, #2 - adds r2, #0x56 - strh r0, [r2] - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08123D5C: .4byte gUnknown_2039E10 -_08123D60: .4byte gUnknown_857CD6C - thumb_func_end RegionMap_InitializeStateBasedOnSSTidalLocation - - thumb_func_start get_flagnr_blue_points -get_flagnr_blue_points: @ 0x08123D64 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r0, #0 - cmp r0, #9 - beq _08123E24 - cmp r0, #9 - bgt _08123DA6 - cmp r0, #4 - beq _08123DFC - cmp r0, #4 - bgt _08123D94 - cmp r0, #1 - beq _08123DE4 - cmp r0, #1 - bgt _08123D8A - cmp r0, #0 - beq _08123DDC - b _08123EA0 -_08123D8A: - cmp r0, #2 - beq _08123DEA - cmp r0, #3 - beq _08123DF4 - b _08123EA0 -_08123D94: - cmp r0, #6 - beq _08123E0C - cmp r0, #6 - blt _08123E04 - cmp r0, #7 - beq _08123E14 - cmp r0, #8 - beq _08123E1C - b _08123EA0 -_08123DA6: - cmp r0, #0xe - beq _08123E4C - cmp r0, #0xe - bgt _08123DC0 - cmp r0, #0xb - beq _08123E34 - cmp r0, #0xb - blt _08123E2C - cmp r0, #0xc - beq _08123E3C - cmp r0, #0xd - beq _08123E44 - b _08123EA0 -_08123DC0: - cmp r0, #0x3a - beq _08123E6C - cmp r0, #0x3a - bgt _08123DCE - cmp r0, #0xf - beq _08123E54 - b _08123EA0 -_08123DCE: - cmp r1, #0x49 - beq _08123E88 - cmp r1, #0xd5 - beq _08123DD8 - b _08123EA0 -_08123DD8: - movs r0, #0 - b _08123EA2 -_08123DDC: - ldr r0, _08123DE0 - b _08123E56 - .align 2, 0 -_08123DE0: .4byte 0x0000086F -_08123DE4: - movs r0, #0x87 - lsls r0, r0, #4 - b _08123E56 -_08123DEA: - ldr r0, _08123DF0 - b _08123E56 - .align 2, 0 -_08123DF0: .4byte 0x00000871 -_08123DF4: - ldr r0, _08123DF8 - b _08123E56 - .align 2, 0 -_08123DF8: .4byte 0x00000872 -_08123DFC: - ldr r0, _08123E00 - b _08123E56 - .align 2, 0 -_08123E00: .4byte 0x00000873 -_08123E04: - ldr r0, _08123E08 - b _08123E56 - .align 2, 0 -_08123E08: .4byte 0x00000874 -_08123E0C: - ldr r0, _08123E10 - b _08123E56 - .align 2, 0 -_08123E10: .4byte 0x00000875 -_08123E14: - ldr r0, _08123E18 - b _08123E56 - .align 2, 0 -_08123E18: .4byte 0x00000876 -_08123E1C: - ldr r0, _08123E20 - b _08123E56 - .align 2, 0 -_08123E20: .4byte 0x00000877 -_08123E24: - ldr r0, _08123E28 - b _08123E56 - .align 2, 0 -_08123E28: .4byte 0x00000878 -_08123E2C: - ldr r0, _08123E30 - b _08123E56 - .align 2, 0 -_08123E30: .4byte 0x00000879 -_08123E34: - ldr r0, _08123E38 - b _08123E56 - .align 2, 0 -_08123E38: .4byte 0x0000087A -_08123E3C: - ldr r0, _08123E40 - b _08123E56 - .align 2, 0 -_08123E40: .4byte 0x0000087B -_08123E44: - ldr r0, _08123E48 - b _08123E56 - .align 2, 0 -_08123E48: .4byte 0x0000087C -_08123E4C: - ldr r0, _08123E50 - b _08123E56 - .align 2, 0 -_08123E50: .4byte 0x0000087D -_08123E54: - ldr r0, _08123E68 -_08123E56: - bl FlagGet - lsls r0, r0, #0x18 - movs r1, #3 - cmp r0, #0 - beq _08123E64 - movs r1, #2 -_08123E64: - adds r0, r1, #0 - b _08123EA2 - .align 2, 0 -_08123E68: .4byte 0x0000087E -_08123E6C: - ldr r0, _08123E84 - bl FlagGet - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - rsbs r0, r1, #0 - orrs r0, r1 - asrs r0, r0, #0x1f - movs r1, #4 - ands r0, r1 - b _08123EA2 - .align 2, 0 -_08123E84: .4byte 0x000008A8 -_08123E88: - ldr r0, _08123E9C - bl FlagGet - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - b _08123EA2 - .align 2, 0 -_08123E9C: .4byte 0x000008A9 -_08123EA0: - movs r0, #1 -_08123EA2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end get_flagnr_blue_points - - thumb_func_start GetRegionMapSectionIdAt -GetRegionMapSectionIdAt: @ 0x08123EA8 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl GetRegionMapSectionIdAt_Internal - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetRegionMapSectionIdAt - - thumb_func_start CorrectSpecialMapSecId_Internal -CorrectSpecialMapSecId_Internal: @ 0x08123EC0 - push {lr} - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - movs r2, #0 - ldr r1, _08123EDC -_08123ECA: - ldrh r0, [r1] - cmp r0, r3 - bne _08123EE0 - bl RegionMap_GetTerraCaveMapSecId - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b _08123F0C - .align 2, 0 -_08123EDC: .4byte gUnknown_857D474 -_08123EE0: - adds r1, #2 - adds r2, #1 - cmp r2, #2 - bls _08123ECA - ldr r1, _08123EFC - ldrh r0, [r1] - cmp r0, #0xd5 - beq _08123F0A - adds r2, r1, #0 -_08123EF2: - ldrh r0, [r2] - cmp r0, r3 - bne _08123F00 - ldrh r0, [r1, #2] - b _08123F0C - .align 2, 0 -_08123EFC: .4byte gUnknown_857D414 -_08123F00: - adds r1, #4 - adds r2, #4 - ldrh r0, [r1] - cmp r0, #0xd5 - bne _08123EF2 -_08123F0A: - adds r0, r3, #0 -_08123F0C: - pop {r1} - bx r1 - thumb_func_end CorrectSpecialMapSecId_Internal - - thumb_func_start RegionMap_GetTerraCaveMapSecId -RegionMap_GetTerraCaveMapSecId: @ 0x08123F10 - push {lr} - ldr r0, _08123F34 - bl VarGet - subs r0, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0xf - bls _08123F24 - movs r1, #0 -_08123F24: - ldr r0, _08123F38 - lsls r1, r1, #0x10 - asrs r1, r1, #0xf - adds r1, r1, r0 - ldrh r0, [r1] - pop {r1} - bx r1 - .align 2, 0 -_08123F34: .4byte 0x00004037 -_08123F38: .4byte gUnknown_857D47A - thumb_func_end RegionMap_GetTerraCaveMapSecId - - thumb_func_start sub_08123F3C -sub_08123F3C: @ 0x08123F3C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r0, _08123F74 - bl VarGet - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r2, _08123F78 - adds r0, r0, r2 - lsrs r0, r0, #0x10 - cmp r0, #7 - bls _08123F58 - movs r1, #9 -_08123F58: - subs r1, #9 - lsls r1, r1, #0x10 - ldr r0, _08123F7C - lsrs r1, r1, #0xe - adds r1, r1, r0 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r4] - ldrh r0, [r1, #2] - adds r0, #2 - strh r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08123F74: .4byte 0x00004037 -_08123F78: .4byte 0xFFF70000 -_08123F7C: .4byte gUnknown_857D49C - thumb_func_end sub_08123F3C - - thumb_func_start RegionMap_IsPlayerInCave -RegionMap_IsPlayerInCave: @ 0x08123F80 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - movs r1, #0 - ldr r3, _08123F98 -_08123F8A: - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _08123F9C - movs r0, #1 - b _08123FA4 - .align 2, 0 -_08123F98: .4byte gUnknown_857D4BC -_08123F9C: - adds r1, #1 - cmp r1, #0 - beq _08123F8A - movs r0, #0 -_08123FA4: - pop {r1} - bx r1 - thumb_func_end RegionMap_IsPlayerInCave - - thumb_func_start CorrectSpecialMapSecId -CorrectSpecialMapSecId: @ 0x08123FA8 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl CorrectSpecialMapSecId_Internal - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CorrectSpecialMapSecId - - thumb_func_start RegionMap_GetPositionOfCursorWithinMapSection -RegionMap_GetPositionOfCursorWithinMapSection: @ 0x08123FBC - push {r4, r5, r6, lr} - ldr r0, _08123FD0 - ldr r1, [r0] - ldrh r0, [r1] - cmp r0, #0xd5 - bne _08123FD4 - movs r0, #0 - strb r0, [r1, #3] - b _0812403A - .align 2, 0 -_08123FD0: .4byte gUnknown_2039E10 -_08123FD4: - adds r0, r1, #0 - adds r0, #0x78 - ldrb r0, [r0] - cmp r0, #0 - bne _08123FE4 - adds r0, r1, #0 - adds r0, #0x54 - b _08123FE8 -_08123FE4: - adds r0, r1, #0 - adds r0, #0x64 -_08123FE8: - ldrh r4, [r0] - adds r0, #2 - ldrh r5, [r0] - movs r6, #0 - b _08124014 -_08123FF2: - subs r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - bl GetRegionMapSectionIdAt_Internal - ldr r1, _08124030 - ldr r1, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrh r1, [r1] - cmp r0, r1 - bne _08124014 - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_08124014: - cmp r4, #1 - bhi _08123FF2 - adds r0, r5, #0 - bl RegionMap_IsMapSecIdInNextRow - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08124034 - subs r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - movs r4, #0x1d - b _08124014 - .align 2, 0 -_08124030: .4byte gUnknown_2039E10 -_08124034: - ldr r0, _08124040 - ldr r0, [r0] - strb r6, [r0, #3] -_0812403A: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08124040: .4byte gUnknown_2039E10 - thumb_func_end RegionMap_GetPositionOfCursorWithinMapSection - - thumb_func_start RegionMap_IsMapSecIdInNextRow -RegionMap_IsMapSecIdInNextRow: @ 0x08124044 - push {r4, r5, lr} - lsls r0, r0, #0x10 - ldr r1, _08124058 - adds r0, r0, r1 - lsrs r5, r0, #0x10 - ldr r0, _0812405C - cmp r5, r0 - bne _08124064 - b _08124086 - .align 2, 0 -_08124058: .4byte 0xFFFF0000 -_0812405C: .4byte 0x0000FFFF -_08124060: - movs r0, #1 - b _08124088 -_08124064: - movs r4, #1 -_08124066: - adds r0, r4, #0 - adds r1, r5, #0 - bl GetRegionMapSectionIdAt_Internal - ldr r1, _08124090 - ldr r1, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrh r1, [r1] - cmp r0, r1 - beq _08124060 - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x1c - bls _08124066 -_08124086: - movs r0, #0 -_08124088: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08124090: .4byte gUnknown_2039E10 - thumb_func_end RegionMap_IsMapSecIdInNextRow - - thumb_func_start SpriteCallback_CursorFull -SpriteCallback_CursorFull: @ 0x08124094 - push {r4, lr} - adds r2, r0, #0 - ldr r0, _081240D8 - ldr r1, [r0] - adds r3, r1, #0 - adds r3, #0x7a - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #0 - beq _081240D2 - adds r0, r1, #0 - adds r0, #0x7b - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #1 - ldrh r4, [r2, #0x20] - adds r0, r0, r4 - strh r0, [r2, #0x20] - adds r0, r1, #0 - adds r0, #0x7c - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #1 - ldrh r1, [r2, #0x22] - adds r0, r0, r1 - strh r0, [r2, #0x22] - ldrb r0, [r3] - subs r0, #1 - strb r0, [r3] -_081240D2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081240D8: .4byte gUnknown_2039E10 - thumb_func_end SpriteCallback_CursorFull - - thumb_func_start sub_081240DC -sub_081240DC: @ 0x081240DC - bx lr - .align 2, 0 - thumb_func_end sub_081240DC - - thumb_func_start CreateRegionMapCursor -CreateRegionMapCursor: @ 0x081240E0 - push {r4, r5, r6, r7, lr} - sub sp, #0x28 - lsls r0, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - ldr r1, _08124150 - ldr r2, [r1, #4] - ldr r1, [r1] - str r1, [sp, #0x20] - str r2, [sp, #0x24] - mov r2, sp - ldr r1, _08124154 - ldm r1!, {r3, r4, r5} - stm r2!, {r3, r4, r5} - ldm r1!, {r3, r4, r5} - stm r2!, {r3, r4, r5} - lsrs r3, r0, #0x10 - add r2, sp, #0x18 - ldrh r1, [r2, #4] - orrs r1, r0 - str r1, [r2, #4] - mov r0, sp - strh r3, [r0] - ldr r0, _08124158 - ldr r4, [r0] - adds r0, r4, #0 - adds r0, #0x58 - strh r3, [r0] - ldr r5, _0812415C - add r1, sp, #0x20 - ldr r0, [r1, #4] - ands r0, r5 - orrs r0, r6 - str r0, [r1, #4] - mov r0, sp - strh r6, [r0, #2] - 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 _08124164 - movs r1, #0xc2 - lsls r1, r1, #1 - adds r0, r3, r1 - str r0, [sp, #0x18] - ldr r0, [r2, #4] - ands r0, r5 - subs r1, #0x84 - orrs r0, r1 - str r0, [r2, #4] - ldr r0, _08124160 - b _0812417A - .align 2, 0 -_08124150: .4byte gUnknown_857D4F0 -_08124154: .4byte gUnknown_857D4F8 -_08124158: .4byte gUnknown_2039E10 -_0812415C: .4byte 0xFFFF0000 -_08124160: .4byte SpriteCallback_CursorFull -_08124164: - movs r3, #0xa1 - lsls r3, r3, #2 - adds r0, r4, r3 - str r0, [sp, #0x18] - ldr r0, [r2, #4] - ands r0, r5 - movs r1, #0xc0 - lsls r1, r1, #3 - orrs r0, r1 - str r0, [r2, #4] - ldr r0, _081241DC -_0812417A: - 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, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x40 - beq _08124234 - ldr r4, _081241E0 - ldr r2, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _081241E4 - adds r3, r0, r1 - str r3, [r2, #0x1c] - adds r2, #0x78 - ldrb r0, [r2] - cmp r0, #1 - bne _081241E8 - ldrb r1, [r3, #3] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r3, #3] - ldr r2, [r4] - ldr r1, [r2, #0x1c] - ldrh r0, [r1, #0x20] - subs r0, #8 - strh r0, [r1, #0x20] - ldr r1, [r2, #0x1c] - ldrh r0, [r1, #0x22] - subs r0, #8 - strh r0, [r1, #0x22] - ldr r0, [r2, #0x1c] - movs r1, #1 - bl StartSpriteAnim - b _08124210 - .align 2, 0 -_081241DC: .4byte sub_081240DC -_081241E0: .4byte gUnknown_2039E10 -_081241E4: .4byte gUnknown_20205AC -_081241E8: - ldrb r1, [r3, #3] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r3, #3] - ldr r1, [r4] - ldr r2, [r1, #0x1c] - adds r0, r1, #0 - adds r0, #0x54 - ldrh r0, [r0] - lsls r0, r0, #3 - adds r0, #4 - strh r0, [r2, #0x20] - ldr r2, [r1, #0x1c] - adds r1, #0x56 - ldrh r0, [r1] - lsls r0, r0, #3 - adds r0, #4 - strh r0, [r2, #0x22] -_08124210: - ldr r4, _0812423C - ldr r0, [r4] - ldr r1, [r0, #0x1c] - movs r0, #2 - strh r0, [r1, #0x30] - adds r0, r6, #0 - bl IndexOfSpritePaletteTag - ldr r1, [r4] - ldr r2, [r1, #0x1c] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x14 - ldr r4, _08124240 - adds r0, r0, r4 - strh r0, [r2, #0x32] - ldr r1, [r1, #0x1c] - movs r0, #1 - strh r0, [r1, #0x34] -_08124234: - add sp, #0x28 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0812423C: .4byte gUnknown_2039E10 -_08124240: .4byte 0x00000101 - thumb_func_end CreateRegionMapCursor - - thumb_func_start FreeRegionMapCursorSprite -FreeRegionMapCursorSprite: @ 0x08124244 - push {r4, lr} - ldr r4, _08124270 - ldr r0, [r4] - ldr r0, [r0, #0x1c] - cmp r0, #0 - beq _08124268 - bl DestroySprite - ldr r0, [r4] - adds r0, #0x58 - ldrh r0, [r0] - bl FreeSpriteTilesByTag - ldr r0, [r4] - adds r0, #0x5a - ldrh r0, [r0] - bl FreeSpritePaletteByTag -_08124268: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08124270: .4byte gUnknown_2039E10 - thumb_func_end FreeRegionMapCursorSprite - - thumb_func_start sub_08124274 -sub_08124274: @ 0x08124274 - ldr r0, _08124280 - ldr r0, [r0] - ldr r1, [r0, #0x1c] - movs r0, #1 - strh r0, [r1, #0x34] - bx lr - .align 2, 0 -_08124280: .4byte gUnknown_2039E10 - thumb_func_end sub_08124274 - - thumb_func_start sub_08124284 -sub_08124284: @ 0x08124284 - ldr r0, _08124290 - ldr r0, [r0] - ldr r1, [r0, #0x1c] - movs r0, #0 - strh r0, [r1, #0x34] - bx lr - .align 2, 0 -_08124290: .4byte gUnknown_2039E10 - thumb_func_end sub_08124284 - - thumb_func_start CreateRegionMapPlayerIcon -CreateRegionMapPlayerIcon: @ 0x08124294 - push {r4, r5, r6, lr} - sub sp, #0x28 - lsls r0, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r2, _081242EC - str r2, [sp, #0x18] - movs r2, #0x80 - add r6, sp, #0x18 - lsrs r3, r0, #0x10 - orrs r0, r2 - str r0, [r6, #4] - ldr r0, _081242F0 - str r0, [sp, #0x20] - ldr r2, _081242F4 - add r4, sp, #0x20 - ldr r0, [r4, #4] - ands r0, r2 - orrs r0, r1 - str r0, [r4, #4] - mov r0, sp - movs r5, #0 - strh r3, [r0] - strh r1, [r0, #2] - ldr r0, _081242F8 - str r0, [sp, #4] - ldr r0, _081242FC - str r0, [sp, #8] - str r5, [sp, #0xc] - ldr r0, _08124300 - str r0, [sp, #0x10] - ldr r0, _08124304 - str r0, [sp, #0x14] - ldr r0, _08124308 - ldrb r0, [r0, #0x14] - bl sub_08124674 - cmp r0, #0 - beq _08124310 - ldr r0, _0812430C - ldr r0, [r0] - str r5, [r0, #0x20] - b _081243B0 - .align 2, 0 -_081242EC: .4byte gUnknown_857C41C -_081242F0: .4byte gUnknown_857C3FC -_081242F4: .4byte 0xFFFF0000 -_081242F8: .4byte gUnknown_857D510 -_081242FC: .4byte gUnknown_857D520 -_08124300: .4byte gUnknown_82BF310 -_08124304: .4byte sub_08007140 -_08124308: .4byte gUnknown_2036FB8 -_0812430C: .4byte gUnknown_2039E10 -_08124310: - ldr r0, _08124378 - ldr r0, [r0] - ldrb r0, [r0, #8] - cmp r0, #1 - bne _08124322 - ldr r0, _0812437C - str r0, [sp, #0x18] - ldr r0, _08124380 - str r0, [sp, #0x20] -_08124322: - adds r0, r6, #0 - bl LoadSpriteSheet - adds r0, r4, #0 - bl LoadSpritePalette - mov r0, sp - movs r1, #0 - movs r2, #0 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08124384 - ldr r2, [r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _08124388 - adds r1, r1, r0 - str r1, [r2, #0x20] - adds r0, r2, #0 - adds r0, #0x78 - ldrb r0, [r0] - cmp r0, #0 - bne _08124390 - adds r0, r2, #0 - adds r0, #0x74 - ldrh r0, [r0] - lsls r0, r0, #3 - adds r0, #4 - strh r0, [r1, #0x20] - ldr r1, [r2, #0x20] - adds r0, r2, #0 - adds r0, #0x76 - ldrh r0, [r0] - lsls r0, r0, #3 - adds r0, #4 - strh r0, [r1, #0x22] - ldr r1, [r2, #0x20] - ldr r0, _0812438C - b _081243AE - .align 2, 0 -_08124378: .4byte gUnknown_3005AF0 -_0812437C: .4byte gUnknown_857C4BC -_08124380: .4byte gUnknown_857C49C -_08124384: .4byte gUnknown_2039E10 -_08124388: .4byte gUnknown_20205AC -_0812438C: .4byte sub_081244F8 -_08124390: - adds r0, r2, #0 - adds r0, #0x74 - ldrh r0, [r0] - lsls r0, 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, r0, #4 - subs r0, #0x42 - strh r0, [r1, #0x22] - ldr r1, [r2, #0x20] - ldr r0, _081243B8 -_081243AE: - str r0, [r1, #0x1c] -_081243B0: - add sp, #0x28 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081243B8: .4byte RegionMapPlayerIconSpriteCallback_Zoomed - thumb_func_end CreateRegionMapPlayerIcon - - thumb_func_start HideRegionMapPlayerIcon -HideRegionMapPlayerIcon: @ 0x081243BC - push {lr} - ldr r3, _081243E0 - ldr r0, [r3] - ldr r2, [r0, #0x20] - cmp r2, #0 - beq _081243DA - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r3] - ldr r1, [r0, #0x20] - ldr r0, _081243E4 - str r0, [r1, #0x1c] -_081243DA: - pop {r0} - bx r0 - .align 2, 0 -_081243E0: .4byte gUnknown_2039E10 -_081243E4: .4byte sub_08007140 - thumb_func_end HideRegionMapPlayerIcon - - thumb_func_start UnhideRegionMapPlayerIcon -UnhideRegionMapPlayerIcon: @ 0x081243E8 - push {lr} - ldr r0, _08124420 - ldr r3, [r0] - ldr r1, [r3, #0x20] - cmp r1, #0 - beq _0812445E - adds r0, r3, #0 - adds r0, #0x78 - ldrb r0, [r0] - cmp r0, #1 - bne _08124428 - adds r0, r3, #0 - adds r0, #0x74 - ldrh r0, [r0] - lsls r0, 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, r0, #4 - subs r0, #0x42 - strh r0, [r1, #0x22] - ldr r1, [r3, #0x20] - ldr r0, _08124424 - b _08124450 - .align 2, 0 -_08124420: .4byte gUnknown_2039E10 -_08124424: .4byte RegionMapPlayerIconSpriteCallback_Zoomed -_08124428: - adds r0, r3, #0 - adds r0, #0x74 - ldrh r0, [r0] - lsls r0, r0, #3 - adds r0, #4 - movs r2, #0 - strh r0, [r1, #0x20] - ldr r1, [r3, #0x20] - adds r0, r3, #0 - adds r0, #0x76 - ldrh r0, [r0] - lsls r0, r0, #3 - adds r0, #4 - 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, _08124464 -_08124450: - str r0, [r1, #0x1c] - adds r1, #0x3e - ldrb r2, [r1] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] -_0812445E: - pop {r0} - bx r0 - .align 2, 0 -_08124464: .4byte sub_081244F8 - thumb_func_end UnhideRegionMapPlayerIcon - - thumb_func_start RegionMapPlayerIconSpriteCallback_Zoomed -RegionMapPlayerIconSpriteCallback_Zoomed: @ 0x08124468 - push {r4, lr} - adds r3, r0, #0 - ldr r0, _081244CC - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0x5c - movs r4, #0 - ldrsh r2, [r0, r4] - lsls r2, r2, #1 - rsbs r2, r2, #0 - strh r2, [r3, #0x24] - adds r1, #0x5e - movs r4, #0 - ldrsh r0, [r1, r4] - lsls r0, r0, #1 - rsbs r0, r0, #0 - strh r0, [r3, #0x26] - ldrh r1, [r3, #0x22] - adds r1, r1, r0 - adds r0, r3, #0 - adds r0, #0x29 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, r0, r1 - strh r0, [r3, #0x2e] - ldrh r1, [r3, #0x20] - adds r1, r1, r2 - adds r2, r3, #0 - adds r2, #0x28 - ldrb r2, [r2] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - adds r2, r2, r1 - strh r2, [r3, #0x30] - adds r0, #8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xb0 - bhi _081244C8 - lsls r0, r2, #0x10 - asrs r2, r0, #0x10 - movs r0, #8 - rsbs r0, r0, #0 - cmp r2, r0 - blt _081244C8 - cmp r2, #0xf8 - ble _081244D0 -_081244C8: - movs r0, #0 - b _081244D2 - .align 2, 0 -_081244CC: .4byte gUnknown_2039E10 -_081244D0: - movs r0, #1 -_081244D2: - strh r0, [r3, #0x32] - movs r1, #0x32 - ldrsh r0, [r3, r1] - cmp r0, #1 - bne _081244E4 - adds r0, r3, #0 - bl RegionMapPlayerIconSpriteCallback - b _081244F0 -_081244E4: - adds r0, r3, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_081244F0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RegionMapPlayerIconSpriteCallback_Zoomed - - thumb_func_start sub_081244F8 -sub_081244F8: @ 0x081244F8 - push {lr} - bl RegionMapPlayerIconSpriteCallback - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081244F8 - - thumb_func_start RegionMapPlayerIconSpriteCallback -RegionMapPlayerIconSpriteCallback: @ 0x08124504 - push {lr} - adds r2, r0, #0 - ldr r0, _08124544 - ldr r0, [r0] - adds r0, #0x7e - ldrb r0, [r0] - cmp r0, #0 - beq _08124548 - ldrh r0, [r2, #0x3c] - adds r0, #1 - strh r0, [r2, #0x3c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x10 - ble _08124554 - movs r0, #0 - strh r0, [r2, #0x3c] - adds r3, r2, #0 - adds r3, #0x3e - ldrb r2, [r3] - lsrs r1, r2, #2 - movs r0, #1 - eors r1, r0 - ands r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _08124554 - .align 2, 0 -_08124544: .4byte gUnknown_2039E10 -_08124548: - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_08124554: - pop {r0} - bx r0 - thumb_func_end RegionMapPlayerIconSpriteCallback - - thumb_func_start sub_08124558 -sub_08124558: @ 0x08124558 - push {lr} - ldr r0, _08124574 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0x7f - ldrb r0, [r0] - cmp r0, #0 - beq _0812456E - adds r1, #0x7e - movs r0, #1 - strb r0, [r1] -_0812456E: - pop {r0} - bx r0 - .align 2, 0 -_08124574: .4byte gUnknown_2039E10 - thumb_func_end sub_08124558 - - thumb_func_start GetMapName -GetMapName: @ 0x08124578 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r4, r2, #0x10 - cmp r1, #0x56 - bne _08124590 - bl sub_080EA46C - adds r1, r0, #0 - b _081245BE -_08124590: - cmp r1, #0xd4 - bhi _081245AC - ldr r0, _081245A8 - lsls r1, r1, #3 - adds r0, #4 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r5, #0 - bl StringCopy - adds r1, r0, #0 - b _081245BE - .align 2, 0 -_081245A8: .4byte gUnknown_857CD6C -_081245AC: - cmp r4, #0 - bne _081245B2 - movs r4, #0x12 -_081245B2: - adds r0, r5, #0 - movs r1, #0 - adds r2, r4, #0 - bl StringFill - b _081245E2 -_081245BE: - cmp r4, #0 - beq _081245E0 - subs r0, r1, r5 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r4 - bhs _081245DC - movs r2, #0 -_081245CE: - strb r2, [r1] - adds r1, #1 - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r4 - blo _081245CE -_081245DC: - movs r0, #0xff - strb r0, [r1] -_081245E0: - adds r0, r1, #0 -_081245E2: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end GetMapName - - thumb_func_start sub_081245E8 -sub_081245E8: @ 0x081245E8 - push {lr} - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - cmp r1, #0x56 - beq _08124604 - cmp r1, #0x57 - bne _08124610 - ldr r1, _08124600 - bl StringCopy - b _08124616 - .align 2, 0 -_08124600: .4byte gUnknown_85CBEBA -_08124604: - ldr r1, _0812460C - bl StringCopy - b _08124616 - .align 2, 0 -_0812460C: .4byte gUnknown_85CBEC1 -_08124610: - movs r2, #0 - bl GetMapName -_08124616: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081245E8 - - thumb_func_start sub_0812461C -sub_0812461C: @ 0x0812461C - push {lr} - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - cmp r1, #0x42 - beq _0812462C - bl sub_081245E8 - b _08124632 -_0812462C: - ldr r1, _08124638 - bl StringCopy -_08124632: - pop {r1} - bx r1 - .align 2, 0 -_08124638: .4byte gUnknown_85CBEC7 - thumb_func_end sub_0812461C - - thumb_func_start sub_0812463C -sub_0812463C: @ 0x0812463C - push {r4, r5, lr} - ldr r5, [sp, #0xc] - lsls r0, r0, #0x10 - ldr r4, _08124660 - lsrs r0, r0, #0xd - adds r0, r0, r4 - ldrb r4, [r0] - strh r4, [r1] - ldrb r1, [r0, #1] - strh r1, [r2] - ldrb r1, [r0, #2] - strh r1, [r3] - ldrb r0, [r0, #3] - strh r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08124660: .4byte gUnknown_857CD6C - thumb_func_end sub_0812463C - - thumb_func_start sub_08124664 -sub_08124664: @ 0x08124664 - ldr r0, _08124670 - ldr r0, [r0] - adds r0, #0x78 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08124670: .4byte gUnknown_2039E10 - thumb_func_end sub_08124664 - - thumb_func_start sub_08124674 -sub_08124674: @ 0x08124674 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - movs r1, #0 - ldr r3, _0812468C -_0812467E: - adds r0, r1, r3 - ldrb r0, [r0] - cmp r2, r0 - bne _08124690 - movs r0, #1 - b _08124698 - .align 2, 0 -_0812468C: .4byte gUnknown_857D524 -_08124690: - adds r1, #1 - cmp r1, #2 - bls _0812467E - movs r0, #0 -_08124698: - pop {r1} - bx r1 - thumb_func_end sub_08124674 - - thumb_func_start MCB2_FlyMap -MCB2_FlyMap: @ 0x0812469C - push {r4, lr} - sub sp, #0xc - ldr r0, _081246BC - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0xa - bls _081246B0 - b _081248B6 -_081246B0: - lsls r0, r0, #2 - ldr r1, _081246C0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081246BC: .4byte gUnknown_3002360 -_081246C0: .4byte _081246C4 -_081246C4: @ jump table - .4byte _081246F0 @ case 0 - .4byte _08124772 @ case 1 - .4byte _08124788 @ case 2 - .4byte _08124798 @ case 3 - .4byte _081247A8 @ case 4 - .4byte _081247F0 @ case 5 - .4byte _08124804 @ case 6 - .4byte _08124818 @ case 7 - .4byte _08124858 @ case 8 - .4byte _0812485E @ case 9 - .4byte _08124878 @ case 10 -_081246F0: - movs r0, #0 - bl SetVBlankCallback - movs r0, #0 - movs r1, #0 - bl SetGpuReg - movs r0, #0x10 - movs r1, #0 - bl SetGpuReg - movs r0, #0x12 - movs r1, #0 - bl SetGpuReg - movs r0, #0x14 - movs r1, #0 - bl SetGpuReg - movs r0, #0x16 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1a - movs r1, #0 - bl SetGpuReg - movs r0, #0x18 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1c - movs r1, #0 - bl SetGpuReg - movs r0, #0x1e - movs r1, #0 - bl SetGpuReg - ldr r4, _08124754 - ldr r0, _08124758 - bl sub_08000BC8 - str r0, [r4] - cmp r0, #0 - bne _08124760 - ldr r0, _0812475C - bl SetMainCallback2 - b _081248B6 - .align 2, 0 -_08124754: .4byte gUnknown_2039E14 -_08124758: .4byte 0x00000A74 -_0812475C: .4byte CB2_ReturnToFieldWithOpenMenu -_08124760: - bl ResetPaletteFade - bl ResetSpriteData - bl FreeSpriteTileRanges - bl FreeAllSpritePalettes - b _081248A8 -_08124772: - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _08124784 - movs r0, #1 - movs r2, #3 - bl InitBgsFromTemplates - b _081248A8 - .align 2, 0 -_08124784: .4byte gUnknown_857D7D4 -_08124788: - ldr r0, _08124794 - bl InitWindows - bl sub_08004480 - b _081248A8 - .align 2, 0 -_08124794: .4byte gUnknown_857D7E0 -_08124798: - movs r0, #0 - movs r1, #0x51 - movs r2, #0xd0 - bl LoadUserWindowBorderGfx - bl sub_08199640 - b _081248A8 -_081247A8: - ldr r4, _081247E4 - ldr r0, [r4] - adds r0, #8 - movs r1, #0 - bl InitRegionMap - movs r0, #0 - movs r1, #0 - bl CreateRegionMapCursor - movs r0, #1 - movs r1, #1 - bl CreateRegionMapPlayerIcon - ldr r0, [r4] - ldrh r1, [r0, #8] - strh r1, [r0, #6] - ldr r1, _081247E8 - adds r0, r0, r1 - movs r1, #0 - movs r2, #0xa - bl StringFill - ldr r1, _081247EC - movs r0, #1 - str r0, [r1] - bl sub_08124910 - b _081248A8 - .align 2, 0 -_081247E4: .4byte gUnknown_2039E14 -_081247E8: .4byte 0x00000A4C -_081247EC: .4byte gUnknown_3001180 -_081247F0: - ldr r0, _081247FC - ldr r1, _08124800 - bl LZ77UnCompVram - b _081248A8 - .align 2, 0 -_081247FC: .4byte gUnknown_857D548 -_08124800: .4byte 0x0600C000 -_08124804: - ldr r0, _08124810 - ldr r1, _08124814 - bl LZ77UnCompVram - b _081248A8 - .align 2, 0 -_08124810: .4byte gUnknown_857D580 -_08124814: .4byte 0x0600F000 -_08124818: - ldr r0, _08124850 - movs r1, #0x10 - movs r2, #0x20 - bl LoadPalette - movs r0, #2 - bl PutWindowTilemap - movs r0, #2 - movs r1, #0 - bl FillWindowPixelBuffer - ldr r2, _08124854 - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - movs r0, #2 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - b _081248A8 - .align 2, 0 -_08124850: .4byte gUnknown_857D528 -_08124854: .4byte gUnknown_85C9398 -_08124858: - bl sub_08124A58 - b _081248A8 -_0812485E: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - ldr r0, _08124874 - bl SetVBlankCallback - b _081248A8 - .align 2, 0 -_08124874: .4byte CheckLeadMonTough -_08124878: - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuRegBits - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - ldr r0, _081248C0 - bl sub_08124900 - ldr r0, _081248C4 - bl SetMainCallback2 -_081248A8: - ldr r1, _081248C8 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_081248B6: - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081248C0: .4byte sub_08124CFC -_081248C4: .4byte sub_081248E0 -_081248C8: .4byte gUnknown_3002360 - thumb_func_end MCB2_FlyMap - - thumb_func_start CheckLeadMonTough -CheckLeadMonTough: @ 0x081248CC - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CheckLeadMonTough - - thumb_func_start sub_081248E0 -sub_081248E0: @ 0x081248E0 - push {lr} - ldr r0, _081248FC - ldr r0, [r0] - ldr r0, [r0] - bl _call_via_r0 - bl AnimateSprites - thumb_func_end sub_081248E0 - - thumb_func_start sub_081248F0 -sub_081248F0: @ 0x081248F0 - bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram - pop {r0} - bx r0 - .align 2, 0 -_081248FC: .4byte gUnknown_2039E14 - thumb_func_end sub_081248F0 - - thumb_func_start sub_08124900 -sub_08124900: @ 0x08124900 - ldr r1, _0812490C - ldr r1, [r1] - str r0, [r1] - movs r0, #0 - strh r0, [r1, #4] - bx lr - .align 2, 0 -_0812490C: .4byte gUnknown_2039E14 - thumb_func_end sub_08124900 - - thumb_func_start sub_08124910 -sub_08124910: @ 0x08124910 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - ldr r2, _081249B4 - ldr r0, [r2] - ldrb r0, [r0, #0xa] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bhi _08124A14 - movs r7, #0 - movs r3, #0 - ldr r0, _081249B8 - mov ip, r0 - adds r5, r2, #0 - movs r6, #0 -_08124930: - ldr r0, [r5] - lsls r1, r3, #3 - mov r2, ip - adds r4, r1, r2 - ldrh r0, [r0, #8] - ldrh r1, [r4, #4] - cmp r0, r1 - bne _081249C0 - ldrh r0, [r4, #6] - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081249CA - ldr r0, [r5] - ldrb r0, [r0, #0xb] - ldr r1, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl StringLength - movs r7, #1 - movs r0, #0 - movs r1, #0 - bl sub_08198134 - movs r0, #1 - movs r1, #0 - movs r2, #0x51 - movs r3, #0xd - bl DrawStdFrameWithCustomTileAndPalette - ldr r2, [r5] - adds r2, #0xc - movs r0, #2 - str r0, [sp] - str r6, [sp, #4] - str r6, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - ldr r0, [r5] - ldrb r0, [r0, #0xb] - ldr r1, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r2, [r0] - movs r0, #0x12 - str r0, [sp] - str r6, [sp, #4] - str r6, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r3, #0x10 - bl AddTextPrinterParameterized - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, _081249BC - str r7, [r0] - b _081249CA - .align 2, 0 -_081249B4: .4byte gUnknown_2039E14 -_081249B8: .4byte gUnknown_857D7CC -_081249BC: .4byte gUnknown_3001180 -_081249C0: - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #0 - beq _08124930 -_081249CA: - cmp r7, #0 - bne _08124A4A - ldr r4, _08124A0C - ldr r0, [r4] - cmp r0, #1 - bne _081249EA - movs r0, #1 - movs r1, #0 - bl sub_08198134 - movs r0, #0 - movs r1, #0 - movs r2, #0x51 - movs r3, #0xd - bl DrawStdFrameWithCustomTileAndPalette -_081249EA: - ldr r0, _08124A10 - ldr r2, [r0] - adds r2, #0xc - movs r0, #2 - str r0, [sp] - str r7, [sp, #4] - str r7, [sp, #8] - movs r0, #0 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - str r7, [r4] - b _08124A4A - .align 2, 0 -_08124A0C: .4byte gUnknown_3001180 -_08124A10: .4byte gUnknown_2039E14 -_08124A14: - ldr r4, _08124A54 - ldr r0, [r4] - cmp r0, #1 - bne _08124A30 - movs r0, #1 - movs r1, #0 - bl sub_08198134 - movs r0, #0 - movs r1, #0 - movs r2, #0x51 - movs r3, #0xd - bl DrawStdFrameWithCustomTileAndPalette -_08124A30: - movs r0, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - movs r0, #0 - movs r1, #2 - bl CopyWindowToVram - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #0 - str r0, [r4] -_08124A4A: - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08124A54: .4byte gUnknown_3001180 - thumb_func_end sub_08124910 - - thumb_func_start sub_08124A58 -sub_08124A58: @ 0x08124A58 - push {r4, r5, lr} - sub sp, #8 - ldr r0, _08124AA4 - ldr r5, _08124AA8 - ldr r1, [r5] - ldr r4, _08124AAC - adds r1, r1, r4 - bl LZ77UnCompWram - ldr r0, [r5] - adds r0, r0, r4 - str r0, [sp] - ldr r1, _08124AB0 - ldr r0, [sp, #4] - ands r0, r1 - movs r1, #0xe0 - lsls r1, r1, #1 - orrs r0, r1 - ldr r1, _08124AB4 - ands r0, r1 - movs r1, #0x80 - lsls r1, r1, #0xa - orrs r0, r1 - str r0, [sp, #4] - mov r0, sp - bl LoadSpriteSheet - ldr r0, _08124AB8 - bl LoadSpritePalette - bl sub_08124ABC - bl sub_08124BCC - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08124AA4: .4byte gUnknown_857D658 -_08124AA8: .4byte gUnknown_2039E14 -_08124AAC: .4byte 0x0000088C -_08124AB0: .4byte 0xFFFF0000 -_08124AB4: .4byte 0x0000FFFF -_08124AB8: .4byte gUnknown_857D800 - thumb_func_end sub_08124A58 - - thumb_func_start sub_08124ABC -sub_08124ABC: @ 0x08124ABC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - ldr r0, _08124B1C - str r0, [sp, #0xc] - movs r1, #0 - mov sb, r1 - mov r2, sp - adds r2, #6 - str r2, [sp, #0x14] - mov r3, sp - adds r3, #0xa - str r3, [sp, #0x18] - mov r0, sp - adds r0, #8 - str r0, [sp, #0x10] - add r1, sp, #4 - mov sl, r1 -_08124AE6: - ldr r2, [sp, #0x18] - str r2, [sp] - mov r0, sb - add r1, sp, #4 - mov r2, sp - adds r2, #6 - ldr r3, [sp, #0x10] - bl sub_0812463C - mov r3, sl - ldrh r0, [r3] - adds r0, #1 - lsls r0, r0, #3 - adds r0, #4 - strh r0, [r3] - mov r1, sp - ldrh r0, [r1, #6] - adds r0, #2 - lsls r0, r0, #3 - adds r0, #4 - strh r0, [r1, #6] - ldr r2, [sp, #0x10] - ldrh r0, [r2] - cmp r0, #2 - bne _08124B20 - movs r7, #1 - b _08124B2C - .align 2, 0 -_08124B1C: .4byte 0x0000086F -_08124B20: - ldr r3, [sp, #0x18] - ldrh r0, [r3] - movs r7, #0 - cmp r0, #2 - bne _08124B2C - movs r7, #2 -_08124B2C: - mov r0, sl - movs r2, #0 - ldrsh r1, [r0, r2] - ldr r3, [sp, #0x14] - movs r0, #0 - ldrsh r2, [r3, r0] - ldr r0, _08124B78 - movs r3, #0xa - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0x40 - beq _08124BA0 - ldr r1, _08124B7C - 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, #1] - movs r0, #0x3f - ands r0, r1 - orrs r0, r3 - strb r0, [r2, #1] - ldr r0, [sp, #0xc] - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08124B84 - mov r0, r8 - adds r0, #0x1c - adds r0, r6, r0 - ldr r1, _08124B80 - str r1, [r0] - b _08124B8A - .align 2, 0 -_08124B78: .4byte gUnknown_857D86C -_08124B7C: .4byte gUnknown_20205AC -_08124B80: .4byte sub_08124CA4 -_08124B84: - adds r0, r7, #3 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 -_08124B8A: - adds r4, r4, r5 - lsls r4, r4, #2 - ldr r0, _08124BC8 - adds r4, r4, r0 - lsls r1, r7, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim - mov r2, sb - strh r2, [r4, #0x2e] -_08124BA0: - ldr r0, [sp, #0xc] - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0xc] - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - cmp r0, #0xf - bls _08124AE6 - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08124BC8: .4byte gUnknown_20205AC - thumb_func_end sub_08124ABC - - thumb_func_start sub_08124BCC -sub_08124BCC: @ 0x08124BCC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - movs r0, #0 - mov r8, r0 - ldr r6, _08124C94 - ldrh r0, [r6, #2] - cmp r0, #0xd5 - beq _08124C84 - mov r5, sp - adds r5, #6 - add r7, sp, #4 - ldr r1, _08124C98 - mov sb, r1 - movs r0, #0x1c - add r0, sb - mov sl, r0 -_08124BF4: - mov r1, r8 - lsls r4, r1, #2 - adds r0, r4, r6 - ldrh r0, [r0] - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08124C6C - adds r0, r6, #2 - adds r0, r4, r0 - ldrh r6, [r0] - mov r0, sp - adds r0, #0xa - str r0, [sp] - adds r0, r6, #0 - add r1, sp, #4 - adds r2, r5, #0 - add r3, sp, #8 - bl sub_0812463C - ldrh r0, [r7] - adds r0, #1 - lsls r0, r0, #3 - strh r0, [r7] - ldrh r0, [r5] - adds r0, #2 - lsls r0, r0, #3 - strh r0, [r5] - movs r0, #0 - ldrsh r1, [r7, r0] - movs r0, #0 - ldrsh r2, [r5, r0] - ldr r0, _08124C9C - movs r3, #0xa - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _08124C6C - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - mov r1, sb - adds r4, r2, r1 - ldrb r1, [r4, #3] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #3] - add r2, sl - ldr r0, _08124CA0 - str r0, [r2] - adds r0, r4, #0 - movs r1, #6 - bl StartSpriteAnim - strh r6, [r4, #0x2e] -_08124C6C: - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - ldr r6, _08124C94 - lsls r0, r0, #2 - adds r1, r6, #2 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0xd5 - bne _08124BF4 -_08124C84: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08124C94: .4byte gUnknown_857D808 -_08124C98: .4byte gUnknown_20205AC -_08124C9C: .4byte gUnknown_857D86C -_08124CA0: .4byte sub_08124CA4 - thumb_func_end sub_08124BCC - - thumb_func_start sub_08124CA4 -sub_08124CA4: @ 0x08124CA4 - push {lr} - adds r2, r0, #0 - ldr r0, _08124CE4 - ldr r0, [r0] - ldrh r1, [r0, #8] - movs r3, #0x2e - ldrsh r0, [r2, r3] - cmp r1, r0 - bne _08124CE8 - ldrh r0, [r2, #0x30] - adds r0, #1 - strh r0, [r2, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x10 - ble _08124CF6 - movs r0, #0 - strh r0, [r2, #0x30] - adds r3, r2, #0 - adds r3, #0x3e - ldrb r2, [r3] - lsrs r1, r2, #2 - movs r0, #1 - eors r1, r0 - ands r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _08124CF6 - .align 2, 0 -_08124CE4: .4byte gUnknown_2039E14 -_08124CE8: - movs r0, #0x10 - strh r0, [r2, #0x30] - adds r2, #0x3e - ldrb r1, [r2] - subs r0, #0x15 - ands r0, r1 - strb r0, [r2] -_08124CF6: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08124CA4 - - thumb_func_start sub_08124CFC -sub_08124CFC: @ 0x08124CFC - push {r4, lr} - sub sp, #4 - ldr r4, _08124D10 - ldr r0, [r4] - ldrh r1, [r0, #4] - cmp r1, #0 - beq _08124D14 - cmp r1, #1 - beq _08124D2E - b _08124D3E - .align 2, 0 -_08124D10: .4byte gUnknown_2039E14 -_08124D14: - movs r0, #1 - rsbs r0, r0, #0 - str r1, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r1, [r4] - ldrh r0, [r1, #4] - adds r0, #1 - strh r0, [r1, #4] - b _08124D3E -_08124D2E: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08124D3E - ldr r0, _08124D48 - bl sub_08124900 -_08124D3E: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08124D48: .4byte sub_08124D4C - thumb_func_end sub_08124CFC - - thumb_func_start sub_08124D4C -sub_08124D4C: @ 0x08124D4C - push {r4, lr} - ldr r0, _08124D70 - ldr r0, [r0] - ldrh r0, [r0, #4] - cmp r0, #0 - bne _08124DE0 - bl sub_081230B8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #5 - bhi _08124DE0 - lsls r0, r0, #2 - ldr r1, _08124D74 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08124D70: .4byte gUnknown_2039E14 -_08124D74: .4byte _08124D78 -_08124D78: @ jump table - .4byte _08124DE0 @ case 0 - .4byte _08124DE0 @ case 1 - .4byte _08124DE0 @ case 2 - .4byte _08124D90 @ case 3 - .4byte _08124D96 @ case 4 - .4byte _08124DC8 @ case 5 -_08124D90: - bl sub_08124910 - b _08124DE0 -_08124D96: - ldr r4, _08124DBC - ldr r0, [r4] - ldrb r0, [r0, #0xa] - cmp r0, #2 - beq _08124DA4 - cmp r0, #4 - bne _08124DE0 -_08124DA4: - movs r0, #5 - bl m4aSongNumStart - ldr r0, [r4] - ldr r1, _08124DC0 - adds r0, r0, r1 - movs r1, #1 - strb r1, [r0] - ldr r0, _08124DC4 - bl sub_08124900 - b _08124DE0 - .align 2, 0 -_08124DBC: .4byte gUnknown_2039E14 -_08124DC0: .4byte 0x00000A72 -_08124DC4: .4byte sub_08124DF4 -_08124DC8: - movs r0, #5 - bl m4aSongNumStart - ldr r0, _08124DE8 - ldr r0, [r0] - ldr r1, _08124DEC - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - ldr r0, _08124DF0 - bl sub_08124900 -_08124DE0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08124DE8: .4byte gUnknown_2039E14 -_08124DEC: .4byte 0x00000A72 -_08124DF0: .4byte sub_08124DF4 - thumb_func_end sub_08124D4C - - thumb_func_start sub_08124DF4 -sub_08124DF4: @ 0x08124DF4 - push {r4, lr} - sub sp, #4 - ldr r4, _08124E08 - ldr r0, [r4] - ldrh r1, [r0, #4] - cmp r1, #0 - beq _08124E0C - cmp r1, #1 - beq _08124E26 - b _08124F02 - .align 2, 0 -_08124E08: .4byte gUnknown_2039E14 -_08124E0C: - movs r0, #1 - rsbs r0, r0, #0 - str r1, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, [r4] - ldrh r0, [r1, #4] - adds r0, #1 - strh r0, [r1, #4] - b _08124F02 -_08124E26: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08124F02 - bl FreeRegionMapIconResources - ldr r1, [r4] - ldr r2, _08124E50 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _08124EE8 - ldrh r0, [r1, #8] - cmp r0, #0xf - beq _08124E80 - cmp r0, #0xf - bgt _08124E54 - cmp r0, #0 - beq _08124E6C - b _08124EA4 - .align 2, 0 -_08124E50: .4byte 0x00000A72 -_08124E54: - cmp r0, #0x3a - beq _08124E64 - cmp r0, #0x49 - bne _08124EA4 - movs r0, #0x15 - bl SetWarpDestinationToHealLocation - b _08124EE2 -_08124E64: - movs r0, #0x16 - bl SetWarpDestinationToHealLocation - b _08124EE2 -_08124E6C: - ldr r0, _08124E7C - ldr r0, [r0] - ldrb r0, [r0, #8] - movs r1, #0xd - cmp r0, #0 - bne _08124E98 - movs r1, #0xc - b _08124E98 - .align 2, 0 -_08124E7C: .4byte gUnknown_3005AF0 -_08124E80: - ldr r0, _08124EA0 - bl FlagGet - lsls r0, r0, #0x18 - movs r1, #0xb - cmp r0, #0 - beq _08124E98 - ldr r0, [r4] - ldrb r0, [r0, #0xb] - cmp r0, #0 - bne _08124E98 - movs r1, #0x14 -_08124E98: - adds r0, r1, #0 - bl SetWarpDestinationToHealLocation - b _08124EE2 - .align 2, 0 -_08124EA0: .4byte 0x000008B4 -_08124EA4: - ldr r3, _08124EC0 - ldr r0, _08124EC4 - ldr r0, [r0] - ldrh r1, [r0, #8] - lsls r0, r1, #1 - adds r2, r0, r1 - adds r0, r3, #2 - adds r1, r2, r0 - ldrb r0, [r1] - cmp r0, #0 - beq _08124EC8 - bl SetWarpDestinationToHealLocation - b _08124EE2 - .align 2, 0 -_08124EC0: .4byte gUnknown_857D72C -_08124EC4: .4byte gUnknown_2039E14 -_08124EC8: - adds r0, r2, r3 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r1, r3, #1 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r2, #1 - rsbs r2, r2, #0 - bl SetWarpDestinationToMapWarp -_08124EE2: - bl sub_080B6134 - b _08124EEE -_08124EE8: - ldr r0, _08124F0C - bl SetMainCallback2 -_08124EEE: - ldr r4, _08124F10 - ldr r0, [r4] - cmp r0, #0 - beq _08124EFE - bl Free - movs r0, #0 - str r0, [r4] -_08124EFE: - bl FreeAllWindowBuffers -_08124F02: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08124F0C: .4byte sub_081B5548 -_08124F10: .4byte gUnknown_2039E14 - thumb_func_end sub_08124DF4 - - thumb_func_start sub_08124F14 -sub_08124F14: @ 0x08124F14 - push {lr} - ldr r2, _08124F5C - ldr r1, [r0, #4] - str r1, [r2] - ldr r2, _08124F60 - ldrb r1, [r0, #0x1f] - strb r1, [r2] - ldr r2, _08124F64 - ldrb r1, [r0, #0x19] - strb r1, [r2] - ldr r2, _08124F68 - ldrb r1, [r0, #0x1a] - strb r1, [r2] - ldr r2, _08124F6C - ldrb r1, [r0, #0x1b] - strb r1, [r2] - ldr r2, _08124F70 - ldrb r1, [r0, #0x1c] - strb r1, [r2] - ldr r2, _08124F74 - ldrb r1, [r0, #0x1d] - strb r1, [r2] - ldr r2, _08124F78 - ldrb r1, [r0, #0x1e] - strb r1, [r2] - ldrb r0, [r0] - subs r0, #2 - cmp r0, #0x22 - bls _08124F50 - b _0812509C -_08124F50: - lsls r0, r0, #2 - ldr r1, _08124F7C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08124F5C: .4byte gUnknown_3005EA4 -_08124F60: .4byte gUnknown_3005EB8 -_08124F64: .4byte gUnknown_3005EA0 -_08124F68: .4byte gUnknown_3005EB4 -_08124F6C: .4byte gUnknown_3005EB0 -_08124F70: .4byte gUnknown_3005EA8 -_08124F74: .4byte gUnknown_3005EBC -_08124F78: .4byte gUnknown_3005EAC -_08124F7C: .4byte _08124F80 -_08124F80: @ jump table - .4byte _0812500C @ case 0 - .4byte _0812509C @ case 1 - .4byte _0812509C @ case 2 - .4byte _0812509C @ case 3 - .4byte _0812506C @ case 4 - .4byte _0812509C @ case 5 - .4byte _08125012 @ case 6 - .4byte _08125018 @ case 7 - .4byte _0812502C @ case 8 - .4byte _0812503E @ case 9 - .4byte _0812509C @ case 10 - .4byte _08125054 @ case 11 - .4byte _0812509C @ case 12 - .4byte _0812509C @ case 13 - .4byte _0812509C @ case 14 - .4byte _0812509C @ case 15 - .4byte _0812509C @ case 16 - .4byte _0812509C @ case 17 - .4byte _0812509C @ case 18 - .4byte _0812509C @ case 19 - .4byte _0812509C @ case 20 - .4byte _0812509C @ case 21 - .4byte _0812509C @ case 22 - .4byte _0812509C @ case 23 - .4byte _0812509C @ case 24 - .4byte _0812509C @ case 25 - .4byte _0812509C @ case 26 - .4byte _0812509C @ case 27 - .4byte _0812505A @ case 28 - .4byte _08125038 @ case 29 - .4byte _08125060 @ case 30 - .4byte _08125066 @ case 31 - .4byte _0812509C @ case 32 - .4byte _0812509C @ case 33 - .4byte _08125078 @ case 34 -_0812500C: - bl sub_08125218 - b _0812509C -_08125012: - bl sub_081252D0 - b _0812509C -_08125018: - bl sub_081254C8 - ldr r0, _08125028 - ldrb r0, [r0] - bl sub_0812538C - b _0812509C - .align 2, 0 -_08125028: .4byte gUnknown_3005EB8 -_0812502C: - bl sub_081254C8 - bl sub_08125618 - bl sub_08125430 -_08125038: - bl sub_08125618 - b _0812509C -_0812503E: - bl sub_081254C8 - bl sub_081257E0 - bl sub_081257E0 - bl sub_08125888 - bl sub_08125430 - b _0812509C -_08125054: - bl sub_081256B0 - b _0812509C -_0812505A: - bl sub_081254C8 - b _0812509C -_08125060: - bl sub_081257E0 - b _0812509C -_08125066: - bl sub_08125888 - b _0812509C -_0812506C: - bl sub_08125238 - movs r0, #3 - bl sub_081250A0 - b _0812509C -_08125078: - bl sub_081254C8 - bl sub_081257E0 - bl sub_08125888 - bl sub_08125430 - bl sub_081252D0 - bl sub_081252D0 - movs r0, #2 - bl sub_081250A0 - movs r0, #4 - bl sub_08125158 -_0812509C: - pop {r0} - bx r0 - thumb_func_end sub_08124F14 - - thumb_func_start sub_081250A0 -sub_081250A0: @ 0x081250A0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r2, #0 - ldr r0, _08125140 - mov r8, r0 - ldrb r0, [r0] - cmp r2, r0 - bhs _08125132 - ldr r1, _08125144 - mov ip, r1 - ldr r3, _08125148 - mov sl, r3 - ldr r0, _0812514C - mov sb, r0 -_081250C6: - ldr r1, _08125150 - ldrb r0, [r1] - adds r0, r0, r2 - mov r3, sl - ldrb r1, [r3] - muls r0, r1, r0 - lsls r0, r0, #1 - ldr r3, _08125154 - ldr r1, [r3] - adds r1, r1, r0 - mov r3, sb - ldrb r0, [r3] - lsls r0, r0, #1 - adds r3, r1, r0 - movs r4, #0 - adds r5, r2, #1 - mov r0, ip - ldrb r0, [r0] - cmp r4, r0 - bhs _08125126 - movs r6, #0x80 - lsls r6, r6, #8 -_081250F2: - ldrh r1, [r3] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - bne _08125116 - movs r0, #0x1f - ands r0, r1 - adds r0, r0, r7 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x1f - bls _0812510C - movs r2, #0x1f -_0812510C: - lsls r0, r2, #0xa - lsls r1, r2, #5 - orrs r0, r1 - orrs r0, r2 - strh r0, [r3] -_08125116: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r3, #2 - mov r1, ip - ldrb r1, [r1] - cmp r4, r1 - blo _081250F2 -_08125126: - lsls r0, r5, #0x18 - lsrs r2, r0, #0x18 - mov r3, r8 - ldrb r3, [r3] - cmp r2, r3 - blo _081250C6 -_08125132: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08125140: .4byte gUnknown_3005EA8 -_08125144: .4byte gUnknown_3005EB0 -_08125148: .4byte gUnknown_3005EBC -_0812514C: .4byte gUnknown_3005EA0 -_08125150: .4byte gUnknown_3005EB4 -_08125154: .4byte gUnknown_3005EA4 - thumb_func_end sub_081250A0 - - thumb_func_start sub_08125158 -sub_08125158: @ 0x08125158 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r2, #0 - ldr r0, _08125200 - ldrb r0, [r0] - cmp r2, r0 - bhs _081251F0 - ldr r1, _08125204 - mov sl, r1 -_08125176: - ldr r3, _08125208 - ldrb r0, [r3] - adds r0, r0, r2 - ldr r3, _0812520C - ldrb r1, [r3] - muls r0, r1, r0 - lsls r0, r0, #1 - ldr r3, _08125210 - ldr r1, [r3] - adds r1, r1, r0 - ldr r3, _08125214 - ldrb r0, [r3] - lsls r0, r0, #1 - adds r3, r1, r0 - movs r5, #0 - adds r7, r2, #1 - mov r0, sl - ldrb r0, [r0] - cmp r5, r0 - bhs _081251E4 - movs r1, #0x80 - lsls r1, r1, #8 - mov sb, r1 - movs r0, #0x1f - mov ip, r0 - mov r1, r8 - subs r6, r0, r1 -_081251AC: - ldrh r1, [r3] - mov r0, sb - ands r0, r1 - cmp r0, #0 - bne _081251D4 - movs r4, #0x1f - mov r2, ip - ands r2, r1 - cmp r2, r6 - ble _081251CA - mov r1, r8 - lsrs r0, r1, #1 - subs r0, r4, r0 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 -_081251CA: - lsls r0, r2, #0xa - lsls r1, r2, #5 - orrs r0, r1 - orrs r0, r2 - strh r0, [r3] -_081251D4: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r3, #2 - mov r0, sl - ldrb r0, [r0] - cmp r5, r0 - blo _081251AC -_081251E4: - lsls r0, r7, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _08125200 - ldrb r1, [r1] - cmp r2, r1 - blo _08125176 -_081251F0: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08125200: .4byte gUnknown_3005EA8 -_08125204: .4byte gUnknown_3005EB0 -_08125208: .4byte gUnknown_3005EB4 -_0812520C: .4byte gUnknown_3005EBC -_08125210: .4byte gUnknown_3005EA4 -_08125214: .4byte gUnknown_3005EA0 - thumb_func_end sub_08125158 - - thumb_func_start sub_08125218 -sub_08125218: @ 0x08125218 - push {r4, r5, lr} - movs r4, #0 - ldr r5, _08125234 -_0812521E: - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - bl sub_0812593C - adds r4, #1 - cmp r4, r5 - bls _0812521E - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08125234: .4byte 0x00000C7F - thumb_func_end sub_08125218 - - thumb_func_start sub_08125238 -sub_08125238: @ 0x08125238 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - movs r2, #0 - ldr r0, _081252B8 - ldrb r0, [r0] - cmp r2, r0 - bhs _081252AA - ldr r0, _081252BC - mov r8, r0 - ldr r3, _081252C0 -_08125250: - ldr r0, _081252C4 - ldrb r1, [r0] - adds r1, r1, r2 - ldr r0, _081252C8 - ldrb r0, [r0] - muls r0, r1, r0 - lsls r0, r0, #1 - mov r4, r8 - ldr r1, [r4] - adds r1, r1, r0 - ldr r0, _081252CC - ldrb r0, [r0] - lsls r0, r0, #1 - adds r4, r1, r0 - movs r5, #0 - adds r6, r2, #1 - ldrb r0, [r3] - cmp r5, r0 - bhs _0812529E - movs r0, #0x80 - lsls r0, r0, #8 - adds r7, r0, #0 -_0812527C: - ldrh r0, [r4] - ands r0, r7 - cmp r0, #0 - bne _08125290 - adds r0, r4, #0 - str r3, [sp] - bl ConvertColorToGrayscale - strh r0, [r4] - ldr r3, [sp] -_08125290: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r4, #2 - ldrb r0, [r3] - cmp r5, r0 - blo _0812527C -_0812529E: - lsls r0, r6, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _081252B8 - ldrb r0, [r0] - cmp r2, r0 - blo _08125250 -_081252AA: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081252B8: .4byte gUnknown_3005EA8 -_081252BC: .4byte gUnknown_3005EA4 -_081252C0: .4byte gUnknown_3005EB0 -_081252C4: .4byte gUnknown_3005EB4 -_081252C8: .4byte gUnknown_3005EBC -_081252CC: .4byte gUnknown_3005EA0 - thumb_func_end sub_08125238 - - thumb_func_start sub_081252D0 -sub_081252D0: @ 0x081252D0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - movs r2, #0 - ldr r0, _08125374 - ldrb r0, [r0] - cmp r2, r0 - bhs _08125366 - ldr r0, _08125378 - mov r8, r0 - ldr r3, _0812537C -_081252E8: - ldr r0, _08125380 - ldrb r1, [r0] - ldrb r0, [r3] - muls r0, r1, r0 - lsls r0, r0, #1 - mov r4, r8 - ldr r1, [r4] - adds r1, r1, r0 - ldr r0, _08125384 - ldrb r0, [r0] - adds r0, r0, r2 - lsls r0, r0, #1 - adds r4, r1, r0 - ldrh r1, [r4] - mov r0, sp - strh r1, [r0] - movs r5, #1 - ldrb r0, [r3] - lsls r0, r0, #1 - adds r4, r4, r0 - ldr r0, _08125388 - ldrb r0, [r0] - subs r0, #1 - adds r7, r2, #1 - cmp r5, r0 - bge _0812535A - ldr r6, _0812537C -_0812531E: - ldrh r0, [r4] - movs r2, #0x80 - lsls r2, r2, #8 - adds r1, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _08125344 - ldrb r2, [r6] - lsls r2, r2, #1 - adds r2, r4, r2 - mov r0, sp - adds r1, r4, #0 - str r3, [sp, #4] - bl sub_08125E00 - strh r0, [r4] - mov r1, sp - strh r0, [r1] - ldr r3, [sp, #4] -_08125344: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldrb r0, [r6] - lsls r0, r0, #1 - adds r4, r4, r0 - ldr r0, _08125388 - ldrb r0, [r0] - subs r0, #1 - cmp r5, r0 - blt _0812531E -_0812535A: - lsls r0, r7, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _08125374 - ldrb r0, [r0] - cmp r2, r0 - blo _081252E8 -_08125366: - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08125374: .4byte gUnknown_3005EB0 -_08125378: .4byte gUnknown_3005EA4 -_0812537C: .4byte gUnknown_3005EBC -_08125380: .4byte gUnknown_3005EB4 -_08125384: .4byte gUnknown_3005EA0 -_08125388: .4byte gUnknown_3005EA8 - thumb_func_end sub_081252D0 - - thumb_func_start sub_0812538C -sub_0812538C: @ 0x0812538C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r2, #0 - ldr r0, _08125418 - ldrb r0, [r0] - cmp r2, r0 - bhs _08125408 - ldr r0, _0812541C - mov sb, r0 - ldr r3, _08125420 -_081253AC: - ldr r0, _08125424 - ldrb r1, [r0] - adds r1, r1, r2 - ldr r0, _08125428 - ldrb r0, [r0] - muls r0, r1, r0 - lsls r0, r0, #1 - mov r4, sb - ldr r1, [r4] - adds r1, r1, r0 - ldr r0, _0812542C - ldrb r0, [r0] - lsls r0, r0, #1 - adds r4, r1, r0 - movs r5, #0 - adds r6, r2, #1 - ldrb r0, [r3] - cmp r5, r0 - bhs _081253FC - movs r0, #0x80 - lsls r0, r0, #8 - adds r7, r0, #0 -_081253D8: - ldrh r0, [r4] - ands r0, r7 - cmp r0, #0 - bne _081253EE - adds r0, r4, #0 - mov r1, r8 - str r3, [sp] - bl ConvertCoolColor - strh r0, [r4] - ldr r3, [sp] -_081253EE: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r4, #2 - ldrb r0, [r3] - cmp r5, r0 - blo _081253D8 -_081253FC: - lsls r0, r6, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _08125418 - ldrb r0, [r0] - cmp r2, r0 - blo _081253AC -_08125408: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08125418: .4byte gUnknown_3005EA8 -_0812541C: .4byte gUnknown_3005EA4 -_08125420: .4byte gUnknown_3005EB0 -_08125424: .4byte gUnknown_3005EB4 -_08125428: .4byte gUnknown_3005EBC -_0812542C: .4byte gUnknown_3005EA0 - thumb_func_end sub_0812538C - - thumb_func_start sub_08125430 -sub_08125430: @ 0x08125430 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - movs r2, #0 - ldr r0, _081254B0 - ldrb r0, [r0] - cmp r2, r0 - bhs _081254A2 - ldr r0, _081254B4 - mov r8, r0 - ldr r3, _081254B8 -_08125448: - ldr r0, _081254BC - ldrb r1, [r0] - adds r1, r1, r2 - ldr r0, _081254C0 - ldrb r0, [r0] - muls r0, r1, r0 - lsls r0, r0, #1 - mov r4, r8 - ldr r1, [r4] - adds r1, r1, r0 - ldr r0, _081254C4 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r4, r1, r0 - movs r5, #0 - adds r6, r2, #1 - ldrb r0, [r3] - cmp r5, r0 - bhs _08125496 - movs r0, #0x80 - lsls r0, r0, #8 - adds r7, r0, #0 -_08125474: - ldrh r0, [r4] - ands r0, r7 - cmp r0, #0 - bne _08125488 - adds r0, r4, #0 - str r3, [sp] - bl ConvertToBlackOrWhite - strh r0, [r4] - ldr r3, [sp] -_08125488: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r4, #2 - ldrb r0, [r3] - cmp r5, r0 - blo _08125474 -_08125496: - lsls r0, r6, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _081254B0 - ldrb r0, [r0] - cmp r2, r0 - blo _08125448 -_081254A2: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081254B0: .4byte gUnknown_3005EA8 -_081254B4: .4byte gUnknown_3005EA4 -_081254B8: .4byte gUnknown_3005EB0 -_081254BC: .4byte gUnknown_3005EB4 -_081254C0: .4byte gUnknown_3005EBC -_081254C4: .4byte gUnknown_3005EA0 - thumb_func_end sub_08125430 - - thumb_func_start sub_081254C8 -sub_081254C8: @ 0x081254C8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - movs r7, #0 - ldr r0, _08125600 - ldrb r0, [r0] - cmp r7, r0 - bhs _08125554 - ldr r0, _08125604 - mov r8, r0 -_081254DE: - ldr r0, _08125608 - ldrb r1, [r0] - adds r1, r1, r7 - ldr r0, _0812560C - ldrb r0, [r0] - muls r0, r1, r0 - lsls r0, r0, #1 - mov r2, r8 - ldr r1, [r2] - adds r1, r1, r0 - ldr r0, _08125610 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r5, r1, r0 - adds r4, r5, #2 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08125C80 - strh r0, [r5] - movs r6, #1 - adds r5, r4, #0 - ldr r0, _08125614 - ldrb r0, [r0] - subs r0, #1 - adds r7, #1 - cmp r6, r0 - bge _0812553E -_08125516: - adds r4, r5, #2 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08125C80 - strh r0, [r5] - subs r1, r5, #2 - adds r0, r5, #0 - bl sub_08125C80 - strh r0, [r5] - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r5, r4, #0 - ldr r0, _08125614 - ldrb r0, [r0] - subs r0, #1 - cmp r6, r0 - blt _08125516 -_0812553E: - subs r1, r5, #2 - adds r0, r5, #0 - bl sub_08125C80 - strh r0, [r5] - lsls r0, r7, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _08125600 - ldrb r0, [r0] - cmp r7, r0 - blo _081254DE -_08125554: - movs r6, #0 - ldr r0, _08125614 - ldrb r0, [r0] - cmp r6, r0 - bhs _081255F4 - ldr r3, _08125604 - mov sb, r3 - ldr r0, _0812560C - mov r8, r0 -_08125566: - ldr r0, _08125608 - ldrb r0, [r0] - mov r2, r8 - ldrb r1, [r2] - muls r0, r1, r0 - lsls r0, r0, #1 - mov r3, sb - ldr r2, [r3] - adds r2, r2, r0 - ldr r0, _08125610 - ldrb r0, [r0] - adds r0, r0, r6 - lsls r0, r0, #1 - adds r5, r2, r0 - lsls r1, r1, #1 - adds r1, r5, r1 - adds r0, r5, #0 - bl sub_08125C80 - strh r0, [r5] - movs r7, #1 - mov r1, r8 - ldrb r0, [r1] - lsls r0, r0, #1 - adds r5, r5, r0 - ldr r0, _08125600 - ldrb r0, [r0] - subs r0, #1 - adds r6, #1 - cmp r7, r0 - bge _081255D8 - ldr r4, _0812560C -_081255A6: - ldrb r1, [r4] - lsls r1, r1, #1 - adds r1, r5, r1 - adds r0, r5, #0 - bl sub_08125C80 - strh r0, [r5] - ldrb r1, [r4] - lsls r1, r1, #1 - subs r1, r5, r1 - adds r0, r5, #0 - bl sub_08125C80 - strh r0, [r5] - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r5, r5, r0 - ldr r0, _08125600 - ldrb r0, [r0] - subs r0, #1 - cmp r7, r0 - blt _081255A6 -_081255D8: - mov r2, r8 - ldrb r1, [r2] - lsls r1, r1, #1 - subs r1, r5, r1 - adds r0, r5, #0 - bl sub_08125C80 - strh r0, [r5] - lsls r0, r6, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _08125614 - ldrb r0, [r0] - cmp r6, r0 - blo _08125566 -_081255F4: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08125600: .4byte gUnknown_3005EA8 -_08125604: .4byte gUnknown_3005EA4 -_08125608: .4byte gUnknown_3005EB4 -_0812560C: .4byte gUnknown_3005EBC -_08125610: .4byte gUnknown_3005EA0 -_08125614: .4byte gUnknown_3005EB0 - thumb_func_end sub_081254C8 - - thumb_func_start sub_08125618 -sub_08125618: @ 0x08125618 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - movs r2, #0 - ldr r0, _08125698 - ldrb r0, [r0] - cmp r2, r0 - bhs _0812568A - ldr r0, _0812569C - mov r8, r0 - ldr r3, _081256A0 -_08125630: - ldr r0, _081256A4 - ldrb r1, [r0] - adds r1, r1, r2 - ldr r0, _081256A8 - ldrb r0, [r0] - muls r0, r1, r0 - lsls r0, r0, #1 - mov r4, r8 - ldr r1, [r4] - adds r1, r1, r0 - ldr r0, _081256AC - ldrb r0, [r0] - lsls r0, r0, #1 - adds r4, r1, r0 - movs r5, #0 - adds r6, r2, #1 - ldrb r0, [r3] - cmp r5, r0 - bhs _0812567E - movs r0, #0x80 - lsls r0, r0, #8 - adds r7, r0, #0 -_0812565C: - ldrh r0, [r4] - ands r0, r7 - cmp r0, #0 - bne _08125670 - adds r0, r4, #0 - str r3, [sp] - bl InvertColor - strh r0, [r4] - ldr r3, [sp] -_08125670: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r4, #2 - ldrb r0, [r3] - cmp r5, r0 - blo _0812565C -_0812567E: - lsls r0, r6, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _08125698 - ldrb r0, [r0] - cmp r2, r0 - blo _08125630 -_0812568A: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08125698: .4byte gUnknown_3005EA8 -_0812569C: .4byte gUnknown_3005EA4 -_081256A0: .4byte gUnknown_3005EB0 -_081256A4: .4byte gUnknown_3005EB4 -_081256A8: .4byte gUnknown_3005EBC -_081256AC: .4byte gUnknown_3005EA0 - thumb_func_end sub_08125618 - - thumb_func_start sub_081256B0 -sub_081256B0: @ 0x081256B0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - ldr r0, _081257DC - ldr r4, [r0] - movs r6, #0 - movs r0, #0x80 - lsls r0, r0, #8 - adds r5, r0, #0 -_081256C8: - movs r7, #0 -_081256CA: - ldrh r0, [r4] - ands r0, r5 - cmp r0, #0 - bne _081256DA - adds r0, r4, #0 - bl InvertColor - strh r0, [r4] -_081256DA: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - adds r4, #2 - cmp r7, #0x3f - bls _081256CA - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0x3f - bls _081256C8 - movs r7, #0 - ldr r1, _081257DC - mov sl, r1 - mov r3, sp - movs r2, #0x80 - lsls r2, r2, #8 - mov sb, r2 -_081256FE: - lsls r0, r7, #1 - mov r2, sl - ldr r1, [r2] - adds r4, r1, r0 - ldrh r1, [r4] - strh r1, [r3] - mov r1, sb - strh r1, [r4] - movs r6, #1 - adds r4, #0x80 - adds r5, r0, #0 -_08125714: - ldrh r0, [r4] - movs r2, #0x80 - lsls r2, r2, #8 - ands r0, r2 - cmp r0, #0 - bne _08125734 - adds r2, r4, #0 - adds r2, #0x80 - mov r0, sp - adds r1, r4, #0 - str r3, [sp, #4] - bl sub_08125F20 - strh r0, [r4] - ldr r3, [sp, #4] - strh r0, [r3] -_08125734: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r4, #0x80 - cmp r6, #0x3e - bls _08125714 - mov r0, sb - strh r0, [r4] - mov r1, sl - ldr r0, [r1] - adds r4, r0, r5 - ldrh r0, [r4] - strh r0, [r3] - mov r2, sb - strh r2, [r4] - movs r6, #1 - adds r4, #0x80 - movs r0, #0x80 - lsls r0, r0, #8 - mov r8, r0 -_0812575C: - ldrh r0, [r4] - mov r1, r8 - ands r0, r1 - adds r5, r4, #0 - adds r5, #0x80 - cmp r0, #0 - bne _0812577C - mov r0, sp - adds r1, r4, #0 - adds r2, r5, #0 - str r3, [sp, #4] - bl sub_08125F20 - strh r0, [r4] - ldr r3, [sp, #4] - strh r0, [r3] -_0812577C: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r4, r5, #0 - cmp r6, #0x3e - bls _0812575C - mov r2, sb - strh r2, [r4] - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #0x3f - bls _081256FE - ldr r0, _081257DC - ldr r4, [r0] - movs r6, #0 - movs r0, #0x80 - lsls r0, r0, #8 - mov r8, r0 -_081257A2: - movs r7, #0 - adds r5, r6, #1 -_081257A6: - ldrh r0, [r4] - mov r1, r8 - ands r0, r1 - cmp r0, #0 - bne _081257B8 - adds r0, r4, #0 - bl InvertColor - strh r0, [r4] -_081257B8: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - adds r4, #2 - cmp r7, #0x3f - bls _081257A6 - lsls r0, r5, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0x3f - bls _081257A2 - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081257DC: .4byte gUnknown_3005EA4 - thumb_func_end sub_081256B0 - - thumb_func_start sub_081257E0 -sub_081257E0: @ 0x081257E0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - movs r2, #0 - ldr r0, _08125870 - ldrb r0, [r0] - cmp r2, r0 - bhs _08125862 - ldr r0, _08125874 - mov r8, r0 -_081257F6: - ldr r0, _08125878 - ldrb r1, [r0] - adds r1, r1, r2 - ldr r0, _0812587C - ldrb r0, [r0] - muls r0, r1, r0 - lsls r0, r0, #1 - mov r3, r8 - ldr r1, [r3] - adds r1, r1, r0 - ldr r0, _08125880 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r4, r1, r0 - ldrh r1, [r4] - mov r0, sp - strh r1, [r0] - movs r5, #1 - adds r4, #2 - ldr r0, _08125884 - ldrb r0, [r0] - subs r0, #1 - adds r6, r2, #1 - cmp r5, r0 - bge _08125856 - movs r0, #0x80 - lsls r0, r0, #8 - adds r7, r0, #0 -_0812582E: - ldrh r0, [r4] - ands r0, r7 - cmp r0, #0 - bne _08125844 - mov r0, sp - adds r1, r4, #0 - bl sub_08125CDC - strh r0, [r4] - mov r1, sp - strh r0, [r1] -_08125844: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r4, #2 - ldr r0, _08125884 - ldrb r0, [r0] - subs r0, #1 - cmp r5, r0 - blt _0812582E -_08125856: - lsls r0, r6, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _08125870 - ldrb r0, [r0] - cmp r2, r0 - blo _081257F6 -_08125862: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08125870: .4byte gUnknown_3005EA8 -_08125874: .4byte gUnknown_3005EA4 -_08125878: .4byte gUnknown_3005EB4 -_0812587C: .4byte gUnknown_3005EBC -_08125880: .4byte gUnknown_3005EA0 -_08125884: .4byte gUnknown_3005EB0 - thumb_func_end sub_081257E0 - - thumb_func_start sub_08125888 -sub_08125888: @ 0x08125888 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - movs r2, #0 - ldr r0, _08125924 - ldrb r0, [r0] - cmp r2, r0 - bhs _08125916 - ldr r0, _08125928 - mov r8, r0 - ldr r7, _0812592C -_081258A0: - ldr r0, _08125930 - ldrb r1, [r0] - ldrb r0, [r7] - muls r0, r1, r0 - lsls r0, r0, #1 - mov r3, r8 - ldr r1, [r3] - adds r1, r1, r0 - ldr r0, _08125934 - ldrb r0, [r0] - adds r0, r0, r2 - lsls r0, r0, #1 - adds r4, r1, r0 - ldrh r1, [r4] - mov r0, sp - strh r1, [r0] - movs r5, #1 - ldrb r0, [r7] - lsls r0, r0, #1 - adds r4, r4, r0 - ldr r0, _08125938 - ldrb r0, [r0] - subs r0, #1 - adds r6, r2, #1 - cmp r5, r0 - bge _0812590A - movs r0, #0x80 - lsls r0, r0, #8 - adds r2, r0, #0 -_081258DA: - ldrh r0, [r4] - ands r0, r2 - cmp r0, #0 - bne _081258F4 - mov r0, sp - adds r1, r4, #0 - str r2, [sp, #4] - bl sub_08125CDC - strh r0, [r4] - mov r1, sp - strh r0, [r1] - ldr r2, [sp, #4] -_081258F4: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldrb r0, [r7] - lsls r0, r0, #1 - adds r4, r4, r0 - ldr r0, _08125938 - ldrb r0, [r0] - subs r0, #1 - cmp r5, r0 - blt _081258DA -_0812590A: - lsls r0, r6, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _08125924 - ldrb r0, [r0] - cmp r2, r0 - blo _081258A0 -_08125916: - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08125924: .4byte gUnknown_3005EB0 -_08125928: .4byte gUnknown_3005EA4 -_0812592C: .4byte gUnknown_3005EBC -_08125930: .4byte gUnknown_3005EB4 -_08125934: .4byte gUnknown_3005EA0 -_08125938: .4byte gUnknown_3005EA8 - thumb_func_end sub_08125888 - - thumb_func_start sub_0812593C -sub_0812593C: @ 0x0812593C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sl, r0 - mov r2, sp - ldr r3, _081259A8 - lsls r1, r0, #1 - add r1, sl - adds r0, r1, r3 - ldrb r0, [r0] - strb r0, [r2] - adds r0, r3, #1 - adds r0, r1, r0 - ldrb r0, [r0] - strb r0, [r2, #1] - mov r5, sp - adds r0, r3, #2 - adds r1, r1, r0 - ldrb r4, [r1] - lsls r2, r4, #0x18 - lsrs r1, r2, #0x1b - movs r0, #7 - ands r1, r0 - strh r1, [r5, #2] - lsrs r2, r2, #0x19 - mov sb, r2 - movs r0, #3 - ands r2, r0 - mov sb, r2 - movs r5, #1 - ands r5, r4 - movs r4, #1 - mov r8, r4 - cmp r8, r1 - bhs _081259EE - mov r3, sp -_0812598E: - cmp r5, #0 - bne _081259AC - mov r0, r8 - lsls r2, r0, #2 - mov r4, sp - adds r1, r4, r2 - ldrb r0, [r3] - mov r4, r8 - subs r0, r0, r4 - strb r0, [r1] - ldrb r0, [r3, #1] - add r0, r8 - b _081259BE - .align 2, 0 -_081259A8: .4byte gUnknown_857D884 -_081259AC: - mov r0, r8 - lsls r2, r0, #2 - mov r4, sp - adds r1, r4, r2 - ldrb r0, [r3] - adds r0, #1 - strb r0, [r1] - ldrb r0, [r3, #1] - subs r0, #1 -_081259BE: - strb r0, [r1, #1] - add r2, sp - ldrb r0, [r2] - cmp r0, #0x3f - bhi _081259CE - ldrb r0, [r2, #1] - cmp r0, #0x3f - bls _081259D6 -_081259CE: - mov r0, r8 - subs r0, #1 - strh r0, [r3, #2] - b _081259EE -_081259D6: - ldrh r0, [r3, #2] - mov r1, r8 - subs r0, r0, r1 - strh r0, [r2, #2] - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldrh r0, [r3, #2] - cmp r8, r0 - blo _0812598E -_081259EE: - movs r2, #0 - mov r8, r2 - mov r0, sp - ldrh r0, [r0, #2] - cmp r8, r0 - blo _081259FC - b _08125AFE -_081259FC: - movs r3, #0x1f -_081259FE: - ldr r1, _08125A5C - mov r4, r8 - lsls r0, r4, #2 - mov r2, sp - adds r6, r2, r0 - ldrb r0, [r6, #1] - lsls r0, r0, #7 - ldr r1, [r1] - adds r1, r1, r0 - ldrb r0, [r6] - lsls r0, r0, #1 - adds r2, r1, r0 - ldrh r1, [r2] - movs r4, #0x80 - lsls r4, r4, #8 - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - bne _08125AEA - movs r7, #0x1f - ands r7, r1 - lsls r0, r1, #0x10 - lsrs r5, r0, #0x15 - ands r5, r3 - lsrs r4, r0, #0x1a - ands r4, r3 - mov r0, sb - cmp r0, #0 - blt _08125AE0 - cmp r0, #1 - ble _08125A60 - cmp r0, #3 - bgt _08125AE0 - ldrh r0, [r6, #2] - adds r1, r7, r0 - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - adds r1, r5, r0 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - adds r0, r4, r0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r7, #0x1f - bls _08125AD4 - movs r7, #0x1f - b _08125AD4 - .align 2, 0 -_08125A5C: .4byte gUnknown_3005EA4 -_08125A60: - mov r1, sl - lsls r0, r1, #1 - add r0, sl - ldr r1, _08125A94 - adds r1, #2 - adds r0, r0, r1 - ldrb r0, [r0] - lsrs r0, r0, #3 - movs r1, #7 - ands r0, r1 - movs r1, #3 - str r2, [sp, #0x18] - str r3, [sp, #0x1c] - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, [sp, #0x18] - ldr r3, [sp, #0x1c] - cmp r0, #1 - beq _08125AB0 - cmp r0, #1 - bgt _08125A98 - cmp r0, #0 - beq _08125A9E - b _08125AE0 - .align 2, 0 -_08125A94: .4byte gUnknown_857D884 -_08125A98: - cmp r0, #2 - beq _08125AC2 - b _08125AE0 -_08125A9E: - ldrh r0, [r6, #2] - cmp r7, r0 - blo _08125AAC - subs r0, r7, r0 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - b _08125AE0 -_08125AAC: - movs r7, #0 - b _08125AE0 -_08125AB0: - ldrh r0, [r6, #2] - cmp r5, r0 - blo _08125ABE - subs r0, r5, r0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - b _08125AE0 -_08125ABE: - movs r5, #0 - b _08125AE0 -_08125AC2: - ldrh r0, [r6, #2] - cmp r4, r0 - blo _08125AD0 - subs r0, r4, r0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - b _08125AE0 -_08125AD0: - movs r4, #0 - b _08125AE0 -_08125AD4: - cmp r5, #0x1f - bls _08125ADA - movs r5, #0x1f -_08125ADA: - cmp r4, #0x1f - bls _08125AE0 - movs r4, #0x1f -_08125AE0: - lsls r0, r4, #0xa - lsls r1, r5, #5 - orrs r0, r1 - orrs r7, r0 - strh r7, [r2] -_08125AEA: - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - mov r0, sp - ldrh r0, [r0, #2] - cmp r8, r0 - bhs _08125AFE - b _081259FE -_08125AFE: - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0812593C - - thumb_func_start ConvertColorToGrayscale -ConvertColorToGrayscale: @ 0x08125B10 - ldrh r2, [r0] - movs r0, #0x1f - adds r1, r2, #0 - ands r1, r0 - asrs r3, r2, #5 - ands r3, r0 - asrs r2, r2, #0xa - ands r2, r0 - movs r0, #0x4c - muls r1, r0, r1 - movs r0, #0x97 - muls r0, r3, r0 - adds r1, r1, r0 - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r1, r1, r0 - asrs r1, r1, #8 - lsls r0, r1, #0xa - lsls r2, r1, #5 - orrs r0, r2 - orrs r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bx lr - thumb_func_end ConvertColorToGrayscale - - thumb_func_start ConvertCoolColor -ConvertCoolColor: @ 0x08125B44 - push {r4, lr} - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - ldrh r0, [r0] - movs r2, #0x1f - movs r1, #0x1f - ands r1, r0 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x15 - ands r3, r2 - lsrs r0, r0, #0x1a - ands r0, r2 - cmp r1, #0x10 - bhi _08125B74 - cmp r3, #0x10 - bhi _08125B74 - cmp r0, #0x10 - bhi _08125B74 - adds r0, r4, #0 - bl sub_08125B80 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b _08125B76 -_08125B74: - ldr r0, _08125B7C -_08125B76: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08125B7C: .4byte 0x00007FFF - thumb_func_end ConvertCoolColor - - thumb_func_start sub_08125B80 -sub_08125B80: @ 0x08125B80 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - mov r8, r0 - movs r6, #0 - movs r7, #0 - adds r0, r4, #0 - movs r1, #6 - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #3 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r4, #0 - movs r1, #6 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #5 - bhi _08125C38 - lsls r0, r0, #2 - ldr r1, _08125BC4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08125BC4: .4byte _08125BC8 -_08125BC8: @ jump table - .4byte _08125BE0 @ case 0 - .4byte _08125BF0 @ case 1 - .4byte _08125C00 @ case 2 - .4byte _08125C0E @ case 3 - .4byte _08125C1C @ case 4 - .4byte _08125C2A @ case 5 -_08125BE0: - movs r0, #0x15 - subs r0, r0, r5 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r7, r6, #0 - movs r1, #0 - mov r8, r1 - b _08125C38 -_08125BF0: - movs r7, #0 - movs r0, #0x15 - subs r0, r0, r5 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - mov r6, r8 - b _08125C38 -_08125C00: - movs r0, #0x15 - subs r0, r0, r5 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - movs r6, #0 - mov r8, r7 - b _08125C38 -_08125C0E: - movs r7, #0 - movs r6, #0 - movs r0, #0x17 - subs r0, r0, r5 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b _08125C36 -_08125C1C: - movs r0, #0x17 - subs r0, r0, r5 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - movs r6, #0 - mov r8, r6 - b _08125C38 -_08125C2A: - movs r7, #0 - movs r0, #0x17 - subs r0, r0, r5 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - movs r0, #0 -_08125C36: - mov r8, r0 -_08125C38: - lsls r0, r7, #0xa - lsls r1, r6, #5 - orrs r0, r1 - mov r1, r8 - orrs r1, r0 - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_08125B80 - - thumb_func_start ConvertToBlackOrWhite -ConvertToBlackOrWhite: @ 0x08125C50 - push {lr} - ldrh r0, [r0] - movs r2, #0x1f - movs r1, #0x1f - ands r1, r0 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x15 - ands r3, r2 - lsrs r0, r0, #0x1a - ands r0, r2 - cmp r1, #0x10 - bhi _08125C74 - cmp r3, #0x10 - bhi _08125C74 - cmp r0, #0x10 - bhi _08125C74 - movs r0, #0 - b _08125C76 -_08125C74: - ldr r0, _08125C7C -_08125C76: - pop {r1} - bx r1 - .align 2, 0 -_08125C7C: .4byte 0x00007FFF - thumb_func_end ConvertToBlackOrWhite - - thumb_func_start sub_08125C80 -sub_08125C80: @ 0x08125C80 - push {r4, lr} - adds r4, r0, #0 - ldrh r3, [r4] - cmp r3, #0 - beq _08125CA8 - movs r2, #0x80 - lsls r2, r2, #8 - adds r0, r2, #0 - ands r0, r3 - cmp r0, #0 - beq _08125C9A - adds r0, r2, #0 - b _08125CAA -_08125C9A: - ldrh r1, [r1] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _08125CA8 - ldrh r0, [r4] - b _08125CAA -_08125CA8: - movs r0, #0 -_08125CAA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_08125C80 - - thumb_func_start InvertColor -InvertColor: @ 0x08125CB0 - push {r4, lr} - ldrh r1, [r0] - movs r0, #0x1f - movs r3, #0x1f - ands r3, r1 - lsls r1, r1, #0x10 - lsrs r2, r1, #0x15 - lsrs r1, r1, #0x1a - subs r3, r0, r3 - adds r4, r0, #0 - bics r4, r2 - adds r2, r4, #0 - bics r0, r1 - lsls r0, r0, #0xa - lsls r2, r2, #5 - orrs r0, r2 - orrs r0, r3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r4} - pop {r1} - bx r1 - thumb_func_end InvertColor - - thumb_func_start sub_08125CDC -sub_08125CDC: @ 0x08125CDC - push {r4, r5, r6, r7, lr} - sub sp, #0x14 - adds r7, r1, #0 - ldrh r4, [r0] - ldrh r5, [r7] - lsls r6, r4, #0x10 - lsls r0, r5, #0x10 - mov ip, r0 - cmp r4, r5 - beq _08125D4E - mov r2, sp - movs r3, #0x1f - movs r1, #0x1f - adds r0, r1, #0 - ands r0, r4 - strh r0, [r2] - lsrs r0, r6, #0x15 - ands r0, r3 - strh r0, [r2, #2] - lsrs r0, r6, #0x1a - ands r0, r3 - strh r0, [r2, #4] - mov r0, sp - ands r1, r5 - strh r1, [r0, #6] - mov r1, sp - mov r2, ip - lsrs r0, r2, #0x15 - ands r0, r3 - strh r0, [r1, #8] - lsrs r0, r2, #0x1a - ands r0, r3 - strh r0, [r1, #0xa] - mov r0, sp - ldrh r0, [r0] - cmp r0, #0x19 - bls _08125D36 - mov r0, sp - ldrh r0, [r0, #2] - cmp r0, #0x19 - bls _08125D36 - mov r0, sp - ldrh r0, [r0, #4] - cmp r0, #0x19 - bhi _08125D4E -_08125D36: - mov r0, sp - ldrh r0, [r0, #6] - cmp r0, #0x19 - bls _08125D52 - mov r0, sp - ldrh r0, [r0, #8] - cmp r0, #0x19 - bls _08125D52 - mov r0, sp - ldrh r0, [r0, #0xa] - cmp r0, #0x19 - bls _08125D52 -_08125D4E: - ldrh r0, [r7] - b _08125DF8 -_08125D52: - movs r4, #0 - add r6, sp, #0xc - mov r7, sp - adds r7, #6 - adds r5, r6, #0 -_08125D5C: - 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 _08125D72 - adds r1, r5, r2 - subs r0, r3, r0 - b _08125D76 -_08125D72: - adds r1, r5, r2 - subs r0, r0, r3 -_08125D76: - strh r0, [r1] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #2 - bls _08125D5C - adds r1, r6, #0 - ldrh r0, [r1, #2] - ldrh r3, [r1] - cmp r3, r0 - blo _08125D9C - ldrh r2, [r1, #4] - cmp r3, r2 - blo _08125D96 - adds r2, r3, #0 - b _08125DB0 -_08125D96: - cmp r0, r2 - bhs _08125DA2 - b _08125DAA -_08125D9C: - ldrh r2, [r1, #4] - cmp r0, r2 - blo _08125DA6 -_08125DA2: - ldrh r2, [r1, #2] - b _08125DB0 -_08125DA6: - cmp r2, r3 - blo _08125DAE -_08125DAA: - ldrh r2, [r1, #4] - b _08125DB0 -_08125DAE: - ldrh r2, [r6] -_08125DB0: - mov r0, sp - ldrh r1, [r0, #6] - lsrs r0, r2, #1 - movs r6, #0x1f - subs r6, r6, r0 - adds r0, r1, #0 - muls r0, r6, r0 - movs r1, #0x1f - bl __divsi3 - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - mov r0, sp - ldrh r0, [r0, #8] - muls r0, r6, r0 - movs r1, #0x1f - bl __divsi3 - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - mov r0, sp - ldrh r0, [r0, #0xa] - muls r0, r6, r0 - movs r1, #0x1f - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #6 - lsls r4, r4, #5 - orrs r0, r4 - orrs r5, r0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - adds r0, r5, #0 -_08125DF8: - add sp, #0x14 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_08125CDC - - thumb_func_start sub_08125E00 -sub_08125E00: @ 0x08125E00 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - adds r3, r0, #0 - mov sl, r1 - str r2, [sp] - ldrh r1, [r3] - mov r0, sl - ldrh r0, [r0] - cmp r1, r0 - bne _08125E28 - ldrh r0, [r2] - cmp r0, r1 - bne _08125E28 - mov r1, sl - ldrh r0, [r1] - b _08125F10 -_08125E28: - mov r2, sl - ldrh r0, [r2] - movs r1, #0x1f - mov sb, r1 - movs r4, #0x1f - adds r5, r4, #0 - ands r5, r0 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x15 - mov r1, sb - ands r1, r2 - mov r8, r1 - lsrs r0, r0, #0x1a - mov r2, sb - ands r2, r0 - str r2, [sp, #4] - ldrh r2, [r3] - adds r0, r4, #0 - ands r0, r2 - lsls r2, r2, #0x10 - lsrs r1, r2, #0x15 - mov r3, sb - ands r1, r3 - adds r0, r0, r1 - lsrs r2, r2, #0x1a - ands r2, r3 - adds r0, r0, r2 - movs r1, #3 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - mov r1, r8 - adds r0, r5, r1 - ldr r2, [sp, #4] - adds r0, r0, r2 - movs r1, #3 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r3, [sp] - ldrh r1, [r3] - ands r4, r1 - lsls r1, r1, #0x10 - lsrs r0, r1, #0x15 - mov r2, sb - ands r0, r2 - adds r4, r4, r0 - lsrs r1, r1, #0x1a - ands r1, r2 - adds r4, r4, r1 - adds r0, r4, #0 - movs r1, #3 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r7, r6 - bne _08125EAA - cmp r1, r6 - bne _08125EAA - mov r3, sl - ldrh r0, [r3] - b _08125F10 -_08125EAA: - cmp r7, r6 - bls _08125EB2 - subs r0, r7, r6 - b _08125EB4 -_08125EB2: - subs r0, r6, r7 -_08125EB4: - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r1, r6 - bls _08125EC0 - subs r0, r1, r6 - b _08125EC2 -_08125EC0: - subs r0, r6, r1 -_08125EC2: - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r2, r0 - blo _08125ECC - adds r0, r2, #0 -_08125ECC: - lsrs r0, r0, #1 - movs r4, #0x1f - subs r4, r4, r0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - muls r0, r4, r0 - movs r1, #0x1f - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - mov r0, r8 - muls r0, r4, r0 - movs r1, #0x1f - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - ldr r1, [sp, #4] - adds r0, r1, #0 - muls r0, r4, r0 - movs r1, #0x1f - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #6 - mov r2, r8 - lsls r1, r2, #5 - orrs r0, r1 - orrs r5, r0 - lsls r0, r5, #0x10 - lsrs r0, r0, #0x10 -_08125F10: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_08125E00 - - thumb_func_start sub_08125F20 -sub_08125F20: @ 0x08125F20 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - adds r3, r0, #0 - mov sl, r1 - str r2, [sp] - ldrh r1, [r3] - mov r0, sl - ldrh r0, [r0] - cmp r1, r0 - bne _08125F48 - ldrh r0, [r2] - cmp r0, r1 - bne _08125F48 - mov r1, sl - ldrh r0, [r1] - b _0812602E -_08125F48: - mov r2, sl - ldrh r0, [r2] - movs r1, #0x1f - mov sb, r1 - movs r4, #0x1f - adds r5, r4, #0 - ands r5, r0 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x15 - mov r1, sb - ands r1, r2 - mov r8, r1 - lsrs r0, r0, #0x1a - mov r2, sb - ands r2, r0 - str r2, [sp, #4] - ldrh r2, [r3] - adds r0, r4, #0 - ands r0, r2 - lsls r2, r2, #0x10 - lsrs r1, r2, #0x15 - mov r3, sb - ands r1, r3 - adds r0, r0, r1 - lsrs r2, r2, #0x1a - ands r2, r3 - adds r0, r0, r2 - movs r1, #3 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - mov r1, r8 - adds r0, r5, r1 - ldr r2, [sp, #4] - adds r0, r0, r2 - movs r1, #3 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r3, [sp] - ldrh r1, [r3] - ands r4, r1 - lsls r1, r1, #0x10 - lsrs r0, r1, #0x15 - mov r2, sb - ands r0, r2 - adds r4, r4, r0 - lsrs r1, r1, #0x1a - ands r1, r2 - adds r4, r4, r1 - adds r0, r4, #0 - movs r1, #3 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r7, r6 - bne _08125FCA - cmp r1, r6 - bne _08125FCA - mov r3, sl - ldrh r0, [r3] - b _0812602E -_08125FCA: - cmp r7, r6 - bls _08125FD2 - subs r0, r7, r6 - b _08125FD4 -_08125FD2: - subs r0, r6, r7 -_08125FD4: - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r1, r6 - bls _08125FE0 - subs r0, r1, r6 - b _08125FE2 -_08125FE0: - subs r0, r6, r1 -_08125FE2: - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r2, r0 - blo _08125FEC - adds r0, r2, #0 -_08125FEC: - movs r4, #0x1f - subs r4, r4, r0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - muls r0, r4, r0 - movs r1, #0x1f - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - mov r0, r8 - muls r0, r4, r0 - movs r1, #0x1f - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - ldr r1, [sp, #4] - adds r0, r1, #0 - muls r0, r4, r0 - movs r1, #0x1f - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #6 - mov r2, r8 - lsls r1, r2, #5 - orrs r0, r1 - orrs r5, r0 - lsls r0, r5, #0x10 - lsrs r0, r0, #0x10 -_0812602E: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08125F20 - - thumb_func_start sub_08126040 -sub_08126040: @ 0x08126040 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - ldrb r1, [r0, #0x1d] - lsrs r5, r1, #3 - ldrb r1, [r0, #0x1e] - lsrs r1, r1, #3 - str r1, [sp, #8] - ldr r1, [r0, #4] - str r1, [sp] - ldr r2, [r0, #0x10] - str r2, [sp, #4] - ldrh r0, [r0, #0x16] - cmp r0, #2 - bne _081260F0 - movs r1, #0 - ldr r0, [sp, #8] - cmp r1, r0 - blo _0812606E - b _0812617C -_0812606E: - movs r0, #0 - adds r2, r1, #1 - mov sl, r2 - cmp r0, r5 - bhs _081260E2 - adds r2, r1, #0 - muls r2, r5, r2 - mov sb, r2 - lsls r1, r1, #3 - mov r8, r1 -_08126082: - movs r4, #0 - lsls r6, r0, #4 - adds r7, r0, #1 - add r0, sb - lsls r0, r0, #6 - ldr r1, [sp, #4] - adds r1, r1, r0 - mov ip, r1 -_08126092: - lsls r0, r4, #3 - mov r2, ip - adds r3, r2, r0 - mov r1, r8 - adds r0, r1, r4 - lsls r0, r0, #3 - muls r0, r5, r0 - lsls r0, r0, #1 - ldr r2, [sp] - adds r0, r2, r0 - adds r2, r0, r6 - ldrh r0, [r2, #2] - lsls r0, r0, #8 - ldrh r1, [r2] - orrs r0, r1 - strh r0, [r3] - ldrh r0, [r2, #6] - lsls r0, r0, #8 - ldrh r1, [r2, #4] - orrs r0, r1 - strh r0, [r3, #2] - ldrh r0, [r2, #0xa] - lsls r0, r0, #8 - ldrh r1, [r2, #8] - orrs r0, r1 - strh r0, [r3, #4] - ldrh r0, [r2, #0xe] - lsls r0, r0, #8 - ldrh r1, [r2, #0xc] - orrs r0, r1 - strh r0, [r3, #6] - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #7 - bls _08126092 - lsls r0, r7, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r5 - blo _08126082 -_081260E2: - mov r1, sl - lsls r0, r1, #0x10 - lsrs r1, r0, #0x10 - ldr r2, [sp, #8] - cmp r1, r2 - blo _0812606E - b _0812617C -_081260F0: - movs r1, #0 - ldr r0, [sp, #8] - cmp r1, r0 - bhs _0812617C -_081260F8: - movs r0, #0 - adds r2, r1, #1 - mov sl, r2 - cmp r0, r5 - bhs _08126170 - adds r2, r1, #0 - muls r2, r5, r2 - mov sb, r2 - lsls r1, r1, #3 - mov r8, r1 -_0812610C: - movs r4, #0 - lsls r6, r0, #4 - adds r7, r0, #1 - add r0, sb - lsls r0, r0, #5 - ldr r1, [sp, #4] - adds r1, r1, r0 - mov ip, r1 -_0812611C: - lsls r0, r4, #2 - mov r2, ip - adds r3, r2, r0 - mov r1, r8 - adds r0, r1, r4 - lsls r0, r0, #3 - muls r0, r5, r0 - lsls r0, r0, #1 - ldr r2, [sp] - adds r0, r2, r0 - adds r2, r0, r6 - ldrh r1, [r2, #2] - lsls r1, r1, #4 - ldrh r0, [r2] - orrs r1, r0 - ldrh r0, [r2, #4] - lsls r0, r0, #8 - orrs r1, r0 - ldrh r0, [r2, #6] - lsls r0, r0, #0xc - orrs r1, r0 - strh r1, [r3] - ldrh r1, [r2, #0xa] - lsls r1, r1, #4 - ldrh r0, [r2, #8] - orrs r1, r0 - ldrh r0, [r2, #0xc] - lsls r0, r0, #8 - orrs r1, r0 - ldrh r0, [r2, #0xe] - lsls r0, r0, #0xc - orrs r1, r0 - strh r1, [r3, #2] - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #7 - bls _0812611C - lsls r0, r7, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r5 - blo _0812610C -_08126170: - mov r1, sl - lsls r0, r1, #0x10 - lsrs r1, r0, #0x10 - ldr r2, [sp, #8] - cmp r1, r2 - blo _081260F8 -_0812617C: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08126040 - - thumb_func_start sub_0812618C -sub_0812618C: @ 0x0812618C - push {lr} - ldr r2, _081261DC - ldrb r1, [r0, #0x18] - lsls r1, r1, #4 - strh r1, [r2] - ldr r3, _081261E0 - ldrh r2, [r2] - lsls r2, r2, #1 - ldr r1, [r0, #8] - adds r1, r1, r2 - str r1, [r3] - ldr r2, _081261E4 - ldr r1, [r0, #4] - str r1, [r2] - ldr r2, _081261E8 - ldrb r1, [r0, #0x19] - strb r1, [r2] - ldr r2, _081261EC - ldrb r1, [r0, #0x1a] - strb r1, [r2] - ldr r2, _081261F0 - ldrb r1, [r0, #0x1b] - strb r1, [r2] - ldr r2, _081261F4 - ldrb r1, [r0, #0x1c] - strb r1, [r2] - ldr r2, _081261F8 - ldrb r1, [r0, #0x1d] - strb r1, [r2] - ldr r2, _081261FC - ldrb r1, [r0, #0x1e] - strb r1, [r2] - ldrh r0, [r0, #0x14] - cmp r0, #5 - bhi _08126252 - lsls r0, r0, #2 - ldr r1, _08126200 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081261DC: .4byte gUnknown_3005EC4 -_081261E0: .4byte gUnknown_3005EC0 -_081261E4: .4byte gUnknown_3005EA4 -_081261E8: .4byte gUnknown_3005EA0 -_081261EC: .4byte gUnknown_3005EB4 -_081261F0: .4byte gUnknown_3005EB0 -_081261F4: .4byte gUnknown_3005EA8 -_081261F8: .4byte gUnknown_3005EBC -_081261FC: .4byte gUnknown_3005EAC -_08126200: .4byte _08126204 -_08126204: @ jump table - .4byte _0812621C @ case 0 - .4byte _08126224 @ case 1 - .4byte _0812622C @ case 2 - .4byte _08126236 @ case 3 - .4byte _08126240 @ case 4 - .4byte _0812624A @ case 5 -_0812621C: - movs r0, #0 - bl sub_0812638C - b _08126252 -_08126224: - movs r0, #1 - bl sub_0812638C - b _08126252 -_0812622C: - bl sub_08126258 - bl sub_081266FC - b _08126252 -_08126236: - bl sub_08126358 - bl sub_0812664C - b _08126252 -_08126240: - bl sub_0812631C - bl sub_0812659C - b _08126252 -_0812624A: - bl sub_08126300 - bl sub_081264E4 -_08126252: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0812618C - - thumb_func_start sub_08126258 -sub_08126258: @ 0x08126258 - ldr r2, _081262C0 - ldr r1, [r2] - movs r0, #0 - strh r0, [r1] - ldr r0, [r2] - ldr r2, _081262C4 - adds r1, r2, #0 - strh r1, [r0, #2] - ldr r2, _081262C8 - adds r1, r2, #0 - strh r1, [r0, #4] - ldr r2, _081262CC - adds r1, r2, #0 - strh r1, [r0, #6] - ldr r2, _081262D0 - adds r1, r2, #0 - strh r1, [r0, #8] - ldr r2, _081262D4 - adds r1, r2, #0 - strh r1, [r0, #0xa] - ldr r2, _081262D8 - adds r1, r2, #0 - strh r1, [r0, #0xc] - ldr r2, _081262DC - adds r1, r2, #0 - strh r1, [r0, #0xe] - ldr r2, _081262E0 - adds r1, r2, #0 - strh r1, [r0, #0x10] - ldr r2, _081262E4 - adds r1, r2, #0 - strh r1, [r0, #0x12] - ldr r2, _081262E8 - adds r1, r2, #0 - strh r1, [r0, #0x14] - ldr r2, _081262EC - adds r1, r2, #0 - strh r1, [r0, #0x16] - ldr r2, _081262F0 - adds r1, r2, #0 - strh r1, [r0, #0x18] - ldr r2, _081262F4 - adds r1, r2, #0 - strh r1, [r0, #0x1a] - ldr r2, _081262F8 - adds r1, r2, #0 - strh r1, [r0, #0x1c] - ldr r2, _081262FC - adds r1, r2, #0 - strh r1, [r0, #0x1e] - bx lr - .align 2, 0 -_081262C0: .4byte gUnknown_3005EC0 -_081262C4: .4byte 0x000018C6 -_081262C8: .4byte 0x000077BD -_081262CC: .4byte 0x00002D6B -_081262D0: .4byte 0x000018DD -_081262D4: .4byte 0x00001BA6 -_081262D8: .4byte 0x000074C6 -_081262DC: .4byte 0x00001BBD -_081262E0: .4byte 0x000074DD -_081262E4: .4byte 0x000077A6 -_081262E8: .4byte 0x0000197D -_081262EC: .4byte 0x00001BAB -_081262F0: .4byte 0x00007566 -_081262F4: .4byte 0x00002CDD -_081262F8: .4byte 0x00002FA6 -_081262FC: .4byte 0x000074CB - thumb_func_end sub_08126258 - - thumb_func_start sub_08126300 -sub_08126300: @ 0x08126300 - ldr r2, _08126314 - ldr r0, [r2] - movs r1, #0 - strh r1, [r0] - ldr r2, [r2] - strh r1, [r2, #2] - ldr r1, _08126318 - adds r0, r1, #0 - strh r0, [r2, #4] - bx lr - .align 2, 0 -_08126314: .4byte gUnknown_3005EC0 -_08126318: .4byte 0x00007FFF - thumb_func_end sub_08126300 - - thumb_func_start sub_0812631C -sub_0812631C: @ 0x0812631C - push {r4, r5, lr} - ldr r1, _08126354 - ldr r0, [r1] - movs r2, #0 - strh r2, [r0] - ldr r0, [r1] - strh r2, [r0, #2] - movs r4, #0 - adds r5, r1, #0 -_0812632E: - ldr r0, [r5] - lsls r2, r4, #1 - adds r2, r2, r0 - adds r0, r4, #2 - lsls r3, r0, #1 - lsls r1, r0, #0xb - lsls r0, r0, #6 - orrs r1, r0 - orrs r1, r3 - strh r1, [r2, #4] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xd - bls _0812632E - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08126354: .4byte gUnknown_3005EC0 - thumb_func_end sub_0812631C - - thumb_func_start sub_08126358 -sub_08126358: @ 0x08126358 - push {r4, lr} - ldr r2, _08126388 - ldr r1, [r2] - movs r0, #0 - strh r0, [r1] - movs r3, #0 - adds r4, r2, #0 -_08126366: - ldr r0, [r4] - lsls r2, r3, #1 - adds r2, r2, r0 - lsls r0, r3, #0xa - lsls r1, r3, #5 - orrs r0, r1 - orrs r0, r3 - strh r0, [r2, #2] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0x1f - bls _08126366 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08126388: .4byte gUnknown_3005EC0 - thumb_func_end sub_08126358 - - thumb_func_start sub_0812638C -sub_0812638C: @ 0x0812638C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - movs r1, #0xdf - mov sb, r1 - cmp r0, #0 - bne _081263A4 - movs r2, #0xff - mov sb, r2 -_081263A4: - movs r6, #0 - ldr r3, _08126428 - mov ip, r3 - mov r0, sb - lsls r4, r0, #1 - ldr r5, _0812642C - cmp r6, sb - bhs _081263C8 - movs r2, #0 -_081263B6: - ldr r0, [r3] - lsls r1, r6, #1 - adds r1, r1, r0 - strh r2, [r1] - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, sb - blo _081263B6 -_081263C8: - mov r1, ip - ldr r0, [r1] - adds r0, r4, r0 - ldr r2, _08126430 - adds r1, r2, #0 - strh r1, [r0] - movs r3, #0 - ldrb r5, [r5] - cmp r3, r5 - bhs _081264CC -_081263DC: - ldr r2, _08126434 - ldr r0, _08126438 - ldrb r1, [r0] - adds r1, r1, r3 - ldr r0, _0812643C - ldrb r0, [r0] - muls r0, r1, r0 - lsls r0, r0, #1 - ldr r1, [r2] - adds r1, r1, r0 - ldr r0, _08126440 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r4, r1, r0 - movs r6, #0 - ldr r0, _08126444 - adds r2, r0, #0 - adds r3, #1 - mov sl, r3 - ldrb r3, [r2] - cmp r6, r3 - bhs _081264BE - ldr r0, _08126448 - mov r8, r0 -_0812640C: - ldrh r0, [r4] - movs r3, #0x80 - lsls r3, r3, #8 - adds r1, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _0812644C - mov r1, r8 - ldrh r0, [r1] - strh r0, [r4] - adds r6, #1 - adds r7, r4, #2 - b _081264B2 - .align 2, 0 -_08126428: .4byte gUnknown_3005EC0 -_0812642C: .4byte gUnknown_3005EA8 -_08126430: .4byte 0x00003DEF -_08126434: .4byte gUnknown_3005EA4 -_08126438: .4byte gUnknown_3005EB4 -_0812643C: .4byte gUnknown_3005EBC -_08126440: .4byte gUnknown_3005EA0 -_08126444: .4byte gUnknown_3005EB0 -_08126448: .4byte gUnknown_3005EC4 -_0812644C: - adds r0, r4, #0 - bl sub_081267AC - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - movs r3, #1 - adds r6, #1 - adds r7, r4, #2 - cmp r3, sb - bhs _081264A8 - ldr r0, _08126478 - ldr r2, [r0] - ldrh r1, [r2, #2] - mov ip, r0 - cmp r1, #0 - bne _0812647C - strh r5, [r2, #2] - mov r2, r8 - ldrh r0, [r2] - adds r0, #1 - b _081264A6 - .align 2, 0 -_08126478: .4byte gUnknown_3005EC0 -_0812647C: - mov r2, ip - ldr r1, [r2] - lsls r0, r3, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, r5 - beq _081264A0 - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, sb - bhs _081264A8 - lsls r0, r3, #1 - adds r1, r0, r1 - ldrh r0, [r1] - cmp r0, #0 - bne _0812647C - strh r5, [r1] -_081264A0: - mov r1, r8 - ldrh r0, [r1] - adds r0, r0, r3 -_081264A6: - strh r0, [r4] -_081264A8: - ldr r2, _081264DC - cmp r3, sb - bne _081264B2 - mov r3, sb - strh r3, [r4] -_081264B2: - lsls r0, r6, #0x18 - lsrs r6, r0, #0x18 - adds r4, r7, #0 - ldrb r0, [r2] - cmp r6, r0 - blo _0812640C -_081264BE: - mov r1, sl - lsls r0, r1, #0x18 - lsrs r3, r0, #0x18 - ldr r0, _081264E0 - ldrb r0, [r0] - cmp r3, r0 - blo _081263DC -_081264CC: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081264DC: .4byte gUnknown_3005EB0 -_081264E0: .4byte gUnknown_3005EA8 - thumb_func_end sub_0812638C - - thumb_func_start sub_081264E4 -sub_081264E4: @ 0x081264E4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r2, #0 - ldr r0, _08126538 - ldrb r0, [r0] - cmp r2, r0 - bhs _08126588 - ldr r0, _0812653C - mov r8, r0 -_081264F8: - ldr r0, _08126540 - ldrb r1, [r0] - adds r1, r1, r2 - ldr r0, _08126544 - ldrb r0, [r0] - muls r0, r1, r0 - lsls r0, r0, #1 - mov r3, r8 - ldr r1, [r3] - adds r1, r1, r0 - ldr r0, _08126548 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r4, r1, r0 - movs r6, #0 - ldr r0, _0812654C - adds r3, r0, #0 - adds r7, r2, #1 - ldrb r0, [r3] - cmp r6, r0 - bhs _0812657C - ldr r5, _08126550 -_08126524: - ldrh r0, [r4] - movs r2, #0x80 - lsls r2, r2, #8 - adds r1, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _08126554 - ldrh r0, [r5] - strh r0, [r4] - b _0812656E - .align 2, 0 -_08126538: .4byte gUnknown_3005EA8 -_0812653C: .4byte gUnknown_3005EA4 -_08126540: .4byte gUnknown_3005EB4 -_08126544: .4byte gUnknown_3005EBC -_08126548: .4byte gUnknown_3005EA0 -_0812654C: .4byte gUnknown_3005EB0 -_08126550: .4byte gUnknown_3005EC4 -_08126554: - adds r0, r4, #0 - bl ConvertToBlackOrWhite - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08126566 - ldrh r0, [r5] - adds r0, #1 - b _0812656A -_08126566: - ldrh r0, [r5] - adds r0, #2 -_0812656A: - strh r0, [r4] - ldr r3, _08126594 -_0812656E: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r4, #2 - ldrb r0, [r3] - cmp r6, r0 - blo _08126524 -_0812657C: - lsls r0, r7, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _08126598 - ldrb r0, [r0] - cmp r2, r0 - blo _081264F8 -_08126588: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08126594: .4byte gUnknown_3005EB0 -_08126598: .4byte gUnknown_3005EA8 - thumb_func_end sub_081264E4 - - thumb_func_start sub_0812659C -sub_0812659C: @ 0x0812659C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - movs r2, #0 - ldr r0, _081265F0 - ldrb r0, [r0] - cmp r2, r0 - bhs _08126638 - ldr r0, _081265F4 - mov r8, r0 -_081265B2: - ldr r0, _081265F8 - ldrb r1, [r0] - adds r1, r1, r2 - ldr r0, _081265FC - ldrb r0, [r0] - muls r0, r1, r0 - lsls r0, r0, #1 - mov r3, r8 - ldr r1, [r3] - adds r1, r1, r0 - ldr r0, _08126600 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r4, r1, r0 - movs r5, #0 - ldr r0, _08126604 - adds r7, r2, #1 - ldrb r0, [r0] - cmp r5, r0 - bhs _0812662C - ldr r6, _08126608 - movs r0, #0x80 - lsls r0, r0, #8 - adds r2, r0, #0 -_081265E2: - ldrh r0, [r4] - ands r0, r2 - cmp r0, #0 - beq _0812660C - ldrh r0, [r6] - strh r0, [r4] - b _0812661C - .align 2, 0 -_081265F0: .4byte gUnknown_3005EA8 -_081265F4: .4byte gUnknown_3005EA4 -_081265F8: .4byte gUnknown_3005EB4 -_081265FC: .4byte gUnknown_3005EBC -_08126600: .4byte gUnknown_3005EA0 -_08126604: .4byte gUnknown_3005EB0 -_08126608: .4byte gUnknown_3005EC4 -_0812660C: - adds r0, r4, #0 - str r2, [sp] - bl sub_081268F0 - ldrh r1, [r6] - adds r0, r0, r1 - strh r0, [r4] - ldr r2, [sp] -_0812661C: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r4, #2 - ldr r0, _08126644 - ldrb r0, [r0] - cmp r5, r0 - blo _081265E2 -_0812662C: - lsls r0, r7, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _08126648 - ldrb r0, [r0] - cmp r2, r0 - blo _081265B2 -_08126638: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08126644: .4byte gUnknown_3005EB0 -_08126648: .4byte gUnknown_3005EA8 - thumb_func_end sub_0812659C - - thumb_func_start sub_0812664C -sub_0812664C: @ 0x0812664C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - movs r2, #0 - ldr r0, _081266A0 - ldrb r0, [r0] - cmp r2, r0 - bhs _081266E8 - ldr r0, _081266A4 - mov r8, r0 -_08126662: - ldr r0, _081266A8 - ldrb r1, [r0] - adds r1, r1, r2 - ldr r0, _081266AC - ldrb r0, [r0] - muls r0, r1, r0 - lsls r0, r0, #1 - mov r3, r8 - ldr r1, [r3] - adds r1, r1, r0 - ldr r0, _081266B0 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r4, r1, r0 - movs r5, #0 - ldr r0, _081266B4 - adds r7, r2, #1 - ldrb r0, [r0] - cmp r5, r0 - bhs _081266DC - ldr r6, _081266B8 - movs r0, #0x80 - lsls r0, r0, #8 - adds r2, r0, #0 -_08126692: - ldrh r0, [r4] - ands r0, r2 - cmp r0, #0 - beq _081266BC - ldrh r0, [r6] - strh r0, [r4] - b _081266CC - .align 2, 0 -_081266A0: .4byte gUnknown_3005EA8 -_081266A4: .4byte gUnknown_3005EA4 -_081266A8: .4byte gUnknown_3005EB4 -_081266AC: .4byte gUnknown_3005EBC -_081266B0: .4byte gUnknown_3005EA0 -_081266B4: .4byte gUnknown_3005EB0 -_081266B8: .4byte gUnknown_3005EC4 -_081266BC: - adds r0, r4, #0 - str r2, [sp] - bl sub_08126924 - ldrh r1, [r6] - adds r0, r0, r1 - strh r0, [r4] - ldr r2, [sp] -_081266CC: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r4, #2 - ldr r0, _081266F4 - ldrb r0, [r0] - cmp r5, r0 - blo _08126692 -_081266DC: - lsls r0, r7, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _081266F8 - ldrb r0, [r0] - cmp r2, r0 - blo _08126662 -_081266E8: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081266F4: .4byte gUnknown_3005EB0 -_081266F8: .4byte gUnknown_3005EA8 - thumb_func_end sub_0812664C - - thumb_func_start sub_081266FC -sub_081266FC: @ 0x081266FC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - movs r2, #0 - ldr r0, _08126750 - ldrb r0, [r0] - cmp r2, r0 - bhs _08126798 - ldr r0, _08126754 - mov r8, r0 -_08126712: - ldr r0, _08126758 - ldrb r1, [r0] - adds r1, r1, r2 - ldr r0, _0812675C - ldrb r0, [r0] - muls r0, r1, r0 - lsls r0, r0, #1 - mov r3, r8 - ldr r1, [r3] - adds r1, r1, r0 - ldr r0, _08126760 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r4, r1, r0 - movs r5, #0 - ldr r0, _08126764 - adds r7, r2, #1 - ldrb r0, [r0] - cmp r5, r0 - bhs _0812678C - ldr r6, _08126768 - movs r0, #0x80 - lsls r0, r0, #8 - adds r2, r0, #0 -_08126742: - ldrh r0, [r4] - ands r0, r2 - cmp r0, #0 - beq _0812676C - ldrh r0, [r6] - strh r0, [r4] - b _0812677C - .align 2, 0 -_08126750: .4byte gUnknown_3005EA8 -_08126754: .4byte gUnknown_3005EA4 -_08126758: .4byte gUnknown_3005EB4 -_0812675C: .4byte gUnknown_3005EBC -_08126760: .4byte gUnknown_3005EA0 -_08126764: .4byte gUnknown_3005EB0 -_08126768: .4byte gUnknown_3005EC4 -_0812676C: - adds r0, r4, #0 - str r2, [sp] - bl sub_08126820 - ldrh r1, [r6] - adds r0, r0, r1 - strh r0, [r4] - ldr r2, [sp] -_0812677C: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r4, #2 - ldr r0, _081267A4 - ldrb r0, [r0] - cmp r5, r0 - blo _08126742 -_0812678C: - lsls r0, r7, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _081267A8 - ldrb r0, [r0] - cmp r2, r0 - blo _08126712 -_08126798: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081267A4: .4byte gUnknown_3005EB0 -_081267A8: .4byte gUnknown_3005EA8 - thumb_func_end sub_081266FC - - thumb_func_start sub_081267AC -sub_081267AC: @ 0x081267AC - push {r4, lr} - ldrh r0, [r0] - movs r1, #0x1f - movs r4, #0x1f - ands r4, r0 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x15 - ands r3, r1 - lsrs r2, r0, #0x1a - ands r2, r1 - movs r1, #3 - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - beq _081267D0 - movs r0, #0x1c - ands r0, r4 - adds r4, r0, #4 -_081267D0: - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _081267DE - movs r0, #0x1c - ands r0, r3 - adds r3, r0, #4 -_081267DE: - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _081267EC - movs r0, #0x1c - ands r0, r2 - adds r2, r0, #4 -_081267EC: - cmp r4, #5 - bhi _081267F2 - movs r4, #6 -_081267F2: - cmp r4, #0x1e - bls _081267F8 - movs r4, #0x1e -_081267F8: - cmp r3, #5 - bhi _081267FE - movs r3, #6 -_081267FE: - cmp r3, #0x1e - bls _08126804 - movs r3, #0x1e -_08126804: - cmp r2, #5 - bhi _0812680A - movs r2, #6 -_0812680A: - cmp r2, #0x1e - bls _08126810 - movs r2, #0x1e -_08126810: - lsls r0, r2, #0xa - lsls r1, r3, #5 - orrs r0, r1 - orrs r4, r0 - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081267AC - - thumb_func_start sub_08126820 -sub_08126820: @ 0x08126820 - push {lr} - ldrh r0, [r0] - movs r1, #0x1f - movs r3, #0x1f - ands r3, r0 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x15 - ands r2, r1 - lsrs r0, r0, #0x1a - ands r0, r1 - cmp r3, #0xb - bhi _08126844 - cmp r2, #0xa - bhi _08126844 - cmp r0, #0xa - bhi _08126844 - movs r0, #1 - b _081268EA -_08126844: - cmp r3, #0x13 - bls _08126868 - cmp r2, #0x13 - bls _08126850 - cmp r0, #0x13 - bhi _08126874 -_08126850: - cmp r3, #0x13 - bls _08126868 - cmp r2, #0x13 - bls _0812685E - cmp r0, #0xe - bhi _08126874 - b _081268AC -_0812685E: - cmp r0, #0x13 - bls _08126868 - cmp r2, #0xe - bhi _08126874 - b _08126888 -_08126868: - cmp r2, #0x13 - bls _08126878 - cmp r0, #0x13 - bls _08126878 - cmp r3, #0xe - bls _081268D0 -_08126874: - movs r0, #2 - b _081268EA -_08126878: - cmp r3, #0x13 - bls _0812689C - cmp r2, #0xb - bls _08126890 - cmp r0, #0xb - bls _0812688C - cmp r2, r0 - bhs _081268AC -_08126888: - movs r0, #8 - b _081268EA -_0812688C: - movs r0, #0xa - b _081268EA -_08126890: - cmp r0, #0xb - bls _08126898 - movs r0, #0xd - b _081268EA -_08126898: - movs r0, #4 - b _081268EA -_0812689C: - cmp r2, #0x13 - bls _081268C0 - cmp r3, #0xb - bls _081268B4 - cmp r0, #0xb - bls _081268B0 - cmp r3, r0 - blo _081268D0 -_081268AC: - movs r0, #7 - b _081268EA -_081268B0: - movs r0, #0xb - b _081268EA -_081268B4: - cmp r0, #0xb - bls _081268BC - movs r0, #0xe - b _081268EA -_081268BC: - movs r0, #5 - b _081268EA -_081268C0: - cmp r0, #0x13 - bls _081268E8 - cmp r3, #0xb - bls _081268D4 - cmp r2, #0xb - bls _081268DC - cmp r3, r2 - bhs _08126888 -_081268D0: - movs r0, #9 - b _081268EA -_081268D4: - cmp r2, #0xb - bls _081268DC - movs r0, #0xc - b _081268EA -_081268DC: - cmp r0, #0xb - bls _081268E4 - movs r0, #0xf - b _081268EA -_081268E4: - movs r0, #6 - b _081268EA -_081268E8: - movs r0, #3 -_081268EA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08126820 - - thumb_func_start sub_081268F0 -sub_081268F0: @ 0x081268F0 - push {lr} - ldrh r1, [r0] - movs r3, #0x1f - movs r0, #0x1f - ands r0, r1 - lsls r1, r1, #0x10 - lsrs r2, r1, #0x15 - ands r2, r3 - lsrs r1, r1, #0x1a - ands r1, r3 - adds r0, r0, r2 - adds r0, r0, r1 - movs r1, #3 - bl __divsi3 - movs r1, #0x1e - ands r0, r1 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0812691C - lsrs r0, r0, #0x11 - b _0812691E -_0812691C: - movs r0, #1 -_0812691E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081268F0 - - thumb_func_start sub_08126924 -sub_08126924: @ 0x08126924 - push {lr} - ldrh r1, [r0] - movs r3, #0x1f - movs r0, #0x1f - ands r0, r1 - lsls r1, r1, #0x10 - lsrs r2, r1, #0x15 - ands r2, r3 - lsrs r1, r1, #0x1a - ands r1, r3 - adds r0, r0, r2 - adds r0, r0, r1 - movs r1, #3 - bl __divsi3 - lsls r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r0, r1 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - thumb_func_end sub_08126924 - - thumb_func_start InitDecorationContextItems -InitDecorationContextItems: @ 0x08126950 - push {lr} - ldr r3, _08126998 - ldrb r0, [r3] - cmp r0, #7 - bhi _08126966 - ldr r2, _0812699C - ldr r1, _081269A0 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r2] -_08126966: - ldr r2, _081269A4 - ldrb r0, [r2, #9] - cmp r0, #0 - bne _0812697E - ldr r0, _081269A8 - ldr r0, [r0] - ldr r3, _081269AC - adds r1, r0, r3 - str r1, [r2] - ldr r1, _081269B0 - adds r0, r0, r1 - str r0, [r2, #4] -_0812697E: - ldrb r0, [r2, #9] - cmp r0, #1 - bne _08126994 - ldr r0, _081269A8 - ldr r0, [r0] - ldr r3, _081269B4 - adds r1, r0, r3 - str r1, [r2] - ldr r1, _081269B8 - adds r0, r0, r1 - str r0, [r2, #4] -_08126994: - pop {r0} - bx r0 - .align 2, 0 -_08126998: .4byte gUnknown_2039E3F -_0812699C: .4byte gUnknown_2039E18 -_081269A0: .4byte gUnknown_203B90C -_081269A4: .4byte gUnknown_2039E48 -_081269A8: .4byte gUnknown_3005AEC -_081269AC: .4byte 0x00001AAE -_081269B0: .4byte 0x00001ABE -_081269B4: .4byte 0x0000271C -_081269B8: .4byte 0x00002728 - thumb_func_end InitDecorationContextItems - - thumb_func_start sub_081269BC -sub_081269BC: @ 0x081269BC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _081269F0 - adds r4, r0, r4 - lsls r0, r0, #3 - ldr r1, _081269F4 - adds r0, r0, r1 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r2, #0x85 - lsls r2, r2, #2 - movs r1, #0 - movs r3, #0xe - bl DrawStdFrameWithCustomTileAndPalette - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - ldrb r0, [r4] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081269F0: .4byte gUnknown_2039E54 -_081269F4: .4byte gUnknown_8581A74 - thumb_func_end sub_081269BC - - thumb_func_start RemoveDecorationWindow -RemoveDecorationWindow: @ 0x081269F8 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _08126A24 - adds r4, r4, r0 - ldrb r0, [r4] - movs r1, #0 - bl sub_08198134 - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - bl RemoveWindow - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08126A24: .4byte gUnknown_2039E54 - thumb_func_end RemoveDecorationWindow - - thumb_func_start sub_08126A28 -sub_08126A28: @ 0x08126A28 - push {r4, r5, r6, lr} - sub sp, #0xc - movs r0, #0 - bl sub_081269BC - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - movs r1, #0 - bl GetFontAttribute - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r6, #0x10 - str r6, [sp] - movs r5, #4 - str r5, [sp, #4] - ldr r0, _08126A7C - str r0, [sp, #8] - adds r0, r4, #0 - movs r1, #1 - movs r3, #2 - bl PrintTextArray - str r6, [sp] - str r5, [sp, #4] - ldr r0, _08126A80 - ldrb r0, [r0] - str r0, [sp, #8] - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl sub_081984B0 - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08126A7C: .4byte gUnknown_8581A2C -_08126A80: .4byte gUnknown_2039E1C - thumb_func_end sub_08126A28 - - thumb_func_start InitDecorationActionsWindow -InitDecorationActionsWindow: @ 0x08126A84 - push {lr} - ldr r1, _08126A9C - movs r0, #0 - strb r0, [r1] - bl sub_080987DC - bl sub_08126A28 - bl PrintCurMainMenuDescription - pop {r0} - bx r0 - .align 2, 0 -_08126A9C: .4byte gUnknown_2039E1C - thumb_func_end InitDecorationActionsWindow - - thumb_func_start DoSecretBaseDecorationMenu -DoSecretBaseDecorationMenu: @ 0x08126AA0 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl InitDecorationActionsWindow - ldr r2, _08126ADC - ldr r0, _08126AE0 - ldr r0, [r0] - ldr r3, _08126AE4 - adds r1, r0, r3 - str r1, [r2] - ldr r1, _08126AE8 - adds r0, r0, r1 - str r0, [r2, #4] - movs r1, #0 - movs r0, #0x10 - strb r0, [r2, #8] - strb r1, [r2, #9] - ldr r1, _08126AEC - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08126AF0 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08126ADC: .4byte gUnknown_2039E48 -_08126AE0: .4byte gUnknown_3005AEC -_08126AE4: .4byte 0x00001AAE -_08126AE8: .4byte 0x00001ABE -_08126AEC: .4byte gUnknown_3005B60 -_08126AF0: .4byte HandleDecorationActionsMenuInput - thumb_func_end DoSecretBaseDecorationMenu - - thumb_func_start DoPlayerRoomDecorationMenu -DoPlayerRoomDecorationMenu: @ 0x08126AF4 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl InitDecorationActionsWindow - ldr r2, _08126B30 - ldr r0, _08126B34 - ldr r0, [r0] - ldr r3, _08126B38 - adds r1, r0, r3 - str r1, [r2] - ldr r1, _08126B3C - adds r0, r0, r1 - str r0, [r2, #4] - movs r0, #0xc - strb r0, [r2, #8] - movs r0, #1 - strb r0, [r2, #9] - ldr r1, _08126B40 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08126B44 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08126B30: .4byte gUnknown_2039E48 -_08126B34: .4byte gUnknown_3005AEC -_08126B38: .4byte 0x0000271C -_08126B3C: .4byte 0x00002728 -_08126B40: .4byte gUnknown_3005B60 -_08126B44: .4byte HandleDecorationActionsMenuInput - thumb_func_end DoPlayerRoomDecorationMenu - - thumb_func_start HandleDecorationActionsMenuInput -HandleDecorationActionsMenuInput: @ 0x08126B48 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _08126B94 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08126BC8 - bl Menu_GetCursorPos - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl Menu_ProcessInput - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - movs r0, #2 - rsbs r0, r0, #0 - cmp r1, r0 - beq _08126BA0 - adds r0, #1 - cmp r1, r0 - beq _08126BBC - movs r0, #5 - bl sub_080A306C - ldr r1, _08126B98 - ldr r0, _08126B9C - ldrb r0, [r0] - lsls r0, r0, #3 - adds r1, #4 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - b _08126BC8 - .align 2, 0 -_08126B94: .4byte gUnknown_2037C74 -_08126B98: .4byte gUnknown_8581A2C -_08126B9C: .4byte gUnknown_2039E1C -_08126BA0: - bl Menu_GetCursorPos - ldr r1, _08126BB8 - strb r0, [r1] - lsls r0, r4, #0x18 - asrs r0, r0, #0x18 - ldrb r1, [r1] - cmp r0, r1 - beq _08126BC8 - bl PrintCurMainMenuDescription - b _08126BC8 - .align 2, 0 -_08126BB8: .4byte gUnknown_2039E1C -_08126BBC: - movs r0, #5 - bl sub_080A306C - adds r0, r5, #0 - bl DecorationMenuAction_Cancel -_08126BC8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end HandleDecorationActionsMenuInput - - thumb_func_start PrintCurMainMenuDescription -PrintCurMainMenuDescription: @ 0x08126BD0 - push {lr} - sub sp, #0x10 - movs r0, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r1, _08126C08 - ldr r0, _08126C0C - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r2, [r0] - movs r0, #0 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - movs r0, #3 - str r0, [sp, #0xc] - movs r0, #0 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized2 - add sp, #0x10 - pop {r0} - bx r0 - .align 2, 0 -_08126C08: .4byte gUnknown_8581A4C -_08126C0C: .4byte gUnknown_2039E1C - thumb_func_end PrintCurMainMenuDescription - - thumb_func_start DecorationMenuAction_Decorate -DecorationMenuAction_Decorate: @ 0x08126C10 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - bl GetNumOwnedDecorations - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08126C44 - ldr r4, _08126C38 - ldr r1, _08126C3C - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r2, _08126C40 - adds r0, r5, #0 - adds r1, r4, #0 - bl DisplayItemMessageOnField - b _08126C5E - .align 2, 0 -_08126C38: .4byte gUnknown_2021C7C -_08126C3C: .4byte gUnknown_85CA70B -_08126C40: .4byte ReturnToDecorationActionsAfterInvalidSelection -_08126C44: - ldr r1, _08126C64 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #0 - movs r1, #0 - strh r1, [r0, #0x1e] - ldr r0, _08126C68 - strb r2, [r0] - adds r0, r5, #0 - bl SecretBasePC_PrepMenuForSelectingStoredDecors -_08126C5E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08126C64: .4byte gUnknown_3005B60 -_08126C68: .4byte gUnknown_2039E3F - thumb_func_end DecorationMenuAction_Decorate - - thumb_func_start DecorationMenuAction_PutAway -DecorationMenuAction_PutAway: @ 0x08126C6C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r5, #0 - bl sub_0812999C - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08126CA0 - ldr r4, _08126C94 - ldr r1, _08126C98 - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r2, _08126C9C - adds r0, r5, #0 - adds r1, r4, #0 - bl DisplayItemMessageOnField - b _08126CC8 - .align 2, 0 -_08126C94: .4byte gUnknown_2021C7C -_08126C98: .4byte gUnknown_85CA87A -_08126C9C: .4byte ReturnToDecorationActionsAfterInvalidSelection -_08126CA0: - movs r0, #0 - bl RemoveDecorationWindow - movs r0, #0 - movs r1, #0 - bl sub_08197028 - movs r0, #1 - movs r1, #0 - bl FadeScreen - ldr r1, _08126CD0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #0xc] - ldr r1, _08126CD4 - str r1, [r0] -_08126CC8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08126CD0: .4byte gUnknown_3005B60 -_08126CD4: .4byte sub_08129AAC - thumb_func_end DecorationMenuAction_PutAway - - thumb_func_start sub_08126CD8 -sub_08126CD8: @ 0x08126CD8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - bl GetNumOwnedDecorations - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08126D0C - ldr r4, _08126D00 - ldr r1, _08126D04 - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r2, _08126D08 - adds r0, r5, #0 - adds r1, r4, #0 - bl DisplayItemMessageOnField - b _08126D26 - .align 2, 0 -_08126D00: .4byte gUnknown_2021C7C -_08126D04: .4byte gUnknown_85CA70B -_08126D08: .4byte ReturnToDecorationActionsAfterInvalidSelection -_08126D0C: - ldr r1, _08126D2C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #0 - movs r1, #1 - strh r1, [r0, #0x1e] - ldr r0, _08126D30 - strb r2, [r0] - adds r0, r5, #0 - bl SecretBasePC_PrepMenuForSelectingStoredDecors -_08126D26: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08126D2C: .4byte gUnknown_3005B60 -_08126D30: .4byte gUnknown_2039E3F - thumb_func_end sub_08126CD8 - - thumb_func_start DecorationMenuAction_Cancel -DecorationMenuAction_Cancel: @ 0x08126D34 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #0 - bl RemoveDecorationWindow - ldr r0, _08126D58 - ldrb r0, [r0, #9] - cmp r0, #0 - bne _08126D60 - ldr r0, _08126D5C - bl ScriptContext1_SetupScript - adds r0, r4, #0 - bl DestroyTask - b _08126D66 - .align 2, 0 -_08126D58: .4byte gUnknown_2039E48 -_08126D5C: .4byte gUnknown_821D3D7 -_08126D60: - adds r0, r4, #0 - bl ReshowPlayerPC -_08126D66: - pop {r4} - pop {r0} - bx r0 - thumb_func_end DecorationMenuAction_Cancel - - thumb_func_start ReturnToDecorationActionsAfterInvalidSelection -ReturnToDecorationActionsAfterInvalidSelection: @ 0x08126D6C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl PrintCurMainMenuDescription - ldr r1, _08126D8C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08126D90 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08126D8C: .4byte gUnknown_3005B60 -_08126D90: .4byte HandleDecorationActionsMenuInput - thumb_func_end ReturnToDecorationActionsAfterInvalidSelection - - thumb_func_start SecretBasePC_PrepMenuForSelectingStoredDecors -SecretBasePC_PrepMenuForSelectingStoredDecors: @ 0x08126D94 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _08126DC0 - movs r1, #0xd0 - movs r2, #0x20 - bl LoadPalette - movs r0, #0 - movs r1, #0 - bl sub_08197028 - movs r0, #0 - bl RemoveDecorationWindow - adds r0, r4, #0 - bl sub_08126DC4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08126DC0: .4byte gUnknown_8581A94 - thumb_func_end SecretBasePC_PrepMenuForSelectingStoredDecors - - thumb_func_start sub_08126DC4 -sub_08126DC4: @ 0x08126DC4 - push {r4, r5, lr} - sub sp, #0xc - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - bl sub_081269BC - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - adds r0, r4, #0 - bl sub_08126E78 - movs r0, #0x10 - str r0, [sp] - movs r0, #9 - str r0, [sp, #4] - ldr r0, _08126E10 - ldrb r0, [r0] - str r0, [sp, #8] - adds r0, r5, #0 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl sub_081984B0 - ldr r1, _08126E14 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08126E18 - str r1, [r0] - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08126E10: .4byte gUnknown_2039E3F -_08126E14: .4byte gUnknown_3005B60 -_08126E18: .4byte HandleDecorationCategoriesMenuInput - thumb_func_end sub_08126DC4 - - thumb_func_start task_map_chg_seq_0807EC34 -task_map_chg_seq_0807EC34: @ 0x08126E1C - push {r4, r5, lr} - sub sp, #0xc - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r5, _08126E68 - ldrb r0, [r5, #1] - movs r1, #0x11 - bl FillWindowPixelBuffer - adds r0, r4, #0 - bl sub_08126E78 - ldrb r0, [r5, #1] - movs r1, #0x10 - str r1, [sp] - movs r1, #9 - str r1, [sp, #4] - ldr r1, _08126E6C - ldrb r1, [r1] - str r1, [sp, #8] - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl sub_081984B0 - ldr r1, _08126E70 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08126E74 - str r1, [r0] - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08126E68: .4byte gUnknown_2039E54 -_08126E6C: .4byte gUnknown_2039E3F -_08126E70: .4byte gUnknown_3005B60 -_08126E74: .4byte HandleDecorationCategoriesMenuInput - thumb_func_end task_map_chg_seq_0807EC34 - - thumb_func_start sub_08126E78 -sub_08126E78: @ 0x08126E78 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _08126EC8 - adds r1, r1, r0 - ldr r0, _08126ECC - ldrb r5, [r0, #1] - ldr r0, _08126ED0 - ldrb r0, [r0, #9] - movs r7, #0 - cmp r0, #1 - bne _08126EA2 - movs r2, #0x16 - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _08126EA2 - movs r7, #1 -_08126EA2: - movs r4, #0 - movs r6, #0xff -_08126EA6: - cmp r7, #1 - bne _08126ED4 - cmp r4, #6 - beq _08126ED4 - cmp r4, #7 - beq _08126ED4 - lsls r3, r4, #0x1c - lsrs r3, r3, #0x18 - str r7, [sp] - str r6, [sp, #4] - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #8 - bl sub_08126F20 - b _08126EE8 - .align 2, 0 -_08126EC8: .4byte gUnknown_3005B68 -_08126ECC: .4byte gUnknown_2039E54 -_08126ED0: .4byte gUnknown_2039E48 -_08126ED4: - lsls r3, r4, #0x1c - lsrs r3, r3, #0x18 - movs r0, #0 - str r0, [sp] - str r6, [sp, #4] - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #8 - bl sub_08126F20 -_08126EE8: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #7 - bls _08126EA6 - ldr r2, _08126F1C - lsls r0, r4, #4 - adds r0, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - adds r0, r5, #0 - movs r1, #1 - movs r3, #8 - bl AddTextPrinterParameterized - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08126F1C: .4byte gUnknown_85C93C4 - thumb_func_end sub_08126E78 - - thumb_func_start sub_08126F20 -sub_08126F20: @ 0x08126F20 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - adds r4, r1, #0 - adds r6, r2, #0 - adds r5, r3, #0 - ldr r1, [sp, #0x2c] - ldr r2, [sp, #0x30] - mov sl, r2 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r0, sl - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - ldr r2, _08126FF4 - mov r8, r2 - mov r0, r8 - bl ColorMenuItemString - ldr r0, _08126FF8 - mov sb, r0 - mov r1, r8 - bl StringCopy - ldr r1, _08126FFC - lsls r0, r4, #2 - adds r0, r0, r1 - ldr r1, [r0] - mov r0, sb - bl StringAppend - adds r5, #2 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - str r5, [sp] - mov r2, sl - str r2, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - adds r0, r7, #0 - movs r1, #1 - mov r2, sb - adds r3, r6, #0 - bl AddTextPrinterParameterized - ldr r2, _08127000 - mov r8, r2 - adds r0, r4, #0 - bl GetNumOwnedDecorationsInCategory - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r0, r8 - movs r2, #1 - movs r3, #2 - bl sub_080089D8 - ldr r0, _08127004 - ldr r1, _08127008 - lsls r4, r4, #3 - adds r4, r4, r1 - ldrb r1, [r4, #4] - movs r2, #1 - movs r3, #2 - bl sub_080089D8 - ldr r1, _0812700C - mov r0, sb - bl StringExpandPlaceholders - adds r6, #0x30 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - str r5, [sp] - mov r0, sl - str r0, [sp, #4] - movs r2, #0 - str r2, [sp, #8] - adds r0, r7, #0 - movs r1, #1 - mov r2, sb - adds r3, r6, #0 - bl AddTextPrinterParameterized - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08126FF4: .4byte gUnknown_2021C68 -_08126FF8: .4byte gUnknown_2021C7C -_08126FFC: .4byte gUnknown_8581A0C -_08127000: .4byte gUnknown_2021C40 -_08127004: .4byte gUnknown_2021C54 -_08127008: .4byte gUnknown_203B90C -_0812700C: .4byte gUnknown_85CA6A4 - thumb_func_end sub_08126F20 - - thumb_func_start ColorMenuItemString -ColorMenuItemString: @ 0x08127010 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r4, r1, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _0812702C - bl StringCopy - cmp r4, #1 - bne _08127030 - movs r0, #4 - strb r0, [r5, #2] - movs r0, #5 - b _08127036 - .align 2, 0 -_0812702C: .4byte gUnknown_85CA6C6 -_08127030: - movs r0, #2 - strb r0, [r5, #2] - movs r0, #3 -_08127036: - strb r0, [r5, #5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ColorMenuItemString - - thumb_func_start HandleDecorationCategoriesMenuInput -HandleDecorationCategoriesMenuInput: @ 0x08127040 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _08127070 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08127096 - bl Menu_ProcessInput - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - asrs r1, r0, #0x18 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _08127078 - cmp r1, r0 - bgt _08127074 - subs r0, #1 - cmp r1, r0 - beq _08127096 - b _08127086 - .align 2, 0 -_08127070: .4byte gUnknown_2037C74 -_08127074: - cmp r1, #8 - bne _08127086 -_08127078: - movs r0, #5 - bl sub_080A306C - adds r0, r5, #0 - bl ExitDecorationCategoriesMenu - b _08127096 -_08127086: - movs r0, #5 - bl sub_080A306C - ldr r0, _0812709C - strb r4, [r0] - adds r0, r5, #0 - bl SelectDecorationCategory -_08127096: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0812709C: .4byte gUnknown_2039E3F - thumb_func_end HandleDecorationCategoriesMenuInput - - thumb_func_start SelectDecorationCategory -SelectDecorationCategory: @ 0x081270A0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r4, _081270EC - ldrb r0, [r4] - bl GetNumOwnedDecorationsInCategory - ldr r1, _081270F0 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0812710C - ldrb r0, [r4] - bl CondenseDecorationsInCategory - ldr r2, _081270F4 - ldr r1, _081270F8 - ldrb r0, [r4] - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r2] - adds r0, r5, #0 - bl IdentifyOwnedDecorationsCurrentlyInUse - ldr r0, _081270FC - movs r1, #0 - strh r1, [r0] - ldr r0, _08127100 - strh r1, [r0] - ldr r1, _08127104 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08127108 - str r1, [r0] - b _08127126 - .align 2, 0 -_081270EC: .4byte gUnknown_2039E3F -_081270F0: .4byte gUnknown_2039E1D -_081270F4: .4byte gUnknown_2039E18 -_081270F8: .4byte gUnknown_203B90C -_081270FC: .4byte gUnknown_2039E3C -_08127100: .4byte gUnknown_2039E3A -_08127104: .4byte gUnknown_3005B60 -_08127108: .4byte ShowDecorationItemsWindow -_0812710C: - movs r0, #1 - bl RemoveDecorationWindow - ldr r4, _0812712C - ldr r1, _08127130 - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r2, _08127134 - adds r0, r5, #0 - adds r1, r4, #0 - bl DisplayItemMessageOnField -_08127126: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0812712C: .4byte gUnknown_2021C7C -_08127130: .4byte gUnknown_85CA70B -_08127134: .4byte ReturnToDecorationCategoriesAfterInvalidSelection - thumb_func_end SelectDecorationCategory - - thumb_func_start ReturnToDecorationCategoriesAfterInvalidSelection -ReturnToDecorationCategoriesAfterInvalidSelection: @ 0x08127138 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - movs r1, #0 - bl sub_08197028 - adds r0, r4, #0 - bl sub_08126DC4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end ReturnToDecorationCategoriesAfterInvalidSelection - - thumb_func_start ExitDecorationCategoriesMenu -ExitDecorationCategoriesMenu: @ 0x08127154 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _08127174 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0x1e - ldrsh r0, [r0, r1] - cmp r0, #2 - beq _08127178 - adds r0, r2, #0 - bl ReturnToActionsMenuFromCategories - b _0812717E - .align 2, 0 -_08127174: .4byte gUnknown_3005B60 -_08127178: - adds r0, r2, #0 - bl ExitTraderDecorationMenu -_0812717E: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ExitDecorationCategoriesMenu - - thumb_func_start ReturnToActionsMenuFromCategories -ReturnToActionsMenuFromCategories: @ 0x08127184 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - bl RemoveDecorationWindow - bl sub_08126A28 - movs r0, #0 - movs r1, #0 - bl sub_08196FB8 - bl PrintCurMainMenuDescription - ldr r1, _081271B8 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081271BC - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081271B8: .4byte gUnknown_3005B60 -_081271BC: .4byte HandleDecorationActionsMenuInput - thumb_func_end ReturnToActionsMenuFromCategories - - thumb_func_start ShowDecorationCategoriesWindow -ShowDecorationCategoriesWindow: @ 0x081271C0 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081271FC - movs r1, #0xd0 - movs r2, #0x20 - bl LoadPalette - movs r0, #0 - movs r1, #0 - bl sub_08197028 - ldr r1, _08127200 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #0 - movs r1, #2 - strh r1, [r0, #0x1e] - ldr r0, _08127204 - strb r2, [r0] - adds r0, r4, #0 - bl sub_08126DC4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081271FC: .4byte gUnknown_8581A94 -_08127200: .4byte gUnknown_3005B60 -_08127204: .4byte gUnknown_2039E3F - thumb_func_end ShowDecorationCategoriesWindow - - thumb_func_start CopyDecorationCategoryName -CopyDecorationCategoryName: @ 0x08127208 - push {lr} - lsls r1, r1, #0x18 - ldr r2, _0812721C - lsrs r1, r1, #0x16 - adds r1, r1, r2 - ldr r1, [r1] - bl StringCopy - pop {r0} - bx r0 - .align 2, 0 -_0812721C: .4byte gUnknown_8581A0C - thumb_func_end CopyDecorationCategoryName - - thumb_func_start ExitTraderDecorationMenu -ExitTraderDecorationMenu: @ 0x08127220 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - bl RemoveDecorationWindow - adds r0, r4, #0 - bl ExitTraderMenu - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ExitTraderDecorationMenu - - thumb_func_start InitDecorationItemsMenuLimits -InitDecorationItemsMenuLimits: @ 0x0812723C - push {lr} - ldr r3, _08127264 - ldr r2, [r3] - ldr r0, _08127268 - ldrb r0, [r0] - adds r0, #1 - movs r1, #0xf6 - lsls r1, r1, #2 - adds r2, r2, r1 - strb r0, [r2] - ldr r0, [r3] - adds r1, r0, r1 - ldrb r1, [r1] - cmp r1, #8 - bls _08127270 - ldr r2, _0812726C - adds r1, r0, r2 - movs r0, #8 - strb r0, [r1] - b _08127276 - .align 2, 0 -_08127264: .4byte gUnknown_2039E58 -_08127268: .4byte gUnknown_2039E1D -_0812726C: .4byte 0x000003D9 -_08127270: - ldr r2, _0812727C - adds r0, r0, r2 - strb r1, [r0] -_08127276: - pop {r0} - bx r0 - .align 2, 0 -_0812727C: .4byte 0x000003D9 - thumb_func_end InitDecorationItemsMenuLimits - - thumb_func_start sub_08127280 -sub_08127280: @ 0x08127280 - push {r4, lr} - ldr r0, _081272A0 - ldr r1, _081272A4 - ldr r2, _081272A8 - ldr r3, [r2] - ldr r4, _081272AC - adds r2, r3, r4 - ldrb r2, [r2] - subs r4, #1 - adds r3, r3, r4 - ldrb r3, [r3] - bl sub_08122268 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081272A0: .4byte gUnknown_2039E3C -_081272A4: .4byte gUnknown_2039E3A -_081272A8: .4byte gUnknown_2039E58 -_081272AC: .4byte 0x000003D9 - thumb_func_end sub_08127280 - - thumb_func_start sub_081272B0 -sub_081272B0: @ 0x081272B0 - push {r4, lr} - sub sp, #4 - ldr r0, _081272D8 - ldr r1, _081272DC - ldr r2, _081272E0 - ldr r3, [r2] - ldr r4, _081272E4 - adds r2, r3, r4 - ldrb r2, [r2] - subs r4, #1 - adds r3, r3, r4 - ldrb r3, [r3] - movs r4, #8 - str r4, [sp] - bl sub_081222A4 - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081272D8: .4byte gUnknown_2039E3C -_081272DC: .4byte gUnknown_2039E3A -_081272E0: .4byte gUnknown_2039E58 -_081272E4: .4byte 0x000003D9 - thumb_func_end sub_081272B0 - - thumb_func_start PrintDecorationItemMenuItems -PrintDecorationItemMenuItems: @ 0x081272E8 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _08127320 - adds r1, r1, r0 - ldr r0, _08127324 - ldrb r0, [r0] - subs r0, #6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _08127330 - ldr r0, _08127328 - ldrb r0, [r0, #9] - cmp r0, #1 - bne _08127330 - movs r2, #0x16 - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _08127330 - ldr r0, _0812732C - movs r1, #1 - bl ColorMenuItemString - b _08127338 - .align 2, 0 -_08127320: .4byte gUnknown_3005B68 -_08127324: .4byte gUnknown_2039E3F -_08127328: .4byte gUnknown_2039E48 -_0812732C: .4byte gUnknown_2021C40 -_08127330: - ldr r0, _081273E4 - movs r1, #0 - bl ColorMenuItemString -_08127338: - movs r6, #0 - ldr r1, _081273E8 - ldr r0, [r1] - movs r3, #0xf6 - lsls r3, r3, #2 - adds r0, r0, r3 - ldrb r0, [r0] - subs r0, #1 - cmp r6, r0 - bge _0812738A - adds r5, r1, #0 -_0812734E: - lsls r4, r6, #4 - movs r0, #0xa4 - lsls r0, r0, #1 - adds r4, r4, r0 - ldr r0, [r5] - adds r0, r0, r4 - ldr r1, _081273EC - ldr r1, [r1] - adds r1, r1, r6 - ldrb r1, [r1] - bl CopyDecorationMenuItemName - ldr r1, [r5] - lsls r2, r6, #3 - adds r0, r1, r2 - adds r4, r1, r4 - str r4, [r0] - adds r0, r1, #4 - adds r0, r0, r2 - str r6, [r0] - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - movs r2, #0xf6 - lsls r2, r2, #2 - adds r1, r1, r2 - ldrb r0, [r1] - subs r0, #1 - cmp r6, r0 - blt _0812734E -_0812738A: - ldr r5, _081273E8 - lsls r4, r6, #4 - movs r3, #0xa4 - lsls r3, r3, #1 - adds r4, r4, r3 - ldr r0, [r5] - adds r0, r0, r4 - ldr r1, _081273F0 - bl StringCopy - ldr r0, [r5] - lsls r2, r6, #3 - adds r1, r0, r2 - adds r4, r0, r4 - str r4, [r1] - adds r0, #4 - adds r0, r0, r2 - movs r1, #2 - rsbs r1, r1, #0 - str r1, [r0] - ldr r2, _081273F4 - adds r1, r2, #0 - ldr r0, _081273F8 - ldm r0!, {r3, r4, r6} - stm r1!, {r3, r4, r6} - ldm r0!, {r3, r4, r6} - stm r1!, {r3, r4, r6} - ldr r0, _081273FC - ldrb r0, [r0, #1] - strb r0, [r2, #0x10] - ldr r0, [r5] - movs r4, #0xf6 - lsls r4, r4, #2 - adds r1, r0, r4 - ldrb r1, [r1] - strh r1, [r2, #0xc] - str r0, [r2] - ldr r6, _08127400 - adds r0, r0, r6 - ldrb r0, [r0] - strh r0, [r2, #0xe] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081273E4: .4byte gUnknown_2021C40 -_081273E8: .4byte gUnknown_2039E58 -_081273EC: .4byte gUnknown_2039E18 -_081273F0: .4byte gUnknown_85C93C4 -_081273F4: .4byte gUnknown_3006050 -_081273F8: .4byte gUnknown_8581AB4 -_081273FC: .4byte gUnknown_2039E54 -_08127400: .4byte 0x000003D9 - thumb_func_end PrintDecorationItemMenuItems - - thumb_func_start CopyDecorationMenuItemName -CopyDecorationMenuItemName: @ 0x08127404 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r4, r1, #0x10 - lsrs r4, r4, #0x10 - ldr r1, _08127428 - bl StringCopy - lsls r1, r4, #3 - subs r1, r1, r4 - lsls r1, r1, #2 - ldr r0, _0812742C - adds r1, r1, r0 - adds r0, r5, #0 - bl StringAppend - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08127428: .4byte gUnknown_2021C40 -_0812742C: .4byte gUnknown_8580CD1 - thumb_func_end CopyDecorationMenuItemName - - thumb_func_start DecorationItemsMenu_OnCursorMove -DecorationItemsMenu_OnCursorMove: @ 0x08127430 - push {r4, lr} - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #1 - beq _08127442 - movs r0, #5 - bl sub_080A306C -_08127442: - adds r0, r4, #0 - bl PrintDecorationItemDescription - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end DecorationItemsMenu_OnCursorMove - - thumb_func_start sub_08127450 -sub_08127450: @ 0x08127450 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - mov r8, r6 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - adds r7, r5, #0 - movs r0, #2 - rsbs r0, r0, #0 - cmp r1, r0 - beq _081274A6 - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl sub_0812776C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0812748C - adds r3, r5, #2 - adds r0, r6, #0 - movs r1, #0x18 - movs r2, #0x5c - bl blit_move_info_icon - b _081274A6 -_0812748C: - adds r0, r4, #0 - bl sub_08127798 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081274A6 - adds r3, r7, #2 - mov r0, r8 - movs r1, #0x19 - movs r2, #0x5c - bl blit_move_info_icon -_081274A6: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08127450 - - thumb_func_start AddDecorationItemsScrollIndicators -AddDecorationItemsScrollIndicators: @ 0x081274B0 - push {r4, lr} - sub sp, #0x10 - ldr r4, _081274F8 - ldr r1, [r4] - ldr r2, _081274FC - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0xff - bne _081274F0 - subs r2, #2 - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, #1 - adds r1, r1, r2 - ldrb r1, [r1] - subs r0, r0, r1 - str r0, [sp] - movs r0, #0x6e - str r0, [sp, #4] - str r0, [sp, #8] - ldr r0, _08127500 - str r0, [sp, #0xc] - movs r0, #2 - movs r1, #0x3c - movs r2, #0xc - movs r3, #0x94 - bl AddScrollIndicatorArrowPairParameterized - ldr r1, [r4] - ldr r2, _081274FC - adds r1, r1, r2 - strb r0, [r1] -_081274F0: - add sp, #0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081274F8: .4byte gUnknown_2039E58 -_081274FC: .4byte 0x000003DA -_08127500: .4byte gUnknown_2039E3C - thumb_func_end AddDecorationItemsScrollIndicators - - thumb_func_start sub_08127504 -sub_08127504: @ 0x08127504 - push {r4, lr} - ldr r4, _08127528 - ldr r0, [r4] - ldr r2, _0812752C - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, #0xff - beq _08127522 - bl RemoveScrollIndicatorArrowPair - ldr r0, [r4] - ldr r1, _0812752C - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] -_08127522: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08127528: .4byte gUnknown_2039E58 -_0812752C: .4byte 0x000003DA - thumb_func_end sub_08127504 - - thumb_func_start sub_08127530 -sub_08127530: @ 0x08127530 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - bl sub_081269BC - adds r0, r4, #0 - bl InitDecorationItemsWindow - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08127530 - - thumb_func_start InitDecorationItemsWindow -InitDecorationItemsWindow: @ 0x0812754C - push {r4, r5, r6, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r4, #2 - adds r5, r5, r4 - lsls r5, r5, #3 - ldr r0, _081275B0 - adds r5, r5, r0 - movs r0, #3 - bl sub_081269BC - ldr r0, _081275B4 - ldrb r0, [r0] - bl ShowDecorationCategorySummaryWindow - ldr r6, _081275B8 - movs r0, #0xf7 - lsls r0, r0, #2 - bl AllocZeroed - str r0, [r6] - ldr r1, _081275BC - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] - bl InitDecorationItemsMenuLimits - bl sub_08127280 - bl sub_081272B0 - adds r0, r4, #0 - bl PrintDecorationItemMenuItems - ldr r0, _081275C0 - ldr r1, _081275C4 - ldrh r1, [r1] - ldr r2, _081275C8 - ldrh r2, [r2] - bl ListMenuInit - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x1a] - bl AddDecorationItemsScrollIndicators - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081275B0: .4byte gUnknown_3005B68 -_081275B4: .4byte gUnknown_2039E3F -_081275B8: .4byte gUnknown_2039E58 -_081275BC: .4byte 0x000003DA -_081275C0: .4byte gUnknown_3006050 -_081275C4: .4byte gUnknown_2039E3C -_081275C8: .4byte gUnknown_2039E3A - thumb_func_end InitDecorationItemsWindow - - thumb_func_start ShowDecorationItemsWindow -ShowDecorationItemsWindow: @ 0x081275CC - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl InitDecorationItemsWindow - ldr r1, _081275F0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081275F4 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081275F0: .4byte gUnknown_3005B60 -_081275F4: .4byte HandleDecorationItemsMenuInput - thumb_func_end ShowDecorationItemsWindow - - thumb_func_start HandleDecorationItemsMenuInput -HandleDecorationItemsMenuInput: @ 0x081275F8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _08127640 - adds r5, r0, r1 - ldr r0, _08127644 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081276AC - ldrb r0, [r5, #0x1a] - bl ListMenu_ProcessInput - adds r4, r0, #0 - ldrb r0, [r5, #0x1a] - ldr r7, _08127648 - ldr r1, _0812764C - mov r8, r1 - adds r1, r7, #0 - mov r2, r8 - bl ListMenuGetScrollAndRow - movs r0, #2 - rsbs r0, r0, #0 - cmp r4, r0 - beq _08127650 - adds r0, #1 - cmp r4, r0 - bne _08127670 - b _081276AC - .align 2, 0 -_08127640: .4byte gUnknown_3005B68 -_08127644: .4byte gUnknown_2037C74 -_08127648: .4byte gUnknown_2039E3C -_0812764C: .4byte gUnknown_2039E3A -_08127650: - movs r0, #5 - bl sub_080A306C - ldr r0, _0812766C - movs r2, #0x16 - ldrsh r1, [r5, r2] - lsls r1, r1, #3 - adds r0, #4 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r6, #0 - bl _call_via_r1 - b _081276AC - .align 2, 0 -_0812766C: .4byte gUnknown_8581A5C -_08127670: - movs r0, #5 - bl sub_080A306C - ldr r0, _081276B8 - strb r4, [r0] - bl sub_08127504 - ldrb r0, [r5, #0x1a] - adds r1, r7, #0 - mov r2, r8 - bl DestroyListMenuTask - movs r0, #1 - bl RemoveDecorationWindow - bl RemoveDecorationItemsOtherWindows - ldr r0, _081276BC - ldr r0, [r0] - bl Free - ldr r1, _081276C0 - movs r2, #0x16 - ldrsh r0, [r5, r2] - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r6, #0 - bl _call_via_r1 -_081276AC: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081276B8: .4byte gUnknown_2039E3E -_081276BC: .4byte gUnknown_2039E58 -_081276C0: .4byte gUnknown_8581A5C - thumb_func_end HandleDecorationItemsMenuInput - - thumb_func_start ShowDecorationCategorySummaryWindow -ShowDecorationCategorySummaryWindow: @ 0x081276C4 - push {r4, lr} - sub sp, #8 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #2 - bl sub_081269BC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - str r1, [sp] - str r1, [sp, #4] - adds r1, r4, #0 - movs r2, #0 - movs r3, #0 - bl sub_08126F20 - add sp, #8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end ShowDecorationCategorySummaryWindow - - thumb_func_start PrintDecorationItemDescription -PrintDecorationItemDescription: @ 0x081276F0 - push {r4, r5, lr} - sub sp, #0xc - adds r4, r0, #0 - ldr r0, _08127710 - ldrb r5, [r0, #3] - adds r0, r5, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r0, _08127714 - ldrb r0, [r0] - cmp r4, r0 - blo _0812771C - ldr r2, _08127718 - b _08127732 - .align 2, 0 -_08127710: .4byte gUnknown_2039E54 -_08127714: .4byte gUnknown_2039E1D -_08127718: .4byte gUnknown_85C9423 -_0812771C: - ldr r2, _08127750 - ldr r0, _08127754 - ldr r0, [r0] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x14 - adds r0, r0, r2 - ldr r2, [r0] -_08127732: - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - adds r0, r5, #0 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08127750: .4byte gUnknown_8580CD0 -_08127754: .4byte gUnknown_2039E18 - thumb_func_end PrintDecorationItemDescription - - thumb_func_start RemoveDecorationItemsOtherWindows -RemoveDecorationItemsOtherWindows: @ 0x08127758 - push {lr} - movs r0, #3 - bl RemoveDecorationWindow - movs r0, #2 - bl RemoveDecorationWindow - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RemoveDecorationItemsOtherWindows - - thumb_func_start sub_0812776C -sub_0812776C: @ 0x0812776C - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - movs r1, #0 - ldr r3, _08127784 -_08127776: - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _08127788 - movs r0, #1 - b _08127794 - .align 2, 0 -_08127784: .4byte gUnknown_2039E1E -_08127788: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xf - bls _08127776 - movs r0, #0 -_08127794: - pop {r1} - bx r1 - thumb_func_end sub_0812776C - - thumb_func_start sub_08127798 -sub_08127798: @ 0x08127798 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - movs r1, #0 - ldr r3, _081277B0 -_081277A2: - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _081277B4 - movs r0, #1 - b _081277C0 - .align 2, 0 -_081277B0: .4byte gUnknown_2039E2E -_081277B4: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xb - bls _081277A2 - movs r0, #0 -_081277C0: - pop {r1} - bx r1 - thumb_func_end sub_08127798 - - thumb_func_start IdentifyOwnedDecorationsCurrentlyInUseInternal -IdentifyOwnedDecorationsCurrentlyInUseInternal: @ 0x081277C4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - movs r5, #0 - ldr r0, _08127864 - movs r1, #0 - movs r2, #0x10 - bl memset - ldr r0, _08127868 - movs r1, #0 - movs r2, #0xc - bl memset - movs r6, #0 - ldr r0, _0812786C - mov sl, r0 - ldr r1, _08127870 - mov sb, r1 - ldr r3, _08127874 - mov r8, r3 -_081277F2: - mov r1, sl - ldr r0, [r1] - add r0, sb - adds r0, r0, r6 - ldrb r0, [r0] - cmp r0, #0 - beq _08127892 - movs r2, #0 - mov r3, r8 - ldrb r0, [r3] - lsls r0, r0, #3 - ldr r1, _08127878 - adds r0, r0, r1 - ldrb r0, [r0, #4] - cmp r2, r0 - bhs _08127892 - ldr r7, _08127864 - adds r3, r1, #0 - mov ip, r3 -_08127818: - ldr r0, _0812787C - ldr r1, [r0] - adds r1, r1, r2 - mov r3, sl - ldr r0, [r3] - add r0, sb - adds r0, r0, r6 - ldrb r1, [r1] - adds r4, r2, #1 - ldrb r0, [r0] - cmp r1, r0 - bne _08127880 - movs r1, #0 - cmp r1, r5 - bhs _08127852 - ldrb r0, [r7] - cmp r0, r4 - beq _08127852 - ldr r3, _08127864 - adds r2, r4, #0 -_08127840: - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, r5 - bhs _08127852 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _08127840 -_08127852: - cmp r1, r5 - bne _08127880 - adds r0, r5, r7 - strb r4, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - b _08127892 - .align 2, 0 -_08127864: .4byte gUnknown_2039E1E -_08127868: .4byte gUnknown_2039E2E -_0812786C: .4byte gUnknown_3005AEC -_08127870: .4byte 0x00001AAE -_08127874: .4byte gUnknown_2039E3F -_08127878: .4byte gUnknown_203B90C -_0812787C: .4byte gUnknown_2039E18 -_08127880: - lsls r0, r4, #0x10 - lsrs r2, r0, #0x10 - mov r1, r8 - ldrb r0, [r1] - lsls r0, r0, #3 - add r0, ip - ldrb r0, [r0, #4] - cmp r2, r0 - blo _08127818 -_08127892: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0xf - bls _081277F2 - movs r5, #0 - movs r6, #0 - ldr r3, _081278BC - mov r8, r3 -_081278A4: - ldr r0, _081278C0 - ldr r0, [r0] - ldr r1, _081278C4 - adds r0, r0, r1 - adds r0, r0, r6 - ldrb r0, [r0] - adds r7, r6, #1 - cmp r0, #0 - beq _0812794A - movs r2, #0 - b _0812793C - .align 2, 0 -_081278BC: .4byte gUnknown_203B90C -_081278C0: .4byte gUnknown_3005AEC -_081278C4: .4byte 0x0000271C -_081278C8: - ldr r0, _08127928 - ldr r1, [r0] - adds r1, r1, r2 - ldr r0, _0812792C - ldr r0, [r0] - ldr r3, _08127930 - adds r0, r0, r3 - adds r0, r0, r6 - ldrb r1, [r1] - adds r4, r2, #1 - ldrb r0, [r0] - cmp r1, r0 - bne _08127938 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl sub_0812776C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08127938 - movs r1, #0 - cmp r1, r5 - bhs _08127916 - ldr r2, _08127934 - ldrb r0, [r2] - cmp r0, r4 - beq _08127916 - adds r3, r2, #0 - adds r2, r4, #0 -_08127904: - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, r5 - bhs _08127916 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _08127904 -_08127916: - cmp r1, r5 - bne _08127938 - ldr r0, _08127934 - adds r0, r5, r0 - strb r4, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - b _0812794A - .align 2, 0 -_08127928: .4byte gUnknown_2039E18 -_0812792C: .4byte gUnknown_3005AEC -_08127930: .4byte 0x0000271C -_08127934: .4byte gUnknown_2039E2E -_08127938: - lsls r0, r4, #0x10 - lsrs r2, r0, #0x10 -_0812793C: - ldr r0, _08127960 - ldrb r0, [r0] - lsls r0, r0, #3 - add r0, r8 - ldrb r0, [r0, #4] - cmp r2, r0 - blo _081278C8 -_0812794A: - lsls r0, r7, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0xb - bls _081278A4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08127960: .4byte gUnknown_2039E3F - thumb_func_end IdentifyOwnedDecorationsCurrentlyInUseInternal - - thumb_func_start IdentifyOwnedDecorationsCurrentlyInUse -IdentifyOwnedDecorationsCurrentlyInUse: @ 0x08127964 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl IdentifyOwnedDecorationsCurrentlyInUseInternal - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end IdentifyOwnedDecorationsCurrentlyInUse - - thumb_func_start IsSelectedDecorInThePC -IsSelectedDecorInThePC: @ 0x08127974 - push {r4, lr} - movs r2, #0 - ldr r0, _081279A0 - ldrh r0, [r0] - ldr r1, _081279A4 - ldrh r1, [r1] - adds r0, r0, r1 - adds r1, r0, #1 - ldr r4, _081279A8 - ldr r3, _081279AC -_08127988: - adds r0, r2, r4 - ldrb r0, [r0] - cmp r0, r1 - beq _0812799C - cmp r2, #0xb - bhi _081279B0 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r0, r1 - bne _081279B0 -_0812799C: - movs r0, #0 - b _081279BC - .align 2, 0 -_081279A0: .4byte gUnknown_2039E3C -_081279A4: .4byte gUnknown_2039E3A -_081279A8: .4byte gUnknown_2039E1E -_081279AC: .4byte gUnknown_2039E2E -_081279B0: - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0xf - bls _08127988 - movs r0, #1 -_081279BC: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsSelectedDecorInThePC - - thumb_func_start sub_081279C4 -sub_081279C4: @ 0x081279C4 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - bl sub_081269BC - adds r0, r4, #0 - bl ShowDecorationItemsWindow - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081279C4 - - thumb_func_start sub_081279E0 -sub_081279E0: @ 0x081279E0 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - movs r1, #0 - bl sub_08197028 - ldr r1, _08127A04 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08127A08 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08127A04: .4byte gUnknown_3005B60 -_08127A08: .4byte sub_081279C4 - thumb_func_end sub_081279E0 - - thumb_func_start sub_08127A0C -sub_08127A0C: @ 0x08127A0C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _08127A38 - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _08127A32 - movs r0, #0 - movs r1, #0 - bl sub_08197028 - movs r0, #1 - bl sub_081269BC - adds r0, r4, #0 - bl ShowDecorationItemsWindow -_08127A32: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08127A38: .4byte gUnknown_3002360 - thumb_func_end sub_08127A0C - - thumb_func_start SafariHandleSuccessBallThrowAnim -SafariHandleSuccessBallThrowAnim: @ 0x08127A3C - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - ldr r0, _08127A74 - adds r4, r4, r0 - bl sub_08127504 - bl RemoveDecorationItemsOtherWindows - ldrb r0, [r4, #0x1a] - movs r1, #0 - movs r2, #0 - bl DestroyListMenuTask - ldr r0, _08127A78 - ldr r0, [r0] - bl Free - adds r0, r5, #0 - bl task_map_chg_seq_0807EC34 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08127A74: .4byte gUnknown_3005B68 -_08127A78: .4byte gUnknown_2039E58 - thumb_func_end SafariHandleSuccessBallThrowAnim - - thumb_func_start sub_08127A7C -sub_08127A7C: @ 0x08127A7C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _08127AAC - lsls r2, r0, #2 - adds r2, r2, r0 - lsls r2, r2, #3 - adds r4, r2, r3 - ldr r0, _08127AB0 - ldr r1, [r0] - ldrh r0, [r1] - strh r0, [r4, #0xe] - ldrh r0, [r1, #2] - strh r0, [r4, #0x10] - adds r3, #8 - adds r2, r2, r3 - adds r1, r2, #2 - adds r0, r2, #0 - bl PlayerGetDestCoords - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08127AAC: .4byte gUnknown_3005B60 -_08127AB0: .4byte gUnknown_3005AEC - thumb_func_end sub_08127A7C - - thumb_func_start sub_08127AB4 -sub_08127AB4: @ 0x08127AB4 - push {r4, r5, lr} - sub sp, #4 - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - bl DrawWholeMapView - ldr r0, _08127AFC - ldr r1, [r0] - movs r0, #4 - ldrsb r0, [r1, r0] - ldrb r1, [r1, #5] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r2, #1 - rsbs r2, r2, #0 - ldr r3, _08127B00 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - adds r4, r4, r3 - movs r3, #0xe - ldrsb r3, [r4, r3] - ldrb r4, [r4, #0x10] - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - str r4, [sp] - bl SetWarpDestination - bl WarpIntoMap - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08127AFC: .4byte gUnknown_3005AEC -_08127B00: .4byte gUnknown_3005B60 - thumb_func_end sub_08127AB4 - - thumb_func_start GetDecorationElevation -GetDecorationElevation: @ 0x08127B04 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, _08127B24 - cmp r2, #0x22 - beq _08127B2C - cmp r2, #0x26 - bne _08127B36 - ldr r0, _08127B28 - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x10 - b _08127B36 - .align 2, 0 -_08127B24: .4byte 0x0000FFFF -_08127B28: .4byte gUnknown_85821C8 -_08127B2C: - ldr r0, _08127B3C - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x10 -_08127B36: - pop {r1} - bx r1 - .align 2, 0 -_08127B3C: .4byte gUnknown_85821D0 - thumb_func_end GetDecorationElevation - - thumb_func_start ShowDecorationOnMap_ -ShowDecorationOnMap_: @ 0x08127B40 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x38 - ldr r4, [sp, #0x58] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp, #4] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #8] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r3, [sp, #0xc] - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - str r4, [sp, #0x10] - movs r2, #0 - lsls r0, r3, #0x10 - cmp r2, r3 - blo _08127B76 - b _08127CF4 -_08127B76: - ldr r1, [sp, #8] - str r1, [sp, #0x2c] - str r0, [sp, #0x34] -_08127B7C: - ldr r3, [sp, #4] - ldr r4, [sp, #0xc] - subs r1, r3, r4 - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - adds r0, #1 - adds r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp, #0x18] - movs r0, #0 - str r0, [sp, #0x14] - adds r1, r2, #1 - str r1, [sp, #0x30] - ldr r3, [sp, #0x2c] - cmp r0, r3 - blo _08127BA0 - b _08127CE4 -_08127BA0: - ldr r0, _08127C10 - ldr r4, [sp, #0x10] - lsls r1, r4, #3 - subs r1, r1, r4 - str r1, [sp, #0x1c] - lsls r1, r1, #2 - adds r3, r1, r0 - str r3, [sp, #0x28] - ldr r4, _08127C14 - adds r1, r1, r4 - str r1, [sp, #0x20] - ldr r1, [sp, #8] - adds r0, r2, #0 - muls r0, r1, r0 - str r0, [sp, #0x24] -_08127BBE: - ldr r2, [sp] - ldr r3, [sp, #0x14] - adds r0, r2, r3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r4, [sp, #0x24] - adds r1, r4, r3 - ldr r2, [sp, #0x20] - ldr r0, [r2] - lsls r1, r1, #1 - adds r1, r1, r0 - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetBehaviorByMetatileId - lsls r4, r0, #0x10 - lsls r0, r4, #8 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsSecretBaseImpassable - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08127C06 - ldr r1, [sp, #0x28] - ldrb r0, [r1, #0xc] - cmp r0, #1 - beq _08127C18 - lsrs r0, r4, #0x1c - cmp r0, #0 - beq _08127C18 -_08127C06: - movs r2, #0xc0 - lsls r2, r2, #4 - mov sl, r2 - b _08127C1C - .align 2, 0 -_08127C10: .4byte gUnknown_8580CD0 -_08127C14: .4byte gUnknown_8580CE8 -_08127C18: - movs r3, #0 - mov sl, r3 -_08127C1C: - ldr r4, [sp, #0x28] - ldrb r0, [r4, #0xc] - lsls r5, r5, #0x10 - mov r8, r5 - ldr r1, [sp, #0x18] - lsls r1, r1, #0x10 - mov sb, r1 - cmp r0, #3 - beq _08127C48 - asrs r0, r5, #0x10 - asrs r1, r1, #0x10 - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsSecretBaseNorthWall - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r7, #1 - cmp r0, #1 - beq _08127C4A -_08127C48: - movs r7, #0 -_08127C4A: - ldr r0, _08127C9C - ldr r2, [sp, #0x1c] - lsls r4, r2, #2 - adds r0, r4, r0 - ldrb r0, [r0] - ldr r3, [sp, #0x24] - ldr r1, [sp, #0x14] - adds r5, r3, r1 - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - bl GetDecorationElevation - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r0, _08127CA0 - cmp r6, r0 - beq _08127CA8 - mov r2, r8 - asrs r0, r2, #0x10 - mov r3, sb - asrs r1, r3, #0x10 - ldr r3, _08127CA4 - adds r2, r4, r3 - ldr r2, [r2] - lsls r3, r5, #1 - adds r3, r3, r2 - movs r4, #0x80 - lsls r4, r4, #2 - adds r2, r4, #0 - orrs r7, r2 - ldrh r3, [r3] - adds r2, r7, r3 - mov r3, sl - orrs r3, r2 - orrs r3, r6 - lsls r2, r3, #0x10 - lsrs r2, r2, #0x10 - bl MapGridSetMetatileEntryAt - b _08127CD2 - .align 2, 0 -_08127C9C: .4byte gUnknown_8580CD0 -_08127CA0: .4byte 0x0000FFFF -_08127CA4: .4byte gUnknown_8580CE8 -_08127CA8: - mov r1, r8 - asrs r0, r1, #0x10 - mov r2, sb - asrs r1, r2, #0x10 - ldr r3, _08127D04 - adds r2, r4, r3 - ldr r2, [r2] - lsls r3, r5, #1 - adds r3, r3, r2 - movs r4, #0x80 - lsls r4, r4, #2 - adds r2, r4, #0 - orrs r7, r2 - ldrh r3, [r3] - adds r2, r7, r3 - mov r3, sl - orrs r3, r2 - lsls r2, r3, #0x10 - lsrs r2, r2, #0x10 - bl MapGridSetMetatileIdAt -_08127CD2: - ldr r0, [sp, #0x14] - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x14] - ldr r4, [sp, #0x2c] - cmp r0, r4 - bhs _08127CE4 - b _08127BBE -_08127CE4: - ldr r1, [sp, #0x30] - lsls r0, r1, #0x10 - lsrs r2, r0, #0x10 - ldr r3, [sp, #0x34] - lsrs r0, r3, #0x10 - cmp r2, r0 - bhs _08127CF4 - b _08127B7C -_08127CF4: - add sp, #0x38 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08127D04: .4byte gUnknown_8580CE8 - thumb_func_end ShowDecorationOnMap_ - - thumb_func_start sub_08127D08 -sub_08127D08: @ 0x08127D08 - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldr r1, _08127D34 - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #0xd] - cmp r0, #9 - bhi _08127DE4 - lsls r0, r0, #2 - ldr r1, _08127D38 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08127D34: .4byte gUnknown_8580CD0 -_08127D38: .4byte _08127D3C -_08127D3C: @ jump table - .4byte _08127D64 @ case 0 - .4byte _08127D6E @ case 1 - .4byte _08127D78 @ case 2 - .4byte _08127D88 @ case 3 - .4byte _08127D92 @ case 4 - .4byte _08127D9C @ case 5 - .4byte _08127DAC @ case 6 - .4byte _08127DB6 @ case 7 - .4byte _08127DC6 @ case 8 - .4byte _08127DD6 @ case 9 -_08127D64: - str r2, [sp] - adds r0, r3, #0 - adds r1, r4, #0 - movs r2, #1 - b _08127D80 -_08127D6E: - str r2, [sp] - adds r0, r3, #0 - adds r1, r4, #0 - movs r2, #2 - b _08127D80 -_08127D78: - str r2, [sp] - adds r0, r3, #0 - adds r1, r4, #0 - movs r2, #3 -_08127D80: - movs r3, #1 - bl ShowDecorationOnMap_ - b _08127DE4 -_08127D88: - str r2, [sp] - adds r0, r3, #0 - adds r1, r4, #0 - movs r2, #4 - b _08127DA4 -_08127D92: - str r2, [sp] - adds r0, r3, #0 - adds r1, r4, #0 - movs r2, #2 - b _08127DA4 -_08127D9C: - str r2, [sp] - adds r0, r3, #0 - adds r1, r4, #0 - movs r2, #1 -_08127DA4: - movs r3, #2 - bl ShowDecorationOnMap_ - b _08127DE4 -_08127DAC: - str r2, [sp] - adds r0, r3, #0 - adds r1, r4, #0 - movs r2, #1 - b _08127DCE -_08127DB6: - str r2, [sp] - adds r0, r3, #0 - adds r1, r4, #0 - movs r2, #2 - movs r3, #4 - bl ShowDecorationOnMap_ - b _08127DE4 -_08127DC6: - str r2, [sp] - adds r0, r3, #0 - adds r1, r4, #0 - movs r2, #3 -_08127DCE: - movs r3, #3 - bl ShowDecorationOnMap_ - b _08127DE4 -_08127DD6: - str r2, [sp] - adds r0, r3, #0 - adds r1, r4, #0 - movs r2, #3 - movs r3, #2 - bl ShowDecorationOnMap_ -_08127DE4: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08127D08 - - thumb_func_start sub_08127DEC -sub_08127DEC: @ 0x08127DEC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - movs r6, #0 - ldr r7, _08127ECC - ldr r0, _08127ED0 - mov r8, r0 - ldr r1, _08127ED4 - mov sl, r1 - ldr r2, _08127ED8 - mov sb, r2 -_08127E08: - adds r5, r6, #0 - adds r5, #0xae - adds r4, r5, #0 - adds r0, r4, #0 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08127EF0 - adds r0, r4, #0 - bl FlagClear - movs r2, #0 - ldr r0, [r7, #4] - ldrb r4, [r0] - cmp r2, r4 - bhs _08127E56 - ldr r0, [r0, #4] - ldrh r0, [r0, #0x14] - cmp r0, r5 - beq _08127E56 - ldr r0, _08127ECC - ldr r3, [r0, #4] - ldrb r6, [r3] - adds r4, r5, #0 -_08127E3C: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, r6 - bhs _08127E56 - ldr r0, [r3, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x14] - cmp r0, r4 - bne _08127E3C -_08127E56: - ldr r0, [r7, #4] - ldr r1, [r0, #4] - lsls r4, r2, #1 - adds r4, r4, r2 - lsls r4, r4, #3 - adds r1, r4, r1 - ldr r5, _08127EDC - adds r0, r5, #0 - ldrb r1, [r1, #1] - adds r0, r0, r1 - ldr r1, _08127EE0 - ldr r1, [r1] - ldr r1, [r1, #0x18] - ldrh r1, [r1] - bl VarSet - ldr r0, [r7, #4] - ldr r0, [r0, #4] - adds r4, r4, r0 - ldrb r0, [r4] - mov r6, r8 - strh r0, [r6] - ldr r1, _08127EE4 - ldrh r1, [r1] - mov r2, sl - strh r1, [r2] - ldr r1, _08127EE8 - ldrh r1, [r1] - ldr r4, _08127EEC - strh r1, [r4] - mov r5, sb - ldr r2, [r5] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - bl TrySpawnEventObject - ldrb r0, [r6] - ldr r2, [r5] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - mov r6, sl - movs r4, #0 - ldrsh r3, [r6, r4] - ldr r5, _08127EEC - movs r6, #0 - ldrsh r4, [r5, r6] - str r4, [sp] - bl TryMoveEventObjectToMapCoords - mov r1, r8 - ldrb r0, [r1] - mov r4, sb - ldr r2, [r4] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - bl TryOverrideEventObjectTemplateCoords - b _08127EFA - .align 2, 0 -_08127ECC: .4byte gUnknown_2036FB8 -_08127ED0: .4byte gUnknown_2037282 -_08127ED4: .4byte gUnknown_2037284 -_08127ED8: .4byte gUnknown_3005AEC -_08127EDC: .4byte 0x00003F20 -_08127EE0: .4byte gUnknown_2039E5C -_08127EE4: .4byte gUnknown_203A700 -_08127EE8: .4byte gUnknown_203A702 -_08127EEC: .4byte gUnknown_2037286 -_08127EF0: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0xd - bls _08127E08 -_08127EFA: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08127DEC - - thumb_func_start sub_08127F0C -sub_08127F0C: @ 0x08127F0C - push {lr} - movs r1, #0 - ldr r0, _08127F28 - ldrb r2, [r0, #8] - cmp r1, r2 - bhs _08127F36 - ldr r3, [r0] -_08127F1A: - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _08127F2C - movs r0, #1 - b _08127F38 - .align 2, 0 -_08127F28: .4byte gUnknown_2039E48 -_08127F2C: - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, r2 - blo _08127F1A -_08127F36: - movs r0, #0 -_08127F38: - pop {r1} - bx r1 - thumb_func_end sub_08127F0C - - thumb_func_start sub_08127F3C -sub_08127F3C: @ 0x08127F3C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _08127F6C - ldrb r0, [r0, #9] - cmp r0, #1 - bne _08127F80 - ldr r0, _08127F70 - ldrb r0, [r0] - cmp r0, #6 - beq _08127F80 - cmp r0, #7 - beq _08127F80 - ldr r4, _08127F74 - ldr r1, _08127F78 - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r2, _08127F7C - adds r0, r5, #0 - adds r1, r4, #0 - bl DisplayItemMessageOnField - b _08128020 - .align 2, 0 -_08127F6C: .4byte gUnknown_2039E48 -_08127F70: .4byte gUnknown_2039E3F -_08127F74: .4byte gUnknown_2021C7C -_08127F78: .4byte gUnknown_85CA7D9 -_08127F7C: .4byte sub_08127A0C -_08127F80: - bl IsSelectedDecorInThePC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0812800C - bl sub_08127F0C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08127FBC - movs r0, #1 - movs r1, #0 - bl FadeScreen - ldr r1, _08127FB4 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #0xc] - ldr r1, _08127FB8 - str r1, [r0] - b _08128020 - .align 2, 0 -_08127FB4: .4byte gUnknown_3005B60 -_08127FB8: .4byte sub_08128034 -_08127FBC: - ldr r0, _08127FDC - ldr r4, _08127FE0 - ldrb r1, [r4, #8] - movs r2, #1 - movs r3, #2 - bl sub_080089D8 - ldrb r0, [r4, #9] - cmp r0, #0 - bne _08127FEC - ldr r0, _08127FE4 - ldr r1, _08127FE8 - bl StringExpandPlaceholders - b _08127FF4 - .align 2, 0 -_08127FDC: .4byte gUnknown_2021C40 -_08127FE0: .4byte gUnknown_2039E48 -_08127FE4: .4byte gUnknown_2021C7C -_08127FE8: .4byte gUnknown_85CA776 -_08127FEC: - ldr r0, _08128000 - ldr r1, _08128004 - bl StringExpandPlaceholders -_08127FF4: - ldr r1, _08128000 - ldr r2, _08128008 - adds r0, r5, #0 - bl DisplayItemMessageOnField - b _08128020 - .align 2, 0 -_08128000: .4byte gUnknown_2021C7C -_08128004: .4byte gUnknown_85CA799 -_08128008: .4byte sub_08127A0C -_0812800C: - ldr r4, _08128028 - ldr r1, _0812802C - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r2, _08128030 - adds r0, r5, #0 - adds r1, r4, #0 - bl DisplayItemMessageOnField -_08128020: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08128028: .4byte gUnknown_2021C7C -_0812802C: .4byte gUnknown_85CA768 -_08128030: .4byte sub_08127A0C - thumb_func_end sub_08127F3C - - thumb_func_start sub_08128034 -sub_08128034: @ 0x08128034 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _08128058 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r7, r0, r1 - movs r1, #0xc - ldrsh r0, [r7, r1] - cmp r0, #1 - beq _08128080 - cmp r0, #1 - bgt _0812805C - cmp r0, #0 - beq _08128062 - b _081280E6 - .align 2, 0 -_08128058: .4byte gUnknown_3005B60 -_0812805C: - cmp r0, #2 - beq _081280D0 - b _081280E6 -_08128062: - ldr r0, _0812807C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081280E6 - adds r0, r6, #0 - bl sub_08127A7C - movs r0, #1 - strh r0, [r7, #0xc] - b _081280E6 - .align 2, 0 -_0812807C: .4byte gUnknown_2037C74 -_08128080: - ldr r4, _081280C0 - ldrb r0, [r4, #8] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #8] - ldr r5, _081280C4 - ldr r0, _081280C8 - ldrb r1, [r0] - ldr r0, _081280CC - ldr r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r5, #0 - bl ConfigureCameraObjectForPlacingDecoration - adds r0, r6, #0 - bl sub_08128240 - adds r0, r6, #0 - adds r1, r5, #0 - bl SetUpPlacingDecorationPlayerAvatar - bl pal_fill_black - ldrb r1, [r4, #8] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #8] - movs r0, #2 - strh r0, [r7, #0xc] - b _081280E6 - .align 2, 0 -_081280C0: .4byte gUnknown_2037C74 -_081280C4: .4byte gUnknown_2039E5C -_081280C8: .4byte gUnknown_2039E3E -_081280CC: .4byte gUnknown_2039E18 -_081280D0: - bl IsWeatherNotFadingIn - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081280E6 - movs r0, #0 - strh r0, [r7, #0x20] - adds r0, r6, #0 - bl sub_08128FB8 -_081280E6: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08128034 - - thumb_func_start ConfigureCameraObjectForPlacingDecoration -ConfigureCameraObjectForPlacingDecoration: @ 0x081280EC - push {r4, r5, r6, lr} - adds r6, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r3, _08128168 - ldr r4, _0812816C - ldr r5, _08128170 - ldr r2, [r5, #4] - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r0, [r0, #0x2e] - strb r0, [r3] - adds r0, r6, #0 - bl sub_08129314 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [r5, #4] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r2, [r1, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - movs r2, #4 - orrs r0, r2 - strb r0, [r1, #5] - ldr r0, [r5, #4] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r0, r4, #0 - adds r0, #0x1c - adds r0, r2, r0 - ldr r1, _08128174 - str r1, [r0] - adds r2, r2, r4 - ldr r3, _08128178 - ldr r0, [r6] - ldrb r0, [r0, #0xd] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r0, [r0, #2] - strh r0, [r2, #0x20] - ldr r0, [r5, #4] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldr r0, [r6] - ldrb r0, [r0, #0xd] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r0, [r0, #3] - strh r0, [r1, #0x22] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08128168: .4byte gUnknown_203A704 -_0812816C: .4byte gUnknown_20205AC -_08128170: .4byte gUnknown_3005B30 -_08128174: .4byte sub_081292B0 -_08128178: .4byte gUnknown_8582134 - thumb_func_end ConfigureCameraObjectForPlacingDecoration - - thumb_func_start SetUpPlacingDecorationPlayerAvatar -SetUpPlacingDecorationPlayerAvatar: @ 0x0812817C - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _081281D0 - lsls r2, r0, #2 - adds r2, r2, r0 - lsls r2, r2, #3 - adds r2, r2, r3 - ldrb r2, [r2, #0x12] - ldr r3, _081281D4 - ldr r0, [r1] - ldrb r4, [r0, #0xd] - lsls r1, r4, #2 - adds r1, r1, r3 - lsls r0, r2, #4 - ldrb r1, [r1, #2] - adds r0, r0, r1 - subs r2, #1 - lsls r2, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r4, #2 - beq _081281B6 - cmp r4, #8 - beq _081281B6 - cmp r4, #9 - bne _081281BE -_081281B6: - adds r0, r2, #0 - subs r0, #8 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 -_081281BE: - ldr r0, _081281D8 - ldr r0, [r0] - ldrb r0, [r0, #8] - cmp r0, #0 - bne _081281E0 - ldr r1, _081281DC - str r0, [sp] - movs r0, #0xc1 - b _081281E8 - .align 2, 0 -_081281D0: .4byte gUnknown_3005B60 -_081281D4: .4byte gUnknown_8582134 -_081281D8: .4byte gUnknown_3005AF0 -_081281DC: .4byte sub_08007140 -_081281E0: - ldr r1, _0812822C - movs r0, #0 - str r0, [sp] - movs r0, #0xc2 -_081281E8: - movs r3, #0x48 - bl AddPseudoEventObject - ldr r1, _08128230 - strb r0, [r1] - ldr r3, _08128234 - ldr r0, _08128230 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r2, [r0, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #4 - orrs r1, r2 - strb r1, [r0, #5] - ldr r4, _08128238 - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - bl DestroySprite - ldr r0, _0812823C - ldr r0, [r0, #4] - strb r0, [r4] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812822C: .4byte sub_08007140 -_08128230: .4byte gUnknown_203A705 -_08128234: .4byte gUnknown_20205AC -_08128238: .4byte gUnknown_203A704 -_0812823C: .4byte gUnknown_3005B30 - thumb_func_end SetUpPlacingDecorationPlayerAvatar - - thumb_func_start sub_08128240 -sub_08128240: @ 0x08128240 - push {lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r2, _08128270 - ldr r0, _08128274 - ldrb r1, [r0] - ldr r0, _08128278 - ldr r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #0xd] - cmp r0, #9 - bls _08128264 - b _0812838A -_08128264: - lsls r0, r0, #2 - ldr r1, _0812827C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08128270: .4byte gUnknown_8580CD0 -_08128274: .4byte gUnknown_2039E3E -_08128278: .4byte gUnknown_2039E18 -_0812827C: .4byte _08128280 -_08128280: @ jump table - .4byte _081282A8 @ case 0 - .4byte _081282BC @ case 1 - .4byte _081282D4 @ case 2 - .4byte _081282EC @ case 3 - .4byte _08128300 @ case 4 - .4byte _08128314 @ case 5 - .4byte _08128328 @ case 6 - .4byte _08128348 @ case 7 - .4byte _08128360 @ case 8 - .4byte _08128378 @ case 9 -_081282A8: - ldr r0, _081282B8 - lsls r1, r3, #2 - adds r1, r1, r3 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #1 - b _0812836C - .align 2, 0 -_081282B8: .4byte gUnknown_3005B60 -_081282BC: - ldr r1, _081282D0 - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #2 - strh r1, [r0, #0x12] - movs r1, #1 - b _08128388 - .align 2, 0 -_081282D0: .4byte gUnknown_3005B60 -_081282D4: - ldr r1, _081282E8 - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #3 - strh r1, [r0, #0x12] - movs r1, #1 - b _08128388 - .align 2, 0 -_081282E8: .4byte gUnknown_3005B60 -_081282EC: - ldr r1, _081282FC - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #4 - b _08128384 - .align 2, 0 -_081282FC: .4byte gUnknown_3005B60 -_08128300: - ldr r0, _08128310 - lsls r1, r3, #2 - adds r1, r1, r3 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #2 - b _0812836C - .align 2, 0 -_08128310: .4byte gUnknown_3005B60 -_08128314: - ldr r1, _08128324 - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #1 - b _08128384 - .align 2, 0 -_08128324: .4byte gUnknown_3005B60 -_08128328: - ldr r0, _08128344 - lsls r1, r3, #2 - adds r1, r1, r3 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #1 - strh r0, [r1, #0x12] - movs r0, #3 - strh r0, [r1, #0x14] - ldrh r0, [r1, #0xa] - adds r0, #1 - strh r0, [r1, #0xa] - b _0812838A - .align 2, 0 -_08128344: .4byte gUnknown_3005B60 -_08128348: - ldr r1, _0812835C - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #2 - strh r1, [r0, #0x12] - movs r1, #4 - b _08128388 - .align 2, 0 -_0812835C: .4byte gUnknown_3005B60 -_08128360: - ldr r0, _08128374 - lsls r1, r3, #2 - adds r1, r1, r3 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #3 -_0812836C: - strh r0, [r1, #0x12] - strh r0, [r1, #0x14] - b _0812838A - .align 2, 0 -_08128374: .4byte gUnknown_3005B60 -_08128378: - ldr r1, _08128390 - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #3 -_08128384: - strh r1, [r0, #0x12] - movs r1, #2 -_08128388: - strh r1, [r0, #0x14] -_0812838A: - pop {r0} - bx r0 - .align 2, 0 -_08128390: .4byte gUnknown_3005B60 - thumb_func_end sub_08128240 - - thumb_func_start sub_08128394 -sub_08128394: @ 0x08128394 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _081283DC - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #0x1c] - ldr r3, _081283E0 - ldr r0, _081283E4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r2, #1 - strh r2, [r0, #0x3c] - ldr r0, _081283E8 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r2, [r0, #0x3c] - bl sub_08128DC0 - adds r0, r4, #0 - bl sub_08128928 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081283DC: .4byte gUnknown_3005B60 -_081283E0: .4byte gUnknown_20205AC -_081283E4: .4byte gUnknown_203A704 -_081283E8: .4byte gUnknown_203A705 - thumb_func_end sub_08128394 - - thumb_func_start sub_081283EC -sub_081283EC: @ 0x081283EC - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _08128440 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #0x1c] - ldr r3, _08128444 - ldr r0, _08128448 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r2, #1 - strh r2, [r0, #0x3c] - ldr r0, _0812844C - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r2, [r0, #0x3c] - bl sub_08128DC0 - ldr r5, _08128450 - ldr r1, _08128454 - adds r0, r5, #0 - bl StringExpandPlaceholders - ldr r2, _08128458 - adds r0, r4, #0 - adds r1, r5, #0 - bl DisplayItemMessageOnField - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08128440: .4byte gUnknown_3005B60 -_08128444: .4byte gUnknown_20205AC -_08128448: .4byte gUnknown_203A704 -_0812844C: .4byte gUnknown_203A705 -_08128450: .4byte gUnknown_2021C7C -_08128454: .4byte gUnknown_85CA75C -_08128458: .4byte sub_08128B60 - thumb_func_end sub_081283EC - - thumb_func_start sub_0812845C -sub_0812845C: @ 0x0812845C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - bl MetatileBehavior_IsBlockDecoration - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08128476 - cmp r4, #0 - beq _0812847A -_08128476: - movs r0, #0 - b _0812847C -_0812847A: - movs r0, #1 -_0812847C: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0812845C - - thumb_func_start sub_08128484 -sub_08128484: @ 0x08128484 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r2, #0x10 - lsrs r4, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r5, r3, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldr r3, _081284C0 - lsls r2, r0, #2 - adds r2, r2, r0 - lsls r2, r2, #3 - adds r2, r2, r3 - movs r3, #0xe - ldrsh r0, [r2, r3] - adds r0, #7 - cmp r1, r0 - bne _081284C4 - lsls r1, r4, #0x10 - asrs r1, r1, #0x10 - movs r3, #0x10 - ldrsh r0, [r2, r3] - adds r0, #7 - cmp r1, r0 - bne _081284C4 - cmp r5, #0 - beq _081284C4 - movs r0, #0 - b _081284C6 - .align 2, 0 -_081284C0: .4byte gUnknown_3005B60 -_081284C4: - movs r0, #1 -_081284C6: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_08128484 - - thumb_func_start sub_081284CC -sub_081284CC: @ 0x081284CC - push {r4, r5, r6, lr} - adds r5, r1, #0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r0, r6, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl MetatileBehavior_IsBlockDecoration - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0812850C - ldrb r0, [r5] - cmp r0, #0x21 - bne _081284FA - adds r0, r4, #0 - bl MetatileBehavior_IsSecretBaseHole - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08128508 -_081284FA: - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsNormal - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0812850C -_08128508: - movs r0, #1 - b _0812850E -_0812850C: - movs r0, #0 -_0812850E: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_081284CC - - thumb_func_start sub_08128514 -sub_08128514: @ 0x08128514 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x24 - str r1, [sp] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - ldr r1, _08128550 - lsls r0, r0, #2 - add r0, sl - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r2, [r0, #0x14] - str r2, [sp, #4] - ldrb r0, [r0, #0x12] - str r0, [sp, #8] - ldr r3, [sp] - ldrb r0, [r3, #0xc] - adds r2, r1, #0 - cmp r0, #4 - bls _08128546 - b _08128914 -_08128546: - lsls r0, r0, #2 - ldr r1, _08128554 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08128550: .4byte gUnknown_3005B60 -_08128554: .4byte _08128558 -_08128558: @ jump table - .4byte _0812856C @ case 0 - .4byte _0812856C @ case 1 - .4byte _08128658 @ case 2 - .4byte _0812880C @ case 3 - .4byte _08128890 @ case 4 -_0812856C: - movs r6, #0 - ldr r0, [sp, #4] - cmp r6, r0 - blo _08128576 - b _08128914 -_08128576: - mov r1, sl - lsls r1, r1, #2 - str r1, [sp, #0x1c] -_0812857C: - mov r2, sl - lsls r0, r2, #2 - add r0, sl - lsls r0, r0, #3 - ldr r3, _08128654 - adds r0, r0, r3 - ldrh r0, [r0, #0xa] - subs r0, r0, r6 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - movs r7, #0 - adds r6, #1 - str r6, [sp, #0x14] - ldr r0, [sp, #8] - cmp r7, r0 - bhs _08128646 - mov r1, sb - lsls r1, r1, #0x10 - str r1, [sp, #0xc] - asrs r1, r1, #0x10 - mov sb, r1 -_081285A8: - ldr r0, [sp, #0x1c] - add r0, sl - lsls r0, r0, #3 - ldr r2, _08128654 - adds r0, r0, r2 - ldrh r0, [r0, #8] - adds r0, r0, r7 - lsls r0, r0, #0x10 - mov r8, r0 - asrs r6, r0, #0x10 - adds r0, r6, #0 - mov r1, sb - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r3, [sp, #4] - ldr r1, [sp, #0x14] - subs r0, r3, r1 - ldr r2, [sp, #8] - adds r1, r0, #0 - muls r1, r2, r1 - adds r1, r1, r7 - ldr r3, [sp] - ldr r0, [r3, #0x18] - lsls r1, r1, #1 - adds r1, r1, r0 - movs r2, #0x80 - lsls r2, r2, #2 - adds r0, r2, #0 - ldrh r1, [r1] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetBehaviorByMetatileId - movs r3, #0xf0 - lsls r3, r3, #8 - adds r1, r3, #0 - adds r5, r1, #0 - ands r5, r0 - adds r0, r4, #0 - ldr r1, [sp] - bl sub_081284CC - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0812860A - b _081288E4 -_0812860A: - mov r0, sl - adds r1, r6, #0 - mov r2, sb - adds r3, r5, #0 - bl sub_08128484 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0812861E - b _081288E4 -_0812861E: - mov r1, r8 - lsrs r0, r1, #0x10 - ldr r2, [sp, #0xc] - lsrs r1, r2, #0x10 - movs r2, #0 - bl GetEventObjectIdByXYZ - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - beq _0812863A - cmp r4, #0x10 - beq _0812863A - b _081288E4 -_0812863A: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r3, [sp, #8] - cmp r7, r3 - blo _081285A8 -_08128646: - ldr r1, [sp, #0x14] - lsls r0, r1, #0x18 - lsrs r6, r0, #0x18 - ldr r2, [sp, #4] - cmp r6, r2 - blo _0812857C - b _08128914 - .align 2, 0 -_08128654: .4byte gUnknown_3005B60 -_08128658: - movs r6, #0 - mov r3, sl - lsls r3, r3, #2 - str r3, [sp, #0x1c] - ldr r0, [sp, #4] - subs r0, #1 - str r0, [sp, #0x18] - cmp r6, r0 - bge _08128744 - adds r0, r3, #0 - add r0, sl - lsls r0, r0, #3 - str r0, [sp, #0x10] -_08128672: - ldr r1, [sp, #0x10] - adds r0, r1, r2 - ldrh r0, [r0, #0xa] - subs r0, r0, r6 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - movs r7, #0 - adds r6, #1 - str r6, [sp, #0x14] - ldr r3, [sp, #8] - cmp r7, r3 - bhs _08128738 - lsls r0, r0, #0x10 - str r0, [sp, #0x20] -_08128690: - ldr r1, [sp, #0x10] - adds r0, r1, r2 - ldrh r0, [r0, #8] - adds r0, r0, r7 - lsls r0, r0, #0x10 - mov r8, r0 - asrs r6, r0, #0x10 - mov r2, sb - lsls r1, r2, #0x10 - adds r0, r6, #0 - asrs r1, r1, #0x10 - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r3, [sp, #4] - ldr r1, [sp, #0x14] - subs r0, r3, r1 - ldr r2, [sp, #8] - adds r1, r0, #0 - muls r1, r2, r1 - adds r1, r1, r7 - ldr r3, [sp] - ldr r0, [r3, #0x18] - lsls r1, r1, #1 - adds r1, r1, r0 - movs r2, #0x80 - lsls r2, r2, #2 - adds r0, r2, #0 - ldrh r1, [r1] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetBehaviorByMetatileId - movs r3, #0xf0 - lsls r3, r3, #8 - adds r1, r3, #0 - adds r5, r1, #0 - ands r5, r0 - adds r0, r4, #0 - bl MetatileBehavior_IsNormal - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081286FC - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0812845C - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081286FC - b _081288E4 -_081286FC: - mov r0, sl - adds r1, r6, #0 - ldr r3, [sp, #0x20] - asrs r2, r3, #0x10 - adds r3, r5, #0 - bl sub_08128484 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08128712 - b _081288E4 -_08128712: - mov r1, r8 - lsrs r0, r1, #0x10 - ldr r2, [sp, #0x20] - lsrs r1, r2, #0x10 - movs r2, #0 - bl GetEventObjectIdByXYZ - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x10 - beq _0812872A - b _081288E4 -_0812872A: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r2, _08128808 - ldr r3, [sp, #8] - cmp r7, r3 - blo _08128690 -_08128738: - ldr r1, [sp, #0x14] - lsls r0, r1, #0x18 - lsrs r6, r0, #0x18 - ldr r3, [sp, #0x18] - cmp r6, r3 - blt _08128672 -_08128744: - ldr r0, [sp, #0x1c] - add r0, sl - lsls r0, r0, #3 - adds r0, r0, r2 - ldrh r0, [r0, #0xa] - ldr r1, [sp, #4] - subs r0, r0, r1 - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - movs r7, #0 - ldr r3, [sp, #8] - cmp r7, r3 - blo _08128764 - b _08128914 -_08128764: - lsls r0, r0, #0x10 - str r0, [sp, #0x20] -_08128768: - ldr r0, [sp, #0x1c] - add r0, sl - lsls r0, r0, #3 - ldr r1, _08128808 - adds r0, r0, r1 - ldrh r0, [r0, #8] - adds r0, r0, r7 - lsls r0, r0, #0x10 - mov r8, r0 - asrs r6, r0, #0x10 - mov r2, sb - lsls r1, r2, #0x10 - adds r0, r6, #0 - asrs r1, r1, #0x10 - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r3, [sp] - ldr r0, [r3, #0x18] - lsls r1, r7, #1 - adds r1, r1, r0 - movs r2, #0x80 - lsls r2, r2, #2 - adds r0, r2, #0 - ldrh r1, [r1] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetBehaviorByMetatileId - movs r3, #0xf0 - lsls r3, r3, #8 - adds r1, r3, #0 - adds r5, r1, #0 - ands r5, r0 - adds r0, r4, #0 - bl MetatileBehavior_IsNormal - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081287CA - adds r0, r4, #0 - bl MetatileBehavior_IsSecretBaseNorthWall - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081287CA - b _081288E4 -_081287CA: - mov r0, sl - adds r1, r6, #0 - ldr r3, [sp, #0x20] - asrs r2, r3, #0x10 - adds r3, r5, #0 - bl sub_08128484 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081287E0 - b _081288E4 -_081287E0: - mov r1, r8 - lsrs r0, r1, #0x10 - ldr r2, [sp, #0x20] - lsrs r1, r2, #0x10 - movs r2, #0 - bl GetEventObjectIdByXYZ - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - beq _081287FA - cmp r4, #0x10 - bne _081288E4 -_081287FA: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r3, [sp, #8] - cmp r7, r3 - blo _08128768 - b _08128914 - .align 2, 0 -_08128808: .4byte gUnknown_3005B60 -_0812880C: - movs r6, #0 - ldr r0, [sp, #4] - cmp r6, r0 - blo _08128816 - b _08128914 -_08128816: - mov r1, sl - lsls r0, r1, #2 - add r0, sl - lsls r1, r0, #3 - ldr r2, _0812888C - adds r0, r1, r2 - ldrh r0, [r0, #0xa] - subs r0, r0, r6 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - movs r7, #0 - ldr r3, [sp, #8] - cmp r7, r3 - bhs _0812887C - adds r0, r2, #0 - adds r1, r1, r0 - mov r8, r1 - mov r1, sb - lsls r0, r1, #0x10 - asrs r5, r0, #0x10 -_08128840: - mov r2, r8 - ldrh r0, [r2, #8] - adds r0, r0, r7 - lsls r0, r0, #0x10 - asrs r4, r0, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsSecretBaseNorthWall - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081288E4 - adds r0, r4, #0 - adds r1, r5, #1 - bl MapGridGetMetatileIdAt - movs r1, #0xa3 - lsls r1, r1, #2 - cmp r0, r1 - beq _081288E4 - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r3, [sp, #8] - cmp r7, r3 - blo _08128840 -_0812887C: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, [sp, #4] - cmp r6, r0 - blo _08128816 - b _08128914 - .align 2, 0 -_0812888C: .4byte gUnknown_3005B60 -_08128890: - mov r3, sl - lsls r1, r3, #2 - adds r0, r1, r3 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrh r0, [r0, #0xa] - mov sb, r0 - movs r7, #0 - str r1, [sp, #0x1c] - ldr r0, [sp, #8] - cmp r7, r0 - bhs _08128914 - adds r6, r2, #0 - mov r1, sb - lsls r1, r1, #0x10 - str r1, [sp, #0x20] -_081288B0: - ldr r0, [sp, #0x1c] - add r0, sl - lsls r0, r0, #3 - adds r0, r0, r6 - ldrh r0, [r0, #8] - adds r0, r0, r7 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - asrs r0, r0, #0x10 - mov r2, sb - lsls r1, r2, #0x10 - asrs r1, r1, #0x10 - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r3, [sp] - ldrb r0, [r3, #0xd] - cmp r0, #5 - bne _081288E8 -_081288D8: - adds r0, r4, #0 - bl MetatileBehavior_HoldsLargeDecoration - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081288F4 -_081288E4: - movs r0, #0 - b _08128916 -_081288E8: - adds r0, r4, #0 - bl MetatileBehavior_HoldsSmallDecoration - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081288D8 -_081288F4: - adds r0, r5, #0 - ldr r2, [sp, #0x20] - lsrs r1, r2, #0x10 - movs r2, #0 - bl GetEventObjectIdByXYZ - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x10 - bne _081288E4 - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r3, [sp, #8] - cmp r7, r3 - blo _081288B0 -_08128914: - movs r0, #1 -_08128916: - add sp, #0x24 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08128514 - - thumb_func_start sub_08128928 -sub_08128928: @ 0x08128928 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _08128968 - ldrb r1, [r0] - ldr r0, _0812896C - ldr r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _08128970 - adds r1, r1, r0 - adds r0, r5, #0 - bl sub_08128514 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08128980 - ldr r4, _08128974 - ldr r1, _08128978 - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r2, _0812897C - adds r0, r5, #0 - adds r1, r4, #0 - bl DisplayItemMessageOnField - b _0812899A - .align 2, 0 -_08128968: .4byte gUnknown_2039E3E -_0812896C: .4byte gUnknown_2039E18 -_08128970: .4byte gUnknown_8580CD0 -_08128974: .4byte gUnknown_2021C7C -_08128978: .4byte gUnknown_85CA745 -_0812897C: .4byte sub_081289AC -_08128980: - movs r0, #0x20 - bl sub_080A306C - ldr r4, _081289A0 - ldr r1, _081289A4 - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r2, _081289A8 - adds r0, r5, #0 - adds r1, r4, #0 - bl DisplayItemMessageOnField -_0812899A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081289A0: .4byte gUnknown_2021C7C -_081289A4: .4byte gUnknown_85CA750 -_081289A8: .4byte sub_08129000 - thumb_func_end sub_08128928 - - thumb_func_start sub_081289AC -sub_081289AC: @ 0x081289AC - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_08197714 - ldr r1, _081289C8 - adds r0, r4, #0 - bl DoYesNoFuncWithChoice - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081289C8: .4byte gUnknown_85821A8 - thumb_func_end sub_081289AC - - thumb_func_start sub_081289CC -sub_081289CC: @ 0x081289CC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #0 - movs r1, #0 - bl sub_08197028 - adds r0, r4, #0 - bl sub_08128A8C - ldr r2, _08128A14 - ldr r0, _08128A18 - ldrb r1, [r0] - ldr r0, _08128A1C - ldr r0, [r0] - adds r0, r0, r1 - ldrb r3, [r0] - lsls r0, r3, #3 - subs r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #0xc] - cmp r0, #4 - beq _08128A24 - ldr r0, _08128A20 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - ldrh r1, [r1, #0xa] - adds r2, r3, #0 - bl sub_08127D08 - b _08128A44 - .align 2, 0 -_08128A14: .4byte gUnknown_8580CD0 -_08128A18: .4byte gUnknown_2039E3E -_08128A1C: .4byte gUnknown_2039E18 -_08128A20: .4byte gUnknown_3005B60 -_08128A24: - ldr r2, _08128A70 - ldr r0, _08128A74 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - subs r0, #7 - strh r0, [r2] - ldr r2, _08128A78 - ldrh r0, [r1, #0xa] - subs r0, #7 - strh r0, [r2] - ldr r0, _08128A7C - bl ScriptContext1_SetupScript -_08128A44: - ldr r2, _08128A80 - ldr r0, _08128A84 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x22] - adds r1, #2 - strh r1, [r0, #0x22] - ldr r0, _08128A88 - ldrb r0, [r0, #0x14] - cmp r0, #0x56 - bne _08128A64 - bl TV_PutSecretBaseVisitOnTheAir -_08128A64: - adds r0, r4, #0 - bl sub_08128B9C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08128A70: .4byte gUnknown_203A700 -_08128A74: .4byte gUnknown_3005B60 -_08128A78: .4byte gUnknown_203A702 -_08128A7C: .4byte gUnknown_8245DCE -_08128A80: .4byte gUnknown_20205AC -_08128A84: .4byte gUnknown_203A704 -_08128A88: .4byte gUnknown_2036FB8 - thumb_func_end sub_081289CC - - thumb_func_start sub_08128A8C -sub_08128A8C: @ 0x08128A8C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r3, #0 - ldr r0, _08128AC8 - ldrb r1, [r0, #8] - adds r5, r0, #0 - cmp r3, r1 - bhs _08128AB2 - ldr r4, [r5] -_08128AA0: - adds r2, r4, r3 - ldrb r0, [r2] - cmp r0, #0 - beq _08128AD0 - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, r1 - blo _08128AA0 -_08128AB2: - ldrb r0, [r5, #9] - cmp r0, #0 - bne _08128B1C - movs r3, #0 - ldr r0, _08128ACC - ldrb r1, [r0] - adds r2, r0, #0 - cmp r1, #0 - bne _08128B08 - b _08128B28 - .align 2, 0 -_08128AC8: .4byte gUnknown_2039E48 -_08128ACC: .4byte gUnknown_2039E1E -_08128AD0: - ldr r0, _08128AFC - ldrb r1, [r0] - ldr r0, _08128B00 - ldr r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r2, [r5, #4] - adds r2, r2, r3 - ldr r0, _08128B04 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrb r0, [r1, #8] - subs r0, #7 - lsls r0, r0, #4 - ldrb r1, [r1, #0xa] - subs r1, #7 - adds r0, r0, r1 - strb r0, [r2] - b _08128AB2 - .align 2, 0 -_08128AFC: .4byte gUnknown_2039E3E -_08128B00: .4byte gUnknown_2039E18 -_08128B04: .4byte gUnknown_3005B60 -_08128B08: - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #0xf - bhi _08128B56 - adds r1, r3, r2 - ldrb r0, [r1] - cmp r0, #0 - bne _08128B08 - b _08128B4E -_08128B1C: - movs r3, #0 - ldr r0, _08128B34 - ldrb r1, [r0] - adds r2, r0, #0 - cmp r1, #0 - bne _08128B3C -_08128B28: - ldr r0, _08128B38 - ldrb r0, [r0] - adds r0, #1 - strb r0, [r2] - b _08128B56 - .align 2, 0 -_08128B34: .4byte gUnknown_2039E2E -_08128B38: .4byte gUnknown_2039E3E -_08128B3C: - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #0xb - bhi _08128B56 - adds r1, r3, r2 - ldrb r0, [r1] - cmp r0, #0 - bne _08128B3C -_08128B4E: - ldr r0, _08128B5C - ldrb r0, [r0] - adds r0, #1 - strb r0, [r1] -_08128B56: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08128B5C: .4byte gUnknown_2039E3E - thumb_func_end sub_08128A8C - - thumb_func_start sub_08128B60 -sub_08128B60: @ 0x08128B60 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_08197714 - ldr r1, _08128B7C - adds r0, r4, #0 - bl DoYesNoFuncWithChoice - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08128B7C: .4byte gUnknown_85821B0 - thumb_func_end sub_08128B60 - - thumb_func_start sub_08128B80 -sub_08128B80: @ 0x08128B80 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - movs r1, #0 - bl sub_08197028 - adds r0, r4, #0 - bl sub_08128B9C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08128B80 - - thumb_func_start sub_08128B9C -sub_08128B9C: @ 0x08128B9C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - movs r1, #0 - bl FadeScreen - ldr r1, _08128BC4 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #0xc] - ldr r1, _08128BC8 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08128BC4: .4byte gUnknown_3005B60 -_08128BC8: .4byte c1_overworld_prev_quest - thumb_func_end sub_08128B9C - - thumb_func_start c1_overworld_prev_quest -c1_overworld_prev_quest: @ 0x08128BCC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08128BEC - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r5, r0, r1 - movs r1, #0xc - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _08128BF0 - cmp r0, #1 - beq _08128C10 - b _08128C2C - .align 2, 0 -_08128BEC: .4byte gUnknown_3005B60 -_08128BF0: - bl sub_080987DC - ldr r0, _08128C0C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08128C2C - adds r0, r4, #0 - bl sub_08127AB4 - movs r0, #1 - strh r0, [r5, #0xc] - b _08128C2C - .align 2, 0 -_08128C0C: .4byte gUnknown_2037C74 -_08128C10: - bl sub_0812A3D4 - ldr r0, _08128C34 - bl FreeSpritePaletteByTag - ldr r1, _08128C38 - ldr r0, _08128C3C - str r0, [r1] - ldr r0, _08128C40 - bl SetMainCallback2 - adds r0, r4, #0 - bl DestroyTask -_08128C2C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08128C34: .4byte 0x00000BE5 -_08128C38: .4byte gUnknown_3005B0C -_08128C3C: .4byte sub_08128CB4 -_08128C40: .4byte sub_08085A30 - thumb_func_end c1_overworld_prev_quest - - thumb_func_start sub_08128C44 -sub_08128C44: @ 0x08128C44 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r5, r1, #3 - ldr r6, _08128C68 - adds r4, r5, r6 - movs r1, #4 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _08128C7C - cmp r0, #1 - bgt _08128C6C - cmp r0, #0 - beq _08128C76 - b _08128CAA - .align 2, 0 -_08128C68: .4byte gUnknown_3005B68 -_08128C6C: - cmp r0, #2 - beq _08128C88 - cmp r0, #3 - beq _08128C94 - b _08128CAA -_08128C76: - bl HideSecretBaseDecorationSprites - b _08128C8C -_08128C7C: - ldr r0, _08128C84 - bl ScriptContext1_SetupScript - b _08128C8C - .align 2, 0 -_08128C84: .4byte gUnknown_8245DBB -_08128C88: - bl sub_080987DC -_08128C8C: - ldrh r0, [r4, #4] - adds r0, #1 - strh r0, [r4, #4] - b _08128CAA -_08128C94: - bl IsWeatherNotFadingIn - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08128CAA - adds r0, r6, #0 - subs r0, #8 - adds r0, r5, r0 - ldr r1, _08128CB0 - str r1, [r0] -_08128CAA: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08128CB0: .4byte HandleDecorationItemsMenuInput - thumb_func_end sub_08128C44 - - thumb_func_start sub_08128CB4 -sub_08128CB4: @ 0x08128CB4 - push {r4, lr} - bl sub_080987DC - bl pal_fill_black - ldr r0, _08128CE8 - movs r1, #8 - bl CreateTask - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl sub_08127530 - ldr r1, _08128CEC - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #0xc] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08128CE8: .4byte sub_08128C44 -_08128CEC: .4byte gUnknown_3005B60 - thumb_func_end sub_08128CB4 - - thumb_func_start sub_08128CF0 -sub_08128CF0: @ 0x08128CF0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _08128D20 - adds r2, r1, r0 - ldr r0, _08128D24 - ldrb r1, [r0] - adds r3, r0, #0 - cmp r1, #1 - bne _08128D28 - movs r1, #2 - ldrsh r0, [r2, r1] - movs r4, #0xc - ldrsh r1, [r2, r4] - subs r0, r0, r1 - subs r0, #6 - cmp r0, #0 - bge _08128D28 - ldrh r0, [r2, #2] - adds r0, #1 - b _08128D42 - .align 2, 0 -_08128D20: .4byte gUnknown_3005B68 -_08128D24: .4byte gUnknown_203A706 -_08128D28: - ldrb r0, [r3] - cmp r0, #2 - bne _08128D4C - movs r0, #2 - ldrsh r1, [r2, r0] - subs r1, #7 - ldr r0, _08128D48 - ldr r0, [r0] - ldr r0, [r0, #4] - cmp r1, r0 - blt _08128D4C - ldrh r0, [r2, #2] - subs r0, #1 -_08128D42: - strh r0, [r2, #2] - movs r0, #0 - b _08128D8E - .align 2, 0 -_08128D48: .4byte gUnknown_2036FB8 -_08128D4C: - ldrb r0, [r3] - cmp r0, #3 - bne _08128D62 - movs r1, #0 - ldrsh r0, [r2, r1] - subs r0, #7 - cmp r0, #0 - bge _08128D62 - ldrh r0, [r2] - adds r0, #1 - b _08128D82 -_08128D62: - ldrb r0, [r3] - cmp r0, #4 - bne _08128D8C - movs r3, #0 - ldrsh r1, [r2, r3] - movs r4, #0xa - ldrsh r0, [r2, r4] - adds r1, r1, r0 - subs r1, #8 - ldr r0, _08128D88 - ldr r0, [r0] - ldr r0, [r0] - cmp r1, r0 - blt _08128D8C - ldrh r0, [r2] - subs r0, #1 -_08128D82: - strh r0, [r2] - movs r0, #0 - b _08128D8E - .align 2, 0 -_08128D88: .4byte gUnknown_2036FB8 -_08128D8C: - movs r0, #1 -_08128D8E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_08128CF0 - - thumb_func_start sub_08128D94 -sub_08128D94: @ 0x08128D94 - push {lr} - ldr r0, _08128DB4 - ldrh r0, [r0, #0x2c] - movs r1, #0xf0 - ands r1, r0 - cmp r1, #0x40 - beq _08128DB8 - cmp r1, #0x80 - beq _08128DB8 - cmp r1, #0x20 - beq _08128DB8 - cmp r1, #0x10 - beq _08128DB8 - movs r0, #0 - b _08128DBA - .align 2, 0 -_08128DB4: .4byte gUnknown_3002360 -_08128DB8: - movs r0, #1 -_08128DBA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08128D94 - - thumb_func_start sub_08128DC0 -sub_08128DC0: @ 0x08128DC0 - push {r4, lr} - ldr r1, _08128DEC - movs r0, #0 - strb r0, [r1] - ldr r4, _08128DF0 - ldr r3, _08128DF4 - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r2, #0 - strh r2, [r0, #0x32] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - strh r2, [r0, #0x34] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08128DEC: .4byte gUnknown_203A706 -_08128DF0: .4byte gUnknown_20205AC -_08128DF4: .4byte gUnknown_203A704 - thumb_func_end sub_08128DC0 - - thumb_func_start sub_08128DF8 -sub_08128DF8: @ 0x08128DF8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - mov r8, r2 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _08128E38 - adds r4, r0, r1 - ldr r5, _08128E3C - ldr r3, _08128E40 - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0x36 - ldrsh r6, [r0, r1] - cmp r6, #0 - beq _08128E26 - b _08128F46 -_08128E26: - movs r1, #0x14 - ldrsh r0, [r4, r1] - cmp r0, #1 - bne _08128E48 - ldr r0, _08128E44 - movs r3, #0x18 - ldrsh r1, [r4, r3] - lsls r1, r1, #3 - b _08128E56 - .align 2, 0 -_08128E38: .4byte gUnknown_3005B68 -_08128E3C: .4byte gUnknown_20205AC -_08128E40: .4byte gUnknown_203A704 -_08128E44: .4byte gUnknown_85821B8 -_08128E48: - cmp r0, #2 - bne _08128E68 - ldr r0, _08128E64 - movs r3, #0x18 - ldrsh r1, [r4, r3] - lsls r1, r1, #3 - adds r0, #4 -_08128E56: - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _08128F9A - .align 2, 0 -_08128E64: .4byte gUnknown_85821B8 -_08128E68: - ldr r2, _08128FA4 - ldrh r1, [r2, #0x2c] - movs r7, #0xf0 - adds r0, r7, #0 - ands r0, r1 - cmp r0, #0x40 - bne _08128E9C - ldr r1, _08128FA8 - movs r0, #1 - strb r0, [r1] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r6, [r0, #0x32] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _08128FAC - strh r1, [r0, #0x34] - ldrh r0, [r4, #2] - subs r0, #1 - strh r0, [r4, #2] -_08128E9C: - ldrh r1, [r2, #0x2c] - adds r0, r7, #0 - ands r0, r1 - cmp r0, #0x80 - bne _08128ECC - ldr r1, _08128FA8 - movs r0, #2 - strb r0, [r1] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r6, [r0, #0x32] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #2 - strh r1, [r0, #0x34] - ldrh r0, [r4, #2] - adds r0, #1 - strh r0, [r4, #2] -_08128ECC: - ldrh r1, [r2, #0x2c] - adds r0, r7, #0 - ands r0, r1 - cmp r0, #0x20 - bne _08128EFC - ldr r1, _08128FA8 - movs r0, #3 - strb r0, [r1] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _08128FAC - strh r1, [r0, #0x32] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r6, [r0, #0x34] - ldrh r0, [r4] - subs r0, #1 - strh r0, [r4] -_08128EFC: - ldrh r1, [r2, #0x2c] - adds r0, r7, #0 - ands r0, r1 - cmp r0, #0x10 - bne _08128F2C - ldr r1, _08128FA8 - movs r0, #4 - strb r0, [r1] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #2 - strh r1, [r0, #0x32] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r6, [r0, #0x34] - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] -_08128F2C: - bl sub_08128D94 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08128F42 - mov r0, r8 - bl sub_08128CF0 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08128F46 -_08128F42: - bl sub_08128DC0 -_08128F46: - ldr r0, _08128FA8 - ldrb r0, [r0] - cmp r0, #0 - beq _08128F74 - ldr r3, _08128FB0 - ldr r2, _08128FB4 - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r0, #0x36] - adds r1, #1 - strh r1, [r0, #0x36] - ldrb r0, [r2] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrh r2, [r1, #0x36] - movs r0, #7 - ands r0, r2 - strh r0, [r1, #0x36] -_08128F74: - movs r1, #0x14 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08128F9A - ldr r3, _08128FA4 - ldrh r1, [r3, #0x2e] - movs r2, #1 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _08128F8C - strh r2, [r4, #0x14] -_08128F8C: - ldrh r1, [r3, #0x2e] - movs r2, #2 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _08128F9A - strh r2, [r4, #0x14] -_08128F9A: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08128FA4: .4byte gUnknown_3002360 -_08128FA8: .4byte gUnknown_203A706 -_08128FAC: .4byte 0x0000FFFE -_08128FB0: .4byte gUnknown_20205AC -_08128FB4: .4byte gUnknown_203A704 - thumb_func_end sub_08128DF8 - - thumb_func_start sub_08128FB8 -sub_08128FB8: @ 0x08128FB8 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - movs r1, #1 - bl sub_08197028 - ldr r2, _08128FF0 - ldr r0, _08128FF4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r2, #0 - strh r2, [r0, #0x3c] - ldr r1, _08128FF8 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r2, [r0, #0x1c] - ldr r1, _08128FFC - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08128FF0: .4byte gUnknown_20205AC -_08128FF4: .4byte gUnknown_203A704 -_08128FF8: .4byte gUnknown_3005B60 -_08128FFC: .4byte sub_08128DF8 - thumb_func_end sub_08128FB8 - - thumb_func_start sub_08129000 -sub_08129000: @ 0x08129000 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _08129024 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0812901A - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08129020 -_0812901A: - adds r0, r2, #0 - bl sub_08128FB8 -_08129020: - pop {r0} - bx r0 - .align 2, 0 -_08129024: .4byte gUnknown_3002360 - thumb_func_end sub_08129000 - - thumb_func_start sub_08129028 -sub_08129028: @ 0x08129028 - push {lr} - sub sp, #4 - adds r1, r0, #0 - mov r2, sp - movs r0, #0 - strh r0, [r2] - ldr r2, _08129044 - mov r0, sp - bl CpuSet - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_08129044: .4byte 0x01000452 - thumb_func_end sub_08129028 - - thumb_func_start sub_08129048 -sub_08129048: @ 0x08129048 - push {lr} - adds r2, r0, #0 - lsls r1, r1, #0x10 - ldr r0, _08129064 - ldr r0, [r0] - lsrs r1, r1, #0xb - ldr r0, [r0, #8] - adds r0, r0, r1 - adds r1, r2, #0 - movs r2, #8 - bl CpuFastSet - pop {r0} - bx r0 - .align 2, 0 -_08129064: .4byte gUnknown_83B8094 - thumb_func_end sub_08129048 - - thumb_func_start sub_08129068 -sub_08129068: @ 0x08129068 - push {r4, r5, r6, r7, lr} - sub sp, #0x20 - adds r7, r0, #0 - lsls r1, r1, #0x10 - lsrs r2, r1, #0x10 - lsrs r4, r1, #0x1a - adds r5, r4, #0 - cmp r2, #0 - beq _0812907E - ldr r0, _081290A0 - ands r2, r0 -_0812907E: - ldr r0, _081290A4 - ldr r0, [r0] - lsls r1, r2, #5 - ldr r0, [r0, #4] - adds r0, r0, r1 - mov r1, sp - movs r2, #8 - bl CpuFastSet - cmp r4, #1 - beq _081290BE - cmp r4, #1 - bgt _081290A8 - cmp r4, #0 - beq _081290B2 - b _0812917A - .align 2, 0 -_081290A0: .4byte 0x000003FF -_081290A4: .4byte gUnknown_83B8094 -_081290A8: - cmp r5, #2 - beq _0812911E - cmp r5, #3 - beq _08129156 - b _0812917A -_081290B2: - mov r0, sp - adds r1, r7, #0 - movs r2, #8 - bl CpuFastSet - b _0812917A -_081290BE: - movs r5, #0 - movs r6, #0xf -_081290C2: - lsls r4, r5, #2 - adds r4, r4, r7 - adds r5, #1 - lsls r3, r5, #2 - subs r0, r3, #1 - add r0, sp - ldrb r2, [r0] - lsrs r1, r2, #4 - adds r0, r6, #0 - ands r0, r2 - lsls r0, r0, #4 - adds r1, r1, r0 - strb r1, [r4] - subs r0, r3, #2 - add r0, sp - ldrb r2, [r0] - lsrs r1, r2, #4 - adds r0, r6, #0 - ands r0, r2 - lsls r0, r0, #4 - adds r1, r1, r0 - strb r1, [r4, #1] - subs r0, r3, #3 - add r0, sp - ldrb r2, [r0] - lsrs r1, r2, #4 - adds r0, r6, #0 - ands r0, r2 - lsls r0, r0, #4 - adds r1, r1, r0 - strb r1, [r4, #2] - subs r3, #4 - mov r1, sp - adds r0, r1, r3 - ldrb r2, [r0] - lsrs r1, r2, #4 - adds r0, r6, #0 - ands r0, r2 - lsls r0, r0, #4 - adds r1, r1, r0 - strb r1, [r4, #3] - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - cmp r5, #7 - bls _081290C2 - b _0812917A -_0812911E: - movs r5, #0 - movs r3, #7 -_08129122: - lsls r2, r5, #2 - adds r2, r2, r7 - subs r1, r3, r5 - lsls r1, r1, #2 - mov r4, sp - adds r0, r4, r1 - ldrb r0, [r0] - strb r0, [r2] - adds r0, r1, #1 - add r0, sp - ldrb r0, [r0] - strb r0, [r2, #1] - adds r0, r1, #2 - add r0, sp - ldrb r0, [r0] - strb r0, [r2, #2] - adds r1, #3 - adds r0, r4, r1 - ldrb r0, [r0] - strb r0, [r2, #3] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #7 - bls _08129122 - b _0812917A -_08129156: - movs r5, #0 - movs r4, #0x1f - movs r6, #0xf -_0812915C: - 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, r0, #4 - adds r1, r1, r0 - strb r1, [r3] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0x1f - bls _0812915C -_0812917A: - add sp, #0x20 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08129068 - - thumb_func_start sub_08129184 -sub_08129184: @ 0x08129184 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 -_0812918A: - lsls r0, r4, #5 - adds r0, #0x84 - adds r0, r5, r0 - lsls r2, r4, #1 - adds r1, r5, #4 - adds r1, r1, r2 - ldrh r1, [r1] - bl sub_08129068 - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x3f - bls _0812918A - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_08129184 - - thumb_func_start sub_081291AC -sub_081291AC: @ 0x081291AC - lsls r0, r0, #0x10 - ldr r1, _081291C0 - ldr r1, [r1] - ldr r1, [r1, #0xc] - lsrs r0, r0, #0xf - adds r0, r0, r1 - ldrh r1, [r0] - ldr r0, _081291C4 - ands r0, r1 - bx lr - .align 2, 0 -_081291C0: .4byte gUnknown_83B8098 -_081291C4: .4byte 0x00000FFF - thumb_func_end sub_081291AC - - thumb_func_start sub_081291C8 -sub_081291C8: @ 0x081291C8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r0 - ldr r0, [r0] - ldrb r0, [r0, #0xd] - movs r6, #0 - ldr r1, _08129238 - lsls r5, r0, #4 - adds r0, r5, r1 - ldrb r0, [r0, #0xc] - cmp r6, r0 - bhs _0812922C - adds r7, r1, #0 -_081291E4: - mov r4, r8 - ldm r4!, {r1} - adds r0, r7, #4 - adds r0, r5, r0 - ldr r0, [r0] - adds r0, r0, r6 - ldrb r0, [r0] - ldr r1, [r1, #0x18] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - adds r1, r7, #0 - adds r1, #8 - adds r1, r5, r1 - ldr r1, [r1] - adds r1, r1, r6 - lsls r0, r0, #3 - ldrb r1, [r1] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_081291AC - adds r2, r5, r7 - ldr r1, [r2] - adds r1, r1, r6 - ldrb r1, [r1] - lsls r1, r1, #1 - adds r4, r4, r1 - strh r0, [r4] - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldrb r2, [r2, #0xc] - cmp r6, r2 - blo _081291E4 -_0812922C: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08129238: .4byte gUnknown_8582094 - thumb_func_end sub_081291C8 - - thumb_func_start SetDecorSelectionBoxOamAttributes -SetDecorSelectionBoxOamAttributes: @ 0x0812923C - push {r4, r5, lr} - lsls r0, r0, #0x18 - ldr r3, _081292A0 - movs r1, #0 - strb r1, [r3] - ldrb r2, [r3, #1] - subs r1, #4 - ands r1, r2 - movs r5, #0xd - rsbs r5, r5, #0 - ands r1, r5 - movs r2, #0x11 - rsbs r2, r2, #0 - ands r1, r2 - subs r2, #0x10 - ands r1, r2 - strb r1, [r3, #1] - ldr r1, _081292A4 - lsrs r0, r0, #0x16 - adds r0, r0, r1 - ldrb r1, [r0] - movs r4, #0x3f - lsls r1, r1, #6 - strb r1, [r3, #1] - ldrh r2, [r3, #2] - ldr r1, _081292A8 - ands r1, r2 - strh r1, [r3, #2] - ldrb r2, [r3, #3] - movs r1, #0x3f - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r3, #3] - ldrb r0, [r0, #1] - lsls r0, r0, #6 - ands r4, r1 - orrs r4, r0 - strb r4, [r3, #3] - ldrh r1, [r3, #4] - ldr r0, _081292AC - ands r0, r1 - strh r0, [r3, #4] - ldrb r0, [r3, #5] - ands r5, r0 - movs r0, #0xf - ands r5, r0 - strb r5, [r3, #5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081292A0: .4byte gUnknown_203A708 -_081292A4: .4byte gUnknown_8582134 -_081292A8: .4byte 0xFFFFFE00 -_081292AC: .4byte 0xFFFFFC00 - thumb_func_end SetDecorSelectionBoxOamAttributes - - thumb_func_start sub_081292B0 -sub_081292B0: @ 0x081292B0 - 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, _081292C4 - str r1, [r0, #0x1c] - bx lr - .align 2, 0 -_081292C4: .4byte sub_081292C8 - thumb_func_end sub_081292B0 - - thumb_func_start sub_081292C8 -sub_081292C8: @ 0x081292C8 - push {lr} - adds r2, r0, #0 - movs r1, #0x3c - ldrsh r0, [r2, r1] - cmp r0, #0 - bne _08129302 - movs r1, #0x3a - ldrsh r0, [r2, r1] - cmp r0, #0xe - bgt _081292EA - adds r3, r2, #0 - adds r3, #0x3e - ldrb r1, [r3] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - b _081292F4 -_081292EA: - adds r3, r2, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r1, #4 - orrs r0, r1 -_081292F4: - strb r0, [r3] - ldrh r0, [r2, #0x3a] - adds r0, #1 - movs r1, #0x1f - ands r0, r1 - strh r0, [r2, #0x3a] - b _0812930E -_08129302: - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_0812930E: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081292C8 - - thumb_func_start sub_08129314 -sub_08129314: @ 0x08129314 - push {r4, r5, lr} - sub sp, #4 - adds r5, r0, #0 - lsls r4, r1, #0x18 - lsrs r4, r4, #0x18 - bl sub_08129028 - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - ldr r1, _08129380 - adds r1, r0, r1 - str r1, [r5] - ldrb r0, [r1, #0xc] - cmp r0, #4 - beq _08129398 - ldr r0, _08129384 - bl FreeSpritePaletteByTag - adds r0, r5, #0 - bl sub_081291C8 - ldr r0, [r5] - ldrb r0, [r0, #0xd] - bl SetDecorSelectionBoxOamAttributes - adds r0, r5, #0 - bl sub_08129184 - ldr r1, _08129388 - adds r0, r5, r1 - ldr r1, _0812938C - ldr r2, [r1] - ldr r1, [r5] - ldr r1, [r1, #0x18] - ldrh r1, [r1] - ldr r2, [r2, #0xc] - lsls r1, r1, #4 - adds r1, r1, r2 - ldrh r1, [r1, #0xe] - lsrs r1, r1, #0xc - bl sub_08129048 - ldr r0, _08129390 - bl LoadSpritePalette - ldr r0, _08129394 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl CreateSprite - b _081293AA - .align 2, 0 -_08129380: .4byte gUnknown_8580CD0 -_08129384: .4byte 0x00000BE5 -_08129388: .4byte 0x00000884 -_0812938C: .4byte gUnknown_83B8098 -_08129390: .4byte gUnknown_85821A0 -_08129394: .4byte gUnknown_8582170 -_08129398: - ldr r0, [r1, #0x18] - ldrh r0, [r0] - ldr r1, _081293B8 - movs r2, #1 - str r2, [sp] - movs r2, #0 - movs r3, #0 - bl AddPseudoEventObject -_081293AA: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081293B8: .4byte sub_08007140 - thumb_func_end sub_08129314 - - thumb_func_start AddDecorationIconObjectFromIconTable -AddDecorationIconObjectFromIconTable: @ 0x081293BC - push {r4, r5, r6, r7, lr} - sub sp, #0x10 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - bl AllocItemIconTemporaryBuffers - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08129474 - adds r0, r5, #0 - movs r1, #0 - bl GetDecorationIconPicOrPalette - ldr r4, _08129460 - ldr r1, [r4] - bl sub_08034370 - ldr r0, [r4] - ldr r4, _08129464 - ldr r1, [r4] - bl CopyItemIconPicTo4x4Buffer - ldr r0, [r4] - str r0, [sp] - ldr r4, _08129468 - ldr r0, [sp, #4] - ands r0, r4 - movs r1, #0x80 - lsls r1, r1, #2 - orrs r0, r1 - lsls r2, r7, #0x10 - ldr r1, _0812946C - ands r0, r1 - orrs r0, r2 - str r0, [sp, #4] - mov r0, sp - bl LoadSpriteSheet - adds r0, r5, #0 - movs r1, #1 - bl GetDecorationIconPicOrPalette - str r0, [sp, #8] - add r0, sp, #8 - ldr r1, [r0, #4] - ands r1, r4 - orrs r1, r6 - str r1, [r0, #4] - bl LoadCompressedSpritePalette - movs r0, #0x18 - bl sub_08000BC8 - adds r5, r0, #0 - adds r1, r5, #0 - ldr r0, _08129470 - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - strh r7, [r5] - strh r6, [r5, #2] - adds r0, r5, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl CreateSprite - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl FreeItemIconTemporaryBuffers - adds r0, r5, #0 - bl Free - adds r0, r4, #0 - b _08129476 - .align 2, 0 -_08129460: .4byte gUnknown_203CB88 -_08129464: .4byte gUnknown_203CB8C -_08129468: .4byte 0xFFFF0000 -_0812946C: .4byte 0x0000FFFF -_08129470: .4byte gUnknown_85E08AC -_08129474: - movs r0, #0x40 -_08129476: - add sp, #0x10 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end AddDecorationIconObjectFromIconTable - - thumb_func_start GetDecorationIconPicOrPalette -GetDecorationIconPicOrPalette: @ 0x08129480 - push {lr} - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r0, r1, #0x18 - cmp r3, #0x78 - bls _08129490 - movs r3, #0 -_08129490: - ldr r2, _081294A0 - lsls r0, r0, #2 - lsls r1, r3, #3 - adds r0, r0, r1 - adds r0, r0, r2 - ldr r0, [r0] - pop {r1} - bx r1 - .align 2, 0 -_081294A0: .4byte gUnknown_8581ACC - thumb_func_end GetDecorationIconPicOrPalette - - thumb_func_start sub_081294A4 -sub_081294A4: @ 0x081294A4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x14 - adds r4, r2, #0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r6, _08129570 - adds r0, r6, #0 - bl sub_08129028 - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - ldr r1, _08129574 - adds r1, r0, r1 - str r1, [r6] - ldrb r0, [r1, #0xc] - cmp r0, #4 - beq _0812958C - adds r0, r6, #0 - bl sub_081291C8 - ldr r0, [r6] - ldrb r0, [r0, #0xd] - bl SetDecorSelectionBoxOamAttributes - adds r0, r6, #0 - bl sub_08129184 - ldr r0, _08129578 - adds r5, r6, r0 - ldr r0, _0812957C - ldr r1, [r0] - ldr r0, [r6] - ldr r0, [r0, #0x18] - ldrh r0, [r0] - ldr r1, [r1, #0xc] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrh r1, [r0, #0xe] - lsrs r1, r1, #0xc - adds r0, r5, #0 - bl sub_08129048 - adds r0, r6, #0 - adds r0, #0x84 - str r0, [sp, #4] - ldr r1, _08129580 - ldr r0, [r6] - ldrb r0, [r0, #0xd] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #0x15 - ldr r4, _08129584 - mov r2, r8 - lsls r1, r2, #0x10 - lsrs r0, r0, #0x10 - orrs r0, r1 - str r0, [sp, #8] - add r0, sp, #4 - bl LoadSpriteSheet - str r5, [sp, #0xc] - add r0, sp, #0xc - ldr r1, [r0, #4] - ands r1, r4 - orrs r1, r7 - str r1, [r0, #4] - bl LoadSpritePalette - movs r0, #0x18 - bl sub_08000BC8 - adds r4, r0, #0 - adds r1, r4, #0 - ldr r0, _08129588 - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} - mov r3, r8 - strh r3, [r4] - strh r7, [r4, #2] - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r4, #0 - bl Free - b _081295A2 - .align 2, 0 -_08129570: .4byte gUnknown_2039E5C -_08129574: .4byte gUnknown_8580CD0 -_08129578: .4byte 0x00000884 -_0812957C: .4byte gUnknown_83B8098 -_08129580: .4byte gUnknown_85821D8 -_08129584: .4byte 0xFFFF0000 -_08129588: .4byte gUnknown_8582188 -_0812958C: - ldr r0, [r1, #0x18] - ldrh r0, [r0] - ldr r1, _081295B0 - movs r2, #1 - str r2, [sp] - movs r2, #0 - movs r3, #0 - bl AddPseudoEventObject - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_081295A2: - adds r0, r5, #0 - add sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081295B0: .4byte sub_08007140 - thumb_func_end sub_081294A4 - - thumb_func_start AddDecorationIconObject -AddDecorationIconObject: @ 0x081295B4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - ldr r4, [sp, #0x24] - ldr r5, [sp, #0x28] - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - mov ip, r6 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r8, r1 - mov sb, r8 - lsls r2, r2, #0x10 - lsrs r7, r2, #0x10 - mov sl, r7 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r3, [sp] - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r3, r4, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - adds r2, r5, #0 - cmp r6, #0x78 - bls _0812961C - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0 - bl AddDecorationIconObjectFromIconTable - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x40 - beq _0812967E - ldr r2, _08129618 - lsls r3, r4, #4 - adds r1, r3, r4 - lsls r1, r1, #2 - adds r1, r1, r2 - mov r5, r8 - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - adds r0, #4 - strh r0, [r1, #0x24] - lsls r0, r7, #0x10 - b _0812969A - .align 2, 0 -_08129618: .4byte gUnknown_20205AC -_0812961C: - ldr r0, _08129660 - lsls r1, r6, #3 - adds r1, r1, r0 - ldr r0, [r1] - cmp r0, #0 - bne _0812966C - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_081294A4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x40 - beq _0812967E - ldr r1, _08129664 - lsls r2, r4, #4 - adds r0, r2, r4 - lsls r0, r0, #2 - adds r5, r0, r1 - mov r0, r8 - strh r0, [r5, #0x24] - adds r0, r6, #0 - subs r0, #0x2a - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _08129668 - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - subs r0, #4 - strh r0, [r5, #0x26] - b _081296A4 - .align 2, 0 -_08129660: .4byte gUnknown_8581ACC -_08129664: .4byte gUnknown_20205AC -_08129668: - strh r7, [r5, #0x26] - b _081296A4 -_0812966C: - adds r0, r3, #0 - adds r1, r2, #0 - mov r2, ip - bl AddDecorationIconObjectFromIconTable - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x40 - bne _08129682 -_0812967E: - movs r0, #0x40 - b _081296C0 -_08129682: - ldr r2, _081296D0 - lsls r3, r4, #4 - adds r1, r3, r4 - lsls r1, r1, #2 - adds r1, r1, r2 - mov r5, sb - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - adds r0, #4 - strh r0, [r1, #0x24] - mov r5, sl - lsls r0, r5, #0x10 -_0812969A: - asrs r0, r0, #0x10 - adds r0, #4 - strh r0, [r1, #0x26] - adds r1, r2, #0 - adds r2, r3, #0 -_081296A4: - adds r2, r2, r4 - lsls r2, r2, #2 - adds r2, r2, r1 - movs r0, #3 - ldr r1, [sp] - ands r1, r0 - lsls r1, r1, #2 - ldrb r3, [r2, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #5] - adds r0, r4, #0 -_081296C0: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081296D0: .4byte gUnknown_20205AC - thumb_func_end AddDecorationIconObject - - thumb_func_start sub_081296D4 -sub_081296D4: @ 0x081296D4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _081296EC - ldr r1, [r3] - adds r1, r1, r0 - movs r2, #0 - strb r2, [r1] - ldr r1, [r3, #4] - adds r1, r1, r0 - strb r2, [r1] - bx lr - .align 2, 0 -_081296EC: .4byte gUnknown_2039E48 - thumb_func_end sub_081296D4 - - thumb_func_start sub_081296F0 -sub_081296F0: @ 0x081296F0 - push {r4, r5, r6, lr} - ldr r6, _08129710 - movs r0, #0 - strh r0, [r6] - ldr r2, _08129714 - strh r0, [r2] - ldr r4, _08129718 - ldr r1, _0812971C - ldrh r0, [r4] - ldrb r1, [r1] - cmp r0, r1 - bne _0812972C - movs r0, #1 - strh r0, [r2] - b _08129782 - .align 2, 0 -_08129710: .4byte gUnknown_2037282 -_08129714: .4byte gUnknown_2037290 -_08129718: .4byte gUnknown_2037280 -_0812971C: .4byte gUnknown_203A790 -_08129720: - ldr r1, _08129728 - ldrb r0, [r2] - strh r0, [r1] - b _08129782 - .align 2, 0 -_08129728: .4byte gUnknown_2037284 -_0812972C: - ldr r3, _08129788 - ldr r2, _0812978C - ldr r1, _08129790 - ldrh r0, [r4] - lsls r0, r0, #3 - adds r4, r0, r1 - ldrb r1, [r4] - ldr r0, [r2] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r0, [r0, #0xc] - cmp r0, #4 - bne _08129782 - ldrh r0, [r4, #4] - strh r0, [r6] - ldrb r0, [r4] - bl sub_081296D4 - movs r1, #0 - ldr r0, _08129794 - ldr r0, [r0, #4] - ldrb r2, [r0] - cmp r1, r2 - bhs _08129782 - ldr r5, [r0, #4] - ldrh r4, [r6] - adds r3, r2, #0 -_0812976A: - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r2, r0, r5 - ldrh r0, [r2, #0x14] - cmp r0, r4 - beq _08129720 - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, r3 - blo _0812976A -_08129782: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08129788: .4byte gUnknown_8580CD0 -_0812978C: .4byte gUnknown_2039E48 -_08129790: .4byte gUnknown_203A710 -_08129794: .4byte gUnknown_2036FB8 - thumb_func_end sub_081296F0 - - thumb_func_start sub_08129798 -sub_08129798: @ 0x08129798 - push {r4, r5, r6, lr} - movs r2, #0 - ldr r0, _081297C4 - ldr r0, [r0, #4] - ldrb r1, [r0] - cmp r2, r1 - bhs _081297DC - adds r3, r0, #0 - ldr r5, [r3, #4] - ldr r0, _081297C8 - ldrh r4, [r0] - ldr r6, _081297CC -_081297B0: - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r1, r0, r5 - ldrh r0, [r1, #0x14] - cmp r0, r4 - bne _081297D0 - ldrb r0, [r1] - strh r0, [r6] - b _081297DC - .align 2, 0 -_081297C4: .4byte gUnknown_2036FB8 -_081297C8: .4byte gUnknown_2037280 -_081297CC: .4byte gUnknown_2037282 -_081297D0: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldrb r0, [r3] - cmp r2, r0 - blo _081297B0 -_081297DC: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08129798 - - thumb_func_start sub_081297E4 -sub_081297E4: @ 0x081297E4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - movs r6, #0 - b _081298AE -_081297F4: - ldr r3, _081298C8 - lsls r5, r6, #3 - adds r4, r5, r3 - ldrb r2, [r4] - ldr r1, _081298CC - ldr r0, [r1] - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r7, _081298D0 - adds r0, r0, r7 - ldrb r1, [r0, #0xc] - ldr r7, _081298CC - ldr r0, [r7, #4] - adds r0, r0, r2 - ldrb r0, [r0] - lsrs r2, r0, #4 - mov r8, r2 - movs r7, #0xf - adds r2, r7, #0 - ands r2, r0 - str r2, [sp] - adds r7, r5, #0 - adds r6, #1 - str r6, [sp, #4] - cmp r1, #4 - beq _081298A8 - movs r6, #0 - ldrb r4, [r4, #2] - cmp r6, r4 - bhs _0812989E -_08129836: - movs r4, #0 - adds r0, r5, r3 - adds r3, r6, #1 - mov sl, r3 - ldrb r0, [r0, #1] - cmp r4, r0 - bhs _0812988C - ldr r5, _081298C8 - adds r5, r5, r7 - mov sb, r5 - subs r0, r6, #7 - str r0, [sp, #8] -_0812984E: - adds r0, r4, #7 - add r0, r8 - ldr r1, _081298D4 - ldr r3, [r1] - ldr r1, [sp] - subs r2, r1, r6 - ldr r1, [r3] - muls r2, r1, r2 - mov r5, r8 - adds r1, r5, r4 - adds r1, r1, r2 - ldr r2, [r3, #0xc] - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r1, [r1] - movs r3, #0xc0 - lsls r3, r3, #6 - adds r2, r3, #0 - orrs r2, r1 - ldr r5, [sp] - ldr r3, [sp, #8] - subs r1, r5, r3 - bl MapGridSetMetatileEntryAt - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - mov r5, sb - ldrb r5, [r5, #1] - cmp r4, r5 - blo _0812984E -_0812988C: - mov r1, sl - lsls r0, r1, #0x18 - lsrs r6, r0, #0x18 - ldr r3, _081298C8 - adds r5, r7, #0 - adds r0, r7, r3 - ldrb r0, [r0, #2] - cmp r6, r0 - blo _08129836 -_0812989E: - ldr r2, _081298C8 - adds r0, r7, r2 - ldrb r0, [r0] - bl sub_081296D4 -_081298A8: - ldr r3, [sp, #4] - lsls r0, r3, #0x18 - lsrs r6, r0, #0x18 -_081298AE: - ldr r0, _081298D8 - ldrb r0, [r0] - cmp r6, r0 - blo _081297F4 - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081298C8: .4byte gUnknown_203A710 -_081298CC: .4byte gUnknown_2039E48 -_081298D0: .4byte gUnknown_8580CD0 -_081298D4: .4byte gUnknown_2036FB8 -_081298D8: .4byte gUnknown_203A790 - thumb_func_end sub_081297E4 - - thumb_func_start sub_081298DC -sub_081298DC: @ 0x081298DC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _08129900 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #0xc - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _08129918 - cmp r0, #1 - bgt _08129904 - cmp r0, #0 - beq _0812990E - b _08129984 - .align 2, 0 -_08129900: .4byte gUnknown_3005B60 -_08129904: - cmp r0, #2 - beq _08129944 - cmp r0, #3 - beq _08129958 - b _08129984 -_0812990E: - bl sub_081297E4 - movs r0, #1 - strh r0, [r4, #0xc] - b _08129984 -_08129918: - ldr r0, _0812993C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08129984 - bl DrawWholeMapView - ldr r0, _08129940 - bl ScriptContext1_SetupScript - movs r0, #0 - movs r1, #1 - bl sub_08197028 - movs r0, #2 - strh r0, [r4, #0xc] - b _08129984 - .align 2, 0 -_0812993C: .4byte gUnknown_2037C74 -_08129940: .4byte gUnknown_8245DDD -_08129944: - bl sub_080987DC - adds r0, r5, #0 - bl IdentifyOwnedDecorationsCurrentlyInUseInternal - bl pal_fill_black - movs r0, #3 - strh r0, [r4, #0xc] - b _08129984 -_08129958: - bl IsWeatherNotFadingIn - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08129984 - ldr r4, _0812998C - ldr r1, _08129990 - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r2, _08129994 - adds r0, r5, #0 - adds r1, r4, #0 - bl DisplayItemMessageOnField - ldr r0, _08129998 - ldrb r0, [r0, #0x14] - cmp r0, #0x56 - bne _08129984 - bl TV_PutSecretBaseVisitOnTheAir -_08129984: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0812998C: .4byte gUnknown_2021C7C -_08129990: .4byte gUnknown_85CA867 -_08129994: .4byte sub_08129D54 -_08129998: .4byte gUnknown_2036FB8 - thumb_func_end sub_081298DC - - thumb_func_start sub_0812999C -sub_0812999C: @ 0x0812999C - push {lr} - movs r1, #0 - ldr r0, _081299B8 - ldrb r2, [r0, #8] - cmp r1, r2 - bhs _081299C6 - ldr r3, [r0] -_081299AA: - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _081299BC - movs r0, #1 - b _081299C8 - .align 2, 0 -_081299B8: .4byte gUnknown_2039E48 -_081299BC: - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, r2 - blo _081299AA -_081299C6: - movs r0, #0 -_081299C8: - pop {r1} - bx r1 - thumb_func_end sub_0812999C - - thumb_func_start SetUpPuttingAwayDecorationPlayerAvatar -SetUpPuttingAwayDecorationPlayerAvatar: @ 0x081299CC - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #4 - bl GetPlayerFacingDirection - ldr r3, _08129A14 - ldr r2, _08129A18 - ldr r4, _08129A1C - ldr r1, [r4, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0, #0x2e] - strb r0, [r3] - bl CB2_PokeblockMenu - ldr r0, _08129A20 - movs r1, #0x78 - movs r2, #0x50 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [r4, #4] - ldr r0, _08129A24 - ldr r0, [r0] - ldrb r0, [r0, #8] - cmp r0, #0 - bne _08129A2C - ldr r1, _08129A28 - str r0, [sp] - movs r0, #0xc1 - b _08129A34 - .align 2, 0 -_08129A14: .4byte gUnknown_203A704 -_08129A18: .4byte gUnknown_20205AC -_08129A1C: .4byte gUnknown_3005B30 -_08129A20: .4byte gUnknown_85822E8 -_08129A24: .4byte gUnknown_3005AF0 -_08129A28: .4byte sub_08007140 -_08129A2C: - ldr r1, _08129A98 - movs r0, #0 - str r0, [sp] - movs r0, #0xc2 -_08129A34: - movs r2, #0x88 - movs r3, #0x48 - bl AddPseudoEventObject - ldr r1, _08129A9C - strb r0, [r1] - ldr r6, _08129AA0 - ldr r0, _08129A9C - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrb r2, [r1, #5] - movs r4, #0xd - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r2 - movs r2, #4 - mov r8, r2 - mov r2, r8 - orrs r0, r2 - strb r0, [r1, #5] - ldr r5, _08129AA4 - ldrb r1, [r5] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - bl DestroySprite - ldr r0, _08129AA8 - ldr r0, [r0, #4] - strb r0, [r5] - ldrb r1, [r5] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r1, [r0, #5] - ands r4, r1 - mov r1, r8 - orrs r4, r1 - strb r4, [r0, #5] - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08129A98: .4byte sub_08007140 -_08129A9C: .4byte gUnknown_203A705 -_08129AA0: .4byte gUnknown_20205AC -_08129AA4: .4byte gUnknown_203A704 -_08129AA8: .4byte gUnknown_3005B30 - thumb_func_end SetUpPuttingAwayDecorationPlayerAvatar - - thumb_func_start sub_08129AAC -sub_08129AAC: @ 0x08129AAC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _08129AD0 - adds r4, r0, r1 - movs r1, #4 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _08129AFC - cmp r0, #1 - bgt _08129AD4 - cmp r0, #0 - beq _08129ADA - b _08129B1E - .align 2, 0 -_08129AD0: .4byte gUnknown_3005B68 -_08129AD4: - cmp r0, #2 - beq _08129B0A - b _08129B1E -_08129ADA: - ldr r0, _08129AF8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08129B1E - adds r0, r5, #0 - bl sub_08127A7C - movs r0, #1 - strh r0, [r4, #4] - strh r0, [r4, #0xc] - strh r0, [r4, #0xa] - b _08129B1E - .align 2, 0 -_08129AF8: .4byte gUnknown_2037C74 -_08129AFC: - bl SetUpPuttingAwayDecorationPlayerAvatar - bl pal_fill_black - movs r0, #2 - strh r0, [r4, #4] - b _08129B1E -_08129B0A: - bl IsWeatherNotFadingIn - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08129B1E - strh r0, [r4, #0x18] - adds r0, r5, #0 - bl sub_08129B24 -_08129B1E: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_08129AAC - - thumb_func_start sub_08129B24 -sub_08129B24: @ 0x08129B24 - push {r4, r5, r6, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - movs r0, #0 - movs r1, #1 - bl sub_08197028 - ldr r4, _08129BA4 - ldr r3, _08129BA8 - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r6, #0 - strh r6, [r0, #0x3c] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _08129BAC - str r1, [r0] - ldr r2, _08129BB0 - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0x88 - strh r1, [r0, #0x20] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0x48 - strh r1, [r0, #0x22] - ldr r1, _08129BB4 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r6, [r0, #0x1c] - ldr r1, _08129BB8 - str r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08129BA4: .4byte gUnknown_20205AC -_08129BA8: .4byte gUnknown_203A704 -_08129BAC: .4byte sub_0812A378 -_08129BB0: .4byte gUnknown_203A705 -_08129BB4: .4byte gUnknown_3005B60 -_08129BB8: .4byte sub_08128DF8 - thumb_func_end sub_08129B24 - - thumb_func_start sub_08129BBC -sub_08129BBC: @ 0x08129BBC - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _08129BE4 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #0x1c] - bl sub_08128DC0 - adds r0, r4, #0 - bl sub_08129C64 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08129BE4: .4byte gUnknown_3005B60 - thumb_func_end sub_08129BBC - - thumb_func_start sub_08129BE8 -sub_08129BE8: @ 0x08129BE8 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _08129C48 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #0x1c] - bl sub_08128DC0 - ldr r3, _08129C4C - ldr r5, _08129C50 - ldrb r1, [r5] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - ldrb r1, [r5] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r3, #0x1c - adds r0, r0, r3 - ldr r1, _08129C54 - str r1, [r0] - ldr r5, _08129C58 - ldr r1, _08129C5C - adds r0, r5, #0 - bl StringExpandPlaceholders - ldr r2, _08129C60 - adds r0, r4, #0 - adds r1, r5, #0 - bl DisplayItemMessageOnField - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08129C48: .4byte gUnknown_3005B60 -_08129C4C: .4byte gUnknown_20205AC -_08129C50: .4byte gUnknown_203A704 -_08129C54: .4byte sub_08007140 -_08129C58: .4byte gUnknown_2021C7C -_08129C5C: .4byte gUnknown_85CA835 -_08129C60: .4byte sub_0812A1FC - thumb_func_end sub_08129BE8 - - thumb_func_start sub_08129C64 -sub_08129C64: @ 0x08129C64 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r5, #0 - bl sub_0812A0F4 - ldr r0, _08129C88 - ldrb r0, [r0] - cmp r0, #0 - beq _08129C98 - ldr r4, _08129C8C - ldr r1, _08129C90 - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r2, _08129C94 - b _08129D04 - .align 2, 0 -_08129C88: .4byte gUnknown_203A790 -_08129C8C: .4byte gUnknown_2021C7C -_08129C90: .4byte gUnknown_85CA852 -_08129C94: .4byte sub_0812A1AC -_08129C98: - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - ldr r0, _08129D10 - adds r1, r1, r0 - movs r2, #0 - ldrsh r0, [r1, r2] - movs r2, #2 - ldrsh r1, [r1, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl MetatileBehavior_IsSecretBasePC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08129CCE - adds r0, r4, #0 - bl MetatileBehavior_IsPlayerRoomPCOn - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08129D2C -_08129CCE: - ldr r3, _08129D14 - ldr r4, _08129D18 - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r3, #0x1c - adds r0, r0, r3 - ldr r1, _08129D1C - str r1, [r0] - ldr r4, _08129D20 - ldr r1, _08129D24 - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r2, _08129D28 -_08129D04: - adds r0, r5, #0 - adds r1, r4, #0 - bl DisplayItemMessageOnField - b _08129D40 - .align 2, 0 -_08129D10: .4byte gUnknown_3005B68 -_08129D14: .4byte gUnknown_20205AC -_08129D18: .4byte gUnknown_203A704 -_08129D1C: .4byte sub_08007140 -_08129D20: .4byte gUnknown_2021C7C -_08129D24: .4byte gUnknown_85CA835 -_08129D28: .4byte sub_0812A1FC -_08129D2C: - ldr r4, _08129D48 - ldr r1, _08129D4C - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r2, _08129D50 - adds r0, r5, #0 - adds r1, r4, #0 - bl DisplayItemMessageOnField -_08129D40: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08129D48: .4byte gUnknown_2021C7C -_08129D4C: .4byte gUnknown_85CA842 -_08129D50: .4byte sub_08129D54 - thumb_func_end sub_08129C64 - - thumb_func_start sub_08129D54 -sub_08129D54: @ 0x08129D54 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _08129D78 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08129D6E - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08129D74 -_08129D6E: - adds r0, r2, #0 - bl sub_08129B24 -_08129D74: - pop {r0} - bx r0 - .align 2, 0 -_08129D78: .4byte gUnknown_3002360 - thumb_func_end sub_08129D54 - - thumb_func_start sub_08129D7C -sub_08129D7C: @ 0x08129D7C - push {lr} - adds r3, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08129D9C - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r1, [r1, #0xd] - cmp r1, #0 - bne _08129DA0 - movs r0, #1 - strb r0, [r3, #1] - b _08129DFE - .align 2, 0 -_08129D9C: .4byte gUnknown_8580CD0 -_08129DA0: - cmp r1, #1 - bne _08129DAC - movs r0, #2 - strb r0, [r3, #1] - strb r1, [r3, #2] - b _08129E00 -_08129DAC: - cmp r1, #2 - bne _08129DB8 - movs r0, #3 - strb r0, [r3, #1] - movs r0, #1 - b _08129DFE -_08129DB8: - cmp r1, #3 - bne _08129DC0 - movs r0, #4 - b _08129DFA -_08129DC0: - cmp r1, #4 - bne _08129DCA - movs r0, #2 - strb r0, [r3, #1] - b _08129DFE -_08129DCA: - cmp r1, #5 - bne _08129DD2 - movs r0, #1 - b _08129DFA -_08129DD2: - cmp r1, #6 - bne _08129DDE - movs r0, #1 - strb r0, [r3, #1] - movs r0, #3 - b _08129DFE -_08129DDE: - cmp r1, #7 - bne _08129DEA - movs r0, #2 - strb r0, [r3, #1] - movs r0, #4 - b _08129DFE -_08129DEA: - cmp r1, #8 - bne _08129DF4 - movs r0, #3 - strb r0, [r3, #1] - b _08129DFE -_08129DF4: - cmp r1, #9 - bne _08129E00 - movs r0, #3 -_08129DFA: - strb r0, [r3, #1] - movs r0, #2 -_08129DFE: - strb r0, [r3, #2] -_08129E00: - pop {r0} - bx r0 - thumb_func_end sub_08129D7C - - thumb_func_start sub_08129E04 -sub_08129E04: @ 0x08129E04 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - ldr r5, _08129E5C - ldr r6, _08129E60 - ldrb r3, [r6] - lsls r2, r3, #4 - adds r2, r2, r3 - lsls r2, r2, #2 - adds r2, r2, r5 - adds r2, #0x3e - ldrb r3, [r2] - movs r4, #4 - orrs r3, r4 - strb r3, [r2] - ldrb r3, [r6] - lsls r2, r3, #4 - adds r2, r2, r3 - lsls r2, r2, #2 - adds r3, r5, #0 - adds r3, #0x1c - adds r2, r2, r3 - ldr r3, _08129E64 - str r3, [r2] - ldr r4, _08129E68 - ldrb r3, [r4] - lsls r2, r3, #4 - adds r2, r2, r3 - lsls r2, r2, #2 - adds r2, r2, r5 - lsrs r0, r0, #0x14 - adds r0, #0x88 - strh r0, [r2, #0x20] - ldrb r2, [r4] - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r5 - lsrs r1, r1, #0x14 - adds r1, #0x48 - strh r1, [r0, #0x22] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08129E5C: .4byte gUnknown_20205AC -_08129E60: .4byte gUnknown_203A704 -_08129E64: .4byte sub_08007140 -_08129E68: .4byte gUnknown_203A705 - thumb_func_end sub_08129E04 - - thumb_func_start sub_08129E6C -sub_08129E6C: @ 0x08129E6C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov sb, r2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r3, _08129F00 - lsls r2, r0, #2 - adds r2, r2, r0 - lsls r2, r2, #3 - adds r2, r2, r3 - ldrb r0, [r2, #8] - subs r0, #7 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldrb r0, [r2, #0xa] - subs r0, #7 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r2, _08129F04 - ldr r0, [r2, #4] - adds r0, r0, r1 - ldrb r0, [r0] - lsrs r5, r0, #4 - movs r6, #0xf - ands r6, r0 - mov r0, sb - ldrb r4, [r0, #2] - ldr r0, [r2] - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0x29 - bne _08129ECC - adds r0, r5, #7 - adds r1, r6, #7 - bl MapGridGetMetatileIdAt - movs r1, #0xa3 - lsls r1, r1, #2 - cmp r0, r1 - bne _08129ECC - subs r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_08129ECC: - cmp r7, r5 - blo _08129F08 - mov r0, sb - ldrb r2, [r0, #1] - adds r0, r5, r2 - cmp r7, r0 - bge _08129F08 - subs r0, r6, r4 - cmp r8, r0 - ble _08129F08 - cmp r8, r6 - bhi _08129F08 - subs r0, r7, r5 - adds r0, #1 - subs r0, r2, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r2, r8 - subs r1, r6, r2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl sub_08129E04 - movs r0, #1 - b _08129F0A - .align 2, 0 -_08129F00: .4byte gUnknown_3005B60 -_08129F04: .4byte gUnknown_2039E48 -_08129F08: - movs r0, #0 -_08129F0A: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08129E6C - - thumb_func_start sub_08129F18 -sub_08129F18: @ 0x08129F18 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r2, _08129F8C - ldr r3, _08129F90 - ldr r0, _08129F94 - ldrb r0, [r0] - lsls r0, r0, #3 - adds r0, r0, r3 - ldrb r1, [r0] - ldr r0, [r2, #4] - adds r0, r0, r1 - ldrb r0, [r0] - lsrs r1, r0, #4 - mov r8, r1 - movs r6, #0xf - ands r6, r0 - movs r4, #0 - ldr r7, _08129F98 - mov sb, r3 -_08129F42: - ldr r1, [r7] - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r5, r0, #3 - adds r1, r1, r5 - ldr r2, _08129F9C - adds r0, r1, r2 - movs r2, #0 - ldrsh r0, [r0, r2] - cmp r0, r8 - bne _08129FA8 - ldr r2, _08129FA0 - adds r0, r1, r2 - movs r2, #0 - ldrsh r0, [r0, r2] - cmp r0, r6 - bne _08129FA8 - ldr r2, _08129FA4 - adds r0, r1, r2 - ldrh r0, [r0] - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08129FA8 - ldr r0, _08129F94 - ldrb r1, [r0] - lsls r1, r1, #3 - add r1, sb - ldr r0, [r7] - adds r0, r0, r5 - ldr r2, _08129FA4 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r1, #4] - b _08129FB2 - .align 2, 0 -_08129F8C: .4byte gUnknown_2039E48 -_08129F90: .4byte gUnknown_203A710 -_08129F94: .4byte gUnknown_203A790 -_08129F98: .4byte gUnknown_3005AEC -_08129F9C: .4byte 0x00000C74 -_08129FA0: .4byte 0x00000C76 -_08129FA4: .4byte 0x00000C84 -_08129FA8: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x3f - bls _08129F42 -_08129FB2: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08129F18 - - thumb_func_start sub_08129FC0 -sub_08129FC0: @ 0x08129FC0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r6, #0 - ldr r0, _0812A020 - ldrb r1, [r0, #8] - cmp r6, r1 - bhs _0812A03E - ldr r1, _0812A024 - mov r8, r1 -_08129FD8: - ldr r0, [r0] - adds r1, r0, r6 - ldrb r0, [r1] - cmp r0, #0 - beq _0812A030 - adds r1, r0, #0 - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - ldrb r0, [r0, #0xc] - cmp r0, #4 - bne _0812A030 - ldr r5, _0812A028 - adds r0, r1, #0 - adds r1, r5, #0 - bl sub_08129D7C - lsls r1, r6, #0x18 - lsrs r1, r1, #0x18 - adds r0, r7, #0 - adds r2, r5, #0 - bl sub_08129E6C - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #1 - bne _0812A030 - strb r6, [r5] - bl sub_08129F18 - ldr r0, _0812A02C - strb r4, [r0] - movs r0, #1 - b _0812A040 - .align 2, 0 -_0812A020: .4byte gUnknown_2039E48 -_0812A024: .4byte gUnknown_8580CD0 -_0812A028: .4byte gUnknown_203A710 -_0812A02C: .4byte gUnknown_203A790 -_0812A030: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r0, _0812A04C - ldrb r1, [r0, #8] - cmp r6, r1 - blo _08129FD8 -_0812A03E: - movs r0, #0 -_0812A040: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0812A04C: .4byte gUnknown_2039E48 - thumb_func_end sub_08129FC0 - - thumb_func_start sub_0812A050 -sub_0812A050: @ 0x0812A050 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sb, r1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r8, r2 - lsls r3, r3, #0x18 - lsrs r7, r3, #0x18 - movs r5, #0 - ldr r1, _0812A0E4 - ldrb r0, [r1, #8] - cmp r5, r0 - bhs _0812A0D4 - ldr r6, _0812A0E8 -_0812A07C: - ldr r0, [r1] - adds r0, r0, r5 - ldrb r2, [r0] - ldr r0, [r1, #4] - adds r0, r0, r5 - ldrb r0, [r0] - lsrs r4, r0, #4 - movs r3, #0xf - ands r3, r0 - cmp r2, #0 - beq _0812A0C6 - ldr r0, _0812A0EC - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #0xc] - cmp r0, #4 - bne _0812A0C6 - cmp sl, r4 - bhi _0812A0C6 - cmp sb, r3 - bhi _0812A0C6 - cmp r8, r4 - blo _0812A0C6 - cmp r7, r3 - blo _0812A0C6 - ldr r0, _0812A0F0 - ldrb r1, [r6] - lsls r1, r1, #3 - adds r1, r1, r0 - strb r5, [r1] - bl sub_08129F18 - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] -_0812A0C6: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _0812A0E4 - ldrb r0, [r1, #8] - cmp r5, r0 - blo _0812A07C -_0812A0D4: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0812A0E4: .4byte gUnknown_2039E48 -_0812A0E8: .4byte gUnknown_203A790 -_0812A0EC: .4byte gUnknown_8580CD0 -_0812A0F0: .4byte gUnknown_203A710 - thumb_func_end sub_0812A050 - - thumb_func_start sub_0812A0F4 -sub_0812A0F4: @ 0x0812A0F4 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r4, _0812A14C - movs r0, #0 - strb r0, [r4] - adds r0, r6, #0 - bl sub_08129FC0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0812A198 - movs r5, #0 - ldr r0, _0812A150 - ldrb r1, [r0, #8] - cmp r5, r1 - bhs _0812A166 - adds r7, r4, #0 -_0812A11A: - ldr r0, [r0] - adds r0, r0, r5 - ldrb r1, [r0] - cmp r1, #0 - beq _0812A158 - ldr r4, _0812A154 - adds r0, r1, #0 - adds r1, r4, #0 - bl sub_08129D7C - adds r0, r6, #0 - adds r1, r5, #0 - adds r2, r4, #0 - bl sub_08129E6C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0812A158 - strb r5, [r4] - ldrb r0, [r7] - adds r0, #1 - strb r0, [r7] - b _0812A166 - .align 2, 0 -_0812A14C: .4byte gUnknown_203A790 -_0812A150: .4byte gUnknown_2039E48 -_0812A154: .4byte gUnknown_203A710 -_0812A158: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _0812A1A0 - ldrb r1, [r0, #8] - cmp r5, r1 - blo _0812A11A -_0812A166: - ldr r0, _0812A1A4 - ldrb r0, [r0] - cmp r0, #0 - beq _0812A198 - ldr r0, _0812A1A0 - ldr r2, _0812A1A8 - ldrb r1, [r2] - ldr r0, [r0, #4] - adds r0, r0, r1 - ldrb r1, [r0] - lsrs r0, r1, #4 - movs r3, #0xf - ands r3, r1 - ldrb r1, [r2, #2] - subs r1, r3, r1 - adds r1, #1 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrb r2, [r2, #1] - adds r2, r2, r0 - subs r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - bl sub_0812A050 -_0812A198: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0812A1A0: .4byte gUnknown_2039E48 -_0812A1A4: .4byte gUnknown_203A790 -_0812A1A8: .4byte gUnknown_203A710 - thumb_func_end sub_0812A0F4 - - thumb_func_start sub_0812A1AC -sub_0812A1AC: @ 0x0812A1AC - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_08197714 - ldr r1, _0812A1C8 - adds r0, r4, #0 - bl DoYesNoFuncWithChoice - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812A1C8: .4byte gUnknown_858222C - thumb_func_end sub_0812A1AC - - thumb_func_start sub_0812A1CC -sub_0812A1CC: @ 0x0812A1CC - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - movs r1, #0 - bl FadeScreen - ldr r1, _0812A1F4 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #0xc] - ldr r1, _0812A1F8 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812A1F4: .4byte gUnknown_3005B60 -_0812A1F8: .4byte sub_081298DC - thumb_func_end sub_0812A1CC - - thumb_func_start sub_0812A1FC -sub_0812A1FC: @ 0x0812A1FC - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_08197714 - ldr r1, _0812A218 - adds r0, r4, #0 - bl DoYesNoFuncWithChoice - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812A218: .4byte gUnknown_8582234 - thumb_func_end sub_0812A1FC - - thumb_func_start sub_0812A21C -sub_0812A21C: @ 0x0812A21C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - movs r1, #0 - bl sub_08197028 - adds r0, r4, #0 - bl sub_0812A238 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0812A21C - - thumb_func_start sub_0812A238 -sub_0812A238: @ 0x0812A238 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - movs r1, #0 - bl FadeScreen - ldr r1, _0812A260 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #0xc] - ldr r1, _0812A264 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812A260: .4byte gUnknown_3005B60 -_0812A264: .4byte sub_0812A268 - thumb_func_end sub_0812A238 - - thumb_func_start sub_0812A268 -sub_0812A268: @ 0x0812A268 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _0812A288 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r5, r0, r1 - movs r1, #0xc - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _0812A28C - cmp r0, #1 - beq _0812A2A8 - b _0812A2BE - .align 2, 0 -_0812A288: .4byte gUnknown_3005B60 -_0812A28C: - ldr r0, _0812A2A4 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0812A2BE - adds r0, r4, #0 - bl sub_08127AB4 - movs r0, #1 - strh r0, [r5, #0xc] - b _0812A2BE - .align 2, 0 -_0812A2A4: .4byte gUnknown_2037C74 -_0812A2A8: - bl sub_0812A3D4 - ldr r0, _0812A2C4 - ldr r1, _0812A2C8 - str r1, [r0] - ldr r0, _0812A2CC - bl SetMainCallback2 - adds r0, r4, #0 - bl DestroyTask -_0812A2BE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0812A2C4: .4byte gUnknown_3005B0C -_0812A2C8: .4byte sub_0812A340 -_0812A2CC: .4byte sub_08085A30 - thumb_func_end sub_0812A268 - - thumb_func_start sub_0812A2D0 -sub_0812A2D0: @ 0x0812A2D0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r5, r1, #3 - ldr r6, _0812A2F4 - adds r4, r5, r6 - movs r1, #4 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _0812A308 - cmp r0, #1 - bgt _0812A2F8 - cmp r0, #0 - beq _0812A302 - b _0812A336 - .align 2, 0 -_0812A2F4: .4byte gUnknown_3005B68 -_0812A2F8: - cmp r0, #2 - beq _0812A314 - cmp r0, #3 - beq _0812A320 - b _0812A336 -_0812A302: - bl HideSecretBaseDecorationSprites - b _0812A318 -_0812A308: - ldr r0, _0812A310 - bl ScriptContext1_SetupScript - b _0812A318 - .align 2, 0 -_0812A310: .4byte gUnknown_8245DBB -_0812A314: - bl sub_080987DC -_0812A318: - ldrh r0, [r4, #4] - adds r0, #1 - strh r0, [r4, #4] - b _0812A336 -_0812A320: - bl IsWeatherNotFadingIn - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0812A336 - adds r0, r6, #0 - subs r0, #8 - adds r0, r5, r0 - ldr r1, _0812A33C - str r1, [r0] -_0812A336: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0812A33C: .4byte HandleDecorationActionsMenuInput - thumb_func_end sub_0812A2D0 - - thumb_func_start sub_0812A340 -sub_0812A340: @ 0x0812A340 - push {lr} - bl pal_fill_black - movs r0, #0 - movs r1, #1 - bl sub_08196FB8 - bl InitDecorationActionsWindow - ldr r0, _0812A370 - movs r1, #8 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0812A374 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r0, #0 - strh r0, [r1, #0xc] - pop {r0} - bx r0 - .align 2, 0 -_0812A370: .4byte sub_0812A2D0 -_0812A374: .4byte gUnknown_3005B60 - thumb_func_end sub_0812A340 - - thumb_func_start sub_0812A378 -sub_0812A378: @ 0x0812A378 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x2e] - adds r0, #1 - movs r1, #0x1f - ands r0, r1 - strh r0, [r2, #0x2e] - cmp r0, #0xf - ble _0812A398 - adds r0, r2, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - b _0812A3A4 -_0812A398: - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_0812A3A4: - pop {r0} - bx r0 - thumb_func_end sub_0812A378 - - thumb_func_start CB2_PokeblockMenu -CB2_PokeblockMenu: @ 0x0812A3A8 - push {lr} - ldr r0, _0812A3BC - ldr r0, [r0] - ldrb r0, [r0, #8] - cmp r0, #0 - bne _0812A3C4 - ldr r0, _0812A3C0 - bl LoadSpritePalette - b _0812A3CA - .align 2, 0 -_0812A3BC: .4byte gUnknown_3005AF0 -_0812A3C0: .4byte gUnknown_85822BC -_0812A3C4: - ldr r0, _0812A3D0 - bl LoadSpritePalette -_0812A3CA: - pop {r0} - bx r0 - .align 2, 0 -_0812A3D0: .4byte gUnknown_85822C4 - thumb_func_end CB2_PokeblockMenu - - thumb_func_start sub_0812A3D4 -sub_0812A3D4: @ 0x0812A3D4 - push {lr} - movs r0, #8 - bl FreeSpritePaletteByTag - pop {r0} - bx r0 - thumb_func_end sub_0812A3D4 - - thumb_func_start sub_0812A3E0 -sub_0812A3E0: @ 0x0812A3E0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - bl IsSelectedDecorInThePC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0812A440 - ldr r0, _0812A424 - ldr r1, _0812A428 - ldrb r2, [r1] - ldr r1, _0812A42C - ldr r1, [r1] - adds r1, r1, r2 - ldrb r2, [r1] - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - ldr r2, _0812A430 - adds r1, r1, r2 - bl StringCopy - ldr r4, _0812A434 - ldr r1, _0812A438 - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r2, _0812A43C - adds r0, r5, #0 - adds r1, r4, #0 - bl DisplayItemMessageOnField - b _0812A454 - .align 2, 0 -_0812A424: .4byte gUnknown_2021C40 -_0812A428: .4byte gUnknown_2039E3E -_0812A42C: .4byte gUnknown_2039E18 -_0812A430: .4byte gUnknown_8580CD1 -_0812A434: .4byte gUnknown_2021C7C -_0812A438: .4byte gUnknown_85CA812 -_0812A43C: .4byte sub_0812A468 -_0812A440: - ldr r4, _0812A45C - ldr r1, _0812A460 - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r2, _0812A464 - adds r0, r5, #0 - adds r1, r4, #0 - bl DisplayItemMessageOnField -_0812A454: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0812A45C: .4byte gUnknown_2021C7C -_0812A460: .4byte gUnknown_85CA7F2 -_0812A464: .4byte sub_08127A0C - thumb_func_end sub_0812A3E0 - - thumb_func_start sub_0812A468 -sub_0812A468: @ 0x0812A468 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_08197714 - ldr r1, _0812A484 - adds r0, r4, #0 - bl DoYesNoFuncWithChoice - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812A484: .4byte gUnknown_8582300 - thumb_func_end sub_0812A468 - - thumb_func_start sub_0812A488 -sub_0812A488: @ 0x0812A488 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _0812A4D0 - ldrb r1, [r0] - ldr r0, _0812A4D4 - ldr r0, [r0] - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - ldr r5, _0812A4D8 - ldrb r0, [r5] - bl GetNumOwnedDecorationsInCategory - ldr r1, _0812A4DC - strb r0, [r1] - ldrb r0, [r5] - bl CondenseDecorationsInCategory - adds r0, r4, #0 - bl IdentifyOwnedDecorationsCurrentlyInUseInternal - ldr r5, _0812A4E0 - ldr r1, _0812A4E4 - adds r0, r5, #0 - bl StringExpandPlaceholders - ldr r2, _0812A4E8 - adds r0, r4, #0 - adds r1, r5, #0 - bl DisplayItemMessageOnField - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0812A4D0: .4byte gUnknown_2039E3E -_0812A4D4: .4byte gUnknown_2039E18 -_0812A4D8: .4byte gUnknown_2039E3F -_0812A4DC: .4byte gUnknown_2039E1D -_0812A4E0: .4byte gUnknown_2021C7C -_0812A4E4: .4byte gUnknown_85CA829 -_0812A4E8: .4byte sub_08127A0C - thumb_func_end sub_0812A488 - - thumb_func_start Task_FadeToSlotMachine -Task_FadeToSlotMachine: @ 0x0812A4EC - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _0812A50C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r0, #8 - ldrsh r1, [r4, r0] - cmp r1, #0 - beq _0812A510 - cmp r1, #1 - beq _0812A528 - b _0812A540 - .align 2, 0 -_0812A50C: .4byte gUnknown_3005B60 -_0812A510: - movs r0, #1 - rsbs r0, r0, #0 - str r1, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _0812A540 -_0812A528: - ldr r0, _0812A548 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0812A540 - ldr r0, _0812A54C - bl SetMainCallback2 - adds r0, r5, #0 - bl DestroyTask -_0812A540: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0812A548: .4byte gUnknown_2037C74 -_0812A54C: .4byte CB2_SlotMachineSetup - thumb_func_end Task_FadeToSlotMachine - - thumb_func_start PlaySlotMachine -PlaySlotMachine: @ 0x0812A550 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r5, _0812A58C - movs r0, #0x68 - bl AllocZeroed - str r0, [r5] - adds r0, r4, #0 - adds r1, r6, #0 - bl PlaySlotMachine_Internal - ldr r0, _0812A590 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0812A594 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r0, #0 - strh r0, [r1, #8] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0812A58C: .4byte gUnknown_203A800 -_0812A590: .4byte Task_FadeToSlotMachine -_0812A594: .4byte gUnknown_3005B60 - thumb_func_end PlaySlotMachine - - thumb_func_start CB2_SlotMachineSetup -CB2_SlotMachineSetup: @ 0x0812A598 - push {lr} - sub sp, #4 - ldr r0, _0812A5B4 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0xb - bhi _0812A676 - lsls r0, r0, #2 - ldr r1, _0812A5B8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0812A5B4: .4byte gUnknown_3002360 -_0812A5B8: .4byte _0812A5BC -_0812A5BC: @ jump table - .4byte _0812A5EC @ case 0 - .4byte _0812A5F6 @ case 1 - .4byte _0812A5FC @ case 2 - .4byte _0812A606 @ case 3 - .4byte _0812A60C @ case 4 - .4byte _0812A612 @ case 5 - .4byte _0812A618 @ case 6 - .4byte _0812A61E @ case 7 - .4byte _0812A648 @ case 8 - .4byte _0812A64E @ case 9 - .4byte _0812A654 @ case 10 - .4byte _0812A670 @ case 11 -_0812A5EC: - bl SlotMachineSetup_0_0 - bl SlotMachineSetup_0_1 - b _0812A65C -_0812A5F6: - bl SlotMachineSetup_1_0 - b _0812A65C -_0812A5FC: - bl SlotMachineSetup_2_0 - bl SlotMachineSetup_2_1 - b _0812A65C -_0812A606: - bl SlotMachineSetup_3_0 - b _0812A65C -_0812A60C: - bl SlotMachineSetup_4_0 - b _0812A65C -_0812A612: - bl SlotMachineSetup_5_0 - b _0812A65C -_0812A618: - bl ContestEffect_StartleMonsCuteAppeal - b _0812A65C -_0812A61E: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg - b _0812A65C -_0812A648: - bl SlotMachineSetup_8_0 - b _0812A65C -_0812A64E: - bl SlotMachineSetup_9_0 - b _0812A65C -_0812A654: - bl SlotMachineSetup_10_0 - bl SlotMachineSetupGameplayTasks -_0812A65C: - ldr r1, _0812A66C - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0812A676 - .align 2, 0 -_0812A66C: .4byte gUnknown_3002360 -_0812A670: - ldr r0, _0812A67C - bl SetMainCallback2 -_0812A676: - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_0812A67C: .4byte sub_0812A680 - thumb_func_end CB2_SlotMachineSetup - - thumb_func_start sub_0812A680 -sub_0812A680: @ 0x0812A680 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0812A680 - - thumb_func_start mevent_srv_new_wcard -mevent_srv_new_wcard: @ 0x0812A698 - push {r4, lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - ldr r4, _0812A6E0 - ldr r0, [r4] - adds r0, #0x58 - ldrh r1, [r0] - movs r0, #0x40 - bl SetGpuReg - ldr r0, [r4] - adds r0, #0x5a - ldrh r1, [r0] - movs r0, #0x44 - bl SetGpuReg - ldr r0, [r4] - adds r0, #0x5c - ldrh r1, [r0] - movs r0, #0x48 - bl SetGpuReg - ldr r0, [r4] - adds r0, #0x5e - ldrh r1, [r0] - movs r0, #0x4a - bl SetGpuReg - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812A6E0: .4byte gUnknown_203A800 - thumb_func_end mevent_srv_new_wcard - - thumb_func_start PlaySlotMachine_Internal -PlaySlotMachine_Internal: @ 0x0812A6E4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _0812A718 - movs r1, #0xff - bl CreateTask - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - ldr r1, _0812A71C - adds r0, r0, r1 - strh r4, [r0, #8] - adds r0, #0xa - adds r1, r5, #0 - bl StoreWordInTwoHalfwords - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0812A718: .4byte sub_0812A75C -_0812A71C: .4byte gUnknown_3005B60 - thumb_func_end PlaySlotMachine_Internal - - thumb_func_start sub_0812A720 -sub_0812A720: @ 0x0812A720 - push {lr} - ldr r0, _0812A750 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r0, #2 - adds r2, r2, r0 - lsls r2, r2, #3 - ldr r0, _0812A754 - adds r2, r2, r0 - ldr r3, _0812A758 - ldr r1, [r3] - ldrh r0, [r2, #8] - strb r0, [r1, #1] - adds r2, #0xa - ldr r1, [r3] - adds r1, #0x64 - adds r0, r2, #0 - bl LoadWordFromTwoHalfwords - pop {r0} - bx r0 - .align 2, 0 -_0812A750: .4byte sub_0812A75C -_0812A754: .4byte gUnknown_3005B60 -_0812A758: .4byte gUnknown_203A800 - thumb_func_end sub_0812A720 - - thumb_func_start sub_0812A75C -sub_0812A75C: @ 0x0812A75C - bx lr - .align 2, 0 - thumb_func_end sub_0812A75C - - thumb_func_start SlotMachineSetup_0_0 -SlotMachineSetup_0_0: @ 0x0812A760 - push {lr} - sub sp, #4 - movs r0, #0 - bl SetVBlankCallback - movs r0, #0 - bl SetHBlankCallback - movs r0, #0 - str r0, [sp] - movs r1, #0xc0 - lsls r1, r1, #0x13 - ldr r2, _0812A7A0 - mov r0, sp - bl CpuSet - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _0812A7A4 - movs r0, #0 - movs r2, #4 - bl InitBgsFromTemplates - ldr r0, _0812A7A8 - bl InitWindows - bl sub_08004480 - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_0812A7A0: .4byte 0x05006000 -_0812A7A4: .4byte gUnknown_85843A8 -_0812A7A8: .4byte gUnknown_85843B8 - thumb_func_end SlotMachineSetup_0_0 - - thumb_func_start ContestEffect_StartleMonsCuteAppeal -ContestEffect_StartleMonsCuteAppeal: @ 0x0812A7AC - push {lr} - ldr r0, _0812A7C8 - bl SetVBlankCallback - movs r0, #1 - bl EnableInterrupts - movs r1, #0xc1 - lsls r1, r1, #6 - movs r0, #0 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 -_0812A7C8: .4byte mevent_srv_new_wcard - thumb_func_end ContestEffect_StartleMonsCuteAppeal - - thumb_func_start SlotMachineSetup_1_0 -SlotMachineSetup_1_0: @ 0x0812A7CC - push {r4, r5, r6, r7, lr} - sub sp, #4 - movs r2, #0xc0 - lsls r2, r2, #0x13 - movs r3, #0x80 - lsls r3, r3, #9 - mov r4, sp - movs r6, #0 - ldr r1, _0812A818 - movs r5, #0x80 - lsls r5, r5, #5 - ldr r7, _0812A81C - movs r0, #0x81 - lsls r0, r0, #0x18 - mov ip, r0 -_0812A7EA: - strh r6, [r4] - mov r0, sp - str r0, [r1] - str r2, [r1, #4] - str r7, [r1, #8] - ldr r0, [r1, #8] - adds r2, r2, r5 - subs r3, r3, r5 - cmp r3, r5 - bhi _0812A7EA - strh r6, [r4] - mov r0, sp - str r0, [r1] - str r2, [r1, #4] - lsrs r0, r3, #1 - mov r2, ip - orrs r0, r2 - str r0, [r1, #8] - ldr r0, [r1, #8] - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0812A818: .4byte 0x040000D4 -_0812A81C: .4byte 0x81000800 - thumb_func_end SlotMachineSetup_1_0 - - thumb_func_start SlotMachineSetup_2_0 -SlotMachineSetup_2_0: @ 0x0812A820 - sub sp, #4 - movs r2, #0xe0 - lsls r2, r2, #0x13 - mov r1, sp - movs r0, #0 - strh r0, [r1] - ldr r0, _0812A83C - str r1, [r0] - str r2, [r0, #4] - ldr r1, _0812A840 - str r1, [r0, #8] - ldr r0, [r0, #8] - add sp, #4 - bx lr - .align 2, 0 -_0812A83C: .4byte 0x040000D4 -_0812A840: .4byte 0x81000200 - thumb_func_end SlotMachineSetup_2_0 - - thumb_func_start SlotMachineSetup_2_1 -SlotMachineSetup_2_1: @ 0x0812A844 - push {lr} - movs r0, #8 - movs r1, #0 - bl SetGpuReg - movs r0, #0xa - movs r1, #0 - bl SetGpuReg - movs r0, #0xc - movs r1, #0 - bl SetGpuReg - movs r0, #0xe - movs r1, #0 - bl SetGpuReg - movs r0, #0x10 - movs r1, #0 - bl SetGpuReg - movs r0, #0x12 - movs r1, #0 - bl SetGpuReg - movs r0, #0x14 - movs r1, #0 - bl SetGpuReg - movs r0, #0x16 - movs r1, #0 - bl SetGpuReg - movs r0, #0x18 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1a - movs r1, #0 - bl SetGpuReg - movs r0, #0x1c - movs r1, #0 - bl SetGpuReg - movs r0, #0x1e - movs r1, #0 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0x3f - bl SetGpuReg - movs r0, #0x4a - movs r1, #0x3f - bl SetGpuReg - ldr r1, _0812A8CC - movs r0, #0x50 - bl SetGpuReg - ldr r1, _0812A8D0 - movs r0, #0x52 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 -_0812A8CC: .4byte 0x00001048 -_0812A8D0: .4byte 0x00000809 - thumb_func_end SlotMachineSetup_2_1 - - thumb_func_start SlotMachineSetup_0_1 -SlotMachineSetup_0_1: @ 0x0812A8D4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - bl sub_0812A720 - ldr r5, _0812A9B4 - ldr r0, [r5] - movs r4, #0 - strb r4, [r0] - ldr r0, [r5] - strb r4, [r0, #2] - bl Random - ldr r2, [r5] - movs r1, #1 - ands r1, r0 - strb r1, [r2, #3] - ldr r0, [r5] - strb r4, [r0, #4] - ldr r0, [r5] - movs r1, #0 - strh r4, [r0, #8] - strb r1, [r0, #0xa] - ldr r0, [r5] - strb r1, [r0, #0xb] - bl GetCoins - ldr r2, [r5] - strh r0, [r2, #0xc] - strh r4, [r2, #0xe] - strh r4, [r2, #0x10] - strh r4, [r2, #0x12] - strh r4, [r2, #0x18] - movs r0, #8 - strh r0, [r2, #0x1a] - adds r1, r2, #0 - adds r1, #0x58 - movs r0, #0xf0 - strh r0, [r1] - adds r1, #2 - movs r0, #0xa0 - strh r0, [r1] - adds r0, r2, #0 - adds r0, #0x5c - movs r1, #0x3f - strh r1, [r0] - adds r0, #2 - strh r1, [r0] - bl sub_080A27CC - ldr r1, [r5] - adds r1, #0x60 - strh r0, [r1] - movs r7, #0 - ldr r0, _0812A9B8 - mov r8, r0 -_0812A944: - ldr r0, _0812A9B4 - ldr r4, [r0] - lsls r6, r7, #1 - adds r0, r4, #0 - adds r0, #0x22 - adds r0, r0, r6 - movs r1, #0 - strh r1, [r0] - adds r5, r4, #0 - adds r5, #0x28 - adds r5, r5, r6 - ldrb r0, [r4, #3] - lsls r0, r0, #1 - lsls r1, r7, #2 - adds r0, r0, r1 - add r0, r8 - movs r1, #0 - ldrsh r0, [r0, r1] - movs r1, #0x15 - bl __modsi3 - strh r0, [r5] - adds r4, #0x1c - adds r4, r4, r6 - movs r2, #0 - ldrsh r0, [r5, r2] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #3 - movs r2, #0xfc - lsls r2, r2, #1 - adds r0, r2, #0 - subs r0, r0, r1 - strh r0, [r4] - movs r1, #0 - ldrsh r0, [r4, r1] - adds r1, r2, #0 - bl __modsi3 - strh r0, [r4] - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #2 - bls _0812A944 - bl GetCoins - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl AlertTVThatPlayerPlayedSlotMachine - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0812A9B4: .4byte gUnknown_203A800 -_0812A9B8: .4byte gUnknown_8584638 - thumb_func_end SlotMachineSetup_0_1 - - thumb_func_start SlotMachineSetup_3_0 -SlotMachineSetup_3_0: @ 0x0812A9BC - push {lr} - bl ResetPaletteFade - bl ResetSpriteData - ldr r1, _0812A9D8 - movs r0, #0x80 - strb r0, [r1] - bl FreeAllSpritePalettes - bl ResetTasks - pop {r0} - bx r0 - .align 2, 0 -_0812A9D8: .4byte gUnknown_2021AB4 - thumb_func_end SlotMachineSetup_3_0 - - thumb_func_start SlotMachineSetup_4_0 -SlotMachineSetup_4_0: @ 0x0812A9DC - push {r4, r5, lr} - ldr r4, _0812AA30 - movs r0, #8 - bl sub_08000BC8 - str r0, [r4] - ldr r4, _0812AA34 - movs r0, #0xe - bl AllocZeroed - str r0, [r4] - ldr r5, _0812AA38 - movs r0, #8 - bl AllocZeroed - str r0, [r5] - ldr r1, [r4] - ldr r2, _0812AA3C - adds r0, r2, #0 - strh r0, [r1] - ldr r1, [r4] - ldr r2, _0812AA40 - adds r0, r2, #0 - strh r0, [r1, #2] - ldr r2, _0812AA44 - adds r0, r2, #0 - strh r0, [r1, #4] - ldr r2, _0812AA48 - adds r0, r2, #0 - strh r0, [r1, #6] - ldr r2, _0812AA4C - adds r0, r2, #0 - strh r0, [r1, #8] - ldr r2, _0812AA50 - adds r0, r2, #0 - strh r0, [r1, #0xa] - ldr r2, _0812AA54 - adds r0, r2, #0 - strh r0, [r1, #0xc] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0812AA30: .4byte gUnknown_203A798 -_0812AA34: .4byte gUnknown_203A79C -_0812AA38: .4byte gUnknown_203A7A8 -_0812AA3C: .4byte 0x00002051 -_0812AA40: .4byte 0x00002851 -_0812AA44: .4byte 0x00002061 -_0812AA48: .4byte 0x00002861 -_0812AA4C: .4byte 0x000020BE -_0812AA50: .4byte 0x000028BE -_0812AA54: .4byte 0x000020BF - thumb_func_end SlotMachineSetup_4_0 - - thumb_func_start SlotMachineSetup_5_0 -SlotMachineSetup_5_0: @ 0x0812AA58 - push {lr} - bl Anim_SwordsDanceBlade - bl sub_0812F968 - bl sub_0812F7F4 - movs r1, #0x80 - lsls r1, r1, #2 - movs r0, #0 - movs r2, #0xf0 - bl LoadMessageBoxGfx - movs r1, #0x85 - lsls r1, r1, #2 - movs r0, #0 - movs r2, #0xe0 - bl LoadUserWindowBorderGfx - movs r0, #0 - bl PutWindowTilemap - pop {r0} - bx r0 - thumb_func_end SlotMachineSetup_5_0 - - thumb_func_start SlotMachineSetup_10_0 -SlotMachineSetup_10_0: @ 0x0812AA88 - push {lr} - bl sub_0812E0F4 - bl sub_0812E1D8 - bl sub_0812CF04 - bl sub_0812E310 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SlotMachineSetup_10_0 - - thumb_func_start SlotMachineSetupGameplayTasks -SlotMachineSetupGameplayTasks: @ 0x0812AAA0 - push {lr} - bl GameplayTask_PikaPower - bl GameplayTask_StopSlotReel - bl sub_0812DEA4 - bl sub_0812AAB8 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SlotMachineSetupGameplayTasks - - thumb_func_start sub_0812AAB8 -sub_0812AAB8: @ 0x0812AAB8 - push {r4, lr} - ldr r4, _0812AAD4 - adds r0, r4, #0 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812AAD4: .4byte RunSlotActions - thumb_func_end sub_0812AAB8 - - thumb_func_start RunSlotActions -RunSlotActions: @ 0x0812AAD8 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r6, _0812AB08 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r4, r1, #3 - ldr r5, _0812AB0C -_0812AAE8: - ldr r0, _0812AB10 - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r1, [r0] - adds r0, r4, r5 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0812AAE8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0812AB08: .4byte gUnknown_85843D4 -_0812AB0C: .4byte gUnknown_3005B60 -_0812AB10: .4byte gUnknown_203A800 - thumb_func_end RunSlotActions - - thumb_func_start SlotAction_UnfadeScreen -SlotAction_UnfadeScreen: @ 0x0812AB14 - push {r4, lr} - sub sp, #4 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r4, _0812AB44 - ldr r0, [r4] - ldrb r0, [r0, #2] - bl sub_0812D3C4 - ldr r1, [r4] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #0 - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0812AB44: .4byte gUnknown_203A800 - thumb_func_end SlotAction_UnfadeScreen - - thumb_func_start SlotAction_WaitForUnfade -SlotAction_WaitForUnfade: @ 0x0812AB48 - push {lr} - ldr r0, _0812AB68 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0812AB60 - ldr r0, _0812AB6C - ldr r1, [r0] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_0812AB60: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0812AB68: .4byte gUnknown_2037C74 -_0812AB6C: .4byte gUnknown_203A800 - thumb_func_end SlotAction_WaitForUnfade - - thumb_func_start SlotAction_SetSlotMachineVars -SlotAction_SetSlotMachineVars: @ 0x0812AB70 - push {lr} - ldr r3, _0812AB9C - ldr r1, [r3] - movs r0, #0 - strh r0, [r1, #0xe] - strh r0, [r1, #0x12] - strh r0, [r1, #0x18] - ldrb r2, [r1, #4] - movs r0, #0xc0 - ands r0, r2 - strb r0, [r1, #4] - ldr r1, [r3] - movs r0, #4 - strb r0, [r1] - ldr r3, [r3] - movs r1, #0xc - ldrsh r0, [r3, r1] - cmp r0, #0 - bgt _0812ABA0 - movs r0, #0x19 - strb r0, [r3] - b _0812ABB0 - .align 2, 0 -_0812AB9C: .4byte gUnknown_203A800 -_0812ABA0: - ldrb r0, [r3, #0xa] - cmp r0, #0 - beq _0812ABB0 - movs r0, #3 - strb r0, [r3] - movs r0, #4 - bl sub_0812DEF4 -_0812ABB0: - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end SlotAction_SetSlotMachineVars - - thumb_func_start SlotAction3 -SlotAction3: @ 0x0812ABB8 - push {lr} - bl sub_0812E064 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0812ABCC - ldr r0, _0812ABD4 - ldr r1, [r0] - movs r0, #4 - strb r0, [r1] -_0812ABCC: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0812ABD4: .4byte gUnknown_203A800 - thumb_func_end SlotAction3 - - thumb_func_start SlotAction4 -SlotAction4: @ 0x0812ABD8 - push {lr} - movs r0, #0 - bl sub_0812DEF4 - ldr r2, _0812AC00 - ldr r1, [r2] - movs r0, #5 - strb r0, [r1] - ldr r2, [r2] - movs r0, #0xc - ldrsh r1, [r2, r0] - ldr r0, _0812AC04 - cmp r1, r0 - ble _0812ABF8 - movs r0, #0x17 - strb r0, [r2] -_0812ABF8: - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 -_0812AC00: .4byte gUnknown_203A800 -_0812AC04: .4byte 0x0000270E - thumb_func_end SlotAction4 - - thumb_func_start SlotAction_AwaitPlayerInput -SlotAction_AwaitPlayerInput: @ 0x0812AC08 - push {r4, r5, lr} - ldr r0, _0812AC24 - ldrh r1, [r0, #0x2e] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0812AC2C - movs r0, #0 - bl OpenInfoBox - ldr r0, _0812AC28 - ldr r1, [r0] - movs r0, #8 - b _0812ACF2 - .align 2, 0 -_0812AC24: .4byte gUnknown_3002360 -_0812AC28: .4byte gUnknown_203A800 -_0812AC2C: - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0812AC92 - ldr r0, _0812AC88 - ldr r2, [r0] - movs r1, #0xc - ldrsh r0, [r2, r1] - subs r0, #3 - movs r3, #0x12 - ldrsh r1, [r2, r3] - adds r0, r0, r1 - cmp r0, #0 - blt _0812AC8C - ldrh r4, [r2, #0x12] - adds r0, r1, #0 - cmp r0, #2 - bgt _0812AC6A -_0812AC52: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl LoadBetTiles - lsls r0, r4, #0x10 - movs r2, #0x80 - lsls r2, r2, #9 - adds r0, r0, r2 - lsrs r4, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - ble _0812AC52 -_0812AC6A: - ldr r0, _0812AC88 - ldr r1, [r0] - ldrh r0, [r1, #0xc] - subs r0, #3 - ldrh r3, [r1, #0x12] - adds r0, r0, r3 - strh r0, [r1, #0xc] - movs r0, #3 - strh r0, [r1, #0x12] - movs r0, #9 - strb r0, [r1] - movs r0, #0x5f - bl sub_080A306C - b _0812ACF4 - .align 2, 0 -_0812AC88: .4byte gUnknown_203A800 -_0812AC8C: - movs r0, #6 - strb r0, [r2] - b _0812ACF4 -_0812AC92: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0812ACC2 - ldr r4, _0812ACFC - ldr r0, [r4] - movs r1, #0xc - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _0812ACC2 - movs r0, #0x5f - bl sub_080A306C - ldr r0, [r4] - ldrb r0, [r0, #0x12] - bl LoadBetTiles - ldr r1, [r4] - ldrh r0, [r1, #0xc] - subs r0, #1 - strh r0, [r1, #0xc] - ldrh r0, [r1, #0x12] - adds r0, #1 - strh r0, [r1, #0x12] -_0812ACC2: - ldr r0, _0812ACFC - ldr r3, [r0] - movs r1, #0x12 - ldrsh r2, [r3, r1] - ldr r4, _0812AD00 - adds r5, r0, #0 - cmp r2, #2 - bgt _0812ACE0 - cmp r2, #0 - beq _0812ACE4 - ldrh r1, [r4, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0812ACE4 -_0812ACE0: - movs r0, #9 - strb r0, [r3] -_0812ACE4: - ldrh r1, [r4, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0812ACF4 - ldr r1, [r5] - movs r0, #0x15 -_0812ACF2: - strb r0, [r1] -_0812ACF4: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0812ACFC: .4byte gUnknown_203A800 -_0812AD00: .4byte gUnknown_3002360 - thumb_func_end SlotAction_AwaitPlayerInput - - thumb_func_start sub_0812AD04 -sub_0812AD04: @ 0x0812AD04 - push {lr} - sub sp, #0xc - movs r0, #0 - movs r1, #0 - bl sub_08196FB8 - ldr r2, _0812AD3C - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - ldr r0, _0812AD40 - ldr r1, [r0] - movs r0, #7 - strb r0, [r1] - movs r0, #0 - add sp, #0xc - pop {r1} - bx r1 - .align 2, 0 -_0812AD3C: .4byte gUnknown_8588641 -_0812AD40: .4byte gUnknown_203A800 - thumb_func_end sub_0812AD04 - - thumb_func_start sub_0812AD44 -sub_0812AD44: @ 0x0812AD44 - push {lr} - ldr r0, _0812AD68 - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _0812AD62 - movs r0, #0 - movs r1, #1 - bl sub_08197028 - ldr r0, _0812AD6C - ldr r1, [r0] - movs r0, #5 - strb r0, [r1] -_0812AD62: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0812AD68: .4byte gUnknown_3002360 -_0812AD6C: .4byte gUnknown_203A800 - thumb_func_end sub_0812AD44 - - thumb_func_start SlotAction_GivingInformation -SlotAction_GivingInformation: @ 0x0812AD70 - push {lr} - bl sub_0812DCC4 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0812AD84 - ldr r0, _0812AD8C - ldr r1, [r0] - movs r0, #5 - strb r0, [r1] -_0812AD84: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0812AD8C: .4byte gUnknown_203A800 - thumb_func_end SlotAction_GivingInformation - - thumb_func_start SlotAction9 -SlotAction9: @ 0x0812AD90 - push {r4, lr} - adds r4, r0, #0 - bl DrawLuckyFlags - bl sub_0812DFEC - movs r0, #0 - bl ReelTasks_SetUnkTaskData - movs r0, #1 - bl ReelTasks_SetUnkTaskData - movs r0, #2 - bl ReelTasks_SetUnkTaskData - bl sub_080EF784 - movs r0, #0 - strh r0, [r4, #8] - ldr r4, _0812ADD0 - ldr r0, [r4] - ldrb r1, [r0, #4] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0812ADD4 - bl BeginReeltime - ldr r1, [r4] - movs r0, #0xa - b _0812ADDE - .align 2, 0 -_0812ADD0: .4byte gUnknown_203A800 -_0812ADD4: - movs r0, #1 - bl sub_0812DEF4 - ldr r1, [r4] - movs r0, #0xb -_0812ADDE: - strb r0, [r1] - ldr r4, _0812AE00 - ldr r0, [r4] - movs r1, #8 - strh r1, [r0, #0x1a] - ldrb r0, [r0, #0xa] - cmp r0, #0 - beq _0812ADF6 - bl SlowReelSpeed - ldr r1, [r4] - strh r0, [r1, #0x1a] -_0812ADF6: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0812AE00: .4byte gUnknown_203A800 - thumb_func_end SlotAction9 - - thumb_func_start SlotAction10 -SlotAction10: @ 0x0812AE04 - push {lr} - bl sub_0812D4DC - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0812AE28 - movs r0, #1 - bl sub_0812DEF4 - ldr r3, _0812AE30 - ldr r2, [r3] - ldrb r1, [r2, #4] - movs r0, #0xdf - ands r0, r1 - strb r0, [r2, #4] - ldr r1, [r3] - movs r0, #0xb - strb r0, [r1] -_0812AE28: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0812AE30: .4byte gUnknown_203A800 - thumb_func_end SlotAction10 - - thumb_func_start SlotAction_SetLuckySpins -SlotAction_SetLuckySpins: @ 0x0812AE34 - push {lr} - ldrh r1, [r0, #8] - adds r1, #1 - strh r1, [r0, #8] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0x1d - ble _0812AE50 - bl SetLuckySpins - ldr r0, _0812AE58 - ldr r1, [r0] - movs r0, #0xc - strb r0, [r1] -_0812AE50: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0812AE58: .4byte gUnknown_203A800 - thumb_func_end SlotAction_SetLuckySpins - - thumb_func_start SlotAction_AwaitReelStop -SlotAction_AwaitReelStop: @ 0x0812AE5C - push {r4, lr} - ldr r0, _0812AE90 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0812AE88 - movs r0, #0x18 - bl sub_080A306C - ldr r4, _0812AE94 - ldr r0, [r4] - ldrb r0, [r0, #0x18] - bl sub_0812BEEC - ldr r0, [r4] - ldrb r0, [r0, #0x18] - bl sub_0812CD50 - ldr r1, [r4] - movs r0, #0xd - strb r0, [r1] -_0812AE88: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0812AE90: .4byte gUnknown_3002360 -_0812AE94: .4byte gUnknown_203A800 - thumb_func_end SlotAction_AwaitReelStop - - thumb_func_start SlotAction_WaitForAllReelsToStop -SlotAction_WaitForAllReelsToStop: @ 0x0812AE98 - push {r4, lr} - ldr r4, _0812AEC8 - ldr r0, [r4] - ldrb r0, [r0, #0x18] - bl IsSlotReelMoving - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0812AECC - ldr r1, [r4] - ldrh r0, [r1, #0x18] - adds r0, #1 - strh r0, [r1, #0x18] - movs r0, #0xc - strb r0, [r1] - ldr r1, [r4] - movs r2, #0x18 - ldrsh r0, [r1, r2] - cmp r0, #2 - ble _0812AEC4 - movs r0, #0xe - strb r0, [r1] -_0812AEC4: - movs r0, #1 - b _0812AECE - .align 2, 0 -_0812AEC8: .4byte gUnknown_203A800 -_0812AECC: - movs r0, #0 -_0812AECE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end SlotAction_WaitForAllReelsToStop - - thumb_func_start SlotAction_CheckMatches -SlotAction_CheckMatches: @ 0x0812AED4 - push {r4, lr} - ldr r4, _0812AF40 - ldr r2, [r4] - ldrb r1, [r2, #4] - movs r0, #0xc0 - ands r0, r1 - strb r0, [r2, #4] - bl CheckMatch - ldr r1, [r4] - ldrb r0, [r1, #0xa] - cmp r0, #0 - beq _0812AEFA - subs r0, #1 - strb r0, [r1, #0xa] - ldr r1, [r4] - ldrb r0, [r1, #0xb] - adds r0, #1 - strb r0, [r1, #0xb] -_0812AEFA: - ldr r1, [r4] - ldrh r0, [r1, #8] - cmp r0, #0 - beq _0812AFDC - movs r0, #0xf - strb r0, [r1] - bl AwardPayout - bl sub_0812D0C0 - ldr r2, [r4] - ldrh r0, [r2, #0x10] - ldrh r1, [r2, #0xe] - subs r0, r0, r1 - strh r0, [r2, #0x10] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _0812AF22 - movs r0, #0 - strh r0, [r2, #0x10] -_0812AF22: - ldr r0, [r4] - ldrh r1, [r0, #8] - movs r0, #0xc0 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0812AF48 - ldr r0, _0812AF44 - bl PlayFanfare - movs r0, #6 - bl sub_0812DEF4 - b _0812AF72 - .align 2, 0 -_0812AF40: .4byte gUnknown_203A800 -_0812AF44: .4byte 0x00000185 -_0812AF48: - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0812AF64 - ldr r0, _0812AF60 - bl PlayFanfare - movs r0, #5 - bl sub_0812DEF4 - b _0812AF72 - .align 2, 0 -_0812AF60: .4byte 0x00000185 -_0812AF64: - movs r0, #0xc3 - lsls r0, r0, #1 - bl PlayFanfare - movs r0, #2 - bl sub_0812DEF4 -_0812AF72: - ldr r2, _0812AFD8 - ldr r3, [r2] - ldrh r1, [r3, #8] - movs r0, #0xe0 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0812AFB6 - ldrb r1, [r3, #4] - movs r0, #0x3f - ands r0, r1 - movs r4, #0 - strb r0, [r3, #4] - ldr r3, [r2] - ldrh r1, [r3, #8] - movs r0, #0xc0 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0812AFB6 - strb r4, [r3, #0xa] - ldr r0, [r2] - strb r4, [r0, #0xb] - ldr r0, [r2] - strb r4, [r0, #3] - ldr r3, [r2] - ldrh r1, [r3, #8] - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0812AFB6 - movs r0, #1 - strb r0, [r3, #3] -_0812AFB6: - ldr r3, [r2] - ldrh r1, [r3, #8] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0812AFFE - ldrb r0, [r3, #2] - cmp r0, #0xf - bhi _0812AFFE - adds r0, #1 - strb r0, [r3, #2] - ldr r0, [r2] - ldrb r0, [r0, #2] - bl DisplayPikaPower - b _0812AFFE - .align 2, 0 -_0812AFD8: .4byte gUnknown_203A800 -_0812AFDC: - movs r0, #3 - bl sub_0812DEF4 - ldr r1, [r4] - movs r0, #0x14 - strb r0, [r1] - ldr r1, [r4] - ldrh r0, [r1, #0x12] - ldrh r2, [r1, #0x10] - adds r0, r0, r2 - strh r0, [r1, #0x10] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldr r2, _0812B008 - cmp r0, r2 - ble _0812AFFE - strh r2, [r1, #0x10] -_0812AFFE: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0812B008: .4byte 0x0000270F - thumb_func_end SlotAction_CheckMatches - - thumb_func_start SlotAction_WaitForPayoutToBeAwarded -SlotAction_WaitForPayoutToBeAwarded: @ 0x0812B00C - push {lr} - bl sub_0812BAEC - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0812B020 - ldr r0, _0812B028 - ldr r1, [r0] - movs r0, #0x10 - strb r0, [r1] -_0812B020: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0812B028: .4byte gUnknown_203A800 - thumb_func_end SlotAction_WaitForPayoutToBeAwarded - - thumb_func_start SlotAction_EndOfRoll -SlotAction_EndOfRoll: @ 0x0812B02C - push {r4, lr} - bl sub_0812D0F0 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0812B098 - ldr r4, _0812B0A0 - ldr r1, [r4] - movs r0, #0x13 - strb r0, [r1] - ldr r0, [r4] - ldrh r1, [r0, #8] - movs r0, #0xc0 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0812B054 - movs r0, #0x1c - bl IncrementGameStat -_0812B054: - ldr r2, [r4] - ldrh r1, [r2, #8] - movs r3, #4 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _0812B06A - movs r0, #0 - strh r0, [r2, #0x18] - movs r0, #9 - strb r0, [r2] -_0812B06A: - ldr r2, [r4] - ldrh r1, [r2, #8] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0812B07A - movs r0, #0x11 - strb r0, [r2] -_0812B07A: - ldr r1, [r4] - ldrb r0, [r1, #0xa] - cmp r0, #0 - beq _0812B098 - ldrh r1, [r1, #8] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _0812B098 - movs r0, #4 - bl sub_0812DEF4 - ldr r1, [r4] - movs r0, #0x12 - strb r0, [r1] -_0812B098: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0812B0A0: .4byte gUnknown_203A800 - thumb_func_end SlotAction_EndOfRoll - - thumb_func_start SlotAction_MatchedPower -SlotAction_MatchedPower: @ 0x0812B0A4 - push {r4, lr} - bl sub_0812D21C - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0812B0DC - ldr r4, _0812B0E4 - ldr r1, [r4] - movs r0, #0x13 - strb r0, [r1] - ldr r2, [r4] - ldrh r1, [r2, #8] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0812B0DC - movs r0, #9 - strb r0, [r2] - ldr r0, [r4] - ldrb r0, [r0, #0xa] - cmp r0, #0 - beq _0812B0DC - movs r0, #4 - bl sub_0812DEF4 - ldr r1, [r4] - movs r0, #0x12 - strb r0, [r1] -_0812B0DC: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0812B0E4: .4byte gUnknown_203A800 - thumb_func_end SlotAction_MatchedPower - - thumb_func_start SlotAction18 -SlotAction18: @ 0x0812B0E8 - push {lr} - bl sub_0812E064 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0812B10C - ldr r2, _0812B114 - ldr r1, [r2] - movs r0, #0x13 - strb r0, [r1] - ldr r2, [r2] - ldrh r1, [r2, #8] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0812B10C - movs r0, #9 - strb r0, [r2] -_0812B10C: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0812B114: .4byte gUnknown_203A800 - thumb_func_end SlotAction18 - - thumb_func_start SlotAction_Loop -SlotAction_Loop: @ 0x0812B118 - push {lr} - movs r0, #0 - bl sub_0812CEC8 - movs r0, #1 - bl sub_0812CEC8 - movs r0, #2 - bl sub_0812CEC8 - ldr r0, _0812B13C - ldr r1, [r0] - movs r0, #2 - strb r0, [r1] - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0812B13C: .4byte gUnknown_203A800 - thumb_func_end SlotAction_Loop - - thumb_func_start SlotAction_NoMatches -SlotAction_NoMatches: @ 0x0812B140 - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0xa] - adds r0, #1 - strh r0, [r1, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x40 - ble _0812B15E - movs r0, #0 - strh r0, [r1, #0xa] - ldr r0, _0812B164 - ldr r1, [r0] - movs r0, #0x13 - strb r0, [r1] -_0812B15E: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0812B164: .4byte gUnknown_203A800 - thumb_func_end SlotAction_NoMatches - - thumb_func_start SlotAction_PrintQuitTheGame -SlotAction_PrintQuitTheGame: @ 0x0812B168 - push {lr} - sub sp, #0xc - movs r0, #0 - movs r1, #0 - bl sub_08196FB8 - ldr r2, _0812B1B8 - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - movs r2, #0x85 - lsls r2, r2, #2 - movs r3, #0xca - lsls r3, r3, #1 - movs r0, #0xe - str r0, [sp] - movs r0, #0xf - str r0, [sp, #4] - movs r0, #0x15 - movs r1, #7 - bl CreateYesNoMenuParameterized - ldr r0, _0812B1BC - ldr r1, [r0] - movs r0, #0x16 - strb r0, [r1] - movs r0, #0 - add sp, #0xc - pop {r1} - bx r1 - .align 2, 0 -_0812B1B8: .4byte gUnknown_8588606 -_0812B1BC: .4byte gUnknown_203A800 - thumb_func_end SlotAction_PrintQuitTheGame - - thumb_func_start SlotAction_SeeIfPlayerQuits -SlotAction_SeeIfPlayerQuits: @ 0x0812B1C0 - push {lr} - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - bne _0812B1FC - movs r0, #0 - movs r1, #1 - bl sub_08197028 - movs r0, #0 - bl sub_0812CEC8 - movs r0, #1 - bl sub_0812CEC8 - movs r0, #2 - bl sub_0812CEC8 - ldr r0, _0812B1F8 - ldr r1, [r0] - ldrh r0, [r1, #0x12] - ldrh r2, [r1, #0xc] - adds r0, r0, r2 - strh r0, [r1, #0xc] - movs r0, #0x1b - b _0812B216 - .align 2, 0 -_0812B1F8: .4byte gUnknown_203A800 -_0812B1FC: - cmp r1, #1 - beq _0812B208 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _0812B218 -_0812B208: - movs r0, #0 - movs r1, #1 - bl sub_08197028 - ldr r0, _0812B220 - ldr r1, [r0] - movs r0, #5 -_0812B216: - strb r0, [r1] -_0812B218: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0812B220: .4byte gUnknown_203A800 - thumb_func_end SlotAction_SeeIfPlayerQuits - - thumb_func_start sub_0812B224 -sub_0812B224: @ 0x0812B224 - push {lr} - sub sp, #0xc - movs r0, #0 - movs r1, #0 - bl sub_08196FB8 - ldr r2, _0812B25C - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - ldr r0, _0812B260 - ldr r1, [r0] - movs r0, #0x18 - strb r0, [r1] - movs r0, #0 - add sp, #0xc - pop {r1} - bx r1 - .align 2, 0 -_0812B25C: .4byte gUnknown_8588612 -_0812B260: .4byte gUnknown_203A800 - thumb_func_end sub_0812B224 - - thumb_func_start sub_0812B264 -sub_0812B264: @ 0x0812B264 - push {lr} - ldr r0, _0812B288 - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _0812B282 - movs r0, #0 - movs r1, #1 - bl sub_08197028 - ldr r0, _0812B28C - ldr r1, [r0] - movs r0, #5 - strb r0, [r1] -_0812B282: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0812B288: .4byte gUnknown_3002360 -_0812B28C: .4byte gUnknown_203A800 - thumb_func_end sub_0812B264 - - thumb_func_start SlotAction_PrintMessage_NoMoreCoins -SlotAction_PrintMessage_NoMoreCoins: @ 0x0812B290 - push {lr} - sub sp, #0xc - movs r0, #0 - movs r1, #0 - bl sub_08196FB8 - ldr r2, _0812B2C8 - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - ldr r0, _0812B2CC - ldr r1, [r0] - movs r0, #0x1a - strb r0, [r1] - movs r0, #0 - add sp, #0xc - pop {r1} - bx r1 - .align 2, 0 -_0812B2C8: .4byte gUnknown_8588627 -_0812B2CC: .4byte gUnknown_203A800 - thumb_func_end SlotAction_PrintMessage_NoMoreCoins - - thumb_func_start sub_0812B2D0 -sub_0812B2D0: @ 0x0812B2D0 - push {lr} - ldr r0, _0812B2F4 - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _0812B2EE - movs r0, #0 - movs r1, #1 - bl sub_08197028 - ldr r0, _0812B2F8 - ldr r1, [r0] - movs r0, #0x1b - strb r0, [r1] -_0812B2EE: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0812B2F4: .4byte gUnknown_3002360 -_0812B2F8: .4byte gUnknown_203A800 - thumb_func_end sub_0812B2D0 - - thumb_func_start SlotAction_EndGame -SlotAction_EndGame: @ 0x0812B2FC - push {r4, lr} - sub sp, #4 - ldr r4, _0812B338 - ldr r0, [r4] - ldrh r0, [r0, #0xc] - bl SetCoins - bl GetCoins - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl AlertTVOfNewCoinTotal - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, [r4] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #0 - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0812B338: .4byte gUnknown_203A800 - thumb_func_end SlotAction_EndGame - - thumb_func_start SlotAction_FreeDataStructures -SlotAction_FreeDataStructures: @ 0x0812B33C - push {r4, r5, r6, lr} - ldr r0, _0812B488 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - beq _0812B350 - b _0812B480 -_0812B350: - ldr r6, _0812B48C - ldr r0, [r6] - ldr r0, [r0, #0x64] - bl SetMainCallback2 - ldr r4, _0812B490 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0812B494 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0812B498 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0812B49C - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0812B4A0 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0812B4A4 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0812B4A8 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0812B4AC - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0812B4B0 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0812B4B4 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0812B4B8 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0812B4BC - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0812B4C0 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0812B4C4 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0812B4C8 - ldr r0, [r4] - cmp r0, #0 - beq _0812B3F4 - bl Free - str r5, [r4] -_0812B3F4: - ldr r4, _0812B4CC - ldr r0, [r4] - cmp r0, #0 - beq _0812B402 - bl Free - str r5, [r4] -_0812B402: - ldr r4, _0812B4D0 - ldr r0, [r4] - cmp r0, #0 - beq _0812B410 - bl Free - str r5, [r4] -_0812B410: - ldr r4, _0812B4D4 - ldr r0, [r4] - cmp r0, #0 - beq _0812B41E - bl Free - str r5, [r4] -_0812B41E: - ldr r4, _0812B4D8 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0812B4DC - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0812B4E0 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0812B4E4 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0812B4E8 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0812B4EC - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0812B4F0 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0812B4F4 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0812B4F8 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r0, [r6] - bl Free - str r5, [r6] -_0812B480: - movs r0, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0812B488: .4byte gUnknown_2037C74 -_0812B48C: .4byte gUnknown_203A800 -_0812B490: .4byte gUnknown_203A7C0 -_0812B494: .4byte gUnknown_203A7C4 -_0812B498: .4byte gUnknown_203A7C8 -_0812B49C: .4byte gUnknown_203A7CC -_0812B4A0: .4byte gUnknown_203A7D0 -_0812B4A4: .4byte gUnknown_203A7D4 -_0812B4A8: .4byte gUnknown_203A7D8 -_0812B4AC: .4byte gUnknown_203A7DC -_0812B4B0: .4byte gUnknown_203A7E0 -_0812B4B4: .4byte gUnknown_203A7E4 -_0812B4B8: .4byte gUnknown_203A7E8 -_0812B4BC: .4byte gUnknown_203A7EC -_0812B4C0: .4byte gUnknown_203A7F0 -_0812B4C4: .4byte gUnknown_203A7F4 -_0812B4C8: .4byte gUnknown_203A7B0 -_0812B4CC: .4byte gUnknown_203A7B4 -_0812B4D0: .4byte gUnknown_203A7B8 -_0812B4D4: .4byte gUnknown_203A7BC -_0812B4D8: .4byte gUnknown_203A794 -_0812B4DC: .4byte gUnknown_203A798 -_0812B4E0: .4byte gUnknown_203A79C -_0812B4E4: .4byte gUnknown_203A7A0 -_0812B4E8: .4byte gUnknown_203A7A4 -_0812B4EC: .4byte gUnknown_203A7A8 -_0812B4F0: .4byte gUnknown_203A7AC -_0812B4F4: .4byte gUnknown_203A7F8 -_0812B4F8: .4byte gUnknown_203A7FC - thumb_func_end SlotAction_FreeDataStructures - - thumb_func_start DrawLuckyFlags -DrawLuckyFlags: @ 0x0812B4FC - push {r4, lr} - ldr r4, _0812B560 - ldr r1, [r4] - ldrb r0, [r1, #0xa] - cmp r0, #0 - bne _0812B55A - ldrb r1, [r1, #4] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0 - bne _0812B55A - bl IsThisRoundLucky - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0812B53C - bl AttemptsAtLuckyFlags_Top3 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #3 - beq _0812B53C - ldr r2, [r4] - ldr r1, _0812B564 - lsls r0, r3, #1 - adds r0, r0, r1 - ldrb r1, [r0] - ldrb r0, [r2, #4] - orrs r0, r1 - strb r0, [r2, #4] - cmp r3, #1 - bne _0812B55A -_0812B53C: - bl AttemptsAtLuckyFlags_NotTop3 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #5 - beq _0812B55A - ldr r0, _0812B560 - ldr r2, [r0] - ldr r1, _0812B568 - lsls r0, r3, #1 - adds r0, r0, r1 - ldrb r1, [r0] - ldrb r0, [r2, #4] - orrs r0, r1 - strb r0, [r2, #4] -_0812B55A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812B560: .4byte gUnknown_203A800 -_0812B564: .4byte gUnknown_8584782 -_0812B568: .4byte gUnknown_8584788 - thumb_func_end DrawLuckyFlags - - thumb_func_start SetLuckySpins -SetLuckySpins: @ 0x0812B56C - push {lr} - ldr r2, _0812B588 - ldr r1, [r2] - movs r0, #0 - strb r0, [r1, #6] - ldr r2, [r2] - ldrb r0, [r2, #4] - cmp r0, #0 - beq _0812B582 - movs r0, #1 - strb r0, [r2, #6] -_0812B582: - pop {r0} - bx r0 - .align 2, 0 -_0812B588: .4byte gUnknown_203A800 - thumb_func_end SetLuckySpins - - thumb_func_start GetBiasTag -GetBiasTag: @ 0x0812B58C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r2, #0 - movs r3, #1 - ldr r4, _0812B5A8 -_0812B598: - adds r0, r1, #0 - ands r0, r3 - cmp r0, #0 - beq _0812B5AC - adds r0, r2, r4 - ldrb r0, [r0] - b _0812B5BA - .align 2, 0 -_0812B5A8: .4byte gUnknown_858477A -_0812B5AC: - lsrs r1, r1, #1 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #7 - bls _0812B598 - movs r0, #0 -_0812B5BA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetBiasTag - - thumb_func_start IsThisRoundLucky -IsThisRoundLucky: @ 0x0812B5C0 - push {r4, lr} - bl Random - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _0812B5EC - ldr r1, _0812B5F0 - ldr r1, [r1] - movs r3, #0x12 - ldrsh r2, [r1, r3] - ldrb r3, [r1, #1] - lsls r1, r3, #1 - adds r1, r1, r3 - subs r1, #1 - adds r2, r2, r1 - adds r2, r2, r4 - ldrb r1, [r2] - cmp r1, r0 - bhi _0812B5F4 - movs r0, #0 - b _0812B5F6 - .align 2, 0 -_0812B5EC: .4byte gUnknown_8584644 -_0812B5F0: .4byte gUnknown_203A800 -_0812B5F4: - movs r0, #1 -_0812B5F6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end IsThisRoundLucky - - thumb_func_start AttemptsAtLuckyFlags_Top3 -AttemptsAtLuckyFlags_Top3: @ 0x0812B5FC - push {r4, r5, r6, lr} - movs r5, #0 - ldr r6, _0812B63C -_0812B602: - bl Random - movs r2, #0xff - ldr r1, _0812B640 - ldr r3, [r1] - lsls r1, r5, #0x10 - asrs r4, r1, #0x10 - lsls r1, r4, #1 - adds r1, r1, r4 - lsls r1, r1, #1 - ldrb r3, [r3, #1] - adds r1, r1, r3 - adds r1, r1, r6 - ldrb r1, [r1] - ands r2, r0 - cmp r1, r2 - bgt _0812B630 - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - ble _0812B602 -_0812B630: - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0812B63C: .4byte gUnknown_8584656 -_0812B640: .4byte gUnknown_203A800 - thumb_func_end AttemptsAtLuckyFlags_Top3 - - thumb_func_start AttemptsAtLuckyFlags_NotTop3 -AttemptsAtLuckyFlags_NotTop3: @ 0x0812B644 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r6, #0 - ldr r0, _0812B688 - mov r8, r0 - movs r7, #0x80 - lsls r7, r7, #0x11 -_0812B654: - bl Random - movs r5, #0xff - ands r5, r0 - ldr r0, _0812B68C - ldr r4, [r0] - lsls r2, r6, #0x10 - asrs r1, r2, #0x10 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - ldrb r3, [r4, #1] - adds r0, r0, r3 - add r0, r8 - ldrb r3, [r0] - cmp r1, #0 - bne _0812B690 - ldrb r0, [r4, #3] - cmp r0, #1 - bne _0812B690 - adds r3, #0xa - asrs r0, r7, #0x10 - cmp r3, r0 - ble _0812B6AE - adds r3, r0, #0 - b _0812B6AE - .align 2, 0 -_0812B688: .4byte gUnknown_8584668 -_0812B68C: .4byte gUnknown_203A800 -_0812B690: - asrs r0, r2, #0x10 - cmp r0, #4 - bne _0812B6AE - ldr r0, _0812B6D4 - ldr r0, [r0] - ldrb r0, [r0, #3] - cmp r0, #1 - bne _0812B6AE - lsls r0, r3, #0x10 - ldr r1, _0812B6D8 - adds r0, r0, r1 - lsrs r3, r0, #0x10 - cmp r0, #0 - bge _0812B6AE - movs r3, #0 -_0812B6AE: - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - cmp r0, r5 - bgt _0812B6C4 - movs r3, #0x80 - lsls r3, r3, #9 - adds r0, r2, r3 - lsrs r6, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - ble _0812B654 -_0812B6C4: - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0812B6D4: .4byte gUnknown_203A800 -_0812B6D8: .4byte 0xFFF60000 - thumb_func_end AttemptsAtLuckyFlags_NotTop3 - - thumb_func_start GetReelTimeProbability -GetReelTimeProbability: @ 0x0812B6DC - push {lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r0, _0812B6F0 - ldr r2, [r0] - ldrb r0, [r2, #3] - cmp r0, #0 - beq _0812B6F8 - ldr r0, _0812B6F4 - b _0812B6FA - .align 2, 0 -_0812B6F0: .4byte gUnknown_203A800 -_0812B6F4: .4byte gUnknown_85846EC -_0812B6F8: - ldr r0, _0812B70C -_0812B6FA: - lsls r1, r3, #4 - adds r1, r1, r3 - ldrb r2, [r2, #2] - adds r1, r1, r2 - adds r1, r1, r0 - ldrb r0, [r1] - pop {r1} - bx r1 - .align 2, 0 -_0812B70C: .4byte gUnknown_8584686 - thumb_func_end GetReelTimeProbability - - thumb_func_start GetReeltimeDraw -GetReeltimeDraw: @ 0x0812B710 - push {r4, r5, r6, lr} - ldr r0, _0812B734 - ldr r1, [r0] - movs r0, #0 - strb r0, [r1, #5] - bl Random - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #0 - bl GetReelTimeProbability - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - blo _0812B764 - movs r6, #5 - b _0812B73E - .align 2, 0 -_0812B734: .4byte gUnknown_203A800 -_0812B738: - subs r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_0812B73E: - lsls r0, r6, #0x10 - asrs r5, r0, #0x10 - cmp r5, #0 - ble _0812B75E - bl Random - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - bl GetReelTimeProbability - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - bhs _0812B738 -_0812B75E: - ldr r0, _0812B76C - ldr r0, [r0] - strb r6, [r0, #5] -_0812B764: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0812B76C: .4byte gUnknown_203A800 - thumb_func_end GetReeltimeDraw - - thumb_func_start SkipToReeltimeAction14 -SkipToReeltimeAction14: @ 0x0812B770 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - bl Random - movs r1, #0xff - ands r1, r0 - ldr r0, _0812B790 - lsls r4, r4, #1 - adds r4, r4, r0 - ldrh r4, [r4] - cmp r1, r4 - blo _0812B794 - movs r0, #0 - b _0812B796 - .align 2, 0 -_0812B790: .4byte gUnknown_8584752 -_0812B794: - movs r0, #1 -_0812B796: - pop {r4} - pop {r1} - bx r1 - thumb_func_end SkipToReeltimeAction14 - - thumb_func_start SlowReelSpeed -SlowReelSpeed: @ 0x0812B79C - push {r4, r5, lr} - movs r4, #0 - ldr r0, _0812B7B4 - ldr r0, [r0] - movs r2, #0x10 - ldrsh r1, [r0, r2] - ldr r0, _0812B7B8 - cmp r1, r0 - ble _0812B7BC - movs r4, #4 - b _0812B7D2 - .align 2, 0 -_0812B7B4: .4byte gUnknown_203A800 -_0812B7B8: .4byte 0x0000012B -_0812B7BC: - cmp r1, #0xf9 - ble _0812B7C4 - movs r4, #3 - b _0812B7D2 -_0812B7C4: - cmp r1, #0xc7 - ble _0812B7CC - movs r4, #2 - b _0812B7D2 -_0812B7CC: - cmp r1, #0x95 - ble _0812B7D2 - movs r4, #1 -_0812B7D2: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r5, _0812B7F4 - lsls r4, r4, #2 - adds r0, r4, r5 - ldrb r0, [r0] - cmp r1, r0 - bhs _0812B7F8 - movs r0, #4 - b _0812B832 - .align 2, 0 -_0812B7F4: .4byte gUnknown_858475C -_0812B7F8: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x18 - adds r2, r5, #2 - adds r2, r4, r2 - ldr r3, _0812B828 - ldr r1, _0812B82C - ldr r1, [r1] - ldrb r1, [r1, #0xb] - lsls r1, r1, #1 - adds r1, r1, r3 - ldrb r1, [r1] - ldrb r2, [r2] - adds r1, r1, r2 - lsls r1, r1, #0x18 - cmp r0, r1 - blo _0812B830 - movs r0, #8 - b _0812B832 - .align 2, 0 -_0812B828: .4byte gUnknown_8584770 -_0812B82C: .4byte gUnknown_203A800 -_0812B830: - movs r0, #2 -_0812B832: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end SlowReelSpeed - - thumb_func_start CheckMatch -CheckMatch: @ 0x0812B838 - push {r4, lr} - ldr r4, _0812B868 - ldr r1, [r4] - movs r0, #0 - strh r0, [r1, #8] - bl CheckMatch_CenterRow - ldr r0, [r4] - movs r1, #0x12 - ldrsh r0, [r0, r1] - cmp r0, #1 - ble _0812B854 - bl CheckMatch_TopAndBottom -_0812B854: - ldr r0, [r4] - movs r1, #0x12 - ldrsh r0, [r0, r1] - cmp r0, #2 - ble _0812B862 - bl CheckMatch_Diagonals -_0812B862: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812B868: .4byte gUnknown_203A800 - thumb_func_end CheckMatch - - thumb_func_start CheckMatch_CenterRow -CheckMatch_CenterRow: @ 0x0812B86C - push {r4, r5, lr} - movs r0, #0 - movs r1, #2 - bl GetNearbyTag_Quantized - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - movs r0, #1 - movs r1, #2 - bl GetNearbyTag_Quantized - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #2 - movs r1, #2 - bl GetNearbyTag_Quantized - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r5, #0 - adds r1, r4, #0 - bl GetMatchFromSymbolsInRow - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #9 - beq _0812B8CC - ldr r0, _0812B8D4 - ldr r2, [r0] - ldr r0, _0812B8D8 - lsls r1, r1, #1 - adds r0, r1, r0 - ldrh r0, [r0] - ldrh r3, [r2, #0xe] - adds r0, r0, r3 - strh r0, [r2, #0xe] - ldr r0, _0812B8DC - adds r1, r1, r0 - ldrh r0, [r2, #8] - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r2, #8] - movs r0, #0 - bl sub_0812CF44 -_0812B8CC: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B8D4: .4byte gUnknown_203A800 -_0812B8D8: .4byte gUnknown_85847AC -_0812B8DC: .4byte gUnknown_858479A - thumb_func_end CheckMatch_CenterRow - - thumb_func_start CheckMatch_TopAndBottom -CheckMatch_TopAndBottom: @ 0x0812B8E0 - push {r4, r5, lr} - movs r0, #0 - movs r1, #1 - bl GetNearbyTag_Quantized - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r0, #1 - movs r1, #1 - bl GetNearbyTag_Quantized - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #2 - movs r1, #1 - bl GetNearbyTag_Quantized - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r0, r5, #0 - adds r1, r4, #0 - bl GetMatchFromSymbolsInRow - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #9 - beq _0812B940 - cmp r1, #0 - bne _0812B91C - movs r1, #1 -_0812B91C: - ldr r0, _0812B9A4 - ldr r2, [r0] - ldr r0, _0812B9A8 - lsls r1, r1, #1 - adds r0, r1, r0 - ldrh r0, [r0] - ldrh r3, [r2, #0xe] - adds r0, r0, r3 - strh r0, [r2, #0xe] - ldr r0, _0812B9AC - adds r1, r1, r0 - ldrh r0, [r2, #8] - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r2, #8] - movs r0, #1 - bl sub_0812CF44 -_0812B940: - movs r0, #0 - movs r1, #3 - bl GetNearbyTag_Quantized - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r0, #1 - movs r1, #3 - bl GetNearbyTag_Quantized - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #2 - movs r1, #3 - bl GetNearbyTag_Quantized - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r0, r5, #0 - adds r1, r4, #0 - bl GetMatchFromSymbolsInRow - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #9 - beq _0812B99E - cmp r1, #0 - bne _0812B97A - movs r1, #1 -_0812B97A: - ldr r0, _0812B9A4 - ldr r2, [r0] - ldr r0, _0812B9A8 - lsls r1, r1, #1 - adds r0, r1, r0 - ldrh r0, [r0] - ldrh r3, [r2, #0xe] - adds r0, r0, r3 - strh r0, [r2, #0xe] - ldr r0, _0812B9AC - adds r1, r1, r0 - ldrh r0, [r2, #8] - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r2, #8] - movs r0, #2 - bl sub_0812CF44 -_0812B99E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B9A4: .4byte gUnknown_203A800 -_0812B9A8: .4byte gUnknown_85847AC -_0812B9AC: .4byte gUnknown_858479A - thumb_func_end CheckMatch_TopAndBottom - - thumb_func_start CheckMatch_Diagonals -CheckMatch_Diagonals: @ 0x0812B9B0 - push {r4, r5, lr} - movs r0, #0 - movs r1, #1 - bl GetNearbyTag_Quantized - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r0, #1 - movs r1, #2 - bl GetNearbyTag_Quantized - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #2 - movs r1, #3 - bl GetNearbyTag_Quantized - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r0, r5, #0 - adds r1, r4, #0 - bl GetMatchFromSymbolsInRow - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #9 - beq _0812BA0E - cmp r1, #0 - beq _0812BA08 - ldr r0, _0812BA70 - ldr r2, [r0] - ldr r0, _0812BA74 - lsls r1, r1, #1 - adds r0, r1, r0 - ldrh r0, [r0] - ldrh r3, [r2, #0xe] - adds r0, r0, r3 - strh r0, [r2, #0xe] - ldr r0, _0812BA78 - adds r1, r1, r0 - ldrh r0, [r2, #8] - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r2, #8] -_0812BA08: - movs r0, #3 - bl sub_0812CF44 -_0812BA0E: - movs r0, #0 - movs r1, #3 - bl GetNearbyTag_Quantized - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r0, #1 - movs r1, #2 - bl GetNearbyTag_Quantized - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #2 - movs r1, #1 - bl GetNearbyTag_Quantized - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r0, r5, #0 - adds r1, r4, #0 - bl GetMatchFromSymbolsInRow - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #9 - beq _0812BA6A - cmp r1, #0 - beq _0812BA64 - ldr r0, _0812BA70 - ldr r2, [r0] - ldr r0, _0812BA74 - lsls r1, r1, #1 - adds r0, r1, r0 - ldrh r0, [r0] - ldrh r3, [r2, #0xe] - adds r0, r0, r3 - strh r0, [r2, #0xe] - ldr r0, _0812BA78 - adds r1, r1, r0 - ldrh r0, [r2, #8] - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r2, #8] -_0812BA64: - movs r0, #4 - bl sub_0812CF44 -_0812BA6A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0812BA70: .4byte gUnknown_203A800 -_0812BA74: .4byte gUnknown_85847AC -_0812BA78: .4byte gUnknown_858479A - thumb_func_end CheckMatch_Diagonals - - thumb_func_start GetMatchFromSymbolsInRow -GetMatchFromSymbolsInRow: @ 0x0812BA7C - push {lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - cmp r3, r1 - bne _0812BAA0 - cmp r3, r2 - bne _0812BAA0 - ldr r0, _0812BA9C - adds r0, r3, r0 - ldrb r0, [r0] - b _0812BAC6 - .align 2, 0 -_0812BA9C: .4byte gUnknown_8584792 -_0812BAA0: - cmp r3, #0 - bne _0812BAAC - cmp r1, #0 - bne _0812BAAC - cmp r2, #1 - beq _0812BAB8 -_0812BAAC: - cmp r3, #1 - bne _0812BABC - cmp r1, #1 - bne _0812BABC - cmp r2, #0 - bne _0812BABC -_0812BAB8: - movs r0, #6 - b _0812BAC6 -_0812BABC: - cmp r3, #4 - beq _0812BAC4 - movs r0, #9 - b _0812BAC6 -_0812BAC4: - movs r0, #0 -_0812BAC6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetMatchFromSymbolsInRow - - thumb_func_start AwardPayout -AwardPayout: @ 0x0812BACC - push {r4, lr} - ldr r4, _0812BAE8 - adds r0, r4, #0 - movs r1, #4 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812BAE8: .4byte sub_0812BB0C - thumb_func_end AwardPayout - - thumb_func_start sub_0812BAEC -sub_0812BAEC: @ 0x0812BAEC - push {lr} - ldr r0, _0812BB00 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _0812BB04 - movs r0, #0 - b _0812BB06 - .align 2, 0 -_0812BB00: .4byte sub_0812BB0C -_0812BB04: - movs r0, #1 -_0812BB06: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0812BAEC - - thumb_func_start sub_0812BB0C -sub_0812BB0C: @ 0x0812BB0C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _0812BB3C - ldr r2, _0812BB40 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_0812BB1E: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0812BB1E - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0812BB3C: .4byte gUnknown_8584448 -_0812BB40: .4byte gUnknown_3005B60 - thumb_func_end sub_0812BB0C - - thumb_func_start AwardPayoutAction0 -AwardPayoutAction0: @ 0x0812BB44 - push {r4, lr} - adds r4, r0, #0 - bl sub_0812CF7C - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0812BB70 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - ldr r0, _0812BB6C - ldr r0, [r0] - movs r1, #0xe - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _0812BB70 - movs r0, #2 - strh r0, [r4, #8] - movs r0, #1 - b _0812BB72 - .align 2, 0 -_0812BB6C: .4byte gUnknown_203A800 -_0812BB70: - movs r0, #0 -_0812BB72: - pop {r4} - pop {r1} - bx r1 - thumb_func_end AwardPayoutAction0 - - thumb_func_start AwardPayoutAction_GivePayoutToPlayer -AwardPayoutAction_GivePayoutToPlayer: @ 0x0812BB78 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0xa] - subs r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _0812BBCC - bl IsFanfareTaskInactive - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0812BB9E - movs r0, #0x15 - bl sub_080A306C -_0812BB9E: - ldr r0, _0812BC20 - ldr r2, [r0] - ldrh r0, [r2, #0xe] - subs r0, #1 - strh r0, [r2, #0xe] - ldrh r3, [r2, #0xc] - movs r0, #0xc - ldrsh r1, [r2, r0] - ldr r0, _0812BC24 - cmp r1, r0 - bgt _0812BBB8 - adds r0, r3, #1 - strh r0, [r2, #0xc] -_0812BBB8: - movs r0, #8 - strh r0, [r4, #0xa] - ldr r0, _0812BC28 - ldrh r1, [r0, #0x2c] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0812BBCC - movs r0, #4 - strh r0, [r4, #0xa] -_0812BBCC: - bl IsFanfareTaskInactive - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0812BC06 - ldr r0, _0812BC28 - ldrh r1, [r0, #0x2e] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0812BC06 - movs r0, #0x15 - bl sub_080A306C - ldr r1, _0812BC20 - ldr r2, [r1] - ldrh r0, [r2, #0xe] - ldrh r3, [r2, #0xc] - adds r0, r0, r3 - strh r0, [r2, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldr r3, _0812BC2C - cmp r0, r3 - ble _0812BC00 - strh r3, [r2, #0xc] -_0812BC00: - ldr r1, [r1] - movs r0, #0 - strh r0, [r1, #0xe] -_0812BC06: - ldr r0, _0812BC20 - ldr r0, [r0] - movs r1, #0xe - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _0812BC18 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_0812BC18: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0812BC20: .4byte gUnknown_203A800 -_0812BC24: .4byte 0x0000270E -_0812BC28: .4byte gUnknown_3002360 -_0812BC2C: .4byte 0x0000270F - thumb_func_end AwardPayoutAction_GivePayoutToPlayer - - thumb_func_start AwardPayoutAction_FreeTask -AwardPayoutAction_FreeTask: @ 0x0812BC30 - push {lr} - bl sub_0812CFC8 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0812BC4A - ldr r0, _0812BC50 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_0812BC4A: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0812BC50: .4byte sub_0812BB0C - thumb_func_end AwardPayoutAction_FreeTask - - thumb_func_start GetNearbyTag_Quantized -GetNearbyTag_Quantized: @ 0x0812BC54 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r4, r0, #0 - ldr r0, _0812BCA0 - ldr r0, [r0] - lsls r2, r4, #1 - adds r0, #0x28 - adds r0, r0, r2 - movs r2, #0 - ldrsh r0, [r0, r2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r0, r1 - movs r1, #0x15 - bl __modsi3 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _0812BC86 - adds r0, #0x15 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 -_0812BC86: - ldr r2, _0812BCA4 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0812BCA0: .4byte gUnknown_203A800 -_0812BCA4: .4byte gUnknown_85845F2 - thumb_func_end GetNearbyTag_Quantized - - thumb_func_start GetNearbyTag -GetNearbyTag: @ 0x0812BCA8 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r4, r0, #0 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - movs r6, #0 - ldr r0, _0812BCF0 - ldr r0, [r0] - lsls r1, r4, #1 - adds r0, #0x1c - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - movs r1, #0x18 - bl __modsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0812BCD2 - ldr r6, _0812BCF4 -_0812BCD2: - lsls r1, r5, #0x10 - asrs r1, r1, #0x10 - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - adds r1, r1, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r4, #0 - bl GetNearbyTag_Quantized - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0812BCF0: .4byte gUnknown_203A800 -_0812BCF4: .4byte 0x0000FFFF - thumb_func_end GetNearbyTag - - thumb_func_start GetNearbyReelTimeTag -GetNearbyReelTimeTag: @ 0x0812BCF8 - push {lr} - ldr r1, _0812BD30 - ldr r1, [r1] - movs r2, #0x16 - ldrsh r1, [r1, r2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r1, r0 - adds r0, r1, #0 - movs r1, #6 - bl __modsi3 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _0812BD20 - adds r0, #6 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 -_0812BD20: - ldr r0, _0812BD34 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r1, r1, r0 - ldrb r0, [r1] - pop {r1} - bx r1 - .align 2, 0 -_0812BD30: .4byte gUnknown_203A800 -_0812BD34: .4byte gUnknown_8584631 - thumb_func_end GetNearbyReelTimeTag - - thumb_func_start AdvanceSlotReel -AdvanceSlotReel: @ 0x0812BD38 - push {r4, r5, r6, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - ldr r0, _0812BD7C - ldr r6, [r0] - lsrs r5, r5, #0x17 - adds r4, r6, #0 - adds r4, #0x1c - adds r4, r4, r5 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldrh r0, [r4] - adds r1, r1, r0 - strh r1, [r4] - movs r1, #0 - ldrsh r0, [r4, r1] - movs r1, #0xfc - lsls r1, r1, #1 - bl __modsi3 - strh r0, [r4] - adds r6, #0x28 - adds r6, r6, r5 - movs r1, #0 - ldrsh r0, [r4, r1] - movs r1, #0x18 - bl __divsi3 - movs r1, #0x15 - subs r1, r1, r0 - strh r1, [r6] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0812BD7C: .4byte gUnknown_203A800 - thumb_func_end AdvanceSlotReel - - thumb_func_start AdvanceSlotReelToNextTag -AdvanceSlotReelToNextTag: @ 0x0812BD80 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - ldr r7, _0812BDE0 - ldr r0, [r7] - lsls r6, r5, #1 - adds r0, #0x1c - adds r0, r0, r6 - movs r1, #0 - ldrsh r0, [r0, r1] - movs r1, #0x18 - bl __modsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r2, r0, #0x10 - asrs r1, r2, #0x10 - cmp r1, #0 - beq _0812BDD4 - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - cmp r1, r0 - bge _0812BDB6 - lsrs r4, r2, #0x10 -_0812BDB6: - lsls r1, r4, #0x10 - asrs r1, r1, #0x10 - adds r0, r5, #0 - bl AdvanceSlotReel - ldr r0, [r7] - adds r0, #0x1c - adds r0, r0, r6 - movs r1, #0 - ldrsh r0, [r0, r1] - movs r1, #0x18 - bl __modsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 -_0812BDD4: - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0812BDE0: .4byte gUnknown_203A800 - thumb_func_end AdvanceSlotReelToNextTag - - thumb_func_start AdvanceReeltimeReel -AdvanceReeltimeReel: @ 0x0812BDE4 - push {r4, lr} - ldr r1, _0812BE18 - ldr r4, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrh r1, [r4, #0x14] - adds r0, 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, #6 - subs r1, r1, r0 - strh r1, [r4, #0x16] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812BE18: .4byte gUnknown_203A800 - thumb_func_end AdvanceReeltimeReel - - thumb_func_start AdvanceReeltimeReelToNextTag -AdvanceReeltimeReelToNextTag: @ 0x0812BE1C - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r5, _0812BE68 - ldr r0, [r5] - movs r1, #0x14 - ldrsh r0, [r0, r1] - movs r1, #0x14 - bl __modsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r2, r0, #0x10 - asrs r1, r2, #0x10 - cmp r1, #0 - beq _0812BE5E - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - cmp r1, r0 - bge _0812BE46 - lsrs r4, r2, #0x10 -_0812BE46: - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - bl AdvanceReeltimeReel - ldr r0, [r5] - movs r1, #0x14 - ldrsh r0, [r0, r1] - movs r1, #0x14 - bl __modsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 -_0812BE5E: - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0812BE68: .4byte gUnknown_203A800 - thumb_func_end AdvanceReeltimeReelToNextTag - - thumb_func_start GameplayTask_StopSlotReel -GameplayTask_StopSlotReel: @ 0x0812BE6C - push {r4, r5, r6, lr} - movs r4, #0 - ldr r5, _0812BEA8 - ldr r6, _0812BEAC -_0812BE74: - adds r0, r5, #0 - movs r1, #2 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r6 - strh r4, [r1, #0x26] - ldr r1, _0812BEB0 - ldr r1, [r1] - adds r1, #0x3a - adds r1, r1, r4 - strb r0, [r1] - bl _call_via_r5 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #2 - bls _0812BE74 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0812BEA8: .4byte sub_0812BF3C -_0812BEAC: .4byte gUnknown_3005B60 -_0812BEB0: .4byte gUnknown_203A800 - thumb_func_end GameplayTask_StopSlotReel - - thumb_func_start ReelTasks_SetUnkTaskData -ReelTasks_SetUnkTaskData: @ 0x0812BEB4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _0812BEE4 - ldr r1, _0812BEE8 - ldr r2, [r1] - adds r2, #0x3a - adds r2, r2, r0 - ldrb r1, [r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r4 - movs r3, #1 - strh r3, [r0, #8] - ldrb r1, [r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r4 - strh r3, [r0, #0x24] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812BEE4: .4byte gUnknown_3005B60 -_0812BEE8: .4byte gUnknown_203A800 - thumb_func_end ReelTasks_SetUnkTaskData - - thumb_func_start sub_0812BEEC -sub_0812BEEC: @ 0x0812BEEC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0812BF0C - ldr r1, _0812BF10 - ldr r1, [r1] - adds r1, #0x3a - adds r1, r1, r0 - ldrb r1, [r1] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r1, #2 - strh r1, [r0, #8] - bx lr - .align 2, 0 -_0812BF0C: .4byte gUnknown_3005B60 -_0812BF10: .4byte gUnknown_203A800 - thumb_func_end sub_0812BEEC - - thumb_func_start IsSlotReelMoving -IsSlotReelMoving: @ 0x0812BF14 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0812BF34 - ldr r1, _0812BF38 - ldr r1, [r1] - adds r1, #0x3a - adds r1, r1, r0 - ldrb r1, [r1] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrh r0, [r0, #0x24] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bx lr - .align 2, 0 -_0812BF34: .4byte gUnknown_3005B60 -_0812BF38: .4byte gUnknown_203A800 - thumb_func_end IsSlotReelMoving - - thumb_func_start sub_0812BF3C -sub_0812BF3C: @ 0x0812BF3C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _0812BF6C - ldr r2, _0812BF70 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_0812BF4E: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0812BF4E - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0812BF6C: .4byte gUnknown_8584454 -_0812BF70: .4byte gUnknown_3005B60 - thumb_func_end sub_0812BF3C - - thumb_func_start sub_0812BF74 -sub_0812BF74: @ 0x0812BF74 - movs r0, #0 - bx lr - thumb_func_end sub_0812BF74 - - thumb_func_start SlotReelAction_Spin -SlotReelAction_Spin: @ 0x0812BF78 - push {lr} - ldrh r0, [r0, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0812BF94 - ldr r1, [r1] - movs r2, #0x1a - ldrsh r1, [r1, r2] - bl AdvanceSlotReel - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0812BF94: .4byte gUnknown_203A800 - thumb_func_end SlotReelAction_Spin - - thumb_func_start SlotReelAction_DecideWhereToStop -SlotReelAction_DecideWhereToStop: @ 0x0812BF98 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #8] - adds r0, #1 - movs r2, #0 - strh r0, [r4, #8] - ldr r0, _0812C020 - ldr r3, [r0] - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r1, r1, #1 - adds r0, r3, #0 - adds r0, #0x34 - adds r0, r0, r1 - strh r2, [r0] - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r1, r1, #1 - adds r0, r3, #0 - adds r0, #0x2e - adds r0, r0, r1 - strh r2, [r0] - ldrb r0, [r3, #0xa] - cmp r0, #0 - bne _0812C004 - ldrb r0, [r3, #4] - cmp r0, #0 - beq _0812BFEC - ldrb r0, [r3, #6] - cmp r0, #0 - beq _0812BFEC - ldr r1, _0812C024 - movs r2, #0x26 - ldrsh r0, [r4, r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0812C004 -_0812BFEC: - ldr r0, _0812C020 - ldr r1, [r0] - movs r0, #0 - strb r0, [r1, #6] - ldr r1, _0812C028 - movs r2, #0x26 - ldrsh r0, [r4, r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 -_0812C004: - ldr r0, _0812C020 - ldr r1, [r0] - movs r2, #0x26 - ldrsh r0, [r4, r2] - lsls r0, r0, #1 - adds r1, #0x2e - adds r1, r1, r0 - ldrh r0, [r1] - strh r0, [r4, #0xa] - movs r0, #1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0812C020: .4byte gUnknown_203A800 -_0812C024: .4byte gUnknown_8584468 -_0812C028: .4byte gUnknown_8584474 - thumb_func_end SlotReelAction_DecideWhereToStop - - thumb_func_start SlotReelAction_MoveToStop -SlotReelAction_MoveToStop: @ 0x0812C02C - push {r4, r5, r6, r7, lr} - sub sp, #0xc - adds r4, r0, #0 - ldr r1, _0812C070 - mov r0, sp - movs r2, #0xa - bl memcpy - ldr r7, _0812C074 - ldr r5, [r7] - movs r1, #0x26 - ldrsh r0, [r4, r1] - lsls r6, r0, #1 - adds r0, r5, #0 - adds r0, #0x1c - adds r0, r0, r6 - movs r2, #0 - ldrsh r0, [r0, r2] - movs r1, #0x18 - bl __modsi3 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r0, #0 - beq _0812C078 - ldrh r0, [r4, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r6, #0x1a - ldrsh r1, [r5, r6] - bl AdvanceSlotReelToNextTag - b _0812C0B0 - .align 2, 0 -_0812C070: .4byte gUnknown_8584480 -_0812C074: .4byte gUnknown_203A800 -_0812C078: - adds r0, r5, #0 - adds r0, #0x2e - adds r1, r0, r6 - ldrh r3, [r1] - movs r6, #0 - ldrsh r0, [r1, r6] - cmp r0, #0 - beq _0812C0B4 - subs r0, r3, #1 - strh r0, [r1] - ldrh r0, [r4, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0x1a - ldrsh r1, [r5, r2] - bl AdvanceSlotReel - ldr r1, [r7] - movs r6, #0x26 - ldrsh r0, [r4, r6] - lsls r0, r0, #1 - adds r1, #0x1c - adds r1, r1, r0 - movs r2, #0 - ldrsh r0, [r1, r2] - movs r1, #0x18 - bl __modsi3 -_0812C0B0: - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 -_0812C0B4: - cmp r2, #0 - bne _0812C0E2 - ldr r0, _0812C0EC - ldr r1, [r0] - movs r6, #0x26 - ldrsh r0, [r4, r6] - lsls r0, r0, #1 - adds r1, #0x2e - adds r1, r1, r0 - movs r0, #0 - ldrsh r1, [r1, r0] - cmp r1, #0 - bne _0812C0E2 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r2, #0xa - ldrsh r0, [r4, r2] - lsls r0, r0, #1 - add r0, sp - ldrh r0, [r0] - strh r0, [r4, #0xa] - strh r1, [r4, #0xc] -_0812C0E2: - movs r0, #0 - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0812C0EC: .4byte gUnknown_203A800 - thumb_func_end SlotReelAction_MoveToStop - - thumb_func_start SlotReelAction_OscillatingStop -SlotReelAction_OscillatingStop: @ 0x0812C0F0 - push {r4, lr} - adds r2, r0, #0 - ldr r4, _0812C144 - ldr r1, [r4] - movs r3, #0x26 - ldrsh r0, [r2, r3] - lsls r0, r0, #1 - adds r1, #0x22 - adds r1, r1, r0 - ldrh r0, [r2, #0xa] - strh r0, [r1] - ldrh r0, [r2, #0xa] - rsbs r3, r0, #0 - strh r3, [r2, #0xa] - ldrh r0, [r2, #0xc] - adds r0, #1 - strh r0, [r2, #0xc] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0812C120 - lsls r0, r3, #0x10 - asrs r0, r0, #0x11 - strh r0, [r2, #0xa] -_0812C120: - movs r0, #0xa - ldrsh r3, [r2, r0] - cmp r3, #0 - bne _0812C13A - strh r3, [r2, #8] - strh r3, [r2, #0x24] - ldr r1, [r4] - movs r4, #0x26 - ldrsh r0, [r2, r4] - lsls r0, r0, #1 - adds r1, #0x22 - adds r1, r1, r0 - strh r3, [r1] -_0812C13A: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0812C144: .4byte gUnknown_203A800 - thumb_func_end SlotReelAction_OscillatingStop - - thumb_func_start DecideReelTurns_BiasTag_Reel1 -DecideReelTurns_BiasTag_Reel1: @ 0x0812C148 - push {r4, r5, lr} - ldr r4, _0812C18C - ldr r0, [r4] - ldrb r0, [r0, #4] - bl GetBiasTag - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - adds r5, r3, #0 - ldr r4, [r4] - ldrb r1, [r4, #4] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0 - beq _0812C16A - movs r5, #0 - movs r3, #1 -_0812C16A: - ldr r1, _0812C190 - movs r2, #0x12 - ldrsh r0, [r4, r2] - subs r0, #1 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r2, [r0] - adds r0, r5, #0 - adds r1, r3, #0 - bl _call_via_r2 - thumb_func_end DecideReelTurns_BiasTag_Reel1 - - thumb_func_start sub_0812C180 -sub_0812C180: @ 0x0812C180 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0812C18C: .4byte gUnknown_203A800 -_0812C190: .4byte gUnknown_858448C - thumb_func_end sub_0812C180 - - thumb_func_start AreTagsAtPosition_Reel1 -AreTagsAtPosition_Reel1: @ 0x0812C194 - push {r4, r5, lr} - adds r3, r0, #0 - adds r4, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - movs r0, #0 - adds r1, r3, #0 - bl GetNearbyTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - cmp r0, r4 - beq _0812C1BC - cmp r0, r5 - bne _0812C1CC -_0812C1BC: - ldr r0, _0812C1C8 - ldr r0, [r0] - strb r1, [r0, #7] - movs r0, #1 - b _0812C1CE - .align 2, 0 -_0812C1C8: .4byte gUnknown_203A800 -_0812C1CC: - movs r0, #0 -_0812C1CE: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end AreTagsAtPosition_Reel1 - - thumb_func_start AreCherriesOnScreen_Reel1 -AreCherriesOnScreen_Reel1: @ 0x0812C1D4 - push {r4, lr} - movs r1, #1 - lsls r0, r0, #0x10 - asrs r4, r0, #0x10 - subs r1, r1, r4 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #0 - bl GetNearbyTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - beq _0812C21C - movs r1, #2 - subs r1, r1, r4 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #0 - bl GetNearbyTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - beq _0812C21C - movs r1, #3 - subs r1, r1, r4 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #0 - bl GetNearbyTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bne _0812C220 -_0812C21C: - movs r0, #1 - b _0812C222 -_0812C220: - movs r0, #0 -_0812C222: - pop {r4} - pop {r1} - bx r1 - thumb_func_end AreCherriesOnScreen_Reel1 - - thumb_func_start IsBiasTowardsCherryOr7s -IsBiasTowardsCherryOr7s: @ 0x0812C228 - push {lr} - ldr r0, _0812C23C - ldr r0, [r0] - ldrb r1, [r0, #4] - movs r0, #0xc2 - ands r0, r1 - cmp r0, #0 - bne _0812C240 - movs r0, #0 - b _0812C242 - .align 2, 0 -_0812C23C: .4byte gUnknown_203A800 -_0812C240: - movs r0, #1 -_0812C242: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsBiasTowardsCherryOr7s - - thumb_func_start DecideReelTurns_BiasTag_Reel1_Bet1 -DecideReelTurns_BiasTag_Reel1_Bet1: @ 0x0812C248 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - movs r5, #0 - movs r0, #2 - mov r8, r0 -_0812C25C: - lsls r0, r5, #0x10 - asrs r4, r0, #0x10 - mov r1, r8 - subs r0, r1, r4 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r7, #0 - adds r2, r6, #0 - bl AreTagsAtPosition_Reel1 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0812C288 - ldr r0, _0812C284 - ldr r1, [r0] - movs r0, #2 - strh r0, [r1, #0x34] - strh r5, [r1, #0x2e] - movs r0, #1 - b _0812C296 - .align 2, 0 -_0812C284: .4byte gUnknown_203A800 -_0812C288: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - ble _0812C25C - movs r0, #0 -_0812C296: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end DecideReelTurns_BiasTag_Reel1_Bet1 - - thumb_func_start DecideReelTurns_BiasTag_Reel1_Bet2or3 -DecideReelTurns_BiasTag_Reel1_Bet2or3: @ 0x0812C2A0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - bl IsBiasTowardsCherryOr7s - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _0812C2CE - movs r0, #0 - bl AreCherriesOnScreen_Reel1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0812C304 -_0812C2CE: - movs r7, #1 - movs r6, #0 -_0812C2D2: - lsls r0, r7, #0x10 - asrs r4, r0, #0x10 - adds r0, r4, #0 - mov r1, sb - mov r2, r8 - bl AreTagsAtPosition_Reel1 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0812C2F8 - ldr r0, _0812C2F4 - ldr r0, [r0] - strh r7, [r0, #0x34] - strh r6, [r0, #0x2e] - movs r0, #1 - b _0812C3A0 - .align 2, 0 -_0812C2F4: .4byte gUnknown_203A800 -_0812C2F8: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - ble _0812C2D2 -_0812C304: - movs r7, #1 - adds r6, r5, #0 - ldr r0, _0812C358 - mov sl, r0 -_0812C30C: - lsls r5, r7, #0x10 - cmp r6, #0 - bne _0812C31E - asrs r0, r5, #0x10 - bl AreCherriesOnScreen_Reel1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0812C390 -_0812C31E: - movs r0, #1 - asrs r4, r5, #0x10 - subs r0, r0, r4 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov r1, sb - mov r2, r8 - bl AreTagsAtPosition_Reel1 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0812C390 - cmp r4, #1 - bne _0812C35C - cmp r6, #0 - bne _0812C34A - movs r0, #3 - bl AreCherriesOnScreen_Reel1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0812C35C -_0812C34A: - mov r0, sl - ldr r1, [r0] - movs r0, #3 - strh r0, [r1, #0x34] - strh r0, [r1, #0x2e] - movs r0, #1 - b _0812C3A0 - .align 2, 0 -_0812C358: .4byte gUnknown_203A800 -_0812C35C: - asrs r0, r5, #0x10 - cmp r0, #3 - bgt _0812C384 - adds r4, r0, #1 - cmp r6, #0 - bne _0812C376 - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - bl AreCherriesOnScreen_Reel1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0812C384 -_0812C376: - mov r0, sl - ldr r1, [r0] - movs r0, #2 - strh r0, [r1, #0x34] - strh r4, [r1, #0x2e] - movs r0, #1 - b _0812C3A0 -_0812C384: - mov r0, sl - ldr r1, [r0] - movs r0, #1 - strh r0, [r1, #0x34] - strh r7, [r1, #0x2e] - b _0812C3A0 -_0812C390: - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r5, r1 - lsrs r7, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - ble _0812C30C - movs r0, #0 -_0812C3A0: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end DecideReelTurns_BiasTag_Reel1_Bet2or3 - - thumb_func_start DecideReelTurns_BiasTag_Reel2 -DecideReelTurns_BiasTag_Reel2: @ 0x0812C3B0 - push {lr} - ldr r1, _0812C3D0 - ldr r0, _0812C3D4 - ldr r0, [r0] - movs r2, #0x12 - ldrsh r0, [r0, r2] - subs r0, #1 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - thumb_func_end DecideReelTurns_BiasTag_Reel2 - - thumb_func_start sub_0812C3C8 -sub_0812C3C8: @ 0x0812C3C8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0812C3D0: .4byte gUnknown_8584498 -_0812C3D4: .4byte gUnknown_203A800 - thumb_func_end sub_0812C3C8 - - thumb_func_start DecideReelTurns_BiasTag_Reel2_Bet1or2 -DecideReelTurns_BiasTag_Reel2_Bet1or2: @ 0x0812C3D8 - push {r4, r5, r6, r7, lr} - ldr r0, _0812C40C - ldr r0, [r0] - movs r5, #0 - ldrh r7, [r0, #0x34] - movs r1, #0x34 - ldrsh r6, [r0, r1] -_0812C3E6: - lsls r0, r5, #0x10 - asrs r4, r0, #0x10 - subs r1, r6, r4 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #1 - bl GetNearbyTag - ldr r1, _0812C40C - ldr r1, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r2, [r1, #7] - cmp r0, r2 - bne _0812C410 - strh r7, [r1, #0x36] - strh r5, [r1, #0x30] - movs r0, #1 - b _0812C41E - .align 2, 0 -_0812C40C: .4byte gUnknown_203A800 -_0812C410: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - ble _0812C3E6 - movs r0, #0 -_0812C41E: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end DecideReelTurns_BiasTag_Reel2_Bet1or2 - - thumb_func_start DecideReelTurns_BiasTag_Reel2_Bet3 -DecideReelTurns_BiasTag_Reel2_Bet3: @ 0x0812C424 - push {r4, r5, r6, lr} - bl DecideReelTurns_BiasTag_Reel2_Bet1or2 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0812C486 - ldr r0, _0812C478 - ldr r1, [r0] - movs r2, #0x34 - ldrsh r0, [r1, r2] - cmp r0, #2 - beq _0812C482 - movs r2, #0x30 - ldrsh r0, [r1, r2] - cmp r0, #1 - ble _0812C482 - cmp r0, #4 - beq _0812C482 - movs r5, #0 - movs r6, #2 -_0812C44C: - lsls r0, r5, #0x10 - asrs r4, r0, #0x10 - subs r1, r6, r4 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #1 - bl GetNearbyTag - ldr r1, _0812C478 - ldr r1, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r2, [r1, #7] - cmp r0, r2 - beq _0812C47C - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - ble _0812C44C - b _0812C482 - .align 2, 0 -_0812C478: .4byte gUnknown_203A800 -_0812C47C: - movs r0, #2 - strh r0, [r1, #0x36] - strh r5, [r1, #0x30] -_0812C482: - movs r0, #1 - b _0812C4C2 -_0812C486: - ldr r0, _0812C4C8 - ldr r0, [r0] - movs r1, #0x34 - ldrsh r0, [r0, r1] - cmp r0, #2 - beq _0812C4C0 - movs r5, #0 - movs r6, #2 -_0812C496: - lsls r0, r5, #0x10 - asrs r4, r0, #0x10 - subs r1, r6, r4 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #1 - bl GetNearbyTag - ldr r1, _0812C4C8 - ldr r1, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r2, [r1, #7] - cmp r0, r2 - beq _0812C47C - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - ble _0812C496 -_0812C4C0: - movs r0, #0 -_0812C4C2: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0812C4C8: .4byte gUnknown_203A800 - thumb_func_end DecideReelTurns_BiasTag_Reel2_Bet3 - - thumb_func_start DecideReelTurns_BiasTag_Reel3 -DecideReelTurns_BiasTag_Reel3: @ 0x0812C4CC - push {r4, lr} - ldr r2, _0812C508 - ldr r0, [r2] - ldrb r3, [r0, #7] - adds r4, r3, #0 - ldrb r1, [r0, #4] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0812C4E8 - movs r3, #0 - cmp r4, #0 - bne _0812C4E8 - movs r3, #1 -_0812C4E8: - ldr r1, _0812C50C - ldr r0, [r2] - movs r2, #0x12 - ldrsh r0, [r0, r2] - subs r0, #1 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r3, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0812C508: .4byte gUnknown_203A800 -_0812C50C: .4byte gUnknown_85844A4 - thumb_func_end DecideReelTurns_BiasTag_Reel3 - - thumb_func_start DecideReelTurns_BiasTag_Reel3_Bet1or2 -DecideReelTurns_BiasTag_Reel3_Bet1or2: @ 0x0812C510 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _0812C550 - ldr r0, [r0] - movs r5, #0 - ldrh r1, [r0, #0x36] - mov r8, r1 - movs r1, #0x36 - ldrsh r6, [r0, r1] -_0812C528: - lsls r0, r5, #0x10 - asrs r4, r0, #0x10 - subs r1, r6, r4 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #2 - bl GetNearbyTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r7 - bne _0812C554 - ldr r0, _0812C550 - ldr r0, [r0] - mov r1, r8 - strh r1, [r0, #0x38] - strh r5, [r0, #0x32] - movs r0, #1 - b _0812C562 - .align 2, 0 -_0812C550: .4byte gUnknown_203A800 -_0812C554: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - ble _0812C528 - movs r0, #0 -_0812C562: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end DecideReelTurns_BiasTag_Reel3_Bet1or2 - - thumb_func_start DecideReelTurns_BiasTag_Reel3_Bet3 -DecideReelTurns_BiasTag_Reel3_Bet3: @ 0x0812C56C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _0812C594 - ldr r0, [r0] - movs r2, #0x34 - ldrsh r1, [r0, r2] - movs r2, #0x36 - ldrsh r0, [r0, r2] - cmp r1, r0 - bne _0812C5AC - adds r0, r6, #0 - bl DecideReelTurns_BiasTag_Reel3_Bet1or2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0812C5E2 - .align 2, 0 -_0812C594: .4byte gUnknown_203A800 -_0812C598: - ldr r0, _0812C5A8 - ldr r0, [r0] - strh r5, [r0, #0x32] - mov r1, r8 - strh r1, [r0, #0x38] - movs r0, #1 - b _0812C5E2 - .align 2, 0 -_0812C5A8: .4byte gUnknown_203A800 -_0812C5AC: - movs r2, #1 - mov r8, r2 - cmp r1, #1 - bne _0812C5B8 - movs r0, #3 - mov r8, r0 -_0812C5B8: - movs r5, #0 - mov r7, r8 -_0812C5BC: - lsls r0, r5, #0x10 - asrs r4, r0, #0x10 - subs r1, r7, r4 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #2 - bl GetNearbyTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r6 - beq _0812C598 - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - ble _0812C5BC - movs r0, #0 -_0812C5E2: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end DecideReelTurns_BiasTag_Reel3_Bet3 - - thumb_func_start DecideReelTurns_NoBiasTag_Reel1 -DecideReelTurns_NoBiasTag_Reel1: @ 0x0812C5EC - push {r4, r5, lr} - movs r5, #0 - b _0812C5F8 -_0812C5F2: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_0812C5F8: - lsls r0, r5, #0x10 - asrs r4, r0, #0x10 - adds r0, r4, #0 - bl AreCherriesOnScreen_Reel1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0812C5F2 - ldr r0, _0812C614 - ldr r0, [r0] - strh r5, [r0, #0x2e] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0812C614: .4byte gUnknown_203A800 - thumb_func_end DecideReelTurns_NoBiasTag_Reel1 - - thumb_func_start IsBiasTag777_SwitchColor -IsBiasTag777_SwitchColor: @ 0x0812C618 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1] - cmp r0, #0 - bne _0812C626 - movs r0, #1 - b _0812C630 -_0812C626: - cmp r0, #1 - beq _0812C62E - movs r0, #0 - b _0812C634 -_0812C62E: - movs r0, #0 -_0812C630: - strb r0, [r1] - movs r0, #1 -_0812C634: - pop {r1} - bx r1 - thumb_func_end IsBiasTag777_SwitchColor - - thumb_func_start sub_0812C638 -sub_0812C638: @ 0x0812C638 - push {lr} - ldr r1, _0812C654 - ldr r0, _0812C658 - ldr r0, [r0] - movs r2, #0x12 - ldrsh r0, [r0, r2] - subs r0, #1 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - thumb_func_end sub_0812C638 - - thumb_func_start sub_0812C650 -sub_0812C650: @ 0x0812C650 - pop {r0} - bx r0 - .align 2, 0 -_0812C654: .4byte gUnknown_85844B0 -_0812C658: .4byte gUnknown_203A800 - thumb_func_end sub_0812C650 - - thumb_func_start DecideReelTurns_NoBiasTag_Reel2_Bet1 -DecideReelTurns_NoBiasTag_Reel2_Bet1: @ 0x0812C65C - push {r4, r5, r6, r7, lr} - sub sp, #4 - ldr r0, _0812C6C4 - ldr r2, [r0] - movs r1, #0x34 - ldrsh r0, [r2, r1] - cmp r0, #0 - beq _0812C6D4 - ldrb r1, [r2, #4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0812C6D4 - ldrh r0, [r2, #0x2e] - movs r1, #2 - subs r1, r1, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #0 - bl GetNearbyTag - mov r1, sp - strb r0, [r1] - mov r0, sp - bl IsBiasTag777_SwitchColor - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0812C6D4 - movs r5, #0 - mov r6, sp - movs r7, #2 -_0812C69C: - lsls r0, r5, #0x10 - asrs r4, r0, #0x10 - subs r1, r7, r4 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #1 - bl GetNearbyTag - ldrb r1, [r6] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r1, r0 - bne _0812C6C8 - ldr r0, _0812C6C4 - ldr r1, [r0] - movs r0, #2 - strh r0, [r1, #0x36] - strh r5, [r1, #0x30] - b _0812C6D4 - .align 2, 0 -_0812C6C4: .4byte gUnknown_203A800 -_0812C6C8: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - ble _0812C69C -_0812C6D4: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end DecideReelTurns_NoBiasTag_Reel2_Bet1 - - thumb_func_start DecideReelTurns_NoBiasTag_Reel2_Bet2 -DecideReelTurns_NoBiasTag_Reel2_Bet2: @ 0x0812C6DC - push {r4, r5, r6, r7, lr} - sub sp, #4 - ldr r4, _0812C744 - ldr r2, [r4] - ldrh r3, [r2, #0x34] - movs r1, #0x34 - ldrsh r0, [r2, r1] - cmp r0, #0 - beq _0812C754 - ldrb r1, [r2, #4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0812C754 - ldrh r1, [r2, #0x2e] - subs r1, r3, r1 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #0 - bl GetNearbyTag - mov r1, sp - strb r0, [r1] - mov r0, sp - bl IsBiasTag777_SwitchColor - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0812C754 - movs r5, #0 - mov r7, sp - adds r6, r4, #0 -_0812C71C: - ldr r0, [r6] - ldrh r1, [r0, #0x34] - lsls r0, r5, #0x10 - asrs r4, r0, #0x10 - subs r1, r1, r4 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #1 - bl GetNearbyTag - ldrb r1, [r7] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r1, r0 - bne _0812C748 - ldr r0, [r6] - ldrh r1, [r0, #0x34] - strh r1, [r0, #0x36] - strh r5, [r0, #0x30] - b _0812C754 - .align 2, 0 -_0812C744: .4byte gUnknown_203A800 -_0812C748: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - ble _0812C71C -_0812C754: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end DecideReelTurns_NoBiasTag_Reel2_Bet2 - - thumb_func_start DecideReelTurns_NoBiasTag_Reel2_Bet3 -DecideReelTurns_NoBiasTag_Reel2_Bet3: @ 0x0812C75C - push {r4, r5, r6, r7, lr} - sub sp, #4 - ldr r6, _0812C784 - ldr r2, [r6] - ldrh r4, [r2, #0x34] - movs r0, #0x34 - ldrsh r3, [r2, r0] - cmp r3, #0 - beq _0812C85A - ldrb r1, [r2, #4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0812C85A - cmp r3, #2 - bne _0812C7A6 - bl DecideReelTurns_NoBiasTag_Reel2_Bet2 - b _0812C85A - .align 2, 0 -_0812C784: .4byte gUnknown_203A800 -_0812C788: - ldr r0, _0812C794 - ldr r0, [r0] - movs r1, #0 - strh r5, [r0, #0x36] - strh r1, [r0, #0x30] - b _0812C85A - .align 2, 0 -_0812C794: .4byte gUnknown_203A800 -_0812C798: - movs r0, #2 - strh r0, [r1, #0x36] - adds r0, r4, #1 - strh r0, [r1, #0x30] - b _0812C85A -_0812C7A2: - movs r0, #3 - b _0812C834 -_0812C7A6: - ldrh r1, [r2, #0x2e] - subs r1, r4, r1 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #0 - bl GetNearbyTag - mov r1, sp - strb r0, [r1] - mov r0, sp - bl IsBiasTag777_SwitchColor - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0812C85A - movs r5, #2 - ldr r0, [r6] - movs r1, #0x34 - ldrsh r0, [r0, r1] - cmp r0, #3 - bne _0812C7D2 - movs r5, #3 -_0812C7D2: - movs r6, #0 - mov r7, sp -_0812C7D6: - lsls r0, r5, #0x10 - asrs r4, r0, #0x10 - movs r0, #1 - adds r1, r4, #0 - bl GetNearbyTag - ldrb r1, [r7] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r1, r0 - beq _0812C788 - lsls r1, r6, #0x10 - movs r2, #0x80 - lsls r2, r2, #9 - adds r1, r1, r2 - subs r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsrs r6, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #1 - ble _0812C7D6 - movs r5, #1 - mov r7, sp - ldr r6, _0812C83C -_0812C808: - ldr r0, [r6] - ldrh r1, [r0, #0x34] - lsls r0, r5, #0x10 - asrs r4, r0, #0x10 - subs r1, r1, r4 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #1 - bl GetNearbyTag - ldrb r1, [r7] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r1, r0 - bne _0812C84E - ldr r1, [r6] - movs r2, #0x34 - ldrsh r0, [r1, r2] - cmp r0, #1 - bne _0812C840 - cmp r4, #2 - ble _0812C798 -_0812C834: - strh r0, [r1, #0x36] - strh r5, [r1, #0x30] - b _0812C85A - .align 2, 0 -_0812C83C: .4byte gUnknown_203A800 -_0812C840: - cmp r4, #2 - ble _0812C7A2 - movs r0, #2 - strh r0, [r1, #0x36] - subs r0, r4, #1 - strh r0, [r1, #0x30] - b _0812C85A -_0812C84E: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - ble _0812C808 -_0812C85A: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end DecideReelTurns_NoBiasTag_Reel2_Bet3 - - thumb_func_start AreTagsMixed77 -AreTagsMixed77: @ 0x0812C864 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r2, r1, #0 - cmp r0, #0 - bne _0812C878 - cmp r1, #1 - beq _0812C880 -_0812C878: - cmp r0, #1 - bne _0812C884 - cmp r2, #0 - bne _0812C884 -_0812C880: - movs r0, #1 - b _0812C886 -_0812C884: - movs r0, #0 -_0812C886: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end AreTagsMixed77 - - thumb_func_start AreTagsMixed777 -AreTagsMixed777: @ 0x0812C88C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - cmp r0, #0 - bne _0812C8A6 - cmp r1, #1 - bne _0812C8A6 - cmp r2, #0 - beq _0812C8B2 -_0812C8A6: - cmp r0, #1 - bne _0812C8B6 - cmp r1, #0 - bne _0812C8B6 - cmp r2, #1 - bne _0812C8B6 -_0812C8B2: - movs r0, #1 - b _0812C8B8 -_0812C8B6: - movs r0, #0 -_0812C8B8: - pop {r1} - bx r1 - thumb_func_end AreTagsMixed777 - - thumb_func_start TagsDontMatchOrHaveAny7s -TagsDontMatchOrHaveAny7s: @ 0x0812C8BC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - cmp r0, #0 - bne _0812C8D6 - cmp r1, #1 - bne _0812C8D6 - cmp r2, #0 - beq _0812C902 -_0812C8D6: - cmp r0, #1 - bne _0812C8E2 - cmp r1, #0 - bne _0812C8E2 - cmp r2, #1 - beq _0812C902 -_0812C8E2: - cmp r0, #0 - bne _0812C8EE - cmp r1, #0 - bne _0812C8EE - cmp r2, #1 - beq _0812C902 -_0812C8EE: - cmp r0, #1 - bne _0812C8FA - cmp r1, #1 - bne _0812C8FA - cmp r2, #0 - beq _0812C902 -_0812C8FA: - cmp r0, r1 - bne _0812C906 - cmp r0, r2 - bne _0812C906 -_0812C902: - movs r0, #0 - b _0812C908 -_0812C906: - movs r0, #1 -_0812C908: - pop {r1} - bx r1 - thumb_func_end TagsDontMatchOrHaveAny7s - - thumb_func_start sub_0812C90C -sub_0812C90C: @ 0x0812C90C - push {lr} - ldr r1, _0812C928 - ldr r0, _0812C92C - ldr r0, [r0] - movs r2, #0x12 - ldrsh r0, [r0, r2] - subs r0, #1 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - thumb_func_end sub_0812C90C - - thumb_func_start sub_0812C924 -sub_0812C924: @ 0x0812C924 - pop {r0} - bx r0 - .align 2, 0 -_0812C928: .4byte gUnknown_85844BC -_0812C92C: .4byte gUnknown_203A800 - thumb_func_end sub_0812C924 - - thumb_func_start DecideReelTurns_NoBiasTag_Reel3_Bet1 -DecideReelTurns_NoBiasTag_Reel3_Bet1: @ 0x0812C930 - push {r4, r5, r6, r7, lr} - movs r6, #0 - ldr r7, _0812C96C - ldr r0, [r7] - ldrh r1, [r0, #0x2e] - movs r4, #2 - subs r1, r4, r1 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #0 - bl GetNearbyTag - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, [r7] - ldrh r0, [r0, #0x30] - subs r4, r4, r0 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - movs r0, #1 - adds r1, r4, #0 - bl GetNearbyTag - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r5, r1 - bne _0812C9A4 - movs r4, #2 - b _0812C97A - .align 2, 0 -_0812C96C: .4byte gUnknown_203A800 -_0812C970: - lsls r0, r6, #0x10 - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r0, r1 - lsrs r6, r0, #0x10 -_0812C97A: - lsls r1, r6, #0x10 - asrs r1, r1, #0x10 - subs r1, r4, r1 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #2 - bl GetNearbyTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r5, r0 - beq _0812C970 - cmp r5, #0 - bne _0812C99A - cmp r0, #1 - beq _0812C970 -_0812C99A: - cmp r5, #1 - bne _0812CA06 - cmp r0, #0 - beq _0812C970 - b _0812CA06 -_0812C9A4: - adds r0, r5, #0 - bl AreTagsMixed77 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0812CA06 - ldr r0, [r7] - ldrb r1, [r0, #4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0812C9E2 - movs r7, #2 -_0812C9BE: - lsls r0, r6, #0x10 - asrs r4, r0, #0x10 - subs r1, r7, r4 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #2 - bl GetNearbyTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r5, r0 - beq _0812CA06 - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - ble _0812C9BE -_0812C9E2: - movs r6, #0 - movs r7, #2 - b _0812C9EE -_0812C9E8: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_0812C9EE: - lsls r0, r6, #0x10 - asrs r4, r0, #0x10 - subs r1, r7, r4 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #2 - bl GetNearbyTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r5, r0 - beq _0812C9E8 -_0812CA06: - ldr r0, _0812CA14 - ldr r0, [r0] - strh r6, [r0, #0x32] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0812CA14: .4byte gUnknown_203A800 - thumb_func_end DecideReelTurns_NoBiasTag_Reel3_Bet1 - - thumb_func_start DecideReelTurns_NoBiasTag_Reel3_Bet2 -DecideReelTurns_NoBiasTag_Reel3_Bet2: @ 0x0812CA18 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - movs r0, #0 - str r0, [sp] - ldr r4, _0812CA84 - ldr r2, [r4] - movs r5, #0x36 - ldrsh r1, [r2, r5] - cmp r1, #0 - beq _0812CAB4 - ldrh r3, [r2, #0x34] - movs r5, #0x34 - ldrsh r0, [r2, r5] - cmp r0, r1 - bne _0812CAB4 - ldrb r1, [r2, #4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0812CAB4 - ldrh r1, [r2, #0x2e] - subs r1, r3, r1 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #0 - bl GetNearbyTag - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, [r4] - ldrh r1, [r0, #0x36] - ldrh r0, [r0, #0x30] - subs r1, r1, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #1 - bl GetNearbyTag - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r0, r7, #0 - adds r1, r6, #0 - bl AreTagsMixed77 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0812CAB4 - movs r5, #0 - b _0812CA8E - .align 2, 0 -_0812CA84: .4byte gUnknown_203A800 -_0812CA88: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_0812CA8E: - lsls r6, r5, #0x10 - asrs r5, r6, #0x10 - cmp r5, #4 - bgt _0812CAB4 - ldr r0, _0812CB48 - ldr r0, [r0] - ldrh r1, [r0, #0x36] - subs r1, r1, r5 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #2 - bl GetNearbyTag - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r7, r4 - bne _0812CA88 - lsrs r6, r6, #0x10 - str r6, [sp] -_0812CAB4: - ldr r0, _0812CB48 - mov sb, r0 -_0812CAB8: - movs r5, #1 - movs r1, #0 - mov r8, r1 - ldr r2, [sp] - lsls r2, r2, #0x10 - mov sl, r2 -_0812CAC4: - mov r1, sb - ldr r0, [r1] - ldrh r1, [r0, #0x2e] - lsls r5, r5, #0x10 - asrs r4, r5, #0x10 - subs r1, r4, r1 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #0 - bl GetNearbyTag - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - mov r2, sb - ldr r0, [r2] - ldrh r1, [r0, #0x30] - subs r1, r4, r1 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #1 - bl GetNearbyTag - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - mov r1, sl - asrs r0, r1, #0x10 - subs r4, r4, r0 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - movs r0, #2 - adds r1, r4, #0 - bl GetNearbyTag - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - bl TagsDontMatchOrHaveAny7s - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0812CB4C - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - bl AreTagsMixed777 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0812CB38 - mov r2, sb - ldr r0, [r2] - ldrb r1, [r0, #4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0812CB4C -_0812CB38: - mov r5, r8 - lsls r0, r5, #0x10 - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r0, r1 - lsrs r0, r0, #0x10 - mov r8, r0 - b _0812CB5A - .align 2, 0 -_0812CB48: .4byte gUnknown_203A800 -_0812CB4C: - movs r2, #0x80 - lsls r2, r2, #9 - adds r0, r5, r2 - lsrs r5, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - ble _0812CAC4 -_0812CB5A: - mov r5, r8 - cmp r5, #0 - beq _0812CB70 - ldr r1, [sp] - lsls r0, r1, #0x10 - movs r2, #0x80 - lsls r2, r2, #9 - adds r0, r0, r2 - lsrs r0, r0, #0x10 - str r0, [sp] - b _0812CAB8 -_0812CB70: - ldr r0, _0812CB8C - ldr r0, [r0] - mov r5, sp - ldrh r5, [r5] - strh r5, [r0, #0x32] - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0812CB8C: .4byte gUnknown_203A800 - thumb_func_end DecideReelTurns_NoBiasTag_Reel3_Bet2 - - thumb_func_start DecideReelTurns_NoBiasTag_Reel3_Bet3 -DecideReelTurns_NoBiasTag_Reel3_Bet3: @ 0x0812CB90 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - bl DecideReelTurns_NoBiasTag_Reel3_Bet2 - ldr r4, _0812CC34 - ldr r2, [r4] - movs r0, #0x36 - ldrsh r1, [r2, r0] - cmp r1, #0 - beq _0812CC44 - ldrh r3, [r2, #0x34] - movs r5, #0x34 - ldrsh r0, [r2, r5] - cmp r0, r1 - beq _0812CC44 - ldrb r1, [r2, #4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0812CC44 - ldrh r1, [r2, #0x2e] - subs r1, r3, r1 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #0 - bl GetNearbyTag - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, [r4] - ldrh r1, [r0, #0x36] - ldrh r0, [r0, #0x30] - subs r1, r1, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #1 - bl GetNearbyTag - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r6, #0 - adds r1, r5, #0 - bl AreTagsMixed77 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0812CC44 - movs r1, #1 - ldr r0, [r4] - movs r2, #0x34 - ldrsh r0, [r0, r2] - cmp r0, #1 - bne _0812CBFE - movs r1, #3 -_0812CBFE: - movs r3, #0 - lsls r1, r1, #0x10 - mov r8, r1 - adds r7, r4, #0 -_0812CC06: - ldr r0, [r7] - ldrh r2, [r0, #0x32] - lsls r0, r3, #0x10 - asrs r5, r0, #0x10 - adds r2, r5, r2 - mov r0, r8 - asrs r1, r0, #0x10 - subs r1, r1, r2 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #2 - bl GetNearbyTag - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r6, r4 - bne _0812CC38 - ldr r1, [r7] - ldrh r0, [r1, #0x32] - adds r0, r5, r0 - strh r0, [r1, #0x32] - b _0812CC44 - .align 2, 0 -_0812CC34: .4byte gUnknown_203A800 -_0812CC38: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - ble _0812CC06 -_0812CC44: - ldr r7, _0812CCC0 -_0812CC46: - ldr r0, [r7] - ldrh r0, [r0, #0x2e] - movs r1, #1 - subs r1, r1, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #0 - bl GetNearbyTag - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, [r7] - ldrh r0, [r0, #0x30] - movs r1, #2 - subs r1, r1, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #1 - bl GetNearbyTag - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, [r7] - ldrh r0, [r0, #0x32] - movs r1, #3 - subs r1, r1, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #2 - bl GetNearbyTag - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r6, #0 - adds r1, r5, #0 - adds r2, r4, #0 - bl TagsDontMatchOrHaveAny7s - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0812CCC4 - adds r0, r6, #0 - adds r1, r5, #0 - adds r2, r4, #0 - bl AreTagsMixed777 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0812CCB4 - ldr r0, [r7] - ldrb r1, [r0, #4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0812CCC4 -_0812CCB4: - ldr r1, [r7] - ldrh r0, [r1, #0x32] - adds r0, #1 - strh r0, [r1, #0x32] - b _0812CC46 - .align 2, 0 -_0812CCC0: .4byte gUnknown_203A800 -_0812CCC4: - ldr r7, _0812CD40 -_0812CCC6: - ldr r0, [r7] - ldrh r0, [r0, #0x2e] - movs r1, #3 - subs r1, r1, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #0 - bl GetNearbyTag - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, [r7] - ldrh r0, [r0, #0x30] - movs r1, #2 - subs r1, r1, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #1 - bl GetNearbyTag - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, [r7] - ldrh r0, [r0, #0x32] - movs r1, #1 - subs r1, r1, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #2 - bl GetNearbyTag - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r6, #0 - adds r1, r5, #0 - adds r2, r4, #0 - bl TagsDontMatchOrHaveAny7s - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0812CD44 - adds r0, r6, #0 - adds r1, r5, #0 - adds r2, r4, #0 - bl AreTagsMixed777 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0812CD34 - ldr r0, [r7] - ldrb r1, [r0, #4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0812CD44 -_0812CD34: - ldr r1, [r7] - ldrh r0, [r1, #0x32] - adds r0, #1 - strh r0, [r1, #0x32] - b _0812CCC6 - .align 2, 0 -_0812CD40: .4byte gUnknown_203A800 -_0812CD44: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end DecideReelTurns_NoBiasTag_Reel3_Bet3 - - thumb_func_start sub_0812CD50 -sub_0812CD50: @ 0x0812CD50 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r5, _0812CD7C - adds r0, r5, #0 - movs r1, #5 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0812CD80 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #0x26] - bl _call_via_r5 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0812CD7C: .4byte sub_0812CD84 -_0812CD80: .4byte gUnknown_3005B60 - thumb_func_end sub_0812CD50 - - thumb_func_start sub_0812CD84 -sub_0812CD84: @ 0x0812CD84 - push {r4, lr} - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r3, _0812CDAC - ldr r2, _0812CDB0 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r4, #8 - ldrsh r2, [r0, r4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {r4} - thumb_func_end sub_0812CD84 - - thumb_func_start sub_0812CDA8 -sub_0812CDA8: @ 0x0812CDA8 - pop {r0} - bx r0 - .align 2, 0 -_0812CDAC: .4byte gUnknown_85844C8 -_0812CDB0: .4byte gUnknown_3005B60 - thumb_func_end sub_0812CDA8 - - thumb_func_start sub_0812CDB4 -sub_0812CDB4: @ 0x0812CDB4 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - ldr r1, _0812CDE4 - movs r2, #0x26 - ldrsh r0, [r4, r2] - lsls r0, r0, #1 - adds r0, 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_0812FA9C - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812CDE4: .4byte gUnknown_85844D4 - thumb_func_end sub_0812CDB4 - - thumb_func_start sub_0812CDE8 -sub_0812CDE8: @ 0x0812CDE8 - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0xa] - adds r0, #1 - strh r0, [r1, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xb - ble _0812CE00 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] -_0812CE00: - pop {r0} - bx r0 - thumb_func_end sub_0812CDE8 - - thumb_func_start sub_0812CE04 -sub_0812CE04: @ 0x0812CE04 - push {r4, lr} - sub sp, #4 - lsls r4, r1, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _0812CE38 - movs r2, #0x26 - ldrsh r0, [r0, r2] - lsls r0, r0, #1 - adds r0, 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_0812FA9C - adds r0, r4, #0 - bl DestroyTask - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812CE38: .4byte gUnknown_85844D4 - thumb_func_end sub_0812CE04 - - thumb_func_start sub_0812CE3C -sub_0812CE3C: @ 0x0812CE3C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0812CE5C - lsls r1, r0, #2 - adds r1, r1, r2 - ldr r2, [r1] - ldr r1, _0812CE60 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r2, #0 - movs r2, #2 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_0812CE5C: .4byte gUnknown_858550C -_0812CE60: .4byte gUnknown_8585534 - thumb_func_end sub_0812CE3C - - thumb_func_start sub_0812CE64 -sub_0812CE64: @ 0x0812CE64 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0812CE84 - lsls r1, r0, #2 - adds r1, r1, r2 - ldr r2, [r1] - ldr r1, _0812CE88 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r2, #0 - movs r2, #2 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_0812CE84: .4byte gUnknown_8585520 -_0812CE88: .4byte gUnknown_8585534 - thumb_func_end sub_0812CE64 - - thumb_func_start LoadBetTiles -LoadBetTiles: @ 0x0812CE8C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r4, #0 - ldr r0, _0812CEC0 - adds r0, r1, r0 - ldrb r0, [r0] - cmp r4, r0 - bhs _0812CEB8 - ldr r7, _0812CEC4 - adds r6, r0, #0 - lsls r5, r1, #1 -_0812CEA4: - adds r0, r4, r5 - adds r0, r0, r7 - ldrb r0, [r0] - bl sub_0812CE3C - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r6 - blo _0812CEA4 -_0812CEB8: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0812CEC0: .4byte gUnknown_858553F -_0812CEC4: .4byte gUnknown_8585539 - thumb_func_end LoadBetTiles - - thumb_func_start sub_0812CEC8 -sub_0812CEC8: @ 0x0812CEC8 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r4, #0 - ldr r0, _0812CEFC - adds r0, r1, r0 - ldrb r0, [r0] - cmp r4, r0 - bhs _0812CEF4 - ldr r7, _0812CF00 - adds r6, r0, #0 - lsls r5, r1, #1 -_0812CEE0: - adds r0, r4, r5 - adds r0, r0, r7 - ldrb r0, [r0] - bl sub_0812CE64 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r6 - blo _0812CEE0 -_0812CEF4: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0812CEFC: .4byte gUnknown_858553F -_0812CF00: .4byte gUnknown_8585539 - thumb_func_end sub_0812CEC8 - - thumb_func_start sub_0812CF04 -sub_0812CF04: @ 0x0812CF04 - push {r4, r5, lr} - movs r4, #0 - ldr r5, _0812CF38 -_0812CF0A: - ldr r0, _0812CF3C - bl CreateInvisibleSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - strh r4, [r1, #0x2e] - ldr r1, _0812CF40 - ldr r1, [r1] - adds r1, #0x44 - adds r1, r1, r4 - strb r0, [r1] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #4 - bls _0812CF0A - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0812CF38: .4byte gUnknown_20205AC -_0812CF3C: .4byte sub_0812D034 -_0812CF40: .4byte gUnknown_203A800 - thumb_func_end sub_0812CF04 - - thumb_func_start sub_0812CF44 -sub_0812CF44: @ 0x0812CF44 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0812CF74 - ldr r1, [r1] - adds r1, #0x44 - adds r1, r1, r0 - ldrb r1, [r1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0812CF78 - adds r0, r0, r1 - movs r2, #0 - movs r1, #1 - strh r1, [r0, #0x30] - movs r1, #4 - strh r1, [r0, #0x32] - strh r2, [r0, #0x34] - strh r2, [r0, #0x36] - movs r1, #2 - strh r1, [r0, #0x38] - strh r2, [r0, #0x3c] - bx lr - .align 2, 0 -_0812CF74: .4byte gUnknown_203A800 -_0812CF78: .4byte gUnknown_20205AC - thumb_func_end sub_0812CF44 - - thumb_func_start sub_0812CF7C -sub_0812CF7C: @ 0x0812CF7C - push {r4, r5, lr} - movs r2, #0 - ldr r0, _0812CFAC - ldr r0, [r0] - adds r3, r0, #0 - adds r3, #0x44 - ldr r4, _0812CFB0 -_0812CF8A: - adds r0, r3, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r4 - movs r5, #0x30 - ldrsh r0, [r1, r5] - cmp r0, #0 - beq _0812CFB4 - movs r5, #0x32 - ldrsh r0, [r1, r5] - cmp r0, #0 - beq _0812CFB4 - movs r0, #0 - b _0812CFC0 - .align 2, 0 -_0812CFAC: .4byte gUnknown_203A800 -_0812CFB0: .4byte gUnknown_20205AC -_0812CFB4: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #4 - bls _0812CF8A - movs r0, #1 -_0812CFC0: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0812CF7C - - thumb_func_start sub_0812CFC8 -sub_0812CFC8: @ 0x0812CFC8 - push {r4, lr} - movs r4, #0 -_0812CFCC: - ldr r0, _0812CFE4 - ldr r0, [r0] - adds r0, #0x44 - adds r0, r0, r4 - ldrb r0, [r0] - bl sub_0812CFFC - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0812CFE8 - movs r0, #0 - b _0812CFF4 - .align 2, 0 -_0812CFE4: .4byte gUnknown_203A800 -_0812CFE8: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #4 - bls _0812CFCC - movs r0, #1 -_0812CFF4: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0812CFC8 - - thumb_func_start sub_0812CFFC -sub_0812CFFC: @ 0x0812CFFC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _0812D018 - adds r1, r1, r0 - movs r2, #0x30 - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _0812D01C - movs r0, #1 - b _0812D02E - .align 2, 0 -_0812D018: .4byte gUnknown_20205AC -_0812D01C: - ldrh r2, [r1, #0x3c] - movs r3, #0x3c - ldrsh r0, [r1, r3] - cmp r0, #0 - beq _0812D02A - movs r0, #0 - strh r0, [r1, #0x30] -_0812D02A: - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 -_0812D02E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0812CFFC - - thumb_func_start sub_0812D034 -sub_0812D034: @ 0x0812D034 - push {r4, r5, r6, r7, lr} - adds r2, r0, #0 - movs r1, #0x30 - ldrsh r0, [r2, r1] - cmp r0, #0 - beq _0812D0B6 - ldrh r0, [r2, #0x34] - subs r0, #1 - strh r0, [r2, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _0812D09E - movs r0, #0 - strh r0, [r2, #0x3c] - movs r6, #1 - strh r6, [r2, #0x34] - ldrh r1, [r2, #0x38] - ldrh r3, [r2, #0x36] - adds r0, r1, r3 - strh r0, [r2, #0x36] - movs r4, #4 - ldrh r5, [r2, #0x32] - movs r7, #0x32 - ldrsh r3, [r2, r7] - cmp r3, #0 - beq _0812D070 - movs r4, #8 -_0812D070: - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bgt _0812D088 - strh r6, [r2, #0x3c] - rsbs r0, r1, #0 - strh r0, [r2, #0x38] - cmp r3, #0 - beq _0812D09E - subs r0, r5, #1 - strh r0, [r2, #0x32] - b _0812D090 -_0812D088: - cmp r0, r4 - blt _0812D090 - rsbs r0, r1, #0 - strh r0, [r2, #0x38] -_0812D090: - movs r1, #0x32 - ldrsh r0, [r2, r1] - cmp r0, #0 - beq _0812D09E - ldrh r0, [r2, #0x34] - lsls r0, r0, #1 - strh r0, [r2, #0x34] -_0812D09E: - ldr r1, _0812D0BC - movs r3, #0x2e - ldrsh r0, [r2, r3] - adds r0, r0, r1 - ldrb r0, [r0] - ldrh r3, [r2, #0x36] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r1, r3, #0 - adds r2, r3, #0 - bl MultiplyPaletteRGBComponents -_0812D0B6: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0812D0BC: .4byte gUnknown_8585534 - thumb_func_end sub_0812D034 - - thumb_func_start sub_0812D0C0 -sub_0812D0C0: @ 0x0812D0C0 - push {r4, lr} - ldr r4, _0812D0E8 - adds r0, r4, #0 - movs r1, #6 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0812D0EC - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r2, #1 - strh r2, [r1, #0xe] - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812D0E8: .4byte sub_0812D138 -_0812D0EC: .4byte gUnknown_3005B60 - thumb_func_end sub_0812D0C0 - - thumb_func_start sub_0812D0F0 -sub_0812D0F0: @ 0x0812D0F0 - push {lr} - ldr r0, _0812D114 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _0812D118 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0xc - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _0812D11C - movs r0, #0 - b _0812D130 - .align 2, 0 -_0812D114: .4byte sub_0812D138 -_0812D118: .4byte gUnknown_3005B60 -_0812D11C: - adds r0, r2, #0 - bl DestroyTask - ldr r0, _0812D134 - ldr r0, [r0] - movs r1, #0x10 - movs r2, #0x20 - bl LoadPalette - movs r0, #1 -_0812D130: - pop {r1} - bx r1 - .align 2, 0 -_0812D134: .4byte gUnknown_85855B0 - thumb_func_end sub_0812D0F0 - - thumb_func_start sub_0812D138 -sub_0812D138: @ 0x0812D138 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _0812D190 - adds r2, r1, r0 - ldrh r0, [r2, #0xa] - subs r0, #1 - strh r0, [r2, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _0812D176 - movs r0, #4 - strh r0, [r2, #0xa] - ldrh r1, [r2, #0xe] - ldrh r3, [r2, #0xc] - adds r0, r1, r3 - strh r0, [r2, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - beq _0812D172 - cmp r0, #2 - bne _0812D176 -_0812D172: - rsbs r0, r1, #0 - strh r0, [r2, #0xe] -_0812D176: - ldr r0, _0812D194 - movs r3, #0xc - ldrsh r1, [r2, r3] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - movs r1, #0x10 - movs r2, #0x20 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_0812D190: .4byte gUnknown_3005B60 -_0812D194: .4byte gUnknown_85855A4 - thumb_func_end sub_0812D138 - - thumb_func_start GameplayTask_PikaPower -GameplayTask_PikaPower: @ 0x0812D198 - push {lr} - ldr r0, _0812D1B0 - movs r1, #8 - bl CreateTask - ldr r1, _0812D1B4 - ldr r1, [r1] - adds r1, #0x3e - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0812D1B0: .4byte sub_0812D240 -_0812D1B4: .4byte gUnknown_203A800 - thumb_func_end GameplayTask_PikaPower - - thumb_func_start DisplayPikaPower -DisplayPikaPower: @ 0x0812D1B8 - push {r4, lr} - ldr r0, _0812D1E4 - ldr r0, [r0] - adds r0, #0x3e - ldrb r0, [r0] - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _0812D1E8 - adds r4, r4, r0 - adds r0, r4, #0 - bl ClearTaskDataFields_2orHigher - movs r1, #1 - strh r1, [r4, #8] - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - strh r1, [r4, #0x26] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812D1E4: .4byte gUnknown_203A800 -_0812D1E8: .4byte gUnknown_3005B60 - thumb_func_end DisplayPikaPower - - thumb_func_start sub_0812D1EC -sub_0812D1EC: @ 0x0812D1EC - push {r4, lr} - ldr r0, _0812D214 - ldr r0, [r0] - adds r0, #0x3e - ldrb r0, [r0] - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _0812D218 - adds r4, r4, r0 - adds r0, r4, #0 - bl ClearTaskDataFields_2orHigher - movs r0, #3 - strh r0, [r4, #8] - movs r0, #1 - strh r0, [r4, #0x26] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812D214: .4byte gUnknown_203A800 -_0812D218: .4byte gUnknown_3005B60 - thumb_func_end sub_0812D1EC - - thumb_func_start sub_0812D21C -sub_0812D21C: @ 0x0812D21C - ldr r2, _0812D238 - ldr r0, _0812D23C - ldr r0, [r0] - adds r0, #0x3e - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrh r0, [r0, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bx lr - .align 2, 0 -_0812D238: .4byte gUnknown_3005B60 -_0812D23C: .4byte gUnknown_203A800 - thumb_func_end sub_0812D21C - - thumb_func_start sub_0812D240 -sub_0812D240: @ 0x0812D240 - push {lr} - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r3, _0812D268 - ldr r2, _0812D26C - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r2, #8 - ldrsh r1, [r0, r2] - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_0812D268: .4byte gUnknown_85844DC -_0812D26C: .4byte gUnknown_3005B60 - thumb_func_end sub_0812D240 - - thumb_func_start sub_0812D270 -sub_0812D270: @ 0x0812D270 - bx lr - .align 2, 0 - thumb_func_end sub_0812D270 - - thumb_func_start sub_0812D274 -sub_0812D274: @ 0x0812D274 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0xa] - lsls r0, r0, #0x13 - movs r1, #0xa0 - lsls r1, r1, #0xd - adds r0, r0, r1 - asrs r0, r0, #0x10 - movs r1, #0x14 - bl sub_0812EF10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0xc] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0812D274 - - thumb_func_start sub_0812D29C -sub_0812D29C: @ 0x0812D29C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r2, _0812D2D0 - movs r0, #0xc - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0x3c - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _0812D30C - ldrh r1, [r4, #0xa] - adds r0, r1, #2 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - movs r3, #0 - movs r2, #0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #1 - bne _0812D2D4 - movs r3, #1 - movs r2, #1 - b _0812D2DC - .align 2, 0 -_0812D2D0: .4byte gUnknown_20205AC -_0812D2D4: - cmp r1, #0x10 - bne _0812D2DC - movs r3, #2 - movs r2, #2 -_0812D2DC: - ldr r0, _0812D314 - ldr r0, [r0] - lsls r1, r2, #1 - adds r1, r1, r0 - ldr r2, _0812D318 - lsls r0, r3, #2 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r1] - lsls r3, r5, #0x10 - movs r0, #0x80 - lsls r0, r0, #0xf - adds r3, r3, r0 - lsrs r3, r3, #0x10 - movs r0, #2 - movs r2, #2 - bl LoadBgTilemap - ldrb r0, [r4, #0xc] - bl sub_0812EF7C - movs r0, #0 - strh r0, [r4, #8] - strh r0, [r4, #0x26] -_0812D30C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0812D314: .4byte gUnknown_203A798 -_0812D318: .4byte gUnknown_85844EC - thumb_func_end sub_0812D29C - - thumb_func_start sub_0812D31C -sub_0812D31C: @ 0x0812D31C - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0xa] - adds r0, r1, #2 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - movs r3, #0 - movs r2, #3 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #1 - bne _0812D33A - movs r3, #1 - movs r2, #1 - b _0812D342 -_0812D33A: - cmp r1, #0x10 - bne _0812D342 - movs r3, #2 - movs r2, #2 -_0812D342: - movs r1, #0xc - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0812D376 - ldr r0, _0812D39C - ldr r0, [r0] - lsls r1, r2, #1 - adds r1, r1, r0 - ldr r0, _0812D3A0 - lsls r2, r3, #2 - adds r0, #2 - adds r2, r2, r0 - ldrh r0, [r2] - strh r0, [r1] - lsls r3, r5, #0x10 - movs r0, #0x80 - lsls r0, r0, #0xf - adds r3, r3, r0 - lsrs r3, r3, #0x10 - movs r0, #2 - movs r2, #2 - bl LoadBgTilemap - ldrh r0, [r4, #0xa] - subs r0, #1 - strh r0, [r4, #0xa] -_0812D376: - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x13 - ble _0812D388 - movs r0, #0 - strh r0, [r4, #0xc] -_0812D388: - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0812D394 - strh r0, [r4, #8] - strh r0, [r4, #0x26] -_0812D394: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0812D39C: .4byte gUnknown_203A798 -_0812D3A0: .4byte gUnknown_85844EC - thumb_func_end sub_0812D31C - - thumb_func_start ClearTaskDataFields_2orHigher -ClearTaskDataFields_2orHigher: @ 0x0812D3A4 - push {lr} - movs r1, #2 - adds r2, r0, #0 - adds r2, #8 - movs r3, #0 -_0812D3AE: - lsls r0, r1, #1 - adds r0, r2, r0 - strh r3, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xf - bls _0812D3AE - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ClearTaskDataFields_2orHigher - - thumb_func_start sub_0812D3C4 -sub_0812D3C4: @ 0x0812D3C4 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r4, #3 - movs r5, #0 - cmp r5, r6 - bge _0812D42E - ldr r7, _0812D3E8 -_0812D3D4: - movs r3, #0 - movs r1, #0 - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bne _0812D3EC - movs r3, #1 - movs r1, #1 - b _0812D3F4 - .align 2, 0 -_0812D3E8: .4byte gUnknown_85844EC -_0812D3EC: - cmp r0, #0xf - bne _0812D3F4 - movs r3, #2 - movs r1, #2 -_0812D3F4: - ldr r0, _0812D448 - ldr r0, [r0] - lsls r1, r1, #1 - adds r1, r1, r0 - lsls r0, r3, #2 - adds r0, r0, r7 - ldrh r0, [r0] - strh r0, [r1] - lsls r3, r4, #0x10 - asrs r4, r3, #0x10 - movs r0, #0x80 - lsls r0, r0, #0xf - adds r3, r3, r0 - lsrs r3, r3, #0x10 - movs r0, #2 - movs r2, #2 - bl LoadBgTilemap - lsls r0, r5, #0x10 - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r0, r1 - adds r4, #1 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsrs r5, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, r6 - blt _0812D3D4 -_0812D42E: - lsls r2, r5, #0x10 - asrs r0, r2, #0x10 - cmp r0, #0xf - bgt _0812D494 - ldr r7, _0812D44C -_0812D438: - movs r3, #0 - movs r1, #3 - asrs r0, r2, #0x10 - cmp r0, #0 - bne _0812D450 - movs r3, #1 - movs r1, #1 - b _0812D458 - .align 2, 0 -_0812D448: .4byte gUnknown_203A798 -_0812D44C: .4byte gUnknown_85844EE -_0812D450: - cmp r0, #0xf - bne _0812D458 - movs r3, #2 - movs r1, #2 -_0812D458: - ldr r0, _0812D4B0 - ldr r0, [r0] - lsls r1, r1, #1 - adds r1, r1, r0 - lsls r0, r3, #2 - adds r0, r0, r7 - ldrh r0, [r0] - strh r0, [r1] - lsls r3, r4, #0x10 - asrs r4, r3, #0x10 - movs r0, #0x80 - lsls r0, r0, #0xf - adds r3, r3, r0 - lsrs r3, r3, #0x10 - movs r0, #2 - movs r2, #2 - bl LoadBgTilemap - lsls r0, r5, #0x10 - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r0, r1 - lsrs r5, r0, #0x10 - adds r4, #1 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r2, r5, #0x10 - asrs r0, r2, #0x10 - cmp r0, #0xf - ble _0812D438 -_0812D494: - ldr r2, _0812D4B4 - ldr r0, _0812D4B8 - ldr r0, [r0] - adds r0, #0x3e - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - strh r6, [r0, #0xa] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0812D4B0: .4byte gUnknown_203A798 -_0812D4B4: .4byte gUnknown_3005B60 -_0812D4B8: .4byte gUnknown_203A800 - thumb_func_end sub_0812D3C4 - - thumb_func_start BeginReeltime -BeginReeltime: @ 0x0812D4BC - push {r4, lr} - ldr r4, _0812D4D8 - adds r0, r4, #0 - movs r1, #7 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812D4D8: .4byte sub_0812D4FC - thumb_func_end BeginReeltime - - thumb_func_start sub_0812D4DC -sub_0812D4DC: @ 0x0812D4DC - push {lr} - ldr r0, _0812D4F0 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _0812D4F4 - movs r0, #0 - b _0812D4F6 - .align 2, 0 -_0812D4F0: .4byte sub_0812D4FC -_0812D4F4: - movs r0, #1 -_0812D4F6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0812D4DC - - thumb_func_start sub_0812D4FC -sub_0812D4FC: @ 0x0812D4FC - push {lr} - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r3, _0812D524 - ldr r2, _0812D528 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r2, #8 - ldrsh r1, [r0, r2] - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_0812D524: .4byte gUnknown_85844F8 -_0812D528: .4byte gUnknown_3005B60 - thumb_func_end sub_0812D4FC - - thumb_func_start ReeltimeAction0 -ReeltimeAction0: @ 0x0812D52C - push {lr} - ldr r3, _0812D598 - ldr r1, [r3] - movs r2, #0 - strb r2, [r1, #0xa] - ldr r1, [r3] - strh r2, [r1, #0x14] - strh r2, [r1, #0x16] - ldrh r1, [r0, #8] - adds r1, #1 - strh r1, [r0, #8] - strh r2, [r0, #0xa] - movs r1, #0x1e - strh r1, [r0, #0xc] - movs r1, #0xa0 - lsls r1, r1, #3 - strh r1, [r0, #0x10] - ldr r0, _0812D59C - strh r2, [r0] - ldr r0, _0812D5A0 - strh r2, [r0] - movs r0, #0x14 - movs r1, #0 - bl SetGpuReg - movs r0, #0x16 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1e - movs r1, #0 - bl sub_0812DC18 - bl sub_0812E484 - bl sub_0812E34C - bl sub_0812E660 - bl sub_0812E71C - bl sub_0812E7DC - bl GetReeltimeDraw - bl StopMapMusic - movs r0, #0xc4 - lsls r0, r0, #1 - bl PlayNewMapMusic - pop {r0} - bx r0 - .align 2, 0 -_0812D598: .4byte gUnknown_203A800 -_0812D59C: .4byte gUnknown_2021B38 -_0812D5A0: .4byte gUnknown_2021B3A - thumb_func_end ReeltimeAction0 - - thumb_func_start ReeltimeAction1 -ReeltimeAction1: @ 0x0812D5A4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r1, _0812D614 - ldrh r0, [r1] - subs r0, #8 - strh r0, [r1] - ldrh r1, [r4, #0xa] - adds r1, #8 - strh r1, [r4, #0xa] - movs r2, #0xa - ldrsh r0, [r4, r2] - adds r0, #0xf0 - movs r2, #0xff - ands r0, r2 - lsrs r5, r0, #3 - ldr r0, _0812D618 - ands r1, r0 - movs r0, #0x14 - bl SetGpuReg - adds r2, r5, #0 - movs r1, #0xc - ldrsh r0, [r4, r1] - cmp r2, r0 - beq _0812D5F2 - movs r1, #0xe - ldrsh r0, [r4, r1] - cmp r0, #0x12 - bgt _0812D5F2 - strh r5, [r4, #0xc] - ldrh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x13 - strh r0, [r4, #0xe] - movs r0, #0xe - ldrsh r1, [r4, r0] - adds r0, r2, #0 - bl sub_0812DC18 -_0812D5F2: - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0xc7 - ble _0812D604 - ldrh r0, [r4, #8] - adds r0, #1 - movs r1, #0 - strh r0, [r4, #8] - strh r1, [r4, #0xe] -_0812D604: - ldrh r0, [r4, #0x10] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - bl AdvanceReeltimeReel - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0812D614: .4byte gUnknown_2021B38 -_0812D618: .4byte 0x000001FF - thumb_func_end ReeltimeAction1 - - thumb_func_start ReeltimeAction2 -ReeltimeAction2: @ 0x0812D61C - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x10] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - bl AdvanceReeltimeReel - ldrh r0, [r4, #0x12] - adds r0, #1 - strh r0, [r4, #0x12] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3b - ble _0812D646 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - bl CreateReelTimeSprites1 - bl CreateReelTimeSprite2 -_0812D646: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ReeltimeAction2 - - thumb_func_start ReeltimeAction3 -ReeltimeAction3: @ 0x0812D64C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x14 - adds r7, r0, #0 - ldr r1, _0812D6E8 - mov r0, sp - movs r2, #4 - bl memcpy - add r0, sp, #4 - mov r8, r0 - ldr r1, _0812D6EC - movs r2, #8 - bl memcpy - add r6, sp, #0xc - ldr r1, _0812D6F0 - adds r0, r6, #0 - movs r2, #8 - bl memcpy - ldrh r0, [r7, #0x10] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - bl AdvanceReeltimeReel - ldrh r0, [r7, #0x10] - subs r0, #4 - strh r0, [r7, #0x10] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - movs r5, #4 - subs r5, r5, r0 - lsls r4, r5, #1 - add r8, r4 - mov r1, r8 - movs r2, #0 - ldrsh r0, [r1, r2] - bl sub_0812EA54 - adds r6, r6, r4 - movs r1, #0 - ldrsh r0, [r6, r1] - bl sub_0812EBBC - ldr r0, _0812D6F4 - ldr r0, [r0] - adds r0, #0x3f - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0812D6F8 - adds r0, 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, r1, #1 - cmp r0, r1 - bgt _0812D6DC - ldrh r0, [r7, #8] - adds r0, #1 - strh r0, [r7, #8] - strh r1, [r7, #0x10] - movs r0, #0 - strh r0, [r7, #0x12] -_0812D6DC: - add sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0812D6E8: .4byte gUnknown_8584544 -_0812D6EC: .4byte gUnknown_8584548 -_0812D6F0: .4byte gUnknown_8584550 -_0812D6F4: .4byte gUnknown_203A800 -_0812D6F8: .4byte gUnknown_20205AC - thumb_func_end ReeltimeAction3 - - thumb_func_start ReeltimeAction4 -ReeltimeAction4: @ 0x0812D6FC - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x10] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - bl AdvanceReeltimeReel - ldrh r0, [r4, #0x12] - adds r0, #1 - strh r0, [r4, #0x12] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x4f - ble _0812D740 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - strh r0, [r4, #0x12] - movs r0, #2 - bl sub_0812EBBC - ldr r0, _0812D748 - ldr r0, [r0] - adds r0, #0x3f - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0812D74C - adds r0, r0, r1 - movs r1, #3 - bl StartSpriteAnimIfDifferent -_0812D740: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812D748: .4byte gUnknown_203A800 -_0812D74C: .4byte gUnknown_20205AC - thumb_func_end ReeltimeAction4 - - thumb_func_start ReeltimeAction5 -ReeltimeAction5: @ 0x0812D750 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x10] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - bl AdvanceReeltimeReel - ldrb r0, [r4, #0x10] - adds r0, #0x80 - strh r0, [r4, #0x10] - ldrh r0, [r4, #0x12] - adds r0, #1 - strh r0, [r4, #0x12] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x4f - ble _0812D77C - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - strh r0, [r4, #0x12] -_0812D77C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ReeltimeAction5 - - thumb_func_start ReeltimeAction6 -ReeltimeAction6: @ 0x0812D784 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x10] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - bl AdvanceReeltimeReel - ldrb r0, [r4, #0x10] - adds r0, #0x40 - strh r0, [r4, #0x10] - ldrh r0, [r4, #0x12] - adds r0, #1 - strh r0, [r4, #0x12] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x27 - ble _0812D7EC - movs r0, #0 - strh r0, [r4, #0x12] - ldr r0, _0812D7C4 - ldr r1, [r0] - ldrb r0, [r1, #5] - cmp r0, #0 - beq _0812D7C8 - ldrb r1, [r1, #0xa] - movs r2, #0x14 - ldrsh r0, [r4, r2] - cmp r1, r0 - bgt _0812D7E6 - ldrh r0, [r4, #8] - adds r0, #1 - b _0812D7E4 - .align 2, 0 -_0812D7C4: .4byte gUnknown_203A800 -_0812D7C8: - movs r1, #0x14 - ldrsh r0, [r4, r1] - cmp r0, #3 - ble _0812D7D6 - ldrh r0, [r4, #8] - adds r0, #1 - b _0812D7E4 -_0812D7D6: - ldrh r0, [r4, #0x14] - bl SkipToReeltimeAction14 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0812D7E6 - movs r0, #0xe -_0812D7E4: - strh r0, [r4, #8] -_0812D7E6: - ldrh r0, [r4, #0x14] - adds r0, #1 - strh r0, [r4, #0x14] -_0812D7EC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ReeltimeAction6 - - thumb_func_start ReelTimeAction_LandOnOutcome -ReelTimeAction_LandOnOutcome: @ 0x0812D7F4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r6, _0812D81C - ldr r0, [r6] - movs r1, #0x14 - ldrsh r0, [r0, r1] - movs r1, #0x14 - bl __modsi3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r0, #0 - beq _0812D820 - ldrh r0, [r4, #0x10] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - bl AdvanceReeltimeReelToNextTag - b _0812D848 - .align 2, 0 -_0812D81C: .4byte gUnknown_203A800 -_0812D820: - movs r0, #1 - bl GetNearbyReelTimeTag - ldr r1, [r6] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1, #5] - cmp r0, r1 - beq _0812D852 - ldrh r0, [r4, #0x10] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - bl AdvanceReeltimeReel - ldr r0, [r6] - movs r1, #0x14 - ldrsh r0, [r0, r1] - movs r1, #0x14 - bl __modsi3 -_0812D848: - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldrb r0, [r4, #0x10] - adds r0, #0x40 - strh r0, [r4, #0x10] -_0812D852: - lsls r0, r5, #0x10 - asrs r5, r0, #0x10 - cmp r5, #0 - bne _0812D876 - movs r0, #1 - bl GetNearbyReelTimeTag - ldr r1, _0812D87C - ldr r1, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1, #5] - cmp r0, r1 - bne _0812D876 - strh r5, [r4, #0x10] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_0812D876: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0812D87C: .4byte gUnknown_203A800 - thumb_func_end ReelTimeAction_LandOnOutcome - - thumb_func_start ReeltimeAction8 -ReeltimeAction8: @ 0x0812D880 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x10] - adds r0, #1 - movs r6, #0 - strh r0, [r4, #0x10] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3b - ble _0812D924 - bl StopMapMusic - bl sub_0812EA8C - bl sub_0812EBDC - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - ldr r5, _0812D8D4 - ldr r1, [r5] - ldrb r0, [r1, #5] - cmp r0, #0 - bne _0812D8E0 - movs r0, #0xa0 - strh r0, [r4, #0x10] - adds r0, r1, #0 - adds r0, #0x3f - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0812D8D8 - adds r0, r0, r1 - movs r1, #5 - bl StartSpriteAnimIfDifferent - ldr r0, _0812D8DC - bl PlayFanfare - b _0812D924 - .align 2, 0 -_0812D8D4: .4byte gUnknown_203A800 -_0812D8D8: .4byte gUnknown_20205AC -_0812D8DC: .4byte 0x00000187 -_0812D8E0: - movs r0, #0xc0 - strh r0, [r4, #0x10] - adds r0, r1, #0 - adds r0, #0x3f - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _0812D92C - adds r0, r0, r4 - movs r1, #4 - bl StartSpriteAnimIfDifferent - ldr r0, [r5] - adds r0, #0x3f - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x2b - strb r6, [r0] - ldr r0, [r5] - ldrb r0, [r0, #2] - cmp r0, #0 - beq _0812D91C - bl sub_0812D1EC - ldr r0, [r5] - strb r6, [r0, #2] -_0812D91C: - movs r0, #0xc3 - lsls r0, r0, #1 - bl PlayFanfare -_0812D924: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0812D92C: .4byte gUnknown_20205AC - thumb_func_end ReeltimeAction8 - - thumb_func_start ReeltimeAction9 -ReeltimeAction9: @ 0x0812D930 - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x10] - movs r2, #0x10 - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _0812D948 - subs r0, r1, #1 - strh r0, [r4, #0x10] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0812D958 -_0812D948: - bl sub_0812D21C - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0812D958 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_0812D958: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ReeltimeAction9 - - thumb_func_start ReeltimeAction10 -ReeltimeAction10: @ 0x0812D960 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r1, _0812D9A0 - ldrh r0, [r1] - subs r0, #8 - strh r0, [r1] - ldrh r1, [r4, #0xa] - adds r1, #8 - strh r1, [r4, #0xa] - ldrh r0, [r4, #0xe] - adds r0, #8 - strh r0, [r4, #0xe] - movs r2, #0xa - ldrsh r0, [r4, r2] - subs r0, #8 - movs r2, #0xff - ands r0, r2 - lsrs r5, r0, #3 - ldr r0, _0812D9A4 - ands r1, r0 - movs r0, #0x14 - bl SetGpuReg - ldrh r0, [r4, #0xe] - lsls r0, r0, #0x10 - asrs r0, r0, #0x13 - cmp r0, #0x19 - bgt _0812D9A8 - adds r0, r5, #0 - bl sub_0812DC60 - b _0812D9AE - .align 2, 0 -_0812D9A0: .4byte gUnknown_2021B38 -_0812D9A4: .4byte 0x000001FF -_0812D9A8: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_0812D9AE: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end ReeltimeAction10 - - thumb_func_start ReeltimeAction11 -ReeltimeAction11: @ 0x0812D9B4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r4, _0812DA08 - ldr r0, [r4] - movs r6, #0 - strb r6, [r0, #0xb] - ldr r1, [r4] - ldrb r0, [r1, #5] - strb r0, [r1, #0xa] - ldr r0, _0812DA0C - strh r6, [r0] - movs r0, #0x14 - movs r1, #0 - bl SetGpuReg - ldr r1, [r4] - movs r0, #8 - strh r0, [r1, #0x1a] - bl sub_0812E3F8 - bl sub_0812E83C - bl sub_0812E8D4 - ldr r0, [r4] - adds r0, #0x60 - ldrh r0, [r0] - bl PlayNewMapMusic - ldr r0, [r4] - ldrb r0, [r0, #0xa] - cmp r0, #0 - bne _0812DA14 - ldr r0, _0812DA10 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - b _0812DA2A - .align 2, 0 -_0812DA08: .4byte gUnknown_203A800 -_0812DA0C: .4byte gUnknown_2021B38 -_0812DA10: .4byte sub_0812D4FC -_0812DA14: - movs r0, #4 - bl sub_0812DEF4 - bl SlowReelSpeed - strh r0, [r5, #0xa] - strh r6, [r5, #0xc] - strh r6, [r5, #0xe] - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] -_0812DA2A: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end ReeltimeAction11 - - thumb_func_start ReeltimeAction12 -ReeltimeAction12: @ 0x0812DA30 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _0812DA4C - ldr r5, [r0] - movs r0, #0x1a - ldrsh r1, [r5, r0] - movs r2, #0xa - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _0812DA50 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _0812DA76 - .align 2, 0 -_0812DA4C: .4byte gUnknown_203A800 -_0812DA50: - movs r1, #0x1c - ldrsh r0, [r5, r1] - movs r1, #0x18 - bl __modsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0812DA76 - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _0812DA76 - ldrh r0, [r5, #0x1a] - lsls r0, r0, #0x10 - asrs r0, r0, #0x11 - strh r0, [r5, #0x1a] -_0812DA76: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end ReeltimeAction12 - - thumb_func_start ReeltimeAction13 -ReeltimeAction13: @ 0x0812DA7C - push {lr} - bl sub_0812E064 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0812DA96 - ldr r0, _0812DA9C - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_0812DA96: - pop {r0} - bx r0 - .align 2, 0 -_0812DA9C: .4byte sub_0812D4FC - thumb_func_end ReeltimeAction13 - - thumb_func_start ReeltimeAction14 -ReeltimeAction14: @ 0x0812DAA0 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0812E83C - bl sub_0812EA8C - bl sub_0812EBDC - bl VBlankCB_ContestPainting - ldr r5, _0812DB08 - ldr r3, _0812DB0C - ldr r0, [r3] - adds r0, #0x4e - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r3] - adds r0, #0x3f - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #5 - bl StartSpriteAnimIfDifferent - ldrh r0, [r4, #8] - adds r0, #1 - movs r1, #0 - strh r0, [r4, #8] - movs r0, #4 - strh r0, [r4, #0x10] - strh r1, [r4, #0x12] - bl StopMapMusic - ldr r0, _0812DB10 - bl PlayFanfare - movs r0, #0xb2 - bl sub_080A306C - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0812DB08: .4byte gUnknown_20205AC -_0812DB0C: .4byte gUnknown_203A800 -_0812DB10: .4byte 0x00000187 - thumb_func_end ReeltimeAction14 - - thumb_func_start ReeltimeAction15 -ReeltimeAction15: @ 0x0812DB14 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r1, _0812DB90 - ldrh r0, [r4, #0x10] - strh r0, [r1] - ldrh r1, [r4, #0x10] - movs r0, #0x16 - bl SetGpuReg - ldrh r1, [r4, #0x12] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0812DB36 - ldrh r0, [r4, #0x10] - rsbs r0, r0, #0 - strh r0, [r4, #0x10] -_0812DB36: - ldrh r0, [r4, #0x12] - adds r0, #1 - strh r0, [r4, #0x12] - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - bne _0812DB4C - ldrh r0, [r4, #0x10] - lsls r0, r0, #0x10 - asrs r0, r0, #0x11 - strh r0, [r4, #0x10] -_0812DB4C: - movs r0, #0x10 - ldrsh r5, [r4, r0] - cmp r5, #0 - bne _0812DB8A - bl sub_0812EC80 - bl sub_0812ECA4 - bl sub_0812E5B8 - bl sub_0812EDD0 - ldr r2, _0812DB94 - ldr r0, _0812DB98 - ldr r0, [r0] - adds r0, #0x4e - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - strh r5, [r4, #0x12] -_0812DB8A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0812DB90: .4byte gUnknown_2021B3A -_0812DB94: .4byte gUnknown_20205AC -_0812DB98: .4byte gUnknown_203A800 - thumb_func_end ReeltimeAction15 - - thumb_func_start ReeltimeAction16 -ReeltimeAction16: @ 0x0812DB9C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0812DBC8 - movs r0, #0 - strh r0, [r1] - movs r0, #0x16 - movs r1, #0 - bl SetGpuReg - bl sub_0812EEB8 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0812DBC2 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - bl sub_0812EEDC -_0812DBC2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812DBC8: .4byte gUnknown_2021B3A - thumb_func_end ReeltimeAction16 - - thumb_func_start ReeltimeAction17 -ReeltimeAction17: @ 0x0812DBCC - push {lr} - ldr r1, _0812DC0C - movs r0, #0 - strh r0, [r1] - movs r0, #0x14 - movs r1, #0 - bl SetGpuReg - ldr r0, _0812DC10 - ldr r0, [r0] - adds r0, #0x60 - ldrh r0, [r0] - bl PlayNewMapMusic - bl sub_0812E3F8 - bl sub_0812E908 - bl sub_0812E8D4 - bl sub_0812ED9C - ldr r0, _0812DC14 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - pop {r0} - bx r0 - .align 2, 0 -_0812DC0C: .4byte gUnknown_2021B38 -_0812DC10: .4byte gUnknown_203A800 -_0812DC14: .4byte sub_0812D4FC - thumb_func_end ReeltimeAction17 - - thumb_func_start sub_0812DC18 -sub_0812DC18: @ 0x0812DC18 - push {r4, r5, r6, lr} - movs r2, #4 - lsls r1, r1, #0x10 - asrs r6, r1, #0x10 - lsls r0, r0, #0x10 - asrs r5, r0, #0x10 -_0812DC24: - lsls r4, r2, #0x10 - asrs r4, r4, #0x10 - subs r0, r4, #4 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r6, r1 - lsls r1, r1, #1 - ldr r0, _0812DC5C - adds r1, r1, r0 - lsls r3, r4, #5 - adds r3, r5, r3 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - movs r0, #1 - movs r2, #2 - bl LoadBgTilemap - adds r4, #1 - lsls r4, r4, #0x10 - lsrs r2, r4, #0x10 - asrs r4, r4, #0x10 - cmp r4, #0xe - ble _0812DC24 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0812DC5C: .4byte gUnknown_8587F9C - thumb_func_end sub_0812DC18 - - thumb_func_start sub_0812DC60 -sub_0812DC60: @ 0x0812DC60 - push {r4, r5, lr} - movs r4, #4 - lsls r0, r0, #0x10 - asrs r5, r0, #0x10 -_0812DC68: - lsls r3, r4, #5 - adds r3, r5, r3 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - movs r0, #1 - ldr r1, _0812DC8C - movs r2, #2 - bl LoadBgTilemap - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xe - bls _0812DC68 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0812DC8C: .4byte gUnknown_8588604 - thumb_func_end sub_0812DC60 - - thumb_func_start OpenInfoBox -OpenInfoBox: @ 0x0812DC90 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r5, _0812DCBC - adds r0, r5, #0 - movs r1, #1 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0812DCC0 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #0xa] - bl _call_via_r5 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0812DCBC: .4byte sub_0812DCE4 -_0812DCC0: .4byte gUnknown_3005B60 - thumb_func_end OpenInfoBox - - thumb_func_start sub_0812DCC4 -sub_0812DCC4: @ 0x0812DCC4 - push {lr} - ldr r0, _0812DCD8 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _0812DCDC - movs r0, #0 - b _0812DCDE - .align 2, 0 -_0812DCD8: .4byte sub_0812DCE4 -_0812DCDC: - movs r0, #1 -_0812DCDE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0812DCC4 - - thumb_func_start sub_0812DCE4 -sub_0812DCE4: @ 0x0812DCE4 - push {lr} - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r3, _0812DD0C - ldr r2, _0812DD10 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r2, #8 - ldrsh r1, [r0, r2] - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_0812DD0C: .4byte gUnknown_8584558 -_0812DD10: .4byte gUnknown_3005B60 - thumb_func_end sub_0812DCE4 - - thumb_func_start InfoBox_FadeIn -InfoBox_FadeIn: @ 0x0812DD14 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end InfoBox_FadeIn - - thumb_func_start InfoBox_WaitForFade -InfoBox_WaitForFade: @ 0x0812DD38 - push {lr} - adds r2, r0, #0 - ldr r0, _0812DD54 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0812DD4E - ldrh r0, [r2, #8] - adds r0, #1 - strh r0, [r2, #8] -_0812DD4E: - pop {r0} - bx r0 - .align 2, 0 -_0812DD54: .4byte gUnknown_2037C74 - thumb_func_end InfoBox_WaitForFade - - thumb_func_start InfoBox_8104B80 -InfoBox_8104B80: @ 0x0812DD58 - push {r4, lr} - adds r4, r0, #0 - bl sub_0812DFEC - bl sub_0812FB18 - ldr r0, _0812DD84 - bl AddWindow - movs r0, #1 - bl PutWindowTilemap - movs r0, #1 - movs r1, #0 - bl FillWindowPixelBuffer - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812DD84: .4byte gUnknown_85843C8 - thumb_func_end InfoBox_8104B80 - - thumb_func_start InfoBox_AddText -InfoBox_AddText: @ 0x0812DD88 - push {r4, r5, lr} - sub sp, #0xc - adds r5, r0, #0 - ldr r0, _0812DDCC - str r0, [sp] - movs r4, #0 - str r4, [sp, #4] - ldr r0, _0812DDD0 - str r0, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 - movs r0, #1 - movs r1, #3 - bl CopyWindowToVram - movs r0, #1 - rsbs r0, r0, #0 - str r4, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0812DDCC: .4byte gUnknown_85843D0 -_0812DDD0: .4byte gUnknown_8588651 - thumb_func_end InfoBox_AddText - - thumb_func_start InfoBox_AwaitPlayerInput -InfoBox_AwaitPlayerInput: @ 0x0812DDD4 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - ldr r0, _0812DE20 - ldrh r1, [r0, #0x2e] - movs r0, #6 - ands r0, r1 - cmp r0, #0 - beq _0812DE18 - movs r0, #1 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #1 - bl ClearWindowTilemap - movs r0, #1 - movs r1, #1 - bl CopyWindowToVram - movs r0, #1 - bl RemoveWindow - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_0812DE18: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812DE20: .4byte gUnknown_3002360 - thumb_func_end InfoBox_AwaitPlayerInput - - thumb_func_start InfoBox_812DE14 -InfoBox_812DE14: @ 0x0812DE24 - push {r4, lr} - adds r4, r0, #0 - bl sub_0812F978 - movs r0, #3 - bl ShowBg - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end InfoBox_812DE14 - - thumb_func_start InfoBox_812DE30 -InfoBox_812DE30: @ 0x0812DE40 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - bl sub_0812DEF4 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end InfoBox_812DE30 - - thumb_func_start InfoBox_8104BFC -InfoBox_8104BFC: @ 0x0812DE58 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - ldr r0, _0812DE88 - ldr r0, [r0] - ldrb r0, [r0, #2] - bl sub_0812D3C4 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812DE88: .4byte gUnknown_203A800 - thumb_func_end InfoBox_8104BFC - - thumb_func_start sub_0812DE8C -sub_0812DE8C: @ 0x0812DE8C - push {lr} - ldr r0, _0812DEA0 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - pop {r0} - bx r0 - .align 2, 0 -_0812DEA0: .4byte sub_0812DCE4 - thumb_func_end sub_0812DE8C - - thumb_func_start sub_0812DEA4 -sub_0812DEA4: @ 0x0812DEA4 - push {lr} - ldr r0, _0812DEE4 - movs r1, #3 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r0, _0812DEE8 - ldr r0, [r0] - adds r0, #0x3d - strb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - ldr r1, _0812DEEC - adds r0, r0, r1 - ldr r1, _0812DEF0 - strh r1, [r0, #0xa] - movs r1, #4 - adds r2, r0, #0 - adds r2, #8 - movs r3, #0x40 -_0812DED0: - lsls r0, r1, #1 - adds r0, r2, r0 - strh r3, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xf - bls _0812DED0 - pop {r0} - bx r0 - .align 2, 0 -_0812DEE4: .4byte sub_0812E0C0 -_0812DEE8: .4byte gUnknown_203A800 -_0812DEEC: .4byte gUnknown_3005B60 -_0812DEF0: .4byte 0x0000FFFF - thumb_func_end sub_0812DEA4 - - thumb_func_start sub_0812DEF4 -sub_0812DEF4: @ 0x0812DEF4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_0812DFEC - ldr r0, _0812DF6C - ldr r0, [r0] - adds r0, #0x3d - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - ldr r1, _0812DF70 - adds r7, r0, r1 - strh r4, [r7, #0xa] - movs r6, #0 - ldr r1, _0812DF74 - lsls r5, r4, #2 - adds r0, r5, r1 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, #0xff - beq _0812DF62 - mov r8, r1 -_0812DF2A: - mov r0, r8 - adds r4, r5, r0 - ldr r0, [r4] - lsls r2, r6, #2 - adds r2, r2, r0 - ldrb r0, [r2] - ldrb r1, [r2, #1] - movs r3, #2 - ldrsh r2, [r2, r3] - bl sub_0812EFA8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r2, r6, #4 - lsls r2, r2, #1 - adds r1, r7, #0 - adds r1, #8 - adds r1, r1, r2 - strh r0, [r1] - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, [r4] - lsls r0, r6, #2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0xff - bne _0812DF2A -_0812DF62: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0812DF6C: .4byte gUnknown_203A800 -_0812DF70: .4byte gUnknown_3005B60 -_0812DF74: .4byte gUnknown_8584988 - thumb_func_end sub_0812DEF4 - - thumb_func_start sub_0812DF78 -sub_0812DF78: @ 0x0812DF78 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - mov r8, r1 - ldr r4, [sp, #0x1c] - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _0812DFCC - ldr r0, [r0] - adds r0, #0x3d - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - ldr r1, _0812DFD0 - adds r0, r0, r1 - mov ip, r0 - movs r5, #4 - lsls r4, r4, #0x10 - asrs r6, r4, #0x10 - lsls r2, r2, #0x10 - lsls r3, r3, #0x10 -_0812DFA6: - lsls r0, r5, #1 - mov r1, ip - adds r1, #8 - adds r4, r1, r0 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #0x40 - bne _0812DFD4 - str r6, [sp] - adds r0, r7, #0 - mov r1, r8 - asrs r2, r2, #0x10 - asrs r3, r3, #0x10 - bl sub_0812EFEC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - b _0812DFDE - .align 2, 0 -_0812DFCC: .4byte gUnknown_203A800 -_0812DFD0: .4byte gUnknown_3005B60 -_0812DFD4: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0xf - bls _0812DFA6 -_0812DFDE: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0812DF78 - - thumb_func_start sub_0812DFEC -sub_0812DFEC: @ 0x0812DFEC - push {r4, r5, r6, lr} - ldr r0, _0812E050 - ldr r0, [r0] - adds r0, #0x3d - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - ldr r1, _0812E054 - adds r4, r0, r1 - ldrh r1, [r4, #0xa] - ldr r0, _0812E058 - cmp r1, r0 - beq _0812E018 - ldr r0, _0812E05C - movs r2, #0xa - ldrsh r1, [r4, r2] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl _call_via_r0 -_0812E018: - movs r5, #4 - adds r6, r4, #0 - adds r6, #8 -_0812E01E: - lsls r0, r5, #1 - adds r4, r6, r0 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #0x40 - beq _0812E03E - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0812E060 - adds r0, r0, r1 - bl DestroySprite - movs r0, #0x40 - strh r0, [r4] -_0812E03E: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0xf - bls _0812E01E - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0812E050: .4byte gUnknown_203A800 -_0812E054: .4byte gUnknown_3005B60 -_0812E058: .4byte 0x0000FFFF -_0812E05C: .4byte gUnknown_85849A4 -_0812E060: .4byte gUnknown_20205AC - thumb_func_end sub_0812DFEC - - thumb_func_start sub_0812E064 -sub_0812E064: @ 0x0812E064 - push {r4, r5, lr} - ldr r0, _0812E0A0 - ldr r0, [r0] - adds r0, #0x3d - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - ldr r1, _0812E0A4 - adds r0, r0, r1 - movs r2, #4 - adds r3, r0, #0 - adds r3, #8 - ldr r4, _0812E0A8 -_0812E080: - lsls r0, r2, #1 - adds r1, r3, r0 - movs r5, #0 - ldrsh r0, [r1, r5] - cmp r0, #0x40 - beq _0812E0AC - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - movs r5, #0x3c - ldrsh r0, [r1, r5] - cmp r0, #0 - beq _0812E0AC - movs r0, #0 - b _0812E0B8 - .align 2, 0 -_0812E0A0: .4byte gUnknown_203A800 -_0812E0A4: .4byte gUnknown_3005B60 -_0812E0A8: .4byte gUnknown_20205AC -_0812E0AC: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xf - bls _0812E080 - movs r0, #1 -_0812E0B8: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0812E064 - - thumb_func_start sub_0812E0C0 -sub_0812E0C0: @ 0x0812E0C0 - push {lr} - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r3, _0812E0E8 - ldr r2, _0812E0EC - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r2, #8 - ldrsh r1, [r0, r2] - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_0812E0E8: .4byte gUnknown_8584594 -_0812E0EC: .4byte gUnknown_3005B60 - thumb_func_end sub_0812E0C0 - - thumb_func_start sub_0812E0F0 -sub_0812E0F0: @ 0x0812E0F0 - bx lr - .align 2, 0 - thumb_func_end sub_0812E0F0 - - thumb_func_start sub_0812E0F4 -sub_0812E0F4: @ 0x0812E0F4 - push {r4, r5, r6, r7, lr} - movs r6, #0 - movs r0, #0x30 -_0812E0FA: - movs r4, #0 - lsls r5, r0, #0x10 - lsls r7, r6, #0x10 -_0812E100: - ldr r0, _0812E158 - asrs r1, r5, #0x10 - movs r2, #0 - movs r3, #0xe - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _0812E15C - adds r1, r1, r0 - ldrb r0, [r1, #5] - movs r2, #0xc - orrs r0, r2 - strb r0, [r1, #5] - strh r6, [r1, #0x2e] - strh r4, [r1, #0x30] - ldr r0, _0812E160 - strh r0, [r1, #0x34] - lsls r0, r4, #0x10 - movs r1, #0xc0 - lsls r1, r1, #0xd - adds r0, r0, r1 - lsrs r4, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x77 - ble _0812E100 - movs r2, #0x80 - lsls r2, r2, #9 - adds r1, r7, r2 - movs r2, #0xa0 - lsls r2, r2, #0xe - adds r0, r5, r2 - lsrs r0, r0, #0x10 - lsrs r6, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #2 - ble _0812E0FA - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0812E158: .4byte gUnknown_8584C64 -_0812E15C: .4byte gUnknown_20205AC -_0812E160: .4byte 0x0000FFFF - thumb_func_end sub_0812E0F4 - - thumb_func_start sub_0812E164 -sub_0812E164: @ 0x0812E164 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0812E1D4 - ldr r4, [r0] - movs r1, #0x2e - ldrsh r0, [r5, r1] - lsls r0, r0, #1 - adds r1, r4, #0 - adds r1, #0x1c - adds r1, r1, r0 - ldrh r0, [r5, #0x30] - ldrh r1, [r1] - adds r0, r0, r1 - strh r0, [r5, #0x32] - movs r2, #0x32 - ldrsh r0, [r5, r2] - movs r1, #0x78 - bl __modsi3 - strh r0, [r5, #0x32] - movs r2, #0x2e - ldrsh r1, [r5, r2] - lsls r1, r1, #1 - adds r4, #0x22 - adds r4, r4, r1 - ldrh r1, [r4] - adds r1, #0x1c - adds r0, r0, r1 - strh r0, [r5, #0x22] - ldrh r4, [r5, #0x2e] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r1, #0x32 - ldrsh r0, [r5, r1] - movs r1, #0x18 - bl __divsi3 - adds r1, r0, #0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r4, #0 - bl GetNearbyTag_Quantized - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - 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 -_0812E1D4: .4byte gUnknown_203A800 - thumb_func_end sub_0812E164 - - thumb_func_start sub_0812E1D8 -sub_0812E1D8: @ 0x0812E1D8 - push {r4, r5, r6, lr} - movs r4, #0xcb - movs r5, #1 - ldr r6, _0812E23C -_0812E1E0: - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - adds r0, r4, #0 - movs r1, #0x17 - movs r2, #0 - adds r3, r5, #0 - bl sub_0812E240 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #0x11 - subs r4, #7 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsrs r5, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, r6 - ble _0812E1E0 - movs r4, #0xeb - movs r5, #1 - ldr r6, _0812E23C -_0812E20E: - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - adds r0, r4, #0 - movs r1, #0x17 - movs r2, #1 - adds r3, r5, #0 - bl sub_0812E240 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #0x11 - subs r4, #7 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsrs r5, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, r6 - ble _0812E20E - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0812E23C: .4byte 0x0000270F - thumb_func_end sub_0812E1D8 - - thumb_func_start sub_0812E240 -sub_0812E240: @ 0x0812E240 - push {r4, r5, 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, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r0, _0812E2AC - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - lsls r6, r6, #0x10 - asrs r6, r6, #0x10 - adds r1, r5, #0 - adds r2, r6, #0 - movs r3, #0xd - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r0, _0812E2B0 - adds r2, r2, r0 - ldrb r1, [r2, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2, #5] - mov r0, r8 - strh r0, [r2, #0x2e] - strh r4, [r2, #0x30] - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #1 - strh r0, [r2, #0x32] - ldr r0, _0812E2B4 - strh r0, [r2, #0x34] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0812E2AC: .4byte gUnknown_8584C7C -_0812E2B0: .4byte gUnknown_20205AC -_0812E2B4: .4byte 0x0000FFFF - thumb_func_end sub_0812E240 - - thumb_func_start sub_0812E2B8 -sub_0812E2B8: @ 0x0812E2B8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0812E30C - ldr r1, [r0] - ldrh r2, [r1, #0xc] - movs r3, #0x2e - ldrsh r0, [r4, r3] - cmp r0, #0 - beq _0812E2CC - ldrh r2, [r1, #0xe] -_0812E2CC: - movs r1, #0x34 - ldrsh r0, [r4, r1] - cmp r0, r2 - beq _0812E306 - strh r2, [r4, #0x34] - ldrh r1, [r4, #0x32] - adds r0, r2, #0 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldrh r1, [r4, #0x30] - adds r0, r2, #0 - bl __udivsi3 - lsls r0, r0, #0x10 - movs r3, #0xe0 - lsls r3, r3, #0xb - adds r0, r0, r3 - lsrs r2, r0, #0x10 - adds r0, r2, #0 - bl GetSpriteTileStartByTag - adds r1, r4, #0 - adds r1, #0x40 - strh r0, [r1] - adds r0, r4, #0 - bl SetSpriteSheetFrameTileNum -_0812E306: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812E30C: .4byte gUnknown_203A800 - thumb_func_end sub_0812E2B8 - - thumb_func_start sub_0812E310 -sub_0812E310: @ 0x0812E310 - push {lr} - ldr r0, _0812E340 - movs r1, #0x58 - movs r2, #0x48 - movs r3, #0xf - bl CreateSprite - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _0812E344 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #5] - movs r2, #0xc - orrs r1, r2 - strb r1, [r0, #5] - ldr r1, _0812E348 - bl SetSubspriteTables - pop {r0} - bx r0 - .align 2, 0 -_0812E340: .4byte gUnknown_8584C94 -_0812E344: .4byte gUnknown_20205AC -_0812E348: .4byte gUnknown_8584F44 - thumb_func_end sub_0812E310 - - thumb_func_start sub_0812E34C -sub_0812E34C: @ 0x0812E34C - push {r4, r5, lr} - sub sp, #0x18 - ldr r4, _0812E3E4 - ldr r0, [r4] - cmp r0, #0 - bne _0812E360 - movs r0, #0x28 - bl AllocZeroed - str r0, [r4] -_0812E360: - ldr r2, [r4] - ldr r0, _0812E3E8 - ldr r1, [r0] - str r1, [r2] - movs r3, #0x80 - lsls r3, r3, #4 - strh r3, [r2, #4] - adds r0, r1, r3 - str r0, [r2, #8] - strh r3, [r2, #0xc] - movs r4, #0x80 - lsls r4, r4, #5 - adds r0, r1, r4 - str r0, [r2, #0x10] - strh r3, [r2, #0x14] - movs r5, #0xc0 - lsls r5, r5, #5 - adds r0, r1, r5 - str r0, [r2, #0x18] - strh r3, [r2, #0x1c] - movs r0, #0x80 - lsls r0, r0, #6 - adds r1, r1, r0 - str r1, [r2, #0x20] - strh r3, [r2, #0x24] - mov r1, sp - ldr r0, _0812E3EC - ldm r0!, {r3, r4, r5} - stm r1!, {r3, r4, r5} - ldm r0!, {r3, r4, r5} - stm r1!, {r3, r4, r5} - str r2, [sp, #0xc] - movs r1, #0x8c - lsls r1, r1, #1 - mov r0, sp - movs r2, #0x50 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0812E3F0 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r1 - ldrb r3, [r2, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r3 - movs r3, #4 - orrs r1, r3 - strb r1, [r2, #5] - adds r2, #0x3e - ldrb r1, [r2] - movs r3, #2 - orrs r1, r3 - strb r1, [r2] - ldr r1, _0812E3F4 - ldr r1, [r1] - adds r1, #0x3f - strb r0, [r1] - add sp, #0x18 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0812E3E4: .4byte gUnknown_203A7B0 -_0812E3E8: .4byte gUnknown_203A7A4 -_0812E3EC: .4byte gUnknown_8584CAC -_0812E3F0: .4byte gUnknown_20205AC -_0812E3F4: .4byte gUnknown_203A800 - thumb_func_end sub_0812E34C - - thumb_func_start sub_0812E3F8 -sub_0812E3F8: @ 0x0812E3F8 - push {r4, lr} - ldr r0, _0812E428 - ldr r0, [r0] - adds r0, #0x3f - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0812E42C - adds r0, r0, r1 - bl DestroySprite - ldr r4, _0812E430 - ldr r0, [r4] - cmp r0, #0 - beq _0812E420 - bl Free - movs r0, #0 - str r0, [r4] -_0812E420: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812E428: .4byte gUnknown_203A800 -_0812E42C: .4byte gUnknown_20205AC -_0812E430: .4byte gUnknown_203A7B0 - thumb_func_end sub_0812E3F8 - - thumb_func_start sub_0812E434 -sub_0812E434: @ 0x0812E434 - 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, #4 - bne _0812E47A - movs r0, #8 - strh r0, [r2, #0x24] - strh r0, [r2, #0x26] - adds r0, r2, #0 - adds r0, #0x2b - ldrb r0, [r0] - cmp r0, #0 - beq _0812E468 - adds r0, r2, #0 - adds r0, #0x2c - ldrb r1, [r0] - movs r0, #0x3f - ands r0, r1 - cmp r0, #0 - bne _0812E476 - b _0812E47A -_0812E468: - adds r0, r2, #0 - adds r0, #0x2c - ldrb r1, [r0] - movs r0, #0x3f - ands r0, r1 - cmp r0, #0 - bne _0812E47A -_0812E476: - ldr r0, _0812E480 - strh r0, [r2, #0x26] -_0812E47A: - pop {r0} - bx r0 - .align 2, 0 -_0812E480: .4byte 0x0000FFF8 - thumb_func_end sub_0812E434 - - thumb_func_start sub_0812E484 -sub_0812E484: @ 0x0812E484 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - ldr r4, _0812E594 - ldr r0, [r4] - cmp r0, #0 - bne _0812E4A0 - movs r0, #8 - bl AllocZeroed - str r0, [r4] -_0812E4A0: - ldr r2, [r4] - ldr r0, _0812E598 - mov sl, r0 - ldr r0, [r0] - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r0, r1 - str r0, [r2] - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r2, #4] - mov r1, sp - ldr r0, _0812E59C - ldm r0!, {r3, r4, r5} - stm r1!, {r3, r4, r5} - ldm r0!, {r3, r4, r7} - stm r1!, {r3, r4, r7} - str r2, [sp, #0xc] - mov r0, sp - movs r1, #0xb8 - lsls r1, r1, #1 - movs r2, #0x34 - movs r3, #7 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - ldr r5, _0812E5A0 - mov sb, r5 - adds r2, r0, r5 - ldrb r1, [r2, #5] - movs r7, #0xd - rsbs r7, r7, #0 - mov r8, r7 - mov r0, r8 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2, #5] - adds r1, r2, #0 - adds r1, #0x3e - ldrb r0, [r1] - movs r6, #2 - orrs r0, r6 - strb r0, [r1] - ldr r1, _0812E5A4 - adds r0, r2, #0 - bl SetSubspriteTables - ldr r5, _0812E5A8 - ldr r0, [r5] - adds r0, #0x49 - strb r4, [r0] - ldr r4, _0812E5AC - ldr r0, [r4] - cmp r0, #0 - bne _0812E520 - movs r0, #8 - bl AllocZeroed - str r0, [r4] -_0812E520: - ldr r2, [r4] - mov r3, sl - ldr r0, [r3] - movs r4, #0xac - lsls r4, r4, #6 - adds r0, r0, r4 - str r0, [r2] - movs r0, #0xa0 - lsls r0, r0, #3 - strh r0, [r2, #4] - mov r1, sp - ldr r0, _0812E5B0 - ldm r0!, {r3, r4, r7} - stm r1!, {r3, r4, r7} - ldm r0!, {r3, r4, r7} - stm r1!, {r3, r4, r7} - str r2, [sp, #0xc] - mov r0, sp - movs r1, #0xb8 - lsls r1, r1, #1 - movs r2, #0x54 - movs r3, #7 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - mov r7, sb - adds r2, r0, r7 - ldrb r1, [r2, #5] - mov r0, r8 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2, #5] - adds r1, r2, #0 - adds r1, #0x3e - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - ldr r1, _0812E5B4 - adds r0, r2, #0 - bl SetSubspriteTables - ldr r0, [r5] - adds r0, #0x4a - strb r4, [r0] - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0812E594: .4byte gUnknown_203A7B4 -_0812E598: .4byte gUnknown_203A7A4 -_0812E59C: .4byte gUnknown_8584CC4 -_0812E5A0: .4byte gUnknown_20205AC -_0812E5A4: .4byte gUnknown_8584F64 -_0812E5A8: .4byte gUnknown_203A800 -_0812E5AC: .4byte gUnknown_203A7B8 -_0812E5B0: .4byte gUnknown_8584CDC -_0812E5B4: .4byte gUnknown_8584F78 - thumb_func_end sub_0812E484 - - thumb_func_start sub_0812E5B8 -sub_0812E5B8: @ 0x0812E5B8 - push {r4, r5, lr} - sub sp, #0x18 - ldr r4, _0812E644 - ldr r0, [r4] - cmp r0, #0 - bne _0812E5CC - movs r0, #8 - bl AllocZeroed - str r0, [r4] -_0812E5CC: - ldr r2, [r4] - ldr r0, _0812E648 - ldr r0, [r0] - movs r1, #0xc0 - lsls r1, r1, #6 - adds r0, r0, r1 - str r0, [r2] - movs r0, #0xc0 - lsls r0, r0, #3 - strh r0, [r2, #4] - mov r1, sp - ldr r0, _0812E64C - ldm r0!, {r3, r4, r5} - stm r1!, {r3, r4, r5} - ldm r0!, {r3, r4, r5} - stm r1!, {r3, r4, r5} - str r2, [sp, #0xc] - ldr r0, _0812E650 - ldrh r0, [r0] - movs r1, #0xa8 - subs r1, r1, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - mov r0, sp - movs r2, #0x50 - movs r3, #7 - bl CreateSprite - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - ldr r1, _0812E654 - adds r0, r0, r1 - ldrb r2, [r0, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #4 - orrs r1, r2 - strb r1, [r0, #5] - adds r3, r0, #0 - adds r3, #0x3e - ldrb r1, [r3] - movs r2, #2 - orrs r1, r2 - strb r1, [r3] - ldr r1, _0812E658 - bl SetSubspriteTables - ldr r0, _0812E65C - ldr r0, [r0] - adds r0, #0x42 - strb r4, [r0] - add sp, #0x18 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0812E644: .4byte gUnknown_203A7BC -_0812E648: .4byte gUnknown_203A7A4 -_0812E64C: .4byte gUnknown_8584CF4 -_0812E650: .4byte gUnknown_2021B38 -_0812E654: .4byte gUnknown_20205AC -_0812E658: .4byte gUnknown_8584F94 -_0812E65C: .4byte gUnknown_203A800 - thumb_func_end sub_0812E5B8 - - thumb_func_start sub_0812E660 -sub_0812E660: @ 0x0812E660 - push {r4, r5, r6, lr} - movs r4, #0 - movs r5, #0 -_0812E666: - ldr r0, _0812E6C8 - movs r1, #0xb8 - lsls r1, r1, #1 - movs r2, #0 - movs r3, #0xa - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r3, r0, #4 - adds r3, r3, r0 - lsls r3, r3, #2 - ldr r1, _0812E6CC - adds r3, r3, r1 - ldrb r2, [r3, #5] - movs r6, #0xd - rsbs r6, r6, #0 - adds r1, r6, #0 - ands r2, r1 - movs r1, #4 - orrs r2, r1 - strb r2, [r3, #5] - movs r1, #0x3e - adds r1, r1, r3 - mov ip, r1 - ldrb r1, [r1] - movs r2, #2 - orrs r1, r2 - mov r2, ip - strb r1, [r2] - strh r5, [r3, #0x3c] - ldr r1, _0812E6D0 - ldr r1, [r1] - adds r1, #0x4b - adds r1, r1, r4 - strb r0, [r1] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r5, #0x10 - movs r6, #0xa0 - lsls r6, r6, #0xd - adds r0, r0, r6 - lsrs r5, r0, #0x10 - cmp r4, #2 - bls _0812E666 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0812E6C8: .4byte gUnknown_8584D0C -_0812E6CC: .4byte gUnknown_20205AC -_0812E6D0: .4byte gUnknown_203A800 - thumb_func_end sub_0812E660 - - thumb_func_start sub_0812E6D4 -sub_0812E6D4: @ 0x0812E6D4 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0812E718 - ldr r1, [r0] - ldrh r0, [r4, #0x3c] - ldrh r1, [r1, #0x14] - adds r0, r0, r1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x28 - bl __modsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r0, #0 - adds r1, #0x3b - strh r1, [r4, #0x22] - movs r1, #0x14 - bl __divsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - bl GetNearbyReelTimeTag - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnimIfDifferent - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812E718: .4byte gUnknown_203A800 - thumb_func_end sub_0812E6D4 - - thumb_func_start sub_0812E71C -sub_0812E71C: @ 0x0812E71C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - movs r1, #0xb8 - lsls r1, r1, #1 - ldr r0, _0812E7CC - movs r2, #0x64 - movs r3, #9 - bl CreateSprite - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - ldr r7, _0812E7D0 - adds r2, r0, r7 - adds r1, r2, #0 - adds r1, #0x3e - ldrb r0, [r1] - movs r3, #2 - mov sl, r3 - mov r3, sl - orrs r0, r3 - strb r0, [r1] - ldrb r1, [r2, #5] - movs r5, #0xd - rsbs r5, r5, #0 - adds r0, r5, #0 - ands r0, r1 - movs r1, #4 - mov r8, r1 - mov r3, r8 - orrs r0, r3 - strb r0, [r2, #5] - ldr r0, _0812E7D4 - mov sb, r0 - adds r0, r2, #0 - mov r1, sb - bl SetSubspriteTables - ldr r6, _0812E7D8 - ldr r0, [r6] - adds r0, #0x4e - strb r4, [r0] - movs r1, #0x90 - lsls r1, r1, #1 - ldr r0, _0812E7CC - movs r2, #0x68 - movs r3, #4 - bl CreateSprite - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r2, r0, r7 - adds r1, r2, #0 - adds r1, #0x3e - ldrb r0, [r1] - mov r3, sl - orrs r0, r3 - strb r0, [r1] - ldrb r0, [r2, #5] - ands r5, r0 - mov r0, r8 - orrs r5, r0 - strb r5, [r2, #5] - adds r0, r2, #0 - mov r1, sb - bl SetSubspriteTables - ldr r0, [r6] - adds r0, #0x4f - strb r4, [r0] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0812E7CC: .4byte gUnknown_8584D24 -_0812E7D0: .4byte gUnknown_20205AC -_0812E7D4: .4byte gUnknown_8584FAC -_0812E7D8: .4byte gUnknown_203A800 - thumb_func_end sub_0812E71C - - thumb_func_start sub_0812E7DC -sub_0812E7DC: @ 0x0812E7DC - push {r4, lr} - ldr r0, _0812E82C - movs r1, #0xb8 - lsls r1, r1, #1 - movs r2, #0x4c - movs r3, #0xb - bl CreateSprite - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - ldr r1, _0812E830 - adds r0, r0, r1 - adds r3, r0, #0 - adds r3, #0x3e - ldrb r1, [r3] - movs r2, #2 - orrs r1, r2 - strb r1, [r3] - ldrb r2, [r0, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #4 - orrs r1, r2 - strb r1, [r0, #5] - ldr r1, _0812E834 - bl SetSubspriteTables - ldr r0, _0812E838 - ldr r0, [r0] - adds r0, #0x40 - strb r4, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812E82C: .4byte gUnknown_8584D3C -_0812E830: .4byte gUnknown_20205AC -_0812E834: .4byte gUnknown_8584FC0 -_0812E838: .4byte gUnknown_203A800 - thumb_func_end sub_0812E7DC - - thumb_func_start sub_0812E83C -sub_0812E83C: @ 0x0812E83C - push {r4, lr} - ldr r0, _0812E8C4 - ldr r0, [r0] - adds r0, #0x40 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0812E8C8 - adds r0, r0, r1 - bl DestroySprite - movs r4, #0 -_0812E856: - ldr r0, _0812E8C4 - ldr r0, [r0] - adds r0, #0x49 - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0812E8C8 - adds r0, r0, r1 - bl DestroySprite - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #1 - bls _0812E856 - ldr r4, _0812E8CC - ldr r0, [r4] - cmp r0, #0 - beq _0812E888 - bl Free - movs r0, #0 - str r0, [r4] -_0812E888: - ldr r4, _0812E8D0 - ldr r0, [r4] - cmp r0, #0 - beq _0812E898 - bl Free - movs r0, #0 - str r0, [r4] -_0812E898: - movs r4, #0 -_0812E89A: - ldr r0, _0812E8C4 - ldr r0, [r0] - adds r0, #0x4b - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0812E8C8 - adds r0, r0, r1 - bl DestroySprite - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #2 - bls _0812E89A - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812E8C4: .4byte gUnknown_203A800 -_0812E8C8: .4byte gUnknown_20205AC -_0812E8CC: .4byte gUnknown_203A7B4 -_0812E8D0: .4byte gUnknown_203A7B8 - thumb_func_end sub_0812E83C - - thumb_func_start sub_0812E8D4 -sub_0812E8D4: @ 0x0812E8D4 - push {r4, lr} - movs r4, #0 -_0812E8D8: - ldr r0, _0812E900 - ldr r0, [r0] - adds r0, #0x4e - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0812E904 - adds r0, r0, r1 - bl DestroySprite - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #1 - bls _0812E8D8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812E900: .4byte gUnknown_203A800 -_0812E904: .4byte gUnknown_20205AC - thumb_func_end sub_0812E8D4 - - thumb_func_start sub_0812E908 -sub_0812E908: @ 0x0812E908 - push {r4, lr} - ldr r0, _0812E938 - ldr r0, [r0] - adds r0, #0x42 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0812E93C - adds r0, r0, r1 - bl DestroySprite - ldr r4, _0812E940 - ldr r0, [r4] - cmp r0, #0 - beq _0812E930 - bl Free - movs r0, #0 - str r0, [r4] -_0812E930: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812E938: .4byte gUnknown_203A800 -_0812E93C: .4byte gUnknown_20205AC -_0812E940: .4byte gUnknown_203A7BC - thumb_func_end sub_0812E908 - - thumb_func_start CreateReelTimeSprites1 -CreateReelTimeSprites1: @ 0x0812E944 - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - ldr r0, _0812E9E8 - mov sl, r0 - movs r1, #0x98 - movs r2, #0x20 - movs r3, #5 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r2, _0812E9EC - mov sb, r2 - adds r3, r1, r2 - ldrb r2, [r3, #5] - movs r4, #0xd - rsbs r4, r4, #0 - adds r1, r4, #0 - ands r1, r2 - movs r2, #4 - mov r8, r2 - mov r2, r8 - orrs r1, r2 - strb r1, [r3, #5] - adds r5, r3, #0 - adds r5, #0x3f - ldrb r1, [r5] - movs r2, #1 - orrs r1, r2 - strb r1, [r5] - ldr r6, _0812E9F0 - ldr r1, [r6] - adds r1, #0x50 - strb r0, [r1] - movs r0, #8 - strh r0, [r3, #0x2e] - ldr r0, _0812E9F4 - strh r0, [r3, #0x30] - movs r0, #1 - rsbs r0, r0, #0 - strh r0, [r3, #0x32] - movs r5, #0x20 - strh r5, [r3, #0x3c] - mov r0, sl - movs r1, #0xb8 - movs r2, #0x20 - movs r3, #5 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - mov r2, sb - adds r3, r1, r2 - ldrb r1, [r3, #5] - ands r4, r1 - mov r1, r8 - orrs r4, r1 - strb r4, [r3, #5] - ldr r1, [r6] - adds r1, #0x51 - strb r0, [r1] - movs r0, #1 - strh r0, [r3, #0x30] - subs r0, #2 - strh r0, [r3, #0x32] - strh r5, [r3, #0x3c] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0812E9E8: .4byte gUnknown_8584D54 -_0812E9EC: .4byte gUnknown_20205AC -_0812E9F0: .4byte gUnknown_203A800 -_0812E9F4: .4byte 0x0000FFFF - thumb_func_end CreateReelTimeSprites1 - - thumb_func_start sub_0812E9F8 -sub_0812E9F8: @ 0x0812E9F8 - push {r4, lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x2e] - movs r1, #0x2e - ldrsh r4, [r2, r1] - cmp r4, #0 - beq _0812EA1C - subs r0, #1 - movs r1, #0 - strh r0, [r2, #0x2e] - strh r1, [r2, #0x24] - strh r1, [r2, #0x26] - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - b _0812EA4E -_0812EA1C: - adds r3, r2, #0 - adds r3, #0x3e - ldrb r1, [r3] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3] - ldrh r0, [r2, #0x30] - ldrh r1, [r2, #0x24] - adds r0, r0, r1 - strh r0, [r2, #0x24] - ldrh r0, [r2, #0x32] - ldrh r1, [r2, #0x26] - adds r0, r0, r1 - strh r0, [r2, #0x26] - ldrh r0, [r2, #0x34] - adds r0, #1 - strh r0, [r2, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #7 - ble _0812EA4E - ldrh r0, [r2, #0x3c] - strh r0, [r2, #0x2e] - strh r4, [r2, #0x34] -_0812EA4E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0812E9F8 - - thumb_func_start sub_0812EA54 -sub_0812EA54: @ 0x0812EA54 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _0812EA84 - ldr r1, _0812EA88 - ldr r3, [r1] - adds r1, r3, #0 - adds r1, #0x50 - ldrb r2, [r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r4 - strh r0, [r1, #0x3c] - adds r3, #0x51 - ldrb r2, [r3] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r4 - strh r0, [r1, #0x3c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812EA84: .4byte gUnknown_20205AC -_0812EA88: .4byte gUnknown_203A800 - thumb_func_end sub_0812EA54 - - thumb_func_start sub_0812EA8C -sub_0812EA8C: @ 0x0812EA8C - push {r4, lr} - movs r4, #0 -_0812EA90: - ldr r0, _0812EAB8 - ldr r0, [r0] - adds r0, #0x50 - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0812EABC - adds r0, r0, r1 - bl DestroySprite - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #1 - bls _0812EA90 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812EAB8: .4byte gUnknown_203A800 -_0812EABC: .4byte gUnknown_20205AC - thumb_func_end sub_0812EA8C - - thumb_func_start CreateReelTimeSprite2 -CreateReelTimeSprite2: @ 0x0812EAC0 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - ldr r0, _0812EB4C - mov r8, r0 - movs r1, #0x48 - movs r2, #0x50 - movs r3, #3 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0812EB50 - mov sb, r1 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - add r2, sb - ldrb r3, [r2, #5] - movs r4, #0xd - rsbs r4, r4, #0 - adds r1, r4, #0 - ands r1, r3 - movs r6, #4 - orrs r1, r6 - strb r1, [r2, #5] - movs r3, #0 - movs r1, #1 - strh r1, [r2, #0x2e] - strh r3, [r2, #0x38] - movs r1, #0x10 - strh r1, [r2, #0x3a] - movs r1, #8 - strh r1, [r2, #0x3c] - ldr r5, _0812EB54 - ldr r1, [r5] - adds r1, #0x52 - strb r0, [r1] - mov r0, r8 - movs r1, #0x68 - movs r2, #0x50 - movs r3, #3 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - add r1, sb - ldrb r2, [r1, #5] - ands r4, r2 - orrs r4, r6 - strb r4, [r1, #5] - adds r1, #0x3f - ldrb r2, [r1] - movs r3, #1 - orrs r2, r3 - strb r2, [r1] - ldr r1, [r5] - adds r1, #0x53 - strb r0, [r1] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0812EB4C: .4byte gUnknown_8584D6C -_0812EB50: .4byte gUnknown_20205AC -_0812EB54: .4byte gUnknown_203A800 - thumb_func_end CreateReelTimeSprite2 - - thumb_func_start sub_0812EB58 -sub_0812EB58: @ 0x0812EB58 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - ldr r1, _0812EBB4 - mov r0, sp - movs r2, #2 - bl memcpy - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0812EBAA - ldrh r0, [r4, #0x3a] - subs r0, #1 - strh r0, [r4, #0x3a] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _0812EBAA - movs r0, #7 - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #4 - ldr r2, _0812EBB8 - adds r0, r0, r2 - lsrs r0, r0, #0x10 - 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, #1 - movs r1, #1 - ands r0, r1 - strh r0, [r4, #0x38] - ldrh r0, [r4, #0x3c] - strh r0, [r4, #0x3a] -_0812EBAA: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812EBB4: .4byte gUnknown_8584598 -_0812EBB8: .4byte 0x01030000 - thumb_func_end sub_0812EB58 - - thumb_func_start sub_0812EBBC -sub_0812EBBC: @ 0x0812EBBC - ldr r3, _0812EBD4 - ldr r1, _0812EBD8 - ldr r1, [r1] - adds r1, #0x52 - ldrb r2, [r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r3 - strh r0, [r1, #0x3c] - bx lr - .align 2, 0 -_0812EBD4: .4byte gUnknown_20205AC -_0812EBD8: .4byte gUnknown_203A800 - thumb_func_end sub_0812EBBC - - thumb_func_start sub_0812EBDC -sub_0812EBDC: @ 0x0812EBDC - push {r4, lr} - movs r0, #7 - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #4 - ldr r1, _0812EC24 - adds r0, r0, r1 - lsrs r0, r0, #0x10 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl MultiplyInvertedPaletteRGBComponents - movs r4, #0 -_0812EBFA: - ldr r0, _0812EC28 - ldr r0, [r0] - adds r0, #0x52 - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0812EC2C - adds r0, r0, r1 - bl DestroySprite - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #1 - bls _0812EBFA - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812EC24: .4byte 0x01030000 -_0812EC28: .4byte gUnknown_203A800 -_0812EC2C: .4byte gUnknown_20205AC - thumb_func_end sub_0812EBDC - - thumb_func_start VBlankCB_ContestPainting -VBlankCB_ContestPainting: @ 0x0812EC30 - push {lr} - ldr r0, _0812EC68 - movs r1, #0xa8 - movs r2, #0x50 - movs r3, #6 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0812EC6C - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r3, [r1, #5] - movs r2, #0xd - rsbs r2, r2, #0 - ands r2, r3 - movs r3, #4 - orrs r2, r3 - strb r2, [r1, #5] - ldr r1, _0812EC70 - ldr r1, [r1] - adds r1, #0x41 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0812EC68: .4byte gUnknown_8584D84 -_0812EC6C: .4byte gUnknown_20205AC -_0812EC70: .4byte gUnknown_203A800 - thumb_func_end VBlankCB_ContestPainting - - thumb_func_start sub_0812EC74 -sub_0812EC74: @ 0x0812EC74 - ldr r1, _0812EC7C - ldrh r1, [r1] - strh r1, [r0, #0x26] - bx lr - .align 2, 0 -_0812EC7C: .4byte gUnknown_2021B3A - thumb_func_end sub_0812EC74 - - thumb_func_start sub_0812EC80 -sub_0812EC80: @ 0x0812EC80 - push {lr} - ldr r0, _0812EC9C - ldr r0, [r0] - adds r0, #0x41 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0812ECA0 - adds r0, r0, r1 - bl DestroySprite - pop {r0} - bx r0 - .align 2, 0 -_0812EC9C: .4byte gUnknown_203A800 -_0812ECA0: .4byte gUnknown_20205AC - thumb_func_end sub_0812EC80 - - thumb_func_start sub_0812ECA4 -sub_0812ECA4: @ 0x0812ECA4 - push {r4, r5, lr} - sub sp, #8 - ldr r1, _0812ED1C - mov r0, sp - movs r2, #8 - bl memcpy - movs r4, #0 -_0812ECB4: - ldr r0, _0812ED20 - ldrh r0, [r0] - movs r1, #0x50 - subs r1, r1, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldr r0, _0812ED24 - movs r2, #0x44 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r3, r0, #4 - adds r3, r3, r0 - lsls r3, r3, #2 - ldr r1, _0812ED28 - adds r3, r3, r1 - ldrb r2, [r3, #5] - movs r5, #0xd - rsbs r5, r5, #0 - adds r1, r5, #0 - ands r2, r1 - movs r1, #4 - orrs r2, r1 - strb r2, [r3, #5] - movs r1, #0x3e - adds r1, r1, r3 - mov ip, r1 - ldrb r1, [r1] - movs r2, #2 - orrs r1, r2 - mov r2, ip - strb r1, [r2] - lsls r1, r4, #1 - add r1, sp - ldrh r1, [r1] - strh r1, [r3, #0x2e] - ldr r1, _0812ED2C - ldr r1, [r1] - adds r1, #0x54 - adds r1, r1, r4 - strb r0, [r1] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _0812ECB4 - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0812ED1C: .4byte gUnknown_858459A -_0812ED20: .4byte gUnknown_2021B38 -_0812ED24: .4byte gUnknown_8584D9C -_0812ED28: .4byte gUnknown_20205AC -_0812ED2C: .4byte gUnknown_203A800 - thumb_func_end sub_0812ECA4 - - thumb_func_start sub_0812ED30 -sub_0812ED30: @ 0x0812ED30 - push {r4, r5, lr} - adds r5, r0, #0 - ldrh r0, [r5, #0x2e] - subs r0, #2 - 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, #6 - 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 _0812ED6A - movs r0, #2 - strb r0, [r1] -_0812ED6A: - ldrh r0, [r5, #0x30] - adds r0, #1 - strh r0, [r5, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xf - ble _0812ED94 - adds r3, r5, #0 - adds r3, #0x3f - ldrb r2, [r3] - lsls r0, r2, #0x1f - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r0, #0 - strh r0, [r5, #0x30] -_0812ED94: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0812ED30 - - thumb_func_start sub_0812ED9C -sub_0812ED9C: @ 0x0812ED9C - push {r4, lr} - movs r4, #0 -_0812EDA0: - ldr r0, _0812EDC8 - ldr r0, [r0] - adds r0, #0x54 - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0812EDCC - adds r0, r0, r1 - bl DestroySprite - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _0812EDA0 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812EDC8: .4byte gUnknown_203A800 -_0812EDCC: .4byte gUnknown_20205AC - thumb_func_end sub_0812ED9C - - thumb_func_start sub_0812EDD0 -sub_0812EDD0: @ 0x0812EDD0 - push {r4, lr} - ldr r0, _0812EE18 - movs r1, #0xa8 - movs r2, #0x3c - movs r3, #8 - bl CreateSprite - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - ldr r1, _0812EE1C - adds r0, r0, r1 - ldrb r2, [r0, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #4 - orrs r1, r2 - strb r1, [r0, #5] - ldrb r1, [r0, #1] - movs r2, #3 - orrs r1, r2 - strb r1, [r0, #1] - bl InitSpriteAffineAnim - ldr r0, _0812EE20 - ldr r0, [r0] - adds r0, #0x43 - strb r4, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812EE18: .4byte gUnknown_8584DB4 -_0812EE1C: .4byte gUnknown_20205AC -_0812EE20: .4byte gUnknown_203A800 - thumb_func_end sub_0812EDD0 - - thumb_func_start sub_0812EE24 -sub_0812EE24: @ 0x0812EE24 - push {lr} - adds r3, r0, #0 - ldrh r2, [r3, #0x2e] - movs r1, #0x2e - ldrsh r0, [r3, r1] - cmp r0, #0 - bne _0812EE46 - adds r0, r3, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0812EEA0 - adds r0, r2, #1 - strh r0, [r3, #0x2e] - b _0812EEA0 -_0812EE46: - cmp r0, #1 - bne _0812EE82 - movs r0, #0x3e - adds r0, r0, r3 - mov ip, r0 - ldrb r2, [r0] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - ldrh r0, [r3, #0x32] - adds r0, #1 - strh r0, [r3, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x17 - ble _0812EEA0 - ldrh r0, [r3, #0x2e] - adds r0, #1 - strh r0, [r3, #0x2e] - movs r0, #0 - strh r0, [r3, #0x32] - b _0812EEA0 -_0812EE82: - adds r2, r3, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r3, #0x32] - adds r0, #1 - strh r0, [r3, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xf - ble _0812EEA0 - movs r0, #1 - strh r0, [r3, #0x3c] -_0812EEA0: - ldrh r0, [r3, #0x30] - movs r1, #0xff - ands r1, r0 - adds r1, #0x10 - strh r1, [r3, #0x30] - lsrs r1, r1, #8 - ldrh r0, [r3, #0x26] - subs r0, r0, r1 - strh r0, [r3, #0x26] - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0812EE24 - - thumb_func_start sub_0812EEB8 -sub_0812EEB8: @ 0x0812EEB8 - ldr r2, _0812EED4 - ldr r0, _0812EED8 - ldr r0, [r0] - adds r0, #0x43 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0, #0x3c] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bx lr - .align 2, 0 -_0812EED4: .4byte gUnknown_20205AC -_0812EED8: .4byte gUnknown_203A800 - thumb_func_end sub_0812EEB8 - - thumb_func_start sub_0812EEDC -sub_0812EEDC: @ 0x0812EEDC - push {r4, lr} - ldr r0, _0812EF08 - ldr r0, [r0] - adds r0, #0x43 - ldrb r0, [r0] - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _0812EF0C - adds r4, r4, r0 - ldrb r0, [r4, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - adds r0, r4, #0 - bl DestroySprite - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812EF08: .4byte gUnknown_203A800 -_0812EF0C: .4byte gUnknown_20205AC - thumb_func_end sub_0812EEDC - - thumb_func_start sub_0812EF10 -sub_0812EF10: @ 0x0812EF10 - push {r4, lr} - adds r3, r0, #0 - adds r2, r1, #0 - ldr r0, _0812EF5C - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r1, r3, #0 - movs r3, #0xc - bl CreateSprite - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - ldr r1, _0812EF60 - adds r0, r0, r1 - ldrb r2, [r0, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #8 - orrs r1, r2 - strb r1, [r0, #5] - ldrb r1, [r0, #1] - movs r2, #3 - orrs r1, r2 - strb r1, [r0, #1] - bl InitSpriteAffineAnim - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0812EF5C: .4byte gUnknown_8584F1C -_0812EF60: .4byte gUnknown_20205AC - thumb_func_end sub_0812EF10 - - thumb_func_start sub_0812EF64 -sub_0812EF64: @ 0x0812EF64 - push {lr} - adds r2, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0812EF78 - movs r0, #1 - strh r0, [r2, #0x3c] -_0812EF78: - pop {r0} - bx r0 - thumb_func_end sub_0812EF64 - - thumb_func_start sub_0812EF7C -sub_0812EF7C: @ 0x0812EF7C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _0812EFA4 - adds r4, r4, r0 - ldrb r0, [r4, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - adds r0, r4, #0 - bl DestroySprite - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812EFA4: .4byte gUnknown_20205AC - thumb_func_end sub_0812EF7C - - thumb_func_start sub_0812EFA8 -sub_0812EFA8: @ 0x0812EFA8 - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - ldr r3, _0812EFE4 - lsrs r1, r1, #0x16 - adds r3, r1, r3 - ldr r5, [r3] - ldr r3, _0812EFE8 - adds r4, r1, r3 - movs r6, #0 - ldrsh r4, [r4, r6] - adds r3, #2 - adds r1, r1, r3 - movs r6, #0 - ldrsh r3, [r1, r6] - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - str r2, [sp] - adds r1, r5, #0 - adds r2, r4, #0 - bl sub_0812EFEC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0812EFE4: .4byte gUnknown_858484C -_0812EFE8: .4byte gUnknown_85847BE - thumb_func_end sub_0812EFA8 - - thumb_func_start sub_0812EFEC -sub_0812EFEC: @ 0x0812EFEC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x18 - adds r4, r0, #0 - mov r8, r1 - adds r1, r2, #0 - adds r2, r3, #0 - ldr r5, [sp, #0x34] - lsls r4, r4, #0x18 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - mov sb, r5 - ldr r0, _0812F078 - lsrs r4, r4, #0x16 - adds r0, r4, r0 - mov r3, sp - ldr r0, [r0] - ldm r0!, {r5, r6, r7} - stm r3!, {r5, r6, r7} - ldm r0!, {r5, r6, r7} - stm r3!, {r5, r6, r7} - ldr r0, _0812F07C - adds r0, r4, r0 - ldr r0, [r0] - str r0, [sp, #0xc] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - mov r0, sp - movs r3, #0x10 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r7, r0, #0 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - ldr r1, _0812F080 - adds r2, r0, r1 - ldrb r0, [r2, #5] - movs r1, #0xc - orrs r0, r1 - strb r0, [r2, #5] - mov r0, r8 - str r0, [r2, #0x1c] - mov r5, sb - strh r5, [r2, #0x3a] - movs r0, #1 - strh r0, [r2, #0x3c] - ldr r0, _0812F084 - adds r4, r4, r0 - ldr r1, [r4] - cmp r1, #0 - beq _0812F066 - adds r0, r2, #0 - bl SetSubspriteTables -_0812F066: - adds r0, r7, #0 - add sp, #0x18 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0812F078: .4byte gUnknown_85851E8 -_0812F07C: .4byte gUnknown_3001188 -_0812F080: .4byte gUnknown_20205AC -_0812F084: .4byte gUnknown_8585250 - thumb_func_end sub_0812EFEC - - thumb_func_start sub_0812F088 -sub_0812F088: @ 0x0812F088 - movs r1, #0 - strh r1, [r0, #0x3c] - bx lr - .align 2, 0 - thumb_func_end sub_0812F088 - - thumb_func_start sub_0812F090 -sub_0812F090: @ 0x0812F090 - push {r4, r5, lr} - sub sp, #0x10 - adds r4, r0, #0 - ldr r1, _0812F10C - mov r0, sp - movs r2, #8 - bl memcpy - add r5, sp, #8 - ldr r1, _0812F110 - adds r0, r5, #0 - movs r2, #8 - bl memcpy - ldrh r0, [r4, #0x30] - adds r1, r0, #1 - strh r1, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xf - ble _0812F0D6 - adds r3, r4, #0 - adds r3, #0x42 - ldrb r2, [r3] - lsls r0, r2, #0x1a - lsrs r0, r0, #0x1a - movs r1, #1 - eors r1, r0 - movs r0, #0x40 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r0, #0 - strh r0, [r4, #0x30] -_0812F0D6: - 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 _0812F102 - movs r1, #0x3a - ldrsh r0, [r4, r1] - lsls r0, r0, #1 - add r0, sp - ldrh r0, [r0] - strh r0, [r4, #0x24] - movs r1, #0x3a - ldrsh r0, [r4, r1] - lsls r0, r0, #1 - adds r0, r5, r0 - ldrh r0, [r0] - strh r0, [r4, #0x26] -_0812F102: - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0812F10C: .4byte gUnknown_85845A2 -_0812F110: .4byte gUnknown_85845AA - thumb_func_end sub_0812F090 - - thumb_func_start sub_0812F114 -sub_0812F114: @ 0x0812F114 - push {lr} - adds r3, r0, #0 - adds r3, #0x3f - ldrb r1, [r3] - movs r2, #1 - orrs r1, r2 - strb r1, [r3] - bl sub_0812F090 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0812F114 - - thumb_func_start sub_0812F12C -sub_0812F12C: @ 0x0812F12C - push {lr} - adds r3, r0, #0 - adds r3, #0x3f - ldrb r1, [r3] - movs r2, #2 - orrs r1, r2 - strb r1, [r3] - bl sub_0812F090 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0812F12C - - thumb_func_start sub_0812F144 -sub_0812F144: @ 0x0812F144 - push {lr} - adds r3, r0, #0 - adds r3, #0x3f - ldrb r1, [r3] - movs r2, #1 - orrs r1, r2 - movs r2, #2 - orrs r1, r2 - strb r1, [r3] - bl sub_0812F090 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0812F144 - - thumb_func_start sub_0812F160 -sub_0812F160: @ 0x0812F160 - push {lr} - adds r2, r0, #0 - movs r1, #0x2e - ldrsh r0, [r2, r1] - cmp r0, #1 - beq _0812F194 - cmp r0, #1 - bgt _0812F176 - cmp r0, #0 - beq _0812F180 - b _0812F1C4 -_0812F176: - cmp r0, #2 - beq _0812F1A4 - cmp r0, #3 - beq _0812F1C0 - b _0812F1C4 -_0812F180: - ldrh r0, [r2, #0x20] - adds r0, #4 - strh r0, [r2, #0x20] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xcf - ble _0812F1C4 - movs r0, #0xd0 - strh r0, [r2, #0x20] - b _0812F1B2 -_0812F194: - ldrh r0, [r2, #0x30] - adds r0, #1 - strh r0, [r2, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x5a - ble _0812F1C4 - b _0812F1B2 -_0812F1A4: - ldrh r0, [r2, #0x20] - adds r0, #4 - strh r0, [r2, #0x20] - lsls r0, r0, #0x10 - ldr r1, _0812F1BC - cmp r0, r1 - ble _0812F1C4 -_0812F1B2: - ldrh r0, [r2, #0x2e] - adds r0, #1 - strh r0, [r2, #0x2e] - b _0812F1C4 - .align 2, 0 -_0812F1BC: .4byte 0x010F0000 -_0812F1C0: - movs r0, #0 - strh r0, [r2, #0x3c] -_0812F1C4: - pop {r0} - bx r0 - thumb_func_end sub_0812F160 - - thumb_func_start sub_0812F1C8 -sub_0812F1C8: @ 0x0812F1C8 - push {lr} - adds r1, r0, #0 - movs r2, #0x2e - ldrsh r0, [r1, r2] - cmp r0, #1 - beq _0812F1FC - cmp r0, #1 - bgt _0812F1DE - cmp r0, #0 - beq _0812F1E8 - b _0812F226 -_0812F1DE: - cmp r0, #2 - beq _0812F20C - cmp r0, #3 - beq _0812F222 - b _0812F226 -_0812F1E8: - ldrh r0, [r1, #0x20] - subs r0, #4 - strh r0, [r1, #0x20] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xd0 - bgt _0812F226 - movs r0, #0xd0 - strh r0, [r1, #0x20] - b _0812F21A -_0812F1FC: - ldrh r0, [r1, #0x30] - adds r0, #1 - strh r0, [r1, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x5a - ble _0812F226 - b _0812F21A -_0812F20C: - ldrh r0, [r1, #0x20] - subs r0, #4 - strh r0, [r1, #0x20] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x90 - bgt _0812F226 -_0812F21A: - ldrh r0, [r1, #0x2e] - adds r0, #1 - strh r0, [r1, #0x2e] - b _0812F226 -_0812F222: - movs r0, #0 - strh r0, [r1, #0x3c] -_0812F226: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0812F1C8 - - thumb_func_start sub_0812F22C -sub_0812F22C: @ 0x0812F22C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #5 - bhi _0812F2D6 - lsls r0, r0, #2 - ldr r1, _0812F244 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0812F244: .4byte _0812F248 -_0812F248: @ jump table - .4byte _0812F260 @ case 0 - .4byte _0812F278 @ case 1 - .4byte _0812F298 @ case 2 - .4byte _0812F2AC @ case 3 - .4byte _0812F2BC @ case 4 - .4byte _0812F2D2 @ case 5 -_0812F260: - ldr r0, _0812F294 - ldr r0, [r0] - ldrb r1, [r0, #0xa] - subs r1, #1 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] -_0812F278: - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - ble _0812F2D6 - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - movs r0, #0 - strh r0, [r4, #0x30] - b _0812F2D6 - .align 2, 0 -_0812F294: .4byte gUnknown_203A800 -_0812F298: - ldrh r0, [r4, #0x20] - adds r0, #4 - strh r0, [r4, #0x20] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xcf - ble _0812F2D6 - movs r0, #0xd0 - strh r0, [r4, #0x20] - b _0812F2CA -_0812F2AC: - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x5a - ble _0812F2D6 - b _0812F2CA -_0812F2BC: - ldrh r0, [r4, #0x20] - adds r0, #4 - strh r0, [r4, #0x20] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xf7 - ble _0812F2D6 -_0812F2CA: - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - b _0812F2D6 -_0812F2D2: - movs r0, #0 - strh r0, [r4, #0x3c] -_0812F2D6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0812F22C - - thumb_func_start sub_0812F2DC -sub_0812F2DC: @ 0x0812F2DC - push {lr} - adds r3, r0, #0 - movs r1, #0x2e - ldrsh r0, [r3, r1] - cmp r0, #1 - beq _0812F30A - cmp r0, #1 - bgt _0812F2F2 - cmp r0, #0 - beq _0812F2F8 - b _0812F378 -_0812F2F2: - cmp r0, #2 - beq _0812F328 - b _0812F378 -_0812F2F8: - 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, #1 - strh r0, [r3, #0x2e] -_0812F30A: - ldrh r0, [r3, #0x22] - adds r0, #8 - strh r0, [r3, #0x22] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x6f - ble _0812F378 - movs r0, #0x70 - strh r0, [r3, #0x22] - movs r0, #0x10 - strh r0, [r3, #0x30] - ldrh r0, [r3, #0x2e] - adds r0, #1 - strh r0, [r3, #0x2e] - b _0812F378 -_0812F328: - movs r0, #0x32 - ldrsh r2, [r3, r0] - cmp r2, #0 - bne _0812F36E - ldrh r0, [r3, #0x22] - ldrh r1, [r3, #0x30] - subs r0, r0, r1 - strh r0, [r3, #0x22] - rsbs r1, r1, #0 - strh r1, [r3, #0x30] - ldrh r0, [r3, #0x34] - adds r0, #1 - strh r0, [r3, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _0812F36E - lsls r0, r1, #0x10 - asrs r0, r0, #0x12 - strh r0, [r3, #0x30] - strh r2, [r3, #0x34] - adds r1, r0, #0 - cmp r1, #0 - bne _0812F36E - ldrh r0, [r3, #0x2e] - adds r0, #1 - strh r0, [r3, #0x2e] - strh r1, [r3, #0x3c] - adds r2, r3, #0 - adds r2, #0x2c - ldrb r1, [r2] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_0812F36E: - ldrh r0, [r3, #0x32] - adds r0, #1 - movs r1, #7 - ands r0, r1 - strh r0, [r3, #0x32] -_0812F378: - pop {r0} - bx r0 - thumb_func_end sub_0812F2DC - - thumb_func_start sub_0812F37C -sub_0812F37C: @ 0x0812F37C - push {lr} - adds r1, r0, #0 - movs r2, #0x2e - ldrsh r0, [r1, r2] - cmp r0, #0 - beq _0812F38E - cmp r0, #1 - beq _0812F3A4 - b _0812F3C0 -_0812F38E: - ldrh r0, [r1, #0x30] - adds r0, #1 - strh r0, [r1, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #8 - ble _0812F3C0 - ldrh r0, [r1, #0x2e] - adds r0, #1 - strh r0, [r1, #0x2e] - b _0812F3C0 -_0812F3A4: - ldrh r0, [r1, #0x22] - adds r0, #2 - strh r0, [r1, #0x22] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x2f - ble _0812F3C0 - movs r0, #0x30 - strh r0, [r1, #0x22] - ldrh r0, [r1, #0x2e] - adds r0, #1 - strh r0, [r1, #0x2e] - movs r0, #0 - strh r0, [r1, #0x3c] -_0812F3C0: - pop {r0} - bx r0 - thumb_func_end sub_0812F37C - - thumb_func_start sub_0812F3C4 -sub_0812F3C4: @ 0x0812F3C4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0812F3D6 - cmp r0, #1 - beq _0812F426 - b _0812F478 -_0812F3D6: - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x20 - ble _0812F478 - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - movs r0, #5 - strh r0, [r4, #0x30] - ldrb r0, [r4, #1] - movs r1, #0x10 - orrs r0, r1 - strb r0, [r4, #1] - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAnim - ldrh r0, [r4, #0x30] - lsls r1, r0, #4 - orrs r1, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x10 - movs r0, #0x4c - bl SetGpuReg - b _0812F478 -_0812F426: - ldrh r1, [r4, #0x32] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - ldrh r0, [r4, #0x30] - subs r0, r0, r1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _0812F43C - movs r0, #0 - strh r0, [r4, #0x30] -_0812F43C: - ldrh r0, [r4, #0x30] - lsls r1, r0, #4 - orrs r1, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x10 - movs r0, #0x4c - bl SetGpuReg - 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 _0812F478 - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - strh r1, [r4, #0x3c] - ldrb r1, [r4, #1] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #1] - adds r0, r4, #0 - movs r1, #0 - bl StartSpriteAnim -_0812F478: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0812F3C4 - - thumb_func_start sub_0812F480 -sub_0812F480: @ 0x0812F480 - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0x30 - ldrsh r0, [r5, r1] - cmp r0, #2 - bgt _0812F4D0 - ldr r1, _0812F4CC - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r4, [r0] - movs r0, #6 - bl IndexOfSpritePaletteTag - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #4 - movs r0, #0x80 - lsls r0, r0, #0x11 - adds r1, r1, r0 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - movs r2, #0x20 - bl LoadPalette - ldrh r0, [r5, #0x32] - adds r0, #1 - strh r0, [r5, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - ble _0812F50C - ldrh r0, [r5, #0x30] - adds r0, #1 - strh r0, [r5, #0x30] - movs r0, #0 - strh r0, [r5, #0x32] - b _0812F50C - .align 2, 0 -_0812F4CC: .4byte gUnknown_8585614 -_0812F4D0: - ldr r1, _0812F520 - movs r2, #0x30 - ldrsh r0, [r5, r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r4, [r0] - movs r0, #6 - bl IndexOfSpritePaletteTag - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #4 - movs r0, #0x80 - lsls r0, r0, #0x11 - adds r1, r1, r0 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - movs r2, #0x20 - bl LoadPalette - ldrh r0, [r5, #0x32] - adds r0, #1 - movs r1, #0 - strh r0, [r5, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x18 - ble _0812F50C - strh r1, [r5, #0x30] - strh r1, [r5, #0x32] -_0812F50C: - adds r0, r5, #0 - movs r1, #1 - bl StartSpriteAnimIfDifferent - movs r0, #0 - strh r0, [r5, #0x3c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0812F520: .4byte gUnknown_8585614 - thumb_func_end sub_0812F480 - - thumb_func_start sub_0812F524 -sub_0812F524: @ 0x0812F524 - push {r4, r5, r6, lr} - sub sp, #0x30 - adds r4, r0, #0 - ldr r1, _0812F560 - mov r0, sp - movs r2, #0x10 - bl memcpy - add r6, sp, #0x10 - ldr r1, _0812F564 - adds r0, r6, #0 - movs r2, #0x10 - bl memcpy - add r5, sp, #0x20 - ldr r1, _0812F568 - adds r0, r5, #0 - movs r2, #0x10 - bl memcpy - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _0812F59C - cmp r0, #1 - bgt _0812F56C - cmp r0, #0 - beq _0812F572 - b _0812F5E8 - .align 2, 0 -_0812F560: .4byte gUnknown_85845B2 -_0812F564: .4byte gUnknown_85845C2 -_0812F568: .4byte gUnknown_85845D2 -_0812F56C: - cmp r0, #2 - beq _0812F5B0 - b _0812F5E8 -_0812F572: - movs r2, #0x3a - ldrsh r0, [r4, r2] - lsls r0, r0, #1 - add r0, sp - ldrh r0, [r0] - strh r0, [r4, #0x24] - movs r1, #0x3a - ldrsh r0, [r4, r1] - lsls r0, r0, #1 - adds r0, r6, r0 - ldrh r0, [r0] - strh r0, [r4, #0x26] - movs r2, #0x3a - ldrsh r0, [r4, r2] - lsls r0, r0, #1 - adds r0, r5, r0 - ldrh r0, [r0] - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] -_0812F59C: - ldrh r0, [r4, #0x30] - subs r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _0812F5E8 - b _0812F5E2 -_0812F5B0: - ldrh r0, [r4, #0x24] - movs r2, #0x24 - ldrsh r1, [r4, r2] - cmp r1, #0 - ble _0812F5BE - subs r0, #4 - b _0812F5C4 -_0812F5BE: - cmp r1, #0 - bge _0812F5C6 - adds r0, #4 -_0812F5C4: - strh r0, [r4, #0x24] -_0812F5C6: - ldrh r0, [r4, #0x26] - movs r2, #0x26 - ldrsh r1, [r4, r2] - cmp r1, #0 - ble _0812F5D4 - subs r0, #4 - b _0812F5DA -_0812F5D4: - cmp r1, #0 - bge _0812F5DC - adds r0, #4 -_0812F5DA: - strh r0, [r4, #0x26] -_0812F5DC: - ldr r0, [r4, #0x24] - cmp r0, #0 - bne _0812F5E8 -_0812F5E2: - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] -_0812F5E8: - add sp, #0x30 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_0812F524 - - thumb_func_start sub_0812F5F0 -sub_0812F5F0: @ 0x0812F5F0 - push {r4, lr} - sub sp, #0x10 - adds r4, r0, #0 - ldr r1, _0812F654 - mov r0, sp - movs r2, #0x10 - bl memcpy - ldrh r1, [r4, #0x2e] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _0812F612 - adds r0, r1, #1 - strh r0, [r4, #0x2e] - movs r0, #0xc - strh r0, [r4, #0x30] -_0812F612: - movs r1, #0x3a - ldrsh r0, [r4, r1] - lsls r0, 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, 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 _0812F64C - subs r0, r1, #1 - strh r0, [r4, #0x30] -_0812F64C: - add sp, #0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812F654: .4byte gUnknown_85845E2 - thumb_func_end sub_0812F5F0 - - thumb_func_start sub_0812F658 -sub_0812F658: @ 0x0812F658 - push {r4, r5, r6, lr} - sub sp, #4 - adds r5, r0, #0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - cmp r0, #1 - beq _0812F6A4 - cmp r0, #1 - bgt _0812F670 - cmp r0, #0 - beq _0812F67A - b _0812F77C -_0812F670: - cmp r0, #2 - beq _0812F6F0 - cmp r0, #3 - beq _0812F72C - b _0812F77C -_0812F67A: - ldr r0, _0812F6E8 - ldr r2, [r0] - adds r1, r2, #0 - adds r1, #0x5c - movs r0, #0x2f - strh r0, [r1] - adds r1, #2 - movs r0, #0x3f - strh r0, [r1] - subs r1, #4 - ldr r0, _0812F6EC - strh r0, [r1] - adds r2, r5, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] -_0812F6A4: - ldrh r0, [r5, #0x30] - adds r2, r0, #2 - strh r2, [r5, #0x30] - adds r0, #0xb2 - strh r0, [r5, #0x32] - movs r1, #0xf0 - subs r1, r1, r2 - strh r1, [r5, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xd0 - ble _0812F6C0 - movs r0, #0xd0 - strh r0, [r5, #0x32] -_0812F6C0: - movs r1, #0x34 - ldrsh r0, [r5, r1] - cmp r0, #0xcf - bgt _0812F6CC - movs r0, #0xd0 - strh r0, [r5, #0x34] -_0812F6CC: - ldr r0, _0812F6E8 - ldr r2, [r0] - ldrh r0, [r5, #0x32] - lsls r0, 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 _0812F77C - b _0812F76E - .align 2, 0 -_0812F6E8: .4byte gUnknown_203A800 -_0812F6EC: .4byte 0x00002088 -_0812F6F0: - ldr r6, _0812F784 - ldr r0, [r6] - movs r1, #0x12 - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _0812F77C - ldr r1, _0812F788 - movs r4, #0 - str r4, [sp] - movs r0, #5 - movs r2, #0xd0 - movs r3, #0x74 - bl sub_0812DF78 - ldr r2, [r6] - adds r1, r2, #0 - adds r1, #0x58 - ldr r0, _0812F78C - strh r0, [r1] - adds r1, #2 - movs r0, #0xd1 - lsls r0, r0, #7 - strh r0, [r1] - adds r1, #2 - movs r0, #0x2f - strh r0, [r1] - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] - strh r4, [r5, #0x30] -_0812F72C: - ldrh r0, [r5, #0x30] - adds r2, r0, #2 - strh r2, [r5, #0x30] - adds r0, #0xc2 - strh r0, [r5, #0x32] - movs r1, #0xe0 - subs r1, r1, r2 - strh r1, [r5, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xd0 - ble _0812F748 - movs r0, #0xd0 - strh r0, [r5, #0x32] -_0812F748: - movs r1, #0x34 - ldrsh r0, [r5, r1] - cmp r0, #0xcf - bgt _0812F754 - movs r0, #0xd0 - strh r0, [r5, #0x34] -_0812F754: - ldr r0, _0812F784 - ldr r2, [r0] - ldrh r0, [r5, #0x32] - lsls r0, 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 _0812F77C -_0812F76E: - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] - adds r1, r2, #0 - adds r1, #0x5c - movs r0, #0x3f - strh r0, [r1] -_0812F77C: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0812F784: .4byte gUnknown_203A800 -_0812F788: .4byte sub_08007140 -_0812F78C: .4byte 0x0000C0E0 - thumb_func_end sub_0812F658 - - thumb_func_start sub_0812F790 -sub_0812F790: @ 0x0812F790 - bx lr - .align 2, 0 - thumb_func_end sub_0812F790 - - thumb_func_start sub_0812F794 -sub_0812F794: @ 0x0812F794 - push {lr} - movs r0, #0x4c - movs r1, #0 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0812F794 - - thumb_func_start sub_0812F7A4 -sub_0812F7A4: @ 0x0812F7A4 - push {r4, lr} - ldr r0, _0812F7CC - ldr r4, [r0] - movs r0, #6 - bl IndexOfSpritePaletteTag - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #4 - movs r0, #0x80 - lsls r0, r0, #0x11 - adds r1, r1, r0 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - movs r2, #0x20 - bl LoadPalette - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812F7CC: .4byte gUnknown_8585624 - thumb_func_end sub_0812F7A4 - - thumb_func_start sub_0812F7D0 -sub_0812F7D0: @ 0x0812F7D0 - ldr r0, _0812F7F0 - ldr r2, [r0] - adds r1, r2, #0 - adds r1, #0x58 - movs r0, #0xf0 - strh r0, [r1] - adds r1, #2 - movs r0, #0xa0 - strh r0, [r1] - adds r0, r2, #0 - adds r0, #0x5c - movs r1, #0x3f - strh r1, [r0] - adds r0, #2 - strh r1, [r0] - bx lr - .align 2, 0 -_0812F7F0: .4byte gUnknown_203A800 - thumb_func_end sub_0812F7D0 - - thumb_func_start sub_0812F7F4 -sub_0812F7F4: @ 0x0812F7F4 - push {r4, r5, r6, lr} - bl sub_0812F8B0 - ldr r4, _0812F894 - movs r0, #0xc8 - lsls r0, r0, #6 - bl sub_08000BC8 - adds r1, r0, #0 - str r1, [r4] - ldr r0, _0812F898 - bl sub_08034370 - ldr r4, _0812F89C - movs r0, #0xd8 - lsls r0, r0, #6 - bl sub_08000BC8 - adds r1, r0, #0 - str r1, [r4] - ldr r0, _0812F8A0 - bl sub_08034370 - ldr r4, _0812F8A4 - movs r0, #0xb0 - bl AllocZeroed - str r0, [r4] - movs r3, #0 - ldr r5, _0812F8A8 - adds r6, r4, #0 -_0812F832: - ldr r2, [r4] - lsls r1, r3, #3 - adds r2, r1, r2 - adds r1, r1, r5 - ldr r0, [r1] - str r0, [r2] - ldrh r0, [r1, #4] - strh r0, [r2, #4] - ldrh r0, [r1, #6] - strh r0, [r2, #6] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0x15 - bls _0812F832 - ldr r3, [r6] - adds r2, r3, #0 - adds r2, #0x88 - ldr r0, _0812F894 - ldr r1, [r0] - movs r4, #0xa0 - lsls r4, r4, #4 - adds r0, r1, r4 - str r0, [r2] - adds r2, #8 - movs r4, #0xa0 - lsls r4, r4, #5 - adds r0, r1, r4 - str r0, [r2] - adds r2, #8 - movs r4, #0xb0 - lsls r4, r4, #5 - adds r0, r1, r4 - str r0, [r2] - adds r0, r3, #0 - adds r0, #0xa0 - movs r2, #0xc8 - lsls r2, r2, #5 - adds r1, r1, r2 - str r1, [r0] - adds r0, r3, #0 - bl LoadSpriteSheets - ldr r0, _0812F8AC - bl LoadSpritePalettes - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0812F894: .4byte gUnknown_203A7A0 -_0812F898: .4byte gUnknown_8585690 -_0812F89C: .4byte gUnknown_203A7A4 -_0812F8A0: .4byte gUnknown_8585DF8 -_0812F8A4: .4byte gUnknown_203A7FC -_0812F8A8: .4byte gUnknown_85852B8 -_0812F8AC: .4byte gUnknown_8585648 - thumb_func_end sub_0812F7F4 - - thumb_func_start sub_0812F8B0 -sub_0812F8B0: @ 0x0812F8B0 - push {r4, r5, r6, lr} - ldr r5, _0812F90C - movs r0, #8 - bl AllocZeroed - str r0, [r5] - ldr r4, _0812F910 - movs r0, #0x80 - lsls r0, r0, #6 - bl AllocZeroed - str r0, [r4] - adds r3, r0, #0 - movs r1, #0 - adds r6, r4, #0 - ldr r0, _0812F914 - ldr r4, [r0] -_0812F8D2: - movs r2, #0 - adds r1, #1 -_0812F8D6: - adds r0, r4, r2 - ldrb r0, [r0] - strb r0, [r3] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r3, #1 - cmp r2, #0x1f - bls _0812F8D6 - lsls r0, r1, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x3f - bls _0812F8D2 - ldr r0, [r5] - ldr r1, [r6] - str r1, [r0] - movs r1, #0x80 - lsls r1, r1, #4 - strh r1, [r0, #4] - movs r1, #0x11 - strh r1, [r0, #6] - bl LoadSpriteSheet - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0812F90C: .4byte gUnknown_203A7F8 -_0812F910: .4byte gUnknown_203A7AC -_0812F914: .4byte gUnknown_8585368 - thumb_func_end sub_0812F8B0 - - thumb_func_start Anim_SwordsDanceBlade -Anim_SwordsDanceBlade: @ 0x0812F918 - push {r4, lr} - ldr r4, _0812F958 - movs r0, #0x80 - lsls r0, r0, #6 - bl sub_08000BC8 - adds r1, r0, #0 - str r1, [r4] - ldr r0, _0812F95C - bl sub_08034370 - ldr r1, [r4] - movs r2, #0xe9 - lsls r2, r2, #5 - movs r0, #2 - movs r3, #0 - bl LoadBgTiles - ldr r0, _0812F960 - movs r1, #0 - movs r2, #0xa0 - bl LoadPalette - ldr r0, _0812F964 - movs r1, #0xd0 - movs r2, #0x20 - bl LoadPalette - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812F958: .4byte gUnknown_203A794 -_0812F95C: .4byte gUnknown_8586F4C -_0812F960: .4byte gUnknown_858544C -_0812F964: .4byte gUnknown_8585628 - thumb_func_end Anim_SwordsDanceBlade - - thumb_func_start sub_0812F968 -sub_0812F968: @ 0x0812F968 - push {lr} - bl sub_0812F978 - bl LoadSlotMachineWheelOverlay - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0812F968 - - thumb_func_start sub_0812F978 -sub_0812F978: @ 0x0812F978 - push {r4, lr} - movs r4, #0 -_0812F97C: - lsls r1, r4, #4 - subs r1, r1, r4 - lsls r1, r1, #2 - ldr r0, _0812F9A0 - adds r1, r1, r0 - lsls r3, r4, #5 - movs r0, #2 - movs r2, #0x3c - bl LoadBgTilemap - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x13 - bls _0812F97C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812F9A0: .4byte gUnknown_8587AEC - thumb_func_end sub_0812F978 - - thumb_func_start LoadSlotMachineWheelOverlay -LoadSlotMachineWheelOverlay: @ 0x0812F9A4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - movs r1, #4 - ldr r0, _0812FA98 - mov r8, r0 -_0812F9B2: - movs r0, #0 - lsls r1, r1, #0x10 - mov sb, r1 -_0812F9B8: - mov r2, r8 - ldr r1, [r2] - mov r2, sb - asrs r6, r2, #0x10 - lsls r4, r0, #0x10 - asrs r4, r4, #0x10 - adds r5, r6, r4 - adds r3, r5, #0 - adds r3, #0xa0 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - movs r0, #3 - movs r2, #2 - bl LoadBgTilemap - mov r0, r8 - ldr r1, [r0] - adds r1, #2 - movs r2, #0xd0 - lsls r2, r2, #1 - adds r3, r5, r2 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - movs r0, #3 - movs r2, #2 - bl LoadBgTilemap - mov r0, r8 - ldr r1, [r0] - adds r1, #4 - adds r3, r5, #0 - adds r3, #0xc0 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - movs r0, #3 - movs r2, #2 - bl LoadBgTilemap - mov r2, r8 - ldr r1, [r2] - adds r1, #6 - movs r0, #0xc0 - lsls r0, r0, #1 - adds r7, r0, #0 - adds r3, r5, r7 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - movs r0, #3 - movs r2, #2 - bl LoadBgTilemap - adds r4, #1 - lsls r4, r4, #0x10 - lsrs r0, r4, #0x10 - asrs r4, r4, #0x10 - cmp r4, #3 - ble _0812F9B8 - mov r2, r8 - ldr r1, [r2] - adds r1, #8 - adds r3, r6, #0 - adds r3, #0xc0 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - movs r0, #3 - movs r2, #2 - bl LoadBgTilemap - mov r0, r8 - ldr r1, [r0] - adds r1, #0xa - adds r3, r6, r7 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - movs r0, #3 - movs r2, #2 - bl LoadBgTilemap - movs r0, #7 -_0812FA56: - mov r2, r8 - ldr r1, [r2] - adds r1, #0xc - lsls r4, r0, #0x10 - asrs r4, r4, #0x10 - lsls r3, r4, #5 - mov r0, sb - asrs r5, r0, #0x10 - adds r3, r5, r3 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - movs r0, #3 - movs r2, #2 - bl LoadBgTilemap - adds r4, #1 - lsls r4, r4, #0x10 - lsrs r0, r4, #0x10 - asrs r4, r4, #0x10 - cmp r4, #0xb - ble _0812FA56 - adds r0, r5, #5 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x11 - ble _0812F9B2 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0812FA98: .4byte gUnknown_203A79C - thumb_func_end LoadSlotMachineWheelOverlay - - thumb_func_start sub_0812FA9C -sub_0812FA9C: @ 0x0812FA9C - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r5, [sp, #0x10] - ldr r6, _0812FB0C - ldr r0, [r6] - strh r1, [r0] - ldr r1, [r6] - strh r2, [r1, #2] - strh r3, [r1, #4] - strh r5, [r1, #6] - lsls r4, r4, #0x10 - asrs r5, r4, #0x10 - movs r0, #0xf0 - lsls r0, r0, #0x11 - adds r4, r4, r0 - lsrs r4, r4, #0x10 - movs r0, #2 - movs r2, #2 - adds r3, r4, #0 - bl LoadBgTilemap - ldr r1, [r6] - adds r1, #2 - ldr r0, _0812FB10 - adds r3, r5, r0 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - movs r0, #2 - movs r2, #2 - bl LoadBgTilemap - ldr r1, [r6] - adds r1, #4 - movs r0, #0x80 - lsls r0, r0, #2 - adds r3, r5, r0 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - movs r0, #2 - movs r2, #2 - bl LoadBgTilemap - ldr r1, [r6] - adds r1, #6 - ldr r0, _0812FB14 - adds r5, r5, r0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - movs r0, #2 - movs r2, #2 - adds r3, r5, #0 - bl LoadBgTilemap - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0812FB0C: .4byte gUnknown_203A7A8 -_0812FB10: .4byte 0x000001E1 -_0812FB14: .4byte 0x00000201 - thumb_func_end sub_0812FA9C - - thumb_func_start sub_0812FB18 -sub_0812FB18: @ 0x0812FB18 - push {r4, lr} - movs r4, #0 -_0812FB1C: - lsls r1, r4, #4 - subs r1, r1, r4 - lsls r1, r1, #2 - ldr r0, _0812FB48 - adds r1, r1, r0 - lsls r3, r4, #5 - movs r0, #2 - movs r2, #0x3c - bl LoadBgTilemap - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x13 - bls _0812FB1C - movs r0, #3 - bl HideBg - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812FB48: .4byte gUnknown_8588154 - thumb_func_end sub_0812FB18 - - thumb_func_start SlotMachineSetup_9_0 -SlotMachineSetup_9_0: @ 0x0812FB4C - ldr r1, _0812FBC0 - ldr r0, _0812FBC4 - ldr r0, [r0] - str r0, [r1] - ldr r0, _0812FBC8 - ldr r0, [r0] - str r0, [r1, #4] - ldr r0, _0812FBCC - ldr r0, [r0] - str r0, [r1, #8] - ldr r0, _0812FBD0 - ldr r0, [r0] - str r0, [r1, #0xc] - ldr r0, _0812FBD4 - ldr r0, [r0] - str r0, [r1, #0x10] - ldr r0, _0812FBD8 - ldr r0, [r0] - str r0, [r1, #0x14] - ldr r0, _0812FBDC - ldr r0, [r0] - str r0, [r1, #0x18] - ldr r0, _0812FBE0 - ldr r0, [r0] - str r0, [r1, #0x1c] - ldr r0, _0812FBE4 - ldr r0, [r0] - str r0, [r1, #0x20] - ldr r0, _0812FBE8 - ldr r0, [r0] - str r0, [r1, #0x24] - ldr r0, _0812FBEC - ldr r0, [r0] - str r0, [r1, #0x28] - str r0, [r1, #0x2c] - str r0, [r1, #0x30] - str r0, [r1, #0x34] - ldr r0, _0812FBF0 - ldr r0, [r0] - str r0, [r1, #0x38] - str r0, [r1, #0x3c] - str r0, [r1, #0x40] - str r0, [r1, #0x44] - str r0, [r1, #0x48] - ldr r0, _0812FBF4 - ldr r0, [r0] - str r0, [r1, #0x4c] - str r0, [r1, #0x50] - str r0, [r1, #0x54] - ldr r0, _0812FBF8 - ldr r0, [r0] - str r0, [r1, #0x58] - str r0, [r1, #0x5c] - str r0, [r1, #0x60] - movs r0, #0 - str r0, [r1, #0x64] - bx lr - .align 2, 0 -_0812FBC0: .4byte gUnknown_3001188 -_0812FBC4: .4byte gUnknown_203A7C0 -_0812FBC8: .4byte gUnknown_203A7C4 -_0812FBCC: .4byte gUnknown_203A7C8 -_0812FBD0: .4byte gUnknown_203A7D0 -_0812FBD4: .4byte gUnknown_203A7D4 -_0812FBD8: .4byte gUnknown_203A7E4 -_0812FBDC: .4byte gUnknown_203A7E8 -_0812FBE0: .4byte gUnknown_203A7EC -_0812FBE4: .4byte gUnknown_203A7F0 -_0812FBE8: .4byte gUnknown_203A7F4 -_0812FBEC: .4byte gUnknown_203A7CC -_0812FBF0: .4byte gUnknown_203A7D8 -_0812FBF4: .4byte gUnknown_203A7DC -_0812FBF8: .4byte gUnknown_203A7E0 - thumb_func_end SlotMachineSetup_9_0 - - thumb_func_start SlotMachineSetup_8_0 -SlotMachineSetup_8_0: @ 0x0812FBFC - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - ldr r4, _0812FDA4 - movs r0, #8 - bl AllocZeroed - str r0, [r4] - ldr r6, _0812FDA8 - ldr r1, [r6] - str r1, [r0] - movs r5, #0xc0 - lsls r5, r5, #3 - strh r5, [r0, #4] - ldr r4, _0812FDAC - movs r0, #8 - bl AllocZeroed - str r0, [r4] - ldr r1, [r6] - adds r1, r1, r5 - str r1, [r0] - movs r1, #0x80 - lsls r1, r1, #2 - mov r8, r1 - mov r2, r8 - strh r2, [r0, #4] - ldr r4, _0812FDB0 - movs r0, #8 - bl AllocZeroed - str r0, [r4] - ldr r1, [r6] - movs r3, #0x80 - lsls r3, r3, #4 - adds r1, r1, r3 - str r1, [r0] - mov r4, r8 - strh r4, [r0, #4] - ldr r4, _0812FDB4 - movs r0, #8 - bl AllocZeroed - str r0, [r4] - ldr r1, [r6] - movs r2, #0xa0 - lsls r2, r2, #4 - adds r1, r1, r2 - str r1, [r0] - mov r3, r8 - strh r3, [r0, #4] - ldr r4, _0812FDB8 - movs r0, #8 - bl AllocZeroed - str r0, [r4] - ldr r1, [r6] - movs r4, #0xc0 - lsls r4, r4, #4 - adds r1, r1, r4 - str r1, [r0] - movs r5, #0xc0 - lsls r5, r5, #2 - strh r5, [r0, #4] - ldr r4, _0812FDBC - movs r0, #8 - bl AllocZeroed - str r0, [r4] - ldr r1, [r6] - movs r2, #0x80 - lsls r2, r2, #5 - adds r1, r1, r2 - str r1, [r0] - movs r1, #0x80 - lsls r1, r1, #3 - strh r1, [r0, #4] - ldr r4, _0812FDC0 - movs r0, #8 - bl AllocZeroed - str r0, [r4] - ldr r1, [r6] - movs r3, #0xa0 - lsls r3, r3, #5 - adds r1, r1, r3 - str r1, [r0] - mov r4, r8 - strh r4, [r0, #4] - ldr r4, _0812FDC4 - movs r0, #8 - bl AllocZeroed - str r0, [r4] - ldr r1, [r6] - movs r2, #0xb0 - lsls r2, r2, #5 - adds r1, r1, r2 - str r1, [r0] - strh r5, [r0, #4] - ldr r4, _0812FDC8 - movs r0, #8 - bl AllocZeroed - str r0, [r4] - ldr r1, [r6] - movs r3, #0xc8 - lsls r3, r3, #5 - adds r1, r1, r3 - str r1, [r0] - strh r5, [r0, #4] - ldr r4, _0812FDCC - movs r0, #0x10 - bl AllocZeroed - str r0, [r4] - ldr r1, [r6] - movs r4, #0xe0 - lsls r4, r4, #5 - adds r2, r1, r4 - str r2, [r0] - mov r2, r8 - strh r2, [r0, #4] - movs r3, #0xf0 - lsls r3, r3, #5 - adds r1, r1, r3 - str r1, [r0, #8] - strh r2, [r0, #0xc] - ldr r4, _0812FDD0 - movs r0, #8 - bl AllocZeroed - str r0, [r4] - ldr r1, [r6] - movs r4, #0x80 - lsls r4, r4, #6 - adds r1, r1, r4 - str r1, [r0] - movs r1, #0xa0 - lsls r1, r1, #2 - strh r1, [r0, #4] - ldr r4, _0812FDD4 - movs r0, #0x28 - bl AllocZeroed - str r0, [r4] - ldr r2, [r6] - movs r3, #0x8a - lsls r3, r3, #6 - adds r1, r2, r3 - str r1, [r0] - movs r3, #0x80 - strh r3, [r0, #4] - movs r4, #0x8c - lsls r4, r4, #6 - adds r1, r2, r4 - str r1, [r0, #8] - strh r3, [r0, #0xc] - adds r4, #0x80 - adds r1, r2, r4 - str r1, [r0, #0x10] - strh r3, [r0, #0x14] - adds r4, #0x80 - adds r1, r2, r4 - str r1, [r0, #0x18] - strh r3, [r0, #0x1c] - movs r1, #0x92 - lsls r1, r1, #6 - adds r2, r2, r1 - str r2, [r0, #0x20] - strh r3, [r0, #0x24] - ldr r4, _0812FDD8 - movs r0, #0x10 - bl AllocZeroed - str r0, [r4] - ldr r2, [r6] - movs r3, #0x98 - lsls r3, r3, #6 - adds r1, r2, r3 - str r1, [r0] - movs r1, #0x90 - lsls r1, r1, #3 - strh r1, [r0, #4] - movs r4, #0xaa - lsls r4, r4, #6 - adds r2, r2, r4 - str r2, [r0, #8] - strh r1, [r0, #0xc] - ldr r4, _0812FDDC - movs r0, #0x10 - bl AllocZeroed - str r0, [r4] - ldr r2, [r6] - movs r3, #0xbc - lsls r3, r3, #6 - adds r1, r2, r3 - str r1, [r0] - movs r1, #0xc0 - lsls r1, r1, #1 - strh r1, [r0, #4] - movs r4, #0xc2 - lsls r4, r4, #6 - adds r2, r2, r4 - str r2, [r0, #8] - strh r1, [r0, #0xc] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0812FDA4: .4byte gUnknown_203A7C0 -_0812FDA8: .4byte gUnknown_203A7A0 -_0812FDAC: .4byte gUnknown_203A7C4 -_0812FDB0: .4byte gUnknown_203A7C8 -_0812FDB4: .4byte gUnknown_203A7CC -_0812FDB8: .4byte gUnknown_203A7D0 -_0812FDBC: .4byte gUnknown_203A7D4 -_0812FDC0: .4byte gUnknown_203A7D8 -_0812FDC4: .4byte gUnknown_203A7DC -_0812FDC8: .4byte gUnknown_203A7E0 -_0812FDCC: .4byte gUnknown_203A7E4 -_0812FDD0: .4byte gUnknown_203A7E8 -_0812FDD4: .4byte gUnknown_203A7EC -_0812FDD8: .4byte gUnknown_203A7F0 -_0812FDDC: .4byte gUnknown_203A7F4 - thumb_func_end SlotMachineSetup_8_0 - - thumb_func_start sub_0812FDE0 -sub_0812FDE0: @ 0x0812FDE0 - push {r4, r5, r6, r7, lr} - ldr r3, _0812FE10 - ldr r4, _0812FE14 - ldr r1, _0812FE18 - ldr r2, [r1] - subs r0, #1 - lsls r1, r0, #5 - adds r2, r2, r1 - ldr r1, _0812FE1C - ldr r5, _0812FE20 - adds r2, r2, r5 - ldm r2!, {r5, r6, r7} - stm r1!, {r5, r6, r7} - ldm r2!, {r5, r6, r7} - stm r1!, {r5, r6, r7} - ldm r2!, {r6, r7} - stm r1!, {r6, r7} - strb r0, [r3] - movs r0, #0 - strb r0, [r4] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0812FE10: .4byte gUnknown_2039BFD -_0812FE14: .4byte gUnknown_2039BFC -_0812FE18: .4byte gUnknown_3005AEC -_0812FE1C: .4byte gUnknown_2039BDC -_0812FE20: .4byte 0x00002E90 - thumb_func_end sub_0812FDE0 - - thumb_func_start CB2_ContestPainting -CB2_ContestPainting: @ 0x0812FE24 - push {lr} - bl ShowContestPainting - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CB2_ContestPainting - - thumb_func_start CB2_HoldContestPainting -CB2_HoldContestPainting: @ 0x0812FE30 - push {lr} - bl HoldContestPainting - bl sub_08004630 - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CB2_HoldContestPainting - - thumb_func_start CB2_QuitContestPainting -CB2_QuitContestPainting: @ 0x0812FE44 - push {r4, r5, lr} - ldr r0, _0812FE80 - ldr r0, [r0, #8] - bl SetMainCallback2 - ldr r4, _0812FE84 - ldr r0, [r4] - bl Free - movs r5, #0 - str r5, [r4] - ldr r4, _0812FE88 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r0, _0812FE8C - ldrb r0, [r0] - bl RemoveWindow - movs r0, #1 - bl GetBgTilemapBuffer - bl Free - bl FreeMonSpritesGfx - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0812FE80: .4byte gUnknown_3002360 -_0812FE84: .4byte gUnknown_3005F04 -_0812FE88: .4byte gUnknown_3005ED0 -_0812FE8C: .4byte gUnknown_30011F7 - thumb_func_end CB2_QuitContestPainting - - thumb_func_start ShowContestPainting -ShowContestPainting: @ 0x0812FE90 - push {r4, r5, r6, r7, lr} - sub sp, #4 - ldr r1, _0812FEB0 - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r1, r2 - ldrb r0, [r0] - adds r4, r1, #0 - cmp r0, #4 - bls _0812FEA6 - b _0812FFD8 -_0812FEA6: - lsls r0, r0, #2 - ldr r1, _0812FEB4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0812FEB0: .4byte gUnknown_3002360 -_0812FEB4: .4byte _0812FEB8 -_0812FEB8: @ jump table - .4byte _0812FECC @ case 0 - .4byte _0812FF00 @ case 1 - .4byte _0812FF4C @ case 2 - .4byte _0812FF62 @ case 3 - .4byte _0812FF8C @ case 4 -_0812FECC: - bl ScanlineEffect_Stop - movs r0, #0 - bl SetVBlankCallback - bl AllocateMonSpritesGfx - ldr r1, _0812FEF4 - ldr r0, _0812FEF8 - str r0, [r1] - movs r0, #1 - bl InitContestPaintingVars - bl InitContestPaintingBg - ldr r1, _0812FEFC - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _0812FF76 - .align 2, 0 -_0812FEF4: .4byte gUnknown_3005F00 -_0812FEF8: .4byte gUnknown_2039BDC -_0812FEFC: .4byte gUnknown_3002360 -_0812FF00: - bl ResetPaletteFade - movs r2, #0xc0 - lsls r2, r2, #0x13 - movs r3, #0xc0 - lsls r3, r3, #9 - movs r5, #0 - ldr r1, _0812FF44 - movs r4, #0x80 - lsls r4, r4, #5 - ldr r6, _0812FF48 - movs r7, #0x85 - lsls r7, r7, #0x18 -_0812FF1A: - str r5, [sp] - mov r0, sp - str r0, [r1] - str r2, [r1, #4] - str r6, [r1, #8] - ldr r0, [r1, #8] - adds r2, r2, r4 - subs r3, r3, r4 - cmp r3, r4 - bhi _0812FF1A - str r5, [sp] - mov r0, sp - str r0, [r1] - str r2, [r1, #4] - lsrs r0, r3, #2 - orrs r0, r7 - str r0, [r1, #8] - ldr r0, [r1, #8] - bl ResetSpriteData - b _0812FF6E - .align 2, 0 -_0812FF44: .4byte 0x040000D4 -_0812FF48: .4byte 0x85000400 -_0812FF4C: - ldrh r0, [r4, #0x20] - bl SeedRng - bl InitKeys - bl InitContestPaintingWindow - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r4, r0 - b _0812FF76 -_0812FF62: - ldr r0, _0812FF80 - ldrb r0, [r0] - ldr r1, _0812FF84 - ldrb r1, [r1] - bl sub_081308DC -_0812FF6E: - ldr r1, _0812FF88 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 -_0812FF76: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0812FFD8 - .align 2, 0 -_0812FF80: .4byte gUnknown_2039BFD -_0812FF84: .4byte gUnknown_2039BFC -_0812FF88: .4byte gUnknown_3002360 -_0812FF8C: - ldr r0, _0812FFE0 - ldrb r0, [r0] - ldr r1, _0812FFE4 - ldrb r1, [r1] - bl sub_08130144 - ldr r0, _0812FFE8 - movs r1, #0 - movs r2, #2 - bl LoadPalette - movs r1, #0xa0 - lsls r1, r1, #0x13 - movs r4, #0 - str r4, [sp] - ldr r0, _0812FFEC - mov r2, sp - str r2, [r0] - str r1, [r0, #4] - ldr r1, _0812FFF0 - str r1, [r0, #8] - ldr r0, [r0, #8] - movs r0, #2 - bl BeginFastPaletteFade - ldr r0, _0812FFF4 - bl SetVBlankCallback - ldr r0, _0812FFF8 - strb r4, [r0] - movs r1, #0x9a - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - ldr r0, _0812FFFC - bl SetMainCallback2 -_0812FFD8: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0812FFE0: .4byte gUnknown_2039BFD -_0812FFE4: .4byte gUnknown_2039BFC -_0812FFE8: .4byte gUnknown_858F648 -_0812FFEC: .4byte 0x040000D4 -_0812FFF0: .4byte 0x85000100 -_0812FFF4: .4byte SlotMachineSetup_6_0 -_0812FFF8: .4byte gUnknown_30011F0 -_0812FFFC: .4byte CB2_HoldContestPainting - thumb_func_end ShowContestPainting - - thumb_func_start HoldContestPainting -HoldContestPainting: @ 0x08130000 - push {lr} - sub sp, #4 - ldr r3, _08130018 - ldrb r1, [r3] - cmp r1, #1 - beq _08130054 - cmp r1, #1 - bgt _0813001C - cmp r1, #0 - beq _08130022 - b _081300BA - .align 2, 0 -_08130018: .4byte gUnknown_30011F0 -_0813001C: - cmp r1, #2 - beq _08130094 - b _081300BA -_08130022: - ldr r0, _08130048 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08130032 - movs r0, #1 - strb r0, [r3] -_08130032: - ldr r0, _0813004C - ldrb r0, [r0] - cmp r0, #0 - beq _081300BA - ldr r1, _08130050 - ldrh r0, [r1] - cmp r0, #0 - beq _081300BA - subs r0, #1 - b _081300B8 - .align 2, 0 -_08130048: .4byte gUnknown_2037C74 -_0813004C: .4byte gUnknown_30011F6 -_08130050: .4byte gUnknown_30011F4 -_08130054: - ldr r0, _08130088 - ldrh r2, [r0, #0x2e] - ands r1, r2 - cmp r1, #0 - bne _08130066 - movs r0, #2 - ands r0, r2 - cmp r0, #0 - beq _08130078 -_08130066: - movs r0, #2 - strb r0, [r3] - subs r0, #3 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade -_08130078: - ldr r0, _0813008C - ldrb r0, [r0] - cmp r0, #0 - beq _081300BA - ldr r1, _08130090 - movs r0, #0 - b _081300B8 - .align 2, 0 -_08130088: .4byte gUnknown_3002360 -_0813008C: .4byte gUnknown_30011F6 -_08130090: .4byte gUnknown_30011F4 -_08130094: - ldr r0, _081300C0 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081300A6 - ldr r0, _081300C4 - bl SetMainCallback2 -_081300A6: - ldr r0, _081300C8 - ldrb r0, [r0] - cmp r0, #0 - beq _081300BA - ldr r1, _081300CC - ldrh r0, [r1] - cmp r0, #0x1d - bhi _081300BA - adds r0, #1 -_081300B8: - strh r0, [r1] -_081300BA: - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_081300C0: .4byte gUnknown_2037C74 -_081300C4: .4byte CB2_QuitContestPainting -_081300C8: .4byte gUnknown_30011F6 -_081300CC: .4byte gUnknown_30011F4 - thumb_func_end HoldContestPainting - - thumb_func_start InitContestPaintingWindow -InitContestPaintingWindow: @ 0x081300D0 - push {r4, lr} - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _08130138 - movs r0, #0 - movs r2, #1 - bl InitBgsFromTemplates - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #0x80 - lsls r0, r0, #4 - bl AllocZeroed - adds r1, r0, #0 - movs r0, #1 - bl SetBgTilemapBuffer - ldr r4, _0813013C - ldr r0, _08130140 - bl AddWindow - strb r0, [r4] - bl sub_08004480 - ldrb r0, [r4] - movs r1, #0 - bl FillWindowPixelBuffer - ldrb r0, [r4] - bl PutWindowTilemap - ldrb r0, [r4] - movs r1, #3 - bl CopyWindowToVram - movs r0, #1 - bl ShowBg - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08130138: .4byte gUnknown_858F5F8 -_0813013C: .4byte gUnknown_30011F7 -_08130140: .4byte gUnknown_858F5FC - thumb_func_end InitContestPaintingWindow - - thumb_func_start sub_08130144 -sub_08130144: @ 0x08130144 - push {r4, r5, r6, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #1 - beq _0813022A - ldr r6, _081301C8 - ldr r1, [r6] - ldrb r5, [r1, #0xa] - cmp r0, #7 - bhi _081301F4 - ldr r4, _081301CC - ldr r1, _081301D0 - lsls r0, r5, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl StringCopy - ldr r1, _081301D4 - adds r0, r4, #0 - bl StringAppend - ldr r1, _081301D8 - adds r0, r4, #0 - bl StringAppend - ldr r1, _081301DC - ldr r0, [r6] - ldrb r0, [r0, #0x1e] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl StringAppend - ldr r0, _081301E0 - ldr r1, [r6] - adds r1, #0x16 - bl StringCopy - ldr r0, _081301E4 - ldr r1, [r6] - adds r1, #0xb - bl StringCopy - ldr r4, _081301E8 - ldr r1, _081301EC - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r0, _081301F0 - ldrb r0, [r0] - movs r1, #1 - str r1, [sp] - movs r1, #0 - str r1, [sp, #4] - str r1, [sp, #8] - movs r1, #1 - adds r2, r4, #0 - movs r3, #8 - bl AddTextPrinterParameterized - b _08130224 - .align 2, 0 -_081301C8: .4byte gUnknown_3005F00 -_081301CC: .4byte gUnknown_2021C40 -_081301D0: .4byte gUnknown_858F5D0 -_081301D4: .4byte gUnknown_824C200 -_081301D8: .4byte gUnknown_85C941F -_081301DC: .4byte gUnknown_858F5E4 -_081301E0: .4byte gUnknown_2021C54 -_081301E4: .4byte gUnknown_2021C68 -_081301E8: .4byte gUnknown_2021C7C -_081301EC: .4byte gUnknown_824C1F5 -_081301F0: .4byte gUnknown_30011F7 -_081301F4: - ldr r0, _08130234 - adds r1, #0xb - bl StringCopy - ldr r4, _08130238 - ldr r1, _0813023C - lsls r0, r5, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r0, _08130240 - ldrb r0, [r0] - movs r1, #1 - str r1, [sp] - movs r1, #0 - str r1, [sp, #4] - str r1, [sp, #8] - movs r1, #1 - adds r2, r4, #0 - movs r3, #0 - bl AddTextPrinterParameterized -_08130224: - movs r0, #1 - bl CopyBgTilemapBufferToVram -_0813022A: - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08130234: .4byte gUnknown_2021C40 -_08130238: .4byte gUnknown_2021C7C -_0813023C: .4byte gUnknown_858F604 -_08130240: .4byte gUnknown_30011F7 - thumb_func_end sub_08130144 - - thumb_func_start InitContestPaintingBg -InitContestPaintingBg: @ 0x08130244 - push {lr} - movs r0, #0 - movs r1, #0 - bl SetGpuReg - ldr r2, _08130284 - ldrh r0, [r2] - movs r1, #1 - orrs r0, r1 - strh r0, [r2] - ldr r1, _08130288 - movs r0, #8 - bl SetGpuReg - ldr r1, _0813028C - movs r0, #0xa - bl SetGpuReg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 -_08130284: .4byte 0x04000200 -_08130288: .4byte 0x00000C42 -_0813028C: .4byte 0x00000A45 - thumb_func_end InitContestPaintingBg - - thumb_func_start InitContestPaintingVars -InitContestPaintingVars: @ 0x08130290 - push {lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _081302B4 - ldr r0, _081302A8 - strb r1, [r0] - ldr r0, _081302AC - strh r1, [r0] - ldr r0, _081302B0 - strh r1, [r0] - b _081302C6 - .align 2, 0 -_081302A8: .4byte gUnknown_30011F6 -_081302AC: .4byte gUnknown_30011F2 -_081302B0: .4byte gUnknown_30011F4 -_081302B4: - ldr r1, _081302CC - movs r0, #1 - strb r0, [r1] - ldr r1, _081302D0 - movs r0, #0xf - strh r0, [r1] - ldr r1, _081302D4 - movs r0, #0x1e - strh r0, [r1] -_081302C6: - pop {r0} - bx r0 - .align 2, 0 -_081302CC: .4byte gUnknown_30011F6 -_081302D0: .4byte gUnknown_30011F2 -_081302D4: .4byte gUnknown_30011F4 - thumb_func_end InitContestPaintingVars - - thumb_func_start UpdateContestPaintingMosaicEffect -UpdateContestPaintingMosaicEffect: @ 0x081302D8 - push {lr} - ldr r0, _081302EC - ldrb r0, [r0] - cmp r0, #0 - bne _081302F0 - movs r0, #0x4c - movs r1, #0 - bl SetGpuReg - b _08130318 - .align 2, 0 -_081302EC: .4byte gUnknown_30011F6 -_081302F0: - ldr r1, _0813031C - movs r0, #0xa - bl SetGpuReg - ldr r1, _08130320 - ldr r0, _08130324 - ldrh r0, [r0] - lsrs r0, r0, #1 - strh r0, [r1] - lsls r1, r0, #0xc - lsls r2, r0, #8 - orrs r1, r2 - lsls r2, r0, #4 - orrs r1, r2 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x4c - bl SetGpuReg -_08130318: - pop {r0} - bx r0 - .align 2, 0 -_0813031C: .4byte 0x00000A45 -_08130320: .4byte gUnknown_30011F2 -_08130324: .4byte gUnknown_30011F4 - thumb_func_end UpdateContestPaintingMosaicEffect - - thumb_func_start SlotMachineSetup_6_0 -SlotMachineSetup_6_0: @ 0x08130328 - push {lr} - bl UpdateContestPaintingMosaicEffect - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SlotMachineSetup_6_0 - - thumb_func_start sub_08130340 -sub_08130340: @ 0x08130340 - push {r4, r5, r6, r7, lr} - adds r4, r1, #0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r6, _0813038C - ldr r0, [r6] - ldr r1, [r0, #4] - ldr r2, [r0] - adds r0, r5, #0 - bl GetMonSpritePalFromSpeciesAndPersonality - ldr r7, _08130390 - ldr r1, [r7] - bl sub_0803437C - cmp r4, #0 - bne _081303A0 - lsls r0, r5, #3 - ldr r1, _08130394 - adds r0, r0, r1 - ldr r4, _08130398 - ldr r1, [r4] - ldr r1, [r1, #8] - ldr r2, [r6] - ldr r3, [r2] - adds r2, r5, #0 - bl HandleLoadSpecialPokePic_DontHandleDeoxys - ldr r0, [r4] - ldr r0, [r0, #8] - ldr r1, [r7] - ldr r2, _0813039C - ldr r2, [r2] - bl sub_081303D8 - b _081303C4 - .align 2, 0 -_0813038C: .4byte gUnknown_3005F00 -_08130390: .4byte gUnknown_3005F04 -_08130394: .4byte gUnknown_82DDA1C -_08130398: .4byte gUnknown_2024178 -_0813039C: .4byte gUnknown_3005ED0 -_081303A0: - lsls r0, r5, #3 - ldr r1, _081303CC - adds r0, r0, r1 - ldr r4, _081303D0 - ldr r1, [r4] - ldr r1, [r1, #4] - ldr r2, [r6] - ldr r3, [r2] - adds r2, r5, #0 - bl HandleLoadSpecialPokePic_DontHandleDeoxys - ldr r0, [r4] - ldr r0, [r0, #4] - ldr r1, [r7] - ldr r2, _081303D4 - ldr r2, [r2] - bl sub_081303D8 -_081303C4: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081303CC: .4byte gUnknown_82D6148 -_081303D0: .4byte gUnknown_2024178 -_081303D4: .4byte gUnknown_3005ED0 - thumb_func_end sub_08130340 - - thumb_func_start sub_081303D8 -sub_081303D8: @ 0x081303D8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - mov sl, r0 - mov sb, r1 - str r2, [sp] - movs r0, #0 -_081303EC: - movs r3, #0 - adds r1, r0, #1 - str r1, [sp, #4] - lsls r0, r0, #3 - str r0, [sp, #8] -_081303F6: - movs r1, #0 - adds r2, r3, #1 - mov r8, r2 - ldr r7, [sp, #8] - adds r0, r7, r3 - lsls r0, r0, #5 - mov ip, r0 - lsls r4, r3, #3 -_08130406: - movs r3, #0 - lsls r0, r1, #2 - adds r6, r1, #1 - mov r2, ip - adds r5, r2, r0 - ldr r7, [sp, #8] - adds r0, r7, r1 - lsls r0, r0, #7 - ldr r1, [sp] - adds r2, r0, r1 -_0813041A: - lsrs r0, r3, #1 - adds r0, r5, r0 - add r0, sl - ldrb r1, [r0] - movs r0, #1 - ands r0, r3 - cmp r0, #0 - beq _0813042E - lsrs r1, r1, #4 - b _08130432 -_0813042E: - movs r0, #0xf - ands r1, r0 -_08130432: - cmp r1, #0 - bne _08130444 - adds r0, r4, r3 - lsls r0, r0, #1 - adds r0, r0, r2 - movs r7, #0x80 - lsls r7, r7, #8 - adds r1, r7, #0 - b _08130450 -_08130444: - adds r0, r4, r3 - lsls r0, r0, #1 - adds r0, r0, r2 - lsls r1, r1, #1 - add r1, sb - ldrh r1, [r1] -_08130450: - strh r1, [r0] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #7 - bls _0813041A - lsls r0, r6, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #7 - bls _08130406 - mov r1, r8 - lsls r0, r1, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #7 - bls _081303F6 - ldr r2, [sp, #4] - lsls r0, r2, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #7 - bls _081303EC - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_081303D8 - - thumb_func_start sub_08130488 -sub_08130488: @ 0x08130488 - push {r4, r5, r6, r7, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081304C4 - movs r2, #0x80 - lsls r2, r2, #1 - movs r1, #0 - bl LoadPalette - cmp r4, #1 - beq _081304A6 - b _081305FC -_081304A6: - ldr r0, _081304C8 - ldr r0, [r0] - ldrb r0, [r0, #0xa] - movs r1, #3 - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _08130564 - lsls r0, r0, #2 - ldr r1, _081304CC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081304C4: .4byte gUnknown_85886AC -_081304C8: .4byte gUnknown_3005F00 -_081304CC: .4byte _081304D0 -_081304D0: @ jump table - .4byte _081304E4 @ case 0 - .4byte _081304FC @ case 1 - .4byte _08130514 @ case 2 - .4byte _0813052C @ case 3 - .4byte _08130550 @ case 4 -_081304E4: - ldr r0, _081304F4 - movs r1, #0xc0 - lsls r1, r1, #0x13 - bl RLUnCompVram - ldr r0, _081304F8 - b _08130538 - .align 2, 0 -_081304F4: .4byte gUnknown_85888AC -_081304F8: .4byte gUnknown_858D784 -_081304FC: - ldr r0, _0813050C - movs r1, #0xc0 - lsls r1, r1, #0x13 - bl RLUnCompVram - ldr r0, _08130510 - b _08130538 - .align 2, 0 -_0813050C: .4byte gUnknown_8589930 -_08130510: .4byte gUnknown_858DC90 -_08130514: - ldr r0, _08130524 - movs r1, #0xc0 - lsls r1, r1, #0x13 - bl RLUnCompVram - ldr r0, _08130528 - b _08130538 - .align 2, 0 -_08130524: .4byte gUnknown_858A560 -_08130528: .4byte gUnknown_858E19C -_0813052C: - ldr r0, _08130544 - movs r1, #0xc0 - lsls r1, r1, #0x13 - bl RLUnCompVram - ldr r0, _08130548 -_08130538: - ldr r1, _0813054C - ldr r1, [r1] - bl RLUnCompWram - b _08130564 - .align 2, 0 -_08130544: .4byte gUnknown_858B098 -_08130548: .4byte gUnknown_858E6A8 -_0813054C: .4byte gUnknown_3005ED0 -_08130550: - ldr r0, _081305E0 - movs r1, #0xc0 - lsls r1, r1, #0x13 - bl RLUnCompVram - ldr r0, _081305E4 - ldr r1, _081305E8 - ldr r1, [r1] - bl RLUnCompWram -_08130564: - movs r1, #0 - ldr r5, _081305EC - ldr r0, _081305F0 - adds r4, r0, #0 -_0813056C: - movs r3, #0 - lsls r2, r1, #5 -_08130570: - adds r0, r2, r3 - lsls r0, r0, #1 - adds r0, r0, r5 - strh r4, [r0] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0x1f - bls _08130570 - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x13 - bls _0813056C - movs r1, #0 - ldr r0, _081305F4 - mov ip, r0 - ldr r7, _081305E8 -_08130594: - movs r3, #0 - adds r6, r1, #1 - lsls r5, r1, #5 - lsls r4, r1, #6 -_0813059C: - adds r2, r5, r3 - lsls r2, r2, #1 - add r2, ip - ldr r0, [r7] - adds r0, r4, r0 - lsls r1, r3, #1 - adds r0, r0, r1 - adds r0, #0x8c - ldrh r0, [r0] - strh r0, [r2] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0x11 - bls _0813059C - lsls r0, r6, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #9 - bls _08130594 - movs r3, #0 - ldr r4, _081305F8 - ldr r2, _081305E8 -_081305C8: - lsls r1, r3, #1 - adds r1, r1, r4 - ldr r0, [r2] - adds r0, #0x8e - ldrh r0, [r0] - strh r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0xf - bls _081305C8 - b _081306CE - .align 2, 0 -_081305E0: .4byte gUnknown_858C050 -_081305E4: .4byte gUnknown_858EBB4 -_081305E8: .4byte gUnknown_3005ED0 -_081305EC: .4byte 0x06006000 -_081305F0: .4byte 0x00001015 -_081305F4: .4byte 0x0600608C -_081305F8: .4byte 0x0600608E -_081305FC: - cmp r5, #7 - bhi _08130618 - ldr r0, _08130610 - movs r1, #0xc0 - lsls r1, r1, #0x13 - bl RLUnCompVram - ldr r0, _08130614 - b _081306A8 - .align 2, 0 -_08130610: .4byte gUnknown_858D180 -_08130614: .4byte gUnknown_858F0C0 -_08130618: - ldr r0, _08130638 - ldr r0, [r0] - ldrb r0, [r0, #0xa] - movs r1, #3 - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _081306CE - lsls r0, r0, #2 - ldr r1, _0813063C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08130638: .4byte gUnknown_3005F00 -_0813063C: .4byte _08130640 -_08130640: @ jump table - .4byte _08130654 @ case 0 - .4byte _0813066C @ case 1 - .4byte _08130684 @ case 2 - .4byte _0813069C @ case 3 - .4byte _081306BC @ case 4 -_08130654: - ldr r0, _08130664 - movs r1, #0xc0 - lsls r1, r1, #0x13 - bl RLUnCompVram - ldr r0, _08130668 - b _081306A8 - .align 2, 0 -_08130664: .4byte gUnknown_85888AC -_08130668: .4byte gUnknown_858D784 -_0813066C: - ldr r0, _0813067C - movs r1, #0xc0 - lsls r1, r1, #0x13 - bl RLUnCompVram - ldr r0, _08130680 - b _081306A8 - .align 2, 0 -_0813067C: .4byte gUnknown_8589930 -_08130680: .4byte gUnknown_858DC90 -_08130684: - ldr r0, _08130694 - movs r1, #0xc0 - lsls r1, r1, #0x13 - bl RLUnCompVram - ldr r0, _08130698 - b _081306A8 - .align 2, 0 -_08130694: .4byte gUnknown_858A560 -_08130698: .4byte gUnknown_858E19C -_0813069C: - ldr r0, _081306B0 - movs r1, #0xc0 - lsls r1, r1, #0x13 - bl RLUnCompVram - ldr r0, _081306B4 -_081306A8: - ldr r1, _081306B8 - bl RLUnCompVram - b _081306CE - .align 2, 0 -_081306B0: .4byte gUnknown_858B098 -_081306B4: .4byte gUnknown_858E6A8 -_081306B8: .4byte 0x06006000 -_081306BC: - ldr r0, _081306D4 - movs r1, #0xc0 - lsls r1, r1, #0x13 - bl RLUnCompVram - ldr r0, _081306D8 - ldr r1, _081306DC - bl RLUnCompVram -_081306CE: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081306D4: .4byte gUnknown_858C050 -_081306D8: .4byte gUnknown_858EBB4 -_081306DC: .4byte 0x06006000 - thumb_func_end sub_08130488 - - thumb_func_start sub_081306E0 -sub_081306E0: @ 0x081306E0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _08130714 - ldr r1, _08130718 - ldr r2, [r1, #4] - ldr r1, [r1] - str r1, [r3, #0x38] - str r2, [r3, #0x3c] - ldrh r2, [r3, #0x3c] - ldr r1, _0813071C - ands r1, r2 - strh r1, [r3, #0x3c] - ldrh r1, [r3, #0x3a] - ldr r0, _08130720 - ands r0, r1 - movs r1, #0x58 - orrs r0, r1 - strh r0, [r3, #0x3a] - adds r1, r3, #0 - adds r1, #0x38 - movs r0, #0x18 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08130714: .4byte gUnknown_3002360 -_08130718: .4byte gUnknown_858F640 -_0813071C: .4byte 0xFFFFFC00 -_08130720: .4byte 0xFFFFFE00 - thumb_func_end sub_081306E0 - - thumb_func_start sub_08130724 -sub_08130724: @ 0x08130724 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #7 - bhi _0813073C - ldr r0, _08130738 - ldr r0, [r0] - ldrb r0, [r0, #0xa] - b _0813074C - .align 2, 0 -_08130738: .4byte gUnknown_3005F00 -_0813073C: - ldr r0, _0813075C - ldr r0, [r0] - ldrb r0, [r0, #0xa] - movs r1, #3 - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_0813074C: - cmp r0, #4 - bhi _0813078A - lsls r0, r0, #2 - ldr r1, _08130760 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813075C: .4byte gUnknown_3005F00 -_08130760: .4byte _08130764 -_08130764: @ jump table - .4byte _08130778 @ case 0 - .4byte _0813077C @ case 1 - .4byte _08130780 @ case 2 - .4byte _08130784 @ case 3 - .4byte _08130788 @ case 4 -_08130778: - movs r0, #9 - b _0813078A -_0813077C: - movs r0, #0xd - b _0813078A -_08130780: - movs r0, #2 - b _0813078A -_08130784: - movs r0, #0x24 - b _0813078A -_08130788: - movs r0, #6 -_0813078A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08130724 - - thumb_func_start sub_08130790 -sub_08130790: @ 0x08130790 - push {r4, lr} - ldr r4, _081307B0 - movs r0, #0x80 - lsls r0, r0, #2 - bl AllocZeroed - str r0, [r4] - ldr r4, _081307B4 - movs r0, #0x80 - lsls r0, r0, #6 - bl AllocZeroed - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081307B0: .4byte gUnknown_3005F04 -_081307B4: .4byte gUnknown_3005ED0 - thumb_func_end sub_08130790 - - thumb_func_start sub_081307B8 -sub_081307B8: @ 0x081307B8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r1, _081307F8 - ldr r0, _081307FC - ldr r0, [r0] - str r0, [r1, #4] - ldr r0, _08130800 - ldr r0, [r0] - str r0, [r1, #8] - movs r2, #0 - strb r2, [r1, #0x18] - ldr r0, _08130804 - 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, #2 - adds r4, r1, #0 - cmp r0, #0x22 - bhi _0813089C - lsls r0, r0, #2 - ldr r1, _08130808 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081307F8: .4byte gUnknown_3005EE0 -_081307FC: .4byte gUnknown_3005ED0 -_08130800: .4byte gUnknown_3005F04 -_08130804: .4byte gUnknown_3005F00 -_08130808: .4byte _0813080C -_0813080C: @ jump table - .4byte _0813089C @ case 0 - .4byte _0813089C @ case 1 - .4byte _0813089C @ case 2 - .4byte _0813089C @ case 3 - .4byte _08130898 @ case 4 - .4byte _0813089C @ case 5 - .4byte _0813089C @ case 6 - .4byte _0813089C @ case 7 - .4byte _0813089C @ case 8 - .4byte _0813089C @ case 9 - .4byte _0813089C @ case 10 - .4byte _0813089C @ case 11 - .4byte _0813089C @ case 12 - .4byte _0813089C @ case 13 - .4byte _0813089C @ case 14 - .4byte _0813089C @ case 15 - .4byte _0813089C @ case 16 - .4byte _0813089C @ case 17 - .4byte _0813089C @ case 18 - .4byte _0813089C @ case 19 - .4byte _0813089C @ case 20 - .4byte _0813089C @ case 21 - .4byte _0813089C @ case 22 - .4byte _0813089C @ case 23 - .4byte _0813089C @ case 24 - .4byte _0813089C @ case 25 - .4byte _0813089C @ case 26 - .4byte _0813089C @ case 27 - .4byte _0813089C @ case 28 - .4byte _0813089C @ case 29 - .4byte _0813089C @ case 30 - .4byte _0813089C @ case 31 - .4byte _0813089C @ case 32 - .4byte _0813089C @ case 33 - .4byte _08130898 @ case 34 -_08130898: - movs r0, #3 - b _0813089E -_0813089C: - movs r0, #1 -_0813089E: - strh r0, [r4, #0x14] - movs r0, #2 - strh r0, [r4, #0x16] - strb r3, [r4] - ldr r0, _081308D4 - str r0, [r4, #0x10] - adds r0, r4, #0 - bl sub_08124F14 - adds r0, r4, #0 - bl sub_0812618C - adds r0, r4, #0 - bl sub_08126040 - ldr r0, _081308D8 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #1 - movs r2, #0x80 - lsls r2, r2, #2 - bl LoadPalette - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081308D4: .4byte 0x06010000 -_081308D8: .4byte gUnknown_3005F04 - thumb_func_end sub_081307B8 - - thumb_func_start sub_081308DC -sub_081308DC: @ 0x081308DC - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - bl sub_08130790 - ldr r0, _0813091C - ldr r0, [r0] - ldrh r0, [r0, #8] - movs r1, #0 - bl sub_08130340 - adds r0, r4, #0 - bl sub_08130724 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_081307B8 - adds r0, r4, #0 - bl sub_081306E0 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08130488 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0813091C: .4byte gUnknown_3005F00 - thumb_func_end sub_081308DC - - thumb_func_start sub_08130920 -sub_08130920: @ 0x08130920 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r1, _08130990 - ldr r0, [r1] - ldr r3, [r0, #0x18] - movs r4, #0 - mov ip, r1 - ldr r2, _08130994 - movs r1, #0 -_08130934: - adds r0, r3, r4 - strb r1, [r0] - adds r4, #1 - cmp r4, #0x53 - bls _08130934 - ldr r0, [r2] - ldr r1, _08130998 - ands r0, r1 - cmp r0, #8 - bne _08130982 - movs r4, #0 - ldr r6, _0813099C - ldr r5, _081309A0 -_0813094E: - lsls r1, r4, #1 - ldrh r0, [r6] - lsls r0, r0, #5 - adds r1, r1, r0 - adds r1, r1, r5 - ldrh r3, [r1] - cmp r3, #0 - beq _0813097C - mov r0, ip - ldr r2, [r0] - ldr r1, [r2, #0x18] - adds r0, r1, #0 - adds r0, #0x50 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r1, #0x48 - adds r1, r1, r0 - strh r3, [r1] - ldr r1, [r2, #0x18] - adds r1, #0x50 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_0813097C: - adds r4, #1 - cmp r4, #3 - ble _0813094E -_08130982: - adds r0, r7, #0 - bl BattleAI_SetupAIData - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08130990: .4byte gUnknown_202414C -_08130994: .4byte gUnknown_2022C90 -_08130998: .4byte 0x0A7F098A -_0813099C: .4byte gUnknown_203886A -_081309A0: .4byte gUnknown_82E3846 - thumb_func_end sub_08130920 - - thumb_func_start BattleAI_SetupAIData -BattleAI_SetupAIData: @ 0x081309A4 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _081309DC - ldr r0, [r0] - ldr r1, [r0, #0x14] - movs r4, #0 - ldr r6, _081309E0 - movs r3, #0 -_081309B6: - adds r0, r1, r4 - strb r3, [r0] - adds r4, #1 - cmp r4, #0x1b - bls _081309B6 - movs r4, #0 - ldr r3, _081309DC - movs r5, #1 -_081309C6: - adds r1, r2, #0 - ands r1, r5 - cmp r1, #0 - beq _081309E4 - ldr r0, [r3] - ldr r0, [r0, #0x14] - adds r0, #4 - adds r0, r0, r4 - movs r1, #0x64 - b _081309EC - .align 2, 0 -_081309DC: .4byte gUnknown_202414C -_081309E0: .4byte gUnknown_2023D08 -_081309E4: - ldr r0, [r3] - ldr r0, [r0, #0x14] - adds r0, #4 - adds r0, r0, r4 -_081309EC: - strb r1, [r0] - lsrs r2, r2, #1 - adds r4, #1 - cmp r4, #3 - ble _081309C6 - ldrb r0, [r6] - movs r1, #0 - movs r2, #0xff - bl CheckMoveLimitations - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r4, #0 - ldr r5, _08130A98 -_08130A08: - ldr r7, _08130A9C - lsls r0, r4, #2 - adds r0, r0, r7 - ldr r0, [r0] - ands r0, r6 - cmp r0, #0 - beq _08130A22 - ldr r0, [r5] - ldr r0, [r0, #0x14] - adds r0, #4 - adds r0, r0, r4 - movs r1, #0 - strb r1, [r0] -_08130A22: - bl Random - ldr r1, [r5] - ldr r2, [r1, #0x14] - adds r2, #0x18 - adds r2, r2, r4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xf - ands r0, r1 - movs r1, #0x64 - subs r1, r1, r0 - strb r1, [r2] - adds r4, #1 - cmp r4, #3 - ble _08130A08 - ldr r0, _08130A98 - ldr r0, [r0] - ldr r0, [r0, #0x1c] - adds r0, #0x20 - movs r1, #0 - strb r1, [r0] - ldr r0, _08130AA0 - ldr r6, _08130AA4 - ldrb r2, [r6] - strb r2, [r0] - ldr r0, _08130AA8 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08130AB4 - ldr r5, _08130AAC - bl Random - adds r4, r0, #0 - ldrb r0, [r6] - bl GetBattlerSide - movs r3, #2 - adds r1, r3, #0 - ands r1, r4 - movs r2, #1 - eors r0, r2 - adds r1, r1, r0 - strb r1, [r5] - ldr r0, _08130AB0 - ldrb r1, [r0] - ldrb r2, [r5] - lsls r0, r2, #2 - adds r0, r0, r7 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _08130ABC - eors r2, r3 - strb r2, [r5] - b _08130ABC - .align 2, 0 -_08130A98: .4byte gUnknown_202414C -_08130A9C: .4byte gUnknown_82FACB4 -_08130AA0: .4byte gUnknown_203A808 -_08130AA4: .4byte gUnknown_2023D08 -_08130AA8: .4byte gUnknown_2022C90 -_08130AAC: .4byte gUnknown_2023EB0 -_08130AB0: .4byte gUnknown_2023EB4 -_08130AB4: - ldr r0, _08130AD0 - movs r1, #1 - eors r1, r2 - strb r1, [r0] -_08130ABC: - ldr r0, _08130AD4 - ldr r1, [r0] - movs r0, #0x80 - lsls r0, r0, #0x11 - ands r0, r1 - cmp r0, #0 - beq _08130AD8 - bl sub_08186190 - b _08130B3A - .align 2, 0 -_08130AD0: .4byte gUnknown_2023EB0 -_08130AD4: .4byte gUnknown_2022C90 -_08130AD8: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08130AF4 - ldr r0, _08130AF0 - ldr r0, [r0] - ldr r1, [r0, #0x14] - movs r0, #0x80 - lsls r0, r0, #0x17 - str r0, [r1, #0xc] - b _08130BBA - .align 2, 0 -_08130AF0: .4byte gUnknown_202414C -_08130AF4: - movs r0, #0x80 - lsls r0, r0, #3 - ands r0, r1 - cmp r0, #0 - beq _08130B10 - ldr r0, _08130B0C - ldr r0, [r0] - ldr r1, [r0, #0x14] - movs r0, #0x80 - lsls r0, r0, #0x16 - str r0, [r1, #0xc] - b _08130BBA - .align 2, 0 -_08130B0C: .4byte gUnknown_202414C -_08130B10: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08130B2C - ldr r0, _08130B28 - ldr r0, [r0] - ldr r1, [r0, #0x14] - movs r0, #0x80 - lsls r0, r0, #0x18 - str r0, [r1, #0xc] - b _08130BBA - .align 2, 0 -_08130B28: .4byte gUnknown_202414C -_08130B2C: - movs r0, #0x80 - lsls r0, r0, #0xc - ands r0, r1 - cmp r0, #0 - beq _08130B48 - bl GetAiScriptsInBattleFactory -_08130B3A: - ldr r1, _08130B44 - ldr r1, [r1] - ldr r1, [r1, #0x14] - str r0, [r1, #0xc] - b _08130BBA - .align 2, 0 -_08130B44: .4byte gUnknown_202414C -_08130B48: - ldr r0, _08130B5C - ands r0, r1 - cmp r0, #0 - beq _08130B64 - ldr r0, _08130B60 - ldr r0, [r0] - ldr r1, [r0, #0x14] - movs r0, #7 - str r0, [r1, #0xc] - b _08130BBA - .align 2, 0 -_08130B5C: .4byte 0x0C3F0900 -_08130B60: .4byte gUnknown_202414C -_08130B64: - movs r0, #0x80 - lsls r0, r0, #8 - ands r1, r0 - cmp r1, #0 - beq _08130BA4 - ldr r0, _08130B94 - ldr r0, [r0] - ldr r3, [r0, #0x14] - ldr r2, _08130B98 - ldr r0, _08130B9C - ldrh r1, [r0] - lsls r1, r1, #5 - adds r2, #0x14 - adds r1, r1, r2 - ldr r0, _08130BA0 - ldrh r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r2 - ldr r1, [r1] - ldr r0, [r0] - orrs r1, r0 - str r1, [r3, #0xc] - b _08130BBA - .align 2, 0 -_08130B94: .4byte gUnknown_202414C -_08130B98: .4byte gUnknown_82E383C -_08130B9C: .4byte gUnknown_203886A -_08130BA0: .4byte gUnknown_203886C -_08130BA4: - ldr r0, _08130BDC - ldr r0, [r0] - ldr r2, [r0, #0x14] - ldr r1, _08130BE0 - ldr r0, _08130BE4 - ldrh r0, [r0] - lsls r0, r0, #5 - adds r1, #0x14 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r2, #0xc] -_08130BBA: - ldr r0, _08130BE8 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08130BD4 - ldr r0, _08130BDC - ldr r0, [r0] - ldr r2, [r0, #0x14] - ldr r0, [r2, #0xc] - movs r1, #0x80 - orrs r0, r1 - str r0, [r2, #0xc] -_08130BD4: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08130BDC: .4byte gUnknown_202414C -_08130BE0: .4byte gUnknown_82E383C -_08130BE4: .4byte gUnknown_203886A -_08130BE8: .4byte gUnknown_2022C90 - thumb_func_end BattleAI_SetupAIData - - thumb_func_start sub_08130BEC -sub_08130BEC: @ 0x08130BEC - push {lr} - ldr r0, _08130C00 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08130C04 - bl ChooseMoveOrAction_Doubles - b _08130C08 - .align 2, 0 -_08130C00: .4byte gUnknown_2022C90 -_08130C04: - bl ChooseMoveOrAction_Singles -_08130C08: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - thumb_func_end sub_08130BEC - - thumb_func_start ChooseMoveOrAction_Singles -ChooseMoveOrAction_Singles: @ 0x08130C10 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - bl RecordLastUsedMoveByTarget - ldr r1, _08130C78 - ldr r0, [r1] - ldr r0, [r0, #0x14] - ldr r0, [r0, #0xc] - cmp r0, #0 - beq _08130C60 - adds r4, r1, #0 - movs r5, #0 -_08130C2C: - ldr r0, [r4] - ldr r2, [r0, #0x14] - ldr r0, [r2, #0xc] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08130C40 - strb r5, [r2] - bl BattleAI_DoAIProcessing -_08130C40: - ldr r0, [r4] - ldr r1, [r0, #0x14] - ldr r0, [r1, #0xc] - lsrs r0, r0, #1 - str r0, [r1, #0xc] - ldrb r0, [r1, #0x11] - adds r0, #1 - strb r0, [r1, #0x11] - ldr r0, [r4] - ldr r0, [r0, #0x14] - strb r5, [r0, #1] - ldr r0, [r4] - ldr r0, [r0, #0x14] - ldr r0, [r0, #0xc] - cmp r0, #0 - bne _08130C2C -_08130C60: - ldr r1, _08130C78 - ldr r0, [r1] - ldr r3, [r0, #0x14] - ldrb r2, [r3, #0x10] - movs r0, #2 - ands r0, r2 - mov ip, r1 - cmp r0, #0 - beq _08130C7C - movs r0, #4 - b _08130D14 - .align 2, 0 -_08130C78: .4byte gUnknown_202414C -_08130C7C: - movs r0, #4 - ands r0, r2 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - beq _08130C8C - movs r0, #5 - b _08130D14 -_08130C8C: - movs r6, #1 - mov r1, sp - ldrb r0, [r3, #4] - strb r0, [r1] - add r0, sp, #4 - strb r2, [r0] - movs r3, #1 - mov r8, r0 - ldr r1, _08130D20 - ldr r0, _08130D24 - ldrb r2, [r0] - mov r5, sp - mov r7, r8 - movs r0, #0x58 - muls r0, r2, r0 - adds r1, r1, r0 - adds r4, r1, #0 - adds r4, #0xe -_08130CB0: - ldrh r0, [r4] - cmp r0, #0 - beq _08130CFA - ldrb r1, [r5] - mov r2, ip - ldr r0, [r2] - ldr r0, [r0, #0x14] - adds r0, #4 - adds r2, r0, r3 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r1, r0 - bne _08130CDE - mov r0, sp - adds r1, r0, r6 - ldrb r0, [r2] - strb r0, [r1] - adds r1, r6, #0 - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r1, r7, r1 - strb r3, [r1] -_08130CDE: - ldrb r1, [r5] - mov r2, ip - ldr r0, [r2] - ldr r0, [r0, #0x14] - adds r0, #4 - adds r2, r0, r3 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r1, r0 - bge _08130CFA - movs r6, #1 - ldrb r0, [r2] - strb r0, [r5] - strb r3, [r7] -_08130CFA: - adds r4, #2 - adds r3, #1 - cmp r3, #3 - ble _08130CB0 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r6, #0 - bl __modsi3 - add r0, r8 - ldrb r0, [r0] -_08130D14: - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08130D20: .4byte gUnknown_2023D28 -_08130D24: .4byte gUnknown_203A808 - thumb_func_end ChooseMoveOrAction_Singles - - thumb_func_start ChooseMoveOrAction_Doubles -ChooseMoveOrAction_Doubles: @ 0x08130D28 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x24 - movs r0, #0 - mov r8, r0 - mov r1, sp - adds r1, #0xc - str r1, [sp, #0x1c] - mov r2, sp - adds r2, #8 - str r2, [sp, #0x18] - str r1, [sp, #0x20] - mov sl, sp -_08130D48: - ldr r0, _08130D70 - ldrb r0, [r0] - cmp r8, r0 - beq _08130D62 - movs r0, #0x58 - mov r7, r8 - muls r7, r0, r7 - adds r0, r7, #0 - ldr r1, _08130D74 - adds r0, r0, r1 - ldrh r0, [r0, #0x28] - cmp r0, #0 - bne _08130D7C -_08130D62: - movs r0, #0xff - ldr r2, [sp, #0x20] - strb r0, [r2] - ldr r0, _08130D78 - mov r7, sl - strh r0, [r7] - b _08130EE2 - .align 2, 0 -_08130D70: .4byte gUnknown_203A808 -_08130D74: .4byte gUnknown_2023D28 -_08130D78: .4byte 0x0000FFFF -_08130D7C: - ldr r0, _08130D9C - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xa - ands r0, r1 - cmp r0, #0 - beq _08130DA4 - ldr r0, _08130DA0 - ldr r0, [r0] - adds r0, #0x92 - ldrb r0, [r0] - lsrs r0, r0, #4 - bl BattleAI_SetupAIData - b _08130DAA - .align 2, 0 -_08130D9C: .4byte gUnknown_2022C90 -_08130DA0: .4byte gUnknown_2024140 -_08130DA4: - movs r0, #0xf - bl BattleAI_SetupAIData -_08130DAA: - ldr r0, _08130E24 - mov r1, r8 - strb r1, [r0] - movs r1, #1 - mov r2, r8 - ands r2, r1 - ldr r0, _08130E28 - ldrb r0, [r0] - ands r1, r0 - cmp r2, r1 - beq _08130DC4 - bl RecordLastUsedMoveByTarget -_08130DC4: - ldr r2, _08130E2C - ldr r0, [r2] - ldr r0, [r0, #0x14] - movs r1, #0 - strb r1, [r0, #0x11] - ldr r0, [r2] - ldr r0, [r0, #0x14] - strb r1, [r0, #1] - ldr r0, [r2] - ldr r0, [r0, #0x14] - ldr r4, [r0, #0xc] - mov sb, r2 - cmp r4, #0 - beq _08130E0C - mov r5, sb - movs r6, #0 -_08130DE4: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _08130DF6 - ldr r0, [r5] - ldr r0, [r0, #0x14] - strb r6, [r0] - bl BattleAI_DoAIProcessing -_08130DF6: - asrs r4, r4, #1 - ldr r0, [r5] - ldr r1, [r0, #0x14] - ldrb r0, [r1, #0x11] - adds r0, #1 - strb r0, [r1, #0x11] - ldr r0, [r5] - ldr r0, [r0, #0x14] - strb r6, [r0, #1] - cmp r4, #0 - bne _08130DE4 -_08130E0C: - mov r2, sb - ldr r0, [r2] - ldr r3, [r0, #0x14] - ldrb r1, [r3, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08130E30 - movs r0, #4 - ldr r7, [sp, #0x20] - strb r0, [r7] - b _08130EE2 - .align 2, 0 -_08130E24: .4byte gUnknown_2023EB0 -_08130E28: .4byte gUnknown_203A808 -_08130E2C: .4byte gUnknown_202414C -_08130E30: - movs r0, #4 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - beq _08130E44 - movs r0, #5 - ldr r1, [sp, #0x20] - strb r0, [r1] - b _08130EE2 -_08130E44: - add r1, sp, #0x10 - ldrb r0, [r3, #4] - strb r0, [r1] - add r0, sp, #0x14 - strb r2, [r0] - movs r5, #1 - movs r3, #1 - adds r6, r1, #0 - ldr r0, _08130F6C - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - ldr r2, _08130F70 - adds r0, r0, r2 - adds r4, r0, #2 - add r7, sp, #0x14 -_08130E64: - ldrh r0, [r4] - cmp r0, #0 - beq _08130EA6 - ldrb r1, [r6] - mov r2, sb - ldr r0, [r2] - ldr r0, [r0, #0x14] - adds r0, #4 - adds r2, r0, r3 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r1, r0 - bne _08130E8A - adds r0, r6, r5 - ldrb r1, [r2] - strb r1, [r0] - adds r0, r7, r5 - strb r3, [r0] - adds r5, #1 -_08130E8A: - ldrb r1, [r6] - mov r2, sb - ldr r0, [r2] - ldr r0, [r0, #0x14] - adds r0, #4 - adds r2, r0, r3 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r1, r0 - bge _08130EA6 - ldrb r0, [r2] - strb r0, [r6] - strb r3, [r7] - movs r5, #1 -_08130EA6: - adds r4, #2 - adds r3, #1 - cmp r3, #3 - ble _08130E64 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r5, #0 - bl __modsi3 - add r0, sp - adds r0, #0x14 - ldrb r0, [r0] - ldr r7, [sp, #0x20] - strb r0, [r7] - ldrb r2, [r6] - mov r0, sl - strh r2, [r0] - ldr r0, _08130F6C - ldrb r1, [r0] - movs r0, #2 - eors r0, r1 - cmp r8, r0 - bne _08130EE2 - cmp r2, #0x63 - bgt _08130EE2 - ldr r0, _08130F74 - mov r1, sl - strh r0, [r1] -_08130EE2: - ldr r2, [sp, #0x20] - adds r2, #1 - str r2, [sp, #0x20] - movs r7, #2 - add sl, r7 - movs r0, #1 - add r8, r0 - mov r1, r8 - cmp r1, #3 - bgt _08130EF8 - b _08130D48 -_08130EF8: - mov r0, sp - ldrh r5, [r0] - movs r0, #0 - ldr r2, [sp, #0x18] - strb r0, [r2] - movs r4, #1 - mov r8, r4 - ldr r6, _08130F78 - ldr r3, [sp, #0x18] - mov r1, sp - adds r1, #2 -_08130F0E: - lsls r0, r5, #0x10 - asrs r2, r0, #0x10 - movs r7, #0 - ldrsh r0, [r1, r7] - cmp r2, r0 - bne _08130F22 - adds r0, r3, r4 - mov r7, r8 - strb r7, [r0] - adds r4, #1 -_08130F22: - movs r7, #0 - ldrsh r0, [r1, r7] - cmp r2, r0 - bge _08130F32 - ldrh r5, [r1] - mov r0, r8 - strb r0, [r3] - movs r4, #1 -_08130F32: - adds r1, #2 - movs r2, #1 - add r8, r2 - mov r7, r8 - cmp r7, #3 - ble _08130F0E - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r4, #0 - bl __modsi3 - ldr r1, [sp, #0x18] - adds r0, r1, r0 - ldrb r0, [r0] - strb r0, [r6] - ldrb r0, [r6] - ldr r2, [sp, #0x1c] - adds r0, r2, r0 - ldrb r0, [r0] - add sp, #0x24 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08130F6C: .4byte gUnknown_203A808 -_08130F70: .4byte gUnknown_2023D34 -_08130F74: .4byte 0x0000FFFF -_08130F78: .4byte gUnknown_2023EB0 - thumb_func_end ChooseMoveOrAction_Doubles - - thumb_func_start BattleAI_DoAIProcessing -BattleAI_DoAIProcessing: @ 0x08130F7C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r7, _08130FF4 - ldr r0, [r7] - ldr r0, [r0, #0x14] - ldrb r0, [r0] - adds r6, r7, #0 - cmp r0, #2 - bne _08130F94 - b _0813109A -_08130F94: - mov sb, r7 - ldr r0, _08130FF8 - mov r8, r0 -_08130F9A: - mov r1, sb - ldr r0, [r1] - ldr r2, [r0, #0x14] - ldrb r0, [r2] - cmp r0, #1 - beq _08131008 - cmp r0, #1 - bgt _0813108E - cmp r0, #0 - bne _0813108E - ldr r1, _08130FFC - ldrb r0, [r2, #0x11] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - mov r1, r8 - str r0, [r1] - ldr r5, _08131000 - ldrb r4, [r2, #1] - ldr r0, _08131004 - ldrb r1, [r0] - movs r0, #0x58 - adds r3, r1, #0 - muls r3, r0, r3 - adds r0, r4, r3 - adds r1, r5, #0 - adds r1, #0x24 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _08130FE4 - lsls r0, r4, #1 - adds r0, r0, r3 - adds r1, r5, #0 - adds r1, #0xc - adds r0, r0, r1 - ldrh r0, [r0] -_08130FE4: - strh r0, [r2, #2] - ldr r0, [r6] - ldr r1, [r0, #0x14] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0813108E - .align 2, 0 -_08130FF4: .4byte gUnknown_202414C -_08130FF8: .4byte gUnknown_203A804 -_08130FFC: .4byte gUnknown_828A480 -_08131000: .4byte gUnknown_2023D28 -_08131004: .4byte gUnknown_203A808 -_08131008: - ldrh r1, [r2, #2] - cmp r1, #0 - beq _08131028 - ldr r1, _08131024 - mov r2, r8 - ldr r0, [r2] - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - b _0813103E - .align 2, 0 -_08131024: .4byte gUnknown_858F64C -_08131028: - adds r0, r2, #4 - ldrb r2, [r2, #1] - adds r0, r0, r2 - strb r1, [r0] - mov r1, sb - ldr r0, [r1] - ldr r2, [r0, #0x14] - ldrb r1, [r2, #0x10] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #0x10] -_0813103E: - ldr r2, _08131074 - ldr r0, [r2] - ldr r3, [r0, #0x14] - ldrb r1, [r3, #0x10] - movs r0, #1 - ands r0, r1 - adds r6, r2, #0 - cmp r0, #0 - beq _0813108E - ldrb r0, [r3, #1] - adds r0, #1 - strb r0, [r3, #1] - ldr r0, [r6] - ldr r2, [r0, #0x14] - ldrb r0, [r2, #1] - cmp r0, #3 - bhi _08131078 - ldrb r1, [r2, #0x10] - movs r0, #8 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _08131078 - strb r0, [r2] - b _08131082 - .align 2, 0 -_08131074: .4byte gUnknown_202414C -_08131078: - ldr r0, [r6] - ldr r1, [r0, #0x14] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_08131082: - ldr r0, [r6] - ldr r2, [r0, #0x14] - ldrb r1, [r2, #0x10] - movs r0, #0xfe - ands r0, r1 - strb r0, [r2, #0x10] -_0813108E: - ldr r0, [r7] - ldr r0, [r0, #0x14] - ldrb r0, [r0] - cmp r0, #2 - beq _0813109A - b _08130F9A -_0813109A: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BattleAI_DoAIProcessing - - thumb_func_start RecordLastUsedMoveByTarget -RecordLastUsedMoveByTarget: @ 0x081310A8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r7, #0 - ldr r4, _081310F4 - ldr r0, [r4] - ldr r2, [r0, #0x18] - ldr r3, _081310F8 - ldrb r1, [r3] - lsls r0, r1, #4 - adds r2, r2, r0 - ldr r5, _081310FC - lsls r1, r1, #1 - adds r1, r1, r5 - ldrh r0, [r2] - mov r8, r4 - mov ip, r3 - ldrh r1, [r1] - cmp r0, r1 - beq _08131118 - adds r6, r5, #0 - movs r5, #0 -_081310D4: - mov r1, r8 - ldr r0, [r1] - ldr r4, [r0, #0x18] - mov r0, ip - ldrb r1, [r0] - lsls r3, r1, #4 - adds r0, r5, r3 - adds r2, r4, r0 - ldrh r0, [r2] - cmp r0, #0 - bne _08131100 - lsls r0, r1, #1 - adds r0, r0, r6 - ldrh r0, [r0] - strh r0, [r2] - b _08131118 - .align 2, 0 -_081310F4: .4byte gUnknown_202414C -_081310F8: .4byte gUnknown_2023EB0 -_081310FC: .4byte gUnknown_2023EEC -_08131100: - adds r5, #2 - adds r7, #1 - cmp r7, #3 - bgt _08131118 - adds r0, r5, r3 - adds r0, r4, r0 - lsls r1, r1, #1 - adds r1, r1, r6 - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - bne _081310D4 -_08131118: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordLastUsedMoveByTarget - - thumb_func_start ClearBattlerMoveHistory -ClearBattlerMoveHistory: @ 0x08131124 - push {r4, lr} - lsls r0, r0, #0x18 - ldr r4, _08131148 - movs r3, #0 - lsrs r1, r0, #0x14 - movs r2, #3 -_08131130: - ldr r0, [r4] - ldr r0, [r0, #0x18] - adds r0, r0, r1 - strh r3, [r0] - adds r1, #2 - subs r2, #1 - cmp r2, #0 - bge _08131130 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08131148: .4byte gUnknown_202414C - thumb_func_end ClearBattlerMoveHistory - - thumb_func_start RecordAbilityBattle -RecordAbilityBattle: @ 0x0813114C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08131160 - ldr r2, [r2] - ldr r2, [r2, #0x18] - adds r2, #0x40 - adds r2, r2, r0 - strb r1, [r2] - bx lr - .align 2, 0 -_08131160: .4byte gUnknown_202414C - thumb_func_end RecordAbilityBattle - - thumb_func_start ClearBattlerAbilityHistory -ClearBattlerAbilityHistory: @ 0x08131164 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08131178 - ldr r1, [r1] - ldr r1, [r1, #0x18] - adds r1, #0x40 - adds r1, r1, r0 - movs r0, #0 - strb r0, [r1] - bx lr - .align 2, 0 -_08131178: .4byte gUnknown_202414C - thumb_func_end ClearBattlerAbilityHistory - - thumb_func_start RecordItemEffectBattle -RecordItemEffectBattle: @ 0x0813117C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08131190 - ldr r2, [r2] - ldr r2, [r2, #0x18] - adds r2, #0x44 - adds r2, r2, r0 - strb r1, [r2] - bx lr - .align 2, 0 -_08131190: .4byte gUnknown_202414C - thumb_func_end RecordItemEffectBattle - - thumb_func_start ClearBattlerItemEffectHistory -ClearBattlerItemEffectHistory: @ 0x08131194 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081311A8 - ldr r1, [r1] - ldr r1, [r1, #0x18] - adds r1, #0x44 - adds r1, r1, r0 - movs r0, #0 - strb r0, [r1] - bx lr - .align 2, 0 -_081311A8: .4byte gUnknown_202414C - thumb_func_end ClearBattlerItemEffectHistory - - thumb_func_start BattleAICmd_if_random_less_than -BattleAICmd_if_random_less_than: @ 0x081311AC - push {lr} - bl Random - lsls r0, r0, #0x10 - movs r1, #0xff - lsls r1, r1, #0x10 - ldr r3, _081311E0 - ldr r2, [r3] - ands r1, r0 - lsrs r1, r1, #0x10 - ldrb r0, [r2, #1] - cmp r1, r0 - bhs _081311E4 - ldrb r1, [r2, #2] - ldrb r0, [r2, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _081311E8 - .align 2, 0 -_081311E0: .4byte gUnknown_203A804 -_081311E4: - adds r0, r2, #6 - str r0, [r3] -_081311E8: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_random_less_than - - thumb_func_start BattleAICmd_if_random_greater_than -BattleAICmd_if_random_greater_than: @ 0x081311EC - push {lr} - bl Random - lsls r0, r0, #0x10 - movs r1, #0xff - lsls r1, r1, #0x10 - ldr r3, _08131220 - ldr r2, [r3] - ands r1, r0 - lsrs r1, r1, #0x10 - ldrb r0, [r2, #1] - cmp r1, r0 - bls _08131224 - ldrb r1, [r2, #2] - ldrb r0, [r2, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08131228 - .align 2, 0 -_08131220: .4byte gUnknown_203A804 -_08131224: - adds r0, r2, #6 - str r0, [r3] -_08131228: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_random_greater_than - - thumb_func_start BattleAICmd_if_random_equal -BattleAICmd_if_random_equal: @ 0x0813122C - push {lr} - bl Random - lsls r0, r0, #0x10 - movs r1, #0xff - lsls r1, r1, #0x10 - ldr r3, _08131260 - ldr r2, [r3] - ands r1, r0 - lsrs r1, r1, #0x10 - ldrb r0, [r2, #1] - cmp r1, r0 - bne _08131264 - ldrb r1, [r2, #2] - ldrb r0, [r2, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08131268 - .align 2, 0 -_08131260: .4byte gUnknown_203A804 -_08131264: - adds r0, r2, #6 - str r0, [r3] -_08131268: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_random_equal - - thumb_func_start BattleAICmd_if_random_not_equal -BattleAICmd_if_random_not_equal: @ 0x0813126C - push {lr} - bl Random - lsls r0, r0, #0x10 - movs r1, #0xff - lsls r1, r1, #0x10 - ldr r3, _081312A0 - ldr r2, [r3] - ands r1, r0 - lsrs r1, r1, #0x10 - ldrb r0, [r2, #1] - cmp r1, r0 - beq _081312A4 - ldrb r1, [r2, #2] - ldrb r0, [r2, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _081312A8 - .align 2, 0 -_081312A0: .4byte gUnknown_203A804 -_081312A4: - adds r0, r2, #6 - str r0, [r3] -_081312A8: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_random_not_equal - - thumb_func_start BattleAICmd_score -BattleAICmd_score: @ 0x081312AC - push {r4, lr} - ldr r2, _081312E8 - ldr r0, [r2] - ldr r0, [r0, #0x14] - adds r1, r0, #4 - ldrb r0, [r0, #1] - adds r1, r1, r0 - ldr r3, _081312EC - ldr r0, [r3] - ldrb r0, [r0, #1] - ldrb r4, [r1] - adds r0, r0, r4 - strb r0, [r1] - ldr r0, [r2] - ldr r1, [r0, #0x14] - adds r0, r1, #4 - ldrb r1, [r1, #1] - adds r1, r0, r1 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bge _081312DC - movs r0, #0 - strb r0, [r1] -_081312DC: - ldr r0, [r3] - adds r0, #2 - str r0, [r3] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081312E8: .4byte gUnknown_202414C -_081312EC: .4byte gUnknown_203A804 - thumb_func_end BattleAICmd_score - - thumb_func_start BattleAICmd_if_hp_less_than -BattleAICmd_if_hp_less_than: @ 0x081312F0 - push {r4, lr} - ldr r0, _08131304 - ldr r1, [r0] - ldrb r1, [r1, #1] - adds r4, r0, #0 - cmp r1, #1 - bne _0813130C - ldr r0, _08131308 - b _0813130E - .align 2, 0 -_08131304: .4byte gUnknown_203A804 -_08131308: .4byte gUnknown_203A808 -_0813130C: - ldr r0, _08131344 -_0813130E: - ldrb r1, [r0] - ldr r2, _08131348 - movs r0, #0x58 - muls r1, r0, r1 - adds r1, r1, r2 - ldrh r2, [r1, #0x28] - movs r0, #0x64 - muls r0, r2, r0 - ldrh r1, [r1, #0x2c] - bl __divsi3 - ldr r2, [r4] - ldrb r1, [r2, #2] - cmp r0, r1 - bhs _0813134C - ldrb r1, [r2, #3] - ldrb r0, [r2, #4] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #6] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _08131350 - .align 2, 0 -_08131344: .4byte gUnknown_2023EB0 -_08131348: .4byte gUnknown_2023D28 -_0813134C: - adds r0, r2, #7 - str r0, [r4] -_08131350: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BattleAICmd_if_hp_less_than - - thumb_func_start sub_08131358 -sub_08131358: @ 0x08131358 - push {r4, lr} - ldr r0, _0813136C - ldr r1, [r0] - ldrb r1, [r1, #1] - adds r4, r0, #0 - cmp r1, #1 - bne _08131374 - ldr r0, _08131370 - b _08131376 - .align 2, 0 -_0813136C: .4byte gUnknown_203A804 -_08131370: .4byte gUnknown_203A808 -_08131374: - ldr r0, _081313AC -_08131376: - ldrb r1, [r0] - ldr r2, _081313B0 - movs r0, #0x58 - muls r1, r0, r1 - adds r1, r1, r2 - ldrh r2, [r1, #0x28] - movs r0, #0x64 - muls r0, r2, r0 - ldrh r1, [r1, #0x2c] - bl __divsi3 - ldr r2, [r4] - ldrb r1, [r2, #2] - cmp r0, r1 - bls _081313B4 - ldrb r1, [r2, #3] - ldrb r0, [r2, #4] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #6] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _081313B8 - .align 2, 0 -_081313AC: .4byte gUnknown_2023EB0 -_081313B0: .4byte gUnknown_2023D28 -_081313B4: - adds r0, r2, #7 - str r0, [r4] -_081313B8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08131358 - - thumb_func_start BattleAICmd_if_hp_equal -BattleAICmd_if_hp_equal: @ 0x081313C0 - push {r4, lr} - ldr r0, _081313D4 - ldr r1, [r0] - ldrb r1, [r1, #1] - adds r4, r0, #0 - cmp r1, #1 - bne _081313DC - ldr r0, _081313D8 - b _081313DE - .align 2, 0 -_081313D4: .4byte gUnknown_203A804 -_081313D8: .4byte gUnknown_203A808 -_081313DC: - ldr r0, _08131414 -_081313DE: - ldrb r1, [r0] - ldr r2, _08131418 - movs r0, #0x58 - muls r1, r0, r1 - adds r1, r1, r2 - ldrh r2, [r1, #0x28] - movs r0, #0x64 - muls r0, r2, r0 - ldrh r1, [r1, #0x2c] - bl __divsi3 - ldr r2, [r4] - ldrb r1, [r2, #2] - cmp r0, r1 - bne _0813141C - ldrb r1, [r2, #3] - ldrb r0, [r2, #4] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #6] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _08131420 - .align 2, 0 -_08131414: .4byte gUnknown_2023EB0 -_08131418: .4byte gUnknown_2023D28 -_0813141C: - adds r0, r2, #7 - str r0, [r4] -_08131420: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BattleAICmd_if_hp_equal - - thumb_func_start BattleAICmd_if_hp_not_equal -BattleAICmd_if_hp_not_equal: @ 0x08131428 - push {r4, lr} - ldr r0, _0813143C - ldr r1, [r0] - ldrb r1, [r1, #1] - adds r4, r0, #0 - cmp r1, #1 - bne _08131444 - ldr r0, _08131440 - b _08131446 - .align 2, 0 -_0813143C: .4byte gUnknown_203A804 -_08131440: .4byte gUnknown_203A808 -_08131444: - ldr r0, _0813147C -_08131446: - ldrb r1, [r0] - ldr r2, _08131480 - movs r0, #0x58 - muls r1, r0, r1 - adds r1, r1, r2 - ldrh r2, [r1, #0x28] - movs r0, #0x64 - muls r0, r2, r0 - ldrh r1, [r1, #0x2c] - bl __divsi3 - ldr r2, [r4] - ldrb r1, [r2, #2] - cmp r0, r1 - beq _08131484 - ldrb r1, [r2, #3] - ldrb r0, [r2, #4] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #6] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _08131488 - .align 2, 0 -_0813147C: .4byte gUnknown_2023EB0 -_08131480: .4byte gUnknown_2023D28 -_08131484: - adds r0, r2, #7 - str r0, [r4] -_08131488: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BattleAICmd_if_hp_not_equal - - thumb_func_start BattleAICmd_if_status -BattleAICmd_if_status: @ 0x08131490 - push {r4, r5, lr} - ldr r0, _081314A4 - ldr r1, [r0] - ldrb r1, [r1, #1] - adds r5, r0, #0 - cmp r1, #1 - bne _081314AC - ldr r0, _081314A8 - b _081314AE - .align 2, 0 -_081314A4: .4byte gUnknown_203A804 -_081314A8: .4byte gUnknown_203A808 -_081314AC: - ldr r0, _081314F0 -_081314AE: - ldrb r4, [r0] - ldr r3, [r5] - ldrb r2, [r3, #2] - ldrb r0, [r3, #3] - lsls r0, r0, #8 - orrs r2, r0 - ldrb r0, [r3, #4] - lsls r0, r0, #0x10 - orrs r2, r0 - ldrb r0, [r3, #5] - lsls r0, r0, #0x18 - orrs r2, r0 - ldr r1, _081314F4 - movs r0, #0x58 - muls r0, r4, r0 - adds r1, #0x4c - adds r0, r0, r1 - ldr r0, [r0] - ands r0, r2 - cmp r0, #0 - beq _081314F8 - ldrb r1, [r3, #6] - ldrb r0, [r3, #7] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r3, #8] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r3, #9] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r5] - b _081314FE - .align 2, 0 -_081314F0: .4byte gUnknown_2023EB0 -_081314F4: .4byte gUnknown_2023D28 -_081314F8: - adds r0, r3, #0 - adds r0, #0xa - str r0, [r5] -_081314FE: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_status - - thumb_func_start BattleAICmd_if_not_status -BattleAICmd_if_not_status: @ 0x08131504 - push {r4, r5, lr} - ldr r0, _08131518 - ldr r1, [r0] - ldrb r1, [r1, #1] - adds r5, r0, #0 - cmp r1, #1 - bne _08131520 - ldr r0, _0813151C - b _08131522 - .align 2, 0 -_08131518: .4byte gUnknown_203A804 -_0813151C: .4byte gUnknown_203A808 -_08131520: - ldr r0, _08131564 -_08131522: - ldrb r4, [r0] - ldr r3, [r5] - ldrb r2, [r3, #2] - ldrb r0, [r3, #3] - lsls r0, r0, #8 - orrs r2, r0 - ldrb r0, [r3, #4] - lsls r0, r0, #0x10 - orrs r2, r0 - ldrb r0, [r3, #5] - lsls r0, r0, #0x18 - orrs r2, r0 - ldr r1, _08131568 - movs r0, #0x58 - muls r0, r4, r0 - adds r1, #0x4c - adds r0, r0, r1 - ldr r0, [r0] - ands r0, r2 - cmp r0, #0 - bne _0813156C - ldrb r1, [r3, #6] - ldrb r0, [r3, #7] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r3, #8] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r3, #9] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r5] - b _08131572 - .align 2, 0 -_08131564: .4byte gUnknown_2023EB0 -_08131568: .4byte gUnknown_2023D28 -_0813156C: - adds r0, r3, #0 - adds r0, #0xa - str r0, [r5] -_08131572: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_not_status - - thumb_func_start BattleAICmd_if_status2 -BattleAICmd_if_status2: @ 0x08131578 - push {r4, r5, lr} - ldr r0, _0813158C - ldr r1, [r0] - ldrb r1, [r1, #1] - adds r5, r0, #0 - cmp r1, #1 - bne _08131594 - ldr r0, _08131590 - b _08131596 - .align 2, 0 -_0813158C: .4byte gUnknown_203A804 -_08131590: .4byte gUnknown_203A808 -_08131594: - ldr r0, _081315D8 -_08131596: - ldrb r4, [r0] - ldr r3, [r5] - ldrb r2, [r3, #2] - ldrb r0, [r3, #3] - lsls r0, r0, #8 - orrs r2, r0 - ldrb r0, [r3, #4] - lsls r0, r0, #0x10 - orrs r2, r0 - ldrb r0, [r3, #5] - lsls r0, r0, #0x18 - orrs r2, r0 - ldr r1, _081315DC - movs r0, #0x58 - muls r0, r4, r0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r0, [r0] - ands r0, r2 - cmp r0, #0 - beq _081315E0 - ldrb r1, [r3, #6] - ldrb r0, [r3, #7] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r3, #8] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r3, #9] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r5] - b _081315E6 - .align 2, 0 -_081315D8: .4byte gUnknown_2023EB0 -_081315DC: .4byte gUnknown_2023D28 -_081315E0: - adds r0, r3, #0 - adds r0, #0xa - str r0, [r5] -_081315E6: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_status2 - - thumb_func_start BattleAICmd_if_not_status2 -BattleAICmd_if_not_status2: @ 0x081315EC - push {r4, r5, lr} - ldr r0, _08131600 - ldr r1, [r0] - ldrb r1, [r1, #1] - adds r5, r0, #0 - cmp r1, #1 - bne _08131608 - ldr r0, _08131604 - b _0813160A - .align 2, 0 -_08131600: .4byte gUnknown_203A804 -_08131604: .4byte gUnknown_203A808 -_08131608: - ldr r0, _0813164C -_0813160A: - ldrb r4, [r0] - ldr r3, [r5] - ldrb r2, [r3, #2] - ldrb r0, [r3, #3] - lsls r0, r0, #8 - orrs r2, r0 - ldrb r0, [r3, #4] - lsls r0, r0, #0x10 - orrs r2, r0 - ldrb r0, [r3, #5] - lsls r0, r0, #0x18 - orrs r2, r0 - ldr r1, _08131650 - movs r0, #0x58 - muls r0, r4, r0 - adds r1, #0x50 - adds r0, r0, r1 - ldr r0, [r0] - ands r0, r2 - cmp r0, #0 - bne _08131654 - ldrb r1, [r3, #6] - ldrb r0, [r3, #7] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r3, #8] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r3, #9] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r5] - b _0813165A - .align 2, 0 -_0813164C: .4byte gUnknown_2023EB0 -_08131650: .4byte gUnknown_2023D28 -_08131654: - adds r0, r3, #0 - adds r0, #0xa - str r0, [r5] -_0813165A: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_not_status2 - - thumb_func_start DisplayBerryPowderVendorMenu -DisplayBerryPowderVendorMenu: @ 0x08131660 - push {r4, r5, lr} - ldr r0, _08131674 - ldr r1, [r0] - ldrb r1, [r1, #1] - adds r5, r0, #0 - cmp r1, #1 - bne _0813167C - ldr r0, _08131678 - b _0813167E - .align 2, 0 -_08131674: .4byte gUnknown_203A804 -_08131678: .4byte gUnknown_203A808 -_0813167C: - ldr r0, _081316BC -_0813167E: - ldrb r4, [r0] - ldr r3, [r5] - ldrb r1, [r3, #2] - ldrb r0, [r3, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r3, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r3, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - ldr r2, _081316C0 - lsls r0, r4, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r0, r1 - cmp r0, #0 - beq _081316C4 - ldrb r1, [r3, #6] - ldrb r0, [r3, #7] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r3, #8] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r3, #9] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r5] - b _081316CA - .align 2, 0 -_081316BC: .4byte gUnknown_2023EB0 -_081316C0: .4byte gUnknown_2023F50 -_081316C4: - adds r0, r3, #0 - adds r0, #0xa - str r0, [r5] -_081316CA: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end DisplayBerryPowderVendorMenu - - thumb_func_start BattleAICmd_if_not_status3 -BattleAICmd_if_not_status3: @ 0x081316D0 - push {r4, r5, lr} - ldr r0, _081316E4 - ldr r1, [r0] - ldrb r1, [r1, #1] - adds r5, r0, #0 - cmp r1, #1 - bne _081316EC - ldr r0, _081316E8 - b _081316EE - .align 2, 0 -_081316E4: .4byte gUnknown_203A804 -_081316E8: .4byte gUnknown_203A808 -_081316EC: - ldr r0, _0813172C -_081316EE: - ldrb r4, [r0] - ldr r3, [r5] - ldrb r1, [r3, #2] - ldrb r0, [r3, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r3, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r3, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - ldr r2, _08131730 - lsls r0, r4, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r0, r1 - cmp r0, #0 - bne _08131734 - ldrb r1, [r3, #6] - ldrb r0, [r3, #7] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r3, #8] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r3, #9] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r5] - b _0813173A - .align 2, 0 -_0813172C: .4byte gUnknown_2023EB0 -_08131730: .4byte gUnknown_2023F50 -_08131734: - adds r0, r3, #0 - adds r0, #0xa - str r0, [r5] -_0813173A: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_not_status3 - - thumb_func_start BattleAICmd_if_side_affecting -BattleAICmd_if_side_affecting: @ 0x08131740 - push {r4, lr} - ldr r0, _08131750 - ldr r0, [r0] - ldrb r0, [r0, #1] - cmp r0, #1 - bne _08131758 - ldr r0, _08131754 - b _0813175A - .align 2, 0 -_08131750: .4byte gUnknown_203A804 -_08131754: .4byte gUnknown_203A808 -_08131758: - ldr r0, _081317A4 -_0813175A: - ldrb r0, [r0] - bl sub_080A630C - movs r2, #1 - ands r2, r0 - ldr r4, _081317A8 - ldr r3, [r4] - ldrb r1, [r3, #2] - ldrb r0, [r3, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r3, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r3, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - ldr r0, _081317AC - lsls r2, r2, #1 - adds r2, r2, r0 - ldrh r0, [r2] - ands r0, r1 - cmp r0, #0 - beq _081317B0 - ldrb r1, [r3, #6] - ldrb r0, [r3, #7] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r3, #8] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r3, #9] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _081317B6 - .align 2, 0 -_081317A4: .4byte gUnknown_2023EB0 -_081317A8: .4byte gUnknown_203A804 -_081317AC: .4byte gUnknown_2023F32 -_081317B0: - adds r0, r3, #0 - adds r0, #0xa - str r0, [r4] -_081317B6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_side_affecting - - thumb_func_start BattleAICmd_if_not_side_affecting -BattleAICmd_if_not_side_affecting: @ 0x081317BC - push {r4, lr} - ldr r0, _081317CC - ldr r0, [r0] - ldrb r0, [r0, #1] - cmp r0, #1 - bne _081317D4 - ldr r0, _081317D0 - b _081317D6 - .align 2, 0 -_081317CC: .4byte gUnknown_203A804 -_081317D0: .4byte gUnknown_203A808 -_081317D4: - ldr r0, _08131820 -_081317D6: - ldrb r0, [r0] - bl sub_080A630C - movs r2, #1 - ands r2, r0 - ldr r4, _08131824 - ldr r3, [r4] - ldrb r1, [r3, #2] - ldrb r0, [r3, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r3, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r3, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - ldr r0, _08131828 - lsls r2, r2, #1 - adds r2, r2, r0 - ldrh r0, [r2] - ands r0, r1 - cmp r0, #0 - bne _0813182C - ldrb r1, [r3, #6] - ldrb r0, [r3, #7] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r3, #8] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r3, #9] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _08131832 - .align 2, 0 -_08131820: .4byte gUnknown_2023EB0 -_08131824: .4byte gUnknown_203A804 -_08131828: .4byte gUnknown_2023F32 -_0813182C: - adds r0, r3, #0 - adds r0, #0xa - str r0, [r4] -_08131832: - pop {r4} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_not_side_affecting - - thumb_func_start BattleAICmd_if_less_than -BattleAICmd_if_less_than: @ 0x08131838 - push {lr} - ldr r0, _08131864 - ldr r0, [r0] - ldr r0, [r0, #0x14] - ldr r3, _08131868 - ldr r2, [r3] - ldr r0, [r0, #8] - ldrb r1, [r2, #1] - cmp r0, r1 - bhs _0813186C - ldrb r1, [r2, #2] - ldrb r0, [r2, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08131870 - .align 2, 0 -_08131864: .4byte gUnknown_202414C -_08131868: .4byte gUnknown_203A804 -_0813186C: - adds r0, r2, #6 - str r0, [r3] -_08131870: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_less_than - - thumb_func_start BattleAICmd_if_more_than -BattleAICmd_if_more_than: @ 0x08131874 - push {lr} - ldr r0, _081318A0 - ldr r0, [r0] - ldr r0, [r0, #0x14] - ldr r3, _081318A4 - ldr r2, [r3] - ldr r0, [r0, #8] - ldrb r1, [r2, #1] - cmp r0, r1 - bls _081318A8 - ldrb r1, [r2, #2] - ldrb r0, [r2, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _081318AC - .align 2, 0 -_081318A0: .4byte gUnknown_202414C -_081318A4: .4byte gUnknown_203A804 -_081318A8: - adds r0, r2, #6 - str r0, [r3] -_081318AC: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_more_than - - thumb_func_start BattleAICmd_if_equal -BattleAICmd_if_equal: @ 0x081318B0 - push {lr} - ldr r0, _081318DC - ldr r0, [r0] - ldr r0, [r0, #0x14] - ldr r3, _081318E0 - ldr r2, [r3] - ldr r0, [r0, #8] - ldrb r1, [r2, #1] - cmp r0, r1 - bne _081318E4 - ldrb r1, [r2, #2] - ldrb r0, [r2, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _081318E8 - .align 2, 0 -_081318DC: .4byte gUnknown_202414C -_081318E0: .4byte gUnknown_203A804 -_081318E4: - adds r0, r2, #6 - str r0, [r3] -_081318E8: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_equal - - thumb_func_start BattleAICmd_if_not_equal -BattleAICmd_if_not_equal: @ 0x081318EC - push {lr} - ldr r0, _08131918 - ldr r0, [r0] - ldr r0, [r0, #0x14] - ldr r3, _0813191C - ldr r2, [r3] - ldr r0, [r0, #8] - ldrb r1, [r2, #1] - cmp r0, r1 - beq _08131920 - ldrb r1, [r2, #2] - ldrb r0, [r2, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08131924 - .align 2, 0 -_08131918: .4byte gUnknown_202414C -_0813191C: .4byte gUnknown_203A804 -_08131920: - adds r0, r2, #6 - str r0, [r3] -_08131924: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_not_equal - - thumb_func_start BattleAICmd_if_less_than_ptr -BattleAICmd_if_less_than_ptr: @ 0x08131928 - push {lr} - ldr r3, _08131968 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - ldr r0, _0813196C - ldr r0, [r0] - ldr r0, [r0, #0x14] - ldr r0, [r0, #8] - ldrb r1, [r1] - cmp r0, r1 - bhs _08131970 - ldrb r1, [r2, #5] - ldrb r0, [r2, #6] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #7] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #8] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08131976 - .align 2, 0 -_08131968: .4byte gUnknown_203A804 -_0813196C: .4byte gUnknown_202414C -_08131970: - adds r0, r2, #0 - adds r0, #9 - str r0, [r3] -_08131976: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BattleAICmd_if_less_than_ptr - - thumb_func_start BattleAICmd_if_more_than_ptr -BattleAICmd_if_more_than_ptr: @ 0x0813197C - push {lr} - ldr r3, _081319BC - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - ldr r0, _081319C0 - ldr r0, [r0] - ldr r0, [r0, #0x14] - ldr r0, [r0, #8] - ldrb r1, [r1] - cmp r0, r1 - bls _081319C4 - ldrb r1, [r2, #5] - ldrb r0, [r2, #6] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #7] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #8] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _081319CA - .align 2, 0 -_081319BC: .4byte gUnknown_203A804 -_081319C0: .4byte gUnknown_202414C -_081319C4: - adds r0, r2, #0 - adds r0, #9 - str r0, [r3] -_081319CA: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BattleAICmd_if_more_than_ptr - - thumb_func_start BattleAICmd_if_equal_ptr -BattleAICmd_if_equal_ptr: @ 0x081319D0 - push {lr} - ldr r3, _08131A10 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - ldr r0, _08131A14 - ldr r0, [r0] - ldr r0, [r0, #0x14] - ldr r0, [r0, #8] - ldrb r1, [r1] - cmp r0, r1 - bne _08131A18 - ldrb r1, [r2, #5] - ldrb r0, [r2, #6] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #7] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #8] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08131A1E - .align 2, 0 -_08131A10: .4byte gUnknown_203A804 -_08131A14: .4byte gUnknown_202414C -_08131A18: - adds r0, r2, #0 - adds r0, #9 - str r0, [r3] -_08131A1E: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BattleAICmd_if_equal_ptr - - thumb_func_start BattleAICmd_if_not_equal_ptr -BattleAICmd_if_not_equal_ptr: @ 0x08131A24 - push {lr} - ldr r3, _08131A64 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - ldr r0, _08131A68 - ldr r0, [r0] - ldr r0, [r0, #0x14] - ldr r0, [r0, #8] - ldrb r1, [r1] - cmp r0, r1 - beq _08131A6C - ldrb r1, [r2, #5] - ldrb r0, [r2, #6] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #7] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #8] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08131A72 - .align 2, 0 -_08131A64: .4byte gUnknown_203A804 -_08131A68: .4byte gUnknown_202414C -_08131A6C: - adds r0, r2, #0 - adds r0, #9 - str r0, [r3] -_08131A72: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BattleAICmd_if_not_equal_ptr - - thumb_func_start BattleAICmd_if_move -BattleAICmd_if_move: @ 0x08131A78 - push {lr} - ldr r3, _08131AAC - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldr r0, _08131AB0 - ldr r0, [r0] - ldr r0, [r0, #0x14] - ldrh r0, [r0, #2] - cmp r0, r1 - bne _08131AB4 - ldrb r1, [r2, #3] - ldrb r0, [r2, #4] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #6] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08131AB8 - .align 2, 0 -_08131AAC: .4byte gUnknown_203A804 -_08131AB0: .4byte gUnknown_202414C -_08131AB4: - adds r0, r2, #7 - str r0, [r3] -_08131AB8: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_move - - thumb_func_start BattleAICmd_if_not_move -BattleAICmd_if_not_move: @ 0x08131ABC - push {lr} - ldr r3, _08131AF0 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldr r0, _08131AF4 - ldr r0, [r0] - ldr r0, [r0, #0x14] - ldrh r0, [r0, #2] - cmp r0, r1 - beq _08131AF8 - ldrb r1, [r2, #3] - ldrb r0, [r2, #4] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #6] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08131AFC - .align 2, 0 -_08131AF0: .4byte gUnknown_203A804 -_08131AF4: .4byte gUnknown_202414C -_08131AF8: - adds r0, r2, #7 - str r0, [r3] -_08131AFC: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_not_move - - thumb_func_start BattleAICmd_if_in_bytes -BattleAICmd_if_in_bytes: @ 0x08131B00 - push {r4, lr} - ldr r2, _08131B4C - ldr r1, [r2] - ldrb r3, [r1, #1] - ldrb r0, [r1, #2] - lsls r0, r0, #8 - orrs r3, r0 - ldrb r0, [r1, #3] - lsls r0, r0, #0x10 - orrs r3, r0 - ldrb r0, [r1, #4] - lsls r0, r0, #0x18 - orrs r3, r0 - ldrb r0, [r3] - cmp r0, #0xff - beq _08131B5C - ldr r0, _08131B50 - ldr r0, [r0] - ldr r0, [r0, #0x14] - ldr r1, [r0, #8] - adds r4, r2, #0 -_08131B2A: - ldrb r0, [r3] - cmp r1, r0 - bne _08131B54 - ldr r2, [r4] - ldrb r1, [r2, #5] - ldrb r0, [r2, #6] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #7] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #8] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _08131B62 - .align 2, 0 -_08131B4C: .4byte gUnknown_203A804 -_08131B50: .4byte gUnknown_202414C -_08131B54: - adds r3, #1 - ldrb r0, [r3] - cmp r0, #0xff - bne _08131B2A -_08131B5C: - ldr r0, [r2] - adds r0, #9 - str r0, [r2] -_08131B62: - pop {r4} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_in_bytes - - thumb_func_start BattleAICmd_if_not_in_bytes -BattleAICmd_if_not_in_bytes: @ 0x08131B68 - push {r4, lr} - ldr r2, _08131BA4 - ldr r1, [r2] - ldrb r3, [r1, #1] - ldrb r0, [r1, #2] - lsls r0, r0, #8 - orrs r3, r0 - ldrb r0, [r1, #3] - lsls r0, r0, #0x10 - orrs r3, r0 - ldrb r0, [r1, #4] - lsls r0, r0, #0x18 - orrs r3, r0 - ldrb r0, [r3] - adds r4, r2, #0 - cmp r0, #0xff - beq _08131BB4 - ldr r0, _08131BA8 - ldr r0, [r0] - ldr r0, [r0, #0x14] - ldr r2, [r0, #8] - adds r1, r4, #0 -_08131B94: - ldrb r0, [r3] - cmp r2, r0 - bne _08131BAC - ldr r0, [r1] - adds r0, #9 - str r0, [r1] - b _08131BCC - .align 2, 0 -_08131BA4: .4byte gUnknown_203A804 -_08131BA8: .4byte gUnknown_202414C -_08131BAC: - adds r3, #1 - ldrb r0, [r3] - cmp r0, #0xff - bne _08131B94 -_08131BB4: - ldr r2, [r4] - ldrb r1, [r2, #5] - ldrb r0, [r2, #6] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #7] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #8] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] -_08131BCC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BattleAICmd_if_not_in_bytes - - thumb_func_start sub_08131BD4 -sub_08131BD4: @ 0x08131BD4 - push {r4, r5, lr} - ldr r2, _08131C20 - ldr r1, [r2] - ldrb r3, [r1, #1] - ldrb r0, [r1, #2] - lsls r0, r0, #8 - orrs r3, r0 - ldrb r0, [r1, #3] - lsls r0, r0, #0x10 - orrs r3, r0 - ldrb r0, [r1, #4] - lsls r0, r0, #0x18 - orrs r3, r0 - ldrh r0, [r3] - ldr r5, _08131C24 - cmp r0, r5 - beq _08131C34 - ldr r0, _08131C28 - ldr r0, [r0] - ldr r0, [r0, #0x14] - ldr r1, [r0, #8] - adds r4, r2, #0 -_08131C00: - ldrh r0, [r3] - cmp r1, r0 - bne _08131C2C - ldr r2, [r4] - ldrb r1, [r2, #5] - ldrb r0, [r2, #6] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #7] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #8] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _08131C3A - .align 2, 0 -_08131C20: .4byte gUnknown_203A804 -_08131C24: .4byte 0x0000FFFF -_08131C28: .4byte gUnknown_202414C -_08131C2C: - adds r3, #2 - ldrh r0, [r3] - cmp r0, r5 - bne _08131C00 -_08131C34: - ldr r0, [r2] - adds r0, #9 - str r0, [r2] -_08131C3A: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_08131BD4 - - thumb_func_start BattleAICmd_if_not_in_hwords -BattleAICmd_if_not_in_hwords: @ 0x08131C40 - push {r4, r5, lr} - ldr r2, _08131C7C - ldr r1, [r2] - ldrb r3, [r1, #1] - ldrb r0, [r1, #2] - lsls r0, r0, #8 - orrs r3, r0 - ldrb r0, [r1, #3] - lsls r0, r0, #0x10 - orrs r3, r0 - ldrb r0, [r1, #4] - lsls r0, r0, #0x18 - orrs r3, r0 - ldrh r0, [r3] - ldr r4, _08131C80 - adds r5, r2, #0 - cmp r0, r4 - beq _08131C90 - ldr r0, _08131C84 - ldr r0, [r0] - ldr r0, [r0, #0x14] - ldr r2, [r0, #8] - adds r1, r5, #0 -_08131C6E: - ldrh r0, [r3] - cmp r2, r0 - bne _08131C88 - ldr r0, [r1] - adds r0, #9 - str r0, [r1] - b _08131CA8 - .align 2, 0 -_08131C7C: .4byte gUnknown_203A804 -_08131C80: .4byte 0x0000FFFF -_08131C84: .4byte gUnknown_202414C -_08131C88: - adds r3, #2 - ldrh r0, [r3] - cmp r0, r4 - bne _08131C6E -_08131C90: - ldr r2, [r5] - ldrb r1, [r2, #5] - ldrb r0, [r2, #6] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #7] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #8] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r5] -_08131CA8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BattleAICmd_if_not_in_hwords - - thumb_func_start BattleAICmd_if_user_has_attacking_move -BattleAICmd_if_user_has_attacking_move: @ 0x08131CB0 - push {r4, r5, lr} - movs r3, #0 - ldr r4, _08131CF0 - ldr r1, _08131CF4 - ldr r0, _08131CF8 - ldrb r2, [r0] - ldr r5, _08131CFC - movs r0, #0x58 - muls r0, r2, r0 - adds r1, #0xc - adds r2, r0, r1 -_08131CC6: - ldrh r0, [r2] - cmp r0, #0 - beq _08131CDA - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrb r0, [r1, #1] - cmp r0, #0 - bne _08131CE2 -_08131CDA: - adds r2, #2 - adds r3, #1 - cmp r3, #3 - ble _08131CC6 -_08131CE2: - cmp r3, #4 - bne _08131D00 - ldr r0, [r4] - adds r0, #5 - str r0, [r4] - b _08131D18 - .align 2, 0 -_08131CF0: .4byte gUnknown_203A804 -_08131CF4: .4byte gUnknown_2023D28 -_08131CF8: .4byte gUnknown_203A808 -_08131CFC: .4byte gUnknown_82ED220 -_08131D00: - ldr r2, [r4] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] -_08131D18: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BattleAICmd_if_user_has_attacking_move - - thumb_func_start BattleAICmd_if_user_has_no_attacking_moves -BattleAICmd_if_user_has_no_attacking_moves: @ 0x08131D20 - push {r4, r5, lr} - movs r3, #0 - ldr r4, _08131D60 - ldr r1, _08131D64 - ldr r0, _08131D68 - ldrb r2, [r0] - ldr r5, _08131D6C - movs r0, #0x58 - muls r0, r2, r0 - adds r1, #0xc - adds r2, r0, r1 -_08131D36: - ldrh r0, [r2] - cmp r0, #0 - beq _08131D4A - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrb r0, [r1, #1] - cmp r0, #0 - bne _08131D52 -_08131D4A: - adds r2, #2 - adds r3, #1 - cmp r3, #3 - ble _08131D36 -_08131D52: - cmp r3, #4 - beq _08131D70 - ldr r0, [r4] - adds r0, #5 - str r0, [r4] - b _08131D88 - .align 2, 0 -_08131D60: .4byte gUnknown_203A804 -_08131D64: .4byte gUnknown_2023D28 -_08131D68: .4byte gUnknown_203A808 -_08131D6C: .4byte gUnknown_82ED220 -_08131D70: - ldr r2, [r4] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] -_08131D88: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BattleAICmd_if_user_has_no_attacking_moves - - thumb_func_start BattleAICmd_get_turn_count -BattleAICmd_get_turn_count: @ 0x08131D90 - ldr r0, _08131DA8 - ldr r0, [r0] - ldr r1, [r0, #0x14] - ldr r0, _08131DAC - ldrb r0, [r0, #0x13] - str r0, [r1, #8] - ldr r1, _08131DB0 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - bx lr - .align 2, 0 -_08131DA8: .4byte gUnknown_202414C -_08131DAC: .4byte gUnknown_3005A70 -_08131DB0: .4byte gUnknown_203A804 - thumb_func_end BattleAICmd_get_turn_count - - thumb_func_start BattleAICmd_get_type -BattleAICmd_get_type: @ 0x08131DB4 - push {r4, lr} - ldr r1, _08131DCC - ldr r0, [r1] - ldrb r0, [r0, #1] - adds r4, r1, #0 - cmp r0, #4 - bhi _08131E8E - lsls r0, r0, #2 - ldr r1, _08131DD0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08131DCC: .4byte gUnknown_203A804 -_08131DD0: .4byte _08131DD4 -_08131DD4: @ jump table - .4byte _08131E0C @ case 0 - .4byte _08131DE8 @ case 1 - .4byte _08131E54 @ case 2 - .4byte _08131E30 @ case 3 - .4byte _08131E78 @ case 4 -_08131DE8: - ldr r0, _08131E00 - ldr r0, [r0] - ldr r3, [r0, #0x14] - ldr r2, _08131E04 - ldr r0, _08131E08 - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - adds r0, #0x21 - ldrb r0, [r0] - b _08131E8C - .align 2, 0 -_08131E00: .4byte gUnknown_202414C -_08131E04: .4byte gUnknown_2023D28 -_08131E08: .4byte gUnknown_203A808 -_08131E0C: - ldr r0, _08131E24 - ldr r0, [r0] - ldr r3, [r0, #0x14] - ldr r2, _08131E28 - ldr r0, _08131E2C - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - adds r0, #0x21 - ldrb r0, [r0] - b _08131E8C - .align 2, 0 -_08131E24: .4byte gUnknown_202414C -_08131E28: .4byte gUnknown_2023D28 -_08131E2C: .4byte gUnknown_2023EB0 -_08131E30: - ldr r0, _08131E48 - ldr r0, [r0] - ldr r3, [r0, #0x14] - ldr r2, _08131E4C - ldr r0, _08131E50 - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - adds r0, #0x22 - ldrb r0, [r0] - b _08131E8C - .align 2, 0 -_08131E48: .4byte gUnknown_202414C -_08131E4C: .4byte gUnknown_2023D28 -_08131E50: .4byte gUnknown_203A808 -_08131E54: - ldr r0, _08131E6C - ldr r0, [r0] - ldr r3, [r0, #0x14] - ldr r2, _08131E70 - ldr r0, _08131E74 - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - adds r0, #0x22 - ldrb r0, [r0] - b _08131E8C - .align 2, 0 -_08131E6C: .4byte gUnknown_202414C -_08131E70: .4byte gUnknown_2023D28 -_08131E74: .4byte gUnknown_2023EB0 -_08131E78: - ldr r0, _08131E9C - ldr r0, [r0] - ldr r3, [r0, #0x14] - ldr r2, _08131EA0 - ldrh r1, [r3, #2] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #2] -_08131E8C: - str r0, [r3, #8] -_08131E8E: - ldr r0, [r4] - adds r0, #2 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08131E9C: .4byte gUnknown_202414C -_08131EA0: .4byte gUnknown_82ED220 - thumb_func_end BattleAICmd_get_type - - thumb_func_start BattleAI_GetWantedBattler -BattleAI_GetWantedBattler: @ 0x08131EA4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08131EB8 - ldr r0, _08131EB4 - ldrb r0, [r0] - b _08131EE0 - .align 2, 0 -_08131EB4: .4byte gUnknown_203A808 -_08131EB8: - cmp r0, #1 - ble _08131EC4 - cmp r0, #2 - beq _08131ED8 - cmp r0, #3 - beq _08131ED0 -_08131EC4: - ldr r0, _08131ECC - ldrb r0, [r0] - b _08131EE0 - .align 2, 0 -_08131ECC: .4byte gUnknown_2023EB0 -_08131ED0: - ldr r0, _08131ED4 - b _08131EDA - .align 2, 0 -_08131ED4: .4byte gUnknown_203A808 -_08131ED8: - ldr r0, _08131EE4 -_08131EDA: - ldrb r1, [r0] - movs r0, #2 - eors r0, r1 -_08131EE0: - pop {r1} - bx r1 - .align 2, 0 -_08131EE4: .4byte gUnknown_2023EB0 - thumb_func_end BattleAI_GetWantedBattler - - thumb_func_start BattleAICmd_is_of_type -BattleAICmd_is_of_type: @ 0x08131EE8 - push {r4, lr} - ldr r4, _08131F24 - ldr r0, [r4] - ldrb r0, [r0, #1] - bl BattleAI_GetWantedBattler - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08131F28 - movs r1, #0x58 - muls r0, r1, r0 - adds r3, r0, r2 - adds r1, r3, #0 - adds r1, #0x21 - ldr r0, [r4] - ldrb r1, [r1] - ldrb r2, [r0, #2] - cmp r1, r2 - beq _08131F18 - adds r0, r3, #0 - adds r0, #0x22 - ldrb r0, [r0] - cmp r0, r2 - bne _08131F30 -_08131F18: - ldr r0, _08131F2C - ldr r0, [r0] - ldr r1, [r0, #0x14] - movs r0, #1 - b _08131F38 - .align 2, 0 -_08131F24: .4byte gUnknown_203A804 -_08131F28: .4byte gUnknown_2023D28 -_08131F2C: .4byte gUnknown_202414C -_08131F30: - ldr r0, _08131F48 - ldr r0, [r0] - ldr r1, [r0, #0x14] - movs r0, #0 -_08131F38: - str r0, [r1, #8] - ldr r1, _08131F4C - ldr r0, [r1] - adds r0, #3 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08131F48: .4byte gUnknown_202414C -_08131F4C: .4byte gUnknown_203A804 - thumb_func_end BattleAICmd_is_of_type - - thumb_func_start BattleAICmd_get_considered_move_power -BattleAICmd_get_considered_move_power: @ 0x08131F50 - ldr r0, _08131F70 - ldr r0, [r0] - ldr r3, [r0, #0x14] - ldr r2, _08131F74 - ldrh r1, [r3, #2] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #1] - str r0, [r3, #8] - ldr r1, _08131F78 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - bx lr - .align 2, 0 -_08131F70: .4byte gUnknown_202414C -_08131F74: .4byte gUnknown_82ED220 -_08131F78: .4byte gUnknown_203A804 - thumb_func_end BattleAICmd_get_considered_move_power - - thumb_func_start BattleAICmd_get_how_powerful_move_is -BattleAICmd_get_how_powerful_move_is: @ 0x08131F7C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - movs r3, #0 - ldr r0, _081320BC - ldrh r1, [r0] - ldr r5, _081320C0 - ldr r6, _081320C4 - ldr r2, _081320C8 - cmp r1, r5 - beq _08131FBA - ldr r0, [r2] - ldr r0, [r0, #0x14] - ldrh r1, [r0, #2] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r4, [r0] - ldr r1, _081320BC -_08131FAA: - ldrh r0, [r1] - cmp r4, r0 - beq _08131FBA - adds r1, #2 - adds r3, #1 - ldrh r0, [r1] - cmp r0, r5 - bne _08131FAA -_08131FBA: - ldr r0, [r2] - ldr r0, [r0, #0x14] - ldrh r1, [r0, #2] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r0, [r0, #1] - cmp r0, #1 - bhi _08131FD0 - b _0813215A -_08131FD0: - lsls r0, r3, #1 - ldr r1, _081320BC - adds r0, r0, r1 - ldrh r3, [r0] - ldr r0, _081320C0 - cmp r3, r0 - beq _08131FE0 - b _0813215A -_08131FE0: - ldr r0, _081320CC - movs r1, #0 - strh r1, [r0] - ldr r0, _081320D0 - ldr r0, [r0] - strb r1, [r0, #0x13] - ldr r0, _081320D4 - movs r2, #1 - strb r2, [r0, #0xe] - ldr r0, _081320D8 - strb r1, [r0] - ldr r0, _081320DC - strb r2, [r0] - movs r6, #0 - mov sb, r3 - ldr r2, _081320BC - ldrh r2, [r2] - str r2, [sp, #0x10] -_08132004: - movs r3, #0 - ldr r5, _081320E0 - lsls r4, r6, #1 - ldr r7, _081320E4 - lsls r0, r6, #2 - mov r8, r0 - adds r1, r6, #1 - mov sl, r1 - ldr r2, [sp, #0x10] - cmp r2, sb - beq _08132048 - ldr r2, _081320C4 - ldrb r1, [r7] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r4, r0 - adds r1, r5, #0 - adds r1, #0xc - adds r0, r0, r1 - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r2, [r0] - ldr r1, _081320BC -_08132038: - ldrh r0, [r1] - cmp r2, r0 - beq _08132048 - adds r1, #2 - adds r3, #1 - ldrh r0, [r1] - cmp r0, sb - bne _08132038 -_08132048: - ldrb r1, [r7] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r4, r0 - adds r1, r5, #0 - adds r1, #0xc - adds r1, r0, r1 - ldrh r0, [r1] - cmp r0, #0 - beq _081320F4 - lsls r0, r3, #1 - ldr r2, _081320BC - adds r0, r0, r2 - ldrh r0, [r0] - cmp r0, sb - bne _081320F4 - ldr r0, _081320C4 - ldrh r2, [r1] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #1] - cmp r0, #1 - bls _081320F4 - ldr r5, _081320E8 - strh r2, [r5] - ldrb r0, [r7] - ldr r4, _081320EC - ldrb r1, [r4] - bl AI_CalcDmg - ldrh r0, [r5] - ldrb r1, [r7] - ldrb r2, [r4] - bl TypeCalc - mov r4, sp - add r4, r8 - ldr r2, _081320F0 - ldr r0, _081320C8 - ldr r0, [r0] - ldr r0, [r0, #0x14] - adds r0, #0x18 - adds r0, r0, r6 - ldrb r1, [r0] - ldr r0, [r2] - muls r0, r1, r0 - movs r1, #0x64 - bl __divsi3 - str r0, [r4] - cmp r0, #0 - bne _081320FC - movs r0, #1 - str r0, [r4] - b _081320FC - .align 2, 0 -_081320BC: .4byte gUnknown_858F7D8 -_081320C0: .4byte 0x0000FFFF -_081320C4: .4byte gUnknown_82ED220 -_081320C8: .4byte gUnknown_202414C -_081320CC: .4byte gUnknown_20240A4 -_081320D0: .4byte gUnknown_2024140 -_081320D4: .4byte gUnknown_2024118 -_081320D8: .4byte gUnknown_2023F20 -_081320DC: .4byte gUnknown_2023EB5 -_081320E0: .4byte gUnknown_2023D28 -_081320E4: .4byte gUnknown_203A808 -_081320E8: .4byte gUnknown_2023E8E -_081320EC: .4byte gUnknown_2023EB0 -_081320F0: .4byte gUnknown_2023E94 -_081320F4: - mov r1, sp - add r1, r8 - movs r0, #0 - str r0, [r1] -_081320FC: - mov r6, sl - cmp r6, #3 - bgt _08132104 - b _08132004 -_08132104: - movs r6, #0 - ldr r2, _08132148 - ldr r0, [r2] - ldr r0, [r0, #0x14] - ldrb r0, [r0, #1] - lsls r0, r0, #2 - add r0, sp - ldr r1, [sp] - ldr r0, [r0] - ldr r5, _0813214C - cmp r1, r0 - bgt _0813213A - adds r4, r2, #0 - mov r3, sp -_08132120: - adds r3, #4 - adds r6, #1 - cmp r6, #3 - bgt _0813213A - ldr r0, [r4] - ldr r0, [r0, #0x14] - ldrb r0, [r0, #1] - lsls r0, r0, #2 - add r0, sp - ldr r1, [r3] - ldr r0, [r0] - cmp r1, r0 - ble _08132120 -_0813213A: - cmp r6, #4 - bne _08132150 - ldr r0, [r2] - ldr r1, [r0, #0x14] - movs r0, #2 - str r0, [r1, #8] - b _08132164 - .align 2, 0 -_08132148: .4byte gUnknown_202414C -_0813214C: .4byte gUnknown_203A804 -_08132150: - ldr r0, [r2] - ldr r1, [r0, #0x14] - movs r0, #1 - str r0, [r1, #8] - b _08132164 -_0813215A: - ldr r0, [r2] - ldr r1, [r0, #0x14] - movs r0, #0 - str r0, [r1, #8] - ldr r5, _0813217C -_08132164: - ldr r0, [r5] - adds r0, #1 - str r0, [r5] - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0813217C: .4byte gUnknown_203A804 - thumb_func_end BattleAICmd_get_how_powerful_move_is - - thumb_func_start BattleAICmd_get_last_used_battler_move -BattleAICmd_get_last_used_battler_move: @ 0x08132180 - push {lr} - ldr r0, _0813219C - ldr r1, [r0] - ldrb r1, [r1, #1] - adds r3, r0, #0 - cmp r1, #1 - bne _081321AC - ldr r0, _081321A0 - ldr r0, [r0] - ldr r2, [r0, #0x14] - ldr r1, _081321A4 - ldr r0, _081321A8 - b _081321B6 - .align 2, 0 -_0813219C: .4byte gUnknown_203A804 -_081321A0: .4byte gUnknown_202414C -_081321A4: .4byte gUnknown_2023EEC -_081321A8: .4byte gUnknown_203A808 -_081321AC: - ldr r0, _081321CC - ldr r0, [r0] - ldr r2, [r0, #0x14] - ldr r1, _081321D0 - ldr r0, _081321D4 -_081321B6: - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - str r0, [r2, #8] - ldr r0, [r3] - adds r0, #2 - str r0, [r3] - pop {r0} - bx r0 - .align 2, 0 -_081321CC: .4byte gUnknown_202414C -_081321D0: .4byte gUnknown_2023EEC -_081321D4: .4byte gUnknown_2023EB0 - thumb_func_end BattleAICmd_get_last_used_battler_move - - thumb_func_start BattleAICmd_if_equal_ -BattleAICmd_if_equal_: @ 0x081321D8 - push {lr} - ldr r3, _08132204 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldr r0, _08132208 - ldr r0, [r0] - ldr r0, [r0, #0x14] - ldr r0, [r0, #8] - cmp r1, r0 - bne _0813220C - ldrb r1, [r2, #2] - ldrb r0, [r2, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08132210 - .align 2, 0 -_08132204: .4byte gUnknown_203A804 -_08132208: .4byte gUnknown_202414C -_0813220C: - adds r0, r2, #6 - str r0, [r3] -_08132210: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_equal_ - - thumb_func_start BattleAICmd_if_not_equal_ -BattleAICmd_if_not_equal_: @ 0x08132214 - push {lr} - ldr r3, _08132240 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldr r0, _08132244 - ldr r0, [r0] - ldr r0, [r0, #0x14] - ldr r0, [r0, #8] - cmp r1, r0 - beq _08132248 - ldrb r1, [r2, #2] - ldrb r0, [r2, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _0813224C - .align 2, 0 -_08132240: .4byte gUnknown_203A804 -_08132244: .4byte gUnknown_202414C -_08132248: - adds r0, r2, #6 - str r0, [r3] -_0813224C: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_not_equal_ - - thumb_func_start BattleAICmd_if_user_goes -BattleAICmd_if_user_goes: @ 0x08132250 - push {lr} - ldr r0, _08132288 - ldrb r0, [r0] - ldr r1, _0813228C - ldrb r1, [r1] - movs r2, #1 - bl GetWhoStrikesFirst - ldr r3, _08132290 - ldr r2, [r3] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r2, #1] - cmp r0, r1 - bne _08132294 - ldrb r1, [r2, #2] - ldrb r0, [r2, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08132298 - .align 2, 0 -_08132288: .4byte gUnknown_203A808 -_0813228C: .4byte gUnknown_2023EB0 -_08132290: .4byte gUnknown_203A804 -_08132294: - adds r0, r2, #6 - str r0, [r3] -_08132298: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_user_goes - - thumb_func_start BattleAICmd_if_user_doesnt_go -BattleAICmd_if_user_doesnt_go: @ 0x0813229C - push {lr} - ldr r0, _081322D4 - ldrb r0, [r0] - ldr r1, _081322D8 - ldrb r1, [r1] - movs r2, #1 - bl GetWhoStrikesFirst - ldr r3, _081322DC - ldr r2, [r3] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r2, #1] - cmp r0, r1 - beq _081322E0 - ldrb r1, [r2, #2] - ldrb r0, [r2, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _081322E4 - .align 2, 0 -_081322D4: .4byte gUnknown_203A808 -_081322D8: .4byte gUnknown_2023EB0 -_081322DC: .4byte gUnknown_203A804 -_081322E0: - adds r0, r2, #6 - str r0, [r3] -_081322E4: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_user_doesnt_go - - thumb_func_start sub_081322E8 -sub_081322E8: @ 0x081322E8 - bx lr - .align 2, 0 - thumb_func_end sub_081322E8 - - thumb_func_start sub_081322EC -sub_081322EC: @ 0x081322EC - bx lr - .align 2, 0 - thumb_func_end sub_081322EC - - thumb_func_start BattleAICmd_count_usable_party_mons -BattleAICmd_count_usable_party_mons: @ 0x081322F0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _08132310 - ldr r0, [r0] - ldr r1, [r0, #0x14] - movs r0, #0 - str r0, [r1, #8] - ldr r0, _08132314 - ldr r0, [r0] - ldrb r0, [r0, #1] - cmp r0, #1 - bne _0813231C - ldr r0, _08132318 - b _0813231E - .align 2, 0 -_08132310: .4byte gUnknown_202414C -_08132314: .4byte gUnknown_203A804 -_08132318: .4byte gUnknown_203A808 -_0813231C: - ldr r0, _08132364 -_0813231E: - ldrb r5, [r0] - adds r0, r5, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - ldr r1, _08132368 - mov r8, r1 - cmp r0, #0 - bne _08132334 - ldr r0, _0813236C - mov r8, r0 -_08132334: - ldr r0, _08132370 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08132378 - ldr r4, _08132374 - lsls r0, r5, #1 - adds r0, r0, r4 - ldrb r7, [r0] - adds r0, r5, #0 - bl sub_080A630C - movs r1, #2 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r4 - ldrb r6, [r0] - b _08132382 - .align 2, 0 -_08132364: .4byte gUnknown_2023EB0 -_08132368: .4byte gUnknown_20243E8 -_0813236C: .4byte gUnknown_2024190 -_08132370: .4byte gUnknown_2022C90 -_08132374: .4byte gUnknown_2023D12 -_08132378: - ldr r1, _081323E0 - lsls r0, r5, #1 - adds r0, r0, r1 - ldrb r6, [r0] - adds r7, r6, #0 -_08132382: - movs r5, #0 -_08132384: - cmp r5, r7 - beq _081323C8 - cmp r5, r6 - beq _081323C8 - movs r0, #0x64 - muls r0, r5, r0 - mov r1, r8 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _081323C8 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - cmp r0, #0 - beq _081323C8 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - movs r1, #0xce - lsls r1, r1, #1 - cmp r0, r1 - beq _081323C8 - ldr r0, _081323E4 - ldr r0, [r0] - ldr r1, [r0, #0x14] - ldr r0, [r1, #8] - adds r0, #1 - str r0, [r1, #8] -_081323C8: - adds r5, #1 - cmp r5, #5 - ble _08132384 - ldr r1, _081323E8 - ldr r0, [r1] - adds r0, #2 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081323E0: .4byte gUnknown_2023D12 -_081323E4: .4byte gUnknown_202414C -_081323E8: .4byte gUnknown_203A804 - thumb_func_end BattleAICmd_count_usable_party_mons - - thumb_func_start BattleAICmd_get_considered_move -BattleAICmd_get_considered_move: @ 0x081323EC - ldr r0, _08132400 - ldr r0, [r0] - ldr r1, [r0, #0x14] - ldrh r0, [r1, #2] - str r0, [r1, #8] - ldr r1, _08132404 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - bx lr - .align 2, 0 -_08132400: .4byte gUnknown_202414C -_08132404: .4byte gUnknown_203A804 - thumb_func_end BattleAICmd_get_considered_move - - thumb_func_start BattleAICmd_get_considered_move_effect -BattleAICmd_get_considered_move_effect: @ 0x08132408 - ldr r0, _08132428 - ldr r0, [r0] - ldr r3, [r0, #0x14] - ldr r2, _0813242C - ldrh r1, [r3, #2] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0] - str r0, [r3, #8] - ldr r1, _08132430 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - bx lr - .align 2, 0 -_08132428: .4byte gUnknown_202414C -_0813242C: .4byte gUnknown_82ED220 -_08132430: .4byte gUnknown_203A804 - thumb_func_end BattleAICmd_get_considered_move_effect - - thumb_func_start BattleAICmd_get_ability -BattleAICmd_get_ability: @ 0x08132434 - push {r4, r5, r6, r7, lr} - ldr r0, _08132448 - ldr r1, [r0] - ldrb r1, [r1, #1] - mov ip, r0 - cmp r1, #1 - bne _08132450 - ldr r0, _0813244C - b _08132452 - .align 2, 0 -_08132448: .4byte gUnknown_203A804 -_0813244C: .4byte gUnknown_203A808 -_08132450: - ldr r0, _08132474 -_08132452: - ldrb r3, [r0] - ldr r0, _08132478 - ldrb r0, [r0] - cmp r0, r3 - beq _08132524 - ldr r7, _0813247C - ldr r5, [r7] - ldr r0, [r5, #0x18] - adds r0, #0x40 - adds r2, r0, r3 - ldrb r0, [r2] - adds r6, r7, #0 - cmp r0, #0 - beq _08132480 - ldr r1, [r5, #0x14] - str r0, [r1, #8] - b _08132538 - .align 2, 0 -_08132474: .4byte gUnknown_2023EB0 -_08132478: .4byte gUnknown_2023D08 -_0813247C: .4byte gUnknown_202414C -_08132480: - ldr r1, _081324B0 - movs r0, #0x58 - muls r0, r3, r0 - adds r4, r0, r1 - adds r0, r4, #0 - adds r0, #0x20 - ldrb r0, [r0] - adds r2, r1, #0 - cmp r0, #0x17 - beq _0813249C - cmp r0, #0x2a - beq _0813249C - cmp r0, #0x47 - bne _081324B4 -_0813249C: - ldr r0, [r6] - ldr r1, [r0, #0x14] - movs r0, #0x58 - muls r0, r3, r0 - adds r0, r0, r2 - adds r0, #0x20 - ldrb r0, [r0] - str r0, [r1, #8] - b _08132538 - .align 2, 0 -_081324B0: .4byte gUnknown_2023D28 -_081324B4: - ldr r6, _081324F0 - ldrh r0, [r4] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r2, r1, r6 - ldrb r0, [r2, #0x16] - cmp r0, #0 - beq _0813251C - ldrb r0, [r2, #0x17] - cmp r0, #0 - beq _08132514 - bl Random - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _081324F8 - ldr r0, [r7] - ldr r2, [r0, #0x14] - ldrh r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r0, [r0, #0x16] - str r0, [r2, #8] - ldr r0, _081324F4 - mov ip, r0 - b _08132538 - .align 2, 0 -_081324F0: .4byte gUnknown_82F0D54 -_081324F4: .4byte gUnknown_203A804 -_081324F8: - ldr r0, [r7] - ldr r2, [r0, #0x14] - ldrh r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r0, [r0, #0x17] - str r0, [r2, #8] - ldr r1, _08132510 - mov ip, r1 - b _08132538 - .align 2, 0 -_08132510: .4byte gUnknown_203A804 -_08132514: - ldr r1, [r5, #0x14] - ldrb r0, [r2, #0x16] - str r0, [r1, #8] - b _08132538 -_0813251C: - ldr r1, [r5, #0x14] - ldrb r0, [r2, #0x17] - str r0, [r1, #8] - b _08132538 -_08132524: - ldr r0, _08132548 - ldr r0, [r0] - ldr r2, [r0, #0x14] - ldr r1, _0813254C - movs r0, #0x58 - muls r0, r3, r0 - adds r0, r0, r1 - adds r0, #0x20 - ldrb r0, [r0] - str r0, [r2, #8] -_08132538: - mov r1, ip - ldr r0, [r1] - adds r0, #2 - str r0, [r1] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08132548: .4byte gUnknown_202414C -_0813254C: .4byte gUnknown_2023D28 - thumb_func_end BattleAICmd_get_ability - - thumb_func_start BattleAICmd_check_ability -BattleAICmd_check_ability: @ 0x08132550 - push {r4, r5, r6, lr} - ldr r4, _08132588 - ldr r0, [r4] - ldrb r0, [r0, #1] - bl BattleAI_GetWantedBattler - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, [r4] - ldrb r3, [r0, #2] - ldrb r0, [r0, #1] - cmp r0, #0 - beq _0813256E - cmp r0, #2 - bne _081325F0 -_0813256E: - ldr r0, _0813258C - ldr r4, [r0] - ldr r1, [r4, #0x18] - adds r1, #0x40 - adds r2, r1, r5 - ldrb r1, [r2] - adds r6, r0, #0 - cmp r1, #0 - beq _08132590 - adds r3, r1, #0 - ldr r0, [r4, #0x14] - str r3, [r0, #8] - b _081325FE - .align 2, 0 -_08132588: .4byte gUnknown_203A804 -_0813258C: .4byte gUnknown_202414C -_08132590: - ldr r1, _081325B8 - movs r0, #0x58 - muls r0, r5, r0 - adds r4, r0, r1 - adds r0, r4, #0 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0x17 - beq _081325AA - cmp r0, #0x2a - beq _081325AA - cmp r0, #0x47 - bne _081325BC -_081325AA: - movs r0, #0x58 - muls r0, r5, r0 - adds r0, r0, r1 - adds r0, #0x20 - ldrb r3, [r0] - b _081325FE - .align 2, 0 -_081325B8: .4byte gUnknown_2023D28 -_081325BC: - ldr r2, _081325E4 - ldrh r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r2 - ldrb r4, [r1, #0x16] - cmp r4, #0 - beq _081325EC - ldrb r2, [r1, #0x17] - cmp r2, #0 - beq _081325E8 - adds r0, r3, #0 - cmp r4, r0 - beq _08132602 - cmp r2, r0 - beq _08132602 - adds r3, r4, #0 - b _081325FE - .align 2, 0 -_081325E4: .4byte gUnknown_82F0D54 -_081325E8: - ldrb r3, [r1, #0x16] - b _081325FE -_081325EC: - ldrb r3, [r1, #0x17] - b _081325FE -_081325F0: - ldr r1, _08132610 - movs r0, #0x58 - muls r0, r5, r0 - adds r0, r0, r1 - adds r0, #0x20 - ldrb r3, [r0] - ldr r6, _08132614 -_081325FE: - cmp r3, #0 - bne _0813261C -_08132602: - ldr r0, [r6] - ldr r1, [r0, #0x14] - movs r0, #2 - str r0, [r1, #8] - ldr r2, _08132618 - b _0813263C - .align 2, 0 -_08132610: .4byte gUnknown_2023D28 -_08132614: .4byte gUnknown_202414C -_08132618: .4byte gUnknown_203A804 -_0813261C: - ldr r0, _08132630 - ldr r1, [r0] - adds r2, r0, #0 - ldrb r1, [r1, #2] - cmp r3, r1 - bne _08132634 - ldr r0, [r6] - ldr r1, [r0, #0x14] - movs r0, #1 - b _0813263A - .align 2, 0 -_08132630: .4byte gUnknown_203A804 -_08132634: - ldr r0, [r6] - ldr r1, [r0, #0x14] - movs r0, #0 -_0813263A: - str r0, [r1, #8] -_0813263C: - ldr r0, [r2] - adds r0, #3 - str r0, [r2] - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_check_ability - - thumb_func_start BattleAICmd_get_highest_type_effectiveness -BattleAICmd_get_highest_type_effectiveness: @ 0x08132648 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _08132704 - movs r1, #0 - strh r1, [r0] - ldr r0, _08132708 - ldr r0, [r0] - strb r1, [r0, #0x13] - ldr r0, _0813270C - movs r3, #0 - movs r2, #1 - strb r2, [r0, #0xe] - ldr r0, _08132710 - strb r1, [r0] - ldr r0, _08132714 - strb r2, [r0] - ldr r0, _08132718 - ldr r0, [r0] - ldr r0, [r0, #0x14] - str r3, [r0, #8] - movs r5, #0 - ldr r4, _0813271C - ldr r7, _08132720 - ldr r0, _08132724 - mov r8, r0 - ldr r6, _08132728 -_0813267E: - movs r0, #0x28 - str r0, [r4] - lsls r1, r5, #1 - ldrb r2, [r6] - movs r0, #0x58 - muls r0, r2, r0 - adds r1, r1, r0 - add r1, r8 - ldrh r0, [r1] - strh r0, [r7] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _081326EC - ldrh r0, [r7] - ldrb r1, [r6] - ldr r2, _0813272C - ldrb r2, [r2] - bl TypeCalc - ldr r0, [r4] - cmp r0, #0x78 - bne _081326AE - movs r0, #0x50 - str r0, [r4] -_081326AE: - ldr r0, [r4] - cmp r0, #0xf0 - bne _081326B8 - movs r0, #0xa0 - str r0, [r4] -_081326B8: - ldr r0, [r4] - cmp r0, #0x1e - bne _081326C2 - movs r0, #0x14 - str r0, [r4] -_081326C2: - ldr r0, [r4] - cmp r0, #0xf - bne _081326CC - movs r0, #0xa - str r0, [r4] -_081326CC: - ldr r0, _08132710 - ldrb r1, [r0] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _081326DC - movs r0, #0 - str r0, [r4] -_081326DC: - ldr r0, _08132718 - ldr r0, [r0] - ldr r2, [r0, #0x14] - ldr r0, [r2, #8] - ldr r1, [r4] - cmp r0, r1 - bhs _081326EC - str r1, [r2, #8] -_081326EC: - adds r5, #1 - cmp r5, #3 - ble _0813267E - ldr r1, _08132730 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08132704: .4byte gUnknown_20240A4 -_08132708: .4byte gUnknown_2024140 -_0813270C: .4byte gUnknown_2024118 -_08132710: .4byte gUnknown_2023F20 -_08132714: .4byte gUnknown_2023EB5 -_08132718: .4byte gUnknown_202414C -_0813271C: .4byte gUnknown_2023E94 -_08132720: .4byte gUnknown_2023E8E -_08132724: .4byte gUnknown_2023D34 -_08132728: .4byte gUnknown_203A808 -_0813272C: .4byte gUnknown_2023EB0 -_08132730: .4byte gUnknown_203A804 - thumb_func_end BattleAICmd_get_highest_type_effectiveness - - thumb_func_start BattleAICmd_if_type_effectiveness -BattleAICmd_if_type_effectiveness: @ 0x08132734 - push {r4, r5, lr} - ldr r0, _081327CC - movs r1, #0 - strh r1, [r0] - ldr r0, _081327D0 - ldr r0, [r0] - strb r1, [r0, #0x13] - ldr r0, _081327D4 - movs r2, #1 - strb r2, [r0, #0xe] - ldr r5, _081327D8 - strb r1, [r5] - ldr r0, _081327DC - strb r2, [r0] - ldr r4, _081327E0 - movs r0, #0x28 - str r0, [r4] - ldr r1, _081327E4 - ldr r0, _081327E8 - ldr r0, [r0] - ldr r0, [r0, #0x14] - ldrh r0, [r0, #2] - strh r0, [r1] - ldrh r0, [r1] - ldr r1, _081327EC - ldrb r1, [r1] - ldr r2, _081327F0 - ldrb r2, [r2] - bl TypeCalc - ldr r0, [r4] - cmp r0, #0x78 - bne _0813277A - movs r0, #0x50 - str r0, [r4] -_0813277A: - ldr r0, [r4] - cmp r0, #0xf0 - bne _08132784 - movs r0, #0xa0 - str r0, [r4] -_08132784: - ldr r0, [r4] - cmp r0, #0x1e - bne _0813278E - movs r0, #0x14 - str r0, [r4] -_0813278E: - ldr r0, [r4] - cmp r0, #0xf - bne _08132798 - movs r0, #0xa - str r0, [r4] -_08132798: - ldrb r1, [r5] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _081327A6 - movs r0, #0 - str r0, [r4] -_081327A6: - ldrb r0, [r4] - ldr r3, _081327F4 - ldr r2, [r3] - ldrb r1, [r2, #1] - cmp r0, r1 - bne _081327F8 - ldrb r1, [r2, #2] - ldrb r0, [r2, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _081327FC - .align 2, 0 -_081327CC: .4byte gUnknown_20240A4 -_081327D0: .4byte gUnknown_2024140 -_081327D4: .4byte gUnknown_2024118 -_081327D8: .4byte gUnknown_2023F20 -_081327DC: .4byte gUnknown_2023EB5 -_081327E0: .4byte gUnknown_2023E94 -_081327E4: .4byte gUnknown_2023E8E -_081327E8: .4byte gUnknown_202414C -_081327EC: .4byte gUnknown_203A808 -_081327F0: .4byte gUnknown_2023EB0 -_081327F4: .4byte gUnknown_203A804 -_081327F8: - adds r0, r2, #6 - str r0, [r3] -_081327FC: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BattleAICmd_if_type_effectiveness - - thumb_func_start sub_08132804 -sub_08132804: @ 0x08132804 - bx lr - .align 2, 0 - thumb_func_end sub_08132804 - - thumb_func_start sub_08132808 -sub_08132808: @ 0x08132808 - bx lr - .align 2, 0 - thumb_func_end sub_08132808 - - thumb_func_start BattleAICmd_if_status_in_party -BattleAICmd_if_status_in_party: @ 0x0813280C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _08132824 - ldr r0, [r0] - ldrb r0, [r0, #1] - cmp r0, #1 - bne _0813284C - ldr r0, _08132828 - b _0813284E - .align 2, 0 -_08132824: .4byte gUnknown_203A804 -_08132828: .4byte gUnknown_203A808 -_0813282C: - ldr r3, _08132848 - ldr r2, [r3] - ldrb r1, [r2, #6] - ldrb r0, [r2, #7] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #8] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #9] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _081328CE - .align 2, 0 -_08132848: .4byte gUnknown_203A804 -_0813284C: - ldr r0, _081328DC -_0813284E: - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - ldr r1, _081328E0 - mov sb, r1 - cmp r0, #0 - bne _08132862 - ldr r0, _081328E4 - mov sb, r0 -_08132862: - ldr r0, _081328E8 - ldr r1, [r0] - ldrb r7, [r1, #2] - ldrb r0, [r1, #3] - lsls r0, r0, #8 - orrs r7, r0 - ldrb r0, [r1, #4] - lsls r0, r0, #0x10 - orrs r7, r0 - ldrb r0, [r1, #5] - lsls r0, r0, #0x18 - orrs r7, r0 - movs r1, #0 - mov r8, r1 - movs r0, #0xce - lsls r0, r0, #1 - mov sl, r0 -_08132884: - movs r0, #0x64 - mov r4, r8 - muls r4, r0, r4 - add r4, sb - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r0, r4, #0 - movs r1, #0x37 - bl GetMonData - cmp r5, #0 - beq _081328BC - cmp r5, sl - beq _081328BC - cmp r6, #0 - beq _081328BC - cmp r0, r7 - beq _0813282C -_081328BC: - movs r1, #1 - add r8, r1 - mov r0, r8 - cmp r0, #5 - ble _08132884 - ldr r1, _081328E8 - ldr r0, [r1] - adds r0, #0xa - str r0, [r1] -_081328CE: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081328DC: .4byte gUnknown_2023EB0 -_081328E0: .4byte gUnknown_20243E8 -_081328E4: .4byte gUnknown_2024190 -_081328E8: .4byte gUnknown_203A804 - thumb_func_end BattleAICmd_if_status_in_party - - thumb_func_start BattleAICmd_if_status_not_in_party -BattleAICmd_if_status_not_in_party: @ 0x081328EC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _08132904 - ldr r0, [r0] - ldrb r0, [r0, #1] - cmp r0, #1 - bne _0813290C - ldr r0, _08132908 - b _0813290E - .align 2, 0 -_08132904: .4byte gUnknown_203A804 -_08132908: .4byte gUnknown_203A808 -_0813290C: - ldr r0, _081329B8 -_0813290E: - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - ldr r1, _081329BC - mov sl, r1 - cmp r0, #0 - bne _08132922 - ldr r0, _081329C0 - mov sl, r0 -_08132922: - ldr r2, _081329C4 - ldr r1, [r2] - ldrb r7, [r1, #2] - ldrb r0, [r1, #3] - lsls r0, r0, #8 - orrs r7, r0 - ldrb r0, [r1, #4] - lsls r0, r0, #0x10 - orrs r7, r0 - ldrb r0, [r1, #5] - lsls r0, r0, #0x18 - orrs r7, r0 - movs r1, #0 - mov r8, r1 - mov sb, r2 -_08132940: - movs r0, #0x64 - mov r4, r8 - muls r4, r0, r4 - add r4, sl - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r0, r4, #0 - movs r1, #0x37 - bl GetMonData - cmp r5, #0 - beq _08132984 - movs r1, #0xce - lsls r1, r1, #1 - cmp r5, r1 - beq _08132984 - cmp r6, #0 - beq _08132984 - cmp r0, r7 - bne _08132984 - mov r1, sb - ldr r0, [r1] - adds r0, #0xa - str r0, [r1] -_08132984: - movs r0, #1 - add r8, r0 - mov r1, r8 - cmp r1, #5 - ble _08132940 - ldr r3, _081329C4 - ldr r2, [r3] - ldrb r1, [r2, #6] - ldrb r0, [r2, #7] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #8] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #9] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081329B8: .4byte gUnknown_2023EB0 -_081329BC: .4byte gUnknown_20243E8 -_081329C0: .4byte gUnknown_2024190 -_081329C4: .4byte gUnknown_203A804 - thumb_func_end BattleAICmd_if_status_not_in_party - - thumb_func_start BattleAICmd_get_weather -BattleAICmd_get_weather: @ 0x081329C8 - push {lr} - ldr r2, _08132A28 - ldrh r1, [r2] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - beq _081329E0 - ldr r0, _08132A2C - ldr r0, [r0] - ldr r1, [r0, #0x14] - movs r0, #1 - str r0, [r1, #8] -_081329E0: - ldrh r1, [r2] - movs r0, #0x18 - ands r0, r1 - cmp r0, #0 - beq _081329F4 - ldr r0, _08132A2C - ldr r0, [r0] - ldr r1, [r0, #0x14] - movs r0, #2 - str r0, [r1, #8] -_081329F4: - ldrh r1, [r2] - movs r0, #0x60 - ands r0, r1 - cmp r0, #0 - beq _08132A08 - ldr r0, _08132A2C - ldr r0, [r0] - ldr r1, [r0, #0x14] - movs r0, #0 - str r0, [r1, #8] -_08132A08: - ldrh r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08132A1C - ldr r0, _08132A2C - ldr r0, [r0] - ldr r1, [r0, #0x14] - movs r0, #3 - str r0, [r1, #8] -_08132A1C: - ldr r1, _08132A30 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08132A28: .4byte gUnknown_2024070 -_08132A2C: .4byte gUnknown_202414C -_08132A30: .4byte gUnknown_203A804 - thumb_func_end BattleAICmd_get_weather - - thumb_func_start BattleAICmd_if_effect -BattleAICmd_if_effect: @ 0x08132A34 - push {lr} - ldr r2, _08132A6C - ldr r0, _08132A70 - ldr r0, [r0] - ldr r0, [r0, #0x14] - ldrh r1, [r0, #2] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r3, _08132A74 - ldr r2, [r3] - ldrb r0, [r0] - ldrb r1, [r2, #1] - cmp r0, r1 - bne _08132A78 - ldrb r1, [r2, #2] - ldrb r0, [r2, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08132A7C - .align 2, 0 -_08132A6C: .4byte gUnknown_82ED220 -_08132A70: .4byte gUnknown_202414C -_08132A74: .4byte gUnknown_203A804 -_08132A78: - adds r0, r2, #6 - str r0, [r3] -_08132A7C: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_effect - - thumb_func_start BattleAICmd_if_not_effect -BattleAICmd_if_not_effect: @ 0x08132A80 - push {lr} - ldr r2, _08132AB8 - ldr r0, _08132ABC - ldr r0, [r0] - ldr r0, [r0, #0x14] - ldrh r1, [r0, #2] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r3, _08132AC0 - ldr r2, [r3] - ldrb r0, [r0] - ldrb r1, [r2, #1] - cmp r0, r1 - beq _08132AC4 - ldrb r1, [r2, #2] - ldrb r0, [r2, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08132AC8 - .align 2, 0 -_08132AB8: .4byte gUnknown_82ED220 -_08132ABC: .4byte gUnknown_202414C -_08132AC0: .4byte gUnknown_203A804 -_08132AC4: - adds r0, r2, #6 - str r0, [r3] -_08132AC8: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_not_effect - - thumb_func_start BattleAICmd_if_stat_level_less_than -BattleAICmd_if_stat_level_less_than: @ 0x08132ACC - push {r4, lr} - ldr r0, _08132AE0 - ldr r1, [r0] - ldrb r1, [r1, #1] - adds r4, r0, #0 - cmp r1, #1 - bne _08132AE8 - ldr r0, _08132AE4 - b _08132AEA - .align 2, 0 -_08132AE0: .4byte gUnknown_203A804 -_08132AE4: .4byte gUnknown_203A808 -_08132AE8: - ldr r0, _08132B20 -_08132AEA: - ldrb r3, [r0] - ldr r1, _08132B24 - ldr r2, [r4] - movs r0, #0x58 - muls r0, r3, r0 - ldrb r3, [r2, #2] - adds r0, r0, r3 - adds r1, #0x18 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrb r1, [r2, #3] - cmp r0, r1 - bge _08132B28 - ldrb r1, [r2, #4] - ldrb r0, [r2, #5] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #6] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #7] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _08132B2E - .align 2, 0 -_08132B20: .4byte gUnknown_2023EB0 -_08132B24: .4byte gUnknown_2023D28 -_08132B28: - adds r0, r2, #0 - adds r0, #8 - str r0, [r4] -_08132B2E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_stat_level_less_than - - thumb_func_start BattleAICmd_if_stat_level_more_than -BattleAICmd_if_stat_level_more_than: @ 0x08132B34 - push {r4, lr} - ldr r0, _08132B48 - ldr r1, [r0] - ldrb r1, [r1, #1] - adds r4, r0, #0 - cmp r1, #1 - bne _08132B50 - ldr r0, _08132B4C - b _08132B52 - .align 2, 0 -_08132B48: .4byte gUnknown_203A804 -_08132B4C: .4byte gUnknown_203A808 -_08132B50: - ldr r0, _08132B88 -_08132B52: - ldrb r3, [r0] - ldr r1, _08132B8C - ldr r2, [r4] - movs r0, #0x58 - muls r0, r3, r0 - ldrb r3, [r2, #2] - adds r0, r0, r3 - adds r1, #0x18 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrb r1, [r2, #3] - cmp r0, r1 - ble _08132B90 - ldrb r1, [r2, #4] - ldrb r0, [r2, #5] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #6] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #7] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _08132B96 - .align 2, 0 -_08132B88: .4byte gUnknown_2023EB0 -_08132B8C: .4byte gUnknown_2023D28 -_08132B90: - adds r0, r2, #0 - adds r0, #8 - str r0, [r4] -_08132B96: - pop {r4} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_stat_level_more_than - - thumb_func_start BattleAICmd_if_stat_level_equal -BattleAICmd_if_stat_level_equal: @ 0x08132B9C - push {r4, lr} - ldr r0, _08132BB0 - ldr r1, [r0] - ldrb r1, [r1, #1] - adds r4, r0, #0 - cmp r1, #1 - bne _08132BB8 - ldr r0, _08132BB4 - b _08132BBA - .align 2, 0 -_08132BB0: .4byte gUnknown_203A804 -_08132BB4: .4byte gUnknown_203A808 -_08132BB8: - ldr r0, _08132BF0 -_08132BBA: - ldrb r3, [r0] - ldr r1, _08132BF4 - ldr r2, [r4] - movs r0, #0x58 - muls r0, r3, r0 - ldrb r3, [r2, #2] - adds r0, r0, r3 - adds r1, #0x18 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrb r1, [r2, #3] - cmp r0, r1 - bne _08132BF8 - ldrb r1, [r2, #4] - ldrb r0, [r2, #5] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #6] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #7] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _08132BFE - .align 2, 0 -_08132BF0: .4byte gUnknown_2023EB0 -_08132BF4: .4byte gUnknown_2023D28 -_08132BF8: - adds r0, r2, #0 - adds r0, #8 - str r0, [r4] -_08132BFE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_stat_level_equal - - thumb_func_start BattleAICmd_if_stat_level_not_equal -BattleAICmd_if_stat_level_not_equal: @ 0x08132C04 - push {r4, lr} - ldr r0, _08132C18 - ldr r1, [r0] - ldrb r1, [r1, #1] - adds r4, r0, #0 - cmp r1, #1 - bne _08132C20 - ldr r0, _08132C1C - b _08132C22 - .align 2, 0 -_08132C18: .4byte gUnknown_203A804 -_08132C1C: .4byte gUnknown_203A808 -_08132C20: - ldr r0, _08132C58 -_08132C22: - ldrb r3, [r0] - ldr r1, _08132C5C - ldr r2, [r4] - movs r0, #0x58 - muls r0, r3, r0 - ldrb r3, [r2, #2] - adds r0, r0, r3 - adds r1, #0x18 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrb r1, [r2, #3] - cmp r0, r1 - beq _08132C60 - ldrb r1, [r2, #4] - ldrb r0, [r2, #5] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #6] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #7] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _08132C66 - .align 2, 0 -_08132C58: .4byte gUnknown_2023EB0 -_08132C5C: .4byte gUnknown_2023D28 -_08132C60: - adds r0, r2, #0 - adds r0, #8 - str r0, [r4] -_08132C66: - pop {r4} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_stat_level_not_equal - - thumb_func_start BattleAICmd_if_can_faint -BattleAICmd_if_can_faint: @ 0x08132C6C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r2, _08132D1C - ldr r0, _08132D20 - mov r8, r0 - ldr r0, [r0] - ldr r0, [r0, #0x14] - ldrh r1, [r0, #2] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #1] - cmp r0, #1 - bls _08132D50 - ldr r0, _08132D24 - movs r1, #0 - strh r1, [r0] - ldr r0, _08132D28 - ldr r0, [r0] - strb r1, [r0, #0x13] - ldr r0, _08132D2C - movs r7, #1 - strb r7, [r0, #0xe] - ldr r0, _08132D30 - strb r1, [r0] - ldr r0, _08132D34 - strb r7, [r0] - ldr r5, _08132D38 - mov r1, r8 - ldr r0, [r1] - ldr r0, [r0, #0x14] - ldrh r0, [r0, #2] - strh r0, [r5] - ldr r4, _08132D3C - ldrb r0, [r4] - ldr r6, _08132D40 - ldrb r1, [r6] - bl AI_CalcDmg - ldrh r0, [r5] - ldrb r1, [r4] - ldrb r2, [r6] - bl TypeCalc - ldr r4, _08132D44 - mov r1, r8 - ldr r0, [r1] - ldr r1, [r0, #0x14] - adds r0, r1, #0 - adds r0, #0x18 - ldrb r1, [r1, #1] - adds r0, r0, r1 - ldrb r1, [r0] - ldr r0, [r4] - muls r0, r1, r0 - movs r1, #0x64 - bl __divsi3 - str r0, [r4] - cmp r0, #0 - bne _08132CEC - str r7, [r4] -_08132CEC: - ldr r2, _08132D48 - ldrb r1, [r6] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - ldrh r1, [r0, #0x28] - ldr r0, [r4] - cmp r1, r0 - bgt _08132D50 - ldr r3, _08132D4C - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08132D58 - .align 2, 0 -_08132D1C: .4byte gUnknown_82ED220 -_08132D20: .4byte gUnknown_202414C -_08132D24: .4byte gUnknown_20240A4 -_08132D28: .4byte gUnknown_2024140 -_08132D2C: .4byte gUnknown_2024118 -_08132D30: .4byte gUnknown_2023F20 -_08132D34: .4byte gUnknown_2023EB5 -_08132D38: .4byte gUnknown_2023E8E -_08132D3C: .4byte gUnknown_203A808 -_08132D40: .4byte gUnknown_2023EB0 -_08132D44: .4byte gUnknown_2023E94 -_08132D48: .4byte gUnknown_2023D28 -_08132D4C: .4byte gUnknown_203A804 -_08132D50: - ldr r1, _08132D64 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] -_08132D58: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08132D64: .4byte gUnknown_203A804 - thumb_func_end BattleAICmd_if_can_faint - - thumb_func_start BattleAICmd_if_cant_faint -BattleAICmd_if_cant_faint: @ 0x08132D68 - push {r4, r5, r6, r7, lr} - ldr r2, _08132E04 - ldr r7, _08132E08 - ldr r0, [r7] - ldr r0, [r0, #0x14] - ldrh r1, [r0, #2] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #1] - cmp r0, #1 - bls _08132E38 - ldr r0, _08132E0C - movs r1, #0 - strh r1, [r0] - ldr r0, _08132E10 - ldr r0, [r0] - strb r1, [r0, #0x13] - ldr r0, _08132E14 - movs r2, #1 - strb r2, [r0, #0xe] - ldr r0, _08132E18 - strb r1, [r0] - ldr r0, _08132E1C - strb r2, [r0] - ldr r6, _08132E20 - ldr r0, [r7] - ldr r0, [r0, #0x14] - ldrh r0, [r0, #2] - strh r0, [r6] - ldr r4, _08132E24 - ldrb r0, [r4] - ldr r5, _08132E28 - ldrb r1, [r5] - bl AI_CalcDmg - ldrh r0, [r6] - ldrb r1, [r4] - ldrb r2, [r5] - bl TypeCalc - ldr r4, _08132E2C - ldr r0, [r7] - ldr r1, [r0, #0x14] - adds r0, r1, #0 - adds r0, #0x18 - ldrb r1, [r1, #1] - adds r0, r0, r1 - ldrb r1, [r0] - ldr r0, [r4] - muls r0, r1, r0 - movs r1, #0x64 - bl __divsi3 - str r0, [r4] - ldr r3, _08132E30 - ldrb r2, [r5] - movs r1, #0x58 - muls r1, r2, r1 - adds r1, r1, r3 - ldrh r1, [r1, #0x28] - cmp r1, r0 - ble _08132E38 - ldr r3, _08132E34 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08132E40 - .align 2, 0 -_08132E04: .4byte gUnknown_82ED220 -_08132E08: .4byte gUnknown_202414C -_08132E0C: .4byte gUnknown_20240A4 -_08132E10: .4byte gUnknown_2024140 -_08132E14: .4byte gUnknown_2024118 -_08132E18: .4byte gUnknown_2023F20 -_08132E1C: .4byte gUnknown_2023EB5 -_08132E20: .4byte gUnknown_2023E8E -_08132E24: .4byte gUnknown_203A808 -_08132E28: .4byte gUnknown_2023EB0 -_08132E2C: .4byte gUnknown_2023E94 -_08132E30: .4byte gUnknown_2023D28 -_08132E34: .4byte gUnknown_203A804 -_08132E38: - ldr r1, _08132E48 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] -_08132E40: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08132E48: .4byte gUnknown_203A804 - thumb_func_end BattleAICmd_if_cant_faint - - thumb_func_start BattleAICmd_if_has_move -BattleAICmd_if_has_move: @ 0x08132E4C - push {r4, r5, r6, r7, lr} - ldr r0, _08132E68 - ldr r5, [r0] - adds r7, r5, #2 - ldrb r1, [r5, #1] - adds r6, r0, #0 - cmp r1, #1 - beq _08132E76 - cmp r1, #1 - bgt _08132E6C - cmp r1, #0 - beq _08132F10 - b _08132F74 - .align 2, 0 -_08132E68: .4byte gUnknown_203A804 -_08132E6C: - cmp r1, #2 - beq _08132F10 - cmp r1, #3 - beq _08132EB8 - b _08132F74 -_08132E76: - movs r4, #0 - ldr r3, _08132EB0 - ldr r2, _08132EB4 - ldrb r1, [r2] - movs r0, #0x58 - muls r0, r1, r0 - adds r3, #0xc - adds r0, r0, r3 - ldrh r0, [r0] - ldrh r5, [r5, #2] - cmp r0, r5 - beq _08132EA8 - movs r5, #0x58 -_08132E90: - adds r4, #1 - cmp r4, #3 - bgt _08132EA8 - lsls r1, r4, #1 - ldrb r0, [r2] - muls r0, r5, r0 - adds r1, r1, r0 - adds r1, r1, r3 - ldrh r0, [r1] - ldrh r1, [r7] - cmp r0, r1 - bne _08132E90 -_08132EA8: - cmp r4, #4 - beq _08132F4C - b _08132F5C - .align 2, 0 -_08132EB0: .4byte gUnknown_2023D28 -_08132EB4: .4byte gUnknown_203A808 -_08132EB8: - ldr r3, _08132ED4 - ldr r2, _08132ED8 - ldrb r1, [r2] - movs r0, #2 - eors r0, r1 - movs r1, #0x58 - muls r1, r0, r1 - adds r0, r1, r3 - ldrh r0, [r0, #0x28] - cmp r0, #0 - bne _08132EDC - adds r0, r5, #0 - b _08132F4E - .align 2, 0 -_08132ED4: .4byte gUnknown_2023D28 -_08132ED8: .4byte gUnknown_203A808 -_08132EDC: - movs r4, #0 - adds r3, #0xc - adds r0, r1, r3 - ldrh r0, [r0] - ldrh r5, [r5, #2] - cmp r0, r5 - beq _08132EA8 - mov ip, r3 - adds r5, r2, #0 - movs r3, #2 -_08132EF0: - adds r4, #1 - cmp r4, #3 - bgt _08132EA8 - lsls r1, r4, #1 - ldrb r0, [r5] - adds r2, r3, #0 - eors r2, r0 - movs r0, #0x58 - muls r0, r2, r0 - adds r1, r1, r0 - add r1, ip - ldrh r0, [r1] - ldrh r1, [r7] - cmp r0, r1 - bne _08132EF0 - b _08132EA8 -_08132F10: - movs r4, #0 - ldr r3, _08132F54 - ldr r0, [r3] - ldr r1, [r0, #0x18] - ldr r2, _08132F58 - ldrb r0, [r2] - lsls r0, r0, #4 - adds r1, r1, r0 - ldrh r0, [r1] - ldrh r1, [r7] - cmp r0, r1 - beq _08132F48 - adds r7, r3, #0 - adds r5, r2, #0 - adds r3, r1, #0 -_08132F2E: - adds r4, #1 - cmp r4, #3 - bgt _08132F48 - ldr r0, [r7] - ldr r2, [r0, #0x18] - lsls r1, r4, #1 - ldrb r0, [r5] - lsls r0, r0, #4 - adds r1, r1, r0 - adds r2, r2, r1 - ldrh r0, [r2] - cmp r0, r3 - bne _08132F2E -_08132F48: - cmp r4, #4 - bne _08132F5C -_08132F4C: - ldr r0, [r6] -_08132F4E: - adds r0, #8 - str r0, [r6] - b _08132F74 - .align 2, 0 -_08132F54: .4byte gUnknown_202414C -_08132F58: .4byte gUnknown_2023EB0 -_08132F5C: - ldr r2, [r6] - ldrb r1, [r2, #4] - ldrb r0, [r2, #5] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #6] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #7] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r6] -_08132F74: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BattleAICmd_if_has_move - - thumb_func_start BattleAICmd_if_doesnt_have_move -BattleAICmd_if_doesnt_have_move: @ 0x08132F7C - push {r4, r5, r6, r7, lr} - ldr r1, _08132F98 - ldr r0, [r1] - adds r6, r0, #2 - ldrb r0, [r0, #1] - adds r5, r1, #0 - cmp r0, #1 - beq _08132FA4 - cmp r0, #1 - bgt _08132F9C - cmp r0, #0 - beq _08132FE8 - b _0813304C - .align 2, 0 -_08132F98: .4byte gUnknown_203A804 -_08132F9C: - cmp r0, #2 - beq _08132FE8 - cmp r0, #3 - bne _0813304C -_08132FA4: - movs r3, #0 - ldr r2, _08132FE0 - ldr r4, _08132FE4 - ldrb r1, [r4] - movs r0, #0x58 - muls r0, r1, r0 - adds r2, #0xc - adds r0, r0, r2 - ldrh r0, [r0] - ldrh r1, [r6] - cmp r0, r1 - beq _08132FDA - adds r7, r4, #0 - movs r6, #0x58 - adds r4, r2, #0 - adds r2, r1, #0 -_08132FC4: - adds r3, #1 - cmp r3, #3 - bgt _08132FDA - lsls r1, r3, #1 - ldrb r0, [r7] - muls r0, r6, r0 - adds r1, r1, r0 - adds r1, r1, r4 - ldrh r0, [r1] - cmp r0, r2 - bne _08132FC4 -_08132FDA: - cmp r3, #4 - bne _08133024 - b _08133034 - .align 2, 0 -_08132FE0: .4byte gUnknown_2023D28 -_08132FE4: .4byte gUnknown_203A808 -_08132FE8: - movs r3, #0 - ldr r4, _0813302C - ldr r0, [r4] - ldr r1, [r0, #0x18] - ldr r2, _08133030 - ldrb r0, [r2] - lsls r0, r0, #4 - adds r1, r1, r0 - ldrh r0, [r1] - ldrh r1, [r6] - cmp r0, r1 - beq _08133020 - adds r7, r4, #0 - adds r6, r2, #0 - adds r4, r1, #0 -_08133006: - adds r3, #1 - cmp r3, #3 - bgt _08133020 - ldr r0, [r7] - ldr r2, [r0, #0x18] - lsls r1, r3, #1 - ldrb r0, [r6] - lsls r0, r0, #4 - adds r1, r1, r0 - adds r2, r2, r1 - ldrh r0, [r2] - cmp r0, r4 - bne _08133006 -_08133020: - cmp r3, #4 - beq _08133034 -_08133024: - ldr r0, [r5] - adds r0, #8 - str r0, [r5] - b _0813304C - .align 2, 0 -_0813302C: .4byte gUnknown_202414C -_08133030: .4byte gUnknown_2023EB0 -_08133034: - ldr r2, [r5] - ldrb r1, [r2, #4] - ldrb r0, [r2, #5] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #6] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #7] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r5] -_0813304C: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BattleAICmd_if_doesnt_have_move - - thumb_func_start BattleAICmd_if_has_move_with_effect -BattleAICmd_if_has_move_with_effect: @ 0x08133054 - push {r4, r5, r6, r7, lr} - ldr r1, _0813306C - ldr r0, [r1] - ldrb r0, [r0, #1] - adds r5, r1, #0 - cmp r0, #1 - beq _08133078 - cmp r0, #1 - bgt _08133070 - cmp r0, #0 - beq _081330C4 - b _08133144 - .align 2, 0 -_0813306C: .4byte gUnknown_203A804 -_08133070: - cmp r0, #2 - beq _081330C4 - cmp r0, #3 - bne _08133144 -_08133078: - movs r3, #0 - ldr r1, _081330B4 - ldr r0, _081330B8 - ldrb r2, [r0] - ldr r6, _081330BC - movs r0, #0x58 - muls r0, r2, r0 - adds r1, #0xc - adds r2, r0, r1 - ldr r4, _081330C0 -_0813308C: - ldrh r0, [r2] - cmp r0, #0 - beq _081330A6 - adds r1, r0, #0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r1, [r4] - ldrb r0, [r0] - ldrb r1, [r1, #2] - cmp r0, r1 - beq _081330AE -_081330A6: - adds r2, #2 - adds r3, #1 - cmp r3, #3 - ble _0813308C -_081330AE: - cmp r3, #4 - beq _08133110 - b _0813312C - .align 2, 0 -_081330B4: .4byte gUnknown_2023D28 -_081330B8: .4byte gUnknown_203A808 -_081330BC: .4byte gUnknown_82ED220 -_081330C0: .4byte gUnknown_203A804 -_081330C4: - movs r3, #0 - ldr r1, _08133118 - ldr r0, _0813311C - ldrb r2, [r0] - ldr r0, _08133120 - mov ip, r0 - ldr r7, _08133124 - ldr r6, _08133128 - movs r0, #0x58 - muls r0, r2, r0 - adds r1, #0xc - adds r4, r0, r1 -_081330DC: - lsls r2, r3, #1 - ldrh r0, [r4] - cmp r0, #0 - beq _08133104 - ldr r0, [r7] - ldr r1, [r0, #0x18] - ldrb r0, [r6] - lsls r0, r0, #4 - adds r0, r2, r0 - adds r1, r1, r0 - ldrh r1, [r1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, ip - ldr r1, [r5] - ldrb r0, [r0] - ldrb r1, [r1, #2] - cmp r0, r1 - beq _0813310C -_08133104: - adds r4, #2 - adds r3, #1 - cmp r3, #3 - ble _081330DC -_0813310C: - cmp r3, #4 - bne _0813312C -_08133110: - ldr r0, [r5] - adds r0, #7 - str r0, [r5] - b _08133144 - .align 2, 0 -_08133118: .4byte gUnknown_2023D28 -_0813311C: .4byte gUnknown_203A808 -_08133120: .4byte gUnknown_82ED220 -_08133124: .4byte gUnknown_202414C -_08133128: .4byte gUnknown_2023EB0 -_0813312C: - ldr r2, [r5] - ldrb r1, [r2, #3] - ldrb r0, [r2, #4] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #6] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r5] -_08133144: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BattleAICmd_if_has_move_with_effect - - thumb_func_start BattleAICmd_if_doesnt_have_move_with_effect -BattleAICmd_if_doesnt_have_move_with_effect: @ 0x0813314C - push {r4, r5, r6, lr} - ldr r1, _08133164 - ldr r0, [r1] - ldrb r0, [r0, #1] - adds r4, r1, #0 - cmp r0, #1 - beq _08133170 - cmp r0, #1 - bgt _08133168 - cmp r0, #0 - beq _081331BC - b _08133228 - .align 2, 0 -_08133164: .4byte gUnknown_203A804 -_08133168: - cmp r0, #2 - beq _081331BC - cmp r0, #3 - bne _08133228 -_08133170: - movs r3, #0 - ldr r1, _081331AC - ldr r0, _081331B0 - ldrb r2, [r0] - ldr r6, _081331B4 - movs r0, #0x58 - muls r0, r2, r0 - adds r1, #0xc - adds r2, r0, r1 - ldr r5, _081331B8 -_08133184: - ldrh r0, [r2] - cmp r0, #0 - beq _0813319E - adds r1, r0, #0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r1, [r5] - ldrb r0, [r0] - ldrb r1, [r1, #2] - cmp r0, r1 - beq _081331A6 -_0813319E: - adds r2, #2 - adds r3, #1 - cmp r3, #3 - ble _08133184 -_081331A6: - cmp r3, #4 - bne _081331F6 - b _08133210 - .align 2, 0 -_081331AC: .4byte gUnknown_2023D28 -_081331B0: .4byte gUnknown_203A808 -_081331B4: .4byte gUnknown_82ED220 -_081331B8: .4byte gUnknown_203A804 -_081331BC: - movs r3, #0 - ldr r0, _08133200 - ldr r0, [r0] - ldr r1, [r0, #0x18] - ldr r0, _08133204 - ldrb r0, [r0] - ldr r6, _08133208 - lsls r0, r0, #4 - adds r2, r0, r1 - ldr r5, _0813320C -_081331D0: - ldrh r0, [r2] - cmp r0, #0 - beq _081331EA - adds r1, r0, #0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r1, [r5] - ldrb r0, [r0] - ldrb r1, [r1, #2] - cmp r0, r1 - beq _081331F2 -_081331EA: - adds r2, #2 - adds r3, #1 - cmp r3, #3 - ble _081331D0 -_081331F2: - cmp r3, #4 - beq _08133210 -_081331F6: - ldr r0, [r4] - adds r0, #7 - str r0, [r4] - b _08133228 - .align 2, 0 -_08133200: .4byte gUnknown_202414C -_08133204: .4byte gUnknown_2023EB0 -_08133208: .4byte gUnknown_82ED220 -_0813320C: .4byte gUnknown_203A804 -_08133210: - ldr r2, [r4] - ldrb r1, [r2, #3] - ldrb r0, [r2, #4] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #6] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] -_08133228: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BattleAICmd_if_doesnt_have_move_with_effect - - thumb_func_start BattleAICmd_if_any_move_disabled_or_encored -BattleAICmd_if_any_move_disabled_or_encored: @ 0x08133230 - push {r4, r5, lr} - ldr r0, _08133244 - ldr r1, [r0] - ldrb r1, [r1, #1] - adds r5, r0, #0 - cmp r1, #1 - bne _0813324C - ldr r0, _08133248 - b _0813324E - .align 2, 0 -_08133244: .4byte gUnknown_203A804 -_08133248: .4byte gUnknown_203A808 -_0813324C: - ldr r0, _0813326C -_0813324E: - ldrb r3, [r0] - adds r4, r5, #0 - ldr r2, [r4] - ldrb r0, [r2, #2] - cmp r0, #0 - bne _08133274 - ldr r0, _08133270 - lsls r1, r3, #3 - subs r1, r1, r3 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r0, [r1, #4] - cmp r0, #0 - beq _08133278 - b _0813328E - .align 2, 0 -_0813326C: .4byte gUnknown_2023EB0 -_08133270: .4byte gUnknown_2023F60 -_08133274: - cmp r0, #1 - beq _0813327E -_08133278: - adds r0, r2, #7 - str r0, [r4] - b _081332B0 -_0813327E: - ldr r0, _081332A8 - lsls r1, r3, #3 - subs r1, r1, r3 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r0, [r1, #6] - cmp r0, #0 - beq _081332AC -_0813328E: - ldrb r1, [r2, #3] - ldrb r0, [r2, #4] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #6] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _081332B0 - .align 2, 0 -_081332A8: .4byte gUnknown_2023F60 -_081332AC: - adds r0, r2, #7 - str r0, [r5] -_081332B0: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BattleAICmd_if_any_move_disabled_or_encored - - thumb_func_start BattleAICmd_if_curr_move_disabled_or_encored -BattleAICmd_if_curr_move_disabled_or_encored: @ 0x081332B8 - push {r4, lr} - ldr r4, _081332CC - ldr r3, [r4] - ldrb r0, [r3, #1] - cmp r0, #0 - beq _081332D0 - cmp r0, #1 - beq _081332FC - b _0813333C - .align 2, 0 -_081332CC: .4byte gUnknown_203A804 -_081332D0: - ldr r2, _081332F0 - ldr r0, _081332F4 - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, _081332F8 - ldr r1, [r1] - ldr r1, [r1, #0x14] - ldrh r0, [r0, #4] - ldrh r1, [r1, #2] - cmp r0, r1 - beq _08133318 - b _0813333C - .align 2, 0 -_081332F0: .4byte gUnknown_2023F60 -_081332F4: .4byte gUnknown_2023D08 -_081332F8: .4byte gUnknown_202414C -_081332FC: - ldr r2, _08133330 - ldr r0, _08133334 - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, _08133338 - ldr r1, [r1] - ldr r1, [r1, #0x14] - ldrh r0, [r0, #6] - ldrh r1, [r1, #2] - cmp r0, r1 - bne _0813333C -_08133318: - ldrb r1, [r3, #2] - ldrb r0, [r3, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r3, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r3, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _08133340 - .align 2, 0 -_08133330: .4byte gUnknown_2023F60 -_08133334: .4byte gUnknown_2023D08 -_08133338: .4byte gUnknown_202414C -_0813333C: - adds r0, r3, #6 - str r0, [r4] -_08133340: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BattleAICmd_if_curr_move_disabled_or_encored - - thumb_func_start BattleAICmd_flee -BattleAICmd_flee: @ 0x08133348 - ldr r0, _08133358 - ldr r0, [r0] - ldr r2, [r0, #0x14] - ldrb r1, [r2, #0x10] - movs r0, #0xb - orrs r0, r1 - strb r0, [r2, #0x10] - bx lr - .align 2, 0 -_08133358: .4byte gUnknown_202414C - thumb_func_end BattleAICmd_flee - - thumb_func_start BattleAICmd_if_random_safari_flee -BattleAICmd_if_random_safari_flee: @ 0x0813335C - push {r4, lr} - ldr r0, _081333A0 - ldr r0, [r0] - adds r0, #0x7b - ldrb r0, [r0] - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r4 - bhs _081333A8 - ldr r3, _081333A4 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _081333B0 - .align 2, 0 -_081333A0: .4byte gUnknown_2024140 -_081333A4: .4byte gUnknown_203A804 -_081333A8: - ldr r1, _081333B8 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] -_081333B0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081333B8: .4byte gUnknown_203A804 - thumb_func_end BattleAICmd_if_random_safari_flee - - thumb_func_start BattleAICmd_watch -BattleAICmd_watch: @ 0x081333BC - ldr r0, _081333CC - ldr r0, [r0] - ldr r2, [r0, #0x14] - ldrb r1, [r2, #0x10] - movs r0, #0xd - orrs r0, r1 - strb r0, [r2, #0x10] - bx lr - .align 2, 0 -_081333CC: .4byte gUnknown_202414C - thumb_func_end BattleAICmd_watch - - thumb_func_start BattleAICmd_get_hold_effect -BattleAICmd_get_hold_effect: @ 0x081333D0 - push {r4, lr} - ldr r0, _081333E0 - ldr r0, [r0] - ldrb r0, [r0, #1] - cmp r0, #1 - bne _081333E8 - ldr r0, _081333E4 - b _081333EA - .align 2, 0 -_081333E0: .4byte gUnknown_203A804 -_081333E4: .4byte gUnknown_203A808 -_081333E8: - ldr r0, _08133408 -_081333EA: - ldrb r2, [r0] - ldr r0, _0813340C - ldrb r0, [r0] - cmp r0, r2 - beq _08133414 - ldr r4, _08133410 - ldr r0, [r4] - ldr r0, [r0, #0x18] - adds r0, #0x44 - adds r0, r0, r2 - ldrb r0, [r0] - bl sub_080D6CF8 - ldr r1, [r4] - b _08133426 - .align 2, 0 -_08133408: .4byte gUnknown_2023EB0 -_0813340C: .4byte gUnknown_2023D08 -_08133410: .4byte gUnknown_202414C -_08133414: - ldr r1, _0813343C - movs r0, #0x58 - muls r0, r2, r0 - adds r0, r0, r1 - ldrh r0, [r0, #0x2e] - bl sub_080D6CF8 - ldr r1, _08133440 - ldr r1, [r1] -_08133426: - ldr r1, [r1, #0x14] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [r1, #8] - ldr r1, _08133444 - ldr r0, [r1] - adds r0, #2 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813343C: .4byte gUnknown_2023D28 -_08133440: .4byte gUnknown_202414C -_08133444: .4byte gUnknown_203A804 - thumb_func_end BattleAICmd_get_hold_effect - - thumb_func_start BattleAICmd_if_holds_item -BattleAICmd_if_holds_item: @ 0x08133448 - push {r4, lr} - ldr r0, _08133474 - ldr r0, [r0] - ldrb r0, [r0, #1] - bl BattleAI_GetWantedBattler - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - movs r0, #1 - ldr r1, _08133478 - ldrb r2, [r1] - adds r1, r3, #0 - ands r1, r0 - ands r0, r2 - cmp r1, r0 - bne _08133480 - ldr r1, _0813347C - movs r0, #0x58 - muls r0, r3, r0 - adds r0, r0, r1 - ldrh r3, [r0, #0x2e] - b _0813348C - .align 2, 0 -_08133474: .4byte gUnknown_203A804 -_08133478: .4byte gUnknown_203A808 -_0813347C: .4byte gUnknown_2023D28 -_08133480: - ldr r0, _081334B4 - ldr r0, [r0] - ldr r0, [r0, #0x18] - adds r0, #0x44 - adds r0, r0, r3 - ldrb r3, [r0] -_0813348C: - ldr r4, _081334B8 - ldr r2, [r4] - ldrb r1, [r2, #2] - ldrb r0, [r2, #3] - orrs r0, r1 - cmp r0, r3 - bne _081334BC - ldrb r1, [r2, #4] - ldrb r0, [r2, #5] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #6] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #7] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _081334C2 - .align 2, 0 -_081334B4: .4byte gUnknown_202414C -_081334B8: .4byte gUnknown_203A804 -_081334BC: - adds r0, r2, #0 - adds r0, #8 - str r0, [r4] -_081334C2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_holds_item - - thumb_func_start BattleAICmd_get_gender -BattleAICmd_get_gender: @ 0x081334C8 - push {lr} - ldr r0, _081334D8 - ldr r0, [r0] - ldrb r0, [r0, #1] - cmp r0, #1 - bne _081334E0 - ldr r0, _081334DC - b _081334E2 - .align 2, 0 -_081334D8: .4byte gUnknown_203A804 -_081334DC: .4byte gUnknown_203A808 -_081334E0: - ldr r0, _08133510 -_081334E2: - ldrb r1, [r0] - ldr r2, _08133514 - movs r0, #0x58 - muls r1, r0, r1 - adds r0, r1, r2 - ldrh r0, [r0] - adds r2, #0x48 - adds r1, r1, r2 - ldr r1, [r1] - bl GetGenderFromSpeciesAndPersonality - ldr r1, _08133518 - ldr r1, [r1] - ldr r1, [r1, #0x14] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [r1, #8] - ldr r1, _0813351C - ldr r0, [r1] - adds r0, #2 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08133510: .4byte gUnknown_2023EB0 -_08133514: .4byte gUnknown_2023D28 -_08133518: .4byte gUnknown_202414C -_0813351C: .4byte gUnknown_203A804 - thumb_func_end BattleAICmd_get_gender - - thumb_func_start BattleAICmd_is_first_turn_for -BattleAICmd_is_first_turn_for: @ 0x08133520 - push {r4, lr} - ldr r0, _08133534 - ldr r1, [r0] - ldrb r1, [r1, #1] - adds r4, r0, #0 - cmp r1, #1 - bne _0813353C - ldr r0, _08133538 - b _0813353E - .align 2, 0 -_08133534: .4byte gUnknown_203A804 -_08133538: .4byte gUnknown_203A808 -_0813353C: - ldr r0, _08133560 -_0813353E: - ldrb r3, [r0] - ldr r0, _08133564 - ldr r0, [r0] - ldr r2, [r0, #0x14] - ldr r1, _08133568 - lsls r0, r3, #3 - subs r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #0x16] - str r0, [r2, #8] - ldr r0, [r4] - adds r0, #2 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08133560: .4byte gUnknown_2023EB0 -_08133564: .4byte gUnknown_202414C -_08133568: .4byte gUnknown_2023F60 - thumb_func_end BattleAICmd_is_first_turn_for - - thumb_func_start BattleAICmd_get_stockpile_count -BattleAICmd_get_stockpile_count: @ 0x0813356C - push {r4, lr} - ldr r0, _08133580 - ldr r1, [r0] - ldrb r1, [r1, #1] - adds r4, r0, #0 - cmp r1, #1 - bne _08133588 - ldr r0, _08133584 - b _0813358A - .align 2, 0 -_08133580: .4byte gUnknown_203A804 -_08133584: .4byte gUnknown_203A808 -_08133588: - ldr r0, _081335AC -_0813358A: - ldrb r3, [r0] - ldr r0, _081335B0 - ldr r0, [r0] - ldr r2, [r0, #0x14] - ldr r1, _081335B4 - lsls r0, r3, #3 - subs r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #9] - str r0, [r2, #8] - ldr r0, [r4] - adds r0, #2 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081335AC: .4byte gUnknown_2023EB0 -_081335B0: .4byte gUnknown_202414C -_081335B4: .4byte gUnknown_2023F60 - thumb_func_end BattleAICmd_get_stockpile_count - - thumb_func_start BattleAICmd_is_double_battle -BattleAICmd_is_double_battle: @ 0x081335B8 - ldr r0, _081335D4 - ldr r0, [r0] - ldr r2, [r0, #0x14] - ldr r0, _081335D8 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - str r0, [r2, #8] - ldr r1, _081335DC - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - bx lr - .align 2, 0 -_081335D4: .4byte gUnknown_202414C -_081335D8: .4byte gUnknown_2022C90 -_081335DC: .4byte gUnknown_203A804 - thumb_func_end BattleAICmd_is_double_battle - - thumb_func_start BattleAICmd_get_used_held_item -BattleAICmd_get_used_held_item: @ 0x081335E0 - push {r4, lr} - ldr r0, _081335F4 - ldr r1, [r0] - ldrb r1, [r1, #1] - adds r4, r0, #0 - cmp r1, #1 - bne _081335FC - ldr r0, _081335F8 - b _081335FE - .align 2, 0 -_081335F4: .4byte gUnknown_203A804 -_081335F8: .4byte gUnknown_203A808 -_081335FC: - ldr r0, _08133620 -_081335FE: - ldrb r3, [r0] - ldr r0, _08133624 - ldr r0, [r0] - ldr r2, [r0, #0x14] - ldr r0, _08133628 - ldr r1, [r0] - lsls r0, r3, #1 - adds r0, r0, r1 - adds r0, #0xb8 - ldrb r0, [r0] - str r0, [r2, #8] - ldr r0, [r4] - adds r0, #2 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08133620: .4byte gUnknown_2023EB0 -_08133624: .4byte gUnknown_202414C -_08133628: .4byte gUnknown_2024140 - thumb_func_end BattleAICmd_get_used_held_item - - thumb_func_start BattleAICmd_get_move_type_from_result -BattleAICmd_get_move_type_from_result: @ 0x0813362C - ldr r0, _0813364C - ldr r0, [r0] - ldr r3, [r0, #0x14] - ldr r2, _08133650 - ldr r1, [r3, #8] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #2] - str r0, [r3, #8] - ldr r1, _08133654 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - bx lr - .align 2, 0 -_0813364C: .4byte gUnknown_202414C -_08133650: .4byte gUnknown_82ED220 -_08133654: .4byte gUnknown_203A804 - thumb_func_end BattleAICmd_get_move_type_from_result - - thumb_func_start BattleAICmd_get_move_power_from_result -BattleAICmd_get_move_power_from_result: @ 0x08133658 - ldr r0, _08133678 - ldr r0, [r0] - ldr r3, [r0, #0x14] - ldr r2, _0813367C - ldr r1, [r3, #8] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #1] - str r0, [r3, #8] - ldr r1, _08133680 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - bx lr - .align 2, 0 -_08133678: .4byte gUnknown_202414C -_0813367C: .4byte gUnknown_82ED220 -_08133680: .4byte gUnknown_203A804 - thumb_func_end BattleAICmd_get_move_power_from_result - - thumb_func_start BattleAICmd_get_move_effect_from_result -BattleAICmd_get_move_effect_from_result: @ 0x08133684 - ldr r0, _081336A4 - ldr r0, [r0] - ldr r3, [r0, #0x14] - ldr r2, _081336A8 - ldr r1, [r3, #8] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0] - str r0, [r3, #8] - ldr r1, _081336AC - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - bx lr - .align 2, 0 -_081336A4: .4byte gUnknown_202414C -_081336A8: .4byte gUnknown_82ED220 -_081336AC: .4byte gUnknown_203A804 - thumb_func_end BattleAICmd_get_move_effect_from_result - - thumb_func_start BattleAICmd_get_protect_count -BattleAICmd_get_protect_count: @ 0x081336B0 - push {r4, lr} - ldr r0, _081336C4 - ldr r1, [r0] - ldrb r1, [r1, #1] - adds r4, r0, #0 - cmp r1, #1 - bne _081336CC - ldr r0, _081336C8 - b _081336CE - .align 2, 0 -_081336C4: .4byte gUnknown_203A804 -_081336C8: .4byte gUnknown_203A808 -_081336CC: - ldr r0, _081336F0 -_081336CE: - ldrb r3, [r0] - ldr r0, _081336F4 - ldr r0, [r0] - ldr r2, [r0, #0x14] - ldr r1, _081336F8 - lsls r0, r3, #3 - subs r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #8] - str r0, [r2, #8] - ldr r0, [r4] - adds r0, #2 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081336F0: .4byte gUnknown_2023EB0 -_081336F4: .4byte gUnknown_202414C -_081336F8: .4byte gUnknown_2023F60 - thumb_func_end BattleAICmd_get_protect_count - - thumb_func_start sub_081336FC -sub_081336FC: @ 0x081336FC - bx lr - .align 2, 0 - thumb_func_end sub_081336FC - - thumb_func_start sub_08133700 -sub_08133700: @ 0x08133700 - bx lr - .align 2, 0 - thumb_func_end sub_08133700 - - thumb_func_start sub_08133704 -sub_08133704: @ 0x08133704 - bx lr - .align 2, 0 - thumb_func_end sub_08133704 - - thumb_func_start sub_08133708 -sub_08133708: @ 0x08133708 - bx lr - .align 2, 0 - thumb_func_end sub_08133708 - - thumb_func_start sub_0813370C -sub_0813370C: @ 0x0813370C - bx lr - .align 2, 0 - thumb_func_end sub_0813370C - - thumb_func_start sub_08133710 -sub_08133710: @ 0x08133710 - bx lr - .align 2, 0 - thumb_func_end sub_08133710 - - thumb_func_start BattleAICmd_call -BattleAICmd_call: @ 0x08133714 - push {r4, lr} - ldr r4, _08133740 - ldr r0, [r4] - adds r0, #5 - bl sub_081339A0 - ldr r2, [r4] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08133740: .4byte gUnknown_203A804 - thumb_func_end BattleAICmd_call - - thumb_func_start sub_08133744 -sub_08133744: @ 0x08133744 - ldr r3, _08133760 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - bx lr - .align 2, 0 -_08133760: .4byte gUnknown_203A804 - thumb_func_end sub_08133744 - - thumb_func_start BattleAICmd_end -BattleAICmd_end: @ 0x08133764 - push {lr} - bl sub_081339EC - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0813377E - ldr r0, _08133784 - ldr r0, [r0] - ldr r2, [r0, #0x14] - ldrb r1, [r2, #0x10] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #0x10] -_0813377E: - pop {r0} - bx r0 - .align 2, 0 -_08133784: .4byte gUnknown_202414C - thumb_func_end BattleAICmd_end - - thumb_func_start BattleAICmd_if_level_cond -BattleAICmd_if_level_cond: @ 0x08133788 - push {r4, r5, lr} - ldr r5, _081337A0 - ldr r4, [r5] - ldrb r0, [r4, #1] - cmp r0, #1 - beq _081337DC - cmp r0, #1 - bgt _081337A4 - cmp r0, #0 - beq _081337AA - b _08133858 - .align 2, 0 -_081337A0: .4byte gUnknown_203A804 -_081337A4: - cmp r0, #2 - beq _0813380C - b _08133858 -_081337AA: - ldr r3, _081337D0 - ldr r0, _081337D4 - ldrb r0, [r0] - movs r2, #0x58 - adds r1, r0, #0 - muls r1, r2, r1 - adds r1, r1, r3 - adds r1, #0x2a - ldr r0, _081337D8 - ldrb r0, [r0] - muls r0, r2, r0 - adds r0, r0, r3 - adds r0, #0x2a - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bhi _0813382E - b _08133854 - .align 2, 0 -_081337D0: .4byte gUnknown_2023D28 -_081337D4: .4byte gUnknown_203A808 -_081337D8: .4byte gUnknown_2023EB0 -_081337DC: - ldr r3, _08133800 - ldr r0, _08133804 - ldrb r0, [r0] - movs r2, #0x58 - adds r1, r0, #0 - muls r1, r2, r1 - adds r1, r1, r3 - adds r1, #0x2a - ldr r0, _08133808 - ldrb r0, [r0] - muls r0, r2, r0 - adds r0, r0, r3 - adds r0, #0x2a - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - blo _0813382E - b _08133854 - .align 2, 0 -_08133800: .4byte gUnknown_2023D28 -_08133804: .4byte gUnknown_203A808 -_08133808: .4byte gUnknown_2023EB0 -_0813380C: - ldr r3, _08133848 - ldr r0, _0813384C - ldrb r0, [r0] - movs r2, #0x58 - adds r1, r0, #0 - muls r1, r2, r1 - adds r1, r1, r3 - adds r1, #0x2a - ldr r0, _08133850 - ldrb r0, [r0] - muls r0, r2, r0 - adds r0, r0, r3 - adds r0, #0x2a - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bne _08133854 -_0813382E: - ldrb r1, [r4, #2] - ldrb r0, [r4, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r4, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r4, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r5] - b _08133858 - .align 2, 0 -_08133848: .4byte gUnknown_2023D28 -_0813384C: .4byte gUnknown_203A808 -_08133850: .4byte gUnknown_2023EB0 -_08133854: - adds r0, r4, #6 - str r0, [r5] -_08133858: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BattleAICmd_if_level_cond - - thumb_func_start BattleAICmd_if_target_taunted -BattleAICmd_if_target_taunted: @ 0x08133860 - push {lr} - ldr r2, _08133894 - ldr r0, _08133898 - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #0x13] - lsls r0, r0, #0x1c - cmp r0, #0 - beq _081338A0 - ldr r3, _0813389C - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _081338A8 - .align 2, 0 -_08133894: .4byte gUnknown_2023F60 -_08133898: .4byte gUnknown_2023EB0 -_0813389C: .4byte gUnknown_203A804 -_081338A0: - ldr r1, _081338AC - ldr r0, [r1] - adds r0, #5 - str r0, [r1] -_081338A8: - pop {r0} - bx r0 - .align 2, 0 -_081338AC: .4byte gUnknown_203A804 - thumb_func_end BattleAICmd_if_target_taunted - - thumb_func_start BattleAICmd_if_target_not_taunted -BattleAICmd_if_target_not_taunted: @ 0x081338B0 - push {lr} - ldr r2, _081338E4 - ldr r0, _081338E8 - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #0x13] - lsls r0, r0, #0x1c - cmp r0, #0 - bne _081338F0 - ldr r3, _081338EC - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _081338F8 - .align 2, 0 -_081338E4: .4byte gUnknown_2023F60 -_081338E8: .4byte gUnknown_2023EB0 -_081338EC: .4byte gUnknown_203A804 -_081338F0: - ldr r1, _081338FC - ldr r0, [r1] - adds r0, #5 - str r0, [r1] -_081338F8: - pop {r0} - bx r0 - .align 2, 0 -_081338FC: .4byte gUnknown_203A804 - thumb_func_end BattleAICmd_if_target_not_taunted - - thumb_func_start BattleAICmd_if_target_is_ally -BattleAICmd_if_target_is_ally: @ 0x08133900 - push {lr} - ldr r0, _08133934 - ldrb r3, [r0] - movs r0, #1 - ldr r1, _08133938 - ldrb r2, [r1] - adds r1, r0, #0 - ands r1, r3 - ands r0, r2 - cmp r1, r0 - bne _08133940 - ldr r3, _0813393C - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08133948 - .align 2, 0 -_08133934: .4byte gUnknown_203A808 -_08133938: .4byte gUnknown_2023EB0 -_0813393C: .4byte gUnknown_203A804 -_08133940: - ldr r1, _0813394C - ldr r0, [r1] - adds r0, #5 - str r0, [r1] -_08133948: - pop {r0} - bx r0 - .align 2, 0 -_0813394C: .4byte gUnknown_203A804 - thumb_func_end BattleAICmd_if_target_is_ally - - thumb_func_start BattleAICmd_if_flash_fired -BattleAICmd_if_flash_fired: @ 0x08133950 - push {r4, lr} - ldr r4, _0813398C - ldr r0, [r4] - ldrb r0, [r0, #1] - bl BattleAI_GetWantedBattler - lsls r0, r0, #0x18 - ldr r1, _08133990 - ldr r1, [r1] - ldr r1, [r1, #4] - lsrs r0, r0, #0x16 - adds r1, r1, r0 - ldr r0, [r1] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08133994 - ldr r2, [r4] - ldrb r1, [r2, #2] - ldrb r0, [r2, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _0813399A - .align 2, 0 -_0813398C: .4byte gUnknown_203A804 -_08133990: .4byte gUnknown_202414C -_08133994: - ldr r0, [r4] - adds r0, #6 - str r0, [r4] -_0813399A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_flash_fired - - thumb_func_start sub_081339A0 -sub_081339A0: @ 0x081339A0 - push {r4, lr} - ldr r1, _081339C0 - ldr r1, [r1] - ldr r3, [r1, #0x1c] - adds r4, r3, #0 - adds r4, #0x20 - ldrb r1, [r4] - adds r2, r1, #1 - strb r2, [r4] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x16 - adds r3, r3, r1 - str r0, [r3] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081339C0: .4byte gUnknown_202414C - thumb_func_end sub_081339A0 - - thumb_func_start AIStackPushVar_cursor -AIStackPushVar_cursor: @ 0x081339C4 - ldr r0, _081339E4 - ldr r0, [r0] - ldr r2, [r0, #0x1c] - adds r3, r2, #0 - adds r3, #0x20 - ldrb r0, [r3] - adds r1, r0, #1 - strb r1, [r3] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r2, r2, r0 - ldr r0, _081339E8 - ldr r0, [r0] - str r0, [r2] - bx lr - .align 2, 0 -_081339E4: .4byte gUnknown_202414C -_081339E8: .4byte gUnknown_203A804 - thumb_func_end AIStackPushVar_cursor - - thumb_func_start sub_081339EC -sub_081339EC: @ 0x081339EC - push {lr} - ldr r3, _08133A04 - ldr r0, [r3] - ldr r0, [r0, #0x1c] - adds r1, r0, #0 - adds r1, #0x20 - ldrb r0, [r1] - cmp r0, #0 - bne _08133A08 - movs r0, #0 - b _08133A22 - .align 2, 0 -_08133A04: .4byte gUnknown_202414C -_08133A08: - subs r0, #1 - strb r0, [r1] - ldr r2, _08133A28 - ldr r0, [r3] - ldr r1, [r0, #0x1c] - adds r0, r1, #0 - adds r0, #0x20 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r2] - movs r0, #1 -_08133A22: - pop {r1} - bx r1 - .align 2, 0 -_08133A28: .4byte gUnknown_203A804 - thumb_func_end sub_081339EC - - thumb_func_start TraderSetup -TraderSetup: @ 0x08133A2C - push {r4, r5, r6, lr} - ldr r0, _08133A80 - ldr r1, [r0] - ldr r0, _08133A84 - adds r5, r1, r0 - movs r2, #0 - movs r0, #2 - strb r0, [r5] - ldr r0, _08133A88 - adds r1, r1, r0 - strb r2, [r1] - movs r4, #0 - ldr r6, _08133A8C -_08133A46: - movs r0, #0xb - muls r0, r4, r0 - adds r0, #5 - adds r0, r5, r0 - lsls r1, r4, #2 - adds r1, r1, r6 - ldr r1, [r1] - bl StringCopy - adds r1, r5, #1 - adds r1, r1, r4 - ldr r0, _08133A90 - adds r0, r4, r0 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x32 - adds r0, r0, r4 - movs r1, #1 - strb r1, [r0] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _08133A46 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08133A80: .4byte gUnknown_3005AEC -_08133A84: .4byte 0x00002E28 -_08133A88: .4byte 0x00002E59 -_08133A8C: .4byte gUnknown_858F7F4 -_08133A90: .4byte gUnknown_858F804 - thumb_func_end TraderSetup - - thumb_func_start sub_08133A94 -sub_08133A94: @ 0x08133A94 - ldr r0, _08133AA4 - ldr r0, [r0] - ldr r1, _08133AA8 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - bx lr - .align 2, 0 -_08133AA4: .4byte gUnknown_3005AEC -_08133AA8: .4byte 0x00002E59 - thumb_func_end sub_08133A94 - - thumb_func_start AnimMudSportDirt -AnimMudSportDirt: @ 0x08133AAC - push {r4, r5, r6, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _08133B0C - adds r5, r1, r0 - ldr r0, _08133B10 - ldr r0, [r0] - ldr r1, _08133B14 - adds r6, r0, r1 - ldr r0, _08133B18 - bl AddWindow - strh r0, [r5, #6] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0x85 - lsls r2, r2, #2 - movs r1, #0 - movs r3, #0xe - bl DrawStdFrameWithCustomTileAndPalette - movs r4, #0 -_08133AE0: - adds r0, r6, #1 - adds r1, r0, r4 - ldrb r0, [r1] - cmp r0, #0x78 - bls _08133B20 - ldrb r0, [r5, #6] - lsls r1, r4, #4 - adds r1, #2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - ldr r2, _08133B1C - movs r3, #8 - bl AddTextPrinterParameterized - b _08133B48 - .align 2, 0 -_08133B0C: .4byte gUnknown_3005B68 -_08133B10: .4byte gUnknown_3005AEC -_08133B14: .4byte 0x00002E28 -_08133B18: .4byte gUnknown_858F808 -_08133B1C: .4byte gUnknown_85C93F9 -_08133B20: - ldrb r0, [r5, #6] - ldrb r1, [r1] - lsls r2, r1, #3 - subs r2, r2, r1 - lsls r2, r2, #2 - ldr r1, _08133B94 - adds r2, r2, r1 - lsls r1, r4, #4 - adds r1, #2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - movs r3, #8 - bl AddTextPrinterParameterized -_08133B48: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _08133AE0 - ldrb r0, [r5, #6] - ldr r2, _08133B98 - lsls r1, r4, #4 - adds r1, #2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r4, #0 - str r4, [sp, #8] - movs r1, #1 - movs r3, #8 - bl AddTextPrinterParameterized - ldrb r0, [r5, #6] - movs r1, #0x10 - str r1, [sp] - movs r1, #5 - str r1, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl sub_081984B0 - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08133B94: .4byte gUnknown_8580CD1 -_08133B98: .4byte gUnknown_85C93C8 - thumb_func_end AnimMudSportDirt - - thumb_func_start sub_08133B9C -sub_08133B9C: @ 0x08133B9C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r2, r1, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _08133BC0 - adds r4, r0, r1 - cmp r2, #0x78 - bls _08133BCC - ldr r1, _08133BC4 - ldr r2, _08133BC8 - adds r0, r2, #0 - strh r0, [r1] - b _08133BD0 - .align 2, 0 -_08133BC0: .4byte gUnknown_3005B68 -_08133BC4: .4byte gUnknown_2037280 -_08133BC8: .4byte 0x0000FFFF -_08133BCC: - ldr r0, _08133BFC - strh r2, [r0] -_08133BD0: - ldrb r0, [r4, #6] - movs r1, #0 - bl sub_08198134 - ldrb r0, [r4, #6] - bl ClearWindowTilemap - ldrb r0, [r4, #6] - bl RemoveWindow - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r5, #0 - bl DestroyTask - bl EnableBothScriptContexts - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08133BFC: .4byte gUnknown_2037280 - thumb_func_end sub_08133B9C - - thumb_func_start OpponentHandleTrainerSlide -OpponentHandleTrainerSlide: @ 0x08133C00 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _08133C2C - ldr r0, [r0] - ldr r1, _08133C30 - adds r5, r0, r1 - bl Menu_ProcessInput - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - asrs r1, r0, #0x18 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _08133C38 - cmp r1, r0 - bgt _08133C34 - subs r0, #1 - cmp r1, r0 - beq _08133C70 - b _08133C48 - .align 2, 0 -_08133C2C: .4byte gUnknown_3005AEC -_08133C30: .4byte 0x00002E28 -_08133C34: - cmp r1, #4 - bne _08133C48 -_08133C38: - movs r0, #5 - bl sub_080A306C - adds r0, r6, #0 - movs r1, #0 - bl sub_08133B9C - b _08133C70 -_08133C48: - movs r0, #5 - bl sub_080A306C - ldr r0, _08133C78 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - strh r4, [r0] - ldr r0, _08133C7C - movs r1, #0xb - muls r1, r4, r1 - adds r1, #5 - adds r1, r5, r1 - bl StringCopy - adds r0, r5, #1 - adds r0, r0, r4 - ldrb r1, [r0] - adds r0, r6, #0 - bl sub_08133B9C -_08133C70: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08133C78: .4byte gUnknown_2037282 -_08133C7C: .4byte gUnknown_2021C40 - thumb_func_end OpponentHandleTrainerSlide - - thumb_func_start ScrSpecial_GetTraderTradedFlag -ScrSpecial_GetTraderTradedFlag: @ 0x08133C80 - ldr r0, _08133C90 - ldr r0, [r0] - ldr r1, _08133C94 - ldr r2, _08133C98 - adds r0, r0, r2 - ldrb r0, [r0] - strh r0, [r1] - bx lr - .align 2, 0 -_08133C90: .4byte gUnknown_3005AEC -_08133C94: .4byte gUnknown_2037290 -_08133C98: .4byte 0x00002E59 - thumb_func_end ScrSpecial_GetTraderTradedFlag - - thumb_func_start ScrSpecial_DoesPlayerHaveNoDecorations -ScrSpecial_DoesPlayerHaveNoDecorations: @ 0x08133C9C - push {r4, r5, lr} - movs r4, #0 - ldr r5, _08133CB4 -_08133CA2: - adds r0, r4, #0 - bl GetNumOwnedDecorationsInCategory - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08133CB8 - movs r0, #0 - strh r0, [r5] - b _08133CC8 - .align 2, 0 -_08133CB4: .4byte gUnknown_2037290 -_08133CB8: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #7 - bls _08133CA2 - ldr r1, _08133CD0 - movs r0, #1 - strh r0, [r1] -_08133CC8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08133CD0: .4byte gUnknown_2037290 - thumb_func_end ScrSpecial_DoesPlayerHaveNoDecorations - - thumb_func_start sub_08133CD4 -sub_08133CD4: @ 0x08133CD4 - push {r4, r5, r6, lr} - ldr r6, _08133D2C - movs r0, #0 - strh r0, [r6] - ldr r4, _08133D30 - ldr r5, _08133D34 - ldrh r1, [r5] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r2, r0, r4 - ldr r0, _08133D38 - ldrh r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r1, [r2, #0xe] - ldrb r0, [r0, #0xe] - cmp r1, r0 - beq _08133D26 - adds r0, r1, #0 - bl GetFirstEmptyDecorSlot - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _08133D26 - ldr r0, _08133D3C - ldrh r2, [r5] - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r1, [r1, #0xe] - bl CopyDecorationCategoryName - movs r0, #1 - strh r0, [r6] -_08133D26: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08133D2C: .4byte gUnknown_2037290 -_08133D30: .4byte gUnknown_8580CD0 -_08133D34: .4byte gUnknown_2037280 -_08133D38: .4byte gUnknown_2037284 -_08133D3C: .4byte gUnknown_2021C54 - thumb_func_end sub_08133CD4 - - thumb_func_start sub_08133D40 -sub_08133D40: @ 0x08133D40 - push {lr} - ldr r0, _08133D50 - movs r1, #0 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_08133D50: .4byte ShowDecorationCategoriesWindow - thumb_func_end sub_08133D40 - - thumb_func_start ResetTrainerHillResults -ResetTrainerHillResults: @ 0x08133D54 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - bl IsSelectedDecorInThePC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08133DB8 - ldr r5, _08133D9C - ldr r0, _08133DA0 - ldrb r1, [r0] - ldr r0, _08133DA4 - ldr r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - strh r0, [r5] - ldr r0, _08133DA8 - ldr r1, _08133DAC - ldrh r2, [r1] - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - ldr r4, _08133DB0 - adds r1, r1, r4 - bl StringCopy - ldr r0, _08133DB4 - ldrh r2, [r5] - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r4 - bl StringCopy - b _08133DC0 - .align 2, 0 -_08133D9C: .4byte gUnknown_2037284 -_08133DA0: .4byte gUnknown_2039E3E -_08133DA4: .4byte gUnknown_2039E18 -_08133DA8: .4byte gUnknown_2021C68 -_08133DAC: .4byte gUnknown_2037280 -_08133DB0: .4byte gUnknown_8580CD1 -_08133DB4: .4byte gUnknown_2021C54 -_08133DB8: - ldr r1, _08133DD0 - ldr r2, _08133DD4 - adds r0, r2, #0 - strh r0, [r1] -_08133DC0: - adds r0, r6, #0 - bl DestroyTask - bl EnableBothScriptContexts - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08133DD0: .4byte gUnknown_2037284 -_08133DD4: .4byte 0x0000FFFF - thumb_func_end ResetTrainerHillResults - - thumb_func_start ExitTraderMenu -ExitTraderMenu: @ 0x08133DD8 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08133DF0 - movs r1, #0 - strh r1, [r2] - bl DestroyTask - bl EnableBothScriptContexts - pop {r0} - bx r0 - .align 2, 0 -_08133DF0: .4byte gUnknown_2037284 - thumb_func_end ExitTraderMenu - - thumb_func_start ScrSpecial_TraderDoDecorationTrade -ScrSpecial_TraderDoDecorationTrade: @ 0x08133DF4 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - ldr r0, _08133E54 - ldr r6, [r0] - ldr r0, _08133E58 - adds r5, r6, r0 - ldr r1, _08133E5C - mov r8, r1 - ldrb r0, [r1] - bl DecorationRemove - ldr r0, _08133E60 - ldrb r0, [r0] - bl sub_08161868 - ldr r4, _08133E64 - ldrh r1, [r4] - movs r0, #0xb - muls r0, r1, r0 - adds r0, #5 - adds r5, r5, r0 - ldr r0, _08133E68 - ldr r1, [r0] - adds r0, r5, #0 - bl StringCopy - ldr r2, _08133E6C - adds r0, r6, r2 - ldrh r1, [r4] - adds r0, r0, r1 - mov r2, r8 - ldrh r1, [r2] - strb r1, [r0] - ldr r1, _08133E70 - adds r0, r6, r1 - ldrh r4, [r4] - adds r0, r0, r4 - movs r1, #1 - strb r1, [r0] - ldr r2, _08133E74 - adds r6, r6, r2 - strb r1, [r6] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08133E54: .4byte gUnknown_3005AEC -_08133E58: .4byte 0x00002E28 -_08133E5C: .4byte gUnknown_2037284 -_08133E60: .4byte gUnknown_2037280 -_08133E64: .4byte gUnknown_2037282 -_08133E68: .4byte gUnknown_3005AF0 -_08133E6C: .4byte 0x00002E29 -_08133E70: .4byte 0x00002E5A -_08133E74: .4byte 0x00002E59 - thumb_func_end ScrSpecial_TraderDoDecorationTrade - - thumb_func_start ScrSpecial_TraderMenuGetDecoration -ScrSpecial_TraderMenuGetDecoration: @ 0x08133E78 - push {lr} - ldr r0, _08133E90 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl AnimMudSportDirt - pop {r0} - bx r0 - .align 2, 0 -_08133E90: .4byte OpponentHandleTrainerSlide - thumb_func_end ScrSpecial_TraderMenuGetDecoration - - thumb_func_start GetStarterPokemon -GetStarterPokemon: @ 0x08133E94 - push {lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #3 - bls _08133EA0 - movs r1, #0 -_08133EA0: - ldr r0, _08133EAC - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - pop {r1} - bx r1 - .align 2, 0 -_08133EAC: .4byte gUnknown_8590C08 - thumb_func_end GetStarterPokemon - - thumb_func_start WallClockVblankCallback -WallClockVblankCallback: @ 0x08133EB0 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WallClockVblankCallback - - thumb_func_start CB2_ChooseStarter -CB2_ChooseStarter: @ 0x08133EC4 - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - sub sp, #0xc - movs r0, #0 - bl SetVBlankCallback - movs r0, #0 - movs r1, #0 - bl SetGpuReg - movs r0, #0xe - movs r1, #0 - bl SetGpuReg - movs r0, #0xc - movs r1, #0 - bl SetGpuReg - movs r0, #0xa - movs r1, #0 - bl SetGpuReg - movs r0, #8 - movs r1, #0 - bl SetGpuReg - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - add r1, sp, #4 - movs r0, #0 - strh r0, [r1] - ldr r2, _08134138 - str r1, [r2] - movs r1, #0xc0 - lsls r1, r1, #0x13 - str r1, [r2, #4] - ldr r0, _0813413C - str r0, [r2, #8] - ldr r0, [r2, #8] - movs r0, #0 - mov sb, r0 - str r0, [sp, #8] - add r0, sp, #8 - str r0, [r2] - movs r0, #0xe0 - lsls r0, r0, #0x13 - str r0, [r2, #4] - ldr r0, _08134140 - str r0, [r2, #8] - ldr r0, [r2, #8] - add r0, sp, #4 - mov r3, sb - strh r3, [r0] - str r0, [r2] - movs r0, #0xa0 - lsls r0, r0, #0x13 - str r0, [r2, #4] - ldr r0, _08134144 - str r0, [r2, #8] - ldr r0, [r2, #8] - ldr r0, _08134148 - bl LZ77UnCompVram - ldr r0, _0813414C - ldr r1, _08134150 - bl LZ77UnCompVram - ldr r0, _08134154 - ldr r1, _08134158 - bl LZ77UnCompVram - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _0813415C - movs r0, #0 - movs r2, #3 - bl InitBgsFromTemplates - ldr r0, _08134160 - bl InitWindows - bl sub_08004480 - movs r1, #0xa6 - lsls r1, r1, #2 - movs r0, #0 - movs r2, #0xd0 - bl LoadUserWindowBorderGfx - bl sub_08199640 - bl ScanlineEffect_Stop - bl ResetTasks - bl ResetSpriteData - bl ResetPaletteFade - bl FreeAllSpritePalettes - bl ResetAllPicSprites - bl sub_080985EC - movs r1, #0xe0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _08134164 - movs r1, #0 - movs r2, #0x40 - bl LoadPalette - ldr r0, _08134168 - bl LoadCompressedSpriteSheet - ldr r0, _0813416C - bl LoadCompressedSpriteSheet - ldr r0, _08134170 - bl LoadSpritePalettes - movs r0, #1 - rsbs r0, r0, #0 - mov r1, sb - str r1, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - movs r0, #1 - bl EnableInterrupts - ldr r0, _08134174 - bl SetVBlankCallback - ldr r0, _08134178 - bl SetMainCallback2 - movs r0, #0x48 - movs r1, #0x3f - bl SetGpuReg - movs r0, #0x4a - movs r1, #0x1f - bl SetGpuReg - movs r0, #0x40 - movs r1, #0 - bl SetGpuReg - movs r0, #0x44 - movs r1, #0 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0xfe - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #7 - bl SetGpuReg - movs r1, #0xc1 - lsls r1, r1, #6 - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg - ldr r0, _0813417C - movs r1, #0 - bl CreateTask - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _08134180 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r3, #1 - mov sl, r3 - mov r1, sl - strh r1, [r0, #8] - ldr r0, _08134184 - movs r1, #0x78 - movs r2, #0x38 - movs r3, #2 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _08134188 - mov r8, r3 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - add r1, r8 - strh r4, [r1, #0x2e] - ldr r6, _0813418C - ldr r5, _08134190 - ldrb r1, [r5] - ldrb r2, [r5, #1] - adds r0, r6, #0 - movs r3, #2 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - add r1, r8 - strh r4, [r1, #0x2e] - mov r0, sb - strh r0, [r1, #0x30] - ldrb r1, [r5, #2] - ldrb r2, [r5, #3] - adds r0, r6, #0 - movs r3, #2 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - add r1, r8 - strh r4, [r1, #0x2e] - mov r3, sl - strh r3, [r1, #0x30] - ldrb r1, [r5, #4] - ldrb r2, [r5, #5] - adds r0, r6, #0 - movs r3, #2 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - add r1, r8 - strh r4, [r1, #0x2e] - movs r0, #2 - strh r0, [r1, #0x30] - ldr r1, _08134194 - movs r0, #0xff - strh r0, [r1] - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08134138: .4byte 0x040000D4 -_0813413C: .4byte 0x8100C000 -_08134140: .4byte 0x85000100 -_08134144: .4byte 0x81000200 -_08134148: .4byte gUnknown_858FC14 -_0813414C: .4byte gUnknown_858F890 -_08134150: .4byte 0x06003000 -_08134154: .4byte gUnknown_858FA1C -_08134158: .4byte 0x06003800 -_0813415C: .4byte gUnknown_8590C10 -_08134160: .4byte gUnknown_8590BDC -_08134164: .4byte gUnknown_858F810 -_08134168: .4byte gUnknown_8590CE8 -_0813416C: .4byte gUnknown_8590CF8 -_08134170: .4byte gUnknown_8590D08 -_08134174: .4byte WallClockVblankCallback -_08134178: .4byte MainCallback2_StarterChoose -_0813417C: .4byte Task_StarterChoose1 -_08134180: .4byte gUnknown_3005B60 -_08134184: .4byte gUnknown_8590D20 -_08134188: .4byte gUnknown_20205AC -_0813418C: .4byte gUnknown_8590D38 -_08134190: .4byte gUnknown_8590BFC -_08134194: .4byte gUnknown_30011F8 - thumb_func_end CB2_ChooseStarter - - thumb_func_start MainCallback2_StarterChoose -MainCallback2_StarterChoose: @ 0x08134198 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end MainCallback2_StarterChoose - - thumb_func_start Task_StarterChoose1 -Task_StarterChoose1: @ 0x081341B4 - push {r4, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08134208 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - adds r4, r4, r1 - ldrb r0, [r4, #8] - bl sub_08134480 - movs r2, #0xa6 - lsls r2, r2, #2 - movs r0, #0 - movs r1, #0 - movs r3, #0xd - bl DrawStdFrameWithCustomTileAndPalette - ldr r2, _0813420C - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - movs r0, #0 - bl PutWindowTilemap - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, _08134210 - str r0, [r4] - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08134208: .4byte gUnknown_3005B60 -_0813420C: .4byte gUnknown_85C9363 -_08134210: .4byte Task_StarterChoose2 - thumb_func_end Task_StarterChoose1 - - thumb_func_start Task_StarterChoose2 -Task_StarterChoose2: @ 0x08134214 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r2, _08134290 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r6, r0, r2 - ldrh r7, [r6, #8] - ldrb r4, [r6, #8] - ldr r1, _08134294 - ldrh r3, [r1, #0x2e] - movs r0, #1 - ands r0, r3 - cmp r0, #0 - beq _081342B0 - bl sub_0813464C - ldr r0, _08134298 - ldr r1, _0813429C - lsls r2, r4, #1 - adds r3, r2, r1 - ldrb r5, [r3] - adds r1, #1 - adds r2, r2, r1 - ldrb r4, [r2] - adds r1, r5, #0 - adds r2, r4, #0 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r6, #0xc] - ldrh r0, [r6, #8] - bl GetStarterPokemon - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r5, #0 - adds r2, r4, #0 - bl CreatePokemonFrontSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _081342A0 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r2, r4, #0 - adds r2, #0x10 - adds r2, r1, r2 - ldr r3, _081342A4 - str r3, [r2] - adds r4, #0x1c - adds r1, r1, r4 - ldr r2, _081342A8 - str r2, [r1] - strh r0, [r6, #0xa] - ldr r0, _081342AC - str r0, [r6] - b _081342EC - .align 2, 0 -_08134290: .4byte gUnknown_3005B60 -_08134294: .4byte gUnknown_3002360 -_08134298: .4byte gUnknown_8590D50 -_0813429C: .4byte gUnknown_8590BFC -_081342A0: .4byte gUnknown_20205AC -_081342A4: .4byte gUnknown_8590CE0 -_081342A8: .4byte StarterPokemonSpriteCallback -_081342AC: .4byte Task_StarterChoose3 -_081342B0: - movs r0, #0x20 - ands r0, r3 - cmp r0, #0 - beq _081342CC - cmp r4, #0 - beq _081342CC - subs r0, r7, #1 - strh r0, [r6, #8] - ldr r0, _081342C8 - str r0, [r6] - b _081342EC - .align 2, 0 -_081342C8: .4byte Task_MoveStarterChooseCursor -_081342CC: - ldrh r1, [r1, #0x2e] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _081342EC - cmp r4, #1 - bhi _081342EC - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrh r1, [r0, #8] - adds r1, #1 - strh r1, [r0, #8] - ldr r1, _081342F4 - str r1, [r0] -_081342EC: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081342F4: .4byte Task_MoveStarterChooseCursor - thumb_func_end Task_StarterChoose2 - - thumb_func_start Task_StarterChoose3 -Task_StarterChoose3: @ 0x081342F8 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _0813433C - ldr r2, _08134340 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r2, r1, r2 - movs r0, #0xc - ldrsh r1, [r2, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r3 - adds r0, r1, #0 - adds r0, #0x3f - ldrb r0, [r0] - lsls r0, r0, #0x1a - cmp r0, #0 - bge _08134336 - movs r3, #0x20 - ldrsh r0, [r1, r3] - cmp r0, #0x78 - bne _08134336 - movs r3, #0x22 - ldrsh r0, [r1, r3] - cmp r0, #0x40 - bne _08134336 - ldr r0, _08134344 - str r0, [r2] -_08134336: - pop {r0} - bx r0 - .align 2, 0 -_0813433C: .4byte gUnknown_20205AC -_08134340: .4byte gUnknown_3005B60 -_08134344: .4byte Task_StarterChoose4 - thumb_func_end Task_StarterChoose3 - - thumb_func_start Task_StarterChoose4 -Task_StarterChoose4: @ 0x08134348 - push {r4, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081343A8 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - adds r4, r4, r1 - ldrh r0, [r4, #8] - bl GetStarterPokemon - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0 - bl PlayCry1 - movs r0, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r2, _081343AC - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, _081343B0 - movs r2, #0xa6 - lsls r2, r2, #2 - movs r1, #1 - movs r3, #0xd - bl sub_08198D44 - ldr r0, _081343B4 - str r0, [r4] - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081343A8: .4byte gUnknown_3005B60 -_081343AC: .4byte gUnknown_85C9386 -_081343B0: .4byte gUnknown_8590BEC -_081343B4: .4byte Task_StarterChoose5 - thumb_func_end Task_StarterChoose4 - - thumb_func_start Task_StarterChoose5 -Task_StarterChoose5: @ 0x081343B8 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _081343DE - cmp r1, #0 - bgt _081343D8 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _08134408 - b _08134452 -_081343D8: - cmp r1, #1 - beq _08134408 - b _08134452 -_081343DE: - ldr r2, _081343FC - ldr r1, _08134400 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r0, [r0, #8] - strh r0, [r2] - bl ResetAllPicSprites - ldr r0, _08134404 - ldr r0, [r0, #8] - bl SetMainCallback2 - b _08134452 - .align 2, 0 -_081343FC: .4byte gUnknown_2037290 -_08134400: .4byte gUnknown_3005B60 -_08134404: .4byte gUnknown_3002360 -_08134408: - movs r0, #5 - bl sub_080A306C - ldr r0, _08134458 - lsls r5, r4, #2 - adds r5, r5, r4 - lsls r5, r5, #3 - adds r5, r5, r0 - ldrb r4, [r5, #0xa] - ldr r6, _0813445C - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r0, [r0, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - adds r0, r4, #0 - bl FreeAndDestroyMonPicSprite - ldrb r0, [r5, #0xc] - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - adds r4, r4, r6 - ldrb r0, [r4, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - adds r0, r4, #0 - bl DestroySprite - ldr r0, _08134460 - str r0, [r5] -_08134452: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08134458: .4byte gUnknown_3005B60 -_0813445C: .4byte gUnknown_20205AC -_08134460: .4byte sub_08134464 - thumb_func_end Task_StarterChoose5 - - thumb_func_start sub_08134464 -sub_08134464: @ 0x08134464 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08134478 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r0, _0813447C - str r0, [r1] - bx lr - .align 2, 0 -_08134478: .4byte gUnknown_3005B60 -_0813447C: .4byte Task_StarterChoose1 - thumb_func_end sub_08134464 - - thumb_func_start sub_08134480 -sub_08134480: @ 0x08134480 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x30 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r0, r6, #0 - bl GetStarterPokemon - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - adds r0, r7, #0 - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_080BFB68 - adds r2, r0, #0 - movs r3, #0 - movs r5, #0 - ldrb r0, [r2] - add r1, sp, #0x18 - mov sl, r1 - mov r1, sp - adds r1, #0x24 - str r1, [sp, #0x2c] - cmp r0, #0 - beq _081344E2 -_081344BE: - mov r1, sp - adds r1, r1, r5 - adds r1, #0xc - adds r0, r2, r3 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r0, #0 - beq _081344E2 - cmp r3, #4 - bls _081344BE -_081344E2: - movs r3, #0 - ldr r2, _0813462C - mov r8, r2 - lsls r4, r7, #1 - ldr r0, _08134630 - mov sb, r0 - lsls r6, r6, #1 - mov ip, r6 - ldr r2, _08134634 -_081344F4: - mov r1, sp - adds r1, r1, r5 - adds r1, #0xc - adds r0, r3, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r3, #4 - bls _081344F4 - mov r1, sp - adds r1, r1, r5 - adds r1, #0xc - movs r0, #0xff - strb r0, [r1] - movs r3, #0 - movs r5, #0 - adds r0, r4, r7 - lsls r0, r0, #1 - add r0, r8 - ldrb r0, [r0] - cmp r0, #0xff - beq _08134558 - mov r6, r8 - mov r8, sl -_0813452E: - mov r1, r8 - adds r2, r1, r5 - adds r1, r4, r7 - lsls r1, r1, #1 - adds r0, r3, r1 - adds r0, r0, r6 - ldrb r0, [r0] - strb r0, [r2] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r1, r3, r1 - adds r1, r1, r6 - ldrb r0, [r1] - cmp r0, #0xff - beq _08134558 - cmp r3, #9 - bls _0813452E -_08134558: - mov r2, sl - adds r1, r2, r5 - movs r0, #0xff - strb r0, [r1] - mov r2, sb - ldr r0, [r2] - ldr r1, [r2, #4] - str r0, [sp, #0x24] - str r1, [sp, #0x28] - ldr r0, _08134638 - add r0, ip - mov sb, r0 - ldrb r0, [r0] - lsls r0, r0, #8 - ldr r1, _0813463C - ldr r2, [sp, #0x24] - ands r2, r1 - orrs r2, r0 - str r2, [sp, #0x24] - ldr r1, _08134638 - adds r1, #1 - mov r8, r1 - add r8, ip - mov r0, r8 - ldrb r1, [r0] - lsls r1, r1, #0x10 - ldr r0, _08134640 - ands r0, r2 - orrs r0, r1 - str r0, [sp, #0x24] - ldr r0, [sp, #0x2c] - bl AddWindow - ldr r4, _08134644 - strh r0, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl FillWindowPixelBuffer - ldrb r0, [r4] - ldr r6, _08134648 - str r6, [sp] - movs r5, #0 - str r5, [sp, #4] - add r1, sp, #0xc - str r1, [sp, #8] - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 - ldrb r0, [r4] - str r6, [sp] - str r5, [sp, #4] - mov r2, sl - str r2, [sp, #8] - movs r1, #1 - movs r2, #0 - movs r3, #0x12 - bl AddTextPrinterParameterized3 - ldrb r0, [r4] - bl PutWindowTilemap - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - mov r0, sb - ldrb r1, [r0] - lsls r0, r1, #0x1b - movs r2, #0xfc - lsls r2, r2, #0x18 - adds r0, r0, r2 - adds r1, #9 - lsls r1, r1, #3 - adds r1, #4 - lsls r1, r1, #0x18 - mov r2, r8 - ldrb r4, [r2] - lsls r5, r4, #0x1b - lsrs r5, r5, #0x18 - adds r4, #4 - lsls r4, r4, #0x1b - lsrs r4, r4, #0x18 - lsrs r1, r1, #8 - orrs r1, r0 - lsrs r1, r1, #0x10 - movs r0, #0x40 - bl SetGpuReg - lsls r5, r5, #8 - orrs r5, r4 - movs r0, #0x44 - adds r1, r5, #0 - bl SetGpuReg - add sp, #0x30 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0813462C: .4byte gUnknown_82EA31C -_08134630: .4byte gUnknown_8590BF4 -_08134634: .4byte gUnknown_85C9393 -_08134638: .4byte gUnknown_8590C02 -_0813463C: .4byte 0xFFFF00FF -_08134640: .4byte 0xFF00FFFF -_08134644: .4byte gUnknown_30011F8 -_08134648: .4byte gUnknown_8590C1C - thumb_func_end sub_08134480 - - thumb_func_start sub_0813464C -sub_0813464C: @ 0x0813464C - push {r4, lr} - ldr r4, _08134684 - ldrb r0, [r4] - movs r1, #0 - bl FillWindowPixelBuffer - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - bl RemoveWindow - movs r0, #0xff - strh r0, [r4] - movs r0, #0x40 - movs r1, #0 - bl SetGpuReg - movs r0, #0x44 - movs r1, #0 - bl SetGpuReg - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08134684: .4byte gUnknown_30011F8 - thumb_func_end sub_0813464C - - thumb_func_start Task_MoveStarterChooseCursor -Task_MoveStarterChooseCursor: @ 0x08134688 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_0813464C - ldr r1, _081346A8 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081346AC - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081346A8: .4byte gUnknown_3005B60 -_081346AC: .4byte sub_081346B0 - thumb_func_end Task_MoveStarterChooseCursor - - thumb_func_start sub_081346B0 -sub_081346B0: @ 0x081346B0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081346D0 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - adds r4, r4, r1 - ldrb r0, [r4, #8] - bl sub_08134480 - ldr r0, _081346D4 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081346D0: .4byte gUnknown_3005B60 -_081346D4: .4byte Task_StarterChoose2 - thumb_func_end sub_081346B0 - - thumb_func_start CreatePokemonFrontSprite -CreatePokemonFrontSprite: @ 0x081346D8 - push {lr} - sub sp, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r1, [sp] - str r2, [sp, #4] - movs r1, #0xe - str r1, [sp, #8] - ldr r1, _0813471C - str r1, [sp, #0xc] - movs r1, #8 - movs r2, #0 - movs r3, #1 - bl CreatePicSprite2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08134720 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r1 - ldrb r3, [r2, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r3 - strb r1, [r2, #5] - add sp, #0x10 - pop {r1} - bx r1 - .align 2, 0 -_0813471C: .4byte 0x0000FFFF -_08134720: .4byte gUnknown_20205AC - thumb_func_end CreatePokemonFrontSprite - - thumb_func_start sub_08134724 -sub_08134724: @ 0x08134724 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0813477C - ldr r3, _08134780 - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r3 - movs r1, #8 - ldrsh r0, [r0, r1] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrb r0, [r0] - strh r0, [r4, #0x20] - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r3 - movs r1, #8 - ldrsh r0, [r0, r1] - lsls r0, r0, #1 - adds r2, #1 - adds r0, r0, r2 - ldrb r0, [r0] - strh r0, [r4, #0x22] - movs r1, #0x30 - ldrsh r0, [r4, r1] - movs r1, #8 - bl Sin - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x30] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x30] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813477C: .4byte gUnknown_8590C38 -_08134780: .4byte gUnknown_3005B60 - thumb_func_end sub_08134724 - - thumb_func_start sub_08134784 -sub_08134784: @ 0x08134784 - push {lr} - adds r3, r0, #0 - ldr r2, _081347AC - movs r0, #0x2e - ldrsh r1, [r3, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r2, #8 - ldrsh r1, [r0, r2] - movs r2, #0x30 - ldrsh r0, [r3, r2] - cmp r1, r0 - bne _081347B0 - adds r0, r3, #0 - movs r1, #1 - bl StartSpriteAnimIfDifferent - b _081347B8 - .align 2, 0 -_081347AC: .4byte gUnknown_3005B60 -_081347B0: - adds r0, r3, #0 - movs r1, #0 - bl StartSpriteAnimIfDifferent -_081347B8: - pop {r0} - bx r0 - thumb_func_end sub_08134784 - - thumb_func_start StarterPokemonSpriteCallback -StarterPokemonSpriteCallback: @ 0x081347BC - push {lr} - adds r1, r0, #0 - ldrh r2, [r1, #0x20] - movs r3, #0x20 - ldrsh r0, [r1, r3] - cmp r0, #0x78 - ble _081347CE - subs r0, r2, #4 - strh r0, [r1, #0x20] -_081347CE: - ldrh r2, [r1, #0x20] - movs r3, #0x20 - ldrsh r0, [r1, r3] - cmp r0, #0x77 - bgt _081347DC - adds r0, r2, #4 - strh r0, [r1, #0x20] -_081347DC: - ldrh r2, [r1, #0x22] - movs r3, #0x22 - ldrsh r0, [r1, r3] - cmp r0, #0x40 - ble _081347EA - subs r0, r2, #2 - strh r0, [r1, #0x22] -_081347EA: - ldrh r2, [r1, #0x22] - movs r3, #0x22 - ldrsh r0, [r1, r3] - cmp r0, #0x3f - bgt _081347F8 - adds r0, r2, #2 - strh r0, [r1, #0x22] -_081347F8: - pop {r0} - bx r0 - thumb_func_end StarterPokemonSpriteCallback - - thumb_func_start sub_081347FC -sub_081347FC: @ 0x081347FC - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081347FC - - thumb_func_start LoadWallClockGraphics -LoadWallClockGraphics: @ 0x08134810 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - movs r0, #0 - bl SetVBlankCallback - movs r0, #0 - movs r1, #0 - bl SetGpuReg - movs r0, #0xe - movs r1, #0 - bl SetGpuReg - movs r0, #0xc - movs r1, #0 - bl SetGpuReg - movs r0, #0xa - movs r1, #0 - bl SetGpuReg - movs r0, #8 - movs r1, #0 - bl SetGpuReg - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r3, #0xc0 - lsls r3, r3, #0x13 - movs r4, #0xc0 - lsls r4, r4, #9 - add r0, sp, #4 - mov r8, r0 - mov r2, sp - movs r6, #0 - ldr r1, _08134930 - movs r5, #0x80 - lsls r5, r5, #5 - ldr r7, _08134934 - movs r0, #0x81 - lsls r0, r0, #0x18 - mov ip, r0 -_081348B4: - strh r6, [r2] - mov r0, sp - str r0, [r1] - str r3, [r1, #4] - str r7, [r1, #8] - ldr r0, [r1, #8] - adds r3, r3, r5 - subs r4, r4, r5 - cmp r4, r5 - bhi _081348B4 - strh r6, [r2] - mov r2, sp - str r2, [r1] - str r3, [r1, #4] - lsrs r0, r4, #1 - mov r2, ip - orrs r0, r2 - str r0, [r1, #8] - ldr r0, [r1, #8] - movs r0, #0xe0 - lsls r0, r0, #0x13 - movs r3, #0x80 - lsls r3, r3, #3 - movs r4, #0 - str r4, [sp, #4] - ldr r2, _08134930 - mov r1, r8 - str r1, [r2] - str r0, [r2, #4] - lsrs r0, r3, #2 - movs r1, #0x85 - lsls r1, r1, #0x18 - orrs r0, r1 - str r0, [r2, #8] - ldr r0, [r2, #8] - movs r1, #0xa0 - lsls r1, r1, #0x13 - mov r0, sp - strh r4, [r0] - str r0, [r2] - str r1, [r2, #4] - lsrs r3, r3, #1 - movs r0, #0x81 - lsls r0, r0, #0x18 - orrs r3, r0 - str r3, [r2, #8] - ldr r0, [r2, #8] - ldr r0, _08134938 - movs r1, #0xc0 - lsls r1, r1, #0x13 - bl LZ77UnCompVram - ldr r0, _0813493C - ldrh r0, [r0] - cmp r0, #0 - bne _08134944 - ldr r0, _08134940 - movs r1, #0 - movs r2, #0x20 - bl LoadPalette - b _0813494E - .align 2, 0 -_08134930: .4byte 0x040000D4 -_08134934: .4byte 0x81000800 -_08134938: .4byte gUnknown_859130C -_0813493C: .4byte gUnknown_2037280 -_08134940: .4byte gUnknown_8590D68 -_08134944: - ldr r0, _081349BC - movs r1, #0 - movs r2, #0x20 - bl LoadPalette -_0813494E: - bl sub_080985EC - movs r1, #0xe0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _081349C0 - movs r1, #0xc0 - movs r2, #8 - bl LoadPalette - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _081349C4 - movs r0, #0 - movs r2, #3 - bl InitBgsFromTemplates - ldr r0, _081349C8 - bl InitWindows - bl sub_08004480 - movs r1, #0x93 - lsls r1, r1, #2 - movs r0, #0 - movs r2, #0xd0 - bl LoadUserWindowBorderGfx - bl sub_08199640 - bl ScanlineEffect_Stop - bl ResetTasks - bl ResetSpriteData - bl ResetPaletteFade - bl FreeAllSpritePalettes - ldr r0, _081349CC - bl LoadCompressedSpriteSheet - ldr r0, _081349D0 - bl LoadSpritePalettes - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081349BC: .4byte gUnknown_8590D88 -_081349C0: .4byte gUnknown_8591C20 -_081349C4: .4byte gUnknown_8591C48 -_081349C8: .4byte gUnknown_8591C28 -_081349CC: .4byte gUnknown_8591C54 -_081349D0: .4byte gUnknown_8591C64 - thumb_func_end LoadWallClockGraphics - - thumb_func_start WallClockInit -WallClockInit: @ 0x081349D4 - push {lr} - sub sp, #4 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - movs r0, #1 - bl EnableInterrupts - ldr r0, _08134A34 - bl SetVBlankCallback - ldr r0, _08134A38 - bl SetMainCallback2 - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_08134A34: .4byte sub_081347FC -_08134A38: .4byte TrySetupDiveDownScript - thumb_func_end WallClockInit - - thumb_func_start CB2_StartWallClock -CB2_StartWallClock: @ 0x08134A3C - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - sub sp, #0xc - bl LoadWallClockGraphics - ldr r0, _08134B64 - ldr r1, _08134B68 - bl LZ77UnCompVram - ldr r0, _08134B6C - movs r1, #0 - bl CreateTask - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - ldr r1, _08134B70 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - mov r8, r1 - movs r1, #0xa - strh r1, [r0, #0xc] - mov r2, r8 - strh r2, [r0, #0xe] - strh r2, [r0, #0x10] - strh r2, [r0, #0x12] - strh r2, [r0, #0x14] - strh r2, [r0, #8] - movs r1, #0x96 - lsls r1, r1, #1 - strh r1, [r0, #0xa] - ldr r0, _08134B74 - movs r1, #0x78 - movs r2, #0x50 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08134B78 - mov sb, r1 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - add r1, sb - strh r6, [r1, #0x2e] - ldrb r2, [r1, #1] - movs r5, #4 - rsbs r5, r5, #0 - adds r0, r5, #0 - ands r0, r2 - movs r2, #1 - mov sl, r2 - mov r2, sl - orrs r0, r2 - strb r0, [r1, #1] - ldrb r2, [r1, #3] - movs r4, #0x3f - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r2 - strb r0, [r1, #3] - ldr r0, _08134B7C - movs r1, #0x78 - movs r2, #0x50 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - add r1, sb - strh r6, [r1, #0x2e] - ldrb r0, [r1, #1] - ands r5, r0 - mov r0, sl - orrs r5, r0 - strb r5, [r1, #1] - ldrb r0, [r1, #3] - ands r4, r0 - movs r0, #2 - orrs r4, r0 - strb r4, [r1, #3] - ldr r0, _08134B80 - movs r1, #0x78 - movs r2, #0x50 - movs r3, #2 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - add r1, sb - strh r6, [r1, #0x2e] - movs r0, #0x2d - strh r0, [r1, #0x30] - ldr r0, _08134B84 - movs r1, #0x78 - movs r2, #0x50 - movs r3, #2 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - add r1, sb - strh r6, [r1, #0x2e] - movs r0, #0x5a - strh r0, [r1, #0x30] - bl WallClockInit - ldr r2, _08134B88 - movs r0, #2 - str r0, [sp] - mov r1, r8 - str r1, [sp, #4] - str r1, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - movs r0, #1 - bl PutWindowTilemap - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08134B64: .4byte gUnknown_8590DA8 -_08134B68: .4byte 0x06003800 -_08134B6C: .4byte sub_08134D04 -_08134B70: .4byte gUnknown_3005B60 -_08134B74: .4byte gUnknown_8591C9C -_08134B78: .4byte gUnknown_20205AC -_08134B7C: .4byte gUnknown_8591CB4 -_08134B80: .4byte gUnknown_8591CEC -_08134B84: .4byte gUnknown_8591D04 -_08134B88: .4byte gUnknown_8591C15 - thumb_func_end CB2_StartWallClock - - thumb_func_start CB2_ViewWallClock -CB2_ViewWallClock: @ 0x08134B8C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - bl LoadWallClockGraphics - ldr r0, _08134BD4 - ldr r1, _08134BD8 - bl LZ77UnCompVram - ldr r0, _08134BDC - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - adds r0, r7, #0 - bl InitClockWithRtc - ldr r1, _08134BE0 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0x12 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08134BE4 - movs r2, #0x2d - mov sl, r2 - movs r0, #0x5a - str r0, [sp, #0xc] - b _08134BEC - .align 2, 0 -_08134BD4: .4byte gUnknown_8591074 -_08134BD8: .4byte 0x06003800 -_08134BDC: .4byte sub_08134F64 -_08134BE0: .4byte gUnknown_3005B60 -_08134BE4: - movs r1, #0x5a - mov sl, r1 - movs r2, #0x87 - str r2, [sp, #0xc] -_08134BEC: - ldr r0, _08134CD0 - movs r1, #0x78 - movs r2, #0x50 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r6, _08134CD4 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - movs r0, #0 - mov sb, r0 - strh r7, [r1, #0x2e] - ldrb r2, [r1, #1] - movs r5, #4 - rsbs r5, r5, #0 - adds r0, r5, #0 - ands r0, r2 - movs r2, #1 - mov r8, r2 - mov r2, r8 - orrs r0, r2 - strb r0, [r1, #1] - ldrb r2, [r1, #3] - movs r4, #0x3f - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r2 - strb r0, [r1, #3] - ldr r0, _08134CD8 - movs r1, #0x78 - movs r2, #0x50 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - strh r7, [r1, #0x2e] - ldrb r0, [r1, #1] - ands r5, r0 - mov r0, r8 - orrs r5, r0 - strb r5, [r1, #1] - ldrb r0, [r1, #3] - ands r4, r0 - movs r0, #2 - orrs r4, r0 - strb r4, [r1, #3] - ldr r0, _08134CDC - movs r1, #0x78 - movs r2, #0x50 - movs r3, #2 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - strh r7, [r1, #0x2e] - mov r2, sl - strh r2, [r1, #0x30] - ldr r0, _08134CE0 - movs r1, #0x78 - movs r2, #0x50 - movs r3, #2 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - strh r7, [r1, #0x2e] - mov r0, sp - ldrh r0, [r0, #0xc] - strh r0, [r1, #0x30] - bl WallClockInit - ldr r2, _08134CE4 - movs r0, #2 - str r0, [sp] - mov r1, sb - str r1, [sp, #4] - str r1, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - movs r0, #1 - bl PutWindowTilemap - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08134CD0: .4byte gUnknown_8591C9C -_08134CD4: .4byte gUnknown_20205AC -_08134CD8: .4byte gUnknown_8591CB4 -_08134CDC: .4byte gUnknown_8591CEC -_08134CE0: .4byte gUnknown_8591D04 -_08134CE4: .4byte gUnknown_8591C1A - thumb_func_end CB2_ViewWallClock - - thumb_func_start TrySetupDiveDownScript -TrySetupDiveDownScript: @ 0x08134CE8 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end TrySetupDiveDownScript - - thumb_func_start sub_08134D04 -sub_08134D04: @ 0x08134D04 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _08134D28 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08134D24 - ldr r0, _08134D2C - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _08134D30 - str r0, [r1] -_08134D24: - pop {r0} - bx r0 - .align 2, 0 -_08134D28: .4byte gUnknown_2037C74 -_08134D2C: .4byte gUnknown_3005B60 -_08134D30: .4byte Task_SetClock2 - thumb_func_end sub_08134D04 - - thumb_func_start Task_SetClock2 -Task_SetClock2: @ 0x08134D34 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _08134D64 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r5, r0, r1 - movs r1, #8 - ldrsh r0, [r5, r1] - movs r1, #6 - bl __modsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08134D68 - ldrh r0, [r5, #8] - ldrb r1, [r5, #0x10] - ldrb r2, [r5, #0x14] - bl CalcNewMinHandAngle - strh r0, [r5, #8] - b _08134E0A - .align 2, 0 -_08134D64: .4byte gUnknown_3005B60 -_08134D68: - movs r2, #0xe - ldrsh r1, [r5, r2] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - strh r0, [r5, #8] - movs r3, #0xc - ldrsh r0, [r5, r3] - movs r1, #0xc - bl __modsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r4, r0, #4 - subs r4, r4, r0 - lsls r4, r4, #1 - movs r1, #0xe - ldrsh r0, [r5, r1] - movs r1, #0xa - bl __divsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r1, r0, #2 - adds r1, r1, r0 - adds r4, r4, r1 - strh r4, [r5, #0xa] - ldr r2, _08134DB4 - ldrh r0, [r2, #0x2e] - movs r3, #1 - adds r1, r3, #0 - ands r1, r0 - cmp r1, #0 - beq _08134DBC - ldr r0, _08134DB8 - str r0, [r5] - b _08134E0A - .align 2, 0 -_08134DB4: .4byte gUnknown_3002360 -_08134DB8: .4byte Task_SetClock3 -_08134DBC: - strh r1, [r5, #0x10] - ldrh r1, [r2, #0x2c] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08134DCA - strh r3, [r5, #0x10] -_08134DCA: - ldrh r1, [r2, #0x2c] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08134DD8 - movs r0, #2 - strh r0, [r5, #0x10] -_08134DD8: - ldrh r1, [r5, #0x10] - movs r2, #0x10 - ldrsh r0, [r5, r2] - cmp r0, #0 - beq _08134E08 - ldrh r2, [r5, #0x14] - movs r3, #0x14 - ldrsh r0, [r5, r3] - cmp r0, #0xfe - bgt _08134DF0 - adds r0, r2, #1 - strh r0, [r5, #0x14] -_08134DF0: - ldrh r0, [r5, #8] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrb r2, [r5, #0x14] - bl CalcNewMinHandAngle - strh r0, [r5, #8] - ldrb r1, [r5, #0x10] - adds r0, r6, #0 - bl AdvanceClock - b _08134E0A -_08134E08: - strh r0, [r5, #0x14] -_08134E0A: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end Task_SetClock2 - - thumb_func_start Task_SetClock3 -Task_SetClock3: @ 0x08134E10 - push {r4, r5, lr} - sub sp, #0xc - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r5, #0x93 - lsls r5, r5, #2 - movs r0, #0 - movs r1, #0 - adds r2, r5, #0 - movs r3, #0xd - bl DrawStdFrameWithCustomTileAndPalette - ldr r2, _08134E74 - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - movs r0, #0 - bl PutWindowTilemap - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, _08134E78 - str r5, [sp] - movs r1, #0xd - str r1, [sp, #4] - movs r1, #1 - str r1, [sp, #8] - movs r2, #0 - movs r3, #2 - bl sub_08198C08 - ldr r1, _08134E7C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08134E80 - str r1, [r0] - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08134E74: .4byte gUnknown_8591C04 -_08134E78: .4byte gUnknown_8591C40 -_08134E7C: .4byte gUnknown_3005B60 -_08134E80: .4byte Task_SetClock4 - thumb_func_end Task_SetClock3 - - thumb_func_start Task_SetClock4 -Task_SetClock4: @ 0x08134E84 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _08134EAA - cmp r1, #0 - bgt _08134EA4 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _08134EC8 - b _08134EEA -_08134EA4: - cmp r1, #1 - beq _08134EC8 - b _08134EEA -_08134EAA: - movs r0, #5 - bl sub_080A306C - ldr r0, _08134EC0 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _08134EC4 - b _08134EE8 - .align 2, 0 -_08134EC0: .4byte gUnknown_3005B60 -_08134EC4: .4byte Task_SetClock5 -_08134EC8: - movs r0, #5 - bl sub_080A306C - movs r0, #0 - movs r1, #0 - bl sub_08198134 - movs r0, #0 - bl ClearWindowTilemap - ldr r0, _08134EF0 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _08134EF4 -_08134EE8: - str r0, [r1] -_08134EEA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08134EF0: .4byte gUnknown_3005B60 -_08134EF4: .4byte Task_SetClock2 - thumb_func_end Task_SetClock4 - - thumb_func_start Task_SetClock5 -Task_SetClock5: @ 0x08134EF8 - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08134F34 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - adds r4, r4, r1 - movs r1, #0xc - ldrsh r0, [r4, r1] - movs r2, #0xe - ldrsh r1, [r4, r2] - bl RtcInitLocalTimeOffset - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _08134F38 - str r0, [r4] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08134F34: .4byte gUnknown_3005B60 -_08134F38: .4byte Task_SetClock6 - thumb_func_end Task_SetClock5 - - thumb_func_start Task_SetClock6 -Task_SetClock6: @ 0x08134F3C - push {lr} - ldr r0, _08134F5C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08134F56 - bl FreeAllWindowBuffers - ldr r0, _08134F60 - ldr r0, [r0, #8] - bl SetMainCallback2 -_08134F56: - pop {r0} - bx r0 - .align 2, 0 -_08134F5C: .4byte gUnknown_2037C74 -_08134F60: .4byte gUnknown_3002360 - thumb_func_end Task_SetClock6 - - thumb_func_start sub_08134F64 -sub_08134F64: @ 0x08134F64 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _08134F88 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08134F84 - ldr r0, _08134F8C - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _08134F90 - str r0, [r1] -_08134F84: - pop {r0} - bx r0 - .align 2, 0 -_08134F88: .4byte gUnknown_2037C74 -_08134F8C: .4byte gUnknown_3005B60 -_08134F90: .4byte Task_ViewClock2 - thumb_func_end sub_08134F64 - - thumb_func_start Task_ViewClock2 -Task_ViewClock2: @ 0x08134F94 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl InitClockWithRtc - ldr r0, _08134FC0 - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _08134FBA - ldr r0, _08134FC4 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _08134FC8 - str r0, [r1] -_08134FBA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08134FC0: .4byte gUnknown_3002360 -_08134FC4: .4byte gUnknown_3005B60 -_08134FC8: .4byte Task_ViewClock3 - thumb_func_end Task_ViewClock2 - - thumb_func_start Task_ViewClock3 -Task_ViewClock3: @ 0x08134FCC - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _08134FFC - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08135000 - str r1, [r0] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08134FFC: .4byte gUnknown_3005B60 -_08135000: .4byte Task_ViewClock4 - thumb_func_end Task_ViewClock3 - - thumb_func_start Task_ViewClock4 -Task_ViewClock4: @ 0x08135004 - push {lr} - ldr r0, _08135020 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0813501A - ldr r0, _08135024 - ldr r0, [r0, #8] - bl SetMainCallback2 -_0813501A: - pop {r0} - bx r0 - .align 2, 0 -_08135020: .4byte gUnknown_2037C74 -_08135024: .4byte gUnknown_3002360 - thumb_func_end Task_ViewClock4 - - thumb_func_start CalcMinHandDelta -CalcMinHandDelta: @ 0x08135028 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r0, #0 - cmp r0, #0x3c - bls _08135038 - movs r0, #6 - b _0813504A -_08135038: - cmp r0, #0x1e - bls _08135040 - movs r0, #3 - b _0813504A -_08135040: - cmp r1, #0xa - bhi _08135048 - movs r0, #1 - b _0813504A -_08135048: - movs r0, #2 -_0813504A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CalcMinHandDelta - - thumb_func_start CalcNewMinHandAngle -CalcNewMinHandAngle: @ 0x08135050 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r2, #0 - bl CalcMinHandDelta - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r5, #1 - beq _08135072 - cmp r5, #2 - beq _08135084 - b _08135098 -_08135072: - cmp r4, #0 - beq _0813507A - subs r0, r4, r1 - b _08135090 -_0813507A: - movs r2, #0xb4 - lsls r2, r2, #1 - adds r0, r2, #0 - subs r0, r0, r1 - b _08135090 -_08135084: - movs r0, #0xb4 - lsls r0, r0, #1 - subs r0, r0, r1 - cmp r4, r0 - bge _08135096 - adds r0, r4, r1 -_08135090: - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - b _08135098 -_08135096: - movs r4, #0 -_08135098: - adds r0, r4, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end CalcNewMinHandAngle - - thumb_func_start AdvanceClock -AdvanceClock: @ 0x081350A0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - cmp r4, #1 - beq _081350B4 - cmp r4, #2 - beq _081350F4 - b _08135132 -_081350B4: - ldr r0, _081350D0 - lsls r1, r3, #2 - adds r1, r1, r3 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r2, [r1, #0xe] - movs r5, #0xe - ldrsh r0, [r1, r5] - cmp r0, #0 - ble _081350D4 - subs r0, r2, #1 - strh r0, [r1, #0xe] - b _08135132 - .align 2, 0 -_081350D0: .4byte gUnknown_3005B60 -_081350D4: - movs r0, #0x3b - strh r0, [r1, #0xe] - ldrh r2, [r1, #0xc] - movs r6, #0xc - ldrsh r0, [r1, r6] - cmp r0, #0 - ble _081350E6 - subs r0, r2, #1 - b _081350E8 -_081350E6: - movs r0, #0x17 -_081350E8: - strh r0, [r1, #0xc] - adds r0, r3, #0 - adds r1, r4, #0 - bl UpdateClockPeriod - b _08135132 -_081350F4: - ldr r0, _08135110 - lsls r1, r3, #2 - adds r1, r1, r3 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r2, [r1, #0xe] - movs r5, #0xe - ldrsh r0, [r1, r5] - cmp r0, #0x3a - bgt _08135114 - adds r0, r2, #1 - strh r0, [r1, #0xe] - b _08135132 - .align 2, 0 -_08135110: .4byte gUnknown_3005B60 -_08135114: - movs r5, #0 - strh r5, [r1, #0xe] - ldrh r2, [r1, #0xc] - movs r6, #0xc - ldrsh r0, [r1, r6] - cmp r0, #0x16 - bgt _08135128 - adds r0, r2, #1 - strh r0, [r1, #0xc] - b _0813512A -_08135128: - strh r5, [r1, #0xc] -_0813512A: - adds r0, r3, #0 - adds r1, r4, #0 - bl UpdateClockPeriod -_08135132: - movs r0, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end AdvanceClock - - thumb_func_start UpdateClockPeriod -UpdateClockPeriod: @ 0x0813513C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - ldr r2, _0813515C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldrb r0, [r1, #0xc] - cmp r3, #1 - beq _08135160 - cmp r3, #2 - beq _08135172 - b _0813517E - .align 2, 0 -_0813515C: .4byte gUnknown_3005B60 -_08135160: - cmp r0, #0xb - beq _0813516A - cmp r0, #0x17 - beq _0813516E - b _0813517E -_0813516A: - movs r0, #0 - b _0813517C -_0813516E: - strh r3, [r1, #0x12] - b _0813517E -_08135172: - cmp r0, #0 - beq _0813517C - cmp r0, #0xc - bne _0813517E - movs r0, #1 -_0813517C: - strh r0, [r1, #0x12] -_0813517E: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end UpdateClockPeriod - - thumb_func_start InitClockWithRtc -InitClockWithRtc: @ 0x08135184 - push {r4, r5, r6, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl RtcCalcLocalTime - ldr r1, _081351EC - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r6, r0, r1 - ldr r5, _081351F0 - movs r0, #2 - ldrsb r0, [r5, r0] - strh r0, [r6, #0xc] - movs r0, #3 - ldrsb r0, [r5, r0] - strh r0, [r6, #0xe] - movs r0, #0xe - ldrsh r1, [r6, r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - strh r0, [r6, #8] - movs r1, #0xc - ldrsh r0, [r6, r1] - movs r1, #0xc - bl __modsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r4, r0, #4 - subs r4, r4, r0 - lsls r4, r4, #1 - movs r1, #0xe - ldrsh r0, [r6, r1] - movs r1, #0xa - bl __divsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r1, r0, #2 - adds r1, r1, r0 - adds r4, r4, r1 - strh r4, [r6, #0xa] - movs r0, #2 - ldrsb r0, [r5, r0] - cmp r0, #0xb - bgt _081351F4 - movs r0, #0 - b _081351F6 - .align 2, 0 -_081351EC: .4byte gUnknown_3005B60 -_081351F0: .4byte gUnknown_3005A50 -_081351F4: - movs r0, #1 -_081351F6: - strh r0, [r6, #0x12] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end InitClockWithRtc - - thumb_func_start SpriteCB_MinuteHand -SpriteCB_MinuteHand: @ 0x08135200 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r6, r0, #0 - ldr r2, _08135290 - movs r0, #0x2e - ldrsh r1, [r6, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrh r4, [r0, #8] - adds r7, r4, #0 - adds r0, r4, #0 - bl Sin2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _08135228 - adds r0, #0xf -_08135228: - lsls r0, r0, #0xc - lsrs r5, r0, #0x10 - adds r0, r4, #0 - bl Cos2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _0813523C - adds r0, #0xf -_0813523C: - lsls r1, r0, #0xc - lsrs r1, r1, #0x10 - lsls r3, r5, #0x10 - lsrs r2, r3, #0x10 - rsbs r3, r3, #0 - lsrs r3, r3, #0x10 - str r1, [sp] - movs r0, #0 - bl SetOamMatrix - ldr r1, _08135294 - lsls r2, r7, #1 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - adds r1, #1 - adds r2, r2, r1 - movs r0, #0 - ldrsb r0, [r2, r0] - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r3, #0x80 - bls _08135278 - movs r1, #0xff - lsls r1, r1, #8 - adds r0, r1, #0 - orrs r3, r0 -_08135278: - cmp r2, #0x80 - bls _08135284 - movs r1, #0xff - lsls r1, r1, #8 - adds r0, r1, #0 - orrs r2, r0 -_08135284: - strh r3, [r6, #0x24] - strh r2, [r6, #0x26] - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08135290: .4byte gUnknown_3005B60 -_08135294: .4byte gUnknown_8591D1C - thumb_func_end SpriteCB_MinuteHand - - thumb_func_start SpriteCB_HourHand -SpriteCB_HourHand: @ 0x08135298 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r6, r0, #0 - ldr r2, _08135328 - movs r0, #0x2e - ldrsh r1, [r6, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrh r4, [r0, #0xa] - adds r7, r4, #0 - adds r0, r4, #0 - bl Sin2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _081352C0 - adds r0, #0xf -_081352C0: - lsls r0, r0, #0xc - lsrs r5, r0, #0x10 - adds r0, r4, #0 - bl Cos2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _081352D4 - adds r0, #0xf -_081352D4: - lsls r1, r0, #0xc - lsrs r1, r1, #0x10 - lsls r3, r5, #0x10 - lsrs r2, r3, #0x10 - rsbs r3, r3, #0 - lsrs r3, r3, #0x10 - str r1, [sp] - movs r0, #1 - bl SetOamMatrix - ldr r1, _0813532C - lsls r2, r7, #1 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - adds r1, #1 - adds r2, r2, r1 - movs r0, #0 - ldrsb r0, [r2, r0] - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r3, #0x80 - bls _08135310 - movs r1, #0xff - lsls r1, r1, #8 - adds r0, r1, #0 - orrs r3, r0 -_08135310: - cmp r2, #0x80 - bls _0813531C - movs r1, #0xff - lsls r1, r1, #8 - adds r0, r1, #0 - orrs r2, r0 -_0813531C: - strh r3, [r6, #0x24] - strh r2, [r6, #0x26] - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08135328: .4byte gUnknown_3005B60 -_0813532C: .4byte gUnknown_8591D1C - thumb_func_end SpriteCB_HourHand - - thumb_func_start SpriteCB_AMIndicator -SpriteCB_AMIndicator: @ 0x08135330 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0813536C - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r1, #0x12 - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _08135370 - ldrh r1, [r4, #0x30] - adds r0, r1, #0 - subs r0, #0x3c - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x1d - bhi _0813535C - adds r0, r1, #5 - strh r0, [r4, #0x30] -_0813535C: - ldrh r1, [r4, #0x30] - movs r2, #0x30 - ldrsh r0, [r4, r2] - cmp r0, #0x3b - bgt _08135390 - adds r0, r1, #1 - b _0813538E - .align 2, 0 -_0813536C: .4byte gUnknown_3005B60 -_08135370: - ldrh r1, [r4, #0x30] - adds r0, r1, #0 - subs r0, #0x2e - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x1d - bhi _08135382 - subs r0, r1, #5 - strh r0, [r4, #0x30] -_08135382: - ldrh r1, [r4, #0x30] - movs r2, #0x30 - ldrsh r0, [r4, r2] - cmp r0, #0x4b - ble _08135390 - subs r0, r1, #1 -_0813538E: - strh r0, [r4, #0x30] -_08135390: - ldrh r0, [r4, #0x30] - bl Cos2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r1, r0, #4 - subs r1, r1, r0 - lsls r0, r1, #1 - cmp r0, #0 - bge _081353A8 - ldr r1, _081353D0 - adds r0, r0, r1 -_081353A8: - asrs r0, r0, #0xc - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x30] - bl Sin2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r1, r0, #4 - subs r1, r1, r0 - lsls r0, r1, #1 - cmp r0, #0 - bge _081353C4 - ldr r2, _081353D0 - adds r0, r0, r2 -_081353C4: - asrs r0, r0, #0xc - strh r0, [r4, #0x26] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081353D0: .4byte 0x00000FFF - thumb_func_end SpriteCB_AMIndicator - - thumb_func_start SpriteCB_PMIndicator -SpriteCB_PMIndicator: @ 0x081353D4 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _08135410 - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r1, #0x12 - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _08135414 - ldrh r1, [r4, #0x30] - adds r0, r1, #0 - subs r0, #0x69 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x1d - bhi _08135400 - adds r0, r1, #5 - strh r0, [r4, #0x30] -_08135400: - ldrh r1, [r4, #0x30] - movs r2, #0x30 - ldrsh r0, [r4, r2] - cmp r0, #0x68 - bgt _08135434 - adds r0, r1, #1 - b _08135432 - .align 2, 0 -_08135410: .4byte gUnknown_3005B60 -_08135414: - ldrh r1, [r4, #0x30] - adds r0, r1, #0 - subs r0, #0x5b - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x1d - bhi _08135426 - subs r0, r1, #5 - strh r0, [r4, #0x30] -_08135426: - ldrh r1, [r4, #0x30] - movs r2, #0x30 - ldrsh r0, [r4, r2] - cmp r0, #0x78 - ble _08135434 - subs r0, r1, #1 -_08135432: - strh r0, [r4, #0x30] -_08135434: - ldrh r0, [r4, #0x30] - bl Cos2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r1, r0, #4 - subs r1, r1, r0 - lsls r0, r1, #1 - cmp r0, #0 - bge _0813544C - ldr r1, _08135474 - adds r0, r0, r1 -_0813544C: - asrs r0, r0, #0xc - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x30] - bl Sin2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r1, r0, #4 - subs r1, r1, r0 - lsls r0, r1, #1 - cmp r0, #0 - bge _08135468 - ldr r2, _08135474 - adds r0, r0, r2 -_08135468: - asrs r0, r0, #0xc - strh r0, [r4, #0x26] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08135474: .4byte 0x00000FFF - thumb_func_end SpriteCB_PMIndicator - - thumb_func_start CheckObjectGraphicsInFrontOfPlayer -CheckObjectGraphicsInFrontOfPlayer: @ 0x08135478 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r4, _081354B8 - adds r1, r4, #2 - adds r0, r4, #0 - bl GetXYCoordsOneStepInFrontOfPlayer - bl PlayerGetZCoord - strb r0, [r4, #4] - ldrh r0, [r4] - ldrh r1, [r4, #2] - ldrb r2, [r4, #4] - bl GetEventObjectIdByXYZ - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _081354BC - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r2, r1, r2 - ldrb r0, [r2, #5] - cmp r0, r5 - bne _081354C4 - ldr r1, _081354C0 - ldrb r0, [r2, #8] - strh r0, [r1] - movs r0, #1 - b _081354C6 - .align 2, 0 -_081354B8: .4byte gUnknown_203A80C -_081354BC: .4byte gUnknown_2036FF0 -_081354C0: .4byte gUnknown_2037292 -_081354C4: - movs r0, #0 -_081354C6: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end CheckObjectGraphicsInFrontOfPlayer - - thumb_func_start oei_task_add -oei_task_add: @ 0x081354CC - push {lr} - ldr r0, _081354E8 - adds r1, r0, #2 - bl GetXYCoordsOneStepInFrontOfPlayer - ldr r0, _081354EC - movs r1, #8 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_081354E8: .4byte gUnknown_203A80C -_081354EC: .4byte task08_080C9820 - thumb_func_end oei_task_add - - thumb_func_start task08_080C9820 -task08_080C9820: @ 0x081354F0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r6, r5, #0 - bl sub_080987DC - ldr r1, _08135544 - movs r0, #1 - strb r0, [r1, #6] - ldrb r1, [r1, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08135548 - adds r4, r0, r1 - adds r0, r4, #0 - bl EventObjectIsMovementOverridden - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08135526 - adds r0, r4, #0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08135572 -_08135526: - ldr r0, _0813554C - ldrb r0, [r0, #0x17] - cmp r0, #5 - bne _08135558 - movs r0, #0x3b - bl FieldEffectStart - ldr r0, _08135550 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _08135554 - b _08135570 - .align 2, 0 -_08135544: .4byte gUnknown_2037230 -_08135548: .4byte gUnknown_2036FF0 -_0813554C: .4byte gUnknown_2036FB8 -_08135550: .4byte gUnknown_3005B60 -_08135554: .4byte sub_081355CC -_08135558: - bl sub_0808BA78 - adds r0, r4, #0 - movs r1, #0x39 - bl EventObjectSetHeldMovement - ldr r0, _08135578 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _0813557C -_08135570: - str r0, [r1] -_08135572: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08135578: .4byte gUnknown_3005B60 -_0813557C: .4byte sub_08135580 - thumb_func_end task08_080C9820 - - thumb_func_start sub_08135580 -sub_08135580: @ 0x08135580 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _081355BC - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _081355C0 - adds r0, r0, r1 - bl EventObjectCheckHeldMovementStatus - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081355B4 - movs r0, #0x3b - bl FieldEffectStart - ldr r0, _081355C4 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081355C8 - str r0, [r1] -_081355B4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081355BC: .4byte gUnknown_2037230 -_081355C0: .4byte gUnknown_2036FF0 -_081355C4: .4byte gUnknown_3005B60 -_081355C8: .4byte sub_081355CC - thumb_func_end sub_08135580 - - thumb_func_start sub_081355CC -sub_081355CC: @ 0x081355CC - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r0, #6 - bl FieldEffectActiveListContains - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _08135650 - bl GetPlayerFacingDirection - ldr r6, _08135658 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [r6, #4] - cmp r0, #1 - bne _081355F2 - str r4, [r6, #8] -_081355F2: - ldr r1, [r6, #4] - cmp r1, #2 - bne _081355FC - movs r0, #1 - str r0, [r6, #8] -_081355FC: - cmp r1, #3 - bne _08135604 - movs r0, #2 - str r0, [r6, #8] -_08135604: - cmp r1, #4 - bne _0813560C - movs r0, #3 - str r0, [r6, #8] -_0813560C: - ldr r5, _0813565C - ldrb r0, [r5, #5] - lsls r4, r0, #3 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _08135660 - adds r4, r4, r0 - bl GetPlayerAvatarGraphicsIdByCurrentState - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl EventObjectSetGraphicsId - ldrb r1, [r5, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08135664 - adds r0, r0, r1 - ldrb r1, [r6, #8] - bl StartSpriteAnim - movs r0, #6 - bl FieldEffectActiveListRemove - ldr r1, _08135668 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0813566C - str r1, [r0] -_08135650: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08135658: .4byte gUnknown_20388A8 -_0813565C: .4byte gUnknown_2037230 -_08135660: .4byte gUnknown_2036FF0 -_08135664: .4byte gUnknown_20205AC -_08135668: .4byte gUnknown_3005B60 -_0813566C: .4byte sub_08135670 - thumb_func_end sub_081355CC - - thumb_func_start sub_08135670 -sub_08135670: @ 0x08135670 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _081356A0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #0x18] - lsls r1, r1, #0x10 - ldrh r0, [r0, #0x1a] - orrs r1, r0 - bl _call_via_r1 - ldr r1, _081356A4 - movs r0, #0 - strb r0, [r1, #6] - adds r0, r4, #0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081356A0: .4byte gUnknown_3005B60 -_081356A4: .4byte gUnknown_2037230 - thumb_func_end sub_08135670 - - thumb_func_start SetUpFieldMove_RockSmash -SetUpFieldMove_RockSmash: @ 0x081356A8 - push {r4, lr} - bl ShouldDoBrailleRegirockEffect - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081356E0 - ldr r4, _081356CC - bl GetCursorSelectionMonId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - ldr r1, _081356D0 - ldr r0, _081356D4 - str r0, [r1] - ldr r1, _081356D8 - ldr r0, _081356DC - b _081356FC - .align 2, 0 -_081356CC: .4byte gUnknown_2037290 -_081356D0: .4byte gUnknown_3005B10 -_081356D4: .4byte FieldCallback_PrepareFadeInFromMenu -_081356D8: .4byte gUnknown_203CBB8 -_081356DC: .4byte sub_081796EC -_081356E0: - movs r0, #0x56 - bl CheckObjectGraphicsInFrontOfPlayer - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081356F2 - movs r0, #0 - b _08135700 -_081356F2: - ldr r1, _08135708 - ldr r0, _0813570C - str r0, [r1] - ldr r1, _08135710 - ldr r0, _08135714 -_081356FC: - str r0, [r1] - movs r0, #1 -_08135700: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08135708: .4byte gUnknown_3005B10 -_0813570C: .4byte FieldCallback_PrepareFadeInFromMenu -_08135710: .4byte gUnknown_203CBB8 -_08135714: .4byte sub_08135718 - thumb_func_end SetUpFieldMove_RockSmash - - thumb_func_start sub_08135718 -sub_08135718: @ 0x08135718 - push {lr} - bl GetCursorSelectionMonId - ldr r1, _08135730 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [r1] - ldr r0, _08135734 - bl ScriptContext1_SetupScript - pop {r0} - bx r0 - .align 2, 0 -_08135730: .4byte gUnknown_20388A8 -_08135734: .4byte gUnknown_82566C6 - thumb_func_end sub_08135718 - - thumb_func_start FldEff_UseRockSmash -FldEff_UseRockSmash: @ 0x08135738 - push {lr} - bl oei_task_add - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08135760 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r2, _08135764 - lsrs r0, r2, #0x10 - strh r0, [r1, #0x18] - strh r2, [r1, #0x1a] - movs r0, #0x13 - bl IncrementGameStat - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_08135760: .4byte gUnknown_3005B60 -_08135764: .4byte sub_08135768 - thumb_func_end FldEff_UseRockSmash - - thumb_func_start sub_08135768 -sub_08135768: @ 0x08135768 - push {lr} - movs r0, #0x83 - bl sub_080A306C - movs r0, #0x25 - bl FieldEffectActiveListRemove - bl EnableBothScriptContexts - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08135768 - - thumb_func_start SetUpFieldMove_Dig -SetUpFieldMove_Dig: @ 0x08135780 - push {lr} - bl CanUseEscapeRopeOnCurrMap - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08135792 - movs r0, #0 - b _081357A0 -_08135792: - ldr r1, _081357A4 - ldr r0, _081357A8 - str r0, [r1] - ldr r1, _081357AC - ldr r0, _081357B0 - str r0, [r1] - movs r0, #1 -_081357A0: - pop {r1} - bx r1 - .align 2, 0 -_081357A4: .4byte gUnknown_3005B10 -_081357A8: .4byte FieldCallback_PrepareFadeInFromMenu -_081357AC: .4byte gUnknown_203CBB8 -_081357B0: .4byte hm2_dig - thumb_func_end SetUpFieldMove_Dig - - thumb_func_start hm2_dig -hm2_dig: @ 0x081357B4 - push {lr} - bl sub_0808406C - movs r0, #0x26 - bl FieldEffectStart - bl GetCursorSelectionMonId - ldr r1, _081357D0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_081357D0: .4byte gUnknown_20388A8 - thumb_func_end hm2_dig - - thumb_func_start FldEff_UseDig -FldEff_UseDig: @ 0x081357D4 - push {lr} - bl oei_task_add - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08135808 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r2, _0813580C - lsrs r0, r2, #0x10 - strh r0, [r1, #0x18] - strh r2, [r1, #0x1a] - bl ShouldDoBrailleDigEffect - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08135800 - movs r0, #1 - bl SetPlayerAvatarTransitionFlags -_08135800: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_08135808: .4byte gUnknown_3005B60 -_0813580C: .4byte sub_08135810 - thumb_func_end FldEff_UseDig - - thumb_func_start sub_08135810 -sub_08135810: @ 0x08135810 - push {r4, lr} - movs r0, #0x26 - bl FieldEffectActiveListRemove - bl ShouldDoBrailleDigEffect - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - beq _0813582A - bl DoBrailleDigEffect - b _08135842 -_0813582A: - ldr r0, _08135848 - movs r1, #8 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0813584C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #8] -_08135842: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08135848: .4byte sub_080FEB0C -_0813584C: .4byte gUnknown_3005B60 - thumb_func_end sub_08135810 - - thumb_func_start sub_08135850 -sub_08135850: @ 0x08135850 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r5, _081358A0 - movs r0, #0xd4 - lsls r0, r0, #4 - bl sub_08000BC8 - str r0, [r5] - ldr r2, _081358A4 - adds r0, r0, r2 - movs r3, #0 - strb r4, [r0] - ldr r0, [r5] - movs r4, #0x80 - lsls r4, r4, #4 - adds r1, r0, r4 - str r3, [r1] - ldr r1, _081358A8 - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] - ldr r0, [r5] - ldr r4, _081358AC - adds r0, r0, r4 - strb r3, [r0] - ldr r0, _081358B0 - str r6, [r0] - ldr r5, [r5] - adds r2, r5, r2 - ldrb r2, [r2] - cmp r2, #2 - beq _081358D8 - cmp r2, #2 - bgt _081358B4 - cmp r2, #1 - beq _081358BA - b _08135910 - .align 2, 0 -_081358A0: .4byte gUnknown_203A81C -_081358A4: .4byte 0x00000809 -_081358A8: .4byte 0x00000D34 -_081358AC: .4byte 0x00000D35 -_081358B0: .4byte gUnknown_203A814 -_081358B4: - cmp r2, #3 - beq _081358F4 - b _08135910 -_081358BA: - ldr r0, _081358CC - adds r1, r5, r0 - ldr r0, _081358D0 - str r0, [r1] - ldr r4, _081358D4 - adds r1, r5, r4 - movs r0, #2 - b _08135922 - .align 2, 0 -_081358CC: .4byte 0x00000804 -_081358D0: .4byte gUnknown_85920E7 -_081358D4: .4byte 0x00000808 -_081358D8: - ldr r1, _081358E8 - adds r0, r5, r1 - ldr r1, _081358EC - str r1, [r0] - ldr r4, _081358F0 - adds r0, r5, r4 - strb r2, [r0] - b _08135924 - .align 2, 0 -_081358E8: .4byte 0x00000804 -_081358EC: .4byte gUnknown_85920E9 -_081358F0: .4byte 0x00000808 -_081358F4: - ldr r0, _08135904 - adds r1, r5, r0 - ldr r0, _08135908 - str r0, [r1] - ldr r4, _0813590C - adds r1, r5, r4 - movs r0, #2 - b _08135922 - .align 2, 0 -_08135904: .4byte 0x00000804 -_08135908: .4byte gUnknown_85920EB -_0813590C: .4byte 0x00000808 -_08135910: - ldr r0, _08135930 - ldr r1, [r0] - ldr r0, _08135934 - adds r2, r1, r0 - ldr r0, _08135938 - str r0, [r2] - ldr r4, _0813593C - adds r1, r1, r4 - movs r0, #3 -_08135922: - strb r0, [r1] -_08135924: - ldr r0, _08135940 - bl SetMainCallback2 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08135930: .4byte gUnknown_203A81C -_08135934: .4byte 0x00000804 -_08135938: .4byte gUnknown_85920E4 -_0813593C: .4byte 0x00000808 -_08135940: .4byte CB2_InitPokeblockMenu - thumb_func_end sub_08135850 - - thumb_func_start SummaryScreen_MainCB2 -SummaryScreen_MainCB2: @ 0x08135944 - push {lr} - ldr r1, _08135954 - movs r0, #1 - bl sub_08135850 - pop {r0} - bx r0 - .align 2, 0 -_08135954: .4byte sub_0805996C - thumb_func_end SummaryScreen_MainCB2 - - thumb_func_start OpenPokeblockCaseOnFeeder -OpenPokeblockCaseOnFeeder: @ 0x08135958 - push {lr} - ldr r1, _08135968 - movs r0, #2 - bl sub_08135850 - pop {r0} - bx r0 - .align 2, 0 -_08135968: .4byte sub_08085A30 - thumb_func_end OpenPokeblockCaseOnFeeder - - thumb_func_start Mailbox_DoRedrawMailboxMenuAfterReturn -Mailbox_DoRedrawMailboxMenuAfterReturn: @ 0x0813596C - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Mailbox_DoRedrawMailboxMenuAfterReturn - - thumb_func_start VBlankCB_PokeblockMenu -VBlankCB_PokeblockMenu: @ 0x08135988 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end VBlankCB_PokeblockMenu - - thumb_func_start CB2_InitPokeblockMenu -CB2_InitPokeblockMenu: @ 0x0813599C - push {lr} -_0813599E: - bl sub_081221F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081359C2 - bl InitPokeblockMenu - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081359C2 - bl sub_081221B8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0813599E -_081359C2: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CB2_InitPokeblockMenu - - thumb_func_start InitPokeblockMenu -InitPokeblockMenu: @ 0x081359C8 - push {r4, lr} - sub sp, #4 - ldr r0, _081359E8 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0x12 - bls _081359DC - b _08135C08 -_081359DC: - lsls r0, r0, #2 - ldr r1, _081359EC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081359E8: .4byte gUnknown_3002360 -_081359EC: .4byte _081359F0 -_081359F0: @ jump table - .4byte _08135A3C @ case 0 - .4byte _08135A46 @ case 1 - .4byte _08135A58 @ case 2 - .4byte _08135A5E @ case 3 - .4byte _08135A80 @ case 4 - .4byte _08135A86 @ case 5 - .4byte _08135AA4 @ case 6 - .4byte _08135AC0 @ case 7 - .4byte _08135ADC @ case 8 - .4byte _08135AEA @ case 9 - .4byte _08135B14 @ case 10 - .4byte _08135B2C @ case 11 - .4byte _08135B4C @ case 12 - .4byte _08135B52 @ case 13 - .4byte _08135B64 @ case 14 - .4byte _08135B6A @ case 15 - .4byte _08135BB4 @ case 16 - .4byte _08135BBA @ case 17 - .4byte _08135BD4 @ case 18 -_08135A3C: - bl SetVBlankHBlankCallbacksToNull - bl sub_08199640 - b _08135BEE -_08135A46: - bl ScanlineEffect_Stop - ldr r1, _08135A54 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _08135BF6 - .align 2, 0 -_08135A54: .4byte gUnknown_3002360 -_08135A58: - bl FreeAllSpritePalettes - b _08135BEE -_08135A5E: - bl ResetPaletteFade - ldr r2, _08135A78 - ldrb r0, [r2, #8] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #8] - ldr r1, _08135A7C - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _08135BF6 - .align 2, 0 -_08135A78: .4byte gUnknown_2037C74 -_08135A7C: .4byte gUnknown_3002360 -_08135A80: - bl ResetSpriteData - b _08135BEE -_08135A86: - ldr r0, _08135A9C - ldr r0, [r0] - ldr r1, _08135AA0 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - bne _08135A96 - b _08135BEE -_08135A96: - bl ResetTasks - b _08135BEE - .align 2, 0 -_08135A9C: .4byte gUnknown_203A81C -_08135AA0: .4byte 0x00000809 -_08135AA4: - bl sub_08135C2C - ldr r0, _08135AB8 - ldr r0, [r0] - ldr r1, _08135ABC - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0] - b _08135BEE - .align 2, 0 -_08135AB8: .4byte gUnknown_203A81C -_08135ABC: .4byte 0x00000D36 -_08135AC0: - bl LoadPokeblockMenuGfx - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08135ACC - b _08135C20 -_08135ACC: - ldr r1, _08135AD8 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _08135BF6 - .align 2, 0 -_08135AD8: .4byte gUnknown_3002360 -_08135ADC: - bl SetMenuItemsCountAndMaxShowed - bl sub_08136320 - bl sub_08136384 - b _08135BEE -_08135AEA: - movs r0, #0x38 - movs r1, #0x40 - movs r2, #0 - bl CreatePokeblockCaseSprite - ldr r1, _08135B08 - ldr r1, [r1] - ldr r2, _08135B0C - adds r1, r1, r2 - strb r0, [r1] - ldr r1, _08135B10 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _08135BF6 - .align 2, 0 -_08135B08: .4byte gUnknown_203A81C -_08135B0C: .4byte 0x00000D2C -_08135B10: .4byte gUnknown_3002360 -_08135B14: - ldr r0, _08135B24 - ldr r0, [r0] - ldr r1, _08135B28 - adds r0, r0, r1 - movs r1, #7 - bl sub_08122350 - b _08135BEE - .align 2, 0 -_08135B24: .4byte gUnknown_203A81C -_08135B28: .4byte 0x00000D2D -_08135B2C: - ldr r0, _08135B40 - ldrh r0, [r0, #4] - ldr r1, _08135B44 - bl HandlePokeblockMenuCursor - ldr r1, _08135B48 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _08135BF6 - .align 2, 0 -_08135B40: .4byte gUnknown_203A814 -_08135B44: .4byte 0x00001005 -_08135B48: .4byte gUnknown_3002360 -_08135B4C: - bl sub_08135D74 - b _08135BEE -_08135B52: - bl sub_08135E60 - ldr r1, _08135B60 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _08135BF6 - .align 2, 0 -_08135B60: .4byte gUnknown_3002360 -_08135B64: - bl sub_081363FC - b _08135BEE -_08135B6A: - ldr r0, _08135BA0 - movs r1, #0 - bl CreateTask - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _08135BA4 - ldr r2, _08135BA8 - ldrh r1, [r2, #6] - ldrh r2, [r2, #4] - bl ListMenuInit - ldr r2, _08135BAC - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r1, #8] - ldr r1, _08135BB0 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _08135BF6 - .align 2, 0 -_08135BA0: .4byte Task_HandlePokeblockMenuInput -_08135BA4: .4byte gUnknown_3006050 -_08135BA8: .4byte gUnknown_203A814 -_08135BAC: .4byte gUnknown_3005B60 -_08135BB0: .4byte gUnknown_3002360 -_08135BB4: - bl sub_08135DF8 - b _08135BEE -_08135BBA: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - ldr r1, _08135BD0 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _08135BF6 - .align 2, 0 -_08135BD0: .4byte gUnknown_3002360 -_08135BD4: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r2, _08135C00 - ldrb r1, [r2, #8] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #8] -_08135BEE: - ldr r1, _08135C04 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 -_08135BF6: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _08135C20 - .align 2, 0 -_08135C00: .4byte gUnknown_2037C74 -_08135C04: .4byte gUnknown_3002360 -_08135C08: - ldr r0, _08135C18 - bl SetVBlankCallback - ldr r0, _08135C1C - bl SetMainCallback2 - movs r0, #1 - b _08135C22 - .align 2, 0 -_08135C18: .4byte VBlankCB_PokeblockMenu -_08135C1C: .4byte Mailbox_DoRedrawMailboxMenuAfterReturn -_08135C20: - movs r0, #0 -_08135C22: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end InitPokeblockMenu - - thumb_func_start sub_08135C2C -sub_08135C2C: @ 0x08135C2C - push {lr} - bl ResetVramOamAndBgCntRegs - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _08135C80 - movs r0, #0 - movs r2, #3 - bl InitBgsFromTemplates - ldr r0, _08135C84 - ldr r1, [r0] - movs r0, #2 - bl SetBgTilemapBuffer - bl ResetAllBgsCoordinates - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 -_08135C80: .4byte gUnknown_859206C -_08135C84: .4byte gUnknown_203A81C - thumb_func_end sub_08135C2C - - thumb_func_start LoadPokeblockMenuGfx -LoadPokeblockMenuGfx: @ 0x08135C88 - push {r4, lr} - sub sp, #4 - ldr r0, _08135CA8 - ldr r0, [r0] - ldr r1, _08135CAC - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #5 - bhi _08135D68 - lsls r0, r0, #2 - ldr r1, _08135CB0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08135CA8: .4byte gUnknown_203A81C -_08135CAC: .4byte 0x00000D36 -_08135CB0: .4byte _08135CB4 -_08135CB4: @ jump table - .4byte _08135CCC @ case 0 - .4byte _08135CE8 @ case 1 - .4byte _08135D0C @ case 2 - .4byte _08135D1C @ case 3 - .4byte _08135D28 @ case 4 - .4byte _08135D4C @ case 5 -_08135CCC: - bl reset_temp_tile_data_buffers - ldr r1, _08135CE4 - movs r0, #0 - str r0, [sp] - movs r0, #2 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - b _08135D2E - .align 2, 0 -_08135CE4: .4byte gUnknown_8D9B4B4 -_08135CE8: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08135D68 - ldr r0, _08135D04 - ldr r4, _08135D08 - ldr r1, [r4] - bl sub_08034370 - ldr r1, [r4] - b _08135D32 - .align 2, 0 -_08135D04: .4byte gUnknown_8D9BA14 -_08135D08: .4byte gUnknown_203A81C -_08135D0C: - ldr r0, _08135D18 - movs r1, #0 - movs r2, #0xc0 - bl LoadCompressedPalette - b _08135D2E - .align 2, 0 -_08135D18: .4byte gUnknown_8D9B6BC -_08135D1C: - ldr r0, _08135D24 - bl LoadCompressedSpriteSheet - b _08135D2E - .align 2, 0 -_08135D24: .4byte gUnknown_8592140 -_08135D28: - ldr r0, _08135D40 - bl LoadCompressedSpritePalette -_08135D2E: - ldr r0, _08135D44 - ldr r1, [r0] -_08135D32: - ldr r0, _08135D48 - adds r1, r1, r0 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _08135D68 - .align 2, 0 -_08135D40: .4byte gUnknown_8592148 -_08135D44: .4byte gUnknown_203A81C -_08135D48: .4byte 0x00000D36 -_08135D4C: - bl sub_08122334 - ldr r0, _08135D60 - ldr r0, [r0] - ldr r1, _08135D64 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0] - movs r0, #1 - b _08135D6A - .align 2, 0 -_08135D60: .4byte gUnknown_203A81C -_08135D64: .4byte 0x00000D36 -_08135D68: - movs r0, #0 -_08135D6A: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end LoadPokeblockMenuGfx - - thumb_func_start sub_08135D74 -sub_08135D74: @ 0x08135D74 - push {r4, lr} - ldr r0, _08135DC4 - bl InitWindows - bl sub_08004480 - movs r0, #0 - movs r1, #1 - movs r2, #0xe0 - bl LoadUserWindowBorderGfx - movs r0, #0 - movs r1, #0xa - movs r2, #0xd0 - bl LoadMessageBoxGfx - ldr r0, _08135DC8 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - movs r4, #0 -_08135DA0: - adds r0, r4, #0 - movs r1, #0 - bl FillWindowPixelBuffer - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xa - bls _08135DA0 - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08135DC4: .4byte gUnknown_8592194 -_08135DC8: .4byte gUnknown_85D7B04 - thumb_func_end sub_08135D74 - - thumb_func_start sub_08135DCC -sub_08135DCC: @ 0x08135DCC - push {lr} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r3, #0 - str r3, [sp] - str r3, [sp, #4] - ldr r2, _08135DF4 - str r2, [sp, #8] - str r3, [sp, #0xc] - str r1, [sp, #0x10] - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized4 - add sp, #0x14 - pop {r0} - bx r0 - .align 2, 0 -_08135DF4: .4byte gUnknown_8592168 - thumb_func_end sub_08135DCC - - thumb_func_start sub_08135DF8 -sub_08135DF8: @ 0x08135DF8 - push {r4, lr} - ldr r0, _08135E48 - bl sub_080D6C8C - adds r1, r0, #0 - movs r0, #0 - bl sub_08135DCC - ldr r1, _08135E4C - movs r0, #2 - bl sub_08135DCC - ldr r1, _08135E50 - movs r0, #3 - bl sub_08135DCC - ldr r1, _08135E54 - movs r0, #4 - bl sub_08135DCC - ldr r1, _08135E58 - movs r0, #5 - bl sub_08135DCC - ldr r1, _08135E5C - movs r0, #6 - bl sub_08135DCC - movs r4, #0 -_08135E32: - adds r0, r4, #0 - bl PutWindowTilemap - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #7 - bls _08135E32 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08135E48: .4byte 0x00000111 -_08135E4C: .4byte gUnknown_85C983E -_08135E50: .4byte gUnknown_85C9842 -_08135E54: .4byte gUnknown_85C9846 -_08135E58: .4byte gUnknown_85C984A -_08135E5C: .4byte gUnknown_85C984E - thumb_func_end sub_08135DF8 - - thumb_func_start sub_08135E60 -sub_08135E60: @ 0x08135E60 - push {r4, r5, r6, r7, lr} - movs r6, #0 - ldr r1, _08135F10 - ldr r0, [r1] - ldr r2, _08135F14 - adds r0, r0, r2 - ldrb r0, [r0] - subs r0, #1 - cmp r6, r0 - bge _08135EB4 - adds r5, r1, #0 -_08135E76: - lsls r4, r6, #1 - adds r4, r4, r6 - lsls r4, r4, #3 - ldr r3, _08135F18 - adds r4, r4, r3 - ldr r0, [r5] - adds r0, r0, r4 - adds r1, r6, #0 - bl sub_08135F30 - ldr r1, [r5] - lsls r2, r6, #3 - ldr r7, _08135F1C - adds r0, r1, r7 - adds r0, r0, r2 - adds r4, r1, r4 - str r4, [r0] - movs r3, #0x81 - lsls r3, r3, #4 - adds r0, r1, r3 - adds r0, r0, r2 - str r6, [r0] - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r4, _08135F14 - adds r1, r1, r4 - ldrb r0, [r1] - subs r0, #1 - cmp r6, r0 - blt _08135E76 -_08135EB4: - ldr r5, _08135F10 - lsls r4, r6, #1 - adds r4, r4, r6 - lsls r4, r4, #3 - ldr r7, _08135F18 - adds r4, r4, r7 - ldr r0, [r5] - adds r0, r0, r4 - ldr r1, _08135F20 - bl StringCopy - ldr r1, [r5] - lsls r2, r6, #3 - ldr r3, _08135F1C - adds r0, r1, r3 - adds r0, r0, r2 - adds r4, r1, r4 - str r4, [r0] - movs r0, #0x81 - lsls r0, r0, #4 - adds r1, r1, r0 - adds r1, r1, r2 - movs r0, #2 - rsbs r0, r0, #0 - str r0, [r1] - ldr r2, _08135F24 - adds r1, r2, #0 - ldr r0, _08135F28 - ldm r0!, {r4, r6, r7} - stm r1!, {r4, r6, r7} - ldm r0!, {r4, r6, r7} - stm r1!, {r4, r6, r7} - ldr r1, [r5] - ldr r4, _08135F14 - adds r0, r1, r4 - ldrb r0, [r0] - strh r0, [r2, #0xc] - adds r3, r1, r3 - str r3, [r2] - ldr r6, _08135F2C - adds r1, r1, r6 - ldrb r0, [r1] - strh r0, [r2, #0xe] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08135F10: .4byte gUnknown_203A81C -_08135F14: .4byte 0x0000080A -_08135F18: .4byte 0x00000954 -_08135F1C: .4byte 0x0000080C -_08135F20: .4byte gUnknown_85C985C -_08135F24: .4byte gUnknown_3006050 -_08135F28: .4byte gUnknown_85921FC -_08135F2C: .4byte 0x0000080B - thumb_func_end sub_08135E60 - - thumb_func_start sub_08135F30 -sub_08135F30: @ 0x08135F30 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - adds r5, r0, #0 - lsls r4, r1, #0x10 - lsrs r4, r4, #0x10 - movs r1, #0 - movs r2, #0x18 - bl memset - ldr r1, _08135FA0 - ldr r0, _08135FA4 - mov sb, r0 - ldr r0, [r0] - lsls r4, r4, #3 - adds r0, r0, r4 - ldr r6, _08135FA8 - adds r0, r0, r6 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r5, #0 - bl StringCopy - movs r1, #0 - strb r1, [r0] - ldr r1, _08135FAC - mov r8, r1 - adds r4, r4, r6 - mov r2, sb - ldr r0, [r2] - adds r0, r0, r4 - bl GetHighestPokeblocksFlavorLevel - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r0, r8 - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - adds r5, #9 - ldr r1, _08135FB0 - adds r0, r5, #0 - bl StringExpandPlaceholders - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08135FA0: .4byte gUnknown_8592078 -_08135FA4: .4byte gUnknown_3005AEC -_08135FA8: .4byte 0x00000848 -_08135FAC: .4byte gUnknown_2021C40 -_08135FB0: .4byte gUnknown_85C9864 - thumb_func_end sub_08135F30 - - thumb_func_start MovePokeblockMenuCursor -MovePokeblockMenuCursor: @ 0x08135FB4 - push {r4, lr} - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #1 - beq _08135FE0 - movs r0, #5 - bl sub_080A306C - ldr r2, _08135FFC - ldr r0, _08136000 - ldr r0, [r0] - ldr r1, _08136004 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, _08136008 - str r1, [r0] -_08135FE0: - ldr r0, _08136000 - ldr r0, [r0] - ldr r1, _0813600C - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _08135FF4 - adds r0, r4, #0 - bl sub_08136010 -_08135FF4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08135FFC: .4byte gUnknown_20205AC -_08136000: .4byte gUnknown_203A81C -_08136004: .4byte 0x00000D2C -_08136008: .4byte sub_081364B0 -_0813600C: .4byte 0x00000D35 - thumb_func_end MovePokeblockMenuCursor - - thumb_func_start sub_08136010 -sub_08136010: @ 0x08136010 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - adds r4, r0, #0 - movs r0, #7 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #2 - rsbs r0, r0, #0 - cmp r4, r0 - beq _081360E0 - ldr r1, _08136068 - lsls r0, r4, #3 - ldr r2, _0813606C - adds r0, r0, r2 - ldr r1, [r1] - adds r1, r1, r0 - mov r8, r1 - add r1, sp, #8 - movs r0, #0x17 - strh r0, [r1] - movs r0, #0x18 - strh r0, [r1, #2] - movs r5, #0 - adds r6, r1, #0 -_08136046: - adds r4, r5, #1 - lsls r1, r4, #0x18 - lsrs r1, r1, #0x18 - mov r0, r8 - bl GetPokeblockData - lsls r0, r0, #0x10 - adds r7, r4, #0 - cmp r0, #0 - ble _08136070 - lsls r1, r5, #0xc - adds r0, r1, #0 - adds r0, #0x17 - strh r0, [r6] - adds r1, #0x18 - strh r1, [r6, #2] - b _08136076 - .align 2, 0 -_08136068: .4byte gUnknown_3005AEC -_0813606C: .4byte 0x00000848 -_08136070: - movs r0, #0xf - strh r0, [r6] - strh r0, [r6, #2] -_08136076: - adds r0, r5, #0 - movs r1, #3 - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #1 - adds r4, r4, r0 - lsls r4, r4, #1 - adds r4, #1 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - movs r1, #3 - bl __umodsi3 - adds r3, r0, #0 - lsls r3, r3, #0x19 - movs r0, #0xd0 - lsls r0, r0, #0x14 - adds r3, r3, r0 - lsrs r3, r3, #0x18 - movs r0, #1 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - add r1, sp, #8 - adds r2, r4, #0 - bl CopyToBgTilemapBufferRect - lsls r0, r7, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #4 - bls _08136046 - ldr r4, _081360DC - mov r0, r8 - bl GetPokeblocksFeel - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - movs r2, #1 - movs r3, #2 - bl sub_080089D8 - movs r0, #7 - adds r1, r4, #0 - bl sub_08135DCC - b _08136138 - .align 2, 0 -_081360DC: .4byte gUnknown_2021C40 -_081360E0: - add r0, sp, #8 - movs r1, #0xf - strh r1, [r0] - strh r1, [r0, #2] - movs r5, #0 -_081360EA: - adds r0, r5, #0 - movs r1, #3 - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #1 - adds r4, r4, r0 - lsls r4, r4, #1 - adds r4, #1 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - movs r1, #3 - bl __umodsi3 - adds r3, r0, #0 - lsls r3, r3, #0x19 - movs r2, #0xd0 - lsls r2, r2, #0x14 - adds r3, r3, r2 - lsrs r3, r3, #0x18 - movs r0, #1 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - add r1, sp, #8 - adds r2, r4, #0 - bl CopyToBgTilemapBufferRect - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #4 - bls _081360EA - movs r0, #7 - movs r1, #2 - bl CopyWindowToVram -_08136138: - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08136010 - - thumb_func_start HandlePokeblockMenuCursor -HandlePokeblockMenuCursor: @ 0x08136150 - push {lr} - sub sp, #8 - adds r3, r0, #0 - lsls r3, r3, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsrs r3, r3, #0xf - adds r3, #1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #0xe - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r2, #0xf - bl FillBgTilemapBufferRect_Palette0 - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - add sp, #8 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end HandlePokeblockMenuCursor - - thumb_func_start CompactPokeblockSlots -CompactPokeblockSlots: @ 0x08136180 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - movs r2, #0 -_0813618A: - adds r1, r2, #1 - lsls r0, r1, #0x10 - lsrs r6, r0, #0x10 - mov ip, r1 - cmp r6, #0x27 - bhi _081361D2 - ldr r0, _081361E8 - mov sb, r0 - lsls r7, r2, #3 - ldr r1, _081361EC - mov r8, r1 -_081361A0: - mov r0, sb - ldr r2, [r0] - adds r0, r2, r7 - add r0, r8 - ldrb r0, [r0] - cmp r0, #0 - bne _081361C8 - ldr r1, _081361EC - adds r2, r2, r1 - adds r3, r2, r7 - ldr r4, [r3] - ldr r5, [r3, #4] - lsls r0, r6, #3 - adds r2, r2, r0 - ldr r0, [r2] - ldr r1, [r2, #4] - str r0, [r3] - str r1, [r3, #4] - str r4, [r2] - str r5, [r2, #4] -_081361C8: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0x27 - bls _081361A0 -_081361D2: - mov r1, ip - lsls r0, r1, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0x26 - bls _0813618A - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081361E8: .4byte gUnknown_3005AEC -_081361EC: .4byte 0x00000848 - thumb_func_end CompactPokeblockSlots - - thumb_func_start SwapSortPokeblocksInternalData -SwapSortPokeblocksInternalData: @ 0x081361F0 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r0, _08136244 - ldr r0, [r0] - ldr r1, _08136248 - adds r6, r0, r1 - cmp r4, r5 - beq _08136286 - movs r0, #8 - bl sub_08000BC8 - adds r7, r0, #0 - lsls r0, r4, #3 - adds r0, r0, r6 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [r7] - str r1, [r7, #4] - cmp r5, r4 - bls _0813624C - subs r5, #1 - lsls r3, r4, #0x10 - lsls r0, r5, #0x10 - asrs r1, r0, #0x10 - cmp r3, r0 - bge _08136274 - adds r4, r1, #0 -_08136228: - asrs r3, r3, #0x10 - lsls r2, r3, #3 - adds r2, r2, r6 - ldr r0, [r2, #8] - ldr r1, [r2, #0xc] - str r0, [r2] - str r1, [r2, #4] - adds r3, #1 - lsls r3, r3, #0x10 - asrs r0, r3, #0x10 - cmp r0, r4 - blt _08136228 - b _08136274 - .align 2, 0 -_08136244: .4byte gUnknown_3005AEC -_08136248: .4byte 0x00000848 -_0813624C: - lsls r3, r4, #0x10 - lsls r0, r5, #0x10 - asrs r1, r0, #0x10 - cmp r3, r0 - ble _08136274 - adds r4, r1, #0 -_08136258: - asrs r3, r3, #0x10 - lsls r2, r3, #3 - adds r2, r2, r6 - adds r0, r2, #0 - subs r0, #8 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [r2] - str r1, [r2, #4] - subs r3, #1 - lsls r3, r3, #0x10 - asrs r0, r3, #0x10 - cmp r0, r4 - bgt _08136258 -_08136274: - lsls r2, r5, #3 - adds r2, r2, r6 - ldr r0, [r7] - ldr r1, [r7, #4] - str r0, [r2] - str r1, [r2, #4] - adds r0, r7, #0 - bl Free -_08136286: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end SwapSortPokeblocksInternalData - - thumb_func_start ResetPokeblockScrollPositions -ResetPokeblockScrollPositions: @ 0x0813628C - ldr r1, _08136298 - movs r0, #0 - strh r0, [r1, #4] - strh r0, [r1, #6] - bx lr - .align 2, 0 -_08136298: .4byte gUnknown_203A814 - thumb_func_end ResetPokeblockScrollPositions - - thumb_func_start SetMenuItemsCountAndMaxShowed -SetMenuItemsCountAndMaxShowed: @ 0x0813629C - push {r4, r5, lr} - bl CompactPokeblockSlots - ldr r0, _081362FC - ldr r0, [r0] - ldr r1, _08136300 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - movs r2, #0 - ldr r5, _08136304 - ldr r4, _08136308 -_081362B4: - ldr r0, [r5] - lsls r1, r2, #3 - adds r0, r0, r1 - adds r0, r0, r4 - ldrb r0, [r0] - ldr r3, _081362FC - cmp r0, #0 - beq _081362D0 - ldr r1, [r3] - ldr r0, _08136300 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_081362D0: - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0x27 - bls _081362B4 - ldr r0, [r3] - ldr r2, _08136300 - adds r0, r0, r2 - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - ldr r0, [r3] - adds r2, r0, r2 - ldrb r2, [r2] - cmp r2, #9 - bls _08136310 - ldr r2, _0813630C - adds r1, r0, r2 - movs r0, #9 - strb r0, [r1] - b _08136316 - .align 2, 0 -_081362FC: .4byte gUnknown_203A81C -_08136300: .4byte 0x0000080A -_08136304: .4byte gUnknown_3005AEC -_08136308: .4byte 0x00000848 -_0813630C: .4byte 0x0000080B -_08136310: - ldr r1, _0813631C - adds r0, r0, r1 - strb r2, [r0] -_08136316: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0813631C: .4byte 0x0000080B - thumb_func_end SetMenuItemsCountAndMaxShowed - - thumb_func_start sub_08136320 -sub_08136320: @ 0x08136320 - push {r4, r5, lr} - ldr r0, _08136368 - ldrh r1, [r0, #6] - adds r3, r0, #0 - ldr r4, _0813636C - cmp r1, #0 - beq _08136348 - ldrh r0, [r3, #6] - ldr r1, [r4] - ldr r5, _08136370 - adds r2, r1, r5 - ldrb r2, [r2] - adds r0, r0, r2 - subs r5, #1 - adds r1, r1, r5 - ldrb r1, [r1] - cmp r0, r1 - ble _08136348 - subs r0, r1, r2 - strh r0, [r3, #6] -_08136348: - adds r2, r3, #0 - ldrh r1, [r2, #6] - ldrh r0, [r2, #4] - adds r1, r1, r0 - ldr r0, [r4] - ldr r4, _08136374 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r1, r0 - blt _0813637C - adds r1, r0, #0 - cmp r1, #0 - bne _08136378 - strh r1, [r2, #4] - b _0813637C - .align 2, 0 -_08136368: .4byte gUnknown_203A814 -_0813636C: .4byte gUnknown_203A81C -_08136370: .4byte 0x0000080B -_08136374: .4byte 0x0000080A -_08136378: - subs r0, #1 - strh r0, [r3, #4] -_0813637C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08136320 - - thumb_func_start sub_08136384 -sub_08136384: @ 0x08136384 - push {r4, r5, r6, r7, lr} - ldr r0, _081363EC - ldrh r1, [r0, #4] - adds r5, r0, #0 - cmp r1, #4 - bls _081363E4 - movs r4, #0 - ldrh r0, [r5, #4] - subs r0, #4 - cmp r4, r0 - bge _081363E4 - ldrh r2, [r5, #6] - ldr r6, _081363F0 - ldr r0, [r6] - ldr r3, _081363F4 - adds r1, r0, r3 - ldrb r1, [r1] - adds r2, r2, r1 - ldr r7, _081363F8 - adds r0, r0, r7 - ldrb r0, [r0] - cmp r2, r0 - beq _081363E4 - adds r3, r5, #0 -_081363B4: - ldrh r0, [r3, #4] - subs r0, #1 - strh r0, [r3, #4] - ldrh r0, [r3, #6] - adds r0, #1 - strh r0, [r3, #6] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldrh r0, [r3, #4] - subs r0, #4 - cmp r4, r0 - bge _081363E4 - ldrh r2, [r5, #6] - ldr r1, [r6] - ldr r7, _081363F4 - adds r0, r1, r7 - ldrb r0, [r0] - adds r2, r2, r0 - ldr r0, _081363F8 - adds r1, r1, r0 - ldrb r1, [r1] - cmp r2, r1 - bne _081363B4 -_081363E4: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081363EC: .4byte gUnknown_203A814 -_081363F0: .4byte gUnknown_203A81C -_081363F4: .4byte 0x0000080B -_081363F8: .4byte 0x0000080A - thumb_func_end sub_08136384 - - thumb_func_start sub_081363FC -sub_081363FC: @ 0x081363FC - push {r4, lr} - sub sp, #0x10 - ldr r4, _08136444 - ldr r1, [r4] - ldr r2, _08136448 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0xff - bne _0813643C - ldr r2, _0813644C - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, #1 - adds r1, r1, r2 - ldrb r1, [r1] - subs r0, r0, r1 - str r0, [sp] - ldr r0, _08136450 - str r0, [sp, #4] - str r0, [sp, #8] - ldr r0, _08136454 - str r0, [sp, #0xc] - movs r0, #2 - movs r1, #0xb0 - movs r2, #8 - movs r3, #0x98 - bl AddScrollIndicatorArrowPairParameterized - ldr r1, [r4] - ldr r2, _08136448 - adds r1, r1, r2 - strb r0, [r1] -_0813643C: - add sp, #0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08136444: .4byte gUnknown_203A81C -_08136448: .4byte 0x00000D34 -_0813644C: .4byte 0x0000080A -_08136450: .4byte 0x00000456 -_08136454: .4byte gUnknown_203A81A - thumb_func_end sub_081363FC - - thumb_func_start sub_08136458 -sub_08136458: @ 0x08136458 - push {r4, lr} - ldr r4, _0813647C - ldr r0, [r4] - ldr r2, _08136480 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, #0xff - beq _08136476 - bl RemoveScrollIndicatorArrowPair - ldr r0, [r4] - ldr r1, _08136480 - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] -_08136476: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813647C: .4byte gUnknown_203A81C -_08136480: .4byte 0x00000D34 - thumb_func_end sub_08136458 - - thumb_func_start CreatePokeblockCaseSprite -CreatePokeblockCaseSprite: @ 0x08136484 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r3, r2, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r0, _081364AC - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - adds r1, r4, #0 - adds r2, r5, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081364AC: .4byte gUnknown_8592150 - thumb_func_end CreatePokeblockCaseSprite - - thumb_func_start sub_081364B0 -sub_081364B0: @ 0x081364B0 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #1 - ble _081364C0 - movs r0, #0 - strh r0, [r4, #0x2e] -_081364C0: - movs r0, #0x2e - ldrsh r5, [r4, r0] - cmp r5, #0 - beq _081364CE - cmp r5, #1 - beq _081364F4 - b _08136520 -_081364CE: - ldrb r1, [r4, #1] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #1] - ldr r0, _081364F0 - str r0, [r4, #0x10] - adds r0, r4, #0 - bl InitSpriteAffineAnim - movs r0, #1 - strh r0, [r4, #0x2e] - strh r5, [r4, #0x30] - b _08136520 - .align 2, 0 -_081364F0: .4byte gUnknown_859213C -_081364F4: - ldrh r0, [r4, #0x30] - adds r0, #1 - movs r2, #0 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xb - ble _08136520 - ldrb r1, [r4, #1] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #1] - strh r2, [r4, #0x2e] - strh r2, [r4, #0x30] - ldrb r0, [r4, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - ldr r0, _08136528 - str r0, [r4, #0x1c] -_08136520: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08136528: .4byte sub_08007140 - thumb_func_end sub_081364B0 - - thumb_func_start sub_0813652C -sub_0813652C: @ 0x0813652C - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _0813655C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08136560 - str r1, [r0] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813655C: .4byte gUnknown_3005B60 -_08136560: .4byte Task_FreeDataAndExitPokeblockCase - thumb_func_end sub_0813652C - - thumb_func_start Task_FreeDataAndExitPokeblockCase -Task_FreeDataAndExitPokeblockCase: @ 0x08136564 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _081365C8 - adds r2, r0, r1 - ldr r0, _081365CC - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081365FE - ldr r6, _081365D0 - ldr r0, [r6] - ldr r1, _081365D4 - adds r0, r0, r1 - ldrb r0, [r0] - subs r0, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0813659A - ldr r1, _081365D8 - ldr r0, _081365DC - str r0, [r1] -_0813659A: - ldrb r0, [r2] - ldr r4, _081365E0 - subs r2, r4, #2 - adds r1, r4, #0 - bl DestroyListMenuTask - bl sub_08136458 - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r0, [r6] - movs r1, #0x80 - lsls r1, r1, #4 - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #0 - beq _081365E4 - bl SetMainCallback2 - b _081365EC - .align 2, 0 -_081365C8: .4byte gUnknown_3005B68 -_081365CC: .4byte gUnknown_2037C74 -_081365D0: .4byte gUnknown_203A81C -_081365D4: .4byte 0x00000809 -_081365D8: .4byte gUnknown_3005B0C -_081365DC: .4byte FieldCallback_ReturnToEventScript2 -_081365E0: .4byte gUnknown_203A81A -_081365E4: - subs r0, r4, #6 - ldr r0, [r0] - bl SetMainCallback2 -_081365EC: - bl FreeAllWindowBuffers - ldr r0, _08136604 - ldr r0, [r0] - bl Free - adds r0, r5, #0 - bl DestroyTask -_081365FE: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08136604: .4byte gUnknown_203A81C - thumb_func_end Task_FreeDataAndExitPokeblockCase - - thumb_func_start Task_HandlePokeblockMenuInput -Task_HandlePokeblockMenuInput: @ 0x08136608 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - mov r8, r0 - ldr r0, _081366A4 - mov sl, r0 - mov r6, r8 - add r6, sl - ldr r0, _081366A8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08136634 - b _08136748 -_08136634: - bl sub_081221F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08136642 - b _08136748 -_08136642: - ldr r0, _081366AC - ldrh r1, [r0, #0x2e] - movs r0, #4 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - cmp r0, #0 - beq _081366C8 - ldrb r0, [r6] - ldr r4, _081366B0 - subs r2, r4, #2 - adds r1, r4, #0 - bl ListMenuGetScrollAndRow - subs r4, #6 - ldrh r1, [r4, #6] - ldrh r0, [r4, #4] - adds r1, r1, r0 - ldr r5, _081366B4 - ldr r0, [r5] - ldr r2, _081366B8 - adds r0, r0, r2 - ldrb r0, [r0] - subs r0, #1 - cmp r1, r0 - beq _08136748 - movs r0, #5 - bl sub_080A306C - ldrh r0, [r4, #4] - ldr r1, _081366BC - bl HandlePokeblockMenuCursor - ldrh r0, [r4, #4] - ldrh r4, [r4, #6] - adds r0, r0, r4 - strh r0, [r6, #4] - ldr r0, [r5] - ldr r1, _081366C0 - adds r0, r0, r1 - movs r1, #1 - strb r1, [r0] - mov r0, sl - subs r0, #8 - add r0, r8 - ldr r1, _081366C4 - str r1, [r0] - b _08136748 - .align 2, 0 -_081366A4: .4byte gUnknown_3005B68 -_081366A8: .4byte gUnknown_2037C74 -_081366AC: .4byte gUnknown_3002360 -_081366B0: .4byte gUnknown_203A81A -_081366B4: .4byte gUnknown_203A81C -_081366B8: .4byte 0x0000080A -_081366BC: .4byte 0x00002005 -_081366C0: .4byte 0x00000D35 -_081366C4: .4byte Task_HandlePokeblocksSwapInput -_081366C8: - ldr r5, _08136708 - ldrh r2, [r5, #4] - mov r8, r2 - ldrb r0, [r6] - bl ListMenu_ProcessInput - adds r4, r0, #0 - ldrb r0, [r6] - adds r1, r5, #6 - adds r2, r5, #4 - bl ListMenuGetScrollAndRow - ldrh r0, [r5, #4] - cmp r8, r0 - beq _081366F6 - mov r0, r8 - movs r1, #5 - bl HandlePokeblockMenuCursor - ldrh r0, [r5, #4] - ldr r1, _0813670C - bl HandlePokeblockMenuCursor -_081366F6: - movs r0, #2 - rsbs r0, r0, #0 - cmp r4, r0 - beq _08136710 - adds r0, #1 - cmp r4, r0 - bne _08136738 - b _08136748 - .align 2, 0 -_08136708: .4byte gUnknown_203A814 -_0813670C: .4byte 0x00001005 -_08136710: - movs r0, #5 - bl sub_080A306C - ldr r0, _0813672C - ldr r2, _08136730 - adds r1, r2, #0 - strh r1, [r0] - ldr r0, _08136734 - mov r1, sb - strh r1, [r0] - adds r0, r7, #0 - bl sub_0813652C - b _08136748 - .align 2, 0 -_0813672C: .4byte gUnknown_2037290 -_08136730: .4byte 0x0000FFFF -_08136734: .4byte gUnknown_203CB48 -_08136738: - movs r0, #5 - bl sub_080A306C - ldr r0, _08136758 - strh r4, [r0] - adds r0, r7, #0 - bl sub_08136978 -_08136748: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08136758: .4byte gUnknown_203CB48 - thumb_func_end Task_HandlePokeblockMenuInput - - thumb_func_start Task_HandlePokeblocksSwapInput -Task_HandlePokeblocksSwapInput: @ 0x0813675C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r0, r0, #2 - add r0, r8 - lsls r0, r0, #3 - ldr r1, _081367A0 - adds r7, r0, r1 - bl sub_081221F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08136782 - b _08136888 -_08136782: - ldr r0, _081367A4 - ldrh r1, [r0, #0x2e] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _081367AC - movs r0, #5 - bl sub_080A306C - ldrb r0, [r7] - ldr r1, _081367A8 - subs r2, r1, #2 - bl ListMenuGetScrollAndRow - b _08136862 - .align 2, 0 -_081367A0: .4byte gUnknown_3005B68 -_081367A4: .4byte gUnknown_3002360 -_081367A8: .4byte gUnknown_203A81A -_081367AC: - ldr r6, _081367F0 - ldrh r4, [r6, #6] - ldrh r5, [r6, #4] - ldrb r0, [r7] - bl ListMenu_ProcessInput - mov sb, r0 - ldrb r0, [r7] - adds r1, r6, #6 - adds r2, r6, #4 - bl ListMenuGetScrollAndRow - ldrh r0, [r6, #6] - cmp r4, r0 - bne _081367D0 - ldrh r6, [r6, #4] - cmp r5, r6 - beq _0813680A -_081367D0: - movs r4, #0 -_081367D2: - ldr r0, _081367F0 - ldrh r0, [r0, #6] - adds r0, r4, r0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - movs r1, #4 - ldrsh r0, [r7, r1] - cmp r5, r0 - bne _081367F8 - adds r0, r4, #0 - ldr r1, _081367F4 - bl HandlePokeblockMenuCursor - b _08136800 - .align 2, 0 -_081367F0: .4byte gUnknown_203A814 -_081367F4: .4byte 0x00002005 -_081367F8: - adds r0, r4, #0 - movs r1, #5 - bl HandlePokeblockMenuCursor -_08136800: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #8 - bls _081367D2 -_0813680A: - ldr r5, _08136844 - ldr r0, [r5] - ldr r4, _08136848 - adds r0, r0, r4 - movs r1, #7 - movs r2, #0 - bl sub_08122408 - ldr r0, [r5] - adds r0, r0, r4 - ldr r1, _0813684C - ldrh r3, [r1, #4] - lsls r3, r3, #4 - adds r3, #8 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - movs r1, #7 - movs r2, #0x80 - bl sub_08122454 - movs r0, #2 - rsbs r0, r0, #0 - cmp sb, r0 - beq _08136850 - adds r0, #1 - cmp sb, r0 - bne _0813687A - b _08136888 - .align 2, 0 -_08136844: .4byte gUnknown_203A81C -_08136848: .4byte 0x00000D2D -_0813684C: .4byte gUnknown_203A814 -_08136850: - movs r0, #5 - bl sub_080A306C - ldr r0, _0813686C - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08136870 -_08136862: - mov r0, r8 - movs r1, #0 - bl HandlePokeblocksSwap - b _08136888 - .align 2, 0 -_0813686C: .4byte gUnknown_3002360 -_08136870: - mov r0, r8 - movs r1, #1 - bl HandlePokeblocksSwap - b _08136888 -_0813687A: - movs r0, #5 - bl sub_080A306C - mov r0, r8 - movs r1, #0 - bl HandlePokeblocksSwap -_08136888: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end Task_HandlePokeblocksSwapInput - - thumb_func_start HandlePokeblocksSwap -HandlePokeblocksSwap: @ 0x08136894 - push {r4, r5, r6, r7, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - ldr r1, _08136954 - adds r6, r0, r1 - ldr r2, _08136958 - ldrh r0, [r2, #4] - ldrh r1, [r2, #6] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, _0813695C - ldr r0, [r0] - ldr r1, _08136960 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - ldrb r0, [r6] - adds r1, r2, #6 - adds r2, #4 - bl DestroyListMenuTask - cmp r4, #0 - bne _081368EA - movs r0, #4 - ldrsh r1, [r6, r0] - cmp r1, r5 - beq _081368FA - subs r0, r5, #1 - cmp r1, r0 - beq _081368EA - adds r0, r1, #0 - adds r1, r5, #0 - bl SwapSortPokeblocksInternalData - bl sub_08135E60 -_081368EA: - movs r1, #4 - ldrsh r0, [r6, r1] - cmp r0, r5 - bge _081368FA - ldr r1, _08136958 - ldrh r0, [r1, #4] - subs r0, #1 - strh r0, [r1, #4] -_081368FA: - ldr r0, _08136964 - ldr r2, _08136958 - ldrh r1, [r2, #6] - ldrh r2, [r2, #4] - bl ListMenuInit - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r6] - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, _0813695C - ldr r0, [r0] - ldr r1, _08136968 - adds r0, r0, r1 - movs r1, #7 - movs r2, #1 - bl sub_08122408 - movs r4, #0 - lsls r5, r7, #2 -_08136926: - adds r0, r4, #0 - movs r1, #5 - bl HandlePokeblockMenuCursor - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #8 - bls _08136926 - ldr r0, _08136958 - ldrh r0, [r0, #4] - ldr r1, _0813696C - bl HandlePokeblockMenuCursor - ldr r1, _08136970 - adds r0, r5, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08136974 - str r1, [r0] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08136954: .4byte gUnknown_3005B68 -_08136958: .4byte gUnknown_203A814 -_0813695C: .4byte gUnknown_203A81C -_08136960: .4byte 0x00000D35 -_08136964: .4byte gUnknown_3006050 -_08136968: .4byte 0x00000D2D -_0813696C: .4byte 0x00001005 -_08136970: .4byte gUnknown_3005B60 -_08136974: .4byte Task_HandlePokeblockMenuInput - thumb_func_end HandlePokeblocksSwap - - thumb_func_start sub_08136978 -sub_08136978: @ 0x08136978 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - lsls r0, r0, #2 - add r0, sb - lsls r0, r0, #3 - ldr r1, _081369A4 - adds r7, r0, r1 - ldr r0, _081369A8 - ldr r0, [r0] - ldr r1, _081369AC - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #3 - bne _081369B0 - movs r0, #8 - b _081369B2 - .align 2, 0 -_081369A4: .4byte gUnknown_3005B68 -_081369A8: .4byte gUnknown_203A81C -_081369AC: .4byte 0x00000808 -_081369B0: - movs r0, #9 -_081369B2: - strh r0, [r7, #2] - bl sub_08136458 - ldrb r0, [r7, #2] - movs r1, #0 - movs r2, #1 - movs r3, #0xe - bl DrawStdFrameWithCustomTileAndPalette - ldrb r0, [r7, #2] - movs r2, #0 - mov r8, r2 - str r2, [sp] - movs r6, #0x10 - str r6, [sp, #4] - ldr r5, _08136A38 - ldr r2, [r5] - ldr r4, _08136A3C - adds r1, r2, r4 - ldrb r1, [r1] - str r1, [sp, #8] - ldr r1, _08136A40 - str r1, [sp, #0xc] - ldr r1, _08136A44 - adds r2, r2, r1 - ldr r1, [r2] - str r1, [sp, #0x10] - movs r1, #1 - movs r2, #8 - movs r3, #2 - bl AddItemMenuActionTextPrinters - ldrb r0, [r7, #2] - str r6, [sp] - ldr r1, [r5] - adds r1, r1, r4 - ldrb r1, [r1] - str r1, [sp, #4] - mov r2, r8 - str r2, [sp, #8] - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl sub_081984B0 - ldrb r0, [r7, #2] - bl PutWindowTilemap - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, _08136A48 - mov r2, sb - lsls r0, r2, #2 - add r0, sb - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08136A4C - str r1, [r0] - add sp, #0x14 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08136A38: .4byte gUnknown_203A81C -_08136A3C: .4byte 0x00000808 -_08136A40: .4byte gUnknown_85920B4 -_08136A44: .4byte 0x00000804 -_08136A48: .4byte gUnknown_3005B60 -_08136A4C: .4byte Task_HandlePokeblockOptionsInput - thumb_func_end sub_08136978 - - thumb_func_start Task_HandlePokeblockOptionsInput -Task_HandlePokeblockOptionsInput: @ 0x08136A50 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r6, r5, #0 - bl sub_081221F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08136AAC - bl Menu_ProcessInputNoWrap - lsls r0, r0, #0x18 - asrs r4, r0, #0x18 - movs r0, #2 - rsbs r0, r0, #0 - cmp r4, r0 - beq _08136AAC - adds r0, #1 - cmp r4, r0 - bne _08136A88 - movs r0, #5 - bl sub_080A306C - adds r0, r5, #0 - bl PokeblockAction_Cancel - b _08136AAC -_08136A88: - movs r0, #5 - bl sub_080A306C - ldr r1, _08136AB4 - ldr r0, _08136AB8 - ldr r0, [r0] - ldr r2, _08136ABC - adds r0, r0, r2 - ldr r0, [r0] - adds r0, r0, r4 - ldrb r0, [r0] - lsls r0, r0, #3 - adds r1, #4 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r6, #0 - bl _call_via_r1 -_08136AAC: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08136AB4: .4byte gUnknown_85920B4 -_08136AB8: .4byte gUnknown_203A81C -_08136ABC: .4byte 0x00000804 - thumb_func_end Task_HandlePokeblockOptionsInput - - thumb_func_start PokeblockAction_UseOnField -PokeblockAction_UseOnField: @ 0x08136AC0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08136ADC - ldr r1, [r1] - movs r2, #0x80 - lsls r2, r2, #4 - adds r1, r1, r2 - ldr r2, _08136AE0 - str r2, [r1] - bl sub_0813652C - pop {r0} - bx r0 - .align 2, 0 -_08136ADC: .4byte gUnknown_203A81C -_08136AE0: .4byte sub_08136AE4 - thumb_func_end PokeblockAction_UseOnField - - thumb_func_start sub_08136AE4 -sub_08136AE4: @ 0x08136AE4 - push {lr} - ldr r2, _08136B00 - ldr r0, _08136B04 - ldrh r1, [r0] - lsls r1, r1, #3 - ldr r0, _08136B08 - adds r1, r1, r0 - ldr r0, [r2] - adds r0, r0, r1 - ldr r1, _08136B0C - bl ChooseMonToGivePokeblock - pop {r0} - bx r0 - .align 2, 0 -_08136B00: .4byte gUnknown_3005AEC -_08136B04: .4byte gUnknown_203CB48 -_08136B08: .4byte 0x00000848 -_08136B0C: .4byte ReturnToPokeblockCaseOnField - thumb_func_end sub_08136AE4 - - thumb_func_start ReturnToPokeblockCaseOnField -ReturnToPokeblockCaseOnField: @ 0x08136B10 - push {lr} - ldr r0, _08136B20 - ldr r1, [r0] - movs r0, #0 - bl sub_08135850 - pop {r0} - bx r0 - .align 2, 0 -_08136B20: .4byte gUnknown_203A814 - thumb_func_end ReturnToPokeblockCaseOnField - - thumb_func_start PokeblockAction_Toss -PokeblockAction_Toss: @ 0x08136B24 - push {r4, r5, lr} - sub sp, #0x10 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _08136B94 - adds r0, r0, r1 - ldrb r0, [r0, #2] - movs r1, #0 - bl sub_08198134 - ldr r0, _08136B98 - ldr r3, _08136B9C - ldr r1, _08136BA0 - ldr r2, [r1] - ldr r1, _08136BA4 - ldrh r1, [r1] - lsls r1, r1, #3 - adds r2, r2, r1 - ldr r1, _08136BA8 - adds r2, r2, r1 - ldrb r1, [r2] - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r1, [r1] - bl StringCopy - ldr r5, _08136BAC - ldr r1, _08136BB0 - adds r0, r5, #0 - bl StringExpandPlaceholders - bl GetPlayerTextSpeedDelay - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - str r1, [sp] - str r0, [sp, #4] - str r5, [sp, #8] - ldr r0, _08136BB4 - str r0, [sp, #0xc] - adds r0, r4, #0 - movs r1, #0xa - movs r2, #0xa - movs r3, #0xd - bl DisplayMessageAndContinueTask - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08136B94: .4byte gUnknown_3005B68 -_08136B98: .4byte gUnknown_2021C40 -_08136B9C: .4byte gUnknown_8592078 -_08136BA0: .4byte gUnknown_3005AEC -_08136BA4: .4byte gUnknown_203CB48 -_08136BA8: .4byte 0x00000848 -_08136BAC: .4byte gUnknown_2021C7C -_08136BB0: .4byte gUnknown_85C9869 -_08136BB4: .4byte CreateTossPokeblockYesNoMenu - thumb_func_end PokeblockAction_Toss - - thumb_func_start CreateTossPokeblockYesNoMenu -CreateTossPokeblockYesNoMenu: @ 0x08136BB8 - push {lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08136BE0 - movs r2, #2 - str r2, [sp] - movs r2, #1 - str r2, [sp, #4] - movs r2, #0xe - str r2, [sp, #8] - ldr r2, _08136BE4 - str r2, [sp, #0xc] - movs r2, #1 - movs r3, #0 - bl sub_08121F84 - add sp, #0x10 - pop {r0} - bx r0 - .align 2, 0 -_08136BE0: .4byte gUnknown_85921F4 -_08136BE4: .4byte gUnknown_85920F0 - thumb_func_end CreateTossPokeblockYesNoMenu - - thumb_func_start TossPokeblockChoice_Yes -TossPokeblockChoice_Yes: @ 0x08136BE8 - push {r4, r5, lr} - sub sp, #0x10 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r5, _08136C24 - ldr r1, _08136C28 - adds r0, r5, #0 - bl StringExpandPlaceholders - bl GetPlayerTextSpeedDelay - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - str r1, [sp] - str r0, [sp, #4] - str r5, [sp, #8] - ldr r0, _08136C2C - str r0, [sp, #0xc] - adds r0, r4, #0 - movs r1, #0xa - movs r2, #0xa - movs r3, #0xd - bl DisplayMessageAndContinueTask - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08136C24: .4byte gUnknown_2021C7C -_08136C28: .4byte gUnknown_85C987B -_08136C2C: .4byte HandleErasePokeblock - thumb_func_end TossPokeblockChoice_Yes - - thumb_func_start HandleErasePokeblock -HandleErasePokeblock: @ 0x08136C30 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _08136CAC - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _08136CA6 - ldr r0, _08136CB0 - ldrb r0, [r0] - bl TryClearPokeblock - movs r0, #5 - bl sub_080A306C - ldr r5, _08136CB4 - subs r6, r5, #2 - lsls r4, r7, #2 - adds r4, r4, r7 - lsls r4, r4, #3 - ldr r0, _08136CB8 - adds r4, r4, r0 - ldrb r0, [r4] - adds r1, r5, #0 - adds r2, r6, #0 - bl DestroyListMenuTask - ldrh r0, [r6] - movs r1, #5 - bl HandlePokeblockMenuCursor - bl SetMenuItemsCountAndMaxShowed - bl sub_08136320 - bl sub_08135E60 - ldr r0, _08136CBC - ldrh r1, [r5] - ldrh r2, [r6] - bl ListMenuInit - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - ldrh r0, [r6] - ldr r1, _08136CC0 - bl HandlePokeblockMenuCursor - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r7, #0 - bl sub_08136CC4 -_08136CA6: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08136CAC: .4byte gUnknown_3002360 -_08136CB0: .4byte gUnknown_203CB48 -_08136CB4: .4byte gUnknown_203A81A -_08136CB8: .4byte gUnknown_3005B68 -_08136CBC: .4byte gUnknown_3006050 -_08136CC0: .4byte 0x00001005 - thumb_func_end HandleErasePokeblock - - thumb_func_start sub_08136CC4 -sub_08136CC4: @ 0x08136CC4 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0xa - movs r1, #0 - bl sub_08197EBC - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - bl sub_081363FC - ldr r1, _08136CF4 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08136CF8 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08136CF4: .4byte gUnknown_3005B60 -_08136CF8: .4byte Task_HandlePokeblockMenuInput - thumb_func_end sub_08136CC4 - - thumb_func_start MachBikeTransition_TrySlowDown -MachBikeTransition_TrySlowDown: @ 0x08136CFC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r0, _08136D68 - bl GetNature - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _08136D6C - ldr r7, _08136D70 - ldrh r2, [r7] - lsls r2, r2, #3 - ldr r6, _08136D74 - adds r2, r2, r6 - ldr r1, [r5] - adds r1, r1, r2 - bl PokeblockGetGain - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r0, _08136D78 - ldr r3, _08136D7C - ldr r2, [r5] - ldrh r1, [r7] - lsls r1, r1, #3 - adds r2, r2, r1 - adds r2, r2, r6 - ldrb r1, [r2] - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r1, [r1] - bl StringCopy - ldrb r0, [r7] - bl TryClearPokeblock - ldr r1, [r5] - ldrh r0, [r7] - lsls r0, r0, #3 - adds r1, r1, r0 - adds r1, r1, r6 - ldrb r0, [r1] - lsls r0, r0, #8 - strh r0, [r7] - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - cmp r4, #0 - bne _08136D80 - adds r0, #1 - b _08136D8A - .align 2, 0 -_08136D68: .4byte gUnknown_20243E8 -_08136D6C: .4byte gUnknown_3005AEC -_08136D70: .4byte gUnknown_203CB48 -_08136D74: .4byte 0x00000848 -_08136D78: .4byte gUnknown_2022C0C -_08136D7C: .4byte gUnknown_8592078 -_08136D80: - cmp r4, #0 - ble _08136D88 - adds r0, #2 - b _08136D8A -_08136D88: - adds r0, #3 -_08136D8A: - strh r0, [r7] - mov r0, r8 - bl sub_0813652C - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end MachBikeTransition_TrySlowDown - - thumb_func_start PokeblockAction_UseOnPokeblockFeeder -PokeblockAction_UseOnPokeblockFeeder: @ 0x08136D9C - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r5, _08136DE8 - ldrb r0, [r5] - bl SafariZoneActivatePokeblockFeeder - ldr r0, _08136DEC - ldr r3, _08136DF0 - ldr r1, _08136DF4 - ldr r2, [r1] - ldrh r1, [r5] - lsls r1, r1, #3 - adds r2, r2, r1 - ldr r1, _08136DF8 - adds r2, r2, r1 - ldrb r1, [r2] - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r1, [r1] - bl StringCopy - ldr r1, _08136DFC - ldrh r0, [r5] - strh r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl TryClearPokeblock - movs r0, #0 - strh r0, [r5] - adds r0, r4, #0 - bl sub_0813652C - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08136DE8: .4byte gUnknown_203CB48 -_08136DEC: .4byte gUnknown_2021C40 -_08136DF0: .4byte gUnknown_8592078 -_08136DF4: .4byte gUnknown_3005AEC -_08136DF8: .4byte 0x00000848 -_08136DFC: .4byte gUnknown_2037290 - thumb_func_end PokeblockAction_UseOnPokeblockFeeder - - thumb_func_start PokeblockAction_GiveToContestLady -PokeblockAction_GiveToContestLady: @ 0x08136E00 - push {r4, r5, r6, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r6, _08136E44 - ldr r0, _08136E48 - ldr r5, _08136E4C - ldrh r1, [r5] - lsls r1, r1, #3 - ldr r2, _08136E50 - adds r1, r1, r2 - ldr r0, [r0] - adds r0, r0, r1 - bl GivePokeblockToContestLady - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r6] - ldr r1, _08136E54 - ldrh r0, [r5] - strh r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl TryClearPokeblock - movs r0, #0 - strh r0, [r5] - adds r0, r4, #0 - bl sub_0813652C - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08136E44: .4byte gUnknown_2037280 -_08136E48: .4byte gUnknown_3005AEC -_08136E4C: .4byte gUnknown_203CB48 -_08136E50: .4byte 0x00000848 -_08136E54: .4byte gUnknown_2037290 - thumb_func_end PokeblockAction_GiveToContestLady - - thumb_func_start PokeblockAction_Cancel -PokeblockAction_Cancel: @ 0x08136E58 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r5, _08136E88 - adds r0, r4, r5 - ldrb r0, [r0, #2] - movs r1, #0 - bl sub_08198134 - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - bl sub_081363FC - subs r5, #8 - adds r4, r4, r5 - ldr r0, _08136E8C - str r0, [r4] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08136E88: .4byte gUnknown_3005B68 -_08136E8C: .4byte Task_HandlePokeblockMenuInput - thumb_func_end PokeblockAction_Cancel - - thumb_func_start ClearPokeblock -ClearPokeblock: @ 0x08136E90 - push {r4, lr} - lsls r0, r0, #0x18 - ldr r3, _08136EE8 - ldr r1, [r3] - lsrs r0, r0, #0x15 - adds r1, r1, r0 - ldr r2, _08136EEC - adds r1, r1, r2 - movs r2, #0 - strb r2, [r1] - ldr r1, [r3] - adds r1, r1, r0 - ldr r4, _08136EF0 - adds r1, r1, r4 - strb r2, [r1] - ldr r1, [r3] - adds r1, r1, r0 - adds r4, #1 - adds r1, r1, r4 - strb r2, [r1] - ldr r1, [r3] - adds r1, r1, r0 - adds r4, #1 - adds r1, r1, r4 - strb r2, [r1] - ldr r1, [r3] - adds r1, r1, r0 - adds r4, #1 - adds r1, r1, r4 - strb r2, [r1] - ldr r1, [r3] - adds r1, r1, r0 - adds r4, #1 - adds r1, r1, r4 - strb r2, [r1] - ldr r1, [r3] - adds r1, r1, r0 - ldr r0, _08136EF4 - adds r1, r1, r0 - strb r2, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08136EE8: .4byte gUnknown_3005AEC -_08136EEC: .4byte 0x00000848 -_08136EF0: .4byte 0x00000849 -_08136EF4: .4byte 0x0000084E - thumb_func_end ClearPokeblock - - thumb_func_start ClearPokeblocks -ClearPokeblocks: @ 0x08136EF8 - push {r4, lr} - movs r4, #0 -_08136EFC: - adds r0, r4, #0 - bl ClearPokeblock - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x27 - bls _08136EFC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ClearPokeblocks - - thumb_func_start GetHighestPokeblocksFlavorLevel -GetHighestPokeblocksFlavorLevel: @ 0x08136F14 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r1, #1 - bl GetPokeblockData - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r1, #1 -_08136F24: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r6, #0 - adds r1, r4, #0 - bl GetPokeblockData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r5, r0 - bhs _08136F3C - adds r5, r0, #0 -_08136F3C: - adds r1, r4, #0 - cmp r1, #4 - bls _08136F24 - adds r0, r5, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetHighestPokeblocksFlavorLevel - - thumb_func_start GetPokeblocksFeel -GetPokeblocksFeel: @ 0x08136F4C - push {lr} - movs r1, #6 - bl GetPokeblockData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x63 - bls _08136F5E - movs r0, #0x63 -_08136F5E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetPokeblocksFeel - - thumb_func_start GetFirstFreePokeblockSlot -GetFirstFreePokeblockSlot: @ 0x08136F64 - push {lr} - movs r1, #0 - ldr r0, _08136F80 - ldr r2, [r0] - ldr r3, _08136F84 -_08136F6E: - lsls r0, r1, #3 - adds r0, r2, r0 - adds r0, r0, r3 - ldrb r0, [r0] - cmp r0, #0 - bne _08136F88 - lsls r0, r1, #0x18 - asrs r0, r0, #0x18 - b _08136F96 - .align 2, 0 -_08136F80: .4byte gUnknown_3005AEC -_08136F84: .4byte 0x00000848 -_08136F88: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x27 - bls _08136F6E - movs r0, #1 - rsbs r0, r0, #0 -_08136F96: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetFirstFreePokeblockSlot - - thumb_func_start AddPokeblock -AddPokeblock: @ 0x08136F9C - push {r4, lr} - adds r4, r0, #0 - bl GetFirstFreePokeblockSlot - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _08136FD0 - ldr r0, _08136FC8 - ldr r2, [r0] - lsls r0, r1, #3 - ldr r1, _08136FCC - adds r2, r2, r1 - adds r2, r2, r0 - ldr r0, [r4] - ldr r1, [r4, #4] - str r0, [r2] - str r1, [r2, #4] - movs r0, #1 - b _08136FD2 - .align 2, 0 -_08136FC8: .4byte gUnknown_3005AEC -_08136FCC: .4byte 0x00000848 -_08136FD0: - movs r0, #0 -_08136FD2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end AddPokeblock - - thumb_func_start TryClearPokeblock -TryClearPokeblock: @ 0x08136FD8 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _08136FFC - ldr r0, [r0] - lsls r1, r2, #3 - adds r0, r0, r1 - ldr r1, _08137000 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _08137004 - adds r0, r2, #0 - bl ClearPokeblock - movs r0, #1 - b _08137006 - .align 2, 0 -_08136FFC: .4byte gUnknown_3005AEC -_08137000: .4byte 0x00000848 -_08137004: - movs r0, #0 -_08137006: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end TryClearPokeblock - - thumb_func_start GetPokeblockData -GetPokeblockData: @ 0x0813700C - push {lr} - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r2, r1, #0 - cmp r1, #0 - bne _0813701C - ldrb r0, [r0] - b _0813704E -_0813701C: - cmp r1, #1 - bne _08137024 - ldrb r0, [r0, #1] - b _0813704E -_08137024: - cmp r1, #2 - bne _0813702C - ldrb r0, [r0, #2] - b _0813704E -_0813702C: - cmp r1, #3 - bne _08137034 - ldrb r0, [r0, #3] - b _0813704E -_08137034: - cmp r1, #4 - bne _0813703C - ldrb r0, [r0, #4] - b _0813704E -_0813703C: - cmp r1, #5 - bne _08137044 - ldrb r0, [r0, #5] - b _0813704E -_08137044: - cmp r2, #6 - beq _0813704C - movs r0, #0 - b _0813704E -_0813704C: - ldrb r0, [r0, #6] -_0813704E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetPokeblockData - - thumb_func_start PokeblockGetGain -PokeblockGetGain: @ 0x08137054 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov r8, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r6, #0 - movs r4, #0 - ldr r1, _081370B0 - mov sb, r1 - lsls r1, r0, #2 - adds r7, r1, r0 -_0813706E: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - mov r0, r8 - adds r1, r5, #0 - bl GetPokeblockData - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - cmp r1, #0 - ble _0813709A - adds r0, r7, r4 - add r0, sb - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - muls r1, r0, r1 - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_0813709A: - adds r4, r5, #0 - cmp r4, #4 - bls _0813706E - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081370B0: .4byte gUnknown_8591FEC - thumb_func_end PokeblockGetGain - - thumb_func_start PokeblockCopyName -PokeblockCopyName: @ 0x081370B4 - push {r4, lr} - adds r4, r1, #0 - movs r1, #0 - bl GetPokeblockData - lsls r0, r0, #0x18 - ldr r1, _081370D4 - lsrs r0, r0, #0x16 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl StringCopy - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081370D4: .4byte gUnknown_8592078 - thumb_func_end PokeblockCopyName - - thumb_func_start CopyMonFavoritePokeblockName -CopyMonFavoritePokeblockName: @ 0x081370D8 - push {r4, r5, r6, r7, lr} - adds r6, r1, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r4, #0 - ldr r7, _08137108 -_081370E4: - lsls r1, r4, #3 - ldr r0, _0813710C - adds r1, r1, r0 - adds r0, r5, #0 - bl PokeblockGetGain - lsls r0, r0, #0x10 - cmp r0, #0 - ble _08137110 - adds r0, r4, #1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldr r1, [r0] - adds r0, r6, #0 - bl StringCopy - movs r0, #1 - b _0813711C - .align 2, 0 -_08137108: .4byte gUnknown_8592078 -_0813710C: .4byte gUnknown_859216C -_08137110: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #4 - bls _081370E4 - movs r0, #0 -_0813711C: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CopyMonFavoritePokeblockName - - thumb_func_start GetPokeblocksFlavor -GetPokeblocksFlavor: @ 0x08137124 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - movs r7, #0 - movs r6, #0 -_0813712C: - adds r1, r7, #1 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl GetPokeblockData - adds r4, r0, #0 - adds r1, r6, #1 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl GetPokeblockData - lsls r4, r4, #0x10 - lsls r0, r0, #0x10 - lsls r1, r6, #0x10 - cmp r4, r0 - bge _08137152 - lsrs r7, r1, #0x10 -_08137152: - movs r2, #0x80 - lsls r2, r2, #9 - adds r0, r1, r2 - lsrs r6, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - ble _0813712C - lsls r0, r7, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetPokeblocksFlavor - - thumb_func_start SetUpFieldMove_Flash -SetUpFieldMove_Flash: @ 0x0813716C - push {r4, lr} - bl ShouldDoBrailleRegisteelEffect - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081371A4 - ldr r4, _08137190 - bl GetCursorSelectionMonId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - ldr r1, _08137194 - ldr r0, _08137198 - str r0, [r1] - ldr r1, _0813719C - ldr r0, _081371A0 - b _081371C2 - .align 2, 0 -_08137190: .4byte gUnknown_2037290 -_08137194: .4byte gUnknown_3005B10 -_08137198: .4byte FieldCallback_PrepareFadeInFromMenu -_0813719C: .4byte gUnknown_203CBB8 -_081371A0: .4byte sub_081797D0 -_081371A4: - ldr r0, _081371C8 - ldrb r0, [r0, #0x15] - cmp r0, #1 - bne _081371E0 - ldr r0, _081371CC - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081371E0 - ldr r1, _081371D0 - ldr r0, _081371D4 - str r0, [r1] - ldr r1, _081371D8 - ldr r0, _081371DC -_081371C2: - str r0, [r1] - movs r0, #1 - b _081371E2 - .align 2, 0 -_081371C8: .4byte gUnknown_2036FB8 -_081371CC: .4byte 0x00000888 -_081371D0: .4byte gUnknown_3005B10 -_081371D4: .4byte FieldCallback_PrepareFadeInFromMenu -_081371D8: .4byte gUnknown_203CBB8 -_081371DC: .4byte hm2_flash -_081371E0: - movs r0, #0 -_081371E2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end SetUpFieldMove_Flash - - thumb_func_start hm2_flash -hm2_flash: @ 0x081371E8 - push {r4, lr} - bl oei_task_add - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl GetCursorSelectionMonId - ldr r1, _08137218 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [r1] - ldr r1, _0813721C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r2, _08137220 - lsrs r1, r2, #0x10 - strh r1, [r0, #0x18] - strh r2, [r0, #0x1a] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08137218: .4byte gUnknown_20388A8 -_0813721C: .4byte gUnknown_3005B60 -_08137220: .4byte sub_08137224 - thumb_func_end hm2_flash - - thumb_func_start sub_08137224 -sub_08137224: @ 0x08137224 - push {lr} - movs r0, #0xcf - bl sub_080A306C - ldr r0, _0813723C - bl FlagSet - ldr r0, _08137240 - bl ScriptContext1_SetupScript - pop {r0} - bx r0 - .align 2, 0 -_0813723C: .4byte 0x00000888 -_08137240: .4byte gUnknown_8257EE2 - thumb_func_end sub_08137224 - - thumb_func_start sub_08137244 -sub_08137244: @ 0x08137244 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08137244 - - thumb_func_start sub_0813725C -sub_0813725C: @ 0x0813725C - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0813725C - - thumb_func_start c2_change_map -c2_change_map: @ 0x08137270 - push {r4, lr} - sub sp, #8 - movs r0, #0 - bl SetVBlankCallback - movs r0, #0 - movs r1, #0 - bl SetGpuReg - movs r0, #0xc - movs r1, #0 - bl SetGpuReg - movs r0, #0xa - movs r1, #0 - bl SetGpuReg - movs r0, #8 - movs r1, #0 - bl SetGpuReg - movs r0, #0x18 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1a - movs r1, #0 - bl SetGpuReg - movs r0, #0x14 - movs r1, #0 - bl SetGpuReg - movs r0, #0x16 - movs r1, #0 - bl SetGpuReg - movs r0, #0x10 - movs r1, #0 - bl SetGpuReg - movs r0, #0x12 - movs r1, #0 - bl SetGpuReg - mov r1, sp - movs r0, #0 - strh r0, [r1] - ldr r1, _0813734C - mov r0, sp - str r0, [r1] - movs r0, #0xc0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _08137350 - str r0, [r1, #8] - ldr r0, [r1, #8] - movs r4, #0 - str r4, [sp, #4] - add r0, sp, #4 - str r0, [r1] - movs r0, #0xe0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _08137354 - str r0, [r1, #8] - ldr r0, [r1, #8] - mov r0, sp - strh r4, [r0] - str r0, [r1] - ldr r0, _08137358 - str r0, [r1, #4] - ldr r0, _0813735C - str r0, [r1, #8] - ldr r0, [r1, #8] - bl ResetPaletteFade - bl ResetTasks - bl ResetSpriteData - ldr r3, _08137360 - ldrh r2, [r3] - strh r4, [r3] - ldr r4, _08137364 - ldrh r0, [r4] - movs r1, #1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r0, _08137368 - bl SetVBlankCallback - ldr r0, _0813736C - bl SetMainCallback2 - bl sub_08137374 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08137342 - ldr r0, _08137370 - ldr r0, [r0, #8] - bl SetMainCallback2 -_08137342: - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813734C: .4byte 0x040000D4 -_08137350: .4byte 0x8100C000 -_08137354: .4byte 0x85000100 -_08137358: .4byte 0x05000002 -_0813735C: .4byte 0x810001FF -_08137360: .4byte 0x04000208 -_08137364: .4byte 0x04000200 -_08137368: .4byte sub_0813725C -_0813736C: .4byte sub_08137244 -_08137370: .4byte gUnknown_3002360 - thumb_func_end c2_change_map - - thumb_func_start sub_08137374 -sub_08137374: @ 0x08137374 - push {r4, r5, r6, r7, lr} - bl GetLastUsedWarpMapType - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - bl GetCurrentMapType - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r3, #0 - ldr r4, _081373B4 - ldrb r0, [r4] - cmp r0, #0 - beq _081373C8 - adds r7, r4, #0 - adds r0, r4, #4 - mov ip, r0 -_08137396: - lsls r2, r3, #3 - adds r1, r2, r7 - ldrb r0, [r1] - cmp r0, r6 - bne _081373B8 - ldrb r0, [r1, #1] - cmp r0, r5 - bne _081373B8 - mov r1, ip - adds r0, r2, r1 - ldr r0, [r0] - bl _call_via_r0 - movs r0, #1 - b _081373CA - .align 2, 0 -_081373B4: .4byte gUnknown_8592214 -_081373B8: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r0, r3, #3 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0 - bne _08137396 -_081373C8: - movs r0, #0 -_081373CA: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_08137374 - - thumb_func_start sub_081373D0 -sub_081373D0: @ 0x081373D0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r0, #0x18 - lsrs r4, r1, #0x18 - movs r3, #0 - ldr r1, _081373FC - ldrb r0, [r1] - cmp r0, #0 - beq _08137410 - adds r6, r1, #0 -_081373E6: - lsls r0, r3, #3 - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, r5 - bne _08137400 - ldrb r0, [r2, #1] - cmp r0, r4 - bne _08137400 - ldrb r0, [r2, #2] - b _08137412 - .align 2, 0 -_081373FC: .4byte gUnknown_8592214 -_08137400: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r0, r3, #3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _081373E6 -_08137410: - movs r0, #0 -_08137412: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_081373D0 - - thumb_func_start GetMapPairFadeFromType -GetMapPairFadeFromType: @ 0x08137418 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r0, #0x18 - lsrs r4, r1, #0x18 - movs r3, #0 - ldr r1, _08137444 - ldrb r0, [r1] - cmp r0, #0 - beq _08137458 - adds r6, r1, #0 -_0813742E: - lsls r0, r3, #3 - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, r5 - bne _08137448 - ldrb r0, [r2, #1] - cmp r0, r4 - bne _08137448 - ldrb r0, [r2, #3] - b _0813745A - .align 2, 0 -_08137444: .4byte gUnknown_8592214 -_08137448: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r0, r3, #3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _0813742E -_08137458: - movs r0, #0 -_0813745A: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end GetMapPairFadeFromType - - thumb_func_start sub_08137460 -sub_08137460: @ 0x08137460 - push {lr} - ldr r0, _08137470 - movs r1, #0 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_08137470: .4byte sub_08137474 - thumb_func_end sub_08137460 - - thumb_func_start sub_08137474 -sub_08137474: @ 0x08137474 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08137488 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r0, _0813748C - str r0, [r1] - bx lr - .align 2, 0 -_08137488: .4byte gUnknown_3005B60 -_0813748C: .4byte sub_08137490 - thumb_func_end sub_08137474 - - thumb_func_start sub_08137490 -sub_08137490: @ 0x08137490 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - movs r1, #0 - bl SetGpuReg - ldr r0, _0813750C - ldr r1, _08137510 - bl LZ77UnCompVram - ldr r0, _08137514 - ldr r1, _08137518 - bl LZ77UnCompVram - ldr r0, _0813751C - movs r1, #0xe0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _08137520 - movs r1, #0xe0 - movs r2, #0x10 - bl LoadPalette - ldr r1, _08137524 - movs r0, #0x50 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - ldr r1, _08137528 - movs r0, #8 - bl SetGpuReg - movs r1, #0x8a - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - ldr r1, _0813752C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08137530 - str r1, [r0] - movs r2, #0 - movs r1, #0x10 - strh r1, [r0, #8] - strh r2, [r0, #0xa] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813750C: .4byte gUnknown_85924DC -_08137510: .4byte 0x0600C000 -_08137514: .4byte gUnknown_85922FC -_08137518: .4byte 0x0600F800 -_0813751C: .4byte gUnknown_859229C -_08137520: .4byte gUnknown_85922EC -_08137524: .4byte 0x00003E41 -_08137528: .4byte 0x00001F0C -_0813752C: .4byte gUnknown_3005B60 -_08137530: .4byte sub_08137534 - thumb_func_end sub_08137490 - - thumb_func_start sub_08137534 -sub_08137534: @ 0x08137534 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08137564 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r5, r1, r2 - ldrh r4, [r5, #0xa] - movs r0, #0x80 - lsls r0, r0, #5 - adds r1, r4, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - cmp r4, #0x10 - bhi _08137568 - ldrh r0, [r5, #0xa] - adds r0, #1 - strh r0, [r5, #0xa] - b _08137570 - .align 2, 0 -_08137564: .4byte gUnknown_3005B60 -_08137568: - movs r0, #0 - strh r0, [r5, #0xc] - ldr r0, _08137578 - str r0, [r5] -_08137570: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08137578: .4byte sub_0813757C - thumb_func_end sub_08137534 - - thumb_func_start sub_0813757C -sub_0813757C: @ 0x0813757C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _081375B8 - movs r0, #0x52 - bl SetGpuReg - ldr r1, _081375BC - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrh r1, [r4, #0xc] - cmp r1, #7 - bhi _081375C4 - adds r0, r1, #1 - strh r0, [r4, #0xc] - lsls r1, r1, #1 - ldr r0, _081375C0 - adds r0, r1, r0 - movs r2, #0x10 - subs r2, r2, r1 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - movs r1, #0xe0 - bl LoadPalette - b _081375D6 - .align 2, 0 -_081375B8: .4byte 0x00001010 -_081375BC: .4byte gUnknown_3005B60 -_081375C0: .4byte gUnknown_85922EC -_081375C4: - ldr r0, _081375DC - movs r1, #0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _081375E0 - str r0, [r4] - movs r0, #8 - strh r0, [r4, #0xc] -_081375D6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081375DC: .4byte gUnknown_859229C -_081375E0: .4byte sub_081375E4 - thumb_func_end sub_0813757C - - thumb_func_start sub_081375E4 -sub_081375E4: @ 0x081375E4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08137604 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldrh r2, [r1, #0xc] - movs r3, #0xc - ldrsh r0, [r1, r3] - cmp r0, #0 - beq _08137608 - subs r0, r2, #1 - strh r0, [r1, #0xc] - b _08137610 - .align 2, 0 -_08137604: .4byte gUnknown_3005B60 -_08137608: - ldr r0, _08137614 - ldr r0, [r0, #8] - bl SetMainCallback2 -_08137610: - pop {r0} - bx r0 - .align 2, 0 -_08137614: .4byte gUnknown_3002360 - thumb_func_end sub_081375E4 - - thumb_func_start PartyMenuVBlankCallback -PartyMenuVBlankCallback: @ 0x08137618 - push {lr} - ldr r0, _08137628 - movs r1, #0 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_08137628: .4byte sub_0813762C - thumb_func_end PartyMenuVBlankCallback - - thumb_func_start sub_0813762C -sub_0813762C: @ 0x0813762C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08137640 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r0, _08137644 - str r0, [r1] - bx lr - .align 2, 0 -_08137640: .4byte gUnknown_3005B60 -_08137644: .4byte sub_08137648 - thumb_func_end sub_0813762C - - thumb_func_start sub_08137648 -sub_08137648: @ 0x08137648 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - movs r1, #0 - bl SetGpuReg - ldr r0, _081376C4 - ldr r1, _081376C8 - bl LZ77UnCompVram - ldr r0, _081376CC - ldr r1, _081376D0 - bl LZ77UnCompVram - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - ldr r1, _081376D4 - movs r0, #8 - bl SetGpuReg - movs r1, #0x8a - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - ldr r0, _081376D8 - movs r1, #0xe0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _081376DC - movs r1, #0 - movs r2, #0x20 - bl LoadPalette - ldr r1, _081376E0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081376E4 - str r1, [r0] - movs r2, #0 - movs r1, #0x10 - strh r1, [r0, #8] - strh r2, [r0, #0xa] - strh r2, [r0, #0xc] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081376C4: .4byte gUnknown_85924DC -_081376C8: .4byte 0x0600C000 -_081376CC: .4byte gUnknown_85922FC -_081376D0: .4byte 0x0600F800 -_081376D4: .4byte 0x00001F0C -_081376D8: .4byte gUnknown_859229C -_081376DC: .4byte gUnknown_85922BC -_081376E0: .4byte gUnknown_3005B60 -_081376E4: .4byte sub_081376E8 - thumb_func_end sub_08137648 - - thumb_func_start sub_081376E8 -sub_081376E8: @ 0x081376E8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0813771C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 - ldrh r1, [r4, #0xc] - cmp r1, #0xf - bhi _08137724 - adds r2, r1, #1 - adds r0, r2, #1 - strh r0, [r4, #0xc] - movs r0, #0xf - subs r0, r0, r1 - lsls r0, r0, #1 - ldr r1, _08137720 - adds r0, r0, r1 - lsls r2, r2, #0x11 - lsrs r2, r2, #0x10 - movs r1, #0xe0 - bl LoadPalette - b _08137738 - .align 2, 0 -_0813771C: .4byte gUnknown_3005B60 -_08137720: .4byte gUnknown_85922DC -_08137724: - ldr r1, _08137740 - movs r0, #0x52 - bl SetGpuReg - ldr r1, _08137744 - movs r0, #0x50 - bl SetGpuReg - ldr r0, _08137748 - str r0, [r4] -_08137738: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08137740: .4byte 0x00001010 -_08137744: .4byte 0x00003E41 -_08137748: .4byte sub_0813774C - thumb_func_end sub_081376E8 - - thumb_func_start sub_0813774C -sub_0813774C: @ 0x0813774C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08137780 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r5, r1, r2 - ldrh r0, [r5, #0xa] - movs r1, #0x10 - subs r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - movs r0, #0x80 - lsls r0, r0, #0x15 - adds r1, r1, r0 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - cmp r4, #0 - beq _08137784 - ldrh r0, [r5, #0xa] - adds r0, #1 - strh r0, [r5, #0xa] - b _08137796 - .align 2, 0 -_08137780: .4byte gUnknown_3005B60 -_08137784: - ldr r0, _0813779C - movs r1, #0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _081377A0 - ldr r0, [r0, #8] - bl SetMainCallback2 -_08137796: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0813779C: .4byte gUnknown_85922BC -_081377A0: .4byte gUnknown_3002360 - thumb_func_end sub_0813774C - - thumb_func_start GameClear -GameClear: @ 0x081377A4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x1c - bl HealPlayerParty - ldr r4, _081377C8 - adds r0, r4, #0 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #1 - bne _081377D0 - ldr r0, _081377CC - strb r1, [r0] - b _081377DC - .align 2, 0 -_081377C8: .4byte 0x00000864 -_081377CC: .4byte gUnknown_203B9B0 -_081377D0: - ldr r1, _08137814 - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - bl FlagSet -_081377DC: - movs r0, #1 - bl GetGameStat - cmp r0, #0 - bne _081377FE - ldr r0, _08137818 - ldr r2, [r0] - ldrh r1, [r2, #0xe] - lsls r1, r1, #0x10 - ldrb r0, [r2, #0x10] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #0x11] - orrs r1, r0 - movs r0, #1 - bl SetGameStat -_081377FE: - bl SetContinueGameWarpStatus - ldr r0, _08137818 - ldr r0, [r0] - ldrb r0, [r0, #8] - cmp r0, #0 - bne _0813781C - movs r0, #1 - bl SetContinueGameWarpToHealLocation - b _08137822 - .align 2, 0 -_08137814: .4byte gUnknown_203B9B0 -_08137818: .4byte gUnknown_3005AF0 -_0813781C: - movs r0, #2 - bl SetContinueGameWarpToHealLocation -_08137822: - movs r7, #0 - movs r6, #0 - add r0, sp, #0x18 - mov r8, r0 - mov r5, sp -_0813782C: - movs r0, #0x64 - adds r1, r6, #0 - muls r1, r0, r1 - ldr r0, _081378E0 - adds r4, r1, r0 - movs r0, #0 - strb r6, [r5] - strb r0, [r5, #1] - adds r0, r4, #0 - movs r1, #5 - bl GetMonData - cmp r0, #0 - beq _0813787A - adds r0, r4, #0 - movs r1, #6 - bl GetMonData - cmp r0, #0 - bne _0813787A - adds r0, r4, #0 - movs r1, #0x43 - bl GetMonData - cmp r0, #0 - bne _0813787A - movs r0, #1 - mov r1, r8 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x43 - add r2, sp, #0x18 - bl SetMonData - adds r0, r4, #0 - bl GetRibbonCount - strb r0, [r5, #1] - movs r7, #1 -_0813787A: - adds r5, #4 - adds r6, #1 - cmp r6, #5 - ble _0813782C - cmp r7, #1 - bne _081378CA - movs r0, #0x2a - bl IncrementGameStat - ldr r0, _081378E4 - bl FlagSet - mov r3, sp - add r2, sp, #4 - movs r6, #4 -_08137898: - ldrb r1, [r3, #1] - ldrb r0, [r2, #1] - cmp r0, r1 - bls _081378A8 - ldr r1, [sp] - ldr r0, [r2] - str r0, [sp] - str r1, [r2] -_081378A8: - adds r2, #4 - subs r6, #1 - cmp r6, #0 - bge _08137898 - mov r0, sp - ldrb r0, [r0, #1] - cmp r0, #4 - bls _081378CA - mov r0, sp - ldrb r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081378E0 - adds r0, r0, r1 - movs r1, #0x43 - bl sub_080EEFFC -_081378CA: - ldr r0, _081378E8 - bl SetMainCallback2 - movs r0, #0 - add sp, #0x1c - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081378E0: .4byte gUnknown_2024190 -_081378E4: .4byte 0x0000089B -_081378E8: .4byte CB2_DoHallOfFameScreen - thumb_func_end GameClear - - thumb_func_start sp0C8_whiteout_maybe -sp0C8_whiteout_maybe: @ 0x081378EC - push {lr} - ldr r0, _081378FC - bl SetMainCallback2 - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_081378FC: .4byte CB2_WhiteOut - thumb_func_end sp0C8_whiteout_maybe - - thumb_func_start GetMirageRnd -GetMirageRnd: @ 0x08137900 - push {r4, lr} - ldr r0, _08137924 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r0, _08137928 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r4, r4, #0x10 - orrs r4, r0 - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08137924: .4byte 0x00004024 -_08137928: .4byte 0x00004025 - thumb_func_end GetMirageRnd - - thumb_func_start SetMirageRnd -SetMirageRnd: @ 0x0813792C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0813794C - lsrs r1, r4, #0x10 - bl VarSet - ldr r0, _08137950 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r1, r4, #0 - bl VarSet - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813794C: .4byte 0x00004024 -_08137950: .4byte 0x00004025 - thumb_func_end SetMirageRnd - - thumb_func_start InitMirageRnd -InitMirageRnd: @ 0x08137954 - push {r4, lr} - bl Random - adds r4, r0, #0 - bl Random - lsls r4, r4, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - orrs r4, r0 - adds r0, r4, #0 - bl SetMirageRnd - pop {r4} - pop {r0} - bx r0 - thumb_func_end InitMirageRnd - - thumb_func_start UpdateMirageRnd -UpdateMirageRnd: @ 0x08137974 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - bl GetMirageRnd - adds r1, r0, #0 - cmp r4, #0 - beq _08137998 - ldr r3, _081379A4 - ldr r2, _081379A8 -_08137988: - adds r0, r1, #0 - muls r0, r3, r0 - adds r1, r0, r2 - subs r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0 - bne _08137988 -_08137998: - adds r0, r1, #0 - bl SetMirageRnd - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081379A4: .4byte 0x41C64E6D -_081379A8: .4byte 0x00003039 - thumb_func_end UpdateMirageRnd - - thumb_func_start IsMirageIslandPresent -IsMirageIslandPresent: @ 0x081379AC - push {r4, r5, r6, lr} - bl GetMirageRnd - lsrs r6, r0, #0x10 - movs r5, #0 -_081379B6: - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _081379E0 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _081379E8 - adds r0, r4, #0 - movs r1, #0 - bl GetMonData - ldr r1, _081379E4 - ands r1, r0 - cmp r1, r6 - bne _081379E8 - movs r0, #1 - b _081379F0 - .align 2, 0 -_081379E0: .4byte gUnknown_2024190 -_081379E4: .4byte 0x0000FFFF -_081379E8: - adds r5, #1 - cmp r5, #5 - ble _081379B6 - movs r0, #0 -_081379F0: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsMirageIslandPresent - - thumb_func_start sub_081379F8 -sub_081379F8: @ 0x081379F8 - push {lr} - bl GetLastUsedWarpMapType - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl IsMapTypeOutdoors - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08137A3E - bl RtcCalcLocalTime - ldr r1, _08137A2C - ldr r0, _08137A30 - ldrb r0, [r0, #2] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _08137A38 - ldr r0, _08137A34 - bl FlagSet - b _08137A3E - .align 2, 0 -_08137A2C: .4byte gUnknown_8592590 -_08137A30: .4byte gUnknown_3005A50 -_08137A34: .4byte 0x0000089A -_08137A38: - ldr r0, _08137A44 - bl FlagClear -_08137A3E: - pop {r0} - bx r0 - .align 2, 0 -_08137A44: .4byte 0x0000089A - thumb_func_end sub_081379F8 - - thumb_func_start sub_08137A48 -sub_08137A48: @ 0x08137A48 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl sub_080ABCB8 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08137A62 - bl EnableBothScriptContexts - adds r0, r4, #0 - bl DestroyTask -_08137A62: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08137A48 - - thumb_func_start sub_08137A68 -sub_08137A68: @ 0x08137A68 - push {lr} - ldr r0, _08137A78 - movs r1, #0x50 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_08137A78: .4byte sub_08137A48 - thumb_func_end sub_08137A68 - - thumb_func_start InitBirchState -InitBirchState: @ 0x08137A7C - push {lr} - ldr r0, _08137A8C - bl GetVarPointer - movs r1, #0 - strh r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_08137A8C: .4byte 0x00004049 - thumb_func_end InitBirchState - - thumb_func_start UpdateBirchState -UpdateBirchState: @ 0x08137A90 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r0, _08137AB8 - bl GetVarPointer - adds r5, r0, #0 - ldrh r0, [r5] - adds r4, r4, r0 - strh r4, [r5] - ldrh r0, [r5] - movs r1, #7 - bl __umodsi3 - strh r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08137AB8: .4byte 0x00004049 - thumb_func_end UpdateBirchState - - thumb_func_start ScriptGetPokedexInfo -ScriptGetPokedexInfo: @ 0x08137ABC - push {lr} - ldr r0, _08137AD8 - ldrh r0, [r0] - cmp r0, #0 - bne _08137AE0 - movs r0, #0 - bl GetHoennPokedexCount - ldr r1, _08137ADC - strh r0, [r1] - movs r0, #1 - bl GetHoennPokedexCount - b _08137AF0 - .align 2, 0 -_08137AD8: .4byte gUnknown_2037280 -_08137ADC: .4byte gUnknown_2037282 -_08137AE0: - movs r0, #0 - bl GetNationalPokedexCount - ldr r1, _08137B00 - strh r0, [r1] - movs r0, #1 - bl GetNationalPokedexCount -_08137AF0: - ldr r1, _08137B04 - strh r0, [r1] - bl IsNationalPokedexEnabled - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 -_08137B00: .4byte gUnknown_2037282 -_08137B04: .4byte gUnknown_2037284 - thumb_func_end ScriptGetPokedexInfo - - thumb_func_start GetPokedexRatingText -GetPokedexRatingText: @ 0x08137B08 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #9 - bhi _08137B14 - b _08137C6C -_08137B14: - cmp r0, #0x13 - bhi _08137B20 - ldr r0, _08137B1C - b _08137C76 - .align 2, 0 -_08137B1C: .4byte gUnknown_8262E81 -_08137B20: - cmp r0, #0x1d - bhi _08137B2C - ldr r0, _08137B28 - b _08137C76 - .align 2, 0 -_08137B28: .4byte gUnknown_8262EA6 -_08137B2C: - cmp r0, #0x27 - bhi _08137B38 - ldr r0, _08137B34 - b _08137C76 - .align 2, 0 -_08137B34: .4byte gUnknown_8262ECF -_08137B38: - cmp r0, #0x31 - bhi _08137B44 - ldr r0, _08137B40 - b _08137C76 - .align 2, 0 -_08137B40: .4byte gUnknown_8262EF5 -_08137B44: - cmp r0, #0x3b - bhi _08137B50 - ldr r0, _08137B4C - b _08137C76 - .align 2, 0 -_08137B4C: .4byte gUnknown_8262F18 -_08137B50: - cmp r0, #0x45 - bhi _08137B5C - ldr r0, _08137B58 - b _08137C76 - .align 2, 0 -_08137B58: .4byte gUnknown_8262F3F -_08137B5C: - cmp r0, #0x4f - bhi _08137B68 - ldr r0, _08137B64 - b _08137C76 - .align 2, 0 -_08137B64: .4byte gUnknown_8262F61 -_08137B68: - cmp r0, #0x59 - bhi _08137B74 - ldr r0, _08137B70 - b _08137C76 - .align 2, 0 -_08137B70: .4byte gUnknown_8262F8A -_08137B74: - cmp r0, #0x63 - bhi _08137B80 - ldr r0, _08137B7C - b _08137C76 - .align 2, 0 -_08137B7C: .4byte gUnknown_8262FAD -_08137B80: - cmp r0, #0x6d - bhi _08137B8C - ldr r0, _08137B88 - b _08137C76 - .align 2, 0 -_08137B88: .4byte gUnknown_8262FE1 -_08137B8C: - cmp r0, #0x77 - bhi _08137B98 - ldr r0, _08137B94 - b _08137C76 - .align 2, 0 -_08137B94: .4byte gUnknown_826300C -_08137B98: - cmp r0, #0x81 - bhi _08137BA4 - ldr r0, _08137BA0 - b _08137C76 - .align 2, 0 -_08137BA0: .4byte gUnknown_8263032 -_08137BA4: - cmp r0, #0x8b - bhi _08137BB0 - ldr r0, _08137BAC - b _08137C76 - .align 2, 0 -_08137BAC: .4byte gUnknown_8263050 -_08137BB0: - cmp r0, #0x95 - bhi _08137BBC - ldr r0, _08137BB8 - b _08137C76 - .align 2, 0 -_08137BB8: .4byte gUnknown_8263072 -_08137BBC: - cmp r0, #0x9f - bhi _08137BC8 - ldr r0, _08137BC4 - b _08137C76 - .align 2, 0 -_08137BC4: .4byte gUnknown_8263095 -_08137BC8: - cmp r0, #0xa9 - bhi _08137BD4 - ldr r0, _08137BD0 - b _08137C76 - .align 2, 0 -_08137BD0: .4byte gUnknown_82630C7 -_08137BD4: - cmp r0, #0xb3 - bhi _08137BE0 - ldr r0, _08137BDC - b _08137C76 - .align 2, 0 -_08137BDC: .4byte gUnknown_82630F0 -_08137BE0: - cmp r0, #0xbd - bhi _08137BEC - ldr r0, _08137BE8 - b _08137C76 - .align 2, 0 -_08137BE8: .4byte gUnknown_826310C -_08137BEC: - cmp r0, #0xc7 - bls _08137C5A - cmp r0, #0xc8 - bne _08137C28 - ldr r0, _08137C24 - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - bl GetSetPokedexFlag - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08137C5A - movs r0, #0xcd - lsls r0, r0, #1 - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - bl GetSetPokedexFlag - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08137C5A - b _08137C74 - .align 2, 0 -_08137C24: .4byte 0x00000199 -_08137C28: - cmp r0, #0xc9 - bne _08137C68 - ldr r0, _08137C60 - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - bl GetSetPokedexFlag - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08137C74 - movs r0, #0xcd - lsls r0, r0, #1 - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - bl GetSetPokedexFlag - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08137C74 -_08137C5A: - ldr r0, _08137C64 - b _08137C76 - .align 2, 0 -_08137C60: .4byte 0x00000199 -_08137C64: .4byte gUnknown_826312D -_08137C68: - cmp r0, #0xca - beq _08137C74 -_08137C6C: - ldr r0, _08137C70 - b _08137C76 - .align 2, 0 -_08137C70: .4byte gUnknown_8262E5F -_08137C74: - ldr r0, _08137C7C -_08137C76: - pop {r1} - bx r1 - .align 2, 0 -_08137C7C: .4byte gUnknown_826314F - thumb_func_end GetPokedexRatingText - - thumb_func_start ShowPokedexRatingMessage -ShowPokedexRatingMessage: @ 0x08137C80 - push {lr} - ldr r0, _08137C94 - ldrh r0, [r0] - bl GetPokedexRatingText - bl ShowFieldMessage - pop {r0} - bx r0 - .align 2, 0 -_08137C94: .4byte gUnknown_2037280 - thumb_func_end ShowPokedexRatingMessage - - thumb_func_start sub_08137C98 -sub_08137C98: @ 0x08137C98 - push {lr} - ldr r0, _08137CA8 - bl SetMainCallback2 - bl sub_080987DC - pop {r0} - bx r0 - .align 2, 0 -_08137CA8: .4byte CB2_DoHallOfFamePC - thumb_func_end sub_08137C98 - - thumb_func_start ReturnFromHallOfFamePC -ReturnFromHallOfFamePC: @ 0x08137CAC - push {lr} - ldr r0, _08137CC0 - bl SetMainCallback2 - ldr r1, _08137CC4 - ldr r0, _08137CC8 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08137CC0: .4byte sub_08085A30 -_08137CC4: .4byte gUnknown_3005B0C -_08137CC8: .4byte ReshowPCMenuAfterHallOfFamePC - thumb_func_end ReturnFromHallOfFamePC - - thumb_func_start ReshowPCMenuAfterHallOfFamePC -ReshowPCMenuAfterHallOfFamePC: @ 0x08137CCC - push {lr} - sub sp, #4 - bl sub_080987DC - bl Overworld_PlaySpecialMapMusic - bl sub_080E1850 - bl ScriptMenu_DisplayPCStartupPrompt - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r0, _08137D00 - movs r1, #0xa - bl CreateTask - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_08137D00: .4byte sub_08137D04 - thumb_func_end ReshowPCMenuAfterHallOfFamePC - - thumb_func_start sub_08137D04 -sub_08137D04: @ 0x08137D04 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _08137D20 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08137D1C - adds r0, r2, #0 - bl DestroyTask -_08137D1C: - pop {r0} - bx r0 - .align 2, 0 -_08137D20: .4byte gUnknown_2037C74 - thumb_func_end sub_08137D04 - - thumb_func_start sub_08137D24 -sub_08137D24: @ 0x08137D24 - push {lr} - ldr r0, _08137D34 - bl SetMainCallback2 - bl sub_080987DC - pop {r0} - bx r0 - .align 2, 0 -_08137D34: .4byte CB2_ShowDiploma - thumb_func_end sub_08137D24 - - thumb_func_start Special_ViewWallClock -Special_ViewWallClock: @ 0x08137D38 - push {lr} - ldr r0, _08137D50 - ldr r1, _08137D54 - str r1, [r0, #8] - ldr r0, _08137D58 - bl SetMainCallback2 - bl sub_080987DC - pop {r0} - bx r0 - .align 2, 0 -_08137D50: .4byte gUnknown_3002360 -_08137D54: .4byte sub_08085A30 -_08137D58: .4byte CB2_ViewWallClock - thumb_func_end Special_ViewWallClock - - thumb_func_start ResetCyclingRoadChallengeData -ResetCyclingRoadChallengeData: @ 0x08137D5C - ldr r0, _08137D70 - movs r1, #0 - strb r1, [r0] - ldr r0, _08137D74 - strb r1, [r0] - ldr r1, _08137D78 - movs r0, #0 - str r0, [r1] - bx lr - .align 2, 0 -_08137D70: .4byte gUnknown_203A820 -_08137D74: .4byte gUnknown_203A821 -_08137D78: .4byte gUnknown_203A824 - thumb_func_end ResetCyclingRoadChallengeData - - thumb_func_start Special_BeginCyclingRoadChallenge -Special_BeginCyclingRoadChallenge: @ 0x08137D7C - ldr r1, _08137D94 - movs r0, #1 - strb r0, [r1] - ldr r1, _08137D98 - movs r0, #0 - strb r0, [r1] - ldr r1, _08137D9C - ldr r0, _08137DA0 - ldr r0, [r0, #0x20] - str r0, [r1] - bx lr - .align 2, 0 -_08137D94: .4byte gUnknown_203A820 -_08137D98: .4byte gUnknown_203A821 -_08137D9C: .4byte gUnknown_203A824 -_08137DA0: .4byte gUnknown_3002360 - thumb_func_end Special_BeginCyclingRoadChallenge - - thumb_func_start GetPlayerAvatarBike -GetPlayerAvatarBike: @ 0x08137DA4 - push {lr} - movs r0, #4 - bl TestPlayerAvatarFlags - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08137DB6 - movs r0, #1 - b _08137DC8 -_08137DB6: - movs r0, #2 - bl TestPlayerAvatarFlags - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08137DC6 - movs r0, #0 - b _08137DC8 -_08137DC6: - movs r0, #2 -_08137DC8: - pop {r1} - bx r1 - thumb_func_end GetPlayerAvatarBike - - thumb_func_start DetermineCyclingRoadResults -DetermineCyclingRoadResults: @ 0x08137DCC - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - cmp r6, #0x63 - bhi _08137DF8 - ldr r4, _08137DF0 - adds r0, r4, #0 - adds r1, r6, #0 - movs r2, #0 - movs r3, #2 - bl sub_080089D8 - ldr r1, _08137DF4 - adds r0, r4, #0 - bl StringAppend - b _08137E00 - .align 2, 0 -_08137DF0: .4byte gUnknown_2021C40 -_08137DF4: .4byte gUnknown_85CB025 -_08137DF8: - ldr r0, _08137E4C - ldr r1, _08137E50 - bl StringCopy -_08137E00: - ldr r0, _08137E54 - cmp r7, r0 - bhi _08137E60 - ldr r4, _08137E58 - adds r0, r7, #0 - movs r1, #0x3c - bl __udivsi3 - adds r1, r0, #0 - adds r0, r4, #0 - movs r2, #1 - movs r3, #2 - bl sub_080089D8 - movs r0, #0xb8 - strb r0, [r4, #2] - adds r5, r4, #3 - adds r0, r7, #0 - movs r1, #0x3c - bl __umodsi3 - movs r1, #0x64 - muls r0, r1, r0 - movs r1, #0x3c - bl __udivsi3 - adds r1, r0, #0 - adds r0, r5, #0 - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - ldr r1, _08137E5C - adds r0, r4, #0 - bl StringAppend - b _08137E68 - .align 2, 0 -_08137E4C: .4byte gUnknown_2021C40 -_08137E50: .4byte gUnknown_85CB00E -_08137E54: .4byte 0x00000E0F -_08137E58: .4byte gUnknown_2021C54 -_08137E5C: .4byte gUnknown_85CB021 -_08137E60: - ldr r0, _08137E74 - ldr r1, _08137E78 - bl StringCopy -_08137E68: - movs r4, #0 - cmp r6, #0 - bne _08137E7C - movs r4, #5 - b _08137E9A - .align 2, 0 -_08137E74: .4byte gUnknown_2021C54 -_08137E78: .4byte gUnknown_85CB018 -_08137E7C: - cmp r6, #3 - bhi _08137E84 - movs r4, #4 - b _08137E9A -_08137E84: - cmp r6, #9 - bhi _08137E8C - movs r4, #3 - b _08137E9A -_08137E8C: - cmp r6, #0x13 - bhi _08137E94 - movs r4, #2 - b _08137E9A -_08137E94: - cmp r6, #0x63 - bhi _08137E9A - movs r4, #1 -_08137E9A: - adds r0, r7, #0 - movs r1, #0x3c - bl __udivsi3 - cmp r0, #0xa - bhi _08137EAA - adds r0, r4, #5 - b _08137EC8 -_08137EAA: - cmp r0, #0xf - bhi _08137EB2 - adds r0, r4, #4 - b _08137EC8 -_08137EB2: - cmp r0, #0x14 - bhi _08137EBA - adds r0, r4, #3 - b _08137EC8 -_08137EBA: - cmp r0, #0x28 - bhi _08137EC2 - adds r0, r4, #2 - b _08137EC8 -_08137EC2: - cmp r0, #0x3b - bhi _08137ECC - adds r0, r4, #1 -_08137EC8: - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_08137ECC: - ldr r0, _08137ED8 - strh r4, [r0] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08137ED8: .4byte gUnknown_2037290 - thumb_func_end DetermineCyclingRoadResults - - thumb_func_start FinishCyclingRoadChallenge -FinishCyclingRoadChallenge: @ 0x08137EDC - push {r4, r5, lr} - ldr r0, _08137F00 - ldr r1, _08137F04 - ldr r4, [r0, #0x20] - ldr r0, [r1] - subs r4, r4, r0 - ldr r5, _08137F08 - ldrb r1, [r5] - adds r0, r4, #0 - bl DetermineCyclingRoadResults - ldrb r1, [r5] - adds r0, r4, #0 - bl RecordCyclingRoadResults - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08137F00: .4byte gUnknown_3002360 -_08137F04: .4byte gUnknown_203A824 -_08137F08: .4byte gUnknown_203A821 - thumb_func_end FinishCyclingRoadChallenge - - thumb_func_start RecordCyclingRoadResults -RecordCyclingRoadResults: @ 0x08137F0C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - ldr r6, _08137F60 - adds r0, r6, #0 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r7, _08137F64 - adds r0, r7, #0 - bl VarGet - lsls r0, r0, #0x10 - adds r4, r4, r0 - cmp r4, r5 - bhi _08137F3C - cmp r4, #0 - bne _08137F56 -_08137F3C: - lsls r1, r5, #0x10 - lsrs r1, r1, #0x10 - adds r0, r6, #0 - bl VarSet - lsrs r1, r5, #0x10 - adds r0, r7, #0 - bl VarSet - ldr r0, _08137F68 - mov r1, r8 - bl VarSet -_08137F56: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08137F60: .4byte 0x00004028 -_08137F64: .4byte 0x00004029 -_08137F68: .4byte 0x00004027 - thumb_func_end RecordCyclingRoadResults - - thumb_func_start GetRecordedCyclingRoadResults -GetRecordedCyclingRoadResults: @ 0x08137F6C - push {r4, lr} - ldr r0, _08137FA0 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r0, _08137FA4 - bl VarGet - lsls r0, r0, #0x10 - adds r4, r4, r0 - cmp r4, #0 - beq _08137FAC - ldr r0, _08137FA8 - bl VarGet - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl DetermineCyclingRoadResults - movs r0, #1 - b _08137FAE - .align 2, 0 -_08137FA0: .4byte 0x00004028 -_08137FA4: .4byte 0x00004029 -_08137FA8: .4byte 0x00004027 -_08137FAC: - movs r0, #0 -_08137FAE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetRecordedCyclingRoadResults - - thumb_func_start UpdateCyclingRoadState -UpdateCyclingRoadState: @ 0x08137FB4 - push {r4, lr} - ldr r0, _08137FF4 - ldrh r1, [r0] - ldr r0, _08137FF8 - cmp r1, r0 - beq _08137FEC - ldr r4, _08137FFC - adds r0, r4, #0 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #2 - beq _08137FDE - adds r0, r4, #0 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #3 - bne _08137FEC -_08137FDE: - adds r0, r4, #0 - movs r1, #0 - bl VarSet - movs r0, #0 - bl Overworld_SetSavedMusic -_08137FEC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08137FF4: .4byte gUnknown_2031F7C -_08137FF8: .4byte 0x00000C1D -_08137FFC: .4byte 0x000040A9 - thumb_func_end UpdateCyclingRoadState - - thumb_func_start SetSSTidalFlag -SetSSTidalFlag: @ 0x08138000 - push {lr} - ldr r0, _08138018 - bl FlagSet - ldr r0, _0813801C - bl GetVarPointer - movs r1, #0 - strh r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_08138018: .4byte 0x0000088D -_0813801C: .4byte 0x0000404A - thumb_func_end SetSSTidalFlag - - thumb_func_start ResetSSTidalFlag -ResetSSTidalFlag: @ 0x08138020 - push {lr} - ldr r0, _0813802C - bl FlagClear - pop {r0} - bx r0 - .align 2, 0 -_0813802C: .4byte 0x0000088D - thumb_func_end ResetSSTidalFlag - - thumb_func_start CountSSTidalStep -CountSSTidalStep: @ 0x08138030 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, _0813805C - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08138056 - ldr r0, _08138060 - bl GetVarPointer - ldrh r1, [r0] - adds r1, r4, r1 - strh r1, [r0] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - cmp r1, #0xcc - bhi _08138064 -_08138056: - movs r0, #0 - b _08138066 - .align 2, 0 -_0813805C: .4byte 0x0000088D -_08138060: .4byte 0x0000404A -_08138064: - movs r0, #1 -_08138066: - pop {r4} - pop {r1} - bx r1 - thumb_func_end CountSSTidalStep - - thumb_func_start GetSSTidalLocation -GetSSTidalLocation: @ 0x0813806C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r5, r1, #0 - adds r6, r2, #0 - adds r7, r3, #0 - ldr r0, _0813809C - bl GetVarPointer - adds r4, r0, #0 - ldr r0, _081380A0 - bl GetVarPointer - ldrh r0, [r0] - subs r0, #1 - cmp r0, #9 - bhi _08138132 - lsls r0, r0, #2 - ldr r1, _081380A4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813809C: .4byte 0x0000404A -_081380A0: .4byte 0x000040B4 -_081380A4: .4byte _081380A8 -_081380A8: @ jump table - .4byte _081380D0 @ case 0 - .4byte _081380E0 @ case 1 - .4byte _081380D4 @ case 2 - .4byte _081380D8 @ case 3 - .4byte _081380D8 @ case 4 - .4byte _081380DC @ case 5 - .4byte _08138108 @ case 6 - .4byte _081380D0 @ case 7 - .4byte _081380D4 @ case 8 - .4byte _081380DC @ case 9 -_081380D0: - movs r0, #1 - b _0813813E -_081380D4: - movs r0, #4 - b _0813813E -_081380D8: - movs r0, #2 - b _0813813E -_081380DC: - movs r0, #3 - b _0813813E -_081380E0: - ldrh r0, [r4] - cmp r0, #0x3b - bhi _081380F0 - movs r0, #0x31 - strb r0, [r5] - ldrh r0, [r4] - adds r0, #0x13 - b _08138130 -_081380F0: - cmp r0, #0x8b - bhi _081380FE - movs r0, #0x30 - strb r0, [r5] - ldrh r0, [r4] - subs r0, #0x3c - b _08138130 -_081380FE: - movs r0, #0x2f - strb r0, [r5] - ldrh r0, [r4] - subs r0, #0x8c - b _08138130 -_08138108: - ldrh r0, [r4] - cmp r0, #0x41 - bhi _08138118 - movs r0, #0x2f - strb r0, [r5] - ldrh r1, [r4] - movs r0, #0x41 - b _0813812E -_08138118: - cmp r0, #0x91 - bhi _08138126 - movs r0, #0x30 - strb r0, [r5] - ldrh r1, [r4] - movs r0, #0x91 - b _0813812E -_08138126: - movs r0, #0x31 - strb r0, [r5] - ldrh r1, [r4] - movs r0, #0xe0 -_0813812E: - subs r0, r0, r1 -_08138130: - strh r0, [r6] -_08138132: - movs r0, #0 - mov r1, r8 - strb r0, [r1] - movs r0, #0x14 - strh r0, [r7] - movs r0, #0 -_0813813E: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end GetSSTidalLocation - - thumb_func_start sub_08138148 -sub_08138148: @ 0x08138148 - push {lr} - movs r0, #0x88 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0813817A - ldr r0, _08138180 - ldrb r0, [r0, #0x17] - cmp r0, #1 - blt _0813817A - cmp r0, #3 - ble _08138166 - cmp r0, #6 - bne _0813817A -_08138166: - ldr r0, _08138184 - bl GetVarPointer - ldrh r1, [r0] - adds r1, #1 - strh r1, [r0] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - cmp r1, #0xf9 - bhi _08138188 -_0813817A: - movs r0, #0 - b _0813818A - .align 2, 0 -_08138180: .4byte gUnknown_2036FB8 -_08138184: .4byte 0x000040F2 -_08138188: - movs r0, #1 -_0813818A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08138148 - - thumb_func_start ShouldDoWinonaCall -ShouldDoWinonaCall: @ 0x08138190 - push {lr} - movs r0, #0x8a - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081381C2 - ldr r0, _081381C8 - ldrb r0, [r0, #0x17] - cmp r0, #1 - blt _081381C2 - cmp r0, #3 - ble _081381AE - cmp r0, #6 - bne _081381C2 -_081381AE: - ldr r0, _081381CC - bl GetVarPointer - ldrh r1, [r0] - adds r1, #1 - strh r1, [r0] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - cmp r1, #9 - bhi _081381D0 -_081381C2: - movs r0, #0 - b _081381D2 - .align 2, 0 -_081381C8: .4byte gUnknown_2036FB8 -_081381CC: .4byte 0x000040F3 -_081381D0: - movs r0, #1 -_081381D2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ShouldDoWinonaCall - - thumb_func_start ShouldDoScottCall -ShouldDoScottCall: @ 0x081381D8 - push {lr} - movs r0, #0x72 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0813820A - ldr r0, _08138210 - ldrb r0, [r0, #0x17] - cmp r0, #1 - blt _0813820A - cmp r0, #3 - ble _081381F6 - cmp r0, #6 - bne _0813820A -_081381F6: - ldr r0, _08138214 - bl GetVarPointer - ldrh r1, [r0] - adds r1, #1 - strh r1, [r0] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - cmp r1, #9 - bhi _08138218 -_0813820A: - movs r0, #0 - b _0813821A - .align 2, 0 -_08138210: .4byte gUnknown_2036FB8 -_08138214: .4byte 0x000040F5 -_08138218: - movs r0, #1 -_0813821A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ShouldDoScottCall - - thumb_func_start ShouldDoRoxanneCall -ShouldDoRoxanneCall: @ 0x08138220 - push {lr} - movs r0, #0x80 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08138252 - ldr r0, _08138258 - ldrb r0, [r0, #0x17] - cmp r0, #1 - blt _08138252 - cmp r0, #3 - ble _0813823E - cmp r0, #6 - bne _08138252 -_0813823E: - ldr r0, _0813825C - bl GetVarPointer - ldrh r1, [r0] - adds r1, #1 - strh r1, [r0] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - cmp r1, #0xf9 - bhi _08138260 -_08138252: - movs r0, #0 - b _08138262 - .align 2, 0 -_08138258: .4byte gUnknown_2036FB8 -_0813825C: .4byte 0x000040F4 -_08138260: - movs r0, #1 -_08138262: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ShouldDoRoxanneCall - - thumb_func_start c2_mystery_gift -c2_mystery_gift: @ 0x08138268 - push {lr} - movs r0, #0x75 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0813829A - ldr r0, _081382A0 - ldrb r0, [r0, #0x17] - cmp r0, #1 - blt _0813829A - cmp r0, #3 - ble _08138286 - cmp r0, #6 - bne _0813829A -_08138286: - ldr r0, _081382A4 - bl GetVarPointer - ldrh r1, [r0] - adds r1, #1 - strh r1, [r0] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - cmp r1, #0xf9 - bhi _081382A8 -_0813829A: - movs r0, #0 - b _081382AA - .align 2, 0 -_081382A0: .4byte gUnknown_2036FB8 -_081382A4: .4byte 0x000040F6 -_081382A8: - movs r0, #1 -_081382AA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end c2_mystery_gift - - thumb_func_start GetLinkPartnerNames -GetLinkPartnerNames: @ 0x081382B0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r6, #0 - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r4, #0 - cmp r4, r5 - bhs _081382FA - ldr r0, _08138308 - mov r8, r0 -_081382D2: - cmp r7, r4 - beq _081382F0 - lsls r0, r6, #2 - add r0, r8 - ldr r0, [r0] - lsls r1, r4, #3 - subs r1, r1, r4 - lsls r1, r1, #2 - ldr r2, _0813830C - adds r1, r1, r2 - bl StringCopy - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_081382F0: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r5 - blo _081382D2 -_081382FA: - adds r0, r5, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08138308: .4byte gUnknown_8568BF0 -_0813830C: .4byte gUnknown_20226A8 - thumb_func_end GetLinkPartnerNames - - thumb_func_start SpawnLinkPartnerEventObject -SpawnLinkPartnerEventObject: @ 0x08138310 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - movs r7, #0 - movs r0, #0 - mov sb, r0 - mov r8, r0 - ldr r1, _0813835C - add r0, sp, #8 - movs r2, #4 - bl memcpy - add r4, sp, #0xc - ldr r1, _08138360 - adds r0, r4, #0 - movs r2, #8 - bl memcpy - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - bl GetPlayerFacingDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - cmp r0, #2 - beq _08138380 - cmp r0, #2 - bgt _08138364 - cmp r0, #1 - beq _081383AC - b _081383C0 - .align 2, 0 -_0813835C: .4byte gUnknown_85925A8 -_08138360: .4byte gUnknown_85925AC -_08138364: - cmp r1, #3 - beq _0813836E - cmp r1, #4 - beq _08138394 - b _081383C0 -_0813836E: - movs r7, #2 - ldr r0, _0813837C - ldr r1, [r0] - ldrh r0, [r1] - subs r0, #1 - b _0813839C - .align 2, 0 -_0813837C: .4byte gUnknown_3005AEC -_08138380: - movs r7, #1 - ldr r0, _08138390 - ldr r0, [r0] - ldrh r1, [r0] - mov sb, r1 - ldrh r0, [r0, #2] - subs r0, #1 - b _081383BA - .align 2, 0 -_08138390: .4byte gUnknown_3005AEC -_08138394: - ldr r0, _081383A8 - ldr r1, [r0] - ldrh r0, [r1] - adds r0, #1 -_0813839C: - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - ldrh r1, [r1, #2] - mov r8, r1 - b _081383C0 - .align 2, 0 -_081383A8: .4byte gUnknown_3005AEC -_081383AC: - movs r7, #3 - ldr r0, _081383C4 - ldr r0, [r0] - ldrh r3, [r0] - mov sb, r3 - ldrh r0, [r0, #2] - adds r0, #1 -_081383BA: - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 -_081383C0: - movs r6, #0 - b _08138480 - .align 2, 0 -_081383C4: .4byte gUnknown_3005AEC -_081383C8: - cmp sl, r6 - beq _0813847A - ldr r0, _081383E8 - lsls r2, r6, #3 - subs r1, r2, r6 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r3, [r1] - adds r4, r0, #0 - cmp r3, #1 - blt _081383FC - cmp r3, #2 - ble _081383EC - cmp r3, #3 - beq _081383F8 - b _081383FC - .align 2, 0 -_081383E8: .4byte gUnknown_20226A0 -_081383EC: - ldrb r0, [r1, #0x13] - movs r5, #0xec - cmp r0, #0 - bne _0813840C - movs r5, #0xeb - b _0813840C -_081383F8: - ldrb r0, [r1, #0x13] - b _08138404 -_081383FC: - subs r0, r2, r6 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r0, [r0, #0x13] -_08138404: - movs r5, #0x69 - cmp r0, #0 - bne _0813840C - movs r5, #0x64 -_0813840C: - mov r0, sp - adds r0, r0, r7 - adds r0, #8 - ldrb r1, [r0] - movs r4, #0xf0 - subs r4, r4, r6 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r2, r7, #1 - mov r0, sp - adds r0, r0, r2 - adds r0, #0xc - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - mov r3, sb - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - mov ip, r3 - add r0, ip - adds r3, r0, #7 - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - mov ip, r3 - mov r0, sp - adds r0, #0xd - adds r0, r0, r2 - movs r2, #0 - ldrsb r2, [r0, r2] - mov r3, r8 - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - adds r0, r0, r2 - adds r0, #7 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - adds r0, r5, #0 - adds r2, r4, #0 - mov r3, ip - bl SpawnSpecialEventObjectParameterized - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r6, #0 - bl LoadLinkPartnerEventObjectSpritePalette - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #4 - bne _0813847A - movs r7, #0 -_0813847A: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_08138480: - ldr r0, _08138498 - ldrh r0, [r0] - cmp r6, r0 - blo _081383C8 - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08138498: .4byte gUnknown_2037280 - thumb_func_end SpawnLinkPartnerEventObject - - thumb_func_start LoadLinkPartnerEventObjectSpritePalette -LoadLinkPartnerEventObjectSpritePalette: @ 0x0813849C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - lsls r2, r2, #0x18 - movs r1, #0xc0 - lsls r1, r1, #0x13 - adds r2, r2, r1 - lsrs r5, r2, #0x18 - lsrs r4, r0, #0x18 - movs r2, #0xa8 - lsls r2, r2, #0x15 - adds r0, r0, r2 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _081384C4 - cmp r4, #0x64 - beq _081384C4 - cmp r4, #0x69 - bne _08138556 -_081384C4: - ldr r0, _0813850C - ldr r0, [r0] - ldrb r1, [r0, #5] - ldrb r2, [r0, #4] - adds r0, r3, #0 - bl GetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x10 - beq _08138556 - ldr r1, _08138510 - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #4] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _08138514 - adds r1, r1, r0 - lsls r3, r5, #4 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #5] - cmp r4, #0x69 - beq _08138548 - cmp r4, #0x69 - bgt _08138518 - cmp r4, #0x64 - beq _08138534 - b _08138556 - .align 2, 0 -_0813850C: .4byte gUnknown_3005AEC -_08138510: .4byte gUnknown_2036FF0 -_08138514: .4byte gUnknown_20205AC -_08138518: - cmp r4, #0xeb - beq _08138522 - cmp r4, #0xec - beq _0813852C - b _08138556 -_08138522: - ldr r0, _08138528 - b _08138536 - .align 2, 0 -_08138528: .4byte gUnknown_8471E6C -_0813852C: - ldr r0, _08138530 - b _08138536 - .align 2, 0 -_08138530: .4byte gUnknown_847D90C -_08138534: - ldr r0, _08138544 -_08138536: - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r3, r2 - movs r2, #0x20 - bl LoadPalette - b _08138556 - .align 2, 0 -_08138544: .4byte gUnknown_8470C4C -_08138548: - ldr r0, _0813855C - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r3, r2 - movs r2, #0x20 - bl LoadPalette -_08138556: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0813855C: .4byte gUnknown_847C6CC - thumb_func_end LoadLinkPartnerEventObjectSpritePalette - - thumb_func_start MauvilleGymSpecial1 -MauvilleGymSpecial1: @ 0x08138560 - push {r4, r5, lr} - movs r4, #0 - ldr r5, _08138580 -_08138566: - ldr r0, _08138584 - ldrh r0, [r0] - cmp r4, r0 - bne _0813858C - lsls r1, r4, #2 - adds r1, r1, r5 - ldrb r0, [r1] - ldrb r1, [r1, #1] - ldr r2, _08138588 - bl MapGridSetMetatileIdAt - b _0813859A - .align 2, 0 -_08138580: .4byte gUnknown_85925B4 -_08138584: .4byte gUnknown_2037280 -_08138588: .4byte 0x00000206 -_0813858C: - lsls r1, r4, #2 - adds r1, r1, r5 - ldrb r0, [r1] - ldrb r1, [r1, #1] - ldr r2, _081385AC - bl MapGridSetMetatileIdAt -_0813859A: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _08138566 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081385AC: .4byte 0x00000205 - thumb_func_end MauvilleGymSpecial1 - - thumb_func_start MauvilleGymSpecial2 -MauvilleGymSpecial2: @ 0x081385B0 - push {r4, r5, r6, lr} - movs r5, #0xc -_081385B4: - movs r4, #7 - adds r6, r5, #1 -_081385B8: - adds r0, r4, #0 - adds r1, r5, #0 - bl MapGridGetMetatileIdAt - ldr r1, _081385D4 - adds r0, r0, r1 - cmp r0, #0x37 - bls _081385CA - b _081387A4 -_081385CA: - lsls r0, r0, #2 - ldr r1, _081385D8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081385D4: .4byte 0xFFFFFDE6 -_081385D8: .4byte _081385DC -_081385DC: @ jump table - .4byte _08138762 @ case 0 - .4byte _081387A4 @ case 1 - .4byte _081387A4 @ case 2 - .4byte _081387A4 @ case 3 - .4byte _081387A4 @ case 4 - .4byte _081387A4 @ case 5 - .4byte _081386BC @ case 6 - .4byte _081386C2 @ case 7 - .4byte _081386FC @ case 8 - .4byte _08138704 @ case 9 - .4byte _081387A4 @ case 10 - .4byte _081387A4 @ case 11 - .4byte _081387A4 @ case 12 - .4byte _081387A4 @ case 13 - .4byte _081386CC @ case 14 - .4byte _081386D2 @ case 15 - .4byte _0813870C @ case 16 - .4byte _08138714 @ case 17 - .4byte _081387A4 @ case 18 - .4byte _081387A4 @ case 19 - .4byte _081387A4 @ case 20 - .4byte _081387A4 @ case 21 - .4byte _081386DC @ case 22 - .4byte _081386E2 @ case 23 - .4byte _0813871C @ case 24 - .4byte _08138724 @ case 25 - .4byte _081387A4 @ case 26 - .4byte _081387A4 @ case 27 - .4byte _081387A4 @ case 28 - .4byte _081387A4 @ case 29 - .4byte _081386EC @ case 30 - .4byte _081386F4 @ case 31 - .4byte _0813872C @ case 32 - .4byte _08138734 @ case 33 - .4byte _081387A4 @ case 34 - .4byte _081387A4 @ case 35 - .4byte _081387A4 @ case 36 - .4byte _081387A4 @ case 37 - .4byte _0813873C @ case 38 - .4byte _0813874C @ case 39 - .4byte _0813875C @ case 40 - .4byte _08138784 @ case 41 - .4byte _081387A4 @ case 42 - .4byte _081387A4 @ case 43 - .4byte _081387A4 @ case 44 - .4byte _081387A4 @ case 45 - .4byte _08138744 @ case 46 - .4byte _08138754 @ case 47 - .4byte _081387A4 @ case 48 - .4byte _081387A4 @ case 49 - .4byte _081387A4 @ case 50 - .4byte _081387A4 @ case 51 - .4byte _081387A4 @ case 52 - .4byte _081387A4 @ case 53 - .4byte _0813879A @ case 54 - .4byte _0813878C @ case 55 -_081386BC: - movs r2, #0x8c - lsls r2, r2, #2 - b _08138790 -_081386C2: - ldr r2, _081386C8 - b _08138790 - .align 2, 0 -_081386C8: .4byte 0x00000231 -_081386CC: - movs r2, #0x8e - lsls r2, r2, #2 - b _08138790 -_081386D2: - ldr r2, _081386D8 - b _08138790 - .align 2, 0 -_081386D8: .4byte 0x00000239 -_081386DC: - movs r2, #0x88 - lsls r2, r2, #2 - b _08138790 -_081386E2: - ldr r2, _081386E8 - b _08138790 - .align 2, 0 -_081386E8: .4byte 0x00000221 -_081386EC: - ldr r2, _081386F0 - b _08138790 - .align 2, 0 -_081386F0: .4byte 0x00000E28 -_081386F4: - ldr r2, _081386F8 - b _08138790 - .align 2, 0 -_081386F8: .4byte 0x00000E29 -_081386FC: - ldr r2, _08138700 - b _08138790 - .align 2, 0 -_08138700: .4byte 0x00000232 -_08138704: - ldr r2, _08138708 - b _08138790 - .align 2, 0 -_08138708: .4byte 0x00000233 -_0813870C: - ldr r2, _08138710 - b _08138790 - .align 2, 0 -_08138710: .4byte 0x0000023A -_08138714: - ldr r2, _08138718 - b _08138790 - .align 2, 0 -_08138718: .4byte 0x0000023B -_0813871C: - ldr r2, _08138720 - b _08138790 - .align 2, 0 -_08138720: .4byte 0x00000222 -_08138724: - ldr r2, _08138728 - b _08138790 - .align 2, 0 -_08138728: .4byte 0x00000223 -_0813872C: - ldr r2, _08138730 - b _08138790 - .align 2, 0 -_08138730: .4byte 0x00000E2A -_08138734: - ldr r2, _08138738 - b _08138790 - .align 2, 0 -_08138738: .4byte 0x00000E2B -_0813873C: - ldr r2, _08138740 - b _08138790 - .align 2, 0 -_08138740: .4byte 0x00000E42 -_08138744: - ldr r2, _08138748 - b _08138790 - .align 2, 0 -_08138748: .4byte 0x0000021A -_0813874C: - ldr r2, _08138750 - b _08138790 - .align 2, 0 -_08138750: .4byte 0x00000E43 -_08138754: - ldr r2, _08138758 - b _08138790 - .align 2, 0 -_08138758: .4byte 0x0000021A -_0813875C: - movs r2, #0xe4 - lsls r2, r2, #4 - b _08138790 -_08138762: - subs r1, r5, #1 - adds r0, r4, #0 - bl MapGridGetMetatileIdAt - movs r1, #0x90 - lsls r1, r1, #2 - cmp r0, r1 - bne _0813877C - ldr r2, _08138778 - b _08138790 - .align 2, 0 -_08138778: .4byte 0x00000E48 -_0813877C: - ldr r2, _08138780 - b _08138790 - .align 2, 0 -_08138780: .4byte 0x00000E49 -_08138784: - ldr r2, _08138788 - b _08138790 - .align 2, 0 -_08138788: .4byte 0x00000E41 -_0813878C: - movs r2, #0xe5 - lsls r2, r2, #4 -_08138790: - adds r0, r4, #0 - adds r1, r5, #0 - bl MapGridSetMetatileIdAt - b _081387A4 -_0813879A: - ldr r2, _081387BC - adds r0, r4, #0 - adds r1, r5, #0 - bl MapGridSetMetatileIdAt -_081387A4: - adds r4, #1 - cmp r4, #0xf - bgt _081387AC - b _081385B8 -_081387AC: - adds r5, r6, #0 - cmp r5, #0x17 - bgt _081387B4 - b _081385B4 -_081387B4: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081387BC: .4byte 0x00000251 - thumb_func_end MauvilleGymSpecial2 - - thumb_func_start MauvilleGymSpecial3 -MauvilleGymSpecial3: @ 0x081387C0 - push {r4, r5, r6, lr} - ldr r4, _081387FC - movs r5, #3 -_081387C6: - ldrb r0, [r4] - ldrb r1, [r4, #1] - ldr r2, _08138800 - bl MapGridSetMetatileIdAt - adds r4, #4 - subs r5, #1 - cmp r5, #0 - bge _081387C6 - movs r5, #0xc -_081387DA: - movs r4, #7 - adds r6, r5, #1 -_081387DE: - adds r0, r4, #0 - adds r1, r5, #0 - bl MapGridGetMetatileIdAt - ldr r1, _08138804 - adds r0, r0, r1 - cmp r0, #0x30 - bls _081387F0 - b _0813893A -_081387F0: - lsls r0, r0, #2 - ldr r1, _08138808 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081387FC: .4byte gUnknown_85925B4 -_08138800: .4byte 0x00000206 -_08138804: .4byte 0xFFFFFDE0 -_08138808: .4byte _0813880C -_0813880C: @ jump table - .4byte _081388D0 @ case 0 - .4byte _081388D6 @ case 1 - .4byte _081388F0 @ case 2 - .4byte _081388F8 @ case 3 - .4byte _0813893A @ case 4 - .4byte _0813893A @ case 5 - .4byte _0813893A @ case 6 - .4byte _0813893A @ case 7 - .4byte _081388E0 @ case 8 - .4byte _081388E6 @ case 9 - .4byte _08138900 @ case 10 - .4byte _08138908 @ case 11 - .4byte _0813893A @ case 12 - .4byte _0813893A @ case 13 - .4byte _0813893A @ case 14 - .4byte _0813893A @ case 15 - .4byte _0813893A @ case 16 - .4byte _0813893A @ case 17 - .4byte _0813893A @ case 18 - .4byte _0813893A @ case 19 - .4byte _0813893A @ case 20 - .4byte _0813893A @ case 21 - .4byte _0813893A @ case 22 - .4byte _0813893A @ case 23 - .4byte _0813893A @ case 24 - .4byte _0813893A @ case 25 - .4byte _0813893A @ case 26 - .4byte _0813893A @ case 27 - .4byte _0813893A @ case 28 - .4byte _0813893A @ case 29 - .4byte _0813893A @ case 30 - .4byte _0813893A @ case 31 - .4byte _08138910 @ case 32 - .4byte _08138918 @ case 33 - .4byte _0813893A @ case 34 - .4byte _0813893A @ case 35 - .4byte _0813893A @ case 36 - .4byte _0813893A @ case 37 - .4byte _0813893A @ case 38 - .4byte _0813893A @ case 39 - .4byte _08138920 @ case 40 - .4byte _08138920 @ case 41 - .4byte _0813893A @ case 42 - .4byte _0813893A @ case 43 - .4byte _0813893A @ case 44 - .4byte _0813893A @ case 45 - .4byte _0813893A @ case 46 - .4byte _0813893A @ case 47 - .4byte _08138930 @ case 48 -_081388D0: - movs r2, #0x8c - lsls r2, r2, #2 - b _08138922 -_081388D6: - ldr r2, _081388DC - b _08138922 - .align 2, 0 -_081388DC: .4byte 0x00000231 -_081388E0: - movs r2, #0x8e - lsls r2, r2, #2 - b _08138922 -_081388E6: - ldr r2, _081388EC - b _08138922 - .align 2, 0 -_081388EC: .4byte 0x00000239 -_081388F0: - ldr r2, _081388F4 - b _08138922 - .align 2, 0 -_081388F4: .4byte 0x00000232 -_081388F8: - ldr r2, _081388FC - b _08138922 - .align 2, 0 -_081388FC: .4byte 0x00000233 -_08138900: - ldr r2, _08138904 - b _08138922 - .align 2, 0 -_08138904: .4byte 0x0000023A -_08138908: - ldr r2, _0813890C - b _08138922 - .align 2, 0 -_0813890C: .4byte 0x0000023B -_08138910: - ldr r2, _08138914 - b _08138922 - .align 2, 0 -_08138914: .4byte 0x00000E42 -_08138918: - ldr r2, _0813891C - b _08138922 - .align 2, 0 -_0813891C: .4byte 0x00000E43 -_08138920: - ldr r2, _0813892C -_08138922: - adds r0, r4, #0 - adds r1, r5, #0 - bl MapGridSetMetatileIdAt - b _0813893A - .align 2, 0 -_0813892C: .4byte 0x0000021A -_08138930: - ldr r2, _08138950 - adds r0, r4, #0 - adds r1, r5, #0 - bl MapGridSetMetatileIdAt -_0813893A: - adds r4, #1 - cmp r4, #0xf - bgt _08138942 - b _081387DE -_08138942: - adds r5, r6, #0 - cmp r5, #0x17 - bgt _0813894A - b _081387DA -_0813894A: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08138950: .4byte 0x00000251 - thumb_func_end MauvilleGymSpecial3 - - thumb_func_start PetalburgGymSpecial1 -PetalburgGymSpecial1: @ 0x08138954 - push {lr} - ldr r0, _08138974 - movs r1, #0 - strb r1, [r0] - ldr r0, _08138978 - strb r1, [r0] - movs r0, #0x2c - bl sub_080A306C - ldr r0, _0813897C - movs r1, #8 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_08138974: .4byte gUnknown_203A828 -_08138978: .4byte gUnknown_203A829 -_0813897C: .4byte Task_PetalburgGym - thumb_func_end PetalburgGymSpecial1 - - thumb_func_start Task_PetalburgGym -Task_PetalburgGym: @ 0x08138980 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _081389C8 - ldr r5, _081389CC - ldrb r1, [r5] - adds r0, r1, r0 - ldr r4, _081389D0 - ldrb r2, [r4] - ldrb r0, [r0] - cmp r0, r2 - bne _081389DC - ldr r0, _081389D4 - ldrb r0, [r0] - ldr r2, _081389D8 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r1, [r1] - bl PetalburgGymFunc - movs r0, #0 - strb r0, [r4] - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #5 - bne _081389E0 - adds r0, r6, #0 - bl DestroyTask - bl EnableBothScriptContexts - b _081389E0 - .align 2, 0 -_081389C8: .4byte gUnknown_85925C4 -_081389CC: .4byte gUnknown_203A829 -_081389D0: .4byte gUnknown_203A828 -_081389D4: .4byte gUnknown_2037280 -_081389D8: .4byte gUnknown_85925CA -_081389DC: - adds r0, r2, #1 - strb r0, [r4] -_081389E0: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Task_PetalburgGym - - thumb_func_start PetalburgGymFunc -PetalburgGymFunc: @ 0x081389E8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r2, r1, #0x10 - movs r7, #0 - subs r0, #1 - cmp r0, #7 - bhi _08138AB0 - lsls r0, r0, #2 - ldr r1, _08138A0C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08138A0C: .4byte _08138A10 -_08138A10: @ jump table - .4byte _08138A30 @ case 0 - .4byte _08138A42 @ case 1 - .4byte _08138A54 @ case 2 - .4byte _08138A66 @ case 3 - .4byte _08138A74 @ case 4 - .4byte _08138A8A @ case 5 - .4byte _08138A96 @ case 6 - .4byte _08138AA4 @ case 7 -_08138A30: - movs r7, #2 - mov r1, sp - movs r0, #1 - strh r0, [r1] - movs r0, #7 - strh r0, [r1, #2] - add r1, sp, #8 - movs r0, #0x68 - b _08138A84 -_08138A42: - movs r7, #2 - mov r1, sp - movs r0, #1 - strh r0, [r1] - movs r0, #7 - strh r0, [r1, #2] - add r1, sp, #8 - movs r0, #0x4e - b _08138A84 -_08138A54: - movs r7, #2 - mov r1, sp - movs r0, #1 - strh r0, [r1] - movs r0, #7 - strh r0, [r1, #2] - add r1, sp, #8 - movs r0, #0x5b - b _08138A84 -_08138A66: - movs r7, #1 - mov r1, sp - movs r0, #7 - strh r0, [r1] - add r1, sp, #8 - movs r0, #0x27 - b _08138AAE -_08138A74: - movs r7, #2 - mov r1, sp - movs r0, #1 - strh r0, [r1] - movs r0, #7 - strh r0, [r1, #2] - add r1, sp, #8 - movs r0, #0x34 -_08138A84: - strh r0, [r1] - strh r0, [r1, #2] - b _08138AB0 -_08138A8A: - movs r7, #1 - mov r0, sp - strh r7, [r0] - add r1, sp, #8 - movs r0, #0x41 - b _08138AAE -_08138A96: - movs r7, #1 - mov r1, sp - movs r0, #7 - strh r0, [r1] - add r1, sp, #8 - movs r0, #0xd - b _08138AAE -_08138AA4: - movs r7, #1 - mov r0, sp - strh r7, [r0] - add r1, sp, #8 - movs r0, #0x1a -_08138AAE: - strh r0, [r1] -_08138AB0: - movs r6, #0 - cmp r6, r7 - bhs _08138B02 - movs r1, #0xc0 - lsls r1, r1, #4 - adds r0, r1, #0 - adds r1, r2, #0 - orrs r1, r0 - lsls r1, r1, #0x10 - mov sb, r1 - adds r1, r2, #0 - adds r1, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - mov r8, r1 -_08138ACE: - lsls r1, r6, #1 - mov r3, sp - adds r5, r3, r1 - ldrh r0, [r5] - adds r0, #7 - add r4, sp, #8 - adds r4, r4, r1 - ldrh r1, [r4] - adds r1, #7 - mov r3, sb - lsrs r2, r3, #0x10 - bl MapGridSetMetatileIdAt - ldrh r0, [r5] - adds r0, #7 - ldrh r1, [r4] - adds r1, #8 - mov r3, r8 - lsrs r2, r3, #0x10 - bl MapGridSetMetatileIdAt - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, r7 - blo _08138ACE -_08138B02: - bl DrawWholeMapView - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end PetalburgGymFunc - - thumb_func_start PetalburgGymSpecial2 -PetalburgGymSpecial2: @ 0x08138B14 - push {lr} - ldr r0, _08138B28 - ldrb r0, [r0] - ldr r1, _08138B2C - ldrh r1, [r1, #8] - bl PetalburgGymFunc - pop {r0} - bx r0 - .align 2, 0 -_08138B28: .4byte gUnknown_2037280 -_08138B2C: .4byte gUnknown_85925CA - thumb_func_end PetalburgGymSpecial2 - - thumb_func_start ShowFieldMessageStringVar4 -ShowFieldMessageStringVar4: @ 0x08138B30 - push {lr} - ldr r0, _08138B3C - bl ShowFieldMessage - pop {r0} - bx r0 - .align 2, 0 -_08138B3C: .4byte gUnknown_2021C7C - thumb_func_end ShowFieldMessageStringVar4 - - thumb_func_start StorePlayerCoordsInVars -StorePlayerCoordsInVars: @ 0x08138B40 - ldr r1, _08138B54 - ldr r0, _08138B58 - ldr r2, [r0] - ldrh r0, [r2] - strh r0, [r1] - ldr r1, _08138B5C - ldrh r0, [r2, #2] - strh r0, [r1] - bx lr - .align 2, 0 -_08138B54: .4byte gUnknown_2037280 -_08138B58: .4byte gUnknown_3005AEC -_08138B5C: .4byte gUnknown_2037282 - thumb_func_end StorePlayerCoordsInVars - - thumb_func_start GetPlayerTrainerIdOnesDigit -GetPlayerTrainerIdOnesDigit: @ 0x08138B60 - push {lr} - ldr r0, _08138B7C - ldr r0, [r0] - ldrb r1, [r0, #0xb] - lsls r1, r1, #8 - ldrb r0, [r0, #0xa] - orrs r0, r1 - movs r1, #0xa - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_08138B7C: .4byte gUnknown_3005AF0 - thumb_func_end GetPlayerTrainerIdOnesDigit - - thumb_func_start sub_08138B80 -sub_08138B80: @ 0x08138B80 - push {lr} - ldr r0, _08138B98 - ldr r0, [r0] - ldrb r0, [r0, #8] - cmp r0, #0 - bne _08138BA4 - ldr r0, _08138B9C - ldr r1, _08138BA0 - bl StringCopy - b _08138BAC - .align 2, 0 -_08138B98: .4byte gUnknown_3005AF0 -_08138B9C: .4byte gUnknown_2021C40 -_08138BA0: .4byte gUnknown_85CB02A -_08138BA4: - ldr r0, _08138BB0 - ldr r1, _08138BB4 - bl StringCopy -_08138BAC: - pop {r0} - bx r0 - .align 2, 0 -_08138BB0: .4byte gUnknown_2021C40 -_08138BB4: .4byte gUnknown_85CB031 - thumb_func_end sub_08138B80 - - thumb_func_start sub_08138BB8 -sub_08138BB8: @ 0x08138BB8 - push {lr} - ldr r0, _08138BD0 - ldr r0, [r0] - ldrb r0, [r0, #8] - cmp r0, #0 - bne _08138BDC - ldr r0, _08138BD4 - ldr r1, _08138BD8 - bl StringCopy - b _08138BE4 - .align 2, 0 -_08138BD0: .4byte gUnknown_3005AF0 -_08138BD4: .4byte gUnknown_2021C40 -_08138BD8: .4byte gUnknown_85CB03C -_08138BDC: - ldr r0, _08138BE8 - ldr r1, _08138BEC - bl StringCopy -_08138BE4: - pop {r0} - bx r0 - .align 2, 0 -_08138BE8: .4byte gUnknown_2021C40 -_08138BEC: .4byte gUnknown_85CB038 - thumb_func_end sub_08138BB8 - - thumb_func_start sub_08138BF0 -sub_08138BF0: @ 0x08138BF0 - ldr r0, _08138BF8 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08138BF8: .4byte gUnknown_2023FDE - thumb_func_end sub_08138BF0 - - thumb_func_start CableCarWarp -CableCarWarp: @ 0x08138BFC - push {lr} - sub sp, #4 - ldr r0, _08138C1C - ldrh r0, [r0] - cmp r0, #0 - beq _08138C20 - movs r2, #1 - rsbs r2, r2, #0 - movs r0, #4 - str r0, [sp] - movs r0, #0x13 - movs r1, #0 - movs r3, #6 - bl SetWarpDestination - b _08138C32 - .align 2, 0 -_08138C1C: .4byte gUnknown_2037280 -_08138C20: - movs r2, #1 - rsbs r2, r2, #0 - movs r0, #4 - str r0, [sp] - movs r0, #0x13 - movs r1, #1 - movs r3, #6 - bl SetWarpDestination -_08138C32: - add sp, #4 - pop {r0} - bx r0 - thumb_func_end CableCarWarp - - thumb_func_start SetFlagInVar -SetFlagInVar: @ 0x08138C38 - push {lr} - ldr r0, _08138C48 - ldrh r0, [r0] - bl FlagSet - pop {r0} - bx r0 - .align 2, 0 -_08138C48: .4byte gUnknown_2037280 - thumb_func_end SetFlagInVar - - thumb_func_start GetWeekCount -GetWeekCount: @ 0x08138C4C - push {lr} - ldr r0, _08138C6C - movs r1, #0 - ldrsh r0, [r0, r1] - movs r1, #7 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _08138C70 - cmp r0, r1 - bls _08138C66 - adds r0, r1, #0 -_08138C66: - pop {r1} - bx r1 - .align 2, 0 -_08138C6C: .4byte gUnknown_3005A50 -_08138C70: .4byte 0x0000270F - thumb_func_end GetWeekCount - - thumb_func_start GetLeadMonFriendshipScore -GetLeadMonFriendshipScore: @ 0x08138C74 - push {r4, lr} - bl GetLeadMonIndex - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x64 - muls r1, r0, r1 - ldr r0, _08138C98 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0x20 - bl GetMonData - cmp r0, #0xff - bne _08138C9C - movs r0, #6 - b _08138CEE - .align 2, 0 -_08138C98: .4byte gUnknown_2024190 -_08138C9C: - adds r0, r4, #0 - movs r1, #0x20 - bl GetMonData - cmp r0, #0xc7 - bls _08138CAC - movs r0, #5 - b _08138CEE -_08138CAC: - adds r0, r4, #0 - movs r1, #0x20 - bl GetMonData - cmp r0, #0x95 - bls _08138CBC - movs r0, #4 - b _08138CEE -_08138CBC: - adds r0, r4, #0 - movs r1, #0x20 - bl GetMonData - cmp r0, #0x63 - bls _08138CCC - movs r0, #3 - b _08138CEE -_08138CCC: - adds r0, r4, #0 - movs r1, #0x20 - bl GetMonData - cmp r0, #0x31 - bls _08138CDC - movs r0, #2 - b _08138CEE -_08138CDC: - adds r0, r4, #0 - movs r1, #0x20 - bl GetMonData - cmp r0, #0 - bne _08138CEC - movs r0, #0 - b _08138CEE -_08138CEC: - movs r0, #1 -_08138CEE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetLeadMonFriendshipScore - - thumb_func_start CB2_FieldShowRegionMap -CB2_FieldShowRegionMap: @ 0x08138CF4 - push {lr} - ldr r0, _08138D00 - bl FieldInitRegionMap - pop {r0} - bx r0 - .align 2, 0 -_08138D00: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic - thumb_func_end CB2_FieldShowRegionMap - - thumb_func_start FieldShowRegionMap -FieldShowRegionMap: @ 0x08138D04 - push {lr} - ldr r0, _08138D10 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_08138D10: .4byte CB2_FieldShowRegionMap - thumb_func_end FieldShowRegionMap - - thumb_func_start sub_08138D14 -sub_08138D14: @ 0x08138D14 - push {r4, lr} - ldr r4, _08138D50 - adds r0, r4, #0 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08138D48 - adds r0, r4, #0 - movs r1, #8 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08138D54 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r2, #0 - strh r2, [r1, #8] - strh r0, [r1, #0xa] - strh r2, [r1, #0xc] - strh r2, [r1, #0xe] - strh r2, [r1, #0x10] -_08138D48: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08138D50: .4byte sub_08138D58 -_08138D54: .4byte gUnknown_3005B60 - thumb_func_end sub_08138D14 - - thumb_func_start sub_08138D58 -sub_08138D58: @ 0x08138D58 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _08138D7C - adds r1, r1, r0 - movs r2, #8 - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _08138D76 - adds r0, r1, #0 - bl PCTurnOnEffect_0 -_08138D76: - pop {r0} - bx r0 - .align 2, 0 -_08138D7C: .4byte gUnknown_3005B60 - thumb_func_end sub_08138D58 - - thumb_func_start PCTurnOnEffect_0 -PCTurnOnEffect_0: @ 0x08138D80 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r6, #0 - movs r5, #0 - movs r1, #0xe - ldrsh r0, [r4, r1] - cmp r0, #6 - bne _08138DEC - strh r5, [r4, #0xe] - bl GetPlayerFacingDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - cmp r0, #3 - beq _08138DB4 - cmp r0, #3 - bgt _08138DAA - cmp r0, #2 - beq _08138DB0 - b _08138DBC -_08138DAA: - cmp r1, #4 - beq _08138DB8 - b _08138DBC -_08138DB0: - movs r6, #0 - b _08138DBA -_08138DB4: - movs r6, #0xff - b _08138DBA -_08138DB8: - movs r6, #1 -_08138DBA: - movs r5, #0xff -_08138DBC: - movs r1, #0x10 - ldrsh r0, [r4, r1] - lsls r1, r6, #0x18 - asrs r1, r1, #0x18 - lsls r2, r5, #0x18 - asrs r2, r2, #0x18 - bl PCTurnOnEffect_1 - bl DrawWholeMapView - ldrh r0, [r4, #0x10] - movs r1, #1 - eors r0, r1 - strh r0, [r4, #0x10] - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #5 - bne _08138DEC - ldrb r0, [r4, #0xa] - bl DestroyTask -_08138DEC: - ldrh r0, [r4, #0xe] - adds r0, #1 - strh r0, [r4, #0xe] - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end PCTurnOnEffect_0 - - thumb_func_start PCTurnOnEffect_1 -PCTurnOnEffect_1: @ 0x08138DF8 - push {r4, r5, lr} - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r4, r2, #0x18 - movs r3, #0 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08138E34 - ldr r0, _08138E18 - ldrh r0, [r0] - cmp r0, #0 - bne _08138E1C - movs r3, #4 - b _08138E56 - .align 2, 0 -_08138E18: .4byte gUnknown_2037280 -_08138E1C: - cmp r0, #1 - bne _08138E28 - ldr r3, _08138E24 - b _08138E56 - .align 2, 0 -_08138E24: .4byte 0x0000025A -_08138E28: - cmp r0, #2 - bne _08138E56 - ldr r3, _08138E30 - b _08138E56 - .align 2, 0 -_08138E30: .4byte 0x00000259 -_08138E34: - ldr r0, _08138E40 - ldrh r0, [r0] - cmp r0, #0 - bne _08138E44 - movs r3, #5 - b _08138E56 - .align 2, 0 -_08138E40: .4byte gUnknown_2037280 -_08138E44: - cmp r0, #1 - bne _08138E50 - ldr r3, _08138E4C - b _08138E56 - .align 2, 0 -_08138E4C: .4byte 0x0000027F -_08138E50: - cmp r0, #2 - bne _08138E56 - ldr r3, _08138E88 -_08138E56: - ldr r0, _08138E8C - ldr r2, [r0] - movs r5, #0 - ldrsh r0, [r2, r5] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r0, r1 - adds r0, #7 - movs r5, #2 - ldrsh r1, [r2, r5] - lsls r2, r4, #0x18 - asrs r2, r2, #0x18 - adds r1, r1, r2 - adds r1, #7 - movs r4, #0xc0 - lsls r4, r4, #4 - adds r2, r4, #0 - orrs r3, r2 - adds r2, r3, #0 - bl MapGridSetMetatileIdAt - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08138E88: .4byte 0x0000027E -_08138E8C: .4byte gUnknown_3005AEC - thumb_func_end PCTurnOnEffect_1 - - thumb_func_start sub_08138E90 -sub_08138E90: @ 0x08138E90 - push {lr} - bl PCTurnOffEffect - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08138E90 - - thumb_func_start PCTurnOffEffect -PCTurnOffEffect: @ 0x08138E9C - push {r4, r5, r6, lr} - movs r6, #0 - movs r5, #0 - movs r4, #0 - bl GetPlayerFacingDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - cmp r0, #3 - beq _08138EC6 - cmp r0, #3 - bgt _08138EBC - cmp r0, #2 - beq _08138EC2 - b _08138ECE -_08138EBC: - cmp r1, #4 - beq _08138ECA - b _08138ECE -_08138EC2: - movs r6, #0 - b _08138ECC -_08138EC6: - movs r6, #0xff - b _08138ECC -_08138ECA: - movs r6, #1 -_08138ECC: - movs r5, #0xff -_08138ECE: - ldr r0, _08138EDC - ldrh r0, [r0] - cmp r0, #0 - bne _08138EE0 - movs r4, #4 - b _08138EF2 - .align 2, 0 -_08138EDC: .4byte gUnknown_2037280 -_08138EE0: - cmp r0, #1 - bne _08138EEC - ldr r4, _08138EE8 - b _08138EF2 - .align 2, 0 -_08138EE8: .4byte 0x0000025A -_08138EEC: - cmp r0, #2 - bne _08138EF2 - ldr r4, _08138F28 -_08138EF2: - ldr r0, _08138F2C - ldr r2, [r0] - movs r1, #0 - ldrsh r0, [r2, r1] - lsls r1, r6, #0x18 - asrs r1, r1, #0x18 - adds r0, r0, r1 - adds r0, #7 - movs r3, #2 - ldrsh r1, [r2, r3] - lsls r2, r5, #0x18 - asrs r2, r2, #0x18 - adds r1, r1, r2 - adds r1, #7 - movs r3, #0xc0 - lsls r3, r3, #4 - adds r2, r3, #0 - orrs r4, r2 - adds r2, r4, #0 - bl MapGridSetMetatileIdAt - bl DrawWholeMapView - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08138F28: .4byte 0x00000259 -_08138F2C: .4byte gUnknown_3005AEC - thumb_func_end PCTurnOffEffect - - thumb_func_start sub_08138F30 -sub_08138F30: @ 0x08138F30 - push {r4, lr} - ldr r4, _08138F6C - adds r0, r4, #0 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08138F64 - adds r0, r4, #0 - movs r1, #8 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08138F70 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r2, #0 - strh r2, [r1, #8] - strh r0, [r1, #0xa] - strh r2, [r1, #0xc] - strh r2, [r1, #0xe] - strh r2, [r1, #0x10] -_08138F64: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08138F6C: .4byte sub_08138F74 -_08138F70: .4byte gUnknown_3005B60 - thumb_func_end sub_08138F30 - - thumb_func_start sub_08138F74 -sub_08138F74: @ 0x08138F74 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _08138F98 - adds r1, r1, r0 - movs r2, #8 - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _08138F92 - adds r0, r1, #0 - bl LotteryCornerComputerEffect -_08138F92: - pop {r0} - bx r0 - .align 2, 0 -_08138F98: .4byte gUnknown_3005B60 - thumb_func_end sub_08138F74 - - thumb_func_start LotteryCornerComputerEffect -LotteryCornerComputerEffect: @ 0x08138F9C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xe - ldrsh r0, [r4, r1] - cmp r0, #6 - bne _0813900A - movs r0, #0 - strh r0, [r4, #0xe] - movs r1, #0x10 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _08138FD4 - ldr r2, _08138FCC - movs r0, #0x12 - movs r1, #8 - bl MapGridSetMetatileIdAt - ldr r2, _08138FD0 - movs r0, #0x12 - movs r1, #9 - bl MapGridSetMetatileIdAt - b _08138FEA - .align 2, 0 -_08138FCC: .4byte 0x00000E9D -_08138FD0: .4byte 0x00000EA5 -_08138FD4: - ldr r2, _08139018 - movs r0, #0x12 - movs r1, #8 - bl MapGridSetMetatileIdAt - movs r2, #0xe6 - lsls r2, r2, #4 - movs r0, #0x12 - movs r1, #9 - bl MapGridSetMetatileIdAt -_08138FEA: - bl DrawWholeMapView - ldrh r0, [r4, #0x10] - movs r1, #1 - eors r0, r1 - strh r0, [r4, #0x10] - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #5 - bne _0813900A - ldrb r0, [r4, #0xa] - bl DestroyTask -_0813900A: - ldrh r0, [r4, #0xe] - adds r0, #1 - strh r0, [r4, #0xe] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08139018: .4byte 0x00000E58 - thumb_func_end LotteryCornerComputerEffect - - thumb_func_start EndLotteryCornerComputerEffect -EndLotteryCornerComputerEffect: @ 0x0813901C - push {lr} - ldr r2, _0813903C - movs r0, #0x12 - movs r1, #8 - bl MapGridSetMetatileIdAt - ldr r2, _08139040 - movs r0, #0x12 - movs r1, #9 - bl MapGridSetMetatileIdAt - bl DrawWholeMapView - pop {r0} - bx r0 - .align 2, 0 -_0813903C: .4byte 0x00000E9D -_08139040: .4byte 0x00000EA5 - thumb_func_end EndLotteryCornerComputerEffect - - thumb_func_start sub_08139044 -sub_08139044: @ 0x08139044 - push {lr} - ldr r1, _08139054 - ldr r0, _08139058 - strh r0, [r1] - bl FlagSet - pop {r0} - bx r0 - .align 2, 0 -_08139054: .4byte gUnknown_2037280 -_08139058: .4byte 0x000001F5 - thumb_func_end sub_08139044 - - thumb_func_start sub_0813905C -sub_0813905C: @ 0x0813905C - push {lr} - ldr r1, _0813906C - ldr r0, _08139070 - strh r0, [r1] - bl FlagClear - pop {r0} - bx r0 - .align 2, 0 -_0813906C: .4byte gUnknown_2037280 -_08139070: .4byte 0x000001F5 - thumb_func_end sub_0813905C - - thumb_func_start CheckLeadMonCool -CheckLeadMonCool: @ 0x08139074 - push {lr} - bl GetLeadMonIndex - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x64 - muls r0, r1, r0 - ldr r1, _08139094 - adds r0, r0, r1 - movs r1, #0x16 - bl GetMonData - cmp r0, #0xc7 - bls _08139098 - movs r0, #1 - b _0813909A - .align 2, 0 -_08139094: .4byte gUnknown_2024190 -_08139098: - movs r0, #0 -_0813909A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CheckLeadMonCool - - thumb_func_start CheckLeadMonBeauty -CheckLeadMonBeauty: @ 0x081390A0 - push {lr} - bl GetLeadMonIndex - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x64 - muls r0, r1, r0 - ldr r1, _081390C0 - adds r0, r0, r1 - movs r1, #0x17 - bl GetMonData - cmp r0, #0xc7 - bls _081390C4 - movs r0, #1 - b _081390C6 - .align 2, 0 -_081390C0: .4byte gUnknown_2024190 -_081390C4: - movs r0, #0 -_081390C6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CheckLeadMonBeauty - - thumb_func_start CheckLeadMonCute -CheckLeadMonCute: @ 0x081390CC - push {lr} - bl GetLeadMonIndex - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x64 - muls r0, r1, r0 - ldr r1, _081390EC - adds r0, r0, r1 - movs r1, #0x18 - bl GetMonData - cmp r0, #0xc7 - bls _081390F0 - movs r0, #1 - b _081390F2 - .align 2, 0 -_081390EC: .4byte gUnknown_2024190 -_081390F0: - movs r0, #0 -_081390F2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CheckLeadMonCute - - thumb_func_start CheckLeadMonSmart -CheckLeadMonSmart: @ 0x081390F8 - push {lr} - bl GetLeadMonIndex - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x64 - muls r0, r1, r0 - ldr r1, _08139118 - adds r0, r0, r1 - movs r1, #0x21 - bl GetMonData - cmp r0, #0xc7 - bls _0813911C - movs r0, #1 - b _0813911E - .align 2, 0 -_08139118: .4byte gUnknown_2024190 -_0813911C: - movs r0, #0 -_0813911E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CheckLeadMonSmart - - thumb_func_start sub_08139124 -sub_08139124: @ 0x08139124 - push {lr} - bl GetLeadMonIndex - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x64 - muls r0, r1, r0 - ldr r1, _08139144 - adds r0, r0, r1 - movs r1, #0x2f - bl GetMonData - cmp r0, #0xc7 - bls _08139148 - movs r0, #1 - b _0813914A - .align 2, 0 -_08139144: .4byte gUnknown_2024190 -_08139148: - movs r0, #0 -_0813914A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08139124 - - thumb_func_start IsGrassTypeInParty -IsGrassTypeInParty: @ 0x08139150 - push {r4, r5, r6, lr} - movs r5, #0 - ldr r6, _081391A0 -_08139156: - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _081391A4 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #5 - bl GetMonData - cmp r0, #0 - beq _081391AC - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - bne _081391AC - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrb r0, [r1, #6] - cmp r0, #0xc - beq _08139198 - ldrb r0, [r1, #7] - cmp r0, #0xc - bne _081391AC -_08139198: - ldr r1, _081391A8 - movs r0, #1 - b _081391BA - .align 2, 0 -_081391A0: .4byte gUnknown_82F0D54 -_081391A4: .4byte gUnknown_2024190 -_081391A8: .4byte gUnknown_2037290 -_081391AC: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #5 - bls _08139156 - ldr r1, _081391C4 - movs r0, #0 -_081391BA: - strh r0, [r1] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081391C4: .4byte gUnknown_2037290 - thumb_func_end IsGrassTypeInParty - - thumb_func_start SpawnCameraObject -SpawnCameraObject: @ 0x081391C8 - push {lr} - sub sp, #8 - ldr r0, _08139214 - ldr r0, [r0] - ldrh r3, [r0] - adds r3, #7 - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - ldrh r0, [r0, #2] - adds r0, #7 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - str r0, [sp] - movs r0, #3 - str r0, [sp, #4] - movs r0, #7 - movs r1, #8 - movs r2, #0x7f - bl SpawnSpecialEventObjectParameterized - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08139218 - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r0, [r1, #1] - movs r2, #0x20 - orrs r0, r2 - strb r0, [r1, #1] - ldrb r0, [r1, #4] - bl CameraObjectSetFollowedObjectId - add sp, #8 - pop {r0} - bx r0 - .align 2, 0 -_08139214: .4byte gUnknown_3005AEC -_08139218: .4byte gUnknown_2036FF0 - thumb_func_end SpawnCameraObject - - thumb_func_start RemoveCameraObject -RemoveCameraObject: @ 0x0813921C - push {lr} - bl GetPlayerAvatarObjectId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl CameraObjectSetFollowedObjectId - ldr r0, _0813923C - ldr r0, [r0] - ldrb r1, [r0, #5] - ldrb r2, [r0, #4] - movs r0, #0x7f - bl RemoveEventObjectByLocalIdAndMap - pop {r0} - bx r0 - .align 2, 0 -_0813923C: .4byte gUnknown_3005AEC - thumb_func_end RemoveCameraObject - - thumb_func_start GetPokeblockNameByMonNature -GetPokeblockNameByMonNature: @ 0x08139240 - push {lr} - bl GetLeadMonIndex - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x64 - muls r0, r1, r0 - ldr r1, _08139268 - adds r0, r0, r1 - bl GetNature - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0813926C - bl CopyMonFavoritePokeblockName - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_08139268: .4byte gUnknown_2024190 -_0813926C: .4byte gUnknown_2021C40 - thumb_func_end GetPokeblockNameByMonNature - - thumb_func_start GetSecretBaseNearbyMapName -GetSecretBaseNearbyMapName: @ 0x08139270 - push {r4, lr} - ldr r4, _08139290 - ldr r0, _08139294 - bl VarGet - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - movs r2, #0 - bl GetMapName - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08139290: .4byte gUnknown_2021C40 -_08139294: .4byte 0x00004026 - thumb_func_end GetSecretBaseNearbyMapName - - thumb_func_start GetBestBattleTowerStreak -GetBestBattleTowerStreak: @ 0x08139298 - push {lr} - movs r0, #0x20 - bl GetGameStat - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - thumb_func_end GetBestBattleTowerStreak - - thumb_func_start sub_081392A8 -sub_081392A8: @ 0x081392A8 - push {lr} - ldr r0, _081392B4 - bl GetEreaderTrainerName - pop {r0} - bx r0 - .align 2, 0 -_081392B4: .4byte gUnknown_2021C40 - thumb_func_end sub_081392A8 - - thumb_func_start GetSlotMachineId -GetSlotMachineId: @ 0x081392B8 - push {r4, r5, lr} - ldr r0, _081392EC - ldr r2, [r0] - ldr r1, _081392F0 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r1, r1, #0x19 - ldr r0, _081392F4 - adds r2, r2, r0 - lsrs r1, r1, #0x19 - ldrh r2, [r2] - adds r1, r1, r2 - ldr r2, _081392F8 - ldr r0, _081392FC - ldrh r0, [r0] - adds r0, r0, r2 - ldrb r0, [r0] - adds r5, r1, r0 - movs r0, #2 - bl GetPriceReduction - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08139304 - ldr r4, _08139300 - b _08139306 - .align 2, 0 -_081392EC: .4byte gUnknown_3005AEC -_081392F0: .4byte 0x00002E68 -_081392F4: .4byte 0x00002E6A -_081392F8: .4byte gUnknown_85925D4 -_081392FC: .4byte gUnknown_2037280 -_08139300: .4byte gUnknown_85925E0 -_08139304: - ldr r4, _08139318 -_08139306: - adds r0, r5, #0 - movs r1, #0xc - bl __umodsi3 - adds r0, r0, r4 - ldrb r0, [r0] - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08139318: .4byte gUnknown_85925EC - thumb_func_end GetSlotMachineId - - thumb_func_start FoundAbandonedShipRoom1Key -FoundAbandonedShipRoom1Key: @ 0x0813931C - push {lr} - ldr r1, _08139334 - ldr r0, _08139338 - strh r0, [r1] - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0813933C - movs r0, #1 - b _0813933E - .align 2, 0 -_08139334: .4byte gUnknown_2037280 -_08139338: .4byte 0x00000213 -_0813933C: - movs r0, #0 -_0813933E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end FoundAbandonedShipRoom1Key - - thumb_func_start FoundAbandonedShipRoom2Key -FoundAbandonedShipRoom2Key: @ 0x08139344 - push {lr} - ldr r1, _0813935C - movs r0, #0x85 - lsls r0, r0, #2 - strh r0, [r1] - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08139360 - movs r0, #1 - b _08139362 - .align 2, 0 -_0813935C: .4byte gUnknown_2037280 -_08139360: - movs r0, #0 -_08139362: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end FoundAbandonedShipRoom2Key - - thumb_func_start sub_08139368 -sub_08139368: @ 0x08139368 - push {lr} - ldr r1, _08139380 - ldr r0, _08139384 - strh r0, [r1] - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08139388 - movs r0, #1 - b _0813938A - .align 2, 0 -_08139380: .4byte gUnknown_2037280 -_08139384: .4byte 0x00000215 -_08139388: - movs r0, #0 -_0813938A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08139368 - - thumb_func_start FoundAbandonedShipRoom6Key -FoundAbandonedShipRoom6Key: @ 0x08139390 - push {lr} - ldr r1, _081393A8 - ldr r0, _081393AC - strh r0, [r1] - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081393B0 - movs r0, #1 - b _081393B2 - .align 2, 0 -_081393A8: .4byte gUnknown_2037280 -_081393AC: .4byte 0x00000216 -_081393B0: - movs r0, #0 -_081393B2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end FoundAbandonedShipRoom6Key - - thumb_func_start LeadMonHasEffortRibbon -LeadMonHasEffortRibbon: @ 0x081393B8 - push {lr} - bl GetLeadMonIndex - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x64 - muls r0, r1, r0 - ldr r1, _081393DC - adds r0, r0, r1 - movs r1, #0x47 - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_081393DC: .4byte gUnknown_2024190 - thumb_func_end LeadMonHasEffortRibbon - - thumb_func_start GiveLeadMonEffortRibbon -GiveLeadMonEffortRibbon: @ 0x081393E0 - push {r4, lr} - sub sp, #4 - movs r0, #0x2a - bl IncrementGameStat - ldr r0, _08139430 - bl FlagSet - movs r1, #1 - mov r0, sp - strb r1, [r0] - bl GetLeadMonIndex - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x64 - muls r1, r0, r1 - ldr r0, _08139434 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0x47 - mov r2, sp - bl SetMonData - adds r0, r4, #0 - bl GetRibbonCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bls _08139426 - adds r0, r4, #0 - movs r1, #0x47 - bl sub_080EEFFC -_08139426: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08139430: .4byte 0x0000089B -_08139434: .4byte gUnknown_2024190 - thumb_func_end GiveLeadMonEffortRibbon - - thumb_func_start Special_AreLeadMonEVsMaxedOut -Special_AreLeadMonEVsMaxedOut: @ 0x08139438 - push {lr} - bl GetLeadMonIndex - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x64 - muls r0, r1, r0 - ldr r1, _0813945C - adds r0, r0, r1 - bl GetMonEVCount - lsls r0, r0, #0x10 - ldr r1, _08139460 - cmp r0, r1 - bhi _08139464 - movs r0, #0 - b _08139466 - .align 2, 0 -_0813945C: .4byte gUnknown_2024190 -_08139460: .4byte 0x01FD0000 -_08139464: - movs r0, #1 -_08139466: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end Special_AreLeadMonEVsMaxedOut - - thumb_func_start TryUpdateRusturfTunnelState -TryUpdateRusturfTunnelState: @ 0x0813946C - push {lr} - movs r0, #0xc7 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081394C4 - ldr r0, _0813949C - ldr r0, [r0] - ldrh r1, [r0, #4] - movs r0, #0x83 - lsls r0, r0, #3 - cmp r1, r0 - bne _081394C4 - subs r0, #0x75 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081394A4 - ldr r0, _081394A0 - movs r1, #4 - b _081394B6 - .align 2, 0 -_0813949C: .4byte gUnknown_3005AEC -_081394A0: .4byte 0x0000409A -_081394A4: - movs r0, #0xe9 - lsls r0, r0, #2 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081394C4 - ldr r0, _081394C0 - movs r1, #5 -_081394B6: - bl VarSet - movs r0, #1 - b _081394C6 - .align 2, 0 -_081394C0: .4byte 0x0000409A -_081394C4: - movs r0, #0 -_081394C6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end TryUpdateRusturfTunnelState - - thumb_func_start sub_081394CC -sub_081394CC: @ 0x081394CC - push {lr} - ldr r0, _081394D8 - bl FlagSet - pop {r0} - bx r0 - .align 2, 0 -_081394D8: .4byte 0x000008BF - thumb_func_end sub_081394CC - - thumb_func_start PutZigzagoonInPlayerParty -PutZigzagoonInPlayerParty: @ 0x081394DC - push {r4, r5, lr} - sub sp, #0x14 - ldr r5, _08139544 - movs r1, #0x90 - lsls r1, r1, #1 - movs r4, #0 - str r4, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - str r4, [sp, #0xc] - adds r0, r5, #0 - movs r2, #7 - movs r3, #0x20 - bl CreateMon - movs r1, #1 - add r0, sp, #0x10 - strh r1, [r0] - adds r0, r5, #0 - movs r1, #0x2e - add r2, sp, #0x10 - bl SetMonData - add r1, sp, #0x10 - movs r0, #0x21 - strh r0, [r1] - adds r0, r5, #0 - movs r1, #0xd - add r2, sp, #0x10 - bl SetMonData - add r0, sp, #0x10 - strh r4, [r0] - adds r0, r5, #0 - movs r1, #0xe - add r2, sp, #0x10 - bl SetMonData - adds r0, r5, #0 - movs r1, #0xf - add r2, sp, #0x10 - bl SetMonData - adds r0, r5, #0 - movs r1, #0x10 - add r2, sp, #0x10 - bl SetMonData - add sp, #0x14 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08139544: .4byte gUnknown_2024190 - thumb_func_end PutZigzagoonInPlayerParty - - thumb_func_start IsStarterInParty -IsStarterInParty: @ 0x08139548 - push {r4, r5, r6, lr} - ldr r0, _08139584 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetStarterPokemon - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - bl sub_0806B004 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r4, #0 - cmp r4, r5 - bhs _08139596 -_0813956A: - movs r0, #0x64 - muls r0, r4, r0 - ldr r1, _08139588 - adds r0, r0, r1 - movs r1, #0x41 - movs r2, #0 - bl GetMonData - cmp r0, r6 - bne _0813958C - movs r0, #1 - b _08139598 - .align 2, 0 -_08139584: .4byte 0x00004023 -_08139588: .4byte gUnknown_2024190 -_0813958C: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r5 - blo _0813956A -_08139596: - movs r0, #0 -_08139598: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsStarterInParty - - thumb_func_start ScriptCheckFreePokemonStorageSpace -ScriptCheckFreePokemonStorageSpace: @ 0x081395A0 - push {lr} - bl CheckFreePokemonStorageSpace - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ScriptCheckFreePokemonStorageSpace - - thumb_func_start sub_081395B0 -sub_081395B0: @ 0x081395B0 - push {lr} - ldr r0, _081395C4 - movs r1, #0x3f - bl CheckPartyPokerus - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081395C8 - movs r0, #1 - b _081395CA - .align 2, 0 -_081395C4: .4byte gUnknown_2024190 -_081395C8: - movs r0, #0 -_081395CA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081395B0 - - thumb_func_start sub_081395D0 -sub_081395D0: @ 0x081395D0 - push {lr} - ldr r0, _08139614 - movs r1, #9 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08139618 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r0, _0813961C - ldrh r0, [r0] - movs r2, #0 - strh r0, [r1, #8] - strh r2, [r1, #0xa] - ldr r0, _08139620 - ldrh r0, [r0] - strh r0, [r1, #0xc] - ldr r0, _08139624 - ldrh r0, [r0] - strh r0, [r1, #0xe] - ldr r0, _08139628 - ldrh r0, [r0] - strh r0, [r1, #0x10] - movs r0, #0 - bl sub_08089C24 - movs r0, #0xd6 - bl sub_080A306C - pop {r0} - bx r0 - .align 2, 0 -_08139614: .4byte sub_0813962C -_08139618: .4byte gUnknown_3005B60 -_0813961C: .4byte gUnknown_2037282 -_08139620: .4byte gUnknown_2037284 -_08139624: .4byte gUnknown_2037286 -_08139628: .4byte gUnknown_2037280 - thumb_func_end sub_081395D0 - - thumb_func_start sub_0813962C -sub_0813962C: @ 0x0813962C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _0813968C - adds r4, r0, r1 - ldrh r0, [r4, #2] - adds r0, #1 - strh r0, [r4, #2] - movs r1, #2 - ldrsh r0, [r4, r1] - movs r2, #6 - ldrsh r1, [r4, r2] - bl __modsi3 - cmp r0, #0 - bne _08139684 - strh r0, [r4, #2] - ldrh r0, [r4, #4] - subs r0, #1 - strh r0, [r4, #4] - ldrh r0, [r4] - rsbs r0, r0, #0 - strh r0, [r4] - ldrh r0, [r4, #8] - rsbs r0, r0, #0 - strh r0, [r4, #8] - movs r1, #0 - ldrsh r0, [r4, r1] - movs r2, #8 - ldrsh r1, [r4, r2] - bl SetCameraPanning - movs r1, #4 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08139684 - adds r0, r5, #0 - bl sub_08139690 - bl InstallCameraPanAheadCallback -_08139684: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0813968C: .4byte gUnknown_3005B68 - thumb_func_end sub_0813962C - - thumb_func_start sub_08139690 -sub_08139690: @ 0x08139690 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - bl EnableBothScriptContexts - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08139690 - - thumb_func_start sub_081396A4 -sub_081396A4: @ 0x081396A4 - push {lr} - movs r0, #0x95 - lsls r0, r0, #2 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081396A4 - - thumb_func_start sub_081396B8 -sub_081396B8: @ 0x081396B8 - push {lr} - bl GetLastUsedWarpMapType - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl IsMapTypeOutdoors - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081396D4 - movs r0, #0x14 - bl SetSav1Weather -_081396D4: - pop {r0} - bx r0 - thumb_func_end sub_081396B8 - - thumb_func_start SetRoute123Weather -SetRoute123Weather: @ 0x081396D8 - push {lr} - bl GetLastUsedWarpMapType - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl IsMapTypeOutdoors - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081396F4 - movs r0, #0x15 - bl SetSav1Weather -_081396F4: - pop {r0} - bx r0 - thumb_func_end SetRoute123Weather - - thumb_func_start GetLeadMonIndex -GetLeadMonIndex: @ 0x081396F8 - push {r4, r5, r6, lr} - bl sub_0806B004 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r5, #0 - cmp r5, r6 - bhs _08139746 -_08139708: - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _08139738 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0x41 - movs r2, #0 - bl GetMonData - movs r1, #0xce - lsls r1, r1, #1 - cmp r0, r1 - beq _0813973C - adds r0, r4, #0 - movs r1, #0x41 - movs r2, #0 - bl GetMonData - cmp r0, #0 - beq _0813973C - adds r0, r5, #0 - b _08139748 - .align 2, 0 -_08139738: .4byte gUnknown_2024190 -_0813973C: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, r6 - blo _08139708 -_08139746: - movs r0, #0 -_08139748: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetLeadMonIndex - - thumb_func_start ScriptGetPartyMonSpecies -ScriptGetPartyMonSpecies: @ 0x08139750 - push {lr} - ldr r0, _08139770 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08139774 - adds r0, r0, r1 - movs r1, #0x41 - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 -_08139770: .4byte gUnknown_2037280 -_08139774: .4byte gUnknown_2024190 - thumb_func_end ScriptGetPartyMonSpecies - - thumb_func_start sub_08139778 -sub_08139778: @ 0x08139778 - bx lr - .align 2, 0 - thumb_func_end sub_08139778 - - thumb_func_start GetDaysUntilPacifidlogTMAvailable -GetDaysUntilPacifidlogTMAvailable: @ 0x0813977C - push {r4, lr} - ldr r0, _0813979C - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r3, r0, #0 - ldr r2, _081397A0 - movs r1, #0 - ldrsh r0, [r2, r1] - subs r0, r0, r3 - cmp r0, #6 - ble _081397A4 - movs r0, #0 - b _081397BC - .align 2, 0 -_0813979C: .4byte 0x000040C2 -_081397A0: .4byte gUnknown_3005A50 -_081397A4: - ldrh r1, [r2] - movs r4, #0 - ldrsh r0, [r2, r4] - cmp r0, #0 - blt _081397BA - subs r1, r1, r3 - movs r0, #7 - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b _081397BC -_081397BA: - movs r0, #8 -_081397BC: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetDaysUntilPacifidlogTMAvailable - - thumb_func_start SetPacifidlogTMReceivedDay -SetPacifidlogTMReceivedDay: @ 0x081397C4 - push {r4, lr} - ldr r0, _081397D8 - ldr r4, _081397DC - ldrh r1, [r4] - bl VarSet - ldrh r0, [r4] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081397D8: .4byte 0x000040C2 -_081397DC: .4byte gUnknown_3005A50 - thumb_func_end SetPacifidlogTMReceivedDay - - thumb_func_start sub_081397E0 -sub_081397E0: @ 0x081397E0 - push {r4, lr} - ldr r0, _0813980C - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08139810 - adds r0, r0, r1 - ldr r4, _08139814 - movs r1, #7 - adds r2, r4, #0 - bl GetMonData - ldr r0, _08139818 - ldr r0, [r0] - adds r1, r4, #0 - bl StringCompare - cmp r0, #0 - beq _0813981C - movs r0, #1 - b _0813981E - .align 2, 0 -_0813980C: .4byte gUnknown_2037280 -_08139810: .4byte gUnknown_2024190 -_08139814: .4byte gUnknown_2021C40 -_08139818: .4byte gUnknown_3005AF0 -_0813981C: - movs r0, #0 -_0813981E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081397E0 - - thumb_func_start BufferLottoTicketNumber -BufferLottoTicketNumber: @ 0x08139824 - push {r4, r5, lr} - ldr r2, _08139838 - ldrh r1, [r2] - ldr r0, _0813983C - cmp r1, r0 - bls _08139840 - movs r0, #0 - bl TV_PrintIntToStringVar - b _081398C2 - .align 2, 0 -_08139838: .4byte gUnknown_2037290 -_0813983C: .4byte 0x0000270F -_08139840: - ldr r0, _08139850 - cmp r1, r0 - bls _08139858 - ldr r4, _08139854 - movs r0, #0xa1 - strb r0, [r4] - adds r4, #1 - b _0813987C - .align 2, 0 -_08139850: .4byte 0x000003E7 -_08139854: .4byte gUnknown_2021C40 -_08139858: - cmp r1, #0x63 - bls _0813986C - ldr r4, _08139868 - movs r0, #0xa1 - strb r0, [r4] - strb r0, [r4, #1] - adds r4, #2 - b _0813987C - .align 2, 0 -_08139868: .4byte gUnknown_2021C40 -_0813986C: - cmp r1, #9 - bls _0813989C - ldr r4, _08139898 - movs r0, #0xa1 - strb r0, [r4] - strb r0, [r4, #1] - strb r0, [r4, #2] - adds r4, #3 -_0813987C: - ldrh r5, [r2] - adds r0, r5, #0 - bl CountDigits - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0 - bl sub_080089D8 - b _081398C2 - .align 2, 0 -_08139898: .4byte gUnknown_2021C40 -_0813989C: - ldr r4, _081398C8 - movs r0, #0xa1 - strb r0, [r4] - strb r0, [r4, #1] - strb r0, [r4, #2] - strb r0, [r4, #3] - adds r4, #4 - ldrh r5, [r2] - adds r0, r5, #0 - bl CountDigits - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0 - bl sub_080089D8 -_081398C2: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081398C8: .4byte gUnknown_2021C40 - thumb_func_end BufferLottoTicketNumber - - thumb_func_start sub_081398CC -sub_081398CC: @ 0x081398CC - push {lr} - ldr r0, _081398E0 - ldrh r0, [r0] - cmp r0, #4 - bhi _08139918 - lsls r0, r0, #2 - ldr r1, _081398E4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081398E0: .4byte gUnknown_2037290 -_081398E4: .4byte _081398E8 -_081398E8: @ jump table - .4byte _081398FC @ case 0 - .4byte _08139900 @ case 1 - .4byte _08139904 @ case 2 - .4byte _08139908 @ case 3 - .4byte _0813990C @ case 4 -_081398FC: - movs r0, #3 - b _0813990E -_08139900: - movs r0, #4 - b _0813990E -_08139904: - movs r0, #0 - b _0813990E -_08139908: - movs r0, #1 - b _0813990E -_0813990C: - movs r0, #2 -_0813990E: - bl sub_0801B354 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b _08139926 -_08139918: - ldr r0, _0813992C - ldr r1, _08139930 - ldr r2, _08139934 - movs r3, #1 - bl AGBAssert - movs r0, #0 -_08139926: - pop {r1} - bx r1 - .align 2, 0 -_0813992C: .4byte gUnknown_85925F8 -_08139930: .4byte 0x00000B14 -_08139934: .4byte gUnknown_8592604 - thumb_func_end sub_081398CC - - thumb_func_start sub_08139938 -sub_08139938: @ 0x08139938 - push {r4, lr} - ldr r1, _08139950 - ldr r2, _08139954 - adds r0, r2, #0 - ldrh r2, [r1] - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x39 - bls _08139958 - movs r0, #0 - b _08139972 - .align 2, 0 -_08139950: .4byte gUnknown_2037280 -_08139954: .4byte 0xFFFFFEDF -_08139958: - ldr r4, _08139978 - ldrh r0, [r1] - bl ItemIdToBattleMoveId - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0xd - ldr r0, _0813997C - adds r1, r1, r0 - adds r0, r4, #0 - bl StringCopy - movs r0, #1 -_08139972: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08139978: .4byte gUnknown_2021C54 -_0813997C: .4byte gUnknown_82EACC4 - thumb_func_end sub_08139938 - - thumb_func_start sub_08139980 -sub_08139980: @ 0x08139980 - push {r4, r5, lr} - bl sub_0806B004 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r4, #0 - cmp r4, r5 - bhs _081399B6 -_08139990: - movs r0, #0x64 - muls r0, r4, r0 - ldr r1, _081399A8 - adds r0, r0, r1 - movs r1, #4 - bl GetMonData - cmp r0, #1 - bne _081399AC - movs r0, #1 - b _081399B8 - .align 2, 0 -_081399A8: .4byte gUnknown_2024190 -_081399AC: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r5 - blo _08139990 -_081399B6: - movs r0, #0 -_081399B8: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08139980 - - thumb_func_start InMultiBattleRoom -InMultiBattleRoom: @ 0x081399C0 - push {lr} - ldr r0, _081399E0 - ldr r0, [r0] - ldrh r1, [r0, #4] - ldr r0, _081399E4 - cmp r1, r0 - bne _081399EC - ldr r0, _081399E8 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #2 - bne _081399EC - movs r0, #1 - b _081399EE - .align 2, 0 -_081399E0: .4byte gUnknown_3005AEC -_081399E4: .4byte 0x00000F1A -_081399E8: .4byte 0x000040CE -_081399EC: - movs r0, #0 -_081399EE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end InMultiBattleRoom - - thumb_func_start sub_081399F4 -sub_081399F4: @ 0x081399F4 - push {lr} - movs r0, #0 - bl sub_08089C24 - movs r0, #8 - movs r1, #0 - bl SetCameraPanning - pop {r0} - bx r0 - thumb_func_end sub_081399F4 - - thumb_func_start SetDepartmentStoreFloorVar -SetDepartmentStoreFloorVar: @ 0x08139A08 - push {lr} - ldr r0, _08139A24 - ldr r0, [r0] - ldrb r0, [r0, #0x15] - subs r0, #0x10 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #5 - bhi _08139A58 - lsls r0, r0, #2 - ldr r1, _08139A28 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08139A24: .4byte gUnknown_3005AEC -_08139A28: .4byte _08139A2C -_08139A2C: @ jump table - .4byte _08139A58 @ case 0 - .4byte _08139A44 @ case 1 - .4byte _08139A48 @ case 2 - .4byte _08139A4C @ case 3 - .4byte _08139A50 @ case 4 - .4byte _08139A54 @ case 5 -_08139A44: - movs r1, #5 - b _08139A5A -_08139A48: - movs r1, #6 - b _08139A5A -_08139A4C: - movs r1, #7 - b _08139A5A -_08139A50: - movs r1, #8 - b _08139A5A -_08139A54: - movs r1, #0xf - b _08139A5A -_08139A58: - movs r1, #4 -_08139A5A: - ldr r0, _08139A64 - bl VarSet - pop {r0} - bx r0 - .align 2, 0 -_08139A64: .4byte 0x00004043 - thumb_func_end SetDepartmentStoreFloorVar - - thumb_func_start sub_08139A68 -sub_08139A68: @ 0x08139A68 - push {r4, lr} - ldr r2, _08139A98 - movs r0, #0 - strh r0, [r2] - ldr r1, _08139A9C - strh r0, [r1] - ldr r0, _08139AA0 - ldr r3, [r0] - movs r0, #0x14 - ldrsb r0, [r3, r0] - adds r4, r1, #0 - cmp r0, #0xd - bne _08139AE2 - ldrb r0, [r3, #0x15] - subs r0, #0x10 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #4 - bhi _08139AE2 - lsls r0, r0, #2 - ldr r1, _08139AA4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08139A98: .4byte gUnknown_203A82C -_08139A9C: .4byte gUnknown_203A82E -_08139AA0: .4byte gUnknown_3005AEC -_08139AA4: .4byte _08139AA8 -_08139AA8: @ jump table - .4byte _08139ADA @ case 0 - .4byte _08139AD2 @ case 1 - .4byte _08139ACA @ case 2 - .4byte _08139AC2 @ case 3 - .4byte _08139ABC @ case 4 -_08139ABC: - movs r0, #0 - strh r0, [r2] - b _08139AE0 -_08139AC2: - movs r0, #0 - strh r0, [r2] - movs r0, #1 - b _08139AE0 -_08139ACA: - movs r0, #0 - strh r0, [r2] - movs r0, #2 - b _08139AE0 -_08139AD2: - movs r0, #0 - strh r0, [r2] - movs r0, #3 - b _08139AE0 -_08139ADA: - movs r0, #0 - strh r0, [r2] - movs r0, #4 -_08139AE0: - strh r0, [r4] -_08139AE2: - ldrh r0, [r4] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08139A68 - - thumb_func_start ShakeScreenInElevator -ShakeScreenInElevator: @ 0x08139AEC - push {r4, r5, r6, lr} - ldr r0, _08139B24 - movs r1, #9 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _08139B28 - adds r4, r1, r0 - movs r3, #0 - strh r3, [r4, #2] - strh r3, [r4, #4] - movs r6, #1 - strh r6, [r4, #8] - ldr r0, _08139B2C - ldr r1, _08139B30 - ldrh r2, [r0] - ldrh r0, [r1] - cmp r2, r0 - bls _08139B34 - subs r0, r2, r0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - strh r6, [r4, #0xc] - b _08139B3C - .align 2, 0 -_08139B24: .4byte sub_08139B68 -_08139B28: .4byte gUnknown_3005B68 -_08139B2C: .4byte gUnknown_2037282 -_08139B30: .4byte gUnknown_2037284 -_08139B34: - subs r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - strh r3, [r4, #0xc] -_08139B3C: - cmp r5, #8 - bls _08139B42 - movs r5, #8 -_08139B42: - ldr r0, _08139B64 - adds r0, r5, r0 - ldrb r0, [r0] - strh r0, [r4, #0xa] - movs r0, #0 - bl sub_08089C24 - ldrb r1, [r4, #0xc] - adds r0, r5, #0 - bl sub_08139C68 - movs r0, #0x59 - bl sub_080A306C - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08139B64: .4byte gUnknown_8592674 - thumb_func_end ShakeScreenInElevator - - thumb_func_start sub_08139B68 -sub_08139B68: @ 0x08139B68 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _08139BD0 - adds r4, r0, r1 - ldrh r0, [r4, #2] - adds r0, #1 - strh r0, [r4, #2] - movs r1, #2 - ldrsh r0, [r4, r1] - movs r1, #3 - bl __modsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bne _08139BC8 - strh r0, [r4, #2] - ldrh r0, [r4, #4] - adds r0, #1 - strh r0, [r4, #4] - ldrh r0, [r4, #8] - rsbs r0, r0, #0 - strh r0, [r4, #8] - movs r2, #8 - ldrsh r1, [r4, r2] - movs r0, #0 - bl SetCameraPanning - movs r0, #4 - ldrsh r1, [r4, r0] - movs r2, #0xa - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _08139BC8 - movs r0, #0x49 - bl sub_080A306C - adds r0, r5, #0 - bl DestroyTask - bl EnableBothScriptContexts - bl InstallCameraPanAheadCallback -_08139BC8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08139BD0: .4byte gUnknown_3005B68 - thumb_func_end sub_08139B68 - - thumb_func_start sub_08139BD4 -sub_08139BD4: @ 0x08139BD4 - push {r4, r5, r6, lr} - sub sp, #0xc - ldr r4, _08139C38 - ldr r0, _08139C3C - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, #0 - bl SetStandardWindowBorderStyle - ldrb r0, [r4] - ldr r2, _08139C40 - movs r1, #2 - str r1, [sp] - movs r6, #0xff - str r6, [sp, #4] - movs r5, #0 - str r5, [sp, #8] - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - ldrb r0, [r4] - ldr r2, _08139C44 - ldr r1, _08139C48 - ldrh r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r2, [r1] - movs r1, #0x10 - str r1, [sp] - str r6, [sp, #4] - str r5, [sp, #8] - movs r1, #1 - movs r3, #0x13 - bl AddTextPrinterParameterized - ldrb r0, [r4] - bl PutWindowTilemap - ldrb r0, [r4] - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08139C38: .4byte gUnknown_203A82A -_08139C3C: .4byte gUnknown_8592608 -_08139C40: .4byte gUnknown_85CB0BF -_08139C44: .4byte gUnknown_8592610 -_08139C48: .4byte gUnknown_2037282 - thumb_func_end sub_08139BD4 - - thumb_func_start sub_08139C4C -sub_08139C4C: @ 0x08139C4C - push {r4, lr} - ldr r4, _08139C64 - ldrb r0, [r4] - movs r1, #1 - bl sub_08198134 - ldrb r0, [r4] - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08139C64: .4byte gUnknown_203A82A - thumb_func_end sub_08139C4C - - thumb_func_start sub_08139C68 -sub_08139C68: @ 0x08139C68 - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - ldr r4, _08139CB0 - adds r0, r4, #0 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08139CA8 - adds r0, r4, #0 - movs r1, #8 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08139CB4 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r0, #0 - strh r0, [r1, #8] - strh r0, [r1, #0xa] - strh r5, [r1, #0xc] - ldr r0, _08139CB8 - adds r0, r6, r0 - ldrb r0, [r0] - strh r0, [r1, #0xe] -_08139CA8: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08139CB0: .4byte MoveElevatorWindowLights -_08139CB4: .4byte gUnknown_3005B60 -_08139CB8: .4byte gUnknown_859267D - thumb_func_end sub_08139C68 - - thumb_func_start MoveElevatorWindowLights -MoveElevatorWindowLights: @ 0x08139CBC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - lsls r0, r0, #2 - ldr r1, [sp] - adds r0, r0, r1 - lsls r0, r0, #3 - ldr r1, _08139D44 - adds r6, r0, r1 - movs r2, #2 - ldrsh r0, [r6, r2] - cmp r0, #6 - bne _08139DB8 - ldrh r0, [r6] - adds r0, #1 - strh r0, [r6] - movs r1, #4 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _08139D4C - movs r1, #0 - ldr r2, _08139D48 - mov sl, r2 -_08139CF6: - movs r5, #0 - adds r7, r1, #7 - lsls r0, r1, #1 - adds r2, r1, #1 - mov r8, r2 - adds r0, r0, r1 - lsls r0, r0, #1 - mov sb, r0 -_08139D06: - adds r4, r5, #0 - adds r4, #8 - movs r1, #0 - ldrsh r0, [r6, r1] - movs r1, #3 - bl __modsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0xf - add r0, sb - add r0, sl - ldrh r0, [r0] - movs r1, #0xc0 - lsls r1, r1, #4 - adds r2, r1, #0 - orrs r2, r0 - adds r0, r4, #0 - adds r1, r7, #0 - bl MapGridSetMetatileIdAt - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #2 - bls _08139D06 - mov r2, r8 - lsls r0, r2, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #2 - bls _08139CF6 - b _08139D9E - .align 2, 0 -_08139D44: .4byte gUnknown_3005B68 -_08139D48: .4byte gUnknown_8592650 -_08139D4C: - movs r1, #0 - ldr r0, _08139DD0 - mov sl, r0 -_08139D52: - movs r5, #0 - adds r7, r1, #7 - lsls r0, r1, #1 - adds r2, r1, #1 - mov r8, r2 - adds r0, r0, r1 - lsls r0, r0, #1 - mov sb, r0 -_08139D62: - adds r4, r5, #0 - adds r4, #8 - movs r1, #0 - ldrsh r0, [r6, r1] - movs r1, #3 - bl __modsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0xf - add r0, sb - add r0, sl - ldrh r0, [r0] - movs r1, #0xc0 - lsls r1, r1, #4 - adds r2, r1, #0 - orrs r2, r0 - adds r0, r4, #0 - adds r1, r7, #0 - bl MapGridSetMetatileIdAt - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #2 - bls _08139D62 - mov r2, r8 - lsls r0, r2, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #2 - bls _08139D52 -_08139D9E: - bl DrawWholeMapView - movs r0, #0 - strh r0, [r6, #2] - movs r0, #0 - ldrsh r1, [r6, r0] - movs r2, #6 - ldrsh r0, [r6, r2] - cmp r1, r0 - bne _08139DB8 - ldr r0, [sp] - bl DestroyTask -_08139DB8: - ldrh r0, [r6, #2] - adds r0, #1 - strh r0, [r6, #2] - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08139DD0: .4byte gUnknown_8592662 - thumb_func_end MoveElevatorWindowLights - - thumb_func_start sub_08139DD4 -sub_08139DD4: @ 0x08139DD4 - push {r4, r5, r6, r7, lr} - sub sp, #0x18 - ldr r6, _08139E7C - ldrh r0, [r6] - movs r5, #0x64 - muls r0, r5, r0 - ldr r4, _08139E80 - adds r0, r0, r4 - movs r1, #0x27 - bl GetMonData - str r0, [sp] - ldrh r0, [r6] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #0x28 - bl GetMonData - str r0, [sp, #4] - ldrh r0, [r6] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #0x29 - bl GetMonData - str r0, [sp, #8] - ldrh r0, [r6] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #0x2a - bl GetMonData - str r0, [sp, #0xc] - ldrh r0, [r6] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #0x2b - bl GetMonData - str r0, [sp, #0x10] - ldrh r0, [r6] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #0x2c - bl GetMonData - str r0, [sp, #0x14] - ldr r1, _08139E84 - movs r0, #0 - strh r0, [r1] - movs r4, #0 - adds r2, r1, #0 -_08139E3C: - lsls r0, r4, #2 - add r0, sp - ldr r1, [r0] - ldrh r0, [r2] - adds r0, r0, r1 - strh r0, [r2] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #5 - bls _08139E3C - ldr r2, _08139E88 - movs r0, #0 - strh r0, [r2] - ldr r1, _08139E8C - ldr r0, [sp] - strh r0, [r1] - movs r4, #1 - adds r6, r2, #0 - adds r7, r1, #0 -_08139E64: - ldrh r0, [r6] - lsls r0, r0, #2 - mov r2, sp - adds r1, r2, r0 - lsls r0, r4, #2 - adds r5, r2, r0 - ldr r1, [r1] - ldr r0, [r5] - cmp r1, r0 - bhs _08139E90 - strh r4, [r6] - b _08139EA8 - .align 2, 0 -_08139E7C: .4byte gUnknown_2037280 -_08139E80: .4byte gUnknown_2024190 -_08139E84: .4byte gUnknown_2037282 -_08139E88: .4byte gUnknown_2037284 -_08139E8C: .4byte gUnknown_2037286 -_08139E90: - cmp r1, r0 - bne _08139EAA - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08139EAA - strh r4, [r6] - ldr r0, [r5] -_08139EA8: - strh r0, [r7] -_08139EAA: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #5 - bls _08139E64 - add sp, #0x18 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08139DD4 - - thumb_func_start warp0_in_pokecenter -warp0_in_pokecenter: @ 0x08139EBC - push {r4, lr} - ldr r0, _08139EEC - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r1, r1, #8 - ldrb r0, [r0, #1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldr r2, _08139EF0 - ldrh r0, [r2] - ldr r1, _08139EF4 - cmp r0, r1 - beq _08139F02 - adds r4, r1, #0 - adds r1, r2, #0 -_08139EE0: - ldrh r0, [r2] - cmp r0, r3 - bne _08139EF8 - movs r0, #1 - b _08139F04 - .align 2, 0 -_08139EEC: .4byte gUnknown_2031F7C -_08139EF0: .4byte gUnknown_8592686 -_08139EF4: .4byte 0x0000FFFF -_08139EF8: - adds r1, #2 - adds r2, #2 - ldrh r0, [r1] - cmp r0, r4 - bne _08139EE0 -_08139F02: - movs r0, #0 -_08139F04: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end warp0_in_pokecenter - - thumb_func_start sub_08139F0C -sub_08139F0C: @ 0x08139F0C - push {lr} - ldr r0, _08139F20 - ldr r0, [r0] - ldrh r1, [r0, #4] - ldr r0, _08139F24 - cmp r1, r0 - beq _08139F28 - movs r0, #1 - b _08139F2A - .align 2, 0 -_08139F20: .4byte gUnknown_3005AEC -_08139F24: .4byte 0x00003C1A -_08139F28: - movs r0, #0 -_08139F2A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08139F0C - - thumb_func_start sub_08139F30 -sub_08139F30: @ 0x08139F30 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r0, _08139F58 - bl GetVarPointer - adds r5, r0, #0 - ldrh r0, [r5] - adds r4, r4, r0 - strh r4, [r5] - ldrh r0, [r5] - movs r1, #0xa - bl __umodsi3 - strh r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08139F58: .4byte 0x0000402F - thumb_func_end sub_08139F30 - - thumb_func_start sub_08139F5C -sub_08139F5C: @ 0x08139F5C - push {r4, r5, r6, r7, lr} - movs r4, #0 - ldr r0, _08139F7C - bl VarGet - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #9 - bls _08139F70 - b _0813A076 -_08139F70: - lsls r0, r6, #2 - ldr r1, _08139F80 - adds r1, r0, r1 - ldr r1, [r1] - adds r2, r0, #0 - mov pc, r1 - .align 2, 0 -_08139F7C: .4byte 0x0000402F -_08139F80: .4byte _08139F84 -_08139F84: @ jump table - .4byte _08139FAC @ case 0 - .4byte _08139FAC @ case 1 - .4byte _08139FAC @ case 2 - .4byte _08139FAC @ case 3 - .4byte _08139FD0 @ case 4 - .4byte _08139FF0 @ case 5 - .4byte _0813A008 @ case 6 - .4byte _0813A020 @ case 7 - .4byte _0813A038 @ case 8 - .4byte _0813A050 @ case 9 -_08139FAC: - ldr r0, _08139FC8 - ldr r0, [r0] - movs r3, #0xce - lsls r3, r3, #4 - adds r1, r0, r3 - adds r3, r1, r2 - ldr r1, _08139FCC - adds r0, r0, r1 - adds r1, r0, r2 - ldrh r0, [r3] - ldrh r2, [r1] - cmp r0, r2 - bhs _0813A064 - b _0813A074 - .align 2, 0 -_08139FC8: .4byte gUnknown_3005AF0 -_08139FCC: .4byte 0x00000CE2 -_08139FD0: - ldr r0, _08139FE8 - ldr r0, [r0] - ldr r3, _08139FEC - adds r2, r0, r3 - adds r3, #2 -_08139FDA: - adds r1, r0, r3 - ldrh r0, [r2] - ldrh r3, [r1] - cmp r0, r3 - bhs _0813A064 - b _0813A074 - .align 2, 0 -_08139FE8: .4byte gUnknown_3005AF0 -_08139FEC: .4byte 0x00000D0C -_08139FF0: - ldr r0, _08139FFC - ldr r0, [r0] - ldr r1, _0813A000 - adds r2, r0, r1 - ldr r3, _0813A004 - b _08139FDA - .align 2, 0 -_08139FFC: .4byte gUnknown_3005AF0 -_0813A000: .4byte 0x00000DE2 -_0813A004: .4byte 0x00000DE4 -_0813A008: - ldr r0, _0813A014 - ldr r0, [r0] - ldr r1, _0813A018 - adds r2, r0, r1 - ldr r3, _0813A01C - b _08139FDA - .align 2, 0 -_0813A014: .4byte gUnknown_3005AF0 -_0813A018: .4byte 0x00000DC8 -_0813A01C: .4byte 0x00000DCA -_0813A020: - ldr r0, _0813A02C - ldr r0, [r0] - ldr r1, _0813A030 - adds r2, r0, r1 - ldr r3, _0813A034 - b _08139FDA - .align 2, 0 -_0813A02C: .4byte gUnknown_3005AF0 -_0813A030: .4byte 0x00000DDA -_0813A034: .4byte 0x00000DDC -_0813A038: - ldr r0, _0813A044 - ldr r0, [r0] - ldr r1, _0813A048 - adds r2, r0, r1 - ldr r3, _0813A04C - b _08139FDA - .align 2, 0 -_0813A044: .4byte gUnknown_3005AF0 -_0813A048: .4byte 0x00000E04 -_0813A04C: .4byte 0x00000E06 -_0813A050: - ldr r0, _0813A068 - ldr r0, [r0] - ldr r1, _0813A06C - adds r2, r0, r1 - ldr r3, _0813A070 - adds r1, r0, r3 - ldrh r0, [r2] - ldrh r3, [r1] - cmp r0, r3 - blo _0813A074 -_0813A064: - adds r4, r0, #0 - b _0813A076 - .align 2, 0 -_0813A068: .4byte gUnknown_3005AF0 -_0813A06C: .4byte 0x00000E1A -_0813A070: .4byte 0x00000E1C -_0813A074: - ldrh r4, [r1] -_0813A076: - movs r2, #0 - ldr r5, _0813A0B4 - lsls r0, r6, #1 - adds r1, r0, r5 - ldrb r1, [r1] - adds r3, r0, #0 - ldr r7, _0813A0B8 - cmp r1, r4 - bhs _0813A09E - adds r1, r3, #0 -_0813A08A: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #1 - bhi _0813A09E - adds r0, r2, r1 - adds r0, r0, r5 - ldrb r0, [r0] - cmp r0, r4 - blo _0813A08A -_0813A09E: - adds r0, r3, r6 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r7 - ldr r0, [r0] - bl ShowFieldMessage - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0813A0B4: .4byte gUnknown_8592724 -_0813A0B8: .4byte gUnknown_85926AC - thumb_func_end sub_08139F5C - - thumb_func_start sub_0813A0BC -sub_0813A0BC: @ 0x0813A0BC - push {r4, r5, r6, r7, lr} - ldr r0, _0813A0F8 - bl VarGet - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, _0813A0FC - ldr r0, [r0] - ldr r1, _0813A100 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r4, r0, #0x1e - cmp r5, #2 - bne _0813A114 - movs r0, #0xa9 - lsls r0, r0, #1 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0813A114 - ldr r1, _0813A104 - movs r0, #5 - strh r0, [r1] - ldr r1, _0813A108 - movs r0, #4 - strh r0, [r1] - b _0813A14C - .align 2, 0 -_0813A0F8: .4byte 0x000040CE -_0813A0FC: .4byte gUnknown_3005AF0 -_0813A100: .4byte 0x00000CA9 -_0813A104: .4byte gUnknown_2037282 -_0813A108: .4byte gUnknown_2037284 -_0813A10C: - movs r0, #4 - strh r0, [r6] - adds r0, r3, #5 - b _0813A14A -_0813A114: - movs r3, #0 - ldr r6, _0813A154 - ldr r7, _0813A158 - lsls r1, r4, #1 - lsls r2, r5, #2 - ldr r4, _0813A15C - ldr r0, _0813A160 - ldr r0, [r0] - adds r1, r1, r2 - movs r2, #0xce - lsls r2, r2, #4 - adds r0, r0, r2 - adds r0, r0, r1 - ldrh r1, [r0] -_0813A130: - lsls r0, r3, #1 - adds r0, r0, r4 - ldrh r0, [r0] - cmp r0, r1 - bhi _0813A10C - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #8 - bls _0813A130 - movs r0, #4 - strh r0, [r6] - movs r0, #0xc -_0813A14A: - strh r0, [r7] -_0813A14C: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0813A154: .4byte gUnknown_2037282 -_0813A158: .4byte gUnknown_2037284 -_0813A15C: .4byte gUnknown_8592738 -_0813A160: .4byte gUnknown_3005AF0 - thumb_func_end sub_0813A0BC - - thumb_func_start sub_0813A164 -sub_0813A164: @ 0x0813A164 - push {r4, lr} - ldr r0, _0813A194 - movs r1, #8 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _0813A198 - adds r3, r0, r1 - ldr r1, _0813A19C - ldrh r0, [r1] - strh r0, [r3, #0x1e] - ldrh r0, [r1] - cmp r0, #0xc - bls _0813A18A - b _0813A302 -_0813A18A: - lsls r0, r0, #2 - ldr r1, _0813A1A0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813A194: .4byte sub_0813A318 -_0813A198: .4byte gUnknown_3005B60 -_0813A19C: .4byte gUnknown_2037280 -_0813A1A0: .4byte _0813A1A4 -_0813A1A4: @ jump table - .4byte _0813A1D8 @ case 0 - .4byte _0813A1E6 @ case 1 - .4byte _0813A1FE @ case 2 - .4byte _0813A212 @ case 3 - .4byte _0813A22C @ case 4 - .4byte _0813A244 @ case 5 - .4byte _0813A25E @ case 6 - .4byte _0813A278 @ case 7 - .4byte _0813A296 @ case 8 - .4byte _0813A2B0 @ case 9 - .4byte _0813A2B0 @ case 10 - .4byte _0813A2CA @ case 11 - .4byte _0813A2E4 @ case 12 -_0813A1D8: - movs r1, #0 - movs r0, #1 - strh r0, [r3, #8] - strh r0, [r3, #0xa] - strh r0, [r3, #0xc] - strh r0, [r3, #0xe] - b _0813A2F8 -_0813A1E6: - movs r1, #0 - movs r0, #5 - strh r0, [r3, #8] - movs r0, #8 - strh r0, [r3, #0xa] - movs r0, #1 - strh r0, [r3, #0xc] - strh r0, [r3, #0xe] - movs r0, #9 - strh r0, [r3, #0x10] - movs r0, #0xa - b _0813A2FA -_0813A1FE: - movs r2, #0 - movs r0, #6 - strh r0, [r3, #8] - movs r1, #0xc - strh r1, [r3, #0xa] - movs r0, #1 - strh r0, [r3, #0xc] - strh r0, [r3, #0xe] - movs r0, #7 - b _0813A28C -_0813A212: - movs r1, #0 - movs r0, #6 - strh r0, [r3, #8] - movs r0, #0xb - strh r0, [r3, #0xa] - movs r0, #0xe - strh r0, [r3, #0xc] - movs r0, #1 - strh r0, [r3, #0xe] - movs r0, #0xf - strh r0, [r3, #0x10] - movs r0, #0xc - b _0813A2FA -_0813A22C: - movs r1, #0 - movs r0, #6 - strh r0, [r3, #8] - strh r0, [r3, #0xa] - movs r0, #0xe - strh r0, [r3, #0xc] - movs r0, #1 - strh r0, [r3, #0xe] - movs r0, #0xf - strh r0, [r3, #0x10] - movs r0, #0xc - b _0813A2FA -_0813A244: - movs r1, #0 - movs r0, #6 - strh r0, [r3, #8] - movs r0, #7 - strh r0, [r3, #0xa] - movs r0, #0xe - strh r0, [r3, #0xc] - movs r0, #1 - strh r0, [r3, #0xe] - movs r0, #0xf - strh r0, [r3, #0x10] - movs r0, #0xc - b _0813A2FA -_0813A25E: - movs r1, #0 - movs r0, #6 - strh r0, [r3, #8] - movs r0, #0xa - strh r0, [r3, #0xa] - movs r0, #0xe - strh r0, [r3, #0xc] - movs r0, #1 - strh r0, [r3, #0xe] - movs r0, #0xf - strh r0, [r3, #0x10] - movs r0, #0xc - b _0813A2FA -_0813A278: - movs r2, #0 - movs r0, #6 - strh r0, [r3, #8] - movs r1, #0xc - strh r1, [r3, #0xa] - movs r0, #0xf - strh r0, [r3, #0xc] - movs r0, #1 - strh r0, [r3, #0xe] - movs r0, #0xe -_0813A28C: - strh r0, [r3, #0x10] - strh r1, [r3, #0x12] - strh r2, [r3, #0x14] - strh r4, [r3, #0x26] - b _0813A30E -_0813A296: - movs r1, #0 - movs r0, #6 - strh r0, [r3, #8] - movs r0, #0xa - strh r0, [r3, #0xa] - movs r0, #0x11 - strh r0, [r3, #0xc] - movs r0, #1 - strh r0, [r3, #0xe] - movs r0, #0xb - strh r0, [r3, #0x10] - movs r0, #0xc - b _0813A2FA -_0813A2B0: - movs r1, #0 - movs r0, #6 - strh r0, [r3, #8] - movs r0, #0xb - strh r0, [r3, #0xa] - movs r0, #0xf - strh r0, [r3, #0xc] - movs r0, #1 - strh r0, [r3, #0xe] - movs r0, #0xe - strh r0, [r3, #0x10] - movs r0, #0xc - b _0813A2FA -_0813A2CA: - movs r1, #0 - movs r0, #6 - strh r0, [r3, #8] - movs r0, #7 - strh r0, [r3, #0xa] - movs r0, #0x13 - strh r0, [r3, #0xc] - movs r0, #1 - strh r0, [r3, #0xe] - movs r0, #0xa - strh r0, [r3, #0x10] - movs r0, #0xc - b _0813A2FA -_0813A2E4: - movs r1, #0 - movs r0, #6 - strh r0, [r3, #8] - movs r0, #7 - strh r0, [r3, #0xa] - movs r0, #0x11 - strh r0, [r3, #0xc] - movs r0, #1 - strh r0, [r3, #0xe] - movs r0, #0xc -_0813A2F8: - strh r0, [r3, #0x10] -_0813A2FA: - strh r0, [r3, #0x12] - strh r1, [r3, #0x14] - strh r4, [r3, #0x26] - b _0813A30E -_0813A302: - ldr r1, _0813A314 - movs r0, #0x7f - strh r0, [r1] - adds r0, r4, #0 - bl DestroyTask -_0813A30E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813A314: .4byte gUnknown_2037290 - thumb_func_end sub_0813A164 - - thumb_func_start sub_0813A318 -sub_0813A318: @ 0x0813A318 - push {r4, r5, r6, r7, lr} - sub sp, #0x20 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - ldr r1, _0813A410 - adds r5, r0, r1 - bl sub_080987DC - ldr r1, _0813A414 - movs r0, #0 - strh r0, [r1] - ldr r1, _0813A418 - movs r0, #0x40 - strb r0, [r1] - ldrh r0, [r5, #0x1e] - movs r1, #0 - bl sub_0813AAAC - ldrb r0, [r5, #0x1e] - movs r1, #0 - bl sub_0813AD2C - ldrb r2, [r5, #0xc] - ldrb r3, [r5, #0xe] - ldrb r0, [r5, #0x10] - str r0, [sp] - ldrb r0, [r5, #0x12] - str r0, [sp, #4] - movs r0, #0xf - str r0, [sp, #8] - movs r0, #0x5c - str r0, [sp, #0xc] - add r0, sp, #0x10 - movs r1, #0 - bl CreateWindowTemplate - ldr r0, [sp, #0x10] - ldr r1, [sp, #0x14] - str r0, [sp, #0x18] - str r1, [sp, #0x1c] - add r0, sp, #0x18 - bl AddWindow - movs r4, #0 - strh r0, [r5, #0x22] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl SetStandardWindowBorderStyle - ldr r6, _0813A41C - movs r1, #0xa - ldrsh r0, [r5, r1] - lsls r0, r0, #3 - bl AllocZeroed - str r0, [r6] - ldr r0, _0813A420 - strh r4, [r0] - bl sub_0813A434 - movs r3, #0 - movs r1, #0xa - ldrsh r0, [r5, r1] - cmp r3, r0 - bge _0813A3CE - mov ip, r6 - ldr r6, _0813A424 - ldr r4, _0813A428 -_0813A3A8: - mov r1, ip - ldr r0, [r1] - lsls r2, r3, #3 - adds r2, r2, r0 - lsls r1, r3, #2 - ldrh r0, [r4] - lsls r0, r0, #6 - adds r1, r1, r0 - adds r1, r1, r6 - ldr r0, [r1] - str r0, [r2] - str r3, [r2, #4] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - movs r1, #0xa - ldrsh r0, [r5, r1] - cmp r3, r0 - blt _0813A3A8 -_0813A3CE: - ldr r4, _0813A42C - ldrh r0, [r5, #0xa] - strh r0, [r4, #0xc] - ldrh r0, [r5, #8] - strh r0, [r4, #0xe] - ldrh r0, [r5, #0x22] - strb r0, [r4, #0x10] - adds r0, r7, #0 - bl sub_0813A69C - ldrh r1, [r5, #0x16] - ldrh r2, [r5, #0x18] - adds r0, r4, #0 - bl ListMenuInit - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x24] - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, _0813A410 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0813A430 - str r1, [r0] - add sp, #0x20 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0813A410: .4byte gUnknown_3005B60 -_0813A414: .4byte gUnknown_203A834 -_0813A418: .4byte gUnknown_203A838 -_0813A41C: .4byte gUnknown_203A830 -_0813A420: .4byte gUnknown_203A836 -_0813A424: .4byte gUnknown_859274C -_0813A428: .4byte gUnknown_2037280 -_0813A42C: .4byte gUnknown_3005F10 -_0813A430: .4byte sub_0813A4F4 - thumb_func_end sub_0813A318 - - thumb_func_start sub_0813A434 -sub_0813A434: @ 0x0813A434 - ldr r1, _0813A468 - ldr r0, _0813A46C - ldr r0, [r0] - str r0, [r1] - ldr r0, _0813A470 - str r0, [r1, #4] - movs r0, #0 - str r0, [r1, #8] - movs r2, #0 - movs r0, #1 - strh r0, [r1, #0xc] - strh r0, [r1, #0xe] - strb r2, [r1, #0x10] - strb r2, [r1, #0x11] - movs r0, #8 - strb r0, [r1, #0x12] - strb r2, [r1, #0x13] - movs r0, #0x20 - strb r0, [r1, #0x14] - movs r0, #0x31 - strb r0, [r1, #0x15] - movs r0, #0 - strb r0, [r1, #0x16] - movs r0, #1 - strb r0, [r1, #0x17] - bx lr - .align 2, 0 -_0813A468: .4byte gUnknown_3005F10 -_0813A46C: .4byte gUnknown_203A830 -_0813A470: .4byte sub_0813A474 - thumb_func_end sub_0813A434 - - thumb_func_start sub_0813A474 -sub_0813A474: @ 0x0813A474 - push {r4, r5, lr} - sub sp, #4 - movs r0, #5 - bl sub_080A306C - ldr r0, _0813A4E4 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _0813A4DC - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _0813A4E8 - adds r4, r4, r0 - ldrh r0, [r4, #0x24] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, sp - movs r2, #0 - bl ListMenuGetScrollAndRow - ldr r1, _0813A4EC - mov r0, sp - ldrh r0, [r0] - strh r0, [r1] - ldrh r0, [r4, #0x24] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, sp - bl ListMenuGetCurrentItemArrayId - ldrh r0, [r4, #0x1e] - ldr r5, _0813A4F0 - ldrh r1, [r5] - bl sub_0813AC90 - ldrh r0, [r4, #0x1e] - mov r1, sp - ldrh r1, [r1] - bl sub_0813AAAC - ldrb r0, [r4, #0x1e] - mov r1, sp - ldrh r1, [r1] - bl sub_0813AD6C - mov r0, sp - ldrh r0, [r0] - strh r0, [r5] -_0813A4DC: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0813A4E4: .4byte sub_0813A4F4 -_0813A4E8: .4byte gUnknown_3005B60 -_0813A4EC: .4byte gUnknown_203A834 -_0813A4F0: .4byte gUnknown_203A836 - thumb_func_end sub_0813A474 - - thumb_func_start sub_0813A4F4 -sub_0813A4F4: @ 0x0813A4F4 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _0813A520 - adds r6, r0, r1 - ldrh r0, [r6, #0x24] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl ListMenu_ProcessInput - adds r4, r0, #0 - movs r0, #2 - rsbs r0, r0, #0 - cmp r4, r0 - beq _0813A524 - adds r0, #1 - cmp r4, r0 - bne _0813A538 - b _0813A56E - .align 2, 0 -_0813A520: .4byte gUnknown_3005B60 -_0813A524: - ldr r1, _0813A534 - movs r0, #0x7f - strh r0, [r1] - movs r0, #5 - bl sub_080A306C - b _0813A554 - .align 2, 0 -_0813A534: .4byte gUnknown_2037290 -_0813A538: - ldr r0, _0813A55C - strh r4, [r0] - movs r0, #5 - bl sub_080A306C - movs r1, #0x14 - ldrsh r0, [r6, r1] - cmp r0, #0 - beq _0813A554 - movs r1, #0xa - ldrsh r0, [r6, r1] - subs r0, #1 - cmp r4, r0 - bne _0813A560 -_0813A554: - adds r0, r5, #0 - bl sub_0813A578 - b _0813A56E - .align 2, 0 -_0813A55C: .4byte gUnknown_2037290 -_0813A560: - adds r0, r5, #0 - bl sub_0813A740 - ldr r0, _0813A574 - str r0, [r6] - bl EnableBothScriptContexts -_0813A56E: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0813A574: .4byte sub_0813A608 - thumb_func_end sub_0813A4F4 - - thumb_func_start sub_0813A578 -sub_0813A578: @ 0x0813A578 - push {r4, r5, lr} - sub sp, #4 - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - ldr r0, _0813A600 - adds r4, r4, r0 - ldrh r0, [r4, #0x24] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, sp - bl ListMenuGetCurrentItemArrayId - ldrh r0, [r4, #0x1e] - mov r1, sp - ldrh r1, [r1] - bl sub_0813AC90 - adds r0, r5, #0 - bl sub_0813A740 - ldrh r0, [r4, #0x24] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - movs r2, #0 - bl DestroyListMenuTask - ldr r0, _0813A604 - ldr r0, [r0] - bl Free - ldrh r0, [r4, #0x22] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - bl sub_08198134 - ldrh r0, [r4, #0x22] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl FillWindowPixelBuffer - ldrh r0, [r4, #0x22] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - bl CopyWindowToVram - ldrh r0, [r4, #0x22] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl RemoveWindow - adds r0, r5, #0 - bl DestroyTask - bl EnableBothScriptContexts - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0813A600: .4byte gUnknown_3005B60 -_0813A604: .4byte gUnknown_203A830 - thumb_func_end sub_0813A578 - - thumb_func_start sub_0813A608 -sub_0813A608: @ 0x0813A608 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0813A630 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r2, #0x14 - ldrsh r0, [r1, r2] - cmp r0, #1 - beq _0813A62C - cmp r0, #2 - bne _0813A62C - movs r0, #1 - strh r0, [r1, #0x14] - ldr r0, _0813A634 - str r0, [r1] -_0813A62C: - pop {r0} - bx r0 - .align 2, 0 -_0813A630: .4byte gUnknown_3005B60 -_0813A634: .4byte sub_0813A66C - thumb_func_end sub_0813A608 - - thumb_func_start sub_0813A638 -sub_0813A638: @ 0x0813A638 - push {lr} - ldr r0, _0813A650 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xff - bne _0813A654 - bl EnableBothScriptContexts - b _0813A664 - .align 2, 0 -_0813A650: .4byte sub_0813A608 -_0813A654: - ldr r0, _0813A668 - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x14] - adds r0, #1 - strh r0, [r1, #0x14] -_0813A664: - pop {r0} - bx r0 - .align 2, 0 -_0813A668: .4byte gUnknown_3005B60 - thumb_func_end sub_0813A638 - - thumb_func_start sub_0813A66C -sub_0813A66C: @ 0x0813A66C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_080987DC - adds r0, r4, #0 - bl sub_0813A69C - ldr r1, _0813A694 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0813A698 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813A694: .4byte gUnknown_3005B60 -_0813A698: .4byte sub_0813A4F4 - thumb_func_end sub_0813A66C - - thumb_func_start sub_0813A69C -sub_0813A69C: @ 0x0813A69C - push {r4, r5, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _0813A734 - adds r4, r1, r0 - mov r1, sp - ldr r0, _0813A738 - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} - ldr r0, [r0] - str r0, [r1] - movs r0, #8 - ldrsh r1, [r4, r0] - movs r2, #0xa - ldrsh r0, [r4, r2] - cmp r1, r0 - beq _0813A72C - mov r2, sp - movs r3, #0x10 - ldrsh r1, [r4, r3] - lsrs r0, r1, #0x1f - adds r1, r1, r0 - asrs r1, r1, #1 - lsls r1, r1, #3 - adds r1, #0xc - movs r5, #0xc - ldrsh r0, [r4, r5] - subs r0, #1 - lsls r0, r0, #3 - adds r1, r1, r0 - movs r3, #0 - strb r1, [r2, #1] - mov r1, sp - movs r0, #8 - strb r0, [r1, #2] - movs r0, #0x10 - ldrsh r1, [r4, r0] - lsrs r0, r1, #0x1f - adds r1, r1, r0 - asrs r1, r1, #1 - lsls r1, r1, #3 - adds r1, #0xc - movs r5, #0xc - ldrsh r0, [r4, r5] - subs r0, #1 - lsls r0, r0, #3 - adds r1, r1, r0 - strb r1, [r2, #4] - mov r1, sp - movs r2, #0x12 - ldrsh r0, [r4, r2] - lsls r0, r0, #3 - adds r0, #0xa - strb r0, [r1, #5] - mov r0, sp - strh r3, [r0, #6] - mov r2, sp - ldrh r0, [r4, #0xa] - ldrh r1, [r4, #8] - subs r0, r0, r1 - strh r0, [r2, #8] - ldr r1, _0813A73C - mov r0, sp - bl AddScrollIndicatorArrowPair - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x20] -_0813A72C: - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0813A734: .4byte gUnknown_3005B60 -_0813A738: .4byte gUnknown_8592A8C -_0813A73C: .4byte gUnknown_203A834 - thumb_func_end sub_0813A69C - - thumb_func_start sub_0813A740 -sub_0813A740: @ 0x0813A740 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _0813A76C - adds r2, r1, r0 - movs r0, #8 - ldrsh r1, [r2, r0] - movs r3, #0xa - ldrsh r0, [r2, r3] - cmp r1, r0 - beq _0813A766 - ldrh r0, [r2, #0x20] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl RemoveScrollIndicatorArrowPair -_0813A766: - pop {r0} - bx r0 - .align 2, 0 -_0813A76C: .4byte gUnknown_3005B60 - thumb_func_end sub_0813A740 - - thumb_func_start sub_0813A770 -sub_0813A770: @ 0x0813A770 - bx lr - .align 2, 0 - thumb_func_end sub_0813A770 - - thumb_func_start sub_0813A774 -sub_0813A774: @ 0x0813A774 - push {r4, r5, r6, lr} - movs r4, #0 - ldr r6, _0813A79C - ldr r0, _0813A7A0 - adds r5, r0, #0 -_0813A77E: - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r0, [r0, #0x13] - cmp r0, #0 - bne _0813A7A4 - subs r0, r5, r4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0 - bl VarSet - b _0813A7B0 - .align 2, 0 -_0813A79C: .4byte gUnknown_20226A0 -_0813A7A0: .4byte 0x0000401F -_0813A7A4: - subs r0, r5, r4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x69 - bl VarSet -_0813A7B0: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #1 - bls _0813A77E - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_0813A774 - - thumb_func_start sub_0813A7C0 -sub_0813A7C0: @ 0x0813A7C0 - push {lr} - ldr r1, _0813A7F0 - ldrh r0, [r1] - cmp r0, #5 - bls _0813A7CE - movs r0, #0 - strh r0, [r1] -_0813A7CE: - ldrh r1, [r1] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0813A7F4 - adds r0, r0, r1 - bl GetNature - lsls r0, r0, #0x18 - ldr r1, _0813A7F8 - lsrs r0, r0, #0x16 - adds r0, r0, r1 - ldr r0, [r0] - bl ShowFieldMessage - pop {r0} - bx r0 - .align 2, 0 -_0813A7F0: .4byte gUnknown_2037280 -_0813A7F4: .4byte gUnknown_2024190 -_0813A7F8: .4byte gUnknown_8592A9C - thumb_func_end sub_0813A7C0 - - thumb_func_start UpdateFrontierGambler -UpdateFrontierGambler: @ 0x0813A7FC - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r0, _0813A824 - bl GetVarPointer - adds r5, r0, #0 - ldrh r0, [r5] - adds r4, r4, r0 - strh r4, [r5] - ldrh r0, [r5] - movs r1, #0xc - bl __umodsi3 - strh r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0813A824: .4byte 0x00004030 - thumb_func_end UpdateFrontierGambler - - thumb_func_start sub_0813A828 -sub_0813A828: @ 0x0813A828 - push {r4, lr} - ldr r0, _0813A850 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r1, _0813A854 - lsls r0, r4, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl ShowFieldMessage - ldr r0, _0813A858 - adds r1, r4, #0 - bl VarSet - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813A850: .4byte 0x00004030 -_0813A854: .4byte gUnknown_8592B00 -_0813A858: .4byte 0x00004031 - thumb_func_end sub_0813A828 - - thumb_func_start sub_0813A85C -sub_0813A85C: @ 0x0813A85C - push {r4, lr} - ldr r4, _0813A878 - ldr r0, _0813A87C - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0xe - adds r0, r0, r4 - ldr r0, [r0] - bl ShowFieldMessage - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813A878: .4byte gUnknown_8592B30 -_0813A87C: .4byte 0x00004031 - thumb_func_end sub_0813A85C - - thumb_func_start sub_0813A880 -sub_0813A880: @ 0x0813A880 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r0, _0813A8DC - bl VarGet - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - ldr r0, _0813A8E0 - bl VarGet - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r0, _0813A8E4 - bl VarGet - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r4, _0813A8E8 - adds r0, r4, #0 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bne _0813A8F8 - ldr r1, _0813A8EC - lsls r0, r6, #1 - adds r0, r0, r1 - ldrh r1, [r0] - lsls r0, r5, #8 - adds r0, r0, r7 - cmp r1, r0 - bne _0813A8F8 - mov r0, r8 - cmp r0, #0 - beq _0813A8F0 - adds r0, r4, #0 - movs r1, #2 - bl VarSet - b _0813A8F8 - .align 2, 0 -_0813A8DC: .4byte 0x000040CE -_0813A8E0: .4byte 0x00004031 -_0813A8E4: .4byte 0x000040CF -_0813A8E8: .4byte 0x00004033 -_0813A8EC: .4byte gUnknown_8592B60 -_0813A8F0: - adds r0, r4, #0 - movs r1, #3 - bl VarSet -_0813A8F8: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0813A880 - - thumb_func_start sub_0813A904 -sub_0813A904: @ 0x0813A904 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0xc - ldr r5, _0813A974 - ldr r0, _0813A978 - bl AddWindow - strb r0, [r5] - ldrb r0, [r5] - movs r1, #0 - bl SetStandardWindowBorderStyle - ldrb r0, [r5] - ldr r2, _0813A97C - movs r4, #0 - str r4, [sp] - movs r1, #0xff - mov r8, r1 - str r1, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #0x38 - bl AddTextPrinterParameterized - ldr r6, _0813A980 - ldr r0, _0813A984 - ldr r0, [r0] - ldr r1, _0813A988 - adds r0, r0, r1 - ldrh r1, [r0] - adds r0, r6, #0 - movs r2, #2 - movs r3, #4 - bl sub_080089D8 - ldrb r0, [r5] - str r4, [sp] - mov r1, r8 - str r1, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - adds r2, r6, #0 - movs r3, #0x18 - bl AddTextPrinterParameterized - ldrb r0, [r5] - movs r1, #2 - bl CopyWindowToVram - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0813A974: .4byte gUnknown_203A839 -_0813A978: .4byte gUnknown_8592B78 -_0813A97C: .4byte gUnknown_85CB0C8 -_0813A980: .4byte gUnknown_2021C40 -_0813A984: .4byte gUnknown_3005AF0 -_0813A988: .4byte 0x00000EB8 - thumb_func_end sub_0813A904 - - thumb_func_start sub_0813A98C -sub_0813A98C: @ 0x0813A98C - push {r4, lr} - sub sp, #0xc - ldr r4, _0813A9C4 - ldr r0, _0813A9C8 - ldr r0, [r0] - ldr r1, _0813A9CC - adds r0, r0, r1 - ldrh r1, [r0] - adds r0, r4, #0 - movs r2, #2 - movs r3, #4 - bl sub_080089D8 - ldr r0, _0813A9D0 - ldrb r0, [r0] - movs r1, #0 - str r1, [sp] - str r1, [sp, #4] - str r1, [sp, #8] - movs r1, #1 - adds r2, r4, #0 - movs r3, #0x18 - bl AddTextPrinterParameterized - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813A9C4: .4byte gUnknown_2021C40 -_0813A9C8: .4byte gUnknown_3005AF0 -_0813A9CC: .4byte 0x00000EB8 -_0813A9D0: .4byte gUnknown_203A839 - thumb_func_end sub_0813A98C - - thumb_func_start sub_0813A9D4 -sub_0813A9D4: @ 0x0813A9D4 - push {r4, lr} - ldr r4, _0813A9EC - ldrb r0, [r4] - movs r1, #1 - bl sub_08198134 - ldrb r0, [r4] - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813A9EC: .4byte gUnknown_203A839 - thumb_func_end sub_0813A9D4 - - thumb_func_start sub_0813A9F0 -sub_0813A9F0: @ 0x0813A9F0 - push {lr} - ldr r0, _0813AA08 - ldr r0, [r0] - ldr r2, _0813AA0C - adds r1, r0, r2 - ldr r0, _0813AA10 - ldrh r2, [r1] - ldrh r0, [r0] - cmp r2, r0 - bhs _0813AA14 - movs r0, #0 - b _0813AA16 - .align 2, 0 -_0813AA08: .4byte gUnknown_3005AF0 -_0813AA0C: .4byte 0x00000EB8 -_0813AA10: .4byte gUnknown_2037280 -_0813AA14: - subs r0, r2, r0 -_0813AA16: - strh r0, [r1] - pop {r0} - bx r0 - thumb_func_end sub_0813A9F0 - - thumb_func_start sub_0813AA1C -sub_0813AA1C: @ 0x0813AA1C - push {lr} - ldr r0, _0813AA38 - ldr r0, [r0] - ldr r1, _0813AA3C - adds r2, r0, r1 - ldrh r1, [r2] - ldr r0, _0813AA40 - ldrh r0, [r0] - adds r1, r1, r0 - ldr r0, _0813AA44 - cmp r1, r0 - ble _0813AA48 - strh r0, [r2] - b _0813AA4A - .align 2, 0 -_0813AA38: .4byte gUnknown_3005AF0 -_0813AA3C: .4byte 0x00000EB8 -_0813AA40: .4byte gUnknown_2037280 -_0813AA44: .4byte 0x0000270F -_0813AA48: - strh r1, [r2] -_0813AA4A: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0813AA1C - - thumb_func_start sub_0813AA50 -sub_0813AA50: @ 0x0813AA50 - ldr r0, _0813AA5C - ldr r0, [r0] - ldr r1, _0813AA60 - adds r0, r0, r1 - ldrh r0, [r0] - bx lr - .align 2, 0 -_0813AA5C: .4byte gUnknown_3005AF0 -_0813AA60: .4byte 0x00000EB8 - thumb_func_end sub_0813AA50 - - thumb_func_start sub_0813AA64 -sub_0813AA64: @ 0x0813AA64 - push {r4, lr} - ldr r4, _0813AA88 - ldr r0, _0813AA8C - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, #0 - bl SetStandardWindowBorderStyle - ldrb r0, [r4] - movs r1, #2 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813AA88: .4byte gUnknown_203A83A -_0813AA8C: .4byte gUnknown_8592B80 - thumb_func_end sub_0813AA64 - - thumb_func_start sub_0813AA90 -sub_0813AA90: @ 0x0813AA90 - push {r4, lr} - ldr r4, _0813AAA8 - ldrb r0, [r4] - movs r1, #1 - bl sub_08198134 - ldrb r0, [r4] - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813AAA8: .4byte gUnknown_203A83A - thumb_func_end sub_0813AA90 - - thumb_func_start sub_0813AAAC -sub_0813AAAC: @ 0x0813AAAC - push {r4, r5, lr} - sub sp, #0x10 - lsls r0, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - lsrs r4, r0, #0x10 - ldr r1, _0813AAE8 - adds r0, r0, r1 - lsrs r0, r0, #0x10 - cmp r0, #3 - bls _0813AAC4 - b _0813AC0E -_0813AAC4: - movs r0, #0xb0 - str r0, [sp] - movs r0, #0x20 - str r0, [sp, #4] - movs r0, #0 - movs r1, #0x11 - movs r2, #0 - movs r3, #0 - bl sub_08003A34 - cmp r4, #4 - beq _0813AB34 - cmp r4, #4 - bgt _0813AAEC - cmp r4, #3 - beq _0813AAF6 - b _0813AC0E - .align 2, 0 -_0813AAE8: .4byte 0xFFFD0000 -_0813AAEC: - cmp r4, #5 - beq _0813ABA8 - cmp r4, #6 - beq _0813ABE0 - b _0813AC0E -_0813AAF6: - ldr r1, _0813AB28 - lsls r0, r5, #2 - adds r0, r0, r1 - ldr r2, [r0] - movs r0, #0 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - str r4, [sp, #0xc] - movs r0, #0 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized2 - ldr r1, _0813AB2C - lsls r0, r5, #1 - adds r1, r0, r1 - ldrh r5, [r1] - ldr r0, _0813AB30 - cmp r5, r0 - beq _0813AB64 - b _0813AB78 - .align 2, 0 -_0813AB28: .4byte gUnknown_8592BCC -_0813AB2C: .4byte gUnknown_8592B88 -_0813AB30: .4byte 0x0000FFFF -_0813AB34: - ldr r1, _0813AB6C - lsls r0, r5, #2 - adds r0, r0, r1 - ldr r2, [r0] - movs r0, #0 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - movs r0, #3 - str r0, [sp, #0xc] - movs r0, #0 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized2 - ldr r1, _0813AB70 - lsls r0, r5, #1 - adds r1, r0, r1 - ldrh r5, [r1] - ldr r0, _0813AB74 - cmp r5, r0 - bne _0813AB78 -_0813AB64: - ldrh r0, [r1] - bl sub_0813AC20 - b _0813AC0E - .align 2, 0 -_0813AB6C: .4byte gUnknown_8592BF8 -_0813AB70: .4byte gUnknown_8592B9E -_0813AB74: .4byte 0x0000FFFF -_0813AB78: - ldr r4, _0813ABA0 - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl FreeSpritePaletteByTag - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - str r4, [sp] - str r4, [sp, #4] - movs r1, #0x21 - movs r2, #0x58 - movs r3, #0 - bl AddDecorationIconObject - ldr r1, _0813ABA4 - strb r0, [r1] - b _0813AC0E - .align 2, 0 -_0813ABA0: .4byte 0x0000157C -_0813ABA4: .4byte gUnknown_203A838 -_0813ABA8: - ldr r1, _0813ABD8 - lsls r0, r5, #2 - adds r0, r0, r1 - ldr r2, [r0] - movs r0, #0 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - movs r0, #3 - str r0, [sp, #0xc] - movs r0, #0 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized2 - ldr r1, _0813ABDC - lsls r0, r5, #1 - adds r0, r0, r1 - ldrh r0, [r0] - bl sub_0813AC20 - b _0813AC0E - .align 2, 0 -_0813ABD8: .4byte gUnknown_8592C10 -_0813ABDC: .4byte gUnknown_8592BAA -_0813ABE0: - ldr r1, _0813AC18 - lsls r0, r5, #2 - adds r0, r0, r1 - ldr r2, [r0] - movs r0, #0 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - movs r0, #3 - str r0, [sp, #0xc] - movs r0, #0 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized2 - ldr r1, _0813AC1C - lsls r0, r5, #1 - adds r0, r0, r1 - ldrh r0, [r0] - bl sub_0813AC20 -_0813AC0E: - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0813AC18: .4byte gUnknown_8592C2C -_0813AC1C: .4byte gUnknown_8592BB8 - thumb_func_end sub_0813AAAC - - thumb_func_start sub_0813AC20 -sub_0813AC20: @ 0x0813AC20 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - ldr r4, _0813AC84 - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl FreeSpritePaletteByTag - adds r0, r4, #0 - adds r1, r4, #0 - adds r2, r5, #0 - bl AddItemIconSprite - ldr r4, _0813AC88 - strb r0, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _0813AC7E - ldr r3, _0813AC8C - ldrb r0, [r4] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrb r2, [r1, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #5] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r1, #0x24 - strh r1, [r0, #0x20] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r1, #0x5c - strh r1, [r0, #0x22] -_0813AC7E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0813AC84: .4byte 0x0000157C -_0813AC88: .4byte gUnknown_203A838 -_0813AC8C: .4byte gUnknown_20205AC - thumb_func_end sub_0813AC20 - - thumb_func_start sub_0813AC90 -sub_0813AC90: @ 0x0813AC90 - push {lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r2, _0813ACC0 - ldrb r0, [r2] - cmp r0, #0x40 - beq _0813ACBC - cmp r1, #6 - bgt _0813ACB6 - cmp r1, #3 - blt _0813ACB6 - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0813ACC4 - adds r0, r0, r1 - bl DestroySpriteAndFreeResources -_0813ACB6: - ldr r1, _0813ACC0 - movs r0, #0x40 - strb r0, [r1] -_0813ACBC: - pop {r0} - bx r0 - .align 2, 0 -_0813ACC0: .4byte gUnknown_203A838 -_0813ACC4: .4byte gUnknown_20205AC - thumb_func_end sub_0813AC90 - - thumb_func_start IsArrowWarpMetatileBehavior -IsArrowWarpMetatileBehavior: @ 0x0813ACC8 - push {lr} - ldr r0, _0813ACEC - ldrh r0, [r0] - cmp r0, #0 - beq _0813AD00 - ldr r0, _0813ACF0 - ldr r2, _0813ACF4 - ldr r1, _0813ACF8 - ldrh r1, [r1] - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r1, [r1] - lsls r1, r1, #3 - ldr r2, _0813ACFC - adds r1, r1, r2 - bl StringCopy - b _0813AD18 - .align 2, 0 -_0813ACEC: .4byte gUnknown_2037282 -_0813ACF0: .4byte gUnknown_2021C40 -_0813ACF4: .4byte gUnknown_8592C68 -_0813ACF8: .4byte gUnknown_2037280 -_0813ACFC: .4byte gUnknown_82EACC4 -_0813AD00: - ldr r0, _0813AD1C - ldr r2, _0813AD20 - ldr r1, _0813AD24 - ldrh r1, [r1] - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r1, [r1] - lsls r1, r1, #3 - ldr r2, _0813AD28 - adds r1, r1, r2 - bl StringCopy -_0813AD18: - pop {r0} - bx r0 - .align 2, 0 -_0813AD1C: .4byte gUnknown_2021C40 -_0813AD20: .4byte gUnknown_8592C54 -_0813AD24: .4byte gUnknown_2037280 -_0813AD28: .4byte gUnknown_82EACC4 - thumb_func_end IsArrowWarpMetatileBehavior - - thumb_func_start sub_0813AD2C -sub_0813AD2C: @ 0x0813AD2C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - lsrs r6, r0, #0x18 - movs r1, #0xf7 - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0813AD5C - ldr r4, _0813AD64 - ldr r0, _0813AD68 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, #0 - bl SetStandardWindowBorderStyle - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_0813AD6C -_0813AD5C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0813AD64: .4byte gUnknown_203A82A -_0813AD68: .4byte gUnknown_8592C7C - thumb_func_end sub_0813AD2C - - thumb_func_start sub_0813AD6C -sub_0813AD6C: @ 0x0813AD6C - push {r4, r5, r6, r7, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - adds r7, r5, #0 - lsrs r6, r0, #0x18 - movs r1, #0xf7 - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0813ADE4 - ldr r4, _0813ADC0 - ldrb r0, [r4] - movs r1, #0x50 - str r1, [sp] - movs r1, #0x30 - str r1, [sp, #4] - movs r1, #0x11 - movs r2, #0 - movs r3, #0 - bl sub_08003A34 - cmp r6, #0xa - bne _0813ADC8 - ldrb r0, [r4] - ldr r2, _0813ADC4 - lsls r1, r5, #2 - adds r1, r1, r2 - ldr r2, [r1] - movs r1, #2 - str r1, [sp] - movs r1, #0 - str r1, [sp, #4] - str r1, [sp, #8] - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - b _0813ADE4 - .align 2, 0 -_0813ADC0: .4byte gUnknown_203A82A -_0813ADC4: .4byte gUnknown_8592CB0 -_0813ADC8: - ldrb r0, [r4] - ldr r2, _0813ADEC - lsls r1, r7, #2 - adds r1, r1, r2 - ldr r2, [r1] - movs r1, #2 - str r1, [sp] - movs r1, #0 - str r1, [sp, #4] - str r1, [sp, #8] - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized -_0813ADE4: - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0813ADEC: .4byte gUnknown_8592C84 - thumb_func_end sub_0813AD6C - - thumb_func_start sub_0813ADF0 -sub_0813ADF0: @ 0x0813ADF0 - push {r4, lr} - ldr r4, _0813AE08 - ldrb r0, [r4] - movs r1, #1 - bl sub_08198134 - ldrb r0, [r4] - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813AE08: .4byte gUnknown_203A82A - thumb_func_end sub_0813ADF0 - - thumb_func_start sub_0813AE0C -sub_0813AE0C: @ 0x0813AE0C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x18 - ldr r0, _0813AED8 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xff - beq _0813AEC8 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - ldr r1, _0813AEDC - adds r6, r0, r1 - ldrh r0, [r6, #0x24] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r4, sp - adds r4, #0x16 - add r1, sp, #0x14 - adds r2, r4, #0 - bl ListMenuGetScrollAndRow - ldrh r0, [r6, #0x22] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl SetStandardWindowBorderStyle - movs r5, #0 - mov sb, r4 - ldr r0, _0813AEE0 - mov r8, r0 - movs r4, #0 -_0813AE56: - ldrh r0, [r6, #0x22] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add r1, sp, #0x14 - ldrh r2, [r1] - adds r2, r2, r5 - lsls r2, r2, #2 - ldr r1, _0813AEE4 - ldrh r1, [r1] - lsls r1, r1, #6 - adds r2, r2, r1 - add r2, r8 - ldr r2, [r2] - lsls r1, r5, #0x1c - lsrs r1, r1, #0x18 - str r1, [sp] - movs r7, #0xff - str r7, [sp, #4] - str r4, [sp, #8] - str r4, [sp, #0xc] - str r4, [sp, #0x10] - movs r1, #1 - movs r3, #0xa - bl AddTextPrinterParameterized5 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #5 - bls _0813AE56 - ldrh r0, [r6, #0x22] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0813AEE8 - mov r3, sb - ldrh r1, [r3] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x18 - str r1, [sp] - str r7, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - ldrh r0, [r6, #0x22] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl PutWindowTilemap - ldrh r0, [r6, #0x22] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #3 - bl CopyWindowToVram -_0813AEC8: - add sp, #0x18 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0813AED8: .4byte sub_0813A608 -_0813AEDC: .4byte gUnknown_3005B60 -_0813AEE0: .4byte gUnknown_859274C -_0813AEE4: .4byte gUnknown_2037280 -_0813AEE8: .4byte gUnknown_85C9299 - thumb_func_end sub_0813AE0C - - thumb_func_start sub_0813AEEC -sub_0813AEEC: @ 0x0813AEEC - push {r4, lr} - movs r1, #0 - ldr r0, _0813AF30 - strh r1, [r0] - ldr r0, _0813AF34 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r0, _0813AF38 - bl VarGet - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r4, #0 - beq _0813AF50 - movs r2, #0 - lsls r1, r1, #1 - ldr r3, _0813AF3C - ldr r0, _0813AF40 - adds r0, r1, r0 - ldrh r1, [r0] -_0813AF1A: - lsls r0, r2, #1 - adds r0, r0, r3 - ldrh r0, [r0] - cmp r0, r1 - beq _0813AF44 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x1d - bls _0813AF1A - b _0813AF70 - .align 2, 0 -_0813AF30: .4byte gUnknown_2037282 -_0813AF34: .4byte 0x0000400E -_0813AF38: .4byte 0x0000400D -_0813AF3C: .4byte gUnknown_85E08C4 -_0813AF40: .4byte gUnknown_8592C68 -_0813AF44: - ldr r0, _0813AF4C - strh r2, [r0] - b _0813AF70 - .align 2, 0 -_0813AF4C: .4byte gUnknown_2037282 -_0813AF50: - movs r2, #0 - lsls r1, r1, #1 - ldr r3, _0813AF78 - ldr r0, _0813AF7C - adds r0, r1, r0 - ldrh r1, [r0] -_0813AF5C: - lsls r0, r2, #1 - adds r0, r0, r3 - ldrh r0, [r0] - cmp r0, r1 - beq _0813AF44 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x1d - bls _0813AF5C -_0813AF70: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813AF78: .4byte gUnknown_85E08C4 -_0813AF7C: .4byte gUnknown_8592C54 - thumb_func_end sub_0813AEEC - - thumb_func_start sub_0813AF80 -sub_0813AF80: @ 0x0813AF80 - push {r4, r5, lr} - ldr r0, _0813AFF4 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0xff - beq _0813AFEE - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - ldr r0, _0813AFF8 - adds r4, r4, r0 - ldrh r0, [r4, #0x24] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - movs r2, #0 - bl DestroyListMenuTask - ldr r0, _0813AFFC - ldr r0, [r0] - bl Free - ldrh r0, [r4, #0x22] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - bl sub_08198134 - ldrh r0, [r4, #0x22] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl FillWindowPixelBuffer - ldrh r0, [r4, #0x22] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl ClearWindowTilemap - ldrh r0, [r4, #0x22] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - bl CopyWindowToVram - ldrh r0, [r4, #0x22] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl RemoveWindow - adds r0, r5, #0 - bl DestroyTask -_0813AFEE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0813AFF4: .4byte sub_0813A608 -_0813AFF8: .4byte gUnknown_3005B60 -_0813AFFC: .4byte gUnknown_203A830 - thumb_func_end sub_0813AF80 - - thumb_func_start DoDeoxysRockInteraction -DoDeoxysRockInteraction: @ 0x0813B000 - push {lr} - ldr r0, _0813B010 - movs r1, #8 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_0813B010: .4byte Task_DeoxysRockInteraction - thumb_func_end DoDeoxysRockInteraction - - thumb_func_start Task_DeoxysRockInteraction -Task_DeoxysRockInteraction: @ 0x0813B014 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _0813B034 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0813B03C - ldr r1, _0813B038 - movs r0, #3 - b _0813B0A2 - .align 2, 0 -_0813B034: .4byte 0x000008D4 -_0813B038: .4byte gUnknown_2037290 -_0813B03C: - ldr r0, _0813B084 - mov r8, r0 - bl VarGet - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r4, _0813B088 - adds r0, r4, #0 - bl VarGet - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r0, r4, #0 - movs r1, #0 - bl VarSet - cmp r5, #0 - beq _0813B094 - ldr r0, _0813B08C - subs r1, r5, #1 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, r6 - bhs _0813B094 - movs r0, #0 - bl ChangeDeoxysRockLevel - mov r0, r8 - movs r1, #0 - bl VarSet - ldr r1, _0813B090 - movs r0, #0 - strh r0, [r1] - b _0813B0A8 - .align 2, 0 -_0813B084: .4byte 0x00004035 -_0813B088: .4byte 0x00004034 -_0813B08C: .4byte gUnknown_8592E52 -_0813B090: .4byte gUnknown_2037290 -_0813B094: - cmp r5, #0xa - bne _0813B0B8 - ldr r0, _0813B0B0 - bl FlagSet - ldr r1, _0813B0B4 - movs r0, #2 -_0813B0A2: - strh r0, [r1] - bl EnableBothScriptContexts -_0813B0A8: - adds r0, r7, #0 - bl DestroyTask - b _0813B0DA - .align 2, 0 -_0813B0B0: .4byte 0x000008D4 -_0813B0B4: .4byte gUnknown_2037290 -_0813B0B8: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - bl ChangeDeoxysRockLevel - ldr r0, _0813B0E4 - adds r1, r5, #0 - bl VarSet - ldr r1, _0813B0E8 - movs r0, #1 - strh r0, [r1] - adds r0, r7, #0 - bl DestroyTask -_0813B0DA: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0813B0E4: .4byte 0x00004035 -_0813B0E8: .4byte gUnknown_2037290 - thumb_func_end Task_DeoxysRockInteraction - - thumb_func_start ChangeDeoxysRockLevel -ChangeDeoxysRockLevel: @ 0x0813B0EC - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #5 - ldr r1, _0813B120 - adds r0, r0, r1 - movs r1, #0xd0 - lsls r1, r1, #1 - movs r2, #8 - bl LoadPalette - ldr r0, _0813B124 - ldr r0, [r0] - ldrb r1, [r0, #5] - ldrb r2, [r0, #4] - movs r0, #1 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - cmp r4, #0 - bne _0813B128 - movs r0, #0xc4 - bl sub_080A306C - b _0813B130 - .align 2, 0 -_0813B120: .4byte gUnknown_8592CDC -_0813B124: .4byte gUnknown_3005AEC -_0813B128: - movs r0, #0x82 - lsls r0, r0, #1 - bl sub_080A306C -_0813B130: - ldr r0, _0813B164 - movs r1, #8 - bl CreateTask - ldr r3, _0813B168 - movs r0, #1 - str r0, [r3] - movs r0, #0x3a - str r0, [r3, #4] - movs r0, #0x1a - str r0, [r3, #8] - ldr r0, _0813B16C - lsls r2, r4, #1 - adds r1, r2, r0 - ldrb r1, [r1] - str r1, [r3, #0xc] - adds r0, #1 - adds r0, r2, r0 - ldrb r0, [r0] - str r0, [r3, #0x10] - adds r5, r2, #0 - cmp r4, #0 - bne _0813B170 - movs r0, #0x3c - b _0813B172 - .align 2, 0 -_0813B164: .4byte WaitForDeoxysRockMovement -_0813B168: .4byte gUnknown_20388A8 -_0813B16C: .4byte gUnknown_8592E3C -_0813B170: - movs r0, #5 -_0813B172: - str r0, [r3, #0x14] - movs r0, #0x42 - bl FieldEffectStart - ldr r0, _0813B194 - adds r1, r5, r0 - ldrb r1, [r1] - adds r0, #1 - adds r0, r5, r0 - ldrb r2, [r0] - movs r0, #1 - bl Overworld_SetEventObjTemplateCoords - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0813B194: .4byte gUnknown_8592E3C - thumb_func_end ChangeDeoxysRockLevel - - thumb_func_start WaitForDeoxysRockMovement -WaitForDeoxysRockMovement: @ 0x0813B198 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #0x42 - bl FieldEffectActiveListContains - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0813B1B4 - bl EnableBothScriptContexts - adds r0, r4, #0 - bl DestroyTask -_0813B1B4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WaitForDeoxysRockMovement - - thumb_func_start IncrementBirthIslandRockStepCount -IncrementBirthIslandRockStepCount: @ 0x0813B1BC - push {r4, lr} - ldr r4, _0813B1EC - adds r0, r4, #0 - bl VarGet - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, _0813B1F0 - ldr r0, [r0] - ldrh r1, [r0, #4] - ldr r0, _0813B1F4 - cmp r1, r0 - bne _0813B200 - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0x63 - bls _0813B1F8 - adds r0, r4, #0 - movs r1, #0 - bl VarSet - b _0813B200 - .align 2, 0 -_0813B1EC: .4byte 0x00004034 -_0813B1F0: .4byte gUnknown_3005AEC -_0813B1F4: .4byte 0x00003A1A -_0813B1F8: - adds r0, r4, #0 - adds r1, r2, #0 - bl VarSet -_0813B200: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end IncrementBirthIslandRockStepCount - - thumb_func_start sub_0813B208 -sub_0813B208: @ 0x0813B208 - push {lr} - ldr r0, _0813B234 - bl VarGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x13 - ldr r1, _0813B238 - adds r0, r0, r1 - movs r1, #0xd0 - lsls r1, r1, #1 - movs r2, #8 - bl LoadPalette - movs r0, #0x80 - lsls r0, r0, #0x13 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - pop {r0} - bx r0 - .align 2, 0 -_0813B234: .4byte 0x00004035 -_0813B238: .4byte gUnknown_8592CDC - thumb_func_end sub_0813B208 - - thumb_func_start sub_0813B23C -sub_0813B23C: @ 0x0813B23C - ldr r1, _0813B244 - strb r0, [r1] - bx lr - .align 2, 0 -_0813B244: .4byte gUnknown_203A83B - thumb_func_end sub_0813B23C - - thumb_func_start sub_0813B248 -sub_0813B248: @ 0x0813B248 - ldr r0, _0813B250 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0813B250: .4byte gUnknown_203A83B - thumb_func_end sub_0813B248 - - thumb_func_start sub_0813B254 -sub_0813B254: @ 0x0813B254 - push {r4, r5, lr} - ldr r5, _0813B288 - adds r0, r5, #0 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0813B290 - bl sub_080D15AC - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _0813B28C - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r4, r0 - beq _0813B290 - adds r0, r5, #0 - bl FlagSet - movs r0, #1 - b _0813B292 - .align 2, 0 -_0813B288: .4byte 0x000008D7 -_0813B28C: .4byte 0x00004036 -_0813B290: - movs r0, #0 -_0813B292: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_0813B254 - - thumb_func_start sub_0813B298 -sub_0813B298: @ 0x0813B298 - push {r4, r5, r6, r7, lr} - ldr r0, _0813B2F0 - bl VarGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_0813B23C - bl sub_080D15AC - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_0813B2B0: - movs r5, #0 - lsls r6, r4, #0x18 - lsls r7, r4, #0x10 -_0813B2B6: - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - lsrs r0, r6, #0x18 - bl GetBoxedMonPtr - movs r1, #0xb - movs r2, #0 - bl sub_0806A1B4 - cmp r0, #0 - bne _0813B2F8 - bl sub_0813B248 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r4 - beq _0813B2DE - ldr r0, _0813B2F4 - bl FlagClear -_0813B2DE: - ldr r0, _0813B2F0 - lsrs r1, r7, #0x10 - bl VarSet - bl sub_0813B254 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0813B314 - .align 2, 0 -_0813B2F0: .4byte 0x00004036 -_0813B2F4: .4byte 0x000008D7 -_0813B2F8: - adds r5, #1 - cmp r5, #0x1d - ble _0813B2B6 - adds r4, #1 - cmp r4, #0xe - bne _0813B306 - movs r4, #0 -_0813B306: - bl sub_080D15AC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - bne _0813B2B0 - movs r0, #0 -_0813B314: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0813B298 - - thumb_func_start CreateUnusualWeatherEvent -CreateUnusualWeatherEvent: @ 0x0813B31C - push {r4, lr} - bl Random - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, _0813B35C - movs r1, #0 - bl VarSet - movs r0, #0xdf - lsls r0, r0, #1 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0813B378 - ldr r0, _0813B360 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0813B368 - ldr r0, _0813B364 - movs r1, #7 - ands r4, r1 - adds r1, r4, #0 - adds r1, #9 - bl VarSet - b _0813B3A2 - .align 2, 0 -_0813B35C: .4byte 0x00004038 -_0813B360: .4byte 0x000001BF -_0813B364: .4byte 0x00004037 -_0813B368: - movs r0, #1 - ands r4, r0 - cmp r4, #0 - bne _0813B38C - bl Random - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_0813B378: - ldr r0, _0813B388 - movs r1, #7 - ands r4, r1 - adds r1, r4, #1 - bl VarSet - b _0813B3A2 - .align 2, 0 -_0813B388: .4byte 0x00004037 -_0813B38C: - bl Random - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, _0813B3A8 - movs r1, #7 - ands r4, r1 - adds r1, r4, #0 - adds r1, #9 - bl VarSet -_0813B3A2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813B3A8: .4byte 0x00004037 - thumb_func_end CreateUnusualWeatherEvent - - thumb_func_start GetUnusualWeatherMapNameAndType -GetUnusualWeatherMapNameAndType: @ 0x0813B3AC - push {r4, lr} - ldr r0, _0813B3D4 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r0, _0813B3D8 - ldr r2, _0813B3DC - subs r1, r4, #1 - adds r1, r1, r2 - ldrb r1, [r1] - movs r2, #0 - bl GetMapName - cmp r4, #8 - bls _0813B3E0 - movs r0, #1 - b _0813B3E2 - .align 2, 0 -_0813B3D4: .4byte 0x00004037 -_0813B3D8: .4byte gUnknown_2021C40 -_0813B3DC: .4byte gUnknown_8592E5C -_0813B3E0: - movs r0, #0 -_0813B3E2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetUnusualWeatherMapNameAndType - - thumb_func_start UnusualWeatherHasExpired -UnusualWeatherHasExpired: @ 0x0813B3E8 - push {r4, r5, r6, lr} - ldr r5, _0813B438 - adds r0, r5, #0 - bl VarGet - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, _0813B43C - bl VarGet - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0 - beq _0813B4B4 - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, _0813B440 - cmp r4, r0 - bls _0813B4AC - adds r0, r5, #0 - movs r1, #0 - bl VarSet - ldr r0, _0813B444 - ldr r1, [r0] - movs r0, #4 - ldrsb r0, [r1, r0] - cmp r0, #0x18 - bne _0813B44C - movs r0, #5 - ldrsb r0, [r1, r0] - cmp r0, #0x69 - bgt _0813B44C - cmp r0, #0x65 - blt _0813B44C - ldr r0, _0813B448 - movs r1, #1 - b _0813B4B0 - .align 2, 0 -_0813B438: .4byte 0x00004038 -_0813B43C: .4byte 0x00004037 -_0813B440: .4byte 0x000003E7 -_0813B444: .4byte gUnknown_3005AEC -_0813B448: .4byte 0x00004039 -_0813B44C: - ldr r0, _0813B474 - ldr r2, [r0] - movs r1, #4 - ldrsb r1, [r2, r1] - adds r3, r0, #0 - cmp r1, #0 - bne _0813B47C - movs r0, #5 - ldrsb r0, [r2, r0] - cmp r0, #0x34 - beq _0813B46E - cmp r0, #0x34 - blt _0813B47C - cmp r0, #0x38 - bgt _0813B47C - cmp r0, #0x36 - blt _0813B47C -_0813B46E: - ldr r0, _0813B478 - movs r1, #1 - b _0813B4B0 - .align 2, 0 -_0813B474: .4byte gUnknown_3005AEC -_0813B478: .4byte 0x00004039 -_0813B47C: - ldr r3, [r3] - movs r2, #5 - ldrsb r2, [r3, r2] - ldr r1, _0813B49C - subs r0, r6, #1 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r2, r0 - bne _0813B4A0 - movs r0, #4 - ldrsb r0, [r3, r0] - cmp r0, #0 - bne _0813B4A0 - movs r0, #1 - b _0813B4B6 - .align 2, 0 -_0813B49C: .4byte gUnknown_8592E6C -_0813B4A0: - ldr r0, _0813B4A8 - movs r1, #0 - b _0813B4B0 - .align 2, 0 -_0813B4A8: .4byte 0x00004037 -_0813B4AC: - adds r0, r5, #0 - adds r1, r4, #0 -_0813B4B0: - bl VarSet -_0813B4B4: - movs r0, #0 -_0813B4B6: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end UnusualWeatherHasExpired - - thumb_func_start Unused_SetWeatherSunny -Unused_SetWeatherSunny: @ 0x0813B4BC - push {lr} - movs r0, #2 - bl SetCurrentAndNextWeather - pop {r0} - bx r0 - thumb_func_end Unused_SetWeatherSunny - - thumb_func_start sub_0813B4C8 -sub_0813B4C8: @ 0x0813B4C8 - push {r4, r5, r6, r7, lr} - movs r3, #0 - ldr r0, _0813B4FC - ldr r4, [r0] - movs r6, #4 - ldrsb r6, [r4, r6] - ldr r5, _0813B500 - adds r0, r5, #2 - mov ip, r0 - adds r7, r5, #1 -_0813B4DC: - lsls r0, r3, #1 - adds r2, r0, r3 - adds r0, r2, r5 - ldrb r0, [r0] - cmp r6, r0 - bne _0813B504 - movs r1, #5 - ldrsb r1, [r4, r1] - adds r0, r2, r7 - ldrb r0, [r0] - cmp r1, r0 - bne _0813B504 - mov r1, ip - adds r0, r2, r1 - ldrb r0, [r0] - b _0813B510 - .align 2, 0 -_0813B4FC: .4byte gUnknown_3005AEC -_0813B500: .4byte gUnknown_8592E7C -_0813B504: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0xb - bls _0813B4DC - movs r0, #1 -_0813B510: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0813B4C8 - - thumb_func_start sub_0813B518 -sub_0813B518: @ 0x0813B518 - push {lr} - ldr r0, _0813B540 - ldrh r0, [r0] - bl GetRematchIdxByTrainerIdx - cmp r0, #0 - blt _0813B544 - movs r1, #0xae - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0813B544 - movs r0, #1 - b _0813B546 - .align 2, 0 -_0813B540: .4byte gUnknown_2037280 -_0813B544: - movs r0, #0 -_0813B546: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0813B518 - - thumb_func_start StartWallClock -StartWallClock: @ 0x0813B54C - push {lr} - ldr r0, _0813B560 - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0813B564 - movs r0, #1 - b _0813B566 - .align 2, 0 -_0813B560: .4byte 0x0000403F -_0813B564: - movs r0, #0 -_0813B566: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end StartWallClock - - thumb_func_start sub_0813B56C -sub_0813B56C: @ 0x0813B56C - push {lr} - ldr r2, _0813B590 - ldr r1, _0813B594 - ldr r0, [r1] - str r0, [r2] - movs r0, #0 - str r0, [r1] - ldr r0, _0813B598 - ldrb r0, [r0] - cmp r0, #0 - bne _0813B58A - ldr r0, _0813B59C - movs r1, #5 - bl CreateTask -_0813B58A: - pop {r0} - bx r0 - .align 2, 0 -_0813B590: .4byte gUnknown_203A83C -_0813B594: .4byte gUnknown_2022C90 -_0813B598: .4byte gUnknown_30031C4 -_0813B59C: .4byte sub_080B3250 - thumb_func_end sub_0813B56C - - thumb_func_start sub_0813B5A0 -sub_0813B5A0: @ 0x0813B5A0 - push {lr} - ldr r0, _0813B5B0 - movs r1, #5 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_0813B5B0: .4byte sub_0813B5B4 - thumb_func_end sub_0813B5A0 - - thumb_func_start sub_0813B5B4 -sub_0813B5B4: @ 0x0813B5B4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _0813B5D8 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #8 - ldrsh r0, [r0, r1] - cmp r0, #9 - bls _0813B5CE - b _0813B7FE -_0813B5CE: - lsls r0, r0, #2 - ldr r1, _0813B5DC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813B5D8: .4byte gUnknown_3005B60 -_0813B5DC: .4byte _0813B5E0 -_0813B5E0: @ jump table - .4byte _0813B608 @ case 0 - .4byte _0813B61C @ case 1 - .4byte _0813B64C @ case 2 - .4byte _0813B6EC @ case 3 - .4byte _0813B71C @ case 4 - .4byte _0813B760 @ case 5 - .4byte _0813B79C @ case 6 - .4byte _0813B7AA @ case 7 - .4byte _0813B7BC @ case 8 - .4byte _0813B7E0 @ case 9 -_0813B608: - ldr r0, _0813B618 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0813B616 - b _0813B7FE -_0813B616: - b _0813B7C8 - .align 2, 0 -_0813B618: .4byte sub_080B3250 -_0813B61C: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0813B62A - b _0813B7FE -_0813B62A: - bl GetMultiplayerId - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0813B636 - b _0813B7C8 -_0813B636: - bl bitmask_all_link_players_but_self - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0813B648 - movs r2, #2 - bl SendBlock - b _0813B740 - .align 2, 0 -_0813B648: .4byte gUnknown_2037280 -_0813B64C: - bl GetBlockReceivedStatus - movs r1, #2 - ands r1, r0 - cmp r1, #0 - bne _0813B65A - b _0813B7FE -_0813B65A: - bl GetMultiplayerId - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0813B666 - b _0813B7C8 -_0813B666: - ldr r5, _0813B690 - ldr r0, _0813B694 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r5] - movs r0, #1 - bl ResetBlockReceivedFlag - ldr r0, _0813B698 - ldrh r0, [r0] - cmp r0, #1 - bne _0813B6A0 - ldrh r1, [r5] - cmp r1, #1 - bne _0813B6A0 - ldr r0, _0813B69C - strh r1, [r0] - b _0813B7C8 - .align 2, 0 -_0813B690: .4byte gUnknown_2037282 -_0813B694: .4byte gUnknown_202207C -_0813B698: .4byte gUnknown_2037280 -_0813B69C: .4byte gUnknown_2037290 -_0813B6A0: - ldr r0, _0813B6B8 - ldrh r1, [r0] - adds r2, r0, #0 - cmp r1, #0 - bne _0813B6C4 - ldr r0, _0813B6BC - ldrh r0, [r0] - cmp r0, #1 - bne _0813B6C4 - ldr r1, _0813B6C0 - movs r0, #2 - b _0813B6E4 - .align 2, 0 -_0813B6B8: .4byte gUnknown_2037280 -_0813B6BC: .4byte gUnknown_2037282 -_0813B6C0: .4byte gUnknown_2037290 -_0813B6C4: - ldrh r0, [r2] - cmp r0, #1 - bne _0813B6E0 - ldr r0, _0813B6D8 - ldrh r0, [r0] - cmp r0, #0 - bne _0813B6E0 - ldr r1, _0813B6DC - movs r0, #3 - b _0813B6E4 - .align 2, 0 -_0813B6D8: .4byte gUnknown_2037282 -_0813B6DC: .4byte gUnknown_2037290 -_0813B6E0: - ldr r1, _0813B6E8 - movs r0, #0 -_0813B6E4: - strh r0, [r1] - b _0813B7C8 - .align 2, 0 -_0813B6E8: .4byte gUnknown_2037290 -_0813B6EC: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0813B6FA - b _0813B7FE -_0813B6FA: - bl GetMultiplayerId - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0813B7C8 - bl bitmask_all_link_players_but_self - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0813B718 - movs r2, #2 - bl SendBlock - b _0813B740 - .align 2, 0 -_0813B718: .4byte gUnknown_2037290 -_0813B71C: - bl GetBlockReceivedStatus - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0813B7FE - bl GetMultiplayerId - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0813B7C8 - ldr r1, _0813B754 - ldr r0, _0813B758 - ldrh r0, [r0] - strh r0, [r1] - movs r0, #0 - bl ResetBlockReceivedFlag -_0813B740: - ldr r1, _0813B75C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #8] - adds r1, #1 - strh r1, [r0, #8] - b _0813B7FE - .align 2, 0 -_0813B754: .4byte gUnknown_2037290 -_0813B758: .4byte gUnknown_202207C -_0813B75C: .4byte gUnknown_3005B60 -_0813B760: - bl GetMultiplayerId - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0813B784 - ldr r0, _0813B77C - ldrh r0, [r0] - cmp r0, #2 - bne _0813B7C8 - ldr r0, _0813B780 - bl ShowFieldAutoScrollMessage - b _0813B7C8 - .align 2, 0 -_0813B77C: .4byte gUnknown_2037290 -_0813B780: .4byte gUnknown_8226D61 -_0813B784: - ldr r0, _0813B794 - ldrh r0, [r0] - cmp r0, #3 - bne _0813B7C8 - ldr r0, _0813B798 - bl ShowFieldAutoScrollMessage - b _0813B7C8 - .align 2, 0 -_0813B794: .4byte gUnknown_2037290 -_0813B798: .4byte gUnknown_8226D61 -_0813B79C: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0813B7FE - b _0813B7C8 -_0813B7AA: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0813B7FE - bl sub_0800A8D4 - b _0813B7C8 -_0813B7BC: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0813B7FE -_0813B7C8: - ldr r0, _0813B7DC - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _0813B7FE - .align 2, 0 -_0813B7DC: .4byte gUnknown_3005B60 -_0813B7E0: - ldr r0, _0813B804 - ldrb r0, [r0] - cmp r0, #0 - bne _0813B7EC - bl sub_0800A7F8 -_0813B7EC: - ldr r0, _0813B808 - ldr r1, _0813B80C - ldr r1, [r1] - str r1, [r0] - bl EnableBothScriptContexts - adds r0, r4, #0 - bl DestroyTask -_0813B7FE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0813B804: .4byte gUnknown_300319C -_0813B808: .4byte gUnknown_2022C90 -_0813B80C: .4byte gUnknown_203A83C - thumb_func_end sub_0813B5B4 - - thumb_func_start sub_0813B810 -sub_0813B810: @ 0x0813B810 - push {lr} - ldr r0, _0813B828 - ldrh r0, [r0] - cmp r0, #0 - bne _0813B830 - ldr r2, _0813B82C - movs r0, #0 - movs r1, #1 - bl DoRayquazaScene - b _0813B83A - .align 2, 0 -_0813B828: .4byte gUnknown_2037280 -_0813B82C: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic -_0813B830: - ldr r2, _0813B840 - movs r0, #1 - movs r1, #0 - bl DoRayquazaScene -_0813B83A: - pop {r0} - bx r0 - .align 2, 0 -_0813B840: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic - thumb_func_end sub_0813B810 - - thumb_func_start sub_0813B844 -sub_0813B844: @ 0x0813B844 - push {lr} - ldr r0, _0813B858 - movs r1, #8 - bl CreateTask - movs r0, #0x9d - bl sub_080A306C - pop {r0} - bx r0 - .align 2, 0 -_0813B858: .4byte sub_0813B85C - thumb_func_end sub_0813B844 - - thumb_func_start sub_0813B85C -sub_0813B85C: @ 0x0813B85C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _0813B8AC - adds r4, r0, r1 - ldrh r0, [r4, #2] - adds r0, #1 - strh r0, [r4, #2] - movs r0, #2 - ldrsh r1, [r4, r0] - ldr r0, _0813B8B0 - ldrh r0, [r0] - cmp r1, r0 - bne _0813B890 - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - movs r0, #0 - strh r0, [r4, #2] - movs r0, #0x9d - bl sub_080A306C -_0813B890: - movs r0, #0 - ldrsh r1, [r4, r0] - ldr r0, _0813B8B4 - ldrh r0, [r0] - subs r0, #1 - cmp r1, r0 - bne _0813B8A4 - adds r0, r5, #0 - bl DestroyTask -_0813B8A4: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0813B8AC: .4byte gUnknown_3005B68 -_0813B8B0: .4byte gUnknown_2037282 -_0813B8B4: .4byte gUnknown_2037280 - thumb_func_end sub_0813B85C - - thumb_func_start sub_0813B8B8 -sub_0813B8B8: @ 0x0813B8B8 - push {lr} - ldr r0, _0813B8E0 - movs r1, #8 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0813B8E4 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r2, #0 - movs r0, #4 - strh r0, [r1, #8] - strh r0, [r1, #0xa] - strh r0, [r1, #0xc] - strh r2, [r1, #0xe] - pop {r0} - bx r0 - .align 2, 0 -_0813B8E0: .4byte sub_0813B8E8 -_0813B8E4: .4byte gUnknown_3005B60 - thumb_func_end sub_0813B8B8 - - thumb_func_start sub_0813B8E8 -sub_0813B8E8: @ 0x0813B8E8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - lsls r0, r0, #2 - add r0, sb - lsls r0, r0, #3 - ldr r1, _0813B994 - adds r5, r0, r1 - movs r0, #6 - ldrsh r1, [r5, r0] - lsls r1, r1, #1 - adds r1, r1, r5 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - movs r1, #6 - ldrsh r0, [r5, r1] - lsls r0, r0, #1 - adds r0, r0, r5 - movs r2, #0 - ldrsh r0, [r0, r2] - cmp r0, #0 - bne _0813B986 - movs r6, #0 -_0813B922: - movs r4, #0 - lsls r3, r6, #3 - mov sl, r3 - adds r7, r6, #1 - mov r8, r7 -_0813B92C: - ldr r0, _0813B998 - ldr r1, [r0] - movs r2, #0 - ldrsh r0, [r1, r2] - adds r0, r0, r4 - adds r0, #6 - movs r3, #2 - ldrsh r1, [r1, r3] - adds r1, r1, r6 - adds r1, #4 - ldr r7, _0813B99C - adds r2, r4, r7 - add r2, sl - movs r7, #6 - ldrsh r3, [r5, r7] - lsls r3, r3, #5 - adds r2, r2, r3 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - bl MapGridSetMetatileIdAt - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #2 - bls _0813B92C - mov r1, r8 - lsls r0, r1, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #3 - bls _0813B922 - bl DrawWholeMapView - ldrh r0, [r5, #6] - adds r0, #1 - strh r0, [r5, #6] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - bne _0813B986 - mov r0, sb - bl DestroyTask - bl EnableBothScriptContexts -_0813B986: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0813B994: .4byte gUnknown_3005B68 -_0813B998: .4byte gUnknown_3005AEC -_0813B99C: .4byte 0x00000201 - thumb_func_end sub_0813B8E8 - - thumb_func_start sub_0813B9A0 -sub_0813B9A0: @ 0x0813B9A0 - push {r4, r5, lr} - ldr r5, _0813B9D0 - ldr r0, _0813B9D4 - ldrh r0, [r0] - movs r1, #7 - bl __udivsi3 - strh r0, [r5] - ldrh r4, [r5] - adds r0, r4, #0 - movs r1, #0x14 - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - subs r4, r4, r1 - strh r4, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0813B9D0: .4byte gUnknown_2037290 -_0813B9D4: .4byte gUnknown_2037280 - thumb_func_end sub_0813B9A0 - - thumb_func_start sub_0813B9D8 -sub_0813B9D8: @ 0x0813B9D8 - push {lr} - ldr r0, _0813B9F4 - ldr r0, [r0] - ldrh r1, [r0, #0x1c] - movs r0, #0xb0 - lsls r0, r0, #4 - cmp r1, r0 - bne _0813B9EE - movs r0, #3 - bl SetLastHealLocationWarp -_0813B9EE: - pop {r0} - bx r0 - .align 2, 0 -_0813B9F4: .4byte gUnknown_3005AEC - thumb_func_end sub_0813B9D8 - - thumb_func_start sub_0813B9F8 -sub_0813B9F8: @ 0x0813B9F8 - push {r4, lr} - ldr r0, _0813BA28 - ldr r0, [r0] - movs r1, #4 - ldrsb r1, [r0, r1] - lsls r1, r1, #8 - ldrb r0, [r0, #5] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldr r2, _0813BA2C - ldrh r0, [r2] - ldr r1, _0813BA30 - cmp r0, r1 - beq _0813BA3E - adds r4, r1, #0 - adds r1, r2, #0 -_0813BA1E: - ldrh r0, [r2] - cmp r0, r3 - bne _0813BA34 - movs r0, #1 - b _0813BA40 - .align 2, 0 -_0813BA28: .4byte gUnknown_3005AEC -_0813BA2C: .4byte gUnknown_8592EA0 -_0813BA30: .4byte 0x0000FFFF -_0813BA34: - adds r1, #2 - adds r2, #2 - ldrh r0, [r1] - cmp r0, r4 - bne _0813BA1E -_0813BA3E: - movs r0, #0 -_0813BA40: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0813B9F8 - - thumb_func_start ResetFanClub -ResetFanClub: @ 0x0813BA48 - ldr r0, _0813BA60 - ldr r0, [r0] - ldr r2, _0813BA64 - adds r1, r0, r2 - movs r2, #0 - strh r2, [r1] - movs r1, #0xa1 - lsls r1, r1, #5 - adds r0, r0, r1 - strh r2, [r0] - bx lr - .align 2, 0 -_0813BA60: .4byte gUnknown_3005AEC -_0813BA64: .4byte 0x0000141E - thumb_func_end ResetFanClub - - thumb_func_start sub_0813BA68 -sub_0813BA68: @ 0x0813BA68 - push {lr} - bl sub_0813BF68 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0813BA8A - bl UpdateMovedLilycoveFanClubMembers - ldr r0, _0813BA90 - ldr r1, [r0] - ldr r0, _0813BA94 - ldr r0, [r0] - ldrh r0, [r0, #0xe] - movs r2, #0xa1 - lsls r2, r2, #5 - adds r1, r1, r2 - strh r0, [r1] -_0813BA8A: - pop {r0} - bx r0 - .align 2, 0 -_0813BA90: .4byte gUnknown_3005AEC -_0813BA94: .4byte gUnknown_3005AF0 - thumb_func_end sub_0813BA68 - - thumb_func_start sub_0813BA98 -sub_0813BA98: @ 0x0813BA98 - push {r4, lr} - ldr r4, _0813BAF4 - ldr r0, [r4] - ldr r1, _0813BAF8 - adds r0, r0, r1 - ldrh r0, [r0] - lsrs r0, r0, #7 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _0813BAEE - bl sub_0813BF84 - bl sub_0813BDBC - ldr r1, [r4] - ldr r0, _0813BAFC - ldr r0, [r0] - ldrh r0, [r0, #0xe] - movs r2, #0xa1 - lsls r2, r2, #5 - adds r1, r1, r2 - strh r0, [r1] - ldr r0, _0813BB00 - bl FlagClear - ldr r0, _0813BB04 - bl FlagClear - ldr r0, _0813BB08 - bl FlagClear - movs r0, #0xc6 - lsls r0, r0, #2 - bl FlagClear - ldr r0, _0813BB0C - bl FlagClear - ldr r0, _0813BB10 - movs r1, #1 - bl VarSet -_0813BAEE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813BAF4: .4byte gUnknown_3005AEC -_0813BAF8: .4byte 0x0000141E -_0813BAFC: .4byte gUnknown_3005AF0 -_0813BB00: .4byte 0x00000315 -_0813BB04: .4byte 0x00000316 -_0813BB08: .4byte 0x00000317 -_0813BB0C: .4byte 0x000002DA -_0813BB10: .4byte 0x00004095 - thumb_func_end sub_0813BA98 - - thumb_func_start sub_0813BB14 -sub_0813BB14: @ 0x0813BB14 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _0813BB60 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #2 - bne _0813BB90 - ldr r4, _0813BB64 - ldr r0, [r4] - ldr r5, _0813BB68 - adds r3, r0, r5 - ldrh r2, [r3] - movs r1, #0x7f - ands r1, r2 - ldr r0, _0813BB6C - adds r0, r6, r0 - ldrb r0, [r0] - adds r1, r1, r0 - cmp r1, #0x13 - ble _0813BB8C - bl GetNumMovedLilycoveFanClubMembers - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #2 - bhi _0813BB74 - bl sub_0813BBAC - ldr r0, [r4] - adds r0, r0, r5 - ldrh r2, [r0] - ldr r1, _0813BB70 - ands r1, r2 - strh r1, [r0] - b _0813BB90 - .align 2, 0 -_0813BB60: .4byte 0x00004095 -_0813BB64: .4byte gUnknown_3005AEC -_0813BB68: .4byte 0x0000141E -_0813BB6C: .4byte gUnknown_8592ECC -_0813BB70: .4byte 0x0000FF80 -_0813BB74: - ldr r2, [r4] - adds r2, r2, r5 - ldrh r1, [r2] - ldr r0, _0813BB88 - ands r0, r1 - movs r1, #0x14 - orrs r0, r1 - strh r0, [r2] - b _0813BB90 - .align 2, 0 -_0813BB88: .4byte 0x0000FF80 -_0813BB8C: - adds r0, r2, r0 - strh r0, [r3] -_0813BB90: - ldr r0, _0813BBA4 - ldr r0, [r0] - ldr r1, _0813BBA8 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0813BBA4: .4byte gUnknown_3005AEC -_0813BBA8: .4byte 0x0000141E - thumb_func_end sub_0813BB14 - - thumb_func_start sub_0813BBAC -sub_0813BBAC: @ 0x0813BBAC - push {r4, r5, r6, r7, lr} - sub sp, #8 - movs r3, #0 - movs r5, #0 - ldr r7, _0813BBF4 - ldr r2, _0813BBF8 - movs r6, #1 -_0813BBBA: - ldr r0, [r7] - adds r0, r0, r2 - ldrh r1, [r0] - ldr r0, _0813BBFC - adds r0, r5, r0 - ldrb r4, [r0] - asrs r1, r4 - ands r1, r6 - cmp r1, #0 - bne _0813BC00 - adds r3, r5, #0 - str r2, [sp] - str r3, [sp, #4] - bl Random - adds r1, r6, #0 - ands r1, r0 - ldr r2, [sp] - ldr r3, [sp, #4] - cmp r1, #0 - beq _0813BC00 - ldr r0, [r7] - adds r0, r0, r2 - adds r1, r6, #0 - lsls r1, r4 - ldrh r2, [r0] - orrs r1, r2 - strh r1, [r0] - b _0813BC22 - .align 2, 0 -_0813BBF4: .4byte gUnknown_3005AEC -_0813BBF8: .4byte 0x0000141E -_0813BBFC: .4byte gUnknown_8592ED0 -_0813BC00: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #7 - bls _0813BBBA - ldr r0, _0813BC2C - ldr r2, [r0] - ldr r0, _0813BC30 - adds r2, r2, r0 - ldr r1, _0813BC34 - adds r1, r3, r1 - movs r0, #1 - ldrb r1, [r1] - lsls r0, r1 - ldrh r1, [r2] - orrs r0, r1 - strh r0, [r2] -_0813BC22: - adds r0, r3, #0 - add sp, #8 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0813BC2C: .4byte gUnknown_3005AEC -_0813BC30: .4byte 0x0000141E -_0813BC34: .4byte gUnknown_8592ED0 - thumb_func_end sub_0813BBAC - - thumb_func_start sub_0813BC38 -sub_0813BC38: @ 0x0813BC38 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - movs r0, #0 - mov sl, r0 - bl GetNumMovedLilycoveFanClubMembers - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bne _0813BC66 - movs r0, #0 - b _0813BCC6 -_0813BC56: - mov r1, r8 - ldr r0, [r1] - add r0, sb - lsls r4, r6 - ldrh r1, [r0] - eors r4, r1 - strh r4, [r0] - b _0813BCC4 -_0813BC66: - movs r5, #0 - ldr r2, _0813BCD4 - mov r8, r2 - ldr r0, _0813BCD8 - mov sb, r0 - movs r4, #1 -_0813BC72: - mov r1, r8 - ldr r0, [r1] - add r0, sb - ldrh r1, [r0] - ldr r7, _0813BCDC - adds r0, r5, r7 - ldrb r6, [r0] - asrs r1, r6 - ands r1, r4 - cmp r1, #0 - beq _0813BC96 - mov sl, r5 - bl Random - adds r1, r4, #0 - ands r1, r0 - cmp r1, #0 - bne _0813BC56 -_0813BC96: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #7 - bls _0813BC72 - ldr r0, _0813BCD4 - ldr r0, [r0] - ldr r2, _0813BCD8 - adds r4, r0, r2 - ldrh r1, [r4] - mov r2, sl - adds r0, r2, r7 - ldrb r2, [r0] - adds r0, r1, #0 - asrs r0, r2 - movs r3, #1 - ands r0, r3 - cmp r0, #0 - beq _0813BCC4 - adds r0, r3, #0 - lsls r0, r2 - eors r1, r0 - strh r1, [r4] -_0813BCC4: - mov r0, sl -_0813BCC6: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0813BCD4: .4byte gUnknown_3005AEC -_0813BCD8: .4byte 0x0000141E -_0813BCDC: .4byte gUnknown_8592ED8 - thumb_func_end sub_0813BC38 - - thumb_func_start GetNumMovedLilycoveFanClubMembers -GetNumMovedLilycoveFanClubMembers: @ 0x0813BCE0 - push {r4, r5, lr} - movs r3, #0 - movs r2, #0 - ldr r0, _0813BD18 - ldr r0, [r0] - ldr r1, _0813BD1C - adds r0, r0, r1 - ldrh r4, [r0] - movs r5, #1 -_0813BCF2: - adds r1, r2, #0 - adds r1, #8 - adds r0, r4, #0 - asrs r0, r1 - ands r0, r5 - cmp r0, #0 - beq _0813BD06 - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 -_0813BD06: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #7 - bls _0813BCF2 - adds r0, r3, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0813BD18: .4byte gUnknown_3005AEC -_0813BD1C: .4byte 0x0000141E - thumb_func_end GetNumMovedLilycoveFanClubMembers - - thumb_func_start UpdateMovedLilycoveFanClubMembers -UpdateMovedLilycoveFanClubMembers: @ 0x0813BD20 - push {r4, r5, r6, lr} - movs r5, #0 - ldr r2, _0813BD34 - ldr r0, [r2] - ldrh r1, [r0, #0xe] - ldr r0, _0813BD38 - cmp r1, r0 - bhi _0813BD90 - adds r6, r2, #0 - b _0813BD6A - .align 2, 0 -_0813BD34: .4byte gUnknown_3005AF0 -_0813BD38: .4byte 0x000003E6 -_0813BD3C: - ldr r0, [r6] - ldrh r1, [r0, #0xe] - ldr r4, _0813BD88 - ldr r0, [r4] - movs r2, #0xa1 - lsls r2, r2, #5 - adds r0, r0, r2 - ldrh r0, [r0] - subs r1, r1, r0 - cmp r1, #0xb - ble _0813BD90 - bl sub_0813BC38 - ldr r0, [r4] - movs r1, #0xa1 - lsls r1, r1, #5 - adds r0, r0, r1 - ldrh r1, [r0] - adds r1, #0xc - strh r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_0813BD6A: - bl GetNumMovedLilycoveFanClubMembers - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #4 - bhi _0813BD8C - ldr r0, _0813BD88 - ldr r1, [r0] - ldr r0, [r6] - ldrh r0, [r0, #0xe] - movs r2, #0xa1 - lsls r2, r2, #5 - adds r1, r1, r2 - strh r0, [r1] - b _0813BD90 - .align 2, 0 -_0813BD88: .4byte gUnknown_3005AEC -_0813BD8C: - cmp r5, #8 - bne _0813BD3C -_0813BD90: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end UpdateMovedLilycoveFanClubMembers - - thumb_func_start ShouldMoveLilycoveFanClubMember -ShouldMoveLilycoveFanClubMember: @ 0x0813BD98 - ldr r0, _0813BDB0 - ldr r0, [r0] - ldr r1, _0813BDB4 - adds r0, r0, r1 - ldrh r0, [r0] - ldr r1, _0813BDB8 - ldrh r1, [r1] - asrs r0, r1 - movs r1, #1 - ands r0, r1 - bx lr - .align 2, 0 -_0813BDB0: .4byte gUnknown_3005AEC -_0813BDB4: .4byte 0x0000141E -_0813BDB8: .4byte gUnknown_2037280 - thumb_func_end ShouldMoveLilycoveFanClubMember - - thumb_func_start sub_0813BDBC -sub_0813BDBC: @ 0x0813BDBC - ldr r0, _0813BDE4 - ldr r2, [r0] - ldr r0, _0813BDE8 - adds r2, r2, r0 - ldrh r1, [r2] - movs r3, #0x80 - lsls r3, r3, #6 - adds r0, r3, #0 - orrs r0, r1 - movs r3, #0x80 - lsls r3, r3, #1 - adds r1, r3, #0 - orrs r0, r1 - movs r3, #0x80 - lsls r3, r3, #3 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2] - bx lr - .align 2, 0 -_0813BDE4: .4byte gUnknown_3005AEC -_0813BDE8: .4byte 0x0000141E - thumb_func_end sub_0813BDBC - - thumb_func_start BufferStreakTrainerText -BufferStreakTrainerText: @ 0x0813BDEC - push {lr} - movs r3, #0 - movs r2, #0 - ldr r0, _0813BE08 - ldrh r0, [r0] - subs r0, #8 - cmp r0, #7 - bhi _0813BE4C - lsls r0, r0, #2 - ldr r1, _0813BE0C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813BE08: .4byte gUnknown_2037280 -_0813BE0C: .4byte _0813BE10 -_0813BE10: @ jump table - .4byte _0813BE4C @ case 0 - .4byte _0813BE4C @ case 1 - .4byte _0813BE30 @ case 2 - .4byte _0813BE36 @ case 3 - .4byte _0813BE3C @ case 4 - .4byte _0813BE42 @ case 5 - .4byte _0813BE48 @ case 6 - .4byte _0813BE4C @ case 7 -_0813BE30: - movs r3, #0 - movs r2, #3 - b _0813BE4C -_0813BE36: - movs r3, #0 - movs r2, #1 - b _0813BE4C -_0813BE3C: - movs r3, #1 - movs r2, #0 - b _0813BE4C -_0813BE42: - movs r3, #0 - movs r2, #4 - b _0813BE4C -_0813BE48: - movs r3, #1 - movs r2, #5 -_0813BE4C: - ldr r0, _0813BE60 - ldr r0, [r0] - ldr r1, _0813BE64 - adds r0, r0, r1 - adds r1, r3, #0 - bl sub_0813BE68 - pop {r0} - bx r0 - .align 2, 0 -_0813BE60: .4byte gUnknown_3005AEC -_0813BE64: .4byte 0x00003150 - thumb_func_end BufferStreakTrainerText - - thumb_func_start sub_0813BE68 -sub_0813BE68: @ 0x0813BE68 - push {r4, lr} - lsls r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsrs r1, r1, #0x14 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, #0xff - bne _0813BF1C - cmp r2, #5 - bhi _0813BF08 - lsls r0, r2, #2 - ldr r1, _0813BE88 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813BE88: .4byte _0813BE8C -_0813BE8C: @ jump table - .4byte _0813BF08 @ case 0 - .4byte _0813BEA4 @ case 1 - .4byte _0813BEB8 @ case 2 - .4byte _0813BECC @ case 3 - .4byte _0813BEE0 @ case 4 - .4byte _0813BEF4 @ case 5 -_0813BEA4: - ldr r0, _0813BEB0 - ldr r1, _0813BEB4 - bl StringCopy - b _0813BF2A - .align 2, 0 -_0813BEB0: .4byte gUnknown_2021C40 -_0813BEB4: .4byte gUnknown_85CA9E8 -_0813BEB8: - ldr r0, _0813BEC4 - ldr r1, _0813BEC8 - bl StringCopy - b _0813BF2A - .align 2, 0 -_0813BEC4: .4byte gUnknown_2021C40 -_0813BEC8: .4byte gUnknown_85CA9EC -_0813BECC: - ldr r0, _0813BED8 - ldr r1, _0813BEDC - bl StringCopy - b _0813BF2A - .align 2, 0 -_0813BED8: .4byte gUnknown_2021C40 -_0813BEDC: .4byte gUnknown_85CA9F0 -_0813BEE0: - ldr r0, _0813BEEC - ldr r1, _0813BEF0 - bl StringCopy - b _0813BF2A - .align 2, 0 -_0813BEEC: .4byte gUnknown_2021C40 -_0813BEF0: .4byte gUnknown_85CA9F3 -_0813BEF4: - ldr r0, _0813BF00 - ldr r1, _0813BF04 - bl StringCopy - b _0813BF2A - .align 2, 0 -_0813BF00: .4byte gUnknown_2021C40 -_0813BF04: .4byte gUnknown_85CA9F7 -_0813BF08: - ldr r0, _0813BF14 - ldr r1, _0813BF18 - bl StringCopy - b _0813BF2A - .align 2, 0 -_0813BF14: .4byte gUnknown_2021C40 -_0813BF18: .4byte gUnknown_85CA9E4 -_0813BF1C: - ldr r4, _0813BF30 - adds r0, r4, #0 - movs r2, #7 - bl StringCopyN - movs r0, #0xff - strb r0, [r4, #7] -_0813BF2A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813BF30: .4byte gUnknown_2021C40 - thumb_func_end sub_0813BE68 - - thumb_func_start sub_0813BF34 -sub_0813BF34: @ 0x0813BF34 - push {lr} - ldr r0, _0813BF58 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #2 - bne _0813BF64 - bl sub_0813BA68 - ldr r0, _0813BF5C - ldrb r0, [r0] - cmp r0, #1 - bne _0813BF60 - bl sub_0813BBAC - b _0813BF64 - .align 2, 0 -_0813BF58: .4byte 0x00004095 -_0813BF5C: .4byte gUnknown_2023FDE -_0813BF60: - bl sub_0813BC38 -_0813BF64: - pop {r0} - bx r0 - thumb_func_end sub_0813BF34 - - thumb_func_start sub_0813BF68 -sub_0813BF68: @ 0x0813BF68 - ldr r0, _0813BF7C - ldr r0, [r0] - ldr r1, _0813BF80 - adds r0, r0, r1 - ldrh r0, [r0] - lsrs r0, r0, #7 - movs r1, #1 - ands r0, r1 - bx lr - .align 2, 0 -_0813BF7C: .4byte gUnknown_3005AEC -_0813BF80: .4byte 0x0000141E - thumb_func_end sub_0813BF68 - - thumb_func_start sub_0813BF84 -sub_0813BF84: @ 0x0813BF84 - ldr r0, _0813BF98 - ldr r1, [r0] - ldr r0, _0813BF9C - adds r1, r1, r0 - ldrh r2, [r1] - movs r0, #0x80 - orrs r0, r2 - strh r0, [r1] - bx lr - .align 2, 0 -_0813BF98: .4byte gUnknown_3005AEC -_0813BF9C: .4byte 0x0000141E - thumb_func_end sub_0813BF84 - - thumb_func_start sub_0813BFA0 -sub_0813BFA0: @ 0x0813BFA0 - push {lr} - ldr r0, _0813BFB4 - ldrb r0, [r0] - bl sub_0813BB14 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0813BFB4: .4byte gUnknown_2037280 - thumb_func_end sub_0813BFA0 - - thumb_func_start ClearLinkBattleRecord -ClearLinkBattleRecord: @ 0x0813BFB8 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - mov r1, sp - movs r0, #0 - strh r0, [r1] - ldr r2, _0813BFE4 - mov r0, sp - adds r1, r4, #0 - bl CpuSet - movs r0, #0xff - strb r0, [r4] - movs r0, #0 - strh r0, [r4, #8] - strh r0, [r4, #0xa] - strh r0, [r4, #0xc] - strh r0, [r4, #0xe] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813BFE4: .4byte 0x01000008 - thumb_func_end ClearLinkBattleRecord - - thumb_func_start ClearLinkBattleRecords -ClearLinkBattleRecords: @ 0x0813BFE8 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #4 -_0813BFEE: - adds r0, r4, #0 - bl ClearLinkBattleRecord - adds r4, #0x10 - subs r5, #1 - cmp r5, #0 - bge _0813BFEE - movs r0, #0x17 - movs r1, #0 - bl SetGameStat - movs r0, #0x18 - movs r1, #0 - bl SetGameStat - movs r0, #0x19 - movs r1, #0 - bl SetGameStat - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ClearLinkBattleRecords - - thumb_func_start GetLinkBattleRecordTotalBattles -GetLinkBattleRecordTotalBattles: @ 0x0813C01C - adds r1, r0, #0 - ldrh r0, [r1, #0xa] - ldrh r2, [r1, #0xc] - adds r0, r0, r2 - ldrh r1, [r1, #0xe] - adds r0, r0, r1 - bx lr - .align 2, 0 - thumb_func_end GetLinkBattleRecordTotalBattles - - thumb_func_start FindLinkBattleRecord -FindLinkBattleRecord: @ 0x0813C02C - push {r4, r5, r6, r7, lr} - adds r7, r1, #0 - lsls r2, r2, #0x10 - lsrs r6, r2, #0x10 - movs r5, #0 - adds r4, r0, #0 -_0813C038: - adds r0, r4, #0 - adds r1, r7, #0 - movs r2, #7 - bl StringCompareN - cmp r0, #0 - bne _0813C050 - ldrh r0, [r4, #8] - cmp r0, r6 - bne _0813C050 - adds r0, r5, #0 - b _0813C05A -_0813C050: - adds r4, #0x10 - adds r5, #1 - cmp r5, #4 - ble _0813C038 - movs r0, #5 -_0813C05A: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end FindLinkBattleRecord - - thumb_func_start sub_0813C060 -sub_0813C060: @ 0x0813C060 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x14 - mov r8, r0 - movs r0, #4 -_0813C06E: - subs r2, r0, #1 - mov sb, r2 - cmp r2, #0 - blt _0813C0C8 - lsls r0, r0, #4 - mov r1, r8 - adds r6, r1, r0 - lsls r0, r2, #4 - adds r5, r0, r1 -_0813C080: - adds r0, r6, #0 - str r2, [sp, #0x10] - bl GetLinkBattleRecordTotalBattles - adds r4, r0, #0 - adds r0, r5, #0 - bl GetLinkBattleRecordTotalBattles - ldr r2, [sp, #0x10] - cmp r4, r0 - ble _0813C0BA - mov r1, sp - adds r0, r6, #0 - ldm r0!, {r3, r4, r7} - stm r1!, {r3, r4, r7} - ldr r0, [r0] - str r0, [r1] - adds r1, r6, #0 - adds r0, r5, #0 - ldm r0!, {r3, r4, r7} - stm r1!, {r3, r4, r7} - ldr r0, [r0] - str r0, [r1] - adds r1, r5, #0 - mov r0, sp - ldm r0!, {r3, r4, r7} - stm r1!, {r3, r4, r7} - ldr r0, [r0] - str r0, [r1] -_0813C0BA: - subs r5, #0x10 - movs r0, #1 - rsbs r0, r0, #0 - add sb, r0 - mov r1, sb - cmp r1, #0 - bge _0813C080 -_0813C0C8: - adds r0, r2, #0 - cmp r0, #0 - bgt _0813C06E - add sp, #0x14 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_0813C060 - - thumb_func_start UpdateLinkBattleRecord -UpdateLinkBattleRecord: @ 0x0813C0DC - push {lr} - adds r2, r0, #0 - cmp r1, #2 - beq _0813C10C - cmp r1, #2 - bgt _0813C0EE - cmp r1, #1 - beq _0813C0F4 - b _0813C136 -_0813C0EE: - cmp r1, #3 - beq _0813C124 - b _0813C136 -_0813C0F4: - ldrh r0, [r2, #0xa] - adds r0, #1 - strh r0, [r2, #0xa] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _0813C108 - cmp r0, r1 - bls _0813C136 - strh r1, [r2, #0xa] - b _0813C136 - .align 2, 0 -_0813C108: .4byte 0x0000270F -_0813C10C: - ldrh r0, [r2, #0xc] - adds r0, #1 - strh r0, [r2, #0xc] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _0813C120 - cmp r0, r1 - bls _0813C136 - strh r1, [r2, #0xc] - b _0813C136 - .align 2, 0 -_0813C120: .4byte 0x0000270F -_0813C124: - ldrh r0, [r2, #0xe] - adds r0, #1 - strh r0, [r2, #0xe] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _0813C13C - cmp r0, r1 - bls _0813C136 - strh r1, [r2, #0xe] -_0813C136: - pop {r0} - bx r0 - .align 2, 0 -_0813C13C: .4byte 0x0000270F - thumb_func_end UpdateLinkBattleRecord - - thumb_func_start UpdateLinkBattleGameStats -UpdateLinkBattleGameStats: @ 0x0813C140 - push {r4, lr} - cmp r0, #2 - beq _0813C15A - cmp r0, #2 - bgt _0813C150 - cmp r0, #1 - beq _0813C156 - b _0813C172 -_0813C150: - cmp r0, #3 - beq _0813C15E - b _0813C172 -_0813C156: - movs r4, #0x17 - b _0813C160 -_0813C15A: - movs r4, #0x18 - b _0813C160 -_0813C15E: - movs r4, #0x19 -_0813C160: - adds r0, r4, #0 - bl GetGameStat - ldr r1, _0813C178 - cmp r0, r1 - bhi _0813C172 - adds r0, r4, #0 - bl IncrementGameStat -_0813C172: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813C178: .4byte 0x0000270E - thumb_func_end UpdateLinkBattleGameStats - - thumb_func_start UpdateLinkBattleRecords -UpdateLinkBattleRecords: @ 0x0813C17C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r6, r0, #0 - mov r8, r1 - mov sl, r3 - ldr r0, [sp, #0x20] - lsls r2, r2, #0x10 - lsrs r7, r2, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - mov r0, sl - bl UpdateLinkBattleGameStats - adds r0, r6, #0 - bl sub_0813C060 - adds r0, r6, #0 - mov r1, r8 - adds r2, r7, #0 - bl FindLinkBattleRecord - adds r5, r0, #0 - cmp r5, #5 - bne _0813C1E0 - movs r5, #4 - adds r4, r6, #0 - adds r4, #0x40 - adds r0, r4, #0 - bl ClearLinkBattleRecord - adds r0, r4, #0 - mov r1, r8 - movs r2, #7 - bl StringCopyN - strh r7, [r4, #8] - adds r2, r6, #0 - adds r2, #0x54 - ldr r1, _0813C200 - mov r3, sb - lsls r0, r3, #3 - subs r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0, #0x1a] - strb r0, [r2] -_0813C1E0: - lsls r0, r5, #4 - adds r0, r6, r0 - mov r1, sl - bl UpdateLinkBattleRecord - adds r0, r6, #0 - bl sub_0813C060 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0813C200: .4byte gUnknown_20226A0 - thumb_func_end UpdateLinkBattleRecords - - thumb_func_start sub_0813C204 -sub_0813C204: @ 0x0813C204 - push {lr} - ldr r0, _0813C218 - ldr r0, [r0] - ldr r1, _0813C21C - adds r0, r0, r1 - bl ClearLinkBattleRecords - pop {r0} - bx r0 - .align 2, 0 -_0813C218: .4byte gUnknown_3005AEC -_0813C21C: .4byte 0x00003150 - thumb_func_end sub_0813C204 - - thumb_func_start sub_0813C220 -sub_0813C220: @ 0x0813C220 - push {lr} - movs r1, #0x64 - muls r1, r0, r1 - ldr r0, _0813C240 - adds r1, r1, r0 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r2, _0813C244 - cmp r0, r2 - bls _0813C23C - strh r2, [r1] -_0813C23C: - pop {r0} - bx r0 - .align 2, 0 -_0813C240: .4byte gUnknown_203980C -_0813C244: .4byte 0x0000270F - thumb_func_end sub_0813C220 - - thumb_func_start sub_0813C248 -sub_0813C248: @ 0x0813C248 - push {lr} - movs r1, #0x64 - muls r1, r0, r1 - ldr r0, _0813C268 - adds r1, r1, r0 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r2, _0813C26C - cmp r0, r2 - bls _0813C264 - strh r2, [r1] -_0813C264: - pop {r0} - bx r0 - .align 2, 0 -_0813C268: .4byte gUnknown_203980E -_0813C26C: .4byte 0x0000270F - thumb_func_end sub_0813C248 - - thumb_func_start UpdateTrainerCardWinsLosses -UpdateTrainerCardWinsLosses: @ 0x0813C270 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0813C284 - ldrb r0, [r0] - cmp r0, #1 - beq _0813C288 - cmp r0, #2 - beq _0813C296 - b _0813C2A4 - .align 2, 0 -_0813C284: .4byte gUnknown_2023FDE -_0813C288: - eors r0, r4 - bl sub_0813C220 - adds r0, r4, #0 - bl sub_0813C248 - b _0813C2A4 -_0813C296: - movs r0, #1 - eors r0, r4 - bl sub_0813C248 - adds r0, r4, #0 - bl sub_0813C220 -_0813C2A4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end UpdateTrainerCardWinsLosses - - thumb_func_start UpdatePlayerLinkBattleRecords -UpdatePlayerLinkBattleRecords: @ 0x0813C2AC - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - bl InUnionRoom - cmp r0, #1 - beq _0813C2E6 - adds r0, r4, #0 - bl UpdateTrainerCardWinsLosses - ldr r0, _0813C2F0 - ldr r0, [r0] - ldr r1, _0813C2F4 - adds r0, r0, r1 - movs r1, #0x64 - adds r3, r4, #0 - muls r3, r1, r3 - ldr r2, _0813C2F8 - adds r1, r3, r2 - subs r2, #0x30 - adds r3, r3, r2 - ldrh r2, [r3, #0xe] - ldr r3, _0813C2FC - ldrb r3, [r3] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp] - bl UpdateLinkBattleRecords -_0813C2E6: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813C2F0: .4byte gUnknown_3005AEC -_0813C2F4: .4byte 0x00003150 -_0813C2F8: .4byte gUnknown_2039828 -_0813C2FC: .4byte gUnknown_2023FDE - thumb_func_end UpdatePlayerLinkBattleRecords - - thumb_func_start PrintLinkBattleWinsLossesDraws -PrintLinkBattleWinsLossesDraws: @ 0x0813C300 - push {r4, lr} - sub sp, #0xc - ldr r4, _0813C36C - movs r0, #0x17 - bl GetGameStat - adds r1, r0, #0 - adds r0, r4, #0 - movs r2, #1 - movs r3, #4 - bl sub_080089D8 - ldr r4, _0813C370 - movs r0, #0x18 - bl GetGameStat - adds r1, r0, #0 - adds r0, r4, #0 - movs r2, #1 - movs r3, #4 - bl sub_080089D8 - ldr r4, _0813C374 - movs r0, #0x19 - bl GetGameStat - adds r1, r0, #0 - adds r0, r4, #0 - movs r2, #1 - movs r3, #4 - bl sub_080089D8 - ldr r4, _0813C378 - ldr r1, _0813C37C - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r0, _0813C380 - ldrb r0, [r0] - movs r1, #0x12 - str r1, [sp] - movs r1, #0 - str r1, [sp, #4] - str r1, [sp, #8] - movs r1, #1 - adds r2, r4, #0 - movs r3, #0 - bl AddTextPrinterParameterized - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813C36C: .4byte gUnknown_2021C40 -_0813C370: .4byte gUnknown_2021C54 -_0813C374: .4byte gUnknown_2021C68 -_0813C378: .4byte gUnknown_2021C7C -_0813C37C: .4byte gUnknown_85937EF -_0813C380: .4byte gUnknown_203A840 - thumb_func_end PrintLinkBattleWinsLossesDraws - - thumb_func_start CrackedFloorPerStepCallback -CrackedFloorPerStepCallback: @ 0x0813C384 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - adds r6, r0, #0 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - ldrh r0, [r6, #0xa] - cmp r0, #0 - bne _0813C408 - ldr r7, [r6, #0xc] - cmp r7, #0 - bne _0813C408 - ldr r0, _0813C3FC - mov r8, r0 - ldrb r0, [r0] - ldr r2, _0813C400 - lsls r4, r4, #3 - adds r4, #2 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp] - str r7, [sp, #4] - str r7, [sp, #8] - movs r1, #1 - movs r3, #8 - bl AddTextPrinterParameterized - mov r1, r8 - ldrb r0, [r1] - ldr r5, _0813C404 - str r4, [sp] - str r7, [sp, #4] - str r7, [sp, #8] - movs r1, #1 - adds r2, r5, #0 - movs r3, #0x50 - bl AddTextPrinterParameterized - mov r1, r8 - ldrb r0, [r1] - str r4, [sp] - str r7, [sp, #4] - str r7, [sp, #8] - movs r1, #1 - adds r2, r5, #0 - movs r3, #0x78 - bl AddTextPrinterParameterized - mov r1, r8 - ldrb r0, [r1] - str r4, [sp] - str r7, [sp, #4] - str r7, [sp, #8] - movs r1, #1 - adds r2, r5, #0 - movs r3, #0xa8 - bl AddTextPrinterParameterized - b _0813C49A - .align 2, 0 -_0813C3FC: .4byte gUnknown_203A840 -_0813C400: .4byte gUnknown_8593811 -_0813C404: .4byte gUnknown_8593817 -_0813C408: - ldr r0, _0813C4A8 - movs r1, #8 - bl StringFillWithTerminator - ldr r0, _0813C4A8 - adds r1, r6, #0 - movs r2, #7 - bl StringCopyN - ldr r0, _0813C4AC - mov r8, r0 - ldrb r0, [r0] - lsls r4, r4, #3 - adds r4, #2 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp] - movs r5, #0 - str r5, [sp, #4] - str r5, [sp, #8] - movs r1, #1 - ldr r2, _0813C4A8 - movs r3, #8 - bl AddTextPrinterParameterized - ldrh r1, [r6, #0xa] - ldr r0, _0813C4A8 - movs r2, #1 - movs r3, #4 - bl sub_080089D8 - mov r1, r8 - ldrb r0, [r1] - str r4, [sp] - str r5, [sp, #4] - str r5, [sp, #8] - movs r1, #1 - ldr r2, _0813C4A8 - movs r3, #0x50 - bl AddTextPrinterParameterized - ldrh r1, [r6, #0xc] - ldr r0, _0813C4A8 - movs r2, #1 - movs r3, #4 - bl sub_080089D8 - mov r1, r8 - ldrb r0, [r1] - str r4, [sp] - str r5, [sp, #4] - str r5, [sp, #8] - movs r1, #1 - ldr r2, _0813C4A8 - movs r3, #0x78 - bl AddTextPrinterParameterized - ldrh r1, [r6, #0xe] - ldr r0, _0813C4A8 - movs r2, #1 - movs r3, #4 - bl sub_080089D8 - mov r1, r8 - ldrb r0, [r1] - str r4, [sp] - str r5, [sp, #4] - str r5, [sp, #8] - movs r1, #1 - ldr r2, _0813C4A8 - movs r3, #0xa8 - bl AddTextPrinterParameterized -_0813C49A: - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0813C4A8: .4byte gUnknown_2021C40 -_0813C4AC: .4byte gUnknown_203A840 - thumb_func_end CrackedFloorPerStepCallback - - thumb_func_start sub_0813C4B0 -sub_0813C4B0: @ 0x0813C4B0 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0xc - ldr r6, _0813C560 - ldr r0, _0813C564 - bl AddWindow - strb r0, [r6] - ldrb r0, [r6] - movs r1, #0 - bl sub_08196FF0 - ldrb r0, [r6] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r5, _0813C568 - ldr r1, _0813C56C - adds r0, r5, #0 - bl StringExpandPlaceholders - ldrb r0, [r6] - movs r1, #2 - str r1, [sp] - movs r4, #0 - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - adds r2, r5, #0 - movs r3, #0x30 - bl AddTextPrinterParameterized - ldr r0, _0813C570 - mov r8, r0 - ldr r0, [r0] - ldr r1, _0813C574 - mov sb, r1 - add r0, sb - bl PrintLinkBattleWinsLossesDraws - ldr r1, _0813C578 - adds r0, r5, #0 - bl StringExpandPlaceholders - ldrb r0, [r6] - movs r1, #0x2a - str r1, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - adds r2, r5, #0 - movs r3, #0x50 - bl AddTextPrinterParameterized - mov r7, r8 - movs r6, #0xe0 - lsls r6, r6, #0x13 - mov r5, sb - movs r4, #4 -_0813C52A: - ldr r0, [r7] - adds r0, r0, r5 - lsrs r1, r6, #0x18 - bl CrackedFloorPerStepCallback - movs r0, #0x80 - lsls r0, r0, #0x12 - adds r6, r6, r0 - adds r5, #0x10 - subs r4, #1 - cmp r4, #0 - bge _0813C52A - ldr r4, _0813C560 - ldrb r0, [r4] - bl PutWindowTilemap - ldrb r0, [r4] - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0813C560: .4byte gUnknown_203A840 -_0813C564: .4byte gUnknown_85937D8 -_0813C568: .4byte gUnknown_2021C7C -_0813C56C: .4byte gUnknown_85937E0 -_0813C570: .4byte gUnknown_3005AEC -_0813C574: .4byte 0x00003150 -_0813C578: .4byte gUnknown_8593801 - thumb_func_end sub_0813C4B0 - - thumb_func_start RemoveRecordsWindow -RemoveRecordsWindow: @ 0x0813C57C - push {r4, lr} - ldr r4, _0813C594 - ldrb r0, [r4] - movs r1, #0 - bl sub_08197060 - ldrb r0, [r4] - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813C594: .4byte gUnknown_203A840 - thumb_func_end RemoveRecordsWindow - - thumb_func_start sub_0813C598 -sub_0813C598: @ 0x0813C598 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _0813C5BC - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0813C5B8 - ldr r0, _0813C5C0 - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _0813C5C4 - str r0, [r1] -_0813C5B8: - pop {r0} - bx r0 - .align 2, 0 -_0813C5BC: .4byte gUnknown_2037C74 -_0813C5C0: .4byte gUnknown_3005B60 -_0813C5C4: .4byte Task_CloseTrainerHillRecordsOnButton - thumb_func_end sub_0813C598 - - thumb_func_start Task_CloseTrainerHillRecordsOnButton -Task_CloseTrainerHillRecordsOnButton: @ 0x0813C5C8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _0813C5FC - adds r4, r1, r0 - ldr r0, _0813C600 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0813C5EC - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0813C5F6 -_0813C5EC: - movs r0, #5 - bl sub_080A306C - ldr r0, _0813C604 - str r0, [r4] -_0813C5F6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813C5FC: .4byte gUnknown_3005B60 -_0813C600: .4byte gUnknown_3002360 -_0813C604: .4byte sub_0813C608 - thumb_func_end Task_CloseTrainerHillRecordsOnButton - - thumb_func_start sub_0813C608 -sub_0813C608: @ 0x0813C608 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _0813C638 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0813C63C - str r1, [r0] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813C638: .4byte gUnknown_3005B60 -_0813C63C: .4byte party_menu_link_mon_pokeball_object - thumb_func_end sub_0813C608 - - thumb_func_start party_menu_link_mon_pokeball_object -party_menu_link_mon_pokeball_object: @ 0x0813C640 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0813C678 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0813C670 - ldr r0, _0813C67C - bl SetMainCallback2 - ldr r0, _0813C680 - ldr r0, [r0] - bl Free - movs r0, #0 - bl sub_0813C684 - bl FreeAllWindowBuffers - adds r0, r4, #0 - bl DestroyTask -_0813C670: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813C678: .4byte gUnknown_2037C74 -_0813C67C: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic -_0813C680: .4byte gUnknown_203A844 - thumb_func_end party_menu_link_mon_pokeball_object - - thumb_func_start sub_0813C684 -sub_0813C684: @ 0x0813C684 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #0 - bl FillWindowPixelBuffer - adds r0, r4, #0 - bl ClearWindowTilemap - adds r0, r4, #0 - movs r1, #2 - bl CopyWindowToVram - adds r0, r4, #0 - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0813C684 - - thumb_func_start ClearVramOamPlttRegs -ClearVramOamPlttRegs: @ 0x0813C6B0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - movs r3, #0xc0 - lsls r3, r3, #0x13 - movs r4, #0xc0 - lsls r4, r4, #9 - add r0, sp, #4 - mov r8, r0 - mov r2, sp - movs r6, #0 - ldr r1, _0813C7E0 - movs r5, #0x80 - lsls r5, r5, #5 - ldr r7, _0813C7E4 - movs r0, #0x81 - lsls r0, r0, #0x18 - mov ip, r0 -_0813C6D6: - strh r6, [r2] - mov r0, sp - str r0, [r1] - str r3, [r1, #4] - str r7, [r1, #8] - ldr r0, [r1, #8] - adds r3, r3, r5 - subs r4, r4, r5 - cmp r4, r5 - bhi _0813C6D6 - strh r6, [r2] - mov r2, sp - str r2, [r1] - str r3, [r1, #4] - lsrs r0, r4, #1 - mov r2, ip - orrs r0, r2 - str r0, [r1, #8] - ldr r0, [r1, #8] - movs r0, #0xe0 - lsls r0, r0, #0x13 - movs r3, #0x80 - lsls r3, r3, #3 - movs r4, #0 - str r4, [sp, #4] - ldr r2, _0813C7E0 - mov r1, r8 - str r1, [r2] - str r0, [r2, #4] - lsrs r0, r3, #2 - movs r1, #0x85 - lsls r1, r1, #0x18 - orrs r0, r1 - str r0, [r2, #8] - ldr r0, [r2, #8] - movs r1, #0xa0 - lsls r1, r1, #0x13 - mov r0, sp - strh r4, [r0] - str r0, [r2] - str r1, [r2, #4] - lsrs r3, r3, #1 - movs r0, #0x81 - lsls r0, r0, #0x18 - orrs r3, r0 - str r3, [r2, #8] - ldr r0, [r2, #8] - movs r0, #0 - movs r1, #0 - bl SetGpuReg - movs r0, #8 - movs r1, #0 - bl SetGpuReg - movs r0, #0x10 - movs r1, #0 - bl SetGpuReg - movs r0, #0x12 - movs r1, #0 - bl SetGpuReg - movs r0, #0xa - movs r1, #0 - bl SetGpuReg - movs r0, #0x14 - movs r1, #0 - bl SetGpuReg - movs r0, #0x16 - movs r1, #0 - bl SetGpuReg - movs r0, #0xc - movs r1, #0 - bl SetGpuReg - movs r0, #0x18 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1a - movs r1, #0 - bl SetGpuReg - movs r0, #0xe - movs r1, #0 - bl SetGpuReg - movs r0, #0x1c - movs r1, #0 - bl SetGpuReg - movs r0, #0x1e - movs r1, #0 - bl SetGpuReg - movs r0, #0x40 - movs r1, #0 - bl SetGpuReg - movs r0, #0x44 - movs r1, #0 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0 - bl SetGpuReg - movs r0, #0x4a - movs r1, #0 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0813C7E0: .4byte 0x040000D4 -_0813C7E4: .4byte 0x81000800 - thumb_func_end ClearVramOamPlttRegs - - thumb_func_start ClearTasksAndGraphicalStructs -ClearTasksAndGraphicalStructs: @ 0x0813C7E8 - push {lr} - bl ScanlineEffect_Stop - bl ResetTasks - bl ResetSpriteData - bl ResetPaletteFade - bl FreeAllSpritePalettes - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ClearTasksAndGraphicalStructs - - thumb_func_start ResetBgCoordinates -ResetBgCoordinates: @ 0x0813C804 - push {lr} - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ResetBgCoordinates - - thumb_func_start SetDispcntReg -SetDispcntReg: @ 0x0813C85C - push {lr} - movs r1, #0x94 - lsls r1, r1, #4 - movs r0, #0 - bl SetGpuReg - pop {r0} - bx r0 - thumb_func_end SetDispcntReg - - thumb_func_start LoadTrainerHillRecordsWindowGfx -LoadTrainerHillRecordsWindowGfx: @ 0x0813C86C - push {r4, lr} - sub sp, #8 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _0813C8A8 - adds r0, r4, #0 - movs r2, #0xc0 - movs r3, #0 - bl LoadBgTiles - ldr r1, _0813C8AC - movs r0, #0x20 - str r0, [sp] - str r0, [sp, #4] - adds r0, r4, #0 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBufferRect - ldr r0, _0813C8B0 - movs r1, #0 - movs r2, #0x20 - bl LoadPalette - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813C8A8: .4byte gUnknown_8592EE0 -_0813C8AC: .4byte gUnknown_8592FC0 -_0813C8B0: .4byte gUnknown_8592FA0 - thumb_func_end LoadTrainerHillRecordsWindowGfx - - thumb_func_start VblankCB_TrainerHillRecords -VblankCB_TrainerHillRecords: @ 0x0813C8B4 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end VblankCB_TrainerHillRecords - - thumb_func_start sub_0813C8C8 -sub_0813C8C8: @ 0x0813C8C8 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0813C8C8 - - thumb_func_start ShowTrainerHillRecords -ShowTrainerHillRecords: @ 0x0813C8E0 - push {lr} - movs r0, #0 - bl SetVBlankCallback - ldr r0, _0813C8F4 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0813C8F4: .4byte CB2_ShowTrainerHillRecords - thumb_func_end ShowTrainerHillRecords - - thumb_func_start CB2_ShowTrainerHillRecords -CB2_ShowTrainerHillRecords: @ 0x0813C8F8 - push {r4, lr} - sub sp, #4 - ldr r0, _0813C918 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #7 - bls _0813C90C - b _0813CA18 -_0813C90C: - lsls r0, r0, #2 - ldr r1, _0813C91C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813C918: .4byte gUnknown_3002360 -_0813C91C: .4byte _0813C920 -_0813C920: @ jump table - .4byte _0813C940 @ case 0 - .4byte _0813C94C @ case 1 - .4byte _0813C952 @ case 2 - .4byte _0813C984 @ case 3 - .4byte _0813C99A @ case 4 - .4byte _0813C9BA @ case 5 - .4byte _0813C9CC @ case 6 - .4byte _0813C9F0 @ case 7 -_0813C940: - movs r0, #0 - bl SetVBlankCallback - bl ClearVramOamPlttRegs - b _0813C9DC -_0813C94C: - bl ClearTasksAndGraphicalStructs - b _0813C9DC -_0813C952: - ldr r4, _0813C97C - movs r0, #0x80 - lsls r0, r0, #4 - bl AllocZeroed - str r0, [r4] - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _0813C980 - movs r0, #0 - movs r2, #2 - bl InitBgsFromTemplates - ldr r1, [r4] - movs r0, #3 - bl SetBgTilemapBuffer - bl ResetBgCoordinates - b _0813C9DC - .align 2, 0 -_0813C97C: .4byte gUnknown_203A844 -_0813C980: .4byte gUnknown_85937C0 -_0813C984: - movs r0, #3 - bl LoadTrainerHillRecordsWindowGfx - movs r0, #0 - bl stdpal_get - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - b _0813C9DC -_0813C99A: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0813CA18 - movs r0, #0 - bl ShowBg - movs r0, #3 - bl ShowBg - movs r0, #3 - bl CopyBgTilemapBufferToVram - b _0813C9DC -_0813C9BA: - ldr r0, _0813C9C8 - bl InitWindows - bl sub_08004480 - b _0813C9DC - .align 2, 0 -_0813C9C8: .4byte gUnknown_85937C8 -_0813C9CC: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade -_0813C9DC: - ldr r1, _0813C9EC - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0813CA18 - .align 2, 0 -_0813C9EC: .4byte gUnknown_3002360 -_0813C9F0: - bl SetDispcntReg - ldr r0, _0813CA20 - bl SetVBlankCallback - bl sub_081D53CC - ldr r0, _0813CA24 - movs r1, #8 - bl CreateTask - ldr r0, _0813CA28 - bl SetMainCallback2 - ldr r0, _0813CA2C - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] -_0813CA18: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813CA20: .4byte VblankCB_TrainerHillRecords -_0813CA24: .4byte sub_0813C598 -_0813CA28: .4byte sub_0813C8C8 -_0813CA2C: .4byte gUnknown_3002360 - thumb_func_end CB2_ShowTrainerHillRecords - - thumb_func_start ResetDrawAreaGlowState -ResetDrawAreaGlowState: @ 0x0813CA30 - ldr r0, _0813CA40 - ldr r0, [r0] - movs r1, #0x8a - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0] - bx lr - .align 2, 0 -_0813CA40: .4byte gUnknown_203A848 - thumb_func_end ResetDrawAreaGlowState - - thumb_func_start DrawAreaGlow -DrawAreaGlow: @ 0x0813CA44 - push {lr} - sub sp, #4 - ldr r0, _0813CA64 - ldr r0, [r0] - movs r1, #0x8a - lsls r1, r1, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #4 - bhi _0813CAFC - lsls r0, r0, #2 - ldr r1, _0813CA68 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813CA64: .4byte gUnknown_203A848 -_0813CA68: .4byte _0813CA6C -_0813CA6C: @ jump table - .4byte _0813CA80 @ case 0 - .4byte _0813CA90 @ case 1 - .4byte _0813CA96 @ case 2 - .4byte _0813CAC8 @ case 3 - .4byte _0813CAEC @ case 4 -_0813CA80: - ldr r0, _0813CA8C - ldr r0, [r0] - ldrh r0, [r0, #0xe] - bl FindMapsWithMon - b _0813CB00 - .align 2, 0 -_0813CA8C: .4byte gUnknown_203A848 -_0813CA90: - bl sub_0813CEE8 - b _0813CB00 -_0813CA96: - ldr r1, _0813CAC0 - movs r0, #0 - str r0, [sp] - movs r0, #2 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - ldr r0, _0813CAC4 - ldr r1, [r0] - movs r0, #0x8b - lsls r0, r0, #1 - adds r1, r1, r0 - movs r2, #0xa0 - lsls r2, r2, #3 - movs r0, #2 - movs r3, #0 - bl LoadBgTilemap - b _0813CB00 - .align 2, 0 -_0813CAC0: .4byte gUnknown_859383C -_0813CAC4: .4byte gUnknown_203A848 -_0813CAC8: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0813CB10 - ldr r0, _0813CAE0 - ldr r1, _0813CAE4 - ldr r2, _0813CAE8 - bl CpuSet - b _0813CB00 - .align 2, 0 -_0813CAE0: .4byte gUnknown_859381C -_0813CAE4: .4byte gUnknown_20374F4 -_0813CAE8: .4byte 0x04000008 -_0813CAEC: - ldr r1, _0813CAF8 - movs r0, #2 - movs r2, #0 - bl ChangeBgY - b _0813CB00 - .align 2, 0 -_0813CAF8: .4byte 0xFFFFF800 -_0813CAFC: - movs r0, #0 - b _0813CB12 -_0813CB00: - ldr r0, _0813CB18 - ldr r1, [r0] - movs r0, #0x8a - lsls r0, r0, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_0813CB10: - movs r0, #1 -_0813CB12: - add sp, #4 - pop {r1} - bx r1 - .align 2, 0 -_0813CB18: .4byte gUnknown_203A848 - thumb_func_end DrawAreaGlow - - thumb_func_start FindMapsWithMon -FindMapsWithMon: @ 0x0813CB1C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - ldr r5, _0813CBC4 - ldr r0, [r5] - ldr r1, _0813CBC8 - adds r0, r0, r1 - movs r4, #0 - strh r4, [r0] - ldr r0, _0813CBCC - bl VarGet - ldr r1, [r5] - ldr r2, _0813CBD0 - adds r1, r1, r2 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #8 - bls _0813CB4C - strh r4, [r1] -_0813CB4C: - ldr r0, _0813CBD4 - ldr r0, [r0] - ldr r3, _0813CBD8 - adds r0, r0, r3 - ldrh r1, [r0, #8] - cmp r7, r1 - bne _0813CB5C - b _0813CC94 -_0813CB5C: - ldr r1, [r5] - movs r2, #0x88 - lsls r2, r2, #1 - adds r0, r1, r2 - strh r4, [r0] - movs r3, #0x89 - lsls r3, r3, #1 - adds r0, r1, r3 - strh r4, [r0] - movs r6, #0 - ldr r1, _0813CBDC -_0813CB72: - lsls r0, r6, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, r7 - bne _0813CB7E - b _0813CCD4 -_0813CB7E: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0 - beq _0813CB72 - movs r6, #0 - ldr r4, _0813CBE0 - ldrh r0, [r4] - movs r1, #0xce - lsls r1, r1, #1 - cmp r0, r1 - beq _0813CC20 - mov r8, r4 - adds r5, r4, #4 - mov sb, r1 -_0813CB9C: - lsls r0, r6, #1 - adds r1, r0, r6 - lsls r2, r1, #1 - mov r3, r8 - adds r1, r2, r3 - adds r3, r0, #0 - ldrh r1, [r1] - cmp r7, r1 - bne _0813CC0A - adds r0, r4, #2 - adds r0, r2, r0 - ldrh r0, [r0] - cmp r0, #0x18 - beq _0813CBF6 - cmp r0, #0x18 - bgt _0813CBE4 - cmp r0, #0 - beq _0813CBEA - b _0813CC0A - .align 2, 0 -_0813CBC4: .4byte gUnknown_203A848 -_0813CBC8: .4byte 0x000006E2 -_0813CBCC: .4byte 0x0000403E -_0813CBD0: .4byte 0x000006E4 -_0813CBD4: .4byte gUnknown_3005AEC -_0813CBD8: .4byte 0x000031DC -_0813CBDC: .4byte gUnknown_8593970 -_0813CBE0: .4byte gUnknown_8593978 -_0813CBE4: - cmp r0, #0x1a - beq _0813CBF6 - b _0813CC0A -_0813CBEA: - adds r0, r2, r5 - ldrh r1, [r0] - movs r0, #0 - bl SetAreaHasMon - b _0813CC0A -_0813CBF6: - adds r1, r3, r6 - lsls r1, r1, #1 - mov r0, r8 - adds r0, #2 - adds r0, r1, r0 - ldrh r0, [r0] - adds r1, r1, r5 - ldrh r1, [r1] - bl SetSpecialMapHasMon -_0813CC0A: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r4, _0813CC50 - lsls r0, r6, #1 - adds r0, r0, r6 - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r0, [r0] - cmp r0, sb - bne _0813CB9C -_0813CC20: - movs r6, #0 - ldr r1, _0813CC54 - ldrb r0, [r1] - cmp r0, #0xff - beq _0813CCD4 -_0813CC2A: - lsls r4, r6, #2 - adds r0, r4, r6 - lsls r0, r0, #2 - adds r5, r0, r1 - adds r0, r5, #0 - adds r1, r7, #0 - bl MapHasMon - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0813CC78 - ldrb r0, [r5] - cmp r0, #0x18 - beq _0813CC68 - cmp r0, #0x18 - bgt _0813CC58 - cmp r0, #0 - beq _0813CC5E - b _0813CC78 - .align 2, 0 -_0813CC50: .4byte gUnknown_8593978 -_0813CC54: .4byte gUnknown_852D9F4 -_0813CC58: - cmp r0, #0x1a - beq _0813CC68 - b _0813CC78 -_0813CC5E: - ldrb r1, [r5, #1] - movs r0, #0 - bl SetAreaHasMon - b _0813CC78 -_0813CC68: - ldr r0, _0813CC90 - adds r1, r4, r6 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1] - ldrb r1, [r1, #1] - bl SetSpecialMapHasMon -_0813CC78: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r1, _0813CC90 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0xff - bne _0813CC2A - b _0813CCD4 - .align 2, 0 -_0813CC90: .4byte gUnknown_852D9F4 -_0813CC94: - ldr r2, [r5] - movs r3, #0x89 - lsls r3, r3, #1 - adds r1, r2, r3 - strh r4, [r1] - ldrb r1, [r0, #0x13] - cmp r1, #0 - beq _0813CCCC - adds r0, r2, #0 - adds r0, #0x10 - adds r1, r2, #0 - adds r1, #0x11 - bl GetRoamerLocation - ldr r1, [r5] - ldrb r0, [r1, #0x10] - ldrb r1, [r1, #0x11] - bl Overworld_GetMapHeaderByGroupAndId - ldr r1, [r5] - ldrb r0, [r0, #0x14] - strh r0, [r1, #0x12] - movs r0, #0x88 - lsls r0, r0, #1 - adds r1, r1, r0 - movs r0, #1 - strh r0, [r1] - b _0813CCD4 -_0813CCCC: - movs r3, #0x88 - lsls r3, r3, #1 - adds r0, r2, r3 - strh r1, [r0] -_0813CCD4: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end FindMapsWithMon - - thumb_func_start SetAreaHasMon -SetAreaHasMon: @ 0x0813CCE0 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r3, r1, #0x10 - ldr r4, _0813CD3C - ldr r2, [r4] - movs r0, #0x88 - lsls r0, r0, #1 - adds r1, r2, r0 - ldrh r0, [r1] - cmp r0, #0x3f - bhi _0813CD34 - lsls r0, r0, #2 - adds r0, r2, r0 - strb r5, [r0, #0x10] - ldr r1, [r4] - movs r2, #0x88 - lsls r2, r2, #1 - adds r0, r1, r2 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r1, r1, r0 - strb r3, [r1, #0x11] - adds r0, r5, #0 - adds r1, r3, #0 - bl Overworld_GetMapHeaderByGroupAndId - ldrb r0, [r0, #0x14] - bl CorrectSpecialMapSecId - ldr r2, [r4] - movs r1, #0x88 - lsls r1, r1, #1 - adds r3, r2, r1 - ldrh r1, [r3] - lsls r1, r1, #2 - adds r2, r2, r1 - strh r0, [r2, #0x12] - ldrh r0, [r3] - adds r0, #1 - strh r0, [r3] -_0813CD34: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0813CD3C: .4byte gUnknown_203A848 - thumb_func_end SetAreaHasMon - - thumb_func_start SetSpecialMapHasMon -SetSpecialMapHasMon: @ 0x0813CD40 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, _0813CE04 - ldr r0, [r0] - movs r3, #0x89 - lsls r3, r3, #1 - adds r0, r0, r3 - ldrh r0, [r0] - cmp r0, #0x1f - bhi _0813CDFE - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl GetRegionMapSectionId - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0xd4 - bhi _0813CDFE - movs r3, #0 - ldr r0, _0813CE08 -_0813CD72: - ldrh r4, [r0] - cmp r5, r4 - beq _0813CDFE - adds r0, #2 - adds r3, #1 - cmp r3, #2 - bls _0813CD72 - ldr r1, _0813CE0C - ldrh r0, [r1] - cmp r0, #0xd5 - beq _0813CDAE - adds r4, r1, #0 - adds r7, r4, #0 - movs r6, #0 -_0813CD8E: - ldrh r0, [r4] - cmp r5, r0 - bne _0813CDA4 - adds r0, r7, #2 - adds r0, r6, r0 - ldrh r0, [r0] - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0813CDFE -_0813CDA4: - adds r4, #4 - adds r6, #4 - ldrh r0, [r4] - cmp r0, #0xd5 - bne _0813CD8E -_0813CDAE: - movs r3, #0 - ldr r0, _0813CE04 - ldr r2, [r0] - movs r4, #0x89 - lsls r4, r4, #1 - adds r1, r2, r4 - ldrh r4, [r1] - adds r1, r0, #0 - cmp r3, r4 - bge _0813CDDE - movs r6, #0xc4 - lsls r6, r6, #3 - adds r0, r2, r6 - ldrh r0, [r0] - cmp r0, r5 - beq _0813CDDE - adds r2, r2, r6 -_0813CDD0: - adds r2, #2 - adds r3, #1 - cmp r3, r4 - bge _0813CDDE - ldrh r0, [r2] - cmp r0, r5 - bne _0813CDD0 -_0813CDDE: - ldr r1, [r1] - movs r0, #0x89 - lsls r0, r0, #1 - adds r2, r1, r0 - ldrh r4, [r2] - cmp r3, r4 - bne _0813CDFE - lsls r0, r3, #1 - movs r6, #0xc4 - lsls r6, r6, #3 - adds r1, r1, r6 - adds r1, r1, r0 - strh r5, [r1] - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] -_0813CDFE: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0813CE04: .4byte gUnknown_203A848 -_0813CE08: .4byte gUnknown_8593972 -_0813CE0C: .4byte gUnknown_8593984 - thumb_func_end SetSpecialMapHasMon - - thumb_func_start GetRegionMapSectionId -GetRegionMapSectionId: @ 0x0813CE10 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl Overworld_GetMapHeaderByGroupAndId - ldrb r0, [r0, #0x14] - pop {r1} - bx r1 - thumb_func_end GetRegionMapSectionId - - thumb_func_start MapHasMon -MapHasMon: @ 0x0813CE24 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - ldrb r0, [r4] - ldrb r1, [r4, #1] - bl GetRegionMapSectionId - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xd2 - bne _0813CE58 - ldr r0, _0813CE9C - ldr r2, [r0] - ldr r0, _0813CEA0 - adds r1, r2, r0 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - ldrh r1, [r1] - ldr r0, _0813CEA4 - adds r2, r2, r0 - ldrh r0, [r2] - adds r0, #1 - cmp r1, r0 - bne _0813CE98 -_0813CE58: - ldr r0, [r4, #4] - adds r1, r5, #0 - movs r2, #0xc - bl MonListHasMon - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0813CEA8 - ldr r0, [r4, #8] - adds r1, r5, #0 - movs r2, #5 - bl MonListHasMon - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0813CEA8 - ldr r0, [r4, #0x10] - adds r1, r5, #0 - movs r2, #0xc - bl MonListHasMon - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0813CEA8 - ldr r0, [r4, #0xc] - adds r1, r5, #0 - movs r2, #5 - bl MonListHasMon - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0813CEA8 -_0813CE98: - movs r0, #0 - b _0813CEAA - .align 2, 0 -_0813CE9C: .4byte gUnknown_203A848 -_0813CEA0: .4byte 0x000006E2 -_0813CEA4: .4byte 0x000006E4 -_0813CEA8: - movs r0, #1 -_0813CEAA: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end MapHasMon - - thumb_func_start MonListHasMon -MonListHasMon: @ 0x0813CEB0 - push {r4, lr} - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - cmp r0, #0 - beq _0813CEDE - movs r3, #0 - cmp r3, r2 - bhs _0813CEDE - ldr r1, [r0, #4] -_0813CEC6: - lsls r0, r3, #2 - adds r0, r0, r1 - ldrh r0, [r0, #2] - cmp r0, r4 - bne _0813CED4 - movs r0, #1 - b _0813CEE0 -_0813CED4: - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, r2 - blo _0813CEC6 -_0813CEDE: - movs r0, #0 -_0813CEE0: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MonListHasMon - - thumb_func_start sub_0813CEE8 -sub_0813CEE8: @ 0x0813CEE8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - movs r7, #0 - ldr r0, _0813D0F4 - mov sb, r0 - mov r5, sb - movs r4, #0x8b - lsls r4, r4, #1 - movs r3, #0 - ldr r2, _0813D0F8 -_0813CF04: - ldr r0, [r5] - lsls r1, r7, #1 - adds r0, r0, r4 - adds r0, r0, r1 - strh r3, [r0] - adds r0, r7, #1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - cmp r7, r2 - bls _0813CF04 - movs r7, #0 - mov r1, sb - ldr r0, [r1] - movs r2, #0x88 - lsls r2, r2, #1 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r7, r0 - bhs _0813CF92 - mov r3, sb -_0813CF2C: - movs r5, #0 - movs r6, #0 - adds r0, r7, #1 - mov r8, r0 - lsls r7, r7, #2 - mov sl, r7 -_0813CF38: - movs r4, #0 -_0813CF3A: - adds r0, r4, #0 - adds r1, r6, #0 - str r3, [sp] - bl GetRegionMapSectionIdAt - ldr r3, [sp] - ldr r2, [r3] - mov r7, sl - adds r1, r2, r7 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrh r1, [r1, #0x12] - cmp r0, r1 - bne _0813CF64 - lsls r0, r5, #1 - movs r7, #0x8b - lsls r7, r7, #1 - adds r1, r2, r7 - adds r1, r1, r0 - ldr r0, _0813D0FC - strh r0, [r1] -_0813CF64: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x1f - bls _0813CF3A - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0x13 - bls _0813CF38 - mov r1, r8 - lsls r0, r1, #0x10 - lsrs r7, r0, #0x10 - ldr r0, [r3] - movs r2, #0x88 - lsls r2, r2, #1 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r7, r0 - blo _0813CF2C -_0813CF92: - movs r5, #0 - movs r6, #0 - ldr r7, _0813D0F4 - mov ip, r7 - movs r7, #0x8b - lsls r7, r7, #1 - ldr r3, _0813D0FC -_0813CFA0: - movs r4, #0 - adds r0, r6, #1 - mov sl, r0 -_0813CFA6: - mov r1, ip - ldr r0, [r1] - lsls r1, r5, #1 - adds r2, r0, r7 - adds r1, r2, r1 - ldrh r0, [r1] - adds r1, r5, #1 - mov r8, r1 - cmp r0, r3 - bne _0813D0B2 - cmp r4, #0 - beq _0813CFD0 - subs r0, r5, #1 - lsls r0, r0, #1 - adds r1, r2, r0 - ldrh r2, [r1] - cmp r2, r3 - beq _0813CFD0 - movs r0, #2 - orrs r0, r2 - strh r0, [r1] -_0813CFD0: - adds r2, r5, #1 - mov r8, r2 - cmp r4, #0x1f - beq _0813CFEE - mov r1, ip - ldr r0, [r1] - lsls r1, r2, #1 - adds r0, r0, r7 - adds r2, r0, r1 - ldrh r1, [r2] - cmp r1, r3 - beq _0813CFEE - movs r0, #1 - orrs r0, r1 - strh r0, [r2] -_0813CFEE: - cmp r6, #0 - beq _0813D00C - mov r2, ip - ldr r1, [r2] - adds r0, r5, #0 - subs r0, #0x20 - lsls r0, r0, #1 - adds r1, r1, r7 - adds r1, r1, r0 - ldrh r2, [r1] - cmp r2, r3 - beq _0813D00C - movs r0, #8 - orrs r0, r2 - strh r0, [r1] -_0813D00C: - cmp r6, #0x13 - beq _0813D02A - mov r0, ip - ldr r1, [r0] - adds r0, r5, #0 - adds r0, #0x20 - lsls r0, r0, #1 - adds r1, r1, r7 - adds r1, r1, r0 - ldrh r2, [r1] - cmp r2, r3 - beq _0813D02A - movs r0, #4 - orrs r0, r2 - strh r0, [r1] -_0813D02A: - cmp r4, #0 - beq _0813D04C - cmp r6, #0 - beq _0813D04C - mov r2, ip - ldr r1, [r2] - adds r0, r5, #0 - subs r0, #0x21 - lsls r0, r0, #1 - adds r1, r1, r7 - adds r1, r1, r0 - ldrh r2, [r1] - cmp r2, r3 - beq _0813D04C - movs r0, #0x10 - orrs r0, r2 - strh r0, [r1] -_0813D04C: - cmp r4, #0x1f - beq _0813D06E - cmp r6, #0 - beq _0813D06E - mov r0, ip - ldr r1, [r0] - adds r0, r5, #0 - subs r0, #0x1f - lsls r0, r0, #1 - adds r1, r1, r7 - adds r1, r1, r0 - ldrh r2, [r1] - cmp r2, r3 - beq _0813D06E - movs r0, #0x40 - orrs r0, r2 - strh r0, [r1] -_0813D06E: - cmp r4, #0 - beq _0813D090 - cmp r6, #0x13 - beq _0813D090 - mov r2, ip - ldr r1, [r2] - adds r0, r5, #0 - adds r0, #0x1f - lsls r0, r0, #1 - adds r1, r1, r7 - adds r1, r1, r0 - ldrh r2, [r1] - cmp r2, r3 - beq _0813D090 - movs r0, #0x20 - orrs r0, r2 - strh r0, [r1] -_0813D090: - cmp r4, #0x1f - beq _0813D0B2 - cmp r6, #0x13 - beq _0813D0B2 - mov r0, ip - ldr r1, [r0] - adds r0, r5, #0 - adds r0, #0x21 - lsls r0, r0, #1 - adds r1, r1, r7 - adds r1, r1, r0 - ldrh r2, [r1] - cmp r2, r3 - beq _0813D0B2 - movs r0, #0x80 - orrs r0, r2 - strh r0, [r1] -_0813D0B2: - mov r1, r8 - lsls r0, r1, #0x10 - lsrs r5, r0, #0x10 - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x1f - bhi _0813D0C4 - b _0813CFA6 -_0813D0C4: - mov r2, sl - lsls r0, r2, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0x13 - bhi _0813D0D0 - b _0813CFA0 -_0813D0D0: - movs r7, #0 -_0813D0D2: - mov r1, sb - ldr r0, [r1] - lsls r1, r7, #1 - movs r6, #0x8b - lsls r6, r6, #1 - adds r0, r0, r6 - adds r3, r0, r1 - ldrh r4, [r3] - adds r2, r4, #0 - ldr r0, _0813D0FC - adds r5, r1, #0 - cmp r2, r0 - bne _0813D104 - ldr r0, _0813D100 - strh r0, [r3] - b _0813D2A8 - .align 2, 0 -_0813D0F4: .4byte gUnknown_203A848 -_0813D0F8: .4byte 0x0000027F -_0813D0FC: .4byte 0x0000FFFF -_0813D100: .4byte 0x0000A010 -_0813D104: - cmp r2, #0 - bne _0813D10A - b _0813D2A8 -_0813D10A: - movs r2, #0xa0 - lsls r2, r2, #8 - adds r0, r2, #0 - adds r1, r0, #0 - orrs r1, r4 - strh r1, [r3] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0813D124 - ldr r0, _0813D198 - ands r1, r0 - strh r1, [r3] -_0813D124: - mov r1, sb - ldr r0, [r1] - adds r0, r0, r6 - adds r2, r0, r5 - ldrh r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0813D13C - ldr r0, _0813D19C - ands r0, r1 - strh r0, [r2] -_0813D13C: - mov r2, sb - ldr r0, [r2] - adds r0, r0, r6 - adds r2, r0, r5 - ldrh r1, [r2] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0813D154 - ldr r0, _0813D1A0 - ands r0, r1 - strh r0, [r2] -_0813D154: - mov r1, sb - ldr r0, [r1] - adds r0, r0, r6 - adds r2, r0, r5 - ldrh r1, [r2] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0813D16C - ldr r0, _0813D1A4 - ands r0, r1 - strh r0, [r2] -_0813D16C: - mov r2, sb - ldr r0, [r2] - adds r0, r0, r6 - adds r4, r0, r5 - ldrh r0, [r4] - movs r1, #0xf - ands r1, r0 - adds r3, r1, #0 - movs r2, #0xf0 - ands r2, r0 - cmp r2, #0 - bne _0813D186 - b _0813D2A8 -_0813D186: - strh r1, [r4] - cmp r3, #0xa - bls _0813D18E - b _0813D2A8 -_0813D18E: - lsls r0, r3, #2 - ldr r1, _0813D1A8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813D198: .4byte 0x0000FFCF -_0813D19C: .4byte 0x0000FF3F -_0813D1A0: .4byte 0x0000FFAF -_0813D1A4: .4byte 0x0000FF5F -_0813D1A8: .4byte _0813D1AC -_0813D1AC: @ jump table - .4byte _0813D1D8 @ case 0 - .4byte _0813D208 @ case 1 - .4byte _0813D1F0 @ case 2 - .4byte _0813D2A8 @ case 3 - .4byte _0813D254 @ case 4 - .4byte _0813D284 @ case 5 - .4byte _0813D284 @ case 6 - .4byte _0813D2A8 @ case 7 - .4byte _0813D224 @ case 8 - .4byte _0813D296 @ case 9 - .4byte _0813D296 @ case 10 -_0813D1D8: - cmp r2, #0 - beq _0813D2A8 - mov r1, sb - ldr r0, [r1] - movs r1, #0x8b - lsls r1, r1, #1 - adds r0, r0, r1 - adds r0, r0, r5 - ldrh r1, [r0] - adds r1, #0x10 - lsrs r2, r2, #4 - b _0813D21E -_0813D1F0: - cmp r2, #0 - beq _0813D2A8 - mov r1, sb - ldr r0, [r1] - movs r1, #0x8b - lsls r1, r1, #1 - adds r0, r0, r1 - adds r0, r0, r5 - ldrh r1, [r0] - adds r1, #0x1e - lsrs r2, r2, #4 - b _0813D21E -_0813D208: - cmp r2, #0 - beq _0813D2A8 - mov r1, sb - ldr r0, [r1] - movs r1, #0x8b - lsls r1, r1, #1 - adds r0, r0, r1 - adds r0, r0, r5 - ldrh r1, [r0] - adds r1, #0x20 - lsrs r2, r2, #6 -_0813D21E: - adds r1, r1, r2 - strh r1, [r0] - b _0813D2A8 -_0813D224: - cmp r2, #0 - beq _0813D2A8 - movs r0, #0x80 - ands r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - rsbs r0, r0, #0 - lsrs r3, r0, #0x1f - movs r0, #0x20 - ands r2, r0 - cmp r2, #0 - beq _0813D240 - movs r0, #2 - orrs r3, r0 -_0813D240: - mov r2, sb - ldr r1, [r2] - movs r0, #0x8b - lsls r0, r0, #1 - adds r1, r1, r0 - adds r1, r1, r5 - ldrh r0, [r1] - adds r0, #0x20 - adds r0, r0, r3 - b _0813D2A6 -_0813D254: - cmp r2, #0 - beq _0813D2A8 - movs r0, #0x40 - ands r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - rsbs r0, r0, #0 - lsrs r3, r0, #0x1f - movs r0, #0x10 - ands r2, r0 - cmp r2, #0 - beq _0813D270 - movs r0, #2 - orrs r3, r0 -_0813D270: - mov r2, sb - ldr r1, [r2] - movs r0, #0x8b - lsls r0, r0, #1 - adds r1, r1, r0 - adds r1, r1, r5 - ldrh r0, [r1] - adds r0, #0x21 - adds r0, r0, r3 - b _0813D2A6 -_0813D284: - mov r2, sb - ldr r1, [r2] - movs r0, #0x8b - lsls r0, r0, #1 - adds r1, r1, r0 - adds r1, r1, r5 - ldrh r0, [r1] - adds r0, #0x27 - b _0813D2A6 -_0813D296: - mov r2, sb - ldr r1, [r2] - movs r0, #0x8b - lsls r0, r0, #1 - adds r1, r1, r0 - adds r1, r1, r5 - ldrh r0, [r1] - adds r0, #0x25 -_0813D2A6: - strh r0, [r1] -_0813D2A8: - adds r0, r7, #1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - ldr r0, _0813D2C8 - cmp r7, r0 - bhi _0813D2B6 - b _0813D0D2 -_0813D2B6: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0813D2C8: .4byte 0x0000027F - thumb_func_end sub_0813CEE8 - - thumb_func_start StartAreaGlow -StartAreaGlow: @ 0x0813D2CC - push {lr} - ldr r1, _0813D2F8 - ldr r2, [r1] - movs r3, #0x89 - lsls r3, r3, #1 - adds r0, r2, r3 - ldrh r0, [r0] - adds r3, r1, #0 - cmp r0, #0 - beq _0813D300 - movs r1, #0x88 - lsls r1, r1, #1 - adds r0, r2, r1 - ldrh r0, [r0] - cmp r0, #0 - bne _0813D300 - ldr r0, _0813D2FC - adds r1, r2, r0 - movs r0, #1 - strb r0, [r1] - b _0813D30A - .align 2, 0 -_0813D2F8: .4byte gUnknown_203A848 -_0813D2FC: .4byte 0x0000061E -_0813D300: - ldr r0, [r3] - ldr r1, _0813D34C - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] -_0813D30A: - ldr r1, [r3] - ldr r2, _0813D350 - adds r0, r1, r2 - movs r2, #0 - strh r2, [r0] - movs r3, #0xc3 - lsls r3, r3, #3 - adds r0, r1, r3 - strh r2, [r0] - adds r3, #2 - adds r0, r1, r3 - strh r2, [r0] - ldr r0, _0813D354 - adds r2, r1, r0 - movs r0, #0x40 - strh r0, [r2] - ldr r2, _0813D358 - adds r1, r1, r2 - movs r0, #1 - strb r0, [r1] - ldr r1, _0813D35C - movs r0, #0x50 - bl SetGpuReg - movs r1, #0x80 - lsls r1, r1, #5 - movs r0, #0x52 - bl SetGpuReg - bl DoAreaGlow - pop {r0} - bx r0 - .align 2, 0 -_0813D34C: .4byte 0x0000061E -_0813D350: .4byte 0x00000616 -_0813D354: .4byte 0x0000061C -_0813D358: .4byte 0x0000061F -_0813D35C: .4byte 0x00003F44 - thumb_func_end StartAreaGlow - - thumb_func_start DoAreaGlow -DoAreaGlow: @ 0x0813D360 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _0813D39C - ldr r2, [r0] - ldr r3, _0813D3A0 - adds r1, r2, r3 - ldrb r1, [r1] - adds r7, r0, #0 - cmp r1, #0 - bne _0813D42E - ldr r0, _0813D3A4 - adds r1, r2, r0 - ldrh r0, [r1] - cmp r0, #0 - bne _0813D428 - movs r1, #0xc3 - lsls r1, r1, #3 - adds r0, r2, r1 - ldrh r1, [r0] - adds r1, #1 - strh r1, [r0] - movs r0, #1 - ands r1, r0 - cmp r1, #0 - beq _0813D3A8 - subs r3, #4 - adds r0, r2, r3 - b _0813D3AC - .align 2, 0 -_0813D39C: .4byte gUnknown_203A848 -_0813D3A0: .4byte 0x0000061E -_0813D3A4: .4byte 0x00000616 -_0813D3A8: - ldr r1, _0813D414 - adds r0, r2, r1 -_0813D3AC: - ldrh r1, [r0] - adds r1, #4 - movs r2, #0x7f - ands r1, r2 - strh r1, [r0] - ldr r3, _0813D418 - ldr r1, [r7] - ldr r2, _0813D41C - adds r0, r1, r2 - ldrh r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r2, [r0] - lsls r2, r2, #0x10 - asrs r2, r2, #0x14 - lsls r2, r2, #0x10 - ldr r0, _0813D414 - adds r1, r1, r0 - ldrh r0, [r1] - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r1, [r0] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - lsls r1, r1, #0x18 - orrs r1, r2 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - ldr r1, [r7] - ldr r2, _0813D420 - adds r0, r1, r2 - movs r3, #0 - strh r3, [r0] - movs r0, #0xc3 - lsls r0, r0, #3 - adds r2, r1, r0 - ldrh r0, [r2] - cmp r0, #0x40 - bne _0813D4CA - strh r3, [r2] - movs r2, #0x89 - lsls r2, r2, #1 - adds r0, r1, r2 - ldrh r0, [r0] - cmp r0, #0 - beq _0813D4CA - ldr r3, _0813D424 - adds r1, r1, r3 - movs r0, #1 - b _0813D4C8 - .align 2, 0 -_0813D414: .4byte 0x0000061C -_0813D418: .4byte gUnknown_82FA8CC -_0813D41C: .4byte 0x0000061A -_0813D420: .4byte 0x00000616 -_0813D424: .4byte 0x0000061E -_0813D428: - subs r0, #1 - strh r0, [r1] - b _0813D4CA -_0813D42E: - ldr r0, _0813D4D4 - adds r1, r2, r0 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xc - bls _0813D4CA - movs r0, #0 - strh r0, [r1] - ldr r3, _0813D4D8 - adds r1, r2, r3 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r4, #0 - ldr r0, [r7] - movs r6, #0x89 - lsls r6, r6, #1 - adds r0, r0, r6 - ldrh r0, [r0] - cmp r4, r0 - bhs _0813D4A4 - adds r5, r7, #0 - movs r0, #1 - mov ip, r0 - movs r1, #5 - rsbs r1, r1, #0 - mov r8, r1 -_0813D46A: - ldr r1, [r5] - lsls r2, r4, #2 - movs r3, #0xcc - lsls r3, r3, #3 - adds r0, r1, r3 - adds r0, r0, r2 - ldr r3, [r0] - ldr r0, _0813D4D8 - adds r1, r1, r0 - ldrb r0, [r1] - movs r1, #1 - adds r3, #0x3e - ands r1, r0 - mov r2, ip - ands r1, r2 - lsls r1, r1, #2 - ldrb r2, [r3] - mov r0, r8 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, [r5] - adds r0, r0, r6 - ldrh r0, [r0] - cmp r4, r0 - blo _0813D46A -_0813D4A4: - ldr r0, [r7] - ldr r3, _0813D4D8 - adds r1, r0, r3 - ldrb r0, [r1] - cmp r0, #4 - bls _0813D4CA - movs r0, #1 - strb r0, [r1] - ldr r1, [r7] - movs r2, #0x88 - lsls r2, r2, #1 - adds r0, r1, r2 - ldrh r0, [r0] - cmp r0, #0 - beq _0813D4CA - subs r3, #1 - adds r1, r1, r3 - movs r0, #0 -_0813D4C8: - strb r0, [r1] -_0813D4CA: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0813D4D4: .4byte 0x00000616 -_0813D4D8: .4byte 0x0000061F - thumb_func_end DoAreaGlow - - thumb_func_start ShowPokedexAreaScreen -ShowPokedexAreaScreen: @ 0x0813D4DC - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r5, _0813D520 - ldr r0, _0813D524 - bl AllocZeroed - str r0, [r5] - movs r1, #0 - movs r5, #0 - strh r4, [r0, #0xe] - movs r2, #0xdd - lsls r2, r2, #3 - adds r0, r0, r2 - str r6, [r0] - strb r1, [r6] - ldr r0, _0813D528 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0813D52C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r5, [r1, #8] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0813D520: .4byte gUnknown_203A848 -_0813D524: .4byte 0x000015BC -_0813D528: .4byte Task_PokedexAreaScreen_0 -_0813D52C: .4byte gUnknown_3005B60 - thumb_func_end ShowPokedexAreaScreen - - thumb_func_start Task_PokedexAreaScreen_0 -Task_PokedexAreaScreen_0: @ 0x0813D530 - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _0813D558 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #8 - ldrsh r0, [r0, r2] - adds r2, r1, #0 - cmp r0, #0xb - bls _0813D54E - b _0813D688 -_0813D54E: - lsls r0, r0, #2 - ldr r1, _0813D55C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813D558: .4byte gUnknown_3005B60 -_0813D55C: .4byte _0813D560 -_0813D560: @ jump table - .4byte _0813D590 @ case 0 - .4byte _0813D5AC @ case 1 - .4byte _0813D5D8 @ case 2 - .4byte _0813D5EA @ case 3 - .4byte _0813D5F0 @ case 4 - .4byte _0813D5FC @ case 5 - .4byte _0813D624 @ case 6 - .4byte _0813D62A @ case 7 - .4byte _0813D630 @ case 8 - .4byte _0813D636 @ case 9 - .4byte _0813D648 @ case 10 - .4byte _0813D670 @ case 11 -_0813D590: - bl ResetSpriteData - bl FreeAllSpritePalettes - movs r0, #3 - bl HideBg - movs r0, #2 - bl HideBg - movs r0, #0 - bl HideBg - b _0813D688 -_0813D5AC: - movs r0, #3 - movs r1, #1 - movs r2, #3 - bl SetBgAttribute - ldr r0, _0813D5D0 - bl sub_081C4578 - ldr r0, _0813D5D4 - ldr r0, [r0] - movs r1, #0xf7 - lsls r1, r1, #4 - adds r0, r0, r1 - movs r1, #0 - movs r2, #0xa - bl StringFill - b _0813D688 - .align 2, 0 -_0813D5D0: .4byte gUnknown_85939A0 -_0813D5D4: .4byte gUnknown_203A848 -_0813D5D8: - bl sub_081C4698 - cmp r0, #1 - beq _0813D698 - movs r0, #8 - rsbs r0, r0, #0 - bl sub_081C46D8 - b _0813D688 -_0813D5EA: - bl ResetDrawAreaGlowState - b _0813D688 -_0813D5F0: - bl DrawAreaGlow - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0813D698 - b _0813D688 -_0813D5FC: - ldr r0, _0813D61C - ldr r0, [r0] - ldr r2, _0813D620 - adds r0, r0, r2 - bl sub_08122D94 - movs r0, #1 - movs r1, #1 - bl CreateRegionMapPlayerIcon - movs r1, #8 - rsbs r1, r1, #0 - movs r0, #0 - bl PokedexAreaScreen_UpdateRegionMapVariablesAndVideoRegs - b _0813D688 - .align 2, 0 -_0813D61C: .4byte gUnknown_203A848 -_0813D620: .4byte 0x000006EC -_0813D624: - bl CreateAreaMarkerSprites - b _0813D688 -_0813D62A: - bl LoadAreaUnknownGraphics - b _0813D688 -_0813D630: - bl CreateAreaUnknownSprites - b _0813D688 -_0813D636: - movs r0, #0x15 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - b _0813D688 -_0813D648: - ldr r1, _0813D66C - movs r0, #0x50 - bl SetGpuReg - bl StartAreaGlow - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg - movs r1, #0x80 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuRegBits - b _0813D688 - .align 2, 0 -_0813D66C: .4byte 0x00003F41 -_0813D670: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r2 - ldr r1, _0813D684 - str r1, [r0] - movs r1, #0 - strh r1, [r0, #8] - b _0813D698 - .align 2, 0 -_0813D684: .4byte Task_PokedexAreaScreen_1 -_0813D688: - ldr r0, _0813D6A0 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] -_0813D698: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813D6A0: .4byte gUnknown_3005B60 - thumb_func_end Task_PokedexAreaScreen_0 - - thumb_func_start Task_PokedexAreaScreen_1 -Task_PokedexAreaScreen_1: @ 0x0813D6A4 - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - bl DoAreaGlow - ldr r1, _0813D6CC - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r6, r0, r1 - movs r0, #8 - ldrsh r1, [r6, r0] - cmp r1, #1 - beq _0813D6FC - cmp r1, #1 - bgt _0813D6D0 - cmp r1, #0 - beq _0813D6E6 - b _0813D6D8 - .align 2, 0 -_0813D6CC: .4byte gUnknown_3005B60 -_0813D6D0: - cmp r1, #2 - beq _0813D744 - cmp r1, #3 - beq _0813D756 -_0813D6D8: - ldr r0, _0813D6F4 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0 - strh r0, [r1, #8] -_0813D6E6: - ldr r0, _0813D6F8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0813D7AC - b _0813D79C - .align 2, 0 -_0813D6F4: .4byte gUnknown_3005B60 -_0813D6F8: .4byte gUnknown_2037C74 -_0813D6FC: - ldr r0, _0813D714 - ldrh r2, [r0, #0x2e] - movs r3, #2 - adds r0, r3, #0 - ands r0, r2 - cmp r0, #0 - beq _0813D718 - strh r1, [r6, #0xa] - movs r0, #3 - bl sub_080A306C - b _0813D79C - .align 2, 0 -_0813D714: .4byte gUnknown_3002360 -_0813D718: - movs r0, #0x10 - ands r0, r2 - cmp r0, #0 - bne _0813D734 - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r2 - cmp r0, #0 - beq _0813D7AC - ldr r0, _0813D740 - ldr r0, [r0] - ldrb r0, [r0, #0x13] - cmp r0, #1 - bne _0813D7AC -_0813D734: - strh r3, [r6, #0xa] - movs r0, #0x6d - bl sub_080A306C - b _0813D79C - .align 2, 0 -_0813D740: .4byte gUnknown_3005AF0 -_0813D744: - movs r0, #0x15 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - b _0813D79C -_0813D756: - ldr r0, _0813D794 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #0 - bne _0813D7AC - bl DestroyAreaMarkerSprites - ldr r4, _0813D798 - ldr r0, [r4] - movs r1, #0xdd - lsls r1, r1, #3 - adds r0, r0, r1 - ldr r1, [r0] - ldrh r0, [r6, #0xa] - strb r0, [r1] - bl sub_0813D7B8 - adds r0, r5, #0 - bl DestroyTask - bl sub_081C46BC - ldr r0, [r4] - bl Free - str r7, [r4] - b _0813D7AC - .align 2, 0 -_0813D794: .4byte gUnknown_2037C74 -_0813D798: .4byte gUnknown_203A848 -_0813D79C: - ldr r0, _0813D7B4 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] -_0813D7AC: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0813D7B4: .4byte gUnknown_3005B60 - thumb_func_end Task_PokedexAreaScreen_1 - - thumb_func_start sub_0813D7B8 -sub_0813D7B8: @ 0x0813D7B8 - push {lr} - movs r0, #3 - movs r1, #1 - movs r2, #0 - bl SetBgAttribute - movs r0, #3 - movs r1, #4 - movs r2, #0 - bl SetBgAttribute - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0813D7B8 - - thumb_func_start CreateAreaMarkerSprites -CreateAreaMarkerSprites: @ 0x0813D7D4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _0813D8FC - bl LoadSpriteSheet - ldr r0, _0813D900 - bl LoadSpritePalette - ldr r0, _0813D904 - movs r1, #0 - strh r1, [r0] - ldr r2, _0813D908 - strh r1, [r2] - ldr r1, _0813D90C - ldr r0, [r1] - movs r3, #0x89 - lsls r3, r3, #1 - adds r0, r0, r3 - ldrh r0, [r0] - cmp r0, #0 - beq _0813D8DC - ldr r5, _0813D910 - mov sl, r1 - adds r7, r2, #0 - ldr r0, _0813D914 - mov sb, r0 - ldr r6, _0813D918 - ldr r1, _0813D91C - mov r8, r1 -_0813D814: - mov r2, sl - ldr r1, [r2] - movs r3, #0 - ldrsh r0, [r7, r3] - lsls r0, r0, #1 - movs r2, #0xc4 - lsls r2, r2, #3 - adds r1, r1, r2 - adds r1, r1, r0 - ldrh r0, [r1] - strh r0, [r5] - movs r3, #0 - ldrsh r0, [r5, r3] - lsls r0, r0, #3 - adds r0, r0, r6 - ldrb r1, [r0] - adds r1, #1 - lsls r1, r1, #3 - adds r1, #4 - mov r0, sb - strh r1, [r0] - movs r2, #0 - ldrsh r0, [r5, r2] - lsls r0, r0, #3 - adds r0, r0, r6 - ldrb r2, [r0, #1] - lsls r2, r2, #3 - adds r2, #0x1c - mov r3, r8 - strh r2, [r3] - movs r3, #0 - ldrsh r0, [r5, r3] - lsls r0, r0, #3 - adds r0, r0, r6 - ldrb r0, [r0, #2] - subs r0, #1 - lsls r0, r0, #2 - adds r1, r1, r0 - mov r0, sb - strh r1, [r0] - movs r1, #0 - ldrsh r0, [r5, r1] - lsls r0, r0, #3 - adds r0, r0, r6 - ldrb r0, [r0, #3] - subs r0, #1 - lsls r0, r0, #2 - adds r2, r2, r0 - mov r3, r8 - strh r2, [r3] - mov r0, sb - movs r2, #0 - ldrsh r1, [r0, r2] - movs r0, #0 - ldrsh r2, [r3, r0] - ldr r0, _0813D920 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x40 - beq _0813D8C2 - ldr r0, _0813D924 - lsls r2, r1, #4 - adds r2, r2, r1 - lsls r2, r2, #2 - adds r2, r2, r0 - adds r3, r2, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r1, #4 - orrs r0, r1 - strb r0, [r3] - mov r1, sl - ldr r3, [r1] - ldr r4, _0813D904 - ldrh r1, [r4] - adds r0, r1, #1 - strh r0, [r4] - lsls r1, r1, #0x10 - asrs r1, r1, #0xe - movs r0, #0xcc - lsls r0, r0, #3 - adds r3, r3, r0 - adds r3, r3, r1 - str r2, [r3] -_0813D8C2: - ldrh r0, [r7] - adds r0, #1 - strh r0, [r7] - movs r2, #0 - ldrsh r1, [r7, r2] - mov r3, sl - ldr r0, [r3] - movs r2, #0x89 - lsls r2, r2, #1 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r1, r0 - blt _0813D814 -_0813D8DC: - ldr r0, _0813D90C - ldr r0, [r0] - ldr r1, _0813D904 - ldrh r1, [r1] - movs r3, #0xdc - lsls r3, r3, #3 - adds r0, r0, r3 - strh r1, [r0] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0813D8FC: .4byte gUnknown_85939A4 -_0813D900: .4byte gUnknown_85939AC -_0813D904: .4byte gUnknown_3001204 -_0813D908: .4byte gUnknown_3001200 -_0813D90C: .4byte gUnknown_203A848 -_0813D910: .4byte gUnknown_3001202 -_0813D914: .4byte gUnknown_30011FC -_0813D918: .4byte gUnknown_857CD6C -_0813D91C: .4byte gUnknown_30011FE -_0813D920: .4byte gUnknown_85939BC -_0813D924: .4byte gUnknown_20205AC - thumb_func_end CreateAreaMarkerSprites - - thumb_func_start DestroyAreaMarkerSprites -DestroyAreaMarkerSprites: @ 0x0813D928 - push {r4, r5, lr} - movs r0, #2 - bl FreeSpriteTilesByTag - movs r0, #2 - bl FreeSpritePaletteByTag - movs r4, #0 - ldr r1, _0813D9A8 - ldr r0, [r1] - movs r2, #0xdc - lsls r2, r2, #3 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r4, r0 - bhs _0813D970 - adds r5, r1, #0 -_0813D94A: - ldr r0, [r5] - lsls r1, r4, #2 - movs r2, #0xcc - lsls r2, r2, #3 - adds r0, r0, r2 - adds r0, r0, r1 - ldr r0, [r0] - bl DestroySprite - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, [r5] - movs r1, #0xdc - lsls r1, r1, #3 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r4, r0 - blo _0813D94A -_0813D970: - movs r0, #3 - bl FreeSpriteTilesByTag - movs r0, #3 - bl FreeSpritePaletteByTag - movs r4, #0 -_0813D97E: - ldr r0, _0813D9A8 - ldr r0, [r0] - lsls r1, r4, #2 - movs r2, #0xfb - lsls r2, r2, #4 - adds r0, r0, r2 - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #0 - beq _0813D996 - bl DestroySprite -_0813D996: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #2 - bls _0813D97E - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0813D9A8: .4byte gUnknown_203A848 - thumb_func_end DestroyAreaMarkerSprites - - thumb_func_start LoadAreaUnknownGraphics -LoadAreaUnknownGraphics: @ 0x0813D9AC - push {lr} - sub sp, #8 - ldr r0, _0813D9D8 - ldr r1, [r0] - ldr r0, _0813D9DC - adds r1, r1, r0 - str r1, [sp] - ldr r0, _0813D9E0 - str r0, [sp, #4] - ldr r0, _0813D9E4 - bl LZ77UnCompWram - mov r0, sp - bl LoadSpriteSheet - ldr r0, _0813D9E8 - bl LoadSpritePalette - add sp, #8 - pop {r0} - bx r0 - .align 2, 0 -_0813D9D8: .4byte gUnknown_203A848 -_0813D9DC: .4byte 0x00000FBC -_0813D9E0: .4byte 0x00030600 -_0813D9E4: .4byte gUnknown_8593ABC -_0813D9E8: .4byte gUnknown_8593A74 - thumb_func_end LoadAreaUnknownGraphics - - thumb_func_start CreateAreaUnknownSprites -CreateAreaUnknownSprites: @ 0x0813D9EC - push {r4, r5, r6, lr} - ldr r1, _0813DA20 - ldr r0, [r1] - movs r2, #0x88 - lsls r2, r2, #1 - adds r0, r0, r2 - ldr r0, [r0] - cmp r0, #0 - beq _0813DA24 - movs r4, #0 - adds r5, r1, #0 - movs r3, #0xfb - lsls r3, r3, #4 - movs r2, #0 -_0813DA08: - ldr r0, [r5] - lsls r1, r4, #2 - adds r0, r0, r3 - adds r0, r0, r1 - str r2, [r0] - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #2 - bls _0813DA08 - b _0813DAA8 - .align 2, 0 -_0813DA20: .4byte gUnknown_203A848 -_0813DA24: - movs r4, #0 - ldr r5, _0813DA78 -_0813DA28: - lsls r1, r4, #0x15 - movs r6, #0xa0 - lsls r6, r6, #0x10 - adds r1, r1, r6 - asrs r1, r1, #0x10 - ldr r0, _0813DA7C - movs r2, #0x8c - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _0813DA8C - lsls r3, r0, #4 - adds r3, r3, r0 - lsls r3, r3, #2 - adds r3, r3, r5 - ldrh r2, [r3, #4] - lsls r0, r2, #0x16 - lsrs r0, r0, #0x16 - lsls r1, r4, #4 - adds r0, r0, r1 - ldr r6, _0813DA80 - adds r1, r6, #0 - ands r0, r1 - ldr r6, _0813DA84 - adds r1, r6, #0 - ands r2, r1 - orrs r2, r0 - strh r2, [r3, #4] - ldr r0, _0813DA88 - ldr r0, [r0] - lsls r1, r4, #2 - movs r2, #0xfb - lsls r2, r2, #4 - adds r0, r0, r2 - adds r0, r0, r1 - str r3, [r0] - b _0813DA9E - .align 2, 0 -_0813DA78: .4byte gUnknown_20205AC -_0813DA7C: .4byte gUnknown_8593A84 -_0813DA80: .4byte 0x000003FF -_0813DA84: .4byte 0xFFFFFC00 -_0813DA88: .4byte gUnknown_203A848 -_0813DA8C: - ldr r0, _0813DAB0 - ldr r1, [r0] - lsls r0, r4, #2 - movs r6, #0xfb - lsls r6, r6, #4 - adds r1, r1, r6 - adds r1, r1, r0 - movs r0, #0 - str r0, [r1] -_0813DA9E: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #2 - bls _0813DA28 -_0813DAA8: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0813DAB0: .4byte gUnknown_203A848 - thumb_func_end CreateAreaUnknownSprites - - thumb_func_start sub_0813DAB4 -sub_0813DAB4: @ 0x0813DAB4 - push {lr} - bl UpdatePaletteFade - bl RunTasks - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0813DAB4 - - thumb_func_start Task_BeginEvolutionScene -Task_BeginEvolutionScene: @ 0x0813DAC4 - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - movs r7, #0 - ldr r1, _0813DAE8 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r6, r0, r1 - movs r1, #8 - ldrsh r0, [r6, r1] - cmp r0, #0 - beq _0813DAEC - cmp r0, #1 - beq _0813DB04 - b _0813DB34 - .align 2, 0 -_0813DAE8: .4byte gUnknown_3005B60 -_0813DAEC: - movs r0, #1 - rsbs r0, r0, #0 - str r7, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldrh r0, [r6, #8] - adds r0, #1 - strh r0, [r6, #8] - b _0813DB34 -_0813DB04: - ldr r0, _0813DB3C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0813DB34 - movs r0, #0x1c - ldrsh r1, [r6, r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _0813DB40 - adds r7, r1, r0 - ldrh r4, [r6, #0xc] - ldrb r5, [r6, #0xe] - ldrb r6, [r6, #0x1c] - adds r0, r2, #0 - bl DestroyTask - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r5, #0 - adds r3, r6, #0 - bl EvolutionScene -_0813DB34: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0813DB3C: .4byte gUnknown_2037C74 -_0813DB40: .4byte gUnknown_2024190 - thumb_func_end Task_BeginEvolutionScene - - thumb_func_start BeginEvolutionScene -BeginEvolutionScene: @ 0x0813DB44 - push {r4, r5, r6, lr} - adds r4, r1, #0 - adds r5, r2, #0 - adds r6, r3, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - ldr r0, _0813DB84 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0813DB88 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r0, #0 - strh r0, [r1, #8] - strh r4, [r1, #0xc] - strh r5, [r1, #0xe] - strh r6, [r1, #0x1c] - ldr r0, _0813DB8C - bl SetMainCallback2 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0813DB84: .4byte Task_BeginEvolutionScene -_0813DB88: .4byte gUnknown_3005B60 -_0813DB8C: .4byte sub_0813DAB4 - thumb_func_end BeginEvolutionScene - - thumb_func_start EvolutionScene -EvolutionScene: @ 0x0813DB90 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x24 - adds r4, r0, #0 - mov sb, r1 - mov r0, sb - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x18] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r3, [sp, #0x1c] - movs r0, #0 - bl SetHBlankCallback - movs r0, #0 - bl SetVBlankCallback - movs r1, #0 - str r1, [sp, #0x14] - add r0, sp, #0x14 - movs r1, #0xc0 - lsls r1, r1, #0x13 - ldr r2, _0813DE14 - bl CpuSet - movs r0, #0x4c - movs r1, #0 - bl SetGpuReg - movs r0, #0x40 - movs r1, #0 - bl SetGpuReg - movs r0, #0x44 - movs r1, #0 - bl SetGpuReg - movs r0, #0x42 - movs r1, #0 - bl SetGpuReg - movs r0, #0x46 - movs r1, #0 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0 - bl SetGpuReg - movs r0, #0x4a - movs r1, #0 - bl SetGpuReg - bl ResetPaletteFade - ldr r0, _0813DE18 - movs r2, #0 - strh r2, [r0] - ldr r0, _0813DE1C - strh r2, [r0] - ldr r0, _0813DE20 - strh r2, [r0] - ldr r0, _0813DE24 - strh r2, [r0] - ldr r0, _0813DE28 - strh r2, [r0] - ldr r0, _0813DE2C - strh r2, [r0] - ldr r1, _0813DE30 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r2, #0 - strh r0, [r1] - ldr r0, _0813DE34 - movs r1, #0 - strh r1, [r0] - ldr r1, _0813DE38 - movs r0, #9 - strb r0, [r1] - bl sub_08035528 - bl sub_080358F8 - bl ResetSpriteData - bl ScanlineEffect_Stop - bl ResetTasks - bl FreeAllSpritePalettes - ldr r0, _0813DE3C - movs r2, #4 - strb r2, [r0] - movs r0, #0x64 - bl AllocZeroed - ldr r1, _0813DE40 - str r0, [r1] - bl AllocateMonSpritesGfx - adds r0, r4, #0 - movs r1, #2 - mov r2, sp - bl GetMonData - ldr r0, _0813DE44 - mov r1, sp - bl StringCopy10 - ldr r0, _0813DE48 - mov r2, sb - lsls r1, r2, #1 - add r1, sb - lsls r1, r1, #1 - ldr r2, _0813DE4C - adds r1, r1, r2 - bl StringCopy - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - adds r0, r4, #0 - movs r1, #1 - bl GetMonData - str r0, [sp, #0x20] - adds r0, r4, #0 - movs r1, #0 - bl GetMonData - mov sl, r0 - lsls r0, r5, #3 - ldr r1, _0813DE50 - adds r0, r0, r1 - ldr r2, _0813DE54 - ldr r1, [r2] - ldr r1, [r1, #8] - adds r2, r5, #0 - bl sub_08034860 - adds r0, r5, #0 - ldr r1, [sp, #0x20] - mov r2, sl - bl GetMonSpritePalStructFromOtIdPersonality - ldr r0, [r0] - movs r1, #0x88 - lsls r1, r1, #1 - movs r2, #0x20 - bl LoadCompressedPalette - adds r0, r5, #0 - movs r1, #1 - bl SetMultiuseSpriteTemplateToPokemon - ldr r0, _0813DE58 - mov r8, r0 - ldr r1, _0813DE5C - str r1, [r0, #0x10] - movs r1, #0x78 - movs r2, #0x40 - movs r3, #0x1e - bl CreateSprite - ldr r1, _0813DE40 - ldr r2, [r1] - lsls r1, r0, #0x18 - lsrs r3, r1, #0x18 - strb r0, [r2] - ldr r7, _0813DE60 - lsls r1, r3, #4 - adds r1, r1, r3 - lsls r1, r1, #2 - adds r6, r7, #0 - adds r6, #0x1c - adds r0, r1, r6 - ldr r2, _0813DE64 - str r2, [r0] - adds r1, r1, r7 - ldrb r2, [r1, #5] - movs r4, #0xf - adds r0, r4, #0 - ands r0, r2 - movs r2, #0x10 - orrs r0, r2 - strb r0, [r1, #5] - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - mov r1, sb - lsls r0, r1, #3 - ldr r2, _0813DE50 - adds r0, r0, r2 - ldr r2, _0813DE54 - ldr r1, [r2] - ldr r1, [r1, #0x10] - mov r2, sb - bl sub_08034860 - mov r0, sb - ldr r1, [sp, #0x20] - mov r2, sl - bl GetMonSpritePalStructFromOtIdPersonality - ldr r0, [r0] - movs r1, #0x90 - lsls r1, r1, #1 - movs r2, #0x20 - bl LoadCompressedPalette - mov r0, sb - movs r1, #3 - bl SetMultiuseSpriteTemplateToPokemon - ldr r0, _0813DE5C - mov r1, r8 - str r0, [r1, #0x10] - mov r0, r8 - movs r1, #0x78 - movs r2, #0x40 - movs r3, #0x1e - bl CreateSprite - ldr r1, _0813DE40 - ldr r2, [r1] - lsls r1, r0, #0x18 - lsrs r3, r1, #0x18 - strb r0, [r2, #1] - lsls r1, r3, #4 - adds r1, r1, r3 - lsls r1, r1, #2 - adds r6, r1, r6 - ldr r2, _0813DE64 - str r2, [r6] - adds r1, r1, r7 - ldrb r0, [r1, #5] - ands r4, r0 - movs r0, #0x20 - orrs r4, r0 - strb r4, [r1, #5] - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - bl LoadEvoSparkleSpriteAndPal - ldr r0, _0813DE68 - movs r1, #0 - bl CreateTask - ldr r1, _0813DE40 - ldr r2, [r1] - lsls r1, r0, #0x18 - lsrs r3, r1, #0x18 - strb r0, [r2, #2] - ldr r1, _0813DE6C - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #0 - strh r2, [r0, #8] - strh r5, [r0, #0xa] - mov r1, sb - strh r1, [r0, #0xc] - mov r2, sp - ldrh r2, [r2, #0x18] - strh r2, [r0, #0xe] - movs r1, #1 - strh r1, [r0, #0x10] - movs r1, #0 - strh r1, [r0, #0x1a] - mov r2, sp - ldrh r2, [r2, #0x1c] - strh r2, [r0, #0x1c] - ldr r1, _0813DE40 - ldr r0, [r1] - ldr r1, _0813DE70 - adds r0, #4 - movs r2, #0x60 - bl memcpy - movs r1, #0xfa - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - ldr r0, _0813DE74 - bl SetHBlankCallback - ldr r0, _0813DE78 - bl SetVBlankCallback - bl m4aMPlayAllStop - ldr r0, _0813DE7C - bl SetMainCallback2 - add sp, #0x24 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0813DE14: .4byte 0x05006000 -_0813DE18: .4byte gUnknown_2022AC8 -_0813DE1C: .4byte gUnknown_2022ACA -_0813DE20: .4byte gUnknown_2022ACC -_0813DE24: .4byte gUnknown_2022ACE -_0813DE28: .4byte gUnknown_2022AD0 -_0813DE2C: .4byte gUnknown_2022AD2 -_0813DE30: .4byte gUnknown_2022AD4 -_0813DE34: .4byte gUnknown_2022AD6 -_0813DE38: .4byte gUnknown_2022C94 -_0813DE3C: .4byte gUnknown_30030BC -_0813DE40: .4byte gUnknown_203A84C -_0813DE44: .4byte gUnknown_2021C40 -_0813DE48: .4byte gUnknown_2021C54 -_0813DE4C: .4byte gUnknown_82EA31C -_0813DE50: .4byte gUnknown_82DDA1C -_0813DE54: .4byte gUnknown_2024178 -_0813DE58: .4byte gUnknown_2024640 -_0813DE5C: .4byte gUnknown_82BF310 -_0813DE60: .4byte gUnknown_20205AC -_0813DE64: .4byte sub_080394FC -_0813DE68: .4byte Task_EvolutionScene -_0813DE6C: .4byte gUnknown_3005B60 -_0813DE70: .4byte gUnknown_20373F4 -_0813DE74: .4byte sub_0813FDA0 -_0813DE78: .4byte sub_0813FDA4 -_0813DE7C: .4byte sub_0813E4A8 - thumb_func_end EvolutionScene - - thumb_func_start CB2_EvolutionSceneLoadGraphics -CB2_EvolutionSceneLoadGraphics: @ 0x0813DE80 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #8 - ldr r2, _0813E018 - ldr r0, _0813E01C - mov r8, r0 - ldr r0, [r0] - ldrb r1, [r0, #2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r1, #0x1c - ldrsh r2, [r0, r1] - movs r1, #0x64 - adds r4, r2, #0 - muls r4, r1, r4 - ldr r1, _0813E020 - adds r4, r4, r1 - ldrh r5, [r0, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl GetMonData - mov sb, r0 - adds r0, r4, #0 - movs r1, #0 - bl GetMonData - adds r6, r0, #0 - movs r0, #0 - bl SetHBlankCallback - movs r0, #0 - bl SetVBlankCallback - movs r4, #0 - str r4, [sp, #4] - movs r1, #0xc0 - lsls r1, r1, #0x13 - ldr r2, _0813E024 - add r0, sp, #4 - bl CpuSet - movs r0, #0x4c - movs r1, #0 - bl SetGpuReg - movs r0, #0x40 - movs r1, #0 - bl SetGpuReg - movs r0, #0x44 - movs r1, #0 - bl SetGpuReg - movs r0, #0x42 - movs r1, #0 - bl SetGpuReg - movs r0, #0x46 - movs r1, #0 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0 - bl SetGpuReg - movs r0, #0x4a - movs r1, #0 - bl SetGpuReg - bl ResetPaletteFade - ldr r0, _0813E028 - strh r4, [r0] - ldr r0, _0813E02C - strh r4, [r0] - ldr r0, _0813E030 - strh r4, [r0] - ldr r0, _0813E034 - strh r4, [r0] - ldr r0, _0813E038 - strh r4, [r0] - ldr r0, _0813E03C - strh r4, [r0] - ldr r1, _0813E040 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r2, #0 - strh r0, [r1] - ldr r0, _0813E044 - strh r4, [r0] - ldr r1, _0813E048 - movs r0, #9 - strb r0, [r1] - bl sub_08035528 - bl sub_080358F8 - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r1, _0813E04C - movs r0, #4 - strb r0, [r1] - lsls r0, r5, #3 - ldr r1, _0813E050 - adds r0, r0, r1 - ldr r1, _0813E054 - ldr r1, [r1] - ldr r1, [r1, #0x10] - adds r2, r5, #0 - bl sub_08034860 - adds r0, r5, #0 - mov r1, sb - adds r2, r6, #0 - bl GetMonSpritePalStructFromOtIdPersonality - ldr r0, [r0] - movs r1, #0x90 - lsls r1, r1, #1 - movs r2, #0x20 - bl LoadCompressedPalette - adds r0, r5, #0 - movs r1, #3 - bl SetMultiuseSpriteTemplateToPokemon - ldr r0, _0813E058 - ldr r1, _0813E05C - str r1, [r0, #0x10] - movs r1, #0x78 - movs r2, #0x40 - movs r3, #0x1e - bl CreateSprite - mov r2, r8 - ldr r1, [r2] - lsls r2, r0, #0x18 - lsrs r2, r2, #0x18 - strb r0, [r1, #1] - ldr r3, _0813E060 - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r0, r3, #0 - adds r0, #0x1c - adds r0, r1, r0 - ldr r2, _0813E064 - str r2, [r0] - adds r1, r1, r3 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - movs r2, #0x20 - orrs r0, r2 - strb r0, [r1, #5] - movs r1, #0xfa - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - ldr r0, _0813E068 - bl SetHBlankCallback - ldr r0, _0813E06C - bl SetVBlankCallback - ldr r0, _0813E070 - bl SetMainCallback2 - movs r0, #1 - rsbs r0, r0, #0 - str r4, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg - add sp, #8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0813E018: .4byte gUnknown_3005B60 -_0813E01C: .4byte gUnknown_203A84C -_0813E020: .4byte gUnknown_2024190 -_0813E024: .4byte 0x05006000 -_0813E028: .4byte gUnknown_2022AC8 -_0813E02C: .4byte gUnknown_2022ACA -_0813E030: .4byte gUnknown_2022ACC -_0813E034: .4byte gUnknown_2022ACE -_0813E038: .4byte gUnknown_2022AD0 -_0813E03C: .4byte gUnknown_2022AD2 -_0813E040: .4byte gUnknown_2022AD4 -_0813E044: .4byte gUnknown_2022AD6 -_0813E048: .4byte gUnknown_2022C94 -_0813E04C: .4byte gUnknown_30030BC -_0813E050: .4byte gUnknown_82DDA1C -_0813E054: .4byte gUnknown_2024178 -_0813E058: .4byte gUnknown_2024640 -_0813E05C: .4byte gUnknown_82BF310 -_0813E060: .4byte gUnknown_20205AC -_0813E064: .4byte sub_080394FC -_0813E068: .4byte sub_0813FDA0 -_0813E06C: .4byte sub_0813FDA4 -_0813E070: .4byte sub_0813E4A8 - thumb_func_end CB2_EvolutionSceneLoadGraphics - - thumb_func_start CB2_TradeEvolutionSceneLoadGraphics -CB2_TradeEvolutionSceneLoadGraphics: @ 0x0813E074 - push {r4, r5, r6, lr} - sub sp, #0xc - ldr r2, _0813E0B0 - ldr r0, _0813E0B4 - ldr r0, [r0] - ldrb r1, [r0, #2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r1, #0x1c - ldrsh r2, [r0, r1] - movs r1, #0x64 - muls r2, r1, r2 - ldr r1, _0813E0B8 - adds r4, r2, r1 - ldrh r6, [r0, #0xc] - ldr r0, _0813E0BC - movs r3, #0x87 - lsls r3, r3, #3 - adds r0, r0, r3 - ldrb r0, [r0] - cmp r0, #7 - bls _0813E0A6 - b _0813E2CC -_0813E0A6: - lsls r0, r0, #2 - ldr r1, _0813E0C0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813E0B0: .4byte gUnknown_3005B60 -_0813E0B4: .4byte gUnknown_203A84C -_0813E0B8: .4byte gUnknown_2024190 -_0813E0BC: .4byte gUnknown_3002360 -_0813E0C0: .4byte _0813E0C4 -_0813E0C4: @ jump table - .4byte _0813E0E4 @ case 0 - .4byte _0813E154 @ case 1 - .4byte _0813E17C @ case 2 - .4byte _0813E182 @ case 3 - .4byte _0813E1AC @ case 4 - .4byte _0813E1F4 @ case 5 - .4byte _0813E264 @ case 6 - .4byte _0813E29C @ case 7 -_0813E0E4: - movs r0, #0 - movs r1, #0 - bl SetGpuReg - movs r0, #0 - bl SetHBlankCallback - movs r0, #0 - bl SetVBlankCallback - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r1, _0813E130 - movs r0, #4 - strb r0, [r1] - ldr r0, _0813E134 - movs r1, #0 - strh r1, [r0] - ldr r0, _0813E138 - strh r1, [r0] - ldr r0, _0813E13C - strh r1, [r0] - ldr r0, _0813E140 - strh r1, [r0] - ldr r0, _0813E144 - strh r1, [r0] - ldr r0, _0813E148 - strh r1, [r0] - ldr r2, _0813E14C - movs r3, #0x80 - lsls r3, r3, #1 - adds r0, r3, #0 - strh r0, [r2] - ldr r0, _0813E150 - strh r1, [r0] - b _0813E284 - .align 2, 0 -_0813E130: .4byte gUnknown_30030BC -_0813E134: .4byte gUnknown_2022AC8 -_0813E138: .4byte gUnknown_2022ACA -_0813E13C: .4byte gUnknown_2022ACC -_0813E140: .4byte gUnknown_2022ACE -_0813E144: .4byte gUnknown_2022AD0 -_0813E148: .4byte gUnknown_2022AD2 -_0813E14C: .4byte gUnknown_2022AD4 -_0813E150: .4byte gUnknown_2022AD6 -_0813E154: - bl ResetPaletteFade - ldr r0, _0813E170 - bl SetHBlankCallback - ldr r0, _0813E174 - bl SetVBlankCallback - ldr r1, _0813E178 - movs r3, #0x87 - lsls r3, r3, #3 - adds r1, r1, r3 - b _0813E28C - .align 2, 0 -_0813E170: .4byte sub_0813FDA0 -_0813E174: .4byte sub_0813FE2C -_0813E178: .4byte gUnknown_3002360 -_0813E17C: - bl sub_0807EBD4 - b _0813E284 -_0813E182: - movs r0, #0x20 - str r0, [sp] - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #1 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect - movs r0, #1 - bl CopyBgTilemapBufferToVram - ldr r1, _0813E1A8 - movs r3, #0x87 - lsls r3, r3, #3 - adds r1, r1, r3 - b _0813E28C - .align 2, 0 -_0813E1A8: .4byte gUnknown_3002360 -_0813E1AC: - adds r0, r4, #0 - movs r1, #1 - bl GetMonData - adds r5, r0, #0 - adds r0, r4, #0 - movs r1, #0 - bl GetMonData - adds r4, r0, #0 - lsls r0, r6, #3 - ldr r1, _0813E1EC - adds r0, r0, r1 - ldr r1, _0813E1F0 - ldr r1, [r1] - ldr r1, [r1, #0x10] - adds r2, r6, #0 - bl sub_08034860 - adds r0, r6, #0 - adds r1, r5, #0 - adds r2, r4, #0 - bl GetMonSpritePalStructFromOtIdPersonality - ldr r0, [r0] - movs r1, #0x90 - lsls r1, r1, #1 - movs r2, #0x20 - bl LoadCompressedPalette - b _0813E284 - .align 2, 0 -_0813E1EC: .4byte gUnknown_82DDA1C -_0813E1F0: .4byte gUnknown_2024178 -_0813E1F4: - adds r0, r6, #0 - movs r1, #1 - bl SetMultiuseSpriteTemplateToPokemon - ldr r0, _0813E24C - ldr r1, _0813E250 - str r1, [r0, #0x10] - movs r1, #0x78 - movs r2, #0x40 - movs r3, #0x1e - bl CreateSprite - ldr r1, _0813E254 - ldr r1, [r1] - lsls r2, r0, #0x18 - lsrs r2, r2, #0x18 - strb r0, [r1, #1] - ldr r3, _0813E258 - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r0, r3, #0 - adds r0, #0x1c - adds r0, r1, r0 - ldr r2, _0813E25C - str r2, [r0] - adds r1, r1, r3 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - movs r2, #0x20 - orrs r0, r2 - strb r0, [r1, #5] - ldr r1, _0813E260 - movs r3, #0x87 - lsls r3, r3, #3 - adds r1, r1, r3 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - bl sub_0807ABB0 - b _0813E2CC - .align 2, 0 -_0813E24C: .4byte gUnknown_2024640 -_0813E250: .4byte gUnknown_82BF310 -_0813E254: .4byte gUnknown_203A84C -_0813E258: .4byte gUnknown_20205AC -_0813E25C: .4byte sub_080394FC -_0813E260: .4byte gUnknown_3002360 -_0813E264: - ldr r0, _0813E294 - ldrb r0, [r0] - cmp r0, #0 - beq _0813E278 - bl LoadWirelessStatusIndicatorSpriteGfx - movs r0, #0 - movs r1, #0 - bl CreateWirelessStatusIndicatorSprite -_0813E278: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes -_0813E284: - ldr r1, _0813E298 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 -_0813E28C: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0813E2CC - .align 2, 0 -_0813E294: .4byte gUnknown_300319C -_0813E298: .4byte gUnknown_3002360 -_0813E29C: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - bl sub_0807AB9C - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - ldr r0, _0813E2D4 - bl SetMainCallback2 - movs r1, #0x9a - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg -_0813E2CC: - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0813E2D4: .4byte sub_0813E4C4 - thumb_func_end CB2_TradeEvolutionSceneLoadGraphics - - thumb_func_start TradeEvolutionScene -TradeEvolutionScene: @ 0x0813E2D8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r3, [sp, #0x14] - movs r1, #2 - mov r2, sp - bl GetMonData - ldr r0, _0813E448 - mov r1, sp - bl StringCopy10 - ldr r0, _0813E44C - lsls r1, r5, #1 - adds r1, r1, r5 - lsls r1, r1, #1 - ldr r2, _0813E450 - adds r1, r1, r2 - bl StringCopy - ldr r1, _0813E454 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - mov r8, r0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - adds r0, r4, #0 - movs r1, #0 - bl GetMonData - adds r7, r0, #0 - adds r0, r4, #0 - movs r1, #1 - bl GetMonData - mov sl, r0 - ldr r1, _0813E458 - mov sb, r1 - movs r0, #0x64 - bl AllocZeroed - mov r2, sb - str r0, [r2] - movs r4, #0 - strb r6, [r0] - lsls r0, r5, #3 - ldr r1, _0813E45C - adds r0, r0, r1 - ldr r1, _0813E460 - ldr r1, [r1] - ldr r1, [r1, #8] - adds r2, r5, #0 - bl sub_08034860 - adds r0, r5, #0 - mov r1, sl - adds r2, r7, #0 - bl GetMonSpritePalStructFromOtIdPersonality - ldr r0, [r0] - movs r1, #0x90 - lsls r1, r1, #1 - movs r2, #0x20 - bl LoadCompressedPalette - adds r0, r5, #0 - movs r1, #1 - bl SetMultiuseSpriteTemplateToPokemon - ldr r0, _0813E464 - ldr r1, _0813E468 - str r1, [r0, #0x10] - movs r1, #0x78 - movs r2, #0x40 - movs r3, #0x1e - bl CreateSprite - mov r1, sb - ldr r2, [r1] - lsls r1, r0, #0x18 - lsrs r6, r1, #0x18 - strb r0, [r2, #1] - ldr r3, _0813E46C - lsls r1, r6, #4 - adds r1, r1, r6 - lsls r1, r1, #2 - adds r0, r3, #0 - adds r0, #0x1c - adds r0, r1, r0 - ldr r2, _0813E470 - str r2, [r0] - adds r1, r1, r3 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - movs r2, #0x20 - orrs r0, r2 - strb r0, [r1, #5] - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - bl LoadEvoSparkleSpriteAndPal - ldr r0, _0813E474 - movs r1, #0 - bl CreateTask - mov r1, sb - ldr r2, [r1] - lsls r1, r0, #0x18 - lsrs r6, r1, #0x18 - strb r0, [r2, #2] - ldr r1, _0813E478 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r4, [r0, #8] - mov r2, r8 - strh r2, [r0, #0xa] - strh r5, [r0, #0xc] - movs r1, #1 - strh r1, [r0, #0x10] - strh r4, [r0, #0x1a] - mov r1, sp - ldrh r1, [r1, #0x14] - strh r1, [r0, #0x1c] - ldr r0, _0813E47C - strh r4, [r0] - ldr r0, _0813E480 - strh r4, [r0] - ldr r0, _0813E484 - strh r4, [r0] - ldr r0, _0813E488 - strh r4, [r0] - ldr r0, _0813E48C - strh r4, [r0] - ldr r0, _0813E490 - strh r4, [r0] - ldr r1, _0813E494 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r2, #0 - strh r0, [r1] - ldr r0, _0813E498 - strh r4, [r0] - ldr r2, _0813E49C - ldrb r0, [r2] - movs r1, #2 - orrs r0, r1 - strb r0, [r2] - ldr r0, _0813E4A0 - bl SetVBlankCallback - ldr r0, _0813E4A4 - bl SetMainCallback2 - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0813E448: .4byte gUnknown_2021C40 -_0813E44C: .4byte gUnknown_2021C54 -_0813E450: .4byte gUnknown_82EA31C -_0813E454: .4byte gUnknown_2021C3C -_0813E458: .4byte gUnknown_203A84C -_0813E45C: .4byte gUnknown_82DDA1C -_0813E460: .4byte gUnknown_2024178 -_0813E464: .4byte gUnknown_2024640 -_0813E468: .4byte gUnknown_82BF310 -_0813E46C: .4byte gUnknown_20205AC -_0813E470: .4byte sub_080394FC -_0813E474: .4byte sub_0813F280 -_0813E478: .4byte gUnknown_3005B60 -_0813E47C: .4byte gUnknown_2022AC8 -_0813E480: .4byte gUnknown_2022ACA -_0813E484: .4byte gUnknown_2022ACC -_0813E488: .4byte gUnknown_2022ACE -_0813E48C: .4byte gUnknown_2022AD0 -_0813E490: .4byte gUnknown_2022AD2 -_0813E494: .4byte gUnknown_2022AD4 -_0813E498: .4byte gUnknown_2022AD6 -_0813E49C: .4byte gUnknown_30030B4 -_0813E4A0: .4byte sub_0813FE2C -_0813E4A4: .4byte sub_0813E4C4 - thumb_func_end TradeEvolutionScene - - thumb_func_start sub_0813E4A8 -sub_0813E4A8: @ 0x0813E4A8 - push {lr} - bl AnimateSprites - bl BuildOamBuffer - bl sub_08004630 - bl UpdatePaletteFade - bl RunTasks - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0813E4A8 - - thumb_func_start sub_0813E4C4 -sub_0813E4C4: @ 0x0813E4C4 - push {lr} - bl AnimateSprites - bl BuildOamBuffer - bl sub_08004630 - bl UpdatePaletteFade - bl RunTasks - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0813E4C4 - - thumb_func_start sub_0813E4E0 -sub_0813E4E0: @ 0x0813E4E0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - movs r0, #0 - str r0, [sp] - ldr r0, _0813E628 - mov sl, r0 - mov r2, sb - lsls r2, r2, #2 - str r2, [sp, #4] - adds r0, r2, #0 - add r0, sb - lsls r7, r0, #3 - adds r0, r7, #0 - add r0, sl - mov r8, r0 - ldrh r0, [r0] - cmp r0, #0xd - beq _0813E514 - b _0813E616 -_0813E514: - ldr r6, _0813E62C - ldrb r0, [r6] - cmp r0, #5 - bhi _0813E616 - movs r5, #0x64 - muls r0, r5, r0 - ldr r4, _0813E630 - adds r0, r0, r4 - movs r2, #0x64 - bl sub_0806AED0 - ldrb r0, [r6] - muls r0, r5, r0 - adds r0, r0, r4 - mov r1, sl - adds r2, r1, r7 - adds r2, #0xc - movs r1, #0xb - bl SetMonData - ldrb r0, [r6] - muls r0, r5, r0 - adds r0, r0, r4 - mov r2, r8 - ldrh r1, [r2, #0xc] - lsls r2, r1, #1 - adds r2, r2, r1 - lsls r2, r2, #1 - ldr r1, _0813E634 - adds r2, r2, r1 - movs r1, #2 - bl SetMonData - ldrb r0, [r6] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #0xc - mov r2, sp - bl SetMonData - ldrb r0, [r6] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #8 - mov r2, sp - bl SetMonData - ldrb r0, [r6] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #0xa - mov r2, sp - bl SetMonData - movs r4, #0x32 - ldr r0, [sp, #4] - mov r8, r0 - adds r5, r6, #0 -_0813E588: - ldrb r1, [r5] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0813E630 - adds r0, r0, r1 - adds r1, r4, #0 - mov r2, sp - bl SetMonData - adds r4, #1 - cmp r4, #0x36 - ble _0813E588 - movs r4, #0x43 - ldr r7, _0813E62C -_0813E5A4: - ldrb r0, [r7] - movs r6, #0x64 - muls r0, r6, r0 - ldr r5, _0813E630 - adds r0, r0, r5 - adds r1, r4, #0 - mov r2, sp - bl SetMonData - adds r4, #1 - cmp r4, #0x4f - ble _0813E5A4 - ldr r4, _0813E62C - ldrb r0, [r4] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #0x37 - mov r2, sp - bl SetMonData - movs r0, #0xff - str r0, [sp] - ldrb r0, [r4] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #0x40 - mov r2, sp - bl SetMonData - ldrb r0, [r4] - muls r0, r6, r0 - adds r0, r0, r5 - bl CalculateMonStats - bl sub_0806B004 - ldr r0, _0813E628 - mov r4, r8 - add r4, sb - lsls r4, r4, #3 - adds r4, r4, r0 - ldrh r0, [r4, #0xc] - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #2 - bl GetSetPokedexFlag - ldrh r0, [r4, #0xc] - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl GetSetPokedexFlag -_0813E616: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0813E628: .4byte gUnknown_82F5CA4 -_0813E62C: .4byte gUnknown_202418D -_0813E630: .4byte gUnknown_2024190 -_0813E634: .4byte gUnknown_82EA31C - thumb_func_end sub_0813E4E0 - - thumb_func_start Task_EvolutionScene -Task_EvolutionScene: @ 0x0813E638 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x18 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r2, _0813E6A8 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r3, r0, r2 - movs r0, #0x1c - ldrsh r1, [r3, r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _0813E6AC - adds r1, r1, r0 - mov sb, r1 - ldr r0, _0813E6B0 - ldrh r1, [r0, #0x2c] - adds r5, r2, #0 - adds r6, r0, #0 - cmp r1, #2 - bne _0813E6B8 - movs r1, #8 - ldrsh r0, [r3, r1] - cmp r0, #8 - bne _0813E6B8 - ldr r4, _0813E6B4 - ldrb r0, [r4, #2] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r5 - ldrb r0, [r1, #4] - cmp r0, #0 - beq _0813E6B8 - ldrh r1, [r3, #0xe] - movs r2, #1 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0813E6B8 - movs r0, #0x11 - strh r0, [r3, #8] - ldrb r1, [r4, #2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - strh r2, [r0, #0x18] - bl sub_081401FC - bl _0813F26C - .align 2, 0 -_0813E6A8: .4byte gUnknown_3005B60 -_0813E6AC: .4byte gUnknown_2024190 -_0813E6B0: .4byte gUnknown_3002360 -_0813E6B4: .4byte gUnknown_2023FD6 -_0813E6B8: - lsls r1, r7, #2 - adds r0, r1, r7 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r2, #8 - ldrsh r0, [r0, r2] - mov r8, r1 - cmp r0, #0x16 - bls _0813E6CE - bl _0813F26C -_0813E6CE: - lsls r0, r0, #2 - ldr r1, _0813E6D8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813E6D8: .4byte _0813E6DC -_0813E6DC: @ jump table - .4byte _0813E738 @ case 0 - .4byte _0813E79C @ case 1 - .4byte _0813E7DC @ case 2 - .4byte _0813E808 @ case 3 - .4byte _0813E838 @ case 4 - .4byte _0813E878 @ case 5 - .4byte _0813E8B0 @ case 6 - .4byte _0813E8F0 @ case 7 - .4byte _0813E928 @ case 8 - .4byte _0813E96C @ case 9 - .4byte _0813E988 @ case 10 - .4byte _0813E9B4 @ case 11 - .4byte _0813E9E0 @ case 12 - .4byte _0813EA2C @ case 13 - .4byte _0813EA58 @ case 14 - .4byte _0813EAE4 @ case 15 - .4byte _0813EB90 @ case 16 - .4byte _0813EBFC @ case 17 - .4byte _0813EC3C @ case 18 - .4byte _0813EC70 @ case 19 - .4byte _0813ECD8 @ case 20 - .4byte _0813ED34 @ case 21 - .4byte _0813ED70 @ case 22 -_0813E738: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r2, _0813E790 - ldr r0, _0813E794 - ldr r0, [r0] - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - ldr r0, _0813E798 - mov r3, r8 - adds r1, r3, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg - bl _0813F26C - .align 2, 0 -_0813E790: .4byte gUnknown_20205AC -_0813E794: .4byte gUnknown_203A84C -_0813E798: .4byte gUnknown_3005B60 -_0813E79C: - ldr r0, _0813E7CC - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0813E7AC - bl _0813F26C -_0813E7AC: - ldr r4, _0813E7D0 - ldr r1, _0813E7D4 - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - movs r1, #0 - bl sub_0814FA04 - ldr r0, _0813E7D8 - mov r2, r8 - adds r1, r2, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - b _0813ED1A - .align 2, 0 -_0813E7CC: .4byte gUnknown_2037C74 -_0813E7D0: .4byte gUnknown_2021C7C -_0813E7D4: .4byte gUnknown_85ABAFC -_0813E7D8: .4byte gUnknown_3005B60 -_0813E7DC: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0813E7EC - bl _0813F26C -_0813E7EC: - ldr r0, _0813E800 - ldr r0, [r0] - ldrb r0, [r0] - ldr r1, _0813E804 - mov r3, r8 - adds r4, r3, r7 - lsls r4, r4, #3 - adds r4, r4, r1 - b _0813EC58 - .align 2, 0 -_0813E800: .4byte gUnknown_203A84C -_0813E804: .4byte gUnknown_3005B60 -_0813E808: - ldr r0, _0813E830 - ldr r0, [r0] - ldrb r0, [r0] - bl EvoScene_IsMonAnimFinished - cmp r0, #0 - bne _0813E81A - bl _0813F26C -_0813E81A: - movs r0, #0xbc - lsls r0, r0, #1 - bl sub_080A306C - ldr r0, _0813E834 - mov r2, r8 - adds r1, r2, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - b _0813ED1A - .align 2, 0 -_0813E830: .4byte gUnknown_203A84C -_0813E834: .4byte gUnknown_3005B60 -_0813E838: - bl IsSEPlaying - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - beq _0813E848 - bl _0813F26C -_0813E848: - ldr r0, _0813E870 - bl PlayNewMapMusic - ldr r0, _0813E874 - mov r3, r8 - adds r1, r3, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - str r4, [sp] - movs r0, #0x1c - movs r1, #4 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - bl _0813F26C - .align 2, 0 -_0813E870: .4byte 0x00000179 -_0813E874: .4byte gUnknown_3005B60 -_0813E878: - ldr r0, _0813E8A4 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0813E888 - bl _0813F26C -_0813E888: - movs r0, #0 - bl InitMovingBackgroundTask - movs r0, #0x11 - bl LaunchTask_PreEvoSparklesSet1 - ldr r1, _0813E8A8 - strb r0, [r1, #2] - ldr r0, _0813E8AC - mov r2, r8 - adds r1, r2, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - b _0813ED1A - .align 2, 0 -_0813E8A4: .4byte gUnknown_2037C74 -_0813E8A8: .4byte gUnknown_2023FD6 -_0813E8AC: .4byte gUnknown_3005B60 -_0813E8B0: - ldr r4, _0813E8E8 - ldrb r0, [r4, #2] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r5 - ldrb r0, [r1, #4] - cmp r0, #0 - beq _0813E8C6 - bl _0813F26C -_0813E8C6: - mov r3, r8 - adds r1, r3, r7 - lsls r1, r1, #3 - adds r1, r1, r5 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - ldr r0, _0813E8EC - ldr r1, [r0] - movs r0, #1 - strb r0, [r1, #3] - bl sub_0817BE74 - strb r0, [r4, #2] - bl _0813F26C - .align 2, 0 -_0813E8E8: .4byte gUnknown_2023FD6 -_0813E8EC: .4byte gUnknown_203A84C -_0813E8F0: - ldr r4, _0813E920 - ldrb r0, [r4, #2] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r5 - ldrb r0, [r1, #4] - cmp r0, #0 - beq _0813E906 - bl _0813F26C -_0813E906: - ldr r0, _0813E924 - ldr r1, [r0] - ldrb r0, [r1] - ldrb r1, [r1, #1] - bl sub_0817C260 - strb r0, [r4, #2] - mov r0, r8 - adds r1, r0, r7 - lsls r1, r1, #3 - adds r1, r1, r5 - b _0813ED1A - .align 2, 0 -_0813E920: .4byte gUnknown_2023FD6 -_0813E924: .4byte gUnknown_203A84C -_0813E928: - ldr r2, _0813E964 - ldr r1, [r2] - ldrb r0, [r1, #3] - subs r0, #1 - strb r0, [r1, #3] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0813E93C - bl _0813F26C -_0813E93C: - ldr r1, [r2] - movs r0, #3 - strb r0, [r1, #3] - ldr r0, _0813E968 - ldrb r1, [r0, #2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - ldrb r0, [r0, #4] - cmp r0, #0 - beq _0813E958 - bl _0813F26C -_0813E958: - mov r2, r8 - adds r1, r2, r7 - lsls r1, r1, #3 - adds r1, r1, r5 - b _0813ED1A - .align 2, 0 -_0813E964: .4byte gUnknown_203A84C -_0813E968: .4byte gUnknown_2023FD6 -_0813E96C: - bl sub_0817BF28 - ldr r1, _0813E980 - strb r0, [r1, #2] - ldr r0, _0813E984 - mov r3, r8 - adds r1, r3, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - b _0813ED1A - .align 2, 0 -_0813E980: .4byte gUnknown_2023FD6 -_0813E984: .4byte gUnknown_3005B60 -_0813E988: - ldr r6, _0813E9B0 - ldrb r0, [r6, #2] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r5 - ldrb r0, [r1, #4] - cmp r0, #0 - beq _0813E99E - bl _0813F26C -_0813E99E: - mov r0, r8 - adds r4, r0, r7 - lsls r4, r4, #3 - adds r4, r4, r5 - ldrh r0, [r4, #0xc] - bl sub_0817C004 - strb r0, [r6, #2] - b _0813EC5E - .align 2, 0 -_0813E9B0: .4byte gUnknown_2023FD6 -_0813E9B4: - ldr r0, _0813E9DC - ldrb r1, [r0, #2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - ldrb r0, [r0, #4] - cmp r0, #0 - beq _0813E9CA - bl _0813F26C -_0813E9CA: - movs r0, #0x21 - bl sub_080A306C - mov r2, r8 - adds r1, r2, r7 - lsls r1, r1, #3 - adds r1, r1, r5 - b _0813ED1A - .align 2, 0 -_0813E9DC: .4byte gUnknown_2023FD6 -_0813E9E0: - bl IsSEPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0813E9EE - bl _0813F26C -_0813E9EE: - bl m4aMPlayAllStop - ldr r0, _0813EA20 - ldr r1, _0813EA24 - ldr r1, [r1] - adds r1, #4 - movs r2, #0x60 - bl memcpy - bl OpenPokeblockCaseInBattle - movs r0, #0 - str r0, [sp] - movs r0, #0x1c - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r0, _0813EA28 - mov r3, r8 - adds r1, r3, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - b _0813ED1A - .align 2, 0 -_0813EA20: .4byte gUnknown_20373F4 -_0813EA24: .4byte gUnknown_203A84C -_0813EA28: .4byte gUnknown_3005B60 -_0813EA2C: - ldr r0, _0813EA50 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0813EA3C - bl _0813F26C -_0813EA3C: - ldr r0, _0813EA54 - ldr r0, [r0] - ldrb r0, [r0, #1] - mov r1, r8 - adds r4, r1, r7 - lsls r4, r4, #3 - adds r4, r4, r5 - ldrh r1, [r4, #0xc] - b _0813EC5A - .align 2, 0 -_0813EA50: .4byte gUnknown_2037C74 -_0813EA54: .4byte gUnknown_203A84C -_0813EA58: - bl IsCryFinished - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0813EA66 - bl _0813F26C -_0813EA66: - ldr r4, _0813EAD4 - ldr r1, _0813EAD8 - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - movs r1, #0 - bl sub_0814FA04 - ldr r0, _0813EADC - bl PlayBGM - ldr r2, _0813EAE0 - mov r3, r8 - adds r1, r3, r7 - lsls r1, r1, #3 - adds r4, r1, r2 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - adds r2, r2, r1 - adds r2, #0xc - mov r0, sb - movs r1, #0xb - bl SetMonData - mov r0, sb - bl CalculateMonStats - ldrh r1, [r4, #0xa] - ldrh r2, [r4, #0xc] - mov r0, sb - bl sub_0806D23C - ldrh r0, [r4, #0xc] - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #2 - bl GetSetPokedexFlag - ldrh r0, [r4, #0xc] - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl GetSetPokedexFlag - movs r0, #0xe - bl IncrementGameStat - b _0813F26C - .align 2, 0 -_0813EAD4: .4byte gUnknown_2021C7C -_0813EAD8: .4byte gUnknown_85ABB0F -_0813EADC: .4byte 0x00000173 -_0813EAE0: .4byte gUnknown_3005B60 -_0813EAE4: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0813EAF2 - b _0813F26C -_0813EAF2: - ldr r1, _0813EB50 - mov r2, r8 - adds r0, r2, r7 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrb r1, [r4, #0x10] - mov r0, sb - bl MonTryLearningNewMove - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0 - beq _0813EB70 - movs r3, #0x1a - ldrsh r5, [r4, r3] - cmp r5, #0 - bne _0813EB70 - ldrh r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0813EB26 - bl StopMapMusic - bl Overworld_PlaySpecialMapMusic -_0813EB26: - ldrh r0, [r4, #0xe] - movs r1, #0x80 - orrs r0, r1 - strh r0, [r4, #0xe] - strh r5, [r4, #0x10] - strh r5, [r4, #0x14] - mov r0, sb - movs r1, #2 - add r2, sp, #4 - bl GetMonData - ldr r0, _0813EB54 - add r1, sp, #4 - bl StringCopy10 - ldr r0, _0813EB58 - cmp r6, r0 - bne _0813EB5C - movs r0, #0x16 - strh r0, [r4, #8] - b _0813F26C - .align 2, 0 -_0813EB50: .4byte gUnknown_3005B60 -_0813EB54: .4byte gUnknown_2022C0C -_0813EB58: .4byte 0x0000FFFF -_0813EB5C: - ldr r0, _0813EB6C - cmp r6, r0 - bne _0813EB64 - b _0813F26C -_0813EB64: - movs r0, #0x14 - strh r0, [r4, #8] - b _0813F26C - .align 2, 0 -_0813EB6C: .4byte 0x0000FFFE -_0813EB70: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _0813EB8C - mov r2, r8 - adds r1, r2, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - b _0813ED1A - .align 2, 0 -_0813EB8C: .4byte gUnknown_3005B60 -_0813EB90: - ldr r0, _0813EBF0 - ldrb r1, [r0, #7] - movs r2, #0x80 - adds r0, r2, #0 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - beq _0813EBA4 - b _0813F26C -_0813EBA4: - mov r3, r8 - adds r0, r3, r7 - lsls r0, r0, #3 - adds r4, r0, r5 - ldrh r1, [r4, #0xe] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _0813EBBE - bl StopMapMusic - bl Overworld_PlaySpecialMapMusic -_0813EBBE: - movs r1, #0x1a - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0813EBCE - ldrh r0, [r4, #0xa] - mov r1, sb - bl sub_0813E4E0 -_0813EBCE: - adds r0, r7, #0 - bl DestroyTask - bl FreeMonSpritesGfx - ldr r4, _0813EBF4 - ldr r0, [r4] - bl Free - str r6, [r4] - bl FreeAllWindowBuffers - ldr r0, _0813EBF8 - ldr r0, [r0] - bl SetMainCallback2 - b _0813F26C - .align 2, 0 -_0813EBF0: .4byte gUnknown_2037C74 -_0813EBF4: .4byte gUnknown_203A84C -_0813EBF8: .4byte gUnknown_3005F28 -_0813EBFC: - ldr r0, _0813EC30 - ldrb r1, [r0, #2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - ldrb r0, [r0, #4] - cmp r0, #0 - beq _0813EC10 - b _0813F26C -_0813EC10: - bl m4aMPlayAllStop - ldr r0, _0813EC34 - ldr r1, _0813EC38 - str r1, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - mov r2, r8 - adds r1, r2, r7 - lsls r1, r1, #3 - adds r1, r1, r5 - b _0813ED1A - .align 2, 0 -_0813EC30: .4byte gUnknown_2023FD6 -_0813EC34: .4byte 0x0006001C -_0813EC38: .4byte 0x00007FFF -_0813EC3C: - ldr r0, _0813EC68 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0813EC4A - b _0813F26C -_0813EC4A: - ldr r0, _0813EC6C - ldr r0, [r0] - ldrb r0, [r0] - mov r3, r8 - adds r4, r3, r7 - lsls r4, r4, #3 - adds r4, r4, r5 -_0813EC58: - ldrh r1, [r4, #0xa] -_0813EC5A: - bl EvoScene_DoMonAnimation -_0813EC5E: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _0813F26C - .align 2, 0 -_0813EC68: .4byte gUnknown_2037C74 -_0813EC6C: .4byte gUnknown_203A84C -_0813EC70: - ldr r0, _0813EC9C - ldr r0, [r0] - ldrb r0, [r0] - bl EvoScene_IsMonAnimFinished - cmp r0, #0 - bne _0813EC80 - b _0813F26C -_0813EC80: - ldr r0, _0813ECA0 - mov r2, r8 - adds r1, r2, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r3, #0x1a - ldrsh r0, [r1, r3] - cmp r0, #0 - beq _0813ECAC - ldr r0, _0813ECA4 - ldr r1, _0813ECA8 - bl StringExpandPlaceholders - b _0813ECB4 - .align 2, 0 -_0813EC9C: .4byte gUnknown_203A84C -_0813ECA0: .4byte gUnknown_3005B60 -_0813ECA4: .4byte gUnknown_2021C7C -_0813ECA8: .4byte gUnknown_85ABB3E -_0813ECAC: - ldr r0, _0813ECCC - ldr r1, _0813ECD0 - bl StringExpandPlaceholders -_0813ECB4: - ldr r0, _0813ECCC - movs r1, #0 - bl sub_0814FA04 - ldr r1, _0813ECD4 - mov r2, r8 - adds r0, r2, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #1 - strh r1, [r0, #0x1a] - b _0813F236 - .align 2, 0 -_0813ECCC: .4byte gUnknown_2021C7C -_0813ECD0: .4byte gUnknown_85ABB28 -_0813ECD4: .4byte gUnknown_3005B60 -_0813ECD8: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0813ECE6 - b _0813F26C -_0813ECE6: - bl IsSEPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0813ECF2 - b _0813F26C -_0813ECF2: - bl BufferMoveToLearnIntoBattleTextBuff2 - ldr r0, _0813ED24 - bl PlayFanfare - ldr r0, _0813ED28 - ldr r0, [r0, #0xc] - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r0, _0813ED2C - movs r1, #0 - bl sub_0814FA04 - ldr r0, _0813ED30 - mov r3, r8 - adds r1, r3, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0x40 - strh r0, [r1, #0x10] -_0813ED1A: - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _0813F26C - .align 2, 0 -_0813ED24: .4byte 0x0000016F -_0813ED28: .4byte gUnknown_85AB3DC -_0813ED2C: .4byte gUnknown_2022AE0 -_0813ED30: .4byte gUnknown_3005B60 -_0813ED34: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0813ED42 - b _0813F26C -_0813ED42: - bl IsSEPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0813ED4E - b _0813F26C -_0813ED4E: - ldr r0, _0813ED6C - mov r2, r8 - adds r1, r2, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x10] - subs r0, #1 - strh r0, [r1, #0x10] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0813ED66 - b _0813F26C -_0813ED66: - movs r0, #0xf - strh r0, [r1, #8] - b _0813F26C - .align 2, 0 -_0813ED6C: .4byte gUnknown_3005B60 -_0813ED70: - mov r3, r8 - adds r0, r3, r7 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r1, #0x14 - ldrsh r0, [r0, r1] - cmp r0, #0xc - bls _0813ED82 - b _0813F26C -_0813ED82: - lsls r0, r0, #2 - ldr r1, _0813ED8C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813ED8C: .4byte _0813ED90 -_0813ED90: @ jump table - .4byte _0813EDC4 @ case 0 - .4byte _0813EE10 @ case 1 - .4byte _0813EE58 @ case 2 - .4byte _0813EE96 @ case 3 - .4byte _0813EEFC @ case 4 - .4byte _0813EFF8 @ case 5 - .4byte _0813F050 @ case 6 - .4byte _0813F124 @ case 7 - .4byte _0813F158 @ case 8 - .4byte _0813F1A0 @ case 9 - .4byte _0813F1E8 @ case 10 - .4byte _0813F21C @ case 11 - .4byte _0813F248 @ case 12 -_0813EDC4: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0813EDD2 - b _0813F26C -_0813EDD2: - bl IsSEPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0813EDDE - b _0813F26C -_0813EDDE: - bl BufferMoveToLearnIntoBattleTextBuff2 - ldr r0, _0813EE04 - ldr r0, [r0, #0x10] - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r0, _0813EE08 - movs r1, #0 - bl sub_0814FA04 - ldr r0, _0813EE0C - mov r2, r8 - adds r1, r2, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x14] - adds r0, #1 - b _0813F26A - .align 2, 0 -_0813EE04: .4byte gUnknown_85AB3DC -_0813EE08: .4byte gUnknown_2022AE0 -_0813EE0C: .4byte gUnknown_3005B60 -_0813EE10: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0813EE1E - b _0813F26C -_0813EE1E: - bl IsSEPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0813EE2A - b _0813F26C -_0813EE2A: - ldr r0, _0813EE4C - ldr r0, [r0, #0x14] - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r0, _0813EE50 - movs r1, #0 - bl sub_0814FA04 - ldr r0, _0813EE54 - mov r3, r8 - adds r1, r3, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x14] - adds r0, #1 - b _0813F26A - .align 2, 0 -_0813EE4C: .4byte gUnknown_85AB3DC -_0813EE50: .4byte gUnknown_2022AE0 -_0813EE54: .4byte gUnknown_3005B60 -_0813EE58: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0813EE96 - bl IsSEPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0813EE96 - ldr r0, _0813EEE8 - ldr r0, [r0, #0x18] - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r0, _0813EEEC - movs r1, #0 - bl sub_0814FA04 - ldr r0, _0813EEF0 - mov r2, r8 - adds r1, r2, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #5 - strh r0, [r1, #0x16] - movs r0, #0xa - strh r0, [r1, #0x18] - ldrh r0, [r1, #0x14] - adds r0, #1 - strh r0, [r1, #0x14] -_0813EE96: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0813EEA4 - b _0813F26C -_0813EEA4: - bl IsSEPlaying - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _0813EEB2 - b _0813F26C -_0813EEB2: - str r0, [sp] - movs r0, #0x18 - movs r1, #8 - movs r2, #0x1d - movs r3, #0xd - bl HandleBattleWindow - ldr r0, _0813EEF4 - movs r1, #0xc - bl sub_0814FA04 - ldr r0, _0813EEF0 - mov r3, r8 - adds r1, r3, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x14] - adds r0, #1 - movs r2, #0 - strh r0, [r1, #0x14] - ldr r0, _0813EEF8 - strb r2, [r0, #1] - movs r0, #0 - bl BattleCreateYesNoCursorAt - b _0813F26C - .align 2, 0 -_0813EEE8: .4byte gUnknown_85AB3DC -_0813EEEC: .4byte gUnknown_2022AE0 -_0813EEF0: .4byte gUnknown_3005B60 -_0813EEF4: .4byte gUnknown_85ABBC9 -_0813EEF8: .4byte gUnknown_2023FD6 -_0813EEFC: - ldr r0, _0813EF88 - ldrh r1, [r0, #0x2e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0813EF24 - ldr r4, _0813EF8C - ldrb r0, [r4, #1] - cmp r0, #0 - beq _0813EF24 - movs r0, #5 - bl sub_080A306C - ldrb r0, [r4, #1] - bl BattleDestroyYesNoCursorAt - movs r0, #0 - strb r0, [r4, #1] - bl BattleCreateYesNoCursorAt -_0813EF24: - ldr r0, _0813EF88 - ldrh r1, [r0, #0x2e] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0813EF4C - ldr r4, _0813EF8C - ldrb r0, [r4, #1] - cmp r0, #0 - bne _0813EF4C - movs r0, #5 - bl sub_080A306C - ldrb r0, [r4, #1] - bl BattleDestroyYesNoCursorAt - movs r0, #1 - strb r0, [r4, #1] - bl BattleCreateYesNoCursorAt -_0813EF4C: - ldr r0, _0813EF88 - ldrh r1, [r0, #0x2e] - movs r2, #1 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0813EFBA - str r2, [sp] - movs r0, #0x18 - movs r1, #8 - movs r2, #0x1d - movs r3, #0xd - bl HandleBattleWindow - movs r0, #5 - bl sub_080A306C - ldr r0, _0813EF8C - ldrb r2, [r0, #1] - cmp r2, #0 - beq _0813EF94 - ldr r0, _0813EF90 - mov r2, r8 - adds r1, r2, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x18] - strh r0, [r1, #0x14] - b _0813EFBA - .align 2, 0 -_0813EF88: .4byte gUnknown_3002360 -_0813EF8C: .4byte gUnknown_2023FD6 -_0813EF90: .4byte gUnknown_3005B60 -_0813EF94: - ldr r0, _0813EFF0 - mov r3, r8 - adds r1, r3, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x16] - strh r0, [r1, #0x14] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #5 - bne _0813EFBA - movs r0, #1 - rsbs r0, r0, #0 - str r2, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade -_0813EFBA: - ldr r0, _0813EFF4 - ldrh r1, [r0, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0813EFC8 - b _0813F26C -_0813EFC8: - movs r0, #1 - str r0, [sp] - movs r0, #0x18 - movs r1, #8 - movs r2, #0x1d - movs r3, #0xd - bl HandleBattleWindow - movs r0, #5 - bl sub_080A306C - ldr r1, _0813EFF0 - mov r2, r8 - adds r0, r2, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #0x18] - strh r1, [r0, #0x14] - b _0813F26C - .align 2, 0 -_0813EFF0: .4byte gUnknown_3005B60 -_0813EFF4: .4byte gUnknown_3002360 -_0813EFF8: - ldr r0, _0813F038 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0813F006 - b _0813F26C -_0813F006: - bl FreeAllWindowBuffers - ldr r0, _0813F03C - ldr r1, _0813F040 - mov r3, r8 - adds r5, r3, r7 - lsls r5, r5, #3 - adds r5, r5, r1 - ldrb r1, [r5, #0x1c] - ldr r2, _0813F044 - ldrb r2, [r2] - subs r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r3, _0813F048 - ldr r4, _0813F04C - ldrh r4, [r4] - str r4, [sp] - bl ShowSelectMovePokemonSummaryScreen - ldrh r0, [r5, #0x14] - adds r0, #1 - strh r0, [r5, #0x14] - b _0813F26C - .align 2, 0 -_0813F038: .4byte gUnknown_2037C74 -_0813F03C: .4byte gUnknown_2024190 -_0813F040: .4byte gUnknown_3005B60 -_0813F044: .4byte gUnknown_202418D -_0813F048: .4byte CB2_EvolutionSceneLoadGraphics -_0813F04C: .4byte gUnknown_2024186 -_0813F050: - ldr r0, _0813F084 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0813F05E - b _0813F26C -_0813F05E: - ldr r1, [r6, #4] - ldr r0, _0813F088 - cmp r1, r0 - beq _0813F068 - b _0813F26C -_0813F068: - bl sub_081C14C8 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #4 - bne _0813F090 - ldr r0, _0813F08C - mov r2, r8 - adds r1, r2, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0xa - b _0813F26A - .align 2, 0 -_0813F084: .4byte gUnknown_2037C74 -_0813F088: .4byte sub_0813E4A8 -_0813F08C: .4byte gUnknown_3005B60 -_0813F090: - adds r1, r6, #0 - adds r1, #0xd - mov r0, sb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r4, #0 - bl IsHMMove2 - cmp r0, #0 - beq _0813F0DC - ldr r0, _0813F0CC - ldr r3, _0813F0D0 - adds r0, r0, r3 - ldr r0, [r0] - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r0, _0813F0D4 - movs r1, #0 - bl sub_0814FA04 - ldr r1, _0813F0D8 - mov r2, r8 - adds r0, r2, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0xc - strh r1, [r0, #0x14] - b _0813F26C - .align 2, 0 -_0813F0CC: .4byte gUnknown_85AB3DC -_0813F0D0: .4byte 0x000004CC -_0813F0D4: .4byte gUnknown_2022AE0 -_0813F0D8: .4byte gUnknown_3005B60 -_0813F0DC: - ldr r1, _0813F118 - movs r0, #0xfd - strb r0, [r1] - movs r0, #2 - strb r0, [r1, #1] - strb r4, [r1, #2] - lsrs r0, r4, #8 - strb r0, [r1, #3] - movs r0, #0xff - strb r0, [r1, #4] - lsls r4, r6, #0x18 - lsrs r4, r4, #0x18 - mov r0, sb - adds r1, r4, #0 - bl RemoveMonPPBonus - ldr r0, _0813F11C - ldrh r1, [r0] - mov r0, sb - adds r2, r4, #0 - bl SetMonMoveSlot - ldr r0, _0813F120 - mov r3, r8 - adds r1, r3, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x14] - adds r0, #1 - b _0813F26A - .align 2, 0 -_0813F118: .4byte gUnknown_2022C1C -_0813F11C: .4byte gUnknown_2024186 -_0813F120: .4byte gUnknown_3005B60 -_0813F124: - ldr r0, _0813F14C - movs r1, #0xcf - lsls r1, r1, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r0, _0813F150 - movs r1, #0 - bl sub_0814FA04 - ldr r0, _0813F154 - mov r2, r8 - adds r1, r2, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x14] - adds r0, #1 - b _0813F26A - .align 2, 0 -_0813F14C: .4byte gUnknown_85AB3DC -_0813F150: .4byte gUnknown_2022AE0 -_0813F154: .4byte gUnknown_3005B60 -_0813F158: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0813F166 - b _0813F26C -_0813F166: - bl IsSEPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0813F172 - b _0813F26C -_0813F172: - ldr r0, _0813F194 - ldr r0, [r0, #0x1c] - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r0, _0813F198 - movs r1, #0 - bl sub_0814FA04 - ldr r0, _0813F19C - mov r3, r8 - adds r1, r3, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x14] - adds r0, #1 - b _0813F26A - .align 2, 0 -_0813F194: .4byte gUnknown_85AB3DC -_0813F198: .4byte gUnknown_2022AE0 -_0813F19C: .4byte gUnknown_3005B60 -_0813F1A0: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0813F26C - bl IsSEPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0813F26C - ldr r0, _0813F1DC - movs r1, #0xd0 - lsls r1, r1, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r0, _0813F1E0 - movs r1, #0 - bl sub_0814FA04 - ldr r1, _0813F1E4 - mov r2, r8 - adds r0, r2, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0x14 - strh r1, [r0, #8] - b _0813F26C - .align 2, 0 -_0813F1DC: .4byte gUnknown_85AB3DC -_0813F1E0: .4byte gUnknown_2022AE0 -_0813F1E4: .4byte gUnknown_3005B60 -_0813F1E8: - ldr r0, _0813F210 - ldr r0, [r0, #0x20] - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r0, _0813F214 - movs r1, #0 - bl sub_0814FA04 - ldr r1, _0813F218 - mov r3, r8 - adds r0, r3, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #0 - movs r1, #0xb - strh r1, [r0, #0x16] - strh r2, [r0, #0x18] - movs r1, #3 - strh r1, [r0, #0x14] - b _0813F26C - .align 2, 0 -_0813F210: .4byte gUnknown_85AB3DC -_0813F214: .4byte gUnknown_2022AE0 -_0813F218: .4byte gUnknown_3005B60 -_0813F21C: - ldr r0, _0813F23C - ldr r0, [r0, #0x24] - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r0, _0813F240 - movs r1, #0 - bl sub_0814FA04 - ldr r1, _0813F244 - mov r2, r8 - adds r0, r2, r7 - lsls r0, r0, #3 - adds r0, r0, r1 -_0813F236: - movs r1, #0xf - strh r1, [r0, #8] - b _0813F26C - .align 2, 0 -_0813F23C: .4byte gUnknown_85AB3DC -_0813F240: .4byte gUnknown_2022AE0 -_0813F244: .4byte gUnknown_3005B60 -_0813F248: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0813F26C - bl IsSEPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0813F26C - ldr r0, _0813F27C - mov r3, r8 - adds r1, r3, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #5 -_0813F26A: - strh r0, [r1, #0x14] -_0813F26C: - add sp, #0x18 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0813F27C: .4byte gUnknown_3005B60 - thumb_func_end Task_EvolutionScene - - thumb_func_start sub_0813F280 -sub_0813F280: @ 0x0813F280 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x20 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r3, _0813F2C0 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r3 - movs r1, #0x1c - ldrsh r2, [r0, r1] - movs r1, #0x64 - muls r2, r1, r2 - ldr r1, _0813F2C4 - adds r2, r2, r1 - mov sb, r2 - movs r2, #8 - ldrsh r0, [r0, r2] - adds r5, r3, #0 - cmp r0, #0x14 - bls _0813F2B4 - bl _0813FD8C -_0813F2B4: - lsls r0, r0, #2 - ldr r1, _0813F2C8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813F2C0: .4byte gUnknown_3005B60 -_0813F2C4: .4byte gUnknown_2024190 -_0813F2C8: .4byte _0813F2CC -_0813F2CC: @ jump table - .4byte _0813F320 @ case 0 - .4byte _0813F34C @ case 1 - .4byte _0813F374 @ case 2 - .4byte _0813F3A4 @ case 3 - .4byte _0813F3DC @ case 4 - .4byte _0813F448 @ case 5 - .4byte _0813F488 @ case 6 - .4byte _0813F4B8 @ case 7 - .4byte _0813F4F4 @ case 8 - .4byte _0813F510 @ case 9 - .4byte _0813F53C @ case 10 - .4byte _0813F560 @ case 11 - .4byte _0813F5A0 @ case 12 - .4byte _0813F62C @ case 13 - .4byte _0813F6E0 @ case 14 - .4byte _0813F724 @ case 15 - .4byte _0813F78C @ case 16 - .4byte _0813F7C0 @ case 17 - .4byte _0813F804 @ case 18 - .4byte _0813F860 @ case 19 - .4byte _0813F8A0 @ case 20 -_0813F320: - ldr r4, _0813F340 - ldr r1, _0813F344 - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #0 - adds r1, r4, #0 - movs r2, #1 - bl sub_0807EBE0 - ldr r1, _0813F348 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - b _0813F770 - .align 2, 0 -_0813F340: .4byte gUnknown_2021C7C -_0813F344: .4byte gUnknown_85ABAFC -_0813F348: .4byte gUnknown_3005B60 -_0813F34C: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0813F35C - bl _0813FD8C -_0813F35C: - ldr r0, _0813F370 - lsls r4, r7, #2 - adds r4, r4, r7 - lsls r4, r4, #3 - adds r4, r4, r0 - ldrh r0, [r4, #0xa] - movs r1, #0 - bl PlayCry1 - b _0813F7AE - .align 2, 0 -_0813F370: .4byte gUnknown_3005B60 -_0813F374: - bl IsCryFinished - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0813F382 - bl _0813FD8C -_0813F382: - ldr r0, _0813F39C - bl m4aSongNumStop - movs r0, #0xbc - lsls r0, r0, #1 - bl sub_080A306C - ldr r1, _0813F3A0 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - b _0813F770 - .align 2, 0 -_0813F39C: .4byte 0x00000179 -_0813F3A0: .4byte gUnknown_3005B60 -_0813F3A4: - bl IsSEPlaying - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - beq _0813F3B4 - bl _0813FD8C -_0813F3B4: - ldr r0, _0813F3D4 - bl PlayBGM - ldr r1, _0813F3D8 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #8] - adds r1, #1 - strh r1, [r0, #8] - str r5, [sp] - movs r0, #0x1c - movs r1, #4 - b _0813FA90 - .align 2, 0 -_0813F3D4: .4byte 0x00000179 -_0813F3D8: .4byte gUnknown_3005B60 -_0813F3DC: - ldr r0, _0813F430 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0813F3EC - bl _0813FD8C -_0813F3EC: - movs r0, #1 - bl InitMovingBackgroundTask - ldr r2, _0813F434 - ldr r0, _0813F438 - ldr r0, [r0] - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #5] - lsrs r0, r0, #4 - adds r6, r0, #0 - adds r6, #0x10 - adds r0, r6, #0 - bl LaunchTask_PreEvoSparklesSet1 - ldr r1, _0813F43C - strb r0, [r1, #2] - ldr r1, _0813F440 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #8] - adds r1, #1 - strh r1, [r0, #8] - ldr r1, _0813F444 - movs r0, #0xe - bl SetGpuReg - bl _0813FD8C - .align 2, 0 -_0813F430: .4byte gUnknown_2037C74 -_0813F434: .4byte gUnknown_20205AC -_0813F438: .4byte gUnknown_203A84C -_0813F43C: .4byte gUnknown_2023FD6 -_0813F440: .4byte gUnknown_3005B60 -_0813F444: .4byte 0x00000603 -_0813F448: - ldr r4, _0813F480 - ldrb r0, [r4, #2] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r5 - ldrb r0, [r1, #4] - cmp r0, #0 - beq _0813F45E - bl _0813FD8C -_0813F45E: - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r5 - ldrh r1, [r0, #8] - adds r1, #1 - strh r1, [r0, #8] - ldr r0, _0813F484 - ldr r1, [r0] - movs r0, #1 - strb r0, [r1, #3] - bl sub_0817BE74 - strb r0, [r4, #2] - bl _0813FD8C - .align 2, 0 -_0813F480: .4byte gUnknown_2023FD6 -_0813F484: .4byte gUnknown_203A84C -_0813F488: - ldr r4, _0813F4B0 - ldrb r0, [r4, #2] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r5 - ldrb r0, [r1, #4] - cmp r0, #0 - beq _0813F49E - bl _0813FD8C -_0813F49E: - ldr r0, _0813F4B4 - ldr r1, [r0] - ldrb r0, [r1] - ldrb r1, [r1, #1] - bl sub_0817C260 - strb r0, [r4, #2] - b _0813F768 - .align 2, 0 -_0813F4B0: .4byte gUnknown_2023FD6 -_0813F4B4: .4byte gUnknown_203A84C -_0813F4B8: - ldr r2, _0813F4EC - ldr r1, [r2] - ldrb r0, [r1, #3] - subs r0, #1 - strb r0, [r1, #3] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0813F4CC - bl _0813FD8C -_0813F4CC: - ldr r1, [r2] - movs r0, #3 - strb r0, [r1, #3] - ldr r0, _0813F4F0 - ldrb r1, [r0, #2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - ldrb r0, [r0, #4] - cmp r0, #0 - beq _0813F4E8 - bl _0813FD8C -_0813F4E8: - b _0813F768 - .align 2, 0 -_0813F4EC: .4byte gUnknown_203A84C -_0813F4F0: .4byte gUnknown_2023FD6 -_0813F4F4: - bl sub_0817BF28 - ldr r1, _0813F508 - strb r0, [r1, #2] - ldr r1, _0813F50C - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - b _0813F770 - .align 2, 0 -_0813F508: .4byte gUnknown_2023FD6 -_0813F50C: .4byte gUnknown_3005B60 -_0813F510: - ldr r6, _0813F538 - ldrb r0, [r6, #2] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r5 - ldrb r0, [r1, #4] - cmp r0, #0 - beq _0813F526 - bl _0813FD8C -_0813F526: - lsls r4, r7, #2 - adds r4, r4, r7 - lsls r4, r4, #3 - adds r4, r4, r5 - ldrh r0, [r4, #0xc] - bl sub_0817C140 - strb r0, [r6, #2] - b _0813F7AE - .align 2, 0 -_0813F538: .4byte gUnknown_2023FD6 -_0813F53C: - ldr r0, _0813F55C - ldrb r1, [r0, #2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - ldrb r0, [r0, #4] - cmp r0, #0 - beq _0813F552 - bl _0813FD8C -_0813F552: - movs r0, #0x21 - bl sub_080A306C - b _0813F768 - .align 2, 0 -_0813F55C: .4byte gUnknown_2023FD6 -_0813F560: - bl IsSEPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0813F56E - bl _0813FD8C -_0813F56E: - ldr r5, _0813F594 - ldr r0, [r5] - ldrb r0, [r0, #1] - ldr r1, _0813F598 - lsls r4, r7, #2 - adds r4, r4, r7 - lsls r4, r4, #3 - adds r4, r4, r1 - ldrh r1, [r4, #0xc] - bl EvoScene_DoMonAnimation - ldr r0, _0813F59C - ldr r1, [r5] - adds r1, #4 - movs r2, #0x60 - bl memcpy - b _0813F7AE - .align 2, 0 -_0813F594: .4byte gUnknown_203A84C -_0813F598: .4byte gUnknown_3005B60 -_0813F59C: .4byte gUnknown_20373F4 -_0813F5A0: - bl IsCryFinished - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0813F5AE - bl _0813FD8C -_0813F5AE: - ldr r4, _0813F61C - ldr r1, _0813F620 - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #0 - adds r1, r4, #0 - movs r2, #1 - bl sub_0807EBE0 - ldr r0, _0813F624 - bl PlayFanfare - ldr r2, _0813F628 - lsls r1, r7, #2 - adds r1, r1, r7 - lsls r1, r1, #3 - adds r4, r1, r2 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - adds r2, r2, r1 - adds r2, #0xc - mov r0, sb - movs r1, #0xb - bl SetMonData - mov r0, sb - bl CalculateMonStats - ldrh r1, [r4, #0xa] - ldrh r2, [r4, #0xc] - mov r0, sb - bl sub_0806D23C - ldrh r0, [r4, #0xc] - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #2 - bl GetSetPokedexFlag - ldrh r0, [r4, #0xc] - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl GetSetPokedexFlag - movs r0, #0xe - bl IncrementGameStat - b _0813FD8C - .align 2, 0 -_0813F61C: .4byte gUnknown_2021C7C -_0813F620: .4byte gUnknown_85ABB0F -_0813F624: .4byte 0x00000173 -_0813F628: .4byte gUnknown_3005B60 -_0813F62C: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0813F63A - b _0813FD8C -_0813F63A: - bl IsFanfareTaskInactive - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0813F648 - b _0813FD8C -_0813F648: - ldr r1, _0813F698 - lsls r4, r7, #2 - adds r0, r4, r7 - lsls r0, r0, #3 - adds r5, r0, r1 - ldrb r1, [r5, #0x10] - mov r0, sb - bl MonTryLearningNewMove - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - mov r8, r4 - cmp r6, #0 - beq _0813F6B8 - movs r0, #0x1a - ldrsh r2, [r5, r0] - cmp r2, #0 - bne _0813F6B8 - ldrh r1, [r5, #0xe] - movs r0, #0x80 - orrs r0, r1 - strh r0, [r5, #0xe] - strh r2, [r5, #0x10] - strh r2, [r5, #0x14] - mov r0, sb - movs r1, #2 - add r2, sp, #0xc - bl GetMonData - ldr r0, _0813F69C - add r1, sp, #0xc - bl StringCopy10 - ldr r0, _0813F6A0 - cmp r6, r0 - bne _0813F6A4 - movs r0, #0x14 - strh r0, [r5, #8] - b _0813FD8C - .align 2, 0 -_0813F698: .4byte gUnknown_3005B60 -_0813F69C: .4byte gUnknown_2022C0C -_0813F6A0: .4byte 0x0000FFFF -_0813F6A4: - ldr r0, _0813F6B4 - cmp r6, r0 - bne _0813F6AC - b _0813FD8C -_0813F6AC: - movs r0, #0x12 - strh r0, [r5, #8] - b _0813FD8C - .align 2, 0 -_0813F6B4: .4byte 0x0000FFFE -_0813F6B8: - ldr r0, _0813F6D4 - bl PlayBGM - ldr r1, _0813F6D8 - movs r0, #0 - movs r2, #1 - bl sub_0807EBE0 - ldr r0, _0813F6DC - mov r2, r8 - adds r1, r2, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - b _0813F848 - .align 2, 0 -_0813F6D4: .4byte 0x00000179 -_0813F6D8: .4byte gUnknown_8595430 -_0813F6DC: .4byte gUnknown_3005B60 -_0813F6E0: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0 - beq _0813F6F0 - b _0813FD8C -_0813F6F0: - adds r0, r7, #0 - bl DestroyTask - ldr r4, _0813F718 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r2, _0813F71C - ldrb r1, [r2] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldr r0, _0813F720 - ldr r0, [r0] - bl SetMainCallback2 - b _0813FD8C - .align 2, 0 -_0813F718: .4byte gUnknown_203A84C -_0813F71C: .4byte gUnknown_30030B4 -_0813F720: .4byte gUnknown_3005F28 -_0813F724: - ldr r0, _0813F778 - ldrb r1, [r0, #2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - ldrb r0, [r0, #4] - cmp r0, #0 - beq _0813F738 - b _0813FD8C -_0813F738: - bl m4aMPlayAllStop - ldr r2, _0813F77C - ldr r0, _0813F780 - ldr r0, [r0] - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #5] - lsrs r1, r1, #4 - adds r1, #0x10 - movs r0, #1 - lsls r0, r1 - ldr r1, _0813F784 - orrs r0, r1 - ldr r1, _0813F788 - str r1, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade -_0813F768: - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r5 -_0813F770: - ldrh r1, [r0, #8] - adds r1, #1 - strh r1, [r0, #8] - b _0813FD8C - .align 2, 0 -_0813F778: .4byte gUnknown_2023FD6 -_0813F77C: .4byte gUnknown_20205AC -_0813F780: .4byte gUnknown_203A84C -_0813F784: .4byte 0x0004001C -_0813F788: .4byte 0x00007FFF -_0813F78C: - ldr r0, _0813F7B8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0813F79A - b _0813FD8C -_0813F79A: - ldr r0, _0813F7BC - ldr r0, [r0] - ldrb r0, [r0] - lsls r4, r7, #2 - adds r4, r4, r7 - lsls r4, r4, #3 - adds r4, r4, r5 - ldrh r1, [r4, #0xa] - bl EvoScene_DoMonAnimation -_0813F7AE: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _0813FD8C - .align 2, 0 -_0813F7B8: .4byte gUnknown_2037C74 -_0813F7BC: .4byte gUnknown_203A84C -_0813F7C0: - ldr r0, _0813F7F4 - ldr r0, [r0] - ldrb r0, [r0] - bl EvoScene_IsMonAnimFinished - cmp r0, #0 - bne _0813F7D0 - b _0813FD8C -_0813F7D0: - ldr r4, _0813F7F8 - ldr r1, _0813F7FC - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #0 - adds r1, r4, #0 - movs r2, #1 - bl sub_0807EBE0 - ldr r1, _0813F800 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #1 - strh r1, [r0, #0x1a] - b _0813FD54 - .align 2, 0 -_0813F7F4: .4byte gUnknown_203A84C -_0813F7F8: .4byte gUnknown_2021C7C -_0813F7FC: .4byte gUnknown_85ABB3E -_0813F800: .4byte gUnknown_3005B60 -_0813F804: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0813F812 - b _0813FD8C -_0813F812: - bl IsSEPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0813F81E - b _0813FD8C -_0813F81E: - bl BufferMoveToLearnIntoBattleTextBuff2 - ldr r0, _0813F850 - bl PlayFanfare - ldr r0, _0813F854 - ldr r0, [r0, #0xc] - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r1, _0813F858 - movs r0, #0 - movs r2, #1 - bl sub_0807EBE0 - ldr r0, _0813F85C - lsls r1, r7, #2 - adds r1, r1, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0x40 - strh r0, [r1, #0x10] -_0813F848: - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _0813FD8C - .align 2, 0 -_0813F850: .4byte 0x0000016F -_0813F854: .4byte gUnknown_85AB3DC -_0813F858: .4byte gUnknown_2022AE0 -_0813F85C: .4byte gUnknown_3005B60 -_0813F860: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0813F86E - b _0813FD8C -_0813F86E: - bl IsFanfareTaskInactive - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0813F87C - b _0813FD8C -_0813F87C: - ldr r0, _0813F89C - lsls r1, r7, #2 - adds r1, r1, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x10] - subs r0, #1 - strh r0, [r1, #0x10] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0813F894 - b _0813FD8C -_0813F894: - movs r0, #0xd - strh r0, [r1, #8] - b _0813FD8C - .align 2, 0 -_0813F89C: .4byte gUnknown_3005B60 -_0813F8A0: - lsls r1, r7, #2 - adds r0, r1, r7 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r2, #0x14 - ldrsh r0, [r0, r2] - mov r8, r1 - cmp r0, #0xb - bls _0813F8B4 - b _0813FD8C -_0813F8B4: - lsls r0, r0, #2 - ldr r1, _0813F8C0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813F8C0: .4byte _0813F8C4 -_0813F8C4: @ jump table - .4byte _0813F8F4 @ case 0 - .4byte _0813F940 @ case 1 - .4byte _0813F988 @ case 2 - .4byte _0813F9C8 @ case 3 - .4byte _0813FA34 @ case 4 - .4byte _0813FAEC @ case 5 - .4byte _0813FB70 @ case 6 - .4byte _0813FC6C @ case 7 - .4byte _0813FCB4 @ case 8 - .4byte _0813FD00 @ case 9 - .4byte _0813FD38 @ case 10 - .4byte _0813FD68 @ case 11 -_0813F8F4: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0813F902 - b _0813FD8C -_0813F902: - bl IsSEPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0813F90E - b _0813FD8C -_0813F90E: - bl BufferMoveToLearnIntoBattleTextBuff2 - ldr r0, _0813F934 - ldr r0, [r0, #0x10] - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r1, _0813F938 - movs r0, #0 - movs r2, #1 - bl sub_0807EBE0 - ldr r0, _0813F93C - mov r2, r8 - adds r1, r2, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x14] - adds r0, #1 - b _0813FD8A - .align 2, 0 -_0813F934: .4byte gUnknown_85AB3DC -_0813F938: .4byte gUnknown_2022AE0 -_0813F93C: .4byte gUnknown_3005B60 -_0813F940: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0813F94E - b _0813FD8C -_0813F94E: - bl IsSEPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0813F95A - b _0813FD8C -_0813F95A: - ldr r0, _0813F97C - ldr r0, [r0, #0x14] - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r1, _0813F980 - movs r0, #0 - movs r2, #1 - bl sub_0807EBE0 - ldr r0, _0813F984 - mov r2, r8 - adds r1, r2, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x14] - adds r0, #1 - b _0813FD8A - .align 2, 0 -_0813F97C: .4byte gUnknown_85AB3DC -_0813F980: .4byte gUnknown_2022AE0 -_0813F984: .4byte gUnknown_3005B60 -_0813F988: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0813F9C8 - bl IsSEPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0813F9C8 - ldr r0, _0813FA20 - ldr r0, [r0, #0x18] - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r1, _0813FA24 - movs r0, #0 - movs r2, #1 - bl sub_0807EBE0 - ldr r0, _0813FA28 - mov r2, r8 - adds r1, r2, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #5 - strh r0, [r1, #0x16] - movs r0, #9 - strh r0, [r1, #0x18] - ldrh r0, [r1, #0x14] - adds r0, #1 - strh r0, [r1, #0x14] -_0813F9C8: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0813F9D6 - b _0813FD8C -_0813F9D6: - bl IsSEPlaying - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - beq _0813F9E4 - b _0813FD8C -_0813F9E4: - movs r0, #0 - movs r1, #0xa8 - movs r2, #0xe0 - bl LoadUserWindowBorderGfx - ldr r0, _0813FA2C - movs r1, #0xa8 - str r1, [sp] - movs r1, #0xe - str r1, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r2, #2 - movs r3, #2 - bl sub_08198C08 - ldr r3, _0813FA30 - strb r4, [r3, #1] - ldr r0, _0813FA28 - mov r2, r8 - adds r1, r2, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x14] - adds r0, #1 - movs r2, #0 - strh r0, [r1, #0x14] - strb r2, [r3, #1] - b _0813FD8C - .align 2, 0 -_0813FA20: .4byte gUnknown_85AB3DC -_0813FA24: .4byte gUnknown_2022AE0 -_0813FA28: .4byte gUnknown_3005B60 -_0813FA2C: .4byte gUnknown_830D28C -_0813FA30: .4byte gUnknown_2023FD6 -_0813FA34: - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r6, r0, #0x18 - cmp r6, #0 - beq _0813FA54 - cmp r6, #0 - bgt _0813FA4E - movs r0, #1 - rsbs r0, r0, #0 - cmp r6, r0 - beq _0813FAAC - b _0813FD8C -_0813FA4E: - cmp r6, #1 - beq _0813FAAC - b _0813FD8C -_0813FA54: - ldr r0, _0813FA9C - strb r6, [r0, #1] - ldr r0, _0813FAA0 - movs r1, #0x92 - lsls r1, r1, #3 - adds r0, r0, r1 - ldr r0, [r0] - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r1, _0813FAA4 - movs r0, #0 - movs r2, #1 - bl sub_0807EBE0 - ldr r1, _0813FAA8 - mov r2, r8 - adds r0, r2, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #0x16] - strh r1, [r0, #0x14] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #5 - beq _0813FA88 - b _0813FD8C -_0813FA88: - movs r0, #1 - rsbs r0, r0, #0 - str r6, [sp] - movs r1, #0 -_0813FA90: - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - b _0813FD8C - .align 2, 0 -_0813FA9C: .4byte gUnknown_2023FD6 -_0813FAA0: .4byte gUnknown_85AB3DC -_0813FAA4: .4byte gUnknown_2022AE0 -_0813FAA8: .4byte gUnknown_3005B60 -_0813FAAC: - ldr r1, _0813FADC - movs r0, #1 - strb r0, [r1, #1] - ldr r0, _0813FAE0 - movs r1, #0x92 - lsls r1, r1, #3 - adds r0, r0, r1 - ldr r0, [r0] - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r1, _0813FAE4 - movs r0, #0 - movs r2, #1 - bl sub_0807EBE0 - ldr r1, _0813FAE8 - mov r2, r8 - adds r0, r2, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #0x18] - strh r1, [r0, #0x14] - b _0813FD8C - .align 2, 0 -_0813FADC: .4byte gUnknown_2023FD6 -_0813FAE0: .4byte gUnknown_85AB3DC -_0813FAE4: .4byte gUnknown_2022AE0 -_0813FAE8: .4byte gUnknown_3005B60 -_0813FAEC: - ldr r0, _0813FB54 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0813FAFA - b _0813FD8C -_0813FAFA: - ldr r0, _0813FB58 - ldrb r0, [r0] - cmp r0, #0 - beq _0813FB06 - bl DestroyWirelessStatusIndicatorSprite -_0813FB06: - movs r0, #3 - bl GetBgTilemapBuffer - bl Free - movs r0, #1 - bl GetBgTilemapBuffer - bl Free - movs r0, #0 - bl GetBgTilemapBuffer - bl Free - bl FreeAllWindowBuffers - ldr r0, _0813FB5C - ldr r1, _0813FB60 - mov r2, r8 - adds r5, r2, r7 - lsls r5, r5, #3 - adds r5, r5, r1 - ldrb r1, [r5, #0x1c] - ldr r2, _0813FB64 - ldrb r2, [r2] - subs r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r3, _0813FB68 - ldr r4, _0813FB6C - ldrh r4, [r4] - str r4, [sp] - bl ShowSelectMovePokemonSummaryScreen - ldrh r0, [r5, #0x14] - adds r0, #1 - strh r0, [r5, #0x14] - b _0813FD8C - .align 2, 0 -_0813FB54: .4byte gUnknown_2037C74 -_0813FB58: .4byte gUnknown_300319C -_0813FB5C: .4byte gUnknown_2024190 -_0813FB60: .4byte gUnknown_3005B60 -_0813FB64: .4byte gUnknown_202418D -_0813FB68: .4byte CB2_TradeEvolutionSceneLoadGraphics -_0813FB6C: .4byte gUnknown_2024186 -_0813FB70: - ldr r0, _0813FBA4 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0813FB7E - b _0813FD8C -_0813FB7E: - ldr r0, _0813FBA8 - ldr r1, [r0, #4] - ldr r0, _0813FBAC - cmp r1, r0 - beq _0813FB8A - b _0813FD8C -_0813FB8A: - bl sub_081C14C8 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #4 - bne _0813FBB4 - ldr r0, _0813FBB0 - mov r2, r8 - adds r1, r2, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #9 - b _0813FD8A - .align 2, 0 -_0813FBA4: .4byte gUnknown_2037C74 -_0813FBA8: .4byte gUnknown_3002360 -_0813FBAC: .4byte sub_0813E4C4 -_0813FBB0: .4byte gUnknown_3005B60 -_0813FBB4: - adds r1, r6, #0 - adds r1, #0xd - mov r0, sb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r4, #0 - bl IsHMMove2 - cmp r0, #0 - beq _0813FC04 - ldr r0, _0813FBF4 - ldr r1, _0813FBF8 - adds r0, r0, r1 - ldr r0, [r0] - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r1, _0813FBFC - movs r0, #0 - movs r2, #1 - bl sub_0807EBE0 - ldr r1, _0813FC00 - mov r2, r8 - adds r0, r2, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0xb - strh r1, [r0, #0x14] - b _0813FD8C - .align 2, 0 -_0813FBF4: .4byte gUnknown_85AB3DC -_0813FBF8: .4byte 0x000004CC -_0813FBFC: .4byte gUnknown_2022AE0 -_0813FC00: .4byte gUnknown_3005B60 -_0813FC04: - ldr r1, _0813FC58 - movs r0, #0xfd - strb r0, [r1] - movs r0, #2 - strb r0, [r1, #1] - strb r4, [r1, #2] - lsrs r0, r4, #8 - strb r0, [r1, #3] - movs r0, #0xff - strb r0, [r1, #4] - lsls r4, r6, #0x18 - lsrs r4, r4, #0x18 - mov r0, sb - adds r1, r4, #0 - bl RemoveMonPPBonus - ldr r0, _0813FC5C - ldrh r1, [r0] - mov r0, sb - adds r2, r4, #0 - bl SetMonMoveSlot - ldr r0, _0813FC60 - movs r1, #0xcf - lsls r1, r1, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r1, _0813FC64 - movs r0, #0 - movs r2, #1 - bl sub_0807EBE0 - ldr r0, _0813FC68 - mov r2, r8 - adds r1, r2, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x14] - adds r0, #1 - b _0813FD8A - .align 2, 0 -_0813FC58: .4byte gUnknown_2022C1C -_0813FC5C: .4byte gUnknown_2024186 -_0813FC60: .4byte gUnknown_85AB3DC -_0813FC64: .4byte gUnknown_2022AE0 -_0813FC68: .4byte gUnknown_3005B60 -_0813FC6C: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0813FC7A - b _0813FD8C -_0813FC7A: - bl IsSEPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0813FC86 - b _0813FD8C -_0813FC86: - ldr r0, _0813FCA8 - ldr r0, [r0, #0x1c] - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r1, _0813FCAC - movs r0, #0 - movs r2, #1 - bl sub_0807EBE0 - ldr r0, _0813FCB0 - mov r2, r8 - adds r1, r2, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x14] - adds r0, #1 - b _0813FD8A - .align 2, 0 -_0813FCA8: .4byte gUnknown_85AB3DC -_0813FCAC: .4byte gUnknown_2022AE0 -_0813FCB0: .4byte gUnknown_3005B60 -_0813FCB4: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0813FD8C - bl IsSEPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0813FD8C - ldr r0, _0813FCF4 - movs r1, #0xd0 - lsls r1, r1, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r1, _0813FCF8 - movs r0, #0 - movs r2, #1 - bl sub_0807EBE0 - ldr r1, _0813FCFC - mov r2, r8 - adds r0, r2, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0x12 - strh r1, [r0, #8] - b _0813FD8C - .align 2, 0 -_0813FCF4: .4byte gUnknown_85AB3DC -_0813FCF8: .4byte gUnknown_2022AE0 -_0813FCFC: .4byte gUnknown_3005B60 -_0813FD00: - ldr r0, _0813FD2C - ldr r0, [r0, #0x20] - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r1, _0813FD30 - movs r0, #0 - movs r2, #1 - bl sub_0807EBE0 - ldr r1, _0813FD34 - mov r2, r8 - adds r0, r2, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #0 - movs r1, #0xa - strh r1, [r0, #0x16] - strh r2, [r0, #0x18] - movs r1, #3 - strh r1, [r0, #0x14] - b _0813FD8C - .align 2, 0 -_0813FD2C: .4byte gUnknown_85AB3DC -_0813FD30: .4byte gUnknown_2022AE0 -_0813FD34: .4byte gUnknown_3005B60 -_0813FD38: - ldr r0, _0813FD5C - ldr r0, [r0, #0x24] - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r1, _0813FD60 - movs r0, #0 - movs r2, #1 - bl sub_0807EBE0 - ldr r1, _0813FD64 - mov r2, r8 - adds r0, r2, r7 - lsls r0, r0, #3 - adds r0, r0, r1 -_0813FD54: - movs r1, #0xd - strh r1, [r0, #8] - b _0813FD8C - .align 2, 0 -_0813FD5C: .4byte gUnknown_85AB3DC -_0813FD60: .4byte gUnknown_2022AE0 -_0813FD64: .4byte gUnknown_3005B60 -_0813FD68: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0813FD8C - bl IsSEPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0813FD8C - ldr r0, _0813FD9C - mov r2, r8 - adds r1, r2, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #5 -_0813FD8A: - strh r0, [r1, #0x14] -_0813FD8C: - add sp, #0x20 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0813FD9C: .4byte gUnknown_3005B60 - thumb_func_end sub_0813F280 - - thumb_func_start sub_0813FDA0 -sub_0813FDA0: @ 0x0813FDA0 - bx lr - .align 2, 0 - thumb_func_end sub_0813FDA0 - - thumb_func_start sub_0813FDA4 -sub_0813FDA4: @ 0x0813FDA4 - push {lr} - ldr r0, _0813FE0C - ldrh r1, [r0] - movs r0, #0x10 - bl SetGpuReg - ldr r0, _0813FE10 - ldrh r1, [r0] - movs r0, #0x12 - bl SetGpuReg - ldr r0, _0813FE14 - ldrh r1, [r0] - movs r0, #0x14 - bl SetGpuReg - ldr r0, _0813FE18 - ldrh r1, [r0] - movs r0, #0x16 - bl SetGpuReg - ldr r0, _0813FE1C - ldrh r1, [r0] - movs r0, #0x18 - bl SetGpuReg - ldr r0, _0813FE20 - ldrh r1, [r0] - movs r0, #0x1a - bl SetGpuReg - ldr r0, _0813FE24 - ldrh r1, [r0] - movs r0, #0x1c - bl SetGpuReg - ldr r0, _0813FE28 - ldrh r1, [r0] - movs r0, #0x1e - bl SetGpuReg - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl ScanlineEffect_InitHBlankDmaTransfer - pop {r0} - bx r0 - .align 2, 0 -_0813FE0C: .4byte gUnknown_2022AC8 -_0813FE10: .4byte gUnknown_2022ACA -_0813FE14: .4byte gUnknown_2022ACC -_0813FE18: .4byte gUnknown_2022ACE -_0813FE1C: .4byte gUnknown_2022AD0 -_0813FE20: .4byte gUnknown_2022AD2 -_0813FE24: .4byte gUnknown_2022AD4 -_0813FE28: .4byte gUnknown_2022AD6 - thumb_func_end sub_0813FDA4 - - thumb_func_start sub_0813FE2C -sub_0813FE2C: @ 0x0813FE2C - push {lr} - ldr r0, _0813FE94 - ldrh r1, [r0] - movs r0, #0x10 - bl SetGpuReg - ldr r0, _0813FE98 - ldrh r1, [r0] - movs r0, #0x12 - bl SetGpuReg - ldr r0, _0813FE9C - ldrh r1, [r0] - movs r0, #0x14 - bl SetGpuReg - ldr r0, _0813FEA0 - ldrh r1, [r0] - movs r0, #0x16 - bl SetGpuReg - ldr r0, _0813FEA4 - ldrh r1, [r0] - movs r0, #0x18 - bl SetGpuReg - ldr r0, _0813FEA8 - ldrh r1, [r0] - movs r0, #0x1a - bl SetGpuReg - ldr r0, _0813FEAC - ldrh r1, [r0] - movs r0, #0x1c - bl SetGpuReg - ldr r0, _0813FEB0 - ldrh r1, [r0] - movs r0, #0x1e - bl SetGpuReg - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl ScanlineEffect_InitHBlankDmaTransfer - pop {r0} - bx r0 - .align 2, 0 -_0813FE94: .4byte gUnknown_2022AC8 -_0813FE98: .4byte gUnknown_2022ACA -_0813FE9C: .4byte gUnknown_2022ACC -_0813FEA0: .4byte gUnknown_2022ACE -_0813FEA4: .4byte gUnknown_2022AD0 -_0813FEA8: .4byte gUnknown_2022AD2 -_0813FEAC: .4byte gUnknown_2022AD4 -_0813FEB0: .4byte gUnknown_2022AD6 - thumb_func_end sub_0813FE2C - - thumb_func_start sub_0813FEB4 -sub_0813FEB4: @ 0x0813FEB4 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _0813FF34 - adds r4, r0, r1 - movs r0, #0xc - ldrsh r5, [r4, r0] - cmp r5, #0 - bne _0813FF62 - ldrh r0, [r4, #0xa] - adds r1, r0, #1 - strh r1, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x13 - ble _0813FF62 - ldrh r1, [r4] - adds r0, r1, #1 - strh r0, [r4] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldr r3, _0813FF38 - movs r2, #4 - ldrsh r0, [r4, r2] - lsls r2, r0, #2 - adds r0, r3, #3 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r1, r0 - ble _0813FF54 - adds r0, r3, #1 - adds r0, r2, r0 - ldrb r0, [r0] - movs r2, #2 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _0813FF3C - ldrh r0, [r4, #6] - adds r0, #1 - strh r0, [r4, #6] - movs r0, #6 - ldrsh r2, [r4, r0] - movs r1, #4 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r1, r3, #2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r2, r0 - bne _0813FF26 - strh r5, [r4, #6] - ldrh r0, [r4, #4] - adds r0, #1 - strh r0, [r4, #4] -_0813FF26: - movs r2, #4 - ldrsh r0, [r4, r2] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r0, [r0] - b _0813FF52 - .align 2, 0 -_0813FF34: .4byte gUnknown_3005B68 -_0813FF38: .4byte gUnknown_8595475 -_0813FF3C: - ldr r0, _0813FF68 - lsls r1, r1, #5 - ldr r0, [r0] - adds r0, r0, r1 - movs r1, #0xa0 - movs r2, #0x20 - bl LoadPalette - strh r5, [r4] - ldrh r0, [r4, #2] - adds r0, #1 -_0813FF52: - strh r0, [r4, #2] -_0813FF54: - movs r1, #4 - ldrsh r0, [r4, r1] - cmp r0, #4 - bne _0813FF62 - adds r0, r6, #0 - bl DestroyTask -_0813FF62: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0813FF68: .4byte gUnknown_203A850 - thumb_func_end sub_0813FEB4 - - thumb_func_start sub_0813FF6C -sub_0813FF6C: @ 0x0813FF6C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0813FF90 - movs r1, #7 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r4, #0 - bne _0813FF98 - ldr r1, _0813FF94 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r4, [r0, #0xc] - b _0813FFA6 - .align 2, 0 -_0813FF90: .4byte sub_0813FFB0 -_0813FF94: .4byte gUnknown_3005B60 -_0813FF98: - ldr r0, _0813FFAC - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #1 - strh r0, [r1, #0xc] -_0813FFA6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813FFAC: .4byte gUnknown_3005B60 - thumb_func_end sub_0813FF6C - - thumb_func_start sub_0813FFB0 -sub_0813FFB0: @ 0x0813FFB0 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _0813FFDC - mov r8, r0 - ldr r1, _0813FFE0 - mov sb, r1 - ldr r1, _0813FFE4 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #0xc - ldrsh r0, [r0, r2] - cmp r0, #0 - bne _0813FFF0 - ldr r7, _0813FFE8 - ldr r6, _0813FFEC - b _0813FFF4 - .align 2, 0 -_0813FFDC: .4byte gUnknown_2022ACC -_0813FFE0: .4byte gUnknown_2022ACE -_0813FFE4: .4byte gUnknown_3005B60 -_0813FFE8: .4byte gUnknown_2022AD0 -_0813FFEC: .4byte gUnknown_2022AD2 -_0813FFF0: - ldr r7, _0814007C - ldr r6, _08140080 -_0813FFF4: - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - adds r4, r4, r1 - ldrh r0, [r4, #8] - adds r0, #5 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #8] - adds r0, #0x80 - ands r0, r1 - strh r0, [r4, #0xa] - movs r1, #8 - ldrsh r0, [r4, r1] - movs r1, #4 - bl Cos - adds r0, #8 - mov r2, r8 - strh r0, [r2] - movs r1, #8 - ldrsh r0, [r4, r1] - movs r1, #4 - bl Sin - adds r0, #0x10 - mov r2, sb - strh r0, [r2] - movs r1, #0xa - ldrsh r0, [r4, r1] - movs r1, #4 - bl Cos - adds r0, #8 - strh r0, [r7] - movs r2, #0xa - ldrsh r0, [r4, r2] - movs r1, #4 - bl Sin - adds r0, #0x10 - strh r0, [r6] - ldr r0, _08140084 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _0814006E - adds r0, r5, #0 - bl DestroyTask - mov r0, r8 - strh r4, [r0] - mov r1, sb - strh r4, [r1] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r2, #0 - strh r0, [r7] - strh r4, [r6] -_0814006E: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0814007C: .4byte gUnknown_2022AD4 -_08140080: .4byte gUnknown_2022AD6 -_08140084: .4byte sub_0813FEB4 - thumb_func_end sub_0813FFB0 - - thumb_func_start InitMovingBgValues -InitMovingBgValues: @ 0x08140088 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - movs r1, #0 - ldr r5, _081400C0 - ldr r7, _081400C4 -_08140092: - lsls r0, r1, #4 - adds r4, r1, #1 - adds r2, r0, r7 - lsls r0, r1, #5 - adds r1, r0, r6 - movs r3, #0xf -_0814009E: - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r0, [r0] - strh r0, [r1] - adds r2, #1 - adds r1, #2 - subs r3, #1 - cmp r3, #0 - bge _0814009E - adds r1, r4, #0 - cmp r1, #0x31 - ble _08140092 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081400C0: .4byte gUnknown_85953F0 -_081400C4: .4byte gUnknown_8595485 - thumb_func_end InitMovingBgValues - - thumb_func_start InitMovingBackgroundTask -InitMovingBackgroundTask: @ 0x081400C8 - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r4, _081400EC - movs r0, #0xc8 - lsls r0, r0, #3 - bl AllocZeroed - str r0, [r4] - bl InitMovingBgValues - cmp r5, #0 - bne _081400F0 - movs r6, #1 - movs r4, #2 - b _081400F4 - .align 2, 0 -_081400EC: .4byte gUnknown_203A850 -_081400F0: - movs r6, #1 - movs r4, #3 -_081400F4: - ldr r0, _08140174 - movs r1, #0xa0 - movs r2, #0x20 - bl LoadPalette - ldr r1, _08140178 - movs r0, #0 - str r0, [sp] - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r1, _0814017C - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - ldr r1, _08140180 - adds r0, r4, #0 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - movs r0, #1 - bl CopyBgTilemapBufferToVram - adds r0, r4, #0 - bl CopyBgTilemapBufferToVram - cmp r5, #0 - bne _0814018C - ldr r1, _08140184 - movs r0, #0x50 - bl SetGpuReg - ldr r1, _08140188 - movs r0, #0x52 - bl SetGpuReg - movs r1, #0xba - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - adds r0, r6, #0 - movs r1, #7 - movs r2, #2 - bl SetBgAttribute - adds r0, r4, #0 - movs r1, #7 - movs r2, #2 - bl SetBgAttribute - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - b _081401A6 - .align 2, 0 -_08140174: .4byte gUnknown_8594D50 -_08140178: .4byte gUnknown_8593CA0 -_0814017C: .4byte gUnknown_8594398 -_08140180: .4byte gUnknown_859487C -_08140184: .4byte 0x00000442 -_08140188: .4byte 0x00000808 -_0814018C: - ldr r1, _081401BC - movs r0, #0x50 - bl SetGpuReg - ldr r1, _081401C0 - movs r0, #0x52 - bl SetGpuReg - movs r1, #0xda - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg -_081401A6: - ldr r0, _081401C4 - movs r1, #5 - bl CreateTask - adds r0, r5, #0 - bl sub_0813FF6C - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081401BC: .4byte 0x00000842 -_081401C0: .4byte 0x00000808 -_081401C4: .4byte sub_0813FEB4 - thumb_func_end InitMovingBackgroundTask - - thumb_func_start sub_081401C8 -sub_081401C8: @ 0x081401C8 - push {lr} - ldr r0, _081401F4 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xff - beq _081401E6 - ldr r0, _081401F8 - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #1 - strh r0, [r1, #0x14] -_081401E6: - movs r0, #0 - movs r1, #0xa0 - movs r2, #0x20 - bl FillPalette - pop {r0} - bx r0 - .align 2, 0 -_081401F4: .4byte sub_0813FEB4 -_081401F8: .4byte gUnknown_3005B60 - thumb_func_end sub_081401C8 - - thumb_func_start sub_081401FC -sub_081401FC: @ 0x081401FC - push {lr} - ldr r0, _08140234 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _08140210 - bl DestroyTask -_08140210: - ldr r0, _08140238 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _08140222 - bl DestroyTask -_08140222: - movs r0, #0 - movs r1, #0xa0 - movs r2, #0x20 - bl FillPalette - bl OpenPokeblockCaseInBattle - pop {r0} - bx r0 - .align 2, 0 -_08140234: .4byte sub_0813FEB4 -_08140238: .4byte sub_0813FFB0 - thumb_func_end sub_081401FC - - thumb_func_start OpenPokeblockCaseInBattle -OpenPokeblockCaseInBattle: @ 0x0814023C - push {lr} - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - ldr r0, _08140298 - movs r1, #0 - strh r1, [r0] - ldr r0, _0814029C - strh r1, [r0] - ldr r0, _081402A0 - strh r1, [r0] - movs r0, #1 - movs r1, #5 - bl sub_08038E94 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r0, #1 - movs r1, #7 - bl SetBgAttribute - movs r0, #2 - movs r1, #5 - bl sub_08038E94 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r0, #2 - movs r1, #7 - bl SetBgAttribute - movs r1, #0xca - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - ldr r0, _081402A4 - ldr r0, [r0] - bl Free - pop {r0} - bx r0 - .align 2, 0 -_08140298: .4byte gUnknown_2022ACC -_0814029C: .4byte gUnknown_2022ACE -_081402A0: .4byte gUnknown_2022AD0 -_081402A4: .4byte gUnknown_203A850 - thumb_func_end OpenPokeblockCaseInBattle - - thumb_func_start EvoScene_DoMonAnimation -EvoScene_DoMonAnimation: @ 0x081402A8 - push {lr} - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _081402CC - adds r0, r0, r2 - movs r2, #0 - movs r3, #0 - bl DoMonFrontSpriteAnimation - pop {r0} - bx r0 - .align 2, 0 -_081402CC: .4byte gUnknown_20205AC - thumb_func_end EvoScene_DoMonAnimation - - thumb_func_start EvoScene_IsMonAnimFinished -EvoScene_IsMonAnimFinished: @ 0x081402D0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _081402F0 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r2, #0x1c - adds r1, r1, r2 - ldr r1, [r1] - ldr r0, _081402F4 - cmp r1, r0 - beq _081402F8 - movs r0, #0 - b _081402FA - .align 2, 0 -_081402F0: .4byte gUnknown_20205AC -_081402F4: .4byte sub_08007140 -_081402F8: - movs r0, #1 -_081402FA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end EvoScene_IsMonAnimFinished - - thumb_func_start sub_08140300 -sub_08140300: @ 0x08140300 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - ldr r0, _08140328 - ldr r0, [r0] - adds r1, r0, #0 - adds r1, #0xb8 - ldrb r0, [r1] - cmp r0, #0 - beq _08140322 - adds r0, r1, #0 - bl task_tutorial_controls_fadein -_08140322: - pop {r0} - bx r0 - .align 2, 0 -_08140328: .4byte gUnknown_203A854 - thumb_func_end sub_08140300 - - thumb_func_start sub_0814032C -sub_0814032C: @ 0x0814032C - push {r4, lr} - sub sp, #4 - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl sub_081428DC - ldr r4, _081403A0 - ldr r0, [r4] - ldrh r0, [r0, #0x26] - movs r2, #0x80 - lsls r2, r2, #2 - adds r1, r2, #0 - subs r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x14 - bl SetGpuReg - ldr r1, [r4] - ldrb r0, [r1, #1] - cmp r0, #0 - beq _08140368 - ldrh r1, [r1, #0x34] - movs r0, #0x52 - bl SetGpuReg -_08140368: - ldr r2, [r4] - movs r3, #0x2a - ldrsh r0, [r2, r3] - cmp r0, #0 - beq _08140388 - ldr r1, _081403A4 - ldr r3, _081403A8 - adds r0, r2, r3 - str r0, [r1] - ldr r0, _081403AC - str r0, [r1, #4] - ldr r0, _081403B0 - str r0, [r1, #8] - ldr r0, [r1, #8] - movs r0, #0 - strh r0, [r2, #0x2a] -_08140388: - ldr r0, [r4] - movs r2, #0x28 - ldrsh r1, [r0, r2] - cmp r1, #1 - beq _081403B4 - cmp r1, #1 - ble _0814043C - cmp r1, #2 - beq _081403EC - cmp r1, #0xff - beq _08140410 - b _0814043C - .align 2, 0 -_081403A0: .4byte gUnknown_203A854 -_081403A4: .4byte 0x040000D4 -_081403A8: .4byte 0x0000133C -_081403AC: .4byte 0x060021C0 -_081403B0: .4byte 0x800001A0 -_081403B4: - movs r0, #0 - movs r1, #1 - movs r2, #0 - bl SetBgAttribute - movs r0, #0 - bl ShowBg - ldr r1, _081403E0 - ldr r2, [r4] - movs r3, #0xcf - lsls r3, r3, #2 - adds r0, r2, r3 - str r0, [r1] - ldr r0, _081403E4 - str r0, [r1, #4] - ldr r0, _081403E8 - str r0, [r1, #8] - ldr r0, [r1, #8] - movs r0, #2 - strh r0, [r2, #0x28] - b _0814043C - .align 2, 0 -_081403E0: .4byte 0x040000D4 -_081403E4: .4byte 0x0600F9C0 -_081403E8: .4byte 0x800001A0 -_081403EC: - ldr r1, _08140404 - movs r2, #0xcf - lsls r2, r2, #2 - adds r0, r0, r2 - str r0, [r1] - ldr r0, _08140408 - str r0, [r1, #4] - ldr r0, _0814040C - str r0, [r1, #8] - ldr r0, [r1, #8] - b _0814043C - .align 2, 0 -_08140404: .4byte 0x040000D4 -_08140408: .4byte 0x0600F9C0 -_0814040C: .4byte 0x800001A0 -_08140410: - movs r0, #0 - movs r1, #1 - movs r2, #2 - bl SetBgAttribute - movs r0, #0 - bl ShowBg - mov r1, sp - movs r0, #0 - strh r0, [r1] - ldr r1, _08140444 - mov r3, sp - str r3, [r1] - ldr r0, _08140448 - str r0, [r1, #4] - ldr r0, _0814044C - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r1, [r4] - movs r0, #0 - strh r0, [r1, #0x28] -_0814043C: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08140444: .4byte 0x040000D4 -_08140448: .4byte 0x0600F9C0 -_0814044C: .4byte 0x810001A0 - thumb_func_end sub_0814032C - - thumb_func_start sub_08140450 -sub_08140450: @ 0x08140450 - push {r4, r5, lr} - sub sp, #4 - movs r5, #0 - str r5, [sp] - ldr r4, _081404C0 - movs r0, #0xe6 - lsls r0, r0, #6 - bl AllocZeroed - str r0, [r4] - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _081404C4 - movs r0, #1 - movs r2, #3 - bl InitBgsFromTemplates - ldr r1, [r4] - movs r0, #0xbe - lsls r0, r0, #1 - adds r1, r1, r0 - movs r0, #0 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r2, _081404C8 - adds r1, r1, r2 - movs r0, #1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, _081404CC - adds r1, r1, r0 - movs r0, #2 - bl SetBgTilemapBuffer - ldr r0, _081404D0 - bl InitWindows - bl sub_08196DF4 - ldr r0, _081404D4 - strb r5, [r0] - ldr r0, _081404D8 - mov r1, sp - bl malloc_and_decompress - ldr r1, [r4] - ldr r2, _081404DC - adds r1, r1, r2 - str r0, [r1] - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081404C0: .4byte gUnknown_203A854 -_081404C4: .4byte gUnknown_8595CEC -_081404C8: .4byte 0x0000117C -_081404CC: .4byte 0x0000317C -_081404D0: .4byte gUnknown_8595CF8 -_081404D4: .4byte gUnknown_203A858 -_081404D8: .4byte gUnknown_85959A8 -_081404DC: .4byte 0x0000397C - thumb_func_end sub_08140450 - - thumb_func_start sub_081404E0 -sub_081404E0: @ 0x081404E0 - push {r4, r5, lr} - ldr r5, _08140530 - ldr r0, [r5] - ldr r4, _08140534 - adds r0, r0, r4 - ldr r0, [r0] - bl Free - ldr r0, [r5] - adds r0, r0, r4 - movs r4, #0 - str r4, [r0] - bl FreeAllWindowBuffers - movs r0, #0 - bl UnsetBgTilemapBuffer - movs r0, #1 - bl UnsetBgTilemapBuffer - movs r0, #2 - bl UnsetBgTilemapBuffer - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r0, [r5] - movs r2, #0xe6 - lsls r2, r2, #6 - movs r1, #0 - bl memset - ldr r0, [r5] - bl Free - str r4, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08140530: .4byte gUnknown_203A854 -_08140534: .4byte 0x0000397C - thumb_func_end sub_081404E0 - - thumb_func_start sub_08140538 -sub_08140538: @ 0x08140538 - push {r4, r5, r6, lr} - sub sp, #8 - ldr r1, _081405CC - mov r0, sp - movs r2, #6 - bl memcpy - ldr r5, _081405D0 - ldr r3, [r5] - ldr r4, _081405D4 - ldrb r0, [r4] - movs r1, #1 - ands r1, r0 - ldrb r2, [r3, #4] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #4] - ldrh r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08140572 - ldr r0, [r5] - ldrb r1, [r0, #4] - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0, #4] -_08140572: - ldr r1, [r5] - ldr r2, _081405D8 - ldrb r0, [r1, #4] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x19 - adds r0, r0, r2 - ldrb r0, [r0, #3] - adds r1, #0x22 - strb r0, [r1] - ldr r1, [r5] - ldrb r0, [r1, #4] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x19 - adds r0, r0, r2 - ldrb r0, [r0, #4] - adds r1, #0x23 - strb r0, [r1] - ldr r2, [r5] - ldr r3, _081405DC - ldrb r1, [r2, #4] - lsls r0, r1, #0x1e - lsrs r0, r0, #0x1e - lsrs r1, r1, #7 - lsls r1, r1, #1 - adds r0, r0, r1 - adds r0, r0, r3 - ldrb r0, [r0] - strb r0, [r2, #0x19] - ldr r2, [r5] - ldrb r1, [r2, #0x1a] - movs r0, #0xf - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r2, #0x1a] - ldr r0, [r5] - ldrb r0, [r0, #0x19] - cmp r0, #1 - bne _081405E8 - ldr r4, _081405E0 - ldr r3, _081405E4 - mov r0, sp - ldrh r2, [r0] - b _081405F0 - .align 2, 0 -_081405CC: .4byte gUnknown_8595FCC -_081405D0: .4byte gUnknown_203A854 -_081405D4: .4byte gUnknown_2037280 -_081405D8: .4byte gUnknown_8595EF4 -_081405DC: .4byte gUnknown_8595EF0 -_081405E0: .4byte gUnknown_20373B4 -_081405E4: .4byte gUnknown_20377B4 -_081405E8: - ldr r4, _0814065C - ldr r3, _08140660 - mov r0, sp - ldrh r2, [r0, #2] -_081405F0: - adds r0, r3, #0 - adds r0, #0xa2 - strh r2, [r0] - ldr r1, _08140664 - adds r0, r1, #0 - ands r0, r2 - strh r0, [r3] - ands r0, r1 - adds r2, r4, #0 - adds r2, #0xa2 - strh r0, [r2] - ands r0, r1 - strh r0, [r4] - ldr r0, _08140668 - ldr r0, [r0] - adds r0, #0xb8 - bl sub_08151654 - movs r4, #0 -_08140616: - ldr r5, _08140668 - ldr r0, [r5] - adds r0, #0xb8 - lsls r2, r4, #3 - ldr r1, _0814066C - adds r2, r2, r1 - adds r1, r4, #0 - bl sub_08151668 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xc - bls _08140616 - movs r4, #0 -_08140634: - movs r0, #0x64 - muls r0, r4, r0 - ldr r1, _08140670 - adds r0, r0, r1 - movs r1, #0x41 - bl GetMonData - adds r1, r0, #0 - movs r0, #0x98 - lsls r0, r0, #1 - cmp r1, r0 - beq _08140674 - adds r0, #2 - cmp r1, r0 - bne _0814067E - ldr r0, [r5] - ldrb r1, [r0, #2] - movs r2, #1 - b _0814067A - .align 2, 0 -_0814065C: .4byte gUnknown_20373B4 -_08140660: .4byte gUnknown_20377B4 -_08140664: .4byte 0x0000FFFF -_08140668: .4byte gUnknown_203A854 -_0814066C: .4byte gUnknown_8595F34 -_08140670: .4byte gUnknown_2024190 -_08140674: - ldr r0, [r5] - ldrb r1, [r0, #2] - movs r2, #2 -_0814067A: - orrs r1, r2 - strb r1, [r0, #2] -_0814067E: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #5 - bls _08140634 - bl RtcCalcLocalTime - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_08140538 - - thumb_func_start sub_08140694 -sub_08140694: @ 0x08140694 - push {r4, r5, lr} - sub sp, #0xc - ldr r0, _081406B4 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #8 - bls _081406A8 - b _081408C0 -_081406A8: - lsls r0, r0, #2 - ldr r1, _081406B8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081406B4: .4byte gUnknown_3002360 -_081406B8: .4byte _081406BC -_081406BC: @ jump table - .4byte _081406E0 @ case 0 - .4byte _081406F8 @ case 1 - .4byte _08140718 @ case 2 - .4byte _0814072A @ case 3 - .4byte _08140764 @ case 4 - .4byte _08140788 @ case 5 - .4byte _081407A8 @ case 6 - .4byte _08140818 @ case 7 - .4byte _08140842 @ case 8 -_081406E0: - movs r0, #0 - bl SetVBlankCallback - bl ScanlineEffect_Stop - bl SetVBlankHBlankCallbacksToNull - bl ResetVramOamAndBgCntRegs - bl ResetAllBgsCoordinates - b _081408C0 -_081406F8: - bl sub_08140450 - bl sub_08004480 - movs r1, #0x90 - lsls r1, r1, #6 - movs r0, #0x50 - bl SetGpuReg - ldr r1, _08140714 - movs r0, #0x52 - bl SetGpuReg - b _081408C0 - .align 2, 0 -_08140714: .4byte 0x0000060A -_08140718: - bl ResetPaletteFade - bl ResetSpriteData - bl ResetTasks - bl reset_temp_tile_data_buffers - b _081408C0 -_0814072A: - ldr r0, _08140758 - movs r2, #0xe0 - lsls r2, r2, #1 - movs r1, #0 - bl LoadPalette - ldr r1, _0814075C - movs r4, #0 - str r4, [sp] - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, _08140760 - str r4, [sp] - movs r0, #2 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - b _081408C0 - .align 2, 0 -_08140758: .4byte gUnknown_85957A8 -_0814075C: .4byte gUnknown_8DBC590 -_08140760: .4byte gUnknown_8DBCCBC -_08140764: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08140770 - b _081408CE -_08140770: - bl sub_08140538 - ldr r1, _08140784 - movs r0, #2 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - b _081408C0 - .align 2, 0 -_08140784: .4byte gUnknown_8595B4C -_08140788: - movs r0, #0 - bl sub_08142CD8 - bl sub_08143A94 - bl sub_081439E8 - bl sub_081433E0 - bl sub_08142D9C - bl sub_08143048 - bl sub_081432B0 - b _081408C0 -_081407A8: - bl AnimateSprites - bl BuildOamBuffer - bl GetCoins - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_081435E0 - movs r0, #6 - bl sub_081437F8 - movs r0, #0 - bl sub_0814379C - movs r0, #0 - bl sub_081425C4 - ldr r4, _08140808 - ldrb r0, [r4] - movs r1, #0 - bl sub_08196FF0 - ldrb r0, [r4] - ldr r2, _0814080C - movs r1, #2 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r5, #0 - str r5, [sp, #8] - movs r1, #1 - movs r3, #2 - bl AddTextPrinterParameterized - ldrb r0, [r4] - movs r1, #3 - bl CopyWindowToVram - ldr r1, _08140810 - movs r2, #0x3c - rsbs r2, r2, #0 - adds r0, r2, #0 - strh r0, [r1] - ldr r0, _08140814 - strh r5, [r0] - b _081408C0 - .align 2, 0 -_08140808: .4byte gUnknown_203A858 -_0814080C: .4byte gUnknown_8262D3F -_08140810: .4byte gUnknown_2021B38 -_08140814: .4byte gUnknown_2021B3A -_08140818: - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #1 - bl CopyBgTilemapBufferToVram - movs r0, #2 - bl CopyBgTilemapBufferToVram - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - b _081408C0 -_08140842: - movs r0, #1 - bl EnableInterrupts - ldr r0, _081408A8 - bl SetVBlankCallback - movs r0, #1 - str r0, [sp] - movs r0, #0xff - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginHardwarePaletteFade - ldr r0, _081408AC - movs r1, #0 - bl CreateTask - ldr r5, _081408B0 - ldr r1, [r5] - adds r1, #0xa4 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081408B4 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - adds r4, r4, r1 - movs r0, #6 - strh r0, [r4, #0x14] - bl GetCoins - strh r0, [r4, #0x22] - bl GetCoins - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl AlertTVThatPlayerPlayedRoulette - ldr r0, _081408B8 - movs r1, #1 - bl CreateTask - ldr r1, [r5] - adds r1, #0xa5 - strb r0, [r1] - ldr r0, _081408BC - bl SetMainCallback2 - b _081408CE - .align 2, 0 -_081408A8: .4byte sub_0814032C -_081408AC: .4byte sub_08140970 -_081408B0: .4byte gUnknown_203A854 -_081408B4: .4byte gUnknown_3005B60 -_081408B8: .4byte sub_081408DC -_081408BC: .4byte sub_08140300 -_081408C0: - ldr r1, _081408D8 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_081408CE: - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081408D8: .4byte gUnknown_3002360 - thumb_func_end sub_08140694 - - thumb_func_start sub_081408DC -sub_081408DC: @ 0x081408DC - push {r4, r5, r6, lr} - ldr r3, _0814096C - ldr r0, [r3] - adds r0, #0x21 - ldrb r2, [r0] - adds r1, r2, #1 - strb r1, [r0] - ldr r1, [r3] - adds r0, r1, #0 - adds r0, #0x23 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r6, r3, #0 - ldrb r0, [r0] - cmp r2, r0 - bne _08140922 - adds r1, #0x21 - movs r0, #0 - strb r0, [r1] - ldr r2, [r6] - adds r3, r2, #0 - adds r3, #0x22 - ldrb r1, [r3] - ldrh r0, [r2, #0x24] - subs r0, r0, r1 - strh r0, [r2, #0x24] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _08140922 - ldrb r1, [r3] - movs r3, #0xb4 - lsls r3, r3, #1 - adds r0, r3, #0 - subs r0, r0, r1 - strh r0, [r2, #0x24] -_08140922: - adds r4, r6, #0 - ldr r0, [r4] - ldrh r0, [r0, #0x24] - bl Sin2 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, [r4] - ldrh r0, [r0, #0x24] - bl Cos2 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _08140946 - adds r0, #0xf -_08140946: - lsls r0, r0, #0xc - lsrs r5, r0, #0x10 - ldr r3, [r6] - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _08140956 - adds r0, #0xf -_08140956: - asrs r0, r0, #4 - strh r0, [r3, #0x32] - strh r0, [r3, #0x2c] - strh r5, [r3, #0x2e] - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - rsbs r0, r0, #0 - strh r0, [r3, #0x30] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0814096C: .4byte gUnknown_203A854 - thumb_func_end sub_081408DC - - thumb_func_start sub_08140970 -sub_08140970: @ 0x08140970 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl UpdatePaletteFade - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _081409C6 - movs r1, #0x90 - lsls r1, r1, #6 - movs r0, #0x50 - bl SetGpuReg - ldr r1, _081409CC - movs r0, #0x52 - bl SetGpuReg - ldr r1, _081409D0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r5, [r0, #0x14] - adds r0, r4, #0 - bl sub_081420BC - bl sub_08142138 - bl sub_08143B0C - movs r0, #0 - bl sub_081425C4 - movs r0, #6 - bl sub_081437F8 - ldr r1, _081409D4 - ldr r2, _081409D8 - adds r0, r4, #0 - movs r3, #3 - bl sub_08142044 -_081409C6: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081409CC: .4byte 0x00000808 -_081409D0: .4byte gUnknown_3005B60 -_081409D4: .4byte sub_08140A30 -_081409D8: .4byte 0x0000FFFF - thumb_func_end sub_08140970 - - thumb_func_start sub_081409DC -sub_081409DC: @ 0x081409DC - push {r4, r5, lr} - sub sp, #0xc - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_08197714 - ldr r5, _08140A24 - ldrb r0, [r5] - movs r1, #0 - bl sub_08196FF0 - ldrb r0, [r5] - ldr r2, _08140A28 - movs r1, #2 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - movs r3, #2 - bl AddTextPrinterParameterized - ldrb r0, [r5] - movs r1, #3 - bl CopyWindowToVram - ldr r1, _08140A2C - adds r0, r4, #0 - bl DoYesNoFuncWithChoice - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08140A24: .4byte gUnknown_203A858 -_08140A28: .4byte gUnknown_8262DA3 -_08140A2C: .4byte gUnknown_8595FC4 - thumb_func_end sub_081409DC - - thumb_func_start sub_08140A30 -sub_08140A30: @ 0x08140A30 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - movs r1, #1 - bl sub_08197060 - ldr r1, _08140A54 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08140A58 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08140A54: .4byte gUnknown_3005B60 -_08140A58: .4byte sub_08140C98 - thumb_func_end sub_08140A30 - - thumb_func_start sub_08140A5C -sub_08140A5C: @ 0x08140A5C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _08140A7C - ldr r0, [r0] - adds r0, #0xa5 - ldrb r0, [r0] - bl DestroyTask - adds r0, r4, #0 - bl sub_08141EAC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08140A7C: .4byte gUnknown_203A854 - thumb_func_end sub_08140A5C - - thumb_func_start sub_08140A80 -sub_08140A80: @ 0x08140A80 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xf - bls _08140A92 - b _08140BB0 -_08140A92: - lsls r0, r4, #2 - ldr r1, _08140A9C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08140A9C: .4byte _08140AA0 -_08140AA0: @ jump table - .4byte _08140AE0 @ case 0 - .4byte _08140B04 @ case 1 - .4byte _08140B04 @ case 2 - .4byte _08140B04 @ case 3 - .4byte _08140B04 @ case 4 - .4byte _08140B58 @ case 5 - .4byte _08140BB0 @ case 6 - .4byte _08140BB0 @ case 7 - .4byte _08140BB0 @ case 8 - .4byte _08140BB0 @ case 9 - .4byte _08140B58 @ case 10 - .4byte _08140BB0 @ case 11 - .4byte _08140BB0 @ case 12 - .4byte _08140BB0 @ case 13 - .4byte _08140BB0 @ case 14 - .4byte _08140B58 @ case 15 -_08140AE0: - ldr r0, _08140B00 - ldr r0, [r0] - movs r1, #0xbe - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #0x10 - str r1, [sp] - movs r1, #0xd - str r1, [sp, #4] - movs r1, #0 - movs r2, #0xe - movs r3, #7 - bl sub_08151FE4 - b _08140C16 - .align 2, 0 -_08140B00: .4byte gUnknown_203A854 -_08140B04: - lsls r0, r4, #1 - adds r0, r0, r4 - adds r0, #0xe - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r5, _08140B4C - ldr r0, [r5] - movs r4, #0xbe - lsls r4, r4, #1 - adds r0, r0, r4 - movs r1, #0x10 - str r1, [sp] - movs r6, #0xd - str r6, [sp, #4] - movs r1, #0 - movs r2, #0xe - movs r3, #7 - bl sub_08151FE4 - ldr r0, [r5] - adds r4, r0, r4 - ldr r1, _08140B50 - adds r0, r0, r1 - ldr r1, [r0] - ldr r0, _08140B54 - adds r1, r1, r0 - movs r0, #3 - str r0, [sp] - str r6, [sp, #4] - adds r0, r4, #0 - mov r2, r8 - movs r3, #7 - bl sub_08152034 - b _08140C16 - .align 2, 0 -_08140B4C: .4byte gUnknown_203A854 -_08140B50: .4byte 0x0000397C -_08140B54: .4byte 0x00000232 -_08140B58: - subs r0, r4, #1 - movs r1, #5 - bl __divsi3 - lsls r1, r0, #1 - adds r1, r1, r0 - adds r1, #0xa - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - ldr r5, _08140BA8 - ldr r0, [r5] - movs r4, #0xbe - lsls r4, r4, #1 - adds r0, r0, r4 - movs r6, #0x10 - str r6, [sp] - movs r1, #0xd - str r1, [sp, #4] - movs r1, #0 - movs r2, #0xe - movs r3, #7 - bl sub_08151FE4 - ldr r0, [r5] - adds r4, r0, r4 - ldr r1, _08140BAC - adds r0, r0, r1 - ldr r1, [r0] - movs r0, #0xa0 - lsls r0, r0, #2 - adds r1, r1, r0 - str r6, [sp] - movs r0, #3 - str r0, [sp, #4] - adds r0, r4, #0 - movs r2, #0xe - adds r3, r7, #0 - bl sub_08152034 - b _08140C16 - .align 2, 0 -_08140BA8: .4byte gUnknown_203A854 -_08140BAC: .4byte 0x0000397C -_08140BB0: - adds r0, r4, #0 - movs r1, #5 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #1 - adds r1, r1, r0 - adds r1, #0xe - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - subs r0, r4, #1 - movs r1, #5 - bl __divsi3 - lsls r1, r0, #1 - adds r1, r1, r0 - adds r1, #7 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - ldr r5, _08140C24 - ldr r0, [r5] - movs r4, #0xbe - lsls r4, r4, #1 - adds r0, r0, r4 - movs r1, #0x10 - str r1, [sp] - movs r1, #0xd - str r1, [sp, #4] - movs r1, #0 - movs r2, #0xe - movs r3, #7 - bl sub_08151FE4 - ldr r0, [r5] - adds r4, r0, r4 - ldr r1, _08140C28 - adds r0, r0, r1 - ldr r1, [r0] - movs r0, #0x88 - lsls r0, r0, #2 - adds r1, r1, r0 - movs r0, #3 - str r0, [sp] - str r0, [sp, #4] - adds r0, r4, #0 - mov r2, r8 - adds r3, r7, #0 - bl sub_08152034 -_08140C16: - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08140C24: .4byte gUnknown_203A854 -_08140C28: .4byte 0x0000397C - thumb_func_end sub_08140A80 - - thumb_func_start sub_08140C2C -sub_08140C2C: @ 0x08140C2C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08140C50 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - adds r4, r4, r1 - ldrb r0, [r4, #0x10] - bl sub_0814379C - ldrb r0, [r4, #0x10] - bl sub_08140A80 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08140C50: .4byte gUnknown_3005B60 - thumb_func_end sub_08140C2C - - thumb_func_start sub_08140C54 -sub_08140C54: @ 0x08140C54 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _08140C8C - ldr r2, [r5] - movs r6, #0 - movs r1, #1 - strh r1, [r2, #0x28] - ldr r1, _08140C90 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - adds r4, r4, r1 - ldrb r0, [r4, #0x10] - bl sub_08140A80 - ldr r0, [r5] - adds r0, #0x23 - movs r1, #2 - strb r1, [r0] - ldr r0, [r5] - adds r0, #0x21 - strb r6, [r0] - ldr r0, _08140C94 - str r0, [r4] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08140C8C: .4byte gUnknown_203A854 -_08140C90: .4byte gUnknown_3005B60 -_08140C94: .4byte sub_08141108 - thumb_func_end sub_08140C54 - - thumb_func_start sub_08140C98 -sub_08140C98: @ 0x08140C98 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _08140CEC - ldr r0, [r1] - ldr r2, [r0, #8] - movs r0, #0x20 - ands r0, r2 - cmp r0, #0 - beq _08140CF8 - movs r3, #0xb - ldr r5, _08140CF0 - adds r0, r5, #0 - adds r0, #0xe4 - ldr r0, [r0] - ands r2, r0 - ldr r0, _08140CF4 - mov ip, r0 - lsls r7, r6, #2 - cmp r2, #0 - beq _08140D36 - adds r4, r1, #0 - adds r5, #8 -_08140CC6: - lsls r0, r3, #0x10 - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r0, r1 - lsrs r3, r0, #0x10 - asrs r2, r0, #0x10 - cmp r2, #0xd - bgt _08140D36 - ldr r1, [r4] - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r1, #8] - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _08140CC6 - b _08140D36 - .align 2, 0 -_08140CEC: .4byte gUnknown_203A854 -_08140CF0: .4byte gUnknown_8595D00 -_08140CF4: .4byte gUnknown_3005B60 -_08140CF8: - movs r3, #6 - ldr r5, _08140D64 - adds r0, r5, #0 - adds r0, #0x80 - ldr r0, [r0] - ands r2, r0 - ldr r0, _08140D68 - mov ip, r0 - lsls r7, r6, #2 - cmp r2, #0 - beq _08140D36 - adds r4, r1, #0 - adds r5, #8 -_08140D12: - lsls r0, r3, #0x10 - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r0, r1 - lsrs r3, r0, #0x10 - asrs r2, r0, #0x10 - cmp r2, #9 - bgt _08140D36 - ldr r1, [r4] - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r1, #8] - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _08140D12 -_08140D36: - adds r4, r7, r6 - lsls r4, r4, #3 - add r4, ip - movs r5, #0 - strh r3, [r4, #0x10] - adds r0, r6, #0 - bl sub_081420BC - ldrb r0, [r4, #0x10] - bl sub_081425C4 - ldrb r0, [r4, #0x10] - bl sub_0814379C - ldrb r0, [r4, #0x10] - bl sub_0814234C - strh r5, [r4, #0xa] - ldr r0, _08140D6C - str r0, [r4] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08140D64: .4byte gUnknown_8595D00 -_08140D68: .4byte gUnknown_3005B60 -_08140D6C: .4byte sub_08140C54 - thumb_func_end sub_08140C98 - - thumb_func_start sub_08140D70 -sub_08140D70: @ 0x08140D70 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - movs r6, #0 - movs r7, #0 - ldr r1, _08140DB8 - mov r0, sp - movs r2, #4 - bl memcpy - ldrb r0, [r4] - mov r8, r0 - cmp r5, #0 - blt _08140DE4 - cmp r5, #1 - bgt _08140DBC - movs r1, #0 - ldrsh r0, [r4, r1] - movs r1, #5 - bl __modsi3 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r2, #0xf0 - lsls r2, r2, #0x14 - adds r1, r0, r2 - lsrs r7, r1, #0x18 - cmp r0, #0 - bne _08140DE4 - movs r6, #5 - b _08140DE4 - .align 2, 0 -_08140DB8: .4byte gUnknown_8595FD2 -_08140DBC: - cmp r5, #3 - bgt _08140DE4 - movs r1, #0 - ldrsh r0, [r4, r1] - movs r1, #5 - bl __divsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - movs r2, #0x80 - lsls r2, r2, #0x13 - adds r0, r1, r2 - lsrs r7, r0, #0x18 - cmp r1, #0 - bne _08140DE4 - movs r6, #1 -_08140DE4: - mov r1, sp - adds r0, r1, r5 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r2, [r4] - adds r0, r0, r2 - strh r0, [r4] - lsls r1, r6, #0x18 - asrs r3, r1, #0x18 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r2, r7, #0x18 - cmp r0, r3 - bge _08140E06 - asrs r0, r2, #0x18 - strh r0, [r4] -_08140E06: - movs r0, #0 - ldrsh r1, [r4, r0] - asrs r0, r2, #0x18 - cmp r1, r0 - ble _08140E12 - strh r3, [r4] -_08140E12: - mov r1, r8 - lsls r0, r1, #0x18 - movs r2, #0 - ldrsh r1, [r4, r2] - asrs r0, r0, #0x18 - cmp r1, r0 - bne _08140E24 - movs r0, #0 - b _08140E26 -_08140E24: - movs r0, #1 -_08140E26: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08140D70 - - thumb_func_start sub_08140E34 -sub_08140E34: @ 0x08140E34 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r0, #0 - mov sb, r0 - movs r5, #0 - ldr r4, _08141010 - ldrh r1, [r4, #0x2e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08140E70 - movs r5, #1 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - ldr r1, _08141014 - adds r0, r0, r1 - adds r0, #8 - movs r1, #0 - bl sub_08140D70 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08140E70 - b _08141002 -_08140E70: - ldrh r1, [r4, #0x2e] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08140E96 - movs r5, #1 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - ldr r1, _08141014 - adds r0, r0, r1 - adds r0, #8 - movs r1, #1 - bl sub_08140D70 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08140E96 - b _08141002 -_08140E96: - ldrh r1, [r4, #0x2e] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08140EBC - movs r5, #1 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - ldr r1, _08141014 - adds r0, r0, r1 - adds r0, #8 - movs r1, #2 - bl sub_08140D70 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08140EBC - b _08141002 -_08140EBC: - ldrh r1, [r4, #0x2e] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08140EE2 - movs r5, #1 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - ldr r1, _08141014 - adds r0, r0, r1 - adds r0, #8 - movs r1, #3 - bl sub_08140D70 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08140EE2 - b _08141002 -_08140EE2: - cmp r5, #0 - bne _08140EE8 - b _08141002 -_08140EE8: - ldr r0, _08141018 - lsls r6, r7, #2 - adds r4, r6, r7 - lsls r4, r4, #3 - adds r4, r4, r0 - ldrb r0, [r4, #0x10] - bl sub_081425C4 - adds r0, r7, #0 - bl sub_08140C2C - mov r1, sb - strh r1, [r4, #0xa] - movs r0, #5 - bl sub_080A306C - ldr r5, _0814101C - ldr r0, [r5] - adds r0, #0xb8 - ldr r1, _08141020 - bl sub_08151A78 - ldr r5, [r5] - movs r2, #0xb8 - lsls r2, r2, #1 - adds r3, r5, r2 - ldrb r2, [r3] - movs r1, #0x7f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3] - movs r0, #0xb2 - lsls r0, r0, #1 - adds r3, r5, r0 - ldrb r2, [r3] - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3] - movs r0, #0xac - lsls r0, r0, #1 - adds r2, r5, r0 - ldrb r0, [r2] - ands r1, r0 - strb r1, [r2] - ldrb r0, [r4, #0x10] - bl sub_0814234C - movs r4, #0 - mov sb, r6 - ldr r1, _08141024 - mov ip, r1 - movs r2, #8 - add r2, ip - mov sl, r2 -_08140F54: - ldr r0, _0814101C - ldr r5, [r0] - adds r0, r4, #0 - adds r0, #0x29 - adds r6, r5, #0 - adds r6, #0x3c - adds r0, r6, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - mov r1, ip - adds r3, r0, r1 - adds r2, r3, #0 - adds r2, #0x40 - add r0, sl - ldr r0, [r0] - ldr r0, [r0] - ldrh r1, [r0] - ldrh r2, [r2] - adds r1, r1, r2 - ldr r2, _08141028 - mov r8, r2 - mov r0, r8 - ands r1, r0 - ldrh r2, [r3, #4] - ldr r0, _0814102C - ands r0, r2 - orrs r0, r1 - strh r0, [r3, #4] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _08140F54 - ldr r0, _08141018 - mov r2, sb - adds r1, r2, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r3, [r1, #0x10] - subs r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #3 - bhi _08141002 - ldr r2, _08141030 - movs r0, #0x10 - ldrsh r1, [r1, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #8 - adds r0, r0, r2 - ldr r1, [r5, #8] - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _08141002 - subs r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - adds r0, #0x29 - adds r0, r6, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08141024 - adds r3, r0, r1 - adds r2, r3, #0 - adds r2, #0x40 - adds r1, #8 - adds r0, r0, r1 - ldr r0, [r0] - ldr r0, [r0] - ldrh r1, [r0, #4] - ldrh r2, [r2] - adds r1, r1, r2 - mov r2, r8 - ands r1, r2 - ldrh r2, [r3, #4] - ldr r0, _0814102C - ands r0, r2 - orrs r0, r1 - strh r0, [r3, #4] -_08141002: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08141010: .4byte gUnknown_3002360 -_08141014: .4byte gUnknown_3005B68 -_08141018: .4byte gUnknown_3005B60 -_0814101C: .4byte gUnknown_203A854 -_08141020: .4byte 0x0000FFFF -_08141024: .4byte gUnknown_20205AC -_08141028: .4byte 0x000003FF -_0814102C: .4byte 0xFFFFFC00 -_08141030: .4byte gUnknown_8595D00 - thumb_func_end sub_08140E34 - - thumb_func_start sub_08141034 -sub_08141034: @ 0x08141034 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl sub_080EF7A8 - ldr r0, _08141054 - ldr r1, [r0] - movs r0, #0xff - strh r0, [r1, #0x28] - ldrb r2, [r1, #0x19] - cmp r2, #1 - bne _08141058 - adds r0, r1, #0 - adds r0, #0x23 - strb r2, [r0] - b _0814105E - .align 2, 0 -_08141054: .4byte gUnknown_203A854 -_08141058: - adds r1, #0x23 - movs r0, #0 - strb r0, [r1] -_0814105E: - ldr r0, _08141080 - ldr r0, [r0] - adds r0, #0x21 - movs r1, #0 - strb r1, [r0] - ldr r1, _08141084 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0x20 - strh r1, [r0, #0xa] - ldr r1, _08141088 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08141080: .4byte gUnknown_203A854 -_08141084: .4byte gUnknown_3005B60 -_08141088: .4byte sub_081411C4 - thumb_func_end sub_08141034 - - thumb_func_start sub_0814108C -sub_0814108C: @ 0x0814108C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _081410FC - ldr r2, [r4] - ldrb r1, [r2, #0x1a] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - adds r2, #0x1b - adds r2, r2, r1 - ldr r3, _08141100 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r5, r1, r3 - ldrh r0, [r5, #0x10] - strb r0, [r2] - ldr r1, [r4] - ldrb r0, [r1, #0x1a] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - adds r1, #0x1b - adds r1, r1, r0 - ldrb r0, [r1] - bl sub_08142820 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0xc] - ldr r1, [r4] - ldrb r0, [r1, #0x1a] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - adds r1, #0x1b - adds r1, r1, r0 - ldrb r0, [r1] - bl sub_0814379C - ldr r0, [r4] - ldrb r1, [r0, #0x19] - ldrh r0, [r5, #0x22] - subs r0, r0, r1 - strh r0, [r5, #0x22] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _081410EC - movs r0, #0 - strh r0, [r5, #0x22] -_081410EC: - ldrh r0, [r5, #0x22] - bl sub_081435E0 - ldr r0, _08141104 - str r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081410FC: .4byte gUnknown_203A854 -_08141100: .4byte gUnknown_3005B60 -_08141104: .4byte sub_08141034 - thumb_func_end sub_0814108C - - thumb_func_start sub_08141108 -sub_08141108: @ 0x08141108 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r5, #0 - bl sub_08140E34 - ldr r1, _08141130 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0x1e - beq _0814113E - cmp r0, #0x1e - bgt _08141134 - cmp r0, #0 - beq _0814113A - b _08141152 - .align 2, 0 -_08141130: .4byte gUnknown_3005B60 -_08141134: - cmp r0, #0x3b - beq _0814114C - b _08141152 -_0814113A: - ldrb r0, [r4, #0x10] - b _08141140 -_0814113E: - movs r0, #0 -_08141140: - bl sub_08140A80 - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - b _08141162 -_0814114C: - movs r0, #0 - strh r0, [r4, #0xa] - b _08141162 -_08141152: - ldr r0, _081411A0 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0xa] - adds r0, #1 - strh r0, [r1, #0xa] -_08141162: - ldr r0, _081411A4 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081411BA - ldr r0, _081411A8 - ldr r3, [r0] - ldr r2, _081411AC - ldr r1, _081411A0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r0, #0x10 - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #8 - adds r0, r0, r2 - ldr r1, [r3, #8] - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _081411B0 - movs r0, #0x16 - bl sub_080A306C - b _081411BA - .align 2, 0 -_081411A0: .4byte gUnknown_3005B60 -_081411A4: .4byte gUnknown_3002360 -_081411A8: .4byte gUnknown_203A854 -_081411AC: .4byte gUnknown_8595D00 -_081411B0: - movs r0, #0x5f - bl m4aSongNumStart - ldr r0, _081411C0 - str r0, [r4] -_081411BA: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081411C0: .4byte sub_0814108C - thumb_func_end sub_08141108 - - thumb_func_start sub_081411C4 -sub_081411C4: @ 0x081411C4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0814121C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 - ldrh r0, [r4, #0xa] - subs r1, r0, #1 - strh r1, [r4, #0xa] - lsls r0, r0, #0x10 - cmp r0, #0 - ble _08141230 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - ble _081411F0 - ldr r1, _08141220 - ldrh r0, [r1] - adds r0, #2 - strh r0, [r1] -_081411F0: - ldr r0, _08141224 - ldr r1, [r0] - ldrh r0, [r1, #0x26] - adds r0, #4 - strh r0, [r1, #0x26] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x68 - bne _08141248 - ldr r2, _08141228 - adds r0, r1, #0 - adds r0, #0x55 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, _0814122C - str r1, [r0] - b _08141248 - .align 2, 0 -_0814121C: .4byte gUnknown_3005B60 -_08141220: .4byte gUnknown_2021B38 -_08141224: .4byte gUnknown_203A854 -_08141228: .4byte gUnknown_20205AC -_0814122C: .4byte sub_08007140 -_08141230: - movs r0, #1 - movs r1, #0xff - bl sub_08142F3C - movs r0, #1 - movs r1, #0xff - bl sub_08143104 - ldr r0, _08141250 - str r0, [r4] - movs r0, #0 - strh r0, [r4, #0xa] -_08141248: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08141250: .4byte sub_0814140C - thumb_func_end sub_081411C4 - - thumb_func_start sub_08141254 -sub_08141254: @ 0x08141254 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, _08141270 - ldr r3, [r0] - ldrb r2, [r3, #2] - adds r5, r0, #0 - cmp r2, #2 - bgt _08141274 - cmp r2, #1 - bge _0814127A - b _08141348 - .align 2, 0 -_08141270: .4byte gUnknown_203A854 -_08141274: - cmp r2, #3 - beq _081412DC - b _08141348 -_0814127A: - ldr r0, _081412A4 - ldrb r0, [r0, #2] - subs r0, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #5 - bhi _081412AC - cmp r4, #0xb - bls _08141294 - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0814135E -_08141294: - ldr r0, _081412A8 - ldrb r1, [r3, #4] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x19 - adds r1, r1, r0 - ldrb r0, [r1, #2] - lsrs r0, r0, #1 - b _08141402 - .align 2, 0 -_081412A4: .4byte gUnknown_3005A50 -_081412A8: .4byte gUnknown_8595EF4 -_081412AC: - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _081412C8 - ldr r0, _081412C4 - ldrb r1, [r3, #4] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x19 - adds r1, r1, r0 - ldrb r0, [r1, #2] - lsrs r0, r0, #1 - b _08141402 - .align 2, 0 -_081412C4: .4byte gUnknown_8595EF4 -_081412C8: - ldr r0, _081412D8 - ldrb r1, [r3, #4] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x19 - adds r1, r1, r0 - ldrb r0, [r1, #2] - b _08141402 - .align 2, 0 -_081412D8: .4byte gUnknown_8595EF4 -_081412DC: - ldr r0, _08141308 - ldrb r0, [r0, #2] - subs r0, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #6 - bhi _08141310 - cmp r4, #5 - bls _081412F6 - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0814135E -_081412F6: - ldr r0, _0814130C - ldrb r1, [r3, #4] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x19 - adds r1, r1, r0 - ldrb r0, [r1, #2] - lsrs r0, r0, #1 - b _08141402 - .align 2, 0 -_08141308: .4byte gUnknown_3005A50 -_0814130C: .4byte gUnknown_8595EF4 -_08141310: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08141330 - cmp r4, #6 - bls _08141330 - ldr r0, _0814132C - ldrb r1, [r3, #4] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x19 - adds r1, r1, r0 - ldrb r0, [r1, #2] - lsrs r0, r0, #2 - b _08141402 - .align 2, 0 -_0814132C: .4byte gUnknown_8595EF4 -_08141330: - ldr r1, _08141344 - ldr r0, [r5] - ldrb r0, [r0, #4] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x19 - adds r0, r0, r1 - ldrb r0, [r0, #2] - lsrs r0, r0, #1 - b _08141402 - .align 2, 0 -_08141344: .4byte gUnknown_8595EF4 -_08141348: - ldr r0, _08141364 - ldrb r0, [r0, #2] - subs r0, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #5 - bhi _08141380 - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _08141368 -_0814135E: - movs r0, #1 - b _08141402 - .align 2, 0 -_08141364: .4byte gUnknown_3005A50 -_08141368: - ldr r1, _0814137C - ldr r0, [r5] - ldrb r0, [r0, #4] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x19 - adds r0, r0, r1 - ldrb r0, [r0, #2] - lsrs r0, r0, #1 - b _08141402 - .align 2, 0 -_0814137C: .4byte gUnknown_8595EF4 -_08141380: - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _081413B8 - cmp r4, #0xc - bls _081413A4 - ldr r1, _081413A0 - ldr r0, [r5] - ldrb r0, [r0, #4] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x19 - adds r0, r0, r1 - ldrb r0, [r0, #2] - lsrs r0, r0, #1 - b _08141402 - .align 2, 0 -_081413A0: .4byte gUnknown_8595EF4 -_081413A4: - ldr r1, _081413B4 - ldr r0, [r5] - ldrb r0, [r0, #4] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x19 - adds r0, r0, r1 - ldrb r0, [r0, #2] - b _08141402 - .align 2, 0 -_081413B4: .4byte gUnknown_8595EF4 -_081413B8: - movs r0, #0x80 - lsls r0, r0, #8 - ands r0, r1 - cmp r0, #0 - beq _081413F0 - cmp r4, #0xc - bls _081413DC - ldr r1, _081413D8 - ldr r0, [r5] - ldrb r0, [r0, #4] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x19 - adds r0, r0, r1 - ldrb r0, [r0, #2] - b _08141402 - .align 2, 0 -_081413D8: .4byte gUnknown_8595EF4 -_081413DC: - ldr r1, _081413EC - ldr r0, [r5] - ldrb r0, [r0, #4] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x19 - adds r0, r0, r1 - ldrb r0, [r0, #1] - b _08141402 - .align 2, 0 -_081413EC: .4byte gUnknown_8595EF4 -_081413F0: - ldr r1, _08141408 - ldr r0, [r5] - ldrb r0, [r0, #4] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x19 - adds r0, r0, r1 - ldrb r0, [r0, #1] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x18 -_08141402: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08141408: .4byte gUnknown_8595EF4 - thumb_func_end sub_08141254 - - thumb_func_start sub_0814140C -sub_0814140C: @ 0x0814140C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - movs r4, #0 - ldr r1, _08141498 - mov r0, sp - movs r2, #8 - bl memcpy - bl Random - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - adds r0, r7, #0 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r3, _0814149C - ldr r0, [r3] - ldr r2, _081414A0 - mov r5, sl - lsls r1, r5, #2 - add r1, sl - lsls r1, r1, #3 - adds r1, r1, r2 - ldrh r2, [r1, #0x14] - adds r0, #0x7c - strb r2, [r0] - ldr r0, [r3] - adds r2, r0, #0 - adds r2, #0x7f - strb r4, [r2] - subs r2, #1 - strb r4, [r2] - adds r0, #0x7d - strb r4, [r0] - ldrh r0, [r1, #0x18] - adds r1, r7, #0 - bl sub_08141254 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r1, r4, #0x18 - adds r0, r7, #0 - bl __modsi3 - lsrs r4, r4, #0x19 - subs r0, r0, r4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _081414A4 - ldrb r0, [r0, #2] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r5, #1 - cmp r0, #0xc - bgt _08141490 - movs r5, #0 -_08141490: - cmp r6, #0x4f - bhi _081414A8 - lsls r0, r5, #0x19 - b _081414B2 - .align 2, 0 -_08141498: .4byte gUnknown_8595FD6 -_0814149C: .4byte gUnknown_203A854 -_081414A0: .4byte gUnknown_3005B60 -_081414A4: .4byte gUnknown_3005A50 -_081414A8: - lsls r1, r5, #0x18 - asrs r1, r1, #0x18 - movs r0, #1 - subs r0, r0, r1 - lsls r0, r0, #0x19 -_081414B2: - lsrs r5, r0, #0x18 - ldr r0, _081415F8 - ldr r6, [r0] - ldrb r0, [r6, #4] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x19 - ldr r1, _081415FC - adds r0, r0, r1 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - ldrh r0, [r0, #0x1a] - adds r4, r4, r0 - adds r0, r6, #0 - adds r0, #0x80 - strh r4, [r0] - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - adds r0, r4, #0 - bl __floatsisf - cmp r4, #0 - bge _081414E4 - ldr r1, _08141600 - bl __addsf3 -_081414E4: - ldr r1, _08141604 - bl __divsf3 - bl __fixunssfsi - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - lsls r0, r4, #1 - adds r0, r0, r4 - movs r2, #0x82 - adds r2, r2, r6 - mov r8, r2 - strh r0, [r2] - adds r0, r6, #0 - adds r0, #0x84 - strh r4, [r0] - adds r0, #2 - strh r4, [r0] - movs r0, #0x88 - adds r0, r0, r6 - mov sb, r0 - movs r0, #1 - ands r0, r7 - lsls r1, r5, #0x18 - asrs r1, r1, #0x18 - adds r0, r0, r1 - lsls r0, r0, #1 - add r0, sp - movs r1, #0 - ldrsh r4, [r0, r1] - adds r0, r4, #0 - bl __floatsisf - cmp r4, #0 - bge _08141530 - ldr r1, _08141600 - bl __addsf3 -_08141530: - mov r2, sb - str r0, [r2] - adds r7, r6, #0 - adds r7, #0x8c - ldrb r0, [r6, #4] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x19 - ldr r5, _081415FC - adds r0, r0, r5 - movs r1, #0x18 - ldrsh r4, [r0, r1] - adds r0, r4, #0 - bl __floatsisf - adds r5, r0, #0 - cmp r4, #0 - bge _0814155A - ldr r1, _08141600 - bl __addsf3 - adds r5, r0, #0 -_0814155A: - str r5, [r7] - adds r7, r6, #0 - adds r7, #0x90 - ldr r1, _08141608 - adds r0, r5, #0 - bl __mulsf3 - adds r1, r5, #0 - bl __subsf3 - adds r5, r0, #0 - mov r2, r8 - movs r0, #0 - ldrsh r4, [r2, r0] - adds r0, r4, #0 - bl __floatsisf - adds r2, r0, #0 - cmp r4, #0 - bge _0814158A - ldr r1, _08141600 - bl __addsf3 - adds r2, r0, #0 -_0814158A: - adds r0, r5, #0 - adds r1, r2, #0 - bl __divsf3 - str r0, [r7] - adds r1, r6, #0 - adds r1, #0x94 - ldr r0, _0814160C - str r0, [r1] - adds r1, #8 - ldr r0, _08141610 - str r0, [r1] - adds r5, r6, #0 - adds r5, #0x98 - mov r1, r8 - movs r2, #0 - ldrsh r4, [r1, r2] - adds r0, r4, #0 - bl __floatsisf - adds r2, r0, #0 - cmp r4, #0 - bge _081415C0 - ldr r1, _08141600 - bl __addsf3 - adds r2, r0, #0 -_081415C0: - ldr r0, _08141614 - adds r1, r2, #0 - bl __divsf3 - bl __negsf2 - str r0, [r5] - adds r1, r6, #0 - adds r1, #0xa0 - ldr r0, _08141618 - str r0, [r1] - ldr r1, _0814161C - mov r5, sl - lsls r0, r5, #2 - add r0, sl - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08141620 - str r1, [r0] - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081415F8: .4byte gUnknown_203A854 -_081415FC: .4byte gUnknown_8595EF4 -_08141600: .4byte 0x47800000 -_08141604: .4byte 0x40A00000 -_08141608: .4byte 0x3F000000 -_0814160C: .4byte 0x42880000 -_08141610: .4byte 0x00000000 -_08141614: .4byte 0x41000000 -_08141618: .4byte 0x42100000 -_0814161C: .4byte gUnknown_3005B60 -_08141620: .4byte sub_08141624 - thumb_func_end sub_0814140C - - thumb_func_start sub_08141624 -sub_08141624: @ 0x08141624 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _08141688 - ldr r3, [r4] - ldrb r1, [r3, #3] - movs r2, #0x80 - orrs r1, r2 - strb r1, [r3, #3] - ldr r3, [r4] - adds r2, r3, #0 - adds r2, #0x7c - adds r1, r3, #0 - adds r1, #0x3c - ldrb r2, [r2] - adds r1, r1, r2 - ldrb r2, [r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - ldr r2, _0814168C - adds r1, r1, r2 - str r1, [r3, #0x38] - ldr r2, _08141690 - str r2, [r1, #0x1c] - ldr r1, _08141694 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - adds r4, r4, r1 - ldrh r1, [r4, #0x14] - adds r1, #1 - strh r1, [r4, #0x14] - ldrh r0, [r4, #0x18] - adds r0, #1 - strh r0, [r4, #0x18] - movs r0, #6 - subs r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_081437F8 - movs r0, #0x5c - bl m4aSongNumStart - ldr r0, _08141698 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08141688: .4byte gUnknown_203A854 -_0814168C: .4byte gUnknown_20205AC -_08141690: .4byte sub_08144778 -_08141694: .4byte gUnknown_3005B60 -_08141698: .4byte sub_0814169C - thumb_func_end sub_08141624 - - thumb_func_start sub_0814169C -sub_0814169C: @ 0x0814169C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r6, _081416D8 - ldr r3, [r6] - adds r0, r3, #0 - adds r0, #0x7d - ldrb r0, [r0] - cmp r0, #0 - beq _0814178E - ldrb r1, [r3, #3] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _081416DC - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0814178E - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3, #3] - ldr r2, [r6] - ldrb r1, [r2, #3] - movs r0, #0x21 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #3] - b _0814178E - .align 2, 0 -_081416D8: .4byte gUnknown_203A854 -_081416DC: - ldr r2, _08141750 - lsls r1, r4, #2 - adds r0, r1, r4 - lsls r0, r0, #3 - adds r5, r0, r2 - movs r2, #0xa - ldrsh r0, [r5, r2] - adds r7, r1, #0 - cmp r0, #0 - bne _08141728 - adds r0, r3, #0 - adds r0, #0x7e - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08142198 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, [r6] - ldrb r1, [r2, #0x1a] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - adds r2, #0x1b - adds r2, r2, r1 - ldrb r1, [r2] - bl sub_081422B0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x12] - cmp r0, #1 - bne _08141728 - ldr r0, [r6] - adds r0, #0xb8 - movs r1, #0x80 - lsls r1, r1, #5 - bl sub_08151A24 -_08141728: - ldr r0, _08141750 - adds r1, r7, r4 - lsls r1, r1, #3 - adds r4, r1, r0 - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0x3c - bgt _08141758 - ldr r0, _08141754 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08141748 - movs r0, #0x3c - strh r0, [r4, #0xa] -_08141748: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - b _0814178E - .align 2, 0 -_08141750: .4byte gUnknown_3005B60 -_08141754: .4byte gUnknown_3002360 -_08141758: - ldr r0, _08141794 - ldr r1, [r0] - ldrb r0, [r1, #0x1a] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - adds r1, #0x1b - adds r1, r1, r0 - ldrb r0, [r1] - bl sub_081425C4 - ldrh r1, [r4, #0x20] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0 - bl sub_08142F3C - ldrb r1, [r4, #0x14] - subs r1, #1 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0 - bl sub_08143104 - movs r0, #0x20 - strh r0, [r4, #0xa] - ldr r0, _08141798 - str r0, [r4] -_0814178E: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08141794: .4byte gUnknown_203A854 -_08141798: .4byte sub_0814179C - thumb_func_end sub_0814169C - - thumb_func_start sub_0814179C -sub_0814179C: @ 0x0814179C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _081417F4 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrh r0, [r4, #0xa] - subs r1, r0, #1 - strh r1, [r4, #0xa] - lsls r0, r0, #0x10 - cmp r0, #0 - ble _08141808 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - ble _081417C8 - ldr r1, _081417F8 - ldrh r0, [r1] - subs r0, #2 - strh r0, [r1] -_081417C8: - ldr r0, _081417FC - ldr r1, [r0] - ldrh r0, [r1, #0x26] - subs r0, #4 - strh r0, [r1, #0x26] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x68 - bne _08141830 - ldr r2, _08141800 - adds r0, r1, #0 - adds r0, #0x55 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, _08141804 - str r1, [r0] - b _08141830 - .align 2, 0 -_081417F4: .4byte gUnknown_3005B60 -_081417F8: .4byte gUnknown_2021B38 -_081417FC: .4byte gUnknown_203A854 -_08141800: .4byte gUnknown_20205AC -_08141804: .4byte sub_081439D8 -_08141808: - ldrh r0, [r4, #0x20] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_0814321C - movs r1, #0x12 - ldrsh r0, [r4, r1] - cmp r0, #1 - bne _0814181E - movs r0, #0x79 - b _08141820 -_0814181E: - movs r0, #0x3d -_08141820: - strh r0, [r4, #0xa] - ldr r0, _08141838 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _0814183C - str r0, [r1] -_08141830: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08141838: .4byte gUnknown_3005B60 -_0814183C: .4byte sub_08141840 - thumb_func_end sub_0814179C - - thumb_func_start sub_08141840 -sub_08141840: @ 0x08141840 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _08141890 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrh r0, [r4, #0xa] - subs r1, r0, #1 - strh r1, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _081418B0 - movs r0, #0xa - ldrsh r1, [r4, r0] - adds r0, r1, #0 - cmp r1, #0 - bge _0814186A - adds r0, #0xf -_0814186A: - asrs r0, r0, #4 - lsls r0, r0, #4 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - beq _08141894 - cmp r0, #8 - bne _081418BC - movs r0, #0 - movs r1, #0xff - bl sub_08142F3C - movs r0, #0 - movs r1, #0xff - bl sub_08143104 - b _081418BC - .align 2, 0 -_08141890: .4byte gUnknown_3005B60 -_08141894: - ldrh r1, [r4, #0x20] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0 - bl sub_08142F3C - ldrb r1, [r4, #0x14] - subs r1, #1 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0 - bl sub_08143104 - b _081418BC -_081418B0: - ldr r1, _081418C4 - adds r0, r2, #0 - movs r2, #0x1e - movs r3, #0 - bl sub_08142044 -_081418BC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081418C4: .4byte sub_08141964 - thumb_func_end sub_08141840 - - thumb_func_start sub_081418C8 -sub_081418C8: @ 0x081418C8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _08141920 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #0x12 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0814192C - cmp r0, #0 - blt _0814192C - cmp r0, #2 - bgt _0814192C - bl IsFanfareTaskInactive - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08141950 - movs r0, #0x1d - bl GetGameStat - ldrh r1, [r4, #0x1e] - adds r1, #1 - strh r1, [r4, #0x1e] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r0, r1 - bhs _08141910 - movs r0, #0x1e - ldrsh r1, [r4, r0] - movs r0, #0x1d - bl SetGameStat -_08141910: - ldr r1, _08141924 - ldr r2, _08141928 - adds r0, r5, #0 - movs r3, #3 - bl sub_08142044 - b _08141950 - .align 2, 0 -_08141920: .4byte gUnknown_3005B60 -_08141924: .4byte sub_08141AE0 -_08141928: .4byte 0x0000FFFF -_0814192C: - bl IsSEPlaying - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _08141950 - ldr r1, _08141958 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r2, [r0, #0x1e] - ldr r1, _0814195C - ldr r2, _08141960 - adds r0, r5, #0 - movs r3, #3 - bl sub_08142044 -_08141950: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08141958: .4byte gUnknown_3005B60 -_0814195C: .4byte sub_08141B88 -_08141960: .4byte 0x0000FFFF - thumb_func_end sub_081418C8 - - thumb_func_start sub_08141964 -sub_08141964: @ 0x08141964 - push {r4, r5, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _081419A4 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #0x12 - ldrsh r1, [r0, r2] - cmp r1, #0 - beq _081419F0 - cmp r1, #0 - blt _081419F0 - cmp r1, #2 - bgt _081419F0 - movs r1, #0xc - ldrsh r0, [r0, r1] - cmp r0, #0xc - bne _081419B4 - ldr r0, _081419A8 - bl PlayFanfare - ldr r4, _081419AC - ldrb r0, [r4] - movs r1, #0 - bl sub_08196FF0 - ldrb r0, [r4] - ldr r2, _081419B0 - b _081419CA - .align 2, 0 -_081419A4: .4byte gUnknown_3005B60 -_081419A8: .4byte 0x00000185 -_081419AC: .4byte gUnknown_203A858 -_081419B0: .4byte gUnknown_8262D6C -_081419B4: - movs r0, #0xc3 - lsls r0, r0, #1 - bl PlayFanfare - ldr r4, _081419E8 - ldrb r0, [r4] - movs r1, #0 - bl sub_08196FF0 - ldrb r0, [r4] - ldr r2, _081419EC -_081419CA: - movs r1, #2 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - movs r3, #2 - bl AddTextPrinterParameterized - ldrb r0, [r4] - movs r1, #3 - bl CopyWindowToVram - b _08141A20 - .align 2, 0 -_081419E8: .4byte gUnknown_203A858 -_081419EC: .4byte gUnknown_8262D66 -_081419F0: - movs r0, #0x20 - bl m4aSongNumStart - ldr r4, _08141A3C - ldrb r0, [r4] - movs r1, #0 - bl sub_08196FF0 - ldrb r0, [r4] - ldr r2, _08141A40 - movs r1, #2 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - movs r3, #2 - bl AddTextPrinterParameterized - ldrb r0, [r4] - movs r1, #3 - bl CopyWindowToVram -_08141A20: - ldr r1, _08141A44 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #0xa] - ldr r1, _08141A48 - str r1, [r0] - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08141A3C: .4byte gUnknown_203A858 -_08141A40: .4byte gUnknown_8262D74 -_08141A44: .4byte gUnknown_3005B60 -_08141A48: .4byte sub_081418C8 - thumb_func_end sub_08141964 - - thumb_func_start sub_08141A4C -sub_08141A4C: @ 0x08141A4C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _08141A70 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r0, #0x16 - ldrsh r5, [r4, r0] - cmp r5, #0 - beq _08141A74 - cmp r5, #3 - beq _08141AA4 - ldrh r0, [r4, #0x16] - adds r0, #1 - b _08141AAC - .align 2, 0 -_08141A70: .4byte gUnknown_3005B60 -_08141A74: - ldrh r0, [r4, #0x22] - adds r0, #1 - strh r0, [r4, #0x22] - movs r0, #0x15 - bl m4aSongNumStart - ldrh r0, [r4, #0x22] - bl sub_081435E0 - movs r2, #0x22 - ldrsh r1, [r4, r2] - ldr r0, _08141A94 - cmp r1, r0 - ble _08141A98 - strh r5, [r4, #0xa] - b _08141AAE - .align 2, 0 -_08141A94: .4byte 0x0000270E -_08141A98: - ldrh r0, [r4, #0xa] - subs r0, #1 - strh r0, [r4, #0xa] - ldrh r0, [r4, #0x16] - adds r0, #1 - b _08141AAC -_08141AA4: - movs r0, #0x15 - bl m4aSongNumStop - movs r0, #0 -_08141AAC: - strh r0, [r4, #0x16] -_08141AAE: - ldr r0, _08141AD4 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r2, #0xa - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _08141ACC - ldr r1, _08141AD8 - ldr r2, _08141ADC - adds r0, r6, #0 - movs r3, #3 - bl sub_08142044 -_08141ACC: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08141AD4: .4byte gUnknown_3005B60 -_08141AD8: .4byte sub_08141B88 -_08141ADC: .4byte 0x0000FFFF - thumb_func_end sub_08141A4C - - thumb_func_start sub_08141AE0 -sub_08141AE0: @ 0x08141AE0 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _08141B6C - ldr r1, _08141B70 - mov sb, r1 - ldr r1, [r1] - ldrb r2, [r1, #0x19] - ldr r1, _08141B74 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - adds r4, r4, r1 - movs r1, #0xc - ldrsh r0, [r4, r1] - adds r1, r2, #0 - muls r1, r0, r1 - adds r0, r3, #0 - movs r2, #0 - movs r3, #2 - bl sub_080089D8 - ldr r2, _08141B78 - mov r8, r2 - ldr r1, _08141B7C - mov r0, r8 - bl StringExpandPlaceholders - ldr r5, _08141B80 - ldrb r0, [r5] - movs r1, #0 - bl sub_08196FF0 - ldrb r0, [r5] - movs r1, #2 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r6, #0 - str r6, [sp, #8] - movs r1, #1 - mov r2, r8 - movs r3, #2 - bl AddTextPrinterParameterized - ldrb r0, [r5] - movs r1, #3 - bl CopyWindowToVram - mov r1, sb - ldr r0, [r1] - ldrb r1, [r0, #0x19] - movs r2, #0xc - ldrsh r0, [r4, r2] - muls r0, r1, r0 - strh r0, [r4, #0xa] - strh r6, [r4, #0x16] - ldr r0, _08141B84 - str r0, [r4] - add sp, #0xc - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08141B6C: .4byte gUnknown_2021C40 -_08141B70: .4byte gUnknown_203A854 -_08141B74: .4byte gUnknown_3005B60 -_08141B78: .4byte gUnknown_2021C7C -_08141B7C: .4byte gUnknown_8262D79 -_08141B80: .4byte gUnknown_203A858 -_08141B84: .4byte sub_08141A4C - thumb_func_end sub_08141AE0 - - thumb_func_start sub_08141B88 -sub_08141B88: @ 0x08141B88 - push {r4, r5, r6, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r5, _08141C08 - ldr r0, [r5] - adds r0, #0xb8 - ldr r1, _08141C0C - bl sub_08151A78 - ldr r6, [r5] - movs r0, #0xb8 - lsls r0, r0, #1 - adds r3, r6, r0 - ldrb r2, [r3] - movs r1, #0x7f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3] - movs r0, #0xb2 - lsls r0, r0, #1 - adds r3, r6, r0 - ldrb r2, [r3] - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3] - movs r0, #0xac - lsls r0, r0, #1 - adds r2, r6, r0 - ldrb r0, [r2] - ands r1, r0 - strb r1, [r2] - ldr r6, _08141C10 - ldr r2, [r5] - ldr r5, _08141C14 - ldr r0, _08141C18 - lsls r3, r4, #2 - adds r3, r3, r4 - lsls r3, r3, #3 - adds r3, r3, r0 - movs r0, #0x20 - ldrsh r1, [r3, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r0, [r0] - adds r2, r2, r0 - adds r2, #0x43 - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - ldr r0, _08141C1C - str r0, [r3] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08141C08: .4byte gUnknown_203A854 -_08141C0C: .4byte 0x0000FFFF -_08141C10: .4byte gUnknown_20205AC -_08141C14: .4byte gUnknown_8595D00 -_08141C18: .4byte gUnknown_3005B60 -_08141C1C: .4byte sub_08141C20 - thumb_func_end sub_08141B88 - - thumb_func_start sub_08141C20 -sub_08141C20: @ 0x08141C20 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r5, #0 - ldr r1, _08141D00 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #0 - strh r5, [r0, #0x10] - ldr r4, _08141D04 - ldr r1, [r4] - ldrb r0, [r1, #0x1a] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - adds r1, #0x1b - adds r1, r1, r0 - strb r2, [r1] - movs r0, #0 - bl sub_081425C4 - ldr r3, _08141D08 - ldr r0, [r4] - adds r0, #0x6c - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - adds r7, r3, #0 - movs r0, #8 - adds r0, r0, r7 - mov ip, r0 - ldr r1, _08141D0C - mov r8, r1 -_08141C78: - ldr r0, _08141D04 - ldr r4, [r0] - adds r0, r4, r5 - adds r0, #0x65 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r3, r0, r7 - adds r2, r3, #0 - adds r2, #0x40 - add r0, ip - ldr r0, [r0] - ldr r0, [r0] - ldrh r1, [r0] - ldrh r2, [r2] - adds r1, r1, r2 - ldr r2, _08141D10 - adds r0, r2, #0 - ands r1, r0 - ldrh r2, [r3, #4] - mov r0, r8 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, #4] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #3 - bls _08141C78 - ldr r0, _08141D00 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r2, r1, r0 - movs r1, #0x22 - ldrsh r0, [r2, r1] - ldrb r4, [r4, #0x19] - cmp r0, r4 - blt _08141D84 - movs r1, #0x14 - ldrsh r0, [r2, r1] - cmp r0, #6 - bne _08141D20 - ldr r4, _08141D14 - ldrb r0, [r4] - movs r1, #0 - bl sub_08196FF0 - ldrb r0, [r4] - ldr r2, _08141D18 - movs r1, #2 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - movs r3, #2 - bl AddTextPrinterParameterized - ldrb r0, [r4] - movs r1, #3 - bl CopyWindowToVram - ldr r1, _08141D1C - b _08141D56 - .align 2, 0 -_08141D00: .4byte gUnknown_3005B60 -_08141D04: .4byte gUnknown_203A854 -_08141D08: .4byte gUnknown_20205AC -_08141D0C: .4byte 0xFFFFFC00 -_08141D10: .4byte 0x000003FF -_08141D14: .4byte gUnknown_203A858 -_08141D18: .4byte gUnknown_8262DB0 -_08141D1C: .4byte dp01t_12_3_battle_menu -_08141D20: - movs r0, #0x22 - ldrsh r1, [r2, r0] - ldr r0, _08141D64 - cmp r1, r0 - bne _08141D78 - ldr r4, _08141D68 - ldrb r0, [r4] - movs r1, #0 - bl sub_08196FF0 - ldrb r0, [r4] - ldr r2, _08141D6C - movs r1, #2 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - movs r3, #2 - bl AddTextPrinterParameterized - ldrb r0, [r4] - movs r1, #3 - bl CopyWindowToVram - ldr r1, _08141D70 -_08141D56: - ldr r2, _08141D74 - adds r0, r6, #0 - movs r3, #3 - bl sub_08142044 - b _08141DBA - .align 2, 0 -_08141D64: .4byte 0x0000270F -_08141D68: .4byte gUnknown_203A858 -_08141D6C: .4byte gUnknown_8262DD5 -_08141D70: .4byte sub_081409DC -_08141D74: .4byte 0x0000FFFF -_08141D78: - ldr r0, _08141D80 - str r0, [r2] - b _08141DBA - .align 2, 0 -_08141D80: .4byte sub_081409DC -_08141D84: - ldr r4, _08141DC8 - ldrb r0, [r4] - movs r1, #0 - bl sub_08196FF0 - ldrb r0, [r4] - ldr r2, _08141DCC - movs r1, #2 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - movs r3, #2 - bl AddTextPrinterParameterized - ldrb r0, [r4] - movs r1, #3 - bl CopyWindowToVram - ldr r1, _08141DD0 - adds r0, r6, #0 - movs r2, #0x3c - movs r3, #3 - bl sub_08142044 -_08141DBA: - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08141DC8: .4byte gUnknown_203A858 -_08141DCC: .4byte gUnknown_8262D96 -_08141DD0: .4byte sub_08140A5C - thumb_func_end sub_08141C20 - - thumb_func_start dp01t_12_3_battle_menu -dp01t_12_3_battle_menu: @ 0x08141DD4 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r4, #0 - ldr r1, _08141E7C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r4, [r0, #0x14] - adds r0, r5, #0 - bl sub_081420BC - bl sub_08142138 - bl sub_08143B0C - movs r0, #0 - bl sub_081425C4 - movs r0, #6 - bl sub_081437F8 - ldr r7, _08141E80 - ldr r3, _08141E84 - movs r6, #5 - rsbs r6, r6, #0 -_08141E0C: - ldr r0, [r3] - adds r0, r0, r4 - adds r0, #0x43 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r7 - adds r1, #0x3e - ldrb r2, [r1] - adds r0, r6, #0 - ands r0, r2 - strb r0, [r1] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xb - bls _08141E0C - ldr r1, _08141E7C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r2, r0, r1 - movs r0, #0x22 - ldrsh r1, [r2, r0] - ldr r0, _08141E88 - cmp r1, r0 - bne _08141E9C - ldr r4, _08141E8C - ldrb r0, [r4] - movs r1, #0 - bl sub_08196FF0 - ldrb r0, [r4] - ldr r2, _08141E90 - movs r1, #2 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - movs r3, #2 - bl AddTextPrinterParameterized - ldrb r0, [r4] - movs r1, #3 - bl CopyWindowToVram - ldr r1, _08141E94 - ldr r2, _08141E98 - adds r0, r5, #0 - movs r3, #3 - bl sub_08142044 - b _08141EA0 - .align 2, 0 -_08141E7C: .4byte gUnknown_3005B60 -_08141E80: .4byte gUnknown_20205AC -_08141E84: .4byte gUnknown_203A854 -_08141E88: .4byte 0x0000270F -_08141E8C: .4byte gUnknown_203A858 -_08141E90: .4byte gUnknown_8262DD5 -_08141E94: .4byte sub_081409DC -_08141E98: .4byte 0x0000FFFF -_08141E9C: - ldr r0, _08141EA8 - str r0, [r2] -_08141EA0: - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08141EA8: .4byte sub_081409DC - thumb_func_end dp01t_12_3_battle_menu - - thumb_func_start sub_08141EAC -sub_08141EAC: @ 0x08141EAC - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r4, _08141EF0 - ldr r0, [r4] - adds r0, #0xb8 - ldr r1, _08141EF4 - bl sub_08151A78 - ldr r0, [r4] - adds r0, #0xb8 - bl sub_08151654 - ldr r1, _08141EF8 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r0, [r0, #0x22] - bl SetCoins - bl GetCoins - ldr r1, [r4] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r1, #0x19] - cmp r0, r1 - bhs _08141F00 - ldr r1, _08141EFC - movs r0, #1 - b _08141F04 - .align 2, 0 -_08141EF0: .4byte gUnknown_203A854 -_08141EF4: .4byte 0x0000FFFF -_08141EF8: .4byte gUnknown_3005B60 -_08141EFC: .4byte gUnknown_2037280 -_08141F00: - ldr r1, _08141F38 - movs r0, #0 -_08141F04: - strh r0, [r1] - bl GetCoins - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl AlertTVOfNewCoinTotal - movs r0, #0 - str r0, [sp] - movs r0, #0xff - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginHardwarePaletteFade - ldr r1, _08141F3C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08141F40 - str r1, [r0] - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08141F38: .4byte gUnknown_2037280 -_08141F3C: .4byte gUnknown_3005B60 -_08141F40: .4byte sub_08141F44 - thumb_func_end sub_08141EAC - - thumb_func_start sub_08141F44 -sub_08141F44: @ 0x08141F44 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - bl UpdatePaletteFade - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _08141FA6 - movs r0, #0 - bl SetVBlankCallback - ldr r1, _08141FAC - ldr r0, _08141FB0 - strh r4, [r0] - strh r4, [r1] - bl ResetVramOamAndBgCntRegs - bl ResetAllBgsCoordinates - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - bl FreeAllSpritePalettes - bl ResetPaletteFade - bl ResetSpriteData - bl sub_081404E0 - ldr r1, _08141FB4 - ldr r0, _08141FB8 - str r0, [r1] - ldr r0, _08141FBC - bl SetMainCallback2 - adds r0, r5, #0 - bl DestroyTask -_08141FA6: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08141FAC: .4byte gUnknown_2021B38 -_08141FB0: .4byte gUnknown_2021B3A -_08141FB4: .4byte gUnknown_3005B0C -_08141FB8: .4byte FieldCallback_ReturnToEventScript2 -_08141FBC: .4byte sub_08085A30 - thumb_func_end sub_08141F44 - - thumb_func_start sub_08141FC0 -sub_08141FC0: @ 0x08141FC0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08142034 - ldr r3, [r1] - adds r0, r3, #0 - adds r0, #0xa8 - ldrh r0, [r0] - adds r5, r1, #0 - cmp r0, #0 - beq _08141FE6 - ldr r0, _08142038 - adds r2, r3, #0 - adds r2, #0xaa - ldrh r1, [r0, #0x2e] - ldrh r0, [r2] - ands r0, r1 - cmp r0, #0 - beq _0814201A -_08141FE6: - ldr r1, _0814203C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - adds r1, r3, #0 - adds r1, #0xac - ldr r1, [r1] - str r1, [r0] - adds r0, r3, #0 - adds r0, #0xaa - ldrh r0, [r0] - cmp r0, #0 - beq _08142008 - movs r0, #5 - bl sub_080A306C -_08142008: - ldr r2, [r5] - adds r0, r2, #0 - adds r0, #0xac - movs r1, #0 - str r1, [r0] - subs r0, #2 - strh r1, [r0] - subs r0, #2 - strh r1, [r0] -_0814201A: - ldr r0, [r5] - adds r1, r0, #0 - adds r1, #0xa8 - ldrh r2, [r1] - ldr r0, _08142040 - cmp r2, r0 - beq _0814202C - subs r0, r2, #1 - strh r0, [r1] -_0814202C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08142034: .4byte gUnknown_203A854 -_08142038: .4byte gUnknown_3002360 -_0814203C: .4byte gUnknown_3005B60 -_08142040: .4byte 0x0000FFFF - thumb_func_end sub_08141FC0 - - thumb_func_start sub_08142044 -sub_08142044: @ 0x08142044 - push {r4, r5, r6, r7, lr} - adds r5, r1, #0 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r2, r2, #0x10 - lsrs r4, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r7, r3, #0x10 - ldr r2, _08142094 - ldr r0, [r2] - mov ip, r0 - mov r3, ip - adds r3, #0xb4 - ldr r1, _08142098 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r3] - adds r3, r1, #0 - cmp r5, #0 - bne _08142074 - adds r5, r0, #0 -_08142074: - mov r0, ip - adds r0, #0xac - str r5, [r0] - subs r0, #4 - strh r4, [r0] - ldr r0, _0814209C - cmp r4, r0 - bne _081420A0 - cmp r7, #0 - bne _081420A0 - mov r1, ip - adds r1, #0xaa - ldrh r0, [r1] - orrs r4, r0 - strh r4, [r1] - b _081420A6 - .align 2, 0 -_08142094: .4byte gUnknown_203A854 -_08142098: .4byte gUnknown_3005B60 -_0814209C: .4byte 0x0000FFFF -_081420A0: - ldr r0, [r2] - adds r0, #0xaa - strh r7, [r0] -_081420A6: - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r3 - ldr r1, _081420B8 - str r1, [r0] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081420B8: .4byte sub_08141FC0 - thumb_func_end sub_08142044 - - thumb_func_start sub_081420BC -sub_081420BC: @ 0x081420BC - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r4, #0 - ldr r3, _08142130 - ldr r0, [r3] - strb r4, [r0] - ldr r2, [r3] - ldrb r1, [r2, #3] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #3] - ldr r2, [r3] - ldrb r1, [r2, #3] - movs r0, #0x21 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #3] - ldr r2, [r3] - ldrb r1, [r2, #3] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #3] - ldr r2, [r3] - ldrb r1, [r2, #3] - movs r0, #0x20 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #3] - ldr r6, _08142134 - adds r2, r3, #0 - movs r1, #0 -_081420FE: - ldr r0, [r2] - adds r0, #0x1b - adds r0, r0, r4 - strb r1, [r0] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #5 - bls _081420FE - ldr r2, [r3] - ldrb r1, [r2, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x1a] - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r6 - movs r1, #0 - strh r1, [r0, #0xa] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08142130: .4byte gUnknown_203A854 -_08142134: .4byte gUnknown_3005B60 - thumb_func_end sub_081420BC - - thumb_func_start sub_08142138 -sub_08142138: @ 0x08142138 - push {lr} - ldr r2, _08142194 - ldr r1, [r2] - movs r0, #0 - str r0, [r1, #8] - movs r1, #0 - movs r3, #0 -_08142146: - ldr r0, [r2] - adds r0, #0xc - adds r0, r0, r1 - strb r3, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #5 - bls _08142146 - movs r1, #0 - ldr r3, _08142194 - movs r2, #0 -_0814215E: - ldr r0, [r3] - adds r0, #0x12 - adds r0, r0, r1 - strb r2, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #3 - bls _0814215E - movs r1, #0 - ldr r3, _08142194 - movs r2, #0 -_08142176: - ldr r0, [r3] - adds r0, #0x16 - adds r0, r0, r1 - strb r2, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #2 - bls _08142176 - movs r0, #1 - movs r1, #0xff - bl sub_08143104 - pop {r0} - bx r0 - .align 2, 0 -_08142194: .4byte gUnknown_203A854 - thumb_func_end sub_08142138 - - thumb_func_start sub_08142198 -sub_08142198: @ 0x08142198 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x1c - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - mov r1, sp - ldr r0, _081421CC - ldm r0!, {r2, r3, r6} - stm r1!, {r2, r3, r6} - ldr r0, [r0] - str r0, [r1] - add r2, sp, #0x10 - adds r1, r2, #0 - ldr r0, _081421D0 - ldm r0!, {r3, r6, r7} - stm r1!, {r3, r6, r7} - mov r8, r2 - cmp r5, #0xb - bls _081421D4 - movs r0, #0 - b _08142290 - .align 2, 0 -_081421CC: .4byte gUnknown_8595FE0 -_081421D0: .4byte gUnknown_8595FF0 -_081421D4: - ldr r6, _081422A0 - ldr r3, [r6] - ldr r1, _081422A4 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r7, #0x14 - ldrsh r1, [r0, r7] - adds r3, r3, r1 - ldr r4, _081422A8 - lsls r5, r5, #3 - adds r2, r5, r4 - ldrb r1, [r2, #2] - strb r1, [r3, #0xb] - ldrb r1, [r2, #2] - strh r1, [r0, #0x20] - ldr r2, [r6] - adds r0, r4, #4 - adds r0, r5, r0 - ldr r1, [r2, #8] - ldr r0, [r0] - orrs r1, r0 - str r1, [r2, #8] - movs r3, #0 - mov sb, r4 - mov ip, r5 - adds r5, r0, #0 -_0814220C: - lsls r0, r3, #2 - mov r1, sp - adds r4, r1, r0 - ldr r0, [r4] - ands r0, r5 - cmp r0, #0 - beq _08142226 - ldr r1, [r6] - adds r1, #0x12 - adds r1, r1, r3 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_08142226: - ldr r2, [r6] - adds r0, r2, #0 - adds r0, #0x12 - adds r0, r0, r3 - ldrb r0, [r0] - cmp r0, #2 - bls _0814223C - ldr r0, [r2, #8] - ldr r1, [r4] - orrs r0, r1 - str r0, [r2, #8] -_0814223C: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #3 - bls _0814220C - movs r6, #0 - ldr r0, _081422AC - add r0, ip - ldr r7, [r0] - ldr r4, _081422A0 - mov r5, r8 -_08142252: - lsls r0, r6, #2 - adds r2, r5, r0 - ldr r0, [r2] - ands r0, r7 - cmp r0, #0 - beq _0814226A - ldr r1, [r4] - adds r1, #0x16 - adds r1, r1, r6 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_0814226A: - ldr r3, [r4] - adds r0, r3, #0 - adds r0, #0x16 - adds r0, r0, r6 - ldrb r0, [r0] - cmp r0, #3 - bls _08142280 - ldr r0, [r3, #8] - ldr r1, [r2] - orrs r0, r1 - str r0, [r3, #8] -_08142280: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #2 - bls _08142252 - mov r0, ip - add r0, sb - ldrb r0, [r0, #2] -_08142290: - add sp, #0x1c - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081422A0: .4byte gUnknown_203A854 -_081422A4: .4byte gUnknown_3005B60 -_081422A8: .4byte gUnknown_8595E90 -_081422AC: .4byte gUnknown_8595E94 - thumb_func_end sub_08142198 - - thumb_func_start sub_081422B0 -sub_081422B0: @ 0x081422B0 - push {lr} - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r2, r1, #0x18 - lsrs r3, r0, #0x18 - movs r1, #0xff - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - cmp r0, #0x12 - bhi _08142344 - cmp r2, #0xf - bhi _08142340 - lsls r0, r2, #2 - ldr r1, _081422D4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081422D4: .4byte _081422D8 -_081422D8: @ jump table - .4byte _08142318 @ case 0 - .4byte _0814231C @ case 1 - .4byte _0814231C @ case 2 - .4byte _0814231C @ case 3 - .4byte _0814231C @ case 4 - .4byte _08142330 @ case 5 - .4byte _08142340 @ case 6 - .4byte _08142340 @ case 7 - .4byte _08142340 @ case 8 - .4byte _08142340 @ case 9 - .4byte _08142330 @ case 10 - .4byte _08142340 @ case 11 - .4byte _08142340 @ case 12 - .4byte _08142340 @ case 13 - .4byte _08142340 @ case 14 - .4byte _08142330 @ case 15 -_08142318: - movs r0, #3 - b _08142346 -_0814231C: - adds r0, r2, #5 - cmp r3, r0 - beq _0814233C - adds r0, #5 - cmp r3, r0 - beq _0814233C - adds r0, #5 - cmp r3, r0 - bne _08142344 - b _0814233C -_08142330: - adds r0, r2, #1 - cmp r3, r0 - blt _08142344 - adds r0, r2, #4 - cmp r3, r0 - bgt _08142344 -_0814233C: - movs r0, #1 - b _08142346 -_08142340: - cmp r3, r2 - beq _0814233C -_08142344: - movs r0, #0 -_08142346: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081422B0 - - thumb_func_start sub_0814234C -sub_0814234C: @ 0x0814234C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r0, #0 - str r0, [sp, #0x18] - cmp r7, #0xa - beq _08142372 - cmp r7, #0xa - bgt _0814236E - cmp r7, #5 - beq _08142372 - b _081423D4 -_0814236E: - cmp r7, #0xf - bne _081423D4 -_08142372: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r2, r7, #5 - ldr r1, _081423C8 - mov ip, r1 - cmp r4, r2 - bge _081423B0 - ldr r0, [r1] - ldr r3, _081423CC - ldr r5, [r0, #8] - adds r6, r3, #0 - adds r6, #8 -_0814238C: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r1, r0, #2 - adds r0, r1, r6 - ldr r0, [r0] - ands r0, r5 - cmp r0, #0 - bne _081423A6 - adds r0, r1, r3 - ldrh r0, [r0, #0x10] - ldr r1, [sp, #0x18] - orrs r1, r0 - str r1, [sp, #0x18] -_081423A6: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r2 - blt _0814238C -_081423B0: - mov r2, ip - ldr r0, [r2] - adds r0, #0xb8 - ldr r1, _081423D0 - ldr r3, [sp, #0x18] - ands r3, r1 - str r3, [sp, #0x18] - adds r1, r3, #0 - bl sub_08151A24 - b _081425AA - .align 2, 0 -_081423C8: .4byte gUnknown_203A854 -_081423CC: .4byte gUnknown_8595D00 -_081423D0: .4byte 0x0000DFFF -_081423D4: - mov r0, sp - ldr r1, _08142424 - ldm r1!, {r2, r4, r5} - stm r0!, {r2, r4, r5} - ldm r1!, {r3, r4, r5} - stm r0!, {r3, r4, r5} - subs r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - mov sb, r1 - cmp r0, #3 - bhi _081423F2 - movs r2, #3 - mov sb, r2 -_081423F2: - adds r0, r7, #0 - movs r1, #5 - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #8 - ldr r3, _08142428 - adds r0, r0, r3 - lsrs r0, r0, #0x10 - mov r8, r0 - adds r0, r7, #0 - movs r1, #5 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - beq _08142458 - cmp r0, #2 - bgt _08142430 - cmp r0, #1 - beq _08142444 - ldr r4, _0814242C - mov ip, r4 - b _0814249C - .align 2, 0 -_08142424: .4byte gUnknown_8595F9C -_08142428: .4byte 0xFFFF0000 -_0814242C: .4byte gUnknown_203A854 -_08142430: - cmp r0, #3 - beq _0814246C - cmp r0, #4 - beq _08142480 - ldr r5, _08142440 - mov ip, r5 - b _0814249C - .align 2, 0 -_08142440: .4byte gUnknown_203A854 -_08142444: - ldr r3, _08142450 - ldr r2, _08142454 - ldr r0, [r2] - adds r0, #0x43 - b _08142488 - .align 2, 0 -_08142450: .4byte gUnknown_20205AC -_08142454: .4byte gUnknown_203A854 -_08142458: - ldr r3, _08142464 - ldr r2, _08142468 - ldr r0, [r2] - adds r0, #0x44 - b _08142488 - .align 2, 0 -_08142464: .4byte gUnknown_20205AC -_08142468: .4byte gUnknown_203A854 -_0814246C: - ldr r3, _08142478 - ldr r2, _0814247C - ldr r0, [r2] - adds r0, #0x45 - b _08142488 - .align 2, 0 -_08142478: .4byte gUnknown_20205AC -_0814247C: .4byte gUnknown_203A854 -_08142480: - ldr r3, _081424EC - ldr r2, _081424F0 - ldr r0, [r2] - adds r0, #0x46 -_08142488: - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r0, [r0, #5] - lsrs r0, r0, #4 - lsls r0, r0, #4 - mov r8, r0 - mov ip, r2 -_0814249C: - mov r0, sb - cmp r0, #1 - bne _081424F8 - mov r1, ip - ldr r4, [r1] - ldr r1, _081424F4 - lsls r2, r7, #2 - adds r0, r2, r7 - lsls r0, r0, #2 - adds r1, #8 - adds r0, r0, r1 - ldr r1, [r4, #8] - ldr r0, [r0] - ands r1, r0 - str r2, [sp, #0x1c] - cmp r1, #0 - bne _081425AA - adds r0, r7, #0 - movs r1, #5 - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r1, r0, #1 - lsls r1, r1, #3 - mov r3, sp - adds r2, r3, r1 - ldrh r1, [r2, #2] - add r1, r8 - strh r1, [r2, #2] - adds r1, r4, #0 - adds r1, #0xb8 - lsls r0, r0, #3 - subs r0, #8 - adds r2, r3, r0 - adds r0, r1, #0 - movs r1, #0xd - bl sub_08151668 - b _0814258C - .align 2, 0 -_081424EC: .4byte gUnknown_20205AC -_081424F0: .4byte gUnknown_203A854 -_081424F4: .4byte gUnknown_8595D00 -_081424F8: - movs r4, #0 - lsls r5, r7, #2 - str r5, [sp, #0x1c] - ldr r0, _081425BC - mov sl, r0 -_08142502: - lsls r0, r4, #2 - adds r0, r0, r4 - adds r0, r7, r0 - adds r0, #5 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - mov r1, ip - ldr r5, [r1] - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r6, r0, #2 - mov r0, sl - adds r0, #8 - adds r0, r6, r0 - ldr r1, [r5, #8] - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _08142578 - adds r0, r3, #0 - movs r1, #5 - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r1, r0, #1 - lsls r1, r1, #3 - mov r3, sp - adds r2, r3, r1 - ldrh r1, [r2, #2] - add r1, r8 - strh r1, [r2, #2] - adds r3, r5, #0 - adds r3, #0xb8 - adds r1, r4, #0 - adds r1, #0xd - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r0, #3 - subs r0, #8 - mov r5, sp - adds r2, r5, r0 - adds r0, r3, #0 - bl sub_08151668 - mov r0, sb - cmp r0, #3 - bne _0814256A - mov r1, sl - adds r0, r6, r1 - ldrh r0, [r0, #0x10] - str r0, [sp, #0x18] -_0814256A: - mov r0, sb - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldr r2, _081425C0 - mov ip, r2 -_08142578: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #2 - bls _08142502 - mov r3, sb - cmp r3, #2 - beq _0814258C - movs r4, #0 - str r4, [sp, #0x18] -_0814258C: - ldr r0, _081425C0 - ldr r0, [r0] - adds r0, #0xb8 - ldr r2, _081425BC - ldr r5, [sp, #0x1c] - adds r1, r5, r7 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r1, [r1, #0x10] - ldr r2, [sp, #0x18] - orrs r2, r1 - str r2, [sp, #0x18] - adds r1, r2, #0 - bl sub_08151A24 -_081425AA: - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081425BC: .4byte gUnknown_8595D00 -_081425C0: .4byte gUnknown_203A854 - thumb_func_end sub_0814234C - - thumb_func_start sub_081425C4 -sub_081425C4: @ 0x081425C4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x2c - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r4, _08142610 - ldr r1, [r4] - movs r0, #1 - strh r0, [r1, #0x2a] - movs r0, #0 - movs r1, #0 - bl sub_08142F3C - ldr r1, [r4] - ldr r2, _08142614 - adds r0, r1, r2 - ldr r2, _08142618 - adds r1, r1, r2 - ldr r1, [r1] - movs r2, #0x10 - str r2, [sp] - movs r2, #0xd - str r2, [sp, #4] - movs r2, #0xe - movs r3, #7 - bl sub_08152034 - cmp r5, #0xf - bhi _081426C4 - lsls r0, r5, #2 - ldr r1, _0814261C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08142610: .4byte gUnknown_203A854 -_08142614: .4byte 0x0000117C -_08142618: .4byte 0x0000397C -_0814261C: .4byte _08142620 -_08142620: @ jump table - .4byte _08142800 @ case 0 - .4byte _08142660 @ case 1 - .4byte _08142660 @ case 2 - .4byte _08142660 @ case 3 - .4byte _08142660 @ case 4 - .4byte _08142694 @ case 5 - .4byte _081426C4 @ case 6 - .4byte _081426C4 @ case 7 - .4byte _081426C4 @ case 8 - .4byte _081426C4 @ case 9 - .4byte _08142694 @ case 10 - .4byte _081426C4 @ case 11 - .4byte _081426C4 @ case 12 - .4byte _081426C4 @ case 13 - .4byte _081426C4 @ case 14 - .4byte _08142694 @ case 15 -_08142660: - movs r0, #4 - str r0, [sp, #0x18] - add r1, sp, #8 - movs r0, #0 - strb r0, [r1] - adds r0, r1, #0 - ldrb r0, [r0] - cmp r0, #3 - bhi _081426CC - add r4, sp, #0x10 - adds r3, r1, #0 -_08142676: - ldrb r2, [r3] - adds r2, r2, r4 - ldrb r1, [r3] - lsls r0, r1, #2 - adds r0, r0, r1 - adds r0, r5, r0 - strb r0, [r2] - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - ldrb r0, [r3] - ldr r1, [sp, #0x18] - cmp r0, r1 - blo _08142676 - b _081426CC -_08142694: - movs r2, #5 - str r2, [sp, #0x18] - add r1, sp, #8 - movs r0, #0 - strb r0, [r1] - adds r0, r1, #0 - ldrb r0, [r0] - cmp r0, #4 - bhi _081426CC - add r3, sp, #0x10 - adds r2, r1, #0 -_081426AA: - ldrb r1, [r2] - adds r1, r1, r3 - ldrb r0, [r2] - adds r0, r5, r0 - strb r0, [r1] - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - ldrb r0, [r2] - ldr r1, [sp, #0x18] - cmp r0, r1 - blo _081426AA - b _081426CC -_081426C4: - movs r2, #1 - str r2, [sp, #0x18] - add r0, sp, #0x10 - strb r5, [r0] -_081426CC: - add r1, sp, #8 - movs r0, #0 - strb r0, [r1] - adds r0, r1, #0 - ldrb r0, [r0] - ldr r1, [sp, #0x18] - cmp r0, r1 - blo _081426DE - b _08142800 -_081426DE: - mov r2, sp - adds r2, #0xe - str r2, [sp, #0x1c] - add r0, sp, #0x10 - mov sl, r0 - add r1, sp, #8 - mov sb, r1 - subs r2, #4 - str r2, [sp, #0x20] -_081426F0: - mov r1, sb - ldrb r0, [r1] - add r0, sl - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r2, _08142810 - adds r0, r0, r2 - ldrb r0, [r0, #6] - ldr r1, [sp, #0x1c] - strb r0, [r1] - mov r2, sb - ldrb r0, [r2] - add r0, sl - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08142810 - adds r0, r0, r1 - ldrb r0, [r0, #3] - ldr r2, [sp, #0x20] - strh r0, [r2] - mov r7, sp - adds r7, #9 - movs r0, #0 - strb r0, [r7] - ldrb r0, [r7] - cmp r0, #2 - bhi _081427EE - add r6, sp, #0xc - mov r8, r2 - ldr r0, [sp, #0x1c] - mov ip, r0 - ldr r1, _08142814 - str r1, [sp, #0x28] -_0814273A: - mov r2, sb - ldrb r0, [r2] - add r0, sl - ldrb r0, [r0] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _08142810 - adds r1, r1, r0 - str r7, [sp, #0x24] - ldrb r0, [r7] - ldrb r1, [r1, #4] - adds r0, r0, r1 - lsls r0, r0, #5 - strh r0, [r6] - ldr r1, [sp, #0x28] - ldr r4, [r1] - mov r2, r8 - ldrh r0, [r2] - ldrh r2, [r6] - adds r2, r2, r0 - lsls r2, r2, #1 - ldr r0, _08142818 - adds r5, r4, r0 - adds r2, r5, r2 - mov r1, ip - ldrb r0, [r1] - ldrb r1, [r7] - adds r1, r1, r0 - ldr r0, _0814281C - adds r4, r4, r0 - ldr r3, [r4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r0, r0, r3 - movs r1, #0xd0 - lsls r1, r1, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2] - mov r2, r8 - ldrh r0, [r2] - ldrh r2, [r6] - adds r2, r2, r0 - adds r2, #1 - lsls r2, r2, #1 - adds r2, r5, r2 - mov r1, ip - ldrb r0, [r1] - ldrb r1, [r7] - adds r1, r1, r0 - ldr r3, [r4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r0, r0, r3 - movs r1, #0xd1 - lsls r1, r1, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2] - mov r2, r8 - ldrh r1, [r2] - ldrh r0, [r6] - adds r0, r0, r1 - adds r0, #2 - lsls r0, r0, #1 - adds r5, r5, r0 - mov r1, ip - ldrb r0, [r1] - ldrb r1, [r7] - adds r1, r1, r0 - ldr r2, [r4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - movs r2, #0xd2 - lsls r2, r2, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r5] - ldrb r0, [r7] - adds r0, #1 - strb r0, [r7] - ldr r1, [sp, #0x24] - ldrb r0, [r1] - cmp r0, #2 - bls _0814273A -_081427EE: - mov r2, sb - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - ldrb r0, [r2] - ldr r1, [sp, #0x18] - cmp r0, r1 - bhs _08142800 - b _081426F0 -_08142800: - add sp, #0x2c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08142810: .4byte gUnknown_8595D00 -_08142814: .4byte gUnknown_203A854 -_08142818: .4byte 0x0000117C -_0814281C: .4byte 0x0000397C - thumb_func_end sub_081425C4 - - thumb_func_start sub_08142820 -sub_08142820: @ 0x08142820 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08142858 - mov r0, sp - movs r2, #5 - bl memcpy - cmp r4, #0x13 - bls _08142838 - movs r4, #0 -_08142838: - ldr r3, _0814285C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r2, r0, #2 - adds r0, r2, r3 - ldrb r0, [r0, #1] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - cmp r0, #4 - beq _0814288C - cmp r0, #4 - bgt _08142860 - cmp r0, #3 - beq _08142866 - b _081428D0 - .align 2, 0 -_08142858: .4byte gUnknown_8595FFC -_0814285C: .4byte gUnknown_8595D00 -_08142860: - cmp r0, #0xc - beq _081428B0 - b _081428D0 -_08142866: - adds r0, r4, #0 - movs r1, #5 - bl __udivsi3 - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _08142888 - ldr r0, [r0] - adds r0, #0x16 - adds r1, r0, r4 - ldrb r0, [r1] - cmp r0, #3 - bhi _081428D0 - ldrb r0, [r1] - adds r0, #1 - b _081428A4 - .align 2, 0 -_08142888: .4byte gUnknown_203A854 -_0814288C: - subs r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _081428AC - ldr r0, [r0] - adds r0, #0x12 - adds r1, r0, r4 - ldrb r0, [r1] - cmp r0, #2 - bhi _081428D0 - ldrb r0, [r1] - adds r0, #2 -_081428A4: - add r0, sp - ldrb r0, [r0] - b _081428D2 - .align 2, 0 -_081428AC: .4byte gUnknown_203A854 -_081428B0: - ldr r0, _081428CC - ldr r1, [r0] - adds r0, r3, #0 - adds r0, #8 - adds r0, r2, r0 - ldr r1, [r1, #8] - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _081428D0 - mov r0, sp - ldrb r0, [r0, #4] - b _081428D2 - .align 2, 0 -_081428CC: .4byte gUnknown_203A854 -_081428D0: - movs r0, #0 -_081428D2: - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08142820 - - thumb_func_start sub_081428DC -sub_081428DC: @ 0x081428DC - push {r4, r5, r6, lr} - ldr r4, _0814297C - ldr r0, [r4] - ldrh r1, [r0, #0x2c] - movs r0, #0x20 - bl SetGpuReg - ldr r0, [r4] - ldrh r1, [r0, #0x2e] - movs r0, #0x22 - bl SetGpuReg - ldr r0, [r4] - ldrh r1, [r0, #0x30] - movs r0, #0x24 - bl SetGpuReg - ldr r0, [r4] - ldrh r1, [r0, #0x32] - movs r0, #0x26 - bl SetGpuReg - ldr r3, [r4] - movs r0, #0x2e - ldrsh r1, [r3, r0] - ldr r0, _08142980 - movs r4, #0 - ldrsh r2, [r0, r4] - adds r2, #0x50 - adds r0, r1, #0 - muls r0, r2, r0 - movs r4, #0xe8 - lsls r4, r4, #7 - subs r4, r4, r0 - movs r6, #0x2c - ldrsh r5, [r3, r6] - ldr r0, _08142984 - movs r6, #0 - ldrsh r1, [r0, r6] - adds r1, #0x74 - adds r0, r5, #0 - muls r0, r1, r0 - subs r4, r4, r0 - movs r5, #0x32 - ldrsh r0, [r3, r5] - muls r0, r2, r0 - movs r5, #0xa8 - lsls r5, r5, #7 - subs r5, r5, r0 - movs r6, #0x30 - ldrsh r0, [r3, r6] - muls r0, r1, r0 - subs r5, r5, r0 - lsls r1, r4, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x28 - bl SetGpuReg - ldr r6, _08142988 - ands r4, r6 - lsrs r4, r4, #0x10 - movs r0, #0x2a - adds r1, r4, #0 - bl SetGpuReg - lsls r1, r5, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x2c - bl SetGpuReg - ands r5, r6 - lsrs r5, r5, #0x10 - movs r0, #0x2e - adds r1, r5, #0 - bl SetGpuReg - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0814297C: .4byte gUnknown_203A854 -_08142980: .4byte gUnknown_2021B3A -_08142984: .4byte gUnknown_2021B38 -_08142988: .4byte 0x0FFF0000 - thumb_func_end sub_081428DC - - thumb_func_start sub_0814298C -sub_0814298C: @ 0x0814298C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_08197714 - ldr r1, _081429A8 - adds r0, r4, #0 - bl DoYesNoFuncWithChoice - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081429A8: .4byte gUnknown_8595FBC - thumb_func_end sub_0814298C - - thumb_func_start sub_081429AC -sub_081429AC: @ 0x081429AC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _081429D8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081429D0 - movs r0, #0 - bl SetVBlankCallback - ldr r0, _081429DC - bl SetMainCallback2 - adds r0, r4, #0 - bl DestroyTask -_081429D0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081429D8: .4byte gUnknown_2037C74 -_081429DC: .4byte sub_08140694 - thumb_func_end sub_081429AC - - thumb_func_start sub_081429E0 -sub_081429E0: @ 0x081429E0 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - movs r1, #1 - bl sub_08197060 - bl HideCoinsWindow - bl FreeAllWindowBuffers - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r2, _08142A38 - ldrb r1, [r2, #8] - lsls r1, r1, #0x1a - lsrs r1, r1, #0x1a - ldrb r3, [r2, #4] - movs r0, #0x40 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #4] - bl UpdatePaletteFade - ldr r1, _08142A3C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08142A40 - str r1, [r0] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08142A38: .4byte gUnknown_2037C74 -_08142A3C: .4byte gUnknown_3005B60 -_08142A40: .4byte sub_081429AC - thumb_func_end sub_081429E0 - - thumb_func_start sub_08142A44 -sub_08142A44: @ 0x08142A44 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - movs r1, #0 - bl sub_08197060 - bl HideCoinsWindow - bl sub_080987E8 - adds r0, r4, #0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08142A44 - - thumb_func_start sub_08142A68 -sub_08142A68: @ 0x08142A68 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08142AAC - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #8] - adds r1, #1 - strh r1, [r0, #8] - ldr r0, _08142AB0 - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _08142AA6 - ldr r1, _08142AB4 - movs r0, #1 - strh r0, [r1] - bl HideCoinsWindow - movs r0, #0 - movs r1, #1 - bl sub_08197060 - bl sub_080987E8 - adds r0, r4, #0 - bl DestroyTask -_08142AA6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08142AAC: .4byte gUnknown_3005B60 -_08142AB0: .4byte gUnknown_3002360 -_08142AB4: .4byte gUnknown_2037280 - thumb_func_end sub_08142A68 - - thumb_func_start sub_08142AB8 -sub_08142AB8: @ 0x08142AB8 - push {r4, r5, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _08142B30 - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _08142B28 - ldr r2, _08142B34 - ldr r0, _08142B38 - ldrh r1, [r0] - movs r0, #1 - ands r0, r1 - lsrs r1, r1, #7 - lsls r1, r1, #1 - adds r0, r0, r1 - adds r0, r0, r2 - ldrb r1, [r0] - ldr r0, _08142B3C - movs r2, #2 - movs r3, #1 - bl sub_080089D8 - ldr r4, _08142B40 - ldr r1, _08142B44 - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #0 - movs r1, #0 - bl sub_08196FF0 - movs r0, #2 - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - movs r1, #1 - adds r2, r4, #0 - movs r3, #2 - bl AddTextPrinterParameterized - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - ldr r1, _08142B48 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08142B4C - str r1, [r0] -_08142B28: - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08142B30: .4byte gUnknown_3002360 -_08142B34: .4byte gUnknown_8595EF0 -_08142B38: .4byte gUnknown_2037280 -_08142B3C: .4byte gUnknown_2021C40 -_08142B40: .4byte gUnknown_2021C7C -_08142B44: .4byte gUnknown_8262CF3 -_08142B48: .4byte gUnknown_3005B60 -_08142B4C: .4byte sub_0814298C - thumb_func_end sub_08142AB8 - - thumb_func_start sub_08142B50 -sub_08142B50: @ 0x08142B50 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _08142BD8 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r6, r0, r1 - movs r1, #0x22 - ldrsh r0, [r6, r1] - bl sub_08145C20 - ldr r2, _08142BDC - ldr r7, _08142BE0 - ldrh r1, [r7] - movs r0, #1 - mov r8, r0 - ands r0, r1 - lsrs r1, r1, #7 - lsls r1, r1, #1 - adds r0, r0, r1 - adds r0, r0, r2 - ldrb r4, [r0] - ldr r0, _08142BE4 - adds r1, r4, #0 - movs r2, #2 - movs r3, #1 - bl sub_080089D8 - movs r1, #0x22 - ldrsh r0, [r6, r1] - cmp r0, r4 - blt _08142C40 - ldrh r1, [r7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08142BF0 - mov r0, r8 - ands r0, r1 - cmp r0, #0 - beq _08142BF0 - movs r0, #0 - movs r1, #0 - bl sub_08196FF0 - ldr r2, _08142BE8 - movs r0, #2 - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - movs r1, #1 - movs r3, #2 - bl AddTextPrinterParameterized - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - ldr r0, _08142BEC - str r0, [r6] - b _08142C7A - .align 2, 0 -_08142BD8: .4byte gUnknown_3005B60 -_08142BDC: .4byte gUnknown_8595EF0 -_08142BE0: .4byte gUnknown_2037280 -_08142BE4: .4byte gUnknown_2021C40 -_08142BE8: .4byte gUnknown_8262D23 -_08142BEC: .4byte sub_08142AB8 -_08142BF0: - ldr r4, _08142C30 - ldr r1, _08142C34 - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #0 - movs r1, #0 - bl sub_08196FF0 - movs r0, #2 - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - movs r1, #1 - adds r2, r4, #0 - movs r3, #2 - bl AddTextPrinterParameterized - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - ldr r1, _08142C38 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08142C3C - str r1, [r0] - b _08142C7A - .align 2, 0 -_08142C30: .4byte gUnknown_2021C7C -_08142C34: .4byte gUnknown_8262CF3 -_08142C38: .4byte gUnknown_3005B60 -_08142C3C: .4byte sub_0814298C -_08142C40: - ldr r5, _08142C88 - ldr r1, _08142C8C - adds r0, r5, #0 - bl StringExpandPlaceholders - movs r0, #0 - movs r1, #0 - bl sub_08196FF0 - movs r0, #2 - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r4, #0 - str r4, [sp, #8] - movs r0, #0 - movs r1, #1 - adds r2, r5, #0 - movs r3, #2 - bl AddTextPrinterParameterized - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - ldr r0, _08142C90 - str r0, [r6] - strh r4, [r6, #0x22] - strh r4, [r6, #8] -_08142C7A: - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08142C88: .4byte gUnknown_2021C7C -_08142C8C: .4byte gUnknown_8262D18 -_08142C90: .4byte sub_08142A68 - thumb_func_end sub_08142B50 - - thumb_func_start PlayRoulette -PlayRoulette: @ 0x08142C94 - push {r4, lr} - bl sub_080987DC - bl GetCoins - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - movs r2, #1 - bl sub_08145C6C - ldr r0, _08142CD0 - movs r1, #0 - bl CreateTask - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl GetCoins - ldr r2, _08142CD4 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r0, [r1, #0x22] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08142CD0: .4byte sub_08142B50 -_08142CD4: .4byte gUnknown_3005B60 - thumb_func_end PlayRoulette - - thumb_func_start sub_08142CD8 -sub_08142CD8: @ 0x08142CD8 - push {lr} - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08142D10 - bl FreeAllSpritePalettes - ldr r0, _08142D00 - bl LoadSpritePalettes - ldr r0, _08142D04 - bl LoadCompressedSpriteSheet - ldr r0, _08142D08 - bl LoadCompressedSpriteSheet - ldr r0, _08142D0C - bl LoadCompressedSpriteSheet - b _08142D26 - .align 2, 0 -_08142D00: .4byte gUnknown_8596F38 -_08142D04: .4byte gUnknown_8597418 -_08142D08: .4byte gUnknown_859752C -_08142D0C: .4byte gUnknown_85975F4 -_08142D10: - movs r0, #0xe - bl FreeSpriteTilesByTag - movs r0, #0xd - bl FreeSpriteTilesByTag - movs r0, #0xc - bl FreeSpriteTilesByTag - bl FreeAllSpritePalettes -_08142D26: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08142CD8 - - thumb_func_start sub_08142D2C -sub_08142D2C: @ 0x08142D2C - push {r4, r5, r6, lr} - adds r4, r1, #0 - adds r6, r2, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, [r0, #4] - ldrb r3, [r1] - movs r1, #0x74 - movs r2, #0x50 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - ldr r0, _08142D90 - lsls r1, r5, #4 - adds r1, r1, r5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r0, [r6] - strh r0, [r1, #0x2e] - strh r4, [r1, #0x30] - adds r3, r1, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r2, #2 - orrs r0, r2 - strb r0, [r3] - adds r1, #0x2c - ldrb r0, [r1] - movs r2, #0x40 - orrs r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r1] - ldrh r2, [r6] - adds r0, r2, #0 - adds r0, #0x1e - strh r0, [r6] - lsls r0, r0, #0x10 - ldr r1, _08142D94 - cmp r0, r1 - bls _08142D88 - ldr r1, _08142D98 - adds r0, r2, r1 - strh r0, [r6] -_08142D88: - adds r0, r5, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08142D90: .4byte gUnknown_20205AC -_08142D94: .4byte 0x01670000 -_08142D98: .4byte 0xFFFFFEB6 - thumb_func_end sub_08142D2C - - thumb_func_start sub_08142D9C -sub_08142D9C: @ 0x08142D9C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - ldr r4, _08142EE8 - ldr r0, [r4] - ldr r5, _08142EEC - adds r1, r5, #0 - bl LZ77UnCompWram - str r5, [sp] - mov r6, sp - ldrh r1, [r4, #6] - lsls r1, r1, #0x10 - ldrh r0, [r4, #4] - orrs r0, r1 - str r0, [sp, #4] - mov r0, sp - bl LoadSpriteSheet - ldr r4, _08142EF0 - ldr r0, [r4] - adds r1, r5, #0 - bl LZ77UnCompWram - str r5, [sp] - ldrh r0, [r4, #4] - strh r0, [r6, #4] - ldrh r0, [r4, #6] - strh r0, [r6, #6] - mov r0, sp - bl LoadSpriteSheet - movs r6, #0 - ldr r0, _08142EF4 - mov r8, r0 -_08142DE4: - lsls r0, r6, #1 - adds r0, r0, r6 - lsls r0, r0, #0x1b - lsrs r4, r0, #0x18 - movs r5, #0 - lsls r7, r6, #2 -_08142DF0: - lsls r1, r5, #1 - adds r1, r1, r5 - lsls r1, r1, #3 - ldr r0, _08142EF8 - adds r0, r1, r0 - adds r1, #0x94 - adds r2, r4, #0 - adds r2, #0x5c - movs r3, #0x1e - bl CreateSprite - ldr r1, _08142EFC - ldr r1, [r1] - adds r2, r5, #0 - adds r2, #0x1d - adds r2, r7, r2 - adds r1, #0x3c - adds r1, r1, r2 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - adds r0, #0x2c - ldrb r1, [r0] - movs r2, #0x40 - orrs r1, r2 - strb r1, [r0] - adds r0, r4, #0 - adds r0, #0x18 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x47 - bls _08142E3A - movs r4, #0 -_08142E3A: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #3 - bls _08142DF0 - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #2 - bls _08142DE4 - movs r6, #0 - ldr r4, _08142EF4 -_08142E52: - lsls r1, r6, #1 - adds r1, r1, r6 - lsls r1, r1, #3 - ldr r0, _08142F00 - adds r0, r1, r0 - adds r1, #0x94 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r2, #0x46 - movs r3, #0x1e - bl CreateSprite - ldr r1, _08142EFC - ldr r1, [r1] - adds r1, r1, r6 - adds r1, #0x65 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x2c - ldrb r1, [r0] - movs r2, #0x40 - orrs r1, r2 - strb r1, [r0] - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #3 - bls _08142E52 - movs r6, #0 - ldr r4, _08142EF4 -_08142E98: - lsls r2, r6, #1 - adds r2, r2, r6 - lsls r2, r2, #3 - ldr r0, _08142F04 - adds r0, r2, r0 - adds r2, #0x5c - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - movs r1, #0x7e - movs r3, #0x1e - bl CreateSprite - ldr r1, _08142EFC - ldr r1, [r1] - adds r1, r1, r6 - adds r1, #0x69 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x2c - ldrb r1, [r0] - movs r2, #0x40 - orrs r1, r2 - strb r1, [r0] - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #2 - bls _08142E98 - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08142EE8: .4byte gUnknown_859703C -_08142EEC: .4byte gUnknown_201C000 -_08142EF0: .4byte gUnknown_8597044 -_08142EF4: .4byte gUnknown_20205AC -_08142EF8: .4byte gUnknown_8597164 -_08142EFC: .4byte gUnknown_203A854 -_08142F00: .4byte gUnknown_85970BC -_08142F04: .4byte gUnknown_859711C - thumb_func_end sub_08142D9C - - thumb_func_start unref_sub_8142E3C -unref_sub_8142E3C: @ 0x08142F08 - push {r4, lr} - movs r4, #0 -_08142F0C: - ldr r0, _08142F34 - ldr r0, [r0] - adds r0, r0, r4 - adds r0, #0x59 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08142F38 - adds r0, r0, r1 - bl DestroySprite - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xb - bls _08142F0C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08142F34: .4byte gUnknown_203A854 -_08142F38: .4byte gUnknown_20205AC - thumb_func_end unref_sub_8142E3C - - thumb_func_start sub_08142F3C -sub_08142F3C: @ 0x08142F3C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov ip, r1 - cmp r0, #0 - beq _08142F8C - cmp r0, #1 - bne _08143032 - movs r4, #0 - ldr r5, _08142F84 - ldr r3, _08142F88 - movs r2, #4 -_08142F5E: - ldr r0, [r3] - adds r0, r0, r4 - adds r0, #0x59 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x12 - bls _08142F5E - b _08143032 - .align 2, 0 -_08142F84: .4byte gUnknown_20205AC -_08142F88: .4byte gUnknown_203A854 -_08142F8C: - movs r4, #0 - ldr r0, _08142FD4 - mov sb, r0 - ldr r7, _08142FD8 - adds r1, r7, #4 - mov r8, r1 - ldr r5, _08142FDC - movs r6, #5 - rsbs r6, r6, #0 -_08142F9E: - mov r0, sb - ldr r2, [r0] - lsls r3, r4, #3 - mov r1, r8 - adds r0, r3, r1 - ldr r1, [r2, #8] - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _08142FE0 - adds r0, r3, r7 - ldrb r0, [r0, #2] - cmp r0, ip - beq _08142FE0 - adds r0, r2, r4 - adds r0, #0x59 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - b _08142FF8 - .align 2, 0 -_08142FD4: .4byte gUnknown_203A854 -_08142FD8: .4byte gUnknown_8595E90 -_08142FDC: .4byte gUnknown_20205AC -_08142FE0: - adds r0, r2, r4 - adds r0, #0x59 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - adds r1, #0x3e - ldrb r2, [r1] - adds r0, r6, #0 - ands r0, r2 - strb r0, [r1] -_08142FF8: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xb - bls _08142F9E - cmp r4, #0x12 - bhi _08143032 - ldr r6, _08143040 - ldr r3, _08143044 - movs r5, #5 - rsbs r5, r5, #0 -_0814300E: - ldr r0, [r3] - adds r0, r0, r4 - adds r0, #0x59 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - adds r1, #0x3e - ldrb r2, [r1] - adds r0, r5, #0 - ands r0, r2 - strb r0, [r1] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x12 - bls _0814300E -_08143032: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08143040: .4byte gUnknown_20205AC -_08143044: .4byte gUnknown_203A854 - thumb_func_end sub_08142F3C - - thumb_func_start sub_08143048 -sub_08143048: @ 0x08143048 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r5, #0 - ldr r6, _081430F4 - ldr r4, _081430F8 - movs r0, #4 - mov r8, r0 -_08143058: - ldr r0, _081430FC - movs r1, #0x74 - movs r2, #0x14 - movs r3, #0xa - bl CreateSprite - ldr r1, [r6] - adds r3, r5, #0 - adds r3, #0x31 - adds r1, #0x3c - adds r1, r1, r3 - strb r0, [r1] - ldr r0, [r6] - adds r0, #0x3c - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r1, [r0] - mov r2, r8 - orrs r1, r2 - strb r1, [r0] - ldr r2, [r6] - adds r2, #0x3c - adds r2, r2, r3 - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #1 - strh r1, [r0, #0x2e] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _08143100 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r1, [r0, #5] - movs r7, #0xd - rsbs r7, r7, #0 - adds r2, r7, #0 - ands r1, r2 - mov r2, r8 - orrs r1, r2 - strb r1, [r0, #5] - ldr r0, [r6] - adds r0, #0x3c - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #8 - bl StartSpriteAnim - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #5 - bls _08143058 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081430F4: .4byte gUnknown_203A854 -_081430F8: .4byte gUnknown_20205AC -_081430FC: .4byte gUnknown_85974DC -_08143100: .4byte sub_081439D8 - thumb_func_end sub_08143048 - - thumb_func_start sub_08143104 -sub_08143104: @ 0x08143104 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sb, r1 - movs r6, #0 - cmp r0, #0 - beq _08143150 - ldr r4, _08143148 - ldr r3, _0814314C - movs r2, #4 -_08143122: - ldr r0, [r3] - adds r0, r0, r6 - adds r0, #0x6d - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #5 - bls _08143122 - b _0814320E - .align 2, 0 -_08143148: .4byte gUnknown_20205AC -_0814314C: .4byte gUnknown_203A854 -_08143150: - ldr r0, _08143190 - mov r8, r0 - ldr r7, _08143194 - ldr r0, _08143198 - mov ip, r0 - movs r0, #5 - rsbs r0, r0, #0 - mov sl, r0 -_08143160: - mov r0, r8 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0xc - adds r0, r0, r6 - ldrb r0, [r0] - cmp r0, #0 - beq _08143174 - cmp r6, sb - bne _0814319C -_08143174: - adds r0, r1, r6 - adds r0, #0x6d - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - b _08143204 - .align 2, 0 -_08143190: .4byte gUnknown_203A854 -_08143194: .4byte gUnknown_20205AC -_08143198: .4byte gUnknown_8595D00 -_0814319C: - adds r5, r6, #0 - adds r5, #0x31 - adds r0, r1, #0 - adds r0, #0x3c - adds r0, r0, r5 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r7 - adds r1, #0x3e - ldrb r2, [r1] - mov r0, sl - ands r0, r2 - strb r0, [r1] - mov r0, r8 - ldr r3, [r0] - adds r4, r3, #0 - adds r4, #0x3c - adds r4, r4, r5 - ldrb r0, [r4] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r7 - adds r3, #0xc - adds r3, r3, r6 - ldrb r1, [r3] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, ip - ldrb r0, [r0, #3] - adds r0, #1 - lsls r0, r0, #3 - adds r0, #4 - strh r0, [r2, #0x20] - ldrb r0, [r4] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r7 - ldrb r1, [r3] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, ip - ldrb r0, [r0, #4] - adds r0, #1 - lsls r0, r0, #3 - adds r0, #3 - strh r0, [r2, #0x22] -_08143204: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #5 - bls _08143160 -_0814320E: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08143104 - - thumb_func_start sub_0814321C -sub_0814321C: @ 0x0814321C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _0814324C - ldr r2, _08143244 - ldr r0, _08143248 - ldr r0, [r0] - adds r0, #0x6c - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - b _0814329C - .align 2, 0 -_08143244: .4byte gUnknown_20205AC -_08143248: .4byte gUnknown_203A854 -_0814324C: - ldr r4, _081432A4 - ldr r3, _081432A8 - ldr r0, [r3] - adds r0, #0x6c - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - ldr r3, [r3] - adds r3, #0x6c - ldrb r0, [r3] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldr r0, _081432AC - lsls r2, r5, #2 - adds r2, r2, r5 - lsls r2, r2, #2 - adds r2, r2, r0 - ldrb r0, [r2, #3] - adds r0, #2 - lsls r0, r0, #3 - strh r0, [r1, #0x20] - ldrb r0, [r3] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r0, [r2, #4] - adds r0, #2 - lsls r0, r0, #3 - strh r0, [r1, #0x22] -_0814329C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081432A4: .4byte gUnknown_20205AC -_081432A8: .4byte gUnknown_203A854 -_081432AC: .4byte gUnknown_8595D00 - thumb_func_end sub_0814321C - - thumb_func_start sub_081432B0 -sub_081432B0: @ 0x081432B0 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - ldr r4, _08143338 - ldr r0, [r4] - ldr r5, _0814333C - adds r1, r5, #0 - bl LZ77UnCompWram - str r5, [sp, #4] - add r0, sp, #4 - ldrh r2, [r4, #6] - lsls r2, r2, #0x10 - ldrh r1, [r4, #4] - orrs r1, r2 - str r1, [r0, #4] - bl LoadSpriteSheet - movs r1, #0xf - mov r0, sp - strh r1, [r0] - movs r0, #0 - ldr r7, _08143340 -_081432DC: - movs r4, #0 - adds r6, r0, #1 - lsls r5, r0, #2 -_081432E2: - adds r1, r5, r4 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - ldr r1, _08143344 - adds r0, r0, r1 - movs r1, #0x28 - mov r2, sp - bl sub_08142D2C - ldr r1, _08143348 - ldr r1, [r1] - adds r2, r4, #7 - adds r2, r5, r2 - adds r1, #0x3c - adds r1, r1, r2 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r7 - adds r1, #0x2c - ldrb r0, [r1] - movs r2, #0x40 - orrs r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r1] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _081432E2 - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bls _081432DC - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08143338: .4byte gUnknown_8596FD0 -_0814333C: .4byte gUnknown_201C000 -_08143340: .4byte gUnknown_20205AC -_08143344: .4byte gUnknown_85971C4 -_08143348: .4byte gUnknown_203A854 - thumb_func_end sub_081432B0 - - thumb_func_start sub_0814334C -sub_0814334C: @ 0x0814334C - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r0, _081433D0 - ldr r1, [r0] - ldrh r0, [r6, #0x2e] - ldrh r1, [r1, #0x24] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - asrs r1, r0, #0x10 - ldr r0, _081433D4 - cmp r1, r0 - ble _0814336E - ldr r2, _081433D8 - adds r0, r1, r2 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_0814336E: - adds r0, r4, #0 - bl Sin2 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r4, #0 - bl Cos2 - lsls r2, r5, #0x10 - asrs r2, r2, #0x10 - movs r3, #0x30 - ldrsh r1, [r6, r3] - muls r1, r2, r1 - asrs r1, r1, #0xc - strh r1, [r6, #0x24] - lsls r0, r0, #0x10 - asrs r4, r0, #0x10 - rsbs r1, r4, #0 - movs r3, #0x30 - ldrsh r0, [r6, r3] - muls r0, r1, r0 - asrs r0, r0, #0xc - strh r0, [r6, #0x26] - ldrb r0, [r6, #3] - lsls r0, r0, #0x1a - lsrs r3, r0, #0x1b - cmp r2, #0 - bge _081433A8 - adds r2, #0xf -_081433A8: - lsls r0, r2, #0xc - lsrs r5, r0, #0x10 - ldr r1, _081433DC - lsls r0, r3, #3 - adds r1, r0, r1 - adds r0, r4, #0 - cmp r0, #0 - bge _081433BA - adds r0, #0xf -_081433BA: - asrs r0, r0, #4 - strh r0, [r1, #6] - strh r0, [r1] - strh r5, [r1, #2] - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - rsbs r0, r0, #0 - strh r0, [r1, #4] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081433D0: .4byte gUnknown_203A854 -_081433D4: .4byte 0x00000167 -_081433D8: .4byte 0xFFFFFE98 -_081433DC: .4byte gUnknown_2021B3C - thumb_func_end sub_0814334C - - thumb_func_start sub_081433E0 -sub_081433E0: @ 0x081433E0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - movs r5, #0 - ldr r7, _081435B4 - mov r6, sp -_081433EE: - ldr r0, _081435B8 - lsls r4, r5, #3 - adds r4, r4, r0 - ldr r0, [r4] - adds r1, r7, #0 - bl LZ77UnCompWram - str r7, [sp] - ldrh r2, [r4, #4] - ldr r0, _081435BC - ldr r1, [r6, #4] - ands r1, r0 - orrs r1, r2 - str r1, [r6, #4] - ldrh r2, [r4, #6] - lsls r2, r2, #0x10 - ldr r0, _081435C0 - ands r0, r1 - orrs r0, r2 - str r0, [r6, #4] - mov r0, sp - bl LoadSpriteSheet - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #4 - bls _081433EE - ldr r0, _081435C4 - movs r1, #0xd0 - movs r2, #0x10 - movs r3, #4 - bl CreateSprite - ldr r3, _081435C8 - ldr r1, [r3] - adds r1, #0x50 - strb r0, [r1] - ldr r4, _081435CC - ldr r0, [r3] - adds r0, #0x50 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x2c - ldrb r1, [r0] - movs r2, #0x40 - orrs r1, r2 - strb r1, [r0] - movs r5, #0 - adds r7, r3, #0 -_08143458: - lsls r1, r5, #0x13 - movs r0, #0xc4 - lsls r0, r0, #0x10 - adds r1, r1, r0 - asrs r1, r1, #0x10 - ldr r0, _081435D0 - movs r2, #0x18 - movs r3, #0 - bl CreateSprite - ldr r1, [r7] - adds r3, r5, #0 - adds r3, #0x15 - adds r1, #0x3c - adds r1, r1, r3 - strb r0, [r1] - ldr r0, [r7] - adds r0, #0x3c - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r7] - adds r0, #0x3c - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x2c - ldrb r1, [r0] - movs r6, #0x40 - orrs r1, r6 - strb r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #3 - bls _08143458 - ldr r0, _081435D4 - movs r1, #0x78 - movs r2, #0x44 - movs r3, #4 - bl CreateSprite - ldr r2, _081435C8 - ldr r1, [r2] - adds r1, #0x55 - strb r0, [r1] - ldr r3, _081435CC - ldr r0, [r2] - adds r0, #0x55 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x2c - ldrb r1, [r0] - orrs r1, r6 - strb r1, [r0] - movs r5, #0 - adds r4, r2, #0 - adds r7, r3, #0 -_081434E8: - lsls r1, r5, #0x14 - movs r2, #0xc0 - lsls r2, r2, #0x10 - adds r1, r1, r2 - asrs r1, r1, #0x10 - ldr r0, _081435D8 - movs r2, #0x24 - movs r3, #4 - bl CreateSprite - ldr r1, [r4] - adds r2, r5, #0 - adds r2, #0x1a - adds r1, #0x3c - adds r1, r1, r2 - strb r0, [r1] - ldr r0, [r4] - adds r0, #0x3c - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - adds r0, #0x3e - ldrb r1, [r0] - movs r3, #4 - mov r8, r3 - mov r3, r8 - orrs r1, r3 - strb r1, [r0] - ldr r0, [r4] - adds r0, #0x3c - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - adds r0, #0x2c - ldrb r1, [r0] - movs r6, #0x40 - orrs r1, r6 - strb r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #2 - bls _081434E8 - ldr r0, _081435DC - movs r1, #0x98 - movs r2, #0x60 - movs r3, #9 - bl CreateSprite - ldr r3, _081435C8 - ldr r1, [r3] - adds r1, #0x6c - strb r0, [r1] - ldr r4, _081435CC - ldr r0, [r3] - adds r0, #0x6c - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r2, [r1, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - mov r2, r8 - orrs r0, r2 - strb r0, [r1, #5] - ldr r0, [r3] - adds r0, #0x6c - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x2c - ldrb r1, [r0] - orrs r1, r6 - strb r1, [r0] - ldr r0, [r3] - adds r0, #0x6c - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081435B4: .4byte gUnknown_201C000 -_081435B8: .4byte gUnknown_8597304 -_081435BC: .4byte 0xFFFF0000 -_081435C0: .4byte 0x0000FFFF -_081435C4: .4byte gUnknown_8597398 -_081435C8: .4byte gUnknown_203A854 -_081435CC: .4byte gUnknown_20205AC -_081435D0: .4byte gUnknown_85973B0 -_081435D4: .4byte gUnknown_85973C8 -_081435D8: .4byte gUnknown_85973E0 -_081435DC: .4byte gUnknown_85973F8 - thumb_func_end sub_081433E0 - - thumb_func_start sub_081435E0 -sub_081435E0: @ 0x081435E0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - movs r0, #0xfa - lsls r0, r0, #2 - mov r8, r0 - movs r4, #0 - movs r6, #0 - ldr r1, _081436CC - mov sb, r1 - ldr r0, _081436D0 - mov sl, r0 -_08143600: - adds r0, r7, #0 - mov r1, r8 - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _081436D0 - ldr r0, [r1] - adds r3, r6, #0 - adds r3, #0x15 - adds r0, #0x3c - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _081436CC - adds r0, r0, r1 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - cmp r5, #0 - bne _0814363A - cmp r4, #0 - bne _0814363A - cmp r6, #3 - bne _08143698 -_0814363A: - mov r4, sl - ldr r0, [r4] - adds r0, #0x3c - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sb - adds r0, #0x3e - ldrb r1, [r0] - movs r4, #5 - rsbs r4, r4, #0 - adds r2, r4, #0 - ands r1, r2 - strb r1, [r0] - mov r1, sl - ldr r0, [r1] - adds r0, #0x3c - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - mov r4, sb - adds r3, r0, r4 - adds r4, r3, #0 - adds r4, #0x40 - ldr r1, _081436D4 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r5, #2 - adds r0, r0, r1 - ldrh r2, [r0] - ldrh r4, [r4] - adds r2, r2, r4 - ldr r4, _081436D8 - adds r0, r4, #0 - ands r2, r0 - ldrh r0, [r3, #4] - ldr r4, _081436DC - adds r1, r4, #0 - ands r0, r1 - orrs r0, r2 - strh r0, [r3, #4] - movs r4, #1 -_08143698: - adds r0, r7, #0 - mov r1, r8 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - mov r0, r8 - movs r1, #0xa - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #3 - bls _08143600 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081436CC: .4byte gUnknown_20205AC -_081436D0: .4byte gUnknown_203A854 -_081436D4: .4byte gUnknown_20205B4 -_081436D8: .4byte 0x000003FF -_081436DC: .4byte 0xFFFFFC00 - thumb_func_end sub_081435E0 - - thumb_func_start sub_081436E0 -sub_081436E0: @ 0x081436E0 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08143718 - mov r0, sp - movs r2, #5 - bl memcpy - cmp r4, #0x13 - bls _081436F8 - movs r4, #0 -_081436F8: - ldr r3, _0814371C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r2, r0, #2 - adds r0, r2, r3 - ldrb r0, [r0, #1] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - cmp r0, #4 - beq _0814374C - cmp r0, #4 - bgt _08143720 - cmp r0, #3 - beq _08143726 - b _08143790 - .align 2, 0 -_08143718: .4byte gUnknown_85976B8 -_0814371C: .4byte gUnknown_8595D00 -_08143720: - cmp r0, #0xc - beq _08143770 - b _08143790 -_08143726: - adds r0, r4, #0 - movs r1, #5 - bl __udivsi3 - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _08143748 - ldr r0, [r0] - adds r0, #0x16 - adds r1, r0, r4 - ldrb r0, [r1] - cmp r0, #3 - bhi _08143790 - ldrb r0, [r1] - adds r0, #1 - b _08143764 - .align 2, 0 -_08143748: .4byte gUnknown_203A854 -_0814374C: - subs r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0814376C - ldr r0, [r0] - adds r0, #0x12 - adds r1, r0, r4 - ldrb r0, [r1] - cmp r0, #2 - bhi _08143790 - ldrb r0, [r1] - adds r0, #2 -_08143764: - add r0, sp - ldrb r0, [r0] - b _08143792 - .align 2, 0 -_0814376C: .4byte gUnknown_203A854 -_08143770: - ldr r0, _0814378C - ldr r1, [r0] - adds r0, r3, #0 - adds r0, #8 - adds r0, r2, r0 - ldr r1, [r1, #8] - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _08143790 - mov r0, sp - ldrb r0, [r0, #4] - b _08143792 - .align 2, 0 -_0814378C: .4byte gUnknown_203A854 -_08143790: - movs r0, #0 -_08143792: - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081436E0 - - thumb_func_start sub_0814379C -sub_0814379C: @ 0x0814379C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081437E8 - ldr r1, [r1] - adds r1, #0x55 - ldrb r2, [r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - ldr r2, _081437EC - adds r4, r1, r2 - bl sub_081436E0 - adds r3, r4, #0 - adds r3, #0x2b - strb r0, [r3] - adds r2, r4, #0 - adds r2, #0x40 - ldr r1, [r4, #8] - ldrb r0, [r3] - ldr r1, [r1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r1, [r0] - ldrh r2, [r2] - adds r1, r1, r2 - ldr r2, _081437F0 - adds r0, r2, #0 - ands r1, r0 - ldrh r2, [r4, #4] - ldr r0, _081437F4 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, #4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081437E8: .4byte gUnknown_203A854 -_081437EC: .4byte gUnknown_20205AC -_081437F0: .4byte 0x000003FF -_081437F4: .4byte 0xFFFFFC00 - thumb_func_end sub_0814379C - - thumb_func_start sub_081437F8 -sub_081437F8: @ 0x081437F8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - movs r6, #0 - ldr r1, _08143824 - ldr r0, [r1] - ldrb r0, [r0, #0x19] - adds r5, r1, #0 - cmp r0, #1 - bne _08143812 - movs r6, #2 -_08143812: - cmp r2, #6 - bls _08143818 - b _08143974 -_08143818: - lsls r0, r2, #2 - ldr r1, _08143828 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08143824: .4byte gUnknown_203A854 -_08143828: .4byte _0814382C -_0814382C: @ jump table - .4byte _08143974 @ case 0 - .4byte _08143930 @ case 1 - .4byte _08143908 @ case 2 - .4byte _081438FC @ case 3 - .4byte _081438D4 @ case 4 - .4byte _081438C8 @ case 5 - .4byte _08143848 @ case 6 -_08143848: - movs r4, #0 - ldr r5, _081438B8 - ldr r6, _081438BC - movs r0, #5 - rsbs r0, r0, #0 - mov ip, r0 - adds r7, r5, #0 - adds r7, #8 - ldr r2, _081438C0 - mov r8, r2 -_0814385C: - ldr r0, [r6] - adds r3, r4, #0 - adds r3, #0x1a - adds r0, #0x3c - adds r0, r0, r3 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - adds r1, #0x3e - ldrb r2, [r1] - mov r0, ip - ands r0, r2 - strb r0, [r1] - ldr r0, [r6] - adds r0, #0x3c - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r3, r0, r5 - adds r2, r3, #0 - adds r2, #0x40 - adds r0, r0, r7 - ldr r0, [r0] - ldr r0, [r0] - ldrh r1, [r0] - ldrh r2, [r2] - adds r1, r1, r2 - ldr r2, _081438C4 - adds r0, r2, #0 - ands r1, r0 - ldrh r2, [r3, #4] - mov r0, r8 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, #4] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #2 - bls _0814385C - b _081439C0 - .align 2, 0 -_081438B8: .4byte gUnknown_20205AC -_081438BC: .4byte gUnknown_203A854 -_081438C0: .4byte 0xFFFFFC00 -_081438C4: .4byte 0x000003FF -_081438C8: - ldr r2, _081438D0 - ldr r0, [r5] - adds r0, #0x58 - b _08143936 - .align 2, 0 -_081438D0: .4byte gUnknown_20205AC -_081438D4: - ldr r2, _081438F8 - ldr r0, [r5] - adds r0, #0x58 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r3, r0, r2 - adds r4, r3, #0 - adds r4, #0x40 - adds r2, #8 - adds r0, r0, r2 - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r6, #2 - adds r0, r0, r1 - ldrh r1, [r0, #8] - b _08143952 - .align 2, 0 -_081438F8: .4byte gUnknown_20205AC -_081438FC: - ldr r2, _08143904 - ldr r0, [r5] - adds r0, #0x57 - b _08143936 - .align 2, 0 -_08143904: .4byte gUnknown_20205AC -_08143908: - ldr r2, _0814392C - ldr r0, [r5] - adds r0, #0x57 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r3, r0, r2 - adds r4, r3, #0 - adds r4, #0x40 - adds r2, #8 - adds r0, r0, r2 - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r6, #2 - adds r0, r0, r1 - ldrh r1, [r0, #8] - b _08143952 - .align 2, 0 -_0814392C: .4byte gUnknown_20205AC -_08143930: - ldr r2, _08143968 - ldr r0, [r5] - adds r0, #0x56 -_08143936: - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r3, r0, r2 - adds r4, r3, #0 - adds r4, #0x40 - adds r2, #8 - adds r0, r0, r2 - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r6, #2 - adds r0, r0, r1 - ldrh r1, [r0, #4] -_08143952: - ldrh r4, [r4] - adds r1, r1, r4 - ldr r2, _0814396C - adds r0, r2, #0 - ands r1, r0 - ldrh r2, [r3, #4] - ldr r0, _08143970 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, #4] - b _081439C0 - .align 2, 0 -_08143968: .4byte gUnknown_20205AC -_0814396C: .4byte 0x000003FF -_08143970: .4byte 0xFFFFFC00 -_08143974: - movs r4, #0 - lsls r7, r6, #2 - ldr r6, _081439CC - movs r0, #8 - adds r0, r0, r6 - mov ip, r0 - ldr r2, _081439D0 - mov r8, r2 -_08143984: - ldr r0, [r5] - adds r0, r0, r4 - adds r0, #0x56 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r3, r0, r6 - adds r2, r3, #0 - adds r2, #0x40 - add r0, ip - ldr r0, [r0] - ldr r0, [r0] - adds r0, r7, r0 - ldrh r1, [r0, #8] - ldrh r2, [r2] - adds r1, r1, r2 - ldr r2, _081439D4 - adds r0, r2, #0 - ands r1, r0 - ldrh r2, [r3, #4] - mov r0, r8 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, #4] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #2 - bls _08143984 -_081439C0: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081439CC: .4byte gUnknown_20205AC -_081439D0: .4byte 0xFFFFFC00 -_081439D4: .4byte 0x000003FF - thumb_func_end sub_081437F8 - - thumb_func_start sub_081439D8 -sub_081439D8: @ 0x081439D8 - ldr r1, _081439E4 - ldr r1, [r1] - ldrh r1, [r1, #0x26] - strh r1, [r0, #0x24] - bx lr - .align 2, 0 -_081439E4: .4byte gUnknown_203A854 - thumb_func_end sub_081439D8 - - thumb_func_start sub_081439E8 -sub_081439E8: @ 0x081439E8 - push {r4, r5, lr} - sub sp, #8 - ldr r4, _08143A54 - ldr r0, [r4] - ldr r5, _08143A58 - adds r1, r5, #0 - bl LZ77UnCompWram - str r5, [sp] - ldrh r1, [r4, #6] - lsls r1, r1, #0x10 - ldrh r0, [r4, #4] - orrs r0, r1 - str r0, [sp, #4] - mov r0, sp - bl LoadSpriteSheet - ldr r0, _08143A5C - movs r1, #0x74 - movs r2, #0x50 - movs r3, #0x51 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08143A60 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r0, _08143A64 - ldr r0, [r0] - ldrh r0, [r0, #0x24] - movs r2, #0 - strh r0, [r1, #0x2e] - strh r2, [r1, #0x30] - adds r3, r1, #0 - adds r3, #0x2c - ldrb r0, [r3] - movs r2, #0x40 - orrs r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r3] - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #2 - orrs r0, r2 - strb r0, [r1] - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08143A54: .4byte gUnknown_85974FC -_08143A58: .4byte gUnknown_201C000 -_08143A5C: .4byte gUnknown_8597504 -_08143A60: .4byte gUnknown_20205AC -_08143A64: .4byte gUnknown_203A854 - thumb_func_end sub_081439E8 - - thumb_func_start sub_08143A68 -sub_08143A68: @ 0x08143A68 - ldrb r0, [r0, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - ldr r1, _08143A8C - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08143A90 - ldr r2, [r1] - ldrh r1, [r2, #0x2c] - strh r1, [r0, #6] - ldrh r1, [r2, #0x2c] - strh r1, [r0] - ldrh r1, [r2, #0x2e] - strh r1, [r0, #2] - ldrh r1, [r2, #0x30] - strh r1, [r0, #4] - bx lr - .align 2, 0 -_08143A8C: .4byte gUnknown_2021B3C -_08143A90: .4byte gUnknown_203A854 - thumb_func_end sub_08143A68 - - thumb_func_start sub_08143A94 -sub_08143A94: @ 0x08143A94 - push {r4, r5, r6, lr} - movs r4, #0 - ldr r5, _08143B00 - ldr r6, _08143B04 -_08143A9C: - movs r3, #0x39 - subs r3, r3, r4 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r0, _08143B08 - movs r1, #0x74 - movs r2, #0x50 - bl CreateSprite - ldr r1, [r5] - adds r1, #0x3c - adds r1, r1, r4 - strb r0, [r1] - ldr r0, [r5] - adds r0, #0x3c - adds r1, r0, r4 - ldrb r0, [r1] - cmp r0, #0x40 - beq _08143AF0 - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r5] - adds r0, #0x3c - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #2 - orrs r1, r2 - strb r1, [r0] -_08143AF0: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #5 - bls _08143A9C - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08143B00: .4byte gUnknown_203A854 -_08143B04: .4byte gUnknown_20205AC -_08143B08: .4byte gUnknown_85974DC - thumb_func_end sub_08143A94 - - thumb_func_start sub_08143B0C -sub_08143B0C: @ 0x08143B0C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _08143B88 - ldr r0, [r0] - adds r0, #0x3c - ldrb r5, [r0] - movs r6, #0 - ldr r7, _08143B8C - movs r0, #0x1c - adds r0, r0, r7 - mov sl, r0 - movs r1, #0x2e - adds r1, r1, r7 - mov sb, r1 - mov r8, r6 -_08143B30: - lsls r4, r5, #4 - adds r4, r4, r5 - lsls r4, r4, #2 - adds r0, r4, r7 - adds r3, r0, #0 - adds r3, #0x3e - ldrb r1, [r3] - movs r2, #4 - orrs r1, r2 - strb r1, [r3] - mov r1, sl - adds r2, r4, r1 - ldr r1, _08143B90 - str r1, [r2] - movs r1, #0 - bl StartSpriteAnim - movs r1, #0 - adds r2, r5, #1 - adds r3, r6, #1 -_08143B58: - lsls r0, r1, #1 - adds r0, r0, r4 - add r0, sb - mov r5, r8 - strh r5, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #7 - bls _08143B58 - lsls r0, r2, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r3, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #5 - bls _08143B30 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08143B88: .4byte gUnknown_203A854 -_08143B8C: .4byte gUnknown_20205AC -_08143B90: .4byte sub_08007140 - thumb_func_end sub_08143B0C - - thumb_func_start sub_08143B94 -sub_08143B94: @ 0x08143B94 - push {r4, r5, lr} - adds r3, r0, #0 - ldr r0, _08143BC4 - ldr r0, [r0] - ldrh r4, [r0, #0x24] - movs r2, #0x24 - ldrsh r1, [r0, r2] - ldrh r2, [r3, #0x34] - movs r5, #0x34 - ldrsh r0, [r3, r5] - cmp r1, r0 - ble _08143BD0 - movs r1, #0xb4 - lsls r1, r1, #1 - adds r0, r2, r1 - subs r2, r0, r4 - strh r2, [r3, #0x3a] - lsls r1, r2, #0x10 - ldr r0, _08143BC8 - cmp r1, r0 - ble _08143BD4 - ldr r5, _08143BCC - adds r0, r2, r5 - b _08143BD2 - .align 2, 0 -_08143BC4: .4byte gUnknown_203A854 -_08143BC8: .4byte 0x01670000 -_08143BCC: .4byte 0xFFFFFE98 -_08143BD0: - subs r0, r2, r4 -_08143BD2: - strh r0, [r3, #0x3a] -_08143BD4: - movs r1, #0x3a - ldrsh r0, [r3, r1] - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08143B94 - - thumb_func_start sub_08143BE0 -sub_08143BE0: @ 0x08143BE0 - push {r4, r5, lr} - bl sub_08143B94 - ldr r5, _08143C0C - ldr r4, [r5] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - bl __floatsisf - ldr r1, _08143C10 - bl __divsf3 - bl __fixunssfsi - adds r4, #0x7e - strb r0, [r4] - ldr r0, [r5] - adds r0, #0x7e - ldrb r0, [r0] - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08143C0C: .4byte gUnknown_203A854 -_08143C10: .4byte 0x41F00000 - thumb_func_end sub_08143BE0 - - thumb_func_start sub_08143C14 -sub_08143C14: @ 0x08143C14 - push {r4, lr} - adds r4, r0, #0 - bl sub_08143B94 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x1e - bl __modsi3 - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - cmp r1, #0xe - bne _08143C34 - movs r0, #0 - strh r0, [r4, #0x32] - b _08143C4A -_08143C34: - cmp r1, #0xd - bgt _08143C3C - movs r0, #0xe - b _08143C3E -_08143C3C: - movs r0, #0x2b -_08143C3E: - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 -_08143C4A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_08143C14 - - thumb_func_start sub_08143C50 -sub_08143C50: @ 0x08143C50 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - ldr r5, _08143C98 - ldr r6, [r5] - adds r4, r6, #0 - adds r4, #0x8c - adds r1, r6, #0 - adds r1, #0x90 - ldr r0, [r4] - ldr r1, [r1] - bl __addsf3 - adds r1, r0, #0 - str r1, [r4] - subs r4, #4 - ldr r0, [r4] - bl __addsf3 - adds r6, r0, #0 - str r6, [r4] - ldr r0, _08143C9C - mov r8, r0 - adds r0, r6, #0 - mov r1, r8 - bl __gesf2 - cmp r0, #0 - blt _08143CA0 - adds r0, r6, #0 - mov r1, r8 - bl __subsf3 - b _08143CB4 - .align 2, 0 -_08143C98: .4byte gUnknown_203A854 -_08143C9C: .4byte 0x43B40000 -_08143CA0: - ldr r1, _08143D4C - adds r0, r6, #0 - bl __ltsf2 - cmp r0, #0 - bge _08143CB6 - adds r0, r6, #0 - mov r1, r8 - bl __addsf3 -_08143CB4: - str r0, [r4] -_08143CB6: - ldr r5, [r5] - adds r0, r5, #0 - adds r0, #0x88 - ldr r0, [r0] - bl __fixsfsi - strh r0, [r7, #0x34] - adds r4, r5, #0 - adds r4, #0x98 - adds r1, r5, #0 - adds r1, #0x9c - ldr r0, [r4] - ldr r1, [r1] - bl __addsf3 - adds r1, r0, #0 - str r1, [r4] - subs r4, #4 - ldr r0, [r4] - bl __addsf3 - str r0, [r4] - bl __fixsfsi - strh r0, [r7, #0x36] - ldrh r0, [r7, #0x34] - bl Sin2 - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldrh r0, [r7, #0x34] - bl Cos2 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - movs r2, #0x36 - ldrsh r1, [r7, r2] - muls r1, r4, r1 - asrs r1, r1, #0xc - strh r1, [r7, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - rsbs r0, r0, #0 - movs r2, #0x36 - ldrsh r1, [r7, r2] - muls r0, r1, r0 - asrs r0, r0, #0xc - strh r0, [r7, #0x26] - bl IsSEPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08143D40 - ldr r0, _08143D50 - ldr r4, _08143D54 - ldrh r2, [r7, #0x24] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - adds r1, r4, #0 - bl m4aMPlayPanpotControl - ldr r0, _08143D58 - ldrh r2, [r7, #0x24] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - adds r1, r4, #0 - bl m4aMPlayPanpotControl -_08143D40: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08143D4C: .4byte 0x00000000 -_08143D50: .4byte gUnknown_3007510 -_08143D54: .4byte 0x0000FFFF -_08143D58: .4byte gUnknown_3007550 - thumb_func_end sub_08143C50 - - thumb_func_start sub_08143D5C -sub_08143D5C: @ 0x08143D5C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _08143DB8 - ldr r1, [r0] - ldrh r0, [r5, #0x3a] - ldrh r1, [r1, #0x24] - adds r2, r0, r1 - strh r2, [r5, #0x34] - lsls r1, r2, #0x10 - ldr r0, _08143DBC - cmp r1, r0 - ble _08143D7A - ldr r1, _08143DC0 - adds r0, r2, r1 - strh r0, [r5, #0x34] -_08143D7A: - ldrh r0, [r5, #0x34] - bl Sin2 - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldrh r0, [r5, #0x34] - bl Cos2 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - movs r2, #0x36 - ldrsh r1, [r5, r2] - muls r1, r4, r1 - asrs r1, r1, #0xc - strh r1, [r5, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - rsbs r0, r0, #0 - movs r2, #0x36 - ldrsh r1, [r5, r2] - muls r0, r1, r0 - ldr r1, _08143DC4 - asrs r0, r0, #0xc - ldrh r1, [r1] - adds r0, r0, r1 - strh r0, [r5, #0x26] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08143DB8: .4byte gUnknown_203A854 -_08143DBC: .4byte 0x01670000 -_08143DC0: .4byte 0xFFFFFE98 -_08143DC4: .4byte gUnknown_2021B3A - thumb_func_end sub_08143D5C - - thumb_func_start sub_08143DC8 -sub_08143DC8: @ 0x08143DC8 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - bl sub_08143C50 - ldrh r0, [r5, #0x32] - adds r0, #1 - strh r0, [r5, #0x32] - ldrh r0, [r5, #0x36] - adds r0, #0x84 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xd4 - bls _08143DEE - adds r2, r5, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - b _08143DFA -_08143DEE: - adds r2, r5, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 -_08143DFA: - strb r0, [r2] - movs r1, #0x32 - ldrsh r0, [r5, r1] - cmp r0, #0x1d - ble _08143EC4 - movs r1, #0x2e - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _08143E38 - ldr r7, _08143E30 - ldr r6, [r7] - adds r4, r6, #0 - adds r4, #0x94 - adds r0, r6, #0 - adds r0, #0xa0 - ldr r0, [r0] - ldr r1, _08143E34 - bl __subsf3 - adds r1, r0, #0 - ldr r0, [r4] - bl __lesf2 - cmp r0, #0 - bgt _08143EC4 - b _08143E58 - .align 2, 0 -_08143E30: .4byte gUnknown_203A854 -_08143E34: .4byte 0x40000000 -_08143E38: - ldr r7, _08143ECC - ldr r6, [r7] - adds r4, r6, #0 - adds r4, #0x94 - adds r0, r6, #0 - adds r0, #0xa0 - ldr r0, [r0] - ldr r1, _08143ED0 - bl __subsf3 - adds r1, r0, #0 - ldr r0, [r4] - bl __gesf2 - cmp r0, #0 - blt _08143EC4 -_08143E58: - adds r1, r6, #0 - adds r1, #0x7d - movs r0, #0xff - strb r0, [r1] - ldr r2, [r7] - ldrb r1, [r2, #3] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #3] - adds r0, r5, #0 - adds r0, #0x2b - ldrb r1, [r0] - adds r1, #3 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl StartSpriteAnim - adds r0, r5, #0 - bl sub_08143BE0 - movs r0, #0x1e - strh r0, [r5, #0x36] - adds r0, r5, #0 - bl sub_08143B94 - movs r1, #0x3a - ldrsh r0, [r5, r1] - movs r1, #0x1e - bl __divsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r1, r0, #4 - subs r1, r1, r0 - lsls r1, r1, #1 - adds r1, #0xf - strh r1, [r5, #0x3a] - ldr r0, _08143ED4 - str r0, [r5, #0x1c] - movs r0, #0x47 - bl m4aSongNumStartOrChange - ldr r3, [r7] - adds r2, r3, #0 - adds r2, #0x9c - adds r1, r3, #0 - adds r1, #0x98 - ldr r0, _08143ED8 - str r0, [r1] - str r0, [r2] - subs r1, #0xc - ldr r0, _08143EDC - str r0, [r1] -_08143EC4: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08143ECC: .4byte gUnknown_203A854 -_08143ED0: .4byte 0x40000000 -_08143ED4: .4byte sub_08143D5C -_08143ED8: .4byte 0x00000000 -_08143EDC: .4byte 0xBF800000 - thumb_func_end sub_08143DC8 - - thumb_func_start sub_08143EE0 -sub_08143EE0: @ 0x08143EE0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r7, r0, #0 - bl sub_08143C50 - movs r1, #0x34 - ldrsh r0, [r7, r1] - cmp r0, #0 - beq _08143EFE - cmp r0, #0xb4 - beq _08143F68 - b _0814404C -_08143EFE: - movs r1, #0x2e - ldrsh r0, [r7, r1] - cmp r0, #1 - bne _08143F08 - b _0814404C -_08143F08: - movs r1, #0x3c - ldrsh r0, [r7, r1] - bl __floatsisf - mov sb, r0 - ldr r0, _08143F60 - mov sl, r0 - ldr r1, _08143F64 - mov r8, r1 - ldr r0, [r1] - ldrb r4, [r0, #4] - lsls r4, r4, #0x1e - lsrs r0, r4, #0x19 - add r0, sl - ldrb r0, [r0, #1] - bl __floatsisf - adds r1, r0, #0 - mov r0, sb - bl __mulsf3 - adds r6, r0, #0 - lsrs r0, r4, #0x19 - add r0, sl - ldrb r0, [r0, #2] - subs r0, #1 - bl __floatsisf - adds r1, r0, #0 - adds r0, r6, #0 - bl __addsf3 - adds r5, r0, #0 - lsrs r4, r4, #0x19 - add r4, sl - ldrh r0, [r4, #0xc] - bl __floatsisf - adds r1, r0, #0 - mov r0, sb - bl __divsf3 - b _08143FC8 - .align 2, 0 -_08143F60: .4byte gUnknown_8595EF4 -_08143F64: .4byte gUnknown_203A854 -_08143F68: - movs r1, #0x2e - ldrsh r0, [r7, r1] - cmp r0, #0 - beq _0814404C - movs r1, #0x3c - ldrsh r0, [r7, r1] - bl __floatsisf - mov sb, r0 - ldr r0, _0814405C - mov sl, r0 - ldr r1, _08144060 - mov r8, r1 - ldr r0, [r1] - ldrb r4, [r0, #4] - lsls r4, r4, #0x1e - lsrs r0, r4, #0x19 - add r0, sl - ldrb r0, [r0, #1] - bl __floatsisf - adds r1, r0, #0 - mov r0, sb - bl __mulsf3 - adds r6, r0, #0 - lsrs r0, r4, #0x19 - add r0, sl - ldrb r0, [r0, #2] - subs r0, #1 - bl __floatsisf - adds r1, r0, #0 - adds r0, r6, #0 - bl __addsf3 - adds r5, r0, #0 - lsrs r4, r4, #0x19 - add r4, sl - ldrh r0, [r4, #0xc] - bl __floatsisf - adds r1, r0, #0 - mov r0, sb - bl __divsf3 - bl __negsf2 -_08143FC8: - adds r2, r0, #0 - mov r0, r8 - ldr r6, [r0] - adds r1, r6, #0 - adds r1, #0xa0 - adds r0, r6, #0 - adds r0, #0x94 - ldr r0, [r0] - str r0, [r1] - adds r0, r6, #0 - adds r0, #0x98 - str r2, [r0] - movs r0, #0x9c - adds r0, r0, r6 - mov r8, r0 - adds r0, r2, #0 - adds r1, r2, #0 - bl __addsf3 - adds r1, r5, #0 - bl __divsf3 - adds r4, r0, #0 - adds r0, r5, #0 - adds r1, r5, #0 - bl __mulsf3 - adds r1, r0, #0 - ldr r0, _08144064 - bl __divsf3 - adds r1, r0, #0 - adds r0, r4, #0 - bl __addsf3 - bl __negsf2 - mov r1, r8 - str r0, [r1] - adds r1, r6, #0 - adds r1, #0x8c - ldr r0, _08144068 - str r0, [r1] - adds r2, r7, #0 - adds r2, #0x2c - ldrb r1, [r2] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - adds r0, r7, #0 - adds r0, #0x2a - movs r2, #0 - strb r2, [r0] - adds r3, r7, #0 - adds r3, #0x3f - ldrb r0, [r3] - movs r1, #4 - orrs r0, r1 - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r3] - ldr r0, _0814406C - str r0, [r7, #0x1c] - strh r2, [r7, #0x32] -_0814404C: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0814405C: .4byte gUnknown_8595EF4 -_08144060: .4byte gUnknown_203A854 -_08144064: .4byte 0x40000000 -_08144068: .4byte 0x00000000 -_0814406C: .4byte sub_08143DC8 - thumb_func_end sub_08143EE0 - - thumb_func_start sub_08144070 -sub_08144070: @ 0x08144070 - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0x32 - ldrsh r0, [r5, r1] - bl __floatsisf - adds r4, r0, #0 - ldr r1, _08144110 - bl __mulsf3 - adds r1, r4, #0 - bl __mulsf3 - bl __fixsfsi - adds r1, r0, #0 - subs r1, #0x2d - strh r1, [r5, #0x26] - ldrh r0, [r5, #0x32] - adds r0, #1 - strh r0, [r5, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1d - ble _0814410A - lsls r0, r1, #0x10 - cmp r0, #0 - blt _0814410A - ldr r4, _08144114 - ldr r0, [r4] - adds r0, #0x7d - movs r1, #0xff - strb r1, [r0] - ldr r2, [r4] - ldrb r1, [r2, #3] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #3] - adds r0, r5, #0 - adds r0, #0x2b - ldrb r1, [r0] - adds r1, #3 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl StartSpriteAnim - adds r0, r5, #0 - bl sub_08143BE0 - movs r0, #0x1e - strh r0, [r5, #0x36] - adds r0, r5, #0 - bl sub_08143B94 - movs r1, #0x3a - ldrsh r0, [r5, r1] - movs r1, #0x1e - bl __divsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r1, r0, #4 - subs r1, r1, r0 - lsls r1, r1, #1 - adds r1, #0xf - strh r1, [r5, #0x3a] - ldr r0, _08144118 - str r0, [r5, #0x1c] - movs r0, #0x47 - bl m4aSongNumStartOrChange - ldr r2, [r4] - ldrb r0, [r2, #3] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2, #3] -_0814410A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08144110: .4byte 0x3D4CCCCD -_08144114: .4byte gUnknown_203A854 -_08144118: .4byte sub_08143D5C - thumb_func_end sub_08144070 - - thumb_func_start sub_0814411C -sub_0814411C: @ 0x0814411C - push {r4, lr} - adds r3, r0, #0 - ldrh r0, [r3, #0x32] - adds r1, r0, #1 - strh r1, [r3, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x2c - bgt _08144164 - ldrh r4, [r3, #0x26] - subs r0, r4, #1 - strh r0, [r3, #0x26] - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x2d - bne _081441EA - ldr r2, _0814415C - ldr r0, _08144160 - ldr r0, [r0] - adds r0, #0x73 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x2b - ldrb r0, [r0] - cmp r0, #1 - bne _081441EA - strh r4, [r3, #0x26] - b _081441EA - .align 2, 0 -_0814415C: .4byte gUnknown_20205AC -_08144160: .4byte gUnknown_203A854 -_08144164: - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x3c - ldrsh r1, [r3, r2] - cmp r0, r1 - bge _081441B0 - ldr r2, _081441A0 - ldr r0, _081441A4 - ldr r0, [r0] - adds r0, #0x73 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r2 - adds r0, r1, #0 - adds r0, #0x2c - ldrb r0, [r0] - lsls r0, r0, #0x1a - cmp r0, #0 - bne _081441EA - adds r0, r1, #0 - adds r0, #0x2b - ldrb r0, [r0] - cmp r0, #1 - bne _081441A8 - ldrh r0, [r3, #0x26] - adds r0, #1 - strh r0, [r3, #0x26] - b _081441EA - .align 2, 0 -_081441A0: .4byte gUnknown_20205AC -_081441A4: .4byte gUnknown_203A854 -_081441A8: - ldrh r0, [r3, #0x26] - subs r0, #1 - strh r0, [r3, #0x26] - b _081441EA -_081441B0: - adds r2, r3, #0 - adds r2, #0x2c - ldrb r1, [r2] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - adds r1, r3, #0 - adds r1, #0x2a - movs r2, #0 - movs r0, #1 - strb r0, [r1] - movs r0, #0x3f - adds r0, r0, r3 - mov ip, r0 - ldrb r0, [r0] - movs r1, #4 - orrs r0, r1 - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - mov r1, ip - strb r0, [r1] - strh r2, [r3, #0x32] - ldr r0, _081441F0 - str r0, [r3, #0x1c] - movs r0, #0x3d - bl m4aSongNumStart -_081441EA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081441F0: .4byte sub_08144070 - thumb_func_end sub_0814411C - - thumb_func_start sub_081441F4 -sub_081441F4: @ 0x081441F4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08143C50 - movs r0, #0x34 - ldrsh r1, [r4, r0] - cmp r1, #0x5a - beq _0814420E - movs r0, #0x87 - lsls r0, r0, #1 - cmp r1, r0 - beq _08144218 - b _08144228 -_0814420E: - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _08144228 - b _08144220 -_08144218: - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _08144228 -_08144220: - ldr r0, _08144230 - str r0, [r4, #0x1c] - movs r0, #0 - strh r0, [r4, #0x32] -_08144228: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08144230: .4byte sub_0814411C - thumb_func_end sub_081441F4 - - thumb_func_start sub_08144234 -sub_08144234: @ 0x08144234 - push {r4, lr} - adds r4, r0, #0 - bl sub_08143C50 - ldr r0, _08144258 - ldr r0, [r0] - ldrb r0, [r0, #3] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1b - cmp r0, #0 - beq _0814424E - cmp r0, #1 - beq _08144260 -_0814424E: - adds r0, r4, #0 - bl sub_081447A8 - ldr r0, _0814425C - b _08144268 - .align 2, 0 -_08144258: .4byte gUnknown_203A854 -_0814425C: .4byte sub_08143EE0 -_08144260: - adds r0, r4, #0 - bl sub_08144984 - ldr r0, _08144270 -_08144268: - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08144270: .4byte sub_081441F4 - thumb_func_end sub_08144234 - - thumb_func_start prev_quest_read_x24_hm_usage -prev_quest_read_x24_hm_usage: @ 0x08144274 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_08143C50 - ldrh r0, [r5, #0x32] - subs r0, #1 - strh r0, [r5, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xf - bne _0814429A - ldr r0, _08144304 - ldr r4, [r0] - adds r4, #0x98 - ldr r0, [r4] - ldr r1, _08144308 - bl __mulsf3 - str r0, [r4] -_0814429A: - movs r1, #0x32 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _08144328 - movs r1, #0x2e - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _08144310 - ldr r2, _08144304 - ldr r0, [r2] - adds r0, #0x7d - movs r1, #0xff - strb r1, [r0] - ldr r2, [r2] - ldrb r1, [r2, #3] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #3] - adds r0, r5, #0 - adds r0, #0x2b - ldrb r1, [r0] - adds r1, #3 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl StartSpriteAnim - adds r0, r5, #0 - bl sub_08143BE0 - movs r0, #0x1e - strh r0, [r5, #0x36] - adds r0, r5, #0 - bl sub_08143B94 - movs r1, #0x3a - ldrsh r0, [r5, r1] - movs r1, #0x1e - bl __divsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r1, r0, #4 - subs r1, r1, r0 - lsls r1, r1, #1 - adds r1, #0xf - strh r1, [r5, #0x3a] - ldr r0, _0814430C - str r0, [r5, #0x1c] - movs r0, #0x47 - bl m4aSongNumStartOrChange - b _08144328 - .align 2, 0 -_08144304: .4byte gUnknown_203A854 -_08144308: .4byte 0xBF800000 -_0814430C: .4byte sub_08143D5C -_08144310: - adds r0, r5, #0 - adds r0, #0x2c - ldrb r1, [r0] - movs r2, #0x40 - orrs r1, r2 - strb r1, [r0] - movs r0, #0x38 - bl m4aSongNumStart - adds r0, r5, #0 - bl sub_08144AF0 -_08144328: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end prev_quest_read_x24_hm_usage - - thumb_func_start sub_08144330 -sub_08144330: @ 0x08144330 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - bl sub_08143C50 - movs r0, #0 - strh r0, [r6, #0x32] - adds r0, r6, #0 - bl sub_08143BE0 - ldr r1, _081443BC - ldr r4, _081443C0 - ldr r2, [r4] - adds r0, r2, #0 - adds r0, #0x7e - ldrb r0, [r0] - lsls r0, r0, #3 - adds r1, #4 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, [r2, #8] - ands r0, r1 - cmp r0, #0 - bne _081443C8 - adds r1, r2, #0 - adds r1, #0x7d - movs r0, #0xff - strb r0, [r1] - ldr r2, [r4] - ldrb r1, [r2, #3] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #3] - adds r0, r6, #0 - adds r0, #0x2b - ldrb r1, [r0] - adds r1, #3 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r6, #0 - bl StartSpriteAnim - adds r0, r6, #0 - bl sub_08143BE0 - movs r0, #0x1e - strh r0, [r6, #0x36] - adds r0, r6, #0 - bl sub_08143B94 - movs r1, #0x3a - ldrsh r0, [r6, r1] - movs r1, #0x1e - bl __divsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r1, r0, #4 - subs r1, r1, r0 - lsls r1, r1, #1 - adds r1, #0xf - strh r1, [r6, #0x3a] - ldr r0, _081443C4 - str r0, [r6, #0x1c] - movs r0, #0x47 - bl m4aSongNumStartOrChange - b _081444C4 - .align 2, 0 -_081443BC: .4byte gUnknown_8595E90 -_081443C0: .4byte gUnknown_203A854 -_081443C4: .4byte sub_08143D5C -_081443C8: - movs r0, #0x38 - bl m4aSongNumStart - bl Random - movs r1, #1 - mov r8, r1 - ands r1, r0 - mov r8, r1 - cmp r1, #0 - beq _0814440C - ldr r4, [r4] - adds r1, r4, #0 - adds r1, #0x8c - ldr r0, _08144404 - str r0, [r1] - adds r0, r4, #0 - adds r0, #0x7e - ldrb r0, [r0] - adds r0, #1 - movs r1, #0xc - bl __modsi3 - lsls r1, r0, #0x18 - lsrs r2, r1, #0x18 - adds r1, r4, #0 - adds r1, #0x7f - strb r0, [r1] - ldr r5, _08144408 - b _08144444 - .align 2, 0 -_08144404: .4byte 0x00000000 -_08144408: .4byte gUnknown_8595EF4 -_0814440C: - ldr r7, [r4] - adds r4, r7, #0 - adds r4, #0x8c - ldr r5, _0814446C - ldrb r0, [r7, #4] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x19 - adds r1, r5, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r1, #0 - bl __addsf3 - str r0, [r4] - adds r0, r7, #0 - adds r0, #0x7e - ldrb r4, [r0] - adds r0, r4, #0 - adds r0, #0xb - movs r1, #0xc - bl __modsi3 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r0, r7, #0 - adds r0, #0x7f - strb r4, [r0] -_08144444: - ldr r0, _08144470 - lsls r1, r2, #3 - adds r0, #4 - adds r1, r1, r0 - ldr r2, _08144474 - ldr r3, [r2] - ldr r1, [r1] - ldr r0, [r3, #8] - ands r1, r0 - cmp r1, #0 - beq _08144478 - movs r0, #1 - strh r0, [r6, #0x2e] - ldrb r0, [r3, #4] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x19 - adds r0, r0, r5 - ldrb r0, [r0, #2] - strh r0, [r6, #0x32] - b _081444B4 - .align 2, 0 -_0814446C: .4byte gUnknown_8595EF4 -_08144470: .4byte gUnknown_8595E90 -_08144474: .4byte gUnknown_203A854 -_08144478: - strh r1, [r6, #0x2e] - ldrb r1, [r3, #4] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _08144490 - lsls r0, r1, #0x1e - lsrs r0, r0, #0x19 - adds r0, r0, r5 - ldrb r0, [r0, #1] - strh r0, [r6, #0x32] - b _081444B4 -_08144490: - lsls r0, r1, #0x1e - lsrs r0, r0, #0x19 - adds r0, r0, r5 - ldrb r0, [r0, #2] - strh r0, [r6, #0x32] - mov r0, r8 - cmp r0, #0 - beq _081444AC - adds r1, r3, #0 - adds r1, #0x8c - ldr r0, _081444A8 - b _081444B2 - .align 2, 0 -_081444A8: .4byte 0x3F000000 -_081444AC: - adds r1, r3, #0 - adds r1, #0x8c - ldr r0, _081444D0 -_081444B2: - str r0, [r1] -_081444B4: - ldr r0, [r2] - adds r0, #0x98 - ldr r1, _081444D4 - str r1, [r0] - ldr r0, _081444D8 - str r0, [r6, #0x1c] - movs r0, #5 - strh r0, [r6, #0x30] -_081444C4: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081444D0: .4byte 0xBFC00000 -_081444D4: .4byte 0x3DAE147B -_081444D8: .4byte prev_quest_read_x24_hm_usage - thumb_func_end sub_08144330 - - thumb_func_start sub_081444DC -sub_081444DC: @ 0x081444DC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - bl sub_08143C50 - ldr r4, _08144570 - ldr r0, [r4] - adds r0, #0x8c - ldr r0, [r0] - ldr r1, _08144574 - bl __gtsf2 - cmp r0, #0 - bgt _081445C6 - adds r0, r6, #0 - bl sub_08143BE0 - adds r0, r6, #0 - bl sub_08143C14 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08144588 - ldr r2, [r4] - adds r1, r2, #0 - adds r1, #0x90 - ldr r0, _08144578 - str r0, [r1] - movs r0, #0x8c - adds r0, r0, r2 - mov r8, r0 - ldr r1, _0814457C - mov sb, r1 - ldrb r0, [r2, #4] - lsls r7, r0, #0x1e - lsrs r0, r7, #0x19 - add r0, sb - movs r4, #3 - ldrsb r4, [r0, r4] - adds r0, r4, #0 - bl __floatsisf - adds r5, r0, #0 - cmp r4, #0 - bge _08144542 - ldr r1, _08144580 - bl __addsf3 - adds r5, r0, #0 -_08144542: - lsrs r0, r7, #0x19 - add r0, sb - ldrb r0, [r0, #4] - adds r0, #1 - bl __floatsisf - adds r1, r0, #0 - adds r0, r5, #0 - bl __divsf3 - adds r1, r0, #0 - mov r2, r8 - ldr r0, [r2] - bl __subsf3 - mov r1, r8 - str r0, [r1] - movs r0, #4 - strh r0, [r6, #0x30] - ldr r0, _08144584 - str r0, [r6, #0x1c] - b _081445C6 - .align 2, 0 -_08144570: .4byte gUnknown_203A854 -_08144574: .4byte 0x3F000000 -_08144578: .4byte 0x00000000 -_0814457C: .4byte gUnknown_8595EF4 -_08144580: .4byte 0x43800000 -_08144584: .4byte sub_08144330 -_08144588: - ldr r4, [r4] - adds r7, r4, #0 - adds r7, #0x90 - ldr r0, [r7] - ldr r6, _081445D4 - adds r1, r6, #0 - bl __nesf2 - cmp r0, #0 - beq _081445C6 - adds r5, r4, #0 - adds r5, #0x8c - ldr r0, [r5] - adds r1, r6, #0 - bl __ltsf2 - cmp r0, #0 - bge _081445C6 - str r6, [r7] - str r6, [r5] - adds r4, #0x98 - ldr r0, [r4] - bl __extendsfdf2 - ldr r2, _081445D8 - ldr r3, _081445DC - bl __divdf3 - bl __truncdfsf2 - str r0, [r4] -_081445C6: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081445D4: .4byte 0x00000000 -_081445D8: .4byte 0x3FF33333 -_081445DC: .4byte 0x33333333 - thumb_func_end sub_081444DC - - thumb_func_start sub_081445E0 -sub_081445E0: @ 0x081445E0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - bl sub_08143C50 - ldr r0, _08144690 - ldr r5, [r0] - adds r0, r5, #0 - adds r0, #0x94 - ldr r0, [r0] - ldr r1, _08144694 - bl __gtsf2 - cmp r0, #0 - bgt _08144684 - movs r0, #0x98 - adds r0, r0, r5 - mov r8, r0 - adds r7, r5, #0 - adds r7, #0x86 - movs r1, #0 - ldrsh r4, [r7, r1] - adds r0, r4, #0 - bl __floatsisf - adds r2, r0, #0 - cmp r4, #0 - bge _08144622 - ldr r1, _08144698 - bl __addsf3 - adds r2, r0, #0 -_08144622: - ldr r0, _0814469C - adds r1, r2, #0 - bl __divsf3 - bl __negsf2 - mov r1, r8 - str r0, [r1] - movs r0, #0x90 - adds r0, r0, r5 - mov r8, r0 - adds r5, #0x8c - movs r1, #0 - ldrsh r4, [r7, r1] - adds r0, r4, #0 - bl __floatsisf - adds r2, r0, #0 - cmp r4, #0 - bge _08144652 - ldr r1, _08144698 - bl __addsf3 - adds r2, r0, #0 -_08144652: - ldr r0, [r5] - adds r1, r2, #0 - bl __divsf3 - bl __negsf2 - mov r1, r8 - str r0, [r1] - adds r1, r6, #0 - adds r1, #0x2a - movs r0, #2 - strb r0, [r1] - adds r2, r6, #0 - adds r2, #0x3f - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r2] - movs r0, #3 - strh r0, [r6, #0x30] - ldr r0, _081446A0 - str r0, [r6, #0x1c] -_08144684: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08144690: .4byte gUnknown_203A854 -_08144694: .4byte 0x42200000 -_08144698: .4byte 0x47800000 -_0814469C: .4byte 0x40800000 -_081446A0: .4byte sub_081444DC - thumb_func_end sub_081445E0 - - thumb_func_start sub_081446A4 -sub_081446A4: @ 0x081446A4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - bl sub_08143C50 - ldr r4, _08144760 - ldr r0, [r4] - adds r0, #0x94 - ldr r0, [r0] - ldr r1, _08144764 - bl __gtsf2 - cmp r0, #0 - bgt _08144756 - movs r0, #0x5d - bl m4aSongNumStartOrChange - ldr r5, [r4] - movs r0, #0x98 - adds r0, r0, r5 - mov r8, r0 - adds r7, r5, #0 - adds r7, #0x84 - movs r1, #0 - ldrsh r4, [r7, r1] - adds r0, r4, #0 - bl __floatsisf - adds r2, r0, #0 - cmp r4, #0 - bge _081446EC - ldr r1, _08144768 - bl __addsf3 - adds r2, r0, #0 -_081446EC: - ldr r0, _0814476C - adds r1, r2, #0 - bl __divsf3 - bl __negsf2 - mov r1, r8 - str r0, [r1] - movs r0, #0x90 - adds r0, r0, r5 - mov r8, r0 - adds r0, r5, #0 - adds r0, #0x8c - ldr r1, [r0] - ldr r0, _08144770 - bl __subsf3 - adds r5, r0, #0 - movs r1, #0 - ldrsh r4, [r7, r1] - adds r0, r4, #0 - bl __floatsisf - adds r2, r0, #0 - cmp r4, #0 - bge _08144728 - ldr r1, _08144768 - bl __addsf3 - adds r2, r0, #0 -_08144728: - adds r0, r5, #0 - adds r1, r2, #0 - bl __divsf3 - mov r1, r8 - str r0, [r1] - adds r1, r6, #0 - adds r1, #0x2a - movs r0, #1 - strb r0, [r1] - adds r2, r6, #0 - adds r2, #0x3f - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r2] - movs r0, #2 - strh r0, [r6, #0x30] - ldr r0, _08144774 - str r0, [r6, #0x1c] -_08144756: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08144760: .4byte gUnknown_203A854 -_08144764: .4byte 0x42700000 -_08144768: .4byte 0x47800000 -_0814476C: .4byte 0x41A00000 -_08144770: .4byte 0x3F800000 -_08144774: .4byte sub_081445E0 - thumb_func_end sub_081446A4 - - thumb_func_start sub_08144778 -sub_08144778: @ 0x08144778 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #1 - strh r0, [r4, #0x30] - strh r1, [r4, #0x32] - adds r0, r4, #0 - bl sub_08143C50 - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldr r0, _081447A4 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081447A4: .4byte sub_081446A4 - thumb_func_end sub_08144778 - - thumb_func_start sub_081447A8 -sub_081447A8: @ 0x081447A8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - mov r8, r0 - ldr r1, _08144968 - mov r0, sp - movs r2, #8 - bl memcpy - mov r1, r8 - ldrh r0, [r1, #0x3c] - subs r0, #2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - ldr r5, _0814496C - ldr r0, _08144970 - movs r2, #0xc - rsbs r2, r2, #0 - movs r1, #0x24 - movs r3, #0x32 - bl CreateSprite - ldr r1, [r5] - adds r1, #0x73 - strb r0, [r1] - ldr r4, _08144974 - mov r3, r8 - movs r0, #0x2e - ldrsh r2, [r3, r0] - lsls r2, r2, #2 - mov r1, sp - adds r0, r1, r2 - movs r3, #0 - ldrsh r1, [r0, r3] - mov r0, sp - adds r0, #2 - adds r0, r0, r2 - movs r3, #0 - ldrsh r2, [r0, r3] - adds r0, r4, #0 - movs r3, #0x3b - bl CreateSprite - ldr r1, [r5] - adds r1, #0x74 - strb r0, [r1] - adds r4, #0x18 - adds r0, r4, #0 - movs r1, #0x24 - movs r2, #0x8c - movs r3, #0x33 - bl CreateSprite - ldr r1, [r5] - adds r1, #0x75 - strb r0, [r1] - ldr r3, _08144978 - ldr r0, [r5] - adds r0, #0x75 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r2, [r0, #1] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #4 - orrs r1, r2 - strb r1, [r0, #1] - movs r7, #0 - adds r6, r3, #0 - ldr r0, _0814497C - mov ip, r0 - mov sl, r5 -_08144848: - ldr r0, [r5] - adds r3, r7, #0 - adds r3, #0x37 - adds r0, #0x3c - adds r0, r0, r3 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - adds r1, #0x3e - ldrb r2, [r1] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r0, [r5] - adds r0, #0x3c - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r5] - adds r0, #0x3c - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x2c - ldrb r1, [r0] - movs r2, #0x40 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r5] - adds r0, #0x3c - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x2c - ldrb r1, [r0] - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0] - ldr r4, [r5] - adds r2, r4, #0 - adds r2, #0x3c - adds r2, r2, r3 - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r1, r4, #0 - adds r1, #0x73 - ldrb r1, [r1] - strh r1, [r0, #0x36] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r1, r4, #0 - adds r1, #0x74 - ldrb r1, [r1] - strh r1, [r0, #0x38] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r1, r4, #0 - adds r1, #0x75 - ldrb r1, [r1] - strh r1, [r0, #0x3a] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - mov r1, sb - strh r1, [r0, #0x32] - ldrb r0, [r2] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r6 - mov r0, r8 - movs r1, #0x3c - ldrsh r3, [r0, r1] - ldrb r1, [r4, #4] - lsls r1, r1, #0x1e - lsrs r0, r1, #0x19 - add r0, ip - ldrb r0, [r0, #1] - muls r3, r0, r3 - lsrs r1, r1, #0x19 - add r1, ip - ldrb r0, [r1, #2] - ldr r1, _08144980 - adds r0, r0, r1 - adds r3, r3, r0 - strh r3, [r2, #0x34] - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r2, _08144978 - cmp r7, #2 - bls _08144848 - mov r3, sl - ldr r0, [r3] - adds r0, #0x74 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #2 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r3] - mov r1, r8 - str r1, [r0, #0x38] - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08144968: .4byte gUnknown_85976BE -_0814496C: .4byte gUnknown_203A854 -_08144970: .4byte gUnknown_85975AC -_08144974: .4byte gUnknown_8597670 -_08144978: .4byte gUnknown_20205AC -_0814497C: .4byte gUnknown_8595EF4 -_08144980: .4byte 0x0000FFFF - thumb_func_end sub_081447A8 - - thumb_func_start sub_08144984 -sub_08144984: @ 0x08144984 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #8 - adds r7, r0, #0 - movs r0, #0 - mov r8, r0 - ldr r1, _08144AD8 - mov r0, sp - movs r2, #8 - bl memcpy - ldrh r0, [r7, #0x3c] - subs r0, #2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - ldr r0, _08144ADC - movs r1, #0x2e - ldrsh r2, [r7, r1] - lsls r2, r2, #2 - mov r3, sp - adds r1, r3, r2 - movs r3, #0 - ldrsh r1, [r1, r3] - mov r4, sp - adds r4, #2 - adds r2, r4, r2 - movs r3, #0 - ldrsh r2, [r2, r3] - movs r3, #0x32 - bl CreateSprite - ldr r5, _08144AE0 - ldr r1, [r5] - adds r1, #0x73 - strb r0, [r1] - ldr r0, [r5] - adds r0, #0x73 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r6, _08144AE4 - adds r0, r0, r6 - ldrh r1, [r7, #0x2e] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl StartSpriteAnim - ldr r0, _08144AE8 - movs r1, #0x2e - ldrsh r2, [r7, r1] - lsls r2, r2, #2 - mov r3, sp - adds r1, r3, r2 - movs r3, #0 - ldrsh r1, [r1, r3] - adds r4, r4, r2 - movs r3, #0 - ldrsh r2, [r4, r3] - movs r3, #0x33 - bl CreateSprite - ldr r1, [r5] - adds r1, #0x74 - strb r0, [r1] - ldr r0, [r5] - adds r0, #0x74 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x2c - ldrb r1, [r0] - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r5] - adds r0, #0x74 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x2c - ldrb r1, [r0] - movs r2, #0x40 - orrs r1, r2 - strb r1, [r0] - mov r0, sb - lsls r2, r0, #0x10 - asrs r2, r2, #0x10 - ldr r3, _08144AEC - ldr r0, [r5] - ldrb r1, [r0, #4] - lsls r1, r1, #0x1e - lsrs r0, r1, #0x19 - adds r0, r0, r3 - ldrb r0, [r0, #1] - muls r2, r0, r2 - lsrs r1, r1, #0x19 - adds r1, r1, r3 - ldrh r0, [r1, #0x10] - adds r0, #0x2d - adds r2, r2, r0 - strh r2, [r7, #0x3c] -_08144A5E: - ldr r0, _08144AE0 - ldr r4, [r0] - mov r1, r8 - adds r2, r4, r1 - adds r2, #0x73 - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r1, r4, #0 - adds r1, #0x73 - ldrb r1, [r1] - strh r1, [r0, #0x36] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r3, r4, #0 - adds r3, #0x74 - ldrb r1, [r3] - strh r1, [r0, #0x38] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r1, [r3] - strh r1, [r0, #0x3a] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - mov r3, sb - strh r3, [r0, #0x32] - ldrb r0, [r2] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrh r0, [r7, #0x3c] - subs r0, #0x2d - strh r0, [r1, #0x34] - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - cmp r0, #1 - bls _08144A5E - str r7, [r4, #0x38] - add sp, #8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08144AD8: .4byte gUnknown_85976C6 -_08144ADC: .4byte gUnknown_85975C4 -_08144AE0: .4byte gUnknown_203A854 -_08144AE4: .4byte gUnknown_20205AC -_08144AE8: .4byte gUnknown_85976A0 -_08144AEC: .4byte gUnknown_8595EF4 - thumb_func_end sub_08144984 - - thumb_func_start sub_08144AF0 -sub_08144AF0: @ 0x08144AF0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - adds r7, r0, #0 - movs r0, #0 - mov sb, r0 - movs r1, #5 - mov r8, r1 - str r0, [sp, #0xc] - mov r0, sp - movs r1, #0 - movs r2, #0xa - bl memset - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x10] - ldr r3, _08144BDC - ldr r0, [r3] - adds r0, #0x7d - movs r5, #1 - strb r5, [r0] - ldr r2, [r3] - ldrb r0, [r2, #3] - movs r1, #0x20 - orrs r0, r1 - strb r0, [r2, #3] - ldr r2, [r3] - ldrb r1, [r2, #3] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #3] - ldr r0, [r3] - adds r0, #0x7e - movs r1, #0xff - strb r1, [r0] - ldr r6, [r3] - adds r4, r6, #0 - adds r4, #0x88 - movs r1, #0x34 - ldrsh r0, [r7, r1] - bl __floatsisf - str r0, [r4] - adds r1, r6, #0 - adds r1, #0x98 - ldr r0, _08144BE0 - str r0, [r1] - adds r2, r6, #0 - adds r2, #0x8c - ldr r1, _08144BE4 - ldrb r0, [r6, #4] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x19 - adds r1, #0x1c - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r2] - ldrb r0, [r6, #4] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - lsls r1, r0, #4 - subs r1, r1, r0 - lsls r1, r1, #1 - adds r1, #0x21 - ldrb r0, [r6, #3] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1b - subs r5, r5, r0 - lsls r0, r5, #4 - subs r0, r0, r5 - adds r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r5, sb - movs r0, #0x34 - ldrsh r2, [r7, r0] -_08144B96: - cmp r1, r2 - bge _08144BA2 - adds r0, r1, #0 - adds r0, #0x5a - cmp r2, r0 - ble _08144C04 -_08144BA2: - cmp r5, #3 - beq _08144BE8 - adds r0, r1, #0 - adds r0, #0x5a - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #3 - bls _08144B96 -_08144BB8: - ldr r0, _08144BDC - ldr r0, [r0] - ldrb r1, [r0, #3] - movs r0, #0x1f - ands r0, r1 - cmp r0, #0 - beq _08144C30 - movs r1, #0x2e - ldrsh r0, [r7, r1] - cmp r0, #0 - beq _08144C24 - movs r0, #0x98 - lsls r0, r0, #1 - movs r1, #0x3f - rsbs r1, r1, #0 - bl PlayCry1 - b _08144C3C - .align 2, 0 -_08144BDC: .4byte gUnknown_203A854 -_08144BE0: .4byte 0x00000000 -_08144BE4: .4byte gUnknown_8595EF4 -_08144BE8: - movs r0, #1 - strh r0, [r7, #0x2e] - ldr r0, _08144C00 - ldr r2, [r0] - ldrb r1, [r2, #3] - movs r0, #0x20 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #3] - b _08144BB8 - .align 2, 0 -_08144C00: .4byte gUnknown_203A854 -_08144C04: - lsrs r0, r5, #1 - strh r0, [r7, #0x2e] - ldr r0, _08144C20 - ldr r3, [r0] - movs r1, #1 - ands r1, r5 - ldrb r2, [r3, #3] - movs r0, #0x20 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #3] - b _08144BB8 - .align 2, 0 -_08144C20: .4byte gUnknown_203A854 -_08144C24: - movs r0, #0x98 - lsls r0, r0, #1 - movs r1, #0x3f - bl PlayCry1 - b _08144C3C -_08144C30: - movs r0, #0x99 - lsls r0, r0, #1 - movs r1, #0x3f - rsbs r1, r1, #0 - bl PlayCry1 -_08144C3C: - movs r0, #2 - mov sl, r0 - ldr r4, _08144C70 - ldr r5, [r4] - adds r0, r5, #0 - adds r0, #0x7f - ldrb r0, [r0] - adds r0, #2 - movs r1, #0xc - bl __modsi3 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldrb r1, [r5, #3] - movs r0, #0x1f - ands r0, r1 - cmp r0, #1 - bne _08144C74 - ldrb r1, [r5, #4] - movs r0, #3 - ands r0, r1 - cmp r0, #1 - bne _08144C74 - mov r0, r8 - adds r0, #6 - b _08144C78 - .align 2, 0 -_08144C70: .4byte gUnknown_203A854 -_08144C74: - mov r0, r8 - add r0, sl -_08144C78: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - mov r5, sl - cmp r5, r8 - bhs _08144CE4 - ldr r1, _08144D0C - mov sl, r1 -_08144C88: - ldr r3, [r4] - lsls r0, r6, #3 - ldr r1, _08144D10 - adds r0, r0, r1 - ldr r1, [r3, #8] - ldr r2, [r0] - ands r1, r2 - cmp r1, #0 - bne _08144CCE - mov r0, sb - adds r1, r0, #1 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sb, r1 - add r0, sp - strb r5, [r0] - ldr r0, [sp, #0xc] - cmp r0, #0 - bne _08144CCE - ldrb r1, [r3, #0x1a] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - adds r0, r3, #0 - adds r0, #0x1b - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sl - ldr r0, [r0] - ands r2, r0 - cmp r2, #0 - beq _08144CCE - str r5, [sp, #0xc] -_08144CCE: - adds r0, r6, #1 - movs r1, #0xc - bl __modsi3 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, r8 - blo _08144C88 -_08144CE4: - ldr r0, [r4] - ldrb r1, [r0, #3] - lsls r1, r1, #0x1b - lsrs r1, r1, #0x1b - adds r1, #1 - ldrb r0, [r0, #2] - ands r1, r0 - cmp r1, #0 - beq _08144D14 - ldr r1, [sp, #0xc] - cmp r1, #0 - beq _08144D14 - movs r0, #0xff - ldr r1, [sp, #0x10] - ands r0, r1 - cmp r0, #0xbf - bhi _08144D14 - mov r0, sp - ldrh r0, [r0, #0xc] - b _08144D20 - .align 2, 0 -_08144D0C: .4byte gUnknown_8595D0C -_08144D10: .4byte gUnknown_8595E94 -_08144D14: - ldr r0, [sp, #0x10] - mov r1, sb - bl __modsi3 - add r0, sp - ldrb r0, [r0] -_08144D20: - strh r0, [r7, #0x3c] - ldr r1, _08144D38 - str r1, [r7, #0x1c] - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08144D38: .4byte sub_08144234 - thumb_func_end sub_08144AF0 - - thumb_func_start sub_08144D3C -sub_08144D3C: @ 0x08144D3C - push {r4, lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x30] - adds r1, r0, #1 - strh r1, [r2, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r3, #0x34 - ldrsh r1, [r2, r3] - cmp r0, r1 - blt _08144D8C - ldrh r0, [r2, #0x20] - subs r0, #2 - strh r0, [r2, #0x20] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x10 - rsbs r1, r1, #0 - cmp r0, r1 - bge _08144D8C - ldr r4, _08144D94 - ldr r3, [r4] - ldrb r1, [r3, #3] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08144D78 - movs r0, #0x40 - orrs r0, r1 - strb r0, [r3, #3] -_08144D78: - adds r0, r2, #0 - bl DestroySprite - ldr r1, [r4] - movs r0, #0 - strb r0, [r1, #1] - ldr r1, [r4] - ldr r0, _08144D98 - ldrh r0, [r0] - strh r0, [r1, #0x34] -_08144D8C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08144D94: .4byte gUnknown_203A854 -_08144D98: .4byte gUnknown_85976CE - thumb_func_end sub_08144D3C - - thumb_func_start sub_08144D9C -sub_08144D9C: @ 0x08144D9C - push {r4, lr} - sub sp, #0x18 - adds r4, r0, #0 - ldr r1, _08144E18 - mov r0, sp - movs r2, #0x18 - bl memcpy - ldrh r0, [r4, #0x30] - adds r2, r0, #1 - strh r2, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r3, #0x34 - ldrsh r1, [r4, r3] - cmp r0, r1 - bge _08144E20 - movs r0, #1 - ands r2, r0 - cmp r2, #0 - beq _08144DFA - ldr r3, _08144E1C - movs r0, #0x3c - ldrsh r2, [r4, r0] - lsls r2, r2, #1 - movs r1, #0x32 - ldrsh r0, [r4, r1] - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - lsls r0, r0, #3 - adds r2, r2, r0 - mov r1, sp - adds r0, r1, r2 - ldrh r0, [r0] - strh r0, [r3] - movs r3, #0x3c - ldrsh r2, [r4, r3] - adds r1, r2, #1 - adds r0, r1, #0 - cmp r1, #0 - bge _08144DF2 - adds r0, r2, #4 -_08144DF2: - asrs r0, r0, #2 - lsls r0, r0, #2 - subs r0, r1, r0 - strh r0, [r4, #0x3c] -_08144DFA: - adds r3, r4, #0 - adds r3, #0x3e - ldrb r2, [r3] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _08144E4A - .align 2, 0 -_08144E18: .4byte gUnknown_85976E2 -_08144E1C: .4byte gUnknown_2021B3A -_08144E20: - ldr r1, _08144E54 - movs r0, #0 - strh r0, [r1] - ldr r2, _08144E58 - ldr r0, _08144E5C - ldr r0, [r0] - adds r0, #0x73 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x2c - ldrb r2, [r0] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - adds r0, r4, #0 - bl DestroySprite -_08144E4A: - add sp, #0x18 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08144E54: .4byte gUnknown_2021B3A -_08144E58: .4byte gUnknown_20205AC -_08144E5C: .4byte gUnknown_203A854 - thumb_func_end sub_08144D9C - - thumb_func_start sub_08144E60 -sub_08144E60: @ 0x08144E60 - push {r4, r5, lr} - adds r5, r0, #0 - ldrh r0, [r5, #0x30] - adds r0, #1 - strh r0, [r5, #0x30] - movs r1, #0x30 - ldrsh r0, [r5, r1] - bl __floatsisf - adds r4, r0, #0 - ldr r1, _08144F10 - bl __mulsf3 - adds r1, r4, #0 - bl __mulsf3 - bl __fixsfsi - strh r0, [r5, #0x26] - ldr r0, _08144F14 - ldr r3, [r0] - ldr r2, _08144F18 - ldrb r0, [r3, #1] - subs r0, #1 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r3, #0x34] - ldrb r0, [r3, #1] - cmp r0, #0x12 - bhi _08144EA8 - adds r0, #1 - strb r0, [r3, #1] -_08144EA8: - movs r1, #0x30 - ldrsh r0, [r5, r1] - cmp r0, #0x3c - ble _08144F0A - movs r0, #0 - strh r0, [r5, #0x30] - ldr r3, _08144F1C - str r3, [r5, #0x1c] - ldr r2, _08144F20 - movs r0, #0x3a - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, r2, #0 - adds r4, #0x1c - adds r0, r0, r4 - str r3, [r0] - movs r0, #0x3a - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, _08144F24 - strh r1, [r0, #0x30] - movs r0, #0x38 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - movs r0, #0x38 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _08144F28 - str r1, [r0] - movs r0, #0xd6 - bl m4aSongNumStart -_08144F0A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08144F10: .4byte 0x3D1FBE77 -_08144F14: .4byte gUnknown_203A854 -_08144F18: .4byte gUnknown_85976CE -_08144F1C: .4byte sub_08144D3C -_08144F20: .4byte gUnknown_20205AC -_08144F24: .4byte 0x0000FFFE -_08144F28: .4byte sub_08144D9C - thumb_func_end sub_08144E60 - - thumb_func_start sub_08144F2C -sub_08144F2C: @ 0x08144F2C - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x3c - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08144FB0 - ldr r0, _08144F58 - ldr r3, [r0] - ldr r1, [r3, #0x38] - movs r2, #0x2e - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _08144F60 - movs r0, #0x34 - ldrsh r2, [r1, r0] - ldr r1, _08144F5C - ldrb r0, [r3, #4] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x19 - adds r0, r0, r1 - ldrh r0, [r0, #8] - b _08144F72 - .align 2, 0 -_08144F58: .4byte gUnknown_203A854 -_08144F5C: .4byte gUnknown_8595EF4 -_08144F60: - movs r0, #0x34 - ldrsh r2, [r1, r0] - ldr r1, _08144FA4 - ldrb r0, [r3, #4] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x19 - adds r0, r0, r1 - ldrh r0, [r0, #8] - adds r0, #0xb4 -_08144F72: - cmp r2, r0 - bne _08145048 - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldrh r0, [r4, #0x3c] - adds r0, #1 - strh r0, [r4, #0x3c] - movs r0, #0x2b - bl m4aSongNumStart - ldr r2, _08144FA8 - ldr r1, [r2] - movs r0, #1 - strb r0, [r1, #1] - ldr r1, [r2] - ldr r0, _08144FAC - ldrh r0, [r0] - strh r0, [r1, #0x34] - b _08145048 - .align 2, 0 -_08144FA4: .4byte gUnknown_8595EF4 -_08144FA8: .4byte gUnknown_203A854 -_08144FAC: .4byte gUnknown_85976CE -_08144FB0: - ldr r5, _08144FF0 - ldr r3, [r5] - ldr r2, _08144FF4 - ldrb r0, [r3, #1] - subs r0, #1 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r3, #0x34] - ldrb r0, [r3, #1] - cmp r0, #0x12 - bhi _08144FD2 - adds r0, #1 - strb r0, [r3, #1] -_08144FD2: - ldr r3, [r5] - ldr r1, [r3, #0x38] - movs r2, #0x2e - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _08144FFC - movs r0, #0x34 - ldrsh r2, [r1, r0] - ldr r1, _08144FF8 - ldrb r0, [r3, #4] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x19 - adds r0, r0, r1 - ldrh r0, [r0, #0xa] - b _0814500E - .align 2, 0 -_08144FF0: .4byte gUnknown_203A854 -_08144FF4: .4byte gUnknown_85976CE -_08144FF8: .4byte gUnknown_8595EF4 -_08144FFC: - movs r0, #0x34 - ldrsh r2, [r1, r0] - ldr r1, _08145050 - ldrb r0, [r3, #4] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x19 - adds r0, r0, r1 - ldrh r0, [r0, #0xa] - adds r0, #0xb4 -_0814500E: - cmp r2, r0 - bne _08145048 - ldr r2, _08145054 - movs r0, #0x36 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r2, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _08145058 - str r1, [r0] - movs r0, #0x36 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - ldr r0, _0814505C - str r0, [r4, #0x1c] - movs r0, #0 - strh r0, [r4, #0x3c] -_08145048: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08145050: .4byte gUnknown_8595EF4 -_08145054: .4byte gUnknown_20205AC -_08145058: .4byte sub_08144E60 -_0814505C: .4byte sub_08007140 - thumb_func_end sub_08144F2C - - thumb_func_start sub_08145060 -sub_08145060: @ 0x08145060 - adds r0, #0x3e - ldrb r3, [r0] - lsls r1, r3, #0x1d - lsrs r1, r1, #0x1f - movs r2, #1 - eors r2, r1 - lsls r2, r2, #2 - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r3 - orrs r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 - thumb_func_end sub_08145060 - - thumb_func_start sub_0814507C -sub_0814507C: @ 0x0814507C - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r2, [r4, #0x22] - movs r0, #0x22 - ldrsh r1, [r4, r0] - movs r0, #0x10 - rsbs r0, r0, #0 - cmp r1, r0 - ble _08145094 - subs r0, r2, #1 - strh r0, [r4, #0x22] - b _081450E8 -_08145094: - ldr r0, _081450F0 - str r0, [r4, #0x1c] - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - subs r2, #0x12 - ldrb r0, [r2] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x5e - bl m4aSongNumStop - adds r0, r4, #0 - bl DestroySprite - ldr r5, _081450F4 - ldr r4, _081450F8 - ldr r0, [r4] - adds r0, #0x74 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r0, [r0, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - ldr r0, [r4] - adds r0, #0x74 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - bl DestroySprite -_081450E8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081450F0: .4byte sub_08007140 -_081450F4: .4byte gUnknown_20205AC -_081450F8: .4byte gUnknown_203A854 - thumb_func_end sub_0814507C - - thumb_func_start sub_081450FC -sub_081450FC: @ 0x081450FC - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x30] - movs r2, #0x30 - ldrsh r0, [r4, r2] - cmp r0, #0 - blt _08145126 - subs r1, #1 - strh r1, [r4, #0x30] - ldrh r0, [r4, #0x22] - subs r0, #1 - strh r0, [r4, #0x22] - lsls r1, r1, #0x10 - cmp r1, #0 - bne _08145192 - adds r0, r4, #0 - adds r0, #0x2b - ldrb r0, [r0] - cmp r0, #1 - bne _08145192 - b _0814514C -_08145126: - ldrh r1, [r4, #0x34] - movs r2, #0x34 - ldrsh r0, [r4, r2] - cmp r0, #0 - blt _0814515C - subs r0, r1, #1 - strh r0, [r4, #0x34] - adds r0, r4, #0 - adds r0, #0x2c - ldrb r1, [r0] - movs r0, #0x3f - ands r0, r1 - cmp r0, #0 - bne _08145192 - adds r0, r4, #0 - adds r0, #0x2b - ldrb r0, [r0] - cmp r0, #1 - bne _08145154 -_0814514C: - ldrh r0, [r4, #0x26] - adds r0, #1 - strh r0, [r4, #0x26] - b _08145192 -_08145154: - ldrh r0, [r4, #0x26] - subs r0, #1 - strh r0, [r4, #0x26] - b _08145192 -_0814515C: - movs r0, #0x2b - bl m4aSongNumStart - ldr r0, _08145198 - ldr r0, [r0] - ldr r0, [r0, #0x38] - ldrh r1, [r0, #0x2e] - adds r1, #4 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim - ldr r0, _0814519C - str r0, [r4, #0x1c] - ldr r2, _081451A0 - movs r0, #0x3a - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x2c - ldrb r2, [r0] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0] -_08145192: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08145198: .4byte gUnknown_203A854 -_0814519C: .4byte sub_0814507C -_081451A0: .4byte gUnknown_20205AC - thumb_func_end sub_081450FC - - thumb_func_start sub_081451A4 -sub_081451A4: @ 0x081451A4 - push {r4, r5, lr} - sub sp, #0x14 - adds r4, r0, #0 - ldr r1, _08145220 - mov r0, sp - movs r2, #2 - bl memcpy - add r5, sp, #4 - ldr r1, _08145224 - adds r0, r5, #0 - movs r2, #0x10 - bl memcpy - ldrh r0, [r4, #0x30] - subs r1, r0, #1 - strh r1, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #7 - ble _08145238 - ldr r0, _08145228 - ldr r0, [r0] - ldr r0, [r0, #0x38] - movs r1, #0x2e - ldrsh r0, [r0, r1] - add r0, sp - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #1 - ldrh r2, [r4, #0x20] - adds r0, r0, r2 - strh r0, [r4, #0x20] - bl IsSEPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081452D4 - movs r1, #0x20 - ldrsh r0, [r4, r1] - movs r4, #0x74 - subs r4, r4, r0 - lsrs r0, r4, #0x1f - adds r4, r4, r0 - asrs r4, r4, #1 - rsbs r4, r4, #0 - ldr r0, _0814522C - ldr r5, _08145230 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - adds r1, r5, #0 - adds r2, r4, #0 - bl m4aMPlayPanpotControl - ldr r0, _08145234 - adds r1, r5, #0 - adds r2, r4, #0 - bl m4aMPlayPanpotControl - b _081452D4 - .align 2, 0 -_08145220: .4byte gUnknown_85976FA -_08145224: .4byte gUnknown_85976FC -_08145228: .4byte gUnknown_203A854 -_0814522C: .4byte gUnknown_3007510 -_08145230: .4byte 0x0000FFFF -_08145234: .4byte gUnknown_3007550 -_08145238: - lsls r0, r1, #0x10 - cmp r0, #0 - blt _08145288 - ldr r0, _08145284 - ldr r0, [r0] - ldr r0, [r0, #0x38] - movs r2, #0x2e - ldrsh r0, [r0, r2] - add r0, sp - movs r2, #0 - ldrsb r2, [r0, r2] - movs r1, #0x30 - ldrsh r0, [r4, r1] - movs r1, #7 - subs r0, r1, r0 - lsls r0, r0, #1 - adds r0, r5, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - muls r0, r2, r0 - ldrh r2, [r4, #0x20] - adds r0, r0, r2 - strh r0, [r4, #0x20] - movs r2, #0x30 - ldrsh r0, [r4, r2] - subs r1, r1, r0 - lsls r1, r1, #1 - mov r0, sp - adds r0, #5 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] - b _081452D4 - .align 2, 0 -_08145284: .4byte gUnknown_203A854 -_08145288: - movs r0, #0x5e - bl m4aSongNumStartOrChange - ldr r0, _081452A8 - ldr r0, [r0] - ldr r0, [r0, #0x38] - movs r2, #0x2e - ldrsh r0, [r0, r2] - cmp r0, #0 - bne _081452AC - movs r0, #0x98 - lsls r0, r0, #1 - movs r1, #0x3f - bl PlayCry1 - b _081452B8 - .align 2, 0 -_081452A8: .4byte gUnknown_203A854 -_081452AC: - movs r0, #0x98 - lsls r0, r0, #1 - movs r1, #0x3f - rsbs r1, r1, #0 - bl PlayCry1 -_081452B8: - ldr r0, _081452DC - ldr r0, [r0] - ldr r0, [r0, #0x38] - ldrh r1, [r0, #0x2e] - adds r1, #2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim - movs r0, #0x2d - strh r0, [r4, #0x30] - ldr r0, _081452E0 - str r0, [r4, #0x1c] -_081452D4: - add sp, #0x14 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081452DC: .4byte gUnknown_203A854 -_081452E0: .4byte sub_081450FC - thumb_func_end sub_081451A4 - - thumb_func_start sub_081452E4 -sub_081452E4: @ 0x081452E4 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - ldr r1, _08145344 - mov r0, sp - movs r2, #2 - bl memcpy - ldrh r0, [r4, #0x30] - subs r1, r0, #1 - strh r1, [r4, #0x30] - lsls r0, r0, #0x10 - cmp r0, #0 - blt _08145350 - ldr r0, _08145348 - ldr r0, [r0] - ldr r0, [r0, #0x38] - movs r1, #0x2e - ldrsh r0, [r0, r1] - add r0, sp - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #1 - ldrh r2, [r4, #0x20] - adds r0, r0, r2 - strh r0, [r4, #0x20] - ldr r1, _0814534C - movs r2, #0x3a - ldrsh r0, [r4, r2] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r1 - adds r2, #0x3e - ldrb r3, [r2] - lsls r0, r3, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - b _08145354 - .align 2, 0 -_08145344: .4byte gUnknown_85976FA -_08145348: .4byte gUnknown_203A854 -_0814534C: .4byte gUnknown_20205AC -_08145350: - ldr r0, _0814535C - str r0, [r4, #0x1c] -_08145354: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814535C: .4byte sub_08145060 - thumb_func_end sub_081452E4 - - thumb_func_start sub_08145360 -sub_08145360: @ 0x08145360 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0814539C - ldr r3, [r0] - ldr r1, [r3, #0x38] - movs r2, #0x2e - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _081453A8 - movs r0, #0x34 - ldrsh r2, [r1, r0] - ldr r1, _081453A0 - ldrb r0, [r3, #4] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x19 - adds r0, r0, r1 - ldrh r0, [r0, #0x12] - adds r0, #0x5a - cmp r2, r0 - bne _0814540A - ldr r2, _081453A4 - movs r0, #0x3a - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r3, #0x34 - b _081453D2 - .align 2, 0 -_0814539C: .4byte gUnknown_203A854 -_081453A0: .4byte gUnknown_8595EF4 -_081453A4: .4byte gUnknown_20205AC -_081453A8: - movs r0, #0x34 - ldrsh r2, [r1, r0] - ldr r1, _08145410 - ldrb r0, [r3, #4] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x19 - adds r0, r0, r1 - ldrh r0, [r0, #0x14] - movs r1, #0x87 - lsls r1, r1, #1 - adds r0, r0, r1 - cmp r2, r0 - bne _0814540A - ldr r2, _08145414 - movs r0, #0x3a - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r3, #0x2e -_081453D2: - strh r3, [r0, #0x30] - movs r0, #0x36 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r3, [r0, #0x30] - movs r0, #0x3a - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, _08145418 - str r1, [r0] - movs r0, #0x36 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, _0814541C - str r1, [r0] - movs r0, #0x2b - bl m4aSongNumStart -_0814540A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08145410: .4byte gUnknown_8595EF4 -_08145414: .4byte gUnknown_20205AC -_08145418: .4byte sub_081452E4 -_0814541C: .4byte sub_081451A4 - thumb_func_end sub_08145360 - - thumb_func_start sub_08145420 -sub_08145420: @ 0x08145420 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - movs r0, #0 - mov r8, r0 - ldr r0, _08145444 - ldrb r0, [r0] - cmp r0, #1 - beq _081454C4 - cmp r0, #1 - bgt _08145448 - cmp r0, #0 - beq _0814544E - b _08145516 - .align 2, 0 -_08145444: .4byte gUnknown_3005F2C -_08145448: - cmp r0, #2 - beq _08145500 - b _08145516 -_0814544E: - ldr r5, _081454B8 - ldr r0, [r5] - cmp r0, #0 - bne _0814546A - movs r0, #0x1c - bl AllocZeroed - str r0, [r5] - ldr r4, _081454BC - adds r0, r7, #0 - movs r1, #7 - bl GetWindowAttribute - str r0, [r4] -_0814546A: - ldr r1, [r5] - ldrh r0, [r6] - movs r2, #0 - strh r0, [r1, #0x14] - ldrb r0, [r6, #5] - strb r0, [r1, #0x16] - ldr r0, [r5] - strb r2, [r0, #0x1a] - ldr r0, [r5] - strb r2, [r0, #0x1b] - ldr r0, [r5] - strb r2, [r0, #0x10] - ldr r1, [r5] - movs r0, #0x1c - strb r0, [r1, #0x12] - ldr r0, [r5] - strb r2, [r0, #0x11] - ldrb r1, [r6, #4] - lsls r1, r1, #0x13 - rsbs r1, r1, #0 - asrs r1, r1, #0x10 - adds r0, r7, #0 - movs r2, #1 - bl sub_081458F0 - movs r4, #0 -_0814549E: - adds r0, r7, #0 - ldr r1, _081454C0 - movs r2, #0x20 - adds r3, r4, #0 - bl CopyToWindowPixelBuffer - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xdf - bls _0814549E - b _081454EC - .align 2, 0 -_081454B8: .4byte gUnknown_203A85C -_081454BC: .4byte gUnknown_203A860 -_081454C0: .4byte gUnknown_85987C4 -_081454C4: - movs r4, #0 - ldr r1, _081454F8 - ldr r0, [r1] - ldrb r0, [r0, #0x16] - lsls r0, r0, #3 - cmp r8, r0 - bge _081454EC - adds r5, r1, #0 -_081454D4: - adds r0, r4, #0 - movs r1, #0 - bl sub_08145774 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, [r5] - ldrb r0, [r0, #0x16] - lsls r0, r0, #3 - cmp r4, r0 - blt _081454D4 -_081454EC: - ldr r1, _081454FC - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _08145516 - .align 2, 0 -_081454F8: .4byte gUnknown_203A85C -_081454FC: .4byte gUnknown_3005F2C -_08145500: - adds r0, r7, #0 - bl sub_081458E0 - ldr r0, _08145524 - ldrb r1, [r6, #3] - lsls r1, r1, #4 - movs r2, #0x20 - bl LoadPalette - movs r0, #1 - mov r8, r0 -_08145516: - mov r0, r8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08145524: .4byte gUnknown_85987A4 - thumb_func_end sub_08145420 - - thumb_func_start sub_08145528 -sub_08145528: @ 0x08145528 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl sub_081458E0 - adds r0, r4, #0 - bl sub_08145714 - ldr r2, _0814556C - ldr r1, [r2] - ldrb r0, [r1, #0x1b] - cmp r0, #0 - beq _0814554A - subs r0, #1 - strb r0, [r1, #0x1b] -_0814554A: - ldr r1, [r2] - ldrb r0, [r1, #0x1a] - cmp r0, #0 - beq _08145570 - subs r0, #1 - strb r0, [r1, #0x1a] - ldr r1, [r2] - ldrb r0, [r1, #0x1a] - cmp r0, #0 - bne _08145570 - ldrh r0, [r1, #0x18] - bl sub_08145654 - bl sub_081456D8 - b _081455F6 - .align 2, 0 -_0814556C: .4byte gUnknown_203A85C -_08145570: - ldr r5, _08145580 - ldr r0, [r5] - ldrb r0, [r0, #0x10] - cmp r0, #0 - bne _08145584 - bl sub_081456D8 - b _081455F6 - .align 2, 0 -_08145580: .4byte gUnknown_203A85C -_08145584: - cmp r0, #1 - bne _0814558E - bl sub_08145674 - b _081455B2 -_0814558E: - cmp r0, #8 - bls _081455B2 - bl IsCryPlaying - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _081455A8 - bl sub_081456D8 - ldr r0, [r5] - strb r4, [r0, #0x10] - b _081455F6 -_081455A8: - bl sub_08145674 - ldr r1, [r5] - movs r0, #1 - strb r0, [r1, #0x10] -_081455B2: - ldr r5, _081455FC - ldr r1, [r5] - ldrb r4, [r1, #0x10] - subs r4, #1 - lsls r4, r4, #0x19 - lsrs r4, r4, #0x18 - ldrb r0, [r1, #0x16] - lsls r0, r0, #3 - ldrb r2, [r1, #0x11] - adds r0, r0, r2 - subs r0, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r1, r4 - ldrb r1, [r1] - bl sub_08145774 - ldr r1, [r5] - ldrb r0, [r1, #0x16] - lsls r0, r0, #3 - ldrb r2, [r1, #0x11] - adds r0, r0, r2 - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r4, #1 - adds r1, r1, r4 - ldrb r1, [r1] - bl sub_08145774 - ldr r1, [r5] - ldrb r0, [r1, #0x10] - adds r0, #1 - strb r0, [r1, #0x10] -_081455F6: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081455FC: .4byte gUnknown_203A85C - thumb_func_end sub_08145528 - - thumb_func_start sub_08145600 -sub_08145600: @ 0x08145600 - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r5, r4, #0 - ldr r0, _08145640 - ldr r0, [r0, #4] - cmp r0, #0 - bge _0814564E - ldr r6, _08145644 - ldr r1, [r6] - ldrb r0, [r1, #0x1a] - cmp r0, #0 - bne _0814564E - ldrb r0, [r1, #0x1b] - cmp r0, #0 - bne _0814564E - movs r0, #4 - strb r0, [r1, #0x1b] - bl IsCryPlaying - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08145648 - bl sub_080A2F7C - ldr r1, [r6] - strh r4, [r1, #0x18] - movs r0, #2 - strb r0, [r1, #0x1a] - b _0814564E - .align 2, 0 -_08145640: .4byte gUnknown_30074D0 -_08145644: .4byte gUnknown_203A85C -_08145648: - adds r0, r5, #0 - bl sub_08145654 -_0814564E: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_08145600 - - thumb_func_start sub_08145654 -sub_08145654: @ 0x08145654 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0 - movs r2, #0x7d - movs r3, #0xa - bl PlayCry2 - ldr r0, _08145670 - ldr r1, [r0] - movs r0, #1 - strb r0, [r1, #0x10] - pop {r0} - bx r0 - .align 2, 0 -_08145670: .4byte gUnknown_203A85C - thumb_func_end sub_08145654 - - thumb_func_start sub_08145674 -sub_08145674: @ 0x08145674 - push {r4, lr} - ldr r3, _08145684 - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #1 - bgt _0814568C - ldr r0, _08145688 - b _081456A4 - .align 2, 0 -_08145684: .4byte gUnknown_3002FF0 -_08145688: .4byte gUnknown_3006470 -_0814568C: - ldr r2, _081456D0 - ldrb r1, [r2, #0xb] - movs r0, #0 - ldrsb r0, [r3, r0] - subs r0, #1 - subs r1, r1, r0 - ldr r0, [r2, #0x10] - muls r0, r1, r0 - movs r1, #0xd4 - lsls r1, r1, #2 - adds r2, r2, r1 - adds r0, r0, r2 -_081456A4: - movs r1, #0xc6 - lsls r1, r1, #3 - adds r3, r0, r1 - movs r2, #0 - ldr r4, _081456D4 -_081456AE: - ldr r1, [r4] - adds r1, r1, r2 - lsls r0, r2, #1 - adds r0, r0, r3 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #1 - strb r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xf - bls _081456AE - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081456D0: .4byte gUnknown_3006120 -_081456D4: .4byte gUnknown_203A85C - thumb_func_end sub_08145674 - - thumb_func_start sub_081456D8 -sub_081456D8: @ 0x081456D8 - push {r4, lr} - ldr r4, _08145710 - ldr r1, [r4] - ldrb r0, [r1, #0x16] - lsls r0, r0, #3 - ldrb r1, [r1, #0x11] - adds r0, r0, r1 - subs r0, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl sub_08145774 - ldr r1, [r4] - ldrb r0, [r1, #0x16] - lsls r0, r0, #3 - ldrb r1, [r1, #0x11] - adds r0, r0, r1 - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl sub_08145774 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08145710: .4byte gUnknown_203A85C - thumb_func_end sub_081456D8 - - thumb_func_start sub_08145714 -sub_08145714: @ 0x08145714 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r4, _0814576C - ldr r0, [r4] - ldrb r1, [r0, #0x11] - adds r0, r6, #0 - movs r2, #0 - bl sub_081458F0 - ldr r1, [r4] - ldrb r0, [r1, #0x11] - adds r0, #2 - strb r0, [r1, #0x11] - ldr r1, [r4] - ldrb r0, [r1, #0x11] - lsrs r0, r0, #3 - ldrb r1, [r1, #0x16] - adds r1, r0, r1 - adds r2, r1, #1 - adds r0, r2, #0 - asrs r0, r0, #5 - lsls r0, r0, #5 - subs r0, r2, r0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - movs r4, #0 -_0814574A: - lsls r3, r4, #5 - adds r3, r5, r3 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - adds r0, r6, #0 - ldr r1, _08145770 - movs r2, #0x20 - bl CopyToWindowPixelBuffer - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #6 - bls _0814574A - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0814576C: .4byte gUnknown_203A85C -_08145770: .4byte gUnknown_85987C4 - thumb_func_end sub_08145714 - - thumb_func_start sub_08145774 -sub_08145774: @ 0x08145774 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - lsls r7, r0, #0x18 - lsrs r4, r7, #0x18 - lsls r1, r1, #0x18 - movs r0, #0xfe - lsls r0, r0, #0x17 - adds r1, r1, r0 - lsrs r1, r1, #0x10 - adds r0, r1, #0 - bl __floatsidf - ldr r3, _08145834 - ldr r2, _08145830 - bl __divdf3 - bl __fixunsdfsi - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0x37 - bls _081457AA - movs r5, #0x37 -_081457AA: - str r5, [sp] - movs r6, #1 - ands r6, r4 - ldr r0, _08145838 - ldr r1, [r0] - lsrs r7, r7, #0x1b - mov r8, r7 - ldr r0, _0814583C - ldrb r1, [r1, #0x12] - cmp r5, r1 - bls _0814584C - ldr r3, _08145840 - adds r0, r6, r0 - ldrb r0, [r0] - mov sb, r0 - movs r7, #7 - ands r7, r4 -_081457CC: - lsls r1, r5, #1 - lsls r0, r7, #3 - adds r0, r0, r7 - lsls r0, r0, #4 - adds r1, r1, r0 - ldr r2, _08145844 - adds r1, r1, r2 - mov r4, r8 - lsls r0, r4, #5 - ldrh r1, [r1] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r1, [r3] - adds r1, r1, r2 - ldrb r0, [r1] - mov r4, sb - ands r0, r4 - strb r0, [r1] - ldr r4, [r3] - adds r4, r4, r2 - adds r0, r5, #0 - movs r1, #3 - str r3, [sp, #4] - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, #1 - movs r1, #0xf - ands r0, r1 - lsls r1, r6, #4 - adds r0, r0, r1 - ldr r1, _08145848 - adds r0, r0, r1 - ldrb r1, [r4] - ldrb r0, [r0] - orrs r1, r0 - strb r1, [r4] - subs r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r2, _08145838 - ldr r0, [r2] - ldr r3, [sp, #4] - ldrb r0, [r0, #0x12] - cmp r5, r0 - bhi _081457CC - b _081458B6 - .align 2, 0 -_08145830: .4byte 0x40920000 -_08145834: .4byte 0x00000000 -_08145838: .4byte gUnknown_203A85C -_0814583C: .4byte gUnknown_85987E4 -_08145840: .4byte gUnknown_203A860 -_08145844: .4byte gUnknown_8598324 -_08145848: .4byte gUnknown_85987E6 -_0814584C: - lsls r3, r6, #4 - mov sl, r3 - ldr r7, _081458D0 - adds r0, r6, r0 - ldrb r0, [r0] - mov sb, r0 - movs r6, #7 - ands r6, r4 -_0814585C: - lsls r1, r5, #1 - lsls r0, r6, #3 - adds r0, r0, r6 - lsls r0, r0, #4 - adds r1, r1, r0 - ldr r4, _081458D4 - adds r1, r1, r4 - mov r2, r8 - lsls r0, r2, #5 - ldrh r1, [r1] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r1, [r7] - adds r1, r1, r2 - ldrb r0, [r1] - mov r3, sb - ands r0, r3 - strb r0, [r1] - ldr r4, [r7] - adds r4, r4, r2 - adds r0, r5, #0 - movs r1, #3 - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, #1 - movs r1, #0xf - ands r0, r1 - add r0, sl - ldr r1, _081458D8 - adds r0, r0, r1 - ldrb r1, [r4] - ldrb r0, [r0] - orrs r1, r0 - strb r1, [r4] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r2, _081458DC - ldr r0, [r2] - ldrb r0, [r0, #0x12] - cmp r5, r0 - blo _0814585C -_081458B6: - ldr r3, _081458DC - ldr r0, [r3] - mov r4, sp - ldrb r4, [r4] - strb r4, [r0, #0x12] - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081458D0: .4byte gUnknown_203A860 -_081458D4: .4byte gUnknown_8598324 -_081458D8: .4byte gUnknown_85987E6 -_081458DC: .4byte gUnknown_203A85C - thumb_func_end sub_08145774 - - thumb_func_start sub_081458E0 -sub_081458E0: @ 0x081458E0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - bl CopyWindowToVram - pop {r0} - bx r0 - thumb_func_end sub_081458E0 - - thumb_func_start sub_081458F0 -sub_081458F0: @ 0x081458F0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - lsls r2, r2, #0x18 - cmp r2, #0 - bne _08145914 - movs r1, #0 - bl GetWindowAttribute - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r4, #0x10 - asrs r1, r1, #8 - movs r2, #0 - bl ChangeBgX -_08145914: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081458F0 - - thumb_func_start sub_0814591C -sub_0814591C: @ 0x0814591C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - movs r0, #0 - mov r8, r0 - ldr r6, _0814593C - ldrb r0, [r6] - cmp r0, #0 - beq _08145940 - cmp r0, #1 - beq _0814597C - b _081459C4 - .align 2, 0 -_0814593C: .4byte gUnknown_3005F2C -_08145940: - ldr r5, _08145970 - ldr r0, [r5] - cmp r0, #0 - bne _08145950 - movs r0, #8 - bl AllocZeroed - str r0, [r5] -_08145950: - ldr r1, _08145974 - adds r0, r7, #0 - movs r2, #0 - movs r3, #0 - bl CopyToWindowPixelBuffer - ldr r0, _08145978 - ldrb r1, [r4, #3] - lsls r1, r1, #4 - movs r2, #0x20 - bl LoadPalette - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] - b _081459C4 - .align 2, 0 -_08145970: .4byte gUnknown_203A864 -_08145974: .4byte gUnknown_8597FEC -_08145978: .4byte gUnknown_8597FCC -_0814597C: - ldr r0, _081459D0 - bl LoadSpriteSheets - ldr r0, _081459D4 - bl LoadSpritePalettes - ldr r0, _081459D8 - ldrb r1, [r4, #4] - lsls r1, r1, #0x13 - movs r2, #0xa0 - lsls r2, r2, #0xe - adds r1, r1, r2 - asrs r1, r1, #0x10 - ldrb r2, [r4, #5] - lsls r2, r2, #0x13 - movs r3, #0xe0 - lsls r3, r3, #0xe - adds r2, r2, r3 - asrs r2, r2, #0x10 - movs r3, #1 - bl CreateSprite - ldr r2, _081459DC - ldr r3, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r4, #0 - strh r0, [r3, #4] - movs r1, #0x20 - strb r1, [r3] - ldr r0, [r2] - strb r1, [r0, #1] - ldr r0, [r2] - strb r4, [r0, #2] - movs r0, #1 - mov r8, r0 -_081459C4: - mov r0, r8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081459D0: .4byte gUnknown_8598834 -_081459D4: .4byte gUnknown_8598844 -_081459D8: .4byte gUnknown_859881C -_081459DC: .4byte gUnknown_203A864 - thumb_func_end sub_0814591C - - thumb_func_start sub_081459E0 -sub_081459E0: @ 0x081459E0 - push {r4, r5, r6, lr} - ldr r4, _08145A2C - ldr r6, _08145A30 - ldr r0, [r6] - ldrh r1, [r0, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r0, [r0, #5] - lsrs r0, r0, #4 - bl sub_08008554 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl FreeSpritePaletteByTag - ldr r0, [r6] - ldrh r1, [r0, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - ldr r4, _08145A34 - ldr r0, [r4] - bl Free - movs r5, #0 - str r5, [r4] - ldr r0, [r6] - bl Free - str r5, [r6] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08145A2C: .4byte gUnknown_20205AC -_08145A30: .4byte gUnknown_203A864 -_08145A34: .4byte gUnknown_203A85C - thumb_func_end sub_081459E0 - - thumb_func_start sub_08145A38 -sub_08145A38: @ 0x08145A38 - push {r4, r5, r6, r7, lr} - sub sp, #0x14 - adds r7, r0, #0 - ldr r3, _08145A80 - ldr r4, _08145A84 - ldr r0, [r4] - ldrh r1, [r0, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r2, [r0, #1] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #1 - orrs r1, r2 - strb r1, [r0, #1] - ldr r2, [r4] - ldrh r1, [r2, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r1, #0 - strh r1, [r0, #6] - ldr r0, _08145A88 - ldr r0, [r0] - ldrb r1, [r0, #0x10] - cmp r1, #2 - beq _08145AB4 - cmp r1, #2 - bgt _08145A8C - cmp r1, #0 - beq _08145A92 - b _08145AFA - .align 2, 0 -_08145A80: .4byte gUnknown_20205AC -_08145A84: .4byte gUnknown_203A864 -_08145A88: .4byte gUnknown_203A85C -_08145A8C: - cmp r1, #6 - beq _08145AEC - b _08145AFA -_08145A92: - movs r0, #0x20 - strb r0, [r2, #1] - ldr r1, [r4] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - ble _08145AAE - ldrb r0, [r1, #2] - add r4, sp, #0xc - cmp r0, #1 - beq _08145AFC - subs r0, #1 - strb r0, [r1, #2] - b _08145AFC -_08145AAE: - movs r0, #5 - strb r0, [r1, #2] - b _08145AFA -_08145AB4: - movs r3, #0 - movs r2, #0 - add r4, sp, #0xc - adds r5, r0, #0 -_08145ABC: - lsls r1, r3, #0x18 - asrs r1, r1, #0x18 - adds r0, r5, r2 - ldrb r0, [r0] - cmp r1, r0 - bge _08145ACA - adds r3, r0, #0 -_08145ACA: - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0xf - bls _08145ABC - lsls r0, r3, #0x18 - asrs r0, r0, #0x18 - movs r1, #0xd0 - muls r0, r1, r0 - cmp r0, #0 - bge _08145AE2 - adds r0, #0xff -_08145AE2: - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - bl sub_08145BF0 - b _08145AFC -_08145AEC: - ldrb r1, [r0, #0xa] - movs r0, #0xd0 - muls r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - bl sub_08145BF0 -_08145AFA: - add r4, sp, #0xc -_08145AFC: - ldr r0, _08145B2C - ldr r2, [r0] - ldrb r5, [r2] - movs r1, #0 - ldrsb r1, [r2, r1] - movs r3, #1 - ldrsb r3, [r2, r3] - adds r6, r0, #0 - cmp r1, r3 - beq _08145B4E - cmp r1, r3 - bge _08145B30 - ldrb r0, [r2, #2] - adds r0, r5, r0 - strb r0, [r2] - ldr r2, [r6] - movs r1, #0 - ldrsb r1, [r2, r1] - ldrb r3, [r2, #1] - movs r0, #1 - ldrsb r0, [r2, r0] - cmp r1, r0 - ble _08145B4E - b _08145B46 - .align 2, 0 -_08145B2C: .4byte gUnknown_203A864 -_08145B30: - ldrb r0, [r2, #2] - subs r0, r5, r0 - strb r0, [r2] - ldr r2, [r6] - movs r1, #0 - ldrsb r1, [r2, r1] - ldrb r3, [r2, #1] - movs r0, #1 - ldrsb r0, [r2, r0] - cmp r1, r0 - bge _08145B4E -_08145B46: - strb r3, [r2] - ldr r1, [r6] - movs r0, #0 - strb r0, [r1, #1] -_08145B4E: - ldr r2, _08145BE4 - ldr r0, [sp, #4] - ands r0, r2 - movs r1, #0x80 - lsls r1, r1, #1 - orrs r0, r1 - ldr r1, _08145BE8 - ands r0, r1 - movs r1, #0x80 - lsls r1, r1, #0x11 - orrs r0, r1 - str r0, [sp, #4] - ldr r0, [r6] - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x10 - ldr r0, [sp, #8] - ands r0, r2 - orrs r0, r1 - str r0, [sp, #8] - add r0, sp, #4 - adds r1, r4, #0 - movs r2, #1 - movs r3, #2 - bl ObjAffineSet - add r0, sp, #0xc - ldrh r1, [r0] - ldrh r2, [r4, #2] - ldrh r3, [r4, #4] - ldrh r0, [r4, #6] - str r0, [sp] - movs r0, #0 - bl SetOamMatrix - ldr r2, _08145BEC - ldr r0, [r6] - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #0x7f - movs r1, #0xff - ands r0, r1 - lsls r1, r0, #1 - adds r1, r1, r2 - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r2, [r0] - movs r0, #0 - ldrsh r1, [r1, r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - cmp r0, #0 - bge _08145BC2 - adds r0, #0xff -_08145BC2: - asrs r0, r0, #8 - strh r0, [r7, #0x24] - lsls r1, r2, #0x10 - asrs r1, r1, #0x10 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - cmp r0, #0 - bge _08145BD6 - adds r0, #0xff -_08145BD6: - asrs r0, r0, #8 - strh r0, [r7, #0x26] - add sp, #0x14 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08145BE4: .4byte 0xFFFF0000 -_08145BE8: .4byte 0x0000FFFF -_08145BEC: .4byte gUnknown_82FA8CC - thumb_func_end sub_08145A38 - - thumb_func_start sub_08145BF0 -sub_08145BF0: @ 0x08145BF0 - push {lr} - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #0x20 - subs r2, r1, r0 - movs r0, #0xff - ands r2, r0 - adds r0, r2, #0 - subs r0, #0x21 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xbe - bhi _08145C0C - movs r2, #0xe0 -_08145C0C: - ldr r1, _08145C1C - ldr r0, [r1] - strb r2, [r0, #1] - ldr r1, [r1] - movs r0, #5 - strb r0, [r1, #2] - pop {r0} - bx r0 - .align 2, 0 -_08145C1C: .4byte gUnknown_203A864 - thumb_func_end sub_08145BF0 - - thumb_func_start sub_08145C20 -sub_08145C20: @ 0x08145C20 - push {r4, lr} - sub sp, #0xc - adds r1, r0, #0 - ldr r0, _08145C5C - movs r2, #1 - movs r3, #4 - bl sub_080089D8 - ldr r4, _08145C60 - ldr r1, _08145C64 - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r0, _08145C68 - ldrb r0, [r0] - movs r1, #2 - str r1, [sp] - movs r1, #0 - str r1, [sp, #4] - str r1, [sp, #8] - movs r1, #1 - adds r2, r4, #0 - movs r3, #8 - bl AddTextPrinterParameterized - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08145C5C: .4byte gUnknown_2021C40 -_08145C60: .4byte gUnknown_2021C7C -_08145C64: .4byte gUnknown_85C9443 -_08145C68: .4byte gUnknown_203A868 - thumb_func_end sub_08145C20 - - thumb_func_start sub_08145C6C -sub_08145C6C: @ 0x08145C6C - push {r4, r5, lr} - sub sp, #0x18 - adds r5, r0, #0 - adds r4, r1, #0 - adds r3, r2, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #8 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #0xf - str r0, [sp, #8] - movs r0, #0x9b - lsls r0, r0, #1 - str r0, [sp, #0xc] - add r0, sp, #0x10 - movs r1, #0 - adds r2, r4, #0 - bl SetWindowTemplateFields - ldr r4, _08145CD0 - add r0, sp, #0x10 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, #0 - bl FillWindowPixelBuffer - ldrb r0, [r4] - bl PutWindowTilemap - ldrb r0, [r4] - movs r2, #0x85 - lsls r2, r2, #2 - movs r1, #0 - movs r3, #0xe - bl DrawStdFrameWithCustomTileAndPalette - adds r0, r5, #0 - bl sub_08145C20 - add sp, #0x18 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08145CD0: .4byte gUnknown_203A868 - thumb_func_end sub_08145C6C - - thumb_func_start HideCoinsWindow -HideCoinsWindow: @ 0x08145CD4 - push {r4, lr} - ldr r4, _08145CEC - ldrb r0, [r4] - movs r1, #1 - bl sub_08197060 - ldrb r0, [r4] - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08145CEC: .4byte gUnknown_203A868 - thumb_func_end HideCoinsWindow - - thumb_func_start GetCoins -GetCoins: @ 0x08145CF0 - ldr r0, _08145D0C - ldr r1, [r0] - ldr r0, _08145D10 - adds r1, r1, r0 - ldr r0, _08145D14 - ldr r0, [r0] - adds r0, #0xac - ldr r0, [r0] - ldrh r1, [r1] - eors r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bx lr - .align 2, 0 -_08145D0C: .4byte gUnknown_3005AEC -_08145D10: .4byte 0x00000494 -_08145D14: .4byte gUnknown_3005AF0 - thumb_func_end GetCoins - - thumb_func_start SetCoins -SetCoins: @ 0x08145D18 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _08145D34 - ldr r2, [r1] - ldr r1, _08145D38 - ldr r1, [r1] - adds r1, #0xac - ldr r1, [r1] - eors r0, r1 - ldr r1, _08145D3C - adds r2, r2, r1 - strh r0, [r2] - bx lr - .align 2, 0 -_08145D34: .4byte gUnknown_3005AEC -_08145D38: .4byte gUnknown_3005AF0 -_08145D3C: .4byte 0x00000494 - thumb_func_end SetCoins - - thumb_func_start GiveCoins -GiveCoins: @ 0x08145D40 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - bl GetCoins - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r0, _08145D58 - cmp r1, r0 - bls _08145D5C - movs r0, #0 - b _08145D80 - .align 2, 0 -_08145D58: .4byte 0x0000270E -_08145D5C: - adds r0, r1, r4 - cmp r1, r0 - ble _08145D6C - ldr r0, _08145D68 - b _08145D7A - .align 2, 0 -_08145D68: .4byte 0x0000270F -_08145D6C: - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r0, _08145D88 - cmp r1, r0 - bls _08145D78 - adds r1, r0, #0 -_08145D78: - adds r0, r1, #0 -_08145D7A: - bl SetCoins - movs r0, #1 -_08145D80: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08145D88: .4byte 0x0000270F - thumb_func_end GiveCoins - - thumb_func_start TakeCoins -TakeCoins: @ 0x08145D8C - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - bl GetCoins - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r4 - bhs _08145DA2 - movs r0, #0 - b _08145DAE -_08145DA2: - subs r0, r0, r4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl SetCoins - movs r0, #1 -_08145DAE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end TakeCoins - - thumb_func_start GetLandmarkName -GetLandmarkName: @ 0x08145DB4 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - bl GetLandmarks - adds r4, r0, #0 - cmp r4, #0 - bne _08145DD0 -_08145DCC: - movs r0, #0 - b _08145E02 -_08145DD0: - ldr r6, _08145DD4 - b _08145DE6 - .align 2, 0 -_08145DD4: .4byte 0x0000FFFF -_08145DD8: - subs r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_08145DDE: - adds r4, #4 - ldr r0, [r4] - cmp r0, #0 - beq _08145DCC -_08145DE6: - ldr r1, [r4] - ldrh r0, [r1, #4] - cmp r0, r6 - beq _08145DFA - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08145DDE -_08145DFA: - cmp r5, #0 - bne _08145DD8 - ldr r0, [r4] - ldr r0, [r0] -_08145E02: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end GetLandmarkName - - thumb_func_start GetLandmarks -GetLandmarks: @ 0x08145E08 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - movs r2, #0 - ldr r0, _08145E4C - ldrb r1, [r0] - adds r4, r0, #0 - cmp r1, #0xd5 - beq _08145E78 - adds r1, r4, #0 -_08145E20: - lsls r0, r2, #3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, r3 - bhi _08145E78 - cmp r0, r3 - beq _08145E3E - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - lsls r0, r2, #3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0xd5 - bne _08145E20 -_08145E3E: - lsls r0, r2, #3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0xd5 - bne _08145E58 - b _08145E78 - .align 2, 0 -_08145E4C: .4byte gUnknown_8598C68 -_08145E50: - adds r0, r4, #4 - adds r0, r1, r0 - ldr r0, [r0] - b _08145E7A -_08145E58: - cmp r0, r3 - bne _08145E78 - ldr r5, _08145E80 -_08145E5E: - lsls r1, r2, #3 - adds r0, r1, r5 - ldrb r0, [r0, #1] - cmp r0, r6 - beq _08145E50 - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - lsls r0, r2, #3 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, r3 - beq _08145E5E -_08145E78: - movs r0, #0 -_08145E7A: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08145E80: .4byte gUnknown_8598C68 - thumb_func_end GetLandmarks - - thumb_func_start SetUpFieldMove_Strength -SetUpFieldMove_Strength: @ 0x08145E84 - push {r4, lr} - movs r0, #0x57 - bl CheckObjectGraphicsInFrontOfPlayer - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08145E98 - movs r0, #0 - b _08145EB2 -_08145E98: - ldr r4, _08145EB8 - bl GetCursorSelectionMonId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - ldr r1, _08145EBC - ldr r0, _08145EC0 - str r0, [r1] - ldr r1, _08145EC4 - ldr r0, _08145EC8 - str r0, [r1] - movs r0, #1 -_08145EB2: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08145EB8: .4byte gUnknown_2037290 -_08145EBC: .4byte gUnknown_3005B10 -_08145EC0: .4byte FieldCallback_PrepareFadeInFromMenu -_08145EC4: .4byte gUnknown_203CBB8 -_08145EC8: .4byte FldEff_UseStrength - thumb_func_end SetUpFieldMove_Strength - - thumb_func_start FldEff_UseStrength -FldEff_UseStrength: @ 0x08145ECC - push {lr} - bl GetCursorSelectionMonId - ldr r1, _08145EE4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [r1] - ldr r0, _08145EE8 - bl ScriptContext1_SetupScript - pop {r0} - bx r0 - .align 2, 0 -_08145EE4: .4byte gUnknown_20388A8 -_08145EE8: .4byte gUnknown_8256797 - thumb_func_end FldEff_UseStrength - - thumb_func_start sub_08145EEC -sub_08145EEC: @ 0x08145EEC - push {lr} - bl oei_task_add - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08145F20 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r2, _08145F24 - lsrs r0, r2, #0x10 - strh r0, [r1, #0x18] - strh r2, [r1, #0x1a] - ldr r0, _08145F28 - ldr r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08145F2C - adds r0, r0, r1 - ldr r1, _08145F30 - bl GetMonNickname - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_08145F20: .4byte gUnknown_3005B60 -_08145F24: .4byte CoordEventWeather_Clouds -_08145F28: .4byte gUnknown_20388A8 -_08145F2C: .4byte gUnknown_2024190 -_08145F30: .4byte gUnknown_2021C40 - thumb_func_end sub_08145EEC - - thumb_func_start CoordEventWeather_Clouds -CoordEventWeather_Clouds: @ 0x08145F34 - push {lr} - movs r0, #0x28 - bl FieldEffectActiveListRemove - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end CoordEventWeather_Clouds - - thumb_func_start CB2_TestBattleTransition -CB2_TestBattleTransition: @ 0x08145F44 - push {r4, lr} - ldr r4, _08145F54 - ldrb r0, [r4] - cmp r0, #0 - beq _08145F58 - cmp r0, #1 - beq _08145F6C - b _08145F80 - .align 2, 0 -_08145F54: .4byte gUnknown_300120B -_08145F58: - ldr r0, _08145F68 - ldrb r0, [r0] - bl LaunchBattleTransitionTask - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - b _08145F80 - .align 2, 0 -_08145F68: .4byte gUnknown_300120A -_08145F6C: - bl IsBattleTransitionDone - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08145F80 - movs r0, #0 - strb r0, [r4] - ldr r0, _08145F98 - bl SetMainCallback2 -_08145F80: - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08145F98: .4byte sub_08085A30 - thumb_func_end CB2_TestBattleTransition - - thumb_func_start TestBattleTransition -TestBattleTransition: @ 0x08145F9C - push {lr} - ldr r1, _08145FAC - strb r0, [r1] - ldr r0, _08145FB0 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_08145FAC: .4byte gUnknown_300120A -_08145FB0: .4byte CB2_TestBattleTransition - thumb_func_end TestBattleTransition - - thumb_func_start BattleTransition_StartOnField -BattleTransition_StartOnField: @ 0x08145FB4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08145FC8 - ldr r1, _08145FCC - str r1, [r2, #4] - bl LaunchBattleTransitionTask - pop {r0} - bx r0 - .align 2, 0 -_08145FC8: .4byte gUnknown_3002360 -_08145FCC: .4byte CB2_OverworldBasic - thumb_func_end BattleTransition_StartOnField - - thumb_func_start BattleTransition_Start -BattleTransition_Start: @ 0x08145FD0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl LaunchBattleTransitionTask - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BattleTransition_Start - - thumb_func_start IsBattleTransitionDone -IsBattleTransitionDone: @ 0x08145FE0 - push {r4, lr} - ldr r0, _08146004 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _08146008 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0x26 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _0814600C - movs r0, #0 - b _08146020 - .align 2, 0 -_08146004: .4byte sub_08146068 -_08146008: .4byte gUnknown_3005B60 -_0814600C: - adds r0, r2, #0 - bl DestroyTask - ldr r4, _08146028 - ldr r0, [r4] - bl Free - movs r0, #0 - str r0, [r4] - movs r0, #1 -_08146020: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08146028: .4byte gUnknown_203A86C - thumb_func_end IsBattleTransitionDone - - thumb_func_start LaunchBattleTransitionTask -LaunchBattleTransitionTask: @ 0x0814602C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _0814605C - movs r1, #2 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08146060 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #0xa] - ldr r4, _08146064 - movs r0, #0x3c - bl AllocZeroed - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814605C: .4byte sub_08146068 -_08146060: .4byte gUnknown_3005B60 -_08146064: .4byte gUnknown_203A86C - thumb_func_end LaunchBattleTransitionTask - - thumb_func_start sub_08146068 -sub_08146068: @ 0x08146068 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _08146098 - ldr r2, _0814609C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_0814607A: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0814607A - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08146098: .4byte gUnknown_85A8548 -_0814609C: .4byte gUnknown_3005B60 - thumb_func_end sub_08146068 - - thumb_func_start Transition_Phase1 -Transition_Phase1: @ 0x081460A0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080ABCCC - ldr r0, _081460CC - ldr r1, _081460D0 - ldr r2, _081460D4 - bl CpuSet - ldr r1, _081460D8 - movs r2, #0xa - ldrsh r0, [r4, r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #0 - bne _081460DC - movs r0, #2 - strh r0, [r4, #8] - movs r0, #1 - b _081460EA - .align 2, 0 -_081460CC: .4byte gUnknown_20377B4 -_081460D0: .4byte gUnknown_20373B4 -_081460D4: .4byte 0x04000100 -_081460D8: .4byte gUnknown_85A83F8 -_081460DC: - movs r1, #4 - bl CreateTask - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 -_081460EA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end Transition_Phase1 - - thumb_func_start Transition_WaitForPhase1 -Transition_WaitForPhase1: @ 0x081460F0 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08146110 - movs r2, #0xa - ldrsh r0, [r4, r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _08146114 - movs r0, #0 - b _0814611C - .align 2, 0 -_08146110: .4byte gUnknown_85A83F8 -_08146114: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #1 -_0814611C: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end Transition_WaitForPhase1 - - thumb_func_start Transition_Phase2 -Transition_Phase2: @ 0x08146124 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08146148 - movs r2, #0xa - ldrsh r0, [r4, r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0 - bl CreateTask - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08146148: .4byte gUnknown_85A84A0 - thumb_func_end Transition_Phase2 - - thumb_func_start Transition_WaitForPhase2 -Transition_WaitForPhase2: @ 0x0814614C - push {r4, lr} - adds r4, r0, #0 - movs r0, #0 - strh r0, [r4, #0x26] - ldr r1, _08146178 - movs r2, #0xa - ldrsh r0, [r4, r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08146170 - movs r0, #1 - strh r0, [r4, #0x26] -_08146170: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08146178: .4byte gUnknown_85A84A0 - thumb_func_end Transition_WaitForPhase2 - - thumb_func_start Phase1Task_TransitionAll -Phase1Task_TransitionAll: @ 0x0814617C - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r4, r0, #0 - ldr r1, _081461B0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r1, r0, r1 - ldrh r2, [r1, #8] - movs r3, #8 - ldrsh r0, [r1, r3] - cmp r0, #0 - bne _081461B4 - adds r0, r2, #1 - strh r0, [r1, #8] - movs r0, #2 - str r0, [sp] - movs r0, #0 - movs r1, #0 - movs r2, #3 - movs r3, #2 - bl sub_08149E38 - b _081461C4 - .align 2, 0 -_081461B0: .4byte gUnknown_3005B60 -_081461B4: - bl IsPhase1Done - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081461C4 - adds r0, r4, #0 - bl DestroyTask -_081461C4: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end Phase1Task_TransitionAll - - thumb_func_start sub_081461CC -sub_081461CC: @ 0x081461CC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _081461FC - ldr r2, _08146200 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_081461DE: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081461DE - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081461FC: .4byte gUnknown_85A8558 -_08146200: .4byte gUnknown_3005B60 - thumb_func_end sub_081461CC - - thumb_func_start Phase2_Blur_Func1 -Phase2_Blur_Func1: @ 0x08146204 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x4c - movs r1, #0 - bl SetGpuReg - movs r0, #0xa - movs r1, #0x40 - bl SetGpuRegBits - movs r0, #0xc - movs r1, #0x40 - bl SetGpuRegBits - movs r0, #0xe - movs r1, #0x40 - bl SetGpuRegBits - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end Phase2_Blur_Func1 - - thumb_func_start Phase2_Blur_Func2 -Phase2_Blur_Func2: @ 0x08146238 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - ldrh r0, [r4, #0xa] - movs r1, #0xa - ldrsh r2, [r4, r1] - cmp r2, #0 - beq _0814624E - subs r0, #1 - strh r0, [r4, #0xa] - b _0814628E -_0814624E: - movs r0, #4 - strh r0, [r4, #0xa] - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xa - bne _08146270 - movs r1, #1 - rsbs r1, r1, #0 - str r2, [sp] - adds r0, r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade -_08146270: - ldrh r1, [r4, #0xc] - movs r0, #0xf - ands r0, r1 - lsls r1, r0, #4 - orrs r1, r0 - movs r0, #0x4c - bl SetGpuReg - movs r1, #0xc - ldrsh r0, [r4, r1] - cmp r0, #0xe - ble _0814628E - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_0814628E: - movs r0, #0 - add sp, #4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end Phase2_Blur_Func2 - - thumb_func_start Phase2_Blur_Func3 -Phase2_Blur_Func3: @ 0x08146298 - push {lr} - ldr r0, _081462BC - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081462B4 - ldr r0, _081462C0 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_081462B4: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_081462BC: .4byte gUnknown_2037C74 -_081462C0: .4byte sub_081461CC - thumb_func_end Phase2_Blur_Func3 - - thumb_func_start sub_081462C4 -sub_081462C4: @ 0x081462C4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _081462F4 - ldr r2, _081462F8 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_081462D6: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081462D6 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081462F4: .4byte gUnknown_85A8564 -_081462F8: .4byte gUnknown_3005B60 - thumb_func_end sub_081462C4 - - thumb_func_start Phase2_Swirl_Func1 -Phase2_Swirl_Func1: @ 0x081462FC - push {r4, r5, lr} - sub sp, #8 - adds r5, r0, #0 - bl sub_08149FC8 - bl ScanlineEffect_Clear - movs r0, #1 - rsbs r0, r0, #0 - movs r4, #0 - str r4, [sp] - movs r1, #4 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _08146358 - ldr r1, _0814635C - ldr r1, [r1] - movs r2, #0x14 - ldrsh r1, [r1, r2] - str r4, [sp] - movs r2, #0xa0 - str r2, [sp, #4] - movs r2, #0 - movs r3, #2 - bl sub_0814A058 - ldr r0, _08146360 - bl SetVBlankCallback - ldr r0, _08146364 - bl SetHBlankCallback - movs r0, #3 - bl EnableInterrupts - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - movs r0, #0 - add sp, #8 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08146358: .4byte gUnknown_2039048 -_0814635C: .4byte gUnknown_203A86C -_08146360: .4byte VBlankCB_Phase2_Swirl -_08146364: .4byte sub_08146418 - thumb_func_end Phase2_Swirl_Func1 - - thumb_func_start Phase2_Swirl_Func2 -Phase2_Swirl_Func2: @ 0x08146368 - push {r4, r5, lr} - sub sp, #8 - ldr r4, _081463D0 - ldr r2, [r4] - ldrb r1, [r2] - movs r1, #0 - strb r1, [r2] - ldrh r1, [r0, #0xa] - adds r1, #4 - strh r1, [r0, #0xa] - ldrh r1, [r0, #0xc] - adds r1, #8 - strh r1, [r0, #0xc] - ldr r3, _081463D4 - ldr r1, [r4] - movs r2, #0x14 - ldrsh r1, [r1, r2] - movs r5, #0xa - ldrsh r2, [r0, r5] - movs r5, #0xc - ldrsh r0, [r0, r5] - str r0, [sp] - movs r0, #0xa0 - str r0, [sp, #4] - adds r0, r3, #0 - movs r3, #2 - bl sub_0814A058 - ldr r0, _081463D8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081463BA - ldr r0, _081463DC - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_081463BA: - ldr r0, [r4] - ldrb r1, [r0] - adds r1, #1 - ldrb r2, [r0] - strb r1, [r0] - movs r0, #0 - add sp, #8 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081463D0: .4byte gUnknown_203A86C -_081463D4: .4byte gUnknown_20388C8 -_081463D8: .4byte gUnknown_2037C74 -_081463DC: .4byte sub_081462C4 - thumb_func_end Phase2_Swirl_Func2 - - thumb_func_start VBlankCB_Phase2_Swirl -VBlankCB_Phase2_Swirl: @ 0x081463E0 - push {lr} - bl VBlankCB_BattleTransition - ldr r0, _08146408 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, #0 - beq _08146404 - ldr r1, _0814640C - ldr r0, _08146410 - str r0, [r1] - movs r2, #0xf0 - lsls r2, r2, #3 - adds r0, r0, r2 - str r0, [r1, #4] - ldr r0, _08146414 - str r0, [r1, #8] - ldr r0, [r1, #8] -_08146404: - pop {r0} - bx r0 - .align 2, 0 -_08146408: .4byte gUnknown_203A86C -_0814640C: .4byte 0x040000D4 -_08146410: .4byte gUnknown_20388C8 -_08146414: .4byte 0x800000A0 - thumb_func_end VBlankCB_Phase2_Swirl - - thumb_func_start sub_08146418 -sub_08146418: @ 0x08146418 - ldr r1, _08146438 - ldr r0, _0814643C - ldrh r0, [r0] - lsls r0, r0, #1 - movs r2, #0xf0 - lsls r2, r2, #3 - adds r1, r1, r2 - adds r0, r0, r1 - ldrh r1, [r0] - ldr r0, _08146440 - strh r1, [r0] - adds r0, #4 - strh r1, [r0] - adds r0, #4 - strh r1, [r0] - bx lr - .align 2, 0 -_08146438: .4byte gUnknown_20388C8 -_0814643C: .4byte 0x04000006 -_08146440: .4byte 0x04000014 - thumb_func_end sub_08146418 - - thumb_func_start sub_08146444 -sub_08146444: @ 0x08146444 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _08146474 - ldr r2, _08146478 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_08146456: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08146456 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08146474: .4byte gUnknown_85A856C -_08146478: .4byte gUnknown_3005B60 - thumb_func_end sub_08146444 - - thumb_func_start Phase2_Shuffle_Func1 -Phase2_Shuffle_Func1: @ 0x0814647C - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - bl sub_08149FC8 - bl ScanlineEffect_Clear - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r1, #4 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _081464D0 - ldr r1, [r0] - ldr r0, _081464D4 - movs r2, #0x16 - ldrsh r1, [r1, r2] - movs r2, #0xa0 - lsls r2, r2, #1 - bl memset - ldr r0, _081464D8 - bl SetVBlankCallback - ldr r0, _081464DC - bl SetHBlankCallback - movs r0, #3 - bl EnableInterrupts - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081464D0: .4byte gUnknown_203A86C -_081464D4: .4byte gUnknown_2039048 -_081464D8: .4byte VBlankCB_Phase2_Shuffle -_081464DC: .4byte sub_081465A8 - thumb_func_end Phase2_Shuffle_Func1 - - thumb_func_start Phase2_Shuffle_Func2 -Phase2_Shuffle_Func2: @ 0x081464E0 - push {r4, r5, r6, r7, lr} - ldr r1, _08146560 - ldr r2, [r1] - ldrb r1, [r2] - movs r1, #0 - strb r1, [r2] - ldrh r4, [r0, #0xa] - ldrh r2, [r0, #0xc] - lsls r3, r2, #0x10 - asrs r3, r3, #0x18 - movs r5, #0x84 - lsls r5, r5, #5 - adds r1, r4, r5 - strh r1, [r0, #0xa] - movs r1, #0xc0 - lsls r1, r1, #1 - adds r2, r2, r1 - strh r2, [r0, #0xc] - movs r5, #0 - lsls r7, r3, #0x10 -_08146508: - lsrs r0, r4, #8 - asrs r1, r7, #0x10 - bl Sin - ldr r1, _08146564 - lsls r2, r5, #1 - adds r2, r2, r1 - ldr r6, _08146560 - ldr r1, [r6] - ldrh r1, [r1, #0x16] - adds r0, r0, r1 - strh r0, [r2] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r1, #0x84 - lsls r1, r1, #5 - adds r0, r4, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r5, #0x9f - bls _08146508 - ldr r0, _08146568 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0814654E - ldr r0, _0814656C - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_0814654E: - ldr r0, [r6] - ldrb r1, [r0] - adds r1, #1 - ldrb r2, [r0] - strb r1, [r0] - movs r0, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08146560: .4byte gUnknown_203A86C -_08146564: .4byte gUnknown_20388C8 -_08146568: .4byte gUnknown_2037C74 -_0814656C: .4byte sub_08146444 - thumb_func_end Phase2_Shuffle_Func2 - - thumb_func_start VBlankCB_Phase2_Shuffle -VBlankCB_Phase2_Shuffle: @ 0x08146570 - push {lr} - bl VBlankCB_BattleTransition - ldr r0, _08146598 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, #0 - beq _08146594 - ldr r1, _0814659C - ldr r0, _081465A0 - str r0, [r1] - movs r2, #0xf0 - lsls r2, r2, #3 - adds r0, r0, r2 - str r0, [r1, #4] - ldr r0, _081465A4 - str r0, [r1, #8] - ldr r0, [r1, #8] -_08146594: - pop {r0} - bx r0 - .align 2, 0 -_08146598: .4byte gUnknown_203A86C -_0814659C: .4byte 0x040000D4 -_081465A0: .4byte gUnknown_20388C8 -_081465A4: .4byte 0x800000A0 - thumb_func_end VBlankCB_Phase2_Shuffle - - thumb_func_start sub_081465A8 -sub_081465A8: @ 0x081465A8 - ldr r1, _081465C8 - ldr r0, _081465CC - ldrh r0, [r0] - lsls r0, r0, #1 - movs r2, #0xf0 - lsls r2, r2, #3 - adds r1, r1, r2 - adds r0, r0, r1 - ldrh r1, [r0] - ldr r0, _081465D0 - strh r1, [r0] - adds r0, #4 - strh r1, [r0] - adds r0, #4 - strh r1, [r0] - bx lr - .align 2, 0 -_081465C8: .4byte gUnknown_20388C8 -_081465CC: .4byte 0x04000006 -_081465D0: .4byte 0x04000016 - thumb_func_end sub_081465A8 - - thumb_func_start sub_081465D4 -sub_081465D4: @ 0x081465D4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _08146604 - ldr r2, _08146608 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_081465E6: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081465E6 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08146604: .4byte gUnknown_85A85AC -_08146608: .4byte gUnknown_3005B60 - thumb_func_end sub_081465D4 - - thumb_func_start sub_0814660C -sub_0814660C: @ 0x0814660C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _0814663C - ldr r2, _08146640 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_0814661E: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0814661E - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0814663C: .4byte gUnknown_85A8574 -_08146640: .4byte gUnknown_3005B60 - thumb_func_end sub_0814660C - - thumb_func_start sub_08146644 -sub_08146644: @ 0x08146644 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _08146674 - ldr r2, _08146678 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_08146656: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08146656 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08146674: .4byte gUnknown_85A8590 -_08146678: .4byte gUnknown_3005B60 - thumb_func_end sub_08146644 - - thumb_func_start sub_0814667C -sub_0814667C: @ 0x0814667C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _081466AC - ldr r2, _081466B0 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_0814668E: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0814668E - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081466AC: .4byte gUnknown_85A85C4 -_081466B0: .4byte gUnknown_3005B60 - thumb_func_end sub_0814667C - - thumb_func_start sub_081466B4 -sub_081466B4: @ 0x081466B4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _081466E4 - ldr r2, _081466E8 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_081466C6: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081466C6 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081466E4: .4byte gUnknown_85A85DC -_081466E8: .4byte gUnknown_3005B60 - thumb_func_end sub_081466B4 - - thumb_func_start sub_081466EC -sub_081466EC: @ 0x081466EC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _0814671C - ldr r2, _08146720 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_081466FE: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081466FE - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0814671C: .4byte gUnknown_85A85F4 -_08146720: .4byte gUnknown_3005B60 - thumb_func_end sub_081466EC - - thumb_func_start sub_08146724 -sub_08146724: @ 0x08146724 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _08146754 - ldr r2, _08146758 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_08146736: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08146736 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08146754: .4byte gUnknown_85A860C -_08146758: .4byte gUnknown_3005B60 - thumb_func_end sub_08146724 - - thumb_func_start sub_0814675C -sub_0814675C: @ 0x0814675C - push {r4, lr} - adds r4, r0, #0 - bl sub_08149FC8 - bl ScanlineEffect_Clear - movs r1, #0 - movs r0, #0x10 - strh r0, [r4, #0xa] - strh r1, [r4, #0xc] - strh r1, [r4, #0x10] - movs r0, #0x80 - lsls r0, r0, #7 - strh r0, [r4, #0x12] - ldr r0, _081467B8 - ldr r2, [r0] - movs r0, #0x3f - strh r0, [r2, #2] - strh r1, [r2, #4] - movs r0, #0xf0 - strh r0, [r2, #6] - movs r0, #0xa0 - strh r0, [r2, #8] - ldr r0, _081467BC - strh r0, [r2, #0xe] - ldrh r0, [r4, #0xa] - lsls r0, r0, #8 - ldrh r1, [r4, #0xc] - orrs r0, r1 - strh r0, [r2, #0x10] - ldr r0, _081467C0 - movs r2, #0xf0 - movs r1, #0x9f - ldr r3, _081467C4 - adds r0, r0, r3 -_081467A2: - strh r2, [r0] - subs r0, #2 - subs r1, #1 - cmp r1, #0 - bge _081467A2 - ldr r0, _081467C8 - bl SetVBlankCallback - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081467B8: .4byte gUnknown_203A86C -_081467BC: .4byte 0x00003F41 -_081467C0: .4byte gUnknown_20388C8 -_081467C4: .4byte 0x000008BE -_081467C8: .4byte VBlankCB0_Phase2_BigPokeball - thumb_func_end sub_0814675C - - thumb_func_start Phase2_Aqua_Func1 -Phase2_Aqua_Func1: @ 0x081467CC - push {r4, r5, lr} - sub sp, #0xc - adds r4, r0, #0 - movs r5, #0 - movs r0, #0x3c - strh r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0814675C - add r0, sp, #4 - add r1, sp, #8 - bl sub_0814A018 - mov r0, sp - strh r5, [r0] - ldr r1, [sp, #4] - ldr r2, _08146814 - bl CpuSet - ldr r0, _08146818 - ldr r1, [sp, #8] - bl LZ77UnCompVram - ldr r0, _0814681C - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - add sp, #0xc - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08146814: .4byte 0x01000400 -_08146818: .4byte gUnknown_859A980 -_0814681C: .4byte gUnknown_859A960 - thumb_func_end Phase2_Aqua_Func1 - - thumb_func_start Phase2_Magma_Func1 -Phase2_Magma_Func1: @ 0x08146820 - push {r4, r5, lr} - sub sp, #0xc - adds r4, r0, #0 - movs r5, #0 - movs r0, #0x3c - strh r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0814675C - add r0, sp, #4 - add r1, sp, #8 - bl sub_0814A018 - mov r0, sp - strh r5, [r0] - ldr r1, [sp, #4] - ldr r2, _08146868 - bl CpuSet - ldr r0, _0814686C - ldr r1, [sp, #8] - bl LZ77UnCompVram - ldr r0, _08146870 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - add sp, #0xc - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08146868: .4byte 0x01000400 -_0814686C: .4byte gUnknown_859AF54 -_08146870: .4byte gUnknown_859A960 - thumb_func_end Phase2_Magma_Func1 - - thumb_func_start Phase2_Regi_Func1 -Phase2_Regi_Func1: @ 0x08146874 - push {r4, r5, lr} - sub sp, #0xc - adds r4, r0, #0 - movs r5, #0 - movs r0, #0x3c - strh r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0814675C - add r0, sp, #4 - add r1, sp, #8 - bl sub_0814A018 - mov r0, sp - strh r5, [r0] - ldr r1, [sp, #4] - ldr r2, _081468B8 - bl CpuSet - ldr r0, _081468BC - ldr r1, [sp, #8] - movs r2, #0x80 - lsls r2, r2, #5 - bl CpuSet - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - add sp, #0xc - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081468B8: .4byte 0x01000400 -_081468BC: .4byte gUnknown_859B6C4 - thumb_func_end Phase2_Regi_Func1 - - thumb_func_start Phase2_BigPokeball_Func1 -Phase2_BigPokeball_Func1: @ 0x081468C0 - push {r4, lr} - sub sp, #0xc - adds r4, r0, #0 - bl sub_0814675C - add r0, sp, #4 - add r1, sp, #8 - bl sub_0814A018 - mov r1, sp - movs r0, #0 - strh r0, [r1] - ldr r1, [sp, #4] - ldr r2, _08146908 - mov r0, sp - bl CpuSet - ldr r0, _0814690C - ldr r1, [sp, #8] - movs r2, #0xb0 - lsls r2, r2, #2 - bl CpuSet - ldr r0, _08146910 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - add sp, #0xc - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08146908: .4byte 0x01000400 -_0814690C: .4byte gUnknown_8598DE0 -_08146910: .4byte gUnknown_85A8984 - thumb_func_end Phase2_BigPokeball_Func1 - - thumb_func_start Phase2_BigPokeball_Func2 -Phase2_BigPokeball_Func2: @ 0x08146914 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x10 - adds r7, r0, #0 - add r1, sp, #0xc - add r0, sp, #8 - bl sub_0814A018 - ldr r5, _0814699C - movs r1, #0 - ldr r0, [sp, #8] - mov sb, r0 - ldr r6, _081469A0 - mov r8, r6 - movs r0, #0xf0 - lsls r0, r0, #8 - mov ip, r0 -_0814693A: - movs r0, #0 - lsls r3, r1, #0x10 - asrs r4, r3, #0xb -_08146940: - lsls r2, r0, #0x10 - asrs r2, r2, #0x10 - adds r1, r4, r2 - lsls r1, r1, #1 - add r1, sb - ldrh r0, [r5] - mov r6, ip - orrs r0, r6 - strh r0, [r1] - adds r2, #1 - lsls r2, r2, #0x10 - adds r5, #2 - lsrs r0, r2, #0x10 - asrs r2, r2, #0x10 - cmp r2, #0x1d - ble _08146940 - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r3, r1 - lsrs r1, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x13 - ble _0814693A - movs r6, #0x10 - ldrsh r2, [r7, r6] - movs r1, #0x12 - ldrsh r0, [r7, r1] - str r0, [sp] - movs r0, #0xa0 - str r0, [sp, #4] - mov r0, r8 - movs r1, #0 - movs r3, #0x84 - bl sub_0814A058 - ldrh r0, [r7, #8] - adds r0, #1 - strh r0, [r7, #8] - movs r0, #1 - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0814699C: .4byte gUnknown_85A8AD0 -_081469A0: .4byte gUnknown_20388C8 - thumb_func_end Phase2_BigPokeball_Func2 - - thumb_func_start Phase2_Aqua_Func2 -Phase2_Aqua_Func2: @ 0x081469A4 - push {r4, lr} - sub sp, #0x10 - adds r4, r0, #0 - add r1, sp, #0xc - add r0, sp, #8 - bl sub_0814A018 - ldr r0, _081469E4 - ldr r1, [sp, #8] - bl LZ77UnCompVram - ldr r0, _081469E8 - movs r1, #0x10 - ldrsh r2, [r4, r1] - movs r3, #0x12 - ldrsh r1, [r4, r3] - str r1, [sp] - movs r1, #0xa0 - str r1, [sp, #4] - movs r1, #0 - movs r3, #0x84 - bl sub_0814A058 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - add sp, #0x10 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081469E4: .4byte gUnknown_859ACF8 -_081469E8: .4byte gUnknown_20388C8 - thumb_func_end Phase2_Aqua_Func2 - - thumb_func_start Phase2_Magma_Func2 -Phase2_Magma_Func2: @ 0x081469EC - push {r4, lr} - sub sp, #0x10 - adds r4, r0, #0 - add r1, sp, #0xc - add r0, sp, #8 - bl sub_0814A018 - ldr r0, _08146A2C - ldr r1, [sp, #8] - bl LZ77UnCompVram - ldr r0, _08146A30 - movs r1, #0x10 - ldrsh r2, [r4, r1] - movs r3, #0x12 - ldrsh r1, [r4, r3] - str r1, [sp] - movs r1, #0xa0 - str r1, [sp, #4] - movs r1, #0 - movs r3, #0x84 - bl sub_0814A058 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - add sp, #0x10 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08146A2C: .4byte gUnknown_859B3E0 -_08146A30: .4byte gUnknown_20388C8 - thumb_func_end Phase2_Magma_Func2 - - thumb_func_start Phase2_Regice_Func2 -Phase2_Regice_Func2: @ 0x08146A34 - push {r4, lr} - sub sp, #0x10 - adds r4, r0, #0 - add r1, sp, #0xc - add r0, sp, #8 - bl sub_0814A018 - ldr r0, _08146A80 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _08146A84 - ldr r1, [sp, #8] - movs r2, #0xa0 - lsls r2, r2, #2 - bl CpuSet - ldr r0, _08146A88 - movs r1, #0x10 - ldrsh r2, [r4, r1] - movs r3, #0x12 - ldrsh r1, [r4, r3] - str r1, [sp] - movs r1, #0xa0 - str r1, [sp, #4] - movs r1, #0 - movs r3, #0x84 - bl sub_0814A058 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - add sp, #0x10 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08146A80: .4byte gUnknown_859BD64 -_08146A84: .4byte gUnknown_859BDC4 -_08146A88: .4byte gUnknown_20388C8 - thumb_func_end Phase2_Regice_Func2 - - thumb_func_start Phase2_Registeel_Func2 -Phase2_Registeel_Func2: @ 0x08146A8C - push {r4, lr} - sub sp, #0x10 - adds r4, r0, #0 - add r1, sp, #0xc - add r0, sp, #8 - bl sub_0814A018 - ldr r0, _08146AD8 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _08146ADC - ldr r1, [sp, #8] - movs r2, #0xa0 - lsls r2, r2, #2 - bl CpuSet - ldr r0, _08146AE0 - movs r1, #0x10 - ldrsh r2, [r4, r1] - movs r3, #0x12 - ldrsh r1, [r4, r3] - str r1, [sp] - movs r1, #0xa0 - str r1, [sp, #4] - movs r1, #0 - movs r3, #0x84 - bl sub_0814A058 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - add sp, #0x10 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08146AD8: .4byte gUnknown_859BD84 -_08146ADC: .4byte gUnknown_859C5C4 -_08146AE0: .4byte gUnknown_20388C8 - thumb_func_end Phase2_Registeel_Func2 - - thumb_func_start Phase2_Regirock_Func2 -Phase2_Regirock_Func2: @ 0x08146AE4 - push {r4, lr} - sub sp, #0x10 - adds r4, r0, #0 - add r1, sp, #0xc - add r0, sp, #8 - bl sub_0814A018 - ldr r0, _08146B30 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _08146B34 - ldr r1, [sp, #8] - movs r2, #0xa0 - lsls r2, r2, #2 - bl CpuSet - ldr r0, _08146B38 - movs r1, #0x10 - ldrsh r2, [r4, r1] - movs r3, #0x12 - ldrsh r1, [r4, r3] - str r1, [sp] - movs r1, #0xa0 - str r1, [sp, #4] - movs r1, #0 - movs r3, #0x84 - bl sub_0814A058 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - add sp, #0x10 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08146B30: .4byte gUnknown_859BDA4 -_08146B34: .4byte gUnknown_859CDC4 -_08146B38: .4byte gUnknown_20388C8 - thumb_func_end Phase2_Regirock_Func2 - - thumb_func_start Phase2_Kyogre_Func3 -Phase2_Kyogre_Func3: @ 0x08146B3C - push {r4, lr} - sub sp, #0xc - adds r4, r0, #0 - add r0, sp, #4 - add r1, sp, #8 - bl sub_0814A018 - mov r1, sp - movs r0, #0 - strh r0, [r1] - ldr r1, [sp, #4] - ldr r2, _08146B7C - mov r0, sp - bl CpuSet - ldr r0, _08146B80 - ldr r1, [sp, #8] - bl LZ77UnCompVram - ldr r0, _08146B84 - ldr r1, [sp, #4] - bl LZ77UnCompVram - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - add sp, #0xc - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08146B7C: .4byte 0x01000400 -_08146B80: .4byte gUnknown_859D5E4 -_08146B84: .4byte gUnknown_859DC98 - thumb_func_end Phase2_Kyogre_Func3 - - thumb_func_start Phase2_Kyogre_Func4 -Phase2_Kyogre_Func4: @ 0x08146B88 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0xa - ldrsh r5, [r4, r0] - adds r0, r5, #0 - movs r1, #3 - bl __modsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08146BC0 - adds r0, r5, #0 - movs r1, #0x1e - bl __modsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0xb - ldr r1, _08146BE0 - adds r0, r0, r1 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette -_08146BC0: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3a - ble _08146BD8 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - strh r0, [r4, #0xa] -_08146BD8: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08146BE0: .4byte gUnknown_859E850 - thumb_func_end Phase2_Kyogre_Func4 - - thumb_func_start sub_08146BE4 -sub_08146BE4: @ 0x08146BE4 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0xa - ldrsh r5, [r4, r0] - adds r0, r5, #0 - movs r1, #5 - bl __modsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08146C12 - adds r0, r5, #0 - movs r1, #5 - bl __divsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0xb - ldr r1, _08146C38 - adds r0, r0, r1 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette -_08146C12: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x44 - ble _08146C2E - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - strh r0, [r4, #0xa] - movs r0, #0x1e - strh r0, [r4, #0x18] -_08146C2E: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08146C38: .4byte gUnknown_859E990 - thumb_func_end sub_08146BE4 - - thumb_func_start sub_08146C3C -sub_08146C3C: @ 0x08146C3C - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - ldr r0, _08146C64 - movs r1, #0 - str r1, [sp] - movs r1, #1 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08146C64: .4byte 0xFFFF8000 - thumb_func_end sub_08146C3C - - thumb_func_start Phase2_WeatherDuo_Func7 -Phase2_WeatherDuo_Func7: @ 0x08146C68 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08146CA8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08146C9E - ldr r1, _08146CAC - ldrh r2, [r1, #0xa] - ldr r0, _08146CB0 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r2, [r1, #0xa] - ldr r0, _08146CB4 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - bl sub_0814A044 - ldr r0, [r4] - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_08146C9E: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08146CA8: .4byte gUnknown_2037C74 -_08146CAC: .4byte 0x040000B0 -_08146CB0: .4byte 0x0000C5FF -_08146CB4: .4byte 0x00007FFF - thumb_func_end Phase2_WeatherDuo_Func7 - - thumb_func_start Phase2_BigPokeball_Func3 -Phase2_BigPokeball_Func3: @ 0x08146CB8 - push {r4, r5, lr} - sub sp, #8 - adds r3, r0, #0 - ldr r2, _08146D40 - ldr r1, [r2] - ldrb r0, [r1] - movs r0, #0 - strb r0, [r1] - ldrh r1, [r3, #0xe] - movs r4, #0xe - ldrsh r0, [r3, r4] - adds r4, r2, #0 - cmp r0, #0 - beq _08146CDE - subs r0, r1, #1 - strh r0, [r3, #0xe] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08146CE8 -_08146CDE: - ldrh r0, [r3, #0xc] - adds r0, #1 - strh r0, [r3, #0xc] - movs r0, #2 - strh r0, [r3, #0xe] -_08146CE8: - ldr r2, [r4] - ldrh r0, [r3, #0xa] - lsls r0, r0, #8 - ldrh r1, [r3, #0xc] - orrs r0, r1 - strh r0, [r2, #0x10] - movs r5, #0xc - ldrsh r0, [r3, r5] - cmp r0, #0xf - ble _08146D02 - ldrh r0, [r3, #8] - adds r0, #1 - strh r0, [r3, #8] -_08146D02: - ldrh r0, [r3, #0x10] - adds r0, #8 - strh r0, [r3, #0x10] - ldr r0, _08146D44 - adds r1, r0, #0 - ldrh r5, [r3, #0x12] - adds r1, r1, r5 - strh r1, [r3, #0x12] - ldr r0, _08146D48 - movs r5, #0x10 - ldrsh r2, [r3, r5] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - str r1, [sp] - movs r1, #0xa0 - str r1, [sp, #4] - movs r1, #0 - movs r3, #0x84 - bl sub_0814A058 - ldr r1, [r4] - ldrb r0, [r1] - adds r0, #1 - ldrb r2, [r1] - strb r0, [r1] - movs r0, #0 - add sp, #8 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08146D40: .4byte gUnknown_203A86C -_08146D44: .4byte 0xFFFFFF00 -_08146D48: .4byte gUnknown_20388C8 - thumb_func_end Phase2_BigPokeball_Func3 - - thumb_func_start Phase2_BigPokeball_Func4 -Phase2_BigPokeball_Func4: @ 0x08146D4C - push {r4, r5, lr} - sub sp, #8 - adds r3, r0, #0 - ldr r2, _08146DD4 - ldr r1, [r2] - ldrb r0, [r1] - movs r0, #0 - strb r0, [r1] - ldrh r1, [r3, #0xe] - movs r4, #0xe - ldrsh r0, [r3, r4] - adds r4, r2, #0 - cmp r0, #0 - beq _08146D72 - subs r0, r1, #1 - strh r0, [r3, #0xe] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08146D7C -_08146D72: - ldrh r0, [r3, #0xa] - subs r0, #1 - strh r0, [r3, #0xa] - movs r0, #2 - strh r0, [r3, #0xe] -_08146D7C: - ldr r2, [r4] - ldrh r0, [r3, #0xa] - lsls r0, r0, #8 - ldrh r1, [r3, #0xc] - orrs r0, r1 - strh r0, [r2, #0x10] - movs r5, #0xa - ldrsh r0, [r3, r5] - cmp r0, #0 - bne _08146D96 - ldrh r0, [r3, #8] - adds r0, #1 - strh r0, [r3, #8] -_08146D96: - ldrh r0, [r3, #0x10] - adds r0, #8 - strh r0, [r3, #0x10] - ldr r0, _08146DD8 - adds r1, r0, #0 - ldrh r5, [r3, #0x12] - adds r1, r1, r5 - strh r1, [r3, #0x12] - ldr r0, _08146DDC - movs r5, #0x10 - ldrsh r2, [r3, r5] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - str r1, [sp] - movs r1, #0xa0 - str r1, [sp, #4] - movs r1, #0 - movs r3, #0x84 - bl sub_0814A058 - ldr r1, [r4] - ldrb r0, [r1] - adds r0, #1 - ldrb r2, [r1] - strb r0, [r1] - movs r0, #0 - add sp, #8 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08146DD4: .4byte gUnknown_203A86C -_08146DD8: .4byte 0xFFFFFF00 -_08146DDC: .4byte gUnknown_20388C8 - thumb_func_end Phase2_BigPokeball_Func4 - - thumb_func_start Phase2_BigPokeball_Func5 -Phase2_BigPokeball_Func5: @ 0x08146DE0 - push {r4, r5, r6, r7, lr} - sub sp, #8 - adds r4, r0, #0 - ldr r7, _08146E44 - ldr r0, [r7] - ldrb r1, [r0] - movs r6, #0 - strb r6, [r0] - ldrh r0, [r4, #0x10] - adds r0, #8 - strh r0, [r4, #0x10] - ldr r0, _08146E48 - adds r1, r0, #0 - ldrh r3, [r4, #0x12] - adds r1, r1, r3 - strh r1, [r4, #0x12] - ldr r0, _08146E4C - movs r3, #0x10 - ldrsh r2, [r4, r3] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - str r1, [sp] - movs r5, #0xa0 - str r5, [sp, #4] - movs r1, #0 - movs r3, #0x84 - bl sub_0814A058 - movs r1, #0x12 - ldrsh r0, [r4, r1] - cmp r0, #0 - bgt _08146E30 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - strh r5, [r4, #0xa] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0xc] - strh r6, [r4, #0xe] -_08146E30: - ldr r0, [r7] - ldrb r1, [r0] - adds r1, #1 - ldrb r2, [r0] - strb r1, [r0] - movs r0, #0 - add sp, #8 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08146E44: .4byte gUnknown_203A86C -_08146E48: .4byte 0xFFFFFF00 -_08146E4C: .4byte gUnknown_20388C8 - thumb_func_end Phase2_BigPokeball_Func5 - - thumb_func_start Phase2_FramesCountdown -Phase2_FramesCountdown: @ 0x08146E50 - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0x18] - subs r0, #1 - strh r0, [r1, #0x18] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08146E66 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] -_08146E66: - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end Phase2_FramesCountdown - - thumb_func_start sub_08146E6C -sub_08146E6C: @ 0x08146E6C - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - ldr r0, _08146E94 - movs r1, #0 - str r1, [sp] - movs r1, #1 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08146E94: .4byte 0x0000FFFF - thumb_func_end sub_08146E6C - - thumb_func_start Phase2_WaitPaletteFade -Phase2_WaitPaletteFade: @ 0x08146E98 - push {lr} - adds r2, r0, #0 - ldr r0, _08146EB4 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08146EAE - ldrh r0, [r2, #8] - adds r0, #1 - strh r0, [r2, #8] -_08146EAE: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_08146EB4: .4byte gUnknown_2037C74 - thumb_func_end Phase2_WaitPaletteFade - - thumb_func_start Phase2_BigPokeball_Func6 -Phase2_BigPokeball_Func6: @ 0x08146EB8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08146F38 - ldr r0, [r0] - ldrb r1, [r0] - movs r3, #0 - strb r3, [r0] - ldrh r2, [r4, #0xc] - movs r0, #0xc - ldrsh r1, [r4, r0] - ldr r0, _08146F3C - cmp r1, r0 - bgt _08146ED8 - adds r0, r2, #0 - adds r0, #0x80 - strh r0, [r4, #0xc] -_08146ED8: - ldrh r1, [r4, #0xa] - movs r2, #0xa - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _08146EF4 - ldrh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - subs r0, r1, r0 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _08146EF4 - strh r3, [r4, #0xa] -_08146EF4: - ldr r0, _08146F40 - movs r1, #0xa - ldrsh r3, [r4, r1] - movs r1, #0x78 - movs r2, #0x50 - bl sub_0814A0D4 - movs r2, #0xa - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _08146F50 - movs r0, #0 - bl SetVBlankCallback - ldr r1, _08146F44 - ldrh r2, [r1, #0xa] - ldr r0, _08146F48 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r2, [r1, #0xa] - ldr r0, _08146F4C - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - bl sub_0814A044 - ldr r0, [r4] - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - b _08146F70 - .align 2, 0 -_08146F38: .4byte gUnknown_203A86C -_08146F3C: .4byte 0x000003FF -_08146F40: .4byte gUnknown_20388C8 -_08146F44: .4byte 0x040000B0 -_08146F48: .4byte 0x0000C5FF -_08146F4C: .4byte 0x00007FFF -_08146F50: - ldrh r1, [r4, #0xe] - movs r2, #0xe - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _08146F64 - adds r0, r1, #1 - strh r0, [r4, #0xe] - ldr r0, _08146F78 - bl SetVBlankCallback -_08146F64: - ldr r0, _08146F7C - ldr r1, [r0] - ldrb r0, [r1] - adds r0, #1 - ldrb r2, [r1] - strb r0, [r1] -_08146F70: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08146F78: .4byte VBlankCB1_Phase2_BigPokeball -_08146F7C: .4byte gUnknown_203A86C - thumb_func_end Phase2_BigPokeball_Func6 - - thumb_func_start Transition_BigPokeball_Vblank -Transition_BigPokeball_Vblank: @ 0x08146F80 - push {lr} - ldr r1, _08146FDC - ldrh r2, [r1, #0xa] - ldr r0, _08146FE0 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r2, [r1, #0xa] - ldr r0, _08146FE4 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - bl VBlankCB_BattleTransition - ldr r2, _08146FE8 - ldr r0, [r2] - ldrb r0, [r0] - cmp r0, #0 - beq _08146FB8 - ldr r1, _08146FEC - ldr r0, _08146FF0 - str r0, [r1] - movs r3, #0xf0 - lsls r3, r3, #3 - adds r0, r0, r3 - str r0, [r1, #4] - ldr r0, _08146FF4 - str r0, [r1, #8] - ldr r0, [r1, #8] -_08146FB8: - ldr r1, _08146FF8 - ldr r2, [r2] - ldrh r0, [r2, #2] - strh r0, [r1] - adds r1, #2 - ldrh r0, [r2, #4] - strh r0, [r1] - subs r1, #6 - ldrh r0, [r2, #8] - strh r0, [r1] - adds r1, #0xc - ldrh r0, [r2, #0xe] - strh r0, [r1] - adds r1, #2 - ldrh r0, [r2, #0x10] - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08146FDC: .4byte 0x040000B0 -_08146FE0: .4byte 0x0000C5FF -_08146FE4: .4byte 0x00007FFF -_08146FE8: .4byte gUnknown_203A86C -_08146FEC: .4byte 0x040000D4 -_08146FF0: .4byte gUnknown_20388C8 -_08146FF4: .4byte 0x800000A0 -_08146FF8: .4byte 0x04000048 - thumb_func_end Transition_BigPokeball_Vblank - - thumb_func_start VBlankCB0_Phase2_BigPokeball -VBlankCB0_Phase2_BigPokeball: @ 0x08146FFC - push {lr} - bl Transition_BigPokeball_Vblank - ldr r1, _08147018 - ldr r0, _0814701C - str r0, [r1] - ldr r0, _08147020 - str r0, [r1, #4] - ldr r0, _08147024 - str r0, [r1, #8] - ldr r0, [r1, #8] - pop {r0} - bx r0 - .align 2, 0 -_08147018: .4byte 0x040000B0 -_0814701C: .4byte gUnknown_2039048 -_08147020: .4byte 0x04000010 -_08147024: .4byte 0xA2400001 - thumb_func_end VBlankCB0_Phase2_BigPokeball - - thumb_func_start VBlankCB1_Phase2_BigPokeball -VBlankCB1_Phase2_BigPokeball: @ 0x08147028 - push {lr} - bl Transition_BigPokeball_Vblank - ldr r1, _08147044 - ldr r0, _08147048 - str r0, [r1] - ldr r0, _0814704C - str r0, [r1, #4] - ldr r0, _08147050 - str r0, [r1, #8] - ldr r0, [r1, #8] - pop {r0} - bx r0 - .align 2, 0 -_08147044: .4byte 0x040000B0 -_08147048: .4byte gUnknown_2039048 -_0814704C: .4byte 0x04000040 -_08147050: .4byte 0xA2400001 - thumb_func_end VBlankCB1_Phase2_BigPokeball - - thumb_func_start sub_08147054 -sub_08147054: @ 0x08147054 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _08147084 - ldr r2, _08147088 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_08147066: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08147066 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08147084: .4byte gUnknown_85A862C -_08147088: .4byte gUnknown_3005B60 - thumb_func_end sub_08147054 - - thumb_func_start Phase2_PokeballsTrail_Func1 -Phase2_PokeballsTrail_Func1: @ 0x0814708C - push {r4, lr} - sub sp, #0xc - adds r4, r0, #0 - add r0, sp, #4 - add r1, sp, #8 - bl sub_0814A018 - ldr r0, _081470CC - ldr r1, [sp, #8] - movs r2, #0x20 - bl CpuSet - movs r0, #0 - str r0, [sp] - ldr r1, [sp, #4] - ldr r2, _081470D0 - mov r0, sp - bl CpuSet - ldr r0, _081470D4 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - add sp, #0xc - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081470CC: .4byte gUnknown_8599360 -_081470D0: .4byte 0x05000200 -_081470D4: .4byte gUnknown_85A8984 - thumb_func_end Phase2_PokeballsTrail_Func1 - - thumb_func_start Phase2_PokeballsTrail_Func2 -Phase2_PokeballsTrail_Func2: @ 0x081470D8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x10 - adds r7, r0, #0 - ldr r1, _08147158 - mov r0, sp - movs r2, #4 - bl memcpy - add r4, sp, #4 - ldr r1, _0814715C - adds r0, r4, #0 - movs r2, #0xa - bl memcpy - bl Random - movs r5, #1 - ands r5, r0 - movs r1, #0 - mov r8, r4 - ldr r6, _08147160 -_08147106: - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - lsls r0, r5, #1 - add r0, sp - movs r2, #0 - ldrsh r0, [r0, r2] - str r0, [r6] - lsls r4, r1, #0x10 - asrs r4, r4, #0x10 - lsls r0, r4, #5 - adds r0, #0x10 - str r0, [r6, #4] - str r5, [r6, #8] - lsls r0, r4, #1 - add r0, r8 - movs r1, #0 - ldrsh r0, [r0, r1] - str r0, [r6, #0xc] - movs r0, #0x2d - bl FieldEffectStart - adds r4, #1 - lsls r4, r4, #0x10 - movs r0, #1 - eors r5, r0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsrs r1, r4, #0x10 - asrs r4, r4, #0x10 - cmp r4, #4 - ble _08147106 - ldrh r0, [r7, #8] - adds r0, #1 - strh r0, [r7, #8] - movs r0, #0 - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08147158: .4byte gUnknown_85A8638 -_0814715C: .4byte gUnknown_85A863C -_08147160: .4byte gUnknown_20388A8 - thumb_func_end Phase2_PokeballsTrail_Func2 - - thumb_func_start Phase2_PokeballsTrail_Func3 -Phase2_PokeballsTrail_Func3: @ 0x08147164 - push {lr} - movs r0, #0x2d - bl FieldEffectActiveListContains - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08147184 - bl sub_0814A044 - ldr r0, _0814718C - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_08147184: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0814718C: .4byte sub_08147054 - thumb_func_end Phase2_PokeballsTrail_Func3 - - thumb_func_start FldEff_Pokeball -FldEff_Pokeball: @ 0x08147190 - push {r4, r5, lr} - ldr r0, _081471EC - ldr r5, _081471F0 - movs r2, #0 - ldrsh r1, [r5, r2] - movs r3, #4 - ldrsh r2, [r5, r3] - movs r3, #0 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081471F4 - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - adds r4, r4, r1 - ldrb r1, [r4, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #5] - ldrb r1, [r4, #1] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #1] - ldr r0, [r5, #8] - strh r0, [r4, #0x2e] - ldr r0, [r5, #0xc] - strh r0, [r4, #0x30] - ldr r0, _081471F8 - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl InitSpriteAffineAnim - ldrb r1, [r5, #8] - adds r0, r4, #0 - bl StartSpriteAffineAnim - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081471EC: .4byte gUnknown_85A8918 -_081471F0: .4byte gUnknown_20388A8 -_081471F4: .4byte gUnknown_20205AC -_081471F8: .4byte 0x0000FFFF - thumb_func_end FldEff_Pokeball - - thumb_func_start berry_fix_gpu_set -berry_fix_gpu_set: @ 0x081471FC - push {r4, r5, r6, lr} - sub sp, #4 - adds r4, r0, #0 - ldr r1, _0814721C - mov r0, sp - movs r2, #4 - bl memcpy - ldrh r1, [r4, #0x30] - movs r2, #0x30 - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _08147220 - subs r0, r1, #1 - strh r0, [r4, #0x30] - b _081472B2 - .align 2, 0 -_0814721C: .4byte gUnknown_85A8646 -_08147220: - ldrh r0, [r4, #0x20] - lsls r1, r0, #0x10 - lsrs r0, r1, #0x10 - cmp r0, #0xf0 - bhi _0814728E - asrs r0, r1, #0x13 - lsls r0, r0, #0x10 - ldrh r1, [r4, #0x22] - lsls r1, r1, #0x10 - asrs r1, r1, #0x13 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsrs r2, r0, #0x10 - asrs r5, r0, #0x10 - movs r3, #0x32 - ldrsh r0, [r4, r3] - cmp r5, r0 - beq _0814728E - strh r2, [r4, #0x32] - ldr r0, _081472BC - ldrh r2, [r0] - lsrs r2, r2, #8 - movs r0, #0x1f - ands r2, r0 - lsls r2, r2, #0xb - movs r0, #0xc0 - lsls r0, r0, #0x13 - adds r2, r2, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - subs r0, r1, #2 - lsls r0, r0, #5 - adds r0, r0, r5 - lsls r0, r0, #1 - adds r0, r0, r2 - ldr r6, _081472C0 - adds r3, r6, #0 - strh r3, [r0] - subs r0, r1, #1 - lsls r0, r0, #5 - adds r0, r0, r5 - lsls r0, r0, #1 - adds r0, r0, r2 - strh r3, [r0] - lsls r0, r1, #5 - adds r0, r0, r5 - lsls r0, r0, #1 - adds r0, r0, r2 - strh r3, [r0] - adds r1, #1 - lsls r1, r1, #5 - adds r1, r1, r5 - lsls r1, r1, #1 - adds r1, r1, r2 - strh r3, [r1] -_0814728E: - movs r1, #0x2e - ldrsh r0, [r4, r1] - lsls r0, r0, #1 - add r0, sp - ldrh r0, [r0] - ldrh r2, [r4, #0x20] - adds r0, r0, r2 - strh r0, [r4, #0x20] - adds r0, #0xf - lsls r0, r0, #0x10 - movs r1, #0x87 - lsls r1, r1, #0x11 - cmp r0, r1 - bls _081472B2 - adds r0, r4, #0 - movs r1, #0x2d - bl FieldEffectStop -_081472B2: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081472BC: .4byte 0x04000008 -_081472C0: .4byte 0x0000F001 - thumb_func_end berry_fix_gpu_set - - thumb_func_start sub_081472C4 -sub_081472C4: @ 0x081472C4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _081472F4 - ldr r2, _081472F8 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_081472D6: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081472D6 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081472F4: .4byte gUnknown_85A864C -_081472F8: .4byte gUnknown_3005B60 - thumb_func_end sub_081472C4 - - thumb_func_start Phase2_Clockwise_BlackFade_Func1 -Phase2_Clockwise_BlackFade_Func1: @ 0x081472FC - push {r4, lr} - adds r4, r0, #0 - bl sub_08149FC8 - bl ScanlineEffect_Clear - ldr r0, _08147350 - ldr r1, [r0] - movs r0, #0 - strh r0, [r1, #2] - movs r0, #0x3f - strh r0, [r1, #4] - ldr r0, _08147354 - strh r0, [r1, #6] - movs r0, #0xa0 - strh r0, [r1, #8] - movs r1, #0 - ldr r3, _08147358 - ldr r2, _0814735C -_08147322: - lsls r0, r1, #1 - adds r0, r0, r3 - strh r2, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0x9f - bls _08147322 - ldr r0, _08147360 - bl SetVBlankCallback - ldr r0, _08147350 - ldr r1, [r0] - movs r0, #0x78 - strh r0, [r1, #0x2c] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08147350: .4byte gUnknown_203A86C -_08147354: .4byte 0x0000F0F1 -_08147358: .4byte gUnknown_2039048 -_0814735C: .4byte 0x0000F3F4 -_08147360: .4byte VBlankCB_Phase2_Clockwise_BlackFade - thumb_func_end Phase2_Clockwise_BlackFade_Func1 - - thumb_func_start Phase2_Clockwise_BlackFade_Func2 -Phase2_Clockwise_BlackFade_Func2: @ 0x08147364 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - adds r6, r0, #0 - ldr r2, _081473EC - ldr r1, [r2] - ldrb r0, [r1] - movs r0, #0 - strb r0, [r1] - ldr r1, [r2] - adds r0, r1, #0 - adds r0, #0x24 - movs r2, #0x2c - ldrsh r3, [r1, r2] - movs r1, #1 - rsbs r1, r1, #0 - str r1, [sp] - movs r1, #1 - str r1, [sp, #4] - str r1, [sp, #8] - movs r1, #0x78 - movs r2, #0x50 - bl sub_0814A26C - ldr r5, _081473F0 -_08147394: - ldr r4, _081473EC - ldr r0, [r4] - movs r7, #0x2a - ldrsh r3, [r0, r7] - lsls r3, r3, #1 - adds r3, r3, r5 - ldrh r1, [r0, #0x28] - adds r1, #1 - movs r7, #0xf0 - lsls r7, r7, #7 - adds r2, r7, #0 - orrs r1, r2 - strh r1, [r3] - adds r0, #0x24 - movs r1, #1 - movs r2, #1 - bl sub_0814A2E8 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08147394 - ldr r1, [r4] - ldrh r0, [r1, #0x2c] - adds r0, #0x10 - strh r0, [r1, #0x2c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xef - ble _081473D8 - movs r0, #0 - strh r0, [r1, #0x2e] - ldrh r0, [r6, #8] - adds r0, #1 - strh r0, [r6, #8] -_081473D8: - ldr r0, [r4] - ldrb r1, [r0] - adds r1, #1 - ldrb r2, [r0] - strb r1, [r0] - movs r0, #0 - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081473EC: .4byte gUnknown_203A86C -_081473F0: .4byte gUnknown_20388C8 - thumb_func_end Phase2_Clockwise_BlackFade_Func2 - - thumb_func_start Phase2_Clockwise_BlackFade_Func3 -Phase2_Clockwise_BlackFade_Func3: @ 0x081473F4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x10 - mov r8, r0 - add r1, sp, #0xc - movs r0, #0 - strb r0, [r1] - ldr r4, _08147478 - ldr r1, [r4] - ldrb r0, [r1] - movs r0, #0 - strb r0, [r1] - ldr r1, [r4] - adds r0, r1, #0 - adds r0, #0x24 - movs r2, #0x2e - ldrsh r1, [r1, r2] - str r1, [sp] - movs r1, #1 - str r1, [sp, #4] - str r1, [sp, #8] - movs r1, #0x78 - movs r2, #0x50 - movs r3, #0xf0 - bl sub_0814A26C - mov sb, r4 - mov r7, sb - add r5, sp, #0xc -_08147432: - movs r1, #0x78 - ldr r3, [r7] - ldrh r0, [r3, #0x28] - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r2, #0x2e - ldrsh r0, [r3, r2] - cmp r0, #0x4f - ble _0814744A - ldrh r1, [r3, #0x28] - movs r4, #0xf0 -_0814744A: - ldr r6, _0814747C - movs r0, #0x2a - ldrsh r2, [r3, r0] - lsls r2, r2, #1 - adds r2, r2, r6 - lsls r1, r1, #0x10 - asrs r1, r1, #8 - lsls r0, r4, #0x10 - asrs r4, r0, #0x10 - orrs r4, r1 - strh r4, [r2] - ldrb r0, [r5] - cmp r0, #0 - bne _08147480 - adds r0, r3, #0 - adds r0, #0x24 - movs r1, #1 - movs r2, #1 - bl sub_0814A2E8 - strb r0, [r5] - b _08147432 - .align 2, 0 -_08147478: .4byte gUnknown_203A86C -_0814747C: .4byte gUnknown_20388C8 -_08147480: - ldr r1, [r7] - ldrh r0, [r1, #0x2e] - adds r0, #8 - strh r0, [r1, #0x2e] - lsls r0, r0, #0x10 - asrs r2, r0, #0x10 - cmp r2, #0x9f - ble _0814749E - movs r0, #0xf0 - strh r0, [r1, #0x2c] - mov r1, r8 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _081474C6 -_0814749E: - movs r3, #0x2a - ldrsh r0, [r1, r3] - cmp r0, r2 - bge _081474C6 - adds r3, r4, #0 - ldr r5, _081474E4 -_081474AA: - ldr r2, [r5] - ldrh r0, [r2, #0x2a] - adds r0, #1 - strh r0, [r2, #0x2a] - lsls r0, r0, #0x10 - asrs r0, r0, #0xf - adds r0, r0, r6 - strh r3, [r0] - movs r4, #0x2a - ldrsh r1, [r2, r4] - movs r4, #0x2e - ldrsh r0, [r2, r4] - cmp r1, r0 - blt _081474AA -_081474C6: - mov r1, sb - ldr r0, [r1] - ldrb r1, [r0] - adds r1, #1 - ldrb r2, [r0] - strb r1, [r0] - movs r0, #0 - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081474E4: .4byte gUnknown_203A86C - thumb_func_end Phase2_Clockwise_BlackFade_Func3 - - thumb_func_start Phase2_Clockwise_BlackFade_Func4 -Phase2_Clockwise_BlackFade_Func4: @ 0x081474E8 - push {r4, r5, r6, lr} - sub sp, #0xc - adds r6, r0, #0 - ldr r2, _08147568 - ldr r1, [r2] - ldrb r0, [r1] - movs r0, #0 - strb r0, [r1] - ldr r1, [r2] - adds r0, r1, #0 - adds r0, #0x24 - movs r2, #0x2c - ldrsh r3, [r1, r2] - movs r1, #0xa0 - str r1, [sp] - movs r1, #1 - str r1, [sp, #4] - str r1, [sp, #8] - movs r1, #0x78 - movs r2, #0x50 - bl sub_0814A26C - ldr r5, _0814756C -_08147516: - ldr r4, _08147568 - ldr r0, [r4] - movs r1, #0x2a - ldrsh r3, [r0, r1] - lsls r3, r3, #1 - adds r3, r3, r5 - ldrh r1, [r0, #0x28] - lsls r1, r1, #8 - movs r2, #0xf0 - orrs r1, r2 - strh r1, [r3] - adds r0, #0x24 - movs r1, #1 - movs r2, #1 - bl sub_0814A2E8 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08147516 - ldr r1, [r4] - ldrh r0, [r1, #0x2c] - subs r0, #0x10 - strh r0, [r1, #0x2c] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _08147554 - movs r0, #0xa0 - strh r0, [r1, #0x2e] - ldrh r0, [r6, #8] - adds r0, #1 - strh r0, [r6, #8] -_08147554: - ldr r0, [r4] - ldrb r1, [r0] - adds r1, #1 - ldrb r2, [r0] - strb r1, [r0] - movs r0, #0 - add sp, #0xc - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08147568: .4byte gUnknown_203A86C -_0814756C: .4byte gUnknown_20388C8 - thumb_func_end Phase2_Clockwise_BlackFade_Func4 - - thumb_func_start Phase2_Clockwise_BlackFade_Func5 -Phase2_Clockwise_BlackFade_Func5: @ 0x08147570 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - mov sb, r0 - add r1, sp, #0xc - movs r0, #0 - strb r0, [r1] - ldr r4, _081475F8 - ldr r1, [r4] - ldrb r0, [r1] - movs r0, #0 - strb r0, [r1] - ldr r1, [r4] - adds r0, r1, #0 - adds r0, #0x24 - movs r2, #0x2e - ldrsh r1, [r1, r2] - str r1, [sp] - movs r1, #1 - str r1, [sp, #4] - str r1, [sp, #8] - movs r1, #0x78 - movs r2, #0x50 - movs r3, #0 - bl sub_0814A26C - ldr r7, _081475FC - mov sl, r7 - ldr r0, _081475F8 - mov r8, r0 - add r6, sp, #0xc -_081475B4: - mov r1, r8 - ldr r4, [r1] - movs r2, #0x2a - ldrsh r0, [r4, r2] - lsls r0, r0, #1 - mov r7, sl - adds r5, r0, r7 - ldrb r1, [r5] - ldrh r2, [r4, #0x28] - adds r3, r2, #0 - movs r7, #0x2e - ldrsh r0, [r4, r7] - cmp r0, #0x50 - bgt _081475D4 - movs r2, #0x78 - adds r1, r3, #0 -_081475D4: - lsls r0, r2, #0x10 - asrs r0, r0, #8 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - orrs r1, r0 - movs r7, #0 - strh r1, [r5] - ldrb r0, [r6] - cmp r0, #0 - bne _08147600 - adds r0, r4, #0 - adds r0, #0x24 - movs r1, #1 - movs r2, #1 - bl sub_0814A2E8 - strb r0, [r6] - b _081475B4 - .align 2, 0 -_081475F8: .4byte gUnknown_203A86C -_081475FC: .4byte gUnknown_20388C8 -_08147600: - mov r0, r8 - ldr r2, [r0] - ldrh r0, [r2, #0x2e] - subs r0, #8 - strh r0, [r2, #0x2e] - lsls r0, r0, #0x10 - asrs r3, r0, #0x10 - cmp r3, #0 - bgt _0814761E - strh r7, [r2, #0x2c] - mov r1, sb - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _08147648 -_0814761E: - movs r4, #0x2a - ldrsh r0, [r2, r4] - cmp r0, r3 - ble _08147648 - ldr r6, _08147668 - adds r3, r1, #0 - ldr r5, _0814766C -_0814762C: - ldr r2, [r5] - ldrh r0, [r2, #0x2a] - subs r0, #1 - strh r0, [r2, #0x2a] - lsls r0, r0, #0x10 - asrs r0, r0, #0xf - adds r0, r0, r6 - strh r3, [r0] - movs r7, #0x2a - ldrsh r1, [r2, r7] - movs r4, #0x2e - ldrsh r0, [r2, r4] - cmp r1, r0 - bgt _0814762C -_08147648: - ldr r7, _0814766C - ldr r0, [r7] - ldrb r1, [r0] - adds r1, #1 - ldrb r2, [r0] - strb r1, [r0] - movs r0, #0 - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08147668: .4byte gUnknown_20388C8 -_0814766C: .4byte gUnknown_203A86C - thumb_func_end Phase2_Clockwise_BlackFade_Func5 - - thumb_func_start Phase2_Clockwise_BlackFade_Func6 -Phase2_Clockwise_BlackFade_Func6: @ 0x08147670 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - adds r7, r0, #0 - ldr r1, _08147700 - ldr r0, [r1] - ldrb r2, [r0] - movs r2, #0 - strb r2, [r0] - ldr r1, [r1] - adds r0, r1, #0 - adds r0, #0x24 - movs r4, #0x2c - ldrsh r3, [r1, r4] - str r2, [sp] - movs r1, #1 - str r1, [sp, #4] - str r1, [sp, #8] - movs r1, #0x78 - movs r2, #0x50 - bl sub_0814A26C - ldr r6, _08147704 -_0814769C: - movs r2, #0x78 - ldr r5, _08147700 - ldr r3, [r5] - ldrh r4, [r3, #0x28] - movs r1, #0x28 - ldrsh r0, [r3, r1] - cmp r0, #0x77 - ble _081476B0 - movs r2, #0 - movs r4, #0xf0 -_081476B0: - movs r0, #0x2a - ldrsh r1, [r3, r0] - lsls r1, r1, #1 - adds r1, r1, r6 - lsls r2, r2, #8 - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - orrs r0, r2 - strh r0, [r1] - adds r0, r3, #0 - adds r0, #0x24 - movs r1, #1 - movs r2, #1 - bl sub_0814A2E8 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0814769C - ldr r0, [r5] - ldrh r1, [r0, #0x2c] - adds r1, #0x10 - strh r1, [r0, #0x2c] - movs r1, #0x28 - ldrsh r0, [r0, r1] - cmp r0, #0x78 - ble _081476EA - ldrh r0, [r7, #8] - adds r0, #1 - strh r0, [r7, #8] -_081476EA: - ldr r0, [r5] - ldrb r1, [r0] - adds r1, #1 - ldrb r2, [r0] - strb r1, [r0] - movs r0, #0 - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08147700: .4byte gUnknown_203A86C -_08147704: .4byte gUnknown_20388C8 - thumb_func_end Phase2_Clockwise_BlackFade_Func6 - - thumb_func_start Phase2_Clockwise_BlackFade_Func7 -Phase2_Clockwise_BlackFade_Func7: @ 0x08147708 - push {lr} - ldr r1, _08147738 - ldrh r2, [r1, #0xa] - ldr r0, _0814773C - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r2, [r1, #0xa] - ldr r0, _08147740 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - bl sub_0814A044 - ldr r0, _08147744 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_08147738: .4byte 0x040000B0 -_0814773C: .4byte 0x0000C5FF -_08147740: .4byte 0x00007FFF -_08147744: .4byte sub_081472C4 - thumb_func_end Phase2_Clockwise_BlackFade_Func7 - - thumb_func_start VBlankCB_Phase2_Clockwise_BlackFade -VBlankCB_Phase2_Clockwise_BlackFade: @ 0x08147748 - push {r4, lr} - ldr r4, _081477B4 - ldrh r1, [r4, #0xa] - ldr r0, _081477B8 - ands r0, r1 - strh r0, [r4, #0xa] - ldrh r1, [r4, #0xa] - ldr r0, _081477BC - ands r0, r1 - strh r0, [r4, #0xa] - ldrh r0, [r4, #0xa] - bl VBlankCB_BattleTransition - ldr r3, _081477C0 - ldr r0, [r3] - ldrb r0, [r0] - cmp r0, #0 - beq _08147780 - ldr r1, _081477C4 - ldr r0, _081477C8 - str r0, [r1] - movs r2, #0xf0 - lsls r2, r2, #3 - adds r0, r0, r2 - str r0, [r1, #4] - ldr r0, _081477CC - str r0, [r1, #8] - ldr r0, [r1, #8] -_08147780: - ldr r2, _081477D0 - ldr r1, [r3] - ldrh r0, [r1, #2] - strh r0, [r2] - adds r2, #2 - ldrh r0, [r1, #4] - strh r0, [r2] - subs r2, #6 - ldrh r0, [r1, #8] - strh r0, [r2] - subs r2, #4 - ldr r0, _081477C8 - movs r1, #0xf0 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrh r1, [r0] - strh r1, [r2] - str r0, [r4] - str r2, [r4, #4] - ldr r0, _081477D4 - str r0, [r4, #8] - ldr r0, [r4, #8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081477B4: .4byte 0x040000B0 -_081477B8: .4byte 0x0000C5FF -_081477BC: .4byte 0x00007FFF -_081477C0: .4byte gUnknown_203A86C -_081477C4: .4byte 0x040000D4 -_081477C8: .4byte gUnknown_20388C8 -_081477CC: .4byte 0x800000A0 -_081477D0: .4byte 0x04000048 -_081477D4: .4byte 0xA2400001 - thumb_func_end VBlankCB_Phase2_Clockwise_BlackFade - - thumb_func_start sub_081477D8 -sub_081477D8: @ 0x081477D8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _08147808 - ldr r2, _0814780C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_081477EA: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081477EA - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08147808: .4byte gUnknown_85A8668 -_0814780C: .4byte gUnknown_3005B60 - thumb_func_end sub_081477D8 - - thumb_func_start Phase2_Ripple_Func1 -Phase2_Ripple_Func1: @ 0x08147810 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_08149FC8 - bl ScanlineEffect_Clear - movs r2, #0 - ldr r4, _08147858 - ldr r3, _0814785C -_08147822: - lsls r1, r2, #1 - adds r1, r1, r4 - ldr r0, [r3] - ldrh r0, [r0, #0x16] - strh r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x9f - bls _08147822 - ldr r0, _08147860 - bl SetVBlankCallback - ldr r0, _08147864 - bl SetHBlankCallback - movs r0, #2 - bl EnableInterrupts - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08147858: .4byte gUnknown_2039048 -_0814785C: .4byte gUnknown_203A86C -_08147860: .4byte VBlankCB_Phase2_Ripple -_08147864: .4byte sub_08147980 - thumb_func_end Phase2_Ripple_Func1 - - thumb_func_start Phase2_Ripple_Func2 -Phase2_Ripple_Func2: @ 0x08147868 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r6, r0, #0 - ldr r0, _08147934 - ldr r1, [r0] - ldrb r0, [r1] - movs r0, #0 - strb r0, [r1] - ldrh r2, [r6, #0xc] - lsls r1, r2, #0x10 - asrs r0, r1, #0x18 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldrh r4, [r6, #0xa] - movs r0, #0xc0 - lsls r0, r0, #1 - mov r8, r0 - movs r5, #0x80 - lsls r5, r5, #3 - adds r0, r4, r5 - strh r0, [r6, #0xa] - ldr r0, _08147938 - cmp r1, r0 - bgt _081478A4 - movs r1, #0xc0 - lsls r1, r1, #1 - adds r0, r2, r1 - strh r0, [r6, #0xc] -_081478A4: - movs r5, #0 - lsls r7, r3, #0x10 -_081478A8: - lsrs r0, r4, #8 - asrs r1, r7, #0x10 - bl Sin - ldr r1, _0814793C - lsls r2, r5, #1 - adds r2, r2, r1 - ldr r1, _08147934 - ldr r1, [r1] - ldrh r1, [r1, #0x16] - adds r0, r0, r1 - strh r0, [r2] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - mov r1, r8 - adds r0, r4, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r5, #0x9f - bls _081478A8 - ldrh r0, [r6, #0xe] - adds r0, #1 - strh r0, [r6, #0xe] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x51 - bne _081478F8 - ldrh r0, [r6, #0x10] - adds r0, #1 - strh r0, [r6, #0x10] - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #2 - rsbs r1, r1, #0 - movs r2, #0 - str r2, [sp] - movs r3, #0x10 - bl BeginNormalPaletteFade -_081478F8: - movs r5, #0x10 - ldrsh r0, [r6, r5] - cmp r0, #0 - beq _0814791A - ldr r0, _08147940 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0814791A - ldr r0, _08147944 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_0814791A: - ldr r0, _08147934 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, #1 - ldrb r2, [r1] - strb r0, [r1] - movs r0, #0 - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08147934: .4byte gUnknown_203A86C -_08147938: .4byte 0x1FFF0000 -_0814793C: .4byte gUnknown_20388C8 -_08147940: .4byte gUnknown_2037C74 -_08147944: .4byte sub_081477D8 - thumb_func_end Phase2_Ripple_Func2 - - thumb_func_start VBlankCB_Phase2_Ripple -VBlankCB_Phase2_Ripple: @ 0x08147948 - push {lr} - bl VBlankCB_BattleTransition - ldr r0, _08147970 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, #0 - beq _0814796C - ldr r1, _08147974 - ldr r0, _08147978 - str r0, [r1] - movs r2, #0xf0 - lsls r2, r2, #3 - adds r0, r0, r2 - str r0, [r1, #4] - ldr r0, _0814797C - str r0, [r1, #8] - ldr r0, [r1, #8] -_0814796C: - pop {r0} - bx r0 - .align 2, 0 -_08147970: .4byte gUnknown_203A86C -_08147974: .4byte 0x040000D4 -_08147978: .4byte gUnknown_20388C8 -_0814797C: .4byte 0x800000A0 - thumb_func_end VBlankCB_Phase2_Ripple - - thumb_func_start sub_08147980 -sub_08147980: @ 0x08147980 - ldr r1, _081479A0 - ldr r0, _081479A4 - ldrh r0, [r0] - lsls r0, r0, #1 - movs r2, #0xf0 - lsls r2, r2, #3 - adds r1, r1, r2 - adds r0, r0, r1 - ldrh r1, [r0] - ldr r0, _081479A8 - strh r1, [r0] - adds r0, #4 - strh r1, [r0] - adds r0, #4 - strh r1, [r0] - bx lr - .align 2, 0 -_081479A0: .4byte gUnknown_20388C8 -_081479A4: .4byte 0x04000006 -_081479A8: .4byte 0x04000016 - thumb_func_end sub_08147980 - - thumb_func_start sub_081479AC -sub_081479AC: @ 0x081479AC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _081479DC - ldr r2, _081479E0 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_081479BE: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081479BE - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081479DC: .4byte gUnknown_85A8670 -_081479E0: .4byte gUnknown_3005B60 - thumb_func_end sub_081479AC - - thumb_func_start Phase2_Wave_Func1 -Phase2_Wave_Func1: @ 0x081479E4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08149FC8 - bl ScanlineEffect_Clear - ldr r0, _08147A30 - ldr r1, [r0] - movs r2, #0 - movs r0, #0x3f - strh r0, [r1, #2] - strh r2, [r1, #4] - movs r0, #0xf0 - strh r0, [r1, #6] - movs r0, #0xa0 - strh r0, [r1, #8] - movs r1, #0 - ldr r3, _08147A34 - movs r2, #0xf2 -_08147A0A: - lsls r0, r1, #1 - adds r0, r0, r3 - strh r2, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x9f - bls _08147A0A - ldr r0, _08147A38 - bl SetVBlankCallback - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08147A30: .4byte gUnknown_203A86C -_08147A34: .4byte gUnknown_2039048 -_08147A38: .4byte VBlankCB_Phase2_Wave - thumb_func_end Phase2_Wave_Func1 - - thumb_func_start Phase2_Wave_Func2 -Phase2_Wave_Func2: @ 0x08147A3C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - ldr r0, _08147AD0 - ldr r1, [r0] - ldrb r0, [r1] - movs r0, #0 - strb r0, [r1] - ldr r7, _08147AD4 - ldrh r0, [r4, #0xc] - ldrb r5, [r4, #0xc] - adds r0, #0x10 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0xa] - adds r0, #8 - strh r0, [r4, #0xa] - movs r6, #0 - movs r0, #1 - mov r8, r0 -_08147A64: - adds r0, r5, #0 - movs r1, #0x28 - bl Sin - ldrh r1, [r4, #0xa] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r0, #0 - bge _08147A7A - movs r1, #0 -_08147A7A: - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xf0 - ble _08147A84 - movs r1, #0xf0 -_08147A84: - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - lsls r1, r0, #8 - movs r2, #0xf1 - orrs r1, r2 - strh r1, [r7] - cmp r0, #0xef - bgt _08147A98 - movs r0, #0 - mov r8, r0 -_08147A98: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r0, r5, #4 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r7, #2 - cmp r6, #0x9f - bls _08147A64 - mov r1, r8 - cmp r1, #0 - beq _08147AB6 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_08147AB6: - ldr r0, _08147AD0 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, #1 - ldrb r2, [r1] - strb r0, [r1] - movs r0, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08147AD0: .4byte gUnknown_203A86C -_08147AD4: .4byte gUnknown_20388C8 - thumb_func_end Phase2_Wave_Func2 - - thumb_func_start Phase2_Wave_Func3 -Phase2_Wave_Func3: @ 0x08147AD8 - push {lr} - ldr r1, _08147B08 - ldrh r2, [r1, #0xa] - ldr r0, _08147B0C - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r2, [r1, #0xa] - ldr r0, _08147B10 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - bl sub_0814A044 - ldr r0, _08147B14 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_08147B08: .4byte 0x040000B0 -_08147B0C: .4byte 0x0000C5FF -_08147B10: .4byte 0x00007FFF -_08147B14: .4byte sub_081479AC - thumb_func_end Phase2_Wave_Func3 - - thumb_func_start VBlankCB_Phase2_Wave -VBlankCB_Phase2_Wave: @ 0x08147B18 - push {r4, lr} - ldr r4, _08147B78 - ldrh r1, [r4, #0xa] - ldr r0, _08147B7C - ands r0, r1 - strh r0, [r4, #0xa] - ldrh r1, [r4, #0xa] - ldr r0, _08147B80 - ands r0, r1 - strh r0, [r4, #0xa] - ldrh r0, [r4, #0xa] - bl VBlankCB_BattleTransition - ldr r3, _08147B84 - ldr r0, [r3] - ldrb r0, [r0] - cmp r0, #0 - beq _08147B50 - ldr r1, _08147B88 - ldr r0, _08147B8C - str r0, [r1] - movs r2, #0xf0 - lsls r2, r2, #3 - adds r0, r0, r2 - str r0, [r1, #4] - ldr r0, _08147B90 - str r0, [r1, #8] - ldr r0, [r1, #8] -_08147B50: - ldr r2, _08147B94 - ldr r1, [r3] - ldrh r0, [r1, #2] - strh r0, [r2] - adds r2, #2 - ldrh r0, [r1, #4] - strh r0, [r2] - subs r2, #6 - ldrh r0, [r1, #8] - strh r0, [r2] - ldr r0, _08147B98 - str r0, [r4] - ldr r0, _08147B9C - str r0, [r4, #4] - ldr r0, _08147BA0 - str r0, [r4, #8] - ldr r0, [r4, #8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08147B78: .4byte 0x040000B0 -_08147B7C: .4byte 0x0000C5FF -_08147B80: .4byte 0x00007FFF -_08147B84: .4byte gUnknown_203A86C -_08147B88: .4byte 0x040000D4 -_08147B8C: .4byte gUnknown_20388C8 -_08147B90: .4byte 0x800000A0 -_08147B94: .4byte 0x04000048 -_08147B98: .4byte gUnknown_2039048 -_08147B9C: .4byte 0x04000040 -_08147BA0: .4byte 0xA2400001 - thumb_func_end VBlankCB_Phase2_Wave - - thumb_func_start Phase2Task_Sidney -Phase2Task_Sidney: @ 0x08147BA4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08147BC0 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r2, #0 - strh r2, [r1, #0x26] - bl sub_08147C44 - pop {r0} - bx r0 - .align 2, 0 -_08147BC0: .4byte gUnknown_3005B60 - thumb_func_end Phase2Task_Sidney - - thumb_func_start Phase2Task_Phoebe -Phase2Task_Phoebe: @ 0x08147BC4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08147BE0 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r2, #1 - strh r2, [r1, #0x26] - bl sub_08147C44 - pop {r0} - bx r0 - .align 2, 0 -_08147BE0: .4byte gUnknown_3005B60 - thumb_func_end Phase2Task_Phoebe - - thumb_func_start Phase2Task_Glacia -Phase2Task_Glacia: @ 0x08147BE4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08147C00 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r2, #2 - strh r2, [r1, #0x26] - bl sub_08147C44 - pop {r0} - bx r0 - .align 2, 0 -_08147C00: .4byte gUnknown_3005B60 - thumb_func_end Phase2Task_Glacia - - thumb_func_start Phase2Task_Drake -Phase2Task_Drake: @ 0x08147C04 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08147C20 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r2, #3 - strh r2, [r1, #0x26] - bl sub_08147C44 - pop {r0} - bx r0 - .align 2, 0 -_08147C20: .4byte gUnknown_3005B60 - thumb_func_end Phase2Task_Drake - - thumb_func_start Phase2Task_Champion -Phase2Task_Champion: @ 0x08147C24 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08147C40 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r2, #4 - strh r2, [r1, #0x26] - bl sub_08147C44 - pop {r0} - bx r0 - .align 2, 0 -_08147C40: .4byte gUnknown_3005B60 - thumb_func_end Phase2Task_Champion - - thumb_func_start sub_08147C44 -sub_08147C44: @ 0x08147C44 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _08147C74 - ldr r2, _08147C78 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_08147C56: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08147C56 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08147C74: .4byte gUnknown_85A867C -_08147C78: .4byte gUnknown_3005B60 - thumb_func_end sub_08147C44 - - thumb_func_start Phase2_Mugshot_Func1 -Phase2_Mugshot_Func1: @ 0x08147C7C - push {r4, lr} - adds r4, r0, #0 - bl sub_08149FC8 - bl ScanlineEffect_Clear - adds r0, r4, #0 - bl Mugshots_CreateOpponentPlayerSprites - movs r0, #0 - strh r0, [r4, #0xa] - movs r0, #1 - strh r0, [r4, #0xc] - movs r0, #0xef - strh r0, [r4, #0xe] - ldr r0, _08147CD4 - ldr r1, [r0] - movs r0, #0x3f - strh r0, [r1, #2] - movs r0, #0x3e - strh r0, [r1, #4] - movs r0, #0xa0 - strh r0, [r1, #8] - movs r1, #0 - ldr r3, _08147CD8 - ldr r2, _08147CDC -_08147CB0: - lsls r0, r1, #1 - adds r0, r0, r3 - strh r2, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x9f - bls _08147CB0 - ldr r0, _08147CE0 - bl SetVBlankCallback - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08147CD4: .4byte gUnknown_203A86C -_08147CD8: .4byte gUnknown_2039048 -_08147CDC: .4byte 0x0000F0F1 -_08147CE0: .4byte VBlankCB0_Phase2_Mugshots - thumb_func_end Phase2_Mugshot_Func1 - - thumb_func_start Phase2_Mugshot_Func2 -Phase2_Mugshot_Func2: @ 0x08147CE4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - mov r8, r0 - ldr r6, _08147D8C - add r1, sp, #4 - mov r0, sp - bl sub_0814A018 - ldr r0, _08147D90 - ldr r1, [sp, #4] - movs r2, #0xf0 - bl CpuSet - ldr r1, _08147D94 - mov r2, r8 - movs r3, #0x26 - ldrsh r0, [r2, r3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - ldr r1, _08147D98 - ldr r0, _08147D9C - ldr r0, [r0] - ldrb r0, [r0, #8] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0xfa - movs r2, #0xc - bl LoadPalette - movs r1, #0 - ldr r5, [sp] - movs r0, #0xf0 - lsls r0, r0, #8 - adds r7, r0, #0 -_08147D38: - movs r0, #0 - lsls r3, r1, #0x10 - asrs r4, r3, #0xb -_08147D3E: - lsls r2, r0, #0x10 - asrs r2, r2, #0x10 - adds r1, r4, r2 - lsls r1, r1, #1 - adds r1, r1, r5 - ldrh r0, [r6] - orrs r0, r7 - strh r0, [r1] - adds r2, #1 - lsls r2, r2, #0x10 - adds r6, #2 - lsrs r0, r2, #0x10 - asrs r2, r2, #0x10 - cmp r2, #0x1f - ble _08147D3E - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r3, r1 - lsrs r1, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x13 - ble _08147D38 - movs r0, #2 - bl EnableInterrupts - ldr r0, _08147DA0 - bl SetHBlankCallback - mov r2, r8 - ldrh r0, [r2, #8] - adds r0, #1 - strh r0, [r2, #8] - movs r0, #0 - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08147D8C: .4byte gUnknown_85A8F80 -_08147D90: .4byte gUnknown_85995A0 -_08147D94: .4byte gUnknown_85A8A8C -_08147D98: .4byte gUnknown_85A8AA0 -_08147D9C: .4byte gUnknown_3005AF0 -_08147DA0: .4byte HBlankCB_Phase2_Mugshots - thumb_func_end Phase2_Mugshot_Func2 - - thumb_func_start Phase2_Mugshot_Func3 -Phase2_Mugshot_Func3: @ 0x08147DA4 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r0, _08147E88 - ldr r1, [r0] - ldrb r0, [r1] - movs r0, #0 - strb r0, [r1] - ldr r7, _08147E8C - ldrh r0, [r4, #0xa] - ldrb r5, [r4, #0xa] - adds r0, #0x10 - strh r0, [r4, #0xa] - movs r6, #0 -_08147DBE: - adds r0, r5, #0 - movs r1, #0x10 - bl Sin - ldrh r1, [r4, #0xc] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r0, #0 - bge _08147DD4 - movs r2, #1 -_08147DD4: - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xf0 - ble _08147DDE - movs r2, #0xf0 -_08147DDE: - strh r2, [r7] - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r7, #2 - adds r0, r5, #0 - adds r0, #0x10 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r6, #0x4f - bls _08147DBE - cmp r6, #0x9f - bhi _08147E36 -_08147DF8: - adds r0, r5, #0 - movs r1, #0x10 - bl Sin - ldrh r1, [r4, #0xe] - subs r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r2, r1, #0x10 - cmp r1, #0 - bge _08147E0E - movs r2, #0 -_08147E0E: - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xef - ble _08147E18 - movs r2, #0xef -_08147E18: - lsls r0, r2, #0x10 - asrs r0, r0, #8 - movs r1, #0xf0 - orrs r0, r1 - strh r0, [r7] - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r7, #2 - adds r0, r5, #0 - adds r0, #0x10 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r6, #0x9f - bls _08147DF8 -_08147E36: - ldrh r1, [r4, #0xc] - adds r1, #8 - strh r1, [r4, #0xc] - ldrh r0, [r4, #0xe] - subs r0, #8 - strh r0, [r4, #0xe] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0xf0 - ble _08147E4E - movs r0, #0xf0 - strh r0, [r4, #0xc] -_08147E4E: - movs r1, #0xe - ldrsh r0, [r4, r1] - cmp r0, #0 - bge _08147E5A - movs r0, #0 - strh r0, [r4, #0xe] -_08147E5A: - ldr r0, [r4, #0xc] - cmp r0, #0xf0 - bne _08147E66 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_08147E66: - ldr r0, _08147E88 - ldr r1, [r0] - ldrh r0, [r1, #0x18] - subs r0, #8 - strh r0, [r1, #0x18] - ldrh r0, [r1, #0x1a] - adds r0, #8 - strh r0, [r1, #0x1a] - ldrb r0, [r1] - adds r0, #1 - ldrb r2, [r1] - strb r0, [r1] - movs r0, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08147E88: .4byte gUnknown_203A86C -_08147E8C: .4byte gUnknown_20388C8 - thumb_func_end Phase2_Mugshot_Func3 - - thumb_func_start Phase2_Mugshot_Func4 -Phase2_Mugshot_Func4: @ 0x08147E90 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r2, _08147F04 - ldr r1, [r2] - ldrb r0, [r1] - movs r0, #0 - strb r0, [r1] - ldr r1, _08147F08 - adds r5, r2, #0 - movs r2, #0xf0 -_08147EA4: - strh r2, [r1] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, #2 - cmp r0, #0x9f - bls _08147EA4 - ldrh r0, [r4, #8] - adds r0, #1 - movs r1, #0 - strh r0, [r4, #8] - strh r1, [r4, #0xa] - strh r1, [r4, #0xc] - strh r1, [r4, #0xe] - ldr r1, [r5] - ldrh r0, [r1, #0x18] - subs r0, #8 - strh r0, [r1, #0x18] - ldrh r0, [r1, #0x1a] - adds r0, #8 - strh r0, [r1, #0x1a] - movs r1, #0x22 - ldrsh r0, [r4, r1] - movs r1, #0 - bl sub_08148544 - movs r1, #0x24 - ldrsh r0, [r4, r1] - movs r1, #1 - bl sub_08148544 - movs r1, #0x22 - ldrsh r0, [r4, r1] - bl sub_0814855C - movs r0, #0x68 - bl sub_080A306C - ldr r1, [r5] - ldrb r0, [r1] - adds r0, #1 - ldrb r2, [r1] - strb r0, [r1] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08147F04: .4byte gUnknown_203A86C -_08147F08: .4byte gUnknown_20388C8 - thumb_func_end Phase2_Mugshot_Func4 - - thumb_func_start Phase2_Mugshot_Func5 -Phase2_Mugshot_Func5: @ 0x08147F0C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08147F44 - ldr r1, [r0] - ldrh r0, [r1, #0x18] - subs r0, #8 - strh r0, [r1, #0x18] - ldrh r0, [r1, #0x1a] - adds r0, #8 - strh r0, [r1, #0x1a] - movs r1, #0x22 - ldrsh r0, [r4, r1] - bl sub_08148578 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08147F3C - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r1, #0x24 - ldrsh r0, [r4, r1] - bl sub_0814855C -_08147F3C: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08147F44: .4byte gUnknown_203A86C - thumb_func_end Phase2_Mugshot_Func5 - - thumb_func_start Phase2_Mugshot_Func6 -Phase2_Mugshot_Func6: @ 0x08147F48 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - ldr r7, _08147FE8 - ldr r1, [r7] - ldrh r0, [r1, #0x18] - subs r0, #8 - movs r2, #0 - mov r8, r2 - strh r0, [r1, #0x18] - ldrh r0, [r1, #0x1a] - adds r0, #8 - strh r0, [r1, #0x1a] - movs r1, #0x24 - ldrsh r0, [r6, r1] - bl sub_08148578 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08147FDC - ldr r1, [r7] - ldrb r0, [r1] - movs r0, #0 - strb r0, [r1] - movs r0, #0 - bl SetVBlankCallback - ldr r1, _08147FEC - ldrh r2, [r1, #0xa] - ldr r0, _08147FF0 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r2, [r1, #0xa] - ldr r0, _08147FF4 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - ldr r4, _08147FF8 - movs r5, #0xa0 - lsls r5, r5, #1 - adds r0, r4, #0 - movs r1, #0 - adds r2, r5, #0 - bl memset - movs r2, #0xf0 - lsls r2, r2, #3 - adds r4, r4, r2 - adds r0, r4, #0 - movs r1, #0 - adds r2, r5, #0 - bl memset - movs r0, #0x40 - movs r1, #0xf0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - ldrh r0, [r6, #8] - adds r0, #1 - strh r0, [r6, #8] - mov r0, r8 - strh r0, [r6, #0xe] - strh r0, [r6, #0x10] - ldr r1, [r7] - movs r0, #0xbf - strh r0, [r1, #0xe] - ldr r0, _08147FFC - bl SetVBlankCallback -_08147FDC: - movs r0, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08147FE8: .4byte gUnknown_203A86C -_08147FEC: .4byte 0x040000B0 -_08147FF0: .4byte 0x0000C5FF -_08147FF4: .4byte 0x00007FFF -_08147FF8: .4byte gUnknown_20388C8 -_08147FFC: .4byte VBlankCB1_Phase2_Mugshots - thumb_func_end Phase2_Mugshot_Func6 - - thumb_func_start Phase2_Mugshot_Func7 -Phase2_Mugshot_Func7: @ 0x08148000 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r2, _081480C0 - ldr r1, [r2] - ldrb r0, [r1] - movs r0, #0 - strb r0, [r1] - movs r6, #1 - ldr r1, [r2] - ldrh r0, [r1, #0x18] - subs r0, #8 - strh r0, [r1, #0x18] - ldrh r0, [r1, #0x1a] - adds r0, #8 - strh r0, [r1, #0x1a] - ldrh r1, [r4, #0x10] - movs r3, #0x10 - ldrsh r0, [r4, r3] - mov ip, r2 - cmp r0, #0x4f - bgt _0814802E - adds r0, r1, #2 - strh r0, [r4, #0x10] -_0814802E: - movs r1, #0x10 - ldrsh r0, [r4, r1] - cmp r0, #0x50 - ble _0814803A - movs r0, #0x50 - strh r0, [r4, #0x10] -_0814803A: - ldrh r0, [r4, #0xe] - adds r0, #1 - strh r0, [r4, #0xe] - movs r1, #1 - ands r0, r1 - ldrh r3, [r4, #0x10] - cmp r0, #0 - beq _0814809C - movs r2, #0 - lsls r0, r3, #0x10 - movs r6, #0 - cmp r0, #0 - blt _0814809C - movs r7, #0x50 - ldr r5, _081480C4 -_08148058: - lsls r0, r2, #0x10 - asrs r3, r0, #0x10 - subs r1, r7, r3 - adds r0, r3, #0 - adds r0, #0x50 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0xf - adds r1, r1, r5 - ldrh r0, [r1] - cmp r0, #0xf - bhi _08148078 - movs r6, #1 - adds r0, #1 - strh r0, [r1] -_08148078: - lsls r0, r2, #0x10 - asrs r0, r0, #0xf - adds r1, r0, r5 - ldrh r0, [r1] - cmp r0, #0xf - bhi _0814808A - movs r6, #1 - adds r0, #1 - strh r0, [r1] -_0814808A: - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - asrs r0, r0, #0x10 - movs r3, #0x10 - ldrsh r1, [r4, r3] - ldrh r3, [r4, #0x10] - cmp r0, r1 - ble _08148058 -_0814809C: - cmp r3, #0x50 - bne _081480AA - cmp r6, #0 - bne _081480AA - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_081480AA: - mov r1, ip - ldr r0, [r1] - ldrb r1, [r0] - adds r1, #1 - ldrb r2, [r0] - strb r1, [r0] - movs r0, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081480C0: .4byte gUnknown_203A86C -_081480C4: .4byte gUnknown_20388C8 - thumb_func_end Phase2_Mugshot_Func7 - - thumb_func_start Phase2_Mugshot_Func8 -Phase2_Mugshot_Func8: @ 0x081480C8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r5, _081480F8 - ldr r0, [r5] - ldrb r1, [r0] - movs r6, #0 - strb r6, [r0] - movs r0, #1 - rsbs r0, r0, #0 - ldr r2, _081480FC - movs r1, #0x10 - bl BlendPalettes - ldr r1, [r5] - movs r0, #0xff - strh r0, [r1, #0xe] - strh r6, [r4, #0xe] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #1 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_081480F8: .4byte gUnknown_203A86C -_081480FC: .4byte 0x00007FFF - thumb_func_end Phase2_Mugshot_Func8 - - thumb_func_start Phase2_Mugshot_Func9 -Phase2_Mugshot_Func9: @ 0x08148100 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08148144 - ldr r1, [r5] - ldrb r0, [r1] - movs r0, #0 - strb r0, [r1] - ldrh r0, [r4, #0xe] - adds r0, #1 - strh r0, [r4, #0xe] - ldr r0, _08148148 - movs r2, #0xe - ldrsh r1, [r4, r2] - movs r2, #0xa0 - lsls r2, r2, #1 - bl memset - movs r1, #0xe - ldrsh r0, [r4, r1] - cmp r0, #0xf - ble _08148130 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_08148130: - ldr r0, [r5] - ldrb r1, [r0] - adds r1, #1 - ldrb r2, [r0] - strb r1, [r0] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08148144: .4byte gUnknown_203A86C -_08148148: .4byte gUnknown_20388C8 - thumb_func_end Phase2_Mugshot_Func9 - - thumb_func_start Phase2_RectangularSpiral_Func3 -Phase2_RectangularSpiral_Func3: @ 0x0814814C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08148180 - ldrh r2, [r1, #0xa] - ldr r0, _08148184 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r2, [r1, #0xa] - ldr r0, _08148188 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - bl sub_0814A044 - ldr r0, [r4] - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08148180: .4byte 0x040000B0 -_08148184: .4byte 0x0000C5FF -_08148188: .4byte 0x00007FFF - thumb_func_end Phase2_RectangularSpiral_Func3 - - thumb_func_start VBlankCB0_Phase2_Mugshots -VBlankCB0_Phase2_Mugshots: @ 0x0814818C - push {r4, lr} - ldr r4, _081481F4 - ldrh r1, [r4, #0xa] - ldr r0, _081481F8 - ands r0, r1 - strh r0, [r4, #0xa] - ldrh r1, [r4, #0xa] - ldr r0, _081481FC - ands r0, r1 - strh r0, [r4, #0xa] - ldrh r0, [r4, #0xa] - bl VBlankCB_BattleTransition - ldr r3, _08148200 - ldr r0, [r3] - ldrb r0, [r0] - cmp r0, #0 - beq _081481C4 - ldr r1, _08148204 - ldr r0, _08148208 - str r0, [r1] - movs r2, #0xf0 - lsls r2, r2, #3 - adds r0, r0, r2 - str r0, [r1, #4] - ldr r0, _0814820C - str r0, [r1, #8] - ldr r0, [r1, #8] -_081481C4: - ldr r2, _08148210 - ldr r1, [r3] - ldrh r0, [r1, #0x1c] - strh r0, [r2] - adds r2, #0x36 - ldrh r0, [r1, #2] - strh r0, [r2] - adds r2, #2 - ldrh r0, [r1, #4] - strh r0, [r2] - subs r2, #6 - ldrh r0, [r1, #8] - strh r0, [r2] - ldr r0, _08148214 - str r0, [r4] - ldr r0, _08148218 - str r0, [r4, #4] - ldr r0, _0814821C - str r0, [r4, #8] - ldr r0, [r4, #8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081481F4: .4byte 0x040000B0 -_081481F8: .4byte 0x0000C5FF -_081481FC: .4byte 0x00007FFF -_08148200: .4byte gUnknown_203A86C -_08148204: .4byte 0x040000D4 -_08148208: .4byte gUnknown_20388C8 -_0814820C: .4byte 0x800000A0 -_08148210: .4byte 0x04000012 -_08148214: .4byte gUnknown_2039048 -_08148218: .4byte 0x04000040 -_0814821C: .4byte 0xA2400001 - thumb_func_end VBlankCB0_Phase2_Mugshots - - thumb_func_start VBlankCB1_Phase2_Mugshots -VBlankCB1_Phase2_Mugshots: @ 0x08148220 - push {r4, lr} - ldr r4, _08148274 - ldrh r1, [r4, #0xa] - ldr r0, _08148278 - ands r0, r1 - strh r0, [r4, #0xa] - ldrh r1, [r4, #0xa] - ldr r0, _0814827C - ands r0, r1 - strh r0, [r4, #0xa] - ldrh r0, [r4, #0xa] - bl VBlankCB_BattleTransition - ldr r2, _08148280 - ldr r0, [r2] - ldrb r0, [r0] - cmp r0, #0 - beq _08148258 - ldr r1, _08148284 - ldr r0, _08148288 - str r0, [r1] - movs r3, #0xf0 - lsls r3, r3, #3 - adds r0, r0, r3 - str r0, [r1, #4] - ldr r0, _0814828C - str r0, [r1, #8] - ldr r0, [r1, #8] -_08148258: - ldr r1, _08148290 - ldr r0, [r2] - ldrh r0, [r0, #0xe] - strh r0, [r1] - ldr r0, _08148294 - str r0, [r4] - ldr r0, _08148298 - str r0, [r4, #4] - ldr r0, _0814829C - str r0, [r4, #8] - ldr r0, [r4, #8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08148274: .4byte 0x040000B0 -_08148278: .4byte 0x0000C5FF -_0814827C: .4byte 0x00007FFF -_08148280: .4byte gUnknown_203A86C -_08148284: .4byte 0x040000D4 -_08148288: .4byte gUnknown_20388C8 -_0814828C: .4byte 0x800000A0 -_08148290: .4byte 0x04000050 -_08148294: .4byte gUnknown_2039048 -_08148298: .4byte 0x04000054 -_0814829C: .4byte 0xA2400001 - thumb_func_end VBlankCB1_Phase2_Mugshots - - thumb_func_start HBlankCB_Phase2_Mugshots -HBlankCB_Phase2_Mugshots: @ 0x081482A0 - push {lr} - ldr r0, _081482B4 - ldrh r0, [r0] - cmp r0, #0x4f - bhi _081482C0 - ldr r1, _081482B8 - ldr r0, _081482BC - ldr r0, [r0] - ldrh r0, [r0, #0x18] - b _081482C8 - .align 2, 0 -_081482B4: .4byte 0x04000006 -_081482B8: .4byte 0x04000010 -_081482BC: .4byte gUnknown_203A86C -_081482C0: - ldr r1, _081482D0 - ldr r0, _081482D4 - ldr r0, [r0] - ldrh r0, [r0, #0x1a] -_081482C8: - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_081482D0: .4byte 0x04000010 -_081482D4: .4byte gUnknown_203A86C - thumb_func_end HBlankCB_Phase2_Mugshots - - thumb_func_start Mugshots_CreateOpponentPlayerSprites -Mugshots_CreateOpponentPlayerSprites: @ 0x081482D8 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #4 - adds r4, r0, #0 - ldr r0, _08148420 - movs r2, #0x26 - ldrsh r1, [r4, r2] - mov r8, r1 - add r0, r8 - ldrb r0, [r0] - ldr r2, _08148424 - lsls r1, r1, #2 - mov r8, r1 - adds r1, r1, r2 - ldrh r1, [r1] - subs r1, #0x20 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r2, #2 - add r2, r8 - ldrh r2, [r2] - adds r2, #0x2a - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - ldr r5, _08148428 - str r5, [sp] - movs r3, #0 - bl CreateTrainerSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x22] - ldr r0, _0814842C - ldr r0, [r0] - ldrb r0, [r0, #8] - bl PlayerGenderToFrontTrainerPicId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x88 - lsls r1, r1, #1 - str r5, [sp] - movs r2, #0x6a - movs r3, #0 - bl CreateTrainerSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x24] - movs r3, #0x22 - ldrsh r0, [r4, r3] - lsls r5, r0, #4 - adds r5, r5, r0 - lsls r5, r5, #2 - ldr r1, _08148430 - adds r5, r5, r1 - movs r2, #0x24 - ldrsh r0, [r4, r2] - lsls r6, r0, #4 - adds r6, r6, r0 - lsls r6, r6, #2 - adds r6, r6, r1 - ldr r0, _08148434 - str r0, [r5, #0x1c] - str r0, [r6, #0x1c] - ldrb r0, [r5, #1] - movs r1, #3 - orrs r0, r1 - strb r0, [r5, #1] - ldrb r0, [r6, #1] - orrs r0, r1 - strb r0, [r6, #1] - bl sub_080080C8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r3, #0x1f - mov sb, r3 - mov r4, sb - ands r0, r4 - lsls r0, r0, #1 - ldrb r2, [r5, #3] - movs r4, #0x3f - rsbs r4, r4, #0 - adds r1, r4, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, #3] - bl sub_080080C8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, sb - ands r0, r1 - lsls r0, r0, #1 - ldrb r1, [r6, #3] - ands r4, r1 - orrs r4, r0 - strb r4, [r6, #3] - ldrb r2, [r5, #1] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r5, #1] - ldrb r0, [r6, #1] - ands r1, r0 - orrs r1, r2 - strb r1, [r6, #1] - ldrb r0, [r5, #3] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r5, #3] - ldrb r0, [r6, #3] - orrs r0, r1 - strb r0, [r6, #3] - adds r0, r5, #0 - movs r1, #1 - movs r2, #3 - movs r3, #3 - bl CalcCenterToCornerVec - adds r0, r6, #0 - movs r1, #1 - movs r2, #3 - movs r3, #3 - bl CalcCenterToCornerVec - ldrb r0, [r5, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - ldr r2, _08148438 - mov r3, r8 - adds r1, r3, r2 - movs r4, #0 - ldrsh r1, [r1, r4] - adds r2, #2 - add r8, r2 - mov r3, r8 - movs r4, #0 - ldrsh r2, [r3, r4] - movs r3, #0 - bl SetOamMatrixRotationScaling - ldrb r0, [r6, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - ldr r1, _0814843C - movs r2, #0x80 - lsls r2, r2, #2 - movs r3, #0 - bl SetOamMatrixRotationScaling - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08148420: .4byte gUnknown_85A86A4 -_08148424: .4byte gUnknown_85A86BE -_08148428: .4byte gUnknown_201C000 -_0814842C: .4byte gUnknown_3005AF0 -_08148430: .4byte gUnknown_20205AC -_08148434: .4byte sub_08148440 -_08148438: .4byte gUnknown_85A86AA -_0814843C: .4byte 0xFFFFFE00 - thumb_func_end Mugshots_CreateOpponentPlayerSprites - - thumb_func_start sub_08148440 -sub_08148440: @ 0x08148440 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08148464 -_08148446: - movs r1, #0x2e - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08148446 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08148464: .4byte gUnknown_85A86D4 - thumb_func_end sub_08148440 - - thumb_func_start sub_08148468 -sub_08148468: @ 0x08148468 - movs r0, #0 - bx lr - thumb_func_end sub_08148468 - - thumb_func_start sub_0814846C -sub_0814846C: @ 0x0814846C - push {r4, r5, lr} - sub sp, #8 - adds r5, r0, #0 - ldr r1, _081484B0 - mov r0, sp - movs r2, #4 - bl memcpy - add r4, sp, #4 - ldr r1, _081484B4 - adds r0, r4, #0 - movs r2, #4 - bl memcpy - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] - movs r1, #0x3c - ldrsh r0, [r5, r1] - lsls r0, r0, #1 - add r0, sp - ldrh r0, [r0] - strh r0, [r5, #0x30] - movs r1, #0x3c - ldrsh r0, [r5, r1] - lsls r0, r0, #1 - adds r4, r4, r0 - ldrh r0, [r4] - strh r0, [r5, #0x32] - movs r0, #1 - add sp, #8 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081484B0: .4byte gUnknown_85A86F0 -_081484B4: .4byte gUnknown_85A86F4 - thumb_func_end sub_0814846C - - thumb_func_start sub_081484B8 -sub_081484B8: @ 0x081484B8 - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0x30] - ldrh r3, [r1, #0x20] - adds r2, r0, r3 - strh r2, [r1, #0x20] - movs r3, #0x3c - ldrsh r0, [r1, r3] - cmp r0, #0 - beq _081484D6 - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x84 - bgt _081484E4 - b _081484DE -_081484D6: - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x67 - ble _081484E4 -_081484DE: - ldrh r0, [r1, #0x2e] - adds r0, #1 - strh r0, [r1, #0x2e] -_081484E4: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081484B8 - - thumb_func_start sub_081484EC -sub_081484EC: @ 0x081484EC - push {lr} - adds r2, r0, #0 - ldrh r3, [r2, #0x32] - ldrh r0, [r2, #0x30] - adds r1, r3, r0 - strh r1, [r2, #0x30] - ldrh r0, [r2, #0x20] - adds r0, r0, r1 - strh r0, [r2, #0x20] - lsls r1, r1, #0x10 - cmp r1, #0 - bne _08148512 - ldrh r0, [r2, #0x2e] - adds r0, #1 - strh r0, [r2, #0x2e] - rsbs r0, r3, #0 - strh r0, [r2, #0x32] - movs r0, #1 - strh r0, [r2, #0x3a] -_08148512: - movs r0, #0 - pop {r1} - bx r1 - thumb_func_end sub_081484EC - - thumb_func_start sub_08148518 -sub_08148518: @ 0x08148518 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x32] - ldrh r1, [r2, #0x30] - adds r0, r0, r1 - strh r0, [r2, #0x30] - ldrh r1, [r2, #0x20] - adds r1, r1, r0 - strh r1, [r2, #0x20] - adds r1, #0x1f - lsls r1, r1, #0x10 - movs r0, #0x97 - lsls r0, r0, #0x11 - cmp r1, r0 - bls _0814853C - ldrh r0, [r2, #0x2e] - adds r0, #1 - strh r0, [r2, #0x2e] -_0814853C: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08148518 - - thumb_func_start sub_08148544 -sub_08148544: @ 0x08148544 - ldr r3, _08148558 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r3 - strh r1, [r2, #0x3c] - bx lr - .align 2, 0 -_08148558: .4byte gUnknown_20205AC - thumb_func_end sub_08148544 - - thumb_func_start sub_0814855C -sub_0814855C: @ 0x0814855C - ldr r2, _08148574 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r0, [r1, #0x2e] - adds r0, #1 - strh r0, [r1, #0x2e] - bx lr - .align 2, 0 -_08148574: .4byte gUnknown_20205AC - thumb_func_end sub_0814855C - - thumb_func_start sub_08148578 -sub_08148578: @ 0x08148578 - ldr r2, _0814858C - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r2, #0x3a - ldrsh r0, [r1, r2] - bx lr - .align 2, 0 -_0814858C: .4byte gUnknown_20205AC - thumb_func_end sub_08148578 - - thumb_func_start sub_08148590 -sub_08148590: @ 0x08148590 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _081485C0 - ldr r2, _081485C4 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_081485A2: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081485A2 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081485C0: .4byte gUnknown_85A86F8 -_081485C4: .4byte gUnknown_3005B60 - thumb_func_end sub_08148590 - - thumb_func_start Phase2_Slice_Func1 -Phase2_Slice_Func1: @ 0x081485C8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_08149FC8 - bl ScanlineEffect_Clear - movs r4, #0 - movs r3, #0 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r5, #0xc] - movs r0, #1 - strh r0, [r5, #0xe] - ldr r2, _08148640 - ldr r1, [r2] - movs r0, #0x3f - strh r0, [r1, #2] - strh r3, [r1, #4] - movs r0, #0xa0 - strh r0, [r1, #8] - ldrb r0, [r1] - strb r4, [r1] - ldr r4, _08148644 - adds r6, r2, #0 - movs r2, #0xf0 -_081485FA: - lsls r1, r3, #1 - adds r1, r1, r4 - ldr r0, [r6] - ldrh r0, [r0, #0x14] - strh r0, [r1] - adds r0, r3, #0 - adds r0, #0xa0 - lsls r0, r0, #1 - adds r0, r0, r4 - strh r2, [r0] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #0x9f - bls _081485FA - movs r0, #2 - bl EnableInterrupts - movs r0, #4 - movs r1, #0x10 - bl SetGpuRegBits - ldr r0, _08148648 - bl SetVBlankCallback - ldr r0, _0814864C - bl SetHBlankCallback - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - movs r0, #1 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08148640: .4byte gUnknown_203A86C -_08148644: .4byte gUnknown_2039048 -_08148648: .4byte VBlankCB_Phase2_Slice -_0814864C: .4byte HBlankCB_Phase2_Slice - thumb_func_end Phase2_Slice_Func1 - - thumb_func_start Phase2_Slice_Func2 -Phase2_Slice_Func2: @ 0x08148650 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r3, r0, #0 - ldr r2, _081486CC - ldr r1, [r2] - ldrb r0, [r1] - movs r0, #0 - strb r0, [r1] - ldrh r0, [r3, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - ldrh r1, [r3, #0xa] - adds r0, r0, r1 - strh r0, [r3, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov r8, r2 - cmp r0, #0xf0 - ble _0814867C - movs r0, #0xf0 - strh r0, [r3, #0xa] -_0814867C: - ldrh r4, [r3, #0xc] - movs r0, #0xc - ldrsh r1, [r3, r0] - ldr r0, _081486D0 - ldrh r2, [r3, #0xe] - cmp r1, r0 - bgt _0814868E - adds r0, r4, r2 - strh r0, [r3, #0xc] -_0814868E: - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x7f - bgt _0814869A - lsls r0, r2, #1 - strh r0, [r3, #0xe] -_0814869A: - movs r5, #0 - ldr r7, _081486D4 - movs r1, #0xa0 - lsls r1, r1, #1 - adds r1, r1, r7 - mov ip, r1 - mov r6, r8 -_081486A8: - lsls r0, r5, #1 - adds r2, r0, r7 - mov r1, ip - adds r4, r0, r1 - movs r0, #1 - ands r0, r5 - cmp r0, #0 - beq _081486D8 - ldr r1, [r6] - ldrh r0, [r3, #0xa] - ldrh r1, [r1, #0x14] - adds r0, r0, r1 - strh r0, [r2] - ldrh r1, [r3, #0xa] - movs r0, #0xf0 - subs r0, r0, r1 - b _081486EA - .align 2, 0 -_081486CC: .4byte gUnknown_203A86C -_081486D0: .4byte 0x00000FFF -_081486D4: .4byte gUnknown_20388C8 -_081486D8: - ldr r0, [r6] - ldrh r0, [r0, #0x14] - ldrh r1, [r3, #0xa] - subs r0, r0, r1 - strh r0, [r2] - ldrh r0, [r3, #0xa] - lsls r0, r0, #8 - movs r1, #0xf1 - orrs r0, r1 -_081486EA: - strh r0, [r4] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0x9f - bls _081486A8 - movs r1, #0xa - ldrsh r0, [r3, r1] - cmp r0, #0xef - ble _08148704 - ldrh r0, [r3, #8] - adds r0, #1 - strh r0, [r3, #8] -_08148704: - mov r1, r8 - ldr r0, [r1] - ldrb r1, [r0] - adds r1, #1 - ldrb r2, [r0] - strb r1, [r0] - movs r0, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end Phase2_Slice_Func2 - - thumb_func_start Phase2_Slice_Func3 -Phase2_Slice_Func3: @ 0x0814871C - push {lr} - ldr r1, _0814874C - ldrh r2, [r1, #0xa] - ldr r0, _08148750 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r2, [r1, #0xa] - ldr r0, _08148754 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - bl sub_0814A044 - ldr r0, _08148758 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0814874C: .4byte 0x040000B0 -_08148750: .4byte 0x0000C5FF -_08148754: .4byte 0x00007FFF -_08148758: .4byte sub_08148590 - thumb_func_end Phase2_Slice_Func3 - - thumb_func_start VBlankCB_Phase2_Slice -VBlankCB_Phase2_Slice: @ 0x0814875C - push {r4, lr} - ldr r4, _081487BC - ldrh r1, [r4, #0xa] - ldr r0, _081487C0 - ands r0, r1 - strh r0, [r4, #0xa] - ldrh r1, [r4, #0xa] - ldr r0, _081487C4 - ands r0, r1 - strh r0, [r4, #0xa] - ldrh r0, [r4, #0xa] - bl VBlankCB_BattleTransition - ldr r2, _081487C8 - ldr r0, _081487CC - ldr r1, [r0] - ldrh r0, [r1, #2] - strh r0, [r2] - adds r2, #2 - ldrh r0, [r1, #4] - strh r0, [r2] - subs r2, #6 - ldrh r0, [r1, #8] - strh r0, [r2] - ldrb r0, [r1] - cmp r0, #0 - beq _081487A6 - ldr r1, _081487D0 - ldr r0, _081487D4 - str r0, [r1] - movs r2, #0xf0 - lsls r2, r2, #3 - adds r0, r0, r2 - str r0, [r1, #4] - ldr r0, _081487D8 - str r0, [r1, #8] - ldr r0, [r1, #8] -_081487A6: - ldr r0, _081487DC - str r0, [r4] - ldr r0, _081487E0 - str r0, [r4, #4] - ldr r0, _081487E4 - str r0, [r4, #8] - ldr r0, [r4, #8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081487BC: .4byte 0x040000B0 -_081487C0: .4byte 0x0000C5FF -_081487C4: .4byte 0x00007FFF -_081487C8: .4byte 0x04000048 -_081487CC: .4byte gUnknown_203A86C -_081487D0: .4byte 0x040000D4 -_081487D4: .4byte gUnknown_20388C8 -_081487D8: .4byte 0x80000140 -_081487DC: .4byte gUnknown_2039188 -_081487E0: .4byte 0x04000040 -_081487E4: .4byte 0xA2400001 - thumb_func_end VBlankCB_Phase2_Slice - - thumb_func_start HBlankCB_Phase2_Slice -HBlankCB_Phase2_Slice: @ 0x081487E8 - push {lr} - ldr r2, _08148814 - ldrh r0, [r2] - cmp r0, #0x9f - bhi _0814880E - ldr r1, _08148818 - ldrh r0, [r2] - lsls r0, r0, #1 - movs r2, #0xf0 - lsls r2, r2, #3 - adds r1, r1, r2 - adds r0, r0, r1 - ldrh r1, [r0] - ldr r0, _0814881C - strh r1, [r0] - adds r0, #4 - strh r1, [r0] - adds r0, #4 - strh r1, [r0] -_0814880E: - pop {r0} - bx r0 - .align 2, 0 -_08148814: .4byte 0x04000006 -_08148818: .4byte gUnknown_20388C8 -_0814881C: .4byte 0x04000014 - thumb_func_end HBlankCB_Phase2_Slice - - thumb_func_start sub_08148820 -sub_08148820: @ 0x08148820 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _08148850 - ldr r2, _08148854 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_08148832: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08148832 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08148850: .4byte gUnknown_85A8704 -_08148854: .4byte gUnknown_3005B60 - thumb_func_end sub_08148820 - - thumb_func_start Phase2_ShredSplit_Func1 -Phase2_ShredSplit_Func1: @ 0x08148858 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - bl sub_08149FC8 - bl ScanlineEffect_Clear - ldr r0, _08148914 - ldr r1, [r0] - movs r2, #0 - movs r0, #0x3f - strh r0, [r1, #2] - strh r2, [r1, #4] - movs r0, #0xa0 - strh r0, [r1, #8] - movs r4, #0 - ldr r5, _08148918 - movs r0, #0xf0 - lsls r0, r0, #3 - adds r0, r0, r5 - mov ip, r0 - mov r8, r4 - movs r1, #0xf0 - mov sb, r1 -_0814888C: - lsls r2, r4, #1 - mov r7, ip - adds r1, r2, r7 - ldr r0, _08148914 - ldr r3, [r0] - ldrh r0, [r3, #0x14] - strh r0, [r1] - adds r1, r4, #0 - adds r1, #0xa0 - lsls r1, r1, #1 - adds r0, r1, r7 - mov r7, sb - strh r7, [r0] - adds r2, r2, r5 - ldrh r0, [r3, #0x14] - strh r0, [r2] - adds r1, r1, r5 - mov r0, sb - strh r0, [r1] - movs r1, #0xa0 - lsls r1, r1, #1 - adds r0, r4, r1 - lsls r0, r0, #1 - adds r0, r0, r5 - mov r7, r8 - strh r7, [r0] - adds r1, #0xa0 - adds r0, r4, r1 - lsls r0, r0, #1 - adds r0, r0, r5 - subs r1, #0xe0 - strh r1, [r0] - movs r7, #0xa0 - lsls r7, r7, #2 - adds r0, r4, r7 - lsls r0, r0, #1 - adds r0, r0, r5 - movs r1, #1 - strh r1, [r0] - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x9f - bls _0814888C - movs r0, #0 - strh r0, [r6, #0x10] - strh r0, [r6, #0x12] - movs r0, #7 - strh r0, [r6, #0x14] - movs r0, #2 - bl EnableInterrupts - ldr r0, _0814891C - bl SetVBlankCallback - ldr r0, _08148920 - bl SetHBlankCallback - ldrh r0, [r6, #8] - adds r0, #1 - strh r0, [r6, #8] - movs r0, #1 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08148914: .4byte gUnknown_203A86C -_08148918: .4byte gUnknown_20388C8 -_0814891C: .4byte VBlankCB_Phase2_Slice -_08148920: .4byte HBlankCB_Phase2_Slice - thumb_func_end Phase2_ShredSplit_Func1 - - thumb_func_start Phase2_ShredSplit_Func2 -Phase2_ShredSplit_Func2: @ 0x08148924 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - mov sb, r0 - ldr r1, _081489CC - mov r0, sp - movs r2, #2 - bl memcpy - add r4, sp, #4 - ldr r1, _081489D0 - adds r0, r4, #0 - movs r2, #4 - bl memcpy - ldr r2, _081489D4 - ldr r1, [r2] - ldrb r0, [r1] - movs r0, #0 - strb r0, [r1] - str r0, [sp, #8] - mov sl, r0 - mov r1, sb - movs r3, #0x12 - ldrsh r0, [r1, r3] - ldr r1, [sp, #8] - cmp r1, r0 - ble _08148964 - b _08148B28 -_08148964: - movs r7, #0 - mov r2, sl - rsbs r2, r2, #0 - str r2, [sp, #0xc] - mov r3, sl - adds r3, #1 - str r3, [sp, #0x10] -_08148972: - movs r6, #0 - mov r0, sp - adds r0, r0, r7 - mov ip, r0 -_0814897A: - lsls r0, r6, #1 - add r0, sp - adds r0, #4 - movs r1, #0 - ldrsh r0, [r0, r1] - ldr r2, [sp, #0xc] - muls r0, r2, r0 - lsls r0, r0, #1 - mov r3, ip - ldrb r3, [r3] - adds r0, r0, r3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - blt _08148A26 - cmp r0, #0x4f - bne _081489A2 - cmp r7, #1 - beq _08148A26 -_081489A2: - lsls r1, r0, #1 - ldr r0, _081489D8 - adds r4, r1, r0 - movs r2, #0xa0 - lsls r2, r2, #1 - adds r0, r0, r2 - adds r3, r1, r0 - ldr r0, _081489DC - adds r1, r1, r0 - ldrh r2, [r4] - cmp r2, #0xef - bls _081489E0 - movs r1, #0xf0 - strh r1, [r4] - ldr r0, [sp, #8] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #8] - b _08148A00 - .align 2, 0 -_081489CC: .4byte gUnknown_85A8714 -_081489D0: .4byte gUnknown_85A8716 -_081489D4: .4byte gUnknown_203A86C -_081489D8: .4byte gUnknown_2038B48 -_081489DC: .4byte gUnknown_2038DC8 -_081489E0: - ldrh r0, [r3] - lsrs r0, r0, #8 - adds r0, r2, r0 - strh r0, [r4] - ldrh r0, [r1] - cmp r0, #0x7f - bhi _081489F2 - lsls r0, r0, #1 - strh r0, [r1] -_081489F2: - ldrh r2, [r3] - ldr r0, _08148AA0 - cmp r2, r0 - bhi _08148A00 - ldrh r0, [r1] - adds r0, r2, r0 - strh r0, [r3] -_08148A00: - lsls r0, r5, #0x10 - asrs r0, r0, #0xf - ldr r1, _08148AA4 - adds r2, r0, r1 - ldr r1, _08148AA8 - adds r3, r0, r1 - ldr r0, _08148AAC - ldr r1, [r0] - ldrh r0, [r4] - ldrh r1, [r1, #0x14] - adds r0, r0, r1 - strh r0, [r2] - ldrh r0, [r4] - movs r1, #0xf0 - subs r0, r1, r0 - strh r0, [r3] - mov r2, sl - cmp r2, #0 - beq _08148A30 -_08148A26: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #1 - bls _0814897A -_08148A30: - adds r0, r7, #1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - cmp r7, #1 - bls _08148972 - movs r7, #0 - ldr r3, _08148AB0 - mov r8, r3 -_08148A40: - movs r6, #0 - mov r0, sp - adds r0, r0, r7 - mov ip, r0 - adds r1, r7, #1 - str r1, [sp, #0x14] -_08148A4C: - mov r2, ip - ldrb r1, [r2] - adds r1, #1 - lsls r0, r6, #1 - add r0, sp - adds r0, #4 - movs r3, #0 - ldrsh r0, [r0, r3] - ldr r2, [sp, #0xc] - muls r0, r2, r0 - lsls r0, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0xa0 - bgt _08148B00 - cmp r1, #0x50 - bne _08148A76 - cmp r7, #1 - beq _08148B00 -_08148A76: - lsls r1, r1, #1 - mov r3, r8 - adds r4, r1, r3 - movs r0, #0xa0 - lsls r0, r0, #1 - add r0, r8 - adds r3, r1, r0 - ldr r0, _08148AB4 - adds r1, r1, r0 - ldrh r2, [r4] - cmp r2, #0xef - bls _08148AB8 - movs r1, #0xf0 - strh r1, [r4] - ldr r0, [sp, #8] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #8] - b _08148AD8 - .align 2, 0 -_08148AA0: .4byte 0x00000FFF -_08148AA4: .4byte gUnknown_20388C8 -_08148AA8: .4byte gUnknown_2038A08 -_08148AAC: .4byte gUnknown_203A86C -_08148AB0: .4byte gUnknown_2038B48 -_08148AB4: .4byte gUnknown_2038DC8 -_08148AB8: - ldrh r0, [r3] - lsrs r0, r0, #8 - adds r0, r2, r0 - strh r0, [r4] - ldrh r0, [r1] - cmp r0, #0x7f - bhi _08148ACA - lsls r0, r0, #1 - strh r0, [r1] -_08148ACA: - ldrh r2, [r3] - ldr r0, _08148B84 - cmp r2, r0 - bhi _08148AD8 - ldrh r0, [r1] - adds r0, r2, r0 - strh r0, [r3] -_08148AD8: - lsls r0, r5, #0x10 - asrs r0, r0, #0xf - ldr r1, _08148B88 - adds r2, r0, r1 - ldr r1, _08148B8C - adds r3, r0, r1 - ldr r1, _08148B90 - ldr r0, [r1] - ldrh r1, [r0, #0x14] - ldrh r0, [r4] - subs r1, r1, r0 - strh r1, [r2] - ldrh r0, [r4] - lsls r0, r0, #8 - movs r1, #0xf1 - orrs r0, r1 - strh r0, [r3] - mov r2, sl - cmp r2, #0 - beq _08148B0A -_08148B00: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #1 - bls _08148A4C -_08148B0A: - ldr r3, [sp, #0x14] - lsls r0, r3, #0x10 - lsrs r7, r0, #0x10 - cmp r7, #1 - bls _08148A40 - ldr r1, [sp, #0x10] - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - mov sl, r0 - mov r2, sb - movs r3, #0x12 - ldrsh r0, [r2, r3] - cmp sl, r0 - bgt _08148B28 - b _08148964 -_08148B28: - mov r1, sb - ldrh r0, [r1, #0x10] - subs r0, #1 - strh r0, [r1, #0x10] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _08148B3A - movs r0, #0 - strh r0, [r1, #0x10] -_08148B3A: - mov r2, sb - movs r3, #0x10 - ldrsh r0, [r2, r3] - cmp r0, #0 - bgt _08148B58 - movs r1, #0x12 - ldrsh r0, [r2, r1] - adds r0, #1 - cmp r0, #0x14 - bgt _08148B58 - ldrh r0, [r2, #0x14] - strh r0, [r2, #0x10] - ldrh r0, [r2, #0x12] - adds r0, #1 - strh r0, [r2, #0x12] -_08148B58: - ldr r2, [sp, #8] - cmp r2, #0x9f - bls _08148B66 - mov r3, sb - ldrh r0, [r3, #8] - adds r0, #1 - strh r0, [r3, #8] -_08148B66: - ldr r0, _08148B90 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, #1 - ldrb r2, [r1] - strb r0, [r1] - movs r0, #0 - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08148B84: .4byte 0x00000FFF -_08148B88: .4byte gUnknown_20388C8 -_08148B8C: .4byte gUnknown_2038A08 -_08148B90: .4byte gUnknown_203A86C - thumb_func_end Phase2_ShredSplit_Func2 - - thumb_func_start Phase2_ShredSplit_Func3 -Phase2_ShredSplit_Func3: @ 0x08148B94 - push {r4, r5, lr} - adds r3, r0, #0 - movs r2, #1 - ldr r5, _08148BCC - movs r1, #0 - ldr r4, _08148BD0 -_08148BA0: - lsls r0, r1, #1 - adds r0, r0, r4 - ldrh r0, [r0] - cmp r0, #0xf0 - beq _08148BB0 - cmp r0, r5 - beq _08148BB0 - movs r2, #0 -_08148BB0: - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0x9f - bls _08148BA0 - cmp r2, #1 - bne _08148BC4 - ldrh r0, [r3, #8] - adds r0, #1 - strh r0, [r3, #8] -_08148BC4: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08148BCC: .4byte 0x0000FF10 -_08148BD0: .4byte gUnknown_2039048 - thumb_func_end Phase2_ShredSplit_Func3 - - thumb_func_start Phase2_ShredSplit_Func4 -Phase2_ShredSplit_Func4: @ 0x08148BD4 - push {lr} - ldr r1, _08148C04 - ldrh r2, [r1, #0xa] - ldr r0, _08148C08 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r2, [r1, #0xa] - ldr r0, _08148C0C - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - bl sub_0814A044 - ldr r0, _08148C10 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_08148C04: .4byte 0x040000B0 -_08148C08: .4byte 0x0000C5FF -_08148C0C: .4byte 0x00007FFF -_08148C10: .4byte sub_08148820 - thumb_func_end Phase2_ShredSplit_Func4 - - thumb_func_start sub_08148C14 -sub_08148C14: @ 0x08148C14 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _08148C44 - ldr r2, _08148C48 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_08148C26: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08148C26 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08148C44: .4byte gUnknown_85A871C -_08148C48: .4byte gUnknown_3005B60 - thumb_func_end sub_08148C14 - - thumb_func_start sub_08148C4C -sub_08148C4C: @ 0x08148C4C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _08148C7C - ldr r2, _08148C80 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_08148C5E: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08148C5E - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08148C7C: .4byte gUnknown_85A8728 -_08148C80: .4byte gUnknown_3005B60 - thumb_func_end sub_08148C4C - - thumb_func_start Phase2_Blackhole_Func1 -Phase2_Blackhole_Func1: @ 0x08148C84 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_08149FC8 - bl ScanlineEffect_Clear - ldr r0, _08148CD8 - ldr r1, [r0] - movs r0, #0 - strh r0, [r1, #2] - movs r0, #0x3f - strh r0, [r1, #4] - movs r0, #0xf0 - strh r0, [r1, #6] - movs r0, #0xa0 - strh r0, [r1, #8] - ldr r0, _08148CDC - movs r2, #0 - movs r1, #0x9f - ldr r3, _08148CE0 - adds r0, r0, r3 -_08148CAE: - strh r2, [r0] - subs r0, #2 - subs r1, #1 - cmp r1, #0 - bge _08148CAE - movs r4, #0 - ldr r0, _08148CE4 - bl SetVBlankCallback - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - movs r0, #1 - strh r0, [r5, #0xa] - adds r0, #0xff - strh r0, [r5, #0xc] - strh r4, [r5, #0x16] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08148CD8: .4byte gUnknown_203A86C -_08148CDC: .4byte gUnknown_20388C8 -_08148CE0: .4byte 0x000008BE -_08148CE4: .4byte VBlankCB1_Phase2_BigPokeball - thumb_func_end Phase2_Blackhole_Func1 - - thumb_func_start Phase2_Blackhole1_Func3 -Phase2_Blackhole1_Func3: @ 0x08148CE8 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x16 - ldrsh r0, [r4, r1] - cmp r0, #1 - bne _08148D2C - ldr r1, _08148D20 - ldrh r2, [r1, #0xa] - ldr r0, _08148D24 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r2, [r1, #0xa] - ldr r0, _08148D28 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - movs r0, #0 - bl SetVBlankCallback - ldr r0, [r4] - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - b _08148D9E - .align 2, 0 -_08148D20: .4byte 0x040000B0 -_08148D24: .4byte 0x0000C5FF -_08148D28: .4byte 0x00007FFF -_08148D2C: - ldr r5, _08148D88 - ldr r1, [r5] - ldrb r0, [r1] - movs r0, #0 - strb r0, [r1] - ldrh r2, [r4, #0xc] - movs r0, #0xc - ldrsh r1, [r4, r0] - ldr r0, _08148D8C - cmp r1, r0 - bgt _08148D48 - adds r0, r2, #0 - adds r0, #0x80 - strh r0, [r4, #0xc] -_08148D48: - ldrh r1, [r4, #0xa] - movs r2, #0xa - ldrsh r0, [r4, r2] - cmp r0, #0x9f - bgt _08148D5C - ldrh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - adds r0, r1, r0 - strh r0, [r4, #0xa] -_08148D5C: - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0xa0 - ble _08148D68 - movs r0, #0xa0 - strh r0, [r4, #0xa] -_08148D68: - ldr r0, _08148D90 - movs r2, #0xa - ldrsh r3, [r4, r2] - movs r1, #0x78 - movs r2, #0x50 - bl sub_0814A0D4 - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0xa0 - bne _08148D94 - movs r0, #1 - strh r0, [r4, #0x16] - bl sub_0814A044 - b _08148D9E - .align 2, 0 -_08148D88: .4byte gUnknown_203A86C -_08148D8C: .4byte 0x000003FF -_08148D90: .4byte gUnknown_20388C8 -_08148D94: - ldr r0, [r5] - ldrb r1, [r0] - adds r1, #1 - ldrb r2, [r0] - strb r1, [r0] -_08148D9E: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end Phase2_Blackhole1_Func3 - - thumb_func_start Phase2_Blackhole1_Func2 -Phase2_Blackhole1_Func2: @ 0x08148DA8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r6, _08148E20 - ldr r0, [r6] - ldrb r1, [r0] - movs r5, #0 - strb r5, [r0] - ldrh r1, [r4, #0x16] - movs r2, #0x16 - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _08148DCA - adds r0, r1, #1 - strh r0, [r4, #0x16] - movs r0, #0x30 - strh r0, [r4, #0xa] - strh r5, [r4, #0x14] -_08148DCA: - ldr r1, _08148E24 - movs r2, #0x14 - ldrsh r0, [r4, r2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - ldrh r1, [r4, #0xa] - adds r0, r0, r1 - strh r0, [r4, #0xa] - movs r2, #0x14 - ldrsh r1, [r4, r2] - adds r1, #1 - lsrs r0, r1, #0x1f - adds r0, r1, r0 - asrs r0, r0, #1 - lsls r0, r0, #1 - subs r1, r1, r0 - strh r1, [r4, #0x14] - ldr r0, _08148E28 - movs r1, #0xa - ldrsh r3, [r4, r1] - movs r1, #0x78 - movs r2, #0x50 - bl sub_0814A0D4 - movs r2, #0xa - ldrsh r0, [r4, r2] - cmp r0, #8 - bgt _08148E0C - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - strh r5, [r4, #0x16] -_08148E0C: - ldr r0, [r6] - ldrb r1, [r0] - adds r1, #1 - ldrb r2, [r0] - strb r1, [r0] - movs r0, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08148E20: .4byte gUnknown_203A86C -_08148E24: .4byte gUnknown_85A8730 -_08148E28: .4byte gUnknown_20388C8 - thumb_func_end Phase2_Blackhole1_Func2 - - thumb_func_start Phase2_Blackhole2_Func2 -Phase2_Blackhole2_Func2: @ 0x08148E2C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08148EA8 - ldr r1, [r0] - ldrb r0, [r1] - movs r0, #0 - strb r0, [r1] - ldrh r1, [r4, #0x16] - movs r2, #0x16 - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _08148E4E - adds r0, r1, #1 - strh r0, [r4, #0x16] - movs r0, #2 - strh r0, [r4, #0x12] - strh r0, [r4, #0x14] -_08148E4E: - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0xa0 - ble _08148E5A - movs r0, #0xa0 - strh r0, [r4, #0xa] -_08148E5A: - ldr r0, _08148EAC - movs r2, #0xa - ldrsh r3, [r4, r2] - movs r1, #0x78 - movs r2, #0x50 - bl sub_0814A0D4 - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0xa0 - bne _08148E96 - ldr r1, _08148EB0 - ldrh r2, [r1, #0xa] - ldr r0, _08148EB4 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r2, [r1, #0xa] - ldr r0, _08148EB8 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - bl sub_0814A044 - ldr r0, [r4] - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_08148E96: - ldrh r2, [r4, #0x12] - ldrb r0, [r4, #0x12] - cmp r0, #0x80 - bgt _08148EBC - ldrh r1, [r4, #0x14] - adds r0, r2, #0 - adds r0, #8 - b _08148EC8 - .align 2, 0 -_08148EA8: .4byte gUnknown_203A86C -_08148EAC: .4byte gUnknown_20388C8 -_08148EB0: .4byte 0x040000B0 -_08148EB4: .4byte 0x0000C5FF -_08148EB8: .4byte 0x00007FFF -_08148EBC: - ldrh r0, [r4, #0x14] - subs r0, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - adds r0, r2, #0 - adds r0, #0x10 -_08148EC8: - strh r0, [r4, #0x12] - movs r0, #0xff - ands r2, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r2, #0 - bl Sin - ldrh r2, [r4, #0xa] - adds r0, r0, r2 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _08148EE8 - movs r0, #1 - strh r0, [r4, #0xa] -_08148EE8: - ldrh r0, [r4, #0x12] - lsls r1, r0, #0x10 - asrs r0, r1, #0x10 - cmp r0, #0xfe - ble _08148EFC - asrs r0, r1, #0x18 - strh r0, [r4, #0x12] - ldrh r0, [r4, #0x14] - adds r0, #1 - strh r0, [r4, #0x14] -_08148EFC: - ldr r0, _08148F10 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, #1 - ldrb r2, [r1] - strb r0, [r1] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08148F10: .4byte gUnknown_203A86C - thumb_func_end Phase2_Blackhole2_Func2 - - thumb_func_start sub_08148F14 -sub_08148F14: @ 0x08148F14 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _08148F44 - ldr r2, _08148F48 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_08148F26: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08148F26 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08148F44: .4byte gUnknown_85A8734 -_08148F48: .4byte gUnknown_3005B60 - thumb_func_end sub_08148F14 - - thumb_func_start Phase2_RectangularSpiral_Func1 -Phase2_RectangularSpiral_Func1: @ 0x08148F4C - push {r4, r5, lr} - sub sp, #0xc - adds r5, r0, #0 - add r0, sp, #4 - add r1, sp, #8 - bl sub_0814A018 - ldr r4, _08148FF0 - ldr r1, [sp, #8] - adds r0, r4, #0 - movs r2, #0x10 - bl CpuSet - movs r0, #0xe0 - lsls r0, r0, #1 - adds r4, r4, r0 - ldr r1, [sp, #8] - adds r1, #0x40 - adds r0, r4, #0 - movs r2, #0x10 - bl CpuSet - mov r1, sp - movs r2, #0xf0 - lsls r2, r2, #8 - adds r0, r2, #0 - strh r0, [r1] - ldr r1, [sp, #4] - ldr r2, _08148FF4 - mov r0, sp - bl CpuSet - ldr r0, _08148FF8 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - movs r1, #0 - movs r4, #1 - movs r0, #1 - strh r0, [r5, #0xe] - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - ldr r5, _08148FFC - strb r1, [r5] - ldr r0, _08149000 - strh r0, [r5, #2] - strb r4, [r5, #4] - movs r2, #0x9a - lsls r2, r2, #1 - strh r2, [r5, #6] - strb r1, [r5, #8] - strb r1, [r5, #0xc] - movs r0, #1 - rsbs r0, r0, #0 - strh r0, [r5, #0xe] - strb r4, [r5, #0x10] - strh r2, [r5, #0x12] - strb r1, [r5, #0x14] - strb r1, [r5, #0x18] - ldr r2, _08149004 - strh r2, [r5, #0x1a] - strb r4, [r5, #0x1c] - ldr r3, _08149008 - strh r3, [r5, #0x1e] - adds r0, r5, #0 - adds r0, #0x20 - strb r1, [r0] - adds r0, #4 - strb r1, [r0] - strh r2, [r5, #0x26] - adds r0, #4 - strb r4, [r0] - strh r3, [r5, #0x2a] - adds r0, #4 - strb r1, [r0] - movs r0, #0 - add sp, #0xc - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08148FF0: .4byte gUnknown_859A780 -_08148FF4: .4byte 0x01000400 -_08148FF8: .4byte gUnknown_85A8984 -_08148FFC: .4byte gUnknown_3001210 -_08149000: .4byte 0x0000FFFF -_08149004: .4byte 0x0000FFFD -_08149008: .4byte 0x00000133 - thumb_func_end Phase2_RectangularSpiral_Func1 - - thumb_func_start Phase2_RectangularSpiral_Func2 -Phase2_RectangularSpiral_Func2: @ 0x0814900C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - mov r8, r0 - movs r7, #1 - add r1, sp, #4 - mov r0, sp - bl sub_0814A018 - movs r0, #0 -_08149022: - movs r5, #0 - adds r6, r0, #1 -_08149026: - ldr r1, _081490B8 - lsrs r0, r5, #1 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - lsls r1, r5, #1 - adds r1, r1, r5 - lsls r1, r1, #2 - ldr r2, _081490BC - adds r4, r1, r2 - adds r1, r4, #0 - bl sub_08149108 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0814908A - movs r7, #0 - ldrh r2, [r4, #2] - movs r0, #1 - ands r0, r5 - cmp r0, #1 - bne _08149060 - ldr r0, _081490C0 - adds r1, r0, #0 - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - subs r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r2, r1, #0x10 -_08149060: - lsls r0, r2, #0x10 - asrs r1, r0, #0x10 - adds r0, r1, #0 - cmp r1, #0 - bge _0814906C - adds r0, #0x1f -_0814906C: - asrs r2, r0, #5 - lsls r0, r2, #5 - subs r0, r1, r0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r2, #5 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r1, r0 - ldr r0, [sp] - lsls r1, r1, #1 - adds r1, r1, r0 - ldr r2, _081490C4 - adds r0, r2, #0 - strh r0, [r1] -_0814908A: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #3 - bls _08149026 - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _08149022 - cmp r7, #1 - bne _081490A8 - mov r1, r8 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] -_081490A8: - movs r0, #0 - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081490B8: .4byte gUnknown_85A87E8 -_081490BC: .4byte gUnknown_3001210 -_081490C0: .4byte 0x0000027D -_081490C4: .4byte 0x0000F002 - thumb_func_end Phase2_RectangularSpiral_Func2 - - thumb_func_start sub_081490C8 -sub_081490C8: @ 0x081490C8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _081490FC - ldrh r2, [r1, #0xa] - ldr r0, _08149100 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r2, [r1, #0xa] - ldr r0, _08149104 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - bl sub_0814A044 - ldr r0, [r4] - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081490FC: .4byte 0x040000B0 -_08149100: .4byte 0x0000C5FF -_08149104: .4byte 0x00007FFF - thumb_func_end sub_081490C8 - - thumb_func_start sub_08149108 -sub_08149108: @ 0x08149108 - push {r4, lr} - adds r2, r1, #0 - ldrb r1, [r2] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r3, [r1] - ldrb r0, [r2, #4] - lsls r0, r0, #1 - adds r0, r0, r3 - movs r4, #0 - ldrsh r1, [r0, r4] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0814918E - ldr r1, _0814914C - ldrh r0, [r3] - strh r0, [r1] - ldrh r0, [r3, #2] - strh r0, [r1] - ldrh r0, [r3, #4] - strh r0, [r1] - ldrh r0, [r3, #6] - strh r0, [r1] - movs r1, #0 - ldrsh r0, [r3, r1] - cmp r0, #2 - beq _08149160 - cmp r0, #2 - bgt _08149150 - cmp r0, #1 - beq _0814915A - b _08149172 - .align 2, 0 -_0814914C: .4byte gUnknown_3001208 -_08149150: - cmp r0, #3 - beq _08149166 - cmp r0, #4 - beq _0814916C - b _08149172 -_0814915A: - ldrh r0, [r2, #2] - adds r0, #1 - b _08149170 -_08149160: - ldrh r0, [r2, #2] - subs r0, #1 - b _08149170 -_08149166: - ldrh r0, [r2, #2] - subs r0, #0x20 - b _08149170 -_0814916C: - ldrh r0, [r2, #2] - adds r0, #0x20 -_08149170: - strh r0, [r2, #2] -_08149172: - movs r4, #2 - ldrsh r1, [r2, r4] - ldr r0, _08149194 - cmp r1, r0 - bgt _0814918E - ldrb r0, [r2, #4] - lsls r0, r0, #1 - adds r0, r0, r3 - movs r4, #0 - ldrsh r1, [r0, r4] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _08149198 -_0814918E: - movs r0, #0 - b _081491F8 - .align 2, 0 -_08149194: .4byte 0x0000027F -_08149198: - ldrb r0, [r2, #8] - cmp r0, #0 - bne _081491B4 - movs r0, #2 - rsbs r0, r0, #0 - cmp r1, r0 - bne _081491B4 - movs r0, #1 - strb r0, [r2, #8] - strb r0, [r2, #4] - ldrh r0, [r2, #6] - strh r0, [r2, #2] - movs r0, #4 - strb r0, [r2] -_081491B4: - ldrb r0, [r2, #4] - lsls r0, r0, #1 - adds r0, r0, r3 - movs r3, #2 - ldrsh r1, [r2, r3] - movs r4, #0 - ldrsh r0, [r0, r4] - cmp r1, r0 - bne _081491F6 - ldrb r0, [r2] - adds r1, r0, #1 - strb r1, [r2] - ldrb r0, [r2, #8] - cmp r0, #1 - bne _081491E4 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #7 - bls _081491F6 - ldrb r0, [r2, #4] - adds r0, #1 - strb r0, [r2, #4] - movs r0, #4 - b _081491F4 -_081491E4: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bls _081491F6 - ldrb r0, [r2, #4] - adds r0, #1 - strb r0, [r2, #4] - movs r0, #0 -_081491F4: - strb r0, [r2] -_081491F6: - movs r0, #1 -_081491F8: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08149108 - - thumb_func_start sub_08149200 -sub_08149200: @ 0x08149200 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _08149230 - ldr r2, _08149234 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_08149212: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08149212 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08149230: .4byte gUnknown_85A87F0 -_08149234: .4byte gUnknown_3005B60 - thumb_func_end sub_08149200 - - thumb_func_start Phase2_Groudon_Func3 -Phase2_Groudon_Func3: @ 0x08149238 - push {r4, lr} - sub sp, #0xc - adds r4, r0, #0 - add r0, sp, #4 - add r1, sp, #8 - bl sub_0814A018 - mov r1, sp - movs r0, #0 - strh r0, [r1] - ldr r1, [sp, #4] - ldr r2, _0814927C - mov r0, sp - bl CpuSet - ldr r0, _08149280 - ldr r1, [sp, #8] - bl LZ77UnCompVram - ldr r0, _08149284 - ldr r1, [sp, #4] - bl LZ77UnCompVram - ldrh r0, [r4, #8] - adds r0, #1 - movs r1, #0 - strh r0, [r4, #8] - strh r1, [r4, #0xa] - movs r0, #0 - add sp, #0xc - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0814927C: .4byte 0x01000400 -_08149280: .4byte gUnknown_859DFCC -_08149284: .4byte gUnknown_859E538 - thumb_func_end Phase2_Groudon_Func3 - - thumb_func_start sub_08149288 -sub_08149288: @ 0x08149288 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0xa - ldrsh r5, [r4, r0] - adds r0, r5, #0 - movs r1, #3 - bl __modsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _081492C0 - adds r0, r5, #0 - movs r1, #0x1e - bl __modsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #3 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0xb - ldr r1, _081492E0 - adds r0, r0, r1 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette -_081492C0: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3a - ble _081492D8 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - strh r0, [r4, #0xa] -_081492D8: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081492E0: .4byte gUnknown_859EB50 - thumb_func_end sub_08149288 - - thumb_func_start sub_081492E4 -sub_081492E4: @ 0x081492E4 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0xa - ldrsh r5, [r4, r0] - adds r0, r5, #0 - movs r1, #5 - bl __modsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08149312 - adds r0, r5, #0 - movs r1, #5 - bl __divsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0xb - ldr r1, _08149338 - adds r0, r0, r1 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette -_08149312: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x44 - ble _0814932E - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - strh r0, [r4, #0xa] - movs r0, #0x1e - strh r0, [r4, #0x18] -_0814932E: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08149338: .4byte gUnknown_859ED50 - thumb_func_end sub_081492E4 - - thumb_func_start sub_0814933C -sub_0814933C: @ 0x0814933C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _0814936C - ldr r2, _08149370 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_0814934E: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0814934E - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0814936C: .4byte gUnknown_85A8810 -_08149370: .4byte gUnknown_3005B60 - thumb_func_end sub_0814933C - - thumb_func_start Phase2_Rayquaza_Func3 -Phase2_Rayquaza_Func3: @ 0x08149374 - push {r4, r5, r6, lr} - sub sp, #0xc - adds r4, r0, #0 - bl sub_08149FC8 - bl ScanlineEffect_Clear - ldr r1, _081493FC - movs r0, #8 - bl SetGpuReg - add r0, sp, #4 - add r1, sp, #8 - bl sub_0814A018 - mov r1, sp - movs r0, #0 - strh r0, [r1] - ldr r1, [sp, #4] - ldr r2, _08149400 - mov r0, sp - bl CpuSet - ldr r0, _08149404 - ldr r1, [sp, #8] - movs r2, #0x80 - lsls r2, r2, #5 - bl CpuSet - ldr r0, _08149408 - ldr r1, [r0] - movs r0, #0 - strh r0, [r1, #0x20] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - ldr r0, _0814940C - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - movs r2, #0 - ldr r3, _08149410 - movs r6, #0 - movs r0, #0xf0 - lsls r0, r0, #3 - adds r5, r3, r0 - movs r4, #0x80 - lsls r4, r4, #1 -_081493D6: - lsls r1, r2, #1 - adds r0, r1, r3 - strh r6, [r0] - adds r1, r1, r5 - strh r4, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0x9f - bls _081493D6 - ldr r0, _08149414 - bl SetVBlankCallback - movs r0, #0 - add sp, #0xc - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_081493FC: .4byte 0x00009A08 -_08149400: .4byte 0x01000400 -_08149404: .4byte gUnknown_859F150 -_08149408: .4byte gUnknown_203A86C -_0814940C: .4byte gUnknown_859EFF0 -_08149410: .4byte gUnknown_20388C8 -_08149414: .4byte VBlankCB_Phase2_Rayquaza - thumb_func_end Phase2_Rayquaza_Func3 - - thumb_func_start Phase2_Rayquaza_Func4 -Phase2_Rayquaza_Func4: @ 0x08149418 - push {r4, lr} - sub sp, #8 - adds r4, r0, #0 - add r1, sp, #4 - mov r0, sp - bl sub_0814A018 - ldr r0, _08149444 - ldr r1, [sp] - movs r2, #0x80 - lsls r2, r2, #4 - bl CpuSet - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08149444: .4byte gUnknown_85A6690 - thumb_func_end Phase2_Rayquaza_Func4 - - thumb_func_start Phase2_Rayquaza_Func5 -Phase2_Rayquaza_Func5: @ 0x08149448 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0xa] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _08149474 - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0 - bge _08149460 - adds r0, #3 -_08149460: - lsls r0, r0, #0xe - lsrs r0, r0, #0x10 - adds r0, #5 - lsls r0, r0, #5 - ldr r1, _08149494 - adds r0, r0, r1 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette -_08149474: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x28 - ble _0814948C - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - strh r0, [r4, #0xa] -_0814948C: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08149494: .4byte gUnknown_859EF50 - thumb_func_end Phase2_Rayquaza_Func5 - - thumb_func_start Phase2_Rayquaza_Func6 -Phase2_Rayquaza_Func6: @ 0x08149498 - push {lr} - sub sp, #4 - adds r1, r0, #0 - ldrh r0, [r1, #0xa] - adds r0, #1 - movs r2, #0 - strh r0, [r1, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x14 - ble _081494C2 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - strh r2, [r1, #0xa] - ldr r0, _081494CC - str r2, [sp] - movs r1, #2 - movs r3, #0x10 - bl BeginNormalPaletteFade -_081494C2: - movs r0, #0 - add sp, #4 - pop {r1} - bx r1 - .align 2, 0 -_081494CC: .4byte 0xFFFF8000 - thumb_func_end Phase2_Rayquaza_Func6 - - thumb_func_start Phase2_Rayquaza_Func7 -Phase2_Rayquaza_Func7: @ 0x081494D0 - push {lr} - adds r2, r0, #0 - ldr r0, _081494F4 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081494EE - ldr r0, _081494F8 - ldr r1, [r0] - movs r0, #1 - strh r0, [r1, #0x20] - ldrh r0, [r2, #8] - adds r0, #1 - strh r0, [r2, #8] -_081494EE: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_081494F4: .4byte gUnknown_2037C74 -_081494F8: .4byte gUnknown_203A86C - thumb_func_end Phase2_Rayquaza_Func7 - - thumb_func_start sub_081494FC -sub_081494FC: @ 0x081494FC - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08149524 - movs r1, #8 - movs r2, #0 - bl BlendPalettes - ldr r0, _08149528 - movs r1, #0 - movs r2, #0 - bl BlendPalettes - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08149524: .4byte 0x00007FFF -_08149528: .4byte 0xFFFF8000 - thumb_func_end sub_081494FC - - thumb_func_start Phase2_Rayquaza_Func9 -Phase2_Rayquaza_Func9: @ 0x0814952C - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0xa - ldrsh r5, [r4, r0] - adds r0, r5, #0 - movs r1, #3 - bl __modsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0814955A - adds r0, r5, #0 - movs r1, #3 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0xb - ldr r1, _081495B8 - adds r0, r0, r1 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette -_0814955A: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x27 - ble _081495B0 - ldr r0, _081495BC - ldr r1, [r0] - movs r0, #0 - strh r0, [r1, #2] - movs r0, #0x3f - strh r0, [r1, #4] - movs r0, #0xf0 - strh r0, [r1, #6] - movs r0, #0xa0 - strh r0, [r1, #8] - movs r1, #0 - ldr r5, _081495C0 - ldr r3, _081495C4 - movs r2, #0 -_08149584: - lsls r0, r1, #1 - adds r0, r0, r3 - strh r2, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0x9f - bls _08149584 - adds r0, r5, #0 - bl SetVBlankCallback - ldrh r0, [r4, #8] - adds r0, #1 - movs r2, #0 - strh r0, [r4, #8] - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r4, #0xc] - strh r2, [r4, #0x16] - movs r0, #0 - bl ClearGpuRegBits -_081495B0: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081495B8: .4byte gUnknown_859EF50 -_081495BC: .4byte gUnknown_203A86C -_081495C0: .4byte VBlankCB1_Phase2_BigPokeball -_081495C4: .4byte gUnknown_2039048 - thumb_func_end Phase2_Rayquaza_Func9 - - thumb_func_start VBlankCB_Phase2_Rayquaza -VBlankCB_Phase2_Rayquaza: @ 0x081495C8 - push {lr} - ldr r1, _081495F4 - ldrh r2, [r1, #0xa] - ldr r0, _081495F8 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r2, [r1, #0xa] - ldr r0, _081495FC - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - bl VBlankCB_BattleTransition - ldr r0, _08149600 - ldr r0, [r0] - movs r1, #0x20 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08149608 - ldr r2, _08149604 - b _08149614 - .align 2, 0 -_081495F4: .4byte 0x040000B0 -_081495F8: .4byte 0x0000C5FF -_081495FC: .4byte 0x00007FFF -_08149600: .4byte gUnknown_203A86C -_08149604: .4byte gUnknown_20388C8 -_08149608: - ldr r2, _08149628 - cmp r0, #1 - bne _08149614 - movs r0, #0xf0 - lsls r0, r0, #3 - adds r2, r2, r0 -_08149614: - ldr r1, _0814962C - str r2, [r1] - ldr r0, _08149630 - str r0, [r1, #4] - ldr r0, _08149634 - str r0, [r1, #8] - ldr r0, [r1, #8] - pop {r0} - bx r0 - .align 2, 0 -_08149628: .4byte gUnknown_20388C8 -_0814962C: .4byte 0x040000B0 -_08149630: .4byte 0x04000012 -_08149634: .4byte 0xA2400001 - thumb_func_end VBlankCB_Phase2_Rayquaza - - thumb_func_start sub_08149638 -sub_08149638: @ 0x08149638 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _08149668 - ldr r2, _0814966C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_0814964A: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0814964A - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08149668: .4byte gUnknown_85A883C -_0814966C: .4byte gUnknown_3005B60 - thumb_func_end sub_08149638 - - thumb_func_start Phase2_WhiteFade_Func1 -Phase2_WhiteFade_Func1: @ 0x08149670 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_08149FC8 - bl ScanlineEffect_Clear - ldr r0, _081496D8 - ldr r1, [r0] - movs r2, #0 - movs r0, #0xbf - strh r0, [r1, #0xe] - strh r2, [r1, #0x12] - movs r0, #0x1e - strh r0, [r1, #2] - movs r0, #0x3f - strh r0, [r1, #4] - movs r0, #0xa0 - strh r0, [r1, #8] - movs r1, #0 - ldr r2, _081496DC - movs r4, #0 - movs r3, #0xf0 -_0814969C: - lsls r0, r1, #1 - adds r0, r0, r2 - strh r4, [r0] - adds r0, r1, #0 - adds r0, #0xa0 - lsls r0, r0, #1 - adds r0, r0, r2 - strh r3, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0x9f - bls _0814969C - movs r0, #2 - bl EnableInterrupts - ldr r0, _081496E0 - bl SetHBlankCallback - ldr r0, _081496E4 - bl SetVBlankCallback - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081496D8: .4byte gUnknown_203A86C -_081496DC: .4byte gUnknown_2039048 -_081496E0: .4byte HBlankCB_Phase2_WhiteFade -_081496E4: .4byte VBlankCB0_Phase2_WhiteFade - thumb_func_end Phase2_WhiteFade_Func1 - - thumb_func_start Phase2_WhiteFade_Func2 -Phase2_WhiteFade_Func2: @ 0x081496E8 - push {r4, r5, r6, lr} - sub sp, #0x10 - adds r6, r0, #0 - ldr r1, _08149750 - mov r0, sp - movs r2, #0x10 - bl memcpy - movs r5, #0 - movs r4, #0 -_081496FC: - ldr r0, _08149754 - bl CreateInvisibleSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _08149758 - adds r2, r1, r0 - movs r0, #0xf0 - strh r0, [r2, #0x20] - strh r4, [r2, #0x22] - lsls r1, r5, #0x10 - asrs r1, r1, #0x10 - lsls r0, r1, #1 - add r0, sp - ldrh r0, [r0] - strh r0, [r2, #0x38] - adds r1, #1 - lsls r1, r1, #0x10 - lsls r0, r4, #0x10 - movs r3, #0xa0 - lsls r3, r3, #0xd - adds r0, r0, r3 - lsrs r4, r0, #0x10 - lsrs r5, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #7 - ble _081496FC - ldrh r0, [r2, #0x3a] - adds r0, #1 - strh r0, [r2, #0x3a] - ldrh r0, [r6, #8] - adds r0, #1 - strh r0, [r6, #8] - movs r0, #0 - add sp, #0x10 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08149750: .4byte gUnknown_85A8850 -_08149754: .4byte sub_08149924 -_08149758: .4byte gUnknown_20205AC - thumb_func_end Phase2_WhiteFade_Func2 - - thumb_func_start Phase2_WhiteFade_Func3 -Phase2_WhiteFade_Func3: @ 0x0814975C - push {r4, lr} - adds r4, r0, #0 - ldr r2, _08149790 - ldr r1, [r2] - ldrb r0, [r1] - movs r0, #0 - strb r0, [r1] - ldr r0, [r2] - movs r1, #0x20 - ldrsh r0, [r0, r1] - cmp r0, #7 - ble _08149786 - movs r0, #1 - rsbs r0, r0, #0 - ldr r2, _08149794 - movs r1, #0x10 - bl BlendPalettes - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_08149786: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08149790: .4byte gUnknown_203A86C -_08149794: .4byte 0x00007FFF - thumb_func_end Phase2_WhiteFade_Func3 - - thumb_func_start Phase2_WhiteFade_Func4 -Phase2_WhiteFade_Func4: @ 0x08149798 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r4, _081497EC - ldr r0, [r4] - ldrb r1, [r0] - movs r5, #0 - strb r5, [r0] - ldr r1, _081497F0 - ldrh r2, [r1, #0xa] - ldr r0, _081497F4 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r2, [r1, #0xa] - ldr r0, _081497F8 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - movs r0, #0 - bl SetVBlankCallback - movs r0, #0 - bl SetHBlankCallback - ldr r1, [r4] - movs r0, #0xf0 - strh r0, [r1, #6] - strh r5, [r1, #0x12] - movs r0, #0xff - strh r0, [r1, #0xe] - movs r0, #0x3f - strh r0, [r1, #2] - ldr r0, _081497FC - bl SetVBlankCallback - ldrh r0, [r6, #8] - adds r0, #1 - strh r0, [r6, #8] - movs r0, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_081497EC: .4byte gUnknown_203A86C -_081497F0: .4byte 0x040000B0 -_081497F4: .4byte 0x0000C5FF -_081497F8: .4byte 0x00007FFF -_081497FC: .4byte VBlankCB1_Phase2_WhiteFade - thumb_func_end Phase2_WhiteFade_Func4 - - thumb_func_start Phase2_WhiteFade_Func5 -Phase2_WhiteFade_Func5: @ 0x08149800 - push {lr} - ldr r0, _0814982C - ldr r1, [r0] - ldrh r0, [r1, #0x12] - adds r0, #1 - strh r0, [r1, #0x12] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x10 - bls _08149826 - bl sub_0814A044 - ldr r0, _08149830 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_08149826: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0814982C: .4byte gUnknown_203A86C -_08149830: .4byte sub_08149638 - thumb_func_end Phase2_WhiteFade_Func5 - - thumb_func_start VBlankCB0_Phase2_WhiteFade -VBlankCB0_Phase2_WhiteFade: @ 0x08149834 - push {r4, lr} - ldr r4, _08149898 - ldrh r1, [r4, #0xa] - ldr r0, _0814989C - ands r0, r1 - strh r0, [r4, #0xa] - ldrh r1, [r4, #0xa] - ldr r0, _081498A0 - ands r0, r1 - strh r0, [r4, #0xa] - ldrh r0, [r4, #0xa] - bl VBlankCB_BattleTransition - ldr r2, _081498A4 - ldr r0, _081498A8 - ldr r1, [r0] - ldrh r0, [r1, #0xe] - strh r0, [r2] - subs r2, #8 - ldrh r0, [r1, #2] - strh r0, [r2] - adds r2, #2 - ldrh r0, [r1, #4] - strh r0, [r2] - subs r2, #6 - ldrh r0, [r1, #8] - strh r0, [r2] - ldrb r0, [r1] - cmp r0, #0 - beq _08149884 - ldr r1, _081498AC - ldr r0, _081498B0 - str r0, [r1] - movs r2, #0xf0 - lsls r2, r2, #3 - adds r0, r0, r2 - str r0, [r1, #4] - ldr r0, _081498B4 - str r0, [r1, #8] - ldr r0, [r1, #8] -_08149884: - ldr r0, _081498B8 - str r0, [r4] - ldr r0, _081498BC - str r0, [r4, #4] - ldr r0, _081498C0 - str r0, [r4, #8] - ldr r0, [r4, #8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08149898: .4byte 0x040000B0 -_0814989C: .4byte 0x0000C5FF -_081498A0: .4byte 0x00007FFF -_081498A4: .4byte 0x04000050 -_081498A8: .4byte gUnknown_203A86C -_081498AC: .4byte 0x040000D4 -_081498B0: .4byte gUnknown_20388C8 -_081498B4: .4byte 0x80000140 -_081498B8: .4byte gUnknown_2039188 -_081498BC: .4byte 0x04000040 -_081498C0: .4byte 0xA2400001 - thumb_func_end VBlankCB0_Phase2_WhiteFade - - thumb_func_start VBlankCB1_Phase2_WhiteFade -VBlankCB1_Phase2_WhiteFade: @ 0x081498C4 - push {lr} - bl VBlankCB_BattleTransition - ldr r1, _081498F8 - ldr r0, _081498FC - ldr r2, [r0] - ldrh r0, [r2, #0x12] - strh r0, [r1] - subs r1, #4 - ldrh r0, [r2, #0xe] - strh r0, [r1] - subs r1, #8 - ldrh r0, [r2, #2] - strh r0, [r1] - adds r1, #2 - ldrh r0, [r2, #4] - strh r0, [r1] - subs r1, #0xa - ldrh r0, [r2, #6] - strh r0, [r1] - adds r1, #4 - ldrh r0, [r2, #8] - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_081498F8: .4byte 0x04000054 -_081498FC: .4byte gUnknown_203A86C - thumb_func_end VBlankCB1_Phase2_WhiteFade - - thumb_func_start HBlankCB_Phase2_WhiteFade -HBlankCB_Phase2_WhiteFade: @ 0x08149900 - ldr r2, _08149918 - ldr r1, _0814991C - ldr r0, _08149920 - ldrh r0, [r0] - lsls r0, r0, #1 - movs r3, #0xf0 - lsls r3, r3, #3 - adds r1, r1, r3 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2] - bx lr - .align 2, 0 -_08149918: .4byte 0x04000054 -_0814991C: .4byte gUnknown_20388C8 -_08149920: .4byte 0x04000006 - thumb_func_end HBlankCB_Phase2_WhiteFade - - thumb_func_start sub_08149924 -sub_08149924: @ 0x08149924 - push {r4, r5, r6, lr} - adds r3, r0, #0 - ldrh r1, [r3, #0x38] - movs r2, #0x38 - ldrsh r0, [r3, r2] - cmp r0, #0 - beq _08149950 - subs r0, r1, #1 - strh r0, [r3, #0x38] - movs r1, #0x3a - ldrsh r0, [r3, r1] - cmp r0, #0 - beq _08149A0C - ldr r0, _0814994C - ldr r1, [r0] - ldrb r0, [r1] - movs r0, #1 - strb r0, [r1] - b _08149A0C - .align 2, 0 -_0814994C: .4byte gUnknown_203A86C -_08149950: - movs r2, #0x22 - ldrsh r1, [r3, r2] - lsls r1, r1, #1 - ldr r0, _08149A14 - adds r6, r1, r0 - movs r2, #0xa0 - lsls r2, r2, #1 - adds r0, r0, r2 - adds r5, r1, r0 - movs r4, #0 -_08149964: - lsls r1, r4, #1 - adds r2, r1, r6 - ldrh r0, [r3, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - strh r0, [r2] - adds r1, r1, r5 - ldrh r0, [r3, #0x20] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r1] - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x13 - bls _08149964 - movs r1, #0x20 - ldrsh r0, [r3, r1] - ldrh r2, [r3, #0x20] - cmp r0, #0 - bne _0814999E - movs r0, #0x2e - ldrsh r1, [r3, r0] - movs r0, #0x80 - lsls r0, r0, #5 - cmp r1, r0 - bne _0814999E - movs r0, #1 - strh r0, [r3, #0x30] -_0814999E: - adds r1, r2, #0 - subs r1, #0x10 - strh r1, [r3, #0x20] - ldrh r0, [r3, #0x2e] - adds r0, #0x80 - strh r0, [r3, #0x2e] - lsls r1, r1, #0x10 - cmp r1, #0 - bge _081499B4 - movs r0, #0 - strh r0, [r3, #0x20] -_081499B4: - movs r1, #0x2e - ldrsh r0, [r3, r1] - movs r1, #0x80 - lsls r1, r1, #5 - cmp r0, r1 - ble _081499C2 - strh r1, [r3, #0x2e] -_081499C2: - movs r2, #0x3a - ldrsh r0, [r3, r2] - cmp r0, #0 - beq _081499D4 - ldr r0, _08149A18 - ldr r1, [r0] - ldrb r0, [r1] - movs r0, #1 - strb r0, [r1] -_081499D4: - movs r1, #0x30 - ldrsh r0, [r3, r1] - cmp r0, #0 - beq _08149A0C - movs r2, #0x3a - ldrsh r0, [r3, r2] - ldr r2, _08149A18 - cmp r0, #0 - beq _081499FE - ldr r0, [r2] - movs r1, #0x20 - ldrsh r0, [r0, r1] - cmp r0, #6 - ble _08149A0C - ldrh r0, [r3, #0x32] - adds r1, r0, #1 - strh r1, [r3, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #7 - ble _08149A0C -_081499FE: - ldr r1, [r2] - ldrh r0, [r1, #0x20] - adds r0, #1 - strh r0, [r1, #0x20] - adds r0, r3, #0 - bl DestroySprite -_08149A0C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08149A14: .4byte gUnknown_20388C8 -_08149A18: .4byte gUnknown_203A86C - thumb_func_end sub_08149924 - - thumb_func_start sub_08149A1C -sub_08149A1C: @ 0x08149A1C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _08149A4C - ldr r2, _08149A50 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_08149A2E: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08149A2E - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08149A4C: .4byte gUnknown_85A8860 -_08149A50: .4byte gUnknown_3005B60 - thumb_func_end sub_08149A1C - - thumb_func_start Phase2_GridSquares_Func1 -Phase2_GridSquares_Func1: @ 0x08149A54 - push {r4, lr} - sub sp, #0xc - adds r4, r0, #0 - add r0, sp, #4 - add r1, sp, #8 - bl sub_0814A018 - ldr r0, _08149A9C - ldr r1, [sp, #8] - movs r2, #0x10 - bl CpuSet - mov r1, sp - movs r2, #0xf0 - lsls r2, r2, #8 - adds r0, r2, #0 - strh r0, [r1] - ldr r1, [sp, #4] - ldr r2, _08149AA0 - mov r0, sp - bl CpuSet - ldr r0, _08149AA4 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - add sp, #0xc - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08149A9C: .4byte gUnknown_859A780 -_08149AA0: .4byte 0x01000400 -_08149AA4: .4byte gUnknown_85A8984 - thumb_func_end Phase2_GridSquares_Func1 - - thumb_func_start ItemId_GetImportance -ItemId_GetImportance: @ 0x08149AA8 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08149AEA - mov r0, sp - bl sub_0814A000 - movs r0, #3 - strh r0, [r4, #0xa] - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - movs r1, #0xc - ldrsh r0, [r4, r1] - lsls r0, r0, #5 - ldr r1, _08149AFC - adds r0, r0, r1 - ldr r1, [sp] - movs r2, #0x10 - bl CpuSet - movs r1, #0xc - ldrsh r0, [r4, r1] - cmp r0, #0xd - ble _08149AEA - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0x10 - strh r0, [r4, #0xa] -_08149AEA: - ldrh r0, [r4, #0xa] - subs r0, #1 - strh r0, [r4, #0xa] - movs r0, #0 - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08149AFC: .4byte gUnknown_859A780 - thumb_func_end ItemId_GetImportance - - thumb_func_start Phase2_GridSquares_Func3 -Phase2_GridSquares_Func3: @ 0x08149B00 - push {lr} - ldrh r1, [r0, #0xa] - subs r1, #1 - strh r1, [r0, #0xa] - lsls r1, r1, #0x10 - cmp r1, #0 - bne _08149B20 - bl sub_0814A044 - ldr r0, _08149B28 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_08149B20: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_08149B28: .4byte sub_08149A1C - thumb_func_end Phase2_GridSquares_Func3 - - thumb_func_start sub_08149B2C -sub_08149B2C: @ 0x08149B2C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _08149B5C - ldr r2, _08149B60 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_08149B3E: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08149B3E - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08149B5C: .4byte gUnknown_85A886C -_08149B60: .4byte gUnknown_3005B60 - thumb_func_end sub_08149B2C - - thumb_func_start Phase2_Shards_Func1 -Phase2_Shards_Func1: @ 0x08149B64 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_08149FC8 - bl ScanlineEffect_Clear - ldr r0, _08149BBC - ldr r1, [r0] - movs r2, #0 - movs r0, #0x3f - strh r0, [r1, #2] - strh r2, [r1, #4] - movs r0, #0xa0 - strh r0, [r1, #8] - movs r1, #0 - ldr r2, _08149BC0 - movs r3, #0xf0 - adds r4, r2, #0 -_08149B88: - lsls r0, r1, #1 - adds r0, r0, r2 - strh r3, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0x9f - bls _08149B88 - movs r0, #0xf0 - lsls r0, r0, #3 - adds r1, r4, r0 - adds r0, r4, #0 - movs r2, #0xa0 - bl CpuSet - ldr r0, _08149BC4 - bl SetVBlankCallback - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08149BBC: .4byte gUnknown_203A86C -_08149BC0: .4byte gUnknown_20388C8 -_08149BC4: .4byte VBlankCB_Phase2_Shards - thumb_func_end Phase2_Shards_Func1 - - thumb_func_start Phase2_Shards_Func2 -Phase2_Shards_Func2: @ 0x08149BC8 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0xc - mov r8, r0 - ldr r0, _08149C3C - ldr r0, [r0] - adds r0, #0x24 - ldr r6, _08149C40 - mov r2, r8 - movs r3, #0xa - ldrsh r1, [r2, r3] - lsls r4, r1, #2 - adds r4, r4, r1 - lsls r4, r4, #1 - adds r1, r4, r6 - movs r5, #0 - ldrsh r1, [r1, r5] - adds r2, r6, #2 - adds r2, r4, r2 - movs r3, #0 - ldrsh r2, [r2, r3] - adds r3, r6, #4 - adds r3, r4, r3 - movs r5, #0 - ldrsh r3, [r3, r5] - adds r5, r6, #6 - adds r4, r4, r5 - movs r5, #0 - ldrsh r4, [r4, r5] - str r4, [sp] - movs r4, #1 - str r4, [sp, #4] - str r4, [sp, #8] - bl sub_0814A26C - mov r0, r8 - movs r2, #0xa - ldrsh r1, [r0, r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r6, #8 - adds r0, r0, r6 - ldrh r0, [r0] - mov r3, r8 - strh r0, [r3, #0xc] - ldrh r0, [r3, #8] - adds r0, #1 - strh r0, [r3, #8] - movs r0, #1 - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08149C3C: .4byte gUnknown_203A86C -_08149C40: .4byte gUnknown_85A8880 - thumb_func_end Phase2_Shards_Func2 - - thumb_func_start Phase2_Shards_Func3 -Phase2_Shards_Func3: @ 0x08149C44 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - ldr r0, _08149C94 - ldr r1, [r0] - ldrb r0, [r1] - movs r0, #0 - strb r0, [r1] - mov r8, r0 - movs r7, #0 - ldr r0, _08149C98 - mov sb, r0 -_08149C60: - ldr r1, _08149C98 - ldr r0, _08149C94 - ldr r2, [r0] - movs r3, #0x2a - ldrsh r0, [r2, r3] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - lsrs r3, r0, #8 - movs r5, #0xff - ands r5, r0 - movs r4, #0xc - ldrsh r0, [r6, r4] - cmp r0, #0 - bne _08149C9C - movs r1, #0x28 - ldrsh r0, [r2, r1] - cmp r3, r0 - bge _08149C88 - ldrh r3, [r2, #0x28] -_08149C88: - lsls r0, r3, #0x10 - lsls r1, r5, #0x10 - cmp r0, r1 - ble _08149CB4 - lsrs r3, r1, #0x10 - b _08149CB4 - .align 2, 0 -_08149C94: .4byte gUnknown_203A86C -_08149C98: .4byte gUnknown_20388C8 -_08149C9C: - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - movs r4, #0x28 - ldrsh r1, [r2, r4] - cmp r0, r1 - ble _08149CAA - ldrh r5, [r2, #0x28] -_08149CAA: - lsls r0, r5, #0x10 - lsls r1, r3, #0x10 - cmp r0, r1 - bgt _08149CB4 - lsrs r5, r1, #0x10 -_08149CB4: - ldr r0, _08149CD8 - ldr r4, [r0] - movs r0, #0x2a - ldrsh r2, [r4, r0] - lsls r2, r2, #1 - add r2, sb - lsls r1, r3, #0x10 - asrs r1, r1, #8 - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - orrs r0, r1 - strh r0, [r2] - cmp r7, #0 - beq _08149CDC - ldrh r0, [r6, #8] - adds r0, #1 - strh r0, [r6, #8] - b _08149D00 - .align 2, 0 -_08149CD8: .4byte gUnknown_203A86C -_08149CDC: - adds r0, r4, #0 - adds r0, #0x24 - movs r1, #1 - movs r2, #1 - bl sub_0814A2E8 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - mov r1, r8 - lsls r0, r1, #0x10 - movs r3, #0x80 - lsls r3, r3, #9 - adds r0, r0, r3 - lsrs r4, r0, #0x10 - mov r8, r4 - asrs r0, r0, #0x10 - cmp r0, #0xf - ble _08149C60 -_08149D00: - ldr r0, _08149D1C - ldr r1, [r0] - ldrb r0, [r1] - adds r0, #1 - ldrb r2, [r1] - strb r0, [r1] - movs r0, #0 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08149D1C: .4byte gUnknown_203A86C - thumb_func_end Phase2_Shards_Func3 - - thumb_func_start Phase2_Shards_Func4 -Phase2_Shards_Func4: @ 0x08149D20 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0xa] - adds r0, #1 - strh r0, [r2, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #6 - ble _08149D6C - ldr r1, _08149D5C - ldrh r2, [r1, #0xa] - ldr r0, _08149D60 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r2, [r1, #0xa] - ldr r0, _08149D64 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - bl sub_0814A044 - ldr r0, _08149D68 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - movs r0, #0 - b _08149D84 - .align 2, 0 -_08149D5C: .4byte 0x040000B0 -_08149D60: .4byte 0x0000C5FF -_08149D64: .4byte 0x00007FFF -_08149D68: .4byte sub_08149B2C -_08149D6C: - ldrh r0, [r2, #8] - adds r0, #1 - strh r0, [r2, #8] - ldr r1, _08149D88 - movs r3, #0xa - ldrsh r0, [r2, r3] - subs r0, #1 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2, #0xe] - movs r0, #1 -_08149D84: - pop {r1} - bx r1 - .align 2, 0 -_08149D88: .4byte gUnknown_85A88C6 - thumb_func_end Phase2_Shards_Func4 - - thumb_func_start Phase2_Shards_Func5 -Phase2_Shards_Func5: @ 0x08149D8C - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0xe] - subs r0, #1 - strh r0, [r1, #0xe] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08149DA0 - movs r0, #0 - b _08149DA4 -_08149DA0: - movs r0, #1 - strh r0, [r1, #8] -_08149DA4: - pop {r1} - bx r1 - thumb_func_end Phase2_Shards_Func5 - - thumb_func_start VBlankCB_Phase2_Shards -VBlankCB_Phase2_Shards: @ 0x08149DA8 - push {r4, lr} - ldr r4, _08149E14 - ldrh r1, [r4, #0xa] - ldr r0, _08149E18 - ands r0, r1 - strh r0, [r4, #0xa] - ldrh r1, [r4, #0xa] - ldr r0, _08149E1C - ands r0, r1 - strh r0, [r4, #0xa] - ldrh r0, [r4, #0xa] - bl VBlankCB_BattleTransition - ldr r3, _08149E20 - ldr r0, [r3] - ldrb r0, [r0] - cmp r0, #0 - beq _08149DE0 - ldr r1, _08149E24 - ldr r0, _08149E28 - str r0, [r1] - movs r2, #0xf0 - lsls r2, r2, #3 - adds r0, r0, r2 - str r0, [r1, #4] - ldr r0, _08149E2C - str r0, [r1, #8] - ldr r0, [r1, #8] -_08149DE0: - ldr r2, _08149E30 - ldr r1, [r3] - ldrh r0, [r1, #2] - strh r0, [r2] - adds r2, #2 - ldrh r0, [r1, #4] - strh r0, [r2] - subs r2, #6 - ldrh r0, [r1, #8] - strh r0, [r2] - subs r2, #4 - ldr r0, _08149E28 - movs r1, #0xf0 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrh r1, [r0] - strh r1, [r2] - str r0, [r4] - str r2, [r4, #4] - ldr r0, _08149E34 - str r0, [r4, #8] - ldr r0, [r4, #8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08149E14: .4byte 0x040000B0 -_08149E18: .4byte 0x0000C5FF -_08149E1C: .4byte 0x00007FFF -_08149E20: .4byte gUnknown_203A86C -_08149E24: .4byte 0x040000D4 -_08149E28: .4byte gUnknown_20388C8 -_08149E2C: .4byte 0x800000A0 -_08149E30: .4byte 0x04000048 -_08149E34: .4byte 0xA2400001 - thumb_func_end VBlankCB_Phase2_Shards - - thumb_func_start sub_08149E38 -sub_08149E38: @ 0x08149E38 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #4 - mov r8, r0 - adds r4, r1, #0 - adds r5, r2, #0 - adds r6, r3, #0 - ldr r3, [sp, #0x18] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - ldr r0, _08149E94 - movs r1, #3 - str r3, [sp] - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08149E98 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - mov r0, r8 - strh r0, [r1, #0xa] - strh r4, [r1, #0xc] - strh r5, [r1, #0xe] - strh r6, [r1, #0x10] - ldr r3, [sp] - strh r3, [r1, #0x12] - strh r0, [r1, #0x14] - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08149E94: .4byte Phase2Task_Magma -_08149E98: .4byte gUnknown_3005B60 - thumb_func_end sub_08149E38 - - thumb_func_start IsPhase1Done -IsPhase1Done: @ 0x08149E9C - push {lr} - ldr r0, _08149EB0 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _08149EB4 - movs r0, #0 - b _08149EB6 - .align 2, 0 -_08149EB0: .4byte Phase2Task_Magma -_08149EB4: - movs r0, #1 -_08149EB6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsPhase1Done - - thumb_func_start Phase2Task_Magma -Phase2Task_Magma: @ 0x08149EBC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _08149EEC - ldr r2, _08149EF0 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_08149ECE: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08149ECE - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08149EEC: .4byte gUnknown_85A88D4 -_08149EF0: .4byte gUnknown_3005B60 - thumb_func_end Phase2Task_Magma - - thumb_func_start sub_08149EF4 -sub_08149EF4: @ 0x08149EF4 - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x14] - movs r2, #0x14 - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _08149F0C - subs r0, r1, #1 - strh r0, [r4, #0x14] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08149F30 -_08149F0C: - ldrh r0, [r4, #0xa] - strh r0, [r4, #0x14] - ldrh r0, [r4, #0x10] - ldrh r1, [r4, #0x16] - adds r0, r0, r1 - strh r0, [r4, #0x16] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x10 - ble _08149F24 - movs r0, #0x10 - strh r0, [r4, #0x16] -_08149F24: - movs r0, #1 - rsbs r0, r0, #0 - ldrb r1, [r4, #0x16] - ldr r2, _08149F4C - bl BlendPalettes -_08149F30: - movs r2, #0x16 - ldrsh r0, [r4, r2] - cmp r0, #0xf - ble _08149F42 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - ldrh r0, [r4, #0xc] - strh r0, [r4, #0x14] -_08149F42: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08149F4C: .4byte 0x00002D6B - thumb_func_end sub_08149EF4 - - thumb_func_start Phase1_TransitionAll_Func2 -Phase1_TransitionAll_Func2: @ 0x08149F50 - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x14] - movs r2, #0x14 - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _08149F68 - subs r0, r1, #1 - strh r0, [r4, #0x14] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08149F8A -_08149F68: - ldrh r0, [r4, #0xc] - strh r0, [r4, #0x14] - ldrh r0, [r4, #0x16] - ldrh r1, [r4, #0x12] - subs r0, r0, r1 - strh r0, [r4, #0x16] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _08149F7E - movs r0, #0 - strh r0, [r4, #0x16] -_08149F7E: - movs r0, #1 - rsbs r0, r0, #0 - ldrb r1, [r4, #0x16] - ldr r2, _08149FB0 - bl BlendPalettes -_08149F8A: - movs r0, #0x16 - ldrsh r1, [r4, r0] - cmp r1, #0 - bne _08149FBE - ldrh r0, [r4, #0xe] - subs r0, #1 - strh r0, [r4, #0xe] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08149FB8 - ldr r0, _08149FB4 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - b _08149FBE - .align 2, 0 -_08149FB0: .4byte 0x00002D6B -_08149FB4: .4byte Phase2Task_Magma -_08149FB8: - ldrh r0, [r4, #0xa] - strh r0, [r4, #0x14] - strh r1, [r4, #8] -_08149FBE: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end Phase1_TransitionAll_Func2 - - thumb_func_start sub_08149FC8 -sub_08149FC8: @ 0x08149FC8 - push {r4, lr} - ldr r4, _08149FE8 - ldr r0, [r4] - movs r1, #0 - movs r2, #0x3c - bl memset - ldr r1, [r4] - adds r0, r1, #0 - adds r0, #0x14 - adds r1, #0x16 - bl sub_0808956C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08149FE8: .4byte gUnknown_203A86C - thumb_func_end sub_08149FC8 - - thumb_func_start VBlankCB_BattleTransition -VBlankCB_BattleTransition: @ 0x08149FEC - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end VBlankCB_BattleTransition - - thumb_func_start sub_0814A000 -sub_0814A000: @ 0x0814A000 - ldr r1, _0814A014 - ldrh r1, [r1] - lsrs r1, r1, #2 - lsls r1, r1, #0x1e - lsrs r1, r1, #0x10 - movs r2, #0xc0 - lsls r2, r2, #0x13 - adds r1, r1, r2 - str r1, [r0] - bx lr - .align 2, 0 -_0814A014: .4byte 0x04000008 - thumb_func_end sub_0814A000 - - thumb_func_start sub_0814A018 -sub_0814A018: @ 0x0814A018 - push {r4, lr} - ldr r3, _0814A040 - ldrh r2, [r3] - lsrs r2, r2, #8 - ldrh r3, [r3] - lsrs r3, r3, #2 - lsls r2, r2, #0x1b - lsrs r2, r2, #0x10 - lsls r3, r3, #0x1e - lsrs r3, r3, #0x10 - movs r4, #0xc0 - lsls r4, r4, #0x13 - adds r2, r2, r4 - str r2, [r0] - adds r3, r3, r4 - str r3, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814A040: .4byte 0x04000008 - thumb_func_end sub_0814A018 - - thumb_func_start sub_0814A044 -sub_0814A044: @ 0x0814A044 - push {lr} - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0814A044 - - thumb_func_start sub_0814A058 -sub_0814A058: @ 0x0814A058 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sl, r0 - ldr r0, [sp, #0x20] - ldr r4, [sp, #0x24] - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - lsls r4, r4, #0x10 - movs r6, #0 - lsrs r5, r4, #0x10 - cmp r4, #0 - ble _0814A0C0 - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - mov sb, r0 - lsls r1, r1, #0x10 - mov r8, r1 - lsls r0, r3, #0x10 - asrs r7, r0, #0x10 -_0814A090: - lsls r4, r2, #0x10 - asrs r4, r4, #0x10 - movs r0, #0xff - ands r0, r4 - mov r2, r8 - asrs r1, r2, #0x10 - bl Sin - lsls r1, r6, #1 - add r1, sl - add r0, sb - strh r0, [r1] - lsls r1, r5, #0x10 - ldr r0, _0814A0D0 - adds r1, r1, r0 - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r4, r4, r7 - lsls r4, r4, #0x10 - lsrs r2, r4, #0x10 - lsrs r5, r1, #0x10 - cmp r1, #0 - bgt _0814A090 -_0814A0C0: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0814A0D0: .4byte 0xFFFF0000 - thumb_func_end sub_0814A058 - - thumb_func_start sub_0814A0D4 -sub_0814A0D4: @ 0x0814A0D4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - mov sb, r0 - adds r5, r2, #0 - adds r4, r3, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp] - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - movs r2, #0xa0 - lsls r2, r2, #1 - movs r1, #0xa - bl memset - movs r1, #0 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - str r4, [sp, #4] - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - str r5, [sp, #8] -_0814A10C: - lsls r5, r1, #0x10 - asrs r0, r5, #0x10 - mov sl, r0 - ldr r1, [sp, #4] - bl Sin - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - mov r0, sl - ldr r1, [sp, #4] - bl Cos - ldr r2, [sp] - lsls r1, r2, #0x10 - asrs r1, r1, #0x10 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - subs r2, r1, r4 - lsls r2, r2, #0x10 - adds r1, r1, r4 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldr r3, [sp, #8] - subs r1, r3, r0 - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - adds r0, r3, r0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - lsrs r1, r2, #0x10 - str r5, [sp, #0x10] - cmp r2, #0 - bge _0814A158 - movs r1, #0 -_0814A158: - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xf0 - ble _0814A162 - movs r6, #0xf0 -_0814A162: - lsls r0, r7, #0x10 - cmp r0, #0 - bge _0814A16A - movs r7, #0 -_0814A16A: - mov r2, r8 - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x9f - ble _0814A178 - movs r3, #0x9f - mov r8, r3 -_0814A178: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x10 - orrs r6, r0 - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - str r0, [sp, #0xc] - lsls r0, r0, #1 - add r0, sb - strh r6, [r0] - mov r0, r8 - lsls r4, r0, #0x10 - asrs r0, r4, #0xf - add r0, sb - strh r6, [r0] - mov r0, sl - adds r0, #1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldr r1, [sp, #4] - bl Cos - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldr r2, [sp, #8] - subs r1, r2, r0 - lsls r1, r1, #0x10 - adds r0, r2, r0 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - lsrs r3, r1, #0x10 - cmp r1, #0 - bge _0814A1BA - movs r3, #0 -_0814A1BA: - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x9f - ble _0814A1C4 - movs r2, #0x9f -_0814A1C4: - lsls r0, r3, #0x10 - asrs r1, r0, #0x10 - adds r3, r0, #0 - lsls r5, r2, #0x10 - ldr r0, [sp, #0xc] - cmp r0, r1 - ble _0814A1E8 - adds r2, r1, #0 -_0814A1D4: - lsls r1, r7, #0x10 - ldr r0, _0814A268 - adds r1, r1, r0 - asrs r0, r1, #0xf - add r0, sb - strh r6, [r0] - lsrs r7, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, r2 - bgt _0814A1D4 -_0814A1E8: - lsls r1, r7, #0x10 - asrs r0, r3, #0x10 - cmp r1, r3 - bge _0814A206 - adds r2, r0, #0 -_0814A1F2: - movs r3, #0x80 - lsls r3, r3, #9 - adds r0, r1, r3 - asrs r1, r0, #0xf - add r1, sb - strh r6, [r1] - adds r1, r0, #0 - asrs r0, r1, #0x10 - cmp r0, r2 - blt _0814A1F2 -_0814A206: - asrs r0, r5, #0x10 - cmp r4, r5 - ble _0814A224 - adds r1, r0, #0 -_0814A20E: - ldr r2, _0814A268 - adds r0, r4, r2 - lsrs r3, r0, #0x10 - mov r8, r3 - asrs r0, r0, #0xf - add r0, sb - strh r6, [r0] - lsls r4, r3, #0x10 - asrs r0, r4, #0x10 - cmp r0, r1 - bgt _0814A20E -_0814A224: - mov r0, r8 - lsls r4, r0, #0x10 - asrs r0, r5, #0x10 - cmp r4, r5 - bge _0814A244 - adds r2, r0, #0 -_0814A230: - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r4, r1 - asrs r1, r0, #0xf - add r1, sb - strh r6, [r1] - adds r4, r0, #0 - asrs r0, r4, #0x10 - cmp r0, r2 - blt _0814A230 -_0814A244: - ldr r2, [sp, #0x10] - movs r3, #0x80 - lsls r3, r3, #9 - adds r0, r2, r3 - lsrs r1, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3f - bgt _0814A256 - b _0814A10C -_0814A256: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0814A268: .4byte 0xFFFF0000 - thumb_func_end sub_0814A0D4 - - thumb_func_start sub_0814A26C -sub_0814A26C: @ 0x0814A26C - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldr r0, [sp, #0x14] - ldr r5, [sp, #0x18] - ldr r4, [sp, #0x1c] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r7, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - strh r1, [r6] - strh r2, [r6, #2] - strh r1, [r6, #4] - strh r2, [r6, #6] - strh r3, [r6, #8] - strh r7, [r6, #0xa] - strh r5, [r6, #0xc] - strh r4, [r6, #0xe] - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - subs r3, r3, r1 - strh r3, [r6, #0x10] - lsls r0, r3, #0x10 - cmp r0, #0 - bge _0814A2BE - rsbs r0, r3, #0 - strh r0, [r6, #0x10] - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - rsbs r0, r0, #0 - strh r0, [r6, #0xc] -_0814A2BE: - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - lsls r1, r2, #0x10 - asrs r1, r1, #0x10 - subs r1, r0, r1 - strh r1, [r6, #0x12] - lsls r0, r1, #0x10 - cmp r0, #0 - bge _0814A2DC - rsbs r0, r1, #0 - strh r0, [r6, #0x12] - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - rsbs r0, r0, #0 - strh r0, [r6, #0xe] -_0814A2DC: - movs r0, #0 - strh r0, [r6, #0x14] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0814A26C - - thumb_func_start sub_0814A2E8 -sub_0814A2E8: @ 0x0814A2E8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r3, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sb, r1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sl, r2 - ldrh r0, [r3, #0x10] - mov r8, r0 - movs r1, #0x10 - ldrsh r6, [r3, r1] - ldrh r2, [r3, #0x12] - mov ip, r2 - movs r4, #0x12 - ldrsh r5, [r3, r4] - cmp r6, r5 - ble _0814A338 - ldrh r0, [r3, #0xc] - ldrh r2, [r3, #4] - adds r1, r0, r2 - strh r1, [r3, #4] - ldrh r2, [r3, #0x14] - add r2, ip - strh r2, [r3, #0x14] - lsls r1, r2, #0x10 - asrs r1, r1, #0x10 - adds r4, r0, #0 - ldrh r7, [r3, #0xe] - cmp r1, r6 - ble _0814A35E - ldrh r1, [r3, #6] - adds r0, r7, r1 - strh r0, [r3, #6] - mov r1, r8 - b _0814A35A -_0814A338: - ldrh r0, [r3, #0xe] - ldrh r2, [r3, #6] - adds r1, r0, r2 - strh r1, [r3, #6] - ldrh r2, [r3, #0x14] - add r2, r8 - strh r2, [r3, #0x14] - lsls r1, r2, #0x10 - asrs r1, r1, #0x10 - ldrh r4, [r3, #0xc] - adds r7, r0, #0 - cmp r1, r5 - ble _0814A35E - ldrh r1, [r3, #4] - adds r0, r4, r1 - strh r0, [r3, #4] - mov r1, ip -_0814A35A: - subs r0, r2, r1 - strh r0, [r3, #0x14] -_0814A35E: - movs r5, #0 - lsls r0, r4, #0x10 - asrs r2, r0, #0x10 - cmp r2, #0 - ble _0814A376 - movs r4, #4 - ldrsh r1, [r3, r4] - movs r4, #8 - ldrsh r0, [r3, r4] - ldrh r4, [r3, #8] - cmp r1, r0 - bge _0814A388 -_0814A376: - cmp r2, #0 - bge _0814A396 - movs r0, #4 - ldrsh r1, [r3, r0] - movs r2, #8 - ldrsh r0, [r3, r2] - ldrh r4, [r3, #8] - cmp r1, r0 - bgt _0814A396 -_0814A388: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - mov r0, sb - cmp r0, #0 - beq _0814A396 - strh r4, [r3, #4] -_0814A396: - lsls r0, r7, #0x10 - asrs r2, r0, #0x10 - cmp r2, #0 - ble _0814A3AC - movs r4, #6 - ldrsh r1, [r3, r4] - movs r4, #0xa - ldrsh r0, [r3, r4] - ldrh r4, [r3, #0xa] - cmp r1, r0 - bge _0814A3BE -_0814A3AC: - cmp r2, #0 - bge _0814A3CC - movs r0, #6 - ldrsh r1, [r3, r0] - movs r2, #0xa - ldrsh r0, [r3, r2] - ldrh r4, [r3, #0xa] - cmp r1, r0 - bgt _0814A3CC -_0814A3BE: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - mov r0, sl - cmp r0, #0 - beq _0814A3CC - strh r4, [r3, #6] -_0814A3CC: - cmp r5, #2 - beq _0814A3D4 - movs r0, #0 - b _0814A3D6 -_0814A3D4: - movs r0, #1 -_0814A3D6: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_0814A2E8 - - thumb_func_start Phase2_29_Func1 -Phase2_29_Func1: @ 0x0814A3E4 - push {r4, lr} - sub sp, #0xc - adds r4, r0, #0 - bl sub_0814675C - add r0, sp, #4 - add r1, sp, #8 - bl sub_0814A018 - mov r1, sp - movs r0, #0 - strh r0, [r1] - ldr r1, [sp, #4] - ldr r2, _0814A428 - mov r0, sp - bl CpuSet - ldr r0, _0814A42C - ldr r1, [sp, #8] - bl LZ77UnCompVram - ldr r0, _0814A430 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - add sp, #0xc - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0814A428: .4byte 0x01000400 -_0814A42C: .4byte gUnknown_85A76B0 -_0814A430: .4byte gUnknown_85A7690 - thumb_func_end Phase2_29_Func1 - - thumb_func_start Phase2_29_Func2 -Phase2_29_Func2: @ 0x0814A434 - push {r4, lr} - sub sp, #0x10 - adds r4, r0, #0 - add r1, sp, #0xc - add r0, sp, #8 - bl sub_0814A018 - ldr r0, _0814A474 - ldr r1, [sp, #8] - bl LZ77UnCompVram - ldr r0, _0814A478 - movs r1, #0x10 - ldrsh r2, [r4, r1] - movs r3, #0x12 - ldrsh r1, [r4, r3] - str r1, [sp] - movs r1, #0xa0 - str r1, [sp, #4] - movs r1, #0 - movs r3, #0x84 - bl sub_0814A058 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #1 - add sp, #0x10 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0814A474: .4byte gUnknown_85A7D3C -_0814A478: .4byte gUnknown_20388C8 - thumb_func_end Phase2_29_Func2 - - thumb_func_start sub_0814A47C -sub_0814A47C: @ 0x0814A47C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _0814A4AC - ldr r2, _0814A4B0 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_0814A48E: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0814A48E - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0814A4AC: .4byte gUnknown_85A9480 -_0814A4B0: .4byte gUnknown_3005B60 - thumb_func_end sub_0814A47C - - thumb_func_start sub_0814A4B4 -sub_0814A4B4: @ 0x0814A4B4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _0814A4E4 - ldr r2, _0814A4E8 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_0814A4C6: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0814A4C6 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0814A4E4: .4byte gUnknown_85A9498 -_0814A4E8: .4byte gUnknown_3005B60 - thumb_func_end sub_0814A4B4 - - thumb_func_start Phase2_30_Func1 -Phase2_30_Func1: @ 0x0814A4EC - push {r4, r5, r6, lr} - sub sp, #0xc - adds r4, r0, #0 - bl sub_08149FC8 - bl ScanlineEffect_Clear - movs r1, #0xc0 - lsls r1, r1, #7 - movs r0, #0 - bl ClearGpuRegBits - movs r5, #0 - movs r0, #0x80 - lsls r0, r0, #6 - strh r0, [r4, #0xc] - ldr r0, _0814A574 - strh r0, [r4, #0xa] - strh r5, [r4, #0x12] - movs r0, #0x10 - strh r0, [r4, #0x14] - movs r0, #0xa0 - lsls r0, r0, #4 - strh r0, [r4, #0x16] - ldr r6, _0814A578 - ldr r2, [r6] - ldr r3, _0814A57C - strh r3, [r2, #0xe] - ldrh r0, [r4, #0x14] - lsls r0, r0, #8 - ldrh r1, [r4, #0x12] - orrs r0, r1 - strh r0, [r2, #0x10] - ldr r0, _0814A580 - strh r3, [r0] - ldr r1, _0814A584 - ldrh r0, [r2, #0x10] - strh r0, [r1] - add r0, sp, #4 - add r1, sp, #8 - bl sub_0814A018 - mov r0, sp - strh r5, [r0] - ldr r1, [sp, #4] - ldr r2, _0814A588 - bl CpuSet - ldr r0, _0814A58C - ldr r1, [sp, #8] - bl LZ77UnCompVram - ldr r0, _0814A590 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - ldr r0, [r6] - strh r5, [r0, #0x16] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - add sp, #0xc - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0814A574: .4byte 0x00007FFF -_0814A578: .4byte gUnknown_203A86C -_0814A57C: .4byte 0x00003F41 -_0814A580: .4byte 0x04000050 -_0814A584: .4byte 0x04000052 -_0814A588: .4byte 0x01000400 -_0814A58C: .4byte gUnknown_85A76B0 -_0814A590: .4byte gUnknown_85A7690 - thumb_func_end Phase2_30_Func1 - - thumb_func_start Phase2_30_Func2 -Phase2_30_Func2: @ 0x0814A594 - push {r4, lr} - sub sp, #8 - adds r4, r0, #0 - add r1, sp, #4 - mov r0, sp - bl sub_0814A018 - ldr r0, _0814A5BC - ldr r1, [sp] - bl LZ77UnCompVram - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #1 - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0814A5BC: .4byte gUnknown_85A7D3C - thumb_func_end Phase2_30_Func2 - - thumb_func_start Phase2_30_Func3 -Phase2_30_Func3: @ 0x0814A5C0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r2, #0 - ldr r6, _0814A600 - ldr r4, _0814A604 - ldr r3, _0814A608 -_0814A5CC: - lsls r1, r2, #1 - adds r1, r1, r4 - ldr r0, [r3] - ldrh r0, [r0, #0x16] - strh r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x9f - bls _0814A5CC - adds r0, r6, #0 - bl SetVBlankCallback - ldr r0, _0814A60C - bl SetHBlankCallback - movs r0, #2 - bl EnableInterrupts - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - movs r0, #1 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0814A600: .4byte VBlankCB_Phase2_30 -_0814A604: .4byte gUnknown_2039048 -_0814A608: .4byte gUnknown_203A86C -_0814A60C: .4byte HBlankCB_Phase2_30 - thumb_func_end Phase2_30_Func3 - - thumb_func_start Phase2_30_Func4 -Phase2_30_Func4: @ 0x0814A610 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r4, r0, #0 - ldr r1, _0814A658 - ldr r0, [r1] - ldrb r2, [r0] - movs r3, #0 - strb r3, [r0] - ldrh r2, [r4, #0xc] - lsls r0, r2, #0x10 - asrs r0, r0, #0x18 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - ldrh r6, [r4, #0xa] - movs r0, #0xc0 - lsls r0, r0, #1 - mov r8, r0 - ldrh r0, [r4, #0x16] - subs r0, r6, r0 - strh r0, [r4, #0xa] - movs r5, #0xe - ldrsh r0, [r4, r5] - adds r5, r1, #0 - cmp r0, #0x45 - ble _0814A662 - movs r1, #0xc - ldrsh r0, [r4, r1] - ldr r1, _0814A65C - adds r0, r0, r1 - cmp r0, #0 - blt _0814A660 - adds r0, r2, r1 - strh r0, [r4, #0xc] - b _0814A662 - .align 2, 0 -_0814A658: .4byte gUnknown_203A86C -_0814A65C: .4byte 0xFFFFFE80 -_0814A660: - strh r3, [r4, #0xc] -_0814A662: - movs r2, #0xe - ldrsh r0, [r4, r2] - cmp r0, #0 - blt _0814A6A0 - movs r1, #3 - bl __modsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0814A6A0 - ldrh r1, [r4, #0x12] - movs r2, #0x12 - ldrsh r0, [r4, r2] - cmp r0, #0xf - bgt _0814A686 - adds r0, r1, #1 - strh r0, [r4, #0x12] - b _0814A694 -_0814A686: - ldrh r1, [r4, #0x14] - movs r2, #0x14 - ldrsh r0, [r4, r2] - cmp r0, #0 - ble _0814A694 - subs r0, r1, #1 - strh r0, [r4, #0x14] -_0814A694: - ldr r0, [r5] - ldrh r1, [r4, #0x14] - lsls r1, r1, #8 - ldrh r2, [r4, #0x12] - orrs r1, r2 - strh r1, [r0, #0x10] -_0814A6A0: - movs r5, #0 - lsls r7, r7, #0x10 -_0814A6A4: - lsrs r0, r6, #8 - asrs r1, r7, #0x10 - bl Sin - ldr r1, _0814A734 - lsls r2, r5, #1 - adds r2, r2, r1 - ldr r1, _0814A738 - ldr r1, [r1] - ldrh r1, [r1, #0x16] - adds r0, r0, r1 - strh r0, [r2] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - mov r1, r8 - adds r0, r6, r1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r5, #0x9f - bls _0814A6A4 - ldrh r0, [r4, #0xe] - adds r0, #1 - strh r0, [r4, #0xe] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x65 - bne _0814A6F2 - ldrh r0, [r4, #0x10] - adds r0, #1 - strh r0, [r4, #0x10] - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade -_0814A6F2: - movs r2, #0x10 - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _0814A714 - ldr r0, _0814A73C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0814A714 - ldr r0, _0814A740 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_0814A714: - ldrh r0, [r4, #0x16] - subs r0, #0x11 - strh r0, [r4, #0x16] - ldr r0, _0814A738 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, #1 - ldrb r2, [r1] - strb r0, [r1] - movs r0, #0 - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0814A734: .4byte gUnknown_20388C8 -_0814A738: .4byte gUnknown_203A86C -_0814A73C: .4byte gUnknown_2037C74 -_0814A740: .4byte sub_0814A4B4 - thumb_func_end Phase2_30_Func4 - - thumb_func_start VBlankCB_Phase2_30 -VBlankCB_Phase2_30: @ 0x0814A744 - push {lr} - bl VBlankCB_BattleTransition - ldr r2, _0814A778 - ldr r0, _0814A77C - ldr r1, [r0] - ldrh r0, [r1, #0xe] - strh r0, [r2] - adds r2, #2 - ldrh r0, [r1, #0x10] - strh r0, [r2] - ldrb r0, [r1] - cmp r0, #0 - beq _0814A774 - ldr r1, _0814A780 - ldr r0, _0814A784 - str r0, [r1] - movs r2, #0xf0 - lsls r2, r2, #3 - adds r0, r0, r2 - str r0, [r1, #4] - ldr r0, _0814A788 - str r0, [r1, #8] - ldr r0, [r1, #8] -_0814A774: - pop {r0} - bx r0 - .align 2, 0 -_0814A778: .4byte 0x04000050 -_0814A77C: .4byte gUnknown_203A86C -_0814A780: .4byte 0x040000D4 -_0814A784: .4byte gUnknown_20388C8 -_0814A788: .4byte 0x800000A0 - thumb_func_end VBlankCB_Phase2_30 - - thumb_func_start HBlankCB_Phase2_30 -HBlankCB_Phase2_30: @ 0x0814A78C - ldr r1, _0814A7A4 - ldr r0, _0814A7A8 - ldrh r0, [r0] - lsls r0, r0, #1 - movs r2, #0xf0 - lsls r2, r2, #3 - adds r1, r1, r2 - adds r0, r0, r1 - ldrh r1, [r0] - ldr r0, _0814A7AC - strh r1, [r0] - bx lr - .align 2, 0 -_0814A7A4: .4byte gUnknown_20388C8 -_0814A7A8: .4byte 0x04000006 -_0814A7AC: .4byte 0x04000012 - thumb_func_end HBlankCB_Phase2_30 - - thumb_func_start Phase2Task_37 -Phase2Task_37: @ 0x0814A7B0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _0814A7E0 - ldr r2, _0814A7E4 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_0814A7C2: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0814A7C2 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0814A7E0: .4byte gUnknown_85A94A8 -_0814A7E4: .4byte gUnknown_3005B60 - thumb_func_end Phase2Task_37 - - thumb_func_start sub_0814A7E8 -sub_0814A7E8: @ 0x0814A7E8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _0814A818 - ldr r2, _0814A81C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_0814A7FA: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0814A7FA - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0814A818: .4byte gUnknown_85A94B8 -_0814A81C: .4byte gUnknown_3005B60 - thumb_func_end sub_0814A7E8 - - thumb_func_start sub_0814A820 -sub_0814A820: @ 0x0814A820 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _0814A850 - ldr r2, _0814A854 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_0814A832: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0814A832 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0814A850: .4byte gUnknown_85A94CC -_0814A854: .4byte gUnknown_3005B60 - thumb_func_end sub_0814A820 - - thumb_func_start Phase2_31_Func1 -Phase2_31_Func1: @ 0x0814A858 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0x14 - mov r8, r0 - add r1, sp, #0x10 - add r0, sp, #0xc - bl sub_0814A018 - ldr r0, _0814A8E0 - ldr r1, [sp, #0x10] - bl LZ77UnCompVram - movs r4, #0x20 - str r4, [sp] - str r4, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - movs r6, #1 - str r6, [sp] - str r4, [sp, #4] - movs r5, #0xf - str r5, [sp, #8] - movs r0, #0 - movs r1, #1 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect - str r6, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #1 - movs r2, #0x1d - movs r3, #0 - bl FillBgTilemapBufferRect - movs r0, #0 - bl CopyBgTilemapBufferToVram - ldr r0, _0814A8E4 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - movs r0, #0 - mov r1, r8 - strh r6, [r1, #0xc] - strh r0, [r1, #0xe] - strh r0, [r1, #0x10] - movs r0, #0xa - strh r0, [r1, #0x16] - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - movs r0, #0 - add sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0814A8E0: .4byte gUnknown_85A8048 -_0814A8E4: .4byte gUnknown_85A8028 - thumb_func_end Phase2_31_Func1 - - thumb_func_start Phase2_31_Func2 -Phase2_31_Func2: @ 0x0814A8E8 - push {r4, r5, lr} - sub sp, #0x24 - adds r4, r0, #0 - ldr r1, _0814A954 - movs r2, #4 - str r2, [sp] - str r2, [sp, #4] - ldrb r0, [r4, #0xc] - str r0, [sp, #8] - ldrb r0, [r4, #0xe] - str r0, [sp, #0xc] - str r2, [sp, #0x10] - str r2, [sp, #0x14] - movs r0, #0xf - str r0, [sp, #0x18] - movs r5, #0 - str r5, [sp, #0x1c] - str r5, [sp, #0x20] - movs r0, #0 - movs r2, #0 - movs r3, #0 - bl CopyRectToBgTilemapBufferRect - movs r0, #0 - bl CopyBgTilemapBufferToVram - ldrh r0, [r4, #0xc] - adds r0, #4 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0x10] - adds r0, #1 - strh r0, [r4, #0x10] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #7 - bne _0814A94A - movs r0, #1 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0xe] - adds r0, #4 - strh r0, [r4, #0xe] - strh r5, [r4, #0x10] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x13 - ble _0814A94A - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_0814A94A: - movs r0, #0 - add sp, #0x24 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0814A954: .4byte gUnknown_85A83D8 - thumb_func_end Phase2_31_Func2 - - thumb_func_start Phase2_31_Func3 -Phase2_31_Func3: @ 0x0814A958 - push {r4, r5, r6, lr} - sub sp, #0x10 - adds r4, r0, #0 - add r1, sp, #0xc - add r0, sp, #8 - bl sub_0814A018 - ldrh r0, [r4, #0x14] - adds r1, r0, #1 - strh r1, [r4, #0x14] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x16 - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _0814AA16 - movs r1, #0x12 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _0814A9BC - cmp r0, #1 - bgt _0814A98A - cmp r0, #0 - beq _0814A994 - b _0814A9EC -_0814A98A: - cmp r0, #2 - beq _0814A9D4 - cmp r0, #3 - beq _0814A9DC - b _0814A9EC -_0814A994: - movs r2, #0xfa - ldr r6, _0814A9B4 - movs r3, #0 - ldr r5, _0814A9B8 -_0814A99C: - lsls r1, r2, #1 - adds r0, r1, r6 - strh r3, [r0] - adds r1, r1, r5 - strh r3, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xfe - bls _0814A99C - b _0814AA0C - .align 2, 0 -_0814A9B4: .4byte gUnknown_20373B4 -_0814A9B8: .4byte gUnknown_20377B4 -_0814A9BC: - ldr r0, _0814A9CC - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - ldr r0, _0814A9D0 - b _0814A9DE - .align 2, 0 -_0814A9CC: .4byte 0xFFFF7FFF -_0814A9D0: .4byte gUnknown_85A81A4 -_0814A9D4: - ldr r0, _0814A9D8 - b _0814A9DE - .align 2, 0 -_0814A9D8: .4byte gUnknown_85A82A4 -_0814A9DC: - ldr r0, _0814A9E8 -_0814A9DE: - ldr r1, [sp, #0xc] - bl LZ77UnCompVram - b _0814AA0C - .align 2, 0 -_0814A9E8: .4byte gUnknown_85A8354 -_0814A9EC: - movs r0, #0x20 - str r0, [sp] - str r0, [sp, #4] - movs r0, #0 - movs r1, #1 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, #0 - bl CopyBgTilemapBufferToVram - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _0814AA16 -_0814AA0C: - movs r0, #0 - strh r0, [r4, #0x14] - ldrh r0, [r4, #0x12] - adds r0, #1 - strh r0, [r4, #0x12] -_0814AA16: - movs r0, #0 - add sp, #0x10 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end Phase2_31_Func3 - - thumb_func_start Phase2_33_Func1 -Phase2_33_Func1: @ 0x0814AA20 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0x14 - mov r8, r0 - add r1, sp, #0x10 - add r0, sp, #0xc - bl sub_0814A018 - ldr r0, _0814AABC - ldr r1, [sp, #0x10] - bl LZ77UnCompVram - movs r4, #0x20 - str r4, [sp] - str r4, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - movs r6, #1 - str r6, [sp] - str r4, [sp, #4] - movs r5, #0xf - str r5, [sp, #8] - movs r0, #0 - movs r1, #1 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect - str r6, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #1 - movs r2, #0x1d - movs r3, #0 - bl FillBgTilemapBufferRect - movs r0, #0 - bl CopyBgTilemapBufferToVram - ldr r4, _0814AAC0 - adds r0, r4, #0 - movs r1, #0xe0 - movs r2, #0x20 - bl LoadPalette - adds r0, r4, #0 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - movs r0, #0xe0 - movs r1, #0x10 - movs r2, #8 - movs r3, #0 - bl BlendPalette - movs r1, #0 - movs r0, #0x22 - mov r2, r8 - strh r0, [r2, #0xc] - strh r1, [r2, #0xe] - ldrh r0, [r2, #8] - adds r0, #1 - strh r0, [r2, #8] - movs r0, #0 - add sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0814AABC: .4byte gUnknown_85A8048 -_0814AAC0: .4byte gUnknown_85A8028 - thumb_func_end Phase2_33_Func1 - - thumb_func_start Phase2_33_Func2 -Phase2_33_Func2: @ 0x0814AAC4 - push {r4, r5, r6, lr} - sub sp, #0x24 - adds r6, r0, #0 - ldr r1, _0814AB3C - movs r2, #0xc - ldrsh r0, [r6, r2] - adds r0, r0, r1 - ldrb r5, [r0] - adds r0, r5, #0 - movs r1, #7 - bl __umodsi3 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - movs r1, #7 - bl __udivsi3 - ldr r1, _0814AB40 - movs r2, #4 - str r2, [sp] - str r2, [sp, #4] - lsls r4, r4, #2 - adds r4, #1 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp, #8] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x18 - str r0, [sp, #0xc] - str r2, [sp, #0x10] - str r2, [sp, #0x14] - movs r0, #0xf - str r0, [sp, #0x18] - movs r0, #0 - str r0, [sp, #0x1c] - str r0, [sp, #0x20] - movs r2, #0 - movs r3, #0 - bl CopyRectToBgTilemapBufferRect - movs r0, #0 - bl CopyBgTilemapBufferToVram - ldrh r0, [r6, #0xc] - subs r0, #1 - strh r0, [r6, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _0814AB30 - ldrh r0, [r6, #8] - adds r0, #1 - strh r0, [r6, #8] -_0814AB30: - movs r0, #0 - add sp, #0x24 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0814AB3C: .4byte gUnknown_85A94E0 -_0814AB40: .4byte gUnknown_85A83D8 - thumb_func_end Phase2_33_Func2 - - thumb_func_start Phase2_33_Func3 -Phase2_33_Func3: @ 0x0814AB44 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0xe0 - movs r1, #0x10 - movs r2, #3 - movs r3, #0 - bl BlendPalette - ldr r0, _0814AB74 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - movs r0, #0 - strh r0, [r4, #0xc] - strh r0, [r4, #0xe] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0814AB74: .4byte 0xFFFF3FFF - thumb_func_end Phase2_33_Func3 - - thumb_func_start Phase2_33_Func4 -Phase2_33_Func4: @ 0x0814AB78 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x24 - adds r7, r0, #0 - ldrh r0, [r7, #0xe] - movs r1, #1 - eors r0, r1 - movs r6, #0 - strh r0, [r7, #0xe] - cmp r0, #0 - beq _0814ABEC - ldr r0, _0814ABE4 - mov r8, r0 - movs r4, #4 - str r4, [sp] - str r4, [sp, #4] - ldr r5, _0814ABE8 - movs r1, #0xc - ldrsh r0, [r7, r1] - adds r0, r0, r5 - ldrb r0, [r0] - movs r1, #7 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #8] - movs r2, #0xc - ldrsh r0, [r7, r2] - adds r0, r0, r5 - ldrb r0, [r0] - movs r1, #7 - bl __udivsi3 - lsls r0, r0, #0x1a - lsrs r0, r0, #0x18 - str r0, [sp, #0xc] - str r4, [sp, #0x10] - str r4, [sp, #0x14] - movs r0, #0xe - str r0, [sp, #0x18] - str r6, [sp, #0x1c] - str r6, [sp, #0x20] - movs r0, #0 - mov r1, r8 - movs r2, #0 - movs r3, #0 - bl CopyRectToBgTilemapBufferRect - b _0814AC38 - .align 2, 0 -_0814ABE4: .4byte gUnknown_85A83D8 -_0814ABE8: .4byte gUnknown_85A94E0 -_0814ABEC: - movs r1, #0xc - ldrsh r0, [r7, r1] - cmp r0, #0 - ble _0814AC32 - ldr r1, _0814AC5C - subs r0, #1 - adds r0, r0, r1 - ldrb r5, [r0] - adds r0, r5, #0 - movs r1, #7 - bl __umodsi3 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x16 - adds r4, #1 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - movs r1, #7 - bl __udivsi3 - adds r3, r0, #0 - lsls r3, r3, #0x1a - lsrs r3, r3, #0x18 - movs r0, #4 - str r0, [sp] - str r0, [sp, #4] - movs r0, #0xf - str r0, [sp, #8] - movs r0, #0 - movs r1, #1 - adds r2, r4, #0 - bl FillBgTilemapBufferRect -_0814AC32: - ldrh r0, [r7, #0xc] - adds r0, #1 - strh r0, [r7, #0xc] -_0814AC38: - movs r1, #0xc - ldrsh r0, [r7, r1] - cmp r0, #0x22 - ble _0814AC46 - ldrh r0, [r7, #8] - adds r0, #1 - strh r0, [r7, #8] -_0814AC46: - movs r0, #0 - bl CopyBgTilemapBufferToVram - movs r0, #0 - add sp, #0x24 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0814AC5C: .4byte gUnknown_85A94E0 - thumb_func_end Phase2_33_Func4 - - thumb_func_start ItemId_GetFieldFunc -ItemId_GetFieldFunc: @ 0x0814AC60 - push {r4, lr} - sub sp, #8 - adds r4, r0, #0 - movs r0, #0x20 - str r0, [sp] - str r0, [sp, #4] - movs r0, #0 - movs r1, #1 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, #0 - bl CopyBgTilemapBufferToVram - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - ldr r0, [r4] - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - movs r0, #0 - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ItemId_GetFieldFunc - - thumb_func_start sub_0814ACA4 -sub_0814ACA4: @ 0x0814ACA4 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0814ACEC - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r6, r1, r2 - ldrh r0, [r6, #0xc] - movs r1, #1 - eors r0, r1 - strh r0, [r6, #0xc] - cmp r0, #0 - bne _0814ACE4 - ldr r5, _0814ACF0 - ldrh r1, [r5] - movs r0, #0x12 - bl SetGpuReg - ldr r4, _0814ACF4 - ldrh r1, [r4] - movs r0, #0x10 - bl SetGpuReg - ldrh r0, [r6, #8] - ldrh r1, [r5] - adds r0, r0, r1 - strh r0, [r5] - ldrh r0, [r6, #0xa] - ldrh r1, [r4] - adds r0, r0, r1 - strh r0, [r4] -_0814ACE4: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0814ACEC: .4byte gUnknown_3005B60 -_0814ACF0: .4byte gUnknown_2022AC8 -_0814ACF4: .4byte gUnknown_2022ACA - thumb_func_end sub_0814ACA4 - - thumb_func_start Phase2_32_Func1 -Phase2_32_Func1: @ 0x0814ACF8 - push {r4, r5, r6, lr} - sub sp, #0x10 - adds r6, r0, #0 - movs r5, #0 - add r1, sp, #0xc - add r0, sp, #8 - bl sub_0814A018 - ldr r0, _0814AD74 - ldr r1, [sp, #0xc] - bl LZ77UnCompVram - movs r0, #0x20 - str r0, [sp] - str r0, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, #0 - bl CopyBgTilemapBufferToVram - ldr r0, _0814AD78 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _0814AD7C - strh r5, [r0] - ldr r4, _0814AD80 - strh r5, [r4] - movs r0, #0x12 - movs r1, #0 - bl SetGpuReg - ldrh r1, [r4] - movs r0, #0x10 - bl SetGpuReg - strh r5, [r6, #0xc] - ldr r0, _0814AD84 - movs r1, #1 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - bl Random - lsls r0, r0, #0x10 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r0 - lsrs r1, r1, #0x10 - cmp r1, #1 - beq _0814ADA4 - cmp r1, #1 - bgt _0814AD88 - cmp r1, #0 - beq _0814AD8E - b _0814ADDC - .align 2, 0 -_0814AD74: .4byte gUnknown_85A8048 -_0814AD78: .4byte gUnknown_85A8028 -_0814AD7C: .4byte gUnknown_2022AC8 -_0814AD80: .4byte gUnknown_2022ACA -_0814AD84: .4byte sub_0814ACA4 -_0814AD88: - cmp r1, #2 - beq _0814ADC0 - b _0814ADDC -_0814AD8E: - ldr r0, _0814ADA0 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #1 - strh r0, [r1, #8] - strh r0, [r1, #0xa] - b _0814ADEE - .align 2, 0 -_0814ADA0: .4byte gUnknown_3005B60 -_0814ADA4: - ldr r1, _0814ADB8 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0814ADBC - strh r1, [r0, #8] - movs r1, #1 - rsbs r1, r1, #0 - b _0814ADEC - .align 2, 0 -_0814ADB8: .4byte gUnknown_3005B60 -_0814ADBC: .4byte 0x0000FFFF -_0814ADC0: - ldr r1, _0814ADD4 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #1 - strh r1, [r0, #8] - ldr r1, _0814ADD8 - b _0814ADEC - .align 2, 0 -_0814ADD4: .4byte gUnknown_3005B60 -_0814ADD8: .4byte 0x0000FFFF -_0814ADDC: - ldr r1, _0814AE00 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0814AE04 - strh r1, [r0, #8] - movs r1, #1 -_0814ADEC: - strh r1, [r0, #0xa] -_0814ADEE: - ldrh r0, [r6, #8] - adds r0, #1 - strh r0, [r6, #8] - movs r0, #0 - add sp, #0x10 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0814AE00: .4byte gUnknown_3005B60 -_0814AE04: .4byte 0x0000FFFF - thumb_func_end Phase2_32_Func1 - - thumb_func_start Phase2_32_Func2 -Phase2_32_Func2: @ 0x0814AE08 - push {r4, lr} - sub sp, #0x24 - adds r4, r0, #0 - ldr r1, _0814AE6C - movs r2, #0xc - ldrsh r0, [r4, r2] - adds r0, r0, r1 - ldrb r3, [r0] - lsrs r2, r3, #3 - movs r0, #7 - ands r3, r0 - ldr r1, _0814AE70 - movs r0, #4 - str r0, [sp] - str r0, [sp, #4] - lsls r2, r2, #2 - adds r2, #1 - str r2, [sp, #8] - lsls r3, r3, #2 - str r3, [sp, #0xc] - str r0, [sp, #0x10] - str r0, [sp, #0x14] - movs r0, #0xf - str r0, [sp, #0x18] - movs r0, #0 - str r0, [sp, #0x1c] - str r0, [sp, #0x20] - movs r2, #0 - movs r3, #0 - bl CopyRectToBgTilemapBufferRect - movs r0, #0 - bl CopyBgTilemapBufferToVram - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3f - ble _0814AE60 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_0814AE60: - movs r0, #0 - add sp, #0x24 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0814AE6C: .4byte gUnknown_85A9503 -_0814AE70: .4byte gUnknown_85A83D8 - thumb_func_end Phase2_32_Func2 - - thumb_func_start Phase2_32_Func3 -Phase2_32_Func3: @ 0x0814AE74 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0814AE94 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - movs r0, #0 - strh r0, [r4, #0xc] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0814AE94: .4byte 0xFFFF7FFF - thumb_func_end Phase2_32_Func3 - - thumb_func_start Phase2_32_Func4 -Phase2_32_Func4: @ 0x0814AE98 - push {r4, lr} - sub sp, #0xc - adds r4, r0, #0 - ldr r1, _0814AEF8 - movs r2, #0xc - ldrsh r0, [r4, r2] - adds r0, r0, r1 - ldrb r3, [r0] - lsrs r2, r3, #3 - movs r0, #7 - ands r3, r0 - lsls r2, r2, #2 - adds r2, #1 - lsls r3, r3, #2 - movs r0, #4 - str r0, [sp] - str r0, [sp, #4] - movs r0, #0xf - str r0, [sp, #8] - movs r0, #0 - movs r1, #1 - bl FillBgTilemapBufferRect - movs r0, #0 - bl CopyBgTilemapBufferToVram - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3f - ble _0814AEEE - ldr r0, _0814AEFC - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_0814AEEE: - movs r0, #0 - add sp, #0xc - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0814AEF8: .4byte gUnknown_85A9503 -_0814AEFC: .4byte sub_0814ACA4 - thumb_func_end Phase2_32_Func4 - - thumb_func_start Phase2_32_Func5 -Phase2_32_Func5: @ 0x0814AF00 - push {r4, r5, lr} - sub sp, #8 - adds r5, r0, #0 - ldr r0, _0814AF64 - movs r1, #0 - strh r1, [r0] - ldr r4, _0814AF68 - strh r1, [r4] - movs r0, #0x12 - movs r1, #0 - bl SetGpuReg - ldrh r1, [r4] - movs r0, #0x10 - bl SetGpuReg - movs r0, #0x20 - str r0, [sp] - str r0, [sp, #4] - movs r0, #0 - movs r1, #1 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, #0 - bl CopyBgTilemapBufferToVram - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - ldr r0, [r5] - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - movs r0, #0 - add sp, #8 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0814AF64: .4byte gUnknown_2022AC8 -_0814AF68: .4byte gUnknown_2022ACA - thumb_func_end Phase2_32_Func5 - - thumb_func_start sub_0814AF6C -sub_0814AF6C: @ 0x0814AF6C - bx lr - .align 2, 0 - thumb_func_end sub_0814AF6C - - thumb_func_start sub_0814AF70 -sub_0814AF70: @ 0x0814AF70 - ldr r1, _0814AF80 - ldr r0, _0814AF84 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0814AF88 - str r1, [r0] - bx lr - .align 2, 0 -_0814AF80: .4byte gUnknown_3005AC0 -_0814AF84: .4byte gUnknown_2023D08 -_0814AF88: .4byte LinkPartnerBufferRunCommand - thumb_func_end sub_0814AF70 - - thumb_func_start LinkPartnerBufferRunCommand -LinkPartnerBufferRunCommand: @ 0x0814AF8C - push {lr} - ldr r2, _0814AFC0 - ldr r1, _0814AFC4 - ldr r0, _0814AFC8 - ldrb r3, [r0] - lsls r0, r3, #2 - adds r0, r0, r1 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _0814AFD8 - ldr r0, _0814AFCC - lsls r1, r3, #9 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0x38 - bhi _0814AFD4 - ldr r0, _0814AFD0 - ldrb r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl _call_via_r0 - b _0814AFD8 - .align 2, 0 -_0814AFC0: .4byte gUnknown_2023D0C -_0814AFC4: .4byte gUnknown_82FACB4 -_0814AFC8: .4byte gUnknown_2023D08 -_0814AFCC: .4byte gUnknown_2022D08 -_0814AFD0: .4byte gUnknown_85A9544 -_0814AFD4: - bl LinkPartnerBufferExecCompleted -_0814AFD8: - pop {r0} - bx r0 - thumb_func_end LinkPartnerBufferRunCommand - - thumb_func_start sub_0814AFDC -sub_0814AFDC: @ 0x0814AFDC - push {lr} - ldr r2, _0814B004 - ldr r1, _0814B008 - ldr r0, _0814B00C - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _0814B010 - cmp r1, r0 - bne _0814B000 - bl LinkPartnerBufferExecCompleted -_0814B000: - pop {r0} - bx r0 - .align 2, 0 -_0814B004: .4byte gUnknown_20205AC -_0814B008: .4byte gUnknown_2023E88 -_0814B00C: .4byte gUnknown_2023D08 -_0814B010: .4byte sub_08007140 - thumb_func_end sub_0814AFDC - - thumb_func_start sub_0814B014 -sub_0814B014: @ 0x0814B014 - push {r4, r5, r6, lr} - ldr r6, _0814B06C - ldr r5, _0814B070 - ldr r4, _0814B074 - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r6, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, [r0] - ldr r0, _0814B078 - cmp r1, r0 - bne _0814B064 - movs r0, #0 - bl sub_0805DBFC - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - bl FreeSpriteOamMatrix - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - bl DestroySprite - bl LinkPartnerBufferExecCompleted -_0814B064: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0814B06C: .4byte gUnknown_20205AC -_0814B070: .4byte gUnknown_2023E88 -_0814B074: .4byte gUnknown_2023D08 -_0814B078: .4byte sub_08007140 - thumb_func_end sub_0814B014 - - thumb_func_start sub_0814B07C -sub_0814B07C: @ 0x0814B07C - push {r4, lr} - ldr r4, _0814B0BC - ldr r1, [r4] - ldr r3, _0814B0C0 - ldrb r0, [r3] - ldr r2, [r1, #4] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r0, [r1, #9] - subs r0, #1 - strb r0, [r1, #9] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _0814B0B4 - ldr r0, [r4] - ldrb r1, [r3] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0 - strb r1, [r0, #9] - bl LinkPartnerBufferExecCompleted -_0814B0B4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814B0BC: .4byte gUnknown_2024174 -_0814B0C0: .4byte gUnknown_2023D08 - thumb_func_end sub_0814B07C - - thumb_func_start sub_0814B0C4 -sub_0814B0C4: @ 0x0814B0C4 - push {r4, r5, r6, lr} - movs r6, #0 - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0814B0E8 - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0814B11C - ldr r0, _0814B108 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0814B11C -_0814B0E8: - ldr r2, _0814B10C - ldr r1, _0814B110 - ldr r0, _0814B114 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _0814B118 - cmp r1, r0 - bne _0814B154 - b _0814B152 - .align 2, 0 -_0814B108: .4byte gUnknown_2022C90 -_0814B10C: .4byte gUnknown_20205AC -_0814B110: .4byte gUnknown_3005AD0 -_0814B114: .4byte gUnknown_2023D08 -_0814B118: .4byte sub_08007140 -_0814B11C: - ldr r2, _0814B18C - ldr r5, _0814B190 - ldr r0, _0814B194 - ldrb r3, [r0] - adds r0, r3, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, r2, #0 - adds r4, #0x1c - adds r0, r0, r4 - ldr r2, [r0] - ldr r0, _0814B198 - cmp r2, r0 - bne _0814B154 - movs r0, #2 - eors r3, r0 - adds r0, r3, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r0, [r0] - cmp r0, r2 - bne _0814B154 -_0814B152: - movs r6, #1 -_0814B154: - bl IsCryPlayingOrClearCrySongs - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0814B160 - movs r6, #0 -_0814B160: - cmp r6, #0 - beq _0814B186 - ldr r0, _0814B19C - ldr r0, [r0] - ldr r3, _0814B194 - ldrb r1, [r3] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #3 - strb r1, [r0, #9] - ldr r1, _0814B1A0 - ldrb r0, [r3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0814B1A4 - str r1, [r0] -_0814B186: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0814B18C: .4byte gUnknown_20205AC -_0814B190: .4byte gUnknown_3005AD0 -_0814B194: .4byte gUnknown_2023D08 -_0814B198: .4byte sub_08007140 -_0814B19C: .4byte gUnknown_2024174 -_0814B1A0: .4byte gUnknown_3005AC0 -_0814B1A4: .4byte sub_0814B07C - thumb_func_end sub_0814B0C4 - - thumb_func_start sub_0814B1A8 -sub_0814B1A8: @ 0x0814B1A8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _0814B320 - mov ip, r0 - ldr r0, [r0] - ldr r7, _0814B324 - ldrb r2, [r7] - ldr r3, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r4, r0, r3 - ldrb r1, [r4] - movs r5, #8 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _0814B1D4 - b _0814B312 -_0814B1D4: - movs r1, #2 - mov r8, r1 - adds r1, r2, #0 - mov r0, r8 - eors r1, r0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0] - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - beq _0814B1F6 - b _0814B312 -_0814B1F6: - ldr r1, _0814B328 - mov sl, r1 - ldr r0, _0814B32C - mov sb, r0 - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - mov r5, sl - adds r5, #0x1c - adds r0, r0, r5 - ldr r3, [r0] - ldr r0, _0814B330 - cmp r3, r0 - bne _0814B312 - ldr r0, _0814B334 - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r0, [r0] - cmp r0, r3 - bne _0814B312 - ldrb r0, [r4, #9] - adds r0, #1 - strb r0, [r4, #9] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0814B312 - mov r1, ip - ldr r0, [r1] - ldrb r1, [r7] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strb r6, [r0, #9] - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0814B2B0 - ldr r0, _0814B338 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _0814B2B0 - ldrb r0, [r7] - mov r1, r8 - eors r0, r1 - add r0, sb - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sl - bl DestroySprite - ldr r4, _0814B33C - ldrb r0, [r7] - mov r1, r8 - eors r1, r0 - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, _0814B340 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _0814B344 - adds r1, r1, r2 - movs r2, #0 - bl UpdateHealthboxAttribute - ldrb r0, [r7] - mov r1, r8 - eors r0, r1 - bl sub_08076320 - ldrb r0, [r7] - mov r1, r8 - eors r0, r1 - adds r0, r0, r4 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible -_0814B2B0: - ldr r1, _0814B32C - ldr r4, _0814B324 - ldrb r0, [r4] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0814B328 - adds r0, r0, r1 - bl DestroySprite - ldr r5, _0814B33C - ldrb r1, [r4] - adds r0, r1, r5 - ldrb r0, [r0] - ldr r2, _0814B340 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _0814B344 - adds r1, r1, r2 - movs r2, #0 - bl UpdateHealthboxAttribute - ldrb r0, [r4] - bl sub_08076320 - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible - ldr r0, _0814B320 - ldr r0, [r0] - ldr r2, [r0, #8] - ldrb r1, [r2, #9] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #9] - ldr r1, _0814B348 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0814B34C - str r1, [r0] -_0814B312: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0814B320: .4byte gUnknown_2024174 -_0814B324: .4byte gUnknown_2023D08 -_0814B328: .4byte gUnknown_20205AC -_0814B32C: .4byte gUnknown_3005ADC -_0814B330: .4byte sub_08007140 -_0814B334: .4byte gUnknown_2023E88 -_0814B338: .4byte gUnknown_2022C90 -_0814B33C: .4byte gUnknown_3005AD0 -_0814B340: .4byte gUnknown_2023D12 -_0814B344: .4byte gUnknown_2024190 -_0814B348: .4byte gUnknown_3005AC0 -_0814B34C: .4byte sub_0814B0C4 - thumb_func_end sub_0814B1A8 - - thumb_func_start sub_0814B350 -sub_0814B350: @ 0x0814B350 - push {lr} - ldr r2, _0814B384 - ldr r1, _0814B388 - ldr r0, _0814B38C - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r2 - adds r0, r1, #0 - adds r0, #0x3f - ldrb r0, [r0] - lsls r0, r0, #0x1b - cmp r0, #0 - bge _0814B37E - movs r2, #0x24 - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _0814B37E - bl LinkPartnerBufferExecCompleted -_0814B37E: - pop {r0} - bx r0 - .align 2, 0 -_0814B384: .4byte gUnknown_20205AC -_0814B388: .4byte gUnknown_2023E88 -_0814B38C: .4byte gUnknown_2023D08 - thumb_func_end sub_0814B350 - - thumb_func_start sub_0814B390 -sub_0814B390: @ 0x0814B390 - push {r4, r5, r6, lr} - ldr r5, _0814B3D0 - ldrb r0, [r5] - ldr r6, _0814B3D4 - adds r1, r0, r6 - ldrb r1, [r1] - movs r2, #0 - movs r3, #0 - bl MoveBattleBar - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible - lsls r4, r4, #0x10 - asrs r1, r4, #0x10 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0814B3D8 - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r0, [r0] - movs r2, #0 - bl sub_080726F4 - b _0814B3F2 - .align 2, 0 -_0814B3D0: .4byte gUnknown_2023D08 -_0814B3D4: .4byte gUnknown_3005AD0 -_0814B3D8: - ldr r2, _0814B3F8 - ldrb r1, [r5] - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r2, [r0] - movs r0, #0x64 - muls r0, r2, r0 - ldr r2, _0814B3FC - adds r0, r0, r2 - bl HandleLowHpMusicChange - bl LinkPartnerBufferExecCompleted -_0814B3F2: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0814B3F8: .4byte gUnknown_2023D12 -_0814B3FC: .4byte gUnknown_2024190 - thumb_func_end sub_0814B390 - - thumb_func_start sub_0814B400 -sub_0814B400: @ 0x0814B400 - push {r4, r5, r6, lr} - ldr r6, _0814B484 - ldr r5, _0814B488 - ldr r4, _0814B48C - ldrb r2, [r4] - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r3, #0x22 - ldrsh r1, [r0, r3] - movs r3, #0x26 - ldrsh r0, [r0, r3] - adds r1, r1, r0 - cmp r1, #0xa0 - ble _0814B47C - ldr r1, _0814B490 - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0814B494 - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_0805DB50 - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r0, [r0, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - bl DestroySprite - ldr r1, _0814B498 - ldrb r0, [r4] - adds r0, r0, r1 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible - bl LinkPartnerBufferExecCompleted -_0814B47C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0814B484: .4byte gUnknown_20205AC -_0814B488: .4byte gUnknown_2023E88 -_0814B48C: .4byte gUnknown_2023D08 -_0814B490: .4byte gUnknown_2023D12 -_0814B494: .4byte gUnknown_2024190 -_0814B498: .4byte gUnknown_3005AD0 - thumb_func_end sub_0814B400 - - thumb_func_start sub_0814B49C -sub_0814B49C: @ 0x0814B49C - push {r4, r5, r6, lr} - ldr r0, _0814B4F8 - ldr r0, [r0] - ldr r6, _0814B4FC - ldrb r2, [r6] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _0814B4F0 - ldr r5, _0814B500 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _0814B504 - adds r0, r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - ldr r1, _0814B508 - ldrb r0, [r6] - adds r0, r0, r1 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible - bl LinkPartnerBufferExecCompleted -_0814B4F0: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0814B4F8: .4byte gUnknown_2024174 -_0814B4FC: .4byte gUnknown_2023D08 -_0814B500: .4byte gUnknown_2023E88 -_0814B504: .4byte gUnknown_20205AC -_0814B508: .4byte gUnknown_3005AD0 - thumb_func_end sub_0814B49C - - thumb_func_start sub_0814B50C -sub_0814B50C: @ 0x0814B50C - push {lr} - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0814B51E - bl LinkPartnerBufferExecCompleted -_0814B51E: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0814B50C - - thumb_func_start sub_0814B524 -sub_0814B524: @ 0x0814B524 - push {r4, lr} - ldr r1, _0814B560 - ldr r0, _0814B564 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - ldr r2, _0814B568 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, r0, r2 - movs r1, #0x30 - ldrsh r0, [r4, r1] - cmp r0, #0x20 - bne _0814B570 - movs r3, #0 - movs r0, #0 - strh r0, [r4, #0x30] - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - subs r0, #5 - ands r0, r1 - strb r0, [r2] - ldr r0, _0814B56C - strb r3, [r0] - bl LinkPartnerBufferExecCompleted - b _0814B59A - .align 2, 0 -_0814B560: .4byte gUnknown_2023E88 -_0814B564: .4byte gUnknown_2023D08 -_0814B568: .4byte gUnknown_20205AC -_0814B56C: .4byte gUnknown_202415D -_0814B570: - ldrh r0, [r4, #0x30] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0814B594 - adds r3, r4, #0 - adds r3, #0x3e - ldrb r2, [r3] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_0814B594: - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] -_0814B59A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0814B524 - - thumb_func_start sub_0814B5A0 -sub_0814B5A0: @ 0x0814B5A0 - push {r4, lr} - ldr r2, _0814B5F8 - ldr r0, _0814B5FC - ldr r4, _0814B600 - ldrb r3, [r4] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _0814B604 - cmp r1, r0 - bne _0814B5F2 - adds r0, r3, #0 - bl CopyBattleSpriteInvisibility - ldr r0, _0814B608 - ldr r0, [r0] - ldrb r2, [r4] - ldr r1, [r0] - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0814B5E6 - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #6 - bl InitAndLaunchSpecialAnimation -_0814B5E6: - ldr r0, _0814B60C - ldrb r1, [r4] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, _0814B610 - str r0, [r1] -_0814B5F2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814B5F8: .4byte gUnknown_20205AC -_0814B5FC: .4byte gUnknown_3005AD0 -_0814B600: .4byte gUnknown_2023D08 -_0814B604: .4byte sub_08007140 -_0814B608: .4byte gUnknown_2024174 -_0814B60C: .4byte gUnknown_3005AC0 -_0814B610: .4byte sub_0814B614 - thumb_func_end sub_0814B5A0 - - thumb_func_start sub_0814B614 -sub_0814B614: @ 0x0814B614 - push {lr} - ldr r0, _0814B654 - ldr r1, [r0] - ldr r0, _0814B658 - ldrb r3, [r0] - ldr r1, [r1, #4] - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _0814B650 - ldr r2, _0814B65C - ldr r0, _0814B660 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _0814B664 - cmp r1, r0 - bne _0814B650 - bl LinkPartnerBufferExecCompleted -_0814B650: - pop {r0} - bx r0 - .align 2, 0 -_0814B654: .4byte gUnknown_2024174 -_0814B658: .4byte gUnknown_2023D08 -_0814B65C: .4byte gUnknown_20205AC -_0814B660: .4byte gUnknown_2023E88 -_0814B664: .4byte sub_08007140 - thumb_func_end sub_0814B614 - - thumb_func_start sub_0814B668 -sub_0814B668: @ 0x0814B668 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r3, _0814B730 - ldr r0, [r3] - ldr r7, _0814B734 - ldrb r1, [r7] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, r0, r2 - ldrb r1, [r2, #1] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0814B724 - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - ldr r0, [r3] - ldrb r2, [r7] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #1] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #1] - ldr r4, _0814B738 - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl FreeSpritePaletteByTag - ldr r0, _0814B73C - movs r1, #0xa - bl CreateTask - ldr r0, _0814B740 - mov r8, r0 - ldrb r1, [r7] - lsls r0, r1, #1 - add r0, r8 - ldrh r0, [r0] - movs r6, #0x64 - muls r0, r6, r0 - ldr r5, _0814B744 - adds r0, r0, r5 - bl HandleLowHpMusicChange - ldr r1, _0814B748 - ldrb r0, [r7] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0814B74C - adds r0, r0, r1 - movs r1, #0 - bl StartSpriteAnim - ldr r4, _0814B750 - ldrb r1, [r7] - adds r0, r1, r4 - ldrb r0, [r0] - lsls r1, r1, #1 - add r1, r8 - ldrh r1, [r1] - muls r1, r6, r1 - adds r1, r1, r5 - movs r2, #0 - bl UpdateHealthboxAttribute - ldrb r0, [r7] - bl sub_08076320 - ldrb r0, [r7] - adds r0, r0, r4 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible - ldr r1, _0814B754 - ldrb r0, [r7] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0814B758 - str r1, [r0] -_0814B724: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0814B730: .4byte gUnknown_2024174 -_0814B734: .4byte gUnknown_2023D08 -_0814B738: .4byte 0x000027F9 -_0814B73C: .4byte sub_08058D10 -_0814B740: .4byte gUnknown_2023D12 -_0814B744: .4byte gUnknown_2024190 -_0814B748: .4byte gUnknown_2023E88 -_0814B74C: .4byte gUnknown_20205AC -_0814B750: .4byte gUnknown_3005AD0 -_0814B754: .4byte gUnknown_3005AC0 -_0814B758: .4byte sub_0814B5A0 - thumb_func_end sub_0814B668 - - thumb_func_start sub_0814B75C -sub_0814B75C: @ 0x0814B75C - push {r4, r5, r6, lr} - ldr r6, _0814B7DC - ldr r0, [r6] - ldr r4, _0814B7E0 - ldrb r2, [r4] - ldr r1, [r0, #4] - lsls r3, r2, #1 - adds r0, r3, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x88 - ands r0, r1 - cmp r0, #0 - bne _0814B78E - ldr r0, _0814B7E4 - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _0814B7E8 - adds r1, r1, r0 - adds r0, r2, #0 - bl sub_08172CD4 -_0814B78E: - ldr r5, _0814B7EC - ldr r0, _0814B7F0 - ldrb r2, [r4] - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r3, r0, #2 - adds r0, r5, #0 - adds r0, #0x1c - adds r0, r3, r0 - ldr r1, [r0] - ldr r0, _0814B7F4 - cmp r1, r0 - bne _0814B7D4 - ldr r0, [r6] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - bne _0814B7D4 - adds r0, r3, r5 - bl DestroySprite - ldr r1, _0814B7F8 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0814B7FC - str r1, [r0] -_0814B7D4: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0814B7DC: .4byte gUnknown_2024174 -_0814B7E0: .4byte gUnknown_2023D08 -_0814B7E4: .4byte gUnknown_2023D12 -_0814B7E8: .4byte gUnknown_2024190 -_0814B7EC: .4byte gUnknown_20205AC -_0814B7F0: .4byte gUnknown_3005ADC -_0814B7F4: .4byte sub_08007140 -_0814B7F8: .4byte gUnknown_3005AC0 -_0814B7FC: .4byte sub_0814B668 - thumb_func_end sub_0814B75C - - thumb_func_start LinkPartnerBufferExecCompleted -LinkPartnerBufferExecCompleted: @ 0x0814B800 - push {r4, lr} - sub sp, #4 - ldr r1, _0814B840 - ldr r4, _0814B844 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0814B848 - str r1, [r0] - ldr r0, _0814B84C - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _0814B854 - bl GetMultiplayerId - mov r1, sp - strb r0, [r1] - movs r0, #2 - movs r1, #4 - mov r2, sp - bl PrepareBufferDataTransferLink - ldr r1, _0814B850 - ldrb r0, [r4] - lsls r0, r0, #9 - adds r0, r0, r1 - movs r1, #0x38 - strb r1, [r0] - b _0814B866 - .align 2, 0 -_0814B840: .4byte gUnknown_3005AC0 -_0814B844: .4byte gUnknown_2023D08 -_0814B848: .4byte LinkPartnerBufferRunCommand -_0814B84C: .4byte gUnknown_2022C90 -_0814B850: .4byte gUnknown_2022D08 -_0814B854: - ldr r2, _0814B870 - ldr r1, _0814B874 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - ldr r0, [r2] - bics r0, r1 - str r0, [r2] -_0814B866: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814B870: .4byte gUnknown_2023D0C -_0814B874: .4byte gUnknown_82FACB4 - thumb_func_end LinkPartnerBufferExecCompleted - - thumb_func_start sub_0814B878 -sub_0814B878: @ 0x0814B878 - push {lr} - ldr r0, _0814B8A0 - ldr r2, [r0] - ldr r0, _0814B8A4 - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _0814B89A - bl LinkPartnerBufferExecCompleted -_0814B89A: - pop {r0} - bx r0 - .align 2, 0 -_0814B8A0: .4byte gUnknown_2024174 -_0814B8A4: .4byte gUnknown_2023D08 - thumb_func_end sub_0814B878 - - thumb_func_start sub_0814B8A8 -sub_0814B8A8: @ 0x0814B8A8 - push {lr} - ldr r0, _0814B8D0 - ldr r2, [r0] - ldr r0, _0814B8D4 - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _0814B8CA - bl LinkPartnerBufferExecCompleted -_0814B8CA: - pop {r0} - bx r0 - .align 2, 0 -_0814B8D0: .4byte gUnknown_2024174 -_0814B8D4: .4byte gUnknown_2023D08 - thumb_func_end sub_0814B8A8 - - thumb_func_start sub_0814B8D8 -sub_0814B8D8: @ 0x0814B8D8 - push {r4, r5, r6, lr} - sub sp, #0x100 - movs r6, #0 - ldr r1, _0814B904 - ldr r0, _0814B908 - ldrb r2, [r0] - lsls r0, r2, #9 - adds r1, #2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, #0 - bne _0814B910 - ldr r0, _0814B90C - lsls r1, r2, #1 - adds r1, r1, r0 - ldrb r0, [r1] - mov r1, sp - bl CopyLinkPartnerMonData - adds r6, r0, #0 - b _0814B932 - .align 2, 0 -_0814B904: .4byte gUnknown_2022D08 -_0814B908: .4byte gUnknown_2023D08 -_0814B90C: .4byte gUnknown_2023D12 -_0814B910: - ldrb r4, [r1] - movs r5, #0 -_0814B914: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _0814B92A - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - mov r2, sp - adds r1, r2, r6 - bl CopyLinkPartnerMonData - adds r6, r6, r0 -_0814B92A: - lsrs r4, r4, #1 - adds r5, #1 - cmp r5, #5 - ble _0814B914 -_0814B932: - lsls r1, r6, #0x10 - lsrs r1, r1, #0x10 - movs r0, #1 - mov r2, sp - bl BtlController_EmitDataTransfer - bl LinkPartnerBufferExecCompleted - add sp, #0x100 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0814B8D8 - - thumb_func_start CopyLinkPartnerMonData -CopyLinkPartnerMonData: @ 0x0814B94C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x90 - adds r7, r1, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r6, #0 - ldr r2, _0814B980 - ldr r3, _0814B984 - ldrb r0, [r3] - lsls r0, r0, #9 - adds r1, r2, #1 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0x3b - bls _0814B976 - bl _0814C0E2 -_0814B976: - lsls r0, r0, #2 - ldr r1, _0814B988 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0814B980: .4byte gUnknown_2022D08 -_0814B984: .4byte gUnknown_2023D08 -_0814B988: .4byte _0814B98C -_0814B98C: @ jump table - .4byte _0814BA7C @ case 0 - .4byte _0814BCA0 @ case 1 - .4byte _0814BCB0 @ case 2 - .4byte _0814BCC0 @ case 3 - .4byte _0814BD28 @ case 4 - .4byte _0814BD28 @ case 5 - .4byte _0814BD28 @ case 6 - .4byte _0814BD28 @ case 7 - .4byte _0814BD44 @ case 8 - .4byte _0814BD80 @ case 9 - .4byte _0814BD80 @ case 10 - .4byte _0814BD80 @ case 11 - .4byte _0814BD80 @ case 12 - .4byte _0814C0E2 @ case 13 - .4byte _0814C0E2 @ case 14 - .4byte _0814C0E2 @ case 15 - .4byte _0814C0E2 @ case 16 - .4byte _0814BD9C @ case 17 - .4byte _0814BDAC @ case 18 - .4byte _0814BDDC @ case 19 - .4byte _0814BDEC @ case 20 - .4byte _0814BDFC @ case 21 - .4byte _0814BE0C @ case 22 - .4byte _0814BE1C @ case 23 - .4byte _0814BE2C @ case 24 - .4byte _0814BE3C @ case 25 - .4byte _0814BE4C @ case 26 - .4byte _0814BE5C @ case 27 - .4byte _0814BE6C @ case 28 - .4byte _0814BE7C @ case 29 - .4byte _0814BE8C @ case 30 - .4byte _0814BE9C @ case 31 - .4byte _0814BEEC @ case 32 - .4byte _0814BEFC @ case 33 - .4byte _0814BF0C @ case 34 - .4byte _0814BF1C @ case 35 - .4byte _0814BF2C @ case 36 - .4byte _0814BF3C @ case 37 - .4byte _0814BF4C @ case 38 - .4byte _0814BF5C @ case 39 - .4byte _0814BF6C @ case 40 - .4byte _0814BFA0 @ case 41 - .4byte _0814BFB0 @ case 42 - .4byte _0814BFC0 @ case 43 - .4byte _0814BFD0 @ case 44 - .4byte _0814BFE0 @ case 45 - .4byte _0814BFF0 @ case 46 - .4byte _0814C000 @ case 47 - .4byte _0814C010 @ case 48 - .4byte _0814C030 @ case 49 - .4byte _0814C040 @ case 50 - .4byte _0814C050 @ case 51 - .4byte _0814C060 @ case 52 - .4byte _0814C070 @ case 53 - .4byte _0814C080 @ case 54 - .4byte _0814C090 @ case 55 - .4byte _0814C0A0 @ case 56 - .4byte _0814C0B0 @ case 57 - .4byte _0814C0C0 @ case 58 - .4byte _0814C0D0 @ case 59 -_0814BA7C: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _0814BC90 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - mov r1, sp - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0xc - bl GetMonData - mov r1, sp - strh r0, [r1, #0x2e] - movs r6, #0 - add r0, sp, #0x24 - mov sb, r0 - movs r1, #0x3b - add r1, sp - mov sl, r1 - mov r2, sp - adds r2, #0x2b - str r2, [sp, #0x80] - mov r0, sp - adds r0, #0x2a - str r0, [sp, #0x7c] - mov r1, sp - adds r1, #0x68 - str r1, [sp, #0x8c] - adds r2, #5 - str r2, [sp, #0x84] - adds r0, #0x12 - str r0, [sp, #0x88] - mov r8, r4 - add r4, sp, #0xc -_0814BAC8: - adds r1, r6, #0 - adds r1, #0xd - mov r0, r8 - bl GetMonData - strh r0, [r4] - adds r1, r6, #0 - adds r1, #0x11 - mov r0, r8 - bl GetMonData - mov r2, sb - adds r1, r2, r6 - strb r0, [r1] - adds r4, #2 - adds r6, #1 - cmp r6, #3 - ble _0814BAC8 - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _0814BC90 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x15 - bl GetMonData - mov r1, sl - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x20 - bl GetMonData - ldr r2, [sp, #0x80] - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0x19 - bl GetMonData - str r0, [sp, #0x44] - adds r0, r4, #0 - movs r1, #0x27 - bl GetMonData - mov r3, sp - movs r5, #0x1f - ands r0, r5 - ldrb r2, [r3, #0x14] - movs r1, #0x20 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x14] - adds r0, r4, #0 - movs r1, #0x28 - bl GetMonData - mov r3, sp - movs r6, #0x1f - ands r0, r6 - lsls r0, r0, #5 - ldrh r2, [r3, #0x14] - ldr r1, _0814BC94 - ands r1, r2 - orrs r1, r0 - strh r1, [r3, #0x14] - adds r0, r4, #0 - movs r1, #0x29 - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, r0, #2 - ldrb r2, [r3, #0x15] - movs r1, #0x7d - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x15] - adds r0, r4, #0 - movs r1, #0x2a - bl GetMonData - movs r1, #0x1f - ands r1, r0 - lsls r1, r1, #0xf - ldr r0, [sp, #0x14] - ldr r2, _0814BC98 - ands r0, r2 - orrs r0, r1 - str r0, [sp, #0x14] - adds r0, r4, #0 - movs r1, #0x2b - bl GetMonData - mov r3, sp - ands r0, r6 - lsls r0, r0, #4 - ldrh r2, [r3, #0x16] - ldr r1, _0814BC9C - ands r1, r2 - orrs r1, r0 - strh r1, [r3, #0x16] - adds r0, r4, #0 - movs r1, #0x2c - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, r0, #1 - ldrb r2, [r3, #0x17] - movs r1, #0x3f - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x17] - adds r0, r4, #0 - movs r1, #0 - bl GetMonData - str r0, [sp, #0x48] - adds r0, r4, #0 - movs r1, #0x37 - bl GetMonData - str r0, [sp, #0x4c] - adds r0, r4, #0 - movs r1, #0x38 - bl GetMonData - ldr r1, [sp, #0x7c] - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - mov r1, sp - strh r0, [r1, #0x28] - adds r0, r4, #0 - movs r1, #0x3a - bl GetMonData - mov r1, sp - strh r0, [r1, #0x2c] - adds r0, r4, #0 - movs r1, #0x3b - bl GetMonData - mov r1, sp - strh r0, [r1, #2] - adds r0, r4, #0 - movs r1, #0x3c - bl GetMonData - mov r1, sp - strh r0, [r1, #4] - adds r0, r4, #0 - movs r1, #0x3d - bl GetMonData - mov r1, sp - strh r0, [r1, #6] - adds r0, r4, #0 - movs r1, #0x3e - bl GetMonData - mov r1, sp - strh r0, [r1, #8] - adds r0, r4, #0 - movs r1, #0x3f - bl GetMonData - mov r1, sp - strh r0, [r1, #0xa] - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - mov r3, sp - movs r1, #1 - ands r0, r1 - lsls r0, r0, #6 - ldrb r2, [r3, #0x17] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x17] - adds r0, r4, #0 - movs r1, #0x2e - bl GetMonData - mov r3, sp - lsls r0, r0, #7 - ldrb r2, [r3, #0x17] - movs r1, #0x7f - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x17] - adds r0, r4, #0 - movs r1, #1 - bl GetMonData - str r0, [sp, #0x54] - adds r0, r4, #0 - movs r1, #2 - ldr r2, [sp, #0x8c] - bl GetMonData - ldr r0, [sp, #0x84] - ldr r1, [sp, #0x8c] - bl StringCopy10 - adds r0, r4, #0 - movs r1, #7 - ldr r2, [sp, #0x88] - bl GetMonData - mov r2, sp - movs r6, #0 -_0814BC80: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, #1 - cmp r6, #0x57 - bls _0814BC80 - b _0814C0E2 - .align 2, 0 -_0814BC90: .4byte gUnknown_2024190 -_0814BC94: .4byte 0xFFFFFC1F -_0814BC98: .4byte 0xFFF07FFF -_0814BC9C: .4byte 0xFFFFFE0F -_0814BCA0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BCAC - adds r0, r0, r1 - movs r1, #0xb - b _0814C01A - .align 2, 0 -_0814BCAC: .4byte gUnknown_2024190 -_0814BCB0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BCBC - adds r0, r0, r1 - movs r1, #0xc - b _0814C01A - .align 2, 0 -_0814BCBC: .4byte gUnknown_2024190 -_0814BCC0: - movs r6, #0 - add r2, sp, #0x58 - mov sb, r2 - add r0, sp, #0x60 - mov sl, r0 - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _0814BD24 - adds r4, r1, r0 - mov r8, sb -_0814BCD6: - adds r1, r6, #0 - adds r1, #0xd - adds r0, r4, #0 - bl GetMonData - mov r1, r8 - strh r0, [r1] - adds r1, r6, #0 - adds r1, #0x11 - adds r0, r4, #0 - bl GetMonData - mov r2, sl - adds r1, r2, r6 - strb r0, [r1] - movs r0, #2 - add r8, r0 - adds r6, #1 - cmp r6, #3 - ble _0814BCD6 - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BD24 - adds r0, r0, r1 - movs r1, #0x15 - bl GetMonData - mov r1, sb - strb r0, [r1, #0xc] - mov r2, sb - movs r6, #0 -_0814BD14: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, #1 - cmp r6, #0xf - bls _0814BD14 - b _0814C0E2 - .align 2, 0 -_0814BD24: .4byte gUnknown_2024190 -_0814BD28: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BD40 - adds r0, r0, r1 - ldrb r1, [r3] - lsls r1, r1, #9 - adds r2, #1 - adds r1, r1, r2 - ldrb r1, [r1] - adds r1, #9 - b _0814C01A - .align 2, 0 -_0814BD40: .4byte gUnknown_2024190 -_0814BD44: - movs r6, #0 - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r2, _0814BD7C - mov r8, r2 -_0814BD50: - adds r1, r6, #0 - adds r1, #0x11 - mov r2, r8 - adds r0, r4, r2 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, #1 - cmp r6, #3 - ble _0814BD50 - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BD7C - adds r0, r0, r1 - movs r1, #0x15 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, #1 - b _0814C0E2 - .align 2, 0 -_0814BD7C: .4byte gUnknown_2024190 -_0814BD80: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BD98 - adds r0, r0, r1 - ldrb r1, [r3] - lsls r1, r1, #9 - adds r2, #1 - adds r1, r1, r2 - ldrb r1, [r1] - adds r1, #8 - b _0814C0DA - .align 2, 0 -_0814BD98: .4byte gUnknown_2024190 -_0814BD9C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BDA8 - adds r0, r0, r1 - movs r1, #1 - b _0814BDB6 - .align 2, 0 -_0814BDA8: .4byte gUnknown_2024190 -_0814BDAC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BDD8 - adds r0, r0, r1 - movs r1, #0x19 -_0814BDB6: - bl GetMonData - adds r1, r0, #0 - strb r1, [r7] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - lsrs r0, r0, #8 - strb r0, [r7, #1] - movs r0, #0xff - lsls r0, r0, #0x10 - ands r0, r1 - lsrs r0, r0, #0x10 - strb r0, [r7, #2] - movs r6, #3 - b _0814C0E2 - .align 2, 0 -_0814BDD8: .4byte gUnknown_2024190 -_0814BDDC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BDE8 - adds r0, r0, r1 - movs r1, #0x1a - b _0814C0DA - .align 2, 0 -_0814BDE8: .4byte gUnknown_2024190 -_0814BDEC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BDF8 - adds r0, r0, r1 - movs r1, #0x1b - b _0814C0DA - .align 2, 0 -_0814BDF8: .4byte gUnknown_2024190 -_0814BDFC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BE08 - adds r0, r0, r1 - movs r1, #0x1c - b _0814C0DA - .align 2, 0 -_0814BE08: .4byte gUnknown_2024190 -_0814BE0C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BE18 - adds r0, r0, r1 - movs r1, #0x1d - b _0814C0DA - .align 2, 0 -_0814BE18: .4byte gUnknown_2024190 -_0814BE1C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BE28 - adds r0, r0, r1 - movs r1, #0x1e - b _0814C0DA - .align 2, 0 -_0814BE28: .4byte gUnknown_2024190 -_0814BE2C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BE38 - adds r0, r0, r1 - movs r1, #0x1f - b _0814C0DA - .align 2, 0 -_0814BE38: .4byte gUnknown_2024190 -_0814BE3C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BE48 - adds r0, r0, r1 - movs r1, #0x20 - b _0814C0DA - .align 2, 0 -_0814BE48: .4byte gUnknown_2024190 -_0814BE4C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BE58 - adds r0, r0, r1 - movs r1, #0x22 - b _0814C0DA - .align 2, 0 -_0814BE58: .4byte gUnknown_2024190 -_0814BE5C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BE68 - adds r0, r0, r1 - movs r1, #0x23 - b _0814C0DA - .align 2, 0 -_0814BE68: .4byte gUnknown_2024190 -_0814BE6C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BE78 - adds r0, r0, r1 - movs r1, #0x24 - b _0814C0DA - .align 2, 0 -_0814BE78: .4byte gUnknown_2024190 -_0814BE7C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BE88 - adds r0, r0, r1 - movs r1, #0x25 - b _0814C0DA - .align 2, 0 -_0814BE88: .4byte gUnknown_2024190 -_0814BE8C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BE98 - adds r0, r0, r1 - movs r1, #0x26 - b _0814C0DA - .align 2, 0 -_0814BE98: .4byte gUnknown_2024190 -_0814BE9C: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _0814BEE8 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x27 - bl GetMonData - strb r0, [r7] - adds r0, r4, #0 - movs r1, #0x28 - bl GetMonData - strb r0, [r7, #1] - adds r0, r4, #0 - movs r1, #0x29 - bl GetMonData - strb r0, [r7, #2] - adds r0, r4, #0 - movs r1, #0x2a - bl GetMonData - strb r0, [r7, #3] - adds r0, r4, #0 - movs r1, #0x2b - bl GetMonData - strb r0, [r7, #4] - adds r0, r4, #0 - movs r1, #0x2c - bl GetMonData - strb r0, [r7, #5] - movs r6, #6 - b _0814C0E2 - .align 2, 0 -_0814BEE8: .4byte gUnknown_2024190 -_0814BEEC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BEF8 - adds r0, r0, r1 - movs r1, #0x27 - b _0814C0DA - .align 2, 0 -_0814BEF8: .4byte gUnknown_2024190 -_0814BEFC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BF08 - adds r0, r0, r1 - movs r1, #0x28 - b _0814C0DA - .align 2, 0 -_0814BF08: .4byte gUnknown_2024190 -_0814BF0C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BF18 - adds r0, r0, r1 - movs r1, #0x29 - b _0814C0DA - .align 2, 0 -_0814BF18: .4byte gUnknown_2024190 -_0814BF1C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BF28 - adds r0, r0, r1 - movs r1, #0x2a - b _0814C0DA - .align 2, 0 -_0814BF28: .4byte gUnknown_2024190 -_0814BF2C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BF38 - adds r0, r0, r1 - movs r1, #0x2b - b _0814C0DA - .align 2, 0 -_0814BF38: .4byte gUnknown_2024190 -_0814BF3C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BF48 - adds r0, r0, r1 - movs r1, #0x2c - b _0814C0DA - .align 2, 0 -_0814BF48: .4byte gUnknown_2024190 -_0814BF4C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BF58 - adds r0, r0, r1 - movs r1, #0 - b _0814BF76 - .align 2, 0 -_0814BF58: .4byte gUnknown_2024190 -_0814BF5C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BF68 - adds r0, r0, r1 - movs r1, #9 - b _0814C01A - .align 2, 0 -_0814BF68: .4byte gUnknown_2024190 -_0814BF6C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BF9C - adds r0, r0, r1 - movs r1, #0x37 -_0814BF76: - bl GetMonData - adds r1, r0, #0 - strb r1, [r7] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - lsrs r0, r0, #8 - strb r0, [r7, #1] - movs r0, #0xff - lsls r0, r0, #0x10 - ands r0, r1 - lsrs r0, r0, #0x10 - strb r0, [r7, #2] - lsrs r0, r1, #0x18 - strb r0, [r7, #3] - movs r6, #4 - b _0814C0E2 - .align 2, 0 -_0814BF9C: .4byte gUnknown_2024190 -_0814BFA0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BFAC - adds r0, r0, r1 - movs r1, #0x38 - b _0814C0DA - .align 2, 0 -_0814BFAC: .4byte gUnknown_2024190 -_0814BFB0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BFBC - adds r0, r0, r1 - movs r1, #0x39 - b _0814C01A - .align 2, 0 -_0814BFBC: .4byte gUnknown_2024190 -_0814BFC0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BFCC - adds r0, r0, r1 - movs r1, #0x3a - b _0814C01A - .align 2, 0 -_0814BFCC: .4byte gUnknown_2024190 -_0814BFD0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BFDC - adds r0, r0, r1 - movs r1, #0x3b - b _0814C01A - .align 2, 0 -_0814BFDC: .4byte gUnknown_2024190 -_0814BFE0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BFEC - adds r0, r0, r1 - movs r1, #0x3c - b _0814C01A - .align 2, 0 -_0814BFEC: .4byte gUnknown_2024190 -_0814BFF0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814BFFC - adds r0, r0, r1 - movs r1, #0x3d - b _0814C01A - .align 2, 0 -_0814BFFC: .4byte gUnknown_2024190 -_0814C000: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C00C - adds r0, r0, r1 - movs r1, #0x3e - b _0814C01A - .align 2, 0 -_0814C00C: .4byte gUnknown_2024190 -_0814C010: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C02C - adds r0, r0, r1 - movs r1, #0x3f -_0814C01A: - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - strb r0, [r7] - lsrs r0, r0, #8 - strb r0, [r7, #1] - movs r6, #2 - b _0814C0E2 - .align 2, 0 -_0814C02C: .4byte gUnknown_2024190 -_0814C030: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C03C - adds r0, r0, r1 - movs r1, #0x16 - b _0814C0DA - .align 2, 0 -_0814C03C: .4byte gUnknown_2024190 -_0814C040: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C04C - adds r0, r0, r1 - movs r1, #0x17 - b _0814C0DA - .align 2, 0 -_0814C04C: .4byte gUnknown_2024190 -_0814C050: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C05C - adds r0, r0, r1 - movs r1, #0x18 - b _0814C0DA - .align 2, 0 -_0814C05C: .4byte gUnknown_2024190 -_0814C060: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C06C - adds r0, r0, r1 - movs r1, #0x21 - b _0814C0DA - .align 2, 0 -_0814C06C: .4byte gUnknown_2024190 -_0814C070: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C07C - adds r0, r0, r1 - movs r1, #0x2f - b _0814C0DA - .align 2, 0 -_0814C07C: .4byte gUnknown_2024190 -_0814C080: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C08C - adds r0, r0, r1 - movs r1, #0x30 - b _0814C0DA - .align 2, 0 -_0814C08C: .4byte gUnknown_2024190 -_0814C090: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C09C - adds r0, r0, r1 - movs r1, #0x32 - b _0814C0DA - .align 2, 0 -_0814C09C: .4byte gUnknown_2024190 -_0814C0A0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C0AC - adds r0, r0, r1 - movs r1, #0x33 - b _0814C0DA - .align 2, 0 -_0814C0AC: .4byte gUnknown_2024190 -_0814C0B0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C0BC - adds r0, r0, r1 - movs r1, #0x34 - b _0814C0DA - .align 2, 0 -_0814C0BC: .4byte gUnknown_2024190 -_0814C0C0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C0CC - adds r0, r0, r1 - movs r1, #0x35 - b _0814C0DA - .align 2, 0 -_0814C0CC: .4byte gUnknown_2024190 -_0814C0D0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C0F4 - adds r0, r0, r1 - movs r1, #0x36 -_0814C0DA: - bl GetMonData - strb r0, [r7] - movs r6, #1 -_0814C0E2: - adds r0, r6, #0 - add sp, #0x90 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0814C0F4: .4byte gUnknown_2024190 - thumb_func_end CopyLinkPartnerMonData - - thumb_func_start sub_0814C0F8 -sub_0814C0F8: @ 0x0814C0F8 - push {lr} - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0814C0F8 - - thumb_func_start sub_0814C104 -sub_0814C104: @ 0x0814C104 - push {r4, r5, lr} - ldr r1, _0814C128 - ldr r0, _0814C12C - ldrb r2, [r0] - lsls r0, r2, #9 - adds r1, #2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, #0 - bne _0814C134 - ldr r0, _0814C130 - lsls r1, r2, #1 - adds r1, r1, r0 - ldrb r0, [r1] - bl SetLinkPartnerMonData - b _0814C152 - .align 2, 0 -_0814C128: .4byte gUnknown_2022D08 -_0814C12C: .4byte gUnknown_2023D08 -_0814C130: .4byte gUnknown_2023D12 -_0814C134: - ldrb r4, [r1] - movs r5, #0 -_0814C138: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _0814C146 - adds r0, r5, #0 - bl SetLinkPartnerMonData -_0814C146: - lsrs r4, r4, #1 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #5 - bls _0814C138 -_0814C152: - bl LinkPartnerBufferExecCompleted - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_0814C104 - - thumb_func_start SetLinkPartnerMonData -SetLinkPartnerMonData: @ 0x0814C15C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x34 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _0814C194 - ldrb r0, [r0] - lsls r0, r0, #9 - ldr r2, _0814C198 - adds r3, r0, r2 - adds r6, r3, #0 - subs r1, r2, #2 - adds r0, r0, r1 - ldrb r0, [r0] - adds r7, r2, #0 - cmp r0, #0x3b - bls _0814C188 - bl _0814CB22 -_0814C188: - lsls r0, r0, #2 - ldr r1, _0814C19C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0814C194: .4byte gUnknown_2023D08 -_0814C198: .4byte gUnknown_2022D0B -_0814C19C: .4byte _0814C1A0 -_0814C1A0: @ jump table - .4byte _0814C290 @ case 0 - .4byte _0814C428 @ case 1 - .4byte _0814C448 @ case 2 - .4byte _0814C468 @ case 3 - .4byte _0814C4C0 @ case 4 - .4byte _0814C4C0 @ case 5 - .4byte _0814C4C0 @ case 6 - .4byte _0814C4C0 @ case 7 - .4byte _0814C4E8 @ case 8 - .4byte _0814C54C @ case 9 - .4byte _0814C54C @ case 10 - .4byte _0814C54C @ case 11 - .4byte _0814C54C @ case 12 - .4byte _0814CB22 @ case 13 - .4byte _0814CB22 @ case 14 - .4byte _0814CB22 @ case 15 - .4byte _0814CB22 @ case 16 - .4byte _0814C57C @ case 17 - .4byte _0814C59C @ case 18 - .4byte _0814C5BC @ case 19 - .4byte _0814C5DC @ case 20 - .4byte _0814C5FC @ case 21 - .4byte _0814C61C @ case 22 - .4byte _0814C63C @ case 23 - .4byte _0814C65C @ case 24 - .4byte _0814C67C @ case 25 - .4byte _0814C69C @ case 26 - .4byte _0814C6BC @ case 27 - .4byte _0814C6DC @ case 28 - .4byte _0814C6FC @ case 29 - .4byte _0814C71C @ case 30 - .4byte _0814C73C @ case 31 - .4byte _0814C7AC @ case 32 - .4byte _0814C7CC @ case 33 - .4byte _0814C7EC @ case 34 - .4byte _0814C80C @ case 35 - .4byte _0814C82C @ case 36 - .4byte _0814C84C @ case 37 - .4byte _0814C86C @ case 38 - .4byte _0814C88C @ case 39 - .4byte _0814C8AC @ case 40 - .4byte _0814C8CC @ case 41 - .4byte _0814C8EC @ case 42 - .4byte _0814C90C @ case 43 - .4byte _0814C92C @ case 44 - .4byte _0814C94C @ case 45 - .4byte _0814C96C @ case 46 - .4byte _0814C98C @ case 47 - .4byte _0814C9AC @ case 48 - .4byte _0814C9CC @ case 49 - .4byte _0814C9EC @ case 50 - .4byte _0814CA0C @ case 51 - .4byte _0814CA2C @ case 52 - .4byte _0814CA4C @ case 53 - .4byte _0814CA6C @ case 54 - .4byte _0814CA8C @ case 55 - .4byte _0814CAAC @ case 56 - .4byte _0814CACC @ case 57 - .4byte _0814CAEC @ case 58 - .4byte _0814CB0C @ case 59 -_0814C290: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _0814C424 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0xb - adds r2, r6, #0 - bl SetMonData - adds r2, r6, #0 - adds r2, #0x2e - adds r0, r4, #0 - movs r1, #0xc - bl SetMonData - movs r0, #0 - mov r8, r0 - movs r0, #0x3b - adds r0, r0, r6 - mov sl, r0 - adds r0, r6, #0 - adds r0, #0x2b - str r0, [sp, #0x20] - adds r0, #0x19 - str r0, [sp, #0x28] - adds r0, #4 - str r0, [sp, #0x2c] - adds r0, #4 - str r0, [sp, #0x30] - subs r0, #0x22 - str r0, [sp, #0x1c] - subs r0, #2 - str r0, [sp, #0x18] - adds r0, #4 - str r0, [sp, #0x24] - adds r0, r6, #2 - str r0, [sp, #4] - adds r0, r6, #4 - str r0, [sp, #8] - adds r0, r6, #6 - str r0, [sp, #0xc] - adds r0, #2 - str r0, [sp, #0x10] - adds r0, #2 - str r0, [sp, #0x14] - mov sb, r4 - adds r7, r6, #0 - adds r7, #0x24 - adds r4, r6, #0 - adds r4, #0xc -_0814C2F6: - mov r1, r8 - adds r1, #0xd - mov r0, sb - adds r2, r4, #0 - bl SetMonData - mov r1, r8 - adds r1, #0x11 - mov r0, sb - adds r2, r7, #0 - bl SetMonData - adds r7, #1 - adds r4, #2 - movs r0, #1 - add r8, r0 - mov r0, r8 - cmp r0, #3 - ble _0814C2F6 - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _0814C424 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x15 - mov r2, sl - bl SetMonData - adds r0, r4, #0 - movs r1, #0x20 - ldr r2, [sp, #0x20] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x19 - ldr r2, [sp, #0x28] - bl SetMonData - ldrb r0, [r6, #0x14] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1b - mov r1, sp - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x27 - mov r2, sp - bl SetMonData - mov r1, sp - ldrh r0, [r6, #0x14] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x28 - mov r2, sp - bl SetMonData - mov r1, sp - ldrb r0, [r6, #0x15] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x29 - mov r2, sp - bl SetMonData - mov r1, sp - ldr r0, [r6, #0x14] - lsls r0, r0, #0xc - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x2a - mov r2, sp - bl SetMonData - mov r1, sp - ldrh r0, [r6, #0x16] - lsls r0, r0, #0x17 - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x2b - mov r2, sp - bl SetMonData - mov r1, sp - ldrb r0, [r6, #0x17] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x2c - mov r2, sp - bl SetMonData - adds r0, r4, #0 - movs r1, #0 - ldr r2, [sp, #0x2c] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x37 - ldr r2, [sp, #0x30] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x38 - ldr r2, [sp, #0x1c] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x39 - ldr r2, [sp, #0x18] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3a - ldr r2, [sp, #0x24] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3b - ldr r2, [sp, #4] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3c - ldr r2, [sp, #8] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3d - ldr r2, [sp, #0xc] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3e - ldr r2, [sp, #0x10] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3f - ldr r2, [sp, #0x14] - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C424: .4byte gUnknown_2024190 -_0814C428: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C440 - adds r0, r0, r1 - ldr r1, _0814C444 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0xb - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C440: .4byte gUnknown_2024190 -_0814C444: .4byte gUnknown_2023D08 -_0814C448: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C460 - adds r0, r0, r1 - ldr r1, _0814C464 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0xc - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C460: .4byte gUnknown_2024190 -_0814C464: .4byte gUnknown_2023D08 -_0814C468: - movs r0, #0 - mov r8, r0 - movs r0, #0xc - adds r0, r0, r3 - mov sb, r0 - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _0814C4BC - adds r7, r1, r0 - adds r6, r3, #0 - adds r6, #8 - adds r4, r3, #0 -_0814C482: - mov r1, r8 - adds r1, #0xd - adds r0, r7, #0 - adds r2, r4, #0 - bl SetMonData - mov r1, r8 - adds r1, #0x11 - adds r0, r7, #0 - adds r2, r6, #0 - bl SetMonData - adds r6, #1 - adds r4, #2 - movs r0, #1 - add r8, r0 - mov r0, r8 - cmp r0, #3 - ble _0814C482 - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C4BC - adds r0, r0, r1 - movs r1, #0x15 - mov r2, sb - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C4BC: .4byte gUnknown_2024190 -_0814C4C0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C4DC - adds r0, r0, r1 - ldr r3, _0814C4E0 - ldr r1, _0814C4E4 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r1, r3, #1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, #9 - b _0814C564 - .align 2, 0 -_0814C4DC: .4byte gUnknown_2024190 -_0814C4E0: .4byte gUnknown_2022D08 -_0814C4E4: .4byte gUnknown_2023D08 -_0814C4E8: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _0814C544 - adds r4, r4, r0 - ldr r5, _0814C548 - ldrb r2, [r5] - lsls r2, r2, #9 - adds r2, r2, r7 - adds r0, r4, #0 - movs r1, #0x11 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #1 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x12 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #2 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x13 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #3 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x14 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #4 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x15 - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C544: .4byte gUnknown_2024190 -_0814C548: .4byte gUnknown_2023D08 -_0814C54C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C570 - adds r0, r0, r1 - ldr r3, _0814C574 - ldr r1, _0814C578 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r1, r3, #1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, #8 -_0814C564: - adds r3, #3 - adds r2, r2, r3 - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C570: .4byte gUnknown_2024190 -_0814C574: .4byte gUnknown_2022D08 -_0814C578: .4byte gUnknown_2023D08 -_0814C57C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C594 - adds r0, r0, r1 - ldr r1, _0814C598 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #1 - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C594: .4byte gUnknown_2024190 -_0814C598: .4byte gUnknown_2023D08 -_0814C59C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C5B4 - adds r0, r0, r1 - ldr r1, _0814C5B8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x19 - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C5B4: .4byte gUnknown_2024190 -_0814C5B8: .4byte gUnknown_2023D08 -_0814C5BC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C5D4 - adds r0, r0, r1 - ldr r1, _0814C5D8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x1a - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C5D4: .4byte gUnknown_2024190 -_0814C5D8: .4byte gUnknown_2023D08 -_0814C5DC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C5F4 - adds r0, r0, r1 - ldr r1, _0814C5F8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x1b - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C5F4: .4byte gUnknown_2024190 -_0814C5F8: .4byte gUnknown_2023D08 -_0814C5FC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C614 - adds r0, r0, r1 - ldr r1, _0814C618 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x1c - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C614: .4byte gUnknown_2024190 -_0814C618: .4byte gUnknown_2023D08 -_0814C61C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C634 - adds r0, r0, r1 - ldr r1, _0814C638 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x1d - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C634: .4byte gUnknown_2024190 -_0814C638: .4byte gUnknown_2023D08 -_0814C63C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C654 - adds r0, r0, r1 - ldr r1, _0814C658 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x1e - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C654: .4byte gUnknown_2024190 -_0814C658: .4byte gUnknown_2023D08 -_0814C65C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C674 - adds r0, r0, r1 - ldr r1, _0814C678 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x1f - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C674: .4byte gUnknown_2024190 -_0814C678: .4byte gUnknown_2023D08 -_0814C67C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C694 - adds r0, r0, r1 - ldr r1, _0814C698 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x20 - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C694: .4byte gUnknown_2024190 -_0814C698: .4byte gUnknown_2023D08 -_0814C69C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C6B4 - adds r0, r0, r1 - ldr r1, _0814C6B8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x22 - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C6B4: .4byte gUnknown_2024190 -_0814C6B8: .4byte gUnknown_2023D08 -_0814C6BC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C6D4 - adds r0, r0, r1 - ldr r1, _0814C6D8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x23 - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C6D4: .4byte gUnknown_2024190 -_0814C6D8: .4byte gUnknown_2023D08 -_0814C6DC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C6F4 - adds r0, r0, r1 - ldr r1, _0814C6F8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x24 - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C6F4: .4byte gUnknown_2024190 -_0814C6F8: .4byte gUnknown_2023D08 -_0814C6FC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C714 - adds r0, r0, r1 - ldr r1, _0814C718 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x25 - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C714: .4byte gUnknown_2024190 -_0814C718: .4byte gUnknown_2023D08 -_0814C71C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C734 - adds r0, r0, r1 - ldr r1, _0814C738 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x26 - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C734: .4byte gUnknown_2024190 -_0814C738: .4byte gUnknown_2023D08 -_0814C73C: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _0814C7A4 - adds r4, r4, r0 - ldr r5, _0814C7A8 - ldrb r2, [r5] - lsls r2, r2, #9 - adds r2, r2, r7 - adds r0, r4, #0 - movs r1, #0x27 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #1 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x28 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #2 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x29 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #3 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x2a - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #4 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x2b - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #5 - adds r2, r2, r0 - adds r0, r4, #0 - b _0814C85C - .align 2, 0 -_0814C7A4: .4byte gUnknown_2024190 -_0814C7A8: .4byte gUnknown_2023D08 -_0814C7AC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C7C4 - adds r0, r0, r1 - ldr r1, _0814C7C8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x27 - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C7C4: .4byte gUnknown_2024190 -_0814C7C8: .4byte gUnknown_2023D08 -_0814C7CC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C7E4 - adds r0, r0, r1 - ldr r1, _0814C7E8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x28 - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C7E4: .4byte gUnknown_2024190 -_0814C7E8: .4byte gUnknown_2023D08 -_0814C7EC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C804 - adds r0, r0, r1 - ldr r1, _0814C808 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x29 - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C804: .4byte gUnknown_2024190 -_0814C808: .4byte gUnknown_2023D08 -_0814C80C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C824 - adds r0, r0, r1 - ldr r1, _0814C828 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x2a - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C824: .4byte gUnknown_2024190 -_0814C828: .4byte gUnknown_2023D08 -_0814C82C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C844 - adds r0, r0, r1 - ldr r1, _0814C848 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x2b - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C844: .4byte gUnknown_2024190 -_0814C848: .4byte gUnknown_2023D08 -_0814C84C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C864 - adds r0, r0, r1 - ldr r1, _0814C868 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 -_0814C85C: - movs r1, #0x2c - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C864: .4byte gUnknown_2024190 -_0814C868: .4byte gUnknown_2023D08 -_0814C86C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C884 - adds r0, r0, r1 - ldr r1, _0814C888 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0 - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C884: .4byte gUnknown_2024190 -_0814C888: .4byte gUnknown_2023D08 -_0814C88C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C8A4 - adds r0, r0, r1 - ldr r1, _0814C8A8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #9 - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C8A4: .4byte gUnknown_2024190 -_0814C8A8: .4byte gUnknown_2023D08 -_0814C8AC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C8C4 - adds r0, r0, r1 - ldr r1, _0814C8C8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x37 - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C8C4: .4byte gUnknown_2024190 -_0814C8C8: .4byte gUnknown_2023D08 -_0814C8CC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C8E4 - adds r0, r0, r1 - ldr r1, _0814C8E8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x38 - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C8E4: .4byte gUnknown_2024190 -_0814C8E8: .4byte gUnknown_2023D08 -_0814C8EC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C904 - adds r0, r0, r1 - ldr r1, _0814C908 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x39 - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C904: .4byte gUnknown_2024190 -_0814C908: .4byte gUnknown_2023D08 -_0814C90C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C924 - adds r0, r0, r1 - ldr r1, _0814C928 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x3a - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C924: .4byte gUnknown_2024190 -_0814C928: .4byte gUnknown_2023D08 -_0814C92C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C944 - adds r0, r0, r1 - ldr r1, _0814C948 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x3b - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C944: .4byte gUnknown_2024190 -_0814C948: .4byte gUnknown_2023D08 -_0814C94C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C964 - adds r0, r0, r1 - ldr r1, _0814C968 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x3c - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C964: .4byte gUnknown_2024190 -_0814C968: .4byte gUnknown_2023D08 -_0814C96C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C984 - adds r0, r0, r1 - ldr r1, _0814C988 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x3d - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C984: .4byte gUnknown_2024190 -_0814C988: .4byte gUnknown_2023D08 -_0814C98C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C9A4 - adds r0, r0, r1 - ldr r1, _0814C9A8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x3e - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C9A4: .4byte gUnknown_2024190 -_0814C9A8: .4byte gUnknown_2023D08 -_0814C9AC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C9C4 - adds r0, r0, r1 - ldr r1, _0814C9C8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x3f - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C9C4: .4byte gUnknown_2024190 -_0814C9C8: .4byte gUnknown_2023D08 -_0814C9CC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814C9E4 - adds r0, r0, r1 - ldr r1, _0814C9E8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x16 - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814C9E4: .4byte gUnknown_2024190 -_0814C9E8: .4byte gUnknown_2023D08 -_0814C9EC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814CA04 - adds r0, r0, r1 - ldr r1, _0814CA08 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x17 - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814CA04: .4byte gUnknown_2024190 -_0814CA08: .4byte gUnknown_2023D08 -_0814CA0C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814CA24 - adds r0, r0, r1 - ldr r1, _0814CA28 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x18 - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814CA24: .4byte gUnknown_2024190 -_0814CA28: .4byte gUnknown_2023D08 -_0814CA2C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814CA44 - adds r0, r0, r1 - ldr r1, _0814CA48 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x21 - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814CA44: .4byte gUnknown_2024190 -_0814CA48: .4byte gUnknown_2023D08 -_0814CA4C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814CA64 - adds r0, r0, r1 - ldr r1, _0814CA68 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x2f - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814CA64: .4byte gUnknown_2024190 -_0814CA68: .4byte gUnknown_2023D08 -_0814CA6C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814CA84 - adds r0, r0, r1 - ldr r1, _0814CA88 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x30 - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814CA84: .4byte gUnknown_2024190 -_0814CA88: .4byte gUnknown_2023D08 -_0814CA8C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814CAA4 - adds r0, r0, r1 - ldr r1, _0814CAA8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x32 - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814CAA4: .4byte gUnknown_2024190 -_0814CAA8: .4byte gUnknown_2023D08 -_0814CAAC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814CAC4 - adds r0, r0, r1 - ldr r1, _0814CAC8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x33 - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814CAC4: .4byte gUnknown_2024190 -_0814CAC8: .4byte gUnknown_2023D08 -_0814CACC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814CAE4 - adds r0, r0, r1 - ldr r1, _0814CAE8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x34 - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814CAE4: .4byte gUnknown_2024190 -_0814CAE8: .4byte gUnknown_2023D08 -_0814CAEC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814CB04 - adds r0, r0, r1 - ldr r1, _0814CB08 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x35 - bl SetMonData - b _0814CB22 - .align 2, 0 -_0814CB04: .4byte gUnknown_2024190 -_0814CB08: .4byte gUnknown_2023D08 -_0814CB0C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0814CB4C - adds r0, r0, r1 - ldr r1, _0814CB50 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x36 - bl SetMonData -_0814CB22: - ldr r2, _0814CB54 - ldr r0, _0814CB50 - ldrb r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r2, [r0] - movs r0, #0x64 - muls r0, r2, r0 - ldr r2, _0814CB4C - adds r0, r0, r2 - bl HandleLowHpMusicChange - add sp, #0x34 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0814CB4C: .4byte gUnknown_2024190 -_0814CB50: .4byte gUnknown_2023D08 -_0814CB54: .4byte gUnknown_2023D12 - thumb_func_end SetLinkPartnerMonData - - thumb_func_start sub_0814CB58 -sub_0814CB58: @ 0x0814CB58 - push {r4, r5, r6, r7, lr} - ldr r1, _0814CBBC - ldr r7, _0814CBC0 - ldrb r2, [r7] - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - adds r3, r1, #0 - muls r3, r0, r3 - ldr r4, _0814CBC4 - lsls r2, r2, #9 - adds r0, r4, #1 - adds r0, r2, r0 - ldrb r0, [r0] - ldr r1, _0814CBC8 - adds r0, r0, r1 - adds r5, r3, r0 - movs r3, #0 - adds r0, r4, #2 - adds r2, r2, r0 - ldrb r2, [r2] - cmp r3, r2 - bhs _0814CBB0 - adds r6, r4, #0 - adds r2, r7, #0 - adds r4, r0, #0 -_0814CB8E: - adds r1, r5, r3 - ldrb r0, [r2] - lsls r0, r0, #9 - adds r0, #3 - adds r0, r3, r0 - adds r0, r0, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldrb r0, [r2] - lsls r0, r0, #9 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r3, r0 - blo _0814CB8E -_0814CBB0: - bl LinkPartnerBufferExecCompleted - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0814CBBC: .4byte gUnknown_2023D12 -_0814CBC0: .4byte gUnknown_2023D08 -_0814CBC4: .4byte gUnknown_2022D08 -_0814CBC8: .4byte gUnknown_2024190 - thumb_func_end sub_0814CB58 - - thumb_func_start LinkPartnerHandleLoadMonSprite -LinkPartnerHandleLoadMonSprite: @ 0x0814CBCC - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - ldr r0, _0814CCC0 - mov r8, r0 - ldr r6, _0814CCC4 - ldrb r1, [r6] - lsls r0, r1, #1 - add r0, r8 - ldrh r0, [r0] - movs r5, #0x64 - muls r0, r5, r0 - ldr r4, _0814CCC8 - adds r0, r0, r4 - bl BattleLoadPlayerMonSpriteGfx - ldrb r0, [r6] - lsls r0, r0, #1 - add r0, r8 - ldrh r0, [r0] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #0xb - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldrb r0, [r6] - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl SetMultiuseSpriteTemplateToPokemon - ldr r0, _0814CCCC - mov r8, r0 - ldrb r0, [r6] - movs r1, #2 - bl GetBattlerSpriteCoord - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldrb r0, [r6] - bl GetBattlerSpriteDefault_Y - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldrb r0, [r6] - bl GetBattlerSpriteSubpriority - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r0, r8 - adds r1, r5, #0 - adds r2, r4, #0 - bl CreateSprite - ldr r4, _0814CCD0 - ldrb r1, [r6] - adds r1, r1, r4 - strb r0, [r1] - ldr r5, _0814CCD4 - ldrb r0, [r6] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _0814CCD8 - strh r1, [r0, #0x24] - ldrb r2, [r6] - adds r0, r2, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r2, [r0, #0x2e] - ldrb r3, [r6] - adds r0, r3, r4 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - lsls r3, r3, #4 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #5] - ldrb r2, [r6] - adds r4, r2, r4 - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _0814CCDC - adds r2, r2, r1 - ldrb r1, [r2] - bl StartSpriteAnim - ldr r1, _0814CCE0 - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0814CCE4 - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0814CCC0: .4byte gUnknown_2023D12 -_0814CCC4: .4byte gUnknown_2023D08 -_0814CCC8: .4byte gUnknown_2024190 -_0814CCCC: .4byte gUnknown_2024640 -_0814CCD0: .4byte gUnknown_2023E88 -_0814CCD4: .4byte gUnknown_20205AC -_0814CCD8: .4byte 0x0000FF10 -_0814CCDC: .4byte gUnknown_2024188 -_0814CCE0: .4byte gUnknown_3005AC0 -_0814CCE4: .4byte sub_0814B350 - thumb_func_end LinkPartnerHandleLoadMonSprite - - thumb_func_start sub_0814CCE8 -sub_0814CCE8: @ 0x0814CCE8 - push {r4, r5, r6, lr} - ldr r5, _0814CD40 - ldrb r0, [r5] - ldr r4, _0814CD44 - lsls r1, r0, #9 - adds r6, r4, #2 - adds r1, r1, r6 - ldrb r1, [r1] - bl ClearTemporarySpeciesSpriteData - ldr r2, _0814CD48 - ldrb r0, [r5] - lsls r1, r0, #1 - adds r1, r1, r2 - lsls r0, r0, #9 - adds r4, #1 - adds r0, r0, r4 - ldrb r0, [r0] - strh r0, [r1] - ldrb r1, [r5] - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r2, [r0] - movs r0, #0x64 - muls r0, r2, r0 - ldr r2, _0814CD4C - adds r0, r0, r2 - bl BattleLoadPlayerMonSpriteGfx - ldrb r0, [r5] - lsls r1, r0, #9 - adds r1, r1, r6 - ldrb r1, [r1] - bl sub_0814CD58 - ldr r1, _0814CD50 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0814CD54 - str r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0814CD40: .4byte gUnknown_2023D08 -_0814CD44: .4byte gUnknown_2022D08 -_0814CD48: .4byte gUnknown_2023D12 -_0814CD4C: .4byte gUnknown_2024190 -_0814CD50: .4byte gUnknown_3005AC0 -_0814CD54: .4byte sub_0814B75C - thumb_func_end sub_0814CCE8 - - thumb_func_start sub_0814CD58 -sub_0814CD58: @ 0x0814CD58 - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r6, #0 - bl ClearTemporarySpeciesSpriteData - ldr r0, _0814CEAC - lsls r2, r6, #1 - adds r2, r2, r0 - ldr r0, _0814CEB0 - lsls r1, r6, #9 - adds r0, #1 - adds r1, r1, r0 - ldrb r0, [r1] - strh r0, [r2] - ldrh r1, [r2] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0814CEB4 - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - mov r8, r0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - ldr r0, _0814CEB8 - bl CreateInvisibleSpriteWithCallback - ldr r1, _0814CEBC - mov sb, r1 - add sb, r6 - mov r1, sb - strb r0, [r1] - adds r0, r6, #0 - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r0, r8 - bl SetMultiuseSpriteTemplateToPokemon - ldr r0, _0814CEC0 - mov sl, r0 - adds r0, r6, #0 - movs r1, #2 - bl GetBattlerSpriteCoord - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - adds r0, r6, #0 - bl GetBattlerSpriteDefault_Y - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r6, #0 - bl GetBattlerSpriteSubpriority - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r0, sl - adds r1, r5, #0 - adds r2, r4, #0 - bl CreateSprite - ldr r4, _0814CEC4 - adds r4, r6, r4 - strb r0, [r4] - ldr r5, _0814CEC8 - mov r0, sb - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r1, [r4] - strh r1, [r0, #0x30] - mov r0, sb - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r6, [r0, #0x32] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r6, [r0, #0x2e] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - mov r1, r8 - strh r1, [r0, #0x32] - ldrb r0, [r4] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - lsls r3, r6, #4 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #5] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _0814CECC - adds r6, r6, r1 - ldrb r1, [r6] - bl StartSpriteAnim - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r5, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _0814CED0 - str r1, [r0] - movs r0, #0 - movs r1, #0xff - bl DoPokeballSendOutAnimation - mov r1, sb - ldrb r2, [r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r1, #0x2e] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0814CEAC: .4byte gUnknown_2023D12 -_0814CEB0: .4byte gUnknown_2022D08 -_0814CEB4: .4byte gUnknown_2024190 -_0814CEB8: .4byte sub_0805D330 -_0814CEBC: .4byte gUnknown_3005ADC -_0814CEC0: .4byte gUnknown_2024640 -_0814CEC4: .4byte gUnknown_2023E88 -_0814CEC8: .4byte gUnknown_20205AC -_0814CECC: .4byte gUnknown_2024188 -_0814CED0: .4byte sub_08007140 - thumb_func_end sub_0814CD58 - - thumb_func_start LinkPartnerHandleReturnMonToBall -LinkPartnerHandleReturnMonToBall: @ 0x0814CED4 - push {r4, r5, r6, lr} - ldr r1, _0814CF08 - ldr r6, _0814CF0C - ldrb r2, [r6] - lsls r0, r2, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r3, [r0] - cmp r3, #0 - bne _0814CF1C - ldr r0, _0814CF10 - ldr r0, [r0] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - strb r3, [r0, #4] - ldr r1, _0814CF14 - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0814CF18 - str r1, [r0] - b _0814CF52 - .align 2, 0 -_0814CF08: .4byte gUnknown_2022D08 -_0814CF0C: .4byte gUnknown_2023D08 -_0814CF10: .4byte gUnknown_2024174 -_0814CF14: .4byte gUnknown_3005AC0 -_0814CF18: .4byte sub_0814CF64 -_0814CF1C: - ldr r5, _0814CF58 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _0814CF5C - adds r0, r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - ldr r1, _0814CF60 - ldrb r0, [r6] - adds r0, r0, r1 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible - bl LinkPartnerBufferExecCompleted -_0814CF52: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0814CF58: .4byte gUnknown_2023E88 -_0814CF5C: .4byte gUnknown_20205AC -_0814CF60: .4byte gUnknown_3005AD0 - thumb_func_end LinkPartnerHandleReturnMonToBall - - thumb_func_start sub_0814CF64 -sub_0814CF64: @ 0x0814CF64 - push {r4, r5, r6, lr} - ldr r6, _0814CF84 - ldr r4, [r6] - ldr r5, _0814CF88 - ldrb r2, [r5] - ldr r1, [r4, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r3, r0, r1 - ldrb r0, [r3, #4] - cmp r0, #0 - beq _0814CF8C - cmp r0, #1 - beq _0814CFBA - b _0814CFE2 - .align 2, 0 -_0814CF84: .4byte gUnknown_2024174 -_0814CF88: .4byte gUnknown_2023D08 -_0814CF8C: - ldr r1, [r4] - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0814CFA6 - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #5 - bl InitAndLaunchSpecialAnimation -_0814CFA6: - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #1 - strb r1, [r0, #4] - b _0814CFE2 -_0814CFBA: - ldrb r1, [r3] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0814CFE2 - strb r0, [r3, #4] - ldrb r2, [r5] - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #1 - bl InitAndLaunchSpecialAnimation - ldr r1, _0814CFE8 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0814CFEC - str r1, [r0] -_0814CFE2: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0814CFE8: .4byte gUnknown_3005AC0 -_0814CFEC: .4byte sub_0814B49C - thumb_func_end sub_0814CF64 - - thumb_func_start LinkPartnerHandleDrawTrainerPic -LinkPartnerHandleDrawTrainerPic: @ 0x0814CFF0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _0814D018 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0814D020 - ldr r0, _0814D01C - ldrb r0, [r0] - bl sub_080A630C - movs r1, #2 - ands r1, r0 - movs r7, #0x20 - cmp r1, #0 - beq _0814D022 - movs r7, #0x5a - b _0814D022 - .align 2, 0 -_0814D018: .4byte gUnknown_2022C90 -_0814D01C: .4byte gUnknown_2023D08 -_0814D020: - movs r7, #0x50 -_0814D022: - ldr r5, _0814D068 - ldrb r0, [r5] - bl GetBattlerMultiplayerId - ldr r6, _0814D06C - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - movs r4, #0xff - ldrb r0, [r1] - cmp r0, #4 - beq _0814D054 - ldrb r0, [r5] - bl GetBattlerMultiplayerId - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrh r1, [r1] - adds r0, r4, #0 - ands r0, r1 - cmp r0, #5 - bne _0814D070 -_0814D054: - ldrb r0, [r5] - bl GetBattlerMultiplayerId - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrb r0, [r1, #0x13] - adds r4, r0, #2 - b _0814D0C2 - .align 2, 0 -_0814D068: .4byte gUnknown_2023D08 -_0814D06C: .4byte gUnknown_20226A0 -_0814D070: - ldrb r0, [r5] - bl GetBattlerMultiplayerId - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrh r1, [r1] - adds r0, r4, #0 - ands r0, r1 - cmp r0, #2 - beq _0814D09E - ldrb r0, [r5] - bl GetBattlerMultiplayerId - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrh r0, [r1] - ands r4, r0 - cmp r4, #1 - bne _0814D0B2 -_0814D09E: - ldrb r0, [r5] - bl GetBattlerMultiplayerId - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrb r0, [r1, #0x13] - adds r4, r0, #4 - b _0814D0C2 -_0814D0B2: - ldrb r0, [r5] - bl GetBattlerMultiplayerId - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrb r4, [r1, #0x13] -_0814D0C2: - ldr r5, _0814D180 - ldrb r1, [r5] - adds r0, r4, #0 - bl DecompressTrainerBackPic - ldrb r0, [r5] - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl SetMultiuseSpriteTemplateToTrainerBack - ldr r6, _0814D184 - mov r8, r7 - ldr r0, _0814D188 - lsls r4, r4, #2 - adds r4, r4, r0 - ldrb r0, [r4] - movs r4, #8 - subs r4, r4, r0 - lsls r4, r4, #0x12 - movs r0, #0xa0 - lsls r0, r0, #0xf - adds r4, r4, r0 - asrs r4, r4, #0x10 - ldrb r0, [r5] - bl GetBattlerSpriteSubpriority - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r6, #0 - mov r1, r8 - adds r2, r4, #0 - bl CreateSprite - ldr r6, _0814D18C - ldrb r1, [r5] - adds r1, r1, r6 - strb r0, [r1] - ldr r4, _0814D190 - ldrb r3, [r5] - adds r0, r3, r6 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - lsls r3, r3, #4 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #5] - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0xf0 - strh r1, [r0, #0x24] - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _0814D194 - strh r1, [r0, #0x2e] - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, #0x1c - adds r0, r0, r4 - ldr r1, _0814D198 - str r1, [r0] - ldr r1, _0814D19C - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0814D1A0 - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0814D180: .4byte gUnknown_2023D08 -_0814D184: .4byte gUnknown_2024640 -_0814D188: .4byte gUnknown_82D95BC -_0814D18C: .4byte gUnknown_2023E88 -_0814D190: .4byte gUnknown_20205AC -_0814D194: .4byte 0x0000FFFE -_0814D198: .4byte sub_0805D3C8 -_0814D19C: .4byte gUnknown_3005AC0 -_0814D1A0: .4byte sub_0814AFDC - thumb_func_end LinkPartnerHandleDrawTrainerPic - - thumb_func_start LinkPartnerHandleTrainerSlide -LinkPartnerHandleTrainerSlide: @ 0x0814D1A4 - push {lr} - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkPartnerHandleTrainerSlide - - thumb_func_start LinkPartnerHandleTrainerSlideBack -LinkPartnerHandleTrainerSlideBack: @ 0x0814D1B0 - push {r4, r5, r6, lr} - ldr r6, _0814D23C - ldr r4, _0814D240 - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r5, _0814D244 - adds r0, r0, r5 - bl SetSpritePrimaryCoordsFromSecondaryCoords - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0x23 - strh r1, [r0, #0x2e] - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _0814D248 - strh r1, [r0, #0x32] - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrh r1, [r0, #0x22] - strh r1, [r0, #0x36] - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r5, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _0814D24C - str r1, [r0] - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _0814D250 - bl StoreSpriteCallbackInData6 - ldr r1, _0814D254 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0814D258 - str r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0814D23C: .4byte gUnknown_2023E88 -_0814D240: .4byte gUnknown_2023D08 -_0814D244: .4byte gUnknown_20205AC -_0814D248: .4byte 0x0000FFD8 -_0814D24C: .4byte sub_080A67B4 -_0814D250: .4byte sub_08007140 -_0814D254: .4byte gUnknown_3005AC0 -_0814D258: .4byte sub_0814B014 - thumb_func_end LinkPartnerHandleTrainerSlideBack - - thumb_func_start sub_0814D25C -sub_0814D25C: @ 0x0814D25C - push {r4, r5, r6, lr} - ldr r6, _0814D2A8 - ldr r4, [r6] - ldr r5, _0814D2AC - ldrb r2, [r5] - ldr r0, [r4, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r3, r1, r0 - ldrb r0, [r3, #4] - cmp r0, #0 - bne _0814D2B0 - ldr r1, [r4] - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0814D290 - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #5 - bl InitAndLaunchSpecialAnimation -_0814D290: - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #4] - adds r1, #1 - strb r1, [r0, #4] - b _0814D326 - .align 2, 0 -_0814D2A8: .4byte gUnknown_2024174 -_0814D2AC: .4byte gUnknown_2023D08 -_0814D2B0: - ldrb r1, [r3] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _0814D326 - strb r4, [r3, #4] - ldr r2, _0814D32C - ldrb r1, [r5] - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r2, [r0] - movs r0, #0x64 - muls r0, r2, r0 - ldr r2, _0814D330 - adds r0, r0, r2 - bl HandleLowHpMusicChange - movs r1, #0x40 - rsbs r1, r1, #0 - movs r0, #0x10 - bl PlaySE12WithPanning - ldr r2, _0814D334 - ldr r3, _0814D338 - ldrb r0, [r5] - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r4, [r0, #0x30] - ldrb r0, [r5] - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #5 - strh r1, [r0, #0x32] - ldrb r0, [r5] - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, _0814D33C - str r1, [r0] - ldr r1, _0814D340 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0814D344 - str r1, [r0] -_0814D326: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0814D32C: .4byte gUnknown_2023D12 -_0814D330: .4byte gUnknown_2024190 -_0814D334: .4byte gUnknown_20205AC -_0814D338: .4byte gUnknown_2023E88 -_0814D33C: .4byte sub_08039844 -_0814D340: .4byte gUnknown_3005AC0 -_0814D344: .4byte sub_0814B400 - thumb_func_end sub_0814D25C - - thumb_func_start LinkPartnerHandlePaletteFade -LinkPartnerHandlePaletteFade: @ 0x0814D348 - push {lr} - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkPartnerHandlePaletteFade - - thumb_func_start LinkPartnerHandleSuccessBallThrowAnim -LinkPartnerHandleSuccessBallThrowAnim: @ 0x0814D354 - push {lr} - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkPartnerHandleSuccessBallThrowAnim - - thumb_func_start LinkPartnerHandleBallThrowAnim -LinkPartnerHandleBallThrowAnim: @ 0x0814D360 - push {lr} - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkPartnerHandleBallThrowAnim - - thumb_func_start LinkPartnerHandlePause -LinkPartnerHandlePause: @ 0x0814D36C - push {lr} - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkPartnerHandlePause - - thumb_func_start sub_0814D378 -sub_0814D378: @ 0x0814D378 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r5, _0814D468 - ldrb r0, [r5] - bl mplay_80342A4 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0814D38E - b _0814D4B4 -_0814D38E: - ldr r0, _0814D46C - mov ip, r0 - ldrb r1, [r5] - lsls r1, r1, #9 - adds r0, #1 - adds r0, r1, r0 - ldrb r6, [r0] - mov r0, ip - adds r0, #2 - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, r0, #8 - orrs r6, r0 - ldr r0, _0814D470 - mov r8, r0 - mov r0, ip - adds r0, #3 - adds r1, r1, r0 - ldrb r0, [r1] - mov r1, r8 - strb r0, [r1] - ldr r3, _0814D474 - ldrb r1, [r5] - lsls r1, r1, #9 - mov r0, ip - adds r0, #4 - adds r0, r1, r0 - ldrb r2, [r0] - mov r0, ip - adds r0, #5 - adds r1, r1, r0 - ldrb r0, [r1] - lsls r0, r0, #8 - orrs r2, r0 - strh r2, [r3] - ldr r3, _0814D478 - ldrb r1, [r5] - lsls r1, r1, #9 - mov r0, ip - adds r0, #6 - adds r0, r1, r0 - ldrb r2, [r0] - mov r0, ip - adds r0, #7 - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, r0, #8 - orrs r2, r0 - mov r0, ip - adds r0, #8 - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, r0, #0x10 - orrs r2, r0 - mov r0, ip - adds r0, #9 - adds r1, r1, r0 - ldrb r0, [r1] - lsls r0, r0, #0x18 - orrs r2, r0 - str r2, [r3] - ldr r2, _0814D47C - ldrb r0, [r5] - lsls r0, r0, #9 - mov r1, ip - adds r1, #0xa - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r4, _0814D480 - ldrb r1, [r5] - lsls r1, r1, #9 - mov r0, ip - adds r0, #0xc - adds r0, r1, r0 - ldrb r2, [r0] - mov r0, ip - adds r0, #0xd - adds r1, r1, r0 - ldrb r0, [r1] - lsls r0, r0, #8 - orrs r2, r0 - strh r2, [r4] - ldr r7, _0814D484 - ldrb r1, [r5] - lsls r1, r1, #9 - mov r0, ip - adds r0, #0x10 - adds r1, r1, r0 - str r1, [r7] - ldr r2, _0814D488 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, [r1] - str r1, [r0] - mov r0, r8 - ldrb r1, [r0] - adds r0, r6, #0 - bl sub_0805D7A8 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - beq _0814D48C - bl LinkPartnerBufferExecCompleted - b _0814D4B4 - .align 2, 0 -_0814D468: .4byte gUnknown_2023D08 -_0814D46C: .4byte gUnknown_2022D08 -_0814D470: .4byte gUnknown_20380D2 -_0814D474: .4byte gUnknown_20380A8 -_0814D478: .4byte gUnknown_20380A4 -_0814D47C: .4byte gUnknown_20380BA -_0814D480: .4byte gUnknown_20380BC -_0814D484: .4byte gUnknown_20380A0 -_0814D488: .4byte gUnknown_2024160 -_0814D48C: - ldr r0, _0814D4C0 - ldr r0, [r0] - ldrb r1, [r5] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strb r3, [r0, #4] - ldr r1, _0814D4C4 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0814D4C8 - str r1, [r0] - ldrh r1, [r4] - ldr r2, [r7] - adds r0, r6, #0 - bl BattleTv_SetDataBasedOnMove -_0814D4B4: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0814D4C0: .4byte gUnknown_2024174 -_0814D4C4: .4byte gUnknown_3005AC0 -_0814D4C8: .4byte sub_0814D4CC - thumb_func_end sub_0814D378 - - thumb_func_start sub_0814D4CC -sub_0814D4CC: @ 0x0814D4CC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r2, _0814D518 - ldr r6, _0814D51C - ldrb r3, [r6] - lsls r1, r3, #9 - adds r0, r2, #1 - mov sl, r0 - adds r0, r1, r0 - ldrb r4, [r0] - adds r5, r2, #2 - mov sb, r5 - adds r0, r1, r5 - ldrb r0, [r0] - lsls r0, r0, #8 - orrs r4, r0 - adds r2, #0xb - adds r1, r1, r2 - ldrb r1, [r1] - mov r8, r1 - ldr r7, _0814D520 - ldr r5, [r7] - ldr r1, [r5, #4] - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r2, [r0, #4] - cmp r2, #1 - beq _0814D564 - cmp r2, #1 - bgt _0814D524 - cmp r2, #0 - beq _0814D52E - b _0814D640 - .align 2, 0 -_0814D518: .4byte gUnknown_2022D08 -_0814D51C: .4byte gUnknown_2023D08 -_0814D520: .4byte gUnknown_2024174 -_0814D524: - cmp r2, #2 - beq _0814D58E - cmp r2, #3 - beq _0814D604 - b _0814D640 -_0814D52E: - ldr r1, [r5] - lsls r0, r3, #2 - adds r1, r0, r1 - ldrb r2, [r1] - movs r0, #0xc - ands r0, r2 - cmp r0, #4 - bne _0814D550 - movs r0, #8 - orrs r0, r2 - strb r0, [r1] - ldrb r2, [r6] - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #5 - bl InitAndLaunchSpecialAnimation -_0814D550: - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #1 - strb r1, [r0, #4] - b _0814D640 -_0814D564: - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _0814D640 - movs r0, #0 - bl sub_0805E7B8 - adds r0, r4, #0 - bl DoMoveAnim - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #2 - strb r1, [r0, #4] - b _0814D640 -_0814D58E: - ldr r0, _0814D5F4 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _0814D5F8 - ldrb r0, [r0] - cmp r0, #0 - bne _0814D640 - movs r0, #1 - bl sub_0805E7B8 - ldr r0, [r7] - ldrb r2, [r6] - ldr r1, [r0] - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0814D5DC - mov r0, r8 - cmp r0, #1 - bhi _0814D5DC - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #6 - bl InitAndLaunchSpecialAnimation - ldr r0, [r7] - ldrb r1, [r6] - ldr r0, [r0] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] -_0814D5DC: - ldr r0, _0814D5FC - ldr r2, [r0] - ldr r0, _0814D600 - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #3 - strb r1, [r0, #4] - b _0814D640 - .align 2, 0 -_0814D5F4: .4byte gUnknown_2038098 -_0814D5F8: .4byte gUnknown_203809D -_0814D5FC: .4byte gUnknown_2024174 -_0814D600: .4byte gUnknown_2023D08 -_0814D604: - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _0814D640 - bl CopyAllBattleSpritesInvisibilities - ldrb r0, [r6] - lsls r2, r0, #9 - mov r3, sl - adds r1, r2, r3 - ldrb r1, [r1] - add r2, sb - ldrb r2, [r2] - lsls r2, r2, #8 - orrs r1, r2 - bl TrySetBehindSubstituteSpriteBit - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strb r4, [r0, #4] - bl LinkPartnerBufferExecCompleted -_0814D640: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0814D4CC - - thumb_func_start LinkPartnerHandlePrintString -LinkPartnerHandlePrintString: @ 0x0814D650 - push {r4, r5, lr} - ldr r0, _0814D68C - movs r1, #0 - strh r1, [r0] - ldr r0, _0814D690 - strh r1, [r0] - ldr r5, _0814D694 - ldrb r4, [r5] - lsls r4, r4, #9 - ldr r0, _0814D698 - adds r4, r4, r0 - ldrh r0, [r4] - bl PrintOnTrainerHillRecordsWindow - ldr r0, _0814D69C - movs r1, #0 - bl sub_0814FA04 - ldr r1, _0814D6A0 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0814D6A4 - str r1, [r0] - ldrh r0, [r4] - bl BattleTv_SetDataBasedOnString - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0814D68C: .4byte gUnknown_2022AC8 -_0814D690: .4byte gUnknown_2022ACA -_0814D694: .4byte gUnknown_2023D08 -_0814D698: .4byte gUnknown_2022D0A -_0814D69C: .4byte gUnknown_2022AE0 -_0814D6A0: .4byte gUnknown_3005AC0 -_0814D6A4: .4byte sub_0814B50C - thumb_func_end LinkPartnerHandlePrintString - - thumb_func_start LinkPartnerHandlePrintSelectionString -LinkPartnerHandlePrintSelectionString: @ 0x0814D6A8 - push {lr} - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkPartnerHandlePrintSelectionString - - thumb_func_start LinkPartnerHandleChooseAction -LinkPartnerHandleChooseAction: @ 0x0814D6B4 - push {lr} - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkPartnerHandleChooseAction - - thumb_func_start sub_0814D6C0 -sub_0814D6C0: @ 0x0814D6C0 - push {lr} - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0814D6C0 - - thumb_func_start sub_0814D6CC -sub_0814D6CC: @ 0x0814D6CC - push {lr} - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0814D6CC - - thumb_func_start LinkPartnerHandleChooseItem -LinkPartnerHandleChooseItem: @ 0x0814D6D8 - push {lr} - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkPartnerHandleChooseItem - - thumb_func_start LinkPartnerHandleChoosePokemon -LinkPartnerHandleChoosePokemon: @ 0x0814D6E4 - push {lr} - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkPartnerHandleChoosePokemon - - thumb_func_start LinkPartnerHandleCmd23 -LinkPartnerHandleCmd23: @ 0x0814D6F0 - push {lr} - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkPartnerHandleCmd23 - - thumb_func_start LinkPartnerHandleHealthBarUpdate -LinkPartnerHandleHealthBarUpdate: @ 0x0814D6FC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - movs r0, #0 - bl LoadBattleBarGfx - ldr r3, _0814D774 - ldr r0, _0814D778 - mov sb, r0 - ldrb r4, [r0] - lsls r2, r4, #9 - adds r0, r3, #2 - adds r0, r2, r0 - ldrb r1, [r0] - adds r3, #3 - adds r2, r2, r3 - ldrb r0, [r2] - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - asrs r7, r1, #0x10 - ldr r0, _0814D77C - cmp r7, r0 - beq _0814D78C - ldr r6, _0814D780 - lsls r0, r4, #1 - adds r0, r0, r6 - ldrh r0, [r0] - movs r5, #0x64 - muls r0, r5, r0 - ldr r4, _0814D784 - adds r0, r0, r4 - movs r1, #0x3a - bl GetMonData - mov r8, r0 - mov r1, sb - ldrb r0, [r1] - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r0, [r0] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #0x39 - bl GetMonData - adds r3, r0, #0 - mov r1, sb - ldrb r0, [r1] - ldr r1, _0814D788 - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - mov r2, r8 - bl SetBattleBarStruct - b _0814D7B6 - .align 2, 0 -_0814D774: .4byte gUnknown_2022D08 -_0814D778: .4byte gUnknown_2023D08 -_0814D77C: .4byte 0x00007FFF -_0814D780: .4byte gUnknown_2023D12 -_0814D784: .4byte gUnknown_2024190 -_0814D788: .4byte gUnknown_3005AD0 -_0814D78C: - ldr r1, _0814D7D4 - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0814D7D8 - adds r0, r0, r1 - movs r1, #0x3a - bl GetMonData - adds r2, r0, #0 - mov r1, sb - ldrb r0, [r1] - ldr r1, _0814D7DC - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - movs r3, #0 - bl SetBattleBarStruct -_0814D7B6: - ldr r1, _0814D7E0 - ldr r0, _0814D7E4 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0814D7E8 - str r1, [r0] - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0814D7D4: .4byte gUnknown_2023D12 -_0814D7D8: .4byte gUnknown_2024190 -_0814D7DC: .4byte gUnknown_3005AD0 -_0814D7E0: .4byte gUnknown_3005AC0 -_0814D7E4: .4byte gUnknown_2023D08 -_0814D7E8: .4byte sub_0814B390 - thumb_func_end LinkPartnerHandleHealthBarUpdate - - thumb_func_start LinkPartnerHandleExpUpdate -LinkPartnerHandleExpUpdate: @ 0x0814D7EC - push {lr} - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkPartnerHandleExpUpdate - - thumb_func_start sub_0814D7F8 -sub_0814D7F8: @ 0x0814D7F8 - push {r4, lr} - ldr r4, _0814D854 - ldrb r0, [r4] - bl mplay_80342A4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0814D84C - ldr r0, _0814D858 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - ldr r2, _0814D85C - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _0814D860 - adds r1, r1, r2 - movs r2, #9 - bl UpdateHealthboxAttribute - ldrb r2, [r4] - ldr r0, _0814D864 - ldr r0, [r0] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r1, _0814D868 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0814D86C - str r1, [r0] -_0814D84C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814D854: .4byte gUnknown_2023D08 -_0814D858: .4byte gUnknown_3005AD0 -_0814D85C: .4byte gUnknown_2023D12 -_0814D860: .4byte gUnknown_2024190 -_0814D864: .4byte gUnknown_2024174 -_0814D868: .4byte gUnknown_3005AC0 -_0814D86C: .4byte sub_0814B878 - thumb_func_end sub_0814D7F8 - - thumb_func_start sub_0814D870 -sub_0814D870: @ 0x0814D870 - push {r4, r5, lr} - ldr r5, _0814D8C8 - ldrb r0, [r5] - bl mplay_80342A4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0814D8C0 - ldr r4, _0814D8CC - ldrb r3, [r5] - lsls r3, r3, #9 - adds r0, r4, #1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, #2 - adds r1, r3, r1 - ldrb r1, [r1] - adds r2, r4, #3 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, r2, #8 - orrs r1, r2 - adds r2, r4, #4 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, r2, #0x10 - orrs r1, r2 - adds r4, #5 - adds r3, r3, r4 - ldrb r2, [r3] - lsls r2, r2, #0x18 - orrs r1, r2 - bl InitAndLaunchChosenStatusAnimation - ldr r1, _0814D8D0 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0814D8D4 - str r1, [r0] -_0814D8C0: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0814D8C8: .4byte gUnknown_2023D08 -_0814D8CC: .4byte gUnknown_2022D08 -_0814D8D0: .4byte gUnknown_3005AC0 -_0814D8D4: .4byte sub_0814B878 - thumb_func_end sub_0814D870 - - thumb_func_start LinkPartnerHandleStatusXor -LinkPartnerHandleStatusXor: @ 0x0814D8D8 - push {lr} - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkPartnerHandleStatusXor - - thumb_func_start LinkPartnerHandleDataTransfer -LinkPartnerHandleDataTransfer: @ 0x0814D8E4 - push {lr} - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkPartnerHandleDataTransfer - - thumb_func_start LinkPartnerHandleDMA3Transfer -LinkPartnerHandleDMA3Transfer: @ 0x0814D8F0 - push {lr} - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkPartnerHandleDMA3Transfer - - thumb_func_start LinkPartnerHandlePlayBGM -LinkPartnerHandlePlayBGM: @ 0x0814D8FC - push {lr} - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkPartnerHandlePlayBGM - - thumb_func_start LinkPartnerHandleCmd32 -LinkPartnerHandleCmd32: @ 0x0814D908 - push {lr} - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkPartnerHandleCmd32 - - thumb_func_start LinkPartnerHandleTwoReturnValues -LinkPartnerHandleTwoReturnValues: @ 0x0814D914 - push {lr} - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkPartnerHandleTwoReturnValues - - thumb_func_start LinkPartnerHandleChosenMonReturnValue -LinkPartnerHandleChosenMonReturnValue: @ 0x0814D920 - push {lr} - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkPartnerHandleChosenMonReturnValue - - thumb_func_start LinkPartnerHandleOneReturnValue -LinkPartnerHandleOneReturnValue: @ 0x0814D92C - push {lr} - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkPartnerHandleOneReturnValue - - thumb_func_start LinkPartnerHandleOneReturnValue_Duplicate -LinkPartnerHandleOneReturnValue_Duplicate: @ 0x0814D938 - push {lr} - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkPartnerHandleOneReturnValue_Duplicate - - thumb_func_start LinkPartnerHandleCmd37 -LinkPartnerHandleCmd37: @ 0x0814D944 - push {lr} - ldr r2, _0814D95C - ldrb r1, [r2] - movs r0, #0x80 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_0814D95C: .4byte gUnknown_20229C0 - thumb_func_end LinkPartnerHandleCmd37 - - thumb_func_start LinkPartnerHandleCmd38 -LinkPartnerHandleCmd38: @ 0x0814D960 - push {lr} - ldr r3, _0814D98C - ldr r1, _0814D990 - ldr r0, _0814D994 - ldrb r0, [r0] - lsls r0, r0, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - ldrb r2, [r3] - movs r0, #0x80 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_0814D98C: .4byte gUnknown_20229C0 -_0814D990: .4byte gUnknown_2022D08 -_0814D994: .4byte gUnknown_2023D08 - thumb_func_end LinkPartnerHandleCmd38 - - thumb_func_start LinkPartnerHandleCmd39 -LinkPartnerHandleCmd39: @ 0x0814D998 - push {lr} - ldr r2, _0814D9AC - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_0814D9AC: .4byte gUnknown_20229C0 - thumb_func_end LinkPartnerHandleCmd39 - - thumb_func_start LinkPartnerHandleCmd40 -LinkPartnerHandleCmd40: @ 0x0814D9B0 - push {lr} - ldr r3, _0814D9D4 - ldr r1, [r3] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x1f - movs r0, #1 - eors r1, r0 - lsls r1, r1, #7 - ldrb r2, [r3] - movs r0, #0x7f - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_0814D9D4: .4byte gUnknown_20229C0 - thumb_func_end LinkPartnerHandleCmd40 - - thumb_func_start sub_0814D9D8 -sub_0814D9D8: @ 0x0814D9D8 - push {r4, lr} - ldr r3, _0814DA00 - ldr r2, _0814DA04 - ldr r4, _0814DA08 - ldrb r0, [r4] - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - bge _0814DA0C - bl LinkPartnerBufferExecCompleted - b _0814DA36 - .align 2, 0 -_0814DA00: .4byte gUnknown_20205AC -_0814DA04: .4byte gUnknown_2023E88 -_0814DA08: .4byte gUnknown_2023D08 -_0814DA0C: - ldr r1, _0814DA3C - movs r0, #1 - strb r0, [r1] - ldrb r0, [r4] - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r1, #0 - strh r1, [r0, #0x30] - ldrb r0, [r4] - bl sub_080763FC - ldr r1, _0814DA40 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0814DA44 - str r1, [r0] -_0814DA36: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814DA3C: .4byte gUnknown_202415D -_0814DA40: .4byte gUnknown_3005AC0 -_0814DA44: .4byte sub_0814B524 - thumb_func_end sub_0814D9D8 - - thumb_func_start LinkPartnerHandleCmd42 -LinkPartnerHandleCmd42: @ 0x0814DA48 - push {lr} - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkPartnerHandleCmd42 - - thumb_func_start sub_0814DA54 -sub_0814DA54: @ 0x0814DA54 - push {r4, lr} - ldr r4, _0814DA90 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - movs r3, #0x3f - cmp r0, #0 - bne _0814DA68 - movs r3, #0xc0 -_0814DA68: - ldr r2, _0814DA94 - ldrb r1, [r4] - lsls r1, r1, #9 - adds r0, r2, #1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, #2 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - lsls r1, r3, #0x18 - asrs r1, r1, #0x18 - bl PlaySE12WithPanning - bl LinkPartnerBufferExecCompleted - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814DA90: .4byte gUnknown_2023D08 -_0814DA94: .4byte gUnknown_2022D08 - thumb_func_end sub_0814DA54 - - thumb_func_start LinkPartnerHandlePlayFanfareOrBGM -LinkPartnerHandlePlayFanfareOrBGM: @ 0x0814DA98 - push {r4, r5, lr} - ldr r4, _0814DACC - ldr r5, _0814DAD0 - ldrb r0, [r5] - lsls r3, r0, #9 - adds r0, r4, #3 - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, #0 - beq _0814DAD4 - bl BattleStopLowHpSound - ldrb r1, [r5] - lsls r1, r1, #9 - adds r0, r4, #1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, r4, #2 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - bl PlayBGM - b _0814DAE8 - .align 2, 0 -_0814DACC: .4byte gUnknown_2022D08 -_0814DAD0: .4byte gUnknown_2023D08 -_0814DAD4: - adds r0, r4, #1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, #2 - adds r1, r3, r1 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - bl PlayFanfare -_0814DAE8: - bl LinkPartnerBufferExecCompleted - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkPartnerHandlePlayFanfareOrBGM - - thumb_func_start LinkPartnerHandleFaintingCry -LinkPartnerHandleFaintingCry: @ 0x0814DAF4 - push {lr} - ldr r1, _0814DB28 - ldr r0, _0814DB2C - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0814DB30 - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x19 - rsbs r1, r1, #0 - movs r2, #5 - bl PlayCry3 - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_0814DB28: .4byte gUnknown_2023D12 -_0814DB2C: .4byte gUnknown_2023D08 -_0814DB30: .4byte gUnknown_2024190 - thumb_func_end LinkPartnerHandleFaintingCry - - thumb_func_start LinkPartnerHandleIntroSlide -LinkPartnerHandleIntroSlide: @ 0x0814DB34 - push {lr} - ldr r1, _0814DB5C - ldr r0, _0814DB60 - ldrb r0, [r0] - lsls r0, r0, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - bl HandleIntroSlide - ldr r2, _0814DB64 - ldrh r0, [r2] - movs r1, #1 - orrs r0, r1 - strh r0, [r2] - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_0814DB5C: .4byte gUnknown_2022D08 -_0814DB60: .4byte gUnknown_2023D08 -_0814DB64: .4byte gUnknown_20240A0 - thumb_func_end LinkPartnerHandleIntroSlide - - thumb_func_start LinkPartnerHandleIntroTrainerBallThrow -LinkPartnerHandleIntroTrainerBallThrow: @ 0x0814DB68 - push {r4, r5, r6, r7, lr} - ldr r5, _0814DC54 - ldr r6, _0814DC58 - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _0814DC5C - adds r0, r0, r4 - bl SetSpritePrimaryCoordsFromSecondaryCoords - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0x32 - strh r1, [r0, #0x2e] - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _0814DC60 - strh r1, [r0, #0x32] - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r0, #0x22] - strh r1, [r0, #0x36] - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _0814DC64 - str r1, [r0] - ldrb r2, [r6] - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - strh r2, [r0, #0x38] - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _0814DC68 - bl StoreSpriteCallbackInData6 - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #1 - bl StartSpriteAnim - ldr r0, _0814DC6C - bl AllocSpritePalette - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldrb r0, [r6] - bl GetBattlerMultiplayerId - ldr r4, _0814DC70 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - movs r5, #0xff - ldrb r0, [r1] - cmp r0, #4 - beq _0814DC40 - ldrb r0, [r6] - bl GetBattlerMultiplayerId - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrh r1, [r1] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #5 - bne _0814DC74 -_0814DC40: - ldrb r0, [r6] - bl GetBattlerMultiplayerId - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r0, [r1, #0x13] - adds r0, #2 - b _0814DCC6 - .align 2, 0 -_0814DC54: .4byte gUnknown_2023E88 -_0814DC58: .4byte gUnknown_2023D08 -_0814DC5C: .4byte gUnknown_20205AC -_0814DC60: .4byte 0x0000FFD8 -_0814DC64: .4byte sub_080A67B4 -_0814DC68: .4byte sub_0805C81C -_0814DC6C: .4byte 0x0000D6F9 -_0814DC70: .4byte gUnknown_20226A0 -_0814DC74: - ldrb r0, [r6] - bl GetBattlerMultiplayerId - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrh r1, [r1] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #2 - beq _0814DCA2 - ldrb r0, [r6] - bl GetBattlerMultiplayerId - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrh r0, [r1] - ands r5, r0 - cmp r5, #1 - bne _0814DCB6 -_0814DCA2: - ldrb r0, [r6] - bl GetBattlerMultiplayerId - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r0, [r1, #0x13] - adds r0, #4 - b _0814DCC6 -_0814DCB6: - ldrb r0, [r6] - bl GetBattlerMultiplayerId - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r0, [r1, #0x13] -_0814DCC6: - ldr r1, _0814DD60 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r0, [r0] - lsls r4, r7, #4 - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r4, r2 - movs r2, #0x20 - bl LoadCompressedPalette - ldr r2, _0814DD64 - ldr r1, _0814DD68 - ldr r5, _0814DD6C - ldrb r0, [r5] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r4 - strb r0, [r1, #5] - ldr r0, _0814DD70 - movs r1, #5 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _0814DD74 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r4 - ldrb r0, [r5] - strh r0, [r1, #8] - ldr r3, _0814DD78 - ldr r0, [r3] - ldrb r2, [r5] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0814DD40 - ldr r0, _0814DD7C - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r4 - ldr r1, _0814DD80 - str r1, [r0] -_0814DD40: - ldr r0, [r3] - ldr r2, [r0, #8] - ldrb r0, [r2, #9] - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #9] - ldr r1, _0814DD84 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0814DD88 - str r1, [r0] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0814DD60: .4byte gUnknown_82D961C -_0814DD64: .4byte gUnknown_20205AC -_0814DD68: .4byte gUnknown_2023E88 -_0814DD6C: .4byte gUnknown_2023D08 -_0814DD70: .4byte sub_0814DD8C -_0814DD74: .4byte gUnknown_3005B60 -_0814DD78: .4byte gUnknown_2024174 -_0814DD7C: .4byte gUnknown_2024158 -_0814DD80: .4byte Task_HidePartyStatusSummary -_0814DD84: .4byte gUnknown_3005AC0 -_0814DD88: .4byte sub_0814AF6C - thumb_func_end LinkPartnerHandleIntroTrainerBallThrow - - thumb_func_start sub_0814DD8C -sub_0814DD8C: @ 0x0814DD8C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r1, _0814DDB4 - lsls r0, r0, #2 - add r0, r8 - lsls r0, r0, #3 - adds r1, r0, r1 - ldrh r2, [r1, #0xa] - movs r3, #0xa - ldrsh r0, [r1, r3] - cmp r0, #0x17 - bgt _0814DDB8 - adds r0, r2, #1 - strh r0, [r1, #0xa] - b _0814DE74 - .align 2, 0 -_0814DDB4: .4byte gUnknown_3005B60 -_0814DDB8: - ldr r7, _0814DDF8 - ldrb r0, [r7] - mov sb, r0 - ldrh r0, [r1, #8] - strb r0, [r7] - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0814DDD8 - ldr r0, _0814DDFC - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0814DE08 -_0814DDD8: - ldr r0, _0814DE00 - ldrb r1, [r7] - lsls r2, r1, #9 - adds r0, #1 - adds r2, r2, r0 - ldr r0, _0814DE04 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - strb r0, [r2] - ldrb r0, [r7] - movs r1, #0 - bl sub_0814CD58 - b _0814DE5C - .align 2, 0 -_0814DDF8: .4byte gUnknown_2023D08 -_0814DDFC: .4byte gUnknown_2022C90 -_0814DE00: .4byte gUnknown_2022D08 -_0814DE04: .4byte gUnknown_2023D12 -_0814DE08: - ldr r4, _0814DE80 - ldrb r0, [r7] - lsls r1, r0, #9 - adds r4, #1 - adds r1, r1, r4 - ldr r5, _0814DE84 - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - movs r1, #0 - bl sub_0814CD58 - ldrb r0, [r7] - movs r6, #2 - eors r0, r6 - strb r0, [r7] - ldrb r0, [r7] - lsls r1, r0, #9 - adds r1, r1, r4 - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r0, [r0] - strb r0, [r1] - ldrb r1, [r7] - lsls r0, r1, #1 - adds r0, r0, r5 - ldrh r2, [r0] - movs r0, #0x64 - muls r0, r2, r0 - ldr r2, _0814DE88 - adds r0, r0, r2 - bl BattleLoadPlayerMonSpriteGfx - ldrb r0, [r7] - movs r1, #0 - bl sub_0814CD58 - ldrb r0, [r7] - eors r0, r6 - strb r0, [r7] -_0814DE5C: - ldr r1, _0814DE8C - ldr r2, _0814DE90 - ldrb r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0814DE94 - str r1, [r0] - mov r3, sb - strb r3, [r2] - mov r0, r8 - bl DestroyTask -_0814DE74: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0814DE80: .4byte gUnknown_2022D08 -_0814DE84: .4byte gUnknown_2023D12 -_0814DE88: .4byte gUnknown_2024190 -_0814DE8C: .4byte gUnknown_3005AC0 -_0814DE90: .4byte gUnknown_2023D08 -_0814DE94: .4byte sub_0814B1A8 - thumb_func_end sub_0814DD8C - - thumb_func_start LinkPartnerHandleDrawPartyStatusSummary -LinkPartnerHandleDrawPartyStatusSummary: @ 0x0814DE98 - push {r4, r5, r6, lr} - ldr r1, _0814DEC0 - ldr r0, _0814DEC4 - ldrb r2, [r0] - lsls r0, r2, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _0814DEC8 - adds r0, r2, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0814DEC8 - bl LinkPartnerBufferExecCompleted - b _0814DF3C - .align 2, 0 -_0814DEC0: .4byte gUnknown_2022D08 -_0814DEC4: .4byte gUnknown_2023D08 -_0814DEC8: - ldr r6, _0814DF44 - ldr r0, [r6] - ldr r5, _0814DF48 - ldrb r1, [r5] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r2, #1 - orrs r1, r2 - strb r1, [r0] - ldrb r0, [r5] - lsls r3, r0, #9 - ldr r4, _0814DF4C - adds r1, r3, r4 - subs r2, r4, #3 - adds r2, r3, r2 - ldrb r2, [r2] - subs r4, #2 - adds r3, r3, r4 - ldrb r3, [r3] - bl CreatePartyStatusSummarySprites - ldr r2, _0814DF50 - ldrb r1, [r5] - adds r1, r1, r2 - movs r3, #0 - strb r0, [r1] - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strb r3, [r0, #5] - ldrb r2, [r5] - lsls r0, r2, #9 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0 - beq _0814DF30 - ldr r0, [r6] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - movs r1, #0x5d - strb r1, [r0, #5] -_0814DF30: - ldr r0, _0814DF54 - ldrb r1, [r5] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, _0814DF58 - str r0, [r1] -_0814DF3C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0814DF44: .4byte gUnknown_2024174 -_0814DF48: .4byte gUnknown_2023D08 -_0814DF4C: .4byte gUnknown_2022D0C -_0814DF50: .4byte gUnknown_2024158 -_0814DF54: .4byte gUnknown_3005AC0 -_0814DF58: .4byte sub_0814DF5C - thumb_func_end LinkPartnerHandleDrawPartyStatusSummary - - thumb_func_start sub_0814DF5C -sub_0814DF5C: @ 0x0814DF5C - push {r4, lr} - ldr r4, _0814DF9C - ldr r0, [r4] - ldr r3, _0814DFA0 - ldrb r1, [r3] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #5] - adds r2, r1, #1 - strb r2, [r0, #5] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #0x5c - bls _0814DF94 - ldr r0, [r4] - ldrb r1, [r3] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0 - strb r1, [r0, #5] - bl LinkPartnerBufferExecCompleted -_0814DF94: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814DF9C: .4byte gUnknown_2024174 -_0814DFA0: .4byte gUnknown_2023D08 - thumb_func_end sub_0814DF5C - - thumb_func_start LinkPartnerHandleHidePartyStatusSummary -LinkPartnerHandleHidePartyStatusSummary: @ 0x0814DFA4 - push {lr} - ldr r0, _0814DFE0 - ldr r1, [r0] - ldr r0, _0814DFE4 - ldrb r3, [r0] - ldr r1, [r1, #4] - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0814DFD6 - ldr r2, _0814DFE8 - ldr r0, _0814DFEC - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldr r1, _0814DFF0 - str r1, [r0] -_0814DFD6: - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_0814DFE0: .4byte gUnknown_2024174 -_0814DFE4: .4byte gUnknown_2023D08 -_0814DFE8: .4byte gUnknown_3005B60 -_0814DFEC: .4byte gUnknown_2024158 -_0814DFF0: .4byte Task_HidePartyStatusSummary - thumb_func_end LinkPartnerHandleHidePartyStatusSummary - - thumb_func_start LinkPartnerHandleEndBounceEffect -LinkPartnerHandleEndBounceEffect: @ 0x0814DFF4 - push {lr} - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkPartnerHandleEndBounceEffect - - thumb_func_start LinkPartnerHandleSpriteInvisibility -LinkPartnerHandleSpriteInvisibility: @ 0x0814E000 - push {r4, lr} - ldr r4, _0814E050 - ldrb r0, [r4] - bl IsBattlerSpritePresent - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0814E046 - ldr r3, _0814E054 - ldr r0, _0814E058 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r0, _0814E05C - lsls r1, r1, #9 - adds r0, #1 - adds r1, r1, r0 - adds r2, #0x3e - movs r0, #1 - ldrb r1, [r1] - ands r1, r0 - lsls r1, r1, #2 - ldrb r3, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4] - bl CopyBattleSpriteInvisibility -_0814E046: - bl LinkPartnerBufferExecCompleted - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814E050: .4byte gUnknown_2023D08 -_0814E054: .4byte gUnknown_20205AC -_0814E058: .4byte gUnknown_2023E88 -_0814E05C: .4byte gUnknown_2022D08 - thumb_func_end LinkPartnerHandleSpriteInvisibility - - thumb_func_start LinkPartnerHandleBattleAnimation -LinkPartnerHandleBattleAnimation: @ 0x0814E060 - push {r4, r5, r6, lr} - sub sp, #4 - ldr r5, _0814E0A8 - ldrb r0, [r5] - bl mplay_80342A4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0814E0C2 - ldr r4, _0814E0AC - ldrb r2, [r5] - lsls r1, r2, #9 - adds r0, r4, #1 - adds r0, r1, r0 - ldrb r6, [r0] - adds r0, r4, #2 - adds r0, r1, r0 - ldrb r3, [r0] - adds r4, #3 - adds r1, r1, r4 - ldrb r0, [r1] - lsls r0, r0, #8 - orrs r3, r0 - str r3, [sp] - adds r0, r2, #0 - adds r1, r2, #0 - adds r3, r6, #0 - bl TryHandleLaunchBattleTableAnimation - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0814E0B0 - bl LinkPartnerBufferExecCompleted - b _0814E0BC - .align 2, 0 -_0814E0A8: .4byte gUnknown_2023D08 -_0814E0AC: .4byte gUnknown_2022D08 -_0814E0B0: - ldr r0, _0814E0CC - ldrb r1, [r5] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, _0814E0D0 - str r0, [r1] -_0814E0BC: - adds r0, r6, #0 - bl BattleTv_SetDataBasedOnAnimation -_0814E0C2: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0814E0CC: .4byte gUnknown_3005AC0 -_0814E0D0: .4byte sub_0814B8A8 - thumb_func_end LinkPartnerHandleBattleAnimation - - thumb_func_start LinkPartnerHandleLinkStandbyMsg -LinkPartnerHandleLinkStandbyMsg: @ 0x0814E0D4 - push {lr} - ldr r0, _0814E0EC - ldrb r0, [r0] - lsls r0, r0, #9 - ldr r1, _0814E0F0 - adds r0, r0, r1 - bl sub_08185008 - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_0814E0EC: .4byte gUnknown_2023D08 -_0814E0F0: .4byte gUnknown_2022D0A - thumb_func_end LinkPartnerHandleLinkStandbyMsg - - thumb_func_start LinkPartnerHandleResetActionMoveSelection -LinkPartnerHandleResetActionMoveSelection: @ 0x0814E0F4 - push {lr} - bl LinkPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkPartnerHandleResetActionMoveSelection - - thumb_func_start LinkPartnerHandleCmd55 -LinkPartnerHandleCmd55: @ 0x0814E100 - push {r4, r5, lr} - ldr r5, _0814E164 - ldrb r0, [r5] - lsls r0, r0, #9 - ldr r4, _0814E168 - adds r0, r0, r4 - bl sub_08185008 - ldr r2, _0814E16C - ldrb r0, [r5] - lsls r0, r0, #9 - subs r1, r4, #3 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r0, _0814E170 - ldr r3, [r0] - ldrb r0, [r5] - lsls r0, r0, #9 - subs r4, #2 - adds r0, r0, r4 - ldrb r0, [r0] - ldr r1, _0814E174 - adds r3, r3, r1 - movs r1, #1 - ands r1, r0 - lsls r1, r1, #3 - ldrb r2, [r3] - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r0, #5 - bl FadeOutMapMusic - movs r0, #3 - bl BeginFastPaletteFade - bl LinkPartnerBufferExecCompleted - ldr r1, _0814E178 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0814E17C - str r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0814E164: .4byte gUnknown_2023D08 -_0814E168: .4byte gUnknown_2022D0C -_0814E16C: .4byte gUnknown_2023FDE -_0814E170: .4byte gUnknown_3005AF0 -_0814E174: .4byte 0x00000CA9 -_0814E178: .4byte gUnknown_3005AC0 -_0814E17C: .4byte sub_080583C0 - thumb_func_end LinkPartnerHandleCmd55 - - thumb_func_start sub_0814E180 -sub_0814E180: @ 0x0814E180 - bx lr - .align 2, 0 - thumb_func_end sub_0814E180 - - thumb_func_start PrintOnTrainerHillRecordsWindow -PrintOnTrainerHillRecordsWindow: @ 0x0814E184 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - movs r7, #0 - ldr r4, _0814E22C - ldr r0, _0814E230 - mov ip, r0 - ldrb r1, [r0] - lsls r1, r1, #9 - ldr r0, _0814E234 - adds r1, r1, r0 - str r1, [r4] - ldr r2, _0814E238 - ldrh r0, [r1, #4] - strh r0, [r2] - ldr r2, _0814E23C - ldrb r0, [r1, #6] - strb r0, [r2] - ldr r5, _0814E240 - ldrb r0, [r1, #7] - strb r0, [r5, #0x17] - ldr r3, _0814E244 - ldr r0, [r3] - adds r0, #0x52 - ldrb r1, [r1, #8] - strb r1, [r0] - ldr r0, [r3] - adds r0, #0xb1 - ldr r1, [r4] - ldrb r1, [r1, #9] - strb r1, [r0] - ldr r1, _0814E248 - ldr r2, [r4] - ldrb r0, [r2, #0xa] - strb r0, [r1] - ldr r0, [r3] - adds r0, #0x8e - ldrb r1, [r2, #0xb] - strb r1, [r0] - movs r2, #0 - mov r8, r5 - ldr r1, _0814E24C - mov sb, r1 - ldr r3, _0814E250 -_0814E1E2: - adds r0, r2, r3 - ldr r1, [r4] - adds r1, #0xc - adds r1, r1, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, #3 - ble _0814E1E2 - movs r2, #0 - ldr r5, _0814E24C - ldr r3, _0814E22C - ldr r4, _0814E254 -_0814E1FC: - adds r1, r2, r5 - ldr r0, [r3] - adds r0, #0x10 - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r1, r2, r4 - ldr r0, [r3] - adds r0, #0x20 - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r2, #1 - cmp r2, #0xf - ble _0814E1FC - cmp r6, #5 - bls _0814E220 - b _0814E768 -_0814E220: - lsls r0, r6, #2 - ldr r1, _0814E258 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0814E22C: .4byte gUnknown_203A874 -_0814E230: .4byte gUnknown_2023D08 -_0814E234: .4byte gUnknown_2022D0C -_0814E238: .4byte gUnknown_2023EAC -_0814E23C: .4byte gUnknown_2023EAE -_0814E240: .4byte gUnknown_2024118 -_0814E244: .4byte gUnknown_2024140 -_0814E248: .4byte gUnknown_2023EB3 -_0814E24C: .4byte gUnknown_2022C0C -_0814E250: .4byte gUnknown_203A870 -_0814E254: .4byte gUnknown_2022C1C -_0814E258: .4byte _0814E25C -_0814E25C: @ jump table - .4byte _0814E274 @ case 0 - .4byte _0814E354 @ case 1 - .4byte _0814E43C @ case 2 - .4byte _0814E4D8 @ case 3 - .4byte _0814E5A0 @ case 4 - .4byte _0814E600 @ case 5 -_0814E274: - ldr r0, _0814E2AC - ldr r2, [r0] - movs r0, #8 - ands r0, r2 - cmp r0, #0 - beq _0814E314 - ldr r0, _0814E2B0 - ands r0, r2 - cmp r0, #0 - beq _0814E2F0 - movs r0, #0x80 - lsls r0, r0, #0x10 - ands r0, r2 - cmp r0, #0 - bne _0814E308 - movs r0, #0x40 - ands r0, r2 - cmp r0, #0 - beq _0814E2BC - movs r0, #0x80 - lsls r0, r0, #0x11 - ands r2, r0 - ldr r7, _0814E2B4 - cmp r2, #0 - bne _0814E2A8 - b _0814E788 -_0814E2A8: - ldr r7, _0814E2B8 - b _0814E788 - .align 2, 0 -_0814E2AC: .4byte gUnknown_2022C90 -_0814E2B0: .4byte gUnknown_2000002 -_0814E2B4: .4byte gUnknown_85AAE91 -_0814E2B8: .4byte gUnknown_85AC12D -_0814E2BC: - ldr r0, _0814E2CC - ldrh r1, [r0] - movs r0, #0xc0 - lsls r0, r0, #4 - cmp r1, r0 - bne _0814E2D4 - ldr r7, _0814E2D0 - b _0814E788 - .align 2, 0 -_0814E2CC: .4byte gUnknown_203886A -_0814E2D0: .4byte gUnknown_85AAE68 -_0814E2D4: - movs r0, #0x80 - lsls r0, r0, #0x11 - ands r2, r0 - ldr r7, _0814E2E8 - cmp r2, #0 - bne _0814E2E2 - b _0814E788 -_0814E2E2: - ldr r7, _0814E2EC - b _0814E788 - .align 2, 0 -_0814E2E8: .4byte gUnknown_85AAE7F -_0814E2EC: .4byte gUnknown_85AC118 -_0814E2F0: - movs r0, #0x80 - lsls r0, r0, #0xf - ands r0, r2 - cmp r0, #0 - bne _0814E308 - movs r0, #0x80 - lsls r0, r0, #8 - ands r2, r0 - ldr r7, _0814E30C - cmp r2, #0 - bne _0814E308 - b _0814E788 -_0814E308: - ldr r7, _0814E310 - b _0814E788 - .align 2, 0 -_0814E30C: .4byte gUnknown_85AAE68 -_0814E310: .4byte gUnknown_85ABDF4 -_0814E314: - movs r0, #0x80 - lsls r0, r0, #6 - ands r0, r2 - cmp r0, #0 - beq _0814E328 - ldr r7, _0814E324 - b _0814E788 - .align 2, 0 -_0814E324: .4byte gUnknown_85AAE22 -_0814E328: - movs r0, #1 - ands r0, r2 - cmp r0, #0 - beq _0814E338 - ldr r7, _0814E334 - b _0814E788 - .align 2, 0 -_0814E334: .4byte gUnknown_85AAE4E -_0814E338: - movs r0, #0x80 - lsls r0, r0, #2 - ands r2, r0 - ldr r7, _0814E34C - cmp r2, #0 - bne _0814E346 - b _0814E788 -_0814E346: - ldr r7, _0814E350 - b _0814E788 - .align 2, 0 -_0814E34C: .4byte gUnknown_85AAE0C -_0814E350: .4byte gUnknown_85AAE36 -_0814E354: - mov r1, ip - ldrb r0, [r1] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0814E3B8 - ldr r0, _0814E37C - ldr r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0814E3B0 - movs r0, #0x80 - lsls r0, r0, #0xf - ands r0, r1 - cmp r0, #0 - beq _0814E384 - ldr r7, _0814E380 - b _0814E788 - .align 2, 0 -_0814E37C: .4byte gUnknown_2022C90 -_0814E380: .4byte gUnknown_85ABE13 -_0814E384: - movs r0, #0x80 - lsls r0, r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0814E398 - ldr r7, _0814E394 - b _0814E788 - .align 2, 0 -_0814E394: .4byte gUnknown_85AAF4B -_0814E398: - movs r0, #0x40 - ands r1, r0 - ldr r7, _0814E3A8 - cmp r1, #0 - bne _0814E3A4 - b _0814E788 -_0814E3A4: - ldr r7, _0814E3AC - b _0814E788 - .align 2, 0 -_0814E3A8: .4byte gUnknown_85AAF4B -_0814E3AC: .4byte gUnknown_85AAF8E -_0814E3B0: - ldr r7, _0814E3B4 - b _0814E788 - .align 2, 0 -_0814E3B4: .4byte gUnknown_85AAF42 -_0814E3B8: - ldr r0, _0814E3DC - ldr r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0814E410 - movs r0, #0x80 - lsls r0, r0, #8 - ands r0, r1 - cmp r0, #0 - bne _0814E3D8 - movs r0, #0x80 - lsls r0, r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0814E3E4 -_0814E3D8: - ldr r7, _0814E3E0 - b _0814E788 - .align 2, 0 -_0814E3DC: .4byte gUnknown_2022C90 -_0814E3E0: .4byte gUnknown_85ABDBB -_0814E3E4: - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0814E3F4 - ldr r7, _0814E3F0 - b _0814E788 - .align 2, 0 -_0814E3F0: .4byte gUnknown_85AAF06 -_0814E3F4: - ldr r0, _0814E404 - ands r1, r0 - ldr r7, _0814E408 - cmp r1, #0 - bne _0814E400 - b _0814E788 -_0814E400: - ldr r7, _0814E40C - b _0814E788 - .align 2, 0 -_0814E404: .4byte gUnknown_2000002 -_0814E408: .4byte gUnknown_85AAEBA -_0814E40C: .4byte gUnknown_85AAEF3 -_0814E410: - ldr r0, _0814E42C - ands r1, r0 - cmp r1, #0 - beq _0814E428 - ldr r0, _0814E430 - ldrh r1, [r0] - movs r0, #0xc0 - lsls r0, r0, #4 - ldr r7, _0814E434 - cmp r1, r0 - beq _0814E428 - b _0814E788 -_0814E428: - ldr r7, _0814E438 - b _0814E788 - .align 2, 0 -_0814E42C: .4byte gUnknown_2000002 -_0814E430: .4byte gUnknown_203886A -_0814E434: .4byte gUnknown_85AAEE4 -_0814E438: .4byte gUnknown_85AAEA7 -_0814E43C: - mov r1, ip - ldrb r0, [r1] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0814E494 - ldr r0, _0814E45C - ldr r0, [r0] - adds r0, #0xb1 - ldrb r2, [r0] - cmp r2, #0 - bne _0814E464 - ldr r7, _0814E460 - b _0814E788 - .align 2, 0 -_0814E45C: .4byte gUnknown_2024140 -_0814E460: .4byte gUnknown_85AAFA6 -_0814E464: - cmp r2, #1 - beq _0814E474 - ldr r0, _0814E478 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0814E480 -_0814E474: - ldr r7, _0814E47C - b _0814E788 - .align 2, 0 -_0814E478: .4byte gUnknown_2022C90 -_0814E47C: .4byte gUnknown_85AAFB4 -_0814E480: - ldr r7, _0814E48C - cmp r2, #2 - beq _0814E488 - b _0814E788 -_0814E488: - ldr r7, _0814E490 - b _0814E788 - .align 2, 0 -_0814E48C: .4byte gUnknown_85AAFC9 -_0814E490: .4byte gUnknown_85AAFBC -_0814E494: - ldr r0, _0814E4C0 - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #4 - ldr r2, _0814E4C4 - cmp r1, r0 - beq _0814E4AE - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0x12 - ands r0, r1 - cmp r0, #0 - beq _0814E4D0 -_0814E4AE: - ldr r0, [r2] - movs r1, #0x40 - ands r0, r1 - ldr r7, _0814E4C8 - cmp r0, #0 - bne _0814E4BC - b _0814E788 -_0814E4BC: - ldr r7, _0814E4CC - b _0814E788 - .align 2, 0 -_0814E4C0: .4byte gUnknown_203886A -_0814E4C4: .4byte gUnknown_2022C90 -_0814E4C8: .4byte gUnknown_85AAFEB -_0814E4CC: .4byte gUnknown_85AAFFA -_0814E4D0: - ldr r7, _0814E4D4 - b _0814E788 - .align 2, 0 -_0814E4D4: .4byte gUnknown_85AAFD8 -_0814E4D8: - mov r4, r8 - ldrb r0, [r4, #0x17] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0814E530 - ldr r0, _0814E504 - ldr r0, [r0] - adds r0, #0xb1 - ldrb r2, [r0] - cmp r2, #0 - beq _0814E4FE - ldr r0, _0814E508 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0814E510 -_0814E4FE: - ldr r7, _0814E50C - b _0814E788 - .align 2, 0 -_0814E504: .4byte gUnknown_2024140 -_0814E508: .4byte gUnknown_2022C90 -_0814E50C: .4byte gUnknown_85AAF58 -_0814E510: - cmp r2, #1 - bne _0814E51C - ldr r7, _0814E518 - b _0814E788 - .align 2, 0 -_0814E518: .4byte gUnknown_85AAF61 -_0814E51C: - ldr r7, _0814E528 - cmp r2, #2 - beq _0814E524 - b _0814E788 -_0814E524: - ldr r7, _0814E52C - b _0814E788 - .align 2, 0 -_0814E528: .4byte gUnknown_85AAF76 -_0814E52C: .4byte gUnknown_85AAF6C -_0814E530: - ldr r0, _0814E54C - ldr r1, [r0] - ldr r0, _0814E550 - ands r0, r1 - cmp r0, #0 - beq _0814E584 - movs r0, #0x80 - lsls r0, r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0814E554 - ldrb r0, [r4, #0x17] - b _0814E592 - .align 2, 0 -_0814E54C: .4byte gUnknown_2022C90 -_0814E550: .4byte gUnknown_2000002 -_0814E554: - movs r0, #0x40 - ands r1, r0 - cmp r1, #0 - beq _0814E564 - ldr r7, _0814E560 - b _0814E788 - .align 2, 0 -_0814E560: .4byte gUnknown_85AAF33 -_0814E564: - ldr r0, _0814E578 - ldrh r1, [r0] - movs r0, #0xc0 - lsls r0, r0, #4 - ldr r7, _0814E57C - cmp r1, r0 - beq _0814E574 - b _0814E788 -_0814E574: - ldr r7, _0814E580 - b _0814E788 - .align 2, 0 -_0814E578: .4byte gUnknown_203886A -_0814E57C: .4byte gUnknown_85AAF24 -_0814E580: .4byte gUnknown_85AAED1 -_0814E584: - movs r0, #0x80 - lsls r0, r0, #8 - ands r1, r0 - cmp r1, #0 - beq _0814E574 - mov r1, r8 - ldrb r0, [r1, #0x17] -_0814E592: - ldr r7, _0814E59C - cmp r0, #1 - beq _0814E59A - b _0814E788 -_0814E59A: - b _0814E574 - .align 2, 0 -_0814E59C: .4byte gUnknown_85ABDE1 -_0814E5A0: - mov r0, sb - bl ChooseMoveUsedParticle - ldr r0, _0814E5CC - ldr r2, [r0] - ldrh r1, [r2] - movs r0, #0xb1 - lsls r0, r0, #1 - cmp r1, r0 - bls _0814E5DC - ldr r0, _0814E5D0 - ldr r1, _0814E5D4 - ldr r1, [r1] - adds r1, #0x8e - ldrb r2, [r1] - lsls r1, r2, #3 - subs r1, r1, r2 - ldr r2, _0814E5D8 - adds r1, r1, r2 - bl StringCopy - b _0814E5EA - .align 2, 0 -_0814E5CC: .4byte gUnknown_203A874 -_0814E5D0: .4byte gUnknown_2022C1C -_0814E5D4: .4byte gUnknown_2024140 -_0814E5D8: .4byte gUnknown_85ABC9A -_0814E5DC: - ldr r0, _0814E5F4 - ldrh r1, [r2] - lsls r1, r1, #3 - ldr r2, _0814E5F8 - adds r1, r1, r2 - bl StringCopy -_0814E5EA: - ldr r0, _0814E5F4 - bl ChooseTypeOfMoveUsedString - ldr r7, _0814E5FC - b _0814E788 - .align 2, 0 -_0814E5F4: .4byte gUnknown_2022C1C -_0814E5F8: .4byte gUnknown_82EACC4 -_0814E5FC: .4byte gUnknown_85AB034 -_0814E600: - ldr r4, _0814E640 - ldrb r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0814E674 - movs r0, #0x7f - ands r0, r1 - strb r0, [r4] - mov r1, ip - ldrb r0, [r1] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0814E62E - ldrb r1, [r4] - cmp r1, #3 - beq _0814E62E - movs r0, #3 - eors r0, r1 - strb r0, [r4] -_0814E62E: - ldr r0, _0814E640 - ldrb r0, [r0] - subs r0, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0814E648 - ldr r7, _0814E644 - b _0814E788 - .align 2, 0 -_0814E640: .4byte gUnknown_2022C0C -_0814E644: .4byte gUnknown_85AA970 -_0814E648: - ldr r0, _0814E658 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0814E660 - ldr r7, _0814E65C - b _0814E788 - .align 2, 0 -_0814E658: .4byte gUnknown_2022C90 -_0814E65C: .4byte gUnknown_85AAA45 -_0814E660: - ldr r0, _0814E66C - ldrh r1, [r0] - movs r0, #0xc0 - lsls r0, r0, #4 - ldr r7, _0814E670 - b _0814E788 - .align 2, 0 -_0814E66C: .4byte gUnknown_203886A -_0814E670: .4byte gUnknown_85AAA36 -_0814E674: - mov r1, ip - ldrb r0, [r1] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0814E690 - ldrb r1, [r4] - cmp r1, #3 - beq _0814E690 - movs r0, #3 - eors r0, r1 - strb r0, [r4] -_0814E690: - ldr r0, _0814E6B0 - ldr r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0814E6E8 - ldr r0, _0814E6B4 - ldrb r0, [r0] - cmp r0, #2 - beq _0814E6D8 - cmp r0, #2 - bgt _0814E6B8 - cmp r0, #1 - beq _0814E6BE - b _0814E788 - .align 2, 0 -_0814E6B0: .4byte gUnknown_2022C90 -_0814E6B4: .4byte gUnknown_2022C0C -_0814E6B8: - cmp r0, #3 - beq _0814E6E0 - b _0814E788 -_0814E6BE: - movs r0, #0x80 - lsls r0, r0, #0x10 - ands r1, r0 - ldr r7, _0814E6D0 - cmp r1, #0 - beq _0814E788 - ldr r7, _0814E6D4 - b _0814E788 - .align 2, 0 -_0814E6D0: .4byte gUnknown_85AA9D6 -_0814E6D4: .4byte gUnknown_85ABE2F -_0814E6D8: - ldr r7, _0814E6DC - b _0814E788 - .align 2, 0 -_0814E6DC: .4byte gUnknown_85AA9FA -_0814E6E0: - ldr r7, _0814E6E4 - b _0814E788 - .align 2, 0 -_0814E6E4: .4byte gUnknown_85AAA20 -_0814E6E8: - ldr r0, _0814E708 - ldrh r1, [r0] - movs r0, #0xc0 - lsls r0, r0, #4 - cmp r1, r0 - bne _0814E730 - ldr r0, _0814E70C - ldrb r0, [r0] - cmp r0, #2 - beq _0814E720 - cmp r0, #2 - bgt _0814E710 - cmp r0, #1 - beq _0814E716 - b _0814E788 - .align 2, 0 -_0814E708: .4byte gUnknown_203886A -_0814E70C: .4byte gUnknown_2022C0C -_0814E710: - cmp r0, #3 - beq _0814E728 - b _0814E788 -_0814E716: - ldr r7, _0814E71C - b _0814E788 - .align 2, 0 -_0814E71C: .4byte gUnknown_85AAD22 -_0814E720: - ldr r7, _0814E724 - b _0814E788 - .align 2, 0 -_0814E724: .4byte gUnknown_85AC0B1 -_0814E728: - ldr r7, _0814E72C - b _0814E788 - .align 2, 0 -_0814E72C: .4byte gUnknown_85AC0C6 -_0814E730: - ldr r0, _0814E744 - ldrb r0, [r0] - cmp r0, #2 - beq _0814E758 - cmp r0, #2 - bgt _0814E748 - cmp r0, #1 - beq _0814E74E - b _0814E788 - .align 2, 0 -_0814E744: .4byte gUnknown_2022C0C -_0814E748: - cmp r0, #3 - beq _0814E760 - b _0814E788 -_0814E74E: - ldr r7, _0814E754 - b _0814E788 - .align 2, 0 -_0814E754: .4byte gUnknown_85AA9C6 -_0814E758: - ldr r7, _0814E75C - b _0814E788 - .align 2, 0 -_0814E75C: .4byte gUnknown_85AA9EA -_0814E760: - ldr r7, _0814E764 - b _0814E788 - .align 2, 0 -_0814E764: .4byte gUnknown_85AAA0E -_0814E768: - movs r0, #0xbe - lsls r0, r0, #1 - cmp r6, r0 - bls _0814E77C - ldr r1, _0814E778 - movs r0, #0xff - strb r0, [r1] - b _0814E78E - .align 2, 0 -_0814E778: .4byte gUnknown_2022AE0 -_0814E77C: - ldr r1, _0814E79C - adds r0, r6, #0 - subs r0, #0xc - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r7, [r0] -_0814E788: - adds r0, r7, #0 - bl BattleStringExpandPlaceholdersToDisplayedString -_0814E78E: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0814E79C: .4byte gUnknown_85AB3DC - thumb_func_end PrintOnTrainerHillRecordsWindow - - thumb_func_start BattleStringExpandPlaceholdersToDisplayedString -BattleStringExpandPlaceholdersToDisplayedString: @ 0x0814E7A0 - push {lr} - ldr r1, _0814E7AC - bl BattleStringExpandPlaceholders - pop {r1} - bx r1 - .align 2, 0 -_0814E7AC: .4byte gUnknown_2022AE0 - thumb_func_end BattleStringExpandPlaceholdersToDisplayedString - - thumb_func_start BattleStringExpandPlaceholders -BattleStringExpandPlaceholders: @ 0x0814E7B0 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0xc - mov sb, r0 - mov r8, r1 - movs r6, #0 - movs r4, #0 - ldr r0, _0814E7D8 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x12 - ands r0, r1 - cmp r0, #0 - beq _0814E7E0 - ldr r0, _0814E7DC - ldrb r7, [r0] - b _0814E7E8 - .align 2, 0 -_0814E7D8: .4byte gUnknown_2022C90 -_0814E7DC: .4byte gUnknown_203C480 -_0814E7E0: - bl GetMultiplayerId - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 -_0814E7E8: - mov r0, sb - ldrb r1, [r0] - bl sub_0814F63C - thumb_func_end BattleStringExpandPlaceholders - - thumb_func_start sub_0814E7F0 -sub_0814E7F0: @ 0x0814E7F0 - cmp r1, #0xfd - beq _0814E7F8 - bl sub_0814F62C -_0814E7F8: - movs r1, #1 - add sb, r1 - mov r2, sb - ldrb r0, [r2] - cmp r0, #0x33 - bls _0814E808 - bl _0814F5DC -_0814E808: - lsls r0, r0, #2 - ldr r1, _0814E814 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0814E814: .4byte _0814E818 -_0814E818: @ jump table - .4byte _0814E8E8 @ case 0 - .4byte _0814E8FC @ case 1 - .4byte _0814E922 @ case 2 - .4byte _0814E92C @ case 3 - .4byte _0814E938 @ case 4 - .4byte _0814E944 @ case 5 - .4byte _0814E978 @ case 6 - .4byte _0814E9AC @ case 7 - .4byte _0814E9E0 @ case 8 - .4byte _0814EA14 @ case 9 - .4byte _0814EA50 @ case 10 - .4byte _0814EA90 @ case 11 - .4byte _0814EAD0 @ case 12 - .4byte _0814EB10 @ case 13 - .4byte _0814EBC8 @ case 14 - .4byte _0814EC50 @ case 15 - .4byte _0814ECEC @ case 16 - .4byte _0814ED88 @ case 17 - .4byte _0814EE24 @ case 18 - .4byte _0814EEC0 @ case 19 - .4byte _0814EF5C @ case 20 - .4byte _0814EF74 @ case 21 - .4byte _0814EFB0 @ case 22 - .4byte _0814F098 @ case 23 - .4byte _0814F0A0 @ case 24 - .4byte _0814F0B0 @ case 25 - .4byte _0814F0C0 @ case 26 - .4byte _0814F0D0 @ case 27 - .4byte _0814F0F0 @ case 28 - .4byte _0814F178 @ case 29 - .4byte _0814F242 @ case 30 - .4byte _0814F254 @ case 31 - .4byte _0814F268 @ case 32 - .4byte _0814F27C @ case 33 - .4byte _0814F2A0 @ case 34 - .4byte _0814F2BC @ case 35 - .4byte _0814F2E4 @ case 36 - .4byte _0814F324 @ case 37 - .4byte _0814F354 @ case 38 - .4byte _0814F3E8 @ case 39 - .4byte _0814F434 @ case 40 - .4byte _0814F43C @ case 41 - .4byte _0814F408 @ case 42 - .4byte _0814F410 @ case 43 - .4byte _0814F460 @ case 44 - .4byte _0814F468 @ case 45 - .4byte _0814F48C @ case 46 - .4byte _0814F4D8 @ case 47 - .4byte _0814F524 @ case 48 - .4byte _0814F564 @ case 49 - .4byte _0814F5B0 @ case 50 - .4byte _0814F5D0 @ case 51 -_0814E8E8: - ldr r1, _0814E8F4 - ldrb r0, [r1] - cmp r0, #0xfd - bne _0814E91C - ldr r4, _0814E8F8 - b _0814E906 - .align 2, 0 -_0814E8F4: .4byte gUnknown_2022C0C -_0814E8F8: .4byte gUnknown_2021C40 -_0814E8FC: - ldr r1, _0814E914 - ldrb r0, [r1] - cmp r0, #0xfd - bne _0814E91C - ldr r4, _0814E918 -_0814E906: - adds r0, r1, #0 - adds r1, r4, #0 - bl ExpandBattleTextBuffPlaceholders - bl _0814F5DC - .align 2, 0 -_0814E914: .4byte gUnknown_2022C1C -_0814E918: .4byte gUnknown_2021C54 -_0814E91C: - adds r4, r1, #0 - bl _0814F5DC -_0814E922: - ldr r4, _0814E928 - bl _0814F5DC - .align 2, 0 -_0814E928: .4byte gUnknown_2021C40 -_0814E92C: - ldr r4, _0814E934 - bl _0814F5DC - .align 2, 0 -_0814E934: .4byte gUnknown_2021C54 -_0814E938: - ldr r4, _0814E940 - bl _0814F5DC - .align 2, 0 -_0814E940: .4byte gUnknown_2021C68 -_0814E944: - movs r0, #0 - bl GetBattlerAtPosition - ldr r1, _0814E970 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0814E974 - adds r0, r0, r1 - movs r1, #2 - mov r2, sp - bl GetMonData - mov r0, sp - bl StringGetEnd10 - bl _0814F5DA - .align 2, 0 -_0814E970: .4byte gUnknown_2023D12 -_0814E974: .4byte gUnknown_2024190 -_0814E978: - movs r0, #1 - bl GetBattlerAtPosition - ldr r1, _0814E9A4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0814E9A8 - adds r0, r0, r1 - movs r1, #2 - mov r2, sp - bl GetMonData - mov r0, sp - bl StringGetEnd10 - bl _0814F5DA - .align 2, 0 -_0814E9A4: .4byte gUnknown_2023D12 -_0814E9A8: .4byte gUnknown_20243E8 -_0814E9AC: - movs r0, #2 - bl GetBattlerAtPosition - ldr r1, _0814E9D8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0814E9DC - adds r0, r0, r1 - movs r1, #2 - mov r2, sp - bl GetMonData - mov r0, sp - bl StringGetEnd10 - bl _0814F5DA - .align 2, 0 -_0814E9D8: .4byte gUnknown_2023D12 -_0814E9DC: .4byte gUnknown_2024190 -_0814E9E0: - movs r0, #3 - bl GetBattlerAtPosition - ldr r1, _0814EA0C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0814EA10 - adds r0, r0, r1 - movs r1, #2 - mov r2, sp - bl GetMonData - mov r0, sp - bl StringGetEnd10 - bl _0814F5DA - .align 2, 0 -_0814EA0C: .4byte gUnknown_2023D12 -_0814EA10: .4byte gUnknown_20243E8 -_0814EA14: - ldr r2, _0814EA44 - ldr r1, _0814EA48 - lsls r0, r7, #3 - subs r0, r0, r7 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0, #0x18] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0814EA4C - adds r0, r0, r1 - movs r1, #2 - mov r2, sp - bl GetMonData - mov r0, sp - bl StringGetEnd10 - bl _0814F5DA - .align 2, 0 -_0814EA44: .4byte gUnknown_2023D12 -_0814EA48: .4byte gUnknown_20226A0 -_0814EA4C: .4byte gUnknown_2024190 -_0814EA50: - ldr r2, _0814EA84 - ldr r1, _0814EA88 - lsls r0, r7, #3 - subs r0, r0, r7 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r1, [r0, #0x18] - movs r0, #1 - eors r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0814EA8C - adds r0, r0, r1 - movs r1, #2 - mov r2, sp - bl GetMonData - mov r0, sp - bl StringGetEnd10 - bl _0814F5DA - .align 2, 0 -_0814EA84: .4byte gUnknown_2023D12 -_0814EA88: .4byte gUnknown_20226A0 -_0814EA8C: .4byte gUnknown_20243E8 -_0814EA90: - ldr r2, _0814EAC4 - ldr r1, _0814EAC8 - lsls r0, r7, #3 - subs r0, r0, r7 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r1, [r0, #0x18] - movs r0, #2 - eors r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0814EACC - adds r0, r0, r1 - movs r1, #2 - mov r2, sp - bl GetMonData - mov r0, sp - bl StringGetEnd10 - bl _0814F5DA - .align 2, 0 -_0814EAC4: .4byte gUnknown_2023D12 -_0814EAC8: .4byte gUnknown_20226A0 -_0814EACC: .4byte gUnknown_2024190 -_0814EAD0: - ldr r2, _0814EB04 - ldr r1, _0814EB08 - lsls r0, r7, #3 - subs r0, r0, r7 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r1, [r0, #0x18] - movs r0, #3 - eors r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0814EB0C - adds r0, r0, r1 - movs r1, #2 - mov r2, sp - bl GetMonData - mov r0, sp - bl StringGetEnd10 - bl _0814F5DA - .align 2, 0 -_0814EB04: .4byte gUnknown_2023D12 -_0814EB08: .4byte gUnknown_20226A0 -_0814EB0C: .4byte gUnknown_20243E8 -_0814EB10: - ldr r4, _0814EB34 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - adds r2, r4, #0 - cmp r0, #0 - beq _0814EB8C - ldr r0, _0814EB38 - ldr r1, [r0] - movs r0, #8 - ands r1, r0 - ldr r4, _0814EB3C - cmp r1, #0 - beq _0814EB4E - ldr r4, _0814EB40 - b _0814EB4E - .align 2, 0 -_0814EB34: .4byte gUnknown_2023EAF -_0814EB38: .4byte gUnknown_2022C90 -_0814EB3C: .4byte gUnknown_85AB009 -_0814EB40: .4byte gUnknown_85AB00F -_0814EB44: - mov r3, r8 - adds r0, r3, r6 - strb r1, [r0] - adds r6, #1 - adds r4, #1 -_0814EB4E: - ldrb r1, [r4] - adds r0, r1, #0 - cmp r0, #0xff - bne _0814EB44 - ldrb r0, [r2] - bl sub_080A630C - adds r1, r0, #0 - movs r0, #1 - ands r0, r1 - bl GetBattlerAtPosition - ldr r1, _0814EB84 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0814EB88 - adds r0, r0, r1 - movs r1, #2 - mov r2, sp - bl GetMonData - b _0814EBB6 - .align 2, 0 -_0814EB84: .4byte gUnknown_2023D12 -_0814EB88: .4byte gUnknown_20243E8 -_0814EB8C: - ldrb r0, [r2] - bl sub_080A630C - adds r1, r0, #0 - movs r0, #1 - ands r0, r1 - bl GetBattlerAtPosition - ldr r1, _0814EBC0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0814EBC4 - adds r0, r0, r1 - movs r1, #2 - mov r2, sp - bl GetMonData -_0814EBB6: - mov r0, sp - bl StringGetEnd10 - bl _0814F5DA - .align 2, 0 -_0814EBC0: .4byte gUnknown_2023D12 -_0814EBC4: .4byte gUnknown_2024190 -_0814EBC8: - ldr r4, _0814EC04 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0814EC10 - ldrb r0, [r4] - bl sub_080A630C - adds r1, r0, #0 - movs r0, #1 - ands r0, r1 - bl GetBattlerAtPosition - ldr r1, _0814EC08 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, #4 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0814EC0C - adds r0, r0, r1 - movs r1, #2 - mov r2, sp - bl GetMonData - b _0814EC3C - .align 2, 0 -_0814EC04: .4byte gUnknown_2023EAF -_0814EC08: .4byte gUnknown_2023D12 -_0814EC0C: .4byte gUnknown_2024190 -_0814EC10: - ldrb r0, [r4] - bl sub_080A630C - adds r1, r0, #0 - movs r0, #1 - ands r0, r1 - bl GetBattlerAtPosition - ldr r1, _0814EC48 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, #4 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0814EC4C - adds r0, r0, r1 - movs r1, #2 - mov r2, sp - bl GetMonData -_0814EC3C: - mov r0, sp - bl StringGetEnd10 - bl _0814F5DA - .align 2, 0 -_0814EC48: .4byte gUnknown_2023D12 -_0814EC4C: .4byte gUnknown_20243E8 -_0814EC50: - ldr r5, _0814ECA8 - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0814ECC0 - ldr r0, _0814ECAC - ldr r1, [r0] - movs r0, #8 - ands r1, r0 - ldr r4, _0814ECB0 - cmp r1, #0 - beq _0814EC6E - ldr r4, _0814ECB4 -_0814EC6E: - ldrb r1, [r4] - adds r0, r1, #0 - ldr r3, _0814ECB8 - ldr r2, _0814ECBC - mov ip, r2 - adds r2, r5, #0 - cmp r0, #0xff - beq _0814EC90 -_0814EC7E: - mov r5, r8 - adds r0, r5, r6 - strb r1, [r0] - adds r6, #1 - adds r4, #1 - ldrb r1, [r4] - adds r0, r1, #0 - cmp r0, #0xff - bne _0814EC7E -_0814EC90: - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - add r0, ip - movs r1, #2 - mov r2, sp - bl GetMonData - b _0814ECDA - .align 2, 0 -_0814ECA8: .4byte gUnknown_2023EAF -_0814ECAC: .4byte gUnknown_2022C90 -_0814ECB0: .4byte gUnknown_85AB009 -_0814ECB4: .4byte gUnknown_85AB00F -_0814ECB8: .4byte gUnknown_2023D12 -_0814ECBC: .4byte gUnknown_20243E8 -_0814ECC0: - ldr r1, _0814ECE4 - ldrb r0, [r5] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0814ECE8 - adds r0, r0, r1 - movs r1, #2 - mov r2, sp - bl GetMonData -_0814ECDA: - mov r0, sp - bl StringGetEnd10 - bl _0814F5DA - .align 2, 0 -_0814ECE4: .4byte gUnknown_2023D12 -_0814ECE8: .4byte gUnknown_2024190 -_0814ECEC: - ldr r5, _0814ED44 - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0814ED5C - ldr r0, _0814ED48 - ldr r1, [r0] - movs r0, #8 - ands r1, r0 - ldr r4, _0814ED4C - cmp r1, #0 - beq _0814ED0A - ldr r4, _0814ED50 -_0814ED0A: - ldrb r1, [r4] - adds r0, r1, #0 - ldr r3, _0814ED54 - ldr r2, _0814ED58 - mov ip, r2 - adds r2, r5, #0 - cmp r0, #0xff - beq _0814ED2C -_0814ED1A: - mov r5, r8 - adds r0, r5, r6 - strb r1, [r0] - adds r6, #1 - adds r4, #1 - ldrb r1, [r4] - adds r0, r1, #0 - cmp r0, #0xff - bne _0814ED1A -_0814ED2C: - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - add r0, ip - movs r1, #2 - mov r2, sp - bl GetMonData - b _0814ED76 - .align 2, 0 -_0814ED44: .4byte gUnknown_2023EB0 -_0814ED48: .4byte gUnknown_2022C90 -_0814ED4C: .4byte gUnknown_85AB009 -_0814ED50: .4byte gUnknown_85AB00F -_0814ED54: .4byte gUnknown_2023D12 -_0814ED58: .4byte gUnknown_20243E8 -_0814ED5C: - ldr r1, _0814ED80 - ldrb r0, [r5] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0814ED84 - adds r0, r0, r1 - movs r1, #2 - mov r2, sp - bl GetMonData -_0814ED76: - mov r0, sp - bl StringGetEnd10 - bl _0814F5DA - .align 2, 0 -_0814ED80: .4byte gUnknown_2023D12 -_0814ED84: .4byte gUnknown_2024190 -_0814ED88: - ldr r5, _0814EDE0 - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0814EDF8 - ldr r0, _0814EDE4 - ldr r1, [r0] - movs r0, #8 - ands r1, r0 - ldr r4, _0814EDE8 - cmp r1, #0 - beq _0814EDA6 - ldr r4, _0814EDEC -_0814EDA6: - ldrb r1, [r4] - adds r0, r1, #0 - ldr r3, _0814EDF0 - ldr r2, _0814EDF4 - mov ip, r2 - adds r2, r5, #0 - cmp r0, #0xff - beq _0814EDC8 -_0814EDB6: - mov r5, r8 - adds r0, r5, r6 - strb r1, [r0] - adds r6, #1 - adds r4, #1 - ldrb r1, [r4] - adds r0, r1, #0 - cmp r0, #0xff - bne _0814EDB6 -_0814EDC8: - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - add r0, ip - movs r1, #2 - mov r2, sp - bl GetMonData - b _0814EE12 - .align 2, 0 -_0814EDE0: .4byte gUnknown_2023EB2 -_0814EDE4: .4byte gUnknown_2022C90 -_0814EDE8: .4byte gUnknown_85AB009 -_0814EDEC: .4byte gUnknown_85AB00F -_0814EDF0: .4byte gUnknown_2023D12 -_0814EDF4: .4byte gUnknown_20243E8 -_0814EDF8: - ldr r1, _0814EE1C - ldrb r0, [r5] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0814EE20 - adds r0, r0, r1 - movs r1, #2 - mov r2, sp - bl GetMonData -_0814EE12: - mov r0, sp - bl StringGetEnd10 - bl _0814F5DA - .align 2, 0 -_0814EE1C: .4byte gUnknown_2023D12 -_0814EE20: .4byte gUnknown_2024190 -_0814EE24: - ldr r5, _0814EE7C - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0814EE94 - ldr r0, _0814EE80 - ldr r1, [r0] - movs r0, #8 - ands r1, r0 - ldr r4, _0814EE84 - cmp r1, #0 - beq _0814EE42 - ldr r4, _0814EE88 -_0814EE42: - ldrb r1, [r4] - adds r0, r1, #0 - ldr r3, _0814EE8C - ldr r2, _0814EE90 - mov ip, r2 - adds r2, r5, #0 - cmp r0, #0xff - beq _0814EE64 -_0814EE52: - mov r5, r8 - adds r0, r5, r6 - strb r1, [r0] - adds r6, #1 - adds r4, #1 - ldrb r1, [r4] - adds r0, r1, #0 - cmp r0, #0xff - bne _0814EE52 -_0814EE64: - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - add r0, ip - movs r1, #2 - mov r2, sp - bl GetMonData - b _0814EEAE - .align 2, 0 -_0814EE7C: .4byte gUnknown_2023D08 -_0814EE80: .4byte gUnknown_2022C90 -_0814EE84: .4byte gUnknown_85AB009 -_0814EE88: .4byte gUnknown_85AB00F -_0814EE8C: .4byte gUnknown_2023D12 -_0814EE90: .4byte gUnknown_20243E8 -_0814EE94: - ldr r1, _0814EEB8 - ldrb r0, [r5] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0814EEBC - adds r0, r0, r1 - movs r1, #2 - mov r2, sp - bl GetMonData -_0814EEAE: - mov r0, sp - bl StringGetEnd10 - b _0814F5DA - .align 2, 0 -_0814EEB8: .4byte gUnknown_2023D12 -_0814EEBC: .4byte gUnknown_2024190 -_0814EEC0: - ldr r5, _0814EF18 - ldrb r0, [r5, #0x17] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0814EF30 - ldr r0, _0814EF1C - ldr r1, [r0] - movs r0, #8 - ands r1, r0 - ldr r4, _0814EF20 - cmp r1, #0 - beq _0814EEDE - ldr r4, _0814EF24 -_0814EEDE: - ldrb r1, [r4] - adds r0, r1, #0 - ldr r3, _0814EF28 - ldr r2, _0814EF2C - mov ip, r2 - adds r2, r5, #0 - cmp r0, #0xff - beq _0814EF00 -_0814EEEE: - mov r5, r8 - adds r0, r5, r6 - strb r1, [r0] - adds r6, #1 - adds r4, #1 - ldrb r1, [r4] - adds r0, r1, #0 - cmp r0, #0xff - bne _0814EEEE -_0814EF00: - ldrb r0, [r2, #0x17] - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - add r0, ip - movs r1, #2 - mov r2, sp - bl GetMonData - b _0814EF4A - .align 2, 0 -_0814EF18: .4byte gUnknown_2024118 -_0814EF1C: .4byte gUnknown_2022C90 -_0814EF20: .4byte gUnknown_85AB009 -_0814EF24: .4byte gUnknown_85AB00F -_0814EF28: .4byte gUnknown_2023D12 -_0814EF2C: .4byte gUnknown_20243E8 -_0814EF30: - ldr r1, _0814EF54 - ldrb r0, [r5, #0x17] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0814EF58 - adds r0, r0, r1 - movs r1, #2 - mov r2, sp - bl GetMonData -_0814EF4A: - mov r0, sp - bl StringGetEnd10 - b _0814F5DA - .align 2, 0 -_0814EF54: .4byte gUnknown_2023D12 -_0814EF58: .4byte gUnknown_2024190 -_0814EF5C: - ldr r0, _0814EF70 - ldr r2, [r0] - ldrh r1, [r2] - movs r0, #0xb1 - lsls r0, r0, #1 - cmp r1, r0 - bhi _0814EF82 - ldrh r0, [r2] - b _0814EFA2 - .align 2, 0 -_0814EF70: .4byte gUnknown_203A874 -_0814EF74: - ldr r0, _0814EF94 - ldr r2, [r0] - ldrh r1, [r2, #2] - movs r0, #0xb1 - lsls r0, r0, #1 - cmp r1, r0 - bls _0814EFA0 -_0814EF82: - ldr r0, _0814EF98 - ldr r0, [r0] - adds r0, #0x8e - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - ldr r1, _0814EF9C - adds r4, r0, r1 - b _0814F5DC - .align 2, 0 -_0814EF94: .4byte gUnknown_203A874 -_0814EF98: .4byte gUnknown_2024140 -_0814EF9C: .4byte gUnknown_85ABC9A -_0814EFA0: - ldrh r0, [r2, #2] -_0814EFA2: - lsls r0, r0, #3 - ldr r1, _0814EFAC - adds r4, r0, r1 - b _0814F5DC - .align 2, 0 -_0814EFAC: .4byte gUnknown_82EACC4 -_0814EFB0: - ldr r0, _0814EFE4 - ldr r1, [r0] - ldr r0, _0814EFE8 - ands r0, r1 - cmp r0, #0 - beq _0814F086 - ldr r2, _0814EFEC - ldrh r0, [r2] - cmp r0, #0xaf - bne _0814F07C - movs r0, #0x40 - ands r1, r0 - cmp r1, #0 - bne _0814F02C - ldr r0, _0814EFF0 - adds r0, #0x25 - ldrb r0, [r0] - cmp r0, #0 - beq _0814EFF8 - ldr r2, _0814EFF4 - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0814F004 - b _0814F074 - .align 2, 0 -_0814EFE4: .4byte gUnknown_2022C90 -_0814EFE8: .4byte gUnknown_2000002 -_0814EFEC: .4byte gUnknown_2023EAC -_0814EFF0: .4byte gUnknown_2024118 -_0814EFF4: .4byte gUnknown_2023EB3 -_0814EFF8: - ldr r2, _0814F020 - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0814F074 -_0814F004: - ldrb r0, [r2] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _0814F024 - adds r1, r1, r0 - mov r0, sp - bl StringCopy - ldr r1, _0814F028 - mov r0, sp - bl StringAppend - b _0814F5DA - .align 2, 0 -_0814F020: .4byte gUnknown_2023EB3 -_0814F024: .4byte gUnknown_20240A8 -_0814F028: .4byte gUnknown_85AB28D -_0814F02C: - ldr r2, _0814F060 - ldr r0, _0814F064 - adds r0, #0x25 - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, _0814F068 - ldrb r2, [r1] - ldrh r0, [r0, #0x18] - cmp r0, r2 - bne _0814F074 - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - ldr r0, _0814F06C - adds r1, r1, r0 - mov r0, sp - bl StringCopy - ldr r1, _0814F070 - mov r0, sp - bl StringAppend - b _0814F5DA - .align 2, 0 -_0814F060: .4byte gUnknown_20226A0 -_0814F064: .4byte gUnknown_2024118 -_0814F068: .4byte gUnknown_2023EB3 -_0814F06C: .4byte gUnknown_20240A8 -_0814F070: .4byte gUnknown_85AB28D -_0814F074: - ldr r4, _0814F078 - b _0814F5DC - .align 2, 0 -_0814F078: .4byte gUnknown_85AB288 -_0814F07C: - ldrh r0, [r2] - mov r1, sp - bl sub_080D5EC8 - b _0814F5DA -_0814F086: - ldr r0, _0814F094 - ldrh r0, [r0] - mov r1, sp - bl sub_080D5EC8 - b _0814F5DA - .align 2, 0 -_0814F094: .4byte gUnknown_2023EAC -_0814F098: - ldr r0, _0814F09C - b _0814F0D8 - .align 2, 0 -_0814F09C: .4byte gUnknown_2023EAE -_0814F0A0: - ldr r1, _0814F0A8 - ldr r0, _0814F0AC - b _0814F0D4 - .align 2, 0 -_0814F0A8: .4byte gUnknown_203A870 -_0814F0AC: .4byte gUnknown_2023EAF -_0814F0B0: - ldr r1, _0814F0B8 - ldr r0, _0814F0BC - b _0814F0D4 - .align 2, 0 -_0814F0B8: .4byte gUnknown_203A870 -_0814F0BC: .4byte gUnknown_2023EB0 -_0814F0C0: - ldr r1, _0814F0C8 - ldr r0, _0814F0CC - ldrb r0, [r0, #0x17] - b _0814F0D6 - .align 2, 0 -_0814F0C8: .4byte gUnknown_203A870 -_0814F0CC: .4byte gUnknown_2024118 -_0814F0D0: - ldr r1, _0814F0E4 - ldr r0, _0814F0E8 -_0814F0D4: - ldrb r0, [r0] -_0814F0D6: - adds r0, r0, r1 -_0814F0D8: - ldrb r0, [r0] - lsls r0, r0, #3 - ldr r1, _0814F0EC - adds r4, r0, r1 - b _0814F5DC - .align 2, 0 -_0814F0E4: .4byte gUnknown_203A870 -_0814F0E8: .4byte gUnknown_2023EB2 -_0814F0EC: .4byte gUnknown_82EBDC4 -_0814F0F0: - ldr r0, _0814F104 - ldr r1, [r0] - movs r0, #0x80 - lsls r0, r0, #0x14 - ands r0, r1 - cmp r0, #0 - beq _0814F108 - bl sub_0806B338 - b _0814F5B8 - .align 2, 0 -_0814F104: .4byte gUnknown_2022C90 -_0814F108: - ldr r3, _0814F120 - ldrh r2, [r3] - movs r0, #0xc0 - lsls r0, r0, #4 - cmp r2, r0 - bne _0814F124 - bl sub_080686F0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b _0814F5BC - .align 2, 0 -_0814F120: .4byte gUnknown_203886A -_0814F124: - ldr r0, _0814F130 - cmp r2, r0 - bne _0814F134 - bl sub_081A48F8 - b _0814F5B8 - .align 2, 0 -_0814F130: .4byte 0x000003FE -_0814F134: - ldr r0, _0814F140 - ands r0, r1 - cmp r0, #0 - beq _0814F144 - ldrh r0, [r3] - b _0814F5B4 - .align 2, 0 -_0814F140: .4byte 0x003F0100 -_0814F144: - movs r0, #0x80 - lsls r0, r0, #0x13 - ands r0, r1 - cmp r0, #0 - beq _0814F156 - ldrh r0, [r3] - bl GetTrainerHillOpponentClass - b _0814F5B8 -_0814F156: - movs r0, #0x80 - lsls r0, r0, #4 - ands r1, r0 - cmp r1, #0 - beq _0814F166 - bl sub_081650E0 - b _0814F5B8 -_0814F166: - ldr r1, _0814F174 - ldrh r0, [r3] - lsls r0, r0, #5 - adds r0, r0, r1 - ldrb r1, [r0, #1] - movs r0, #0xb - b _0814F5BE - .align 2, 0 -_0814F174: .4byte gUnknown_82E383C -_0814F178: - ldr r0, _0814F1AC - ldr r1, [r0] - movs r0, #0x80 - lsls r0, r0, #0x14 - ands r0, r1 - cmp r0, #0 - beq _0814F1B4 - movs r3, #0 - ldr r0, _0814F1B0 - ldr r2, [r0] -_0814F18C: - mov r1, sp - adds r0, r1, r3 - ldr r1, [r2] - adds r1, #2 - adds r1, r1, r3 - ldrb r1, [r1] - strb r1, [r0] - adds r3, #1 - cmp r3, #6 - ble _0814F18C - mov r2, sp - adds r1, r2, r3 - movs r0, #0xff - strb r0, [r1] - b _0814F5DA - .align 2, 0 -_0814F1AC: .4byte gUnknown_2022C90 -_0814F1B0: .4byte gUnknown_202414C -_0814F1B4: - ldr r3, _0814F1EC - ldrh r2, [r3] - movs r0, #0xc0 - lsls r0, r0, #4 - cmp r2, r0 - bne _0814F1F4 - movs r3, #0 - ldr r2, _0814F1F0 - movs r1, #1 - adds r0, r7, #0 - eors r0, r1 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r2, #8 - adds r2, r1, r2 -_0814F1D4: - mov r5, sp - adds r1, r5, r3 - ldrb r0, [r2] - strb r0, [r1] - adds r2, #1 - adds r3, #1 - cmp r3, #6 - ble _0814F1D4 - adds r1, r5, r3 - movs r0, #0xff - strb r0, [r1] - b _0814F5DA - .align 2, 0 -_0814F1EC: .4byte gUnknown_203886A -_0814F1F0: .4byte gUnknown_20226A0 -_0814F1F4: - ldr r0, _0814F204 - cmp r2, r0 - bne _0814F208 - mov r0, sp - bl CopyFrontierBrainTrainerName - b _0814F5DA - .align 2, 0 -_0814F204: .4byte 0x000003FE -_0814F208: - ldr r0, _0814F214 - ands r0, r1 - cmp r0, #0 - beq _0814F218 - ldrh r1, [r3] - b _0814F5D4 - .align 2, 0 -_0814F214: .4byte 0x003F0100 -_0814F218: - movs r0, #0x80 - lsls r0, r0, #0x13 - ands r0, r1 - cmp r0, #0 - beq _0814F22C - ldrh r1, [r3] - mov r0, sp - bl ScrCmd_showmonpic - b _0814F5DA -_0814F22C: - movs r0, #0x80 - lsls r0, r0, #4 - ands r1, r0 - cmp r1, #0 - beq _0814F23E - mov r0, sp - bl GetEreaderTrainerName - b _0814F5DA -_0814F23E: - ldrh r0, [r3] - b _0814F514 -_0814F242: - lsls r0, r7, #3 - subs r0, r0, r7 - lsls r0, r0, #2 - ldr r1, _0814F250 - adds r4, r0, r1 - b _0814F5DC - .align 2, 0 -_0814F250: .4byte gUnknown_20226A8 -_0814F254: - ldr r4, _0814F264 - lsls r0, r7, #3 - subs r0, r0, r7 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r0, #0x18] - movs r0, #2 - b _0814F28A - .align 2, 0 -_0814F264: .4byte gUnknown_20226A0 -_0814F268: - ldr r4, _0814F278 - lsls r0, r7, #3 - subs r0, r0, r7 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r0, #0x18] - movs r0, #1 - b _0814F28A - .align 2, 0 -_0814F278: .4byte gUnknown_20226A0 -_0814F27C: - ldr r4, _0814F29C - lsls r0, r7, #3 - subs r0, r0, r7 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r0, #0x18] - movs r0, #3 -_0814F28A: - eors r0, r1 - bl GetBattlerMultiplayerId - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r4, #8 - adds r4, r1, r4 - b _0814F5DC - .align 2, 0 -_0814F29C: .4byte gUnknown_20226A0 -_0814F2A0: - ldr r0, _0814F2B4 - ldrb r0, [r0, #0x17] - bl GetBattlerMultiplayerId - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _0814F2B8 - adds r4, r1, r0 - b _0814F5DC - .align 2, 0 -_0814F2B4: .4byte gUnknown_2024118 -_0814F2B8: .4byte gUnknown_20226A8 -_0814F2BC: - ldr r0, _0814F2D0 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - beq _0814F2D8 - ldr r4, _0814F2D4 - b _0814F5DC - .align 2, 0 -_0814F2D0: .4byte gUnknown_2022C90 -_0814F2D4: .4byte gUnknown_20226A8 -_0814F2D8: - ldr r0, _0814F2E0 - ldr r4, [r0] - b _0814F5DC - .align 2, 0 -_0814F2E0: .4byte gUnknown_3005AF0 -_0814F2E4: - ldr r0, _0814F2F8 - ldr r1, [r0] - ldr r0, _0814F2FC - ands r0, r1 - cmp r0, #0 - beq _0814F304 - ldr r0, _0814F300 - ldrh r1, [r0] - movs r0, #2 - b _0814F576 - .align 2, 0 -_0814F2F8: .4byte gUnknown_2022C90 -_0814F2FC: .4byte 0x003F0100 -_0814F300: .4byte gUnknown_203886A -_0814F304: - movs r0, #0x80 - lsls r0, r0, #0x13 - ands r1, r0 - cmp r1, #0 - beq _0814F31C - ldr r0, _0814F318 - ldrh r1, [r0] - movs r0, #4 - b _0814F5A0 - .align 2, 0 -_0814F318: .4byte gUnknown_203886A -_0814F31C: - bl GetTrainerALoseText - adds r4, r0, #0 - b _0814F5DC -_0814F324: - ldr r0, _0814F334 - ldr r1, [r0] - ldr r0, _0814F338 - ands r0, r1 - cmp r0, #0 - beq _0814F340 - ldr r0, _0814F33C - b _0814F572 - .align 2, 0 -_0814F334: .4byte gUnknown_2022C90 -_0814F338: .4byte 0x003F0100 -_0814F33C: .4byte gUnknown_203886A -_0814F340: - movs r0, #0x80 - lsls r0, r0, #0x13 - ands r1, r0 - cmp r1, #0 - bne _0814F34C - b _0814F5DC -_0814F34C: - ldr r0, _0814F350 - b _0814F59C - .align 2, 0 -_0814F350: .4byte gUnknown_203886A -_0814F354: - ldr r0, _0814F3A8 - ldrb r0, [r0, #0x17] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0814F3C0 - ldr r0, _0814F3AC - ldr r1, [r0] - movs r0, #8 - ands r1, r0 - ldr r4, _0814F3B0 - cmp r1, #0 - beq _0814F372 - ldr r4, _0814F3B4 -_0814F372: - ldrb r1, [r4] - adds r0, r1, #0 - ldr r2, _0814F3B8 - mov ip, r2 - ldr r2, _0814F3BC - cmp r0, #0xff - beq _0814F392 -_0814F380: - mov r3, r8 - adds r0, r3, r6 - strb r1, [r0] - adds r6, #1 - adds r4, #1 - ldrb r1, [r4] - adds r0, r1, #0 - cmp r0, #0xff - bne _0814F380 -_0814F392: - ldr r0, [r2] - adds r0, #0x52 - ldrb r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - add r0, ip - movs r1, #2 - mov r2, sp - bl GetMonData - b _0814F3D8 - .align 2, 0 -_0814F3A8: .4byte gUnknown_2024118 -_0814F3AC: .4byte gUnknown_2022C90 -_0814F3B0: .4byte gUnknown_85AB009 -_0814F3B4: .4byte gUnknown_85AB00F -_0814F3B8: .4byte gUnknown_20243E8 -_0814F3BC: .4byte gUnknown_2024140 -_0814F3C0: - ldr r0, _0814F3E0 - ldr r0, [r0] - adds r0, #0x52 - ldrb r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0814F3E4 - adds r0, r0, r1 - movs r1, #2 - mov r2, sp - bl GetMonData -_0814F3D8: - mov r0, sp - bl StringGetEnd10 - b _0814F5DA - .align 2, 0 -_0814F3E0: .4byte gUnknown_2024140 -_0814F3E4: .4byte gUnknown_2024190 -_0814F3E8: - ldr r0, _0814F3FC - bl FlagGet - lsls r0, r0, #0x18 - ldr r4, _0814F400 - cmp r0, #0 - bne _0814F3F8 - b _0814F5DC -_0814F3F8: - ldr r4, _0814F404 - b _0814F5DC - .align 2, 0 -_0814F3FC: .4byte 0x000008AB -_0814F400: .4byte gUnknown_85AB225 -_0814F404: .4byte gUnknown_85AB22A -_0814F408: - ldr r0, _0814F40C - b _0814F412 - .align 2, 0 -_0814F40C: .4byte gUnknown_2023EAF -_0814F410: - ldr r0, _0814F428 -_0814F412: - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - ldr r4, _0814F42C - cmp r0, #0 - beq _0814F422 - b _0814F5DC -_0814F422: - ldr r4, _0814F430 - b _0814F5DC - .align 2, 0 -_0814F428: .4byte gUnknown_2023EB0 -_0814F42C: .4byte gUnknown_85AB020 -_0814F430: .4byte gUnknown_85AB025 -_0814F434: - ldr r0, _0814F438 - b _0814F43E - .align 2, 0 -_0814F438: .4byte gUnknown_2023EAF -_0814F43C: - ldr r0, _0814F454 -_0814F43E: - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - ldr r4, _0814F458 - cmp r0, #0 - beq _0814F44E - b _0814F5DC -_0814F44E: - ldr r4, _0814F45C - b _0814F5DC - .align 2, 0 -_0814F454: .4byte gUnknown_2023EB0 -_0814F458: .4byte gUnknown_85AB016 -_0814F45C: .4byte gUnknown_85AB01B -_0814F460: - ldr r0, _0814F464 - b _0814F46A - .align 2, 0 -_0814F464: .4byte gUnknown_2023EAF -_0814F468: - ldr r0, _0814F480 -_0814F46A: - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - ldr r4, _0814F484 - cmp r0, #0 - beq _0814F47A - b _0814F5DC -_0814F47A: - ldr r4, _0814F488 - b _0814F5DC - .align 2, 0 -_0814F480: .4byte gUnknown_2023EB0 -_0814F484: .4byte gUnknown_85AB02A -_0814F488: .4byte gUnknown_85AB02F -_0814F48C: - ldr r0, _0814F49C - ldr r1, [r0] - ldr r0, _0814F4A0 - ands r0, r1 - cmp r0, #0 - beq _0814F4A8 - ldr r0, _0814F4A4 - b _0814F5B2 - .align 2, 0 -_0814F49C: .4byte gUnknown_2022C90 -_0814F4A0: .4byte 0x003F0100 -_0814F4A4: .4byte gUnknown_203886C -_0814F4A8: - movs r0, #0x80 - lsls r0, r0, #0x13 - ands r1, r0 - cmp r1, #0 - beq _0814F4C0 - ldr r0, _0814F4BC - ldrh r0, [r0] - bl GetTrainerHillOpponentClass - b _0814F5B8 - .align 2, 0 -_0814F4BC: .4byte gUnknown_203886C -_0814F4C0: - ldr r1, _0814F4D0 - ldr r0, _0814F4D4 - ldrh r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r1 - ldrb r1, [r0, #1] - movs r0, #0xb - b _0814F5BE - .align 2, 0 -_0814F4D0: .4byte gUnknown_82E383C -_0814F4D4: .4byte gUnknown_203886C -_0814F4D8: - ldr r0, _0814F4E8 - ldr r1, [r0] - ldr r0, _0814F4EC - ands r0, r1 - cmp r0, #0 - beq _0814F4F4 - ldr r0, _0814F4F0 - b _0814F5D2 - .align 2, 0 -_0814F4E8: .4byte gUnknown_2022C90 -_0814F4EC: .4byte 0x003F0100 -_0814F4F0: .4byte gUnknown_203886C -_0814F4F4: - movs r0, #0x80 - lsls r0, r0, #0x13 - ands r1, r0 - cmp r1, #0 - beq _0814F510 - ldr r0, _0814F50C - ldrh r1, [r0] - mov r0, sp - bl ScrCmd_showmonpic - b _0814F5DA - .align 2, 0 -_0814F50C: .4byte gUnknown_203886C -_0814F510: - ldr r0, _0814F51C - ldrh r0, [r0] -_0814F514: - lsls r0, r0, #5 - ldr r1, _0814F520 - adds r4, r0, r1 - b _0814F5DC - .align 2, 0 -_0814F51C: .4byte gUnknown_203886C -_0814F520: .4byte gUnknown_82E3840 -_0814F524: - ldr r0, _0814F538 - ldr r1, [r0] - ldr r0, _0814F53C - ands r0, r1 - cmp r0, #0 - beq _0814F544 - ldr r0, _0814F540 - ldrh r1, [r0] - movs r0, #2 - b _0814F576 - .align 2, 0 -_0814F538: .4byte gUnknown_2022C90 -_0814F53C: .4byte 0x003F0100 -_0814F540: .4byte gUnknown_203886C -_0814F544: - movs r0, #0x80 - lsls r0, r0, #0x13 - ands r1, r0 - cmp r1, #0 - beq _0814F55C - ldr r0, _0814F558 - ldrh r1, [r0] - movs r0, #4 - b _0814F5A0 - .align 2, 0 -_0814F558: .4byte gUnknown_203886C -_0814F55C: - bl GetTrainerBLoseText - adds r4, r0, #0 - b _0814F5DC -_0814F564: - ldr r0, _0814F580 - ldr r1, [r0] - ldr r0, _0814F584 - ands r0, r1 - cmp r0, #0 - beq _0814F590 - ldr r0, _0814F588 -_0814F572: - ldrh r1, [r0] - movs r0, #1 -_0814F576: - bl CopyFrontierTrainerText - ldr r4, _0814F58C - b _0814F5DC - .align 2, 0 -_0814F580: .4byte gUnknown_2022C90 -_0814F584: .4byte 0x003F0100 -_0814F588: .4byte gUnknown_203886C -_0814F58C: .4byte gUnknown_2021C7C -_0814F590: - movs r0, #0x80 - lsls r0, r0, #0x13 - ands r1, r0 - cmp r1, #0 - beq _0814F5DC - ldr r0, _0814F5A8 -_0814F59C: - ldrh r1, [r0] - movs r0, #3 -_0814F5A0: - bl CopyTrainerHillTrainerText - ldr r4, _0814F5AC - b _0814F5DC - .align 2, 0 -_0814F5A8: .4byte gUnknown_203886C -_0814F5AC: .4byte gUnknown_2021C7C -_0814F5B0: - ldr r0, _0814F5C8 -_0814F5B2: - ldrh r0, [r0] -_0814F5B4: - bl GetFrontierOpponentClass -_0814F5B8: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_0814F5BC: - movs r1, #0xb -_0814F5BE: - muls r1, r0, r1 - ldr r0, _0814F5CC - adds r4, r1, r0 - b _0814F5DC - .align 2, 0 -_0814F5C8: .4byte gUnknown_203886E -_0814F5CC: .4byte gUnknown_82E3564 -_0814F5D0: - ldr r0, _0814F628 -_0814F5D2: - ldrh r1, [r0] -_0814F5D4: - mov r0, sp - bl sub_08162D24 -_0814F5DA: - mov r4, sp -_0814F5DC: - ldrb r1, [r4] - adds r0, r1, #0 - mov r5, sb - ldrb r2, [r5] - mov r3, sb - adds r3, #1 - cmp r0, #0xff - beq _0814F5FE -_0814F5EC: - mov r5, r8 - adds r0, r5, r6 - strb r1, [r0] - adds r6, #1 - adds r4, #1 - ldrb r1, [r4] - adds r0, r1, #0 - cmp r0, #0xff - bne _0814F5EC -_0814F5FE: - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x24 - beq _0814F612 - cmp r0, #0x30 - beq _0814F612 - cmp r0, #0x25 - beq _0814F612 - cmp r0, #0x31 - bne _0814F638 -_0814F612: - mov r0, r8 - adds r1, r0, r6 - movs r0, #0xfc - strb r0, [r1] - adds r6, #1 - mov r2, r8 - adds r1, r2, r6 - movs r0, #9 - strb r0, [r1] - adds r6, #1 - b _0814F638 - .align 2, 0 -_0814F628: .4byte gUnknown_203886E - thumb_func_end sub_0814E7F0 - - thumb_func_start sub_0814F62C -sub_0814F62C: @ 0x0814F62C - mov r3, r8 - adds r0, r3, r6 - strb r1, [r0] - adds r6, #1 - mov r3, sb - adds r3, #1 -_0814F638: - mov sb, r3 - ldrb r1, [r3] - thumb_func_end sub_0814F62C - - thumb_func_start sub_0814F63C -sub_0814F63C: @ 0x0814F63C - adds r0, r1, #0 - cmp r0, #0xff - beq _0814F646 - bl sub_0814E7F0 -_0814F646: - mov r5, r8 - adds r1, r5, r6 - mov r2, sb - ldrb r0, [r2] - strb r0, [r1] - adds r6, #1 - adds r0, r6, #0 - add sp, #0xc - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0814F63C - - thumb_func_start ExpandBattleTextBuffPlaceholders -ExpandBattleTextBuffPlaceholders: @ 0x0814F664 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - adds r7, r0, #0 - adds r6, r1, #0 - movs r5, #1 - movs r0, #0 - mov r8, r0 - movs r0, #0xff - strb r0, [r6] - ldrb r0, [r7, #1] - cmp r0, #0xff - bne _0814F682 - b _0814F902 -_0814F682: - adds r0, r7, r5 - ldrb r1, [r0] - adds r4, r0, #0 - cmp r1, #0xa - bls _0814F68E - b _0814F8F8 -_0814F68E: - lsls r0, r1, #2 - ldr r1, _0814F698 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0814F698: .4byte _0814F69C -_0814F69C: @ jump table - .4byte _0814F6C8 @ case 0 - .4byte _0814F6E4 @ case 1 - .4byte _0814F738 @ case 2 - .4byte _0814F750 @ case 3 - .4byte _0814F760 @ case 4 - .4byte _0814F7D8 @ case 5 - .4byte _0814F7EC @ case 6 - .4byte _0814F7FE @ case 7 - .4byte _0814F844 @ case 8 - .4byte _0814F858 @ case 9 - .4byte _0814F870 @ case 10 -_0814F6C8: - adds r0, r5, r7 - ldrb r1, [r0, #1] - ldrb r0, [r0, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldr r0, _0814F6E0 - subs r1, #0xc - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - b _0814F8D6 - .align 2, 0 -_0814F6E0: .4byte gUnknown_85AB3DC -_0814F6E4: - ldrb r0, [r4, #1] - cmp r0, #2 - beq _0814F700 - cmp r0, #2 - bgt _0814F6F4 - cmp r0, #1 - beq _0814F6FA - b _0814F722 -_0814F6F4: - cmp r0, #4 - beq _0814F708 - b _0814F722 -_0814F6FA: - ldrb r4, [r4, #3] - mov r8, r4 - b _0814F722 -_0814F700: - ldrb r1, [r4, #3] - ldrb r0, [r4, #4] - lsls r0, r0, #8 - b _0814F71E -_0814F708: - ldrb r0, [r4, #3] - mov r8, r0 - ldrb r0, [r4, #4] - lsls r0, r0, #8 - mov r1, r8 - orrs r1, r0 - ldrb r0, [r4, #5] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r4, #6] - lsls r0, r0, #0x18 -_0814F71E: - orrs r1, r0 - mov r8, r1 -_0814F722: - adds r4, r5, r7 - ldrb r3, [r4, #2] - adds r0, r6, #0 - mov r1, r8 - movs r2, #0 - bl sub_080089D8 - adds r0, r5, #3 - ldrb r4, [r4, #1] - adds r5, r0, r4 - b _0814F8F8 -_0814F738: - adds r0, r5, r7 - ldrb r1, [r0, #1] - ldrb r0, [r0, #2] - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #3 - ldr r0, _0814F74C - adds r1, r1, r0 - b _0814F8D6 - .align 2, 0 -_0814F74C: .4byte gUnknown_82EACC4 -_0814F750: - adds r0, r5, r7 - ldrb r0, [r0, #1] - lsls r1, r0, #2 - adds r1, r1, r0 - ldr r0, _0814F75C - b _0814F860 - .align 2, 0 -_0814F75C: .4byte gUnknown_82EBC88 -_0814F760: - ldrb r0, [r4, #1] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0814F784 - ldrb r1, [r4, #2] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0814F780 - adds r0, r0, r1 - movs r1, #2 - mov r2, sp - bl GetMonData - b _0814F7C0 - .align 2, 0 -_0814F780: .4byte gUnknown_2024190 -_0814F784: - ldr r0, _0814F79C - ldr r0, [r0] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _0814F7A4 - ldr r1, _0814F7A0 - adds r0, r6, #0 - bl StringAppend - b _0814F7AC - .align 2, 0 -_0814F79C: .4byte gUnknown_2022C90 -_0814F7A0: .4byte gUnknown_85AB00F -_0814F7A4: - ldr r1, _0814F7D0 - adds r0, r6, #0 - bl StringAppend -_0814F7AC: - adds r0, r5, r7 - ldrb r1, [r0, #2] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0814F7D4 - adds r0, r0, r1 - movs r1, #2 - mov r2, sp - bl GetMonData -_0814F7C0: - mov r0, sp - bl StringGetEnd10 - adds r0, r6, #0 - mov r1, sp - bl StringAppend - b _0814F8F6 - .align 2, 0 -_0814F7D0: .4byte gUnknown_85AB009 -_0814F7D4: .4byte gUnknown_20243E8 -_0814F7D8: - ldr r1, _0814F7E8 - adds r0, r5, r7 - ldrb r0, [r0, #1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - b _0814F862 - .align 2, 0 -_0814F7E8: .4byte gUnknown_85AB08C -_0814F7EC: - adds r0, r5, r7 - ldrb r1, [r0, #1] - ldrb r0, [r0, #2] - lsls r0, r0, #8 - orrs r1, r0 - adds r0, r6, #0 - bl sub_0806B3DC - b _0814F8F6 -_0814F7FE: - adds r4, r5, r7 - ldrb r0, [r4, #1] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0814F824 - ldrb r1, [r4, #2] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0814F820 - adds r0, r0, r1 - movs r1, #2 - adds r2, r6, #0 - bl GetMonData - b _0814F836 - .align 2, 0 -_0814F820: .4byte gUnknown_2024190 -_0814F824: - ldrb r1, [r4, #2] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0814F840 - adds r0, r0, r1 - movs r1, #2 - adds r2, r6, #0 - bl GetMonData -_0814F836: - adds r0, r6, #0 - bl StringGetEnd10 - b _0814F8F6 - .align 2, 0 -_0814F840: .4byte gUnknown_20243E8 -_0814F844: - ldr r1, _0814F854 - adds r0, r5, r7 - ldrb r0, [r0, #1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - b _0814F862 - .align 2, 0 -_0814F854: .4byte gUnknown_85AB0D0 -_0814F858: - adds r0, r5, r7 - ldrb r1, [r0, #1] - lsls r1, r1, #3 - ldr r0, _0814F86C -_0814F860: - adds r1, r1, r0 -_0814F862: - adds r0, r6, #0 - bl StringAppend - adds r5, #2 - b _0814F8F8 - .align 2, 0 -_0814F86C: .4byte gUnknown_82EBDC4 -_0814F870: - adds r0, r5, r7 - ldrb r2, [r0, #1] - ldrb r0, [r0, #2] - lsls r0, r0, #8 - orrs r2, r0 - ldr r0, _0814F8B8 - ldr r0, [r0] - ldr r1, _0814F8BC - ands r0, r1 - cmp r0, #0 - beq _0814F8EE - cmp r2, #0xaf - bne _0814F8E4 - ldr r2, _0814F8C0 - ldr r0, _0814F8C4 - adds r0, #0x25 - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, _0814F8C8 - ldrb r2, [r1] - ldrh r0, [r0, #0x18] - cmp r0, r2 - bne _0814F8D4 - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - ldr r0, _0814F8CC - adds r1, r1, r0 - adds r0, r6, #0 - bl StringCopy - ldr r1, _0814F8D0 - b _0814F8D6 - .align 2, 0 -_0814F8B8: .4byte gUnknown_2022C90 -_0814F8BC: .4byte gUnknown_2000002 -_0814F8C0: .4byte gUnknown_20226A0 -_0814F8C4: .4byte gUnknown_2024118 -_0814F8C8: .4byte gUnknown_2023EB3 -_0814F8CC: .4byte gUnknown_20240A8 -_0814F8D0: .4byte gUnknown_85AB28D -_0814F8D4: - ldr r1, _0814F8E0 -_0814F8D6: - adds r0, r6, #0 - bl StringAppend - b _0814F8F6 - .align 2, 0 -_0814F8E0: .4byte gUnknown_85AB288 -_0814F8E4: - adds r0, r2, #0 - adds r1, r6, #0 - bl sub_080D5EC8 - b _0814F8F6 -_0814F8EE: - adds r0, r2, #0 - adds r1, r6, #0 - bl sub_080D5EC8 -_0814F8F6: - adds r5, #3 -_0814F8F8: - adds r0, r7, r5 - ldrb r0, [r0] - cmp r0, #0xff - beq _0814F902 - b _0814F682 -_0814F902: - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ExpandBattleTextBuffPlaceholders - - thumb_func_start ChooseMoveUsedParticle -ChooseMoveUsedParticle: @ 0x0814F910 - push {r4, r5, lr} - adds r4, r0, #0 - movs r2, #0 - ldr r5, _0814F944 - ldr r3, _0814F948 -_0814F91A: - cmp r2, #4 - beq _0814F930 - ldrh r1, [r3] - cmp r1, #0 - bne _0814F926 - adds r2, #1 -_0814F926: - ldr r0, [r5] - adds r3, #2 - ldrh r0, [r0] - cmp r1, r0 - bne _0814F91A -_0814F930: - cmp r2, #0 - blt _0814F95C - cmp r2, #2 - bgt _0814F950 - ldr r1, _0814F94C - adds r0, r4, #0 - bl StringCopy - b _0814F95C - .align 2, 0 -_0814F944: .4byte gUnknown_203A874 -_0814F948: .4byte gUnknown_85AC146 -_0814F94C: .4byte gUnknown_85ABC96 -_0814F950: - cmp r2, #4 - bgt _0814F95C - ldr r1, _0814F964 - adds r0, r4, #0 - bl StringCopy -_0814F95C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0814F964: .4byte gUnknown_85ABC98 - thumb_func_end ChooseMoveUsedParticle - - thumb_func_start ChooseTypeOfMoveUsedString -ChooseTypeOfMoveUsedString: @ 0x0814F968 - push {r4, r5, lr} - adds r3, r0, #0 - movs r4, #0 - b _0814F972 -_0814F970: - adds r3, #1 -_0814F972: - ldrb r0, [r3] - cmp r0, #0xff - bne _0814F970 - ldr r1, _0814F9A8 - ldr r5, _0814F9AC - movs r0, #0 - lsls r0, r0, #1 - adds r2, r0, r1 -_0814F982: - cmp r4, #4 - beq _0814F99C - ldrh r1, [r2] - cmp r1, #0 - bne _0814F98E - adds r4, #1 -_0814F98E: - ldr r0, [r5] - adds r2, #2 - ldrh r0, [r0] - cmp r1, r0 - bne _0814F982 - cmp r4, #4 - bhi _0814F9F8 -_0814F99C: - lsls r0, r4, #2 - ldr r1, _0814F9B0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0814F9A8: .4byte gUnknown_85AC146 -_0814F9AC: .4byte gUnknown_203A874 -_0814F9B0: .4byte _0814F9B4 -_0814F9B4: @ jump table - .4byte _0814F9C8 @ case 0 - .4byte _0814F9D0 @ case 1 - .4byte _0814F9D8 @ case 2 - .4byte _0814F9E0 @ case 3 - .4byte _0814F9F0 @ case 4 -_0814F9C8: - ldr r1, _0814F9CC - b _0814F9E2 - .align 2, 0 -_0814F9CC: .4byte gUnknown_85AB03C -_0814F9D0: - ldr r1, _0814F9D4 - b _0814F9E2 - .align 2, 0 -_0814F9D4: .4byte gUnknown_85AB044 -_0814F9D8: - ldr r1, _0814F9DC - b _0814F9E2 - .align 2, 0 -_0814F9DC: .4byte gUnknown_85AB048 -_0814F9E0: - ldr r1, _0814F9EC -_0814F9E2: - adds r0, r3, #0 - bl StringCopy - b _0814F9F8 - .align 2, 0 -_0814F9EC: .4byte gUnknown_85AB04E -_0814F9F0: - ldr r1, _0814FA00 - adds r0, r3, #0 - bl StringCopy -_0814F9F8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0814FA00: .4byte gUnknown_85AB055 - thumb_func_end ChooseTypeOfMoveUsedString - - thumb_func_start sub_0814FA04 -sub_0814FA04: @ 0x0814FA04 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x10 - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - ldr r1, _0814FA30 - ldr r0, _0814FA34 - adds r0, #0x24 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - mov r8, r0 - movs r0, #0x80 - ands r0, r7 - cmp r0, #0 - beq _0814FA38 - movs r0, #0x7f - ands r7, r0 - b _0814FA56 - .align 2, 0 -_0814FA30: .4byte gUnknown_85AC468 -_0814FA34: .4byte gUnknown_2024118 -_0814FA38: - lsls r0, r7, #1 - adds r0, r0, r7 - lsls r0, r0, #2 - add r0, r8 - ldrb r1, [r0] - adds r0, r7, #0 - bl FillWindowPixelBuffer - adds r0, r7, #0 - bl PutWindowTilemap - adds r0, r7, #0 - movs r1, #3 - bl CopyWindowToVram -_0814FA56: - str r4, [sp] - mov r0, sp - strb r7, [r0, #4] - mov r1, sp - lsls r6, r7, #1 - adds r3, r6, r7 - lsls r3, r3, #2 - add r3, r8 - ldrb r0, [r3, #1] - strb r0, [r1, #5] - ldrb r0, [r3, #2] - strb r0, [r1, #6] - ldrb r0, [r3, #3] - strb r0, [r1, #7] - mov r0, sp - ldrb r0, [r0, #6] - strb r0, [r1, #8] - mov r0, sp - ldrb r0, [r0, #7] - strb r0, [r1, #9] - ldrb r0, [r3, #4] - strb r0, [r1, #0xa] - ldrb r0, [r3, #5] - strb r0, [r1, #0xb] - mov r4, sp - ldrb r2, [r4, #0xc] - movs r1, #0x10 - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - strb r0, [r4, #0xc] - mov r2, sp - ldrb r0, [r3, #7] - lsls r0, r0, #4 - movs r5, #0xf - strb r0, [r2, #0xc] - ldrb r2, [r3, #8] - adds r0, r5, #0 - ands r0, r2 - ldrb r2, [r4, #0xd] - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #0xd] - mov r2, sp - ldrb r0, [r3, #9] - lsls r0, r0, #4 - ands r1, r5 - orrs r1, r0 - strb r1, [r2, #0xd] - cmp r7, #0x16 - bne _0814FACC - ldr r0, _0814FAC8 - ldrb r2, [r0] - movs r1, #3 - rsbs r1, r1, #0 - ands r1, r2 - b _0814FAD4 - .align 2, 0 -_0814FAC8: .4byte gUnknown_30030B4 -_0814FACC: - ldr r0, _0814FAF0 - ldrb r1, [r0] - movs r2, #2 - orrs r1, r2 -_0814FAD4: - strb r1, [r0] - adds r3, r0, #0 - ldr r0, _0814FAF4 - ldr r1, [r0] - ldr r2, _0814FAF8 - ands r1, r2 - adds r2, r0, #0 - cmp r1, #0 - beq _0814FAFC - ldrb r0, [r3] - movs r1, #4 - orrs r0, r1 - b _0814FB04 - .align 2, 0 -_0814FAF0: .4byte gUnknown_30030B4 -_0814FAF4: .4byte gUnknown_2022C90 -_0814FAF8: .4byte 0x01000002 -_0814FAFC: - ldrb r1, [r3] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 -_0814FB04: - strb r0, [r3] - cmp r7, #0 - beq _0814FB0E - cmp r7, #0x16 - bne _0814FB58 -_0814FB0E: - ldr r1, [r2] - ldr r0, _0814FB1C - ands r0, r1 - cmp r0, #0 - beq _0814FB20 - movs r6, #1 - b _0814FB48 - .align 2, 0 -_0814FB1C: .4byte gUnknown_2000002 -_0814FB20: - movs r0, #0x80 - lsls r0, r0, #0x11 - ands r1, r0 - cmp r1, #0 - beq _0814FB40 - ldr r4, _0814FB3C - bl sub_08185D1C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r4 - ldrb r6, [r0] - b _0814FB48 - .align 2, 0 -_0814FB3C: .4byte gUnknown_85AC470 -_0814FB40: - bl GetPlayerTextSpeedDelay - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_0814FB48: - ldr r0, _0814FB54 - ldrb r1, [r0] - movs r2, #1 - orrs r1, r2 - strb r1, [r0] - b _0814FB6A - .align 2, 0 -_0814FB54: .4byte gUnknown_30030B4 -_0814FB58: - adds r0, r6, r7 - lsls r0, r0, #2 - add r0, r8 - ldrb r6, [r0, #6] - ldrb r1, [r3] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3] -_0814FB6A: - mov r0, sp - adds r1, r6, #0 - movs r2, #0 - bl AddTextPrinter - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_0814FA04 - - thumb_func_start sub_0814FB80 -sub_0814FB80: @ 0x0814FB80 - push {r4, r5, lr} - ldr r0, _0814FBE0 - ldrb r2, [r0] - lsls r1, r2, #9 - ldr r0, _0814FBE4 - adds r1, r1, r0 - ldr r0, _0814FBE8 - adds r2, r2, r0 - ldrb r2, [r2] - adds r0, r1, #0 - adds r0, #8 - adds r0, r0, r2 - ldrb r0, [r0] - adds r1, #0xc - adds r1, r1, r2 - ldrb r1, [r1] - bl GetCurrentPpToMaxPpState - lsls r0, r0, #0x18 - ldr r5, _0814FBEC - lsrs r0, r0, #0x16 - ldr r2, _0814FBF0 - adds r1, r0, r2 - ldrh r1, [r1] - adds r2, r5, #0 - adds r2, #0xb8 - strh r1, [r2] - ldr r1, _0814FBF4 - adds r0, r0, r1 - ldrh r0, [r0] - adds r5, #0xb6 - strh r0, [r5] - ldr r4, _0814FBF8 - adds r0, r2, #0 - adds r1, r4, #0 - movs r2, #1 - bl CpuSet - subs r4, #2 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #1 - bl CpuSet - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0814FBE0: .4byte gUnknown_2023D08 -_0814FBE4: .4byte gUnknown_2022D0C -_0814FBE8: .4byte gUnknown_2024154 -_0814FBEC: .4byte gUnknown_20373B4 -_0814FBF0: .4byte gUnknown_8D85604 -_0814FBF4: .4byte gUnknown_8D85606 -_0814FBF8: .4byte gUnknown_203786C - thumb_func_end sub_0814FB80 - - thumb_func_start GetCurrentPpToMaxPpState -GetCurrentPpToMaxPpState: @ 0x0814FBFC - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r3, r2, #0 - lsls r1, r1, #0x18 - lsrs r0, r1, #0x18 - cmp r0, r2 - beq _0814FC44 - cmp r0, #2 - bhi _0814FC16 - cmp r2, #1 - bhi _0814FC44 - b _0814FC1E -_0814FC16: - cmp r0, #7 - bhi _0814FC28 - cmp r2, #2 - bhi _0814FC44 -_0814FC1E: - movs r0, #2 - subs r0, r0, r2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0814FC46 -_0814FC28: - cmp r2, #0 - bne _0814FC30 - movs r0, #2 - b _0814FC46 -_0814FC30: - lsrs r0, r1, #0x1a - cmp r2, r0 - bhi _0814FC3A - movs r0, #1 - b _0814FC46 -_0814FC3A: - lsrs r0, r1, #0x19 - cmp r3, r0 - bhi _0814FC44 - movs r0, #0 - b _0814FC46 -_0814FC44: - movs r0, #3 -_0814FC46: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetCurrentPpToMaxPpState - - thumb_func_start CableCarTask1 -CableCarTask1: @ 0x0814FC4C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0814FC70 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0814FC6A - ldr r0, _0814FC74 - bl SetMainCallback2 - adds r0, r4, #0 - bl DestroyTask -_0814FC6A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814FC70: .4byte gUnknown_2037C74 -_0814FC74: .4byte CableCarMainCallback_Setup - thumb_func_end CableCarTask1 - - thumb_func_start sub_0814FC78 -sub_0814FC78: @ 0x0814FC78 - push {lr} - sub sp, #4 - bl sub_080987DC - ldr r0, _0814FCA0 - movs r1, #1 - bl CreateTask - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_0814FCA0: .4byte CableCarTask1 - thumb_func_end sub_0814FC78 - - thumb_func_start CableCarMainCallback_Setup -CableCarMainCallback_Setup: @ 0x0814FCA4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x18 - movs r4, #0 - str r4, [sp, #0x14] - ldr r1, _0814FCCC - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r1, r2 - ldrb r0, [r0] - adds r6, r1, #0 - cmp r0, #9 - bhi _0814FCFC - lsls r0, r0, #2 - ldr r1, _0814FCD0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0814FCCC: .4byte gUnknown_3002360 -_0814FCD0: .4byte _0814FCD4 -_0814FCD4: @ jump table - .4byte _0814FCFC @ case 0 - .4byte _0814FDB4 @ case 1 - .4byte _0814FE6C @ case 2 - .4byte _0814FF2C @ case 3 - .4byte _0814FF58 @ case 4 - .4byte _0814FF74 @ case 5 - .4byte _0814FFD4 @ case 6 - .4byte _0815006C @ case 7 - .4byte _0815016C @ case 8 - .4byte _081501A4 @ case 9 -_0814FCFC: - movs r0, #0 - bl SetVBlankCallback - movs r0, #0 - bl sub_08150B48 - bl ScanlineEffect_Stop - movs r3, #0xc0 - lsls r3, r3, #0x13 - movs r4, #0xc0 - lsls r4, r4, #9 - add r0, sp, #0x10 - mov sb, r0 - add r2, sp, #0xc - movs r6, #0 - ldr r1, _0814FDA0 - movs r5, #0x80 - lsls r5, r5, #5 - ldr r7, _0814FDA4 - movs r0, #0x81 - lsls r0, r0, #0x18 - mov r8, r0 -_0814FD2A: - strh r6, [r2] - add r0, sp, #0xc - str r0, [r1] - str r3, [r1, #4] - str r7, [r1, #8] - ldr r0, [r1, #8] - adds r3, r3, r5 - subs r4, r4, r5 - cmp r4, r5 - bhi _0814FD2A - strh r6, [r2] - add r2, sp, #0xc - str r2, [r1] - str r3, [r1, #4] - lsrs r0, r4, #1 - mov r3, r8 - orrs r0, r3 - str r0, [r1, #8] - ldr r0, [r1, #8] - movs r0, #0xe0 - lsls r0, r0, #0x13 - movs r3, #0x80 - lsls r3, r3, #3 - movs r4, #0 - str r4, [sp, #0x10] - ldr r2, _0814FDA0 - mov r1, sb - str r1, [r2] - str r0, [r2, #4] - lsrs r0, r3, #2 - movs r1, #0x85 - lsls r1, r1, #0x18 - orrs r0, r1 - str r0, [r2, #8] - ldr r0, [r2, #8] - movs r1, #0xa0 - lsls r1, r1, #0x13 - add r0, sp, #0xc - strh r4, [r0] - str r0, [r2] - str r1, [r2, #4] - lsrs r3, r3, #1 - movs r0, #0x81 - lsls r0, r0, #0x18 - orrs r3, r0 - str r3, [r2, #8] - ldr r0, [r2, #8] - ldr r4, _0814FDA8 - ldr r0, _0814FDAC - bl AllocZeroed - str r0, [r4] - ldr r1, _0814FDB0 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - ldrb r0, [r1] - adds r0, #1 - b _08150200 - .align 2, 0 -_0814FDA0: .4byte 0x040000D4 -_0814FDA4: .4byte 0x81000800 -_0814FDA8: .4byte gUnknown_203A878 -_0814FDAC: .4byte 0x00004110 -_0814FDB0: .4byte gUnknown_3002360 -_0814FDB4: - bl ResetSpriteData - bl ResetTasks - bl FreeAllSpritePalettes - bl ResetPaletteFade - bl reset_temp_tile_data_buffers - bl StartWeather - movs r4, #0 - ldr r0, _0814FE48 - ldr r0, [r0] - adds r1, r0, #0 - adds r1, #0xf0 - movs r2, #0 -_0814FDD8: - lsls r0, r4, #2 - adds r0, r1, r0 - str r2, [r0] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x13 - bls _0814FDD8 - bl InitMapMusic - bl ResetMapMusic - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _0814FE4C - movs r0, #0 - movs r2, #4 - bl InitBgsFromTemplates - ldr r4, _0814FE50 - ldr r1, [r4] - adds r1, #0xfc - movs r0, #0 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r3, _0814FE54 - adds r1, r1, r3 - movs r0, #1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, _0814FE58 - adds r1, r1, r0 - movs r0, #2 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r2, _0814FE5C - adds r1, r1, r2 - movs r0, #3 - bl SetBgTilemapBuffer - ldr r2, _0814FE60 - ldr r1, _0814FE64 - movs r0, #0 - strh r0, [r1] - strh r0, [r2] - ldr r1, _0814FE68 - movs r3, #0x87 - lsls r3, r3, #3 - adds r1, r1, r3 - ldrb r0, [r1] - adds r0, #1 - b _08150200 - .align 2, 0 -_0814FE48: .4byte gUnknown_8526DE8 -_0814FE4C: .4byte gUnknown_85AC474 -_0814FE50: .4byte gUnknown_203A878 -_0814FE54: .4byte 0x000010FC -_0814FE58: .4byte 0x000020FC -_0814FE5C: .4byte 0x000030FC -_0814FE60: .4byte gUnknown_2021B38 -_0814FE64: .4byte gUnknown_2021B3A -_0814FE68: .4byte gUnknown_3002360 -_0814FE6C: - movs r4, #0 - add r5, sp, #0x14 - ldr r6, _0814FEF4 -_0814FE72: - lsls r0, r4, #3 - adds r0, r0, r6 - bl LoadCompressedSpriteSheet - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #2 - bls _0814FE72 - ldr r0, _0814FEF8 - bl LoadSpritePalettes - ldr r0, _0814FEFC - adds r1, r5, #0 - bl malloc_and_decompress - ldr r4, _0814FF00 - ldr r1, [r4] - ldr r2, _0814FF04 - adds r1, r1, r2 - str r0, [r1] - ldr r0, _0814FF08 - adds r1, r5, #0 - bl malloc_and_decompress - ldr r1, [r4] - movs r3, #0x82 - lsls r3, r3, #7 - adds r1, r1, r3 - str r0, [r1] - ldr r0, _0814FF0C - adds r1, r5, #0 - bl malloc_and_decompress - ldr r1, [r4] - ldr r2, _0814FF10 - adds r1, r1, r2 - str r0, [r1] - ldr r0, _0814FF14 - adds r1, r5, #0 - bl malloc_and_decompress - ldr r1, [r4] - ldr r3, _0814FF18 - adds r2, r1, r3 - str r0, [r2] - ldr r0, _0814FF1C - adds r1, r1, r0 - ldr r0, _0814FF20 - str r0, [r1] - ldr r1, _0814FF24 - movs r0, #0 - str r0, [sp] - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, _0814FF28 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - ldrb r0, [r1] - adds r0, #1 - b _08150200 - .align 2, 0 -_0814FEF4: .4byte gUnknown_85AC95C -_0814FEF8: .4byte gUnknown_85AC97C -_0814FEFC: .4byte gUnknown_85AC484 -_0814FF00: .4byte gUnknown_203A878 -_0814FF04: .4byte 0x000040FC -_0814FF08: .4byte gUnknown_85AC5DC -_0814FF0C: .4byte gUnknown_85AC760 -_0814FF10: .4byte 0x00004104 -_0814FF14: .4byte gUnknown_85AC938 -_0814FF18: .4byte 0x0000410C -_0814FF1C: .4byte 0x00004108 -_0814FF20: .4byte gUnknown_85AC924 -_0814FF24: .4byte gUnknown_8DBA860 -_0814FF28: .4byte gUnknown_3002360 -_0814FF2C: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0814FF38 - b _08150202 -_0814FF38: - ldr r0, _0814FF50 - movs r1, #0 - movs r2, #0x80 - bl LoadPalette - ldr r1, _0814FF54 - movs r3, #0x87 - lsls r3, r3, #3 - adds r1, r1, r3 - ldrb r0, [r1] - adds r0, #1 - b _08150200 - .align 2, 0 -_0814FF50: .4byte gUnknown_8DBA7C0 -_0814FF54: .4byte gUnknown_3002360 -_0814FF58: - bl LoadCableCarSprites - bl RunTasks - ldr r1, _0814FF70 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - b _08150200 - .align 2, 0 -_0814FF70: .4byte gUnknown_3002360 -_0814FF74: - ldr r0, _0814FF8C - ldr r0, [r0] - ldrb r0, [r0, #2] - cmp r0, #7 - bne _0814FF90 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r6, r2 - ldrb r0, [r1] - adds r0, #1 - b _08150200 - .align 2, 0 -_0814FF8C: .4byte gUnknown_203A878 -_0814FF90: - ldr r0, _0814FFD0 - ldr r0, [r0] - adds r1, r0, #0 - adds r1, #0xf0 - ldr r0, [r1] - cmp r0, #0 - bne _0814FFA0 - b _08150202 -_0814FFA0: - movs r4, #0 - adds r3, r1, #0 - movs r5, #0xd - rsbs r5, r5, #0 -_0814FFA8: - lsls r0, r4, #2 - adds r0, r3, r0 - ldr r2, [r0] - cmp r2, #0 - beq _0814FFBA - ldrb r1, [r2, #5] - adds r0, r5, #0 - ands r0, r1 - strb r0, [r2, #5] -_0814FFBA: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x13 - bls _0814FFA8 - movs r3, #0x87 - lsls r3, r3, #3 - adds r1, r6, r3 - ldrb r0, [r1] - adds r0, #1 - b _08150200 - .align 2, 0 -_0814FFD0: .4byte gUnknown_8526DE8 -_0814FFD4: - ldr r6, _08150058 - ldr r0, [r6] - movs r1, #0x82 - lsls r1, r1, #7 - adds r0, r0, r1 - ldr r1, [r0] - movs r0, #0x20 - str r0, [sp] - movs r0, #0xf - str r0, [sp, #4] - movs r5, #0x11 - str r5, [sp, #8] - movs r0, #1 - movs r2, #0 - movs r3, #0x11 - bl CopyToBgTilemapBufferRect_ChangePalette - ldr r0, [r6] - ldr r2, _0815005C - adds r0, r0, r2 - ldr r1, [r0] - movs r0, #0x1e - str r0, [sp] - movs r3, #0x14 - mov r8, r3 - str r3, [sp, #4] - str r5, [sp, #8] - movs r0, #2 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBufferRect_ChangePalette - ldr r0, [r6] - ldr r1, _08150060 - adds r0, r0, r1 - ldr r1, [r0] - movs r0, #5 - str r0, [sp] - movs r4, #2 - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #3 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBufferRect_ChangePalette - ldr r0, [r6] - ldr r2, _08150064 - adds r0, r0, r2 - ldr r1, [r0] - str r4, [sp] - mov r3, r8 - str r3, [sp, #4] - str r5, [sp, #8] - movs r0, #3 - movs r2, #0 - movs r3, #2 - bl CopyToBgTilemapBufferRect_ChangePalette - ldr r1, _08150068 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - b _08150200 - .align 2, 0 -_08150058: .4byte gUnknown_203A878 -_0815005C: .4byte 0x00004104 -_08150060: .4byte 0x00004108 -_08150064: .4byte 0x0000410C -_08150068: .4byte gUnknown_3002360 -_0815006C: - ldr r0, _0815015C - ldrb r0, [r0] - bl sub_081514A4 - ldr r1, _08150160 - mov sb, r1 - ldr r0, [r1] - ldr r2, _08150164 - mov r8, r2 - add r0, r8 - ldr r1, [r0] - adds r1, #0x90 - movs r6, #0xc - str r6, [sp] - movs r5, #3 - str r5, [sp, #4] - movs r4, #0x11 - str r4, [sp, #8] - movs r0, #0 - movs r2, #0 - movs r3, #0xe - bl CopyToBgTilemapBufferRect_ChangePalette - mov r3, sb - ldr r0, [r3] - add r0, r8 - ldr r1, [r0] - adds r1, #0xd8 - str r6, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #0 - movs r2, #0xc - movs r3, #0x11 - bl CopyToBgTilemapBufferRect_ChangePalette - mov r1, sb - ldr r0, [r1] - add r0, r8 - ldr r1, [r0] - movs r2, #0x90 - lsls r2, r2, #1 - adds r1, r1, r2 - str r6, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #0 - movs r2, #0x18 - movs r3, #0x14 - bl CopyToBgTilemapBufferRect_ChangePalette - mov r3, sb - ldr r0, [r3] - add r0, r8 - ldr r1, [r0] - str r6, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #0 - movs r2, #0 - movs r3, #0x11 - bl CopyToBgTilemapBufferRect_ChangePalette - mov r1, sb - ldr r0, [r1] - add r0, r8 - ldr r1, [r0] - adds r1, #0x48 - str r6, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #0 - movs r2, #0 - movs r3, #0x14 - bl CopyToBgTilemapBufferRect_ChangePalette - mov r2, sb - ldr r0, [r2] - add r0, r8 - ldr r1, [r0] - str r6, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #0 - movs r2, #0xc - movs r3, #0x14 - bl CopyToBgTilemapBufferRect_ChangePalette - mov r3, sb - ldr r0, [r3] - add r0, r8 - ldr r1, [r0] - adds r1, #0x48 - str r6, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #0 - movs r2, #0xc - movs r3, #0x17 - bl CopyToBgTilemapBufferRect_ChangePalette - mov r1, sb - ldr r0, [r1] - add r0, r8 - ldr r1, [r0] - str r6, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #0 - movs r2, #0x18 - movs r3, #0x17 - bl CopyToBgTilemapBufferRect_ChangePalette - ldr r1, _08150168 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - ldrb r0, [r1] - adds r0, #1 - b _08150200 - .align 2, 0 -_0815015C: .4byte gUnknown_2037280 -_08150160: .4byte gUnknown_203A878 -_08150164: .4byte 0x000040FC -_08150168: .4byte gUnknown_3002360 -_0815016C: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r1, #3 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r0, _0815019C - movs r1, #1 - bl FadeInNewBGM - movs r0, #1 - bl sub_08150B48 - ldr r1, _081501A0 - movs r3, #0x87 - lsls r3, r3, #3 - adds r1, r1, r3 - ldrb r0, [r1] - adds r0, #1 - b _08150200 - .align 2, 0 -_0815019C: .4byte 0x000001A9 -_081501A0: .4byte gUnknown_3002360 -_081501A4: - ldr r3, _081501D8 - ldrh r2, [r3] - movs r0, #0 - strh r0, [r3] - ldr r4, _081501DC - ldrh r0, [r4] - movs r1, #1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r0, _081501E0 - bl SetVBlankCallback - ldr r0, _081501E4 - bl SetMainCallback2 - ldr r0, _081501E8 - movs r1, #0 - bl CreateTask - ldr r0, _081501EC - ldrh r0, [r0] - cmp r0, #0 - bne _081501F4 - ldr r0, _081501F0 - b _081501F6 - .align 2, 0 -_081501D8: .4byte 0x04000208 -_081501DC: .4byte 0x04000200 -_081501E0: .4byte CableCarVblankCallback -_081501E4: .4byte sub_08150218 -_081501E8: .4byte sub_081503C0 -_081501EC: .4byte gUnknown_2037280 -_081501F0: .4byte sub_0815052C -_081501F4: - ldr r0, _08150210 -_081501F6: - movs r1, #1 - bl CreateTask - ldr r1, _08150214 - ldr r1, [r1] -_08150200: - strb r0, [r1] -_08150202: - add sp, #0x18 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08150210: .4byte sub_08150640 -_08150214: .4byte gUnknown_203A878 - thumb_func_end CableCarMainCallback_Setup - - thumb_func_start sub_08150218 -sub_08150218: @ 0x08150218 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - bl MapMusicMain - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08150218 - - thumb_func_start CleanupCableCar -CleanupCableCar: @ 0x08150234 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - movs r4, #0 - movs r0, #0 - bl HideBg - movs r0, #1 - bl HideBg - movs r0, #2 - bl HideBg - movs r0, #3 - bl HideBg - movs r0, #0 - bl sub_08150B48 - ldr r0, _08150394 - strh r4, [r0] - movs r0, #0 - bl SetCurrentAndNextWeatherNoDelay - add r0, sp, #4 - mov r8, r0 - ldr r0, _08150398 - ldr r0, [r0] - adds r1, r0, #0 - adds r1, #0xf0 - movs r2, #0 -_08150274: - lsls r0, r4, #2 - adds r0, r1, r0 - str r2, [r0] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x13 - bls _08150274 - bl ResetTasks - bl ResetSpriteData - bl ResetPaletteFade - movs r0, #0 - bl UnsetBgTilemapBuffer - movs r0, #1 - bl UnsetBgTilemapBuffer - movs r0, #2 - bl UnsetBgTilemapBuffer - movs r0, #3 - bl UnsetBgTilemapBuffer - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r6, _0815039C - ldr r0, [r6] - ldr r2, _081503A0 - adds r1, r0, r2 - movs r5, #0 - str r5, [r1] - ldr r4, _081503A4 - adds r0, r0, r4 - ldr r0, [r0] - bl Free - ldr r0, [r6] - adds r4, r0, r4 - str r5, [r4] - ldr r4, _081503A8 - adds r0, r0, r4 - ldr r0, [r0] - bl Free - ldr r0, [r6] - adds r4, r0, r4 - str r5, [r4] - movs r4, #0x82 - lsls r4, r4, #7 - adds r0, r0, r4 - ldr r0, [r0] - bl Free - ldr r0, [r6] - adds r4, r0, r4 - str r5, [r4] - ldr r4, _081503AC - adds r0, r0, r4 - ldr r0, [r0] - bl Free - ldr r0, [r6] - adds r4, r0, r4 - str r5, [r4] - bl Free - str r5, [r6] - movs r2, #0xc0 - lsls r2, r2, #0x13 - movs r3, #0xc0 - lsls r3, r3, #9 - mov r4, sp - movs r6, #0 - ldr r1, _081503B0 - movs r5, #0x80 - lsls r5, r5, #5 - ldr r7, _081503B4 - movs r0, #0x81 - lsls r0, r0, #0x18 - mov ip, r0 -_0815031C: - strh r6, [r4] - mov r0, sp - str r0, [r1] - str r2, [r1, #4] - str r7, [r1, #8] - ldr r0, [r1, #8] - adds r2, r2, r5 - subs r3, r3, r5 - cmp r3, r5 - bhi _0815031C - strh r6, [r4] - mov r0, sp - str r0, [r1] - str r2, [r1, #4] - lsrs r0, r3, #1 - mov r2, ip - orrs r0, r2 - str r0, [r1, #8] - ldr r0, [r1, #8] - movs r0, #0xe0 - lsls r0, r0, #0x13 - movs r3, #0x80 - lsls r3, r3, #3 - movs r4, #0 - str r4, [sp, #4] - ldr r2, _081503B0 - mov r1, r8 - str r1, [r2] - str r0, [r2, #4] - lsrs r0, r3, #2 - movs r1, #0x85 - lsls r1, r1, #0x18 - orrs r0, r1 - str r0, [r2, #8] - ldr r0, [r2, #8] - movs r1, #0xa0 - lsls r1, r1, #0x13 - mov r0, sp - strh r4, [r0] - str r0, [r2] - str r1, [r2, #4] - lsrs r3, r3, #1 - movs r0, #0x81 - lsls r0, r0, #0x18 - orrs r3, r0 - str r3, [r2, #8] - ldr r0, [r2, #8] - bl WarpIntoMap - ldr r0, _081503B8 - str r4, [r0] - ldr r0, _081503BC - bl SetMainCallback2 - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08150394: .4byte gUnknown_2021B38 -_08150398: .4byte gUnknown_8526DE8 -_0815039C: .4byte gUnknown_203A878 -_081503A0: .4byte 0x00004108 -_081503A4: .4byte 0x0000410C -_081503A8: .4byte 0x00004104 -_081503AC: .4byte 0x000040FC -_081503B0: .4byte 0x040000D4 -_081503B4: .4byte 0x81000800 -_081503B8: .4byte gUnknown_3005B0C -_081503BC: .4byte CB2_LoadMap - thumb_func_end CleanupCableCar - - thumb_func_start sub_081503C0 -sub_081503C0: @ 0x081503C0 - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r4, #0 - ldr r5, _081503EC - ldr r3, [r5] - ldrh r0, [r3, #6] - adds r0, #1 - strh r0, [r3, #6] - ldrb r2, [r3, #1] - adds r7, r5, #0 - cmp r2, #2 - beq _081504C6 - cmp r2, #2 - bgt _081503F0 - cmp r2, #0 - beq _081503FE - cmp r2, #1 - beq _08150418 - b _0815051E - .align 2, 0 -_081503EC: .4byte gUnknown_203A878 -_081503F0: - cmp r2, #3 - bne _081503F6 - b _081504EC -_081503F6: - cmp r2, #0xff - bne _081503FC - b _08150504 -_081503FC: - b _0815051E -_081503FE: - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrh r1, [r3, #4] - cmp r0, r1 - beq _0815040A - b _0815051E -_0815040A: - ldrb r0, [r3, #2] - bl SetNextWeather - ldr r1, [r5] - movs r0, #1 - strb r0, [r1, #1] - b _0815051E -_08150418: - ldrb r0, [r3, #2] - cmp r0, #2 - beq _0815046C - cmp r0, #7 - beq _08150424 - b _0815051E -_08150424: - ldr r0, _08150468 - ldr r0, [r0] - adds r2, r0, #0 - adds r2, #0xf0 - ldr r0, [r2] - cmp r0, #0 - beq _0815051E - ldrb r1, [r0, #5] - movs r0, #0xc - ands r0, r1 - cmp r0, #0 - beq _0815051E - adds r3, r2, #0 - movs r5, #0xd - rsbs r5, r5, #0 -_08150442: - lsls r0, r4, #2 - adds r0, r3, r0 - ldr r2, [r0] - cmp r2, #0 - beq _08150454 - ldrb r1, [r2, #5] - adds r0, r5, #0 - ands r0, r1 - strb r0, [r2, #5] -_08150454: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x13 - bls _08150442 - ldr r1, [r7] - movs r0, #2 - strb r0, [r1, #1] - b _0815051E - .align 2, 0 -_08150468: .4byte gUnknown_8526DE8 -_0815046C: - ldr r0, _08150480 - ldr r2, [r0] - movs r1, #0xda - lsls r1, r1, #3 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #2 - bne _08150484 - strb r0, [r3, #1] - b _0815051E - .align 2, 0 -_08150480: .4byte gUnknown_8526DE8 -_08150484: - ldrh r1, [r3, #6] - ldrh r0, [r3, #4] - adds r0, #8 - cmp r1, r0 - blt _0815051E - adds r6, r2, #0 - adds r6, #0xf0 - movs r5, #1 - movs r7, #5 - rsbs r7, r7, #0 -_08150498: - lsls r0, r4, #2 - adds r0, r6, r0 - ldr r0, [r0] - cmp r0, #0 - beq _081504BA - adds r3, r0, #0 - adds r3, #0x3e - ldrb r2, [r3] - lsls r1, r2, #0x1d - lsrs r1, r1, #0x1f - eors r1, r5 - ands r1, r5 - lsls r1, r1, #2 - adds r0, r7, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_081504BA: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x13 - bls _08150498 - b _0815051E -_081504C6: - lsls r1, r0, #0x10 - ldr r0, _081504E8 - cmp r1, r0 - bne _0815051E - movs r0, #3 - strb r0, [r3, #1] - subs r0, #4 - str r4, [sp] - movs r1, #3 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - movs r0, #4 - bl sub_080A2B08 - b _0815051E - .align 2, 0 -_081504E8: .4byte 0x023A0000 -_081504EC: - ldr r0, _08150500 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0815051E - movs r0, #0xff - strb r0, [r3, #1] - b _0815051E - .align 2, 0 -_08150500: .4byte gUnknown_2037C74 -_08150504: - movs r0, #0 - bl SetVBlankCallback - adds r0, r6, #0 - bl DestroyTask - ldr r0, [r5] - ldrb r0, [r0] - bl DestroyTask - ldr r0, _08150528 - bl SetMainCallback2 -_0815051E: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08150528: .4byte CleanupCableCar - thumb_func_end sub_081503C0 - - thumb_func_start sub_0815052C -sub_0815052C: @ 0x0815052C - push {r4, r5, r6, lr} - sub sp, #0xc - ldr r6, _08150580 - ldr r1, [r6] - ldrb r0, [r1, #1] - cmp r0, #0xff - beq _0815060C - ldrb r0, [r1, #0x14] - subs r0, #1 - strb r0, [r1, #0x14] - ldr r1, [r6] - ldrh r0, [r1, #6] - movs r3, #1 - ands r0, r3 - cmp r0, #0 - bne _08150552 - ldrb r0, [r1, #0x15] - subs r0, #1 - strb r0, [r1, #0x15] -_08150552: - ldr r2, [r6] - ldrh r0, [r2, #6] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _0815056C - ldrb r0, [r2, #0xc] - subs r0, #1 - strb r0, [r2, #0xc] - ldr r1, [r6] - ldrb r0, [r1, #0xd] - subs r0, #1 - strb r0, [r1, #0xd] -_0815056C: - ldr r0, [r6] - ldrb r1, [r0, #0x14] - cmp r1, #0x20 - beq _081505B8 - cmp r1, #0x20 - bgt _08150584 - cmp r1, #0x10 - beq _081505D0 - b _0815060C - .align 2, 0 -_08150580: .4byte gUnknown_203A878 -_08150584: - cmp r1, #0x28 - beq _081505A6 - cmp r1, #0xaf - bne _0815060C - movs r0, #2 - str r0, [sp] - movs r0, #0xa - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #3 - movs r1, #0 - movs r2, #0 - movs r3, #0x16 - bl FillBgTilemapBufferRect - b _0815060C -_081505A6: - movs r0, #2 - str r0, [sp] - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #3 - movs r1, #0 - movs r2, #3 - b _081505C8 -_081505B8: - str r3, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #3 - movs r1, #0 - movs r2, #2 -_081505C8: - movs r3, #0 - bl FillBgTilemapBufferRect - b _0815060C -_081505D0: - ldr r1, _08150634 - adds r0, r0, r1 - ldr r1, [r0] - movs r0, #5 - str r0, [sp] - movs r4, #2 - str r4, [sp, #4] - movs r5, #0x11 - str r5, [sp, #8] - movs r0, #3 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBufferRect_ChangePalette - ldr r0, [r6] - ldr r1, _08150638 - adds r0, r0, r1 - ldr r1, [r0] - str r4, [sp] - movs r0, #0x1e - str r0, [sp, #4] - str r5, [sp, #8] - movs r0, #3 - movs r2, #0 - movs r3, #2 - bl CopyToBgTilemapBufferRect_ChangePalette - ldr r1, [r6] - movs r0, #0x40 - strb r0, [r1, #0x15] -_0815060C: - bl sub_08151138 - ldr r3, _0815063C - movs r0, #0 - ldrsh r2, [r3, r0] - adds r1, r2, #1 - adds r0, r1, #0 - cmp r1, #0 - bge _08150622 - adds r0, r2, #0 - adds r0, #0x80 -_08150622: - asrs r0, r0, #7 - lsls r0, r0, #7 - subs r0, r1, r0 - strh r0, [r3] - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08150634: .4byte 0x00004108 -_08150638: .4byte 0x0000410C -_0815063C: .4byte gUnknown_2021B38 - thumb_func_end sub_0815052C - - thumb_func_start sub_08150640 -sub_08150640: @ 0x08150640 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - ldr r7, _08150694 - ldr r1, [r7] - ldrb r0, [r1, #1] - cmp r0, #0xff - bne _08150650 - b _08150792 -_08150650: - ldrb r0, [r1, #0x14] - adds r0, #1 - strb r0, [r1, #0x14] - ldr r1, [r7] - ldrh r0, [r1, #6] - movs r6, #1 - ands r0, r6 - cmp r0, #0 - bne _08150668 - ldrb r0, [r1, #0x15] - adds r0, #1 - strb r0, [r1, #0x15] -_08150668: - ldr r2, [r7] - ldrh r0, [r2, #6] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _08150682 - ldrb r0, [r2, #0xc] - adds r0, #1 - strb r0, [r2, #0xc] - ldr r1, [r7] - ldrb r0, [r1, #0xd] - adds r0, #1 - strb r0, [r1, #0xd] -_08150682: - ldr r0, [r7] - ldrb r1, [r0, #0x14] - cmp r1, #0x20 - beq _081506F6 - cmp r1, #0x20 - bgt _08150698 - cmp r1, #0x10 - beq _081506C4 - b _08150792 - .align 2, 0 -_08150694: .4byte gUnknown_203A878 -_08150698: - cmp r1, #0x28 - beq _08150760 - cmp r1, #0xb0 - bne _08150792 - ldr r1, _081506C0 - adds r0, r0, r1 - ldr r1, [r0] - movs r0, #2 - str r0, [sp] - movs r0, #0x1e - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #3 - movs r2, #0 - movs r3, #2 - bl CopyToBgTilemapBufferRect_ChangePalette - b _08150792 - .align 2, 0 -_081506C0: .4byte 0x0000410C -_081506C4: - movs r0, #3 - str r0, [sp] - movs r4, #2 - str r4, [sp, #4] - movs r5, #0x11 - str r5, [sp, #8] - movs r1, #0 - movs r2, #2 - movs r3, #0 - bl FillBgTilemapBufferRect - str r4, [sp] - movs r0, #0xa - str r0, [sp, #4] - str r5, [sp, #8] - movs r0, #3 - movs r1, #0 - movs r2, #0 - movs r3, #0x16 - bl FillBgTilemapBufferRect - ldr r1, [r7] - movs r0, #0xc0 - strb r0, [r1, #0x15] - b _08150792 -_081506F6: - ldr r5, _0815075C - adds r0, r0, r5 - ldr r0, [r0] - ldrh r1, [r0, #4] - str r6, [sp] - str r6, [sp, #4] - movs r4, #0x11 - str r4, [sp, #8] - movs r0, #3 - movs r2, #2 - movs r3, #0 - bl FillBgTilemapBufferRect - ldr r0, [r7] - adds r0, r0, r5 - ldr r0, [r0] - ldrh r1, [r0, #6] - str r6, [sp] - str r6, [sp, #4] - str r4, [sp, #8] - movs r0, #3 - movs r2, #3 - movs r3, #0 - bl FillBgTilemapBufferRect - ldr r0, [r7] - adds r0, r0, r5 - ldr r0, [r0] - ldrh r1, [r0, #0xe] - str r6, [sp] - str r6, [sp, #4] - str r4, [sp, #8] - movs r0, #3 - movs r2, #2 - movs r3, #1 - bl FillBgTilemapBufferRect - ldr r0, [r7] - adds r0, r0, r5 - ldr r0, [r0] - ldrh r1, [r0, #0x10] - str r6, [sp] - str r6, [sp, #4] - str r4, [sp, #8] - movs r0, #3 - movs r2, #3 - movs r3, #1 - bl FillBgTilemapBufferRect - b _08150792 - .align 2, 0 -_0815075C: .4byte 0x00004108 -_08150760: - ldr r5, _081507AC - adds r0, r0, r5 - ldr r0, [r0] - ldrh r1, [r0, #8] - str r6, [sp] - str r6, [sp, #4] - movs r4, #0x11 - str r4, [sp, #8] - movs r0, #3 - movs r2, #4 - movs r3, #0 - bl FillBgTilemapBufferRect - ldr r0, [r7] - adds r0, r0, r5 - ldr r0, [r0] - ldrh r1, [r0, #0x12] - str r6, [sp] - str r6, [sp, #4] - str r4, [sp, #8] - movs r0, #3 - movs r2, #4 - movs r3, #1 - bl FillBgTilemapBufferRect -_08150792: - bl sub_08151194 - ldr r0, _081507B0 - ldr r1, [r0] - ldrh r0, [r1, #6] - ldrh r1, [r1, #4] - cmp r0, r1 - bhs _081507B8 - ldr r4, _081507B4 - movs r1, #0 - ldrsh r0, [r4, r1] - b _081507C2 - .align 2, 0 -_081507AC: .4byte 0x00004108 -_081507B0: .4byte gUnknown_203A878 -_081507B4: .4byte gUnknown_2021B38 -_081507B8: - ldr r0, _081507D4 - ldr r4, [r0] - ldr r0, _081507D8 - adds r4, r4, r0 - ldrh r0, [r4] -_081507C2: - adds r0, #0xf7 - movs r1, #0xf8 - bl __modsi3 - strh r0, [r4] - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081507D4: .4byte gUnknown_8526DE8 -_081507D8: .4byte 0x000006FC - thumb_func_end sub_08150640 - - thumb_func_start CableCarVblankCallback -CableCarVblankCallback: @ 0x081507DC - push {r4, lr} - movs r0, #0 - bl CopyBgTilemapBufferToVram - movs r0, #3 - bl CopyBgTilemapBufferToVram - ldr r4, _0815083C - ldr r0, [r4] - ldrb r1, [r0, #0x14] - movs r0, #0x1c - bl SetGpuReg - ldr r0, [r4] - ldrb r1, [r0, #0x15] - movs r0, #0x1e - bl SetGpuReg - ldr r0, [r4] - ldrb r1, [r0, #0xc] - movs r0, #0x14 - bl SetGpuReg - ldr r0, [r4] - ldrb r1, [r0, #0xd] - movs r0, #0x16 - bl SetGpuReg - ldr r0, [r4] - ldrb r1, [r0, #8] - movs r0, #0x10 - bl SetGpuReg - ldr r0, [r4] - ldrb r1, [r0, #9] - movs r0, #0x12 - bl SetGpuReg - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815083C: .4byte gUnknown_203A878 - thumb_func_end CableCarVblankCallback - - thumb_func_start sub_08150840 -sub_08150840: @ 0x08150840 - bx lr - .align 2, 0 - thumb_func_end sub_08150840 - - thumb_func_start sub_08150844 -sub_08150844: @ 0x08150844 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r0, _081508AC - ldr r6, [r0] - ldrb r0, [r6, #1] - cmp r0, #0xff - beq _08150910 - ldr r0, _081508B0 - ldrh r0, [r0] - cmp r0, #0 - bne _081508C0 - movs r0, #6 - ldrsh r4, [r6, r0] - adds r0, r4, #0 - bl __floatsisf - cmp r4, #0 - bge _0815086E - ldr r1, _081508B4 - bl __addsf3 -_0815086E: - ldr r1, _081508B8 - bl __mulsf3 - bl __fixunssfsi - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r5, #0x2e] - subs r1, r1, r0 - strh r1, [r5, #0x20] - movs r1, #6 - ldrsh r4, [r6, r1] - adds r0, r4, #0 - bl __floatsisf - cmp r4, #0 - bge _08150896 - ldr r1, _081508B4 - bl __addsf3 -_08150896: - ldr r1, _081508BC - bl __mulsf3 - bl __fixunssfsi - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r5, #0x30] - subs r1, r1, r0 - strh r1, [r5, #0x22] - b _08150910 - .align 2, 0 -_081508AC: .4byte gUnknown_203A878 -_081508B0: .4byte gUnknown_2037280 -_081508B4: .4byte 0x47800000 -_081508B8: .4byte 0x3E0F5C29 -_081508BC: .4byte 0x3D89374C -_081508C0: - movs r0, #6 - ldrsh r4, [r6, r0] - adds r0, r4, #0 - bl __floatsisf - cmp r4, #0 - bge _081508D4 - ldr r1, _08150918 - bl __addsf3 -_081508D4: - ldr r1, _0815091C - bl __mulsf3 - bl __fixunssfsi - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r5, #0x2e] - adds r0, r0, r1 - strh r0, [r5, #0x20] - movs r0, #6 - ldrsh r4, [r6, r0] - adds r0, r4, #0 - bl __floatsisf - cmp r4, #0 - bge _081508FC - ldr r1, _08150918 - bl __addsf3 -_081508FC: - ldr r1, _08150920 - bl __mulsf3 - bl __fixunssfsi - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r5, #0x30] - adds r0, r0, r1 - strh r0, [r5, #0x22] -_08150910: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08150918: .4byte 0x47800000 -_0815091C: .4byte 0x3E0F5C29 -_08150920: .4byte 0x3D89374C - thumb_func_end sub_08150844 - - thumb_func_start sub_08150924 -sub_08150924: @ 0x08150924 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r0, _08150990 - ldr r6, [r0] - ldrb r0, [r6, #1] - cmp r0, #0xff - bne _08150934 - b _08150A3C -_08150934: - ldr r0, _08150994 - ldrh r0, [r0] - cmp r0, #0 - bne _081509A4 - movs r0, #6 - ldrsh r4, [r6, r0] - adds r0, r4, #0 - bl __floatsisf - cmp r4, #0 - bge _08150950 - ldr r1, _08150998 - bl __addsf3 -_08150950: - ldr r1, _0815099C - bl __mulsf3 - bl __fixunssfsi - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r5, #0x2e] - subs r1, r1, r0 - strh r1, [r5, #0x20] - movs r1, #6 - ldrsh r4, [r6, r1] - adds r0, r4, #0 - bl __floatsisf - cmp r4, #0 - bge _08150978 - ldr r1, _08150998 - bl __addsf3 -_08150978: - ldr r1, _081509A0 - bl __mulsf3 - bl __fixunssfsi - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r5, #0x30] - subs r1, r1, r0 - strh r1, [r5, #0x22] - b _081509F4 - .align 2, 0 -_08150990: .4byte gUnknown_203A878 -_08150994: .4byte gUnknown_2037280 -_08150998: .4byte 0x47800000 -_0815099C: .4byte 0x3E0F5C29 -_081509A0: .4byte 0x3D89374C -_081509A4: - movs r0, #6 - ldrsh r4, [r6, r0] - adds r0, r4, #0 - bl __floatsisf - cmp r4, #0 - bge _081509B8 - ldr r1, _08150A18 - bl __addsf3 -_081509B8: - ldr r1, _08150A1C - bl __mulsf3 - bl __fixunssfsi - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r5, #0x2e] - adds r0, r0, r1 - strh r0, [r5, #0x20] - movs r0, #6 - ldrsh r4, [r6, r0] - adds r0, r4, #0 - bl __floatsisf - cmp r4, #0 - bge _081509E0 - ldr r1, _08150A18 - bl __addsf3 -_081509E0: - ldr r1, _08150A20 - bl __mulsf3 - bl __fixunssfsi - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r5, #0x30] - adds r0, r0, r1 - strh r0, [r5, #0x22] -_081509F4: - movs r0, #0x32 - ldrsh r2, [r5, r0] - cmp r2, #0 - bne _08150A24 - movs r0, #0x11 - strh r0, [r5, #0x26] - ldrh r0, [r5, #0x34] - adds r1, r0, #1 - strh r1, [r5, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #9 - ble _08150A3C - strh r2, [r5, #0x34] - ldrh r0, [r5, #0x32] - adds r0, #1 - strh r0, [r5, #0x32] - b _08150A3C - .align 2, 0 -_08150A18: .4byte 0x47800000 -_08150A1C: .4byte 0x3E0F5C29 -_08150A20: .4byte 0x3D89374C -_08150A24: - movs r2, #0 - movs r0, #0x10 - strh r0, [r5, #0x26] - ldrh r0, [r5, #0x34] - adds r1, r0, #1 - strh r1, [r5, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #9 - ble _08150A3C - strh r2, [r5, #0x34] - strh r2, [r5, #0x32] -_08150A3C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08150924 - - thumb_func_start sub_08150A44 -sub_08150A44: @ 0x08150A44 - push {lr} - adds r2, r0, #0 - movs r1, #0x2e - ldrsh r0, [r2, r1] - cmp r0, #0 - bne _08150A74 - adds r0, r2, #0 - adds r0, #0x28 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #1 - ldrh r3, [r2, #0x20] - adds r0, r0, r3 - strh r0, [r2, #0x20] - ldrh r1, [r2, #0x22] - adds r1, #0x10 - adds r0, r2, #0 - adds r0, #0x29 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, r0, r1 - strh r0, [r2, #0x22] -_08150A74: - ldrh r0, [r2, #0x2e] - adds r0, #1 - strh r0, [r2, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r3, #0x32 - ldrsh r1, [r2, r3] - cmp r0, r1 - blt _08150ACA - movs r0, #0x30 - ldrsh r1, [r2, r0] - cmp r1, #0 - beq _08150A94 - cmp r1, #1 - beq _08150A9E - b _08150ABC -_08150A94: - ldrh r0, [r2, #0x20] - adds r0, #1 - strh r0, [r2, #0x20] - ldrh r0, [r2, #0x2e] - b _08150AAE -_08150A9E: - ldrh r0, [r2, #0x2e] - ands r0, r1 - cmp r0, #0 - beq _08150ABC - ldrh r0, [r2, #0x20] - adds r0, #1 - strh r0, [r2, #0x20] - ldrh r0, [r2, #0x20] -_08150AAE: - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _08150ABC - ldrh r0, [r2, #0x22] - adds r0, #1 - strh r0, [r2, #0x22] -_08150ABC: - movs r1, #0x22 - ldrsh r0, [r2, r1] - cmp r0, #0xa0 - ble _08150ACA - adds r0, r2, #0 - bl DestroySprite -_08150ACA: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08150A44 - - thumb_func_start sub_08150AD0 -sub_08150AD0: @ 0x08150AD0 - push {lr} - adds r2, r0, #0 - movs r1, #0x2e - ldrsh r0, [r2, r1] - cmp r0, #0 - bne _08150AEE - ldrh r1, [r2, #0x22] - adds r1, #0x10 - adds r0, r2, #0 - adds r0, #0x29 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, r0, r1 - strh r0, [r2, #0x22] -_08150AEE: - ldrh r0, [r2, #0x2e] - adds r0, #1 - strh r0, [r2, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r3, #0x32 - ldrsh r1, [r2, r3] - cmp r0, r1 - blt _08150B44 - movs r0, #0x30 - ldrsh r1, [r2, r0] - cmp r1, #0 - beq _08150B0E - cmp r1, #1 - beq _08150B18 - b _08150B36 -_08150B0E: - ldrh r0, [r2, #0x20] - subs r0, #1 - strh r0, [r2, #0x20] - ldrh r0, [r2, #0x2e] - b _08150B28 -_08150B18: - ldrh r0, [r2, #0x2e] - ands r0, r1 - cmp r0, #0 - beq _08150B36 - ldrh r0, [r2, #0x20] - subs r0, #1 - strh r0, [r2, #0x20] - ldrh r0, [r2, #0x20] -_08150B28: - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _08150B36 - ldrh r0, [r2, #0x22] - subs r0, #1 - strh r0, [r2, #0x22] -_08150B36: - movs r1, #0x22 - ldrsh r0, [r2, r1] - cmp r0, #0x4f - bgt _08150B44 - adds r0, r2, #0 - bl DestroySprite -_08150B44: - pop {r0} - bx r0 - thumb_func_end sub_08150AD0 - - thumb_func_start sub_08150B48 -sub_08150B48: @ 0x08150B48 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _08150B56 - cmp r0, #1 - beq _08150BF8 -_08150B56: - movs r0, #0x48 - movs r1, #0 - bl SetGpuReg - movs r0, #0x4a - movs r1, #0 - bl SetGpuReg - movs r0, #0x40 - movs r1, #0 - bl SetGpuReg - movs r0, #0x42 - movs r1, #0 - bl SetGpuReg - movs r0, #0x44 - movs r1, #0 - bl SetGpuReg - movs r0, #0x46 - movs r1, #0 - bl SetGpuReg - movs r0, #0 - movs r1, #0 - bl SetGpuReg - movs r0, #0xe - movs r1, #0 - bl SetGpuReg - movs r0, #0xc - movs r1, #0 - bl SetGpuReg - movs r0, #0xa - movs r1, #0 - bl SetGpuReg - movs r0, #8 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1c - movs r1, #0 - bl SetGpuReg - movs r0, #0x1e - movs r1, #0 - bl SetGpuReg - movs r0, #0x18 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1a - movs r1, #0 - bl SetGpuReg - movs r0, #0x14 - movs r1, #0 - bl SetGpuReg - movs r0, #0x16 - movs r1, #0 - bl SetGpuReg - movs r0, #0x10 - movs r1, #0 - bl SetGpuReg - movs r0, #0x12 - movs r1, #0 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - b _08150CF8 -_08150BF8: - movs r0, #0x48 - movs r1, #0 - bl SetGpuReg - movs r0, #0x4a - movs r1, #0 - bl SetGpuReg - movs r0, #0x40 - movs r1, #0 - bl SetGpuReg - movs r0, #0x42 - movs r1, #0 - bl SetGpuReg - movs r0, #0x44 - movs r1, #0 - bl SetGpuReg - movs r0, #0x46 - movs r1, #0 - bl SetGpuReg - ldr r0, _08150C48 - ldrh r3, [r0] - cmp r3, #0 - bne _08150C50 - ldr r1, _08150C4C - ldr r2, [r1] - movs r0, #0xb0 - strb r0, [r2, #0x14] - ldr r2, [r1] - movs r0, #0x10 - strb r0, [r2, #0x15] - ldr r0, [r1] - strb r3, [r0, #0xc] - ldr r2, [r1] - movs r0, #0x50 - b _08150C68 - .align 2, 0 -_08150C48: .4byte gUnknown_2037280 -_08150C4C: .4byte gUnknown_203A878 -_08150C50: - ldr r1, _08150D00 - ldr r2, [r1] - movs r3, #0 - movs r0, #0x60 - strb r0, [r2, #0x14] - ldr r2, [r1] - movs r0, #0xe8 - strb r0, [r2, #0x15] - ldr r0, [r1] - strb r3, [r0, #0xc] - ldr r2, [r1] - movs r0, #4 -_08150C68: - strb r0, [r2, #0xd] - ldr r0, [r1] - strb r3, [r0, #9] - ldr r0, [r1] - strb r3, [r0, #9] - adds r4, r1, #0 - ldr r0, [r4] - ldrb r1, [r0, #0x14] - movs r0, #0x1c - bl SetGpuReg - ldr r0, [r4] - ldrb r1, [r0, #0x15] - movs r0, #0x1e - bl SetGpuReg - movs r0, #0x18 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1a - movs r1, #0 - bl SetGpuReg - ldr r0, [r4] - ldrb r1, [r0, #0xc] - movs r0, #0x14 - bl SetGpuReg - ldr r0, [r4] - ldrb r1, [r0, #0xd] - movs r0, #0x16 - bl SetGpuReg - ldr r0, [r4] - ldrb r1, [r0, #8] - movs r0, #0x10 - bl SetGpuReg - ldr r0, [r4] - ldrb r1, [r0, #9] - movs r0, #0x12 - bl SetGpuReg - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #1 - bl CopyBgTilemapBufferToVram - movs r0, #2 - bl CopyBgTilemapBufferToVram - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg - movs r1, #0xfc - lsls r1, r1, #6 - movs r0, #0x50 - bl SetGpuReg -_08150CF8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08150D00: .4byte gUnknown_203A878 - thumb_func_end sub_08150B48 - - thumb_func_start LoadCableCarSprites -LoadCableCarSprites: @ 0x08150D04 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x28 - ldr r1, _08150E18 - add r0, sp, #0xc - movs r2, #2 - bl memcpy - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - add r6, sp, #0x10 - ldr r1, _08150E1C - adds r0, r6, #0 - movs r2, #4 - bl memcpy - add r5, sp, #0x14 - ldr r1, _08150E20 - adds r0, r5, #0 - movs r2, #8 - bl memcpy - add r4, sp, #0x1c - ldr r1, _08150E24 - adds r0, r4, #0 - movs r2, #4 - bl memcpy - ldr r0, _08150E28 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [sp, #0x20] - str r1, [sp, #0x24] - ldr r0, _08150E2C - ldrh r0, [r0] - mov r8, r6 - mov sl, r5 - cmp r0, #0 - beq _08150D62 - cmp r0, #1 - beq _08150E44 -_08150D62: - ldr r0, _08150E30 - ldr r0, [r0] - ldrb r0, [r0, #8] - add r0, sp - adds r0, #0xc - ldrb r0, [r0] - ldr r1, _08150E34 - movs r2, #0x66 - str r2, [sp] - movs r2, #0xc8 - movs r3, #0x49 - bl AddPseudoEventObject - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0x40 - beq _08150DAC - ldr r0, _08150E38 - lsls r1, r6, #4 - adds r1, r1, r6 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - movs r2, #8 - orrs r0, r2 - strb r0, [r1, #5] - movs r0, #8 - strh r0, [r1, #0x24] - movs r0, #0x10 - strh r0, [r1, #0x26] - movs r0, #0xc8 - strh r0, [r1, #0x2e] - movs r0, #0x49 - strh r0, [r1, #0x30] -_08150DAC: - ldr r4, _08150E3C - adds r0, r4, #0 - movs r1, #0xb0 - movs r2, #0x2b - movs r3, #0x67 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r5, _08150E38 - lsls r0, r6, #4 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0x20 - strh r1, [r0, #0x26] - strh r1, [r0, #0x24] - movs r1, #0xb0 - strh r1, [r0, #0x2e] - movs r1, #0x2b - strh r1, [r0, #0x30] - adds r4, #0x18 - adds r0, r4, #0 - movs r1, #0xc8 - movs r2, #0x63 - movs r3, #0x65 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #4 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #8 - strh r1, [r0, #0x24] - movs r1, #4 - strh r1, [r0, #0x26] - movs r1, #0xc8 - strh r1, [r0, #0x2e] - movs r1, #0x63 - strh r1, [r0, #0x30] - ldr r2, _08150E40 - ldr r1, [r2] - movs r0, #7 - strb r0, [r1, #2] - ldr r1, [r2] - movs r0, #0xaf - lsls r0, r0, #1 - strh r0, [r1, #4] - movs r0, #2 - bl SetCurrentAndNextWeatherNoDelay - b _08150F16 - .align 2, 0 -_08150E18: .4byte gUnknown_85AC9EC -_08150E1C: .4byte gUnknown_85AC9EE -_08150E20: .4byte gUnknown_85AC9F2 -_08150E24: .4byte gUnknown_85AC9FA -_08150E28: .4byte gUnknown_85ACA00 -_08150E2C: .4byte gUnknown_2037280 -_08150E30: .4byte gUnknown_3005AF0 -_08150E34: .4byte sub_08150924 -_08150E38: .4byte gUnknown_20205AC -_08150E3C: .4byte gUnknown_85AC9A4 -_08150E40: .4byte gUnknown_203A878 -_08150E44: - ldr r7, _08150FE4 - ldr r0, [r7] - ldr r1, _08150FE8 - adds r0, r0, r1 - ldr r1, [r0] - adds r1, #0x48 - movs r0, #0xc - str r0, [sp] - movs r0, #3 - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #0 - movs r2, #0x18 - movs r3, #0x1a - bl CopyToBgTilemapBufferRect_ChangePalette - ldr r0, _08150FEC - ldr r0, [r0] - ldrb r0, [r0, #8] - add r0, sp - adds r0, #0xc - ldrb r0, [r0] - ldr r1, _08150FF0 - movs r2, #0x66 - str r2, [sp] - movs r2, #0x80 - movs r3, #0x27 - bl AddPseudoEventObject - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0x40 - beq _08150EB0 - ldr r0, _08150FF4 - lsls r1, r6, #4 - adds r1, r1, r6 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - movs r2, #8 - orrs r0, r2 - strb r0, [r1, #5] - movs r0, #8 - strh r0, [r1, #0x24] - movs r0, #0x10 - strh r0, [r1, #0x26] - movs r0, #0x80 - strh r0, [r1, #0x2e] - movs r0, #0x27 - strh r0, [r1, #0x30] -_08150EB0: - ldr r4, _08150FF8 - adds r0, r4, #0 - movs r1, #0x68 - movs r2, #9 - movs r3, #0x67 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r5, _08150FF4 - lsls r0, r6, #4 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0x20 - strh r1, [r0, #0x26] - strh r1, [r0, #0x24] - movs r1, #0x68 - strh r1, [r0, #0x2e] - movs r1, #9 - strh r1, [r0, #0x30] - adds r4, #0x18 - adds r0, r4, #0 - movs r1, #0x80 - movs r2, #0x41 - movs r3, #0x65 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #4 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #8 - strh r1, [r0, #0x24] - movs r1, #4 - strh r1, [r0, #0x26] - movs r1, #0x80 - strh r1, [r0, #0x2e] - movs r1, #0x41 - strh r1, [r0, #0x30] - ldr r1, [r7] - movs r0, #2 - strb r0, [r1, #2] - ldr r1, [r7] - ldr r0, _08150FFC - strh r0, [r1, #4] - movs r0, #7 - bl SetCurrentAndNextWeatherNoDelay -_08150F16: - movs r4, #0 - ldr r5, _08150FF4 -_08150F1A: - lsls r1, r4, #0x14 - movs r2, #0xc0 - lsls r2, r2, #0xf - adds r1, r1, r2 - asrs r1, r1, #0x10 - lsls r2, r4, #0x13 - ldr r3, _08151000 - adds r2, r2, r3 - asrs r2, r2, #0x10 - ldr r0, _08151004 - movs r3, #0x68 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #4 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #8 - strh r1, [r0, #0x24] - strh r1, [r0, #0x26] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #8 - bls _08150F1A - movs r0, #0x3f - mov r4, sb - ands r0, r4 - cmp r0, #0 - bne _08151050 - mov r0, sb - movs r1, #3 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - add r0, r8 - ldrb r0, [r0] - ldr r5, _08151008 - ldrh r4, [r5] - lsls r4, r4, #2 - add r1, sp, #0x20 - adds r1, r4, r1 - ldr r1, [r1] - mov r3, sl - adds r2, r3, r4 - movs r3, #0 - ldrsh r2, [r2, r3] - mov r3, sp - adds r3, #0x16 - adds r3, r3, r4 - movs r4, #0 - ldrsh r3, [r3, r4] - movs r4, #0x6a - str r4, [sp] - bl AddPseudoEventObject - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0x40 - beq _08151050 - ldr r1, _08150FF4 - lsls r2, r6, #4 - adds r0, r2, r6 - lsls r0, r0, #2 - adds r4, r0, r1 - ldrb r1, [r4, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r4, #5] - adds r0, r4, #0 - adds r0, #0x28 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - rsbs r0, r0, #0 - strh r0, [r4, #0x24] - adds r0, r4, #0 - adds r0, #0x29 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - ldrh r0, [r5] - mov r8, r2 - cmp r0, #0 - bne _08151012 - movs r7, #1 - mov r5, sb - ands r5, r7 - cmp r5, #0 - beq _0815100C - adds r0, r4, #0 - movs r1, #6 - b _08151020 - .align 2, 0 -_08150FE4: .4byte gUnknown_203A878 -_08150FE8: .4byte 0x000040FC -_08150FEC: .4byte gUnknown_3005AF0 -_08150FF0: .4byte sub_08150924 -_08150FF4: .4byte gUnknown_20205AC -_08150FF8: .4byte gUnknown_85AC9A4 -_08150FFC: .4byte 0x00000109 -_08151000: .4byte 0xFFF80000 -_08151004: .4byte gUnknown_85AC9D4 -_08151008: .4byte gUnknown_2037280 -_0815100C: - adds r0, r4, #0 - movs r1, #7 - b _08151032 -_08151012: - movs r7, #1 - mov r5, sb - ands r5, r7 - cmp r5, #0 - beq _0815102E - adds r0, r4, #0 - movs r1, #7 -_08151020: - bl StartSpriteAnim - strh r7, [r4, #0x30] - ldrh r0, [r4, #0x22] - adds r0, #2 - strh r0, [r4, #0x22] - b _08151038 -_0815102E: - adds r0, r4, #0 - movs r1, #6 -_08151032: - bl StartSpriteAnim - strh r5, [r4, #0x30] -_08151038: - ldr r0, _08151060 - mov r2, r8 - adds r1, r2, r6 - lsls r1, r1, #2 - adds r1, r1, r0 - movs r0, #3 - mov r3, sb - ands r0, r3 - add r0, sp - adds r0, #0x1c - ldrb r0, [r0] - strh r0, [r1, #0x32] -_08151050: - add sp, #0x28 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08151060: .4byte gUnknown_20205AC - thumb_func_end LoadCableCarSprites - - thumb_func_start sub_08151064 -sub_08151064: @ 0x08151064 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - movs r3, #0 - mov sb, r3 - ldr r2, _08151130 - ldr r0, [r2] - ldrb r1, [r0, #0x1b] - adds r1, #2 - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #0x1a - lsrs r0, r0, #0x18 - mov ip, r0 -_08151086: - movs r7, #0 - lsls r0, r3, #1 - adds r1, r3, #3 - adds r2, r3, #6 - adds r4, r3, #1 - str r4, [sp, #4] - adds r0, r0, r3 - lsls r0, r0, #3 - str r0, [sp] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - mov sl, r0 - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #3 - mov r8, r0 -_081510A8: - ldr r0, _08151130 - ldr r6, [r0] - lsls r3, r7, #1 - ldr r1, [sp] - adds r2, r3, r1 - adds r4, r6, #0 - adds r4, #0x22 - adds r2, r4, r2 - mov r1, ip - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov ip, r0 - ldr r0, _08151134 - adds r5, r6, r0 - ldr r0, [r5] - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - strh r0, [r2] - mov r1, sl - adds r2, r3, r1 - adds r2, r4, r2 - str r2, [sp, #8] - ldr r0, [r5] - mov r2, sb - lsls r1, r2, #1 - adds r0, r1, r0 - ldrh r0, [r0] - ldr r2, [sp, #8] - strh r0, [r2] - add r3, r8 - adds r4, r4, r3 - ldr r0, [r5] - adds r1, r1, r0 - adds r1, #0x48 - ldrh r0, [r1] - strh r0, [r4] - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #0xb - bls _081510A8 - ldr r4, [sp, #4] - lsls r0, r4, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #2 - bls _08151086 - ldrb r0, [r6, #0x1b] - adds r0, #1 - movs r1, #3 - bl __modsi3 - strb r0, [r6, #0x1b] - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08151130: .4byte gUnknown_203A878 -_08151134: .4byte 0x000040FC - thumb_func_end sub_08151064 - - thumb_func_start sub_08151138 -sub_08151138: @ 0x08151138 - push {r4, r5, lr} - ldr r5, _08151190 - ldr r4, [r5] - ldrb r0, [r4, #0x1c] - adds r0, #1 - movs r1, #0x60 - bl __modsi3 - strb r0, [r4, #0x1c] - ldr r1, [r5] - ldrb r0, [r1, #0x1f] - ldrb r2, [r1, #0x1d] - subs r0, r0, r2 - strb r0, [r1, #8] - ldr r2, [r5] - adds r0, r2, #0 - adds r0, #0x20 - ldrb r0, [r0] - ldrb r1, [r2, #0x1e] - subs r0, r0, r1 - strb r0, [r2, #9] - ldr r1, [r5] - ldrb r0, [r1, #0x1d] - adds r0, #1 - strb r0, [r1, #0x1d] - ldr r2, [r5] - ldrb r0, [r2, #0x1d] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0815117C - ldrb r0, [r2, #0x1e] - adds r0, #1 - strb r0, [r2, #0x1e] -_0815117C: - ldr r0, [r5] - ldrb r0, [r0, #0x1d] - cmp r0, #0x10 - bls _08151188 - bl sub_081511F0 -_08151188: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08151190: .4byte gUnknown_203A878 - thumb_func_end sub_08151138 - - thumb_func_start sub_08151194 -sub_08151194: @ 0x08151194 - push {r4, r5, lr} - ldr r5, _081511EC - ldr r4, [r5] - ldrb r0, [r4, #0x1c] - adds r0, #1 - movs r1, #0x60 - bl __modsi3 - strb r0, [r4, #0x1c] - ldr r1, [r5] - ldrb r0, [r1, #0x1d] - ldrb r2, [r1, #0x1f] - adds r0, r0, r2 - strb r0, [r1, #8] - ldr r1, [r5] - adds r2, r1, #0 - adds r2, #0x20 - ldrb r0, [r1, #0x1e] - ldrb r2, [r2] - adds r0, r0, r2 - strb r0, [r1, #9] - ldr r1, [r5] - ldrb r0, [r1, #0x1d] - adds r0, #1 - strb r0, [r1, #0x1d] - ldr r2, [r5] - ldrb r0, [r2, #0x1d] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _081511D8 - ldrb r0, [r2, #0x1e] - adds r0, #1 - strb r0, [r2, #0x1e] -_081511D8: - ldr r0, [r5] - ldrb r0, [r0, #0x1d] - cmp r0, #0x10 - bls _081511E4 - bl sub_08151364 -_081511E4: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081511EC: .4byte gUnknown_203A878 - thumb_func_end sub_08151194 - - thumb_func_start sub_081511F0 -sub_081511F0: @ 0x081511F0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - movs r7, #0 - ldr r3, _08151354 - ldr r0, [r3] - strb r7, [r0, #0x1e] - strb r7, [r0, #0x1d] - ldr r1, [r3] - ldrb r0, [r1, #8] - strb r0, [r1, #0x1f] - ldr r0, [r3] - ldrb r1, [r0, #9] - adds r0, #0x20 - strb r1, [r0] - ldr r4, [r3] - ldrb r1, [r4, #0x19] - adds r2, r1, #0 - adds r2, #0x1e - adds r0, r2, #0 - asrs r0, r0, #5 - lsls r0, r0, #5 - subs r0, r2, r0 - strb r0, [r4, #0x19] - ldr r1, [r3] - ldrb r0, [r1, #0x18] - subs r0, #2 - strb r0, [r1, #0x18] - ldr r4, _08151358 - ldr r0, [r3] - ldrb r1, [r0, #0x1a] - adds r2, r1, #0 - adds r2, #0x17 - adds r0, r2, #0 - asrs r0, r0, #5 - lsls r0, r0, #5 - subs r0, r2, r0 - strb r0, [r4] - ldr r6, _0815135C - mov sb, r3 - ldr r0, _08151360 - mov r8, r0 -_0815124A: - mov r1, sb - ldr r2, [r1] - ldrb r0, [r2, #0x19] - strb r0, [r6] - ldr r0, _08151358 - ldrb r0, [r0] - adds r1, r0, r7 - adds r0, r1, #0 - asrs r0, r0, #5 - lsls r0, r0, #5 - subs r0, r1, r0 - mov r1, r8 - strb r0, [r1] - ldrb r1, [r2, #0x18] - lsls r1, r1, #1 - lsls r0, r7, #1 - adds r0, r0, r7 - lsls r5, r0, #3 - adds r1, r1, r5 - adds r0, r2, #0 - adds r0, #0x22 - adds r0, r0, r1 - ldrh r1, [r0] - ldrb r2, [r6] - mov r0, r8 - ldrb r3, [r0] - movs r4, #1 - str r4, [sp] - str r4, [sp, #4] - movs r0, #0x11 - mov sl, r0 - str r0, [sp, #8] - movs r0, #0 - bl FillBgTilemapBufferRect - ldrb r1, [r6] - adds r2, r1, #1 - adds r0, r2, #0 - asrs r0, r0, #5 - lsls r0, r0, #5 - subs r0, r2, r0 - strb r0, [r6] - mov r0, sb - ldr r1, [r0] - ldrb r0, [r1, #0x18] - adds r0, #1 - lsls r0, r0, #1 - adds r0, r0, r5 - adds r1, #0x22 - adds r1, r1, r0 - ldrh r1, [r1] - ldrb r2, [r6] - mov r0, r8 - ldrb r3, [r0] - str r4, [sp] - str r4, [sp, #4] - mov r0, sl - str r0, [sp, #8] - movs r0, #0 - bl FillBgTilemapBufferRect - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #8 - bls _0815124A - ldr r5, _0815135C - ldr r4, _08151354 - ldr r0, [r4] - ldrb r1, [r0, #0x19] - adds r2, r1, #0 - adds r2, #0x1e - adds r0, r2, #0 - asrs r0, r0, #5 - lsls r0, r0, #5 - subs r0, r2, r0 - strb r0, [r5] - ldrb r2, [r5] - movs r0, #2 - str r0, [sp] - movs r6, #0x20 - str r6, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r3, #0 - bl FillBgTilemapBufferRect - ldr r1, [r4] - ldrb r0, [r1, #0x18] - cmp r0, #0 - bne _08151344 - ldrb r2, [r1, #0x1a] - adds r3, r2, #0 - adds r3, #0x1d - adds r0, r3, #0 - asrs r0, r0, #5 - lsls r0, r0, #5 - subs r0, r3, r0 - strb r0, [r1, #0x1a] - ldr r1, [r4] - movs r0, #0xc - strb r0, [r1, #0x18] - bl sub_08151064 - ldr r0, [r4] - ldrb r1, [r0, #0x1a] - adds r2, r1, #1 - adds r0, r2, #0 - asrs r0, r0, #5 - lsls r0, r0, #5 - subs r0, r2, r0 - strb r0, [r5] - ldrb r3, [r5] - str r6, [sp] - movs r0, #9 - str r0, [sp, #4] - mov r1, sl - str r1, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl FillBgTilemapBufferRect -_08151344: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08151354: .4byte gUnknown_203A878 -_08151358: .4byte gUnknown_203A87E -_0815135C: .4byte gUnknown_203A87C -_08151360: .4byte gUnknown_203A87D - thumb_func_end sub_081511F0 - - thumb_func_start sub_08151364 -sub_08151364: @ 0x08151364 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - movs r7, #0 - ldr r2, _08151494 - ldr r0, [r2] - strb r7, [r0, #0x1e] - strb r7, [r0, #0x1d] - ldr r1, [r2] - ldrb r0, [r1, #8] - strb r0, [r1, #0x1f] - ldr r0, [r2] - ldrb r1, [r0, #9] - adds r0, #0x20 - strb r1, [r0] - ldr r4, [r2] - ldrb r1, [r4, #0x19] - adds r3, r1, #2 - adds r0, r3, #0 - asrs r0, r0, #5 - lsls r0, r0, #5 - subs r0, r3, r0 - strb r0, [r4, #0x19] - ldr r1, [r2] - ldrb r0, [r1, #0x18] - adds r0, #2 - strb r0, [r1, #0x18] - ldr r1, _08151498 - ldr r0, [r2] - ldrb r0, [r0, #0x1a] - strb r0, [r1] - ldr r6, _0815149C - mov sl, r2 - ldr r0, _081514A0 - mov sb, r0 -_081513B0: - mov r1, sl - ldr r2, [r1] - ldrb r0, [r2, #0x19] - strb r0, [r6] - ldr r0, _08151498 - ldrb r0, [r0] - adds r1, r0, r7 - adds r0, r1, #0 - asrs r0, r0, #5 - lsls r0, r0, #5 - subs r0, r1, r0 - mov r1, sb - strb r0, [r1] - ldrb r1, [r2, #0x18] - lsls r1, r1, #1 - lsls r0, r7, #1 - adds r0, r0, r7 - lsls r5, r0, #3 - adds r1, r1, r5 - adds r0, r2, #0 - adds r0, #0x22 - adds r0, r0, r1 - ldrh r1, [r0] - ldrb r2, [r6] - mov r0, sb - ldrb r3, [r0] - movs r4, #1 - str r4, [sp] - str r4, [sp, #4] - movs r0, #0x11 - mov r8, r0 - str r0, [sp, #8] - movs r0, #0 - bl FillBgTilemapBufferRect - ldrb r1, [r6] - adds r2, r1, #1 - adds r0, r2, #0 - asrs r0, r0, #5 - lsls r0, r0, #5 - subs r0, r2, r0 - strb r0, [r6] - mov r0, sl - ldr r1, [r0] - ldrb r0, [r1, #0x18] - adds r0, #1 - lsls r0, r0, #1 - adds r0, r0, r5 - adds r1, #0x22 - adds r1, r1, r0 - ldrh r1, [r1] - ldrb r2, [r6] - mov r0, sb - ldrb r3, [r0] - str r4, [sp] - str r4, [sp, #4] - mov r0, r8 - str r0, [sp, #8] - movs r0, #0 - bl FillBgTilemapBufferRect - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #8 - bls _081513B0 - ldr r4, _081514A0 - ldr r5, _08151494 - ldr r3, [r5] - ldrb r1, [r3, #0x1a] - adds r2, r1, #0 - adds r2, #0x17 - adds r0, r2, #0 - asrs r0, r0, #5 - lsls r0, r0, #5 - subs r0, r2, r0 - strb r0, [r4] - ldrb r2, [r3, #0x19] - ldrb r3, [r4] - movs r0, #2 - str r0, [sp] - movs r0, #9 - str r0, [sp, #4] - mov r1, r8 - str r1, [sp, #8] - movs r0, #0 - movs r1, #0 - bl FillBgTilemapBufferRect - ldr r1, [r5] - ldrb r0, [r1, #0x18] - cmp r0, #0xa - bne _08151482 - ldrb r2, [r1, #0x1a] - adds r3, r2, #3 - adds r0, r3, #0 - asrs r0, r0, #5 - lsls r0, r0, #5 - subs r0, r3, r0 - strb r0, [r1, #0x1a] - ldr r1, [r5] - movs r0, #0xfe - strb r0, [r1, #0x18] - bl sub_08151064 -_08151482: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08151494: .4byte gUnknown_203A878 -_08151498: .4byte gUnknown_203A881 -_0815149C: .4byte gUnknown_203A87F -_081514A0: .4byte gUnknown_203A880 - thumb_func_end sub_08151364 - - thumb_func_start sub_081514A4 -sub_081514A4: @ 0x081514A4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _081514B2 - cmp r0, #1 - beq _081514DC -_081514B2: - ldr r1, _081514D8 - ldr r2, [r1] - movs r3, #0 - movs r0, #2 - strb r0, [r2, #0x1b] - ldr r0, [r1] - strb r3, [r0, #0x19] - ldr r2, [r1] - movs r0, #0x14 - strb r0, [r2, #0x1a] - ldr r1, [r1] - movs r0, #0xc - strb r0, [r1, #0x18] - bl sub_08151064 - bl sub_081511F0 - b _081514FE - .align 2, 0 -_081514D8: .4byte gUnknown_203A878 -_081514DC: - ldr r1, _0815150C - ldr r2, [r1] - movs r0, #2 - strb r0, [r2, #0x1b] - ldr r2, [r1] - movs r0, #0x1c - strb r0, [r2, #0x19] - ldr r2, [r1] - movs r0, #0x14 - strb r0, [r2, #0x1a] - ldr r1, [r1] - movs r0, #4 - strb r0, [r1, #0x18] - bl sub_08151064 - bl sub_08151364 -_081514FE: - ldr r0, _0815150C - ldr r1, [r0] - movs r0, #0 - strb r0, [r1, #0x1c] - pop {r0} - bx r0 - .align 2, 0 -_0815150C: .4byte gUnknown_203A878 - thumb_func_end sub_081514A4 - - thumb_func_start sub_08151510 -sub_08151510: @ 0x08151510 - push {lr} - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - muls r0, r1, r0 - adds r1, r0, #0 - cmp r0, #0 - bge _08151524 - adds r1, #0xff -_08151524: - lsls r0, r1, #8 - asrs r0, r0, #0x10 - pop {r1} - bx r1 - thumb_func_end sub_08151510 - - thumb_func_start sub_0815152C -sub_0815152C: @ 0x0815152C - push {lr} - adds r3, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - muls r3, r2, r3 - movs r1, #1 - lsls r1, r0 - adds r0, r3, #0 - bl __divsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - pop {r1} - bx r1 - thumb_func_end sub_0815152C - - thumb_func_start sub_08151550 -sub_08151550: @ 0x08151550 - push {r4, r5, r6, r7, lr} - adds r2, r1, #0 - adds r4, r0, #0 - asrs r5, r0, #0x1f - asrs r3, r2, #0x1f - adds r1, r5, #0 - adds r0, r4, #0 - bl __muldi3 - adds r5, r1, #0 - adds r4, r0, #0 - adds r7, r5, #0 - adds r6, r4, #0 - cmp r5, #0 - bge _08151576 - movs r6, #0xff - movs r7, #0 - adds r6, r6, r4 - adcs r7, r5 -_08151576: - lsls r3, r7, #0x18 - lsrs r2, r6, #8 - adds r0, r3, #0 - orrs r0, r2 - asrs r1, r7, #8 - adds r5, r1, #0 - adds r4, r0, #0 - adds r0, r4, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_08151550 - - thumb_func_start sub_0815158C -sub_0815158C: @ 0x0815158C - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0 - beq _081515A8 - lsls r0, r0, #0x10 - asrs r0, r0, #8 - bl __divsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - b _081515AA -_081515A8: - movs r0, #0 -_081515AA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0815158C - - thumb_func_start sub_081515B0 -sub_081515B0: @ 0x081515B0 - push {lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r0, r1, #0x10 - lsls r2, r2, #0x10 - asrs r1, r2, #0x10 - cmp r1, #0 - beq _081515D2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r0, r3 - bl __divsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - b _081515D4 -_081515D2: - movs r0, #0 -_081515D4: - pop {r1} - bx r1 - thumb_func_end sub_081515B0 - - thumb_func_start sub_081515D8 -sub_081515D8: @ 0x081515D8 - push {r4, r5, r6, lr} - adds r6, r1, #0 - cmp r6, #0 - beq _081515F8 - adds r2, r0, #0 - asrs r3, r0, #0x1f - lsrs r5, r2, #0x18 - lsls r4, r3, #8 - adds r1, r5, #0 - orrs r1, r4 - lsls r0, r2, #8 - adds r2, r6, #0 - asrs r3, r6, #0x1f - bl __divdi3 - b _081515FA -_081515F8: - movs r0, #0 -_081515FA: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_081515D8 - - thumb_func_start sub_08151600 -sub_08151600: @ 0x08151600 - push {lr} - adds r1, r0, #0 - movs r0, #0x80 - lsls r0, r0, #9 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl __divsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - pop {r1} - bx r1 - thumb_func_end sub_08151600 - - thumb_func_start sub_08151618 -sub_08151618: @ 0x08151618 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0x80 - lsls r2, r2, #1 - lsls r2, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r2, #0 - bl __divsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08151618 - - thumb_func_start sub_08151638 -sub_08151638: @ 0x08151638 - push {lr} - adds r2, r0, #0 - ldr r1, _08151650 - ldr r0, _0815164C - asrs r3, r2, #0x1f - bl __divdi3 - pop {r1} - bx r1 - .align 2, 0 -_0815164C: .4byte 0x00010000 -_08151650: .4byte 0x00000000 - thumb_func_end sub_08151638 - - thumb_func_start sub_08151654 -sub_08151654: @ 0x08151654 - push {lr} - movs r1, #0 - strb r1, [r0] - strh r1, [r0, #2] - adds r0, #4 - movs r2, #0xc0 - bl memset - pop {r0} - bx r0 - thumb_func_end sub_08151654 - - thumb_func_start sub_08151668 -sub_08151668: @ 0x08151668 - push {r4, r5, r6, r7, lr} - adds r3, r0, #0 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - cmp r6, #0xf - bhi _08151684 - lsls r0, r6, #1 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r5, r3, r0 - ldrb r7, [r5, #4] - lsrs r0, r7, #7 - cmp r0, #0 - beq _08151688 -_08151684: - movs r0, #0xff - b _081516E6 -_08151688: - ldrh r0, [r2] - movs r4, #0 - strh r0, [r5, #8] - ldrh r0, [r2, #2] - strh r0, [r5, #0xa] - ldrb r0, [r2, #4] - strb r0, [r5, #0xc] - ldrb r0, [r2, #5] - strb r0, [r5, #0xd] - ldrb r0, [r2, #6] - strb r0, [r5, #0xe] - ldrb r3, [r2, #7] - lsls r0, r3, #0x1b - lsrs r0, r0, #0x1b - ldrb r2, [r5, #0xf] - movs r1, #0x20 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - movs r0, #0x60 - ands r0, r3 - movs r2, #0x61 - rsbs r2, r2, #0 - ands r1, r2 - orrs r1, r0 - lsls r3, r3, #0x18 - asrs r3, r3, #0x1f - lsls r3, r3, #7 - movs r0, #0x7f - ands r1, r0 - orrs r1, r3 - strb r1, [r5, #0xf] - subs r0, #0xff - ands r0, r7 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r5, #4] - strb r4, [r5, #6] - strb r4, [r5, #5] - lsls r1, r1, #0x18 - cmp r1, #0 - bge _081516E0 - movs r0, #0xff - b _081516E2 -_081516E0: - movs r0, #1 -_081516E2: - strb r0, [r5, #7] - adds r0, r6, #0 -_081516E6: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_08151668 - - thumb_func_start sub_081516EC -sub_081516EC: @ 0x081516EC - push {r4, lr} - adds r2, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r4, r1, #0 - cmp r4, #0xf - bhi _08151718 - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r1, r2, r0 - ldrb r0, [r1, #4] - lsrs r0, r0, #7 - cmp r0, #0 - beq _08151718 - adds r0, r1, #4 - movs r1, #0 - movs r2, #0xc - bl memset - adds r0, r4, #0 - b _0815171A -_08151718: - movs r0, #0xff -_0815171A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081516EC - - thumb_func_start sub_08151720 -sub_08151720: @ 0x08151720 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r5, r0, #0 - movs r0, #0 - mov ip, r0 - ldrb r1, [r5, #8] - cmp ip, r1 - blo _08151738 - b _081518D0 -_08151738: - movs r7, #0x1f - ldr r0, _08151768 - mov sl, r0 - movs r1, #0x7d - rsbs r1, r1, #0 - mov sb, r1 - movs r0, #0x1f - mov r8, r0 -_08151748: - ldrh r0, [r5, #6] - add r0, ip - lsls r0, r0, #1 - ldr r1, _0815176C - adds r3, r0, r1 - ldr r1, _08151770 - adds r6, r0, r1 - ldrb r0, [r5] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x19 - cmp r0, #1 - beq _08151774 - cmp r0, #2 - beq _081517D2 - b _081518BE - .align 2, 0 -_08151768: .4byte 0xFFFFFC1F -_0815176C: .4byte gUnknown_20377B4 -_08151770: .4byte gUnknown_20373B4 -_08151774: - ldr r0, [r3] - lsls r2, r0, #0x1b - lsrs r0, r2, #0x1b - movs r1, #3 - ldrsb r1, [r5, r1] - adds r0, r0, r1 - cmp r0, #0x1f - bhi _08151796 - lsrs r0, r2, #0x1b - adds r0, r0, r1 - ands r0, r7 - ldrb r2, [r3] - movs r1, #0x20 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3] -_08151796: - ldr r0, [r3] - lsls r2, r0, #0x16 - lsrs r0, r2, #0x1b - movs r1, #3 - ldrsb r1, [r5, r1] - adds r0, r0, r1 - cmp r0, #0x1f - bhi _081517BA - lsrs r0, r2, #0x1b - adds r0, r0, r1 - mov r1, r8 - ands r0, r1 - lsls r0, r0, #5 - ldrh r2, [r3] - mov r1, sl - ands r1, r2 - orrs r1, r0 - strh r1, [r3] -_081517BA: - ldr r0, [r3] - lsls r2, r0, #0x11 - lsrs r0, r2, #0x1b - movs r1, #3 - ldrsb r1, [r5, r1] - adds r0, r0, r1 - cmp r0, #0x1f - bls _081517CC - b _081518BE -_081517CC: - lsrs r0, r2, #0x1b - adds r0, r0, r1 - b _081518B0 -_081517D2: - movs r0, #3 - ldrsb r0, [r5, r0] - cmp r0, #0 - bge _08151844 - ldr r0, [r3] - lsls r4, r0, #0x1b - lsrs r1, r4, #0x1b - movs r2, #3 - ldrsb r2, [r5, r2] - adds r1, r1, r2 - ldr r0, [r6] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1b - cmp r1, r0 - blt _08151802 - lsrs r0, r4, #0x1b - adds r0, r0, r2 - ands r0, r7 - ldrb r2, [r3] - movs r1, #0x20 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3] -_08151802: - ldr r0, [r3] - lsls r4, r0, #0x16 - lsrs r1, r4, #0x1b - movs r2, #3 - ldrsb r2, [r5, r2] - adds r1, r1, r2 - ldr r0, [r6] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x1b - cmp r1, r0 - blt _0815182C - lsrs r0, r4, #0x1b - adds r0, r0, r2 - mov r1, r8 - ands r0, r1 - lsls r0, r0, #5 - ldrh r2, [r3] - mov r1, sl - ands r1, r2 - orrs r1, r0 - strh r1, [r3] -_0815182C: - ldr r0, [r3] - lsls r4, r0, #0x11 - lsrs r1, r4, #0x1b - movs r2, #3 - ldrsb r2, [r5, r2] - adds r1, r1, r2 - ldr r0, [r6] - lsls r0, r0, #0x11 - lsrs r0, r0, #0x1b - cmp r1, r0 - blt _081518BE - b _081518AC -_08151844: - ldr r0, [r3] - lsls r4, r0, #0x1b - lsrs r1, r4, #0x1b - movs r2, #3 - ldrsb r2, [r5, r2] - adds r1, r1, r2 - ldr r0, [r6] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1b - cmp r1, r0 - bgt _0815186C - lsrs r0, r4, #0x1b - adds r0, r0, r2 - ands r0, r7 - ldrb r2, [r3] - movs r1, #0x20 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3] -_0815186C: - ldr r0, [r3] - lsls r4, r0, #0x16 - lsrs r1, r4, #0x1b - movs r2, #3 - ldrsb r2, [r5, r2] - adds r1, r1, r2 - ldr r0, [r6] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x1b - cmp r1, r0 - bgt _08151896 - lsrs r0, r4, #0x1b - adds r0, r0, r2 - mov r1, r8 - ands r0, r1 - lsls r0, r0, #5 - ldrh r2, [r3] - mov r1, sl - ands r1, r2 - orrs r1, r0 - strh r1, [r3] -_08151896: - ldr r0, [r3] - lsls r4, r0, #0x11 - lsrs r1, r4, #0x1b - movs r2, #3 - ldrsb r2, [r5, r2] - adds r1, r1, r2 - ldr r0, [r6] - lsls r0, r0, #0x11 - lsrs r0, r0, #0x1b - cmp r1, r0 - bgt _081518BE -_081518AC: - lsrs r0, r4, #0x1b - adds r0, r0, r2 -_081518B0: - ands r0, r7 - lsls r0, r0, #2 - ldrb r2, [r3, #1] - mov r1, sb - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #1] -_081518BE: - mov r0, ip - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov ip, r0 - ldrb r0, [r5, #8] - cmp ip, r0 - bhs _081518D0 - b _08151748 -_081518D0: - ldrb r1, [r5, #2] - adds r0, r1, #1 - strb r0, [r5, #2] - ldrb r0, [r5, #0xb] - lsls r0, r0, #0x1b - lsls r1, r1, #0x18 - asrs r0, r0, #3 - cmp r1, r0 - beq _081518E6 - movs r0, #0 - b _0815191A -_081518E6: - movs r0, #0 - strb r0, [r5, #2] - movs r0, #3 - ldrsb r0, [r5, r0] - rsbs r0, r0, #0 - strb r0, [r5, #3] - ldrb r2, [r5] - movs r1, #0x7f - movs r0, #0x7f - ands r0, r2 - cmp r0, #1 - bne _08151906 - lsls r0, r2, #0x19 - lsrs r0, r0, #0x19 - adds r0, #1 - b _0815190C -_08151906: - lsls r0, r2, #0x19 - lsrs r0, r0, #0x19 - subs r0, #1 -_0815190C: - ands r0, r1 - movs r1, #0x80 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r5] - movs r0, #1 -_0815191A: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_08151720 - - thumb_func_start sub_08151928 -sub_08151928: @ 0x08151928 - push {r4, r5, lr} - adds r3, r0, #0 - movs r2, #0 - ldrb r0, [r3] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x19 - cmp r0, #1 - beq _0815193E - cmp r0, #2 - beq _0815196C - b _081519A6 -_0815193E: - ldrb r0, [r3, #8] - cmp r2, r0 - bhs _0815195E - ldr r4, _08151968 -_08151946: - ldrh r0, [r3, #6] - adds r0, r0, r2 - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r1, [r3, #4] - strh r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldrb r0, [r3, #8] - cmp r2, r0 - blo _08151946 -_0815195E: - ldrb r2, [r3] - lsls r1, r2, #0x19 - lsrs r1, r1, #0x19 - adds r1, #1 - b _08151998 - .align 2, 0 -_08151968: .4byte gUnknown_20377B4 -_0815196C: - ldrb r0, [r3, #8] - cmp r2, r0 - bhs _08151990 - ldr r5, _081519B0 - ldr r4, _081519B4 -_08151976: - ldrh r0, [r3, #6] - adds r0, r0, r2 - lsls r0, r0, #1 - adds r1, r0, r5 - adds r0, r0, r4 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldrb r0, [r3, #8] - cmp r2, r0 - blo _08151976 -_08151990: - ldrb r2, [r3] - lsls r1, r2, #0x19 - lsrs r1, r1, #0x19 - subs r1, #1 -_08151998: - movs r0, #0x7f - ands r1, r0 - movs r0, #0x80 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_081519A6: - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081519B0: .4byte gUnknown_20377B4 -_081519B4: .4byte gUnknown_20373B4 - thumb_func_end sub_08151928 - - thumb_func_start task_tutorial_controls_fadein -task_tutorial_controls_fadein: @ 0x081519B8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r5, #0 - ldrb r0, [r4] - cmp r0, #0 - beq _08151A1C -_081519C4: - ldrh r0, [r4, #2] - asrs r0, r5 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08151A12 - lsls r1, r5, #1 - adds r0, r1, r5 - lsls r3, r0, #2 - adds r2, r4, r3 - ldrb r0, [r2, #5] - subs r0, #1 - strb r0, [r2, #5] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r6, r1, #0 - cmp r0, #0xff - bne _08151A12 - ldrh r0, [r2, #8] - movs r2, #0x80 - lsls r2, r2, #8 - adds r1, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _08151A00 - adds r0, r3, #4 - adds r0, r4, r0 - bl sub_08151720 - b _08151A08 -_08151A00: - adds r0, r3, #4 - adds r0, r4, r0 - bl sub_08151928 -_08151A08: - adds r0, r6, r5 - lsls r0, r0, #2 - adds r0, r4, r0 - ldrb r1, [r0, #0xd] - strb r1, [r0, #5] -_08151A12: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0xf - bls _081519C4 -_08151A1C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end task_tutorial_controls_fadein - - thumb_func_start sub_08151A24 -sub_08151A24: @ 0x08151A24 - push {r4, r5, r6, r7, lr} - adds r3, r0, #0 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - movs r4, #0 - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - movs r5, #1 - movs r7, #0x80 - rsbs r7, r7, #0 -_08151A3A: - adds r0, r6, #0 - asrs r0, r4 - ands r0, r5 - cmp r0, #0 - beq _08151A68 - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r2, r3, r0 - ldrb r0, [r2, #4] - lsrs r0, r0, #7 - cmp r0, #0 - beq _08151A68 - adds r0, r5, #0 - lsls r0, r4 - ldrh r1, [r3, #2] - orrs r0, r1 - strh r0, [r3, #2] - ldrb r1, [r2, #4] - adds r0, r7, #0 - ands r0, r1 - orrs r0, r5 - strb r0, [r2, #4] -_08151A68: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xf - bls _08151A3A - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08151A24 - - thumb_func_start sub_08151A78 -sub_08151A78: @ 0x08151A78 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r6, r0, #0 - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - movs r5, #0 - movs r3, #1 -_08151A86: - ldrh r0, [r6, #2] - asrs r0, r5 - ands r0, r3 - cmp r0, #0 - beq _08151AEE - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r4, r6, r0 - ldrb r0, [r4, #4] - lsrs r0, r0, #7 - cmp r0, #0 - beq _08151AEE - adds r0, r7, #0 - asrs r0, r5 - ands r0, r3 - cmp r0, #0 - beq _08151AEE - ldrh r1, [r4, #0xa] - lsls r1, r1, #1 - ldr r0, _08151AE4 - adds r0, r1, r0 - ldr r2, _08151AE8 - adds r1, r1, r2 - ldrb r2, [r4, #0xc] - lsls r2, r2, #1 - str r3, [sp] - bl memcpy - ldrb r0, [r4, #4] - movs r2, #0x80 - rsbs r2, r2, #0 - adds r1, r2, #0 - ands r0, r1 - strb r0, [r4, #4] - movs r0, #0 - strb r0, [r4, #6] - strb r0, [r4, #5] - ldrb r0, [r4, #0xf] - lsls r0, r0, #0x18 - ldr r3, [sp] - cmp r0, #0 - bge _08151AEC - movs r0, #0xff - strb r0, [r4, #7] - b _08151AEE - .align 2, 0 -_08151AE4: .4byte gUnknown_20377B4 -_08151AE8: .4byte gUnknown_20373B4 -_08151AEC: - strb r3, [r4, #7] -_08151AEE: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0xf - bls _08151A86 - ldr r0, _08151B04 - cmp r7, r0 - bne _08151B08 - movs r0, #0 - strb r0, [r6] - b _08151B0C - .align 2, 0 -_08151B04: .4byte 0x0000FFFF -_08151B08: - ldrh r0, [r6, #2] - bics r0, r7 -_08151B0C: - strh r0, [r6, #2] - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08151A78 - - thumb_func_start InitPulseBlend -InitPulseBlend: @ 0x08151B18 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - strh r4, [r5] - adds r0, r5, #4 - movs r1, #0 - movs r2, #0xc0 - bl memset -_08151B2A: - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r5, r0 - strb r4, [r0, #4] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xf - bls _08151B2A - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end InitPulseBlend - - thumb_func_start InitPulseBlendPaletteSettings -InitPulseBlendPaletteSettings: @ 0x08151B44 - push {r4, r5, lr} - adds r2, r0, #0 - adds r5, r1, #0 - movs r3, #0 - movs r4, #0 - ldrb r0, [r2, #5] - lsrs r0, r0, #7 - cmp r0, #0 - bne _08151B5A - adds r4, r2, #4 - b _08151B78 -_08151B5A: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0xf - bhi _08151B78 - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r1, r0, #2 - adds r0, r2, r1 - ldrb r0, [r0, #5] - lsrs r0, r0, #7 - cmp r0, #0 - bne _08151B5A - adds r0, r1, #4 - adds r4, r2, r0 -_08151B78: - cmp r4, #0 - beq _08151BA6 - ldrb r1, [r4, #1] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #1] - movs r0, #0 - strb r0, [r4, #2] - strb r0, [r4, #3] - adds r1, r4, #4 - adds r0, r5, #0 - ldm r0!, {r2, r4} - stm r1!, {r2, r4} - adds r0, r3, #0 - b _08151BA8 -_08151BA6: - movs r0, #0xff -_08151BA8: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end InitPulseBlendPaletteSettings - - thumb_func_start ClearPulseBlendPalettesSettings -ClearPulseBlendPalettesSettings: @ 0x08151BB0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r1, [r4, #1] - movs r2, #0x40 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _08151BF2 - ldrb r1, [r4, #0xb] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _08151BF2 - ldrh r2, [r4, #6] - ldrb r0, [r4, #8] - adds r0, r2, r0 - cmp r2, r0 - bge _08151BF2 - ldr r5, _08151C24 - ldr r3, _08151C28 -_08151BD8: - lsls r0, r2, #1 - adds r1, r0, r5 - adds r0, r0, r3 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldrh r0, [r4, #6] - ldrb r1, [r4, #8] - adds r0, r0, r1 - cmp r2, r0 - blt _08151BD8 -_08151BF2: - adds r0, r4, #4 - movs r1, #0 - movs r2, #8 - bl memset - ldrb r1, [r4, #1] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - subs r1, #0x10 - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - movs r1, #0x7f - ands r0, r1 - strb r0, [r4, #1] - movs r0, #0 - strb r0, [r4, #3] - strb r0, [r4, #2] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08151C24: .4byte gUnknown_20377B4 -_08151C28: .4byte gUnknown_20373B4 - thumb_func_end ClearPulseBlendPalettesSettings - - thumb_func_start UnloadUsedPulseBlendPalettes -UnloadUsedPulseBlendPalettes: @ 0x08151C2C - push {r4, r5, r6, lr} - adds r6, r0, #0 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - lsls r2, r2, #0x18 - movs r5, #0 - cmp r2, #0 - bne _08151C50 - movs r1, #0xf - ands r1, r4 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, #4 - adds r0, r6, r0 - bl ClearPulseBlendPalettesSettings - b _08151C7C -_08151C50: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _08151C70 - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r1, r0, #2 - adds r0, r6, r1 - ldrb r0, [r0, #5] - lsrs r0, r0, #7 - cmp r0, #0 - beq _08151C70 - adds r0, r1, #4 - adds r0, r6, r0 - bl ClearPulseBlendPalettesSettings -_08151C70: - lsrs r4, r4, #1 - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0xf - bls _08151C50 -_08151C7C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end UnloadUsedPulseBlendPalettes - - thumb_func_start MarkUsedPulseBlendPalettes -MarkUsedPulseBlendPalettes: @ 0x08151C84 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - lsls r2, r2, #0x18 - movs r3, #0 - cmp r2, #0 - bne _08151CB8 - movs r0, #0xf - adds r3, r0, #0 - ands r3, r4 - lsls r1, r3, #1 - adds r1, r1, r3 - lsls r1, r1, #2 - adds r1, r5, r1 - ldrb r2, [r1, #5] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #5] - movs r0, #1 - lsls r0, r3 - ldrh r1, [r5] - orrs r0, r1 - strh r0, [r5] - b _08151CFC -_08151CB8: - movs r6, #1 - movs r7, #0x41 - rsbs r7, r7, #0 -_08151CBE: - adds r0, r4, #0 - ands r0, r6 - cmp r0, #0 - beq _08151CDC - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r2, r5, r0 - ldrb r1, [r2, #5] - lsrs r0, r1, #7 - cmp r0, #0 - beq _08151CDC - lsls r0, r1, #0x19 - cmp r0, #0 - blt _08151CE2 -_08151CDC: - lsls r0, r4, #0x11 - lsrs r4, r0, #0x10 - b _08151CF2 -_08151CE2: - adds r0, r7, #0 - ands r0, r1 - strb r0, [r2, #5] - adds r0, r6, #0 - lsls r0, r3 - ldrh r1, [r5] - orrs r0, r1 - strh r0, [r5] -_08151CF2: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0xf - bls _08151CBE -_08151CFC: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end MarkUsedPulseBlendPalettes - - thumb_func_start UnmarkUsedPulseBlendPalettes -UnmarkUsedPulseBlendPalettes: @ 0x08151D04 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov r8, r0 - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - lsls r2, r2, #0x18 - movs r0, #0 - mov ip, r0 - cmp r2, #0 - bne _08151D8C - movs r1, #0xf - ands r1, r7 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, #4 - mov r1, r8 - adds r3, r1, r0 - ldrb r1, [r3, #1] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0x80 - bne _08151E16 - ldrb r1, [r3, #0xb] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08151D6A - ldrh r2, [r3, #6] - ldrb r0, [r3, #8] - adds r0, r2, r0 - cmp r2, r0 - bge _08151D6A - ldr r5, _08151D84 - ldr r4, _08151D88 -_08151D50: - lsls r0, r2, #1 - adds r1, r0, r5 - adds r0, r0, r4 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldrh r0, [r3, #6] - ldrb r1, [r3, #8] - adds r0, r0, r1 - cmp r2, r0 - blt _08151D50 -_08151D6A: - ldrb r0, [r3, #1] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r3, #1] - movs r1, #1 - mov r2, ip - lsls r1, r2 - mov r2, r8 - ldrh r0, [r2] - bics r0, r1 - strh r0, [r2] - b _08151E16 - .align 2, 0 -_08151D84: .4byte gUnknown_20377B4 -_08151D88: .4byte gUnknown_20373B4 -_08151D8C: - movs r0, #1 - mov sb, r0 - movs r1, #0x40 - mov sl, r1 -_08151D94: - mov r2, ip - lsls r0, r2, #1 - add r0, ip - lsls r0, r0, #2 - adds r0, #4 - mov r1, r8 - adds r3, r1, r0 - adds r0, r7, #0 - mov r2, sb - ands r0, r2 - cmp r0, #0 - beq _08151DB6 - ldrb r1, [r3, #1] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0x80 - beq _08151DC0 -_08151DB6: - lsls r0, r7, #0x11 - lsrs r7, r0, #0x10 - mov r5, ip - adds r5, #1 - b _08151E0C -_08151DC0: - ldrb r1, [r3, #0xb] - mov r0, sl - ands r0, r1 - mov r5, ip - adds r5, #1 - cmp r0, #0 - beq _08151DF6 - ldrh r2, [r3, #6] - ldrb r0, [r3, #8] - adds r0, r2, r0 - cmp r2, r0 - bge _08151DF6 - ldr r6, _08151E24 - ldr r4, _08151E28 -_08151DDC: - lsls r0, r2, #1 - adds r1, r0, r6 - adds r0, r0, r4 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldrh r0, [r3, #6] - ldrb r1, [r3, #8] - adds r0, r0, r1 - cmp r2, r0 - blt _08151DDC -_08151DF6: - ldrb r1, [r3, #1] - mov r0, sl - orrs r0, r1 - strb r0, [r3, #1] - mov r1, sb - mov r0, ip - lsls r1, r0 - mov r2, r8 - ldrh r0, [r2] - bics r0, r1 - strh r0, [r2] -_08151E0C: - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - mov ip, r0 - cmp r0, #0xf - bls _08151D94 -_08151E16: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08151E24: .4byte gUnknown_20377B4 -_08151E28: .4byte gUnknown_20373B4 - thumb_func_end UnmarkUsedPulseBlendPalettes - - thumb_func_start UpdatePulseBlend -UpdatePulseBlend: @ 0x08151E2C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - str r0, [sp] - movs r0, #0 - mov sl, r0 - ldr r1, [sp] - ldrh r0, [r1] - cmp r0, #0 - bne _08151E48 - b _08151FD2 -_08151E48: - movs r2, #0xf - mov sb, r2 - movs r3, #0x10 - rsbs r3, r3, #0 - mov r8, r3 - movs r7, #1 -_08151E54: - mov r5, sl - lsls r0, r5, #1 - add r0, sl - lsls r0, r0, #2 - adds r0, #4 - ldr r1, [sp] - adds r4, r1, r0 - ldrb r2, [r4, #1] - movs r3, #0xc0 - ands r3, r2 - cmp r3, #0x80 - beq _08151E6E - b _08151FC2 -_08151E6E: - ldr r0, _08151EBC - ldrb r1, [r0, #7] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08151E84 - ldrb r0, [r4, #0xb] - ands r3, r0 - cmp r3, #0 - beq _08151E84 - b _08151FC2 -_08151E84: - ldrb r0, [r4, #2] - subs r0, #1 - strb r0, [r4, #2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _08151E94 - b _08151FC2 -_08151E94: - ldrb r0, [r4, #9] - strb r0, [r4, #2] - ldrh r0, [r4, #6] - ldrb r1, [r4, #8] - lsls r2, r2, #0x1c - lsrs r2, r2, #0x1c - ldrh r3, [r4, #4] - bl BlendPalette - ldrb r5, [r4, #0xb] - lsls r0, r5, #0x1a - asrs r0, r0, #0x1e - cmp r0, #1 - beq _08151EF2 - cmp r0, #1 - bgt _08151EC0 - cmp r0, #0 - beq _08151EC6 - b _08151FAC - .align 2, 0 -_08151EBC: .4byte gUnknown_2037C74 -_08151EC0: - cmp r0, #2 - beq _08151F6E - b _08151FAC -_08151EC6: - ldrb r2, [r4, #1] - lsls r1, r2, #0x1c - lsrs r0, r1, #0x1c - adds r0, #1 - mov r3, sb - ands r0, r3 - mov r6, r8 - adds r3, r6, #0 - ands r3, r2 - orrs r3, r0 - strb r3, [r4, #1] - lsrs r1, r1, #0x1c - lsls r0, r5, #0x1c - asrs r0, r0, #0x1c - cmp r1, r0 - bne _08151FAC - ldrb r0, [r4, #3] - adds r0, #1 - strb r0, [r4, #3] - ands r3, r6 - strb r3, [r4, #1] - b _08151FAC -_08151EF2: - ldrb r3, [r4, #1] - movs r0, #0x10 - ands r0, r3 - cmp r0, #0 - beq _08151F30 - lsls r0, r3, #0x1c - lsrs r0, r0, #0x1c - subs r0, #1 - mov r5, sb - ands r0, r5 - mov r2, r8 - ands r2, r3 - orrs r2, r0 - strb r2, [r4, #1] - cmp r0, #0 - bne _08151FAC - ldrb r0, [r4, #3] - adds r0, #1 - strb r0, [r4, #3] - lsls r0, r2, #0x1b - lsrs r0, r0, #0x1f - eors r0, r7 - ands r0, r7 - lsls r0, r0, #4 - movs r3, #0x11 - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r2, r1 - orrs r2, r0 - strb r2, [r4, #1] - b _08151FAC -_08151F30: - lsls r0, r5, #0x1c - asrs r0, r0, #0x1c - subs r0, #1 - mov r5, sb - ands r0, r5 - lsls r2, r3, #0x1c - lsrs r1, r2, #0x1c - adds r1, #1 - ands r1, r5 - mov r5, r8 - ands r3, r5 - orrs r3, r1 - strb r3, [r4, #1] - lsrs r2, r2, #0x1c - cmp r2, r0 - bne _08151FAC - ldrb r0, [r4, #3] - adds r0, #1 - strb r0, [r4, #3] - lsls r0, r3, #0x1b - lsrs r0, r0, #0x1f - eors r0, r7 - ands r0, r7 - lsls r0, r0, #4 - movs r2, #0x11 - rsbs r2, r2, #0 - adds r1, r2, #0 - ands r3, r1 - orrs r3, r0 - strb r3, [r4, #1] - b _08151FAC -_08151F6E: - ldrb r2, [r4, #1] - movs r0, #0x10 - ands r0, r2 - cmp r0, #0 - beq _08151F7E - mov r0, r8 - ands r0, r2 - b _08151F8C -_08151F7E: - lsls r1, r5, #0x1c - asrs r1, r1, #0x1c - mov r3, sb - ands r1, r3 - mov r0, r8 - ands r0, r2 - orrs r0, r1 -_08151F8C: - strb r0, [r4, #1] - ldrb r2, [r4, #1] - lsls r0, r2, #0x1b - lsrs r0, r0, #0x1f - eors r0, r7 - ands r0, r7 - lsls r0, r0, #4 - movs r5, #0x11 - rsbs r5, r5, #0 - adds r1, r5, #0 - ands r2, r1 - orrs r2, r0 - strb r2, [r4, #1] - ldrb r0, [r4, #3] - adds r0, #1 - strb r0, [r4, #3] -_08151FAC: - ldrb r1, [r4, #0xa] - cmp r1, #0xff - beq _08151FC2 - ldrb r0, [r4, #3] - cmp r0, r1 - bne _08151FC2 - ldrb r1, [r4] - ldr r0, [sp] - movs r2, #0 - bl UnmarkUsedPulseBlendPalettes -_08151FC2: - mov r0, sl - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - cmp r0, #0xf - bhi _08151FD2 - b _08151E54 -_08151FD2: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end UpdatePulseBlend - - thumb_func_start sub_08151FE4 -sub_08151FE4: @ 0x08151FE4 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldr r0, [sp, #0x14] - ldr r4, [sp, #0x18] - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r1, #0 - lsrs r3, r3, #0x13 - adds r3, r3, r2 - lsls r3, r3, #1 - adds r6, r6, r3 - cmp r1, r4 - bhs _0815202E -_0815200C: - lsls r0, r1, #6 - adds r2, r6, r0 - movs r0, #0 - adds r3, r1, #1 - cmp r0, r5 - bhs _08152026 -_08152018: - strh r7, [r2] - adds r2, #2 - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r5 - blo _08152018 -_08152026: - lsls r0, r3, #0x18 - lsrs r1, r0, #0x18 - cmp r1, r4 - blo _0815200C -_0815202E: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08151FE4 - - thumb_func_start sub_08152034 -sub_08152034: @ 0x08152034 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - ldr r0, [sp, #0x14] - ldr r4, [sp, #0x18] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r6, r4, #0x18 - movs r4, #0 - lsrs r3, r3, #0x13 - adds r3, r3, r2 - lsls r3, r3, #1 - adds r7, r7, r3 - cmp r4, r6 - bhs _0815207E -_08152058: - lsls r0, r4, #6 - adds r2, r7, r0 - movs r3, #0 - adds r4, #1 - cmp r3, r5 - bhs _08152076 -_08152064: - ldrh r0, [r1] - strh r0, [r2] - adds r1, #2 - adds r2, #2 - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, r5 - blo _08152064 -_08152076: - lsls r0, r4, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r6 - blo _08152058 -_0815207E: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08152034 - - thumb_func_start sub_08152084 -sub_08152084: @ 0x08152084 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov sl, r0 - ldr r0, [sp, #0x24] - ldr r4, [sp, #0x28] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sb, r1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp] - lsls r3, r3, #0x18 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r8, r4 - movs r0, #0 - lsrs r4, r3, #0x18 - cmp r0, r8 - bhs _081520FE -_081520B6: - ldr r2, [sp] - movs r3, #0 - adds r6, r4, #1 - adds r0, #1 - mov ip, r0 - cmp r3, r7 - bhs _081520E8 - lsls r5, r4, #6 -_081520C6: - lsls r0, r2, #1 - adds r0, r0, r5 - add r0, sl - mov r1, sb - strh r1, [r0] - adds r1, r2, #1 - adds r0, r1, #0 - asrs r0, r0, #5 - lsls r0, r0, #5 - subs r0, r1, r0 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, r7 - blo _081520C6 -_081520E8: - adds r0, r6, #0 - asrs r0, r0, #5 - lsls r0, r0, #5 - subs r0, r6, r0 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - mov r1, ip - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r8 - blo _081520B6 -_081520FE: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08152084 - - thumb_func_start sub_08152110 -sub_08152110: @ 0x08152110 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov sl, r0 - ldr r0, [sp, #0x24] - ldr r4, [sp, #0x28] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp] - lsls r3, r3, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov ip, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov sb, r4 - movs r0, #0 - adds r5, r1, #0 - lsrs r4, r3, #0x18 - cmp r0, sb - bhs _0815218A -_08152140: - ldr r2, [sp] - movs r3, #0 - adds r7, r4, #1 - adds r0, #1 - mov r8, r0 - cmp r3, ip - bhs _08152174 - lsls r6, r4, #6 -_08152150: - lsls r0, r2, #1 - adds r0, r0, r6 - add r0, sl - ldrh r1, [r5] - strh r1, [r0] - adds r5, #2 - adds r1, r2, #1 - adds r0, r1, #0 - asrs r0, r0, #5 - lsls r0, r0, #5 - subs r0, r1, r0 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, ip - blo _08152150 -_08152174: - adds r0, r7, #0 - asrs r0, r0, #5 - lsls r0, r0, #5 - subs r0, r7, r0 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - mov r1, r8 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, sb - blo _08152140 -_0815218A: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08152110 - - thumb_func_start sub_0815219C -sub_0815219C: @ 0x0815219C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r5, #0 - cmp r4, #0 - beq _081521DA - cmp r4, #0x40 - bls _081521B2 - movs r4, #0x40 -_081521B2: - ldr r6, _081521E0 - movs r0, #8 - bl AllocZeroed - str r0, [r6] - cmp r0, #0 - beq _081521DA - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #4 - bl AllocZeroed - ldr r1, [r6] - str r0, [r1, #4] - cmp r0, #0 - bne _081521E4 - adds r0, r1, #0 - bl Free - str r5, [r6] -_081521DA: - movs r0, #0 - b _08152220 - .align 2, 0 -_081521E0: .4byte gUnknown_203A884 -_081521E4: - strb r4, [r1] - cmp r5, r4 - bhs _0815221E - adds r3, r6, #0 - ldr r0, _0815222C - mov ip, r0 - movs r2, #4 - mov r8, r2 -_081521F4: - ldr r0, [r3] - ldr r2, [r0, #4] - lsls r1, r5, #1 - adds r1, r1, r5 - lsls r1, r1, #4 - adds r2, r1, r2 - mov r0, ip - ldm r0!, {r6, r7} - stm r2!, {r6, r7} - ldr r0, [r3] - ldr r0, [r0, #4] - adds r1, r1, r0 - ldrb r0, [r1, #0x19] - mov r2, r8 - orrs r0, r2 - strb r0, [r1, #0x19] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, r4 - blo _081521F4 -_0815221E: - movs r0, #1 -_08152220: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0815222C: .4byte gUnknown_82BF2F8 - thumb_func_end sub_0815219C - - thumb_func_start sub_08152230 -sub_08152230: @ 0x08152230 - push {r4, r5, r6, r7, lr} - movs r3, #0 - ldr r0, _08152244 - ldr r2, [r0] - adds r5, r0, #0 - cmp r2, #0 - bne _08152248 - movs r0, #0 - b _081522A0 - .align 2, 0 -_08152244: .4byte gUnknown_203A884 -_08152248: - ldrb r2, [r2] - cmp r3, r2 - bhs _0815226E - ldr r0, _081522A8 - mov ip, r0 - ldr r4, _081522AC - adds r2, r5, #0 -_08152256: - lsls r1, r3, #3 - add r1, ip - adds r0, r4, #0 - ldm r0!, {r6, r7} - stm r1!, {r6, r7} - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r0, [r2] - ldrb r0, [r0] - cmp r3, r0 - blo _08152256 -_0815226E: - ldr r1, [r5] - ldrb r0, [r1] - lsls r2, r0, #1 - adds r2, r2, r0 - ldr r0, [r1, #4] - lsls r2, r2, #4 - movs r1, #0 - bl memset - ldr r0, [r5] - ldr r0, [r0, #4] - bl Free - ldr r0, [r5] - movs r4, #0 - str r4, [r0, #4] - movs r1, #0 - movs r2, #8 - bl memset - ldr r0, [r5] - bl Free - str r4, [r5] - movs r0, #1 -_081522A0: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081522A8: .4byte gUnknown_3002598 -_081522AC: .4byte gUnknown_82BF2F8 - thumb_func_end sub_08152230 - - thumb_func_start sub_081522B0 -sub_081522B0: @ 0x081522B0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r6, #0 - ldr r0, _081522CC - ldr r1, [r0] - adds r3, r0, #0 - cmp r1, #0 - beq _081522C8 - ldr r0, [r1, #4] - cmp r0, #0 - bne _081522D0 -_081522C8: - movs r0, #0 - b _081523AE - .align 2, 0 -_081522CC: .4byte gUnknown_203A884 -_081522D0: - ldrb r1, [r1] - cmp r6, r1 - bhs _081523AC - adds r7, r3, #0 - movs r0, #3 - mov r8, r0 -_081522DC: - ldr r0, [r7] - ldr r1, [r0, #4] - lsls r0, r6, #1 - adds r0, r0, r6 - lsls r5, r0, #4 - adds r2, r5, r1 - ldrb r1, [r2, #0x19] - movs r0, #3 - ands r0, r1 - cmp r0, #3 - bne _0815239E - ldr r1, [r2, #0x2c] - cmp r1, #0 - beq _081522FE - adds r0, r2, #0 - bl _call_via_r1 -_081522FE: - ldr r0, [r7] - ldr r0, [r0, #4] - adds r2, r5, r0 - ldrb r1, [r2, #0x19] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08152324 - lsls r0, r6, #3 - ldr r1, _0815231C - adds r0, r0, r1 - ldr r1, _08152320 - ldm r1!, {r2, r3} - stm r0!, {r2, r3} - b _0815239C - .align 2, 0 -_0815231C: .4byte gUnknown_3002598 -_08152320: .4byte gUnknown_82BF2F8 -_08152324: - ldrb r0, [r2, #0xe] - ldrb r4, [r2, #0xa] - adds r0, r0, r4 - strb r0, [r2] - ldr r4, [r7] - ldr r3, [r4, #4] - adds r3, r5, r3 - movs r0, #8 - ldrsh r2, [r3, r0] - movs r1, #0xc - ldrsh r0, [r3, r1] - adds r2, r2, r0 - ldr r1, _081523B8 - adds r0, r1, #0 - ands r2, r0 - ldrh r0, [r3, #2] - ldr r1, _081523BC - mov ip, r1 - mov r1, ip - ands r0, r1 - orrs r0, r2 - strh r0, [r3, #2] - ldr r3, [r4, #4] - adds r3, r5, r3 - ldrb r0, [r3, #0x19] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1e - mov r2, r8 - ands r0, r2 - lsls r0, r0, #2 - ldrb r1, [r3, #5] - movs r4, #0xd - rsbs r4, r4, #0 - adds r2, r4, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #5] - ldr r4, [r7] - ldr r2, [r4, #4] - adds r2, r5, r2 - ldrh r3, [r2, #0x14] - ldr r1, _081523C0 - adds r0, r1, #0 - adds r1, r3, #0 - ands r1, r0 - mov ip, r1 - ldrh r0, [r2, #4] - ldr r3, _081523C4 - adds r1, r3, #0 - ands r0, r1 - mov r1, ip - orrs r0, r1 - strh r0, [r2, #4] - lsls r1, r6, #3 - ldr r2, _081523C8 - ldr r0, [r4, #4] - adds r1, r1, r2 - adds r0, r5, r0 - ldm r0!, {r2, r3} - stm r1!, {r2, r3} -_0815239C: - ldr r3, _081523CC -_0815239E: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, [r3] - ldrb r0, [r0] - cmp r6, r0 - blo _081522DC -_081523AC: - movs r0, #1 -_081523AE: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081523B8: .4byte 0x000001FF -_081523BC: .4byte 0xFFFFFE00 -_081523C0: .4byte 0x000003FF -_081523C4: .4byte 0xFFFFFC00 -_081523C8: .4byte gUnknown_3002598 -_081523CC: .4byte gUnknown_203A884 - thumb_func_end sub_081522B0 - - thumb_func_start sub_081523D0 -sub_081523D0: @ 0x081523D0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - cmp r4, #0 - beq _0815240C - ldrh r0, [r4, #0x10] - bl GetSpriteTileStartByTag - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, _08152408 - cmp r5, r0 - beq _0815240C - strb r6, [r4, #0x18] - ldrb r0, [r4, #1] - lsrs r0, r0, #6 - ldrb r1, [r4, #3] - lsrs r1, r1, #6 - bl sub_08035450 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - muls r0, r6, r0 - adds r0, r5, r0 - strh r0, [r4, #0x14] - movs r0, #1 - b _0815240E - .align 2, 0 -_08152408: .4byte 0x0000FFFF -_0815240C: - movs r0, #0 -_0815240E: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_081523D0 - - thumb_func_start sub_08152414 -sub_08152414: @ 0x08152414 - push {r4, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _08152444 - ldr r0, [r0] - cmp r0, #0 - beq _08152448 - ldrb r1, [r0] - cmp r2, r1 - bhs _08152448 - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #4 - adds r3, r0, r1 - ldrb r1, [r3, #0x19] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08152448 - str r4, [r3, #0x2c] - adds r0, r2, #0 - b _0815244A - .align 2, 0 -_08152444: .4byte gUnknown_203A884 -_08152448: - movs r0, #0xff -_0815244A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_08152414 - - thumb_func_start sub_08152450 -sub_08152450: @ 0x08152450 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - lsls r2, r2, #0x10 - lsrs r5, r2, #0x10 - ldr r0, _08152488 - ldr r0, [r0] - cmp r0, #0 - beq _08152484 - ldrb r1, [r0] - cmp r3, r1 - bhs _08152484 - ldr r1, [r0, #4] - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #4 - adds r2, r0, r1 - ldrb r1, [r2, #0x19] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08152484 - cmp r4, #7 - bls _0815248C -_08152484: - movs r0, #0xff - b _08152498 - .align 2, 0 -_08152488: .4byte gUnknown_203A884 -_0815248C: - lsls r1, r4, #1 - adds r0, r2, #0 - adds r0, #0x1a - adds r0, r0, r1 - strh r5, [r0] - adds r0, r3, #0 -_08152498: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08152450 - - thumb_func_start sub_081524A0 -sub_081524A0: @ 0x081524A0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - mov sb, r0 - ldr r0, [sp, #0x30] - ldr r4, [sp, #0x34] - ldr r5, [sp, #0x38] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp] - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - mov r8, r2 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - str r3, [sp, #4] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #8] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp, #0xc] - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - mov sl, r5 - movs r5, #0 - ldr r0, _081524EC - ldr r0, [r0] - cmp r0, #0 - beq _0815253A - mov r1, sb - cmp r1, #0 - bne _0815250C - b _0815253A - .align 2, 0 -_081524EC: .4byte gUnknown_203A884 -_081524F0: - adds r5, r2, #0 - adds r0, r5, #0 - movs r1, #0 - movs r2, #0x30 - bl memset - strb r4, [r5, #0x16] - ldrb r0, [r5, #0x19] - movs r1, #1 - orrs r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r5, #0x19] - b _08152536 -_0815250C: - movs r4, #0 - ldrb r1, [r0] - cmp r5, r1 - bhs _08152536 - ldr r6, [r0, #4] - adds r3, r1, #0 - movs r7, #1 -_0815251A: - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #4 - adds r2, r0, r6 - ldrb r1, [r2, #0x19] - adds r0, r7, #0 - ands r0, r1 - cmp r0, #0 - beq _081524F0 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r3 - blo _0815251A -_08152536: - cmp r5, #0 - bne _0815253E -_0815253A: - movs r0, #0xff - b _0815259C -_0815253E: - adds r1, r5, #0 - mov r0, sb - ldm r0!, {r2, r3} - stm r1!, {r2, r3} - mov r0, sp - ldrh r0, [r0] - strh r0, [r5, #0x10] - mov r1, r8 - strh r1, [r5, #0x12] - mov r2, sp - ldrh r2, [r2, #4] - strh r2, [r5, #8] - mov r3, sp - ldrh r3, [r3, #8] - strh r3, [r5, #0xa] - mov r0, r8 - bl IndexOfSpritePaletteTag - lsls r0, r0, #4 - ldrb r1, [r5, #5] - movs r4, #0xf - ands r4, r1 - orrs r4, r0 - strb r4, [r5, #5] - mov r0, sl - cmp r0, #3 - bhi _08152592 - movs r1, #3 - ands r1, r0 - lsls r3, r1, #3 - ldrb r2, [r5, #0x19] - movs r0, #0x19 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r3 - strb r0, [r5, #0x19] - lsls r1, r1, #2 - movs r0, #0xd - rsbs r0, r0, #0 - ands r4, r0 - orrs r4, r1 - strb r4, [r5, #5] -_08152592: - adds r0, r5, #0 - ldr r1, [sp, #0xc] - bl sub_081523D0 - ldrb r0, [r5, #0x16] -_0815259C: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_081524A0 - - thumb_func_start sub_081525AC -sub_081525AC: @ 0x081525AC - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r6, _081525D4 - ldr r0, [r6] - cmp r0, #0 - beq _081525CE - ldr r1, [r0, #4] - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r4, r0, #4 - adds r2, r4, r1 - ldrb r1, [r2, #0x19] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _081525D8 -_081525CE: - movs r0, #0xff - b _08152618 - .align 2, 0 -_081525D4: .4byte gUnknown_203A884 -_081525D8: - adds r0, r2, #0 - movs r1, #0 - movs r2, #0x30 - bl memset - ldr r0, [r6] - ldr r0, [r0, #4] - adds r0, r4, r0 - movs r1, #0xa0 - strb r1, [r0] - ldr r3, [r6] - ldr r2, [r3, #4] - adds r2, r4, r2 - ldrh r1, [r2, #2] - ldr r0, _08152620 - ands r0, r1 - movs r1, #0xf0 - orrs r0, r1 - strh r0, [r2, #2] - ldr r1, [r3, #4] - adds r1, r4, r1 - ldrb r0, [r1, #0x19] - movs r2, #4 - orrs r0, r2 - strb r0, [r1, #0x19] - lsls r1, r5, #3 - ldr r0, _08152624 - adds r1, r1, r0 - ldr r0, _08152628 - ldm r0!, {r2, r3} - stm r1!, {r2, r3} - adds r0, r5, #0 -_08152618: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08152620: .4byte 0xFFFFFE00 -_08152624: .4byte gUnknown_3002598 -_08152628: .4byte gUnknown_82BF2F8 - thumb_func_end sub_081525AC - - thumb_func_start ClearSaveData -ClearSaveData: @ 0x0815262C - push {r4, r5, lr} - movs r4, #0 - ldr r5, _08152658 -_08152632: - ldr r1, [r5] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - adds r0, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, [r5] - bl _call_via_r1 - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0xf - bls _08152632 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08152658: .4byte gUnknown_3007600 - thumb_func_end ClearSaveData - - thumb_func_start Save_ResetSaveCounters -Save_ResetSaveCounters: @ 0x0815265C - ldr r0, _0815266C - movs r1, #0 - str r1, [r0] - ldr r0, _08152670 - strh r1, [r0] - ldr r0, _08152674 - str r1, [r0] - bx lr - .align 2, 0 -_0815266C: .4byte gUnknown_3005F40 -_08152670: .4byte gUnknown_3005F30 -_08152674: .4byte gUnknown_3005F3C - thumb_func_end Save_ResetSaveCounters - - thumb_func_start SetDamagedSectorBits -SetDamagedSectorBits: @ 0x08152678 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - movs r4, #0 - cmp r0, #1 - beq _081526AC - cmp r0, #1 - bgt _08152692 - cmp r0, #0 - beq _08152698 - b _081526D0 -_08152692: - cmp r0, #2 - beq _081526C0 - b _081526D0 -_08152698: - ldr r2, _081526A8 - movs r1, #1 - lsls r1, r3 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - b _081526D0 - .align 2, 0 -_081526A8: .4byte gUnknown_3005F3C -_081526AC: - ldr r2, _081526BC - adds r1, r0, #0 - lsls r1, r3 - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - b _081526D0 - .align 2, 0 -_081526BC: .4byte gUnknown_3005F3C -_081526C0: - ldr r0, _081526D8 - movs r1, #1 - lsls r1, r3 - ldr r0, [r0] - ands r0, r1 - cmp r0, #0 - beq _081526D0 - movs r4, #1 -_081526D0: - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081526D8: .4byte gUnknown_3005F3C - thumb_func_end SetDamagedSectorBits - - thumb_func_start sub_081526DC -sub_081526DC: @ 0x081526DC - push {r4, r5, r6, r7, lr} - adds r7, r1, #0 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r1, _08152700 - ldr r0, _08152704 - str r0, [r1] - ldr r0, _08152708 - cmp r2, r0 - beq _0815270C - adds r0, r2, #0 - adds r1, r7, #0 - bl HandleWriteSector - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - b _0815275E - .align 2, 0 -_08152700: .4byte gUnknown_3005F44 -_08152704: .4byte gUnknown_203A888 -_08152708: .4byte 0x0000FFFF -_0815270C: - ldr r1, _08152768 - ldr r5, _0815276C - ldrh r0, [r5] - strh r0, [r1] - ldr r1, _08152770 - ldr r6, _08152774 - ldr r4, [r6] - str r4, [r1] - adds r0, #1 - strh r0, [r5] - ldrh r0, [r5] - movs r1, #0xe - bl __umodsi3 - strh r0, [r5] - adds r4, #1 - str r4, [r6] - movs r5, #1 - movs r4, #0 -_08152732: - adds r0, r4, #0 - adds r1, r7, #0 - bl HandleWriteSector - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0xd - bls _08152732 - ldr r0, _08152778 - ldr r0, [r0] - cmp r0, #0 - beq _0815275E - movs r5, #0xff - ldr r1, _0815276C - ldr r0, _08152768 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _08152774 - ldr r0, _08152770 - ldr r0, [r0] - str r0, [r1] -_0815275E: - adds r0, r5, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08152768: .4byte gUnknown_3005F38 -_0815276C: .4byte gUnknown_3005F30 -_08152770: .4byte gUnknown_3005F34 -_08152774: .4byte gUnknown_3005F40 -_08152778: .4byte gUnknown_3005F3C - thumb_func_end sub_081526DC - - thumb_func_start HandleWriteSector -HandleWriteSector: @ 0x0815277C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r4, r1, #0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r0, _08152848 - ldrh r0, [r0] - adds r0, r6, r0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r5, #0 - movs r1, #0xe - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r2, _0815284C - ldr r1, [r2] - movs r0, #1 - ands r1, r0 - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #1 - adds r0, r5, r0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r0, r6, #3 - adds r0, r0, r4 - ldr r1, [r0] - mov sl, r1 - ldrh r4, [r0, #4] - movs r3, #0 - mov sb, r2 - ldr r2, _08152850 - mov ip, r2 - mov r8, ip - movs r2, #0 - ldr r1, _08152854 -_081527CE: - mov r7, r8 - ldr r0, [r7] - adds r0, r0, r3 - strb r2, [r0] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, r1 - bls _081527CE - mov r0, ip - ldr r1, [r0] - ldr r2, _08152858 - adds r0, r1, r2 - strh r6, [r0] - ldr r3, _0815285C - adds r2, r1, r3 - ldr r0, _08152860 - str r0, [r2] - ldr r6, _08152864 - adds r1, r1, r6 - mov r7, sb - ldr r0, [r7] - str r0, [r1] - movs r3, #0 - lsls r5, r5, #0x18 - cmp r3, r4 - bhs _0815281C - mov r2, ip -_08152806: - ldr r1, [r2] - adds r1, r1, r3 - mov r6, sl - adds r0, r6, r3 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, r4 - blo _08152806 -_0815281C: - mov r0, sl - adds r1, r4, #0 - bl CalculateChecksum - ldr r1, _08152850 - ldr r1, [r1] - ldr r7, _08152868 - adds r2, r1, r7 - strh r0, [r2] - lsrs r0, r5, #0x18 - bl TryWriteSector - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08152848: .4byte gUnknown_3005F30 -_0815284C: .4byte gUnknown_3005F40 -_08152850: .4byte gUnknown_3005F44 -_08152854: .4byte 0x00000FFF -_08152858: .4byte 0x00000FF4 -_0815285C: .4byte 0x00000FF8 -_08152860: .4byte 0x08012025 -_08152864: .4byte 0x00000FFC -_08152868: .4byte 0x00000FF6 - thumb_func_end HandleWriteSector - - thumb_func_start HandleWriteSectorNBytes -HandleWriteSectorNBytes: @ 0x0815286C - push {r4, r5, r6, r7, lr} - adds r5, r1, #0 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldr r4, _081528D0 - movs r3, #0 - movs r6, #0 - ldr r1, _081528D4 -_08152880: - adds r0, r4, r3 - strb r6, [r0] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, r1 - bls _08152880 - ldr r0, _081528D8 - adds r1, r4, r0 - ldr r0, _081528DC - str r0, [r1] - movs r3, #0 - cmp r3, r2 - bhs _081528AE -_0815289C: - adds r1, r4, r3 - adds r0, r5, r3 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, r2 - blo _0815289C -_081528AE: - adds r0, r5, #0 - adds r1, r2, #0 - bl CalculateChecksum - ldr r2, _081528E0 - adds r1, r4, r2 - strh r0, [r1] - adds r0, r7, #0 - adds r1, r4, #0 - bl TryWriteSector - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081528D0: .4byte gUnknown_203A888 -_081528D4: .4byte 0x00000FFF -_081528D8: .4byte 0x00000FF8 -_081528DC: .4byte 0x08012025 -_081528E0: .4byte 0x00000FF4 - thumb_func_end HandleWriteSectorNBytes - - thumb_func_start TryWriteSector -TryWriteSector: @ 0x081528E4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl ProgramFlashSectorAndVerify - cmp r0, #0 - bne _08152900 - movs r0, #1 - adds r1, r4, #0 - bl SetDamagedSectorBits - movs r0, #1 - b _0815290A -_08152900: - movs r0, #0 - adds r1, r4, #0 - bl SetDamagedSectorBits - movs r0, #0xff -_0815290A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end TryWriteSector - - thumb_func_start RestoreSaveBackupVarsAndIncrement -RestoreSaveBackupVarsAndIncrement: @ 0x08152910 - push {r4, r5, r6, lr} - ldr r1, _0815294C - ldr r0, _08152950 - str r0, [r1] - ldr r1, _08152954 - ldr r5, _08152958 - ldrh r0, [r5] - strh r0, [r1] - ldr r1, _0815295C - ldr r6, _08152960 - ldr r4, [r6] - str r4, [r1] - adds r0, #1 - strh r0, [r5] - ldrh r0, [r5] - movs r1, #0xe - bl __umodsi3 - strh r0, [r5] - adds r4, #1 - str r4, [r6] - ldr r1, _08152964 - movs r0, #0 - strh r0, [r1] - ldr r1, _08152968 - movs r0, #0 - str r0, [r1] - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0815294C: .4byte gUnknown_3005F44 -_08152950: .4byte gUnknown_203A888 -_08152954: .4byte gUnknown_3005F38 -_08152958: .4byte gUnknown_3005F30 -_0815295C: .4byte gUnknown_3005F34 -_08152960: .4byte gUnknown_3005F40 -_08152964: .4byte gUnknown_3005F48 -_08152968: .4byte gUnknown_3005F3C - thumb_func_end RestoreSaveBackupVarsAndIncrement - - thumb_func_start RestoreSaveBackupVars -RestoreSaveBackupVars: @ 0x0815296C - ldr r1, _08152990 - ldr r0, _08152994 - str r0, [r1] - ldr r1, _08152998 - ldr r0, _0815299C - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _081529A0 - ldr r0, _081529A4 - ldr r0, [r0] - str r0, [r1] - ldr r1, _081529A8 - movs r0, #0 - strh r0, [r1] - ldr r1, _081529AC - movs r0, #0 - str r0, [r1] - bx lr - .align 2, 0 -_08152990: .4byte gUnknown_3005F44 -_08152994: .4byte gUnknown_203A888 -_08152998: .4byte gUnknown_3005F38 -_0815299C: .4byte gUnknown_3005F30 -_081529A0: .4byte gUnknown_3005F34 -_081529A4: .4byte gUnknown_3005F40 -_081529A8: .4byte gUnknown_3005F48 -_081529AC: .4byte gUnknown_3005F3C - thumb_func_end RestoreSaveBackupVars - - thumb_func_start sub_081529B0 -sub_081529B0: @ 0x081529B0 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _081529EC - ldrh r2, [r4] - subs r0, #1 - cmp r2, r0 - bge _08152A04 - movs r5, #1 - adds r0, r2, #0 - bl HandleWriteSector - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - ldr r0, _081529F0 - ldr r0, [r0] - cmp r0, #0 - beq _08152A06 - movs r5, #0xff - ldr r1, _081529F4 - ldr r0, _081529F8 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _081529FC - ldr r0, _08152A00 - ldr r0, [r0] - str r0, [r1] - b _08152A06 - .align 2, 0 -_081529EC: .4byte gUnknown_3005F48 -_081529F0: .4byte gUnknown_3005F3C -_081529F4: .4byte gUnknown_3005F30 -_081529F8: .4byte gUnknown_3005F38 -_081529FC: .4byte gUnknown_3005F40 -_08152A00: .4byte gUnknown_3005F34 -_08152A04: - movs r5, #0xff -_08152A06: - adds r0, r5, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081529B0 - - thumb_func_start sub_08152A10 -sub_08152A10: @ 0x08152A10 - push {r4, lr} - lsls r0, r0, #0x10 - movs r4, #1 - ldr r2, _08152A44 - adds r0, r0, r2 - lsrs r0, r0, #0x10 - bl ClearSaveData_2 - ldr r0, _08152A48 - ldr r0, [r0] - cmp r0, #0 - beq _08152A3A - movs r4, #0xff - ldr r1, _08152A4C - ldr r0, _08152A50 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _08152A54 - ldr r0, _08152A58 - ldr r0, [r0] - str r0, [r1] -_08152A3A: - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08152A44: .4byte 0xFFFF0000 -_08152A48: .4byte gUnknown_3005F3C -_08152A4C: .4byte gUnknown_3005F30 -_08152A50: .4byte gUnknown_3005F38 -_08152A54: .4byte gUnknown_3005F40 -_08152A58: .4byte gUnknown_3005F34 - thumb_func_end sub_08152A10 - - thumb_func_start ClearSaveData_2 -ClearSaveData_2: @ 0x08152A5C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r4, r1, #0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r0, _08152B28 - ldrh r0, [r0] - adds r0, r6, r0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r5, #0 - movs r1, #0xe - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r2, _08152B2C - ldr r1, [r2] - movs r0, #1 - ands r1, r0 - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #1 - adds r0, r5, r0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r0, r6, #3 - adds r0, r0, r4 - ldr r1, [r0] - mov sl, r1 - ldrh r3, [r0, #4] - movs r4, #0 - mov sb, r2 - ldr r2, _08152B30 - mov ip, r2 - mov r8, ip - movs r2, #0 - ldr r1, _08152B34 -_08152AAE: - mov r7, r8 - ldr r0, [r7] - adds r0, r0, r4 - strb r2, [r0] - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, r1 - bls _08152AAE - mov r0, ip - ldr r1, [r0] - ldr r2, _08152B38 - adds r0, r1, r2 - strh r6, [r0] - ldr r6, _08152B3C - adds r2, r1, r6 - ldr r0, _08152B40 - str r0, [r2] - ldr r7, _08152B44 - adds r1, r1, r7 - mov r2, sb - ldr r0, [r2] - str r0, [r1] - movs r4, #0 - lsls r6, r5, #0x18 - mov r8, r6 - cmp r4, r3 - bhs _08152AFE - mov r2, ip -_08152AE8: - ldr r1, [r2] - adds r1, r1, r4 - mov r7, sl - adds r0, r7, r4 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, r3 - blo _08152AE8 -_08152AFE: - mov r0, sl - adds r1, r3, #0 - bl CalculateChecksum - ldr r1, _08152B30 - ldr r1, [r1] - ldr r2, _08152B48 - adds r1, r1, r2 - strh r0, [r1] - ldr r0, _08152B4C - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - movs r6, #1 - movs r4, #0 - ldr r7, _08152B50 - mov sb, r7 - ldr r7, _08152B54 - b _08152B5E - .align 2, 0 -_08152B28: .4byte gUnknown_3005F30 -_08152B2C: .4byte gUnknown_3005F40 -_08152B30: .4byte gUnknown_3005F44 -_08152B34: .4byte 0x00000FFF -_08152B38: .4byte 0x00000FF4 -_08152B3C: .4byte 0x00000FF8 -_08152B40: .4byte 0x08012025 -_08152B44: .4byte 0x00000FFC -_08152B48: .4byte 0x00000FF6 -_08152B4C: .4byte gUnknown_3007600 -_08152B50: .4byte 0x00000FF7 -_08152B54: .4byte gUnknown_30075F4 -_08152B58: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_08152B5E: - cmp r4, sb - bhi _08152B7C - ldr r0, _08152B88 - ldr r0, [r0] - adds r0, r0, r4 - ldrb r2, [r0] - ldr r3, [r7] - adds r0, r5, #0 - adds r1, r4, #0 - bl _call_via_r3 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08152B58 - movs r6, #0xff -_08152B7C: - cmp r6, #0xff - bne _08152B8C - mov r0, r8 - lsrs r1, r0, #0x18 - b _08152BE4 - .align 2, 0 -_08152B88: .4byte gUnknown_3005F44 -_08152B8C: - movs r6, #1 - movs r4, #0 - ldr r1, _08152B98 - mov sb, r1 - ldr r7, _08152B9C - b _08152BA6 - .align 2, 0 -_08152B98: .4byte gUnknown_30075F4 -_08152B9C: .4byte 0x00000FF9 -_08152BA0: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_08152BA6: - cmp r4, #6 - bhi _08152BC8 - adds r1, r4, r7 - ldr r0, _08152BDC - ldr r0, [r0] - adds r0, r4, r0 - adds r0, r0, r7 - ldrb r2, [r0] - mov r0, sb - ldr r3, [r0] - adds r0, r5, #0 - bl _call_via_r3 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08152BA0 - movs r6, #0xff -_08152BC8: - cmp r6, #0xff - beq _08152BE0 - mov r2, r8 - lsrs r1, r2, #0x18 - movs r0, #1 - bl SetDamagedSectorBits - movs r0, #1 - b _08152BEC - .align 2, 0 -_08152BDC: .4byte gUnknown_3005F44 -_08152BE0: - mov r6, r8 - lsrs r1, r6, #0x18 -_08152BE4: - movs r0, #0 - bl SetDamagedSectorBits - movs r0, #0xff -_08152BEC: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ClearSaveData_2 - - thumb_func_start sub_08152BFC -sub_08152BFC: @ 0x08152BFC - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - ldr r6, _08152C58 - lsrs r0, r0, #0x10 - ldrh r1, [r6] - adds r0, r0, r1 - subs r0, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r4, #0 - movs r1, #0xe - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r5, _08152C5C - ldr r1, [r5] - movs r0, #1 - ands r1, r0 - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #1 - adds r0, r4, r0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r3, _08152C60 - ldr r1, _08152C64 - ldr r0, _08152C68 - ldr r0, [r0] - adds r0, r0, r1 - ldrb r2, [r0] - ldr r3, [r3] - adds r0, r4, #0 - bl _call_via_r3 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08152C6C - lsls r1, r4, #0x18 - lsrs r1, r1, #0x18 - movs r0, #1 - bl SetDamagedSectorBits - movs r0, #1 - b _08152C84 - .align 2, 0 -_08152C58: .4byte gUnknown_3005F30 -_08152C5C: .4byte gUnknown_3005F40 -_08152C60: .4byte gUnknown_30075F4 -_08152C64: .4byte 0x00000FF8 -_08152C68: .4byte gUnknown_3005F44 -_08152C6C: - lsls r1, r4, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0 - bl SetDamagedSectorBits - ldr r0, _08152C8C - ldrh r0, [r0] - strh r0, [r6] - ldr r0, _08152C90 - ldr r0, [r0] - str r0, [r5] - movs r0, #0xff -_08152C84: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08152C8C: .4byte gUnknown_3005F38 -_08152C90: .4byte gUnknown_3005F34 - thumb_func_end sub_08152BFC - - thumb_func_start sub_08152C94 -sub_08152C94: @ 0x08152C94 - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - ldr r6, _08152CE8 - lsrs r0, r0, #0x10 - ldrh r1, [r6] - adds r0, r0, r1 - subs r0, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r4, #0 - movs r1, #0xe - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r5, _08152CEC - ldr r1, [r5] - movs r0, #1 - ands r1, r0 - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #1 - adds r0, r4, r0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, _08152CF0 - ldr r1, _08152CF4 - ldr r3, [r0] - adds r0, r4, #0 - movs r2, #0x25 - bl _call_via_r3 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08152CF8 - lsls r1, r4, #0x18 - lsrs r1, r1, #0x18 - movs r0, #1 - bl SetDamagedSectorBits - movs r0, #1 - b _08152D10 - .align 2, 0 -_08152CE8: .4byte gUnknown_3005F30 -_08152CEC: .4byte gUnknown_3005F40 -_08152CF0: .4byte gUnknown_30075F4 -_08152CF4: .4byte 0x00000FF8 -_08152CF8: - lsls r1, r4, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0 - bl SetDamagedSectorBits - ldr r0, _08152D18 - ldrh r0, [r0] - strh r0, [r6] - ldr r0, _08152D1C - ldr r0, [r0] - str r0, [r5] - movs r0, #0xff -_08152D10: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08152D18: .4byte gUnknown_3005F38 -_08152D1C: .4byte gUnknown_3005F34 - thumb_func_end sub_08152C94 - - thumb_func_start sub_08152D20 -sub_08152D20: @ 0x08152D20 - push {r4, r5, r6, lr} - adds r6, r1, #0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r1, _08152D38 - ldr r0, _08152D3C - str r0, [r1] - ldr r0, _08152D40 - cmp r4, r0 - beq _08152D44 - movs r5, #0xff - b _08152D56 - .align 2, 0 -_08152D38: .4byte gUnknown_3005F44 -_08152D3C: .4byte gUnknown_203A888 -_08152D40: .4byte 0x0000FFFF -_08152D44: - adds r0, r6, #0 - bl GetSaveValidStatus - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08152D60 -_08152D56: - adds r0, r5, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08152D20 - - thumb_func_start sub_08152D60 -sub_08152D60: @ 0x08152D60 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r1 - ldr r0, _08152DFC - ldr r1, [r0] - movs r0, #1 - ands r1, r0 - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #0x11 - lsrs r7, r0, #0x10 - movs r5, #0 - ldr r6, _08152E00 -_08152D7C: - adds r0, r5, r7 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, [r6] - bl DoReadFlashWholeSection - ldr r0, [r6] - ldr r1, _08152E04 - adds r0, r0, r1 - ldrh r1, [r0] - cmp r1, #0 - bne _08152D98 - ldr r0, _08152E08 - strh r5, [r0] -_08152D98: - ldr r0, [r6] - lsls r1, r1, #3 - mov r2, r8 - adds r4, r1, r2 - ldrh r1, [r4, #4] - bl CalculateChecksum - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldr r2, [r6] - ldr r1, _08152E0C - adds r0, r2, r1 - ldr r1, [r0] - ldr r0, _08152E10 - adds r5, #1 - cmp r1, r0 - bne _08152DE8 - ldr r1, _08152E14 - adds r0, r2, r1 - ldrh r0, [r0] - cmp r0, r3 - bne _08152DE8 - movs r2, #0 - ldrh r0, [r4, #4] - cmp r2, r0 - bhs _08152DE8 - adds r3, r4, #0 - ldr r4, _08152E00 -_08152DD0: - ldr r1, [r3] - adds r1, r1, r2 - ldr r0, [r4] - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldrh r1, [r3, #4] - cmp r2, r1 - blo _08152DD0 -_08152DE8: - lsls r0, r5, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0xd - bls _08152D7C - movs r0, #1 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08152DFC: .4byte gUnknown_3005F40 -_08152E00: .4byte gUnknown_3005F44 -_08152E04: .4byte 0x00000FF4 -_08152E08: .4byte gUnknown_3005F30 -_08152E0C: .4byte 0x00000FF8 -_08152E10: .4byte 0x08012025 -_08152E14: .4byte 0x00000FF6 - thumb_func_end sub_08152D60 - - thumb_func_start GetSaveValidStatus -GetSaveValidStatus: @ 0x08152E18 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov sl, r0 - movs r0, #0 - mov r8, r0 - mov sb, r0 - movs r6, #0 - movs r5, #0 - movs r4, #0 - ldr r7, _08152EA4 -_08152E34: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - ldr r1, [r7] - bl DoReadFlashWholeSection - ldr r2, [r7] - ldr r1, _08152EA8 - adds r0, r2, r1 - ldr r1, [r0] - ldr r0, _08152EAC - cmp r1, r0 - bne _08152E84 - movs r5, #1 - ldr r3, _08152EB0 - adds r0, r2, r3 - ldrh r0, [r0] - lsls r0, r0, #3 - add r0, sl - ldrh r1, [r0, #4] - adds r0, r2, #0 - bl CalculateChecksum - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r1, [r7] - ldr r3, _08152EB4 - adds r0, r1, r3 - ldrh r0, [r0] - cmp r0, r2 - bne _08152E84 - ldr r2, _08152EB8 - adds r0, r1, r2 - ldr r0, [r0] - mov r8, r0 - subs r3, #2 - adds r1, r1, r3 - adds r0, r5, #0 - ldrh r1, [r1] - lsls r0, r1 - orrs r6, r0 -_08152E84: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0xd - bls _08152E34 - cmp r5, #0 - beq _08152EC0 - ldr r0, _08152EBC - movs r1, #0xff - str r1, [sp] - cmp r6, r0 - bne _08152EC4 - movs r2, #1 - str r2, [sp] - b _08152EC4 - .align 2, 0 -_08152EA4: .4byte gUnknown_3005F44 -_08152EA8: .4byte 0x00000FF8 -_08152EAC: .4byte 0x08012025 -_08152EB0: .4byte 0x00000FF4 -_08152EB4: .4byte 0x00000FF6 -_08152EB8: .4byte 0x00000FFC -_08152EBC: .4byte 0x00003FFF -_08152EC0: - movs r3, #0 - str r3, [sp] -_08152EC4: - movs r6, #0 - movs r5, #0 - movs r4, #0 - ldr r7, _08152F3C -_08152ECC: - adds r0, r4, #0 - adds r0, #0xe - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, [r7] - bl DoReadFlashWholeSection - ldr r2, [r7] - ldr r1, _08152F40 - adds r0, r2, r1 - ldr r1, [r0] - ldr r0, _08152F44 - cmp r1, r0 - bne _08152F20 - movs r5, #1 - ldr r3, _08152F48 - adds r0, r2, r3 - ldrh r0, [r0] - lsls r0, r0, #3 - add r0, sl - ldrh r1, [r0, #4] - adds r0, r2, #0 - bl CalculateChecksum - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r1, [r7] - ldr r3, _08152F4C - adds r0, r1, r3 - ldrh r0, [r0] - cmp r0, r2 - bne _08152F20 - ldr r2, _08152F50 - adds r0, r1, r2 - ldr r0, [r0] - mov sb, r0 - subs r3, #2 - adds r1, r1, r3 - adds r0, r5, #0 - ldrh r1, [r1] - lsls r0, r1 - orrs r6, r0 -_08152F20: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0xd - bls _08152ECC - cmp r5, #0 - beq _08152F58 - ldr r0, _08152F54 - movs r1, #0xff - cmp r6, r0 - bne _08152F5A - movs r1, #1 - b _08152F5A - .align 2, 0 -_08152F3C: .4byte gUnknown_3005F44 -_08152F40: .4byte 0x00000FF8 -_08152F44: .4byte 0x08012025 -_08152F48: .4byte 0x00000FF4 -_08152F4C: .4byte 0x00000FF6 -_08152F50: .4byte 0x00000FFC -_08152F54: .4byte 0x00003FFF -_08152F58: - movs r1, #0 -_08152F5A: - ldr r0, [sp] - cmp r0, #1 - bne _08152FCC - cmp r1, #1 - bne _08152FBC - movs r0, #1 - rsbs r0, r0, #0 - cmp r8, r0 - bne _08152F72 - mov r1, sb - cmp r1, #0 - beq _08152F7C -_08152F72: - mov r2, r8 - cmp r2, #0 - bne _08152FA0 - cmp sb, r0 - bne _08152FA0 -_08152F7C: - mov r1, r8 - adds r1, #1 - mov r0, sb - adds r0, #1 - cmp r1, r0 - bhs _08152F94 - ldr r0, _08152F90 - mov r3, sb - b _08152FB4 - .align 2, 0 -_08152F90: .4byte gUnknown_3005F40 -_08152F94: - ldr r0, _08152F9C - mov r1, r8 - str r1, [r0] - b _08152FE4 - .align 2, 0 -_08152F9C: .4byte gUnknown_3005F40 -_08152FA0: - cmp r8, sb - bhs _08152FB0 - ldr r0, _08152FAC - mov r2, sb - str r2, [r0] - b _08152FE4 - .align 2, 0 -_08152FAC: .4byte gUnknown_3005F40 -_08152FB0: - ldr r0, _08152FB8 - mov r3, r8 -_08152FB4: - str r3, [r0] - b _08152FE4 - .align 2, 0 -_08152FB8: .4byte gUnknown_3005F40 -_08152FBC: - ldr r0, _08152FC8 - mov r2, r8 - str r2, [r0] - cmp r1, #0xff - beq _08152FDC - b _08152FE4 - .align 2, 0 -_08152FC8: .4byte gUnknown_3005F40 -_08152FCC: - cmp r1, #1 - bne _08152FE8 - ldr r0, _08152FE0 - mov r3, sb - str r3, [r0] - ldr r0, [sp] - cmp r0, #0xff - bne _08152FE4 -_08152FDC: - movs r0, #0xff - b _08153014 - .align 2, 0 -_08152FE0: .4byte gUnknown_3005F40 -_08152FE4: - movs r0, #1 - b _08153014 -_08152FE8: - ldr r2, [sp] - cmp r2, #0 - bne _08153008 - cmp r1, #0 - bne _08153008 - ldr r0, _08153000 - str r1, [r0] - ldr r0, _08153004 - strh r1, [r0] - movs r0, #0 - b _08153014 - .align 2, 0 -_08153000: .4byte gUnknown_3005F40 -_08153004: .4byte gUnknown_3005F30 -_08153008: - ldr r0, _08153024 - movs r1, #0 - str r1, [r0] - ldr r0, _08153028 - strh r1, [r0] - movs r0, #2 -_08153014: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08153024: .4byte gUnknown_3005F40 -_08153028: .4byte gUnknown_3005F30 - thumb_func_end GetSaveValidStatus - - thumb_func_start sub_0815302C -sub_0815302C: @ 0x0815302C - push {r4, r5, r6, lr} - adds r6, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r2, #0x10 - lsrs r4, r2, #0x10 - ldr r5, _08153080 - adds r1, r5, #0 - bl DoReadFlashWholeSection - ldr r1, _08153084 - adds r0, r5, r1 - ldr r1, [r0] - ldr r0, _08153088 - cmp r1, r0 - bne _08153094 - adds r0, r5, #0 - adds r1, r4, #0 - bl CalculateChecksum - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r2, _0815308C - adds r1, r5, r2 - ldrh r1, [r1] - cmp r1, r0 - bne _08153090 - movs r2, #0 - cmp r2, r4 - bhs _0815307A -_08153068: - adds r1, r6, r2 - adds r0, r5, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, r4 - blo _08153068 -_0815307A: - movs r0, #1 - b _08153096 - .align 2, 0 -_08153080: .4byte gUnknown_203A888 -_08153084: .4byte 0x00000FF8 -_08153088: .4byte 0x08012025 -_0815308C: .4byte 0x00000FF4 -_08153090: - movs r0, #2 - b _08153096 -_08153094: - movs r0, #0 -_08153096: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_0815302C - - thumb_func_start DoReadFlashWholeSection -DoReadFlashWholeSection: @ 0x0815309C - push {lr} - adds r2, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r3, #0x80 - lsls r3, r3, #5 - movs r1, #0 - bl ReadFlash - movs r0, #1 - pop {r1} - bx r1 - thumb_func_end DoReadFlashWholeSection - - thumb_func_start CalculateChecksum -CalculateChecksum: @ 0x081530B4 - push {r4, lr} - adds r4, r0, #0 - lsls r1, r1, #0x10 - movs r2, #0 - movs r3, #0 - lsrs r1, r1, #0x12 - cmp r2, r1 - bhs _081530D2 -_081530C4: - ldm r4!, {r0} - adds r2, r2, r0 - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, r1 - blo _081530C4 -_081530D2: - lsrs r0, r2, #0x10 - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r4} - pop {r1} - bx r1 - thumb_func_end CalculateChecksum - - thumb_func_start UpdateSaveAddresses -UpdateSaveAddresses: @ 0x081530E0 - push {r4, r5, lr} - ldr r3, _08153140 - ldr r0, _08153144 - ldr r2, _08153148 - ldrh r1, [r2] - ldr r0, [r0] - adds r0, r0, r1 - str r0, [r3] - ldrh r0, [r2, #2] - strh r0, [r3, #4] - ldr r5, _0815314C - adds r3, #8 - adds r2, #4 - movs r4, #3 -_081530FC: - ldrh r0, [r2] - ldr r1, [r5] - adds r1, r1, r0 - str r1, [r3] - ldrh r0, [r2, #2] - strh r0, [r3, #4] - adds r3, #8 - adds r2, #4 - subs r4, #1 - cmp r4, #0 - bge _081530FC - movs r4, #5 - ldr r1, _08153140 - ldr r5, _08153150 - ldr r0, _08153148 - adds r3, r1, #0 - adds r3, #0x28 - adds r2, r0, #0 - adds r2, #0x14 -_08153122: - ldrh r0, [r2] - ldr r1, [r5] - adds r1, r1, r0 - str r1, [r3] - ldrh r0, [r2, #2] - strh r0, [r3, #4] - adds r3, #8 - adds r2, #4 - adds r4, #1 - cmp r4, #0xd - ble _08153122 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08153140: .4byte gUnknown_3005F60 -_08153144: .4byte gUnknown_3005AF0 -_08153148: .4byte gUnknown_85ACA08 -_0815314C: .4byte gUnknown_3005AEC -_08153150: .4byte gUnknown_3005AF4 - thumb_func_end UpdateSaveAddresses - - thumb_func_start HandleSavingData -HandleSavingData: @ 0x08153154 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08153174 - ldr r6, [r1] - movs r0, #0 - str r0, [r1] - bl UpdateSaveAddresses - cmp r4, #5 - bhi _081531FC - lsls r0, r4, #2 - ldr r1, _08153178 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08153174: .4byte gUnknown_203CC28 -_08153178: .4byte _0815317C -_0815317C: @ jump table - .4byte _081531FC @ case 0 - .4byte _08153214 @ case 1 - .4byte _08153214 @ case 2 - .4byte _081531AA @ case 3 - .4byte _08153234 @ case 4 - .4byte _08153194 @ case 5 -_08153194: - movs r4, #0x1c - ldr r5, _081531E8 -_08153198: - ldr r1, [r5] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x1f - bls _08153198 -_081531AA: - movs r0, #0xa - bl GetGameStat - ldr r1, _081531EC - cmp r0, r1 - bhi _081531BC - movs r0, #0xa - bl IncrementGameStat -_081531BC: - bl SaveSerializedGame - ldr r0, _081531F0 - ldr r1, _081531F4 - bl sub_081526DC - ldr r4, _081531F8 - movs r5, #0xf8 - lsls r5, r5, #4 - movs r0, #0x1c - adds r1, r4, #0 - adds r2, r5, #0 - bl HandleWriteSectorNBytes - adds r4, r4, r5 - movs r0, #0x1d - adds r1, r4, #0 - adds r2, r5, #0 - bl HandleWriteSectorNBytes - b _08153256 - .align 2, 0 -_081531E8: .4byte gUnknown_3007600 -_081531EC: .4byte 0x000003E6 -_081531F0: .4byte 0x0000FFFF -_081531F4: .4byte gUnknown_3005F60 -_081531F8: .4byte gUnknown_201C000 -_081531FC: - bl SaveSerializedGame - ldr r0, _0815320C - ldr r1, _08153210 - bl sub_081526DC - b _08153256 - .align 2, 0 -_0815320C: .4byte 0x0000FFFF -_08153210: .4byte gUnknown_3005F60 -_08153214: - bl SaveSerializedGame - movs r4, #0 -_0815321A: - adds r0, r4, #0 - ldr r1, _08153230 - bl sub_081526DC - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #4 - bls _0815321A - b _08153256 - .align 2, 0 -_08153230: .4byte gUnknown_3005F60 -_08153234: - movs r4, #0x1c - ldr r5, _08153264 -_08153238: - ldr r1, [r5] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x1f - bls _08153238 - bl SaveSerializedGame - ldr r0, _08153268 - ldr r1, _0815326C - bl sub_081526DC -_08153256: - ldr r0, _08153270 - str r6, [r0] - movs r0, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08153264: .4byte gUnknown_3007600 -_08153268: .4byte 0x0000FFFF -_0815326C: .4byte gUnknown_3005F60 -_08153270: .4byte gUnknown_203CC28 - thumb_func_end HandleSavingData - - thumb_func_start TrySavingData -TrySavingData: @ 0x08153274 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _081532A0 - ldr r4, [r0] - cmp r4, #1 - bne _08153296 - adds r0, r5, #0 - bl HandleSavingData - ldr r0, _081532A4 - ldr r0, [r0] - cmp r0, #0 - beq _081532AC - adds r0, r5, #0 - bl DoSaveFailedScreen -_08153296: - ldr r1, _081532A8 - movs r0, #0xff - strh r0, [r1] - movs r0, #0xff - b _081532B2 - .align 2, 0 -_081532A0: .4byte gUnknown_3005AE8 -_081532A4: .4byte gUnknown_3005F3C -_081532A8: .4byte gUnknown_3005FD4 -_081532AC: - ldr r0, _081532B8 - strh r4, [r0] - movs r0, #1 -_081532B2: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081532B8: .4byte gUnknown_3005FD4 - thumb_func_end TrySavingData - - thumb_func_start sub_081532BC -sub_081532BC: @ 0x081532BC - push {lr} - ldr r0, _081532D8 - ldr r0, [r0] - cmp r0, #1 - bne _081532E0 - bl UpdateSaveAddresses - bl SaveSerializedGame - ldr r0, _081532DC - bl RestoreSaveBackupVarsAndIncrement - movs r0, #0 - b _081532E2 - .align 2, 0 -_081532D8: .4byte gUnknown_3005AE8 -_081532DC: .4byte gUnknown_3005F60 -_081532E0: - movs r0, #1 -_081532E2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081532BC - - thumb_func_start sub_081532E8 -sub_081532E8: @ 0x081532E8 - push {r4, lr} - ldr r1, _0815330C - movs r0, #0xe - bl sub_081529B0 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _08153310 - ldr r0, [r0] - cmp r0, #0 - beq _08153304 - movs r0, #0 - bl DoSaveFailedScreen -_08153304: - cmp r4, #0xff - beq _08153314 - movs r0, #0 - b _08153316 - .align 2, 0 -_0815330C: .4byte gUnknown_3005F60 -_08153310: .4byte gUnknown_3005F3C -_08153314: - movs r0, #1 -_08153316: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081532E8 - - thumb_func_start sub_0815331C -sub_0815331C: @ 0x0815331C - push {lr} - ldr r1, _0815333C - movs r0, #0xe - bl sub_08152A10 - ldr r0, _08153340 - ldr r0, [r0] - cmp r0, #0 - beq _08153334 - movs r0, #0 - bl DoSaveFailedScreen -_08153334: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0815333C: .4byte gUnknown_3005F60 -_08153340: .4byte gUnknown_3005F3C - thumb_func_end sub_0815331C - - thumb_func_start sub_08153344 -sub_08153344: @ 0x08153344 - push {lr} - ldr r1, _08153364 - movs r0, #0xe - bl sub_08152BFC - ldr r0, _08153368 - ldr r0, [r0] - cmp r0, #0 - beq _0815335C - movs r0, #0 - bl DoSaveFailedScreen -_0815335C: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_08153364: .4byte gUnknown_3005F60 -_08153368: .4byte gUnknown_3005F3C - thumb_func_end sub_08153344 - - thumb_func_start sub_0815336C -sub_0815336C: @ 0x0815336C - push {r4, lr} - ldr r0, _0815339C - ldr r0, [r0] - cmp r0, #1 - bne _081533A8 - bl UpdateSaveAddresses - bl SaveSerializedGame - ldr r4, _081533A0 - adds r0, r4, #0 - bl RestoreSaveBackupVars - ldr r0, _081533A4 - ldrh r0, [r0] - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r4, #0 - bl sub_08152A10 - movs r0, #0 - b _081533AA - .align 2, 0 -_0815339C: .4byte gUnknown_3005AE8 -_081533A0: .4byte gUnknown_3005F60 -_081533A4: .4byte gUnknown_3005F48 -_081533A8: - movs r0, #1 -_081533AA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0815336C - - thumb_func_start CheckSaveFile -CheckSaveFile: @ 0x081533B0 - push {r4, r5, r6, lr} - movs r6, #0 - ldr r0, _081533DC - ldrh r1, [r0] - adds r1, #1 - strh r1, [r0] - lsls r0, r1, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #4 - bhi _081533E4 - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _081533E0 - adds r1, r4, #0 - bl sub_08152A10 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08152C94 - b _081533EE - .align 2, 0 -_081533DC: .4byte gUnknown_3005F48 -_081533E0: .4byte gUnknown_3005F60 -_081533E4: - ldr r1, _08153404 - adds r0, r5, #0 - bl sub_08152C94 - movs r6, #1 -_081533EE: - ldr r0, _08153408 - ldr r0, [r0] - cmp r0, #0 - beq _081533FC - movs r0, #1 - bl DoSaveFailedScreen -_081533FC: - adds r0, r6, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08153404: .4byte gUnknown_3005F60 -_08153408: .4byte gUnknown_3005F3C - thumb_func_end CheckSaveFile - - thumb_func_start Save_LoadGameData -Save_LoadGameData: @ 0x0815340C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _08153424 - ldr r0, [r0] - cmp r0, #1 - beq _0815342C - ldr r1, _08153428 - movs r0, #4 - strh r0, [r1] - movs r0, #0xff - b _0815348C - .align 2, 0 -_08153424: .4byte gUnknown_3005AE8 -_08153428: .4byte gUnknown_3005F50 -_0815342C: - bl UpdateSaveAddresses - cmp r4, #0 - beq _08153438 - cmp r4, #3 - beq _08153464 -_08153438: - ldr r0, _08153454 - ldr r1, _08153458 - bl sub_08152D20 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl LoadSerializedGame - ldr r0, _0815345C - strh r4, [r0] - ldr r1, _08153460 - movs r0, #0 - str r0, [r1] - b _0815348A - .align 2, 0 -_08153454: .4byte 0x0000FFFF -_08153458: .4byte gUnknown_3005F60 -_0815345C: .4byte gUnknown_3005F50 -_08153460: .4byte gUnknown_3005F54 -_08153464: - ldr r5, _08153494 - movs r6, #0xf8 - lsls r6, r6, #4 - movs r0, #0x1c - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_0815302C - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #1 - bne _0815348A - adds r1, r5, r6 - movs r0, #0x1d - adds r2, r6, #0 - bl sub_0815302C - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_0815348A: - adds r0, r4, #0 -_0815348C: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08153494: .4byte gUnknown_201C000 - thumb_func_end Save_LoadGameData - - thumb_func_start sub_08153498 -sub_08153498: @ 0x08153498 - push {r4, r5, r6, r7, lr} - ldr r5, _081534AC - ldr r0, _081534B0 - str r0, [r5] - adds r7, r0, #0 - ldr r0, _081534B4 - ldr r4, [r0] - cmp r4, #1 - beq _081534C8 - b _08153504 - .align 2, 0 -_081534AC: .4byte gUnknown_3005F44 -_081534B0: .4byte gUnknown_203A888 -_081534B4: .4byte gUnknown_3005AE8 -_081534B8: - ldrb r1, [r7, #0xa] - ldrb r0, [r7, #0xb] - adds r1, r1, r0 - ldrb r0, [r7, #0xc] - adds r1, r1, r0 - ldrb r0, [r7, #0xd] - adds r0, r0, r1 - b _08153506 -_081534C8: - bl UpdateSaveAddresses - ldr r0, _0815350C - bl GetSaveValidStatus - ldr r0, _08153510 - ldr r1, [r0] - ands r1, r4 - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #0x11 - lsrs r6, r0, #0x10 - movs r4, #0 -_081534E2: - adds r0, r4, r6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, [r5] - bl DoReadFlashWholeSection - ldr r0, [r5] - ldr r1, _08153514 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0 - beq _081534B8 - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0xd - bls _081534E2 -_08153504: - movs r0, #0 -_08153506: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0815350C: .4byte gUnknown_3005F60 -_08153510: .4byte gUnknown_3005F40 -_08153514: .4byte 0x00000FF4 - thumb_func_end sub_08153498 - - thumb_func_start TryReadSpecialSaveSection -TryReadSpecialSaveSection: @ 0x08153518 - push {r4, r5, r6, lr} - adds r6, r1, #0 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r2, #0xe2 - lsls r2, r2, #0x18 - adds r0, r0, r2 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _08153544 - ldr r4, _08153548 - movs r3, #0x80 - lsls r3, r3, #5 - adds r0, r1, #0 - movs r1, #0 - adds r2, r4, #0 - bl ReadFlash - ldr r1, [r4] - ldr r0, _0815354C - cmp r1, r0 - beq _08153550 -_08153544: - movs r0, #0xff - b _08153566 - .align 2, 0 -_08153548: .4byte gUnknown_203A888 -_0815354C: .4byte 0x0000B39D -_08153550: - movs r3, #0 - ldr r5, _0815356C - adds r2, r4, #4 -_08153556: - adds r0, r6, r3 - adds r1, r2, r3 - ldrb r1, [r1] - strb r1, [r0] - adds r3, #1 - cmp r3, r5 - ble _08153556 - movs r0, #1 -_08153566: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0815356C: .4byte 0x00000FFB - thumb_func_end TryReadSpecialSaveSection - - thumb_func_start TryWriteSpecialSaveSection -TryWriteSpecialSaveSection: @ 0x08153570 - push {r4, r5, r6, r7, lr} - adds r5, r1, #0 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r1, #0xe2 - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _081535BC - ldr r7, _081535B0 - ldr r0, _081535B4 - adds r3, r7, #0 - stm r3!, {r0} - movs r2, #0 - ldr r4, _081535B8 -_08153590: - adds r0, r3, r2 - adds r1, r5, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, r4 - ble _08153590 - adds r0, r6, #0 - adds r1, r7, #0 - bl ProgramFlashSectorAndVerify - cmp r0, #0 - bne _081535BC - movs r0, #1 - b _081535BE - .align 2, 0 -_081535B0: .4byte gUnknown_203A888 -_081535B4: .4byte 0x0000B39D -_081535B8: .4byte 0x00000FFB -_081535BC: - movs r0, #0xff -_081535BE: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end TryWriteSpecialSaveSection - - thumb_func_start sub_081535C4 -sub_081535C4: @ 0x081535C4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _081535E8 - adds r4, r0, r1 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #0xb - bls _081535DE - b _081536FE -_081535DE: - lsls r0, r0, #2 - ldr r1, _081535EC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081535E8: .4byte gUnknown_3005B68 -_081535EC: .4byte _081535F0 -_081535F0: @ jump table - .4byte _08153620 @ case 0 - .4byte _08153630 @ case 1 - .4byte _0815363A @ case 2 - .4byte _08153656 @ case 3 - .4byte _08153668 @ case 4 - .4byte _0815367E @ case 5 - .4byte _08153694 @ case 6 - .4byte _0815369E @ case 7 - .4byte _081536B4 @ case 8 - .4byte _081536C8 @ case 9 - .4byte _081536D2 @ case 10 - .4byte _081536E4 @ case 11 -_08153620: - ldr r0, _0815362C - movs r1, #1 - strb r1, [r0] - movs r0, #1 - strh r0, [r4] - b _081536FE - .align 2, 0 -_0815362C: .4byte gUnknown_30027A0 -_08153630: - bl sub_0800A8D4 - movs r0, #2 - strh r0, [r4] - b _081536FE -_0815363A: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081536FE - movs r1, #4 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08153650 - bl save_serialize_map -_08153650: - movs r0, #3 - strh r0, [r4] - b _081536FE -_08153656: - movs r1, #4 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08153662 - bl SetContinueGameWarpStatusToDynamicWarp -_08153662: - bl sub_081532BC - b _0815368E -_08153668: - ldrh r0, [r4, #2] - adds r0, #1 - strh r0, [r4, #2] - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - cmp r1, #5 - bne _081536FE - movs r0, #0 - strh r0, [r4, #2] - strh r1, [r4] - b _081536FE -_0815367E: - bl sub_081532E8 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0815368E - movs r0, #6 - strh r0, [r4] - b _081536FE -_0815368E: - movs r0, #4 - strh r0, [r4] - b _081536FE -_08153694: - bl sub_0815331C - movs r0, #7 - strh r0, [r4] - b _081536FE -_0815369E: - movs r1, #4 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _081536AA - bl sub_08076780 -_081536AA: - bl sub_0800A8D4 - movs r0, #8 - strh r0, [r4] - b _081536FE -_081536B4: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081536FE - bl sub_08153344 - movs r0, #9 - strh r0, [r4] - b _081536FE -_081536C8: - bl sub_0800A8D4 - movs r0, #0xa - strh r0, [r4] - b _081536FE -_081536D2: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081536FE - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - b _081536FE -_081536E4: - ldrh r0, [r4, #2] - adds r0, #1 - strh r0, [r4, #2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #5 - ble _081536FE - ldr r1, _08153704 - movs r0, #0 - strb r0, [r1] - adds r0, r2, #0 - bl DestroyTask -_081536FE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08153704: .4byte gUnknown_30027A0 - thumb_func_end sub_081535C4 - - thumb_func_start CheckCompatibility -CheckCompatibility: @ 0x08153708 - push {r4, lr} - adds r4, r3, #0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - movs r3, #1 - ands r0, r3 - cmp r0, #0 - beq _08153738 - ands r1, r3 - cmp r1, #0 - beq _08153738 - movs r0, #4 - ands r2, r0 - cmp r2, #0 - beq _08153738 - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r4 - cmp r0, #0 - beq _08153738 - movs r0, #1 - b _0815373A -_08153738: - movs r0, #0 -_0815373A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end CheckCompatibility - - thumb_func_start SetIncompatible -SetIncompatible: @ 0x08153740 - push {lr} - ldr r0, _08153754 - ldr r1, _08153758 - bl StringExpandPlaceholders - movs r0, #3 - bl SetMysteryEventScriptStatus - pop {r0} - bx r0 - .align 2, 0 -_08153754: .4byte gUnknown_2021C7C -_08153758: .4byte gUnknown_85FCBDE - thumb_func_end SetIncompatible - - thumb_func_start InitMysteryEventScript -InitMysteryEventScript: @ 0x0815375C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _08153784 - ldr r2, _08153788 - bl InitScriptContext - adds r0, r4, #0 - adds r1, r5, #0 - bl SetupBytecodeScript - str r5, [r4, #0x64] - movs r0, #0 - str r0, [r4, #0x68] - str r0, [r4, #0x6c] - str r0, [r4, #0x70] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08153784: .4byte gUnknown_828D2B4 -_08153788: .4byte gUnknown_828D2F8 - thumb_func_end InitMysteryEventScript - - thumb_func_start RunMysteryEventScriptCommand -RunMysteryEventScriptCommand: @ 0x0815378C - push {r4, lr} - adds r4, r0, #0 - bl RunScriptCommand - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081537A4 - ldr r0, [r4, #0x70] - cmp r0, #0 - beq _081537A4 - movs r0, #1 - b _081537A6 -_081537A4: - movs r0, #0 -_081537A6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end RunMysteryEventScriptCommand - - thumb_func_start sub_081537AC -sub_081537AC: @ 0x081537AC - push {lr} - adds r1, r0, #0 - ldr r0, _081537BC - bl InitMysteryEventScript - pop {r0} - bx r0 - .align 2, 0 -_081537BC: .4byte gUnknown_203B88C - thumb_func_end sub_081537AC - - thumb_func_start sub_081537C0 -sub_081537C0: @ 0x081537C0 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _081537D8 - adds r0, r4, #0 - bl RunMysteryEventScriptCommand - ldr r1, [r4, #0x6c] - str r1, [r5] - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081537D8: .4byte gUnknown_203B88C - thumb_func_end sub_081537C0 - - thumb_func_start RunMysteryEventScript -RunMysteryEventScript: @ 0x081537DC - push {r4, lr} - adds r1, r0, #0 - ldr r4, _081537FC - adds r0, r4, #0 - bl InitMysteryEventScript -_081537E8: - adds r0, r4, #0 - bl RunMysteryEventScriptCommand - cmp r0, #0 - bne _081537E8 - ldr r0, [r4, #0x6c] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081537FC: .4byte gUnknown_203B88C - thumb_func_end RunMysteryEventScript - - thumb_func_start SetMysteryEventScriptStatus -SetMysteryEventScriptStatus: @ 0x08153800 - ldr r1, _08153808 - str r0, [r1, #0x6c] - bx lr - .align 2, 0 -_08153808: .4byte gUnknown_203B88C - thumb_func_end SetMysteryEventScriptStatus - - thumb_func_start CalcRecordMixingGiftChecksum -CalcRecordMixingGiftChecksum: @ 0x0815380C - push {lr} - movs r2, #0 - ldr r0, _0815382C - ldr r0, [r0] - ldr r1, _08153830 - adds r3, r0, r1 - movs r1, #0 -_0815381A: - adds r0, r3, r1 - ldrb r0, [r0] - adds r2, r2, r0 - adds r1, #1 - cmp r1, #0xb - bls _0815381A - adds r0, r2, #0 - pop {r1} - bx r1 - .align 2, 0 -_0815382C: .4byte gUnknown_3005AEC -_08153830: .4byte 0x00003B18 - thumb_func_end CalcRecordMixingGiftChecksum - - thumb_func_start IsRecordMixingGiftValid -IsRecordMixingGiftValid: @ 0x08153834 - push {r4, r5, lr} - ldr r5, _0815386C - ldr r0, [r5] - ldr r1, _08153870 - adds r4, r0, r1 - bl CalcRecordMixingGiftChecksum - adds r1, r0, #0 - ldrb r0, [r4] - cmp r0, #0 - beq _08153866 - ldrb r0, [r4, #1] - cmp r0, #0 - beq _08153866 - ldrh r0, [r4, #2] - cmp r0, #0 - beq _08153866 - cmp r1, #0 - beq _08153866 - ldr r0, [r5] - ldr r2, _08153874 - adds r0, r0, r2 - ldr r0, [r0] - cmp r1, r0 - beq _08153878 -_08153866: - movs r0, #0 - b _0815387A - .align 2, 0 -_0815386C: .4byte gUnknown_3005AEC -_08153870: .4byte 0x00003B18 -_08153874: .4byte 0x00003B14 -_08153878: - movs r0, #1 -_0815387A: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end IsRecordMixingGiftValid - - thumb_func_start sub_08153880 -sub_08153880: @ 0x08153880 - push {lr} - sub sp, #4 - mov r1, sp - movs r0, #0 - strh r0, [r1] - ldr r0, _081538A0 - ldr r1, [r0] - ldr r0, _081538A4 - adds r1, r1, r0 - ldr r2, _081538A8 - mov r0, sp - bl CpuSet - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_081538A0: .4byte gUnknown_3005AEC -_081538A4: .4byte 0x00003B14 -_081538A8: .4byte 0x01000008 - thumb_func_end sub_08153880 - - thumb_func_start SetRecordMixingGift -SetRecordMixingGift: @ 0x081538AC - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r3, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r5, r1, #0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - adds r6, r2, #0 - cmp r3, #0 - beq _081538CC - cmp r1, #0 - beq _081538CC - cmp r2, #0 - bne _081538D2 -_081538CC: - bl sub_08153880 - b _081538F8 -_081538D2: - ldr r4, _08153900 - ldr r0, [r4] - ldr r1, _08153904 - adds r0, r0, r1 - strb r3, [r0] - ldr r0, [r4] - ldr r2, _08153908 - adds r0, r0, r2 - strb r5, [r0] - ldr r0, [r4] - adds r1, #2 - adds r0, r0, r1 - strh r6, [r0] - bl CalcRecordMixingGiftChecksum - ldr r1, [r4] - ldr r2, _0815390C - adds r1, r1, r2 - str r0, [r1] -_081538F8: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08153900: .4byte gUnknown_3005AEC -_08153904: .4byte 0x00003B18 -_08153908: .4byte 0x00003B19 -_0815390C: .4byte 0x00003B14 - thumb_func_end SetRecordMixingGift - - thumb_func_start GetRecordMixingGift -GetRecordMixingGift: @ 0x08153910 - push {r4, r5, r6, lr} - ldr r6, _0815392C - ldr r0, [r6] - ldr r1, _08153930 - adds r4, r0, r1 - bl IsRecordMixingGiftValid - cmp r0, #0 - bne _08153934 - bl sub_08153880 - movs r0, #0 - b _08153956 - .align 2, 0 -_0815392C: .4byte gUnknown_3005AEC -_08153930: .4byte 0x00003B18 -_08153934: - ldrh r5, [r4, #2] - ldrb r0, [r4, #1] - subs r0, #1 - strb r0, [r4, #1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08153948 - bl sub_08153880 - b _08153954 -_08153948: - bl CalcRecordMixingGiftChecksum - ldr r1, [r6] - ldr r2, _0815395C - adds r1, r1, r2 - str r0, [r1] -_08153954: - adds r0, r5, #0 -_08153956: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0815395C: .4byte 0x00003B14 - thumb_func_end GetRecordMixingGift - - thumb_func_start sub_08153960 -sub_08153960: @ 0x08153960 - push {lr} - bl StopScript - movs r0, #1 - pop {r1} - bx r1 - thumb_func_end sub_08153960 - - thumb_func_start MEScrCmd_checkcompat -MEScrCmd_checkcompat: @ 0x0815396C - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - bl ScriptReadWord - str r0, [r7, #0x68] - adds r0, r7, #0 - bl ScriptReadHalfword - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - adds r0, r7, #0 - bl ScriptReadWord - adds r6, r0, #0 - adds r0, r7, #0 - bl ScriptReadHalfword - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r7, #0 - bl ScriptReadWord - adds r3, r0, #0 - adds r0, r5, #0 - adds r1, r6, #0 - adds r2, r4, #0 - bl CheckCompatibility - cmp r0, #1 - bne _081539B0 - str r0, [r7, #0x70] - b _081539B4 -_081539B0: - bl SetIncompatible -_081539B4: - movs r0, #1 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end MEScrCmd_checkcompat - - thumb_func_start sub_081539BC -sub_081539BC: @ 0x081539BC - movs r0, #0 - bx lr - thumb_func_end sub_081539BC - - thumb_func_start MEScrCmd_setstatus -MEScrCmd_setstatus: @ 0x081539C0 - ldr r1, [r0, #8] - ldrb r2, [r1] - adds r1, #1 - str r1, [r0, #8] - str r2, [r0, #0x6c] - movs r0, #0 - bx lr - .align 2, 0 - thumb_func_end MEScrCmd_setstatus - - thumb_func_start MEScrCmd_setmsg -MEScrCmd_setmsg: @ 0x081539D0 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, [r4, #8] - ldrb r5, [r0] - adds r0, #1 - str r0, [r4, #8] - adds r0, r4, #0 - bl ScriptReadWord - ldr r1, [r4, #0x68] - subs r0, r0, r1 - ldr r1, [r4, #0x64] - adds r1, r0, r1 - cmp r5, #0xff - beq _081539F4 - ldr r0, [r4, #0x6c] - cmp r5, r0 - bne _081539FA -_081539F4: - ldr r0, _08153A04 - bl StringExpandPlaceholders -_081539FA: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08153A04: .4byte gUnknown_2021C7C - thumb_func_end MEScrCmd_setmsg - - thumb_func_start MEScrCmd_runscript -MEScrCmd_runscript: @ 0x08153A08 - push {r4, lr} - adds r4, r0, #0 - bl ScriptReadWord - ldr r1, [r4, #0x68] - subs r0, r0, r1 - ldr r1, [r4, #0x64] - adds r0, r0, r1 - bl ScriptContext2_RunNewScript - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end MEScrCmd_runscript - - thumb_func_start MEScrCmd_setenigmaberry -MEScrCmd_setenigmaberry: @ 0x08153A24 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - bl IsEnigmaBerryValid - mov r8, r0 - adds r0, r7, #0 - bl ScriptReadWord - adds r4, r0, #0 - ldr r0, [r7, #0x68] - subs r4, r4, r0 - ldr r0, [r7, #0x64] - adds r4, r4, r0 - ldr r0, _08153A78 - mov sb, r0 - ldr r6, _08153A7C - ldr r1, [r6] - ldr r5, _08153A80 - adds r1, r1, r5 - movs r2, #7 - bl StringCopyN - adds r0, r4, #0 - bl SetEnigmaBerry - ldr r4, _08153A84 - ldr r1, [r6] - adds r1, r1, r5 - adds r0, r4, #0 - movs r2, #7 - bl StringCopyN - mov r0, r8 - cmp r0, #0 - bne _08153A90 - ldr r0, _08153A88 - ldr r1, _08153A8C - b _08153AB0 - .align 2, 0 -_08153A78: .4byte gUnknown_2021C40 -_08153A7C: .4byte gUnknown_3005AEC -_08153A80: .4byte 0x000031F8 -_08153A84: .4byte gUnknown_2021C54 -_08153A88: .4byte gUnknown_2021C7C -_08153A8C: .4byte gUnknown_85FCAF8 -_08153A90: - mov r0, sb - adds r1, r4, #0 - bl StringCompare - cmp r0, #0 - beq _08153AAC - ldr r0, _08153AA4 - ldr r1, _08153AA8 - b _08153AB0 - .align 2, 0 -_08153AA4: .4byte gUnknown_2021C7C -_08153AA8: .4byte gUnknown_85FCB19 -_08153AAC: - ldr r0, _08153ACC - ldr r1, _08153AD0 -_08153AB0: - bl StringExpandPlaceholders - movs r0, #2 - str r0, [r7, #0x6c] - bl IsEnigmaBerryValid - cmp r0, #1 - bne _08153AD8 - ldr r0, _08153AD4 - movs r1, #1 - bl VarSet - b _08153ADC - .align 2, 0 -_08153ACC: .4byte gUnknown_2021C7C -_08153AD0: .4byte gUnknown_85FCB2C -_08153AD4: .4byte 0x0000402D -_08153AD8: - movs r0, #1 - str r0, [r7, #0x6c] -_08153ADC: - movs r0, #0 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MEScrCmd_setenigmaberry - - thumb_func_start MEScrCmd_giveribbon -MEScrCmd_giveribbon: @ 0x08153AEC - push {r4, lr} - adds r4, r0, #0 - ldr r2, [r4, #8] - ldrb r0, [r2] - adds r2, #1 - str r2, [r4, #8] - ldrb r1, [r2] - adds r2, #1 - str r2, [r4, #8] - bl GiveGiftRibbonToParty - ldr r0, _08153B18 - ldr r1, _08153B1C - bl StringExpandPlaceholders - movs r0, #2 - str r0, [r4, #0x6c] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08153B18: .4byte gUnknown_2021C7C -_08153B1C: .4byte gUnknown_85FCB3D - thumb_func_end MEScrCmd_giveribbon - - thumb_func_start MEScrCmd_initramscript -MEScrCmd_initramscript: @ 0x08153B20 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #4 - adds r4, r0, #0 - ldr r0, [r4, #8] - ldrb r1, [r0] - mov sb, r1 - adds r0, #1 - str r0, [r4, #8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, #1 - str r1, [r4, #8] - ldrb r6, [r0, #1] - adds r1, #1 - str r1, [r4, #8] - adds r0, r4, #0 - bl ScriptReadWord - adds r5, r0, #0 - ldr r0, [r4, #0x68] - subs r5, r5, r0 - ldr r0, [r4, #0x64] - adds r5, r5, r0 - adds r0, r4, #0 - bl ScriptReadWord - adds r1, r0, #0 - ldr r0, [r4, #0x68] - subs r1, r1, r0 - ldr r0, [r4, #0x64] - adds r1, r1, r0 - subs r1, r1, r5 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r6, [sp] - adds r0, r5, #0 - mov r2, sb - mov r3, r8 - bl InitRamScript - movs r0, #0 - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MEScrCmd_initramscript - - thumb_func_start sub_08153B88 -sub_08153B88: @ 0x08153B88 - push {r4, lr} - adds r4, r0, #0 - bl EnableNationalPokedex - ldr r0, _08153BA4 - ldr r1, _08153BA8 - bl StringExpandPlaceholders - movs r0, #2 - str r0, [r4, #0x6c] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08153BA4: .4byte gUnknown_2021C7C -_08153BA8: .4byte gUnknown_85FCB59 - thumb_func_end sub_08153B88 - - thumb_func_start MEScrCmd_addrareword -MEScrCmd_addrareword: @ 0x08153BAC - push {r4, lr} - adds r4, r0, #0 - ldr r1, [r4, #8] - ldrb r0, [r1] - adds r1, #1 - str r1, [r4, #8] - bl sub_0811F4A0 - ldr r0, _08153BD0 - ldr r1, _08153BD4 - bl StringExpandPlaceholders - movs r0, #2 - str r0, [r4, #0x6c] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08153BD0: .4byte gUnknown_2021C7C -_08153BD4: .4byte gUnknown_85FCB70 - thumb_func_end MEScrCmd_addrareword - - thumb_func_start MEScrCmd_setrecordmixinggift -MEScrCmd_setrecordmixinggift: @ 0x08153BD8 - push {r4, r5, lr} - ldr r1, [r0, #8] - ldrb r5, [r1] - adds r1, #1 - str r1, [r0, #8] - ldrb r4, [r1] - adds r1, #1 - str r1, [r0, #8] - bl ScriptReadHalfword - adds r2, r0, #0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl SetRecordMixingGift - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MEScrCmd_setrecordmixinggift - - thumb_func_start MEScrCmd_givepokemon -MEScrCmd_givepokemon: @ 0x08153C04 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x88 - adds r6, r0, #0 - bl ScriptReadWord - ldr r1, [r6, #0x68] - subs r0, r0, r1 - ldr r1, [r6, #0x64] - adds r5, r0, r1 - movs r0, #0x64 - adds r0, r0, r5 - mov r8, r0 - add r4, sp, #0x24 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0x64 - bl memcpy - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r0, #0xce - lsls r0, r0, #1 - cmp r4, r0 - bne _08153C54 - ldr r0, _08153C4C - ldr r1, _08153C50 - movs r2, #0xb - bl StringCopyN - b _08153C5E - .align 2, 0 -_08153C4C: .4byte gUnknown_2021C40 -_08153C50: .4byte gUnknown_85C8C62 -_08153C54: - ldr r0, _08153C74 - ldr r1, _08153C78 - movs r2, #0xb - bl StringCopyN -_08153C5E: - ldr r0, _08153C7C - ldrb r0, [r0] - cmp r0, #6 - bne _08153C88 - ldr r0, _08153C80 - ldr r1, _08153C84 - bl StringExpandPlaceholders - movs r0, #3 - b _08153CF2 - .align 2, 0 -_08153C74: .4byte gUnknown_2021C40 -_08153C78: .4byte gUnknown_85C8C66 -_08153C7C: .4byte gUnknown_202418D -_08153C80: .4byte gUnknown_2021C7C -_08153C84: .4byte gUnknown_85FCB90 -_08153C88: - ldr r7, _08153D04 - adds r0, r7, #0 - adds r1, r5, #0 - movs r2, #0x64 - bl memcpy - mov r0, sp - mov r1, r8 - movs r2, #0x24 - bl memcpy - movs r0, #0xce - lsls r0, r0, #1 - cmp r4, r0 - beq _08153CC2 - adds r0, r4, #0 - bl sub_0806CF68 - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r4, #0 - movs r1, #2 - bl GetSetPokedexFlag - adds r0, r4, #0 - movs r1, #3 - bl GetSetPokedexFlag -_08153CC2: - adds r0, r7, #0 - movs r1, #0xc - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl ItemIsMail - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08153CE0 - adds r0, r7, #0 - mov r1, sp - bl GiveMailToMon2 -_08153CE0: - bl CompactPartySlots - bl sub_0806B004 - ldr r0, _08153D08 - ldr r1, _08153D0C - bl StringExpandPlaceholders - movs r0, #2 -_08153CF2: - str r0, [r6, #0x6c] - movs r0, #0 - add sp, #0x88 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08153D04: .4byte gUnknown_2024384 -_08153D08: .4byte gUnknown_2021C7C -_08153D0C: .4byte gUnknown_85FCB83 - thumb_func_end MEScrCmd_givepokemon - - thumb_func_start MEScrCmd_addtrainer -MEScrCmd_addtrainer: @ 0x08153D10 - push {r4, lr} - adds r4, r0, #0 - bl ScriptReadWord - adds r1, r0, #0 - ldr r0, [r4, #0x68] - subs r1, r1, r0 - ldr r0, [r4, #0x64] - adds r1, r1, r0 - ldr r0, _08153D48 - ldr r0, [r0] - ldr r2, _08153D4C - adds r0, r0, r2 - movs r2, #0xbc - bl memcpy - bl ValidateEReaderTrainer - ldr r0, _08153D50 - ldr r1, _08153D54 - bl StringExpandPlaceholders - movs r0, #2 - str r0, [r4, #0x6c] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08153D48: .4byte gUnknown_3005AF0 -_08153D4C: .4byte 0x00000BEC -_08153D50: .4byte gUnknown_2021C7C -_08153D54: .4byte gUnknown_85FCBAA - thumb_func_end MEScrCmd_addtrainer - - thumb_func_start sub_08153D58 -sub_08153D58: @ 0x08153D58 - push {r4, lr} - adds r4, r0, #0 - bl EnableResetRTC - ldr r0, _08153D74 - ldr r1, _08153D78 - bl StringExpandPlaceholders - movs r0, #2 - str r0, [r4, #0x6c] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08153D74: .4byte gUnknown_2021C7C -_08153D78: .4byte gUnknown_85CBF86 - thumb_func_end sub_08153D58 - - thumb_func_start MEScrCmd_checksum -MEScrCmd_checksum: @ 0x08153D7C - push {r4, r5, r6, lr} - adds r6, r0, #0 - bl ScriptReadWord - adds r5, r0, #0 - adds r0, r6, #0 - bl ScriptReadWord - adds r4, r0, #0 - ldr r0, [r6, #0x68] - subs r4, r4, r0 - ldr r0, [r6, #0x64] - adds r4, r4, r0 - adds r0, r6, #0 - bl ScriptReadWord - adds r1, r0, #0 - ldr r0, [r6, #0x68] - subs r1, r1, r0 - ldr r0, [r6, #0x64] - adds r1, r1, r0 - subs r1, r1, r4 - adds r0, r4, #0 - bl CalcByteArraySum - cmp r5, r0 - beq _08153DBA - movs r0, #0 - str r0, [r6, #0x70] - movs r0, #1 - str r0, [r6, #0x6c] -_08153DBA: - movs r0, #1 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MEScrCmd_checksum - - thumb_func_start sub_08153DC4 -sub_08153DC4: @ 0x08153DC4 - push {r4, r5, r6, lr} - adds r6, r0, #0 - bl ScriptReadWord - adds r5, r0, #0 - adds r0, r6, #0 - bl ScriptReadWord - adds r4, r0, #0 - ldr r0, [r6, #0x68] - subs r4, r4, r0 - ldr r0, [r6, #0x64] - adds r4, r4, r0 - adds r0, r6, #0 - bl ScriptReadWord - adds r1, r0, #0 - ldr r0, [r6, #0x68] - subs r1, r1, r0 - ldr r0, [r6, #0x64] - adds r1, r1, r0 - subs r1, r1, r4 - adds r0, r4, #0 - bl CalcCRC16 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r5, r0 - beq _08153E06 - movs r0, #0 - str r0, [r6, #0x70] - movs r0, #1 - str r0, [r6, #0x6c] -_08153E06: - movs r0, #1 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08153DC4 - - thumb_func_start SetUpReflection -SetUpReflection: @ 0x08153E10 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - adds r4, r1, #0 - lsls r5, r2, #0x18 - lsrs r5, r5, #0x18 - movs r0, #0x20 - ldrsh r1, [r4, r0] - movs r0, #0x22 - ldrsh r2, [r4, r0] - adds r0, r4, #0 - movs r3, #0x98 - bl CreateCopySpriteAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _08153EC0 - adds r7, r1, r0 - ldr r0, _08153EC4 - str r0, [r7, #0x1c] - ldrb r1, [r7, #5] - movs r0, #0xc - orrs r1, r0 - strb r1, [r7, #5] - ldr r2, _08153EC8 - lsrs r0, r1, #4 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #4 - movs r2, #0xf - ands r1, r2 - orrs r1, r0 - strb r1, [r7, #5] - movs r1, #0x3f - adds r1, r1, r7 - mov r8, r1 - ldrb r0, [r1] - movs r1, #0x40 - orrs r0, r1 - mov r1, r8 - strb r0, [r1] - ldr r0, _08153ECC - str r0, [r7, #8] - adds r0, r7, #0 - movs r1, #0 - bl StartSpriteAnim - ldr r0, _08153ED0 - str r0, [r7, #0x10] - mov r1, r8 - ldrb r0, [r1] - movs r1, #8 - orrs r0, r1 - mov r1, r8 - strb r0, [r1] - adds r2, r7, #0 - adds r2, #0x42 - ldrb r1, [r2] - movs r0, #0x3f - ands r0, r1 - strb r0, [r2] - ldrh r0, [r4, #0x2e] - strh r0, [r7, #0x2e] - ldrb r0, [r6, #8] - strh r0, [r7, #0x30] - strh r5, [r7, #0x3c] - adds r0, r6, #0 - adds r1, r7, #0 - bl LoadObjectReflectionPalette - cmp r5, #0 - bne _08153EB6 - ldrb r0, [r7, #1] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r7, #1] -_08153EB6: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08153EC0: .4byte gUnknown_20205AC -_08153EC4: .4byte UpdateObjectReflectionSprite -_08153EC8: .4byte gUnknown_846FA18 -_08153ECC: .4byte gUnknown_82BF304 -_08153ED0: .4byte gUnknown_82BF310 - thumb_func_end SetUpReflection - - thumb_func_start GetReflectionVerticalOffset -GetReflectionVerticalOffset: @ 0x08153ED4 - push {lr} - ldrb r0, [r0, #5] - bl GetEventObjectGraphicsInfo - ldrh r0, [r0, #0xa] - subs r0, #2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - pop {r1} - bx r1 - thumb_func_end GetReflectionVerticalOffset - - thumb_func_start LoadObjectReflectionPalette -LoadObjectReflectionPalette: @ 0x08153EE8 - push {r4, r5, lr} - sub sp, #8 - adds r5, r0, #0 - adds r4, r1, #0 - ldr r1, _08153F40 - mov r0, sp - movs r2, #6 - bl memcpy - movs r0, #0 - strh r0, [r4, #0x32] - ldrb r0, [r5, #5] - bl GetEventObjectGraphicsInfo - ldrb r1, [r0, #0xc] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08153F44 - ldrb r0, [r5, #0x1f] - bl MetatileBehavior_GetBridgeType - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _08153F2A - ldrb r0, [r5, #0x1e] - bl MetatileBehavior_GetBridgeType - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _08153F44 -_08153F2A: - subs r0, #1 - lsls r0, r0, #1 - add r0, sp - ldrh r0, [r0] - strh r0, [r4, #0x32] - ldrb r1, [r4, #5] - lsrs r1, r1, #4 - adds r0, r5, #0 - bl LoadObjectHighBridgeReflectionPalette - b _08153F4E - .align 2, 0 -_08153F40: .4byte gUnknown_85ACA40 -_08153F44: - ldrb r1, [r4, #5] - lsrs r1, r1, #4 - adds r0, r5, #0 - bl LoadObjectRegularReflectionPalette -_08153F4E: - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LoadObjectReflectionPalette - - thumb_func_start LoadObjectRegularReflectionPalette -LoadObjectRegularReflectionPalette: @ 0x08153F58 - push {r4, lr} - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - ldrb r0, [r0, #5] - bl GetEventObjectGraphicsInfo - adds r2, r0, #0 - ldrh r1, [r2, #4] - ldr r0, _08153F84 - cmp r1, r0 - beq _08153FAC - ldrb r0, [r2, #0xc] - movs r1, #0xf - ands r1, r0 - cmp r1, #0 - bne _08153F88 - ldrh r0, [r2, #2] - adds r1, r4, #0 - bl LoadPlayerObjectReflectionPalette - b _08153FA6 - .align 2, 0 -_08153F84: .4byte 0x000011FF -_08153F88: - cmp r1, #0xa - bne _08153F96 - ldrh r0, [r2, #2] - adds r1, r4, #0 - bl LoadSpecialObjectReflectionPalette - b _08153FA6 -_08153F96: - adds r0, r4, #0 - bl GetObjectPaletteTag - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r4, #0 - bl PatchObjectPalette -_08153FA6: - adds r0, r4, #0 - bl UpdateSpritePaletteWithWeather -_08153FAC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LoadObjectRegularReflectionPalette - - thumb_func_start LoadObjectHighBridgeReflectionPalette -LoadObjectHighBridgeReflectionPalette: @ 0x08153FB4 - push {r4, lr} - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - ldrb r0, [r0, #5] - bl GetEventObjectGraphicsInfo - adds r2, r0, #0 - ldrh r1, [r2, #4] - ldr r0, _08153FE0 - cmp r1, r0 - beq _08153FD8 - adds r0, r1, #0 - adds r1, r4, #0 - bl PatchObjectPalette - adds r0, r4, #0 - bl UpdateSpritePaletteWithWeather -_08153FD8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08153FE0: .4byte 0x000011FF - thumb_func_end LoadObjectHighBridgeReflectionPalette - - thumb_func_start UpdateObjectReflectionSprite -UpdateObjectReflectionSprite: @ 0x08153FE4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0815402C - adds r7, r0, r1 - ldrb r1, [r7, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08154030 - adds r5, r0, r1 - ldr r0, [r7] - ldr r1, _08154034 - ands r0, r1 - cmp r0, r1 - bne _0815401C - ldrb r1, [r7, #8] - movs r2, #0x30 - ldrsh r0, [r4, r2] - cmp r1, r0 - beq _08154038 -_0815401C: - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - b _08154150 - .align 2, 0 -_0815402C: .4byte gUnknown_2036FF0 -_08154030: .4byte gUnknown_20205AC -_08154034: .4byte 0x00020001 -_08154038: - ldr r1, _0815415C - ldrb r0, [r5, #5] - lsrs r0, r0, #4 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #4 - ldrb r2, [r4, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #5] - ldrb r1, [r5, #1] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r4, #1] - movs r3, #0x3f - adds r0, r3, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #1] - ldrb r0, [r5, #3] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r4, #3] - adds r1, r3, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #3] - ldrb r0, [r5, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - movs r2, #0x10 - orrs r0, r2 - lsls r0, r0, #1 - subs r2, #0x4f - mov sb, r2 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #3] - ldrh r1, [r5, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x16 - ldrh r2, [r4, #4] - ldr r0, _08154160 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, #4] - ldr r0, [r5, #0x18] - str r0, [r4, #0x18] - adds r0, r5, #0 - adds r0, #0x42 - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1a - adds r2, r4, #0 - adds r2, #0x42 - ands r3, r0 - ldrb r1, [r2] - movs r0, #0x40 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2] - movs r0, #0x3e - adds r0, r0, r5 - mov r8, r0 - ldrb r0, [r0] - adds r6, r4, #0 - adds r6, #0x3e - movs r1, #4 - ands r1, r0 - ldrb r2, [r6] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r6] - ldrh r0, [r5, #0x20] - strh r0, [r4, #0x20] - adds r0, r7, #0 - bl GetReflectionVerticalOffset - ldrh r1, [r5, #0x22] - adds r0, r0, r1 - ldrh r1, [r4, #0x32] - adds r1, r1, r0 - strh r1, [r4, #0x22] - adds r0, r5, #0 - adds r0, #0x28 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x28 - strb r1, [r0] - adds r0, r5, #0 - adds r0, #0x29 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x29 - strb r0, [r1] - ldrh r0, [r5, #0x24] - strh r0, [r4, #0x24] - ldrh r0, [r5, #0x26] - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - mov r2, r8 - ldrb r1, [r2] - movs r0, #2 - ands r0, r1 - ldrb r1, [r6] - movs r2, #3 - rsbs r2, r2, #0 - ands r2, r1 - orrs r2, r0 - strb r2, [r6] - ldrb r0, [r7, #3] - lsls r0, r0, #0x1c - cmp r0, #0 - bge _0815412A - movs r0, #4 - orrs r2, r0 - strb r2, [r6] -_0815412A: - movs r1, #0x3c - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08154150 - ldrb r0, [r4, #3] - mov r2, sb - ands r2, r0 - strb r2, [r4, #3] - ldrb r0, [r5, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _08154150 - movs r1, #2 - adds r0, r2, #0 - orrs r0, r1 - strb r0, [r4, #3] -_08154150: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0815415C: .4byte gUnknown_846FA18 -_08154160: .4byte 0xFFFFFC00 - thumb_func_end UpdateObjectReflectionSprite - - thumb_func_start CreateWarpArrowSprite -CreateWarpArrowSprite: @ 0x08154164 - push {r4, lr} - ldr r0, _081541AC - ldr r0, [r0, #0x20] - movs r1, #0 - movs r2, #0 - movs r3, #0x52 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r4, r0, #0 - cmp r0, #0x40 - beq _081541A2 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _081541B0 - adds r1, r1, r0 - ldrb r2, [r1, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - movs r3, #4 - orrs r0, r3 - strb r0, [r1, #5] - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #2 - orrs r0, r2 - orrs r0, r3 - strb r0, [r1] -_081541A2: - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081541AC: .4byte gUnknown_84DDE4C -_081541B0: .4byte gUnknown_20205AC - thumb_func_end CreateWarpArrowSprite - - thumb_func_start SetSpriteInvisible -SetSpriteInvisible: @ 0x081541B4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _081541D0 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - bx lr - .align 2, 0 -_081541D0: .4byte gUnknown_20205AC - thumb_func_end SetSpriteInvisible - - thumb_func_start ShowWarpArrowSprite -ShowWarpArrowSprite: @ 0x081541D4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - lsls r2, r2, #0x10 - lsrs r7, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r6, r3, #0x10 - lsls r0, r5, #4 - adds r0, r0, r5 - lsls r0, r0, #2 - ldr r1, _08154278 - adds r2, r0, r1 - adds r0, r2, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _0815421E - movs r0, #0x2e - ldrsh r1, [r2, r0] - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - cmp r1, r0 - bne _0815421E - movs r0, #0x30 - ldrsh r1, [r2, r0] - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - cmp r1, r0 - beq _0815426A -_0815421E: - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - lsls r1, r6, #0x10 - asrs r1, r1, #0x10 - mov r4, sp - adds r4, #2 - mov r2, sp - adds r3, r4, #0 - bl SetSpritePosToMapCoords - lsls r0, r5, #4 - adds r0, r0, r5 - lsls r0, r0, #2 - ldr r1, _08154278 - adds r2, r0, r1 - mov r0, sp - ldrh r0, [r0] - adds r0, #8 - strh r0, [r2, #0x20] - ldrh r0, [r4] - adds r0, #8 - strh r0, [r2, #0x22] - adds r3, r2, #0 - adds r3, #0x3e - ldrb r1, [r3] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3] - strh r7, [r2, #0x2e] - strh r6, [r2, #0x30] - mov r1, r8 - subs r1, #1 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r2, #0 - bl StartSpriteAnim -_0815426A: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08154278: .4byte gUnknown_20205AC - thumb_func_end ShowWarpArrowSprite - - thumb_func_start FldEff_Shadow -FldEff_Shadow: @ 0x0815427C - push {r4, r5, lr} - ldr r5, _08154308 - ldrb r0, [r5] - ldrb r1, [r5, #4] - ldrb r2, [r5, #8] - bl GetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0815430C - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r0, [r1, #5] - bl GetEventObjectGraphicsInfo - adds r4, r0, #0 - ldr r2, _08154310 - ldr r1, _08154314 - ldrb r0, [r4, #0xc] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - movs r1, #0 - movs r2, #0 - movs r3, #0x94 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x40 - beq _08154300 - ldr r0, _08154318 - lsls r2, r1, #4 - adds r2, r2, r1 - lsls r2, r2, #2 - adds r2, r2, r0 - adds r3, r2, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r1, #2 - orrs r0, r1 - strb r0, [r3] - ldr r0, [r5] - strh r0, [r2, #0x2e] - ldr r0, [r5, #4] - strh r0, [r2, #0x30] - ldr r0, [r5, #8] - strh r0, [r2, #0x32] - ldrh r1, [r4, #0xa] - lsls r1, r1, #0x10 - asrs r1, r1, #0x11 - ldr r3, _0815431C - ldrb r0, [r4, #0xc] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r0, [r0] - subs r1, r1, r0 - strh r1, [r2, #0x34] -_08154300: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08154308: .4byte gUnknown_20388A8 -_0815430C: .4byte gUnknown_2036FF0 -_08154310: .4byte gUnknown_84DDE4C -_08154314: .4byte gUnknown_85ACA46 -_08154318: .4byte gUnknown_20205AC -_0815431C: .4byte gUnknown_85ACA4A - thumb_func_end FldEff_Shadow - - thumb_func_start UpdateShadowFieldEffect -UpdateShadowFieldEffect: @ 0x08154320 - push {r4, r5, lr} - sub sp, #4 - adds r5, r0, #0 - ldrh r0, [r5, #0x2e] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r5, #0x30] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrh r2, [r5, #0x32] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0815434E - adds r0, r5, #0 - movs r1, #3 - bl FieldEffectStop - b _081543D4 -_0815434E: - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _081543DC - adds r4, r0, r1 - ldrb r0, [r4, #4] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _081543E0 - adds r1, r1, r0 - ldrb r0, [r1, #5] - movs r2, #0xc - ands r2, r0 - ldrb r3, [r5, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r5, #5] - ldrh r0, [r1, #0x20] - strh r0, [r5, #0x20] - ldrh r0, [r5, #0x34] - ldrh r1, [r1, #0x22] - adds r0, r0, r1 - strh r0, [r5, #0x22] - ldr r0, [r4] - ldr r1, _081543E4 - ands r0, r1 - cmp r0, r1 - bne _081543CC - ldrb r0, [r4, #0x1e] - bl MetatileBehavior_IsPokeGrass - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081543CC - ldrb r0, [r4, #0x1e] - bl MetatileBehavior_IsSurfableWaterOrUnderwater - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081543CC - ldrb r0, [r4, #0x1f] - bl MetatileBehavior_IsSurfableWaterOrUnderwater - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081543CC - ldrb r0, [r4, #0x1e] - bl MetatileBehavior_IsReflective - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081543CC - ldrb r0, [r4, #0x1f] - bl MetatileBehavior_IsReflective - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081543D4 -_081543CC: - adds r0, r5, #0 - movs r1, #3 - bl FieldEffectStop -_081543D4: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081543DC: .4byte gUnknown_2036FF0 -_081543E0: .4byte gUnknown_20205AC -_081543E4: .4byte 0x00400001 - thumb_func_end UpdateShadowFieldEffect - - thumb_func_start FldEff_TallGrass -FldEff_TallGrass: @ 0x081543E8 - push {r4, r5, lr} - sub sp, #4 - ldr r5, _08154480 - ldrh r1, [r5] - mov r0, sp - strh r1, [r0] - ldrh r0, [r5, #4] - mov r4, sp - adds r4, #2 - strh r0, [r4] - mov r0, sp - adds r1, r4, #0 - movs r2, #8 - movs r3, #8 - bl sub_08092A50 - ldr r0, _08154484 - ldr r0, [r0, #0x10] - mov r1, sp - movs r2, #0 - ldrsh r1, [r1, r2] - movs r3, #0 - ldrsh r2, [r4, r3] - movs r3, #0 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x40 - beq _08154474 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08154488 - adds r3, r0, r1 - adds r2, r3, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #2 - orrs r0, r1 - strb r0, [r2] - movs r0, #3 - ldrb r1, [r5, #0xc] - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r3, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #5] - ldr r0, [r5, #8] - strh r0, [r3, #0x2e] - ldr r0, [r5] - strh r0, [r3, #0x30] - ldr r0, [r5, #4] - strh r0, [r3, #0x32] - ldr r0, [r5, #0x10] - strh r0, [r3, #0x34] - ldr r0, [r5, #0x14] - strh r0, [r3, #0x36] - ldr r0, [r5, #0x18] - strh r0, [r3, #0x38] - ldr r0, [r5, #0x1c] - cmp r0, #0 - beq _08154474 - adds r0, r3, #0 - movs r1, #4 - bl SeekSpriteAnim -_08154474: - movs r0, #0 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08154480: .4byte gUnknown_20388A8 -_08154484: .4byte gUnknown_84DDE4C -_08154488: .4byte gUnknown_20205AC - thumb_func_end FldEff_TallGrass - - thumb_func_start UpdateTallGrassFieldEffect -UpdateTallGrassFieldEffect: @ 0x0815448C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r5, r0, #0 - ldrh r0, [r5, #0x38] - lsrs r4, r0, #8 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r3, _08154538 - ldrb r1, [r3] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081544D8 - ldr r0, _0815453C - ldr r2, [r0] - movs r0, #5 - ldrsb r0, [r2, r0] - cmp r0, r4 - bne _081544BE - movs r0, #4 - ldrsb r0, [r2, r0] - cmp r0, r7 - beq _081544D8 -_081544BE: - ldr r1, [r3, #4] - ldrh r0, [r5, #0x30] - subs r0, r0, r1 - strh r0, [r5, #0x30] - ldr r1, [r3, #8] - ldrh r0, [r5, #0x32] - subs r0, r0, r1 - strh r0, [r5, #0x32] - ldrb r1, [r2, #5] - lsls r1, r1, #8 - ldrb r0, [r2, #4] - orrs r0, r1 - strh r0, [r5, #0x38] -_081544D8: - ldrh r0, [r5, #0x34] - lsrs r1, r0, #8 - mov r8, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldrh r0, [r5, #0x36] - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r2, #0x30 - ldrsh r0, [r5, r2] - movs r2, #0x32 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - mov r0, r8 - adds r1, r4, #0 - adds r2, r7, #0 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0815452C - adds r0, r6, #0 - bl MetatileBehavior_IsTallGrass - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0815452C - movs r1, #0x3c - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _08154540 - adds r0, r5, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08154540 -_0815452C: - adds r0, r5, #0 - movs r1, #4 - bl FieldEffectStop - b _08154584 - .align 2, 0 -_08154538: .4byte gUnknown_2036FD4 -_0815453C: .4byte gUnknown_3005AEC -_08154540: - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08154590 - adds r2, r0, r1 - ldr r0, [r2, #0x10] - ldr r1, [r5, #0x30] - cmp r0, r1 - beq _08154560 - ldr r0, [r2, #0x14] - cmp r0, r1 - beq _08154560 - movs r0, #1 - strh r0, [r5, #0x3c] -_08154560: - movs r6, #0 - adds r0, r5, #0 - adds r0, #0x2b - ldrb r0, [r0] - cmp r0, #0 - bne _0815456E - movs r6, #4 -_0815456E: - adds r0, r5, #0 - movs r1, #0 - bl UpdateEventObjectSpriteVisibility - ldrh r1, [r5, #0x2e] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - adds r2, r6, #0 - bl sub_08156138 -_08154584: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08154590: .4byte gUnknown_2036FF0 - thumb_func_end UpdateTallGrassFieldEffect - - thumb_func_start FldEff_JumpTallGrass -FldEff_JumpTallGrass: @ 0x08154594 - push {r4, lr} - ldr r4, _081545F8 - adds r1, r4, #4 - adds r0, r4, #0 - movs r2, #8 - movs r3, #0xc - bl sub_08092A50 - ldr r0, _081545FC - ldr r0, [r0, #0x28] - movs r2, #0 - ldrsh r1, [r4, r2] - movs r3, #4 - ldrsh r2, [r4, r3] - movs r3, #0 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _081545F0 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r0, _08154600 - adds r2, r2, r0 - adds r3, r2, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r1, #2 - orrs r0, r1 - strb r0, [r3] - movs r0, #3 - ldrb r1, [r4, #0xc] - ands r1, r0 - lsls r1, r1, #2 - ldrb r3, [r2, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #5] - ldr r0, [r4, #8] - strh r0, [r2, #0x2e] - movs r0, #0xc - strh r0, [r2, #0x30] -_081545F0: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081545F8: .4byte gUnknown_20388A8 -_081545FC: .4byte gUnknown_84DDE4C -_08154600: .4byte gUnknown_20205AC - thumb_func_end FldEff_JumpTallGrass - - thumb_func_start FindTallGrassFieldEffectSpriteId -FindTallGrassFieldEffectSpriteId: @ 0x08154604 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r4, [sp, #0x18] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov ip, r0 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - movs r5, #0 - ldr r0, _08154674 - mov r8, r0 - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 -_08154628: - lsls r0, r5, #4 - adds r0, r0, r5 - lsls r0, r0, #2 - mov r1, r8 - adds r2, r0, r1 - adds r0, r2, #0 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _0815467C - ldr r1, [r2, #0x1c] - ldr r0, _08154678 - cmp r1, r0 - bne _0815467C - movs r1, #0x30 - ldrsh r0, [r2, r1] - cmp r3, r0 - bne _0815467C - movs r1, #0x32 - ldrsh r0, [r2, r1] - cmp r4, r0 - bne _0815467C - ldrh r1, [r2, #0x34] - lsrs r0, r1, #8 - cmp ip, r0 - bne _0815467C - movs r0, #0xff - ands r0, r1 - cmp r7, r0 - bne _0815467C - movs r1, #0x36 - ldrsh r0, [r2, r1] - cmp r6, r0 - bne _0815467C - adds r0, r5, #0 - b _08154688 - .align 2, 0 -_08154674: .4byte gUnknown_20205AC -_08154678: .4byte UpdateTallGrassFieldEffect -_0815467C: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0x3f - bls _08154628 - movs r0, #0x40 -_08154688: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end FindTallGrassFieldEffectSpriteId - - thumb_func_start FldEff_LongGrass -FldEff_LongGrass: @ 0x08154694 - push {r4, r5, lr} - sub sp, #4 - ldr r5, _08154730 - ldrh r1, [r5] - mov r0, sp - strh r1, [r0] - ldrh r0, [r5, #4] - mov r4, sp - adds r4, #2 - strh r0, [r4] - mov r0, sp - adds r1, r4, #0 - movs r2, #8 - movs r3, #8 - bl sub_08092A50 - ldr r0, _08154734 - ldr r0, [r0, #0x3c] - mov r1, sp - movs r2, #0 - ldrsh r1, [r1, r2] - movs r3, #0 - ldrsh r2, [r4, r3] - movs r3, #0 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x40 - beq _08154724 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08154738 - adds r4, r0, r1 - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #2 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r5, #8] - bl sub_08096718 - movs r1, #3 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r4, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #5] - ldr r0, [r5, #8] - strh r0, [r4, #0x2e] - ldr r0, [r5] - strh r0, [r4, #0x30] - ldr r0, [r5, #4] - strh r0, [r4, #0x32] - ldr r0, [r5, #0x10] - strh r0, [r4, #0x34] - ldr r0, [r5, #0x14] - strh r0, [r4, #0x36] - ldr r0, [r5, #0x18] - strh r0, [r4, #0x38] - ldr r0, [r5, #0x1c] - cmp r0, #0 - beq _08154724 - adds r0, r4, #0 - movs r1, #6 - bl SeekSpriteAnim -_08154724: - movs r0, #0 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08154730: .4byte gUnknown_20388A8 -_08154734: .4byte gUnknown_84DDE4C -_08154738: .4byte gUnknown_20205AC - thumb_func_end FldEff_LongGrass - - thumb_func_start UpdateLongGrassFieldEffect -UpdateLongGrassFieldEffect: @ 0x0815473C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r5, r0, #0 - ldrh r0, [r5, #0x38] - lsrs r7, r0, #8 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r3, _081547E8 - ldrb r1, [r3] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08154788 - ldr r0, _081547EC - ldr r2, [r0] - movs r0, #5 - ldrsb r0, [r2, r0] - cmp r0, r7 - bne _0815476E - movs r0, #4 - ldrsb r0, [r2, r0] - cmp r0, r6 - beq _08154788 -_0815476E: - ldr r1, [r3, #4] - ldrh r0, [r5, #0x30] - subs r0, r0, r1 - strh r0, [r5, #0x30] - ldr r1, [r3, #8] - ldrh r0, [r5, #0x32] - subs r0, r0, r1 - strh r0, [r5, #0x32] - ldrb r1, [r2, #5] - lsls r1, r1, #8 - ldrb r0, [r2, #4] - orrs r0, r1 - strh r0, [r5, #0x38] -_08154788: - ldrh r0, [r5, #0x34] - lsrs r1, r0, #8 - mov r8, r1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldrh r0, [r5, #0x36] - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r2, #0x30 - ldrsh r0, [r5, r2] - movs r2, #0x32 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - mov r0, r8 - adds r1, r7, #0 - adds r2, r6, #0 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081547DC - adds r0, r4, #0 - bl sub_08088DC0 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081547DC - movs r1, #0x3c - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _081547F0 - adds r0, r5, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _081547F0 -_081547DC: - adds r0, r5, #0 - movs r1, #0x11 - bl FieldEffectStop - b _08154826 - .align 2, 0 -_081547E8: .4byte gUnknown_2036FD4 -_081547EC: .4byte gUnknown_3005AEC -_081547F0: - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08154834 - adds r2, r0, r1 - ldr r0, [r2, #0x10] - ldr r1, [r5, #0x30] - cmp r0, r1 - beq _08154810 - ldr r0, [r2, #0x14] - cmp r0, r1 - beq _08154810 - movs r0, #1 - strh r0, [r5, #0x3c] -_08154810: - adds r0, r5, #0 - movs r1, #0 - bl UpdateEventObjectSpriteVisibility - ldrh r1, [r5, #0x2e] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - movs r2, #0 - bl sub_08156138 -_08154826: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08154834: .4byte gUnknown_2036FF0 - thumb_func_end UpdateLongGrassFieldEffect - - thumb_func_start FldEff_JumpLongGrass -FldEff_JumpLongGrass: @ 0x08154838 - push {r4, lr} - ldr r4, _0815489C - adds r1, r4, #4 - adds r0, r4, #0 - movs r2, #8 - movs r3, #8 - bl sub_08092A50 - ldr r0, _081548A0 - ldr r0, [r0, #0x40] - movs r2, #0 - ldrsh r1, [r4, r2] - movs r3, #4 - ldrsh r2, [r4, r3] - movs r3, #0 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _08154894 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r0, _081548A4 - adds r2, r2, r0 - adds r3, r2, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r1, #2 - orrs r0, r1 - strb r0, [r3] - movs r0, #3 - ldrb r1, [r4, #0xc] - ands r1, r0 - lsls r1, r1, #2 - ldrb r3, [r2, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #5] - ldr r0, [r4, #8] - strh r0, [r2, #0x2e] - movs r0, #0x12 - strh r0, [r2, #0x30] -_08154894: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0815489C: .4byte gUnknown_20388A8 -_081548A0: .4byte gUnknown_84DDE4C -_081548A4: .4byte gUnknown_20205AC - thumb_func_end FldEff_JumpLongGrass - - thumb_func_start FldEff_ShortGrass -FldEff_ShortGrass: @ 0x081548A8 - push {r4, r5, r6, lr} - ldr r6, _0815493C - ldrb r0, [r6] - ldrb r1, [r6, #4] - ldrb r2, [r6, #8] - bl GetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _08154940 - adds r5, r1, r0 - ldr r0, _08154944 - ldr r0, [r0, #0x78] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _08154934 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r4, _08154948 - adds r2, r2, r4 - adds r3, r2, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r1, #2 - orrs r0, r1 - strb r0, [r3] - ldrb r1, [r5, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r0, [r0, #5] - movs r1, #0xc - ands r1, r0 - ldrb r3, [r2, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #5] - ldr r0, [r6] - strh r0, [r2, #0x2e] - ldr r0, [r6, #4] - strh r0, [r2, #0x30] - ldr r0, [r6, #8] - strh r0, [r2, #0x32] - ldrb r1, [r5, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r0, [r0, #0x20] - strh r0, [r2, #0x34] - ldrb r1, [r5, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r0, [r0, #0x22] - strh r0, [r2, #0x36] -_08154934: - movs r0, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0815493C: .4byte gUnknown_20388A8 -_08154940: .4byte gUnknown_2036FF0 -_08154944: .4byte gUnknown_84DDE4C -_08154948: .4byte gUnknown_20205AC - thumb_func_end FldEff_ShortGrass - - thumb_func_start UpdateShortGrassFieldEffect -UpdateShortGrassFieldEffect: @ 0x0815494C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #0x30] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrh r2, [r4, #0x32] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0815498A - ldr r5, _08154994 - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r5 - ldrb r0, [r1, #2] - lsls r0, r0, #0x1d - cmp r0, #0 - blt _08154998 -_0815498A: - adds r0, r4, #0 - movs r1, #0x29 - bl FieldEffectStop - b _08154A2E - .align 2, 0 -_08154994: .4byte gUnknown_2036FF0 -_08154998: - ldrb r0, [r1, #5] - bl GetEventObjectGraphicsInfo - mov r8, r0 - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r1, [r0, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08154A3C - adds r6, r0, r1 - ldrh r5, [r6, #0x22] - ldrh r7, [r6, #0x20] - movs r0, #0x20 - ldrsh r1, [r6, r0] - movs r2, #0x34 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _081549D4 - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x36 - ldrsh r1, [r4, r2] - cmp r0, r1 - beq _081549EE -_081549D4: - strh r7, [r4, #0x34] - strh r5, [r4, #0x36] - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _081549EE - adds r0, r4, #0 - movs r1, #0 - bl StartSpriteAnim -_081549EE: - strh r7, [r4, #0x20] - strh r5, [r4, #0x22] - mov r1, r8 - ldrh r0, [r1, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x11 - subs r0, #8 - strh r0, [r4, #0x26] - adds r0, r6, #0 - adds r0, #0x43 - ldrb r0, [r0] - subs r0, #1 - adds r1, r4, #0 - adds r1, #0x43 - strb r0, [r1] - ldrb r0, [r6, #5] - movs r1, #0xc - ands r1, r0 - ldrb r2, [r4, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #5] - adds r0, r6, #0 - adds r0, #0x3e - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1f - adds r0, r4, #0 - bl UpdateEventObjectSpriteVisibility -_08154A2E: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08154A3C: .4byte gUnknown_20205AC - thumb_func_end UpdateShortGrassFieldEffect - - thumb_func_start FldEff_SandFootprints -FldEff_SandFootprints: @ 0x08154A40 - push {r4, lr} - ldr r4, _08154AA8 - adds r1, r4, #4 - adds r0, r4, #0 - movs r2, #8 - movs r3, #8 - bl sub_08092A50 - ldr r0, _08154AAC - ldr r0, [r0, #0x2c] - movs r2, #0 - ldrsh r1, [r4, r2] - movs r3, #4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, #8] - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x40 - beq _08154A9E - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08154AB0 - adds r0, r0, r1 - adds r3, r0, #0 - adds r3, #0x3e - ldrb r1, [r3] - movs r2, #2 - orrs r1, r2 - strb r1, [r3] - movs r1, #3 - ldrb r2, [r4, #0xc] - ands r2, r1 - lsls r2, r2, #2 - ldrb r3, [r0, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r3 - orrs r1, r2 - strb r1, [r0, #5] - movs r1, #0xd - strh r1, [r0, #0x3c] - ldrb r1, [r4, #0x10] - bl StartSpriteAnim -_08154A9E: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08154AA8: .4byte gUnknown_20388A8 -_08154AAC: .4byte gUnknown_84DDE4C -_08154AB0: .4byte gUnknown_20205AC - thumb_func_end FldEff_SandFootprints - - thumb_func_start FldEff_DeepSandFootprints -FldEff_DeepSandFootprints: @ 0x08154AB4 - push {r4, r5, lr} - ldr r4, _08154B1C - adds r1, r4, #4 - adds r0, r4, #0 - movs r2, #8 - movs r3, #8 - bl sub_08092A50 - ldr r0, _08154B20 - ldr r0, [r0, #0x5c] - movs r2, #0 - ldrsh r1, [r4, r2] - movs r3, #4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, #8] - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r5, r1, #0 - cmp r1, #0x40 - beq _08154B14 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08154B24 - adds r0, r0, r1 - adds r3, r0, #0 - adds r3, #0x3e - ldrb r1, [r3] - movs r2, #2 - orrs r1, r2 - strb r1, [r3] - movs r1, #3 - ldrb r2, [r4, #0xc] - ands r2, r1 - lsls r2, r2, #2 - ldrb r3, [r0, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r3 - orrs r1, r2 - strb r1, [r0, #5] - movs r1, #0x18 - strh r1, [r0, #0x3c] - ldrb r1, [r4, #0x10] - bl StartSpriteAnim -_08154B14: - adds r0, r5, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08154B1C: .4byte gUnknown_20388A8 -_08154B20: .4byte gUnknown_84DDE4C -_08154B24: .4byte gUnknown_20205AC - thumb_func_end FldEff_DeepSandFootprints - - thumb_func_start FldEff_BikeTireTracks -FldEff_BikeTireTracks: @ 0x08154B28 - push {r4, r5, lr} - ldr r4, _08154B90 - adds r1, r4, #4 - adds r0, r4, #0 - movs r2, #8 - movs r3, #8 - bl sub_08092A50 - ldr r0, _08154B94 - ldr r0, [r0, #0x6c] - movs r2, #0 - ldrsh r1, [r4, r2] - movs r3, #4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, #8] - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r5, r1, #0 - cmp r1, #0x40 - beq _08154B88 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08154B98 - adds r0, r0, r1 - adds r3, r0, #0 - adds r3, #0x3e - ldrb r1, [r3] - movs r2, #2 - orrs r1, r2 - strb r1, [r3] - movs r1, #3 - ldrb r2, [r4, #0xc] - ands r2, r1 - lsls r2, r2, #2 - ldrb r3, [r0, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r3 - orrs r1, r2 - strb r1, [r0, #5] - movs r1, #0x23 - strh r1, [r0, #0x3c] - ldrb r1, [r4, #0x10] - bl StartSpriteAnim -_08154B88: - adds r0, r5, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08154B90: .4byte gUnknown_20388A8 -_08154B94: .4byte gUnknown_84DDE4C -_08154B98: .4byte gUnknown_20205AC - thumb_func_end FldEff_BikeTireTracks - - thumb_func_start sub_08154B9C -sub_08154B9C: @ 0x08154B9C - push {lr} - ldr r2, _08154BB4 - movs r3, #0x2e - ldrsh r1, [r0, r3] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_08154BB4: .4byte gUnknown_85ACA54 - thumb_func_end sub_08154B9C - - thumb_func_start FadeFootprintsTireTracks_Step0 -FadeFootprintsTireTracks_Step0: @ 0x08154BB8 - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0x30] - adds r0, #1 - strh r0, [r1, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x28 - ble _08154BCE - movs r0, #1 - strh r0, [r1, #0x2e] -_08154BCE: - adds r0, r1, #0 - movs r1, #0 - bl UpdateEventObjectSpriteVisibility - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end FadeFootprintsTireTracks_Step0 - - thumb_func_start FadeFootprintsTireTracks_Step1 -FadeFootprintsTireTracks_Step1: @ 0x08154BDC - push {r4, lr} - adds r4, r0, #0 - adds r3, r4, #0 - adds r3, #0x3e - ldrb r2, [r3] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - ldrb r1, [r3] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1f - adds r0, r4, #0 - bl UpdateEventObjectSpriteVisibility - movs r1, #0x30 - ldrsh r0, [r4, r1] - cmp r0, #0x38 - ble _08154C20 - ldrh r1, [r4, #0x3c] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl FieldEffectStop -_08154C20: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end FadeFootprintsTireTracks_Step1 - - thumb_func_start FldEff_Splash -FldEff_Splash: @ 0x08154C28 - push {r4, r5, r6, lr} - ldr r6, _08154CBC - ldrb r0, [r6] - ldrb r1, [r6, #4] - ldrb r2, [r6, #8] - bl GetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _08154CC0 - adds r5, r1, r0 - ldr r0, _08154CC4 - ldr r0, [r0, #0x34] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x40 - beq _08154CB2 - ldrb r0, [r5, #5] - bl GetEventObjectGraphicsInfo - lsls r3, r4, #4 - adds r3, r3, r4 - lsls r3, r3, #2 - ldr r4, _08154CC8 - adds r3, r3, r4 - movs r1, #0x3e - adds r1, r1, r3 - mov ip, r1 - ldrb r1, [r1] - movs r2, #2 - orrs r1, r2 - mov r2, ip - strb r1, [r2] - ldrb r2, [r5, #4] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r1, [r1, #5] - movs r2, #0xc - ands r2, r1 - ldrb r4, [r3, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r4 - orrs r1, r2 - strb r1, [r3, #5] - ldr r1, [r6] - strh r1, [r3, #0x2e] - ldr r1, [r6, #4] - strh r1, [r3, #0x30] - ldr r1, [r6, #8] - strh r1, [r3, #0x32] - ldrh r0, [r0, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x11 - subs r0, #4 - strh r0, [r3, #0x26] - movs r0, #0x46 - bl sub_080A306C -_08154CB2: - movs r0, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08154CBC: .4byte gUnknown_20388A8 -_08154CC0: .4byte gUnknown_2036FF0 -_08154CC4: .4byte gUnknown_84DDE4C -_08154CC8: .4byte gUnknown_20205AC - thumb_func_end FldEff_Splash - - thumb_func_start UpdateSplashFieldEffect -UpdateSplashFieldEffect: @ 0x08154CCC - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _08154CFC - ldrh r0, [r4, #0x2e] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #0x30] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrh r2, [r4, #0x32] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08154D06 -_08154CFC: - adds r0, r4, #0 - movs r1, #0xf - bl FieldEffectStop - b _08154D46 -_08154D06: - ldr r3, _08154D50 - ldr r2, _08154D54 - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r0, [r0, #0x20] - strh r0, [r4, #0x20] - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r0, [r0, #0x22] - strh r0, [r4, #0x22] - adds r0, r4, #0 - movs r1, #0 - bl UpdateEventObjectSpriteVisibility -_08154D46: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08154D50: .4byte gUnknown_20205AC -_08154D54: .4byte gUnknown_2036FF0 - thumb_func_end UpdateSplashFieldEffect - - thumb_func_start FldEff_JumpSmallSplash -FldEff_JumpSmallSplash: @ 0x08154D58 - push {r4, lr} - ldr r4, _08154DBC - adds r1, r4, #4 - adds r0, r4, #0 - movs r2, #8 - movs r3, #0xc - bl sub_08092A50 - ldr r0, _08154DC0 - ldr r0, [r0, #0x38] - movs r2, #0 - ldrsh r1, [r4, r2] - movs r3, #4 - ldrsh r2, [r4, r3] - movs r3, #0 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _08154DB4 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r0, _08154DC4 - adds r2, r2, r0 - adds r3, r2, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r1, #2 - orrs r0, r1 - strb r0, [r3] - movs r0, #3 - ldrb r1, [r4, #0xc] - ands r1, r0 - lsls r1, r1, #2 - ldrb r3, [r2, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #5] - ldr r0, [r4, #8] - strh r0, [r2, #0x2e] - movs r0, #0x10 - strh r0, [r2, #0x30] -_08154DB4: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08154DBC: .4byte gUnknown_20388A8 -_08154DC0: .4byte gUnknown_84DDE4C -_08154DC4: .4byte gUnknown_20205AC - thumb_func_end FldEff_JumpSmallSplash - - thumb_func_start FldEff_JumpBigSplash -FldEff_JumpBigSplash: @ 0x08154DC8 - push {r4, lr} - ldr r4, _08154E2C - adds r1, r4, #4 - adds r0, r4, #0 - movs r2, #8 - movs r3, #8 - bl sub_08092A50 - ldr r0, _08154E30 - ldr r0, [r0, #0x30] - movs r2, #0 - ldrsh r1, [r4, r2] - movs r3, #4 - ldrsh r2, [r4, r3] - movs r3, #0 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _08154E24 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r0, _08154E34 - adds r2, r2, r0 - adds r3, r2, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r1, #2 - orrs r0, r1 - strb r0, [r3] - movs r0, #3 - ldrb r1, [r4, #0xc] - ands r1, r0 - lsls r1, r1, #2 - ldrb r3, [r2, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #5] - ldr r0, [r4, #8] - strh r0, [r2, #0x2e] - movs r0, #0xe - strh r0, [r2, #0x30] -_08154E24: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08154E2C: .4byte gUnknown_20388A8 -_08154E30: .4byte gUnknown_84DDE4C -_08154E34: .4byte gUnknown_20205AC - thumb_func_end FldEff_JumpBigSplash - - thumb_func_start FldEff_FeetInFlowingWater -FldEff_FeetInFlowingWater: @ 0x08154E38 - push {r4, r5, r6, r7, lr} - ldr r7, _08154ED8 - ldrb r0, [r7] - ldrb r1, [r7, #4] - ldrb r2, [r7, #8] - bl GetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _08154EDC - adds r6, r1, r0 - ldr r0, _08154EE0 - ldr r0, [r0, #0x34] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0x40 - beq _08154ECE - ldrb r0, [r6, #5] - bl GetEventObjectGraphicsInfo - adds r4, r0, #0 - lsls r0, r5, #4 - adds r0, r0, r5 - lsls r0, r0, #2 - ldr r3, _08154EE4 - adds r0, r0, r3 - ldr r1, _08154EE8 - str r1, [r0, #0x1c] - adds r5, r0, #0 - adds r5, #0x3e - ldrb r1, [r5] - movs r2, #2 - orrs r1, r2 - strb r1, [r5] - ldrb r2, [r6, #4] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrb r1, [r1, #5] - movs r2, #0xc - ands r2, r1 - ldrb r3, [r0, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r3 - orrs r1, r2 - strb r1, [r0, #5] - ldr r1, [r7] - strh r1, [r0, #0x2e] - ldr r1, [r7, #4] - strh r1, [r0, #0x30] - ldr r1, [r7, #8] - strh r1, [r0, #0x32] - ldr r1, _08154EEC - strh r1, [r0, #0x34] - movs r1, #1 - rsbs r1, r1, #0 - strh r1, [r0, #0x36] - ldrh r1, [r4, #0xa] - lsls r1, r1, #0x10 - asrs r1, r1, #0x11 - subs r1, #4 - strh r1, [r0, #0x26] - movs r1, #1 - bl StartSpriteAnim -_08154ECE: - movs r0, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08154ED8: .4byte gUnknown_20388A8 -_08154EDC: .4byte gUnknown_2036FF0 -_08154EE0: .4byte gUnknown_84DDE4C -_08154EE4: .4byte gUnknown_20205AC -_08154EE8: .4byte UpdateFeetInFlowingWaterFieldEffect -_08154EEC: .4byte 0x0000FFFF - thumb_func_end FldEff_FeetInFlowingWater - - thumb_func_start UpdateFeetInFlowingWaterFieldEffect -UpdateFeetInFlowingWaterFieldEffect: @ 0x08154EF0 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #0x30] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrh r2, [r4, #0x32] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08154F2A - ldr r2, _08154F34 - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r5, r0, r2 - ldrb r0, [r5, #2] - lsls r0, r0, #0x1c - cmp r0, #0 - blt _08154F38 -_08154F2A: - adds r0, r4, #0 - movs r1, #0x22 - bl FieldEffectStop - b _08154F82 - .align 2, 0 -_08154F34: .4byte gUnknown_2036FF0 -_08154F38: - ldrb r1, [r5, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08154F8C - adds r0, r0, r1 - ldrh r1, [r0, #0x20] - strh r1, [r4, #0x20] - ldrh r1, [r0, #0x22] - strh r1, [r4, #0x22] - adds r0, #0x43 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x43 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0 - bl UpdateEventObjectSpriteVisibility - ldr r1, [r5, #0x10] - ldr r0, [r4, #0x34] - cmp r1, r0 - beq _08154F82 - ldrh r0, [r5, #0x10] - strh r0, [r4, #0x34] - ldrh r0, [r5, #0x12] - strh r0, [r4, #0x36] - adds r0, r4, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _08154F82 - movs r0, #0x46 - bl sub_080A306C -_08154F82: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08154F8C: .4byte gUnknown_20205AC - thumb_func_end UpdateFeetInFlowingWaterFieldEffect - - thumb_func_start FldEff_Ripple -FldEff_Ripple: @ 0x08154F90 - push {r4, lr} - ldr r0, _08154FE4 - ldr r0, [r0, #0x14] - ldr r4, _08154FE8 - movs r2, #0 - ldrsh r1, [r4, r2] - movs r3, #4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, #8] - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _08154FDC - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r0, _08154FEC - adds r2, r2, r0 - adds r3, r2, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r1, #2 - orrs r0, r1 - strb r0, [r3] - movs r0, #3 - ldrb r1, [r4, #0xc] - ands r1, r0 - lsls r1, r1, #2 - ldrb r3, [r2, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #5] - movs r0, #5 - strh r0, [r2, #0x2e] -_08154FDC: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08154FE4: .4byte gUnknown_84DDE4C -_08154FE8: .4byte gUnknown_20388A8 -_08154FEC: .4byte gUnknown_20205AC - thumb_func_end FldEff_Ripple - - thumb_func_start FldEff_HotSpringsWater -FldEff_HotSpringsWater: @ 0x08154FF0 - push {r4, r5, r6, lr} - ldr r6, _08155084 - ldrb r0, [r6] - ldrb r1, [r6, #4] - ldrb r2, [r6, #8] - bl GetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _08155088 - adds r5, r1, r0 - ldr r0, _0815508C - ldr r0, [r0, #0x7c] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _0815507C - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r4, _08155090 - adds r2, r2, r4 - adds r3, r2, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r1, #2 - orrs r0, r1 - strb r0, [r3] - ldrb r1, [r5, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r0, [r0, #5] - movs r1, #0xc - ands r1, r0 - ldrb r3, [r2, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #5] - ldr r0, [r6] - strh r0, [r2, #0x2e] - ldr r0, [r6, #4] - strh r0, [r2, #0x30] - ldr r0, [r6, #8] - strh r0, [r2, #0x32] - ldrb r1, [r5, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r0, [r0, #0x20] - strh r0, [r2, #0x34] - ldrb r1, [r5, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r0, [r0, #0x22] - strh r0, [r2, #0x36] -_0815507C: - movs r0, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08155084: .4byte gUnknown_20388A8 -_08155088: .4byte gUnknown_2036FF0 -_0815508C: .4byte gUnknown_84DDE4C -_08155090: .4byte gUnknown_20205AC - thumb_func_end FldEff_HotSpringsWater - - thumb_func_start UpdateHotSpringsWaterFieldEffect -UpdateHotSpringsWaterFieldEffect: @ 0x08155094 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #0x30] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrh r2, [r4, #0x32] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081550CE - ldr r5, _081550D8 - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r5 - ldrb r0, [r1, #2] - lsls r0, r0, #0x1a - cmp r0, #0 - blt _081550DC -_081550CE: - adds r0, r4, #0 - movs r1, #0x2a - bl FieldEffectStop - b _08155120 - .align 2, 0 -_081550D8: .4byte gUnknown_2036FF0 -_081550DC: - ldrb r0, [r1, #5] - bl GetEventObjectGraphicsInfo - mov r1, sp - ldrb r2, [r1] - lsls r1, r2, #3 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrb r2, [r1, #4] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - ldr r2, _08155128 - adds r1, r1, r2 - ldrh r2, [r1, #0x20] - strh r2, [r4, #0x20] - ldrh r0, [r0, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x11 - ldrh r2, [r1, #0x22] - adds r0, r0, r2 - subs r0, #8 - strh r0, [r4, #0x22] - adds r1, #0x43 - ldrb r0, [r1] - subs r0, #1 - adds r1, r4, #0 - adds r1, #0x43 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0 - bl UpdateEventObjectSpriteVisibility -_08155120: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08155128: .4byte gUnknown_20205AC - thumb_func_end UpdateHotSpringsWaterFieldEffect - - thumb_func_start FldEff_Unknown19 -FldEff_Unknown19: @ 0x0815512C - push {r4, lr} - ldr r4, _0815518C - adds r1, r4, #4 - adds r0, r4, #0 - movs r2, #8 - movs r3, #8 - bl sub_08092A50 - ldr r0, _08155190 - ldr r0, [r0, #0x44] - movs r2, #0 - ldrsh r1, [r4, r2] - movs r3, #4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, #8] - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _08155184 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r0, _08155194 - adds r2, r2, r0 - adds r3, r2, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r1, #2 - orrs r0, r1 - strb r0, [r3] - movs r0, #3 - ldrb r1, [r4, #0xc] - ands r1, r0 - lsls r1, r1, #2 - ldrb r3, [r2, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #5] - movs r0, #0x13 - strh r0, [r2, #0x2e] -_08155184: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0815518C: .4byte gUnknown_20388A8 -_08155190: .4byte gUnknown_84DDE4C -_08155194: .4byte gUnknown_20205AC - thumb_func_end FldEff_Unknown19 - - thumb_func_start FldEff_Unknown20 -FldEff_Unknown20: @ 0x08155198 - push {r4, lr} - ldr r4, _081551F8 - adds r1, r4, #4 - adds r0, r4, #0 - movs r2, #8 - movs r3, #8 - bl sub_08092A50 - ldr r0, _081551FC - ldr r0, [r0, #0x48] - movs r2, #0 - ldrsh r1, [r4, r2] - movs r3, #4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, #8] - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _081551F0 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r0, _08155200 - adds r2, r2, r0 - adds r3, r2, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r1, #2 - orrs r0, r1 - strb r0, [r3] - movs r0, #3 - ldrb r1, [r4, #0xc] - ands r1, r0 - lsls r1, r1, #2 - ldrb r3, [r2, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #5] - movs r0, #0x14 - strh r0, [r2, #0x2e] -_081551F0: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081551F8: .4byte gUnknown_20388A8 -_081551FC: .4byte gUnknown_84DDE4C -_08155200: .4byte gUnknown_20205AC - thumb_func_end FldEff_Unknown20 - - thumb_func_start FldEff_Unknown21 -FldEff_Unknown21: @ 0x08155204 - push {r4, lr} - ldr r4, _08155264 - adds r1, r4, #4 - adds r0, r4, #0 - movs r2, #8 - movs r3, #8 - bl sub_08092A50 - ldr r0, _08155268 - ldr r0, [r0, #0x4c] - movs r2, #0 - ldrsh r1, [r4, r2] - movs r3, #4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, #8] - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _0815525C - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r0, _0815526C - adds r2, r2, r0 - adds r3, r2, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r1, #2 - orrs r0, r1 - strb r0, [r3] - movs r0, #3 - ldrb r1, [r4, #0xc] - ands r1, r0 - lsls r1, r1, #2 - ldrb r3, [r2, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #5] - movs r0, #0x15 - strh r0, [r2, #0x2e] -_0815525C: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08155264: .4byte gUnknown_20388A8 -_08155268: .4byte gUnknown_84DDE4C -_0815526C: .4byte gUnknown_20205AC - thumb_func_end FldEff_Unknown21 - - thumb_func_start FldEff_Unknown22 -FldEff_Unknown22: @ 0x08155270 - push {r4, lr} - ldr r4, _081552D0 - adds r1, r4, #4 - adds r0, r4, #0 - movs r2, #8 - movs r3, #8 - bl sub_08092A50 - ldr r0, _081552D4 - ldr r0, [r0, #0x50] - movs r2, #0 - ldrsh r1, [r4, r2] - movs r3, #4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, #8] - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _081552C8 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r0, _081552D8 - adds r2, r2, r0 - adds r3, r2, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r1, #2 - orrs r0, r1 - strb r0, [r3] - movs r0, #3 - ldrb r1, [r4, #0xc] - ands r1, r0 - lsls r1, r1, #2 - ldrb r3, [r2, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #5] - movs r0, #0x16 - strh r0, [r2, #0x2e] -_081552C8: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081552D0: .4byte gUnknown_20388A8 -_081552D4: .4byte gUnknown_84DDE4C -_081552D8: .4byte gUnknown_20205AC - thumb_func_end FldEff_Unknown22 - - thumb_func_start StartAshFieldEffect -StartAshFieldEffect: @ 0x081552DC - push {r4, lr} - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldr r4, _0815530C - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - str r0, [r4] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - str r1, [r4, #4] - movs r0, #0x52 - str r0, [r4, #8] - movs r0, #1 - str r0, [r4, #0xc] - str r2, [r4, #0x10] - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - str r3, [r4, #0x14] - movs r0, #7 - bl FieldEffectStart - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815530C: .4byte gUnknown_20388A8 - thumb_func_end StartAshFieldEffect - - thumb_func_start FldEff_Ash -FldEff_Ash: @ 0x08155310 - push {r4, r5, lr} - sub sp, #4 - ldr r5, _08155390 - ldrh r1, [r5] - mov r0, sp - strh r1, [r0] - ldrh r0, [r5, #4] - mov r4, sp - adds r4, #2 - strh r0, [r4] - mov r0, sp - adds r1, r4, #0 - movs r2, #8 - movs r3, #8 - bl sub_08092A50 - ldr r0, _08155394 - ldr r0, [r0, #0x18] - mov r1, sp - movs r2, #0 - ldrsh r1, [r1, r2] - movs r3, #0 - ldrsh r2, [r4, r3] - ldrb r3, [r5, #8] - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _08155386 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r0, _08155398 - adds r2, r2, r0 - adds r3, r2, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r1, #2 - orrs r0, r1 - strb r0, [r3] - movs r0, #3 - ldrb r1, [r5, #0xc] - ands r1, r0 - lsls r1, r1, #2 - ldrb r3, [r2, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #5] - ldr r0, [r5] - strh r0, [r2, #0x30] - ldr r0, [r5, #4] - strh r0, [r2, #0x32] - ldr r0, [r5, #0x10] - strh r0, [r2, #0x34] - ldr r0, [r5, #0x14] - strh r0, [r2, #0x36] -_08155386: - movs r0, #0 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08155390: .4byte gUnknown_20388A8 -_08155394: .4byte gUnknown_84DDE4C -_08155398: .4byte gUnknown_20205AC - thumb_func_end FldEff_Ash - - thumb_func_start CallBattlePikeFunction -CallBattlePikeFunction: @ 0x0815539C - push {lr} - ldr r2, _081553B4 - movs r3, #0x2e - ldrsh r1, [r0, r3] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_081553B4: .4byte gUnknown_85ACA5C - thumb_func_end CallBattlePikeFunction - - thumb_func_start UpdateAshFieldEffect_Step0 -UpdateAshFieldEffect_Step0: @ 0x081553B8 - push {lr} - adds r3, r0, #0 - adds r2, r3, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - subs r2, #0x12 - ldrb r0, [r2] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r3, #0x36] - subs r0, #1 - strh r0, [r3, #0x36] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _081553E2 - movs r0, #1 - strh r0, [r3, #0x2e] -_081553E2: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end UpdateAshFieldEffect_Step0 - - thumb_func_start UpdateAshFieldEffect_Step1 -UpdateAshFieldEffect_Step1: @ 0x081553E8 - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - subs r2, #0x12 - ldrb r1, [r2] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - movs r1, #0x30 - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - ldrh r2, [r4, #0x34] - bl MapGridSetMetatileIdAt - movs r1, #0x30 - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - bl CurrentMapDrawMetatileAt - ldr r2, _08155440 - ldr r0, _08155444 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - movs r0, #2 - strh r0, [r4, #0x2e] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08155440: .4byte gUnknown_2036FF0 -_08155444: .4byte gUnknown_2037230 - thumb_func_end UpdateAshFieldEffect_Step1 - - thumb_func_start UpdateAshFieldEffect_Step2 -UpdateAshFieldEffect_Step2: @ 0x08155448 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl UpdateEventObjectSpriteVisibility - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08155468 - adds r0, r4, #0 - movs r1, #7 - bl FieldEffectStop -_08155468: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end UpdateAshFieldEffect_Step2 - - thumb_func_start FldEff_SurfBlob -FldEff_SurfBlob: @ 0x08155470 - push {r4, r5, lr} - ldr r4, _081554D8 - adds r1, r4, #4 - adds r0, r4, #0 - movs r2, #8 - movs r3, #8 - bl sub_08092A50 - ldr r0, _081554DC - ldr r0, [r0, #0x1c] - movs r2, #0 - ldrsh r1, [r4, r2] - movs r3, #4 - ldrsh r2, [r4, r3] - movs r3, #0x96 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - cmp r0, #0x40 - beq _081554CA - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _081554E0 - adds r1, r1, r0 - adds r3, r1, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r2, #2 - orrs r0, r2 - strb r0, [r3] - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - strb r0, [r1, #5] - ldr r0, [r4, #8] - strh r0, [r1, #0x32] - ldr r0, _081554E4 - strh r0, [r1, #0x34] - movs r0, #1 - rsbs r0, r0, #0 - strh r0, [r1, #0x3a] - strh r0, [r1, #0x3c] -_081554CA: - movs r0, #8 - bl FieldEffectActiveListRemove - adds r0, r5, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081554D8: .4byte gUnknown_20388A8 -_081554DC: .4byte gUnknown_84DDE4C -_081554E0: .4byte gUnknown_20205AC -_081554E4: .4byte 0x0000FFFF - thumb_func_end FldEff_SurfBlob - - thumb_func_start sub_081554E8 -sub_081554E8: @ 0x081554E8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - ldr r3, _08155510 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r3 - ldrh r0, [r2, #0x2e] - movs r3, #0x10 - rsbs r3, r3, #0 - ands r3, r0 - movs r0, #0xf0 - lsls r0, r0, #0x14 - ands r0, r1 - lsrs r0, r0, #0x18 - orrs r0, r3 - strh r0, [r2, #0x2e] - bx lr - .align 2, 0 -_08155510: .4byte gUnknown_20205AC - thumb_func_end sub_081554E8 - - thumb_func_start sub_08155514 -sub_08155514: @ 0x08155514 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - ldr r3, _0815553C - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r3 - ldrh r0, [r2, #0x2e] - movs r3, #0xf1 - rsbs r3, r3, #0 - ands r3, r0 - movs r0, #0xf0 - lsls r0, r0, #0x14 - ands r0, r1 - lsrs r0, r0, #0x14 - orrs r3, r0 - strh r3, [r2, #0x2e] - bx lr - .align 2, 0 -_0815553C: .4byte gUnknown_20205AC - thumb_func_end sub_08155514 - - thumb_func_start sub_08155540 -sub_08155540: @ 0x08155540 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - ldr r4, _0815556C - lsls r3, r0, #4 - adds r3, r3, r0 - lsls r3, r3, #2 - adds r3, r3, r4 - ldrh r0, [r3, #0x2e] - ldr r4, _08155570 - ands r4, r0 - movs r0, #0xf0 - lsls r0, r0, #0x14 - ands r0, r1 - lsrs r0, r0, #0x10 - orrs r4, r0 - strh r4, [r3, #0x2e] - strh r2, [r3, #0x30] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815556C: .4byte gUnknown_20205AC -_08155570: .4byte 0xFFFFF0FF - thumb_func_end sub_08155540 - - thumb_func_start sub_08155574 -sub_08155574: @ 0x08155574 - ldrh r1, [r0, #0x2e] - movs r0, #0xf - ands r0, r1 - bx lr - thumb_func_end sub_08155574 - - thumb_func_start sub_0815557C -sub_0815557C: @ 0x0815557C - ldrh r1, [r0, #0x2e] - movs r0, #0xf0 - ands r0, r1 - lsrs r0, r0, #4 - bx lr - .align 2, 0 - thumb_func_end sub_0815557C - - thumb_func_start sub_08155588 -sub_08155588: @ 0x08155588 - ldrh r1, [r0, #0x2e] - movs r0, #0xf0 - lsls r0, r0, #4 - ands r0, r1 - lsrs r0, r0, #8 - bx lr - thumb_func_end sub_08155588 - - thumb_func_start UpdateSurfBlobFieldEffect -UpdateSurfBlobFieldEffect: @ 0x08155594 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r1, #0x32 - ldrsh r0, [r6, r1] - lsls r4, r0, #3 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _081555E4 - adds r4, r4, r0 - ldrb r0, [r4, #4] - lsls r5, r0, #4 - adds r5, r5, r0 - lsls r5, r5, #2 - ldr r0, _081555E8 - adds r5, r5, r0 - adds r0, r4, #0 - adds r1, r6, #0 - bl SynchroniseSurfAnim - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08155624 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl CreateBobbingEffect - ldrb r0, [r5, #5] - movs r1, #0xc - ands r1, r0 - ldrb r2, [r6, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r6, #5] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081555E4: .4byte gUnknown_2036FF0 -_081555E8: .4byte gUnknown_20205AC - thumb_func_end UpdateSurfBlobFieldEffect - - thumb_func_start SynchroniseSurfAnim -SynchroniseSurfAnim: @ 0x081555EC - push {r4, r5, lr} - sub sp, #0xc - adds r5, r0, #0 - adds r4, r1, #0 - ldr r1, _08155620 - mov r0, sp - movs r2, #9 - bl memcpy - adds r0, r4, #0 - bl sub_0815557C - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08155618 - ldrb r0, [r5, #0x18] - lsrs r0, r0, #4 - add r0, sp - ldrb r1, [r0] - adds r0, r4, #0 - bl StartSpriteAnimIfDifferent -_08155618: - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08155620: .4byte gUnknown_85ACA68 - thumb_func_end SynchroniseSurfAnim - - thumb_func_start sub_08155624 -sub_08155624: @ 0x08155624 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r4, r1, #0 - ldrh r2, [r0, #0x10] - mov r1, sp - strh r2, [r1] - ldrh r1, [r0, #0x12] - mov r0, sp - adds r0, #2 - strh r1, [r0] - movs r2, #0x26 - ldrsh r3, [r4, r2] - mov r8, r0 - cmp r3, #0 - bne _081556AC - mov r0, sp - movs r5, #0 - ldrsh r2, [r0, r5] - movs r5, #0x3a - ldrsh r0, [r4, r5] - cmp r2, r0 - bne _08155660 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - movs r5, #0x3c - ldrsh r1, [r4, r5] - cmp r0, r1 - beq _081556AC -_08155660: - strh r3, [r4, #0x38] - strh r2, [r4, #0x3a] - mov r1, r8 - movs r2, #0 - ldrsh r0, [r1, r2] - strh r0, [r4, #0x3c] - movs r5, #1 - mov r7, r8 - mov r6, sp -_08155672: - adds r0, r5, #0 - mov r1, sp - adds r2, r7, #0 - bl MoveCoords - movs r1, #0 - ldrsh r0, [r6, r1] - movs r2, #0 - ldrsh r1, [r7, r2] - bl MapGridGetZCoordAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bne _08155698 - ldrh r0, [r4, #0x38] - adds r0, #1 - strh r0, [r4, #0x38] - b _081556AC -_08155698: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldrh r0, [r4, #0x3a] - strh r0, [r6] - ldrh r0, [r4, #0x3c] - mov r1, r8 - strh r0, [r1] - cmp r5, #4 - bls _08155672 -_081556AC: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08155624 - - thumb_func_start CreateBobbingEffect -CreateBobbingEffect: @ 0x081556B8 - push {r4, r5, lr} - sub sp, #4 - adds r5, r1, #0 - adds r4, r2, #0 - ldr r1, _0815571C - mov r0, sp - movs r2, #4 - bl memcpy - adds r0, r4, #0 - bl sub_08155574 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r2, r0, #0 - cmp r2, #0 - beq _08155732 - ldrh r1, [r4, #0x36] - adds r1, #1 - strh r1, [r4, #0x36] - movs r3, #0x38 - ldrsh r0, [r4, r3] - lsls r0, r0, #1 - add r0, sp - ldrh r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _081556F8 - ldrh r0, [r4, #0x34] - ldrh r1, [r4, #0x26] - adds r0, r0, r1 - strh r0, [r4, #0x26] -_081556F8: - ldrh r1, [r4, #0x36] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _08155708 - ldrh r0, [r4, #0x34] - rsbs r0, r0, #0 - strh r0, [r4, #0x34] -_08155708: - cmp r2, #2 - beq _08155732 - adds r0, r4, #0 - bl sub_08155588 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08155720 - ldrh r0, [r4, #0x26] - b _08155726 - .align 2, 0 -_0815571C: .4byte gUnknown_85ACA72 -_08155720: - ldrh r0, [r4, #0x26] - ldrh r3, [r4, #0x30] - adds r0, r0, r3 -_08155726: - strh r0, [r5, #0x26] - ldrh r0, [r5, #0x20] - strh r0, [r4, #0x20] - ldrh r0, [r5, #0x22] - adds r0, #8 - strh r0, [r4, #0x22] -_08155732: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CreateBobbingEffect - - thumb_func_start sub_0815573C -sub_0815573C: @ 0x0815573C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _08155780 - movs r1, #0 - movs r2, #0 - movs r3, #0xff - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r1, _08155784 - adds r2, r2, r1 - ldr r1, _08155788 - str r1, [r2, #0x1c] - movs r1, #0x3e - adds r1, r1, r2 - mov ip, r1 - ldrb r1, [r1] - movs r3, #4 - orrs r1, r3 - mov r3, ip - strb r1, [r3] - strh r4, [r2, #0x2e] - movs r1, #1 - strh r1, [r2, #0x30] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08155780: .4byte gUnknown_82BF314 -_08155784: .4byte gUnknown_20205AC -_08155788: .4byte sub_0815578C - thumb_func_end sub_0815573C - - thumb_func_start sub_0815578C -sub_0815578C: @ 0x0815578C - push {lr} - adds r2, r0, #0 - movs r0, #0x2e - ldrsh r1, [r2, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _081557C8 - adds r3, r0, r1 - ldrh r1, [r2, #0x32] - adds r0, r1, #1 - strh r0, [r2, #0x32] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _081557B4 - ldrh r0, [r2, #0x30] - ldrh r1, [r3, #0x26] - adds r0, r0, r1 - strh r0, [r3, #0x26] -_081557B4: - ldrh r1, [r2, #0x32] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _081557C4 - ldrh r0, [r2, #0x30] - rsbs r0, r0, #0 - strh r0, [r2, #0x30] -_081557C4: - pop {r0} - bx r0 - .align 2, 0 -_081557C8: .4byte gUnknown_20205AC - thumb_func_end sub_0815578C - - thumb_func_start FldEff_Dust -FldEff_Dust: @ 0x081557CC - push {r4, lr} - ldr r4, _08155830 - adds r1, r4, #4 - adds r0, r4, #0 - movs r2, #8 - movs r3, #0xc - bl sub_08092A50 - ldr r0, _08155834 - ldr r0, [r0, #0x24] - movs r2, #0 - ldrsh r1, [r4, r2] - movs r3, #4 - ldrsh r2, [r4, r3] - movs r3, #0 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _08155828 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r0, _08155838 - adds r2, r2, r0 - adds r3, r2, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r1, #2 - orrs r0, r1 - strb r0, [r3] - movs r0, #3 - ldrb r1, [r4, #0xc] - ands r1, r0 - lsls r1, r1, #2 - ldrb r3, [r2, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #5] - ldr r0, [r4, #8] - strh r0, [r2, #0x2e] - movs r0, #0xa - strh r0, [r2, #0x30] -_08155828: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08155830: .4byte gUnknown_20388A8 -_08155834: .4byte gUnknown_84DDE4C -_08155838: .4byte gUnknown_20205AC - thumb_func_end FldEff_Dust - - thumb_func_start FldEff_SandPile -FldEff_SandPile: @ 0x0815583C - push {r4, r5, r6, r7, lr} - ldr r7, _081558E8 - ldrb r0, [r7] - ldrb r1, [r7, #4] - ldrb r2, [r7, #8] - bl GetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _081558EC - adds r6, r1, r0 - ldr r0, _081558F0 - ldr r0, [r0, #0x74] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x40 - beq _081558E0 - ldrb r0, [r6, #5] - bl GetEventObjectGraphicsInfo - adds r5, r0, #0 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - ldr r4, _081558F4 - adds r0, r0, r4 - adds r3, r0, #0 - adds r3, #0x3e - ldrb r1, [r3] - movs r2, #2 - orrs r1, r2 - strb r1, [r3] - ldrb r2, [r6, #4] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r1, [r1, #5] - movs r2, #0xc - ands r2, r1 - ldrb r3, [r0, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r3 - orrs r1, r2 - strb r1, [r0, #5] - ldr r1, [r7] - strh r1, [r0, #0x2e] - ldr r1, [r7, #4] - strh r1, [r0, #0x30] - ldr r1, [r7, #8] - strh r1, [r0, #0x32] - ldrb r2, [r6, #4] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrh r1, [r1, #0x20] - strh r1, [r0, #0x34] - ldrb r2, [r6, #4] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrh r1, [r1, #0x22] - strh r1, [r0, #0x36] - ldrh r1, [r5, #0xa] - lsls r1, r1, #0x10 - asrs r1, r1, #0x11 - subs r1, #2 - strh r1, [r0, #0x26] - movs r1, #2 - bl SeekSpriteAnim -_081558E0: - movs r0, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081558E8: .4byte gUnknown_20388A8 -_081558EC: .4byte gUnknown_2036FF0 -_081558F0: .4byte gUnknown_84DDE4C -_081558F4: .4byte gUnknown_20205AC - thumb_func_end FldEff_SandPile - - thumb_func_start UpdateSandPileFieldEffect -UpdateSandPileFieldEffect: @ 0x081558F8 - push {r4, r5, r6, lr} - sub sp, #4 - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #0x30] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrh r2, [r4, #0x32] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08155932 - ldr r2, _0815593C - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r2 - ldrb r0, [r1, #2] - lsls r0, r0, #0x1b - cmp r0, #0 - blt _08155940 -_08155932: - adds r0, r4, #0 - movs r1, #0x27 - bl FieldEffectStop - b _081559B2 - .align 2, 0 -_0815593C: .4byte gUnknown_2036FF0 -_08155940: - ldr r2, _081559BC - ldrb r1, [r1, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r5, [r0, #0x22] - ldrh r6, [r0, #0x20] - movs r2, #0x20 - ldrsh r1, [r0, r2] - movs r2, #0x34 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _08155968 - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x36 - ldrsh r1, [r4, r2] - cmp r0, r1 - beq _08155982 -_08155968: - strh r6, [r4, #0x34] - strh r5, [r4, #0x36] - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08155982 - adds r0, r4, #0 - movs r1, #0 - bl StartSpriteAnim -_08155982: - strh r6, [r4, #0x20] - strh r5, [r4, #0x22] - ldr r3, _081559BC - ldr r2, _081559C0 - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x43 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x43 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0 - bl UpdateEventObjectSpriteVisibility -_081559B2: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081559BC: .4byte gUnknown_20205AC -_081559C0: .4byte gUnknown_2036FF0 - thumb_func_end UpdateSandPileFieldEffect - - thumb_func_start FldEff_Bubbles -FldEff_Bubbles: @ 0x081559C4 - push {r4, lr} - ldr r4, _08155A1C - adds r1, r4, #4 - adds r0, r4, #0 - movs r2, #8 - movs r3, #0 - bl sub_08092A50 - ldr r0, _08155A20 - adds r0, #0x88 - ldr r0, [r0] - movs r2, #0 - ldrsh r1, [r4, r2] - movs r3, #4 - ldrsh r2, [r4, r3] - movs r3, #0x52 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _08155A14 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _08155A24 - adds r1, r1, r0 - adds r3, r1, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r2, #2 - orrs r0, r2 - strb r0, [r3] - ldrb r2, [r1, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - movs r2, #4 - orrs r0, r2 - strb r0, [r1, #5] -_08155A14: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08155A1C: .4byte gUnknown_20388A8 -_08155A20: .4byte gUnknown_84DDE4C -_08155A24: .4byte gUnknown_20205AC - thumb_func_end FldEff_Bubbles - - thumb_func_start UpdateBubblesFieldEffect -UpdateBubblesFieldEffect: @ 0x08155A28 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - adds r0, #0x80 - movs r1, #0x80 - lsls r1, r1, #1 - ands r0, r1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x22] - subs r1, r1, r0 - strh r1, [r4, #0x22] - adds r0, r4, #0 - movs r1, #0 - bl UpdateEventObjectSpriteVisibility - ldrh r1, [r4, #0x3e] - ldr r0, _08155A64 - ands r0, r1 - cmp r0, #0 - beq _08155A5C - adds r0, r4, #0 - movs r1, #0x35 - bl FieldEffectStop -_08155A5C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08155A64: .4byte 0x00001004 - thumb_func_end UpdateBubblesFieldEffect - - thumb_func_start FldEff_BerryTreeGrowthSparkle -FldEff_BerryTreeGrowthSparkle: @ 0x08155A68 - push {r4, lr} - ldr r4, _08155AD0 - adds r1, r4, #4 - adds r0, r4, #0 - movs r2, #8 - movs r3, #4 - bl sub_08092A50 - ldr r0, _08155AD4 - ldr r0, [r0, #0x58] - movs r2, #0 - ldrsh r1, [r4, r2] - movs r3, #4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, #8] - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _08155AC8 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r0, _08155AD8 - adds r2, r2, r0 - adds r3, r2, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r1, #2 - orrs r0, r1 - strb r0, [r3] - movs r0, #3 - ldrb r1, [r4, #0xc] - ands r1, r0 - lsls r1, r1, #2 - ldrb r3, [r2, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - movs r1, #0xf - ands r0, r1 - movs r1, #0x50 - orrs r0, r1 - strb r0, [r2, #5] - movs r0, #0x17 - strh r0, [r2, #0x2e] -_08155AC8: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08155AD0: .4byte gUnknown_20388A8 -_08155AD4: .4byte gUnknown_84DDE4C -_08155AD8: .4byte gUnknown_20205AC - thumb_func_end FldEff_BerryTreeGrowthSparkle - - thumb_func_start ShowTreeDisguiseFieldEffect -ShowTreeDisguiseFieldEffect: @ 0x08155ADC - push {lr} - movs r0, #0x1c - movs r1, #0x18 - movs r2, #4 - bl ShowDisguiseFieldEffect - pop {r1} - bx r1 - thumb_func_end ShowTreeDisguiseFieldEffect - - thumb_func_start ShowMountainDisguiseFieldEffect -ShowMountainDisguiseFieldEffect: @ 0x08155AEC - push {lr} - movs r0, #0x1d - movs r1, #0x19 - movs r2, #3 - bl ShowDisguiseFieldEffect - pop {r1} - bx r1 - thumb_func_end ShowMountainDisguiseFieldEffect - - thumb_func_start ShowSandDisguiseFieldEffect -ShowSandDisguiseFieldEffect: @ 0x08155AFC - push {lr} - movs r0, #0x24 - movs r1, #0x1c - movs r2, #2 - bl ShowDisguiseFieldEffect - pop {r1} - bx r1 - thumb_func_end ShowSandDisguiseFieldEffect - - thumb_func_start ShowDisguiseFieldEffect -ShowDisguiseFieldEffect: @ 0x08155B0C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - mov r8, r4 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - ldr r5, _08155B40 - ldrb r0, [r5] - ldrb r1, [r5, #4] - ldrb r2, [r5, #8] - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08155B44 - adds r0, r4, #0 - bl FieldEffectActiveListRemove - movs r0, #0x40 - b _08155BB0 - .align 2, 0 -_08155B40: .4byte gUnknown_20388A8 -_08155B44: - ldr r1, _08155BBC - lsls r0, r6, #2 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl CreateSpriteAtEnd - mov r1, sp - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _08155BAC - mov r0, sp - ldrb r0, [r0] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r0, _08155BC0 - adds r2, r2, r0 - movs r0, #0x3e - adds r0, r0, r2 - mov ip, r0 - ldrb r3, [r0] - lsls r1, r3, #0x1e - lsrs r1, r1, #0x1f - adds r1, #1 - movs r0, #1 - ands r1, r0 - lsls r1, r1, #1 - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - lsls r3, r7, #4 - ldrb r1, [r2, #5] - movs r0, #0xf - ands r0, r1 - orrs r0, r3 - strb r0, [r2, #5] - mov r0, r8 - strh r0, [r2, #0x30] - ldr r0, [r5] - strh r0, [r2, #0x32] - ldr r0, [r5, #4] - strh r0, [r2, #0x34] - ldr r0, [r5, #8] - strh r0, [r2, #0x36] -_08155BAC: - mov r0, sp - ldrb r0, [r0] -_08155BB0: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08155BBC: .4byte gUnknown_84DDE4C -_08155BC0: .4byte gUnknown_20205AC - thumb_func_end ShowDisguiseFieldEffect - - thumb_func_start UpdateDisguiseFieldEffect -UpdateDisguiseFieldEffect: @ 0x08155BC4 - push {r4, r5, lr} - sub sp, #4 - adds r5, r0, #0 - ldrh r0, [r5, #0x32] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r5, #0x34] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrh r2, [r5, #0x36] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08155BF4 - ldrh r1, [r5, #0x30] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl FieldEffectStop -_08155BF4: - ldr r4, _08155CAC - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r0, [r0, #5] - bl GetEventObjectGraphicsInfo - mov r1, sp - ldrb r2, [r1] - lsls r1, r2, #3 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r1, [r1, #4] - lsls r2, r1, #4 - adds r2, r2, r1 - lsls r2, r2, #2 - ldr r1, _08155CB0 - adds r2, r2, r1 - adds r1, r2, #0 - adds r1, #0x3e - ldrb r1, [r1] - movs r3, #0x3e - adds r3, r3, r5 - mov ip, r3 - movs r3, #4 - ands r3, r1 - mov r1, ip - ldrb r4, [r1] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r4 - orrs r1, r3 - mov r3, ip - strb r1, [r3] - ldrh r1, [r2, #0x20] - strh r1, [r5, #0x20] - ldrh r0, [r0, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x11 - ldrh r1, [r2, #0x22] - adds r0, r0, r1 - subs r0, #0x10 - strh r0, [r5, #0x22] - adds r2, #0x43 - ldrb r0, [r2] - subs r0, #1 - adds r1, r5, #0 - adds r1, #0x43 - strb r0, [r1] - ldrh r1, [r5, #0x2e] - movs r2, #0x2e - ldrsh r0, [r5, r2] - cmp r0, #1 - bne _08155C74 - adds r0, r1, #1 - strh r0, [r5, #0x2e] - adds r0, r5, #0 - movs r1, #1 - bl StartSpriteAnim -_08155C74: - movs r3, #0x2e - ldrsh r0, [r5, r3] - ldrh r2, [r5, #0x2e] - cmp r0, #2 - bne _08155C90 - adds r0, r5, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08155C90 - movs r0, #1 - strh r0, [r5, #0x3c] -_08155C90: - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - bne _08155CA4 - ldrh r1, [r5, #0x30] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl FieldEffectStop -_08155CA4: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08155CAC: .4byte gUnknown_2036FF0 -_08155CB0: .4byte gUnknown_20205AC - thumb_func_end UpdateDisguiseFieldEffect - - thumb_func_start sub_08155CB4 -sub_08155CB4: @ 0x08155CB4 - push {lr} - adds r1, r0, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #1 - bne _08155CD2 - ldr r2, _08155CD8 - ldrb r1, [r1, #0x1a] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x2e] - adds r1, #1 - strh r1, [r0, #0x2e] -_08155CD2: - pop {r0} - bx r0 - .align 2, 0 -_08155CD8: .4byte gUnknown_20205AC - thumb_func_end sub_08155CB4 - - thumb_func_start sub_08155CDC -sub_08155CDC: @ 0x08155CDC - push {lr} - adds r2, r0, #0 - adds r2, #0x21 - ldrb r1, [r2] - cmp r1, #2 - beq _08155D12 - cmp r1, #0 - beq _08155D12 - ldrb r1, [r0, #0x1a] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08155D04 - adds r1, r0, r1 - movs r3, #0x3c - ldrsh r0, [r1, r3] - cmp r0, #0 - bne _08155D08 - movs r0, #0 - b _08155D14 - .align 2, 0 -_08155D04: .4byte gUnknown_20205AC -_08155D08: - movs r0, #2 - strb r0, [r2] - ldrh r0, [r1, #0x2e] - adds r0, #1 - strh r0, [r1, #0x2e] -_08155D12: - movs r0, #1 -_08155D14: - pop {r1} - bx r1 - thumb_func_end sub_08155CDC - - thumb_func_start FldEff_Sparkle -FldEff_Sparkle: @ 0x08155D18 - push {r4, lr} - ldr r4, _08155D80 - ldr r0, [r4] - adds r0, #7 - str r0, [r4] - ldr r0, [r4, #4] - adds r0, #7 - str r0, [r4, #4] - adds r1, r4, #4 - adds r0, r4, #0 - movs r2, #8 - movs r3, #8 - bl sub_08092A50 - ldr r0, _08155D84 - adds r0, #0x8c - ldr r0, [r0] - movs r2, #0 - ldrsh r1, [r4, r2] - movs r3, #4 - ldrsh r2, [r4, r3] - movs r3, #0x52 - bl CreateSpriteAtEnd - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x40 - beq _08155D78 - ldr r0, _08155D88 - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - movs r0, #3 - ldrb r2, [r4, #8] - ands r2, r0 - lsls r2, r2, #2 - ldrb r3, [r1, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, #5] - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #2 - orrs r0, r2 - strb r0, [r1] -_08155D78: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08155D80: .4byte gUnknown_20388A8 -_08155D84: .4byte gUnknown_84DDE4C -_08155D88: .4byte gUnknown_20205AC - thumb_func_end FldEff_Sparkle - - thumb_func_start UpdateSparkleFieldEffect -UpdateSparkleFieldEffect: @ 0x08155D8C - push {lr} - adds r2, r0, #0 - movs r1, #0x2e - ldrsh r0, [r2, r1] - cmp r0, #0 - bne _08155DC0 - adds r0, r2, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08155DB8 - adds r3, r2, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r1, #4 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r2, #0x2e] - adds r0, #1 - strh r0, [r2, #0x2e] -_08155DB8: - movs r1, #0x2e - ldrsh r0, [r2, r1] - cmp r0, #0 - beq _08155DD6 -_08155DC0: - ldrh r0, [r2, #0x30] - adds r0, #1 - strh r0, [r2, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x22 - ble _08155DD6 - adds r0, r2, #0 - movs r1, #0x36 - bl FieldEffectStop -_08155DD6: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end UpdateSparkleFieldEffect - - thumb_func_start sub_08155DDC -sub_08155DDC: @ 0x08155DDC - movs r1, #0 - strh r1, [r0, #0x3a] - strh r1, [r0, #0x3c] - bx lr - thumb_func_end sub_08155DDC - - thumb_func_start sub_08155DE4 -sub_08155DE4: @ 0x08155DE4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r6, #0 - movs r1, #0x3c - ldrsh r0, [r5, r1] - cmp r0, #1 - beq _08155E1A - cmp r0, #1 - bgt _08155DFC - cmp r0, #0 - beq _08155E06 - b _08155E7E -_08155DFC: - cmp r0, #2 - beq _08155E42 - cmp r0, #3 - beq _08155E56 - b _08155E7E -_08155E06: - movs r2, #0x3a - ldrsh r0, [r5, r2] - bl sub_080970AC - ldrh r1, [r5, #0x24] - adds r0, r0, r1 - strh r0, [r5, #0x24] - movs r2, #0x3a - ldrsh r0, [r5, r2] - b _08155E74 -_08155E1A: - ldrh r0, [r5, #0x3a] - movs r4, #0x47 - subs r0, r4, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - bl sub_080970AC - ldrh r1, [r5, #0x24] - subs r1, r1, r0 - strh r1, [r5, #0x24] - ldrh r0, [r5, #0x3a] - subs r4, r4, r0 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - adds r0, r4, #0 - bl sub_08097098 - ldrh r2, [r5, #0x26] - adds r0, r0, r2 - b _08155E7C -_08155E42: - movs r1, #0x3a - ldrsh r0, [r5, r1] - bl sub_080970AC - ldrh r1, [r5, #0x24] - subs r1, r1, r0 - strh r1, [r5, #0x24] - movs r2, #0x3a - ldrsh r0, [r5, r2] - b _08155E74 -_08155E56: - ldrh r0, [r5, #0x3a] - movs r4, #0x47 - subs r0, r4, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - bl sub_080970AC - ldrh r2, [r5, #0x24] - adds r0, r0, r2 - strh r0, [r5, #0x24] - ldrh r0, [r5, #0x3a] - subs r4, r4, r0 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - adds r0, r4, #0 -_08155E74: - bl sub_08097098 - ldrh r1, [r5, #0x26] - adds r0, r0, r1 -_08155E7C: - strh r0, [r5, #0x26] -_08155E7E: - ldrh r1, [r5, #0x24] - rsbs r1, r1, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x10 - bl SetGpuReg - ldrh r0, [r5, #0x3a] - adds r0, #1 - movs r1, #0 - strh r0, [r5, #0x3a] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x48 - bne _08155EA4 - strh r1, [r5, #0x3a] - ldrh r0, [r5, #0x3c] - adds r0, #1 - strh r0, [r5, #0x3c] -_08155EA4: - movs r2, #0x3c - ldrsh r0, [r5, r2] - cmp r0, #4 - bne _08155EB2 - strh r1, [r5, #0x26] - strh r1, [r5, #0x24] - movs r6, #1 -_08155EB2: - adds r0, r6, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08155DE4 - - thumb_func_start sub_08155EBC -sub_08155EBC: @ 0x08155EBC - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - movs r1, #0x32 - ldrsh r0, [r5, r1] - cmp r0, #8 - bls _08155ECA - b _08156092 -_08155ECA: - lsls r0, r0, #2 - ldr r1, _08155ED4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08155ED4: .4byte _08155ED8 -_08155ED8: @ jump table - .4byte _08155EFC @ case 0 - .4byte _08155F70 @ case 1 - .4byte _08155FA8 @ case 2 - .4byte _08155FCC @ case 3 - .4byte _08155FFC @ case 4 - .4byte _08156010 @ case 5 - .4byte _0815601C @ case 6 - .4byte _0815604A @ case 7 - .4byte _0815605C @ case 8 -_08155EFC: - movs r2, #0x2e - ldrsh r0, [r5, r2] - movs r1, #3 - bl __divsi3 - movs r1, #0x78 - subs r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x12 - bl SetGpuReg - movs r3, #0x2e - ldrsh r0, [r5, r3] - cmp r0, #0x60 - bne _08155F52 - movs r1, #0 - ldr r4, _08155F64 - mov ip, r4 - ldr r0, _08155F68 - adds r7, r0, #0 -_08155F26: - movs r2, #0xc - lsls r0, r1, #1 - adds r3, r1, #1 - lsls r6, r1, #5 - adds r0, r0, r1 - lsls r4, r0, #1 -_08155F32: - adds r0, r6, r2 - lsls r0, r0, #1 - add r0, ip - adds r1, r2, r7 - adds r1, r4, r1 - adds r1, #1 - strh r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x11 - bls _08155F32 - lsls r0, r3, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #2 - bls _08155F26 -_08155F52: - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r0, _08155F6C - cmp r1, r0 - bgt _08155F5E - b _08156092 -_08155F5E: - movs r1, #0 - movs r0, #1 - b _08156056 - .align 2, 0 -_08155F64: .4byte 0x0600F800 -_08155F68: .4byte 0x0000BFF4 -_08155F6C: .4byte 0x00000137 -_08155F70: - ldr r4, _08155FA4 - movs r3, #0x2e - ldrsh r0, [r5, r3] - movs r1, #3 - bl __divsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0xf - adds r0, r0, r4 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x12 - ldrh r4, [r5, #0x36] - adds r0, r0, r4 - movs r1, #0 - strh r0, [r5, #0x22] - movs r2, #0x2e - ldrsh r0, [r5, r2] - cmp r0, #0xbd - bne _08156092 - movs r0, #2 - strh r0, [r5, #0x32] - strh r1, [r5, #0x38] - strh r1, [r5, #0x2e] - b _08156092 - .align 2, 0 -_08155FA4: .4byte gUnknown_82FA8CC -_08155FA8: - movs r3, #0x2e - ldrsh r0, [r5, r3] - cmp r0, #0x3c - bne _08155FBA - ldrh r0, [r5, #0x38] - adds r0, #1 - movs r1, #0 - strh r0, [r5, #0x38] - strh r1, [r5, #0x2e] -_08155FBA: - movs r4, #0x38 - ldrsh r0, [r5, r4] - cmp r0, #7 - bne _08156092 - movs r0, #0 - strh r0, [r5, #0x38] - movs r0, #3 - strh r0, [r5, #0x32] - b _08156092 -_08155FCC: - ldrh r2, [r5, #0x26] - movs r0, #0x26 - ldrsh r1, [r5, r0] - adds r3, r2, #0 - cmp r1, #0 - bne _08155FE0 - strh r1, [r5, #0x2e] - ldrh r0, [r5, #0x32] - adds r0, #1 - strh r0, [r5, #0x32] -_08155FE0: - movs r4, #0x2e - ldrsh r0, [r5, r4] - cmp r0, #5 - bne _08156092 - movs r0, #0 - strh r0, [r5, #0x2e] - cmp r1, #0 - ble _08155FF6 - subs r0, r3, #1 - strh r0, [r5, #0x26] - b _08156092 -_08155FF6: - adds r0, r2, #1 - strh r0, [r5, #0x26] - b _08156092 -_08155FFC: - movs r1, #0x2e - ldrsh r0, [r5, r1] - cmp r0, #0x3c - bne _08156092 - movs r1, #0 - movs r0, #5 - strh r0, [r5, #0x32] - strh r1, [r5, #0x2e] - strh r1, [r5, #0x38] - b _08156092 -_08156010: - adds r0, r5, #0 - bl sub_08155DDC - movs r1, #0 - movs r0, #6 - b _08156056 -_0815601C: - adds r0, r5, #0 - bl sub_08155DE4 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08156092 - movs r1, #0 - strh r1, [r5, #0x2e] - ldrh r0, [r5, #0x38] - adds r0, #1 - strh r0, [r5, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - bgt _08156042 - adds r0, r5, #0 - bl sub_08155DDC - b _08156092 -_08156042: - strh r1, [r5, #0x38] - movs r0, #7 - strh r0, [r5, #0x32] - b _08156092 -_0815604A: - movs r2, #0x2e - ldrsh r0, [r5, r2] - cmp r0, #0x1e - bne _08156092 - movs r1, #0 - movs r0, #8 -_08156056: - strh r0, [r5, #0x32] - strh r1, [r5, #0x2e] - b _08156092 -_0815605C: - movs r1, #0 - ldr r6, _081560CC - movs r4, #0 -_08156062: - movs r2, #0xc - adds r3, r1, #1 - lsls r1, r1, #5 -_08156068: - adds r0, r1, r2 - lsls r0, r0, #1 - adds r0, r0, r6 - strh r4, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x11 - bls _08156068 - lsls r0, r3, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xe - bls _08156062 - movs r0, #0x12 - movs r1, #0 - bl SetGpuReg - adds r0, r5, #0 - movs r1, #0x40 - bl FieldEffectStop -_08156092: - movs r3, #0x32 - ldrsh r0, [r5, r3] - cmp r0, #1 - bne _081560C0 - ldrh r1, [r5, #0x30] - movs r0, #7 - ands r0, r1 - adds r2, r1, #0 - cmp r0, #0 - bne _081560AE - ldrh r0, [r5, #0x34] - ldrh r4, [r5, #0x26] - adds r0, r0, r4 - strh r0, [r5, #0x26] -_081560AE: - movs r0, #0xf - ands r0, r2 - cmp r0, #0 - bne _081560BC - ldrh r0, [r5, #0x34] - rsbs r0, r0, #0 - strh r0, [r5, #0x34] -_081560BC: - adds r0, r1, #1 - strh r0, [r5, #0x30] -_081560C0: - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081560CC: .4byte 0x0600F800 - thumb_func_end sub_08155EBC - - thumb_func_start sub_081560D0 -sub_081560D0: @ 0x081560D0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _081560EE - ldrh r1, [r4, #0x30] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl FieldEffectStop - b _08156104 -_081560EE: - adds r0, r4, #0 - movs r1, #0 - bl UpdateEventObjectSpriteVisibility - ldrh r0, [r4, #0x2e] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r4, #0 - movs r2, #0 - bl SetObjectSubpriorityByZCoord -_08156104: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081560D0 - - thumb_func_start WaitFieldEffectSpriteAnim -WaitFieldEffectSpriteAnim: @ 0x0815610C - push {lr} - adds r2, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0815612A - ldrh r1, [r2, #0x2e] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r2, #0 - bl FieldEffectStop - b _08156132 -_0815612A: - adds r0, r2, #0 - movs r1, #0 - bl UpdateEventObjectSpriteVisibility -_08156132: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WaitFieldEffectSpriteAnim - - thumb_func_start sub_08156138 -sub_08156138: @ 0x08156138 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r0, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r1, r6, #0 - bl SetObjectSubpriorityByZCoord - movs r7, #0 -_0815614E: - lsls r0, r7, #3 - adds r0, r0, r7 - lsls r0, r0, #2 - ldr r1, _081561E8 - adds r4, r0, r1 - ldrb r0, [r4] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _081561F0 - ldrb r0, [r4, #5] - bl GetEventObjectGraphicsInfo - ldrb r1, [r4, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _081561EC - adds r5, r0, r1 - adds r0, r6, #0 - adds r0, #0x28 - movs r2, #0 - ldrsb r2, [r0, r2] - ldrh r0, [r6, #0x20] - adds r1, r0, r2 - subs r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #0x20 - ldrsh r2, [r5, r0] - cmp r1, r2 - bge _081561F0 - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - cmp r0, r2 - ble _081561F0 - adds r0, r5, #0 - adds r0, #0x29 - movs r3, #0 - ldrsb r3, [r0, r3] - ldrh r2, [r5, #0x22] - adds r2, r2, r3 - ldrh r4, [r5, #0x22] - adds r0, r6, #0 - adds r0, #0x29 - movs r1, #0 - ldrsb r1, [r0, r1] - ldrh r0, [r6, #0x22] - subs r0, r0, r1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r3, r0, r3 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - cmp r2, r3 - blt _081561C8 - cmp r2, r0 - bge _081561F0 -_081561C8: - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - cmp r0, r3 - ble _081561F0 - adds r2, r6, #0 - adds r2, #0x43 - adds r0, r5, #0 - adds r0, #0x43 - ldrb r1, [r0] - ldrb r0, [r2] - cmp r0, r1 - bhi _081561F0 - adds r0, r1, #2 - strb r0, [r2] - b _081561FA - .align 2, 0 -_081561E8: .4byte gUnknown_2036FF0 -_081561EC: .4byte gUnknown_20205AC -_081561F0: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #0xf - bls _0815614E -_081561FA: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08156138 - - thumb_func_start ContestAI_ResetAI -ContestAI_ResetAI: @ 0x08156200 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r4, _08156258 - ldr r0, [r4] - ldr r0, [r0, #0xc] - movs r1, #0 - movs r2, #0x44 - bl memset - movs r1, #0 - movs r3, #0x64 - adds r2, r4, #0 -_0815621A: - ldr r0, [r4] - ldr r0, [r0, #0xc] - adds r0, #5 - adds r0, r0, r1 - strb r3, [r0] - adds r1, #1 - cmp r1, #3 - ble _0815621A - ldr r0, [r2] - ldr r0, [r0, #0xc] - adds r0, #0x41 - movs r1, #0 - strb r5, [r0] - ldr r0, [r2] - ldr r0, [r0, #0xc] - adds r0, #0x40 - strb r1, [r0] - ldr r0, [r2] - ldr r2, [r0, #0xc] - ldr r1, _0815625C - adds r0, r2, #0 - adds r0, #0x41 - ldrb r0, [r0] - lsls r0, r0, #6 - adds r1, #0x18 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r2, #0x14] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08156258: .4byte gUnknown_2039BD4 -_0815625C: .4byte gUnknown_2039AA0 - thumb_func_end ContestAI_ResetAI - - thumb_func_start ContestAI_GetActionToUse -ContestAI_GetActionToUse: @ 0x08156260 - push {r4, r5, r6, lr} - ldr r1, _081562E8 - ldr r0, [r1] - ldr r0, [r0, #0xc] - ldr r0, [r0, #0x14] - cmp r0, #0 - beq _081562A6 - adds r4, r1, #0 - movs r5, #0 -_08156272: - ldr r0, [r4] - ldr r2, [r0, #0xc] - ldr r0, [r2, #0x14] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08156286 - strb r5, [r2] - bl ContestAI_DoAIProcessing -_08156286: - ldr r0, [r4] - ldr r1, [r0, #0xc] - ldr r0, [r1, #0x14] - lsrs r0, r0, #1 - str r0, [r1, #0x14] - ldrb r0, [r1, #0x10] - adds r0, #1 - strb r0, [r1, #0x10] - ldr r0, [r4] - ldr r0, [r0, #0xc] - strb r5, [r0, #4] - ldr r0, [r4] - ldr r0, [r0, #0xc] - ldr r0, [r0, #0x14] - cmp r0, #0 - bne _08156272 -_081562A6: - movs r6, #3 -_081562A8: - bl Random - adds r5, r0, #0 - ands r5, r6 - ldr r4, _081562E8 - ldr r0, [r4] - ldr r1, [r0, #0xc] - adds r0, r1, #5 - adds r0, r0, r5 - ldrb r3, [r0] - movs r2, #0 - ldrb r1, [r1, #5] - cmp r3, r1 - blo _081562DA - adds r1, r4, #0 -_081562C6: - adds r2, #1 - cmp r2, #3 - bgt _081562DA - ldr r0, [r1] - ldr r0, [r0, #0xc] - adds r0, #5 - adds r0, r0, r2 - ldrb r0, [r0] - cmp r3, r0 - bhs _081562C6 -_081562DA: - cmp r2, #4 - bne _081562A8 - adds r0, r5, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_081562E8: .4byte gUnknown_2039BD4 - thumb_func_end ContestAI_GetActionToUse - - thumb_func_start ContestAI_DoAIProcessing -ContestAI_DoAIProcessing: @ 0x081562EC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r5, _08156344 - ldr r0, [r5] - ldr r0, [r0, #0xc] - ldrb r0, [r0] - adds r4, r5, #0 - cmp r0, #2 - beq _081563DC - adds r7, r5, #0 - ldr r6, _08156348 - ldr r0, _0815634C - mov r8, r0 -_08156308: - ldr r0, [r7] - ldr r2, [r0, #0xc] - ldrb r0, [r2] - cmp r0, #1 - beq _08156362 - cmp r0, #1 - bgt _081563D2 - cmp r0, #0 - bne _081563D2 - ldr r1, _08156350 - ldrb r0, [r2, #0x10] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r6] - ldrb r1, [r2, #4] - lsls r1, r1, #1 - adds r0, r2, #0 - adds r0, #0x41 - ldrb r0, [r0] - lsls r0, r0, #6 - adds r1, r1, r0 - add r1, r8 - ldrh r1, [r1] - adds r0, r1, #0 - cmp r0, #0 - bne _08156354 - strh r0, [r2, #2] - b _08156356 - .align 2, 0 -_08156344: .4byte gUnknown_2039BD4 -_08156348: .4byte gUnknown_203A804 -_0815634C: .4byte gUnknown_2039ABE -_08156350: .4byte gUnknown_828C8D8 -_08156354: - strh r1, [r2, #2] -_08156356: - ldr r0, [r4] - ldr r1, [r0, #0xc] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _081563D2 -_08156362: - ldrh r1, [r2, #2] - cmp r1, #0 - beq _08156380 - ldr r1, _0815637C - ldr r0, [r6] - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - b _08156394 - .align 2, 0 -_0815637C: .4byte gUnknown_85ACB08 -_08156380: - adds r0, r2, #5 - ldrb r2, [r2, #4] - adds r0, r0, r2 - strb r1, [r0] - ldr r0, [r7] - ldr r2, [r0, #0xc] - ldrb r1, [r2, #9] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #9] -_08156394: - ldr r2, _081563BC - ldr r0, [r2] - ldr r3, [r0, #0xc] - ldrb r1, [r3, #9] - movs r0, #1 - ands r0, r1 - adds r4, r2, #0 - cmp r0, #0 - beq _081563D2 - ldrb r0, [r3, #4] - adds r0, #1 - movs r2, #0 - strb r0, [r3, #4] - ldr r0, [r4] - ldr r1, [r0, #0xc] - ldrb r0, [r1, #4] - cmp r0, #3 - bhi _081563C0 - strb r2, [r1] - b _081563C6 - .align 2, 0 -_081563BC: .4byte gUnknown_2039BD4 -_081563C0: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_081563C6: - ldr r0, [r4] - ldr r2, [r0, #0xc] - ldrb r1, [r2, #9] - movs r0, #0xfe - ands r0, r1 - strb r0, [r2, #9] -_081563D2: - ldr r0, [r5] - ldr r0, [r0, #0xc] - ldrb r0, [r0] - cmp r0, #2 - bne _08156308 -_081563DC: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ContestAI_DoAIProcessing - - thumb_func_start sub_081563E8 -sub_081563E8: @ 0x081563E8 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - movs r1, #0 - ldr r3, _081563F8 - ldr r0, [r3] - ldr r0, [r0, #8] - b _08156408 - .align 2, 0 -_081563F8: .4byte gUnknown_2039BD4 -_081563FC: - adds r1, #1 - cmp r1, #3 - bgt _0815640E - ldr r0, [r3] - ldr r0, [r0, #8] - adds r0, r0, r1 -_08156408: - ldrb r0, [r0] - cmp r0, r2 - bne _081563FC -_0815640E: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081563E8 - - thumb_func_start ContestAICmd_score -ContestAICmd_score: @ 0x08156418 - push {r4, lr} - ldr r3, _08156444 - ldr r0, [r3] - ldr r0, [r0, #0xc] - adds r1, r0, #5 - ldrb r0, [r0, #4] - adds r1, r1, r0 - ldr r2, _08156448 - ldr r0, [r2] - ldrb r0, [r0, #1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrb r1, [r1] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xff - ble _0815644C - movs r4, #0xff - b _08156452 - .align 2, 0 -_08156444: .4byte gUnknown_2039BD4 -_08156448: .4byte gUnknown_203A804 -_0815644C: - cmp r0, #0 - bge _08156452 - movs r4, #0 -_08156452: - ldr r0, [r3] - ldr r1, [r0, #0xc] - adds r0, r1, #5 - ldrb r1, [r1, #4] - adds r0, r0, r1 - strb r4, [r0] - ldr r0, [r2] - adds r0, #2 - str r0, [r2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ContestAICmd_score - - thumb_func_start ContestAICmd_get_turn -ContestAICmd_get_turn: @ 0x0815646C - ldr r0, _08156484 - ldr r0, [r0] - ldr r1, [r0, #0xc] - ldr r0, [r0] - ldrb r0, [r0, #1] - strh r0, [r1, #0x18] - ldr r1, _08156488 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - bx lr - .align 2, 0 -_08156484: .4byte gUnknown_2039BD4 -_08156488: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_get_turn - - thumb_func_start ContestAICmd_if_turn_less_than -ContestAICmd_if_turn_less_than: @ 0x0815648C - push {lr} - bl ContestAICmd_get_turn - ldr r0, _081564C0 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _081564C4 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _081564C8 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _081564CC - .align 2, 0 -_081564C0: .4byte gUnknown_2039BD4 -_081564C4: .4byte gUnknown_203A804 -_081564C8: - adds r0, r2, #5 - str r0, [r3] -_081564CC: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_if_turn_less_than - - thumb_func_start ContestAICmd_if_turn_more_than -ContestAICmd_if_turn_more_than: @ 0x081564D0 - push {lr} - bl ContestAICmd_get_turn - ldr r0, _08156504 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _08156508 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _0815650C - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08156510 - .align 2, 0 -_08156504: .4byte gUnknown_2039BD4 -_08156508: .4byte gUnknown_203A804 -_0815650C: - adds r0, r2, #5 - str r0, [r3] -_08156510: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_if_turn_more_than - - thumb_func_start ContestAICmd_if_turn_eq -ContestAICmd_if_turn_eq: @ 0x08156514 - push {lr} - bl ContestAICmd_get_turn - ldr r0, _08156548 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _0815654C - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _08156550 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08156554 - .align 2, 0 -_08156548: .4byte gUnknown_2039BD4 -_0815654C: .4byte gUnknown_203A804 -_08156550: - adds r0, r2, #5 - str r0, [r3] -_08156554: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_if_turn_eq - - thumb_func_start ContestAICmd_if_turn_not_eq -ContestAICmd_if_turn_not_eq: @ 0x08156558 - push {lr} - bl ContestAICmd_get_turn - ldr r0, _0815658C - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _08156590 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _08156594 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08156598 - .align 2, 0 -_0815658C: .4byte gUnknown_2039BD4 -_08156590: .4byte gUnknown_203A804 -_08156594: - adds r0, r2, #5 - str r0, [r3] -_08156598: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_if_turn_not_eq - - thumb_func_start ContestAICmd_get_excitement -ContestAICmd_get_excitement: @ 0x0815659C - ldr r0, _081565B8 - ldr r0, [r0] - ldr r1, [r0, #0xc] - ldr r0, [r0] - ldrb r0, [r0, #0x13] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - strh r0, [r1, #0x18] - ldr r1, _081565BC - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - bx lr - .align 2, 0 -_081565B8: .4byte gUnknown_2039BD4 -_081565BC: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_get_excitement - - thumb_func_start ContestAICmd_if_excitement_less_than -ContestAICmd_if_excitement_less_than: @ 0x081565C0 - push {lr} - bl ContestAICmd_get_excitement - ldr r0, _081565F4 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _081565F8 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _081565FC - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08156600 - .align 2, 0 -_081565F4: .4byte gUnknown_2039BD4 -_081565F8: .4byte gUnknown_203A804 -_081565FC: - adds r0, r2, #5 - str r0, [r3] -_08156600: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_if_excitement_less_than - - thumb_func_start ContestAICmd_if_excitement_more_than -ContestAICmd_if_excitement_more_than: @ 0x08156604 - push {lr} - bl ContestAICmd_get_excitement - ldr r0, _08156638 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _0815663C - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _08156640 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08156644 - .align 2, 0 -_08156638: .4byte gUnknown_2039BD4 -_0815663C: .4byte gUnknown_203A804 -_08156640: - adds r0, r2, #5 - str r0, [r3] -_08156644: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_if_excitement_more_than - - thumb_func_start ContestAICmd_if_excitement_eq -ContestAICmd_if_excitement_eq: @ 0x08156648 - push {lr} - bl ContestAICmd_get_excitement - ldr r0, _0815667C - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _08156680 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _08156684 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08156688 - .align 2, 0 -_0815667C: .4byte gUnknown_2039BD4 -_08156680: .4byte gUnknown_203A804 -_08156684: - adds r0, r2, #5 - str r0, [r3] -_08156688: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_if_excitement_eq - - thumb_func_start ContestAICmd_if_excitement_not_eq -ContestAICmd_if_excitement_not_eq: @ 0x0815668C - push {lr} - bl ContestAICmd_get_excitement - ldr r0, _081566C0 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _081566C4 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _081566C8 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _081566CC - .align 2, 0 -_081566C0: .4byte gUnknown_2039BD4 -_081566C4: .4byte gUnknown_203A804 -_081566C8: - adds r0, r2, #5 - str r0, [r3] -_081566CC: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_if_excitement_not_eq - - thumb_func_start ContestAICmd_get_user_order -ContestAICmd_get_user_order: @ 0x081566D0 - ldr r0, _081566F0 - ldr r0, [r0] - ldr r2, [r0, #0xc] - ldr r0, [r0, #8] - adds r1, r2, #0 - adds r1, #0x41 - ldrb r1, [r1] - adds r0, r0, r1 - ldrb r0, [r0] - strh r0, [r2, #0x18] - ldr r1, _081566F4 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - bx lr - .align 2, 0 -_081566F0: .4byte gUnknown_2039BD4 -_081566F4: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_get_user_order - - thumb_func_start ContestAICmd_if_user_order_less_than -ContestAICmd_if_user_order_less_than: @ 0x081566F8 - push {lr} - bl ContestAICmd_get_user_order - ldr r0, _0815672C - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _08156730 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _08156734 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08156738 - .align 2, 0 -_0815672C: .4byte gUnknown_2039BD4 -_08156730: .4byte gUnknown_203A804 -_08156734: - adds r0, r2, #5 - str r0, [r3] -_08156738: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_if_user_order_less_than - - thumb_func_start ContestAICmd_if_user_order_more_than -ContestAICmd_if_user_order_more_than: @ 0x0815673C - push {lr} - bl ContestAICmd_get_user_order - ldr r0, _08156770 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _08156774 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _08156778 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _0815677C - .align 2, 0 -_08156770: .4byte gUnknown_2039BD4 -_08156774: .4byte gUnknown_203A804 -_08156778: - adds r0, r2, #5 - str r0, [r3] -_0815677C: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_if_user_order_more_than - - thumb_func_start ContestAICmd_if_user_order_eq -ContestAICmd_if_user_order_eq: @ 0x08156780 - push {lr} - bl ContestAICmd_get_user_order - ldr r0, _081567B4 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _081567B8 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _081567BC - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _081567C0 - .align 2, 0 -_081567B4: .4byte gUnknown_2039BD4 -_081567B8: .4byte gUnknown_203A804 -_081567BC: - adds r0, r2, #5 - str r0, [r3] -_081567C0: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_if_user_order_eq - - thumb_func_start ContestAICmd_if_user_order_not_eq -ContestAICmd_if_user_order_not_eq: @ 0x081567C4 - push {lr} - bl ContestAICmd_get_user_order - ldr r0, _081567F8 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _081567FC - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _08156800 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08156804 - .align 2, 0 -_081567F8: .4byte gUnknown_2039BD4 -_081567FC: .4byte gUnknown_203A804 -_08156800: - adds r0, r2, #5 - str r0, [r3] -_08156804: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_if_user_order_not_eq - - thumb_func_start ContestAICmd_get_user_condition -ContestAICmd_get_user_condition: @ 0x08156808 - push {r4, lr} - ldr r0, _08156840 - ldr r0, [r0] - ldr r4, [r0, #0xc] - adds r1, r4, #0 - adds r1, #0x41 - ldrb r1, [r1] - ldr r2, [r0, #4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #0xd] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #0xa - bl __divsi3 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - strh r0, [r4, #0x18] - ldr r1, _08156844 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08156840: .4byte gUnknown_2039BD4 -_08156844: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_get_user_condition - - thumb_func_start ContestAICmd_if_user_condition_less_than -ContestAICmd_if_user_condition_less_than: @ 0x08156848 - push {lr} - bl ContestAICmd_get_user_condition - ldr r0, _0815687C - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _08156880 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _08156884 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08156888 - .align 2, 0 -_0815687C: .4byte gUnknown_2039BD4 -_08156880: .4byte gUnknown_203A804 -_08156884: - adds r0, r2, #5 - str r0, [r3] -_08156888: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_if_user_condition_less_than - - thumb_func_start ContestAICmd_if_user_condition_more_than -ContestAICmd_if_user_condition_more_than: @ 0x0815688C - push {lr} - bl ContestAICmd_get_user_condition - ldr r0, _081568C0 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _081568C4 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _081568C8 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _081568CC - .align 2, 0 -_081568C0: .4byte gUnknown_2039BD4 -_081568C4: .4byte gUnknown_203A804 -_081568C8: - adds r0, r2, #5 - str r0, [r3] -_081568CC: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_if_user_condition_more_than - - thumb_func_start ContestAICmd_if_user_condition_eq -ContestAICmd_if_user_condition_eq: @ 0x081568D0 - push {lr} - bl ContestAICmd_get_user_condition - ldr r0, _08156904 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _08156908 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _0815690C - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08156910 - .align 2, 0 -_08156904: .4byte gUnknown_2039BD4 -_08156908: .4byte gUnknown_203A804 -_0815690C: - adds r0, r2, #5 - str r0, [r3] -_08156910: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_if_user_condition_eq - - thumb_func_start ContestAICmd_if_user_condition_not_eq -ContestAICmd_if_user_condition_not_eq: @ 0x08156914 - push {lr} - bl ContestAICmd_get_user_condition - ldr r0, _08156948 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _0815694C - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _08156950 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08156954 - .align 2, 0 -_08156948: .4byte gUnknown_2039BD4 -_0815694C: .4byte gUnknown_203A804 -_08156950: - adds r0, r2, #5 - str r0, [r3] -_08156954: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_if_user_condition_not_eq - - thumb_func_start ContestAICmd_unk_15 -ContestAICmd_unk_15: @ 0x08156958 - ldr r0, _0815697C - ldr r0, [r0] - ldr r3, [r0, #0xc] - adds r1, r3, #0 - adds r1, #0x41 - ldrb r1, [r1] - ldr r2, [r0, #4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0, #4] - strh r0, [r3, #0x18] - ldr r1, _08156980 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - bx lr - .align 2, 0 -_0815697C: .4byte gUnknown_2039BD4 -_08156980: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_unk_15 - - thumb_func_start sub_08156984 -sub_08156984: @ 0x08156984 - push {r4, r5, lr} - bl ContestAICmd_unk_15 - ldr r0, _081569C0 - ldr r0, [r0] - ldr r2, [r0, #0xc] - ldr r4, _081569C4 - ldr r3, [r4] - ldrb r1, [r3] - ldrb r0, [r3, #1] - lsls r0, r0, #8 - orrs r1, r0 - movs r5, #0x18 - ldrsh r0, [r2, r5] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r0, r1 - bge _081569C8 - ldrb r1, [r3, #2] - ldrb r0, [r3, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r3, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r3, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _081569CC - .align 2, 0 -_081569C0: .4byte gUnknown_2039BD4 -_081569C4: .4byte gUnknown_203A804 -_081569C8: - adds r0, r3, #6 - str r0, [r4] -_081569CC: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08156984 - - thumb_func_start sub_081569D4 -sub_081569D4: @ 0x081569D4 - push {r4, r5, lr} - bl ContestAICmd_unk_15 - ldr r0, _08156A10 - ldr r0, [r0] - ldr r2, [r0, #0xc] - ldr r4, _08156A14 - ldr r3, [r4] - ldrb r1, [r3] - ldrb r0, [r3, #1] - lsls r0, r0, #8 - orrs r1, r0 - movs r5, #0x18 - ldrsh r0, [r2, r5] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r0, r1 - ble _08156A18 - ldrb r1, [r3, #2] - ldrb r0, [r3, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r3, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r3, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _08156A1C - .align 2, 0 -_08156A10: .4byte gUnknown_2039BD4 -_08156A14: .4byte gUnknown_203A804 -_08156A18: - adds r0, r3, #6 - str r0, [r4] -_08156A1C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081569D4 - - thumb_func_start sub_08156A24 -sub_08156A24: @ 0x08156A24 - push {r4, r5, lr} - bl ContestAICmd_unk_15 - ldr r0, _08156A60 - ldr r0, [r0] - ldr r2, [r0, #0xc] - ldr r4, _08156A64 - ldr r3, [r4] - ldrb r1, [r3] - ldrb r0, [r3, #1] - lsls r0, r0, #8 - orrs r1, r0 - movs r5, #0x18 - ldrsh r0, [r2, r5] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r0, r1 - bne _08156A68 - ldrb r1, [r3, #2] - ldrb r0, [r3, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r3, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r3, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _08156A6C - .align 2, 0 -_08156A60: .4byte gUnknown_2039BD4 -_08156A64: .4byte gUnknown_203A804 -_08156A68: - adds r0, r3, #6 - str r0, [r4] -_08156A6C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08156A24 - - thumb_func_start sub_08156A74 -sub_08156A74: @ 0x08156A74 - push {r4, r5, lr} - bl ContestAICmd_unk_15 - ldr r0, _08156AB0 - ldr r0, [r0] - ldr r2, [r0, #0xc] - ldr r4, _08156AB4 - ldr r3, [r4] - ldrb r1, [r3] - ldrb r0, [r3, #1] - lsls r0, r0, #8 - orrs r1, r0 - movs r5, #0x18 - ldrsh r0, [r2, r5] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r0, r1 - beq _08156AB8 - ldrb r1, [r3, #2] - ldrb r0, [r3, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r3, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r3, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _08156ABC - .align 2, 0 -_08156AB0: .4byte gUnknown_2039BD4 -_08156AB4: .4byte gUnknown_203A804 -_08156AB8: - adds r0, r3, #6 - str r0, [r4] -_08156ABC: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08156A74 - - thumb_func_start ContestAICmd_unk_1A -ContestAICmd_unk_1A: @ 0x08156AC4 - ldr r0, _08156AE4 - ldr r0, [r0] - ldr r2, [r0, #0xc] - ldr r1, _08156AE8 - adds r0, r2, #0 - adds r0, #0x41 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2, #0x18] - ldr r1, _08156AEC - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - bx lr - .align 2, 0 -_08156AE4: .4byte gUnknown_2039BD4 -_08156AE8: .4byte gUnknown_2039BA0 -_08156AEC: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_unk_1A - - thumb_func_start sub_08156AF0 -sub_08156AF0: @ 0x08156AF0 - push {r4, r5, lr} - bl ContestAICmd_unk_1A - ldr r0, _08156B2C - ldr r0, [r0] - ldr r2, [r0, #0xc] - ldr r4, _08156B30 - ldr r3, [r4] - ldrb r1, [r3] - ldrb r0, [r3, #1] - lsls r0, r0, #8 - orrs r1, r0 - movs r5, #0x18 - ldrsh r0, [r2, r5] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r0, r1 - bge _08156B34 - ldrb r1, [r3, #2] - ldrb r0, [r3, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r3, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r3, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _08156B38 - .align 2, 0 -_08156B2C: .4byte gUnknown_2039BD4 -_08156B30: .4byte gUnknown_203A804 -_08156B34: - adds r0, r3, #6 - str r0, [r4] -_08156B38: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08156AF0 - - thumb_func_start sub_08156B40 -sub_08156B40: @ 0x08156B40 - push {r4, r5, lr} - bl ContestAICmd_unk_1A - ldr r0, _08156B7C - ldr r0, [r0] - ldr r2, [r0, #0xc] - ldr r4, _08156B80 - ldr r3, [r4] - ldrb r1, [r3] - ldrb r0, [r3, #1] - lsls r0, r0, #8 - orrs r1, r0 - movs r5, #0x18 - ldrsh r0, [r2, r5] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r0, r1 - ble _08156B84 - ldrb r1, [r3, #2] - ldrb r0, [r3, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r3, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r3, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _08156B88 - .align 2, 0 -_08156B7C: .4byte gUnknown_2039BD4 -_08156B80: .4byte gUnknown_203A804 -_08156B84: - adds r0, r3, #6 - str r0, [r4] -_08156B88: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08156B40 - - thumb_func_start sub_08156B90 -sub_08156B90: @ 0x08156B90 - push {r4, r5, lr} - bl ContestAICmd_unk_1A - ldr r0, _08156BCC - ldr r0, [r0] - ldr r2, [r0, #0xc] - ldr r4, _08156BD0 - ldr r3, [r4] - ldrb r1, [r3] - ldrb r0, [r3, #1] - lsls r0, r0, #8 - orrs r1, r0 - movs r5, #0x18 - ldrsh r0, [r2, r5] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r0, r1 - bne _08156BD4 - ldrb r1, [r3, #2] - ldrb r0, [r3, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r3, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r3, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _08156BD8 - .align 2, 0 -_08156BCC: .4byte gUnknown_2039BD4 -_08156BD0: .4byte gUnknown_203A804 -_08156BD4: - adds r0, r3, #6 - str r0, [r4] -_08156BD8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08156B90 - - thumb_func_start sub_08156BE0 -sub_08156BE0: @ 0x08156BE0 - push {r4, r5, lr} - bl ContestAICmd_unk_1A - ldr r0, _08156C1C - ldr r0, [r0] - ldr r2, [r0, #0xc] - ldr r4, _08156C20 - ldr r3, [r4] - ldrb r1, [r3] - ldrb r0, [r3, #1] - lsls r0, r0, #8 - orrs r1, r0 - movs r5, #0x18 - ldrsh r0, [r2, r5] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r0, r1 - beq _08156C24 - ldrb r1, [r3, #2] - ldrb r0, [r3, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r3, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r3, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _08156C28 - .align 2, 0 -_08156C1C: .4byte gUnknown_2039BD4 -_08156C20: .4byte gUnknown_203A804 -_08156C24: - adds r0, r3, #6 - str r0, [r4] -_08156C28: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08156BE0 - - thumb_func_start ContestAICmd_get_contest_type -ContestAICmd_get_contest_type: @ 0x08156C30 - ldr r0, _08156C48 - ldr r0, [r0] - ldr r1, [r0, #0xc] - ldr r0, _08156C4C - ldrh r0, [r0] - strh r0, [r1, #0x18] - ldr r1, _08156C50 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - bx lr - .align 2, 0 -_08156C48: .4byte gUnknown_2039BD4 -_08156C4C: .4byte gUnknown_2039BCC -_08156C50: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_get_contest_type - - thumb_func_start ContestAICmd_if_contest_type_eq -ContestAICmd_if_contest_type_eq: @ 0x08156C54 - push {lr} - bl ContestAICmd_get_contest_type - ldr r0, _08156C88 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _08156C8C - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _08156C90 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08156C94 - .align 2, 0 -_08156C88: .4byte gUnknown_2039BD4 -_08156C8C: .4byte gUnknown_203A804 -_08156C90: - adds r0, r2, #5 - str r0, [r3] -_08156C94: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_if_contest_type_eq - - thumb_func_start ContestAICmd_if_contest_type_not_eq -ContestAICmd_if_contest_type_not_eq: @ 0x08156C98 - push {lr} - bl ContestAICmd_get_contest_type - ldr r0, _08156CCC - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _08156CD0 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _08156CD4 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08156CD8 - .align 2, 0 -_08156CCC: .4byte gUnknown_2039BD4 -_08156CD0: .4byte gUnknown_203A804 -_08156CD4: - adds r0, r2, #5 - str r0, [r3] -_08156CD8: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_if_contest_type_not_eq - - thumb_func_start ContestAICmd_get_move_excitement -ContestAICmd_get_move_excitement: @ 0x08156CDC - push {r4, lr} - ldr r2, _08156D14 - ldr r4, _08156D18 - ldr r0, [r4] - ldr r0, [r0, #0xc] - ldrb r1, [r0, #4] - lsls r1, r1, #1 - adds r0, #0x41 - ldrb r0, [r0] - lsls r0, r0, #6 - adds r1, r1, r0 - adds r2, #0x1e - adds r1, r1, r2 - ldrh r0, [r1] - bl Contest_GetMoveExcitement - ldr r1, [r4] - ldr r1, [r1, #0xc] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - strh r0, [r1, #0x18] - ldr r1, _08156D1C - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08156D14: .4byte gUnknown_2039AA0 -_08156D18: .4byte gUnknown_2039BD4 -_08156D1C: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_get_move_excitement - - thumb_func_start ContestAICmd_if_move_excitement_less_than -ContestAICmd_if_move_excitement_less_than: @ 0x08156D20 - push {r4, lr} - bl ContestAICmd_get_move_excitement - ldr r0, _08156D54 - ldr r0, [r0] - ldr r0, [r0, #0xc] - ldr r3, _08156D58 - ldr r2, [r3] - movs r4, #0x18 - ldrsh r1, [r0, r4] - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r1, r0 - bge _08156D5C - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08156D60 - .align 2, 0 -_08156D54: .4byte gUnknown_2039BD4 -_08156D58: .4byte gUnknown_203A804 -_08156D5C: - adds r0, r2, #5 - str r0, [r3] -_08156D60: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ContestAICmd_if_move_excitement_less_than - - thumb_func_start ContestAICmd_if_move_excitement_greater_than -ContestAICmd_if_move_excitement_greater_than: @ 0x08156D68 - push {r4, lr} - bl ContestAICmd_get_move_excitement - ldr r0, _08156D9C - ldr r0, [r0] - ldr r0, [r0, #0xc] - ldr r3, _08156DA0 - ldr r2, [r3] - movs r4, #0x18 - ldrsh r1, [r0, r4] - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r1, r0 - ble _08156DA4 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08156DA8 - .align 2, 0 -_08156D9C: .4byte gUnknown_2039BD4 -_08156DA0: .4byte gUnknown_203A804 -_08156DA4: - adds r0, r2, #5 - str r0, [r3] -_08156DA8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ContestAICmd_if_move_excitement_greater_than - - thumb_func_start ContestAICmd_if_move_excitement_eq -ContestAICmd_if_move_excitement_eq: @ 0x08156DB0 - push {r4, lr} - bl ContestAICmd_get_move_excitement - ldr r0, _08156DE4 - ldr r0, [r0] - ldr r0, [r0, #0xc] - ldr r3, _08156DE8 - ldr r2, [r3] - movs r4, #0x18 - ldrsh r1, [r0, r4] - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r1, r0 - bne _08156DEC - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08156DF0 - .align 2, 0 -_08156DE4: .4byte gUnknown_2039BD4 -_08156DE8: .4byte gUnknown_203A804 -_08156DEC: - adds r0, r2, #5 - str r0, [r3] -_08156DF0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ContestAICmd_if_move_excitement_eq - - thumb_func_start ContestAICmd_if_move_excitement_not_eq -ContestAICmd_if_move_excitement_not_eq: @ 0x08156DF8 - push {r4, lr} - bl ContestAICmd_get_move_excitement - ldr r0, _08156E2C - ldr r0, [r0] - ldr r0, [r0, #0xc] - ldr r3, _08156E30 - ldr r2, [r3] - movs r4, #0x18 - ldrsh r1, [r0, r4] - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r1, r0 - beq _08156E34 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08156E38 - .align 2, 0 -_08156E2C: .4byte gUnknown_2039BD4 -_08156E30: .4byte gUnknown_203A804 -_08156E34: - adds r0, r2, #5 - str r0, [r3] -_08156E38: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ContestAICmd_if_move_excitement_not_eq - - thumb_func_start ContestAICmd_get_move_effect -ContestAICmd_get_move_effect: @ 0x08156E40 - ldr r2, _08156E70 - ldr r0, _08156E74 - ldr r0, [r0] - ldr r3, [r0, #0xc] - ldrb r1, [r3, #4] - lsls r1, r1, #1 - adds r0, r3, #0 - adds r0, #0x41 - ldrb r0, [r0] - lsls r0, r0, #6 - adds r1, r1, r0 - adds r2, #0x1e - adds r1, r1, r2 - ldrh r0, [r1] - ldr r1, _08156E78 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r0, [r0] - strh r0, [r3, #0x18] - ldr r1, _08156E7C - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - bx lr - .align 2, 0 -_08156E70: .4byte gUnknown_2039AA0 -_08156E74: .4byte gUnknown_2039BD4 -_08156E78: .4byte gUnknown_8565FCC -_08156E7C: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_get_move_effect - - thumb_func_start PrintPlayerBerryPowderAmount -PrintPlayerBerryPowderAmount: @ 0x08156E80 - push {lr} - bl ContestAICmd_get_move_effect - ldr r0, _08156EB4 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _08156EB8 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _08156EBC - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08156EC0 - .align 2, 0 -_08156EB4: .4byte gUnknown_2039BD4 -_08156EB8: .4byte gUnknown_203A804 -_08156EBC: - adds r0, r2, #5 - str r0, [r3] -_08156EC0: - pop {r0} - bx r0 - thumb_func_end PrintPlayerBerryPowderAmount - - thumb_func_start ContestAICmd_if_move_effect_not_eq -ContestAICmd_if_move_effect_not_eq: @ 0x08156EC4 - push {lr} - bl ContestAICmd_get_move_effect - ldr r0, _08156EF8 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _08156EFC - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _08156F00 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08156F04 - .align 2, 0 -_08156EF8: .4byte gUnknown_2039BD4 -_08156EFC: .4byte gUnknown_203A804 -_08156F00: - adds r0, r2, #5 - str r0, [r3] -_08156F04: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_if_move_effect_not_eq - - thumb_func_start ContestAICmd_get_move_effect_type -ContestAICmd_get_move_effect_type: @ 0x08156F08 - ldr r2, _08156F40 - ldr r0, _08156F44 - ldr r0, [r0] - ldr r3, [r0, #0xc] - ldrb r1, [r3, #4] - lsls r1, r1, #1 - adds r0, r3, #0 - adds r0, #0x41 - ldrb r0, [r0] - lsls r0, r0, #6 - adds r1, r1, r0 - adds r2, #0x1e - adds r1, r1, r2 - ldrh r0, [r1] - ldr r2, _08156F48 - ldr r1, _08156F4C - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0] - strh r0, [r3, #0x18] - ldr r1, _08156F50 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - bx lr - .align 2, 0 -_08156F40: .4byte gUnknown_2039AA0 -_08156F44: .4byte gUnknown_2039BD4 -_08156F48: .4byte gUnknown_8566AE4 -_08156F4C: .4byte gUnknown_8565FCC -_08156F50: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_get_move_effect_type - - thumb_func_start ContestAICmd_if_move_effect_type_eq -ContestAICmd_if_move_effect_type_eq: @ 0x08156F54 - push {lr} - bl ContestAICmd_get_move_effect_type - ldr r0, _08156F88 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _08156F8C - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _08156F90 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08156F94 - .align 2, 0 -_08156F88: .4byte gUnknown_2039BD4 -_08156F8C: .4byte gUnknown_203A804 -_08156F90: - adds r0, r2, #5 - str r0, [r3] -_08156F94: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_if_move_effect_type_eq - - thumb_func_start ContestAICmd_if_move_effect_type_not_eq -ContestAICmd_if_move_effect_type_not_eq: @ 0x08156F98 - push {lr} - bl ContestAICmd_get_move_effect_type - ldr r0, _08156FCC - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _08156FD0 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _08156FD4 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08156FD8 - .align 2, 0 -_08156FCC: .4byte gUnknown_2039BD4 -_08156FD0: .4byte gUnknown_203A804 -_08156FD4: - adds r0, r2, #5 - str r0, [r3] -_08156FD8: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_if_move_effect_type_not_eq - - thumb_func_start ContestAICmd_check_most_appealing_move -ContestAICmd_check_most_appealing_move: @ 0x08156FDC - push {r4, r5, r6, r7, lr} - ldr r2, _0815703C - ldr r5, _08157040 - ldr r0, [r5] - ldr r1, [r0, #0xc] - ldrb r0, [r1, #4] - lsls r0, r0, #1 - adds r1, #0x41 - ldrb r1, [r1] - lsls r1, r1, #6 - adds r0, r0, r1 - adds r2, #0x1e - adds r0, r0, r2 - ldrh r0, [r0] - ldr r3, _08157044 - ldr r4, _08157048 - lsls r0, r0, #3 - adds r0, r0, r4 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r7, [r0, #1] - movs r6, #0 - ldr r0, _0815704C - mov ip, r0 - adds r1, r1, r2 -_08157010: - ldrh r0, [r1] - cmp r0, #0 - beq _08157026 - lsls r0, r0, #3 - adds r0, r0, r4 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r0, [r0, #1] - cmp r7, r0 - blo _0815702E -_08157026: - adds r1, #2 - adds r6, #1 - cmp r6, #3 - ble _08157010 -_0815702E: - cmp r6, #4 - bne _08157050 - ldr r0, [r5] - ldr r1, [r0, #0xc] - movs r0, #1 - b _08157056 - .align 2, 0 -_0815703C: .4byte gUnknown_2039AA0 -_08157040: .4byte gUnknown_2039BD4 -_08157044: .4byte gUnknown_8566AE4 -_08157048: .4byte gUnknown_8565FCC -_0815704C: .4byte gUnknown_203A804 -_08157050: - ldr r0, [r5] - ldr r1, [r0, #0xc] - movs r0, #0 -_08157056: - strh r0, [r1, #0x18] - mov r1, ip - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ContestAICmd_check_most_appealing_move - - thumb_func_start ContestAICmd_if_most_appealing_move -ContestAICmd_if_most_appealing_move: @ 0x08157068 - push {lr} - bl ContestAICmd_check_most_appealing_move - ldr r0, _08157098 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _081570A0 - ldr r3, _0815709C - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, #1] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #2] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _081570A8 - .align 2, 0 -_08157098: .4byte gUnknown_2039BD4 -_0815709C: .4byte gUnknown_203A804 -_081570A0: - ldr r1, _081570AC - ldr r0, [r1] - adds r0, #4 - str r0, [r1] -_081570A8: - pop {r0} - bx r0 - .align 2, 0 -_081570AC: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_if_most_appealing_move - - thumb_func_start ContestAICmd_unk_2F -ContestAICmd_unk_2F: @ 0x081570B0 - push {r4, r5, r6, r7, lr} - ldr r2, _08157110 - ldr r5, _08157114 - ldr r0, [r5] - ldr r1, [r0, #0xc] - ldrb r0, [r1, #4] - lsls r0, r0, #1 - adds r1, #0x41 - ldrb r1, [r1] - lsls r1, r1, #6 - adds r0, r0, r1 - adds r2, #0x1e - adds r0, r0, r2 - ldrh r0, [r0] - ldr r3, _08157118 - ldr r4, _0815711C - lsls r0, r0, #3 - adds r0, r0, r4 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r7, [r0, #2] - movs r6, #0 - ldr r0, _08157120 - mov ip, r0 - adds r1, r1, r2 -_081570E4: - ldrh r0, [r1] - cmp r0, #0 - beq _081570FA - lsls r0, r0, #3 - adds r0, r0, r4 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r0, [r0, #2] - cmp r7, r0 - blo _08157102 -_081570FA: - adds r1, #2 - adds r6, #1 - cmp r6, #3 - ble _081570E4 -_08157102: - cmp r6, #4 - bne _08157124 - ldr r0, [r5] - ldr r1, [r0, #0xc] - movs r0, #1 - b _0815712A - .align 2, 0 -_08157110: .4byte gUnknown_2039AA0 -_08157114: .4byte gUnknown_2039BD4 -_08157118: .4byte gUnknown_8566AE4 -_0815711C: .4byte gUnknown_8565FCC -_08157120: .4byte gUnknown_203A804 -_08157124: - ldr r0, [r5] - ldr r1, [r0, #0xc] - movs r0, #0 -_0815712A: - strh r0, [r1, #0x18] - mov r1, ip - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ContestAICmd_unk_2F - - thumb_func_start ContestAICmd_unk_30 -ContestAICmd_unk_30: @ 0x0815713C - push {lr} - bl ContestAICmd_unk_2F - ldr r0, _0815716C - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _08157174 - ldr r3, _08157170 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _0815717C - .align 2, 0 -_0815716C: .4byte gUnknown_2039BD4 -_08157170: .4byte gUnknown_203A804 -_08157174: - ldr r1, _08157180 - ldr r0, [r1] - adds r0, #5 - str r0, [r1] -_0815717C: - pop {r0} - bx r0 - .align 2, 0 -_08157180: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_unk_30 - - thumb_func_start ContestAICmd_unk_31 -ContestAICmd_unk_31: @ 0x08157184 - push {r4, lr} - ldr r2, _081571CC - ldr r0, _081571D0 - ldr r0, [r0] - ldr r4, [r0, #0xc] - ldrb r1, [r4, #4] - lsls r1, r1, #1 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - lsls r0, r0, #6 - adds r1, r1, r0 - adds r2, #0x1e - adds r1, r1, r2 - ldrh r0, [r1] - ldr r2, _081571D4 - ldr r1, _081571D8 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #1] - movs r1, #0xa - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x18] - ldr r1, _081571DC - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081571CC: .4byte gUnknown_2039AA0 -_081571D0: .4byte gUnknown_2039BD4 -_081571D4: .4byte gUnknown_8566AE4 -_081571D8: .4byte gUnknown_8565FCC -_081571DC: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_unk_31 - - thumb_func_start sub_081571E0 -sub_081571E0: @ 0x081571E0 - push {lr} - bl ContestAICmd_unk_31 - ldr r0, _08157214 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _08157218 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _0815721C - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08157220 - .align 2, 0 -_08157214: .4byte gUnknown_2039BD4 -_08157218: .4byte gUnknown_203A804 -_0815721C: - adds r0, r2, #5 - str r0, [r3] -_08157220: - pop {r0} - bx r0 - thumb_func_end sub_081571E0 - - thumb_func_start sub_08157224 -sub_08157224: @ 0x08157224 - push {lr} - bl ContestAICmd_unk_31 - ldr r0, _08157258 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _0815725C - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _08157260 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08157264 - .align 2, 0 -_08157258: .4byte gUnknown_2039BD4 -_0815725C: .4byte gUnknown_203A804 -_08157260: - adds r0, r2, #5 - str r0, [r3] -_08157264: - pop {r0} - bx r0 - thumb_func_end sub_08157224 - - thumb_func_start sub_08157268 -sub_08157268: @ 0x08157268 - push {lr} - bl ContestAICmd_unk_31 - ldr r0, _0815729C - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _081572A0 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _081572A4 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _081572A8 - .align 2, 0 -_0815729C: .4byte gUnknown_2039BD4 -_081572A0: .4byte gUnknown_203A804 -_081572A4: - adds r0, r2, #5 - str r0, [r3] -_081572A8: - pop {r0} - bx r0 - thumb_func_end sub_08157268 - - thumb_func_start sub_081572AC -sub_081572AC: @ 0x081572AC - push {lr} - bl ContestAICmd_unk_31 - ldr r0, _081572E0 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _081572E4 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _081572E8 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _081572EC - .align 2, 0 -_081572E0: .4byte gUnknown_2039BD4 -_081572E4: .4byte gUnknown_203A804 -_081572E8: - adds r0, r2, #5 - str r0, [r3] -_081572EC: - pop {r0} - bx r0 - thumb_func_end sub_081572AC - - thumb_func_start ContestAICmd_unk_36 -ContestAICmd_unk_36: @ 0x081572F0 - push {r4, lr} - ldr r2, _08157338 - ldr r0, _0815733C - ldr r0, [r0] - ldr r4, [r0, #0xc] - ldrb r1, [r4, #4] - lsls r1, r1, #1 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - lsls r0, r0, #6 - adds r1, r1, r0 - adds r2, #0x1e - adds r1, r1, r2 - ldrh r0, [r1] - ldr r2, _08157340 - ldr r1, _08157344 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #2] - movs r1, #0xa - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x18] - ldr r1, _08157348 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08157338: .4byte gUnknown_2039AA0 -_0815733C: .4byte gUnknown_2039BD4 -_08157340: .4byte gUnknown_8566AE4 -_08157344: .4byte gUnknown_8565FCC -_08157348: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_unk_36 - - thumb_func_start sub_0815734C -sub_0815734C: @ 0x0815734C - push {lr} - bl ContestAICmd_unk_36 - ldr r0, _08157380 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _08157384 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _08157388 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _0815738C - .align 2, 0 -_08157380: .4byte gUnknown_2039BD4 -_08157384: .4byte gUnknown_203A804 -_08157388: - adds r0, r2, #5 - str r0, [r3] -_0815738C: - pop {r0} - bx r0 - thumb_func_end sub_0815734C - - thumb_func_start sub_08157390 -sub_08157390: @ 0x08157390 - push {lr} - bl ContestAICmd_unk_36 - ldr r0, _081573C4 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _081573C8 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _081573CC - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _081573D0 - .align 2, 0 -_081573C4: .4byte gUnknown_2039BD4 -_081573C8: .4byte gUnknown_203A804 -_081573CC: - adds r0, r2, #5 - str r0, [r3] -_081573D0: - pop {r0} - bx r0 - thumb_func_end sub_08157390 - - thumb_func_start sub_081573D4 -sub_081573D4: @ 0x081573D4 - push {lr} - bl ContestAICmd_unk_36 - ldr r0, _08157408 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _0815740C - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _08157410 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08157414 - .align 2, 0 -_08157408: .4byte gUnknown_2039BD4 -_0815740C: .4byte gUnknown_203A804 -_08157410: - adds r0, r2, #5 - str r0, [r3] -_08157414: - pop {r0} - bx r0 - thumb_func_end sub_081573D4 - - thumb_func_start sub_08157418 -sub_08157418: @ 0x08157418 - push {lr} - bl ContestAICmd_unk_36 - ldr r0, _0815744C - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _08157450 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _08157454 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08157458 - .align 2, 0 -_0815744C: .4byte gUnknown_2039BD4 -_08157450: .4byte gUnknown_203A804 -_08157454: - adds r0, r2, #5 - str r0, [r3] -_08157458: - pop {r0} - bx r0 - thumb_func_end sub_08157418 - - thumb_func_start ContestAICmd_get_move_used_count -ContestAICmd_get_move_used_count: @ 0x0815745C - push {r4, r5, lr} - ldr r3, _0815748C - ldr r5, _08157490 - ldr r4, [r5] - ldr r1, [r4, #0xc] - ldrb r0, [r1, #4] - lsls r0, r0, #1 - adds r1, #0x41 - ldrb r2, [r1] - lsls r1, r2, #6 - adds r0, r0, r1 - adds r3, #0x1e - adds r0, r0, r3 - ldrh r3, [r0] - ldr r1, [r4, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r1, [r0, #8] - cmp r3, r1 - beq _08157494 - movs r1, #0 - b _0815749C - .align 2, 0 -_0815748C: .4byte gUnknown_2039AA0 -_08157490: .4byte gUnknown_2039BD4 -_08157494: - ldrb r0, [r0, #0xb] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1d - adds r1, r0, #1 -_0815749C: - ldr r0, [r5] - ldr r0, [r0, #0xc] - strh r1, [r0, #0x18] - ldr r1, _081574B0 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081574B0: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_get_move_used_count - - thumb_func_start ContestAICmd_if_most_used_count_less_than -ContestAICmd_if_most_used_count_less_than: @ 0x081574B4 - push {lr} - bl ContestAICmd_get_move_used_count - ldr r0, _081574E8 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _081574EC - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _081574F0 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _081574F4 - .align 2, 0 -_081574E8: .4byte gUnknown_2039BD4 -_081574EC: .4byte gUnknown_203A804 -_081574F0: - adds r0, r2, #5 - str r0, [r3] -_081574F4: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_if_most_used_count_less_than - - thumb_func_start ContestAICmd_if_most_used_count_more_than -ContestAICmd_if_most_used_count_more_than: @ 0x081574F8 - push {lr} - bl ContestAICmd_get_move_used_count - ldr r0, _0815752C - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _08157530 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _08157534 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08157538 - .align 2, 0 -_0815752C: .4byte gUnknown_2039BD4 -_08157530: .4byte gUnknown_203A804 -_08157534: - adds r0, r2, #5 - str r0, [r3] -_08157538: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_if_most_used_count_more_than - - thumb_func_start ContestAICmd_if_most_used_count_eq -ContestAICmd_if_most_used_count_eq: @ 0x0815753C - push {lr} - bl ContestAICmd_get_move_used_count - ldr r0, _08157570 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _08157574 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _08157578 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _0815757C - .align 2, 0 -_08157570: .4byte gUnknown_2039BD4 -_08157574: .4byte gUnknown_203A804 -_08157578: - adds r0, r2, #5 - str r0, [r3] -_0815757C: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_if_most_used_count_eq - - thumb_func_start ContestAICmd_if_most_used_count_not_eq -ContestAICmd_if_most_used_count_not_eq: @ 0x08157580 - push {lr} - bl ContestAICmd_get_move_used_count - ldr r0, _081575B4 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _081575B8 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _081575BC - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _081575C0 - .align 2, 0 -_081575B4: .4byte gUnknown_2039BD4 -_081575B8: .4byte gUnknown_203A804 -_081575BC: - adds r0, r2, #5 - str r0, [r3] -_081575C0: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_if_most_used_count_not_eq - - thumb_func_start ContestAICmd_check_combo_starter -ContestAICmd_check_combo_starter: @ 0x081575C4 - push {r4, r5, r6, lr} - movs r3, #0 - ldr r2, _08157630 - ldr r0, _08157634 - ldr r0, [r0] - ldr r0, [r0, #0xc] - ldrb r1, [r0, #4] - lsls r1, r1, #1 - adds r0, #0x41 - ldrb r0, [r0] - lsls r0, r0, #6 - adds r1, r1, r0 - adds r2, #0x1e - adds r1, r1, r2 - ldrh r5, [r1] - movs r4, #0 - adds r6, r2, #0 -_081575E6: - lsls r1, r4, #1 - ldr r0, _08157634 - ldr r0, [r0] - ldr r0, [r0, #0xc] - adds r0, #0x41 - ldrb r0, [r0] - lsls r0, r0, #6 - adds r1, r1, r0 - adds r1, r1, r6 - ldrh r0, [r1] - cmp r0, #0 - beq _0815760E - adds r1, r0, #0 - adds r0, r5, #0 - bl AreMovesContestCombo - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - bne _08157618 -_0815760E: - adds r4, #1 - cmp r4, #3 - ble _081575E6 - cmp r3, #0 - beq _0815761A -_08157618: - movs r3, #1 -_0815761A: - ldr r0, _08157634 - ldr r0, [r0] - ldr r0, [r0, #0xc] - strh r3, [r0, #0x18] - ldr r1, _08157638 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08157630: .4byte gUnknown_2039AA0 -_08157634: .4byte gUnknown_2039BD4 -_08157638: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_check_combo_starter - - thumb_func_start sub_0815763C -sub_0815763C: @ 0x0815763C - push {lr} - bl ContestAICmd_check_combo_starter - ldr r0, _0815766C - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _08157674 - ldr r3, _08157670 - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, #1] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #2] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _0815767C - .align 2, 0 -_0815766C: .4byte gUnknown_2039BD4 -_08157670: .4byte gUnknown_203A804 -_08157674: - ldr r1, _08157680 - ldr r0, [r1] - adds r0, #4 - str r0, [r1] -_0815767C: - pop {r0} - bx r0 - .align 2, 0 -_08157680: .4byte gUnknown_203A804 - thumb_func_end sub_0815763C - - thumb_func_start sub_08157684 -sub_08157684: @ 0x08157684 - push {lr} - bl ContestAICmd_check_combo_starter - ldr r0, _081576B4 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _081576BC - ldr r3, _081576B8 - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, #1] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #2] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _081576C4 - .align 2, 0 -_081576B4: .4byte gUnknown_2039BD4 -_081576B8: .4byte gUnknown_203A804 -_081576BC: - ldr r1, _081576C8 - ldr r0, [r1] - adds r0, #4 - str r0, [r1] -_081576C4: - pop {r0} - bx r0 - .align 2, 0 -_081576C8: .4byte gUnknown_203A804 - thumb_func_end sub_08157684 - - thumb_func_start ContestAICmd_check_combo_finisher -ContestAICmd_check_combo_finisher: @ 0x081576CC - push {r4, r5, r6, lr} - movs r3, #0 - ldr r2, _08157738 - ldr r0, _0815773C - ldr r0, [r0] - ldr r0, [r0, #0xc] - ldrb r1, [r0, #4] - lsls r1, r1, #1 - adds r0, #0x41 - ldrb r0, [r0] - lsls r0, r0, #6 - adds r1, r1, r0 - adds r2, #0x1e - adds r1, r1, r2 - ldrh r5, [r1] - movs r4, #0 - adds r6, r2, #0 -_081576EE: - lsls r1, r4, #1 - ldr r0, _0815773C - ldr r0, [r0] - ldr r0, [r0, #0xc] - adds r0, #0x41 - ldrb r0, [r0] - lsls r0, r0, #6 - adds r1, r1, r0 - adds r1, r1, r6 - ldrh r0, [r1] - cmp r0, #0 - beq _08157714 - adds r1, r5, #0 - bl AreMovesContestCombo - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - bne _0815771E -_08157714: - adds r4, #1 - cmp r4, #3 - ble _081576EE - cmp r3, #0 - beq _08157720 -_0815771E: - movs r3, #1 -_08157720: - ldr r0, _0815773C - ldr r0, [r0] - ldr r0, [r0, #0xc] - strh r3, [r0, #0x18] - ldr r1, _08157740 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08157738: .4byte gUnknown_2039AA0 -_0815773C: .4byte gUnknown_2039BD4 -_08157740: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_check_combo_finisher - - thumb_func_start sub_08157744 -sub_08157744: @ 0x08157744 - push {lr} - bl ContestAICmd_check_combo_finisher - ldr r0, _08157774 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _0815777C - ldr r3, _08157778 - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, #1] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #2] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08157784 - .align 2, 0 -_08157774: .4byte gUnknown_2039BD4 -_08157778: .4byte gUnknown_203A804 -_0815777C: - ldr r1, _08157788 - ldr r0, [r1] - adds r0, #4 - str r0, [r1] -_08157784: - pop {r0} - bx r0 - .align 2, 0 -_08157788: .4byte gUnknown_203A804 - thumb_func_end sub_08157744 - - thumb_func_start sub_0815778C -sub_0815778C: @ 0x0815778C - push {lr} - bl ContestAICmd_check_combo_finisher - ldr r0, _081577BC - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _081577C4 - ldr r3, _081577C0 - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, #1] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #2] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _081577CC - .align 2, 0 -_081577BC: .4byte gUnknown_2039BD4 -_081577C0: .4byte gUnknown_203A804 -_081577C4: - ldr r1, _081577D0 - ldr r0, [r1] - adds r0, #4 - str r0, [r1] -_081577CC: - pop {r0} - bx r0 - .align 2, 0 -_081577D0: .4byte gUnknown_203A804 - thumb_func_end sub_0815778C - - thumb_func_start ContestAICmd_check_would_finish_combo -ContestAICmd_check_would_finish_combo: @ 0x081577D4 - push {r4, r5, r6, lr} - movs r5, #0 - ldr r3, _08157828 - ldr r6, _0815782C - ldr r4, [r6] - ldr r1, [r4, #0xc] - ldrb r0, [r1, #4] - lsls r0, r0, #1 - adds r1, #0x41 - ldrb r2, [r1] - lsls r1, r2, #6 - adds r0, r0, r1 - adds r3, #0x1e - adds r0, r0, r3 - ldrh r3, [r0] - ldr r1, [r4, #4] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r1, r0, r1 - ldrh r0, [r1, #8] - cmp r0, #0 - beq _0815780C - adds r1, r3, #0 - bl AreMovesContestCombo - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_0815780C: - cmp r5, #0 - beq _08157812 - movs r5, #1 -_08157812: - ldr r0, [r6] - ldr r0, [r0, #0xc] - strh r5, [r0, #0x18] - ldr r1, _08157830 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08157828: .4byte gUnknown_2039AA0 -_0815782C: .4byte gUnknown_2039BD4 -_08157830: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_check_would_finish_combo - - thumb_func_start ContestAICmd_if_would_finish_combo -ContestAICmd_if_would_finish_combo: @ 0x08157834 - push {lr} - bl ContestAICmd_check_would_finish_combo - ldr r0, _08157864 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _0815786C - ldr r3, _08157868 - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, #1] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #2] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08157874 - .align 2, 0 -_08157864: .4byte gUnknown_2039BD4 -_08157868: .4byte gUnknown_203A804 -_0815786C: - ldr r1, _08157878 - ldr r0, [r1] - adds r0, #4 - str r0, [r1] -_08157874: - pop {r0} - bx r0 - .align 2, 0 -_08157878: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_if_would_finish_combo - - thumb_func_start ContestAICmd_if_would_not_finish_combo -ContestAICmd_if_would_not_finish_combo: @ 0x0815787C - push {lr} - bl ContestAICmd_check_would_finish_combo - ldr r0, _081578AC - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _081578B4 - ldr r3, _081578B0 - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, #1] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #2] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _081578BC - .align 2, 0 -_081578AC: .4byte gUnknown_2039BD4 -_081578B0: .4byte gUnknown_203A804 -_081578B4: - ldr r1, _081578C0 - ldr r0, [r1] - adds r0, #4 - str r0, [r1] -_081578BC: - pop {r0} - bx r0 - .align 2, 0 -_081578C0: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_if_would_not_finish_combo - - thumb_func_start ContestAICmd_get_condition -ContestAICmd_get_condition: @ 0x081578C4 - push {r4, r5, lr} - ldr r4, _08157900 - ldr r0, [r4] - ldrb r0, [r0, #1] - bl sub_081563E8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08157904 - ldr r1, [r1] - ldr r5, [r1, #0xc] - ldr r2, [r1, #4] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #0xd - ldrsb r0, [r1, r0] - movs r1, #0xa - bl __divsi3 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - strh r0, [r5, #0x18] - ldr r0, [r4] - adds r0, #2 - str r0, [r4] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08157900: .4byte gUnknown_203A804 -_08157904: .4byte gUnknown_2039BD4 - thumb_func_end ContestAICmd_get_condition - - thumb_func_start ContestAICmd_if_condition_less_than -ContestAICmd_if_condition_less_than: @ 0x08157908 - push {lr} - bl ContestAICmd_get_condition - ldr r0, _0815793C - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _08157940 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _08157944 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08157948 - .align 2, 0 -_0815793C: .4byte gUnknown_2039BD4 -_08157940: .4byte gUnknown_203A804 -_08157944: - adds r0, r2, #5 - str r0, [r3] -_08157948: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_if_condition_less_than - - thumb_func_start ContestAICmd_if_condition_more_than -ContestAICmd_if_condition_more_than: @ 0x0815794C - push {lr} - bl ContestAICmd_get_condition - ldr r0, _08157980 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _08157984 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _08157988 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _0815798C - .align 2, 0 -_08157980: .4byte gUnknown_2039BD4 -_08157984: .4byte gUnknown_203A804 -_08157988: - adds r0, r2, #5 - str r0, [r3] -_0815798C: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_if_condition_more_than - - thumb_func_start ContestAICmd_if_condition_eq -ContestAICmd_if_condition_eq: @ 0x08157990 - push {lr} - bl ContestAICmd_get_condition - ldr r0, _081579C4 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _081579C8 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _081579CC - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _081579D0 - .align 2, 0 -_081579C4: .4byte gUnknown_2039BD4 -_081579C8: .4byte gUnknown_203A804 -_081579CC: - adds r0, r2, #5 - str r0, [r3] -_081579D0: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_if_condition_eq - - thumb_func_start ContestAICmd_if_condition_not_eq -ContestAICmd_if_condition_not_eq: @ 0x081579D4 - push {lr} - bl ContestAICmd_get_condition - ldr r0, _08157A08 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _08157A0C - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _08157A10 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08157A14 - .align 2, 0 -_08157A08: .4byte gUnknown_2039BD4 -_08157A0C: .4byte gUnknown_203A804 -_08157A10: - adds r0, r2, #5 - str r0, [r3] -_08157A14: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_if_condition_not_eq - - thumb_func_start ContestAICmd_get_used_combo_starter -ContestAICmd_get_used_combo_starter: @ 0x08157A18 - push {r4, r5, r6, lr} - movs r6, #0 - ldr r5, _08157A68 - ldr r0, [r5] - ldrb r0, [r0, #1] - bl sub_081563E8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl sub_080DD94C - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08157A54 - ldr r2, _08157A6C - ldr r0, _08157A70 - ldr r0, [r0] - ldr r1, [r0, #4] - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0, #8] - lsls r0, r0, #3 - adds r0, r0, r2 - ldrb r1, [r0, #2] - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r6, r0, #0x1f -_08157A54: - ldr r0, _08157A70 - ldr r0, [r0] - ldr r0, [r0, #0xc] - strh r6, [r0, #0x18] - ldr r0, [r5] - adds r0, #2 - str r0, [r5] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08157A68: .4byte gUnknown_203A804 -_08157A6C: .4byte gUnknown_8565FCC -_08157A70: .4byte gUnknown_2039BD4 - thumb_func_end ContestAICmd_get_used_combo_starter - - thumb_func_start sub_08157A74 -sub_08157A74: @ 0x08157A74 - push {lr} - bl ContestAICmd_get_used_combo_starter - ldr r0, _08157AA8 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _08157AAC - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _08157AB0 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08157AB4 - .align 2, 0 -_08157AA8: .4byte gUnknown_2039BD4 -_08157AAC: .4byte gUnknown_203A804 -_08157AB0: - adds r0, r2, #5 - str r0, [r3] -_08157AB4: - pop {r0} - bx r0 - thumb_func_end sub_08157A74 - - thumb_func_start sub_08157AB8 -sub_08157AB8: @ 0x08157AB8 - push {lr} - bl ContestAICmd_get_used_combo_starter - ldr r0, _08157AEC - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _08157AF0 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _08157AF4 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08157AF8 - .align 2, 0 -_08157AEC: .4byte gUnknown_2039BD4 -_08157AF0: .4byte gUnknown_203A804 -_08157AF4: - adds r0, r2, #5 - str r0, [r3] -_08157AF8: - pop {r0} - bx r0 - thumb_func_end sub_08157AB8 - - thumb_func_start sub_08157AFC -sub_08157AFC: @ 0x08157AFC - push {lr} - bl ContestAICmd_get_used_combo_starter - ldr r0, _08157B30 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _08157B34 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _08157B38 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08157B3C - .align 2, 0 -_08157B30: .4byte gUnknown_2039BD4 -_08157B34: .4byte gUnknown_203A804 -_08157B38: - adds r0, r2, #5 - str r0, [r3] -_08157B3C: - pop {r0} - bx r0 - thumb_func_end sub_08157AFC - - thumb_func_start sub_08157B40 -sub_08157B40: @ 0x08157B40 - push {lr} - bl ContestAICmd_get_used_combo_starter - ldr r0, _08157B74 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _08157B78 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _08157B7C - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08157B80 - .align 2, 0 -_08157B74: .4byte gUnknown_2039BD4 -_08157B78: .4byte gUnknown_203A804 -_08157B7C: - adds r0, r2, #5 - str r0, [r3] -_08157B80: - pop {r0} - bx r0 - thumb_func_end sub_08157B40 - - thumb_func_start ContestAICmd_check_can_participate -ContestAICmd_check_can_participate: @ 0x08157B84 - push {lr} - ldr r0, _08157BA8 - ldr r0, [r0] - ldrb r0, [r0, #1] - bl sub_081563E8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl Contest_IsMonsTurnDisabled - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08157BB0 - ldr r0, _08157BAC - ldr r0, [r0] - ldr r1, [r0, #0xc] - movs r0, #0 - b _08157BB8 - .align 2, 0 -_08157BA8: .4byte gUnknown_203A804 -_08157BAC: .4byte gUnknown_2039BD4 -_08157BB0: - ldr r0, _08157BC8 - ldr r0, [r0] - ldr r1, [r0, #0xc] - movs r0, #1 -_08157BB8: - strh r0, [r1, #0x18] - ldr r1, _08157BCC - ldr r0, [r1] - adds r0, #2 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08157BC8: .4byte gUnknown_2039BD4 -_08157BCC: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_check_can_participate - - thumb_func_start ContestAICmd_if_can_participate -ContestAICmd_if_can_participate: @ 0x08157BD0 - push {lr} - bl ContestAICmd_check_can_participate - ldr r0, _08157C00 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _08157C08 - ldr r3, _08157C04 - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, #1] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #2] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08157C10 - .align 2, 0 -_08157C00: .4byte gUnknown_2039BD4 -_08157C04: .4byte gUnknown_203A804 -_08157C08: - ldr r1, _08157C14 - ldr r0, [r1] - adds r0, #4 - str r0, [r1] -_08157C10: - pop {r0} - bx r0 - .align 2, 0 -_08157C14: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_if_can_participate - - thumb_func_start ContestAICmd_if_cannot_participate -ContestAICmd_if_cannot_participate: @ 0x08157C18 - push {lr} - bl ContestAICmd_check_can_participate - ldr r0, _08157C48 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08157C50 - ldr r3, _08157C4C - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, #1] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #2] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08157C58 - .align 2, 0 -_08157C48: .4byte gUnknown_2039BD4 -_08157C4C: .4byte gUnknown_203A804 -_08157C50: - ldr r1, _08157C5C - ldr r0, [r1] - adds r0, #4 - str r0, [r1] -_08157C58: - pop {r0} - bx r0 - .align 2, 0 -_08157C5C: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_if_cannot_participate - - thumb_func_start ContestAICmd_get_val_812A188 -ContestAICmd_get_val_812A188: @ 0x08157C60 - push {r4, lr} - ldr r4, _08157C94 - ldr r0, [r4] - ldrb r0, [r0, #1] - bl sub_081563E8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08157C98 - ldr r1, [r1] - ldr r3, [r1, #0xc] - ldr r2, [r1, #4] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r0, [r1, #0x15] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1f - strh r0, [r3, #0x18] - ldr r0, [r4] - adds r0, #2 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08157C94: .4byte gUnknown_203A804 -_08157C98: .4byte gUnknown_2039BD4 - thumb_func_end ContestAICmd_get_val_812A188 - - thumb_func_start ContestAICmd_unk_57 -ContestAICmd_unk_57: @ 0x08157C9C - push {lr} - bl ContestAICmd_get_val_812A188 - ldr r0, _08157CCC - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _08157CD4 - ldr r3, _08157CD0 - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, #1] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #2] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08157CDC - .align 2, 0 -_08157CCC: .4byte gUnknown_2039BD4 -_08157CD0: .4byte gUnknown_203A804 -_08157CD4: - ldr r1, _08157CE0 - ldr r0, [r1] - adds r0, #4 - str r0, [r1] -_08157CDC: - pop {r0} - bx r0 - .align 2, 0 -_08157CE0: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_unk_57 - - thumb_func_start ContestAICmd_contest_58 -ContestAICmd_contest_58: @ 0x08157CE4 - push {lr} - bl ContestAICmd_get_val_812A188 - ldr r0, _08157D14 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08157D1C - ldr r3, _08157D18 - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, #1] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #2] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08157D24 - .align 2, 0 -_08157D14: .4byte gUnknown_2039BD4 -_08157D18: .4byte gUnknown_203A804 -_08157D1C: - ldr r1, _08157D28 - ldr r0, [r1] - adds r0, #4 - str r0, [r1] -_08157D24: - pop {r0} - bx r0 - .align 2, 0 -_08157D28: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_contest_58 - - thumb_func_start ContestAICmd_unk_59 -ContestAICmd_unk_59: @ 0x08157D2C - push {r4, r5, lr} - ldr r4, _08157D70 - ldr r0, [r4] - ldrb r0, [r0, #1] - bl sub_081563E8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08157D74 - ldr r1, [r1] - ldr r5, [r1, #0xc] - ldr r3, [r1, #4] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - adds r0, r5, #0 - adds r0, #0x41 - ldrb r2, [r0] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r1, #4] - ldrh r0, [r0, #4] - subs r1, r1, r0 - strh r1, [r5, #0x18] - ldr r0, [r4] - adds r0, #2 - str r0, [r4] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08157D70: .4byte gUnknown_203A804 -_08157D74: .4byte gUnknown_2039BD4 - thumb_func_end ContestAICmd_unk_59 - - thumb_func_start ContestAICmd_unk_5A -ContestAICmd_unk_5A: @ 0x08157D78 - push {lr} - bl ContestAICmd_unk_59 - ldr r0, _08157DA8 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - cmp r0, #0 - bge _08157DB0 - ldr r3, _08157DAC - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, #1] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #2] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08157DB8 - .align 2, 0 -_08157DA8: .4byte gUnknown_2039BD4 -_08157DAC: .4byte gUnknown_203A804 -_08157DB0: - ldr r1, _08157DBC - ldr r0, [r1] - adds r0, #4 - str r0, [r1] -_08157DB8: - pop {r0} - bx r0 - .align 2, 0 -_08157DBC: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_unk_5A - - thumb_func_start sub_08157DC0 -sub_08157DC0: @ 0x08157DC0 - push {lr} - bl ContestAICmd_unk_59 - ldr r0, _08157DF0 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - cmp r0, #0 - ble _08157DF8 - ldr r3, _08157DF4 - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, #1] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #2] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08157E00 - .align 2, 0 -_08157DF0: .4byte gUnknown_2039BD4 -_08157DF4: .4byte gUnknown_203A804 -_08157DF8: - ldr r1, _08157E04 - ldr r0, [r1] - adds r0, #4 - str r0, [r1] -_08157E00: - pop {r0} - bx r0 - .align 2, 0 -_08157E04: .4byte gUnknown_203A804 - thumb_func_end sub_08157DC0 - - thumb_func_start ContestAICmd_unk_5C -ContestAICmd_unk_5C: @ 0x08157E08 - push {lr} - bl ContestAICmd_unk_59 - ldr r0, _08157E38 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08157E40 - ldr r3, _08157E3C - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, #1] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #2] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08157E48 - .align 2, 0 -_08157E38: .4byte gUnknown_2039BD4 -_08157E3C: .4byte gUnknown_203A804 -_08157E40: - ldr r1, _08157E4C - ldr r0, [r1] - adds r0, #4 - str r0, [r1] -_08157E48: - pop {r0} - bx r0 - .align 2, 0 -_08157E4C: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_unk_5C - - thumb_func_start ContestAICmd_unk_5D -ContestAICmd_unk_5D: @ 0x08157E50 - push {lr} - bl ContestAICmd_unk_59 - ldr r0, _08157E80 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _08157E88 - ldr r3, _08157E84 - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, #1] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #2] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08157E90 - .align 2, 0 -_08157E80: .4byte gUnknown_2039BD4 -_08157E84: .4byte gUnknown_203A804 -_08157E88: - ldr r1, _08157E94 - ldr r0, [r1] - adds r0, #4 - str r0, [r1] -_08157E90: - pop {r0} - bx r0 - .align 2, 0 -_08157E94: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_unk_5D - - thumb_func_start ContestAICmd_unk_5E -ContestAICmd_unk_5E: @ 0x08157E98 - push {r4, lr} - ldr r4, _08157ED0 - ldr r0, [r4] - ldrb r0, [r0, #1] - bl sub_081563E8 - lsls r0, r0, #0x18 - ldr r1, _08157ED4 - ldr r1, [r1] - ldr r3, [r1, #0xc] - ldr r2, _08157ED8 - lsrs r0, r0, #0x17 - adds r0, r0, r2 - adds r1, r3, #0 - adds r1, #0x41 - ldrb r1, [r1] - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r0, [r0] - ldrh r1, [r1] - subs r0, r0, r1 - strh r0, [r3, #0x18] - ldr r0, [r4] - adds r0, #2 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08157ED0: .4byte gUnknown_203A804 -_08157ED4: .4byte gUnknown_2039BD4 -_08157ED8: .4byte gUnknown_2039BA0 - thumb_func_end ContestAICmd_unk_5E - - thumb_func_start ContestAICmd_unk_5F -ContestAICmd_unk_5F: @ 0x08157EDC - push {lr} - bl ContestAICmd_unk_5E - ldr r0, _08157F0C - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - cmp r0, #0 - bge _08157F14 - ldr r3, _08157F10 - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, #1] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #2] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08157F1C - .align 2, 0 -_08157F0C: .4byte gUnknown_2039BD4 -_08157F10: .4byte gUnknown_203A804 -_08157F14: - ldr r1, _08157F20 - ldr r0, [r1] - adds r0, #4 - str r0, [r1] -_08157F1C: - pop {r0} - bx r0 - .align 2, 0 -_08157F20: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_unk_5F - - thumb_func_start ContestAICmd_unk_60 -ContestAICmd_unk_60: @ 0x08157F24 - push {lr} - bl ContestAICmd_unk_5E - ldr r0, _08157F54 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - cmp r0, #0 - ble _08157F5C - ldr r3, _08157F58 - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, #1] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #2] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08157F64 - .align 2, 0 -_08157F54: .4byte gUnknown_2039BD4 -_08157F58: .4byte gUnknown_203A804 -_08157F5C: - ldr r1, _08157F68 - ldr r0, [r1] - adds r0, #4 - str r0, [r1] -_08157F64: - pop {r0} - bx r0 - .align 2, 0 -_08157F68: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_unk_60 - - thumb_func_start ContestAICmd_unk_61 -ContestAICmd_unk_61: @ 0x08157F6C - push {lr} - bl ContestAICmd_unk_5E - ldr r0, _08157F9C - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08157FA4 - ldr r3, _08157FA0 - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, #1] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #2] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08157FAC - .align 2, 0 -_08157F9C: .4byte gUnknown_2039BD4 -_08157FA0: .4byte gUnknown_203A804 -_08157FA4: - ldr r1, _08157FB0 - ldr r0, [r1] - adds r0, #4 - str r0, [r1] -_08157FAC: - pop {r0} - bx r0 - .align 2, 0 -_08157FB0: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_unk_61 - - thumb_func_start ContestAICmd_unk_62 -ContestAICmd_unk_62: @ 0x08157FB4 - push {lr} - bl ContestAICmd_unk_5E - ldr r0, _08157FE4 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _08157FEC - ldr r3, _08157FE8 - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, #1] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #2] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08157FF4 - .align 2, 0 -_08157FE4: .4byte gUnknown_2039BD4 -_08157FE8: .4byte gUnknown_203A804 -_08157FEC: - ldr r1, _08157FF8 - ldr r0, [r1] - adds r0, #4 - str r0, [r1] -_08157FF4: - pop {r0} - bx r0 - .align 2, 0 -_08157FF8: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_unk_62 - - thumb_func_start ContestAICmd_unk_63 -ContestAICmd_unk_63: @ 0x08157FFC - push {r4, r5, lr} - ldr r5, _08158038 - ldr r0, [r5] - ldrb r0, [r0, #1] - bl sub_081563E8 - lsls r0, r0, #0x18 - ldr r3, [r5] - ldrb r2, [r3, #2] - ldr r1, _0815803C - ldr r4, [r1] - ldr r1, [r4] - lsrs r0, r0, #0x17 - lsls r2, r2, #3 - adds r0, r0, r2 - adds r1, #0x1c - adds r1, r1, r0 - ldrh r0, [r1] - ldr r2, [r4, #0xc] - ldr r1, _08158040 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r0, [r0] - strh r0, [r2, #0x18] - adds r3, #3 - str r3, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08158038: .4byte gUnknown_203A804 -_0815803C: .4byte gUnknown_2039BD4 -_08158040: .4byte gUnknown_8565FCC - thumb_func_end ContestAICmd_unk_63 - - thumb_func_start ContestAICmd_unk_64 -ContestAICmd_unk_64: @ 0x08158044 - push {lr} - bl ContestAICmd_unk_63 - ldr r0, _08158078 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _0815807C - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _08158080 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08158084 - .align 2, 0 -_08158078: .4byte gUnknown_2039BD4 -_0815807C: .4byte gUnknown_203A804 -_08158080: - adds r0, r2, #5 - str r0, [r3] -_08158084: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_64 - - thumb_func_start ContestAICmd_unk_65 -ContestAICmd_unk_65: @ 0x08158088 - push {lr} - bl ContestAICmd_unk_63 - ldr r0, _081580BC - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _081580C0 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _081580C4 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _081580C8 - .align 2, 0 -_081580BC: .4byte gUnknown_2039BD4 -_081580C0: .4byte gUnknown_203A804 -_081580C4: - adds r0, r2, #5 - str r0, [r3] -_081580C8: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_65 - - thumb_func_start ContestAICmd_unk_66 -ContestAICmd_unk_66: @ 0x081580CC - push {lr} - bl ContestAICmd_unk_63 - ldr r0, _08158100 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _08158104 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _08158108 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _0815810C - .align 2, 0 -_08158100: .4byte gUnknown_2039BD4 -_08158104: .4byte gUnknown_203A804 -_08158108: - adds r0, r2, #5 - str r0, [r3] -_0815810C: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_66 - - thumb_func_start ContestAICmd_unk_67 -ContestAICmd_unk_67: @ 0x08158110 - push {lr} - bl ContestAICmd_unk_63 - ldr r0, _08158144 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _08158148 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _0815814C - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08158150 - .align 2, 0 -_08158144: .4byte gUnknown_2039BD4 -_08158148: .4byte gUnknown_203A804 -_0815814C: - adds r0, r2, #5 - str r0, [r3] -_08158150: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_67 - - thumb_func_start ContestAICmd_unk_68 -ContestAICmd_unk_68: @ 0x08158154 - push {r4, r5, lr} - ldr r5, _08158188 - ldr r0, [r5] - ldrb r0, [r0, #1] - bl sub_081563E8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, [r5] - ldrb r2, [r3, #2] - ldr r1, _0815818C - ldr r4, [r1] - ldr r1, [r4] - lsls r2, r2, #2 - adds r0, r0, r2 - adds r1, #0x44 - adds r1, r1, r0 - ldr r2, [r4, #0xc] - movs r0, #0 - ldrsb r0, [r1, r0] - strh r0, [r2, #0x18] - adds r3, #3 - str r3, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08158188: .4byte gUnknown_203A804 -_0815818C: .4byte gUnknown_2039BD4 - thumb_func_end ContestAICmd_unk_68 - - thumb_func_start ContestAICmd_unk_69 -ContestAICmd_unk_69: @ 0x08158190 - push {lr} - bl ContestAICmd_unk_68 - ldr r0, _081581C4 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _081581C8 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _081581CC - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _081581D0 - .align 2, 0 -_081581C4: .4byte gUnknown_2039BD4 -_081581C8: .4byte gUnknown_203A804 -_081581CC: - adds r0, r2, #5 - str r0, [r3] -_081581D0: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_69 - - thumb_func_start ContestAICmd_unk_6A -ContestAICmd_unk_6A: @ 0x081581D4 - push {lr} - bl ContestAICmd_unk_68 - ldr r0, _08158208 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _0815820C - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _08158210 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08158214 - .align 2, 0 -_08158208: .4byte gUnknown_2039BD4 -_0815820C: .4byte gUnknown_203A804 -_08158210: - adds r0, r2, #5 - str r0, [r3] -_08158214: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_6A - - thumb_func_start ContestAICmd_unk_6B -ContestAICmd_unk_6B: @ 0x08158218 - push {lr} - bl ContestAICmd_unk_68 - ldr r0, _0815824C - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _08158250 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _08158254 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08158258 - .align 2, 0 -_0815824C: .4byte gUnknown_2039BD4 -_08158250: .4byte gUnknown_203A804 -_08158254: - adds r0, r2, #5 - str r0, [r3] -_08158258: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_6B - - thumb_func_start ContestAICmd_unk_6C -ContestAICmd_unk_6C: @ 0x0815825C - push {lr} - bl ContestAICmd_unk_68 - ldr r0, _08158290 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _08158294 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _08158298 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _0815829C - .align 2, 0 -_08158290: .4byte gUnknown_2039BD4 -_08158294: .4byte gUnknown_203A804 -_08158298: - adds r0, r2, #5 - str r0, [r3] -_0815829C: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_6C - - thumb_func_start ContestAICmd_unk_6D -ContestAICmd_unk_6D: @ 0x081582A0 - push {r4, r5, lr} - ldr r5, _081582E4 - ldr r0, [r5] - ldrb r0, [r0, #1] - bl sub_081563E8 - lsls r0, r0, #0x18 - ldr r3, [r5] - ldrb r2, [r3, #2] - ldr r1, _081582E8 - ldr r4, [r1] - ldr r1, [r4] - lsrs r0, r0, #0x17 - lsls r2, r2, #3 - adds r0, r0, r2 - adds r1, #0x1c - adds r1, r1, r0 - ldrh r0, [r1] - ldr r4, [r4, #0xc] - ldr r2, _081582EC - ldr r1, _081582F0 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0] - strh r0, [r4, #0x18] - adds r3, #3 - str r3, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081582E4: .4byte gUnknown_203A804 -_081582E8: .4byte gUnknown_2039BD4 -_081582EC: .4byte gUnknown_8566AE4 -_081582F0: .4byte gUnknown_8565FCC - thumb_func_end ContestAICmd_unk_6D - - thumb_func_start ContestAICmd_unk_6E -ContestAICmd_unk_6E: @ 0x081582F4 - push {lr} - bl ContestAICmd_unk_6D - ldr r0, _08158328 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _0815832C - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _08158330 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08158334 - .align 2, 0 -_08158328: .4byte gUnknown_2039BD4 -_0815832C: .4byte gUnknown_203A804 -_08158330: - adds r0, r2, #5 - str r0, [r3] -_08158334: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_6E - - thumb_func_start ContestAICmd_unk_6F -ContestAICmd_unk_6F: @ 0x08158338 - push {lr} - bl ContestAICmd_unk_6D - ldr r0, _0815836C - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - ldr r3, _08158370 - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _08158374 - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08158378 - .align 2, 0 -_0815836C: .4byte gUnknown_2039BD4 -_08158370: .4byte gUnknown_203A804 -_08158374: - adds r0, r2, #5 - str r0, [r3] -_08158378: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_6F - - thumb_func_start ContestAICmd_unk_70 -ContestAICmd_unk_70: @ 0x0815837C - push {r4, lr} - ldr r0, _081583A0 - ldr r0, [r0] - ldr r3, [r0, #0xc] - ldr r4, _081583A4 - ldr r2, [r4] - ldrb r0, [r2, #1] - lsls r0, r0, #1 - adds r1, r3, #0 - adds r1, #0x1a - adds r1, r1, r0 - ldrh r0, [r3, #0x18] - strh r0, [r1] - adds r2, #2 - str r2, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081583A0: .4byte gUnknown_2039BD4 -_081583A4: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_unk_70 - - thumb_func_start ContestAICmd_unk_71 -ContestAICmd_unk_71: @ 0x081583A8 - push {r4, lr} - ldr r0, _081583D0 - ldr r0, [r0] - ldr r3, [r0, #0xc] - ldr r4, _081583D4 - ldr r2, [r4] - ldrb r0, [r2, #1] - lsls r0, r0, #1 - adds r3, #0x1a - adds r3, r3, r0 - ldrb r1, [r2, #2] - ldrb r0, [r2, #3] - lsls r0, r0, #8 - orrs r1, r0 - strh r1, [r3] - adds r2, #4 - str r2, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081583D0: .4byte gUnknown_2039BD4 -_081583D4: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_unk_71 - - thumb_func_start ContestAICmd_unk_72 -ContestAICmd_unk_72: @ 0x081583D8 - push {r4, lr} - ldr r0, _08158408 - ldr r0, [r0] - ldr r2, [r0, #0xc] - ldr r4, _0815840C - ldr r3, [r4] - ldrb r0, [r3, #1] - lsls r0, r0, #1 - adds r2, #0x1a - adds r2, r2, r0 - movs r1, #2 - ldrsb r1, [r3, r1] - ldrb r0, [r3, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrh r0, [r2] - adds r1, r1, r0 - strh r1, [r2] - adds r3, #4 - str r3, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08158408: .4byte gUnknown_2039BD4 -_0815840C: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_unk_72 - - thumb_func_start sub_08158410 -sub_08158410: @ 0x08158410 - push {r4, lr} - ldr r0, _0815843C - ldr r0, [r0] - ldr r2, [r0, #0xc] - ldr r4, _08158440 - ldr r3, [r4] - ldrb r1, [r3, #1] - lsls r1, r1, #1 - adds r2, #0x1a - adds r1, r2, r1 - ldrb r0, [r3, #2] - lsls r0, r0, #1 - adds r2, r2, r0 - ldrh r0, [r2] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - adds r3, #3 - str r3, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815843C: .4byte gUnknown_2039BD4 -_08158440: .4byte gUnknown_203A804 - thumb_func_end sub_08158410 - - thumb_func_start sub_08158444 -sub_08158444: @ 0x08158444 - push {r4, lr} - ldr r0, _08158470 - ldr r0, [r0] - ldr r2, [r0, #0xc] - ldr r4, _08158474 - ldr r3, [r4] - ldrb r1, [r3, #1] - lsls r1, r1, #1 - adds r2, #0x1a - adds r1, r2, r1 - ldrb r0, [r3, #2] - lsls r0, r0, #1 - adds r2, r2, r0 - ldrh r0, [r2] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - adds r3, #3 - str r3, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08158470: .4byte gUnknown_2039BD4 -_08158474: .4byte gUnknown_203A804 - thumb_func_end sub_08158444 - - thumb_func_start ContestAICmd_unk_75 -ContestAICmd_unk_75: @ 0x08158478 - push {r4, lr} - ldr r0, _081584B4 - ldr r0, [r0] - ldr r1, [r0, #0xc] - ldr r4, _081584B8 - ldr r3, [r4] - ldrb r0, [r3, #1] - lsls r0, r0, #1 - adds r1, #0x1a - adds r1, r1, r0 - movs r0, #0 - ldrsh r2, [r1, r0] - ldrb r1, [r3, #2] - ldrb r0, [r3, #3] - lsls r0, r0, #8 - orrs r1, r0 - cmp r2, r1 - bge _081584BC - ldrb r1, [r3, #4] - ldrb r0, [r3, #5] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r3, #6] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r3, #7] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _081584C2 - .align 2, 0 -_081584B4: .4byte gUnknown_2039BD4 -_081584B8: .4byte gUnknown_203A804 -_081584BC: - adds r0, r3, #0 - adds r0, #8 - str r0, [r4] -_081584C2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_75 - - thumb_func_start ContestAICmd_unk_76 -ContestAICmd_unk_76: @ 0x081584C8 - push {r4, lr} - ldr r0, _08158504 - ldr r0, [r0] - ldr r1, [r0, #0xc] - ldr r4, _08158508 - ldr r3, [r4] - ldrb r0, [r3, #1] - lsls r0, r0, #1 - adds r1, #0x1a - adds r1, r1, r0 - movs r0, #0 - ldrsh r2, [r1, r0] - ldrb r1, [r3, #2] - ldrb r0, [r3, #3] - lsls r0, r0, #8 - orrs r1, r0 - cmp r2, r1 - ble _0815850C - ldrb r1, [r3, #4] - ldrb r0, [r3, #5] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r3, #6] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r3, #7] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _08158512 - .align 2, 0 -_08158504: .4byte gUnknown_2039BD4 -_08158508: .4byte gUnknown_203A804 -_0815850C: - adds r0, r3, #0 - adds r0, #8 - str r0, [r4] -_08158512: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_76 - - thumb_func_start ContestAICmd_unk_77 -ContestAICmd_unk_77: @ 0x08158518 - push {r4, lr} - ldr r0, _08158554 - ldr r0, [r0] - ldr r1, [r0, #0xc] - ldr r4, _08158558 - ldr r3, [r4] - ldrb r0, [r3, #1] - lsls r0, r0, #1 - adds r1, #0x1a - adds r1, r1, r0 - movs r0, #0 - ldrsh r2, [r1, r0] - ldrb r1, [r3, #2] - ldrb r0, [r3, #3] - lsls r0, r0, #8 - orrs r1, r0 - cmp r2, r1 - bne _0815855C - ldrb r1, [r3, #4] - ldrb r0, [r3, #5] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r3, #6] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r3, #7] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _08158562 - .align 2, 0 -_08158554: .4byte gUnknown_2039BD4 -_08158558: .4byte gUnknown_203A804 -_0815855C: - adds r0, r3, #0 - adds r0, #8 - str r0, [r4] -_08158562: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_77 - - thumb_func_start ContestAICmd_unk_78 -ContestAICmd_unk_78: @ 0x08158568 - push {r4, lr} - ldr r0, _081585A4 - ldr r0, [r0] - ldr r1, [r0, #0xc] - ldr r4, _081585A8 - ldr r3, [r4] - ldrb r0, [r3, #1] - lsls r0, r0, #1 - adds r1, #0x1a - adds r1, r1, r0 - movs r0, #0 - ldrsh r2, [r1, r0] - ldrb r1, [r3, #2] - ldrb r0, [r3, #3] - lsls r0, r0, #8 - orrs r1, r0 - cmp r2, r1 - beq _081585AC - ldrb r1, [r3, #4] - ldrb r0, [r3, #5] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r3, #6] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r3, #7] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _081585B2 - .align 2, 0 -_081585A4: .4byte gUnknown_2039BD4 -_081585A8: .4byte gUnknown_203A804 -_081585AC: - adds r0, r3, #0 - adds r0, #8 - str r0, [r4] -_081585B2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_78 - - thumb_func_start ContestAICmd_unk_79 -ContestAICmd_unk_79: @ 0x081585B8 - push {r4, r5, lr} - ldr r0, _081585F8 - ldr r0, [r0] - ldr r2, [r0, #0xc] - ldr r4, _081585FC - ldr r3, [r4] - ldrb r1, [r3, #1] - lsls r1, r1, #1 - adds r2, #0x1a - adds r1, r2, r1 - ldrb r0, [r3, #2] - lsls r0, r0, #1 - adds r2, r2, r0 - movs r0, #0 - ldrsh r1, [r1, r0] - movs r5, #0 - ldrsh r0, [r2, r5] - cmp r1, r0 - bge _08158600 - ldrb r1, [r3, #3] - ldrb r0, [r3, #4] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r3, #5] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r3, #6] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _08158604 - .align 2, 0 -_081585F8: .4byte gUnknown_2039BD4 -_081585FC: .4byte gUnknown_203A804 -_08158600: - adds r0, r3, #7 - str r0, [r4] -_08158604: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ContestAICmd_unk_79 - - thumb_func_start ContestAICmd_unk_7A -ContestAICmd_unk_7A: @ 0x0815860C - push {r4, r5, lr} - ldr r0, _0815864C - ldr r0, [r0] - ldr r2, [r0, #0xc] - ldr r4, _08158650 - ldr r3, [r4] - ldrb r1, [r3, #1] - lsls r1, r1, #1 - adds r2, #0x1a - adds r1, r2, r1 - ldrb r0, [r3, #2] - lsls r0, r0, #1 - adds r2, r2, r0 - movs r0, #0 - ldrsh r1, [r1, r0] - movs r5, #0 - ldrsh r0, [r2, r5] - cmp r1, r0 - ble _08158654 - ldrb r1, [r3, #3] - ldrb r0, [r3, #4] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r3, #5] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r3, #6] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _08158658 - .align 2, 0 -_0815864C: .4byte gUnknown_2039BD4 -_08158650: .4byte gUnknown_203A804 -_08158654: - adds r0, r3, #7 - str r0, [r4] -_08158658: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ContestAICmd_unk_7A - - thumb_func_start ContestAICmd_unk_7B -ContestAICmd_unk_7B: @ 0x08158660 - push {r4, r5, lr} - ldr r0, _081586A0 - ldr r0, [r0] - ldr r2, [r0, #0xc] - ldr r4, _081586A4 - ldr r3, [r4] - ldrb r1, [r3, #1] - lsls r1, r1, #1 - adds r2, #0x1a - adds r1, r2, r1 - ldrb r0, [r3, #2] - lsls r0, r0, #1 - adds r2, r2, r0 - movs r0, #0 - ldrsh r1, [r1, r0] - movs r5, #0 - ldrsh r0, [r2, r5] - cmp r1, r0 - bne _081586A8 - ldrb r1, [r3, #3] - ldrb r0, [r3, #4] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r3, #5] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r3, #6] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _081586AC - .align 2, 0 -_081586A0: .4byte gUnknown_2039BD4 -_081586A4: .4byte gUnknown_203A804 -_081586A8: - adds r0, r3, #7 - str r0, [r4] -_081586AC: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ContestAICmd_unk_7B - - thumb_func_start ContestAICmd_unk_7C -ContestAICmd_unk_7C: @ 0x081586B4 - push {r4, r5, lr} - ldr r0, _081586F4 - ldr r0, [r0] - ldr r2, [r0, #0xc] - ldr r4, _081586F8 - ldr r3, [r4] - ldrb r1, [r3, #1] - lsls r1, r1, #1 - adds r2, #0x1a - adds r1, r2, r1 - ldrb r0, [r3, #2] - lsls r0, r0, #1 - adds r2, r2, r0 - movs r0, #0 - ldrsh r1, [r1, r0] - movs r5, #0 - ldrsh r0, [r2, r5] - cmp r1, r0 - beq _081586FC - ldrb r1, [r3, #3] - ldrb r0, [r3, #4] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r3, #5] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r3, #6] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _08158700 - .align 2, 0 -_081586F4: .4byte gUnknown_2039BD4 -_081586F8: .4byte gUnknown_203A804 -_081586FC: - adds r0, r3, #7 - str r0, [r4] -_08158700: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ContestAICmd_unk_7C - - thumb_func_start ContestAICmd_if_random -ContestAICmd_if_random: @ 0x08158708 - push {r4, r5, lr} - bl Random - movs r2, #0xff - ands r2, r0 - ldr r0, _08158744 - ldr r0, [r0] - ldr r1, [r0, #0xc] - ldr r4, _08158748 - ldr r3, [r4] - ldrb r0, [r3, #1] - lsls r0, r0, #1 - adds r1, #0x1a - adds r1, r1, r0 - movs r5, #0 - ldrsh r0, [r1, r5] - cmp r2, r0 - bge _0815874C - ldrb r1, [r3, #2] - ldrb r0, [r3, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r3, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r3, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _08158750 - .align 2, 0 -_08158744: .4byte gUnknown_2039BD4 -_08158748: .4byte gUnknown_203A804 -_0815874C: - adds r0, r3, #6 - str r0, [r4] -_08158750: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ContestAICmd_if_random - - thumb_func_start ContestAICmd_unk_7E -ContestAICmd_unk_7E: @ 0x08158758 - push {r4, r5, lr} - bl Random - movs r2, #0xff - ands r2, r0 - ldr r0, _08158794 - ldr r0, [r0] - ldr r1, [r0, #0xc] - ldr r4, _08158798 - ldr r3, [r4] - ldrb r0, [r3, #1] - lsls r0, r0, #1 - adds r1, #0x1a - adds r1, r1, r0 - movs r5, #0 - ldrsh r0, [r1, r5] - cmp r2, r0 - ble _0815879C - ldrb r1, [r3, #2] - ldrb r0, [r3, #3] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r3, #4] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r3, #5] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - b _081587A0 - .align 2, 0 -_08158794: .4byte gUnknown_2039BD4 -_08158798: .4byte gUnknown_203A804 -_0815879C: - adds r0, r3, #6 - str r0, [r4] -_081587A0: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ContestAICmd_unk_7E - - thumb_func_start sub_081587A8 -sub_081587A8: @ 0x081587A8 - ldr r3, _081587C4 - ldr r2, [r3] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - bx lr - .align 2, 0 -_081587C4: .4byte gUnknown_203A804 - thumb_func_end sub_081587A8 - - thumb_func_start ContestAICmd_call -ContestAICmd_call: @ 0x081587C8 - push {r4, lr} - ldr r4, _081587F4 - ldr r0, [r4] - adds r0, #5 - bl AIStackPushVar - ldr r2, [r4] - ldrb r1, [r2, #1] - ldrb r0, [r2, #2] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #4] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081587F4: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_call - - thumb_func_start ContestAICmd_end -ContestAICmd_end: @ 0x081587F8 - push {lr} - bl AIStackPop - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08158812 - ldr r0, _08158818 - ldr r0, [r0] - ldr r2, [r0, #0xc] - ldrb r1, [r2, #9] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #9] -_08158812: - pop {r0} - bx r0 - .align 2, 0 -_08158818: .4byte gUnknown_2039BD4 - thumb_func_end ContestAICmd_end - - thumb_func_start AIStackPushVar -AIStackPushVar: @ 0x0815881C - push {r4, lr} - ldr r1, _08158840 - ldr r1, [r1] - ldr r3, [r1, #0xc] - adds r4, r3, #0 - adds r4, #0x40 - ldrb r1, [r4] - adds r2, r1, #1 - strb r2, [r4] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x16 - adds r3, #0x20 - adds r3, r3, r1 - str r0, [r3] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08158840: .4byte gUnknown_2039BD4 - thumb_func_end AIStackPushVar - - thumb_func_start AIStackPop -AIStackPop: @ 0x08158844 - push {lr} - ldr r3, _0815885C - ldr r0, [r3] - ldr r0, [r0, #0xc] - adds r1, r0, #0 - adds r1, #0x40 - ldrb r0, [r1] - cmp r0, #0 - bne _08158860 - movs r0, #0 - b _0815887C - .align 2, 0 -_0815885C: .4byte gUnknown_2039BD4 -_08158860: - subs r0, #1 - strb r0, [r1] - ldr r2, _08158880 - ldr r0, [r3] - ldr r1, [r0, #0xc] - adds r0, r1, #0 - adds r0, #0x40 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r1, #0x20 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r2] - movs r0, #1 -_0815887C: - pop {r1} - bx r1 - .align 2, 0 -_08158880: .4byte gUnknown_203A804 - thumb_func_end AIStackPop - - thumb_func_start ContestAICmd_check_user_has_exciting_move -ContestAICmd_check_user_has_exciting_move: @ 0x08158884 - push {r4, r5, r6, lr} - movs r5, #0 - movs r4, #0 - ldr r6, _081588B4 -_0815888C: - lsls r1, r4, #1 - ldr r0, _081588B8 - ldr r0, [r0] - ldr r0, [r0, #0xc] - adds r0, #0x41 - ldrb r0, [r0] - lsls r0, r0, #6 - adds r1, r1, r0 - adds r1, r1, r6 - ldrh r0, [r1] - cmp r0, #0 - beq _081588BC - bl Contest_GetMoveExcitement - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - bne _081588BC - movs r5, #1 - b _081588C2 - .align 2, 0 -_081588B4: .4byte gUnknown_2039ABE -_081588B8: .4byte gUnknown_2039BD4 -_081588BC: - adds r4, #1 - cmp r4, #3 - ble _0815888C -_081588C2: - ldr r0, _081588D8 - ldr r0, [r0] - ldr r0, [r0, #0xc] - strh r5, [r0, #0x18] - ldr r1, _081588DC - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081588D8: .4byte gUnknown_2039BD4 -_081588DC: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_check_user_has_exciting_move - - thumb_func_start ContestAICmd_if_user_has_exciting_move -ContestAICmd_if_user_has_exciting_move: @ 0x081588E0 - push {lr} - bl ContestAICmd_check_user_has_exciting_move - ldr r0, _08158910 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _08158918 - ldr r3, _08158914 - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, #1] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #2] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08158920 - .align 2, 0 -_08158910: .4byte gUnknown_2039BD4 -_08158914: .4byte gUnknown_203A804 -_08158918: - ldr r1, _08158924 - ldr r0, [r1] - adds r0, #4 - str r0, [r1] -_08158920: - pop {r0} - bx r0 - .align 2, 0 -_08158924: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_if_user_has_exciting_move - - thumb_func_start ContestAICmd_if_user_doesnt_have_exciting_move -ContestAICmd_if_user_doesnt_have_exciting_move: @ 0x08158928 - push {lr} - bl ContestAICmd_check_user_has_exciting_move - ldr r0, _08158958 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08158960 - ldr r3, _0815895C - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, #1] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #2] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08158968 - .align 2, 0 -_08158958: .4byte gUnknown_2039BD4 -_0815895C: .4byte gUnknown_203A804 -_08158960: - ldr r1, _0815896C - ldr r0, [r1] - adds r0, #4 - str r0, [r1] -_08158968: - pop {r0} - bx r0 - .align 2, 0 -_0815896C: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_if_user_doesnt_have_exciting_move - - thumb_func_start ContestAICmd_unk_85 -ContestAICmd_unk_85: @ 0x08158970 - push {r4, r5, r6, lr} - movs r6, #0 - ldr r3, _0815899C - ldr r0, [r3] - ldrb r5, [r0, #1] - ldrb r0, [r0, #2] - lsls r0, r0, #8 - orrs r5, r0 - movs r4, #0 - ldr r0, _081589A0 - mov ip, r0 - ldr r2, _081589A4 - ldr r0, [r2] - ldr r0, [r0, #0xc] - adds r0, #0x41 - ldrb r0, [r0] - lsls r0, r0, #6 - mov r1, ip - adds r1, #0x1e - adds r0, r0, r1 - ldrh r0, [r0] - b _081589C4 - .align 2, 0 -_0815899C: .4byte gUnknown_203A804 -_081589A0: .4byte gUnknown_2039AA0 -_081589A4: .4byte gUnknown_2039BD4 -_081589A8: - adds r4, #1 - cmp r4, #3 - bgt _081589CA - lsls r1, r4, #1 - ldr r0, [r2] - ldr r0, [r0, #0xc] - adds r0, #0x41 - ldrb r0, [r0] - lsls r0, r0, #6 - adds r1, r1, r0 - mov r0, ip - adds r0, #0x1e - adds r1, r1, r0 - ldrh r0, [r1] -_081589C4: - cmp r0, r5 - bne _081589A8 - movs r6, #1 -_081589CA: - ldr r0, [r2] - ldr r0, [r0, #0xc] - strh r6, [r0, #0x18] - ldr r0, [r3] - adds r0, #3 - str r0, [r3] - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_85 - - thumb_func_start ContestAICmd_unk_86 -ContestAICmd_unk_86: @ 0x081589DC - push {lr} - bl ContestAICmd_unk_85 - ldr r0, _08158A0C - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _08158A14 - ldr r3, _08158A10 - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, #1] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #2] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08158A1C - .align 2, 0 -_08158A0C: .4byte gUnknown_2039BD4 -_08158A10: .4byte gUnknown_203A804 -_08158A14: - ldr r1, _08158A20 - ldr r0, [r1] - adds r0, #4 - str r0, [r1] -_08158A1C: - pop {r0} - bx r0 - .align 2, 0 -_08158A20: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_unk_86 - - thumb_func_start ContestAICmd_if_effect_in_user_moveset -ContestAICmd_if_effect_in_user_moveset: @ 0x08158A24 - push {lr} - bl ContestAICmd_unk_85 - ldr r0, _08158A54 - ldr r0, [r0] - ldr r0, [r0, #0xc] - movs r1, #0x18 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08158A5C - ldr r3, _08158A58 - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, #1] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #2] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #3] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _08158A64 - .align 2, 0 -_08158A54: .4byte gUnknown_2039BD4 -_08158A58: .4byte gUnknown_203A804 -_08158A5C: - ldr r1, _08158A68 - ldr r0, [r1] - adds r0, #4 - str r0, [r1] -_08158A64: - pop {r0} - bx r0 - .align 2, 0 -_08158A68: .4byte gUnknown_203A804 - thumb_func_end ContestAICmd_if_effect_in_user_moveset - - thumb_func_start sub_08158A6C -sub_08158A6C: @ 0x08158A6C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08158AC8 - lsls r6, r0, #2 - adds r6, r6, r0 - lsls r6, r6, #3 - adds r6, r6, r1 - ldr r1, _08158ACC - ldrh r0, [r1] - strh r0, [r6, #8] - ldrh r0, [r1, #2] - strh r0, [r6, #0xa] - movs r0, #0x40 - rsbs r0, r0, #0 - bl BattleAnimAdjustPanning - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0x3f - bl BattleAnimAdjustPanning - adds r5, r0, #0 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - lsls r5, r5, #0x18 - asrs r5, r5, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #2 - bl CalculatePanIncrement - strh r4, [r6, #0xc] - strh r5, [r6, #0xe] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - strh r0, [r6, #0x10] - movs r0, #0xa - strh r0, [r6, #0x1c] - ldr r0, _08158AD0 - str r0, [r6] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08158AC8: .4byte gUnknown_3005B60 -_08158ACC: .4byte gUnknown_20380BE -_08158AD0: .4byte sub_08158AD4 - thumb_func_end sub_08158A6C - - thumb_func_start sub_08158AD4 -sub_08158AD4: @ 0x08158AD4 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08158B04 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 - ldrh r5, [r4, #0xc] - ldrb r6, [r4, #0x10] - ldrh r0, [r4, #0x1e] - adds r0, #1 - movs r1, #0 - strh r0, [r4, #0x1e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x6f - bne _08158B0C - movs r0, #5 - strh r0, [r4, #0x1c] - strh r1, [r4, #0x1e] - ldr r0, _08158B08 - str r0, [r4] - b _08158B3A - .align 2, 0 -_08158B04: .4byte gUnknown_3005B60 -_08158B08: .4byte sub_08158B40 -_08158B0C: - ldrh r0, [r4, #0x1c] - adds r0, #1 - strh r0, [r4, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xb - bne _08158B26 - strh r1, [r4, #0x1c] - ldrh r0, [r4, #8] - lsls r1, r5, #0x18 - asrs r1, r1, #0x18 - bl PlaySE12WithPanning -_08158B26: - lsls r1, r6, #0x18 - asrs r1, r1, #0x18 - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - adds r0, r0, r1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - bl KeepPanInRange - strh r0, [r4, #0xc] -_08158B3A: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_08158AD4 - - thumb_func_start sub_08158B40 -sub_08158B40: @ 0x08158B40 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _08158B90 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrh r0, [r4, #0x1c] - adds r0, #1 - strh r0, [r4, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #6 - bne _08158B88 - movs r0, #0 - strh r0, [r4, #0x1c] - movs r0, #0x3f - bl BattleAnimAdjustPanning - adds r1, r0, #0 - ldrh r0, [r4, #0xa] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - bl PlaySE12WithPanning - ldrh r0, [r4, #0x1e] - adds r0, #1 - strh r0, [r4, #0x1e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - bne _08158B88 - adds r0, r5, #0 - bl DestroyAnimSoundTask -_08158B88: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08158B90: .4byte gUnknown_3005B60 - thumb_func_end sub_08158B40 - - thumb_func_start sub_08158B94 -sub_08158B94: @ 0x08158B94 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov r8, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r0, _08158C38 - ldrh r1, [r0] - str r1, [sp] - ldrb r5, [r0, #4] - ldrb r6, [r0, #6] - ldrb r3, [r0, #8] - mov sl, r3 - ldrb r7, [r0, #0xa] - ldrb r1, [r0, #0xc] - mov sb, r1 - ldrb r0, [r0, #2] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - bl BattleAnimAdjustPanning - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - asrs r5, r5, #0x18 - adds r0, r5, #0 - bl BattleAnimAdjustPanning - adds r5, r0, #0 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - lsls r5, r5, #0x18 - asrs r5, r5, #0x18 - lsls r6, r6, #0x18 - asrs r6, r6, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl CalculatePanIncrement - ldr r2, _08158C3C - mov r3, r8 - lsls r1, r3, #2 - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r2, #0 - mov r6, sp - ldrh r6, [r6] - strh r6, [r1, #8] - strh r4, [r1, #0xa] - strh r5, [r1, #0xc] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - strh r0, [r1, #0xe] - mov r0, sl - strh r0, [r1, #0x10] - strh r7, [r1, #0x12] - mov r3, sb - strh r3, [r1, #0x14] - strh r2, [r1, #0x1c] - strh r4, [r1, #0x1e] - strh r3, [r1, #0x20] - ldr r2, _08158C40 - str r2, [r1] - mov r0, r8 - bl _call_via_r2 - add sp, #4 - thumb_func_end sub_08158B94 - - thumb_func_start sub_08158C28 -sub_08158C28: @ 0x08158C28 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08158C38: .4byte gUnknown_20380BE -_08158C3C: .4byte gUnknown_3005B60 -_08158C40: .4byte sub_08158C44 - thumb_func_end sub_08158C28 - - thumb_func_start sub_08158C44 -sub_08158C44: @ 0x08158C44 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _08158C88 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrh r0, [r4, #0x20] - adds r1, r0, #1 - strh r1, [r4, #0x20] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x14 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _08158C8C - movs r0, #0 - strh r0, [r4, #0x20] - ldrh r0, [r4, #8] - movs r1, #0x1e - ldrsb r1, [r4, r1] - bl PlaySE12WithPanning - ldrh r0, [r4, #0x10] - subs r0, #1 - strh r0, [r4, #0x10] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08158C8C - adds r0, r5, #0 - bl DestroyAnimSoundTask - b _08158CBE - .align 2, 0 -_08158C88: .4byte gUnknown_3005B60 -_08158C8C: - ldr r1, _08158CC4 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrh r0, [r4, #0x1c] - adds r1, r0, #1 - strh r1, [r4, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x12 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _08158CBE - movs r0, #0 - strh r0, [r4, #0x1c] - ldrh r0, [r4, #0xe] - ldrh r1, [r4, #0x1e] - adds r0, r0, r1 - strh r0, [r4, #0x1e] - movs r2, #0x1e - ldrsh r0, [r4, r2] - bl KeepPanInRange - strh r0, [r4, #0x1e] -_08158CBE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08158CC4: .4byte gUnknown_3005B60 - thumb_func_end sub_08158C44 - - thumb_func_start sub_08158CC8 -sub_08158CC8: @ 0x08158CC8 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r4, #0 - movs r0, #0x40 - rsbs r0, r0, #0 - bl BattleAnimAdjustPanning - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08158D0C - ldr r0, _08158CFC - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08158D04 - ldr r0, _08158D00 - ldr r0, [r0] - ldr r0, [r0, #0x18] - ldrh r4, [r0] - b _08158DB2 - .align 2, 0 -_08158CFC: .4byte gUnknown_20380BE -_08158D00: .4byte gUnknown_2039BD4 -_08158D04: - adds r0, r5, #0 - bl DestroyAnimVisualTask - b _08158DB2 -_08158D0C: - ldr r0, _08158D20 - movs r2, #0 - ldrsh r1, [r0, r2] - adds r2, r0, #0 - cmp r1, #0 - bne _08158D28 - ldr r0, _08158D24 - ldrb r4, [r0] - b _08158D4E - .align 2, 0 -_08158D20: .4byte gUnknown_20380BE -_08158D24: .4byte gUnknown_20380D6 -_08158D28: - cmp r1, #1 - bne _08158D38 - ldr r0, _08158D34 - ldrb r4, [r0] - b _08158D4E - .align 2, 0 -_08158D34: .4byte gUnknown_20380D7 -_08158D38: - cmp r1, #2 - bne _08158D44 - ldr r0, _08158D40 - b _08158D46 - .align 2, 0 -_08158D40: .4byte gUnknown_20380D6 -_08158D44: - ldr r0, _08158D70 -_08158D46: - ldrb r1, [r0] - movs r0, #2 - adds r4, r0, #0 - eors r4, r1 -_08158D4E: - movs r1, #0 - ldrsh r0, [r2, r1] - cmp r0, #1 - beq _08158D5A - cmp r0, #3 - bne _08158D74 -_08158D5A: - adds r0, r4, #0 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08158D74 - adds r0, r5, #0 - bl DestroyAnimVisualTask - b _08158DC8 - .align 2, 0 -_08158D70: .4byte gUnknown_20380D7 -_08158D74: - adds r0, r4, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08158D98 - ldr r1, _08158D90 - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08158D94 - b _08158DA6 - .align 2, 0 -_08158D90: .4byte gUnknown_2023D12 -_08158D94: .4byte gUnknown_20243E8 -_08158D98: - ldr r1, _08158DD0 - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08158DD4 -_08158DA6: - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_08158DB2: - cmp r4, #0 - beq _08158DC2 - lsls r1, r6, #0x18 - asrs r1, r1, #0x18 - adds r0, r4, #0 - movs r2, #3 - bl PlayCry3 -_08158DC2: - adds r0, r5, #0 - bl DestroyAnimVisualTask -_08158DC8: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08158DD0: .4byte gUnknown_2023D12 -_08158DD4: .4byte gUnknown_2024190 - thumb_func_end sub_08158CC8 - - thumb_func_start sub_08158DD8 -sub_08158DD8: @ 0x08158DD8 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r4, #0 - movs r0, #0x40 - rsbs r0, r0, #0 - bl BattleAnimAdjustPanning - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08158E1C - ldr r0, _08158E0C - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08158E14 - ldr r0, _08158E10 - ldr r0, [r0] - ldr r0, [r0, #0x18] - ldrh r4, [r0] - b _08158EC2 - .align 2, 0 -_08158E0C: .4byte gUnknown_20380BE -_08158E10: .4byte gUnknown_2039BD4 -_08158E14: - adds r0, r6, #0 - bl DestroyAnimVisualTask - b _08158EC2 -_08158E1C: - ldr r0, _08158E30 - movs r2, #0 - ldrsh r1, [r0, r2] - adds r2, r0, #0 - cmp r1, #0 - bne _08158E38 - ldr r0, _08158E34 - ldrb r4, [r0] - b _08158E5E - .align 2, 0 -_08158E30: .4byte gUnknown_20380BE -_08158E34: .4byte gUnknown_20380D6 -_08158E38: - cmp r1, #1 - bne _08158E48 - ldr r0, _08158E44 - ldrb r4, [r0] - b _08158E5E - .align 2, 0 -_08158E44: .4byte gUnknown_20380D7 -_08158E48: - cmp r1, #2 - bne _08158E54 - ldr r0, _08158E50 - b _08158E56 - .align 2, 0 -_08158E50: .4byte gUnknown_20380D6 -_08158E54: - ldr r0, _08158E80 -_08158E56: - ldrb r1, [r0] - movs r0, #2 - adds r4, r0, #0 - eors r4, r1 -_08158E5E: - movs r1, #0 - ldrsh r0, [r2, r1] - cmp r0, #1 - beq _08158E6A - cmp r0, #3 - bne _08158E84 -_08158E6A: - adds r0, r4, #0 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08158E84 - adds r0, r6, #0 - bl DestroyAnimVisualTask - b _08158F2A - .align 2, 0 -_08158E80: .4byte gUnknown_20380D7 -_08158E84: - adds r0, r4, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08158EA8 - ldr r1, _08158EA0 - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08158EA4 - b _08158EB6 - .align 2, 0 -_08158EA0: .4byte gUnknown_2023D12 -_08158EA4: .4byte gUnknown_20243E8 -_08158EA8: - ldr r1, _08158EF4 - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08158EF8 -_08158EB6: - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_08158EC2: - ldr r1, _08158EFC - lsls r2, r6, #2 - adds r0, r2, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r3, _08158F00 - ldrh r1, [r3, #2] - strh r1, [r0, #8] - strh r4, [r0, #0xa] - lsls r1, r5, #0x18 - asrs r1, r1, #0x18 - strh r1, [r0, #0xc] - adds r5, r2, #0 - cmp r4, #0 - beq _08158F24 - movs r2, #2 - ldrsh r0, [r3, r2] - cmp r0, #0xff - bne _08158F04 - adds r0, r4, #0 - movs r2, #9 - bl PlayCry3 - b _08158F0C - .align 2, 0 -_08158EF4: .4byte gUnknown_2023D12 -_08158EF8: .4byte gUnknown_2024190 -_08158EFC: .4byte gUnknown_3005B60 -_08158F00: .4byte gUnknown_20380BE -_08158F04: - adds r0, r4, #0 - movs r2, #7 - bl PlayCry3 -_08158F0C: - ldr r0, _08158F1C - adds r1, r5, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _08158F20 - str r0, [r1] - b _08158F2A - .align 2, 0 -_08158F1C: .4byte gUnknown_3005B60 -_08158F20: .4byte sub_08158F30 -_08158F24: - adds r0, r6, #0 - bl DestroyAnimVisualTask -_08158F2A: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_08158DD8 - - thumb_func_start sub_08158F30 -sub_08158F30: @ 0x08158F30 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - mov sb, r4 - ldr r1, _08158F60 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r1, r0, r1 - ldrh r6, [r1, #0xa] - mov r8, r6 - ldrb r5, [r1, #0xc] - adds r7, r5, #0 - ldrh r2, [r1, #0x1a] - movs r3, #0x1a - ldrsh r0, [r1, r3] - cmp r0, #1 - bgt _08158F64 - adds r0, r2, #1 - strh r0, [r1, #0x1a] - b _08158FA6 - .align 2, 0 -_08158F60: .4byte gUnknown_3005B60 -_08158F64: - movs r2, #8 - ldrsh r0, [r1, r2] - cmp r0, #0xff - bne _08158F8A - bl IsCryPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08158FA6 - lsls r1, r5, #0x18 - asrs r1, r1, #0x18 - adds r0, r6, #0 - movs r2, #0xa - bl PlayCry3 - adds r0, r4, #0 - bl DestroyAnimVisualTask - b _08158FA6 -_08158F8A: - bl IsCryPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08158FA6 - lsls r1, r7, #0x18 - asrs r1, r1, #0x18 - mov r0, r8 - movs r2, #8 - bl PlayCry3 - mov r0, sb - bl DestroyAnimVisualTask -_08158FA6: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08158F30 - - thumb_func_start sub_08158FB4 -sub_08158FB4: @ 0x08158FB4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r4, r0, #0 - ldr r1, _08158FD8 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r1, r0, r1 - ldrh r2, [r1, #0x1a] - movs r3, #0x1a - ldrsh r0, [r1, r3] - cmp r0, #1 - bgt _08158FDC - adds r0, r2, #1 - strh r0, [r1, #0x1a] - b _08158FEC - .align 2, 0 -_08158FD8: .4byte gUnknown_3005B60 -_08158FDC: - bl IsCryPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08158FEC - adds r0, r4, #0 - bl DestroyAnimVisualTask -_08158FEC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08158FB4 - - thumb_func_start sub_08158FF4 -sub_08158FF4: @ 0x08158FF4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08159028 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0815902C - ldrh r1, [r1] - strh r1, [r0, #0x1c] - movs r0, #0x40 - rsbs r0, r0, #0 - bl BattleAnimAdjustPanning - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08159034 - ldr r0, _08159030 - ldr r0, [r0] - ldr r0, [r0, #0x18] - b _0815903E - .align 2, 0 -_08159028: .4byte gUnknown_3005B60 -_0815902C: .4byte gUnknown_20380BE -_08159030: .4byte gUnknown_2039BD4 -_08159034: - ldr r1, _0815905C - ldr r0, _08159060 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 -_0815903E: - ldrh r2, [r0] - ldr r0, _08159064 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - strh r2, [r1, #0xa] - lsls r0, r5, #0x18 - asrs r0, r0, #0x18 - strh r0, [r1, #0xc] - cmp r2, #0 - beq _0815906C - ldr r0, _08159068 - str r0, [r1] - b _08159072 - .align 2, 0 -_0815905C: .4byte gUnknown_20380D8 -_08159060: .4byte gUnknown_20380D6 -_08159064: .4byte gUnknown_3005B60 -_08159068: .4byte sub_08159078 -_0815906C: - adds r0, r4, #0 - bl DestroyAnimVisualTask -_08159072: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_08158FF4 - - thumb_func_start sub_08159078 -sub_08159078: @ 0x08159078 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _081590A8 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r6, [r0, #0xa] - mov r8, r6 - ldrb r3, [r0, #0xc] - adds r5, r3, #0 - movs r7, #0x1a - ldrsh r2, [r0, r7] - mov ip, r1 - cmp r2, #5 - bhi _08159118 - lsls r0, r2, #2 - ldr r1, _081590AC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081590A8: .4byte gUnknown_3005B60 -_081590AC: .4byte _081590B0 -_081590B0: @ jump table - .4byte _081590FE @ case 0 - .4byte _081590E4 @ case 1 - .4byte _081590C8 @ case 2 - .4byte _081590E4 @ case 3 - .4byte _081590E4 @ case 4 - .4byte _081590F4 @ case 5 -_081590C8: - lsls r1, r5, #0x18 - asrs r1, r1, #0x18 - mov r0, r8 - movs r2, #4 - bl PlayCry6 - ldr r1, _081590E0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - b _081590EC - .align 2, 0 -_081590E0: .4byte gUnknown_3005B60 -_081590E4: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - add r0, ip -_081590EC: - ldrh r1, [r0, #0x1a] - adds r1, #1 - strh r1, [r0, #0x1a] - b _08159140 -_081590F4: - bl IsCryPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08159140 -_081590FE: - bl sub_080A2F64 - ldr r0, _08159114 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x1a] - adds r0, #1 - strh r0, [r1, #0x1a] - b _08159140 - .align 2, 0 -_08159114: .4byte gUnknown_3005B60 -_08159118: - movs r1, #0x1c - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _0815912E - lsls r1, r3, #0x18 - asrs r1, r1, #0x18 - adds r0, r6, #0 - movs r2, #6 - bl PlayCry6 - b _0815913A -_0815912E: - lsls r1, r5, #0x18 - asrs r1, r1, #0x18 - mov r0, r8 - movs r2, #6 - bl PlayCry3 -_0815913A: - adds r0, r4, #0 - bl DestroyAnimVisualTask -_08159140: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08159078 - - thumb_func_start sub_0815914C -sub_0815914C: @ 0x0815914C - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _0815917C - ldrh r5, [r0] - ldrb r0, [r0, #2] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - bl BattleAnimAdjustPanning - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r5, #0 - bl sub_080A30D0 - adds r0, r4, #0 - bl DestroyAnimVisualTask - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0815917C: .4byte gUnknown_20380BE - thumb_func_end sub_0815914C - - thumb_func_start sub_08159180 -sub_08159180: @ 0x08159180 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081591B0 - ldrh r5, [r0] - ldrb r0, [r0, #2] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - bl BattleAnimAdjustPanning - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r5, #0 - bl sub_080A3104 - adds r0, r4, #0 - bl DestroyAnimVisualTask - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081591B0: .4byte gUnknown_20380BE - thumb_func_end sub_08159180 - - thumb_func_start sub_081591B4 -sub_081591B4: @ 0x081591B4 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - mov r8, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r0, _08159238 - ldrb r5, [r0, #2] - ldrb r6, [r0, #4] - ldrh r1, [r0, #6] - mov sb, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - bl BattleAnimAdjustPanning - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - asrs r5, r5, #0x18 - adds r0, r5, #0 - bl BattleAnimAdjustPanning - adds r5, r0, #0 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - lsls r5, r5, #0x18 - asrs r5, r5, #0x18 - lsls r6, r6, #0x18 - asrs r6, r6, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl CalculatePanIncrement - ldr r2, _0815923C - mov r3, r8 - lsls r1, r3, #2 - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r2, #0 - strh r4, [r1, #0xa] - strh r5, [r1, #0xc] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - strh r0, [r1, #0xe] - mov r0, sb - strh r0, [r1, #0x12] - strh r2, [r1, #0x1c] - strh r4, [r1, #0x1e] - ldr r2, _08159240 - str r2, [r1] - mov r0, r8 - bl _call_via_r2 - pop {r3, r4} - thumb_func_end sub_081591B4 - - thumb_func_start sub_0815922C -sub_0815922C: @ 0x0815922C - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08159238: .4byte gUnknown_20380BE -_0815923C: .4byte gUnknown_3005B60 -_08159240: .4byte sub_08159244 - thumb_func_end sub_0815922C - - thumb_func_start sub_08159244 -sub_08159244: @ 0x08159244 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - ldr r1, _0815929C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrh r2, [r4, #0xe] - ldrh r0, [r4, #0x1c] - adds r1, r0, #1 - strh r1, [r4, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r3, #0x12 - ldrsh r1, [r4, r3] - cmp r0, r1 - bne _0815927E - movs r0, #0 - strh r0, [r4, #0x1c] - ldrh r1, [r4, #0x1e] - adds r0, r2, r1 - strh r0, [r4, #0x1e] - movs r2, #0x1e - ldrsh r0, [r4, r2] - bl KeepPanInRange - strh r0, [r4, #0x1e] -_0815927E: - ldr r1, _081592A0 - ldrh r0, [r4, #0x1e] - strb r0, [r1] - movs r3, #0x1e - ldrsh r1, [r4, r3] - movs r2, #0xc - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _08159296 - adds r0, r5, #0 - bl DestroyAnimVisualTask -_08159296: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0815929C: .4byte gUnknown_3005B60 -_081592A0: .4byte gUnknown_20380E0 - thumb_func_end sub_08159244 - - thumb_func_start sub_081592A4 -sub_081592A4: @ 0x081592A4 - bx lr - .align 2, 0 - thumb_func_end sub_081592A4 - - thumb_func_start sub_081592A8 -sub_081592A8: @ 0x081592A8 - ldr r1, _081592B8 - ldr r0, _081592BC - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081592C0 - str r1, [r0] - bx lr - .align 2, 0 -_081592B8: .4byte gUnknown_3005AC0 -_081592BC: .4byte gUnknown_2023D08 -_081592C0: .4byte SafariBufferRunCommand - thumb_func_end sub_081592A8 - - thumb_func_start SafariBufferRunCommand -SafariBufferRunCommand: @ 0x081592C4 - push {lr} - ldr r2, _081592F8 - ldr r1, _081592FC - ldr r0, _08159300 - ldrb r3, [r0] - lsls r0, r3, #2 - adds r0, r0, r1 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _08159310 - ldr r0, _08159304 - lsls r1, r3, #9 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0x38 - bhi _0815930C - ldr r0, _08159308 - ldrb r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl _call_via_r0 - b _08159310 - .align 2, 0 -_081592F8: .4byte gUnknown_2023D0C -_081592FC: .4byte gUnknown_82FACB4 -_08159300: .4byte gUnknown_2023D08 -_08159304: .4byte gUnknown_2022D08 -_08159308: .4byte gUnknown_85ACD28 -_0815930C: - bl SafariBufferExecCompleted -_08159310: - pop {r0} - bx r0 - thumb_func_end SafariBufferRunCommand - - thumb_func_start HandleInputChooseAction -HandleInputChooseAction: @ 0x08159314 - push {r4, r5, lr} - ldr r0, _08159344 - ldrh r1, [r0, #0x2e] - movs r2, #1 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _08159382 - movs r0, #5 - bl sub_080A306C - ldr r1, _08159348 - ldr r0, _0815934C - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - beq _08159360 - cmp r0, #1 - bgt _08159350 - cmp r0, #0 - beq _0815935A - b _0815937C - .align 2, 0 -_08159344: .4byte gUnknown_3002360 -_08159348: .4byte gUnknown_2024150 -_0815934C: .4byte gUnknown_2023D08 -_08159350: - cmp r0, #2 - beq _08159366 - cmp r0, #3 - beq _08159372 - b _0815937C -_0815935A: - movs r0, #1 - movs r1, #5 - b _0815936A -_08159360: - movs r0, #1 - movs r1, #6 - b _0815936A -_08159366: - movs r0, #1 - movs r1, #7 -_0815936A: - movs r2, #0 - bl BtlController_EmitTwoReturnValues - b _0815937C -_08159372: - movs r0, #1 - movs r1, #8 - movs r2, #0 - bl BtlController_EmitTwoReturnValues -_0815937C: - bl SafariBufferExecCompleted - b _0815948A -_08159382: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _081593C0 - ldr r5, _081593B8 - ldr r4, _081593BC - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0815948A - movs r0, #5 - bl sub_080A306C - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r0, [r0] - bl MoveSelectionDestroyCursorAt - ldrb r1, [r4] - adds r1, r1, r5 - ldrb r0, [r1] - movs r2, #1 - b _0815942E - .align 2, 0 -_081593B8: .4byte gUnknown_2024150 -_081593BC: .4byte gUnknown_2023D08 -_081593C0: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _081593FC - ldr r5, _081593F4 - ldr r4, _081593F8 - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _0815948A - movs r0, #5 - bl sub_080A306C - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r0, [r0] - bl MoveSelectionDestroyCursorAt - ldrb r1, [r4] - adds r1, r1, r5 - ldrb r0, [r1] - movs r2, #1 - b _0815942E - .align 2, 0 -_081593F4: .4byte gUnknown_2024150 -_081593F8: .4byte gUnknown_2023D08 -_081593FC: - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08159448 - ldr r5, _08159440 - ldr r4, _08159444 - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0815948A - movs r0, #5 - bl sub_080A306C - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r0, [r0] - bl MoveSelectionDestroyCursorAt - ldrb r1, [r4] - adds r1, r1, r5 - ldrb r0, [r1] - movs r2, #2 -_0815942E: - eors r0, r2 - strb r0, [r1] - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r0, [r0] - movs r1, #0 - bl ActionSelectionCreateCursorAt - b _0815948A - .align 2, 0 -_08159440: .4byte gUnknown_2024150 -_08159444: .4byte gUnknown_2023D08 -_08159448: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0815948A - ldr r5, _08159490 - ldr r4, _08159494 - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0815948A - movs r0, #5 - bl sub_080A306C - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r0, [r0] - bl MoveSelectionDestroyCursorAt - ldrb r1, [r4] - adds r1, r1, r5 - ldrb r0, [r1] - movs r2, #2 - eors r0, r2 - strb r0, [r1] - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r0, [r0] - movs r1, #0 - bl ActionSelectionCreateCursorAt -_0815948A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08159490: .4byte gUnknown_2024150 -_08159494: .4byte gUnknown_2023D08 - thumb_func_end HandleInputChooseAction - - thumb_func_start sub_08159498 -sub_08159498: @ 0x08159498 - push {lr} - ldr r2, _081594C0 - ldr r1, _081594C4 - ldr r0, _081594C8 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _081594CC - cmp r1, r0 - bne _081594BC - bl SafariBufferExecCompleted -_081594BC: - pop {r0} - bx r0 - .align 2, 0 -_081594C0: .4byte gUnknown_20205AC -_081594C4: .4byte gUnknown_2023E88 -_081594C8: .4byte gUnknown_2023D08 -_081594CC: .4byte sub_08007140 - thumb_func_end sub_08159498 - - thumb_func_start sub_081594D0 -sub_081594D0: @ 0x081594D0 - push {lr} - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _081594E2 - bl SafariBufferExecCompleted -_081594E2: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081594D0 - - thumb_func_start CompleteOnHealthboxSpriteCallbackDummy -CompleteOnHealthboxSpriteCallbackDummy: @ 0x081594E8 - push {lr} - ldr r2, _08159510 - ldr r1, _08159514 - ldr r0, _08159518 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _0815951C - cmp r1, r0 - bne _0815950C - bl SafariBufferExecCompleted -_0815950C: - pop {r0} - bx r0 - .align 2, 0 -_08159510: .4byte gUnknown_20205AC -_08159514: .4byte gUnknown_3005AD0 -_08159518: .4byte gUnknown_2023D08 -_0815951C: .4byte sub_08007140 - thumb_func_end CompleteOnHealthboxSpriteCallbackDummy - - thumb_func_start sub_08159520 -sub_08159520: @ 0x08159520 - push {lr} - ldr r0, _08159550 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0815954A - ldr r2, _08159554 - ldr r0, _08159558 - adds r3, r2, r0 - ldrb r1, [r3] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3] - ldr r0, _0815955C - ldr r0, [r0] - str r0, [r2] - ldr r0, [r2, #8] - bl SetMainCallback2 -_0815954A: - pop {r0} - bx r0 - .align 2, 0 -_08159550: .4byte gUnknown_2037C74 -_08159554: .4byte gUnknown_3002360 -_08159558: .4byte 0x00000439 -_0815955C: .4byte gUnknown_3005A60 - thumb_func_end sub_08159520 - - thumb_func_start CompleteOnSpecialAnimDone -CompleteOnSpecialAnimDone: @ 0x08159560 - push {lr} - ldr r0, _08159590 - ldrb r0, [r0] - cmp r0, #0 - beq _08159586 - ldr r0, _08159594 - ldr r2, [r0] - ldr r0, _08159598 - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _0815958A -_08159586: - bl SafariBufferExecCompleted -_0815958A: - pop {r0} - bx r0 - .align 2, 0 -_08159590: .4byte gUnknown_202415D -_08159594: .4byte gUnknown_2024174 -_08159598: .4byte gUnknown_2023D08 - thumb_func_end CompleteOnSpecialAnimDone - - thumb_func_start SafariOpenPokeblockCase -SafariOpenPokeblockCase: @ 0x0815959C - push {lr} - ldr r0, _081595C4 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081595C0 - ldr r1, _081595C8 - ldr r0, _081595CC - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081595D0 - str r1, [r0] - bl FreeAllWindowBuffers - bl SummaryScreen_MainCB2 -_081595C0: - pop {r0} - bx r0 - .align 2, 0 -_081595C4: .4byte gUnknown_2037C74 -_081595C8: .4byte gUnknown_3005AC0 -_081595CC: .4byte gUnknown_2023D08 -_081595D0: .4byte sub_081595D4 - thumb_func_end SafariOpenPokeblockCase - - thumb_func_start sub_081595D4 -sub_081595D4: @ 0x081595D4 - push {lr} - ldr r0, _08159600 - ldr r1, [r0, #4] - ldr r0, _08159604 - cmp r1, r0 - bne _081595FA - ldr r0, _08159608 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081595FA - ldr r0, _0815960C - ldrh r1, [r0] - movs r0, #1 - bl BtlController_EmitOneReturnValue - bl SafariBufferExecCompleted -_081595FA: - pop {r0} - bx r0 - .align 2, 0 -_08159600: .4byte gUnknown_3002360 -_08159604: .4byte BattleMainCB2 -_08159608: .4byte gUnknown_2037C74 -_0815960C: .4byte gUnknown_203CB48 - thumb_func_end sub_081595D4 - - thumb_func_start sub_08159610 -sub_08159610: @ 0x08159610 - push {lr} - ldr r0, _08159638 - ldr r2, [r0] - ldr r0, _0815963C - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _08159632 - bl SafariBufferExecCompleted -_08159632: - pop {r0} - bx r0 - .align 2, 0 -_08159638: .4byte gUnknown_2024174 -_0815963C: .4byte gUnknown_2023D08 - thumb_func_end sub_08159610 - - thumb_func_start SafariBufferExecCompleted -SafariBufferExecCompleted: @ 0x08159640 - push {r4, lr} - sub sp, #4 - ldr r1, _08159680 - ldr r4, _08159684 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08159688 - str r1, [r0] - ldr r0, _0815968C - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _08159694 - bl GetMultiplayerId - mov r1, sp - strb r0, [r1] - movs r0, #2 - movs r1, #4 - mov r2, sp - bl PrepareBufferDataTransferLink - ldr r1, _08159690 - ldrb r0, [r4] - lsls r0, r0, #9 - adds r0, r0, r1 - movs r1, #0x38 - strb r1, [r0] - b _081596A6 - .align 2, 0 -_08159680: .4byte gUnknown_3005AC0 -_08159684: .4byte gUnknown_2023D08 -_08159688: .4byte SafariBufferRunCommand -_0815968C: .4byte gUnknown_2022C90 -_08159690: .4byte gUnknown_2022D08 -_08159694: - ldr r2, _081596B0 - ldr r1, _081596B4 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - ldr r0, [r2] - bics r0, r1 - str r0, [r2] -_081596A6: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081596B0: .4byte gUnknown_2023D0C -_081596B4: .4byte gUnknown_82FACB4 - thumb_func_end SafariBufferExecCompleted - - thumb_func_start sub_081596B8 -sub_081596B8: @ 0x081596B8 - push {lr} - ldr r0, _081596E0 - ldr r2, [r0] - ldr r0, _081596E4 - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _081596DA - bl SafariBufferExecCompleted -_081596DA: - pop {r0} - bx r0 - .align 2, 0 -_081596E0: .4byte gUnknown_2024174 -_081596E4: .4byte gUnknown_2023D08 - thumb_func_end sub_081596B8 - - thumb_func_start SafariHandleGetMonData -SafariHandleGetMonData: @ 0x081596E8 - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleGetMonData - - thumb_func_start SafariHandleGetRawMonData -SafariHandleGetRawMonData: @ 0x081596F4 - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleGetRawMonData - - thumb_func_start SafariHandleSetMonData -SafariHandleSetMonData: @ 0x08159700 - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleSetMonData - - thumb_func_start SafariHandleSetRawMonData -SafariHandleSetRawMonData: @ 0x0815970C - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleSetRawMonData - - thumb_func_start sub_08159718 -sub_08159718: @ 0x08159718 - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08159718 - - thumb_func_start SafariHandleSwitchInAnim -SafariHandleSwitchInAnim: @ 0x08159724 - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleSwitchInAnim - - thumb_func_start SafariHandleReturnMonToBall -SafariHandleReturnMonToBall: @ 0x08159730 - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleReturnMonToBall - - thumb_func_start SafariHandleDrawTrainerPic -SafariHandleDrawTrainerPic: @ 0x0815973C - push {r4, r5, r6, lr} - ldr r4, _081597F4 - ldr r0, [r4] - ldrb r0, [r0, #8] - ldr r5, _081597F8 - ldrb r1, [r5] - bl DecompressTrainerBackPic - ldr r0, [r4] - ldrb r6, [r0, #8] - ldrb r0, [r5] - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r6, #0 - bl SetMultiuseSpriteTemplateToTrainerBack - ldr r0, _081597FC - ldr r2, _08159800 - ldr r1, [r4] - ldrb r1, [r1, #8] - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r1, [r1] - movs r2, #8 - subs r2, r2, r1 - lsls r2, r2, #0x12 - movs r1, #0xa0 - lsls r1, r1, #0xf - adds r2, r2, r1 - asrs r2, r2, #0x10 - movs r1, #0x50 - movs r3, #0x1e - bl CreateSprite - ldr r6, _08159804 - ldrb r1, [r5] - adds r1, r1, r6 - strb r0, [r1] - ldr r4, _08159808 - ldrb r3, [r5] - adds r0, r3, r6 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - lsls r3, r3, #4 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #5] - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0xf0 - strh r1, [r0, #0x24] - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _0815980C - strh r1, [r0, #0x2e] - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, #0x1c - adds r0, r0, r4 - ldr r1, _08159810 - str r1, [r0] - ldr r1, _08159814 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08159818 - str r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081597F4: .4byte gUnknown_3005AF0 -_081597F8: .4byte gUnknown_2023D08 -_081597FC: .4byte gUnknown_2024640 -_08159800: .4byte gUnknown_82D95BC -_08159804: .4byte gUnknown_2023E88 -_08159808: .4byte gUnknown_20205AC -_0815980C: .4byte 0x0000FFFE -_08159810: .4byte sub_0805D3C8 -_08159814: .4byte gUnknown_3005AC0 -_08159818: .4byte sub_08159498 - thumb_func_end SafariHandleDrawTrainerPic - - thumb_func_start SafariHandleTrainerSlide -SafariHandleTrainerSlide: @ 0x0815981C - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleTrainerSlide - - thumb_func_start SafariHandleTrainerSlideBack -SafariHandleTrainerSlideBack: @ 0x08159828 - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleTrainerSlideBack - - thumb_func_start SafariHandleFaintAnimation -SafariHandleFaintAnimation: @ 0x08159834 - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleFaintAnimation - - thumb_func_start SafariHandlePaletteFade -SafariHandlePaletteFade: @ 0x08159840 - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandlePaletteFade - - thumb_func_start sub_0815984C -sub_0815984C: @ 0x0815984C - push {r4, r5, lr} - ldr r0, _0815988C - ldr r0, [r0] - ldr r1, [r0, #8] - movs r0, #4 - strb r0, [r1, #8] - ldr r1, _08159890 - movs r0, #1 - strb r0, [r1] - ldr r5, _08159894 - ldrb r4, [r5] - movs r0, #1 - bl GetBattlerAtPosition - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r4, #0 - movs r3, #4 - bl InitAndLaunchSpecialAnimation - ldr r1, _08159898 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0815989C - str r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0815988C: .4byte gUnknown_2024174 -_08159890: .4byte gUnknown_202415D -_08159894: .4byte gUnknown_2023D08 -_08159898: .4byte gUnknown_3005AC0 -_0815989C: .4byte CompleteOnSpecialAnimDone - thumb_func_end sub_0815984C - - thumb_func_start sub_081598A0 -sub_081598A0: @ 0x081598A0 - push {r4, r5, lr} - ldr r1, _081598E8 - ldr r5, _081598EC - ldrb r0, [r5] - lsls r0, r0, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r1, [r0] - ldr r0, _081598F0 - ldr r0, [r0] - ldr r0, [r0, #8] - strb r1, [r0, #8] - ldr r1, _081598F4 - movs r0, #1 - strb r0, [r1] - ldrb r4, [r5] - movs r0, #1 - bl GetBattlerAtPosition - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r4, #0 - movs r3, #4 - bl InitAndLaunchSpecialAnimation - ldr r1, _081598F8 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081598FC - str r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081598E8: .4byte gUnknown_2022D08 -_081598EC: .4byte gUnknown_2023D08 -_081598F0: .4byte gUnknown_2024174 -_081598F4: .4byte gUnknown_202415D -_081598F8: .4byte gUnknown_3005AC0 -_081598FC: .4byte CompleteOnSpecialAnimDone - thumb_func_end sub_081598A0 - - thumb_func_start SafariHandlePause -SafariHandlePause: @ 0x08159900 - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandlePause - - thumb_func_start SafariHandleMoveAnimation -SafariHandleMoveAnimation: @ 0x0815990C - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleMoveAnimation - - thumb_func_start sub_08159918 -sub_08159918: @ 0x08159918 - push {r4, lr} - ldr r0, _08159950 - movs r1, #0 - strh r1, [r0] - ldr r0, _08159954 - strh r1, [r0] - ldr r4, _08159958 - ldrb r0, [r4] - lsls r0, r0, #9 - ldr r1, _0815995C - adds r0, r0, r1 - ldrh r0, [r0] - bl PrintOnTrainerHillRecordsWindow - ldr r0, _08159960 - movs r1, #0 - bl sub_0814FA04 - ldr r1, _08159964 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08159968 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08159950: .4byte gUnknown_2022AC8 -_08159954: .4byte gUnknown_2022ACA -_08159958: .4byte gUnknown_2023D08 -_0815995C: .4byte gUnknown_2022D0A -_08159960: .4byte gUnknown_2022AE0 -_08159964: .4byte gUnknown_3005AC0 -_08159968: .4byte sub_081594D0 - thumb_func_end sub_08159918 - - thumb_func_start SafariHandlePrintSelectionString -SafariHandlePrintSelectionString: @ 0x0815996C - push {lr} - ldr r0, _08159984 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08159988 - bl sub_08159918 - b _0815998C - .align 2, 0 -_08159984: .4byte gUnknown_2023D08 -_08159988: - bl SafariBufferExecCompleted -_0815998C: - pop {r0} - bx r0 - thumb_func_end SafariHandlePrintSelectionString - - thumb_func_start sub_08159990 -sub_08159990: @ 0x08159990 - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _081599B6 - ldr r0, _081599BC - strh r1, [r0] - ldr r1, _081599C0 - movs r0, #0xa0 - strh r0, [r1] - ldr r1, _081599C4 - ldr r0, _081599C8 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081599CC - str r1, [r0] -_081599B6: - pop {r0} - bx r0 - .align 2, 0 -_081599BC: .4byte gUnknown_2022AC8 -_081599C0: .4byte gUnknown_2022ACA -_081599C4: .4byte gUnknown_3005AC0 -_081599C8: .4byte gUnknown_2023D08 -_081599CC: .4byte HandleInputChooseAction - thumb_func_end sub_08159990 - - thumb_func_start SafariHandleChooseAction -SafariHandleChooseAction: @ 0x081599D0 - push {r4, lr} - ldr r1, _08159A1C - ldr r0, _08159A20 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08159A24 - str r1, [r0] - ldr r0, _08159A28 - movs r1, #2 - bl sub_0814FA04 - movs r4, #0 -_081599EA: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl MoveSelectionDestroyCursorAt - adds r4, #1 - cmp r4, #3 - ble _081599EA - ldr r1, _08159A2C - ldr r0, _08159A20 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #0 - bl ActionSelectionCreateCursorAt - ldr r0, _08159A30 - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r0, _08159A34 - movs r1, #1 - bl sub_0814FA04 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08159A1C: .4byte gUnknown_3005AC0 -_08159A20: .4byte gUnknown_2023D08 -_08159A24: .4byte sub_08159990 -_08159A28: .4byte gUnknown_85ABB86 -_08159A2C: .4byte gUnknown_2024150 -_08159A30: .4byte gUnknown_85ABB4D -_08159A34: .4byte gUnknown_2022AE0 - thumb_func_end SafariHandleChooseAction - - thumb_func_start SafariHandleUnknownYesNoBox -SafariHandleUnknownYesNoBox: @ 0x08159A38 - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleUnknownYesNoBox - - thumb_func_start SafariHandleChooseMove -SafariHandleChooseMove: @ 0x08159A44 - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleChooseMove - - thumb_func_start SafariHandleChooseItem -SafariHandleChooseItem: @ 0x08159A50 - push {lr} - sub sp, #4 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _08159A80 - ldr r2, _08159A84 - ldrb r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08159A88 - str r1, [r0] - ldr r1, _08159A8C - ldrb r0, [r2] - strb r0, [r1] - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_08159A80: .4byte gUnknown_3005AC0 -_08159A84: .4byte gUnknown_2023D08 -_08159A88: .4byte SafariOpenPokeblockCase -_08159A8C: .4byte gUnknown_202415C - thumb_func_end SafariHandleChooseItem - - thumb_func_start SafariHandleChoosePokemon -SafariHandleChoosePokemon: @ 0x08159A90 - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleChoosePokemon - - thumb_func_start SafariHandleCmd23 -SafariHandleCmd23: @ 0x08159A9C - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleCmd23 - - thumb_func_start SafariHandleHealthBarUpdate -SafariHandleHealthBarUpdate: @ 0x08159AA8 - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleHealthBarUpdate - - thumb_func_start SafariHandleExpUpdate -SafariHandleExpUpdate: @ 0x08159AB4 - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleExpUpdate - - thumb_func_start SafariHandleStatusIconUpdate -SafariHandleStatusIconUpdate: @ 0x08159AC0 - push {lr} - ldr r0, _08159AEC - ldr r1, _08159AF0 - ldrb r1, [r1] - adds r0, r1, r0 - ldrb r0, [r0] - ldr r2, _08159AF4 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _08159AF8 - adds r1, r1, r2 - movs r2, #0xb - bl UpdateHealthboxAttribute - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_08159AEC: .4byte gUnknown_3005AD0 -_08159AF0: .4byte gUnknown_2023D08 -_08159AF4: .4byte gUnknown_2023D12 -_08159AF8: .4byte gUnknown_2024190 - thumb_func_end SafariHandleStatusIconUpdate - - thumb_func_start sub_08159AFC -sub_08159AFC: @ 0x08159AFC - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08159AFC - - thumb_func_start SafariHandleStatusXor -SafariHandleStatusXor: @ 0x08159B08 - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleStatusXor - - thumb_func_start SafariHandleDataTransfer -SafariHandleDataTransfer: @ 0x08159B14 - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleDataTransfer - - thumb_func_start SafariHandleDMA3Transfer -SafariHandleDMA3Transfer: @ 0x08159B20 - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleDMA3Transfer - - thumb_func_start SafariHandlePlayBGM -SafariHandlePlayBGM: @ 0x08159B2C - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandlePlayBGM - - thumb_func_start SafariHandleCmd32 -SafariHandleCmd32: @ 0x08159B38 - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleCmd32 - - thumb_func_start SafariHandleTwoReturnValues -SafariHandleTwoReturnValues: @ 0x08159B44 - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleTwoReturnValues - - thumb_func_start SafariHandleChosenMonReturnValue -SafariHandleChosenMonReturnValue: @ 0x08159B50 - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleChosenMonReturnValue - - thumb_func_start SafariHandleOneReturnValue -SafariHandleOneReturnValue: @ 0x08159B5C - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleOneReturnValue - - thumb_func_start SafariHandleOneReturnValue_Duplicate -SafariHandleOneReturnValue_Duplicate: @ 0x08159B68 - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleOneReturnValue_Duplicate - - thumb_func_start SafariHandleCmd37 -SafariHandleCmd37: @ 0x08159B74 - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleCmd37 - - thumb_func_start SafariHandleCmd38 -SafariHandleCmd38: @ 0x08159B80 - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleCmd38 - - thumb_func_start SafariHandleCmd39 -SafariHandleCmd39: @ 0x08159B8C - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleCmd39 - - thumb_func_start SafariHandleCmd40 -SafariHandleCmd40: @ 0x08159B98 - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleCmd40 - - thumb_func_start SafariHandleHitAnimation -SafariHandleHitAnimation: @ 0x08159BA4 - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleHitAnimation - - thumb_func_start SafariHandleCmd42 -SafariHandleCmd42: @ 0x08159BB0 - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleCmd42 - - thumb_func_start SafariHandlePlaySE -SafariHandlePlaySE: @ 0x08159BBC - push {r4, lr} - ldr r4, _08159BF8 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - movs r3, #0x3f - cmp r0, #0 - bne _08159BD0 - movs r3, #0xc0 -_08159BD0: - ldr r2, _08159BFC - ldrb r1, [r4] - lsls r1, r1, #9 - adds r0, r2, #1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, #2 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - lsls r1, r3, #0x18 - asrs r1, r1, #0x18 - bl PlaySE12WithPanning - bl SafariBufferExecCompleted - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08159BF8: .4byte gUnknown_2023D08 -_08159BFC: .4byte gUnknown_2022D08 - thumb_func_end SafariHandlePlaySE - - thumb_func_start sub_08159C00 -sub_08159C00: @ 0x08159C00 - push {r4, r5, lr} - ldr r4, _08159C34 - ldr r5, _08159C38 - ldrb r0, [r5] - lsls r3, r0, #9 - adds r0, r4, #3 - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, #0 - beq _08159C3C - bl BattleStopLowHpSound - ldrb r1, [r5] - lsls r1, r1, #9 - adds r0, r4, #1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, r4, #2 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - bl PlayBGM - b _08159C50 - .align 2, 0 -_08159C34: .4byte gUnknown_2022D08 -_08159C38: .4byte gUnknown_2023D08 -_08159C3C: - adds r0, r4, #1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, #2 - adds r1, r3, r1 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - bl PlayFanfare -_08159C50: - bl SafariBufferExecCompleted - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08159C00 - - thumb_func_start SafariHandleFaintingCry -SafariHandleFaintingCry: @ 0x08159C5C - push {lr} - ldr r1, _08159C8C - ldr r0, _08159C90 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08159C94 - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x19 - bl PlayCry1 - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_08159C8C: .4byte gUnknown_2023D12 -_08159C90: .4byte gUnknown_2023D08 -_08159C94: .4byte gUnknown_2024190 - thumb_func_end SafariHandleFaintingCry - - thumb_func_start SafariHandleIntroSlide -SafariHandleIntroSlide: @ 0x08159C98 - push {lr} - ldr r1, _08159CC0 - ldr r0, _08159CC4 - ldrb r0, [r0] - lsls r0, r0, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - bl HandleIntroSlide - ldr r2, _08159CC8 - ldrh r0, [r2] - movs r1, #1 - orrs r0, r1 - strh r0, [r2] - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_08159CC0: .4byte gUnknown_2022D08 -_08159CC4: .4byte gUnknown_2023D08 -_08159CC8: .4byte gUnknown_20240A0 - thumb_func_end SafariHandleIntroSlide - - thumb_func_start SafariHandleIntroTrainerBallThrow -SafariHandleIntroTrainerBallThrow: @ 0x08159CCC - push {r4, r5, lr} - ldr r5, _08159D10 - ldr r4, _08159D14 - ldrb r1, [r4] - adds r0, r1, r5 - ldrb r0, [r0] - ldr r2, _08159D18 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _08159D1C - adds r1, r1, r2 - movs r2, #0xa - bl UpdateHealthboxAttribute - ldrb r0, [r4] - bl sub_08076320 - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible - ldr r1, _08159D20 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08159D24 - str r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08159D10: .4byte gUnknown_3005AD0 -_08159D14: .4byte gUnknown_2023D08 -_08159D18: .4byte gUnknown_2023D12 -_08159D1C: .4byte gUnknown_2024190 -_08159D20: .4byte gUnknown_3005AC0 -_08159D24: .4byte CompleteOnHealthboxSpriteCallbackDummy - thumb_func_end SafariHandleIntroTrainerBallThrow - - thumb_func_start sub_08159D28 -sub_08159D28: @ 0x08159D28 - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08159D28 - - thumb_func_start SafariHandleHidePartyStatusSummary -SafariHandleHidePartyStatusSummary: @ 0x08159D34 - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleHidePartyStatusSummary - - thumb_func_start SafariHandleEndBounceEffect -SafariHandleEndBounceEffect: @ 0x08159D40 - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleEndBounceEffect - - thumb_func_start SafariHandleSpriteInvisibility -SafariHandleSpriteInvisibility: @ 0x08159D4C - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleSpriteInvisibility - - thumb_func_start SafariHandleBattleAnimation -SafariHandleBattleAnimation: @ 0x08159D58 - push {r4, r5, r6, lr} - sub sp, #4 - ldr r5, _08159D90 - ldr r6, _08159D94 - ldrb r2, [r6] - lsls r1, r2, #9 - adds r0, r5, #1 - adds r0, r1, r0 - ldrb r3, [r0] - adds r0, r5, #2 - adds r0, r1, r0 - ldrb r4, [r0] - adds r5, #3 - adds r1, r1, r5 - ldrb r0, [r1] - lsls r0, r0, #8 - orrs r4, r0 - str r4, [sp] - adds r0, r2, #0 - adds r1, r2, #0 - bl TryHandleLaunchBattleTableAnimation - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08159D98 - bl SafariBufferExecCompleted - b _08159DA4 - .align 2, 0 -_08159D90: .4byte gUnknown_2022D08 -_08159D94: .4byte gUnknown_2023D08 -_08159D98: - ldr r0, _08159DAC - ldrb r1, [r6] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, _08159DB0 - str r0, [r1] -_08159DA4: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08159DAC: .4byte gUnknown_3005AC0 -_08159DB0: .4byte sub_08159610 - thumb_func_end SafariHandleBattleAnimation - - thumb_func_start SafariHandleLinkStandbyMsg -SafariHandleLinkStandbyMsg: @ 0x08159DB4 - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleLinkStandbyMsg - - thumb_func_start SafariHandleResetActionMoveSelection -SafariHandleResetActionMoveSelection: @ 0x08159DC0 - push {lr} - bl SafariBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SafariHandleResetActionMoveSelection - - thumb_func_start sub_08159DCC -sub_08159DCC: @ 0x08159DCC - push {r4, lr} - ldr r2, _08159E10 - ldr r1, _08159E14 - ldr r4, _08159E18 - ldrb r0, [r4] - lsls r0, r0, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r2] - movs r0, #5 - bl FadeOutMapMusic - movs r0, #3 - bl BeginFastPaletteFade - bl SafariBufferExecCompleted - ldr r0, _08159E1C - ldr r0, [r0] - movs r1, #6 - ands r0, r1 - cmp r0, #2 - bne _08159E08 - ldr r0, _08159E20 - ldrb r1, [r4] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, _08159E24 - str r0, [r1] -_08159E08: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08159E10: .4byte gUnknown_2023FDE -_08159E14: .4byte gUnknown_2022D08 -_08159E18: .4byte gUnknown_2023D08 -_08159E1C: .4byte gUnknown_2022C90 -_08159E20: .4byte gUnknown_3005AC0 -_08159E24: .4byte sub_08159520 - thumb_func_end sub_08159DCC - - thumb_func_start sub_08159E28 -sub_08159E28: @ 0x08159E28 - bx lr - .align 2, 0 - thumb_func_end sub_08159E28 - - thumb_func_start SetUpFieldMove_SweetScent -SetUpFieldMove_SweetScent: @ 0x08159E2C - ldr r1, _08159E3C - ldr r0, _08159E40 - str r0, [r1] - ldr r1, _08159E44 - ldr r0, _08159E48 - str r0, [r1] - movs r0, #1 - bx lr - .align 2, 0 -_08159E3C: .4byte gUnknown_3005B10 -_08159E40: .4byte FieldCallback_PrepareFadeInFromMenu -_08159E44: .4byte gUnknown_203CBB8 -_08159E48: .4byte FieldCallback_SweetScent - thumb_func_end SetUpFieldMove_SweetScent - - thumb_func_start FieldCallback_SweetScent -FieldCallback_SweetScent: @ 0x08159E4C - push {lr} - movs r0, #0x33 - bl FieldEffectStart - bl GetCursorSelectionMonId - ldr r1, _08159E64 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08159E64: .4byte gUnknown_20388A8 - thumb_func_end FieldCallback_SweetScent - - thumb_func_start FldEff_SweetScent -FldEff_SweetScent: @ 0x08159E68 - push {lr} - bl sub_080ABCCC - bl oei_task_add - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08159E90 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r2, _08159E94 - lsrs r0, r2, #0x10 - strh r0, [r1, #0x18] - strh r2, [r1, #0x1a] - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_08159E90: .4byte gUnknown_3005B60 -_08159E94: .4byte sub_08159E98 - thumb_func_end FldEff_SweetScent - - thumb_func_start sub_08159E98 -sub_08159E98: @ 0x08159E98 - push {r4, r5, lr} - sub sp, #4 - movs r0, #0xec - bl sub_080A306C - ldr r5, _08159F10 - ldr r1, _08159F14 - movs r4, #0x80 - lsls r4, r4, #1 - adds r0, r5, #0 - adds r2, r4, #0 - bl CpuFastSet - ldr r0, _08159F18 - adds r1, r5, #0 - adds r2, r4, #0 - bl CpuFastSet - bl GetPlayerAvatarObjectId - ldr r2, _08159F1C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r1, [r1, #5] - lsrs r1, r1, #4 - adds r1, #0x10 - movs r0, #1 - lsls r0, r1 - mvns r0, r0 - movs r1, #0x1f - str r1, [sp] - movs r1, #4 - movs r2, #0 - movs r3, #8 - bl BeginNormalPaletteFade - ldr r0, _08159F20 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08159F24 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r0, #0 - strh r0, [r1, #8] - movs r0, #0x33 - bl FieldEffectActiveListRemove - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08159F10: .4byte gUnknown_20373B4 -_08159F14: .4byte gUnknown_2037C88 -_08159F18: .4byte gUnknown_20377B4 -_08159F1C: .4byte gUnknown_20205AC -_08159F20: .4byte TrySweetScentEncounter -_08159F24: .4byte gUnknown_3005B60 - thumb_func_end sub_08159E98 - - thumb_func_start TrySweetScentEncounter -TrySweetScentEncounter: @ 0x08159F28 - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _08159F78 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - bne _08159FC4 - bl ClearMirageTowerPulseBlendEffect - movs r0, #0x40 - movs r1, #8 - movs r2, #0x1f - bl BlendPalettes - ldr r0, _08159F7C - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r4, r1, r0 - ldrh r1, [r4, #8] - movs r2, #8 - ldrsh r0, [r4, r2] - cmp r0, #0x40 - bne _08159FC0 - strh r6, [r4, #8] - bl SweetScentWildEncounter - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08159F80 - adds r0, r5, #0 - bl DestroyTask - b _08159FC4 - .align 2, 0 -_08159F78: .4byte gUnknown_2037C74 -_08159F7C: .4byte gUnknown_3005B60 -_08159F80: - ldr r0, _08159FB8 - str r0, [r4] - bl GetPlayerAvatarObjectId - ldr r2, _08159FBC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r1, [r1, #5] - lsrs r1, r1, #4 - adds r1, #0x10 - movs r0, #1 - lsls r0, r1 - mvns r0, r0 - movs r1, #0x1f - str r1, [sp] - movs r1, #4 - movs r2, #8 - movs r3, #0 - bl BeginNormalPaletteFade - bl TryStartMirageTowerPulseBlendEffect - b _08159FC4 - .align 2, 0 -_08159FB8: .4byte FailSweetScentEncounter -_08159FBC: .4byte gUnknown_20205AC -_08159FC0: - adds r0, r1, #1 - strh r0, [r4, #8] -_08159FC4: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end TrySweetScentEncounter - - thumb_func_start FailSweetScentEncounter -FailSweetScentEncounter: @ 0x08159FCC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0815A000 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08159FFA - ldr r0, _0815A004 - ldr r1, _0815A008 - movs r2, #0x80 - lsls r2, r2, #1 - bl CpuFastSet - bl sub_080ABCE0 - ldr r0, _0815A00C - bl ScriptContext1_SetupScript - adds r0, r4, #0 - bl DestroyTask -_08159FFA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815A000: .4byte gUnknown_2037C74 -_0815A004: .4byte gUnknown_2037C88 -_0815A008: .4byte gUnknown_20373B4 -_0815A00C: .4byte gUnknown_8256A14 - thumb_func_end FailSweetScentEncounter - - thumb_func_start sub_0815A010 -sub_0815A010: @ 0x0815A010 - push {lr} - adds r2, r0, #0 - ldr r1, _0815A034 - ldrh r0, [r1] - ldrh r3, [r2, #0x20] - adds r0, r0, r3 - strh r0, [r2, #0x20] - ldrh r0, [r1, #2] - ldrh r3, [r2, #0x22] - adds r0, r0, r3 - strh r0, [r2, #0x22] - movs r3, #6 - ldrsh r0, [r1, r3] - cmp r0, #0 - bne _0815A038 - ldrh r0, [r1, #4] - b _0815A03C - .align 2, 0 -_0815A034: .4byte gUnknown_20380BE -_0815A038: - ldrh r0, [r1, #4] - rsbs r0, r0, #0 -_0815A03C: - strh r0, [r2, #0x2e] - ldrh r0, [r1, #8] - strh r0, [r2, #0x30] - ldr r0, _0815A04C - str r0, [r2, #0x1c] - pop {r0} - bx r0 - .align 2, 0 -_0815A04C: .4byte sub_0815A050 - thumb_func_end sub_0815A010 - - thumb_func_start sub_0815A050 -sub_0815A050: @ 0x0815A050 - push {lr} - adds r3, r0, #0 - movs r1, #0x30 - ldrsh r0, [r3, r1] - cmp r0, #0 - ble _0815A090 - ldrh r1, [r3, #0x32] - lsls r0, r1, #0x10 - asrs r0, r0, #0x18 - strh r0, [r3, #0x24] - ldrh r0, [r3, #0x2e] - adds r1, r1, r0 - strh r1, [r3, #0x32] - movs r0, #0x3e - adds r0, r0, r3 - mov ip, r0 - ldrb r2, [r0] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - ldrh r0, [r3, #0x30] - subs r0, #1 - strh r0, [r3, #0x30] - b _0815A096 -_0815A090: - adds r0, r3, #0 - bl DestroyAnimSprite -_0815A096: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0815A050 - - thumb_func_start sub_0815A09C -sub_0815A09C: @ 0x0815A09C - push {r4, r5, r6, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r6, _0815A0E8 - ldrb r0, [r6] - movs r1, #2 - bl GetBattlerSpriteCoord - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #8 - movs r0, #0x80 - lsls r0, r0, #0xc - adds r4, r4, r0 - asrs r4, r4, #0x10 - ldrb r0, [r6] - movs r1, #3 - bl GetBattlerSpriteCoord - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #8 - movs r0, #0x80 - lsls r0, r0, #0xc - adds r1, r1, r0 - asrs r1, r1, #0x10 - adds r0, r4, #0 - movs r2, #0 - bl sub_08074C24 - adds r0, r5, #0 - bl DestroyAnimVisualTask - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0815A0E8: .4byte gUnknown_20380D7 - thumb_func_end sub_0815A09C - - thumb_func_start sub_0815A0EC -sub_0815A0EC: @ 0x0815A0EC - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x5a - strh r0, [r4, #0x2e] - ldr r0, _0815A128 - str r0, [r4, #0x1c] - movs r0, #7 - strh r0, [r4, #0x30] - ldr r1, _0815A12C - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - movs r1, #0xfd - lsls r1, r1, #6 - movs r0, #0x50 - bl SetGpuReg - ldrh r0, [r4, #0x30] - movs r1, #0x10 - subs r1, r1, r0 - lsls r1, r1, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815A128: .4byte WaitAnimForDuration -_0815A12C: .4byte sub_0815A130 - thumb_func_end sub_0815A0EC - - thumb_func_start sub_0815A130 -sub_0815A130: @ 0x0815A130 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x30] - movs r1, #0x10 - subs r1, r1, r0 - lsls r1, r1, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - ldrh r0, [r4, #0x30] - subs r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _0815A164 - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _0815A16C - str r0, [r4, #0x1c] -_0815A164: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815A16C: .4byte sub_0815A170 - thumb_func_end sub_0815A130 - - thumb_func_start sub_0815A170 -sub_0815A170: @ 0x0815A170 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - adds r0, r4, #0 - bl DestroyAnimSprite - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0815A170 - - thumb_func_start sub_0815A190 -sub_0815A190: @ 0x0815A190 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r5, r0, #0 - ldr r4, _0815A21C - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r7, r0, #0 - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r6, r0, #0 - adds r0, r5, #0 - movs r1, #1 - bl InitSpritePosToAnimTarget - ldrh r0, [r5, #0x20] - subs r0, r0, r7 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrh r1, [r5, #0x22] - subs r1, r1, r6 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl ArcTan2Neg - lsls r0, r0, #0x10 - movs r1, #0xc0 - lsls r1, r1, #0x17 - adds r0, r0, r1 - lsrs r4, r0, #0x10 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0815A1EE - movs r1, #0x80 - lsls r1, r1, #7 - adds r0, r4, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_0815A1EE: - movs r3, #0x80 - lsls r3, r3, #1 - str r4, [sp] - adds r0, r5, #0 - movs r1, #0 - adds r2, r3, #0 - bl TrySetSpriteRotScale - ldr r0, _0815A220 - ldrh r0, [r0, #4] - strh r0, [r5, #0x2e] - strh r7, [r5, #0x32] - strh r6, [r5, #0x36] - ldr r0, _0815A224 - str r0, [r5, #0x1c] - ldr r1, _0815A228 - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0815A21C: .4byte gUnknown_20380D7 -_0815A220: .4byte gUnknown_20380BE -_0815A224: .4byte sub_080A67B4 -_0815A228: .4byte DestroyAnimSprite - thumb_func_end sub_0815A190 - - thumb_func_start sub_0815A22C -sub_0815A22C: @ 0x0815A22C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xfd - lsls r1, r1, #6 - movs r0, #0x50 - bl SetGpuReg - movs r1, #0x80 - lsls r1, r1, #5 - movs r0, #0x52 - bl SetGpuReg - movs r0, #4 - strh r0, [r4, #0x2e] - ldr r0, _0815A254 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815A254: .4byte sub_0815A258 - thumb_func_end sub_0815A22C - - thumb_func_start sub_0815A258 -sub_0815A258: @ 0x0815A258 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - movs r1, #0x10 - subs r1, r1, r0 - lsls r1, r1, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r1, #0x30 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0815A27E - ldrh r0, [r4, #0x2e] - subs r0, #1 - b _0815A282 -_0815A27E: - ldrh r0, [r4, #0x2e] - adds r0, #1 -_0815A282: - strh r0, [r4, #0x2e] - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0xf - beq _0815A290 - cmp r0, #4 - bne _0815A298 -_0815A290: - ldrh r0, [r4, #0x30] - movs r1, #1 - eors r0, r1 - strh r0, [r4, #0x30] -_0815A298: - ldrh r0, [r4, #0x32] - adds r1, r0, #1 - strh r1, [r4, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x46 - ble _0815A2DC - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAffineAnim - movs r0, #0 - strh r0, [r4, #0x32] - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - subs r2, #0x12 - ldrb r0, [r2] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2] - ldr r0, _0815A2E4 - str r0, [r4, #0x1c] -_0815A2DC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815A2E4: .4byte sub_0815A2E8 - thumb_func_end sub_0815A258 - - thumb_func_start sub_0815A2E8 -sub_0815A2E8: @ 0x0815A2E8 - push {lr} - adds r3, r0, #0 - ldrh r0, [r3, #0x32] - adds r1, r0, #1 - strh r1, [r3, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #9 - ble _0815A324 - adds r2, r3, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - subs r2, #0x12 - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - adds r0, r3, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0815A324 - ldr r0, _0815A328 - str r0, [r3, #0x1c] -_0815A324: - pop {r0} - bx r0 - .align 2, 0 -_0815A328: .4byte sub_0815A32C - thumb_func_end sub_0815A2E8 - - thumb_func_start sub_0815A32C -sub_0815A32C: @ 0x0815A32C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x34 - ldrsh r0, [r4, r1] - cmp r0, #6 - bhi _0815A384 - lsls r0, r0, #2 - ldr r1, _0815A344 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0815A344: .4byte _0815A348 -_0815A348: @ jump table - .4byte _0815A364 @ case 0 - .4byte _0815A364 @ case 1 - .4byte _0815A36E @ case 2 - .4byte _0815A36E @ case 3 - .4byte _0815A37C @ case 4 - .4byte _0815A37C @ case 5 - .4byte _0815A384 @ case 6 -_0815A364: - movs r1, #0 - movs r0, #1 - strh r0, [r4, #0x24] - strh r1, [r4, #0x26] - b _0815A38C -_0815A36E: - ldr r0, _0815A378 - strh r0, [r4, #0x24] - movs r0, #0 - b _0815A38A - .align 2, 0 -_0815A378: .4byte 0x0000FFFF -_0815A37C: - movs r0, #0 - strh r0, [r4, #0x24] - movs r0, #1 - b _0815A38A -_0815A384: - movs r0, #0 - strh r0, [r4, #0x24] - ldr r0, _0815A3D0 -_0815A38A: - strh r0, [r4, #0x26] -_0815A38C: - ldrh r0, [r4, #0x34] - adds r0, #1 - movs r2, #0 - strh r0, [r4, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #7 - ble _0815A39E - strh r2, [r4, #0x34] -_0815A39E: - ldrh r0, [r4, #0x36] - adds r1, r0, #1 - strh r1, [r4, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xf - ble _0815A3C8 - movs r0, #0x10 - strh r0, [r4, #0x2e] - strh r2, [r4, #0x30] - movs r1, #0xfd - lsls r1, r1, #6 - movs r0, #0x50 - bl SetGpuReg - ldrh r1, [r4, #0x2e] - movs r0, #0x52 - bl SetGpuReg - ldr r0, _0815A3D4 - str r0, [r4, #0x1c] -_0815A3C8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815A3D0: .4byte 0x0000FFFF -_0815A3D4: .4byte sub_0815A3D8 - thumb_func_end sub_0815A32C - - thumb_func_start sub_0815A3D8 -sub_0815A3D8: @ 0x0815A3D8 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - movs r1, #0x10 - subs r1, r1, r0 - lsls r1, r1, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - ldrh r0, [r4, #0x30] - adds r1, r0, #1 - strh r1, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _0815A408 - ldrh r0, [r4, #0x2e] - subs r0, #1 - movs r1, #0 - strh r0, [r4, #0x2e] - strh r1, [r4, #0x30] -_0815A408: - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0815A41C - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] -_0815A41C: - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - bge _0815A43A - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - adds r0, r4, #0 - bl DestroyAnimSprite -_0815A43A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0815A3D8 - - thumb_func_start sub_0815A440 -sub_0815A440: @ 0x0815A440 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0815A45C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r0, _0815A460 - str r0, [r1] - ldr r1, _0815A464 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - bx lr - .align 2, 0 -_0815A45C: .4byte gUnknown_3005B60 -_0815A460: .4byte sub_0815A468 -_0815A464: .4byte gUnknown_203809E - thumb_func_end sub_0815A440 - - thumb_func_start sub_0815A468 -sub_0815A468: @ 0x0815A468 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl sub_080A665C - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r7, _0815A4F4 - lsls r5, r4, #2 - adds r1, r5, r4 - lsls r1, r1, #3 - adds r1, r1, r7 - ldrh r0, [r1, #0x12] - adds r0, #1 - strh r0, [r1, #0x12] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - bne _0815A4D8 - ldr r0, _0815A4F8 - lsls r2, r6, #4 - adds r1, r2, #0 - adds r1, #0xb - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r3, [r1] - mov r8, r3 - movs r3, #0xa - mov sb, r7 - adds r7, r5, #0 - mov ip, r0 - adds r5, r2, #0 - lsls r0, r6, #5 - add r0, ip - adds r2, r0, #0 - adds r2, #0x14 -_0815A4B6: - ldrh r0, [r2] - strh r0, [r1] - subs r2, #2 - subs r1, #2 - subs r3, #1 - cmp r3, #0 - bgt _0815A4B6 - adds r0, r5, #1 - lsls r0, r0, #1 - add r0, ip - movs r1, #0 - mov r2, r8 - strh r2, [r0] - adds r0, r7, r4 - lsls r0, r0, #3 - add r0, sb - strh r1, [r0, #0x12] -_0815A4D8: - ldr r0, _0815A4FC - ldrh r1, [r0, #0xe] - ldr r0, _0815A500 - cmp r1, r0 - bne _0815A4E8 - adds r0, r4, #0 - bl DestroyTask -_0815A4E8: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0815A4F4: .4byte gUnknown_3005B60 -_0815A4F8: .4byte gUnknown_20377B4 -_0815A4FC: .4byte gUnknown_20380BE -_0815A500: .4byte 0x0000FFFF - thumb_func_end sub_0815A468 - - thumb_func_start sub_0815A504 -sub_0815A504: @ 0x0815A504 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0815A520 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r0, _0815A524 - str r0, [r1] - ldr r1, _0815A528 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - bx lr - .align 2, 0 -_0815A520: .4byte gUnknown_3005B60 -_0815A524: .4byte sub_0815A52C -_0815A528: .4byte gUnknown_203809E - thumb_func_end sub_0815A504 - - thumb_func_start sub_0815A52C -sub_0815A52C: @ 0x0815A52C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - bl sub_080A665C - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r5, _0815A5EC - mov r0, r8 - lsls r3, r0, #2 - adds r1, r3, r0 - lsls r1, r1, #3 - adds r1, r1, r5 - ldrh r0, [r1, #0x12] - adds r0, #1 - strh r0, [r1, #0x12] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - bne _0815A5CE - ldr r0, _0815A5F0 - lsls r2, r7, #4 - adds r1, r2, #0 - adds r1, #0xb - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r6, [r1] - movs r4, #0xa - mov sl, r3 - mov sb, r0 - adds r5, r2, #0 - ldr r2, _0815A5F4 - mov ip, r2 - lsls r0, r7, #5 - add r0, sb - adds r3, r0, #0 - adds r3, #0x14 -_0815A580: - ldrh r0, [r3] - strh r0, [r1] - subs r3, #2 - subs r1, #2 - subs r4, #1 - cmp r4, #0 - bgt _0815A580 - adds r0, r5, #1 - lsls r0, r0, #1 - add r0, sb - strh r6, [r0] - adds r1, r5, #0 - adds r1, #0xb - lsls r1, r1, #1 - add r1, ip - ldrh r6, [r1] - movs r4, #0xa - lsls r0, r7, #5 - add r0, ip - adds r2, r0, #0 - adds r2, #0x14 -_0815A5AA: - ldrh r0, [r2] - strh r0, [r1] - subs r2, #2 - subs r1, #2 - subs r4, #1 - cmp r4, #0 - bgt _0815A5AA - adds r0, r5, #1 - lsls r0, r0, #1 - add r0, ip - movs r1, #0 - strh r6, [r0] - mov r0, sl - add r0, r8 - lsls r0, r0, #3 - ldr r2, _0815A5EC - adds r0, r0, r2 - strh r1, [r0, #0x12] -_0815A5CE: - ldr r0, _0815A5F8 - ldrh r1, [r0, #0xe] - ldr r0, _0815A5FC - cmp r1, r0 - bne _0815A5DE - mov r0, r8 - bl DestroyTask -_0815A5DE: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0815A5EC: .4byte gUnknown_3005B60 -_0815A5F0: .4byte gUnknown_20377B4 -_0815A5F4: .4byte gUnknown_20373B4 -_0815A5F8: .4byte gUnknown_20380BE -_0815A5FC: .4byte 0x0000FFFF - thumb_func_end sub_0815A52C - - thumb_func_start sub_0815A600 -sub_0815A600: @ 0x0815A600 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldr r0, _0815A664 - ldrb r0, [r0] - mov r5, sp - adds r5, #2 - movs r1, #0 - mov r2, sp - adds r3, r5, #0 - bl SetAverageBattlerPositions - ldr r0, _0815A668 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0815A634 - ldr r1, _0815A66C - ldrh r0, [r1, #4] - rsbs r0, r0, #0 - strh r0, [r1, #4] -_0815A634: - ldr r1, _0815A66C - ldrh r0, [r1, #8] - strh r0, [r4, #0x2e] - mov r2, sp - ldrh r0, [r1, #4] - ldrh r2, [r2] - adds r0, r0, r2 - strh r0, [r4, #0x32] - ldrh r0, [r1, #6] - ldrh r5, [r5] - adds r0, r0, r5 - strh r0, [r4, #0x36] - ldr r0, _0815A670 - strh r0, [r4, #0x38] - adds r0, r4, #0 - bl InitAnimArcTranslation - ldr r0, _0815A674 - str r0, [r4, #0x1c] - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0815A664: .4byte gUnknown_20380D7 -_0815A668: .4byte gUnknown_20380D6 -_0815A66C: .4byte gUnknown_20380BE -_0815A670: .4byte 0x0000FFCE -_0815A674: .4byte sub_0815A678 - thumb_func_end sub_0815A600 - - thumb_func_start sub_0815A678 -sub_0815A678: @ 0x0815A678 - push {r4, lr} - adds r4, r0, #0 - bl TranslateAnimHorizontalArc - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0815A69A - movs r1, #0 - movs r0, #0x1e - strh r0, [r4, #0x2e] - strh r1, [r4, #0x30] - ldr r0, _0815A6A0 - str r0, [r4, #0x1c] - ldr r1, _0815A6A4 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 -_0815A69A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815A6A0: .4byte WaitAnimForDuration -_0815A6A4: .4byte sub_0815A6A8 - thumb_func_end sub_0815A678 - - thumb_func_start sub_0815A6A8 -sub_0815A6A8: @ 0x0815A6A8 - push {lr} - adds r3, r0, #0 - ldrh r1, [r3, #0x30] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0815A6D4 - movs r0, #0x3e - adds r0, r0, r3 - mov ip, r0 - ldrb r2, [r0] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1] -_0815A6D4: - ldrh r0, [r3, #0x30] - adds r0, #1 - strh r0, [r3, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x10 - bne _0815A6E8 - adds r0, r3, #0 - bl DestroyAnimSprite -_0815A6E8: - pop {r0} - bx r0 - thumb_func_end sub_0815A6A8 - - thumb_func_start sub_0815A6EC -sub_0815A6EC: @ 0x0815A6EC - push {r4, r5, lr} - adds r4, r0, #0 - bl SetSpriteCoordsToAnimAttackerCoords - ldr r5, _0815A71C - movs r0, #0 - ldrsh r1, [r5, r0] - adds r0, r4, #0 - bl SetAnimSpriteInitialXOffset - ldrh r0, [r5, #2] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] - ldr r0, _0815A720 - str r0, [r4, #0x1c] - ldr r1, _0815A724 - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0815A71C: .4byte gUnknown_20380BE -_0815A720: .4byte RunStoredCallbackWhenAnimEnds -_0815A724: .4byte DestroyAnimSprite - thumb_func_end sub_0815A6EC - - thumb_func_start sub_0815A728 -sub_0815A728: @ 0x0815A728 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0815A788 - adds r0, r4, #0 - bl SetSpriteCoordsToAnimAttackerCoords - ldr r5, _0815A764 - movs r2, #0 - ldrsh r1, [r5, r2] - adds r0, r4, #0 - bl SetAnimSpriteInitialXOffset - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0815A77C - ldr r0, _0815A768 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0815A76C - ldrh r0, [r5, #4] - b _0815A782 - .align 2, 0 -_0815A764: .4byte gUnknown_20380BE -_0815A768: .4byte gUnknown_20380D6 -_0815A76C: - movs r1, #4 - ldrsh r0, [r5, r1] - rsbs r0, r0, #0 - strh r0, [r4, #0x30] - movs r2, #6 - ldrsh r0, [r5, r2] - rsbs r0, r0, #0 - b _0815A786 -_0815A77C: - movs r1, #4 - ldrsh r0, [r5, r1] - rsbs r0, r0, #0 -_0815A782: - strh r0, [r4, #0x30] - ldrh r0, [r5, #6] -_0815A786: - strh r0, [r4, #0x32] -_0815A788: - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - movs r2, #0x2e - ldrsh r1, [r4, r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - movs r3, #0xff - ldrh r1, [r4, #0x30] - ldrh r2, [r4, #0x34] - adds r1, r1, r2 - strh r1, [r4, #0x34] - ldrh r1, [r4, #0x32] - ldrh r2, [r4, #0x36] - adds r1, r1, r2 - strh r1, [r4, #0x36] - movs r2, #0x34 - ldrsh r1, [r4, r2] - lsrs r2, r1, #0x1f - adds r1, r1, r2 - asrs r1, r1, #1 - strh r1, [r4, #0x24] - ands r0, r3 - movs r1, #5 - bl Sin - movs r2, #0x36 - ldrsh r1, [r4, r2] - lsrs r2, r1, #0x1f - adds r1, r1, r2 - asrs r1, r1, #1 - adds r0, r0, r1 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x24] - ldrh r1, [r4, #0x20] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xf0 - bls _0815A7E0 - adds r0, r4, #0 - bl DestroyAnimSprite -_0815A7E0: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0815A728 - - thumb_func_start sub_0815A7E8 -sub_0815A7E8: @ 0x0815A7E8 - push {lr} - adds r2, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0815A7FE - adds r0, r2, #0 - bl DestroyAnimSprite -_0815A7FE: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0815A7E8 - - thumb_func_start AnimTask_IsTargetPlayerSide -AnimTask_IsTargetPlayerSide: @ 0x0815A804 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0815A820 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0815A828 - ldr r1, _0815A824 - movs r0, #0 - b _0815A82C - .align 2, 0 -_0815A820: .4byte gUnknown_20380D7 -_0815A824: .4byte gUnknown_20380BE -_0815A828: - ldr r1, _0815A83C - movs r0, #1 -_0815A82C: - strh r0, [r1, #0xe] - adds r0, r4, #0 - bl DestroyAnimVisualTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815A83C: .4byte gUnknown_20380BE - thumb_func_end AnimTask_IsTargetPlayerSide - - thumb_func_start AnimTask_IsHealingMove -AnimTask_IsHealingMove: @ 0x0815A840 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _0815A854 - ldr r0, [r0] - cmp r0, #0 - ble _0815A85C - ldr r1, _0815A858 - movs r0, #0 - b _0815A860 - .align 2, 0 -_0815A854: .4byte gUnknown_20380A4 -_0815A858: .4byte gUnknown_20380BE -_0815A85C: - ldr r1, _0815A86C - movs r0, #1 -_0815A860: - strh r0, [r1, #0xe] - adds r0, r2, #0 - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_0815A86C: .4byte gUnknown_20380BE - thumb_func_end AnimTask_IsHealingMove - - thumb_func_start sub_0815A870 -sub_0815A870: @ 0x0815A870 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r1, _0815A8CC - movs r0, #0x4a - bl SetGpuReg - movs r1, #0x80 - lsls r1, r1, #8 - movs r0, #0 - bl SetGpuRegBits - ldr r0, _0815A8D0 - movs r1, #0 - strh r1, [r0] - ldr r4, _0815A8D4 - strh r1, [r4] - movs r0, #0x40 - movs r1, #0 - bl SetGpuReg - ldrh r1, [r4] - movs r0, #0x44 - bl SetGpuReg - adds r0, r5, #0 - movs r1, #0 - bl InitSpritePosToAnimTarget - ldrb r1, [r5, #1] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r5, #1] - adds r2, r5, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _0815A8D8 - str r0, [r5, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0815A8CC: .4byte 0x00001F3F -_0815A8D0: .4byte gUnknown_2022AD8 -_0815A8D4: .4byte gUnknown_2022ADA -_0815A8D8: .4byte sub_0815A8DC - thumb_func_end sub_0815A870 - - thumb_func_start sub_0815A8DC -sub_0815A8DC: @ 0x0815A8DC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #5 - bhi _0815A99C - lsls r0, r0, #2 - ldr r1, _0815A8F4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0815A8F4: .4byte _0815A8F8 -_0815A8F8: @ jump table - .4byte _0815A910 @ case 0 - .4byte _0815A92E @ case 1 - .4byte _0815A94E @ case 2 - .4byte _0815A92E @ case 3 - .4byte _0815A96E @ case 4 - .4byte _0815A97E @ case 5 -_0815A910: - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0815A99C - b _0815A976 -_0815A92E: - ldrh r0, [r4, #0x30] - adds r0, #0x75 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x15 - bne _0815A99C - movs r0, #0 - strh r0, [r4, #0x32] - b _0815A976 -_0815A94E: - ldrh r0, [r4, #0x30] - subs r0, #0x75 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x29 - bne _0815A99C - movs r0, #0 - strh r0, [r4, #0x32] - b _0815A976 -_0815A96E: - adds r0, r4, #0 - movs r1, #1 - bl ChangeSpriteAffineAnim -_0815A976: - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - b _0815A99C -_0815A97E: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0815A99C - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _0815A9A4 - str r0, [r4, #0x1c] -_0815A99C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815A9A4: .4byte sub_0815A9A8 - thumb_func_end sub_0815A8DC - - thumb_func_start sub_0815A9A8 -sub_0815A9A8: @ 0x0815A9A8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0815A9DC - movs r0, #0x4a - bl SetGpuReg - movs r0, #0 - bl GetGpuReg - adds r1, r0, #0 - movs r2, #0x80 - lsls r2, r2, #8 - adds r0, r2, #0 - eors r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0 - bl SetGpuReg - adds r0, r4, #0 - bl DestroyAnimSprite - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815A9DC: .4byte 0x00003F3F - thumb_func_end sub_0815A9A8 - - thumb_func_start sub_0815A9E0 -sub_0815A9E0: @ 0x0815A9E0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r6, _0815AA54 - movs r1, #6 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _0815AA0C - ldr r4, _0815AA58 - ldrb r0, [r4] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] -_0815AA0C: - ldrh r0, [r6] - ldrh r2, [r5, #0x20] - adds r0, r0, r2 - movs r3, #0 - strh r0, [r5, #0x20] - ldrh r0, [r6, #2] - ldrh r4, [r5, #0x22] - adds r0, r0, r4 - strh r0, [r5, #0x22] - ldrh r2, [r5, #4] - lsls r1, r2, #0x16 - lsrs r1, r1, #0x16 - adds r1, #0x10 - ldr r4, _0815AA5C - adds r0, r4, #0 - ands r1, r0 - ldr r0, _0815AA60 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, #4] - movs r1, #4 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _0815AA68 - ldrb r1, [r5, #3] - movs r0, #0x3f - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r5, #3] - ldr r0, _0815AA64 - strh r0, [r5, #0x24] - movs r0, #2 - b _0815AA6E - .align 2, 0 -_0815AA54: .4byte gUnknown_20380BE -_0815AA58: .4byte gUnknown_20380D6 -_0815AA5C: .4byte 0x000003FF -_0815AA60: .4byte 0xFFFFFC00 -_0815AA64: .4byte 0x0000FFF4 -_0815AA68: - movs r0, #0xc - strh r0, [r5, #0x24] - ldr r0, _0815AA8C -_0815AA6E: - strh r0, [r5, #0x30] - ldr r1, _0815AA90 - ldrh r0, [r1, #8] - strh r0, [r5, #0x2e] - movs r2, #0x34 - ldrsh r0, [r5, r2] - cmp r0, #0xff - beq _0815AA82 - ldrh r0, [r1, #4] - strh r0, [r5, #0x34] -_0815AA82: - ldr r0, _0815AA94 - str r0, [r5, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0815AA8C: .4byte 0x0000FFFE -_0815AA90: .4byte gUnknown_20380BE -_0815AA94: .4byte sub_0815AA98 - thumb_func_end sub_0815A9E0 - - thumb_func_start sub_0815AA98 -sub_0815AA98: @ 0x0815AA98 - push {r4, lr} - adds r4, r0, #0 - ldrh r2, [r4, #0x32] - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0815AAD6 - ldrh r0, [r4, #0x30] - ldrh r1, [r4, #0x24] - adds r0, r0, r1 - strh r0, [r4, #0x24] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0815AAF6 - adds r0, r2, #1 - strh r0, [r4, #0x32] - movs r1, #0x34 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0815AAF6 - movs r0, #0x40 - rsbs r0, r0, #0 - bl BattleAnimAdjustPanning - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r0, #0xde - bl sub_080A30D0 - b _0815AAF6 -_0815AAD6: - ldrh r0, [r4, #0x24] - ldrh r1, [r4, #0x30] - subs r0, r0, r1 - strh r0, [r4, #0x24] - movs r1, #0x24 - ldrsh r0, [r4, r1] - cmp r0, #0 - bge _0815AAE8 - rsbs r0, r0, #0 -_0815AAE8: - cmp r0, #0xc - bne _0815AAF6 - ldrh r0, [r4, #0x2e] - subs r0, #1 - strh r0, [r4, #0x2e] - subs r0, r2, #1 - strh r0, [r4, #0x32] -_0815AAF6: - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0815AB04 - adds r0, r4, #0 - bl DestroyAnimSprite -_0815AB04: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0815AA98 - - thumb_func_start sub_0815AB0C -sub_0815AB0C: @ 0x0815AB0C - push {lr} - ldrb r2, [r0, #1] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #8 - orrs r1, r2 - strb r1, [r0, #1] - movs r1, #0xff - strh r1, [r0, #0x34] - bl sub_0815A9E0 - pop {r0} - bx r0 - thumb_func_end sub_0815AB0C - - thumb_func_start StartSweetScentFieldEffect -StartSweetScentFieldEffect: @ 0x0815AB28 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0815AB7C - ldr r1, _0815AB64 - movs r0, #0x48 - bl SetGpuReg - ldr r1, _0815AB68 - ldr r2, _0815AB6C - adds r0, r2, #0 - strh r0, [r1] - ldr r1, _0815AB70 - movs r0, #0xa0 - strh r0, [r1] - ldr r0, _0815AB74 - ldrh r1, [r0] - movs r0, #0x42 - bl SetGpuReg - ldr r0, _0815AB78 - ldrh r1, [r0] - movs r0, #0x46 - bl SetGpuReg - b _0815ABAC - .align 2, 0 -_0815AB64: .4byte 0x00001F3F -_0815AB68: .4byte gUnknown_2022ADC -_0815AB6C: .4byte 0x000098F0 -_0815AB70: .4byte gUnknown_2022ADE -_0815AB74: .4byte gUnknown_2022AD8 -_0815AB78: .4byte gUnknown_2022ADA -_0815AB7C: - ldr r1, _0815ABB8 - movs r0, #0x48 - bl SetGpuReg - ldr r1, _0815ABBC - movs r0, #0xf0 - strh r0, [r1] - ldr r4, _0815ABC0 - ldr r1, _0815ABC4 - adds r0, r1, #0 - strh r0, [r4] - movs r0, #0x42 - movs r1, #0xf0 - bl SetGpuReg - ldrh r1, [r4] - movs r0, #0x46 - bl SetGpuReg - movs r1, #0x80 - lsls r1, r1, #7 - movs r0, #0 - bl SetGpuRegBits -_0815ABAC: - adds r0, r5, #0 - bl DestroyAnimVisualTask - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0815ABB8: .4byte 0x00001F3F -_0815ABBC: .4byte gUnknown_2022ADC -_0815ABC0: .4byte gUnknown_2022ADE -_0815ABC4: .4byte 0x000078A0 - thumb_func_end StartSweetScentFieldEffect - - thumb_func_start sub_0815ABC8 -sub_0815ABC8: @ 0x0815ABC8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _0815AC00 - movs r0, #0x48 - bl SetGpuReg - ldr r0, _0815AC04 - movs r1, #0 - strh r1, [r0] - ldr r0, _0815AC08 - strh r1, [r0] - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0815ABF4 - movs r1, #0x80 - lsls r1, r1, #7 - movs r0, #0 - bl ClearGpuRegBits -_0815ABF4: - adds r0, r4, #0 - bl DestroyAnimVisualTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815AC00: .4byte 0x00003F3F -_0815AC04: .4byte gUnknown_2022ADC -_0815AC08: .4byte gUnknown_2022ADE - thumb_func_end sub_0815ABC8 - - thumb_func_start sub_0815AC0C -sub_0815AC0C: @ 0x0815AC0C - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r6, _0815AC20 - movs r1, #0 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _0815AC28 - ldr r4, _0815AC24 - b _0815AC2A - .align 2, 0 -_0815AC20: .4byte gUnknown_20380BE -_0815AC24: .4byte gUnknown_20380D6 -_0815AC28: - ldr r4, _0815AC7C -_0815AC2A: - ldrb r0, [r4] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r6, [r6, #2] - adds r0, r0, r6 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - ldr r2, _0815AC80 - ldrh r0, [r2, #4] - strh r0, [r5, #0x26] - movs r3, #0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrh r4, [r2, #6] - movs r6, #6 - ldrsh r1, [r2, r6] - cmp r0, r1 - ble _0815AC62 - movs r3, #1 -_0815AC62: - strh r3, [r5, #0x2e] - movs r0, #0 - strh r0, [r5, #0x30] - ldrh r0, [r2, #8] - strh r0, [r5, #0x32] - ldrh r0, [r2, #0xa] - strh r0, [r5, #0x34] - strh r4, [r5, #0x36] - ldr r0, _0815AC84 - str r0, [r5, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0815AC7C: .4byte gUnknown_20380D7 -_0815AC80: .4byte gUnknown_20380BE -_0815AC84: .4byte sub_0815AC88 - thumb_func_end sub_0815AC0C - - thumb_func_start sub_0815AC88 -sub_0815AC88: @ 0x0815AC88 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x32] - ldrh r1, [r2, #0x30] - adds r0, r0, r1 - movs r1, #0xff - ands r0, r1 - strh r0, [r2, #0x30] - ldr r1, _0815ACD0 - movs r3, #0x30 - ldrsh r0, [r2, r3] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - strh r0, [r2, #0x24] - ldrh r0, [r2, #0x34] - ldrh r3, [r2, #0x26] - adds r1, r0, r3 - strh r1, [r2, #0x26] - movs r3, #0x2e - ldrsh r0, [r2, r3] - cmp r0, #0 - beq _0815ACD4 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - movs r3, #0x36 - ldrsh r1, [r2, r3] - cmp r0, r1 - bge _0815ACE6 - adds r0, r2, #0 - bl DestroyAnimSprite - b _0815ACE6 - .align 2, 0 -_0815ACD0: .4byte gUnknown_82FA8CC -_0815ACD4: - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - movs r3, #0x36 - ldrsh r1, [r2, r3] - cmp r0, r1 - ble _0815ACE6 - adds r0, r2, #0 - bl DestroyAnimSprite -_0815ACE6: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0815AC88 - - thumb_func_start sub_0815ACEC -sub_0815ACEC: @ 0x0815ACEC - push {r4, r5, r6, r7, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _0815AD0C - adds r5, r1, r0 - ldr r0, _0815AD10 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _0815AD18 - ldr r4, _0815AD14 - b _0815AD1A - .align 2, 0 -_0815AD0C: .4byte gUnknown_3005B60 -_0815AD10: .4byte gUnknown_20380BE -_0815AD14: .4byte gUnknown_20380D6 -_0815AD18: - ldr r4, _0815AD60 -_0815AD1A: - ldrb r0, [r4] - bl GetBattlerYCoordWithElevation - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldrb r0, [r4] - bl GetBattlerSpriteBGPriorityRank - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - adds r0, r6, #0 - adds r1, r0, #0 - adds r1, #0x24 - movs r2, #0 - strh r1, [r5, #8] - strh r1, [r5, #0xa] - subs r0, #0x21 - strh r0, [r5, #0xc] - cmp r0, #0 - bge _0815AD44 - strh r2, [r5, #0xc] -_0815AD44: - ldrh r0, [r5, #8] - strh r0, [r5, #0xe] - movs r0, #8 - strh r0, [r5, #0x10] - ldr r1, _0815AD64 - ldrh r0, [r1, #2] - strh r0, [r5, #0x12] - strh r2, [r5, #0x14] - strh r2, [r5, #0x16] - cmp r7, #1 - bne _0815AD6C - ldr r0, _0815AD68 - b _0815AD6E - .align 2, 0 -_0815AD60: .4byte gUnknown_20380D7 -_0815AD64: .4byte gUnknown_20380BE -_0815AD68: .4byte gUnknown_2022ACC -_0815AD6C: - ldr r0, _0815AD8C -_0815AD6E: - ldrh r2, [r0] - strh r2, [r5, #0x18] - adds r3, r2, #0 - adds r3, #0xf0 - strh r3, [r5, #0x1a] - ldrh r0, [r1, #4] - strh r0, [r5, #0x1c] - movs r4, #4 - ldrsh r0, [r1, r4] - cmp r0, #0 - bne _0815AD90 - strh r3, [r5, #0x1e] - ldrh r3, [r5, #0x18] - b _0815AD94 - .align 2, 0 -_0815AD8C: .4byte gUnknown_2022AD0 -_0815AD90: - strh r2, [r5, #0x1e] - ldrh r3, [r5, #0x1a] -_0815AD94: - movs r0, #0 - strh r0, [r5, #0x26] - ldrh r1, [r5, #0xc] - lsls r2, r1, #0x10 - asrs r1, r2, #0x10 - movs r6, #0xe - ldrsh r0, [r5, r6] - cmp r1, r0 - bgt _0815ADCA - ldr r4, _0815ADD4 - movs r0, #0xf0 - lsls r0, r0, #3 - adds r0, r0, r4 - mov ip, r0 -_0815ADB0: - asrs r2, r2, #0x10 - lsls r1, r2, #1 - adds r0, r1, r4 - strh r3, [r0] - add r1, ip - strh r3, [r1] - adds r2, #1 - lsls r2, r2, #0x10 - asrs r1, r2, #0x10 - movs r6, #0xe - ldrsh r0, [r5, r6] - cmp r1, r0 - ble _0815ADB0 -_0815ADCA: - cmp r7, #1 - bne _0815ADDC - ldr r0, _0815ADD8 - b _0815ADDE - .align 2, 0 -_0815ADD4: .4byte gUnknown_20388C8 -_0815ADD8: .4byte 0x04000014 -_0815ADDC: - ldr r0, _0815AE08 -_0815ADDE: - str r0, [sp] - ldr r0, _0815AE0C - str r0, [sp, #4] - mov r1, sp - movs r2, #0 - movs r0, #1 - strb r0, [r1, #8] - mov r0, sp - strb r2, [r0, #9] - ldr r0, [sp] - ldr r1, [sp, #4] - ldr r2, [sp, #8] - bl ScanlineEffect_SetParams - ldr r0, _0815AE10 - str r0, [r5] - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0815AE08: .4byte 0x04000018 -_0815AE0C: .4byte 0xA2600001 -_0815AE10: .4byte sub_0815AE14 - thumb_func_end sub_0815ACEC - - thumb_func_start sub_0815AE14 -sub_0815AE14: @ 0x0815AE14 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - ldr r1, _0815AE64 - adds r4, r0, r1 - ldrh r0, [r4, #8] - ldrh r1, [r4, #0x12] - subs r0, r0, r1 - strh r0, [r4, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrh r2, [r4, #0xc] - movs r3, #0xc - ldrsh r1, [r4, r3] - cmp r0, r1 - bge _0815AE3C - strh r2, [r4, #8] -_0815AE3C: - ldrh r1, [r4, #0x10] - movs r2, #0x10 - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _0815AE68 - ldrh r0, [r4, #0xa] - ldrh r1, [r4, #0x12] - subs r0, r0, r1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrh r2, [r4, #0xc] - movs r3, #0xc - ldrsh r1, [r4, r3] - cmp r0, r1 - bge _0815AE6C - strh r2, [r4, #0xa] - movs r0, #1 - strh r0, [r4, #0x26] - b _0815AE6C - .align 2, 0 -_0815AE64: .4byte gUnknown_3005B60 -_0815AE68: - subs r0, r1, #1 - strh r0, [r4, #0x10] -_0815AE6C: - ldrh r0, [r4, #0x14] - adds r0, #1 - strh r0, [r4, #0x14] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _0815AE98 - movs r0, #0 - strh r0, [r4, #0x14] - movs r1, #0 - movs r2, #0x16 - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _0815AE8A - movs r1, #1 -_0815AE8A: - strh r1, [r4, #0x16] - cmp r1, #0 - beq _0815AE94 - ldrh r0, [r4, #0x18] - b _0815AE96 -_0815AE94: - ldrh r0, [r4, #0x1a] -_0815AE96: - strh r0, [r4, #0x20] -_0815AE98: - ldrh r1, [r4, #8] - lsls r3, r1, #0x10 - asrs r1, r3, #0x10 - movs r2, #0xa - ldrsh r0, [r4, r2] - cmp r1, r0 - bge _0815AECC - ldr r5, _0815AF24 - movs r0, #0xf0 - lsls r0, r0, #3 - adds r6, r5, r0 -_0815AEAE: - asrs r3, r3, #0x10 - lsls r1, r3, #1 - adds r2, r1, r5 - ldrh r0, [r4, #0x20] - strh r0, [r2] - adds r1, r1, r6 - ldrh r0, [r4, #0x20] - strh r0, [r1] - adds r3, #1 - lsls r3, r3, #0x10 - asrs r1, r3, #0x10 - movs r2, #0xa - ldrsh r0, [r4, r2] - cmp r1, r0 - blt _0815AEAE -_0815AECC: - ldrh r1, [r4, #0xa] - lsls r3, r1, #0x10 - asrs r1, r3, #0x10 - movs r2, #0xe - ldrsh r0, [r4, r2] - cmp r1, r0 - bgt _0815AF00 - ldr r5, _0815AF24 - movs r0, #0xf0 - lsls r0, r0, #3 - adds r6, r5, r0 -_0815AEE2: - asrs r3, r3, #0x10 - lsls r1, r3, #1 - adds r2, r1, r5 - ldrh r0, [r4, #0x1e] - strh r0, [r2] - adds r1, r1, r6 - ldrh r0, [r4, #0x1e] - strh r0, [r1] - adds r3, #1 - lsls r3, r3, #0x10 - asrs r1, r3, #0x10 - movs r2, #0xe - ldrsh r0, [r4, r2] - cmp r1, r0 - ble _0815AEE2 -_0815AF00: - movs r3, #0x26 - ldrsh r0, [r4, r3] - cmp r0, #0 - beq _0815AF1C - movs r1, #0x1c - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0815AF16 - ldr r1, _0815AF28 - movs r0, #3 - strb r0, [r1, #0x15] -_0815AF16: - adds r0, r7, #0 - bl DestroyAnimVisualTask -_0815AF1C: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0815AF24: .4byte gUnknown_20388C8 -_0815AF28: .4byte gUnknown_20397C8 - thumb_func_end sub_0815AE14 - - thumb_func_start sub_0815AF2C -sub_0815AF2C: @ 0x0815AF2C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _0815AF80 - adds r4, r4, r0 - movs r5, #0 - strh r5, [r4, #8] - strh r5, [r4, #0xa] - ldr r6, _0815AF84 - ldrb r0, [r6] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0xc] - ldrb r0, [r6] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0xe] - movs r0, #0x20 - strh r0, [r4, #0x10] - ldr r0, _0815AF88 - strh r0, [r4, #0x12] - strh r5, [r4, #0x14] - movs r0, #0 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x26] - ldr r0, _0815AF8C - str r0, [r4] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0815AF80: .4byte gUnknown_3005B60 -_0815AF84: .4byte gUnknown_20380D6 -_0815AF88: .4byte 0x0000FFEC -_0815AF8C: .4byte sub_0815AF90 - thumb_func_end sub_0815AF2C - - thumb_func_start sub_0815AF90 -sub_0815AF90: @ 0x0815AF90 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _0815AFBC - adds r6, r0, r1 - movs r1, #8 - ldrsh r0, [r6, r1] - cmp r0, #5 - bls _0815AFB0 - b _0815B16A -_0815AFB0: - lsls r0, r0, #2 - ldr r1, _0815AFC0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0815AFBC: .4byte gUnknown_3005B60 -_0815AFC0: .4byte _0815AFC4 -_0815AFC4: @ jump table - .4byte _0815AFDC @ case 0 - .4byte _0815B09C @ case 1 - .4byte _0815B0CA @ case 2 - .4byte _0815B0DE @ case 3 - .4byte _0815B0F4 @ case 4 - .4byte _0815B15C @ case 5 -_0815AFDC: - movs r0, #0xc - ldrsh r2, [r6, r0] - ldrh r1, [r6, #0xa] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0815AFF2 - movs r1, #0x10 - ldrsh r0, [r6, r1] - subs r0, r2, r0 - b _0815AFF8 -_0815AFF2: - movs r1, #0x10 - ldrsh r0, [r6, r1] - adds r0, r2, r0 -_0815AFF8: - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldrh r2, [r6, #0x12] - ldrh r0, [r6, #0xe] - adds r2, r2, r0 - ldr r0, _0815B08C - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - ldrb r4, [r6, #0xa] - movs r3, #6 - subs r3, r3, r4 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #0x40 - rsbs r0, r0, #0 - bl BattleAnimAdjustPanning - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r0, #0xba - bl PlaySE12WithPanning - cmp r4, #0x40 - beq _0815B05C - ldr r5, _0815B090 - lsls r1, r4, #4 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r3, r1, r5 - ldrh r0, [r6, #0xa] - movs r2, #1 - ands r2, r0 - adds r3, #0x3f - ldrb r4, [r3] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r4 - orrs r0, r2 - strb r0, [r3] - adds r5, #0x1c - adds r1, r1, r5 - ldr r0, _0815B094 - str r0, [r1] -_0815B05C: - ldrh r1, [r6, #0xa] - movs r4, #1 - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - beq _0815B074 - ldrh r0, [r6, #0x10] - subs r0, #6 - strh r0, [r6, #0x10] - ldrh r0, [r6, #0x12] - subs r0, #6 - strh r0, [r6, #0x12] -_0815B074: - ldrh r1, [r6, #0x26] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _0815B098 - adds r0, r6, #0 - bl PrepareAffineAnimInTaskData - ldrh r0, [r6, #0xa] - adds r0, #1 - strh r0, [r6, #0xa] - strh r4, [r6, #8] - b _0815B16A - .align 2, 0 -_0815B08C: .4byte gUnknown_856ECF8 -_0815B090: .4byte gUnknown_20205AC -_0815B094: .4byte sub_08007140 -_0815B098: .4byte gUnknown_85AD0A8 -_0815B09C: - adds r0, r6, #0 - bl RunAffineAnimFromTaskData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0815B16A - movs r2, #0xa - ldrsh r1, [r6, r2] - cmp r1, #6 - bne _0815B0BC - movs r0, #8 - strh r0, [r6, #0x14] - movs r0, #3 - strh r0, [r6, #8] - b _0815B16A -_0815B0BC: - cmp r1, #2 - bgt _0815B0C2 - movs r0, #0xa -_0815B0C2: - strh r0, [r6, #0x14] - movs r0, #2 - strh r0, [r6, #8] - b _0815B16A -_0815B0CA: - ldrh r0, [r6, #0x14] - movs r2, #0x14 - ldrsh r1, [r6, r2] - cmp r1, #0 - beq _0815B0DA - subs r0, #1 - strh r0, [r6, #0x14] - b _0815B16A -_0815B0DA: - strh r1, [r6, #8] - b _0815B16A -_0815B0DE: - ldrh r1, [r6, #0x14] - movs r2, #0x14 - ldrsh r0, [r6, r2] - cmp r0, #0 - beq _0815B0EE - subs r0, r1, #1 - strh r0, [r6, #0x14] - b _0815B16A -_0815B0EE: - movs r0, #4 - strh r0, [r6, #8] - b _0815B16A -_0815B0F4: - movs r5, #0 - movs r7, #0 - ldr r3, _0815B150 - movs r0, #0x1c - adds r0, r0, r3 - mov r8, r0 -_0815B100: - lsls r0, r5, #4 - adds r0, r0, r5 - lsls r4, r0, #2 - adds r0, r3, #0 - adds r0, #0x14 - adds r0, r4, r0 - ldr r1, [r0] - ldr r0, _0815B154 - cmp r1, r0 - bne _0815B13C - adds r0, r4, r3 - strh r2, [r0, #0x2e] - movs r1, #6 - strh r1, [r0, #0x30] - movs r1, #2 - str r2, [sp] - str r3, [sp, #4] - bl StartSpriteAnim - mov r0, r8 - adds r1, r4, r0 - ldr r0, _0815B158 - str r0, [r1] - adds r0, r7, #1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - ldr r2, [sp] - ldr r3, [sp, #4] - cmp r7, #6 - beq _0815B146 -_0815B13C: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0x3f - bls _0815B100 -_0815B146: - strh r7, [r6, #0x14] - movs r0, #5 - strh r0, [r6, #8] - b _0815B16A - .align 2, 0 -_0815B150: .4byte gUnknown_20205AC -_0815B154: .4byte gUnknown_856ECF8 -_0815B158: .4byte sub_0815B178 -_0815B15C: - movs r1, #0x14 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _0815B16A - adds r0, r2, #0 - bl DestroyAnimVisualTask -_0815B16A: - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0815AF90 - - thumb_func_start sub_0815B178 -sub_0815B178: @ 0x0815B178 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0815B1AC - ldr r3, _0815B1B4 - movs r0, #0x30 - ldrsh r1, [r4, r0] - lsls r1, r1, #1 - movs r0, #0x2e - ldrsh r2, [r4, r0] - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r1, r1, r0 - adds r3, #8 - adds r1, r1, r3 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - adds r0, r4, #0 - bl DestroySprite -_0815B1AC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815B1B4: .4byte gUnknown_3005B60 - thumb_func_end sub_0815B178 - - thumb_func_start sub_0815B1B8 -sub_0815B1B8: @ 0x0815B1B8 - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _0815B1CC - adds r0, r5, #0 - movs r1, #0 - bl InitSpritePosToAnimAttacker -_0815B1CC: - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x27 - bgt _0815B1FE - ldrh r0, [r5, #0x2e] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _0815B1F0 - adds r2, r5, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - b _0815B1FC -_0815B1F0: - adds r2, r5, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 -_0815B1FC: - strb r0, [r2] -_0815B1FE: - movs r2, #0x2e - ldrsh r0, [r5, r2] - cmp r0, #0x1e - ble _0815B214 - adds r2, r5, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_0815B214: - movs r1, #0x2e - ldrsh r0, [r5, r1] - cmp r0, #0x3d - bne _0815B260 - ldr r1, _0815B268 - adds r0, r5, #0 - bl StoreSpriteCallbackInData6 - ldrh r0, [r5, #0x24] - ldrh r2, [r5, #0x20] - adds r0, r0, r2 - movs r1, #0 - strh r0, [r5, #0x20] - ldrh r0, [r5, #0x26] - ldrh r2, [r5, #0x22] - adds r0, r0, r2 - strh r0, [r5, #0x22] - strh r1, [r5, #0x24] - strh r1, [r5, #0x26] - movs r0, #0x14 - strh r0, [r5, #0x2e] - ldr r4, _0815B26C - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x32] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x36] - ldr r0, _0815B270 - str r0, [r5, #0x1c] -_0815B260: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0815B268: .4byte DestroyAnimSprite -_0815B26C: .4byte gUnknown_20380D7 -_0815B270: .4byte sub_080A67B4 - thumb_func_end sub_0815B1B8 - - thumb_func_start sub_0815B274 -sub_0815B274: @ 0x0815B274 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _0815B294 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0815B298 - cmp r0, #1 - beq _0815B2B8 - b _0815B2CA - .align 2, 0 -_0815B294: .4byte gUnknown_3005B60 -_0815B298: - movs r0, #0 - bl GetAnimBattlerSpriteId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _0815B2B4 - adds r0, r4, #0 - bl PrepareAffineAnimInTaskData - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _0815B2CA - .align 2, 0 -_0815B2B4: .4byte gUnknown_85AD158 -_0815B2B8: - adds r0, r4, #0 - bl RunAffineAnimFromTaskData - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0815B2CA - adds r0, r5, #0 - bl DestroyAnimVisualTask -_0815B2CA: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_0815B274 - - thumb_func_start sub_0815B2D0 -sub_0815B2D0: @ 0x0815B2D0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #0 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r1, #0x2e - ldrsh r0, [r5, r1] - cmp r0, #1 - beq _0815B330 - cmp r0, #1 - bgt _0815B2F0 - cmp r0, #0 - beq _0815B2FA - b _0815B3D2 -_0815B2F0: - cmp r0, #2 - beq _0815B360 - cmp r0, #3 - beq _0815B3B4 - b _0815B3D2 -_0815B2FA: - ldr r4, _0815B32C - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - adds r0, r6, #0 - movs r1, #0 - bl PrepareBattlerSpriteForRotScale - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r5, #0x30] - strh r0, [r5, #0x32] - b _0815B3A8 - .align 2, 0 -_0815B32C: .4byte gUnknown_20380D6 -_0815B330: - ldrh r0, [r5, #0x30] - adds r0, #0x60 - strh r0, [r5, #0x30] - ldrh r0, [r5, #0x32] - subs r0, #0x1a - strh r0, [r5, #0x32] - movs r2, #0x30 - ldrsh r1, [r5, r2] - movs r0, #0x32 - ldrsh r2, [r5, r0] - adds r0, r6, #0 - movs r3, #0 - bl SetSpriteRotScale - ldrh r0, [r5, #0x34] - adds r0, #1 - strh r0, [r5, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #5 - bne _0815B360 - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] -_0815B360: - ldrh r0, [r5, #0x30] - adds r0, #0x60 - strh r0, [r5, #0x30] - ldrh r0, [r5, #0x32] - adds r0, #0x30 - strh r0, [r5, #0x32] - movs r2, #0x30 - ldrsh r1, [r5, r2] - movs r0, #0x32 - ldrsh r2, [r5, r0] - adds r0, r6, #0 - movs r3, #0 - bl SetSpriteRotScale - ldrh r0, [r5, #0x34] - adds r0, #1 - strh r0, [r5, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #9 - bne _0815B3D2 - movs r0, #0 - strh r0, [r5, #0x34] - ldr r1, _0815B3B0 - lsls r0, r6, #4 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r0, r0, r1 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - adds r0, r6, #0 - bl ResetSpriteRotScale -_0815B3A8: - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] - b _0815B3D2 - .align 2, 0 -_0815B3B0: .4byte gUnknown_20205AC -_0815B3B4: - ldrh r0, [r5, #0x26] - subs r0, #6 - strh r0, [r5, #0x26] - movs r1, #0x22 - ldrsh r0, [r5, r1] - movs r2, #0x26 - ldrsh r1, [r5, r2] - adds r0, r0, r1 - movs r1, #0x20 - rsbs r1, r1, #0 - cmp r0, r1 - bge _0815B3D2 - adds r0, r5, #0 - bl DestroyAnimSprite -_0815B3D2: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_0815B2D0 - - thumb_func_start sub_0815B3D8 -sub_0815B3D8: @ 0x0815B3D8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0815B3F0 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0815B3F8 - ldr r0, _0815B3F4 - b _0815B3FC - .align 2, 0 -_0815B3F0: .4byte gUnknown_20380D6 -_0815B3F4: .4byte 0x0000FFF0 -_0815B3F8: - movs r0, #0x80 - lsls r0, r0, #1 -_0815B3FC: - strh r0, [r4, #0x20] - movs r0, #0 - strh r0, [r4, #0x22] - ldr r0, _0815B40C - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815B40C: .4byte sub_0815B410 - thumb_func_end sub_0815B3D8 - - thumb_func_start sub_0815B410 -sub_0815B410: @ 0x0815B410 - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - adds r0, #0x48 - strh r0, [r4, #0x2e] - ldr r0, _0815B430 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0815B434 - ldrh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - b _0815B43C - .align 2, 0 -_0815B430: .4byte gUnknown_20380D6 -_0815B434: - ldrh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - rsbs r0, r0, #0 -_0815B43C: - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x30] - adds r0, #0x10 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x26] - adds r5, r0, r1 - strh r5, [r4, #0x26] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #3 - bl __modsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0815B488 - ldr r0, _0815B4A8 - ldrh r1, [r4, #0x24] - ldrh r2, [r4, #0x20] - adds r1, r1, r2 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldrh r2, [r4, #0x22] - adds r2, r2, r5 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r3, r4, #0 - adds r3, #0x43 - ldrb r3, [r3] - adds r3, #1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - bl CreateSpriteAndAnimate -_0815B488: - movs r1, #0x20 - ldrsh r0, [r4, r1] - movs r2, #0x24 - ldrsh r1, [r4, r2] - adds r0, r0, r1 - adds r0, #0x20 - movs r1, #0x98 - lsls r1, r1, #1 - cmp r0, r1 - bls _0815B4A2 - adds r0, r4, #0 - bl DestroyAnimSprite -_0815B4A2: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0815B4A8: .4byte gUnknown_85AD1A8 - thumb_func_end sub_0815B410 - - thumb_func_start AnimMiniTwinklingStar -AnimMiniTwinklingStar: @ 0x0815B4AC - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F0A4 - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0815B4C6 - ldrh r2, [r4, #4] - lsls r1, r2, #0x16 - lsrs r1, r1, #0x16 - adds r1, #4 - b _0815B4CE -_0815B4C6: - ldrh r2, [r4, #4] - lsls r1, r2, #0x16 - lsrs r1, r1, #0x16 - adds r1, #5 -_0815B4CE: - ldr r3, _0815B500 - adds r0, r3, #0 - ands r1, r0 - ldr r0, _0815B504 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, #4] - bl sub_0806F0A4 - movs r1, #7 - ands r0, r1 - adds r1, r0, #0 - cmp r1, #3 - ble _0815B4F0 - rsbs r0, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_0815B4F0: - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - strh r0, [r4, #0x26] - ldr r0, _0815B508 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815B500: .4byte 0x000003FF -_0815B504: .4byte 0xFFFFFC00 -_0815B508: .4byte sub_0815B50C - thumb_func_end AnimMiniTwinklingStar - - thumb_func_start sub_0815B50C -sub_0815B50C: @ 0x0815B50C - push {lr} - adds r3, r0, #0 - ldrh r0, [r3, #0x2e] - adds r0, #1 - strh r0, [r3, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1d - bgt _0815B54E - ldrh r0, [r3, #0x30] - adds r0, #1 - strh r0, [r3, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - bne _0815B582 - movs r0, #0x3e - adds r0, r0, r3 - mov ip, r0 - ldrb r2, [r0] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - movs r0, #0 - b _0815B580 -_0815B54E: - movs r1, #0x30 - ldrsh r0, [r3, r1] - cmp r0, #2 - bne _0815B564 - adds r2, r3, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_0815B564: - movs r1, #0x30 - ldrsh r0, [r3, r1] - cmp r0, #3 - bne _0815B57C - adds r2, r3, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _0815B594 - strh r0, [r3, #0x30] -_0815B57C: - ldrh r0, [r3, #0x30] - adds r0, #1 -_0815B580: - strh r0, [r3, #0x30] -_0815B582: - movs r1, #0x2e - ldrsh r0, [r3, r1] - cmp r0, #0x3c - ble _0815B590 - adds r0, r3, #0 - bl DestroySprite -_0815B590: - pop {r0} - bx r0 - .align 2, 0 -_0815B594: .4byte 0x0000FFFF - thumb_func_end sub_0815B50C - - thumb_func_start sub_0815B598 -sub_0815B598: @ 0x0815B598 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - ldr r1, _0815B5D0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0815B5D8 - movs r0, #0 - bl GetAnimBattlerSpriteId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _0815B5D4 - adds r0, r4, #0 - bl PrepareAffineAnimInTaskData - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _0815B5EA - .align 2, 0 -_0815B5D0: .4byte gUnknown_3005B60 -_0815B5D4: .4byte gUnknown_85AD1C0 -_0815B5D8: - adds r0, r4, #0 - bl RunAffineAnimFromTaskData - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0815B5EA - adds r0, r5, #0 - bl DestroyAnimVisualTask -_0815B5EA: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_0815B598 - - thumb_func_start AnimTask_StrongFrustrationGrowAndShrink -AnimTask_StrongFrustrationGrowAndShrink: @ 0x0815B5F0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - ldr r1, _0815B628 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0815B630 - movs r0, #0 - bl GetAnimBattlerSpriteId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _0815B62C - adds r0, r4, #0 - bl PrepareAffineAnimInTaskData - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _0815B642 - .align 2, 0 -_0815B628: .4byte gUnknown_3005B60 -_0815B62C: .4byte gUnknown_85AD1E8 -_0815B630: - adds r0, r4, #0 - bl RunAffineAnimFromTaskData - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0815B642 - adds r0, r5, #0 - bl DestroyAnimVisualTask -_0815B642: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end AnimTask_StrongFrustrationGrowAndShrink - - thumb_func_start sub_0815B648 -sub_0815B648: @ 0x0815B648 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0815B65A - cmp r0, #1 - beq _0815B684 - b _0815B6AC -_0815B65A: - adds r0, r4, #0 - movs r1, #0 - bl InitSpritePosToAnimAttacker - movs r0, #0x90 - lsls r0, r0, #4 - strh r0, [r4, #0x30] - ldr r0, _0815B680 - ldrb r0, [r0] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x32] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - b _0815B6AC - .align 2, 0 -_0815B680: .4byte gUnknown_20380D6 -_0815B684: - ldrh r2, [r4, #0x30] - lsls r1, r2, #0x10 - asrs r1, r1, #0x18 - ldrh r0, [r4, #0x26] - subs r0, r0, r1 - strh r0, [r4, #0x26] - subs r2, #0x60 - strh r2, [r4, #0x30] - movs r2, #0x22 - ldrsh r0, [r4, r2] - movs r2, #0x26 - ldrsh r1, [r4, r2] - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - ble _0815B6AC - adds r0, r4, #0 - bl DestroyAnimSprite -_0815B6AC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0815B648 - - thumb_func_start sub_0815B6B4 -sub_0815B6B4: @ 0x0815B6B4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - ldr r1, _0815B6EC - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0815B6F4 - movs r0, #0 - bl GetAnimBattlerSpriteId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _0815B6F0 - adds r0, r4, #0 - bl PrepareAffineAnimInTaskData - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _0815B706 - .align 2, 0 -_0815B6EC: .4byte gUnknown_3005B60 -_0815B6F0: .4byte gUnknown_85AD238 -_0815B6F4: - adds r0, r4, #0 - bl RunAffineAnimFromTaskData - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0815B706 - adds r0, r5, #0 - bl DestroyAnimVisualTask -_0815B706: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_0815B6B4 - - thumb_func_start sub_0815B70C -sub_0815B70C: @ 0x0815B70C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r1, _0815B73C - lsls r0, r0, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #8 - ldrsh r0, [r0, r2] - adds r3, r1, #0 - cmp r0, #4 - bls _0815B732 - b _0815BA38 -_0815B732: - lsls r0, r0, #2 - ldr r1, _0815B740 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0815B73C: .4byte gUnknown_3005B60 -_0815B740: .4byte _0815B744 -_0815B744: @ jump table - .4byte _0815B758 @ case 0 - .4byte _0815B7A8 @ case 1 - .4byte _0815B7E4 @ case 2 - .4byte _0815B980 @ case 3 - .4byte _0815B9BE @ case 4 -_0815B758: - movs r0, #0x4c - movs r1, #0 - bl SetGpuReg - ldr r0, _0815B77C - ldrb r0, [r0] - bl GetBattlerSpriteBGPriorityRank - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0815B780 - movs r0, #1 - movs r1, #2 - movs r2, #1 - bl SetAnimBgAttribute - b _0815B78A - .align 2, 0 -_0815B77C: .4byte gUnknown_20380D6 -_0815B780: - movs r0, #2 - movs r1, #2 - movs r2, #1 - bl SetAnimBgAttribute -_0815B78A: - ldr r0, _0815B7A0 - mov r6, r8 - lsls r1, r6, #2 - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _0815B7A4 - ldrh r0, [r0] - strh r0, [r1, #0x1c] - b _0815B962 - .align 2, 0 -_0815B7A0: .4byte gUnknown_3005B60 -_0815B7A4: .4byte gUnknown_20380BE -_0815B7A8: - mov r1, r8 - lsls r0, r1, #2 - add r0, r8 - lsls r0, r0, #3 - adds r4, r0, r3 - ldrh r0, [r4, #0xc] - adds r1, r0, #1 - strh r1, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - bgt _0815B7C2 - b _0815BA38 -_0815B7C2: - movs r0, #0 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - ldrh r5, [r4, #0xa] - lsls r1, r5, #4 - orrs r1, r5 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x4c - bl SetGpuReg - cmp r5, #0xf - beq _0815B7E2 - b _0815BA38 -_0815B7E2: - b _0815B9B6 -_0815B7E4: - ldr r5, _0815B814 - ldrb r0, [r5] - ldr r1, _0815B818 - ldrb r1, [r1] - mov r2, r8 - lsls r4, r2, #2 - adds r2, r4, r2 - lsls r2, r2, #3 - adds r2, r2, r3 - ldrb r2, [r2, #0x1c] - bl HandleSpeciesGfxDataChange - ldrb r1, [r5] - mov r0, sp - bl sub_080A64C4 - bl IsContest - lsls r0, r0, #0x18 - mov sb, r4 - cmp r0, #0 - beq _0815B81C - movs r1, #0 - b _0815B826 - .align 2, 0 -_0815B814: .4byte gUnknown_20380D6 -_0815B818: .4byte gUnknown_20380D7 -_0815B81C: - ldrb r0, [r5] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 -_0815B826: - ldr r0, _0815B908 - ldr r2, [r0] - lsls r0, r1, #2 - adds r2, #4 - adds r2, r2, r0 - ldr r1, _0815B90C - ldr r0, _0815B910 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #0xb - ldr r0, [r2] - adds r0, r0, r1 - ldr r1, [sp] - ldr r2, _0815B914 - bl CpuSet - ldr r1, [sp] - movs r2, #0x80 - lsls r2, r2, #4 - mov r0, sp - ldrh r3, [r0, #0xa] - movs r0, #1 - bl LoadBgTiles - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0815B958 - ldr r5, _0815B918 - ldr r0, [r5] - ldr r0, [r0, #0x18] - ldrh r0, [r0] - bl IsSpeciesNotUnown - adds r4, r0, #0 - ldr r0, [r5] - ldr r0, [r0, #0x18] - ldrh r0, [r0, #2] - bl IsSpeciesNotUnown - lsls r4, r4, #0x18 - lsls r0, r0, #0x18 - cmp r4, r0 - beq _0815B8D8 - ldr r6, [sp, #4] - movs r5, #0 - movs r0, #7 - mov ip, r0 - movs r7, #0 -_0815B88C: - movs r4, #0 - adds r3, r7, r6 - mov r1, ip - lsls r0, r1, #1 - adds r2, r0, r6 -_0815B896: - ldrh r1, [r3] - ldrh r0, [r2] - strh r0, [r3] - strh r1, [r2] - adds r3, #2 - subs r2, #2 - adds r4, #1 - cmp r4, #3 - ble _0815B896 - movs r2, #0x20 - add ip, r2 - adds r7, #0x40 - adds r5, #1 - cmp r5, #7 - ble _0815B88C - movs r5, #0 - movs r0, #0x80 - lsls r0, r0, #3 - adds r3, r0, #0 -_0815B8BC: - adds r2, r5, #1 - lsls r0, r5, #6 - adds r1, r0, r6 - movs r4, #7 -_0815B8C4: - ldrh r0, [r1] - eors r0, r3 - strh r0, [r1] - adds r1, #2 - subs r4, #1 - cmp r4, #0 - bge _0815B8C4 - adds r5, r2, #0 - cmp r5, #7 - ble _0815B8BC -_0815B8D8: - ldr r0, _0815B918 - ldr r0, [r0] - ldr r0, [r0, #0x18] - ldrh r0, [r0, #2] - bl IsSpeciesNotUnown - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0815B928 - ldr r3, _0815B91C - ldr r4, _0815B920 - ldr r2, _0815B910 - ldrb r0, [r2] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r3, #0 - adds r1, #0x10 - adds r0, r0, r1 - ldr r1, _0815B924 - b _0815B942 - .align 2, 0 -_0815B908: .4byte gUnknown_2024178 -_0815B90C: .4byte gUnknown_2024188 -_0815B910: .4byte gUnknown_20380D6 -_0815B914: .4byte 0x04000200 -_0815B918: .4byte gUnknown_2039BD4 -_0815B91C: .4byte gUnknown_20205AC -_0815B920: .4byte gUnknown_2023E88 -_0815B924: .4byte gUnknown_82D2F50 -_0815B928: - ldr r3, _0815B96C - ldr r4, _0815B970 - ldr r2, _0815B974 - ldrb r0, [r2] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r3, #0 - adds r1, #0x10 - adds r0, r0, r1 - ldr r1, _0815B978 -_0815B942: - str r1, [r0] - ldrb r0, [r2] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r1, #0 - bl StartSpriteAffineAnim -_0815B958: - ldr r0, _0815B97C - mov r1, sb - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 -_0815B962: - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _0815BA38 - .align 2, 0 -_0815B96C: .4byte gUnknown_20205AC -_0815B970: .4byte gUnknown_2023E88 -_0815B974: .4byte gUnknown_20380D6 -_0815B978: .4byte gUnknown_82D2F24 -_0815B97C: .4byte gUnknown_3005B60 -_0815B980: - mov r1, r8 - lsls r0, r1, #2 - add r0, r8 - lsls r0, r0, #3 - adds r4, r0, r3 - ldrh r0, [r4, #0xc] - adds r1, r0, #1 - strh r1, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _0815BA38 - movs r0, #0 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0xa] - subs r0, #1 - strh r0, [r4, #0xa] - ldrh r5, [r4, #0xa] - lsls r1, r5, #4 - orrs r1, r5 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x4c - bl SetGpuReg - cmp r5, #0 - bne _0815BA38 -_0815B9B6: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _0815BA38 -_0815B9BE: - movs r0, #0x4c - movs r1, #0 - bl SetGpuReg - ldr r0, _0815B9E4 - ldrb r0, [r0] - bl GetBattlerSpriteBGPriorityRank - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0815B9E8 - movs r0, #1 - movs r1, #2 - movs r2, #0 - bl SetAnimBgAttribute - b _0815B9F2 - .align 2, 0 -_0815B9E4: .4byte gUnknown_20380D6 -_0815B9E8: - movs r0, #2 - movs r1, #2 - movs r2, #0 - bl SetAnimBgAttribute -_0815B9F2: - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0815BA32 - ldr r4, _0815BA48 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0815BA32 - ldr r0, _0815BA4C - mov r2, r8 - lsls r1, r2, #2 - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r6, #0x1c - ldrsh r0, [r1, r6] - cmp r0, #0 - bne _0815BA32 - ldrb r0, [r4] - ldr r1, _0815BA50 - ldr r1, [r1] - ldr r2, [r1] - lsls r1, r0, #2 - adds r1, r1, r2 - ldrh r1, [r1, #2] - bl SetBattlerShadowSpriteCallback -_0815BA32: - mov r0, r8 - bl DestroyAnimVisualTask -_0815BA38: - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0815BA48: .4byte gUnknown_20380D6 -_0815BA4C: .4byte gUnknown_3005B60 -_0815BA50: .4byte gUnknown_2024174 - thumb_func_end sub_0815B70C - - thumb_func_start sub_0815BA54 -sub_0815BA54: @ 0x0815BA54 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _0815BA84 - ldr r3, _0815BA88 - ldr r2, _0815BA8C - ldr r1, _0815BA90 - ldrb r1, [r1] - adds r1, r1, r2 - ldrb r2, [r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r3 - adds r1, #0x3e - ldrb r1, [r1] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1f - strh r1, [r4, #0xe] - bl DestroyAnimVisualTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815BA84: .4byte gUnknown_20380BE -_0815BA88: .4byte gUnknown_20205AC -_0815BA8C: .4byte gUnknown_2023E88 -_0815BA90: .4byte gUnknown_20380D6 - thumb_func_end sub_0815BA54 - - thumb_func_start sub_0815BA94 -sub_0815BA94: @ 0x0815BA94 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _0815BAB8 - ldrb r0, [r0] - ldr r1, _0815BABC - ldrb r1, [r1] - movs r2, #1 - bl HandleSpeciesGfxDataChange - adds r0, r4, #0 - bl DestroyAnimVisualTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815BAB8: .4byte gUnknown_20380D6 -_0815BABC: .4byte gUnknown_20380D7 - thumb_func_end sub_0815BA94 - - thumb_func_start sub_0815BAC0 -sub_0815BAC0: @ 0x0815BAC0 - push {r4, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _0815BAE8 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #8 - ldrsh r0, [r0, r2] - adds r2, r1, #0 - cmp r0, #4 - bls _0815BADE - b _0815BD2E -_0815BADE: - lsls r0, r0, #2 - ldr r1, _0815BAEC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0815BAE8: .4byte gUnknown_3005B60 -_0815BAEC: .4byte _0815BAF0 -_0815BAF0: @ jump table - .4byte _0815BB04 @ case 0 - .4byte _0815BBF4 @ case 1 - .4byte _0815BC44 @ case 2 - .4byte _0815BCAE @ case 3 - .4byte _0815BCE2 @ case 4 -_0815BB04: - ldr r1, _0815BB60 - movs r0, #0x50 - bl SetGpuReg - movs r1, #0x80 - lsls r1, r1, #5 - movs r0, #0x52 - bl SetGpuReg - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl SetAnimBgAttribute - movs r0, #1 - movs r1, #4 - movs r2, #1 - bl SetAnimBgAttribute - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0815BB3E - movs r0, #1 - movs r1, #3 - movs r2, #1 - bl SetAnimBgAttribute -_0815BB3E: - mov r0, sp - bl sub_080A63F8 - ldr r1, _0815BB64 - mov r0, sp - movs r2, #0 - bl sub_080A6628 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0815BB70 - ldr r1, _0815BB68 - ldr r3, _0815BB6C - b _0815BB98 - .align 2, 0 -_0815BB60: .4byte 0x00003F42 -_0815BB64: .4byte gUnknown_8C2A790 -_0815BB68: .4byte gUnknown_2022ACC -_0815BB6C: .4byte 0x0000FFC8 -_0815BB70: - ldr r0, _0815BB88 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0815BB94 - ldr r1, _0815BB8C - ldr r2, _0815BB90 - adds r0, r2, #0 - b _0815BB9A - .align 2, 0 -_0815BB88: .4byte gUnknown_20380D6 -_0815BB8C: .4byte gUnknown_2022ACC -_0815BB90: .4byte 0x0000FF79 -_0815BB94: - ldr r1, _0815BBDC - ldr r3, _0815BBE0 -_0815BB98: - adds r0, r3, #0 -_0815BB9A: - strh r0, [r1] - ldr r1, _0815BBE4 - movs r0, #0 - strh r0, [r1] - mov r0, sp - ldrb r0, [r0, #9] - ldr r1, _0815BBE8 - mov r2, sp - ldrh r2, [r2, #0xa] - bl AnimLoadCompressedBgGfx - ldr r0, _0815BBEC - mov r1, sp - ldrb r1, [r1, #8] - lsls r1, r1, #4 - movs r2, #0x20 - bl LoadCompressedPalette - ldr r0, _0815BBF0 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _0815BBDC - ldrh r0, [r0] - strh r0, [r1, #0x1c] - ldr r0, _0815BBE4 - ldrh r0, [r0] - strh r0, [r1, #0x1e] - ldrh r0, [r1, #8] - adds r0, #1 - b _0815BCCA - .align 2, 0 -_0815BBDC: .4byte gUnknown_2022ACC -_0815BBE0: .4byte 0x0000FFF6 -_0815BBE4: .4byte gUnknown_2022ACE -_0815BBE8: .4byte gUnknown_8C2A6D8 -_0815BBEC: .4byte gUnknown_8C2A778 -_0815BBF0: .4byte gUnknown_3005B60 -_0815BBF4: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r4, r0, r2 - ldrh r0, [r4, #0x10] - adds r1, r0, #1 - strh r1, [r4, #0x10] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _0815BC0A - b _0815BD2E -_0815BC0A: - movs r0, #0 - strh r0, [r4, #0x10] - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xc - ble _0815BC20 - movs r0, #0xc - strh r0, [r4, #0xa] -_0815BC20: - ldrh r0, [r4, #0xa] - movs r1, #0x10 - subs r1, r1, r0 - lsls r1, r1, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0xc - bne _0815BD2E - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _0815BD2E -_0815BC44: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r4, r0, r2 - ldrh r0, [r4, #0xa] - subs r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _0815BC5C - movs r0, #0 - strh r0, [r4, #0xa] -_0815BC5C: - ldrh r0, [r4, #0xa] - movs r1, #0x10 - subs r1, r1, r0 - lsls r1, r1, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r2, #0xa - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _0815BD2E - ldr r2, _0815BCA0 - ldr r1, _0815BCA4 - movs r3, #0xc - ldrsh r0, [r4, r3] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x1c] - adds r0, r0, r1 - strh r0, [r2] - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - bne _0815BCA8 - strh r0, [r4, #8] - b _0815BD2E - .align 2, 0 -_0815BCA0: .4byte gUnknown_2022ACC -_0815BCA4: .4byte gUnknown_85AD268 -_0815BCA8: - movs r0, #3 - strh r0, [r4, #8] - b _0815BD2E -_0815BCAE: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r1, r0, r2 - ldrh r0, [r1, #0xe] - adds r0, #1 - strh r0, [r1, #0xe] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - bne _0815BD2E - movs r0, #0 - strh r0, [r1, #0xe] - movs r0, #1 -_0815BCCA: - strh r0, [r1, #8] - movs r0, #0x40 - rsbs r0, r0, #0 - bl BattleAnimAdjustPanning - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r0, #0xe4 - bl PlaySE12WithPanning - b _0815BD2E -_0815BCE2: - mov r0, sp - bl sub_080A63F8 - mov r0, sp - ldrb r0, [r0, #9] - bl sub_080A6530 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0815BD04 - movs r0, #1 - movs r1, #3 - movs r2, #0 - bl SetAnimBgAttribute -_0815BD04: - movs r0, #1 - movs r1, #4 - movs r2, #1 - bl SetAnimBgAttribute - ldr r0, _0815BD38 - movs r1, #0 - strh r1, [r0] - ldr r0, _0815BD3C - strh r1, [r0] - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - adds r0, r4, #0 - bl DestroyAnimVisualTask -_0815BD2E: - add sp, #0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815BD38: .4byte gUnknown_2022ACC -_0815BD3C: .4byte gUnknown_2022ACE - thumb_func_end sub_0815BAC0 - - thumb_func_start sub_0815BD40 -sub_0815BD40: @ 0x0815BD40 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r7, r0, #0 - bl sub_0806F0A4 - lsls r0, r0, #0x10 - movs r1, #0xfc - lsls r1, r1, #0xe - ands r1, r0 - lsrs r5, r1, #0x10 - adds r1, r5, #0 - cmp r1, #0x1f - ble _0815BD6A - movs r0, #0x20 - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_0815BD6A: - ldr r4, _0815BE64 - ldrb r0, [r4] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r5 - strh r0, [r7, #0x20] - ldrb r0, [r4] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #0x20 - strh r0, [r7, #0x22] - ldr r1, _0815BE68 - ldrh r0, [r1] - strh r0, [r7, #0x30] - ldrh r0, [r1, #2] - strh r0, [r7, #0x32] - ldr r4, _0815BE6C - movs r0, #0x20 - ldrsh r1, [r7, r0] - movs r0, #0x22 - ldrsh r2, [r7, r0] - adds r5, r7, #0 - adds r5, #0x43 - ldrb r3, [r5] - adds r3, #1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r4, #0 - bl CreateSprite - mov sb, r0 - mov r1, sb - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sb, r1 - movs r0, #0x20 - ldrsh r1, [r7, r0] - movs r0, #0x22 - ldrsh r2, [r7, r0] - ldrb r3, [r5] - adds r3, #1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r4, #0 - bl CreateSprite - mov r8, r0 - mov r1, r8 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - mov r0, sb - lsls r2, r0, #4 - add r2, sb - lsls r2, r2, #2 - ldr r1, _0815BE70 - mov sl, r1 - adds r5, r2, r1 - adds r0, r5, #0 - movs r1, #1 - str r2, [sp] - bl StartSpriteAnim - mov r0, r8 - lsls r6, r0, #4 - add r6, r8 - lsls r6, r6, #2 - mov r1, sl - adds r4, r6, r1 - adds r0, r4, #0 - movs r1, #2 - bl StartSpriteAnim - ldr r1, _0815BE68 - ldrh r0, [r1] - strh r0, [r5, #0x30] - ldrh r0, [r1, #2] - strh r0, [r5, #0x32] - ldrh r0, [r1] - strh r0, [r4, #0x30] - ldrh r0, [r1, #2] - strh r0, [r4, #0x32] - ldr r0, _0815BE74 - strh r0, [r5, #0x3c] - movs r0, #1 - rsbs r0, r0, #0 - strh r0, [r4, #0x3c] - adds r5, #0x3e - ldrb r0, [r5] - movs r1, #4 - orrs r0, r1 - strb r0, [r5] - adds r4, #0x3e - ldrb r0, [r4] - orrs r0, r1 - strb r0, [r4] - movs r0, #0x1c - add sl, r0 - ldr r2, [sp] - add r2, sl - ldr r0, _0815BE78 - str r0, [r2] - add r6, sl - str r0, [r6] - mov r1, sb - strh r1, [r7, #0x3a] - mov r0, r8 - strh r0, [r7, #0x3c] - ldr r0, _0815BE7C - str r0, [r7, #0x1c] - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0815BE64: .4byte gUnknown_20380D6 -_0815BE68: .4byte gUnknown_20380BE -_0815BE6C: .4byte gUnknown_85AD294 -_0815BE70: .4byte gUnknown_20205AC -_0815BE74: .4byte 0x0000FFFF -_0815BE78: .4byte sub_0815BF8C -_0815BE7C: .4byte sub_0815BE80 - thumb_func_end sub_0815BD40 - - thumb_func_start sub_0815BE80 -sub_0815BE80: @ 0x0815BE80 - push {lr} - adds r3, r0, #0 - ldrh r2, [r3, #0x32] - ldrh r0, [r3, #0x34] - adds r2, r2, r0 - lsls r0, r2, #0x10 - asrs r0, r0, #0x18 - ldrh r1, [r3, #0x26] - subs r1, r1, r0 - strh r1, [r3, #0x26] - movs r0, #0xff - ands r2, r0 - strh r2, [r3, #0x34] - movs r2, #0x36 - ldrsh r0, [r3, r2] - cmp r0, #0 - bne _0815BECE - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - movs r1, #8 - rsbs r1, r1, #0 - cmp r0, r1 - bge _0815BECE - ldr r2, _0815BF28 - movs r0, #0x3a - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - ldrh r0, [r3, #0x36] - adds r0, #1 - strh r0, [r3, #0x36] -_0815BECE: - movs r1, #0x36 - ldrsh r0, [r3, r1] - cmp r0, #1 - bne _0815BF02 - movs r2, #0x26 - ldrsh r1, [r3, r2] - movs r0, #0x10 - rsbs r0, r0, #0 - cmp r1, r0 - bge _0815BF02 - ldr r2, _0815BF28 - movs r0, #0x3c - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - ldrh r0, [r3, #0x36] - adds r0, #1 - strh r0, [r3, #0x36] -_0815BF02: - ldrh r0, [r3, #0x30] - subs r0, #1 - strh r0, [r3, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _0815BF24 - adds r2, r3, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _0815BF2C - str r0, [r3, #0x1c] -_0815BF24: - pop {r0} - bx r0 - .align 2, 0 -_0815BF28: .4byte gUnknown_20205AC -_0815BF2C: .4byte sub_0815BF30 - thumb_func_end sub_0815BE80 - - thumb_func_start sub_0815BF30 -sub_0815BF30: @ 0x0815BF30 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r5, _0815BF84 - movs r0, #0x3a - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r3, r0, #2 - adds r6, r5, #0 - adds r6, #0x1c - adds r0, r3, r6 - ldr r2, [r0] - ldr r0, _0815BF88 - cmp r2, r0 - bne _0815BF7C - movs r1, #0x3c - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldr r0, [r1] - cmp r0, r2 - bne _0815BF7C - adds r0, r3, r5 - bl DestroySprite - movs r0, #0x3c - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - bl DestroySprite - adds r0, r4, #0 - bl DestroyAnimSprite -_0815BF7C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0815BF84: .4byte gUnknown_20205AC -_0815BF88: .4byte sub_08007140 - thumb_func_end sub_0815BF30 - - thumb_func_start sub_0815BF8C -sub_0815BF8C: @ 0x0815BF8C - push {lr} - adds r3, r0, #0 - movs r0, #0x3e - adds r0, r0, r3 - mov ip, r0 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _0815BFD8 - ldrh r2, [r3, #0x32] - ldrh r1, [r3, #0x34] - adds r2, r2, r1 - lsls r1, r2, #0x10 - asrs r1, r1, #0x18 - ldrh r0, [r3, #0x26] - subs r0, r0, r1 - strh r0, [r3, #0x26] - movs r0, #0xff - ands r2, r0 - strh r2, [r3, #0x34] - ldrh r0, [r3, #0x30] - subs r0, #1 - strh r0, [r3, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _0815BFD8 - mov r1, ip - ldrb r0, [r1] - movs r1, #4 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - ldr r0, _0815BFDC - str r0, [r3, #0x1c] -_0815BFD8: - pop {r0} - bx r0 - .align 2, 0 -_0815BFDC: .4byte sub_08007140 - thumb_func_end sub_0815BF8C - - thumb_func_start sub_0815BFE0 -sub_0815BFE0: @ 0x0815BFE0 - push {r4, r5, r6, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _0815C008 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #8 - ldrsh r0, [r0, r2] - adds r4, r1, #0 - cmp r0, #5 - bls _0815BFFE - b _0815C2D2 -_0815BFFE: - lsls r0, r0, #2 - ldr r1, _0815C00C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0815C008: .4byte gUnknown_3005B60 -_0815C00C: .4byte _0815C010 -_0815C010: @ jump table - .4byte _0815C028 @ case 0 - .4byte _0815C160 @ case 1 - .4byte _0815C1E8 @ case 2 - .4byte _0815C21E @ case 3 - .4byte _0815C24C @ case 4 - .4byte _0815C286 @ case 5 -_0815C028: - ldr r1, _0815C084 - movs r0, #0x50 - bl SetGpuReg - ldr r1, _0815C088 - movs r0, #0x52 - bl SetGpuReg - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl SetAnimBgAttribute - movs r0, #1 - movs r1, #4 - movs r2, #1 - bl SetAnimBgAttribute - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0815C060 - movs r0, #1 - movs r1, #3 - movs r2, #1 - bl SetAnimBgAttribute -_0815C060: - mov r0, sp - bl sub_080A63F8 - ldr r1, _0815C08C - mov r0, sp - movs r2, #0 - bl sub_080A6628 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0815C098 - ldr r1, _0815C090 - ldr r3, _0815C094 - adds r0, r3, #0 - b _0815C106 - .align 2, 0 -_0815C084: .4byte 0x00003F42 -_0815C088: .4byte 0x00000D03 -_0815C08C: .4byte gUnknown_8C2A790 -_0815C090: .4byte gUnknown_2022ACC -_0815C094: .4byte 0x0000FFC8 -_0815C098: - ldr r0, _0815C0DC - ldrb r0, [r0] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl IsDoubleBattle - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0815C0F0 - cmp r4, #1 - bne _0815C0BC - ldr r1, _0815C0E0 - ldr r2, _0815C0E4 - adds r0, r2, #0 - strh r0, [r1] -_0815C0BC: - cmp r4, #3 - bne _0815C0C8 - ldr r1, _0815C0E0 - ldr r3, _0815C0E8 - adds r0, r3, #0 - strh r0, [r1] -_0815C0C8: - cmp r4, #0 - bne _0815C0D2 - ldr r1, _0815C0E0 - movs r0, #0xe - strh r0, [r1] -_0815C0D2: - cmp r4, #2 - bne _0815C108 - ldr r1, _0815C0E0 - ldr r2, _0815C0EC - b _0815C104 - .align 2, 0 -_0815C0DC: .4byte gUnknown_20380D7 -_0815C0E0: .4byte gUnknown_2022ACC -_0815C0E4: .4byte 0x0000FF65 -_0815C0E8: .4byte 0x0000FF8D -_0815C0EC: .4byte 0x0000FFEC -_0815C0F0: - cmp r4, #1 - bne _0815C0FC - ldr r1, _0815C144 - ldr r3, _0815C148 - adds r0, r3, #0 - strh r0, [r1] -_0815C0FC: - cmp r4, #0 - bne _0815C108 - ldr r1, _0815C144 - ldr r2, _0815C14C -_0815C104: - adds r0, r2, #0 -_0815C106: - strh r0, [r1] -_0815C108: - ldr r1, _0815C150 - movs r0, #0 - strh r0, [r1] - mov r0, sp - ldrb r0, [r0, #9] - ldr r1, _0815C154 - mov r2, sp - ldrh r2, [r2, #0xa] - bl AnimLoadCompressedBgGfx - ldr r0, _0815C158 - mov r1, sp - ldrb r1, [r1, #8] - lsls r1, r1, #4 - movs r2, #0x20 - bl LoadCompressedPalette - ldr r0, _0815C15C - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _0815C144 - ldrh r0, [r0] - strh r0, [r1, #0x1c] - ldr r0, _0815C150 - ldrh r0, [r0] - strh r0, [r1, #0x1e] - b _0815C1E0 - .align 2, 0 -_0815C144: .4byte gUnknown_2022ACC -_0815C148: .4byte 0x0000FF79 -_0815C14C: .4byte 0x0000FFF6 -_0815C150: .4byte gUnknown_2022ACE -_0815C154: .4byte gUnknown_8C2A6D8 -_0815C158: .4byte gUnknown_8C2A778 -_0815C15C: .4byte gUnknown_3005B60 -_0815C160: - ldr r1, _0815C194 - lsls r4, r6, #2 - adds r0, r4, r6 - lsls r0, r0, #3 - adds r5, r0, r1 - movs r0, #0 - strh r0, [r5, #0xe] - ldr r0, _0815C198 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0815C1A4 - ldr r2, _0815C19C - ldr r1, _0815C1A0 - movs r3, #0xc - ldrsh r0, [r5, r3] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r5, [r5, #0x1c] - adds r0, r0, r5 - b _0815C1B6 - .align 2, 0 -_0815C194: .4byte gUnknown_3005B60 -_0815C198: .4byte gUnknown_20380D7 -_0815C19C: .4byte gUnknown_2022ACC -_0815C1A0: .4byte gUnknown_85AD2AC -_0815C1A4: - ldr r2, _0815C1D4 - ldr r1, _0815C1D8 - movs r3, #0xc - ldrsh r0, [r5, r3] - adds r0, r0, r1 - movs r1, #0 - ldrsb r1, [r0, r1] - ldrh r0, [r5, #0x1c] - subs r0, r0, r1 -_0815C1B6: - strh r0, [r2] - ldr r0, _0815C1DC - adds r1, r4, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0xc] - adds r0, #1 - strh r0, [r1, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #5 - bne _0815C1E0 - strh r0, [r1, #8] - b _0815C2D2 - .align 2, 0 -_0815C1D4: .4byte gUnknown_2022ACC -_0815C1D8: .4byte gUnknown_85AD2AC -_0815C1DC: .4byte gUnknown_3005B60 -_0815C1E0: - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _0815C2D2 -_0815C1E8: - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r4, r0, r4 - ldrh r0, [r4, #0xa] - subs r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - bgt _0815C202 - movs r0, #5 - strh r0, [r4, #0xa] -_0815C202: - ldrh r1, [r4, #0xa] - lsls r1, r1, #8 - movs r0, #3 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #5 - bne _0815C2D2 - b _0815C23E -_0815C21E: - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r4, r0, r4 - ldrh r1, [r4, #0xe] - adds r1, #1 - strh r1, [r4, #0xe] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldr r2, _0815C248 - movs r3, #0xc - ldrsh r0, [r4, r3] - adds r0, r0, r2 - ldrb r0, [r0] - cmp r1, r0 - ble _0815C2D2 -_0815C23E: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _0815C2D2 - .align 2, 0 -_0815C248: .4byte gUnknown_85AD2B0 -_0815C24C: - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r4, r0, r4 - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xd - ble _0815C266 - movs r0, #0xd - strh r0, [r4, #0xa] -_0815C266: - ldrh r1, [r4, #0xa] - lsls r1, r1, #8 - movs r0, #3 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0xd - bne _0815C2D2 - movs r0, #1 - strh r0, [r4, #8] - b _0815C2D2 -_0815C286: - mov r0, sp - bl sub_080A63F8 - mov r0, sp - ldrb r0, [r0, #9] - bl sub_080A6530 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0815C2A8 - movs r0, #1 - movs r1, #3 - movs r2, #0 - bl SetAnimBgAttribute -_0815C2A8: - movs r0, #1 - movs r1, #4 - movs r2, #1 - bl SetAnimBgAttribute - ldr r0, _0815C2DC - movs r1, #0 - strh r1, [r0] - ldr r0, _0815C2E0 - strh r1, [r0] - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - adds r0, r6, #0 - bl DestroyAnimVisualTask -_0815C2D2: - add sp, #0x10 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0815C2DC: .4byte gUnknown_2022ACC -_0815C2E0: .4byte gUnknown_2022ACE - thumb_func_end sub_0815BFE0 - - thumb_func_start sub_0815C2E4 -sub_0815C2E4: @ 0x0815C2E4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - ldr r1, _0815C31C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0815C324 - movs r0, #0 - bl GetAnimBattlerSpriteId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _0815C320 - adds r0, r4, #0 - bl PrepareAffineAnimInTaskData - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _0815C336 - .align 2, 0 -_0815C31C: .4byte gUnknown_3005B60 -_0815C320: .4byte gUnknown_85AD2B8 -_0815C324: - adds r0, r4, #0 - bl RunAffineAnimFromTaskData - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0815C336 - adds r0, r5, #0 - bl DestroyAnimVisualTask -_0815C336: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_0815C2E4 - - thumb_func_start AnimWeakFrustrationAngerMark -AnimWeakFrustrationAngerMark: @ 0x0815C33C - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - movs r2, #0x2e - ldrsh r1, [r4, r2] - cmp r1, #0 - bne _0815C35A - adds r0, r4, #0 - movs r1, #0 - bl InitSpritePosToAnimAttacker - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - b _0815C3AE -_0815C35A: - adds r0, #1 - strh r0, [r4, #0x2e] - cmp r1, #0x14 - ble _0815C3AE - ldrh r0, [r4, #0x30] - adds r0, #0xa0 - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x32] - adds r0, #0x80 - strh r0, [r4, #0x32] - ldr r0, _0815C388 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0815C38C - ldrh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - rsbs r0, r0, #0 - b _0815C392 - .align 2, 0 -_0815C388: .4byte gUnknown_20380D6 -_0815C38C: - ldrh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 -_0815C392: - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x26] - adds r0, r0, r1 - strh r0, [r4, #0x26] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x40 - ble _0815C3AE - adds r0, r4, #0 - bl DestroyAnimSprite -_0815C3AE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end AnimWeakFrustrationAngerMark - - thumb_func_start AnimTask_RockMonBackAndForth -AnimTask_RockMonBackAndForth: @ 0x0815C3B4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _0815C3D8 - adds r4, r0, r1 - ldr r5, _0815C3DC - movs r1, #2 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _0815C3E0 - adds r0, r2, #0 - bl DestroyAnimVisualTask - b _0815C474 - .align 2, 0 -_0815C3D8: .4byte gUnknown_3005B60 -_0815C3DC: .4byte gUnknown_20380BE -_0815C3E0: - movs r1, #4 - ldrsh r0, [r5, r1] - cmp r0, #0 - bge _0815C3EC - movs r0, #0 - strh r0, [r5, #4] -_0815C3EC: - movs r1, #4 - ldrsh r0, [r5, r1] - cmp r0, #2 - ble _0815C3F8 - movs r0, #2 - strh r0, [r5, #4] -_0815C3F8: - movs r0, #0 - strh r0, [r4, #8] - strh r0, [r4, #0xa] - strh r0, [r4, #0xc] - movs r0, #4 - ldrsh r1, [r5, r0] - lsls r1, r1, #1 - movs r0, #8 - subs r0, r0, r1 - strh r0, [r4, #0xe] - movs r1, #4 - ldrsh r0, [r5, r1] - lsls r0, r0, #7 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r0, r1 - strh r0, [r4, #0x10] - ldrh r0, [r5, #4] - adds r0, #2 - strh r0, [r4, #0x12] - ldrh r0, [r5, #2] - subs r0, #1 - strh r0, [r4, #0x14] - ldrb r0, [r5] - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x26] - movs r1, #0 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _0815C444 - ldr r0, _0815C440 - b _0815C446 - .align 2, 0 -_0815C440: .4byte gUnknown_20380D6 -_0815C444: - ldr r0, _0815C47C -_0815C446: - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0815C464 - movs r1, #0x10 - ldrsh r0, [r4, r1] - rsbs r0, r0, #0 - strh r0, [r4, #0x10] - movs r1, #0x12 - ldrsh r0, [r4, r1] - rsbs r0, r0, #0 - strh r0, [r4, #0x12] -_0815C464: - ldrh r0, [r4, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl PrepareBattlerSpriteForRotScale - ldr r0, _0815C480 - str r0, [r4] -_0815C474: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0815C47C: .4byte gUnknown_20380D7 -_0815C480: .4byte AnimTask_RockMonBackAndForthStep - thumb_func_end AnimTask_RockMonBackAndForth - - thumb_func_start AnimTask_RockMonBackAndForthStep -AnimTask_RockMonBackAndForthStep: @ 0x0815C484 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _0815C4A8 - adds r4, r0, r1 - movs r0, #8 - ldrsh r6, [r4, r0] - cmp r6, #1 - beq _0815C50C - cmp r6, #1 - bgt _0815C4AC - cmp r6, #0 - beq _0815C4B8 - b _0815C5E4 - .align 2, 0 -_0815C4A8: .4byte gUnknown_3005B60 -_0815C4AC: - cmp r6, #2 - beq _0815C564 - cmp r6, #3 - bne _0815C4B6 - b _0815C5D4 -_0815C4B6: - b _0815C5E4 -_0815C4B8: - ldr r2, _0815C508 - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r4, #0x12] - ldrh r2, [r0, #0x24] - adds r1, r1, r2 - strh r1, [r0, #0x24] - ldrh r0, [r4, #0xc] - ldrh r1, [r4, #0x10] - subs r0, r0, r1 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0x80 - lsls r2, r2, #1 - ldrh r3, [r4, #0xc] - adds r1, r2, #0 - bl SetSpriteRotScale - ldrh r0, [r4, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl SetBattlerSpriteYOffsetFromRotation - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0xe - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _0815C5E4 - strh r6, [r4, #0xa] - b _0815C5CC - .align 2, 0 -_0815C508: .4byte gUnknown_20205AC -_0815C50C: - ldr r2, _0815C560 - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x24] - ldrh r2, [r4, #0x12] - subs r1, r1, r2 - strh r1, [r0, #0x24] - ldrh r0, [r4, #0x10] - ldrh r1, [r4, #0xc] - adds r0, r0, r1 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0x80 - lsls r2, r2, #1 - ldrh r3, [r4, #0xc] - adds r1, r2, #0 - bl SetSpriteRotScale - ldrh r0, [r4, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl SetBattlerSpriteYOffsetFromRotation - ldrh r1, [r4, #0xa] - adds r1, #1 - strh r1, [r4, #0xa] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r2, #0xe - ldrsh r0, [r4, r2] - lsls r0, r0, #1 - cmp r1, r0 - blt _0815C5E4 - movs r0, #0 - strh r0, [r4, #0xa] - b _0815C5CC - .align 2, 0 -_0815C560: .4byte gUnknown_20205AC -_0815C564: - ldr r2, _0815C5C8 - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r4, #0x12] - ldrh r2, [r0, #0x24] - adds r1, r1, r2 - movs r5, #0 - strh r1, [r0, #0x24] - ldrh r0, [r4, #0xc] - ldrh r1, [r4, #0x10] - subs r0, r0, r1 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0x80 - lsls r2, r2, #1 - ldrh r3, [r4, #0xc] - adds r1, r2, #0 - bl SetSpriteRotScale - ldrh r0, [r4, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl SetBattlerSpriteYOffsetFromRotation - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0xe - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _0815C5E4 - ldrh r1, [r4, #0x14] - movs r2, #0x14 - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _0815C5CC - subs r0, r1, #1 - strh r0, [r4, #0x14] - strh r5, [r4, #0xa] - strh r5, [r4, #8] - b _0815C5E4 - .align 2, 0 -_0815C5C8: .4byte gUnknown_20205AC -_0815C5CC: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _0815C5E4 -_0815C5D4: - ldrh r0, [r4, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl ResetSpriteRotScale - adds r0, r5, #0 - bl DestroyAnimVisualTask -_0815C5E4: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AnimTask_RockMonBackAndForthStep - - thumb_func_start AnimSweetScentPetal -AnimSweetScentPetal: @ 0x0815C5EC - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0815C608 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0815C610 - strh r0, [r4, #0x20] - ldr r1, _0815C60C - ldrh r0, [r1] - b _0815C61A - .align 2, 0 -_0815C608: .4byte gUnknown_20380D6 -_0815C60C: .4byte gUnknown_20380BE -_0815C610: - movs r0, #0xf0 - strh r0, [r4, #0x20] - ldr r1, _0815C634 - ldrh r0, [r1] - subs r0, #0x1e -_0815C61A: - strh r0, [r4, #0x22] - ldrh r0, [r1, #4] - strh r0, [r4, #0x32] - ldrb r1, [r1, #2] - adds r0, r4, #0 - bl StartSpriteAnim - ldr r0, _0815C638 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815C634: .4byte gUnknown_20380BE -_0815C638: .4byte AnimSweetScentPetalStep - thumb_func_end AnimSweetScentPetal - - thumb_func_start AnimSweetScentPetalStep -AnimSweetScentPetalStep: @ 0x0815C63C - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - adds r0, #3 - strh r0, [r4, #0x2e] - ldr r0, _0815C67C - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0815C680 - ldrh r1, [r4, #0x20] - adds r1, #5 - strh r1, [r4, #0x20] - ldrh r0, [r4, #0x22] - subs r0, #1 - strh r0, [r4, #0x22] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0xf0 - ble _0815C66E - adds r0, r4, #0 - bl DestroyAnimSprite -_0815C66E: - ldrh r1, [r4, #0x2e] - movs r0, #0xff - ands r0, r1 - movs r1, #0x10 - bl Sin - b _0815C6A4 - .align 2, 0 -_0815C67C: .4byte gUnknown_20380D6 -_0815C680: - ldrh r1, [r4, #0x20] - subs r1, #5 - strh r1, [r4, #0x20] - ldrh r0, [r4, #0x22] - adds r0, #1 - strh r0, [r4, #0x22] - lsls r1, r1, #0x10 - cmp r1, #0 - bge _0815C698 - adds r0, r4, #0 - bl DestroyAnimSprite -_0815C698: - ldrh r1, [r4, #0x2e] - movs r0, #0xff - ands r0, r1 - movs r1, #0x10 - bl Cos -_0815C6A4: - strh r0, [r4, #0x26] - pop {r4} - pop {r0} - bx r0 - thumb_func_end AnimSweetScentPetalStep - - thumb_func_start AnimTask_FlailMovement -AnimTask_FlailMovement: @ 0x0815C6AC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _0815C6F4 - adds r4, r4, r0 - movs r0, #0 - strh r0, [r4, #8] - strh r0, [r4, #0xa] - strh r0, [r4, #0xc] - strh r0, [r4, #0xe] - movs r0, #0x20 - strh r0, [r4, #0x20] - movs r0, #0x40 - strh r0, [r4, #0x22] - movs r0, #0x80 - lsls r0, r0, #4 - strh r0, [r4, #0x24] - ldr r0, _0815C6F8 - ldrb r0, [r0] - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x26] - movs r1, #0 - bl PrepareBattlerSpriteForRotScale - ldr r0, _0815C6FC - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815C6F4: .4byte gUnknown_3005B60 -_0815C6F8: .4byte gUnknown_20380BE -_0815C6FC: .4byte AnimTask_FlailMovementStep - thumb_func_end AnimTask_FlailMovement - - thumb_func_start AnimTask_FlailMovementStep -AnimTask_FlailMovementStep: @ 0x0815C700 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _0815C72C - adds r7, r0, r1 - movs r1, #8 - ldrsh r0, [r7, r1] - mov r8, r0 - cmp r0, #1 - beq _0815C79C - cmp r0, #1 - bgt _0815C730 - cmp r0, #0 - beq _0815C738 - b _0815C816 - .align 2, 0 -_0815C72C: .4byte gUnknown_3005B60 -_0815C730: - mov r2, r8 - cmp r2, #2 - beq _0815C804 - b _0815C816 -_0815C738: - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r7, #0xc] - adds r2, r0, r1 - strh r2, [r7, #0xc] - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - ldrh r3, [r7, #0x24] - mov r8, r3 - movs r3, #0x24 - ldrsh r1, [r7, r3] - cmp r0, r1 - blt _0815C816 - mov r0, r8 - subs r5, r0, r2 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - adds r6, r1, #0 - lsls r6, r6, #1 - adds r0, r5, #0 - adds r1, r6, #0 - bl __divsi3 - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - adds r1, r6, #0 - bl __modsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - movs r1, #1 - ands r4, r1 - cmp r4, #0 - bne _0815C790 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov r2, r8 - subs r0, r2, r0 - b _0815C7EE -_0815C790: - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov r3, r8 - subs r0, r0, r3 - strh r0, [r7, #0xc] - b _0815C816 -_0815C79C: - ldr r1, _0815C7F4 - adds r0, r1, #0 - ldrh r2, [r7, #0xc] - adds r1, r0, r2 - strh r1, [r7, #0xc] - movs r3, #0xc - ldrsh r0, [r7, r3] - movs r2, #0x24 - ldrsh r6, [r7, r2] - cmn r0, r6 - bgt _0815C816 - ldrh r3, [r7, #0x24] - mov sb, r3 - mov r0, sb - subs r4, r0, r1 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - lsls r6, r6, #1 - adds r0, r4, #0 - adds r1, r6, #0 - bl __divsi3 - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - adds r0, r4, #0 - adds r1, r6, #0 - bl __modsi3 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - mov r1, r8 - ands r1, r5 - lsls r0, r1, #0x10 - asrs r1, r0, #0x10 - cmp r1, #0 - bne _0815C7F8 - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - mov r2, sb - subs r0, r0, r2 -_0815C7EE: - strh r0, [r7, #0xc] - strh r1, [r7, #8] - b _0815C816 - .align 2, 0 -_0815C7F4: .4byte 0xFFFFFE00 -_0815C7F8: - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - mov r3, sb - subs r0, r3, r0 - strh r0, [r7, #0xc] - b _0815C816 -_0815C804: - ldrh r0, [r7, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl ResetSpriteRotScale - adds r0, r4, #0 - bl DestroyAnimVisualTask - b _0815C88C -_0815C816: - ldrh r0, [r7, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0x80 - lsls r2, r2, #1 - ldrh r3, [r7, #0xc] - adds r1, r2, #0 - bl SetSpriteRotScale - ldrh r0, [r7, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl SetBattlerSpriteYOffsetFromRotation - ldr r2, _0815C884 - movs r0, #0x26 - ldrsh r1, [r7, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r2 - movs r2, #0xc - ldrsh r0, [r7, r2] - cmp r0, #0 - bge _0815C84A - adds r0, #0x3f -_0815C84A: - asrs r0, r0, #6 - rsbs r0, r0, #0 - strh r0, [r1, #0x24] - ldrh r0, [r7, #0xa] - adds r0, #1 - strh r0, [r7, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #8 - ble _0815C88C - ldrh r1, [r7, #0x20] - movs r3, #0x20 - ldrsh r0, [r7, r3] - cmp r0, #0 - beq _0815C888 - subs r0, r1, #1 - strh r0, [r7, #0x20] - ldrh r0, [r7, #0x24] - ldrh r1, [r7, #0x22] - subs r0, r0, r1 - strh r0, [r7, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xf - bgt _0815C88C - movs r0, #0x10 - strh r0, [r7, #0x24] - b _0815C88C - .align 2, 0 -_0815C884: .4byte gUnknown_20205AC -_0815C888: - movs r0, #2 - strh r0, [r7, #8] -_0815C88C: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end AnimTask_FlailMovementStep - - thumb_func_start AnimPainSplitProjectile -AnimPainSplitProjectile: @ 0x0815C898 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _0815C8F8 - ldr r6, _0815C8F0 - movs r2, #4 - ldrsh r0, [r6, r2] - cmp r0, #0 - bne _0815C8CC - ldr r4, _0815C8F4 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] -_0815C8CC: - ldrh r0, [r6] - ldrh r1, [r5, #0x20] - adds r0, r0, r1 - strh r0, [r5, #0x20] - ldrh r1, [r6, #2] - ldrh r2, [r5, #0x22] - adds r0, r1, r2 - strh r0, [r5, #0x22] - movs r0, #0x80 - strh r0, [r5, #0x30] - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r5, #0x32] - strh r1, [r5, #0x34] - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] - b _0815C956 - .align 2, 0 -_0815C8F0: .4byte gUnknown_20380BE -_0815C8F4: .4byte gUnknown_20380D6 -_0815C8F8: - ldrh r1, [r5, #0x30] - lsls r0, r1, #0x10 - asrs r0, r0, #0x18 - strh r0, [r5, #0x24] - ldrh r0, [r5, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - ldrh r2, [r5, #0x26] - adds r0, r0, r2 - strh r0, [r5, #0x26] - movs r2, #0x36 - ldrsh r0, [r5, r2] - adds r4, r1, #0 - cmp r0, #0 - bne _0815C936 - movs r0, #0x26 - ldrsh r1, [r5, r0] - movs r2, #0x34 - ldrsh r0, [r5, r2] - cmn r1, r0 - ble _0815C936 - movs r0, #1 - strh r0, [r5, #0x36] - movs r1, #0x32 - ldrsh r0, [r5, r1] - rsbs r0, r0, #0 - movs r1, #3 - bl __divsi3 - lsls r0, r0, #1 - strh r0, [r5, #0x32] -_0815C936: - adds r0, r4, #0 - adds r0, #0xc0 - strh r0, [r5, #0x30] - ldrh r0, [r5, #0x32] - adds r0, #0x80 - strh r0, [r5, #0x32] - adds r0, r5, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0815C956 - adds r0, r5, #0 - bl DestroyAnimSprite -_0815C956: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end AnimPainSplitProjectile - - thumb_func_start AnimTask_PainSplitMovement -AnimTask_PainSplitMovement: @ 0x0815C95C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r7, r0, #0 - ldr r1, _0815C98C - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r2, r0, r1 - movs r1, #8 - ldrsh r0, [r2, r1] - cmp r0, #0 - bne _0815CA68 - ldr r0, _0815C990 - movs r3, #0 - ldrsh r1, [r0, r3] - mov r8, r0 - cmp r1, #0 - bne _0815C998 - ldr r0, _0815C994 - b _0815C99A - .align 2, 0 -_0815C98C: .4byte gUnknown_3005B60 -_0815C990: .4byte gUnknown_20380BE -_0815C994: .4byte gUnknown_20380D6 -_0815C998: - ldr r0, _0815C9D4 -_0815C99A: - ldrb r0, [r0] - strh r0, [r2, #0x1e] - mov r1, r8 - ldrb r0, [r1] - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _0815C9D8 - lsls r4, r7, #2 - adds r0, r4, r7 - lsls r0, r0, #3 - adds r6, r0, r1 - strh r5, [r6, #0x1c] - adds r0, r5, #0 - movs r1, #0 - bl PrepareBattlerSpriteForRotScale - mov r2, r8 - movs r3, #2 - ldrsh r0, [r2, r3] - cmp r0, #1 - beq _0815C9FC - cmp r0, #1 - bgt _0815C9DC - cmp r0, #0 - beq _0815C9E4 - lsls r2, r5, #4 - b _0815CA44 - .align 2, 0 -_0815C9D4: .4byte gUnknown_20380D7 -_0815C9D8: .4byte gUnknown_3005B60 -_0815C9DC: - cmp r0, #2 - beq _0815CA06 - lsls r2, r5, #4 - b _0815CA44 -_0815C9E4: - movs r2, #0xa0 - lsls r2, r2, #1 - adds r0, r5, #0 - movs r1, #0xe0 - movs r3, #0 - bl SetSpriteRotScale - adds r0, r5, #0 - bl SetBattlerSpriteYOffsetFromYScale - lsls r2, r5, #4 - b _0815CA44 -_0815C9FC: - movs r2, #0x98 - lsls r2, r2, #1 - movs r3, #0xf0 - lsls r3, r3, #4 - b _0815CA0E -_0815CA06: - movs r2, #0x98 - lsls r2, r2, #1 - movs r3, #0xf1 - lsls r3, r3, #8 -_0815CA0E: - adds r0, r5, #0 - movs r1, #0xd0 - bl SetSpriteRotScale - adds r0, r5, #0 - bl SetBattlerSpriteYOffsetFromYScale - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0815CA34 - ldrb r0, [r6, #0x1e] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsls r2, r5, #4 - cmp r0, #0 - bne _0815CA44 -_0815CA34: - ldr r0, _0815CA60 - lsls r2, r5, #4 - adds r1, r2, r5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r0, [r1, #0x26] - adds r0, #0x10 - strh r0, [r1, #0x26] -_0815CA44: - ldr r1, _0815CA60 - adds r0, r2, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - movs r1, #2 - strh r1, [r0, #0x24] - ldr r0, _0815CA64 - adds r1, r4, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _0815CAB4 - .align 2, 0 -_0815CA60: .4byte gUnknown_20205AC -_0815CA64: .4byte gUnknown_3005B60 -_0815CA68: - ldrb r5, [r2, #0x1c] - ldrh r0, [r2, #0xc] - adds r0, #1 - movs r4, #0 - strh r0, [r2, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - bne _0815CA8C - strh r4, [r2, #0xc] - ldr r0, _0815CAC0 - lsls r1, r5, #4 - adds r1, r1, r5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r0, [r1, #0x24] - rsbs r0, r0, #0 - strh r0, [r1, #0x24] -_0815CA8C: - ldrh r0, [r2, #0xa] - adds r0, #1 - strh r0, [r2, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xd - bne _0815CAB4 - adds r0, r5, #0 - bl ResetSpriteRotScale - ldr r1, _0815CAC0 - lsls r0, r5, #4 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - strh r4, [r0, #0x24] - strh r4, [r0, #0x26] - adds r0, r7, #0 - bl DestroyAnimVisualTask -_0815CAB4: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0815CAC0: .4byte gUnknown_20205AC - thumb_func_end AnimTask_PainSplitMovement - - thumb_func_start AnimFlatterConfetti -AnimFlatterConfetti: @ 0x0815CAC4 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0806F0A4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xc - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r2, [r4, #4] - lsls r1, r2, #0x16 - lsrs r1, r1, #0x16 - adds r1, r1, r0 - ldr r3, _0815CB10 - adds r0, r3, #0 - ands r1, r0 - ldr r0, _0815CB14 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, #4] - bl sub_0806F0A4 - ldr r5, _0815CB18 - ands r5, r0 - bl sub_0806F0A4 - movs r1, #0xff - ands r1, r0 - movs r0, #1 - ands r0, r5 - cmp r0, #0 - beq _0815CB1C - movs r2, #0xbc - lsls r2, r2, #3 - adds r0, r5, r2 - b _0815CB24 - .align 2, 0 -_0815CB10: .4byte 0x000003FF -_0815CB14: .4byte 0xFFFFFC00 -_0815CB18: .4byte 0x000001FF -_0815CB1C: - movs r3, #0xbc - lsls r3, r3, #3 - adds r0, r3, #0 - subs r0, r0, r5 -_0815CB24: - strh r0, [r4, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0815CB36 - movs r2, #0x90 - lsls r2, r2, #3 - adds r0, r1, r2 - b _0815CB3E -_0815CB36: - movs r3, #0x90 - lsls r3, r3, #3 - adds r0, r3, #0 - subs r0, r0, r1 -_0815CB3E: - strh r0, [r4, #0x30] - ldr r0, _0815CB50 - ldrh r0, [r0] - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0815CB58 - ldr r0, _0815CB54 - b _0815CB5A - .align 2, 0 -_0815CB50: .4byte gUnknown_20380BE -_0815CB54: .4byte 0x0000FFF8 -_0815CB58: - movs r0, #0xf8 -_0815CB5A: - strh r0, [r4, #0x20] - movs r0, #0x68 - strh r0, [r4, #0x22] - ldr r0, _0815CB6C - str r0, [r4, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0815CB6C: .4byte AnimFlatterConfettiStep - thumb_func_end AnimFlatterConfetti - - thumb_func_start AnimFlatterConfettiStep -AnimFlatterConfettiStep: @ 0x0815CB70 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0815CB88 - ldrh r3, [r4, #0x2e] - lsls r0, r3, #0x10 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x24] - adds r0, r0, r1 - b _0815CB92 -_0815CB88: - ldrh r3, [r4, #0x2e] - lsls r1, r3, #0x10 - asrs r1, r1, #0x18 - ldrh r0, [r4, #0x24] - subs r0, r0, r1 -_0815CB92: - strh r0, [r4, #0x24] - ldrh r2, [r4, #0x30] - lsls r1, r2, #0x10 - asrs r1, r1, #0x18 - ldrh r0, [r4, #0x26] - subs r0, r0, r1 - strh r0, [r4, #0x26] - adds r0, r3, #0 - subs r0, #0x16 - strh r0, [r4, #0x2e] - adds r1, r2, #0 - subs r1, #0x30 - strh r1, [r4, #0x30] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _0815CBB6 - movs r0, #0 - strh r0, [r4, #0x2e] -_0815CBB6: - ldrh r0, [r4, #0x34] - adds r0, #1 - strh r0, [r4, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1f - bne _0815CBCA - adds r0, r4, #0 - bl DestroyAnimSprite -_0815CBCA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end AnimFlatterConfettiStep - - thumb_func_start AnimFlatterSpotlight -AnimFlatterSpotlight: @ 0x0815CBD0 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r1, _0815CC34 - movs r0, #0x4a - bl SetGpuReg - movs r1, #0x80 - lsls r1, r1, #8 - movs r0, #0 - bl SetGpuRegBits - ldr r0, _0815CC38 - movs r1, #0 - strh r1, [r0] - ldr r4, _0815CC3C - strh r1, [r4] - movs r0, #0x40 - movs r1, #0 - bl SetGpuReg - ldrh r1, [r4] - movs r0, #0x44 - bl SetGpuReg - ldr r0, _0815CC40 - ldrh r0, [r0, #4] - strh r0, [r5, #0x2e] - adds r0, r5, #0 - movs r1, #0 - bl InitSpritePosToAnimTarget - ldrb r1, [r5, #1] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r5, #1] - adds r2, r5, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _0815CC44 - str r0, [r5, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0815CC34: .4byte 0x00001F3F -_0815CC38: .4byte gUnknown_2022AD8 -_0815CC3C: .4byte gUnknown_2022ADA -_0815CC40: .4byte gUnknown_20380BE -_0815CC44: .4byte AnimFlatterSpotlightStep - thumb_func_end AnimFlatterSpotlight - - thumb_func_start AnimFlatterSpotlightStep -AnimFlatterSpotlightStep: @ 0x0815CC48 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x30 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _0815CC86 - cmp r0, #1 - bgt _0815CC5E - cmp r0, #0 - beq _0815CC68 - b _0815CCE6 -_0815CC5E: - cmp r0, #2 - beq _0815CC9C - cmp r0, #3 - beq _0815CCBE - b _0815CCE6 -_0815CC68: - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0815CCE6 - b _0815CCB6 -_0815CC86: - ldrh r0, [r4, #0x2e] - subs r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0815CCE6 - adds r0, r4, #0 - movs r1, #1 - bl ChangeSpriteAffineAnim - b _0815CCB6 -_0815CC9C: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0815CCE6 - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] -_0815CCB6: - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - b _0815CCE6 -_0815CCBE: - ldr r1, _0815CCEC - movs r0, #0x4a - bl SetGpuReg - movs r0, #0 - bl GetGpuReg - adds r1, r0, #0 - movs r2, #0x80 - lsls r2, r2, #8 - adds r0, r2, #0 - eors r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0 - bl SetGpuReg - adds r0, r4, #0 - bl DestroyAnimSprite -_0815CCE6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815CCEC: .4byte 0x00003F3F - thumb_func_end AnimFlatterSpotlightStep - - thumb_func_start AnimReversalOrb -AnimReversalOrb: @ 0x0815CCF0 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _0815CD2C - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x20] - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x22] - ldr r1, _0815CD30 - ldrh r0, [r1] - strh r0, [r4, #0x2e] - ldrh r0, [r1, #2] - strh r0, [r4, #0x30] - ldr r1, _0815CD34 - str r1, [r4, #0x1c] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0815CD2C: .4byte gUnknown_20380D6 -_0815CD30: .4byte gUnknown_20380BE -_0815CD34: .4byte AnimReversalOrbStep - thumb_func_end AnimReversalOrb - - thumb_func_start AnimReversalOrbStep -AnimReversalOrbStep: @ 0x0815CD38 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x30 - ldrsh r0, [r4, r1] - ldrh r1, [r4, #0x32] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - bl Sin - strh r0, [r4, #0x24] - movs r2, #0x30 - ldrsh r0, [r4, r2] - ldrh r1, [r4, #0x34] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - bl Cos - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x30] - adds r0, #9 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x30] - lsls r1, r0, #0x10 - cmp r0, #0x3f - bls _0815CD72 - asrs r0, r1, #0x10 - cmp r0, #0xc3 - ble _0815CD84 -_0815CD72: - ldr r0, _0815CD80 - ldrb r0, [r0] - bl GetBattlerSpriteSubpriority - subs r0, #1 - b _0815CD8E - .align 2, 0 -_0815CD80: .4byte gUnknown_20380D6 -_0815CD84: - ldr r0, _0815CDD0 - ldrb r0, [r0] - bl GetBattlerSpriteSubpriority - adds r0, #1 -_0815CD8E: - adds r1, r4, #0 - adds r1, #0x43 - strb r0, [r1] - movs r3, #0x38 - ldrsh r2, [r4, r3] - cmp r2, #0 - bne _0815CDD4 - movs r1, #0x80 - lsls r1, r1, #3 - adds r0, r1, #0 - ldrh r3, [r4, #0x32] - adds r0, r0, r3 - strh r0, [r4, #0x32] - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r3, [r4, #0x34] - adds r0, r0, r3 - strh r0, [r4, #0x34] - ldrh r0, [r4, #0x36] - adds r0, #1 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r3, #0x2e - ldrsh r1, [r4, r3] - cmp r0, r1 - bne _0815CE04 - strh r2, [r4, #0x36] - movs r0, #1 - strh r0, [r4, #0x38] - b _0815CE04 - .align 2, 0 -_0815CDD0: .4byte gUnknown_20380D6 -_0815CDD4: - cmp r2, #1 - bne _0815CE04 - ldr r1, _0815CE0C - adds r0, r1, #0 - ldrh r2, [r4, #0x32] - adds r0, r0, r2 - strh r0, [r4, #0x32] - ldr r3, _0815CE10 - adds r0, r3, #0 - ldrh r1, [r4, #0x34] - adds r0, r0, r1 - strh r0, [r4, #0x34] - ldrh r0, [r4, #0x36] - adds r0, #1 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x2e - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _0815CE04 - adds r0, r4, #0 - bl DestroyAnimSprite -_0815CE04: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815CE0C: .4byte 0xFFFFFC00 -_0815CE10: .4byte 0xFFFFFF00 - thumb_func_end AnimReversalOrbStep - - thumb_func_start AnimTask_RolePlaySilhouette -AnimTask_RolePlaySilhouette: @ 0x0815CE14 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x18] - movs r0, #0 - bl GetAnimBattlerSpriteId - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0815CE54 - movs r0, #1 - str r0, [sp, #0x1c] - ldr r0, _0815CE50 - ldr r0, [r0] - ldr r0, [r0, #0x18] - ldr r1, [r0, #0x10] - mov sb, r1 - ldr r2, [r0, #0xc] - mov r8, r2 - ldrh r6, [r0, #2] - movs r3, #0x14 - b _0815CF94 - .align 2, 0 -_0815CE50: .4byte gUnknown_2039BD4 -_0815CE54: - ldr r0, _0815CEC4 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0815CF00 - movs r0, #0 - str r0, [sp, #0x1c] - ldr r6, _0815CEC8 - ldr r4, _0815CECC - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r0, [r0] - movs r5, #0x64 - muls r0, r5, r0 - ldr r7, _0815CED0 - adds r0, r0, r7 - movs r1, #0 - bl GetMonData - mov sb, r0 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r0, [r0] - muls r0, r5, r0 - adds r0, r0, r7 - movs r1, #1 - bl GetMonData - mov r8, r0 - ldr r0, _0815CED4 - ldr r0, [r0] - ldrb r2, [r4] - ldr r1, [r0] - lsls r0, r2, #2 - adds r1, r0, r1 - ldrh r0, [r1, #2] - cmp r0, #0 - bne _0815CEF8 - adds r0, r2, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0815CED8 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r0, [r0] - muls r0, r5, r0 - adds r0, r0, r7 - b _0815CEE6 - .align 2, 0 -_0815CEC4: .4byte gUnknown_20380D6 -_0815CEC8: .4byte gUnknown_2023D12 -_0815CECC: .4byte gUnknown_20380D7 -_0815CED0: .4byte gUnknown_2024190 -_0815CED4: .4byte gUnknown_2024174 -_0815CED8: - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r0, [r0] - muls r0, r5, r0 - ldr r1, _0815CEF4 - adds r0, r0, r1 -_0815CEE6: - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - b _0815CEFA - .align 2, 0 -_0815CEF4: .4byte gUnknown_20243E8 -_0815CEF8: - ldrh r6, [r1, #2] -_0815CEFA: - movs r1, #0x14 - mov sl, r1 - b _0815CF96 -_0815CF00: - movs r2, #1 - str r2, [sp, #0x1c] - ldr r6, _0815CF64 - ldr r4, _0815CF68 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r0, [r0] - movs r5, #0x64 - muls r0, r5, r0 - ldr r7, _0815CF6C - adds r0, r0, r7 - movs r1, #0 - bl GetMonData - mov sb, r0 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r0, [r0] - muls r0, r5, r0 - adds r0, r0, r7 - movs r1, #1 - bl GetMonData - mov r8, r0 - ldr r0, _0815CF70 - ldr r0, [r0] - ldrb r2, [r4] - ldr r1, [r0] - lsls r0, r2, #2 - adds r1, r0, r1 - ldrh r0, [r1, #2] - cmp r0, #0 - bne _0815CF90 - adds r0, r2, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0815CF78 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r0, [r0] - muls r0, r5, r0 - ldr r1, _0815CF74 - adds r0, r0, r1 - b _0815CF84 - .align 2, 0 -_0815CF64: .4byte gUnknown_2023D12 -_0815CF68: .4byte gUnknown_20380D7 -_0815CF6C: .4byte gUnknown_20243E8 -_0815CF70: .4byte gUnknown_2024174 -_0815CF74: .4byte gUnknown_2024190 -_0815CF78: - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r0, [r0] - muls r0, r5, r0 - adds r0, r0, r7 -_0815CF84: - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - b _0815CF92 -_0815CF90: - ldrh r6, [r1, #2] -_0815CF92: - ldr r3, _0815D080 -_0815CF94: - mov sl, r3 -_0815CF96: - ldr r0, _0815D084 - ldrb r0, [r0] - bl GetBattlerSpriteBGPriority - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r5, _0815D084 - ldrb r0, [r5] - movs r1, #0 - bl GetBattlerSpriteCoord - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldrb r0, [r5] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - mov r2, sl - lsls r1, r2, #0x10 - asrs r1, r1, #0x10 - adds r4, r4, r1 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - lsrs r0, r0, #0x18 - str r0, [sp] - movs r0, #5 - str r0, [sp, #4] - mov r3, sb - str r3, [sp, #8] - mov r0, r8 - str r0, [sp, #0xc] - ldr r0, _0815D088 - ldrb r0, [r0] - str r0, [sp, #0x10] - movs r0, #1 - str r0, [sp, #0x14] - adds r0, r6, #0 - ldr r1, [sp, #0x1c] - movs r2, #0 - adds r3, r4, #0 - bl sub_080A7C5C - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - ldr r0, _0815D08C - lsls r5, r6, #4 - adds r5, r5, r6 - lsls r5, r5, #2 - adds r5, r5, r0 - movs r0, #3 - ands r7, r0 - lsls r7, r7, #2 - mov r8, r7 - ldrb r0, [r5, #5] - movs r4, #0xd - rsbs r4, r4, #0 - adds r1, r4, #0 - ands r1, r0 - mov r2, r8 - orrs r1, r2 - strb r1, [r5, #5] - ldrb r2, [r5, #1] - adds r0, r4, #0 - ands r0, r2 - movs r2, #4 - orrs r0, r2 - strb r0, [r5, #1] - ldr r0, _0815D090 - lsrs r1, r1, #4 - lsls r1, r1, #4 - movs r3, #0x80 - lsls r3, r3, #1 - adds r2, r3, #0 - orrs r1, r2 - movs r2, #0x20 - bl FillPalette - ldrb r0, [r5, #5] - ands r4, r0 - mov r0, r8 - orrs r4, r0 - strb r4, [r5, #5] - movs r1, #0xfd - lsls r1, r1, #6 - movs r0, #0x50 - bl SetGpuReg - ldr r0, _0815D094 - ldr r1, [sp, #0x18] - lsls r4, r1, #2 - adds r4, r4, r1 - lsls r4, r4, #3 - adds r4, r4, r0 - ldrh r0, [r4, #0xa] - movs r1, #0x10 - subs r1, r1, r0 - lsls r1, r1, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - strh r6, [r4, #8] - ldr r0, _0815D098 - str r0, [r4] - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0815D080: .4byte 0x0000FFEC -_0815D084: .4byte gUnknown_20380D6 -_0815D088: .4byte gUnknown_20380D7 -_0815D08C: .4byte gUnknown_20205AC -_0815D090: .4byte 0x00007FFF -_0815D094: .4byte gUnknown_3005B60 -_0815D098: .4byte AnimTask_RolePlaySilhouetteStep1 - thumb_func_end AnimTask_RolePlaySilhouette - - thumb_func_start AnimTask_RolePlaySilhouetteStep1 -AnimTask_RolePlaySilhouetteStep1: @ 0x0815D09C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0815D0F0 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 - ldrh r0, [r4, #0x1c] - adds r1, r0, #1 - strh r1, [r4, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _0815D0EA - movs r0, #0 - strh r0, [r4, #0x1c] - ldrh r1, [r4, #0xa] - adds r1, #1 - strh r1, [r4, #0xa] - movs r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0xa - bne _0815D0EA - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x1c] - strh r0, [r4, #0x1e] - ldr r0, _0815D0F4 - str r0, [r4] -_0815D0EA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815D0F0: .4byte gUnknown_3005B60 -_0815D0F4: .4byte AnimTask_RolePlaySilhouetteStep2 - thumb_func_end AnimTask_RolePlaySilhouetteStep1 - - thumb_func_start AnimTask_RolePlaySilhouetteStep2 -AnimTask_RolePlaySilhouetteStep2: @ 0x0815D0F8 - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0815D170 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r5, r1, r2 - ldrb r2, [r5, #8] - ldrh r0, [r5, #0x1c] - subs r0, #0x10 - movs r4, #0 - strh r0, [r5, #0x1c] - ldrh r0, [r5, #0x1e] - adds r0, #0x80 - strh r0, [r5, #0x1e] - ldr r1, _0815D174 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r6, r0, r1 - ldrb r2, [r6, #1] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #2 - orrs r1, r0 - subs r0, #6 - ands r0, r2 - orrs r0, r1 - strb r0, [r6, #1] - movs r0, #0x1c - ldrsh r2, [r5, r0] - movs r0, #0x1e - ldrsh r3, [r5, r0] - str r4, [sp] - adds r0, r6, #0 - movs r1, #1 - bl TrySetSpriteRotScale - ldrh r0, [r5, #0x20] - adds r0, #1 - strh r0, [r5, #0x20] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #9 - bne _0815D166 - adds r0, r6, #0 - bl sub_080A6D64 - adds r0, r6, #0 - bl DestroySpriteAndFreeResources_ - ldr r0, _0815D178 - str r0, [r5] -_0815D166: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0815D170: .4byte gUnknown_3005B60 -_0815D174: .4byte gUnknown_20205AC -_0815D178: .4byte DestroyAnimVisualTaskAndDisableBlend - thumb_func_end AnimTask_RolePlaySilhouetteStep2 - - thumb_func_start AnimTask_AcidArmor -AnimTask_AcidArmor: @ 0x0815D17C - push {r4, r5, r6, r7, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _0815D19C - adds r4, r1, r0 - ldr r0, _0815D1A0 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _0815D1A8 - ldr r0, _0815D1A4 - b _0815D1AA - .align 2, 0 -_0815D19C: .4byte gUnknown_3005B60 -_0815D1A0: .4byte gUnknown_20380BE -_0815D1A4: .4byte gUnknown_20380D6 -_0815D1A8: - ldr r0, _0815D228 -_0815D1AA: - ldrb r5, [r0] - movs r6, #0 - strh r6, [r4, #8] - strh r6, [r4, #0xa] - strh r6, [r4, #0xc] - movs r0, #0x10 - strh r0, [r4, #0xe] - strh r6, [r4, #0x10] - strh r5, [r4, #0x12] - movs r0, #0x20 - strh r0, [r4, #0x14] - strh r6, [r4, #0x16] - movs r0, #0x18 - strh r0, [r4, #0x18] - adds r0, r5, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0815D1DC - movs r1, #0x18 - ldrsh r0, [r4, r1] - rsbs r0, r0, #0 - strh r0, [r4, #0x18] -_0815D1DC: - adds r0, r5, #0 - bl GetBattlerYCoordWithElevation - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, #0x22 - strh r0, [r4, #0x22] - cmp r0, #0 - bge _0815D1F0 - strh r6, [r4, #0x22] -_0815D1F0: - ldrh r0, [r4, #0x22] - adds r0, #0x42 - strh r0, [r4, #0x24] - ldr r0, _0815D22C - ldrb r0, [r0] - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x26] - adds r0, r5, #0 - bl GetBattlerSpriteBGPriorityRank - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0815D240 - ldr r0, _0815D230 - str r0, [sp] - ldr r1, _0815D234 - movs r0, #0x50 - bl SetGpuReg - ldr r0, _0815D238 - ldrh r5, [r0] - ldr r0, _0815D23C - b _0815D252 - .align 2, 0 -_0815D228: .4byte gUnknown_20380D7 -_0815D22C: .4byte gUnknown_20380BE -_0815D230: .4byte 0x04000014 -_0815D234: .4byte 0x00003F42 -_0815D238: .4byte gUnknown_2022ACC -_0815D23C: .4byte gUnknown_2022ACE -_0815D240: - ldr r0, _0815D2B8 - str r0, [sp] - ldr r1, _0815D2BC - movs r0, #0x50 - bl SetGpuReg - ldr r0, _0815D2C0 - ldrh r5, [r0] - ldr r0, _0815D2C4 -_0815D252: - ldrh r3, [r0] - movs r7, #0 - movs r2, #0 - ldr r6, _0815D2C8 - movs r0, #0xf0 - lsls r0, r0, #3 - adds r0, r0, r6 - mov ip, r0 -_0815D262: - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - lsls r1, r2, #1 - adds r0, r1, r6 - strh r5, [r0] - add r1, ip - strh r5, [r1] - adds r0, r2, #1 - lsls r0, r0, #1 - adds r1, r0, r6 - strh r3, [r1] - add r0, ip - strh r3, [r0] - lsls r0, r7, #0x10 - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r0, r1 - adds r2, #2 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - lsrs r7, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x9f - ble _0815D262 - ldr r0, _0815D2CC - str r0, [sp, #4] - mov r1, sp - movs r2, #0 - movs r0, #1 - strb r0, [r1, #8] - mov r0, sp - strb r2, [r0, #9] - ldr r0, [sp] - ldr r1, [sp, #4] - ldr r2, [sp, #8] - bl ScanlineEffect_SetParams - ldr r0, _0815D2D0 - str r0, [r4] - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0815D2B8: .4byte 0x04000018 -_0815D2BC: .4byte 0x00003F44 -_0815D2C0: .4byte gUnknown_2022AD0 -_0815D2C4: .4byte gUnknown_2022AD2 -_0815D2C8: .4byte gUnknown_20388C8 -_0815D2CC: .4byte 0xA6600001 -_0815D2D0: .4byte AnimTask_AcidArmorStep - thumb_func_end AnimTask_AcidArmor - - thumb_func_start AnimTask_AcidArmorStep -AnimTask_AcidArmorStep: @ 0x0815D2D4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _0815D308 - adds r6, r0, r1 - ldrb r0, [r6, #0x12] - bl GetBattlerSpriteBGPriorityRank - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0815D314 - ldr r0, _0815D30C - ldrh r0, [r0] - str r0, [sp, #4] - ldr r0, _0815D310 - b _0815D31C - .align 2, 0 -_0815D308: .4byte gUnknown_3005B60 -_0815D30C: .4byte gUnknown_2022ACC -_0815D310: .4byte gUnknown_2022ACE -_0815D314: - ldr r0, _0815D334 - ldrh r0, [r0] - str r0, [sp, #4] - ldr r0, _0815D338 -_0815D31C: - ldrh r0, [r0] - str r0, [sp, #8] - movs r1, #8 - ldrsh r0, [r6, r1] - cmp r0, #1 - bne _0815D32A - b _0815D508 -_0815D32A: - cmp r0, #1 - bgt _0815D33C - cmp r0, #0 - beq _0815D34A - b _0815D578 - .align 2, 0 -_0815D334: .4byte gUnknown_2022AD0 -_0815D338: .4byte gUnknown_2022AD2 -_0815D33C: - cmp r0, #2 - bne _0815D342 - b _0815D528 -_0815D342: - cmp r0, #3 - bne _0815D348 - b _0815D572 -_0815D348: - b _0815D578 -_0815D34A: - movs r2, #0x24 - ldrsh r0, [r6, r2] - lsls r0, r0, #0x11 - lsrs r5, r0, #0x10 - movs r3, #0 - str r3, [sp] - mov sb, r3 - movs r4, #0 - ldrh r0, [r6, #0xa] - adds r0, #2 - movs r1, #0xff - ands r0, r1 - strh r0, [r6, #0xa] - ldrh r7, [r6, #0xa] - mov r8, r7 - movs r0, #0x14 - ldrsh r1, [r6, r0] - movs r0, #0xfc - lsls r0, r0, #3 - bl __divsi3 - strh r0, [r6, #0x1a] - movs r1, #0x16 - ldrsh r0, [r6, r1] - lsls r0, r0, #1 - movs r2, #0x1a - ldrsh r1, [r6, r2] - bl __divsi3 - rsbs r0, r0, #0 - strh r0, [r6, #0x1c] - ldrh r0, [r6, #0x16] - strh r0, [r6, #0x1e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x15 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - strh r7, [r6, #0x20] - ldrh r2, [r6, #0x24] - lsls r3, r2, #0x10 - mov ip, r3 - asrs r1, r3, #0x10 - movs r3, #0x22 - ldrsh r0, [r6, r3] - cmp r1, r0 - ble _0815D46A - ldr r0, _0815D4C0 - mov sl, r0 - ldr r1, [sp, #4] - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - str r0, [sp, #0x10] - ldr r2, [sp, #8] - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - str r0, [sp, #0xc] -_0815D3BA: - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - adds r2, r5, #1 - lsls r2, r2, #1 - mov r3, sl - ldrb r1, [r3, #0x14] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #7 - adds r2, r2, r0 - ldr r0, _0815D4C4 - adds r2, r2, r0 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - mov r1, sb - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - subs r0, r4, r0 - ldr r3, [sp, #0xc] - adds r0, r3, r0 - strh r0, [r2] - lsls r3, r5, #1 - mov r0, sl - ldrb r1, [r0, #0x14] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #7 - adds r3, r3, r0 - ldr r1, _0815D4C4 - adds r3, r3, r1 - lsls r1, r7, #0x10 - asrs r1, r1, #0x10 - ldr r2, [sp, #0x10] - adds r1, r2, r1 - mov r7, r8 - lsls r2, r7, #0x10 - asrs r2, r2, #0x10 - lsls r0, r2, #1 - ldr r7, _0815D4C8 - adds r0, r0, r7 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x15 - adds r1, r1, r0 - strh r1, [r3] - adds r2, #0xa - mov r8, r2 - movs r0, #0xff - mov r1, r8 - ands r1, r0 - mov r8, r1 - ldrh r0, [r6, #0x1c] - ldrh r2, [r6, #0x1e] - adds r0, r0, r2 - strh r0, [r6, #0x1e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x15 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - strh r7, [r6, #0x20] - adds r4, #1 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - subs r5, #2 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - ldr r3, [sp] - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - ldrh r1, [r6, #0x14] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - str r2, [sp] - asrs r0, r0, #0x15 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - ldr r0, _0815D4CC - add r0, ip - lsrs r2, r0, #0x10 - lsls r3, r2, #0x10 - mov ip, r3 - asrs r1, r3, #0x10 - movs r3, #0x22 - ldrsh r0, [r6, r3] - cmp r1, r0 - bgt _0815D3BA -_0815D46A: - lsls r1, r2, #0x11 - cmp r1, #0 - blt _0815D496 - ldr r4, _0815D4C4 - ldr r7, [sp, #4] - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - adds r3, r0, #0 - adds r3, #0xf0 - movs r0, #0xf0 - lsls r0, r0, #3 - adds r5, r4, r0 -_0815D482: - asrs r2, r1, #0x10 - lsls r1, r2, #1 - adds r0, r1, r4 - strh r3, [r0] - adds r1, r1, r5 - strh r3, [r1] - subs r2, #2 - lsls r1, r2, #0x10 - cmp r1, #0 - bge _0815D482 -_0815D496: - ldrh r0, [r6, #0x14] - adds r0, #1 - strh r0, [r6, #0x14] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3f - ble _0815D4FE - movs r0, #0x40 - strh r0, [r6, #0x14] - ldrh r0, [r6, #0xc] - adds r0, #1 - strh r0, [r6, #0xc] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0815D4D0 - ldrh r0, [r6, #0xe] - subs r0, #1 - strh r0, [r6, #0xe] - b _0815D4D6 - .align 2, 0 -_0815D4C0: .4byte gUnknown_20397C8 -_0815D4C4: .4byte gUnknown_20388C8 -_0815D4C8: .4byte gUnknown_82FA8CC -_0815D4CC: .4byte 0xFFFF0000 -_0815D4D0: - ldrh r0, [r6, #0x10] - adds r0, #1 - strh r0, [r6, #0x10] -_0815D4D6: - ldrh r1, [r6, #0x10] - lsls r1, r1, #8 - ldrh r0, [r6, #0xe] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r2, #0xe - ldrsh r1, [r6, r2] - cmp r1, #0 - bne _0815D578 - movs r3, #0x10 - ldrsh r0, [r6, r3] - cmp r0, #0x10 - bne _0815D578 - strh r1, [r6, #0xc] - strh r1, [r6, #0xe] - b _0815D56A -_0815D4FE: - ldrh r0, [r6, #0x18] - ldrh r7, [r6, #0x16] - adds r0, r0, r7 - strh r0, [r6, #0x16] - b _0815D578 -_0815D508: - ldrh r0, [r6, #0xc] - adds r0, #1 - strh r0, [r6, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xc - ble _0815D578 - ldr r1, _0815D524 - movs r0, #3 - strb r0, [r1, #0x15] - movs r0, #0 - strh r0, [r6, #0xc] - b _0815D56A - .align 2, 0 -_0815D524: .4byte gUnknown_20397C8 -_0815D528: - ldrh r0, [r6, #0xc] - adds r0, #1 - strh r0, [r6, #0xc] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0815D53E - ldrh r0, [r6, #0xe] - adds r0, #1 - strh r0, [r6, #0xe] - b _0815D544 -_0815D53E: - ldrh r0, [r6, #0x10] - subs r0, #1 - strh r0, [r6, #0x10] -_0815D544: - ldrh r1, [r6, #0x10] - lsls r1, r1, #8 - ldrh r0, [r6, #0xe] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r1, #0xe - ldrsh r0, [r6, r1] - cmp r0, #0x10 - bne _0815D578 - movs r2, #0x10 - ldrsh r0, [r6, r2] - cmp r0, #0 - bne _0815D578 - strh r0, [r6, #0xc] - strh r0, [r6, #0xe] -_0815D56A: - ldrh r0, [r6, #8] - adds r0, #1 - strh r0, [r6, #8] - b _0815D578 -_0815D572: - adds r0, r4, #0 - bl DestroyAnimVisualTask -_0815D578: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end AnimTask_AcidArmorStep - - thumb_func_start AnimTask_DeepInhale -AnimTask_DeepInhale: @ 0x0815D588 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _0815D5C0 - adds r4, r4, r0 - movs r0, #0 - strh r0, [r4, #8] - ldr r0, _0815D5C4 - ldrb r0, [r0] - bl GetAnimBattlerSpriteId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - strh r1, [r4, #0x26] - ldr r2, _0815D5C8 - adds r0, r4, #0 - bl PrepareAffineAnimInTaskData - ldr r0, _0815D5CC - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815D5C0: .4byte gUnknown_3005B60 -_0815D5C4: .4byte gUnknown_20380BE -_0815D5C8: .4byte gUnknown_85AD3F8 -_0815D5CC: .4byte AnimTask_DeepInhaleStep - thumb_func_end AnimTask_DeepInhale - - thumb_func_start AnimTask_DeepInhaleStep -AnimTask_DeepInhaleStep: @ 0x0815D5D0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r2, _0815D628 - adds r3, r0, r2 - ldrh r0, [r3, #8] - adds r1, r0, #1 - movs r5, #0 - strh r1, [r3, #8] - subs r0, #0x14 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r6, r2, #0 - cmp r0, #0x16 - bhi _0815D634 - ldrh r0, [r3, #0xa] - adds r0, #1 - strh r0, [r3, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _0815D644 - strh r5, [r3, #0xa] - ldrh r0, [r3, #0xc] - adds r0, #1 - strh r0, [r3, #0xc] - movs r5, #1 - ands r0, r5 - cmp r0, #0 - bne _0815D634 - ldr r2, _0815D62C - movs r0, #0x26 - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, _0815D630 - strh r1, [r0, #0x24] - b _0815D644 - .align 2, 0 -_0815D628: .4byte gUnknown_3005B60 -_0815D62C: .4byte gUnknown_20205AC -_0815D630: .4byte 0x0000FFFF -_0815D634: - ldr r2, _0815D664 - movs r0, #0x26 - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r5, [r0, #0x24] -_0815D644: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r6 - bl RunAffineAnimFromTaskData - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0815D65C - adds r0, r4, #0 - bl DestroyAnimVisualTask -_0815D65C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0815D664: .4byte gUnknown_20205AC - thumb_func_end AnimTask_DeepInhaleStep - - thumb_func_start InitYawnCloudPosition -InitYawnCloudPosition: @ 0x0815D668 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - mov r8, r0 - adds r5, r2, #0 - adds r0, r3, #0 - ldr r4, [sp, #0x14] - ldr r6, [sp, #0x18] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - mov r2, r8 - strh r1, [r2, #0x20] - strh r5, [r2, #0x22] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - lsls r2, r1, #4 - mov r3, r8 - strh r2, [r3, #0x36] - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - lsls r2, r5, #4 - strh r2, [r3, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #4 - adds r1, r6, #0 - bl __divsi3 - mov r1, r8 - strh r0, [r1, #0x3a] - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - subs r4, r4, r5 - lsls r4, r4, #4 - adds r0, r4, #0 - adds r1, r6, #0 - bl __divsi3 - mov r2, r8 - strh r0, [r2, #0x3c] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end InitYawnCloudPosition - - thumb_func_start UpdateYawnCloudPosition -UpdateYawnCloudPosition: @ 0x0815D6D0 - ldrh r1, [r0, #0x3a] - ldrh r2, [r0, #0x36] - adds r1, r1, r2 - strh r1, [r0, #0x36] - ldrh r2, [r0, #0x3c] - ldrh r3, [r0, #0x38] - adds r2, r2, r3 - strh r2, [r0, #0x38] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - strh r1, [r0, #0x20] - lsls r2, r2, #0x10 - asrs r2, r2, #0x14 - strh r2, [r0, #0x22] - bx lr - .align 2, 0 - thumb_func_end UpdateYawnCloudPosition - - thumb_func_start AnimYawnCloud -AnimYawnCloud: @ 0x0815D6F0 - push {r4, r5, r6, lr} - sub sp, #8 - adds r4, r0, #0 - ldrh r6, [r4, #0x20] - ldrh r5, [r4, #0x22] - bl SetSpriteCoordsToAnimAttackerCoords - ldr r0, _0815D738 - ldrb r1, [r0] - adds r0, r4, #0 - bl StartSpriteAffineAnim - movs r0, #0x20 - ldrsh r1, [r4, r0] - movs r0, #0x22 - ldrsh r2, [r4, r0] - lsls r6, r6, #0x10 - asrs r6, r6, #0x10 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - str r5, [sp] - movs r0, #0x40 - str r0, [sp, #4] - adds r0, r4, #0 - adds r3, r6, #0 - bl InitYawnCloudPosition - movs r0, #0 - strh r0, [r4, #0x2e] - ldr r0, _0815D73C - str r0, [r4, #0x1c] - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0815D738: .4byte gUnknown_20380BE -_0815D73C: .4byte AnimYawnCloudStep - thumb_func_end AnimYawnCloud - - thumb_func_start AnimYawnCloudStep -AnimYawnCloudStep: @ 0x0815D740 - push {r4, r5, lr} - adds r5, r0, #0 - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] - movs r0, #0x2e - ldrsh r4, [r5, r0] - lsls r4, r4, #3 - movs r0, #0xff - ands r4, r0 - adds r0, r5, #0 - bl UpdateYawnCloudPosition - adds r0, r4, #0 - movs r1, #8 - bl Sin - strh r0, [r5, #0x26] - movs r1, #0x2e - ldrsh r0, [r5, r1] - cmp r0, #0x3a - ble _0815D7A6 - ldrh r0, [r5, #0x30] - adds r0, #1 - strh r0, [r5, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _0815D7A6 - movs r0, #0 - strh r0, [r5, #0x30] - ldrh r1, [r5, #0x32] - adds r1, #1 - strh r1, [r5, #0x32] - movs r0, #1 - ands r1, r0 - adds r3, r5, #0 - adds r3, #0x3e - lsls r1, r1, #2 - ldrb r2, [r3] - subs r0, #6 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r1, #0x32 - ldrsh r0, [r5, r1] - cmp r0, #3 - ble _0815D7A6 - adds r0, r5, #0 - bl DestroySpriteAndMatrix -_0815D7A6: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end AnimYawnCloudStep - - thumb_func_start AnimSmokeBallEscapeCloud -AnimSmokeBallEscapeCloud: @ 0x0815D7AC - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r6, _0815D804 - ldrh r0, [r6, #6] - strh r0, [r5, #0x2e] - ldrb r1, [r6] - adds r0, r5, #0 - bl StartSpriteAffineAnim - ldr r0, _0815D808 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0815D7D2 - ldrh r0, [r6, #2] - rsbs r0, r0, #0 - strh r0, [r6, #2] -_0815D7D2: - ldr r4, _0815D80C - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r6, #2] - adds r0, r0, r1 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r6, [r6, #4] - adds r0, r0, r6 - strh r0, [r5, #0x22] - ldr r0, _0815D810 - str r0, [r5, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0815D804: .4byte gUnknown_20380BE -_0815D808: .4byte gUnknown_20380D7 -_0815D80C: .4byte gUnknown_20380D6 -_0815D810: .4byte sub_0810EB18 - thumb_func_end AnimSmokeBallEscapeCloud - - thumb_func_start sub_0815D814 -sub_0815D814: @ 0x0815D814 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r7, #0 - ldr r2, _0815D864 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r3, r0, r2 - ldrh r0, [r3, #8] - subs r0, #1 - strh r0, [r3, #8] - movs r1, #0x14 - ldrsh r0, [r3, r1] - movs r1, #0x80 - lsls r1, r1, #8 - ands r0, r1 - mov r8, r2 - cmp r0, #0 - beq _0815D896 - ldrh r0, [r3, #0xa] - subs r0, #1 - strh r0, [r3, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _0815D896 - movs r2, #0x1a - ldrsh r0, [r3, r2] - cmp r0, #0 - bne _0815D868 - ldrh r0, [r3, #0x10] - strh r0, [r3, #0x1a] - rsbs r0, r0, #0 - strh r0, [r3, #0x10] - b _0815D86A - .align 2, 0 -_0815D864: .4byte gUnknown_3005B60 -_0815D868: - strh r7, [r3, #0x1a] -_0815D86A: - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - mov r2, r8 - adds r1, r0, r2 - movs r2, #0x1c - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _0815D886 - ldrh r0, [r1, #0x12] - strh r0, [r1, #0x1c] - rsbs r0, r0, #0 - strh r0, [r1, #0x12] - b _0815D88A -_0815D886: - movs r0, #0 - strh r0, [r1, #0x1c] -_0815D88A: - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - add r0, r8 - ldrh r1, [r0, #0x22] - strh r1, [r0, #0xa] -_0815D896: - lsls r2, r5, #2 - adds r0, r2, r5 - lsls r0, r0, #3 - mov r1, r8 - adds r4, r0, r1 - ldrh r6, [r4, #0x16] - ldrh r7, [r4, #0x18] - movs r1, #0xc - ldrsh r0, [r4, r1] - movs r1, #0x80 - lsls r1, r1, #8 - ands r0, r1 - mov ip, r2 - cmp r0, #0 - beq _0815D8D4 - ldr r3, _0815D8D0 - movs r2, #0x26 - ldrsh r0, [r4, r2] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - lsrs r2, r6, #8 - ldrh r0, [r4, #0x1a] - subs r0, r0, r2 - strh r0, [r1, #0x24] - adds r2, r3, #0 - b _0815D8EA - .align 2, 0 -_0815D8D0: .4byte gUnknown_20205AC -_0815D8D4: - ldr r2, _0815D918 - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - lsrs r1, r6, #8 - ldrh r4, [r4, #0x1a] - adds r1, r1, r4 - strh r1, [r0, #0x24] -_0815D8EA: - mov r1, ip - adds r0, r1, r5 - lsls r0, r0, #3 - mov r1, r8 - adds r4, r0, r1 - movs r1, #0xe - ldrsh r0, [r4, r1] - movs r1, #0x80 - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - beq _0815D91C - movs r1, #0x26 - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - lsrs r2, r7, #8 - ldrh r0, [r4, #0x1c] - subs r0, r0, r2 - b _0815D92E - .align 2, 0 -_0815D918: .4byte gUnknown_20205AC -_0815D91C: - movs r1, #0x26 - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - lsrs r0, r7, #8 - ldrh r4, [r4, #0x1c] - adds r0, r0, r4 -_0815D92E: - strh r0, [r1, #0x26] - mov r2, ip - adds r0, r2, r5 - lsls r0, r0, #3 - add r0, r8 - movs r1, #8 - ldrsh r0, [r0, r1] - cmp r0, #0 - bgt _0815D94E - adds r0, r5, #0 - bl DestroyTask - ldr r1, _0815D958 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] -_0815D94E: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0815D958: .4byte gUnknown_203809E - thumb_func_end sub_0815D814 - - thumb_func_start sub_0815D95C -sub_0815D95C: @ 0x0815D95C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r7, #0 - ldr r2, _0815D9B0 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r3, r0, r2 - ldrh r0, [r3, #8] - subs r0, #1 - strh r0, [r3, #8] - movs r1, #0x14 - ldrsh r0, [r3, r1] - movs r1, #0x80 - lsls r1, r1, #8 - ands r0, r1 - mov r8, r2 - cmp r0, #0 - beq _0815D9E2 - ldrh r0, [r3, #0xa] - subs r0, #1 - strh r0, [r3, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _0815D9E2 - movs r2, #0x1a - ldrsh r0, [r3, r2] - cmp r0, #0 - bne _0815D9B4 - ldrh r0, [r3, #0x10] - strh r0, [r3, #0x1a] - rsbs r0, r0, #0 - strh r0, [r3, #0x10] - b _0815D9B6 - .align 2, 0 -_0815D9B0: .4byte gUnknown_3005B60 -_0815D9B4: - strh r7, [r3, #0x1a] -_0815D9B6: - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - mov r2, r8 - adds r1, r0, r2 - movs r2, #0x1c - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _0815D9D2 - ldrh r0, [r1, #0x12] - strh r0, [r1, #0x1c] - rsbs r0, r0, #0 - strh r0, [r1, #0x12] - b _0815D9D6 -_0815D9D2: - movs r0, #0 - strh r0, [r1, #0x1c] -_0815D9D6: - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - add r0, r8 - ldrh r1, [r0, #0x22] - strh r1, [r0, #0xa] -_0815D9E2: - lsls r3, r6, #2 - adds r0, r3, r6 - lsls r0, r0, #3 - mov r1, r8 - adds r4, r0, r1 - ldrh r2, [r4, #0xc] - ldr r1, _0815DA34 - adds r0, r1, #0 - ands r0, r2 - ldrh r2, [r4, #0x16] - adds r0, r0, r2 - lsls r5, r0, #0x10 - lsrs r0, r5, #0x10 - mov sb, r0 - ldrh r0, [r4, #0xe] - ands r1, r0 - ldrh r2, [r4, #0x18] - adds r1, r1, r2 - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - movs r1, #0xc - ldrsh r0, [r4, r1] - movs r1, #0x80 - lsls r1, r1, #8 - ands r0, r1 - mov ip, r3 - cmp r0, #0 - beq _0815DA3C - ldr r3, _0815DA38 - movs r2, #0x26 - ldrsh r0, [r4, r2] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - lsrs r2, r5, #0x18 - ldrh r0, [r4, #0x1a] - subs r0, r0, r2 - strh r0, [r1, #0x24] - adds r2, r3, #0 - b _0815DA52 - .align 2, 0 -_0815DA34: .4byte 0x00007FFF -_0815DA38: .4byte gUnknown_20205AC -_0815DA3C: - ldr r2, _0815DA80 - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - lsrs r1, r5, #0x18 - ldrh r4, [r4, #0x1a] - adds r1, r1, r4 - strh r1, [r0, #0x24] -_0815DA52: - mov r1, ip - adds r0, r1, r6 - lsls r0, r0, #3 - mov r1, r8 - adds r4, r0, r1 - movs r1, #0xe - ldrsh r0, [r4, r1] - movs r1, #0x80 - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - beq _0815DA84 - movs r1, #0x26 - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - lsrs r2, r7, #8 - ldrh r0, [r4, #0x1c] - subs r0, r0, r2 - b _0815DA96 - .align 2, 0 -_0815DA80: .4byte gUnknown_20205AC -_0815DA84: - movs r1, #0x26 - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - lsrs r0, r7, #8 - ldrh r4, [r4, #0x1c] - adds r0, r0, r4 -_0815DA96: - strh r0, [r1, #0x26] - mov r2, ip - adds r0, r2, r6 - lsls r0, r0, #3 - mov r1, r8 - adds r2, r0, r1 - mov r0, sb - strh r0, [r2, #0x16] - strh r7, [r2, #0x18] - movs r1, #8 - ldrsh r0, [r2, r1] - cmp r0, #0 - bgt _0815DABC - movs r0, #0x1e - strh r0, [r2, #8] - movs r0, #0 - strh r0, [r2, #0x22] - ldr r0, _0815DAC8 - str r0, [r2] -_0815DABC: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0815DAC8: .4byte sub_0815D814 - thumb_func_end sub_0815D95C - - thumb_func_start sub_0815DACC -sub_0815DACC: @ 0x0815DACC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _0815DB2C - mov r8, r0 - lsls r7, r6, #2 - adds r0, r7, r6 - lsls r0, r0, #3 - mov r1, r8 - adds r4, r0, r1 - ldr r1, _0815DB30 - ldr r2, _0815DB34 - ldrb r0, [r2] - adds r0, r0, r1 - ldrb r0, [r0] - strh r0, [r4, #0x26] - ldr r5, _0815DB38 - ldrh r0, [r5] - strh r0, [r4, #0x24] - ldrh r0, [r5] - strh r0, [r4, #8] - ldrh r0, [r5, #0xc] - strh r0, [r4, #0x22] - movs r3, #6 - ldrsh r0, [r5, r3] - cmp r0, #0 - beq _0815DB10 - ldrh r0, [r4, #0x14] - ldr r3, _0815DB3C - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r4, #0x14] -_0815DB10: - ldrb r0, [r2] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0815DB40 - ldrh r0, [r5, #2] - strh r0, [r4, #0xc] - ldrh r0, [r5, #4] - strh r0, [r4, #0xe] - mov r3, r8 - adds r4, r7, #0 - b _0815DBB0 - .align 2, 0 -_0815DB2C: .4byte gUnknown_3005B60 -_0815DB30: .4byte gUnknown_2023E88 -_0815DB34: .4byte gUnknown_20380D6 -_0815DB38: .4byte gUnknown_20380BE -_0815DB3C: .4byte 0xFFFF8000 -_0815DB40: - movs r7, #2 - ldrsh r0, [r5, r7] - movs r1, #0x80 - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - beq _0815DB5C - ldrh r1, [r5, #2] - ldr r0, _0815DB58 - ands r0, r1 - b _0815DB64 - .align 2, 0 -_0815DB58: .4byte 0x00007FFF -_0815DB5C: - ldrh r0, [r5, #2] - ldr r2, _0815DB8C - adds r1, r2, #0 - orrs r0, r1 -_0815DB64: - strh r0, [r4, #0xc] - ldr r0, _0815DB90 - movs r3, #4 - ldrsh r1, [r0, r3] - movs r2, #0x80 - lsls r2, r2, #8 - ands r1, r2 - adds r5, r0, #0 - cmp r1, #0 - beq _0815DB9C - ldr r3, _0815DB94 - lsls r4, r6, #2 - adds r1, r4, r6 - lsls r1, r1, #3 - adds r1, r1, r3 - ldrh r2, [r5, #4] - ldr r0, _0815DB98 - ands r0, r2 - b _0815DBAE - .align 2, 0 -_0815DB8C: .4byte 0xFFFF8000 -_0815DB90: .4byte gUnknown_20380BE -_0815DB94: .4byte gUnknown_3005B60 -_0815DB98: .4byte 0x00007FFF -_0815DB9C: - ldr r3, _0815DBD4 - lsls r4, r6, #2 - adds r1, r4, r6 - lsls r1, r1, #3 - adds r1, r1, r3 - ldrh r2, [r5, #4] - ldr r7, _0815DBD8 - adds r0, r7, #0 - orrs r0, r2 -_0815DBAE: - strh r0, [r1, #0xe] -_0815DBB0: - adds r0, r4, r6 - lsls r0, r0, #3 - adds r0, r0, r3 - movs r1, #0 - strh r1, [r0, #0x18] - strh r1, [r0, #0x16] - ldrh r1, [r5, #8] - strh r1, [r0, #0x10] - ldrh r1, [r5, #0xa] - strh r1, [r0, #0x12] - ldr r1, _0815DBDC - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0815DBD4: .4byte gUnknown_3005B60 -_0815DBD8: .4byte 0xFFFF8000 -_0815DBDC: .4byte sub_0815D95C - thumb_func_end sub_0815DACC - - thumb_func_start AnimTask_SquishAndSweatDroplets -AnimTask_SquishAndSweatDroplets: @ 0x0815DBE0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _0815DC18 - adds r5, r0, r1 - ldr r4, _0815DC1C - movs r1, #2 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0815DC00 - adds r0, r2, #0 - bl DestroyAnimVisualTask -_0815DC00: - movs r0, #0 - strh r0, [r5, #8] - strh r0, [r5, #0xa] - strh r0, [r5, #0xc] - ldrh r0, [r4, #2] - strh r0, [r5, #0xe] - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0815DC24 - ldr r0, _0815DC20 - b _0815DC26 - .align 2, 0 -_0815DC18: .4byte gUnknown_3005B60 -_0815DC1C: .4byte gUnknown_20380BE -_0815DC20: .4byte gUnknown_20380D6 -_0815DC24: - ldr r0, _0815DC74 -_0815DC26: - ldrb r4, [r0] - adds r0, r4, #0 - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x10] - adds r0, r4, #0 - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x12] - adds r0, r4, #0 - bl GetBattlerSpriteSubpriority - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x14] - ldr r0, _0815DC78 - ldrb r0, [r0] - bl GetAnimBattlerSpriteId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - strh r1, [r5, #0x26] - ldr r2, _0815DC7C - adds r0, r5, #0 - bl PrepareAffineAnimInTaskData - ldr r0, _0815DC80 - str r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0815DC74: .4byte gUnknown_20380D7 -_0815DC78: .4byte gUnknown_20380BE -_0815DC7C: .4byte gUnknown_85AD554 -_0815DC80: .4byte AnimTask_SquishAndSweatDropletsStep - thumb_func_end AnimTask_SquishAndSweatDroplets - - thumb_func_start AnimTask_SquishAndSweatDropletsStep -AnimTask_SquishAndSweatDropletsStep: @ 0x0815DC84 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _0815DCA4 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0815DCA8 - cmp r0, #1 - beq _0815DD08 - b _0815DD16 - .align 2, 0 -_0815DCA4: .4byte gUnknown_3005B60 -_0815DCA8: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #6 - bne _0815DCBE - adds r0, r5, #0 - movs r1, #1 - bl CreateSweatDroplets -_0815DCBE: - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0x12 - bne _0815DCCE - adds r0, r5, #0 - movs r1, #0 - bl CreateSweatDroplets -_0815DCCE: - adds r0, r4, #0 - bl RunAffineAnimFromTaskData - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0815DD16 - ldrh r0, [r4, #0xe] - subs r0, #1 - strh r0, [r4, #0xe] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0815DCF0 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _0815DD16 -_0815DCF0: - strh r1, [r4, #0xa] - ldrh r1, [r4, #0x26] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _0815DD04 - adds r0, r4, #0 - bl PrepareAffineAnimInTaskData - b _0815DD16 - .align 2, 0 -_0815DD04: .4byte gUnknown_85AD554 -_0815DD08: - movs r1, #0xc - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0815DD16 - adds r0, r5, #0 - bl DestroyAnimVisualTask -_0815DD16: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end AnimTask_SquishAndSweatDropletsStep - - thumb_func_start CreateSweatDroplets -CreateSweatDroplets: @ 0x0815DD1C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r2, _0815DD40 - adds r4, r0, r2 - cmp r1, #0 - bne _0815DD44 - movs r1, #0x12 - movs r3, #0xec - b _0815DD48 - .align 2, 0 -_0815DD40: .4byte gUnknown_3005B60 -_0815DD44: - movs r1, #0x1e - movs r3, #0x14 -_0815DD48: - mov r2, sp - ldrh r0, [r4, #0x10] - subs r0, r0, r1 - strh r0, [r2] - ldrh r0, [r4, #0x10] - subs r0, r0, r1 - subs r0, #4 - strh r0, [r2, #2] - ldrh r0, [r4, #0x10] - adds r0, r0, r1 - strh r0, [r2, #4] - ldrh r0, [r4, #0x10] - adds r0, r0, r1 - adds r0, #4 - strh r0, [r2, #6] - add r2, sp, #8 - lsls r1, r3, #0x18 - asrs r1, r1, #0x18 - ldrh r0, [r4, #0x12] - adds r0, r0, r1 - strh r0, [r2] - ldrh r0, [r4, #0x12] - adds r0, r0, r1 - adds r0, #6 - strh r0, [r2, #2] - movs r5, #0 - mov r8, r2 - ldr r7, _0815DDEC -_0815DD80: - lsls r0, r5, #1 - add r0, sp - movs r2, #0 - ldrsh r1, [r0, r2] - movs r0, #1 - ands r0, r5 - lsls r0, r0, #1 - add r0, r8 - movs r3, #0 - ldrsh r2, [r0, r3] - ldrb r3, [r4, #0x14] - subs r3, #5 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r0, _0815DDF0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x40 - beq _0815DDD4 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r7 - movs r0, #0 - strh r0, [r1, #0x2e] - movs r0, #2 - cmp r5, #1 - bhi _0815DDC2 - movs r2, #2 - rsbs r2, r2, #0 - adds r0, r2, #0 -_0815DDC2: - strh r0, [r1, #0x30] - ldr r0, _0815DDF4 - strh r0, [r1, #0x32] - strh r6, [r1, #0x34] - movs r0, #2 - strh r0, [r1, #0x36] - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] -_0815DDD4: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #3 - bls _0815DD80 - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0815DDEC: .4byte gUnknown_20205AC -_0815DDF0: .4byte gUnknown_85AD574 -_0815DDF4: .4byte 0x0000FFFF - thumb_func_end CreateSweatDroplets - - thumb_func_start sub_0815DDF8 -sub_0815DDF8: @ 0x0815DDF8 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x30] - ldrh r1, [r4, #0x20] - adds r0, r0, r1 - strh r0, [r4, #0x20] - ldrh r0, [r4, #0x32] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #6 - ble _0815DE3E - ldr r3, _0815DE44 - movs r0, #0x36 - ldrsh r1, [r4, r0] - lsls r1, r1, #1 - movs r0, #0x34 - ldrsh r2, [r4, r0] - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r1, r1, r0 - adds r3, #8 - adds r1, r1, r3 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - adds r0, r4, #0 - bl DestroySprite -_0815DE3E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815DE44: .4byte gUnknown_3005B60 - thumb_func_end sub_0815DDF8 - - thumb_func_start AnimTask_FacadeColorBlend -AnimTask_FacadeColorBlend: @ 0x0815DE48 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0815DE90 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - adds r4, r4, r1 - movs r0, #0 - strh r0, [r4, #8] - ldr r1, _0815DE94 - ldrh r0, [r1, #2] - strh r0, [r4, #0xa] - ldrb r0, [r1] - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0815DE98 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r0, [r1, #5] - lsrs r0, r0, #4 - lsls r0, r0, #4 - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r2, #0 - adds r0, r0, r1 - strh r0, [r4, #0xc] - ldr r0, _0815DE9C - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815DE90: .4byte gUnknown_3005B60 -_0815DE94: .4byte gUnknown_20380BE -_0815DE98: .4byte gUnknown_20205AC -_0815DE9C: .4byte AnimTask_FacadeColorBlendStep - thumb_func_end AnimTask_FacadeColorBlend - - thumb_func_start AnimTask_FacadeColorBlendStep -AnimTask_FacadeColorBlendStep: @ 0x0815DEA0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _0815DEE8 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0815DEF0 - ldrh r0, [r4, #0xc] - ldr r2, _0815DEEC - movs r3, #8 - ldrsh r1, [r4, r3] - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r3, [r1] - movs r1, #0x10 - movs r2, #8 - bl BlendPalette - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x17 - ble _0815DEE0 - movs r0, #0 - strh r0, [r4, #8] -_0815DEE0: - ldrh r0, [r4, #0xa] - subs r0, #1 - strh r0, [r4, #0xa] - b _0815DF02 - .align 2, 0 -_0815DEE8: .4byte gUnknown_3005B60 -_0815DEEC: .4byte gUnknown_85AD58C -_0815DEF0: - ldrh r0, [r4, #0xc] - movs r1, #0x10 - movs r2, #0 - movs r3, #0 - bl BlendPalette - adds r0, r5, #0 - bl DestroyAnimVisualTask -_0815DF02: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end AnimTask_FacadeColorBlendStep - - thumb_func_start sub_0815DF08 -sub_0815DF08: @ 0x0815DF08 - push {lr} - sub sp, #0x1c - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0xd0 - lsls r2, r2, #1 - ldr r1, _0815DF44 - ldrb r3, [r1] - ldr r1, _0815DF48 - ldrb r1, [r1] - str r1, [sp] - movs r1, #0xa - str r1, [sp, #4] - movs r1, #2 - str r1, [sp, #8] - movs r1, #0x1e - str r1, [sp, #0xc] - ldr r1, _0815DF4C - str r1, [sp, #0x10] - ldr r1, _0815DF50 - str r1, [sp, #0x14] - subs r1, #0x20 - str r1, [sp, #0x18] - movs r1, #0 - bl sub_081180A4 - add sp, #0x1c - pop {r0} - bx r0 - .align 2, 0 -_0815DF44: .4byte gUnknown_20380D6 -_0815DF48: .4byte gUnknown_20380BE -_0815DF4C: .4byte gUnknown_8C2DD0C -_0815DF50: .4byte gUnknown_8C2DE68 - thumb_func_end sub_0815DF08 - - thumb_func_start AnimRoarNoiseLine -AnimRoarNoiseLine: @ 0x0815DF54 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r6, _0815DFAC - ldrb r0, [r6] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0815DF70 - ldr r1, _0815DFB0 - ldrh r0, [r1] - rsbs r0, r0, #0 - strh r0, [r1] -_0815DF70: - ldrb r0, [r6] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - ldr r4, _0815DFB0 - lsrs r0, r0, #0x18 - ldrh r1, [r4] - adds r0, r0, r1 - strh r0, [r5, #0x20] - ldrb r0, [r6] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #2] - adds r0, r0, r1 - strh r0, [r5, #0x22] - movs r1, #4 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0815DFB8 - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r5, #0x2e] - ldr r0, _0815DFB4 - strh r0, [r5, #0x30] - b _0815DFE0 - .align 2, 0 -_0815DFAC: .4byte gUnknown_20380D6 -_0815DFB0: .4byte gUnknown_20380BE -_0815DFB4: .4byte 0x0000FD80 -_0815DFB8: - cmp r0, #1 - bne _0815DFD2 - adds r2, r5, #0 - adds r2, #0x3f - ldrb r0, [r2] - movs r1, #2 - orrs r0, r1 - strb r0, [r2] - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r5, #0x2e] - strh r0, [r5, #0x30] - b _0815DFE0 -_0815DFD2: - adds r0, r5, #0 - movs r1, #1 - bl StartSpriteAnim - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r5, #0x2e] -_0815DFE0: - ldr r0, _0815E00C - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0815E000 - ldrh r0, [r5, #0x2e] - rsbs r0, r0, #0 - strh r0, [r5, #0x2e] - adds r2, r5, #0 - adds r2, #0x3f - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] -_0815E000: - ldr r0, _0815E010 - str r0, [r5, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0815E00C: .4byte gUnknown_20380D6 -_0815E010: .4byte AnimRoarNoiseLineStep - thumb_func_end AnimRoarNoiseLine - - thumb_func_start AnimRoarNoiseLineStep -AnimRoarNoiseLineStep: @ 0x0815E014 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x2e] - ldrh r1, [r2, #0x3a] - adds r0, r0, r1 - strh r0, [r2, #0x3a] - ldrh r1, [r2, #0x30] - ldrh r3, [r2, #0x3c] - adds r1, r1, r3 - strh r1, [r2, #0x3c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - strh r0, [r2, #0x24] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - strh r1, [r2, #0x26] - ldrh r0, [r2, #0x38] - adds r0, #1 - strh r0, [r2, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xe - bne _0815E048 - adds r0, r2, #0 - bl DestroyAnimSprite -_0815E048: - pop {r0} - bx r0 - thumb_func_end AnimRoarNoiseLineStep - - thumb_func_start AnimTask_GlareEyeDots -AnimTask_GlareEyeDots: @ 0x0815E04C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _0815E078 - adds r6, r1, r0 - bl IsContest - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _0815E07C - movs r0, #8 - strh r0, [r6, #0x12] - movs r0, #3 - strh r0, [r6, #0x14] - movs r0, #1 - strh r0, [r6, #0x16] - b _0815E086 - .align 2, 0 -_0815E078: .4byte gUnknown_3005B60 -_0815E07C: - movs r0, #0xc - strh r0, [r6, #0x12] - movs r0, #3 - strh r0, [r6, #0x14] - strh r1, [r6, #0x16] -_0815E086: - ldr r5, _0815E0BC - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0815E0C0 - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - adds r4, r0, #0 - ldrb r0, [r5] - movs r1, #0 - bl GetBattlerSpriteCoordAttr - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _0815E0B4 - adds r0, #3 -_0815E0B4: - asrs r0, r0, #2 - adds r0, r4, r0 - b _0815E0E4 - .align 2, 0 -_0815E0BC: .4byte gUnknown_20380D6 -_0815E0C0: - ldrb r0, [r5] - movs r1, #2 - bl GetBattlerSpriteCoord - adds r4, r0, #0 - ldrb r0, [r5] - movs r1, #0 - bl GetBattlerSpriteCoordAttr - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _0815E0E0 - adds r0, #3 -_0815E0E0: - asrs r0, r0, #2 - subs r0, r4, r0 -_0815E0E4: - strh r0, [r6, #0x1e] - ldr r5, _0815E138 - ldrb r0, [r5] - movs r1, #3 - bl GetBattlerSpriteCoord - adds r4, r0, #0 - ldrb r0, [r5] - movs r1, #0 - bl GetBattlerSpriteCoordAttr - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _0815E108 - adds r0, #3 -_0815E108: - asrs r0, r0, #2 - subs r0, r4, r0 - strh r0, [r6, #0x20] - ldr r4, _0815E13C - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r6, #0x22] - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r6, #0x24] - ldr r0, _0815E140 - str r0, [r6] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0815E138: .4byte gUnknown_20380D6 -_0815E13C: .4byte gUnknown_20380D7 -_0815E140: .4byte AnimTask_GlareEyeDotsStep - thumb_func_end AnimTask_GlareEyeDots - - thumb_func_start AnimTask_GlareEyeDotsStep -AnimTask_GlareEyeDotsStep: @ 0x0815E144 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - ldr r1, _0815E16C - adds r5, r0, r1 - movs r0, #8 - ldrsh r1, [r5, r0] - cmp r1, #0 - beq _0815E170 - cmp r1, #1 - bne _0815E168 - b _0815E268 -_0815E168: - b _0815E276 - .align 2, 0 -_0815E16C: .4byte gUnknown_3005B60 -_0815E170: - ldrh r0, [r5, #0xa] - adds r0, #1 - strh r0, [r5, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - ble _0815E276 - strh r1, [r5, #0xa] - movs r1, #0x1e - ldrsh r0, [r5, r1] - movs r2, #0x20 - ldrsh r1, [r5, r2] - movs r3, #0x22 - ldrsh r2, [r5, r3] - movs r4, #0x24 - ldrsh r3, [r5, r4] - ldrb r4, [r5, #0x12] - str r4, [sp] - ldrb r4, [r5, #0xc] - str r4, [sp, #4] - add r4, sp, #0x10 - str r4, [sp, #8] - adds r4, #2 - str r4, [sp, #0xc] - bl GetGlareEyeDotCoords - movs r6, #0 - mov r8, r4 - ldr r4, _0815E1E4 -_0815E1AA: - add r0, sp, #0x10 - movs r2, #0 - ldrsh r1, [r0, r2] - mov r3, r8 - movs r0, #0 - ldrsh r2, [r3, r0] - ldr r0, _0815E1E8 - movs r3, #0x23 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0x40 - beq _0815E23E - movs r1, #0x16 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _0815E1FE - cmp r6, #0 - bne _0815E1EC - lsls r2, r3, #4 - adds r1, r2, r3 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrh r0, [r5, #0x14] - rsbs r0, r0, #0 - strh r0, [r1, #0x26] - strh r0, [r1, #0x24] - b _0815E226 - .align 2, 0 -_0815E1E4: .4byte gUnknown_20205AC -_0815E1E8: .4byte gUnknown_85AD5F4 -_0815E1EC: - lsls r2, r3, #4 - adds r1, r2, r3 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrh r0, [r5, #0x14] - strh r0, [r1, #0x26] - ldrh r0, [r5, #0x14] - strh r0, [r1, #0x24] - b _0815E226 -_0815E1FE: - cmp r6, #0 - bne _0815E214 - lsls r2, r3, #4 - adds r1, r2, r3 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrh r0, [r5, #0x14] - rsbs r0, r0, #0 - strh r0, [r1, #0x24] - ldrh r0, [r5, #0x14] - b _0815E224 -_0815E214: - lsls r2, r3, #4 - adds r1, r2, r3 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrh r0, [r5, #0x14] - strh r0, [r1, #0x24] - ldrh r0, [r5, #0x14] - rsbs r0, r0, #0 -_0815E224: - strh r0, [r1, #0x26] -_0815E226: - ldr r1, _0815E264 - adds r0, r2, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #0x2e] - strh r7, [r0, #0x30] - movs r1, #0xa - strh r1, [r0, #0x32] - ldrh r0, [r5, #0x1c] - adds r0, #1 - strh r0, [r5, #0x1c] -_0815E23E: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #1 - bls _0815E1AA - ldrh r2, [r5, #0xc] - movs r3, #0xc - ldrsh r1, [r5, r3] - movs r4, #0x12 - ldrsh r0, [r5, r4] - cmp r1, r0 - bne _0815E25C - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] -_0815E25C: - adds r0, r2, #1 - strh r0, [r5, #0xc] - b _0815E276 - .align 2, 0 -_0815E264: .4byte gUnknown_20205AC -_0815E268: - movs r1, #0x1c - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _0815E276 - adds r0, r7, #0 - bl DestroyAnimVisualTask -_0815E276: - add sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AnimTask_GlareEyeDotsStep - - thumb_func_start GetGlareEyeDotCoords -GetGlareEyeDotCoords: @ 0x0815E284 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - ldr r4, [sp, #0x28] - ldr r5, [sp, #0x2c] - ldr r6, [sp, #0x30] - mov sb, r6 - ldr r6, [sp, #0x34] - mov sl, r6 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov ip, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp] - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - adds r7, r2, #0 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - str r3, [sp, #4] - lsls r4, r4, #0x18 - lsrs r6, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - mov r8, r5 - cmp r5, #0 - bne _0815E2CC - mov r2, sb - strh r0, [r2] - mov r6, sl - strh r1, [r6] - b _0815E32A -_0815E2CC: - cmp r5, r6 - blo _0815E2DA - mov r0, sb - strh r2, [r0] - mov r1, sl - strh r3, [r1] - b _0815E32A -_0815E2DA: - subs r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - mov r2, ip - lsls r1, r2, #0x10 - asrs r1, r1, #0x10 - lsls r5, r1, #8 - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #8 - adds r1, r6, #0 - bl __divsi3 - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - adds r5, r5, r0 - ldr r2, [sp] - lsls r1, r2, #0x10 - asrs r1, r1, #0x10 - lsls r4, r1, #8 - ldr r2, [sp, #4] - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #8 - adds r1, r6, #0 - bl __divsi3 - mov r6, r8 - muls r6, r0, r6 - adds r0, r6, #0 - adds r4, r4, r0 - asrs r5, r5, #8 - mov r0, sb - strh r5, [r0] - asrs r4, r4, #8 - mov r1, sl - strh r4, [r1] -_0815E32A: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end GetGlareEyeDotCoords - - thumb_func_start AnimGlareEyeDot -AnimGlareEyeDot: @ 0x0815E33C - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x24 - ble _0815E372 - ldr r3, _0815E378 - movs r0, #0x32 - ldrsh r1, [r4, r0] - lsls r1, r1, #1 - movs r0, #0x30 - ldrsh r2, [r4, r0] - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r1, r1, r0 - adds r3, #8 - adds r1, r1, r3 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - adds r0, r4, #0 - bl DestroySprite -_0815E372: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815E378: .4byte gUnknown_3005B60 - thumb_func_end AnimGlareEyeDot - - thumb_func_start AnimAssistPawprint -AnimAssistPawprint: @ 0x0815E37C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0815E3A8 - ldrh r0, [r1] - strh r0, [r4, #0x20] - ldrh r0, [r1, #2] - strh r0, [r4, #0x22] - ldrh r0, [r1, #4] - strh r0, [r4, #0x32] - ldrh r0, [r1, #6] - strh r0, [r4, #0x36] - ldrh r0, [r1, #8] - strh r0, [r4, #0x2e] - ldr r1, _0815E3AC - adds r0, r4, #0 - bl StoreSpriteCallbackInData6 - ldr r0, _0815E3B0 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815E3A8: .4byte gUnknown_20380BE -_0815E3AC: .4byte DestroyAnimSprite -_0815E3B0: .4byte sub_080A6988 - thumb_func_end AnimAssistPawprint - - thumb_func_start AnimTask_BarrageBall -AnimTask_BarrageBall: @ 0x0815E3B4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - lsls r0, r0, #2 - add r0, sb - lsls r0, r0, #3 - ldr r1, _0815E4D4 - adds r7, r0, r1 - ldr r0, _0815E4D8 - mov sl, r0 - ldrb r0, [r0] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r7, #0x1e] - mov r1, sl - ldrb r0, [r1] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r7, #0x20] - ldr r0, _0815E4DC - mov r8, r0 - ldrb r0, [r0] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r7, #0x22] - mov r1, r8 - ldrb r0, [r1] - movs r1, #3 - bl GetBattlerSpriteCoord - adds r4, r0, #0 - mov r1, r8 - ldrb r0, [r1] - movs r1, #0 - bl GetBattlerSpriteCoordAttr - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _0815E426 - adds r0, #3 -_0815E426: - asrs r0, r0, #2 - adds r0, r4, r0 - strh r0, [r7, #0x24] - ldr r4, _0815E4E0 - movs r0, #0x1e - ldrsh r5, [r7, r0] - movs r1, #0x20 - ldrsh r6, [r7, r1] - mov r1, r8 - ldrb r0, [r1] - bl GetBattlerSpriteSubpriority - adds r3, r0, #0 - subs r3, #5 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r7, #0x26] - cmp r0, #0x40 - beq _0815E4F0 - ldr r4, _0815E4E4 - movs r0, #0x26 - ldrsh r1, [r7, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0x10 - strh r1, [r0, #0x2e] - movs r0, #0x26 - ldrsh r1, [r7, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r7, #0x22] - strh r1, [r0, #0x32] - movs r0, #0x26 - ldrsh r1, [r7, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r7, #0x24] - strh r1, [r0, #0x36] - movs r0, #0x26 - ldrsh r1, [r7, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _0815E4E8 - strh r1, [r0, #0x38] - movs r0, #0x26 - ldrsh r1, [r7, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl InitAnimArcTranslation - mov r1, sl - ldrb r0, [r1] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0815E4CE - movs r0, #0x26 - ldrsh r1, [r7, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #1 - bl StartSpriteAffineAnim -_0815E4CE: - ldr r0, _0815E4EC - str r0, [r7] - b _0815E4F6 - .align 2, 0 -_0815E4D4: .4byte gUnknown_3005B60 -_0815E4D8: .4byte gUnknown_20380D6 -_0815E4DC: .4byte gUnknown_20380D7 -_0815E4E0: .4byte gUnknown_85AD654 -_0815E4E4: .4byte gUnknown_20205AC -_0815E4E8: .4byte 0x0000FFE0 -_0815E4EC: .4byte AnimTask_BarrageBallStep -_0815E4F0: - mov r0, sb - bl DestroyAnimVisualTask -_0815E4F6: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end AnimTask_BarrageBall - - thumb_func_start AnimTask_BarrageBallStep -AnimTask_BarrageBallStep: @ 0x0815E504 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _0815E528 - adds r4, r0, r1 - movs r0, #8 - ldrsh r1, [r4, r0] - cmp r1, #1 - beq _0815E56C - cmp r1, #1 - bgt _0815E52C - cmp r1, #0 - beq _0815E536 - b _0815E60A - .align 2, 0 -_0815E528: .4byte gUnknown_3005B60 -_0815E52C: - cmp r1, #2 - beq _0815E590 - cmp r1, #3 - beq _0815E604 - b _0815E60A -_0815E536: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _0815E60A - strh r1, [r4, #0xa] - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0815E568 - adds r0, r0, r1 - bl TranslateAnimHorizontalArc - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #7 - ble _0815E60A - b _0815E5F6 - .align 2, 0 -_0815E568: .4byte gUnknown_20205AC -_0815E56C: - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0815E58C - adds r0, r0, r1 - bl TranslateAnimHorizontalArc - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0815E60A - movs r0, #0 - strh r0, [r4, #0xa] - strh r0, [r4, #0xc] - b _0815E5F6 - .align 2, 0 -_0815E58C: .4byte gUnknown_20205AC -_0815E590: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _0815E60A - movs r0, #0 - strh r0, [r4, #0xa] - ldrh r2, [r4, #0xc] - adds r2, #1 - strh r2, [r4, #0xc] - ldr r5, _0815E600 - movs r1, #0x26 - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - movs r0, #1 - ands r2, r0 - adds r1, #0x3e - lsls r2, r2, #2 - ldrb r3, [r1] - subs r0, #6 - ands r0, r3 - orrs r0, r2 - strb r0, [r1] - movs r1, #0xc - ldrsh r0, [r4, r1] - cmp r0, #0x10 - bne _0815E60A - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r0, [r0, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - bl DestroySprite -_0815E5F6: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _0815E60A - .align 2, 0 -_0815E600: .4byte gUnknown_20205AC -_0815E604: - adds r0, r2, #0 - bl DestroyAnimVisualTask -_0815E60A: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end AnimTask_BarrageBallStep - - thumb_func_start AnimSmellingSaltsHand -AnimSmellingSaltsHand: @ 0x0815E610 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r0, _0815E624 - movs r2, #0 - ldrsh r1, [r0, r2] - adds r6, r0, #0 - cmp r1, #0 - bne _0815E62C - ldr r0, _0815E628 - b _0815E62E - .align 2, 0 -_0815E624: .4byte gUnknown_20380BE -_0815E628: .4byte gUnknown_20380D6 -_0815E62C: - ldr r0, _0815E694 -_0815E62E: - ldrb r5, [r0] - ldrh r2, [r4, #4] - lsls r1, r2, #0x16 - lsrs r1, r1, #0x16 - adds r1, #0x10 - ldr r3, _0815E698 - adds r0, r3, #0 - ands r1, r0 - ldr r0, _0815E69C - ands r0, r2 - orrs r0, r1 - strh r0, [r4, #4] - adds r1, r6, #0 - ldrh r0, [r1, #4] - strh r0, [r4, #0x3a] - movs r2, #2 - ldrsh r0, [r1, r2] - movs r1, #1 - cmp r0, #0 - bne _0815E65C - movs r3, #1 - rsbs r3, r3, #0 - adds r1, r3, #0 -_0815E65C: - strh r1, [r4, #0x3c] - adds r0, r5, #0 - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x22] - movs r1, #2 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _0815E6A0 - ldrb r2, [r4, #3] - lsls r1, r2, #0x1a - lsrs r1, r1, #0x1b - movs r0, #8 - orrs r1, r0 - lsls r1, r1, #1 - subs r0, #0x47 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #3] - adds r0, r5, #0 - movs r1, #4 - bl GetBattlerSpriteCoordAttr - subs r0, #8 - b _0815E6AA - .align 2, 0 -_0815E694: .4byte gUnknown_20380D7 -_0815E698: .4byte 0x000003FF -_0815E69C: .4byte 0xFFFFFC00 -_0815E6A0: - adds r0, r5, #0 - movs r1, #5 - bl GetBattlerSpriteCoordAttr - adds r0, #8 -_0815E6AA: - strh r0, [r4, #0x20] - ldr r0, _0815E6B8 - str r0, [r4, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0815E6B8: .4byte sub_0815E6BC - thumb_func_end AnimSmellingSaltsHand - - thumb_func_start sub_0815E6BC -sub_0815E6BC: @ 0x0815E6BC - push {lr} - adds r2, r0, #0 - movs r0, #0x2e - ldrsh r1, [r2, r0] - cmp r1, #1 - beq _0815E704 - cmp r1, #1 - bgt _0815E6D2 - cmp r1, #0 - beq _0815E6DC - b _0815E774 -_0815E6D2: - cmp r1, #2 - beq _0815E714 - cmp r1, #3 - beq _0815E73A - b _0815E774 -_0815E6DC: - ldrh r0, [r2, #0x30] - adds r0, #1 - strh r0, [r2, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _0815E774 - strh r1, [r2, #0x30] - ldrh r0, [r2, #0x3c] - ldrh r1, [r2, #0x24] - adds r0, r0, r1 - strh r0, [r2, #0x24] - ldrh r0, [r2, #0x32] - adds r0, #1 - strh r0, [r2, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xc - bne _0815E774 - b _0815E732 -_0815E704: - ldrh r0, [r2, #0x30] - adds r0, #1 - strh r0, [r2, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #8 - bne _0815E774 - b _0815E72E -_0815E714: - movs r0, #0x3c - ldrsh r1, [r2, r0] - lsls r1, r1, #2 - ldrh r0, [r2, #0x24] - subs r0, r0, r1 - strh r0, [r2, #0x24] - ldrh r0, [r2, #0x30] - adds r0, #1 - strh r0, [r2, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #6 - bne _0815E774 -_0815E72E: - movs r0, #0 - strh r0, [r2, #0x30] -_0815E732: - ldrh r0, [r2, #0x2e] - adds r0, #1 - strh r0, [r2, #0x2e] - b _0815E774 -_0815E73A: - movs r0, #0x3c - ldrsh r1, [r2, r0] - lsls r0, r1, #1 - adds r0, r0, r1 - ldrh r1, [r2, #0x24] - adds r0, r0, r1 - strh r0, [r2, #0x24] - ldrh r0, [r2, #0x30] - adds r0, #1 - strh r0, [r2, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #8 - bne _0815E774 - ldrh r0, [r2, #0x3a] - subs r0, #1 - strh r0, [r2, #0x3a] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0815E76E - movs r0, #0 - strh r0, [r2, #0x30] - ldrh r0, [r2, #0x2e] - subs r0, #1 - strh r0, [r2, #0x2e] - b _0815E774 -_0815E76E: - adds r0, r2, #0 - bl DestroyAnimSprite -_0815E774: - pop {r0} - bx r0 - thumb_func_end sub_0815E6BC - - thumb_func_start AnimTask_SmellingSaltsSquish -AnimTask_SmellingSaltsSquish: @ 0x0815E778 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r2, _0815E790 - movs r3, #0 - ldrsh r0, [r2, r3] - cmp r0, #0 - bne _0815E794 - adds r0, r1, #0 - bl DestroyAnimVisualTask - b _0815E7BC - .align 2, 0 -_0815E790: .4byte gUnknown_20380BE -_0815E794: - ldr r0, _0815E7C4 - lsls r4, r1, #2 - adds r4, r4, r1 - lsls r4, r4, #3 - adds r4, r4, r0 - ldrh r0, [r2, #2] - strh r0, [r4, #8] - ldrb r0, [r2] - bl GetAnimBattlerSpriteId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - strh r1, [r4, #0x26] - ldr r2, _0815E7C8 - adds r0, r4, #0 - bl PrepareAffineAnimInTaskData - ldr r0, _0815E7CC - str r0, [r4] -_0815E7BC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815E7C4: .4byte gUnknown_3005B60 -_0815E7C8: .4byte gUnknown_85AD684 -_0815E7CC: .4byte AnimTask_SmellingSaltsSquishStep - thumb_func_end AnimTask_SmellingSaltsSquish - - thumb_func_start AnimTask_SmellingSaltsSquishStep -AnimTask_SmellingSaltsSquishStep: @ 0x0815E7D0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _0815E810 - adds r4, r0, r1 - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _0815E82A - movs r0, #0 - strh r0, [r4, #0xa] - ldrh r1, [r4, #0xc] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0815E818 - ldr r2, _0815E814 - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #2 - b _0815E828 - .align 2, 0 -_0815E810: .4byte gUnknown_3005B60 -_0815E814: .4byte gUnknown_20205AC -_0815E818: - ldr r2, _0815E870 - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, _0815E874 -_0815E828: - strh r1, [r0, #0x24] -_0815E82A: - adds r0, r4, #0 - bl RunAffineAnimFromTaskData - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _0815E886 - ldr r2, _0815E870 - movs r0, #0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r5, [r0, #0x24] - ldrh r0, [r4, #8] - subs r0, #1 - strh r0, [r4, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0815E880 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _0815E878 - adds r0, r0, r1 - ldrh r1, [r0, #0x26] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _0815E87C - bl PrepareAffineAnimInTaskData - strh r5, [r4, #0xa] - strh r5, [r4, #0xc] - b _0815E886 - .align 2, 0 -_0815E870: .4byte gUnknown_20205AC -_0815E874: .4byte 0x0000FFFE -_0815E878: .4byte gUnknown_3005B60 -_0815E87C: .4byte gUnknown_85AD684 -_0815E880: - adds r0, r6, #0 - bl DestroyAnimVisualTask -_0815E886: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end AnimTask_SmellingSaltsSquishStep - - thumb_func_start AnimSmellingSaltExclamation -AnimSmellingSaltExclamation: @ 0x0815E88C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0815E8A0 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _0815E8A8 - ldr r4, _0815E8A4 - b _0815E8AA - .align 2, 0 -_0815E8A0: .4byte gUnknown_20380BE -_0815E8A4: .4byte gUnknown_20380D6 -_0815E8A8: - ldr r4, _0815E8E8 -_0815E8AA: - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoordAttr - strh r0, [r5, #0x22] - movs r1, #0x22 - ldrsh r0, [r5, r1] - cmp r0, #7 - bgt _0815E8CE - movs r0, #8 - strh r0, [r5, #0x22] -_0815E8CE: - movs r2, #0 - strh r2, [r5, #0x2e] - ldr r1, _0815E8EC - ldrh r0, [r1, #2] - strh r0, [r5, #0x30] - strh r2, [r5, #0x32] - ldrh r0, [r1, #4] - strh r0, [r5, #0x34] - ldr r0, _0815E8F0 - str r0, [r5, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0815E8E8: .4byte gUnknown_20380D7 -_0815E8EC: .4byte gUnknown_20380BE -_0815E8F0: .4byte AnimSmellingSaltExclamationStep - thumb_func_end AnimSmellingSaltExclamation - - thumb_func_start AnimSmellingSaltExclamationStep -AnimSmellingSaltExclamationStep: @ 0x0815E8F4 - push {lr} - adds r3, r0, #0 - ldrh r0, [r3, #0x2e] - adds r0, #1 - strh r0, [r3, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x30 - ldrsh r1, [r3, r2] - cmp r0, r1 - blt _0815E948 - movs r0, #0 - strh r0, [r3, #0x2e] - ldrh r1, [r3, #0x32] - adds r1, #1 - movs r0, #1 - ands r1, r0 - strh r1, [r3, #0x32] - movs r0, #0x3e - adds r0, r0, r3 - mov ip, r0 - lsls r1, r1, #2 - ldrb r2, [r0] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - movs r2, #0x32 - ldrsh r0, [r3, r2] - cmp r0, #0 - beq _0815E948 - ldrh r0, [r3, #0x34] - subs r0, #1 - strh r0, [r3, #0x34] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0815E948 - adds r0, r3, #0 - bl DestroyAnimSprite -_0815E948: - pop {r0} - bx r0 - thumb_func_end AnimSmellingSaltExclamationStep - - thumb_func_start AnimHelpingHandClap -AnimHelpingHandClap: @ 0x0815E94C - push {lr} - adds r3, r0, #0 - ldr r0, _0815E978 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _0815E97C - ldrb r2, [r3, #3] - lsls r1, r2, #0x1a - lsrs r1, r1, #0x1b - movs r0, #8 - orrs r1, r0 - lsls r1, r1, #1 - subs r0, #0x47 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #3] - movs r0, #0x64 - strh r0, [r3, #0x20] - movs r0, #1 - b _0815E982 - .align 2, 0 -_0815E978: .4byte gUnknown_20380BE -_0815E97C: - movs r0, #0x8c - strh r0, [r3, #0x20] - ldr r0, _0815E990 -_0815E982: - strh r0, [r3, #0x3c] - movs r0, #0x38 - strh r0, [r3, #0x22] - ldr r0, _0815E994 - str r0, [r3, #0x1c] - pop {r0} - bx r0 - .align 2, 0 -_0815E990: .4byte 0x0000FFFF -_0815E994: .4byte AnimHelpingHandClapStep - thumb_func_end AnimHelpingHandClap - - thumb_func_start AnimHelpingHandClapStep -AnimHelpingHandClapStep: @ 0x0815E998 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #8 - bls _0815E9A6 - b _0815EB78 -_0815E9A6: - lsls r0, r0, #2 - ldr r1, _0815E9B0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0815E9B0: .4byte _0815E9B4 -_0815E9B4: @ jump table - .4byte _0815E9D8 @ case 0 - .4byte _0815EA0A @ case 1 - .4byte _0815EA1C @ case 2 - .4byte _0815EA5C @ case 3 - .4byte _0815EA6E @ case 4 - .4byte _0815EAAC @ case 5 - .4byte _0815EB10 @ case 6 - .4byte _0815EB30 @ case 7 - .4byte _0815EB56 @ case 8 -_0815E9D8: - movs r3, #0x3c - ldrsh r0, [r4, r3] - lsls r0, r0, #1 - ldrh r1, [r4, #0x22] - subs r1, r1, r0 - strh r1, [r4, #0x22] - ldrh r2, [r4, #0x30] - movs r0, #1 - ands r0, r2 - cmp r0, #0 - beq _0815E9FA - movs r0, #0x3c - ldrsh r1, [r4, r0] - lsls r1, r1, #1 - ldrh r0, [r4, #0x20] - subs r0, r0, r1 - strh r0, [r4, #0x20] -_0815E9FA: - adds r0, r2, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #9 - beq _0815EA08 - b _0815EB78 -_0815EA08: - b _0815EB4A -_0815EA0A: - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - beq _0815EA1A - b _0815EB78 -_0815EA1A: - b _0815EB4A -_0815EA1C: - ldrh r2, [r4, #0x30] - adds r2, #1 - strh r2, [r4, #0x30] - movs r3, #0x3c - ldrsh r1, [r4, r3] - lsls r0, r1, #1 - adds r0, r0, r1 - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] - ldr r3, _0815EA58 - movs r0, #0x30 - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x13 - ldrh r1, [r4, #0x3c] - muls r0, r1, r0 - strh r0, [r4, #0x24] - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - cmp r2, #0xc - beq _0815EA54 - b _0815EB78 -_0815EA54: - b _0815EB4A - .align 2, 0 -_0815EA58: .4byte gUnknown_82FA8CC -_0815EA5C: - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - beq _0815EA6C - b _0815EB78 -_0815EA6C: - b _0815EB4A -_0815EA6E: - ldrh r2, [r4, #0x30] - adds r2, #1 - strh r2, [r4, #0x30] - movs r1, #0x3c - ldrsh r0, [r4, r1] - lsls r1, r0, #1 - adds r1, r1, r0 - ldrh r0, [r4, #0x22] - subs r0, r0, r1 - strh r0, [r4, #0x22] - ldr r3, _0815EAA8 - movs r0, #0x30 - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x13 - ldrh r1, [r4, #0x3c] - muls r0, r1, r0 - strh r0, [r4, #0x24] - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - cmp r2, #0xc - bne _0815EB78 - b _0815EB4E - .align 2, 0 -_0815EAA8: .4byte gUnknown_82FA8CC -_0815EAAC: - ldrh r2, [r4, #0x30] - adds r2, #1 - strh r2, [r4, #0x30] - movs r3, #0x3c - ldrsh r1, [r4, r3] - lsls r0, r1, #1 - adds r0, r0, r1 - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] - ldr r3, _0815EB04 - movs r0, #0x30 - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x13 - ldrh r1, [r4, #0x3c] - muls r0, r1, r0 - strh r0, [r4, #0x24] - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - cmp r2, #0xf - bne _0815EAF8 - ldrh r2, [r4, #4] - lsls r1, r2, #0x16 - lsrs r1, r1, #0x16 - adds r1, #0x10 - ldr r3, _0815EB08 - adds r0, r3, #0 - ands r1, r0 - ldr r0, _0815EB0C - ands r0, r2 - orrs r0, r1 - strh r0, [r4, #4] -_0815EAF8: - movs r1, #0x30 - ldrsh r0, [r4, r1] - cmp r0, #0x12 - bne _0815EB78 - b _0815EB4A - .align 2, 0 -_0815EB04: .4byte gUnknown_82FA8CC -_0815EB08: .4byte 0x000003FF -_0815EB0C: .4byte 0xFFFFFC00 -_0815EB10: - movs r3, #0x3c - ldrsh r0, [r4, r3] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - ldrh r0, [r4, #0x20] - adds r1, r1, r0 - strh r1, [r4, #0x20] - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #9 - bne _0815EB78 - b _0815EB4A -_0815EB30: - movs r1, #0x3c - ldrsh r0, [r4, r1] - lsls r0, r0, #1 - ldrh r3, [r4, #0x20] - adds r0, r0, r3 - strh r0, [r4, #0x20] - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - bne _0815EB78 -_0815EB4A: - movs r0, #0 - strh r0, [r4, #0x30] -_0815EB4E: - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - b _0815EB78 -_0815EB56: - movs r1, #0x3c - ldrsh r0, [r4, r1] - lsls r1, r0, #1 - adds r1, r1, r0 - ldrh r0, [r4, #0x20] - subs r0, r0, r1 - strh r0, [r4, #0x20] - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #5 - bne _0815EB78 - adds r0, r4, #0 - bl DestroyAnimSprite -_0815EB78: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AnimHelpingHandClapStep - - thumb_func_start AnimTask_HelpingHandAttackerMovement -AnimTask_HelpingHandAttackerMovement: @ 0x0815EB80 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _0815EBDC - adds r6, r1, r0 - movs r0, #0 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r6, #0x26] - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0815EC08 - bl IsDoubleBattle - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #1 - bne _0815EBEC - ldr r5, _0815EBE0 - ldrb r0, [r5] - movs r1, #0 - bl GetBattlerSpriteCoord - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldrb r1, [r5] - movs r0, #2 - eors r0, r1 - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - ble _0815EBE4 - strh r7, [r6, #0x24] - b _0815EC0C - .align 2, 0 -_0815EBDC: .4byte gUnknown_3005B60 -_0815EBE0: .4byte gUnknown_20380D6 -_0815EBE4: - ldr r0, _0815EBE8 - b _0815EC0A - .align 2, 0 -_0815EBE8: .4byte 0x0000FFFF -_0815EBEC: - ldr r0, _0815EC00 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0815EC08 - ldr r0, _0815EC04 - b _0815EC0A - .align 2, 0 -_0815EC00: .4byte gUnknown_20380D6 -_0815EC04: .4byte 0x0000FFFF -_0815EC08: - movs r0, #1 -_0815EC0A: - strh r0, [r6, #0x24] -_0815EC0C: - ldr r0, _0815EC18 - str r0, [r6] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0815EC18: .4byte AnimTask_HelpingHandAttackerMovementStep - thumb_func_end AnimTask_HelpingHandAttackerMovement - - thumb_func_start AnimTask_HelpingHandAttackerMovementStep -AnimTask_HelpingHandAttackerMovementStep: @ 0x0815EC1C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _0815EC40 - adds r3, r0, r1 - movs r1, #8 - ldrsh r0, [r3, r1] - cmp r0, #8 - bls _0815EC36 - b _0815EDB0 -_0815EC36: - lsls r0, r0, #2 - ldr r1, _0815EC44 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0815EC40: .4byte gUnknown_3005B60 -_0815EC44: .4byte _0815EC48 -_0815EC48: @ jump table - .4byte _0815EC6C @ case 0 - .4byte _0815EC7E @ case 1 - .4byte _0815ECB0 @ case 2 - .4byte _0815ECE0 @ case 3 - .4byte _0815ED06 @ case 4 - .4byte _0815ED30 @ case 5 - .4byte _0815ED40 @ case 6 - .4byte _0815ED60 @ case 7 - .4byte _0815ED98 @ case 8 -_0815EC6C: - ldrh r0, [r3, #0xa] - adds r0, #1 - strh r0, [r3, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xd - beq _0815EC7C - b _0815EDB0 -_0815EC7C: - b _0815ED88 -_0815EC7E: - ldr r2, _0815ECAC - movs r1, #0x26 - ldrsh r0, [r3, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r2, #0x24 - ldrsh r0, [r3, r2] - lsls r2, r0, #1 - adds r2, r2, r0 - ldrh r0, [r1, #0x24] - subs r0, r0, r2 - strh r0, [r1, #0x24] - ldrh r0, [r3, #0xa] - adds r0, #1 - strh r0, [r3, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #6 - beq _0815ECAA - b _0815EDB0 -_0815ECAA: - b _0815ED88 - .align 2, 0 -_0815ECAC: .4byte gUnknown_20205AC -_0815ECB0: - ldr r2, _0815ECDC - movs r1, #0x26 - ldrsh r0, [r3, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #0x24 - ldrsh r2, [r3, r0] - lsls r0, r2, #1 - adds r0, r0, r2 - ldrh r2, [r1, #0x24] - adds r0, r0, r2 - strh r0, [r1, #0x24] - ldrh r0, [r3, #0xa] - adds r0, #1 - strh r0, [r3, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #6 - bne _0815EDB0 - b _0815ED88 - .align 2, 0 -_0815ECDC: .4byte gUnknown_20205AC -_0815ECE0: - ldrh r0, [r3, #0xa] - adds r0, #1 - strh r0, [r3, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - bne _0815EDB0 - movs r0, #0 - strh r0, [r3, #0xa] - ldrh r1, [r3, #0xc] - movs r2, #0xc - ldrsh r0, [r3, r2] - cmp r0, #0 - bne _0815ED8C - adds r0, r1, #1 - strh r0, [r3, #0xc] - movs r0, #1 - strh r0, [r3, #8] - b _0815EDB0 -_0815ED06: - ldr r2, _0815ED2C - movs r0, #0x26 - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r3, #0x24] - ldrh r2, [r0, #0x24] - adds r1, r1, r2 - strh r1, [r0, #0x24] - ldrh r0, [r3, #0xa] - adds r0, #1 - strh r0, [r3, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - bne _0815EDB0 - b _0815ED88 - .align 2, 0 -_0815ED2C: .4byte gUnknown_20205AC -_0815ED30: - ldrh r0, [r3, #0xa] - adds r0, #1 - strh r0, [r3, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #6 - bne _0815EDB0 - b _0815ED88 -_0815ED40: - ldr r2, _0815ED5C - movs r1, #0x26 - ldrsh r0, [r3, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #0x24 - ldrsh r2, [r3, r0] - lsls r2, r2, #2 - ldrh r0, [r1, #0x24] - subs r0, r0, r2 - b _0815ED78 - .align 2, 0 -_0815ED5C: .4byte gUnknown_20205AC -_0815ED60: - ldr r2, _0815ED94 - movs r1, #0x26 - ldrsh r0, [r3, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r2, #0x24 - ldrsh r0, [r3, r2] - lsls r0, r0, #2 - ldrh r2, [r1, #0x24] - adds r0, r0, r2 -_0815ED78: - strh r0, [r1, #0x24] - ldrh r0, [r3, #0xa] - adds r0, #1 - strh r0, [r3, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #5 - bne _0815EDB0 -_0815ED88: - movs r0, #0 - strh r0, [r3, #0xa] -_0815ED8C: - ldrh r0, [r3, #8] - adds r0, #1 - strh r0, [r3, #8] - b _0815EDB0 - .align 2, 0 -_0815ED94: .4byte gUnknown_20205AC -_0815ED98: - ldr r2, _0815EDB8 - movs r0, #0x26 - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0 - strh r1, [r0, #0x24] - adds r0, r4, #0 - bl DestroyAnimVisualTask -_0815EDB0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815EDB8: .4byte gUnknown_20205AC - thumb_func_end AnimTask_HelpingHandAttackerMovementStep - - thumb_func_start AnimForesightMagnifyingGlass -AnimForesightMagnifyingGlass: @ 0x0815EDBC - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0815EDD8 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _0815EDE0 - adds r0, r4, #0 - movs r1, #1 - bl InitSpritePosToAnimAttacker - ldr r0, _0815EDDC - b _0815EDE2 - .align 2, 0 -_0815EDD8: .4byte gUnknown_20380BE -_0815EDDC: .4byte gUnknown_20380D6 -_0815EDE0: - ldr r0, _0815EE38 -_0815EDE2: - ldrb r0, [r0] - strh r0, [r4, #0x3c] - ldrh r0, [r4, #0x3c] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0815EE06 - ldrb r0, [r4, #3] - movs r1, #0x3f - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #0x10 - orrs r1, r0 - strb r1, [r4, #3] -_0815EE06: - ldrh r0, [r4, #0x3c] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerSpriteBGPriority - movs r2, #3 - ands r2, r0 - lsls r2, r2, #2 - ldrb r3, [r4, #5] - movs r1, #0xd - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r4, #5] - ldrb r0, [r4, #1] - ands r1, r0 - movs r0, #4 - orrs r1, r0 - strb r1, [r4, #1] - ldr r0, _0815EE3C - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815EE38: .4byte gUnknown_20380D7 -_0815EE3C: .4byte AnimForesightMagnifyingGlassStep - thumb_func_end AnimForesightMagnifyingGlass - - thumb_func_start AnimForesightMagnifyingGlassStep -AnimForesightMagnifyingGlassStep: @ 0x0815EE40 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x38 - ldrsh r0, [r4, r1] - cmp r0, #4 - bls _0815EE4E - b _0815F03E -_0815EE4E: - lsls r0, r0, #2 - ldr r1, _0815EE58 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0815EE58: .4byte _0815EE5C -_0815EE5C: @ jump table - .4byte _0815EE70 @ case 0 - .4byte _0815EF70 @ case 1 - .4byte _0815EFD8 @ case 2 - .4byte _0815EFEC @ case 3 - .4byte _0815F038 @ case 4 -_0815EE70: - movs r2, #0x3a - ldrsh r0, [r4, r2] - cmp r0, #5 - bhi _0815EEA0 - lsls r0, r0, #2 - ldr r1, _0815EE84 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0815EE84: .4byte _0815EE88 -_0815EE88: @ jump table - .4byte _0815EEA4 @ case 0 - .4byte _0815EEC0 @ case 1 - .4byte _0815EEE2 @ case 2 - .4byte _0815EEFE @ case 3 - .4byte _0815EEA4 @ case 4 - .4byte _0815EF24 @ case 5 -_0815EEA0: - movs r0, #0 - strh r0, [r4, #0x3a] -_0815EEA4: - ldrh r0, [r4, #0x3c] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #5 - bl GetBattlerSpriteCoordAttr - subs r0, #4 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldrh r0, [r4, #0x3c] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #3 - b _0815EF18 -_0815EEC0: - ldrh r0, [r4, #0x3c] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #5 - bl GetBattlerSpriteCoordAttr - subs r0, #4 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldrh r0, [r4, #0x3c] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - bl GetBattlerSpriteCoordAttr - adds r0, #4 - b _0815EF1E -_0815EEE2: - ldrh r0, [r4, #0x3c] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #4 - bl GetBattlerSpriteCoordAttr - adds r0, #4 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldrh r0, [r4, #0x3c] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #3 - b _0815EF18 -_0815EEFE: - ldrh r0, [r4, #0x3c] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #4 - bl GetBattlerSpriteCoordAttr - adds r0, #4 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldrh r0, [r4, #0x3c] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 -_0815EF18: - bl GetBattlerSpriteCoordAttr - subs r0, #4 -_0815EF1E: - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - b _0815EF44 -_0815EF24: - ldrh r0, [r4, #0x3c] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldrh r0, [r4, #0x3c] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 -_0815EF44: - movs r2, #0x3a - ldrsh r0, [r4, r2] - cmp r0, #4 - bne _0815EF50 - movs r0, #0x18 - b _0815EF5A -_0815EF50: - cmp r0, #5 - bne _0815EF58 - movs r0, #6 - b _0815EF5A -_0815EF58: - movs r0, #0xc -_0815EF5A: - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x20] - strh r0, [r4, #0x30] - strh r5, [r4, #0x32] - ldrh r0, [r4, #0x22] - strh r0, [r4, #0x34] - strh r1, [r4, #0x36] - adds r0, r4, #0 - bl InitAnimLinearTranslation - b _0815F030 -_0815EF70: - adds r0, r4, #0 - bl AnimTranslateLinear - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0815F03E - movs r1, #0x3a - ldrsh r0, [r4, r1] - cmp r0, #4 - beq _0815EFA8 - cmp r0, #5 - beq _0815EFC8 - ldrh r0, [r4, #0x24] - ldrh r2, [r4, #0x20] - adds r0, r0, r2 - movs r1, #0 - strh r0, [r4, #0x20] - ldrh r0, [r4, #0x26] - ldrh r2, [r4, #0x22] - adds r0, r0, r2 - strh r0, [r4, #0x22] - strh r1, [r4, #0x26] - strh r1, [r4, #0x24] - strh r1, [r4, #0x2e] - ldrh r0, [r4, #0x38] - adds r0, #1 - strh r0, [r4, #0x38] - b _0815EFC0 -_0815EFA8: - ldrh r0, [r4, #0x24] - ldrh r1, [r4, #0x20] - adds r0, r0, r1 - movs r1, #0 - strh r0, [r4, #0x20] - ldrh r0, [r4, #0x26] - ldrh r2, [r4, #0x22] - adds r0, r0, r2 - strh r0, [r4, #0x22] - strh r1, [r4, #0x26] - strh r1, [r4, #0x24] - strh r1, [r4, #0x38] -_0815EFC0: - ldrh r0, [r4, #0x3a] - adds r0, #1 - strh r0, [r4, #0x3a] - b _0815F03E -_0815EFC8: - movs r0, #0 - strh r0, [r4, #0x2e] - movs r1, #0x10 - strh r1, [r4, #0x30] - strh r0, [r4, #0x32] - movs r0, #3 - strh r0, [r4, #0x38] - b _0815F03E -_0815EFD8: - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - bne _0815F03E - movs r0, #0 - strh r0, [r4, #0x38] - b _0815F03E -_0815EFEC: - ldrh r1, [r4, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0815EFFE - ldrh r0, [r4, #0x30] - subs r0, #1 - strh r0, [r4, #0x30] - b _0815F004 -_0815EFFE: - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] -_0815F004: - ldrh r1, [r4, #0x32] - lsls r1, r1, #8 - ldrh r0, [r4, #0x30] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x20 - bne _0815F03E - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] -_0815F030: - ldrh r0, [r4, #0x38] - adds r0, #1 - strh r0, [r4, #0x38] - b _0815F03E -_0815F038: - adds r0, r4, #0 - bl DestroyAnimSprite -_0815F03E: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end AnimForesightMagnifyingGlassStep - - thumb_func_start AnimMeteorMashStarStep -AnimMeteorMashStarStep: @ 0x0815F044 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - movs r2, #0x38 - ldrsh r1, [r4, r2] - muls r0, r1, r0 - movs r2, #0x36 - ldrsh r1, [r4, r2] - bl __divsi3 - adds r5, r0, #0 - strh r5, [r4, #0x24] - movs r1, #0x34 - ldrsh r0, [r4, r1] - movs r2, #0x30 - ldrsh r1, [r4, r2] - subs r0, r0, r1 - movs r2, #0x38 - ldrsh r1, [r4, r2] - muls r0, r1, r0 - movs r2, #0x36 - ldrsh r1, [r4, r2] - bl __divsi3 - adds r3, r0, #0 - strh r3, [r4, #0x26] - ldrh r1, [r4, #0x38] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0815F0A2 - ldr r0, _0815F0C0 - ldrh r1, [r4, #0x20] - adds r1, r1, r5 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldrh r2, [r4, #0x22] - adds r2, r2, r3 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - movs r3, #5 - bl CreateSprite -_0815F0A2: - movs r0, #0x38 - ldrsh r1, [r4, r0] - movs r2, #0x36 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _0815F0B4 - adds r0, r4, #0 - bl DestroyAnimSprite -_0815F0B4: - ldrh r0, [r4, #0x38] - adds r0, #1 - strh r0, [r4, #0x38] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0815F0C0: .4byte gUnknown_85AD1A8 - thumb_func_end AnimMeteorMashStarStep - - thumb_func_start AnimMeteorMashStar -AnimMeteorMashStar: @ 0x0815F0C4 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0815F100 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - ldrb r0, [r4] - movs r1, #3 - bl GetBattlerSpriteCoord - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0815F0F0 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0815F108 -_0815F0F0: - ldr r2, _0815F104 - ldrh r1, [r5, #0x20] - ldrh r0, [r2] - subs r0, r1, r0 - strh r0, [r5, #0x2e] - ldrh r0, [r2, #4] - subs r1, r1, r0 - b _0815F116 - .align 2, 0 -_0815F100: .4byte gUnknown_20380D7 -_0815F104: .4byte gUnknown_20380BE -_0815F108: - ldr r2, _0815F13C - ldrh r1, [r5, #0x20] - ldrh r0, [r2] - adds r0, r1, r0 - strh r0, [r5, #0x2e] - ldrh r0, [r2, #4] - adds r1, r1, r0 -_0815F116: - strh r1, [r5, #0x32] - adds r3, r2, #0 - ldrh r1, [r5, #0x22] - ldrh r2, [r3, #2] - adds r2, r1, r2 - strh r2, [r5, #0x30] - ldrh r0, [r3, #6] - adds r1, r1, r0 - strh r1, [r5, #0x34] - ldrh r0, [r3, #8] - strh r0, [r5, #0x36] - ldrh r0, [r5, #0x2e] - strh r0, [r5, #0x20] - strh r2, [r5, #0x22] - ldr r0, _0815F140 - str r0, [r5, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0815F13C: .4byte gUnknown_20380BE -_0815F140: .4byte AnimMeteorMashStarStep - thumb_func_end AnimMeteorMashStar - - thumb_func_start AnimTask_MonToSubstitute -AnimTask_MonToSubstitute: @ 0x0815F144 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r0, #0 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r2, r5, #0 - ldr r0, _0815F188 - mov sb, r0 - lsls r7, r6, #2 - adds r0, r7, r6 - lsls r0, r0, #3 - mov r8, r0 - mov r4, r8 - add r4, sb - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0815F18C - adds r0, r5, #0 - movs r1, #0 - bl PrepareBattlerSpriteForRotScale - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0xa] - strh r0, [r4, #0xc] - b _0815F1D8 - .align 2, 0 -_0815F188: .4byte gUnknown_3005B60 -_0815F18C: - cmp r0, #1 - bne _0815F1E4 - ldrh r0, [r4, #0xa] - adds r0, #0x60 - strh r0, [r4, #0xa] - ldrh r0, [r4, #0xc] - subs r0, #0xd - strh r0, [r4, #0xc] - movs r2, #0xa - ldrsh r1, [r4, r2] - movs r0, #0xc - ldrsh r2, [r4, r0] - adds r0, r5, #0 - movs r3, #0 - bl SetSpriteRotScale - ldrh r0, [r4, #0xe] - adds r0, #1 - strh r0, [r4, #0xe] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #9 - bne _0815F248 - movs r0, #0 - strh r0, [r4, #0xe] - adds r0, r5, #0 - bl ResetSpriteRotScale - ldr r1, _0815F1E0 - lsls r0, r5, #4 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_0815F1D8: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _0815F248 - .align 2, 0 -_0815F1E0: .4byte gUnknown_20205AC -_0815F1E4: - ldr r4, _0815F254 - ldrb r0, [r4] - movs r1, #0 - bl LoadBattleMonGfxAndAnimate - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0815F226 - ldr r3, _0815F258 - ldr r2, _0815F25C - ldrb r0, [r4] - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r3, #0 - adds r1, #0x10 - adds r0, r0, r1 - ldr r1, _0815F260 - str r1, [r0] - ldrb r0, [r4] - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r1, #0 - bl StartSpriteAffineAnim -_0815F226: - mov r4, sb - adds r3, r7, #0 - ldr r5, _0815F264 - movs r1, #0xf - mov r2, r8 - adds r0, r4, r2 - adds r0, #0x26 - movs r2, #0 -_0815F236: - strh r2, [r0] - subs r0, #2 - subs r1, #1 - cmp r1, #0 - bge _0815F236 - adds r0, r3, r6 - lsls r0, r0, #3 - adds r0, r0, r4 - str r5, [r0] -_0815F248: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0815F254: .4byte gUnknown_20380D6 -_0815F258: .4byte gUnknown_20205AC -_0815F25C: .4byte gUnknown_2023E88 -_0815F260: .4byte gUnknown_82D2F50 -_0815F264: .4byte AnimTask_MonToSubstituteDoll - thumb_func_end AnimTask_MonToSubstitute - - thumb_func_start AnimTask_MonToSubstituteDoll -AnimTask_MonToSubstituteDoll: @ 0x0815F268 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r0, #0 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r1, _0815F294 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r0, #8 - ldrsh r5, [r4, r0] - cmp r5, #1 - beq _0815F2CC - cmp r5, #1 - bgt _0815F298 - cmp r5, #0 - beq _0815F2A2 - b _0815F3BA - .align 2, 0 -_0815F294: .4byte gUnknown_3005B60 -_0815F298: - cmp r5, #2 - beq _0815F338 - cmp r5, #3 - beq _0815F374 - b _0815F3BA -_0815F2A2: - ldr r0, _0815F2C4 - lsls r1, r3, #4 - adds r1, r1, r3 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, _0815F2C8 - strh r0, [r1, #0x26] - movs r0, #0xc8 - strh r0, [r1, #0x24] - adds r1, #0x3e - ldrb r2, [r1] - subs r0, #0xcd - ands r0, r2 - strb r0, [r1] - strh r5, [r4, #0x1c] - b _0815F366 - .align 2, 0 -_0815F2C4: .4byte gUnknown_20205AC -_0815F2C8: .4byte 0x0000FF38 -_0815F2CC: - ldrh r1, [r4, #0x1c] - adds r1, #0x70 - movs r5, #0 - strh r1, [r4, #0x1c] - ldr r2, _0815F330 - lsls r0, r3, #4 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r2, r0, r2 - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - ldrh r3, [r2, #0x26] - adds r1, r1, r3 - strh r1, [r2, #0x26] - movs r1, #0x22 - ldrsh r0, [r2, r1] - movs r3, #0x26 - ldrsh r1, [r2, r3] - adds r0, r0, r1 - movs r1, #0x20 - rsbs r1, r1, #0 - cmp r0, r1 - blt _0815F2FC - strh r5, [r2, #0x24] -_0815F2FC: - movs r1, #0x26 - ldrsh r0, [r2, r1] - cmp r0, #0 - ble _0815F306 - strh r5, [r2, #0x26] -_0815F306: - movs r3, #0x26 - ldrsh r0, [r2, r3] - cmp r0, #0 - bne _0815F3BA - movs r0, #0x40 - rsbs r0, r0, #0 - bl BattleAnimAdjustPanning - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r0, #0x7d - bl PlaySE12WithPanning - ldr r1, _0815F334 - adds r0, r1, #0 - ldrh r2, [r4, #0x1c] - adds r0, r0, r2 - strh r0, [r4, #0x1c] - b _0815F366 - .align 2, 0 -_0815F330: .4byte gUnknown_20205AC -_0815F334: .4byte 0xFFFFF800 -_0815F338: - ldrh r0, [r4, #0x1c] - subs r0, #0x70 - strh r0, [r4, #0x1c] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _0815F348 - movs r0, #0 - strh r0, [r4, #0x1c] -_0815F348: - ldr r0, _0815F370 - lsls r1, r3, #4 - adds r1, r1, r3 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r2, [r4, #0x1c] - lsls r2, r2, #0x10 - asrs r2, r2, #0x18 - ldrh r0, [r1, #0x26] - subs r0, r0, r2 - strh r0, [r1, #0x26] - movs r3, #0x1c - ldrsh r0, [r4, r3] - cmp r0, #0 - bne _0815F3BA -_0815F366: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _0815F3BA - .align 2, 0 -_0815F370: .4byte gUnknown_20205AC -_0815F374: - ldrh r0, [r4, #0x1c] - adds r0, #0x70 - strh r0, [r4, #0x1c] - ldr r2, _0815F3C0 - lsls r1, r3, #4 - adds r1, r1, r3 - lsls r1, r1, #2 - adds r1, r1, r2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - ldrh r2, [r1, #0x26] - adds r0, r0, r2 - strh r0, [r1, #0x26] - lsls r0, r0, #0x10 - cmp r0, #0 - ble _0815F398 - movs r0, #0 - strh r0, [r1, #0x26] -_0815F398: - movs r3, #0x26 - ldrsh r0, [r1, r3] - cmp r0, #0 - bne _0815F3BA - movs r0, #0x40 - rsbs r0, r0, #0 - bl BattleAnimAdjustPanning - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r0, #0x7d - bl PlaySE12WithPanning - adds r0, r6, #0 - bl DestroyAnimVisualTask -_0815F3BA: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0815F3C0: .4byte gUnknown_20205AC - thumb_func_end AnimTask_MonToSubstituteDoll - - thumb_func_start AnimBlockX -AnimBlockX: @ 0x0815F3C4 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0815F3E8 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0815F3F0 - ldrb r0, [r4] - bl GetBattlerSpriteSubpriority - subs r0, #2 - adds r1, r5, #0 - adds r1, #0x43 - strb r0, [r1] - ldr r4, _0815F3EC - b _0815F400 - .align 2, 0 -_0815F3E8: .4byte gUnknown_20380D7 -_0815F3EC: .4byte 0x0000FF70 -_0815F3F0: - ldrb r0, [r4] - bl GetBattlerSpriteSubpriority - adds r0, #2 - adds r1, r5, #0 - adds r1, #0x43 - strb r0, [r1] - ldr r4, _0815F41C -_0815F400: - ldr r0, _0815F420 - ldrb r0, [r0] - movs r1, #3 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x22] - strh r4, [r5, #0x26] - ldr r0, _0815F424 - str r0, [r5, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0815F41C: .4byte 0x0000FFA0 -_0815F420: .4byte gUnknown_20380D7 -_0815F424: .4byte AnimBlockXStep - thumb_func_end AnimBlockX - - thumb_func_start AnimBlockXStep -AnimBlockXStep: @ 0x0815F428 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #4 - bls _0815F436 - b _0815F552 -_0815F436: - lsls r0, r0, #2 - ldr r1, _0815F440 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0815F440: .4byte _0815F444 -_0815F444: @ jump table - .4byte _0815F458 @ case 0 - .4byte _0815F47C @ case 1 - .4byte _0815F4BC @ case 2 - .4byte _0815F4EC @ case 3 - .4byte _0815F518 @ case 4 -_0815F458: - ldrh r0, [r4, #0x26] - adds r0, #0xa - strh r0, [r4, #0x26] - lsls r0, r0, #0x10 - cmp r0, #0 - blt _0815F552 - movs r0, #0x3f - bl BattleAnimAdjustPanning - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r0, #0xcd - bl PlaySE12WithPanning - movs r0, #0 - strh r0, [r4, #0x26] - b _0815F510 -_0815F47C: - ldrh r1, [r4, #0x30] - adds r1, #4 - movs r5, #0 - strh r1, [r4, #0x30] - ldr r2, _0815F4B8 - movs r3, #0x30 - ldrsh r0, [r4, r3] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x13 - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0x7f - ble _0815F552 - movs r0, #0x3f - bl BattleAnimAdjustPanning - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r0, #0xcd - bl PlaySE12WithPanning - strh r5, [r4, #0x30] - strh r5, [r4, #0x26] - b _0815F510 - .align 2, 0 -_0815F4B8: .4byte gUnknown_82FA8CC -_0815F4BC: - ldrh r1, [r4, #0x30] - adds r1, #6 - movs r3, #0 - strh r1, [r4, #0x30] - ldr r2, _0815F4E8 - movs r5, #0x30 - ldrsh r0, [r4, r5] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0x7f - ble _0815F552 - strh r3, [r4, #0x30] - strh r3, [r4, #0x26] - b _0815F510 - .align 2, 0 -_0815F4E8: .4byte gUnknown_82FA8CC -_0815F4EC: - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #8 - ble _0815F552 - movs r0, #0x3f - bl BattleAnimAdjustPanning - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r0, #0xc0 - bl PlaySE12WithPanning - movs r0, #0 - strh r0, [r4, #0x30] -_0815F510: - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - b _0815F552 -_0815F518: - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #8 - ble _0815F552 - movs r0, #0 - strh r0, [r4, #0x30] - ldrh r1, [r4, #0x32] - adds r1, #1 - strh r1, [r4, #0x32] - movs r0, #1 - ands r1, r0 - adds r3, r4, #0 - adds r3, #0x3e - lsls r1, r1, #2 - ldrb r2, [r3] - subs r0, #6 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #7 - bne _0815F552 - adds r0, r4, #0 - bl DestroyAnimSprite -_0815F552: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end AnimBlockXStep - - thumb_func_start AnimTask_OdorSleuthMovement -AnimTask_OdorSleuthMovement: @ 0x0815F558 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - bl IsContest - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #0 - bne _0815F5A6 - movs r0, #1 - bl CloneBattlerSpriteWithBlend - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - mov sl, r1 - asrs r6, r0, #0x10 - cmp r6, #0 - blt _0815F5A6 - movs r0, #1 - bl CloneBattlerSpriteWithBlend - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - mov sb, r1 - asrs r1, r0, #0x10 - cmp r1, #0 - bge _0815F5B4 - lsls r0, r6, #4 - adds r0, r0, r6 - lsls r0, r0, #2 - ldr r1, _0815F5B0 - adds r0, r0, r1 - bl obj_delete_but_dont_free_vram -_0815F5A6: - mov r0, r8 - bl DestroyAnimVisualTask - b _0815F6B8 - .align 2, 0 -_0815F5B0: .4byte gUnknown_20205AC -_0815F5B4: - ldr r4, _0815F644 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r5, r0, r4 - ldrh r0, [r5, #0x24] - adds r0, #0x18 - strh r0, [r5, #0x24] - lsls r0, r6, #4 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r6, r0, r4 - ldrh r0, [r6, #0x24] - subs r0, #0x18 - strh r0, [r6, #0x24] - strh r7, [r5, #0x2e] - strh r7, [r6, #0x2e] - strh r7, [r5, #0x30] - strh r7, [r6, #0x30] - strh r7, [r5, #0x32] - strh r7, [r6, #0x32] - movs r0, #0x10 - strh r0, [r5, #0x34] - ldr r0, _0815F648 - strh r0, [r6, #0x34] - strh r7, [r5, #0x36] - movs r0, #0x80 - strh r0, [r6, #0x36] - movs r0, #0x18 - strh r0, [r5, #0x38] - strh r0, [r6, #0x38] - mov r0, r8 - strh r0, [r5, #0x3a] - strh r0, [r6, #0x3a] - strh r7, [r5, #0x3c] - strh r7, [r6, #0x3c] - ldr r2, _0815F64C - mov r1, r8 - lsls r3, r1, #2 - adds r0, r3, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r1, #2 - strh r1, [r0, #8] - ldr r0, _0815F650 - ldr r1, [r0] - ldr r0, _0815F654 - ldrb r0, [r0] - ldr r1, [r1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - adds r7, r4, #0 - mov ip, r3 - cmp r0, #0 - bne _0815F658 - adds r2, r5, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - adds r2, r6, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - b _0815F66E - .align 2, 0 -_0815F644: .4byte gUnknown_20205AC -_0815F648: .4byte 0x0000FFF0 -_0815F64C: .4byte gUnknown_3005B60 -_0815F650: .4byte gUnknown_2024174 -_0815F654: .4byte gUnknown_20380D7 -_0815F658: - adds r1, r5, #0 - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - adds r1, r6, #0 - adds r1, #0x3e - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] -_0815F66E: - mov r1, sb - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r4, r2, r7 - ldrb r1, [r4, #1] - movs r3, #0xd - rsbs r3, r3, #0 - adds r0, r3, #0 - ands r0, r1 - strb r0, [r4, #1] - mov r1, sl - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r4, r1, r7 - ldrb r0, [r4, #1] - ands r3, r0 - strb r3, [r4, #1] - adds r3, r7, #0 - adds r3, #0x1c - adds r2, r2, r3 - ldr r0, _0815F6C8 - str r0, [r2] - adds r1, r1, r3 - str r0, [r1] - mov r0, ip - add r0, r8 - lsls r0, r0, #3 - ldr r1, _0815F6CC - adds r0, r0, r1 - ldr r1, _0815F6D0 - str r1, [r0] -_0815F6B8: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0815F6C8: .4byte MoveOdorSleuthClone -_0815F6CC: .4byte gUnknown_3005B60 -_0815F6D0: .4byte AnimTask_OdorSleuthMovementWaitFinish - thumb_func_end AnimTask_OdorSleuthMovement - - thumb_func_start AnimTask_OdorSleuthMovementWaitFinish -AnimTask_OdorSleuthMovementWaitFinish: @ 0x0815F6D4 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _0815F6F8 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #8 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _0815F6F2 - adds r0, r2, #0 - bl DestroyAnimVisualTask -_0815F6F2: - pop {r0} - bx r0 - .align 2, 0 -_0815F6F8: .4byte gUnknown_3005B60 - thumb_func_end AnimTask_OdorSleuthMovementWaitFinish - - thumb_func_start MoveOdorSleuthClone -MoveOdorSleuthClone: @ 0x0815F6FC - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _0815F746 - movs r0, #0 - strh r0, [r4, #0x30] - ldr r0, _0815F770 - ldr r1, [r0] - ldr r0, _0815F774 - ldrb r0, [r0] - ldr r1, [r1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0815F746 - adds r3, r4, #0 - adds r3, #0x3e - ldrb r2, [r3] - lsls r1, r2, #0x1d - lsrs r1, r1, #0x1f - movs r0, #1 - eors r1, r0 - ands r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_0815F746: - ldrh r0, [r4, #0x34] - ldrh r1, [r4, #0x36] - adds r0, r0, r1 - movs r5, #0 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x36] - movs r2, #0x36 - ldrsh r0, [r4, r2] - movs r2, #0x38 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, #0x24] - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0815F778 - cmp r0, #1 - beq _0815F790 - b _0815F7CE - .align 2, 0 -_0815F770: .4byte gUnknown_2024174 -_0815F774: .4byte gUnknown_20380D7 -_0815F778: - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3c - bne _0815F7CE - strh r5, [r4, #0x32] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - b _0815F7CE -_0815F790: - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - cmp r0, #0 - ble _0815F7CE - strh r5, [r4, #0x32] - ldrh r0, [r4, #0x38] - subs r0, #2 - strh r0, [r4, #0x38] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _0815F7CE - ldr r3, _0815F7D4 - movs r2, #0x3c - ldrsh r1, [r4, r2] - lsls r1, r1, #1 - movs r0, #0x3a - ldrsh r2, [r4, r0] - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r1, r1, r0 - adds r3, #8 - adds r1, r1, r3 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - adds r0, r4, #0 - bl obj_delete_but_dont_free_vram -_0815F7CE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0815F7D4: .4byte gUnknown_3005B60 - thumb_func_end MoveOdorSleuthClone - - thumb_func_start AnimTask_GetReturnPowerLevel -AnimTask_GetReturnPowerLevel: @ 0x0815F7D8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r3, _0815F824 - movs r2, #0 - strh r2, [r3, #0xe] - ldr r1, _0815F828 - ldrb r0, [r1] - ldrb r1, [r1] - adds r0, r1, #0 - subs r0, #0x3d - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r2, r1, #0 - cmp r0, #0x1e - bhi _0815F7FC - movs r0, #1 - strh r0, [r3, #0xe] -_0815F7FC: - adds r0, r2, #0 - subs r0, #0x5c - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x6c - bhi _0815F80C - movs r0, #2 - strh r0, [r3, #0xe] -_0815F80C: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xc8 - bls _0815F818 - movs r0, #3 - strh r0, [r3, #0xe] -_0815F818: - adds r0, r4, #0 - bl DestroyAnimVisualTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815F824: .4byte gUnknown_20380BE -_0815F828: .4byte gUnknown_20380BA - thumb_func_end AnimTask_GetReturnPowerLevel - - thumb_func_start AnimTask_SnatchOpposingMonMove -AnimTask_SnatchOpposingMonMove: @ 0x0815F82C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r1, _0815F85C - lsls r0, r0, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #8 - ldrsh r0, [r0, r1] - cmp r0, #4 - bls _0815F852 - b _0815FDA0 -_0815F852: - lsls r0, r0, #2 - ldr r1, _0815F860 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0815F85C: .4byte gUnknown_3005B60 -_0815F860: .4byte _0815F864 -_0815F864: @ jump table - .4byte _0815F878 @ case 0 - .4byte _0815F92C @ case 1 - .4byte _0815FB20 @ case 2 - .4byte _0815FC40 @ case 3 - .4byte _0815FCC4 @ case 4 -_0815F878: - movs r0, #0 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r1, _0815F8C4 - mov r2, r8 - lsls r4, r2, #2 - adds r0, r4, r2 - lsls r0, r0, #3 - adds r6, r0, r1 - movs r3, #0x80 - lsls r3, r3, #4 - adds r0, r3, #0 - ldrh r1, [r6, #0xa] - adds r0, r0, r1 - strh r0, [r6, #0xa] - ldr r0, _0815F8C8 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - mov sb, r4 - cmp r0, #0 - bne _0815F8D0 - ldr r2, _0815F8CC - lsls r3, r7, #4 - adds r1, r3, r7 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r0, [r6, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - ldrh r4, [r1, #0x24] - adds r0, r0, r4 - strh r0, [r1, #0x24] - b _0815F8EA - .align 2, 0 -_0815F8C4: .4byte gUnknown_3005B60 -_0815F8C8: .4byte gUnknown_20380D6 -_0815F8CC: .4byte gUnknown_20205AC -_0815F8D0: - ldr r3, _0815F924 - lsls r4, r7, #4 - adds r2, r4, r7 - lsls r2, r2, #2 - adds r2, r2, r3 - ldrh r1, [r6, #0xa] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - ldrh r0, [r2, #0x24] - subs r0, r0, r1 - strh r0, [r2, #0x24] - adds r2, r3, #0 - adds r3, r4, #0 -_0815F8EA: - ldr r1, _0815F928 - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrb r0, [r4, #0xa] - strh r0, [r4, #0xa] - adds r1, r3, r7 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r0, [r1, #0x24] - ldrh r1, [r1, #0x20] - adds r0, r0, r1 - lsls r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #0xe - adds r0, r0, r1 - movs r1, #0x98 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _0815F916 - b _0815FDA0 -_0815F916: - movs r0, #0 - strh r0, [r4, #0xa] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _0815FDA0 - .align 2, 0 -_0815F924: .4byte gUnknown_20205AC -_0815F928: .4byte gUnknown_3005B60 -_0815F92C: - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0815F960 - ldr r0, _0815F958 - ldr r0, [r0] - ldr r0, [r0, #0x18] - ldr r2, [r0, #8] - mov sl, r2 - ldr r3, [r0, #0xc] - mov sb, r3 - ldrh r6, [r0] - ldr r0, _0815F95C - ldrb r0, [r0] - bl GetBattlerSpriteSubpriority - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r7, #0 - b _0815FA86 - .align 2, 0 -_0815F958: .4byte gUnknown_2039BD4 -_0815F95C: .4byte gUnknown_20380D6 -_0815F960: - ldr r4, _0815F9C4 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0815FA00 - ldr r7, _0815F9C8 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r7 - ldrh r0, [r0] - movs r6, #0x64 - muls r0, r6, r0 - ldr r5, _0815F9CC - adds r0, r0, r5 - movs r1, #0 - bl GetMonData - mov sl, r0 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r7 - ldrh r0, [r0] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #1 - bl GetMonData - mov sb, r0 - ldr r0, _0815F9D0 - ldr r0, [r0] - ldrb r2, [r4] - ldr r1, [r0] - lsls r0, r2, #2 - adds r1, r0, r1 - ldrh r0, [r1, #2] - cmp r0, #0 - bne _0815F9D4 - lsls r0, r2, #1 - adds r0, r0, r7 - ldrh r0, [r0] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - b _0815F9D6 - .align 2, 0 -_0815F9C4: .4byte gUnknown_20380D6 -_0815F9C8: .4byte gUnknown_2023D12 -_0815F9CC: .4byte gUnknown_2024190 -_0815F9D0: .4byte gUnknown_2024174 -_0815F9D4: - ldrh r6, [r1, #2] -_0815F9D6: - movs r0, #1 - bl GetAnimBattlerSpriteId - ldr r2, _0815F9FC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - adds r1, #0x43 - ldrb r0, [r1] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r7, #0 - movs r5, #0x88 - lsls r5, r5, #1 - b _0815FA88 - .align 2, 0 -_0815F9FC: .4byte gUnknown_20205AC -_0815FA00: - ldr r7, _0815FA58 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r7 - ldrh r0, [r0] - movs r6, #0x64 - muls r0, r6, r0 - ldr r5, _0815FA5C - adds r0, r0, r5 - movs r1, #0 - bl GetMonData - mov sl, r0 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r7 - ldrh r0, [r0] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #1 - bl GetMonData - mov sb, r0 - ldr r0, _0815FA60 - ldr r0, [r0] - ldrb r2, [r4] - ldr r1, [r0] - lsls r0, r2, #2 - adds r1, r0, r1 - ldrh r0, [r1, #2] - cmp r0, #0 - bne _0815FA64 - lsls r0, r2, #1 - adds r0, r0, r7 - ldrh r0, [r0] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - b _0815FA66 - .align 2, 0 -_0815FA58: .4byte gUnknown_2023D12 -_0815FA5C: .4byte gUnknown_20243E8 -_0815FA60: .4byte gUnknown_2024174 -_0815FA64: - ldrh r6, [r1, #2] -_0815FA66: - movs r0, #1 - bl GetAnimBattlerSpriteId - ldr r2, _0815FB04 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - adds r1, #0x43 - ldrb r0, [r1] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r7, #1 -_0815FA86: - ldr r5, _0815FB08 -_0815FA88: - ldr r0, _0815FB0C - ldrb r0, [r0] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r3, r5, #0x10 - asrs r3, r3, #0x10 - str r0, [sp] - str r4, [sp, #4] - mov r4, sl - str r4, [sp, #8] - mov r0, sb - str r0, [sp, #0xc] - ldr r4, _0815FB10 - ldrb r0, [r4] - str r0, [sp, #0x10] - movs r0, #0 - str r0, [sp, #0x14] - adds r0, r6, #0 - adds r1, r7, #0 - movs r2, #0 - bl sub_080A7C5C - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _0815FB14 - ldr r1, [r0] - ldrb r0, [r4] - ldr r1, [r1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0, #2] - cmp r0, #0 - beq _0815FAF2 - ldr r1, _0815FB04 - lsls r0, r5, #4 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #5] - lsrs r0, r0, #4 - lsls r0, r0, #4 - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r2, #0 - orrs r0, r1 - ldr r3, _0815FB18 - movs r1, #0x10 - movs r2, #6 - bl BlendPalette -_0815FAF2: - ldr r0, _0815FB1C - mov r3, r8 - lsls r1, r3, #2 - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - strh r5, [r1, #0x26] - b _0815FCB6 - .align 2, 0 -_0815FB04: .4byte gUnknown_20205AC -_0815FB08: .4byte 0x0000FFE0 -_0815FB0C: .4byte gUnknown_20380D7 -_0815FB10: .4byte gUnknown_20380D6 -_0815FB14: .4byte gUnknown_2024174 -_0815FB18: .4byte 0x00007FFF -_0815FB1C: .4byte gUnknown_3005B60 -_0815FB20: - ldr r1, _0815FB6C - mov r0, r8 - lsls r4, r0, #2 - adds r0, r4, r0 - lsls r0, r0, #3 - adds r6, r0, r1 - ldrh r0, [r6, #0x26] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r1, #0x80 - lsls r1, r1, #4 - adds r0, r1, #0 - ldrh r2, [r6, #0xa] - adds r0, r0, r2 - strh r0, [r6, #0xa] - ldr r0, _0815FB70 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - mov sb, r4 - cmp r0, #0 - bne _0815FB78 - ldr r3, _0815FB74 - lsls r4, r5, #4 - adds r2, r4, r5 - lsls r2, r2, #2 - adds r2, r2, r3 - ldrh r1, [r6, #0xa] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - ldrh r0, [r2, #0x24] - subs r0, r0, r1 - strh r0, [r2, #0x24] - adds r2, r3, #0 - adds r3, r4, #0 - b _0815FB8E - .align 2, 0 -_0815FB6C: .4byte gUnknown_3005B60 -_0815FB70: .4byte gUnknown_20380D6 -_0815FB74: .4byte gUnknown_20205AC -_0815FB78: - ldr r2, _0815FBDC - lsls r3, r5, #4 - adds r1, r3, r5 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r0, [r6, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - ldrh r4, [r1, #0x24] - adds r0, r0, r4 - strh r0, [r1, #0x24] -_0815FB8E: - ldr r1, _0815FBE0 - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - adds r6, r0, r1 - ldrb r0, [r6, #0xa] - strh r0, [r6, #0xa] - adds r1, r3, r5 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r0, [r1, #0x24] - ldrh r1, [r1, #0x20] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - movs r1, #0x24 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _0815FC0E - ldr r0, _0815FBE4 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0815FBEC - lsls r4, r5, #0x10 - asrs r4, r4, #0x10 - ldr r0, _0815FBE8 - ldrb r0, [r0] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - bge _0815FC0E - b _0815FC02 - .align 2, 0 -_0815FBDC: .4byte gUnknown_20205AC -_0815FBE0: .4byte gUnknown_3005B60 -_0815FBE4: .4byte gUnknown_20380D6 -_0815FBE8: .4byte gUnknown_20380D7 -_0815FBEC: - lsls r4, r5, #0x10 - asrs r4, r4, #0x10 - ldr r0, _0815FC30 - ldrb r0, [r0] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - ble _0815FC0E -_0815FC02: - ldrh r0, [r6, #0x24] - adds r0, #1 - strh r0, [r6, #0x24] - ldr r1, _0815FC34 - ldr r0, _0815FC38 - strh r0, [r1, #0xe] -_0815FC0E: - lsls r0, r5, #0x10 - movs r2, #0x80 - lsls r2, r2, #0xe - adds r0, r0, r2 - movs r1, #0x98 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _0815FC20 - b _0815FDA0 -_0815FC20: - ldr r0, _0815FC3C - mov r1, sb - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0 - strh r0, [r1, #0xa] - b _0815FCB6 - .align 2, 0 -_0815FC30: .4byte gUnknown_20380D7 -_0815FC34: .4byte gUnknown_20380BE -_0815FC38: .4byte 0x0000FFFF -_0815FC3C: .4byte gUnknown_3005B60 -_0815FC40: - movs r0, #0 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r1, _0815FC8C - mov r3, r8 - lsls r4, r3, #2 - adds r0, r4, r3 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r0, [r0, #0x26] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #4 - adds r0, r0, r5 - lsls r0, r0, #2 - ldr r5, _0815FC90 - adds r0, r0, r5 - bl DestroySpriteAndFreeResources_ - ldr r0, _0815FC94 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - mov sb, r4 - cmp r0, #0 - bne _0815FC98 - lsls r1, r7, #4 - adds r1, r1, r7 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrh r0, [r1, #0x20] - rsbs r0, r0, #0 - subs r0, #0x20 - strh r0, [r1, #0x24] - b _0815FCAC - .align 2, 0 -_0815FC8C: .4byte gUnknown_3005B60 -_0815FC90: .4byte gUnknown_20205AC -_0815FC94: .4byte gUnknown_20380D6 -_0815FC98: - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrh r2, [r0, #0x20] - movs r4, #0x88 - lsls r4, r4, #1 - adds r1, r4, #0 - subs r1, r1, r2 - strh r1, [r0, #0x24] -_0815FCAC: - ldr r0, _0815FCC0 - mov r1, sb - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 -_0815FCB6: - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _0815FDA0 - .align 2, 0 -_0815FCC0: .4byte gUnknown_3005B60 -_0815FCC4: - movs r0, #0 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r1, _0815FD38 - mov r0, r8 - lsls r4, r0, #2 - adds r0, r4, r0 - lsls r0, r0, #3 - adds r2, r0, r1 - movs r1, #0x80 - lsls r1, r1, #4 - adds r0, r1, #0 - ldrh r3, [r2, #0xa] - adds r0, r0, r3 - strh r0, [r2, #0xa] - ldr r0, _0815FD3C - mov sl, r0 - ldrb r0, [r0] - str r2, [sp, #0x18] - bl GetBattlerSide - lsls r0, r0, #0x18 - mov sb, r4 - ldr r2, [sp, #0x18] - cmp r0, #0 - bne _0815FD44 - ldr r1, _0815FD40 - lsls r5, r7, #4 - adds r0, r5, r7 - lsls r0, r0, #2 - adds r6, r0, r1 - ldrh r0, [r2, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - ldrh r1, [r6, #0x24] - adds r0, r0, r1 - strh r0, [r6, #0x24] - movs r2, #0x24 - ldrsh r4, [r6, r2] - movs r3, #0x20 - ldrsh r0, [r6, r3] - adds r4, r4, r0 - mov r1, sl - ldrb r0, [r1] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r3, r5, #0 - cmp r4, r0 - blt _0815FD7C - movs r2, #0 - strh r2, [r6, #0x24] - b _0815FD7C - .align 2, 0 -_0815FD38: .4byte gUnknown_3005B60 -_0815FD3C: .4byte gUnknown_20380D6 -_0815FD40: .4byte gUnknown_20205AC -_0815FD44: - ldr r1, _0815FDB0 - lsls r5, r7, #4 - adds r0, r5, r7 - lsls r0, r0, #2 - adds r6, r0, r1 - ldrh r1, [r2, #0xa] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - ldrh r0, [r6, #0x24] - subs r0, r0, r1 - strh r0, [r6, #0x24] - movs r3, #0x24 - ldrsh r4, [r6, r3] - movs r1, #0x20 - ldrsh r0, [r6, r1] - adds r4, r4, r0 - mov r2, sl - ldrb r0, [r2] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r3, r5, #0 - cmp r4, r0 - bgt _0815FD7C - movs r4, #0 - strh r4, [r6, #0x24] -_0815FD7C: - ldr r1, _0815FDB4 - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r1, [r0, #0xa] - strh r1, [r0, #0xa] - ldr r1, _0815FDB0 - adds r0, r3, r7 - lsls r0, r0, #2 - adds r0, r0, r1 - movs r1, #0x24 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _0815FDA0 - mov r0, r8 - bl DestroyAnimVisualTask -_0815FDA0: - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0815FDB0: .4byte gUnknown_20205AC -_0815FDB4: .4byte gUnknown_3005B60 - thumb_func_end AnimTask_SnatchOpposingMonMove - - thumb_func_start sub_0815FDB8 -sub_0815FDB8: @ 0x0815FDB8 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x3c - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0815FDCA - cmp r0, #1 - beq _0815FE72 - b _0815FEF4 -_0815FDCA: - ldr r0, _0815FE50 - movs r2, #0xe - ldrsh r1, [r0, r2] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _0815FE64 - movs r0, #0x3f - bl BattleAnimAdjustPanning - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r0, #0x7a - bl PlaySE12WithPanning - ldr r0, _0815FE54 - ldrb r0, [r0] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #0x10 - strh r0, [r4, #0x22] - ldr r0, _0815FE58 - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x3c] - adds r0, #1 - strh r0, [r4, #0x3c] - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldr r0, _0815FE5C - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0815FEF4 - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0815FEF4 - movs r0, #1 - bl GetAnimBattlerSpriteId - ldr r2, _0815FE60 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - adds r1, #0x43 - ldrb r0, [r1] - subs r0, #1 - adds r1, r4, #0 - adds r1, #0x43 - strb r0, [r1] - b _0815FEF4 - .align 2, 0 -_0815FE50: .4byte gUnknown_20380BE -_0815FE54: .4byte gUnknown_20380D7 -_0815FE58: .4byte 0x0000FFE0 -_0815FE5C: .4byte gUnknown_20380D6 -_0815FE60: .4byte gUnknown_20205AC -_0815FE64: - adds r0, r4, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - b _0815FEF4 -_0815FE72: - movs r1, #0x30 - ldrsh r0, [r4, r1] - movs r2, #0x2e - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, #0x26] - ldrh r2, [r4, #0x30] - adds r0, r2, #5 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x7f - ble _0815FEA6 - movs r1, #0x2e - ldrsh r0, [r4, r1] - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x34] - adds r0, #1 - strh r0, [r4, #0x34] - adds r0, r2, #0 - subs r0, #0x7a - strh r0, [r4, #0x30] -_0815FEA6: - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r2, #0 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - ldr r0, _0815FED0 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0815FED4 - ldrh r2, [r4, #0x32] - lsls r1, r2, #0x10 - asrs r1, r1, #0x18 - ldrh r0, [r4, #0x24] - subs r0, r0, r1 - strh r0, [r4, #0x24] - adds r1, r2, #0 - b _0815FEE0 - .align 2, 0 -_0815FED0: .4byte gUnknown_20380D6 -_0815FED4: - ldrh r1, [r4, #0x32] - lsls r0, r1, #0x10 - asrs r0, r0, #0x18 - ldrh r2, [r4, #0x24] - adds r0, r0, r2 - strh r0, [r4, #0x24] -_0815FEE0: - movs r0, #0xff - ands r0, r1 - strh r0, [r4, #0x32] - movs r1, #0x34 - ldrsh r0, [r4, r1] - cmp r0, #2 - bne _0815FEF4 - adds r0, r4, #0 - bl DestroyAnimSprite -_0815FEF4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0815FDB8 - - thumb_func_start AnimTask_SnatchPartnerMove -AnimTask_SnatchPartnerMove: @ 0x0815FEFC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _0815FF24 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #0x26 - ldrsh r0, [r0, r2] - adds r3, r1, #0 - cmp r0, #4 - bls _0815FF18 - b _0816006A -_0815FF18: - lsls r0, r0, #2 - ldr r1, _0815FF28 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0815FF24: .4byte gUnknown_3005B60 -_0815FF28: .4byte _0815FF2C -_0815FF2C: @ jump table - .4byte _0815FF40 @ case 0 - .4byte _0815FF90 @ case 1 - .4byte _0815FFEC @ case 2 - .4byte _08160004 @ case 3 - .4byte _0816006A @ case 4 -_0815FF40: - ldr r0, _0815FF84 - ldrb r0, [r0] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - ldr r0, _0815FF88 - ldrb r0, [r0] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r2, r0, #0 - ldr r1, _0815FF8C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r1, r0, r1 - movs r0, #6 - strh r0, [r1, #8] - cmp r5, r2 - ble _0815FF76 - rsbs r0, r0, #0 - strh r0, [r1, #8] -_0815FF76: - strh r5, [r1, #0xa] - strh r2, [r1, #0xc] - ldrh r0, [r1, #0x26] - adds r0, #1 - strh r0, [r1, #0x26] - b _08160088 - .align 2, 0 -_0815FF84: .4byte gUnknown_20380D6 -_0815FF88: .4byte gUnknown_20380D7 -_0815FF8C: .4byte gUnknown_3005B60 -_0815FF90: - ldr r1, _0815FFCC - ldr r0, _0815FFD0 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r2, [r0] - ldr r1, _0815FFD4 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r1, r0, r1 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r2, r0, r3 - ldrh r0, [r2, #8] - ldrh r3, [r1, #0x24] - adds r0, r0, r3 - strh r0, [r1, #0x24] - movs r3, #8 - ldrsh r0, [r2, r3] - cmp r0, #0 - ble _0815FFD8 - movs r3, #0x20 - ldrsh r0, [r1, r3] - movs r3, #0x24 - ldrsh r1, [r1, r3] - adds r0, r0, r1 - movs r3, #0xc - ldrsh r1, [r2, r3] - b _0816005E - .align 2, 0 -_0815FFCC: .4byte gUnknown_2023E88 -_0815FFD0: .4byte gUnknown_20380D6 -_0815FFD4: .4byte gUnknown_20205AC -_0815FFD8: - movs r3, #0x20 - ldrsh r0, [r1, r3] - movs r3, #0x24 - ldrsh r1, [r1, r3] - adds r0, r0, r1 - movs r3, #0xc - ldrsh r1, [r2, r3] - cmp r0, r1 - bgt _08160088 - b _08160062 -_0815FFEC: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r3 - movs r2, #8 - ldrsh r1, [r0, r2] - rsbs r1, r1, #0 - strh r1, [r0, #8] - ldrh r1, [r0, #0x26] - adds r1, #1 - strh r1, [r0, #0x26] - b _08160088 -_08160004: - ldr r1, _08160044 - ldr r0, _08160048 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r2, [r0] - ldr r1, _0816004C - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r1, r0, r1 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r2, r0, r3 - ldrh r0, [r2, #8] - ldrh r3, [r1, #0x24] - adds r0, r0, r3 - strh r0, [r1, #0x24] - movs r3, #8 - ldrsh r0, [r2, r3] - cmp r0, #0 - bge _08160050 - movs r3, #0x20 - ldrsh r0, [r1, r3] - movs r3, #0x24 - ldrsh r1, [r1, r3] - adds r0, r0, r1 - movs r3, #0xa - ldrsh r1, [r2, r3] - cmp r0, r1 - bgt _08160088 - b _08160062 - .align 2, 0 -_08160044: .4byte gUnknown_2023E88 -_08160048: .4byte gUnknown_20380D6 -_0816004C: .4byte gUnknown_20205AC -_08160050: - movs r3, #0x20 - ldrsh r0, [r1, r3] - movs r3, #0x24 - ldrsh r1, [r1, r3] - adds r0, r0, r1 - movs r3, #0xa - ldrsh r1, [r2, r3] -_0816005E: - cmp r0, r1 - blt _08160088 -_08160062: - ldrh r0, [r2, #0x26] - adds r0, #1 - strh r0, [r2, #0x26] - b _08160088 -_0816006A: - ldr r1, _08160090 - ldr r0, _08160094 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r2, [r0] - ldr r1, _08160098 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #0x24] - adds r0, r4, #0 - bl DestroyAnimVisualTask -_08160088: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08160090: .4byte gUnknown_2023E88 -_08160094: .4byte gUnknown_20380D6 -_08160098: .4byte gUnknown_20205AC - thumb_func_end AnimTask_SnatchPartnerMove - - thumb_func_start AnimTask_TeeterDanceMovement -AnimTask_TeeterDanceMovement: @ 0x0816009C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _08160104 - adds r4, r1, r0 - movs r0, #0 - bl GetAnimBattlerSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r5, #0 - strh r0, [r4, #0xe] - ldr r0, _08160108 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - movs r2, #1 - rsbs r2, r2, #0 - adds r1, r2, #0 - cmp r0, #0 - bne _081600D0 - movs r1, #1 -_081600D0: - strh r1, [r4, #0x10] - ldr r2, _0816010C - movs r0, #0xe - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0, #0x22] - strh r0, [r4, #0x14] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0, #0x20] - strh r0, [r4, #0x12] - strh r5, [r4, #0x1a] - strh r5, [r4, #0x1e] - movs r0, #1 - strh r0, [r4, #0x1c] - strh r5, [r4, #0x20] - ldr r0, _08160110 - str r0, [r4] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08160104: .4byte gUnknown_3005B60 -_08160108: .4byte gUnknown_20380D6 -_0816010C: .4byte gUnknown_20205AC -_08160110: .4byte AnimTask_TeeterDanceMovementStep - thumb_func_end AnimTask_TeeterDanceMovement - - thumb_func_start AnimTask_TeeterDanceMovementStep -AnimTask_TeeterDanceMovementStep: @ 0x08160114 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _08160138 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _081601BC - cmp r0, #1 - bgt _0816013C - cmp r0, #0 - beq _08160142 - b _08160212 - .align 2, 0 -_08160138: .4byte gUnknown_3005B60 -_0816013C: - cmp r0, #2 - beq _0816020C - b _08160212 -_08160142: - ldrh r0, [r4, #0x1e] - adds r0, #8 - movs r2, #0xff - ands r0, r2 - strh r0, [r4, #0x1e] - ldr r5, _081601B4 - movs r6, #0xe - ldrsh r0, [r4, r6] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldr r3, _081601B8 - movs r6, #0x1e - ldrsh r0, [r4, r6] - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x15 - strh r0, [r1, #0x24] - ldrh r0, [r4, #0x1a] - adds r0, #2 - ands r0, r2 - strh r0, [r4, #0x1a] - movs r1, #0xe - ldrsh r0, [r4, r1] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r5 - movs r6, #0x1a - ldrsh r0, [r4, r6] - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x13 - ldrh r1, [r4, #0x10] - muls r0, r1, r0 - ldrh r1, [r4, #0x12] - adds r0, r0, r1 - strh r0, [r2, #0x20] - movs r6, #0x1a - ldrsh r0, [r4, r6] - cmp r0, #0 - bne _08160212 - movs r0, #0xe - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrh r1, [r4, #0x12] - strh r1, [r0, #0x20] - b _081601FC - .align 2, 0 -_081601B4: .4byte gUnknown_20205AC -_081601B8: .4byte gUnknown_82FA8CC -_081601BC: - ldrh r0, [r4, #0x1e] - adds r0, #8 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x1e] - ldr r3, _08160204 - movs r1, #0xe - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r2, _08160208 - movs r5, #0x1e - ldrsh r0, [r4, r5] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x15 - strh r0, [r1, #0x24] - movs r6, #0x1e - ldrsh r2, [r4, r6] - cmp r2, #0 - bne _08160212 - movs r1, #0xe - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - strh r2, [r1, #0x24] -_081601FC: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _08160212 - .align 2, 0 -_08160204: .4byte gUnknown_20205AC -_08160208: .4byte gUnknown_82FA8CC -_0816020C: - adds r0, r2, #0 - bl DestroyAnimVisualTask -_08160212: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end AnimTask_TeeterDanceMovementStep - - thumb_func_start AnimKnockOffStrikeStep -AnimKnockOffStrikeStep: @ 0x08160218 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0816026C - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - ldrh r0, [r4, #0x2e] - ldrh r1, [r4, #0x30] - adds r0, r0, r1 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x30] - movs r1, #0x30 - ldrsh r0, [r4, r1] - movs r1, #0x14 - bl Cos - strh r0, [r4, #0x24] - movs r1, #0x30 - ldrsh r0, [r4, r1] - movs r1, #0x14 - bl Sin - strh r0, [r4, #0x26] - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0816025E - adds r0, r4, #0 - bl DestroyAnimSprite -_0816025E: - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816026C: .4byte gUnknown_20380D7 - thumb_func_end AnimKnockOffStrikeStep - - thumb_func_start AnimKnockOffStrike -AnimKnockOffStrike: @ 0x08160270 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _081602A8 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081602B4 - ldr r2, _081602AC - ldrh r0, [r4, #0x20] - ldrh r1, [r2] - subs r0, r0, r1 - strh r0, [r4, #0x20] - ldrh r0, [r2, #2] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] - ldr r0, _081602B0 - strh r0, [r4, #0x2e] - movs r0, #0xc0 - strh r0, [r4, #0x30] - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAffineAnim - b _081602CE - .align 2, 0 -_081602A8: .4byte gUnknown_20380D7 -_081602AC: .4byte gUnknown_20380BE -_081602B0: .4byte 0x0000FFF5 -_081602B4: - movs r0, #0xb - strh r0, [r4, #0x2e] - movs r0, #0xc0 - strh r0, [r4, #0x30] - ldr r1, _081602D8 - ldrh r0, [r1] - ldrh r2, [r4, #0x20] - adds r0, r0, r2 - strh r0, [r4, #0x20] - ldrh r0, [r1, #2] - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] -_081602CE: - ldr r0, _081602DC - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081602D8: .4byte gUnknown_20380BE -_081602DC: .4byte AnimKnockOffStrikeStep - thumb_func_end AnimKnockOffStrike - - thumb_func_start AnimRecycle -AnimRecycle: @ 0x081602E0 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08160324 - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x20] - ldrb r0, [r4] - movs r1, #2 - bl GetBattlerSpriteCoordAttr - strh r0, [r5, #0x22] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xf - bgt _0816030A - movs r0, #0x10 - strh r0, [r5, #0x22] -_0816030A: - movs r0, #0 - strh r0, [r5, #0x3a] - movs r1, #0x10 - strh r1, [r5, #0x3c] - ldr r0, _08160328 - str r0, [r5, #0x1c] - lsls r1, r1, #8 - movs r0, #0x52 - bl SetGpuReg - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08160324: .4byte gUnknown_20380D6 -_08160328: .4byte AnimRecycleStep - thumb_func_end AnimRecycle - - thumb_func_start AnimRecycleStep -AnimRecycleStep: @ 0x0816032C - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r1, [r4, r0] - cmp r1, #1 - beq _081603A4 - cmp r1, #1 - bgt _08160342 - cmp r1, #0 - beq _0816034C - b _08160420 -_08160342: - cmp r1, #2 - beq _081603BA - cmp r1, #3 - beq _0816041A - b _08160420 -_0816034C: - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _08160420 - strh r1, [r4, #0x2e] - ldrh r1, [r4, #0x30] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08160376 - ldrh r2, [r4, #0x3a] - movs r3, #0x3a - ldrsh r0, [r4, r3] - cmp r0, #0xf - bgt _08160384 - adds r0, r2, #1 - strh r0, [r4, #0x3a] - b _08160384 -_08160376: - ldrh r2, [r4, #0x3c] - movs r3, #0x3c - ldrsh r0, [r4, r3] - cmp r0, #0 - beq _08160384 - subs r0, r2, #1 - strh r0, [r4, #0x3c] -_08160384: - adds r0, r1, #1 - strh r0, [r4, #0x30] - ldrh r1, [r4, #0x3c] - lsls r1, r1, #8 - ldrh r0, [r4, #0x3a] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r1, #0x3c - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08160420 - b _08160412 -_081603A4: - ldrh r0, [r4, #0x2e] - adds r0, #1 - movs r1, #0 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xa - bne _08160420 - strh r1, [r4, #0x2e] - strh r1, [r4, #0x30] - b _08160412 -_081603BA: - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _08160420 - movs r0, #0 - strh r0, [r4, #0x2e] - ldrh r1, [r4, #0x30] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _081603E6 - ldrh r2, [r4, #0x3a] - movs r3, #0x3a - ldrsh r0, [r4, r3] - cmp r0, #0 - beq _081603F4 - subs r0, r2, #1 - strh r0, [r4, #0x3a] - b _081603F4 -_081603E6: - ldrh r2, [r4, #0x3c] - movs r3, #0x3c - ldrsh r0, [r4, r3] - cmp r0, #0xf - bgt _081603F4 - adds r0, r2, #1 - strh r0, [r4, #0x3c] -_081603F4: - adds r0, r1, #1 - strh r0, [r4, #0x30] - ldrh r1, [r4, #0x3c] - lsls r1, r1, #8 - ldrh r0, [r4, #0x3a] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r1, #0x3c - ldrsh r0, [r4, r1] - cmp r0, #0x10 - bne _08160420 -_08160412: - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - b _08160420 -_0816041A: - adds r0, r4, #0 - bl DestroySpriteAndMatrix -_08160420: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AnimRecycleStep - - thumb_func_start AnimTask_GetWeather -AnimTask_GetWeather: @ 0x08160428 - push {lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r2, _08160444 - movs r0, #0 - strh r0, [r2, #0xe] - ldr r0, _08160448 - ldrh r1, [r0] - movs r0, #0x60 - ands r0, r1 - cmp r0, #0 - beq _0816044C - movs r0, #1 - b _0816046E - .align 2, 0 -_08160444: .4byte gUnknown_20380BE -_08160448: .4byte gUnknown_20380BC -_0816044C: - movs r0, #7 - ands r0, r1 - cmp r0, #0 - beq _08160458 - movs r0, #2 - b _0816046E -_08160458: - movs r0, #0x18 - ands r0, r1 - cmp r0, #0 - beq _08160464 - movs r0, #3 - b _0816046E -_08160464: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08160470 - movs r0, #4 -_0816046E: - strh r0, [r2, #0xe] -_08160470: - adds r0, r3, #0 - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AnimTask_GetWeather - - thumb_func_start sub_0816047C -sub_0816047C: @ 0x0816047C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _081604B4 - adds r4, r4, r0 - movs r0, #0 - strh r0, [r4, #8] - ldr r0, _081604B8 - ldrb r0, [r0] - bl GetAnimBattlerSpriteId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - strh r1, [r4, #0x26] - ldr r2, _081604BC - adds r0, r4, #0 - bl PrepareAffineAnimInTaskData - ldr r0, _081604C0 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081604B4: .4byte gUnknown_3005B60 -_081604B8: .4byte gUnknown_20380BE -_081604BC: .4byte gUnknown_85AD7D0 -_081604C0: .4byte AnimTask_SlackOffSquishStep - thumb_func_end sub_0816047C - - thumb_func_start AnimTask_SlackOffSquishStep -AnimTask_SlackOffSquishStep: @ 0x081604C4 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r2, _0816051C - adds r3, r0, r2 - ldrh r0, [r3, #8] - adds r1, r0, #1 - movs r5, #0 - strh r1, [r3, #8] - subs r0, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r6, r2, #0 - cmp r0, #0x16 - bhi _08160528 - ldrh r0, [r3, #0xa] - adds r0, #1 - strh r0, [r3, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - ble _08160538 - strh r5, [r3, #0xa] - ldrh r0, [r3, #0xc] - adds r0, #1 - strh r0, [r3, #0xc] - movs r5, #1 - ands r0, r5 - cmp r0, #0 - bne _08160528 - ldr r2, _08160520 - movs r0, #0x26 - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, _08160524 - strh r1, [r0, #0x24] - b _08160538 - .align 2, 0 -_0816051C: .4byte gUnknown_3005B60 -_08160520: .4byte gUnknown_20205AC -_08160524: .4byte 0x0000FFFF -_08160528: - ldr r2, _08160558 - movs r0, #0x26 - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r5, [r0, #0x24] -_08160538: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r6 - bl RunAffineAnimFromTaskData - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08160550 - adds r0, r4, #0 - bl DestroyAnimVisualTask -_08160550: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08160558: .4byte gUnknown_20205AC - thumb_func_end AnimTask_SlackOffSquishStep - - thumb_func_start VBlankCB_MoveRelearner -VBlankCB_MoveRelearner: @ 0x0816055C - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end VBlankCB_MoveRelearner - - thumb_func_start TeachMoveRelearnerMove -TeachMoveRelearnerMove: @ 0x08160570 - push {lr} - sub sp, #4 - bl sub_080987DC - ldr r0, _08160598 - movs r1, #0xa - bl CreateTask - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_08160598: .4byte sub_0816059C - thumb_func_end TeachMoveRelearnerMove - - thumb_func_start sub_0816059C -sub_0816059C: @ 0x0816059C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _081605C8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081605C0 - ldr r0, _081605CC - bl SetMainCallback2 - ldr r1, _081605D0 - ldr r0, _081605D4 - str r0, [r1] - adds r0, r4, #0 - bl DestroyTask -_081605C0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081605C8: .4byte gUnknown_2037C74 -_081605CC: .4byte CB2_InitLearnMove -_081605D0: .4byte gUnknown_3005B0C -_081605D4: .4byte FieldCallback_ReturnToEventScript2 - thumb_func_end sub_0816059C - - thumb_func_start CB2_InitLearnMove -CB2_InitLearnMove: @ 0x081605D8 - push {r4, r5, r6, lr} - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetTasks - bl sub_08199640 - ldr r6, _08160658 - movs r0, #0x8c - lsls r0, r0, #1 - bl AllocZeroed - str r0, [r6] - ldr r1, _0816065C - ldrh r1, [r1] - adds r0, #0x44 - movs r5, #0 - strb r1, [r0] - ldr r0, _08160660 - bl SetVBlankCallback - bl InitMoveRelearnerBackgroundLayers - movs r0, #0 - bl sub_081D1E40 - ldr r4, _08160664 - movs r0, #0 - strh r5, [r4] - strh r5, [r4, #2] - strb r0, [r4, #4] - bl sub_08161198 - ldr r0, _08160668 - bl LoadSpriteSheet - ldr r0, _0816066C - bl LoadSpritePalette - bl CreateUISprites - ldr r0, _08160670 - ldrh r1, [r4] - ldrh r2, [r4, #2] - bl ListMenuInit - ldr r1, [r6] - movs r2, #0x89 - lsls r2, r2, #1 - adds r1, r1, r2 - strb r0, [r1] - movs r0, #0 - movs r1, #0 - movs r2, #2 - bl FillPalette - ldr r0, _08160674 - bl SetMainCallback2 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08160658: .4byte gUnknown_203B900 -_0816065C: .4byte gUnknown_2037280 -_08160660: .4byte VBlankCB_MoveRelearner -_08160664: .4byte gUnknown_203B904 -_08160668: .4byte gUnknown_85ADAF4 -_0816066C: .4byte gUnknown_85ADAFC -_08160670: .4byte gUnknown_3006050 -_08160674: .4byte sub_08160764 - thumb_func_end CB2_InitLearnMove - - thumb_func_start CB2_InitLearnMoveReturnFromSelectMove -CB2_InitLearnMoveReturnFromSelectMove: @ 0x08160678 - push {r4, r5, lr} - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetTasks - bl sub_08199640 - ldr r5, _08160700 - movs r0, #0x8c - lsls r0, r0, #1 - bl AllocZeroed - str r0, [r5] - movs r1, #0x1c - strb r1, [r0] - ldr r0, [r5] - ldr r1, _08160704 - ldrh r1, [r1] - adds r0, #0x44 - strb r1, [r0] - ldr r0, [r5] - ldr r1, _08160708 - ldrh r1, [r1] - adds r0, #0x45 - strb r1, [r0] - ldr r0, _0816070C - bl SetVBlankCallback - bl InitMoveRelearnerBackgroundLayers - ldr r4, _08160710 - ldrb r0, [r4, #4] - bl sub_081D1E40 - bl sub_08161198 - ldr r0, _08160714 - bl LoadSpriteSheet - ldr r0, _08160718 - bl LoadSpritePalette - bl CreateUISprites - ldr r0, _0816071C - ldrh r1, [r4] - ldrh r2, [r4, #2] - bl ListMenuInit - ldr r1, [r5] - movs r2, #0x89 - lsls r2, r2, #1 - adds r1, r1, r2 - strb r0, [r1] - movs r0, #0 - movs r1, #0 - movs r2, #2 - bl FillPalette - ldr r0, _08160720 - bl SetMainCallback2 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08160700: .4byte gUnknown_203B900 -_08160704: .4byte gUnknown_2037280 -_08160708: .4byte gUnknown_2037282 -_0816070C: .4byte VBlankCB_MoveRelearner -_08160710: .4byte gUnknown_203B904 -_08160714: .4byte gUnknown_85ADAF4 -_08160718: .4byte gUnknown_85ADAFC -_0816071C: .4byte gUnknown_3006050 -_08160720: .4byte sub_08160764 - thumb_func_end CB2_InitLearnMoveReturnFromSelectMove - - thumb_func_start InitMoveRelearnerBackgroundLayers -InitMoveRelearnerBackgroundLayers: @ 0x08160724 - push {lr} - bl ResetVramOamAndBgCntRegs - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _08160760 - movs r0, #0 - movs r2, #2 - bl InitBgsFromTemplates - bl ResetAllBgsCoordinates - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 -_08160760: .4byte gUnknown_85ADB6C - thumb_func_end InitMoveRelearnerBackgroundLayers - - thumb_func_start sub_08160764 -sub_08160764: @ 0x08160764 - push {lr} - bl sub_081607A0 - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08160764 - - thumb_func_start FormatAndPrintText -FormatAndPrintText: @ 0x08160784 - push {r4, lr} - adds r1, r0, #0 - ldr r4, _0816079C - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - bl MoveRelearnerPrintText - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816079C: .4byte gUnknown_2021C7C - thumb_func_end FormatAndPrintText - - thumb_func_start sub_081607A0 -sub_081607A0: @ 0x081607A0 - push {r4, r5, r6, r7, lr} - sub sp, #4 - ldr r1, _081607BC - ldr r0, [r1] - ldrb r0, [r0] - adds r7, r1, #0 - cmp r0, #0x21 - bls _081607B2 - b _08160DB6 -_081607B2: - lsls r0, r0, #2 - ldr r1, _081607C0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081607BC: .4byte gUnknown_203B900 -_081607C0: .4byte _081607C4 -_081607C4: @ jump table - .4byte _0816084C @ case 0 - .4byte _08160866 @ case 1 - .4byte _08160880 @ case 2 - .4byte _08160888 @ case 3 - .4byte _08160890 @ case 4 - .4byte _08160898 @ case 5 - .4byte _081608B4 @ case 6 - .4byte _08160DB6 @ case 7 - .4byte _081608BC @ case 8 - .4byte _081608DC @ case 9 - .4byte _08160DB6 @ case 10 - .4byte _08160DB6 @ case 11 - .4byte _08160978 @ case 12 - .4byte _08160998 @ case 13 - .4byte _08160BEC @ case 14 - .4byte _08160C0C @ case 15 - .4byte _081609EC @ case 16 - .4byte _08160A04 @ case 17 - .4byte _08160A20 @ case 18 - .4byte _08160B50 @ case 19 - .4byte _08160B7C @ case 20 - .4byte _08160BCC @ case 21 - .4byte _08160BDA @ case 22 - .4byte _08160DB6 @ case 23 - .4byte _08160A60 @ case 24 - .4byte _08160A94 @ case 25 - .4byte _08160AB4 @ case 26 - .4byte _08160B10 @ case 27 - .4byte _08160C30 @ case 28 - .4byte _08160C7C @ case 29 - .4byte _08160D38 @ case 30 - .4byte _08160D64 @ case 31 - .4byte _08160D84 @ case 32 - .4byte _08160D9C @ case 33 -_0816084C: - ldr r1, [r7] - ldrb r0, [r1] - adds r0, #1 - movs r4, #0 - strb r0, [r1] - movs r0, #0 - bl HideHeartSpritesAndShowTeachMoveText - movs r0, #1 - rsbs r0, r0, #0 - str r4, [sp] - movs r1, #0 - b _08160BE2 -_08160866: - ldr r0, _0816087C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08160874 - b _08160DB6 -_08160874: - ldr r1, [r7] - movs r0, #4 - b _08160DB4 - .align 2, 0 -_0816087C: .4byte gUnknown_2037C74 -_08160880: - ldr r1, [r7] - ldrb r0, [r1] - adds r0, #1 - b _08160DB4 -_08160888: - movs r0, #0 - bl HideHeartSpritesAndShowTeachMoveText - b _0816089E -_08160890: - movs r0, #0 - bl sub_08160E70 - b _08160DB6 -_08160898: - movs r0, #0 - bl sub_08160F94 -_0816089E: - ldr r0, _081608B0 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - bl AddScrollArrows - b _08160DB6 - .align 2, 0 -_081608B0: .4byte gUnknown_203B900 -_081608B4: - movs r0, #1 - bl sub_08160E70 - b _08160DB6 -_081608BC: - bl MoveRelearnerRunTextPrinters - lsls r0, r0, #0x10 - cmp r0, #0 - beq _081608C8 - b _08160DB6 -_081608C8: - bl MoveRelearnerCreateYesNoMenu - ldr r0, _081608D8 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, #1 - b _08160DB4 - .align 2, 0 -_081608D8: .4byte gUnknown_203B900 -_081608DC: - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - bne _0816093E - ldr r5, _08160924 - ldr r0, [r5] - adds r0, #0x44 - ldrb r1, [r0] - movs r0, #0x64 - adds r4, r1, #0 - muls r4, r0, r4 - ldr r0, _08160928 - adds r4, r4, r0 - bl GetCurrentSelectedMove - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl GiveMoveToMon - lsls r0, r0, #0x10 - ldr r1, _0816092C - cmp r0, r1 - beq _08160938 - ldr r0, _08160930 - bl FormatAndPrintText - ldr r1, _08160934 - movs r0, #1 - strh r0, [r1] - ldr r1, [r5] - movs r0, #0x1f - b _08160DB4 - .align 2, 0 -_08160924: .4byte gUnknown_203B900 -_08160928: .4byte gUnknown_2024190 -_0816092C: .4byte 0xFFFF0000 -_08160930: .4byte gUnknown_85AD9C0 -_08160934: .4byte gUnknown_2037280 -_08160938: - ldr r1, [r5] - movs r0, #0x10 - b _08160DB4 -_0816093E: - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0816094C - cmp r1, #1 - beq _0816094C - b _08160DB6 -_0816094C: - ldr r0, _0816095C - ldrb r0, [r0, #4] - cmp r0, #0 - bne _08160964 - ldr r0, _08160960 - ldr r1, [r0] - movs r0, #3 - b _08160DB4 - .align 2, 0 -_0816095C: .4byte gUnknown_203B904 -_08160960: .4byte gUnknown_203B900 -_08160964: - cmp r0, #1 - beq _0816096A - b _08160DB6 -_0816096A: - ldr r0, _08160974 - ldr r1, [r0] - movs r0, #5 - b _08160DB4 - .align 2, 0 -_08160974: .4byte gUnknown_203B900 -_08160978: - bl MoveRelearnerRunTextPrinters - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08160984 - b _08160DB6 -_08160984: - bl MoveRelearnerCreateYesNoMenu - ldr r0, _08160994 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, #1 - b _08160DB4 - .align 2, 0 -_08160994: .4byte gUnknown_203B900 -_08160998: - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - bne _081609B0 - ldr r0, _081609AC - strh r1, [r0] - b _08160DAE - .align 2, 0 -_081609AC: .4byte gUnknown_2037280 -_081609B0: - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _081609BE - cmp r1, #1 - beq _081609BE - b _08160DB6 -_081609BE: - ldr r0, _081609D0 - ldrb r0, [r0, #4] - cmp r0, #0 - bne _081609D8 - ldr r0, _081609D4 - ldr r1, [r0] - movs r0, #3 - b _08160DB4 - .align 2, 0 -_081609D0: .4byte gUnknown_203B904 -_081609D4: .4byte gUnknown_203B900 -_081609D8: - cmp r0, #1 - beq _081609DE - b _08160DB6 -_081609DE: - ldr r0, _081609E8 - ldr r1, [r0] - movs r0, #5 - b _08160DB4 - .align 2, 0 -_081609E8: .4byte gUnknown_203B900 -_081609EC: - ldr r0, _081609FC - bl FormatAndPrintText - ldr r0, _08160A00 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, #1 - b _08160DB4 - .align 2, 0 -_081609FC: .4byte gUnknown_85AD9D4 -_08160A00: .4byte gUnknown_203B900 -_08160A04: - bl MoveRelearnerRunTextPrinters - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08160A10 - b _08160DB6 -_08160A10: - bl MoveRelearnerCreateYesNoMenu - ldr r0, _08160A1C - ldr r1, [r0] - movs r0, #0x12 - b _08160DB4 - .align 2, 0 -_08160A1C: .4byte gUnknown_203B900 -_08160A20: - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - bne _08160A44 - ldr r0, _08160A3C - bl FormatAndPrintText - ldr r0, _08160A40 - ldr r1, [r0] - movs r0, #0x13 - b _08160DB4 - .align 2, 0 -_08160A3C: .4byte gUnknown_85ADAC9 -_08160A40: .4byte gUnknown_203B900 -_08160A44: - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _08160A52 - cmp r1, #1 - beq _08160A52 - b _08160DB6 -_08160A52: - ldr r0, _08160A5C - ldr r1, [r0] - movs r0, #0x18 - b _08160DB4 - .align 2, 0 -_08160A5C: .4byte gUnknown_203B900 -_08160A60: - ldr r4, _08160A84 - bl GetCurrentSelectedMove - adds r1, r0, #0 - lsls r1, r1, #3 - ldr r0, _08160A88 - adds r1, r1, r0 - adds r0, r4, #0 - bl StringCopy - ldr r0, _08160A8C - bl FormatAndPrintText - ldr r0, _08160A90 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, #1 - b _08160DB4 - .align 2, 0 -_08160A84: .4byte gUnknown_2021C54 -_08160A88: .4byte gUnknown_82EACC4 -_08160A8C: .4byte gUnknown_85ADA27 -_08160A90: .4byte gUnknown_203B900 -_08160A94: - bl MoveRelearnerRunTextPrinters - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08160AA0 - b _08160DB6 -_08160AA0: - bl MoveRelearnerCreateYesNoMenu - ldr r0, _08160AB0 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, #1 - b _08160DB4 - .align 2, 0 -_08160AB0: .4byte gUnknown_203B900 -_08160AB4: - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - bne _08160ACC - ldr r0, _08160AC8 - ldr r1, [r0] - movs r0, #0x1b - b _08160DB4 - .align 2, 0 -_08160AC8: .4byte gUnknown_203B900 -_08160ACC: - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _08160ADA - cmp r1, #1 - beq _08160ADA - b _08160DB6 -_08160ADA: - ldr r0, _08160AF0 - ldrb r0, [r0, #4] - cmp r0, #0 - bne _08160AF8 - ldr r2, _08160AF4 - ldr r1, [r2] - movs r0, #3 - strb r0, [r1] - adds r7, r2, #0 - b _08160B04 - .align 2, 0 -_08160AF0: .4byte gUnknown_203B904 -_08160AF4: .4byte gUnknown_203B900 -_08160AF8: - ldr r7, _08160B0C - cmp r0, #1 - bne _08160B04 - ldr r1, [r7] - movs r0, #5 - strb r0, [r1] -_08160B04: - ldr r1, [r7] - movs r0, #0x10 - b _08160DB4 - .align 2, 0 -_08160B0C: .4byte gUnknown_203B900 -_08160B10: - bl MoveRelearnerRunTextPrinters - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08160B1C - b _08160DB6 -_08160B1C: - movs r0, #3 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r0, _08160B34 - ldrb r0, [r0, #4] - cmp r0, #0 - bne _08160B3C - ldr r0, _08160B38 - ldr r1, [r0] - movs r0, #3 - b _08160DB4 - .align 2, 0 -_08160B34: .4byte gUnknown_203B904 -_08160B38: .4byte gUnknown_203B900 -_08160B3C: - cmp r0, #1 - beq _08160B42 - b _08160DB6 -_08160B42: - ldr r0, _08160B4C - ldr r1, [r0] - movs r0, #5 - b _08160DB4 - .align 2, 0 -_08160B4C: .4byte gUnknown_203B900 -_08160B50: - bl MoveRelearnerRunTextPrinters - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0 - beq _08160B5E - b _08160DB6 -_08160B5E: - ldr r0, _08160B78 - ldr r1, [r0] - movs r0, #0x14 - strb r0, [r1] - subs r0, #0x15 - str r2, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - b _08160DB6 - .align 2, 0 -_08160B78: .4byte gUnknown_203B900 -_08160B7C: - ldr r0, _08160BB8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08160B8A - b _08160DB6 -_08160B8A: - bl GetCurrentSelectedMove - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _08160BBC - ldr r1, _08160BC0 - ldr r1, [r1] - adds r1, #0x44 - ldrb r1, [r1] - ldr r2, _08160BC4 - ldrb r2, [r2] - subs r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r3, _08160BC8 - str r0, [sp] - adds r0, r4, #0 - bl ShowSelectMovePokemonSummaryScreen - bl FreeMoveRelearnerResources - b _08160DB6 - .align 2, 0 -_08160BB8: .4byte gUnknown_2037C74 -_08160BBC: .4byte gUnknown_2024190 -_08160BC0: .4byte gUnknown_203B900 -_08160BC4: .4byte gUnknown_202418D -_08160BC8: .4byte CB2_InitLearnMoveReturnFromSelectMove -_08160BCC: - bl MoveRelearnerRunTextPrinters - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08160BD8 - b _08160DB6 -_08160BD8: - b _08160DAE -_08160BDA: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] -_08160BE2: - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - b _08160DB6 -_08160BEC: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _08160C08 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, #1 - b _08160DB4 - .align 2, 0 -_08160C08: .4byte gUnknown_203B900 -_08160C0C: - ldr r0, _08160C28 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08160C1A - b _08160DB6 -_08160C1A: - bl FreeMoveRelearnerResources - ldr r0, _08160C2C - bl SetMainCallback2 - b _08160DB6 - .align 2, 0 -_08160C28: .4byte gUnknown_2037C74 -_08160C2C: .4byte sub_08085A30 -_08160C30: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r0, _08160C5C - ldr r1, [r0] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r0, _08160C60 - ldrb r0, [r0, #4] - cmp r0, #0 - bne _08160C64 - movs r0, #1 - bl HideHeartSpritesAndShowTeachMoveText - b _08160C6E - .align 2, 0 -_08160C5C: .4byte gUnknown_203B900 -_08160C60: .4byte gUnknown_203B904 -_08160C64: - cmp r0, #1 - bne _08160C6E - movs r0, #1 - bl sub_08160F94 -_08160C6E: - bl RemoveScrollArrows - movs r0, #3 - movs r1, #2 - bl CopyWindowToVram - b _08160DB6 -_08160C7C: - ldr r0, _08160C9C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08160C8A - b _08160DB6 -_08160C8A: - ldr r1, [r7] - adds r2, r1, #0 - adds r2, #0x45 - ldrb r0, [r2] - cmp r0, #4 - bne _08160CA0 - movs r0, #0x18 - b _08160DB4 - .align 2, 0 -_08160C9C: .4byte gUnknown_2037C74 -_08160CA0: - adds r0, r1, #0 - adds r0, #0x44 - ldrb r0, [r0] - movs r4, #0x64 - muls r0, r4, r0 - ldr r5, _08160D20 - adds r0, r0, r5 - ldrb r1, [r2] - adds r1, #0xd - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x10 - ldr r0, _08160D24 - lsrs r1, r1, #0xd - ldr r6, _08160D28 - adds r1, r1, r6 - bl StringCopy - ldr r1, [r7] - adds r0, r1, #0 - adds r0, #0x44 - ldrb r0, [r0] - muls r0, r4, r0 - adds r0, r0, r5 - adds r1, #0x45 - ldrb r1, [r1] - bl RemoveMonPPBonus - ldr r0, [r7] - adds r0, #0x44 - ldrb r0, [r0] - muls r4, r0, r4 - adds r4, r4, r5 - bl GetCurrentSelectedMove - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, [r7] - adds r0, #0x45 - ldrb r2, [r0] - adds r0, r4, #0 - bl SetMonMoveSlot - ldr r4, _08160D2C - bl GetCurrentSelectedMove - adds r1, r0, #0 - lsls r1, r1, #3 - adds r1, r1, r6 - adds r0, r4, #0 - bl StringCopy - ldr r0, _08160D30 - bl FormatAndPrintText - ldr r1, [r7] - movs r0, #0x1e - strb r0, [r1] - ldr r1, _08160D34 - movs r0, #1 - strh r0, [r1] - b _08160DB6 - .align 2, 0 -_08160D20: .4byte gUnknown_2024190 -_08160D24: .4byte gUnknown_2021C68 -_08160D28: .4byte gUnknown_82EACC4 -_08160D2C: .4byte gUnknown_2021C54 -_08160D30: .4byte gUnknown_85ADA42 -_08160D34: .4byte gUnknown_2037280 -_08160D38: - bl MoveRelearnerRunTextPrinters - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08160DB6 - ldr r0, _08160D58 - bl FormatAndPrintText - ldr r0, _08160D5C - ldr r1, [r0] - movs r0, #0x1f - strb r0, [r1] - ldr r0, _08160D60 - bl PlayFanfare - b _08160DB6 - .align 2, 0 -_08160D58: .4byte gUnknown_85ADA67 -_08160D5C: .4byte gUnknown_203B900 -_08160D60: .4byte 0x0000016F -_08160D64: - bl MoveRelearnerRunTextPrinters - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08160DB6 - ldr r0, _08160D7C - bl PlayFanfare - ldr r0, _08160D80 - ldr r1, [r0] - movs r0, #0x20 - b _08160DB4 - .align 2, 0 -_08160D7C: .4byte 0x0000016F -_08160D80: .4byte gUnknown_203B900 -_08160D84: - bl IsFanfareTaskInactive - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08160DB6 - ldr r0, _08160D98 - ldr r1, [r0] - movs r0, #0x21 - b _08160DB4 - .align 2, 0 -_08160D98: .4byte gUnknown_203B900 -_08160D9C: - ldr r0, _08160DC0 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08160DB6 - movs r0, #5 - bl sub_080A306C -_08160DAE: - ldr r0, _08160DC4 - ldr r1, [r0] - movs r0, #0xe -_08160DB4: - strb r0, [r1] -_08160DB6: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08160DC0: .4byte gUnknown_3002360 -_08160DC4: .4byte gUnknown_203B900 - thumb_func_end sub_081607A0 - - thumb_func_start FreeMoveRelearnerResources -FreeMoveRelearnerResources: @ 0x08160DC8 - push {r4, lr} - bl RemoveScrollArrows - ldr r4, _08160E00 - ldr r0, [r4] - movs r1, #0x89 - lsls r1, r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - ldr r1, _08160E04 - adds r2, r1, #2 - bl DestroyListMenuTask - bl FreeAllWindowBuffers - ldr r0, [r4] - bl Free - movs r0, #0 - str r0, [r4] - bl ResetSpriteData - bl FreeAllSpritePalettes - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08160E00: .4byte gUnknown_203B900 -_08160E04: .4byte gUnknown_203B904 - thumb_func_end FreeMoveRelearnerResources - - thumb_func_start HideHeartSpritesAndShowTeachMoveText -HideHeartSpritesAndShowTeachMoveText: @ 0x08160E08 - push {r4, r5, r6, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r2, #0 - ldr r6, _08160E60 - ldr r4, _08160E64 - movs r3, #4 -_08160E18: - ldr r0, [r4] - adds r0, #1 - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - adds r2, #1 - cmp r2, #0xf - ble _08160E18 - cmp r5, #0 - bne _08160E58 - ldr r4, _08160E68 - ldr r1, _08160E6C - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #2 - str r0, [sp] - str r5, [sp, #4] - str r5, [sp, #8] - movs r0, #3 - movs r1, #1 - adds r2, r4, #0 - movs r3, #0 - bl AddTextPrinterParameterized -_08160E58: - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08160E60: .4byte gUnknown_20205AC -_08160E64: .4byte gUnknown_203B900 -_08160E68: .4byte gUnknown_2021C7C -_08160E6C: .4byte gUnknown_85AD9A0 - thumb_func_end HideHeartSpritesAndShowTeachMoveText - - thumb_func_start sub_08160E70 -sub_08160E70: @ 0x08160E70 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r6, _08160ED8 - ldr r0, [r6] - movs r4, #0x89 - lsls r4, r4, #1 - adds r0, r0, r4 - ldrb r0, [r0] - bl ListMenu_ProcessInput - adds r5, r0, #0 - ldr r0, [r6] - adds r0, r0, r4 - ldrb r0, [r0] - ldr r4, _08160EDC - adds r2, r4, #2 - adds r1, r4, #0 - bl ListMenuGetScrollAndRow - movs r0, #2 - rsbs r0, r0, #0 - cmp r5, r0 - beq _08160F04 - adds r0, #1 - cmp r5, r0 - bne _08160F30 - ldr r0, _08160EE0 - ldrh r1, [r0, #0x2e] - movs r0, #0x30 - ands r0, r1 - cmp r0, #0 - bne _08160EBC - bl GetLRKeysState - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08160F5C -_08160EBC: - movs r0, #5 - bl sub_080A306C - cmp r7, #0 - bne _08160EE4 - movs r0, #1 - bl PutWindowTilemap - ldr r0, [r6] - movs r1, #5 - strb r1, [r0] - movs r0, #1 - strb r0, [r4, #4] - b _08160EF4 - .align 2, 0 -_08160ED8: .4byte gUnknown_203B900 -_08160EDC: .4byte gUnknown_203B904 -_08160EE0: .4byte gUnknown_3002360 -_08160EE4: - movs r0, #0 - bl PutWindowTilemap - ldr r0, [r6] - movs r2, #0 - movs r1, #3 - strb r1, [r0] - strb r2, [r4, #4] -_08160EF4: - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - bl GetCurrentSelectedMove - bl MoveRelearnerShowHideHearts - b _08160F5C -_08160F04: - movs r0, #5 - bl sub_080A306C - bl RemoveScrollArrows - ldr r1, [r6] - movs r0, #0xc - strb r0, [r1] - ldr r4, _08160F28 - ldr r1, _08160F2C - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - bl MoveRelearnerPrintText - b _08160F5C - .align 2, 0 -_08160F28: .4byte gUnknown_2021C7C -_08160F2C: .4byte gUnknown_85ADAAF -_08160F30: - movs r0, #5 - bl sub_080A306C - bl RemoveScrollArrows - ldr r1, [r6] - movs r0, #8 - strb r0, [r1] - ldr r0, _08160F64 - lsls r1, r5, #3 - ldr r2, _08160F68 - adds r1, r1, r2 - bl StringCopy - ldr r4, _08160F6C - ldr r1, _08160F70 - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - bl MoveRelearnerPrintText -_08160F5C: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08160F64: .4byte gUnknown_2021C54 -_08160F68: .4byte gUnknown_82EACC4 -_08160F6C: .4byte gUnknown_2021C7C -_08160F70: .4byte gUnknown_85AD9B2 - thumb_func_end sub_08160E70 - - thumb_func_start GetCurrentSelectedMove -GetCurrentSelectedMove: @ 0x08160F74 - ldr r0, _08160F8C - ldr r2, [r0] - ldr r1, _08160F90 - ldrh r0, [r1, #2] - ldrh r1, [r1] - adds r0, r0, r1 - lsls r0, r0, #3 - adds r2, #0x4c - adds r2, r2, r0 - ldr r0, [r2] - bx lr - .align 2, 0 -_08160F8C: .4byte gUnknown_203B900 -_08160F90: .4byte gUnknown_203B904 - thumb_func_end GetCurrentSelectedMove - - thumb_func_start sub_08160F94 -sub_08160F94: @ 0x08160F94 - push {r4, r5, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _08160FBE - ldr r4, _08160FC8 - ldr r1, _08160FCC - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #2 - str r0, [sp] - str r5, [sp, #4] - str r5, [sp, #8] - movs r0, #3 - movs r1, #1 - adds r2, r4, #0 - movs r3, #0 - bl AddTextPrinterParameterized -_08160FBE: - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08160FC8: .4byte gUnknown_2021C7C -_08160FCC: .4byte gUnknown_85AD9A0 - thumb_func_end sub_08160F94 - - thumb_func_start CreateUISprites -CreateUISprites: @ 0x08160FD0 - push {r4, r5, r6, r7, lr} - ldr r2, _081610B4 - ldr r0, [r2] - movs r1, #0x8a - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] - ldr r0, [r2] - ldr r2, _081610B8 - adds r1, r0, r2 - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r1] - bl AddScrollArrows - movs r4, #0 - ldr r5, _081610BC -_08160FF4: - adds r2, r4, #0 - cmp r4, #0 - bge _08160FFC - adds r2, r4, #3 -_08160FFC: - asrs r2, r2, #2 - lsls r1, r2, #2 - subs r1, r4, r1 - lsls r1, r1, #0x13 - movs r0, #0xb0 - lsls r0, r0, #0xe - adds r1, r1, r0 - asrs r1, r1, #0x10 - lsls r2, r2, #0x13 - movs r0, #0xd0 - lsls r0, r0, #0xe - adds r2, r2, r0 - asrs r2, r2, #0x10 - adds r0, r5, #0 - movs r3, #0 - bl CreateSprite - ldr r2, _081610B4 - ldr r1, [r2] - adds r1, #1 - adds r1, r1, r4 - strb r0, [r1] - adds r4, #1 - cmp r4, #7 - ble _08160FF4 - movs r4, #0 - ldr r7, _081610BC - adds r6, r2, #0 -_08161034: - adds r2, r4, #0 - cmp r4, #0 - bge _0816103C - adds r2, r4, #3 -_0816103C: - asrs r2, r2, #2 - lsls r1, r2, #2 - subs r1, r4, r1 - lsls r1, r1, #0x13 - movs r0, #0xf8 - lsls r0, r0, #0xf - adds r1, r1, r0 - asrs r1, r1, #0x10 - lsls r2, r2, #0x13 - movs r0, #0xd0 - lsls r0, r0, #0xe - adds r2, r2, r0 - asrs r2, r2, #0x10 - adds r0, r7, #0 - movs r3, #0 - bl CreateSprite - ldr r1, [r6] - adds r2, r4, #0 - adds r2, #8 - adds r1, #1 - adds r1, r1, r2 - strb r0, [r1] - ldr r0, [r6] - adds r0, #1 - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r5, _081610C0 - adds r0, r0, r5 - movs r1, #2 - bl StartSpriteAnim - adds r4, #1 - cmp r4, #7 - ble _08161034 - movs r4, #0 - ldr r3, _081610B4 - movs r2, #4 -_0816108E: - ldr r0, [r3] - adds r0, #1 - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - adds r4, #1 - cmp r4, #0xf - ble _0816108E - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081610B4: .4byte gUnknown_203B900 -_081610B8: .4byte 0x00000113 -_081610BC: .4byte gUnknown_85ADB54 -_081610C0: .4byte gUnknown_20205AC - thumb_func_end CreateUISprites - - thumb_func_start AddScrollArrows -AddScrollArrows: @ 0x081610C4 - push {r4, r5, r6, lr} - ldr r4, _08161130 - ldr r1, [r4] - movs r2, #0x8a - lsls r2, r2, #1 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0xff - bne _081610EC - ldr r0, _08161134 - movs r3, #0x8b - lsls r3, r3, #1 - adds r1, r1, r3 - bl AddScrollIndicatorArrowPair - ldr r1, [r4] - movs r5, #0x8a - lsls r5, r5, #1 - adds r1, r1, r5 - strb r0, [r1] -_081610EC: - ldr r0, [r4] - ldr r6, _08161138 - adds r0, r0, r6 - ldrb r0, [r0] - cmp r0, #0xff - bne _08161128 - ldr r0, _0816113C - adds r2, r0, #0 - ldr r1, _08161140 - ldm r1!, {r3, r5, r6} - stm r2!, {r3, r5, r6} - ldr r1, [r1] - str r1, [r2] - ldr r2, [r4] - movs r3, #0x88 - lsls r3, r3, #1 - adds r1, r2, r3 - ldrb r1, [r1] - ldr r5, _08161144 - adds r2, r2, r5 - ldrb r2, [r2] - subs r1, r1, r2 - strh r1, [r0, #8] - ldr r1, _08161148 - bl AddScrollIndicatorArrowPair - ldr r1, [r4] - ldr r6, _08161138 - adds r1, r1, r6 - strb r0, [r1] -_08161128: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08161130: .4byte gUnknown_203B900 -_08161134: .4byte gUnknown_85ADB04 -_08161138: .4byte 0x00000113 -_0816113C: .4byte gUnknown_203CB58 -_08161140: .4byte gUnknown_85ADB14 -_08161144: .4byte 0x00000111 -_08161148: .4byte gUnknown_203B904 - thumb_func_end AddScrollArrows - - thumb_func_start RemoveScrollArrows -RemoveScrollArrows: @ 0x0816114C - push {r4, lr} - ldr r4, _08161190 - ldr r0, [r4] - movs r2, #0x8a - lsls r2, r2, #1 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, #0xff - beq _0816116E - bl RemoveScrollIndicatorArrowPair - ldr r0, [r4] - movs r1, #0x8a - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] -_0816116E: - ldr r0, [r4] - ldr r2, _08161194 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, #0xff - beq _08161188 - bl RemoveScrollIndicatorArrowPair - ldr r0, [r4] - ldr r2, _08161194 - adds r1, r0, r2 - movs r0, #0xff - strb r0, [r1] -_08161188: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08161190: .4byte gUnknown_203B900 -_08161194: .4byte 0x00000113 - thumb_func_end RemoveScrollArrows - - thumb_func_start sub_08161198 -sub_08161198: @ 0x08161198 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - ldr r4, _08161268 - ldr r1, [r4] - adds r0, r1, #0 - adds r0, #0x44 - ldrb r2, [r0] - movs r0, #0x64 - muls r0, r2, r0 - ldr r2, _0816126C - adds r0, r0, r2 - adds r1, #0x12 - bl GetMoveRelearnerMoves - ldr r1, [r4] - movs r6, #0x88 - lsls r6, r6, #1 - adds r1, r1, r6 - strb r0, [r1] - movs r5, #0 - ldr r0, [r4] - adds r0, r0, r6 - ldrb r0, [r0] - cmp r5, r0 - bge _081611FE - mov ip, r4 - ldr r7, _08161270 -_081611CE: - mov r0, ip - ldr r4, [r0] - lsls r3, r5, #3 - adds r2, r4, #0 - adds r2, #0x48 - adds r2, r2, r3 - lsls r0, r5, #1 - adds r1, r4, #0 - adds r1, #0x12 - adds r1, r1, r0 - ldrh r0, [r1] - lsls r0, r0, #3 - adds r0, r0, r7 - str r0, [r2] - adds r0, r4, #0 - adds r0, #0x4c - adds r0, r0, r3 - ldrh r1, [r1] - str r1, [r0] - adds r5, #1 - adds r0, r4, r6 - ldrb r0, [r0] - cmp r5, r0 - blt _081611CE -_081611FE: - ldr r4, _08161268 - ldr r0, [r4] - adds r0, #0x44 - ldrb r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0816126C - adds r0, r0, r1 - movs r1, #2 - mov r2, sp - bl GetMonData - ldr r0, _08161274 - mov r1, sp - bl StringCopy10 - ldr r2, [r4] - movs r5, #0x88 - lsls r5, r5, #1 - adds r3, r2, r5 - ldrb r0, [r3] - lsls r0, r0, #3 - adds r1, r2, #0 - adds r1, #0x48 - adds r1, r1, r0 - ldr r0, _08161278 - str r0, [r1] - ldrb r0, [r3] - lsls r0, r0, #3 - adds r2, #0x4c - adds r2, r2, r0 - movs r0, #2 - rsbs r0, r0, #0 - str r0, [r2] - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - ldr r1, [r4] - adds r0, r1, #0 - adds r0, #0x48 - adds r1, r1, r5 - ldrb r1, [r1] - bl LoadMoveRelearnerMovesList - ldr r1, [r4] - ldr r2, _0816127C - adds r1, r1, r2 - strb r0, [r1] - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08161268: .4byte gUnknown_203B900 -_0816126C: .4byte gUnknown_2024190 -_08161270: .4byte gUnknown_82EACC4 -_08161274: .4byte gUnknown_2021C40 -_08161278: .4byte gUnknown_85C93C4 -_0816127C: .4byte 0x00000111 - thumb_func_end sub_08161198 - - thumb_func_start MoveRelearnerShowHideHearts -MoveRelearnerShowHideHearts: @ 0x08161280 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - ldr r0, _081612C4 - ldrb r0, [r0, #4] - cmp r0, #0 - beq _08161298 - movs r0, #2 - rsbs r0, r0, #0 - cmp r4, r0 - bne _081612D0 -_08161298: - movs r5, #0 - ldr r4, _081612C8 - ldr r3, _081612CC - movs r2, #4 -_081612A0: - ldr r0, [r3] - adds r0, #1 - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0xf - bls _081612A0 - b _08161402 - .align 2, 0 -_081612C4: .4byte gUnknown_203B904 -_081612C8: .4byte gUnknown_20205AC -_081612CC: .4byte gUnknown_203B900 -_081612D0: - ldr r1, _08161314 - ldr r0, _08161318 - lsls r4, r4, #3 - adds r0, r4, r0 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #1] - movs r1, #0xa - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - mov r8, r4 - cmp r6, #0xff - bne _081612F2 - movs r6, #0 -_081612F2: - movs r5, #0 - ldr r7, _0816131C - ldr r4, _08161320 -_081612F8: - cmp r5, r6 - bhs _08161324 - ldr r0, [r7] - adds r0, #1 - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #1 - bl StartSpriteAnim - b _0816133A - .align 2, 0 -_08161314: .4byte gUnknown_8566AE4 -_08161318: .4byte gUnknown_8565FCC -_0816131C: .4byte gUnknown_203B900 -_08161320: .4byte gUnknown_20205AC -_08161324: - ldr r0, [r7] - adds r0, #1 - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0 - bl StartSpriteAnim -_0816133A: - ldr r0, [r7] - adds r0, #1 - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r1, [r0] - movs r3, #5 - rsbs r3, r3, #0 - adds r2, r3, #0 - ands r1, r2 - strb r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #7 - bls _081612F8 - ldr r1, _081613AC - ldr r0, _081613B0 - add r0, r8 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #2] - movs r1, #0xa - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0xff - bne _08161380 - movs r6, #0 -_08161380: - movs r5, #0 - ldr r0, _081613B4 - mov r8, r0 - ldr r7, _081613B8 -_08161388: - cmp r5, r6 - bhs _081613BC - mov r1, r8 - ldr r0, [r1] - adds r4, r5, #0 - adds r4, #8 - adds r0, #1 - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - movs r1, #3 - bl StartSpriteAnim - b _081613D8 - .align 2, 0 -_081613AC: .4byte gUnknown_8566AE4 -_081613B0: .4byte gUnknown_8565FCC -_081613B4: .4byte gUnknown_203B900 -_081613B8: .4byte gUnknown_20205AC -_081613BC: - mov r3, r8 - ldr r0, [r3] - adds r4, r5, #0 - adds r4, #8 - adds r0, #1 - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - movs r1, #2 - bl StartSpriteAnim -_081613D8: - mov r1, r8 - ldr r0, [r1] - adds r0, #1 - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - adds r0, #0x3e - ldrb r1, [r0] - movs r3, #5 - rsbs r3, r3, #0 - adds r2, r3, #0 - ands r1, r2 - strb r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #7 - bls _08161388 -_08161402: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end MoveRelearnerShowHideHearts - - thumb_func_start SetUpFieldMove_SoftBoiled -SetUpFieldMove_SoftBoiled: @ 0x0816140C - push {r4, r5, r6, lr} - bl GetCursorSelectionMonId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r6, #0x64 - muls r0, r6, r0 - ldr r4, _08161458 - adds r0, r0, r4 - movs r1, #0x3a - bl GetMonData - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - bl GetCursorSelectionMonId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - muls r0, r6, r0 - adds r0, r0, r4 - movs r1, #0x39 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - movs r1, #5 - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r4, r0 - bhi _0816145C - movs r0, #0 - b _0816145E - .align 2, 0 -_08161458: .4byte gUnknown_2024190 -_0816145C: - movs r0, #1 -_0816145E: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end SetUpFieldMove_SoftBoiled - - thumb_func_start sub_08161464 -sub_08161464: @ 0x08161464 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081614A0 - movs r1, #0xa - strb r1, [r0, #0xb] - ldrb r1, [r0, #9] - strb r1, [r0, #0xa] - bl GetCursorSelectionMonId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - bl sub_081B0C9C - movs r0, #5 - bl display_pokemon_menu_message - ldr r1, _081614A4 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081614A8 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081614A0: .4byte gUnknown_203CB94 -_081614A4: .4byte gUnknown_3005B60 -_081614A8: .4byte sub_081B1040 - thumb_func_end sub_08161464 - - thumb_func_start sub_081614AC -sub_081614AC: @ 0x081614AC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - str r4, [sp, #4] - ldr r1, _081614E4 - ldrb r7, [r1, #9] - mov r8, r7 - ldrb r0, [r1, #0xa] - adds r5, r0, #0 - cmp r5, #6 - bls _081614F0 - movs r0, #0 - strb r0, [r1, #0xb] - bl display_pokemon_menu_message - ldr r1, _081614E8 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081614EC - str r1, [r0] - b _0816155C - .align 2, 0 -_081614E4: .4byte gUnknown_203CB94 -_081614E8: .4byte gUnknown_3005B60 -_081614EC: .4byte sub_081B1040 -_081614F0: - movs r0, #0x64 - mov sl, r0 - mov r0, sl - muls r0, r5, r0 - ldr r1, _08161528 - mov sb, r1 - adds r6, r0, r1 - adds r0, r6, #0 - movs r1, #0x39 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0 - beq _0816151E - cmp r7, r5 - beq _0816151E - adds r0, r6, #0 - movs r1, #0x3a - bl GetMonData - cmp r0, r4 - bne _0816152C -_0816151E: - ldr r0, [sp, #4] - bl sub_081616BC - b _0816155C - .align 2, 0 -_08161528: .4byte gUnknown_2024190 -_0816152C: - movs r0, #1 - bl sub_080A306C - mov r1, sl - mov r0, r8 - muls r0, r1, r0 - add r0, sb - movs r1, #0x3a - bl GetMonData - movs r1, #5 - bl __udivsi3 - adds r3, r0, #0 - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - movs r2, #1 - rsbs r2, r2, #0 - ldr r0, _0816156C - str r0, [sp] - ldr r0, [sp, #4] - mov r1, r8 - bl sub_081B1BE8 -_0816155C: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0816156C: .4byte sub_08161570 - thumb_func_end sub_081614AC - - thumb_func_start sub_08161570 -sub_08161570: @ 0x08161570 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - bl sub_080A306C - ldr r5, _081615B8 - movs r1, #9 - ldrsb r1, [r5, r1] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081615BC - adds r0, r0, r1 - movs r1, #0x3a - bl GetMonData - movs r1, #5 - bl __udivsi3 - adds r3, r0, #0 - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - ldrb r1, [r5, #0xa] - ldr r0, _081615C0 - str r0, [sp] - adds r0, r4, #0 - movs r2, #1 - bl sub_081B1BE8 - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081615B8: .4byte gUnknown_203CB94 -_081615BC: .4byte gUnknown_2024190 -_081615C0: .4byte sub_081615C4 - thumb_func_end sub_08161570 - - thumb_func_start sub_081615C4 -sub_081615C4: @ 0x081615C4 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _0816160C - movs r1, #0xa - ldrsb r1, [r0, r1] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08161610 - adds r0, r0, r1 - ldr r1, _08161614 - bl GetMonNickname - ldr r4, _08161618 - ldr r1, _0816161C - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - movs r1, #0 - bl sub_081B182C - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, _08161620 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08161624 - str r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0816160C: .4byte gUnknown_203CB94 -_08161610: .4byte gUnknown_2024190 -_08161614: .4byte gUnknown_2021C40 -_08161618: .4byte gUnknown_2021C7C -_0816161C: .4byte gUnknown_85C9E8F -_08161620: .4byte gUnknown_3005B60 -_08161624: .4byte sub_08161628 - thumb_func_end sub_081615C4 - - thumb_func_start sub_08161628 -sub_08161628: @ 0x08161628 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - bl LoadListMenuArrowsGfx - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08161676 - ldr r4, _0816167C - movs r0, #0 - strb r0, [r4, #0xb] - ldrb r0, [r4, #9] - movs r1, #0 - bl sub_081B0C9C - ldrb r0, [r4, #0xa] - strb r0, [r4, #9] - ldrb r0, [r4, #0xa] - movs r1, #1 - bl sub_081B0C9C - movs r0, #6 - movs r1, #0 - bl sub_08198134 - movs r0, #6 - bl ClearWindowTilemap - movs r0, #0 - bl display_pokemon_menu_message - ldr r1, _08161680 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08161684 - str r1, [r0] -_08161676: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0816167C: .4byte gUnknown_203CB94 -_08161680: .4byte gUnknown_3005B60 -_08161684: .4byte sub_081B1040 - thumb_func_end sub_08161628 - - thumb_func_start sub_08161688 -sub_08161688: @ 0x08161688 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl LoadListMenuArrowsGfx - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081616AE - movs r0, #5 - bl display_pokemon_menu_message - ldr r0, _081616B4 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081616B8 - str r0, [r1] -_081616AE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081616B4: .4byte gUnknown_3005B60 -_081616B8: .4byte sub_081B1040 - thumb_func_end sub_08161688 - - thumb_func_start sub_081616BC -sub_081616BC: @ 0x081616BC - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #5 - bl sub_080A306C - ldr r0, _081616EC - movs r1, #0 - bl sub_081B182C - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, _081616F0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081616F4 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081616EC: .4byte gUnknown_85C9B07 -_081616F0: .4byte gUnknown_3005B60 -_081616F4: .4byte sub_08161688 - thumb_func_end sub_081616BC - - thumb_func_start SetDecorationInventoriesPointers -SetDecorationInventoriesPointers: @ 0x081616F8 - push {r4, lr} - ldr r0, _0816176C - mov ip, r0 - ldr r0, _08161770 - ldr r1, [r0] - ldr r2, _08161774 - adds r0, r1, r2 - mov r4, ip - str r0, [r4] - movs r3, #0xa - strb r3, [r4, #4] - adds r2, #0xa - adds r0, r1, r2 - str r0, [r4, #8] - strb r3, [r4, #0xc] - ldr r4, _08161778 - adds r0, r1, r4 - mov r2, ip - str r0, [r2, #0x10] - strb r3, [r2, #0x14] - adds r4, #0xa - adds r0, r1, r4 - str r0, [r2, #0x18] - movs r2, #0x1e - mov r0, ip - strb r2, [r0, #0x1c] - adds r4, #0x1e - adds r0, r1, r4 - mov r4, ip - str r0, [r4, #0x20] - mov r0, ip - adds r0, #0x24 - strb r2, [r0] - ldr r2, _0816177C - adds r0, r1, r2 - str r0, [r4, #0x28] - mov r0, ip - adds r0, #0x2c - strb r3, [r0] - ldr r4, _08161780 - adds r0, r1, r4 - mov r2, ip - str r0, [r2, #0x30] - adds r2, #0x34 - movs r0, #0x28 - strb r0, [r2] - adds r4, #0x28 - adds r1, r1, r4 - mov r0, ip - str r1, [r0, #0x38] - adds r0, #0x3c - strb r3, [r0] - bl InitDecorationContextItems - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816176C: .4byte gUnknown_203B90C -_08161770: .4byte gUnknown_3005AEC -_08161774: .4byte 0x00002734 -_08161778: .4byte 0x00002748 -_0816177C: .4byte 0x0000278E -_08161780: .4byte 0x00002798 - thumb_func_end SetDecorationInventoriesPointers - - thumb_func_start ClearDecorationInventory -ClearDecorationInventory: @ 0x08161784 - push {r4, r5, lr} - lsls r0, r0, #0x18 - movs r3, #0 - ldr r1, _081617B4 - lsrs r2, r0, #0x15 - adds r0, r2, r1 - ldrb r0, [r0, #4] - cmp r3, r0 - bhs _081617AE - adds r5, r1, #0 - movs r4, #0 -_0816179A: - adds r0, r2, r5 - ldr r1, [r0] - adds r1, r1, r3 - strb r4, [r1] - adds r1, r3, #1 - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - ldrb r0, [r0, #4] - cmp r3, r0 - blo _0816179A -_081617AE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081617B4: .4byte gUnknown_203B90C - thumb_func_end ClearDecorationInventory - - thumb_func_start ClearDecorationInventories -ClearDecorationInventories: @ 0x081617B8 - push {r4, lr} - movs r4, #0 -_081617BC: - adds r0, r4, #0 - bl ClearDecorationInventory - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #7 - bls _081617BC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ClearDecorationInventories - - thumb_func_start GetFirstEmptyDecorSlot -GetFirstEmptyDecorSlot: @ 0x081617D4 - push {r4, lr} - lsls r0, r0, #0x18 - movs r2, #0 - ldr r1, _08161800 - lsrs r0, r0, #0x15 - adds r0, r0, r1 - movs r1, #4 - ldrsb r1, [r0, r1] - cmp r2, r1 - bge _08161810 - adds r4, r0, #0 - adds r3, r1, #0 -_081617EC: - lsls r0, r2, #0x18 - asrs r1, r0, #0x18 - ldr r0, [r4] - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _08161804 - adds r0, r1, #0 - b _08161814 - .align 2, 0 -_08161800: .4byte gUnknown_203B90C -_08161804: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, r3 - blt _081617EC -_08161810: - movs r0, #1 - rsbs r0, r0, #0 -_08161814: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetFirstEmptyDecorSlot - - thumb_func_start sub_0816181C -sub_0816181C: @ 0x0816181C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r1, _0816184C - lsls r0, r3, #3 - subs r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #0xe] - movs r2, #0 - ldr r1, _08161850 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r1, [r0, #4] - cmp r2, r1 - bhs _0816185E - ldr r4, [r0] -_0816183E: - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, r3 - bne _08161854 - movs r0, #1 - b _08161860 - .align 2, 0 -_0816184C: .4byte gUnknown_8580CD0 -_08161850: .4byte gUnknown_203B90C -_08161854: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, r1 - blo _0816183E -_0816185E: - movs r0, #0 -_08161860: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0816181C - - thumb_func_start sub_08161868 -sub_08161868: @ 0x08161868 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r4, r0, #0 - cmp r4, #0 - beq _081618AC - ldr r1, _081618A4 - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r5, [r0, #0xe] - adds r0, r5, #0 - bl GetFirstEmptyDecorSlot - lsls r0, r0, #0x18 - asrs r2, r0, #0x18 - movs r0, #1 - rsbs r0, r0, #0 - cmp r2, r0 - beq _081618AC - ldr r0, _081618A8 - lsls r1, r5, #3 - adds r1, r1, r0 - ldr r0, [r1] - adds r0, r0, r2 - strb r4, [r0] - movs r0, #1 - b _081618AE - .align 2, 0 -_081618A4: .4byte gUnknown_8580CD0 -_081618A8: .4byte gUnknown_203B90C -_081618AC: - movs r0, #0 -_081618AE: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_08161868 - - thumb_func_start sub_081618B4 -sub_081618B4: @ 0x081618B4 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - beq _081618E4 - ldr r1, _081618E0 - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #0xe] - bl GetFirstEmptyDecorSlot - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _081618E4 - movs r0, #1 - b _081618E6 - .align 2, 0 -_081618E0: .4byte gUnknown_8580CD0 -_081618E4: - movs r0, #0 -_081618E6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081618B4 - - thumb_func_start DecorationRemove -DecorationRemove: @ 0x081618EC - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r3, #0 - cmp r4, #0 - bne _08161908 - b _0816193A -_081618FA: - movs r0, #0 - strb r0, [r1] - adds r0, r6, #0 - bl CondenseDecorationsInCategory - movs r0, #1 - b _0816193C -_08161908: - ldr r2, _08161944 - ldr r1, _08161948 - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r5, [r0, #0xe] - lsls r0, r5, #3 - adds r0, r0, r2 - ldrb r1, [r0, #4] - cmp r3, r1 - bhs _0816193A - adds r6, r5, #0 - adds r5, r0, #0 - adds r2, r1, #0 -_08161926: - ldr r0, [r5] - adds r1, r0, r3 - ldrb r0, [r1] - cmp r0, r4 - beq _081618FA - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, r2 - blo _08161926 -_0816193A: - movs r0, #0 -_0816193C: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08161944: .4byte gUnknown_203B90C -_08161948: .4byte gUnknown_8580CD0 - thumb_func_end DecorationRemove - - thumb_func_start CondenseDecorationsInCategory -CondenseDecorationsInCategory: @ 0x0816194C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - movs r6, #0 - ldr r2, _081619E0 - lsrs r0, r0, #0x15 - adds r1, r0, r2 - ldrb r3, [r1, #4] - cmp r6, r3 - bhs _081619D0 - adds r7, r0, #0 - mov sl, r1 - mov r0, sl - str r0, [sp] -_08161970: - adds r1, r6, #1 - lsls r0, r1, #0x18 - lsrs r3, r0, #0x18 - adds r2, r7, #0 - mov ip, r1 - mov r1, sl - ldrb r1, [r1, #4] - cmp r3, r1 - bhs _081619C2 - ldr r0, _081619E0 - mov sb, r0 - adds r1, r0, #0 - mov r8, r1 -_0816198A: - mov r0, sb - adds r5, r2, r0 - ldr r1, [r5] - adds r0, r1, r3 - ldrb r4, [r0] - adds r2, r4, #0 - cmp r2, #0 - beq _081619B0 - adds r0, r1, r6 - ldrb r1, [r0] - cmp r1, #0 - beq _081619A6 - cmp r1, r2 - bls _081619B0 -_081619A6: - ldrb r1, [r0] - strb r4, [r0] - ldr r0, [r5] - adds r0, r0, r3 - strb r1, [r0] -_081619B0: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - adds r2, r7, #0 - mov r1, r8 - adds r0, r2, r1 - ldrb r0, [r0, #4] - cmp r3, r0 - blo _0816198A -_081619C2: - mov r3, ip - lsls r0, r3, #0x18 - lsrs r6, r0, #0x18 - ldr r0, [sp] - ldrb r0, [r0, #4] - cmp r6, r0 - blo _08161970 -_081619D0: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081619E0: .4byte gUnknown_203B90C - thumb_func_end CondenseDecorationsInCategory - - thumb_func_start GetNumOwnedDecorationsInCategory -GetNumOwnedDecorationsInCategory: @ 0x081619E4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - movs r4, #0 - movs r3, #0 - ldr r2, _08161A20 - lsrs r1, r0, #0x15 - adds r0, r1, r2 - ldrb r0, [r0, #4] - cmp r4, r0 - bhs _08161A18 - adds r5, r2, #0 -_081619FA: - adds r2, r1, r5 - ldr r0, [r2] - adds r0, r0, r3 - ldrb r0, [r0] - cmp r0, #0 - beq _08161A0C - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_08161A0C: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldrb r2, [r2, #4] - cmp r3, r2 - blo _081619FA -_08161A18: - adds r0, r4, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08161A20: .4byte gUnknown_203B90C - thumb_func_end GetNumOwnedDecorationsInCategory - - thumb_func_start GetNumOwnedDecorations -GetNumOwnedDecorations: @ 0x08161A24 - push {r4, r5, lr} - movs r5, #0 - movs r4, #0 -_08161A2A: - adds r0, r4, #0 - bl GetNumOwnedDecorationsInCategory - adds r0, r5, r0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #7 - bls _08161A2A - adds r0, r5, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end GetNumOwnedDecorations - - thumb_func_start ClearRoamerData -ClearRoamerData: @ 0x08161A48 - push {r4, r5, lr} - ldr r5, _08161A68 - ldr r0, [r5] - ldr r4, _08161A6C - adds r0, r0, r4 - movs r1, #0 - movs r2, #0x1c - bl memset - ldr r0, [r5] - adds r0, r0, r4 - ldr r1, _08161A70 - strh r1, [r0, #8] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08161A68: .4byte gUnknown_3005AEC -_08161A6C: .4byte 0x000031DC -_08161A70: .4byte 0x00000197 - thumb_func_end ClearRoamerData - - thumb_func_start ClearRoamerLocationData -ClearRoamerLocationData: @ 0x08161A74 - push {r4, r5, r6, lr} - movs r2, #0 - ldr r6, _08161AA0 - ldr r4, _08161AA4 - movs r3, #0 - adds r5, r4, #1 -_08161A80: - lsls r1, r2, #1 - adds r0, r1, r4 - strb r3, [r0] - adds r1, r1, r5 - strb r3, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #2 - bls _08161A80 - movs r0, #0 - strb r0, [r6] - strb r0, [r6, #1] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08161AA0: .4byte gUnknown_203B952 -_08161AA4: .4byte gUnknown_203B94C - thumb_func_end ClearRoamerLocationData - - thumb_func_start CreateInitialRoamerMon -CreateInitialRoamerMon: @ 0x08161AA8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x10 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08161AD0 - ldr r0, _08161AC4 - ldr r1, [r0] - ldr r2, _08161AC8 - adds r1, r1, r2 - ldr r2, _08161ACC - b _08161ADC - .align 2, 0 -_08161AC4: .4byte gUnknown_3005AEC -_08161AC8: .4byte 0x000031DC -_08161ACC: .4byte 0x00000197 -_08161AD0: - ldr r0, _08161BBC - ldr r1, [r0] - ldr r2, _08161BC0 - adds r1, r1, r2 - movs r2, #0xcc - lsls r2, r2, #1 -_08161ADC: - strh r2, [r1, #8] - adds r7, r0, #0 - ldr r6, _08161BC4 - ldr r0, [r7] - ldr r5, _08161BC0 - adds r0, r0, r5 - ldrh r1, [r0, #8] - movs r4, #0 - str r4, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - str r4, [sp, #0xc] - adds r0, r6, #0 - movs r2, #0x28 - movs r3, #0x20 - bl CreateMon - ldr r0, [r7] - adds r0, r0, r5 - movs r1, #0x28 - strb r1, [r0, #0xc] - ldr r0, [r7] - adds r0, r0, r5 - strb r4, [r0, #0xd] - ldr r0, [r7] - adds r0, r0, r5 - movs r1, #1 - strb r1, [r0, #0x13] - adds r0, r6, #0 - movs r1, #0x42 - bl GetMonData - ldr r1, [r7] - adds r1, r1, r5 - str r0, [r1] - adds r0, r6, #0 - movs r1, #0 - bl GetMonData - ldr r1, [r7] - adds r1, r1, r5 - str r0, [r1, #4] - adds r0, r6, #0 - movs r1, #0x3a - bl GetMonData - ldr r1, [r7] - adds r1, r1, r5 - movs r2, #0 - mov r8, r2 - strh r0, [r1, #0xa] - adds r0, r6, #0 - movs r1, #0x16 - bl GetMonData - ldr r1, [r7] - adds r1, r1, r5 - strb r0, [r1, #0xe] - adds r0, r6, #0 - movs r1, #0x17 - bl GetMonData - ldr r1, [r7] - adds r1, r1, r5 - strb r0, [r1, #0xf] - adds r0, r6, #0 - movs r1, #0x18 - bl GetMonData - ldr r1, [r7] - adds r1, r1, r5 - strb r0, [r1, #0x10] - adds r0, r6, #0 - movs r1, #0x21 - bl GetMonData - ldr r1, [r7] - adds r1, r1, r5 - strb r0, [r1, #0x11] - adds r0, r6, #0 - movs r1, #0x2f - bl GetMonData - ldr r1, [r7] - adds r1, r1, r5 - strb r0, [r1, #0x12] - ldr r4, _08161BC8 - mov r0, r8 - strb r0, [r4] - bl Random - ldr r5, _08161BCC - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x14 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - adds r1, r1, r5 - ldrb r0, [r1] - strb r0, [r4, #1] - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08161BBC: .4byte gUnknown_3005AEC -_08161BC0: .4byte 0x000031DC -_08161BC4: .4byte gUnknown_20243E8 -_08161BC8: .4byte gUnknown_203B952 -_08161BCC: .4byte gUnknown_85ADB74 - thumb_func_end CreateInitialRoamerMon - - thumb_func_start InitRoamer -InitRoamer: @ 0x08161BD0 - push {lr} - bl ClearRoamerData - bl ClearRoamerLocationData - ldr r0, _08161BE8 - ldrh r0, [r0] - bl CreateInitialRoamerMon - pop {r0} - bx r0 - .align 2, 0 -_08161BE8: .4byte gUnknown_2037280 - thumb_func_end InitRoamer - - thumb_func_start UpdateLocationHistoryForRoamer -UpdateLocationHistoryForRoamer: @ 0x08161BEC - ldr r0, _08161C0C - ldrb r1, [r0, #2] - strb r1, [r0, #4] - ldrb r1, [r0, #3] - strb r1, [r0, #5] - ldrb r1, [r0] - strb r1, [r0, #2] - ldrb r1, [r0, #1] - strb r1, [r0, #3] - ldr r1, _08161C10 - ldr r2, [r1] - ldrb r1, [r2, #4] - strb r1, [r0] - ldrb r1, [r2, #5] - strb r1, [r0, #1] - bx lr - .align 2, 0 -_08161C0C: .4byte gUnknown_203B94C -_08161C10: .4byte gUnknown_3005AEC - thumb_func_end UpdateLocationHistoryForRoamer - - thumb_func_start RoamerMoveToOtherLocationSet -RoamerMoveToOtherLocationSet: @ 0x08161C14 - push {r4, r5, lr} - movs r1, #0 - ldr r0, _08161C58 - ldr r0, [r0] - ldr r2, _08161C5C - adds r0, r0, r2 - ldrb r0, [r0, #0x13] - cmp r0, #0 - beq _08161C52 - ldr r0, _08161C60 - strb r1, [r0] - ldr r5, _08161C64 - adds r4, r0, #0 -_08161C2E: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x14 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - adds r1, r1, r5 - ldrb r1, [r1] - ldrb r0, [r4, #1] - cmp r0, r1 - beq _08161C2E - strb r1, [r4, #1] -_08161C52: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08161C58: .4byte gUnknown_3005AEC -_08161C5C: .4byte 0x000031DC -_08161C60: .4byte gUnknown_203B952 -_08161C64: .4byte gUnknown_85ADB74 - thumb_func_end RoamerMoveToOtherLocationSet - - thumb_func_start RoamerMove -RoamerMove: @ 0x08161C68 - push {r4, r5, r6, r7, lr} - movs r4, #0 - bl Random - lsls r0, r0, #0x10 - movs r1, #0xf0 - lsls r1, r1, #0xc - ands r1, r0 - cmp r1, #0 - bne _08161C82 - bl RoamerMoveToOtherLocationSet - b _08161CF6 -_08161C82: - ldr r0, _08161CD8 - ldr r0, [r0] - ldr r1, _08161CDC - adds r0, r0, r1 - ldrb r0, [r0, #0x13] - cmp r0, #0 - beq _08161CF6 - ldr r7, _08161CE0 - ldr r3, _08161CE4 -_08161C94: - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r2, r0, #1 - adds r1, r2, r3 - ldrb r0, [r7, #1] - ldrb r1, [r1] - cmp r0, r1 - bne _08161CEC - ldr r6, _08161CE4 - adds r5, r2, #1 - ldr r4, _08161CE8 -_08161CAA: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #5 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r0, r0, r5 - adds r0, r0, r6 - ldrb r1, [r0] - ldrb r0, [r4, #4] - cmp r0, #0 - bne _08161CCE - ldrb r0, [r4, #5] - cmp r0, r1 - beq _08161CAA -_08161CCE: - cmp r1, #0xff - beq _08161CAA - strb r1, [r7, #1] - b _08161CF6 - .align 2, 0 -_08161CD8: .4byte gUnknown_3005AEC -_08161CDC: .4byte 0x000031DC -_08161CE0: .4byte gUnknown_203B952 -_08161CE4: .4byte gUnknown_85ADB74 -_08161CE8: .4byte gUnknown_203B94C -_08161CEC: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x13 - bls _08161C94 -_08161CF6: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end RoamerMove - - thumb_func_start IsRoamerAt -IsRoamerAt: @ 0x08161CFC - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, _08161D28 - ldr r0, [r0] - ldr r3, _08161D2C - adds r0, r0, r3 - ldrb r0, [r0, #0x13] - cmp r0, #0 - beq _08161D34 - ldr r0, _08161D30 - ldrb r3, [r0] - cmp r2, r3 - bne _08161D34 - ldrb r0, [r0, #1] - cmp r1, r0 - bne _08161D34 - movs r0, #1 - b _08161D36 - .align 2, 0 -_08161D28: .4byte gUnknown_3005AEC -_08161D2C: .4byte 0x000031DC -_08161D30: .4byte gUnknown_203B952 -_08161D34: - movs r0, #0 -_08161D36: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsRoamerAt - - thumb_func_start CreateRoamerMonInstance -CreateRoamerMonInstance: @ 0x08161D3C - push {r4, r5, lr} - sub sp, #4 - ldr r5, _08161DC8 - bl ZeroEnemyPartyMons - ldr r4, _08161DCC - ldr r0, [r4] - ldr r1, _08161DD0 - adds r0, r0, r1 - ldrh r1, [r0, #8] - ldrb r2, [r0, #0xc] - ldr r3, [r0] - ldr r0, [r0, #4] - str r0, [sp] - adds r0, r5, #0 - bl CreateMonWithIVsPersonality - ldr r2, [r4] - ldr r0, _08161DD4 - adds r2, r2, r0 - adds r0, r5, #0 - movs r1, #0x37 - bl SetMonData - ldr r2, [r4] - ldr r1, _08161DD8 - adds r2, r2, r1 - adds r0, r5, #0 - movs r1, #0x39 - bl SetMonData - ldr r2, [r4] - ldr r0, _08161DDC - adds r2, r2, r0 - adds r0, r5, #0 - movs r1, #0x16 - bl SetMonData - ldr r2, [r4] - ldr r1, _08161DE0 - adds r2, r2, r1 - adds r0, r5, #0 - movs r1, #0x17 - bl SetMonData - ldr r2, [r4] - ldr r0, _08161DE4 - adds r2, r2, r0 - adds r0, r5, #0 - movs r1, #0x18 - bl SetMonData - ldr r2, [r4] - ldr r1, _08161DE8 - adds r2, r2, r1 - adds r0, r5, #0 - movs r1, #0x21 - bl SetMonData - ldr r2, [r4] - ldr r0, _08161DEC - adds r2, r2, r0 - adds r0, r5, #0 - movs r1, #0x2f - bl SetMonData - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08161DC8: .4byte gUnknown_20243E8 -_08161DCC: .4byte gUnknown_3005AEC -_08161DD0: .4byte 0x000031DC -_08161DD4: .4byte 0x000031E9 -_08161DD8: .4byte 0x000031E6 -_08161DDC: .4byte 0x000031EA -_08161DE0: .4byte 0x000031EB -_08161DE4: .4byte 0x000031EC -_08161DE8: .4byte 0x000031ED -_08161DEC: .4byte 0x000031EE - thumb_func_end CreateRoamerMonInstance - - thumb_func_start TryStartRoamerEncounter -TryStartRoamerEncounter: @ 0x08161DF0 - push {lr} - ldr r0, _08161E20 - ldr r1, [r0] - ldrb r0, [r1, #4] - ldrb r1, [r1, #5] - bl IsRoamerAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08161E24 - bl Random - lsls r0, r0, #0x10 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r0 - cmp r1, #0 - bne _08161E24 - bl CreateRoamerMonInstance - movs r0, #1 - b _08161E26 - .align 2, 0 -_08161E20: .4byte gUnknown_3005AEC -_08161E24: - movs r0, #0 -_08161E26: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end TryStartRoamerEncounter - - thumb_func_start UpdateRoamerHPStatus -UpdateRoamerHPStatus: @ 0x08161E2C - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r1, #0x39 - bl GetMonData - ldr r5, _08161E58 - ldr r1, [r5] - ldr r4, _08161E5C - adds r1, r1, r4 - strh r0, [r1, #0xa] - adds r0, r6, #0 - movs r1, #0x37 - bl GetMonData - ldr r1, [r5] - adds r1, r1, r4 - strb r0, [r1, #0xd] - bl RoamerMoveToOtherLocationSet - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08161E58: .4byte gUnknown_3005AEC -_08161E5C: .4byte 0x000031DC - thumb_func_end UpdateRoamerHPStatus - - thumb_func_start SetRoamerInactive -SetRoamerInactive: @ 0x08161E60 - ldr r0, _08161E70 - ldr r0, [r0] - ldr r1, _08161E74 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0, #0x13] - bx lr - .align 2, 0 -_08161E70: .4byte gUnknown_3005AEC -_08161E74: .4byte 0x000031DC - thumb_func_end SetRoamerInactive - - thumb_func_start GetRoamerLocation -GetRoamerLocation: @ 0x08161E78 - ldr r3, _08161E84 - ldrb r2, [r3] - strb r2, [r0] - ldrb r0, [r3, #1] - strb r0, [r1] - bx lr - .align 2, 0 -_08161E84: .4byte gUnknown_203B952 - thumb_func_end GetRoamerLocation - - thumb_func_start sub_08161E88 -sub_08161E88: @ 0x08161E88 - push {lr} - ldr r1, _08161EA0 - ldr r0, _08161EA4 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - thumb_func_end sub_08161E88 - - thumb_func_start sub_08161E9C -sub_08161E9C: @ 0x08161E9C - bx r0 - .align 2, 0 -_08161EA0: .4byte gUnknown_85BE8B0 -_08161EA4: .4byte gUnknown_2037280 - thumb_func_end sub_08161E9C - - thumb_func_start sub_08161EA8 -sub_08161EA8: @ 0x08161EA8 - push {r4, r5, r6, r7, lr} - ldr r4, _08161F48 - ldr r0, [r4] - ldr r1, _08161F4C - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r5, r0, #0x1e - ldr r0, _08161F50 - bl VarGet - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r0, [r4] - ldr r2, _08161F54 - adds r0, r0, r2 - movs r7, #0 - movs r1, #1 - strb r1, [r0] - ldr r1, [r4] - adds r2, #0xa - adds r0, r1, r2 - strh r7, [r0] - ldr r0, _08161F4C - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r4] - ldr r2, _08161F4C - adds r1, r1, r2 - ldrb r2, [r1] - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - bl sub_081A3864 - ldr r4, [r4] - ldr r0, _08161F58 - adds r3, r4, r0 - ldr r2, _08161F5C - lsls r1, r5, #2 - lsls r0, r6, #3 - adds r1, r1, r0 - adds r1, r1, r2 - ldr r0, [r3] - ldr r1, [r1] - ands r0, r1 - cmp r0, #0 - bne _08161F22 - lsls r0, r5, #1 - lsls r1, r6, #2 - adds r0, r0, r1 - movs r2, #0xce - lsls r2, r2, #4 - adds r1, r4, r2 - adds r1, r1, r0 - strh r7, [r1] -_08161F22: - bl ValidateBattleTowerRecordChecksums - ldr r0, _08161F60 - ldr r0, [r0] - movs r1, #4 - ldrsb r1, [r0, r1] - movs r2, #5 - ldrsb r2, [r0, r2] - movs r3, #1 - rsbs r3, r3, #0 - movs r0, #0 - bl SetDynamicWarp - ldr r0, _08161F64 - strh r7, [r0] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08161F48: .4byte gUnknown_3005AF0 -_08161F4C: .4byte 0x00000CA9 -_08161F50: .4byte 0x000040CE -_08161F54: .4byte 0x00000CA8 -_08161F58: .4byte 0x00000CDC -_08161F5C: .4byte gUnknown_85BE8F0 -_08161F60: .4byte gUnknown_3005AEC -_08161F64: .4byte gUnknown_203886A - thumb_func_end sub_08161EA8 - - thumb_func_start sub_08161F68 -sub_08161F68: @ 0x08161F68 - push {r4, r5, r6, lr} - ldr r5, _08161F98 - ldr r0, [r5] - ldr r4, _08161F9C - adds r0, r0, r4 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r6, r0, #0x1e - ldr r0, _08161FA0 - bl VarGet - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r0, _08161FA4 - ldrh r0, [r0] - cmp r0, #1 - beq _08161FA8 - cmp r0, #1 - ble _08161FFC - cmp r0, #2 - beq _08161FBC - cmp r0, #3 - beq _08161FEC - b _08161FFC - .align 2, 0 -_08161F98: .4byte gUnknown_3005AF0 -_08161F9C: .4byte 0x00000CA9 -_08161FA0: .4byte 0x000040CE -_08161FA4: .4byte gUnknown_2037282 -_08161FA8: - adds r0, r6, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl GetCurrentBattleTowerWinStreak - ldr r1, _08161FB8 - strh r0, [r1] - b _08161FFC - .align 2, 0 -_08161FB8: .4byte gUnknown_2037290 -_08161FBC: - ldr r4, _08161FE0 - ldr r2, [r5] - ldr r0, _08161FE4 - adds r2, r2, r0 - ldr r3, _08161FE8 - lsls r0, r6, #2 - lsls r1, r1, #3 - adds r0, r0, r1 - adds r0, r0, r3 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - strh r0, [r4] - b _08161FFC - .align 2, 0 -_08161FE0: .4byte gUnknown_2037290 -_08161FE4: .4byte 0x00000CDC -_08161FE8: .4byte gUnknown_85BE8F0 -_08161FEC: - ldr r1, [r5] - adds r0, r1, r4 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - ldr r2, _08162004 - adds r1, r1, r2 - strb r0, [r1] -_08161FFC: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08162004: .4byte 0x00000D07 - thumb_func_end sub_08161F68 - - thumb_func_start sub_08162008 -sub_08162008: @ 0x08162008 - push {r4, r5, r6, r7, lr} - ldr r6, _08162038 - ldr r0, [r6] - ldr r7, _0816203C - adds r0, r0, r7 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r5, r0, #0x1e - ldr r0, _08162040 - bl VarGet - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, _08162044 - ldrh r0, [r0] - cmp r0, #1 - beq _08162048 - cmp r0, #1 - ble _081620C8 - cmp r0, #2 - beq _08162064 - cmp r0, #3 - beq _081620B8 - b _081620C8 - .align 2, 0 -_08162038: .4byte gUnknown_3005AF0 -_0816203C: .4byte 0x00000CA9 -_08162040: .4byte 0x000040CE -_08162044: .4byte gUnknown_2037282 -_08162048: - ldr r2, [r6] - lsls r0, r5, #1 - lsls r1, r4, #2 - adds r0, r0, r1 - movs r1, #0xce - lsls r1, r1, #4 - adds r2, r2, r1 - adds r2, r2, r0 - ldr r0, _08162060 - ldrh r0, [r0] - strh r0, [r2] - b _081620C8 - .align 2, 0 -_08162060: .4byte gUnknown_2037284 -_08162064: - ldr r0, _08162088 - ldrh r0, [r0] - cmp r0, #0 - beq _08162094 - ldr r2, [r6] - ldr r0, _0816208C - adds r2, r2, r0 - ldr r3, _08162090 - lsls r1, r5, #2 - lsls r0, r4, #3 - adds r1, r1, r0 - adds r1, r1, r3 - ldr r0, [r2] - ldr r1, [r1] - orrs r0, r1 - str r0, [r2] - b _081620C8 - .align 2, 0 -_08162088: .4byte gUnknown_2037284 -_0816208C: .4byte 0x00000CDC -_08162090: .4byte gUnknown_85BE8F0 -_08162094: - ldr r2, [r6] - ldr r1, _081620B0 - adds r2, r2, r1 - ldr r3, _081620B4 - lsls r1, r5, #2 - lsls r0, r4, #3 - adds r1, r1, r0 - adds r1, r1, r3 - ldr r0, [r2] - ldr r1, [r1] - ands r0, r1 - str r0, [r2] - b _081620C8 - .align 2, 0 -_081620B0: .4byte 0x00000CDC -_081620B4: .4byte gUnknown_85BE910 -_081620B8: - ldr r1, [r6] - adds r0, r1, r7 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - ldr r2, _081620D0 - adds r1, r1, r2 - strb r0, [r1] -_081620C8: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081620D0: .4byte 0x00000D07 - thumb_func_end sub_08162008 - - thumb_func_start sub_081620D4 -sub_081620D4: @ 0x081620D4 - push {r4, r5, lr} - ldr r0, _08162124 - ldrh r1, [r0] - movs r0, #0xfa - lsls r0, r0, #1 - cmp r1, r0 - bne _081620EE - ldr r0, _08162128 - ldr r0, [r0] - ldr r1, _0816212C - adds r0, r0, r1 - bl ClearEReaderTrainer -_081620EE: - ldr r5, _08162128 - ldr r0, [r5] - ldr r1, _08162130 - adds r2, r0, r1 - ldrh r1, [r2] - ldr r0, _08162134 - cmp r1, r0 - bhi _08162102 - adds r0, r1, #1 - strh r0, [r2] -_08162102: - ldr r1, [r5] - ldr r4, _08162138 - adds r1, r1, r4 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - bl SaveCurrentWinStreak - ldr r1, _0816213C - ldr r0, [r5] - adds r0, r0, r4 - ldrh r0, [r0] - strh r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08162124: .4byte gUnknown_203886A -_08162128: .4byte gUnknown_3005AF0 -_0816212C: .4byte 0x00000BEC -_08162130: .4byte 0x00000D04 -_08162134: .4byte 0x0000270E -_08162138: .4byte 0x00000CB2 -_0816213C: .4byte gUnknown_2037290 - thumb_func_end sub_081620D4 - - thumb_func_start ChooseSpecialBattleTowerTrainer -ChooseSpecialBattleTowerTrainer: @ 0x08162140 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x3c - movs r0, #0 - str r0, [sp, #0x24] - ldr r4, _081622B4 - ldr r0, [r4] - ldr r1, _081622B8 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - mov sl, r0 - ldr r0, _081622BC - bl VarGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x2c] - ldr r0, _081622C0 - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0816217A - b _081622B0 -_0816217A: - mov r0, sl - ldr r1, [sp, #0x2c] - bl GetCurrentBattleTowerWinStreak - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x28] - movs r7, #0 - mov r2, sp - str r2, [sp, #0x34] -_0816218E: - movs r3, #0xec - adds r0, r7, #0 - muls r0, r3, r0 - movs r4, #0xe7 - lsls r4, r4, #3 - adds r0, r0, r4 - ldr r5, _081622B4 - ldr r1, [r5] - movs r2, #0 - mov r8, r2 - mov sb, r2 - movs r5, #0 - adds r3, r7, #1 - str r3, [sp, #0x30] - adds r1, r1, r0 -_081621AC: - ldm r1!, {r0} - mov r4, r8 - orrs r4, r0 - mov r8, r4 - add sb, r0 - adds r5, #1 - cmp r5, #0x39 - bls _081621AC - movs r6, #0 - movs r5, #0 - movs r0, #0xec - adds r2, r7, #0 - muls r2, r0, r2 -_081621C6: - ldr r3, _081622B4 - ldr r1, [r3] - movs r0, #0x2c - muls r0, r5, r0 - adds r0, r0, r2 - adds r1, r1, r0 - ldr r4, _081622C4 - adds r0, r1, r4 - ldrh r0, [r0] - cmp r0, #0 - beq _081621F8 - movs r0, #0xef - lsls r0, r0, #3 - adds r4, r1, r0 - mov r0, sl - str r2, [sp, #0x38] - bl GetFrontierEnemyMonLevel - ldrb r1, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, [sp, #0x38] - cmp r1, r0 - bhi _081621F8 - adds r6, #1 -_081621F8: - adds r5, #1 - cmp r5, #3 - ble _081621C6 - ldr r0, _081622C8 - ldr r1, [sp, #0x2c] - adds r0, r1, r0 - ldrb r0, [r0] - cmp r6, r0 - blt _08162252 - ldr r3, _081622B4 - ldr r2, [r3] - movs r4, #0xec - adds r3, r7, #0 - muls r3, r4, r3 - adds r1, r2, r3 - ldr r5, _081622CC - adds r0, r1, r5 - ldrh r0, [r0] - ldr r4, [sp, #0x28] - cmp r0, r4 - bne _08162252 - subs r5, #2 - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, sl - bne _08162252 - mov r0, r8 - cmp r0, #0 - beq _08162252 - movs r1, #0x82 - lsls r1, r1, #4 - adds r0, r2, r1 - adds r0, r0, r3 - ldr r0, [r0] - cmp r0, sb - bne _08162252 - movs r2, #0x96 - lsls r2, r2, #1 - adds r0, r7, r2 - ldr r3, [sp, #0x34] - stm r3!, {r0} - str r3, [sp, #0x34] - ldr r4, [sp, #0x24] - adds r4, #1 - str r4, [sp, #0x24] -_08162252: - ldr r7, [sp, #0x30] - cmp r7, #4 - ble _0816218E - ldr r5, [sp, #0x2c] - cmp r5, #0 - bne _081622AA - bl ValidateApprenticesChecksums - movs r7, #0 - ldr r0, _081622B4 - ldr r0, [r0] - ldr r4, _081622D0 - adds r2, r0, #0 - adds r2, #0xdc - ldr r1, [sp, #0x24] - lsls r0, r1, #2 - mov r5, sp - adds r3, r0, r5 -_08162276: - ldrb r0, [r2] - lsls r1, r0, #0x19 - lsrs r0, r1, #0x1e - cmp r0, #0 - beq _081622A2 - ldrb r0, [r2, #1] - adds r0, r0, r4 - ldrb r0, [r0] - ldr r5, [sp, #0x28] - cmp r0, r5 - bne _081622A2 - lsrs r0, r1, #0x1e - subs r0, #1 - cmp r0, sl - bne _081622A2 - movs r1, #0xc8 - lsls r1, r1, #1 - adds r0, r7, r1 - stm r3!, {r0} - ldr r5, [sp, #0x24] - adds r5, #1 - str r5, [sp, #0x24] -_081622A2: - adds r2, #0x44 - adds r7, #1 - cmp r7, #3 - ble _08162276 -_081622AA: - ldr r0, [sp, #0x24] - cmp r0, #0 - bne _081622D4 -_081622B0: - movs r0, #0 - b _081622EE - .align 2, 0 -_081622B4: .4byte gUnknown_3005AF0 -_081622B8: .4byte 0x00000CA9 -_081622BC: .4byte 0x000040CE -_081622C0: .4byte 0x000040CF -_081622C4: .4byte 0x0000076C -_081622C8: .4byte gUnknown_85BE93A -_081622CC: .4byte 0x0000073A -_081622D0: .4byte gUnknown_85BE930 -_081622D4: - ldr r4, _08162300 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, [sp, #0x24] - bl __modsi3 - lsls r0, r0, #2 - add r0, sp - ldr r0, [r0] - strh r0, [r4] - movs r0, #1 -_081622EE: - add sp, #0x3c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08162300: .4byte gUnknown_203886A - thumb_func_end ChooseSpecialBattleTowerTrainer - - thumb_func_start ChooseNextBattleTowerTrainer -ChooseNextBattleTowerTrainer: @ 0x08162304 - push {r4, r5, r6, r7, lr} - ldr r6, _08162320 - ldr r0, [r6] - ldr r1, _08162324 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #2 - bne _08162328 - bl sub_08165C24 - b _08162444 - .align 2, 0 -_08162320: .4byte gUnknown_3005AF0 -_08162324: .4byte 0x00000CA9 -_08162328: - ldr r0, _08162388 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - bl GetCurrentFacilityWinStreak - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #7 - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - bl SetFacilityPtrsGetLevel - subs r4, #2 - cmp r4, #1 - bhi _0816239C - ldr r1, [r6] - ldr r2, _0816238C - adds r0, r1, r2 - ldrh r3, [r0] - ldr r2, _08162390 - lsls r0, r3, #2 - ldr r4, _08162394 - adds r1, r1, r4 - adds r0, r1, r0 - ldrh r0, [r0] - strh r0, [r2] - ldr r4, _08162398 - lsls r0, r3, #1 - adds r0, #1 - lsls r0, r0, #1 - adds r1, r1, r0 - ldrh r0, [r1] - strh r0, [r4] - ldrh r0, [r2] - movs r1, #0 - bl sub_08162528 - ldrh r0, [r4] - movs r1, #1 - bl sub_08162528 - b _08162444 - .align 2, 0 -_08162388: .4byte 0x000040CE -_0816238C: .4byte 0x00000CB2 -_08162390: .4byte gUnknown_203886A -_08162394: .4byte 0x00000CB4 -_08162398: .4byte gUnknown_203886C -_0816239C: - bl ChooseSpecialBattleTowerTrainer - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081623C8 - ldr r4, _081623C0 - ldrh r0, [r4] - movs r1, #0 - bl sub_08162528 - ldr r1, [r6] - ldr r2, _081623C4 - adds r0, r1, r2 - ldrh r0, [r0] - lsls r0, r0, #1 - adds r2, #2 - b _0816243C - .align 2, 0 -_081623C0: .4byte gUnknown_203886A -_081623C4: .4byte 0x00000CB2 -_081623C8: - lsls r7, r5, #0x18 - adds r5, r6, #0 - ldr r6, _0816244C -_081623CE: - ldr r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsrs r0, r7, #0x18 - bl sub_0816245C - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - movs r4, #0 - ldr r1, [r5] - adds r0, r1, r6 - ldrh r0, [r0] - cmp r4, r0 - bge _08162410 - ldr r2, _08162450 - adds r0, r1, r2 - ldrh r0, [r0] - cmp r0, r3 - beq _08162410 - ldr r0, _08162454 - ldr r1, [r0] - subs r2, #2 - adds r0, r1, r2 - ldrh r2, [r0] - ldr r0, _08162450 - adds r1, r1, r0 -_08162402: - adds r1, #2 - adds r4, #1 - cmp r4, r2 - bge _08162410 - ldrh r0, [r1] - cmp r0, r3 - bne _08162402 -_08162410: - ldr r0, [r5] - ldr r1, _0816244C - adds r0, r0, r1 - ldrh r0, [r0] - cmp r4, r0 - bne _081623CE - ldr r4, _08162458 - strh r3, [r4] - ldrh r0, [r4] - movs r1, #0 - bl sub_08162528 - ldr r0, _08162454 - ldr r1, [r0] - ldr r2, _0816244C - adds r0, r1, r2 - ldrh r2, [r0] - adds r0, r2, #1 - cmp r0, #6 - bgt _08162444 - lsls r0, r2, #1 - ldr r2, _08162450 -_0816243C: - adds r1, r1, r2 - adds r1, r1, r0 - ldrh r0, [r4] - strh r0, [r1] -_08162444: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0816244C: .4byte 0x00000CB2 -_08162450: .4byte 0x00000CB4 -_08162454: .4byte gUnknown_3005AF0 -_08162458: .4byte gUnknown_203886A - thumb_func_end ChooseNextBattleTowerTrainer - - thumb_func_start sub_0816245C -sub_0816245C: @ 0x0816245C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r3, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r0, #7 - bhi _08162498 - cmp r1, #6 - bne _08162484 - ldr r2, _08162480 - lsls r1, r0, #2 - adds r0, r2, #2 - adds r0, r1, r0 - adds r1, r1, r2 - ldrh r0, [r0] - ldrh r4, [r1] - b _0816249E - .align 2, 0 -_08162480: .4byte gUnknown_85BE95E -_08162484: - ldr r2, _08162494 - lsls r1, r3, #2 - adds r0, r2, #2 - adds r0, r1, r0 - adds r1, r1, r2 - ldrh r0, [r0] - ldrh r4, [r1] - b _0816249E - .align 2, 0 -_08162494: .4byte gUnknown_85BE93E -_08162498: - ldr r1, _081624C4 - ldrh r0, [r1, #0x1e] - ldrh r4, [r1, #0x1c] -_0816249E: - subs r0, r0, r4 - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r5, #0 - bl __umodsi3 - adds r4, r4, r0 - lsls r4, r4, #0x10 - lsrs r5, r4, #0x10 - adds r0, r5, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081624C4: .4byte gUnknown_85BE93E - thumb_func_end sub_0816245C - - thumb_func_start sub_081624C8 -sub_081624C8: @ 0x081624C8 - push {r4, lr} - adds r4, r2, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r2, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r0, #7 - bhi _08162508 - cmp r1, #6 - bne _081624E8 - ldr r1, _081624E4 - lsls r2, r0, #2 - b _081624EC - .align 2, 0 -_081624E4: .4byte gUnknown_85BE95E -_081624E8: - ldr r1, _08162504 - lsls r2, r2, #2 -_081624EC: - adds r0, r1, #2 - adds r0, r2, r0 - adds r2, r2, r1 - ldrh r0, [r0] - ldrh r1, [r2] - subs r0, r0, r1 - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldrh r0, [r2] - b _08162518 - .align 2, 0 -_08162504: .4byte gUnknown_85BE93E -_08162508: - ldr r0, _08162524 - ldrh r1, [r0, #0x1e] - ldrh r2, [r0, #0x1c] - subs r1, r1, r2 - adds r1, #1 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldrh r0, [r0, #0x1c] -_08162518: - strh r0, [r4] - strb r1, [r3] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08162524: .4byte gUnknown_85BE93E - thumb_func_end sub_081624C8 - - thumb_func_start sub_08162528 -sub_08162528: @ 0x08162528 - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r6, r4, #0 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - bl SetFacilityPtrsGetLevel - movs r0, #0xfa - lsls r0, r0, #1 - cmp r4, r0 - bne _08162550 - ldr r0, _08162548 - ldr r0, [r0] - ldr r1, _0816254C - b _0816258E - .align 2, 0 -_08162548: .4byte gUnknown_3005AF0 -_0816254C: .4byte 0x00000BED -_08162550: - ldr r0, _0816255C - cmp r4, r0 - bne _08162560 - bl SetFrontierBrainEventObjGfx_2 - b _08162694 - .align 2, 0 -_0816255C: .4byte 0x000003FE -_08162560: - ldr r0, _08162570 - cmp r4, r0 - bhi _08162578 - ldr r0, _08162574 - ldr r1, [r0] - movs r0, #0x34 - muls r0, r4, r0 - b _0816258E - .align 2, 0 -_08162570: .4byte 0x0000012B -_08162574: .4byte gUnknown_203B954 -_08162578: - ldr r0, _08162594 - cmp r4, r0 - bhi _081625A4 - ldr r0, _08162598 - ldr r0, [r0] - ldr r1, _0816259C - adds r2, r4, r1 - movs r1, #0xec - muls r1, r2, r1 - adds r0, r0, r1 - ldr r1, _081625A0 -_0816258E: - adds r0, r0, r1 - ldrb r2, [r0] - b _081625C8 - .align 2, 0 -_08162594: .4byte 0x0000018F -_08162598: .4byte gUnknown_3005AF0 -_0816259C: .4byte 0xFFFFFED4 -_081625A0: .4byte 0x00000739 -_081625A4: - ldr r3, _081625F8 - ldr r0, _081625FC - ldr r1, [r0] - ldr r0, _08162600 - adds r2, r6, r0 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r1, r1, r0 - adds r1, #0xdc - ldrb r1, [r1] - lsls r1, r1, #0x1b - lsrs r1, r1, #0x1b - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #4 - adds r0, r0, r3 - ldrb r2, [r0, #0xa] -_081625C8: - movs r1, #0 - ldr r3, _08162604 - ldrb r0, [r3] - cmp r0, r2 - beq _081625E0 -_081625D2: - adds r1, #1 - cmp r1, #0x1d - bhi _081625E0 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _081625D2 -_081625E0: - cmp r1, #0x1e - beq _0816260C - ldr r0, _08162608 - adds r0, r1, r0 - ldrb r1, [r0] - cmp r5, #1 - beq _08162650 - cmp r5, #1 - ble _0816263A - cmp r5, #0xf - bne _0816263A - b _0816265C - .align 2, 0 -_081625F8: .4byte gUnknown_85DC21C -_081625FC: .4byte gUnknown_3005AF0 -_08162600: .4byte 0xFFFFFE70 -_08162604: .4byte gUnknown_85BBE20 -_08162608: .4byte gUnknown_85BBE52 -_0816260C: - movs r1, #0 - ldr r3, _08162644 - ldrb r0, [r3] - cmp r0, r2 - beq _08162624 -_08162616: - adds r1, #1 - cmp r1, #0x13 - bhi _08162624 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _08162616 -_08162624: - cmp r1, #0x14 - beq _08162668 - ldr r0, _08162648 - adds r0, r1, r0 - ldrb r1, [r0] - cmp r5, #1 - beq _08162650 - cmp r5, #1 - ble _0816263A - cmp r5, #0xf - beq _0816265C -_0816263A: - ldr r0, _0816264C - bl VarSet - b _08162694 - .align 2, 0 -_08162644: .4byte gUnknown_85BBE3E -_08162648: .4byte gUnknown_85BBE70 -_0816264C: .4byte 0x00004010 -_08162650: - ldr r0, _08162658 - bl VarSet - b _08162694 - .align 2, 0 -_08162658: .4byte 0x00004011 -_0816265C: - ldr r0, _08162664 - bl VarSet - b _08162694 - .align 2, 0 -_08162664: .4byte 0x0000401E -_08162668: - cmp r5, #1 - beq _0816267C - cmp r5, #1 - ble _08162674 - cmp r5, #0xf - beq _0816268C -_08162674: - ldr r0, _08162678 - b _0816267E - .align 2, 0 -_08162678: .4byte 0x00004010 -_0816267C: - ldr r0, _08162688 -_0816267E: - movs r1, #7 - bl VarSet - b _08162694 - .align 2, 0 -_08162688: .4byte 0x00004011 -_0816268C: - ldr r0, _0816269C - movs r1, #7 - bl VarSet -_08162694: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0816269C: .4byte 0x0000401E - thumb_func_end sub_08162528 - - thumb_func_start SetEReaderTrainerGfxId -SetEReaderTrainerGfxId: @ 0x081626A0 - push {lr} - movs r0, #0xfa - lsls r0, r0, #1 - movs r1, #0 - bl sub_08162528 - pop {r0} - bx r0 - thumb_func_end SetEReaderTrainerGfxId - - thumb_func_start IsFrontierTrainerFemale -IsFrontierTrainerFemale: @ 0x081626B0 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r5, r4, #0 - bl SetFacilityPtrsGetLevel - movs r0, #0xfa - lsls r0, r0, #1 - cmp r4, r0 - bne _081626D4 - ldr r0, _081626CC - ldr r0, [r0] - ldr r1, _081626D0 - b _08162702 - .align 2, 0 -_081626CC: .4byte gUnknown_3005AF0 -_081626D0: .4byte 0x00000BED -_081626D4: - ldr r0, _081626E4 - cmp r4, r0 - bhi _081626EC - ldr r0, _081626E8 - ldr r1, [r0] - movs r0, #0x34 - muls r0, r4, r0 - b _08162702 - .align 2, 0 -_081626E4: .4byte 0x0000012B -_081626E8: .4byte gUnknown_203B954 -_081626EC: - ldr r0, _08162708 - cmp r4, r0 - bhi _08162718 - ldr r0, _0816270C - ldr r0, [r0] - ldr r1, _08162710 - adds r2, r4, r1 - movs r1, #0xec - muls r1, r2, r1 - adds r0, r0, r1 - ldr r1, _08162714 -_08162702: - adds r0, r0, r1 - ldrb r2, [r0] - b _0816273C - .align 2, 0 -_08162708: .4byte 0x0000018F -_0816270C: .4byte gUnknown_3005AF0 -_08162710: .4byte 0xFFFFFED4 -_08162714: .4byte 0x00000739 -_08162718: - ldr r3, _0816275C - ldr r0, _08162760 - ldr r1, [r0] - ldr r0, _08162764 - adds r2, r5, r0 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r1, r1, r0 - adds r1, #0xdc - ldrb r1, [r1] - lsls r1, r1, #0x1b - lsrs r1, r1, #0x1b - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #4 - adds r0, r0, r3 - ldrb r2, [r0, #0xa] -_0816273C: - movs r1, #0 - ldr r3, _08162768 - ldrb r0, [r3] - cmp r0, r2 - beq _08162754 -_08162746: - adds r1, #1 - cmp r1, #0x1d - bhi _08162754 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _08162746 -_08162754: - cmp r1, #0x1e - beq _08162770 - ldr r0, _0816276C - b _08162796 - .align 2, 0 -_0816275C: .4byte gUnknown_85DC21C -_08162760: .4byte gUnknown_3005AF0 -_08162764: .4byte 0xFFFFFE70 -_08162768: .4byte gUnknown_85BBE20 -_0816276C: .4byte gUnknown_85BBE52 -_08162770: - movs r1, #0 - ldr r3, _08162790 - ldrb r0, [r3] - cmp r0, r2 - beq _08162788 -_0816277A: - adds r1, #1 - cmp r1, #0x13 - bhi _08162788 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _0816277A -_08162788: - cmp r1, #0x14 - bne _08162794 - movs r0, #7 - b _0816279A - .align 2, 0 -_08162790: .4byte gUnknown_85BBE3E -_08162794: - ldr r0, _081627A0 -_08162796: - adds r0, r1, r0 - ldrb r0, [r0] -_0816279A: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081627A0: .4byte gUnknown_85BBE70 - thumb_func_end IsFrontierTrainerFemale - - thumb_func_start PutNewBattleTowerRecord -PutNewBattleTowerRecord: @ 0x081627A4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - movs r1, #0 - mov r8, r1 - mov sl, r0 - movs r5, #0 - ldr r2, _08162828 - ldr r0, [r2] - mov r4, sl - ldrb r4, [r4, #0xc] - str r4, [sp, #0x18] - mov sb, r5 - movs r7, #4 - str r7, [sp, #0x1c] - ldr r1, _0816282C - adds r1, r1, r0 - mov ip, r1 -_081627CE: - movs r6, #0 - movs r3, #0 - mov r2, ip - ldrb r0, [r2] - ldr r4, [sp, #0x18] - cmp r0, r4 - bne _081627FE - mov r4, sb - mov r2, sl - adds r2, #0xc -_081627E2: - adds r3, #1 - cmp r3, #3 - bgt _081627FE - ldr r7, _08162828 - ldr r0, [r7] - adds r1, r3, r4 - ldr r7, _0816282C - adds r0, r0, r7 - adds r0, r0, r1 - adds r1, r2, r3 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - beq _081627E2 -_081627FE: - cmp r3, #4 - bne _08162848 - movs r6, #0 - ldr r1, _08162828 - ldr r0, [r1] - ldr r3, _08162830 - adds r0, r0, r3 - ldr r2, [sp, #0x1c] - adds r0, r0, r2 - ldrb r0, [r0] - mov r4, sl - ldrb r4, [r4, #8] - cmp r0, r4 - bne _08162848 - adds r1, r0, #0 - mov r2, sb - adds r2, #4 -_08162820: - cmp r1, #0xff - bne _08162834 - movs r6, #7 - b _08162848 - .align 2, 0 -_08162828: .4byte gUnknown_3005AF0 -_0816282C: .4byte 0x00000744 -_08162830: .4byte 0x0000073C -_08162834: - adds r6, #1 - cmp r6, #6 - bgt _08162848 - ldr r7, _08162874 - ldr r0, [r7] - adds r0, r0, r3 - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, r1 - beq _08162820 -_08162848: - cmp r6, #7 - beq _0816285E - movs r0, #0xec - add sb, r0 - ldr r1, [sp, #0x1c] - adds r1, #0xec - str r1, [sp, #0x1c] - add ip, r0 - adds r5, #1 - cmp r5, #4 - ble _081627CE -_0816285E: - cmp r5, #4 - bgt _08162878 - ldr r2, _08162874 - ldr r0, [r2] - movs r1, #0xec - muls r1, r5, r1 - adds r0, r0, r1 - movs r4, #0xe7 - lsls r4, r4, #3 - adds r0, r0, r4 - b _081628B6 - .align 2, 0 -_08162874: .4byte gUnknown_3005AF0 -_08162878: - movs r5, #0 - ldr r7, _081628C0 - ldr r0, [r7] - ldr r1, _081628C4 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0 - beq _081628A2 - adds r3, r7, #0 - adds r2, r1, #0 - movs r1, #0 -_0816288E: - adds r1, #0xec - adds r5, #1 - cmp r5, #4 - bgt _081628C8 - ldr r0, [r3] - adds r0, r0, r1 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r0, #0 - bne _0816288E -_081628A2: - cmp r5, #4 - bgt _081628C8 - ldr r1, _081628C0 - ldr r0, [r1] - movs r1, #0xec - muls r1, r5, r1 - adds r0, r0, r1 - movs r2, #0xe7 - lsls r2, r2, #3 - adds r0, r0, r2 -_081628B6: - mov r1, sl - movs r2, #0xec - bl memcpy - b _0816298E - .align 2, 0 -_081628C0: .4byte gUnknown_3005AF0 -_081628C4: .4byte 0x0000073A -_081628C8: - mov r2, sp - ldr r4, _08162920 - ldr r0, [r4] - ldr r3, _08162924 - adds r0, r0, r3 - ldrh r0, [r0] - movs r1, #0 - strh r0, [r2] - add r0, sp, #0xc - strh r1, [r0] - movs r7, #1 - add r8, r7 - movs r5, #1 - add r0, sp, #0xc - mov sb, r0 - mov ip, r3 -_081628E8: - movs r3, #0 - adds r7, r5, #1 - cmp r3, r8 - bge _08162932 - ldr r1, _08162920 - ldr r0, [r1] - movs r2, #0xec - adds r1, r5, #0 - muls r1, r2, r1 - adds r0, r0, r1 - mov r1, ip - adds r4, r0, r1 - mov r6, sp -_08162902: - lsls r0, r3, #1 - add r0, sp - ldrh r2, [r4] - adds r1, r2, #0 - ldrh r0, [r0] - cmp r1, r0 - bhs _08162928 - movs r3, #0 - movs r4, #1 - mov r8, r4 - strh r2, [r6] - mov r0, sb - strh r5, [r0] - b _08162932 - .align 2, 0 -_08162920: .4byte gUnknown_3005AF0 -_08162924: .4byte 0x0000073A -_08162928: - cmp r1, r0 - bhi _08162932 - adds r3, #1 - cmp r3, r8 - blt _08162902 -_08162932: - cmp r3, r8 - bne _08162958 - mov r1, r8 - lsls r2, r1, #1 - mov r4, sp - adds r3, r4, r2 - ldr r1, _081629A0 - ldr r0, [r1] - movs r4, #0xec - adds r1, r5, #0 - muls r1, r4, r1 - adds r0, r0, r1 - add r0, ip - ldrh r0, [r0] - strh r0, [r3] - add r2, sb - strh r5, [r2] - movs r0, #1 - add r8, r0 -_08162958: - adds r5, r7, #0 - cmp r5, #4 - ble _081628E8 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r1, r8 - bl __modsi3 - adds r5, r0, #0 - ldr r0, _081629A0 - ldr r0, [r0] - lsls r1, r5, #1 - add r1, sp - adds r1, #0xc - ldrh r2, [r1] - movs r1, #0xec - muls r1, r2, r1 - adds r0, r0, r1 - movs r1, #0xe7 - lsls r1, r1, #3 - adds r0, r0, r1 - mov r1, sl - movs r2, #0xec - bl memcpy -_0816298E: - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081629A0: .4byte gUnknown_3005AF0 - thumb_func_end PutNewBattleTowerRecord - - thumb_func_start GetFrontierTrainerFrontSpriteId -GetFrontierTrainerFrontSpriteId: @ 0x081629A4 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r5, r4, #0 - bl SetFacilityPtrsGetLevel - movs r0, #0xfa - lsls r0, r0, #1 - cmp r4, r0 - bne _081629D4 - ldr r1, _081629C8 - ldr r0, _081629CC - ldr r0, [r0] - ldr r2, _081629D0 - adds r0, r0, r2 - ldrb r0, [r0] - adds r0, r0, r1 - b _08162ACC - .align 2, 0 -_081629C8: .4byte gUnknown_82EFF00 -_081629CC: .4byte gUnknown_3005AF0 -_081629D0: .4byte 0x00000BED -_081629D4: - ldr r0, _081629E4 - cmp r4, r0 - bne _081629E8 - bl sub_081A48AC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _08162ACE - .align 2, 0 -_081629E4: .4byte 0x000003FE -_081629E8: - ldr r0, _08162A00 - cmp r4, r0 - bhi _08162A0C - ldr r2, _08162A04 - ldr r0, _08162A08 - ldr r1, [r0] - movs r0, #0x34 - muls r0, r4, r0 - adds r0, r0, r1 - ldrb r0, [r0] - adds r0, r0, r2 - b _08162ACC - .align 2, 0 -_08162A00: .4byte 0x0000012B -_08162A04: .4byte gUnknown_82EFF00 -_08162A08: .4byte gUnknown_203B954 -_08162A0C: - ldr r0, _08162A30 - cmp r4, r0 - bhi _08162A68 - ldr r0, _08162A34 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - beq _08162A3C - ldr r4, _08162A38 - bl sub_081861E0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r4 - b _08162ACC - .align 2, 0 -_08162A30: .4byte 0x0000018F -_08162A34: .4byte gUnknown_2022C90 -_08162A38: .4byte gUnknown_82EFF00 -_08162A3C: - ldr r3, _08162A58 - ldr r0, _08162A5C - ldr r0, [r0] - ldr r1, _08162A60 - adds r2, r4, r1 - movs r1, #0xec - muls r1, r2, r1 - adds r0, r0, r1 - ldr r2, _08162A64 - adds r0, r0, r2 - ldrb r0, [r0] - adds r0, r0, r3 - b _08162ACC - .align 2, 0 -_08162A58: .4byte gUnknown_82EFF00 -_08162A5C: .4byte gUnknown_3005AF0 -_08162A60: .4byte 0xFFFFFED4 -_08162A64: .4byte 0x00000739 -_08162A68: - ldr r0, _08162AA0 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - bne _08162AB4 - ldr r4, _08162AA4 - ldr r3, _08162AA8 - ldr r0, _08162AAC - ldr r1, [r0] - ldr r0, _08162AB0 - adds r2, r5, r0 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r1, r1, r0 - adds r1, #0xdc - ldrb r1, [r1] - lsls r1, r1, #0x1b - lsrs r1, r1, #0x1b - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #4 - adds r0, r0, r3 - ldrb r0, [r0, #0xa] - adds r0, r0, r4 - b _08162ACC - .align 2, 0 -_08162AA0: .4byte gUnknown_2022C90 -_08162AA4: .4byte gUnknown_82EFF00 -_08162AA8: .4byte gUnknown_85DC21C -_08162AAC: .4byte gUnknown_3005AF0 -_08162AB0: .4byte 0xFFFFFE70 -_08162AB4: - ldr r5, _08162AD4 - ldr r4, _08162AD8 - bl sub_081861EC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #4 - adds r1, r1, r4 - ldrb r0, [r1, #0xa] - adds r0, r0, r5 -_08162ACC: - ldrb r0, [r0] -_08162ACE: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08162AD4: .4byte gUnknown_82EFF00 -_08162AD8: .4byte gUnknown_85DC21C - thumb_func_end GetFrontierTrainerFrontSpriteId - - thumb_func_start GetFrontierOpponentClass -GetFrontierOpponentClass: @ 0x08162ADC - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r5, r4, #0 - bl SetFacilityPtrsGetLevel - movs r0, #0xfa - lsls r0, r0, #1 - cmp r4, r0 - bne _08162B0C - ldr r1, _08162B00 - ldr r0, _08162B04 - ldr r0, [r0] - ldr r2, _08162B08 - adds r0, r0, r2 - ldrb r0, [r0] - b _08162B2A - .align 2, 0 -_08162B00: .4byte gUnknown_82EFF52 -_08162B04: .4byte gUnknown_3005AF0 -_08162B08: .4byte 0x00000BED -_08162B0C: - ldr r0, _08162B1C - cmp r4, r0 - bne _08162B20 - bl sub_081A48F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _08162C22 - .align 2, 0 -_08162B1C: .4byte 0x000003FE -_08162B20: - ldr r0, _08162B30 - cmp r4, r0 - bne _08162B3C - ldr r0, _08162B34 - ldr r1, _08162B38 -_08162B2A: - adds r0, r0, r1 - ldrb r0, [r0] - b _08162C22 - .align 2, 0 -_08162B30: .4byte 0x00000C03 -_08162B34: .4byte gUnknown_82E383C -_08162B38: .4byte 0x00006481 -_08162B3C: - ldr r0, _08162B58 - cmp r4, r0 - bhi _08162B64 - ldr r2, _08162B5C - ldr r0, _08162B60 - ldr r1, [r0] - movs r0, #0x34 - muls r0, r4, r0 - adds r0, r0, r1 - ldrb r0, [r0] - adds r0, r0, r2 - ldrb r0, [r0] - b _08162C22 - .align 2, 0 -_08162B58: .4byte 0x0000012B -_08162B5C: .4byte gUnknown_82EFF52 -_08162B60: .4byte gUnknown_203B954 -_08162B64: - ldr r0, _08162B88 - cmp r4, r0 - bhi _08162BC0 - ldr r0, _08162B8C - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - beq _08162B94 - ldr r4, _08162B90 - bl sub_081861E0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r4 - ldrb r0, [r0] - b _08162C22 - .align 2, 0 -_08162B88: .4byte 0x0000018F -_08162B8C: .4byte gUnknown_2022C90 -_08162B90: .4byte gUnknown_82EFF52 -_08162B94: - ldr r3, _08162BB0 - ldr r0, _08162BB4 - ldr r0, [r0] - ldr r1, _08162BB8 - adds r2, r4, r1 - movs r1, #0xec - muls r1, r2, r1 - adds r0, r0, r1 - ldr r2, _08162BBC - adds r0, r0, r2 - ldrb r0, [r0] - adds r0, r0, r3 - ldrb r0, [r0] - b _08162C22 - .align 2, 0 -_08162BB0: .4byte gUnknown_82EFF52 -_08162BB4: .4byte gUnknown_3005AF0 -_08162BB8: .4byte 0xFFFFFED4 -_08162BBC: .4byte 0x00000739 -_08162BC0: - ldr r0, _08162BEC - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - beq _08162BF8 - ldr r5, _08162BF0 - ldr r4, _08162BF4 - bl sub_081861EC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #4 - adds r1, r1, r4 - ldrb r0, [r1, #0xa] - adds r0, r0, r5 - ldrb r0, [r0] - b _08162C22 - .align 2, 0 -_08162BEC: .4byte gUnknown_2022C90 -_08162BF0: .4byte gUnknown_82EFF52 -_08162BF4: .4byte gUnknown_85DC21C -_08162BF8: - ldr r4, _08162C28 - ldr r3, _08162C2C - ldr r0, _08162C30 - ldr r1, [r0] - ldr r0, _08162C34 - adds r2, r5, r0 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r1, r1, r0 - adds r1, #0xdc - ldrb r1, [r1] - lsls r1, r1, #0x1b - lsrs r1, r1, #0x1b - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #4 - adds r0, r0, r3 - ldrb r0, [r0, #0xa] - adds r0, r0, r4 - ldrb r0, [r0] -_08162C22: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08162C28: .4byte gUnknown_82EFF52 -_08162C2C: .4byte gUnknown_85DC21C -_08162C30: .4byte gUnknown_3005AF0 -_08162C34: .4byte 0xFFFFFE70 - thumb_func_end GetFrontierOpponentClass - - thumb_func_start sub_08162C38 -sub_08162C38: @ 0x08162C38 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r5, r4, #0 - bl SetFacilityPtrsGetLevel - movs r0, #0xfa - lsls r0, r0, #1 - cmp r4, r0 - bne _08162C5C - ldr r0, _08162C54 - ldr r0, [r0] - ldr r1, _08162C58 - b _08162CAC - .align 2, 0 -_08162C54: .4byte gUnknown_3005AF0 -_08162C58: .4byte 0x00000BED -_08162C5C: - ldr r0, _08162C6C - cmp r4, r0 - bhi _08162C74 - ldr r0, _08162C70 - ldr r1, [r0] - movs r0, #0x34 - muls r0, r4, r0 - b _08162CAC - .align 2, 0 -_08162C6C: .4byte 0x0000012B -_08162C70: .4byte gUnknown_203B954 -_08162C74: - ldr r0, _08162C94 - cmp r4, r0 - bhi _08162CC0 - ldr r0, _08162C98 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - beq _08162C9C - bl sub_081861E0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _08162D10 - .align 2, 0 -_08162C94: .4byte 0x0000018F -_08162C98: .4byte gUnknown_2022C90 -_08162C9C: - ldr r0, _08162CB4 - ldr r0, [r0] - ldr r1, _08162CB8 - adds r2, r4, r1 - movs r1, #0xec - muls r1, r2, r1 - adds r0, r0, r1 - ldr r1, _08162CBC -_08162CAC: - adds r0, r0, r1 - ldrb r0, [r0] - b _08162D10 - .align 2, 0 -_08162CB4: .4byte gUnknown_3005AF0 -_08162CB8: .4byte 0xFFFFFED4 -_08162CBC: .4byte 0x00000739 -_08162CC0: - ldr r0, _08162CE4 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - beq _08162CEC - ldr r4, _08162CE8 - bl sub_081861EC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #4 - adds r1, r1, r4 - ldrb r0, [r1, #0xa] - b _08162D10 - .align 2, 0 -_08162CE4: .4byte gUnknown_2022C90 -_08162CE8: .4byte gUnknown_85DC21C -_08162CEC: - ldr r3, _08162D18 - ldr r0, _08162D1C - ldr r1, [r0] - ldr r0, _08162D20 - adds r2, r5, r0 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r1, r1, r0 - adds r1, #0xdc - ldrb r1, [r1] - lsls r1, r1, #0x1b - lsrs r1, r1, #0x1b - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #4 - adds r0, r0, r3 - ldrb r0, [r0, #0xa] -_08162D10: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08162D18: .4byte gUnknown_85DC21C -_08162D1C: .4byte gUnknown_3005AF0 -_08162D20: .4byte 0xFFFFFE70 - thumb_func_end sub_08162C38 - - thumb_func_start sub_08162D24 -sub_08162D24: @ 0x08162D24 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - movs r4, #0 - bl SetFacilityPtrsGetLevel - movs r0, #0xfa - lsls r0, r0, #1 - cmp r5, r0 - bne _08162D58 - ldr r0, _08162D54 - ldr r0, [r0] - movs r1, #0xbf - lsls r1, r1, #4 - adds r2, r0, r1 -_08162D44: - adds r0, r6, r4 - adds r1, r2, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r4, #1 - cmp r4, #6 - ble _08162D44 - b _08162E76 - .align 2, 0 -_08162D54: .4byte gUnknown_3005AF0 -_08162D58: - ldr r0, _08162D68 - cmp r5, r0 - bne _08162D6C - adds r0, r6, #0 - bl CopyFrontierBrainTrainerName - b _08162E7C - .align 2, 0 -_08162D68: .4byte 0x000003FE -_08162D6C: - ldr r0, _08162D84 - cmp r5, r0 - bne _08162D8C - ldr r2, _08162D88 -_08162D74: - adds r0, r6, r4 - adds r1, r4, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r4, #1 - cmp r4, #6 - ble _08162D74 - b _08162E76 - .align 2, 0 -_08162D84: .4byte 0x00000C03 -_08162D88: .4byte gUnknown_82E9CC0 -_08162D8C: - ldr r0, _08162DB0 - cmp r5, r0 - bhi _08162DB8 - ldr r0, _08162DB4 - ldr r1, [r0] - movs r0, #0x34 - muls r0, r5, r0 - adds r0, r0, r1 - adds r2, r0, #4 -_08162D9E: - adds r0, r6, r4 - adds r1, r2, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r4, #1 - cmp r4, #6 - ble _08162D9E - b _08162E76 - .align 2, 0 -_08162DB0: .4byte 0x0000012B -_08162DB4: .4byte gUnknown_203B954 -_08162DB8: - ldr r0, _08162DD4 - cmp r5, r0 - bhi _08162E0C - ldr r0, _08162DD8 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - beq _08162DDC - adds r0, r6, #0 - bl sub_081861C0 - b _08162E7C - .align 2, 0 -_08162DD4: .4byte 0x0000018F -_08162DD8: .4byte gUnknown_2022C90 -_08162DDC: - ldr r0, _08162E00 - ldr r1, [r0] - ldr r0, _08162E04 - adds r2, r5, r0 - movs r0, #0xec - muls r0, r2, r0 - ldr r2, _08162E08 - adds r1, r1, r2 - adds r2, r0, r1 -_08162DEE: - adds r1, r6, r4 - ldrb r0, [r2] - strb r0, [r1] - adds r2, #1 - adds r4, #1 - cmp r4, #6 - ble _08162DEE - b _08162E76 - .align 2, 0 -_08162E00: .4byte gUnknown_3005AF0 -_08162E04: .4byte 0xFFFFFED4 -_08162E08: .4byte 0x0000073C -_08162E0C: - ldr r0, _08162E3C - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - beq _08162E44 - ldr r5, _08162E40 -_08162E1C: - bl sub_081861EC - adds r2, r6, r4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #4 - adds r1, r4, r1 - adds r1, r1, r5 - ldrb r0, [r1] - strb r0, [r2] - adds r4, #1 - cmp r4, #6 - ble _08162E1C - b _08162E76 - .align 2, 0 -_08162E3C: .4byte gUnknown_2022C90 -_08162E40: .4byte gUnknown_85DC21C -_08162E44: - ldr r7, _08162E84 - ldr r0, _08162E88 - ldr r2, [r0] - ldr r0, _08162E8C - adds r1, r5, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, r2, r0 - adds r3, r2, #0 - adds r3, #0xdc -_08162E5A: - adds r2, r6, r4 - ldrb r1, [r3] - lsls r1, r1, #0x1b - lsrs r1, r1, #0x1b - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #4 - adds r0, r4, r0 - adds r0, r0, r7 - ldrb r0, [r0] - strb r0, [r2] - adds r4, #1 - cmp r4, #6 - ble _08162E5A -_08162E76: - adds r1, r6, r4 - movs r0, #0xff - strb r0, [r1] -_08162E7C: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08162E84: .4byte gUnknown_85DC21C -_08162E88: .4byte gUnknown_3005AF0 -_08162E8C: .4byte 0xFFFFFE70 - thumb_func_end sub_08162D24 - - thumb_func_start sub_08162E90 -sub_08162E90: @ 0x08162E90 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r5, r4, #0 - bl SetFacilityPtrsGetLevel - movs r0, #0xfa - lsls r0, r0, #1 - cmp r4, r0 - bne _08162EB4 - ldr r0, _08162EAC - ldr r0, [r0] - ldr r1, _08162EB0 - b _08162EF6 - .align 2, 0 -_08162EAC: .4byte gUnknown_3005AF0 -_08162EB0: .4byte 0x00000BED -_08162EB4: - ldr r0, _08162EC4 - cmp r4, r0 - bne _08162EC8 - bl IsFrontierBrainFemale - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _08162F62 - .align 2, 0 -_08162EC4: .4byte 0x000003FE -_08162EC8: - ldr r0, _08162ED8 - cmp r4, r0 - bhi _08162EE0 - ldr r0, _08162EDC - ldr r1, [r0] - movs r0, #0x34 - muls r0, r4, r0 - b _08162EF6 - .align 2, 0 -_08162ED8: .4byte 0x0000012B -_08162EDC: .4byte gUnknown_203B954 -_08162EE0: - ldr r0, _08162EFC - cmp r4, r0 - bhi _08162F0C - ldr r0, _08162F00 - ldr r0, [r0] - ldr r1, _08162F04 - adds r2, r4, r1 - movs r1, #0xec - muls r1, r2, r1 - adds r0, r0, r1 - ldr r1, _08162F08 -_08162EF6: - adds r0, r0, r1 - ldrb r2, [r0] - b _08162F30 - .align 2, 0 -_08162EFC: .4byte 0x0000018F -_08162F00: .4byte gUnknown_3005AF0 -_08162F04: .4byte 0xFFFFFED4 -_08162F08: .4byte 0x00000739 -_08162F0C: - ldr r3, _08162F50 - ldr r0, _08162F54 - ldr r1, [r0] - ldr r0, _08162F58 - adds r2, r5, r0 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r1, r1, r0 - adds r1, #0xdc - ldrb r1, [r1] - lsls r1, r1, #0x1b - lsrs r1, r1, #0x1b - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #4 - adds r0, r0, r3 - ldrb r2, [r0, #0xa] -_08162F30: - movs r1, #0 - ldr r3, _08162F5C - ldrb r0, [r3] - cmp r0, r2 - beq _08162F48 -_08162F3A: - adds r1, #1 - cmp r1, #0x13 - bhi _08162F48 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _08162F3A -_08162F48: - cmp r1, #0x14 - bne _08162F60 - movs r0, #0 - b _08162F62 - .align 2, 0 -_08162F50: .4byte gUnknown_85DC21C -_08162F54: .4byte gUnknown_3005AF0 -_08162F58: .4byte 0xFFFFFE70 -_08162F5C: .4byte gUnknown_85BBE3E -_08162F60: - movs r0, #1 -_08162F62: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_08162E90 - - thumb_func_start FillFrontierTrainerParty -FillFrontierTrainerParty: @ 0x08162F68 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl ZeroEnemyPartyMons - ldr r0, _08162F88 - ldrh r0, [r0] - movs r1, #0 - adds r2, r4, #0 - bl FillTrainerParty - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08162F88: .4byte gUnknown_203886A - thumb_func_end FillFrontierTrainerParty - - thumb_func_start FillFrontierTrainersParties -FillFrontierTrainersParties: @ 0x08162F8C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl ZeroEnemyPartyMons - ldr r0, _08162FB8 - ldrh r0, [r0] - movs r1, #0 - adds r2, r4, #0 - bl FillTrainerParty - ldr r0, _08162FBC - ldrh r0, [r0] - movs r1, #3 - adds r2, r4, #0 - bl FillTrainerParty - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08162FB8: .4byte gUnknown_203886A -_08162FBC: .4byte gUnknown_203886C - thumb_func_end FillFrontierTrainersParties - - thumb_func_start FillTentTrainerParty -FillTentTrainerParty: @ 0x08162FC0 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl ZeroEnemyPartyMons - ldr r0, _08162FE0 - ldrh r0, [r0] - movs r1, #0 - adds r2, r4, #0 - bl FillTentTrainerParty_ - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08162FE0: .4byte gUnknown_203886A - thumb_func_end FillTentTrainerParty - - thumb_func_start FillTrainerParty -FillTrainerParty: @ 0x08162FE4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x40 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp, #0x18] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x1c] - add r4, sp, #0x14 - movs r0, #0xff - strb r0, [r4] - bl SetFacilityPtrsGetLevel - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x20] - ldr r0, _08163048 - cmp r5, r0 - bhi _08163058 - adds r0, r5, #0 - bl sub_08165B14 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x24] - ldr r0, _0816304C - ldrh r2, [r0] - ldr r0, _08163050 - ldr r1, [r0] - movs r0, #0x34 - muls r0, r2, r0 - adds r0, r0, r1 - ldr r0, [r0, #0x30] - str r0, [sp, #0x2c] - movs r0, #0 - str r0, [sp, #0x28] - ldr r2, [sp, #0x2c] - ldrh r1, [r2] - ldr r0, _08163054 - cmp r1, r0 - bne _08163044 - b _08163198 -_08163044: - b _08163180 - .align 2, 0 -_08163048: .4byte 0x0000012B -_0816304C: .4byte gUnknown_203886A -_08163050: .4byte gUnknown_203B954 -_08163054: .4byte 0x0000FFFF -_08163058: - movs r0, #0xfa - lsls r0, r0, #1 - cmp r5, r0 - bne _081630A0 - ldr r7, [sp, #0x18] - adds r0, r7, #3 - cmp r7, r0 - blt _0816306A - b _08163346 -_0816306A: - ldr r4, _08163098 -_0816306C: - movs r0, #0x64 - muls r0, r7, r0 - ldr r1, _0816309C - adds r0, r0, r1 - ldr r5, [sp, #0x18] - subs r2, r7, r5 - movs r1, #0x2c - muls r2, r1, r2 - movs r6, #0xc2 - lsls r6, r6, #4 - adds r2, r2, r6 - ldr r1, [r4] - adds r1, r1, r2 - bl sub_08067D80 - adds r7, #1 - adds r0, r5, #0 - adds r0, #3 - cmp r7, r0 - blt _0816306C - b _08163346 - .align 2, 0 -_08163098: .4byte gUnknown_3005AF0 -_0816309C: .4byte gUnknown_20243E8 -_081630A0: - ldr r0, _081630AC - cmp r5, r0 - bne _081630B0 - bl CreateFrontierBrainPokemon - b _08163346 - .align 2, 0 -_081630AC: .4byte 0x000003FE -_081630B0: - ldr r0, _08163120 - cmp r5, r0 - bhi _08163138 - movs r6, #0 - ldr r7, [sp, #0x18] - ldr r1, [sp, #0x1c] - adds r0, r7, r1 - cmp r7, r0 - blt _081630C4 - b _08163346 -_081630C4: - ldr r2, _08163124 - adds r1, r5, r2 - movs r0, #0xec - adds r2, r1, #0 - muls r2, r0, r2 - mov r8, r2 - muls r0, r5, r0 - ldr r5, _08163128 - adds r4, r0, r5 -_081630D6: - ldr r0, _0816312C - ldr r3, [r0] - movs r0, #0x2c - adds r2, r6, #0 - muls r2, r0, r2 - mov r1, r8 - adds r0, r2, r1 - adds r1, r3, r0 - ldr r5, _08163130 - adds r0, r1, r5 - ldrh r0, [r0] - cmp r0, #0 - beq _08163110 - adds r5, #0xc - adds r0, r1, r5 - ldrb r0, [r0] - ldr r1, [sp, #0x20] - cmp r0, r1 - bhi _08163110 - movs r0, #0x64 - muls r0, r7, r0 - ldr r1, _08163134 - adds r0, r0, r1 - adds r1, r3, r4 - adds r2, #0x34 - adds r1, r1, r2 - movs r2, #0 - bl CreateBattleTowerMon2 -_08163110: - adds r6, #1 - adds r7, #1 - ldr r2, [sp, #0x18] - ldr r5, [sp, #0x1c] - adds r0, r2, r5 - cmp r7, r0 - blt _081630D6 - b _08163346 - .align 2, 0 -_08163120: .4byte 0x0000018F -_08163124: .4byte 0xFFFFFED4 -_08163128: .4byte 0xFFFEF2A8 -_0816312C: .4byte gUnknown_3005AF0 -_08163130: .4byte 0x0000076C -_08163134: .4byte gUnknown_20243E8 -_08163138: - ldr r7, [sp, #0x18] - adds r0, r7, #3 - cmp r7, r0 - blt _08163142 - b _08163346 -_08163142: - ldr r6, _08163174 - lsls r0, r5, #4 - adds r0, r0, r5 - lsls r0, r0, #2 - ldr r1, _08163178 - adds r5, r0, r1 - movs r4, #0 -_08163150: - movs r0, #0x64 - muls r0, r7, r0 - ldr r1, _0816317C - adds r0, r0, r1 - ldr r1, [r6] - adds r1, r1, r5 - lsrs r2, r4, #0x18 - bl sub_08068080 - movs r2, #0x80 - lsls r2, r2, #0x11 - adds r4, r4, r2 - adds r7, #1 - ldr r0, [sp, #0x18] - adds r0, #3 - cmp r7, r0 - blt _08163150 - b _08163346 - .align 2, 0 -_08163174: .4byte gUnknown_3005AF0 -_08163178: .4byte 0xFFFF969C -_0816317C: .4byte gUnknown_20243E8 -_08163180: - ldr r0, [sp, #0x28] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x28] - lsls r0, r0, #1 - ldr r5, [sp, #0x2c] - adds r0, r0, r5 - ldrh r1, [r0] - ldr r0, _081631E8 - cmp r1, r0 - bne _08163180 -_08163198: - movs r7, #0 - bl Random - adds r4, r0, #0 - bl Random - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r0, r0, #0x10 - orrs r4, r0 - str r4, [sp, #0x30] - ldr r6, [sp, #0x1c] - cmp r7, r6 - bne _081631B6 - b _08163346 -_081631B6: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, [sp, #0x28] - bl __modsi3 - lsls r0, r0, #1 - ldr r1, [sp, #0x2c] - adds r0, r0, r1 - ldrh r4, [r0] - ldr r2, [sp, #0x20] - cmp r2, #0x32 - beq _081631D6 - cmp r2, #0x14 - bne _081631DE -_081631D6: - ldr r0, _081631EC - cmp r4, r0 - bls _081631DE - b _0816333E -_081631DE: - movs r6, #0 - ldr r5, [sp, #0x18] - adds r5, r5, r7 - mov r8, r5 - b _081631F2 - .align 2, 0 -_081631E8: .4byte 0x0000FFFF -_081631EC: .4byte 0x00000351 -_081631F0: - adds r6, #1 -_081631F2: - cmp r6, r8 - bge _08163216 - movs r1, #0x64 - adds r0, r6, #0 - muls r0, r1, r0 - ldr r2, _08163358 - adds r0, r0, r2 - movs r1, #0xb - movs r2, #0 - bl GetMonData - ldr r1, _0816335C - ldr r2, [r1] - lsls r1, r4, #4 - adds r1, r1, r2 - ldrh r1, [r1] - cmp r0, r1 - bne _081631F0 -_08163216: - cmp r6, r8 - beq _0816321C - b _0816333E -_0816321C: - movs r6, #0 - cmp r6, r8 - bge _08163266 - ldr r5, _08163360 - mov sb, r5 - movs r3, #0 -_08163228: - ldr r0, _08163358 - adds r5, r3, r0 - adds r0, r5, #0 - movs r1, #0xc - movs r2, #0 - str r3, [sp, #0x38] - bl GetMonData - ldr r3, [sp, #0x38] - cmp r0, #0 - beq _0816325E - adds r0, r5, #0 - movs r1, #0xc - movs r2, #0 - bl GetMonData - ldr r1, _0816335C - ldr r2, [r1] - lsls r1, r4, #4 - adds r1, r1, r2 - ldrb r1, [r1, #0xa] - lsls r1, r1, #1 - add r1, sb - ldr r3, [sp, #0x38] - ldrh r1, [r1] - cmp r0, r1 - beq _08163266 -_0816325E: - adds r3, #0x64 - adds r6, #1 - cmp r6, r8 - blt _08163228 -_08163266: - cmp r6, r8 - bne _0816333E - movs r6, #0 - cmp r6, r7 - bge _08163288 - add r0, sp, #0xc - ldrh r0, [r0] - cmp r0, r4 - beq _08163288 - add r1, sp, #0xc -_0816327A: - adds r1, #2 - adds r6, #1 - cmp r6, r7 - bge _08163288 - ldrh r0, [r1] - cmp r0, r4 - bne _0816327A -_08163288: - cmp r6, r7 - bne _0816333E - lsls r0, r7, #1 - add r0, sp - adds r0, #0xc - strh r4, [r0] - movs r1, #0x64 - mov r0, r8 - muls r0, r1, r0 - ldr r2, _08163358 - adds r0, r0, r2 - ldr r5, _0816335C - ldr r2, [r5] - lsls r4, r4, #4 - adds r2, r4, r2 - ldrh r1, [r2] - ldrb r3, [r2, #0xc] - ldr r6, [sp, #0x24] - str r6, [sp] - ldrb r2, [r2, #0xb] - str r2, [sp, #4] - ldr r2, [sp, #0x30] - str r2, [sp, #8] - ldr r2, [sp, #0x20] - bl CreateMonWithEVSpreadNatureOTID - movs r0, #0xff - mov r6, sp - strb r0, [r6, #0x14] - movs r6, #0 - adds r0, r7, #1 - str r0, [sp, #0x34] - mov sb, r4 - movs r0, #0x64 - mov r3, r8 - muls r3, r0, r3 - mov r1, sb - str r1, [sp, #0x3c] - ldr r2, _08163358 - mov sl, r2 -_081632D8: - ldr r0, [r5] - ldr r7, [sp, #0x3c] - adds r0, r7, r0 - lsls r4, r6, #1 - adds r0, #2 - adds r0, r0, r4 - ldrh r1, [r0] - lsls r2, r6, #0x18 - lsrs r2, r2, #0x18 - mov r7, sl - adds r0, r3, r7 - str r3, [sp, #0x38] - bl SetMonMoveSlot - ldr r0, [r5] - ldr r1, [sp, #0x3c] - adds r0, r1, r0 - adds r0, #2 - adds r0, r0, r4 - ldrh r0, [r0] - ldr r3, [sp, #0x38] - cmp r0, #0xda - bne _0816330C - movs r0, #0 - mov r2, sp - strb r0, [r2, #0x14] -_0816330C: - adds r6, #1 - cmp r6, #3 - ble _081632D8 - movs r5, #0x64 - mov r4, r8 - muls r4, r5, r4 - ldr r6, _08163358 - adds r4, r4, r6 - adds r0, r4, #0 - movs r1, #0x20 - add r2, sp, #0x14 - bl SetMonData - ldr r0, _0816335C - ldr r0, [r0] - add r0, sb - ldrb r2, [r0, #0xa] - lsls r2, r2, #1 - ldr r0, _08163360 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0xc - bl SetMonData - ldr r7, [sp, #0x34] -_0816333E: - ldr r0, [sp, #0x1c] - cmp r7, r0 - beq _08163346 - b _081631B6 -_08163346: - add sp, #0x40 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08163358: .4byte gUnknown_20243E8 -_0816335C: .4byte gUnknown_203B958 -_08163360: .4byte gUnknown_85ADBF4 - thumb_func_end FillTrainerParty - - thumb_func_start Unused_CreateApprenticeMons -Unused_CreateApprenticeMons: @ 0x08163364 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp, #8] - movs r1, #0xff - add r0, sp, #4 - strb r1, [r0] - ldr r0, _08163438 - ldr r2, [r0] - movs r0, #0xdc - adds r0, r0, r2 - mov sl, r0 - ldrb r0, [r0, #1] - movs r1, #9 - str r1, [sp, #0x10] - cmp r0, #4 - bhi _08163394 - movs r0, #6 - str r0, [sp, #0x10] -_08163394: - ldr r1, _0816343C - adds r0, r2, r1 - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - movs r1, #0x32 - str r1, [sp, #0xc] - cmp r0, #0 - beq _081633AA - movs r0, #0x64 - str r0, [sp, #0xc] -_081633AA: - movs r7, #0 - adds r2, #0xe2 - str r2, [sp, #0x14] - add r1, sp, #4 - mov sb, r1 -_081633B4: - ldr r2, [sp, #8] - adds r6, r2, r7 - movs r0, #0x64 - muls r0, r6, r0 - ldr r1, _08163440 - adds r0, r0, r1 - lsls r5, r7, #1 - adds r4, r5, r7 - lsls r4, r4, #2 - mov r2, sl - adds r1, r2, r4 - ldrh r1, [r1, #4] - movs r2, #8 - str r2, [sp] - ldr r2, [sp, #0xc] - ldr r3, [sp, #0x10] - bl CreateMonWithEVSpread - movs r0, #0xff - mov r1, sb - strb r0, [r1] - adds r2, r7, #1 - mov r8, r2 - movs r1, #3 -_081633E4: - ldr r2, [sp, #0x14] - adds r0, r2, r4 - ldrh r0, [r0] - cmp r0, #0xda - bne _081633F4 - movs r2, #0 - mov r0, sb - strb r2, [r0] -_081633F4: - adds r4, #2 - subs r1, #1 - cmp r1, #0 - bge _081633E4 - movs r0, #0x64 - adds r4, r6, #0 - muls r4, r0, r4 - ldr r0, _08163440 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x20 - add r2, sp, #4 - bl SetMonData - adds r2, r5, r7 - lsls r2, r2, #2 - add r2, sl - adds r2, #0xe - adds r0, r4, #0 - movs r1, #0xc - bl SetMonData - mov r7, r8 - cmp r7, #3 - bne _081633B4 - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08163438: .4byte gUnknown_3005AF0 -_0816343C: .4byte 0x00000CA9 -_08163440: .4byte gUnknown_20243E8 - thumb_func_end Unused_CreateApprenticeMons - - thumb_func_start RandomizeFacilityTrainerMonSet -RandomizeFacilityTrainerMonSet: @ 0x08163444 - push {r4, r5, r6, lr} - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - bl SetFacilityPtrsGetLevel - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _08163468 - ldr r1, [r0] - movs r0, #0x34 - muls r0, r4, r0 - adds r0, r0, r1 - ldr r5, [r0, #0x30] - movs r4, #0 - ldrh r1, [r5] - b _08163478 - .align 2, 0 -_08163468: .4byte gUnknown_203B954 -_0816346C: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #1 - adds r0, r0, r5 - ldrh r1, [r0] -_08163478: - ldr r0, _081634A8 - cmp r1, r0 - bne _0816346C -_0816347E: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r4, #0 - bl __modsi3 - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r1, [r0] - cmp r6, #0x32 - beq _0816349A - cmp r6, #0x14 - bne _081634A0 -_0816349A: - ldr r0, _081634AC - cmp r1, r0 - bhi _0816347E -_081634A0: - adds r0, r1, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_081634A8: .4byte 0x0000FFFF -_081634AC: .4byte 0x00000351 - thumb_func_end RandomizeFacilityTrainerMonSet - - thumb_func_start FillFactoryTrainerParty -FillFactoryTrainerParty: @ 0x081634B0 - push {lr} - bl ZeroEnemyPartyMons - ldr r0, _081634D4 - ldr r0, [r0] - ldr r1, _081634D8 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - cmp r0, #2 - beq _081634E0 - ldr r0, _081634DC - ldrh r0, [r0] - movs r1, #0 - bl FillFactoryFrontierTrainerParty - b _081634EA - .align 2, 0 -_081634D4: .4byte gUnknown_3005AF0 -_081634D8: .4byte 0x00000CA9 -_081634DC: .4byte gUnknown_203886A -_081634E0: - ldr r0, _081634F0 - ldrh r0, [r0] - movs r1, #0 - bl FillFactoryTentTrainerParty -_081634EA: - pop {r0} - bx r0 - .align 2, 0 -_081634F0: .4byte gUnknown_203886A - thumb_func_end FillFactoryTrainerParty - - thumb_func_start FillFactoryFrontierTrainerParty -FillFactoryFrontierTrainerParty: @ 0x081634F4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - adds r3, r2, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp, #0x10] - ldr r0, _0816354C - cmp r2, r0 - bhi _0816356A - ldr r4, _08163550 - ldr r0, _08163554 - bl VarGet - lsls r0, r0, #0x18 - ldr r4, [r4] - lsrs r0, r0, #0x16 - movs r2, #0xce - lsls r2, r2, #4 - adds r1, r4, r2 - adds r1, r1, r0 - ldrh r0, [r1] - movs r1, #7 - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r3, _08163558 - adds r4, r4, r3 - ldrh r0, [r4] - cmp r0, #5 - bhi _0816355C - adds r0, r1, #0 - movs r1, #0 - bl GetFactoryMonFixedIV - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _081635C6 - .align 2, 0 -_0816354C: .4byte 0x0000012B -_08163550: .4byte gUnknown_3005AF0 -_08163554: .4byte 0x000040CE -_08163558: .4byte 0x00000CB2 -_0816355C: - adds r0, r1, #0 - movs r1, #1 - bl GetFactoryMonFixedIV - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _081635C6 -_0816356A: - movs r0, #0xfa - lsls r0, r0, #1 - cmp r2, r0 - bne _081635B4 - ldr r7, [sp, #0x10] - adds r0, r7, #3 - cmp r7, r0 - blt _0816357C - b _08163696 -_0816357C: - ldr r4, _081635AC -_0816357E: - movs r0, #0x64 - muls r0, r7, r0 - ldr r1, _081635B0 - adds r0, r0, r1 - ldr r1, [sp, #0x10] - subs r2, r7, r1 - movs r1, #0x2c - muls r2, r1, r2 - movs r3, #0xc2 - lsls r3, r3, #4 - adds r2, r2, r3 - ldr r1, [r4] - adds r1, r1, r2 - bl sub_08067D80 - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, [sp, #0x10] - adds r0, #3 - cmp r7, r0 - blt _0816357E - b _08163696 - .align 2, 0 -_081635AC: .4byte gUnknown_3005AF0 -_081635B0: .4byte gUnknown_20243E8 -_081635B4: - ldr r0, _081635C0 - cmp r3, r0 - bne _081635C4 - bl FillFactoryBrainParty - b _08163696 - .align 2, 0 -_081635C0: .4byte 0x000003FE -_081635C4: - movs r0, #0x1f -_081635C6: - str r0, [sp, #0x18] - bl SetFacilityPtrsGetLevel - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x14] - ldr r0, _081636A8 - ldr r1, [r0] - ldrb r2, [r1, #0xa] - ldrb r0, [r1, #0xb] - lsls r0, r0, #8 - orrs r2, r0 - ldrb r0, [r1, #0xc] - lsls r0, r0, #0x10 - orrs r2, r0 - ldrb r0, [r1, #0xd] - lsls r0, r0, #0x18 - orrs r2, r0 - mov r8, r2 - movs r7, #0 -_081635EE: - ldr r1, _081636AC - lsls r0, r7, #1 - adds r0, r0, r1 - ldrh r0, [r0] - mov sb, r0 - ldr r3, [sp, #0x10] - adds r5, r3, r7 - movs r0, #0x64 - adds r6, r5, #0 - muls r6, r0, r6 - ldr r1, _081636B0 - adds r0, r6, r1 - ldr r3, _081636B4 - ldr r2, [r3] - mov r1, sb - lsls r4, r1, #4 - adds r2, r4, r2 - ldrh r1, [r2] - ldrb r3, [r2, #0xc] - mov sl, r3 - ldr r3, [sp, #0x18] - str r3, [sp] - ldrb r2, [r2, #0xb] - str r2, [sp, #4] - mov r2, r8 - str r2, [sp, #8] - ldr r2, [sp, #0x14] - mov r3, sl - bl CreateMonWithEVSpreadNatureOTID - movs r1, #0 - add r0, sp, #0xc - strb r1, [r0] - movs r3, #0 - adds r7, #1 - mov sl, r7 - adds r7, r4, #0 -_08163638: - ldr r0, _081636B4 - ldr r1, [r0] - mov r2, sb - lsls r0, r2, #4 - adds r0, r0, r1 - lsls r1, r3, #1 - adds r0, #2 - adds r0, r0, r1 - ldrh r1, [r0] - ldr r2, _081636B0 - adds r0, r6, r2 - adds r2, r3, #0 - str r3, [sp, #0x1c] - bl SetMonMoveAvoidReturn - ldr r3, [sp, #0x1c] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #3 - bls _08163638 - movs r3, #0x64 - adds r4, r5, #0 - muls r4, r3, r4 - ldr r0, _081636B0 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x20 - add r2, sp, #0xc - bl SetMonData - ldr r1, _081636B4 - ldr r0, [r1] - adds r0, r7, r0 - ldrb r2, [r0, #0xa] - lsls r2, r2, #1 - ldr r0, _081636B8 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0xc - bl SetMonData - mov r2, sl - lsls r0, r2, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #2 - bls _081635EE -_08163696: - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081636A8: .4byte gUnknown_3005AF0 -_081636AC: .4byte gUnknown_3005FD8 -_081636B0: .4byte gUnknown_20243E8 -_081636B4: .4byte gUnknown_203B958 -_081636B8: .4byte gUnknown_85ADBF4 - thumb_func_end FillFactoryFrontierTrainerParty - - thumb_func_start FillFactoryTentTrainerParty -FillFactoryTentTrainerParty: @ 0x081636BC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp, #0x10] - ldr r0, _081637B8 - ldr r1, [r0] - ldrb r0, [r1, #0xa] - mov sb, r0 - ldrb r0, [r1, #0xb] - lsls r0, r0, #8 - mov r2, sb - orrs r2, r0 - ldrb r0, [r1, #0xc] - lsls r0, r0, #0x10 - orrs r2, r0 - ldrb r0, [r1, #0xd] - lsls r0, r0, #0x18 - orrs r2, r0 - mov sb, r2 - movs r7, #0 - mov r8, r7 -_081636F0: - ldr r1, _081637BC - mov r2, r8 - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r4, [r0] - ldr r5, [sp, #0x10] - add r5, r8 - movs r7, #0x64 - adds r6, r5, #0 - muls r6, r7, r6 - ldr r1, _081637C0 - adds r0, r6, r1 - ldr r7, _081637C4 - ldr r2, [r7] - lsls r4, r4, #4 - adds r2, r4, r2 - ldrh r1, [r2] - ldrb r3, [r2, #0xc] - movs r7, #0 - str r7, [sp] - ldrb r2, [r2, #0xb] - str r2, [sp, #4] - mov r2, sb - str r2, [sp, #8] - movs r2, #0x1e - bl CreateMonWithEVSpreadNatureOTID - movs r1, #0 - add r0, sp, #0xc - strb r1, [r0] - mov sl, r5 - mov r0, r8 - adds r0, #1 - str r0, [sp, #0x14] - mov r8, r4 - mov r5, r8 -_08163738: - ldr r1, _081637C4 - ldr r0, [r1] - adds r0, r5, r0 - lsls r4, r7, #1 - adds r0, #2 - adds r0, r0, r4 - ldrh r1, [r0] - ldr r2, _081637C0 - adds r0, r6, r2 - adds r2, r7, #0 - bl SetMonMoveAvoidReturn - ldr r1, _081637C4 - ldr r0, [r1] - adds r0, r5, r0 - adds r0, #2 - adds r0, r0, r4 - ldrh r0, [r0] - cmp r0, #0xda - bne _08163766 - movs r1, #0 - add r0, sp, #0xc - strb r1, [r0] -_08163766: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #3 - bls _08163738 - movs r2, #0x64 - mov r4, sl - muls r4, r2, r4 - ldr r7, _081637C0 - adds r4, r4, r7 - adds r0, r4, #0 - movs r1, #0x20 - add r2, sp, #0xc - bl SetMonData - ldr r1, _081637C4 - ldr r0, [r1] - add r0, r8 - ldrb r2, [r0, #0xa] - lsls r2, r2, #1 - ldr r0, _081637C8 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0xc - bl SetMonData - ldr r2, [sp, #0x14] - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - cmp r0, #2 - bls _081636F0 - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081637B8: .4byte gUnknown_3005AF0 -_081637BC: .4byte gUnknown_3005FD8 -_081637C0: .4byte gUnknown_20243E8 -_081637C4: .4byte gUnknown_203B958 -_081637C8: .4byte gUnknown_85ADBF4 - thumb_func_end FillFactoryTentTrainerParty - - thumb_func_start FrontierSpeechToString -FrontierSpeechToString: @ 0x081637CC - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #3 - movs r2, #2 - movs r3, #0x14 - bl sub_0811F2A4 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08163824 - ldr r5, _08163820 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #2 - movs r3, #3 - bl ConvertEasyChatWordsToString - ldrb r0, [r5] - movs r1, #1 - cmp r0, #0xfe - beq _08163802 - adds r2, r5, #0 -_081637F8: - adds r0, r1, r2 - ldrb r0, [r0] - adds r1, #1 - cmp r0, #0xfe - bne _081637F8 -_08163802: - ldr r2, _08163820 - adds r0, r1, r2 - ldrb r0, [r0] - adds r3, r2, #0 - cmp r0, #0xfe - beq _08163818 -_0816380E: - adds r1, #1 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0xfe - bne _0816380E -_08163818: - adds r1, r1, r3 - movs r0, #0xfa - strb r0, [r1] - b _08163830 - .align 2, 0 -_08163820: .4byte gUnknown_2021C7C -_08163824: - ldr r0, _08163838 - adds r1, r4, #0 - movs r2, #3 - movs r3, #2 - bl ConvertEasyChatWordsToString -_08163830: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08163838: .4byte gUnknown_2021C7C - thumb_func_end FrontierSpeechToString - - thumb_func_start sub_0816383C -sub_0816383C: @ 0x0816383C - push {lr} - bl SetFacilityPtrsGetLevel - ldr r0, _08163850 - ldrh r0, [r0] - cmp r0, #0 - beq _08163858 - ldr r0, _08163854 - b _0816385A - .align 2, 0 -_08163850: .4byte gUnknown_2037282 -_08163854: .4byte gUnknown_203886C -_08163858: - ldr r0, _0816386C -_0816385A: - ldrh r3, [r0] - movs r0, #0xfa - lsls r0, r0, #1 - cmp r3, r0 - bne _08163878 - ldr r0, _08163870 - ldr r0, [r0] - ldr r1, _08163874 - b _081638AE - .align 2, 0 -_0816386C: .4byte gUnknown_203886A -_08163870: .4byte gUnknown_3005AF0 -_08163874: .4byte 0x00000BFC -_08163878: - ldr r0, _08163894 - cmp r3, r0 - bhi _0816389C - ldr r2, _08163898 - movs r0, #0x34 - adds r1, r3, #0 - muls r1, r0, r1 - ldr r0, [r2] - adds r0, r0, r1 - adds r0, #0xc - bl FrontierSpeechToString - b _081638D0 - .align 2, 0 -_08163894: .4byte 0x0000012B -_08163898: .4byte gUnknown_203B954 -_0816389C: - ldr r0, _081638B8 - cmp r3, r0 - bhi _081638C4 - ldr r1, _081638BC - movs r0, #0xec - muls r0, r3, r0 - ldr r1, [r1] - adds r0, r0, r1 - ldr r1, _081638C0 -_081638AE: - adds r0, r0, r1 - bl FrontierSpeechToString - b _081638D0 - .align 2, 0 -_081638B8: .4byte 0x0000018F -_081638BC: .4byte gUnknown_3005AF0 -_081638C0: .4byte 0xFFFEF2B8 -_081638C4: - adds r0, r3, #0 - adds r0, #0x70 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl CopyFriendsApprenticeChallengeText -_081638D0: - pop {r0} - bx r0 - thumb_func_end sub_0816383C - - thumb_func_start HandleSpecialTrainerBattleEnd -HandleSpecialTrainerBattleEnd: @ 0x081638D4 - push {r4, r5, r6, lr} - sub sp, #4 - bl sub_081861F8 - ldr r0, _081638F0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0xa - bhi _081639A0 - lsls r0, r0, #2 - ldr r1, _081638F4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081638F0: .4byte gUnknown_2024118 -_081638F4: .4byte _081638F8 -_081638F8: @ jump table - .4byte _08163924 @ case 0 - .4byte _08163960 @ case 1 - .4byte _0816399C @ case 2 - .4byte _08163924 @ case 3 - .4byte _08163924 @ case 4 - .4byte _08163924 @ case 5 - .4byte _08163924 @ case 6 - .4byte _08163924 @ case 7 - .4byte _081639A0 @ case 8 - .4byte _08163924 @ case 9 - .4byte _08163924 @ case 10 -_08163924: - ldr r0, _08163948 - ldr r0, [r0] - ldr r2, _0816394C - adds r1, r0, r2 - ldr r2, [r1] - ldr r0, _08163950 - cmp r2, r0 - bhi _08163954 - adds r0, r2, #1 - str r0, [r1] - movs r1, #0x14 - bl __umodsi3 - cmp r0, #0 - bne _081639A0 - bl UpdateGymLeaderRematch - b _081639A0 - .align 2, 0 -_08163948: .4byte gUnknown_3005AF0 -_0816394C: .4byte 0x00000EBC -_08163950: .4byte 0x00FFFFFE -_08163954: - ldr r0, _0816395C - str r0, [r1] - b _081639A0 - .align 2, 0 -_0816395C: .4byte 0x00FFFFFF -_08163960: - movs r5, #0 - ldr r6, _08163994 -_08163964: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - movs r0, #0x8e - lsls r0, r0, #2 - adds r1, r4, r0 - ldr r0, [r6] - adds r0, r0, r1 - movs r1, #0xc - bl GetMonData - mov r1, sp - strh r0, [r1] - ldr r0, _08163998 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0xc - mov r2, sp - bl SetMonData - adds r5, #1 - cmp r5, #5 - ble _08163964 - b _081639A0 - .align 2, 0 -_08163994: .4byte gUnknown_3005AEC -_08163998: .4byte gUnknown_2024190 -_0816399C: - bl CopyEReaderTrainerFarewellMessage -_081639A0: - ldr r0, _081639B0 - bl SetMainCallback2 - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081639B0: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic - thumb_func_end HandleSpecialTrainerBattleEnd - - thumb_func_start Task_StartBattleAfterTransition -Task_StartBattleAfterTransition: @ 0x081639B4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl IsBattleTransitionDone - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081639D8 - ldr r0, _081639E0 - ldr r1, _081639E4 - str r1, [r0, #8] - ldr r0, _081639E8 - bl SetMainCallback2 - adds r0, r4, #0 - bl DestroyTask -_081639D8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081639E0: .4byte gUnknown_3002360 -_081639E4: .4byte HandleSpecialTrainerBattleEnd -_081639E8: .4byte CB2_InitBattle - thumb_func_end Task_StartBattleAfterTransition - - thumb_func_start DoSpecialTrainerBattle -DoSpecialTrainerBattle: @ 0x081639EC - push {r4, r5, r6, lr} - sub sp, #4 - ldr r0, _08163A0C - ldr r2, _08163A10 - ldrh r1, [r2] - adds r0, #0x26 - strb r1, [r0] - ldrh r0, [r2] - cmp r0, #0xa - bls _08163A02 - b _08163D90 -_08163A02: - lsls r0, r0, #2 - ldr r1, _08163A14 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08163A0C: .4byte gUnknown_2024118 -_08163A10: .4byte gUnknown_2037280 -_08163A14: .4byte _08163A18 -_08163A18: @ jump table - .4byte _08163A44 @ case 0 - .4byte _08163AE8 @ case 1 - .4byte _08163B38 @ case 2 - .4byte _08163B98 @ case 3 - .4byte _08163BEC @ case 4 - .4byte _08163C50 @ case 5 - .4byte _08163C9C @ case 6 - .4byte _08163CDC @ case 7 - .4byte _08163D54 @ case 8 - .4byte _08163D1C @ case 9 - .4byte _08163CF0 @ case 10 -_08163A44: - ldr r5, _08163A64 - movs r0, #0x84 - lsls r0, r0, #1 - str r0, [r5] - ldr r0, _08163A68 - bl VarGet - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #1 - beq _08163A7E - cmp r4, #1 - bgt _08163A6C - cmp r4, #0 - beq _08163A76 - b _08163ACE - .align 2, 0 -_08163A64: .4byte gUnknown_2022C90 -_08163A68: .4byte 0x000040CE -_08163A6C: - cmp r4, #2 - beq _08163A8C - cmp r4, #3 - beq _08163AC0 - b _08163ACE -_08163A76: - movs r0, #3 - bl FillFrontierTrainerParty - b _08163ACE -_08163A7E: - movs r0, #4 - bl FillFrontierTrainerParty - ldr r0, [r5] - orrs r0, r4 - str r0, [r5] - b _08163ACE -_08163A8C: - movs r0, #2 - bl FillFrontierTrainersParties - ldr r1, _08163AB0 - ldr r0, _08163AB4 - ldr r0, [r0] - ldr r2, _08163AB8 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r1] - ldrh r0, [r1] - bl FillPartnerParty - ldr r0, [r5] - ldr r1, _08163ABC - orrs r0, r1 - str r0, [r5] - b _08163ACE - .align 2, 0 -_08163AB0: .4byte gUnknown_203886E -_08163AB4: .4byte gUnknown_3005AF0 -_08163AB8: .4byte 0x00000CD6 -_08163ABC: .4byte 0x00408041 -_08163AC0: - ldr r0, [r5] - ldr r1, _08163AE0 - orrs r0, r1 - str r0, [r5] - movs r0, #2 - bl FillFrontierTrainersParties -_08163ACE: - ldr r0, _08163AE4 - movs r1, #1 - bl CreateTask - movs r0, #0 - bl PlayMapChosenOrBattleBGM - movs r0, #0 - b _08163D38 - .align 2, 0 -_08163AE0: .4byte 0x00800043 -_08163AE4: .4byte Task_StartBattleAfterTransition -_08163AE8: - movs r5, #0 - ldr r6, _08163B2C -_08163AEC: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _08163B30 - adds r0, r4, r0 - movs r1, #0xc - bl GetMonData - mov r1, sp - strh r0, [r1] - movs r0, #0x8e - lsls r0, r0, #2 - adds r4, r4, r0 - ldr r0, [r6] - adds r0, r0, r4 - movs r1, #0xc - mov r2, sp - bl SetMonData - adds r5, #1 - cmp r5, #5 - ble _08163AEC - ldr r0, _08163B34 - movs r1, #1 - bl CreateTask - movs r0, #0 - bl PlayMapChosenOrBattleBGM - movs r0, #0xc - b _08163D38 - .align 2, 0 -_08163B2C: .4byte gUnknown_3005AEC -_08163B30: .4byte gUnknown_2024190 -_08163B34: .4byte Task_StartBattleAfterTransition -_08163B38: - bl ZeroEnemyPartyMons - movs r5, #0 - ldr r4, _08163B80 -_08163B40: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08163B84 - adds r0, r0, r1 - movs r1, #0x2c - adds r2, r5, #0 - muls r2, r1, r2 - movs r1, #0xc2 - lsls r1, r1, #4 - adds r2, r2, r1 - ldr r1, [r4] - adds r1, r1, r2 - bl sub_08067D80 - adds r5, #1 - cmp r5, #2 - ble _08163B40 - ldr r1, _08163B88 - ldr r0, _08163B8C - str r0, [r1] - ldr r1, _08163B90 - movs r0, #0 - strh r0, [r1] - ldr r0, _08163B94 - movs r1, #1 - bl CreateTask - movs r0, #0 - bl PlayMapChosenOrBattleBGM - movs r0, #0xd - b _08163D38 - .align 2, 0 -_08163B80: .4byte gUnknown_3005AF0 -_08163B84: .4byte gUnknown_20243E8 -_08163B88: .4byte gUnknown_2022C90 -_08163B8C: .4byte 0x00000808 -_08163B90: .4byte gUnknown_203886A -_08163B94: .4byte Task_StartBattleAfterTransition -_08163B98: - ldr r4, _08163BD4 - ldr r0, _08163BD8 - str r0, [r4] - ldr r0, _08163BDC - bl VarGet - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #1 - bne _08163BB2 - ldr r0, [r4] - orrs r0, r1 - str r0, [r4] -_08163BB2: - ldr r0, _08163BE0 - ldrh r1, [r0] - ldr r0, _08163BE4 - cmp r1, r0 - bne _08163BC2 - movs r0, #2 - bl FillFrontierTrainerParty -_08163BC2: - ldr r0, _08163BE8 - movs r1, #1 - bl CreateTask - movs r0, #0 - bl sub_0806E120 - movs r0, #3 - b _08163D38 - .align 2, 0 -_08163BD4: .4byte gUnknown_2022C90 -_08163BD8: .4byte 0x00010008 -_08163BDC: .4byte 0x000040CE -_08163BE0: .4byte gUnknown_203886A -_08163BE4: .4byte 0x000003FE -_08163BE8: .4byte Task_StartBattleAfterTransition -_08163BEC: - ldr r4, _08163C20 - ldr r0, _08163C24 - str r0, [r4] - ldr r0, _08163C28 - bl VarGet - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #1 - bne _08163C06 - ldr r0, [r4] - orrs r0, r1 - str r0, [r4] -_08163C06: - ldr r0, _08163C2C - ldr r0, [r0] - ldr r2, _08163C30 - adds r0, r0, r2 - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - cmp r0, #2 - beq _08163C34 - movs r0, #3 - bl FillFrontierTrainerParty - b _08163C3A - .align 2, 0 -_08163C20: .4byte gUnknown_2022C90 -_08163C24: .4byte 0x00020008 -_08163C28: .4byte 0x000040CE -_08163C2C: .4byte gUnknown_3005AF0 -_08163C30: .4byte 0x00000CA9 -_08163C34: - movs r0, #3 - bl FillTentTrainerParty -_08163C3A: - ldr r0, _08163C4C - movs r1, #1 - bl CreateTask - movs r0, #0 - bl PlayMapChosenOrBattleBGM - movs r0, #4 - b _08163D38 - .align 2, 0 -_08163C4C: .4byte Task_StartBattleAfterTransition -_08163C50: - ldr r1, _08163C70 - ldr r0, _08163C74 - str r0, [r1] - ldr r0, _08163C78 - ldr r0, [r0] - ldr r1, _08163C7C - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - cmp r0, #2 - beq _08163C80 - movs r0, #3 - bl FillFrontierTrainerParty - b _08163C86 - .align 2, 0 -_08163C70: .4byte gUnknown_2022C90 -_08163C74: .4byte 0x00040008 -_08163C78: .4byte gUnknown_3005AF0 -_08163C7C: .4byte 0x00000CA9 -_08163C80: - movs r0, #3 - bl FillTentTrainerParty -_08163C86: - ldr r0, _08163C98 - movs r1, #1 - bl CreateTask - movs r0, #0 - bl PlayMapChosenOrBattleBGM - movs r0, #5 - b _08163D38 - .align 2, 0 -_08163C98: .4byte Task_StartBattleAfterTransition -_08163C9C: - ldr r4, _08163CCC - ldr r0, _08163CD0 - str r0, [r4] - ldr r0, _08163CD4 - bl VarGet - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #1 - bne _08163CB6 - ldr r0, [r4] - orrs r0, r1 - str r0, [r4] -_08163CB6: - bl FillFactoryTrainerParty - ldr r0, _08163CD8 - movs r1, #1 - bl CreateTask - movs r0, #0 - bl PlayMapChosenOrBattleBGM - movs r0, #6 - b _08163D38 - .align 2, 0 -_08163CCC: .4byte gUnknown_2022C90 -_08163CD0: .4byte 0x00080008 -_08163CD4: .4byte 0x000040CE -_08163CD8: .4byte Task_StartBattleAfterTransition -_08163CDC: - ldr r1, _08163CEC - movs r0, #0x84 - lsls r0, r0, #1 - str r0, [r1] - movs r0, #3 - bl FillFrontierTrainerParty - b _08163D28 - .align 2, 0 -_08163CEC: .4byte gUnknown_2022C90 -_08163CF0: - ldr r1, _08163D10 - ldr r0, _08163D14 - str r0, [r1] - movs r0, #3 - bl FillFrontierTrainerParty - ldr r0, _08163D18 - movs r1, #1 - bl CreateTask - movs r0, #0 - bl PlayMapChosenOrBattleBGM - movs r0, #0xa - b _08163D38 - .align 2, 0 -_08163D10: .4byte gUnknown_2022C90 -_08163D14: .4byte 0x00200008 -_08163D18: .4byte Task_StartBattleAfterTransition -_08163D1C: - ldr r1, _08163D48 - ldr r0, _08163D4C - str r0, [r1] - movs r0, #1 - bl FillFrontierTrainersParties -_08163D28: - ldr r0, _08163D50 - movs r1, #1 - bl CreateTask - movs r0, #0 - bl PlayMapChosenOrBattleBGM - movs r0, #7 -_08163D38: - bl sub_080B08F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl BattleTransition_StartOnField - b _08163D90 - .align 2, 0 -_08163D48: .4byte gUnknown_2022C90 -_08163D4C: .4byte 0x00008109 -_08163D50: .4byte Task_StartBattleAfterTransition -_08163D54: - ldr r1, _08163D98 - ldr r0, _08163D9C - str r0, [r1] - ldr r5, _08163DA0 - adds r0, r5, #0 - bl FillPartnerParty - ldr r4, _08163DA4 - movs r0, #0 - strb r0, [r4] - ldr r0, _08163DA8 - bl BattleSetup_ConfigureTrainerBattle - movs r0, #1 - strb r0, [r4] - ldr r0, _08163DAC - bl BattleSetup_ConfigureTrainerBattle - ldr r0, _08163DB0 - strh r5, [r0] - ldr r0, _08163DB4 - movs r1, #1 - bl CreateTask - movs r0, #0 - bl PlayMapChosenOrBattleBGM - movs r0, #0x12 - bl BattleTransition_StartOnField -_08163D90: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08163D98: .4byte gUnknown_2022C90 -_08163D9C: .4byte 0x00408049 -_08163DA0: .4byte 0x00000C03 -_08163DA4: .4byte gUnknown_203889C -_08163DA8: .4byte gUnknown_820DA82 -_08163DAC: .4byte gUnknown_820DA91 -_08163DB0: .4byte gUnknown_203886E -_08163DB4: .4byte Task_StartBattleAfterTransition - thumb_func_end DoSpecialTrainerBattle - - thumb_func_start SaveCurrentWinStreak -SaveCurrentWinStreak: @ 0x08163DB8 - push {r4, r5, r6, lr} - ldr r6, _08163E00 - ldr r0, [r6] - ldr r1, _08163E04 - adds r0, r0, r1 - ldrb r5, [r0] - lsls r5, r5, #0x1e - lsrs r5, r5, #0x1e - ldr r0, _08163E08 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - adds r1, r4, #0 - bl GetCurrentBattleTowerWinStreak - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, [r6] - lsls r5, r5, #1 - lsls r4, r4, #2 - adds r5, r5, r4 - movs r1, #0xce - lsls r1, r1, #4 - adds r0, r0, r1 - adds r1, r0, r5 - ldrh r0, [r1] - cmp r0, r2 - bhs _08163DF8 - strh r2, [r1] -_08163DF8: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08163E00: .4byte gUnknown_3005AF0 -_08163E04: .4byte 0x00000CA9 -_08163E08: .4byte 0x000040CE - thumb_func_end SaveCurrentWinStreak - - thumb_func_start sub_08163E0C -sub_08163E0C: @ 0x08163E0C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r4, _08163E54 - ldr r0, [r4] - ldr r1, _08163E58 - adds r5, r0, r1 - adds r0, r5, #0 - bl ClearBattleTowerRecord - ldr r0, [r4] - ldr r2, _08163E5C - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r6, r0, #0x1e - ldr r0, _08163E60 - bl VarGet - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r2, [r4] - ldrb r0, [r2, #8] - cmp r0, #0 - beq _08163E68 - ldr r4, _08163E64 - ldrb r0, [r2, #0xa] - ldrb r1, [r2, #0xb] - adds r0, r0, r1 - ldrb r1, [r2, #0xc] - adds r0, r0, r1 - ldrb r1, [r2, #0xd] - adds r0, r0, r1 - movs r1, #0x14 - b _08163E7A - .align 2, 0 -_08163E54: .4byte gUnknown_3005AF0 -_08163E58: .4byte 0x0000064C -_08163E5C: .4byte 0x00000CA9 -_08163E60: .4byte 0x000040CE -_08163E64: .4byte gUnknown_85BBE3E -_08163E68: - ldr r4, _08163F44 - ldrb r0, [r2, #0xa] - ldrb r1, [r2, #0xb] - adds r0, r0, r1 - ldrb r1, [r2, #0xc] - adds r0, r0, r1 - ldrb r1, [r2, #0xd] - adds r0, r0, r1 - movs r1, #0x1e -_08163E7A: - bl __umodsi3 - adds r0, r0, r4 - ldrb r0, [r0] - strb r6, [r5] - strb r0, [r5, #1] - adds r0, r5, #0 - adds r0, #0xc - ldr r4, _08163F48 - ldr r1, [r4] - adds r1, #0xa - bl CopyTrainerId - adds r0, r5, #4 - ldr r1, [r4] - bl StringCopy7 - adds r0, r6, #0 - adds r1, r7, #0 - bl GetCurrentBattleTowerWinStreak - strh r0, [r5, #2] - movs r4, #0 - movs r2, #0x10 - adds r2, r2, r5 - mov ip, r2 - movs r7, #0x1c - adds r7, r7, r5 - mov sb, r7 - adds r6, r5, #0 - adds r6, #0x28 - movs r0, #0xe4 - adds r0, r0, r5 - mov r8, r0 -_08163EBE: - lsls r2, r4, #1 - mov r1, ip - adds r3, r1, r2 - ldr r0, _08163F4C - ldr r1, [r0] - ldr r7, _08163F50 - adds r0, r1, r7 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r3] - mov r0, sb - adds r3, r0, r2 - adds r7, #0xc - adds r0, r1, r7 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r3] - adds r3, r6, r2 - ldr r0, _08163F54 - adds r1, r1, r0 - adds r1, r1, r2 - ldrh r0, [r1] - strh r0, [r3] - adds r4, #1 - cmp r4, #5 - ble _08163EBE - movs r4, #0 -_08163EF4: - ldr r6, _08163F48 - ldr r0, [r6] - lsls r1, r4, #1 - ldr r2, _08163F58 - adds r0, r0, r2 - adds r1, r0, r1 - ldrh r0, [r1] - cmp r0, #0 - beq _08163F1C - adds r1, r0, #0 - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08163F5C - adds r0, r0, r1 - movs r1, #0x2c - muls r1, r4, r1 - adds r1, #0x34 - adds r1, r5, r1 - bl sub_0806823C -_08163F1C: - adds r4, #1 - cmp r4, #3 - ble _08163EF4 - ldr r0, _08163F60 - ldrb r0, [r0] - mov r7, r8 - strb r0, [r7] - ldr r0, [r6] - ldr r1, _08163F64 - adds r0, r0, r1 - bl CalcEmeraldBattleTowerChecksum - bl SaveCurrentWinStreak - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08163F44: .4byte gUnknown_85BBE20 -_08163F48: .4byte gUnknown_3005AF0 -_08163F4C: .4byte gUnknown_3005AEC -_08163F50: .4byte 0x00002BBC -_08163F54: .4byte 0x00002BD4 -_08163F58: .4byte 0x00000CAA -_08163F5C: .4byte gUnknown_202412C -_08163F60: .4byte gUnknown_829BDA5 -_08163F64: .4byte 0x0000064C - thumb_func_end sub_08163E0C - - thumb_func_start SaveBattleTowerProgress -SaveBattleTowerProgress: @ 0x08163F68 - push {r4, r5, lr} - ldr r5, _08163FE8 - ldr r0, [r5] - ldr r1, _08163FEC - adds r0, r0, r1 - ldrb r4, [r0] - lsls r4, r4, #0x1e - lsrs r4, r4, #0x1e - ldr r0, _08163FF0 - bl VarGet - lsls r0, r0, #0x10 - ldr r5, [r5] - lsls r4, r4, #1 - lsrs r0, r0, #0xe - adds r4, r4, r0 - movs r2, #0xce - lsls r2, r2, #4 - adds r0, r5, r2 - adds r0, r0, r4 - ldrh r0, [r0] - movs r1, #7 - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r0, _08163FF4 - ldrh r0, [r0] - cmp r0, #0 - bne _08163FB6 - cmp r1, #1 - bgt _08163FB2 - ldr r1, _08163FF8 - adds r0, r5, r1 - ldrh r0, [r0] - cmp r0, #0 - beq _08163FB6 -_08163FB2: - bl sub_08163E0C -_08163FB6: - ldr r4, _08163FE8 - ldr r0, [r4] - ldr r1, _08163FF4 - ldrh r1, [r1] - ldr r2, _08163FFC - adds r0, r0, r2 - strb r1, [r0] - movs r0, #0x80 - lsls r0, r0, #7 - movs r1, #0 - bl VarSet - ldr r1, [r4] - ldr r0, _08163FEC - adds r1, r1, r0 - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - bl sub_081A482C - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08163FE8: .4byte gUnknown_3005AF0 -_08163FEC: .4byte 0x00000CA9 -_08163FF0: .4byte 0x000040CE -_08163FF4: .4byte gUnknown_2037282 -_08163FF8: .4byte 0x00000CB2 -_08163FFC: .4byte 0x00000CA8 - thumb_func_end SaveBattleTowerProgress - - thumb_func_start sub_08164000 -sub_08164000: @ 0x08164000 - bx lr - .align 2, 0 - thumb_func_end sub_08164000 - - thumb_func_start sub_08164004 -sub_08164004: @ 0x08164004 - bx lr - .align 2, 0 - thumb_func_end sub_08164004 - - thumb_func_start sub_08164008 -sub_08164008: @ 0x08164008 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - ldr r4, _081640A0 - adds r0, r4, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - adds r4, #0x64 - adds r0, r4, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r6, #0 - movs r2, #0 - ldr r0, _081640A4 - ldr r1, [r0] - ldr r0, _081640A8 - adds r5, r5, r0 - lsls r0, r5, #4 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r1, #0xe0 - adds r0, r0, r1 - mov r3, sp -_0816404A: - ldrh r1, [r0] - cmp r1, r7 - beq _08164058 - cmp r1, r4 - beq _08164058 - stm r3!, {r2} - adds r6, #1 -_08164058: - adds r0, #0xc - adds r2, #1 - cmp r2, #2 - ble _0816404A - bl Random - ldr r4, _081640AC - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r6, #0 - bl __modsi3 - lsls r0, r0, #2 - add r0, sp - ldr r0, [r0] - strh r0, [r4] -_08164078: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r6, #0 - bl __modsi3 - lsls r0, r0, #2 - add r0, sp - ldr r0, [r0] - strh r0, [r4, #2] - ldrh r1, [r4] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r1, r0 - beq _08164078 - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081640A0: .4byte gUnknown_2024190 -_081640A4: .4byte gUnknown_3005AF0 -_081640A8: .4byte 0xFFFFFE70 -_081640AC: .4byte gUnknown_3005FD8 - thumb_func_end sub_08164008 - - thumb_func_start sub_081640B0 -sub_081640B0: @ 0x081640B0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - ldr r6, _081641B0 - ldr r0, [r6] - ldr r1, _081641B4 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - str r0, [sp, #0xc] - ldr r4, _081641B8 - adds r0, r4, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x10] - adds r4, #0x64 - adds r0, r4, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x14] - movs r3, #0 - mov r8, r3 - movs r7, #0 - adds r2, r6, #0 - ldr r0, _081641BC - adds r5, r5, r0 - ldr r6, _081641C0 - mov sl, sp - movs r0, #0xec - adds r1, r5, #0 - muls r1, r0, r1 - mov sb, r1 -_0816410E: - ldr r1, [r2] - movs r0, #0x2c - muls r0, r7, r0 - mov r3, sb - adds r5, r0, r3 - adds r1, r1, r5 - adds r0, r1, r6 - ldrh r0, [r0] - ldr r3, [sp, #0x10] - cmp r0, r3 - beq _08164162 - ldr r3, [sp, #0x14] - cmp r0, r3 - beq _08164162 - movs r0, #0xef - lsls r0, r0, #3 - adds r4, r1, r0 - ldr r1, [sp, #0xc] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - str r2, [sp, #0x18] - bl GetFrontierEnemyMonLevel - ldrb r1, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, [sp, #0x18] - cmp r1, r0 - bhi _08164162 - ldr r0, [r2] - adds r0, r0, r5 - adds r0, r0, r6 - ldrh r0, [r0] - cmp r0, #0 - beq _08164162 - mov r3, sl - adds r3, #4 - mov sl, r3 - subs r3, #4 - stm r3!, {r7} - movs r0, #1 - add r8, r0 -_08164162: - adds r7, #1 - cmp r7, #3 - ble _0816410E - bl Random - ldr r4, _081641C4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r1, r8 - bl __modsi3 - lsls r0, r0, #2 - add r0, sp - ldr r0, [r0] - strh r0, [r4, #4] -_08164180: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r1, r8 - bl __modsi3 - lsls r0, r0, #2 - add r0, sp - ldr r0, [r0] - strh r0, [r4, #6] - ldrh r1, [r4, #4] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r1, r0 - beq _08164180 - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081641B0: .4byte gUnknown_3005AF0 -_081641B4: .4byte 0x00000CA9 -_081641B8: .4byte gUnknown_2024190 -_081641BC: .4byte 0xFFFFFED4 -_081641C0: .4byte 0x0000076C -_081641C4: .4byte gUnknown_3005FD8 - thumb_func_end sub_081640B0 - - thumb_func_start sub_081641C8 -sub_081641C8: @ 0x081641C8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x4c - ldr r0, _08164530 - ldr r0, [r0] - movs r1, #0xc7 - lsls r1, r1, #4 - adds r1, r0, r1 - str r1, [sp, #0x24] - ldr r5, _08164534 - ldr r0, [r5] - ldr r2, _08164538 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - str r0, [sp, #0x14] - ldr r0, _0816453C - bl VarGet - lsls r0, r0, #0x10 - ldr r1, [r5] - ldr r3, [sp, #0x14] - lsls r2, r3, #1 - lsrs r0, r0, #0xe - adds r2, r2, r0 - movs r4, #0xce - lsls r4, r4, #4 - adds r1, r1, r4 - adds r1, r1, r2 - ldrh r0, [r1] - movs r1, #7 - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x18] - ldr r4, _08164540 - adds r0, r4, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - str r0, [sp, #0x1c] - adds r4, #0x64 - adds r0, r4, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - str r0, [sp, #0x20] - bl SetFacilityPtrsGetLevel - movs r7, #0 - ldr r0, [sp, #0x18] - lsls r0, r0, #0x18 - mov sl, r0 -_08164240: - lsls r6, r7, #1 -_08164242: - mov r1, sl - lsrs r0, r1, #0x18 - movs r1, #0 - bl sub_0816245C - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - movs r2, #0 - mov sb, r2 - cmp sb, r7 - bge _08164290 - ldr r0, [r5] - ldr r3, _08164544 - adds r1, r0, r3 - ldrh r0, [r1] - cmp r0, r8 - beq _08164290 - ldr r0, _08164548 - ldr r2, [r0] - movs r4, #0x34 - mov r0, r8 - muls r0, r4, r0 - adds r0, r0, r2 - ldrb r3, [r0] -_08164274: - ldrh r0, [r1] - muls r0, r4, r0 - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, r3 - beq _08164290 - adds r1, #2 - movs r0, #1 - add sb, r0 - cmp sb, r7 - bge _08164290 - ldrh r0, [r1] - cmp r0, r8 - bne _08164274 -_08164290: - cmp sb, r7 - bne _08164242 - ldr r0, [r5] - ldr r1, _08164544 - adds r0, r0, r1 - adds r0, r0, r6 - mov r2, r8 - strh r2, [r0] - mov r7, sb - adds r7, #1 - cmp r7, #5 - ble _08164240 - movs r3, #8 - mov sl, r3 - movs r4, #0 - mov sb, r4 - ldr r0, [sp, #0x24] - str r0, [sp, #0x40] -_081642B4: - ldr r1, _08164534 - ldr r0, [r1] - mov r2, sb - lsls r1, r2, #1 - ldr r3, _08164544 - adds r0, r0, r3 - adds r0, r0, r1 - ldrh r0, [r0] - mov r8, r0 - bl IsFrontierTrainerFemale - ldr r4, [sp, #0x40] - strb r0, [r4, #0x19] - movs r7, #0 -_081642D0: - adds r0, r7, #1 - str r0, [sp, #0x30] - mov r1, sl - lsls r1, r1, #1 - str r1, [sp, #0x38] - mov r2, sl - adds r2, #1 - str r2, [sp, #0x34] - mov r0, sl - subs r0, #1 - lsls r0, r0, #1 - str r0, [sp, #0x28] -_081642E8: - mov r0, r8 - bl RandomizeFacilityTrainerMonSet - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - movs r0, #1 - ands r0, r7 - cmp r0, #0 - beq _0816431C - ldr r3, _08164534 - ldr r0, [r3] - ldr r4, _08164544 - adds r0, r0, r4 - ldr r1, [sp, #0x28] - adds r0, r0, r1 - ldrh r2, [r0] - ldr r0, _0816454C - ldr r0, [r0] - lsls r2, r2, #4 - adds r2, r2, r0 - lsls r1, r6, #4 - adds r1, r1, r0 - ldrb r0, [r2, #0xa] - ldrb r1, [r1, #0xa] - cmp r0, r1 - beq _081642E8 -_0816431C: - movs r5, #8 - cmp r5, sl - bge _08164358 - ldr r2, _08164534 - ldr r0, [r2] - ldr r1, _0816454C - ldr r3, [r1] - lsls r1, r6, #4 - adds r1, r1, r3 - ldr r4, _08164550 - adds r2, r0, r4 - ldrh r0, [r1] - mov ip, r0 -_08164336: - ldrh r0, [r2] - lsls r0, r0, #4 - adds r0, r0, r3 - ldrh r0, [r0] - cmp r0, ip - beq _08164358 - ldrh r0, [r1] - ldr r4, [sp, #0x1c] - cmp r4, r0 - beq _08164358 - ldr r4, [sp, #0x20] - cmp r4, r0 - beq _08164358 - adds r2, #2 - adds r5, #1 - cmp r5, sl - blt _08164336 -_08164358: - cmp r5, sl - bne _081642E8 - ldr r1, _08164534 - ldr r0, [r1] - ldr r2, _08164544 - adds r0, r0, r2 - ldr r3, [sp, #0x38] - adds r0, r0, r3 - strh r6, [r0] - ldr r4, [sp, #0x34] - mov sl, r4 - ldr r7, [sp, #0x30] - cmp r7, #1 - ble _081642D0 - ldr r0, [sp, #0x40] - adds r0, #0x18 - str r0, [sp, #0x40] - movs r1, #1 - add sb, r1 - mov r2, sb - cmp r2, #5 - ble _081642B4 - movs r3, #0 - mov sl, r3 - bl ValidateApprenticesChecksums - movs r4, #0 - mov sb, r4 - ldr r0, _08164534 - ldr r0, [r0] - movs r2, #0 - adds r6, r0, #0 - adds r6, #0xdc - mov r8, sp -_0816439C: - ldrb r0, [r6] - lsls r4, r0, #0x19 - lsrs r0, r4, #0x1e - cmp r0, #0 - beq _08164408 - ldr r1, _08164554 - ldrb r0, [r6, #1] - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #7 - str r2, [sp, #0x44] - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, [sp, #0x44] - ldr r1, [sp, #0x18] - cmp r0, r1 - bgt _08164408 - lsrs r0, r4, #0x1e - subs r0, #1 - ldr r3, [sp, #0x14] - cmp r0, r3 - bne _08164408 - movs r5, #0 - ldr r0, _08164534 - ldr r0, [r0] - adds r0, #0xe0 - adds r1, r2, r0 - movs r7, #2 -_081643D8: - ldrh r0, [r1] - ldr r4, [sp, #0x1c] - cmp r4, r0 - beq _081643E8 - ldr r3, [sp, #0x20] - cmp r3, r0 - beq _081643E8 - adds r5, #1 -_081643E8: - adds r1, #0xc - subs r7, #1 - cmp r7, #0 - bge _081643D8 - cmp r5, #2 - ble _08164408 - movs r0, #0xc8 - lsls r0, r0, #1 - add r0, sb - mov r4, r8 - adds r4, #4 - mov r8, r4 - subs r4, #4 - stm r4!, {r0} - movs r0, #1 - add sl, r0 -_08164408: - adds r2, #0x44 - adds r6, #0x44 - movs r1, #1 - add sb, r1 - mov r3, sb - cmp r3, #3 - ble _0816439C - mov r4, sl - cmp r4, #0 - beq _0816445A - bl Random - ldr r6, _08164534 - ldr r4, [r6] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r1, sl - bl __modsi3 - lsls r0, r0, #2 - add r0, sp - ldr r0, [r0] - movs r5, #0xcc - lsls r5, r5, #4 - adds r4, r4, r5 - strh r0, [r4] - ldrh r0, [r4] - bl IsFrontierTrainerFemale - ldr r1, [sp, #0x24] - adds r1, #0xa8 - strb r0, [r1, #1] - movs r0, #0xd8 - lsls r0, r0, #2 - bl FlagClear - ldr r0, [r6] - adds r0, r0, r5 - ldrh r0, [r0] - bl sub_08164008 -_0816445A: - movs r0, #0 - mov sl, r0 - mov sb, r0 - mov r1, sp - str r1, [sp, #0x3c] -_08164464: - ldr r0, _08164534 - movs r2, #0xec - mov r1, sb - muls r1, r2, r1 - movs r3, #0xe7 - lsls r3, r3, #3 - adds r1, r1, r3 - ldr r0, [r0] - movs r2, #0 - movs r3, #0 - movs r7, #0 - mov r4, sb - adds r4, #1 - str r4, [sp, #0x2c] - adds r1, r0, r1 -_08164482: - ldm r1!, {r0} - orrs r2, r0 - adds r3, r3, r0 - adds r7, #1 - cmp r7, #0x39 - bls _08164482 - ldr r0, _08164534 - ldr r5, [r0] - movs r1, #0xec - mov r6, sb - muls r6, r1, r6 - adds r4, r5, r6 - ldr r1, _08164558 - adds r0, r4, r1 - ldrh r0, [r0] - movs r1, #7 - str r2, [sp, #0x44] - str r3, [sp, #0x48] - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r2, [sp, #0x44] - ldr r3, [sp, #0x48] - ldr r1, [sp, #0x18] - cmp r0, r1 - bgt _0816457E - movs r1, #0xe7 - lsls r1, r1, #3 - adds r0, r4, r1 - ldrb r0, [r0] - ldr r4, [sp, #0x14] - cmp r0, r4 - bne _0816457E - cmp r2, #0 - beq _0816457E - adds r1, #0xe8 - adds r0, r5, r1 - adds r0, r0, r6 - ldr r0, [r0] - cmp r0, r3 - bne _0816457E - movs r5, #0 - movs r7, #0 - ldr r2, _08164534 - mov r8, r2 - ldr r3, _0816455C -_081644E0: - mov r4, r8 - ldr r2, [r4] - movs r0, #0x2c - adds r1, r7, #0 - muls r1, r0, r1 - movs r4, #0xec - mov r0, sb - muls r0, r4, r0 - adds r6, r1, r0 - adds r2, r2, r6 - adds r0, r2, r3 - ldrh r0, [r0] - ldr r1, [sp, #0x1c] - cmp r1, r0 - beq _08164564 - ldr r4, [sp, #0x20] - cmp r4, r0 - beq _08164564 - movs r0, #0xef - lsls r0, r0, #3 - adds r4, r2, r0 - ldr r1, [sp, #0x14] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - str r3, [sp, #0x48] - bl GetFrontierEnemyMonLevel - ldrb r1, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, [sp, #0x48] - cmp r1, r0 - bhi _08164564 - mov r2, r8 - ldr r0, [r2] - adds r0, r0, r6 - adds r0, r0, r3 - ldrh r0, [r0] - cmp r0, #0 - b _08164560 - .align 2, 0 -_08164530: .4byte gUnknown_3005AEC -_08164534: .4byte gUnknown_3005AF0 -_08164538: .4byte 0x00000CA9 -_0816453C: .4byte 0x000040CE -_08164540: .4byte gUnknown_2024190 -_08164544: .4byte 0x00000CB4 -_08164548: .4byte gUnknown_203B954 -_0816454C: .4byte gUnknown_203B958 -_08164550: .4byte 0x00000CC4 -_08164554: .4byte gUnknown_85BE930 -_08164558: .4byte 0x0000073A -_0816455C: .4byte 0x0000076C -_08164560: - beq _08164564 - adds r5, #1 -_08164564: - adds r7, #1 - cmp r7, #3 - ble _081644E0 - cmp r5, #1 - ble _0816457E - movs r0, #0x96 - lsls r0, r0, #1 - add r0, sb - ldr r3, [sp, #0x3c] - stm r3!, {r0} - str r3, [sp, #0x3c] - movs r4, #1 - add sl, r4 -_0816457E: - ldr r0, [sp, #0x2c] - mov sb, r0 - cmp r0, #4 - bgt _08164588 - b _08164464 -_08164588: - mov r1, sl - cmp r1, #0 - beq _081645C8 - bl Random - ldr r6, _081645D8 - ldr r4, [r6] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r1, sl - bl __modsi3 - lsls r0, r0, #2 - add r0, sp - ldr r0, [r0] - ldr r5, _081645DC - adds r4, r4, r5 - strh r0, [r4] - ldrh r0, [r4] - bl IsFrontierTrainerFemale - ldr r1, [sp, #0x24] - adds r1, #0xc0 - strb r0, [r1, #1] - ldr r0, _081645E0 - bl FlagClear - ldr r0, [r6] - adds r0, r0, r5 - ldrh r0, [r0] - bl sub_081640B0 -_081645C8: - add sp, #0x4c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081645D8: .4byte gUnknown_3005AF0 -_081645DC: .4byte 0x00000CC2 -_081645E0: .4byte 0x00000361 - thumb_func_end sub_081641C8 - - thumb_func_start sub_081645E4 -sub_081645E4: @ 0x081645E4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - movs r7, #0 - movs r6, #0 - bl SetFacilityPtrsGetLevel - movs r0, #0xfa - lsls r0, r0, #1 - cmp r5, r0 - beq _081646CC - subs r0, #0xc9 - cmp r5, r0 - bhi _0816461C - ldr r0, _08164618 - ldr r1, [r0] - lsls r0, r4, #4 - adds r0, r0, r1 - ldrh r7, [r0, #2] - ldrh r6, [r0] - b _081646CC - .align 2, 0 -_08164618: .4byte gUnknown_203B958 -_0816461C: - ldr r0, _08164654 - cmp r5, r0 - bhi _0816466C - ldr r0, _08164658 - ldr r3, [r0] - ldr r1, _0816465C - ldr r0, _08164660 - ldrh r0, [r0] - adds r0, #1 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x2c - muls r1, r0, r1 - ldr r0, _08164664 - adds r2, r5, r0 - movs r0, #0xec - muls r0, r2, r0 - adds r1, r1, r0 - adds r3, r3, r1 - movs r1, #0xee - lsls r1, r1, #3 - adds r0, r3, r1 - ldrh r7, [r0] - ldr r2, _08164668 - adds r3, r3, r2 - ldrh r6, [r3] - b _081646CC - .align 2, 0 -_08164654: .4byte 0x0000018F -_08164658: .4byte gUnknown_3005AF0 -_0816465C: .4byte gUnknown_3005FD8 -_08164660: .4byte gUnknown_2037282 -_08164664: .4byte 0xFFFFFED4 -_08164668: .4byte 0x0000076C -_0816466C: - ldr r4, _081646F4 - ldr r3, [r4] - ldr r1, _081646F8 - ldr r0, _081646FC - ldrh r0, [r0] - subs r0, #1 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r2, _08164700 - adds r1, r5, r2 - lsls r2, r1, #4 - adds r2, r2, r1 - lsls r2, r2, #2 - adds r0, r0, r2 - adds r3, r3, r0 - adds r0, r3, #0 - adds r0, #0xe2 - ldrh r7, [r0] - adds r3, #0xe0 - ldrh r6, [r3] - movs r3, #0 - ldr r0, _08164704 - mov sb, r0 - mov r8, sb - mov ip, r4 - adds r5, r2, #0 - movs r4, #0x8a - lsls r4, r4, #1 -_081646AC: - mov r1, r8 - adds r2, r3, r1 - mov r1, ip - ldr r0, [r1] - adds r1, r3, r5 - adds r0, r0, r4 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r2] - adds r3, #1 - cmp r3, #6 - ble _081646AC - mov r2, sb - adds r1, r3, r2 - movs r0, #0xff - strb r0, [r1] -_081646CC: - ldr r0, _08164708 - lsls r1, r7, #3 - ldr r2, _0816470C - adds r1, r1, r2 - bl StringCopy - ldr r0, _08164710 - lsls r1, r6, #1 - adds r1, r1, r6 - lsls r1, r1, #1 - ldr r2, _08164714 - adds r1, r1, r2 - bl StringCopy - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081646F4: .4byte gUnknown_3005AF0 -_081646F8: .4byte gUnknown_3005FD8 -_081646FC: .4byte gUnknown_2037282 -_08164700: .4byte 0xFFFFFE70 -_08164704: .4byte gUnknown_2021C68 -_08164708: .4byte gUnknown_2021C40 -_0816470C: .4byte gUnknown_82EACC4 -_08164710: .4byte gUnknown_2021C54 -_08164714: .4byte gUnknown_82EA31C - thumb_func_end sub_081645E4 - - thumb_func_start sub_08164718 -sub_08164718: @ 0x08164718 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - bl SetFacilityPtrsGetLevel - bl GetCurrentFacilityWinStreak - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #7 - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - ldr r0, _0816475C - ldrh r0, [r0] - subs r5, r0, #2 - ldr r0, _08164760 - ldr r0, [r0] - lsls r1, r5, #1 - ldr r2, _08164764 - adds r0, r0, r2 - adds r0, r0, r1 - ldrh r7, [r0] - movs r3, #0 - str r3, [sp] - ldr r4, _08164768 - lsls r6, r7, #0x10 - b _08164774 - .align 2, 0 -_0816475C: .4byte gUnknown_2037292 -_08164760: .4byte gUnknown_3005AF0 -_08164764: .4byte 0x00000CB4 -_08164768: .4byte gUnknown_85BC444 -_0816476C: - adds r4, #8 - ldr r0, [sp] - adds r0, #1 - str r0, [sp] -_08164774: - ldr r1, [sp] - cmp r1, #0x31 - bhi _0816478A - lsrs r0, r6, #0x10 - bl sub_08162C38 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, [r4] - cmp r1, r0 - bne _0816476C -_0816478A: - ldr r0, _081647A0 - ldrh r0, [r0] - cmp r0, #4 - bls _08164794 - b _081649A2 -_08164794: - lsls r0, r0, #2 - ldr r1, _081647A4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081647A0: .4byte gUnknown_2037282 -_081647A4: .4byte _081647A8 -_081647A8: @ jump table - .4byte _081647BC @ case 0 - .4byte _08164864 @ case 1 - .4byte _0816487C @ case 2 - .4byte _0816489C @ case 3 - .4byte _081649A2 @ case 4 -_081647BC: - movs r0, #0xfa - lsls r0, r0, #1 - cmp r7, r0 - bne _081647C6 - b _08164A34 -_081647C6: - subs r0, #0xc9 - cmp r7, r0 - ble _081647D2 - ldr r0, _081647DC - cmp r7, r0 - bgt _081647E4 -_081647D2: - ldr r0, _081647E0 - adds r1, r7, #0 - bl sub_08162D24 - b _081649A2 - .align 2, 0 -_081647DC: .4byte 0x0000018F -_081647E0: .4byte gUnknown_2021C40 -_081647E4: - movs r3, #0 - ldr r6, _08164850 - lsls r2, r7, #0x10 - str r2, [sp, #4] - ldr r4, _08164854 - mov sl, r4 - ldr r5, _08164858 - mov ip, r5 - mov sb, sl - mov r8, r6 - ldr r0, _0816485C - adds r1, r7, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r4, r0, #2 - movs r5, #0x8a - lsls r5, r5, #1 -_08164806: - mov r1, sb - adds r2, r3, r1 - mov r1, r8 - ldr r0, [r1] - adds r1, r3, r4 - adds r0, r0, r5 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r2] - adds r3, #1 - cmp r3, #6 - ble _08164806 - mov r2, sl - adds r1, r3, r2 - movs r0, #0xff - strb r0, [r1] - ldr r1, [r6] - ldr r3, _0816485C - adds r2, r7, r3 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r1, r1, r0 - adds r1, #0xde - ldrb r1, [r1] - mov r0, ip - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - ldr r0, _08164860 - ldr r4, [sp, #4] - lsrs r1, r4, #0x10 - bl sub_08162D24 - b _081649A2 - .align 2, 0 -_08164850: .4byte gUnknown_3005AF0 -_08164854: .4byte gUnknown_2021C40 -_08164858: .4byte gUnknown_2021C54 -_0816485C: .4byte 0xFFFFFE70 -_08164860: .4byte gUnknown_2021C68 -_08164864: - ldr r0, _08164874 - ldr r1, [r0] - lsls r0, r5, #2 - adds r1, r1, r0 - ldr r5, _08164878 - adds r1, r1, r5 - b _08164888 - .align 2, 0 -_08164874: .4byte gUnknown_3005AF0 -_08164878: .4byte 0x00000CC4 -_0816487C: - ldr r0, _08164894 - ldr r1, [r0] - lsls r0, r5, #2 - adds r1, r1, r0 - ldr r0, _08164898 - adds r1, r1, r0 -_08164888: - adds r0, r7, #0 - ldrh r1, [r1] - bl sub_081645E4 - b _081649A2 - .align 2, 0 -_08164894: .4byte gUnknown_3005AF0 -_08164898: .4byte 0x00000CC6 -_0816489C: - ldr r0, _081648D0 - strh r7, [r0] - ldr r0, _081648D4 - cmp r7, r0 - bgt _081648E8 - ldr r0, _081648D8 - ldr r4, [r0] - lsls r1, r5, #1 - adds r0, r1, #0 - adds r0, #8 - lsls r0, r0, #1 - ldr r3, _081648DC - adds r2, r4, r3 - adds r0, r2, r0 - ldrh r3, [r0] - ldr r5, _081648E0 - adds r0, r4, r5 - strh r3, [r0] - adds r1, #9 - lsls r1, r1, #1 - adds r2, r2, r1 - ldrh r0, [r2] - ldr r1, _081648E4 - adds r4, r4, r1 - strh r0, [r4] - b _08164926 - .align 2, 0 -_081648D0: .4byte gUnknown_203886E -_081648D4: .4byte 0x0000012B -_081648D8: .4byte gUnknown_3005AF0 -_081648DC: .4byte 0x00000CB4 -_081648E0: .4byte 0x00000CD8 -_081648E4: .4byte 0x00000CDA -_081648E8: - ldr r0, _08164900 - cmp r7, r0 - bgt _08164910 - ldr r0, _08164904 - ldr r1, [r0] - ldr r3, _08164908 - ldrh r2, [r3, #4] - ldr r4, _0816490C - adds r0, r1, r4 - strh r2, [r0] - ldrh r0, [r3, #6] - b _08164920 - .align 2, 0 -_08164900: .4byte 0x0000018F -_08164904: .4byte gUnknown_3005AF0 -_08164908: .4byte gUnknown_3005FD8 -_0816490C: .4byte 0x00000CD8 -_08164910: - ldr r0, _081649B8 - ldr r1, [r0] - ldr r3, _081649BC - ldrh r2, [r3] - ldr r4, _081649C0 - adds r0, r1, r4 - strh r2, [r0] - ldrh r0, [r3, #2] -_08164920: - ldr r5, _081649C4 - adds r1, r1, r5 - strh r0, [r1] -_08164926: - movs r5, #0 - mov r0, r8 - lsls r0, r0, #0x18 - str r0, [sp, #8] -_0816492E: - lsls r1, r5, #1 - mov sl, r1 - adds r2, r5, #1 - mov sb, r2 - lsrs r0, r5, #0x1f - adds r0, r5, r0 - asrs r0, r0, #1 - lsls r0, r0, #0x18 - mov r8, r0 -_08164940: - ldr r3, [sp, #8] - lsrs r0, r3, #0x18 - mov r4, r8 - lsrs r1, r4, #0x18 - bl sub_0816245C - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldr r0, _081649C8 - ldrh r0, [r0] - cmp r0, r3 - beq _08164940 - movs r2, #0 - cmp r2, r5 - bge _08164982 - ldr r1, _081649B8 - ldr r0, [r1] - ldr r4, _081649CC - adds r0, r0, r4 - ldrh r0, [r0] - adds r6, r1, #0 - cmp r0, r3 - beq _08164982 -_0816496E: - adds r2, #1 - cmp r2, r5 - bge _08164982 - ldr r0, [r6] - lsls r1, r2, #1 - adds r0, r0, r4 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, r3 - bne _0816496E -_08164982: - cmp r2, r5 - bne _08164940 - ldr r5, _081649B8 - ldr r0, [r5] - ldr r1, _081649CC - adds r0, r0, r1 - add r0, sl - strh r3, [r0] - mov r5, sb - ldr r6, _081649B8 - cmp r5, #0xd - ble _0816492E - ldr r0, [r6] - ldr r2, _081649D0 - adds r0, r0, r2 - strh r7, [r0] -_081649A2: - movs r0, #0xfa - lsls r0, r0, #1 - cmp r7, r0 - beq _08164A34 - subs r0, #0xc9 - cmp r7, r0 - bgt _081649D8 - ldr r0, _081649D4 - ldr r3, [sp] - lsls r1, r3, #3 - b _081649E4 - .align 2, 0 -_081649B8: .4byte gUnknown_3005AF0 -_081649BC: .4byte gUnknown_3005FD8 -_081649C0: .4byte 0x00000CD8 -_081649C4: .4byte 0x00000CDA -_081649C8: .4byte gUnknown_203886E -_081649CC: .4byte 0x00000CB4 -_081649D0: .4byte 0x00000CD6 -_081649D4: .4byte gUnknown_85BC444 -_081649D8: - ldr r0, _081649FC - cmp r7, r0 - bgt _08164A08 - ldr r0, _08164A00 - ldr r4, [sp] - lsls r1, r4, #3 -_081649E4: - adds r0, #4 - adds r1, r1, r0 - ldr r0, _08164A04 - ldrh r0, [r0] - ldr r1, [r1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl ShowFieldMessage - b _08164A34 - .align 2, 0 -_081649FC: .4byte 0x0000018F -_08164A00: .4byte gUnknown_85BC444 -_08164A04: .4byte gUnknown_2037282 -_08164A08: - ldr r0, _08164A44 - ldr r1, [r0] - ldr r5, _08164A48 - adds r2, r7, r5 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r1, r1, r0 - adds r1, #0xdc - ldrb r0, [r1] - lsls r0, r0, #0x1b - ldr r1, _08164A4C - lsrs r0, r0, #0x19 - adds r0, r0, r1 - ldr r1, _08164A50 - ldrh r1, [r1] - ldr r0, [r0] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl ShowFieldMessage -_08164A34: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08164A44: .4byte gUnknown_3005AF0 -_08164A48: .4byte 0xFFFFFE70 -_08164A4C: .4byte gUnknown_85BC5D4 -_08164A50: .4byte gUnknown_2037282 - thumb_func_end sub_08164718 - - thumb_func_start sub_08164A54 -sub_08164A54: @ 0x08164A54 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - ldr r4, _08164A98 - ldr r0, [r4] - ldr r1, _08164A9C - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r7, r0, #0x1e - ldr r0, _08164AA0 - bl VarGet - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, [r4] - ldr r2, _08164AA4 - adds r0, r0, r2 - ldrh r6, [r0] - bl GetMultiplayerId - ldr r0, _08164AA8 - ldrh r0, [r0] - cmp r0, #6 - bls _08164A8C - b _08164C96 -_08164A8C: - lsls r0, r0, #2 - ldr r1, _08164AAC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08164A98: .4byte gUnknown_3005AF0 -_08164A9C: .4byte 0x00000CA9 -_08164AA0: .4byte 0x000040CE -_08164AA4: .4byte 0x00000CB2 -_08164AA8: .4byte gUnknown_2037290 -_08164AAC: .4byte _08164AB0 -_08164AB0: @ jump table - .4byte _08164ACC @ case 0 - .4byte _08164B1C @ case 1 - .4byte _08164BC0 @ case 2 - .4byte _08164BF4 @ case 3 - .4byte _08164C78 @ case 4 - .4byte _08164C88 @ case 5 - .4byte _08164C96 @ case 6 -_08164ACC: - cmp r5, #3 - beq _08164AD2 - b _08164C90 -_08164AD2: - ldr r0, _08164B10 - ldr r0, [r0] - lsls r1, r7, #1 - adds r0, r0, r1 - ldr r3, _08164B14 - adds r0, r0, r3 - ldrh r0, [r0] - movs r1, #7 - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp] - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08164AF8 - b _08164C96 -_08164AF8: - bl bitmask_all_link_players_but_self - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, sp - movs r2, #4 - bl SendBlock - ldr r1, _08164B18 - movs r0, #1 - b _08164C94 - .align 2, 0 -_08164B10: .4byte gUnknown_3005AF0 -_08164B14: .4byte 0x00000CEC -_08164B18: .4byte gUnknown_2037290 -_08164B1C: - bl GetBlockReceivedStatus - movs r1, #3 - ands r1, r0 - cmp r1, #3 - beq _08164B2A - b _08164C96 -_08164B2A: - bl ResetBlockReceivedFlags - ldr r1, _08164BB0 - movs r0, #0x80 - lsls r0, r0, #1 - adds r2, r1, r0 - ldrh r0, [r1] - ldrh r3, [r2] - cmp r0, r3 - bhi _08164B40 - ldrh r0, [r2] -_08164B40: - str r0, [sp] - movs r4, #0 - ldr r0, _08164BB4 - mov sb, r0 -_08164B48: - adds r1, r4, #1 - mov r8, r1 - lsrs r0, r4, #0x1f - adds r0, r4, r0 - asrs r0, r0, #1 - lsls r7, r0, #0x18 -_08164B54: - ldr r0, [sp] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsrs r1, r7, #0x18 - bl sub_0816245C - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - movs r2, #0 - cmp r2, r4 - bge _08164B90 - mov r1, sb - ldr r0, [r1] - ldr r1, _08164BB8 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, r3 - beq _08164B90 - ldr r6, _08164BB4 - adds r5, r1, #0 -_08164B7C: - adds r2, #1 - cmp r2, r4 - bge _08164B90 - ldr r0, [r6] - lsls r1, r2, #1 - adds r0, r0, r5 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, r3 - bne _08164B7C -_08164B90: - cmp r4, r2 - bne _08164B54 - mov r2, sb - ldr r0, [r2] - lsls r1, r4, #1 - ldr r2, _08164BB8 - adds r0, r0, r2 - adds r0, r0, r1 - strh r3, [r0] - mov r4, r8 - cmp r4, #0xd - ble _08164B48 - ldr r1, _08164BBC - movs r0, #2 - b _08164C94 - .align 2, 0 -_08164BB0: .4byte gUnknown_202207C -_08164BB4: .4byte gUnknown_3005AF0 -_08164BB8: .4byte 0x00000CB4 -_08164BBC: .4byte gUnknown_2037290 -_08164BC0: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08164C96 - bl bitmask_all_link_players_but_self - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08164BE8 - ldr r1, [r1] - ldr r3, _08164BEC - adds r1, r1, r3 - movs r2, #0x28 - bl SendBlock - ldr r1, _08164BF0 - movs r0, #3 - b _08164C94 - .align 2, 0 -_08164BE8: .4byte gUnknown_3005AF0 -_08164BEC: .4byte 0x00000CB4 -_08164BF0: .4byte gUnknown_2037290 -_08164BF4: - bl GetBlockReceivedStatus - movs r1, #3 - ands r1, r0 - cmp r1, #3 - bne _08164C96 - bl ResetBlockReceivedFlags - ldr r4, _08164C58 - ldr r0, [r4] - ldr r5, _08164C5C - adds r0, r0, r5 - ldr r1, _08164C60 - movs r2, #0x28 - bl memcpy - ldr r2, _08164C64 - ldr r1, [r4] - lsls r0, r6, #2 - adds r1, r1, r5 - adds r0, r1, r0 - ldrh r0, [r0] - strh r0, [r2] - ldr r4, _08164C68 - lsls r0, r6, #1 - adds r0, #1 - lsls r0, r0, #1 - adds r1, r1, r0 - ldrh r0, [r1] - strh r0, [r4] - ldrh r0, [r2] - movs r1, #0 - bl sub_08162528 - ldrh r0, [r4] - movs r1, #1 - bl sub_08162528 - ldr r0, _08164C6C - ldrb r0, [r0] - cmp r0, #0 - beq _08164C90 - ldr r0, _08164C70 - ldrb r0, [r0] - cmp r0, #0 - bne _08164C90 - ldr r1, _08164C74 - movs r0, #4 - b _08164C94 - .align 2, 0 -_08164C58: .4byte gUnknown_3005AF0 -_08164C5C: .4byte 0x00000CB4 -_08164C60: .4byte gUnknown_202207C -_08164C64: .4byte gUnknown_203886A -_08164C68: .4byte gUnknown_203886C -_08164C6C: .4byte gUnknown_30031C4 -_08164C70: .4byte gUnknown_300319C -_08164C74: .4byte gUnknown_2037290 -_08164C78: - bl sub_0800A7F8 - ldr r1, _08164C84 - movs r0, #5 - b _08164C94 - .align 2, 0 -_08164C84: .4byte gUnknown_2037290 -_08164C88: - ldr r0, _08164CA4 - ldrb r0, [r0] - cmp r0, #0 - bne _08164C96 -_08164C90: - ldr r1, _08164CA8 - movs r0, #6 -_08164C94: - strh r0, [r1] -_08164C96: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08164CA4: .4byte gUnknown_30031C4 -_08164CA8: .4byte gUnknown_2037290 - thumb_func_end sub_08164A54 - - thumb_func_start sub_08164CAC -sub_08164CAC: @ 0x08164CAC - push {lr} - ldr r0, _08164CC0 - ldrb r0, [r0] - cmp r0, #0 - beq _08164CBA - bl sub_0800A7F8 -_08164CBA: - pop {r0} - bx r0 - .align 2, 0 -_08164CC0: .4byte gUnknown_300319C - thumb_func_end sub_08164CAC - - thumb_func_start sub_08164CC4 -sub_08164CC4: @ 0x08164CC4 - push {lr} - ldr r0, _08164CDC - ldr r0, [r0] - ldr r1, _08164CE0 - adds r0, r0, r1 - ldrh r0, [r0] - movs r1, #0xf - bl sub_08162528 - pop {r0} - bx r0 - .align 2, 0 -_08164CDC: .4byte gUnknown_3005AF0 -_08164CE0: .4byte 0x00000CD6 - thumb_func_end sub_08164CC4 - - thumb_func_start sub_08164CE4 -sub_08164CE4: @ 0x08164CE4 - push {r4, r5, r6, lr} - ldr r0, _08164D70 - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08164D6A - ldr r5, _08164D74 - ldr r0, [r5] - ldr r1, _08164D78 - adds r0, r0, r1 - ldr r4, _08164D7C - ldrh r1, [r4] - bl sub_08162D24 - ldr r0, [r5] - ldr r2, _08164D80 - adds r0, r0, r2 - ldrh r1, [r4] - bl GetBattleTowerTrainerLanguage - ldr r6, _08164D84 - ldrh r0, [r6, #2] - movs r4, #0x64 - muls r0, r4, r0 - ldr r1, _08164D88 - adds r0, r0, r1 - movs r1, #0xb - movs r2, #0 - bl GetMonData - ldr r1, [r5] - ldr r2, _08164D8C - adds r1, r1, r2 - strh r0, [r1] - ldrh r0, [r6] - muls r0, r4, r0 - ldr r1, _08164D90 - adds r0, r0, r1 - movs r1, #0xb - movs r2, #0 - bl GetMonData - ldr r1, [r5] - ldr r2, _08164D94 - adds r1, r1, r2 - strh r0, [r1] - movs r2, #0 - movs r4, #0xbe - lsls r4, r4, #4 - ldr r3, _08164D98 - adds r6, r5, #0 -_08164D4C: - ldr r0, [r5] - adds r0, r0, r4 - adds r0, r0, r2 - adds r1, r2, r3 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, #9 - ble _08164D4C - ldr r0, [r6] - ldr r1, _08164D9C - ldrb r1, [r1] - ldr r2, _08164DA0 - adds r0, r0, r2 - strb r1, [r0] -_08164D6A: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08164D70: .4byte 0x000040CE -_08164D74: .4byte gUnknown_3005AF0 -_08164D78: .4byte 0x00000BD8 -_08164D7C: .4byte gUnknown_203886A -_08164D80: .4byte 0x00000BEB -_08164D84: .4byte gUnknown_2023D12 -_08164D88: .4byte gUnknown_20243E8 -_08164D8C: .4byte 0x00000BD6 -_08164D90: .4byte gUnknown_2024190 -_08164D94: .4byte 0x00000BD4 -_08164D98: .4byte gUnknown_2023D58 -_08164D9C: .4byte gUnknown_2023FDE -_08164DA0: .4byte 0x00000D06 - thumb_func_end sub_08164CE4 - - thumb_func_start ValidateBattleTowerRecordChecksums -ValidateBattleTowerRecordChecksums: @ 0x08164DA4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _08164E30 - ldr r0, [r0] - movs r3, #0 - movs r2, #0 - ldr r4, _08164E34 - adds r1, r0, r4 -_08164DB6: - ldm r1!, {r0} - adds r3, r3, r0 - adds r2, #1 - cmp r2, #0x39 - bls _08164DB6 - ldr r5, _08164E30 - ldr r1, [r5] - ldr r2, _08164E38 - adds r0, r1, r2 - ldr r0, [r0] - cmp r0, r3 - beq _08164DD6 - ldr r3, _08164E34 - adds r0, r1, r3 - bl ClearBattleTowerRecord -_08164DD6: - movs r4, #0 - adds r7, r5, #0 - movs r6, #0xec - mov r8, r7 -_08164DDE: - adds r0, r4, #0 - muls r0, r6, r0 - movs r1, #0xe7 - lsls r1, r1, #3 - adds r0, r0, r1 - ldr r1, [r7] - movs r3, #0 - movs r2, #0 - adds r5, r4, #1 - adds r1, r1, r0 -_08164DF2: - ldm r1!, {r0} - adds r3, r3, r0 - adds r2, #1 - cmp r2, #0x39 - bls _08164DF2 - mov r0, r8 - ldr r2, [r0] - adds r1, r4, #0 - muls r1, r6, r1 - movs r4, #0x82 - lsls r4, r4, #4 - adds r0, r2, r4 - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, r3 - beq _08164E1E - movs r3, #0xe7 - lsls r3, r3, #3 - adds r0, r1, r3 - adds r0, r2, r0 - bl ClearBattleTowerRecord -_08164E1E: - adds r4, r5, #0 - cmp r4, #4 - ble _08164DDE - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08164E30: .4byte gUnknown_3005AF0 -_08164E34: .4byte 0x0000064C -_08164E38: .4byte 0x00000734 - thumb_func_end ValidateBattleTowerRecordChecksums - - thumb_func_start CalcEmeraldBattleTowerChecksum -CalcEmeraldBattleTowerChecksum: @ 0x08164E3C - push {r4, lr} - adds r2, r0, #0 - adds r2, #0xe8 - movs r1, #0 - str r1, [r2] - movs r3, #0 - adds r4, r0, #0 -_08164E4A: - ldr r0, [r2] - ldm r4!, {r1} - adds r0, r0, r1 - str r0, [r2] - adds r3, #1 - cmp r3, #0x39 - bls _08164E4A - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CalcEmeraldBattleTowerChecksum - - thumb_func_start CalcRubyBattleTowerChecksum -CalcRubyBattleTowerChecksum: @ 0x08164E60 - push {r4, lr} - adds r2, r0, #0 - adds r2, #0xa0 - movs r1, #0 - str r1, [r2] - movs r3, #0 - adds r4, r0, #0 -_08164E6E: - ldr r0, [r2] - ldm r4!, {r1} - adds r0, r0, r1 - str r0, [r2] - adds r3, #1 - cmp r3, #0x27 - bls _08164E6E - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CalcRubyBattleTowerChecksum - - thumb_func_start ClearBattleTowerRecord -ClearBattleTowerRecord: @ 0x08164E84 - push {lr} - movs r1, #0 - movs r2, #0 -_08164E8A: - stm r0!, {r2} - adds r1, #1 - cmp r1, #0x3a - bls _08164E8A - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ClearBattleTowerRecord - - thumb_func_start GetCurrentBattleTowerWinStreak -GetCurrentBattleTowerWinStreak: @ 0x08164E98 - push {lr} - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - ldr r2, _08164EC0 - ldr r2, [r2] - lsrs r0, r0, #0x17 - lsrs r1, r1, #0x16 - adds r0, r0, r1 - movs r1, #0xce - lsls r1, r1, #4 - adds r2, r2, r1 - adds r2, r2, r0 - ldrh r0, [r2] - ldr r1, _08164EC4 - cmp r0, r1 - bls _08164EBA - adds r0, r1, #0 -_08164EBA: - pop {r1} - bx r1 - .align 2, 0 -_08164EC0: .4byte gUnknown_3005AF0 -_08164EC4: .4byte 0x0000270F - thumb_func_end GetCurrentBattleTowerWinStreak - - thumb_func_start sub_08164EC8 -sub_08164EC8: @ 0x08164EC8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0xc - ldr r0, _08164FC0 - ldr r0, [r0] - ldr r1, _08164FC4 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - adds r4, r0, #0 - ldr r0, _08164FC8 - bl VarGet - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r2, #0x44 - mov sb, r2 - cmp r4, #0 - beq _08164EF8 - movs r0, #0x45 - mov sb, r0 -_08164EF8: - ldr r5, _08164FCC - movs r0, #0 - strh r0, [r5] - adds r0, r4, #0 - bl GetCurrentBattleTowerWinStreak - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x37 - bls _08164F64 - movs r6, #0 - ldr r7, _08164FD0 - mov r8, r5 - mov r5, sp -_08164F14: - ldr r0, _08164FC0 - ldr r0, [r0] - lsls r1, r6, #1 - ldr r2, _08164FD4 - adds r0, r0, r2 - adds r0, r0, r1 - ldrh r1, [r0] - subs r1, #1 - movs r0, #0 - strb r1, [r5] - strb r0, [r5, #1] - movs r0, #0x64 - muls r0, r1, r0 - movs r1, #0x8e - lsls r1, r1, #2 - adds r4, r0, r1 - ldr r0, [r7] - adds r0, r0, r4 - mov r1, sb - bl GetMonData - cmp r0, #0 - bne _08164F5C - movs r0, #1 - mov r2, r8 - strh r0, [r2] - ldr r0, [r7] - adds r0, r0, r4 - mov r1, sb - bl SetMonData - ldr r0, [r7] - adds r0, r0, r4 - bl GetRibbonCount - strb r0, [r5, #1] -_08164F5C: - adds r5, #4 - adds r6, #1 - cmp r6, #2 - ble _08164F14 -_08164F64: - ldr r0, _08164FCC - ldrh r0, [r0] - cmp r0, #0 - beq _08164FB2 - movs r0, #0x2a - bl IncrementGameStat - mov r3, sp - add r2, sp, #4 - movs r6, #1 -_08164F78: - ldrb r1, [r3, #1] - ldrb r0, [r2, #1] - cmp r0, r1 - bls _08164F88 - ldr r1, [sp] - ldr r0, [r2] - str r0, [sp] - str r1, [r2] -_08164F88: - adds r2, #4 - subs r6, #1 - cmp r6, #0 - bge _08164F78 - mov r0, sp - ldrb r0, [r0, #1] - cmp r0, #4 - bls _08164FB2 - ldr r2, _08164FD0 - mov r0, sp - ldrb r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - movs r0, #0x8e - lsls r0, r0, #2 - adds r1, r1, r0 - ldr r0, [r2] - adds r0, r0, r1 - mov r1, sb - bl sub_080EEFFC -_08164FB2: - add sp, #0xc - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08164FC0: .4byte gUnknown_3005AF0 -_08164FC4: .4byte 0x00000CA9 -_08164FC8: .4byte 0x000040CE -_08164FCC: .4byte gUnknown_2037290 -_08164FD0: .4byte gUnknown_3005AEC -_08164FD4: .4byte 0x00000CAA - thumb_func_end sub_08164EC8 - - thumb_func_start FillEReaderTrainerWithPlayerData -FillEReaderTrainerWithPlayerData: @ 0x08164FD8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r1, _08165004 - ldr r2, [r1] - ldr r0, _08165008 - adds r7, r2, r0 - ldrb r0, [r2, #8] - adds r5, r1, #0 - cmp r0, #0 - beq _08165010 - ldr r4, _0816500C - ldrb r0, [r2, #0xa] - ldrb r1, [r2, #0xb] - adds r0, r0, r1 - ldrb r1, [r2, #0xc] - adds r0, r0, r1 - ldrb r1, [r2, #0xd] - adds r0, r0, r1 - movs r1, #0x14 - b _08165022 - .align 2, 0 -_08165004: .4byte gUnknown_3005AF0 -_08165008: .4byte 0x00000BEC -_0816500C: .4byte gUnknown_85BBE3E -_08165010: - ldr r4, _081650B0 - ldrb r0, [r2, #0xa] - ldrb r1, [r2, #0xb] - adds r0, r0, r1 - ldrb r1, [r2, #0xc] - adds r0, r0, r1 - ldrb r1, [r2, #0xd] - adds r0, r0, r1 - movs r1, #0x1e -_08165022: - bl __umodsi3 - adds r0, r0, r4 - ldrb r0, [r0] - strb r0, [r7, #1] - adds r0, r7, #0 - adds r0, #0xc - ldr r1, [r5] - adds r1, #0xa - bl CopyTrainerId - adds r0, r7, #4 - ldr r1, [r5] - bl StringCopy7 - movs r0, #1 - strh r0, [r7, #2] - movs r6, #7 - movs r4, #0 - ldr r0, _081650B4 - mov r8, r0 - adds r5, r7, #0 - adds r5, #0x10 - ldr r1, _081650B8 - mov ip, r1 - adds r3, r7, #0 - adds r3, #0x28 - adds r2, r7, #0 - adds r2, #0x1c -_0816505C: - lsls r0, r4, #1 - mov sb, r0 - mov r1, r8 - ldr r0, [r1] - add r0, ip - add r0, sb - ldrh r0, [r0] - strh r0, [r5] - strh r6, [r2] - adds r0, r6, #6 - strh r0, [r3] - adds r6, #1 - adds r5, #2 - adds r3, #2 - adds r2, #2 - adds r4, #1 - cmp r4, #5 - ble _0816505C - movs r4, #0 -_08165082: - movs r0, #0x64 - muls r0, r4, r0 - ldr r1, _081650BC - adds r0, r0, r1 - movs r1, #0x2c - muls r1, r4, r1 - adds r1, #0x34 - adds r1, r7, r1 - bl sub_0806823C - adds r4, #1 - cmp r4, #2 - ble _08165082 - adds r0, r7, #0 - bl SetEReaderTrainerChecksum - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081650B0: .4byte gUnknown_85BBE20 -_081650B4: .4byte gUnknown_3005AEC -_081650B8: .4byte 0x00002BBC -_081650BC: .4byte gUnknown_2024190 - thumb_func_end FillEReaderTrainerWithPlayerData - - thumb_func_start sub_081650C0 -sub_081650C0: @ 0x081650C0 - ldr r1, _081650D4 - ldr r0, _081650D8 - ldr r0, [r0] - ldr r2, _081650DC - adds r0, r0, r2 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_081650D4: .4byte gUnknown_82EFF00 -_081650D8: .4byte gUnknown_3005AF0 -_081650DC: .4byte 0x00000BED - thumb_func_end sub_081650C0 - - thumb_func_start sub_081650E0 -sub_081650E0: @ 0x081650E0 - ldr r1, _081650F4 - ldr r0, _081650F8 - ldr r0, [r0] - ldr r2, _081650FC - adds r0, r0, r2 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_081650F4: .4byte gUnknown_82EFF52 -_081650F8: .4byte gUnknown_3005AF0 -_081650FC: .4byte 0x00000BED - thumb_func_end sub_081650E0 - - thumb_func_start GetEreaderTrainerName -GetEreaderTrainerName: @ 0x08165100 - push {r4, lr} - adds r3, r0, #0 - movs r2, #0 - ldr r0, _0816512C - ldr r0, [r0] - movs r1, #0xbf - lsls r1, r1, #4 - adds r4, r0, r1 -_08165110: - adds r0, r3, r2 - adds r1, r4, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, #4 - ble _08165110 - adds r1, r3, r2 - movs r0, #0xff - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816512C: .4byte gUnknown_3005AF0 - thumb_func_end GetEreaderTrainerName - - thumb_func_start ValidateEReaderTrainer -ValidateEReaderTrainer: @ 0x08165130 - push {r4, r5, r6, lr} - ldr r2, _0816515C - movs r0, #0 - strh r0, [r2] - ldr r1, _08165160 - ldr r0, [r1] - ldr r3, _08165164 - adds r5, r0, r3 - movs r4, #0 - movs r3, #0 - adds r6, r1, #0 - adds r1, r5, #0 -_08165148: - ldm r1!, {r0} - orrs r4, r0 - adds r3, #1 - cmp r3, #0x2d - bls _08165148 - cmp r4, #0 - bne _08165168 - movs r0, #1 - strh r0, [r2] - b _08165192 - .align 2, 0 -_0816515C: .4byte gUnknown_2037290 -_08165160: .4byte gUnknown_3005AF0 -_08165164: .4byte 0x00000BEC -_08165168: - movs r4, #0 - movs r3, #0 - adds r2, r5, #0 -_0816516E: - ldm r2!, {r0} - adds r4, r4, r0 - adds r3, #1 - cmp r3, #0x2d - bls _0816516E - ldr r1, [r6] - ldr r2, _08165198 - adds r0, r1, r2 - ldr r0, [r0] - cmp r0, r4 - beq _08165192 - ldr r3, _0816519C - adds r0, r1, r3 - bl ClearEReaderTrainer - ldr r1, _081651A0 - movs r0, #1 - strh r0, [r1] -_08165192: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08165198: .4byte 0x00000CA4 -_0816519C: .4byte 0x00000BEC -_081651A0: .4byte gUnknown_2037290 - thumb_func_end ValidateEReaderTrainer - - thumb_func_start SetEReaderTrainerChecksum -SetEReaderTrainerChecksum: @ 0x081651A4 - push {r4, lr} - adds r2, r0, #0 - adds r2, #0xb8 - movs r1, #0 - str r1, [r2] - movs r3, #0 - adds r4, r0, #0 -_081651B2: - ldr r0, [r2] - ldm r4!, {r1} - adds r0, r0, r1 - str r0, [r2] - adds r3, #1 - cmp r3, #0x2d - bls _081651B2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetEReaderTrainerChecksum - - thumb_func_start ClearEReaderTrainer -ClearEReaderTrainer: @ 0x081651C8 - push {lr} - movs r1, #0 - movs r2, #0 -_081651CE: - stm r0!, {r2} - adds r1, #1 - cmp r1, #0x2e - bls _081651CE - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ClearEReaderTrainer - - thumb_func_start CopyEReaderTrainerGreeting -CopyEReaderTrainerGreeting: @ 0x081651DC - push {lr} - ldr r0, _081651F0 - ldr r0, [r0] - ldr r1, _081651F4 - adds r0, r0, r1 - bl FrontierSpeechToString - pop {r0} - bx r0 - .align 2, 0 -_081651F0: .4byte gUnknown_3005AF0 -_081651F4: .4byte 0x00000BFC - thumb_func_end CopyEReaderTrainerGreeting - - thumb_func_start CopyEReaderTrainerFarewellMessage -CopyEReaderTrainerFarewellMessage: @ 0x081651F8 - push {lr} - ldr r0, _0816520C - ldrb r0, [r0] - cmp r0, #3 - bne _08165214 - ldr r1, _08165210 - movs r0, #0xff - strb r0, [r1] - b _0816523C - .align 2, 0 -_0816520C: .4byte gUnknown_2023FDE -_08165210: .4byte gUnknown_2021C7C -_08165214: - cmp r0, #1 - bne _08165230 - ldr r0, _08165228 - ldr r0, [r0] - ldr r1, _0816522C - adds r0, r0, r1 - bl FrontierSpeechToString - b _0816523C - .align 2, 0 -_08165228: .4byte gUnknown_3005AF0 -_0816522C: .4byte 0x00000C14 -_08165230: - ldr r0, _08165240 - ldr r0, [r0] - ldr r1, _08165244 - adds r0, r0, r1 - bl FrontierSpeechToString -_0816523C: - pop {r0} - bx r0 - .align 2, 0 -_08165240: .4byte gUnknown_3005AF0 -_08165244: .4byte 0x00000C08 - thumb_func_end CopyEReaderTrainerFarewellMessage - - thumb_func_start sub_08165248 -sub_08165248: @ 0x08165248 - push {lr} - ldr r0, _08165278 - ldr r0, [r0] - ldr r1, _0816527C - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - bne _0816525C - bl sub_080F0C84 -_0816525C: - movs r0, #0x77 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08165274 - bl sub_080F0C84 - movs r0, #0x77 - bl FlagClear -_08165274: - pop {r0} - bx r0 - .align 2, 0 -_08165278: .4byte gUnknown_3005AF0 -_0816527C: .4byte 0x00000CA8 - thumb_func_end sub_08165248 - - thumb_func_start FillPartnerParty -FillPartnerParty: @ 0x08165280 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x40 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - bl SetFacilityPtrsGetLevel - ldr r0, _081653AC - cmp r7, r0 - beq _0816529C - b _081653C8 -_0816529C: - movs r0, #0 - mov sl, r0 - mov r1, sp - adds r1, #0x18 - str r1, [sp, #0x30] -_081652A6: - mov r2, sl - lsls r2, r2, #2 - mov sb, r2 - mov r3, sl - adds r3, #1 - str r3, [sp, #0x38] - mov r0, sb - add r0, sl - lsls r0, r0, #2 - ldr r4, _081653B0 - adds r5, r0, r4 -_081652BC: - bl Random - adds r4, r0, #0 - bl Random - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r0, r0, #0x10 - orrs r4, r0 - str r4, [sp, #0x18] - ldr r0, _081653B4 - adds r1, r4, #0 - bl IsShinyOtIdPersonality - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #0 - bne _081652BC - ldr r0, [sp, #0x18] - bl GetNatureFromPersonality - ldrb r1, [r5, #4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r1, r0 - bne _081652BC - movs r0, #0x64 - mov r6, sl - muls r6, r0, r6 - ldr r1, _081653B8 - mov r8, r1 - adds r0, r6, r1 - mov r5, sb - add r5, sl - lsls r5, r5, #2 - ldr r2, _081653B0 - adds r3, r5, r2 - ldrh r1, [r3] - ldrb r2, [r3, #3] - ldrb r3, [r3, #2] - mov ip, r3 - movs r4, #1 - str r4, [sp] - mov r3, sl - str r3, [sp, #4] - str r4, [sp, #8] - ldr r4, _081653B4 - str r4, [sp, #0xc] - mov r3, ip - bl CreateMon - str r7, [sp, #0x18] - movs r3, #0 - mov r4, r8 - ldr r0, _081653BC - adds r5, r5, r0 -_0816532C: - adds r1, r3, #0 - adds r1, #0x1a - adds r2, r5, r3 - adds r0, r6, r4 - bl SetMonData - ldr r0, [sp, #0x18] - adds r0, #1 - str r0, [sp, #0x18] - adds r3, r0, #0 - cmp r3, #5 - ble _0816532C - movs r0, #0 - str r0, [sp, #0x18] - movs r1, #0 - movs r0, #0x64 - mov r4, sl - muls r4, r0, r4 - ldr r7, _081653C0 - ldr r6, _081653B8 - mov r0, sb - add r0, sl - lsls r5, r0, #2 -_0816535A: - lsls r0, r1, #1 - adds r0, r0, r5 - adds r0, r0, r7 - ldrh r1, [r0] - ldr r3, [sp, #0x30] - ldrb r2, [r3] - adds r0, r4, r6 - bl SetMonMoveSlot - ldr r0, [sp, #0x18] - adds r0, #1 - str r0, [sp, #0x18] - adds r1, r0, #0 - cmp r1, #3 - ble _0816535A - movs r0, #0x64 - mov r4, sl - muls r4, r0, r4 - ldr r0, _081653B8 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #7 - ldr r2, _081653C4 - bl SetMonData - movs r0, #0 - str r0, [sp, #0x18] - adds r0, r4, #0 - movs r1, #0x31 - ldr r2, [sp, #0x30] - bl SetMonData - adds r0, r4, #0 - bl CalculateMonStats - ldr r1, [sp, #0x38] - mov sl, r1 - cmp r1, #2 - bgt _081653AA - b _081652A6 -_081653AA: - b _081656A6 - .align 2, 0 -_081653AC: .4byte 0x00000C03 -_081653B0: .4byte gUnknown_85BC614 -_081653B4: .4byte 0x0000EF2A -_081653B8: .4byte gUnknown_20242BC -_081653BC: .4byte gUnknown_85BC619 -_081653C0: .4byte gUnknown_85BC620 -_081653C4: .4byte gUnknown_82E9CC0 -_081653C8: - movs r0, #0xfa - lsls r0, r0, #1 - cmp r7, r0 - bne _081653E0 - add r0, sp, #0x10 - ldr r1, _081653DC - ldrb r1, [r1] - strb r1, [r0] - b _081656A6 - .align 2, 0 -_081653DC: .4byte gUnknown_829BDA5 -_081653E0: - ldr r0, _08165548 - cmp r7, r0 - bls _081653E8 - b _08165564 -_081653E8: - bl SetFacilityPtrsGetLevel - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x24] - adds r0, r7, #0 - bl sub_08165B14 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x20] - bl Random - adds r4, r0, #0 - bl Random - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r0, r0, #0x10 - orrs r4, r0 - str r4, [sp, #0x2c] - movs r2, #0 - mov sl, r2 - mov r3, sp - adds r3, #0x18 - str r3, [sp, #0x30] - mov r4, sp - adds r4, #0x1c - str r4, [sp, #0x34] -_08165422: - ldr r0, _0816554C - ldr r1, [r0] - mov r0, sl - adds r0, #0x12 - lsls r0, r0, #1 - ldr r2, _08165550 - adds r1, r1, r2 - adds r1, r1, r0 - ldrh r1, [r1] - str r1, [sp, #0x28] - movs r4, #0x64 - mov r3, sl - muls r3, r4, r3 - mov r8, r3 - ldr r0, _08165554 - mov sb, r0 - mov r0, r8 - add r0, sb - ldr r6, _08165558 - ldr r4, [r6] - lsls r5, r1, #4 - adds r4, r5, r4 - ldrh r1, [r4] - ldr r3, [sp, #0x24] - lsls r2, r3, #0x18 - ldrb r3, [r4, #0xc] - mov ip, r3 - ldr r3, [sp, #0x20] - str r3, [sp] - ldrb r4, [r4, #0xb] - str r4, [sp, #4] - ldr r4, [sp, #0x2c] - str r4, [sp, #8] - lsrs r2, r2, #0x18 - mov r3, ip - bl CreateMonWithEVSpreadNatureOTID - movs r0, #0xff - str r0, [sp, #0x1c] - movs r0, #0 - str r0, [sp, #0x18] - movs r2, #0 - mov r0, sl - adds r0, #1 - str r0, [sp, #0x38] - mov r4, r8 - mov r3, sb -_08165480: - ldr r0, [r6] - adds r0, r5, r0 - lsls r1, r2, #1 - adds r0, #2 - adds r0, r0, r1 - ldrh r1, [r0] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, r3 - str r3, [sp, #0x3c] - bl SetMonMoveSlot - ldr r0, [r6] - adds r0, r5, r0 - ldr r2, [sp, #0x18] - lsls r1, r2, #1 - adds r0, #2 - adds r0, r0, r1 - ldrh r0, [r0] - ldr r3, [sp, #0x3c] - cmp r0, #0xda - bne _081654B0 - movs r0, #0 - str r0, [sp, #0x1c] -_081654B0: - adds r0, r2, #1 - str r0, [sp, #0x18] - adds r2, r0, #0 - cmp r2, #3 - ble _08165480 - movs r1, #0x64 - mov r4, sl - muls r4, r1, r4 - ldr r0, _08165554 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x20 - ldr r2, [sp, #0x34] - bl SetMonData - ldr r0, _08165558 - ldr r1, [r0] - ldr r2, [sp, #0x28] - lsls r0, r2, #4 - adds r0, r0, r1 - ldrb r2, [r0, #0xa] - lsls r2, r2, #1 - ldr r0, _0816555C - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0xc - bl SetMonData - movs r0, #0 - str r0, [sp, #0x18] - movs r2, #0 - ldr r0, _08165560 - ldr r1, [r0] - movs r0, #0x34 - muls r0, r7, r0 - adds r0, r0, r1 - adds r3, r0, #4 -_081654FA: - mov r1, sp - adds r1, r1, r2 - adds r1, #0x10 - adds r0, r3, r2 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, [sp, #0x18] - adds r0, #1 - str r0, [sp, #0x18] - adds r2, r0, #0 - cmp r2, #7 - ble _081654FA - movs r3, #0x64 - mov r4, sl - muls r4, r3, r4 - ldr r0, _08165554 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #7 - add r2, sp, #0x10 - bl SetMonData - adds r0, r7, #0 - bl sub_08162E90 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x18] - adds r0, r4, #0 - movs r1, #0x31 - ldr r2, [sp, #0x30] - bl SetMonData - ldr r4, [sp, #0x38] - mov sl, r4 - cmp r4, #1 - bgt _08165546 - b _08165422 -_08165546: - b _081656A6 - .align 2, 0 -_08165548: .4byte 0x0000012B -_0816554C: .4byte gUnknown_3005AF0 -_08165550: .4byte 0x00000CB4 -_08165554: .4byte gUnknown_20242BC -_08165558: .4byte gUnknown_203B958 -_0816555C: .4byte gUnknown_85ADBF4 -_08165560: .4byte gUnknown_203B954 -_08165564: - ldr r0, _08165624 - cmp r7, r0 - bhi _0816563C - ldr r1, _08165628 - adds r0, r7, r1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - movs r2, #0 - mov sl, r2 - mov r3, sp - adds r3, #0x18 - str r3, [sp, #0x30] - movs r0, #0xec - muls r0, r7, r0 - movs r4, #0xe7 - lsls r4, r4, #3 - adds r6, r0, r4 - ldr r5, _0816562C -_08165588: - movs r0, #0x64 - mov r1, sl - muls r1, r0, r1 - adds r0, r1, #0 - ldr r1, _08165630 - adds r0, r0, r1 - ldr r3, [r5] - adds r1, r3, r6 - mov r2, sl - adds r2, #0x12 - lsls r2, r2, #1 - ldr r4, _08165634 - adds r3, r3, r4 - adds r3, r3, r2 - ldrh r3, [r3] - movs r2, #0x2c - muls r2, r3, r2 - adds r2, #0x34 - adds r1, r1, r2 - movs r2, #1 - bl CreateBattleTowerMon2 - movs r0, #0 - str r0, [sp, #0x18] - movs r2, #0 - mov r0, sl - adds r0, #1 - str r0, [sp, #0x38] - ldr r1, [r5] - movs r0, #0xec - adds r4, r7, #0 - muls r4, r0, r4 - ldr r0, _08165638 - adds r3, r1, r0 -_081655CC: - mov r1, sp - adds r1, r1, r2 - adds r1, #0x10 - adds r0, r2, r4 - adds r0, r3, r0 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, [sp, #0x18] - adds r0, #1 - str r0, [sp, #0x18] - adds r2, r0, #0 - cmp r2, #7 - ble _081655CC - movs r0, #0x64 - mov r4, sl - muls r4, r0, r4 - ldr r0, _08165630 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #7 - add r2, sp, #0x10 - bl SetMonData - movs r1, #0x96 - lsls r1, r1, #1 - adds r0, r7, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_08162E90 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x18] - adds r0, r4, #0 - movs r1, #0x31 - ldr r2, [sp, #0x30] - bl SetMonData - ldr r2, [sp, #0x38] - mov sl, r2 - cmp r2, #1 - ble _08165588 - b _081656A6 - .align 2, 0 -_08165624: .4byte 0x0000018F -_08165628: .4byte 0xFFFFFED4 -_0816562C: .4byte gUnknown_3005AF0 -_08165630: .4byte gUnknown_20242BC -_08165634: .4byte 0x00000CB4 -_08165638: .4byte 0x0000073C -_0816563C: - ldr r3, _081656B8 - adds r0, r7, r3 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - movs r4, #0 - mov sl, r4 - mov r0, sp - adds r0, #0x18 - str r0, [sp, #0x30] - ldr r1, _081656BC - mov r8, r1 - movs r5, #0x24 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - adds r6, r0, #0 - adds r6, #0xdc -_0816565E: - movs r0, #0x64 - mov r4, sl - muls r4, r0, r4 - ldr r0, _081656C0 - adds r4, r4, r0 - mov r2, r8 - ldr r0, [r2] - adds r1, r0, r6 - ldr r3, _081656C4 - adds r0, r0, r3 - adds r0, r0, r5 - ldrb r2, [r0] - adds r0, r4, #0 - bl sub_08068080 - movs r1, #0xc8 - lsls r1, r1, #1 - adds r0, r7, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_08162E90 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x18] - adds r0, r4, #0 - movs r1, #0x31 - ldr r2, [sp, #0x30] - bl SetMonData - adds r5, #2 - movs r2, #1 - add sl, r2 - mov r3, sl - cmp r3, #1 - ble _0816565E -_081656A6: - add sp, #0x40 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081656B8: .4byte 0xFFFFFE70 -_081656BC: .4byte gUnknown_3005AF0 -_081656C0: .4byte gUnknown_20242BC -_081656C4: .4byte 0x00000CB4 - thumb_func_end FillPartnerParty - - thumb_func_start sub_081656C8 -sub_081656C8: @ 0x081656C8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - adds r6, r0, #0 - adds r5, r1, #0 - movs r2, #0 - adds r1, r6, #0 - adds r3, r6, #0 - adds r3, #0x58 -_081656E0: - ldrh r0, [r1, #0x1c] - cmp r0, #0 - beq _081656E8 - adds r2, #1 -_081656E8: - adds r1, #0x2c - cmp r1, r3 - ble _081656E0 - cmp r2, #3 - beq _081656F6 - movs r0, #0 - b _08165802 -_081656F6: - ldrb r0, [r6] - strb r0, [r5] - ldrh r0, [r6, #2] - strh r0, [r5, #2] - movs r2, #0 - ldr r0, _08165758 - ldrb r1, [r0] - ldrb r3, [r6, #1] - mov ip, r0 - adds r4, r5, #4 - adds r7, r6, #4 - movs r0, #0xc - adds r0, r0, r5 - mov sb, r0 - movs r0, #0xc - adds r0, r0, r6 - mov r8, r0 - adds r0, r5, #0 - adds r0, #0x10 - str r0, [sp, #4] - movs r0, #0x10 - adds r0, r0, r6 - mov sl, r0 - adds r0, r5, #0 - adds r0, #0x1c - str r0, [sp, #8] - adds r0, #0xc - str r0, [sp, #0xc] - adds r0, #0x90 - str r0, [sp, #0x10] - cmp r1, r3 - beq _08165746 - mov r1, ip -_08165738: - adds r1, #2 - adds r2, #1 - cmp r2, #0x51 - bgt _08165746 - ldrb r0, [r1] - cmp r0, r3 - bne _08165738 -_08165746: - cmp r2, #0x52 - beq _0816575C - lsls r0, r2, #1 - mov r1, ip - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - b _0816575E - .align 2, 0 -_08165758: .4byte gUnknown_85BBE84 -_0816575C: - movs r0, #0x2b -_0816575E: - strb r0, [r5, #1] - movs r2, #0 - adds r3, r7, #0 -_08165764: - adds r0, r4, r2 - adds r1, r3, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, #7 - ble _08165764 - movs r2, #0 - mov r4, sb - mov r3, r8 -_08165778: - adds r0, r4, r2 - adds r1, r3, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, #3 - ble _08165778 - mov r3, sl - ldr r1, [sp, #4] - movs r2, #5 -_0816578C: - ldrh r0, [r3] - strh r0, [r1] - adds r3, #2 - adds r1, #2 - subs r2, #1 - cmp r2, #0 - bge _0816578C - ldr r3, _08165814 - ldr r1, [sp, #8] - movs r2, #5 -_081657A0: - ldrh r0, [r3] - strh r0, [r1] - adds r3, #2 - adds r1, #2 - subs r2, #1 - cmp r2, #0 - bge _081657A0 - ldr r3, _08165818 - ldr r1, [sp, #0xc] - movs r2, #5 -_081657B4: - ldrh r0, [r3] - strh r0, [r1] - adds r3, #2 - adds r1, #2 - subs r2, #1 - cmp r2, #0 - bge _081657B4 - adds r2, r6, #0 - adds r3, r5, #0 - movs r4, #0x58 - adds r4, r4, r2 - mov r8, r4 -_081657CC: - adds r1, r3, #0 - adds r1, #0x34 - adds r0, r2, #0 - adds r0, #0x1c - ldm r0!, {r4, r6, r7} - stm r1!, {r4, r6, r7} - ldm r0!, {r4, r6, r7} - stm r1!, {r4, r6, r7} - ldm r0!, {r4, r6, r7} - stm r1!, {r4, r6, r7} - ldm r0!, {r6, r7} - stm r1!, {r6, r7} - adds r2, #0x2c - adds r3, #0x2c - cmp r2, r8 - ble _081657CC - movs r0, #0 - str r0, [sp] - ldr r2, _0816581C - mov r0, sp - ldr r1, [sp, #0x10] - bl CpuSet - adds r0, r5, #0 - bl CalcEmeraldBattleTowerChecksum - movs r0, #1 -_08165802: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08165814: .4byte gUnknown_85BE986 -_08165818: .4byte gUnknown_85BE992 -_0816581C: .4byte 0x0500000B - thumb_func_end sub_081656C8 - - thumb_func_start sub_08165820 -sub_08165820: @ 0x08165820 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r4, r0, #0 - adds r6, r1, #0 - movs r2, #0 - adds r1, r4, #0 - adds r3, r4, #0 - adds r3, #0x58 -_08165838: - ldrh r0, [r1, #0x34] - cmp r0, #0 - beq _08165840 - adds r2, #1 -_08165840: - adds r1, #0x2c - cmp r1, r3 - ble _08165838 - cmp r2, #3 - beq _0816584E - movs r0, #0 - b _08165914 -_0816584E: - ldrb r0, [r4] - strb r0, [r6] - ldrh r0, [r4, #2] - strh r0, [r6, #2] - movs r2, #0 - ldr r0, _081658A0 - ldrb r1, [r0, #1] - ldrb r3, [r4, #1] - mov ip, r0 - adds r5, r6, #4 - adds r7, r4, #4 - movs r0, #0xc - adds r0, r0, r6 - mov sb, r0 - movs r0, #0xc - adds r0, r0, r4 - mov r8, r0 - adds r0, r6, #0 - adds r0, #0x10 - str r0, [sp] - movs r0, #0x10 - adds r0, r0, r4 - mov sl, r0 - cmp r1, r3 - beq _08165892 - mov r1, ip - adds r1, #1 -_08165884: - adds r1, #2 - adds r2, #1 - cmp r2, #0x51 - bgt _08165892 - ldrb r0, [r1] - cmp r0, r3 - bne _08165884 -_08165892: - cmp r2, #0x52 - beq _081658A4 - lsls r0, r2, #1 - add r0, ip - ldrb r0, [r0] - b _081658A6 - .align 2, 0 -_081658A0: .4byte gUnknown_85BBE84 -_081658A4: - movs r0, #0x24 -_081658A6: - strb r0, [r6, #1] - movs r2, #0 - adds r3, r7, #0 -_081658AC: - adds r0, r5, r2 - adds r1, r3, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, #7 - ble _081658AC - movs r2, #0 - mov r5, sb - mov r3, r8 -_081658C0: - adds r0, r5, r2 - adds r1, r3, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, #3 - ble _081658C0 - mov r3, sl - ldr r1, [sp] - movs r2, #5 -_081658D4: - ldrh r0, [r3] - strh r0, [r1] - adds r3, #2 - adds r1, #2 - subs r2, #1 - cmp r2, #0 - bge _081658D4 - adds r2, r4, #0 - adds r3, r6, #0 - movs r4, #0x58 - adds r4, r4, r2 - mov r8, r4 -_081658EC: - adds r1, r3, #0 - adds r1, #0x1c - adds r0, r2, #0 - adds r0, #0x34 - ldm r0!, {r4, r5, r7} - stm r1!, {r4, r5, r7} - ldm r0!, {r4, r5, r7} - stm r1!, {r4, r5, r7} - ldm r0!, {r4, r5, r7} - stm r1!, {r4, r5, r7} - ldm r0!, {r5, r7} - stm r1!, {r5, r7} - adds r2, #0x2c - adds r3, #0x2c - cmp r2, r8 - ble _081658EC - adds r0, r6, #0 - bl CalcRubyBattleTowerChecksum - movs r0, #1 -_08165914: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_08165820 - - thumb_func_start CalcApprenticeChecksum -CalcApprenticeChecksum: @ 0x08165924 - push {r4, lr} - adds r2, r0, #0 - movs r0, #0 - str r0, [r2, #0x40] - movs r3, #0 - adds r4, r2, #0 -_08165930: - ldr r0, [r2, #0x40] - ldm r4!, {r1} - adds r0, r0, r1 - str r0, [r2, #0x40] - adds r3, #1 - cmp r3, #0xf - bls _08165930 - pop {r4} - pop {r0} - bx r0 - thumb_func_end CalcApprenticeChecksum - - thumb_func_start ClearApprentice -ClearApprentice: @ 0x08165944 - push {lr} - movs r1, #0 - movs r3, #0 - adds r2, r0, #0 -_0816594C: - stm r2!, {r3} - adds r1, #1 - cmp r1, #0x10 - bls _0816594C - bl ResetApprenticeStruct - pop {r0} - bx r0 - thumb_func_end ClearApprentice - - thumb_func_start ValidateApprenticesChecksums -ValidateApprenticesChecksums: @ 0x0816595C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - movs r5, #0 - ldr r0, _081659C0 - mov r8, r0 - mov sb, r8 -_0816596C: - lsls r0, r5, #4 - adds r1, r0, r5 - lsls r1, r1, #2 - adds r1, #0xdc - mov r3, sb - ldr r2, [r3] - movs r4, #0 - movs r3, #0 - adds r6, r0, #0 - adds r7, r5, #1 - adds r2, r2, r1 -_08165982: - ldm r2!, {r0} - adds r4, r4, r0 - adds r3, #1 - cmp r3, #0xf - bls _08165982 - mov r0, r8 - ldr r2, [r0] - adds r0, r6, r5 - lsls r1, r0, #2 - movs r3, #0x8e - lsls r3, r3, #1 - adds r0, r2, r3 - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, r4 - beq _081659AC - adds r0, r1, #0 - adds r0, #0xdc - adds r0, r2, r0 - bl ClearApprentice -_081659AC: - adds r5, r7, #0 - cmp r5, #3 - ble _0816596C - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081659C0: .4byte gUnknown_3005AF0 - thumb_func_end ValidateApprenticesChecksums - - thumb_func_start GetBattleTowerTrainerLanguage -GetBattleTowerTrainerLanguage: @ 0x081659C4 - push {r4, lr} - adds r3, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r4, r1, #0 - movs r0, #0xfa - lsls r0, r0, #1 - cmp r1, r0 - bne _081659E0 - ldr r0, _081659DC - b _08165A34 - .align 2, 0 -_081659DC: .4byte gUnknown_829BDA5 -_081659E0: - ldr r0, _081659EC - cmp r1, r0 - bhi _081659F4 - ldr r0, _081659F0 - b _08165A34 - .align 2, 0 -_081659EC: .4byte 0x0000012B -_081659F0: .4byte gUnknown_829BDA5 -_081659F4: - ldr r0, _08165A10 - cmp r1, r0 - bhi _08165A20 - ldr r0, _08165A14 - ldr r0, [r0] - ldr r4, _08165A18 - adds r2, r1, r4 - movs r1, #0xec - muls r1, r2, r1 - adds r0, r0, r1 - ldr r1, _08165A1C - adds r0, r0, r1 - b _08165A34 - .align 2, 0 -_08165A10: .4byte 0x0000018F -_08165A14: .4byte gUnknown_3005AF0 -_08165A18: .4byte 0xFFFFFED4 -_08165A1C: .4byte 0x0000081C -_08165A20: - ldr r0, _08165A40 - ldr r2, [r0] - ldr r0, _08165A44 - adds r1, r4, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, r2, r0 - ldr r1, _08165A48 - adds r0, r2, r1 -_08165A34: - ldrb r0, [r0] - strb r0, [r3] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08165A40: .4byte gUnknown_3005AF0 -_08165A44: .4byte 0xFFFFFE70 -_08165A48: .4byte 0x0000011B - thumb_func_end GetBattleTowerTrainerLanguage - - thumb_func_start SetFacilityPtrsGetLevel -SetFacilityPtrsGetLevel: @ 0x08165A4C - push {lr} - ldr r0, _08165A78 - ldr r0, [r0] - ldr r1, _08165A7C - adds r2, r0, r1 - ldrb r1, [r2] - movs r0, #3 - ands r0, r1 - cmp r0, #2 - beq _08165A90 - ldr r1, _08165A80 - ldr r0, _08165A84 - str r0, [r1] - ldr r1, _08165A88 - ldr r0, _08165A8C - str r0, [r1] - ldrb r0, [r2] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - bl GetFrontierEnemyMonLevel - b _08165A94 - .align 2, 0 -_08165A78: .4byte gUnknown_3005AF0 -_08165A7C: .4byte 0x00000CA9 -_08165A80: .4byte gUnknown_203B954 -_08165A84: .4byte gUnknown_85B4A10 -_08165A88: .4byte gUnknown_203B958 -_08165A8C: .4byte gUnknown_85B8700 -_08165A90: - bl SetTentPtrsGetLevel -_08165A94: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - thumb_func_end SetFacilityPtrsGetLevel - - thumb_func_start GetFrontierEnemyMonLevel -GetFrontierEnemyMonLevel: @ 0x08165A9C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _08165AAA - cmp r0, #1 - beq _08165AAE -_08165AAA: - movs r0, #0x32 - b _08165ABC -_08165AAE: - bl GetHighestLevelInPlayerParty - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x3b - bhi _08165ABC - movs r0, #0x3c -_08165ABC: - pop {r1} - bx r1 - thumb_func_end GetFrontierEnemyMonLevel - - thumb_func_start GetHighestLevelInPlayerParty -GetHighestLevelInPlayerParty: @ 0x08165AC0 - push {r4, r5, r6, lr} - movs r6, #0 - movs r5, #0 -_08165AC6: - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _08165B10 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - cmp r0, #0 - beq _08165B00 - adds r0, r4, #0 - movs r1, #0x41 - movs r2, #0 - bl GetMonData - movs r1, #0xce - lsls r1, r1, #1 - cmp r0, r1 - beq _08165B00 - adds r0, r4, #0 - movs r1, #0x38 - movs r2, #0 - bl GetMonData - cmp r0, r6 - ble _08165B00 - adds r6, r0, #0 -_08165B00: - adds r5, #1 - cmp r5, #5 - ble _08165AC6 - adds r0, r6, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08165B10: .4byte gUnknown_2024190 - thumb_func_end GetHighestLevelInPlayerParty - - thumb_func_start sub_08165B14 -sub_08165B14: @ 0x08165B14 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - cmp r0, #0x63 - bls _08165B46 - movs r1, #6 - cmp r0, #0x77 - bls _08165B46 - movs r1, #9 - cmp r0, #0x8b - bls _08165B46 - movs r1, #0xc - cmp r0, #0x9f - bls _08165B46 - movs r1, #0xf - cmp r0, #0xb3 - bls _08165B46 - movs r1, #0x12 - cmp r0, #0xc7 - bls _08165B46 - movs r1, #0x1f - cmp r0, #0xdb - bhi _08165B46 - movs r1, #0x15 -_08165B46: - adds r0, r1, #0 - pop {r1} - bx r1 - thumb_func_end sub_08165B14 - - thumb_func_start sub_08165B4C -sub_08165B4C: @ 0x08165B4C - push {lr} - ldr r0, _08165B78 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #2 - beq _08165B64 - cmp r0, #3 - beq _08165B64 - cmp r0, #4 - bne _08165B7C -_08165B64: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x1e - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b _08165B7E - .align 2, 0 -_08165B78: .4byte 0x000040CF -_08165B7C: - movs r0, #0 -_08165B7E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08165B4C - - thumb_func_start SetTentPtrsGetLevel -SetTentPtrsGetLevel: @ 0x08165B84 - push {lr} - ldr r0, _08165BA0 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #4 - bne _08165BB4 - ldr r1, _08165BA4 - ldr r0, _08165BA8 - str r0, [r1] - ldr r1, _08165BAC - ldr r0, _08165BB0 - b _08165BFE - .align 2, 0 -_08165BA0: .4byte 0x000040CF -_08165BA4: .4byte gUnknown_203B954 -_08165BA8: .4byte gUnknown_85BC958 -_08165BAC: .4byte gUnknown_203B958 -_08165BB0: .4byte gUnknown_85BCF70 -_08165BB4: - cmp r0, #2 - bne _08165BD4 - ldr r1, _08165BC4 - ldr r0, _08165BC8 - str r0, [r1] - ldr r1, _08165BCC - ldr r0, _08165BD0 - b _08165BFE - .align 2, 0 -_08165BC4: .4byte gUnknown_203B954 -_08165BC8: .4byte gUnknown_85BD554 -_08165BCC: .4byte gUnknown_203B958 -_08165BD0: .4byte gUnknown_85BDB6C -_08165BD4: - cmp r0, #3 - bne _08165BF4 - ldr r1, _08165BE4 - ldr r0, _08165BE8 - str r0, [r1] - ldr r1, _08165BEC - ldr r0, _08165BF0 - b _08165BFE - .align 2, 0 -_08165BE4: .4byte gUnknown_203B954 -_08165BE8: .4byte gUnknown_85BDFC8 -_08165BEC: .4byte gUnknown_203B958 -_08165BF0: .4byte gUnknown_85BE5E0 -_08165BF4: - ldr r1, _08165C14 - ldr r0, _08165C18 - str r0, [r1] - ldr r1, _08165C1C - ldr r0, _08165C20 -_08165BFE: - str r0, [r1] - bl GetHighestLevelInPlayerParty - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1d - bhi _08165C0E - movs r0, #0x1e -_08165C0E: - pop {r1} - bx r1 - .align 2, 0 -_08165C14: .4byte gUnknown_203B954 -_08165C18: .4byte gUnknown_85B4A10 -_08165C1C: .4byte gUnknown_203B958 -_08165C20: .4byte gUnknown_85B8700 - thumb_func_end SetTentPtrsGetLevel - - thumb_func_start sub_08165C24 -sub_08165C24: @ 0x08165C24 - push {r4, r5, lr} - ldr r5, _08165CA0 -_08165C28: - bl sub_08165B4C - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r3, #0 - ldr r1, [r5] - ldr r2, _08165CA4 - adds r0, r1, r2 - ldrh r0, [r0] - cmp r3, r0 - bge _08165C64 - adds r2, #2 - adds r0, r1, r2 - ldrh r0, [r0] - cmp r0, r4 - beq _08165C64 - ldr r0, _08165CA0 - ldr r1, [r0] - subs r2, #2 - adds r0, r1, r2 - ldrh r2, [r0] - ldr r0, _08165CA8 - adds r1, r1, r0 -_08165C56: - adds r1, #2 - adds r3, #1 - cmp r3, r2 - bge _08165C64 - ldrh r0, [r1] - cmp r0, r4 - bne _08165C56 -_08165C64: - ldr r0, [r5] - ldr r1, _08165CA4 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r3, r0 - bne _08165C28 - ldr r5, _08165CAC - strh r4, [r5] - ldrh r0, [r5] - movs r1, #0 - bl sub_08162528 - ldr r0, _08165CA0 - ldr r1, [r0] - ldr r2, _08165CA4 - adds r0, r1, r2 - ldrh r2, [r0] - adds r0, r2, #1 - cmp r0, #2 - bgt _08165C98 - lsls r0, r2, #1 - ldr r2, _08165CA8 - adds r1, r1, r2 - adds r1, r1, r0 - ldrh r0, [r5] - strh r0, [r1] -_08165C98: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08165CA0: .4byte gUnknown_3005AF0 -_08165CA4: .4byte 0x00000CB2 -_08165CA8: .4byte 0x00000CB4 -_08165CAC: .4byte gUnknown_203886A - thumb_func_end sub_08165C24 - - thumb_func_start FillTentTrainerParty_ -FillTentTrainerParty_: @ 0x08165CB0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x38 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp, #0x18] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x1c] - bl SetTentPtrsGetLevel - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x20] - ldr r0, _08165CF0 - ldrh r2, [r0] - ldr r0, _08165CF4 - ldr r1, [r0] - movs r0, #0x34 - muls r0, r2, r0 - adds r0, r0, r1 - ldr r0, [r0, #0x30] - str r0, [sp, #0x28] - movs r0, #0 - str r0, [sp, #0x24] - ldr r2, [sp, #0x28] - ldrh r1, [r2] - b _08165D0A - .align 2, 0 -_08165CF0: .4byte gUnknown_203886A -_08165CF4: .4byte gUnknown_203B954 -_08165CF8: - ldr r0, [sp, #0x24] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x24] - lsls r0, r0, #1 - ldr r6, [sp, #0x28] - adds r0, r0, r6 - ldrh r1, [r0] -_08165D0A: - ldr r0, _08165D2C - cmp r1, r0 - bne _08165CF8 - movs r0, #0 - mov r8, r0 - bl Random - adds r4, r0, #0 - bl Random - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r0, r0, #0x10 - orrs r4, r0 - str r4, [sp, #0x2c] - b _08165E9E - .align 2, 0 -_08165D2C: .4byte 0x0000FFFF -_08165D30: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, [sp, #0x24] - bl __modsi3 - lsls r0, r0, #1 - ldr r2, [sp, #0x28] - adds r0, r0, r2 - ldrh r4, [r0] - movs r6, #0 - ldr r7, [sp, #0x18] - add r7, r8 - b _08165D50 -_08165D4E: - adds r6, #1 -_08165D50: - cmp r6, r7 - bge _08165D74 - movs r1, #0x64 - adds r0, r6, #0 - muls r0, r1, r0 - ldr r2, _08165EB8 - adds r0, r0, r2 - movs r1, #0xb - movs r2, #0 - bl GetMonData - ldr r1, _08165EBC - ldr r2, [r1] - lsls r1, r4, #4 - adds r1, r1, r2 - ldrh r1, [r1] - cmp r0, r1 - bne _08165D4E -_08165D74: - cmp r6, r7 - beq _08165D7A - b _08165E9E -_08165D7A: - movs r6, #0 - cmp r6, r7 - bge _08165DC4 - ldr r0, _08165EC0 - mov sb, r0 - movs r3, #0 -_08165D86: - ldr r1, _08165EB8 - adds r5, r3, r1 - adds r0, r5, #0 - movs r1, #0xc - movs r2, #0 - str r3, [sp, #0x34] - bl GetMonData - ldr r3, [sp, #0x34] - cmp r0, #0 - beq _08165DBC - adds r0, r5, #0 - movs r1, #0xc - movs r2, #0 - bl GetMonData - ldr r1, _08165EBC - ldr r2, [r1] - lsls r1, r4, #4 - adds r1, r1, r2 - ldrb r1, [r1, #0xa] - lsls r1, r1, #1 - add r1, sb - ldr r3, [sp, #0x34] - ldrh r1, [r1] - cmp r0, r1 - beq _08165DC4 -_08165DBC: - adds r3, #0x64 - adds r6, #1 - cmp r6, r7 - blt _08165D86 -_08165DC4: - cmp r6, r7 - bne _08165E9E - movs r6, #0 - cmp r6, r8 - bge _08165DE6 - add r0, sp, #0xc - ldrh r0, [r0] - cmp r0, r4 - beq _08165DE6 - add r1, sp, #0xc -_08165DD8: - adds r1, #2 - adds r6, #1 - cmp r6, r8 - bge _08165DE6 - ldrh r0, [r1] - cmp r0, r4 - bne _08165DD8 -_08165DE6: - cmp r6, r8 - bne _08165E9E - mov r2, r8 - lsls r0, r2, #1 - add r0, sp - adds r0, #0xc - strh r4, [r0] - movs r6, #0x64 - adds r0, r7, #0 - muls r0, r6, r0 - ldr r1, _08165EB8 - adds r0, r0, r1 - ldr r5, _08165EBC - ldr r2, [r5] - lsls r4, r4, #4 - adds r2, r4, r2 - ldrh r1, [r2] - ldrb r3, [r2, #0xc] - movs r6, #0 - str r6, [sp] - ldrb r2, [r2, #0xb] - str r2, [sp, #4] - ldr r2, [sp, #0x2c] - str r2, [sp, #8] - ldr r2, [sp, #0x20] - bl CreateMonWithEVSpreadNatureOTID - add r1, sp, #0x14 - movs r0, #0xff - strb r0, [r1] - mov sb, r4 - mov r0, r8 - adds r0, #1 - str r0, [sp, #0x30] - movs r0, #0x64 - adds r1, r7, #0 - muls r1, r0, r1 - mov r8, r1 - adds r3, r5, #0 - mov r5, sb - ldr r2, _08165EB8 - mov sl, r2 -_08165E3A: - ldr r0, [r3] - adds r0, r5, r0 - lsls r4, r6, #1 - adds r0, #2 - adds r0, r0, r4 - ldrh r1, [r0] - lsls r2, r6, #0x18 - lsrs r2, r2, #0x18 - mov r0, r8 - add r0, sl - str r3, [sp, #0x34] - bl SetMonMoveSlot - ldr r3, [sp, #0x34] - ldr r0, [r3] - adds r0, r5, r0 - adds r0, #2 - adds r0, r0, r4 - ldrh r0, [r0] - cmp r0, #0xda - bne _08165E6A - movs r0, #0 - mov r1, sp - strb r0, [r1, #0x14] -_08165E6A: - adds r6, #1 - cmp r6, #3 - ble _08165E3A - movs r2, #0x64 - adds r4, r7, #0 - muls r4, r2, r4 - ldr r6, _08165EB8 - adds r4, r4, r6 - adds r0, r4, #0 - movs r1, #0x20 - add r2, sp, #0x14 - bl SetMonData - ldr r0, _08165EBC - ldr r0, [r0] - add r0, sb - ldrb r2, [r0, #0xa] - lsls r2, r2, #1 - ldr r0, _08165EC0 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0xc - bl SetMonData - ldr r0, [sp, #0x30] - mov r8, r0 -_08165E9E: - ldr r1, [sp, #0x1c] - cmp r8, r1 - beq _08165EA6 - b _08165D30 -_08165EA6: - add sp, #0x38 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08165EB8: .4byte gUnknown_20243E8 -_08165EBC: .4byte gUnknown_203B958 -_08165EC0: .4byte gUnknown_85ADBF4 - thumb_func_end FillTentTrainerParty_ - - thumb_func_start FacilityClassToGraphicsId -FacilityClassToGraphicsId: @ 0x08165EC4 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - movs r1, #0 - ldr r3, _08165EF0 - ldrb r0, [r3] - cmp r0, r2 - beq _08165EE6 -_08165ED4: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x1d - bhi _08165EE6 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _08165ED4 -_08165EE6: - cmp r1, #0x1e - beq _08165EF8 - ldr r0, _08165EF4 - b _08165F22 - .align 2, 0 -_08165EF0: .4byte gUnknown_85BBE20 -_08165EF4: .4byte gUnknown_85BBE52 -_08165EF8: - movs r1, #0 - ldr r3, _08165F1C - ldrb r0, [r3] - cmp r0, r2 - beq _08165F14 -_08165F02: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x13 - bhi _08165F14 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _08165F02 -_08165F14: - cmp r1, #0x14 - bne _08165F20 - movs r0, #7 - b _08165F26 - .align 2, 0 -_08165F1C: .4byte gUnknown_85BBE3E -_08165F20: - ldr r0, _08165F2C -_08165F22: - adds r0, r1, r0 - ldrb r0, [r0] -_08165F26: - pop {r1} - bx r1 - .align 2, 0 -_08165F2C: .4byte gUnknown_85BBE70 - thumb_func_end FacilityClassToGraphicsId - - thumb_func_start ValidateBattleTowerRecord -ValidateBattleTowerRecord: @ 0x08165F30 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r2, _08165F7C - movs r0, #0xec - muls r0, r6, r0 - movs r1, #0xe7 - lsls r1, r1, #3 - adds r0, r0, r1 - ldr r1, [r2] - movs r5, #0 - movs r4, #0 - movs r3, #0 - adds r1, r1, r0 -_08165F4C: - ldm r1!, {r0} - adds r5, r5, r0 - orrs r4, r0 - adds r3, #1 - cmp r3, #0x39 - bls _08165F4C - cmp r5, #0 - bne _08165F60 - cmp r4, #0 - beq _08165F8C -_08165F60: - ldr r2, [r2] - movs r0, #0xec - adds r1, r6, #0 - muls r1, r0, r1 - movs r3, #0x82 - lsls r3, r3, #4 - adds r0, r2, r3 - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, r5 - bne _08165F80 - movs r0, #1 - b _08165F8E - .align 2, 0 -_08165F7C: .4byte gUnknown_3005AF0 -_08165F80: - movs r3, #0xe7 - lsls r3, r3, #3 - adds r0, r1, r3 - adds r0, r2, r0 - bl ClearBattleTowerRecord -_08165F8C: - movs r0, #0 -_08165F8E: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end ValidateBattleTowerRecord - - thumb_func_start sub_08165F94 -sub_08165F94: @ 0x08165F94 - push {r4, r5, r6, r7, lr} - ldr r0, _08165FFC - ldr r0, [r0] - ldr r1, _08166000 - ands r0, r1 - cmp r0, #0 - beq _08165FF4 - bl SetFacilityPtrsGetLevel - lsls r0, r0, #0x18 - movs r5, #0 - ldr r7, _08166004 - lsrs r0, r0, #0x16 - ldr r1, _08166008 - adds r6, r0, r1 -_08165FB2: - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _0816600C - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - adds r1, r0, #0 - cmp r1, #0 - beq _08165FEE - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrb r1, [r0, #0x13] - movs r0, #0xca - lsls r0, r0, #1 - adds r2, r1, #0 - muls r2, r0, r2 - adds r2, r2, r6 - adds r0, r4, #0 - movs r1, #0x19 - bl SetMonData - adds r0, r4, #0 - bl CalculateMonStats -_08165FEE: - adds r5, #1 - cmp r5, #5 - ble _08165FB2 -_08165FF4: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08165FFC: .4byte gUnknown_2022C90 -_08166000: .4byte gUnknown_2000002 -_08166004: .4byte gUnknown_82F0D54 -_08166008: .4byte gUnknown_82F00B4 -_0816600C: .4byte gUnknown_20243E8 - thumb_func_end sub_08165F94 - - thumb_func_start ChooseMonToGivePokeblock -ChooseMonToGivePokeblock: @ 0x08166010 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - ldr r4, _08166040 - ldr r0, _08166044 - bl AllocZeroed - str r0, [r4] - ldr r1, _08166048 - ldr r2, _0816604C - adds r0, r0, r2 - str r0, [r1] - str r5, [r0, #8] - str r6, [r0, #4] - ldr r0, _08166050 - bl sub_08166178 - ldr r0, _08166054 - bl SetMainCallback2 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08166040: .4byte gUnknown_203B978 -_08166044: .4byte 0x00008058 -_08166048: .4byte gUnknown_203B95C -_0816604C: .4byte 0x00007FD0 -_08166050: .4byte sub_0816618C -_08166054: .4byte sub_08166128 - thumb_func_end ChooseMonToGivePokeblock - - thumb_func_start CB2_ReturnAndChooseMonToGivePokeblock -CB2_ReturnAndChooseMonToGivePokeblock: @ 0x08166058 - push {r4, r5, lr} - ldr r4, _081660A8 - ldr r0, _081660AC - bl AllocZeroed - str r0, [r4] - ldr r5, _081660B0 - ldr r1, _081660B4 - adds r0, r0, r1 - str r0, [r5] - ldr r1, _081660B8 - ldr r1, [r1] - str r1, [r0, #8] - ldr r1, _081660BC - ldr r1, [r1] - str r1, [r0, #4] - ldr r4, _081660C0 - ldrb r0, [r4] - bl sub_081670E8 - strb r0, [r4] - ldr r5, [r5] - movs r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bls _08166090 - movs r1, #1 -_08166090: - adds r0, r5, #0 - adds r0, #0x56 - strb r1, [r0] - ldr r0, _081660C4 - bl sub_08166178 - ldr r0, _081660C8 - bl SetMainCallback2 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081660A8: .4byte gUnknown_203B978 -_081660AC: .4byte 0x00008058 -_081660B0: .4byte gUnknown_203B95C -_081660B4: .4byte 0x00007FD0 -_081660B8: .4byte gUnknown_203B964 -_081660BC: .4byte gUnknown_203B960 -_081660C0: .4byte gUnknown_203B968 -_081660C4: .4byte sub_0816618C -_081660C8: .4byte sub_081660CC - thumb_func_end CB2_ReturnAndChooseMonToGivePokeblock - - thumb_func_start sub_081660CC -sub_081660CC: @ 0x081660CC - push {r4, lr} - ldr r4, _08166104 - ldr r0, [r4] - ldr r0, [r0] - bl _call_via_r0 - bl AnimateSprites - thumb_func_end sub_081660CC - - thumb_func_start sub_081660DC -sub_081660DC: @ 0x081660DC - bl BuildOamBuffer - bl UpdatePaletteFade - ldr r4, [r4] - ldr r1, [r4] - ldr r0, _08166108 - cmp r1, r0 - bne _081660FC - adds r0, r4, #0 - adds r0, #0x50 - movs r1, #0 - strb r1, [r0] - ldr r0, _0816610C - bl SetMainCallback2 -_081660FC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08166104: .4byte gUnknown_203B95C -_08166108: .4byte sub_08166370 -_0816610C: .4byte sub_08166110 - thumb_func_end sub_081660DC - - thumb_func_start sub_08166110 -sub_08166110: @ 0x08166110 - push {lr} - bl sub_08166704 - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08166110 - - thumb_func_start sub_08166128 -sub_08166128: @ 0x08166128 - push {lr} - ldr r0, _08166148 - ldr r0, [r0] - ldr r0, [r0] - bl _call_via_r0 - bl AnimateSprites - thumb_func_end sub_08166128 - - thumb_func_start sub_08166138 -sub_08166138: @ 0x08166138 - bl BuildOamBuffer - bl sub_08004630 - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 -_08166148: .4byte gUnknown_203B95C - thumb_func_end sub_08166138 - - thumb_func_start sub_0816614C -sub_0816614C: @ 0x0816614C - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - ldr r0, _08166170 - ldr r0, [r0] - ldr r1, _08166174 - adds r0, r0, r1 - bl sub_081D1750 - bl ScanlineEffect_InitHBlankDmaTransfer - pop {r0} - bx r0 - .align 2, 0 -_08166170: .4byte gUnknown_203B978 -_08166174: .4byte 0x00007C58 - thumb_func_end sub_0816614C - - thumb_func_start sub_08166178 -sub_08166178: @ 0x08166178 - ldr r1, _08166188 - ldr r1, [r1] - str r0, [r1] - adds r1, #0x50 - movs r0, #0 - strb r0, [r1] - bx lr - .align 2, 0 -_08166188: .4byte gUnknown_203B95C - thumb_func_end sub_08166178 - - thumb_func_start sub_0816618C -sub_0816618C: @ 0x0816618C - push {r4, r5, lr} - sub sp, #4 - ldr r1, _081661AC - ldr r0, [r1] - adds r0, #0x50 - ldrb r0, [r0] - adds r2, r1, #0 - cmp r0, #0xf - bls _081661A0 - b _08166362 -_081661A0: - lsls r0, r0, #2 - ldr r1, _081661B0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081661AC: .4byte gUnknown_203B95C -_081661B0: .4byte _081661B4 -_081661B4: @ jump table - .4byte _081661F4 @ case 0 - .4byte _08166218 @ case 1 - .4byte _08166222 @ case 2 - .4byte _08166240 @ case 3 - .4byte _08166270 @ case 4 - .4byte _08166274 @ case 5 - .4byte _08166280 @ case 6 - .4byte _08166290 @ case 7 - .4byte _0816629C @ case 8 - .4byte _081662A8 @ case 9 - .4byte _081662C4 @ case 10 - .4byte _081662C8 @ case 11 - .4byte _081662F0 @ case 12 - .4byte _0816631C @ case 13 - .4byte _08166334 @ case 14 - .4byte _0816635C @ case 15 -_081661F4: - ldr r2, _0816620C - ldr r0, [r2] - ldr r1, _08166210 - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] - ldr r0, [r2] - ldr r2, _08166214 - adds r0, r0, r2 - bl sub_081D151C - b _08166348 - .align 2, 0 -_0816620C: .4byte gUnknown_203B978 -_08166210: .4byte 0x00007B10 -_08166214: .4byte 0x00007C58 -_08166218: - bl ResetSpriteData - bl FreeAllSpritePalettes - b _08166348 -_08166222: - movs r0, #0 - bl SetVBlankCallback - movs r0, #0 - str r0, [sp] - movs r1, #0xc0 - lsls r1, r1, #0x13 - ldr r2, _0816623C - mov r0, sp - bl CpuSet - b _08166348 - .align 2, 0 -_0816623C: .4byte 0x05006000 -_08166240: - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _08166268 - movs r0, #0 - movs r2, #4 - bl InitBgsFromTemplates - ldr r0, _0816626C - bl InitWindows - bl sub_08004480 - movs r0, #0 - movs r1, #0x91 - movs r2, #0xe0 - bl LoadUserWindowBorderGfx - b _08166348 - .align 2, 0 -_08166268: .4byte gUnknown_85C09B0 -_0816626C: .4byte gUnknown_85C09C0 -_08166270: - ldr r1, [r2] - b _0816634C -_08166274: - bl sub_08168130 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08166362 - b _08166348 -_08166280: - ldr r1, _0816628C - movs r0, #0x14 - strh r0, [r1] - bl sub_08167224 - b _08166348 - .align 2, 0 -_0816628C: .4byte gUnknown_3002350 -_08166290: - bl sub_08167734 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08166362 - b _08166348 -_0816629C: - movs r0, #0 - bl sub_0816740C - bl sub_08167564 - b _08166348 -_081662A8: - ldr r0, _081662BC - ldr r0, [r0] - ldr r1, _081662C0 - adds r0, r0, r1 - bl sub_081D275C - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08166362 - b _08166348 - .align 2, 0 -_081662BC: .4byte gUnknown_203B978 -_081662C0: .4byte 0x00007B0E -_081662C4: - ldr r1, [r2] - b _0816634C -_081662C8: - ldr r5, _081662E4 - ldr r1, [r5] - ldr r4, _081662E8 - adds r0, r1, r4 - ldr r2, _081662EC - adds r1, r1, r2 - bl sub_081D1D70 - ldr r0, [r5] - adds r0, r0, r4 - bl sub_081D16F4 - b _08166348 - .align 2, 0 -_081662E4: .4byte gUnknown_203B978 -_081662E8: .4byte 0x00007C58 -_081662EC: .4byte 0x00007C6C -_081662F0: - ldr r4, _08166314 - ldr r0, [r4] - ldr r1, _08166318 - adds r0, r0, r1 - bl sub_081D1704 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08166362 - ldr r2, [r4] - ldr r1, _08166318 - adds r0, r2, r1 - adds r1, #0x14 - adds r2, r2, r1 - adds r1, r2, #0 - bl sub_081D15CC - b _08166348 - .align 2, 0 -_08166314: .4byte gUnknown_203B978 -_08166318: .4byte 0x00007C58 -_0816631C: - ldr r0, _0816632C - ldr r0, [r0] - ldr r2, _08166330 - adds r0, r0, r2 - bl sub_081D1878 - b _08166348 - .align 2, 0 -_0816632C: .4byte gUnknown_203B978 -_08166330: .4byte 0x00007C58 -_08166334: - movs r0, #0 - movs r1, #1 - bl sub_081679A4 - movs r0, #0 - bl PutWindowTilemap - movs r0, #1 - bl PutWindowTilemap -_08166348: - ldr r0, _08166358 - ldr r1, [r0] -_0816634C: - adds r1, #0x50 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _08166362 - .align 2, 0 -_08166358: .4byte gUnknown_203B95C -_0816635C: - ldr r0, _0816636C - bl sub_08166178 -_08166362: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0816636C: .4byte sub_08166370 - thumb_func_end sub_0816618C - - thumb_func_start sub_08166370 -sub_08166370: @ 0x08166370 - push {r4, lr} - sub sp, #4 - ldr r4, _08166388 - ldr r0, [r4] - adds r0, #0x50 - ldrb r1, [r0] - cmp r1, #0 - beq _0816638C - cmp r1, #1 - beq _081663CC - b _0816641C - .align 2, 0 -_08166388: .4byte gUnknown_203B95C -_0816638C: - movs r0, #1 - rsbs r0, r0, #0 - str r1, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r0, _081663C8 - bl SetVBlankCallback - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #3 - bl ShowBg - movs r0, #2 - bl ShowBg - ldr r1, [r4] - adds r1, #0x50 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0816641C - .align 2, 0 -_081663C8: .4byte sub_0816614C -_081663CC: - ldr r0, _08166424 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0816641C - ldr r4, _08166428 - ldr r0, [r4] - ldr r1, _0816642C - adds r0, r0, r1 - bl sub_081D2A94 - ldr r4, [r4] - ldr r2, _08166430 - adds r0, r4, r2 - ldrb r1, [r0] - ldr r3, _08166434 - adds r0, r4, r3 - ldrb r0, [r0] - subs r0, #1 - cmp r1, r0 - beq _08166416 - ldr r1, _08166438 - adds r0, r4, r1 - movs r1, #0 - ldrsb r1, [r0, r1] - subs r2, #0x91 - adds r0, r4, r2 - adds r0, r0, r1 - ldrb r2, [r0] - ldr r3, _0816642C - adds r0, r4, r3 - subs r3, #0xc - adds r1, r4, r3 - ldrb r1, [r1] - bl sub_081D2AB0 -_08166416: - ldr r0, _0816643C - bl sub_08166178 -_0816641C: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08166424: .4byte gUnknown_2037C74 -_08166428: .4byte gUnknown_203B978 -_0816642C: .4byte 0x00007B1C -_08166430: .4byte 0x00008041 -_08166434: .4byte 0x00008040 -_08166438: .4byte 0x00007FB3 -_0816643C: .4byte sub_08166440 - thumb_func_end sub_08166370 - - thumb_func_start sub_08166440 -sub_08166440: @ 0x08166440 - push {lr} - ldr r0, _0816645C - ldr r0, [r0] - adds r0, #0x50 - ldrb r0, [r0] - cmp r0, #7 - bls _08166450 - b _0816661A -_08166450: - lsls r0, r0, #2 - ldr r1, _08166460 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0816645C: .4byte gUnknown_203B95C -_08166460: .4byte _08166464 -_08166464: @ jump table - .4byte _08166484 @ case 0 - .4byte _08166568 @ case 1 - .4byte _0816661A @ case 2 - .4byte _08166594 @ case 3 - .4byte _0816661A @ case 4 - .4byte _081665A0 @ case 5 - .4byte _081665B8 @ case 6 - .4byte _08166600 @ case 7 -_08166484: - ldr r2, _081664B4 - ldrh r1, [r2, #0x2c] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _081664C4 - movs r0, #5 - bl sub_080A306C - movs r0, #1 - bl sub_08167AA8 - ldr r0, _081664B8 - ldr r0, [r0] - ldr r1, _081664BC - adds r0, r0, r1 - bl sub_081D2B50 - ldr r0, _081664C0 - ldr r0, [r0] - adds r0, #0x50 - movs r1, #1 - b _08166618 - .align 2, 0 -_081664B4: .4byte gUnknown_3002360 -_081664B8: .4byte gUnknown_203B978 -_081664BC: .4byte 0x00007B1C -_081664C0: .4byte gUnknown_203B95C -_081664C4: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _081664FC - movs r0, #5 - bl sub_080A306C - movs r0, #0 - bl sub_08167AA8 - ldr r0, _081664F0 - ldr r0, [r0] - ldr r2, _081664F4 - adds r0, r0, r2 - bl sub_081D2B50 - ldr r0, _081664F8 - ldr r0, [r0] - adds r0, #0x50 - movs r1, #1 - b _08166618 - .align 2, 0 -_081664F0: .4byte gUnknown_203B978 -_081664F4: .4byte 0x00007B1C -_081664F8: .4byte gUnknown_203B95C -_081664FC: - ldrh r1, [r2, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0816651C - movs r0, #5 - bl sub_080A306C - ldr r0, _08166518 - ldr r0, [r0] - adds r0, #0x50 - movs r1, #3 - b _08166618 - .align 2, 0 -_08166518: .4byte gUnknown_203B95C -_0816651C: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08166526 - b _0816661A -_08166526: - movs r0, #5 - bl sub_080A306C - ldr r0, _0816654C - ldr r0, [r0] - ldr r2, _08166550 - adds r1, r0, r2 - ldrb r1, [r1] - subs r2, #1 - adds r0, r0, r2 - ldrb r0, [r0] - subs r0, #1 - cmp r1, r0 - bne _08166558 - ldr r0, _08166554 - ldr r0, [r0] - adds r0, #0x50 - movs r1, #3 - b _08166618 - .align 2, 0 -_0816654C: .4byte gUnknown_203B978 -_08166550: .4byte 0x00008041 -_08166554: .4byte gUnknown_203B95C -_08166558: - ldr r0, _08166564 - ldr r0, [r0] - adds r0, #0x50 - movs r1, #5 - b _08166618 - .align 2, 0 -_08166564: .4byte gUnknown_203B95C -_08166568: - ldr r0, _08166588 - ldr r0, [r0] - ldr r1, _0816658C - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0816661A - ldr r0, _08166590 - ldr r0, [r0] - adds r0, #0x50 - b _08166618 - .align 2, 0 -_08166588: .4byte gUnknown_203B978 -_0816658C: .4byte 0x00008044 -_08166590: .4byte gUnknown_203B95C -_08166594: - ldr r0, _0816659C - bl sub_08166178 - b _0816661A - .align 2, 0 -_0816659C: .4byte sub_081669F8 -_081665A0: - bl sub_08166B50 - ldr r0, _081665B4 - ldr r1, [r0] - adds r1, #0x50 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0816661A - .align 2, 0 -_081665B4: .4byte gUnknown_203B95C -_081665B8: - bl sub_08166BF0 - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _081665D8 - cmp r1, #0 - bgt _081665D2 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _08166610 - b _0816661A -_081665D2: - cmp r1, #1 - bne _0816661A - b _08166610 -_081665D8: - bl IsSheenMaxed - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081665F4 - bl sub_08166D5C - ldr r0, _081665F0 - ldr r0, [r0] - adds r0, #0x50 - movs r1, #7 - b _08166618 - .align 2, 0 -_081665F0: .4byte gUnknown_203B95C -_081665F4: - ldr r0, _081665FC - bl sub_08166178 - b _0816661A - .align 2, 0 -_081665FC: .4byte sub_08166628 -_08166600: - ldr r0, _08166620 - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _0816661A - bl sub_08166D98 -_08166610: - ldr r0, _08166624 - ldr r0, [r0] - adds r0, #0x50 - movs r1, #0 -_08166618: - strb r1, [r0] -_0816661A: - pop {r0} - bx r0 - .align 2, 0 -_08166620: .4byte gUnknown_3002360 -_08166624: .4byte gUnknown_203B95C - thumb_func_end sub_08166440 - - thumb_func_start sub_08166628 -sub_08166628: @ 0x08166628 - push {r4, r5, lr} - sub sp, #4 - ldr r5, _08166640 - ldr r0, [r5] - adds r0, #0x50 - ldrb r4, [r0] - cmp r4, #0 - beq _08166644 - cmp r4, #1 - beq _08166694 - b _081666E0 - .align 2, 0 -_08166640: .4byte gUnknown_203B95C -_08166644: - ldr r0, _08166680 - ldr r0, [r0] - ldr r1, _08166684 - adds r0, r0, r1 - ldrb r0, [r0] - bl sub_081670A8 - ldr r1, _08166688 - strb r0, [r1] - ldr r1, _0816668C - ldr r2, [r5] - ldr r0, [r2, #4] - str r0, [r1] - ldr r1, _08166690 - ldr r0, [r2, #8] - str r0, [r1] - movs r0, #1 - rsbs r0, r0, #0 - str r4, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, [r5] - adds r1, #0x50 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _081666E0 - .align 2, 0 -_08166680: .4byte gUnknown_203B978 -_08166684: .4byte 0x00008041 -_08166688: .4byte gUnknown_203B968 -_0816668C: .4byte gUnknown_203B960 -_08166690: .4byte gUnknown_203B964 -_08166694: - ldr r0, _081666E8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _081666E0 - movs r0, #0 - bl SetVBlankCallback - ldr r4, _081666EC - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _081666F0 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _081666F4 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _081666F8 - ldr r0, [r4] - bl Free - str r5, [r4] - bl FreeAllWindowBuffers - ldr r1, _081666FC - ldr r0, _08166700 - str r0, [r1, #8] - bl CB2_PreparePokeblockFeedScene -_081666E0: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081666E8: .4byte gUnknown_2037C74 -_081666EC: .4byte gUnknown_203B96C -_081666F0: .4byte gUnknown_203B970 -_081666F4: .4byte gUnknown_203B974 -_081666F8: .4byte gUnknown_203B978 -_081666FC: .4byte gUnknown_3002360 -_08166700: .4byte CB2_ReturnAndChooseMonToGivePokeblock - thumb_func_end sub_08166628 - - thumb_func_start sub_08166704 -sub_08166704: @ 0x08166704 - push {r4, lr} - sub sp, #4 - ldr r1, _08166724 - ldr r0, [r1] - adds r0, #0x50 - ldrb r0, [r0] - adds r4, r1, #0 - cmp r0, #6 - bls _08166718 - b _08166824 -_08166718: - lsls r0, r0, #2 - ldr r1, _08166728 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08166724: .4byte gUnknown_203B95C -_08166728: .4byte _0816672C -_0816672C: @ jump table - .4byte _08166748 @ case 0 - .4byte _0816677E @ case 1 - .4byte _08166824 @ case 2 - .4byte _081667AC @ case 3 - .4byte _081667BA @ case 4 - .4byte _081667D4 @ case 5 - .4byte _08166800 @ case 6 -_08166748: - ldr r0, _08166768 - ldr r0, [r0] - ldr r1, _0816676C - adds r0, r0, r1 - ldr r1, _08166770 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - beq _08166774 - ldr r0, [r4] - adds r0, #0x56 - ldrb r0, [r0] - bl sub_08167AA8 - ldr r1, [r4] - b _081667EE - .align 2, 0 -_08166768: .4byte gUnknown_203B978 -_0816676C: .4byte 0x00008041 -_08166770: .4byte gUnknown_203B968 -_08166774: - ldr r0, [r4] - adds r0, #0x50 - movs r1, #3 - strb r1, [r0] - b _08166824 -_0816677E: - ldr r0, _081667A0 - ldr r0, [r0] - ldr r1, _081667A4 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _08166824 - ldr r0, _081667A8 - ldr r0, [r0] - adds r0, #0x50 - strb r1, [r0] - b _08166824 - .align 2, 0 -_081667A0: .4byte gUnknown_203B978 -_081667A4: .4byte 0x00008044 -_081667A8: .4byte gUnknown_203B95C -_081667AC: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - b _081667EA -_081667BA: - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #3 - bl ShowBg - movs r0, #2 - bl ShowBg - b _081667EA -_081667D4: - ldr r0, _081667F8 - bl SetVBlankCallback - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade -_081667EA: - ldr r0, _081667FC - ldr r1, [r0] -_081667EE: - adds r1, #0x50 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _08166824 - .align 2, 0 -_081667F8: .4byte sub_0816614C -_081667FC: .4byte gUnknown_203B95C -_08166800: - ldr r0, _0816682C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08166824 - ldr r0, _08166830 - ldr r0, [r0] - ldr r1, _08166834 - adds r0, r0, r1 - bl sub_081D2A94 - ldr r0, _08166838 - bl sub_08166178 - ldr r0, _0816683C - bl SetMainCallback2 -_08166824: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816682C: .4byte gUnknown_2037C74 -_08166830: .4byte gUnknown_203B978 -_08166834: .4byte 0x00007B1C -_08166838: .4byte sub_08166840 -_0816683C: .4byte sub_08166128 - thumb_func_end sub_08166704 - - thumb_func_start sub_08166840 -sub_08166840: @ 0x08166840 - push {r4, r5, r6, lr} - ldr r1, _0816685C - ldr r0, [r1] - adds r0, #0x50 - ldrb r0, [r0] - adds r5, r1, #0 - cmp r0, #5 - bls _08166852 - b _081669E6 -_08166852: - lsls r0, r0, #2 - ldr r1, _08166860 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0816685C: .4byte gUnknown_203B95C -_08166860: .4byte _08166864 -_08166864: @ jump table - .4byte _0816687C @ case 0 - .4byte _081668B8 @ case 1 - .4byte _081668CC @ case 2 - .4byte _08166920 @ case 3 - .4byte _081669A0 @ case 4 - .4byte _081669C2 @ case 5 -_0816687C: - ldr r4, [r5] - ldr r3, _081668A8 - str r3, [r4, #0xc] - ldr r0, _081668AC - ldr r0, [r0] - ldr r2, _081668B0 - adds r1, r0, r2 - ldrb r1, [r1] - lsls r1, r1, #2 - adds r1, r0, r1 - subs r2, #0x88 - adds r1, r1, r2 - ldrb r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - adds r1, r1, r3 - str r1, [r4, #0xc] - ldr r3, _081668B4 - adds r0, r0, r3 - bl sub_081D2B50 - b _081669B6 - .align 2, 0 -_081668A8: .4byte gUnknown_2024190 -_081668AC: .4byte gUnknown_203B978 -_081668B0: .4byte 0x00008041 -_081668B4: .4byte 0x00007B1C -_081668B8: - ldr r0, _081668C8 - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _081668C6 - b _081669E6 -_081668C6: - b _081669B6 - .align 2, 0 -_081668C8: .4byte gUnknown_3002360 -_081668CC: - bl sub_08166F08 - ldr r6, _0816690C - ldr r0, [r6] - adds r0, #0x5c - ldr r4, _08166910 - ldr r1, [r4] - ldr r5, _08166914 - adds r1, r1, r5 - bl sub_081D1D70 - ldr r2, [r4] - ldr r4, _08166918 - adds r0, r2, r4 - ldr r3, _0816691C - adds r1, r2, r3 - movs r3, #0 - ldrsb r3, [r1, r3] - lsls r1, r3, #2 - adds r1, r1, r3 - lsls r1, r1, #2 - adds r4, #0x14 - adds r1, r1, r4 - adds r1, r2, r1 - adds r2, r2, r5 - bl sub_081D15CC - bl sub_0816713C - ldr r1, [r6] - b _081669B8 - .align 2, 0 -_0816690C: .4byte gUnknown_203B95C -_08166910: .4byte gUnknown_203B978 -_08166914: .4byte 0x00007CA8 -_08166918: .4byte 0x00007C58 -_0816691C: .4byte 0x00007FB3 -_08166920: - ldr r5, _08166984 - ldr r0, [r5] - ldr r1, _08166988 - adds r0, r0, r1 - bl sub_081D16BC - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - bne _081669E6 - ldr r0, [r5] - ldr r4, _0816698C - adds r0, r0, r4 - ldrb r0, [r0] - bl sub_081670A8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_08167FFC - ldr r3, [r5] - adds r4, r3, r4 - ldrb r1, [r4] - ldr r2, _08166990 - adds r0, r3, r2 - ldrb r0, [r0] - subs r0, #1 - cmp r1, r0 - beq _08166978 - ldr r4, _08166994 - adds r0, r3, r4 - movs r1, #0 - ldrsb r1, [r0, r1] - subs r2, #0x90 - adds r0, r3, r2 - adds r0, r0, r1 - ldrb r2, [r0] - ldr r4, _08166998 - adds r0, r3, r4 - subs r4, #0xc - adds r1, r3, r4 - ldrb r1, [r1] - bl sub_081D2AB0 -_08166978: - ldr r1, _0816699C - ldr r0, [r1] - adds r0, #0x52 - strb r6, [r0] - ldr r1, [r1] - b _081669B8 - .align 2, 0 -_08166984: .4byte gUnknown_203B978 -_08166988: .4byte 0x00007C58 -_0816698C: .4byte 0x00008041 -_08166990: .4byte 0x00008040 -_08166994: .4byte 0x00007FB3 -_08166998: .4byte 0x00007B1C -_0816699C: .4byte gUnknown_203B95C -_081669A0: - ldr r1, [r5] - adds r1, #0x52 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x10 - bls _081669E6 - bl sub_08166C30 -_081669B6: - ldr r1, [r5] -_081669B8: - adds r1, #0x50 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _081669E6 -_081669C2: - ldr r0, _081669EC - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _081669E6 - bl sub_08166CE8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081669E6 - ldr r0, _081669F0 - ldrb r0, [r0] - bl TryClearPokeblock - ldr r0, _081669F4 - bl sub_08166178 -_081669E6: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081669EC: .4byte gUnknown_3002360 -_081669F0: .4byte gUnknown_203CB48 -_081669F4: .4byte sub_081669F8 - thumb_func_end sub_08166840 - - thumb_func_start sub_081669F8 -sub_081669F8: @ 0x081669F8 - push {r4, r5, r6, lr} - sub sp, #4 - ldr r4, _08166A14 - ldr r0, [r4] - adds r2, r0, #0 - adds r2, #0x50 - ldrb r1, [r2] - cmp r1, #1 - beq _08166A34 - cmp r1, #1 - bgt _08166A18 - cmp r1, #0 - beq _08166A22 - b _08166B24 - .align 2, 0 -_08166A14: .4byte gUnknown_203B95C -_08166A18: - cmp r1, #2 - beq _08166A4C - cmp r1, #3 - beq _08166A68 - b _08166B24 -_08166A22: - movs r0, #1 - rsbs r0, r0, #0 - str r1, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - b _08166A56 -_08166A34: - ldr r0, _08166A48 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08166B24 - movs r0, #2 - strb r0, [r2] - b _08166B24 - .align 2, 0 -_08166A48: .4byte gUnknown_2037C74 -_08166A4C: - ldr r1, _08166A64 - movs r0, #3 - strb r0, [r1, #0x15] - bl ScanlineEffect_InitHBlankDmaTransfer -_08166A56: - ldr r1, [r4] - adds r1, #0x50 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _08166B24 - .align 2, 0 -_08166A64: .4byte gUnknown_20397C8 -_08166A68: - ldr r0, [r0, #4] - bl SetMainCallback2 - ldr r0, _08166B2C - ldr r0, [r0] - ldr r1, _08166B30 - adds r0, r0, r1 - bl sub_081D2B7C - movs r4, #0 -_08166A7C: - ldr r5, _08166B2C - ldr r0, [r5] - ldr r2, _08166B34 - adds r0, r0, r2 - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08166B38 - adds r0, r0, r1 - bl DestroySprite - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #6 - bls _08166A7C - movs r0, #0 - bl FreeSpriteTilesByTag - movs r0, #1 - bl FreeSpriteTilesByTag - movs r0, #0 - bl FreeSpritePaletteByTag - movs r0, #1 - bl FreeSpritePaletteByTag - movs r4, #0 -_08166ABA: - ldr r0, [r5] - lsls r1, r4, #2 - ldr r2, _08166B3C - adds r0, r0, r2 - adds r0, r0, r1 - ldr r0, [r0] - bl DestroySprite - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #1 - bls _08166ABA - ldr r6, _08166B2C - ldr r0, [r6] - ldr r2, _08166B40 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, #0xff - beq _08166AF2 - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08166B38 - adds r0, r0, r1 - bl DestroySprite -_08166AF2: - movs r0, #0 - bl SetVBlankCallback - ldr r4, _08166B44 - ldr r0, [r4] - bl Free - movs r5, #0 - str r5, [r4] - ldr r4, _08166B48 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _08166B4C - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r0, [r6] - bl Free - str r5, [r6] - bl FreeAllWindowBuffers -_08166B24: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08166B2C: .4byte gUnknown_203B978 -_08166B30: .4byte 0x00007B1C -_08166B34: .4byte 0x00007B06 -_08166B38: .4byte gUnknown_20205AC -_08166B3C: .4byte 0x00007B44 -_08166B40: .4byte 0x00007B10 -_08166B44: .4byte gUnknown_203B96C -_08166B48: .4byte gUnknown_203B970 -_08166B4C: .4byte gUnknown_203B974 - thumb_func_end sub_081669F8 - - thumb_func_start sub_08166B50 -sub_08166B50: @ 0x08166B50 - push {r4, lr} - sub sp, #0x4c - ldr r0, _08166BD8 - ldr r0, [r0] - ldr r1, _08166BDC - adds r0, r0, r1 - ldrb r0, [r0] - bl sub_081670A8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x64 - muls r0, r1, r0 - ldr r1, _08166BE0 - adds r0, r0, r1 - movs r1, #2 - add r2, sp, #0xc - bl GetMonData - add r0, sp, #0xc - bl StringGetEnd10 - ldr r1, _08166BE4 - add r0, sp, #0xc - bl StringAppend - ldr r4, _08166BE8 - adds r0, r4, #0 - add r1, sp, #0xc - bl StringCopy - movs r0, #2 - movs r1, #0x11 - bl FillWindowPixelBuffer - movs r0, #2 - movs r1, #0x91 - movs r2, #0xe - bl DrawTextBorderOuter - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - movs r0, #2 - movs r1, #1 - adds r2, r4, #0 - movs r3, #0 - bl AddTextPrinterParameterized - movs r0, #2 - movs r1, #3 - bl CopyWindowToVram - movs r0, #2 - bl PutWindowTilemap - ldr r0, _08166BEC - movs r1, #1 - movs r2, #0x91 - movs r3, #0xe - bl sub_08198D44 - add sp, #0x4c - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08166BD8: .4byte gUnknown_203B978 -_08166BDC: .4byte 0x00008041 -_08166BE0: .4byte gUnknown_2024190 -_08166BE4: .4byte gUnknown_85CBD12 -_08166BE8: .4byte gUnknown_2021C7C -_08166BEC: .4byte gUnknown_85C09E0 - thumb_func_end sub_08166B50 - - thumb_func_start sub_08166BF0 -sub_08166BF0: @ 0x08166BF0 - push {r4, lr} - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _08166C24 - cmp r1, #0 - bgt _08166C0E - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _08166C12 - b _08166C24 -_08166C0E: - cmp r1, #1 - bne _08166C24 -_08166C12: - movs r0, #5 - bl sub_080A306C - movs r0, #2 - bl rbox_fill_rectangle - movs r0, #2 - bl ClearWindowTilemap -_08166C24: - lsls r0, r4, #0x18 - asrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08166BF0 - - thumb_func_start sub_08166C30 -sub_08166C30: @ 0x08166C30 - push {r4, lr} - movs r0, #2 - movs r1, #0x91 - movs r2, #0xe - bl DrawTextBorderOuter - movs r0, #2 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r3, _08166CAC - ldr r0, [r3] - adds r0, #0x53 - movs r1, #0 - strb r1, [r0] - ldr r2, [r3] - adds r1, r2, #0 - adds r1, #0x53 - ldrb r0, [r1] - cmp r0, #4 - bhi _08166CB4 - adds r0, r2, #0 - adds r0, #0x61 - ldrb r1, [r1] - adds r0, r0, r1 - ldrb r0, [r0] - adds r4, r3, #0 - cmp r0, #0 - bne _08166C90 - adds r2, r4, #0 -_08166C6C: - ldr r0, [r2] - adds r0, #0x53 - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - ldr r3, [r2] - adds r1, r3, #0 - adds r1, #0x53 - ldrb r0, [r1] - cmp r0, #4 - bhi _08166CB4 - adds r0, r3, #0 - adds r0, #0x61 - ldrb r1, [r1] - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _08166C6C -_08166C90: - ldr r2, [r4] - adds r1, r2, #0 - adds r1, #0x53 - ldrb r0, [r1] - cmp r0, #4 - bhi _08166CB4 - ldr r0, _08166CB0 - ldrb r1, [r1] - adds r2, #0x61 - adds r2, r2, r1 - ldrb r2, [r2] - bl Pokeblock_BufferEnhancedStatText - b _08166CC4 - .align 2, 0 -_08166CAC: .4byte gUnknown_203B95C -_08166CB0: .4byte gUnknown_2021C7C -_08166CB4: - ldr r0, _08166CE0 - ldr r1, _08166CE4 - ldr r1, [r1] - adds r1, #0x53 - ldrb r1, [r1] - movs r2, #0 - bl Pokeblock_BufferEnhancedStatText -_08166CC4: - ldr r0, _08166CE0 - bl Pokeblock_MenuWindowTextPrint - movs r0, #2 - movs r1, #3 - bl CopyWindowToVram - movs r0, #2 - bl PutWindowTilemap - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08166CE0: .4byte gUnknown_2021C7C -_08166CE4: .4byte gUnknown_203B95C - thumb_func_end sub_08166C30 - - thumb_func_start sub_08166CE8 -sub_08166CE8: @ 0x08166CE8 - push {r4, r5, lr} - movs r0, #2 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r5, _08166D20 - adds r3, r5, #0 - movs r4, #5 -_08166CF8: - ldr r0, [r3] - adds r0, #0x53 - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - ldr r2, [r3] - adds r1, r2, #0 - adds r1, #0x53 - ldrb r0, [r1] - cmp r0, #4 - bhi _08166D24 - adds r0, r2, #0 - adds r0, #0x61 - ldrb r1, [r1] - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _08166D2A - b _08166CF8 - .align 2, 0 -_08166D20: .4byte gUnknown_203B95C -_08166D24: - strb r4, [r1] - movs r0, #0 - b _08166D50 -_08166D2A: - ldr r4, _08166D58 - ldr r0, [r5] - adds r1, r0, #0 - adds r1, #0x53 - ldrb r1, [r1] - adds r0, #0x61 - adds r0, r0, r1 - ldrb r2, [r0] - adds r0, r4, #0 - bl Pokeblock_BufferEnhancedStatText - adds r0, r4, #0 - bl Pokeblock_MenuWindowTextPrint - movs r0, #2 - movs r1, #2 - bl CopyWindowToVram - movs r0, #1 -_08166D50: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08166D58: .4byte gUnknown_2021C7C - thumb_func_end sub_08166CE8 - - thumb_func_start sub_08166D5C -sub_08166D5C: @ 0x08166D5C - push {lr} - sub sp, #0xc - movs r0, #2 - movs r1, #0x91 - movs r2, #0xe - bl DrawTextBorderOuter - ldr r2, _08166D94 - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - movs r0, #2 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - movs r0, #2 - movs r1, #3 - bl CopyWindowToVram - movs r0, #2 - bl PutWindowTilemap - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_08166D94: .4byte gUnknown_85CBD57 - thumb_func_end sub_08166D5C - - thumb_func_start sub_08166D98 -sub_08166D98: @ 0x08166D98 - push {lr} - movs r0, #2 - bl rbox_fill_rectangle - movs r0, #2 - bl ClearWindowTilemap - movs r0, #2 - movs r1, #3 - bl CopyWindowToVram - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08166D98 - - thumb_func_start Pokeblock_MenuWindowTextPrint -Pokeblock_MenuWindowTextPrint: @ 0x08166DB4 - push {lr} - sub sp, #0xc - ldr r2, _08166DD4 - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - movs r0, #2 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_08166DD4: .4byte gUnknown_2021C7C - thumb_func_end Pokeblock_MenuWindowTextPrint - - thumb_func_start Pokeblock_BufferEnhancedStatText -Pokeblock_BufferEnhancedStatText: @ 0x08166DD8 - push {r4, lr} - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - lsls r2, r2, #0x10 - lsrs r0, r2, #0x10 - asrs r2, r2, #0x10 - cmp r2, #0 - beq _08166E14 - cmp r2, #0 - ble _08166DF0 - movs r0, #0 -_08166DF0: - lsls r0, r0, #0x10 - ldr r1, _08166E0C - lsls r0, r3, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl StringCopy - ldr r1, _08166E10 - adds r0, r4, #0 - bl StringAppend - b _08166E1C - .align 2, 0 -_08166E0C: .4byte gUnknown_85C09E8 -_08166E10: .4byte gUnknown_85CBD3D -_08166E14: - ldr r1, _08166E24 - adds r0, r4, #0 - bl StringCopy -_08166E1C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08166E24: .4byte gUnknown_85CBD4A - thumb_func_end Pokeblock_BufferEnhancedStatText - - thumb_func_start Pokeblock_GetMonContestStats -Pokeblock_GetMonContestStats: @ 0x08166E28 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r5, r1, #0 - movs r4, #0 - ldr r7, _08166E54 -_08166E32: - lsls r0, r4, #2 - adds r0, r0, r7 - ldr r1, [r0] - adds r0, r6, #0 - bl GetMonData - adds r1, r5, r4 - strb r0, [r1] - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #4 - bls _08166E32 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08166E54: .4byte gUnknown_85C0994 - thumb_func_end Pokeblock_GetMonContestStats - - thumb_func_start sub_08166E58 -sub_08166E58: @ 0x08166E58 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - mov r8, r0 - adds r5, r1, #0 - adds r0, r5, #0 - movs r1, #0x30 - bl GetMonData - cmp r0, #0xff - beq _08166EF4 - mov r0, r8 - adds r1, r5, #0 - bl sub_08166F88 - movs r4, #0 - mov r7, sp -_08166E7C: - ldr r1, _08166F00 - lsls r0, r4, #2 - adds r0, r0, r1 - ldr r6, [r0] - adds r0, r5, #0 - adds r1, r6, #0 - bl GetMonData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strb r0, [r7] - ldr r1, _08166F04 - ldr r1, [r1] - lsls r2, r4, #1 - adds r1, #0x66 - adds r1, r1, r2 - ldrh r1, [r1] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r0, #0 - bge _08166EAA - movs r1, #0 -_08166EAA: - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xff - ble _08166EB4 - movs r1, #0xff -_08166EB4: - strb r1, [r7] - adds r0, r5, #0 - adds r1, r6, #0 - mov r2, sp - bl SetMonData - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #4 - bls _08166E7C - adds r0, r5, #0 - movs r1, #0x30 - bl GetMonData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r2, r8 - ldrb r2, [r2, #6] - adds r1, r0, r2 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xff - ble _08166EE6 - movs r1, #0xff -_08166EE6: - mov r0, sp - strb r1, [r0] - adds r0, r5, #0 - movs r1, #0x30 - mov r2, sp - bl SetMonData -_08166EF4: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08166F00: .4byte gUnknown_85C0994 -_08166F04: .4byte gUnknown_203B95C - thumb_func_end sub_08166E58 - - thumb_func_start sub_08166F08 -sub_08166F08: @ 0x08166F08 - push {r4, r5, lr} - ldr r5, _08166F74 - ldr r0, _08166F78 - ldr r1, [r0] - ldr r2, _08166F7C - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r1, r1, r0 - ldr r0, _08166F80 - adds r1, r1, r0 - ldrb r1, [r1] - movs r0, #0x64 - muls r0, r1, r0 - adds r5, r0, r5 - ldr r4, _08166F84 - ldr r1, [r4] - adds r1, #0x57 - adds r0, r5, #0 - bl Pokeblock_GetMonContestStats - ldr r0, [r4] - ldr r0, [r0, #8] - adds r1, r5, #0 - bl sub_08166E58 - ldr r1, [r4] - adds r1, #0x5c - adds r0, r5, #0 - bl Pokeblock_GetMonContestStats - movs r3, #0 -_08166F48: - ldr r0, [r4] - adds r2, r0, #0 - adds r2, #0x61 - adds r2, r2, r3 - adds r1, r0, #0 - adds r1, #0x5c - adds r1, r1, r3 - adds r0, #0x57 - adds r0, r0, r3 - ldrb r1, [r1] - ldrb r0, [r0] - subs r1, r1, r0 - strb r1, [r2] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #4 - bls _08166F48 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08166F74: .4byte gUnknown_2024190 -_08166F78: .4byte gUnknown_203B978 -_08166F7C: .4byte 0x00008041 -_08166F80: .4byte 0x00007FB9 -_08166F84: .4byte gUnknown_203B95C - thumb_func_end sub_08166F08 - - thumb_func_start sub_08166F88 -sub_08166F88: @ 0x08166F88 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sl, r1 - ldr r1, _08166FD0 - ldr r3, [r1] - ldrb r1, [r0, #1] - adds r2, r3, #0 - adds r2, #0x66 - strh r1, [r2] - ldrb r2, [r0, #5] - adds r1, r3, #0 - adds r1, #0x68 - strh r2, [r1] - ldrb r1, [r0, #4] - adds r2, r3, #0 - adds r2, #0x6a - strh r1, [r2] - ldrb r2, [r0, #3] - adds r1, r3, #0 - adds r1, #0x6c - strh r2, [r1] - ldrb r1, [r0, #2] - adds r0, r3, #0 - adds r0, #0x6e - strh r1, [r0] - ldr r0, _08166FD4 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - ble _08166FD8 - movs r0, #1 - b _08166FDE - .align 2, 0 -_08166FD0: .4byte gUnknown_203B95C -_08166FD4: .4byte gUnknown_203B96A -_08166FD8: - cmp r0, #0 - bge _08167054 - movs r0, #0xff -_08166FDE: - movs r2, #0 - lsls r0, r0, #0x18 - mov sb, r0 - ldr r0, _08167064 - mov r8, r0 -_08166FE8: - mov r0, r8 - ldr r1, [r0] - lsls r0, r2, #0x18 - asrs r6, r0, #0x18 - lsls r7, r6, #1 - adds r1, #0x66 - adds r1, r1, r7 - movs r2, #0 - ldrsh r4, [r1, r2] - adds r0, r4, #0 - movs r1, #0xa - bl __divsi3 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r4, #0 - movs r1, #0xa - bl __modsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - ble _08167020 - lsls r0, r5, #0x18 - movs r1, #0x80 - lsls r1, r1, #0x11 - adds r0, r0, r1 - lsrs r5, r0, #0x18 -_08167020: - ldr r0, _08167068 - adds r0, r6, r0 - ldrb r1, [r0] - mov r0, sl - bl sub_0806E2E4 - lsls r0, r0, #0x18 - asrs r2, r0, #0x18 - cmp r0, sb - bne _08167048 - mov r1, r8 - ldr r0, [r1] - adds r0, #0x66 - adds r0, r0, r7 - lsls r1, r5, #0x18 - asrs r1, r1, #0x18 - muls r1, r2, r1 - ldrh r2, [r0] - adds r1, r1, r2 - strh r1, [r0] -_08167048: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #4 - ble _08166FE8 -_08167054: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08167064: .4byte gUnknown_203B95C -_08167068: .4byte gUnknown_85C09A8 - thumb_func_end sub_08166F88 - - thumb_func_start IsSheenMaxed -IsSheenMaxed: @ 0x0816706C - push {lr} - ldr r0, _08167098 - ldr r1, [r0] - ldr r2, _0816709C - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r1, r1, r0 - subs r2, #0x89 - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, #1 - adds r1, r1, r2 - ldrb r1, [r1] - movs r2, #0x30 - movs r3, #0 - bl GetBoxOrPartyMonData - cmp r0, #0xff - beq _081670A0 - movs r0, #0 - b _081670A2 - .align 2, 0 -_08167098: .4byte gUnknown_203B978 -_0816709C: .4byte 0x00008041 -_081670A0: - movs r0, #1 -_081670A2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsSheenMaxed - - thumb_func_start sub_081670A8 -sub_081670A8: @ 0x081670A8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r4, #0 -_081670B0: - movs r0, #0x64 - muls r0, r4, r0 - ldr r1, _081670CC - adds r0, r0, r1 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - bne _081670D6 - cmp r5, #0 - bne _081670D0 - adds r0, r4, #0 - b _081670E2 - .align 2, 0 -_081670CC: .4byte gUnknown_2024190 -_081670D0: - subs r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_081670D6: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #5 - bls _081670B0 - movs r0, #0 -_081670E2: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_081670A8 - - thumb_func_start sub_081670E8 -sub_081670E8: @ 0x081670E8 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r4, #0 - movs r6, #0 - cmp r6, r5 - bhs _08167118 -_081670F6: - movs r0, #0x64 - muls r0, r4, r0 - ldr r1, _08167124 - adds r0, r0, r1 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - beq _0816710E - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_0816710E: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r5 - blo _081670F6 -_08167118: - subs r0, r5, r6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08167124: .4byte gUnknown_2024190 - thumb_func_end sub_081670E8 - - thumb_func_start sub_08167128 -sub_08167128: @ 0x08167128 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_081670A8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08167128 - - thumb_func_start sub_0816713C -sub_0816713C: @ 0x0816713C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _081671C4 - bl LoadSpriteSheet - ldr r0, _081671C8 - bl LoadSpritePalette - ldr r2, _081671CC - ldr r0, [r2] - adds r0, #0x54 - movs r1, #0 - strb r1, [r0] - movs r4, #0 - adds r5, r2, #0 - ldr r6, _081671D0 - adds r0, r6, #2 - mov r8, r0 - ldr r7, _081671D4 -_08167164: - ldr r0, [r5] - adds r0, #0x61 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0 - beq _081671B0 - lsls r2, r4, #2 - adds r0, r2, r6 - movs r3, #0 - ldrsh r1, [r0, r3] - add r2, r8 - movs r0, #0 - ldrsh r2, [r2, r0] - ldr r0, _081671D8 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x40 - beq _081671B0 - ldr r0, [r5] - adds r0, #0x61 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0 - beq _081671A6 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldr r1, _081671DC - str r1, [r0] -_081671A6: - ldr r1, [r5] - adds r1, #0x54 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_081671B0: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #4 - bls _08167164 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081671C4: .4byte gUnknown_85C09FC -_081671C8: .4byte gUnknown_85C0A04 -_081671CC: .4byte gUnknown_203B95C -_081671D0: .4byte gUnknown_85C0A0C -_081671D4: .4byte gUnknown_20205C8 -_081671D8: .4byte gUnknown_85C0A40 -_081671DC: .4byte sub_081671E0 - thumb_func_end sub_0816713C - - thumb_func_start sub_081671E0 -sub_081671E0: @ 0x081671E0 - push {lr} - adds r1, r0, #0 - movs r2, #0x2e - ldrsh r0, [r1, r2] - cmp r0, #5 - bgt _081671F2 - ldrh r0, [r1, #0x26] - subs r0, #2 - b _081671FA -_081671F2: - cmp r0, #0xb - bgt _081671FC - ldrh r0, [r1, #0x26] - adds r0, #2 -_081671FA: - strh r0, [r1, #0x26] -_081671FC: - ldrh r0, [r1, #0x2e] - adds r0, #1 - strh r0, [r1, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3c - ble _0816721C - adds r0, r1, #0 - bl DestroySprite - ldr r0, _08167220 - ldr r1, [r0] - adds r1, #0x54 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] -_0816721C: - pop {r0} - bx r0 - .align 2, 0 -_08167220: .4byte gUnknown_203B95C - thumb_func_end sub_081671E0 - - thumb_func_start sub_08167224 -sub_08167224: @ 0x08167224 - push {r4, r5, r6, lr} - movs r4, #0 - movs r5, #0 - ldr r6, _08167230 - b _08167276 - .align 2, 0 -_08167230: .4byte gUnknown_203B978 -_08167234: - movs r0, #0x64 - muls r0, r4, r0 - ldr r1, _081672A4 - adds r0, r0, r1 - movs r1, #0x2d - bl GetMonData - adds r3, r0, #0 - cmp r3, #0 - bne _08167270 - ldr r1, [r6] - lsls r2, r5, #2 - adds r1, r1, r2 - ldr r0, _081672A8 - adds r1, r1, r0 - movs r0, #0xe - strb r0, [r1] - ldr r0, [r6] - adds r0, r0, r2 - ldr r1, _081672AC - adds r0, r0, r1 - strb r4, [r0] - ldr r0, [r6] - adds r0, r0, r2 - ldr r2, _081672B0 - adds r0, r0, r2 - strh r3, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_08167270: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_08167276: - bl sub_0806B004 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - blo _08167234 - ldr r2, _081672B4 - ldr r0, [r2] - ldr r1, _081672B8 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - ldr r0, [r2] - adds r1, r5, #1 - ldr r2, _081672BC - adds r0, r0, r2 - strb r1, [r0] - bl sub_081672C0 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081672A4: .4byte gUnknown_2024190 -_081672A8: .4byte 0x00007FB8 -_081672AC: .4byte 0x00007FB9 -_081672B0: .4byte 0x00007FBA -_081672B4: .4byte gUnknown_203B978 -_081672B8: .4byte 0x00008041 -_081672BC: .4byte 0x00008040 - thumb_func_end sub_08167224 - - thumb_func_start sub_081672C0 -sub_081672C0: @ 0x081672C0 - push {r4, r5, lr} - ldr r4, _0816732C - ldr r0, [r4] - ldr r5, _08167330 - adds r0, r0, r5 - ldrb r0, [r0] - movs r1, #0 - bl sub_08167340 - ldr r0, [r4] - ldr r1, _08167334 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - ldr r0, [r4] - ldr r2, _08167338 - adds r0, r0, r2 - movs r1, #1 - strb r1, [r0] - ldr r0, [r4] - ldr r1, _0816733C - adds r0, r0, r1 - movs r1, #2 - strb r1, [r0] - ldr r0, [r4] - adds r5, r0, r5 - ldrb r3, [r5] - adds r1, r3, #1 - adds r2, #0x8c - adds r0, r0, r2 - ldrb r2, [r0] - cmp r1, r2 - blt _08167304 - movs r1, #0 -_08167304: - subs r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r0, #0 - bge _08167314 - subs r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_08167314: - adds r0, r1, #0 - movs r1, #1 - bl sub_08167340 - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - movs r1, #2 - bl sub_08167340 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0816732C: .4byte gUnknown_203B978 -_08167330: .4byte 0x00008041 -_08167334: .4byte 0x00007FB3 -_08167338: .4byte 0x00007FB4 -_0816733C: .4byte 0x00007FB5 - thumb_func_end sub_081672C0 - - thumb_func_start sub_08167340 -sub_08167340: @ 0x08167340 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - adds r5, r0, #0 - adds r4, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081673F0 - mov sb, r0 - ldr r1, [r0] - lsls r5, r5, #0x10 - asrs r0, r5, #0xe - adds r0, r1, r0 - ldr r3, _081673F4 - adds r2, r0, r3 - ldrb r7, [r2] - ldr r2, _081673F8 - adds r0, r0, r2 - ldrb r0, [r0] - mov sl, r0 - adds r3, #0x88 - adds r0, r1, r3 - ldrb r6, [r0] - movs r0, #0 - mov r8, r0 - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r2, _081673FC - adds r0, r0, r2 - adds r0, r1, r0 - lsls r2, r4, #6 - ldr r3, _08167400 - adds r2, r2, r3 - adds r1, r1, r2 - lsrs r5, r5, #0x10 - str r5, [sp] - str r6, [sp, #4] - mov r2, r8 - str r2, [sp, #8] - adds r2, r7, #0 - mov r3, sl - bl sub_081D2504 - mov r3, sb - ldr r1, [r3] - ldr r2, _08167404 - adds r0, r1, r2 - ldr r3, _08167408 - adds r1, r1, r3 - str r5, [sp] - str r4, [sp, #4] - str r6, [sp, #8] - mov r2, r8 - str r2, [sp, #0xc] - adds r2, r7, #0 - mov r3, sl - bl sub_081D25A8 - lsls r0, r4, #0xd - movs r1, #0xc1 - lsls r1, r1, #2 - adds r0, r0, r1 - mov r3, sb - ldr r1, [r3] - adds r0, r1, r0 - lsls r4, r4, #7 - adds r4, #4 - adds r1, r1, r4 - str r5, [sp] - str r6, [sp, #4] - mov r2, r8 - str r2, [sp, #8] - adds r2, r7, #0 - mov r3, sl - bl sub_081D26C4 - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081673F0: .4byte gUnknown_203B978 -_081673F4: .4byte 0x00007FB8 -_081673F8: .4byte 0x00007FB9 -_081673FC: .4byte 0x00007B4D -_08167400: .4byte 0x00007B95 -_08167404: .4byte 0x00007C58 -_08167408: .4byte 0x00007FB0 - thumb_func_end sub_08167340 - - thumb_func_start sub_0816740C -sub_0816740C: @ 0x0816740C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x28 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _081674A0 - ldr r3, [r1] - ldr r0, _081674A4 - mov r8, r0 - adds r0, r3, r0 - ldrb r0, [r0] - adds r7, r1, #0 - cmp r0, #0xff - bne _08167518 - add r5, sp, #0x18 - add r4, sp, #0x20 - adds r0, r5, #0 - mov r1, sp - adds r2, r4, #0 - bl sub_081D2800 - lsls r0, r6, #0xd - movs r1, #0xc1 - lsls r1, r1, #2 - adds r0, r0, r1 - ldr r1, [r7] - adds r0, r1, r0 - str r0, [sp, #0x18] - lsls r0, r6, #7 - adds r0, #4 - adds r1, r1, r0 - str r1, [sp, #0x20] - adds r0, r4, #0 - bl LoadSpritePalette - ldr r1, [r7] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _081674A8 - adds r1, r1, r2 - strh r0, [r1] - adds r0, r5, #0 - bl LoadSpriteSheet - ldr r1, [r7] - ldr r3, _081674AC - adds r1, r1, r3 - strh r0, [r1] - mov r0, sp - movs r1, #0x26 - movs r2, #0x68 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r0, [r7] - ldr r2, _081674A4 - adds r0, r0, r2 - strb r1, [r0] - cmp r1, #0x40 - bne _081674B0 - movs r0, #0x64 - bl FreeSpriteTilesByTag - movs r0, #0x64 - bl FreeSpritePaletteByTag - ldr r0, [r7] - add r0, r8 - movs r1, #0xff - strb r1, [r0] - b _08167546 - .align 2, 0 -_081674A0: .4byte gUnknown_203B978 -_081674A4: .4byte 0x00007B10 -_081674A8: .4byte 0x00007B12 -_081674AC: .4byte 0x00007B14 -_081674B0: - ldr r0, [r7] - add r0, r8 - strb r1, [r0] - ldr r4, _08167504 - ldr r2, [r7] - mov r0, r8 - adds r3, r2, r0 - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _08167508 - str r1, [r0] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r0, #0x26] - subs r1, #0x22 - strh r1, [r0, #0x26] - ldr r3, _0816750C - adds r1, r2, r3 - subs r3, #4 - adds r0, r2, r3 - ldrh r0, [r0] - lsls r0, r0, #5 - ldr r3, _08167510 - adds r0, r0, r3 - str r0, [r1] - ldr r0, _08167514 - adds r2, r2, r0 - ldrh r0, [r2] - lsls r0, r0, #4 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r0, r1 - strh r0, [r2] - b _08167546 - .align 2, 0 -_08167504: .4byte gUnknown_20205AC -_08167508: .4byte sub_08167F70 -_0816750C: .4byte 0x00007B18 -_08167510: .4byte 0x06010000 -_08167514: .4byte 0x00007B12 -_08167518: - lsls r1, r6, #0xd - movs r0, #0xc1 - lsls r0, r0, #2 - adds r1, r1, r0 - adds r1, r3, r1 - ldr r2, _08167554 - adds r0, r3, r2 - ldr r2, [r0] - ldr r0, _08167558 - str r1, [r0] - str r2, [r0, #4] - ldr r1, _0816755C - str r1, [r0, #8] - ldr r0, [r0, #8] - lsls r0, r6, #7 - adds r0, #4 - adds r0, r3, r0 - ldr r2, _08167560 - adds r1, r3, r2 - ldrh r1, [r1] - movs r2, #0x20 - bl LoadPalette -_08167546: - add sp, #0x28 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08167554: .4byte 0x00007B18 -_08167558: .4byte 0x040000D4 -_0816755C: .4byte 0x80000400 -_08167560: .4byte 0x00007B12 - thumb_func_end sub_0816740C - - thumb_func_start sub_08167564 -sub_08167564: @ 0x08167564 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x60 - add r5, sp, #0x20 - add r4, sp, #0x38 - mov r0, sp - adds r1, r5, #0 - adds r2, r4, #0 - bl sub_081D284C - mov r0, sp - bl LoadSpriteSheets - adds r0, r4, #0 - bl LoadSpritePalettes - movs r4, #0 - ldr r1, _081675EC - ldr r0, [r1] - ldr r2, _081675F0 - adds r0, r0, r2 - ldrb r0, [r0] - subs r0, #1 - adds r6, r5, #0 - add r2, sp, #0x50 - mov sb, r2 - add r2, sp, #0x58 - mov sl, r2 - cmp r4, r0 - bge _08167620 - adds r5, r1, #0 - ldr r7, _081675F4 - movs r0, #0x1c - adds r0, r0, r7 - mov r8, r0 -_081675B0: - lsls r2, r4, #2 - adds r2, r2, r4 - lsls r2, r2, #0x12 - movs r1, #0x80 - lsls r1, r1, #0xc - adds r2, r2, r1 - asrs r2, r2, #0x10 - adds r0, r6, #0 - movs r1, #0xe2 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0x40 - beq _08167600 - ldr r0, [r5] - ldr r2, _081675F8 - adds r0, r0, r2 - adds r0, r0, r4 - strb r3, [r0] - lsls r0, r3, #4 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r1, r0, r7 - strh r4, [r1, #0x2e] - add r0, r8 - ldr r1, _081675FC - str r1, [r0] - b _0816760C - .align 2, 0 -_081675EC: .4byte gUnknown_203B978 -_081675F0: .4byte 0x00008040 -_081675F4: .4byte gUnknown_20205AC -_081675F8: .4byte 0x00007B06 -_081675FC: .4byte sub_08167F88 -_08167600: - ldr r0, [r5] - ldr r1, _08167668 - adds r0, r0, r1 - adds r0, r0, r4 - movs r1, #0xff - strb r1, [r0] -_0816760C: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, [r5] - ldr r2, _0816766C - adds r0, r0, r2 - ldrb r0, [r0] - subs r0, #1 - cmp r4, r0 - blt _081675B0 -_08167620: - movs r0, #0x67 - strh r0, [r6] - cmp r4, #5 - bhi _0816768E - ldr r5, _08167670 - ldr r7, _08167674 -_0816762C: - lsls r2, r4, #2 - adds r2, r2, r4 - lsls r2, r2, #0x12 - movs r0, #0x80 - lsls r0, r0, #0xc - adds r2, r2, r0 - asrs r2, r2, #0x10 - adds r0, r6, #0 - movs r1, #0xe6 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0x40 - beq _08167678 - ldr r0, [r5] - ldr r1, _08167668 - adds r0, r0, r1 - adds r0, r0, r4 - strb r3, [r0] - lsls r1, r3, #4 - adds r1, r1, r3 - lsls r1, r1, #2 - adds r1, r1, r7 - ldrb r2, [r1, #3] - movs r0, #0x3f - ands r0, r2 - strb r0, [r1, #3] - b _08167684 - .align 2, 0 -_08167668: .4byte 0x00007B06 -_0816766C: .4byte 0x00008040 -_08167670: .4byte gUnknown_203B978 -_08167674: .4byte gUnknown_20205AC -_08167678: - ldr r0, [r5] - ldr r2, _081676E8 - adds r0, r0, r2 - adds r0, r0, r4 - movs r1, #0xff - strb r1, [r0] -_08167684: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #5 - bls _0816762C -_0816768E: - movs r0, #0x66 - strh r0, [r6] - ldr r0, _081676EC - str r0, [r6, #0x14] - lsls r2, r4, #2 - adds r2, r2, r4 - lsls r2, r2, #0x12 - movs r0, #0x80 - lsls r0, r0, #0xc - adds r2, r2, r0 - asrs r2, r2, #0x10 - adds r0, r6, #0 - movs r1, #0xde - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0x40 - beq _081676F8 - ldr r0, _081676F0 - ldr r0, [r0] - ldr r1, _081676E8 - adds r0, r0, r1 - adds r0, r0, r4 - strb r3, [r0] - ldr r0, _081676F4 - lsls r2, r3, #4 - adds r2, r2, r3 - lsls r2, r2, #2 - adds r2, r2, r0 - ldrb r3, [r2, #1] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - movs r3, #0x40 - orrs r0, r3 - strb r0, [r2, #1] - ldrb r0, [r2, #3] - ands r1, r0 - movs r0, #0x80 - orrs r1, r0 - strb r1, [r2, #3] - b _08167706 - .align 2, 0 -_081676E8: .4byte 0x00007B06 -_081676EC: .4byte sub_08167FBC -_081676F0: .4byte gUnknown_203B978 -_081676F4: .4byte gUnknown_20205AC -_081676F8: - ldr r0, _0816772C - ldr r0, [r0] - ldr r2, _08167730 - adds r0, r0, r2 - adds r0, r0, r4 - movs r1, #0xff - strb r1, [r0] -_08167706: - mov r0, sb - mov r1, sl - bl sub_081D28E0 - mov r0, sb - bl LoadSpriteSheet - mov r0, sl - bl LoadSpritePalette - add sp, #0x60 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0816772C: .4byte gUnknown_203B978 -_08167730: .4byte 0x00007B06 - thumb_func_end sub_08167564 - - thumb_func_start sub_08167734 -sub_08167734: @ 0x08167734 - push {r4, r5, lr} - sub sp, #8 - ldr r0, _08167754 - ldr r0, [r0] - ldr r2, _08167758 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, #0xb - bls _08167748 - b _0816797C -_08167748: - lsls r0, r0, #2 - ldr r1, _0816775C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08167754: .4byte gUnknown_203B978 -_08167758: .4byte 0x00008048 -_0816775C: .4byte _08167760 -_08167760: @ jump table - .4byte _08167790 @ case 0 - .4byte _08167808 @ case 1 - .4byte _0816783C @ case 2 - .4byte _0816784C @ case 3 - .4byte _08167860 @ case 4 - .4byte _08167878 @ case 5 - .4byte _081678A0 @ case 6 - .4byte _081678B4 @ case 7 - .4byte _081678D8 @ case 8 - .4byte _081678F0 @ case 9 - .4byte _08167920 @ case 10 - .4byte _0816793C @ case 11 -_08167790: - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r1, #0x88 - lsls r1, r1, #6 - movs r0, #3 - movs r2, #0 - bl ChangeBgY - ldr r1, _08167800 - movs r0, #0 - bl SetGpuReg - movs r1, #0x91 - lsls r1, r1, #2 - movs r0, #0x50 - bl SetGpuReg - ldr r1, _08167804 - movs r0, #0x52 - bl SetGpuReg - b _08167982 - .align 2, 0 -_08167800: .4byte 0x00007040 -_08167804: .4byte 0x0000040B -_08167808: - ldr r4, _08167830 - movs r0, #0xfa - lsls r0, r0, #4 - bl sub_08000BC8 - str r0, [r4] - ldr r5, _08167834 - movs r4, #0xa0 - lsls r4, r4, #3 - adds r0, r4, #0 - bl sub_08000BC8 - str r0, [r5] - ldr r5, _08167838 - adds r0, r4, #0 - bl sub_08000BC8 - str r0, [r5] - b _08167982 - .align 2, 0 -_08167830: .4byte gUnknown_203B970 -_08167834: .4byte gUnknown_203B96C -_08167838: .4byte gUnknown_203B974 -_0816783C: - ldr r0, _08167844 - ldr r1, _08167848 - b _081678A4 - .align 2, 0 -_08167844: .4byte gUnknown_85BF9A0 -_08167848: .4byte gUnknown_203B974 -_0816784C: - ldr r1, _0816785C - movs r0, #3 - movs r2, #0xe0 - movs r3, #0 - bl LoadBgTiles - b _08167982 - .align 2, 0 -_0816785C: .4byte gUnknown_85BF8C0 -_08167860: - ldr r0, _08167874 - ldr r1, [r0] - movs r2, #0xa0 - lsls r2, r2, #3 - movs r0, #3 - movs r3, #0 - bl LoadBgTilemap - b _08167982 - .align 2, 0 -_08167874: .4byte gUnknown_203B974 -_08167878: - ldr r0, _08167890 - movs r1, #0xd0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _08167894 - ldr r0, [r0] - ldr r1, _08167898 - adds r0, r0, r1 - ldr r1, _0816789C - strh r1, [r0] - b _08167982 - .align 2, 0 -_08167890: .4byte gUnknown_85BF880 -_08167894: .4byte gUnknown_203B978 -_08167898: .4byte 0x00007B0E -_0816789C: .4byte 0x0000FFB0 -_081678A0: - ldr r0, _081678AC - ldr r1, _081678B0 -_081678A4: - ldr r1, [r1] - bl LZ77UnCompVram - b _08167982 - .align 2, 0 -_081678AC: .4byte gUnknown_85BFAAC -_081678B0: .4byte gUnknown_203B970 -_081678B4: - ldr r0, _081678CC - ldr r1, _081678D0 - ldr r1, [r1] - bl LZ77UnCompVram - ldr r0, _081678D4 - movs r1, #0x20 - movs r2, #0x20 - bl LoadPalette - b _08167982 - .align 2, 0 -_081678CC: .4byte gUnknown_85C0230 -_081678D0: .4byte gUnknown_203B96C -_081678D4: .4byte gUnknown_85BFA4C -_081678D8: - ldr r0, _081678EC - ldr r1, [r0] - movs r2, #0xfa - lsls r2, r2, #4 - movs r3, #0xa0 - lsls r3, r3, #2 - movs r0, #1 - bl LoadBgTiles - b _08167982 - .align 2, 0 -_081678EC: .4byte gUnknown_203B970 -_081678F0: - ldr r0, _08167918 - ldr r1, [r0] - movs r0, #1 - bl SetBgTilemapBuffer - ldr r1, _0816791C - movs r0, #0xb - str r0, [sp] - movs r0, #4 - str r0, [sp, #4] - movs r0, #1 - movs r2, #0 - movs r3, #0xd - bl CopyToBgTilemapBufferRect - movs r0, #1 - bl CopyBgTilemapBufferToVram - b _08167982 - .align 2, 0 -_08167918: .4byte gUnknown_203B96C -_0816791C: .4byte gUnknown_85C0410 -_08167920: - ldr r0, _08167930 - ldr r1, _08167934 - ldr r1, [r1] - ldr r2, _08167938 - adds r1, r1, r2 - bl LZ77UnCompVram - b _08167982 - .align 2, 0 -_08167930: .4byte gUnknown_85C0488 -_08167934: .4byte gUnknown_203B978 -_08167938: .4byte 0x00007304 -_0816793C: - ldr r0, _0816796C - ldr r1, [r0] - ldr r0, _08167970 - adds r1, r1, r0 - movs r2, #0xa0 - lsls r2, r2, #3 - movs r0, #2 - movs r3, #0 - bl LoadBgTilemap - ldr r0, _08167974 - movs r1, #0x30 - movs r2, #0x20 - bl LoadPalette - ldr r0, _08167978 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - movs r0, #2 - bl sub_081D1824 - b _08167982 - .align 2, 0 -_0816796C: .4byte gUnknown_203B978 -_08167970: .4byte 0x00007304 -_08167974: .4byte gUnknown_85F4E2C -_08167978: .4byte gUnknown_85F4E4C -_0816797C: - movs r0, #0 - strb r0, [r1] - b _08167992 -_08167982: - ldr r0, _0816799C - ldr r1, [r0] - ldr r2, _081679A0 - adds r1, r1, r2 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #1 -_08167992: - add sp, #8 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0816799C: .4byte gUnknown_203B978 -_081679A0: .4byte 0x00008048 - thumb_func_end sub_08167734 - - thumb_func_start sub_081679A4 -sub_081679A4: @ 0x081679A4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - movs r0, #0 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #1 - movs r1, #0 - bl FillWindowPixelBuffer - ldr r7, _08167A68 - ldr r3, [r7] - ldr r1, _08167A6C - adds r0, r3, r1 - ldrb r1, [r0] - ldr r2, _08167A70 - adds r0, r3, r2 - ldrb r0, [r0] - subs r0, #1 - cmp r1, r0 - beq _08167A4E - lsls r2, r4, #6 - ldr r0, _08167A74 - adds r2, r2, r0 - adds r2, r3, r2 - movs r0, #2 - str r0, [sp] - movs r5, #0 - str r5, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - ldr r0, [r7] - ldr r1, _08167A6C - adds r0, r0, r1 - ldrb r0, [r0] - bl sub_081670A8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x64 - muls r0, r1, r0 - ldr r1, _08167A78 - adds r0, r0, r1 - bl GetNature - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, [r7] - ldr r6, _08167A7C - adds r0, r0, r6 - ldr r1, _08167A80 - bl StringCopy - ldr r1, _08167A84 - lsls r4, r4, #2 - adds r4, r4, r1 - ldr r1, [r4] - movs r2, #0 - movs r3, #5 - bl StringCopyPadded - ldr r0, _08167A88 - str r0, [sp] - str r5, [sp, #4] - ldr r0, [r7] - adds r0, r0, r6 - str r0, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 -_08167A4E: - mov r2, r8 - cmp r2, #0 - beq _08167A8C - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - movs r0, #1 - movs r1, #3 - bl CopyWindowToVram - b _08167A9C - .align 2, 0 -_08167A68: .4byte gUnknown_203B978 -_08167A6C: .4byte 0x00008041 -_08167A70: .4byte 0x00008040 -_08167A74: .4byte 0x00007B95 -_08167A78: .4byte gUnknown_2024190 -_08167A7C: .4byte 0x0000804A -_08167A80: .4byte gUnknown_85CB7A2 -_08167A84: .4byte gUnknown_85ECE24 -_08167A88: .4byte gUnknown_85C09AD -_08167A8C: - movs r0, #0 - movs r1, #2 - bl CopyWindowToVram - movs r0, #1 - movs r1, #2 - bl CopyWindowToVram -_08167A9C: - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_081679A4 - - thumb_func_start sub_08167AA8 -sub_08167AA8: @ 0x08167AA8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #0 - beq _08167AC8 - ldr r0, _08167AC0 - ldr r0, [r0] - ldr r1, _08167AC4 - adds r0, r0, r1 - b _08167AD0 - .align 2, 0 -_08167AC0: .4byte gUnknown_203B978 -_08167AC4: .4byte 0x00007FB5 -_08167AC8: - ldr r0, _08167B80 - ldr r0, [r0] - ldr r2, _08167B84 - adds r0, r0, r2 -_08167AD0: - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r5, _08167B80 - ldr r2, [r5] - ldr r3, _08167B88 - adds r0, r2, r3 - ldr r4, _08167B8C - adds r1, r2, r4 - movs r3, #0 - ldrsb r3, [r1, r3] - lsls r1, r3, #2 - adds r1, r1, r3 - lsls r1, r1, #2 - ldr r4, _08167B90 - adds r1, r1, r4 - adds r1, r2, r1 - lsls r3, r6, #2 - adds r3, r3, r6 - lsls r3, r3, #2 - adds r3, r3, r4 - adds r2, r2, r3 - bl sub_081D15CC - ldr r4, [r5] - ldr r1, _08167B94 - adds r0, r4, r1 - ldrb r1, [r0] - ldr r2, _08167B98 - mov ip, r2 - adds r0, r4, r2 - ldrb r0, [r0] - subs r0, #1 - eors r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - mov r8, r0 - cmp r7, #0 - beq _08167BA0 - ldr r3, _08167B84 - adds r0, r4, r3 - ldrb r1, [r0] - subs r2, #0x8b - adds r0, r4, r2 - strb r1, [r0] - ldr r0, [r5] - ldr r4, _08167B8C - adds r1, r0, r4 - ldrb r1, [r1] - adds r0, r0, r3 - strb r1, [r0] - ldr r0, [r5] - adds r0, r0, r4 - strb r6, [r0] - ldr r0, [r5] - adds r2, r0, r2 - ldrb r1, [r2] - ldr r2, _08167B9C - adds r0, r0, r2 - strb r1, [r0] - ldr r1, [r5] - adds r3, #0x8d - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, #0 - bne _08167B60 - mov r4, ip - adds r0, r1, r4 - ldrb r0, [r0] -_08167B60: - subs r2, r0, #1 - ldr r0, _08167B94 - adds r1, r1, r0 - strb r2, [r1] - ldr r1, _08167B80 - ldr r3, [r1] - adds r0, r3, r0 - ldrb r0, [r0] - adds r6, r1, #0 - cmp r0, #0 - bne _08167B7C - ldr r1, _08167B98 - adds r0, r3, r1 - ldrb r0, [r0] -_08167B7C: - subs r1, r0, #1 - b _08167C26 - .align 2, 0 -_08167B80: .4byte gUnknown_203B978 -_08167B84: .4byte 0x00007FB4 -_08167B88: .4byte 0x00007C58 -_08167B8C: .4byte 0x00007FB3 -_08167B90: .4byte 0x00007C6C -_08167B94: .4byte 0x00008041 -_08167B98: .4byte 0x00008040 -_08167B9C: .4byte 0x00007FB6 -_08167BA0: - ldr r3, _08167BE4 - adds r0, r4, r3 - ldrb r1, [r0] - ldr r2, _08167BE8 - adds r0, r4, r2 - strb r1, [r0] - ldr r0, [r5] - ldr r4, _08167BEC - adds r1, r0, r4 - ldrb r1, [r1] - adds r0, r0, r3 - strb r1, [r0] - ldr r0, [r5] - adds r0, r0, r4 - strb r6, [r0] - ldr r0, [r5] - adds r2, r0, r2 - ldrb r1, [r2] - ldr r2, _08167BF0 - adds r0, r0, r2 - strb r1, [r0] - ldr r2, [r5] - adds r3, #0x8c - adds r0, r2, r3 - ldrb r1, [r0] - adds r4, #0x8d - adds r0, r2, r4 - ldrb r0, [r0] - subs r0, #1 - cmp r1, r0 - bge _08167BF4 - adds r3, r1, #1 - b _08167BF6 - .align 2, 0 -_08167BE4: .4byte 0x00007FB5 -_08167BE8: .4byte 0x00007FB4 -_08167BEC: .4byte 0x00007FB3 -_08167BF0: .4byte 0x00007FB6 -_08167BF4: - movs r3, #0 -_08167BF6: - ldr r1, _08167C18 - adds r0, r2, r1 - strb r3, [r0] - ldr r2, _08167C1C - ldr r3, [r2] - adds r1, r3, r1 - ldrb r1, [r1] - ldr r4, _08167C20 - adds r0, r3, r4 - ldrb r0, [r0] - subs r0, #1 - adds r6, r2, #0 - cmp r1, r0 - bge _08167C24 - adds r1, #1 - b _08167C26 - .align 2, 0 -_08167C18: .4byte 0x00008041 -_08167C1C: .4byte gUnknown_203B978 -_08167C20: .4byte 0x00008040 -_08167C24: - movs r1, #0 -_08167C26: - ldr r2, _08167C60 - adds r0, r3, r2 - strb r1, [r0] - adds r5, r6, #0 - ldr r0, [r5] - ldr r3, _08167C64 - adds r1, r0, r3 - ldrb r2, [r1] - ldr r4, _08167C68 - adds r1, r0, r4 - ldrb r1, [r1] - subs r1, #1 - eors r2, r1 - rsbs r1, r2, #0 - orrs r1, r2 - lsrs r4, r1, #0x1f - ldr r1, _08167C6C - adds r0, r0, r1 - bl sub_081D2B50 - mov r2, r8 - cmp r2, #0 - bne _08167C78 - ldr r0, [r5] - ldr r3, _08167C70 - adds r0, r0, r3 - ldr r1, _08167C74 - b _08167C98 - .align 2, 0 -_08167C60: .4byte 0x00007B4C -_08167C64: .4byte 0x00008041 -_08167C68: .4byte 0x00008040 -_08167C6C: .4byte 0x00007B1C -_08167C70: .4byte 0x00008044 -_08167C74: .4byte sub_08167CAC -_08167C78: - cmp r4, #0 - bne _08167C90 - ldr r0, [r5] - ldr r4, _08167C88 - adds r0, r0, r4 - ldr r1, _08167C8C - b _08167C98 - .align 2, 0 -_08167C88: .4byte 0x00008044 -_08167C8C: .4byte sub_08167DAC -_08167C90: - ldr r0, [r6] - ldr r1, _08167CA4 - adds r0, r0, r1 - ldr r1, _08167CA8 -_08167C98: - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08167CA4: .4byte 0x00008044 -_08167CA8: .4byte sub_08167E50 - thumb_func_end sub_08167AA8 - - thumb_func_start sub_08167CAC -sub_08167CAC: @ 0x08167CAC - push {r4, r5, r6, lr} - ldr r4, _08167CC8 - ldr r1, [r4] - ldr r5, _08167CCC - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, #1 - beq _08167CEC - cmp r0, #1 - bgt _08167CD0 - cmp r0, #0 - beq _08167CDA - b _08167DA4 - .align 2, 0 -_08167CC8: .4byte gUnknown_203B978 -_08167CCC: .4byte 0x00008048 -_08167CD0: - cmp r0, #2 - beq _08167D10 - cmp r0, #3 - beq _08167D50 - b _08167DA4 -_08167CDA: - ldr r2, _08167CE8 - adds r0, r1, r2 - ldrb r0, [r0] - bl sub_0816740C - b _08167D34 - .align 2, 0 -_08167CE8: .4byte 0x00007FB3 -_08167CEC: - ldr r6, _08167D08 - adds r0, r1, r6 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0 - bl sub_081679A4 - ldr r1, [r4] - ldr r0, _08167D0C - adds r1, r1, r0 - b _08167D38 - .align 2, 0 -_08167D08: .4byte 0x00007FB3 -_08167D0C: .4byte 0x00008048 -_08167D10: - ldr r2, _08167D40 - adds r0, r1, r2 - ldr r6, _08167D44 - adds r1, r1, r6 - bl sub_081D27A8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08167DA4 - ldr r1, [r4] - ldr r2, _08167D48 - adds r0, r1, r2 - ldrb r0, [r0] - ldr r6, _08167D4C - adds r1, r1, r6 - ldrb r1, [r1] - bl sub_08167340 -_08167D34: - ldr r1, [r4] - adds r1, r1, r5 -_08167D38: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _08167DA4 - .align 2, 0 -_08167D40: .4byte 0x00007C58 -_08167D44: .4byte 0x00007B0E -_08167D48: .4byte 0x00007B4C -_08167D4C: .4byte 0x00007FB6 -_08167D50: - ldr r2, _08167D98 - adds r0, r1, r2 - bl sub_081D2A94 - ldr r3, [r4] - ldr r6, _08167D9C - adds r0, r3, r6 - ldrb r1, [r0] - ldr r2, _08167DA0 - adds r0, r3, r2 - ldrb r0, [r0] - subs r0, #1 - cmp r1, r0 - beq _08167D8A - subs r6, #0x8e - adds r0, r3, r6 - movs r1, #0 - ldrsb r1, [r0, r1] - subs r2, #0x90 - adds r0, r3, r2 - adds r0, r0, r1 - ldrb r2, [r0] - ldr r6, _08167D98 - adds r0, r3, r6 - subs r6, #0xc - adds r1, r3, r6 - ldrb r1, [r1] - bl sub_081D2AB0 -_08167D8A: - ldr r0, [r4] - adds r0, r0, r5 - movs r1, #0 - strb r1, [r0] - movs r0, #0 - b _08167DA6 - .align 2, 0 -_08167D98: .4byte 0x00007B1C -_08167D9C: .4byte 0x00008041 -_08167DA0: .4byte 0x00008040 -_08167DA4: - movs r0, #1 -_08167DA6: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_08167CAC - - thumb_func_start sub_08167DAC -sub_08167DAC: @ 0x08167DAC - push {r4, r5, lr} - ldr r4, _08167DC8 - ldr r1, [r4] - ldr r5, _08167DCC - adds r2, r1, r5 - ldrb r0, [r2] - cmp r0, #1 - beq _08167DF8 - cmp r0, #1 - bgt _08167DD0 - cmp r0, #0 - beq _08167DDA - b _08167E46 - .align 2, 0 -_08167DC8: .4byte gUnknown_203B978 -_08167DCC: .4byte 0x00008048 -_08167DD0: - cmp r0, #2 - beq _08167E1C - cmp r0, #3 - beq _08167E40 - b _08167E46 -_08167DDA: - ldr r2, _08167DF0 - adds r0, r1, r2 - ldr r2, _08167DF4 - adds r1, r1, r2 - bl sub_081D27D4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08167E46 - b _08167E2C - .align 2, 0 -_08167DF0: .4byte 0x00007C58 -_08167DF4: .4byte 0x00007B0E -_08167DF8: - ldr r2, _08167E14 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0 - bl sub_081679A4 - ldr r1, [r4] - ldr r0, _08167E18 - adds r1, r1, r0 - b _08167E30 - .align 2, 0 -_08167E14: .4byte 0x00007FB3 -_08167E18: .4byte 0x00008048 -_08167E1C: - ldr r2, _08167E38 - adds r0, r1, r2 - ldrb r0, [r0] - ldr r2, _08167E3C - adds r1, r1, r2 - ldrb r1, [r1] - bl sub_08167340 -_08167E2C: - ldr r1, [r4] - adds r1, r1, r5 -_08167E30: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _08167E46 - .align 2, 0 -_08167E38: .4byte 0x00007B4C -_08167E3C: .4byte 0x00007FB6 -_08167E40: - movs r0, #0 - strb r0, [r2] - b _08167E48 -_08167E46: - movs r0, #1 -_08167E48: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08167DAC - - thumb_func_start sub_08167E50 -sub_08167E50: @ 0x08167E50 - push {r4, r5, r6, lr} - ldr r4, _08167E6C - ldr r1, [r4] - ldr r5, _08167E70 - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, #1 - beq _08167EB0 - cmp r0, #1 - bgt _08167E74 - cmp r0, #0 - beq _08167E7E - b _08167F68 - .align 2, 0 -_08167E6C: .4byte gUnknown_203B978 -_08167E70: .4byte 0x00008048 -_08167E74: - cmp r0, #2 - beq _08167ED4 - cmp r0, #3 - beq _08167F14 - b _08167F68 -_08167E7E: - ldr r2, _08167EA4 - adds r0, r1, r2 - bl sub_081D16BC - ldr r0, [r4] - ldr r6, _08167EA8 - adds r0, r0, r6 - bl sub_081D2780 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08167F68 - ldr r0, [r4] - ldr r1, _08167EAC - adds r0, r0, r1 - ldrb r0, [r0] - bl sub_0816740C - b _08167EF8 - .align 2, 0 -_08167EA4: .4byte 0x00007C58 -_08167EA8: .4byte 0x00007B0E -_08167EAC: .4byte 0x00007FB3 -_08167EB0: - ldr r2, _08167ECC - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0 - bl sub_081679A4 - ldr r1, [r4] - ldr r6, _08167ED0 - adds r1, r1, r6 - b _08167EFC - .align 2, 0 -_08167ECC: .4byte 0x00007FB3 -_08167ED0: .4byte 0x00008048 -_08167ED4: - ldr r2, _08167F04 - adds r0, r1, r2 - ldr r6, _08167F08 - adds r1, r1, r6 - bl sub_081D27A8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08167F68 - ldr r1, [r4] - ldr r2, _08167F0C - adds r0, r1, r2 - ldrb r0, [r0] - ldr r6, _08167F10 - adds r1, r1, r6 - ldrb r1, [r1] - bl sub_08167340 -_08167EF8: - ldr r1, [r4] - adds r1, r1, r5 -_08167EFC: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _08167F68 - .align 2, 0 -_08167F04: .4byte 0x00007C58 -_08167F08: .4byte 0x00007B0E -_08167F0C: .4byte 0x00007B4C -_08167F10: .4byte 0x00007FB6 -_08167F14: - ldr r2, _08167F5C - adds r0, r1, r2 - bl sub_081D2A94 - ldr r3, [r4] - ldr r6, _08167F60 - adds r0, r3, r6 - ldrb r1, [r0] - ldr r2, _08167F64 - adds r0, r3, r2 - ldrb r0, [r0] - subs r0, #1 - cmp r1, r0 - beq _08167F4E - subs r6, #0x8e - adds r0, r3, r6 - movs r1, #0 - ldrsb r1, [r0, r1] - subs r2, #0x90 - adds r0, r3, r2 - adds r0, r0, r1 - ldrb r2, [r0] - ldr r6, _08167F5C - adds r0, r3, r6 - subs r6, #0xc - adds r1, r3, r6 - ldrb r1, [r1] - bl sub_081D2AB0 -_08167F4E: - ldr r0, [r4] - adds r0, r0, r5 - movs r1, #0 - strb r1, [r0] - movs r0, #0 - b _08167F6A - .align 2, 0 -_08167F5C: .4byte 0x00007B1C -_08167F60: .4byte 0x00008041 -_08167F64: .4byte 0x00008040 -_08167F68: - movs r0, #1 -_08167F6A: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_08167E50 - - thumb_func_start sub_08167F70 -sub_08167F70: @ 0x08167F70 - ldr r1, _08167F80 - ldr r1, [r1] - ldr r2, _08167F84 - adds r1, r1, r2 - ldrh r1, [r1] - adds r1, #0x26 - strh r1, [r0, #0x20] - bx lr - .align 2, 0 -_08167F80: .4byte gUnknown_203B978 -_08167F84: .4byte 0x00007B0E - thumb_func_end sub_08167F70 - - thumb_func_start sub_08167F88 -sub_08167F88: @ 0x08167F88 - push {lr} - adds r2, r0, #0 - movs r0, #0x2e - ldrsh r1, [r2, r0] - ldr r0, _08167FA8 - ldr r0, [r0] - ldr r3, _08167FAC - adds r0, r0, r3 - ldrb r0, [r0] - cmp r1, r0 - bne _08167FB0 - adds r0, r2, #0 - movs r1, #0 - bl StartSpriteAnim - b _08167FB8 - .align 2, 0 -_08167FA8: .4byte gUnknown_203B978 -_08167FAC: .4byte 0x00008041 -_08167FB0: - adds r0, r2, #0 - movs r1, #1 - bl StartSpriteAnim -_08167FB8: - pop {r0} - bx r0 - thumb_func_end sub_08167F88 - - thumb_func_start sub_08167FBC -sub_08167FBC: @ 0x08167FBC - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08167FDC - ldr r0, [r0] - ldr r2, _08167FE0 - adds r1, r0, r2 - ldrb r1, [r1] - subs r2, #1 - adds r0, r0, r2 - ldrb r0, [r0] - subs r0, #1 - cmp r1, r0 - bne _08167FE4 - movs r0, #0x65 - b _08167FE6 - .align 2, 0 -_08167FDC: .4byte gUnknown_203B978 -_08167FE0: .4byte 0x00008041 -_08167FE4: - movs r0, #0x66 -_08167FE6: - bl IndexOfSpritePaletteTag - lsls r0, r0, #4 - ldrb r2, [r4, #5] - movs r1, #0xf - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #5] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08167FBC - - thumb_func_start sub_08167FFC -sub_08167FFC: @ 0x08167FFC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x64 - muls r0, r1, r0 - ldr r1, _08168038 - adds r0, r0, r1 - movs r1, #0x30 - bl GetMonData - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _0816803C - ldr r0, [r0] - ldr r3, _08168040 - adds r1, r0, r3 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - subs r3, #3 - adds r0, r0, r3 - adds r4, r0, r1 - cmp r2, #0xff - beq _08168044 - adds r0, r2, #0 - movs r1, #0x1d - bl __udivsi3 - b _08168046 - .align 2, 0 -_08168038: .4byte gUnknown_2024190 -_0816803C: .4byte gUnknown_203B978 -_08168040: .4byte 0x00007FB3 -_08168044: - movs r0, #9 -_08168046: - strb r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08167FFC - - thumb_func_start sub_08168050 -sub_08168050: @ 0x08168050 - push {lr} - sub sp, #0x10 - ldr r0, _0816808C - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [sp, #8] - str r1, [sp, #0xc] - ldr r0, _08168090 - str r0, [sp] - ldr r1, _08168094 - ldr r0, [sp, #4] - ands r0, r1 - movs r1, #0x80 - lsls r1, r1, #4 - orrs r0, r1 - ldr r1, _08168098 - ands r0, r1 - adds r1, #1 - orrs r0, r1 - str r0, [sp, #4] - mov r0, sp - bl LoadCompressedSpriteSheet - add r0, sp, #8 - bl LoadSpritePalette - add sp, #0x10 - pop {r0} - bx r0 - .align 2, 0 -_0816808C: .4byte gUnknown_85C0A9C -_08168090: .4byte gUnknown_85BEBC0 -_08168094: .4byte 0xFFFF0000 -_08168098: .4byte 0x0000FFFF - thumb_func_end sub_08168050 - - thumb_func_start sub_0816809C -sub_0816809C: @ 0x0816809C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _08168120 - ldr r0, [r0] - ldr r1, _08168124 - adds r7, r0, r1 - ldr r0, _08168128 - mov sl, r0 - movs r6, #0 - movs r1, #0x40 - mov sb, r1 - movs r0, #0x60 - rsbs r0, r0, #0 - mov r8, r0 -_081680BE: - mov r5, sb - muls r5, r6, r5 - mov r0, r8 - adds r1, r0, r5 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #0x11 - lsls r2, r0, #0x10 - mov r0, sl - asrs r2, r2, #0x10 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x40 - beq _08168106 - ldr r0, _0816812C - lsls r4, r1, #4 - adds r4, r4, r1 - lsls r4, r4, #2 - adds r4, r4, r0 - movs r1, #8 - strh r1, [r4, #0x2e] - movs r0, #0x20 - orrs r5, r0 - strh r5, [r4, #0x30] - strh r6, [r4, #0x32] - lsls r1, r6, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim - lsls r0, r6, #2 - adds r0, r0, r7 - str r4, [r0] -_08168106: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #1 - bls _081680BE - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08168120: .4byte gUnknown_203B978 -_08168124: .4byte 0x00007B44 -_08168128: .4byte gUnknown_85C0A84 -_0816812C: .4byte gUnknown_20205AC - thumb_func_end sub_0816809C - - thumb_func_start sub_08168130 -sub_08168130: @ 0x08168130 - push {r4, r5, lr} - ldr r4, _08168148 - ldr r0, [r4] - ldr r5, _0816814C - adds r0, r0, r5 - ldrb r0, [r0] - cmp r0, #0 - beq _08168150 - cmp r0, #1 - beq _08168168 - b _08168174 - .align 2, 0 -_08168148: .4byte gUnknown_203B978 -_0816814C: .4byte 0x00008048 -_08168150: - bl sub_08168050 - ldr r1, [r4] - ldr r0, _08168164 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #1 - b _08168176 - .align 2, 0 -_08168164: .4byte 0x00008048 -_08168168: - bl sub_0816809C - ldr r0, [r4] - adds r0, r0, r5 - movs r1, #0 - strb r1, [r0] -_08168174: - movs r0, #0 -_08168176: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_08168130 - - thumb_func_start sub_0816817C -sub_0816817C: @ 0x0816817C - 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, r0, #0x10 - asrs r4, r0, #0x10 - movs r0, #0x30 - ldrsh r1, [r2, r0] - cmp r4, r1 - bgt _081681A0 - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - cmp r0, r1 - bge _081681A8 - cmp r4, r1 - blt _081681B0 -_081681A0: - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - cmp r0, r1 - bgt _081681B0 -_081681A8: - ldrh r0, [r2, #0x30] - strh r0, [r2, #0x20] - ldr r0, _081681B8 - str r0, [r2, #0x1c] -_081681B0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081681B8: .4byte sub_08007140 - thumb_func_end sub_0816817C - - thumb_func_start sub_081681BC -sub_081681BC: @ 0x081681BC - bx lr - .align 2, 0 - thumb_func_end sub_081681BC - - thumb_func_start SetControllerToWally -SetControllerToWally: @ 0x081681C0 - ldr r1, _081681EC - ldr r0, _081681F0 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081681F4 - str r1, [r0] - ldr r2, _081681F8 - ldr r0, [r2] - adds r0, #0x94 - movs r1, #0 - strb r1, [r0] - ldr r0, [r2] - adds r0, #0x95 - strb r1, [r0] - ldr r0, [r2] - adds r0, #0x96 - strb r1, [r0] - ldr r0, [r2] - adds r0, #0x97 - strb r1, [r0] - bx lr - .align 2, 0 -_081681EC: .4byte gUnknown_3005AC0 -_081681F0: .4byte gUnknown_2023D08 -_081681F4: .4byte sub_081681FC -_081681F8: .4byte gUnknown_2024140 - thumb_func_end SetControllerToWally - - thumb_func_start sub_081681FC -sub_081681FC: @ 0x081681FC - push {lr} - ldr r2, _08168230 - ldr r1, _08168234 - ldr r0, _08168238 - ldrb r3, [r0] - lsls r0, r3, #2 - adds r0, r0, r1 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _08168248 - ldr r0, _0816823C - lsls r1, r3, #9 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0x38 - bhi _08168244 - ldr r0, _08168240 - ldrb r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl _call_via_r0 - b _08168248 - .align 2, 0 -_08168230: .4byte gUnknown_2023D0C -_08168234: .4byte gUnknown_82FACB4 -_08168238: .4byte gUnknown_2023D08 -_0816823C: .4byte gUnknown_2022D08 -_08168240: .4byte gUnknown_85C0AA4 -_08168244: - bl WallyBufferExecCompleted -_08168248: - pop {r0} - bx r0 - thumb_func_end sub_081681FC - - thumb_func_start WallyHandleActions -WallyHandleActions: @ 0x0816824C - push {r4, r5, lr} - ldr r1, _08168268 - ldr r0, [r1] - adds r0, #0x94 - ldrb r0, [r0] - adds r4, r1, #0 - cmp r0, #5 - bls _0816825E - b _0816836C -_0816825E: - lsls r0, r0, #2 - ldr r1, _0816826C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08168268: .4byte gUnknown_2024140 -_0816826C: .4byte _08168270 -_08168270: @ jump table - .4byte _08168288 @ case 0 - .4byte _0816829A @ case 1 - .4byte _081682B8 @ case 2 - .4byte _081682D6 @ case 3 - .4byte _08168310 @ case 4 - .4byte _08168348 @ case 5 -_08168288: - ldr r0, [r4] - adds r0, #0x96 - movs r1, #0x40 - strb r1, [r0] - ldr r1, [r4] - adds r1, #0x94 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_0816829A: - ldr r1, [r4] - adds r1, #0x96 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _0816836C - movs r0, #5 - bl sub_080A306C - movs r0, #1 - movs r1, #0 - b _081682EC -_081682B8: - ldr r1, [r4] - adds r1, #0x96 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _0816836C - movs r0, #5 - bl sub_080A306C - movs r0, #1 - movs r1, #0 - b _081682EC -_081682D6: - ldr r1, [r4] - adds r1, #0x96 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _0816836C - movs r0, #1 - movs r1, #9 -_081682EC: - movs r2, #0 - bl BtlController_EmitTwoReturnValues - bl WallyBufferExecCompleted - ldr r1, [r4] - adds r1, #0x94 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r0, [r4] - adds r0, #0x95 - strb r5, [r0] - ldr r0, [r4] - adds r0, #0x96 - movs r1, #0x40 - strb r1, [r0] - b _0816836C -_08168310: - ldr r1, [r4] - adds r1, #0x96 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0816836C - movs r0, #5 - bl sub_080A306C - movs r0, #0 - bl MoveSelectionDestroyCursorAt - movs r0, #1 - movs r1, #0 - bl ActionSelectionCreateCursorAt - ldr r0, [r4] - adds r0, #0x96 - movs r1, #0x40 - strb r1, [r0] - ldr r1, [r4] - adds r1, #0x94 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0816836C -_08168348: - ldr r1, [r4] - adds r1, #0x96 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0816836C - movs r0, #5 - bl sub_080A306C - movs r0, #1 - movs r1, #1 - movs r2, #0 - bl BtlController_EmitTwoReturnValues - bl WallyBufferExecCompleted -_0816836C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WallyHandleActions - - thumb_func_start sub_08168374 -sub_08168374: @ 0x08168374 - push {lr} - ldr r2, _0816839C - ldr r1, _081683A0 - ldr r0, _081683A4 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _081683A8 - cmp r1, r0 - bne _08168398 - bl WallyBufferExecCompleted -_08168398: - pop {r0} - bx r0 - .align 2, 0 -_0816839C: .4byte gUnknown_20205AC -_081683A0: .4byte gUnknown_2023E88 -_081683A4: .4byte gUnknown_2023D08 -_081683A8: .4byte sub_08007140 - thumb_func_end sub_08168374 - - thumb_func_start sub_081683AC -sub_081683AC: @ 0x081683AC - push {lr} - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _081683BE - bl WallyBufferExecCompleted -_081683BE: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081683AC - - thumb_func_start CompleteOnFinishedAnimation -CompleteOnFinishedAnimation: @ 0x081683C4 - push {lr} - ldr r0, _081683D8 - ldrb r0, [r0] - cmp r0, #0 - bne _081683D2 - bl WallyBufferExecCompleted -_081683D2: - pop {r0} - bx r0 - .align 2, 0 -_081683D8: .4byte gUnknown_202415D - thumb_func_end CompleteOnFinishedAnimation - - thumb_func_start OpenBagAfterPaletteFade -OpenBagAfterPaletteFade: @ 0x081683DC - push {lr} - ldr r0, _08168408 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08168404 - ldr r1, _0816840C - ldr r0, _08168410 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08168414 - str r1, [r0] - bl sub_080A8BBC - bl FreeAllWindowBuffers - bl DoWallyTutorialBagMenu -_08168404: - pop {r0} - bx r0 - .align 2, 0 -_08168408: .4byte gUnknown_2037C74 -_0816840C: .4byte gUnknown_3005AC0 -_08168410: .4byte gUnknown_2023D08 -_08168414: .4byte CompleteOnChosenItem - thumb_func_end OpenBagAfterPaletteFade - - thumb_func_start CompleteOnChosenItem -CompleteOnChosenItem: @ 0x08168418 - push {lr} - ldr r0, _08168444 - ldr r1, [r0, #4] - ldr r0, _08168448 - cmp r1, r0 - bne _0816843E - ldr r0, _0816844C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0816843E - ldr r0, _08168450 - ldrh r1, [r0] - movs r0, #1 - bl BtlController_EmitOneReturnValue - bl WallyBufferExecCompleted -_0816843E: - pop {r0} - bx r0 - .align 2, 0 -_08168444: .4byte gUnknown_3002360 -_08168448: .4byte BattleMainCB2 -_0816844C: .4byte gUnknown_2037C74 -_08168450: .4byte gUnknown_203CB48 - thumb_func_end CompleteOnChosenItem - - thumb_func_start sub_08168454 -sub_08168454: @ 0x08168454 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r4, _081685F0 - ldr r0, [r4] - ldr r5, _081685F4 - ldrb r2, [r5] - ldr r1, [r0, #4] - lsls r3, r2, #1 - adds r0, r3, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r7, #0x88 - adds r0, r7, #0 - ands r0, r1 - cmp r0, #0 - bne _0816848C - ldr r0, _081685F8 - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _081685FC - adds r1, r1, r0 - adds r0, r2, #0 - bl sub_08172CD4 -_0816848C: - ldr r1, [r4] - ldrb r0, [r5] - movs r6, #2 - adds r2, r6, #0 - eors r2, r0 - ldr r1, [r1, #4] - lsls r3, r2, #1 - adds r0, r3, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r7, #0 - ands r0, r1 - cmp r0, #0 - bne _081684BE - ldr r0, _081685F8 - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _081685FC - adds r1, r1, r0 - adds r0, r2, #0 - bl sub_08172CD4 -_081684BE: - ldr r0, [r4] - ldrb r2, [r5] - ldr r3, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0] - movs r4, #8 - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - beq _081684DA - b _081685E4 -_081684DA: - adds r1, r2, #0 - eors r1, r6 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0] - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - bne _081685E4 - ldr r0, _08168600 - mov r8, r0 - ldr r7, _08168604 - adds r0, r2, r7 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - mov r4, r8 - adds r4, #0x1c - adds r0, r0, r4 - ldr r3, [r0] - ldr r0, _08168608 - cmp r3, r0 - bne _081685E4 - ldr r0, _0816860C - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r0, [r0] - cmp r0, r3 - bne _081685E4 - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08168582 - ldr r0, _08168610 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08168582 - ldrb r0, [r5] - eors r0, r6 - adds r0, r0, r7 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - bl DestroySprite - ldr r4, _08168614 - ldrb r0, [r5] - adds r1, r6, #0 - eors r1, r0 - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, _081685F8 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _081685FC - adds r1, r1, r2 - movs r2, #0 - bl UpdateHealthboxAttribute - ldrb r0, [r5] - eors r0, r6 - bl sub_08076320 - ldrb r0, [r5] - eors r0, r6 - adds r0, r0, r4 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible -_08168582: - ldr r1, _08168604 - ldr r4, _081685F4 - ldrb r0, [r4] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08168600 - adds r0, r0, r1 - bl DestroySprite - ldr r5, _08168614 - ldrb r1, [r4] - adds r0, r1, r5 - ldrb r0, [r0] - ldr r2, _081685F8 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _081685FC - adds r1, r1, r2 - movs r2, #0 - bl UpdateHealthboxAttribute - ldrb r0, [r4] - bl sub_08076320 - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible - ldr r0, _081685F0 - ldr r0, [r0] - ldr r2, [r0, #8] - ldrb r1, [r2, #9] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #9] - ldr r1, _08168618 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0816861C - str r1, [r0] -_081685E4: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081685F0: .4byte gUnknown_2024174 -_081685F4: .4byte gUnknown_2023D08 -_081685F8: .4byte gUnknown_2023D12 -_081685FC: .4byte gUnknown_2024190 -_08168600: .4byte gUnknown_20205AC -_08168604: .4byte gUnknown_3005ADC -_08168608: .4byte sub_08007140 -_0816860C: .4byte gUnknown_2023E88 -_08168610: .4byte gUnknown_2022C90 -_08168614: .4byte gUnknown_3005AD0 -_08168618: .4byte gUnknown_3005AC0 -_0816861C: .4byte sub_08168620 - thumb_func_end sub_08168454 - - thumb_func_start sub_08168620 -sub_08168620: @ 0x08168620 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r4, #0 - ldr r2, _08168718 - ldr r0, _0816871C - ldr r1, _08168720 - mov r8, r1 - ldrb r3, [r1] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _08168724 - cmp r1, r0 - bne _0816864A - movs r4, #1 -_0816864A: - cmp r4, #0 - beq _0816870C - ldr r7, _08168728 - ldr r0, [r7] - ldr r4, [r0, #4] - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r2, r0, r4 - ldrb r1, [r2, #1] - movs r5, #1 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _0816870C - movs r6, #2 - adds r1, r6, #0 - eors r1, r3 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r1, [r0, #1] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _0816870C - ldrb r1, [r2] - movs r3, #0x7f - adds r0, r3, #0 - ands r0, r1 - strb r0, [r2] - ldr r0, [r7] - mov r1, r8 - ldrb r2, [r1] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #1] - movs r4, #2 - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r2 - strb r0, [r1, #1] - ldr r2, [r7] - mov r1, r8 - ldrb r0, [r1] - adds r1, r6, #0 - eors r1, r0 - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - ands r3, r1 - strb r3, [r0] - ldr r2, [r7] - mov r1, r8 - ldrb r0, [r1] - adds r1, r6, #0 - eors r1, r0 - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #1] - ands r4, r1 - strb r4, [r0, #1] - ldr r4, _0816872C - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl FreeSpritePaletteByTag - ldr r0, _08168730 - movs r1, #0xa - bl CreateTask - ldr r2, _08168734 - mov r0, r8 - ldrb r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r2, [r0] - movs r0, #0x64 - muls r0, r2, r0 - ldr r2, _08168738 - adds r0, r0, r2 - bl HandleLowHpMusicChange - bl WallyBufferExecCompleted -_0816870C: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08168718: .4byte gUnknown_20205AC -_0816871C: .4byte gUnknown_3005AD0 -_08168720: .4byte gUnknown_2023D08 -_08168724: .4byte sub_08007140 -_08168728: .4byte gUnknown_2024174 -_0816872C: .4byte 0x000027F9 -_08168730: .4byte sub_08058D10 -_08168734: .4byte gUnknown_2023D12 -_08168738: .4byte gUnknown_2024190 - thumb_func_end sub_08168620 - - thumb_func_start CompleteOnHealthbarDone -CompleteOnHealthbarDone: @ 0x0816873C - push {r4, r5, r6, lr} - ldr r5, _0816877C - ldrb r0, [r5] - ldr r6, _08168780 - adds r1, r0, r6 - ldrb r1, [r1] - movs r2, #0 - movs r3, #0 - bl MoveBattleBar - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible - lsls r4, r4, #0x10 - asrs r1, r4, #0x10 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _08168784 - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r0, [r0] - movs r2, #0 - bl sub_080726F4 - b _0816879E - .align 2, 0 -_0816877C: .4byte gUnknown_2023D08 -_08168780: .4byte gUnknown_3005AD0 -_08168784: - ldr r2, _081687A4 - ldrb r1, [r5] - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r2, [r0] - movs r0, #0x64 - muls r0, r2, r0 - ldr r2, _081687A8 - adds r0, r0, r2 - bl HandleLowHpMusicChange - bl WallyBufferExecCompleted -_0816879E: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081687A4: .4byte gUnknown_2023D12 -_081687A8: .4byte gUnknown_2024190 - thumb_func_end CompleteOnHealthbarDone - - thumb_func_start DoHitAnimBlinkSpriteEffect -DoHitAnimBlinkSpriteEffect: @ 0x081687AC - push {r4, lr} - ldr r1, _081687E8 - ldr r0, _081687EC - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - ldr r2, _081687F0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, r0, r2 - movs r1, #0x30 - ldrsh r0, [r4, r1] - cmp r0, #0x20 - bne _081687F8 - movs r3, #0 - movs r0, #0 - strh r0, [r4, #0x30] - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - subs r0, #5 - ands r0, r1 - strb r0, [r2] - ldr r0, _081687F4 - strb r3, [r0] - bl WallyBufferExecCompleted - b _08168822 - .align 2, 0 -_081687E8: .4byte gUnknown_2023E88 -_081687EC: .4byte gUnknown_2023D08 -_081687F0: .4byte gUnknown_20205AC -_081687F4: .4byte gUnknown_202415D -_081687F8: - ldrh r0, [r4, #0x30] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0816881C - adds r3, r4, #0 - adds r3, #0x3e - ldrb r2, [r3] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_0816881C: - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] -_08168822: - pop {r4} - pop {r0} - bx r0 - thumb_func_end DoHitAnimBlinkSpriteEffect - - thumb_func_start sub_08168828 -sub_08168828: @ 0x08168828 - push {r4, r5, r6, lr} - ldr r0, _08168884 - ldr r0, [r0] - ldr r6, _08168888 - ldrb r2, [r6] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _0816887C - ldr r5, _0816888C - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _08168890 - adds r0, r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - ldr r1, _08168894 - ldrb r0, [r6] - adds r0, r0, r1 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible - bl WallyBufferExecCompleted -_0816887C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08168884: .4byte gUnknown_2024174 -_08168888: .4byte gUnknown_2023D08 -_0816888C: .4byte gUnknown_2023E88 -_08168890: .4byte gUnknown_20205AC -_08168894: .4byte gUnknown_3005AD0 - thumb_func_end sub_08168828 - - thumb_func_start sub_08168898 -sub_08168898: @ 0x08168898 - push {lr} - ldr r2, _081688C0 - ldr r1, _081688C4 - ldr r0, _081688C8 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _081688CC - cmp r1, r0 - bne _081688BC - bl WallyBufferExecCompleted -_081688BC: - pop {r0} - bx r0 - .align 2, 0 -_081688C0: .4byte gUnknown_20205AC -_081688C4: .4byte gUnknown_2023E88 -_081688C8: .4byte gUnknown_2023D08 -_081688CC: .4byte sub_08007140 - thumb_func_end sub_08168898 - - thumb_func_start sub_081688D0 -sub_081688D0: @ 0x081688D0 - push {lr} - ldr r0, _081688F8 - ldr r2, [r0] - ldr r0, _081688FC - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _081688F2 - bl WallyBufferExecCompleted -_081688F2: - pop {r0} - bx r0 - .align 2, 0 -_081688F8: .4byte gUnknown_2024174 -_081688FC: .4byte gUnknown_2023D08 - thumb_func_end sub_081688D0 - - thumb_func_start WallyBufferExecCompleted -WallyBufferExecCompleted: @ 0x08168900 - push {r4, lr} - sub sp, #4 - ldr r1, _08168940 - ldr r4, _08168944 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08168948 - str r1, [r0] - ldr r0, _0816894C - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _08168954 - bl GetMultiplayerId - mov r1, sp - strb r0, [r1] - movs r0, #2 - movs r1, #4 - mov r2, sp - bl PrepareBufferDataTransferLink - ldr r1, _08168950 - ldrb r0, [r4] - lsls r0, r0, #9 - adds r0, r0, r1 - movs r1, #0x38 - strb r1, [r0] - b _08168966 - .align 2, 0 -_08168940: .4byte gUnknown_3005AC0 -_08168944: .4byte gUnknown_2023D08 -_08168948: .4byte sub_081681FC -_0816894C: .4byte gUnknown_2022C90 -_08168950: .4byte gUnknown_2022D08 -_08168954: - ldr r2, _08168970 - ldr r1, _08168974 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - ldr r0, [r2] - bics r0, r1 - str r0, [r2] -_08168966: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08168970: .4byte gUnknown_2023D0C -_08168974: .4byte gUnknown_82FACB4 - thumb_func_end WallyBufferExecCompleted - - thumb_func_start sub_08168978 -sub_08168978: @ 0x08168978 - push {lr} - ldr r0, _081689A0 - ldr r2, [r0] - ldr r0, _081689A4 - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _0816899A - bl WallyBufferExecCompleted -_0816899A: - pop {r0} - bx r0 - .align 2, 0 -_081689A0: .4byte gUnknown_2024174 -_081689A4: .4byte gUnknown_2023D08 - thumb_func_end sub_08168978 - - thumb_func_start WallyHandleGetMonData -WallyHandleGetMonData: @ 0x081689A8 - push {r4, r5, r6, lr} - sub sp, #0x100 - movs r6, #0 - ldr r1, _081689D4 - ldr r0, _081689D8 - ldrb r2, [r0] - lsls r0, r2, #9 - adds r1, #2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, #0 - bne _081689E0 - ldr r0, _081689DC - lsls r1, r2, #1 - adds r1, r1, r0 - ldrb r0, [r1] - mov r1, sp - bl CopyWallyMonData - adds r6, r0, #0 - b _08168A02 - .align 2, 0 -_081689D4: .4byte gUnknown_2022D08 -_081689D8: .4byte gUnknown_2023D08 -_081689DC: .4byte gUnknown_2023D12 -_081689E0: - ldrb r4, [r1] - movs r5, #0 -_081689E4: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _081689FA - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - mov r2, sp - adds r1, r2, r6 - bl CopyWallyMonData - adds r6, r6, r0 -_081689FA: - lsrs r4, r4, #1 - adds r5, #1 - cmp r5, #5 - ble _081689E4 -_08168A02: - lsls r1, r6, #0x10 - lsrs r1, r1, #0x10 - movs r0, #1 - mov r2, sp - bl BtlController_EmitDataTransfer - bl WallyBufferExecCompleted - add sp, #0x100 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WallyHandleGetMonData - - thumb_func_start CopyWallyMonData -CopyWallyMonData: @ 0x08168A1C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x90 - adds r7, r1, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r6, #0 - ldr r2, _08168A50 - ldr r3, _08168A54 - ldrb r0, [r3] - lsls r0, r0, #9 - adds r1, r2, #1 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0x3b - bls _08168A46 - bl _081691B2 -_08168A46: - lsls r0, r0, #2 - ldr r1, _08168A58 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08168A50: .4byte gUnknown_2022D08 -_08168A54: .4byte gUnknown_2023D08 -_08168A58: .4byte _08168A5C -_08168A5C: @ jump table - .4byte _08168B4C @ case 0 - .4byte _08168D70 @ case 1 - .4byte _08168D80 @ case 2 - .4byte _08168D90 @ case 3 - .4byte _08168DF8 @ case 4 - .4byte _08168DF8 @ case 5 - .4byte _08168DF8 @ case 6 - .4byte _08168DF8 @ case 7 - .4byte _08168E14 @ case 8 - .4byte _08168E50 @ case 9 - .4byte _08168E50 @ case 10 - .4byte _08168E50 @ case 11 - .4byte _08168E50 @ case 12 - .4byte _081691B2 @ case 13 - .4byte _081691B2 @ case 14 - .4byte _081691B2 @ case 15 - .4byte _081691B2 @ case 16 - .4byte _08168E6C @ case 17 - .4byte _08168E7C @ case 18 - .4byte _08168EAC @ case 19 - .4byte _08168EBC @ case 20 - .4byte _08168ECC @ case 21 - .4byte _08168EDC @ case 22 - .4byte _08168EEC @ case 23 - .4byte _08168EFC @ case 24 - .4byte _08168F0C @ case 25 - .4byte _08168F1C @ case 26 - .4byte _08168F2C @ case 27 - .4byte _08168F3C @ case 28 - .4byte _08168F4C @ case 29 - .4byte _08168F5C @ case 30 - .4byte _08168F6C @ case 31 - .4byte _08168FBC @ case 32 - .4byte _08168FCC @ case 33 - .4byte _08168FDC @ case 34 - .4byte _08168FEC @ case 35 - .4byte _08168FFC @ case 36 - .4byte _0816900C @ case 37 - .4byte _0816901C @ case 38 - .4byte _0816902C @ case 39 - .4byte _0816903C @ case 40 - .4byte _08169070 @ case 41 - .4byte _08169080 @ case 42 - .4byte _08169090 @ case 43 - .4byte _081690A0 @ case 44 - .4byte _081690B0 @ case 45 - .4byte _081690C0 @ case 46 - .4byte _081690D0 @ case 47 - .4byte _081690E0 @ case 48 - .4byte _08169100 @ case 49 - .4byte _08169110 @ case 50 - .4byte _08169120 @ case 51 - .4byte _08169130 @ case 52 - .4byte _08169140 @ case 53 - .4byte _08169150 @ case 54 - .4byte _08169160 @ case 55 - .4byte _08169170 @ case 56 - .4byte _08169180 @ case 57 - .4byte _08169190 @ case 58 - .4byte _081691A0 @ case 59 -_08168B4C: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _08168D60 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - mov r1, sp - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0xc - bl GetMonData - mov r1, sp - strh r0, [r1, #0x2e] - movs r6, #0 - add r0, sp, #0x24 - mov sb, r0 - movs r1, #0x3b - add r1, sp - mov sl, r1 - mov r2, sp - adds r2, #0x2b - str r2, [sp, #0x80] - mov r0, sp - adds r0, #0x2a - str r0, [sp, #0x7c] - mov r1, sp - adds r1, #0x68 - str r1, [sp, #0x8c] - adds r2, #5 - str r2, [sp, #0x84] - adds r0, #0x12 - str r0, [sp, #0x88] - mov r8, r4 - add r4, sp, #0xc -_08168B98: - adds r1, r6, #0 - adds r1, #0xd - mov r0, r8 - bl GetMonData - strh r0, [r4] - adds r1, r6, #0 - adds r1, #0x11 - mov r0, r8 - bl GetMonData - mov r2, sb - adds r1, r2, r6 - strb r0, [r1] - adds r4, #2 - adds r6, #1 - cmp r6, #3 - ble _08168B98 - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _08168D60 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x15 - bl GetMonData - mov r1, sl - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x20 - bl GetMonData - ldr r2, [sp, #0x80] - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0x19 - bl GetMonData - str r0, [sp, #0x44] - adds r0, r4, #0 - movs r1, #0x27 - bl GetMonData - mov r3, sp - movs r5, #0x1f - ands r0, r5 - ldrb r2, [r3, #0x14] - movs r1, #0x20 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x14] - adds r0, r4, #0 - movs r1, #0x28 - bl GetMonData - mov r3, sp - movs r6, #0x1f - ands r0, r6 - lsls r0, r0, #5 - ldrh r2, [r3, #0x14] - ldr r1, _08168D64 - ands r1, r2 - orrs r1, r0 - strh r1, [r3, #0x14] - adds r0, r4, #0 - movs r1, #0x29 - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, r0, #2 - ldrb r2, [r3, #0x15] - movs r1, #0x7d - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x15] - adds r0, r4, #0 - movs r1, #0x2a - bl GetMonData - movs r1, #0x1f - ands r1, r0 - lsls r1, r1, #0xf - ldr r0, [sp, #0x14] - ldr r2, _08168D68 - ands r0, r2 - orrs r0, r1 - str r0, [sp, #0x14] - adds r0, r4, #0 - movs r1, #0x2b - bl GetMonData - mov r3, sp - ands r0, r6 - lsls r0, r0, #4 - ldrh r2, [r3, #0x16] - ldr r1, _08168D6C - ands r1, r2 - orrs r1, r0 - strh r1, [r3, #0x16] - adds r0, r4, #0 - movs r1, #0x2c - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, r0, #1 - ldrb r2, [r3, #0x17] - movs r1, #0x3f - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x17] - adds r0, r4, #0 - movs r1, #0 - bl GetMonData - str r0, [sp, #0x48] - adds r0, r4, #0 - movs r1, #0x37 - bl GetMonData - str r0, [sp, #0x4c] - adds r0, r4, #0 - movs r1, #0x38 - bl GetMonData - ldr r1, [sp, #0x7c] - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - mov r1, sp - strh r0, [r1, #0x28] - adds r0, r4, #0 - movs r1, #0x3a - bl GetMonData - mov r1, sp - strh r0, [r1, #0x2c] - adds r0, r4, #0 - movs r1, #0x3b - bl GetMonData - mov r1, sp - strh r0, [r1, #2] - adds r0, r4, #0 - movs r1, #0x3c - bl GetMonData - mov r1, sp - strh r0, [r1, #4] - adds r0, r4, #0 - movs r1, #0x3d - bl GetMonData - mov r1, sp - strh r0, [r1, #6] - adds r0, r4, #0 - movs r1, #0x3e - bl GetMonData - mov r1, sp - strh r0, [r1, #8] - adds r0, r4, #0 - movs r1, #0x3f - bl GetMonData - mov r1, sp - strh r0, [r1, #0xa] - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - mov r3, sp - movs r1, #1 - ands r0, r1 - lsls r0, r0, #6 - ldrb r2, [r3, #0x17] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x17] - adds r0, r4, #0 - movs r1, #0x2e - bl GetMonData - mov r3, sp - lsls r0, r0, #7 - ldrb r2, [r3, #0x17] - movs r1, #0x7f - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x17] - adds r0, r4, #0 - movs r1, #1 - bl GetMonData - str r0, [sp, #0x54] - adds r0, r4, #0 - movs r1, #2 - ldr r2, [sp, #0x8c] - bl GetMonData - ldr r0, [sp, #0x84] - ldr r1, [sp, #0x8c] - bl StringCopy10 - adds r0, r4, #0 - movs r1, #7 - ldr r2, [sp, #0x88] - bl GetMonData - mov r2, sp - movs r6, #0 -_08168D50: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, #1 - cmp r6, #0x57 - bls _08168D50 - b _081691B2 - .align 2, 0 -_08168D60: .4byte gUnknown_2024190 -_08168D64: .4byte 0xFFFFFC1F -_08168D68: .4byte 0xFFF07FFF -_08168D6C: .4byte 0xFFFFFE0F -_08168D70: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08168D7C - adds r0, r0, r1 - movs r1, #0xb - b _081690EA - .align 2, 0 -_08168D7C: .4byte gUnknown_2024190 -_08168D80: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08168D8C - adds r0, r0, r1 - movs r1, #0xc - b _081690EA - .align 2, 0 -_08168D8C: .4byte gUnknown_2024190 -_08168D90: - movs r6, #0 - add r2, sp, #0x58 - mov sb, r2 - add r0, sp, #0x60 - mov sl, r0 - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _08168DF4 - adds r4, r1, r0 - mov r8, sb -_08168DA6: - adds r1, r6, #0 - adds r1, #0xd - adds r0, r4, #0 - bl GetMonData - mov r1, r8 - strh r0, [r1] - adds r1, r6, #0 - adds r1, #0x11 - adds r0, r4, #0 - bl GetMonData - mov r2, sl - adds r1, r2, r6 - strb r0, [r1] - movs r0, #2 - add r8, r0 - adds r6, #1 - cmp r6, #3 - ble _08168DA6 - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08168DF4 - adds r0, r0, r1 - movs r1, #0x15 - bl GetMonData - mov r1, sb - strb r0, [r1, #0xc] - mov r2, sb - movs r6, #0 -_08168DE4: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, #1 - cmp r6, #0xf - bls _08168DE4 - b _081691B2 - .align 2, 0 -_08168DF4: .4byte gUnknown_2024190 -_08168DF8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08168E10 - adds r0, r0, r1 - ldrb r1, [r3] - lsls r1, r1, #9 - adds r2, #1 - adds r1, r1, r2 - ldrb r1, [r1] - adds r1, #9 - b _081690EA - .align 2, 0 -_08168E10: .4byte gUnknown_2024190 -_08168E14: - movs r6, #0 - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r2, _08168E4C - mov r8, r2 -_08168E20: - adds r1, r6, #0 - adds r1, #0x11 - mov r2, r8 - adds r0, r4, r2 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, #1 - cmp r6, #3 - ble _08168E20 - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08168E4C - adds r0, r0, r1 - movs r1, #0x15 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, #1 - b _081691B2 - .align 2, 0 -_08168E4C: .4byte gUnknown_2024190 -_08168E50: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08168E68 - adds r0, r0, r1 - ldrb r1, [r3] - lsls r1, r1, #9 - adds r2, #1 - adds r1, r1, r2 - ldrb r1, [r1] - adds r1, #8 - b _081691AA - .align 2, 0 -_08168E68: .4byte gUnknown_2024190 -_08168E6C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08168E78 - adds r0, r0, r1 - movs r1, #1 - b _08168E86 - .align 2, 0 -_08168E78: .4byte gUnknown_2024190 -_08168E7C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08168EA8 - adds r0, r0, r1 - movs r1, #0x19 -_08168E86: - bl GetMonData - adds r1, r0, #0 - strb r1, [r7] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - lsrs r0, r0, #8 - strb r0, [r7, #1] - movs r0, #0xff - lsls r0, r0, #0x10 - ands r0, r1 - lsrs r0, r0, #0x10 - strb r0, [r7, #2] - movs r6, #3 - b _081691B2 - .align 2, 0 -_08168EA8: .4byte gUnknown_2024190 -_08168EAC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08168EB8 - adds r0, r0, r1 - movs r1, #0x1a - b _081691AA - .align 2, 0 -_08168EB8: .4byte gUnknown_2024190 -_08168EBC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08168EC8 - adds r0, r0, r1 - movs r1, #0x1b - b _081691AA - .align 2, 0 -_08168EC8: .4byte gUnknown_2024190 -_08168ECC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08168ED8 - adds r0, r0, r1 - movs r1, #0x1c - b _081691AA - .align 2, 0 -_08168ED8: .4byte gUnknown_2024190 -_08168EDC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08168EE8 - adds r0, r0, r1 - movs r1, #0x1d - b _081691AA - .align 2, 0 -_08168EE8: .4byte gUnknown_2024190 -_08168EEC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08168EF8 - adds r0, r0, r1 - movs r1, #0x1e - b _081691AA - .align 2, 0 -_08168EF8: .4byte gUnknown_2024190 -_08168EFC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08168F08 - adds r0, r0, r1 - movs r1, #0x1f - b _081691AA - .align 2, 0 -_08168F08: .4byte gUnknown_2024190 -_08168F0C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08168F18 - adds r0, r0, r1 - movs r1, #0x20 - b _081691AA - .align 2, 0 -_08168F18: .4byte gUnknown_2024190 -_08168F1C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08168F28 - adds r0, r0, r1 - movs r1, #0x22 - b _081691AA - .align 2, 0 -_08168F28: .4byte gUnknown_2024190 -_08168F2C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08168F38 - adds r0, r0, r1 - movs r1, #0x23 - b _081691AA - .align 2, 0 -_08168F38: .4byte gUnknown_2024190 -_08168F3C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08168F48 - adds r0, r0, r1 - movs r1, #0x24 - b _081691AA - .align 2, 0 -_08168F48: .4byte gUnknown_2024190 -_08168F4C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08168F58 - adds r0, r0, r1 - movs r1, #0x25 - b _081691AA - .align 2, 0 -_08168F58: .4byte gUnknown_2024190 -_08168F5C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08168F68 - adds r0, r0, r1 - movs r1, #0x26 - b _081691AA - .align 2, 0 -_08168F68: .4byte gUnknown_2024190 -_08168F6C: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _08168FB8 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x27 - bl GetMonData - strb r0, [r7] - adds r0, r4, #0 - movs r1, #0x28 - bl GetMonData - strb r0, [r7, #1] - adds r0, r4, #0 - movs r1, #0x29 - bl GetMonData - strb r0, [r7, #2] - adds r0, r4, #0 - movs r1, #0x2a - bl GetMonData - strb r0, [r7, #3] - adds r0, r4, #0 - movs r1, #0x2b - bl GetMonData - strb r0, [r7, #4] - adds r0, r4, #0 - movs r1, #0x2c - bl GetMonData - strb r0, [r7, #5] - movs r6, #6 - b _081691B2 - .align 2, 0 -_08168FB8: .4byte gUnknown_2024190 -_08168FBC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08168FC8 - adds r0, r0, r1 - movs r1, #0x27 - b _081691AA - .align 2, 0 -_08168FC8: .4byte gUnknown_2024190 -_08168FCC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08168FD8 - adds r0, r0, r1 - movs r1, #0x28 - b _081691AA - .align 2, 0 -_08168FD8: .4byte gUnknown_2024190 -_08168FDC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08168FE8 - adds r0, r0, r1 - movs r1, #0x29 - b _081691AA - .align 2, 0 -_08168FE8: .4byte gUnknown_2024190 -_08168FEC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08168FF8 - adds r0, r0, r1 - movs r1, #0x2a - b _081691AA - .align 2, 0 -_08168FF8: .4byte gUnknown_2024190 -_08168FFC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169008 - adds r0, r0, r1 - movs r1, #0x2b - b _081691AA - .align 2, 0 -_08169008: .4byte gUnknown_2024190 -_0816900C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169018 - adds r0, r0, r1 - movs r1, #0x2c - b _081691AA - .align 2, 0 -_08169018: .4byte gUnknown_2024190 -_0816901C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169028 - adds r0, r0, r1 - movs r1, #0 - b _08169046 - .align 2, 0 -_08169028: .4byte gUnknown_2024190 -_0816902C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169038 - adds r0, r0, r1 - movs r1, #9 - b _081690EA - .align 2, 0 -_08169038: .4byte gUnknown_2024190 -_0816903C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0816906C - adds r0, r0, r1 - movs r1, #0x37 -_08169046: - bl GetMonData - adds r1, r0, #0 - strb r1, [r7] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - lsrs r0, r0, #8 - strb r0, [r7, #1] - movs r0, #0xff - lsls r0, r0, #0x10 - ands r0, r1 - lsrs r0, r0, #0x10 - strb r0, [r7, #2] - lsrs r0, r1, #0x18 - strb r0, [r7, #3] - movs r6, #4 - b _081691B2 - .align 2, 0 -_0816906C: .4byte gUnknown_2024190 -_08169070: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0816907C - adds r0, r0, r1 - movs r1, #0x38 - b _081691AA - .align 2, 0 -_0816907C: .4byte gUnknown_2024190 -_08169080: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0816908C - adds r0, r0, r1 - movs r1, #0x39 - b _081690EA - .align 2, 0 -_0816908C: .4byte gUnknown_2024190 -_08169090: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0816909C - adds r0, r0, r1 - movs r1, #0x3a - b _081690EA - .align 2, 0 -_0816909C: .4byte gUnknown_2024190 -_081690A0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081690AC - adds r0, r0, r1 - movs r1, #0x3b - b _081690EA - .align 2, 0 -_081690AC: .4byte gUnknown_2024190 -_081690B0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081690BC - adds r0, r0, r1 - movs r1, #0x3c - b _081690EA - .align 2, 0 -_081690BC: .4byte gUnknown_2024190 -_081690C0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081690CC - adds r0, r0, r1 - movs r1, #0x3d - b _081690EA - .align 2, 0 -_081690CC: .4byte gUnknown_2024190 -_081690D0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081690DC - adds r0, r0, r1 - movs r1, #0x3e - b _081690EA - .align 2, 0 -_081690DC: .4byte gUnknown_2024190 -_081690E0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081690FC - adds r0, r0, r1 - movs r1, #0x3f -_081690EA: - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - strb r0, [r7] - lsrs r0, r0, #8 - strb r0, [r7, #1] - movs r6, #2 - b _081691B2 - .align 2, 0 -_081690FC: .4byte gUnknown_2024190 -_08169100: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0816910C - adds r0, r0, r1 - movs r1, #0x16 - b _081691AA - .align 2, 0 -_0816910C: .4byte gUnknown_2024190 -_08169110: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0816911C - adds r0, r0, r1 - movs r1, #0x17 - b _081691AA - .align 2, 0 -_0816911C: .4byte gUnknown_2024190 -_08169120: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0816912C - adds r0, r0, r1 - movs r1, #0x18 - b _081691AA - .align 2, 0 -_0816912C: .4byte gUnknown_2024190 -_08169130: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0816913C - adds r0, r0, r1 - movs r1, #0x21 - b _081691AA - .align 2, 0 -_0816913C: .4byte gUnknown_2024190 -_08169140: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0816914C - adds r0, r0, r1 - movs r1, #0x2f - b _081691AA - .align 2, 0 -_0816914C: .4byte gUnknown_2024190 -_08169150: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0816915C - adds r0, r0, r1 - movs r1, #0x30 - b _081691AA - .align 2, 0 -_0816915C: .4byte gUnknown_2024190 -_08169160: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0816916C - adds r0, r0, r1 - movs r1, #0x32 - b _081691AA - .align 2, 0 -_0816916C: .4byte gUnknown_2024190 -_08169170: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0816917C - adds r0, r0, r1 - movs r1, #0x33 - b _081691AA - .align 2, 0 -_0816917C: .4byte gUnknown_2024190 -_08169180: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0816918C - adds r0, r0, r1 - movs r1, #0x34 - b _081691AA - .align 2, 0 -_0816918C: .4byte gUnknown_2024190 -_08169190: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0816919C - adds r0, r0, r1 - movs r1, #0x35 - b _081691AA - .align 2, 0 -_0816919C: .4byte gUnknown_2024190 -_081691A0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081691C4 - adds r0, r0, r1 - movs r1, #0x36 -_081691AA: - bl GetMonData - strb r0, [r7] - movs r6, #1 -_081691B2: - adds r0, r6, #0 - add sp, #0x90 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081691C4: .4byte gUnknown_2024190 - thumb_func_end CopyWallyMonData - - thumb_func_start sub_081691C8 -sub_081691C8: @ 0x081691C8 - push {lr} - bl PlayerHandleGetRawMonData - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081691C8 - - thumb_func_start WallyHandleSetMonData -WallyHandleSetMonData: @ 0x081691D4 - push {r4, r5, lr} - ldr r1, _081691F8 - ldr r0, _081691FC - ldrb r2, [r0] - lsls r0, r2, #9 - adds r1, #2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, #0 - bne _08169204 - ldr r0, _08169200 - lsls r1, r2, #1 - adds r1, r1, r0 - ldrb r0, [r1] - bl SetWallyMonData - b _08169222 - .align 2, 0 -_081691F8: .4byte gUnknown_2022D08 -_081691FC: .4byte gUnknown_2023D08 -_08169200: .4byte gUnknown_2023D12 -_08169204: - ldrb r4, [r1] - movs r5, #0 -_08169208: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _08169216 - adds r0, r5, #0 - bl SetWallyMonData -_08169216: - lsrs r4, r4, #1 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #5 - bls _08169208 -_08169222: - bl WallyBufferExecCompleted - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end WallyHandleSetMonData - - thumb_func_start SetWallyMonData -SetWallyMonData: @ 0x0816922C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x34 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _08169264 - ldrb r0, [r0] - lsls r0, r0, #9 - ldr r2, _08169268 - adds r3, r0, r2 - adds r6, r3, #0 - subs r1, r2, #2 - adds r0, r0, r1 - ldrb r0, [r0] - adds r7, r2, #0 - cmp r0, #0x3b - bls _08169258 - bl _08169BF2 -_08169258: - lsls r0, r0, #2 - ldr r1, _0816926C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08169264: .4byte gUnknown_2023D08 -_08169268: .4byte gUnknown_2022D0B -_0816926C: .4byte _08169270 -_08169270: @ jump table - .4byte _08169360 @ case 0 - .4byte _081694F8 @ case 1 - .4byte _08169518 @ case 2 - .4byte _08169538 @ case 3 - .4byte _08169590 @ case 4 - .4byte _08169590 @ case 5 - .4byte _08169590 @ case 6 - .4byte _08169590 @ case 7 - .4byte _081695B8 @ case 8 - .4byte _0816961C @ case 9 - .4byte _0816961C @ case 10 - .4byte _0816961C @ case 11 - .4byte _0816961C @ case 12 - .4byte _08169BF2 @ case 13 - .4byte _08169BF2 @ case 14 - .4byte _08169BF2 @ case 15 - .4byte _08169BF2 @ case 16 - .4byte _0816964C @ case 17 - .4byte _0816966C @ case 18 - .4byte _0816968C @ case 19 - .4byte _081696AC @ case 20 - .4byte _081696CC @ case 21 - .4byte _081696EC @ case 22 - .4byte _0816970C @ case 23 - .4byte _0816972C @ case 24 - .4byte _0816974C @ case 25 - .4byte _0816976C @ case 26 - .4byte _0816978C @ case 27 - .4byte _081697AC @ case 28 - .4byte _081697CC @ case 29 - .4byte _081697EC @ case 30 - .4byte _0816980C @ case 31 - .4byte _0816987C @ case 32 - .4byte _0816989C @ case 33 - .4byte _081698BC @ case 34 - .4byte _081698DC @ case 35 - .4byte _081698FC @ case 36 - .4byte _0816991C @ case 37 - .4byte _0816993C @ case 38 - .4byte _0816995C @ case 39 - .4byte _0816997C @ case 40 - .4byte _0816999C @ case 41 - .4byte _081699BC @ case 42 - .4byte _081699DC @ case 43 - .4byte _081699FC @ case 44 - .4byte _08169A1C @ case 45 - .4byte _08169A3C @ case 46 - .4byte _08169A5C @ case 47 - .4byte _08169A7C @ case 48 - .4byte _08169A9C @ case 49 - .4byte _08169ABC @ case 50 - .4byte _08169ADC @ case 51 - .4byte _08169AFC @ case 52 - .4byte _08169B1C @ case 53 - .4byte _08169B3C @ case 54 - .4byte _08169B5C @ case 55 - .4byte _08169B7C @ case 56 - .4byte _08169B9C @ case 57 - .4byte _08169BBC @ case 58 - .4byte _08169BDC @ case 59 -_08169360: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _081694F4 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0xb - adds r2, r6, #0 - bl SetMonData - adds r2, r6, #0 - adds r2, #0x2e - adds r0, r4, #0 - movs r1, #0xc - bl SetMonData - movs r0, #0 - mov r8, r0 - movs r0, #0x3b - adds r0, r0, r6 - mov sl, r0 - adds r0, r6, #0 - adds r0, #0x2b - str r0, [sp, #0x20] - adds r0, #0x19 - str r0, [sp, #0x28] - adds r0, #4 - str r0, [sp, #0x2c] - adds r0, #4 - str r0, [sp, #0x30] - subs r0, #0x22 - str r0, [sp, #0x1c] - subs r0, #2 - str r0, [sp, #0x18] - adds r0, #4 - str r0, [sp, #0x24] - adds r0, r6, #2 - str r0, [sp, #4] - adds r0, r6, #4 - str r0, [sp, #8] - adds r0, r6, #6 - str r0, [sp, #0xc] - adds r0, #2 - str r0, [sp, #0x10] - adds r0, #2 - str r0, [sp, #0x14] - mov sb, r4 - adds r7, r6, #0 - adds r7, #0x24 - adds r4, r6, #0 - adds r4, #0xc -_081693C6: - mov r1, r8 - adds r1, #0xd - mov r0, sb - adds r2, r4, #0 - bl SetMonData - mov r1, r8 - adds r1, #0x11 - mov r0, sb - adds r2, r7, #0 - bl SetMonData - adds r7, #1 - adds r4, #2 - movs r0, #1 - add r8, r0 - mov r0, r8 - cmp r0, #3 - ble _081693C6 - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _081694F4 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x15 - mov r2, sl - bl SetMonData - adds r0, r4, #0 - movs r1, #0x20 - ldr r2, [sp, #0x20] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x19 - ldr r2, [sp, #0x28] - bl SetMonData - ldrb r0, [r6, #0x14] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1b - mov r1, sp - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x27 - mov r2, sp - bl SetMonData - mov r1, sp - ldrh r0, [r6, #0x14] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x28 - mov r2, sp - bl SetMonData - mov r1, sp - ldrb r0, [r6, #0x15] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x29 - mov r2, sp - bl SetMonData - mov r1, sp - ldr r0, [r6, #0x14] - lsls r0, r0, #0xc - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x2a - mov r2, sp - bl SetMonData - mov r1, sp - ldrh r0, [r6, #0x16] - lsls r0, r0, #0x17 - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x2b - mov r2, sp - bl SetMonData - mov r1, sp - ldrb r0, [r6, #0x17] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x2c - mov r2, sp - bl SetMonData - adds r0, r4, #0 - movs r1, #0 - ldr r2, [sp, #0x2c] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x37 - ldr r2, [sp, #0x30] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x38 - ldr r2, [sp, #0x1c] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x39 - ldr r2, [sp, #0x18] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3a - ldr r2, [sp, #0x24] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3b - ldr r2, [sp, #4] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3c - ldr r2, [sp, #8] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3d - ldr r2, [sp, #0xc] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3e - ldr r2, [sp, #0x10] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3f - ldr r2, [sp, #0x14] - bl SetMonData - b _08169BF2 - .align 2, 0 -_081694F4: .4byte gUnknown_2024190 -_081694F8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169510 - adds r0, r0, r1 - ldr r1, _08169514 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0xb - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169510: .4byte gUnknown_2024190 -_08169514: .4byte gUnknown_2023D08 -_08169518: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169530 - adds r0, r0, r1 - ldr r1, _08169534 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0xc - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169530: .4byte gUnknown_2024190 -_08169534: .4byte gUnknown_2023D08 -_08169538: - movs r0, #0 - mov r8, r0 - movs r0, #0xc - adds r0, r0, r3 - mov sb, r0 - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _0816958C - adds r7, r1, r0 - adds r6, r3, #0 - adds r6, #8 - adds r4, r3, #0 -_08169552: - mov r1, r8 - adds r1, #0xd - adds r0, r7, #0 - adds r2, r4, #0 - bl SetMonData - mov r1, r8 - adds r1, #0x11 - adds r0, r7, #0 - adds r2, r6, #0 - bl SetMonData - adds r6, #1 - adds r4, #2 - movs r0, #1 - add r8, r0 - mov r0, r8 - cmp r0, #3 - ble _08169552 - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0816958C - adds r0, r0, r1 - movs r1, #0x15 - mov r2, sb - bl SetMonData - b _08169BF2 - .align 2, 0 -_0816958C: .4byte gUnknown_2024190 -_08169590: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081695AC - adds r0, r0, r1 - ldr r3, _081695B0 - ldr r1, _081695B4 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r1, r3, #1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, #9 - b _08169634 - .align 2, 0 -_081695AC: .4byte gUnknown_2024190 -_081695B0: .4byte gUnknown_2022D08 -_081695B4: .4byte gUnknown_2023D08 -_081695B8: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _08169614 - adds r4, r4, r0 - ldr r5, _08169618 - ldrb r2, [r5] - lsls r2, r2, #9 - adds r2, r2, r7 - adds r0, r4, #0 - movs r1, #0x11 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #1 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x12 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #2 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x13 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #3 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x14 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #4 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x15 - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169614: .4byte gUnknown_2024190 -_08169618: .4byte gUnknown_2023D08 -_0816961C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169640 - adds r0, r0, r1 - ldr r3, _08169644 - ldr r1, _08169648 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r1, r3, #1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, #8 -_08169634: - adds r3, #3 - adds r2, r2, r3 - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169640: .4byte gUnknown_2024190 -_08169644: .4byte gUnknown_2022D08 -_08169648: .4byte gUnknown_2023D08 -_0816964C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169664 - adds r0, r0, r1 - ldr r1, _08169668 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #1 - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169664: .4byte gUnknown_2024190 -_08169668: .4byte gUnknown_2023D08 -_0816966C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169684 - adds r0, r0, r1 - ldr r1, _08169688 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x19 - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169684: .4byte gUnknown_2024190 -_08169688: .4byte gUnknown_2023D08 -_0816968C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081696A4 - adds r0, r0, r1 - ldr r1, _081696A8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x1a - bl SetMonData - b _08169BF2 - .align 2, 0 -_081696A4: .4byte gUnknown_2024190 -_081696A8: .4byte gUnknown_2023D08 -_081696AC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081696C4 - adds r0, r0, r1 - ldr r1, _081696C8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x1b - bl SetMonData - b _08169BF2 - .align 2, 0 -_081696C4: .4byte gUnknown_2024190 -_081696C8: .4byte gUnknown_2023D08 -_081696CC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081696E4 - adds r0, r0, r1 - ldr r1, _081696E8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x1c - bl SetMonData - b _08169BF2 - .align 2, 0 -_081696E4: .4byte gUnknown_2024190 -_081696E8: .4byte gUnknown_2023D08 -_081696EC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169704 - adds r0, r0, r1 - ldr r1, _08169708 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x1d - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169704: .4byte gUnknown_2024190 -_08169708: .4byte gUnknown_2023D08 -_0816970C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169724 - adds r0, r0, r1 - ldr r1, _08169728 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x1e - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169724: .4byte gUnknown_2024190 -_08169728: .4byte gUnknown_2023D08 -_0816972C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169744 - adds r0, r0, r1 - ldr r1, _08169748 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x1f - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169744: .4byte gUnknown_2024190 -_08169748: .4byte gUnknown_2023D08 -_0816974C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169764 - adds r0, r0, r1 - ldr r1, _08169768 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x20 - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169764: .4byte gUnknown_2024190 -_08169768: .4byte gUnknown_2023D08 -_0816976C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169784 - adds r0, r0, r1 - ldr r1, _08169788 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x22 - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169784: .4byte gUnknown_2024190 -_08169788: .4byte gUnknown_2023D08 -_0816978C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081697A4 - adds r0, r0, r1 - ldr r1, _081697A8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x23 - bl SetMonData - b _08169BF2 - .align 2, 0 -_081697A4: .4byte gUnknown_2024190 -_081697A8: .4byte gUnknown_2023D08 -_081697AC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081697C4 - adds r0, r0, r1 - ldr r1, _081697C8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x24 - bl SetMonData - b _08169BF2 - .align 2, 0 -_081697C4: .4byte gUnknown_2024190 -_081697C8: .4byte gUnknown_2023D08 -_081697CC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081697E4 - adds r0, r0, r1 - ldr r1, _081697E8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x25 - bl SetMonData - b _08169BF2 - .align 2, 0 -_081697E4: .4byte gUnknown_2024190 -_081697E8: .4byte gUnknown_2023D08 -_081697EC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169804 - adds r0, r0, r1 - ldr r1, _08169808 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x26 - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169804: .4byte gUnknown_2024190 -_08169808: .4byte gUnknown_2023D08 -_0816980C: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _08169874 - adds r4, r4, r0 - ldr r5, _08169878 - ldrb r2, [r5] - lsls r2, r2, #9 - adds r2, r2, r7 - adds r0, r4, #0 - movs r1, #0x27 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #1 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x28 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #2 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x29 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #3 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x2a - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #4 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x2b - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #5 - adds r2, r2, r0 - adds r0, r4, #0 - b _0816992C - .align 2, 0 -_08169874: .4byte gUnknown_2024190 -_08169878: .4byte gUnknown_2023D08 -_0816987C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169894 - adds r0, r0, r1 - ldr r1, _08169898 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x27 - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169894: .4byte gUnknown_2024190 -_08169898: .4byte gUnknown_2023D08 -_0816989C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081698B4 - adds r0, r0, r1 - ldr r1, _081698B8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x28 - bl SetMonData - b _08169BF2 - .align 2, 0 -_081698B4: .4byte gUnknown_2024190 -_081698B8: .4byte gUnknown_2023D08 -_081698BC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081698D4 - adds r0, r0, r1 - ldr r1, _081698D8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x29 - bl SetMonData - b _08169BF2 - .align 2, 0 -_081698D4: .4byte gUnknown_2024190 -_081698D8: .4byte gUnknown_2023D08 -_081698DC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081698F4 - adds r0, r0, r1 - ldr r1, _081698F8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x2a - bl SetMonData - b _08169BF2 - .align 2, 0 -_081698F4: .4byte gUnknown_2024190 -_081698F8: .4byte gUnknown_2023D08 -_081698FC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169914 - adds r0, r0, r1 - ldr r1, _08169918 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x2b - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169914: .4byte gUnknown_2024190 -_08169918: .4byte gUnknown_2023D08 -_0816991C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169934 - adds r0, r0, r1 - ldr r1, _08169938 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 -_0816992C: - movs r1, #0x2c - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169934: .4byte gUnknown_2024190 -_08169938: .4byte gUnknown_2023D08 -_0816993C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169954 - adds r0, r0, r1 - ldr r1, _08169958 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0 - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169954: .4byte gUnknown_2024190 -_08169958: .4byte gUnknown_2023D08 -_0816995C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169974 - adds r0, r0, r1 - ldr r1, _08169978 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #9 - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169974: .4byte gUnknown_2024190 -_08169978: .4byte gUnknown_2023D08 -_0816997C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169994 - adds r0, r0, r1 - ldr r1, _08169998 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x37 - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169994: .4byte gUnknown_2024190 -_08169998: .4byte gUnknown_2023D08 -_0816999C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081699B4 - adds r0, r0, r1 - ldr r1, _081699B8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x38 - bl SetMonData - b _08169BF2 - .align 2, 0 -_081699B4: .4byte gUnknown_2024190 -_081699B8: .4byte gUnknown_2023D08 -_081699BC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081699D4 - adds r0, r0, r1 - ldr r1, _081699D8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x39 - bl SetMonData - b _08169BF2 - .align 2, 0 -_081699D4: .4byte gUnknown_2024190 -_081699D8: .4byte gUnknown_2023D08 -_081699DC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081699F4 - adds r0, r0, r1 - ldr r1, _081699F8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x3a - bl SetMonData - b _08169BF2 - .align 2, 0 -_081699F4: .4byte gUnknown_2024190 -_081699F8: .4byte gUnknown_2023D08 -_081699FC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169A14 - adds r0, r0, r1 - ldr r1, _08169A18 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x3b - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169A14: .4byte gUnknown_2024190 -_08169A18: .4byte gUnknown_2023D08 -_08169A1C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169A34 - adds r0, r0, r1 - ldr r1, _08169A38 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x3c - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169A34: .4byte gUnknown_2024190 -_08169A38: .4byte gUnknown_2023D08 -_08169A3C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169A54 - adds r0, r0, r1 - ldr r1, _08169A58 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x3d - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169A54: .4byte gUnknown_2024190 -_08169A58: .4byte gUnknown_2023D08 -_08169A5C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169A74 - adds r0, r0, r1 - ldr r1, _08169A78 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x3e - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169A74: .4byte gUnknown_2024190 -_08169A78: .4byte gUnknown_2023D08 -_08169A7C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169A94 - adds r0, r0, r1 - ldr r1, _08169A98 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x3f - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169A94: .4byte gUnknown_2024190 -_08169A98: .4byte gUnknown_2023D08 -_08169A9C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169AB4 - adds r0, r0, r1 - ldr r1, _08169AB8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x16 - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169AB4: .4byte gUnknown_2024190 -_08169AB8: .4byte gUnknown_2023D08 -_08169ABC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169AD4 - adds r0, r0, r1 - ldr r1, _08169AD8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x17 - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169AD4: .4byte gUnknown_2024190 -_08169AD8: .4byte gUnknown_2023D08 -_08169ADC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169AF4 - adds r0, r0, r1 - ldr r1, _08169AF8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x18 - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169AF4: .4byte gUnknown_2024190 -_08169AF8: .4byte gUnknown_2023D08 -_08169AFC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169B14 - adds r0, r0, r1 - ldr r1, _08169B18 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x21 - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169B14: .4byte gUnknown_2024190 -_08169B18: .4byte gUnknown_2023D08 -_08169B1C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169B34 - adds r0, r0, r1 - ldr r1, _08169B38 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x2f - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169B34: .4byte gUnknown_2024190 -_08169B38: .4byte gUnknown_2023D08 -_08169B3C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169B54 - adds r0, r0, r1 - ldr r1, _08169B58 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x30 - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169B54: .4byte gUnknown_2024190 -_08169B58: .4byte gUnknown_2023D08 -_08169B5C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169B74 - adds r0, r0, r1 - ldr r1, _08169B78 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x32 - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169B74: .4byte gUnknown_2024190 -_08169B78: .4byte gUnknown_2023D08 -_08169B7C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169B94 - adds r0, r0, r1 - ldr r1, _08169B98 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x33 - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169B94: .4byte gUnknown_2024190 -_08169B98: .4byte gUnknown_2023D08 -_08169B9C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169BB4 - adds r0, r0, r1 - ldr r1, _08169BB8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x34 - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169BB4: .4byte gUnknown_2024190 -_08169BB8: .4byte gUnknown_2023D08 -_08169BBC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169BD4 - adds r0, r0, r1 - ldr r1, _08169BD8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x35 - bl SetMonData - b _08169BF2 - .align 2, 0 -_08169BD4: .4byte gUnknown_2024190 -_08169BD8: .4byte gUnknown_2023D08 -_08169BDC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08169C1C - adds r0, r0, r1 - ldr r1, _08169C20 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x36 - bl SetMonData -_08169BF2: - ldr r2, _08169C24 - ldr r0, _08169C20 - ldrb r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r2, [r0] - movs r0, #0x64 - muls r0, r2, r0 - ldr r2, _08169C1C - adds r0, r0, r2 - bl HandleLowHpMusicChange - add sp, #0x34 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08169C1C: .4byte gUnknown_2024190 -_08169C20: .4byte gUnknown_2023D08 -_08169C24: .4byte gUnknown_2023D12 - thumb_func_end SetWallyMonData - - thumb_func_start WallyHandleSetRawMonData -WallyHandleSetRawMonData: @ 0x08169C28 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WallyHandleSetRawMonData - - thumb_func_start WallyHandleLoadMonSprite -WallyHandleLoadMonSprite: @ 0x08169C34 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WallyHandleLoadMonSprite - - thumb_func_start WallyHandleSwitchInAnim -WallyHandleSwitchInAnim: @ 0x08169C40 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WallyHandleSwitchInAnim - - thumb_func_start WallyHandleReturnMonToBall -WallyHandleReturnMonToBall: @ 0x08169C4C - push {r4, r5, r6, lr} - ldr r0, _08169C78 - ldr r6, _08169C7C - ldrb r2, [r6] - lsls r1, r2, #9 - adds r0, #1 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0 - bne _08169C88 - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #1 - bl InitAndLaunchSpecialAnimation - ldr r0, _08169C80 - ldrb r1, [r6] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, _08169C84 - str r0, [r1] - b _08169CBE - .align 2, 0 -_08169C78: .4byte gUnknown_2022D08 -_08169C7C: .4byte gUnknown_2023D08 -_08169C80: .4byte gUnknown_3005AC0 -_08169C84: .4byte sub_08168828 -_08169C88: - ldr r5, _08169CC4 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _08169CC8 - adds r0, r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - ldr r1, _08169CCC - ldrb r0, [r6] - adds r0, r0, r1 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible - bl WallyBufferExecCompleted -_08169CBE: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08169CC4: .4byte gUnknown_2023E88 -_08169CC8: .4byte gUnknown_20205AC -_08169CCC: .4byte gUnknown_3005AD0 - thumb_func_end WallyHandleReturnMonToBall - - thumb_func_start WallyHandleDrawTrainerPic -WallyHandleDrawTrainerPic: @ 0x08169CD0 - push {r4, r5, r6, lr} - ldr r4, _08169D78 - ldrb r1, [r4] - movs r0, #6 - bl DecompressTrainerBackPic - ldrb r0, [r4] - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #6 - bl SetMultiuseSpriteTemplateToTrainerBack - ldr r0, _08169D7C - ldr r1, _08169D80 - ldrb r1, [r1, #0x18] - movs r2, #8 - subs r2, r2, r1 - lsls r2, r2, #0x12 - movs r1, #0xa0 - lsls r1, r1, #0xf - adds r2, r2, r1 - asrs r2, r2, #0x10 - movs r1, #0x50 - movs r3, #0x1e - bl CreateSprite - ldr r6, _08169D84 - ldrb r1, [r4] - adds r1, r1, r6 - strb r0, [r1] - ldr r5, _08169D88 - ldrb r3, [r4] - adds r0, r3, r6 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - lsls r3, r3, #4 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #5] - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0xf0 - strh r1, [r0, #0x24] - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _08169D8C - strh r1, [r0, #0x2e] - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r5, #0x1c - adds r0, r0, r5 - ldr r1, _08169D90 - str r1, [r0] - ldr r1, _08169D94 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08169D98 - str r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08169D78: .4byte gUnknown_2023D08 -_08169D7C: .4byte gUnknown_2024640 -_08169D80: .4byte gUnknown_82D95BC -_08169D84: .4byte gUnknown_2023E88 -_08169D88: .4byte gUnknown_20205AC -_08169D8C: .4byte 0x0000FFFE -_08169D90: .4byte sub_0805D3C8 -_08169D94: .4byte gUnknown_3005AC0 -_08169D98: .4byte sub_08168374 - thumb_func_end WallyHandleDrawTrainerPic - - thumb_func_start WallyHandleTrainerSlide -WallyHandleTrainerSlide: @ 0x08169D9C - push {r4, r5, r6, lr} - ldr r4, _08169E44 - ldrb r1, [r4] - movs r0, #6 - bl DecompressTrainerBackPic - ldrb r0, [r4] - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #6 - bl SetMultiuseSpriteTemplateToTrainerBack - ldr r0, _08169E48 - ldr r1, _08169E4C - ldrb r1, [r1, #0x18] - movs r2, #8 - subs r2, r2, r1 - lsls r2, r2, #0x12 - movs r1, #0xa0 - lsls r1, r1, #0xf - adds r2, r2, r1 - asrs r2, r2, #0x10 - movs r1, #0x50 - movs r3, #0x1e - bl CreateSprite - ldr r6, _08169E50 - ldrb r1, [r4] - adds r1, r1, r6 - strb r0, [r1] - ldr r5, _08169E54 - ldrb r3, [r4] - adds r0, r3, r6 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - lsls r3, r3, #4 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #5] - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _08169E58 - strh r1, [r0, #0x24] - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #2 - strh r1, [r0, #0x2e] - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r5, #0x1c - adds r0, r0, r5 - ldr r1, _08169E5C - str r1, [r0] - ldr r1, _08169E60 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08169E64 - str r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08169E44: .4byte gUnknown_2023D08 -_08169E48: .4byte gUnknown_2024640 -_08169E4C: .4byte gUnknown_82D95BC -_08169E50: .4byte gUnknown_2023E88 -_08169E54: .4byte gUnknown_20205AC -_08169E58: .4byte 0x0000FFA0 -_08169E5C: .4byte sub_0805D3C8 -_08169E60: .4byte gUnknown_3005AC0 -_08169E64: .4byte sub_08168898 - thumb_func_end WallyHandleTrainerSlide - - thumb_func_start WallyHandleTrainerSlideBack -WallyHandleTrainerSlideBack: @ 0x08169E68 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WallyHandleTrainerSlideBack - - thumb_func_start WallyHandleFaintAnimation -WallyHandleFaintAnimation: @ 0x08169E74 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WallyHandleFaintAnimation - - thumb_func_start WallyHandlePaletteFade -WallyHandlePaletteFade: @ 0x08169E80 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WallyHandlePaletteFade - - thumb_func_start WallyHandleSuccessBallThrowAnim -WallyHandleSuccessBallThrowAnim: @ 0x08169E8C - push {r4, r5, lr} - ldr r0, _08169ECC - ldr r0, [r0] - ldr r1, [r0, #8] - movs r0, #4 - strb r0, [r1, #8] - ldr r1, _08169ED0 - movs r0, #1 - strb r0, [r1] - ldr r5, _08169ED4 - ldrb r4, [r5] - movs r0, #1 - bl GetBattlerAtPosition - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r4, #0 - movs r3, #4 - bl InitAndLaunchSpecialAnimation - ldr r1, _08169ED8 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08169EDC - str r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08169ECC: .4byte gUnknown_2024174 -_08169ED0: .4byte gUnknown_202415D -_08169ED4: .4byte gUnknown_2023D08 -_08169ED8: .4byte gUnknown_3005AC0 -_08169EDC: .4byte CompleteOnFinishedAnimation - thumb_func_end WallyHandleSuccessBallThrowAnim - - thumb_func_start WallyHandleBallThrowAnim -WallyHandleBallThrowAnim: @ 0x08169EE0 - push {r4, r5, lr} - ldr r1, _08169F28 - ldr r5, _08169F2C - ldrb r0, [r5] - lsls r0, r0, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r1, [r0] - ldr r0, _08169F30 - ldr r0, [r0] - ldr r0, [r0, #8] - strb r1, [r0, #8] - ldr r1, _08169F34 - movs r0, #1 - strb r0, [r1] - ldrb r4, [r5] - movs r0, #1 - bl GetBattlerAtPosition - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r4, #0 - movs r3, #4 - bl InitAndLaunchSpecialAnimation - ldr r1, _08169F38 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08169F3C - str r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08169F28: .4byte gUnknown_2022D08 -_08169F2C: .4byte gUnknown_2023D08 -_08169F30: .4byte gUnknown_2024174 -_08169F34: .4byte gUnknown_202415D -_08169F38: .4byte gUnknown_3005AC0 -_08169F3C: .4byte CompleteOnFinishedAnimation - thumb_func_end WallyHandleBallThrowAnim - - thumb_func_start WallyHandlePause -WallyHandlePause: @ 0x08169F40 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WallyHandlePause - - thumb_func_start WallyHandleMoveAnimation -WallyHandleMoveAnimation: @ 0x08169F4C - push {r4, r5, r6, lr} - ldr r0, _0816A020 - mov ip, r0 - ldr r6, _0816A024 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r0, #1 - adds r0, r2, r0 - ldrb r0, [r0] - mov r1, ip - adds r1, #2 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - ldr r5, _0816A028 - mov r1, ip - adds r1, #3 - adds r2, r2, r1 - ldrb r1, [r2] - strb r1, [r5] - ldr r4, _0816A02C - ldrb r2, [r6] - lsls r2, r2, #9 - mov r1, ip - adds r1, #4 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, ip - adds r1, #5 - adds r2, r2, r1 - ldrb r1, [r2] - lsls r1, r1, #8 - orrs r3, r1 - strh r3, [r4] - ldr r4, _0816A030 - ldrb r2, [r6] - lsls r2, r2, #9 - mov r1, ip - adds r1, #6 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, ip - adds r1, #7 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r3, r1 - mov r1, ip - adds r1, #8 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, r1, #0x10 - orrs r3, r1 - mov r1, ip - adds r1, #9 - adds r2, r2, r1 - ldrb r1, [r2] - lsls r1, r1, #0x18 - orrs r3, r1 - str r3, [r4] - ldr r3, _0816A034 - ldrb r1, [r6] - lsls r1, r1, #9 - mov r2, ip - adds r2, #0xa - adds r1, r1, r2 - ldrb r1, [r1] - strb r1, [r3] - ldr r4, _0816A038 - ldrb r2, [r6] - lsls r2, r2, #9 - mov r1, ip - adds r1, #0xc - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, ip - adds r1, #0xd - adds r2, r2, r1 - ldrb r1, [r2] - lsls r1, r1, #8 - orrs r3, r1 - strh r3, [r4] - ldr r3, _0816A03C - ldrb r2, [r6] - lsls r2, r2, #9 - mov r1, ip - adds r1, #0x10 - adds r2, r2, r1 - str r2, [r3] - ldr r3, _0816A040 - ldrb r1, [r6] - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r2, [r2] - str r2, [r1] - ldrb r1, [r5] - bl sub_0805D7A8 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - beq _0816A044 - bl WallyBufferExecCompleted - b _0816A062 - .align 2, 0 -_0816A020: .4byte gUnknown_2022D08 -_0816A024: .4byte gUnknown_2023D08 -_0816A028: .4byte gUnknown_20380D2 -_0816A02C: .4byte gUnknown_20380A8 -_0816A030: .4byte gUnknown_20380A4 -_0816A034: .4byte gUnknown_20380BA -_0816A038: .4byte gUnknown_20380BC -_0816A03C: .4byte gUnknown_20380A0 -_0816A040: .4byte gUnknown_2024160 -_0816A044: - ldr r0, _0816A068 - ldr r0, [r0] - ldrb r1, [r6] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strb r3, [r0, #4] - ldr r1, _0816A06C - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0816A070 - str r1, [r0] -_0816A062: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0816A068: .4byte gUnknown_2024174 -_0816A06C: .4byte gUnknown_3005AC0 -_0816A070: .4byte WallyDoMoveAnimation - thumb_func_end WallyHandleMoveAnimation - - thumb_func_start WallyDoMoveAnimation -WallyDoMoveAnimation: @ 0x0816A074 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r2, _0816A0B8 - ldr r6, _0816A0BC - ldrb r3, [r6] - lsls r1, r3, #9 - adds r0, r2, #1 - mov sb, r0 - adds r0, r1, r0 - ldrb r4, [r0] - adds r2, #2 - mov r8, r2 - add r1, r8 - ldrb r0, [r1] - lsls r0, r0, #8 - orrs r4, r0 - ldr r7, _0816A0C0 - ldr r5, [r7] - ldr r1, [r5, #4] - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r2, [r0, #4] - cmp r2, #1 - beq _0816A0FE - cmp r2, #1 - bgt _0816A0C4 - cmp r2, #0 - beq _0816A0CE - b _0816A1B4 - .align 2, 0 -_0816A0B8: .4byte gUnknown_2022D08 -_0816A0BC: .4byte gUnknown_2023D08 -_0816A0C0: .4byte gUnknown_2024174 -_0816A0C4: - cmp r2, #2 - beq _0816A128 - cmp r2, #3 - beq _0816A178 - b _0816A1B4 -_0816A0CE: - ldr r1, [r5] - lsls r0, r3, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0816A0EA - adds r0, r3, #0 - adds r1, r3, #0 - adds r2, r3, #0 - movs r3, #5 - bl InitAndLaunchSpecialAnimation -_0816A0EA: - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #1 - strb r1, [r0, #4] - b _0816A1B4 -_0816A0FE: - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _0816A1B4 - movs r0, #0 - bl sub_0805E7B8 - adds r0, r4, #0 - bl DoMoveAnim - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #2 - strb r1, [r0, #4] - b _0816A1B4 -_0816A128: - ldr r0, _0816A170 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _0816A174 - ldrb r0, [r0] - cmp r0, #0 - bne _0816A1B4 - movs r0, #1 - bl sub_0805E7B8 - ldr r0, [r7] - ldrb r2, [r6] - ldr r1, [r0] - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0816A15C - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #6 - bl InitAndLaunchSpecialAnimation -_0816A15C: - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #3 - strb r1, [r0, #4] - b _0816A1B4 - .align 2, 0 -_0816A170: .4byte gUnknown_2038098 -_0816A174: .4byte gUnknown_203809D -_0816A178: - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _0816A1B4 - bl CopyAllBattleSpritesInvisibilities - ldrb r0, [r6] - lsls r2, r0, #9 - mov r3, sb - adds r1, r2, r3 - ldrb r1, [r1] - add r2, r8 - ldrb r2, [r2] - lsls r2, r2, #8 - orrs r1, r2 - bl TrySetBehindSubstituteSpriteBit - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strb r4, [r0, #4] - bl WallyBufferExecCompleted -_0816A1B4: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end WallyDoMoveAnimation - - thumb_func_start WallyHandlePrintString -WallyHandlePrintString: @ 0x0816A1C0 - push {r4, lr} - ldr r0, _0816A1F8 - movs r1, #0 - strh r1, [r0] - ldr r0, _0816A1FC - strh r1, [r0] - ldr r4, _0816A200 - ldrb r0, [r4] - lsls r0, r0, #9 - ldr r1, _0816A204 - adds r0, r0, r1 - ldrh r0, [r0] - bl PrintOnTrainerHillRecordsWindow - ldr r0, _0816A208 - movs r1, #0 - bl sub_0814FA04 - ldr r1, _0816A20C - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0816A210 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816A1F8: .4byte gUnknown_2022AC8 -_0816A1FC: .4byte gUnknown_2022ACA -_0816A200: .4byte gUnknown_2023D08 -_0816A204: .4byte gUnknown_2022D0A -_0816A208: .4byte gUnknown_2022AE0 -_0816A20C: .4byte gUnknown_3005AC0 -_0816A210: .4byte sub_081683AC - thumb_func_end WallyHandlePrintString - - thumb_func_start WallyHandlePrintSelectionString -WallyHandlePrintSelectionString: @ 0x0816A214 - push {lr} - ldr r0, _0816A22C - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0816A230 - bl WallyHandlePrintString - b _0816A234 - .align 2, 0 -_0816A22C: .4byte gUnknown_2023D08 -_0816A230: - bl WallyBufferExecCompleted -_0816A234: - pop {r0} - bx r0 - thumb_func_end WallyHandlePrintSelectionString - - thumb_func_start HandleChooseActionAfterDma3 -HandleChooseActionAfterDma3: @ 0x0816A238 - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0816A25E - ldr r0, _0816A264 - strh r1, [r0] - ldr r1, _0816A268 - movs r0, #0xa0 - strh r0, [r1] - ldr r1, _0816A26C - ldr r0, _0816A270 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0816A274 - str r1, [r0] -_0816A25E: - pop {r0} - bx r0 - .align 2, 0 -_0816A264: .4byte gUnknown_2022AC8 -_0816A268: .4byte gUnknown_2022ACA -_0816A26C: .4byte gUnknown_3005AC0 -_0816A270: .4byte gUnknown_2023D08 -_0816A274: .4byte WallyHandleActions - thumb_func_end HandleChooseActionAfterDma3 - - thumb_func_start WallyHandleChooseAction -WallyHandleChooseAction: @ 0x0816A278 - push {r4, lr} - ldr r1, _0816A2C4 - ldr r0, _0816A2C8 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0816A2CC - str r1, [r0] - ldr r0, _0816A2D0 - movs r1, #2 - bl sub_0814FA04 - movs r4, #0 -_0816A292: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl MoveSelectionDestroyCursorAt - adds r4, #1 - cmp r4, #3 - ble _0816A292 - ldr r1, _0816A2D4 - ldr r0, _0816A2C8 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #0 - bl ActionSelectionCreateCursorAt - ldr r0, _0816A2D8 - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r0, _0816A2DC - movs r1, #1 - bl sub_0814FA04 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816A2C4: .4byte gUnknown_3005AC0 -_0816A2C8: .4byte gUnknown_2023D08 -_0816A2CC: .4byte HandleChooseActionAfterDma3 -_0816A2D0: .4byte gUnknown_85ABB72 -_0816A2D4: .4byte gUnknown_2024150 -_0816A2D8: .4byte gUnknown_85ABB57 -_0816A2DC: .4byte gUnknown_2022AE0 - thumb_func_end WallyHandleChooseAction - - thumb_func_start WallyHandleUnknownYesNoBox -WallyHandleUnknownYesNoBox: @ 0x0816A2E0 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WallyHandleUnknownYesNoBox - - thumb_func_start WallyHandleChooseMove -WallyHandleChooseMove: @ 0x0816A2EC - push {r4, lr} - ldr r4, _0816A308 - ldr r1, [r4] - adds r0, r1, #0 - adds r0, #0x95 - ldrb r0, [r0] - cmp r0, #1 - beq _0816A32A - cmp r0, #1 - bgt _0816A30C - cmp r0, #0 - beq _0816A312 - b _0816A37C - .align 2, 0 -_0816A308: .4byte gUnknown_2024140 -_0816A30C: - cmp r0, #2 - beq _0816A358 - b _0816A37C -_0816A312: - bl InitMoveSelectionsVarsAndStrings - ldr r1, [r4] - adds r1, #0x95 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r0, [r4] - adds r0, #0x97 - movs r1, #0x50 - strb r1, [r0] - b _0816A37C -_0816A32A: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0816A37C - ldr r0, _0816A350 - strh r1, [r0] - ldr r1, _0816A354 - movs r2, #0xa0 - lsls r2, r2, #1 - adds r0, r2, #0 - strh r0, [r1] - ldr r1, [r4] - adds r1, #0x95 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0816A37C - .align 2, 0 -_0816A350: .4byte gUnknown_2022AC8 -_0816A354: .4byte gUnknown_2022ACA -_0816A358: - adds r1, #0x97 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0816A37C - movs r0, #5 - bl sub_080A306C - movs r2, #0x80 - lsls r2, r2, #1 - movs r0, #1 - movs r1, #0xa - bl BtlController_EmitTwoReturnValues - bl WallyBufferExecCompleted -_0816A37C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WallyHandleChooseMove - - thumb_func_start WallyHandleChooseItem -WallyHandleChooseItem: @ 0x0816A384 - push {lr} - sub sp, #4 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _0816A3B4 - ldr r2, _0816A3B8 - ldrb r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0816A3BC - str r1, [r0] - ldr r1, _0816A3C0 - ldrb r0, [r2] - strb r0, [r1] - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_0816A3B4: .4byte gUnknown_3005AC0 -_0816A3B8: .4byte gUnknown_2023D08 -_0816A3BC: .4byte OpenBagAfterPaletteFade -_0816A3C0: .4byte gUnknown_202415C - thumb_func_end WallyHandleChooseItem - - thumb_func_start WallyHandleChoosePokemon -WallyHandleChoosePokemon: @ 0x0816A3C4 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WallyHandleChoosePokemon - - thumb_func_start WallyHandleCmd23 -WallyHandleCmd23: @ 0x0816A3D0 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WallyHandleCmd23 - - thumb_func_start WallyHandleHealthBarUpdate -WallyHandleHealthBarUpdate: @ 0x0816A3DC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - movs r0, #0 - bl LoadBattleBarGfx - ldr r3, _0816A454 - ldr r0, _0816A458 - mov sb, r0 - ldrb r4, [r0] - lsls r2, r4, #9 - adds r0, r3, #2 - adds r0, r2, r0 - ldrb r1, [r0] - adds r3, #3 - adds r2, r2, r3 - ldrb r0, [r2] - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - asrs r7, r1, #0x10 - ldr r0, _0816A45C - cmp r7, r0 - beq _0816A46C - ldr r6, _0816A460 - lsls r0, r4, #1 - adds r0, r0, r6 - ldrh r0, [r0] - movs r5, #0x64 - muls r0, r5, r0 - ldr r4, _0816A464 - adds r0, r0, r4 - movs r1, #0x3a - bl GetMonData - mov r8, r0 - mov r1, sb - ldrb r0, [r1] - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r0, [r0] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #0x39 - bl GetMonData - adds r3, r0, #0 - mov r1, sb - ldrb r0, [r1] - ldr r1, _0816A468 - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - mov r2, r8 - bl SetBattleBarStruct - b _0816A4A6 - .align 2, 0 -_0816A454: .4byte gUnknown_2022D08 -_0816A458: .4byte gUnknown_2023D08 -_0816A45C: .4byte 0x00007FFF -_0816A460: .4byte gUnknown_2023D12 -_0816A464: .4byte gUnknown_2024190 -_0816A468: .4byte gUnknown_3005AD0 -_0816A46C: - ldr r1, _0816A4C4 - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0816A4C8 - adds r0, r0, r1 - movs r1, #0x3a - bl GetMonData - adds r2, r0, #0 - mov r1, sb - ldrb r0, [r1] - ldr r4, _0816A4CC - adds r1, r0, r4 - ldrb r1, [r1] - str r7, [sp] - movs r3, #0 - bl SetBattleBarStruct - mov r1, sb - ldrb r0, [r1] - adds r0, r0, r4 - ldrb r0, [r0] - movs r1, #0 - movs r2, #0 - bl sub_080726F4 -_0816A4A6: - ldr r1, _0816A4D0 - ldr r0, _0816A4D4 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0816A4D8 - str r1, [r0] - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0816A4C4: .4byte gUnknown_2023D12 -_0816A4C8: .4byte gUnknown_2024190 -_0816A4CC: .4byte gUnknown_3005AD0 -_0816A4D0: .4byte gUnknown_3005AC0 -_0816A4D4: .4byte gUnknown_2023D08 -_0816A4D8: .4byte CompleteOnHealthbarDone - thumb_func_end WallyHandleHealthBarUpdate - - thumb_func_start WallyHandleExpUpdate -WallyHandleExpUpdate: @ 0x0816A4DC - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WallyHandleExpUpdate - - thumb_func_start sub_0816A4E8 -sub_0816A4E8: @ 0x0816A4E8 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0816A4E8 - - thumb_func_start WallyHandleStatusAnimation -WallyHandleStatusAnimation: @ 0x0816A4F4 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WallyHandleStatusAnimation - - thumb_func_start WallyHandleStatusXor -WallyHandleStatusXor: @ 0x0816A500 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WallyHandleStatusXor - - thumb_func_start WallyHandleDataTransfer -WallyHandleDataTransfer: @ 0x0816A50C - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WallyHandleDataTransfer - - thumb_func_start WallyHandleDMA3Transfer -WallyHandleDMA3Transfer: @ 0x0816A518 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WallyHandleDMA3Transfer - - thumb_func_start WallyHandlePlayBGM -WallyHandlePlayBGM: @ 0x0816A524 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WallyHandlePlayBGM - - thumb_func_start WallyHandleCmd32 -WallyHandleCmd32: @ 0x0816A530 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WallyHandleCmd32 - - thumb_func_start sub_0816A53C -sub_0816A53C: @ 0x0816A53C - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0816A53C - - thumb_func_start sub_0816A548 -sub_0816A548: @ 0x0816A548 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0816A548 - - thumb_func_start sub_0816A554 -sub_0816A554: @ 0x0816A554 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0816A554 - - thumb_func_start sub_0816A560 -sub_0816A560: @ 0x0816A560 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0816A560 - - thumb_func_start WallyHandleCmd37 -WallyHandleCmd37: @ 0x0816A56C - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WallyHandleCmd37 - - thumb_func_start sub_0816A578 -sub_0816A578: @ 0x0816A578 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0816A578 - - thumb_func_start sub_0816A584 -sub_0816A584: @ 0x0816A584 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0816A584 - - thumb_func_start sub_0816A590 -sub_0816A590: @ 0x0816A590 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0816A590 - - thumb_func_start WallyHandleHitAnimation -WallyHandleHitAnimation: @ 0x0816A59C - push {r4, lr} - ldr r3, _0816A5C4 - ldr r2, _0816A5C8 - ldr r4, _0816A5CC - ldrb r0, [r4] - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - bge _0816A5D0 - bl WallyBufferExecCompleted - b _0816A5FA - .align 2, 0 -_0816A5C4: .4byte gUnknown_20205AC -_0816A5C8: .4byte gUnknown_2023E88 -_0816A5CC: .4byte gUnknown_2023D08 -_0816A5D0: - ldr r1, _0816A600 - movs r0, #1 - strb r0, [r1] - ldrb r0, [r4] - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r1, #0 - strh r1, [r0, #0x30] - ldrb r0, [r4] - bl sub_080763FC - ldr r1, _0816A604 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0816A608 - str r1, [r0] -_0816A5FA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816A600: .4byte gUnknown_202415D -_0816A604: .4byte gUnknown_3005AC0 -_0816A608: .4byte DoHitAnimBlinkSpriteEffect - thumb_func_end WallyHandleHitAnimation - - thumb_func_start WallyHandleCmd42 -WallyHandleCmd42: @ 0x0816A60C - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WallyHandleCmd42 - - thumb_func_start WallyHandlePlaySE -WallyHandlePlaySE: @ 0x0816A618 - push {lr} - ldr r2, _0816A640 - ldr r0, _0816A644 - ldrb r1, [r0] - lsls r1, r1, #9 - adds r0, r2, #1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, #2 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - bl sub_080A306C - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_0816A640: .4byte gUnknown_2022D08 -_0816A644: .4byte gUnknown_2023D08 - thumb_func_end WallyHandlePlaySE - - thumb_func_start sub_0816A648 -sub_0816A648: @ 0x0816A648 - push {r4, r5, lr} - ldr r4, _0816A67C - ldr r5, _0816A680 - ldrb r0, [r5] - lsls r3, r0, #9 - adds r0, r4, #3 - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, #0 - beq _0816A684 - bl BattleStopLowHpSound - ldrb r1, [r5] - lsls r1, r1, #9 - adds r0, r4, #1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, r4, #2 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - bl PlayBGM - b _0816A698 - .align 2, 0 -_0816A67C: .4byte gUnknown_2022D08 -_0816A680: .4byte gUnknown_2023D08 -_0816A684: - adds r0, r4, #1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, #2 - adds r1, r3, r1 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - bl PlayFanfare -_0816A698: - bl WallyBufferExecCompleted - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0816A648 - - thumb_func_start sub_0816A6A4 -sub_0816A6A4: @ 0x0816A6A4 - push {lr} - ldr r1, _0816A6D4 - ldr r0, _0816A6D8 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0816A6DC - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x19 - bl PlayCry1 - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_0816A6D4: .4byte gUnknown_2023D12 -_0816A6D8: .4byte gUnknown_2023D08 -_0816A6DC: .4byte gUnknown_2024190 - thumb_func_end sub_0816A6A4 - - thumb_func_start sub_0816A6E0 -sub_0816A6E0: @ 0x0816A6E0 - push {lr} - ldr r1, _0816A708 - ldr r0, _0816A70C - ldrb r0, [r0] - lsls r0, r0, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - bl HandleIntroSlide - ldr r2, _0816A710 - ldrh r0, [r2] - movs r1, #1 - orrs r0, r1 - strh r0, [r2] - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_0816A708: .4byte gUnknown_2022D08 -_0816A70C: .4byte gUnknown_2023D08 -_0816A710: .4byte gUnknown_20240A0 - thumb_func_end sub_0816A6E0 - - thumb_func_start WallyHandleIntroTrainerBallThrow -WallyHandleIntroTrainerBallThrow: @ 0x0816A714 - push {r4, r5, r6, r7, lr} - ldr r6, _0816A84C - ldr r7, _0816A850 - ldrb r0, [r7] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r5, _0816A854 - adds r0, r0, r5 - bl SetSpritePrimaryCoordsFromSecondaryCoords - ldrb r0, [r7] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0x32 - strh r1, [r0, #0x2e] - ldrb r0, [r7] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _0816A858 - strh r1, [r0, #0x32] - ldrb r0, [r7] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrh r1, [r0, #0x22] - strh r1, [r0, #0x36] - ldrb r0, [r7] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r5, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _0816A85C - str r1, [r0] - ldrb r2, [r7] - adds r0, r2, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r2, [r0, #0x38] - ldrb r0, [r7] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _0816A860 - bl StoreSpriteCallbackInData6 - ldrb r0, [r7] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #1 - bl StartSpriteAnim - ldr r0, _0816A864 - bl AllocSpritePalette - adds r4, r0, #0 - lsls r4, r4, #0x18 - ldr r0, _0816A868 - ldr r0, [r0, #0x30] - lsrs r4, r4, #0x14 - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r4, r2 - movs r2, #0x20 - bl LoadCompressedPalette - ldrb r0, [r7] - adds r0, r0, r6 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r4 - strb r0, [r1, #5] - ldr r0, _0816A86C - movs r1, #5 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _0816A870 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r4 - ldrb r0, [r7] - strh r0, [r1, #8] - ldr r3, _0816A874 - ldr r0, [r3] - ldrb r2, [r7] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0816A82C - ldr r0, _0816A878 - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r4 - ldr r1, _0816A87C - str r1, [r0] -_0816A82C: - ldr r0, [r3] - ldr r2, [r0, #8] - ldrb r0, [r2, #9] - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #9] - ldr r1, _0816A880 - ldrb r0, [r7] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0816A884 - str r1, [r0] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0816A84C: .4byte gUnknown_2023E88 -_0816A850: .4byte gUnknown_2023D08 -_0816A854: .4byte gUnknown_20205AC -_0816A858: .4byte 0x0000FFD8 -_0816A85C: .4byte sub_080A67B4 -_0816A860: .4byte sub_0805C81C -_0816A864: .4byte 0x0000D6F8 -_0816A868: .4byte gUnknown_82D961C -_0816A86C: .4byte sub_0816AA0C -_0816A870: .4byte gUnknown_3005B60 -_0816A874: .4byte gUnknown_2024174 -_0816A878: .4byte gUnknown_2024158 -_0816A87C: .4byte Task_HidePartyStatusSummary -_0816A880: .4byte gUnknown_3005AC0 -_0816A884: .4byte sub_08057068 - thumb_func_end WallyHandleIntroTrainerBallThrow - - thumb_func_start sub_0816A888 -sub_0816A888: @ 0x0816A888 - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - ldr r0, _0816A9E0 - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r6, #2 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #2] - ldr r0, _0816A9E4 - lsls r2, r6, #1 - adds r2, r2, r0 - ldr r0, _0816A9E8 - lsls r1, r6, #9 - adds r0, #1 - adds r1, r1, r0 - ldrb r0, [r1] - strh r0, [r2] - ldrh r1, [r2] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0816A9EC - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - mov r8, r0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - ldr r0, _0816A9F0 - bl CreateInvisibleSpriteWithCallback - ldr r1, _0816A9F4 - mov sb, r1 - add sb, r6 - mov r1, sb - strb r0, [r1] - adds r0, r6, #0 - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r0, r8 - bl SetMultiuseSpriteTemplateToPokemon - ldr r0, _0816A9F8 - mov sl, r0 - adds r0, r6, #0 - movs r1, #2 - bl GetBattlerSpriteCoord - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - adds r0, r6, #0 - bl GetBattlerSpriteDefault_Y - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r6, #0 - bl GetBattlerSpriteSubpriority - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r0, sl - adds r1, r5, #0 - adds r2, r4, #0 - bl CreateSprite - ldr r4, _0816A9FC - adds r4, r6, r4 - strb r0, [r4] - ldr r5, _0816AA00 - mov r0, sb - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r1, [r4] - strh r1, [r0, #0x30] - mov r0, sb - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r6, [r0, #0x32] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r6, [r0, #0x2e] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - mov r1, r8 - strh r1, [r0, #0x32] - ldrb r0, [r4] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - lsls r3, r6, #4 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #5] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _0816AA04 - adds r6, r6, r1 - ldrb r1, [r6] - bl StartSpriteAnim - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r5, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _0816AA08 - str r1, [r0] - movs r0, #0 - movs r1, #0xff - bl DoPokeballSendOutAnimation - mov r1, sb - ldrb r2, [r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r1, #0x2e] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0816A9E0: .4byte gUnknown_2024174 -_0816A9E4: .4byte gUnknown_2023D12 -_0816A9E8: .4byte gUnknown_2022D08 -_0816A9EC: .4byte gUnknown_2024190 -_0816A9F0: .4byte sub_0805D330 -_0816A9F4: .4byte gUnknown_3005ADC -_0816A9F8: .4byte gUnknown_2024640 -_0816A9FC: .4byte gUnknown_2023E88 -_0816AA00: .4byte gUnknown_20205AC -_0816AA04: .4byte gUnknown_2024188 -_0816AA08: .4byte sub_08007140 - thumb_func_end sub_0816A888 - - thumb_func_start sub_0816AA0C -sub_0816AA0C: @ 0x0816AA0C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _0816AA2C - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r1, r0, r1 - ldrh r2, [r1, #0xa] - movs r3, #0xa - ldrsh r0, [r1, r3] - cmp r0, #0x1e - bgt _0816AA30 - adds r0, r2, #1 - strh r0, [r1, #0xa] - b _0816AA66 - .align 2, 0 -_0816AA2C: .4byte gUnknown_3005B60 -_0816AA30: - ldr r4, _0816AA6C - ldrb r5, [r4] - ldrh r0, [r1, #8] - strb r0, [r4] - ldr r0, _0816AA70 - ldrb r1, [r4] - lsls r2, r1, #9 - adds r0, #1 - adds r2, r2, r0 - ldr r0, _0816AA74 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - strb r0, [r2] - ldrb r0, [r4] - bl sub_0816A888 - ldr r1, _0816AA78 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0816AA7C - str r1, [r0] - strb r5, [r4] - adds r0, r6, #0 - bl DestroyTask -_0816AA66: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0816AA6C: .4byte gUnknown_2023D08 -_0816AA70: .4byte gUnknown_2022D08 -_0816AA74: .4byte gUnknown_2023D12 -_0816AA78: .4byte gUnknown_3005AC0 -_0816AA7C: .4byte sub_08168454 - thumb_func_end sub_0816AA0C - - thumb_func_start WallyHandleDrawPartyStatusSummary -WallyHandleDrawPartyStatusSummary: @ 0x0816AA80 - push {r4, r5, lr} - ldr r1, _0816AAA8 - ldr r0, _0816AAAC - ldrb r2, [r0] - lsls r0, r2, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _0816AAB0 - adds r0, r2, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0816AAB0 - bl WallyBufferExecCompleted - b _0816AAEE - .align 2, 0 -_0816AAA8: .4byte gUnknown_2022D08 -_0816AAAC: .4byte gUnknown_2023D08 -_0816AAB0: - ldr r0, _0816AAF4 - ldr r0, [r0] - ldr r5, _0816AAF8 - ldrb r1, [r5] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r2, #1 - orrs r1, r2 - strb r1, [r0] - ldrb r0, [r5] - lsls r4, r0, #9 - ldr r3, _0816AAFC - adds r1, r4, r3 - subs r2, r3, #3 - adds r2, r4, r2 - ldrb r2, [r2] - subs r3, #2 - adds r4, r4, r3 - ldrb r3, [r4] - bl CreatePartyStatusSummarySprites - ldr r2, _0816AB00 - ldrb r1, [r5] - adds r1, r1, r2 - strb r0, [r1] - bl WallyBufferExecCompleted -_0816AAEE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0816AAF4: .4byte gUnknown_2024174 -_0816AAF8: .4byte gUnknown_2023D08 -_0816AAFC: .4byte gUnknown_2022D0C -_0816AB00: .4byte gUnknown_2024158 - thumb_func_end WallyHandleDrawPartyStatusSummary - - thumb_func_start WallyHandleHidePartyStatusSummary -WallyHandleHidePartyStatusSummary: @ 0x0816AB04 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WallyHandleHidePartyStatusSummary - - thumb_func_start WallyHandleEndBounceEffect -WallyHandleEndBounceEffect: @ 0x0816AB10 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WallyHandleEndBounceEffect - - thumb_func_start WallyHandleSpriteInvisibility -WallyHandleSpriteInvisibility: @ 0x0816AB1C - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WallyHandleSpriteInvisibility - - thumb_func_start WallyHandleBattleAnimation -WallyHandleBattleAnimation: @ 0x0816AB28 - push {r4, r5, r6, lr} - sub sp, #4 - ldr r5, _0816AB60 - ldr r6, _0816AB64 - ldrb r2, [r6] - lsls r1, r2, #9 - adds r0, r5, #1 - adds r0, r1, r0 - ldrb r3, [r0] - adds r0, r5, #2 - adds r0, r1, r0 - ldrb r4, [r0] - adds r5, #3 - adds r1, r1, r5 - ldrb r0, [r1] - lsls r0, r0, #8 - orrs r4, r0 - str r4, [sp] - adds r0, r2, #0 - adds r1, r2, #0 - bl TryHandleLaunchBattleTableAnimation - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0816AB68 - bl WallyBufferExecCompleted - b _0816AB74 - .align 2, 0 -_0816AB60: .4byte gUnknown_2022D08 -_0816AB64: .4byte gUnknown_2023D08 -_0816AB68: - ldr r0, _0816AB7C - ldrb r1, [r6] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, _0816AB80 - str r0, [r1] -_0816AB74: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0816AB7C: .4byte gUnknown_3005AC0 -_0816AB80: .4byte sub_081688D0 - thumb_func_end WallyHandleBattleAnimation - - thumb_func_start WallyHandleLinkStandbyMsg -WallyHandleLinkStandbyMsg: @ 0x0816AB84 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WallyHandleLinkStandbyMsg - - thumb_func_start WallyHandleResetActionMoveSelection -WallyHandleResetActionMoveSelection: @ 0x0816AB90 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WallyHandleResetActionMoveSelection - - thumb_func_start WallyHandleCmd55 -WallyHandleCmd55: @ 0x0816AB9C - push {r4, lr} - ldr r2, _0816ABE0 - ldr r1, _0816ABE4 - ldr r4, _0816ABE8 - ldrb r0, [r4] - lsls r0, r0, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r2] - movs r0, #5 - bl FadeOutMapMusic - movs r0, #3 - bl BeginFastPaletteFade - bl WallyBufferExecCompleted - ldr r0, _0816ABEC - ldr r0, [r0] - movs r1, #6 - ands r0, r1 - cmp r0, #2 - bne _0816ABD8 - ldr r0, _0816ABF0 - ldrb r1, [r4] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, _0816ABF4 - str r0, [r1] -_0816ABD8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816ABE0: .4byte gUnknown_2023FDE -_0816ABE4: .4byte gUnknown_2022D08 -_0816ABE8: .4byte gUnknown_2023D08 -_0816ABEC: .4byte gUnknown_2022C90 -_0816ABF0: .4byte gUnknown_3005AC0 -_0816ABF4: .4byte sub_080583C0 - thumb_func_end WallyHandleCmd55 - - thumb_func_start sub_0816ABF8 -sub_0816ABF8: @ 0x0816ABF8 - bx lr - .align 2, 0 - thumb_func_end sub_0816ABF8 - - thumb_func_start NewGameInitPCItems -NewGameInitPCItems: @ 0x0816ABFC - push {r4, r5, r6, lr} - movs r4, #0 - ldr r0, _0816AC58 - ldr r0, [r0] - movs r1, #0x93 - lsls r1, r1, #3 - adds r0, r0, r1 - movs r1, #0x32 - bl ClearItemSlots - ldr r1, _0816AC5C - ldrh r0, [r1] - cmp r0, #0 - beq _0816AC50 - ldrh r0, [r1, #2] - cmp r0, #0 - beq _0816AC50 - adds r5, r1, #0 - adds r6, r5, #2 -_0816AC22: - lsls r1, r4, #2 - adds r0, r1, r5 - ldrh r0, [r0] - adds r1, r1, r6 - ldrh r1, [r1] - bl AddPCItem - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0816AC50 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r4, #2 - adds r0, r1, r5 - ldrh r0, [r0] - cmp r0, #0 - beq _0816AC50 - adds r0, r1, r6 - ldrh r0, [r0] - cmp r0, #0 - bne _0816AC22 -_0816AC50: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0816AC58: .4byte gUnknown_3005AEC -_0816AC5C: .4byte gUnknown_85C0BE0 - thumb_func_end NewGameInitPCItems - - thumb_func_start BedroomPC -BedroomPC: @ 0x0816AC60 - push {lr} - ldr r1, _0816AC88 - ldr r0, _0816AC8C - str r0, [r1] - ldr r1, _0816AC90 - movs r0, #4 - strb r0, [r1] - ldr r0, _0816AC94 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0816AC98 - ldr r2, _0816AC9C - bl DisplayItemMessageOnField - pop {r0} - bx r0 - .align 2, 0 -_0816AC88: .4byte gUnknown_203B97C -_0816AC8C: .4byte gUnknown_85C0BB8 -_0816AC90: .4byte gUnknown_203B980 -_0816AC94: .4byte sub_080A8A40 -_0816AC98: .4byte gUnknown_85C942E -_0816AC9C: .4byte sub_0816ACE0 - thumb_func_end BedroomPC - - thumb_func_start PlayerPC -PlayerPC: @ 0x0816ACA0 - push {lr} - ldr r1, _0816ACC8 - ldr r0, _0816ACCC - str r0, [r1] - ldr r1, _0816ACD0 - movs r0, #3 - strb r0, [r1] - ldr r0, _0816ACD4 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0816ACD8 - ldr r2, _0816ACDC - bl DisplayItemMessageOnField - pop {r0} - bx r0 - .align 2, 0 -_0816ACC8: .4byte gUnknown_203B97C -_0816ACCC: .4byte gUnknown_85C0BBC -_0816ACD0: .4byte gUnknown_203B980 -_0816ACD4: .4byte sub_080A8A40 -_0816ACD8: .4byte gUnknown_85C942E -_0816ACDC: .4byte sub_0816ACE0 - thumb_func_end PlayerPC - - thumb_func_start sub_0816ACE0 -sub_0816ACE0: @ 0x0816ACE0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r0, r0, #2 - add r0, r8 - lsls r0, r0, #3 - ldr r1, _0816AD04 - adds r7, r0, r1 - ldr r0, _0816AD08 - ldrb r0, [r0] - cmp r0, #3 - bne _0816AD10 - ldr r0, _0816AD0C - b _0816AD12 - .align 2, 0 -_0816AD04: .4byte gUnknown_3005B68 -_0816AD08: .4byte gUnknown_203B980 -_0816AD0C: .4byte gUnknown_85C0C08 -_0816AD10: - ldr r0, _0816AD98 -_0816AD12: - bl AddWindow - strh r0, [r7, #8] - ldrb r0, [r7, #8] - movs r1, #0 - bl SetStandardWindowBorderStyle - movs r0, #1 - movs r1, #0 - bl GetFontAttribute - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - movs r1, #2 - bl GetFontAttribute - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r7, #8] - str r0, [sp] - movs r6, #0x10 - str r6, [sp, #4] - ldr r5, _0816AD9C - ldrb r0, [r5] - str r0, [sp, #8] - ldr r0, _0816ADA0 - str r0, [sp, #0xc] - ldr r0, _0816ADA4 - ldr r0, [r0] - str r0, [sp, #0x10] - adds r0, r1, #0 - movs r1, #1 - adds r2, r4, #0 - movs r3, #2 - bl AddItemMenuActionTextPrinters - ldrb r0, [r7, #8] - str r6, [sp] - ldrb r1, [r5] - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl sub_081984B0 - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, _0816ADA8 - mov r2, r8 - lsls r0, r2, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0816ADAC - str r1, [r0] - add sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0816AD98: .4byte gUnknown_85C0C10 -_0816AD9C: .4byte gUnknown_203B980 -_0816ADA0: .4byte gUnknown_85C0B98 -_0816ADA4: .4byte gUnknown_203B97C -_0816ADA8: .4byte gUnknown_3005B60 -_0816ADAC: .4byte PlayerPCProcessMenuInput - thumb_func_end sub_0816ACE0 - - thumb_func_start PlayerPCProcessMenuInput -PlayerPCProcessMenuInput: @ 0x0816ADB0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _0816ADD0 - adds r4, r0, r1 - ldr r0, _0816ADD4 - ldrb r0, [r0] - cmp r0, #3 - bls _0816ADD8 - bl Menu_ProcessInput - b _0816ADDC - .align 2, 0 -_0816ADD0: .4byte gUnknown_3005B68 -_0816ADD4: .4byte gUnknown_203B980 -_0816ADD8: - bl Menu_ProcessInputNoWrap -_0816ADDC: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r0, r0, #0x18 - asrs r5, r0, #0x18 - movs r0, #2 - rsbs r0, r0, #0 - cmp r5, r0 - beq _0816AE64 - adds r0, #1 - cmp r5, r0 - bne _0816AE2C - movs r0, #5 - bl sub_080A306C - ldrb r0, [r4, #8] - movs r1, #0 - bl sub_08198134 - ldrb r0, [r4, #8] - bl ClearWindowTilemap - ldrb r0, [r4, #8] - bl RemoveWindow - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, _0816AE24 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0816AE28 - str r1, [r0] - b _0816AE64 - .align 2, 0 -_0816AE24: .4byte gUnknown_3005B60 -_0816AE28: .4byte PlayerPC_TurnOff -_0816AE2C: - ldrb r0, [r4, #8] - movs r1, #0 - bl sub_08198134 - ldrb r0, [r4, #8] - bl ClearWindowTilemap - ldrb r0, [r4, #8] - bl RemoveWindow - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, _0816AE6C - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r2, _0816AE70 - ldr r0, _0816AE74 - ldr r0, [r0] - adds r0, r0, r5 - ldrb r0, [r0] - lsls r0, r0, #3 - adds r2, #4 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1] -_0816AE64: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0816AE6C: .4byte gUnknown_3005B60 -_0816AE70: .4byte gUnknown_85C0B98 -_0816AE74: .4byte gUnknown_203B97C - thumb_func_end PlayerPCProcessMenuInput - - thumb_func_start ReshowPlayerPC -ReshowPlayerPC: @ 0x0816AE78 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0816AE8C - ldr r2, _0816AE90 - bl DisplayItemMessageOnField - pop {r0} - bx r0 - .align 2, 0 -_0816AE8C: .4byte gUnknown_85C942E -_0816AE90: .4byte sub_0816ACE0 - thumb_func_end ReshowPlayerPC - - thumb_func_start PlayerPC_ItemStorage -PlayerPC_ItemStorage: @ 0x0816AE94 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #0 - bl sub_0816AFA8 - ldr r1, _0816AEB8 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0816AEBC - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816AEB8: .4byte gUnknown_3005B60 -_0816AEBC: .4byte ItemStorageMenuProcessInput - thumb_func_end PlayerPC_ItemStorage - - thumb_func_start PlayerPC_Mailbox -PlayerPC_Mailbox: @ 0x0816AEC0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r6, r4, #0 - bl GetMailboxMailCount - ldr r5, _0816AEE4 - movs r1, #0 - strb r0, [r5, #5] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0816AEF0 - ldr r1, _0816AEE8 - ldr r2, _0816AEEC - adds r0, r4, #0 - bl DisplayItemMessageOnField - b _0816AF42 - .align 2, 0 -_0816AEE4: .4byte gUnknown_203B984 -_0816AEE8: .4byte gUnknown_85CA976 -_0816AEEC: .4byte ReshowPlayerPC -_0816AEF0: - strh r1, [r5] - strh r1, [r5, #2] - movs r0, #0xff - strb r0, [r5, #9] - bl Mailbox_UpdateMailList - adds r0, r4, #0 - bl ItemStorage_SetItemAndMailCount - ldrb r0, [r5, #5] - bl sub_081D1340 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0816AF38 - movs r0, #0 - movs r1, #0 - bl sub_08197028 - adds r0, r4, #0 - bl sub_0816B41C - ldr r0, _0816AF30 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _0816AF34 - str r0, [r1] - b _0816AF42 - .align 2, 0 -_0816AF30: .4byte gUnknown_3005B60 -_0816AF34: .4byte Mailbox_ProcessInput -_0816AF38: - ldr r1, _0816AF48 - ldr r2, _0816AF4C - adds r0, r6, #0 - bl DisplayItemMessageOnField -_0816AF42: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0816AF48: .4byte gUnknown_85CA976 -_0816AF4C: .4byte ReshowPlayerPC - thumb_func_end PlayerPC_Mailbox - - thumb_func_start PlayerPC_Decoration -PlayerPC_Decoration: @ 0x0816AF50 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DoPlayerRoomDecorationMenu - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PlayerPC_Decoration - - thumb_func_start PlayerPC_TurnOff -PlayerPC_TurnOff: @ 0x0816AF60 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0816AF80 - ldrb r0, [r0] - cmp r0, #4 - bne _0816AF98 - ldr r0, _0816AF84 - ldr r0, [r0] - ldrb r0, [r0, #8] - cmp r0, #0 - bne _0816AF8C - ldr r0, _0816AF88 - bl ScriptContext1_SetupScript - b _0816AF9C - .align 2, 0 -_0816AF80: .4byte gUnknown_203B980 -_0816AF84: .4byte gUnknown_3005AF0 -_0816AF88: .4byte gUnknown_81F01EE -_0816AF8C: - ldr r0, _0816AF94 - bl ScriptContext1_SetupScript - b _0816AF9C - .align 2, 0 -_0816AF94: .4byte gUnknown_81F0DDB -_0816AF98: - bl EnableBothScriptContexts -_0816AF9C: - adds r0, r4, #0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - thumb_func_end PlayerPC_TurnOff - - thumb_func_start sub_0816AFA8 -sub_0816AFA8: @ 0x0816AFA8 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0xc - adds r5, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _0816B030 - adds r4, r4, r0 - ldr r0, _0816B034 - bl AddWindow - strh r0, [r4, #8] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl SetStandardWindowBorderStyle - movs r0, #1 - movs r1, #0 - bl GetFontAttribute - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r0, [r4, #8] - movs r1, #0x10 - mov r8, r1 - str r1, [sp] - movs r6, #4 - str r6, [sp, #4] - ldr r1, _0816B038 - str r1, [sp, #8] - movs r1, #1 - movs r3, #2 - bl PrintTextArray - ldrb r0, [r4, #8] - mov r1, r8 - str r1, [sp] - str r6, [sp, #4] - str r5, [sp, #8] - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl sub_081984B0 - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, _0816B03C - lsls r5, r5, #2 - adds r5, r5, r0 - ldr r0, [r5] - bl ItemStorageMenuPrint - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0816B030: .4byte gUnknown_3005B68 -_0816B034: .4byte gUnknown_85C0C18 -_0816B038: .4byte gUnknown_85C0BC0 -_0816B03C: .4byte gUnknown_85C0B88 - thumb_func_end sub_0816AFA8 - - thumb_func_start ItemStorageMenuPrint -ItemStorageMenuPrint: @ 0x0816B040 - push {r4, lr} - sub sp, #0xc - adds r4, r0, #0 - movs r0, #0 - movs r1, #0 - bl sub_08196FB8 - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - movs r1, #1 - adds r2, r4, #0 - movs r3, #0 - bl AddTextPrinterParameterized - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ItemStorageMenuPrint - - thumb_func_start ItemStorageMenuProcessInput -ItemStorageMenuProcessInput: @ 0x0816B06C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - bl Menu_GetCursorPos - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - bl Menu_ProcessInput - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl Menu_GetCursorPos - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - movs r0, #2 - rsbs r0, r0, #0 - cmp r4, r0 - beq _0816B0BC - adds r0, #1 - cmp r4, r0 - beq _0816B0D8 - movs r0, #5 - bl sub_080A306C - ldr r0, _0816B0B8 - lsls r1, r4, #3 - adds r0, #4 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r6, #0 - bl _call_via_r1 - b _0816B0E4 - .align 2, 0 -_0816B0B8: .4byte gUnknown_85C0BC0 -_0816B0BC: - lsls r1, r5, #0x18 - lsls r0, r2, #0x18 - asrs r2, r0, #0x18 - cmp r1, r0 - beq _0816B0E4 - ldr r0, _0816B0D4 - lsls r1, r2, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl ItemStorageMenuPrint - b _0816B0E4 - .align 2, 0 -_0816B0D4: .4byte gUnknown_85C0B88 -_0816B0D8: - movs r0, #5 - bl sub_080A306C - adds r0, r6, #0 - bl ItemStorage_Exit -_0816B0E4: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ItemStorageMenuProcessInput - - thumb_func_start ItemStorage_Deposit -ItemStorage_Deposit: @ 0x0816B0EC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0816B10C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r0, _0816B110 - str r0, [r1] - movs r0, #1 - movs r1, #0 - bl FadeScreen - pop {r0} - bx r0 - .align 2, 0 -_0816B10C: .4byte gUnknown_3005B60 -_0816B110: .4byte Task_ItemStorage_Deposit - thumb_func_end ItemStorage_Deposit - - thumb_func_start Task_ItemStorage_Deposit -Task_ItemStorage_Deposit: @ 0x0816B114 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0816B13C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0816B134 - bl CleanupOverworldWindowsAndTilemaps - bl sub_081AA98C - adds r0, r4, #0 - bl DestroyTask -_0816B134: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816B13C: .4byte gUnknown_2037C74 - thumb_func_end Task_ItemStorage_Deposit - - thumb_func_start sub_0816B140 -sub_0816B140: @ 0x0816B140 - push {lr} - ldr r0, _0816B154 - ldr r1, _0816B158 - str r1, [r0] - ldr r0, _0816B15C - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0816B154: .4byte gUnknown_3005B0C -_0816B158: .4byte sub_0816B160 -_0816B15C: .4byte sub_08085A30 - thumb_func_end sub_0816B140 - - thumb_func_start sub_0816B160 -sub_0816B160: @ 0x0816B160 - push {lr} - bl sub_08196F98 - movs r0, #0 - movs r1, #1 - bl sub_08196FB8 - ldr r0, _0816B188 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - bl sub_0816AFA8 - bl pal_fill_black - pop {r0} - bx r0 - .align 2, 0 -_0816B188: .4byte sub_0816B18C - thumb_func_end sub_0816B160 - - thumb_func_start sub_0816B18C -sub_0816B18C: @ 0x0816B18C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl IsWeatherNotFadingIn - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0816B1AC - ldr r0, _0816B1B4 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _0816B1B8 - str r0, [r1] -_0816B1AC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816B1B4: .4byte gUnknown_3005B60 -_0816B1B8: .4byte ItemStorageMenuProcessInput - thumb_func_end sub_0816B18C - - thumb_func_start ItemStorage_Withdraw -ItemStorage_Withdraw: @ 0x0816B1BC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - ldr r0, _0816B1E4 - adds r4, r4, r0 - bl CountUsedPCItemSlots - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #2] - cmp r0, #0 - beq _0816B1E8 - adds r0, r5, #0 - movs r1, #0 - bl ItemStorage_WithdrawToss_Helper - b _0816B1F8 - .align 2, 0 -_0816B1E4: .4byte gUnknown_3005B68 -_0816B1E8: - adds r0, r5, #0 - bl sub_0816B300 - ldr r1, _0816B200 - ldr r2, _0816B204 - adds r0, r5, #0 - bl DisplayItemMessageOnField -_0816B1F8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0816B200: .4byte gUnknown_85CA918 -_0816B204: .4byte PlayerPC_ItemStorage - thumb_func_end ItemStorage_Withdraw - - thumb_func_start ItemStorage_Toss -ItemStorage_Toss: @ 0x0816B208 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - ldr r0, _0816B230 - adds r4, r4, r0 - bl CountUsedPCItemSlots - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #2] - cmp r0, #0 - beq _0816B234 - adds r0, r5, #0 - movs r1, #1 - bl ItemStorage_WithdrawToss_Helper - b _0816B244 - .align 2, 0 -_0816B230: .4byte gUnknown_3005B68 -_0816B234: - adds r0, r5, #0 - bl sub_0816B300 - ldr r1, _0816B24C - ldr r2, _0816B250 - adds r0, r5, #0 - bl DisplayItemMessageOnField -_0816B244: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0816B24C: .4byte gUnknown_85CA918 -_0816B250: .4byte PlayerPC_ItemStorage - thumb_func_end ItemStorage_Toss - - thumb_func_start ItemStorage_WithdrawToss_Helper -ItemStorage_WithdrawToss_Helper: @ 0x0816B254 - push {r4, r5, r6, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r5, r4, #2 - adds r5, r5, r4 - lsls r5, r5, #3 - ldr r6, _0816B2B8 - adds r0, r5, r6 - strh r1, [r0, #6] - adds r0, r4, #0 - bl sub_0816B300 - ldr r1, _0816B2BC - movs r0, #0 - strh r0, [r1] - strh r0, [r1, #2] - movs r0, #0xff - strb r0, [r1, #9] - adds r0, r4, #0 - bl ItemStorage_SetItemAndMailCount - bl sub_0816BA54 - bl UpdateShoalTideFlag - bl sub_08122334 - ldr r0, _0816B2C0 - ldr r0, [r0] - movs r1, #0xcd - lsls r1, r1, #3 - adds r0, r0, r1 - movs r1, #7 - bl sub_08122350 - movs r0, #0 - movs r1, #0 - bl sub_08197028 - subs r6, #8 - adds r5, r5, r6 - ldr r0, _0816B2C4 - str r0, [r5] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0816B2B8: .4byte gUnknown_3005B68 -_0816B2BC: .4byte gUnknown_203B984 -_0816B2C0: .4byte gUnknown_203B990 -_0816B2C4: .4byte sub_0816BF8C - thumb_func_end ItemStorage_WithdrawToss_Helper - - thumb_func_start ItemStorage_Exit -ItemStorage_Exit: @ 0x0816B2C8 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl sub_0816B300 - adds r0, r4, #0 - bl ReshowPlayerPC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ItemStorage_Exit - - thumb_func_start ItemStorage_SetItemAndMailCount -ItemStorage_SetItemAndMailCount: @ 0x0816B2E4 - push {lr} - ldr r1, _0816B2F4 - ldrb r0, [r1, #5] - cmp r0, #7 - bls _0816B2F8 - movs r0, #8 - b _0816B2FA - .align 2, 0 -_0816B2F4: .4byte gUnknown_203B984 -_0816B2F8: - adds r0, #1 -_0816B2FA: - strb r0, [r1, #4] - pop {r0} - bx r0 - thumb_func_end ItemStorage_SetItemAndMailCount - - thumb_func_start sub_0816B300 -sub_0816B300: @ 0x0816B300 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _0816B330 - adds r4, r4, r0 - ldrb r0, [r4, #8] - movs r1, #0 - bl sub_08198134 - ldrb r0, [r4, #8] - bl ClearWindowTilemap - ldrb r0, [r4, #8] - bl RemoveWindow - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816B330: .4byte gUnknown_3005B68 - thumb_func_end sub_0816B300 - - thumb_func_start GetMailboxMailCount -GetMailboxMailCount: @ 0x0816B334 - push {r4, lr} - movs r2, #0 - movs r1, #6 - ldr r0, _0816B36C - ldr r3, [r0] - movs r4, #0xb0 - lsls r4, r4, #6 -_0816B342: - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r3, r0 - adds r0, r0, r4 - ldrh r0, [r0] - cmp r0, #0 - beq _0816B358 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 -_0816B358: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xf - bls _0816B342 - adds r0, r2, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0816B36C: .4byte gUnknown_3005AEC - thumb_func_end GetMailboxMailCount - - thumb_func_start Mailbox_UpdateMailList -Mailbox_UpdateMailList: @ 0x0816B370 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x24 - movs r2, #6 -_0816B37E: - adds r1, r2, #1 - lsls r0, r1, #0x18 - lsrs r4, r0, #0x18 - mov r8, r1 - cmp r4, #0xf - bhi _0816B3F8 - ldr r0, _0816B414 - mov sl, r0 - lsls r0, r2, #3 - adds r0, r0, r2 - lsls r0, r0, #2 - mov ip, r0 - ldr r6, _0816B418 -_0816B398: - mov r1, sl - ldr r1, [r1] - mov sb, r1 - mov r2, sb - add r2, ip - movs r3, #0xb0 - lsls r3, r3, #6 - adds r0, r2, r3 - ldrh r0, [r0] - cmp r0, #0 - bne _0816B3EE - adds r2, r2, r6 - mov r1, sp - adds r0, r2, #0 - ldm r0!, {r3, r5, r7} - stm r1!, {r3, r5, r7} - ldm r0!, {r3, r5, r7} - stm r1!, {r3, r5, r7} - ldm r0!, {r3, r5, r7} - stm r1!, {r3, r5, r7} - lsls r3, r4, #3 - adds r3, r3, r4 - lsls r3, r3, #2 - mov r5, sb - adds r0, r5, r3 - adds r0, r0, r6 - ldm r0!, {r1, r5, r7} - stm r2!, {r1, r5, r7} - ldm r0!, {r1, r5, r7} - stm r2!, {r1, r5, r7} - ldm r0!, {r1, r5, r7} - stm r2!, {r1, r5, r7} - mov r7, sl - ldr r1, [r7] - adds r1, r1, r3 - adds r1, r1, r6 - mov r0, sp - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} - ldm r0!, {r2, r3, r7} - stm r1!, {r2, r3, r7} - ldm r0!, {r2, r5, r7} - stm r1!, {r2, r5, r7} -_0816B3EE: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xf - bls _0816B398 -_0816B3F8: - mov r3, r8 - lsls r0, r3, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xe - bls _0816B37E - add sp, #0x24 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0816B414: .4byte gUnknown_3005AEC -_0816B418: .4byte 0x00002BE0 - thumb_func_end Mailbox_UpdateMailList - - thumb_func_start sub_0816B41C -sub_0816B41C: @ 0x0816B41C - push {r4, r5, lr} - sub sp, #0xc - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - movs r0, #0 - bl UpdateWorldOfMastersAndPutItOnTheAir - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - bl UpdateWorldOfMastersAndPutItOnTheAir - ldr r2, _0816B47C - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - adds r0, r4, #0 - movs r1, #1 - movs r3, #2 - bl AddTextPrinterParameterized - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - ldr r4, _0816B480 - adds r0, r4, #0 - bl sub_081D13F4 - ldr r2, _0816B484 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r1, #0x12] - adds r0, r4, #0 - bl sub_081D14D8 - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0816B47C: .4byte gUnknown_85CA8B5 -_0816B480: .4byte gUnknown_203B984 -_0816B484: .4byte gUnknown_3005B60 - thumb_func_end sub_0816B41C - - thumb_func_start Mailbox_ProcessInput -Mailbox_ProcessInput: @ 0x0816B488 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - mov sb, r0 - ldr r0, _0816B4DC - mov sl, r0 - mov r4, sb - add r4, sl - ldr r0, _0816B4E0 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0816B532 - ldrb r0, [r4, #0xa] - bl ListMenu_ProcessInput - adds r6, r0, #0 - ldrb r0, [r4, #0xa] - ldr r7, _0816B4E4 - subs r1, r7, #2 - mov r8, r1 - adds r1, r7, #0 - mov r2, r8 - bl ListMenuGetScrollAndRow - movs r0, #2 - rsbs r0, r0, #0 - cmp r6, r0 - beq _0816B4E8 - adds r0, #1 - cmp r6, r0 - bne _0816B4FE - b _0816B532 - .align 2, 0 -_0816B4DC: .4byte gUnknown_3005B68 -_0816B4E0: .4byte gUnknown_2037C74 -_0816B4E4: .4byte gUnknown_203B986 -_0816B4E8: - movs r0, #5 - bl sub_080A306C - mov r1, r8 - ldrb r0, [r1, #9] - bl RemoveScrollIndicatorArrowPair - adds r0, r5, #0 - bl Mailbox_ReturnToPlayerPC - b _0816B532 -_0816B4FE: - movs r0, #5 - bl sub_080A306C - movs r0, #0 - bl sub_081D13B4 - movs r0, #1 - bl sub_081D13B4 - ldrb r0, [r4, #0xa] - adds r1, r7, #0 - mov r2, r8 - bl DestroyListMenuTask - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - mov r1, r8 - ldrb r0, [r1, #9] - bl RemoveScrollIndicatorArrowPair - mov r0, sl - subs r0, #8 - add r0, sb - ldr r1, _0816B540 - str r1, [r0] -_0816B532: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0816B540: .4byte sub_0816B544 - thumb_func_end Mailbox_ProcessInput - - thumb_func_start sub_0816B544 -sub_0816B544: @ 0x0816B544 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _0816B588 - ldr r3, _0816B58C - ldr r1, _0816B590 - ldrh r2, [r1] - adds r2, #6 - ldrh r1, [r1, #2] - adds r2, r2, r1 - lsls r1, r2, #3 - adds r1, r1, r2 - lsls r1, r1, #2 - ldr r2, [r3] - adds r1, r1, r2 - ldr r2, _0816B594 - adds r1, r1, r2 - bl StringCopy - ldr r5, _0816B598 - ldr r1, _0816B59C - adds r0, r5, #0 - bl StringExpandPlaceholders - ldr r2, _0816B5A0 - adds r0, r4, #0 - adds r1, r5, #0 - bl DisplayItemMessageOnField - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0816B588: .4byte gUnknown_2021C40 -_0816B58C: .4byte gUnknown_3005AEC -_0816B590: .4byte gUnknown_203B984 -_0816B594: .4byte 0x00002BF2 -_0816B598: .4byte gUnknown_2021C7C -_0816B59C: .4byte gUnknown_85CA988 -_0816B5A0: .4byte sub_0816B5E8 - thumb_func_end sub_0816B544 - - thumb_func_start Mailbox_ReturnToPlayerPC -Mailbox_ReturnToPlayerPC: @ 0x0816B5A4 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - ldr r0, _0816B5E4 - adds r4, r4, r0 - movs r0, #0 - bl sub_081D13B4 - movs r0, #1 - bl sub_081D13B4 - ldrb r0, [r4, #0xa] - movs r1, #0 - movs r2, #0 - bl DestroyListMenuTask - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - bl sub_081D1508 - adds r0, r5, #0 - bl ReshowPlayerPC - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0816B5E4: .4byte gUnknown_3005B68 - thumb_func_end Mailbox_ReturnToPlayerPC - - thumb_func_start sub_0816B5E8 -sub_0816B5E8: @ 0x0816B5E8 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0xc - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - movs r0, #2 - bl UpdateWorldOfMastersAndPutItOnTheAir - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - movs r1, #0 - bl GetFontAttribute - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r0, #0x10 - mov r8, r0 - str r0, [sp] - movs r6, #4 - str r6, [sp, #4] - ldr r0, _0816B660 - str r0, [sp, #8] - adds r0, r4, #0 - movs r1, #1 - movs r3, #2 - bl PrintTextArray - mov r0, r8 - str r0, [sp] - str r6, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl sub_081984B0 - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, _0816B664 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0816B668 - str r1, [r0] - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0816B660: .4byte gUnknown_85C0BE8 -_0816B664: .4byte gUnknown_3005B60 -_0816B668: .4byte Mailbox_MailOptionsProcessInput - thumb_func_end sub_0816B5E8 - - thumb_func_start Mailbox_MailOptionsProcessInput -Mailbox_MailOptionsProcessInput: @ 0x0816B66C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r6, r5, #0 - bl ProcessMenuInput_other - lsls r0, r0, #0x18 - asrs r4, r0, #0x18 - movs r0, #2 - rsbs r0, r0, #0 - cmp r4, r0 - beq _0816B6AE - adds r0, #1 - cmp r4, r0 - bne _0816B698 - movs r0, #5 - bl sub_080A306C - adds r0, r5, #0 - bl Mailbox_Cancel - b _0816B6AE -_0816B698: - movs r0, #5 - bl sub_080A306C - ldr r0, _0816B6B4 - lsls r1, r4, #3 - adds r0, #4 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r6, #0 - bl _call_via_r1 -_0816B6AE: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0816B6B4: .4byte gUnknown_85C0BE8 - thumb_func_end Mailbox_MailOptionsProcessInput - - thumb_func_start Mailbox_DoMailRead -Mailbox_DoMailRead: @ 0x0816B6B8 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - movs r1, #0 - bl FadeScreen - ldr r1, _0816B6DC - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0816B6E0 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816B6DC: .4byte gUnknown_3005B60 -_0816B6E0: .4byte Mailbox_FadeAndReadMail - thumb_func_end Mailbox_DoMailRead - - thumb_func_start Mailbox_FadeAndReadMail -Mailbox_FadeAndReadMail: @ 0x0816B6E4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0816B72C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0816B726 - bl sub_081D1508 - bl CleanupOverworldWindowsAndTilemaps - ldr r2, _0816B730 - ldr r1, _0816B734 - ldrh r0, [r1] - adds r0, #6 - ldrh r1, [r1, #2] - adds r0, r0, r1 - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _0816B738 - adds r1, r1, r0 - ldr r0, [r2] - adds r0, r0, r1 - ldr r1, _0816B73C - movs r2, #1 - bl sub_08121568 - adds r0, r4, #0 - bl DestroyTask -_0816B726: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816B72C: .4byte gUnknown_2037C74 -_0816B730: .4byte gUnknown_3005AEC -_0816B734: .4byte gUnknown_203B984 -_0816B738: .4byte 0x00002BE0 -_0816B73C: .4byte sub_0816B740 - thumb_func_end Mailbox_FadeAndReadMail - - thumb_func_start sub_0816B740 -sub_0816B740: @ 0x0816B740 - push {lr} - ldr r0, _0816B754 - ldr r1, _0816B758 - str r1, [r0] - ldr r0, _0816B75C - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0816B754: .4byte gUnknown_3005B0C -_0816B758: .4byte pal_fill_for_maplights_or_black -_0816B75C: .4byte sub_08085A30 - thumb_func_end sub_0816B740 - - thumb_func_start pal_fill_for_maplights_or_black -pal_fill_for_maplights_or_black: @ 0x0816B760 - push {r4, lr} - bl sub_08196F98 - ldr r0, _0816B78C - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0816B790 - ldrb r0, [r0, #5] - bl sub_081D1340 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0816B794 - adds r0, r4, #0 - bl sub_0816B41C - b _0816B79A - .align 2, 0 -_0816B78C: .4byte sub_0816B7A4 -_0816B790: .4byte gUnknown_203B984 -_0816B794: - adds r0, r4, #0 - bl DestroyTask -_0816B79A: - bl pal_fill_black - pop {r4} - pop {r0} - bx r0 - thumb_func_end pal_fill_for_maplights_or_black - - thumb_func_start sub_0816B7A4 -sub_0816B7A4: @ 0x0816B7A4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl IsWeatherNotFadingIn - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0816B7C4 - ldr r0, _0816B7CC - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _0816B7D0 - str r0, [r1] -_0816B7C4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816B7CC: .4byte gUnknown_3005B60 -_0816B7D0: .4byte Mailbox_ProcessInput - thumb_func_end sub_0816B7A4 - - thumb_func_start sub_0816B7D4 -sub_0816B7D4: @ 0x0816B7D4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0816B7E8 - ldr r2, _0816B7EC - bl DisplayItemMessageOnField - pop {r0} - bx r0 - .align 2, 0 -_0816B7E8: .4byte gUnknown_85CA99A -_0816B7EC: .4byte Mailbox_DrawYesNoBeforeMove - thumb_func_end sub_0816B7D4 - - thumb_func_start Mailbox_DrawYesNoBeforeMove -Mailbox_DrawYesNoBeforeMove: @ 0x0816B7F0 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_08197714 - ldr r1, _0816B810 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0816B814 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816B810: .4byte gUnknown_3005B60 -_0816B814: .4byte Mailbox_MoveToBagYesNoPrompt - thumb_func_end Mailbox_DrawYesNoBeforeMove - - thumb_func_start Mailbox_MoveToBagYesNoPrompt -Mailbox_MoveToBagYesNoPrompt: @ 0x0816B818 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _0816B844 - cmp r0, r1 - ble _0816B850 - cmp r0, #0 - beq _0816B83C - cmp r0, #1 - beq _0816B84A - b _0816B850 -_0816B83C: - adds r0, r4, #0 - bl Mailbox_DoMailMoveToBag - b _0816B850 -_0816B844: - movs r0, #5 - bl sub_080A306C -_0816B84A: - adds r0, r4, #0 - bl Mailbox_CancelMoveToBag -_0816B850: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Mailbox_MoveToBagYesNoPrompt - - thumb_func_start Mailbox_DoMailMoveToBag -Mailbox_DoMailMoveToBag: @ 0x0816B858 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r2, _0816B894 - ldr r4, _0816B898 - ldrh r1, [r4] - adds r1, #6 - ldrh r0, [r4, #2] - adds r1, r1, r0 - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0816B89C - adds r0, r0, r1 - ldr r1, [r2] - adds r5, r1, r0 - ldrh r0, [r5, #0x20] - movs r1, #1 - bl AddBagItem - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0816B8A8 - ldr r1, _0816B8A0 - ldr r2, _0816B8A4 - adds r0, r6, #0 - bl DisplayItemMessageOnField - b _0816B8DC - .align 2, 0 -_0816B894: .4byte gUnknown_3005AEC -_0816B898: .4byte gUnknown_203B984 -_0816B89C: .4byte 0x00002BE0 -_0816B8A0: .4byte gUnknown_85CA9B3 -_0816B8A4: .4byte Mailbox_Cancel -_0816B8A8: - ldr r1, _0816B8E4 - ldr r2, _0816B8E8 - adds r0, r6, #0 - bl DisplayItemMessageOnField - adds r0, r5, #0 - bl ClearMailStruct - bl Mailbox_UpdateMailList - ldrb r0, [r4, #5] - subs r0, #1 - strb r0, [r4, #5] - ldrb r1, [r4, #5] - ldrb r0, [r4, #4] - ldrh r2, [r4, #2] - adds r0, r0, r2 - cmp r1, r0 - bge _0816B8D6 - cmp r2, #0 - beq _0816B8D6 - subs r0, r2, #1 - strh r0, [r4, #2] -_0816B8D6: - adds r0, r6, #0 - bl ItemStorage_SetItemAndMailCount -_0816B8DC: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0816B8E4: .4byte gUnknown_85CA9C2 -_0816B8E8: .4byte Mailbox_Cancel - thumb_func_end Mailbox_DoMailMoveToBag - - thumb_func_start Mailbox_CancelMoveToBag -Mailbox_CancelMoveToBag: @ 0x0816B8EC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl Mailbox_Cancel - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Mailbox_CancelMoveToBag - - thumb_func_start Mailbox_Give -Mailbox_Give: @ 0x0816B8FC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl sub_0806B004 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0816B914 - adds r0, r4, #0 - bl sub_0816B9F8 - b _0816B92A -_0816B914: - movs r0, #1 - movs r1, #0 - bl FadeScreen - ldr r0, _0816B930 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _0816B934 - str r0, [r1] -_0816B92A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816B930: .4byte gUnknown_3005B60 -_0816B934: .4byte sub_0816B938 - thumb_func_end Mailbox_Give - - thumb_func_start sub_0816B938 -sub_0816B938: @ 0x0816B938 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0816B964 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0816B95C - bl sub_081D1508 - bl CleanupOverworldWindowsAndTilemaps - bl sub_081B80E8 - adds r0, r4, #0 - bl DestroyTask -_0816B95C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816B964: .4byte gUnknown_2037C74 - thumb_func_end sub_0816B938 - - thumb_func_start sub_0816B968 -sub_0816B968: @ 0x0816B968 - push {lr} - ldr r0, _0816B97C - ldr r1, _0816B980 - str r1, [r0] - ldr r0, _0816B984 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0816B97C: .4byte gUnknown_3005B0C -_0816B980: .4byte Mailbox_UpdateMailListAfterDeposit -_0816B984: .4byte sub_08085A30 - thumb_func_end sub_0816B968 - - thumb_func_start Mailbox_UpdateMailListAfterDeposit -Mailbox_UpdateMailListAfterDeposit: @ 0x0816B988 - push {r4, r5, r6, lr} - ldr r0, _0816B9E0 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r5, _0816B9E4 - ldrb r4, [r5, #5] - bl GetMailboxMailCount - strb r0, [r5, #5] - bl Mailbox_UpdateMailList - ldrb r0, [r5, #5] - cmp r4, r0 - beq _0816B9BE - ldrb r1, [r5, #5] - ldrb r0, [r5, #4] - ldrh r2, [r5, #2] - adds r0, r0, r2 - cmp r1, r0 - bge _0816B9BE - cmp r2, #0 - beq _0816B9BE - subs r0, r2, #1 - strh r0, [r5, #2] -_0816B9BE: - adds r0, r6, #0 - bl ItemStorage_SetItemAndMailCount - bl sub_08196F98 - ldr r0, _0816B9E4 - ldrb r0, [r0, #5] - bl sub_081D1340 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0816B9E8 - adds r0, r6, #0 - bl sub_0816B41C - b _0816B9EE - .align 2, 0 -_0816B9E0: .4byte sub_0816B7A4 -_0816B9E4: .4byte gUnknown_203B984 -_0816B9E8: - adds r0, r6, #0 - bl DestroyTask -_0816B9EE: - bl pal_fill_black - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end Mailbox_UpdateMailListAfterDeposit - - thumb_func_start sub_0816B9F8 -sub_0816B9F8: @ 0x0816B9F8 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0816BA0C - ldr r2, _0816BA10 - bl DisplayItemMessageOnField - pop {r0} - bx r0 - .align 2, 0 -_0816BA0C: .4byte gUnknown_85C9472 -_0816BA10: .4byte Mailbox_Cancel - thumb_func_end sub_0816B9F8 - - thumb_func_start Mailbox_Cancel -Mailbox_Cancel: @ 0x0816BA14 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #2 - bl sub_081D13B4 - movs r0, #0 - movs r1, #0 - bl sub_08197028 - adds r0, r4, #0 - bl sub_0816B41C - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, _0816BA4C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0816BA50 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816BA4C: .4byte gUnknown_3005B60 -_0816BA50: .4byte Mailbox_ProcessInput - thumb_func_end Mailbox_Cancel - - thumb_func_start sub_0816BA54 -sub_0816BA54: @ 0x0816BA54 - push {r4, lr} - ldr r4, _0816BA8C - movs r0, #0xce - lsls r0, r0, #3 - bl AllocZeroed - str r0, [r4] - movs r1, #0xcc - lsls r1, r1, #3 - adds r0, r0, r1 - movs r1, #0xff - movs r2, #6 - bl memset - ldr r0, [r4] - ldr r1, _0816BA90 - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] - ldr r0, [r4] - ldr r1, _0816BA94 - adds r0, r0, r1 - movs r1, #1 - rsbs r1, r1, #0 - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816BA8C: .4byte gUnknown_203B990 -_0816BA90: .4byte 0x00000666 -_0816BA94: .4byte 0x00000667 - thumb_func_end sub_0816BA54 - - thumb_func_start AnimTask_LoadPokeblockGfx -AnimTask_LoadPokeblockGfx: @ 0x0816BA98 - push {r4, lr} - movs r4, #0 -_0816BA9C: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl sub_0816BB04 - adds r4, #1 - cmp r4, #5 - bls _0816BA9C - ldr r0, _0816BAB8 - ldr r0, [r0] - bl Free - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816BAB8: .4byte gUnknown_203B990 - thumb_func_end AnimTask_LoadPokeblockGfx - - thumb_func_start sub_0816BABC -sub_0816BABC: @ 0x0816BABC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _0816BAFC - movs r3, #0xcc - lsls r3, r3, #3 - adds r1, r2, r3 - ldr r0, [r0] - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, #0xff - bne _0816BAF4 - lsls r0, r2, #3 - ldr r1, _0816BB00 - adds r0, r0, r1 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r2, #0x85 - lsls r2, r2, #2 - movs r1, #0 - movs r3, #0xe - bl DrawStdFrameWithCustomTileAndPalette - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram -_0816BAF4: - ldrb r0, [r4] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0816BAFC: .4byte gUnknown_203B990 -_0816BB00: .4byte gUnknown_85C0C40 - thumb_func_end sub_0816BABC - - thumb_func_start sub_0816BB04 -sub_0816BB04: @ 0x0816BB04 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0816BB40 - movs r2, #0xcc - lsls r2, r2, #3 - adds r0, r0, r2 - ldr r1, [r1] - adds r4, r1, r0 - ldrb r0, [r4] - cmp r0, #0xff - beq _0816BB38 - movs r1, #0 - bl sub_08198134 - ldrb r0, [r4] - bl ClearWindowTilemap - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - ldrb r0, [r4] - bl RemoveWindow - movs r0, #0xff - strb r0, [r4] -_0816BB38: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816BB40: .4byte gUnknown_203B990 - thumb_func_end sub_0816BB04 - - thumb_func_start ItemStorage_RefreshListMenu -ItemStorage_RefreshListMenu: @ 0x0816BB44 - push {r4, r5, r6, lr} - movs r6, #0 - ldr r0, _0816BBF0 - ldrb r0, [r0, #5] - subs r0, #1 - cmp r6, r0 - bge _0816BB98 - ldr r5, _0816BBF4 -_0816BB54: - lsls r4, r6, #1 - adds r4, r4, r6 - lsls r4, r4, #3 - movs r0, #0xcc - lsls r0, r0, #1 - adds r4, r4, r0 - ldr r0, [r5] - adds r0, r0, r4 - ldr r1, _0816BBF8 - ldr r1, [r1] - lsls r2, r6, #2 - adds r1, r1, r2 - movs r2, #0x93 - lsls r2, r2, #3 - adds r1, r1, r2 - ldrh r1, [r1] - bl CopyItemName_PlayerPC - ldr r0, [r5] - lsls r2, r6, #3 - adds r1, r0, r2 - adds r4, r0, r4 - str r4, [r1] - adds r0, #4 - adds r0, r0, r2 - str r6, [r0] - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r0, _0816BBF0 - ldrb r0, [r0, #5] - subs r0, #1 - cmp r6, r0 - blt _0816BB54 -_0816BB98: - ldr r5, _0816BBF4 - lsls r4, r6, #1 - adds r4, r4, r6 - lsls r4, r4, #3 - movs r3, #0xcc - lsls r3, r3, #1 - adds r4, r4, r3 - ldr r0, [r5] - adds r0, r0, r4 - ldr r1, _0816BBFC - bl StringCopy - ldr r0, [r5] - lsls r2, r6, #3 - adds r1, r0, r2 - adds r4, r0, r4 - str r4, [r1] - adds r0, #4 - adds r0, r0, r2 - movs r1, #2 - rsbs r1, r1, #0 - str r1, [r0] - ldr r4, _0816BC00 - adds r1, r4, #0 - ldr r0, _0816BC04 - ldm r0!, {r2, r3, r6} - stm r1!, {r2, r3, r6} - ldm r0!, {r2, r3, r6} - stm r1!, {r2, r3, r6} - movs r0, #0 - bl sub_0816BABC - strb r0, [r4, #0x10] - ldr r1, _0816BBF0 - ldrb r0, [r1, #5] - strh r0, [r4, #0xc] - ldr r0, [r5] - str r0, [r4] - ldrb r0, [r1, #4] - strh r0, [r4, #0xe] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0816BBF0: .4byte gUnknown_203B984 -_0816BBF4: .4byte gUnknown_203B990 -_0816BBF8: .4byte gUnknown_3005AEC -_0816BBFC: .4byte gUnknown_85C93C8 -_0816BC00: .4byte gUnknown_3006050 -_0816BC04: .4byte gUnknown_85C0C28 - thumb_func_end ItemStorage_RefreshListMenu - - thumb_func_start CopyItemName_PlayerPC -CopyItemName_PlayerPC: @ 0x0816BC08 - push {lr} - adds r2, r0, #0 - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - adds r1, r2, #0 - bl sub_080D5EC8 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CopyItemName_PlayerPC - - thumb_func_start ItemStorage_MoveCursor -ItemStorage_MoveCursor: @ 0x0816BC1C - push {r4, lr} - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #1 - beq _0816BC2E - movs r0, #5 - bl sub_080A306C -_0816BC2E: - ldr r0, _0816BC60 - ldr r0, [r0] - ldr r1, _0816BC64 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0xff - bne _0816BC78 - bl sub_0816BEFC - movs r0, #2 - rsbs r0, r0, #0 - cmp r4, r0 - beq _0816BC6C - ldr r0, _0816BC68 - ldr r0, [r0] - lsls r1, r4, #2 - adds r0, r0, r1 - movs r1, #0x93 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrh r0, [r0] - bl sub_0816BE94 - b _0816BC72 - .align 2, 0 -_0816BC60: .4byte gUnknown_203B990 -_0816BC64: .4byte 0x00000666 -_0816BC68: .4byte gUnknown_3005AEC -_0816BC6C: - ldr r0, _0816BC80 - bl sub_0816BE94 -_0816BC72: - adds r0, r4, #0 - bl sub_0816BD24 -_0816BC78: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816BC80: .4byte 0x0000FFFF - thumb_func_end ItemStorage_MoveCursor - - thumb_func_start fish4_goto_x5_or_x6 -fish4_goto_x5_or_x6: @ 0x0816BC84 - push {r4, r5, r6, lr} - sub sp, #0xc - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - movs r0, #2 - rsbs r0, r0, #0 - cmp r4, r0 - beq _0816BD06 - ldr r0, _0816BCBC - ldr r0, [r0] - ldr r1, _0816BCC0 - adds r0, r0, r1 - ldrb r1, [r0] - cmp r1, #0xff - beq _0816BCCE - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - cmp r1, r0 - bne _0816BCC4 - adds r0, r5, #0 - movs r1, #0 - movs r2, #0xff - bl sub_0816BE14 - b _0816BCCE - .align 2, 0 -_0816BCBC: .4byte gUnknown_203B990 -_0816BCC0: .4byte 0x00000666 -_0816BCC4: - adds r0, r5, #0 - movs r1, #0xff - movs r2, #0xff - bl sub_0816BE14 -_0816BCCE: - ldr r0, _0816BD10 - ldr r1, _0816BD14 - ldr r1, [r1] - lsls r2, r4, #2 - adds r1, r1, r2 - ldr r2, _0816BD18 - adds r1, r1, r2 - ldrh r1, [r1] - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - ldr r4, _0816BD1C - ldr r1, _0816BD20 - adds r0, r4, #0 - bl StringExpandPlaceholders - str r5, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - adds r0, r6, #0 - movs r1, #1 - adds r2, r4, #0 - movs r3, #0x50 - bl AddTextPrinterParameterized -_0816BD06: - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0816BD10: .4byte gUnknown_2021C40 -_0816BD14: .4byte gUnknown_3005AEC -_0816BD18: .4byte 0x0000049A -_0816BD1C: .4byte gUnknown_2021C7C -_0816BD20: .4byte gUnknown_85C943C - thumb_func_end fish4_goto_x5_or_x6 - - thumb_func_start sub_0816BD24 -sub_0816BD24: @ 0x0816BD24 - push {r4, r5, lr} - sub sp, #0xc - adds r1, r0, #0 - ldr r0, _0816BD54 - ldr r0, [r0] - ldr r2, _0816BD58 - adds r0, r0, r2 - ldrb r5, [r0] - movs r0, #2 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0816BD60 - ldr r0, _0816BD5C - ldr r0, [r0] - lsls r1, r1, #2 - adds r0, r0, r1 - movs r1, #0x93 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrh r0, [r0] - bl sub_080D6D40 - b _0816BD66 - .align 2, 0 -_0816BD54: .4byte gUnknown_203B990 -_0816BD58: .4byte 0x00000661 -_0816BD5C: .4byte gUnknown_3005AEC -_0816BD60: - ldr r0, _0816BD90 - bl ItemStorage_GetItemPcResponse -_0816BD66: - adds r4, r0, #0 - adds r0, r5, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - adds r0, r5, #0 - movs r1, #1 - adds r2, r4, #0 - movs r3, #0 - bl AddTextPrinterParameterized - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0816BD90: .4byte 0x0000FFFF - thumb_func_end sub_0816BD24 - - thumb_func_start ItemStorage_StartScrollIndicator -ItemStorage_StartScrollIndicator: @ 0x0816BD94 - push {r4, lr} - sub sp, #0x10 - ldr r4, _0816BDC8 - ldrb r0, [r4, #9] - cmp r0, #0xff - bne _0816BDC0 - ldrb r0, [r4, #5] - ldrb r1, [r4, #4] - subs r0, r0, r1 - str r0, [sp] - ldr r0, _0816BDCC - str r0, [sp, #4] - str r0, [sp, #8] - adds r0, r4, #2 - str r0, [sp, #0xc] - movs r0, #2 - movs r1, #0xb0 - movs r2, #0xc - movs r3, #0x94 - bl AddScrollIndicatorArrowPairParameterized - strb r0, [r4, #9] -_0816BDC0: - add sp, #0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816BDC8: .4byte gUnknown_203B984 -_0816BDCC: .4byte 0x000013F8 - thumb_func_end ItemStorage_StartScrollIndicator - - thumb_func_start ItemStorage_RemoveScrollIndicator -ItemStorage_RemoveScrollIndicator: @ 0x0816BDD0 - push {r4, lr} - ldr r4, _0816BDE8 - ldrb r0, [r4, #9] - cmp r0, #0xff - beq _0816BDE2 - bl RemoveScrollIndicatorArrowPair - movs r0, #0xff - strb r0, [r4, #9] -_0816BDE2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816BDE8: .4byte gUnknown_203B984 - thumb_func_end ItemStorage_RemoveScrollIndicator - - thumb_func_start sub_0816BDEC -sub_0816BDEC: @ 0x0816BDEC - push {r4, r5, lr} - adds r4, r1, #0 - adds r5, r2, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - bl ListMenuGetYCoordForPrintingArrowCursor - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_0816BE14 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_0816BDEC - - thumb_func_start sub_0816BE14 -sub_0816BE14: @ 0x0816BE14 - push {r4, r5, r6, lr} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r0, _0816BE60 - ldr r0, [r0] - movs r3, #0xcc - lsls r3, r3, #3 - adds r0, r0, r3 - ldrb r5, [r0] - cmp r1, #0xff - bne _0816BE64 - movs r0, #1 - movs r1, #0 - bl sub_0800629C - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - movs r1, #1 - bl sub_0800629C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r4, [sp] - str r0, [sp, #4] - adds r0, r5, #0 - movs r1, #0x11 - movs r2, #0 - adds r3, r6, #0 - bl sub_08003A34 - b _0816BE84 - .align 2, 0 -_0816BE60: .4byte gUnknown_203B990 -_0816BE64: - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - ldr r0, _0816BE8C - str r0, [sp, #8] - lsls r0, r2, #0x18 - asrs r0, r0, #0x18 - str r0, [sp, #0xc] - ldr r0, _0816BE90 - str r0, [sp, #0x10] - adds r0, r5, #0 - movs r1, #1 - movs r2, #0 - adds r3, r6, #0 - bl AddTextPrinterParameterized4 -_0816BE84: - add sp, #0x14 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0816BE8C: .4byte gUnknown_85C0C70 -_0816BE90: .4byte gUnknown_85C9421 - thumb_func_end sub_0816BE14 - - thumb_func_start sub_0816BE94 -sub_0816BE94: @ 0x0816BE94 - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r0, _0816BEEC - ldr r0, [r0] - ldr r1, _0816BEF0 - adds r5, r0, r1 - ldrb r0, [r5] - cmp r0, #0xff - bne _0816BEE6 - ldr r4, _0816BEF4 - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl FreeSpritePaletteByTag - adds r0, r4, #0 - adds r1, r4, #0 - adds r2, r6, #0 - bl AddItemIconSprite - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x40 - beq _0816BEE6 - strb r2, [r5] - ldr r0, _0816BEF8 - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #5] - movs r0, #0x18 - strh r0, [r1, #0x24] - movs r0, #0x50 - strh r0, [r1, #0x26] -_0816BEE6: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0816BEEC: .4byte gUnknown_203B990 -_0816BEF0: .4byte 0x00000667 -_0816BEF4: .4byte 0x000013F6 -_0816BEF8: .4byte gUnknown_20205AC - thumb_func_end sub_0816BE94 - - thumb_func_start sub_0816BEFC -sub_0816BEFC: @ 0x0816BEFC - push {r4, r5, lr} - ldr r0, _0816BF34 - ldr r0, [r0] - ldr r1, _0816BF38 - adds r5, r0, r1 - ldrb r0, [r5] - cmp r0, #0xff - beq _0816BF2E - ldr r4, _0816BF3C - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl FreeSpritePaletteByTag - ldrb r1, [r5] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0816BF40 - adds r0, r0, r1 - bl DestroySprite - movs r0, #0xff - strb r0, [r5] -_0816BF2E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0816BF34: .4byte gUnknown_203B990 -_0816BF38: .4byte 0x00000667 -_0816BF3C: .4byte 0x000013F6 -_0816BF40: .4byte gUnknown_20205AC - thumb_func_end sub_0816BEFC - - thumb_func_start sub_0816BF44 -sub_0816BF44: @ 0x0816BF44 - push {lr} - sub sp, #4 - bl CompactPCItems - ldr r0, _0816BF6C - ldr r0, [r0] - movs r1, #0x93 - lsls r1, r1, #3 - adds r0, r0, r1 - ldr r2, _0816BF70 - adds r3, r2, #1 - movs r1, #8 - str r1, [sp] - movs r1, #0x32 - bl sub_08122218 - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_0816BF6C: .4byte gUnknown_3005AEC -_0816BF70: .4byte gUnknown_203B988 - thumb_func_end sub_0816BF44 - - thumb_func_start sub_0816BF74 -sub_0816BF74: @ 0x0816BF74 - push {lr} - ldr r0, _0816BF88 - subs r1, r0, #2 - ldrb r2, [r1, #4] - ldrb r3, [r1, #5] - bl sub_08122268 - pop {r0} - bx r0 - .align 2, 0 -_0816BF88: .4byte gUnknown_203B986 - thumb_func_end sub_0816BF74 - - thumb_func_start sub_0816BF8C -sub_0816BF8C: @ 0x0816BF8C - push {r4, r5, r6, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _0816BFD4 - adds r6, r0, r1 - movs r4, #0 -_0816BFA0: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl sub_0816BABC - adds r4, #1 - cmp r4, #3 - bls _0816BFA0 - movs r0, #6 - ldrsh r3, [r6, r0] - cmp r3, #0 - bne _0816BFE4 - ldr r0, _0816BFD8 - ldr r0, [r0] - ldr r1, _0816BFDC - adds r0, r0, r1 - ldrb r0, [r0] - ldr r2, _0816BFE0 - movs r1, #2 - str r1, [sp] - str r3, [sp, #4] - str r3, [sp, #8] - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - b _0816C002 - .align 2, 0 -_0816BFD4: .4byte gUnknown_3005B68 -_0816BFD8: .4byte gUnknown_203B990 -_0816BFDC: .4byte 0x00000663 -_0816BFE0: .4byte gUnknown_85CA8C7 -_0816BFE4: - ldr r0, _0816C050 - ldr r0, [r0] - ldr r1, _0816C054 - adds r0, r0, r1 - ldrb r0, [r0] - ldr r2, _0816C058 - movs r1, #2 - str r1, [sp] - movs r1, #0 - str r1, [sp, #4] - str r1, [sp, #8] - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized -_0816C002: - ldr r0, _0816C050 - ldr r0, [r0] - ldr r1, _0816C05C - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #2 - bl CopyWindowToVram - bl sub_0816BF44 - bl sub_0816BF74 - bl ItemStorage_RefreshListMenu - ldr r0, _0816C060 - ldr r2, _0816C064 - ldrh r1, [r2, #2] - ldrh r2, [r2] - bl ListMenuInit - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r6, #0xa] - bl ItemStorage_StartScrollIndicator - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, _0816C068 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0816C06C - str r1, [r0] - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0816C050: .4byte gUnknown_203B990 -_0816C054: .4byte 0x00000663 -_0816C058: .4byte gUnknown_85CA8D1 -_0816C05C: .4byte 0x00000662 -_0816C060: .4byte gUnknown_3006050 -_0816C064: .4byte gUnknown_203B984 -_0816C068: .4byte gUnknown_3005B60 -_0816C06C: .4byte ItemStorage_ProcessInput - thumb_func_end sub_0816BF8C - - thumb_func_start ItemStorage_GetItemPcResponse -ItemStorage_GetItemPcResponse: @ 0x0816C070 - push {lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r2, _0816C088 - adds r0, r1, r2 - cmp r0, #8 - bhi _0816C0FC - lsls r0, r0, #2 - ldr r1, _0816C08C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0816C088: .4byte 0xFFFF0009 -_0816C08C: .4byte _0816C090 -_0816C090: @ jump table - .4byte _0816C0F4 @ case 0 - .4byte _0816C0EC @ case 1 - .4byte _0816C0E4 @ case 2 - .4byte _0816C0DC @ case 3 - .4byte _0816C0D4 @ case 4 - .4byte _0816C0CC @ case 5 - .4byte _0816C0C4 @ case 6 - .4byte _0816C0BC @ case 7 - .4byte _0816C0B4 @ case 8 -_0816C0B4: - ldr r0, _0816C0B8 - b _0816C102 - .align 2, 0 -_0816C0B8: .4byte gUnknown_85C9423 -_0816C0BC: - ldr r0, _0816C0C0 - b _0816C102 - .align 2, 0 -_0816C0C0: .4byte gUnknown_85CA938 -_0816C0C4: - ldr r0, _0816C0C8 - b _0816C102 - .align 2, 0 -_0816C0C8: .4byte gUnknown_85CA949 -_0816C0CC: - ldr r0, _0816C0D0 - b _0816C102 - .align 2, 0 -_0816C0D0: .4byte gUnknown_85C9523 -_0816C0D4: - ldr r0, _0816C0D8 - b _0816C102 - .align 2, 0 -_0816C0D8: .4byte gUnknown_85C9532 -_0816C0DC: - ldr r0, _0816C0E0 - b _0816C102 - .align 2, 0 -_0816C0E0: .4byte gUnknown_85CA925 -_0816C0E4: - ldr r0, _0816C0E8 - b _0816C102 - .align 2, 0 -_0816C0E8: .4byte gUnknown_85C9506 -_0816C0EC: - ldr r0, _0816C0F0 - b _0816C102 - .align 2, 0 -_0816C0F0: .4byte gUnknown_85C9540 -_0816C0F4: - ldr r0, _0816C0F8 - b _0816C102 - .align 2, 0 -_0816C0F8: .4byte gUnknown_85C947F -_0816C0FC: - adds r0, r1, #0 - bl sub_080D6D40 -_0816C102: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ItemStorage_GetItemPcResponse - - thumb_func_start ItemStorage_PrintItemPcResponse -ItemStorage_PrintItemPcResponse: @ 0x0816C108 - push {r4, r5, r6, lr} - sub sp, #0xc - adds r6, r0, #0 - ldr r0, _0816C148 - ldr r0, [r0] - ldr r1, _0816C14C - adds r0, r0, r1 - ldrb r5, [r0] - adds r0, r5, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r4, _0816C150 - adds r0, r4, #0 - adds r1, r6, #0 - bl StringExpandPlaceholders - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - adds r0, r5, #0 - movs r1, #1 - adds r2, r4, #0 - movs r3, #0 - bl AddTextPrinterParameterized - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0816C148: .4byte gUnknown_203B990 -_0816C14C: .4byte 0x00000661 -_0816C150: .4byte gUnknown_2021C7C - thumb_func_end ItemStorage_PrintItemPcResponse - - thumb_func_start ItemStorage_ProcessInput -ItemStorage_ProcessInput: @ 0x0816C154 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _0816C198 - adds r4, r0, r1 - ldr r0, _0816C19C - ldrh r1, [r0, #0x2e] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0816C1A4 - ldrb r0, [r4, #0xa] - ldr r1, _0816C1A0 - subs r4, r1, #2 - adds r2, r4, #0 - bl ListMenuGetScrollAndRow - ldrh r1, [r4, #2] - ldrh r0, [r4] - adds r1, r1, r0 - ldrb r0, [r4, #5] - subs r0, #1 - cmp r1, r0 - beq _0816C1E6 - movs r0, #5 - bl sub_080A306C - adds r0, r5, #0 - bl ItemStorage_ItemSwapChoosePrompt - b _0816C1E6 - .align 2, 0 -_0816C198: .4byte gUnknown_3005B68 -_0816C19C: .4byte gUnknown_3002360 -_0816C1A0: .4byte gUnknown_203B986 -_0816C1A4: - ldrb r0, [r4, #0xa] - bl ListMenu_ProcessInput - adds r6, r0, #0 - ldrb r0, [r4, #0xa] - ldr r1, _0816C1C8 - subs r2, r1, #2 - bl ListMenuGetScrollAndRow - movs r0, #2 - rsbs r0, r0, #0 - cmp r6, r0 - beq _0816C1CC - adds r0, #1 - cmp r6, r0 - bne _0816C1DA - b _0816C1E6 - .align 2, 0 -_0816C1C8: .4byte gUnknown_203B986 -_0816C1CC: - movs r0, #5 - bl sub_080A306C - adds r0, r5, #0 - bl sub_0816C1EC - b _0816C1E6 -_0816C1DA: - movs r0, #5 - bl sub_080A306C - adds r0, r5, #0 - bl ItemStorage_DoItemAction -_0816C1E6: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end ItemStorage_ProcessInput - - thumb_func_start sub_0816C1EC -sub_0816C1EC: @ 0x0816C1EC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - ldr r0, _0816C23C - adds r4, r4, r0 - bl sub_0816BEFC - bl ItemStorage_RemoveScrollIndicator - ldrb r0, [r4, #0xa] - movs r1, #0 - movs r2, #0 - bl DestroyListMenuTask - ldr r0, _0816C240 - ldr r0, [r0] - movs r1, #0xcd - lsls r1, r1, #3 - adds r0, r0, r1 - movs r1, #7 - bl sub_081223BC - bl AnimTask_LoadPokeblockGfx - movs r0, #0 - movs r1, #0 - bl sub_08196FB8 - movs r1, #6 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0816C244 - adds r0, r5, #0 - movs r1, #0 - bl sub_0816AFA8 - b _0816C24C - .align 2, 0 -_0816C23C: .4byte gUnknown_3005B68 -_0816C240: .4byte gUnknown_203B990 -_0816C244: - adds r0, r5, #0 - movs r1, #2 - bl sub_0816AFA8 -_0816C24C: - ldr r0, _0816C260 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _0816C264 - str r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0816C260: .4byte gUnknown_3005B60 -_0816C264: .4byte ItemStorageMenuProcessInput - thumb_func_end sub_0816C1EC - - thumb_func_start ItemStorage_ItemSwapChoosePrompt -ItemStorage_ItemSwapChoosePrompt: @ 0x0816C268 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _0816C2F4 - mov r8, r0 - adds r1, r4, #0 - add r1, r8 - mov sb, r1 - ldrb r0, [r1, #0xa] - movs r1, #0x10 - movs r2, #1 - bl ListMenuSetUnkIndicatorsStructField - ldr r6, _0816C2F8 - ldr r2, [r6] - ldr r1, _0816C2FC - ldrb r0, [r1] - ldrb r1, [r1, #2] - adds r0, r0, r1 - ldr r5, _0816C300 - adds r2, r2, r5 - strb r0, [r2] - mov r1, sb - ldrb r0, [r1, #0xa] - movs r1, #0 - movs r2, #0 - bl sub_0816BDEC - ldr r0, [r6] - adds r0, r0, r5 - ldrb r0, [r0] - bl sub_0816C4A8 - ldr r0, _0816C304 - ldr r1, [r0] - ldr r0, [r6] - adds r0, r0, r5 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r1, r1, r0 - movs r0, #0x93 - lsls r0, r0, #3 - adds r1, r1, r0 - ldrh r0, [r1] - ldr r1, _0816C308 - bl sub_080D5EC8 - ldr r0, _0816C30C - bl ItemStorage_GetItemPcResponse - bl ItemStorage_PrintItemPcResponse - movs r1, #8 - rsbs r1, r1, #0 - add r8, r1 - add r4, r8 - ldr r0, _0816C310 - str r0, [r4] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0816C2F4: .4byte gUnknown_3005B68 -_0816C2F8: .4byte gUnknown_203B990 -_0816C2FC: .4byte gUnknown_203B984 -_0816C300: .4byte 0x00000666 -_0816C304: .4byte gUnknown_3005AEC -_0816C308: .4byte gUnknown_2021C40 -_0816C30C: .4byte 0x0000FFF7 -_0816C310: .4byte sub_0816C314 - thumb_func_end ItemStorage_ItemSwapChoosePrompt - - thumb_func_start sub_0816C314 -sub_0816C314: @ 0x0816C314 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _0816C33C - adds r4, r0, r1 - ldr r7, _0816C340 - ldrh r1, [r7, #0x2e] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0816C348 - ldrb r0, [r4, #0xa] - ldr r1, _0816C344 - subs r2, r1, #2 - bl ListMenuGetScrollAndRow - b _0816C396 - .align 2, 0 -_0816C33C: .4byte gUnknown_3005B68 -_0816C340: .4byte gUnknown_3002360 -_0816C344: .4byte gUnknown_203B986 -_0816C348: - ldrb r0, [r4, #0xa] - bl ListMenu_ProcessInput - adds r6, r0, #0 - ldrb r0, [r4, #0xa] - ldr r1, _0816C384 - subs r4, r1, #2 - adds r2, r4, #0 - bl ListMenuGetScrollAndRow - ldr r0, _0816C388 - ldr r0, [r0] - movs r1, #0xcd - lsls r1, r1, #3 - adds r0, r0, r1 - movs r1, #7 - movs r2, #0 - bl sub_08122408 - ldrb r0, [r4] - bl sub_0816C4A8 - movs r0, #2 - rsbs r0, r0, #0 - cmp r6, r0 - beq _0816C38C - adds r0, #1 - cmp r6, r0 - bne _0816C3AA - b _0816C3B2 - .align 2, 0 -_0816C384: .4byte gUnknown_203B986 -_0816C388: .4byte gUnknown_203B990 -_0816C38C: - ldrh r1, [r7, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0816C3A0 -_0816C396: - adds r0, r5, #0 - movs r1, #0 - bl ItemStorage_DoItemSwap - b _0816C3B2 -_0816C3A0: - adds r0, r5, #0 - movs r1, #1 - bl ItemStorage_DoItemSwap - b _0816C3B2 -_0816C3AA: - adds r0, r5, #0 - movs r1, #0 - bl ItemStorage_DoItemSwap -_0816C3B2: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_0816C314 - - thumb_func_start ItemStorage_DoItemSwap -ItemStorage_DoItemSwap: @ 0x0816C3B8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r1, #0 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - ldr r1, _0816C488 - adds r0, r0, r1 - mov r8, r0 - ldr r4, _0816C48C - ldrh r0, [r4] - ldrh r1, [r4, #2] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - movs r0, #5 - bl sub_080A306C - mov r2, r8 - ldrb r0, [r2, #0xa] - adds r1, r4, #2 - adds r2, r4, #0 - bl DestroyListMenuTask - cmp r5, #0 - bne _0816C422 - ldr r1, _0816C490 - ldr r0, [r1] - ldr r2, _0816C494 - adds r0, r0, r2 - ldrb r2, [r0] - adds r4, r1, #0 - cmp r2, r6 - beq _0816C43A - subs r0, r6, #1 - cmp r2, r0 - beq _0816C422 - ldr r0, _0816C498 - ldr r0, [r0] - movs r1, #0x93 - lsls r1, r1, #3 - adds r0, r0, r1 - adds r1, r2, #0 - adds r2, r6, #0 - bl MoveItemSlotInList - bl ItemStorage_RefreshListMenu -_0816C422: - ldr r0, _0816C490 - ldr r1, [r0] - ldr r2, _0816C494 - adds r1, r1, r2 - ldrb r1, [r1] - adds r4, r0, #0 - cmp r1, r6 - bhs _0816C43A - ldr r1, _0816C48C - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] -_0816C43A: - ldr r0, [r4] - movs r1, #0xcd - lsls r1, r1, #3 - adds r0, r0, r1 - movs r1, #7 - movs r2, #1 - bl sub_08122408 - ldr r0, [r4] - ldr r2, _0816C494 - adds r0, r0, r2 - movs r1, #0xff - strb r1, [r0] - ldr r0, _0816C49C - ldr r2, _0816C48C - ldrh r1, [r2, #2] - ldrh r2, [r2] - bl ListMenuInit - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, r8 - strh r0, [r1, #0xa] - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, _0816C4A0 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0816C4A4 - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0816C488: .4byte gUnknown_3005B68 -_0816C48C: .4byte gUnknown_203B984 -_0816C490: .4byte gUnknown_203B990 -_0816C494: .4byte 0x00000666 -_0816C498: .4byte gUnknown_3005AEC -_0816C49C: .4byte gUnknown_3006050 -_0816C4A0: .4byte gUnknown_3005B60 -_0816C4A4: .4byte ItemStorage_ProcessInput - thumb_func_end ItemStorage_DoItemSwap - - thumb_func_start sub_0816C4A8 -sub_0816C4A8: @ 0x0816C4A8 - push {lr} - adds r3, r0, #0 - lsls r3, r3, #0x18 - ldr r0, _0816C4D0 - ldr r0, [r0] - movs r1, #0xcd - lsls r1, r1, #3 - adds r0, r0, r1 - lsrs r3, r3, #4 - movs r1, #0x80 - lsls r1, r1, #0xd - adds r3, r3, r1 - lsrs r3, r3, #0x10 - movs r1, #7 - movs r2, #0x80 - bl sub_08122454 - pop {r0} - bx r0 - .align 2, 0 -_0816C4D0: .4byte gUnknown_203B990 - thumb_func_end sub_0816C4A8 - - thumb_func_start sub_0816C4D4 -sub_0816C4D4: @ 0x0816C4D4 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0xc - adds r5, r0, #0 - adds r6, r3, #0 - ldr r4, [sp, #0x20] - ldr r3, [sp, #0x24] - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r0, _0816C528 - bl sub_080089D8 - ldr r0, _0816C52C - mov r8, r0 - ldr r1, _0816C530 - bl StringExpandPlaceholders - str r4, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - adds r0, r5, #0 - movs r1, #1 - mov r2, r8 - adds r3, r6, #0 - bl AddTextPrinterParameterized - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0816C528: .4byte gUnknown_2021C40 -_0816C52C: .4byte gUnknown_2021C7C -_0816C530: .4byte gUnknown_85C943C - thumb_func_end sub_0816C4D4 - - thumb_func_start ItemStorage_DoItemAction -ItemStorage_DoItemAction: @ 0x0816C534 - push {r4, r5, r6, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _0816C57C - adds r6, r0, r1 - ldr r1, _0816C580 - ldrh r0, [r1, #2] - ldrh r1, [r1] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - bl ItemStorage_RemoveScrollIndicator - movs r0, #1 - strh r0, [r6, #4] - movs r1, #6 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _0816C5B0 - ldr r0, _0816C584 - ldr r1, [r0] - lsls r0, r4, #2 - adds r1, r1, r0 - ldr r2, _0816C588 - adds r0, r1, r2 - ldrh r0, [r0] - cmp r0, #1 - bne _0816C58C - adds r0, r5, #0 - bl ItemStorage_DoItemWithdraw - b _0816C616 - .align 2, 0 -_0816C57C: .4byte gUnknown_3005B68 -_0816C580: .4byte gUnknown_203B984 -_0816C584: .4byte gUnknown_3005AEC -_0816C588: .4byte 0x0000049A -_0816C58C: - movs r2, #0x93 - lsls r2, r2, #3 - adds r0, r1, r2 - ldrh r0, [r0] - ldr r1, _0816C5A8 - bl sub_080D5EC8 - ldr r0, _0816C5AC - bl ItemStorage_GetItemPcResponse - bl ItemStorage_PrintItemPcResponse - b _0816C5EC - .align 2, 0 -_0816C5A8: .4byte gUnknown_2021C40 -_0816C5AC: .4byte 0x0000FFFE -_0816C5B0: - ldr r0, _0816C5CC - ldr r1, [r0] - lsls r0, r4, #2 - adds r1, r1, r0 - ldr r2, _0816C5D0 - adds r0, r1, r2 - ldrh r0, [r0] - cmp r0, #1 - bne _0816C5D4 - adds r0, r5, #0 - bl ItemStorage_DoItemToss - b _0816C616 - .align 2, 0 -_0816C5CC: .4byte gUnknown_3005AEC -_0816C5D0: .4byte 0x0000049A -_0816C5D4: - movs r2, #0x93 - lsls r2, r2, #3 - adds r0, r1, r2 - ldrh r0, [r0] - ldr r1, _0816C620 - bl sub_080D5EC8 - ldr r0, _0816C624 - bl ItemStorage_GetItemPcResponse - bl ItemStorage_PrintItemPcResponse -_0816C5EC: - movs r0, #4 - bl sub_0816BABC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r6, #4] - movs r2, #2 - str r2, [sp] - movs r2, #3 - str r2, [sp, #4] - movs r2, #2 - movs r3, #8 - bl sub_0816C4D4 - ldr r1, _0816C628 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0816C62C - str r1, [r0] -_0816C616: - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0816C620: .4byte gUnknown_2021C40 -_0816C624: .4byte 0x0000FFFC -_0816C628: .4byte gUnknown_3005B60 -_0816C62C: .4byte sub_0816C630 - thumb_func_end ItemStorage_DoItemAction - - thumb_func_start sub_0816C630 -sub_0816C630: @ 0x0816C630 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - mov r8, r4 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _0816C68C - adds r5, r0, r1 - ldr r0, _0816C690 - ldrh r2, [r0, #2] - ldrh r0, [r0] - adds r2, r2, r0 - lsls r2, r2, #0x10 - adds r0, r5, #4 - ldr r7, _0816C694 - ldr r1, [r7] - lsrs r6, r2, #0xe - adds r1, r1, r6 - ldr r2, _0816C698 - adds r1, r1, r2 - ldrh r1, [r1] - bl AdjustQuantityAccordingToDPadInput - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0816C69C - movs r0, #4 - bl sub_0816BABC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r5, #4] - movs r2, #2 - str r2, [sp] - movs r2, #3 - str r2, [sp, #4] - movs r2, #2 - movs r3, #8 - bl sub_0816C4D4 - b _0816C6FE - .align 2, 0 -_0816C68C: .4byte gUnknown_3005B68 -_0816C690: .4byte gUnknown_203B984 -_0816C694: .4byte gUnknown_3005AEC -_0816C698: .4byte 0x0000049A -_0816C69C: - ldr r0, _0816C6C4 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0816C6D0 - movs r0, #5 - bl sub_080A306C - movs r0, #4 - bl sub_0816BB04 - movs r1, #6 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _0816C6C8 - adds r0, r4, #0 - bl ItemStorage_DoItemWithdraw - b _0816C6FE - .align 2, 0 -_0816C6C4: .4byte gUnknown_3002360 -_0816C6C8: - adds r0, r4, #0 - bl ItemStorage_DoItemToss - b _0816C6FE -_0816C6D0: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0816C6FE - movs r0, #5 - bl sub_080A306C - movs r0, #4 - bl sub_0816BB04 - ldr r0, [r7] - adds r0, r0, r6 - movs r2, #0x93 - lsls r2, r2, #3 - adds r0, r0, r2 - ldrh r0, [r0] - bl ItemStorage_GetItemPcResponse - bl ItemStorage_PrintItemPcResponse - mov r0, r8 - bl sub_0816C9D0 -_0816C6FE: - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0816C630 - - thumb_func_start ItemStorage_DoItemWithdraw -ItemStorage_DoItemWithdraw: @ 0x0816C70C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r6, r1, #3 - ldr r0, _0816C780 - mov r8, r0 - adds r4, r6, r0 - ldr r0, _0816C784 - ldrh r1, [r0, #2] - ldrh r0, [r0] - adds r1, r1, r0 - lsls r1, r1, #0x10 - ldr r7, _0816C788 - ldr r0, [r7] - lsrs r5, r1, #0xe - adds r0, r0, r5 - movs r1, #0x93 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrh r0, [r0] - ldrh r1, [r4, #4] - bl AddBagItem - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0816C79C - ldr r0, [r7] - adds r0, r0, r5 - movs r2, #0x93 - lsls r2, r2, #3 - adds r0, r0, r2 - ldrh r0, [r0] - ldr r1, _0816C78C - bl sub_080D5EC8 - ldr r0, _0816C790 - movs r2, #4 - ldrsh r1, [r4, r2] - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - ldr r0, _0816C794 - bl ItemStorage_GetItemPcResponse - bl ItemStorage_PrintItemPcResponse - mov r0, r8 - subs r0, #8 - adds r0, r6, r0 - ldr r1, _0816C798 - b _0816C7B2 - .align 2, 0 -_0816C780: .4byte gUnknown_3005B68 -_0816C784: .4byte gUnknown_203B984 -_0816C788: .4byte gUnknown_3005AEC -_0816C78C: .4byte gUnknown_2021C40 -_0816C790: .4byte gUnknown_2021C54 -_0816C794: .4byte 0x0000FFFD -_0816C798: .4byte ItemStorage_HandleRemoveItem -_0816C79C: - movs r0, #0 - strh r0, [r4, #4] - ldr r0, _0816C7C0 - bl ItemStorage_GetItemPcResponse - bl ItemStorage_PrintItemPcResponse - mov r0, r8 - subs r0, #8 - adds r0, r6, r0 - ldr r1, _0816C7C4 -_0816C7B2: - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0816C7C0: .4byte 0x0000FFFA -_0816C7C4: .4byte ItemStorage_WaitPressHandleResumeProcessInput - thumb_func_end ItemStorage_DoItemWithdraw - - thumb_func_start ItemStorage_DoItemToss -ItemStorage_DoItemToss: @ 0x0816C7C8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - mov r8, r0 - ldr r0, _0816C854 - mov sb, r0 - mov r7, r8 - add r7, sb - ldr r0, _0816C858 - ldrh r1, [r0, #2] - ldrh r0, [r0] - adds r1, r1, r0 - lsls r1, r1, #0x10 - ldr r6, _0816C85C - ldr r0, [r6] - lsrs r4, r1, #0xe - adds r0, r0, r4 - movs r1, #0x93 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrh r0, [r0] - bl sub_080D6D68 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0816C874 - ldr r0, [r6] - adds r0, r0, r4 - movs r2, #0x93 - lsls r2, r2, #3 - adds r0, r0, r2 - ldrh r0, [r0] - ldr r1, _0816C860 - bl sub_080D5EC8 - ldr r0, _0816C864 - movs r2, #4 - ldrsh r1, [r7, r2] - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - ldr r0, _0816C868 - bl ItemStorage_GetItemPcResponse - bl ItemStorage_PrintItemPcResponse - ldr r1, _0816C86C - movs r0, #2 - str r0, [sp] - movs r0, #0x85 - lsls r0, r0, #2 - str r0, [sp, #4] - movs r0, #0xe - str r0, [sp, #8] - ldr r0, _0816C870 - str r0, [sp, #0xc] - adds r0, r5, #0 - movs r2, #1 - movs r3, #0 - bl sub_08121F84 - b _0816C88C - .align 2, 0 -_0816C854: .4byte gUnknown_3005B68 -_0816C858: .4byte gUnknown_203B984 -_0816C85C: .4byte gUnknown_3005AEC -_0816C860: .4byte gUnknown_2021C40 -_0816C864: .4byte gUnknown_2021C54 -_0816C868: .4byte 0x0000FFF8 -_0816C86C: .4byte gUnknown_85C0C68 -_0816C870: .4byte gUnknown_85C0C20 -_0816C874: - movs r0, #0 - strh r0, [r7, #4] - ldr r0, _0816C89C - bl ItemStorage_GetItemPcResponse - bl ItemStorage_PrintItemPcResponse - mov r0, sb - subs r0, #8 - add r0, r8 - ldr r1, _0816C8A0 - str r1, [r0] -_0816C88C: - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0816C89C: .4byte 0x0000FFF9 -_0816C8A0: .4byte ItemStorage_WaitPressHandleResumeProcessInput - thumb_func_end ItemStorage_DoItemToss - - thumb_func_start ItemStorage_ResumeInputFromYesToss -ItemStorage_ResumeInputFromYesToss: @ 0x0816C8A4 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _0816C8CC - bl ItemStorage_GetItemPcResponse - bl ItemStorage_PrintItemPcResponse - ldr r1, _0816C8D0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0816C8D4 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816C8CC: .4byte 0x0000FFFB -_0816C8D0: .4byte gUnknown_3005B60 -_0816C8D4: .4byte ItemStorage_HandleRemoveItem - thumb_func_end ItemStorage_ResumeInputFromYesToss - - thumb_func_start ItemStorage_ResumeInputFromNoToss -ItemStorage_ResumeInputFromNoToss: @ 0x0816C8D8 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _0816C90C - ldr r2, [r0] - ldr r1, _0816C910 - ldrh r0, [r1, #2] - ldrh r1, [r1] - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, r2, r0 - movs r0, #0x93 - lsls r0, r0, #3 - adds r2, r2, r0 - ldrh r0, [r2] - bl ItemStorage_GetItemPcResponse - bl ItemStorage_PrintItemPcResponse - adds r0, r4, #0 - bl sub_0816C9D0 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816C90C: .4byte gUnknown_3005AEC -_0816C910: .4byte gUnknown_203B984 - thumb_func_end ItemStorage_ResumeInputFromNoToss - - thumb_func_start ItemStorage_HandleRemoveItem -ItemStorage_HandleRemoveItem: @ 0x0816C914 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _0816C974 - adds r5, r0, r1 - ldr r0, _0816C978 - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _0816C96E - ldr r4, _0816C97C - ldrb r0, [r4, #2] - ldrb r1, [r4] - adds r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r5, #4] - bl RemovePCItem - ldrb r0, [r5, #0xa] - adds r1, r4, #2 - adds r2, r4, #0 - bl DestroyListMenuTask - bl sub_0816BF44 - bl sub_0816BF74 - bl ItemStorage_RefreshListMenu - ldr r0, _0816C980 - ldrh r1, [r4, #2] - ldrh r2, [r4] - bl ListMenuInit - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0xa] - adds r0, r6, #0 - bl sub_0816C9D0 -_0816C96E: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0816C974: .4byte gUnknown_3005B68 -_0816C978: .4byte gUnknown_3002360 -_0816C97C: .4byte gUnknown_203B984 -_0816C980: .4byte gUnknown_3006050 - thumb_func_end ItemStorage_HandleRemoveItem - - thumb_func_start ItemStorage_WaitPressHandleResumeProcessInput -ItemStorage_WaitPressHandleResumeProcessInput: @ 0x0816C984 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0816C9C4 - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _0816C9BC - ldr r0, _0816C9C8 - ldr r2, [r0] - ldr r1, _0816C9CC - ldrh r0, [r1, #2] - ldrh r1, [r1] - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, r2, r0 - movs r0, #0x93 - lsls r0, r0, #3 - adds r2, r2, r0 - ldrh r0, [r2] - bl ItemStorage_GetItemPcResponse - bl ItemStorage_PrintItemPcResponse - adds r0, r4, #0 - bl sub_0816C9D0 -_0816C9BC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816C9C4: .4byte gUnknown_3002360 -_0816C9C8: .4byte gUnknown_3005AEC -_0816C9CC: .4byte gUnknown_203B984 - thumb_func_end ItemStorage_WaitPressHandleResumeProcessInput - - thumb_func_start sub_0816C9D0 -sub_0816C9D0: @ 0x0816C9D0 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl ItemStorage_StartScrollIndicator - ldr r1, _0816C9F0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0816C9F4 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816C9F0: .4byte gUnknown_3005B60 -_0816C9F4: .4byte ItemStorage_ProcessInput - thumb_func_end sub_0816C9D0 - - thumb_func_start VBlankCB_Intro -VBlankCB_Intro: @ 0x0816C9F8 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl ScanlineEffect_InitHBlankDmaTransfer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end VBlankCB_Intro - - thumb_func_start MainCB2_Intro -MainCB2_Intro: @ 0x0816CA10 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - ldr r0, _0816CA40 - ldrh r0, [r0, #0x2e] - cmp r0, #0 - beq _0816CA4C - ldr r0, _0816CA44 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0816CA4C - ldr r0, _0816CA48 - bl SetMainCallback2 - b _0816CA5C - .align 2, 0 -_0816CA40: .4byte gUnknown_3002360 -_0816CA44: .4byte gUnknown_2037C74 -_0816CA48: .4byte MainCB2_EndIntro -_0816CA4C: - ldr r2, _0816CA60 - ldr r1, [r2] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0816CA5C - adds r0, r1, #1 - str r0, [r2] -_0816CA5C: - pop {r0} - bx r0 - .align 2, 0 -_0816CA60: .4byte gUnknown_3005FE0 - thumb_func_end MainCB2_Intro - - thumb_func_start MainCB2_EndIntro -MainCB2_EndIntro: @ 0x0816CA64 - push {lr} - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0816CA76 - ldr r0, _0816CA7C - bl SetMainCallback2 -_0816CA76: - pop {r0} - bx r0 - .align 2, 0 -_0816CA7C: .4byte sub_080AA06C - thumb_func_end MainCB2_EndIntro - - thumb_func_start LoadCopyrightGraphics -LoadCopyrightGraphics: @ 0x0816CA80 - push {r4, r5, r6, lr} - adds r3, r0, #0 - adds r4, r1, #0 - adds r5, r2, #0 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - ldr r0, _0816CABC - movs r6, #0xc0 - lsls r6, r6, #0x13 - adds r3, r3, r6 - adds r1, r3, #0 - bl LZ77UnCompVram - ldr r0, _0816CAC0 - adds r4, r4, r6 - adds r1, r4, #0 - bl LZ77UnCompVram - ldr r0, _0816CAC4 - adds r1, r5, #0 - movs r2, #0x20 - bl LoadPalette - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0816CABC: .4byte gUnknown_85C0C94 -_0816CAC0: .4byte gUnknown_85C0EF8 -_0816CAC4: .4byte gUnknown_85C0C74 - thumb_func_end LoadCopyrightGraphics - - thumb_func_start sub_0816CAC8 -sub_0816CAC8: @ 0x0816CAC8 - push {lr} - ldr r0, _0816CAD4 - bl GameCubeMultiBoot_HandleSerialInterrupt - pop {r0} - bx r0 - .align 2, 0 -_0816CAD4: .4byte gUnknown_3005FF0 - thumb_func_end sub_0816CAC8 - - thumb_func_start task00_08081A90 -task00_08081A90: @ 0x0816CAD8 - push {r4, r5, lr} - sub sp, #0x10 - ldr r0, _0816CAF8 - movs r1, #0x87 - lsls r1, r1, #3 - adds r5, r0, r1 - ldrb r4, [r5] - cmp r4, #0x8c - bne _0816CAEC - b _0816CC10 -_0816CAEC: - cmp r4, #0x8c - bgt _0816CAFC - cmp r4, #0 - beq _0816CB04 - b _0816CBCC - .align 2, 0 -_0816CAF8: .4byte gUnknown_3002360 -_0816CAFC: - cmp r4, #0x8d - bne _0816CB02 - b _0816CC3C -_0816CB02: - b _0816CBCC -_0816CB04: - movs r0, #0 - bl SetVBlankCallback - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - movs r1, #0xa0 - lsls r1, r1, #0x13 - ldr r2, _0816CBE8 - adds r0, r2, #0 - strh r0, [r1] - movs r0, #0 - movs r1, #0 - bl SetGpuReg - movs r0, #0x10 - movs r1, #0 - bl SetGpuReg - movs r0, #0x12 - movs r1, #0 - bl SetGpuReg - str r4, [sp, #4] - movs r1, #0xc0 - lsls r1, r1, #0x13 - ldr r2, _0816CBEC - add r0, sp, #4 - bl CpuSet - str r4, [sp, #8] - add r0, sp, #8 - movs r1, #0xe0 - lsls r1, r1, #0x13 - ldr r2, _0816CBF0 - bl CpuSet - add r0, sp, #0xc - strh r4, [r0] - ldr r1, _0816CBF4 - ldr r2, _0816CBF8 - bl CpuSet - bl ResetPaletteFade - movs r1, #0xe0 - lsls r1, r1, #6 - movs r0, #0 - movs r2, #0 - bl LoadCopyrightGraphics - bl ScanlineEffect_Stop - bl ResetTasks - bl ResetSpriteData - bl FreeAllSpritePalettes - movs r0, #1 - rsbs r0, r0, #0 - ldr r1, _0816CBFC - str r1, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - movs r1, #0xe0 - lsls r1, r1, #3 - movs r0, #8 - bl SetGpuReg - movs r0, #1 - bl EnableInterrupts - ldr r0, _0816CC00 - bl SetVBlankCallback - movs r1, #0x80 - lsls r1, r1, #0x13 - movs r2, #0xa0 - lsls r2, r2, #1 - adds r0, r2, #0 - strh r0, [r1] - ldr r0, _0816CC04 - bl SetSerialCallback - ldr r0, _0816CC08 - bl GameCubeMultiBoot_Init -_0816CBCC: - bl UpdatePaletteFade - ldr r0, _0816CC0C - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - ldr r0, _0816CC08 - bl GameCubeMultiBoot_Main - b _0816CC84 - .align 2, 0 -_0816CBE8: .4byte 0x00007FFF -_0816CBEC: .4byte 0x05006000 -_0816CBF0: .4byte 0x05000100 -_0816CBF4: .4byte 0x05000002 -_0816CBF8: .4byte 0x010001FF -_0816CBFC: .4byte 0x0000FFFF -_0816CC00: .4byte VBlankCB_Intro -_0816CC04: .4byte sub_0816CAC8 -_0816CC08: .4byte gUnknown_3005FF0 -_0816CC0C: .4byte gUnknown_3002360 -_0816CC10: - ldr r4, _0816CC38 - adds r0, r4, #0 - bl GameCubeMultiBoot_Main - ldrb r0, [r4, #2] - cmp r0, #1 - beq _0816CC84 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - b _0816CC84 - .align 2, 0 -_0816CC38: .4byte gUnknown_3005FF0 -_0816CC3C: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0816CC84 - ldr r0, _0816CC64 - movs r1, #0 - bl CreateTask - ldr r0, _0816CC68 - bl SetMainCallback2 - ldr r1, _0816CC6C - ldrb r0, [r1, #2] - cmp r0, #0 - beq _0816CC70 - adds r0, r1, #0 - bl GameCubeMultiBoot_ExecuteProgram - b _0816CC7A - .align 2, 0 -_0816CC64: .4byte Task_IntroLoadPart1Graphics -_0816CC68: .4byte MainCB2_Intro -_0816CC6C: .4byte gUnknown_3005FF0 -_0816CC70: - bl GameCubeMultiBoot_Quit - ldr r0, _0816CC80 - bl SetSerialCallback -_0816CC7A: - movs r0, #0 - b _0816CC86 - .align 2, 0 -_0816CC80: .4byte SerialCB -_0816CC84: - movs r0, #1 -_0816CC86: - add sp, #0x10 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end task00_08081A90 - - thumb_func_start CB2_InitCopyrightScreenAfterBootup -CB2_InitCopyrightScreenAfterBootup: @ 0x0816CC90 - push {lr} - bl task00_08081A90 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0816CCDE - bl sub_08153498 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl SetSaveBlocksPointers - bl ResetMenuAndMonGlobals - bl Save_ResetSaveCounters - movs r0, #0 - bl Save_LoadGameData - ldr r0, _0816CCE4 - ldrh r0, [r0] - cmp r0, #0 - beq _0816CCC2 - cmp r0, #2 - bne _0816CCC6 -_0816CCC2: - bl Sav2_ClearSetDefault -_0816CCC6: - ldr r0, _0816CCE8 - ldr r0, [r0] - ldrb r0, [r0, #0x15] - lsls r0, r0, #0x1f - lsrs r0, r0, #0x1f - bl SetPokemonCryStereo - ldr r0, _0816CCEC - movs r1, #0xe0 - lsls r1, r1, #9 - bl InitHeap -_0816CCDE: - pop {r0} - bx r0 - .align 2, 0 -_0816CCE4: .4byte gUnknown_3005F50 -_0816CCE8: .4byte gUnknown_3005AF0 -_0816CCEC: .4byte gUnknown_2000000 - thumb_func_end CB2_InitCopyrightScreenAfterBootup - - thumb_func_start sub_0816CCF0 -sub_0816CCF0: @ 0x0816CCF0 - push {lr} - bl task00_08081A90 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0816CCF0 - - thumb_func_start Task_IntroLoadPart1Graphics -Task_IntroLoadPart1Graphics: @ 0x0816CCFC - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0xc - mov r8, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r0, #0 - bl SetVBlankCallback - ldr r4, _0816CEA0 - bl Random - movs r1, #1 - ands r1, r0 - strh r1, [r4] - bl intro_reset_and_hide_bgs - movs r0, #0x1e - movs r1, #0 - bl SetGpuReg - movs r0, #0x1a - movs r1, #0x50 - bl SetGpuReg - movs r0, #0x16 - movs r1, #0x18 - bl SetGpuReg - movs r0, #0x12 - movs r1, #0x28 - bl SetGpuReg - ldr r0, _0816CEA4 - movs r1, #0xc0 - lsls r1, r1, #0x13 - bl LZ77UnCompVram - ldr r0, _0816CEA8 - ldr r1, _0816CEAC - bl LZ77UnCompVram - ldr r1, _0816CEB0 - add r0, sp, #8 - movs r6, #0 - strh r6, [r0] - ldr r4, _0816CEB4 - str r0, [r4] - str r1, [r4, #4] - ldr r5, _0816CEB8 - str r5, [r4, #8] - ldr r0, [r4, #8] - ldr r0, _0816CEBC - ldr r1, _0816CEC0 - bl LZ77UnCompVram - ldr r1, _0816CEC4 - add r0, sp, #8 - strh r6, [r0] - str r0, [r4] - str r1, [r4, #4] - str r5, [r4, #8] - ldr r0, [r4, #8] - ldr r0, _0816CEC8 - ldr r1, _0816CECC - bl LZ77UnCompVram - ldr r1, _0816CED0 - add r0, sp, #8 - strh r6, [r0] - str r0, [r4] - str r1, [r4, #4] - str r5, [r4, #8] - ldr r0, [r4, #8] - ldr r0, _0816CED4 - ldr r1, _0816CED8 - bl LZ77UnCompVram - ldr r1, _0816CEDC - add r0, sp, #8 - strh r6, [r0] - str r0, [r4] - str r1, [r4, #4] - str r5, [r4, #8] - ldr r0, [r4, #8] - ldr r0, _0816CEE0 - movs r5, #0x80 - lsls r5, r5, #2 - movs r1, #0 - adds r2, r5, #0 - bl LoadPalette - ldr r1, _0816CEE4 - movs r0, #0xe - bl SetGpuReg - ldr r1, _0816CEE8 - movs r0, #0xc - bl SetGpuReg - ldr r1, _0816CEEC - movs r0, #0xa - bl SetGpuReg - movs r1, #0x90 - lsls r1, r1, #8 - movs r0, #8 - bl SetGpuReg - ldr r0, _0816CEF0 - bl LoadCompressedSpriteSheet - ldr r0, _0816CEF4 - bl LoadCompressedSpriteSheet - ldr r0, _0816CEF8 - bl LoadSpritePalettes - ldr r0, _0816CEFC - bl LoadCompressedSpriteSheet - ldr r0, _0816CF00 - bl LoadSpritePalettes - ldr r4, _0816CF04 - movs r3, #0xf0 - lsls r3, r3, #1 - adds r1, r4, r3 - adds r0, r4, #0 - movs r2, #0x10 - bl CpuSet - movs r0, #0xe1 - lsls r0, r0, #1 - adds r1, r4, r0 - adds r0, r4, #0 - movs r2, #0xf - bl CpuSet - movs r3, #0xd2 - lsls r3, r3, #1 - adds r1, r4, r3 - adds r0, r4, #0 - movs r2, #0xe - bl CpuSet - movs r0, #0xc3 - lsls r0, r0, #1 - adds r1, r4, r0 - adds r0, r4, #0 - movs r2, #0xd - bl CpuSet - movs r3, #0xb4 - lsls r3, r3, #1 - adds r1, r4, r3 - adds r0, r4, #0 - movs r2, #0xc - bl CpuSet - movs r0, #0xa5 - lsls r0, r0, #1 - adds r1, r4, r0 - adds r0, r4, #0 - movs r2, #0xb - bl CpuSet - movs r3, #0x96 - lsls r3, r3, #1 - adds r1, r4, r3 - adds r0, r4, #0 - movs r2, #0xa - bl CpuSet - movs r0, #0x78 - movs r1, #0x50 - movs r2, #0 - bl CreatePart1Animations - movs r1, #0xe - rsbs r1, r1, #0 - movs r0, #0x78 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - movs r0, #0xec - adds r2, r5, #0 - movs r3, #1 - bl CreateWaterDrop - ldr r2, _0816CF08 - mov r3, r8 - lsls r1, r3, #2 - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r1, #8] - ldr r0, _0816CF0C - str r0, [r1] - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0816CEA0: .4byte gUnknown_203B994 -_0816CEA4: .4byte gUnknown_85C2468 -_0816CEA8: .4byte gUnknown_85C1878 -_0816CEAC: .4byte 0x06008000 -_0816CEB0: .4byte 0x06008800 -_0816CEB4: .4byte 0x040000D4 -_0816CEB8: .4byte 0x81000400 -_0816CEBC: .4byte gUnknown_85C1C2C -_0816CEC0: .4byte 0x06009000 -_0816CEC4: .4byte 0x06009800 -_0816CEC8: .4byte gUnknown_85C1F60 -_0816CECC: .4byte 0x0600A000 -_0816CED0: .4byte 0x0600A800 -_0816CED4: .4byte gUnknown_85C2250 -_0816CED8: .4byte 0x0600B000 -_0816CEDC: .4byte 0x0600B800 -_0816CEE0: .4byte gUnknown_85C1678 -_0816CEE4: .4byte 0x00009603 -_0816CEE8: .4byte 0x00009402 -_0816CEEC: .4byte 0x00009201 -_0816CEF0: .4byte gUnknown_85C6090 -_0816CEF4: .4byte gUnknown_85C60A0 -_0816CEF8: .4byte gUnknown_85C60B0 -_0816CEFC: .4byte gUnknown_85C5B28 -_0816CF00: .4byte gUnknown_85C5B38 -_0816CF04: .4byte gUnknown_20375B4 -_0816CF08: .4byte gUnknown_3005B60 -_0816CF0C: .4byte Task_IntroFadeIn - thumb_func_end Task_IntroLoadPart1Graphics - - thumb_func_start Task_IntroFadeIn -Task_IntroFadeIn: @ 0x0816CF10 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - rsbs r0, r0, #0 - movs r5, #0 - str r5, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r0, _0816CF64 - bl SetVBlankCallback - movs r1, #0xfa - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - ldr r1, _0816CF68 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0816CF6C - str r1, [r0] - ldr r0, _0816CF70 - str r5, [r0] - movs r0, #0xcf - lsls r0, r0, #1 - bl m4aSongNumStart - bl ResetSerial - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0816CF64: .4byte VBlankCB_Intro -_0816CF68: .4byte gUnknown_3005B60 -_0816CF6C: .4byte Task_IntroWaterDrops -_0816CF70: .4byte gUnknown_3005FE0 - thumb_func_end Task_IntroFadeIn - - thumb_func_start Task_IntroWaterDrops -Task_IntroWaterDrops: @ 0x0816CF74 - push {r4, r5, r6, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r6, r4, #0 - ldr r5, _0816D068 - ldr r0, [r5] - cmp r0, #0x4c - bne _0816CFA2 - ldr r2, _0816D06C - ldr r1, _0816D070 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r3, #8 - ldrsh r1, [r0, r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #1 - strh r1, [r0, #0x2e] -_0816CFA2: - ldr r0, [r5] - cmp r0, #0x80 - bne _0816CFB0 - ldr r0, _0816D074 - movs r1, #0 - bl CreateTask -_0816CFB0: - ldr r0, [r5] - cmp r0, #0xfb - bne _0816CFD2 - ldr r2, _0816D06C - ldr r1, _0816D070 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r3, #8 - ldrsh r1, [r0, r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #2 - strh r1, [r0, #0x2e] -_0816CFD2: - ldr r1, [r5] - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - bne _0816CFE4 - ldr r0, _0816D078 - movs r1, #0 - bl CreateTask -_0816CFE4: - ldr r1, [r5] - movs r0, #0xb8 - lsls r0, r0, #1 - cmp r1, r0 - bne _0816D004 - movs r2, #0x80 - lsls r2, r2, #3 - movs r0, #0x70 - str r0, [sp] - movs r0, #1 - str r0, [sp, #4] - movs r0, #0x30 - movs r1, #0 - movs r3, #5 - bl CreateWaterDrop -_0816D004: - ldr r1, [r5] - movs r0, #0xc0 - lsls r0, r0, #1 - cmp r1, r0 - bne _0816D024 - movs r2, #0x80 - lsls r2, r2, #3 - movs r0, #0x80 - str r0, [sp] - movs r0, #1 - str r0, [sp, #4] - movs r0, #0xc8 - movs r1, #0x3c - movs r3, #9 - bl CreateWaterDrop -_0816D024: - ldr r0, [r5] - movs r4, #0x8c - lsls r4, r4, #2 - cmp r0, r4 - bne _0816D036 - ldr r0, _0816D07C - movs r1, #0 - bl CreateTask -_0816D036: - ldr r0, [r5] - cmp r0, r4 - bls _0816D05E - ldr r1, _0816D070 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #0 - movs r1, #0x50 - strh r1, [r0, #0xa] - strh r2, [r0, #0xc] - movs r1, #0x18 - strh r1, [r0, #0xe] - strh r2, [r0, #0x10] - movs r1, #0x28 - strh r1, [r0, #0x12] - strh r2, [r0, #0x14] - ldr r1, _0816D080 - str r1, [r0] -_0816D05E: - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0816D068: .4byte gUnknown_3005FE0 -_0816D06C: .4byte gUnknown_20205AC -_0816D070: .4byte gUnknown_3005B60 -_0816D074: .4byte Task_IntroWaterDrops_1 -_0816D078: .4byte sub_0816EFC4 -_0816D07C: .4byte Task_IntroWaterDrops_3 -_0816D080: .4byte Task_IntroScrollDownAndShowFlygon - thumb_func_end Task_IntroWaterDrops - - thumb_func_start Task_IntroWaterDrops_3 -Task_IntroWaterDrops_3: @ 0x0816D084 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _0816D0B8 - adds r4, r0, r1 - ldrh r0, [r4, #4] - adds r0, #1 - strh r0, [r4, #4] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0816D0A8 - ldrh r0, [r4, #6] - adds r0, #1 - strh r0, [r4, #6] -_0816D0A8: - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0816D0BC - cmp r0, #1 - beq _0816D0F8 - b _0816D108 - .align 2, 0 -_0816D0B8: .4byte gUnknown_3005B68 -_0816D0BC: - ldr r0, _0816D0F0 - ldr r2, _0816D0F4 - movs r1, #8 - ldrsh r3, [r4, r1] - lsls r3, r3, #1 - adds r1, r3, r2 - ldrb r1, [r1] - adds r2, #1 - adds r3, r3, r2 - ldrh r2, [r4, #6] - ldrb r3, [r3] - adds r2, r2, r3 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - movs r3, #0 - bl CreateSprite - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - movs r0, #0xc - strh r0, [r4, #2] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _0816D108 - .align 2, 0 -_0816D0F0: .4byte gUnknown_85C5B6C -_0816D0F4: .4byte gUnknown_85C5B84 -_0816D0F8: - ldrh r0, [r4, #2] - subs r0, #1 - strh r0, [r4, #2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bne _0816D108 - strh r0, [r4] -_0816D108: - movs r1, #6 - ldrsh r0, [r4, r1] - cmp r0, #0x3c - ble _0816D116 - adds r0, r5, #0 - bl DestroyTask -_0816D116: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end Task_IntroWaterDrops_3 - - thumb_func_start sub_0816D11C -sub_0816D11C: @ 0x0816D11C - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0x2e] - adds r0, #1 - strh r0, [r1, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xc - bne _0816D134 - adds r0, r1, #0 - bl DestroySprite -_0816D134: - pop {r0} - bx r0 - thumb_func_end sub_0816D11C - - thumb_func_start Task_IntroScrollDownAndShowFlygon -Task_IntroScrollDownAndShowFlygon: @ 0x0816D138 - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r4, r1, #0 - ldr r5, _0816D1DC - ldr r2, [r5] - ldr r0, _0816D1E0 - cmp r2, r0 - bhi _0816D1FC - ldr r0, _0816D1E4 - lsls r4, r1, #2 - adds r4, r4, r1 - lsls r4, r4, #3 - adds r4, r4, r0 - movs r1, #0xa - ldrsh r0, [r4, r1] - lsls r0, r0, #0x10 - ldrh r1, [r4, #0xc] - adds r1, r0, r1 - ldr r0, _0816D1E8 - adds r1, r1, r0 - asrs r0, r1, #0x10 - strh r0, [r4, #0xa] - strh r1, [r4, #0xc] - ldrh r1, [r4, #0xa] - movs r0, #0x1a - bl SetGpuReg - movs r1, #0xe - ldrsh r0, [r4, r1] - lsls r0, r0, #0x10 - ldrh r1, [r4, #0x10] - adds r1, r0, r1 - ldr r0, _0816D1EC - adds r1, r1, r0 - asrs r0, r1, #0x10 - strh r0, [r4, #0xe] - strh r1, [r4, #0x10] - ldrh r1, [r4, #0xe] - movs r0, #0x16 - bl SetGpuReg - movs r1, #0x12 - ldrsh r0, [r4, r1] - lsls r0, r0, #0x10 - ldrh r1, [r4, #0x14] - adds r1, r0, r1 - ldr r0, _0816D1F0 - adds r1, r1, r0 - asrs r0, r1, #0x10 - strh r0, [r4, #0x12] - strh r1, [r4, #0x14] - ldrh r1, [r4, #0x12] - movs r0, #0x12 - bl SetGpuReg - ldr r1, [r5] - movs r0, #0xd0 - lsls r0, r0, #2 - cmp r1, r0 - bne _0816D222 - ldr r0, _0816D1F4 - movs r1, #0x78 - movs r2, #0xa0 - movs r3, #0xa - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0816D1F8 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - b _0816D222 - .align 2, 0 -_0816D1DC: .4byte gUnknown_3005FE0 -_0816D1E0: .4byte 0x00000387 -_0816D1E4: .4byte gUnknown_3005B60 -_0816D1E8: .4byte 0xFFFFA000 -_0816D1EC: .4byte 0xFFFF8000 -_0816D1F0: .4byte 0xFFFF4000 -_0816D1F4: .4byte gUnknown_85C6078 -_0816D1F8: .4byte gUnknown_20205AC -_0816D1FC: - ldr r0, _0816D22C - cmp r2, r0 - bls _0816D222 - movs r0, #1 - rsbs r0, r0, #0 - ldr r1, _0816D230 - str r1, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _0816D234 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0816D238 - str r1, [r0] -_0816D222: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0816D22C: .4byte 0x000003EF -_0816D230: .4byte 0x0000FFFF -_0816D234: .4byte gUnknown_3005B60 -_0816D238: .4byte sub_0816D23C - thumb_func_end Task_IntroScrollDownAndShowFlygon - - thumb_func_start sub_0816D23C -sub_0816D23C: @ 0x0816D23C - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _0816D260 - ldr r1, [r0] - ldr r0, _0816D264 - cmp r1, r0 - bls _0816D25A - ldr r0, _0816D268 - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _0816D26C - str r0, [r1] -_0816D25A: - pop {r0} - bx r0 - .align 2, 0 -_0816D260: .4byte gUnknown_3005FE0 -_0816D264: .4byte 0x00000402 -_0816D268: .4byte gUnknown_3005B60 -_0816D26C: .4byte Task_IntroLoadPart2Graphics - thumb_func_end sub_0816D23C - - thumb_func_start Task_IntroLoadPart2Graphics -Task_IntroLoadPart2Graphics: @ 0x0816D270 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl intro_reset_and_hide_bgs - movs r0, #0 - bl SetVBlankCallback - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r0, _0816D2B4 - movs r1, #0 - strh r1, [r0] - ldr r0, _0816D2B8 - strh r1, [r0] - ldr r0, _0816D2BC - strh r1, [r0] - movs r0, #1 - bl load_intro_part2_graphics - ldr r1, _0816D2C0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0816D2C4 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816D2B4: .4byte gUnknown_203B9F0 -_0816D2B8: .4byte gUnknown_203B9F2 -_0816D2BC: .4byte gUnknown_203B998 -_0816D2C0: .4byte gUnknown_3005B60 -_0816D2C4: .4byte Task_IntroStartBikeRide - thumb_func_end Task_IntroLoadPart2Graphics - - thumb_func_start Task_IntroStartBikeRide -Task_IntroStartBikeRide: @ 0x0816D2C8 - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0816D2E0 - ldrh r0, [r0] - cmp r0, #0 - bne _0816D2E8 - ldr r0, _0816D2E4 - bl LoadCompressedSpriteSheet - b _0816D2EE - .align 2, 0 -_0816D2E0: .4byte gUnknown_203B994 -_0816D2E4: .4byte gUnknown_85D278C -_0816D2E8: - ldr r0, _0816D350 - bl LoadCompressedSpriteSheet -_0816D2EE: - ldr r0, _0816D354 - bl LoadCompressedSpriteSheet - ldr r0, _0816D358 - bl LoadCompressedSpriteSheet - movs r6, #0 - lsls r7, r4, #2 - ldr r5, _0816D35C -_0816D300: - lsls r0, r6, #3 - adds r0, r0, r5 - bl LoadCompressedSpriteSheet - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #2 - bls _0816D300 - ldr r0, _0816D360 - bl LoadSpritePalettes - ldr r0, _0816D364 - bl LoadSpritePalettes - ldr r0, _0816D368 - movs r5, #0x88 - lsls r5, r5, #1 - adds r1, r5, #0 - movs r2, #0x80 - movs r3, #0 - bl CreateSprite - ldr r0, _0816D36C - movs r1, #0x90 - lsls r1, r1, #1 - movs r2, #0x6e - movs r3, #1 - bl CreateSprite - ldr r0, _0816D370 - ldrh r0, [r0] - cmp r0, #0 - bne _0816D374 - adds r0, r5, #0 - movs r1, #0x64 - bl sub_0817B6F4 - b _0816D37C - .align 2, 0 -_0816D350: .4byte gUnknown_85D279C -_0816D354: .4byte gUnknown_85D27AC -_0816D358: .4byte gUnknown_85D27CC -_0816D35C: .4byte gUnknown_85C5B9C -_0816D360: .4byte gUnknown_85D27DC -_0816D364: .4byte gUnknown_85C5BBC -_0816D368: .4byte gUnknown_85C5C90 -_0816D36C: .4byte gUnknown_85C5C58 -_0816D370: .4byte gUnknown_203B994 -_0816D374: - adds r0, r5, #0 - movs r1, #0x64 - bl sub_0817B74C -_0816D37C: - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r2, _0816D410 - lsls r0, r6, #4 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r5, r2, #0 - adds r5, #0x1c - adds r3, r0, r5 - ldr r1, _0816D414 - str r1, [r3] - adds r2, #8 - adds r0, r0, r2 - ldr r1, _0816D418 - str r1, [r0] - ldr r0, _0816D41C - adds r4, r7, r4 - lsls r4, r4, #3 - adds r4, r4, r0 - strh r6, [r4, #0xa] - ldr r0, _0816D420 - movs r1, #0x88 - lsls r1, r1, #1 - movs r2, #0x50 - movs r3, #4 - bl CreateSprite - movs r0, #0x40 - rsbs r0, r0, #0 - movs r1, #0x3c - bl sub_0817B884 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #4 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _0816D424 - str r1, [r0] - strh r6, [r4, #0xc] - movs r0, #1 - rsbs r0, r0, #0 - ldr r1, _0816D428 - str r1, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r0, _0816D42C - bl SetVBlankCallback - movs r1, #0x80 - lsls r1, r1, #7 - movs r2, #0x80 - lsls r2, r2, #3 - movs r0, #1 - movs r3, #0x10 - bl sub_0817B29C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #8] - movs r0, #1 - bl LinkPartnerHandleChooseMove - ldr r0, _0816D430 - str r0, [r4] - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0816D410: .4byte gUnknown_20205AC -_0816D414: .4byte SpriteCB_IntroGraphicsBicycle -_0816D418: .4byte gUnknown_85C5E78 -_0816D41C: .4byte gUnknown_3005B60 -_0816D420: .4byte gUnknown_85C5BF4 -_0816D424: .4byte SpriteCB_IntroGraphicsFlygon -_0816D428: .4byte 0x0000FFFF -_0816D42C: .4byte VBlankCB_Intro -_0816D430: .4byte Task_IntroHandleBikeAndFlygonMovement - thumb_func_end Task_IntroStartBikeRide - - thumb_func_start Task_IntroHandleBikeAndFlygonMovement -Task_IntroHandleBikeAndFlygonMovement: @ 0x0816D434 - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r6, r4, #0 - ldr r5, _0816D594 - ldr r1, [r5] - movs r0, #0xe8 - lsls r0, r0, #3 - cmp r1, r0 - bne _0816D460 - ldr r1, _0816D598 - movs r0, #2 - strh r0, [r1] - ldr r1, _0816D59C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r0, [r0, #8] - bl DestroyTask -_0816D460: - ldr r1, [r5] - ldr r0, _0816D5A0 - cmp r1, r0 - bls _0816D488 - movs r0, #1 - rsbs r0, r0, #0 - ldr r1, _0816D5A4 - str r1, [sp] - movs r1, #8 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _0816D59C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0816D5A8 - str r1, [r0] -_0816D488: - ldr r1, [r5] - ldr r0, _0816D5AC - ldr r3, _0816D59C - cmp r1, r0 - bne _0816D4AC - ldr r2, _0816D5B0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r3 - movs r7, #0xa - ldrsh r1, [r0, r7] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #1 - strh r1, [r0, #0x2e] -_0816D4AC: - ldr r1, [r5] - ldr r0, _0816D5B4 - cmp r1, r0 - bne _0816D4CE - ldr r2, _0816D5B0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r3 - movs r7, #0xa - ldrsh r1, [r0, r7] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0 - strh r1, [r0, #0x2e] -_0816D4CE: - ldr r1, [r5] - ldr r0, _0816D5B8 - cmp r1, r0 - bne _0816D4F0 - ldr r2, _0816D5B0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r3 - movs r7, #0xc - ldrsh r1, [r0, r7] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #1 - strh r1, [r0, #0x2e] -_0816D4F0: - ldr r1, [r5] - ldr r0, _0816D5BC - cmp r1, r0 - bne _0816D512 - ldr r2, _0816D5B0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r3 - movs r7, #0xa - ldrsh r1, [r0, r7] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #2 - strh r1, [r0, #0x2e] -_0816D512: - ldr r1, [r5] - movs r0, #0xc5 - lsls r0, r0, #3 - cmp r1, r0 - bne _0816D536 - ldr r2, _0816D5B0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r3 - movs r7, #0xa - ldrsh r1, [r0, r7] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #3 - strh r1, [r0, #0x2e] -_0816D536: - ldr r1, [r5] - ldr r0, _0816D5C0 - cmp r1, r0 - bne _0816D558 - ldr r2, _0816D5B0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r3 - movs r4, #0xa - ldrsh r1, [r0, r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #4 - strh r1, [r0, #0x2e] -_0816D558: - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r4, r0, r3 - ldrh r0, [r4, #0xe] - lsls r0, r0, #0x10 - asrs r0, r0, #0x12 - movs r1, #0x7f - ands r0, r1 - movs r1, #0x30 - bl Sin - ldr r1, _0816D5C4 - strh r0, [r1] - ldrh r2, [r4, #0xe] - movs r7, #0xe - ldrsh r1, [r4, r7] - ldr r0, _0816D5C8 - cmp r1, r0 - bgt _0816D584 - adds r0, r2, #1 - strh r0, [r4, #0xe] -_0816D584: - movs r0, #0 - bl sub_0817B400 - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0816D594: .4byte gUnknown_3005FE0 -_0816D598: .4byte gUnknown_203B9F4 -_0816D59C: .4byte gUnknown_3005B60 -_0816D5A0: .4byte 0x0000079A -_0816D5A4: .4byte 0x0000FFFF -_0816D5A8: .4byte sub_0816D5CC -_0816D5AC: .4byte 0x00000455 -_0816D5B0: .4byte gUnknown_20205AC -_0816D5B4: .4byte 0x000004BE -_0816D5B8: .4byte 0x00000572 -_0816D5BC: .4byte 0x00000576 -_0816D5C0: .4byte 0x000006BF -_0816D5C4: .4byte gUnknown_203B998 -_0816D5C8: .4byte 0x000001FF - thumb_func_end Task_IntroHandleBikeAndFlygonMovement - - thumb_func_start sub_0816D5CC -sub_0816D5CC: @ 0x0816D5CC - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _0816D5F0 - ldr r1, [r0] - ldr r0, _0816D5F4 - cmp r1, r0 - bls _0816D5EA - ldr r0, _0816D5F8 - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _0816D5FC - str r0, [r1] -_0816D5EA: - pop {r0} - bx r0 - .align 2, 0 -_0816D5F0: .4byte gUnknown_3005FE0 -_0816D5F4: .4byte 0x00000814 -_0816D5F8: .4byte gUnknown_3005B60 -_0816D5FC: .4byte Task_IntroLoadPart3Graphics - thumb_func_end sub_0816D5CC - - thumb_func_start sub_0816D600 -sub_0816D600: @ 0x0816D600 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x34] - adds r0, #4 - strh r0, [r4, #0x34] - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #8 - bls _0816D614 - b _0816D79E -_0816D614: - lsls r0, r0, #2 - ldr r1, _0816D620 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0816D620: .4byte _0816D624 -_0816D624: @ jump table - .4byte _0816D648 @ case 0 - .4byte _0816D65E @ case 1 - .4byte _0816D67C @ case 2 - .4byte _0816D6A0 @ case 3 - .4byte _0816D6BC @ case 4 - .4byte _0816D6DE @ case 5 - .4byte _0816D6F6 @ case 6 - .4byte _0816D752 @ case 7 - .4byte _0816D780 @ case 8 -_0816D648: - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xb3 - bgt _0816D658 - b _0816D79E -_0816D658: - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] -_0816D65E: - ldrh r0, [r4, #0x20] - subs r0, #4 - strh r0, [r4, #0x20] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3c - beq _0816D66E - b _0816D79E -_0816D66E: - movs r0, #8 - strh r0, [r4, #0x2e] - movs r0, #0x14 - strh r0, [r4, #0x30] - movs r0, #2 - strh r0, [r4, #0x32] - b _0816D79E -_0816D67C: - ldrh r1, [r4, #0x20] - adds r1, #8 - strh r1, [r4, #0x20] - ldrh r0, [r4, #0x22] - subs r0, #2 - strh r0, [r4, #0x22] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0x7c - beq _0816D692 - b _0816D79E -_0816D692: - movs r0, #8 - strh r0, [r4, #0x2e] - movs r0, #0x14 - strh r0, [r4, #0x30] - movs r0, #3 - strh r0, [r4, #0x32] - b _0816D79E -_0816D6A0: - ldrh r0, [r4, #0x22] - adds r0, #4 - strh r0, [r4, #0x22] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x50 - bne _0816D79E - movs r0, #8 - strh r0, [r4, #0x2e] - movs r0, #0xa - strh r0, [r4, #0x30] - movs r0, #4 - strh r0, [r4, #0x32] - b _0816D79E -_0816D6BC: - ldrh r1, [r4, #0x20] - subs r1, #8 - strh r1, [r4, #0x20] - ldrh r0, [r4, #0x22] - subs r0, #2 - strh r0, [r4, #0x22] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0x3c - bne _0816D79E - movs r0, #8 - strh r0, [r4, #0x2e] - movs r0, #0xa - strh r0, [r4, #0x30] - movs r0, #5 - strh r0, [r4, #0x32] - b _0816D79E -_0816D6DE: - ldrh r0, [r4, #0x20] - adds r0, #0x3c - strh r0, [r4, #0x20] - movs r0, #0xc0 - strh r0, [r4, #0x36] - movs r0, #0x80 - strh r0, [r4, #0x38] - movs r0, #3 - strh r0, [r4, #0x3a] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] -_0816D6F6: - ldrh r0, [r4, #0x36] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x3c - bl Sin - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x38] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x14 - bl Sin - strh r0, [r4, #0x26] - ldrh r1, [r4, #0x36] - adds r1, #2 - strh r1, [r4, #0x36] - ldrh r0, [r4, #0x38] - adds r0, #4 - strh r0, [r4, #0x38] - movs r0, #0xff - ands r1, r0 - cmp r1, #0x40 - bne _0816D79E - adds r2, r4, #0 - adds r2, #0x3f - ldrb r0, [r2] - movs r1, #2 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r2] - ldrh r0, [r4, #0x3a] - subs r0, #1 - strh r0, [r4, #0x3a] - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - cmp r1, #0 - bne _0816D79E - ldrh r0, [r4, #0x24] - ldrh r2, [r4, #0x20] - adds r0, r0, r2 - strh r0, [r4, #0x20] - strh r1, [r4, #0x24] - ldrh r0, [r4, #0x2e] - adds r0, #1 - b _0816D79C -_0816D752: - ldrh r0, [r4, #0x20] - subs r0, #2 - strh r0, [r4, #0x20] - ldrh r0, [r4, #0x38] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x14 - bl Sin - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x38] - adds r0, #4 - strh r0, [r4, #0x38] - movs r0, #0x20 - ldrsh r1, [r4, r0] - movs r0, #0x10 - rsbs r0, r0, #0 - cmp r1, r0 - bge _0816D79E - adds r0, r4, #0 - bl DestroySprite - b _0816D79E -_0816D780: - ldrh r0, [r4, #0x34] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - bl Cos - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x30] - subs r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0816D79E - ldrh r0, [r4, #0x32] -_0816D79C: - strh r0, [r4, #0x2e] -_0816D79E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0816D600 - - thumb_func_start sub_0816D7A4 -sub_0816D7A4: @ 0x0816D7A4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #5 - bls _0816D7B2 - b _0816D8BE -_0816D7B2: - lsls r0, r0, #2 - ldr r1, _0816D7BC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0816D7BC: .4byte _0816D7C0 -_0816D7C0: @ jump table - .4byte _0816D7D8 @ case 0 - .4byte _0816D7EC @ case 1 - .4byte _0816D804 @ case 2 - .4byte _0816D848 @ case 3 - .4byte _0816D87E @ case 4 - .4byte _0816D8AE @ case 5 -_0816D7D8: - ldr r0, _0816D7E8 - ldr r1, [r0] - movs r0, #0x99 - lsls r0, r0, #3 - cmp r1, r0 - bne _0816D8BE - b _0816D89E - .align 2, 0 -_0816D7E8: .4byte gUnknown_3005FE0 -_0816D7EC: - ldr r0, _0816D800 - ldr r1, [r0] - movs r0, #0xc5 - lsls r0, r0, #3 - cmp r1, r0 - bne _0816D854 - adds r0, r4, #0 - movs r1, #0 - b _0816D8A2 - .align 2, 0 -_0816D800: .4byte gUnknown_3005FE0 -_0816D804: - ldr r0, _0816D82C - ldr r1, [r0] - ldr r0, _0816D830 - cmp r1, r0 - beq _0816D834 - ldrh r0, [r4, #0x30] - adds r2, r0, #0 - adds r2, #0x20 - strh r2, [r4, #0x30] - movs r1, #0x30 - ldrsh r0, [r4, r1] - movs r1, #0xff - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - beq _0816D8BE - ldrh r0, [r4, #0x20] - adds r0, #1 - b _0816D86E - .align 2, 0 -_0816D82C: .4byte gUnknown_3005FE0 -_0816D830: .4byte 0x000006C7 -_0816D834: - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAnim - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - movs r0, #0x50 - strh r0, [r4, #0x32] - b _0816D8BE -_0816D848: - ldrh r0, [r4, #0x32] - subs r0, #1 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0816D878 -_0816D854: - ldrh r0, [r4, #0x30] - adds r2, r0, #0 - adds r2, #0x40 - strh r2, [r4, #0x30] - movs r1, #0x30 - ldrsh r0, [r4, r1] - movs r1, #0xff - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - beq _0816D8BE - ldrh r0, [r4, #0x20] - subs r0, #1 -_0816D86E: - strh r0, [r4, #0x20] - movs r0, #0xff - ands r2, r0 - strh r2, [r4, #0x30] - b _0816D8BE -_0816D878: - adds r0, r4, #0 - movs r1, #2 - b _0816D8A2 -_0816D87E: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0816D892 - ldrh r0, [r4, #0x20] - adds r0, #4 - strh r0, [r4, #0x20] -_0816D892: - movs r0, #0x20 - ldrsh r1, [r4, r0] - movs r0, #0xa8 - lsls r0, r0, #1 - cmp r1, r0 - ble _0816D8BE -_0816D89E: - adds r0, r4, #0 - movs r1, #1 -_0816D8A2: - bl StartSpriteAnim - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - b _0816D8BE -_0816D8AE: - ldr r0, _0816D8C4 - ldr r1, [r0] - ldr r0, _0816D8C8 - cmp r1, r0 - bls _0816D8BE - ldrh r0, [r4, #0x20] - subs r0, #2 - strh r0, [r4, #0x20] -_0816D8BE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816D8C4: .4byte gUnknown_3005FE0 -_0816D8C8: .4byte 0x0000073F - thumb_func_end sub_0816D7A4 - - thumb_func_start sub_0816D8CC -sub_0816D8CC: @ 0x0816D8CC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _0816D900 - cmp r0, #1 - bgt _0816D8E2 - cmp r0, #0 - beq _0816D8E8 - b _0816D988 -_0816D8E2: - cmp r0, #2 - beq _0816D926 - b _0816D988 -_0816D8E8: - ldr r0, _0816D8FC - ldr r1, [r0] - movs r0, #0x88 - lsls r0, r0, #3 - cmp r1, r0 - bne _0816D988 - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - b _0816D988 - .align 2, 0 -_0816D8FC: .4byte gUnknown_3005FE0 -_0816D900: - ldrh r0, [r4, #0x20] - subs r0, #2 - strh r0, [r4, #0x20] - ldr r0, _0816D940 - ldr r1, [r0] - movs r0, #0x92 - lsls r0, r0, #3 - cmp r1, r0 - bne _0816D988 - ldrh r0, [r4, #0x22] - subs r0, #0xc - strh r0, [r4, #0x22] - movs r0, #0x80 - strh r0, [r4, #0x30] - movs r0, #0 - strh r0, [r4, #0x32] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] -_0816D926: - movs r2, #0x20 - ldrsh r0, [r4, r2] - movs r2, #0x24 - ldrsh r1, [r4, r2] - adds r0, r0, r1 - movs r1, #0x20 - rsbs r1, r1, #0 - cmp r0, r1 - bgt _0816D944 - adds r0, r4, #0 - bl DestroySprite - b _0816D988 - .align 2, 0 -_0816D940: .4byte gUnknown_3005FE0 -_0816D944: - ldrh r0, [r4, #0x30] - movs r1, #0xff - ands r1, r0 - cmp r1, #0x3f - bgt _0816D956 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x10 - b _0816D968 -_0816D956: - cmp r1, #0x40 - bne _0816D960 - ldrh r0, [r4, #0x20] - subs r0, #0x30 - strh r0, [r4, #0x20] -_0816D960: - ldrh r0, [r4, #0x30] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x40 -_0816D968: - bl Sin - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x32] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0xc - bl Cos - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] -_0816D988: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0816D8CC - - thumb_func_start Task_IntroLoadPart3Graphics -Task_IntroLoadPart3Graphics: @ 0x0816D990 - push {r4, r5, lr} - sub sp, #4 - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - bl intro_reset_and_hide_bgs - ldr r0, _0816DA20 - movs r1, #0xc0 - lsls r1, r1, #0x13 - bl LZ77UnCompVram - ldr r0, _0816DA24 - ldr r1, _0816DA28 - bl LZ77UnCompVram - ldr r0, _0816DA2C - movs r2, #0x80 - lsls r2, r2, #2 - movs r1, #0 - bl LoadPalette - ldr r0, _0816DA30 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - adds r4, r4, r0 - movs r5, #0 - strh r5, [r4, #8] - strh r5, [r4, #0xa] - strh r5, [r4, #0xc] - strh r5, [r4, #0xe] - movs r0, #0x78 - movs r1, #0x50 - movs r2, #0 - movs r3, #0 - bl PanFadeAndZoomScreen - bl ResetSpriteData - bl FreeAllSpritePalettes - movs r0, #1 - rsbs r0, r0, #0 - ldr r1, _0816DA34 - str r1, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r1, _0816DA38 - movs r0, #0xc - bl SetGpuReg - ldr r1, _0816DA3C - movs r0, #0 - bl SetGpuReg - ldr r0, _0816DA40 - str r0, [r4] - ldr r0, _0816DA44 - str r5, [r0] - movs r0, #0xdd - lsls r0, r0, #1 - bl m4aSongNumStart - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0816DA20: .4byte gUnknown_85C4908 -_0816DA24: .4byte gUnknown_85C47D8 -_0816DA28: .4byte 0x06004000 -_0816DA2C: .4byte gUnknown_85C45D8 -_0816DA30: .4byte gUnknown_3005B60 -_0816DA34: .4byte 0x0000FFFF -_0816DA38: .4byte 0x00004883 -_0816DA3C: .4byte 0x00001441 -_0816DA40: .4byte Task_IntroSpinAndZoomPokeball -_0816DA44: .4byte gUnknown_3005FE0 - thumb_func_end Task_IntroLoadPart3Graphics - - thumb_func_start Task_IntroSpinAndZoomPokeball -Task_IntroSpinAndZoomPokeball: @ 0x0816DA48 - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r2, _0816DA80 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r3, r0, r2 - movs r1, #0x80 - lsls r1, r1, #3 - adds r0, r1, #0 - ldrh r1, [r3, #8] - adds r0, r0, r1 - strh r0, [r3, #8] - ldrh r4, [r3, #0xa] - movs r0, #0xa - ldrsh r1, [r3, r0] - ldr r0, _0816DA84 - cmp r1, r0 - bgt _0816DA88 - ldrh r0, [r3, #0xc] - adds r1, r4, r0 - strh r1, [r3, #0xa] - adds r0, #2 - strh r0, [r3, #0xc] - b _0816DA8C - .align 2, 0 -_0816DA80: .4byte gUnknown_3005B60 -_0816DA84: .4byte 0x000006BF -_0816DA88: - ldr r0, _0816DAD4 - str r0, [r3] -_0816DA8C: - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - adds r4, r4, r2 - movs r0, #0xa - ldrsh r1, [r4, r0] - movs r0, #0x80 - lsls r0, r0, #9 - bl __divsi3 - adds r2, r0, #0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldrh r3, [r4, #8] - movs r0, #0x78 - movs r1, #0x50 - bl PanFadeAndZoomScreen - ldr r0, _0816DAD8 - ldr r0, [r0] - cmp r0, #0x1c - bne _0816DACA - movs r0, #1 - rsbs r0, r0, #0 - ldr r1, _0816DADC - str r1, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade -_0816DACA: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0816DAD4: .4byte Task_IntroWaitToSetupPart3LegendsFight -_0816DAD8: .4byte gUnknown_3005FE0 -_0816DADC: .4byte 0x0000FFFF - thumb_func_end Task_IntroSpinAndZoomPokeball - - thumb_func_start Task_IntroWaitToSetupPart3LegendsFight -Task_IntroWaitToSetupPart3LegendsFight: @ 0x0816DAE0 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _0816DB00 - ldr r0, [r0] - cmp r0, #0x2b - bls _0816DAFC - ldr r0, _0816DB04 - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _0816DB08 - str r0, [r1] -_0816DAFC: - pop {r0} - bx r0 - .align 2, 0 -_0816DB00: .4byte gUnknown_3005FE0 -_0816DB04: .4byte gUnknown_3005B60 -_0816DB08: .4byte Task_IntroLoadGroudonScene - thumb_func_end Task_IntroWaitToSetupPart3LegendsFight - - thumb_func_start Task_IntroLoadGroudonScene -Task_IntroLoadGroudonScene: @ 0x0816DB0C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0816DB80 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0816DB78 - bl intro_reset_and_hide_bgs - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r1, _0816DB84 - movs r0, #8 - strb r0, [r1] - ldr r0, _0816DB88 - movs r1, #0xc0 - lsls r1, r1, #0x13 - bl sub_0803437C - ldr r0, _0816DB8C - ldr r1, _0816DB90 - bl sub_0803437C - ldr r0, _0816DB94 - ldr r1, _0816DB98 - bl sub_0803437C - ldr r0, _0816DB9C - ldr r1, _0816DBA0 - bl sub_0803437C - ldr r0, _0816DBA4 - bl LoadCompressedSpriteSheetUsingHeap - ldr r0, _0816DBA8 - bl LoadCompressedSpritePaletteUsingHeap - ldr r0, _0816DBAC - ldr r1, _0816DBB0 - movs r2, #0x80 - lsls r2, r2, #1 - bl CpuSet - ldr r1, _0816DBB4 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0816DBB8 - str r1, [r0] -_0816DB78: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816DB80: .4byte gUnknown_2037C74 -_0816DB84: .4byte gUnknown_30030BC -_0816DB88: .4byte gUnknown_8D88478 -_0816DB8C: .4byte gUnknown_8D88D24 -_0816DB90: .4byte 0x0600C000 -_0816DB94: .4byte gUnknown_8D89F60 -_0816DB98: .4byte 0x06004000 -_0816DB9C: .4byte gUnknown_8D8A7FC -_0816DBA0: .4byte 0x0600E000 -_0816DBA4: .4byte gUnknown_84FD420 -_0816DBA8: .4byte gUnknown_84FDD28 -_0816DBAC: .4byte gUnknown_8D85CB4 -_0816DBB0: .4byte gUnknown_20373B4 -_0816DBB4: .4byte gUnknown_3005B60 -_0816DBB8: .4byte Task_IntroLoadPart3Graphics1 - thumb_func_end Task_IntroLoadGroudonScene - - thumb_func_start Task_IntroLoadPart3Graphics1 -Task_IntroLoadPart3Graphics1: @ 0x0816DBBC - push {r4, r5, lr} - sub sp, #4 - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - movs r0, #0x40 - movs r1, #0xf0 - bl SetGpuReg - movs r0, #0x44 - movs r1, #0xa0 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0x3f - bl SetGpuReg - movs r0, #0x4a - movs r1, #0 - bl SetGpuReg - ldr r1, _0816DC40 - movs r0, #0xc - bl SetGpuReg - ldr r1, _0816DC44 - movs r0, #0xa - bl SetGpuReg - ldr r1, _0816DC48 - movs r0, #0 - bl SetGpuReg - movs r0, #1 - rsbs r0, r0, #0 - ldr r1, _0816DC4C - str r1, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r0, _0816DC50 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - adds r4, r4, r0 - movs r0, #0 - strh r0, [r4, #8] - ldr r0, _0816DC54 - strh r0, [r4, #0xa] - ldr r1, _0816DC58 - strh r1, [r4, #0xc] - movs r2, #0x80 - lsls r2, r2, #1 - strh r2, [r4, #0xe] - movs r3, #0 - bl PanFadeAndZoomScreen - ldr r0, _0816DC5C - str r0, [r4] - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0816DC40: .4byte 0x0000B880 -_0816DC44: .4byte 0x00001C05 -_0816DC48: .4byte 0x00003641 -_0816DC4C: .4byte 0x0000FFFF -_0816DC50: .4byte gUnknown_3005B60 -_0816DC54: .4byte 0x0000FFA0 -_0816DC58: .4byte 0x0000FF51 -_0816DC5C: .4byte Task_IntroLoadPart3Graphics2 - thumb_func_end Task_IntroLoadPart3Graphics1 - - thumb_func_start Task_IntroLoadPart3Graphics2 -Task_IntroLoadPart3Graphics2: @ 0x0816DC60 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0816DC98 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 - ldrh r2, [r4, #8] - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0x20 - beq _0816DC9C - adds r0, r2, #4 - strh r0, [r4, #8] - movs r0, #8 - ldrsh r1, [r4, r0] - lsls r1, r1, #8 - adds r0, r2, #0 - subs r0, #0x9c - subs r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x44 - bl SetGpuReg - b _0816DCAA - .align 2, 0 -_0816DC98: .4byte gUnknown_3005B60 -_0816DC9C: - movs r1, #0x82 - lsls r1, r1, #6 - movs r0, #0x44 - bl SetGpuReg - ldr r0, _0816DCB0 - str r0, [r4] -_0816DCAA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816DCB0: .4byte sub_0816DCB4 - thumb_func_end Task_IntroLoadPart3Graphics2 - - thumb_func_start sub_0816DCB4 -sub_0816DCB4: @ 0x0816DCB4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0816DCC8 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r0, _0816DCCC - str r0, [r1] - bx lr - .align 2, 0 -_0816DCC8: .4byte gUnknown_3005B60 -_0816DCCC: .4byte Task_IntroLoadPart3Graphics4 - thumb_func_end sub_0816DCB4 - - thumb_func_start Task_IntroLoadPart3Graphics4 -Task_IntroLoadPart3Graphics4: @ 0x0816DCD0 - push {lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0816DD08 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r2, #0 - strh r2, [r1, #8] - ldr r0, _0816DD0C - str r0, [r1] - movs r0, #1 - str r0, [sp] - movs r0, #4 - str r0, [sp, #4] - str r2, [sp, #8] - movs r0, #0 - movs r1, #0xa0 - movs r2, #4 - movs r3, #4 - bl ScanlineEffect_InitWave - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_0816DD08: .4byte gUnknown_3005B60 -_0816DD0C: .4byte Task_IntroGroudonScene - thumb_func_end Task_IntroLoadPart3Graphics4 - - thumb_func_start Task_IntroGroudonScene -Task_IntroGroudonScene: @ 0x0816DD10 - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _0816DD70 - adds r4, r0, r1 - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - ldrh r0, [r4] - subs r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #6 - bhi _0816DD46 - ldrh r0, [r4, #0xa] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _0816DD46 - ldrh r0, [r4, #8] - movs r1, #3 - eors r0, r1 - strh r0, [r4, #8] -_0816DD46: - ldrh r0, [r4, #2] - ldrh r1, [r4, #8] - ldrh r2, [r4, #4] - adds r1, r1, r2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldrh r2, [r4, #6] - movs r3, #0 - bl PanFadeAndZoomScreen - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #9 - bls _0816DD64 - b _0816DF5A -_0816DD64: - lsls r0, r0, #2 - ldr r1, _0816DD74 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0816DD70: .4byte gUnknown_3005B68 -_0816DD74: .4byte _0816DD78 -_0816DD78: @ jump table - .4byte _0816DDA0 @ case 0 - .4byte _0816DDCA @ case 1 - .4byte _0816DE08 @ case 2 - .4byte _0816DE1C @ case 3 - .4byte _0816DE60 @ case 4 - .4byte _0816DE7E @ case 5 - .4byte _0816DEAC @ case 6 - .4byte _0816DEC2 @ case 7 - .4byte _0816DF20 @ case 8 - .4byte _0816DF3A @ case 9 -_0816DDA0: - ldrh r0, [r4, #2] - adds r0, #0x10 - strh r0, [r4, #2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xa0 - beq _0816DDB0 - b _0816DF5A -_0816DDB0: - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - movs r0, #2 - strh r0, [r4, #0xc] - movs r2, #0xf1 - lsls r2, r2, #1 - adds r0, r2, #0 - strh r0, [r4, #0xe] - adds r0, r5, #0 - bl CreateGroudonRockSprites - b _0816DF5A -_0816DDCA: - ldrh r0, [r4, #0xc] - subs r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0816DDD8 - b _0816DF5A -_0816DDD8: - movs r0, #2 - strh r0, [r4, #0xc] - movs r1, #0xe - ldrsh r0, [r4, r1] - ldr r2, _0816DE00 - adds r0, r0, r2 - ldr r1, _0816DE04 - movs r2, #1 - bl CpuSet - ldrh r0, [r4, #0xe] - adds r0, #2 - strh r0, [r4, #0xe] - lsls r0, r0, #0x10 - movs r1, #0xf6 - lsls r1, r1, #0x11 - cmp r0, r1 - beq _0816DDFE - b _0816DF5A -_0816DDFE: - b _0816DF32 - .align 2, 0 -_0816DE00: .4byte gUnknown_8D85CB4 -_0816DE04: .4byte gUnknown_20377F2 -_0816DE08: - ldrh r0, [r4, #0xc] - subs r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0816DE16 - b _0816DF5A -_0816DE16: - movs r0, #2 - strh r0, [r4, #0xc] - b _0816DF32 -_0816DE1C: - ldrh r0, [r4, #0xc] - subs r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0816DE2A - b _0816DF5A -_0816DE2A: - movs r0, #2 - strh r0, [r4, #0xc] - movs r1, #0xe - ldrsh r0, [r4, r1] - ldr r2, _0816DE58 - adds r0, r0, r2 - ldr r1, _0816DE5C - movs r2, #1 - bl CpuSet - ldrh r0, [r4, #0xe] - subs r0, #2 - strh r0, [r4, #0xe] - lsls r0, r0, #0x10 - movs r1, #0xf0 - lsls r1, r1, #0x11 - cmp r0, r1 - beq _0816DE50 - b _0816DF5A -_0816DE50: - movs r0, #8 - strh r0, [r4, #0xc] - b _0816DF32 - .align 2, 0 -_0816DE58: .4byte gUnknown_8D85CB4 -_0816DE5C: .4byte gUnknown_20377F2 -_0816DE60: - ldrh r0, [r4, #0xc] - subs r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0816DF5A - movs r1, #0x60 - rsbs r1, r1, #0 - adds r0, r1, #0 - strh r0, [r4, #2] - movs r0, #0xa9 - strh r0, [r4, #4] - movs r0, #3 - strh r0, [r4, #0xc] - b _0816DF32 -_0816DE7E: - ldrh r0, [r4, #0xc] - subs r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - cmp r1, #0 - bne _0816DF5A - movs r0, #0x50 - strh r0, [r4, #2] - movs r0, #0x29 - strh r0, [r4, #4] - movs r0, #0x10 - strh r0, [r4, #0xc] - ldr r0, _0816DEA8 - str r1, [sp] - movs r1, #0 - movs r2, #0x64 - movs r3, #0xa - bl PlayCryInternal - b _0816DF32 - .align 2, 0 -_0816DEA8: .4byte 0x00000195 -_0816DEAC: - ldrh r0, [r4, #0xc] - subs r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0816DF5A - movs r0, #0x50 - strh r0, [r4, #2] - movs r0, #0x28 - strh r0, [r4, #4] - b _0816DF32 -_0816DEC2: - ldrh r0, [r4, #2] - adds r0, #4 - strh r0, [r4, #2] - ldrh r0, [r4, #4] - adds r0, #4 - strh r0, [r4, #4] - ldr r2, _0816DF18 - adds r0, r2, #0 - ldrh r1, [r4, #0xc] - adds r0, r0, r1 - strh r0, [r4, #0xc] - movs r2, #0xc - ldrsh r0, [r4, r2] - movs r1, #0xff - lsls r1, r1, #8 - ands r0, r1 - lsrs r0, r0, #8 - movs r1, #0x40 - bl Sin - movs r1, #0x80 - lsls r1, r1, #1 - adds r5, r1, #0 - adds r0, r0, r5 - strh r0, [r4, #6] - movs r2, #2 - ldrsh r0, [r4, r2] - cmp r0, #0x78 - bne _0816DF5A - movs r0, #2 - rsbs r0, r0, #0 - ldr r1, _0816DF1C - str r1, [sp] - movs r1, #3 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - strh r5, [r4, #6] - movs r0, #0 - strh r0, [r4, #8] - b _0816DF32 - .align 2, 0 -_0816DF18: .4byte 0x00000666 -_0816DF1C: .4byte 0x00007FFF -_0816DF20: - ldrh r1, [r4, #6] - movs r2, #6 - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _0816DF32 - adds r0, r1, #0 - subs r0, #8 - strh r0, [r4, #6] - b _0816DF5A -_0816DF32: - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - b _0816DF5A -_0816DF3A: - ldr r0, _0816DF64 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0816DF5A - ldr r1, _0816DF68 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0816DF6C - str r1, [r0] - ldr r1, _0816DF70 - movs r0, #3 - strb r0, [r1, #0x15] -_0816DF5A: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0816DF64: .4byte gUnknown_2037C74 -_0816DF68: .4byte gUnknown_3005B60 -_0816DF6C: .4byte Task_IntroLoadKyogreScene -_0816DF70: .4byte gUnknown_20397C8 - thumb_func_end Task_IntroGroudonScene - - thumb_func_start CreateGroudonRockSprites -CreateGroudonRockSprites: @ 0x0816DF74 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r4, #0 - ldr r6, _0816DFCC - ldr r5, _0816DFD0 -_0816DF80: - movs r0, #0 - ldrsh r1, [r5, r0] - lsls r3, r4, #0x18 - lsrs r3, r3, #0x18 - ldr r0, _0816DFD4 - movs r2, #0xa0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r0, r6, #0 - adds r0, #0x1c - adds r0, r2, r0 - ldr r1, _0816DFD8 - str r1, [r0] - adds r2, r2, r6 - ldrb r0, [r2, #5] - movs r3, #0xd - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r0, r1 - strb r0, [r2, #5] - strh r4, [r2, #0x30] - strh r7, [r2, #0x36] - ldrb r1, [r5, #2] - adds r0, r2, #0 - bl StartSpriteAnim - adds r5, #6 - adds r4, #1 - cmp r4, #5 - ble _0816DF80 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0816DFCC: .4byte gUnknown_20205AC -_0816DFD0: .4byte gUnknown_85C5D18 -_0816DFD4: .4byte gUnknown_85727F4 -_0816DFD8: .4byte SpriteCB_IntroGroudonRocks - thumb_func_end CreateGroudonRockSprites - - thumb_func_start SpriteCB_IntroGroudonRocks -SpriteCB_IntroGroudonRocks: @ 0x0816DFDC - push {lr} - adds r3, r0, #0 - ldrh r0, [r3, #0x34] - adds r0, #1 - strh r0, [r3, #0x34] - ldrh r0, [r3, #0x34] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _0816DFF8 - ldrh r0, [r3, #0x26] - movs r1, #3 - eors r0, r1 - strh r0, [r3, #0x26] -_0816DFF8: - movs r1, #0x2e - ldrsh r0, [r3, r1] - cmp r0, #0 - beq _0816E006 - cmp r0, #1 - beq _0816E05C - b _0816E080 -_0816E006: - ldr r2, _0816E054 - movs r0, #0x30 - ldrsh r1, [r3, r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r2, #4 - adds r0, r0, r2 - ldrh r2, [r0] - ldrh r1, [r3, #0x32] - adds r2, r2, r1 - strh r2, [r3, #0x32] - movs r0, #0x32 - ldrsh r1, [r3, r0] - movs r0, #0xff - lsls r0, r0, #8 - ands r1, r0 - asrs r1, r1, #8 - ldrh r0, [r3, #0x22] - subs r0, r0, r1 - strh r0, [r3, #0x22] - movs r0, #0xff - ands r2, r0 - strh r2, [r3, #0x32] - ldr r2, _0816E058 - movs r0, #0x36 - ldrsh r1, [r3, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r1, #8 - ldrsh r0, [r0, r1] - cmp r0, #7 - ble _0816E080 - ldrh r0, [r3, #0x2e] - adds r0, #1 - strh r0, [r3, #0x2e] - b _0816E080 - .align 2, 0 -_0816E054: .4byte gUnknown_85C5D18 -_0816E058: .4byte gUnknown_3005B60 -_0816E05C: - ldrh r1, [r3, #0x20] - movs r2, #0x20 - ldrsh r0, [r3, r2] - cmp r0, #0x77 - bgt _0816E06A - subs r0, r1, #2 - b _0816E06C -_0816E06A: - adds r0, r1, #2 -_0816E06C: - strh r0, [r3, #0x20] - ldrh r1, [r3, #0x22] - movs r2, #0x22 - ldrsh r0, [r3, r2] - cmp r0, #0x4f - bgt _0816E07C - subs r0, r1, #2 - b _0816E07E -_0816E07C: - adds r0, r1, #2 -_0816E07E: - strh r0, [r3, #0x22] -_0816E080: - pop {r0} - bx r0 - thumb_func_end SpriteCB_IntroGroudonRocks - - thumb_func_start Task_IntroLoadKyogreScene -Task_IntroLoadKyogreScene: @ 0x0816E084 - push {r4, lr} - sub sp, #0xc - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl ResetSpriteData - ldr r0, _0816E114 - movs r1, #0xc0 - lsls r1, r1, #0x13 - bl sub_0803437C - ldr r0, _0816E118 - ldr r1, _0816E11C - bl sub_0803437C - ldr r0, _0816E120 - ldr r1, _0816E124 - bl sub_0803437C - ldr r0, _0816E128 - bl LoadCompressedSpriteSheet - ldr r0, _0816E12C - bl LoadSpritePalette - movs r0, #2 - rsbs r0, r0, #0 - ldr r1, _0816E130 - str r1, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r0, _0816E134 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _0816E138 - str r0, [r1] - movs r4, #0 - strh r4, [r1, #8] - movs r0, #0xa8 - lsls r0, r0, #1 - strh r0, [r1, #0xa] - movs r2, #0x50 - strh r2, [r1, #0xc] - movs r2, #0x10 - strh r2, [r1, #0x14] - adds r2, #0xf0 - strh r2, [r1, #0xe] - movs r1, #0x50 - movs r3, #0 - bl PanFadeAndZoomScreen - movs r0, #1 - str r0, [sp] - movs r0, #6 - str r0, [sp, #4] - str r4, [sp, #8] - movs r0, #0 - movs r1, #0xa0 - movs r2, #4 - movs r3, #4 - bl ScanlineEffect_InitWave - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816E114: .4byte gUnknown_8D89208 -_0816E118: .4byte gUnknown_8D89AA0 -_0816E11C: .4byte 0x0600C000 -_0816E120: .4byte gUnknown_8D8A918 -_0816E124: .4byte 0x0600E000 -_0816E128: .4byte gUnknown_85C5D3C -_0816E12C: .4byte gUnknown_85C5D4C -_0816E130: .4byte 0x0000FFFF -_0816E134: .4byte gUnknown_3005B60 -_0816E138: .4byte Task_IntroKyogreScene - thumb_func_end Task_IntroLoadKyogreScene - - thumb_func_start Task_IntroKyogreScene -Task_IntroKyogreScene: @ 0x0816E13C - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _0816E170 - adds r5, r0, r1 - ldrh r0, [r5, #2] - ldrh r1, [r5, #4] - ldrh r2, [r5, #6] - movs r3, #0 - bl PanFadeAndZoomScreen - movs r1, #0 - ldrsh r0, [r5, r1] - cmp r0, #0xd - bls _0816E164 - b _0816E4A0 -_0816E164: - lsls r0, r0, #2 - ldr r1, _0816E174 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0816E170: .4byte gUnknown_3005B68 -_0816E174: .4byte _0816E178 -_0816E178: @ jump table - .4byte _0816E1B0 @ case 0 - .4byte _0816E1C4 @ case 1 - .4byte _0816E220 @ case 2 - .4byte _0816E26C @ case 3 - .4byte _0816E2A8 @ case 4 - .4byte _0816E2D0 @ case 5 - .4byte _0816E328 @ case 6 - .4byte _0816E344 @ case 7 - .4byte _0816E384 @ case 8 - .4byte _0816E3A0 @ case 9 - .4byte _0816E3E0 @ case 10 - .4byte _0816E3FE @ case 11 - .4byte _0816E448 @ case 12 - .4byte _0816E480 @ case 13 -_0816E1B0: - ldrh r0, [r5, #0xc] - subs r0, #1 - strh r0, [r5, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0816E1BE - b _0816E4A0 -_0816E1BE: - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] -_0816E1C4: - ldrh r0, [r5, #0xc] - adds r0, #4 - strh r0, [r5, #0xc] - movs r2, #0xc - ldrsh r0, [r5, r2] - movs r1, #0x80 - lsls r1, r1, #1 - bl Sin - ldr r1, _0816E21C - lsls r4, r6, #2 - adds r4, r4, r6 - lsls r4, r4, #3 - adds r4, r4, r1 - movs r2, #0xac - lsls r2, r2, #1 - adds r1, r2, #0 - subs r1, r1, r0 - strh r1, [r4, #0xa] - movs r1, #0xc - ldrsh r0, [r5, r1] - movs r1, #0x40 - bl Cos - movs r1, #0x54 - subs r1, r1, r0 - strh r1, [r4, #0xc] - movs r2, #0xc - ldrsh r0, [r5, r2] - cmp r0, #0x40 - beq _0816E204 - b _0816E4A0 -_0816E204: - movs r0, #0x19 - strh r0, [r5, #0xc] - movs r0, #1 - strh r0, [r5, #0xe] - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - movs r0, #0 - bl CreateKyogreBubbleSprites_0 - b _0816E4A0 - .align 2, 0 -_0816E21C: .4byte gUnknown_3005B60 -_0816E220: - ldrh r0, [r5, #0xc] - subs r0, #1 - strh r0, [r5, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0816E22E - b _0816E4A0 -_0816E22E: - ldr r0, _0816E264 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r2, #0 - ldrh r2, [r1, #0xa] - adds r0, r0, r2 - strh r0, [r1, #0xa] - ldr r2, _0816E268 - adds r0, r2, #0 - ldrh r2, [r1, #0xc] - adds r0, r0, r2 - strh r0, [r1, #0xc] - movs r0, #8 - strh r0, [r5, #0xc] - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - movs r0, #0 - bl CreateKyogreBubbleSprites_0 - bl CreateKyogreBubbleSprites_1 - b _0816E4A0 - .align 2, 0 -_0816E264: .4byte gUnknown_3005B60 -_0816E268: .4byte 0xFFFFFEFE -_0816E26C: - ldrh r0, [r5, #0xc] - subs r0, #1 - strh r0, [r5, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0816E27A - b _0816E4A0 -_0816E27A: - ldr r0, _0816E2A0 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r2, _0816E2A4 - adds r0, r2, #0 - ldrh r2, [r1, #0xa] - adds r0, r0, r2 - strh r0, [r1, #0xa] - movs r2, #0x81 - lsls r2, r2, #1 - adds r0, r2, #0 - ldrh r2, [r1, #0xc] - adds r0, r0, r2 - strh r0, [r1, #0xc] - movs r0, #8 - strh r0, [r5, #0xc] - b _0816E474 - .align 2, 0 -_0816E2A0: .4byte gUnknown_3005B60 -_0816E2A4: .4byte 0xFFFFFF00 -_0816E2A8: - ldrh r0, [r5, #0xc] - subs r0, #1 - strh r0, [r5, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0816E2B6 - b _0816E4A0 -_0816E2B6: - ldr r1, _0816E2CC - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #0xc] - subs r1, #0xfc - strh r1, [r0, #0xc] - movs r0, #8 - strh r0, [r5, #0xc] - b _0816E474 - .align 2, 0 -_0816E2CC: .4byte gUnknown_3005B60 -_0816E2D0: - ldrh r0, [r5, #0xc] - subs r0, #1 - strh r0, [r5, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0816E2DE - b _0816E4A0 -_0816E2DE: - ldr r0, _0816E308 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0xc] - adds r0, #0xfc - strh r0, [r1, #0xc] - ldrh r2, [r5, #0xe] - movs r0, #0xe - ldrsh r1, [r5, r0] - cmp r1, #0 - beq _0816E30C - movs r0, #0xc - strh r0, [r5, #0xc] - subs r0, r2, #1 - strh r0, [r5, #0xe] - movs r0, #2 - strh r0, [r5] - b _0816E4A0 - .align 2, 0 -_0816E308: .4byte gUnknown_3005B60 -_0816E30C: - movs r0, #1 - strh r0, [r5, #0xc] - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - movs r0, #0xca - lsls r0, r0, #1 - str r1, [sp] - movs r1, #0 - movs r2, #0x78 - movs r3, #0xa - bl PlayCryInternal - b _0816E4A0 -_0816E328: - ldrh r0, [r5, #0xc] - subs r0, #1 - strh r0, [r5, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0816E336 - b _0816E4A0 -_0816E336: - movs r0, #4 - strh r0, [r5, #0xc] - movs r1, #0xf5 - lsls r1, r1, #1 - adds r0, r1, #0 - strh r0, [r5, #0xe] - b _0816E474 -_0816E344: - ldrh r0, [r5, #0xc] - subs r0, #1 - strh r0, [r5, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0816E352 - b _0816E4A0 -_0816E352: - movs r0, #4 - strh r0, [r5, #0xc] - movs r2, #0xe - ldrsh r0, [r5, r2] - ldr r1, _0816E37C - adds r0, r0, r1 - ldr r1, _0816E380 - movs r2, #1 - bl CpuSet - ldrh r0, [r5, #0xe] - subs r0, #2 - strh r0, [r5, #0xe] - lsls r0, r0, #0x10 - movs r1, #0xf0 - lsls r1, r1, #0x11 - cmp r0, r1 - beq _0816E378 - b _0816E4A0 -_0816E378: - b _0816E474 - .align 2, 0 -_0816E37C: .4byte gUnknown_8D85CB4 -_0816E380: .4byte gUnknown_2037812 -_0816E384: - ldrh r0, [r5, #0xc] - subs r0, #1 - strh r0, [r5, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0816E392 - b _0816E4A0 -_0816E392: - movs r0, #4 - strh r0, [r5, #0xc] - movs r2, #0xf1 - lsls r2, r2, #1 - adds r0, r2, #0 - strh r0, [r5, #0xe] - b _0816E474 -_0816E3A0: - ldrh r0, [r5, #0xc] - subs r0, #1 - strh r0, [r5, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0816E4A0 - movs r0, #4 - strh r0, [r5, #0xc] - movs r1, #0xe - ldrsh r0, [r5, r1] - ldr r2, _0816E3D8 - adds r0, r0, r2 - ldr r1, _0816E3DC - movs r2, #1 - bl CpuSet - ldrh r0, [r5, #0xe] - adds r0, #2 - strh r0, [r5, #0xe] - lsls r0, r0, #0x10 - movs r1, #0xf7 - lsls r1, r1, #0x11 - cmp r0, r1 - bne _0816E4A0 - movs r0, #0x10 - strh r0, [r5, #0xc] - b _0816E474 - .align 2, 0 -_0816E3D8: .4byte gUnknown_8D85CB4 -_0816E3DC: .4byte gUnknown_2037812 -_0816E3E0: - ldrh r0, [r5, #0xc] - subs r0, #1 - strh r0, [r5, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bne _0816E4A0 - strh r0, [r5, #0xc] - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - adds r0, r6, #0 - bl CreateKyogreBubbleSprites_0 - b _0816E4A0 -_0816E3FE: - ldrh r0, [r5, #0xc] - adds r0, #4 - strh r0, [r5, #0xc] - ldrh r0, [r5, #6] - subs r0, #8 - strh r0, [r5, #6] - movs r1, #0xc - ldrsh r0, [r5, r1] - movs r1, #0x3c - bl Sin - ldr r2, _0816E440 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r2 - adds r0, #0x58 - strh r0, [r1, #0xa] - movs r2, #0xc - ldrsh r0, [r5, r2] - cmp r0, #0x40 - bne _0816E4A0 - movs r0, #2 - rsbs r0, r0, #0 - ldr r1, _0816E444 - str r1, [sp] - movs r1, #3 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - b _0816E474 - .align 2, 0 -_0816E440: .4byte gUnknown_3005B60 -_0816E444: .4byte 0x00007FFF -_0816E448: - ldrh r0, [r5, #0xc] - adds r0, #4 - strh r0, [r5, #0xc] - ldrh r0, [r5, #6] - subs r0, #8 - strh r0, [r5, #6] - movs r1, #0xc - ldrsh r0, [r5, r1] - movs r1, #0x14 - bl Sin - ldr r2, _0816E47C - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r2 - adds r0, #0x80 - strh r0, [r1, #0xa] - movs r2, #0xc - ldrsh r0, [r5, r2] - cmp r0, #0x80 - bne _0816E4A0 -_0816E474: - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - b _0816E4A0 - .align 2, 0 -_0816E47C: .4byte gUnknown_3005B60 -_0816E480: - ldr r0, _0816E4A8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0816E4A0 - ldr r1, _0816E4AC - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0816E4B0 - str r1, [r0] - ldr r1, _0816E4B4 - movs r0, #3 - strb r0, [r1, #0x15] -_0816E4A0: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0816E4A8: .4byte gUnknown_2037C74 -_0816E4AC: .4byte gUnknown_3005B60 -_0816E4B0: .4byte Task_IntroLoadClouds1 -_0816E4B4: .4byte gUnknown_20397C8 - thumb_func_end Task_IntroKyogreScene - - thumb_func_start CreateKyogreBubbleSprites_0 -CreateKyogreBubbleSprites_0: @ 0x0816E4B8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r5, #0 - ldr r7, _0816E524 - ldr r0, _0816E528 - mov sb, r0 - adds r4, r7, #0 - movs r6, #0 -_0816E4D2: - movs r3, #0 - ldrsh r1, [r4, r3] - adds r0, r7, #2 - adds r0, r6, r0 - movs r3, #0 - ldrsh r2, [r0, r3] - lsls r3, r5, #0x18 - lsrs r3, r3, #0x18 - ldr r0, _0816E52C - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - add r2, sb - adds r3, r2, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r1, #4 - orrs r0, r1 - strb r0, [r3] - mov r0, r8 - strh r0, [r2, #0x38] - ldrh r0, [r4, #4] - strh r0, [r2, #0x3a] - movs r0, #0x40 - strh r0, [r2, #0x3c] - adds r4, #6 - adds r6, #6 - adds r5, #1 - cmp r5, #5 - ble _0816E4D2 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0816E524: .4byte gUnknown_85C5D5C -_0816E528: .4byte gUnknown_20205AC -_0816E52C: .4byte gUnknown_85C5DC8 - thumb_func_end CreateKyogreBubbleSprites_0 - - thumb_func_start CreateKyogreBubbleSprites_1 -CreateKyogreBubbleSprites_1: @ 0x0816E530 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r5, #0 - ldr r7, _0816E58C - adds r4, r7, #4 - movs r6, #0x24 - ldr r0, _0816E590 - mov r8, r0 -_0816E542: - movs r3, #0x20 - ldrsh r1, [r4, r3] - adds r0, r7, #2 - adds r0, r6, r0 - movs r3, #0 - ldrsh r2, [r0, r3] - lsls r3, r5, #0x18 - lsrs r3, r3, #0x18 - ldr r0, _0816E594 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - add r2, r8 - adds r3, r2, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r1, #4 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r4] - strh r0, [r2, #0x3a] - movs r0, #0x40 - strh r0, [r2, #0x3c] - adds r4, #6 - adds r6, #6 - adds r5, #1 - cmp r5, #5 - ble _0816E542 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0816E58C: .4byte gUnknown_85C5D5C -_0816E590: .4byte gUnknown_20205AC -_0816E594: .4byte gUnknown_85C5DC8 - thumb_func_end CreateKyogreBubbleSprites_1 - - thumb_func_start SpriteCB_IntroKyogreBubbles -SpriteCB_IntroKyogreBubbles: @ 0x0816E598 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0816E5AA - cmp r0, #1 - beq _0816E630 - b _0816E666 -_0816E5AA: - ldrh r1, [r4, #0x3a] - movs r2, #0x3a - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _0816E5EE - ldrh r0, [r4, #0x30] - adds r0, #0xb - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x30] - movs r1, #0x30 - ldrsh r0, [r4, r1] - movs r1, #4 - bl Sin - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x32] - adds r0, #0x30 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0816E60E - adds r0, r4, #0 - bl DestroySprite - b _0816E60E -_0816E5EE: - subs r0, r1, #1 - strh r0, [r4, #0x3a] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0816E60E - adds r0, r4, #0 - movs r1, #0 - bl StartSpriteAnim - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_0816E60E: - ldr r2, _0816E62C - movs r0, #0x38 - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r1, #8 - ldrsh r0, [r0, r1] - cmp r0, #0xb - ble _0816E666 - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - b _0816E666 - .align 2, 0 -_0816E62C: .4byte gUnknown_3005B60 -_0816E630: - ldrh r1, [r4, #0x20] - movs r2, #0x20 - ldrsh r0, [r4, r2] - cmp r0, #0x77 - bgt _0816E63E - subs r0, r1, #3 - b _0816E640 -_0816E63E: - adds r0, r1, #3 -_0816E640: - strh r0, [r4, #0x20] - ldrh r1, [r4, #0x22] - movs r2, #0x22 - ldrsh r0, [r4, r2] - cmp r0, #0x4f - bgt _0816E650 - subs r0, r1, #3 - b _0816E652 -_0816E650: - adds r0, r1, #3 -_0816E652: - strh r0, [r4, #0x22] - ldrh r0, [r4, #0x22] - subs r0, #0x14 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x8c - bls _0816E666 - adds r0, r4, #0 - bl DestroySprite -_0816E666: - pop {r4} - pop {r0} - bx r0 - thumb_func_end SpriteCB_IntroKyogreBubbles - - thumb_func_start Task_IntroLoadClouds1 -Task_IntroLoadClouds1: @ 0x0816E66C - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - movs r0, #0x50 - movs r1, #0x87 - bl SetGpuReg - ldr r1, _0816E710 - movs r0, #0x52 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0x1f - bl SetGpuReg - movs r1, #0xb0 - lsls r1, r1, #7 - movs r0, #8 - bl SetGpuReg - ldr r1, _0816E714 - movs r0, #0xa - bl SetGpuReg - ldr r1, _0816E718 - movs r0, #0xc - bl SetGpuReg - movs r1, #0xdd - lsls r1, r1, #6 - movs r0, #0 - bl SetGpuReg - movs r0, #0x10 - movs r1, #0x50 - bl SetGpuReg - movs r0, #0x12 - movs r1, #0 - bl SetGpuReg - ldr r1, _0816E71C - movs r0, #0x14 - bl SetGpuReg - movs r0, #0x16 - movs r1, #0 - bl SetGpuReg - movs r0, #0x18 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1a - movs r1, #0 - bl SetGpuReg - ldr r4, _0816E720 - movs r1, #0xc0 - lsls r1, r1, #0x13 - adds r0, r4, #0 - bl sub_0803437C - ldr r1, _0816E724 - adds r0, r4, #0 - bl sub_0803437C - ldr r0, _0816E728 - ldr r1, _0816E72C - bl sub_0803437C - ldr r1, _0816E730 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0816E734 - str r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0816E710: .4byte 0x00001F1F -_0816E714: .4byte 0x00005A04 -_0816E718: .4byte 0x00001C06 -_0816E71C: .4byte 0x0000FFB0 -_0816E720: .4byte gUnknown_8D8AA38 -_0816E724: .4byte 0x06004000 -_0816E728: .4byte gUnknown_8D8B6CC -_0816E72C: .4byte 0x0600E000 -_0816E730: .4byte gUnknown_3005B60 -_0816E734: .4byte Task_IntroLoadClouds2 - thumb_func_end Task_IntroLoadClouds1 - - thumb_func_start Task_IntroLoadClouds2 -Task_IntroLoadClouds2: @ 0x0816E738 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _0816E764 - ldr r1, _0816E768 - bl sub_0803437C - ldr r0, _0816E76C - ldr r1, _0816E770 - bl sub_0803437C - ldr r1, _0816E774 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0816E778 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816E764: .4byte gUnknown_8D8B164 -_0816E768: .4byte 0x0600C000 -_0816E76C: .4byte gUnknown_8D8B424 -_0816E770: .4byte 0x0600D000 -_0816E774: .4byte gUnknown_3005B60 -_0816E778: .4byte Task_IntroLoadClouds3 - thumb_func_end Task_IntroLoadClouds2 - - thumb_func_start Task_IntroLoadClouds3 -Task_IntroLoadClouds3: @ 0x0816E77C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - ldr r1, _0816E7B8 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0816E7BC - str r1, [r0] - movs r1, #0 - strh r1, [r0, #8] - movs r1, #0x10 - strh r1, [r0, #0x14] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816E7B8: .4byte gUnknown_3005B60 -_0816E7BC: .4byte Task_IntroCloudScene - thumb_func_end Task_IntroLoadClouds3 - - thumb_func_start Task_IntroCloudScene -Task_IntroCloudScene: @ 0x0816E7C0 - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r5, r1, #3 - ldr r6, _0816E804 - adds r4, r5, r6 - ldrh r1, [r4, #0xc] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x10 - bl SetGpuReg - ldrh r1, [r4, #0xc] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - rsbs r1, r1, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x14 - bl SetGpuReg - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0816E808 - cmp r0, #1 - beq _0816E83C - b _0816E88A - .align 2, 0 -_0816E804: .4byte gUnknown_3005B68 -_0816E808: - ldrh r0, [r4, #0xc] - subs r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0816E88A - movs r0, #2 - rsbs r0, r0, #0 - ldr r1, _0816E838 - str r1, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - movs r2, #0xa0 - lsls r2, r2, #7 - adds r0, r2, #0 - strh r0, [r4, #0xc] - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - b _0816E88A - .align 2, 0 -_0816E838: .4byte 0x0000FFFF -_0816E83C: - movs r0, #0xc - ldrsh r1, [r4, r0] - movs r0, #0xa0 - lsls r0, r0, #6 - cmp r1, r0 - bne _0816E858 - ldr r0, _0816E86C - ldr r1, _0816E870 - str r1, [sp] - movs r1, #3 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade -_0816E858: - ldrh r1, [r4, #0xc] - movs r2, #0xc - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _0816E874 - adds r0, r1, #0 - subs r0, #0x80 - strh r0, [r4, #0xc] - b _0816E88A - .align 2, 0 -_0816E86C: .4byte 0x0000FFFE -_0816E870: .4byte 0x00002949 -_0816E874: - ldr r0, _0816E894 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0816E88A - adds r0, r6, #0 - subs r0, #8 - adds r0, r5, r0 - ldr r1, _0816E898 - str r1, [r0] -_0816E88A: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0816E894: .4byte gUnknown_2037C74 -_0816E898: .4byte Task_IntroLoadRayquazaLightningScene - thumb_func_end Task_IntroCloudScene - - thumb_func_start Task_IntroLoadRayquazaLightningScene -Task_IntroLoadRayquazaLightningScene: @ 0x0816E89C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _0816E8FC - ldr r1, _0816E900 - bl sub_0803437C - ldr r0, _0816E904 - ldr r1, _0816E908 - bl sub_0803437C - ldr r0, _0816E90C - ldr r1, _0816E910 - bl sub_0803437C - ldr r0, _0816E914 - movs r1, #0xc0 - lsls r1, r1, #0x13 - bl sub_0803437C - movs r1, #0xd5 - lsls r1, r1, #6 - movs r0, #0 - bl SetGpuReg - ldr r1, _0816E918 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0816E91C - str r1, [r0] - movs r2, #0 - strh r2, [r0, #8] - movs r1, #1 - strh r1, [r0, #0x14] - strh r2, [r0, #0x16] - ldr r0, _0816E920 - bl LoadCompressedSpriteSheetUsingHeap - ldr r0, _0816E924 - bl LoadSpritePalettes - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816E8FC: .4byte gUnknown_8D8C150 -_0816E900: .4byte 0x0600E000 -_0816E904: .4byte gUnknown_8D8CCAC -_0816E908: .4byte 0x0600C000 -_0816E90C: .4byte gUnknown_8D8BA58 -_0816E910: .4byte 0x06004000 -_0816E914: .4byte gUnknown_8D8C81C -_0816E918: .4byte gUnknown_3005B60 -_0816E91C: .4byte Task_IntroRayquazaLightningScene -_0816E920: .4byte gUnknown_85C5CA8 -_0816E924: .4byte gUnknown_85C5CB8 - thumb_func_end Task_IntroLoadRayquazaLightningScene - - thumb_func_start Task_IntroRayquazaLightningScene -Task_IntroRayquazaLightningScene: @ 0x0816E928 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r2, _0816E94C - adds r6, r1, r2 - movs r3, #0 - ldrsh r0, [r6, r3] - cmp r0, #1 - beq _0816E9C4 - cmp r0, #1 - bgt _0816E950 - cmp r0, #0 - beq _0816E956 - b _0816EA46 - .align 2, 0 -_0816E94C: .4byte gUnknown_3005B68 -_0816E950: - cmp r0, #2 - beq _0816EA30 - b _0816EA46 -_0816E956: - ldrh r0, [r6, #0xc] - subs r0, #1 - strh r0, [r6, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0816EA46 - ldr r4, _0816E9BC - adds r0, r4, #0 - movs r1, #0xc8 - movs r2, #0x30 - movs r3, #0 - bl CreateSprite - adds r0, r4, #0 - movs r1, #0xc8 - movs r2, #0x50 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r5, _0816E9C0 - adds r0, r0, r5 - movs r1, #1 - bl StartSpriteAnim - adds r0, r4, #0 - movs r1, #0xc8 - movs r2, #0x70 - movs r3, #2 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #2 - bl StartSpriteAnim - ldrh r0, [r6] - adds r0, #1 - strh r0, [r6] - movs r0, #0x48 - strh r0, [r6, #0xc] - b _0816EA46 - .align 2, 0 -_0816E9BC: .4byte gUnknown_85C5D00 -_0816E9C0: .4byte gUnknown_20205AC -_0816E9C4: - ldrh r0, [r6, #0xc] - subs r0, #1 - strh r0, [r6, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0816EA46 - ldr r4, _0816EA28 - adds r0, r4, #0 - movs r1, #0x28 - movs r2, #0x30 - movs r3, #0 - bl CreateSprite - adds r0, r4, #0 - movs r1, #0x28 - movs r2, #0x50 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r5, _0816EA2C - adds r0, r0, r5 - movs r1, #1 - bl StartSpriteAnim - adds r0, r4, #0 - movs r1, #0x28 - movs r2, #0x70 - movs r3, #2 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #2 - bl StartSpriteAnim - ldrh r0, [r6] - adds r0, #1 - strh r0, [r6] - movs r0, #0x30 - strh r0, [r6, #0xc] - b _0816EA46 - .align 2, 0 -_0816EA28: .4byte gUnknown_85C5D00 -_0816EA2C: .4byte gUnknown_20205AC -_0816EA30: - ldrh r0, [r6, #0xc] - subs r0, #1 - strh r0, [r6, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0816EA46 - adds r0, r2, #0 - subs r0, #8 - adds r0, r1, r0 - ldr r1, _0816EA4C - str r1, [r0] -_0816EA46: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0816EA4C: .4byte Task_IntroLoadRayquazaGlowScene - thumb_func_end Task_IntroRayquazaLightningScene - - thumb_func_start SpriteCB_IntroRayquazaLightning -SpriteCB_IntroRayquazaLightning: @ 0x0816EA50 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0816EA6C - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] -_0816EA6C: - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _0816EA90 - cmp r0, #1 - bgt _0816EA7E - cmp r0, #0 - beq _0816EA84 - b _0816EAF6 -_0816EA7E: - cmp r0, #2 - beq _0816EAC0 - b _0816EAF6 -_0816EA84: - movs r0, #0xe1 - lsls r0, r0, #1 - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] -_0816EA90: - movs r1, #0x30 - ldrsh r0, [r4, r1] - ldr r1, _0816EAFC - adds r0, r0, r1 - ldr r1, _0816EB00 - movs r2, #1 - bl CpuSet - ldrh r0, [r4, #0x30] - adds r0, #2 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - movs r1, #0xe7 - lsls r1, r1, #0x11 - cmp r0, r1 - bne _0816EAF6 - movs r0, #0xe6 - lsls r0, r0, #1 - strh r0, [r4, #0x30] - movs r0, #4 - strh r0, [r4, #0x32] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] -_0816EAC0: - ldrh r0, [r4, #0x32] - subs r0, #1 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0816EAF6 - movs r0, #4 - strh r0, [r4, #0x32] - movs r1, #0x30 - ldrsh r0, [r4, r1] - ldr r1, _0816EAFC - adds r0, r0, r1 - ldr r1, _0816EB00 - movs r2, #1 - bl CpuSet - ldrh r0, [r4, #0x30] - subs r0, #2 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - movs r1, #0xe0 - lsls r1, r1, #0x11 - cmp r0, r1 - bne _0816EAF6 - adds r0, r4, #0 - bl DestroySprite -_0816EAF6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816EAFC: .4byte gUnknown_8D85CB4 -_0816EB00: .4byte gUnknown_203786E - thumb_func_end SpriteCB_IntroRayquazaLightning - - thumb_func_start Task_IntroLoadRayquazaGlowScene -Task_IntroLoadRayquazaGlowScene: @ 0x0816EB04 - push {r4, r5, r6, lr} - sub sp, #4 - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _0816EB74 - bl LoadCompressedSpriteSheet - ldr r0, _0816EB78 - bl LoadSpritePalettes - movs r1, #0xd5 - lsls r1, r1, #6 - movs r0, #0 - bl SetGpuReg - ldr r6, _0816EB7C - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - adds r4, r4, r6 - ldr r0, _0816EB80 - str r0, [r4] - ldr r0, _0816EB84 - ldr r1, _0816EB88 - str r1, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - movs r0, #0 - strh r0, [r4, #8] - movs r0, #0xa8 - strh r0, [r4, #0xa] - ldr r1, _0816EB8C - strh r1, [r4, #0xc] - ldr r0, _0816EB90 - strh r0, [r4, #0xe] - strh r1, [r4, #0x10] - ldr r0, _0816EB94 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r6 - strh r5, [r1, #0x10] - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0816EB74: .4byte gUnknown_85C60FC -_0816EB78: .4byte gUnknown_85C610C -_0816EB7C: .4byte gUnknown_3005B60 -_0816EB80: .4byte Task_IntroRayquazaGlowScene_0 -_0816EB84: .4byte 0x0000FFDE -_0816EB88: .4byte 0x00002949 -_0816EB8C: .4byte 0x0000FFF0 -_0816EB90: .4byte 0x0000FF78 -_0816EB94: .4byte Task_IntroRayquazaGlowScene_1 - thumb_func_end Task_IntroLoadRayquazaGlowScene - - thumb_func_start Task_IntroRayquazaGlowScene_0 -Task_IntroRayquazaGlowScene_0: @ 0x0816EB98 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r4, r1, #3 - ldr r5, _0816EBD4 - adds r2, r4, r5 - ldrh r0, [r2, #0xe] - movs r3, #1 - ands r0, r3 - cmp r0, #0 - bne _0816EBBA - ldrh r0, [r2, #0xc] - movs r1, #2 - eors r0, r1 - strh r0, [r2, #0xc] -_0816EBBA: - ldrh r0, [r2, #0xe] - adds r0, #1 - strh r0, [r2, #0xe] - movs r6, #0 - ldrsh r1, [r2, r6] - cmp r1, #1 - beq _0816EC12 - cmp r1, #1 - bgt _0816EBD8 - cmp r1, #0 - beq _0816EBE2 - b _0816EC6A - .align 2, 0 -_0816EBD4: .4byte gUnknown_3005B68 -_0816EBD8: - cmp r1, #2 - beq _0816EC1E - cmp r1, #3 - beq _0816EC54 - b _0816EC6A -_0816EBE2: - ands r0, r3 - cmp r0, #0 - beq _0816EC00 - ldrh r0, [r2, #2] - subs r0, #2 - strh r0, [r2, #2] - ldrh r0, [r2, #4] - adds r0, #1 - strh r0, [r2, #4] - ldrh r0, [r2, #6] - adds r0, #2 - strh r0, [r2, #6] - ldrh r0, [r2, #8] - adds r0, #1 - strh r0, [r2, #8] -_0816EC00: - movs r1, #2 - ldrsh r0, [r2, r1] - cmp r0, #0x68 - bne _0816EC6A - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - strh r3, [r2, #0xa] - b _0816EC6A -_0816EC12: - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - movs r0, #4 - strh r0, [r2, #0xa] - b _0816EC6A -_0816EC1E: - ldrh r0, [r2, #2] - adds r0, #4 - strh r0, [r2, #2] - ldrh r0, [r2, #4] - subs r0, #2 - strh r0, [r2, #4] - ldrh r0, [r2, #6] - subs r0, #4 - strh r0, [r2, #6] - ldrh r0, [r2, #8] - subs r0, #2 - strh r0, [r2, #8] - ldr r0, _0816EC50 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0816EC6A - movs r0, #0x8c - strh r0, [r2, #0xa] - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - b _0816EC6A - .align 2, 0 -_0816EC50: .4byte gUnknown_2037C74 -_0816EC54: - ldrh r0, [r2, #0xa] - subs r0, #1 - strh r0, [r2, #0xa] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0816EC6A - adds r0, r5, #0 - subs r0, #8 - adds r0, r4, r0 - ldr r1, _0816EC70 - str r1, [r0] -_0816EC6A: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0816EC70: .4byte Task_EndIntroMovie - thumb_func_end Task_IntroRayquazaGlowScene_0 - - thumb_func_start Task_EndIntroMovie -Task_EndIntroMovie: @ 0x0816EC74 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - ldr r0, _0816EC88 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0816EC88: .4byte MainCB2_EndIntro - thumb_func_end Task_EndIntroMovie - - thumb_func_start Task_IntroRayquazaGlowScene_1 -Task_IntroRayquazaGlowScene_1: @ 0x0816EC8C - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _0816ECB8 - adds r5, r0, r1 - ldrh r0, [r5, #4] - adds r0, #1 - strh r0, [r5, #4] - movs r1, #0 - ldrsh r0, [r5, r1] - cmp r0, #5 - bls _0816ECAE - b _0816EE96 -_0816ECAE: - lsls r0, r0, #2 - ldr r1, _0816ECBC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0816ECB8: .4byte gUnknown_3005B68 -_0816ECBC: .4byte _0816ECC0 -_0816ECC0: @ jump table - .4byte _0816ECD8 @ case 0 - .4byte _0816ED18 @ case 1 - .4byte _0816ED64 @ case 2 - .4byte _0816EDEE @ case 3 - .4byte _0816EE58 @ case 4 - .4byte _0816EE84 @ case 5 -_0816ECD8: - ldrh r1, [r5, #4] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0816ECFA - movs r2, #2 - ldrsh r0, [r5, r2] - lsls r0, r0, #1 - ldr r1, _0816ED10 - adds r0, r0, r1 - ldr r1, _0816ED14 - movs r2, #1 - bl CpuSet - ldrh r0, [r5, #2] - adds r0, #1 - strh r0, [r5, #2] -_0816ECFA: - movs r2, #2 - ldrsh r0, [r5, r2] - cmp r0, #6 - beq _0816ED04 - b _0816EE96 -_0816ED04: - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - movs r0, #0 - strh r0, [r5, #2] - b _0816ED54 - .align 2, 0 -_0816ED10: .4byte gUnknown_8D85E56 -_0816ED14: .4byte gUnknown_2037870 -_0816ED18: - ldrh r1, [r5, #6] - movs r2, #6 - ldrsh r0, [r5, r2] - cmp r0, #0 - bne _0816EDE8 - ldrh r1, [r5, #4] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0816ED44 - movs r1, #2 - ldrsh r0, [r5, r1] - lsls r0, r0, #1 - ldr r2, _0816ED5C - adds r0, r0, r2 - ldr r1, _0816ED60 - movs r2, #1 - bl CpuSet - ldrh r0, [r5, #2] - adds r0, #1 - strh r0, [r5, #2] -_0816ED44: - movs r1, #2 - ldrsh r0, [r5, r1] - cmp r0, #6 - beq _0816ED4E - b _0816EE96 -_0816ED4E: - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] -_0816ED54: - movs r0, #0xa - strh r0, [r5, #6] - b _0816EE96 - .align 2, 0 -_0816ED5C: .4byte gUnknown_8D85E56 -_0816ED60: .4byte gUnknown_2037864 -_0816ED64: - ldrh r1, [r5, #6] - movs r2, #6 - ldrsh r0, [r5, r2] - cmp r0, #0 - bne _0816EDE8 - ldrh r1, [r5, #4] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0816ED90 - movs r1, #2 - ldrsh r0, [r5, r1] - lsls r0, r0, #1 - ldr r2, _0816EDD8 - adds r0, r0, r2 - ldr r1, _0816EDDC - movs r2, #1 - bl CpuSet - ldrh r0, [r5, #2] - adds r0, #1 - strh r0, [r5, #2] -_0816ED90: - movs r1, #2 - ldrsh r0, [r5, r1] - cmp r0, #6 - beq _0816ED9A - b _0816EE96 -_0816ED9A: - ldr r0, _0816EDE0 - movs r1, #0x78 - movs r2, #0x58 - movs r3, #0xf - bl CreateSprite - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0x67 - bl sub_080A306C - ldr r1, _0816EDE4 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - adds r3, r0, #0 - adds r3, #0x3e - ldrb r1, [r3] - movs r2, #4 - orrs r1, r2 - strb r1, [r3] - ldrh r1, [r5, #8] - strh r1, [r0, #0x34] - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - movs r0, #0x10 - strh r0, [r5, #6] - b _0816EE96 - .align 2, 0 -_0816EDD8: .4byte gUnknown_8D85E36 -_0816EDDC: .4byte gUnknown_203786C -_0816EDE0: .4byte gUnknown_85C60E4 -_0816EDE4: .4byte gUnknown_20205AC -_0816EDE8: - subs r0, r1, #1 - strh r0, [r5, #6] - b _0816EE96 -_0816EDEE: - ldrh r1, [r5, #4] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0816EE96 - ldrh r0, [r5, #6] - subs r0, #1 - adds r2, r0, #0 - strh r0, [r5, #6] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0816EE4C - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r3, _0816EE3C - movs r0, #0x50 - movs r1, #0x10 - bl BlendPalette - ldr r5, _0816EE40 - ldr r4, _0816EE44 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #1 - bl CpuSet - adds r1, r4, #0 - subs r1, #0xc - adds r0, r5, #0 - movs r2, #1 - bl CpuSet - ldr r0, _0816EE48 - subs r4, #4 - adds r1, r4, #0 - movs r2, #1 - bl CpuSet - b _0816EE96 - .align 2, 0 -_0816EE3C: .4byte 0x00002949 -_0816EE40: .4byte gUnknown_8D85E60 -_0816EE44: .4byte gUnknown_2037870 -_0816EE48: .4byte gUnknown_8D85E40 -_0816EE4C: - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - movs r0, #0x35 - strh r0, [r5, #6] - b _0816EE96 -_0816EE58: - ldrh r0, [r5, #6] - subs r0, #1 - strh r0, [r5, #6] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0816EE96 - movs r0, #1 - rsbs r0, r0, #0 - ldr r1, _0816EE80 - str r1, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - b _0816EE96 - .align 2, 0 -_0816EE80: .4byte 0x00007FFF -_0816EE84: - ldr r0, _0816EEA0 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0816EE96 - adds r0, r2, #0 - bl DestroyTask -_0816EE96: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0816EEA0: .4byte gUnknown_2037C74 - thumb_func_end Task_IntroRayquazaGlowScene_1 - - thumb_func_start intro_reset_and_hide_bgs -intro_reset_and_hide_bgs: @ 0x0816EEA4 - push {lr} - movs r0, #0 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1c - movs r1, #0 - bl SetGpuReg - movs r0, #0x1e - movs r1, #0 - bl SetGpuReg - movs r0, #0x18 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1a - movs r1, #0 - bl SetGpuReg - movs r0, #0x14 - movs r1, #0 - bl SetGpuReg - movs r0, #0x16 - movs r1, #0 - bl SetGpuReg - movs r0, #0x10 - movs r1, #0 - bl SetGpuReg - movs r0, #0x12 - movs r1, #0 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end intro_reset_and_hide_bgs - - thumb_func_start Task_IntroWaterDrops_1 -Task_IntroWaterDrops_1: @ 0x0816EF0C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _0816EF4C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _0816EF54 - cmp r0, #1 - ble _0816EF2C - cmp r0, #2 - beq _0816EFA0 -_0816EF2C: - movs r1, #0xfd - lsls r1, r1, #6 - movs r0, #0x50 - bl SetGpuReg - ldr r0, _0816EF50 - ldrh r1, [r0, #0x3e] - movs r0, #0x52 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - movs r0, #0x40 - b _0816EF90 - .align 2, 0 -_0816EF4C: .4byte gUnknown_3005B60 -_0816EF50: .4byte gUnknown_851AC0C -_0816EF54: - ldrh r1, [r4, #0xa] - movs r2, #0xa - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _0816EF84 - subs r0, r1, #1 - strh r0, [r4, #0xa] - movs r1, #0xa - ldrsh r0, [r4, r1] - lsrs r1, r0, #0x1f - adds r0, r0, r1 - movs r1, #0xff - lsls r1, r1, #1 - ldr r2, _0816EF80 - ands r0, r1 - adds r0, r0, r2 - ldrh r1, [r0] - movs r0, #0x52 - bl SetGpuReg - b _0816EFBE - .align 2, 0 -_0816EF80: .4byte gUnknown_851AC0C -_0816EF84: - ldr r0, _0816EF9C - ldrh r1, [r0] - movs r0, #0x52 - bl SetGpuReg - movs r0, #0x10 -_0816EF90: - strh r0, [r4, #0xa] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _0816EFBE - .align 2, 0 -_0816EF9C: .4byte gUnknown_851AC0C -_0816EFA0: - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - adds r0, r5, #0 - bl DestroyTask -_0816EFBE: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end Task_IntroWaterDrops_1 - - thumb_func_start sub_0816EFC4 -sub_0816EFC4: @ 0x0816EFC4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _0816F004 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _0816F00C - cmp r0, #1 - ble _0816EFE4 - cmp r0, #2 - beq _0816F058 -_0816EFE4: - movs r1, #0xfd - lsls r1, r1, #6 - movs r0, #0x50 - bl SetGpuReg - ldr r0, _0816F008 - ldrh r1, [r0] - movs r0, #0x52 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - movs r0, #0 - b _0816F048 - .align 2, 0 -_0816F004: .4byte gUnknown_3005B60 -_0816F008: .4byte gUnknown_851AC0C -_0816F00C: - ldrh r1, [r4, #0xa] - movs r2, #0xa - ldrsh r0, [r4, r2] - cmp r0, #0x3d - bgt _0816F03C - adds r0, r1, #1 - strh r0, [r4, #0xa] - movs r1, #0xa - ldrsh r0, [r4, r1] - lsrs r1, r0, #0x1f - adds r0, r0, r1 - movs r1, #0xff - lsls r1, r1, #1 - ldr r2, _0816F038 - ands r0, r1 - adds r0, r0, r2 - ldrh r1, [r0] - movs r0, #0x52 - bl SetGpuReg - b _0816F086 - .align 2, 0 -_0816F038: .4byte gUnknown_851AC0C -_0816F03C: - ldr r0, _0816F054 - ldrh r1, [r0, #0x3e] - movs r0, #0x52 - bl SetGpuReg - movs r0, #0x10 -_0816F048: - strh r0, [r4, #0xa] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _0816F086 - .align 2, 0 -_0816F054: .4byte gUnknown_851AC0C -_0816F058: - ldrh r1, [r4, #0xa] - movs r2, #0xa - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _0816F068 - subs r0, r1, #1 - strh r0, [r4, #0xa] - b _0816F086 -_0816F068: - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - adds r0, r5, #0 - bl DestroyTask -_0816F086: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_0816EFC4 - - thumb_func_start PanFadeAndZoomScreen -PanFadeAndZoomScreen: @ 0x0816F08C - push {r4, lr} - sub sp, #0x24 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - movs r4, #0x80 - lsls r4, r4, #8 - str r4, [sp] - str r4, [sp, #4] - mov r4, sp - strh r0, [r4, #8] - mov r0, sp - strh r1, [r0, #0xa] - strh r2, [r0, #0xc] - strh r2, [r0, #0xe] - strh r3, [r0, #0x10] - add r4, sp, #0x14 - adds r1, r4, #0 - movs r2, #1 - bl BgAffineSet - ldrh r1, [r4] - movs r0, #0x20 - bl SetGpuReg - ldrh r1, [r4, #2] - movs r0, #0x22 - bl SetGpuReg - ldrh r1, [r4, #4] - movs r0, #0x24 - bl SetGpuReg - ldrh r1, [r4, #6] - movs r0, #0x26 - bl SetGpuReg - ldrh r1, [r4, #8] - movs r0, #0x28 - bl SetGpuReg - ldrh r1, [r4, #0xa] - movs r0, #0x2a - bl SetGpuReg - ldrh r1, [r4, #0xc] - movs r0, #0x2c - bl SetGpuReg - ldrh r1, [r4, #0xe] - movs r0, #0x2e - bl SetGpuReg - add sp, #0x24 - pop {r4} - pop {r0} - bx r0 - thumb_func_end PanFadeAndZoomScreen - - thumb_func_start sub_0816F0FC -sub_0816F0FC: @ 0x0816F0FC - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0xbf - ble _0816F178 - ldrh r1, [r4, #0x34] - movs r2, #0x34 - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _0816F11A - subs r0, r1, #1 - strh r0, [r4, #0x34] - b _0816F17E -_0816F11A: - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldrh r0, [r4, #0x30] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #0x32] - str r1, [sp] - movs r2, #0 - movs r3, #0 - bl SetOamMatrix - movs r0, #0x32 - ldrsh r1, [r4, r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #5 - subs r0, r0, r1 - movs r1, #0x64 - bl __divsi3 - strh r0, [r4, #0x32] - movs r2, #0x32 - ldrsh r1, [r4, r2] - adds r0, r1, #0 - subs r0, #0xc0 - cmp r0, #0 - bge _0816F15C - adds r0, #0x7f -_0816F15C: - asrs r0, r0, #7 - adds r0, #9 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xf - bls _0816F16A - movs r0, #0xf -_0816F16A: - lsls r2, r0, #4 - ldrb r1, [r4, #5] - movs r0, #0xf - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #5] - b _0816F17E -_0816F178: - adds r0, r4, #0 - bl DestroySprite -_0816F17E: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0816F0FC - - thumb_func_start sub_0816F188 -sub_0816F188: @ 0x0816F188 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0816F1FC - movs r1, #0x3c - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r3, #0x3c - ldrsh r0, [r1, r3] - cmp r0, #0 - beq _0816F204 - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r4, #0x24] - ldrh r1, [r4, #0x20] - adds r0, r0, r1 - strh r0, [r4, #0x20] - ldrh r0, [r4, #0x26] - ldrh r3, [r4, #0x22] - adds r0, r0, r3 - strh r0, [r4, #0x22] - adds r0, r4, #0 - movs r1, #3 - bl StartSpriteAnim - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r4, #0x32] - ldrh r1, [r4, #0x30] - movs r0, #3 - ands r0, r1 - lsls r0, r0, #3 - strh r0, [r4, #0x34] - ldr r0, _0816F200 - str r0, [r4, #0x1c] - ldrb r1, [r4, #1] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #1] - ldrb r0, [r4, #3] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #3] - adds r0, r4, #0 - movs r1, #1 - movs r2, #3 - movs r3, #2 - bl CalcCenterToCornerVec - b _0816F230 - .align 2, 0 -_0816F1FC: .4byte gUnknown_20205AC -_0816F200: .4byte sub_0816F0FC -_0816F204: - ldrh r0, [r1, #0x24] - strh r0, [r4, #0x24] - movs r0, #0x3c - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0, #0x26] - strh r0, [r4, #0x26] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0, #0x20] - strh r0, [r4, #0x20] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0, #0x22] - strh r0, [r4, #0x22] -_0816F230: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0816F188 - - thumb_func_start sub_0816F238 -sub_0816F238: @ 0x0816F238 - push {lr} - adds r1, r0, #0 - movs r2, #0x2e - ldrsh r0, [r1, r2] - cmp r0, #0 - beq _0816F248 - ldr r0, _0816F24C - str r0, [r1, #0x1c] -_0816F248: - pop {r0} - bx r0 - .align 2, 0 -_0816F24C: .4byte sub_0816F250 - thumb_func_end sub_0816F238 - - thumb_func_start sub_0816F250 -sub_0816F250: @ 0x0816F250 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r7, r0, #0 - ldrh r4, [r7, #0x20] - movs r1, #0x20 - ldrsh r0, [r7, r1] - cmp r0, #0x74 - bgt _0816F290 - ldrh r0, [r7, #0x26] - ldrh r1, [r7, #0x22] - adds r0, r0, r1 - movs r1, #0 - strh r0, [r7, #0x22] - strh r1, [r7, #0x26] - adds r0, r4, #4 - strh r0, [r7, #0x20] - ldr r0, _0816F288 - strh r0, [r7, #0x24] - movs r0, #0x80 - strh r0, [r7, #0x36] - ldr r0, _0816F28C - str r0, [r7, #0x1c] - b _0816F382 - .align 2, 0 -_0816F288: .4byte 0x0000FFFC -_0816F28C: .4byte sub_0816F398 -_0816F290: - ldrh r1, [r7, #0x36] - ldr r5, _0816F394 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r5 - ldrh r2, [r0] - adds r0, r1, #0 - adds r0, #0x40 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r5 - ldrh r3, [r0] - adds r1, #2 - strh r1, [r7, #0x36] - lsls r2, r2, #0x10 - asrs r0, r2, #0x10 - cmp r0, #0 - bge _0816F2B6 - adds r0, #0x1f -_0816F2B6: - asrs r0, r0, #5 - strh r0, [r7, #0x26] - subs r0, r4, #1 - strh r0, [r7, #0x20] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0816F2CC - ldrh r0, [r7, #0x22] - adds r0, #1 - strh r0, [r7, #0x22] -_0816F2CC: - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - rsbs r0, r0, #0 - cmp r0, #0 - bge _0816F2D8 - adds r0, #0xf -_0816F2D8: - lsls r1, r0, #0xc - lsrs r1, r1, #0x10 - ldrh r4, [r7, #0x32] - ldrh r3, [r7, #0x34] - adds r0, r1, #0 - subs r0, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r5 - ldrh r2, [r0] - adds r1, #0x30 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x17 - adds r1, r1, r5 - movs r0, #0 - ldrsh r1, [r1, r0] - adds r0, r1, #0 - muls r0, r4, r0 - cmp r0, #0 - bge _0816F302 - adds r0, #0xff -_0816F302: - lsls r0, r0, #8 - lsrs r0, r0, #0x10 - mov r8, r0 - lsls r0, r2, #0x10 - asrs r2, r0, #0x10 - rsbs r0, r2, #0 - muls r0, r3, r0 - cmp r0, #0 - bge _0816F316 - adds r0, #0xff -_0816F316: - lsls r0, r0, #8 - lsrs r0, r0, #0x10 - mov sl, r0 - adds r0, r2, #0 - muls r0, r4, r0 - cmp r0, #0 - bge _0816F326 - adds r0, #0xff -_0816F326: - lsls r0, r0, #8 - lsrs r5, r0, #0x10 - adds r0, r1, #0 - muls r0, r3, r0 - cmp r0, #0 - bge _0816F334 - adds r0, #0xff -_0816F334: - lsls r6, r0, #8 - lsrs r6, r6, #0x10 - ldrh r0, [r7, #0x30] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r3, [sp] - adds r1, r4, #0 - movs r2, #0 - movs r3, #0 - bl SetOamMatrix - ldrh r0, [r7, #0x30] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r5 - mov r1, sl - lsls r5, r1, #0x10 - lsrs r3, r5, #0x10 - lsls r4, r6, #0x10 - str r6, [sp] - mov r1, r8 - mov r2, sb - bl SetOamMatrix - ldrh r0, [r7, #0x30] - adds r0, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r5, r5, #1 - lsrs r5, r5, #0x10 - lsls r4, r4, #1 - lsrs r4, r4, #0x10 - str r4, [sp] - mov r1, r8 - mov r2, sb - adds r3, r5, #0 - bl SetOamMatrix -_0816F382: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0816F394: .4byte gUnknown_82FA8CC - thumb_func_end sub_0816F250 - - thumb_func_start sub_0816F398 -sub_0816F398: @ 0x0816F398 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - ldrh r0, [r4, #0x30] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #0x3a] - adds r1, #0x40 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp] - movs r2, #0 - movs r3, #0 - bl SetOamMatrix - ldrh r0, [r4, #0x30] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #0x3a] - adds r1, #0x40 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp] - movs r2, #0 - movs r3, #0 - bl SetOamMatrix - ldrh r0, [r4, #0x30] - adds r0, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #0x3a] - adds r1, #0x40 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp] - movs r2, #0 - movs r3, #0 - bl SetOamMatrix - ldrh r1, [r4, #0x36] - movs r2, #0x36 - ldrsh r0, [r4, r2] - cmp r0, #0x40 - beq _0816F430 - adds r0, r1, #0 - subs r0, #8 - strh r0, [r4, #0x36] - ldrh r0, [r4, #0x36] - adds r1, r0, #0 - ldr r2, _0816F42C - adds r0, #0x40 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r2 - movs r3, #0 - ldrsh r0, [r0, r3] - cmp r0, #0 - bge _0816F412 - adds r0, #0x3f -_0816F412: - asrs r0, r0, #6 - strh r0, [r4, #0x24] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r2 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bge _0816F426 - adds r0, #0x3f -_0816F426: - asrs r0, r0, #6 - strh r0, [r4, #0x26] - b _0816F438 - .align 2, 0 -_0816F42C: .4byte gUnknown_82FA8CC -_0816F430: - movs r0, #0 - strh r0, [r4, #0x36] - ldr r0, _0816F440 - str r0, [r4, #0x1c] -_0816F438: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816F440: .4byte sub_0816F444 - thumb_func_end sub_0816F398 - - thumb_func_start sub_0816F444 -sub_0816F444: @ 0x0816F444 - push {r4, lr} - adds r1, r0, #0 - movs r2, #0x2e - ldrsh r0, [r1, r2] - cmp r0, #2 - beq _0816F4A4 - ldrh r0, [r1, #0x36] - adds r0, #8 - strh r0, [r1, #0x36] - ldr r3, _0816F4A0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r3 - movs r4, #0 - ldrsh r0, [r0, r4] - cmp r0, #0 - bge _0816F468 - adds r0, #0xf -_0816F468: - asrs r0, r0, #4 - adds r0, #0x40 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - adds r0, r2, #0 - adds r0, #0x40 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r3 - movs r4, #0 - ldrsh r0, [r0, r4] - cmp r0, #0 - bge _0816F484 - adds r0, #0x3f -_0816F484: - asrs r0, r0, #6 - strh r0, [r1, #0x24] - lsls r0, r2, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r3 - movs r2, #0 - ldrsh r0, [r0, r2] - cmp r0, #0 - bge _0816F498 - adds r0, #0x3f -_0816F498: - asrs r0, r0, #6 - strh r0, [r1, #0x26] - b _0816F4A8 - .align 2, 0 -_0816F4A0: .4byte gUnknown_82FA8CC -_0816F4A4: - ldr r0, _0816F4B0 - str r0, [r1, #0x1c] -_0816F4A8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816F4B0: .4byte sub_0816F4B4 - thumb_func_end sub_0816F444 - - thumb_func_start sub_0816F4B4 -sub_0816F4B4: @ 0x0816F4B4 - push {r4, lr} - adds r4, r0, #0 - ldrh r2, [r4, #0x22] - movs r0, #0x22 - ldrsh r1, [r4, r0] - movs r3, #0x38 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _0816F4CC - adds r0, r2, #4 - strh r0, [r4, #0x22] - b _0816F528 -_0816F4CC: - movs r0, #1 - strh r0, [r4, #0x3c] - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r4, #0x24] - ldrh r1, [r4, #0x20] - adds r0, r0, r1 - strh r0, [r4, #0x20] - ldrh r0, [r4, #0x26] - ldrh r3, [r4, #0x22] - adds r0, r0, r3 - strh r0, [r4, #0x22] - adds r0, r4, #0 - movs r1, #3 - bl StartSpriteAnim - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r4, #0x32] - ldrh r1, [r4, #0x30] - movs r0, #3 - ands r0, r1 - lsls r0, r0, #3 - strh r0, [r4, #0x34] - ldr r0, _0816F530 - str r0, [r4, #0x1c] - ldrb r1, [r4, #1] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #1] - ldrb r0, [r4, #3] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #3] - adds r0, r4, #0 - movs r1, #1 - movs r2, #3 - movs r3, #2 - bl CalcCenterToCornerVec -_0816F528: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816F530: .4byte sub_0816F0FC - thumb_func_end sub_0816F4B4 - - thumb_func_start sub_0816F534 -sub_0816F534: @ 0x0816F534 - push {r4, lr} - adds r4, r0, #0 - ldrh r2, [r4, #0x22] - movs r0, #0x22 - ldrsh r1, [r4, r0] - movs r3, #0x38 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _0816F54C - adds r0, r2, #4 - strh r0, [r4, #0x22] - b _0816F5A8 -_0816F54C: - movs r0, #1 - strh r0, [r4, #0x3c] - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r4, #0x24] - ldrh r1, [r4, #0x20] - adds r0, r0, r1 - strh r0, [r4, #0x20] - ldrh r0, [r4, #0x26] - ldrh r3, [r4, #0x22] - adds r0, r0, r3 - strh r0, [r4, #0x22] - adds r0, r4, #0 - movs r1, #3 - bl StartSpriteAnim - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r4, #0x32] - ldrh r1, [r4, #0x30] - movs r0, #3 - ands r0, r1 - lsls r0, r0, #3 - strh r0, [r4, #0x34] - ldr r0, _0816F5B0 - str r0, [r4, #0x1c] - ldrb r1, [r4, #1] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #1] - ldrb r0, [r4, #3] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #3] - adds r0, r4, #0 - movs r1, #1 - movs r2, #3 - movs r3, #2 - bl CalcCenterToCornerVec -_0816F5A8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816F5B0: .4byte sub_0816F0FC - thumb_func_end sub_0816F534 - - thumb_func_start CreateWaterDrop -CreateWaterDrop: @ 0x0816F5B4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r6, [sp, #0x34] - ldr r0, [sp, #0x38] - mov r8, r0 - lsls r4, r4, #0x10 - lsls r5, r5, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - str r2, [sp, #8] - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - str r3, [sp, #0xc] - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - mov r1, r8 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - ldr r0, _0816F670 - lsrs r2, r4, #0x10 - mov sl, r2 - asrs r4, r4, #0x10 - lsrs r1, r5, #0x10 - str r1, [sp, #4] - asrs r5, r5, #0x10 - adds r1, r4, #0 - adds r2, r5, #0 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r2, _0816F674 - mov sb, r2 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r5, r0, #2 - adds r4, r5, r2 - movs r0, #0 - strh r0, [r4, #0x2e] - strh r0, [r4, #0x3c] - mov r0, sp - ldrh r0, [r0, #0xc] - strh r0, [r4, #0x30] - mov r1, sp - ldrh r1, [r1, #8] - strh r1, [r4, #0x32] - mov r2, sp - ldrh r2, [r2, #8] - strh r2, [r4, #0x34] - strh r6, [r4, #0x38] - mov r0, sp - ldrh r0, [r0, #8] - strh r0, [r4, #0x3a] - ldrb r0, [r4, #1] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #1] - movs r0, #0x1f - ldr r1, [sp, #0xc] - ands r1, r0 - lsls r1, r1, #1 - ldrb r2, [r4, #3] - movs r0, #0x3f - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #3] - adds r0, r4, #0 - movs r1, #0 - movs r2, #2 - movs r3, #2 - bl CalcCenterToCornerVec - adds r0, r4, #0 - movs r1, #2 - bl StartSpriteAnim - mov r1, r8 - cmp r1, #0 - bne _0816F67C - mov r0, sb - adds r0, #0x1c - adds r0, r5, r0 - ldr r1, _0816F678 - b _0816F684 - .align 2, 0 -_0816F670: .4byte gUnknown_85C5E18 -_0816F674: .4byte gUnknown_20205AC -_0816F678: .4byte sub_0816F238 -_0816F67C: - mov r0, sb - adds r0, #0x1c - adds r0, r5, r0 - ldr r1, _0816F7A4 -_0816F684: - str r1, [r0] - str r7, [sp, #0x10] - mov r2, sl - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - mov sl, r2 - ldr r0, [sp, #4] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov r8, r0 - ldr r0, _0816F7A8 - mov r1, sl - mov r2, r8 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r5, _0816F7AC - lsls r4, r7, #4 - adds r4, r4, r7 - lsls r4, r4, #2 - adds r0, r4, r5 - mov r1, sp - ldrh r1, [r1, #0x10] - strh r1, [r0, #0x3c] - ldr r2, [sp, #0xc] - adds r2, #1 - mov sb, r2 - strh r2, [r0, #0x30] - ldrb r1, [r0, #1] - movs r2, #3 - orrs r1, r2 - strb r1, [r0, #1] - mov r2, sb - movs r1, #0x1f - ands r2, r1 - lsls r2, r2, #1 - ldrb r3, [r0, #3] - movs r6, #0x3f - rsbs r6, r6, #0 - adds r1, r6, #0 - ands r1, r3 - orrs r1, r2 - strb r1, [r0, #3] - movs r1, #0 - movs r2, #2 - movs r3, #2 - bl CalcCenterToCornerVec - ldr r2, _0816F7B0 - adds r4, r4, r2 - ldr r0, _0816F7B4 - str r0, [r4] - ldr r0, _0816F7A8 - mov r1, sl - mov r2, r8 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r4, r7, #4 - adds r4, r4, r7 - lsls r4, r4, #2 - adds r5, r4, r5 - mov r1, sp - ldrh r1, [r1, #0x10] - strh r1, [r5, #0x3c] - ldr r2, [sp, #0xc] - adds r2, #2 - mov r8, r2 - strh r2, [r5, #0x30] - adds r0, r5, #0 - movs r1, #1 - bl StartSpriteAnim - ldrb r0, [r5, #1] - movs r1, #3 - orrs r0, r1 - strb r0, [r5, #1] - mov r0, r8 - movs r2, #0x1f - ands r0, r2 - lsls r0, r0, #1 - ldrb r1, [r5, #3] - ands r6, r1 - orrs r6, r0 - strb r6, [r5, #3] - adds r0, r5, #0 - movs r1, #0 - movs r2, #2 - movs r3, #2 - bl CalcCenterToCornerVec - ldr r0, _0816F7B0 - adds r4, r4, r0 - ldr r1, _0816F7B4 - str r1, [r4] - ldr r2, [sp, #0xc] - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - ldr r5, [sp, #8] - adds r5, #0x20 - lsls r4, r5, #0x10 - lsrs r4, r4, #0x10 - str r4, [sp] - adds r1, r4, #0 - movs r2, #0 - movs r3, #0 - bl SetOamMatrix - mov r0, sb - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - str r4, [sp] - adds r1, r4, #0 - movs r2, #0 - movs r3, #0 - bl SetOamMatrix - mov r1, r8 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - lsls r5, r5, #0x11 - lsrs r5, r5, #0x10 - str r5, [sp] - mov r0, r8 - adds r1, r4, #0 - movs r2, #0 - movs r3, #0 - bl SetOamMatrix - ldr r0, [sp, #0x10] - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0816F7A4: .4byte sub_0816F534 -_0816F7A8: .4byte gUnknown_85C5E18 -_0816F7AC: .4byte gUnknown_20205AC -_0816F7B0: .4byte gUnknown_20205C8 -_0816F7B4: .4byte sub_0816F188 - thumb_func_end CreateWaterDrop - - thumb_func_start SpriteCB_IntroGraphicsBicycle -SpriteCB_IntroGraphicsBicycle: @ 0x0816F7B8 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #4 - bhi _0816F846 - lsls r0, r0, #2 - ldr r1, _0816F7D0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0816F7D0: .4byte _0816F7D4 -_0816F7D4: @ jump table - .4byte _0816F7E8 @ case 0 - .4byte _0816F7F6 @ case 1 - .4byte _0816F814 @ case 2 - .4byte _0816F846 @ case 3 - .4byte _0816F834 @ case 4 -_0816F7E8: - adds r0, r4, #0 - movs r1, #0 - bl StartSpriteAnimIfDifferent - ldrh r0, [r4, #0x20] - subs r0, #1 - b _0816F844 -_0816F7F6: - adds r0, r4, #0 - movs r1, #0 - bl StartSpriteAnimIfDifferent - ldr r0, _0816F810 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _0816F88E - ldrh r0, [r4, #0x20] - adds r0, #1 - b _0816F844 - .align 2, 0 -_0816F810: .4byte gUnknown_3005FE0 -_0816F814: - ldrh r2, [r4, #0x20] - movs r1, #0x20 - ldrsh r0, [r4, r1] - cmp r0, #0x78 - ble _0816F82A - ldr r0, _0816F830 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - beq _0816F852 -_0816F82A: - adds r0, r2, #1 - b _0816F844 - .align 2, 0 -_0816F830: .4byte gUnknown_3005FE0 -_0816F834: - ldrh r2, [r4, #0x20] - movs r0, #0x20 - ldrsh r1, [r4, r0] - movs r0, #0x20 - rsbs r0, r0, #0 - cmp r1, r0 - ble _0816F846 - subs r0, r2, #2 -_0816F844: - strh r0, [r4, #0x20] -_0816F846: - ldr r0, _0816F860 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _0816F88E -_0816F852: - movs r1, #0x26 - ldrsh r5, [r4, r1] - cmp r5, #0 - beq _0816F864 - movs r0, #0 - strh r0, [r4, #0x26] - b _0816F88E - .align 2, 0 -_0816F860: .4byte gUnknown_3005FE0 -_0816F864: - bl Random - movs r1, #3 - ands r1, r0 - cmp r1, #1 - beq _0816F88C - cmp r1, #1 - bgt _0816F87A - cmp r1, #0 - beq _0816F882 - b _0816F88E -_0816F87A: - cmp r1, #3 - bgt _0816F88E - strh r5, [r4, #0x26] - b _0816F88E -_0816F882: - ldr r0, _0816F888 - strh r0, [r4, #0x26] - b _0816F88E - .align 2, 0 -_0816F888: .4byte 0x0000FFFF -_0816F88C: - strh r1, [r4, #0x26] -_0816F88E: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end SpriteCB_IntroGraphicsBicycle - - thumb_func_start SpriteCB_IntroGraphicsFlygon -SpriteCB_IntroGraphicsFlygon: @ 0x0816F894 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _0816F8AE - cmp r0, #1 - ble _0816F8F6 - cmp r0, #2 - beq _0816F8CE - cmp r0, #3 - beq _0816F8E8 - b _0816F8F6 -_0816F8AE: - movs r2, #0x24 - ldrsh r0, [r4, r2] - movs r2, #0x20 - ldrsh r1, [r4, r2] - adds r0, r0, r1 - ldr r1, _0816F8C4 - cmp r0, r1 - bgt _0816F8C8 - ldrh r0, [r4, #0x24] - adds r0, #8 - b _0816F8F4 - .align 2, 0 -_0816F8C4: .4byte 0x0000012F -_0816F8C8: - movs r0, #2 - strh r0, [r4, #0x2e] - b _0816F8F6 -_0816F8CE: - movs r1, #0x24 - ldrsh r0, [r4, r1] - movs r2, #0x20 - ldrsh r1, [r4, r2] - adds r0, r0, r1 - cmp r0, #0x78 - ble _0816F8E2 - ldrh r0, [r4, #0x24] - subs r0, #1 - b _0816F8F4 -_0816F8E2: - movs r0, #3 - strh r0, [r4, #0x2e] - b _0816F8F6 -_0816F8E8: - ldrh r1, [r4, #0x24] - movs r2, #0x24 - ldrsh r0, [r4, r2] - cmp r0, #0 - ble _0816F8F6 - subs r0, r1, #2 -_0816F8F4: - strh r0, [r4, #0x24] -_0816F8F6: - ldrh r0, [r4, #0x30] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #8 - bl Sin - ldr r1, _0816F918 - ldrh r1, [r1] - subs r0, r0, r1 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x30] - adds r0, #4 - strh r0, [r4, #0x30] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0816F918: .4byte gUnknown_203B998 - thumb_func_end SpriteCB_IntroGraphicsFlygon - - thumb_func_start sub_0816F91C -sub_0816F91C: @ 0x0816F91C - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - cmp r0, #5 - bls _0816F92A - b _0816FB30 -_0816F92A: - lsls r0, r0, #2 - ldr r1, _0816F934 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0816F934: .4byte _0816F938 -_0816F938: @ jump table - .4byte _0816F950 @ case 0 - .4byte _0816F978 @ case 1 - .4byte _0816F998 @ case 2 - .4byte _0816FA50 @ case 3 - .4byte _0816FABC @ case 4 - .4byte _0816FAEC @ case 5 -_0816F950: - ldrh r1, [r5, #0x30] - movs r2, #0x30 - ldrsh r0, [r5, r2] - cmp r0, #0 - beq _0816F960 - subs r0, r1, #1 - strh r0, [r5, #0x30] - b _0816FB30 -_0816F960: - adds r2, r5, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r2] - adds r0, r5, #0 - movs r1, #1 - bl StartSpriteAffineAnim - b _0816FADE -_0816F978: - ldr r0, _0816F994 - ldr r0, [r0] - cmp r0, #0x90 - beq _0816F982 - b _0816FB30 -_0816F982: - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] - movs r0, #9 - strh r0, [r5, #0x30] - movs r0, #2 - strh r0, [r5, #0x34] - b _0816FB30 - .align 2, 0 -_0816F994: .4byte gUnknown_3005FE0 -_0816F998: - ldrh r1, [r5, #0x34] - movs r2, #0x34 - ldrsh r0, [r5, r2] - cmp r0, #0 - bne _0816FA5A - movs r0, #2 - strh r0, [r5, #0x34] - movs r1, #0x30 - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _0816FA00 - lsls r0, r0, #1 - ldr r1, _0816F9F0 - adds r0, r0, r1 - ldr r4, _0816F9F4 - adds r1, r4, #0 - movs r2, #1 - bl CpuSet - movs r2, #0x30 - ldrsh r0, [r5, r2] - lsls r0, r0, #1 - ldr r1, _0816F9F8 - adds r0, r0, r1 - adds r1, r4, #0 - subs r1, #0x16 - movs r2, #1 - bl CpuSet - movs r2, #0x30 - ldrsh r0, [r5, r2] - lsls r0, r0, #1 - ldr r1, _0816F9FC - adds r0, r0, r1 - subs r4, #0xa - adds r1, r4, #0 - movs r2, #1 - bl CpuSet - ldrh r0, [r5, #0x30] - subs r0, #1 - strh r0, [r5, #0x30] - b _0816FB30 - .align 2, 0 -_0816F9F0: .4byte gUnknown_8D85C34 -_0816F9F4: .4byte gUnknown_20379F2 -_0816F9F8: .4byte gUnknown_8D85C54 -_0816F9FC: .4byte gUnknown_8D85C74 -_0816FA00: - movs r2, #0x30 - ldrsh r0, [r5, r2] - lsls r0, r0, #1 - ldr r1, _0816FA40 - adds r0, r0, r1 - ldr r4, _0816FA44 - adds r1, r4, #0 - movs r2, #1 - bl CpuSet - movs r2, #0x30 - ldrsh r0, [r5, r2] - lsls r0, r0, #1 - ldr r1, _0816FA48 - adds r0, r0, r1 - adds r1, r4, #0 - subs r1, #0x16 - movs r2, #1 - bl CpuSet - movs r2, #0x30 - ldrsh r0, [r5, r2] - lsls r0, r0, #1 - ldr r1, _0816FA4C - adds r0, r0, r1 - subs r4, #0xa - adds r1, r4, #0 - movs r2, #1 - bl CpuSet - b _0816FADE - .align 2, 0 -_0816FA40: .4byte gUnknown_8D85C34 -_0816FA44: .4byte gUnknown_20379F2 -_0816FA48: .4byte gUnknown_8D85C54 -_0816FA4C: .4byte gUnknown_8D85C74 -_0816FA50: - ldrh r1, [r5, #0x34] - movs r2, #0x34 - ldrsh r0, [r5, r2] - cmp r0, #0 - beq _0816FA60 -_0816FA5A: - subs r0, r1, #1 - strh r0, [r5, #0x34] - b _0816FB30 -_0816FA60: - movs r0, #2 - strh r0, [r5, #0x34] - movs r1, #0x30 - ldrsh r0, [r5, r1] - cmp r0, #9 - bgt _0816FADE - lsls r0, r0, #1 - ldr r1, _0816FAAC - adds r0, r0, r1 - ldr r4, _0816FAB0 - adds r1, r4, #0 - movs r2, #1 - bl CpuSet - movs r2, #0x30 - ldrsh r0, [r5, r2] - lsls r0, r0, #1 - ldr r1, _0816FAB4 - adds r0, r0, r1 - adds r1, r4, #0 - subs r1, #0x16 - movs r2, #1 - bl CpuSet - movs r2, #0x30 - ldrsh r0, [r5, r2] - lsls r0, r0, #1 - ldr r1, _0816FAB8 - adds r0, r0, r1 - subs r4, #0xa - adds r1, r4, #0 - movs r2, #1 - bl CpuSet - ldrh r0, [r5, #0x30] - adds r0, #1 - strh r0, [r5, #0x30] - b _0816FB30 - .align 2, 0 -_0816FAAC: .4byte gUnknown_8D85C34 -_0816FAB0: .4byte gUnknown_20379F2 -_0816FAB4: .4byte gUnknown_8D85C54 -_0816FAB8: .4byte gUnknown_8D85C74 -_0816FABC: - ldr r0, _0816FAE8 - ldr r1, [r0] - movs r0, #0x88 - lsls r0, r0, #1 - cmp r1, r0 - bne _0816FB30 - adds r0, r5, #0 - movs r1, #2 - bl StartSpriteAffineAnim - ldrb r1, [r5, #1] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r5, #1] -_0816FADE: - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] - b _0816FB30 - .align 2, 0 -_0816FAE8: .4byte gUnknown_3005FE0 -_0816FAEC: - ldr r1, _0816FB38 - movs r2, #0x32 - ldrsh r0, [r5, r2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - ldrh r1, [r5, #0x34] - adds r0, r0, r1 - strh r0, [r5, #0x34] - movs r2, #0x34 - ldrsh r0, [r5, r2] - movs r1, #0xff - lsls r1, r1, #8 - ands r0, r1 - asrs r0, r0, #8 - strh r0, [r5, #0x24] - movs r1, #0x32 - ldrsh r0, [r5, r1] - cmp r0, #3 - bgt _0816FB1C - movs r2, #0x24 - ldrsh r0, [r5, r2] - rsbs r0, r0, #0 - strh r0, [r5, #0x24] -_0816FB1C: - adds r0, r5, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0816FB30 - adds r0, r5, #0 - bl DestroySprite -_0816FB30: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0816FB38: .4byte gUnknown_85C5FFC - thumb_func_end sub_0816F91C - - thumb_func_start sub_0816FB3C -sub_0816FB3C: @ 0x0816FB3C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _0816FB74 - cmp r0, #1 - bgt _0816FB52 - cmp r0, #0 - beq _0816FB58 - b _0816FBA8 -_0816FB52: - cmp r0, #2 - beq _0816FB94 - b _0816FBA8 -_0816FB58: - ldr r0, _0816FB70 - ldr r0, [r0] - cmp r0, #0x80 - bne _0816FBA8 - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r2] - b _0816FB88 - .align 2, 0 -_0816FB70: .4byte gUnknown_3005FE0 -_0816FB74: - ldr r0, _0816FB90 - ldr r1, [r0] - movs r0, #0x88 - lsls r0, r0, #1 - cmp r1, r0 - bne _0816FBA8 - adds r0, r4, #0 - movs r1, #3 - bl StartSpriteAffineAnim -_0816FB88: - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - b _0816FBA8 - .align 2, 0 -_0816FB90: .4byte gUnknown_3005FE0 -_0816FB94: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0816FBA8 - adds r0, r4, #0 - bl DestroySprite -_0816FBA8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0816FB3C - - thumb_func_start CreatePart1Animations -CreatePart1Animations: @ 0x0816FBB0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp, #4] - movs r7, #0 -_0816FBCA: - lsls r5, r7, #2 - ldr r0, _0816FCBC - adds r0, #2 - adds r0, r5, r0 - ldr r2, [sp] - lsls r1, r2, #0x10 - asrs r1, r1, #0x10 - ldrh r0, [r0] - adds r1, r1, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldr r3, [sp, #4] - lsls r2, r3, #0x10 - asrs r0, r2, #0x10 - str r0, [sp, #8] - ldr r3, _0816FCC0 - adds r2, r2, r3 - ldr r0, _0816FCC4 - asrs r2, r2, #0x10 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r4, r6, #4 - adds r4, r4, r6 - lsls r4, r4, #2 - ldr r0, _0816FCC8 - adds r4, r4, r0 - movs r1, #0 - strh r1, [r4, #0x2e] - ldr r0, _0816FCCC - adds r0, r7, r0 - ldrb r0, [r0] - strh r0, [r4, #0x30] - strh r7, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #4 - mov sl, r2 - mov r3, sl - orrs r0, r3 - strb r0, [r1] - adds r1, r7, #0 - adds r1, #0xc - movs r0, #0x1f - mov sb, r0 - mov r2, sb - ands r1, r2 - lsls r1, r1, #1 - ldrb r0, [r4, #3] - movs r3, #0x3f - rsbs r3, r3, #0 - mov r8, r3 - mov r2, r8 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #3] - ldr r3, _0816FCBC - adds r5, r5, r3 - ldrb r1, [r5] - adds r0, r4, #0 - bl StartSpriteAnim - adds r0, r4, #0 - movs r1, #0 - bl StartSpriteAffineAnim - adds r0, r7, #1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - cmp r7, #8 - bls _0816FBCA - ldr r0, _0816FCD0 - ldr r2, [sp, #8] - subs r2, #6 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - movs r1, #0x78 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #4 - adds r0, r0, r6 - lsls r0, r0, #2 - ldr r1, _0816FCC8 - adds r0, r0, r1 - movs r2, #0 - strh r2, [r0, #0x2e] - adds r2, r0, #0 - adds r2, #0x3e - ldrb r1, [r2] - mov r3, sl - orrs r1, r3 - strb r1, [r2] - adds r2, r7, #0 - adds r2, #0xc - mov r1, sb - ands r2, r1 - lsls r2, r2, #1 - ldrb r1, [r0, #3] - mov r3, r8 - ands r1, r3 - orrs r1, r2 - strb r1, [r0, #3] - movs r1, #1 - bl StartSpriteAffineAnim - adds r0, r6, #0 - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0816FCBC: .4byte gUnknown_85C5F48 -_0816FCC0: .4byte 0xFFFC0000 -_0816FCC4: .4byte gUnknown_85C6010 -_0816FCC8: .4byte gUnknown_20205AC -_0816FCCC: .4byte gUnknown_85C6058 -_0816FCD0: .4byte gUnknown_85C6040 - thumb_func_end CreatePart1Animations - - thumb_func_start sub_0816FCD4 -sub_0816FCD4: @ 0x0816FCD4 - push {r4, r5, r6, lr} - sub sp, #4 - adds r4, r0, #0 - ldrh r0, [r4, #0x3c] - adds r0, #1 - strh r0, [r4, #0x3c] - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0816FD40 - ldr r2, _0816FD90 - ldrh r1, [r4, #0x32] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r2 - ldrh r3, [r0] - adds r1, #0x40 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x17 - adds r1, r1, r2 - movs r2, #0 - ldrsh r0, [r1, r2] - movs r1, #0x30 - ldrsh r2, [r4, r1] - adds r1, r0, #0 - muls r1, r2, r1 - adds r0, r1, #0 - cmp r1, #0 - bge _0816FD10 - adds r0, #0xff -_0816FD10: - lsls r0, r0, #8 - lsrs r6, r0, #0x10 - lsls r0, r3, #0x10 - asrs r3, r0, #0x10 - rsbs r0, r3, #0 - muls r0, r2, r0 - cmp r0, #0 - bge _0816FD22 - adds r0, #0xff -_0816FD22: - lsls r0, r0, #8 - lsrs r5, r0, #0x10 - adds r0, r3, #0 - muls r0, r2, r0 - cmp r0, #0 - bge _0816FD30 - adds r0, #0xff -_0816FD30: - lsls r0, r0, #8 - lsrs r2, r0, #0x10 - adds r1, r6, #0 - adds r3, r5, #0 - str r1, [sp] - movs r0, #1 - bl SetOamMatrix -_0816FD40: - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r0, #1 - beq _0816FD94 - cmp r0, #1 - ble _0816FD50 - cmp r0, #2 - beq _0816FDF6 -_0816FD50: - ldrb r0, [r4, #1] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #1] - ldrb r1, [r4, #3] - movs r0, #0x3f - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r4, #3] - adds r0, r4, #0 - movs r1, #1 - movs r2, #3 - movs r3, #3 - bl CalcCenterToCornerVec - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - movs r1, #0 - movs r0, #1 - strh r0, [r4, #0x2e] - movs r0, #0x80 - strh r0, [r4, #0x30] - strh r1, [r4, #0x32] - strh r1, [r4, #0x34] - b _0816FE30 - .align 2, 0 -_0816FD90: .4byte gUnknown_82FA8CC -_0816FD94: - ldrh r0, [r4, #0x34] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x8c - bl Sin - rsbs r0, r0, #0 - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x34] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x78 - bl Sin - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x30] - adds r0, #7 - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x34] - adds r0, #3 - strh r0, [r4, #0x34] - movs r1, #0x20 - ldrsh r0, [r4, r1] - movs r2, #0x24 - ldrsh r1, [r4, r2] - adds r0, r0, r1 - movs r1, #0x10 - rsbs r1, r1, #0 - cmp r0, r1 - bgt _0816FE30 - ldrb r0, [r4, #5] - movs r1, #0xc - orrs r0, r1 - strb r0, [r4, #5] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - movs r0, #0x14 - strh r0, [r4, #0x20] - movs r0, #0x28 - strh r0, [r4, #0x22] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x30] - movs r0, #0 - strh r0, [r4, #0x32] - movs r0, #0x10 - b _0816FE2E -_0816FDF6: - ldrh r0, [r4, #0x34] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x22 - bl Sin - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x34] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x3c - bl Cos - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x30] - adds r0, #2 - strh r0, [r4, #0x30] - movs r1, #0x3c - ldrsh r0, [r4, r1] - movs r1, #5 - bl __modsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0816FE30 - ldrh r0, [r4, #0x34] - adds r0, #1 -_0816FE2E: - strh r0, [r4, #0x34] -_0816FE30: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_0816FCD4 - - thumb_func_start SpriteCB_IntroRayquazaHyperbeam -SpriteCB_IntroRayquazaHyperbeam: @ 0x0816FE38 - push {r4, r5, lr} - sub sp, #4 - adds r5, r0, #0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _0816FE4E - adds r4, r5, #0 - adds r4, #0x3e - cmp r0, #1 - beq _0816FE86 -_0816FE4E: - adds r4, r5, #0 - adds r4, #0x3e - ldrb r1, [r4] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4] - ldrb r0, [r5, #1] - movs r1, #3 - orrs r0, r1 - strb r0, [r5, #1] - ldrb r1, [r5, #3] - movs r0, #0x3f - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x24 - orrs r0, r1 - strb r0, [r5, #3] - adds r0, r5, #0 - movs r1, #0 - movs r2, #3 - movs r3, #3 - bl CalcCenterToCornerVec - movs r0, #0 - strh r0, [r5, #0x30] - movs r0, #1 - strh r0, [r5, #0x2e] -_0816FE86: - ldrh r0, [r5, #0x3c] - adds r0, #1 - strh r0, [r5, #0x3c] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0816FE9E - ldrb r0, [r4] - movs r1, #4 - orrs r0, r1 - strb r0, [r4] - b _0816FEB6 -_0816FE9E: - ldrb r0, [r4] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4] - ldrh r1, [r5, #0x30] - movs r2, #0x30 - ldrsh r0, [r5, r2] - cmp r0, #0x3f - bgt _0816FEB6 - adds r0, r1, #1 - strh r0, [r5, #0x30] -_0816FEB6: - ldr r1, _0816FEEC - ldrh r0, [r5, #0x30] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r2, #0 - subs r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp] - movs r0, #0x12 - movs r2, #0 - movs r3, #0 - bl SetOamMatrix - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0816FEEC: .4byte gUnknown_82FA8CC - thumb_func_end SpriteCB_IntroRayquazaHyperbeam - - thumb_func_start sub_0816FEF0 -sub_0816FEF0: @ 0x0816FEF0 - push {r4, r5, lr} - ldr r5, _0816FF68 - ldrh r4, [r5] - movs r0, #0 - strh r0, [r5] - movs r0, #1 - bl RegisterRamReset - movs r0, #0 - movs r1, #0x80 - bl ClearGpuRegBits - strh r4, [r5] - ldr r1, _0816FF6C - ldr r0, _0816FF70 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - bl sub_08153498 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl SetSaveBlocksPointers - bl ResetMenuAndMonGlobals - bl Save_ResetSaveCounters - movs r0, #0 - bl Save_LoadGameData - ldr r0, _0816FF74 - ldrh r0, [r0] - cmp r0, #0 - beq _0816FF40 - cmp r0, #2 - bne _0816FF44 -_0816FF40: - bl Sav2_ClearSetDefault -_0816FF44: - ldr r0, _0816FF78 - ldr r0, [r0] - ldrb r0, [r0, #0x15] - lsls r0, r0, #0x1f - lsrs r0, r0, #0x1f - bl SetPokemonCryStereo - ldr r0, _0816FF7C - movs r1, #0xe0 - lsls r1, r1, #9 - bl InitHeap - ldr r0, _0816FF80 - bl SetMainCallback2 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0816FF68: .4byte 0x04000208 -_0816FF6C: .4byte gUnknown_3002360 -_0816FF70: .4byte 0x00000439 -_0816FF74: .4byte gUnknown_3005F50 -_0816FF78: .4byte gUnknown_3005AF0 -_0816FF7C: .4byte gUnknown_2000000 -_0816FF80: .4byte CB2_ContinueSavedGame - thumb_func_end sub_0816FEF0 - - thumb_func_start FieldInitRegionMap -FieldInitRegionMap: @ 0x0816FF84 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0 - bl SetVBlankCallback - ldr r4, _0816FFB0 - movs r0, #0x89 - lsls r0, r0, #4 - bl sub_08000BC8 - str r0, [r4] - ldr r1, _0816FFB4 - adds r2, r0, r1 - movs r1, #0 - strh r1, [r2] - str r5, [r0] - ldr r0, _0816FFB8 - bl SetMainCallback2 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0816FFB0: .4byte gUnknown_203B99C -_0816FFB4: .4byte 0x0000088C -_0816FFB8: .4byte MCB2_InitRegionMapRegisters - thumb_func_end FieldInitRegionMap - - thumb_func_start MCB2_InitRegionMapRegisters -MCB2_InitRegionMapRegisters: @ 0x0816FFBC - push {lr} - movs r0, #0 - movs r1, #0 - bl SetGpuReg - movs r0, #0x10 - movs r1, #0 - bl SetGpuReg - movs r0, #0x12 - movs r1, #0 - bl SetGpuReg - movs r0, #0x14 - movs r1, #0 - bl SetGpuReg - movs r0, #0x16 - movs r1, #0 - bl SetGpuReg - movs r0, #0x18 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1a - movs r1, #0 - bl SetGpuReg - movs r0, #0x1c - movs r1, #0 - bl SetGpuReg - movs r0, #0x1e - movs r1, #0 - bl SetGpuReg - bl ResetSpriteData - bl FreeAllSpritePalettes - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _08170048 - movs r0, #1 - movs r2, #2 - bl InitBgsFromTemplates - ldr r0, _0817004C - bl InitWindows - bl sub_08004480 - movs r0, #0 - movs r1, #0x23 - movs r2, #0xd0 - bl LoadUserWindowBorderGfx - bl sub_08199640 - ldr r0, _08170050 - bl SetMainCallback2 - ldr r0, _08170054 - bl SetVBlankCallback - pop {r0} - bx r0 - .align 2, 0 -_08170048: .4byte gUnknown_85C6124 -_0817004C: .4byte gUnknown_85C612C -_08170050: .4byte MCB2_FieldUpdateRegionMap -_08170054: .4byte VBCB_FieldUpdateRegionMap - thumb_func_end MCB2_InitRegionMapRegisters - - thumb_func_start VBCB_FieldUpdateRegionMap -VBCB_FieldUpdateRegionMap: @ 0x08170058 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end VBCB_FieldUpdateRegionMap - - thumb_func_start MCB2_FieldUpdateRegionMap -MCB2_FieldUpdateRegionMap: @ 0x0817006C - push {lr} - bl sub_08170088 - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - bl do_scheduled_bg_tilemap_copies_to_vram - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end MCB2_FieldUpdateRegionMap - - thumb_func_start sub_08170088 -sub_08170088: @ 0x08170088 - push {r4, r5, lr} - sub sp, #0xc - ldr r1, _081700A8 - ldr r0, [r1] - ldr r2, _081700AC - adds r0, r0, r2 - ldrh r0, [r0] - adds r4, r1, #0 - cmp r0, #6 - bls _0817009E - b _08170202 -_0817009E: - lsls r0, r0, #2 - ldr r1, _081700B0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081700A8: .4byte gUnknown_203B99C -_081700AC: .4byte 0x0000088C -_081700B0: .4byte _081700B4 -_081700B4: @ jump table - .4byte _081700D0 @ case 0 - .4byte _081700F8 @ case 1 - .4byte _08170144 @ case 2 - .4byte _0817016C @ case 3 - .4byte _08170180 @ case 4 - .4byte _081701AC @ case 5 - .4byte _081701D4 @ case 6 -_081700D0: - ldr r0, [r4] - adds r0, #8 - movs r1, #0 - bl InitRegionMap - movs r0, #0 - movs r1, #0 - bl CreateRegionMapPlayerIcon - movs r0, #1 - movs r1, #1 - bl CreateRegionMapCursor - ldr r1, [r4] - ldr r0, _081700F4 - adds r1, r1, r0 - b _081701C4 - .align 2, 0 -_081700F4: .4byte 0x0000088C -_081700F8: - movs r0, #1 - movs r1, #0 - movs r2, #0x23 - movs r3, #0xd - bl DrawStdFrameWithCustomTileAndPalette - ldr r2, _08170140 - movs r0, #2 - str r0, [sp] - movs r4, #0 - str r4, [sp, #4] - str r4, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #0 - movs r1, #0 - movs r2, #0x23 - movs r3, #0xd - bl DrawStdFrameWithCustomTileAndPalette - bl StartMirageTowerShake - movs r0, #1 - rsbs r0, r0, #0 - str r4, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - b _081701B8 - .align 2, 0 -_08170140: .4byte gUnknown_85C611C -_08170144: - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuRegBits - movs r0, #0 - bl ShowBg - movs r0, #2 - bl ShowBg - ldr r0, _08170164 - ldr r1, [r0] - ldr r0, _08170168 - adds r1, r1, r0 - b _081701C4 - .align 2, 0 -_08170164: .4byte gUnknown_203B99C -_08170168: .4byte 0x0000088C -_0817016C: - ldr r0, _0817017C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08170202 - ldr r1, [r4] - b _081701C0 - .align 2, 0 -_0817017C: .4byte gUnknown_2037C74 -_08170180: - bl sub_081230B8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bne _08170192 - bl StartMirageTowerShake - b _08170202 -_08170192: - cmp r0, #3 - blt _08170202 - cmp r0, #5 - bgt _08170202 - ldr r0, _081701A4 - ldr r1, [r0] - ldr r0, _081701A8 - adds r1, r1, r0 - b _081701C4 - .align 2, 0 -_081701A4: .4byte gUnknown_203B99C -_081701A8: .4byte 0x0000088C -_081701AC: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 -_081701B8: - bl BeginNormalPaletteFade - ldr r0, _081701CC - ldr r1, [r0] -_081701C0: - ldr r2, _081701D0 - adds r1, r1, r2 -_081701C4: - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _08170202 - .align 2, 0 -_081701CC: .4byte gUnknown_203B99C -_081701D0: .4byte 0x0000088C -_081701D4: - ldr r0, _0817020C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _08170202 - bl FreeRegionMapIconResources - ldr r4, _08170210 - ldr r0, [r4] - ldr r0, [r0] - bl SetMainCallback2 - ldr r0, [r4] - cmp r0, #0 - beq _081701FE - bl Free - str r5, [r4] -_081701FE: - bl FreeAllWindowBuffers -_08170202: - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0817020C: .4byte gUnknown_2037C74 -_08170210: .4byte gUnknown_203B99C - thumb_func_end sub_08170088 - - thumb_func_start StartMirageTowerShake -StartMirageTowerShake: @ 0x08170214 - push {lr} - sub sp, #0xc - ldr r0, _08170240 - ldr r2, [r0] - ldrb r0, [r2, #0xa] - cmp r0, #0 - beq _08170244 - adds r2, #0xc - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - b _08170254 - .align 2, 0 -_08170240: .4byte gUnknown_203B99C -_08170244: - movs r0, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram -_08170254: - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end StartMirageTowerShake - - thumb_func_start unref_sub_8170478 -unref_sub_8170478: @ 0x0817025C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x10] - ldr r0, _08170404 - ldrb r4, [r0] - ldr r0, _08170408 - movs r1, #0 - strh r1, [r0] - ldr r0, _0817040C - strh r1, [r0] - ldr r1, _08170410 - movs r0, #0x48 - bl SetGpuReg - ldr r1, _08170414 - movs r0, #0x4a - bl SetGpuReg - movs r1, #0x80 - lsls r1, r1, #8 - movs r0, #0 - bl SetGpuRegBits - ldr r1, _08170418 - movs r0, #0x50 - bl SetGpuReg - movs r1, #0x80 - lsls r1, r1, #5 - movs r0, #0x52 - bl SetGpuReg - movs r0, #1 - movs r1, #4 - movs r2, #0 - bl SetAnimBgAttribute - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl SetAnimBgAttribute - movs r0, #1 - movs r1, #1 - movs r2, #1 - bl SetAnimBgAttribute - movs r0, #1 - movs r1, #3 - movs r2, #1 - bl SetAnimBgAttribute - ldr r0, _0817041C - adds r4, r4, r0 - ldrb r0, [r4] - ldr r1, _08170420 - mov sb, r1 - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - add r4, sb - ldrb r7, [r4, #6] - ldrh r6, [r4, #0x38] - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - ldr r0, _08170424 - bl CreateInvisibleSpriteWithCallback - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x14] - ldr r0, _08170424 - bl CreateInvisibleSpriteWithCallback - mov sl, r0 - mov r2, sl - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sl, r2 - ldrb r1, [r4, #5] - movs r3, #0xd - rsbs r3, r3, #0 - adds r0, r3, #0 - ands r0, r1 - movs r1, #4 - mov r8, r1 - mov r2, r8 - orrs r0, r2 - strb r0, [r4, #5] - lsls r5, r7, #4 - adds r5, r5, r7 - lsls r5, r5, #2 - add r5, sb - ldrb r1, [r5, #5] - adds r0, r3, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #5] - lsls r1, r6, #4 - adds r1, r1, r6 - lsls r1, r1, #2 - add r1, sb - ldrb r2, [r1, #5] - adds r0, r3, #0 - ands r0, r2 - mov r2, r8 - orrs r0, r2 - strb r0, [r1, #5] - ldr r0, [sp, #0x14] - lsls r6, r0, #4 - adds r6, r6, r0 - lsls r6, r6, #2 - mov r1, sb - adds r7, r6, r1 - adds r0, r7, #0 - adds r1, r4, #0 - movs r2, #0x44 - str r3, [sp, #0x18] - bl memcpy - mov r2, sl - lsls r4, r2, #4 - add r4, sl - lsls r4, r4, #2 - adds r0, r4, #0 - add r0, sb - mov r8, r0 - adds r1, r5, #0 - movs r2, #0x44 - bl memcpy - ldrb r1, [r7, #1] - ldr r3, [sp, #0x18] - adds r0, r3, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r7, #1] - mov r2, r8 - ldrb r0, [r2, #1] - ands r3, r0 - orrs r3, r1 - strb r3, [r2, #1] - movs r0, #0x1c - add sb, r0 - add r6, sb - ldr r1, _08170424 - str r1, [r6] - add r4, sb - str r1, [r4] - mov r0, sp - bl sub_080A63F8 - mov r0, sp - ldrb r0, [r0, #9] - ldr r1, _08170428 - bl AnimLoadCompressedBgTilemap - mov r0, sp - ldrb r0, [r0, #9] - ldr r1, _0817042C - mov r2, sp - ldrh r2, [r2, #0xa] - bl AnimLoadCompressedBgGfx - ldr r0, _08170430 - mov r1, sp - ldrb r1, [r1, #8] - lsls r1, r1, #4 - movs r2, #0x20 - bl LoadCompressedPalette - ldr r1, _08170434 - ldrh r0, [r7, #0x20] - rsbs r0, r0, #0 - adds r0, #0x20 - strh r0, [r1] - ldr r1, _08170438 - ldrh r0, [r7, #0x22] - rsbs r0, r0, #0 - subs r0, #0x20 - strh r0, [r1] - ldr r1, _0817043C - ldr r2, [sp, #0x10] - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0xa0 - lsls r1, r1, #2 - strh r1, [r0, #0xa] - mov r1, sp - ldrh r1, [r1, #0x14] - strh r1, [r0, #8] - mov r2, sl - strh r2, [r0, #0xc] - ldr r1, _08170440 - str r1, [r0] - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08170404: .4byte gUnknown_20380D6 -_08170408: .4byte gUnknown_2022AD8 -_0817040C: .4byte gUnknown_2022ADA -_08170410: .4byte 0x00003F3F -_08170414: .4byte 0x00003F3D -_08170418: .4byte 0x00003F42 -_0817041C: .4byte gUnknown_3005AD0 -_08170420: .4byte gUnknown_20205AC -_08170424: .4byte sub_08007140 -_08170428: .4byte gUnknown_8C2EB40 -_0817042C: .4byte gUnknown_8C2EAF4 -_08170430: .4byte gUnknown_8C2DE48 -_08170434: .4byte gUnknown_2022ACC -_08170438: .4byte gUnknown_2022ACE -_0817043C: .4byte gUnknown_3005B60 -_08170440: .4byte sub_08170444 - thumb_func_end unref_sub_8170478 - - thumb_func_start sub_08170444 -sub_08170444: @ 0x08170444 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _0817048C - ldrb r0, [r0] - mov r8, r0 - ldr r1, _08170490 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r5, r0, r1 - ldrh r1, [r5, #0xa] - ldrh r0, [r5, #0x22] - adds r1, r1, r0 - movs r3, #0 - strh r1, [r5, #0x22] - ldr r2, _08170494 - lsls r0, r1, #0x10 - lsrs r0, r0, #0x18 - ldrh r4, [r2] - adds r0, r0, r4 - strh r0, [r2] - movs r0, #0xff - ands r1, r0 - strh r1, [r5, #0x22] - movs r1, #0x26 - ldrsh r0, [r5, r1] - cmp r0, #1 - beq _081704D4 - cmp r0, #1 - bgt _08170498 - cmp r0, #0 - beq _0817049E - b _081705F8 - .align 2, 0 -_0817048C: .4byte gUnknown_20380D6 -_08170490: .4byte gUnknown_3005B60 -_08170494: .4byte gUnknown_2022ACE -_08170498: - cmp r0, #2 - beq _081704EC - b _081705F8 -_0817049E: - ldrh r0, [r5, #0x1e] - adds r1, r0, #1 - strh r1, [r5, #0x1e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - bgt _081704AE - b _081705F8 -_081704AE: - strh r3, [r5, #0x1e] - ldrh r1, [r5, #0x20] - adds r1, #1 - strh r1, [r5, #0x20] - movs r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r2, #0x20 - ldrsh r0, [r5, r2] - cmp r0, #8 - beq _081704D2 - b _081705F8 -_081704D2: - b _081704E4 -_081704D4: - ldrh r0, [r5, #0x1c] - adds r0, #1 - strh r0, [r5, #0x1c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1e - beq _081704E4 - b _081705F8 -_081704E4: - ldrh r0, [r5, #0x26] - adds r0, #1 - strh r0, [r5, #0x26] - b _081705F8 -_081704EC: - ldrh r0, [r5, #0x1e] - adds r1, r0, #1 - strh r1, [r5, #0x1e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _081705F8 - strh r3, [r5, #0x1e] - ldrh r1, [r5, #0x20] - subs r1, #1 - strh r1, [r5, #0x20] - movs r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r0, #0x20 - ldrsh r4, [r5, r0] - cmp r4, #0 - bne _081705F8 - movs r0, #0 - bl sub_080A4044 - ldr r0, _08170604 - strh r4, [r0] - ldr r0, _08170608 - strh r4, [r0] - ldr r4, _0817060C - movs r0, #0x48 - adds r1, r4, #0 - bl SetGpuReg - movs r0, #0x4a - adds r1, r4, #0 - bl SetGpuReg - bl IsContest - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08170550 - movs r0, #1 - movs r1, #3 - movs r2, #0 - bl SetAnimBgAttribute -_08170550: - movs r0, #0 - bl GetGpuReg - adds r1, r0, #0 - movs r2, #0x80 - lsls r2, r2, #8 - adds r0, r2, #0 - eors r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r4, #8 - ldrsh r1, [r5, r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r6, _08170610 - adds r0, r0, r6 - bl DestroySprite - movs r0, #0xc - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - bl DestroySprite - movs r0, #1 - movs r1, #1 - movs r2, #0 - bl SetAnimBgAttribute - ldr r0, _08170614 - add r0, r8 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrb r2, [r1, #6] - mov r8, r2 - ldrh r4, [r1, #0x38] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldrb r3, [r1, #5] - movs r2, #0xd - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r3 - movs r5, #4 - orrs r0, r5 - strb r0, [r1, #5] - mov r0, r8 - lsls r1, r0, #4 - add r1, r8 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrb r3, [r1, #5] - adds r0, r2, #0 - ands r0, r3 - orrs r0, r5 - strb r0, [r1, #5] - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r1, [r0, #5] - ands r2, r1 - orrs r2, r5 - strb r2, [r0, #5] - adds r0, r7, #0 - bl DestroyAnimVisualTask -_081705F8: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08170604: .4byte gUnknown_2022AD8 -_08170608: .4byte gUnknown_2022ADA -_0817060C: .4byte 0x00003F3F -_08170610: .4byte gUnknown_20205AC -_08170614: .4byte gUnknown_3005AD0 - thumb_func_end sub_08170444 - - thumb_func_start sub_08170618 -sub_08170618: @ 0x08170618 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov sb, r0 - adds r7, r1, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r0, _081706F0 - adds r2, r2, r0 - ldrb r0, [r2] - lsls r5, r0, #4 - adds r5, r5, r0 - lsls r5, r5, #2 - ldr r0, _081706F4 - adds r5, r5, r0 - ldrb r1, [r5, #6] - mov sl, r1 - ldrh r4, [r5, #0x38] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081706F8 - bl AllocSpritePalette - mov r2, sb - strb r0, [r2] - ldr r0, _081706FC - bl AllocSpritePalette - strb r0, [r7] - ldrb r0, [r5, #5] - lsrs r0, r0, #4 - lsls r0, r0, #4 - movs r1, #0x80 - lsls r1, r1, #1 - adds r3, r1, #0 - orrs r0, r3 - lsls r6, r4, #4 - adds r6, r6, r4 - lsls r6, r6, #2 - ldr r2, _081706F4 - adds r6, r6, r2 - ldrb r4, [r6, #5] - lsrs r4, r4, #4 - lsls r4, r4, #4 - orrs r4, r3 - lsls r0, r0, #1 - ldr r1, _08170700 - mov r8, r1 - add r0, r8 - mov r2, sb - ldrb r1, [r2] - lsls r1, r1, #4 - adds r1, r3, r1 - movs r2, #0x20 - str r3, [sp] - bl LoadPalette - lsls r4, r4, #1 - add r4, r8 - ldrb r0, [r7] - lsls r0, r0, #4 - ldr r3, [sp] - adds r3, r3, r0 - adds r0, r4, #0 - adds r1, r3, #0 - movs r2, #0x20 - bl LoadPalette - mov r0, sb - ldrb r1, [r0] - lsls r1, r1, #4 - ldrb r2, [r5, #5] - movs r3, #0xf - adds r0, r3, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #5] - mov r2, sl - lsls r1, r2, #4 - add r1, sl - lsls r1, r1, #2 - ldr r0, _081706F4 - adds r1, r1, r0 - mov r0, sb - ldrb r2, [r0] - lsls r2, r2, #4 - ldrb r4, [r1, #5] - adds r0, r3, #0 - ands r0, r4 - orrs r0, r2 - strb r0, [r1, #5] - ldrb r0, [r7] - lsls r0, r0, #4 - ldrb r1, [r6, #5] - ands r3, r1 - orrs r3, r0 - strb r3, [r6, #5] - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081706F0: .4byte gUnknown_3005AD0 -_081706F4: .4byte gUnknown_20205AC -_081706F8: .4byte 0x0000D709 -_081706FC: .4byte 0x0000D70A -_08170700: .4byte gUnknown_20373B4 - thumb_func_end sub_08170618 - - thumb_func_start sub_08170704 -sub_08170704: @ 0x08170704 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r1, sp - adds r1, #1 - ldr r0, _0817072C - ldrb r2, [r0] - mov r0, sp - bl sub_08170618 - adds r0, r4, #0 - bl DestroyAnimVisualTask - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0817072C: .4byte gUnknown_20380D6 - thumb_func_end sub_08170704 - - thumb_func_start sub_08170730 -sub_08170730: @ 0x08170730 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081707B8 - adds r0, r0, r1 - ldrb r0, [r0] - ldr r1, _081707BC - mov r8, r1 - lsls r5, r0, #4 - adds r5, r5, r0 - lsls r5, r5, #2 - add r5, r8 - ldrb r0, [r5, #6] - mov sb, r0 - ldrh r6, [r5, #0x38] - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - ldr r0, _081707C0 - bl FreeSpritePaletteByTag - ldr r0, _081707C4 - bl FreeSpritePaletteByTag - ldr r0, _081707C8 - bl IndexOfSpritePaletteTag - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081707CC - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsls r4, r4, #4 - ldrb r2, [r5, #5] - movs r3, #0xf - adds r1, r3, #0 - ands r1, r2 - orrs r1, r4 - strb r1, [r5, #5] - mov r1, sb - lsls r2, r1, #4 - add r2, sb - lsls r2, r2, #2 - add r2, r8 - ldrb r5, [r2, #5] - adds r1, r3, #0 - ands r1, r5 - orrs r1, r4 - strb r1, [r2, #5] - lsls r1, r6, #4 - adds r1, r1, r6 - lsls r1, r1, #2 - add r1, r8 - lsrs r0, r0, #0x14 - ldrb r2, [r1, #5] - ands r3, r2 - orrs r3, r0 - strb r3, [r1, #5] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081707B8: .4byte gUnknown_3005AD0 -_081707BC: .4byte gUnknown_20205AC -_081707C0: .4byte 0x0000D709 -_081707C4: .4byte 0x0000D70A -_081707C8: .4byte 0x0000D6FF -_081707CC: .4byte 0x0000D704 - thumb_func_end sub_08170730 - - thumb_func_start sub_081707D0 -sub_081707D0: @ 0x081707D0 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081707EC - ldrb r0, [r0] - bl sub_08170730 - adds r0, r4, #0 - bl DestroyAnimVisualTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081707EC: .4byte gUnknown_20380D6 - thumb_func_end sub_081707D0 - - thumb_func_start sub_081707F0 -sub_081707F0: @ 0x081707F0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08170810 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r2, _08170814 - ldrh r0, [r2] - strh r0, [r1, #0x1c] - ldrh r0, [r2, #2] - strh r0, [r1, #0x1e] - ldr r0, _08170818 - str r0, [r1] - bx lr - .align 2, 0 -_08170810: .4byte gUnknown_3005B60 -_08170814: .4byte gUnknown_20380BE -_08170818: .4byte sub_0817081C - thumb_func_end sub_081707F0 - - thumb_func_start sub_0817081C -sub_0817081C: @ 0x0817081C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _08170868 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrh r0, [r4, #8] - adds r0, #1 - movs r6, #0 - adds r1, r0, #1 - strh r1, [r4, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x1e - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _081708DC - strh r6, [r4, #8] - ldr r0, _0817086C - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - movs r3, #0x1c - ldrsh r0, [r4, r3] - movs r1, #2 - cmp r0, #0 - bne _0817085A - movs r1, #6 -_0817085A: - movs r3, #0xa - ldrsh r0, [r4, r3] - cmp r0, #0 - beq _08170870 - cmp r0, #1 - beq _081708AC - b _081708DC - .align 2, 0 -_08170868: .4byte gUnknown_3005B60 -_0817086C: .4byte 0x0000D709 -_08170870: - ldrh r0, [r4, #0xc] - adds r0, #2 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x10 - ble _08170882 - movs r0, #0x10 - strh r0, [r4, #0xc] -_08170882: - lsls r0, r2, #4 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r0, r2 - orrs r0, r1 - ldrb r2, [r4, #0xc] - ldr r3, _081708A8 - movs r1, #1 - bl BlendPalette - movs r3, #0xc - ldrsh r0, [r4, r3] - cmp r0, #0x10 - bne _081708DC - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - b _081708DC - .align 2, 0 -_081708A8: .4byte 0x00007F74 -_081708AC: - ldrh r0, [r4, #0xc] - subs r0, #2 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _081708BA - strh r6, [r4, #0xc] -_081708BA: - lsls r0, r2, #4 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r0, r2 - orrs r0, r1 - ldrb r2, [r4, #0xc] - ldr r3, _081708E4 - movs r1, #1 - bl BlendPalette - movs r3, #0xc - ldrsh r0, [r4, r3] - cmp r0, #0 - bne _081708DC - adds r0, r5, #0 - bl DestroyAnimVisualTask -_081708DC: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081708E4: .4byte 0x00007F74 - thumb_func_end sub_0817081C - - thumb_func_start sub_081708E8 -sub_081708E8: @ 0x081708E8 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _08170914 - ldr r0, _08170918 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r5, [r0] - ldr r1, _0817091C - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _08170936 - cmp r0, #1 - bgt _08170920 - cmp r0, #0 - beq _08170926 - b _08170988 - .align 2, 0 -_08170914: .4byte gUnknown_2023E88 -_08170918: .4byte gUnknown_20380D6 -_0817091C: .4byte gUnknown_3005B60 -_08170920: - cmp r0, #2 - beq _08170968 - b _08170988 -_08170926: - adds r0, r5, #0 - movs r1, #0 - bl PrepareBattlerSpriteForRotScale - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x1c] - b _0817095A -_08170936: - ldrh r0, [r4, #0x1c] - adds r0, #0x30 - strh r0, [r4, #0x1c] - movs r0, #0x1c - ldrsh r2, [r4, r0] - adds r0, r5, #0 - adds r1, r2, #0 - movs r3, #0 - bl SetSpriteRotScale - adds r0, r5, #0 - bl SetBattlerSpriteYOffsetFromYScale - movs r0, #0x1c - ldrsh r1, [r4, r0] - ldr r0, _08170964 - cmp r1, r0 - ble _08170988 -_0817095A: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _08170988 - .align 2, 0 -_08170964: .4byte 0x000002CF -_08170968: - adds r0, r5, #0 - bl ResetSpriteRotScale - ldr r1, _08170990 - lsls r0, r5, #4 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - adds r0, r6, #0 - bl DestroyAnimVisualTask -_08170988: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08170990: .4byte gUnknown_20205AC - thumb_func_end sub_081708E8 - - thumb_func_start sub_08170994 -sub_08170994: @ 0x08170994 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _081709CC - ldr r4, _081709D0 - ldrb r0, [r4] - adds r1, r0, r1 - ldrb r1, [r1] - mov sb, r1 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081709DC - ldr r1, _081709D4 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081709D8 - b _081709EC - .align 2, 0 -_081709CC: .4byte gUnknown_2023E88 -_081709D0: .4byte gUnknown_20380D6 -_081709D4: .4byte gUnknown_2023D12 -_081709D8: .4byte gUnknown_2024190 -_081709DC: - ldr r1, _08170A1C - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08170A20 -_081709EC: - adds r0, r0, r1 - movs r1, #0x26 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl ItemIdToBallId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r2, _08170A24 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r6, r0, r2 - movs r0, #8 - ldrsh r7, [r6, r0] - cmp r7, #0 - beq _08170A28 - cmp r7, #1 - beq _08170AA8 - b _08170AD2 - .align 2, 0 -_08170A1C: .4byte gUnknown_2023D12 -_08170A20: .4byte gUnknown_20243E8 -_08170A24: .4byte gUnknown_3005B60 -_08170A28: - ldr r5, _08170AA0 - ldrb r0, [r5] - movs r1, #0 - bl GetBattlerSpriteCoord - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldrb r0, [r5] - movs r1, #1 - bl GetBattlerSpriteCoord - adds r1, r0, #0 - lsls r1, r1, #0x18 - ldr r2, _08170AA4 - mov r3, sb - lsls r0, r3, #4 - add r0, sb - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r2, [r0, #5] - lsls r2, r2, #0x1c - lsrs r2, r2, #0x1e - adds r0, #0x43 - ldrb r3, [r0] - movs r0, #0x80 - lsls r0, r0, #0x16 - adds r1, r1, r0 - lsrs r1, r1, #0x18 - mov r0, r8 - str r0, [sp] - adds r0, r4, #0 - bl AnimateBallOpenParticles - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r6, #0x1c] - str r7, [sp] - str r7, [sp, #4] - str r7, [sp, #8] - movs r0, #1 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_080A6E74 - adds r2, r0, #0 - ldrb r1, [r5] - movs r0, #0 - mov r3, r8 - bl LaunchBallFadeMonTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r6, #0x1e] - ldrh r0, [r6, #8] - adds r0, #1 - strh r0, [r6, #8] - b _08170AD2 - .align 2, 0 -_08170AA0: .4byte gUnknown_20380D6 -_08170AA4: .4byte gUnknown_20205AC -_08170AA8: - movs r1, #0x1c - ldrsh r0, [r6, r1] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldrb r0, [r1, #4] - cmp r0, #0 - bne _08170AD2 - movs r3, #0x1e - ldrsh r0, [r6, r3] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldrb r0, [r1, #4] - cmp r0, #0 - bne _08170AD2 - adds r0, r5, #0 - bl DestroyAnimVisualTask -_08170AD2: - add sp, #0xc - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08170994 - - thumb_func_start sub_08170AE0 -sub_08170AE0: @ 0x08170AE0 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _08170B04 - ldrh r0, [r0] - bl ItemIdToBallId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl LoadBallGfx - adds r0, r4, #0 - bl DestroyAnimVisualTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08170B04: .4byte gUnknown_2023EAC - thumb_func_end sub_08170AE0 - - thumb_func_start sub_08170B08 -sub_08170B08: @ 0x08170B08 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _08170B2C - ldrh r0, [r0] - bl ItemIdToBallId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl FreeBallGfx - adds r0, r4, #0 - bl DestroyAnimVisualTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08170B2C: .4byte gUnknown_2023EAC - thumb_func_end sub_08170B08 - - thumb_func_start AnimTask_IsBallBlockedByTrainer -AnimTask_IsBallBlockedByTrainer: @ 0x08170B30 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _08170B48 - ldr r0, [r0] - ldr r0, [r0, #8] - ldrb r0, [r0, #8] - cmp r0, #5 - bne _08170B54 - ldr r1, _08170B4C - ldr r0, _08170B50 - b _08170B58 - .align 2, 0 -_08170B48: .4byte gUnknown_2024174 -_08170B4C: .4byte gUnknown_20380BE -_08170B50: .4byte 0x0000FFFF -_08170B54: - ldr r1, _08170B64 - movs r0, #0 -_08170B58: - strh r0, [r1, #0xe] - adds r0, r2, #0 - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_08170B64: .4byte gUnknown_20380BE - thumb_func_end AnimTask_IsBallBlockedByTrainer - - thumb_func_start ItemIdToBallId -ItemIdToBallId: @ 0x08170B68 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - subs r0, #1 - cmp r0, #0xb - bhi _08170BE0 - lsls r0, r0, #2 - ldr r1, _08170B80 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08170B80: .4byte _08170B84 -_08170B84: @ jump table - .4byte _08170BB4 @ case 0 - .4byte _08170BB8 @ case 1 - .4byte _08170BBC @ case 2 - .4byte _08170BE0 @ case 3 - .4byte _08170BC0 @ case 4 - .4byte _08170BC4 @ case 5 - .4byte _08170BC8 @ case 6 - .4byte _08170BCC @ case 7 - .4byte _08170BD0 @ case 8 - .4byte _08170BD4 @ case 9 - .4byte _08170BD8 @ case 10 - .4byte _08170BDC @ case 11 -_08170BB4: - movs r0, #4 - b _08170BE2 -_08170BB8: - movs r0, #3 - b _08170BE2 -_08170BBC: - movs r0, #1 - b _08170BE2 -_08170BC0: - movs r0, #2 - b _08170BE2 -_08170BC4: - movs r0, #5 - b _08170BE2 -_08170BC8: - movs r0, #6 - b _08170BE2 -_08170BCC: - movs r0, #7 - b _08170BE2 -_08170BD0: - movs r0, #8 - b _08170BE2 -_08170BD4: - movs r0, #9 - b _08170BE2 -_08170BD8: - movs r0, #0xa - b _08170BE2 -_08170BDC: - movs r0, #0xb - b _08170BE2 -_08170BE0: - movs r0, #0 -_08170BE2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ItemIdToBallId - - thumb_func_start sub_08170BE8 -sub_08170BE8: @ 0x08170BE8 - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - mov sl, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - ldr r0, _08170CB0 - ldrh r0, [r0] - bl ItemIdToBallId - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - ldr r1, _08170CB4 - adds r0, r0, r1 - movs r1, #0x20 - movs r2, #0x50 - movs r3, #0x1d - bl CreateSprite - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r1, _08170CB8 - mov sb, r1 - lsls r4, r5, #4 - adds r4, r4, r5 - lsls r4, r4, #2 - adds r6, r4, r1 - movs r0, #0x22 - strh r0, [r6, #0x2e] - ldr r2, _08170CBC - mov r8, r2 - ldrb r0, [r2] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r6, #0x30] - mov r1, r8 - ldrb r0, [r1] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, #0x10 - strh r0, [r6, #0x32] - mov r0, sb - adds r0, #0x1c - adds r4, r4, r0 - ldr r0, _08170CC0 - str r0, [r4] - ldr r0, _08170CC4 - ldr r0, [r0] - ldr r3, [r0, #8] - ldr r1, _08170CC8 - mov r2, r8 - ldrb r0, [r2] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sb - adds r0, #0x3e - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1f - lsls r1, r1, #1 - ldrb r2, [r3, #9] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #9] - ldr r1, _08170CCC - mov r2, sl - lsls r0, r2, #2 - add r0, sl - lsls r0, r0, #3 - adds r0, r0, r1 - strh r5, [r0, #8] - ldr r1, _08170CD0 - str r1, [r0] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08170CB0: .4byte gUnknown_2023EAC -_08170CB4: .4byte gUnknown_82FCF94 -_08170CB8: .4byte gUnknown_20205AC -_08170CBC: .4byte gUnknown_20380D7 -_08170CC0: .4byte sub_08170EE8 -_08170CC4: .4byte gUnknown_2024174 -_08170CC8: .4byte gUnknown_2023E88 -_08170CCC: .4byte gUnknown_3005B60 -_08170CD0: .4byte sub_08170CD4 - thumb_func_end sub_08170BE8 - - thumb_func_start sub_08170CD4 -sub_08170CD4: @ 0x08170CD4 - push {lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r1, _08170D04 - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r1, [r0, #8] - ldr r2, _08170D08 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x2e] - ldr r0, _08170D0C - cmp r1, r0 - bne _08170CFE - adds r0, r3, #0 - bl DestroyAnimVisualTask -_08170CFE: - pop {r0} - bx r0 - .align 2, 0 -_08170D04: .4byte gUnknown_3005B60 -_08170D08: .4byte gUnknown_20205AC -_08170D0C: .4byte 0x0000FFFF - thumb_func_end sub_08170CD4 - - thumb_func_start sub_08170D10 -sub_08170D10: @ 0x08170D10 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _08170D30 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #2 - ands r0, r1 - cmp r0, #0 - beq _08170D34 - movs r6, #0x20 - movs r5, #0xb - b _08170D38 - .align 2, 0 -_08170D30: .4byte gUnknown_2022C90 -_08170D34: - movs r6, #0x17 - movs r5, #5 -_08170D38: - ldr r0, _08170DF0 - ldrh r0, [r0] - bl ItemIdToBallId - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerSpriteSubpriority - adds r3, r0, #0 - adds r3, #1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _08170DF4 - adds r0, r0, r1 - adds r1, r6, #0 - adds r1, #0x20 - movs r2, #0x50 - orrs r5, r2 - adds r2, r5, #0 - bl CreateSprite - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _08170DF8 - mov sb, r0 - lsls r4, r5, #4 - adds r4, r4, r5 - lsls r4, r4, #2 - adds r6, r4, r0 - movs r0, #0x22 - strh r0, [r6, #0x2e] - ldr r1, _08170DFC - mov r8, r1 - ldrb r0, [r1] - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r6, #0x30] - mov r1, r8 - ldrb r0, [r1] - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, #0x10 - strh r0, [r6, #0x32] - movs r0, #0x1c - add sb, r0 - add r4, sb - ldr r0, _08170E00 - str r0, [r4] - movs r0, #0 - bl GetBattlerAtPosition - ldr r1, _08170E04 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sb - ldr r1, _08170E08 - str r1, [r0] - ldr r1, _08170E0C - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r5, [r0, #8] - ldr r1, _08170E10 - str r1, [r0] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08170DF0: .4byte gUnknown_2023EAC -_08170DF4: .4byte gUnknown_82FCF94 -_08170DF8: .4byte gUnknown_20205AC -_08170DFC: .4byte gUnknown_20380D7 -_08170E00: .4byte sub_08007140 -_08170E04: .4byte gUnknown_2023E88 -_08170E08: .4byte sub_08039AC8 -_08170E0C: .4byte gUnknown_3005B60 -_08170E10: .4byte sub_08170E14 - thumb_func_end sub_08170D10 - - thumb_func_start sub_08170E14 -sub_08170E14: @ 0x08170E14 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r6, _08170E74 - movs r0, #0 - bl GetBattlerAtPosition - ldr r1, _08170E78 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x2b - ldrb r0, [r0] - cmp r0, #1 - bne _08170E6E - movs r0, #0x3d - movs r1, #0 - bl PlaySE12WithPanning - ldr r0, _08170E7C - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - adds r4, r4, r0 - movs r0, #8 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r6, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _08170E80 - str r1, [r0] - ldr r0, _08170E84 - movs r1, #0xa - bl CreateTask - ldr r0, _08170E88 - str r0, [r4] -_08170E6E: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08170E74: .4byte gUnknown_20205AC -_08170E78: .4byte gUnknown_2023E88 -_08170E7C: .4byte gUnknown_3005B60 -_08170E80: .4byte sub_08170EE8 -_08170E84: .4byte sub_08170E8C -_08170E88: .4byte sub_08170CD4 - thumb_func_end sub_08170E14 - - thumb_func_start sub_08170E8C -sub_08170E8C: @ 0x08170E8C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r6, _08170EE0 - movs r0, #0 - bl GetBattlerAtPosition - ldr r4, _08170EE4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x3f - ldrb r0, [r0] - lsls r0, r0, #0x1b - cmp r0, #0 - bge _08170ED8 - movs r0, #0 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #0 - bl StartSpriteAnim - adds r0, r5, #0 - bl DestroyTask -_08170ED8: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08170EE0: .4byte gUnknown_20205AC -_08170EE4: .4byte gUnknown_2023E88 - thumb_func_end sub_08170E8C - - thumb_func_start sub_08170EE8 -sub_08170EE8: @ 0x08170EE8 - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x30] - ldrh r2, [r4, #0x32] - ldrh r0, [r4, #0x20] - strh r0, [r4, #0x30] - strh r1, [r4, #0x32] - ldrh r0, [r4, #0x22] - strh r0, [r4, #0x34] - strh r2, [r4, #0x36] - ldr r0, _08170F10 - strh r0, [r4, #0x38] - adds r0, r4, #0 - bl InitAnimArcTranslation - ldr r0, _08170F14 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08170F10: .4byte 0x0000FFD8 -_08170F14: .4byte sub_08170F18 - thumb_func_end sub_08170EE8 - - thumb_func_start sub_08170F18 -sub_08170F18: @ 0x08170F18 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - bl TranslateAnimHorizontalArc - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08170FB6 - ldr r0, _08170F3C - ldr r0, [r0] - ldr r0, [r0, #8] - ldrb r0, [r0, #8] - cmp r0, #5 - bne _08170F44 - ldr r0, _08170F40 - str r0, [r4, #0x1c] - b _08170FB6 - .align 2, 0 -_08170F3C: .4byte gUnknown_2024174 -_08170F40: .4byte sub_08171A90 -_08170F44: - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAnim - ldrh r0, [r4, #0x24] - ldrh r1, [r4, #0x20] - adds r0, r0, r1 - movs r1, #0 - strh r0, [r4, #0x20] - ldrh r0, [r4, #0x26] - ldrh r2, [r4, #0x22] - adds r0, r0, r2 - strh r0, [r4, #0x22] - strh r1, [r4, #0x24] - strh r1, [r4, #0x26] - adds r1, r4, #0 - adds r1, #0x2e - movs r2, #0 - adds r0, r4, #0 - adds r0, #0x3c -_08170F6C: - strh r2, [r0] - subs r0, #2 - cmp r0, r1 - bge _08170F6C - movs r0, #0 - strh r0, [r4, #0x38] - ldr r0, _08170FC0 - str r0, [r4, #0x1c] - ldr r0, _08170FC4 - ldrh r0, [r0] - bl ItemIdToBallId - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0xb - bgt _08170FB6 - cmp r5, #0 - blt _08170FB6 - ldrh r0, [r4, #0x20] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #0x22] - subs r1, #5 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r5, [sp] - movs r2, #1 - movs r3, #0x1c - bl AnimateBallOpenParticles - ldr r0, _08170FC8 - ldrb r1, [r0] - movs r0, #0 - movs r2, #0xe - adds r3, r5, #0 - bl LaunchBallFadeMonTask -_08170FB6: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08170FC0: .4byte sub_08170FCC -_08170FC4: .4byte gUnknown_2023EAC -_08170FC8: .4byte gUnknown_20380D7 - thumb_func_end sub_08170F18 - - thumb_func_start sub_08170FCC -sub_08170FCC: @ 0x08170FCC - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x38] - adds r0, #1 - strh r0, [r4, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xa - bne _08171008 - ldr r0, _08171010 - movs r1, #0x32 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x38] - ldr r0, _08171014 - str r0, [r4, #0x1c] - ldr r2, _08171018 - ldr r1, _0817101C - ldr r0, _08171020 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0 - strh r1, [r0, #0x30] -_08171008: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08171010: .4byte sub_080A8A40 -_08171014: .4byte sub_08171024 -_08171018: .4byte gUnknown_20205AC -_0817101C: .4byte gUnknown_2023E88 -_08171020: .4byte gUnknown_20380D7 - thumb_func_end sub_08170FCC - - thumb_func_start sub_08171024 -sub_08171024: @ 0x08171024 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - ldr r1, _08171068 - ldr r0, _0817106C - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r4, [r0] - ldrh r0, [r7, #0x38] - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _08171070 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r5, r0, r1 - ldrh r0, [r5, #0xa] - adds r0, #1 - strh r0, [r5, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xb - bne _08171056 - movs r0, #0x3c - bl sub_080A306C -_08171056: - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #1 - beq _081710CC - cmp r0, #1 - bgt _08171074 - cmp r0, #0 - beq _0817107A - b _08171138 - .align 2, 0 -_08171068: .4byte gUnknown_2023E88 -_0817106C: .4byte gUnknown_20380D7 -_08171070: .4byte gUnknown_3005B60 -_08171074: - cmp r0, #2 - beq _08171110 - b _08171138 -_0817107A: - adds r0, r4, #0 - movs r1, #0 - bl PrepareBattlerSpriteForRotScale - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r5, #0x1c] - ldr r1, _081710BC - movs r0, #0x1c - str r0, [r1] - ldr r2, _081710C0 - ldr r1, _081710C4 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r1, [r0, #0x26] - ldrh r0, [r0, #0x22] - adds r1, r1, r0 - ldrh r0, [r7, #0x26] - ldrh r7, [r7, #0x22] - adds r0, r0, r7 - subs r1, r1, r0 - strh r1, [r2] - ldr r4, _081710C8 - ldrh r0, [r2] - lsls r0, r0, #8 - movs r1, #0x1c - bl __udivsi3 - strh r0, [r4] - strh r0, [r5, #0xc] - b _0817112A - .align 2, 0 -_081710BC: .4byte gUnknown_300601C -_081710C0: .4byte gUnknown_3006024 -_081710C4: .4byte gUnknown_20205AC -_081710C8: .4byte gUnknown_3006020 -_081710CC: - ldrh r0, [r5, #0x1c] - adds r0, #0x20 - strh r0, [r5, #0x1c] - movs r0, #0x1c - ldrsh r2, [r5, r0] - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl SetSpriteRotScale - ldrh r0, [r5, #0xc] - ldrh r1, [r5, #0xe] - adds r0, r0, r1 - strh r0, [r5, #0xe] - ldr r0, _08171108 - lsls r1, r4, #4 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r1, r1, r0 - movs r2, #0xe - ldrsh r0, [r5, r2] - rsbs r0, r0, #0 - asrs r0, r0, #8 - strh r0, [r1, #0x26] - movs r0, #0x1c - ldrsh r1, [r5, r0] - ldr r0, _0817110C - cmp r1, r0 - ble _08171160 - b _0817112A - .align 2, 0 -_08171108: .4byte gUnknown_20205AC -_0817110C: .4byte 0x0000047F -_08171110: - adds r0, r4, #0 - bl ResetSpriteRotScale - ldr r1, _08171134 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_0817112A: - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - b _08171160 - .align 2, 0 -_08171134: .4byte gUnknown_20205AC -_08171138: - ldr r0, _08171168 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r2, #0xa - ldrsh r0, [r1, r2] - cmp r0, #0xa - ble _08171160 - adds r0, r6, #0 - bl DestroyTask - adds r0, r7, #0 - movs r1, #2 - bl StartSpriteAnim - movs r0, #0 - strh r0, [r7, #0x38] - ldr r0, _0817116C - str r0, [r7, #0x1c] -_08171160: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08171168: .4byte gUnknown_3005B60 -_0817116C: .4byte sub_08171170 - thumb_func_end sub_08171024 - - thumb_func_start sub_08171170 -sub_08171170: @ 0x08171170 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _081711AA - movs r1, #0 - strh r1, [r4, #0x34] - movs r0, #0x28 - strh r0, [r4, #0x36] - strh r1, [r4, #0x38] - movs r0, #0 - movs r1, #0x28 - bl Cos - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #0 - bl Cos - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - ldr r0, _081711B0 - str r0, [r4, #0x1c] -_081711AA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081711B0: .4byte sub_081711B4 - thumb_func_end sub_08171170 - - thumb_func_start sub_081711B4 -sub_081711B4: @ 0x081711B4 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #0 - ldrh r0, [r4, #0x34] - movs r1, #0xff - ands r1, r0 - cmp r1, #0 - beq _081711CA - cmp r1, #1 - beq _0817123E - b _0817126A -_081711CA: - movs r1, #0x38 - ldrsh r0, [r4, r1] - movs r2, #0x36 - ldrsh r1, [r4, r2] - bl Cos - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - ldrh r1, [r4, #0x38] - adds r1, #4 - ldrh r2, [r4, #0x34] - lsls r0, r2, #0x10 - asrs r0, r0, #0x18 - adds r1, r1, r0 - strh r1, [r4, #0x38] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0x3f - ble _0817126A - ldrh r0, [r4, #0x36] - subs r0, #0xa - strh r0, [r4, #0x36] - ldr r1, _08171214 - adds r0, r2, r1 - strh r0, [r4, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - cmp r0, #4 - bne _08171206 - movs r5, #1 -_08171206: - cmp r0, #2 - beq _08171226 - cmp r0, #2 - bgt _08171218 - cmp r0, #1 - beq _0817121E - b _08171236 - .align 2, 0 -_08171214: .4byte 0x00000101 -_08171218: - cmp r0, #3 - beq _0817122E - b _08171236 -_0817121E: - movs r0, #0x38 - bl sub_080A306C - b _0817126A -_08171226: - movs r0, #0x39 - bl sub_080A306C - b _0817126A -_0817122E: - movs r0, #0x3a - bl sub_080A306C - b _0817126A -_08171236: - movs r0, #0x3b - bl sub_080A306C - b _0817126A -_0817123E: - movs r2, #0x38 - ldrsh r0, [r4, r2] - movs r2, #0x36 - ldrsh r1, [r4, r2] - bl Cos - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - ldrh r1, [r4, #0x38] - subs r1, #4 - ldrh r2, [r4, #0x34] - lsls r0, r2, #0x10 - asrs r0, r0, #0x18 - subs r1, r1, r0 - strh r1, [r4, #0x38] - lsls r1, r1, #0x10 - cmp r1, #0 - bgt _0817126A - strh r5, [r4, #0x38] - ldr r0, _08171298 - ands r0, r2 - strh r0, [r4, #0x34] -_0817126A: - cmp r5, #0 - beq _081712AE - movs r5, #0 - strh r5, [r4, #0x34] - movs r0, #0x40 - movs r1, #0x28 - bl Cos - ldrh r1, [r4, #0x22] - adds r0, r0, r1 - strh r0, [r4, #0x22] - strh r5, [r4, #0x26] - ldr r0, _0817129C - ldr r0, [r0] - ldr r0, [r0, #8] - ldrb r0, [r0, #8] - cmp r0, #0 - bne _081712A4 - strh r5, [r4, #0x38] - ldr r0, _081712A0 - str r0, [r4, #0x1c] - b _081712AE - .align 2, 0 -_08171298: .4byte 0xFFFFFF00 -_0817129C: .4byte gUnknown_2024174 -_081712A0: .4byte sub_08171598 -_081712A4: - ldr r0, _081712B4 - str r0, [r4, #0x1c] - movs r0, #1 - strh r0, [r4, #0x36] - strh r5, [r4, #0x38] -_081712AE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081712B4: .4byte sub_081712B8 - thumb_func_end sub_081711B4 - - thumb_func_start sub_081712B8 -sub_081712B8: @ 0x081712B8 - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x34] - adds r0, #1 - movs r5, #0 - strh r0, [r4, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1f - bne _081712F4 - strh r5, [r4, #0x34] - adds r2, r4, #0 - adds r2, #0x2c - ldrb r0, [r2] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAffineAnim - ldr r0, _081712FC - ldr r0, [r0] - ldr r0, [r0, #8] - strh r5, [r0, #0xc] - ldr r0, _08171300 - str r0, [r4, #0x1c] - movs r0, #0x17 - bl sub_080A306C -_081712F4: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081712FC: .4byte gUnknown_2024174 -_08171300: .4byte sub_08171304 - thumb_func_end sub_081712B8 - - thumb_func_start sub_08171304 -sub_08171304: @ 0x08171304 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x34] - movs r1, #0xff - ands r1, r0 - cmp r1, #6 - bls _08171314 - b _0817154C -_08171314: - lsls r0, r1, #2 - ldr r1, _08171320 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08171320: .4byte _08171324 -_08171324: @ jump table - .4byte _08171340 @ case 0 - .4byte _08171392 @ case 1 - .4byte _081713D8 @ case 2 - .4byte _08171438 @ case 3 - .4byte _08171488 @ case 4 - .4byte _081714EC @ case 5 - .4byte _0817154C @ case 6 -_08171340: - ldr r1, _08171364 - ldr r5, [r1] - ldr r2, [r5, #8] - ldrh r3, [r2, #0xc] - movs r6, #0xc - ldrsh r0, [r2, r6] - adds r6, r1, #0 - cmp r0, #0xff - ble _08171368 - ldrh r0, [r4, #0x36] - ldrh r1, [r4, #0x24] - adds r0, r0, r1 - strh r0, [r4, #0x24] - ldr r1, [r5, #8] - ldrb r0, [r1, #0xc] - strh r0, [r1, #0xc] - b _0817136E - .align 2, 0 -_08171364: .4byte gUnknown_2024174 -_08171368: - adds r0, r3, #0 - adds r0, #0xb0 - strh r0, [r2, #0xc] -_0817136E: - ldrh r0, [r4, #0x38] - adds r0, #1 - movs r3, #0 - strh r0, [r4, #0x38] - adds r2, r4, #0 - adds r2, #0x2c - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - ldrh r0, [r4, #0x38] - adds r0, #7 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xe - bhi _08171390 - b _08171592 -_08171390: - b _08171428 -_08171392: - ldrh r0, [r4, #0x38] - adds r0, #1 - strh r0, [r4, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - bne _08171444 - movs r0, #0 - strh r0, [r4, #0x38] - ldrh r0, [r4, #0x36] - rsbs r0, r0, #0 - strh r0, [r4, #0x36] - ldrh r0, [r4, #0x34] - adds r0, #1 - strh r0, [r4, #0x34] - adds r2, r4, #0 - adds r2, #0x2c - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - movs r6, #0x36 - ldrsh r0, [r4, r6] - cmp r0, #0 - bge _081713CE - adds r0, r4, #0 - movs r1, #2 - bl ChangeSpriteAffineAnim - b _08171592 -_081713CE: - adds r0, r4, #0 - movs r1, #1 - bl ChangeSpriteAffineAnim - b _08171592 -_081713D8: - ldr r1, _081713FC - ldr r5, [r1] - ldr r2, [r5, #8] - ldrh r3, [r2, #0xc] - movs r6, #0xc - ldrsh r0, [r2, r6] - adds r6, r1, #0 - cmp r0, #0xff - ble _08171400 - ldrh r0, [r4, #0x36] - ldrh r1, [r4, #0x24] - adds r0, r0, r1 - strh r0, [r4, #0x24] - ldr r1, [r5, #8] - ldrb r0, [r1, #0xc] - strh r0, [r1, #0xc] - b _08171406 - .align 2, 0 -_081713FC: .4byte gUnknown_2024174 -_08171400: - adds r0, r3, #0 - adds r0, #0xb0 - strh r0, [r2, #0xc] -_08171406: - ldrh r0, [r4, #0x38] - adds r0, #1 - movs r3, #0 - strh r0, [r4, #0x38] - adds r2, r4, #0 - adds r2, #0x2c - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - ldrh r0, [r4, #0x38] - adds r0, #0xc - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x18 - bhi _08171428 - b _08171592 -_08171428: - ldr r0, [r6] - ldr r0, [r0, #8] - strh r3, [r0, #0xc] - ldrh r0, [r4, #0x34] - adds r0, #1 - strh r0, [r4, #0x34] - strh r3, [r4, #0x38] - b _08171592 -_08171438: - ldrh r0, [r4, #0x38] - adds r1, r0, #1 - strh r1, [r4, #0x38] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _08171452 -_08171444: - adds r0, r4, #0 - adds r0, #0x2c - ldrb r1, [r0] - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0] - b _08171592 -_08171452: - movs r0, #0 - strh r0, [r4, #0x38] - ldrh r0, [r4, #0x36] - rsbs r0, r0, #0 - strh r0, [r4, #0x36] - ldrh r0, [r4, #0x34] - adds r0, #1 - strh r0, [r4, #0x34] - adds r2, r4, #0 - adds r2, #0x2c - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - movs r6, #0x36 - ldrsh r0, [r4, r6] - cmp r0, #0 - bge _08171480 - adds r0, r4, #0 - movs r1, #2 - bl ChangeSpriteAffineAnim - b _08171488 -_08171480: - adds r0, r4, #0 - movs r1, #1 - bl ChangeSpriteAffineAnim -_08171488: - ldr r1, _081714AC - ldr r5, [r1] - ldr r2, [r5, #8] - ldrh r3, [r2, #0xc] - movs r6, #0xc - ldrsh r0, [r2, r6] - adds r6, r1, #0 - cmp r0, #0xff - ble _081714B0 - ldrh r0, [r4, #0x36] - ldrh r1, [r4, #0x24] - adds r0, r0, r1 - strh r0, [r4, #0x24] - ldr r1, [r5, #8] - ldrb r0, [r1, #0xc] - strh r0, [r1, #0xc] - b _081714B6 - .align 2, 0 -_081714AC: .4byte gUnknown_2024174 -_081714B0: - adds r0, r3, #0 - adds r0, #0xb0 - strh r0, [r2, #0xc] -_081714B6: - ldrh r0, [r4, #0x38] - adds r0, #1 - movs r3, #0 - strh r0, [r4, #0x38] - adds r2, r4, #0 - adds r2, #0x2c - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - ldrh r0, [r4, #0x38] - adds r0, #4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #8 - bls _08171592 - ldr r0, [r6] - ldr r0, [r0, #8] - strh r3, [r0, #0xc] - ldrh r0, [r4, #0x34] - adds r0, #1 - strh r0, [r4, #0x34] - strh r3, [r4, #0x38] - ldrh r0, [r4, #0x36] - rsbs r0, r0, #0 - strh r0, [r4, #0x36] - b _08171592 -_081714EC: - movs r6, #0x80 - lsls r6, r6, #1 - adds r0, r6, #0 - ldrh r1, [r4, #0x34] - adds r0, r0, r1 - strh r0, [r4, #0x34] - lsls r0, r0, #0x10 - asrs r1, r0, #0x18 - ldr r0, _0817151C - ldr r0, [r0] - ldr r0, [r0, #8] - ldrb r0, [r0, #8] - cmp r1, r0 - bne _08171524 - adds r2, r4, #0 - adds r2, #0x2c - ldrb r0, [r2] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08171520 - str r0, [r4, #0x1c] - b _08171592 - .align 2, 0 -_0817151C: .4byte gUnknown_2024174 -_08171520: .4byte sub_08171598 -_08171524: - cmp r0, #4 - bne _08171538 - cmp r1, #3 - bne _08171538 - ldr r0, _08171534 - str r0, [r4, #0x1c] - b _0817153E - .align 2, 0 -_08171534: .4byte sub_081715BC -_08171538: - ldrh r0, [r4, #0x34] - adds r0, #1 - strh r0, [r4, #0x34] -_0817153E: - adds r2, r4, #0 - adds r2, #0x2c - ldrb r0, [r2] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2] - b _08171592 -_0817154C: - ldrh r0, [r4, #0x38] - adds r0, #1 - strh r0, [r4, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1f - bne _08171592 - movs r0, #0 - strh r0, [r4, #0x38] - ldrh r1, [r4, #0x34] - ldr r0, _08171580 - ands r0, r1 - strh r0, [r4, #0x34] - adds r0, r4, #0 - movs r1, #3 - bl StartSpriteAffineAnim - movs r6, #0x36 - ldrsh r0, [r4, r6] - cmp r0, #0 - bge _08171584 - adds r0, r4, #0 - movs r1, #2 - bl StartSpriteAffineAnim - b _0817158C - .align 2, 0 -_08171580: .4byte 0xFFFFFF00 -_08171584: - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAffineAnim -_0817158C: - movs r0, #0x17 - bl sub_080A306C -_08171592: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_08171304 - - thumb_func_start sub_08171598 -sub_08171598: @ 0x08171598 - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0x38] - adds r0, #1 - strh r0, [r1, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1f - bne _081715B2 - movs r0, #0 - strh r0, [r1, #0x38] - ldr r0, _081715B8 - str r0, [r1, #0x1c] -_081715B2: - pop {r0} - bx r0 - .align 2, 0 -_081715B8: .4byte sub_081718C8 - thumb_func_end sub_08171598 - - thumb_func_start sub_081715BC -sub_081715BC: @ 0x081715BC - adds r3, r0, #0 - adds r3, #0x2c - ldrb r1, [r3] - movs r2, #0x40 - orrs r1, r2 - strb r1, [r3] - ldr r1, _081715D8 - str r1, [r0, #0x1c] - movs r1, #0 - strh r1, [r0, #0x34] - strh r1, [r0, #0x36] - strh r1, [r0, #0x38] - bx lr - .align 2, 0 -_081715D8: .4byte sub_081715DC - thumb_func_end sub_081715BC - - thumb_func_start sub_081715DC -sub_081715DC: @ 0x081715DC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r6, r0, #0 - ldr r7, _0817161C - ldrh r0, [r6, #0x36] - adds r0, #1 - movs r1, #0 - mov r8, r1 - strh r0, [r6, #0x36] - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - cmp r1, #0x28 - bne _08171620 - movs r0, #0xfe - bl sub_080A306C - ldrb r1, [r6, #5] - lsrs r1, r1, #4 - movs r0, #0x80 - lsls r0, r0, #9 - lsls r0, r1 - movs r1, #6 - movs r2, #0 - bl BlendPalettes - adds r0, r6, #0 - bl sub_081717D0 - b _081716A0 - .align 2, 0 -_0817161C: .4byte gUnknown_20380D7 -_08171620: - cmp r1, #0x3c - bne _0817163E - ldrb r1, [r6, #5] - lsrs r1, r1, #4 - movs r0, #0x80 - lsls r0, r0, #9 - lsls r0, r1 - mov r1, r8 - str r1, [sp] - movs r1, #2 - movs r2, #6 - movs r3, #0 - bl BeginNormalPaletteFade - b _081716A0 -_0817163E: - cmp r1, #0x5f - bne _08171664 - ldr r0, _0817165C - movs r1, #0 - strb r1, [r0] - movs r0, #1 - bl UpdateOamPriorityInAllHealthboxes - bl m4aMPlayAllStop - ldr r0, _08171660 - bl sub_080A306C - b _081716A0 - .align 2, 0 -_0817165C: .4byte gUnknown_202415D -_08171660: .4byte 0x00000213 -_08171664: - ldr r0, _081716AC - cmp r1, r0 - bne _081716A0 - ldr r5, _081716B0 - ldr r4, _081716B4 - ldrb r0, [r7] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r0, [r0, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - ldrb r0, [r7] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - bl DestroySprite - mov r0, r8 - strh r0, [r6, #0x2e] - ldr r0, _081716B8 - str r0, [r6, #0x1c] -_081716A0: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081716AC: .4byte 0x0000013B -_081716B0: .4byte gUnknown_20205AC -_081716B4: .4byte gUnknown_2023E88 -_081716B8: .4byte sub_081716BC - thumb_func_end sub_081715DC - - thumb_func_start sub_081716BC -sub_081716BC: @ 0x081716BC - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _08171728 - cmp r0, #1 - bgt _081716D4 - cmp r0, #0 - beq _081716DA - b _0817176E -_081716D4: - cmp r0, #2 - beq _0817175A - b _0817176E -_081716DA: - strh r0, [r4, #0x30] - strh r0, [r4, #0x32] - ldrb r1, [r4, #1] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r4, #1] - movs r1, #0xfd - lsls r1, r1, #6 - movs r0, #0x50 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0x10 - bl SetGpuReg - ldr r0, [r4, #0x14] - ldrh r0, [r0, #2] - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #0x10 - movs r1, #1 - lsls r1, r0 - ldr r0, _08171724 - str r0, [sp] - adds r0, r1, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - b _08171766 - .align 2, 0 -_08171724: .4byte 0x00007FFF -_08171728: - ldrh r0, [r4, #0x30] - adds r1, r0, #1 - strh r1, [r4, #0x30] - lsls r0, r0, #0x10 - cmp r0, #0 - ble _08171794 - movs r0, #0 - strh r0, [r4, #0x30] - ldrh r2, [r4, #0x32] - adds r2, #1 - strh r2, [r4, #0x32] - lsls r1, r2, #8 - movs r0, #0x10 - subs r0, r0, r2 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0x10 - bne _08171794 - b _08171766 -_0817175A: - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] -_08171766: - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - b _08171794 -_0817176E: - ldr r0, _0817179C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _08171794 - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - strh r5, [r4, #0x2e] - ldr r0, _081717A0 - str r0, [r4, #0x1c] -_08171794: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0817179C: .4byte gUnknown_2037C74 -_081717A0: .4byte sub_081717A4 - thumb_func_end sub_081716BC - - thumb_func_start sub_081717A4 -sub_081717A4: @ 0x081717A4 - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x2e] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _081717BC - ldr r0, _081717B8 - strh r0, [r4, #0x2e] - b _081717C8 - .align 2, 0 -_081717B8: .4byte 0x0000FFFF -_081717BC: - adds r0, r4, #0 - bl FreeSpriteOamMatrix - adds r0, r4, #0 - bl DestroySprite -_081717C8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081717A4 - - thumb_func_start sub_081717D0 -sub_081717D0: @ 0x081717D0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r6, r0, #0 - adds r1, r6, #0 - adds r1, #0x43 - ldrb r0, [r1] - cmp r0, #0 - beq _081717F0 - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - b _081717F8 -_081717F0: - movs r0, #0 - mov r8, r0 - movs r0, #1 - strb r0, [r1] -_081717F8: - movs r0, #4 - bl sub_08171B44 - movs r7, #0 - ldr r2, _0817187C - mov sb, r2 - movs r0, #0x1c - add r0, sb - mov sl, r0 -_0817180A: - movs r2, #0x20 - ldrsh r1, [r6, r2] - movs r0, #0x22 - ldrsh r2, [r6, r0] - ldr r0, _08171880 - mov r3, r8 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _08171866 - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - mov r2, sb - adds r5, r4, r2 - movs r0, #0x18 - strh r0, [r5, #0x2e] - ldr r0, _08171884 - lsls r1, r7, #2 - adds r1, r1, r0 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r2, [r6, #0x20] - adds r0, r0, r2 - strh r0, [r5, #0x32] - movs r0, #1 - ldrsb r0, [r1, r0] - ldrh r2, [r6, #0x22] - adds r0, r0, r2 - strh r0, [r5, #0x36] - movs r0, #2 - ldrsb r0, [r1, r0] - strh r0, [r5, #0x38] - adds r0, r5, #0 - bl InitAnimArcTranslation - add r4, sl - ldr r0, _08171888 - str r0, [r4] - ldr r0, _0817188C - ldrb r1, [r0, #4] - adds r0, r5, #0 - bl StartSpriteAnim -_08171866: - adds r7, #1 - cmp r7, #2 - bls _0817180A - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0817187C: .4byte gUnknown_20205AC -_08171880: .4byte gUnknown_85C630C -_08171884: .4byte gUnknown_85C6144 -_08171888: .4byte sub_08171890 -_0817188C: .4byte gUnknown_85C6270 - thumb_func_end sub_081717D0 - - thumb_func_start sub_08171890 -sub_08171890: @ 0x08171890 - push {r4, lr} - adds r4, r0, #0 - adds r3, r4, #0 - adds r3, #0x3e - ldrb r2, [r3] - lsrs r1, r2, #2 - movs r0, #1 - eors r1, r0 - ands r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - adds r0, r4, #0 - bl TranslateAnimHorizontalArc - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081718C0 - adds r0, r4, #0 - bl DestroySprite -_081718C0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08171890 - - thumb_func_start sub_081718C8 -sub_081718C8: @ 0x081718C8 - push {r4, r5, r6, lr} - sub sp, #4 - adds r4, r0, #0 - movs r1, #1 - bl StartSpriteAnim - adds r0, r4, #0 - movs r1, #0 - bl StartSpriteAffineAnim - ldr r0, _0817197C - str r0, [r4, #0x1c] - ldr r0, _08171980 - ldrh r0, [r0] - bl ItemIdToBallId - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0xb - bgt _0817191A - cmp r5, #0 - blt _0817191A - ldrh r0, [r4, #0x20] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #0x22] - subs r1, #5 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r5, [sp] - movs r2, #1 - movs r3, #0x1c - bl AnimateBallOpenParticles - ldr r0, _08171984 - ldrb r1, [r0] - movs r0, #1 - movs r2, #0xe - adds r3, r5, #0 - bl LaunchBallFadeMonTask -_0817191A: - ldr r6, _08171988 - ldr r5, _0817198C - ldr r4, _08171984 - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #1 - bl StartSpriteAffineAnim - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - bl AnimateSprite - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #0x80 - lsls r1, r1, #5 - strh r1, [r0, #0x30] - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0817197C: .4byte sub_08171990 -_08171980: .4byte gUnknown_2023EAC -_08171984: .4byte gUnknown_20380D7 -_08171988: .4byte gUnknown_20205AC -_0817198C: .4byte gUnknown_2023E88 - thumb_func_end sub_081718C8 - - thumb_func_start sub_08171990 -sub_08171990: @ 0x08171990 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - movs r5, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _081719AE - adds r2, r7, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] -_081719AE: - ldr r4, _081719DC - ldr r3, _081719E0 - ldr r2, _081719E4 - ldrb r0, [r2] - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r4 - adds r0, r1, #0 - adds r0, #0x3f - ldrb r0, [r0] - lsls r0, r0, #0x1a - cmp r0, #0 - bge _081719E8 - adds r0, r1, #0 - movs r1, #0 - bl StartSpriteAffineAnim - movs r5, #1 - b _08171A08 - .align 2, 0 -_081719DC: .4byte gUnknown_20205AC -_081719E0: .4byte gUnknown_2023E88 -_081719E4: .4byte gUnknown_20380D7 -_081719E8: - ldr r6, _08171A74 - adds r0, r6, #0 - ldrh r6, [r1, #0x30] - adds r0, r0, r6 - strh r0, [r1, #0x30] - ldrb r0, [r2] - adds r0, r0, r3 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrh r0, [r1, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - strh r0, [r1, #0x26] -_08171A08: - adds r0, r7, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08171A6E - cmp r5, #0 - beq _08171A6E - ldr r4, _08171A78 - ldr r3, _08171A7C - ldr r2, _08171A80 - ldrb r0, [r2] - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r6, #0 - movs r5, #0 - strh r5, [r0, #0x26] - ldrb r0, [r2] - adds r0, r0, r3 - ldrb r0, [r0] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r4 - ldr r0, _08171A84 - ldr r0, [r0] - ldr r0, [r0, #8] - ldrb r1, [r0, #9] - lsls r1, r1, #0x1e - adds r2, #0x3e - lsrs r1, r1, #0x1f - lsls r1, r1, #2 - ldrb r3, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - strh r5, [r7, #0x2e] - ldr r0, _08171A88 - str r0, [r7, #0x1c] - ldr r0, _08171A8C - strb r6, [r0] - movs r0, #1 - bl UpdateOamPriorityInAllHealthboxes -_08171A6E: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08171A74: .4byte 0xFFFFFEE0 -_08171A78: .4byte gUnknown_20205AC -_08171A7C: .4byte gUnknown_2023E88 -_08171A80: .4byte gUnknown_20380D7 -_08171A84: .4byte gUnknown_2024174 -_08171A88: .4byte sub_081717A4 -_08171A8C: .4byte gUnknown_202415D - thumb_func_end sub_08171990 - - thumb_func_start sub_08171A90 -sub_08171A90: @ 0x08171A90 - push {r4, lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x24] - ldrh r1, [r2, #0x20] - adds r0, r0, r1 - movs r1, #0 - strh r0, [r2, #0x20] - ldrh r0, [r2, #0x26] - ldrh r3, [r2, #0x22] - adds r0, r0, r3 - strh r0, [r2, #0x22] - strh r1, [r2, #0x26] - strh r1, [r2, #0x24] - ldr r4, _08171AC8 - movs r3, #0 - movs r1, #5 - adds r0, r2, #0 - adds r0, #0x38 -_08171AB4: - strh r3, [r0] - subs r0, #2 - subs r1, #1 - cmp r1, #0 - bge _08171AB4 - str r4, [r2, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08171AC8: .4byte sub_08171ACC - thumb_func_end sub_08171A90 - - thumb_func_start sub_08171ACC -sub_08171ACC: @ 0x08171ACC - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x80 - lsls r0, r0, #4 - adds r2, r0, #0 - ldrh r1, [r4, #0x2e] - adds r2, r2, r1 - movs r0, #0xd0 - lsls r0, r0, #3 - adds r3, r0, #0 - ldrh r1, [r4, #0x30] - adds r3, r3, r1 - lsls r1, r3, #0x10 - asrs r1, r1, #0x18 - ldrh r0, [r4, #0x24] - subs r0, r0, r1 - strh r0, [r4, #0x24] - lsls r0, r2, #0x10 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x26] - adds r0, r0, r1 - strh r0, [r4, #0x26] - movs r0, #0xff - ands r2, r0 - strh r2, [r4, #0x2e] - ands r3, r0 - strh r3, [r4, #0x30] - movs r2, #0x22 - ldrsh r0, [r4, r2] - movs r2, #0x26 - ldrsh r1, [r4, r2] - adds r0, r0, r1 - cmp r0, #0xa0 - bgt _08171B22 - movs r1, #0x20 - ldrsh r0, [r4, r1] - movs r2, #0x24 - ldrsh r1, [r4, r2] - adds r0, r0, r1 - movs r1, #8 - rsbs r1, r1, #0 - cmp r0, r1 - bge _08171B36 -_08171B22: - movs r0, #0 - strh r0, [r4, #0x2e] - ldr r0, _08171B3C - str r0, [r4, #0x1c] - ldr r1, _08171B40 - movs r0, #0 - strb r0, [r1] - movs r0, #1 - bl UpdateOamPriorityInAllHealthboxes -_08171B36: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08171B3C: .4byte sub_081717A4 -_08171B40: .4byte gUnknown_202415D - thumb_func_end sub_08171ACC - - thumb_func_start sub_08171B44 -sub_08171B44: @ 0x08171B44 - push {r4, r5, lr} - lsls r0, r0, #0x18 - ldr r1, _08171B70 - lsrs r5, r0, #0x15 - adds r4, r5, r1 - ldrh r0, [r4, #6] - bl GetSpriteTileStartByTag - lsls r0, r0, #0x10 - ldr r1, _08171B74 - cmp r0, r1 - bne _08171B6A - adds r0, r4, #0 - bl LoadCompressedSpriteSheetUsingHeap - ldr r0, _08171B78 - adds r0, r5, r0 - bl LoadCompressedSpritePaletteUsingHeap -_08171B6A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08171B70: .4byte gUnknown_85C6150 -_08171B74: .4byte 0xFFFF0000 -_08171B78: .4byte gUnknown_85C61B0 - thumb_func_end sub_08171B44 - - thumb_func_start AnimateBallOpenParticles -AnimateBallOpenParticles: @ 0x08171B7C - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - adds r6, r0, #0 - mov r8, r1 - mov sb, r2 - mov sl, r3 - ldr r5, [sp, #0x1c] - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov r0, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - mov r1, sb - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sb, r1 - mov r0, sl - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - adds r0, r5, #0 - bl sub_08171B44 - ldr r1, _08171BFC - lsls r0, r5, #2 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #5 - bl CreateTask - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _08171C00 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r6, [r0, #0xa] - mov r1, r8 - strh r1, [r0, #0xc] - mov r1, sb - strh r1, [r0, #0xe] - mov r1, sl - strh r1, [r0, #0x10] - strh r5, [r0, #0x26] - movs r0, #0xf - bl sub_080A306C - adds r0, r4, #0 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08171BFC: .4byte gUnknown_85C627C -_08171C00: .4byte gUnknown_3005B60 - thumb_func_end AnimateBallOpenParticles - - thumb_func_start sub_08171C04 -sub_08171C04: @ 0x08171C04 - push {lr} - ldr r0, _08171C28 - ldr r1, _08171C2C - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08171C22 - ldr r0, _08171C30 - ldr r0, [r0] - ldr r1, [r0, #8] - ldrb r0, [r1, #0xa] - adds r0, #1 - strb r0, [r1, #0xa] -_08171C22: - pop {r0} - bx r0 - .align 2, 0 -_08171C28: .4byte gUnknown_3002360 -_08171C2C: .4byte 0x00000439 -_08171C30: .4byte gUnknown_2024174 - thumb_func_end sub_08171C04 - - thumb_func_start PokeBallOpenParticleAnimation -PokeBallOpenParticleAnimation: @ 0x08171C34 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r1, _08171D10 - lsls r0, r0, #2 - add r0, r8 - lsls r0, r0, #3 - adds r6, r0, r1 - ldrh r0, [r6, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - movs r2, #8 - ldrsh r0, [r6, r2] - adds r2, r1, #0 - cmp r0, #0xf - bgt _08171D2C - ldrb r1, [r6, #0xa] - ldrb r2, [r6, #0xc] - ldrb r4, [r6, #0xe] - mov sb, r4 - ldrb r3, [r6, #0x10] - ldr r4, [sp] - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r4, _08171D14 - adds r0, r0, r4 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - cmp r0, #0x40 - beq _08171CD0 - bl sub_08171C04 - mov r0, sl - lsls r4, r0, #4 - add r4, sl - lsls r4, r4, #2 - ldr r5, _08171D18 - adds r7, r4, r5 - ldr r0, _08171D1C - ldr r1, [sp] - adds r0, r1, r0 - ldrb r1, [r0] - adds r0, r7, #0 - bl StartSpriteAnim - adds r5, #0x1c - adds r4, r4, r5 - ldr r0, _08171D20 - str r0, [r4] - movs r0, #3 - mov r2, sb - ands r2, r0 - lsls r2, r2, #2 - ldrb r1, [r7, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r7, #5] - ldrb r0, [r6, #8] - cmp r0, #7 - bls _08171CCC - subs r0, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_08171CCC: - lsls r0, r0, #5 - strh r0, [r7, #0x2e] -_08171CD0: - ldr r0, _08171D10 - mov r4, r8 - lsls r1, r4, #2 - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r2, #8 - ldrsh r1, [r1, r2] - adds r2, r0, #0 - cmp r1, #0xf - bne _08171D2C - ldr r0, _08171D24 - ldr r4, _08171D28 - adds r0, r0, r4 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08171D06 - ldr r0, _08171D18 - mov r2, sl - lsls r1, r2, #4 - add r1, sl - lsls r1, r1, #2 - adds r1, r1, r0 - movs r0, #1 - strh r0, [r1, #0x3c] -_08171D06: - mov r0, r8 - bl DestroyTask - b _08171D3C - .align 2, 0 -_08171D10: .4byte gUnknown_3005B60 -_08171D14: .4byte gUnknown_85C62AC -_08171D18: .4byte gUnknown_20205AC -_08171D1C: .4byte gUnknown_85C6270 -_08171D20: .4byte PokeBallOpenParticleAnimation_Step1 -_08171D24: .4byte gUnknown_3002360 -_08171D28: .4byte 0x00000439 -_08171D2C: - mov r4, r8 - lsls r0, r4, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrh r1, [r0, #8] - adds r1, #1 - strh r1, [r0, #8] -_08171D3C: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end PokeBallOpenParticleAnimation - - thumb_func_start PokeBallOpenParticleAnimation_Step1 -PokeBallOpenParticleAnimation_Step1: @ 0x08171D4C - push {lr} - adds r1, r0, #0 - ldrh r2, [r1, #0x30] - movs r3, #0x30 - ldrsh r0, [r1, r3] - cmp r0, #0 - bne _08171D64 - ldr r0, _08171D60 - str r0, [r1, #0x1c] - b _08171D68 - .align 2, 0 -_08171D60: .4byte PokeBallOpenParticleAnimation_Step2 -_08171D64: - subs r0, r2, #1 - strh r0, [r1, #0x30] -_08171D68: - pop {r0} - bx r0 - thumb_func_end PokeBallOpenParticleAnimation_Step1 - - thumb_func_start PokeBallOpenParticleAnimation_Step2 -PokeBallOpenParticleAnimation_Step2: @ 0x08171D6C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x30 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, #0x24] - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x30 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x30] - adds r0, #2 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x32 - bne _08171DA0 - adds r0, r4, #0 - bl DestroyBallOpenAnimationParticle -_08171DA0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PokeBallOpenParticleAnimation_Step2 - - thumb_func_start sub_08171DA8 -sub_08171DA8: @ 0x08171DA8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldr r0, _08171E8C - mov r2, sb - lsls r1, r2, #2 - add r1, sb - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldrb r3, [r1, #0xa] - str r3, [sp] - ldrb r0, [r1, #0xc] - str r0, [sp, #4] - ldrb r2, [r1, #0xe] - str r2, [sp, #8] - ldrb r1, [r1, #0x10] - str r1, [sp, #0xc] - movs r7, #0 - ldr r3, _08171E90 - mov sl, r3 - mov r1, r8 - lsls r0, r1, #1 - add r0, r8 - lsls r0, r0, #3 - str r0, [sp, #0x10] -_08171DEE: - ldr r0, _08171E94 - ldr r2, [sp, #0x10] - adds r0, r2, r0 - ldr r1, [sp] - ldr r2, [sp, #4] - ldr r3, [sp, #0xc] - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0x40 - beq _08171E4E - bl sub_08171C04 - lsls r4, r6, #4 - adds r4, r4, r6 - lsls r4, r4, #2 - mov r3, sl - adds r5, r4, r3 - ldr r0, _08171E98 - add r0, r8 - ldrb r1, [r0] - adds r0, r5, #0 - bl StartSpriteAnim - ldr r0, _08171E9C - adds r4, r4, r0 - ldr r0, _08171EA0 - str r0, [r4] - movs r0, #3 - ldr r2, [sp, #8] - ands r2, r0 - lsls r2, r2, #2 - ldrb r0, [r5, #5] - movs r3, #0xd - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #5] - lsls r0, r7, #5 - strh r0, [r5, #0x2e] - movs r0, #0xa - strh r0, [r5, #0x36] - movs r0, #2 - strh r0, [r5, #0x38] - movs r0, #1 - strh r0, [r5, #0x3a] -_08171E4E: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #7 - bls _08171DEE - ldr r0, _08171EA4 - ldr r1, _08171EA8 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08171E76 - ldr r0, _08171E90 - lsls r1, r6, #4 - adds r1, r1, r6 - lsls r1, r1, #2 - adds r1, r1, r0 - movs r0, #1 - strh r0, [r1, #0x3c] -_08171E76: - mov r0, sb - bl DestroyTask - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08171E8C: .4byte gUnknown_3005B60 -_08171E90: .4byte gUnknown_20205AC -_08171E94: .4byte gUnknown_85C62AC -_08171E98: .4byte gUnknown_85C6270 -_08171E9C: .4byte gUnknown_20205C8 -_08171EA0: .4byte FanOutBallOpenParticles_Step1 -_08171EA4: .4byte gUnknown_3002360 -_08171EA8: .4byte 0x00000439 - thumb_func_end sub_08171DA8 - - thumb_func_start DiveBallOpenParticleAnimation -DiveBallOpenParticleAnimation: @ 0x08171EAC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldr r0, _08171F90 - mov r2, sb - lsls r1, r2, #2 - add r1, sb - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldrb r3, [r1, #0xa] - str r3, [sp] - ldrb r0, [r1, #0xc] - str r0, [sp, #4] - ldrb r2, [r1, #0xe] - str r2, [sp, #8] - ldrb r1, [r1, #0x10] - str r1, [sp, #0xc] - movs r7, #0 - ldr r3, _08171F94 - mov sl, r3 - mov r1, r8 - lsls r0, r1, #1 - add r0, r8 - lsls r0, r0, #3 - str r0, [sp, #0x10] -_08171EF2: - ldr r0, _08171F98 - ldr r2, [sp, #0x10] - adds r0, r2, r0 - ldr r1, [sp] - ldr r2, [sp, #4] - ldr r3, [sp, #0xc] - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0x40 - beq _08171F52 - bl sub_08171C04 - lsls r4, r6, #4 - adds r4, r4, r6 - lsls r4, r4, #2 - mov r3, sl - adds r5, r4, r3 - ldr r0, _08171F9C - add r0, r8 - ldrb r1, [r0] - adds r0, r5, #0 - bl StartSpriteAnim - ldr r0, _08171FA0 - adds r4, r4, r0 - ldr r0, _08171FA4 - str r0, [r4] - movs r0, #3 - ldr r2, [sp, #8] - ands r2, r0 - lsls r2, r2, #2 - ldrb r0, [r5, #5] - movs r3, #0xd - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #5] - lsls r0, r7, #5 - strh r0, [r5, #0x2e] - movs r0, #0xa - strh r0, [r5, #0x36] - movs r0, #1 - strh r0, [r5, #0x38] - movs r0, #2 - strh r0, [r5, #0x3a] -_08171F52: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #7 - bls _08171EF2 - ldr r0, _08171FA8 - ldr r1, _08171FAC - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08171F7A - ldr r0, _08171F94 - lsls r1, r6, #4 - adds r1, r1, r6 - lsls r1, r1, #2 - adds r1, r1, r0 - movs r0, #1 - strh r0, [r1, #0x3c] -_08171F7A: - mov r0, sb - bl DestroyTask - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08171F90: .4byte gUnknown_3005B60 -_08171F94: .4byte gUnknown_20205AC -_08171F98: .4byte gUnknown_85C62AC -_08171F9C: .4byte gUnknown_85C6270 -_08171FA0: .4byte gUnknown_20205C8 -_08171FA4: .4byte FanOutBallOpenParticles_Step1 -_08171FA8: .4byte gUnknown_3002360 -_08171FAC: .4byte 0x00000439 - thumb_func_end DiveBallOpenParticleAnimation - - thumb_func_start SafariBallOpenParticleAnimation -SafariBallOpenParticleAnimation: @ 0x08171FB0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldr r1, _08172090 - lsls r0, r0, #2 - add r0, sb - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #0x26] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrb r2, [r0, #0xa] - str r2, [sp] - ldrb r3, [r0, #0xc] - str r3, [sp, #4] - ldrb r2, [r0, #0xe] - str r2, [sp, #8] - ldrb r0, [r0, #0x10] - str r0, [sp, #0xc] - movs r7, #0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - str r0, [sp, #0x10] - ldr r3, _08172094 - mov r8, r3 - ldr r0, _08172098 - adds r1, r1, r0 - mov sl, r1 -_08171FF6: - ldr r0, _0817209C - ldr r1, [sp, #0x10] - adds r0, r1, r0 - ldr r1, [sp] - ldr r2, [sp, #4] - ldr r3, [sp, #0xc] - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0x40 - beq _08172052 - bl sub_08171C04 - lsls r4, r6, #4 - adds r4, r4, r6 - lsls r4, r4, #2 - mov r2, r8 - adds r5, r4, r2 - mov r3, sl - ldrb r1, [r3] - adds r0, r5, #0 - bl StartSpriteAnim - ldr r0, _081720A0 - adds r4, r4, r0 - ldr r0, _081720A4 - str r0, [r4] - movs r0, #3 - ldr r2, [sp, #8] - ands r2, r0 - lsls r2, r2, #2 - ldrb r0, [r5, #5] - movs r3, #0xd - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #5] - lsls r0, r7, #5 - strh r0, [r5, #0x2e] - movs r0, #4 - strh r0, [r5, #0x36] - movs r0, #1 - strh r0, [r5, #0x38] - strh r0, [r5, #0x3a] -_08172052: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #7 - bls _08171FF6 - ldr r0, _081720A8 - ldr r1, _081720AC - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0817207A - ldr r0, _08172094 - lsls r1, r6, #4 - adds r1, r1, r6 - lsls r1, r1, #2 - adds r1, r1, r0 - movs r0, #1 - strh r0, [r1, #0x3c] -_0817207A: - mov r0, sb - bl DestroyTask - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08172090: .4byte gUnknown_3005B60 -_08172094: .4byte gUnknown_20205AC -_08172098: .4byte gUnknown_85C6270 -_0817209C: .4byte gUnknown_85C62AC -_081720A0: .4byte gUnknown_20205C8 -_081720A4: .4byte FanOutBallOpenParticles_Step1 -_081720A8: .4byte gUnknown_3002360 -_081720AC: .4byte 0x00000439 - thumb_func_end SafariBallOpenParticleAnimation - - thumb_func_start UltraBallOpenParticleAnimation -UltraBallOpenParticleAnimation: @ 0x081720B0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldr r0, _08172198 - mov r2, sb - lsls r1, r2, #2 - add r1, sb - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldrb r3, [r1, #0xa] - str r3, [sp] - ldrb r0, [r1, #0xc] - str r0, [sp, #4] - ldrb r2, [r1, #0xe] - str r2, [sp, #8] - ldrb r1, [r1, #0x10] - str r1, [sp, #0xc] - movs r7, #0 - ldr r3, _0817219C - mov sl, r3 - mov r1, r8 - lsls r0, r1, #1 - add r0, r8 - lsls r0, r0, #3 - str r0, [sp, #0x10] -_081720F6: - ldr r0, _081721A0 - ldr r2, [sp, #0x10] - adds r0, r2, r0 - ldr r1, [sp] - ldr r2, [sp, #4] - ldr r3, [sp, #0xc] - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0x40 - beq _0817215A - bl sub_08171C04 - lsls r4, r6, #4 - adds r4, r4, r6 - lsls r4, r4, #2 - mov r3, sl - adds r5, r4, r3 - ldr r0, _081721A4 - add r0, r8 - ldrb r1, [r0] - adds r0, r5, #0 - bl StartSpriteAnim - ldr r0, _081721A8 - adds r4, r4, r0 - ldr r0, _081721AC - str r0, [r4] - movs r0, #3 - ldr r2, [sp, #8] - ands r2, r0 - lsls r2, r2, #2 - ldrb r0, [r5, #5] - movs r3, #0xd - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #5] - lsls r0, r7, #1 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r7 - strh r0, [r5, #0x2e] - movs r0, #5 - strh r0, [r5, #0x36] - movs r0, #1 - strh r0, [r5, #0x38] - strh r0, [r5, #0x3a] -_0817215A: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #9 - bls _081720F6 - ldr r0, _081721B0 - ldr r1, _081721B4 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08172182 - ldr r0, _0817219C - lsls r1, r6, #4 - adds r1, r1, r6 - lsls r1, r1, #2 - adds r1, r1, r0 - movs r0, #1 - strh r0, [r1, #0x3c] -_08172182: - mov r0, sb - bl DestroyTask - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08172198: .4byte gUnknown_3005B60 -_0817219C: .4byte gUnknown_20205AC -_081721A0: .4byte gUnknown_85C62AC -_081721A4: .4byte gUnknown_85C6270 -_081721A8: .4byte gUnknown_20205C8 -_081721AC: .4byte FanOutBallOpenParticles_Step1 -_081721B0: .4byte gUnknown_3002360 -_081721B4: .4byte 0x00000439 - thumb_func_end UltraBallOpenParticleAnimation - - thumb_func_start GreatBallOpenParticleAnimation -GreatBallOpenParticleAnimation: @ 0x081721B8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r1, _081721E4 - lsls r2, r0, #2 - adds r0, r2, r0 - lsls r0, r0, #3 - adds r3, r0, r1 - ldrh r1, [r3, #0x16] - movs r4, #0x16 - ldrsh r0, [r3, r4] - cmp r0, #0 - beq _081721E8 - subs r0, r1, #1 - strh r0, [r3, #0x16] - b _081722BA - .align 2, 0 -_081721E4: .4byte gUnknown_3005B60 -_081721E8: - ldrh r0, [r3, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r3, #0xa] - str r1, [sp] - ldrb r4, [r3, #0xc] - str r4, [sp, #4] - ldrb r1, [r3, #0xe] - str r1, [sp, #8] - ldrb r3, [r3, #0x10] - str r3, [sp, #0xc] - movs r7, #0 - str r2, [sp, #0x14] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #3 - str r1, [sp, #0x10] - ldr r3, _081722CC - mov sb, r3 - ldr r1, _081722D0 - adds r0, r0, r1 - mov sl, r0 -_08172214: - ldr r0, _081722D4 - ldr r4, [sp, #0x10] - adds r0, r4, r0 - ldr r1, [sp] - ldr r2, [sp, #4] - ldr r3, [sp, #0xc] - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0x40 - beq _08172270 - bl sub_08171C04 - lsls r4, r6, #4 - adds r4, r4, r6 - lsls r4, r4, #2 - mov r0, sb - adds r5, r4, r0 - mov r3, sl - ldrb r1, [r3] - adds r0, r5, #0 - bl StartSpriteAnim - ldr r0, _081722D8 - adds r4, r4, r0 - ldr r0, _081722DC - str r0, [r4] - movs r0, #3 - ldr r2, [sp, #8] - ands r2, r0 - lsls r2, r2, #2 - ldrb r0, [r5, #5] - movs r3, #0xd - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #5] - lsls r0, r7, #5 - strh r0, [r5, #0x2e] - movs r0, #8 - strh r0, [r5, #0x36] - movs r0, #2 - strh r0, [r5, #0x38] - strh r0, [r5, #0x3a] -_08172270: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #7 - bls _08172214 - ldr r0, _081722E0 - ldr r1, [sp, #0x14] - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #8 - strh r0, [r1, #0x16] - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - asrs r2, r0, #0x10 - cmp r2, #2 - bne _081722BA - ldr r0, _081722E4 - ldr r4, _081722E8 - adds r0, r0, r4 - ldrb r1, [r0] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _081722B4 - ldr r0, _081722CC - lsls r1, r6, #4 - adds r1, r1, r6 - lsls r1, r1, #2 - adds r1, r1, r0 - movs r0, #1 - strh r0, [r1, #0x3c] -_081722B4: - mov r0, r8 - bl DestroyTask -_081722BA: - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081722CC: .4byte gUnknown_20205AC -_081722D0: .4byte gUnknown_85C6270 -_081722D4: .4byte gUnknown_85C62AC -_081722D8: .4byte gUnknown_20205C8 -_081722DC: .4byte FanOutBallOpenParticles_Step1 -_081722E0: .4byte gUnknown_3005B60 -_081722E4: .4byte gUnknown_3002360 -_081722E8: .4byte 0x00000439 - thumb_func_end GreatBallOpenParticleAnimation - - thumb_func_start FanOutBallOpenParticles_Step1 -FanOutBallOpenParticles_Step1: @ 0x081722EC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x30 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, #0x24] - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x36] - ldrh r1, [r4, #0x2e] - adds r0, r0, r1 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x38] - ldrh r2, [r4, #0x30] - adds r0, r0, r2 - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x3a] - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - ldrh r0, [r4, #0x34] - adds r0, #1 - strh r0, [r4, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x33 - bne _0817233C - adds r0, r4, #0 - bl DestroyBallOpenAnimationParticle -_0817233C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end FanOutBallOpenParticles_Step1 - - thumb_func_start RepeatBallOpenParticleAnimation -RepeatBallOpenParticleAnimation: @ 0x08172344 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldr r1, _08172420 - lsls r0, r0, #2 - add r0, sb - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #0x26] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrb r2, [r0, #0xa] - str r2, [sp] - ldrb r3, [r0, #0xc] - str r3, [sp, #4] - ldrb r2, [r0, #0xe] - str r2, [sp, #8] - ldrb r0, [r0, #0x10] - str r0, [sp, #0xc] - movs r7, #0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - str r0, [sp, #0x10] - ldr r3, _08172424 - mov r8, r3 - ldr r0, _08172428 - adds r1, r1, r0 - mov sl, r1 -_0817238A: - ldr r0, _0817242C - ldr r1, [sp, #0x10] - adds r0, r1, r0 - ldr r1, [sp] - ldr r2, [sp, #4] - ldr r3, [sp, #0xc] - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0x40 - beq _081723E2 - bl sub_08171C04 - lsls r4, r6, #4 - adds r4, r4, r6 - lsls r4, r4, #2 - mov r2, r8 - adds r5, r4, r2 - mov r3, sl - ldrb r1, [r3] - adds r0, r5, #0 - bl StartSpriteAnim - ldr r0, _08172430 - adds r4, r4, r0 - ldr r0, _08172434 - str r0, [r4] - movs r0, #3 - ldr r2, [sp, #8] - ands r2, r0 - lsls r2, r2, #2 - ldrb r0, [r5, #5] - movs r3, #0xd - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #5] - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r0, [r5, #0x2e] -_081723E2: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #0xb - bls _0817238A - ldr r0, _08172438 - ldr r1, _0817243C - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0817240A - ldr r0, _08172424 - lsls r1, r6, #4 - adds r1, r1, r6 - lsls r1, r1, #2 - adds r1, r1, r0 - movs r0, #1 - strh r0, [r1, #0x3c] -_0817240A: - mov r0, sb - bl DestroyTask - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08172420: .4byte gUnknown_3005B60 -_08172424: .4byte gUnknown_20205AC -_08172428: .4byte gUnknown_85C6270 -_0817242C: .4byte gUnknown_85C62AC -_08172430: .4byte gUnknown_20205C8 -_08172434: .4byte RepeatBallOpenParticleAnimation_Step1 -_08172438: .4byte gUnknown_3002360 -_0817243C: .4byte 0x00000439 - thumb_func_end RepeatBallOpenParticleAnimation - - thumb_func_start RepeatBallOpenParticleAnimation_Step1 -RepeatBallOpenParticleAnimation_Step1: @ 0x08172440 - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - movs r2, #0x30 - ldrsh r1, [r5, r2] - bl Sin - strh r0, [r5, #0x24] - movs r0, #0x2e - ldrsh r4, [r5, r0] - movs r2, #0x32 - ldrsh r1, [r5, r2] - adds r0, r4, #0 - bl Sin - adds r1, r0, #0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r4, #0 - bl Cos - strh r0, [r5, #0x26] - ldrh r0, [r5, #0x2e] - adds r0, #6 - movs r1, #0xff - ands r0, r1 - strh r0, [r5, #0x2e] - ldrh r0, [r5, #0x30] - adds r0, #1 - strh r0, [r5, #0x30] - ldrh r0, [r5, #0x32] - adds r0, #1 - strh r0, [r5, #0x32] - ldrh r0, [r5, #0x34] - adds r0, #1 - strh r0, [r5, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x33 - bne _08172498 - adds r0, r5, #0 - bl DestroyBallOpenAnimationParticle -_08172498: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RepeatBallOpenParticleAnimation_Step1 - - thumb_func_start MasterBallOpenParticleAnimation -MasterBallOpenParticleAnimation: @ 0x081724A0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - ldr r0, _08172554 - ldr r2, [sp] - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x26] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldrb r3, [r1, #0xa] - str r3, [sp, #4] - ldrb r0, [r1, #0xc] - str r0, [sp, #8] - ldrb r2, [r1, #0xe] - str r2, [sp, #0xc] - ldrb r1, [r1, #0x10] - str r1, [sp, #0x10] - movs r3, #0 - mov r8, r3 - mov r1, sb - lsls r0, r1, #1 - add r0, sb - lsls r0, r0, #3 - str r0, [sp, #0x14] -_081724E4: - movs r7, #0 - movs r2, #1 - add r2, r8 - mov sl, r2 -_081724EC: - ldr r0, _08172558 - ldr r3, [sp, #0x14] - adds r0, r3, r0 - ldr r1, [sp, #4] - ldr r2, [sp, #8] - ldr r3, [sp, #0x10] - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0x40 - beq _08172574 - bl sub_08171C04 - lsls r4, r6, #4 - adds r4, r4, r6 - lsls r4, r4, #2 - ldr r0, _0817255C - adds r5, r4, r0 - ldr r0, _08172560 - add r0, sb - ldrb r1, [r0] - adds r0, r5, #0 - bl StartSpriteAnim - ldr r1, _08172564 - adds r4, r4, r1 - ldr r0, _08172568 - str r0, [r4] - movs r0, #3 - ldr r1, [sp, #0xc] - ands r1, r0 - lsls r1, r1, #2 - ldrb r0, [r5, #5] - movs r3, #0xd - rsbs r3, r3, #0 - adds r2, r3, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #5] - lsls r0, r7, #5 - strh r0, [r5, #0x2e] - movs r0, #8 - strh r0, [r5, #0x36] - mov r0, r8 - cmp r0, #0 - bne _0817256C - movs r0, #2 - strh r0, [r5, #0x38] - movs r0, #1 - b _08172572 - .align 2, 0 -_08172554: .4byte gUnknown_3005B60 -_08172558: .4byte gUnknown_85C62AC -_0817255C: .4byte gUnknown_20205AC -_08172560: .4byte gUnknown_85C6270 -_08172564: .4byte gUnknown_20205C8 -_08172568: .4byte FanOutBallOpenParticles_Step1 -_0817256C: - movs r0, #1 - strh r0, [r5, #0x38] - movs r0, #2 -_08172572: - strh r0, [r5, #0x3a] -_08172574: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #7 - bls _081724EC - mov r1, sl - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - cmp r0, #1 - bls _081724E4 - ldr r0, _081725C0 - ldr r2, _081725C4 - adds r0, r0, r2 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _081725A8 - ldr r0, _081725C8 - lsls r1, r6, #4 - adds r1, r1, r6 - lsls r1, r1, #2 - adds r1, r1, r0 - movs r0, #1 - strh r0, [r1, #0x3c] -_081725A8: - ldr r0, [sp] - bl DestroyTask - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081725C0: .4byte gUnknown_3002360 -_081725C4: .4byte 0x00000439 -_081725C8: .4byte gUnknown_20205AC - thumb_func_end MasterBallOpenParticleAnimation - - thumb_func_start PremierBallOpenParticleAnimation -PremierBallOpenParticleAnimation: @ 0x081725CC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldr r1, _081726A4 - lsls r0, r0, #2 - add r0, sb - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #0x26] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrb r2, [r0, #0xa] - str r2, [sp] - ldrb r3, [r0, #0xc] - str r3, [sp, #4] - ldrb r2, [r0, #0xe] - str r2, [sp, #8] - ldrb r0, [r0, #0x10] - str r0, [sp, #0xc] - movs r7, #0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - str r0, [sp, #0x10] - ldr r3, _081726A8 - mov r8, r3 - ldr r0, _081726AC - adds r1, r1, r0 - mov sl, r1 -_08172612: - ldr r0, _081726B0 - ldr r1, [sp, #0x10] - adds r0, r1, r0 - ldr r1, [sp] - ldr r2, [sp, #4] - ldr r3, [sp, #0xc] - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0x40 - beq _08172664 - bl sub_08171C04 - lsls r4, r6, #4 - adds r4, r4, r6 - lsls r4, r4, #2 - mov r2, r8 - adds r5, r4, r2 - mov r3, sl - ldrb r1, [r3] - adds r0, r5, #0 - bl StartSpriteAnim - ldr r0, _081726B4 - adds r4, r4, r0 - ldr r0, _081726B8 - str r0, [r4] - movs r0, #3 - ldr r2, [sp, #8] - ands r2, r0 - lsls r2, r2, #2 - ldrb r0, [r5, #5] - movs r3, #0xd - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #5] - lsls r0, r7, #5 - strh r0, [r5, #0x2e] -_08172664: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #7 - bls _08172612 - ldr r0, _081726BC - ldr r1, _081726C0 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0817268C - ldr r0, _081726A8 - lsls r1, r6, #4 - adds r1, r1, r6 - lsls r1, r1, #2 - adds r1, r1, r0 - movs r0, #1 - strh r0, [r1, #0x3c] -_0817268C: - mov r0, sb - bl DestroyTask - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081726A4: .4byte gUnknown_3005B60 -_081726A8: .4byte gUnknown_20205AC -_081726AC: .4byte gUnknown_85C6270 -_081726B0: .4byte gUnknown_85C62AC -_081726B4: .4byte gUnknown_20205C8 -_081726B8: .4byte PremierBallOpenParticleAnimation_Step1 -_081726BC: .4byte gUnknown_3002360 -_081726C0: .4byte 0x00000439 - thumb_func_end PremierBallOpenParticleAnimation - - thumb_func_start PremierBallOpenParticleAnimation_Step1 -PremierBallOpenParticleAnimation_Step1: @ 0x081726C4 - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - movs r2, #0x30 - ldrsh r1, [r5, r2] - bl Sin - strh r0, [r5, #0x24] - movs r0, #0x2e - ldrsh r4, [r5, r0] - ldrh r1, [r5, #0x2e] - movs r0, #0x3f - ands r0, r1 - movs r2, #0x32 - ldrsh r1, [r5, r2] - bl Sin - adds r1, r0, #0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r4, #0 - bl Cos - strh r0, [r5, #0x26] - ldrh r0, [r5, #0x2e] - adds r0, #0xa - movs r1, #0xff - ands r0, r1 - strh r0, [r5, #0x2e] - ldrh r0, [r5, #0x30] - adds r0, #1 - strh r0, [r5, #0x30] - ldrh r0, [r5, #0x32] - adds r0, #1 - strh r0, [r5, #0x32] - ldrh r0, [r5, #0x34] - adds r0, #1 - strh r0, [r5, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x33 - bne _08172720 - adds r0, r5, #0 - bl DestroyBallOpenAnimationParticle -_08172720: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PremierBallOpenParticleAnimation_Step1 - - thumb_func_start DestroyBallOpenAnimationParticle -DestroyBallOpenAnimationParticle: @ 0x08172728 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - ldr r0, _0817274C - ldr r1, _08172750 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08172754 - movs r1, #0x3c - ldrsh r0, [r7, r1] - cmp r0, #1 - bne _081727AE - adds r0, r7, #0 - bl DestroySpriteAndFreeResources - b _081727C6 - .align 2, 0 -_0817274C: .4byte gUnknown_3002360 -_08172750: .4byte 0x00000439 -_08172754: - ldr r2, _08172770 - ldr r0, [r2] - ldr r1, [r0, #8] - ldrb r0, [r1, #0xa] - subs r0, #1 - strb r0, [r1, #0xa] - ldr r0, [r2] - ldr r0, [r0, #8] - ldrb r0, [r0, #0xa] - cmp r0, #0 - bne _081727C0 - movs r4, #0 - ldr r5, _08172774 - b _0817277C - .align 2, 0 -_08172770: .4byte gUnknown_2024174 -_08172774: .4byte gUnknown_85C627C -_08172778: - adds r5, #4 - adds r4, #1 -_0817277C: - cmp r4, #0xb - bgt _0817278E - ldr r0, [r5] - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08172778 -_0817278E: - cmp r4, #0xc - bne _081727AE - movs r6, #0 - ldr r5, _081727B8 - ldr r4, _081727BC -_08172798: - ldrh r0, [r5, #6] - bl FreeSpriteTilesByTag - ldrh r0, [r4, #4] - bl FreeSpritePaletteByTag - adds r5, #8 - adds r4, #8 - adds r6, #1 - cmp r6, #0xb - ble _08172798 -_081727AE: - adds r0, r7, #0 - bl DestroySprite - b _081727C6 - .align 2, 0 -_081727B8: .4byte gUnknown_85C6150 -_081727BC: .4byte gUnknown_85C61B0 -_081727C0: - adds r0, r7, #0 - bl DestroySprite -_081727C6: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end DestroyBallOpenAnimationParticle - - thumb_func_start LaunchBallFadeMonTask -LaunchBallFadeMonTask: @ 0x081727CC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - adds r4, r0, #0 - mov sb, r2 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - lsls r3, r3, #0x18 - lsrs r7, r3, #0x18 - ldr r0, _08172830 - movs r1, #5 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r1, _08172834 - lsls r0, r0, #2 - add r0, r8 - lsls r0, r0, #3 - adds r5, r0, r1 - strh r7, [r5, #0x26] - strh r6, [r5, #0xe] - mov r0, sb - strh r0, [r5, #0x1c] - mov r1, sb - lsrs r0, r1, #0x10 - strh r0, [r5, #0x1e] - cmp r4, #0 - bne _0817283C - lsls r0, r6, #0x14 - movs r2, #0x80 - lsls r2, r2, #0x11 - adds r0, r0, r2 - lsrs r0, r0, #0x10 - ldr r2, _08172838 - lsls r1, r7, #1 - adds r1, r1, r2 - ldrh r3, [r1] - movs r1, #0x10 - movs r2, #0 - bl BlendPalette - movs r0, #1 - strh r0, [r5, #0xa] - b _08172862 - .align 2, 0 -_08172830: .4byte sub_08172894 -_08172834: .4byte gUnknown_3005B60 -_08172838: .4byte gUnknown_85C63CC -_0817283C: - lsls r0, r6, #0x14 - movs r1, #0x80 - lsls r1, r1, #0x11 - adds r0, r0, r1 - lsrs r0, r0, #0x10 - ldr r2, _08172884 - lsls r1, r7, #1 - adds r1, r1, r2 - ldrh r3, [r1] - movs r1, #0x10 - movs r2, #0x10 - bl BlendPalette - movs r0, #0x10 - strh r0, [r5, #8] - ldr r0, _08172888 - strh r0, [r5, #0xa] - ldr r0, _0817288C - str r0, [r5] -_08172862: - ldr r0, _08172890 - str r0, [sp] - mov r0, sb - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - mov r0, r8 - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08172884: .4byte gUnknown_85C63CC -_08172888: .4byte 0x0000FFFF -_0817288C: .4byte sub_08172924 -_08172890: .4byte 0x00007FFF - thumb_func_end LaunchBallFadeMonTask - - thumb_func_start sub_08172894 -sub_08172894: @ 0x08172894 - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - ldr r1, _081728E4 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrh r0, [r4, #0x26] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r2, #0xc - ldrsh r0, [r4, r2] - cmp r0, #0x10 - bgt _081728EC - movs r2, #0xe - ldrsh r0, [r4, r2] - lsls r0, r0, #0x14 - movs r2, #0x80 - lsls r2, r2, #0x11 - adds r0, r0, r2 - lsrs r0, r0, #0x10 - ldrb r2, [r4, #8] - ldr r3, _081728E8 - lsls r1, r1, #1 - adds r1, r1, r3 - ldrh r3, [r1] - movs r1, #0x10 - bl BlendPalette - ldrh r0, [r4, #0xa] - ldrh r1, [r4, #8] - adds r0, r0, r1 - strh r0, [r4, #8] - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - b _08172914 - .align 2, 0 -_081728E4: .4byte gUnknown_3005B60 -_081728E8: .4byte gUnknown_85C63CC -_081728EC: - ldr r0, _0817291C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08172914 - ldrh r0, [r4, #0x1c] - ldrh r1, [r4, #0x1e] - lsls r1, r1, #0x10 - orrs r0, r1 - ldr r1, _08172920 - str r1, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - adds r0, r5, #0 - bl DestroyTask -_08172914: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0817291C: .4byte gUnknown_2037C74 -_08172920: .4byte 0x00007FFF - thumb_func_end sub_08172894 - - thumb_func_start sub_08172924 -sub_08172924: @ 0x08172924 - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _08172964 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0817295C - ldr r0, _08172968 - lsls r4, r2, #2 - adds r4, r4, r2 - lsls r4, r4, #3 - adds r4, r4, r0 - ldrh r0, [r4, #0x1c] - ldrh r1, [r4, #0x1e] - lsls r1, r1, #0x10 - orrs r0, r1 - ldr r1, _0817296C - str r1, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r0, _08172970 - str r0, [r4] -_0817295C: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08172964: .4byte gUnknown_2037C74 -_08172968: .4byte gUnknown_3005B60 -_0817296C: .4byte 0x00007FFF -_08172970: .4byte sub_08172974 - thumb_func_end sub_08172924 - - thumb_func_start sub_08172974 -sub_08172974: @ 0x08172974 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _081729C0 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrh r0, [r4, #0x26] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r3, #0xc - ldrsh r0, [r4, r3] - cmp r0, #0x10 - bgt _081729C8 - movs r2, #0xe - ldrsh r0, [r4, r2] - lsls r0, r0, #0x14 - movs r3, #0x80 - lsls r3, r3, #0x11 - adds r0, r0, r3 - lsrs r0, r0, #0x10 - ldrb r2, [r4, #8] - ldr r3, _081729C4 - lsls r1, r1, #1 - adds r1, r1, r3 - ldrh r3, [r1] - movs r1, #0x10 - bl BlendPalette - ldrh r0, [r4, #0xa] - ldrh r1, [r4, #8] - adds r0, r0, r1 - strh r0, [r4, #8] - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - b _081729CE - .align 2, 0 -_081729C0: .4byte gUnknown_3005B60 -_081729C4: .4byte gUnknown_85C63CC -_081729C8: - adds r0, r2, #0 - bl DestroyTask -_081729CE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08172974 - - thumb_func_start sub_081729D4 -sub_081729D4: @ 0x081729D4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r0, #0 - mov r8, r0 - ldr r0, _08172A08 - ldr r3, _08172A0C - ldrb r2, [r3] - adds r0, r2, r0 - ldrb r6, [r0] - ldr r1, _08172A10 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r5, r0, r1 - movs r1, #0x1c - ldrsh r0, [r5, r1] - cmp r0, #1 - beq _08172AAC - cmp r0, #1 - bgt _08172A14 - cmp r0, #0 - beq _08172A1A - b _08172B6E - .align 2, 0 -_08172A08: .4byte gUnknown_2023E88 -_08172A0C: .4byte gUnknown_20380D6 -_08172A10: .4byte gUnknown_3005B60 -_08172A14: - cmp r0, #2 - beq _08172ABE - b _08172B6E -_08172A1A: - ldr r0, _08172A54 - ldrh r0, [r0] - strh r0, [r5, #0x1e] - movs r2, #0xa0 - lsls r2, r2, #3 - adds r0, r2, #0 - ldrh r4, [r5, #8] - adds r0, r0, r4 - strh r0, [r5, #8] - ldrb r0, [r3] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08172A5C - ldr r2, _08172A58 - lsls r3, r6, #4 - adds r1, r3, r6 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r0, [r5, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - ldrh r4, [r1, #0x24] - adds r0, r0, r4 - strh r0, [r1, #0x24] - adds r4, r3, #0 - b _08172A74 - .align 2, 0 -_08172A54: .4byte gUnknown_20380BE -_08172A58: .4byte gUnknown_20205AC -_08172A5C: - ldr r3, _08172AA4 - lsls r4, r6, #4 - adds r2, r4, r6 - lsls r2, r2, #2 - adds r2, r2, r3 - ldrh r1, [r5, #8] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - ldrh r0, [r2, #0x24] - subs r0, r0, r1 - strh r0, [r2, #0x24] - adds r2, r3, #0 -_08172A74: - ldr r1, _08172AA8 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r3, r0, r1 - ldrb r0, [r3, #8] - strh r0, [r3, #8] - adds r0, r4, r6 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r2, #0x20 - ldrsh r1, [r0, r2] - movs r4, #0x24 - ldrsh r0, [r0, r4] - adds r1, r1, r0 - adds r1, #0x20 - movs r0, #0x98 - lsls r0, r0, #1 - cmp r1, r0 - bls _08172B6E - ldrh r0, [r3, #0x1c] - adds r0, #1 - strh r0, [r3, #0x1c] - b _08172B6E - .align 2, 0 -_08172AA4: .4byte gUnknown_20205AC -_08172AA8: .4byte gUnknown_3005B60 -_08172AAC: - ldrb r1, [r5, #0x1e] - adds r0, r2, #0 - adds r2, r6, #0 - bl LoadBattleMonGfxAndAnimate - ldrh r0, [r5, #0x1c] - adds r0, #1 - strh r0, [r5, #0x1c] - b _08172B6E -_08172ABE: - movs r1, #0xa0 - lsls r1, r1, #3 - adds r0, r1, #0 - ldrh r2, [r5, #8] - adds r0, r0, r2 - strh r0, [r5, #8] - ldrb r0, [r3] - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08172AF4 - ldr r0, _08172AF0 - lsls r3, r6, #4 - adds r2, r3, r6 - lsls r2, r2, #2 - adds r2, r2, r0 - ldrh r1, [r5, #8] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - ldrh r0, [r2, #0x24] - subs r0, r0, r1 - strh r0, [r2, #0x24] - adds r4, r3, #0 - b _08172B0C - .align 2, 0 -_08172AF0: .4byte gUnknown_20205AC -_08172AF4: - ldr r0, _08172B40 - lsls r2, r6, #4 - adds r1, r2, r6 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r0, [r5, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - ldrh r3, [r1, #0x24] - adds r0, r0, r3 - strh r0, [r1, #0x24] - adds r4, r2, #0 -_08172B0C: - ldr r1, _08172B44 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r1, [r0, #8] - strh r1, [r0, #8] - ldr r0, _08172B48 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - beq _08172B4C - ldr r0, _08172B40 - adds r1, r4, r6 - lsls r1, r1, #2 - adds r1, r1, r0 - movs r4, #0x24 - ldrsh r0, [r1, r4] - cmp r0, #0 - bgt _08172B62 - movs r0, #0 - strh r0, [r1, #0x24] - b _08172B68 - .align 2, 0 -_08172B40: .4byte gUnknown_20205AC -_08172B44: .4byte gUnknown_3005B60 -_08172B48: .4byte gUnknown_20380D6 -_08172B4C: - ldr r0, _08172B78 - adds r1, r4, r6 - lsls r1, r1, #2 - adds r1, r1, r0 - movs r3, #0x24 - ldrsh r0, [r1, r3] - cmp r0, #0 - blt _08172B62 - strh r2, [r1, #0x24] - movs r4, #1 - mov r8, r4 -_08172B62: - mov r0, r8 - cmp r0, #0 - beq _08172B6E -_08172B68: - adds r0, r7, #0 - bl DestroyAnimVisualTask -_08172B6E: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08172B78: .4byte gUnknown_20205AC - thumb_func_end sub_081729D4 - - thumb_func_start sub_08172B7C -sub_08172B7C: @ 0x08172B7C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _08172BA0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #0x26 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _08172BF8 - cmp r0, #1 - bgt _08172BA4 - cmp r0, #0 - beq _08172BAA - b _08172C68 - .align 2, 0 -_08172BA0: .4byte gUnknown_3005B60 -_08172BA4: - cmp r0, #2 - beq _08172C32 - b _08172C68 -_08172BAA: - ldr r0, _08172BC4 - ldrb r0, [r0] - bl GetBattlerSpriteBGPriorityRank - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08172BCC - ldr r1, _08172BC8 - movs r0, #0x50 - bl SetGpuReg - b _08172BD4 - .align 2, 0 -_08172BC4: .4byte gUnknown_20380D6 -_08172BC8: .4byte 0x00003F42 -_08172BCC: - ldr r1, _08172BF0 - movs r0, #0x50 - bl SetGpuReg -_08172BD4: - movs r0, #0x52 - movs r1, #0x10 - bl SetGpuReg - ldr r0, _08172BF4 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x26] - adds r0, #1 - strh r0, [r1, #0x26] - b _08172C68 - .align 2, 0 -_08172BF0: .4byte 0x00003F44 -_08172BF4: .4byte gUnknown_3005B60 -_08172BF8: - ldrh r0, [r4, #0xa] - adds r1, r0, #1 - strh r1, [r4, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - ble _08172C68 - movs r0, #0 - strh r0, [r4, #0xa] - ldrh r2, [r4, #8] - adds r2, #1 - strh r2, [r4, #8] - lsls r1, r2, #8 - movs r0, #0x10 - subs r0, r0, r2 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0x10 - bne _08172C68 - ldrh r0, [r4, #0x26] - adds r0, #1 - strh r0, [r4, #0x26] - b _08172C68 -_08172C32: - ldr r1, _08172C70 - ldr r4, _08172C74 - ldrb r0, [r4] - adds r0, r0, r1 - ldrb r1, [r0] - ldr r2, _08172C78 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x11 - ldr r0, _08172C7C - adds r1, r1, r0 - movs r2, #0x80 - lsls r2, r2, #4 - movs r0, #0 - movs r3, #1 - bl RequestDma3Fill - ldrb r0, [r4] - bl ClearBehindSubstituteBit - adds r0, r5, #0 - bl DestroyAnimVisualTask -_08172C68: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08172C70: .4byte gUnknown_2023E88 -_08172C74: .4byte gUnknown_20380D6 -_08172C78: .4byte gUnknown_20205AC -_08172C7C: .4byte 0x06010000 - thumb_func_end sub_08172B7C - - thumb_func_start AnimTask_IsAttackerBehindSubstitute -AnimTask_IsAttackerBehindSubstitute: @ 0x08172C80 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _08172CA8 - ldr r1, _08172CAC - ldr r2, [r1] - ldr r1, _08172CB0 - ldrb r1, [r1] - ldr r2, [r2] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1f - strh r1, [r3, #0xe] - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_08172CA8: .4byte gUnknown_20380BE -_08172CAC: .4byte gUnknown_2024174 -_08172CB0: .4byte gUnknown_20380D6 - thumb_func_end AnimTask_IsAttackerBehindSubstitute - - thumb_func_start AnimTask_TargetToEffectBattler -AnimTask_TargetToEffectBattler: @ 0x08172CB4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08172CCC - ldr r1, _08172CD0 - ldrb r1, [r1] - strb r1, [r2] - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_08172CCC: .4byte gUnknown_20380D7 -_08172CD0: .4byte gUnknown_2023EB2 - thumb_func_end AnimTask_TargetToEffectBattler - - thumb_func_start sub_08172CD4 -sub_08172CD4: @ 0x08172CD4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r0, #0 - mov r8, r0 - ldr r0, _08172D90 - ldr r0, [r0] - ldr r1, [r0, #4] - lsls r0, r6, #1 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0] - adds r0, r4, #0 - movs r1, #1 - bl GetMonData - adds r5, r0, #0 - adds r0, r4, #0 - movs r1, #0 - bl GetMonData - adds r4, r0, #0 - adds r0, r6, #0 - bl IsBattlerSpriteVisible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08172DAC - lsrs r0, r5, #0x10 - ldr r7, _08172D94 - ands r5, r7 - eors r0, r5 - lsrs r1, r4, #0x10 - eors r0, r1 - ands r4, r7 - eors r0, r4 - cmp r0, #7 - bhi _08172D32 - movs r0, #1 - mov r8, r0 -_08172D32: - mov r0, r8 - cmp r0, #0 - beq _08172DAC - ldr r0, _08172D98 - bl GetSpriteTileStartByTag - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r7 - bne _08172D52 - ldr r0, _08172D9C - bl LoadCompressedSpriteSheetUsingHeap - ldr r0, _08172DA0 - bl LoadCompressedSpritePaletteUsingHeap -_08172D52: - ldr r5, _08172DA4 - adds r0, r5, #0 - movs r1, #0xa - bl CreateTask - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - movs r1, #0xa - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _08172DA8 - lsls r2, r4, #2 - adds r2, r2, r4 - lsls r2, r2, #3 - adds r2, r2, r3 - movs r4, #0 - strh r6, [r2, #8] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r3 - strh r6, [r1, #8] - strh r4, [r2, #0xa] - movs r0, #1 - strh r0, [r1, #0xa] - b _08172DC2 - .align 2, 0 -_08172D90: .4byte gUnknown_2024174 -_08172D94: .4byte 0x0000FFFF -_08172D98: .4byte 0x000027F9 -_08172D9C: .4byte gUnknown_84FD998 -_08172DA0: .4byte gUnknown_84FE2A0 -_08172DA4: .4byte sub_08172DD0 -_08172DA8: .4byte gUnknown_3005B60 -_08172DAC: - ldr r0, _08172DCC - ldr r0, [r0] - ldr r1, [r0, #4] - lsls r0, r6, #1 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #1] - movs r2, #1 - orrs r1, r2 - strb r1, [r0, #1] -_08172DC2: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08172DCC: .4byte gUnknown_2024174 - thumb_func_end sub_08172CD4 - - thumb_func_start sub_08172DD0 -sub_08172DD0: @ 0x08172DD0 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r1, _08172DF8 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrh r1, [r4, #0x22] - movs r2, #0x22 - ldrsh r0, [r4, r2] - cmp r0, #0x3b - bgt _08172DFC - adds r0, r1, #1 - strh r0, [r4, #0x22] - b _08172F74 - .align 2, 0 -_08172DF8: .4byte gUnknown_3005B60 -_08172DFC: - ldr r0, _08172E50 - ldr r0, [r0] - ldr r0, [r0, #8] - ldrb r0, [r0, #0xa] - cmp r0, #0 - beq _08172E0A - b _08172F74 -_08172E0A: - ldrh r0, [r4, #0x1c] - adds r1, r0, #1 - strh r1, [r4, #0x1c] - lsls r0, r0, #0x10 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r0 - cmp r1, #0 - beq _08172E1E - b _08172F74 -_08172E1E: - ldrb r0, [r4, #8] - mov r8, r0 - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - mov r0, r8 - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - movs r1, #0x1e - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08172E58 - ldr r0, _08172E54 - adds r1, r5, #0 - movs r3, #5 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - b _08172EBA - .align 2, 0 -_08172E50: .4byte gUnknown_2024174 -_08172E54: .4byte gUnknown_85AD190 -_08172E58: - cmp r0, #0 - blt _08172E8C - cmp r0, #3 - bgt _08172E8C - ldr r0, _08172E84 - adds r1, r5, #0 - movs r3, #5 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _08172E88 - lsls r2, r5, #4 - adds r2, r2, r5 - lsls r2, r2, #2 - adds r2, r2, r0 - ldrh r3, [r2, #4] - lsls r1, r3, #0x16 - lsrs r1, r1, #0x16 - adds r1, #4 - b _08172EAC - .align 2, 0 -_08172E84: .4byte gUnknown_85AD1A8 -_08172E88: .4byte gUnknown_20205AC -_08172E8C: - ldr r0, _08172EE4 - adds r1, r5, #0 - movs r3, #5 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _08172EE8 - lsls r2, r5, #4 - adds r2, r2, r5 - lsls r2, r2, #2 - adds r2, r2, r0 - ldrh r3, [r2, #4] - lsls r1, r3, #0x16 - lsrs r1, r1, #0x16 - adds r1, #5 -_08172EAC: - ldr r4, _08172EEC - adds r0, r4, #0 - ands r1, r0 - ldr r0, _08172EF0 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, #4] -_08172EBA: - ldr r2, _08172EF4 - lsls r1, r7, #2 - adds r0, r1, r7 - lsls r0, r0, #3 - adds r6, r0, r2 - movs r2, #0xa - ldrsh r0, [r6, r2] - mov sb, r1 - cmp r0, #0 - bne _08172EFC - ldr r1, _08172EE8 - lsls r2, r5, #4 - adds r0, r2, r5 - lsls r0, r0, #2 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _08172EF8 - str r1, [r0] - adds r4, r2, #0 - b _08172F44 - .align 2, 0 -_08172EE4: .4byte gUnknown_85AD1A8 -_08172EE8: .4byte gUnknown_20205AC -_08172EEC: .4byte 0x000003FF -_08172EF0: .4byte 0xFFFFFC00 -_08172EF4: .4byte gUnknown_3005B60 -_08172EF8: .4byte sub_08172FE0 -_08172EFC: - ldr r3, _08172F80 - lsls r4, r5, #4 - adds r1, r4, r5 - lsls r1, r1, #2 - adds r0, r3, #0 - adds r0, #0x1c - adds r0, r1, r0 - ldr r2, _08172F84 - str r2, [r0] - adds r1, r1, r3 - ldr r0, _08172F88 - strh r0, [r1, #0x24] - movs r0, #0x20 - strh r0, [r1, #0x26] - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - movs r1, #0x1e - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _08172F44 - mov r0, r8 - bl GetBattlerSide - lsls r0, r0, #0x18 - movs r1, #0x3f - cmp r0, #0 - bne _08172F3A - movs r1, #0xc0 -_08172F3A: - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r0, #0x66 - bl PlaySE12WithPanning -_08172F44: - ldr r1, _08172F80 - adds r0, r4, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - strh r7, [r0, #0x2e] - ldr r1, _08172F8C - mov r2, sb - adds r0, r2, r7 - lsls r0, r0, #3 - adds r1, r0, r1 - ldrh r0, [r1, #0x1e] - adds r0, #1 - strh r0, [r1, #0x1e] - cmp r5, #0x40 - beq _08172F68 - ldrh r0, [r1, #0x20] - adds r0, #1 - strh r0, [r1, #0x20] -_08172F68: - movs r4, #0x1e - ldrsh r0, [r1, r4] - cmp r0, #5 - bne _08172F74 - ldr r0, _08172F90 - str r0, [r1] -_08172F74: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08172F80: .4byte gUnknown_20205AC -_08172F84: .4byte sub_08173034 -_08172F88: .4byte 0x0000FFE0 -_08172F8C: .4byte gUnknown_3005B60 -_08172F90: .4byte sub_08172F94 - thumb_func_end sub_08172DD0 - - thumb_func_start sub_08172F94 -sub_08172F94: @ 0x08172F94 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r3, r0, #0 - ldr r1, _08172FD8 - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #3 - adds r1, r0, r1 - movs r2, #0x20 - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _08172FD4 - movs r2, #0xa - ldrsh r0, [r1, r2] - cmp r0, #1 - bne _08172FCE - ldrb r1, [r1, #8] - ldr r0, _08172FDC - ldr r0, [r0] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #1] - movs r2, #1 - orrs r1, r2 - strb r1, [r0, #1] -_08172FCE: - adds r0, r3, #0 - bl DestroyTask -_08172FD4: - pop {r0} - bx r0 - .align 2, 0 -_08172FD8: .4byte gUnknown_3005B60 -_08172FDC: .4byte gUnknown_2024174 - thumb_func_end sub_08172F94 - - thumb_func_start sub_08172FE0 -sub_08172FE0: @ 0x08172FE0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x30 - ldrsh r0, [r4, r1] - movs r1, #0x18 - bl Sin - strh r0, [r4, #0x24] - movs r1, #0x30 - ldrsh r0, [r4, r1] - movs r1, #0x18 - bl Cos - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x30] - adds r0, #0xc - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xff - ble _0817302A - ldr r2, _08173030 - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrh r1, [r0, #0x20] - subs r1, #1 - strh r1, [r0, #0x20] - adds r0, r4, #0 - bl FreeSpriteOamMatrix - adds r0, r4, #0 - bl DestroySprite -_0817302A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08173030: .4byte gUnknown_3005B60 - thumb_func_end sub_08172FE0 - - thumb_func_start sub_08173034 -sub_08173034: @ 0x08173034 - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x30] - movs r2, #0x30 - ldrsh r0, [r4, r2] - cmp r0, #3 - bgt _08173048 - adds r0, r1, #1 - strh r0, [r4, #0x30] - b _0817308A -_08173048: - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldrh r1, [r4, #0x24] - adds r1, #5 - strh r1, [r4, #0x24] - ldrh r0, [r4, #0x26] - subs r0, #5 - strh r0, [r4, #0x26] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0x20 - ble _0817308A - ldr r2, _08173090 - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrh r1, [r0, #0x20] - subs r1, #1 - strh r1, [r0, #0x20] - adds r0, r4, #0 - bl FreeSpriteOamMatrix - adds r0, r4, #0 - bl DestroySprite -_0817308A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08173090: .4byte gUnknown_3005B60 - thumb_func_end sub_08173034 - - thumb_func_start sub_08173094 -sub_08173094: @ 0x08173094 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081730BC - bl LoadCompressedSpriteSheetUsingHeap - ldr r0, _081730C0 - bl LoadCompressedSpritePaletteUsingHeap - ldr r0, _081730C4 - bl IndexOfSpritePaletteTag - adds r0, r4, #0 - bl DestroyAnimVisualTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081730BC: .4byte gUnknown_84FDAB8 -_081730C0: .4byte gUnknown_84FE3C0 -_081730C4: .4byte 0x0000281D - thumb_func_end sub_08173094 - - thumb_func_start AnimTask_FreePokeblockGfx -AnimTask_FreePokeblockGfx: @ 0x081730C8 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r5, _081730EC - adds r0, r5, #0 - bl FreeSpriteTilesByTag - adds r0, r5, #0 - bl FreeSpritePaletteByTag - adds r0, r4, #0 - bl DestroyAnimVisualTask - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081730EC: .4byte 0x0000281D - thumb_func_end AnimTask_FreePokeblockGfx - - thumb_func_start sub_081730F0 -sub_081730F0: @ 0x081730F0 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0 - bl InitSpritePosToAnimAttacker - movs r0, #0x1e - strh r0, [r4, #0x2e] - movs r0, #1 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - ldr r5, _08173164 - lsrs r0, r0, #0x18 - ldrh r1, [r5, #4] - adds r0, r0, r1 - strh r0, [r4, #0x32] - movs r0, #1 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - bl GetBattlerSpriteCoord - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r5, [r5, #6] - adds r0, r0, r5 - strh r0, [r4, #0x36] - ldr r0, _08173168 - strh r0, [r4, #0x38] - adds r0, r4, #0 - bl InitAnimArcTranslation - ldr r2, _0817316C - ldr r1, _08173170 - ldr r0, _08173174 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, _08173178 - str r1, [r0] - ldr r0, _0817317C - str r0, [r4, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08173164: .4byte gUnknown_20380BE -_08173168: .4byte 0x0000FFE0 -_0817316C: .4byte gUnknown_20205AC -_08173170: .4byte gUnknown_2023E88 -_08173174: .4byte gUnknown_20380D6 -_08173178: .4byte sub_08039AC8 -_0817317C: .4byte sub_08173180 - thumb_func_end sub_081730F0 - - thumb_func_start sub_08173180 -sub_08173180: @ 0x08173180 - push {lr} - adds r3, r0, #0 - ldr r2, _081731A8 - ldr r1, _081731AC - ldr r0, _081731B0 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x2b - ldrb r0, [r0] - cmp r0, #1 - bne _081731A4 - ldr r0, _081731B4 - str r0, [r3, #0x1c] -_081731A4: - pop {r0} - bx r0 - .align 2, 0 -_081731A8: .4byte gUnknown_20205AC -_081731AC: .4byte gUnknown_2023E88 -_081731B0: .4byte gUnknown_20380D6 -_081731B4: .4byte sub_081731B8 - thumb_func_end sub_08173180 - - thumb_func_start sub_081731B8 -sub_081731B8: @ 0x081731B8 - push {r4, lr} - adds r4, r0, #0 - bl TranslateAnimHorizontalArc - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081731DA - movs r0, #0 - strh r0, [r4, #0x2e] - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _081731E0 - str r0, [r4, #0x1c] -_081731DA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081731E0: .4byte sub_081731E4 - thumb_func_end sub_081731B8 - - thumb_func_start sub_081731E4 -sub_081731E4: @ 0x081731E4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08173234 - ldr r3, _08173238 - ldr r2, _0817323C - ldrb r0, [r2] - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3f - ldrb r0, [r0] - lsls r0, r0, #0x1b - cmp r0, #0 - bge _0817322C - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - cmp r0, #0 - ble _0817322C - ldrb r0, [r2] - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0 - bl StartSpriteAnim - adds r0, r4, #0 - bl DestroyAnimSprite -_0817322C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08173234: .4byte gUnknown_20205AC -_08173238: .4byte gUnknown_2023E88 -_0817323C: .4byte gUnknown_20380D6 - thumb_func_end sub_081731E4 - - thumb_func_start sub_08173240 -sub_08173240: @ 0x08173240 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _08173258 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _0817325C - cmp r0, #1 - beq _08173270 - b _08173284 - .align 2, 0 -_08173258: .4byte gUnknown_20380BE -_0817325C: - movs r0, #0 - bl GetBattlerAtPosition - ldr r1, _0817326C - strb r0, [r1] - movs r0, #1 - b _0817327C - .align 2, 0 -_0817326C: .4byte gUnknown_20380D6 -_08173270: - movs r0, #1 - bl GetBattlerAtPosition - ldr r1, _08173290 - strb r0, [r1] - movs r0, #0 -_0817327C: - bl GetBattlerAtPosition - ldr r1, _08173294 - strb r0, [r1] -_08173284: - adds r0, r4, #0 - bl DestroyAnimVisualTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08173290: .4byte gUnknown_20380D6 -_08173294: .4byte gUnknown_20380D7 - thumb_func_end sub_08173240 - - thumb_func_start AnimTask_GetTrappedMoveAnimId -AnimTask_GetTrappedMoveAnimId: @ 0x08173298 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _081732B0 - ldr r0, [r0] - ldr r0, [r0, #8] - ldrh r1, [r0] - cmp r1, #0x53 - bne _081732B8 - ldr r1, _081732B4 - movs r0, #1 - b _081732F0 - .align 2, 0 -_081732B0: .4byte gUnknown_2024174 -_081732B4: .4byte gUnknown_20380BE -_081732B8: - cmp r1, #0xfa - bne _081732C8 - ldr r1, _081732C4 - movs r0, #2 - b _081732F0 - .align 2, 0 -_081732C4: .4byte gUnknown_20380BE -_081732C8: - cmp r1, #0x80 - bne _081732D8 - ldr r1, _081732D4 - movs r0, #3 - b _081732F0 - .align 2, 0 -_081732D4: .4byte gUnknown_20380BE -_081732D8: - movs r0, #0xa4 - lsls r0, r0, #1 - cmp r1, r0 - bne _081732EC - ldr r1, _081732E8 - movs r0, #4 - b _081732F0 - .align 2, 0 -_081732E8: .4byte gUnknown_20380BE -_081732EC: - ldr r1, _081732FC - movs r0, #0 -_081732F0: - strh r0, [r1] - adds r0, r2, #0 - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_081732FC: .4byte gUnknown_20380BE - thumb_func_end AnimTask_GetTrappedMoveAnimId - - thumb_func_start AnimTask_GetBattlersFromArg -AnimTask_GetBattlersFromArg: @ 0x08173300 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _08173324 - ldr r1, _08173328 - ldr r2, [r1] - ldr r1, [r2, #8] - ldrh r1, [r1] - strb r1, [r3] - ldr r3, _0817332C - ldr r1, [r2, #8] - ldrh r1, [r1] - lsrs r1, r1, #8 - strb r1, [r3] - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_08173324: .4byte gUnknown_20380D6 -_08173328: .4byte gUnknown_2024174 -_0817332C: .4byte gUnknown_20380D7 - thumb_func_end AnimTask_GetBattlersFromArg - - thumb_func_start VBlankCB_HallOfFame -VBlankCB_HallOfFame: @ 0x08173330 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end VBlankCB_HallOfFame - - thumb_func_start CB2_HallOfFame -CB2_HallOfFame: @ 0x08173344 - push {lr} - bl RunTasks - bl sub_08004630 - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CB2_HallOfFame - - thumb_func_start InitHallOfFameScreen -InitHallOfFameScreen: @ 0x08173360 - push {r4, lr} - sub sp, #4 - ldr r0, _08173380 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #4 - bls _08173374 - b _0817346C -_08173374: - lsls r0, r0, #2 - ldr r1, _08173384 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08173380: .4byte gUnknown_3002360 -_08173384: .4byte _08173388 -_08173388: @ jump table - .4byte _0817339C @ case 0 - .4byte _081733CC @ case 1 - .4byte _081733D2 @ case 2 - .4byte _08173404 @ case 3 - .4byte _08173440 @ case 4 -_0817339C: - movs r0, #0 - bl SetVBlankCallback - bl ClearVramOamPltt_LoadHofPal - ldr r4, _081733C0 - ldr r0, _081733C4 - bl AllocZeroed - str r0, [r4] - ldr r0, _081733C8 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - movs r1, #1 - strb r1, [r0] - b _0817346C - .align 2, 0 -_081733C0: .4byte gUnknown_203B9A8 -_081733C4: .4byte 0x00002014 -_081733C8: .4byte gUnknown_3002360 -_081733CC: - bl sub_08174E74 - b _08173426 -_081733D2: - ldr r1, _081733FC - movs r0, #0x50 - bl SetGpuReg - movs r1, #0xe2 - lsls r1, r1, #3 - movs r0, #0x52 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - bl sub_08174EB0 - ldr r0, _08173400 - ldr r1, [r0] - movs r0, #0 - strh r0, [r1] - b _08173426 - .align 2, 0 -_081733FC: .4byte 0x00003F42 -_08173400: .4byte gUnknown_203B9A8 -_08173404: - bl sub_08174F28 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _0817346C - ldr r0, _08173438 - bl SetVBlankCallback - movs r0, #1 - rsbs r0, r0, #0 - str r4, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade -_08173426: - ldr r1, _0817343C - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0817346C - .align 2, 0 -_08173438: .4byte VBlankCB_HallOfFame -_0817343C: .4byte gUnknown_3002360 -_08173440: - bl UpdatePaletteFade - ldr r0, _08173464 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0817346C - ldr r0, _08173468 - bl SetMainCallback2 - movs r0, #0xda - lsls r0, r0, #1 - bl PlayBGM - movs r0, #0 - b _0817346E - .align 2, 0 -_08173464: .4byte gUnknown_2037C74 -_08173468: .4byte CB2_HallOfFame -_0817346C: - movs r0, #1 -_0817346E: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end InitHallOfFameScreen - - thumb_func_start CB2_DoHallOfFameScreen -CB2_DoHallOfFameScreen: @ 0x08173478 - push {r4, lr} - bl InitHallOfFameScreen - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _081734A8 - ldr r0, _081734B0 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _081734B4 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #8] - ldr r4, _081734B8 - movs r0, #0x78 - bl AllocZeroed - str r0, [r4] -_081734A8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081734B0: .4byte Task_Hof_InitMonData -_081734B4: .4byte gUnknown_3005B60 -_081734B8: .4byte gUnknown_203B9A4 - thumb_func_end CB2_DoHallOfFameScreen - - thumb_func_start CB2_DoHallOfFameScreenDontSaveData -CB2_DoHallOfFameScreenDontSaveData: @ 0x081734BC - push {r4, lr} - bl InitHallOfFameScreen - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081734EC - ldr r0, _081734F4 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _081734F8 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r0, #1 - strh r0, [r1, #8] - ldr r4, _081734FC - movs r0, #0x78 - bl AllocZeroed - str r0, [r4] -_081734EC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081734F4: .4byte Task_Hof_InitMonData -_081734F8: .4byte gUnknown_3005B60 -_081734FC: .4byte gUnknown_203B9A4 - thumb_func_end CB2_DoHallOfFameScreenDontSaveData - - thumb_func_start Task_Hof_InitMonData -Task_Hof_InitMonData: @ 0x08173500 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r1, _081735DC - lsls r0, r0, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #0xc] - movs r7, #0 - ldr r0, _081735E0 - mov sb, r0 -_08173524: - movs r0, #0x64 - adds r1, r7, #0 - muls r1, r0, r1 - ldr r0, _081735E4 - adds r6, r1, r0 - adds r0, r6, #0 - movs r1, #0xb - bl GetMonData - adds r5, r0, #0 - cmp r5, #0 - beq _081735F0 - adds r0, r6, #0 - movs r1, #0x41 - bl GetMonData - mov r1, sb - ldr r3, [r1] - lsls r4, r7, #2 - adds r4, r4, r7 - lsls r4, r4, #2 - adds r3, r3, r4 - ldr r2, _081735E8 - adds r1, r2, #0 - ands r0, r1 - ldrh r1, [r3, #8] - ldr r5, _081735EC - adds r2, r5, #0 - ands r1, r2 - orrs r1, r0 - strh r1, [r3, #8] - adds r0, r6, #0 - movs r1, #1 - bl GetMonData - mov r2, sb - ldr r1, [r2] - adds r1, r1, r4 - str r0, [r1] - adds r0, r6, #0 - movs r1, #0 - bl GetMonData - mov r5, sb - ldr r1, [r5] - adds r1, #4 - adds r1, r1, r4 - str r0, [r1] - adds r0, r6, #0 - movs r1, #0x38 - bl GetMonData - ldr r2, [r5] - adds r2, r2, r4 - lsls r0, r0, #1 - ldrb r3, [r2, #9] - movs r1, #1 - ands r1, r3 - orrs r1, r0 - strb r1, [r2, #9] - adds r0, r6, #0 - movs r1, #2 - mov r2, sp - bl GetMonData - movs r2, #0 - mov r6, r8 - lsls r5, r6, #2 - ldr r3, _081735E0 -_081735AE: - ldr r0, [r3] - adds r1, r2, r4 - adds r0, #0xa - adds r0, r0, r1 - mov r6, sp - adds r1, r6, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #9 - bls _081735AE - ldr r0, _081735DC - mov r2, r8 - adds r1, r5, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0xc] - adds r0, #1 - strh r0, [r1, #0xc] - b _08173624 - .align 2, 0 -_081735DC: .4byte gUnknown_3005B60 -_081735E0: .4byte gUnknown_203B9A4 -_081735E4: .4byte gUnknown_2024190 -_081735E8: .4byte 0x000001FF -_081735EC: .4byte 0xFFFFFE00 -_081735F0: - mov r6, sb - ldr r3, [r6] - lsls r2, r7, #2 - adds r2, r2, r7 - lsls r2, r2, #2 - adds r4, r3, r2 - ldrh r0, [r4, #8] - ldr r6, _08173678 - adds r1, r6, #0 - ands r0, r1 - strh r0, [r4, #8] - str r5, [r4] - adds r3, #4 - adds r3, r3, r2 - str r5, [r3] - ldrb r1, [r4, #9] - movs r0, #1 - ands r0, r1 - strb r0, [r4, #9] - mov r1, sb - ldr r0, [r1] - adds r0, r0, r2 - movs r1, #0xff - strb r1, [r0, #0xa] - mov r2, r8 - lsls r5, r2, #2 -_08173624: - adds r0, r7, #1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - cmp r7, #5 - bhi _08173630 - b _08173524 -_08173630: - ldr r0, _0817367C - movs r3, #0 - str r3, [r0] - ldr r4, _08173680 - mov r6, r8 - adds r1, r5, r6 - lsls r1, r1, #3 - adds r2, r1, r4 - strh r3, [r2, #0xa] - movs r0, #0xff - strh r0, [r2, #0x10] - movs r7, #0 - adds r3, r4, #0 - adds r3, #8 - movs r2, #0xff -_0817364E: - adds r0, r7, #5 - lsls r0, r0, #1 - adds r0, r0, r1 - adds r0, r0, r3 - strh r2, [r0] - adds r0, r7, #1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - cmp r7, #5 - bls _0817364E - mov r1, r8 - adds r0, r5, r1 - lsls r0, r0, #3 - adds r1, r0, r4 - movs r2, #8 - ldrsh r0, [r1, r2] - cmp r0, #0 - beq _08173688 - ldr r0, _08173684 - b _0817368A - .align 2, 0 -_08173678: .4byte 0xFFFFFE00 -_0817367C: .4byte gUnknown_203B9A0 -_08173680: .4byte gUnknown_3005B60 -_08173684: .4byte sub_08173870 -_08173688: - ldr r0, _0817369C -_0817368A: - str r0, [r1] - add sp, #0xc - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0817369C: .4byte Task_Hof_InitTeamSaveData - thumb_func_end Task_Hof_InitMonData - - thumb_func_start Task_Hof_InitTeamSaveData -Task_Hof_InitTeamSaveData: @ 0x081736A0 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldr r7, _081736C8 - ldr r0, _081736CC - ldrb r0, [r0] - cmp r0, #0 - bne _081736D0 - movs r2, #0x80 - lsls r2, r2, #6 - adds r0, r7, #0 - movs r1, #0 - bl memset - b _081736EA - .align 2, 0 -_081736C8: .4byte gUnknown_201C000 -_081736CC: .4byte gUnknown_203B9B0 -_081736D0: - movs r0, #3 - bl Save_LoadGameData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081736EA - movs r2, #0x80 - lsls r2, r2, #6 - adds r0, r7, #0 - movs r1, #0 - bl memset -_081736EA: - movs r5, #0 - ldrh r1, [r7, #8] - ldr r2, _08173790 - adds r0, r2, #0 - ands r0, r1 - mov r1, sb - lsls r1, r1, #2 - mov r8, r1 - cmp r0, #0 - beq _08173714 -_081736FE: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r7, #0x78 - cmp r5, #0x31 - bhi _08173718 - ldrh r1, [r7, #8] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _081736FE -_08173714: - cmp r5, #0x31 - bls _0817373A -_08173718: - ldr r4, _08173794 - adds r6, r4, #0 - adds r4, #0x78 - movs r5, #0 - subs r7, #0x78 -_08173722: - adds r0, r6, #0 - adds r1, r4, #0 - movs r2, #0x78 - bl memcpy - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r6, #0x78 - adds r4, #0x78 - cmp r5, #0x30 - bls _08173722 -_0817373A: - ldr r0, _08173798 - ldr r1, [r0] - adds r0, r7, #0 - movs r2, #0x78 - bl memcpy - movs r0, #0 - movs r1, #0 - bl sub_08196FB8 - ldr r2, _0817379C - movs r0, #0 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - movs r0, #3 - str r0, [sp, #0xc] - movs r0, #0 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized2 - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - ldr r1, _081737A0 - mov r0, r8 - add r0, sb - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081737A4 - str r1, [r0] - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08173790: .4byte 0x000001FF -_08173794: .4byte gUnknown_201C000 -_08173798: .4byte gUnknown_203B9A4 -_0817379C: .4byte gUnknown_8277071 -_081737A0: .4byte gUnknown_3005B60 -_081737A4: .4byte Task_Hof_TrySaveData - thumb_func_end Task_Hof_InitTeamSaveData - - thumb_func_start Task_Hof_TrySaveData -Task_Hof_TrySaveData: @ 0x081737A8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08173804 - ldr r0, _08173808 - str r0, [r1] - movs r0, #3 - bl TrySavingData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08173818 - ldr r0, _0817380C - ldr r0, [r0] - cmp r0, #0 - beq _08173818 - movs r0, #1 - bl UnsetBgTilemapBuffer - movs r0, #3 - bl UnsetBgTilemapBuffer - bl FreeAllWindowBuffers - ldr r5, _08173810 - ldr r0, [r5] - cmp r0, #0 - beq _081737EA - bl Free - movs r0, #0 - str r0, [r5] -_081737EA: - ldr r5, _08173814 - ldr r0, [r5] - cmp r0, #0 - beq _081737FA - bl Free - movs r0, #0 - str r0, [r5] -_081737FA: - adds r0, r4, #0 - bl DestroyTask - b _08173830 - .align 2, 0 -_08173804: .4byte gUnknown_3005F54 -_08173808: .4byte CB2_DoHallOfFameScreenDontSaveData -_0817380C: .4byte gUnknown_3005F3C -_08173810: .4byte gUnknown_203B9A8 -_08173814: .4byte gUnknown_203B9A4 -_08173818: - movs r0, #0x37 - bl sub_080A306C - ldr r1, _08173838 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0817383C - str r1, [r0] - movs r1, #0x20 - strh r1, [r0, #0xe] -_08173830: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08173838: .4byte gUnknown_3005B60 -_0817383C: .4byte Task_Hof_WaitForFrames - thumb_func_end Task_Hof_TrySaveData - - thumb_func_start Task_Hof_WaitForFrames -Task_Hof_WaitForFrames: @ 0x08173840 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08173860 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldrh r2, [r1, #0xe] - movs r3, #0xe - ldrsh r0, [r1, r3] - cmp r0, #0 - beq _08173864 - subs r0, r2, #1 - strh r0, [r1, #0xe] - b _08173868 - .align 2, 0 -_08173860: .4byte gUnknown_3005B60 -_08173864: - ldr r0, _0817386C - str r0, [r1] -_08173868: - pop {r0} - bx r0 - .align 2, 0 -_0817386C: .4byte sub_08173870 - thumb_func_end Task_Hof_WaitForFrames - - thumb_func_start sub_08173870 -sub_08173870: @ 0x08173870 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08173884 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r0, _08173888 - str r0, [r1] - bx lr - .align 2, 0 -_08173884: .4byte gUnknown_3005B60 -_08173888: .4byte Task_Hof_DisplayMon - thumb_func_end sub_08173870 - - thumb_func_start Task_Hof_DisplayMon -Task_Hof_DisplayMon: @ 0x0817388C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r0, _081738C4 - mov r2, r8 - lsls r1, r2, #2 - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r6, [r1, #0xa] - ldr r2, _081738C8 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #2 - ldr r2, [r2] - adds r7, r2, r0 - movs r2, #0xc - ldrsh r0, [r1, r2] - cmp r0, #3 - ble _081738D0 - ldr r1, _081738CC - b _081738D2 - .align 2, 0 -_081738C4: .4byte gUnknown_3005B60 -_081738C8: .4byte gUnknown_203B9A4 -_081738CC: .4byte gUnknown_85C6470 -_081738D0: - ldr r1, _08173988 -_081738D2: - lsls r2, r6, #3 - adds r0, r2, r1 - ldrh r3, [r0] - adds r0, r1, #2 - adds r0, r2, r0 - ldrh r4, [r0] - adds r0, r1, #4 - adds r0, r2, r0 - ldrh r0, [r0] - mov sb, r0 - adds r1, #6 - adds r2, r2, r1 - ldrh r5, [r2] - ldrh r2, [r7, #8] - ldr r0, _0817398C - ands r0, r2 - movs r1, #0xce - lsls r1, r1, #1 - cmp r0, r1 - bne _08173904 - lsls r0, r5, #0x10 - movs r1, #0xa0 - lsls r1, r1, #0xc - adds r0, r0, r1 - lsrs r5, r0, #0x10 -_08173904: - lsls r0, r2, #0x17 - lsrs r0, r0, #0x17 - ldr r1, [r7] - ldr r2, [r7, #4] - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - str r3, [sp] - lsls r3, r4, #0x10 - asrs r3, r3, #0x10 - str r3, [sp, #4] - lsls r3, r6, #0x18 - lsrs r3, r3, #0x18 - str r3, [sp, #8] - ldr r3, _08173990 - str r3, [sp, #0xc] - movs r3, #1 - bl CreatePicSprite2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _08173994 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r3, r2, r4 - movs r1, #0 - mov ip, r1 - mov r1, sb - strh r1, [r3, #0x30] - strh r5, [r3, #0x32] - mov r1, ip - strh r1, [r3, #0x2e] - ldrh r1, [r7, #8] - lsls r1, r1, #0x17 - lsrs r1, r1, #0x17 - strh r1, [r3, #0x3c] - adds r4, #0x1c - adds r2, r2, r4 - ldr r1, _08173998 - str r1, [r2] - ldr r5, _0817399C - adds r1, r6, #5 - lsls r1, r1, #1 - mov r2, r8 - lsls r4, r2, #2 - add r4, r8 - lsls r4, r4, #3 - adds r1, r1, r4 - adds r2, r5, #0 - adds r2, #8 - adds r1, r1, r2 - strh r0, [r1] - movs r0, #0 - movs r1, #1 - bl sub_08197028 - adds r4, r4, r5 - ldr r0, _081739A0 - str r0, [r4] - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08173988: .4byte gUnknown_85C64A0 -_0817398C: .4byte 0x000001FF -_08173990: .4byte 0x0000FFFF -_08173994: .4byte gUnknown_20205AC -_08173998: .4byte SpriteCB_GetOnScreenAndAnimate -_0817399C: .4byte gUnknown_3005B60 -_081739A0: .4byte Task_Hof_PrintMonInfoAfterAnimating - thumb_func_end Task_Hof_DisplayMon - - thumb_func_start Task_Hof_PrintMonInfoAfterAnimating -Task_Hof_PrintMonInfoAfterAnimating: @ 0x081739A4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _08173A04 - lsls r3, r0, #2 - adds r3, r3, r0 - lsls r3, r3, #3 - adds r5, r3, r4 - ldrh r0, [r5, #0xa] - ldr r2, _08173A08 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r2, [r2] - adds r2, r2, r1 - adds r0, #5 - lsls r0, r0, #1 - adds r0, r0, r3 - adds r4, #8 - adds r0, r0, r4 - movs r3, #0 - ldrsh r1, [r0, r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08173A0C - adds r3, r0, r1 - ldr r1, [r3, #0x1c] - ldr r0, _08173A10 - cmp r1, r0 - bne _081739FE - ldrb r1, [r3, #1] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3, #1] - adds r0, r2, #0 - movs r1, #0 - movs r2, #0xe - bl sub_0817487C - movs r0, #0x78 - strh r0, [r5, #0xe] - ldr r0, _08173A14 - str r0, [r5] -_081739FE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08173A04: .4byte gUnknown_3005B60 -_08173A08: .4byte gUnknown_203B9A4 -_08173A0C: .4byte gUnknown_20205AC -_08173A10: .4byte sub_08007140 -_08173A14: .4byte Task_Hof_TryDisplayAnotherMon - thumb_func_end Task_Hof_PrintMonInfoAfterAnimating - - thumb_func_start Task_Hof_TryDisplayAnotherMon -Task_Hof_TryDisplayAnotherMon: @ 0x08173A18 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r2, _08173A54 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r6, r0, #3 - adds r4, r6, r2 - ldrh r3, [r4, #0xa] - ldr r1, _08173A58 - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #2 - ldr r1, [r1] - adds r1, r1, r0 - mov sb, r1 - ldrh r1, [r4, #0xe] - movs r7, #0xe - ldrsh r0, [r4, r7] - mov ip, r2 - cmp r0, #0 - beq _08173A5C - subs r0, r1, #1 - strh r0, [r4, #0xe] - b _08173AF4 - .align 2, 0 -_08173A54: .4byte gUnknown_3005B60 -_08173A58: .4byte gUnknown_203B9A4 -_08173A5C: - ldr r2, _08173AD4 - ldr r0, _08173AD8 - mov r8, r0 - adds r0, r3, #5 - lsls r0, r0, #1 - adds r0, r0, r6 - mov r1, ip - adds r1, #8 - adds r6, r0, r1 - movs r7, #0 - ldrsh r1, [r6, r7] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - ldrb r0, [r0, #5] - lsrs r0, r0, #4 - movs r1, #0x80 - lsls r1, r1, #9 - lsls r1, r0 - ldr r3, [r2] - orrs r3, r1 - str r3, [r2] - ldrh r2, [r4, #0xa] - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #4 - bgt _08173AE8 - mov r7, sb - ldrh r1, [r7, #0x1c] - ldr r0, _08173ADC - ands r0, r1 - cmp r0, #0 - beq _08173AE8 - adds r0, r2, #1 - strh r0, [r4, #0xa] - ldr r0, _08173AE0 - str r0, [sp] - adds r0, r3, #0 - movs r1, #0 - movs r2, #0xc - movs r3, #0xc - bl BeginNormalPaletteFade - movs r0, #0 - ldrsh r1, [r6, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - ldrb r2, [r0, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #4 - orrs r1, r2 - strb r1, [r0, #5] - ldr r0, _08173AE4 - str r0, [r4] - b _08173AF4 - .align 2, 0 -_08173AD4: .4byte gUnknown_203B9A0 -_08173AD8: .4byte gUnknown_20205AC -_08173ADC: .4byte 0x000001FF -_08173AE0: .4byte 0x000063B0 -_08173AE4: .4byte Task_Hof_DisplayMon -_08173AE8: - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - add r0, ip - ldr r1, _08173B04 - str r1, [r0] -_08173AF4: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08173B04: .4byte Task_Hof_PaletteFadeAndPrintWelcomeText - thumb_func_end Task_Hof_TryDisplayAnotherMon - - thumb_func_start Task_Hof_PaletteFadeAndPrintWelcomeText -Task_Hof_PaletteFadeAndPrintWelcomeText: @ 0x08173B08 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _08173B90 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0 - bl BeginNormalPaletteFade - movs r3, #0 - lsls r1, r4, #2 - adds r0, r1, r4 - lsls r5, r0, #3 - ldr r0, _08173B94 - mov ip, r0 - mov r8, r1 - ldr r6, _08173B98 - movs r7, #0xd - rsbs r7, r7, #0 -_08173B36: - adds r0, r3, #5 - lsls r0, r0, #1 - adds r0, r0, r5 - mov r2, ip - adds r1, r0, r2 - movs r2, #0 - ldrsh r0, [r1, r2] - cmp r0, #0xff - beq _08173B58 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrb r2, [r1, #5] - adds r0, r7, #0 - ands r0, r2 - strb r0, [r1, #5] -_08173B58: - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #5 - bls _08173B36 - movs r0, #0 - movs r1, #0xf - bl sub_0817481C - movs r0, #0x69 - bl sub_080A306C - ldr r1, _08173B9C - mov r2, r8 - adds r0, r2, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0xc8 - lsls r1, r1, #1 - strh r1, [r0, #0xe] - ldr r1, _08173BA0 - str r1, [r0] - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08173B90: .4byte 0xFFFF0000 -_08173B94: .4byte gUnknown_3005B68 -_08173B98: .4byte gUnknown_20205AC -_08173B9C: .4byte gUnknown_3005B60 -_08173BA0: .4byte sub_08173BA4 - thumb_func_end Task_Hof_PaletteFadeAndPrintWelcomeText - - thumb_func_start sub_08173BA4 -sub_08173BA4: @ 0x08173BA4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r7, _08173BE4 - lsls r4, r6, #2 - adds r0, r4, r6 - lsls r5, r0, #3 - adds r1, r5, r7 - ldrh r2, [r1, #0xe] - movs r3, #0xe - ldrsh r0, [r1, r3] - cmp r0, #0 - beq _08173BE8 - subs r2, #1 - strh r2, [r1, #0xe] - movs r0, #3 - ands r0, r2 - cmp r0, #0 - bne _08173C62 - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x6e - ble _08173C62 - bl sub_08175100 - b _08173C62 - .align 2, 0 -_08173BE4: .4byte gUnknown_3005B60 -_08173BE8: - movs r3, #0 - mov sb, r4 - ldr r0, _08173C74 - mov sl, r0 - adds r4, r5, #0 - adds r7, #8 - mov r8, r7 - ldr r7, _08173C78 - movs r1, #0xd - rsbs r1, r1, #0 - mov ip, r1 - movs r5, #4 -_08173C00: - adds r0, r3, #5 - lsls r0, r0, #1 - adds r0, r0, r4 - mov r2, r8 - adds r1, r0, r2 - movs r2, #0 - ldrsh r0, [r1, r2] - cmp r0, #0xff - beq _08173C24 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r7 - ldrb r2, [r1, #5] - mov r0, ip - ands r0, r2 - orrs r0, r5 - strb r0, [r1, #5] -_08173C24: - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #5 - bls _08173C00 - mov r3, sl - ldr r0, [r3] - ldr r1, _08173C7C - str r1, [sp] - movs r1, #0 - movs r2, #0xc - movs r3, #0xc - bl BeginNormalPaletteFade - movs r0, #0 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - ldr r1, _08173C80 - mov r2, sb - adds r0, r2, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #7 - strh r1, [r0, #0xe] - ldr r1, _08173C84 - str r1, [r0] -_08173C62: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08173C74: .4byte gUnknown_203B9A0 -_08173C78: .4byte gUnknown_20205AC -_08173C7C: .4byte 0x000063B0 -_08173C80: .4byte gUnknown_3005B60 -_08173C84: .4byte sub_08173C88 - thumb_func_end sub_08173BA4 - - thumb_func_start sub_08173C88 -sub_08173C88: @ 0x08173C88 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08173CA8 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldrh r2, [r1, #0xe] - movs r3, #0xe - ldrsh r0, [r1, r3] - cmp r0, #0xf - ble _08173CB0 - ldr r0, _08173CAC - str r0, [r1] - b _08173CC2 - .align 2, 0 -_08173CA8: .4byte gUnknown_3005B60 -_08173CAC: .4byte sub_08173CC8 -_08173CB0: - adds r0, r2, #1 - strh r0, [r1, #0xe] - movs r0, #0xe - ldrsh r1, [r1, r0] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg -_08173CC2: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08173C88 - - thumb_func_start sub_08173CC8 -sub_08173CC8: @ 0x08173CC8 - push {r4, r5, r6, lr} - sub sp, #8 - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #3 - bl ShowBg - ldr r6, _08173D50 - ldr r0, [r6] - ldrb r0, [r0, #8] - movs r1, #1 - bl PlayerGenderToFrontTrainerPicId_Debug - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #6 - str r1, [sp] - ldr r1, _08173D54 - str r1, [sp, #4] - movs r1, #1 - movs r2, #0x78 - movs r3, #0x48 - bl CreateTrainerPicSprite - ldr r1, _08173D58 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - adds r4, r4, r1 - strh r0, [r4, #0x10] - ldr r0, _08173D5C - bl AddWindow - ldr r0, [r6] - ldrb r1, [r0, #0x14] - lsrs r1, r1, #3 - ldr r2, _08173D60 - movs r0, #1 - movs r3, #0xd0 - bl LoadWindowGfx - movs r0, #1 - bl stdpal_get - movs r1, #0xe0 - movs r2, #0x20 - bl LoadPalette - movs r0, #0x78 - strh r0, [r4, #0xe] - ldr r0, _08173D64 - str r0, [r4] - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08173D50: .4byte gUnknown_3005AF0 -_08173D54: .4byte 0x0000FFFF -_08173D58: .4byte gUnknown_3005B60 -_08173D5C: .4byte gUnknown_85C643C -_08173D60: .4byte 0x0000021D -_08173D64: .4byte Task_Hof_WaitAndPrintPlayerInfo - thumb_func_end sub_08173CC8 - - thumb_func_start Task_Hof_WaitAndPrintPlayerInfo -Task_Hof_WaitAndPrintPlayerInfo: @ 0x08173D68 - push {r4, r5, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08173D8C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 - ldrh r0, [r4, #0xe] - movs r1, #0xe - ldrsh r5, [r4, r1] - cmp r5, #0 - beq _08173D90 - subs r0, #1 - strh r0, [r4, #0xe] - b _08173DFC - .align 2, 0 -_08173D8C: .4byte gUnknown_3005B60 -_08173D90: - ldr r2, _08173DB0 - movs r3, #0x10 - ldrsh r1, [r4, r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r2 - ldrh r2, [r1, #0x20] - movs r3, #0x20 - ldrsh r0, [r1, r3] - cmp r0, #0xc0 - beq _08173DB4 - adds r0, r2, #1 - strh r0, [r1, #0x20] - b _08173DFC - .align 2, 0 -_08173DB0: .4byte gUnknown_20205AC -_08173DB4: - movs r0, #0x20 - str r0, [sp] - str r0, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, #1 - movs r1, #2 - bl NewGameBirchSpeech_CreateDialogueWindowBorder - movs r0, #0 - movs r1, #0 - bl sub_08196FB8 - ldr r2, _08173E04 - str r5, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - movs r0, #3 - str r0, [sp, #0xc] - movs r0, #0 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized2 - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - ldr r0, _08173E08 - str r0, [r4] -_08173DFC: - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08173E04: .4byte gUnknown_85C9337 -_08173E08: .4byte Task_Hof_ExitOnKeyPressed - thumb_func_end Task_Hof_WaitAndPrintPlayerInfo - - thumb_func_start Task_Hof_ExitOnKeyPressed -Task_Hof_ExitOnKeyPressed: @ 0x08173E0C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _08173E38 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08173E32 - movs r0, #4 - bl sub_080A2B08 - ldr r0, _08173E3C - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _08173E40 - str r0, [r1] -_08173E32: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08173E38: .4byte gUnknown_3002360 -_08173E3C: .4byte gUnknown_3005B60 -_08173E40: .4byte Task_Hof_HandlePaletteOnExit - thumb_func_end Task_Hof_ExitOnKeyPressed - - thumb_func_start Task_Hof_HandlePaletteOnExit -Task_Hof_HandlePaletteOnExit: @ 0x08173E44 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _08173E84 - ldr r1, _08173E88 - movs r2, #0x80 - lsls r2, r2, #2 - bl CpuSet - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r1, #8 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _08173E8C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08173E90 - str r1, [r0] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08173E84: .4byte gUnknown_20377B4 -_08173E88: .4byte gUnknown_20373B4 -_08173E8C: .4byte gUnknown_3005B60 -_08173E90: .4byte Task_Hof_HandleExit - thumb_func_end Task_Hof_HandlePaletteOnExit - - thumb_func_start Task_Hof_HandleExit -Task_Hof_HandleExit: @ 0x08173E94 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _08173F54 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08173F48 - lsls r0, r7, #2 - mov r8, r0 - ldr r1, _08173F58 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r1, #0x12 - adds r5, r0, r1 - ldr r2, _08173F5C - mov sb, r2 - movs r6, #5 -_08173EC0: - ldrb r4, [r5] - cmp r4, #0xff - beq _08173EDE - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - add r0, sb - ldrb r0, [r0, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - adds r0, r4, #0 - bl FreeAndDestroyMonPicSprite -_08173EDE: - adds r5, #2 - subs r6, #1 - cmp r6, #0 - bge _08173EC0 - ldr r0, _08173F58 - mov r2, r8 - adds r1, r2, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x10] - bl FreeAndDestroyTrainerPicSprite - movs r0, #0 - bl HideBg - movs r0, #1 - bl HideBg - movs r0, #3 - bl HideBg - bl FreeAllWindowBuffers - movs r0, #1 - bl UnsetBgTilemapBuffer - movs r0, #3 - bl UnsetBgTilemapBuffer - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - adds r0, r7, #0 - bl DestroyTask - ldr r4, _08173F60 - ldr r0, [r4] - cmp r0, #0 - beq _08173F34 - bl Free - movs r0, #0 - str r0, [r4] -_08173F34: - ldr r4, _08173F64 - ldr r0, [r4] - cmp r0, #0 - beq _08173F44 - bl Free - movs r0, #0 - str r0, [r4] -_08173F44: - bl SetCallback2AfterHallOfFameDisplay -_08173F48: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08173F54: .4byte gUnknown_2037C74 -_08173F58: .4byte gUnknown_3005B60 -_08173F5C: .4byte gUnknown_20205AC -_08173F60: .4byte gUnknown_203B9A8 -_08173F64: .4byte gUnknown_203B9A4 - thumb_func_end Task_Hof_HandleExit - - thumb_func_start SetCallback2AfterHallOfFameDisplay -SetCallback2AfterHallOfFameDisplay: @ 0x08173F68 - push {lr} - ldr r0, _08173F74 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_08173F74: .4byte sub_0817553C - thumb_func_end SetCallback2AfterHallOfFameDisplay - - thumb_func_start CB2_DoHallOfFamePC -CB2_DoHallOfFamePC: @ 0x08173F78 - push {r4, lr} - ldr r0, _08173F94 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #5 - bhi _08173FB4 - lsls r0, r0, #2 - ldr r1, _08173F98 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08173F94: .4byte gUnknown_3002360 -_08173F98: .4byte _08173F9C -_08173F9C: @ jump table - .4byte _08173FB4 @ case 0 - .4byte _08173FE4 @ case 1 - .4byte _08173FF8 @ case 2 - .4byte _08174024 @ case 3 - .4byte _08174064 @ case 4 - .4byte _08174094 @ case 5 -_08173FB4: - movs r0, #0 - bl SetVBlankCallback - bl ClearVramOamPltt_LoadHofPal - ldr r4, _08173FD8 - ldr r0, _08173FDC - bl AllocZeroed - str r0, [r4] - ldr r0, _08173FE0 - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r0, r2 - movs r1, #1 - strb r1, [r0] - b _081740EC - .align 2, 0 -_08173FD8: .4byte gUnknown_203B9A8 -_08173FDC: .4byte 0x00002014 -_08173FE0: .4byte gUnknown_3002360 -_08173FE4: - bl sub_08174E74 - ldr r1, _08173FF4 - movs r3, #0x87 - lsls r3, r3, #3 - adds r1, r1, r3 - b _08174086 - .align 2, 0 -_08173FF4: .4byte gUnknown_3002360 -_08173FF8: - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - bl sub_08174EB0 - ldr r1, _08174020 - movs r4, #0x87 - lsls r4, r4, #3 - adds r1, r1, r4 - b _08174086 - .align 2, 0 -_08174020: .4byte gUnknown_3002360 -_08174024: - bl sub_08174F28 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081740EC - ldr r1, _08174054 - ldr r0, _08174058 - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - ldm r0!, {r2, r3} - stm r1!, {r2, r3} - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl sub_080FA43C - ldr r0, _0817405C - bl SetVBlankCallback - ldr r1, _08174060 - movs r4, #0x87 - lsls r4, r4, #3 - adds r1, r1, r4 - b _08174086 - .align 2, 0 -_08174054: .4byte gUnknown_201C000 -_08174058: .4byte gUnknown_85C6790 -_0817405C: .4byte VBlankCB_HallOfFame -_08174060: .4byte gUnknown_3002360 -_08174064: - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - bl sub_080FA48C - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081740EC - ldr r1, _08174090 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 -_08174086: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _081740EC - .align 2, 0 -_08174090: .4byte gUnknown_3002360 -_08174094: - ldr r1, _081740F4 - movs r0, #0x50 - bl SetGpuReg - movs r1, #0xe2 - lsls r1, r1, #3 - movs r0, #0x52 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - ldr r0, _081740F8 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r4, _081740FC - movs r3, #0xff -_081740C6: - adds r0, r2, #5 - lsls r0, r0, #1 - adds r0, r0, r1 - adds r0, r0, r4 - strh r3, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #5 - bls _081740C6 - ldr r4, _08174100 - movs r0, #0x80 - lsls r0, r0, #6 - bl AllocZeroed - str r0, [r4] - ldr r0, _08174104 - bl SetMainCallback2 -_081740EC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081740F4: .4byte 0x00003F42 -_081740F8: .4byte Task_HofPC_CopySaveData -_081740FC: .4byte gUnknown_3005B68 -_08174100: .4byte gUnknown_203B9A4 -_08174104: .4byte CB2_HallOfFame - thumb_func_end CB2_DoHallOfFamePC - - thumb_func_start Task_HofPC_CopySaveData -Task_HofPC_CopySaveData: @ 0x08174108 - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _0817413C - str r0, [sp] - movs r0, #0 - movs r1, #0x1e - movs r2, #0 - movs r3, #0xc - bl sub_081981B4 - movs r0, #3 - bl Save_LoadGameData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08174148 - ldr r0, _08174140 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _08174144 - b _081741BE - .align 2, 0 -_0817413C: .4byte 0x00000226 -_08174140: .4byte gUnknown_3005B60 -_08174144: .4byte Task_HofPC_PrintDataIsCorrupted -_08174148: - ldr r0, _08174190 - ldr r4, _08174194 - ldr r1, [r4] - movs r2, #0x80 - lsls r2, r2, #5 - bl CpuSet - ldr r4, [r4] - movs r2, #0 - ldrh r1, [r4, #8] - ldr r3, _08174198 - adds r0, r3, #0 - ands r0, r1 - lsls r5, r6, #2 - cmp r0, #0 - beq _0817417E -_08174168: - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - adds r4, #0x78 - cmp r2, #0x31 - bhi _081741A0 - ldrh r1, [r4, #8] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - bne _08174168 -_0817417E: - cmp r2, #0x31 - bhi _081741A0 - ldr r0, _0817419C - adds r1, r5, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - subs r0, r2, #1 - b _081741AA - .align 2, 0 -_08174190: .4byte gUnknown_201C000 -_08174194: .4byte gUnknown_203B9A4 -_08174198: .4byte 0x000001FF -_0817419C: .4byte gUnknown_3005B60 -_081741A0: - ldr r0, _081741C8 - adds r1, r5, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0x31 -_081741AA: - strh r0, [r1, #8] - movs r0, #0xa - bl GetGameStat - ldr r2, _081741C8 - adds r1, r5, r6 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r0, [r1, #0xa] - ldr r0, _081741CC -_081741BE: - str r0, [r1] - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081741C8: .4byte gUnknown_3005B60 -_081741CC: .4byte Task_HofPC_DrawSpritesPrintText - thumb_func_end Task_HofPC_CopySaveData - - thumb_func_start Task_HofPC_DrawSpritesPrintText -Task_HofPC_DrawSpritesPrintText: @ 0x081741D0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r0, _08174284 - ldr r3, [r0] - movs r5, #0 - ldr r1, _08174288 - mov r2, r8 - lsls r0, r2, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r4, #8 - ldrsh r0, [r0, r4] - adds r4, r1, #0 - ldr r2, _0817428C - cmp r5, r0 - bge _0817420E - adds r1, r0, #0 -_08174202: - adds r3, #0x78 - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, r1 - blt _08174202 -_0817420E: - adds r6, r3, #0 - movs r0, #0 - str r0, [r2] - mov r5, r8 - lsls r2, r5, #2 - adds r1, r2, r5 - lsls r1, r1, #3 - adds r1, r1, r4 - strh r0, [r1, #0xc] - strh r0, [r1, #0x10] - movs r5, #0 - str r2, [sp, #0x14] - ldr r4, _08174290 - adds r2, r1, #0 -_0817422A: - ldrh r1, [r6, #8] - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - beq _0817423A - ldrh r0, [r2, #0x10] - adds r0, #1 - strh r0, [r2, #0x10] -_0817423A: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r6, #0x14 - cmp r5, #5 - bls _0817422A - adds r6, r3, #0 - movs r5, #0 - ldr r1, _08174288 - ldr r0, [sp, #0x14] - add r0, r8 - lsls r0, r0, #3 - mov sb, r0 - adds r0, r0, r1 - str r0, [sp, #0x10] - ldr r1, _08174290 - mov sl, r1 -_0817425C: - ldrh r0, [r6, #8] - mov r1, sl - ands r1, r0 - adds r7, r0, #0 - cmp r1, #0 - beq _08174324 - ldr r2, [sp, #0x10] - movs r4, #0x10 - ldrsh r0, [r2, r4] - cmp r0, #3 - ble _0817429C - lsls r1, r5, #3 - ldr r0, _08174294 - adds r0, #4 - adds r0, r1, r0 - ldrh r3, [r0] - ldr r0, _08174298 - adds r1, r1, r0 - ldrh r4, [r1] - b _081742AC - .align 2, 0 -_08174284: .4byte gUnknown_203B9A4 -_08174288: .4byte gUnknown_3005B60 -_0817428C: .4byte gUnknown_203B9A0 -_08174290: .4byte 0x000001FF -_08174294: .4byte gUnknown_85C6470 -_08174298: .4byte gUnknown_85C6476 -_0817429C: - ldr r0, _08174314 - lsls r2, r5, #3 - adds r1, r0, #4 - adds r1, r2, r1 - ldrh r3, [r1] - adds r0, #6 - adds r2, r2, r0 - ldrh r4, [r2] -_081742AC: - mov r1, sl - ands r1, r7 - movs r0, #0xce - lsls r0, r0, #1 - cmp r1, r0 - bne _081742C2 - lsls r0, r4, #0x10 - movs r1, #0xa0 - lsls r1, r1, #0xc - adds r0, r0, r1 - lsrs r4, r0, #0x10 -_081742C2: - lsls r0, r7, #0x17 - lsrs r0, r0, #0x17 - ldr r1, [r6] - ldr r2, [r6, #4] - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - str r3, [sp] - lsls r3, r4, #0x10 - asrs r3, r3, #0x10 - str r3, [sp, #4] - lsls r3, r5, #0x18 - lsrs r3, r3, #0x18 - str r3, [sp, #8] - ldr r3, _08174318 - str r3, [sp, #0xc] - movs r3, #1 - bl CreateMonPicSprite_HandleDeoxys - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r2, _0817431C - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r3, [r1, #5] - movs r4, #0xd - rsbs r4, r4, #0 - adds r2, r4, #0 - ands r3, r2 - movs r2, #4 - orrs r3, r2 - strb r3, [r1, #5] - adds r1, r5, #5 - lsls r1, r1, #1 - add r1, sb - ldr r2, _08174320 - adds r1, r1, r2 - strh r0, [r1] - b _08174332 - .align 2, 0 -_08174314: .4byte gUnknown_85C64A0 -_08174318: .4byte 0x0000FFFF -_0817431C: .4byte gUnknown_20205AC -_08174320: .4byte gUnknown_3005B68 -_08174324: - adds r0, r5, #5 - lsls r0, r0, #1 - add r0, sb - ldr r4, _08174384 - adds r0, r0, r4 - movs r1, #0xff - strh r1, [r0] -_08174332: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r6, #0x14 - cmp r5, #5 - bls _0817425C - ldr r0, _08174388 - ldr r2, _0817438C - movs r1, #0xc - bl BlendPalettes - ldr r0, _08174390 - ldr r1, _08174394 - ldr r4, [sp, #0x14] - add r4, r8 - lsls r4, r4, #3 - adds r4, r4, r1 - movs r5, #0xa - ldrsh r1, [r4, r5] - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - ldr r5, _08174398 - ldr r1, _0817439C - adds r0, r5, #0 - bl StringExpandPlaceholders - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - bgt _081743A4 - ldr r1, _081743A0 - movs r0, #1 - str r0, [sp] - adds r0, r5, #0 - movs r2, #0 - movs r3, #0 - bl sub_081982E8 - b _081743B4 - .align 2, 0 -_08174384: .4byte gUnknown_3005B68 -_08174388: .4byte 0xFFFF0000 -_0817438C: .4byte 0x000063B0 -_08174390: .4byte gUnknown_2021C40 -_08174394: .4byte gUnknown_3005B60 -_08174398: .4byte gUnknown_2021C7C -_0817439C: .4byte gUnknown_85C9328 -_081743A0: .4byte gUnknown_85C8E7C -_081743A4: - ldr r1, _081743D4 - movs r0, #1 - str r0, [sp] - adds r0, r5, #0 - movs r2, #0 - movs r3, #0 - bl sub_081982E8 -_081743B4: - ldr r0, _081743D8 - ldr r1, [sp, #0x14] - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081743DC - str r0, [r1] - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081743D4: .4byte gUnknown_85C8E68 -_081743D8: .4byte gUnknown_3005B60 -_081743DC: .4byte Task_HofPC_PrintMonInfo - thumb_func_end Task_HofPC_DrawSpritesPrintText - - thumb_func_start Task_HofPC_PrintMonInfo -Task_HofPC_PrintMonInfo: @ 0x081743E0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _081744E8 - ldr r5, [r0] - movs r3, #0 - ldr r1, _081744EC - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #8 - ldrsh r0, [r0, r2] - cmp r3, r0 - bge _08174414 - adds r1, r0, #0 -_08174408: - adds r5, #0x78 - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, r1 - blt _08174408 -_08174414: - movs r3, #0 - lsls r7, r4, #2 - adds r0, r7, r4 - lsls r6, r0, #3 - ldr r0, _081744F0 - mov sl, r0 - ldr r1, _081744F4 - mov r8, r1 - movs r2, #0xd - rsbs r2, r2, #0 - mov sb, r2 - movs r0, #4 - mov ip, r0 -_0817442E: - adds r0, r3, #5 - lsls r0, r0, #1 - adds r0, r0, r6 - add r0, sl - ldrh r1, [r0] - cmp r1, #0xff - beq _08174450 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - ldrb r2, [r0, #5] - mov r1, sb - ands r1, r2 - mov r2, ip - orrs r1, r2 - strb r1, [r0, #5] -_08174450: - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #5 - bls _0817442E - adds r1, r7, r4 - lsls r1, r1, #3 - ldr r0, _081744EC - adds r6, r1, r0 - movs r2, #0xc - ldrsh r0, [r6, r2] - adds r0, #5 - lsls r0, r0, #1 - adds r0, r0, r1 - ldr r1, _081744EC - adds r1, #8 - adds r0, r0, r1 - ldrh r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _081744F4 - adds r0, r0, r1 - ldrb r2, [r0, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0, #5] - lsrs r1, r1, #4 - movs r0, #0x80 - lsls r0, r0, #9 - lsls r0, r1 - ldr r1, _081744F8 - eors r0, r1 - ldr r2, _081744FC - str r0, [r2] - ldr r2, _08174500 - movs r1, #0xc - bl BlendPalettesUnfaded - movs r0, #0xc - ldrsh r1, [r6, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, r5, r0 - ldrh r1, [r4, #8] - ldr r0, _08174504 - ands r0, r1 - movs r1, #0xce - lsls r1, r1, #1 - cmp r0, r1 - beq _081744CA - bl sub_080A2F64 - ldrh r0, [r4, #8] - lsls r0, r0, #0x17 - lsrs r0, r0, #0x17 - movs r1, #0 - bl PlayCry1 -_081744CA: - adds r0, r4, #0 - movs r1, #0 - movs r2, #0xe - bl sub_0817487C - ldr r0, _08174508 - str r0, [r6] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081744E8: .4byte gUnknown_203B9A4 -_081744EC: .4byte gUnknown_3005B60 -_081744F0: .4byte gUnknown_3005B68 -_081744F4: .4byte gUnknown_20205AC -_081744F8: .4byte 0xFFFF0000 -_081744FC: .4byte gUnknown_203B9A0 -_08174500: .4byte 0x000063B0 -_08174504: .4byte 0x000001FF -_08174508: .4byte Task_HofPC_HandleInput - thumb_func_end Task_HofPC_PrintMonInfo - - thumb_func_start Task_HofPC_HandleInput -Task_HofPC_HandleInput: @ 0x0817450C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _08174590 - ldrh r2, [r1, #0x2e] - movs r0, #1 - ands r0, r2 - adds r3, r1, #0 - cmp r0, #0 - beq _081745C8 - ldr r0, _08174594 - mov ip, r0 - lsls r0, r6, #2 - adds r1, r0, r6 - lsls r3, r1, #3 - mov r1, ip - adds r4, r3, r1 - ldrh r2, [r4, #8] - movs r5, #8 - ldrsh r1, [r4, r5] - mov sb, r0 - cmp r1, #0 - beq _0817459C - subs r0, r2, #1 - strh r0, [r4, #8] - movs r5, #0 - adds r7, r3, #0 - movs r0, #8 - add r0, ip - mov r8, r0 -_0817454E: - adds r0, r5, #5 - lsls r0, r0, #1 - adds r0, r0, r7 - mov r1, r8 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, #0xff - beq _08174566 - bl FreeAndDestroyMonPicSprite - movs r0, #0xff - strh r0, [r4] -_08174566: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #5 - bls _0817454E - ldr r0, _08174594 - mov r2, sb - adds r1, r2, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r2, [r1, #0xa] - movs r3, #0xa - ldrsh r0, [r1, r3] - cmp r0, #0 - beq _08174588 - subs r0, r2, #1 - strh r0, [r1, #0xa] -_08174588: - ldr r0, _08174598 - str r0, [r1] - b _08174668 - .align 2, 0 -_08174590: .4byte gUnknown_3002360 -_08174594: .4byte gUnknown_3005B60 -_08174598: .4byte Task_HofPC_DrawSpritesPrintText -_0817459C: - bl IsCryPlayingOrClearCrySongs - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081745B6 - bl sub_080A2F64 - ldr r0, _081745BC - ldr r1, _081745C0 - movs r2, #0x80 - lsls r2, r2, #1 - bl m4aMPlayVolumeControl -_081745B6: - ldr r0, _081745C4 - str r0, [r4] - b _08174668 - .align 2, 0 -_081745BC: .4byte gUnknown_30074D0 -_081745C0: .4byte 0x0000FFFF -_081745C4: .4byte Task_HofPC_HandlePaletteOnExit -_081745C8: - movs r0, #2 - ands r0, r2 - cmp r0, #0 - beq _0817460C - bl IsCryPlayingOrClearCrySongs - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081745EA - bl sub_080A2F64 - ldr r0, _081745FC - ldr r1, _08174600 - movs r2, #0x80 - lsls r2, r2, #1 - bl m4aMPlayVolumeControl -_081745EA: - ldr r0, _08174604 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _08174608 - str r0, [r1] - b _08174668 - .align 2, 0 -_081745FC: .4byte gUnknown_30074D0 -_08174600: .4byte 0x0000FFFF -_08174604: .4byte gUnknown_3005B60 -_08174608: .4byte Task_HofPC_HandlePaletteOnExit -_0817460C: - movs r0, #0x40 - ands r0, r2 - cmp r0, #0 - beq _0817463C - ldr r0, _08174634 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r2, [r1, #0xc] - movs r4, #0xc - ldrsh r0, [r1, r4] - cmp r0, #0 - beq _0817463C - subs r0, r2, #1 - strh r0, [r1, #0xc] - ldr r0, _08174638 - str r0, [r1] - b _08174668 - .align 2, 0 -_08174634: .4byte gUnknown_3005B60 -_08174638: .4byte Task_HofPC_PrintMonInfo -_0817463C: - ldrh r1, [r3, #0x2e] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08174668 - ldr r1, _08174674 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r2, r0, r1 - movs r5, #0xc - ldrsh r1, [r2, r5] - movs r3, #0x10 - ldrsh r0, [r2, r3] - subs r0, #1 - cmp r1, r0 - bge _08174668 - ldrh r0, [r2, #0xc] - adds r0, #1 - strh r0, [r2, #0xc] - ldr r0, _08174678 - str r0, [r2] -_08174668: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08174674: .4byte gUnknown_3005B60 -_08174678: .4byte Task_HofPC_PrintMonInfo - thumb_func_end Task_HofPC_HandleInput - - thumb_func_start Task_HofPC_HandlePaletteOnExit -Task_HofPC_HandlePaletteOnExit: @ 0x0817467C - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081746BC - ldr r1, _081746C0 - movs r2, #0x80 - lsls r2, r2, #2 - bl CpuSet - ldr r1, _081746C4 - ldr r0, _081746C8 - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} - ldm r0!, {r2, r3} - stm r1!, {r2, r3} - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl sub_080FA464 - ldr r1, _081746CC - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081746D0 - str r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081746BC: .4byte gUnknown_20377B4 -_081746C0: .4byte gUnknown_20373B4 -_081746C4: .4byte gUnknown_201C000 -_081746C8: .4byte gUnknown_85C6790 -_081746CC: .4byte gUnknown_3005B60 -_081746D0: .4byte Task_HofPC_HandleExit - thumb_func_end Task_HofPC_HandlePaletteOnExit - - thumb_func_start Task_HofPC_HandleExit -Task_HofPC_HandleExit: @ 0x081746D4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - bl FldEffPoison_IsActive - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0817476C - movs r5, #0 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r7, r0, #3 - ldr r0, _08174778 - mov r8, r0 -_081746F4: - adds r0, r5, #5 - lsls r0, r0, #1 - adds r0, r0, r7 - mov r1, r8 - adds r4, r0, r1 - ldrh r0, [r4] - cmp r0, #0xff - beq _0817470C - bl FreeAndDestroyMonPicSprite - movs r0, #0xff - strh r0, [r4] -_0817470C: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #5 - bls _081746F4 - movs r0, #0 - bl HideBg - movs r0, #1 - bl HideBg - movs r0, #3 - bl HideBg - bl sub_08198418 - bl FreeAllWindowBuffers - movs r0, #1 - bl UnsetBgTilemapBuffer - movs r0, #3 - bl UnsetBgTilemapBuffer - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - adds r0, r6, #0 - bl DestroyTask - ldr r4, _0817477C - ldr r0, [r4] - cmp r0, #0 - beq _08174758 - bl Free - movs r0, #0 - str r0, [r4] -_08174758: - ldr r4, _08174780 - ldr r0, [r4] - cmp r0, #0 - beq _08174768 - bl Free - movs r0, #0 - str r0, [r4] -_08174768: - bl ReturnFromHallOfFamePC -_0817476C: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08174778: .4byte gUnknown_3005B68 -_0817477C: .4byte gUnknown_203B9A8 -_08174780: .4byte gUnknown_203B9A4 - thumb_func_end Task_HofPC_HandleExit - - thumb_func_start Task_HofPC_PrintDataIsCorrupted -Task_HofPC_PrintDataIsCorrupted: @ 0x08174784 - push {r4, lr} - sub sp, #0x10 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081747DC - movs r1, #8 - movs r2, #1 - bl sub_08198244 - movs r0, #0 - movs r1, #0 - bl sub_08196FB8 - ldr r2, _081747E0 - movs r0, #0 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - movs r0, #3 - str r0, [sp, #0xc] - movs r0, #0 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized2 - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - ldr r1, _081747E4 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081747E8 - str r1, [r0] - add sp, #0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081747DC: .4byte gUnknown_85C8E8C -_081747E0: .4byte gUnknown_85C9311 -_081747E4: .4byte gUnknown_3005B60 -_081747E8: .4byte Task_HofPC_ExitOnButtonPress - thumb_func_end Task_HofPC_PrintDataIsCorrupted - - thumb_func_start Task_HofPC_ExitOnButtonPress -Task_HofPC_ExitOnButtonPress: @ 0x081747EC - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _08174810 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0817480C - ldr r0, _08174814 - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _08174818 - str r0, [r1] -_0817480C: - pop {r0} - bx r0 - .align 2, 0 -_08174810: .4byte gUnknown_3002360 -_08174814: .4byte gUnknown_3005B60 -_08174818: .4byte Task_HofPC_HandlePaletteOnExit - thumb_func_end Task_HofPC_ExitOnButtonPress - - thumb_func_start sub_0817481C -sub_0817481C: @ 0x0817481C - push {r4, r5, lr} - sub sp, #0xc - movs r0, #0 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #0 - bl PutWindowTilemap - movs r0, #0 - movs r1, #3 - bl GetWindowAttribute - adds r4, r0, #0 - ldr r5, _08174874 - movs r2, #1 - rsbs r2, r2, #0 - movs r0, #1 - adds r1, r5, #0 - bl sub_08005DAC - lsls r4, r4, #2 - lsrs r0, r0, #1 - subs r4, r4, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _08174878 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r5, [sp, #8] - movs r1, #1 - adds r2, r4, #0 - movs r3, #1 - bl AddTextPrinterParameterized3 - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08174874: .4byte gUnknown_85C929D -_08174878: .4byte gUnknown_85C6444 - thumb_func_end sub_0817481C - - thumb_func_start sub_0817487C -sub_0817487C: @ 0x0817487C - push {r4, r5, r6, r7, lr} - sub sp, #0x1c - adds r7, r0, #0 - movs r0, #0 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #0 - bl PutWindowTilemap - ldrh r0, [r7, #8] - ldr r1, _08174904 - ands r1, r0 - movs r0, #0xce - lsls r0, r0, #1 - cmp r1, r0 - beq _0817493C - ldr r0, _08174908 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - ldr r0, _0817490C - str r0, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #4 - movs r3, #1 - bl AddTextPrinterParameterized3 - ldrh r0, [r7, #8] - lsls r0, r0, #0x17 - lsrs r0, r0, #0x17 - bl SpeciesToPokedexNum - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r0, _08174910 - cmp r6, r0 - beq _08174914 - add r4, sp, #0xc - adds r0, r6, #0 - movs r1, #0x64 - bl __udivsi3 - adds r0, #0xa1 - strb r0, [r4] - add r5, sp, #0xc - adds r0, r6, #0 - movs r1, #0x64 - bl __umodsi3 - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r4, #0 - movs r1, #0xa - bl __udivsi3 - adds r0, #0xa1 - strb r0, [r5, #1] - add r5, sp, #0xc - adds r0, r4, #0 - movs r1, #0xa - bl __umodsi3 - adds r0, #0xa1 - strb r0, [r5, #2] - b _08174922 - .align 2, 0 -_08174904: .4byte 0x000001FF -_08174908: .4byte gUnknown_85C6444 -_0817490C: .4byte gUnknown_85C934B -_08174910: .4byte 0x0000FFFF -_08174914: - add r3, sp, #0xc - adds r2, r3, #0 - adds r1, r2, #0 - movs r0, #0xac - strb r0, [r1, #2] - strb r0, [r2, #1] - strb r0, [r3] -_08174922: - add r1, sp, #0xc - movs r0, #0xff - strb r0, [r1, #3] - ldr r0, _081749C8 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r1, [sp, #8] - movs r1, #0 - movs r2, #0x1c - movs r3, #1 - bl AddTextPrinterParameterized3 -_0817493C: - movs r4, #0 - adds r1, r7, #0 - adds r1, #0xa - ldrb r0, [r7, #0xa] - ldrh r3, [r7, #8] - cmp r0, #0xff - beq _0817496E - adds r2, r1, #0 -_0817494C: - mov r1, sp - adds r1, r1, r4 - adds r1, #0xc - adds r0, r2, r4 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #5 - beq _0817496E - adds r0, r2, r4 - ldrb r0, [r0] - cmp r0, #0xff - beq _0817496E - cmp r4, #9 - bls _0817494C -_0817496E: - mov r1, sp - adds r1, r1, r4 - adds r1, #0xc - movs r0, #0xff - strb r0, [r1] - ldr r0, _081749CC - ands r0, r3 - movs r1, #0xce - lsls r1, r1, #1 - cmp r0, r1 - bne _081749D0 - movs r0, #0 - movs r1, #3 - bl GetWindowAttribute - adds r4, r0, #0 - movs r2, #1 - rsbs r2, r2, #0 - movs r0, #1 - add r1, sp, #0xc - bl sub_08005DAC - lsls r4, r4, #2 - lsrs r0, r0, #1 - subs r4, r4, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081749C8 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - add r0, sp, #0xc - str r0, [sp, #8] - movs r0, #0 - movs r1, #1 - adds r2, r4, #0 - movs r3, #1 - bl AddTextPrinterParameterized3 - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - b _08174B58 - .align 2, 0 -_081749C8: .4byte gUnknown_85C6444 -_081749CC: .4byte 0x000001FF -_081749D0: - movs r2, #1 - rsbs r2, r2, #0 - movs r0, #1 - add r1, sp, #0xc - bl sub_08005DAC - movs r2, #0x79 - subs r2, r2, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r0, _08174A7C - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - add r0, sp, #0xc - str r0, [sp, #8] - movs r0, #0 - movs r1, #1 - movs r3, #1 - bl AddTextPrinterParameterized3 - add r1, sp, #0xc - movs r0, #0xba - strb r0, [r1] - movs r4, #1 - ldr r2, _08174A80 - ldrh r5, [r7, #8] - lsls r1, r5, #0x17 - lsrs r1, r1, #0x17 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #0xff - beq _08174A52 - adds r6, r2, #0 -_08174A1A: - mov r3, sp - adds r3, r3, r4 - adds r3, #0xc - lsls r2, r5, #0x17 - lsrs r1, r2, #0x17 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - subs r0, #1 - adds r0, r4, r0 - adds r0, r0, r6 - ldrb r0, [r0] - strb r0, [r3] - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r2, r1, #0 - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #1 - subs r0, #1 - adds r0, r4, r0 - adds r0, r0, r6 - ldrb r0, [r0] - cmp r0, #0xff - beq _08174A52 - cmp r4, #9 - bls _08174A1A -_08174A52: - ldrh r0, [r7, #8] - ldr r1, _08174A84 - ands r1, r0 - cmp r1, #0x20 - beq _08174AA2 - cmp r1, #0x1d - beq _08174AA2 - lsls r0, r0, #0x17 - lsrs r0, r0, #0x17 - ldr r1, [r7, #4] - bl GetGenderFromSpeciesAndPersonality - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xfe - beq _08174A98 - cmp r0, #0xfe - bgt _08174A88 - cmp r0, #0 - beq _08174A8E - b _08174AAC - .align 2, 0 -_08174A7C: .4byte gUnknown_85C6444 -_08174A80: .4byte gUnknown_82EA31C -_08174A84: .4byte 0x000001FF -_08174A88: - cmp r0, #0xff - beq _08174AA2 - b _08174AAC -_08174A8E: - mov r1, sp - adds r1, r1, r4 - adds r1, #0xc - movs r0, #0xb5 - b _08174AAA -_08174A98: - mov r1, sp - adds r1, r1, r4 - adds r1, #0xc - movs r0, #0xb6 - b _08174AAA -_08174AA2: - mov r1, sp - adds r1, r1, r4 - adds r1, #0xc - movs r0, #0 -_08174AAA: - strb r0, [r1] -_08174AAC: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - mov r1, sp - adds r1, r1, r4 - adds r1, #0xc - movs r0, #0xff - strb r0, [r1] - ldr r6, _08174B60 - str r6, [sp] - movs r4, #0 - str r4, [sp, #4] - add r0, sp, #0xc - str r0, [sp, #8] - movs r0, #0 - movs r1, #1 - movs r2, #0x7a - movs r3, #1 - bl AddTextPrinterParameterized3 - str r6, [sp] - str r4, [sp, #4] - ldr r0, _08174B64 - str r0, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #0x18 - movs r3, #0x11 - bl AddTextPrinterParameterized3 - ldr r5, _08174B68 - ldrb r1, [r7, #9] - lsrs r1, r1, #1 - adds r0, r5, #0 - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - str r6, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #0x28 - movs r3, #0x11 - bl AddTextPrinterParameterized3 - str r6, [sp] - str r4, [sp, #4] - ldr r0, _08174B6C - str r0, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #0x52 - movs r3, #0x11 - bl AddTextPrinterParameterized3 - str r6, [sp] - str r4, [sp, #4] - ldr r0, _08174B70 - str r0, [sp, #8] - movs r0, #0 - movs r1, #1 - movs r2, #0x7a - movs r3, #0x11 - bl AddTextPrinterParameterized3 - ldrh r1, [r7] - adds r0, r5, #0 - movs r2, #2 - movs r3, #5 - bl sub_080089D8 - str r6, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #0x84 - movs r3, #0x11 - bl AddTextPrinterParameterized3 - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram -_08174B58: - add sp, #0x1c - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08174B60: .4byte gUnknown_85C6444 -_08174B64: .4byte gUnknown_85C934F -_08174B68: .4byte gUnknown_2021C40 -_08174B6C: .4byte gUnknown_85C935D -_08174B70: .4byte gUnknown_85C93FF - thumb_func_end sub_0817487C - - thumb_func_start NewGameBirchSpeech_CreateDialogueWindowBorder -NewGameBirchSpeech_CreateDialogueWindowBorder: @ 0x08174B74 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x28 - movs r4, #0 - movs r0, #1 - movs r1, #0x11 - bl FillWindowPixelBuffer - movs r0, #1 - bl PutWindowTilemap - ldr r2, _08174C04 - movs r0, #1 - movs r1, #0 - movs r3, #0xd - bl DrawStdFrameWithCustomTileAndPalette - str r4, [sp] - str r4, [sp, #4] - ldr r0, _08174C08 - str r0, [sp, #8] - str r4, [sp, #0xc] - ldr r0, _08174C0C - str r0, [sp, #0x10] - movs r0, #1 - movs r1, #1 - movs r2, #4 - movs r3, #3 - bl AddTextPrinterParameterized4 - movs r2, #0 - ldr r0, _08174C10 - ldr r3, [r0] - movs r5, #1 -_08174BBC: - mov r1, sp - adds r1, r1, r2 - adds r1, #0x14 - adds r0, r3, r2 - ldrb r0, [r0] - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08174BD2 - orrs r4, r5 -_08174BD2: - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #4 - bls _08174BBC - mov r1, sp - adds r1, r1, r2 - adds r1, #0x14 - movs r0, #0xff - strb r0, [r1] - cmp r4, #0 - beq _08174C14 - ldr r0, _08174C08 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - add r0, sp, #0x14 - str r0, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r2, #0x3c - movs r3, #3 - bl AddTextPrinterParameterized3 - b _08174C2E - .align 2, 0 -_08174C04: .4byte 0x0000021D -_08174C08: .4byte gUnknown_85C6448 -_08174C0C: .4byte gUnknown_85C9359 -_08174C10: .4byte gUnknown_3005AF0 -_08174C14: - str r4, [sp] - str r4, [sp, #4] - ldr r0, _08174DB0 - str r0, [sp, #8] - str r4, [sp, #0xc] - add r1, sp, #0x14 - str r1, [sp, #0x10] - movs r0, #1 - movs r1, #1 - movs r2, #0x3c - movs r3, #3 - bl AddTextPrinterParameterized4 -_08174C2E: - ldr r0, _08174DB4 - mov sb, r0 - ldr r0, [r0] - ldrb r4, [r0, #0xa] - ldrb r0, [r0, #0xb] - lsls r0, r0, #8 - orrs r4, r0 - ldr r1, _08174DB0 - mov r8, r1 - str r1, [sp] - movs r7, #0 - str r7, [sp, #4] - ldr r0, _08174DB8 - str r0, [sp, #8] - movs r0, #1 - movs r1, #0 - movs r2, #4 - movs r3, #0x12 - bl AddTextPrinterParameterized3 - add r6, sp, #0x14 - ldr r1, _08174DBC - adds r0, r4, #0 - bl __modsi3 - ldr r5, _08174DC0 - adds r1, r5, #0 - bl __divsi3 - subs r0, #0x5f - strb r0, [r6] - add r6, sp, #0x14 - adds r0, r4, #0 - adds r1, r5, #0 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r5, #0xfa - lsls r5, r5, #2 - adds r1, r5, #0 - bl __udivsi3 - adds r0, #0xa1 - strb r0, [r6, #1] - add r6, sp, #0x14 - adds r0, r4, #0 - adds r1, r5, #0 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __udivsi3 - adds r0, #0xa1 - strb r0, [r6, #2] - add r5, sp, #0x14 - adds r0, r4, #0 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __udivsi3 - adds r0, #0xa1 - strb r0, [r5, #3] - add r5, sp, #0x14 - adds r0, r4, #0 - movs r1, #0xa - bl __umodsi3 - adds r0, #0xa1 - strb r0, [r5, #4] - add r1, sp, #0x14 - movs r0, #0xff - strb r0, [r1, #5] - mov r0, r8 - str r0, [sp] - str r7, [sp, #4] - str r1, [sp, #8] - movs r0, #1 - movs r1, #0 - movs r2, #0x3c - movs r3, #0x12 - bl AddTextPrinterParameterized3 - mov r1, r8 - str r1, [sp] - str r7, [sp, #4] - ldr r0, _08174DC4 - str r0, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r2, #4 - movs r3, #0x20 - bl AddTextPrinterParameterized3 - add r5, sp, #0x14 - mov r0, sb - ldr r4, [r0] - ldrh r0, [r4, #0xe] - movs r1, #0x64 - bl __udivsi3 - adds r0, #0xa1 - strb r0, [r5] - add r5, sp, #0x14 - ldrh r0, [r4, #0xe] - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __udivsi3 - adds r0, #0xa1 - strb r0, [r5, #1] - add r5, sp, #0x14 - ldrh r0, [r4, #0xe] - movs r1, #0xa - bl __umodsi3 - adds r0, #0xa1 - strb r0, [r5, #2] - add r0, sp, #0x14 - ldrb r0, [r0] - cmp r0, #0xa1 - bne _08174D3A - add r0, sp, #0x14 - strb r7, [r0] -_08174D3A: - add r0, sp, #0x14 - ldrb r1, [r0] - cmp r1, #0 - bne _08174D4C - ldrb r0, [r0, #1] - cmp r0, #0xa1 - bne _08174D4C - add r0, sp, #0x14 - strb r1, [r0, #8] -_08174D4C: - add r1, sp, #0x14 - movs r6, #0 - movs r0, #0xf0 - strb r0, [r1, #3] - adds r4, r1, #0 - ldr r0, _08174DB4 - ldr r5, [r0] - ldrb r0, [r5, #0x10] - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0xa - bl __udivsi3 - adds r0, #0xa1 - strb r0, [r4, #4] - add r4, sp, #0x14 - ldrb r0, [r5, #0x10] - movs r1, #0xa - bl __umodsi3 - adds r0, #0xa1 - strb r0, [r4, #5] - add r1, sp, #0x14 - movs r0, #0xff - strb r0, [r1, #6] - ldr r0, _08174DB0 - str r0, [sp] - str r6, [sp, #4] - str r1, [sp, #8] - movs r0, #1 - movs r1, #0 - movs r2, #0x3c - movs r3, #0x20 - bl AddTextPrinterParameterized3 - movs r0, #1 - movs r1, #3 - bl CopyWindowToVram - add sp, #0x28 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08174DB0: .4byte gUnknown_85C6448 -_08174DB4: .4byte gUnknown_3005AF0 -_08174DB8: .4byte gUnknown_85C935D -_08174DBC: .4byte 0x000186A0 -_08174DC0: .4byte 0x00002710 -_08174DC4: .4byte gUnknown_85C8DEC - thumb_func_end NewGameBirchSpeech_CreateDialogueWindowBorder - - thumb_func_start ClearVramOamPltt_LoadHofPal -ClearVramOamPltt_LoadHofPal: @ 0x08174DC8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - movs r3, #0xc0 - lsls r3, r3, #0x13 - movs r4, #0xc0 - lsls r4, r4, #9 - add r0, sp, #4 - mov r8, r0 - mov r2, sp - movs r6, #0 - ldr r1, _08174E68 - movs r5, #0x80 - lsls r5, r5, #5 - ldr r7, _08174E6C - movs r0, #0x81 - lsls r0, r0, #0x18 - mov ip, r0 -_08174DEE: - strh r6, [r2] - mov r0, sp - str r0, [r1] - str r3, [r1, #4] - str r7, [r1, #8] - ldr r0, [r1, #8] - adds r3, r3, r5 - subs r4, r4, r5 - cmp r4, r5 - bhi _08174DEE - strh r6, [r2] - mov r2, sp - str r2, [r1] - str r3, [r1, #4] - lsrs r0, r4, #1 - mov r2, ip - orrs r0, r2 - str r0, [r1, #8] - ldr r0, [r1, #8] - movs r0, #0xe0 - lsls r0, r0, #0x13 - movs r3, #0x80 - lsls r3, r3, #3 - movs r4, #0 - str r4, [sp, #4] - ldr r2, _08174E68 - mov r1, r8 - str r1, [r2] - str r0, [r2, #4] - lsrs r0, r3, #2 - movs r1, #0x85 - lsls r1, r1, #0x18 - orrs r0, r1 - str r0, [r2, #8] - ldr r0, [r2, #8] - movs r1, #0xa0 - lsls r1, r1, #0x13 - mov r0, sp - strh r4, [r0] - str r0, [r2] - str r1, [r2, #4] - lsrs r3, r3, #1 - movs r0, #0x81 - lsls r0, r0, #0x18 - orrs r3, r0 - str r3, [r2, #8] - ldr r0, [r2, #8] - bl ResetPaletteFade - ldr r0, _08174E70 - movs r1, #0 - movs r2, #0x20 - bl LoadPalette - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08174E68: .4byte 0x040000D4 -_08174E6C: .4byte 0x81000800 -_08174E70: .4byte gUnknown_85C65A4 - thumb_func_end ClearVramOamPltt_LoadHofPal - - thumb_func_start sub_08174E74 -sub_08174E74: @ 0x08174E74 - push {lr} - bl ScanlineEffect_Stop - bl ResetTasks - bl ResetSpriteData - bl reset_temp_tile_data_buffers - bl ResetAllPicSprites - bl FreeAllSpritePalettes - ldr r1, _08174EA4 - movs r0, #8 - strb r0, [r1] - ldr r0, _08174EA8 - bl LoadCompressedSpriteSheet - ldr r0, _08174EAC - bl LoadCompressedSpritePalette - pop {r0} - bx r0 - .align 2, 0 -_08174EA4: .4byte gUnknown_30030BC -_08174EA8: .4byte gUnknown_85C6450 -_08174EAC: .4byte gUnknown_85C6460 - thumb_func_end sub_08174E74 - - thumb_func_start sub_08174EB0 -sub_08174EB0: @ 0x08174EB0 - push {r4, lr} - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _08174F1C - movs r0, #0 - movs r2, #3 - bl InitBgsFromTemplates - ldr r4, _08174F20 - ldr r1, [r4] - adds r1, #0x12 - movs r0, #1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, _08174F24 - adds r1, r1, r0 - movs r0, #3 - bl SetBgTilemapBuffer - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08174F1C: .4byte gUnknown_85C6430 -_08174F20: .4byte gUnknown_203B9A8 -_08174F24: .4byte 0x00001012 - thumb_func_end sub_08174EB0 - - thumb_func_start sub_08174F28 -sub_08174F28: @ 0x08174F28 - push {r4, lr} - sub sp, #8 - ldr r0, _08174F40 - ldr r0, [r0] - ldrh r0, [r0] - cmp r0, #4 - bhi _0817500C - lsls r0, r0, #2 - ldr r1, _08174F44 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08174F40: .4byte gUnknown_203B9A8 -_08174F44: .4byte _08174F48 -_08174F48: @ jump table - .4byte _08174F5C @ case 0 - .4byte _08174F74 @ case 1 - .4byte _08174F80 @ case 2 - .4byte _08174FD6 @ case 3 - .4byte _08174FE0 @ case 4 -_08174F5C: - ldr r1, _08174F70 - movs r0, #0 - str r0, [sp] - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - b _0817500C - .align 2, 0 -_08174F70: .4byte gUnknown_85C65C4 -_08174F74: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0817500C - b _08175016 -_08174F80: - movs r4, #0x20 - str r4, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #1 - movs r1, #1 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - movs r0, #0xb - str r0, [sp, #4] - movs r0, #1 - movs r1, #0 - movs r2, #0 - movs r3, #3 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - movs r0, #6 - str r0, [sp, #4] - movs r0, #1 - movs r1, #1 - movs r2, #0 - movs r3, #0xe - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - str r4, [sp, #4] - movs r0, #3 - movs r1, #2 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, #1 - bl CopyBgTilemapBufferToVram - movs r0, #3 - bl CopyBgTilemapBufferToVram - b _0817500C -_08174FD6: - bl InitStandardTextBoxWindows - bl sub_08196DF4 - b _0817500C -_08174FE0: - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #3 - bl ShowBg - ldr r0, _08175008 - ldr r1, [r0] - movs r0, #0 - strh r0, [r1] - b _08175018 - .align 2, 0 -_08175008: .4byte gUnknown_203B9A8 -_0817500C: - ldr r0, _08175020 - ldr r1, [r0] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_08175016: - movs r0, #1 -_08175018: - add sp, #8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08175020: .4byte gUnknown_203B9A8 - thumb_func_end sub_08174F28 - - thumb_func_start SpriteCB_GetOnScreenAndAnimate -SpriteCB_GetOnScreenAndAnimate: @ 0x08175024 - push {r4, lr} - adds r2, r0, #0 - ldr r1, [r2, #0x20] - ldr r0, [r2, #0x30] - cmp r1, r0 - beq _0817507A - ldrh r3, [r2, #0x20] - movs r1, #0x20 - ldrsh r0, [r2, r1] - movs r4, #0x30 - ldrsh r1, [r2, r4] - cmp r0, r1 - bge _08175044 - adds r0, r3, #0 - adds r0, #0xf - strh r0, [r2, #0x20] -_08175044: - ldrh r3, [r2, #0x20] - movs r4, #0x20 - ldrsh r0, [r2, r4] - cmp r0, r1 - ble _08175054 - adds r0, r3, #0 - subs r0, #0xf - strh r0, [r2, #0x20] -_08175054: - ldrh r3, [r2, #0x22] - movs r1, #0x22 - ldrsh r0, [r2, r1] - movs r4, #0x32 - ldrsh r1, [r2, r4] - cmp r0, r1 - bge _08175068 - adds r0, r3, #0 - adds r0, #0xa - strh r0, [r2, #0x22] -_08175068: - ldrh r3, [r2, #0x22] - movs r4, #0x22 - ldrsh r0, [r2, r4] - cmp r0, r1 - ble _081750A0 - adds r0, r3, #0 - subs r0, #0xa - strh r0, [r2, #0x22] - b _081750A0 -_0817507A: - ldrh r0, [r2, #0x3c] - lsls r1, r0, #0x10 - movs r0, #0xce - lsls r0, r0, #0x11 - cmp r1, r0 - bne _08175094 - lsrs r1, r1, #0x10 - adds r0, r2, #0 - movs r2, #1 - movs r3, #3 - bl DoMonFrontSpriteAnimation - b _081750A0 -_08175094: - lsrs r1, r1, #0x10 - adds r0, r2, #0 - movs r2, #0 - movs r3, #3 - bl DoMonFrontSpriteAnimation -_081750A0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SpriteCB_GetOnScreenAndAnimate - - thumb_func_start sub_081750A8 -sub_081750A8: @ 0x081750A8 - push {r4, r5, lr} - adds r5, r0, #0 - ldrh r1, [r5, #0x26] - movs r2, #0x26 - ldrsh r0, [r5, r2] - cmp r0, #0x78 - ble _081750BE - adds r0, r5, #0 - bl DestroySprite - b _081750F6 -_081750BE: - adds r0, r1, #1 - ldrh r1, [r5, #0x30] - adds r0, r0, r1 - strh r0, [r5, #0x26] - ldrh r4, [r5, #0x2e] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - ands r0, r1 - adds r0, #8 - ldr r1, _081750FC - lsls r4, r4, #1 - adds r4, r4, r1 - movs r2, #0 - ldrsh r1, [r4, r2] - muls r0, r1, r0 - cmp r0, #0 - bge _081750EC - adds r0, #0xff -_081750EC: - asrs r0, r0, #8 - strh r0, [r5, #0x24] - ldrh r0, [r5, #0x2e] - adds r0, #4 - strh r0, [r5, #0x2e] -_081750F6: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081750FC: .4byte gUnknown_82FA8CC - thumb_func_end sub_081750A8 - - thumb_func_start sub_08175100 -sub_08175100: @ 0x08175100 - push {r4, lr} - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xf0 - bl __umodsi3 - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - bl Random - adds r2, r0, #0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - movs r0, #7 - ands r2, r0 - rsbs r2, r2, #0 - ldr r0, _08175170 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r1, r4, #0 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _08175174 - adds r4, r1, r0 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x11 - bl __umodsi3 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim - bl Random - movs r1, #3 - ands r1, r0 - cmp r1, #0 - beq _08175178 - movs r0, #0 - b _0817517A - .align 2, 0 -_08175170: .4byte gUnknown_85C658C -_08175174: .4byte gUnknown_20205AC -_08175178: - movs r0, #1 -_0817517A: - strh r0, [r4, #0x30] - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_08175100 - - thumb_func_start sub_08175184 -sub_08175184: @ 0x08175184 - push {r4, lr} - ldr r4, _081751B4 - movs r0, #0xb4 - strh r0, [r4] - ldr r0, _081751B8 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xff - beq _081751AE - ldr r1, _081751BC - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r4] - strh r1, [r0, #0xa] - ldr r0, _081751C0 - strh r2, [r0] -_081751AE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081751B4: .4byte gUnknown_2037280 -_081751B8: .4byte sub_08175268 -_081751BC: .4byte gUnknown_3005B60 -_081751C0: .4byte gUnknown_2037282 - thumb_func_end sub_08175184 - - thumb_func_start Task_RayDescendsEnd -Task_RayDescendsEnd: @ 0x081751C4 - push {r4, lr} - ldr r0, _081751F0 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _081751D8 - bl DestroyTask -_081751D8: - bl sub_08152230 - ldr r4, _081751F4 - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl FreeSpritePaletteByTag - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081751F0: .4byte sub_08175268 -_081751F4: .4byte 0x000003E9 - thumb_func_end Task_RayDescendsEnd - - thumb_func_start sub_081751F8 -sub_081751F8: @ 0x081751F8 - push {r4, r5, lr} - adds r5, r0, #0 - ldrh r1, [r5, #0xe] - movs r2, #0xe - ldrsh r0, [r5, r2] - cmp r0, #0x6e - ble _08175228 - ldr r2, _08175224 - movs r0, #0x28 - ldrsh r1, [r5, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrh r1, [r0, #0x26] - subs r1, #1 - strh r1, [r0, #0x26] - ldrb r0, [r5, #0x16] - bl sub_081525AC - b _0817525C - .align 2, 0 -_08175224: .4byte gUnknown_3005B60 -_08175228: - adds r0, r1, #1 - ldrh r1, [r5, #0x1c] - adds r0, r0, r1 - strh r0, [r5, #0xe] - ldrb r4, [r5, #0x1a] - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - ands r0, r1 - adds r0, #8 - ldr r1, _08175264 - lsls r4, r4, #1 - adds r4, r4, r1 - movs r2, #0 - ldrsh r1, [r4, r2] - muls r0, r1, r0 - cmp r0, #0 - bge _08175252 - adds r0, #0xff -_08175252: - asrs r0, r0, #8 - strh r0, [r5, #0xc] - ldrh r0, [r5, #0x1a] - adds r0, #4 - strh r0, [r5, #0x1a] -_0817525C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08175264: .4byte gUnknown_82FA8CC - thumb_func_end sub_081751F8 - - thumb_func_start sub_08175268 -sub_08175268: @ 0x08175268 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - mov r8, r4 - movs r7, #0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _08175294 - adds r6, r0, r1 - ldrh r0, [r6] - cmp r0, #1 - beq _081752E4 - cmp r0, #1 - bgt _08175298 - cmp r0, #0 - beq _081752A0 - b _081753B4 - .align 2, 0 -_08175294: .4byte gUnknown_3005B68 -_08175298: - cmp r0, #0xff - bne _0817529E - b _081753A4 -_0817529E: - b _081753B4 -_081752A0: - movs r0, #0x40 - bl sub_0815219C - cmp r0, #0 - bne _081752BC - adds r0, r4, #0 - bl DestroyTask - ldr r0, _081752D0 - strh r7, [r0] - ldr r1, _081752D4 - ldr r2, _081752D8 - adds r0, r2, #0 - strh r0, [r1] -_081752BC: - ldr r0, _081752DC - bl LoadCompressedSpriteSheet - ldr r0, _081752E0 - bl LoadCompressedSpritePalette - ldrh r0, [r6] - adds r0, #1 - strh r0, [r6] - b _081753B4 - .align 2, 0 -_081752D0: .4byte gUnknown_2037280 -_081752D4: .4byte gUnknown_2037282 -_081752D8: .4byte 0x0000FFFF -_081752DC: .4byte gUnknown_85C6450 -_081752E0: .4byte gUnknown_85C6460 -_081752E4: - ldrh r0, [r6, #2] - cmp r0, #0 - beq _0817537C - movs r1, #3 - bl __umodsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0817537C - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xf0 - bl __umodsi3 - adds r5, r0, #0 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - bl Random - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - movs r0, #7 - ands r4, r0 - rsbs r4, r4, #0 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x11 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0817538C - ldr r2, _08175390 - str r4, [sp] - str r0, [sp, #4] - str r7, [sp, #8] - adds r0, r1, #0 - adds r1, r2, #0 - adds r3, r5, #0 - bl sub_081524A0 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #0xff - beq _0817537C - adds r4, r7, #0 - ldr r1, _08175394 - adds r0, r4, #0 - bl sub_08152414 - bl Random - movs r1, #3 - ands r1, r0 - cmp r1, #0 - bne _0817536C - adds r0, r4, #0 - movs r1, #1 - movs r2, #1 - bl sub_08152450 -_0817536C: - adds r0, r4, #0 - movs r1, #7 - mov r2, r8 - bl sub_08152450 - ldrh r0, [r6, #0x1e] - adds r0, #1 - strh r0, [r6, #0x1e] -_0817537C: - bl sub_081522B0 - ldrh r0, [r6, #2] - cmp r0, #0 - beq _08175398 - subs r0, #1 - strh r0, [r6, #2] - b _081753B4 - .align 2, 0 -_0817538C: .4byte gUnknown_85C64B8 -_08175390: .4byte 0x000003E9 -_08175394: .4byte sub_081751F8 -_08175398: - ldrh r0, [r6, #0x1e] - cmp r0, #0 - bne _081753B4 - movs r0, #0xff - strh r0, [r6] - b _081753B4 -_081753A4: - bl Task_RayDescendsEnd - ldr r0, _081753C0 - strh r7, [r0] - ldr r1, _081753C4 - ldr r2, _081753C8 - adds r0, r2, #0 - strh r0, [r1] -_081753B4: - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081753C0: .4byte gUnknown_2037280 -_081753C4: .4byte gUnknown_2037282 -_081753C8: .4byte 0x0000FFFF - thumb_func_end sub_08175268 - - thumb_func_start sub_081753CC -sub_081753CC: @ 0x081753CC - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081753CC - - thumb_func_start sub_081753E0 -sub_081753E0: @ 0x081753E0 - push {lr} - bl RunTasks - bl AnimateSprites - ldr r0, _08175434 - ldrh r1, [r0, #0x2c] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08175426 - ldr r0, _08175438 - ldrb r0, [r0] - cmp r0, #0 - beq _08175426 - ldr r2, _0817543C - ldr r0, _08175440 - ldrh r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _08175444 - cmp r1, r0 - bne _08175426 - bl sub_081753CC - bl RunTasks - bl AnimateSprites - ldr r1, _08175448 - movs r0, #1 - strb r0, [r1] -_08175426: - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 -_08175434: .4byte gUnknown_3002360 -_08175438: .4byte gUnknown_203B9B0 -_0817543C: .4byte gUnknown_3005B60 -_08175440: .4byte gUnknown_203B9AE -_08175444: .4byte sub_0817567C -_08175448: .4byte gUnknown_203B9B1 - thumb_func_end sub_081753E0 - - thumb_func_start sub_0817544C -sub_0817544C: @ 0x0817544C - push {lr} - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _0817549C - movs r0, #0 - movs r2, #1 - bl InitBgsFromTemplates - movs r0, #0x80 - lsls r0, r0, #4 - bl AllocZeroed - adds r1, r0, #0 - movs r0, #0 - bl SetBgTilemapBuffer - ldr r0, _081754A0 - movs r1, #0x80 - movs r2, #0x40 - bl LoadPalette - ldr r0, _081754A4 - bl InitWindows - bl sub_08004480 - movs r0, #0 - bl PutWindowTilemap - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - movs r0, #0 - bl ShowBg - pop {r0} - bx r0 - .align 2, 0 -_0817549C: .4byte gUnknown_85C7914 -_081754A0: .4byte gUnknown_85C67AC -_081754A4: .4byte gUnknown_85C7918 - thumb_func_end sub_0817544C - - thumb_func_start sub_081754A8 -sub_081754A8: @ 0x081754A8 - push {lr} - bl FreeAllWindowBuffers - movs r0, #0 - bl GetBgTilemapBuffer - cmp r0, #0 - beq _081754BC - bl Free -_081754BC: - pop {r0} - bx r0 - thumb_func_end sub_081754A8 - - thumb_func_start sub_081754C0 -sub_081754C0: @ 0x081754C0 - push {r4, lr} - sub sp, #0x18 - adds r4, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - add r1, sp, #0x14 - movs r0, #0 - strb r0, [r1] - cmp r3, #1 - bne _081754E0 - movs r0, #3 - strb r0, [r1, #1] - movs r0, #4 - b _081754E8 -_081754E0: - add r1, sp, #0x14 - movs r0, #1 - strb r0, [r1, #1] - movs r0, #2 -_081754E8: - strb r0, [r1, #2] - movs r1, #0 - ldrb r0, [r4] - lsls r3, r2, #3 - cmp r0, #0xff - beq _081754FE -_081754F4: - adds r1, #1 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, #0xff - bne _081754F4 -_081754FE: - lsls r0, r1, #3 - adds r0, r0, r1 - movs r2, #0xf0 - subs r2, r2, r0 - lsrs r0, r2, #0x1f - adds r2, r2, r0 - asrs r2, r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r3, #2 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #1 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - add r0, sp, #0x14 - str r0, [sp, #8] - movs r0, #1 - rsbs r0, r0, #0 - str r0, [sp, #0xc] - str r4, [sp, #0x10] - movs r0, #0 - movs r1, #1 - bl AddTextPrinterParameterized4 - add sp, #0x18 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081754C0 - - thumb_func_start sub_0817553C -sub_0817553C: @ 0x0817553C - push {r4, r5, r6, r7, lr} - sub sp, #4 - bl sub_08175BF0 - movs r0, #0 - bl SetVBlankCallback - ldr r0, _08175620 - movs r1, #0xe0 - lsls r1, r1, #9 - bl InitHeap - bl ResetPaletteFade - bl ResetTasks - bl sub_0817544C - ldr r0, _08175624 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r1, _08175628 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #0x10] - strh r1, [r0, #0x16] - strh r1, [r0, #0x1e] - movs r1, #1 - strh r1, [r0, #0x22] -_08175582: - movs r0, #0 - adds r1, r7, #0 - bl sub_081768B8 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08175582 - ldr r4, _08175628 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r4 - movs r2, #0xa - ldrsh r1, [r0, r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r4 - movs r6, #0 - movs r5, #0 - movs r1, #0x28 - strh r1, [r0, #8] - ldr r1, _0817562C - movs r0, #0x12 - bl SetGpuReg - ldr r0, _08175630 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r4 - strh r7, [r1, #0xa] - movs r0, #1 - rsbs r0, r0, #0 - str r5, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - movs r0, #1 - bl EnableInterrupts - ldr r0, _08175634 - bl SetVBlankCallback - ldr r0, _08175638 - bl m4aSongNumStart - ldr r0, _0817563C - bl SetMainCallback2 - ldr r0, _08175640 - strb r6, [r0] - ldr r4, _08175644 - movs r0, #0xe5 - lsls r0, r0, #2 - bl AllocZeroed - str r0, [r4] - bl sub_08177214 - ldr r0, [r4] - adds r1, r0, #0 - adds r1, #0x78 - strh r5, [r1] - adds r0, #0x7a - strh r5, [r0] - ldr r0, _08175648 - strh r7, [r0] - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08175620: .4byte gUnknown_2000000 -_08175624: .4byte sub_0817564C -_08175628: .4byte gUnknown_3005B60 -_0817562C: .4byte 0x0000FFFC -_08175630: .4byte EvolutionRenameMon -_08175634: .4byte sub_081753CC -_08175638: .4byte 0x000001C7 -_0817563C: .4byte sub_081753E0 -_08175640: .4byte gUnknown_203B9B1 -_08175644: .4byte gUnknown_203B9B4 -_08175648: .4byte gUnknown_203B9AE - thumb_func_end sub_0817553C - - thumb_func_start sub_0817564C -sub_0817564C: @ 0x0817564C - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _08175670 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0817566C - ldr r0, _08175674 - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _08175678 - str r0, [r1] -_0817566C: - pop {r0} - bx r0 - .align 2, 0 -_08175670: .4byte gUnknown_2037C74 -_08175674: .4byte gUnknown_3005B60 -_08175678: .4byte sub_0817567C - thumb_func_end sub_0817564C - - thumb_func_start sub_0817567C -sub_0817567C: @ 0x0817567C - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _081756B0 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 - movs r0, #0x10 - ldrsh r1, [r4, r0] - cmp r1, #0 - beq _081756B8 - movs r3, #0xa - ldrsh r1, [r4, r3] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r1, #0x1e - strh r1, [r0, #8] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x20] - ldr r0, _081756B4 - b _08175702 - .align 2, 0 -_081756B0: .4byte gUnknown_3005B60 -_081756B4: .4byte sub_081759A4 -_081756B8: - ldr r0, _081756E0 - strh r1, [r0] - ldrh r2, [r4, #0x1e] - movs r3, #0x1e - ldrsh r0, [r4, r3] - cmp r0, #1 - bne _081756E8 - strh r2, [r4, #0x22] - strh r1, [r4, #0x1e] - movs r0, #1 - rsbs r0, r0, #0 - str r1, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _081756E4 - b _08175702 - .align 2, 0 -_081756E0: .4byte gUnknown_203B9AC -_081756E4: .4byte sub_08175710 -_081756E8: - cmp r0, #2 - bne _08175704 - strh r2, [r4, #0x22] - strh r1, [r4, #0x1e] - movs r0, #1 - rsbs r0, r0, #0 - str r1, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _0817570C -_08175702: - str r0, [r4] -_08175704: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0817570C: .4byte sub_081757AC - thumb_func_end sub_0817567C - - thumb_func_start sub_08175710 -sub_08175710: @ 0x08175710 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _08175744 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0817573E - movs r0, #0 - movs r1, #0 - bl SetGpuReg - adds r0, r4, #0 - bl sub_08176AA8 - ldr r0, _08175748 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _0817574C - str r0, [r1] -_0817573E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08175744: .4byte gUnknown_2037C74 -_08175748: .4byte gUnknown_3005B60 -_0817574C: .4byte c2_080C9BFC - thumb_func_end sub_08175710 - - thumb_func_start c2_080C9BFC -c2_080C9BFC: @ 0x08175750 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - bl SetVBlankCallback - ldr r1, _081757A0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r5, r0, r1 - ldrb r0, [r5, #0x16] - adds r1, r4, #0 - bl sub_081768B8 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08175798 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - movs r0, #1 - bl EnableInterrupts - ldr r0, _081757A4 - bl SetVBlankCallback - ldr r0, _081757A8 - str r0, [r5] -_08175798: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081757A0: .4byte gUnknown_3005B60 -_081757A4: .4byte sub_081753CC -_081757A8: .4byte sub_0817564C - thumb_func_end c2_080C9BFC - - thumb_func_start sub_081757AC -sub_081757AC: @ 0x081757AC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _081757E0 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081757DA - movs r0, #0 - movs r1, #0 - bl SetGpuReg - adds r0, r4, #0 - bl sub_08176AA8 - ldr r0, _081757E4 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081757E8 - str r0, [r1] -_081757DA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081757E0: .4byte gUnknown_2037C74 -_081757E4: .4byte gUnknown_3005B60 -_081757E8: .4byte sub_081757EC - thumb_func_end sub_081757AC - - thumb_func_start sub_081757EC -sub_081757EC: @ 0x081757EC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _081758B8 - movs r1, #0x87 - lsls r1, r1, #3 - adds r1, r1, r0 - mov r8, r1 - ldrb r7, [r1] - cmp r7, #0 - beq _0817580E - cmp r7, #1 - beq _081758F8 -_0817580E: - bl ResetSpriteData - bl ResetAllPicSprites - bl FreeAllSpritePalettes - ldr r1, _081758BC - movs r0, #8 - strb r0, [r1] - ldr r0, _081758C0 - movs r1, #0xc0 - lsls r1, r1, #0x13 - bl LZ77UnCompVram - ldr r0, _081758C4 - ldr r1, _081758C8 - bl LZ77UnCompVram - ldr r0, _081758CC - movs r1, #1 - movs r2, #0x3e - bl LoadPalette - movs r1, #0 - ldr r4, _081758D0 - movs r3, #0x11 - ldr r2, _081758D4 -_08175844: - adds r0, r1, r4 - strb r3, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, r2 - bls _08175844 - movs r1, #0 - ldr r2, _081758D8 - ldr r6, _081758DC - ldr r0, _081758E0 - adds r5, r2, r0 - movs r4, #0x22 - ldr r3, _081758D4 -_08175860: - adds r0, r1, r5 - strb r4, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, r3 - bls _08175860 - movs r1, #0 - ldr r5, _081758E4 - movs r4, #0x33 - ldr r3, _081758D4 -_08175876: - adds r0, r1, r5 - strb r4, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, r3 - bls _08175876 - movs r0, #0 - strh r0, [r2] - ldr r1, _081758E8 - adds r0, r1, #0 - strh r0, [r2, #2] - ldr r1, _081758EC - adds r0, r1, #0 - strh r0, [r2, #4] - ldr r1, _081758F0 - adds r0, r1, #0 - strh r0, [r2, #6] - adds r0, r6, #0 - bl LoadSpriteSheet - ldr r0, _081758F4 - bl LoadSpritePalette - ldr r1, _081758B8 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _08175982 - .align 2, 0 -_081758B8: .4byte gUnknown_3002360 -_081758BC: .4byte gUnknown_30030BC -_081758C0: .4byte gUnknown_858FC14 -_081758C4: .4byte gUnknown_858FA1C -_081758C8: .4byte 0x06003800 -_081758CC: .4byte gUnknown_858F812 -_081758D0: .4byte gUnknown_201C000 -_081758D4: .4byte 0x000007FF -_081758D8: .4byte gUnknown_201D800 -_081758DC: .4byte gUnknown_85C79C8 -_081758E0: .4byte 0xFFFFF000 -_081758E4: .4byte gUnknown_201D000 -_081758E8: .4byte 0x000053FF -_081758EC: .4byte 0x0000529F -_081758F0: .4byte 0x00007E94 -_081758F4: .4byte gUnknown_85C79D8 -_081758F8: - ldr r0, _08175990 - movs r1, #0 - bl CreateTask - ldr r2, _08175994 - lsls r4, r6, #2 - adds r4, r4, r6 - lsls r4, r4, #3 - adds r4, r4, r2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - mov sb, r1 - movs r5, #0 - strh r0, [r4, #0xe] - movs r0, #0xe - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - strh r7, [r0, #8] - movs r0, #0xe - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - strh r6, [r0, #0xa] - movs r0, #0xe - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrh r1, [r4, #0x16] - strh r1, [r0, #0xc] - movs r0, #1 - rsbs r0, r0, #0 - str r5, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - movs r0, #0x1c - movs r1, #0 - bl SetGpuReg - movs r0, #0x1e - movs r1, #0x20 - bl SetGpuReg - ldr r1, _08175998 - movs r0, #0xe - bl SetGpuReg - movs r1, #0xca - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - mov r0, sb - mov r1, r8 - strb r0, [r1] - ldr r0, _0817599C - strh r5, [r0] - ldr r0, _081759A0 - str r0, [r4] -_08175982: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08175990: .4byte sub_08176024 -_08175994: .4byte gUnknown_3005B60 -_08175998: .4byte 0x00000703 -_0817599C: .4byte gUnknown_203B9F4 -_081759A0: .4byte sub_0817564C - thumb_func_end sub_081757EC - - thumb_func_start sub_081759A4 -sub_081759A4: @ 0x081759A4 - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _081759C8 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 - ldrh r0, [r4, #0x20] - movs r2, #0x20 - ldrsh r1, [r4, r2] - cmp r1, #0 - beq _081759CC - subs r0, #1 - strh r0, [r4, #0x20] - b _081759E0 - .align 2, 0 -_081759C8: .4byte gUnknown_3005B60 -_081759CC: - movs r0, #1 - rsbs r0, r0, #0 - str r1, [sp] - movs r1, #0xc - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _081759E8 - str r0, [r4] -_081759E0: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081759E8: .4byte sub_081759EC - thumb_func_end sub_081759A4 - - thumb_func_start sub_081759EC -sub_081759EC: @ 0x081759EC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _08175A18 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08175A12 - adds r0, r4, #0 - bl sub_08176AA8 - ldr r0, _08175A1C - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _08175A20 - str r0, [r1] -_08175A12: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08175A18: .4byte gUnknown_2037C74 -_08175A1C: .4byte gUnknown_3005B60 -_08175A20: .4byte sub_08175A24 - thumb_func_end sub_081759EC - - thumb_func_start sub_08175A24 -sub_08175A24: @ 0x08175A24 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_08175BF0 - bl ResetPaletteFade - movs r1, #0xe0 - lsls r1, r1, #6 - movs r0, #0 - movs r2, #0 - bl sub_08176B24 - bl ResetSpriteData - bl FreeAllSpritePalettes - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r1, #8 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - movs r1, #0xe0 - lsls r1, r1, #3 - movs r0, #8 - bl SetGpuReg - movs r0, #1 - bl EnableInterrupts - movs r1, #0xa0 - lsls r1, r1, #1 - movs r0, #0 - bl SetGpuReg - ldr r1, _08175A94 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0x98 - lsls r1, r1, #1 - strh r1, [r0, #8] - ldr r1, _08175A98 - str r1, [r0] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08175A94: .4byte gUnknown_3005B60 -_08175A98: .4byte sub_08175A9C - thumb_func_end sub_08175A24 - - thumb_func_start sub_08175A9C -sub_08175A9C: @ 0x08175A9C - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08175AC0 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 - ldrh r0, [r4, #8] - movs r2, #8 - ldrsh r1, [r4, r2] - cmp r1, #0 - beq _08175AC4 - subs r0, #1 - strh r0, [r4, #8] - b _08175AD8 - .align 2, 0 -_08175AC0: .4byte gUnknown_3005B60 -_08175AC4: - movs r0, #1 - rsbs r0, r0, #0 - str r1, [sp] - movs r1, #6 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _08175AE0 - str r0, [r4] -_08175AD8: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08175AE0: .4byte sub_08175AE4 - thumb_func_end sub_08175A9C - - thumb_func_start sub_08175AE4 -sub_08175AE4: @ 0x08175AE4 - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _08175B34 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _08175B2A - movs r0, #0xe0 - lsls r0, r0, #6 - movs r1, #0 - bl sub_08176CCC - movs r0, #1 - rsbs r0, r0, #0 - str r4, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r1, _08175B38 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0xe1 - lsls r1, r1, #5 - strh r1, [r0, #8] - ldr r1, _08175B3C - str r1, [r0] -_08175B2A: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08175B34: .4byte gUnknown_2037C74 -_08175B38: .4byte gUnknown_3005B60 -_08175B3C: .4byte sub_08175B40 - thumb_func_end sub_08175AE4 - - thumb_func_start sub_08175B40 -sub_08175B40: @ 0x08175B40 - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _08175B8C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08175BC4 - ldr r1, _08175B90 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r0, #8 - ldrsh r1, [r4, r0] - cmp r1, #0 - beq _08175B6E - ldr r0, _08175B94 - ldrh r0, [r0, #0x2e] - cmp r0, #0 - beq _08175BA0 -_08175B6E: - movs r0, #4 - bl sub_080A2B08 - movs r0, #1 - rsbs r0, r0, #0 - ldr r1, _08175B98 - str r1, [sp] - movs r1, #8 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _08175B9C - str r0, [r4] - b _08175BC4 - .align 2, 0 -_08175B8C: .4byte gUnknown_2037C74 -_08175B90: .4byte gUnknown_3005B60 -_08175B94: .4byte gUnknown_3002360 -_08175B98: .4byte 0x0000FFFF -_08175B9C: .4byte sub_08175BD4 -_08175BA0: - ldr r0, _08175BCC - cmp r1, r0 - bne _08175BAC - movs r0, #8 - bl sub_080A2B08 -_08175BAC: - movs r0, #8 - ldrsh r1, [r4, r0] - ldr r0, _08175BD0 - cmp r1, r0 - bne _08175BBE - movs r0, #0xe4 - lsls r0, r0, #1 - bl m4aSongNumStart -_08175BBE: - ldrh r0, [r4, #8] - subs r0, #1 - strh r0, [r4, #8] -_08175BC4: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08175BCC: .4byte 0x00001BE8 -_08175BD0: .4byte 0x00001AB8 - thumb_func_end sub_08175B40 - - thumb_func_start sub_08175BD4 -sub_08175BD4: @ 0x08175BD4 - push {lr} - ldr r0, _08175BEC - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08175BE8 - movs r0, #0xff - bl SoftReset -_08175BE8: - pop {r0} - bx r0 - .align 2, 0 -_08175BEC: .4byte gUnknown_2037C74 - thumb_func_end sub_08175BD4 - - thumb_func_start sub_08175BF0 -sub_08175BF0: @ 0x08175BF0 - push {lr} - sub sp, #8 - movs r0, #0 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1c - movs r1, #0 - bl SetGpuReg - movs r0, #0x1e - movs r1, #0 - bl SetGpuReg - movs r0, #0x18 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1a - movs r1, #0 - bl SetGpuReg - movs r0, #0x14 - movs r1, #0 - bl SetGpuReg - movs r0, #0x16 - movs r1, #0 - bl SetGpuReg - movs r0, #0x10 - movs r1, #0 - bl SetGpuReg - movs r0, #0x12 - movs r1, #0 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - mov r1, sp - movs r0, #0 - strh r0, [r1] - ldr r1, _08175C98 - mov r0, sp - str r0, [r1] - movs r0, #0xc0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _08175C9C - str r0, [r1, #8] - ldr r0, [r1, #8] - movs r2, #0 - str r2, [sp, #4] - add r0, sp, #4 - str r0, [r1] - movs r0, #0xe0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _08175CA0 - str r0, [r1, #8] - ldr r0, [r1, #8] - mov r0, sp - strh r2, [r0] - str r0, [r1] - ldr r0, _08175CA4 - str r0, [r1, #4] - ldr r0, _08175CA8 - str r0, [r1, #8] - ldr r0, [r1, #8] - add sp, #8 - pop {r0} - bx r0 - .align 2, 0 -_08175C98: .4byte 0x040000D4 -_08175C9C: .4byte 0x8100C000 -_08175CA0: .4byte 0x85000100 -_08175CA4: .4byte 0x05000002 -_08175CA8: .4byte 0x810001FF - thumb_func_end sub_08175BF0 - - thumb_func_start EvolutionRenameMon -EvolutionRenameMon: @ 0x08175CAC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _08175CD8 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #8 - ldrsh r0, [r0, r2] - adds r5, r1, #0 - cmp r0, #0xa - bhi _08175D0C - lsls r0, r0, #2 - ldr r1, _08175CDC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08175CD8: .4byte gUnknown_3005B60 -_08175CDC: .4byte _08175CE0 -_08175CE0: @ jump table - .4byte _08175D0C @ case 0 - .4byte _08175D3C @ case 1 - .4byte _08175D5C @ case 2 - .4byte _08175E16 @ case 3 - .4byte _08175E3C @ case 4 - .4byte _08175EA8 @ case 5 - .4byte _08175D0C @ case 6 - .4byte _08175D0C @ case 7 - .4byte _08175D0C @ case 8 - .4byte _08175D0C @ case 9 - .4byte _08175EDC @ case 10 -_08175D0C: - ldr r0, _08175D34 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - beq _08175D1E - b _08175F0A -_08175D1E: - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r1, #1 - strh r1, [r0, #8] - movs r1, #0x48 - strh r1, [r0, #0xe] - ldr r0, _08175D38 - strh r2, [r0] - b _08175F0A - .align 2, 0 -_08175D34: .4byte gUnknown_2037C74 -_08175D38: .4byte gUnknown_203B9AC -_08175D3C: - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r1, r0, r5 - ldrh r2, [r1, #0xe] - movs r3, #0xe - ldrsh r0, [r1, r3] - cmp r0, #0 - beq _08175D54 - subs r0, r2, #1 - strh r0, [r1, #0xe] - b _08175F0A -_08175D54: - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _08175F0A -_08175D5C: - lsls r2, r6, #2 - adds r0, r2, r6 - lsls r0, r0, #3 - adds r3, r0, r5 - movs r0, #0xa - ldrsh r1, [r3, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - ldr r1, [r0] - ldr r0, _08175DE8 - mov r8, r2 - cmp r1, r0 - beq _08175D7C - b _08175F0A -_08175D7C: - movs r1, #0xc - ldrsh r0, [r3, r1] - cmp r0, #0x2c - bgt _08175E10 - movs r4, #0 - ldr r7, _08175DEC - adds r5, r3, #0 -_08175D8A: - movs r2, #0xc - ldrsh r1, [r5, r2] - lsls r0, r1, #2 - adds r0, r0, r1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r7 - ldr r3, [r0] - ldr r0, [r3, #4] - ldrb r1, [r3] - lsls r2, r4, #0x19 - lsrs r2, r2, #0x18 - ldrb r3, [r3, #1] - bl sub_081754C0 - adds r4, #1 - cmp r4, #4 - ble _08175D8A - movs r0, #0 - movs r1, #2 - bl CopyWindowToVram - ldr r2, _08175DF0 - mov r3, r8 - adds r1, r3, r6 - lsls r1, r1, #3 - adds r1, r1, r2 - ldrh r0, [r1, #0xc] - adds r0, #1 - strh r0, [r1, #0xc] - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - movs r0, #0xa - ldrsh r1, [r1, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r1, #0x22 - ldrsh r0, [r0, r1] - cmp r0, #1 - bne _08175DF8 - movs r0, #0xc0 - lsls r0, r0, #2 - ldr r1, _08175DF4 - b _08175DFE - .align 2, 0 -_08175DE8: .4byte sub_0817567C -_08175DEC: .4byte gUnknown_85C7590 -_08175DF0: .4byte gUnknown_3005B60 -_08175DF4: .4byte 0x0000328D -_08175DF8: - movs r0, #0xc0 - lsls r0, r0, #2 - ldr r1, _08175E0C -_08175DFE: - str r1, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - b _08175F0A - .align 2, 0 -_08175E0C: .4byte 0x00001967 -_08175E10: - movs r0, #0xa - strh r0, [r3, #8] - b _08175F0A -_08175E16: - ldr r0, _08175E38 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08175F0A - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r1, #0x9c - strh r1, [r0, #0xe] - ldrh r1, [r0, #8] - adds r1, #1 - strh r1, [r0, #8] - b _08175F0A - .align 2, 0 -_08175E38: .4byte gUnknown_2037C74 -_08175E3C: - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r4, r0, r5 - ldrh r1, [r4, #0xe] - movs r2, #0xe - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _08175E54 - subs r0, r1, #1 - strh r0, [r4, #0xe] - b _08175F0A -_08175E54: - ldrb r0, [r4, #0xc] - ldrb r1, [r4, #0xa] - bl sub_08175F1C - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08175E6A - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _08175F0A -_08175E6A: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r3, #0xa - ldrsh r1, [r4, r3] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r1, #0x22 - ldrsh r0, [r0, r1] - cmp r0, #1 - bne _08175E90 - movs r0, #0xc0 - lsls r0, r0, #2 - ldr r1, _08175E8C - b _08175E96 - .align 2, 0 -_08175E8C: .4byte 0x0000328D -_08175E90: - movs r0, #0xc0 - lsls r0, r0, #2 - ldr r1, _08175EA4 -_08175E96: - str r1, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - b _08175F0A - .align 2, 0 -_08175EA4: .4byte 0x00001967 -_08175EA8: - ldr r0, _08175ED4 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08175F0A - movs r0, #0 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #0 - movs r1, #2 - bl CopyWindowToVram - ldr r0, _08175ED8 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #2 - strh r0, [r1, #8] - b _08175F0A - .align 2, 0 -_08175ED4: .4byte gUnknown_2037C74 -_08175ED8: .4byte gUnknown_3005B60 -_08175EDC: - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r2, #0xa - ldrsh r1, [r0, r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r5, #0 - movs r1, #1 - strh r1, [r0, #0x10] - adds r0, r6, #0 - bl DestroyTask - bl sub_081754A8 - ldr r4, _08175F18 - ldr r0, [r4] - bl Free - str r5, [r4] -_08175F0A: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08175F18: .4byte gUnknown_203B9B4 - thumb_func_end EvolutionRenameMon - - thumb_func_start sub_08175F1C -sub_08175F1C: @ 0x08175F1C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r2, r1, #0x18 - ldr r5, _08176018 - cmp r4, #1 - bne _08175F44 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r3, #0xa - ldrsh r1, [r0, r3] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r1, #0x14 - strh r1, [r0, #8] -_08175F44: - lsls r3, r2, #2 - cmp r4, #5 - bne _08175F56 - adds r0, r3, r2 - lsls r0, r0, #3 - adds r0, r0, r5 - strh r4, [r0, #0x16] - movs r1, #2 - strh r1, [r0, #0x1e] -_08175F56: - cmp r4, #9 - bne _08175F66 - adds r0, r3, r2 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r1, #1 - strh r1, [r0, #0x16] - strh r1, [r0, #0x1e] -_08175F66: - cmp r4, #0xe - bne _08175F78 - adds r0, r3, r2 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r1, #4 - strh r1, [r0, #0x16] - movs r1, #2 - strh r1, [r0, #0x1e] -_08175F78: - cmp r4, #0x14 - bne _08175F8A - adds r0, r3, r2 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r1, #2 - strh r1, [r0, #0x16] - movs r1, #1 - strh r1, [r0, #0x1e] -_08175F8A: - cmp r4, #0x16 - bne _08175FA4 - adds r0, r3, r2 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r6, #0xa - ldrsh r1, [r0, r6] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r1, #1 - strh r1, [r0, #8] -_08175FA4: - cmp r4, #0x19 - bne _08175FB6 - adds r0, r3, r2 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r1, #5 - strh r1, [r0, #0x16] - movs r1, #2 - strh r1, [r0, #0x1e] -_08175FB6: - cmp r4, #0x1e - bne _08175FC8 - adds r0, r3, r2 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r1, #3 - strh r1, [r0, #0x16] - movs r1, #1 - strh r1, [r0, #0x1e] -_08175FC8: - cmp r4, #0x23 - bne _08175FE2 - adds r0, r3, r2 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r6, #0xa - ldrsh r1, [r0, r6] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r1, #0xa - strh r1, [r0, #8] -_08175FE2: - cmp r4, #0x25 - bne _08175FF4 - adds r0, r3, r2 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r1, #3 - strh r1, [r0, #0x16] - movs r1, #2 - strh r1, [r0, #0x1e] -_08175FF4: - cmp r4, #0x2a - bne _08176006 - adds r0, r3, r2 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r1, #4 - strh r1, [r0, #0x16] - movs r1, #1 - strh r1, [r0, #0x1e] -_08176006: - adds r0, r3, r2 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r1, #0x1e - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _0817601C - movs r0, #0 - b _0817601E - .align 2, 0 -_08176018: .4byte gUnknown_3005B60 -_0817601C: - movs r0, #1 -_0817601E: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_08175F1C - - thumb_func_start sub_08176024 -sub_08176024: @ 0x08176024 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r4, _08176050 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r2, r0, r4 - movs r1, #8 - ldrsh r0, [r2, r1] - cmp r0, #1 - beq _08176054 - cmp r0, #1 - bgt _08176046 - b _08176150 -_08176046: - cmp r0, #2 - beq _0817606C - cmp r0, #3 - beq _0817613C - b _08176150 - .align 2, 0 -_08176050: .4byte gUnknown_3005B60 -_08176054: - ldr r0, _08176068 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08176150 - ldrh r0, [r2, #8] - adds r0, #1 - b _0817614E - .align 2, 0 -_08176068: .4byte gUnknown_2037C74 -_0817606C: - ldr r3, _081760E8 - mov r8, r3 - ldr r3, [r3] - adds r6, r3, #0 - adds r6, #0x78 - ldrh r0, [r6] - cmp r0, #0x38 - beq _08176150 - movs r0, #0xa - ldrsh r1, [r2, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r4 - ldr r1, [r0] - ldr r0, _081760EC - cmp r1, r0 - bne _08176150 - adds r0, r3, #0 - adds r0, #0x7a - ldrh r0, [r0] - lsls r0, r0, #1 - adds r0, r3, r0 - ldrh r5, [r0] - ldr r4, _081760F0 - ldrh r0, [r6] - movs r1, #3 - bl __umodsi3 - adds r3, r0, #0 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r0, r3, #1 - adds r1, r0, r4 - ldrb r1, [r1] - adds r4, #1 - adds r0, r0, r4 - ldrb r2, [r0] - adds r0, r5, #0 - bl sub_081770B0 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - mov r1, r8 - ldr r0, [r1] - adds r1, r0, #0 - adds r1, #0x7a - ldrh r3, [r1] - adds r0, #0x7c - ldrh r0, [r0] - subs r0, #1 - cmp r3, r0 - bge _081760F8 - adds r0, r3, #1 - strh r0, [r1] - ldr r1, _081760F4 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - movs r1, #0x40 - b _0817610A - .align 2, 0 -_081760E8: .4byte gUnknown_203B9B4 -_081760EC: .4byte sub_0817567C -_081760F0: .4byte gUnknown_85C7928 -_081760F4: .4byte gUnknown_20205AC -_081760F8: - movs r0, #0 - strh r0, [r1] - ldr r1, _08176130 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - movs r1, #0x80 - lsls r1, r1, #1 -_0817610A: - strh r1, [r0, #0x34] - ldr r0, _08176134 - ldr r1, [r0] - adds r1, #0x78 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - ldr r0, _08176138 - lsls r1, r7, #2 - adds r1, r1, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0x40 - strh r0, [r1, #0xe] - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _08176150 - .align 2, 0 -_08176130: .4byte gUnknown_20205AC -_08176134: .4byte gUnknown_203B9B4 -_08176138: .4byte gUnknown_3005B60 -_0817613C: - ldrh r1, [r2, #0xe] - movs r3, #0xe - ldrsh r0, [r2, r3] - cmp r0, #0 - beq _0817614C - subs r0, r1, #1 - strh r0, [r2, #0xe] - b _08176150 -_0817614C: - movs r0, #1 -_0817614E: - strh r0, [r2, #8] -_08176150: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08176024 - - thumb_func_start sub_0817615C -sub_0817615C: @ 0x0817615C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _08176184 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #8 - ldrsh r0, [r0, r2] - adds r6, r1, #0 - cmp r0, #0x32 - bls _08176178 - b _08176424 -_08176178: - lsls r0, r0, #2 - ldr r1, _08176188 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08176184: .4byte gUnknown_3005B60 -_08176188: .4byte _0817618C -_0817618C: @ jump table - .4byte _08176258 @ case 0 - .4byte _0817627C @ case 1 - .4byte _081762D0 @ case 2 - .4byte _081762E8 @ case 3 - .4byte _08176324 @ case 4 - .4byte _08176348 @ case 5 - .4byte _08176394 @ case 6 - .4byte _08176424 @ case 7 - .4byte _08176424 @ case 8 - .4byte _08176424 @ case 9 - .4byte _081763A0 @ case 10 - .4byte _08176424 @ case 11 - .4byte _08176424 @ case 12 - .4byte _08176424 @ case 13 - .4byte _08176424 @ case 14 - .4byte _08176424 @ case 15 - .4byte _08176424 @ case 16 - .4byte _08176424 @ case 17 - .4byte _08176424 @ case 18 - .4byte _08176424 @ case 19 - .4byte _081763C0 @ case 20 - .4byte _08176424 @ case 21 - .4byte _08176424 @ case 22 - .4byte _08176424 @ case 23 - .4byte _08176424 @ case 24 - .4byte _08176424 @ case 25 - .4byte _08176424 @ case 26 - .4byte _08176424 @ case 27 - .4byte _08176424 @ case 28 - .4byte _08176424 @ case 29 - .4byte _081763E4 @ case 30 - .4byte _08176424 @ case 31 - .4byte _08176424 @ case 32 - .4byte _08176424 @ case 33 - .4byte _08176424 @ case 34 - .4byte _08176424 @ case 35 - .4byte _08176424 @ case 36 - .4byte _08176424 @ case 37 - .4byte _08176424 @ case 38 - .4byte _08176424 @ case 39 - .4byte _08176424 @ case 40 - .4byte _08176424 @ case 41 - .4byte _08176424 @ case 42 - .4byte _08176424 @ case 43 - .4byte _08176424 @ case 44 - .4byte _08176424 @ case 45 - .4byte _08176424 @ case 46 - .4byte _08176424 @ case 47 - .4byte _08176424 @ case 48 - .4byte _08176424 @ case 49 - .4byte _08176418 @ case 50 -_08176258: - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - adds r4, r4, r6 - ldrh r0, [r4, #0x12] - lsls r0, r0, #0x10 - asrs r0, r0, #0x11 - movs r1, #0x7f - ands r0, r1 - movs r1, #0xc - bl Sin - ldr r1, _08176278 - strh r0, [r1] - b _081762A0 - .align 2, 0 -_08176278: .4byte gUnknown_203B9F2 -_0817627C: - ldr r7, _081762A8 - movs r3, #0 - ldrsh r4, [r7, r3] - cmp r4, #0 - beq _081762AC - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - adds r4, r4, r6 - ldrh r0, [r4, #0x12] - lsls r0, r0, #0x10 - asrs r0, r0, #0x11 - movs r1, #0x7f - ands r0, r1 - movs r1, #0xc - bl Sin - strh r0, [r7] -_081762A0: - ldrh r0, [r4, #0x12] - adds r0, #1 - strh r0, [r4, #0x12] - b _08176424 - .align 2, 0 -_081762A8: .4byte gUnknown_203B9F2 -_081762AC: - ldr r3, _081762CC - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r6 - movs r0, #0xc - ldrsh r2, [r1, r0] - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r2, #2 - strh r2, [r0, #0x2e] - strh r4, [r1, #0x12] - b _08176340 - .align 2, 0 -_081762CC: .4byte gUnknown_20205AC -_081762D0: - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r1, r0, r6 - ldrh r2, [r1, #0x12] - movs r3, #0x12 - ldrsh r0, [r1, r3] - cmp r0, #0x3f - bgt _08176340 - adds r0, r2, #1 - strh r0, [r1, #0x12] - b _0817635E -_081762E8: - ldr r3, _08176320 - lsls r2, r5, #2 - adds r2, r2, r5 - lsls r2, r2, #3 - adds r2, r2, r6 - movs r0, #0xc - ldrsh r1, [r2, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r1, #3 - strh r1, [r0, #0x2e] - movs r0, #0xe - ldrsh r1, [r2, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r1, #1 - strh r1, [r0, #0x2e] - movs r0, #0x78 - strh r0, [r2, #0x10] - ldrh r0, [r2, #8] - adds r0, #1 - strh r0, [r2, #8] - b _08176424 - .align 2, 0 -_08176320: .4byte gUnknown_20205AC -_08176324: - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r1, r0, r6 - ldrh r2, [r1, #0x10] - movs r3, #0x10 - ldrsh r0, [r1, r3] - cmp r0, #0 - beq _0817633C - subs r0, r2, #1 - strh r0, [r1, #0x10] - b _08176424 -_0817633C: - movs r0, #0x40 - strh r0, [r1, #0x12] -_08176340: - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _08176424 -_08176348: - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r6 - ldrh r1, [r4, #0x12] - movs r2, #0x12 - ldrsh r0, [r4, r2] - cmp r0, #0 - ble _08176374 - subs r0, r1, #1 - strh r0, [r4, #0x12] -_0817635E: - movs r1, #0x7f - ands r0, r1 - movs r1, #0x14 - bl Sin - ldr r1, _08176370 - strh r0, [r1] - b _08176424 - .align 2, 0 -_08176370: .4byte gUnknown_203B9F2 -_08176374: - ldr r2, _08176390 - movs r3, #0xc - ldrsh r1, [r4, r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #1 - strh r1, [r0, #0x2e] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _08176424 - .align 2, 0 -_08176390: .4byte gUnknown_20205AC -_08176394: - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r6 - movs r1, #0x32 - b _08176422 -_081763A0: - ldr r3, _081763BC - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r6 - movs r0, #0xe - ldrsh r2, [r1, r0] - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r2, #2 - b _081763D8 - .align 2, 0 -_081763BC: .4byte gUnknown_20205AC -_081763C0: - ldr r3, _081763E0 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r6 - movs r0, #0xc - ldrsh r2, [r1, r0] - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r2, #4 -_081763D8: - strh r2, [r0, #0x2e] - movs r0, #0x32 - strh r0, [r1, #8] - b _08176424 - .align 2, 0 -_081763E0: .4byte gUnknown_20205AC -_081763E4: - ldr r3, _08176414 - lsls r2, r5, #2 - adds r2, r2, r5 - lsls r2, r2, #3 - adds r2, r2, r6 - movs r0, #0xc - ldrsh r1, [r2, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r1, #5 - strh r1, [r0, #0x2e] - movs r0, #0xe - ldrsh r1, [r2, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r1, #3 - strh r1, [r0, #0x2e] - movs r0, #0x32 - strh r0, [r2, #8] - b _08176424 - .align 2, 0 -_08176414: .4byte gUnknown_20205AC -_08176418: - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r6 - movs r1, #0 -_08176422: - strh r1, [r0, #8] -_08176424: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0817615C - - thumb_func_start sub_0817642C -sub_0817642C: @ 0x0817642C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08176450 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r2, #8 - ldrsh r0, [r1, r2] - cmp r0, #4 - bhi _0817646C - lsls r0, r0, #2 - ldr r1, _08176454 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08176450: .4byte gUnknown_3005B60 -_08176454: .4byte _08176458 -_08176458: @ jump table - .4byte _0817646C @ case 0 - .4byte _0817646C @ case 1 - .4byte _08176474 @ case 2 - .4byte _08176474 @ case 3 - .4byte _0817647C @ case 4 -_0817646C: - movs r0, #0 - bl sub_0817B400 - b _08176482 -_08176474: - movs r0, #1 - bl sub_0817B400 - b _08176482 -_0817647C: - movs r0, #2 - bl sub_0817B400 -_08176482: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0817642C - - thumb_func_start sub_08176488 -sub_08176488: @ 0x08176488 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - cmp r0, #4 - bls _0817649E - b _0817681C -_0817649E: - lsls r0, r0, #2 - ldr r1, _081764A8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081764A8: .4byte _081764AC -_081764AC: @ jump table - .4byte _081764C0 @ case 0 - .4byte _08176568 @ case 1 - .4byte _08176614 @ case 2 - .4byte _081766C0 @ case 3 - .4byte _08176770 @ case 4 -_081764C0: - ldr r5, _08176560 - ldr r0, _08176564 - lsls r4, r7, #2 - adds r4, r4, r7 - lsls r4, r4, #3 - adds r4, r4, r0 - movs r1, #0x12 - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - adds r1, #0x3e - ldrb r3, [r1] - movs r2, #5 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r3 - strb r0, [r1] - movs r0, #0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - movs r0, #0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r3, #0 - movs r2, #0x88 - lsls r2, r2, #1 - strh r2, [r0, #0x20] - movs r0, #0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r2, [r0, #0x20] - movs r0, #0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r2, #0x2e - strh r2, [r0, #0x22] - movs r0, #0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r2, [r0, #0x22] - movs r0, #0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r3, [r0, #0x2e] - movs r0, #0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r3, [r0, #0x2e] - movs r1, #0x80 - lsls r1, r1, #6 - movs r0, #0 - movs r2, #0x20 - b _08176810 - .align 2, 0 -_08176560: .4byte gUnknown_20205AC -_08176564: .4byte gUnknown_3005B60 -_08176568: - ldr r5, _0817660C - ldr r0, _08176610 - lsls r4, r7, #2 - adds r4, r4, r7 - lsls r4, r4, #3 - adds r4, r4, r0 - movs r1, #0x12 - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - adds r1, #0x3e - ldrb r3, [r1] - movs r2, #5 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r3 - strb r0, [r1] - movs r0, #0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - movs r0, #0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r3, #0 - movs r1, #0x78 - strh r1, [r0, #0x20] - movs r0, #0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0x88 - lsls r1, r1, #1 - strh r1, [r0, #0x20] - movs r0, #0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r2, #0x2e - strh r2, [r0, #0x22] - movs r0, #0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r2, [r0, #0x22] - movs r0, #0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r3, [r0, #0x2e] - movs r0, #0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r3, [r0, #0x2e] - movs r1, #0x80 - lsls r1, r1, #6 - movs r0, #0 - movs r2, #0x20 - b _08176810 - .align 2, 0 -_0817660C: .4byte gUnknown_20205AC -_08176610: .4byte gUnknown_3005B60 -_08176614: - ldr r5, _081766B8 - ldr r0, _081766BC - lsls r4, r7, #2 - adds r4, r4, r7 - lsls r4, r4, #3 - adds r4, r4, r0 - movs r1, #0x12 - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - adds r1, #0x3e - ldrb r3, [r1] - movs r2, #5 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r3 - strb r0, [r1] - movs r0, #0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - movs r0, #0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r3, #0 - movs r1, #0x78 - strh r1, [r0, #0x20] - movs r0, #0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0x88 - lsls r1, r1, #1 - strh r1, [r0, #0x20] - movs r0, #0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r2, #0x2e - strh r2, [r0, #0x22] - movs r0, #0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r2, [r0, #0x22] - movs r0, #0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r3, [r0, #0x2e] - movs r0, #0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r3, [r0, #0x2e] - movs r1, #0x80 - lsls r1, r1, #6 - movs r2, #0x80 - lsls r2, r2, #2 - movs r0, #1 - b _08176810 - .align 2, 0 -_081766B8: .4byte gUnknown_20205AC -_081766BC: .4byte gUnknown_3005B60 -_081766C0: - ldr r5, _08176764 - ldr r0, _08176768 - lsls r4, r7, #2 - adds r4, r4, r7 - lsls r4, r4, #3 - adds r4, r4, r0 - movs r1, #0x12 - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - adds r1, #0x3e - ldrb r3, [r1] - movs r2, #5 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r3 - strb r0, [r1] - movs r0, #0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - movs r0, #0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r3, #0 - movs r1, #0x78 - strh r1, [r0, #0x20] - movs r0, #0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _0817676C - strh r1, [r0, #0x20] - movs r0, #0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r2, #0x2e - strh r2, [r0, #0x22] - movs r0, #0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r2, [r0, #0x22] - movs r0, #0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r3, [r0, #0x2e] - movs r0, #0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r3, [r0, #0x2e] - movs r1, #0x80 - lsls r1, r1, #6 - movs r2, #0x80 - lsls r2, r2, #2 - movs r0, #1 - b _08176810 - .align 2, 0 -_08176764: .4byte gUnknown_20205AC -_08176768: .4byte gUnknown_3005B60 -_0817676C: .4byte 0x0000FFE0 -_08176770: - ldr r5, _081768A8 - ldr r0, _081768AC - lsls r4, r7, #2 - adds r4, r4, r7 - lsls r4, r4, #3 - adds r4, r4, r0 - movs r1, #0x12 - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - adds r1, #0x3e - ldrb r3, [r1] - movs r2, #5 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r3 - strb r0, [r1] - movs r0, #0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - movs r0, #0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r3, #0 - movs r1, #0x58 - strh r1, [r0, #0x20] - movs r0, #0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0x98 - strh r1, [r0, #0x20] - movs r0, #0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r2, #0x2e - strh r2, [r0, #0x22] - movs r0, #0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r2, [r0, #0x22] - movs r0, #0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r3, [r0, #0x2e] - movs r0, #0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r3, [r0, #0x2e] - movs r1, #0x80 - lsls r1, r1, #6 - movs r2, #0x80 - lsls r2, r2, #2 - movs r0, #2 -_08176810: - movs r3, #8 - bl sub_0817B29C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #8] -_0817681C: - ldr r0, _081768B0 - movs r1, #0 - bl CreateTask - ldr r5, _081768AC - lsls r4, r7, #2 - adds r4, r4, r7 - lsls r4, r4, #3 - adds r4, r4, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r6, #0 - strh r0, [r4, #0xc] - movs r0, #0xc - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - mov r1, r8 - strh r1, [r0, #8] - ldr r0, _081768B4 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0xa] - movs r0, #0xa - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - strh r6, [r0, #8] - movs r0, #0xa - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - strh r7, [r0, #0xa] - movs r0, #0xa - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - ldrh r1, [r4, #0x12] - strh r1, [r0, #0xc] - movs r0, #0xa - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - ldrh r1, [r4, #0x14] - strh r1, [r0, #0xe] - movs r0, #0xa - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - strh r6, [r0, #0x10] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081768A8: .4byte gUnknown_20205AC -_081768AC: .4byte gUnknown_3005B60 -_081768B0: .4byte sub_0817642C -_081768B4: .4byte sub_0817615C - thumb_func_end sub_08176488 - - thumb_func_start sub_081768B8 -sub_081768B8: @ 0x081768B8 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - ldr r0, _08176934 - movs r1, #0x87 - lsls r1, r1, #3 - adds r6, r0, r1 - ldrb r0, [r6] - cmp r0, #1 - beq _08176938 - cmp r0, #1 - ble _081768DE - cmp r0, #2 - beq _0817695C - cmp r0, #3 - bne _081768DE - b _08176A88 -_081768DE: - movs r0, #0 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1c - movs r1, #8 - bl SetGpuReg - movs r0, #0x1e - movs r1, #0 - bl SetGpuReg - movs r0, #0x18 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1a - movs r1, #0 - bl SetGpuReg - movs r0, #0x14 - movs r1, #0 - bl SetGpuReg - movs r0, #0x16 - movs r1, #0 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - bl ResetSpriteData - bl FreeAllSpritePalettes - movs r0, #1 - strb r0, [r6] - b _08176A9E - .align 2, 0 -_08176934: .4byte gUnknown_3002360 -_08176938: - ldr r1, _08176954 - movs r0, #0x22 - strh r0, [r1] - ldr r1, _08176958 - movs r0, #0 - strh r0, [r1] - adds r0, r4, #0 - bl sub_0817B088 - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] - b _08176A9E - .align 2, 0 -_08176954: .4byte gUnknown_203B9F0 -_08176958: .4byte gUnknown_203B9F2 -_0817695C: - ldr r0, _081769BC - ldr r0, [r0] - ldrb r0, [r0, #8] - cmp r0, #0 - bne _081769E0 - ldr r0, _081769C0 - bl LoadCompressedSpriteSheet - ldr r0, _081769C4 - bl LoadCompressedSpriteSheet - ldr r0, _081769C8 - bl LoadCompressedSpriteSheet - ldr r0, _081769CC - bl LoadSpritePalettes - movs r0, #0x78 - movs r1, #0x2e - bl sub_0817B6F4 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _081769D0 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - adds r4, r4, r0 - strh r2, [r4, #0x12] - ldr r6, _081769D4 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r5, r6, #0 - adds r5, #0x1c - adds r2, r0, r5 - ldr r1, _081769D8 - str r1, [r2] - adds r6, #8 - adds r0, r0, r6 - ldr r1, _081769DC - str r1, [r0] - movs r0, #0x88 - lsls r0, r0, #1 - movs r1, #0x2e - bl sub_0817B74C - b _08176A34 - .align 2, 0 -_081769BC: .4byte gUnknown_3005AF0 -_081769C0: .4byte gUnknown_85D2804 -_081769C4: .4byte gUnknown_85D288C -_081769C8: .4byte gUnknown_85D2824 -_081769CC: .4byte gUnknown_85D2854 -_081769D0: .4byte gUnknown_3005B60 -_081769D4: .4byte gUnknown_20205AC -_081769D8: .4byte sub_08176D74 -_081769DC: .4byte gUnknown_85C797C -_081769E0: - ldr r0, _08176A5C - bl LoadCompressedSpriteSheet - ldr r0, _08176A60 - bl LoadCompressedSpriteSheet - ldr r0, _08176A64 - bl LoadCompressedSpriteSheet - ldr r0, _08176A68 - bl LoadSpritePalettes - movs r0, #0x78 - movs r1, #0x2e - bl sub_0817B74C - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _08176A6C - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - adds r4, r4, r0 - strh r2, [r4, #0x12] - ldr r6, _08176A70 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r5, r6, #0 - adds r5, #0x1c - adds r2, r0, r5 - ldr r1, _08176A74 - str r1, [r2] - adds r6, #8 - adds r0, r0, r6 - ldr r1, _08176A78 - str r1, [r0] - movs r0, #0x88 - lsls r0, r0, #1 - movs r1, #0x2e - bl sub_0817B6F4 -_08176A34: - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - strh r2, [r4, #0x14] - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r5, r0, r5 - ldr r1, _08176A7C - str r1, [r5] - adds r0, r0, r6 - ldr r1, _08176A80 - str r1, [r0] - ldr r1, _08176A84 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _08176A9E - .align 2, 0 -_08176A5C: .4byte gUnknown_85D2814 -_08176A60: .4byte gUnknown_85D287C -_08176A64: .4byte gUnknown_85D2824 -_08176A68: .4byte gUnknown_85D2854 -_08176A6C: .4byte gUnknown_3005B60 -_08176A70: .4byte gUnknown_20205AC -_08176A74: .4byte sub_08176D74 -_08176A78: .4byte gUnknown_85C797C -_08176A7C: .4byte sub_08176E1C -_08176A80: .4byte gUnknown_85C79BC -_08176A84: .4byte gUnknown_3002360 -_08176A88: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08176488 - adds r0, r4, #0 - bl sub_0817B268 - movs r0, #0 - strb r0, [r6] - movs r0, #1 - b _08176AA0 -_08176A9E: - movs r0, #0 -_08176AA0: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081768B8 - - thumb_func_start sub_08176AA8 -sub_08176AA8: @ 0x08176AA8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08176B1C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 - ldrh r1, [r4, #8] - movs r2, #8 - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _08176ACE - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - movs r0, #0 - strh r0, [r4, #8] -_08176ACE: - ldrh r1, [r4, #0xa] - movs r2, #0xa - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _08176AE4 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - movs r0, #0 - strh r0, [r4, #0xa] -_08176AE4: - ldrh r1, [r4, #0xc] - movs r2, #0xc - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _08176AFA - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - movs r0, #0 - strh r0, [r4, #0xc] -_08176AFA: - ldrh r1, [r4, #0xe] - movs r2, #0xe - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _08176B10 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - movs r0, #0 - strh r0, [r4, #0xe] -_08176B10: - ldr r1, _08176B20 - movs r0, #1 - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08176B1C: .4byte gUnknown_3005B60 -_08176B20: .4byte gUnknown_203B9F4 - thumb_func_end sub_08176AA8 - - thumb_func_start sub_08176B24 -sub_08176B24: @ 0x08176B24 - push {r4, r5, r6, r7, lr} - adds r3, r0, #0 - adds r4, r2, #0 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - lsls r4, r4, #0x10 - lsrs r5, r4, #0x10 - ldr r0, _08176BE8 - movs r6, #0xc0 - lsls r6, r6, #0x13 - adds r3, r3, r6 - adds r1, r3, #0 - bl LZ77UnCompVram - ldr r0, _08176BEC - adds r1, r5, #0 - movs r2, #0x20 - bl LoadPalette - lsrs r4, r4, #0x14 - lsls r4, r4, #0x1c - lsrs r4, r4, #0x10 - movs r2, #0 - adds r1, r4, #1 - ldr r3, _08176BF0 -_08176B5A: - lsls r0, r2, #1 - adds r0, r0, r7 - adds r0, r0, r6 - strh r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, r3 - bls _08176B5A - movs r2, #0 - adds r0, r4, #2 - adds r6, r4, #0 - adds r6, #0x17 - movs r1, #0x2b - adds r1, r1, r4 - mov ip, r1 - adds r4, #0x41 - ldr r5, _08176BF4 - adds r3, r0, #0 -_08176B80: - lsls r0, r2, #1 - adds r0, r0, r7 - adds r0, r0, r5 - adds r1, r2, r3 - strh r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0x14 - bls _08176B80 - movs r2, #0 - ldr r5, _08176BF8 - adds r3, r6, #0 -_08176B9A: - lsls r0, r2, #1 - adds r0, r0, r7 - adds r0, r0, r5 - adds r1, r2, r3 - strh r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0x13 - bls _08176B9A - movs r2, #0 - ldr r5, _08176BFC - mov r3, ip -_08176BB4: - lsls r0, r2, #1 - adds r0, r0, r7 - adds r0, r0, r5 - adds r1, r2, r3 - strh r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0x15 - bls _08176BB4 - movs r2, #0 - ldr r3, _08176C00 -_08176BCC: - lsls r0, r2, #1 - adds r0, r0, r7 - adds r0, r0, r3 - adds r1, r2, r4 - strh r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0xb - bls _08176BCC - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08176BE8: .4byte gUnknown_85C682C -_08176BEC: .4byte gUnknown_85C0C74 -_08176BF0: .4byte 0x000003FF -_08176BF4: .4byte 0x060001C8 -_08176BF8: .4byte 0x06000248 -_08176BFC: .4byte 0x060002C8 -_08176C00: .4byte 0x06000348 - thumb_func_end sub_08176B24 - - thumb_func_start sub_08176C04 -sub_08176C04: @ 0x08176C04 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r3, r2, #0 - movs r0, #0x3f - ands r0, r2 - adds r1, r0, #0 - adds r1, #0x50 - cmp r2, #0xff - bne _08176C1C - movs r0, #1 - b _08176C42 -_08176C1C: - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - beq _08176C2C - movs r2, #0x80 - lsls r2, r2, #4 - adds r0, r2, #0 - orrs r1, r0 -_08176C2C: - movs r0, #0x40 - ands r3, r0 - cmp r3, #0 - beq _08176C40 - movs r2, #0x80 - lsls r2, r2, #3 - adds r0, r2, #0 - orrs r1, r0 - lsls r0, r1, #0x10 - lsrs r1, r0, #0x10 -_08176C40: - adds r0, r1, #0 -_08176C42: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08176C04 - - thumb_func_start sub_08176C48 -sub_08176C48: @ 0x08176C48 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - str r0, [sp] - ldr r0, [sp, #0x2c] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sl, r1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #4] - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - str r3, [sp, #8] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x14 - lsls r0, r0, #0x1c - lsrs r0, r0, #0x10 - mov sb, r0 - movs r5, #0 -_08176C76: - movs r4, #0 - lsls r7, r5, #1 - ldr r1, [sp, #4] - adds r0, r1, r5 - adds r2, r5, #1 - mov r8, r2 - lsls r0, r0, #6 - ldr r1, [sp, #8] - adds r6, r0, r1 -_08176C88: - adds r0, r7, r5 - adds r0, r0, r4 - ldr r2, [sp] - adds r0, r2, r0 - ldrb r0, [r0] - bl sub_08176C04 - mov r2, sl - adds r1, r2, r4 - lsls r1, r1, #1 - adds r1, r1, r6 - movs r2, #0xc0 - lsls r2, r2, #0x13 - adds r1, r1, r2 - add r0, sb - strh r0, [r1] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #2 - bls _08176C88 - mov r1, r8 - lsls r0, r1, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #4 - bls _08176C76 - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08176C48 - - thumb_func_start sub_08176CCC -sub_08176CCC: @ 0x08176CCC - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - lsrs r1, r1, #0x14 - lsls r1, r1, #0x1c - lsrs r1, r1, #0x10 - movs r2, #0 - ldr r7, _08176D5C - movs r4, #0xc0 - lsls r4, r4, #0x13 - adds r1, #1 - ldr r3, _08176D60 -_08176CEA: - lsls r0, r2, #1 - adds r0, r0, r5 - adds r0, r0, r4 - strh r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, r3 - bls _08176CEA - str r6, [sp] - adds r0, r7, #0 - movs r1, #3 - movs r2, #7 - adds r3, r5, #0 - bl sub_08176C48 - ldr r0, _08176D64 - str r6, [sp] - movs r1, #7 - movs r2, #7 - adds r3, r5, #0 - bl sub_08176C48 - ldr r4, _08176D68 - str r6, [sp] - adds r0, r4, #0 - movs r1, #0xb - movs r2, #7 - adds r3, r5, #0 - bl sub_08176C48 - str r6, [sp] - adds r0, r4, #0 - movs r1, #0x10 - movs r2, #7 - adds r3, r5, #0 - bl sub_08176C48 - ldr r0, _08176D6C - str r6, [sp] - movs r1, #0x14 - movs r2, #7 - adds r3, r5, #0 - bl sub_08176C48 - ldr r0, _08176D70 - str r6, [sp] - movs r1, #0x18 - movs r2, #7 - adds r3, r5, #0 - bl sub_08176C48 - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08176D5C: .4byte gUnknown_85C6C68 -_08176D60: .4byte 0x000003FF -_08176D64: .4byte gUnknown_85C6C77 -_08176D68: .4byte gUnknown_85C6C86 -_08176D6C: .4byte gUnknown_85C6C95 -_08176D70: .4byte gUnknown_85C6CA4 - thumb_func_end sub_08176CCC - - thumb_func_start sub_08176D74 -sub_08176D74: @ 0x08176D74 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08176D8C - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _08176D90 - adds r0, r4, #0 - bl DestroySprite - b _08176E14 - .align 2, 0 -_08176D8C: .4byte gUnknown_203B9F4 -_08176D90: - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r0, #5 - bhi _08176E14 - lsls r0, r0, #2 - ldr r1, _08176DA4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08176DA4: .4byte _08176DA8 -_08176DA8: @ jump table - .4byte _08176DC0 @ case 0 - .4byte _08176DCA @ case 1 - .4byte _08176DD0 @ case 2 - .4byte _08176DDA @ case 3 - .4byte _08176DE4 @ case 4 - .4byte _08176DFA @ case 5 -_08176DC0: - adds r0, r4, #0 - movs r1, #0 - bl StartSpriteAnimIfDifferent - b _08176E14 -_08176DCA: - adds r0, r4, #0 - movs r1, #1 - b _08176DFE -_08176DD0: - adds r0, r4, #0 - movs r1, #2 - bl StartSpriteAnimIfDifferent - b _08176E14 -_08176DDA: - adds r0, r4, #0 - movs r1, #3 - bl StartSpriteAnimIfDifferent - b _08176E14 -_08176DE4: - adds r0, r4, #0 - movs r1, #0 - bl StartSpriteAnimIfDifferent - ldrh r1, [r4, #0x20] - movs r2, #0x20 - ldrsh r0, [r4, r2] - cmp r0, #0x78 - ble _08176E14 - subs r0, r1, #1 - b _08176E12 -_08176DFA: - adds r0, r4, #0 - movs r1, #0 -_08176DFE: - bl StartSpriteAnimIfDifferent - ldrh r2, [r4, #0x20] - movs r0, #0x20 - ldrsh r1, [r4, r0] - movs r0, #0x20 - rsbs r0, r0, #0 - cmp r1, r0 - ble _08176E14 - subs r0, r2, #1 -_08176E12: - strh r0, [r4, #0x20] -_08176E14: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08176D74 - - thumb_func_start sub_08176E1C -sub_08176E1C: @ 0x08176E1C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08176E34 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _08176E38 - adds r0, r4, #0 - bl DestroySprite - b _08176ED4 - .align 2, 0 -_08176E34: .4byte gUnknown_203B9F4 -_08176E38: - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _08176E60 - cmp r0, #1 - bgt _08176E4A - cmp r0, #0 - beq _08176E54 - b _08176ED4 -_08176E4A: - cmp r0, #2 - beq _08176E9C - cmp r0, #3 - beq _08176EBA - b _08176ED4 -_08176E54: - strh r0, [r4, #0x26] - adds r0, r4, #0 - movs r1, #0 - bl StartSpriteAnimIfDifferent - b _08176ED4 -_08176E60: - movs r1, #0x20 - ldrsh r0, [r4, r1] - cmp r0, #0xc8 - ble _08176E72 - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAnimIfDifferent - b _08176E7A -_08176E72: - adds r0, r4, #0 - movs r1, #2 - bl StartSpriteAnimIfDifferent -_08176E7A: - ldrh r2, [r4, #0x20] - movs r0, #0x20 - ldrsh r1, [r4, r0] - movs r0, #0x20 - rsbs r0, r0, #0 - cmp r1, r0 - ble _08176E8C - subs r0, r2, #2 - strh r0, [r4, #0x20] -_08176E8C: - ldr r0, _08176E98 - ldrh r0, [r0] - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - b _08176ED4 - .align 2, 0 -_08176E98: .4byte gUnknown_203B9F2 -_08176E9C: - ldrh r0, [r4, #0x3c] - adds r0, #1 - strh r0, [r4, #0x3c] - adds r0, r4, #0 - movs r1, #0 - bl StartSpriteAnimIfDifferent - ldrh r1, [r4, #0x3c] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _08176ED4 - ldrh r0, [r4, #0x20] - adds r0, #1 - b _08176ED2 -_08176EBA: - adds r0, r4, #0 - movs r1, #0 - bl StartSpriteAnimIfDifferent - ldrh r2, [r4, #0x20] - movs r0, #0x20 - ldrsh r1, [r4, r0] - movs r0, #0x20 - rsbs r0, r0, #0 - cmp r1, r0 - ble _08176ED4 - subs r0, r2, #1 -_08176ED2: - strh r0, [r4, #0x20] -_08176ED4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08176E1C - - thumb_func_start sub_08176EDC -sub_08176EDC: @ 0x08176EDC - push {r4, r5, lr} - sub sp, #4 - adds r5, r0, #0 - ldr r0, _08176EF4 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _08176EF8 - ldrh r0, [r5, #0x3a] - bl FreeAndDestroyMonPicSprite - b _081770A8 - .align 2, 0 -_08176EF4: .4byte gUnknown_203B9F4 -_08176EF8: - ldrh r0, [r5, #0x3c] - adds r0, #1 - strh r0, [r5, #0x3c] - movs r2, #0x2e - ldrsh r0, [r5, r2] - cmp r0, #0xa - bhi _08176F40 - lsls r0, r0, #2 - ldr r1, _08176F10 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08176F10: .4byte _08176F14 -_08176F14: @ jump table - .4byte _08176F40 @ case 0 - .4byte _08176F9A @ case 1 - .4byte _0817701C @ case 2 - .4byte _08177052 @ case 3 - .4byte _08176F40 @ case 4 - .4byte _08176F40 @ case 5 - .4byte _08176F40 @ case 6 - .4byte _08176F40 @ case 7 - .4byte _08176F40 @ case 8 - .4byte _0817708A @ case 9 - .4byte _08177092 @ case 10 -_08176F40: - ldrb r1, [r5, #1] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r5, #1] - movs r0, #0x30 - ldrsh r1, [r5, r0] - movs r0, #0x1f - ands r1, r0 - lsls r1, r1, #1 - ldrb r2, [r5, #3] - movs r0, #0x3f - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #3] - movs r0, #0x10 - strh r0, [r5, #0x32] - ldrh r4, [r5, #0x30] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0x80 - lsls r0, r0, #9 - movs r1, #0x10 - bl __divsi3 - adds r1, r0, #0 - str r1, [sp] - adds r0, r4, #0 - movs r2, #0 - movs r3, #0 - bl SetOamMatrix - adds r2, r5, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - movs r0, #1 - strh r0, [r5, #0x2e] - b _081770A8 -_08176F9A: - ldrh r1, [r5, #0x32] - movs r2, #0x32 - ldrsh r0, [r5, r2] - cmp r0, #0xff - bgt _08176FD0 - adds r0, r1, #0 - adds r0, #8 - strh r0, [r5, #0x32] - ldrh r4, [r5, #0x30] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0x32 - ldrsh r1, [r5, r0] - movs r0, #0x80 - lsls r0, r0, #9 - bl __divsi3 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp] - adds r0, r4, #0 - movs r2, #0 - movs r3, #0 - bl SetOamMatrix - b _08176FD6 -_08176FD0: - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] -_08176FD6: - movs r2, #0x30 - ldrsh r1, [r5, r2] - cmp r1, #2 - beq _081770A8 - cmp r1, #2 - bgt _08176FE8 - cmp r1, #1 - beq _08176FEE - b _081770A8 -_08176FE8: - cmp r1, #3 - beq _08177006 - b _081770A8 -_08176FEE: - ldrh r1, [r5, #0x3c] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _08176FFE - ldrh r0, [r5, #0x22] - adds r0, #1 - strh r0, [r5, #0x22] -_08176FFE: - ldrh r0, [r5, #0x20] - subs r0, #2 - strh r0, [r5, #0x20] - b _081770A8 -_08177006: - ldrh r0, [r5, #0x3c] - ands r1, r0 - cmp r1, #0 - bne _08177014 - ldrh r0, [r5, #0x22] - adds r0, #1 - strh r0, [r5, #0x22] -_08177014: - ldrh r0, [r5, #0x20] - adds r0, #2 - strh r0, [r5, #0x20] - b _081770A8 -_0817701C: - ldrh r1, [r5, #0x34] - movs r2, #0x34 - ldrsh r0, [r5, r2] - cmp r0, #0 - beq _0817702C - subs r0, r1, #1 - strh r0, [r5, #0x34] - b _081770A8 -_0817702C: - movs r1, #0xf4 - lsls r1, r1, #4 - movs r0, #0x50 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0x10 - bl SetGpuReg - ldrb r1, [r5, #1] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r5, #1] - movs r0, #0x10 - strh r0, [r5, #0x34] - b _0817708A -_08177052: - ldrh r1, [r5, #0x34] - movs r2, #0x34 - ldrsh r0, [r5, r2] - cmp r0, #0 - beq _08177078 - subs r1, #1 - strh r1, [r5, #0x34] - movs r0, #0x34 - ldrsh r2, [r5, r0] - movs r0, #0x10 - subs r0, r0, r2 - lsls r0, r0, #8 - adds r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - b _081770A8 -_08177078: - adds r2, r5, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - movs r0, #9 - strh r0, [r5, #0x2e] - b _081770A8 -_0817708A: - ldrh r0, [r5, #0x2e] - adds r0, #1 - strh r0, [r5, #0x2e] - b _081770A8 -_08177092: - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - ldrh r0, [r5, #0x3a] - bl FreeAndDestroyMonPicSprite -_081770A8: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_08176EDC - - thumb_func_start sub_081770B0 -sub_081770B0: @ 0x081770B0 - push {r4, r5, r6, r7, lr} - adds r5, r3, #0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r3, r5, #0 - bl CreateMonSpriteFromNationalDexNumber - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r6, _08177138 - lsls r1, r4, #4 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r2, r1, r6 - ldrb r3, [r2, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r3 - movs r3, #4 - orrs r0, r3 - strb r0, [r2, #5] - adds r0, r5, #1 - strh r0, [r2, #0x30] - movs r0, #0x3e - adds r0, r0, r2 - mov ip, r0 - ldrb r0, [r0] - orrs r0, r3 - mov r3, ip - strb r0, [r3] - adds r0, r6, #0 - adds r0, #0x1c - adds r1, r1, r0 - ldr r0, _0817713C - str r0, [r1] - strh r4, [r2, #0x3a] - ldr r0, _08177140 - movs r7, #0x20 - ldrsh r1, [r2, r7] - movs r3, #0x22 - ldrsh r2, [r2, r3] - movs r3, #1 - bl CreateSprite - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - strh r4, [r0, #0x2e] - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - adds r1, r5, #0 - bl StartSpriteAnimIfDifferent - adds r0, r4, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08177138: .4byte gUnknown_20205AC -_0817713C: .4byte sub_08176EDC -_08177140: .4byte gUnknown_85C7A14 - thumb_func_end sub_081770B0 - - thumb_func_start sub_08177144 -sub_08177144: @ 0x08177144 - push {r4, lr} - adds r3, r0, #0 - ldr r4, _08177170 - movs r1, #0x2e - ldrsh r0, [r3, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - movs r2, #0x2e - ldrsh r0, [r1, r2] - cmp r0, #0xa - beq _08177168 - ldr r0, _08177174 - movs r2, #0 - ldrsh r0, [r0, r2] - cmp r0, #0 - beq _08177178 -_08177168: - adds r0, r3, #0 - bl DestroySprite - b _0817720C - .align 2, 0 -_08177170: .4byte gUnknown_20205AC -_08177174: .4byte gUnknown_203B9F4 -_08177178: - adds r0, r1, #0 - adds r0, #0x3e - ldrb r0, [r0] - movs r1, #0x3e - adds r1, r1, r3 - mov ip, r1 - movs r1, #4 - ands r1, r0 - mov r0, ip - ldrb r2, [r0] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - movs r2, #0x2e - ldrsh r1, [r3, r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r1, [r0, #1] - movs r0, #0xc - ands r0, r1 - ldrb r2, [r3, #1] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #1] - movs r0, #0x2e - ldrsh r2, [r3, r0] - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r0, [r0, #1] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - movs r2, #4 - rsbs r2, r2, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #1] - movs r2, #0x2e - ldrsh r1, [r3, r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r0, [r0, #3] - movs r1, #0x3e - ands r1, r0 - ldrb r2, [r3, #3] - movs r0, #0x3f - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #3] - movs r0, #0x2e - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r0, [r0, #0x20] - strh r0, [r3, #0x20] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r0, [r0, #0x22] - strh r0, [r3, #0x22] -_0817720C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08177144 - - thumb_func_start sub_08177214 -sub_08177214: @ 0x08177214 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _081772AC - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetStarterPokemon - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sl, r0 - movs r4, #1 - movs r6, #0 - ldr r5, _081772B0 -_08177240: - adds r0, r4, #0 - movs r1, #1 - bl GetSetPokedexFlag - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08177260 - ldr r0, _081772B4 - ldr r0, [r0] - lsls r1, r6, #1 - adds r0, #0x7e - adds r0, r0, r1 - strh r4, [r0] - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_08177260: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, r5 - bls _08177240 - adds r4, r6, #0 - ldr r0, _081772B0 - ldr r1, _081772B4 - mov r8, r1 - lsls r7, r4, #0x10 - cmp r4, r0 - bhi _08177292 - mov r5, r8 - movs r3, #0 - adds r2, r0, #0 -_0817727E: - ldr r0, [r5] - lsls r1, r4, #1 - adds r0, #0x7e - adds r0, r0, r1 - strh r3, [r0] - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, r2 - bls _0817727E -_08177292: - mov r2, r8 - ldr r1, [r2] - ldr r2, _081772B8 - adds r0, r1, r2 - strh r6, [r0] - lsrs r0, r7, #0x10 - cmp r0, #0x37 - bhi _081772BC - adds r0, r1, #0 - adds r0, #0x7c - strh r6, [r0] - b _081772C2 - .align 2, 0 -_081772AC: .4byte 0x00004023 -_081772B0: .4byte 0x00000181 -_081772B4: .4byte gUnknown_203B9B4 -_081772B8: .4byte 0x00000382 -_081772BC: - adds r1, #0x7c - movs r0, #0x38 - strh r0, [r1] -_081772C2: - movs r6, #0 - ldr r0, _081772D0 - mov sb, r0 - ldr r1, _081772D4 - mov r8, r1 - movs r7, #0 - b _081772DC - .align 2, 0 -_081772D0: .4byte gUnknown_203B9B4 -_081772D4: .4byte 0x00000382 -_081772D8: - cmp r6, #0x37 - bhi _08177338 -_081772DC: - bl Random - mov r2, sb - ldr r4, [r2] - mov r1, r8 - adds r5, r4, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrh r1, [r5] - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - lsls r1, r6, #1 - adds r1, r4, r1 - lsls r0, r3, #1 - adds r4, #0x7e - adds r2, r4, r0 - ldrh r0, [r2] - strh r0, [r1] - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - strh r7, [r2] - ldrh r0, [r5] - subs r0, #1 - strh r0, [r5] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r3, r0 - beq _0817732C - ldrh r0, [r5] - lsls r0, r0, #1 - adds r0, r4, r0 - ldrh r0, [r0] - strh r0, [r2] - ldrh r0, [r5] - lsls r0, r0, #1 - adds r0, r4, r0 - strh r7, [r0] -_0817732C: - mov r2, sb - ldr r0, [r2] - add r0, r8 - ldrh r0, [r0] - cmp r0, #0 - bne _081772D8 -_08177338: - ldr r1, _08177380 - ldr r2, [r1] - adds r3, r2, #0 - adds r3, #0x7c - ldrh r0, [r3] - mov r8, r1 - cmp r0, #0x37 - bhi _08177384 - adds r6, r0, #0 - movs r3, #0 - cmp r6, #0x37 - bhi _0817737A - mov r4, r8 -_08177352: - ldr r2, [r4] - lsls r1, r6, #1 - adds r1, r2, r1 - lsls r0, r3, #1 - adds r0, r2, r0 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - adds r2, #0x7c - ldrh r2, [r2] - cmp r3, r2 - bne _08177370 - movs r3, #0 -_08177370: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0x37 - bls _08177352 -_0817737A: - mov r1, r8 - ldr r0, [r1] - b _081773C4 - .align 2, 0 -_08177380: .4byte gUnknown_203B9B4 -_08177384: - movs r4, #0 - ldrh r0, [r2] - cmp r0, sl - beq _081773A2 - adds r1, r2, #0 -_0817738E: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - lsls r0, r4, #1 - adds r0, r1, r0 - ldrh r0, [r0] - cmp r0, sl - beq _081773A2 - cmp r4, #0x37 - bls _0817738E -_081773A2: - mov r0, r8 - ldr r2, [r0] - adds r0, r2, #0 - adds r0, #0x7c - ldrh r0, [r0] - subs r0, #1 - cmp r4, r0 - bge _081773C2 - lsls r0, r4, #1 - adds r0, r2, r0 - adds r2, #0x6e - ldrh r1, [r2] - strh r1, [r0] - mov r1, sl - strh r1, [r2] - b _081773CA -_081773C2: - adds r0, r2, #0 -_081773C4: - adds r0, #0x6e - mov r2, sl - strh r2, [r0] -_081773CA: - mov r1, r8 - ldr r0, [r1] - adds r0, #0x7c - movs r1, #0x38 - strh r1, [r0] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08177214 - - thumb_func_start ResetLotteryCorner -ResetLotteryCorner: @ 0x081773E4 - push {r4, lr} - bl Random - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - bl Random - lsls r0, r0, #0x10 - orrs r0, r4 - bl SetLotteryNumber - ldr r0, _0817740C - movs r1, #0 - bl VarSet - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0817740C: .4byte 0x00004045 - thumb_func_end ResetLotteryCorner - - thumb_func_start SetRandomLotteryNumber -SetRandomLotteryNumber: @ 0x08177410 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - bl Random - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - subs r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, _0817744C - cmp r4, r0 - beq _08177440 - ldr r5, _08177450 - ldr r3, _08177454 - adds r2, r0, #0 -_08177430: - adds r0, r1, #0 - muls r0, r5, r0 - adds r1, r0, r3 - subs r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, r2 - bne _08177430 -_08177440: - adds r0, r1, #0 - bl SetLotteryNumber - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0817744C: .4byte 0x0000FFFF -_08177450: .4byte 0x41C64E6D -_08177454: .4byte 0x00003039 - thumb_func_end SetRandomLotteryNumber - - thumb_func_start RetrieveLotteryNumber -RetrieveLotteryNumber: @ 0x08177458 - push {lr} - bl GetLotteryNumber - ldr r1, _08177468 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08177468: .4byte gUnknown_2037290 - thumb_func_end RetrieveLotteryNumber - - thumb_func_start PickLotteryCornerTicket -PickLotteryCornerTicket: @ 0x0817746C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - ldr r1, _081775A8 - movs r0, #0 - strh r0, [r1] - movs r0, #0 - str r0, [sp, #4] - movs r1, #0 - str r1, [sp] - movs r7, #0 -_08177488: - movs r0, #0x64 - adds r1, r7, #0 - muls r1, r0, r1 - ldr r0, _081775AC - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _081774E4 - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - bne _081774DA - adds r0, r4, #0 - movs r1, #1 - bl GetMonData - adds r1, r0, #0 - ldr r0, _081775B0 - ldrh r0, [r0] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl GetMatchingDigits - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081775A8 - ldrh r2, [r1] - cmp r0, r2 - bls _081774DA - cmp r0, #1 - bls _081774DA - subs r0, #1 - strh r0, [r1] - movs r0, #0xe - str r0, [sp] - str r7, [sp, #4] -_081774DA: - adds r0, r7, #1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - cmp r7, #5 - bls _08177488 -_081774E4: - movs r7, #0 - ldr r1, _081775B4 - mov sb, r1 -_081774EA: - movs r6, #0 - adds r2, r7, #1 - mov sl, r2 - lsls r0, r7, #2 - adds r0, r0, r7 - mov r8, r0 -_081774F6: - mov r1, r8 - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #5 - adds r5, r0, #4 - mov r2, sb - ldr r0, [r2] - adds r0, r0, r5 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r4, r1, #4 - adds r0, r0, r4 - movs r1, #0xb - bl sub_0806A1B4 - cmp r0, #0 - beq _0817755E - mov r1, sb - ldr r0, [r1] - adds r0, r0, r5 - adds r0, r0, r4 - movs r1, #0x2d - bl sub_0806A1B4 - cmp r0, #0 - bne _0817755E - mov r2, sb - ldr r0, [r2] - adds r0, r0, r5 - adds r0, r0, r4 - movs r1, #1 - bl sub_0806A1B4 - adds r1, r0, #0 - ldr r0, _081775B0 - ldrh r0, [r0] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl GetMatchingDigits - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081775A8 - ldrh r2, [r1] - cmp r0, r2 - bls _0817755E - cmp r0, #1 - bls _0817755E - subs r0, #1 - strh r0, [r1] - str r7, [sp] - str r6, [sp, #4] -_0817755E: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0x1d - bls _081774F6 - mov r1, sl - lsls r0, r1, #0x10 - lsrs r7, r0, #0x10 - cmp r7, #0xd - bls _081774EA - ldr r3, _081775A8 - ldrh r0, [r3] - cmp r0, #0 - beq _081775FA - ldr r2, _081775B8 - ldr r1, _081775BC - subs r0, #1 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2] - ldr r2, [sp] - cmp r2, #0xe - bne _081775C8 - ldr r1, _081775C0 - movs r0, #0 - strh r0, [r1] - movs r0, #0x64 - ldr r1, [sp, #4] - muls r0, r1, r0 - ldr r1, _081775AC - adds r0, r0, r1 - ldr r2, _081775C4 - movs r1, #2 - bl GetMonData - b _081775F4 - .align 2, 0 -_081775A8: .4byte gUnknown_2037280 -_081775AC: .4byte gUnknown_2024190 -_081775B0: .4byte gUnknown_2037290 -_081775B4: .4byte gUnknown_3005AF4 -_081775B8: .4byte gUnknown_2037282 -_081775BC: .4byte gUnknown_85C7A2C -_081775C0: .4byte gUnknown_2037284 -_081775C4: .4byte gUnknown_2021C40 -_081775C8: - ldr r1, _0817760C - movs r0, #1 - strh r0, [r1] - ldr r2, _08177610 - ldr r1, [sp] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r1, r0, #4 - subs r1, r1, r0 - lsls r1, r1, #5 - adds r1, #4 - ldr r0, [r2] - adds r0, r0, r1 - ldr r2, [sp, #4] - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #4 - adds r0, r0, r1 - ldr r2, _08177614 - movs r1, #2 - bl sub_0806A1B4 -_081775F4: - ldr r0, _08177614 - bl StringGetEnd10 -_081775FA: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0817760C: .4byte gUnknown_2037284 -_08177610: .4byte gUnknown_3005AF4 -_08177614: .4byte gUnknown_2021C40 - thumb_func_end PickLotteryCornerTicket - - thumb_func_start GetMatchingDigits -GetMatchingDigits: @ 0x08177618 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - movs r0, #0 - mov r8, r0 - movs r7, #0 - ldr r1, _08177698 - mov sl, r1 - ldr r0, _0817769C - mov sb, r0 -_08177638: - adds r0, r6, #0 - movs r1, #0xa - bl __umodsi3 - adds r4, r0, #0 - mov r1, sl - strh r4, [r1] - adds r0, r5, #0 - movs r1, #0xa - bl __umodsi3 - mov r1, sb - strh r0, [r1] - lsls r4, r4, #0x10 - lsls r0, r0, #0x10 - cmp r4, r0 - bne _08177686 - adds r0, r6, #0 - movs r1, #0xa - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r0, r5, #0 - movs r1, #0xa - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #4 - bls _08177638 -_08177686: - mov r0, r8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08177698: .4byte gUnknown_203B9B8 -_0817769C: .4byte gUnknown_203B9BA - thumb_func_end GetMatchingDigits - - thumb_func_start SetLotteryNumber -SetLotteryNumber: @ 0x081776A0 - push {r4, lr} - adds r1, r0, #0 - lsrs r4, r1, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, _081776C0 - bl VarSet - ldr r0, _081776C4 - adds r1, r4, #0 - bl VarSet - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081776C0: .4byte 0x0000404B -_081776C4: .4byte 0x0000404C - thumb_func_end SetLotteryNumber - - thumb_func_start GetLotteryNumber -GetLotteryNumber: @ 0x081776C8 - push {r4, lr} - ldr r0, _081776E8 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r0, _081776EC - bl VarGet - lsls r0, r0, #0x10 - orrs r0, r4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081776E8: .4byte 0x0000404B -_081776EC: .4byte 0x0000404C - thumb_func_end GetLotteryNumber - - thumb_func_start SetLotteryNumber16_Unused -SetLotteryNumber16_Unused: @ 0x081776F0 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl SetLotteryNumber - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetLotteryNumber16_Unused - - thumb_func_start VblankCB -VblankCB: @ 0x08177700 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end VblankCB - - thumb_func_start CB2_ShowDiploma -CB2_ShowDiploma: @ 0x08177714 - push {r4, r5, lr} - sub sp, #0xc - movs r0, #0 - bl SetVBlankCallback - movs r0, #0 - movs r1, #0 - bl SetGpuReg - movs r0, #0xe - movs r1, #0 - bl SetGpuReg - movs r0, #0xc - movs r1, #0 - bl SetGpuReg - movs r0, #0xa - movs r1, #0 - bl SetGpuReg - movs r0, #8 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1c - movs r1, #0 - bl SetGpuReg - movs r0, #0x1e - movs r1, #0 - bl SetGpuReg - movs r0, #0x18 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1a - movs r1, #0 - bl SetGpuReg - movs r0, #0x14 - movs r1, #0 - bl SetGpuReg - movs r0, #0x16 - movs r1, #0 - bl SetGpuReg - movs r0, #0x10 - movs r1, #0 - bl SetGpuReg - movs r0, #0x12 - movs r1, #0 - bl SetGpuReg - add r1, sp, #4 - movs r0, #0 - strh r0, [r1] - ldr r1, _08177868 - add r0, sp, #4 - str r0, [r1] - movs r0, #0xc0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _0817786C - str r0, [r1, #8] - ldr r0, [r1, #8] - movs r5, #0 - str r5, [sp, #8] - add r0, sp, #8 - str r0, [r1] - movs r0, #0xe0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _08177870 - str r0, [r1, #8] - ldr r0, [r1, #8] - add r0, sp, #4 - strh r5, [r0] - str r0, [r1] - movs r0, #0xa0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _08177874 - str r0, [r1, #8] - ldr r0, [r1, #8] - bl ScanlineEffect_Stop - bl ResetTasks - bl ResetSpriteData - bl ResetPaletteFade - bl FreeAllSpritePalettes - ldr r0, _08177878 - movs r1, #0 - movs r2, #0x40 - bl LoadPalette - ldr r4, _0817787C - movs r0, #0x80 - lsls r0, r0, #5 - bl sub_08000BC8 - str r0, [r4] - bl InitDiplomaBg - bl InitDiplomaWindow - bl reset_temp_tile_data_buffers - ldr r1, _08177880 - str r5, [sp] - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram -_08177808: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _08177808 - ldr r0, _08177884 - ldr r1, _0817787C - ldr r1, [r1] - bl sub_08034370 - movs r0, #1 - bl CopyBgTilemapBufferToVram - bl sub_08177960 - movs r4, #1 - rsbs r4, r4, #0 - adds r0, r4, #0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - str r5, [sp] - adds r0, r4, #0 - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - movs r0, #1 - bl EnableInterrupts - ldr r0, _08177888 - bl SetVBlankCallback - ldr r0, _0817788C - bl SetMainCallback2 - ldr r0, _08177890 - movs r1, #0 - bl CreateTask - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08177868: .4byte 0x040000D4 -_0817786C: .4byte 0x8100C000 -_08177870: .4byte 0x85000100 -_08177874: .4byte 0x81000200 -_08177878: .4byte gUnknown_85C7A34 -_0817787C: .4byte gUnknown_203B9BC -_08177880: .4byte gUnknown_85C81B0 -_08177884: .4byte gUnknown_85C7A74 -_08177888: .4byte VblankCB -_0817788C: .4byte LinkPartnerHandleUnknownYesNoBox -_08177890: .4byte sub_081778AC - thumb_func_end CB2_ShowDiploma - - thumb_func_start LinkPartnerHandleUnknownYesNoBox -LinkPartnerHandleUnknownYesNoBox: @ 0x08177894 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LinkPartnerHandleUnknownYesNoBox - - thumb_func_start sub_081778AC -sub_081778AC: @ 0x081778AC - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _081778D0 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081778CC - ldr r0, _081778D4 - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081778D8 - str r0, [r1] -_081778CC: - pop {r0} - bx r0 - .align 2, 0 -_081778D0: .4byte gUnknown_2037C74 -_081778D4: .4byte gUnknown_3005B60 -_081778D8: .4byte Task_DiplomaWaitForKeyPress - thumb_func_end sub_081778AC - - thumb_func_start Task_DiplomaWaitForKeyPress -Task_DiplomaWaitForKeyPress: @ 0x081778DC - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _08177918 - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _0817790E - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _0817791C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _08177920 - str r1, [r0] -_0817790E: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08177918: .4byte gUnknown_3002360 -_0817791C: .4byte gUnknown_3005B60 -_08177920: .4byte Task_DiplomaFadeOut - thumb_func_end Task_DiplomaWaitForKeyPress - - thumb_func_start Task_DiplomaFadeOut -Task_DiplomaFadeOut: @ 0x08177924 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _08177954 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0817794E - ldr r0, _08177958 - ldr r0, [r0] - bl Free - bl FreeAllWindowBuffers - adds r0, r4, #0 - bl DestroyTask - ldr r0, _0817795C - bl SetMainCallback2 -_0817794E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08177954: .4byte gUnknown_2037C74 -_08177958: .4byte gUnknown_203B9BC -_0817795C: .4byte sub_08085B50 - thumb_func_end Task_DiplomaFadeOut - - thumb_func_start sub_08177960 -sub_08177960: @ 0x08177960 - push {r4, lr} - sub sp, #0xc - ldr r0, _081779D8 - movs r1, #0 - movs r2, #2 - bl PrintDiplomaText - ldr r1, _081779DC - mov r0, sp - bl StringCopy - movs r2, #0 - ldr r0, _081779E0 - ldr r3, [r0] -_0817797C: - adds r0, r2, #6 - mov r4, sp - adds r1, r4, r0 - adds r0, r3, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #4 - bls _0817797C - adds r0, r2, #6 - adds r1, r4, r0 - movs r0, #0xff - strb r0, [r1] - mov r0, sp - movs r1, #0x30 - movs r2, #2 - bl PrintDiplomaText - ldr r0, _081779E4 - movs r1, #0x58 - movs r2, #2 - bl PrintDiplomaText - ldr r0, _081779E8 - movs r1, #0 - movs r2, #0x22 - bl PrintDiplomaText - bl sub_080BFE9C - lsls r0, r0, #0x10 - cmp r0, #0 - beq _081779F0 - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #0x14 - bl SetGpuReg - ldr r0, _081779EC - movs r1, #0 - movs r2, #0x22 - bl PrintDiplomaText - b _08177A02 - .align 2, 0 -_081779D8: .4byte gUnknown_85C8BA8 -_081779DC: .4byte gUnknown_85C8C00 -_081779E0: .4byte gUnknown_3005AF0 -_081779E4: .4byte gUnknown_85C8BAE -_081779E8: .4byte gUnknown_85C8BBB -_081779EC: .4byte gUnknown_85C8BB6 -_081779F0: - movs r0, #0x14 - movs r1, #0 - bl SetGpuReg - ldr r0, _08177A24 - movs r1, #0 - movs r2, #0x22 - bl PrintDiplomaText -_08177A02: - ldr r0, _08177A28 - movs r1, #0x30 - movs r2, #0x72 - bl PrintDiplomaText - movs r0, #0 - bl PutWindowTilemap - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08177A24: .4byte gUnknown_85C8BB1 -_08177A28: .4byte gUnknown_85C8BF2 - thumb_func_end sub_08177960 - - thumb_func_start InitDiplomaBg -InitDiplomaBg: @ 0x08177A2C - push {lr} - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _08177A7C - movs r0, #0 - movs r2, #2 - bl InitBgsFromTemplates - ldr r0, _08177A80 - ldr r1, [r0] - movs r0, #1 - bl SetBgTilemapBuffer - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 -_08177A7C: .4byte gUnknown_85C8C08 -_08177A80: .4byte gUnknown_203B9BC - thumb_func_end InitDiplomaBg - - thumb_func_start InitDiplomaWindow -InitDiplomaWindow: @ 0x08177A84 - push {lr} - ldr r0, _08177AAC - bl InitWindows - bl sub_08004480 - ldr r0, _08177AB0 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - movs r0, #0 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #0 - bl PutWindowTilemap - pop {r0} - bx r0 - .align 2, 0 -_08177AAC: .4byte gUnknown_85C8C10 -_08177AB0: .4byte gUnknown_85D7B04 - thumb_func_end InitDiplomaWindow - - thumb_func_start PrintDiplomaText -PrintDiplomaText: @ 0x08177AB4 - push {r4, r5, r6, lr} - sub sp, #0x18 - adds r6, r0, #0 - adds r4, r1, #0 - adds r5, r2, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r1, _08177AF8 - add r0, sp, #0x14 - movs r2, #3 - bl memcpy - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - add r0, sp, #0x14 - str r0, [sp, #8] - movs r0, #1 - rsbs r0, r0, #0 - str r0, [sp, #0xc] - str r6, [sp, #0x10] - movs r0, #0 - movs r1, #1 - adds r2, r4, #0 - adds r3, r5, #0 - bl AddTextPrinterParameterized4 - add sp, #0x18 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08177AF8: .4byte gUnknown_85C8C20 - thumb_func_end PrintDiplomaText - - thumb_func_start DoBerryTagScreen -DoBerryTagScreen: @ 0x08177AFC - push {r4, lr} - ldr r4, _08177B2C - ldr r0, _08177B30 - bl AllocZeroed - str r0, [r4] - ldr r0, _08177B34 - ldrh r0, [r0] - bl ItemIdToBerryType - ldr r1, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0xc0 - lsls r2, r2, #5 - adds r1, r1, r2 - strh r0, [r1] - ldr r0, _08177B38 - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08177B2C: .4byte gUnknown_203B9C0 -_08177B30: .4byte 0x0000180C -_08177B34: .4byte gUnknown_203CB48 -_08177B38: .4byte CB2_InitBerryTagScreen - thumb_func_end DoBerryTagScreen - - thumb_func_start sub_08177B3C -sub_08177B3C: @ 0x08177B3C - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08177B3C - - thumb_func_start sub_08177B58 -sub_08177B58: @ 0x08177B58 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08177B58 - - thumb_func_start CB2_InitBerryTagScreen -CB2_InitBerryTagScreen: @ 0x08177B6C - push {lr} -_08177B6E: - bl sub_081221F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08177B92 - bl InitBerryTagScreen - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08177B92 - bl sub_081221B8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08177B6E -_08177B92: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CB2_InitBerryTagScreen - - thumb_func_start InitBerryTagScreen -InitBerryTagScreen: @ 0x08177B98 - push {lr} - sub sp, #4 - ldr r0, _08177BB8 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0xf - bls _08177BAC - b _08177CDC -_08177BAC: - lsls r0, r0, #2 - ldr r1, _08177BBC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08177BB8: .4byte gUnknown_3002360 -_08177BBC: .4byte _08177BC0 -_08177BC0: @ jump table - .4byte _08177C00 @ case 0 - .4byte _08177C0E @ case 1 - .4byte _08177C14 @ case 2 - .4byte _08177C28 @ case 3 - .4byte _08177C2E @ case 4 - .4byte _08177C34 @ case 5 - .4byte _08177C44 @ case 6 - .4byte _08177C60 @ case 7 - .4byte _08177C6C @ case 8 - .4byte _08177C72 @ case 9 - .4byte _08177C78 @ case 10 - .4byte _08177C7E @ case 11 - .4byte _08177C84 @ case 12 - .4byte _08177C8E @ case 13 - .4byte _08177C9C @ case 14 - .4byte _08177CAA @ case 15 -_08177C00: - bl SetVBlankHBlankCallbacksToNull - bl ResetVramOamAndBgCntRegs - bl sub_08199640 - b _08177CC4 -_08177C0E: - bl ScanlineEffect_Stop - b _08177CC4 -_08177C14: - bl ResetPaletteFade - ldr r2, _08177C24 - ldrb r0, [r2, #8] - movs r1, #0x80 - orrs r0, r1 - b _08177CC2 - .align 2, 0 -_08177C24: .4byte gUnknown_2037C74 -_08177C28: - bl ResetSpriteData - b _08177CC4 -_08177C2E: - bl FreeAllSpritePalettes - b _08177CC4 -_08177C34: - bl sub_081221B8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08177CC4 - bl ResetTasks - b _08177CC4 -_08177C44: - bl sub_08177CFC - ldr r0, _08177C58 - ldr r0, [r0] - ldr r1, _08177C5C - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0] - b _08177CC4 - .align 2, 0 -_08177C58: .4byte gUnknown_203B9C0 -_08177C5C: .4byte 0x00001808 -_08177C60: - bl LoadBerryTagGfx - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08177CF4 - b _08177CC4 -_08177C6C: - bl sub_08177EF0 - b _08177CC4 -_08177C72: - bl sub_08177F78 - b _08177CC4 -_08177C78: - bl PrintAllBerryData - b _08177CC4 -_08177C7E: - bl CreateBerrySprite - b _08177CC4 -_08177C84: - bl CreateFlavorCircleSprites - bl SetFlavorCirclesVisiblity - b _08177CC4 -_08177C8E: - ldr r0, _08177C98 - movs r1, #0 - bl CreateTask - b _08177CC4 - .align 2, 0 -_08177C98: .4byte Task_HandleInput -_08177C9C: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - b _08177CC4 -_08177CAA: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r2, _08177CD4 - ldrb r1, [r2, #8] - movs r0, #0x7f - ands r0, r1 -_08177CC2: - strb r0, [r2, #8] -_08177CC4: - ldr r1, _08177CD8 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _08177CF4 - .align 2, 0 -_08177CD4: .4byte gUnknown_2037C74 -_08177CD8: .4byte gUnknown_3002360 -_08177CDC: - ldr r0, _08177CEC - bl SetVBlankCallback - ldr r0, _08177CF0 - bl SetMainCallback2 - movs r0, #1 - b _08177CF6 - .align 2, 0 -_08177CEC: .4byte sub_08177B58 -_08177CF0: .4byte sub_08177B3C -_08177CF4: - movs r0, #0 -_08177CF6: - add sp, #4 - pop {r1} - bx r1 - thumb_func_end InitBerryTagScreen - - thumb_func_start sub_08177CFC -sub_08177CFC: @ 0x08177CFC - push {r4, lr} - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _08177D68 - movs r0, #0 - movs r2, #4 - bl InitBgsFromTemplates - ldr r4, _08177D6C - ldr r1, [r4] - movs r0, #2 - bl SetBgTilemapBuffer - ldr r1, [r4] - movs r0, #0x80 - lsls r0, r0, #4 - adds r1, r1, r0 - movs r0, #3 - bl SetBgTilemapBuffer - bl ResetAllBgsCoordinates - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #3 - bl schedule_bg_copy_tilemap_to_vram - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08177D68: .4byte gUnknown_85CD068 -_08177D6C: .4byte gUnknown_203B9C0 - thumb_func_end sub_08177CFC - - thumb_func_start LoadBerryTagGfx -LoadBerryTagGfx: @ 0x08177D70 - push {r4, r5, r6, r7, lr} - sub sp, #4 - ldr r1, _08177D90 - ldr r0, [r1] - ldr r2, _08177D94 - adds r0, r0, r2 - ldrh r0, [r0] - adds r7, r1, #0 - cmp r0, #5 - bls _08177D86 - b _08177ED4 -_08177D86: - lsls r0, r0, #2 - ldr r1, _08177D98 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08177D90: .4byte gUnknown_203B9C0 -_08177D94: .4byte 0x00001808 -_08177D98: .4byte _08177D9C -_08177D9C: @ jump table - .4byte _08177DB4 @ case 0 - .4byte _08177DE0 @ case 1 - .4byte _08177E04 @ case 2 - .4byte _08177E24 @ case 3 - .4byte _08177E90 @ case 4 - .4byte _08177EB0 @ case 5 -_08177DB4: - bl reset_temp_tile_data_buffers - ldr r1, _08177DD4 - movs r0, #0 - str r0, [sp] - movs r0, #2 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - ldr r0, _08177DD8 - ldr r1, [r0] - ldr r0, _08177DDC - adds r1, r1, r0 - b _08177EBE - .align 2, 0 -_08177DD4: .4byte gUnknown_8D9BD90 -_08177DD8: .4byte gUnknown_203B9C0 -_08177DDC: .4byte 0x00001808 -_08177DE0: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08177DEE - b _08177EE4 -_08177DEE: - ldr r0, _08177DFC - ldr r4, _08177E00 - ldr r1, [r4] - bl sub_08034370 - ldr r1, [r4] - b _08177EBA - .align 2, 0 -_08177DFC: .4byte gUnknown_8D9C254 -_08177E00: .4byte gUnknown_203B9C0 -_08177E04: - ldr r0, _08177E1C - ldr r1, [r7] - movs r2, #0x80 - lsls r2, r2, #5 - adds r1, r1, r2 - bl sub_08034370 - ldr r1, [r7] - ldr r0, _08177E20 - adds r1, r1, r0 - b _08177EBE - .align 2, 0 -_08177E1C: .4byte gUnknown_8D9C3E4 -_08177E20: .4byte 0x00001808 -_08177E24: - ldr r0, _08177E50 - ldr r0, [r0] - ldrb r0, [r0, #8] - cmp r0, #0 - bne _08177E60 - movs r2, #0 - ldr r6, _08177E54 - movs r5, #0x80 - lsls r5, r5, #4 - ldr r4, _08177E58 - ldr r3, _08177E5C -_08177E3A: - ldr r0, [r6] - lsls r1, r2, #1 - adds r0, r0, r5 - adds r0, r0, r1 - strh r4, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, r3 - bls _08177E3A - b _08177E80 - .align 2, 0 -_08177E50: .4byte gUnknown_3005AF0 -_08177E54: .4byte gUnknown_203B9C0 -_08177E58: .4byte 0x00004042 -_08177E5C: .4byte 0x000003FF -_08177E60: - movs r2, #0 - ldr r6, _08177E84 - movs r5, #0x80 - lsls r5, r5, #4 - ldr r4, _08177E88 - ldr r3, _08177E8C -_08177E6C: - ldr r0, [r6] - lsls r1, r2, #1 - adds r0, r0, r5 - adds r0, r0, r1 - strh r4, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, r3 - bls _08177E6C -_08177E80: - ldr r1, [r7] - b _08177EBA - .align 2, 0 -_08177E84: .4byte gUnknown_203B9C0 -_08177E88: .4byte 0x00005042 -_08177E8C: .4byte 0x000003FF -_08177E90: - ldr r0, _08177EA4 - movs r1, #0 - movs r2, #0xc0 - bl LoadCompressedPalette - ldr r0, _08177EA8 - ldr r1, [r0] - ldr r0, _08177EAC - adds r1, r1, r0 - b _08177EBE - .align 2, 0 -_08177EA4: .4byte gUnknown_8D9C1AC -_08177EA8: .4byte gUnknown_203B9C0 -_08177EAC: .4byte 0x00001808 -_08177EB0: - ldr r0, _08177EC8 - bl LoadCompressedSpriteSheet - ldr r0, _08177ECC - ldr r1, [r0] -_08177EBA: - ldr r2, _08177ED0 - adds r1, r1, r2 -_08177EBE: - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _08177EE4 - .align 2, 0 -_08177EC8: .4byte gUnknown_855A91C -_08177ECC: .4byte gUnknown_203B9C0 -_08177ED0: .4byte 0x00001808 -_08177ED4: - ldr r0, _08177EE0 - bl LoadCompressedSpritePalette - movs r0, #1 - b _08177EE6 - .align 2, 0 -_08177EE0: .4byte gUnknown_855A924 -_08177EE4: - movs r0, #0 -_08177EE6: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end LoadBerryTagGfx - - thumb_func_start sub_08177EF0 -sub_08177EF0: @ 0x08177EF0 - push {r4, lr} - ldr r0, _08177F2C - bl InitWindows - bl sub_08004480 - ldr r0, _08177F30 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - movs r4, #0 -_08177F08: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl PutWindowTilemap - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #3 - bls _08177F08 - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08177F2C: .4byte gUnknown_85CD0A0 -_08177F30: .4byte gUnknown_85CD078 - thumb_func_end sub_08177EF0 - - thumb_func_start PrintTextInBerryTagScreen -PrintTextInBerryTagScreen: @ 0x08177F34 - push {r4, r5, r6, lr} - sub sp, #0x14 - ldr r6, [sp, #0x24] - ldr r5, [sp, #0x28] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - movs r4, #0 - str r4, [sp] - str r4, [sp, #4] - lsls r4, r5, #1 - adds r4, r4, r5 - ldr r5, _08177F74 - adds r4, r4, r5 - str r4, [sp, #8] - lsls r6, r6, #0x18 - asrs r6, r6, #0x18 - str r6, [sp, #0xc] - str r1, [sp, #0x10] - movs r1, #1 - bl AddTextPrinterParameterized4 - add sp, #0x14 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08177F74: .4byte gUnknown_85CD098 - thumb_func_end PrintTextInBerryTagScreen - - thumb_func_start sub_08177F78 -sub_08177F78: @ 0x08177F78 - push {lr} - sub sp, #8 - movs r0, #0 - bl GetBgTilemapBuffer - ldr r1, _08177FC4 - ldr r1, [r1] - movs r2, #0x80 - lsls r2, r2, #5 - adds r1, r1, r2 - movs r2, #0x80 - lsls r2, r2, #4 - bl memcpy - movs r0, #3 - movs r1, #0xff - bl FillWindowPixelBuffer - ldr r1, _08177FC8 - movs r0, #0 - str r0, [sp] - movs r0, #1 - str r0, [sp, #4] - movs r0, #3 - movs r2, #0 - movs r3, #2 - bl PrintTextInBerryTagScreen - movs r0, #3 - bl PutWindowTilemap - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - add sp, #8 - pop {r0} - bx r0 - .align 2, 0 -_08177FC4: .4byte gUnknown_203B9C0 -_08177FC8: .4byte gUnknown_85C97BD - thumb_func_end sub_08177F78 - - thumb_func_start PrintAllBerryData -PrintAllBerryData: @ 0x08177FCC - push {lr} - bl PrintBerryNumberAndName - bl sub_0817804C - bl PrintBerryFirmness - bl PrintBerryDescription1 - bl PrintBerryDescription2 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PrintAllBerryData - - thumb_func_start PrintBerryNumberAndName -PrintBerryNumberAndName: @ 0x08177FE8 - push {r4, r5, r6, lr} - sub sp, #8 - ldr r5, _08178038 - ldr r0, [r5] - movs r4, #0xc0 - lsls r4, r4, #5 - adds r0, r0, r4 - ldrb r0, [r0] - bl GetBerryInfo - adds r6, r0, #0 - ldr r0, _0817803C - ldr r1, [r5] - adds r1, r1, r4 - ldrh r1, [r1] - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - ldr r0, _08178040 - adds r1, r6, #0 - bl StringCopy - ldr r4, _08178044 - ldr r1, _08178048 - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - adds r1, r4, #0 - movs r2, #0 - movs r3, #2 - bl PrintTextInBerryTagScreen - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08178038: .4byte gUnknown_203B9C0 -_0817803C: .4byte gUnknown_2021C40 -_08178040: .4byte gUnknown_2021C54 -_08178044: .4byte gUnknown_2021C7C -_08178048: .4byte gUnknown_85C97B5 - thumb_func_end PrintBerryNumberAndName - - thumb_func_start sub_0817804C -sub_0817804C: @ 0x0817804C - push {r4, r5, r6, r7, lr} - sub sp, #0xc - ldr r0, _081780D0 - ldr r0, [r0] - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r0, r1 - ldrb r0, [r0] - bl GetBerryInfo - adds r5, r0, #0 - ldr r2, _081780D4 - movs r7, #2 - str r7, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r6, #0 - str r6, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - ldrh r0, [r5, #8] - cmp r0, #0 - beq _081780E8 - ldr r4, _081780D8 - movs r1, #0xa - bl __udivsi3 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - movs r2, #0 - movs r3, #2 - bl sub_080089D8 - ldr r4, _081780DC - ldrh r0, [r5, #8] - movs r1, #0xa - bl __umodsi3 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - movs r2, #0 - movs r3, #2 - bl sub_080089D8 - ldr r4, _081780E0 - ldr r1, _081780E4 - adds r0, r4, #0 - bl StringExpandPlaceholders - str r7, [sp] - str r6, [sp, #4] - str r6, [sp, #8] - movs r0, #1 - movs r1, #1 - adds r2, r4, #0 - movs r3, #0x28 - bl AddTextPrinterParameterized - b _081780FA - .align 2, 0 -_081780D0: .4byte gUnknown_203B9C0 -_081780D4: .4byte gUnknown_85C977D -_081780D8: .4byte gUnknown_2021C40 -_081780DC: .4byte gUnknown_2021C54 -_081780E0: .4byte gUnknown_2021C7C -_081780E4: .4byte gUnknown_85C9786 -_081780E8: - ldr r2, _08178104 - str r7, [sp] - str r0, [sp, #4] - str r0, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r3, #0x28 - bl AddTextPrinterParameterized -_081780FA: - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08178104: .4byte gUnknown_85C93F5 - thumb_func_end sub_0817804C - - thumb_func_start PrintBerryFirmness -PrintBerryFirmness: @ 0x08178108 - push {r4, r5, r6, lr} - sub sp, #0xc - ldr r0, _0817815C - ldr r0, [r0] - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r0, r1 - ldrb r0, [r0] - bl GetBerryInfo - adds r6, r0, #0 - ldr r2, _08178160 - movs r5, #0x12 - str r5, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r4, #0 - str r4, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - ldrb r0, [r6, #7] - cmp r0, #0 - beq _08178168 - ldr r0, _08178164 - ldrb r1, [r6, #7] - subs r1, #1 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r2, [r1] - str r5, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r3, #0x28 - bl AddTextPrinterParameterized - b _0817817A - .align 2, 0 -_0817815C: .4byte gUnknown_203B9C0 -_08178160: .4byte gUnknown_85C9782 -_08178164: .4byte gUnknown_85CD0C8 -_08178168: - ldr r2, _08178184 - str r5, [sp] - str r0, [sp, #4] - str r0, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r3, #0x28 - bl AddTextPrinterParameterized -_0817817A: - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08178184: .4byte gUnknown_85C93F5 - thumb_func_end PrintBerryFirmness - - thumb_func_start PrintBerryDescription1 -PrintBerryDescription1: @ 0x08178188 - push {lr} - sub sp, #0xc - ldr r0, _081781B8 - ldr r0, [r0] - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r0, r1 - ldrb r0, [r0] - bl GetBerryInfo - ldr r2, [r0, #0xc] - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - movs r0, #2 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_081781B8: .4byte gUnknown_203B9C0 - thumb_func_end PrintBerryDescription1 - - thumb_func_start PrintBerryDescription2 -PrintBerryDescription2: @ 0x081781BC - push {lr} - sub sp, #0xc - ldr r0, _081781EC - ldr r0, [r0] - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r0, r1 - ldrb r0, [r0] - bl GetBerryInfo - ldr r2, [r0, #0x10] - movs r0, #0x12 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - movs r0, #2 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_081781EC: .4byte gUnknown_203B9C0 - thumb_func_end PrintBerryDescription2 - - thumb_func_start CreateBerrySprite -CreateBerrySprite: @ 0x081781F0 - push {r4, lr} - ldr r4, _0817821C - ldr r0, [r4] - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r0, r1 - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x38 - movs r2, #0x40 - bl CreateBerryTagSprite - ldr r1, [r4] - ldr r2, _08178220 - adds r1, r1, r2 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0817821C: .4byte gUnknown_203B9C0 -_08178220: .4byte 0x00001802 - thumb_func_end CreateBerrySprite - - thumb_func_start DestroyBerrySprite -DestroyBerrySprite: @ 0x08178224 - push {lr} - ldr r0, _08178248 - ldr r0, [r0] - ldr r1, _0817824C - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08178250 - adds r0, r0, r1 - bl DestroySprite - bl FreeBerryTagSpritePalette - pop {r0} - bx r0 - .align 2, 0 -_08178248: .4byte gUnknown_203B9C0 -_0817824C: .4byte 0x00001802 -_08178250: .4byte gUnknown_20205AC - thumb_func_end DestroyBerrySprite - - thumb_func_start CreateFlavorCircleSprites -CreateFlavorCircleSprites: @ 0x08178254 - push {r4, lr} - movs r0, #0x3c - bl CreateBerryFlavorCircleSprite - ldr r4, _081782A4 - ldr r1, [r4] - ldr r2, _081782A8 - adds r1, r1, r2 - strb r0, [r1] - movs r0, #0x5c - bl CreateBerryFlavorCircleSprite - ldr r1, [r4] - ldr r2, _081782AC - adds r1, r1, r2 - strb r0, [r1] - movs r0, #0x7c - bl CreateBerryFlavorCircleSprite - ldr r1, [r4] - ldr r2, _081782B0 - adds r1, r1, r2 - strb r0, [r1] - movs r0, #0x9c - bl CreateBerryFlavorCircleSprite - ldr r1, [r4] - ldr r2, _081782B4 - adds r1, r1, r2 - strb r0, [r1] - movs r0, #0xbc - bl CreateBerryFlavorCircleSprite - ldr r1, [r4] - ldr r2, _081782B8 - adds r1, r1, r2 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081782A4: .4byte gUnknown_203B9C0 -_081782A8: .4byte 0x00001803 -_081782AC: .4byte 0x00001804 -_081782B0: .4byte 0x00001805 -_081782B4: .4byte 0x00001806 -_081782B8: .4byte 0x00001807 - thumb_func_end CreateFlavorCircleSprites - - thumb_func_start SetFlavorCirclesVisiblity -SetFlavorCirclesVisiblity: @ 0x081782BC - push {r4, r5, lr} - ldr r4, _081782F4 - ldr r0, [r4] - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r0, r1 - ldrb r0, [r0] - bl GetBerryInfo - adds r5, r0, #0 - ldrb r0, [r5, #0x15] - cmp r0, #0 - beq _08178300 - ldr r3, _081782F8 - ldr r0, [r4] - ldr r1, _081782FC - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - b _0817831A - .align 2, 0 -_081782F4: .4byte gUnknown_203B9C0 -_081782F8: .4byte gUnknown_20205AC -_081782FC: .4byte 0x00001803 -_08178300: - ldr r3, _08178344 - ldr r0, [r4] - ldr r1, _08178348 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 -_0817831A: - strb r1, [r0] - adds r4, r3, #0 - ldrb r0, [r5, #0x16] - cmp r0, #0 - beq _08178354 - ldr r3, _0817834C - ldr r0, [r3] - ldr r1, _08178350 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - b _0817836E - .align 2, 0 -_08178344: .4byte gUnknown_20205AC -_08178348: .4byte 0x00001803 -_0817834C: .4byte gUnknown_203B9C0 -_08178350: .4byte 0x00001804 -_08178354: - ldr r3, _08178394 - ldr r0, [r3] - ldr r1, _08178398 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 -_0817836E: - strb r1, [r0] - ldrb r0, [r5, #0x17] - cmp r0, #0 - beq _081783A0 - ldr r0, [r3] - ldr r1, _0817839C - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - b _081783B8 - .align 2, 0 -_08178394: .4byte gUnknown_203B9C0 -_08178398: .4byte 0x00001804 -_0817839C: .4byte 0x00001805 -_081783A0: - ldr r0, [r3] - ldr r1, _081783DC - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 -_081783B8: - strb r1, [r0] - ldrb r0, [r5, #0x18] - cmp r0, #0 - beq _081783E4 - ldr r0, [r3] - ldr r1, _081783E0 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - b _081783FC - .align 2, 0 -_081783DC: .4byte 0x00001805 -_081783E0: .4byte 0x00001806 -_081783E4: - ldr r0, [r3] - ldr r1, _08178420 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 -_081783FC: - strb r1, [r0] - ldrb r0, [r5, #0x19] - cmp r0, #0 - beq _08178428 - ldr r0, [r3] - ldr r1, _08178424 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - b _08178440 - .align 2, 0 -_08178420: .4byte 0x00001806 -_08178424: .4byte 0x00001807 -_08178428: - ldr r0, [r3] - ldr r1, _08178448 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 -_08178440: - strb r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08178448: .4byte 0x00001807 - thumb_func_end SetFlavorCirclesVisiblity - - thumb_func_start DestroyFlavorCircleSprites -DestroyFlavorCircleSprites: @ 0x0817844C - push {r4, lr} - movs r4, #0 -_08178450: - ldr r0, _0817847C - ldr r0, [r0] - ldr r1, _08178480 - adds r0, r0, r1 - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08178484 - adds r0, r0, r1 - bl DestroySprite - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #4 - bls _08178450 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0817847C: .4byte gUnknown_203B9C0 -_08178480: .4byte 0x00001803 -_08178484: .4byte gUnknown_20205AC - thumb_func_end DestroyFlavorCircleSprites - - thumb_func_start PrepareToCloseBerryTagScreen -PrepareToCloseBerryTagScreen: @ 0x08178488 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #5 - bl sub_080A306C - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _081784C0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081784C4 - str r1, [r0] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081784C0: .4byte gUnknown_3005B60 -_081784C4: .4byte Task_CloseBerryTagScreen - thumb_func_end PrepareToCloseBerryTagScreen - - thumb_func_start Task_CloseBerryTagScreen -Task_CloseBerryTagScreen: @ 0x081784C8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _08178500 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081784FA - bl DestroyBerrySprite - bl DestroyFlavorCircleSprites - ldr r0, _08178504 - ldr r0, [r0] - bl Free - bl FreeAllWindowBuffers - ldr r0, _08178508 - bl SetMainCallback2 - adds r0, r4, #0 - bl DestroyTask -_081784FA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08178500: .4byte gUnknown_2037C74 -_08178504: .4byte gUnknown_203B9C0 -_08178508: .4byte bag_menu_mail_related - thumb_func_end Task_CloseBerryTagScreen - - thumb_func_start Task_HandleInput -Task_HandleInput: @ 0x0817850C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r4, r2, #0 - ldr r0, _08178538 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0817855E - ldr r3, _0817853C - ldrh r0, [r3, #0x30] - movs r1, #0xf0 - ands r1, r0 - cmp r1, #0x40 - bne _08178540 - movs r1, #1 - rsbs r1, r1, #0 - adds r0, r2, #0 - bl TryChangeDisplayedBerry - b _0817855E - .align 2, 0 -_08178538: .4byte gUnknown_2037C74 -_0817853C: .4byte gUnknown_3002360 -_08178540: - cmp r1, #0x80 - bne _0817854E - adds r0, r2, #0 - movs r1, #1 - bl TryChangeDisplayedBerry - b _0817855E -_0817854E: - ldrh r1, [r3, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _0817855E - adds r0, r4, #0 - bl PrepareToCloseBerryTagScreen -_0817855E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end Task_HandleInput - - thumb_func_start TryChangeDisplayedBerry -TryChangeDisplayedBerry: @ 0x08178564 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r2, _081785A4 - adds r4, r0, r2 - ldr r2, _081785A8 - ldrh r0, [r2, #0xe] - ldrh r2, [r2, #0x18] - adds r0, r0, r2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsrs r7, r1, #0x18 - asrs r6, r1, #0x18 - adds r0, r0, r6 - cmp r0, #0x2d - bhi _081785D0 - lsls r1, r0, #0x10 - lsrs r1, r1, #0x10 - movs r0, #4 - bl BagGetItemIdByPocketPosition - lsls r0, r0, #0x10 - cmp r0, #0 - beq _081785D0 - cmp r6, #0 - bge _081785AC - movs r0, #2 - b _081785AE - .align 2, 0 -_081785A4: .4byte gUnknown_3005B68 -_081785A8: .4byte gUnknown_203CB24 -_081785AC: - movs r0, #1 -_081785AE: - strh r0, [r4, #2] - movs r0, #0 - strh r0, [r4] - movs r0, #5 - bl sub_080A306C - lsls r0, r7, #0x18 - asrs r0, r0, #0x18 - bl HandleBagCursorPositionChange - ldr r1, _081785D8 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081785DC - str r1, [r0] -_081785D0: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081785D8: .4byte gUnknown_3005B60 -_081785DC: .4byte Task_DisplayAnotherBerry - thumb_func_end TryChangeDisplayedBerry - - thumb_func_start HandleBagCursorPositionChange -HandleBagCursorPositionChange: @ 0x081785E0 - push {r4, r5, r6, lr} - ldr r5, _08178614 - adds r6, r5, #0 - subs r6, #0xa - lsls r0, r0, #0x18 - asrs r4, r0, #0x18 - cmp r4, #0 - ble _0817861C - ldrh r0, [r6] - cmp r0, #3 - bls _0817860A - ldrh r1, [r5] - adds r1, #8 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #4 - bl BagGetItemIdByPocketPosition - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08178618 -_0817860A: - ldrh r0, [r6] - adds r0, r0, r4 - strh r0, [r6] - b _08178632 - .align 2, 0 -_08178614: .4byte gUnknown_203CB3C -_08178618: - ldrh r0, [r5] - b _0817862E -_0817861C: - ldrh r1, [r6] - cmp r1, #3 - bhi _08178628 - ldrh r0, [r5] - cmp r0, #0 - bne _0817862E -_08178628: - adds r0, r1, r4 - strh r0, [r6] - b _08178632 -_0817862E: - adds r0, r0, r4 - strh r0, [r5] -_08178632: - ldrh r1, [r6] - ldrh r5, [r5] - adds r1, r1, r5 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #4 - bl BagGetItemIdByPocketPosition - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl ItemIdToBerryType - ldr r1, _08178660 - ldr r1, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0xc0 - lsls r2, r2, #5 - adds r1, r1, r2 - strh r0, [r1] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08178660: .4byte gUnknown_203B9C0 - thumb_func_end HandleBagCursorPositionChange - - thumb_func_start Task_DisplayAnotherBerry -Task_DisplayAnotherBerry: @ 0x08178664 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r0, r0, #2 - add r0, r8 - lsls r0, r0, #3 - ldr r1, _081786A8 - adds r6, r0, r1 - ldrh r0, [r6] - adds r0, #0x10 - movs r1, #0xff - ands r0, r1 - strh r0, [r6] - movs r1, #2 - ldrsh r0, [r6, r1] - cmp r0, #1 - bne _081786E0 - movs r2, #0 - ldrsh r0, [r6, r2] - cmp r0, #0x70 - beq _08178740 - cmp r0, #0x70 - bgt _081786B6 - cmp r0, #0x40 - beq _081786D2 - cmp r0, #0x40 - bgt _081786AC - cmp r0, #0x30 - beq _08178750 - b _0817875E - .align 2, 0 -_081786A8: .4byte gUnknown_3005B68 -_081786AC: - cmp r0, #0x50 - beq _08178746 - cmp r0, #0x60 - beq _081786D8 - b _0817875E -_081786B6: - cmp r0, #0xa0 - beq _081786DC - cmp r0, #0xa0 - bgt _081786C8 - cmp r0, #0x80 - beq _0817873A - cmp r0, #0x90 - beq _08178730 - b _0817875E -_081786C8: - cmp r0, #0xb0 - beq _0817872A - cmp r0, #0xc0 - beq _08178724 - b _0817875E -_081786D2: - bl PrintBerryNumberAndName - b _0817875E -_081786D8: - movs r0, #1 - b _08178752 -_081786DC: - movs r0, #2 - b _08178752 -_081786E0: - movs r1, #0 - ldrsh r0, [r6, r1] - cmp r0, #0x70 - beq _08178736 - cmp r0, #0x70 - bgt _08178704 - cmp r0, #0x40 - beq _08178724 - cmp r0, #0x40 - bgt _081786FA - cmp r0, #0x30 - beq _08178720 - b _0817875E -_081786FA: - cmp r0, #0x50 - beq _0817872A - cmp r0, #0x60 - beq _08178730 - b _0817875E -_08178704: - cmp r0, #0xa0 - beq _08178746 - cmp r0, #0xa0 - bgt _08178716 - cmp r0, #0x80 - beq _0817873A - cmp r0, #0x90 - beq _08178740 - b _0817875E -_08178716: - cmp r0, #0xb0 - beq _08178750 - cmp r0, #0xc0 - beq _0817875A - b _0817875E -_08178720: - movs r0, #2 - b _08178752 -_08178724: - bl PrintBerryDescription2 - b _0817875E -_0817872A: - bl PrintBerryDescription1 - b _0817875E -_08178730: - bl SetFlavorCirclesVisiblity - b _0817875E -_08178736: - movs r0, #1 - b _08178752 -_0817873A: - bl PrintBerryFirmness - b _0817875E -_08178740: - bl sub_0817804C - b _0817875E -_08178746: - bl DestroyBerrySprite - bl CreateBerrySprite - b _0817875E -_08178750: - movs r0, #0 -_08178752: - movs r1, #0 - bl FillWindowPixelBuffer - b _0817875E -_0817875A: - bl PrintBerryNumberAndName -_0817875E: - movs r2, #2 - ldrsh r0, [r6, r2] - cmp r0, #1 - bne _08178770 - ldrh r0, [r6] - rsbs r0, r0, #0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - b _08178772 -_08178770: - ldrh r5, [r6] -_08178772: - ldr r2, _081787E4 - ldr r3, _081787E8 - ldr r0, [r3] - ldr r1, _081787EC - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r5, [r0, #0x26] - movs r4, #0 - adds r7, r2, #0 - ldr r2, _081787F0 -_0817878E: - ldr r0, [r3] - adds r0, r0, r2 - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r5, [r0, #0x26] - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #4 - bls _0817878E - movs r4, #0x80 - lsls r4, r4, #5 - ldrb r2, [r6, #2] - movs r0, #1 - adds r1, r4, #0 - bl ChangeBgY - ldrb r2, [r6, #2] - movs r0, #2 - adds r1, r4, #0 - bl ChangeBgY - movs r2, #0 - ldrsh r0, [r6, r2] - cmp r0, #0 - bne _081787DA - ldr r0, _081787F4 - mov r2, r8 - lsls r1, r2, #2 - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081787F8 - str r0, [r1] -_081787DA: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081787E4: .4byte gUnknown_20205AC -_081787E8: .4byte gUnknown_203B9C0 -_081787EC: .4byte 0x00001802 -_081787F0: .4byte 0x00001803 -_081787F4: .4byte gUnknown_3005B60 -_081787F8: .4byte Task_HandleInput - thumb_func_end Task_DisplayAnotherBerry - - thumb_func_start sub_081787FC -sub_081787FC: @ 0x081787FC - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081787FC - - thumb_func_start CheckLanguageMatch -CheckLanguageMatch: @ 0x08178810 - push {lr} - movs r2, #0 - ldr r1, _08178828 - ldrh r0, [r1, #0x1a] - ldrh r1, [r1, #0x36] - cmp r0, r1 - bne _08178820 - movs r2, #1 -_08178820: - adds r0, r2, #0 - pop {r1} - bx r1 - .align 2, 0 -_08178828: .4byte gUnknown_20226A0 - thumb_func_end CheckLanguageMatch - - thumb_func_start CB2_InitMysteryEventMenu -CB2_InitMysteryEventMenu: @ 0x0817882C - push {r4, lr} - sub sp, #8 - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetTasks - ldr r0, _081788E4 - bl SetVBlankCallback - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _081788E8 - movs r0, #0 - movs r2, #1 - bl InitBgsFromTemplates - ldr r0, _081788EC - bl InitWindows - lsls r0, r0, #0x10 - cmp r0, #0 - beq _081788DA - bl sub_08004480 - movs r4, #0 -_08178864: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl FillWindowPixelBuffer - adds r4, #1 - cmp r4, #1 - ble _08178864 - movs r0, #0x1e - str r0, [sp] - movs r0, #0x14 - str r0, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, #0 - movs r1, #1 - movs r2, #0xd0 - bl LoadUserWindowBorderGfx - movs r0, #0xe0 - bl Menu_LoadStdPalAt - movs r1, #0xa0 - lsls r1, r1, #1 - movs r0, #0 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - ldr r0, _081788F0 - movs r1, #0 - bl CreateTask - bl StopMapMusic - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl sub_08004630 - bl UpdatePaletteFade - movs r0, #0 - movs r1, #0 - movs r2, #2 - bl FillPalette - ldr r0, _081788F4 - bl SetMainCallback2 -_081788DA: - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081788E4: .4byte sub_081787FC -_081788E8: .4byte gUnknown_85CD204 -_081788EC: .4byte gUnknown_85CD208 -_081788F0: .4byte Task_DestroySelf -_081788F4: .4byte CB2_MysteryEventMenu - thumb_func_end CB2_InitMysteryEventMenu - - thumb_func_start GetEventLoadMessage -GetEventLoadMessage: @ 0x081788F8 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r4, r1, #0 - movs r5, #1 - cmp r4, #0 - bne _0817890C - ldr r1, _08178928 - bl StringCopy - movs r5, #0 -_0817890C: - cmp r4, #2 - bne _08178912 - movs r5, #0 -_08178912: - cmp r4, #1 - bne _0817891E - ldr r1, _0817892C - adds r0, r6, #0 - bl StringCopy -_0817891E: - adds r0, r5, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08178928: .4byte gUnknown_85CD159 -_0817892C: .4byte gUnknown_85CD19F - thumb_func_end GetEventLoadMessage - - thumb_func_start CB2_MysteryEventMenu -CB2_MysteryEventMenu: @ 0x08178930 - push {r4, r5, r6, lr} - sub sp, #8 - ldr r1, _08178950 - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r1, r2 - ldrb r0, [r0] - adds r4, r1, #0 - cmp r0, #0x10 - bls _08178946 - b _08178D10 -_08178946: - lsls r0, r0, #2 - ldr r1, _08178954 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08178950: .4byte gUnknown_3002360 -_08178954: .4byte _08178958 -_08178958: @ jump table - .4byte _0817899C @ case 0 - .4byte _081789CA @ case 1 - .4byte _08178A00 @ case 2 - .4byte _08178A38 @ case 3 - .4byte _08178A84 @ case 4 - .4byte _08178A94 @ case 5 - .4byte _08178B0C @ case 6 - .4byte _08178BE0 @ case 7 - .4byte _08178BF0 @ case 8 - .4byte _08178C10 @ case 9 - .4byte _08178C18 @ case 10 - .4byte _08178C2C @ case 11 - .4byte _08178C74 @ case 12 - .4byte _08178C98 @ case 13 - .4byte _08178CC4 @ case 14 - .4byte _08178CDC @ case 15 - .4byte _08178D00 @ case 16 -_0817899C: - movs r0, #0 - movs r1, #1 - movs r2, #1 - movs r3, #0xd - bl DrawStdFrameWithCustomTileAndPalette - movs r0, #0 - bl PutWindowTilemap - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - movs r0, #0 - bl ShowBg - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - b _08178CE8 -_081789CA: - ldr r0, _081789F4 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _081789D8 - b _08178D10 -_081789D8: - ldr r1, _081789F8 - movs r0, #1 - str r0, [sp] - movs r0, #0 - movs r2, #1 - movs r3, #2 - bl PrintMysteryMenuText - ldr r1, _081789FC - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _08178CF4 - .align 2, 0 -_081789F4: .4byte gUnknown_2037C74 -_081789F8: .4byte gUnknown_85CD0DC -_081789FC: .4byte gUnknown_3002360 -_08178A00: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08178A0E - b _08178D10 -_08178A0E: - ldr r1, _08178A2C - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r1, _08178A30 - ldr r2, _08178A34 - adds r0, r2, #0 - strh r0, [r1] - bl OpenLink - b _08178D10 - .align 2, 0 -_08178A2C: .4byte gUnknown_3002360 -_08178A30: .4byte gUnknown_202267E -_08178A34: .4byte 0x00005501 -_08178A38: - ldr r0, _08178A78 - ldr r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _08178A46 - b _08178BB8 -_08178A46: - movs r0, #0x1c - ands r1, r0 - cmp r1, #4 - bhi _08178A50 - b _08178BB8 -_08178A50: - movs r0, #0x15 - bl sub_080A306C - ldr r1, _08178A7C - movs r0, #1 - str r0, [sp] - movs r0, #0 - movs r2, #1 - movs r3, #2 - bl PrintMysteryMenuText - ldr r1, _08178A80 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _08178BB8 - .align 2, 0 -_08178A78: .4byte gUnknown_3003180 -_08178A7C: .4byte gUnknown_85CD0FE -_08178A80: .4byte gUnknown_3002360 -_08178A84: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08178A92 - b _08178D10 -_08178A92: - b _08178CEC -_08178A94: - bl GetLinkPlayerCount_2 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #2 - bne _08178B88 - ldr r4, _08178AE8 - ldrh r1, [r4, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08178AF0 - movs r0, #5 - bl sub_080A306C - bl CheckShouldAdvanceLinkState - movs r0, #1 - movs r1, #1 - movs r2, #1 - movs r3, #0xd - bl DrawStdFrameWithCustomTileAndPalette - ldr r1, _08178AEC - movs r0, #0 - str r0, [sp] - movs r0, #1 - movs r2, #1 - movs r3, #2 - bl PrintMysteryMenuText - movs r0, #1 - bl PutWindowTilemap - movs r0, #1 - movs r1, #3 - bl CopyWindowToVram - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r4, r2 - b _08178CF4 - .align 2, 0 -_08178AE8: .4byte gUnknown_3002360 -_08178AEC: .4byte gUnknown_85CD123 -_08178AF0: - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _08178AFA - b _08178D10 -_08178AFA: - movs r0, #5 - bl sub_080A306C - bl CloseLink - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r4, r0 - b _08178BD6 -_08178B0C: - bl IsLinkConnectionEstablished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08178BB8 - ldr r0, _08178B58 - ldrb r0, [r0] - cmp r0, #0 - bne _08178B20 - b _08178D10 -_08178B20: - movs r0, #2 - movs r1, #2 - bl GetLinkPlayerDataExchangeStatusTimed - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bne _08178B64 - bl sub_0800A7F8 - ldr r4, _08178B5C - adds r0, r4, #0 - movs r1, #1 - bl GetEventLoadMessage - movs r0, #1 - str r0, [sp] - movs r0, #0 - adds r1, r4, #0 - movs r2, #1 - movs r3, #2 - bl PrintMysteryMenuText - ldr r0, _08178B60 - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r0, r2 - b _08178BAA - .align 2, 0 -_08178B58: .4byte gUnknown_30031C4 -_08178B5C: .4byte gUnknown_2021C7C -_08178B60: .4byte gUnknown_3002360 -_08178B64: - bl CheckLanguageMatch - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08178B84 - ldr r1, _08178B80 - movs r0, #1 - str r0, [sp] - movs r0, #0 - movs r2, #1 - movs r3, #2 - bl PrintMysteryMenuText - b _08178CEC - .align 2, 0 -_08178B80: .4byte gUnknown_85CD133 -_08178B84: - bl CloseLink -_08178B88: - ldr r4, _08178BB0 - adds r0, r4, #0 - movs r1, #1 - bl GetEventLoadMessage - movs r0, #1 - str r0, [sp] - movs r0, #0 - adds r1, r4, #0 - movs r2, #1 - movs r3, #2 - bl PrintMysteryMenuText - ldr r0, _08178BB4 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 -_08178BAA: - movs r1, #0xd - strb r1, [r0] - b _08178D10 - .align 2, 0 -_08178BB0: .4byte gUnknown_2021C7C -_08178BB4: .4byte gUnknown_3002360 -_08178BB8: - ldr r4, _08178BDC - ldrh r1, [r4, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08178BC6 - b _08178D10 -_08178BC6: - movs r0, #5 - bl sub_080A306C - bl CloseLink - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r4, r2 -_08178BD6: - movs r0, #0xf - strb r0, [r1] - b _08178D10 - .align 2, 0 -_08178BDC: .4byte gUnknown_3002360 -_08178BE0: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08178BEE - b _08178D10 -_08178BEE: - b _08178CEC -_08178BF0: - bl GetBlockReceivedStatus - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08178BFC - b _08178D10 -_08178BFC: - bl ResetBlockReceivedFlags - ldr r1, _08178C0C - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _08178CF4 - .align 2, 0 -_08178C0C: .4byte gUnknown_3002360 -_08178C10: - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r4, r0 - b _08178CF4 -_08178C18: - bl sub_0800A7F8 - ldr r1, _08178C28 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _08178CF4 - .align 2, 0 -_08178C28: .4byte gUnknown_3002360 -_08178C2C: - ldr r0, _08178C64 - ldrb r6, [r0] - cmp r6, #0 - bne _08178D10 - ldr r5, _08178C68 - adds r0, r5, #0 - bl RunMysteryEventScript - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - str r6, [sp, #4] - ldr r2, _08178C6C - add r0, sp, #4 - adds r1, r5, #0 - bl CpuSet - ldr r0, _08178C70 - adds r1, r4, #0 - bl GetEventLoadMessage - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08178CEC - movs r0, #0 - bl TrySavingData - b _08178CEC - .align 2, 0 -_08178C64: .4byte gUnknown_30031C4 -_08178C68: .4byte gUnknown_201C000 -_08178C6C: .4byte 0x050001F5 -_08178C70: .4byte gUnknown_2021C7C -_08178C74: - ldr r1, _08178C90 - movs r0, #1 - str r0, [sp] - movs r0, #0 - movs r2, #1 - movs r3, #2 - bl PrintMysteryMenuText - ldr r1, _08178C94 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _08178CF4 - .align 2, 0 -_08178C90: .4byte gUnknown_2021C7C -_08178C94: .4byte gUnknown_3002360 -_08178C98: - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0 - bne _08178D10 - ldr r0, _08178CBC - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - ldr r0, _08178CC0 - strb r2, [r0] - b _08178D10 - .align 2, 0 -_08178CBC: .4byte gUnknown_3002360 -_08178CC0: .4byte gUnknown_203B9C4 -_08178CC4: - ldrh r1, [r4, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08178D10 - movs r0, #5 - bl sub_080A306C - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r4, r2 - b _08178CF4 -_08178CDC: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 -_08178CE8: - bl BeginNormalPaletteFade -_08178CEC: - ldr r1, _08178CFC - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 -_08178CF4: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _08178D10 - .align 2, 0 -_08178CFC: .4byte gUnknown_3002360 -_08178D00: - ldr r0, _08178D6C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08178D10 - bl DoSoftReset -_08178D10: - ldr r0, _08178D70 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08178D50 - bl IsLinkMaster - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08178D50 - bl CloseLink - ldr r4, _08178D74 - adds r0, r4, #0 - movs r1, #1 - bl GetEventLoadMessage - movs r0, #1 - str r0, [sp] - movs r0, #0 - adds r1, r4, #0 - movs r2, #1 - movs r3, #2 - bl PrintMysteryMenuText - ldr r0, _08178D78 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - movs r1, #0xd - strb r1, [r0] -_08178D50: - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl sub_08004630 - bl UpdatePaletteFade - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08178D6C: .4byte gUnknown_2037C74 -_08178D70: .4byte gUnknown_3003180 -_08178D74: .4byte gUnknown_2021C7C -_08178D78: .4byte gUnknown_3002360 - thumb_func_end CB2_MysteryEventMenu - - thumb_func_start PrintMysteryMenuText -PrintMysteryMenuText: @ 0x08178D7C - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - sub sp, #0x1c - adds r5, r0, #0 - mov sl, r1 - adds r6, r2, #0 - ldr r4, [sp, #0x38] - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #0 - mov sb, r0 - movs r1, #1 - mov r8, r1 - add r0, sp, #0x14 - mov r1, r8 - strb r1, [r0] - adds r1, r0, #0 - movs r0, #2 - strb r0, [r1, #1] - movs r0, #3 - strb r0, [r1, #2] - adds r0, r1, #0 - ldrb r0, [r0] - lsls r1, r0, #4 - orrs r1, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - str r3, [sp, #0x18] - bl FillWindowPixelBuffer - mov r0, sb - str r0, [sp] - mov r1, r8 - str r1, [sp, #4] - add r0, sp, #0x14 - str r0, [sp, #8] - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - str r4, [sp, #0xc] - mov r1, sl - str r1, [sp, #0x10] - adds r0, r5, #0 - movs r1, #1 - adds r2, r6, #0 - ldr r3, [sp, #0x18] - bl AddTextPrinterParameterized4 - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PrintMysteryMenuText - - thumb_func_start SaveFailedScreenTextPrint -SaveFailedScreenTextPrint: @ 0x08178DFC - push {r4, r5, lr} - sub sp, #0x18 - adds r5, r0, #0 - adds r4, r1, #0 - adds r3, r2, #0 - lsls r3, r3, #0x18 - add r0, sp, #0x14 - movs r2, #0 - strb r2, [r0] - adds r1, r0, #0 - movs r0, #0xf - strb r0, [r1, #1] - movs r0, #3 - strb r0, [r1, #2] - ldr r0, _08178E44 - ldrb r0, [r0] - lsls r4, r4, #0x1b - lsrs r4, r4, #0x18 - lsrs r3, r3, #0x15 - adds r3, #2 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r2, [sp] - str r2, [sp, #4] - str r1, [sp, #8] - str r2, [sp, #0xc] - str r5, [sp, #0x10] - movs r1, #1 - adds r2, r4, #0 - bl AddTextPrinterParameterized4 - add sp, #0x18 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08178E44: .4byte gUnknown_203B9DA - thumb_func_end SaveFailedScreenTextPrint - - thumb_func_start DoSaveFailedScreen -DoSaveFailedScreen: @ 0x08178E48 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _08178E70 - bl SetMainCallback2 - ldr r0, _08178E74 - strh r4, [r0] - ldr r1, _08178E78 - movs r2, #0 - movs r0, #0 - strh r0, [r1] - strh r0, [r1, #2] - ldr r0, _08178E7C - strb r2, [r0] - strb r2, [r0, #1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08178E70: .4byte CB2_SaveFailedScreen -_08178E74: .4byte gUnknown_203B9C8 -_08178E78: .4byte gUnknown_203B9CA -_08178E7C: .4byte gUnknown_203B9DA - thumb_func_end DoSaveFailedScreen - - thumb_func_start sub_08178E80 -sub_08178E80: @ 0x08178E80 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08178E80 - - thumb_func_start CB2_SaveFailedScreen -CB2_SaveFailedScreen: @ 0x08178E94 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - ldr r0, _081790AC - movs r1, #0x87 - lsls r1, r1, #3 - adds r7, r0, r1 - ldrb r0, [r7] - cmp r0, #0 - beq _08178EB0 - cmp r0, #1 - bne _08178EB0 - b _08179114 -_08178EB0: - movs r0, #0 - bl SetVBlankCallback - movs r0, #0 - movs r1, #0 - bl SetGpuReg - movs r0, #0xe - movs r1, #0 - bl SetGpuReg - movs r0, #0xc - movs r1, #0 - bl SetGpuReg - movs r0, #0xa - movs r1, #0 - bl SetGpuReg - movs r0, #8 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1c - movs r1, #0 - bl SetGpuReg - movs r0, #0x1e - movs r1, #0 - bl SetGpuReg - movs r0, #0x18 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1a - movs r1, #0 - bl SetGpuReg - movs r0, #0x14 - movs r1, #0 - bl SetGpuReg - movs r0, #0x16 - movs r1, #0 - bl SetGpuReg - movs r0, #0x10 - movs r1, #0 - bl SetGpuReg - movs r0, #0x12 - movs r1, #0 - bl SetGpuReg - add r1, sp, #4 - movs r0, #0 - strh r0, [r1] - ldr r2, _081790B0 - str r1, [r2] - movs r1, #0xc0 - lsls r1, r1, #0x13 - str r1, [r2, #4] - ldr r0, _081790B4 - str r0, [r2, #8] - ldr r0, [r2, #8] - movs r3, #0 - mov r8, r3 - str r3, [sp, #8] - add r4, sp, #8 - str r4, [r2] - movs r0, #0xe0 - lsls r0, r0, #0x13 - str r0, [r2, #4] - ldr r0, _081790B8 - str r0, [r2, #8] - ldr r0, [r2, #8] - add r0, sp, #4 - mov r3, r8 - strh r3, [r0] - str r0, [r2] - movs r0, #0xa0 - lsls r0, r0, #0x13 - str r0, [r2, #4] - ldr r0, _081790BC - str r0, [r2, #8] - ldr r0, [r2, #8] - ldr r0, _081790C0 - bl LZ77UnCompVram - ldr r0, _081790C4 - ldr r1, _081790C8 - bl LZ77UnCompVram - ldr r0, _081790CC - ldr r1, _081790D0 - bl LZ77UnCompVram - ldr r0, _081790D4 - ldr r1, _081790D8 - bl LZ77UnCompVram - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _081790DC - movs r0, #0 - movs r2, #3 - bl InitBgsFromTemplates - ldr r5, _081790E0 - movs r0, #0 - adds r1, r5, #0 - bl SetBgTilemapBuffer - mov r0, r8 - str r0, [sp, #8] - ldr r2, _081790E4 - adds r0, r4, #0 - adds r1, r5, #0 - bl CpuSet - ldr r1, _081790E8 - movs r2, #0x90 - lsls r2, r2, #1 - movs r6, #0x85 - lsls r6, r6, #2 - movs r0, #0 - adds r3, r6, #0 - bl LoadBgTiles - ldr r0, _081790EC - bl InitWindows - ldr r0, _081790F0 - bl AddWindowWithoutTileMap - ldr r4, _081790F4 - strb r0, [r4] - ldrb r0, [r4] - movs r1, #0x80 - lsls r1, r1, #4 - adds r2, r5, r1 - movs r1, #7 - bl SetWindowAttribute - ldr r0, _081790F8 - bl AddWindowWithoutTileMap - strb r0, [r4, #1] - ldrb r0, [r4, #1] - movs r3, #0xe8 - lsls r3, r3, #5 - adds r5, r5, r3 - movs r1, #7 - adds r2, r5, #0 - bl SetWindowAttribute - bl sub_08004480 - bl ResetSpriteData - bl ResetTasks - bl ResetPaletteFade - ldr r0, _081790FC - movs r1, #0 - movs r2, #0x40 - bl LoadPalette - ldr r0, _08179100 - movs r1, #0x80 - lsls r1, r1, #1 - movs r2, #0x20 - bl LoadPalette - ldr r0, _08179104 - movs r1, #0xe0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _08179108 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - ldrb r0, [r4] - movs r1, #0 - adds r2, r6, #0 - movs r3, #0xe - bl DrawStdFrameWithCustomTileAndPalette - ldrb r0, [r4, #1] - movs r1, #0 - adds r2, r6, #0 - movs r3, #0xe - bl DrawStdFrameWithCustomTileAndPalette - ldrb r0, [r4, #1] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldrb r0, [r4] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldrb r0, [r4, #1] - movs r1, #2 - bl CopyWindowToVram - ldrb r0, [r4] - movs r1, #1 - bl CopyWindowToVram - ldr r0, _0817910C - movs r1, #1 - movs r2, #0 - bl SaveFailedScreenTextPrint - movs r0, #1 - rsbs r0, r0, #0 - mov r1, r8 - str r1, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - movs r0, #1 - bl EnableInterrupts - ldr r0, _08179110 - bl SetVBlankCallback - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg - ldrb r0, [r7] - adds r0, #1 - strb r0, [r7] - b _0817912A - .align 2, 0 -_081790AC: .4byte gUnknown_3002360 -_081790B0: .4byte 0x040000D4 -_081790B4: .4byte 0x8100C000 -_081790B8: .4byte 0x85000100 -_081790BC: .4byte 0x81000200 -_081790C0: .4byte gUnknown_858FC14 -_081790C4: .4byte gUnknown_858F890 -_081790C8: .4byte 0x06007000 -_081790CC: .4byte gUnknown_858FA1C -_081790D0: .4byte 0x06007800 -_081790D4: .4byte gUnknown_85CD284 -_081790D8: .4byte 0x06010020 -_081790DC: .4byte gUnknown_85CD228 -_081790E0: .4byte gUnknown_201E000 -_081790E4: .4byte 0x05000200 -_081790E8: .4byte gUnknown_84E6CE0 -_081790EC: .4byte gUnknown_85CD234 -_081790F0: .4byte gUnknown_85CD23C -_081790F4: .4byte gUnknown_203B9DA -_081790F8: .4byte gUnknown_85CD244 -_081790FC: .4byte gUnknown_858F810 -_08179100: .4byte gUnknown_85CD264 -_08179104: .4byte gUnknown_84E8360 -_08179108: .4byte gUnknown_85D7B04 -_0817910C: .4byte gUnknown_85CBD6B -_08179110: .4byte sub_08178E80 -_08179114: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0817912A - ldr r0, _08179138 - bl SetMainCallback2 - ldr r0, _0817913C - bl SetVBlankCallback -_0817912A: - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08179138: .4byte CB2_WipeSave -_0817913C: .4byte VBlankCB_UpdateClockGraphics - thumb_func_end CB2_SaveFailedScreen - - thumb_func_start CB2_WipeSave -CB2_WipeSave: @ 0x08179140 - push {r4, r5, r6, lr} - movs r5, #0 - ldr r0, _081791B8 - movs r1, #1 - strh r1, [r0] - ldr r1, _081791BC - ldr r0, [r1] - cmp r0, #0 - beq _081791A4 - adds r6, r1, #0 -_08179154: - ldr r0, [r6] - bl WipeSectors - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08179200 - ldr r4, _081791C0 - ldrb r0, [r4] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r0, _081791C4 - movs r1, #1 - movs r2, #0 - bl SaveFailedScreenTextPrint - ldr r0, _081791C8 - ldrb r0, [r0] - bl HandleSavingData - ldr r0, [r6] - cmp r0, #0 - beq _08179194 - ldrb r0, [r4] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r0, _081791CC - movs r1, #1 - movs r2, #0 - bl SaveFailedScreenTextPrint -_08179194: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, [r6] - cmp r0, #0 - beq _081791A4 - cmp r5, #2 - bls _08179154 -_081791A4: - cmp r5, #3 - bne _081791D4 - ldr r0, _081791C0 - ldrb r0, [r0] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r0, _081791D0 - b _081791E8 - .align 2, 0 -_081791B8: .4byte gUnknown_203B9CA -_081791BC: .4byte gUnknown_3005F3C -_081791C0: .4byte gUnknown_203B9DA -_081791C4: .4byte gUnknown_85CBE20 -_081791C8: .4byte gUnknown_203B9C8 -_081791CC: .4byte gUnknown_85CBD6B -_081791D0: .4byte gUnknown_85CBDB2 -_081791D4: - ldr r0, _081791F4 - ldrb r0, [r0] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r0, _081791F8 - ldr r0, [r0] - cmp r0, #0 - bne _08179228 - ldr r0, _081791FC -_081791E8: - movs r1, #1 - movs r2, #0 - bl SaveFailedScreenTextPrint - b _08179232 - .align 2, 0 -_081791F4: .4byte gUnknown_203B9DA -_081791F8: .4byte gUnknown_3005F54 -_081791FC: .4byte gUnknown_85CBE50 -_08179200: - ldr r0, _0817921C - ldrb r0, [r0] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r0, _08179220 - movs r1, #1 - movs r2, #0 - bl SaveFailedScreenTextPrint - ldr r0, _08179224 - bl SetMainCallback2 - b _08179238 - .align 2, 0 -_0817921C: .4byte gUnknown_203B9DA -_08179220: .4byte gUnknown_85CBDB2 -_08179224: .4byte CB2_GameplayCannotBeContinued -_08179228: - ldr r0, _08179240 - movs r1, #1 - movs r2, #0 - bl SaveFailedScreenTextPrint -_08179232: - ldr r0, _08179244 - bl SetMainCallback2 -_08179238: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08179240: .4byte gUnknown_85CBE90 -_08179244: .4byte CB2_FadeAndReturnToTitleScreen - thumb_func_end CB2_WipeSave - - thumb_func_start CB2_GameplayCannotBeContinued -CB2_GameplayCannotBeContinued: @ 0x08179248 - push {lr} - ldr r1, _08179280 - movs r0, #0 - strh r0, [r1] - ldr r0, _08179284 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0817927C - ldr r0, _08179288 - ldrb r0, [r0] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r0, _0817928C - movs r1, #1 - movs r2, #0 - bl SaveFailedScreenTextPrint - ldr r0, _08179290 - bl SetVBlankCallback - ldr r0, _08179294 - bl SetMainCallback2 -_0817927C: - pop {r0} - bx r0 - .align 2, 0 -_08179280: .4byte gUnknown_203B9CA -_08179284: .4byte gUnknown_3002360 -_08179288: .4byte gUnknown_203B9DA -_0817928C: .4byte gUnknown_85CBDF7 -_08179290: .4byte sub_08178E80 -_08179294: .4byte CB2_FadeAndReturnToTitleScreen - thumb_func_end CB2_GameplayCannotBeContinued - - thumb_func_start CB2_FadeAndReturnToTitleScreen -CB2_FadeAndReturnToTitleScreen: @ 0x08179298 - push {lr} - sub sp, #4 - ldr r0, _081792D0 - movs r2, #0 - strh r2, [r0] - ldr r0, _081792D4 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081792C8 - movs r0, #1 - rsbs r0, r0, #0 - str r2, [sp] - movs r1, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _081792D8 - bl SetVBlankCallback - ldr r0, _081792DC - bl SetMainCallback2 -_081792C8: - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_081792D0: .4byte gUnknown_203B9CA -_081792D4: .4byte gUnknown_3002360 -_081792D8: .4byte sub_08178E80 -_081792DC: .4byte CB2_ReturnToTitleScreen - thumb_func_end CB2_FadeAndReturnToTitleScreen - - thumb_func_start CB2_ReturnToTitleScreen -CB2_ReturnToTitleScreen: @ 0x081792E0 - push {r4, r5, lr} - bl UpdatePaletteFade - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _08179306 - ldr r5, _081792FC - ldr r0, [r5] - cmp r0, #0 - bne _08179300 - bl DoSoftReset - b _08179306 - .align 2, 0 -_081792FC: .4byte gUnknown_3005F54 -_08179300: - bl SetMainCallback2 - str r4, [r5] -_08179306: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end CB2_ReturnToTitleScreen - - thumb_func_start VBlankCB_UpdateClockGraphics -VBlankCB_UpdateClockGraphics: @ 0x0817930C - push {r4, r5, lr} - ldr r5, _0817937C - ldr r0, [r5, #0x24] - lsrs r4, r0, #3 - movs r0, #7 - ands r4, r0 - ldr r0, _08179380 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [r5, #0x38] - str r1, [r5, #0x3c] - ldrh r1, [r5, #0x3a] - ldr r0, _08179384 - ands r0, r1 - movs r1, #0x70 - orrs r0, r1 - strh r0, [r5, #0x3a] - adds r1, r5, #0 - adds r1, #0x38 - movs r0, #0x48 - strb r0, [r1] - ldr r0, _08179388 - ldrh r0, [r0] - cmp r0, #0 - beq _08179394 - ldr r3, _0817938C - lsls r2, r4, #1 - adds r2, r2, r4 - adds r0, r2, r3 - ldrb r4, [r0] - ldrh r1, [r5, #0x3c] - ldr r0, _08179390 - ands r0, r1 - orrs r0, r4 - strh r0, [r5, #0x3c] - adds r0, r3, #2 - adds r0, r2, r0 - ldrb r1, [r0] - lsls r1, r1, #4 - adds r3, #1 - adds r2, r2, r3 - ldrb r0, [r2] - lsls r0, r0, #3 - orrs r1, r0 - adds r3, r5, #0 - adds r3, #0x3b - movs r0, #0x1f - ands r1, r0 - lsls r1, r1, #1 - ldrb r2, [r3] - movs r0, #0x3f - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _081793A0 - .align 2, 0 -_0817937C: .4byte gUnknown_3002360 -_08179380: .4byte gUnknown_85CD220 -_08179384: .4byte 0xFFFFFE00 -_08179388: .4byte gUnknown_203B9CA -_0817938C: .4byte gUnknown_85CD24C -_08179390: .4byte 0xFFFFFC00 -_08179394: - ldrh r0, [r5, #0x3c] - ldr r1, _081793C0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strh r1, [r5, #0x3c] -_081793A0: - ldr r0, _081793C4 - movs r1, #0xe0 - lsls r1, r1, #0x13 - movs r2, #1 - bl CpuFastSet - ldr r1, _081793C8 - ldrh r0, [r1, #2] - cmp r0, #0 - beq _081793B8 - subs r0, #1 - strh r0, [r1, #2] -_081793B8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081793C0: .4byte 0xFFFFFC00 -_081793C4: .4byte gUnknown_3002398 -_081793C8: .4byte gUnknown_203B9CA - thumb_func_end VBlankCB_UpdateClockGraphics - - thumb_func_start VerifySectorWipe -VerifySectorWipe: @ 0x081793CC - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _081793F0 - movs r3, #0x80 - lsls r3, r3, #5 - movs r1, #0 - adds r2, r4, #0 - bl ReadFlash - movs r1, #0 - ldr r2, _081793F4 -_081793E4: - ldr r0, [r4] - cmp r0, #0 - beq _081793F8 - movs r0, #1 - b _08179406 - .align 2, 0 -_081793F0: .4byte gUnknown_203A888 -_081793F4: .4byte 0x000003FF -_081793F8: - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - adds r4, #4 - cmp r1, r2 - bls _081793E4 - movs r0, #0 -_08179406: - pop {r4} - pop {r1} - bx r1 - thumb_func_end VerifySectorWipe - - thumb_func_start WipeSector -WipeSector: @ 0x0817940C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - movs r0, #0 - ldr r1, _0817945C - mov r8, r1 - ldr r7, _08179460 -_0817941E: - movs r4, #0 - adds r5, r0, #1 -_08179422: - ldr r3, [r7] - adds r0, r6, #0 - adds r1, r4, #0 - movs r2, #0 - bl _call_via_r3 - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, r8 - bls _08179422 - adds r0, r6, #0 - bl VerifySectorWipe - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - lsls r0, r5, #0x10 - lsrs r0, r0, #0x10 - cmp r1, #0 - beq _0817944E - cmp r0, #0x81 - bls _0817941E -_0817944E: - adds r0, r1, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0817945C: .4byte 0x00000FFF -_08179460: .4byte gUnknown_30075F4 - thumb_func_end WipeSector - - thumb_func_start WipeSectors -WipeSectors: @ 0x08179464 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r6, #0 -_0817946A: - movs r4, #1 - lsls r4, r6 - adds r0, r5, #0 - ands r0, r4 - cmp r0, #0 - beq _08179484 - adds r0, r6, #0 - bl WipeSector - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08179484 - bics r5, r4 -_08179484: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0x1f - bls _0817946A - cmp r5, #0 - beq _08179496 - movs r0, #1 - b _08179498 -_08179496: - movs r0, #0 -_08179498: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end WipeSectors - - thumb_func_start ShouldDoBrailleDigEffect -ShouldDoBrailleDigEffect: @ 0x081794A0 - push {lr} - ldr r0, _081794D4 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081794EC - ldr r0, _081794D8 - ldr r2, [r0] - ldrh r1, [r2, #4] - ldr r0, _081794DC - cmp r1, r0 - bne _081794EC - ldr r1, [r2] - ldr r0, _081794E0 - cmp r1, r0 - beq _081794CE - ldr r0, _081794E4 - cmp r1, r0 - beq _081794CE - ldr r0, _081794E8 - cmp r1, r0 - bne _081794EC -_081794CE: - movs r0, #1 - b _081794EE - .align 2, 0 -_081794D4: .4byte 0x000008AF -_081794D8: .4byte gUnknown_3005AEC -_081794DC: .4byte 0x00004718 -_081794E0: .4byte 0x0003000A -_081794E4: .4byte 0x00030009 -_081794E8: .4byte 0x0003000B -_081794EC: - movs r0, #0 -_081794EE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ShouldDoBrailleDigEffect - - thumb_func_start DoBrailleDigEffect -DoBrailleDigEffect: @ 0x081794F4 - push {lr} - ldr r2, _0817954C - movs r0, #0x10 - movs r1, #8 - bl MapGridSetMetatileIdAt - ldr r2, _08179550 - movs r0, #0x11 - movs r1, #8 - bl MapGridSetMetatileIdAt - movs r2, #0x8b - lsls r2, r2, #2 - movs r0, #0x12 - movs r1, #8 - bl MapGridSetMetatileIdAt - ldr r2, _08179554 - movs r0, #0x10 - movs r1, #9 - bl MapGridSetMetatileIdAt - ldr r2, _08179558 - movs r0, #0x11 - movs r1, #9 - bl MapGridSetMetatileIdAt - ldr r2, _0817955C - movs r0, #0x12 - movs r1, #9 - bl MapGridSetMetatileIdAt - bl DrawWholeMapView - movs r0, #0x14 - bl sub_080A306C - ldr r0, _08179560 - bl FlagSet - bl sub_080987E8 - pop {r0} - bx r0 - .align 2, 0 -_0817954C: .4byte 0x0000022A -_08179550: .4byte 0x0000022B -_08179554: .4byte 0x00000E32 -_08179558: .4byte 0x00000233 -_0817955C: .4byte 0x00000E34 -_08179560: .4byte 0x000008AF - thumb_func_end DoBrailleDigEffect - - thumb_func_start CheckRelicanthWailord -CheckRelicanthWailord: @ 0x08179564 - push {r4, lr} - ldr r4, _081795A0 - adds r0, r4, #0 - movs r1, #0x41 - movs r2, #0 - bl GetMonData - movs r1, #0x9d - lsls r1, r1, #1 - cmp r0, r1 - bne _081795AC - bl sub_0806B004 - ldr r0, _081795A4 - ldrb r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - adds r1, r4, #0 - subs r1, #0x64 - adds r0, r0, r1 - movs r1, #0x41 - movs r2, #0 - bl GetMonData - ldr r1, _081795A8 - cmp r0, r1 - bne _081795AC - movs r0, #1 - b _081795AE - .align 2, 0 -_081795A0: .4byte gUnknown_2024190 -_081795A4: .4byte gUnknown_202418D -_081795A8: .4byte 0x0000017D -_081795AC: - movs r0, #0 -_081795AE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end CheckRelicanthWailord - - thumb_func_start sub_081795B4 -sub_081795B4: @ 0x081795B4 - bx lr - .align 2, 0 - thumb_func_end sub_081795B4 - - thumb_func_start DoSealedChamberShakingEffect1 -DoSealedChamberShakingEffect1: @ 0x081795B8 - push {lr} - ldr r0, _081795EC - movs r1, #9 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _081795F0 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r0, #0 - strh r0, [r1, #0xa] - strh r0, [r1, #0xc] - movs r0, #2 - strh r0, [r1, #0x10] - movs r0, #5 - strh r0, [r1, #0x12] - movs r0, #0x32 - strh r0, [r1, #0x14] - movs r0, #0 - bl sub_08089C24 - pop {r0} - bx r0 - .align 2, 0 -_081795EC: .4byte SealedChamberShakingEffect -_081795F0: .4byte gUnknown_3005B60 - thumb_func_end DoSealedChamberShakingEffect1 - - thumb_func_start DoSealedChamberShakingEffect2 -DoSealedChamberShakingEffect2: @ 0x081795F4 - push {lr} - ldr r0, _08179628 - movs r1, #9 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0817962C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r0, #0 - strh r0, [r1, #0xa] - strh r0, [r1, #0xc] - movs r0, #3 - strh r0, [r1, #0x10] - movs r0, #5 - strh r0, [r1, #0x12] - movs r0, #2 - strh r0, [r1, #0x14] - movs r0, #0 - bl sub_08089C24 - pop {r0} - bx r0 - .align 2, 0 -_08179628: .4byte SealedChamberShakingEffect -_0817962C: .4byte gUnknown_3005B60 - thumb_func_end DoSealedChamberShakingEffect2 - - thumb_func_start SealedChamberShakingEffect -SealedChamberShakingEffect: @ 0x08179630 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _08179690 - adds r4, r0, r1 - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - movs r1, #0xa - ldrsh r0, [r4, r1] - movs r2, #0x12 - ldrsh r1, [r4, r2] - bl __modsi3 - cmp r0, #0 - bne _08179688 - strh r0, [r4, #0xa] - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0x10] - rsbs r0, r0, #0 - strh r0, [r4, #0x10] - movs r0, #0x10 - ldrsh r1, [r4, r0] - movs r0, #0 - bl SetCameraPanning - movs r2, #0xc - ldrsh r1, [r4, r2] - movs r2, #0x14 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _08179688 - adds r0, r5, #0 - bl DestroyTask - bl EnableBothScriptContexts - bl InstallCameraPanAheadCallback -_08179688: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08179690: .4byte gUnknown_3005B60 - thumb_func_end SealedChamberShakingEffect - - thumb_func_start ShouldDoBrailleRegirockEffect -ShouldDoBrailleRegirockEffect: @ 0x08179694 - push {lr} - movs r0, #0x8b - lsls r0, r0, #4 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _081796E4 - ldr r0, _081796D0 - ldr r3, [r0] - ldrh r1, [r3, #4] - movs r0, #0xc3 - lsls r0, r0, #3 - cmp r1, r0 - bne _081796E4 - ldr r1, [r3] - ldr r0, _081796D4 - cmp r1, r0 - beq _081796C8 - ldr r0, _081796D8 - cmp r1, r0 - beq _081796C8 - ldr r0, _081796DC - cmp r1, r0 - bne _081796E4 -_081796C8: - ldr r0, _081796E0 - strb r2, [r0] - movs r0, #1 - b _081796E6 - .align 2, 0 -_081796D0: .4byte gUnknown_3005AEC -_081796D4: .4byte 0x00170006 -_081796D8: .4byte 0x00170005 -_081796DC: .4byte 0x00170007 -_081796E0: .4byte gUnknown_203B9E0 -_081796E4: - movs r0, #0 -_081796E6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ShouldDoBrailleRegirockEffect - - thumb_func_start sub_081796EC -sub_081796EC: @ 0x081796EC - push {lr} - bl GetCursorSelectionMonId - ldr r1, _08179704 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [r1] - movs r0, #0x3c - bl FieldEffectStart - pop {r0} - bx r0 - .align 2, 0 -_08179704: .4byte gUnknown_20388A8 - thumb_func_end sub_081796EC - - thumb_func_start sub_08179708 -sub_08179708: @ 0x08179708 - push {lr} - movs r0, #0x3c - bl FieldEffectActiveListRemove - bl DoBrailleRegirockEffect - pop {r0} - bx r0 - thumb_func_end sub_08179708 - - thumb_func_start DoBrailleRegirockEffect -DoBrailleRegirockEffect: @ 0x08179718 - push {lr} - ldr r2, _08179774 - movs r0, #0xe - movs r1, #0x1a - bl MapGridSetMetatileIdAt - ldr r2, _08179778 - movs r0, #0xf - movs r1, #0x1a - bl MapGridSetMetatileIdAt - movs r2, #0x8b - lsls r2, r2, #2 - movs r0, #0x10 - movs r1, #0x1a - bl MapGridSetMetatileIdAt - ldr r2, _0817977C - movs r0, #0xe - movs r1, #0x1b - bl MapGridSetMetatileIdAt - ldr r2, _08179780 - movs r0, #0xf - movs r1, #0x1b - bl MapGridSetMetatileIdAt - ldr r2, _08179784 - movs r0, #0x10 - movs r1, #0x1b - bl MapGridSetMetatileIdAt - bl DrawWholeMapView - movs r0, #0x14 - bl sub_080A306C - movs r0, #0x8b - lsls r0, r0, #4 - bl FlagSet - bl sub_080987E8 - pop {r0} - bx r0 - .align 2, 0 -_08179774: .4byte 0x0000022A -_08179778: .4byte 0x0000022B -_0817977C: .4byte 0x00000E32 -_08179780: .4byte 0x00000233 -_08179784: .4byte 0x00000E34 - thumb_func_end DoBrailleRegirockEffect - - thumb_func_start ShouldDoBrailleRegisteelEffect -ShouldDoBrailleRegisteelEffect: @ 0x08179788 - push {lr} - ldr r0, _081797B4 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081797C8 - ldr r0, _081797B8 - ldr r2, [r0] - ldrh r1, [r2, #4] - ldr r0, _081797BC - cmp r1, r0 - bne _081797C8 - ldr r1, [r2] - ldr r0, _081797C0 - cmp r1, r0 - bne _081797C8 - ldr r1, _081797C4 - movs r0, #1 - strb r0, [r1] - movs r0, #1 - b _081797CA - .align 2, 0 -_081797B4: .4byte 0x000008B2 -_081797B8: .4byte gUnknown_3005AEC -_081797BC: .4byte 0x00004418 -_081797C0: .4byte 0x00190008 -_081797C4: .4byte gUnknown_203B9E0 -_081797C8: - movs r0, #0 -_081797CA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ShouldDoBrailleRegisteelEffect - - thumb_func_start sub_081797D0 -sub_081797D0: @ 0x081797D0 - push {lr} - bl GetCursorSelectionMonId - ldr r1, _081797E8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [r1] - movs r0, #0x3c - bl FieldEffectStart - pop {r0} - bx r0 - .align 2, 0 -_081797E8: .4byte gUnknown_20388A8 - thumb_func_end sub_081797D0 - - thumb_func_start sub_081797EC -sub_081797EC: @ 0x081797EC - push {lr} - movs r0, #0x3c - bl FieldEffectActiveListRemove - bl DoBrailleRegisteelEffect - pop {r0} - bx r0 - thumb_func_end sub_081797EC - - thumb_func_start DoBrailleRegisteelEffect -DoBrailleRegisteelEffect: @ 0x081797FC - push {lr} - ldr r2, _08179854 - movs r0, #0xe - movs r1, #0x1a - bl MapGridSetMetatileIdAt - ldr r2, _08179858 - movs r0, #0xf - movs r1, #0x1a - bl MapGridSetMetatileIdAt - movs r2, #0x8b - lsls r2, r2, #2 - movs r0, #0x10 - movs r1, #0x1a - bl MapGridSetMetatileIdAt - ldr r2, _0817985C - movs r0, #0xe - movs r1, #0x1b - bl MapGridSetMetatileIdAt - ldr r2, _08179860 - movs r0, #0xf - movs r1, #0x1b - bl MapGridSetMetatileIdAt - ldr r2, _08179864 - movs r0, #0x10 - movs r1, #0x1b - bl MapGridSetMetatileIdAt - bl DrawWholeMapView - movs r0, #0x14 - bl sub_080A306C - ldr r0, _08179868 - bl FlagSet - bl sub_080987E8 - pop {r0} - bx r0 - .align 2, 0 -_08179854: .4byte 0x0000022A -_08179858: .4byte 0x0000022B -_0817985C: .4byte 0x00000E32 -_08179860: .4byte 0x00000233 -_08179864: .4byte 0x00000E34 -_08179868: .4byte 0x000008B2 - thumb_func_end DoBrailleRegisteelEffect - - thumb_func_start sub_0817986C -sub_0817986C: @ 0x0817986C - bx lr - .align 2, 0 - thumb_func_end sub_0817986C - - thumb_func_start FldEff_UsePuzzleEffect -FldEff_UsePuzzleEffect: @ 0x08179870 - push {lr} - bl oei_task_add - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _08179890 - ldrb r0, [r0] - cmp r0, #1 - bne _0817989C - ldr r1, _08179894 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r2, _08179898 - b _081798A8 - .align 2, 0 -_08179890: .4byte gUnknown_203B9E0 -_08179894: .4byte gUnknown_3005B60 -_08179898: .4byte sub_081797EC -_0817989C: - ldr r1, _081798B4 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r2, _081798B8 -_081798A8: - lsrs r1, r2, #0x10 - strh r1, [r0, #0x18] - strh r2, [r0, #0x1a] - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_081798B4: .4byte gUnknown_3005B60 -_081798B8: .4byte sub_08179708 - thumb_func_end FldEff_UsePuzzleEffect - - thumb_func_start ShouldDoBrailleRegicePuzzle -ShouldDoBrailleRegicePuzzle: @ 0x081798BC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r4, _08179900 - ldr r0, [r4] - ldrh r1, [r0, #4] - ldr r0, _08179904 - cmp r1, r0 - beq _081798D2 - b _08179A12 -_081798D2: - ldr r0, _08179908 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081798E0 - b _08179A12 -_081798E0: - movs r0, #2 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081798EE - b _08179A12 -_081798EE: - movs r0, #3 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08179910 - b _08179A12 - .align 2, 0 -_08179900: .4byte gUnknown_3005AEC -_08179904: .4byte 0x00004318 -_08179908: .4byte 0x000008B1 -_0817990C: - movs r0, #1 - b _08179A14 -_08179910: - movs r5, #0 - mov r8, r4 - ldr r4, _0817995C - adds r0, r4, #1 - mov ip, r0 - ldr r6, _08179960 - ldr r1, _08179964 - mov sb, r1 -_08179920: - lsls r0, r5, #1 - adds r1, r0, r4 - add r0, ip - ldrb r3, [r0] - mov r7, r8 - ldr r2, [r7] - movs r7, #0 - ldrsh r0, [r2, r7] - ldrb r1, [r1] - cmp r0, r1 - bne _081799FC - movs r1, #2 - ldrsh r0, [r2, r1] - cmp r0, r3 - bne _081799FC - cmp r5, #0xf - bhi _08179968 - adds r0, r6, #0 - bl VarGet - lsls r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #9 - lsls r1, r5 - orrs r1, r0 - lsrs r1, r1, #0x10 - adds r0, r6, #0 - bl VarSet - b _081799A8 - .align 2, 0 -_0817995C: .4byte gUnknown_85CD314 -_08179960: .4byte 0x0000403B -_08179964: .4byte 0x0000403C -_08179968: - cmp r5, #0x1f - bhi _0817998A - mov r0, sb - bl VarGet - lsls r0, r0, #0x10 - adds r2, r5, #0 - subs r2, #0x10 - movs r1, #0x80 - lsls r1, r1, #9 - lsls r1, r2 - orrs r1, r0 - lsrs r1, r1, #0x10 - mov r0, sb - bl VarSet - b _081799A8 -_0817998A: - ldr r4, _081799E4 - adds r0, r4, #0 - bl VarGet - lsls r0, r0, #0x10 - adds r2, r5, #0 - subs r2, #0x20 - movs r1, #0x80 - lsls r1, r1, #9 - lsls r1, r2 - orrs r1, r0 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl VarSet -_081799A8: - ldr r0, _081799E8 - bl VarGet - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, _081799EC - cmp r4, r0 - bne _08179A12 - ldr r0, _081799F0 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r4 - bne _08179A12 - ldr r0, _081799E4 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xf - bne _08179A12 - ldr r0, _081799F4 - ldr r0, [r0] - ldr r1, [r0] - ldr r0, _081799F8 - cmp r1, r0 - beq _0817990C - b _08179A12 - .align 2, 0 -_081799E4: .4byte 0x0000403D -_081799E8: .4byte 0x0000403B -_081799EC: .4byte 0x0000FFFF -_081799F0: .4byte 0x0000403C -_081799F4: .4byte gUnknown_3005AEC -_081799F8: .4byte 0x00150008 -_081799FC: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0x23 - bls _08179920 - movs r0, #3 - bl FlagSet - movs r0, #2 - bl FlagClear -_08179A12: - movs r0, #0 -_08179A14: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end ShouldDoBrailleRegicePuzzle - - thumb_func_start CB2_PokeblockFeed -CB2_PokeblockFeed: @ 0x08179A20 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CB2_PokeblockFeed - - thumb_func_start VBlankCB_PokeblockFeed -VBlankCB_PokeblockFeed: @ 0x08179A3C - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end VBlankCB_PokeblockFeed - - thumb_func_start TransitionToPokeblockFeedScene -TransitionToPokeblockFeedScene: @ 0x08179A50 - push {r4, lr} - sub sp, #4 - ldr r0, _08179A70 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0xd - bls _08179A64 - b _08179C04 -_08179A64: - lsls r0, r0, #2 - ldr r1, _08179A74 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08179A70: .4byte gUnknown_3002360 -_08179A74: .4byte _08179A78 -_08179A78: @ jump table - .4byte _08179AB0 @ case 0 - .4byte _08179AD8 @ case 1 - .4byte _08179AEC @ case 2 - .4byte _08179B00 @ case 3 - .4byte _08179B06 @ case 4 - .4byte _08179B18 @ case 5 - .4byte _08179B1E @ case 6 - .4byte _08179B30 @ case 7 - .4byte _08179B50 @ case 8 - .4byte _08179B68 @ case 9 - .4byte _08179B94 @ case 10 - .4byte _08179BB0 @ case 11 - .4byte _08179BB6 @ case 12 - .4byte _08179BD0 @ case 13 -_08179AB0: - ldr r4, _08179ACC - ldr r0, _08179AD0 - bl AllocZeroed - str r0, [r4] - bl SetVBlankHBlankCallbacksToNull - bl sub_08199640 - ldr r1, _08179AD4 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _08179BF2 - .align 2, 0 -_08179ACC: .4byte gUnknown_203B9E4 -_08179AD0: .4byte 0x00001084 -_08179AD4: .4byte gUnknown_3002360 -_08179AD8: - bl ResetPaletteFade - ldr r2, _08179AE8 - ldrb r0, [r2, #8] - movs r1, #0x80 - orrs r0, r1 - b _08179BE8 - .align 2, 0 -_08179AE8: .4byte gUnknown_2037C74 -_08179AEC: - bl ResetSpriteData - ldr r1, _08179AFC - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _08179BF2 - .align 2, 0 -_08179AFC: .4byte gUnknown_3002360 -_08179B00: - bl FreeAllSpritePalettes - b _08179BEA -_08179B06: - bl AllocateMonSpritesGfx - ldr r1, _08179B14 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _08179BF2 - .align 2, 0 -_08179B14: .4byte gUnknown_3002360 -_08179B18: - bl HandleInitBackgrounds - b _08179BEA -_08179B1E: - bl HandleInitWindows - ldr r1, _08179B2C - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _08179BF2 - .align 2, 0 -_08179B2C: .4byte gUnknown_3002360 -_08179B30: - ldr r0, _08179B48 - ldrb r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08179B4C - adds r0, r0, r1 - bl LoadMonAndSceneGfx - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08179C1C - b _08179BEA - .align 2, 0 -_08179B48: .4byte gUnknown_203B968 -_08179B4C: .4byte gUnknown_2024190 -_08179B50: - bl CreatePokeblockCaseSpriteForFeeding - ldr r1, _08179B60 - ldr r1, [r1] - ldr r2, _08179B64 - adds r1, r1, r2 - strb r0, [r1] - b _08179BEA - .align 2, 0 -_08179B60: .4byte gUnknown_203B9E4 -_08179B64: .4byte 0x0000105E -_08179B68: - ldr r0, _08179B84 - ldrb r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08179B88 - adds r0, r0, r1 - bl CreateMonSprite - ldr r1, _08179B8C - ldr r1, [r1] - ldr r2, _08179B90 - adds r1, r1, r2 - strb r0, [r1] - b _08179BEA - .align 2, 0 -_08179B84: .4byte gUnknown_203B968 -_08179B88: .4byte gUnknown_2024190 -_08179B8C: .4byte gUnknown_203B9E4 -_08179B90: .4byte 0x0000105D -_08179B94: - movs r0, #0 - movs r1, #1 - movs r2, #1 - movs r3, #0xe - bl DrawStdFrameWithCustomTileAndPalette - ldr r1, _08179BAC - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _08179BF2 - .align 2, 0 -_08179BAC: .4byte gUnknown_3002360 -_08179BB0: - bl LaunchPokeblockFeedTask - b _08179BEA -_08179BB6: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - ldr r1, _08179BCC - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _08179BF2 - .align 2, 0 -_08179BCC: .4byte gUnknown_3002360 -_08179BD0: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r2, _08179BFC - ldrb r1, [r2, #8] - movs r0, #0x7f - ands r0, r1 -_08179BE8: - strb r0, [r2, #8] -_08179BEA: - ldr r1, _08179C00 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 -_08179BF2: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _08179C1C - .align 2, 0 -_08179BFC: .4byte gUnknown_2037C74 -_08179C00: .4byte gUnknown_3002360 -_08179C04: - ldr r0, _08179C14 - bl SetVBlankCallback - ldr r0, _08179C18 - bl SetMainCallback2 - movs r0, #1 - b _08179C1E - .align 2, 0 -_08179C14: .4byte VBlankCB_PokeblockFeed -_08179C18: .4byte CB2_PokeblockFeed -_08179C1C: - movs r0, #0 -_08179C1E: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end TransitionToPokeblockFeedScene - - thumb_func_start CB2_PreparePokeblockFeedScene -CB2_PreparePokeblockFeedScene: @ 0x08179C28 - push {lr} -_08179C2A: - bl sub_081221F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08179C4E - bl TransitionToPokeblockFeedScene - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08179C4E - bl sub_081221B8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08179C2A -_08179C4E: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CB2_PreparePokeblockFeedScene - - thumb_func_start HandleInitBackgrounds -HandleInitBackgrounds: @ 0x08179C54 - push {lr} - bl ResetVramOamAndBgCntRegs - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _08179CA4 - movs r0, #0 - movs r2, #2 - bl InitBgsFromTemplates - ldr r0, _08179CA8 - ldr r1, [r0] - adds r1, #0x48 - movs r0, #1 - bl SetBgTilemapBuffer - bl ResetAllBgsCoordinates - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 -_08179CA4: .4byte gUnknown_85CD9F0 -_08179CA8: .4byte gUnknown_203B9E4 - thumb_func_end HandleInitBackgrounds - - thumb_func_start LoadMonAndSceneGfx -LoadMonAndSceneGfx: @ 0x08179CAC - push {r4, r5, r6, lr} - sub sp, #4 - adds r6, r0, #0 - ldr r0, _08179CD0 - ldr r0, [r0] - ldr r1, _08179CD4 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #8 - bls _08179CC4 - b _08179E58 -_08179CC4: - lsls r0, r0, #2 - ldr r1, _08179CD8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08179CD0: .4byte gUnknown_203B9E4 -_08179CD4: .4byte 0x0000107E -_08179CD8: .4byte _08179CDC -_08179CDC: @ jump table - .4byte _08179D00 @ case 0 - .4byte _08179D3C @ case 1 - .4byte _08179D7C @ case 2 - .4byte _08179D90 @ case 3 - .4byte _08179DA4 @ case 4 - .4byte _08179DB8 @ case 5 - .4byte _08179DD8 @ case 6 - .4byte _08179DFC @ case 7 - .4byte _08179E30 @ case 8 -_08179D00: - adds r0, r6, #0 - movs r1, #0x41 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r6, #0 - movs r1, #0 - bl GetMonData - adds r4, r0, #0 - lsls r0, r5, #3 - ldr r1, _08179D30 - adds r0, r0, r1 - ldr r1, _08179D34 - ldr r1, [r1] - ldr r1, [r1, #8] - adds r2, r5, #0 - adds r3, r4, #0 - bl HandleLoadSpecialPokePic_2 - ldr r0, _08179D38 - ldr r1, [r0] - b _08179E16 - .align 2, 0 -_08179D30: .4byte gUnknown_82DDA1C -_08179D34: .4byte gUnknown_2024178 -_08179D38: .4byte gUnknown_203B9E4 -_08179D3C: - adds r0, r6, #0 - movs r1, #0x41 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r6, #0 - movs r1, #0 - bl GetMonData - adds r4, r0, #0 - adds r0, r6, #0 - movs r1, #1 - bl GetMonData - adds r1, r0, #0 - adds r0, r5, #0 - adds r2, r4, #0 - bl GetMonSpritePalStructFromOtIdPersonality - adds r4, r0, #0 - bl LoadCompressedSpritePalette - ldrh r0, [r4, #4] - movs r1, #1 - bl SetMultiuseSpriteTemplateToPokemon - ldr r0, _08179D78 - ldr r1, [r0] - b _08179E16 - .align 2, 0 -_08179D78: .4byte gUnknown_203B9E4 -_08179D7C: - ldr r0, _08179D88 - bl LoadCompressedSpriteSheet - ldr r0, _08179D8C - ldr r1, [r0] - b _08179E16 - .align 2, 0 -_08179D88: .4byte gUnknown_8592140 -_08179D8C: .4byte gUnknown_203B9E4 -_08179D90: - ldr r0, _08179D9C - bl LoadCompressedSpritePalette - ldr r0, _08179DA0 - ldr r1, [r0] - b _08179E16 - .align 2, 0 -_08179D9C: .4byte gUnknown_8592148 -_08179DA0: .4byte gUnknown_203B9E4 -_08179DA4: - ldr r0, _08179DB0 - bl LoadCompressedSpriteSheet - ldr r0, _08179DB4 - ldr r1, [r0] - b _08179E16 - .align 2, 0 -_08179DB0: .4byte gUnknown_85CDB40 -_08179DB4: .4byte gUnknown_203B9E4 -_08179DB8: - ldr r0, _08179DCC - ldrb r0, [r0] - bl SetPokeblockSpritePal - ldr r0, _08179DD0 - bl LoadCompressedSpritePalette - ldr r0, _08179DD4 - ldr r1, [r0] - b _08179E16 - .align 2, 0 -_08179DCC: .4byte gUnknown_203CB48 -_08179DD0: .4byte gUnknown_203B9E8 -_08179DD4: .4byte gUnknown_203B9E4 -_08179DD8: - bl reset_temp_tile_data_buffers - ldr r1, _08179DF4 - movs r0, #0 - str r0, [sp] - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - ldr r0, _08179DF8 - ldr r1, [r0] - b _08179E16 - .align 2, 0 -_08179DF4: .4byte gUnknown_8D7C4E4 -_08179DF8: .4byte gUnknown_203B9E4 -_08179DFC: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08179E58 - ldr r0, _08179E24 - ldr r4, _08179E28 - ldr r1, [r4] - adds r1, #0x48 - bl sub_08034370 - ldr r1, [r4] -_08179E16: - ldr r0, _08179E2C - adds r1, r1, r0 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _08179E58 - .align 2, 0 -_08179E24: .4byte gUnknown_8D9BC90 -_08179E28: .4byte gUnknown_203B9E4 -_08179E2C: .4byte 0x0000107E -_08179E30: - ldr r0, _08179E4C - movs r1, #0x20 - movs r2, #0x60 - bl LoadCompressedPalette - ldr r0, _08179E50 - ldr r0, [r0] - ldr r1, _08179E54 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0] - movs r0, #1 - b _08179E5A - .align 2, 0 -_08179E4C: .4byte gUnknown_8D7CA90 -_08179E50: .4byte gUnknown_203B9E4 -_08179E54: .4byte 0x0000107E -_08179E58: - movs r0, #0 -_08179E5A: - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end LoadMonAndSceneGfx - - thumb_func_start HandleInitWindows -HandleInitWindows: @ 0x08179E64 - push {lr} - ldr r0, _08179E9C - bl InitWindows - bl sub_08004480 - movs r0, #0 - movs r1, #1 - movs r2, #0xe0 - bl LoadUserWindowBorderGfx - ldr r0, _08179EA0 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - movs r0, #0 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #0 - bl PutWindowTilemap - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - pop {r0} - bx r0 - .align 2, 0 -_08179E9C: .4byte gUnknown_85CD9F8 -_08179EA0: .4byte gUnknown_85D7B04 - thumb_func_end HandleInitWindows - - thumb_func_start SetPokeblockSpritePal -SetPokeblockSpritePal: @ 0x08179EA4 - push {lr} - lsls r0, r0, #0x18 - ldr r1, _08179ED4 - lsrs r0, r0, #0x15 - ldr r2, _08179ED8 - adds r0, r0, r2 - ldr r1, [r1] - adds r1, r1, r0 - adds r0, r1, #0 - movs r1, #0 - bl GetPokeblockData - lsls r0, r0, #0x18 - ldr r2, _08179EDC - ldr r1, _08179EE0 - lsrs r0, r0, #0x16 - subs r0, #4 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r2] - ldr r0, _08179EE4 - strh r0, [r2, #4] - pop {r0} - bx r0 - .align 2, 0 -_08179ED4: .4byte gUnknown_3005AEC -_08179ED8: .4byte 0x00000848 -_08179EDC: .4byte gUnknown_203B9E8 -_08179EE0: .4byte gUnknown_85CDA08 -_08179EE4: .4byte 0x000039E2 - thumb_func_end SetPokeblockSpritePal - - thumb_func_start Task_HandlePokeblockFeed -Task_HandlePokeblockFeed: @ 0x08179EE8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _08179F20 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08179EFC - b _0817A00C -_08179EFC: - ldr r0, _08179F24 - lsls r2, r4, #2 - adds r1, r2, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #8 - ldrsh r3, [r1, r0] - ldr r0, _08179F28 - adds r5, r2, #0 - cmp r3, r0 - beq _08179F80 - cmp r3, r0 - bgt _08179F2C - cmp r3, #0 - beq _08179F40 - cmp r3, #0xff - beq _08179F64 - b _08179FBC - .align 2, 0 -_08179F20: .4byte gUnknown_2037C74 -_08179F24: .4byte gUnknown_3005B60 -_08179F28: .4byte 0x0000010D -_08179F2C: - ldr r0, _08179F3C - cmp r3, r0 - beq _08179F98 - adds r0, #0x10 - cmp r3, r0 - beq _08179FB0 - b _08179FBC - .align 2, 0 -_08179F3C: .4byte 0x00000119 -_08179F40: - ldr r0, _08179F58 - ldr r1, [r0] - ldr r2, _08179F5C - adds r1, r1, r2 - strb r3, [r1] - ldr r0, [r0] - ldr r1, _08179F60 - adds r0, r0, r1 - strh r3, [r0] - bl sub_0817A484 - b _08179FBC - .align 2, 0 -_08179F58: .4byte gUnknown_203B9E4 -_08179F5C: .4byte 0x00001050 -_08179F60: .4byte 0x00001058 -_08179F64: - ldr r0, _08179F78 - ldr r0, [r0] - ldr r2, _08179F7C - adds r0, r0, r2 - ldrb r0, [r0] - ldrb r1, [r1, #0xa] - bl DoPokeblockCaseThrowEffect - b _08179FBC - .align 2, 0 -_08179F78: .4byte gUnknown_203B9E4 -_08179F7C: .4byte 0x0000105E -_08179F80: - bl CreatePokeblockSprite - ldr r1, _08179F90 - ldr r1, [r1] - ldr r2, _08179F94 - adds r1, r1, r2 - strb r0, [r1] - b _08179FBC - .align 2, 0 -_08179F90: .4byte gUnknown_203B9E4 -_08179F94: .4byte 0x0000105F -_08179F98: - ldr r0, _08179FA8 - ldr r0, [r0] - ldr r1, _08179FAC - adds r0, r0, r1 - ldrb r0, [r0] - bl PrepareMonToMoveToPokeblock - b _08179FBC - .align 2, 0 -_08179FA8: .4byte gUnknown_203B9E4 -_08179FAC: .4byte 0x0000105D -_08179FB0: - ldr r0, _08179FB8 - str r0, [r1] - b _0817A00C - .align 2, 0 -_08179FB8: .4byte Task_HandleMonAtePokeblock -_08179FBC: - ldr r0, _08179FD8 - ldr r0, [r0] - ldr r2, _08179FDC - adds r1, r0, r2 - subs r2, #2 - adds r0, r0, r2 - ldrh r1, [r1] - ldrh r0, [r0] - cmp r1, r0 - bhs _08179FE0 - bl sub_0817A4EC - b _08179FF0 - .align 2, 0 -_08179FD8: .4byte gUnknown_203B9E4 -_08179FDC: .4byte 0x00001058 -_08179FE0: - cmp r1, r0 - bne _08179FF0 - ldr r0, _0817A014 - adds r1, r5, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0xfe - strh r0, [r1, #8] -_08179FF0: - ldr r0, _0817A018 - ldr r1, [r0] - ldr r0, _0817A01C - adds r1, r1, r0 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - ldr r0, _0817A014 - adds r1, r5, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] -_0817A00C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0817A014: .4byte gUnknown_3005B60 -_0817A018: .4byte gUnknown_203B9E4 -_0817A01C: .4byte 0x00001058 - thumb_func_end Task_HandlePokeblockFeed - - thumb_func_start LaunchPokeblockFeedTask -LaunchPokeblockFeedTask: @ 0x0817A020 - push {lr} - ldr r0, _0817A044 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0817A048 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r0, #0 - strh r0, [r1, #8] - movs r0, #1 - strh r0, [r1, #0xa] - pop {r0} - bx r0 - .align 2, 0 -_0817A044: .4byte Task_HandlePokeblockFeed -_0817A048: .4byte gUnknown_3005B60 - thumb_func_end LaunchPokeblockFeedTask - - thumb_func_start Task_WaitForAtePokeblockText -Task_WaitForAtePokeblockText: @ 0x0817A04C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #0 - bl RunTextPrintersRetIsActive - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - beq _0817A06E - ldr r0, _0817A074 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _0817A078 - str r0, [r1] -_0817A06E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0817A074: .4byte gUnknown_3005B60 -_0817A078: .4byte Task_PaletteFadeToReturn - thumb_func_end Task_WaitForAtePokeblockText - - thumb_func_start Task_HandleMonAtePokeblock -Task_HandleMonAtePokeblock: @ 0x0817A07C - push {r4, r5, r6, r7, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _0817A0D8 - ldrb r1, [r0] - movs r0, #0x64 - adds r5, r1, #0 - muls r5, r0, r5 - ldr r0, _0817A0DC - adds r5, r5, r0 - ldr r1, _0817A0E0 - ldr r0, _0817A0E4 - ldrh r0, [r0] - lsls r0, r0, #3 - ldr r2, _0817A0E8 - adds r0, r0, r2 - ldr r4, [r1] - adds r4, r4, r0 - adds r0, r5, #0 - bl GetNature - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r4, #0 - bl PokeblockGetGain - ldr r6, _0817A0EC - strh r0, [r6] - ldr r1, _0817A0F0 - adds r0, r5, #0 - bl GetMonNickname - ldr r1, _0817A0F4 - adds r0, r4, #0 - bl PokeblockCopyName - movs r1, #0 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _0817A100 - ldr r0, _0817A0F8 - ldr r1, _0817A0FC - bl StringExpandPlaceholders - b _0817A120 - .align 2, 0 -_0817A0D8: .4byte gUnknown_203B968 -_0817A0DC: .4byte gUnknown_2024190 -_0817A0E0: .4byte gUnknown_3005AEC -_0817A0E4: .4byte gUnknown_203CB48 -_0817A0E8: .4byte 0x00000848 -_0817A0EC: .4byte gUnknown_203B96A -_0817A0F0: .4byte gUnknown_2021C40 -_0817A0F4: .4byte gUnknown_2021C54 -_0817A0F8: .4byte gUnknown_2021C7C -_0817A0FC: .4byte gUnknown_85C9885 -_0817A100: - cmp r0, #0 - ble _0817A118 - ldr r0, _0817A110 - ldr r1, _0817A114 - bl StringExpandPlaceholders - b _0817A120 - .align 2, 0 -_0817A110: .4byte gUnknown_2021C7C -_0817A114: .4byte gUnknown_85C9894 -_0817A118: - ldr r0, _0817A164 - ldr r1, _0817A168 - bl StringExpandPlaceholders -_0817A120: - ldr r2, _0817A16C - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - bl GetPlayerTextSpeedDelay - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r2, _0817A164 - movs r0, #0 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - movs r0, #3 - str r0, [sp, #0xc] - movs r0, #0 - movs r1, #1 - bl AddTextPrinterParameterized2 - ldr r1, _0817A170 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0817A174 - str r1, [r0] - add sp, #0x10 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0817A164: .4byte gUnknown_2021C7C -_0817A168: .4byte gUnknown_85C98A9 -_0817A16C: .4byte gUnknown_30030B4 -_0817A170: .4byte gUnknown_3005B60 -_0817A174: .4byte Task_WaitForAtePokeblockText - thumb_func_end Task_HandleMonAtePokeblock - - thumb_func_start Task_ReturnAfterPaletteFade -Task_ReturnAfterPaletteFade: @ 0x0817A178 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0817A1C4 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0817A1BC - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r0, _0817A1C8 - ldr r1, _0817A1CC - movs r2, #0x80 - lsls r2, r2, #1 - bl m4aMPlayVolumeControl - ldr r0, _0817A1D0 - ldr r0, [r0, #8] - bl SetMainCallback2 - adds r0, r4, #0 - bl DestroyTask - bl FreeAllWindowBuffers - ldr r0, _0817A1D4 - ldr r0, [r0] - bl Free - bl FreeMonSpritesGfx -_0817A1BC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0817A1C4: .4byte gUnknown_2037C74 -_0817A1C8: .4byte gUnknown_30074D0 -_0817A1CC: .4byte 0x0000FFFF -_0817A1D0: .4byte gUnknown_3002360 -_0817A1D4: .4byte gUnknown_203B9E4 - thumb_func_end Task_ReturnAfterPaletteFade - - thumb_func_start Task_PaletteFadeToReturn -Task_PaletteFadeToReturn: @ 0x0817A1D8 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _0817A208 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0817A20C - str r1, [r0] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0817A208: .4byte gUnknown_3005B60 -_0817A20C: .4byte Task_ReturnAfterPaletteFade - thumb_func_end Task_PaletteFadeToReturn - - thumb_func_start CreateMonSprite -CreateMonSprite: @ 0x0817A210 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - movs r1, #0x41 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r0, _0817A2C8 - movs r1, #0x30 - movs r2, #0x50 - movs r3, #2 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r0, _0817A2CC - mov sb, r0 - ldr r0, [r0] - ldr r2, _0817A2D0 - adds r1, r0, r2 - strh r4, [r1] - ldr r1, _0817A2D4 - adds r0, r0, r1 - mov r2, r8 - strb r2, [r0] - adds r0, r5, #0 - bl GetNature - mov r2, sb - ldr r1, [r2] - ldr r2, _0817A2D8 - adds r1, r1, r2 - strb r0, [r1] - ldr r7, _0817A2DC - mov r1, r8 - lsls r0, r1, #4 - add r0, r8 - lsls r5, r0, #2 - adds r6, r5, r7 - strh r4, [r6, #0x32] - adds r0, r7, #0 - adds r0, #0x1c - adds r0, r5, r0 - ldr r1, _0817A2E0 - str r1, [r0] - mov r2, sb - ldr r0, [r2] - ldr r1, _0817A2E4 - adds r0, r0, r1 - movs r1, #1 - strb r1, [r0] - adds r0, r4, #0 - bl IsMonSpriteNotFlipped - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0817A2BA - adds r0, r7, #0 - adds r0, #0x10 - adds r0, r5, r0 - ldr r1, _0817A2E8 - str r1, [r0] - ldrb r3, [r6, #1] - movs r0, #3 - orrs r3, r0 - strb r3, [r6, #1] - lsrs r1, r3, #6 - ldrb r2, [r6, #3] - lsrs r2, r2, #6 - lsls r3, r3, #0x1e - lsrs r3, r3, #0x1e - adds r0, r6, #0 - bl CalcCenterToCornerVec - mov r2, sb - ldr r0, [r2] - ldr r1, _0817A2E4 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] -_0817A2BA: - mov r0, r8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0817A2C8: .4byte gUnknown_2024640 -_0817A2CC: .4byte gUnknown_203B9E4 -_0817A2D0: .4byte 0x00001054 -_0817A2D4: .4byte 0x0000105B -_0817A2D8: .4byte 0x0000105A -_0817A2DC: .4byte gUnknown_20205AC -_0817A2E0: .4byte sub_08007140 -_0817A2E4: .4byte 0x00001053 -_0817A2E8: .4byte gUnknown_85CDA50 - thumb_func_end CreateMonSprite - - thumb_func_start PrepareMonToMoveToPokeblock -PrepareMonToMoveToPokeblock: @ 0x0817A2EC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _0817A314 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r2, r1, r3 - movs r0, #0x30 - strh r0, [r2, #0x20] - movs r0, #0x50 - strh r0, [r2, #0x22] - ldr r0, _0817A318 - strh r0, [r2, #0x2e] - movs r0, #1 - strh r0, [r2, #0x30] - adds r3, #0x1c - adds r1, r1, r3 - ldr r0, _0817A31C - str r0, [r1] - bx lr - .align 2, 0 -_0817A314: .4byte gUnknown_20205AC -_0817A318: .4byte 0x0000FFF8 -_0817A31C: .4byte sub_0817A320 - thumb_func_end PrepareMonToMoveToPokeblock - - thumb_func_start sub_0817A320 -sub_0817A320: @ 0x0817A320 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x20] - adds r0, #4 - strh r0, [r4, #0x20] - ldrh r0, [r4, #0x2e] - ldrh r2, [r4, #0x22] - adds r1, r0, r2 - strh r1, [r4, #0x22] - ldrh r1, [r4, #0x30] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0817A346 - ldrh r0, [r4, #0x32] - movs r1, #0 - bl PlayCry1 -_0817A346: - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #9 - bne _0817A352 - ldr r0, _0817A358 - str r0, [r4, #0x1c] -_0817A352: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0817A358: .4byte sub_08007140 - thumb_func_end sub_0817A320 - - thumb_func_start CreatePokeblockCaseSpriteForFeeding -CreatePokeblockCaseSpriteForFeeding: @ 0x0817A35C - push {r4, r5, lr} - movs r0, #0xbc - movs r1, #0x64 - movs r2, #2 - bl CreatePokeblockCaseSprite - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r5, _0817A3A4 - lsls r3, r4, #4 - adds r3, r3, r4 - lsls r3, r3, #2 - adds r0, r3, r5 - ldrb r2, [r0, #1] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #1 - orrs r1, r2 - strb r1, [r0, #1] - adds r1, r5, #0 - adds r1, #0x10 - adds r1, r3, r1 - ldr r2, _0817A3A8 - str r2, [r1] - adds r5, #0x1c - adds r3, r3, r5 - ldr r1, _0817A3AC - str r1, [r3] - bl InitSpriteAffineAnim - adds r0, r4, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0817A3A4: .4byte gUnknown_20205AC -_0817A3A8: .4byte gUnknown_85CDB04 -_0817A3AC: .4byte sub_08007140 - thumb_func_end CreatePokeblockCaseSpriteForFeeding - - thumb_func_start DoPokeblockCaseThrowEffect -DoPokeblockCaseThrowEffect: @ 0x0817A3B0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r1, #0 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _0817A3F0 - mov r8, r0 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r6, r0, #2 - mov r0, r8 - adds r4, r6, r0 - ldrb r0, [r4, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - ldrb r0, [r4, #1] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #1] - cmp r5, #0 - bne _0817A3F8 - mov r0, r8 - adds r0, #0x10 - adds r0, r6, r0 - ldr r1, _0817A3F4 - b _0817A400 - .align 2, 0 -_0817A3F0: .4byte gUnknown_20205AC -_0817A3F4: .4byte gUnknown_85CDB08 -_0817A3F8: - mov r0, r8 - adds r0, #0x10 - adds r0, r6, r0 - ldr r1, _0817A41C -_0817A400: - str r1, [r0] - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - ldr r1, _0817A420 - adds r0, r0, r1 - bl InitSpriteAffineAnim - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0817A41C: .4byte gUnknown_85CDB0C -_0817A420: .4byte gUnknown_20205AC - thumb_func_end DoPokeblockCaseThrowEffect - - thumb_func_start CreatePokeblockSprite -CreatePokeblockSprite: @ 0x0817A424 - push {lr} - ldr r0, _0817A44C - movs r1, #0xae - movs r2, #0x54 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0817A450 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r2, _0817A454 - strh r2, [r1, #0x2e] - movs r2, #1 - strh r2, [r1, #0x30] - pop {r1} - bx r1 - .align 2, 0 -_0817A44C: .4byte gUnknown_85CDB48 -_0817A450: .4byte gUnknown_20205AC -_0817A454: .4byte 0x0000FFF4 - thumb_func_end CreatePokeblockSprite - - thumb_func_start SpriteCB_ThrownPokeblock -SpriteCB_ThrownPokeblock: @ 0x0817A458 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x20] - subs r0, #4 - strh r0, [r2, #0x20] - ldrh r0, [r2, #0x2e] - ldrh r3, [r2, #0x22] - adds r1, r0, r3 - strh r1, [r2, #0x22] - ldrh r1, [r2, #0x30] - adds r0, r0, r1 - strh r0, [r2, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xa - bne _0817A47E - adds r0, r2, #0 - bl DestroySprite -_0817A47E: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SpriteCB_ThrownPokeblock - - thumb_func_start sub_0817A484 -sub_0817A484: @ 0x0817A484 - push {r4, r5, r6, r7, lr} - ldr r0, _0817A4D8 - ldr r1, [r0] - ldr r0, _0817A4DC - adds r3, r1, r0 - movs r0, #1 - strh r0, [r3] - ldr r2, _0817A4E0 - ldr r7, _0817A4E4 - adds r1, r1, r7 - ldrb r0, [r1] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrb r2, [r0] - movs r4, #0 - ldr r5, _0817A4E8 - adds r6, r5, #0 - subs r6, #0xa -_0817A4A8: - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r0, r1, r6 - ldrh r0, [r0] - ldrh r7, [r3] - adds r0, r0, r7 - strh r0, [r3] - adds r1, r1, r5 - movs r7, #0 - ldrsh r0, [r1, r7] - cmp r0, #1 - beq _0817A4D2 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r4, #7 - bls _0817A4A8 -_0817A4D2: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0817A4D8: .4byte gUnknown_203B9E4 -_0817A4DC: .4byte 0x00001056 -_0817A4E0: .4byte gUnknown_85CD35C -_0817A4E4: .4byte 0x0000105A -_0817A4E8: .4byte gUnknown_85CD3A0 - thumb_func_end sub_0817A484 - - thumb_func_start sub_0817A4EC -sub_0817A4EC: @ 0x0817A4EC - push {r4, lr} - ldr r0, _0817A508 - ldr r4, [r0] - ldr r1, _0817A50C - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, #0x5a - bls _0817A4FE - b _0817A7C6 -_0817A4FE: - lsls r0, r0, #2 - ldr r1, _0817A510 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0817A508: .4byte gUnknown_203B9E4 -_0817A50C: .4byte 0x00001050 -_0817A510: .4byte _0817A514 -_0817A514: @ jump table - .4byte _0817A680 @ case 0 - .4byte _0817A7C6 @ case 1 - .4byte _0817A7C6 @ case 2 - .4byte _0817A7C6 @ case 3 - .4byte _0817A7C6 @ case 4 - .4byte _0817A7C6 @ case 5 - .4byte _0817A7C6 @ case 6 - .4byte _0817A7C6 @ case 7 - .4byte _0817A7C6 @ case 8 - .4byte _0817A7C6 @ case 9 - .4byte _0817A6D0 @ case 10 - .4byte _0817A7C6 @ case 11 - .4byte _0817A7C6 @ case 12 - .4byte _0817A7C6 @ case 13 - .4byte _0817A7C6 @ case 14 - .4byte _0817A7C6 @ case 15 - .4byte _0817A7C6 @ case 16 - .4byte _0817A7C6 @ case 17 - .4byte _0817A7C6 @ case 18 - .4byte _0817A7C6 @ case 19 - .4byte _0817A7C6 @ case 20 - .4byte _0817A7C6 @ case 21 - .4byte _0817A7C6 @ case 22 - .4byte _0817A7C6 @ case 23 - .4byte _0817A7C6 @ case 24 - .4byte _0817A7C6 @ case 25 - .4byte _0817A7C6 @ case 26 - .4byte _0817A7C6 @ case 27 - .4byte _0817A7C6 @ case 28 - .4byte _0817A7C6 @ case 29 - .4byte _0817A7C6 @ case 30 - .4byte _0817A7C6 @ case 31 - .4byte _0817A7C6 @ case 32 - .4byte _0817A7C6 @ case 33 - .4byte _0817A7C6 @ case 34 - .4byte _0817A7C6 @ case 35 - .4byte _0817A7C6 @ case 36 - .4byte _0817A7C6 @ case 37 - .4byte _0817A7C6 @ case 38 - .4byte _0817A7C6 @ case 39 - .4byte _0817A7C6 @ case 40 - .4byte _0817A7C6 @ case 41 - .4byte _0817A7C6 @ case 42 - .4byte _0817A7C6 @ case 43 - .4byte _0817A7C6 @ case 44 - .4byte _0817A7C6 @ case 45 - .4byte _0817A7C6 @ case 46 - .4byte _0817A7C6 @ case 47 - .4byte _0817A7C6 @ case 48 - .4byte _0817A7C6 @ case 49 - .4byte _0817A710 @ case 50 - .4byte _0817A7C6 @ case 51 - .4byte _0817A7C6 @ case 52 - .4byte _0817A7C6 @ case 53 - .4byte _0817A7C6 @ case 54 - .4byte _0817A7C6 @ case 55 - .4byte _0817A7C6 @ case 56 - .4byte _0817A7C6 @ case 57 - .4byte _0817A7C6 @ case 58 - .4byte _0817A7C6 @ case 59 - .4byte _0817A75A @ case 60 - .4byte _0817A7C6 @ case 61 - .4byte _0817A7C6 @ case 62 - .4byte _0817A7C6 @ case 63 - .4byte _0817A7C6 @ case 64 - .4byte _0817A7C6 @ case 65 - .4byte _0817A7C6 @ case 66 - .4byte _0817A7C6 @ case 67 - .4byte _0817A7C6 @ case 68 - .4byte _0817A7C6 @ case 69 - .4byte _0817A7B4 @ case 70 - .4byte _0817A7C6 @ case 71 - .4byte _0817A7C6 @ case 72 - .4byte _0817A7C6 @ case 73 - .4byte _0817A7C6 @ case 74 - .4byte _0817A7C6 @ case 75 - .4byte _0817A7C6 @ case 76 - .4byte _0817A7C6 @ case 77 - .4byte _0817A7C6 @ case 78 - .4byte _0817A7C6 @ case 79 - .4byte _0817A7C6 @ case 80 - .4byte _0817A7C6 @ case 81 - .4byte _0817A7C6 @ case 82 - .4byte _0817A7C6 @ case 83 - .4byte _0817A7C6 @ case 84 - .4byte _0817A7C6 @ case 85 - .4byte _0817A7C6 @ case 86 - .4byte _0817A7C6 @ case 87 - .4byte _0817A7C6 @ case 88 - .4byte _0817A7C6 @ case 89 - .4byte _0817A7C6 @ case 90 -_0817A680: - ldr r1, _0817A6B8 - ldr r2, _0817A6BC - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrb r1, [r0] - ldr r3, _0817A6C0 - adds r0, r4, r3 - strb r1, [r0] - ldr r1, _0817A6C4 - adds r0, r4, r1 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _0817A6C8 - adds r1, r1, r0 - adds r0, r4, #0 - stm r0!, {r1} - movs r2, #0x44 - bl memcpy - ldr r2, _0817A6CC - adds r1, r4, r2 - movs r0, #0xa - strb r0, [r1] - b _0817A7C6 - .align 2, 0 -_0817A6B8: .4byte gUnknown_85CD35C -_0817A6BC: .4byte 0x0000105A -_0817A6C0: .4byte 0x00001051 -_0817A6C4: .4byte 0x0000105B -_0817A6C8: .4byte gUnknown_20205AC -_0817A6CC: .4byte 0x00001050 -_0817A6D0: - bl sub_0817A7D4 - ldr r1, _0817A73C - ldr r3, _0817A740 - adds r0, r4, r3 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _0817A708 - ldr r2, [r4] - ldrb r0, [r2, #1] - movs r1, #3 - orrs r0, r1 - strb r0, [r2, #1] - ldr r2, [r4] - ldrb r1, [r2, #3] - movs r0, #0x3f - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #3] - ldr r0, [r4] - ldr r1, _0817A744 - str r1, [r0, #0x10] - bl InitSpriteAffineAnim -_0817A708: - ldr r0, _0817A748 - adds r1, r4, r0 - movs r0, #0x32 - strb r0, [r1] -_0817A710: - ldr r1, _0817A73C - ldr r2, _0817A740 - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r1, #1 - adds r2, r0, r1 - ldrb r1, [r2] - cmp r1, #0 - beq _0817A780 - ldr r3, _0817A74C - adds r0, r4, r3 - ldrb r0, [r0] - cmp r0, #0 - bne _0817A750 - ldr r0, [r4] - adds r1, #0xa - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl StartSpriteAffineAnim - b _0817A780 - .align 2, 0 -_0817A73C: .4byte gUnknown_85CD35C -_0817A740: .4byte 0x0000105A -_0817A744: .4byte gUnknown_85CD99C -_0817A748: .4byte 0x00001050 -_0817A74C: .4byte 0x00001053 -_0817A750: - ldr r0, [r4] - ldrb r1, [r2] - bl StartSpriteAffineAnim - b _0817A780 -_0817A75A: - bl sub_0817A89C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0817A7C6 - ldr r1, _0817A78C - adds r0, r4, r1 - movs r2, #0 - ldrsh r0, [r0, r2] - cmp r0, #0 - bne _0817A798 - ldr r3, _0817A790 - adds r1, r4, r3 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - bl sub_0817A7D4 -_0817A780: - ldr r0, _0817A794 - adds r1, r4, r0 - movs r0, #0x3c - strb r0, [r1] - b _0817A7C6 - .align 2, 0 -_0817A78C: .4byte 0x00001072 -_0817A790: .4byte 0x00001051 -_0817A794: .4byte 0x00001050 -_0817A798: - ldr r0, [r4] - ldrb r0, [r0, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - ldr r2, _0817A7B0 - adds r1, r4, r2 - movs r0, #0x46 - strb r0, [r1] - b _0817A7C6 - .align 2, 0 -_0817A7B0: .4byte 0x00001050 -_0817A7B4: - bl FreeMonSpriteOamMatrix - ldr r3, _0817A7CC - adds r0, r4, r3 - movs r1, #0 - strb r1, [r0] - ldr r2, _0817A7D0 - adds r0, r4, r2 - strb r1, [r0] -_0817A7C6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0817A7CC: .4byte 0x00001051 -_0817A7D0: .4byte 0x00001050 - thumb_func_end sub_0817A4EC - - thumb_func_start sub_0817A7D4 -sub_0817A7D4: @ 0x0817A7D4 - push {r4, r5, r6, r7, lr} - ldr r0, _0817A878 - ldr r5, [r0] - movs r4, #0 - movs r0, #0x83 - lsls r0, r0, #5 - adds r7, r5, r0 - ldr r1, _0817A87C - mov ip, r1 - ldr r2, _0817A880 - adds r6, r5, r2 -_0817A7EA: - lsls r2, r4, #1 - adds r3, r7, r2 - ldrb r1, [r6] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, r2, r0 - add r2, ip - ldrh r0, [r2] - strh r0, [r3] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #9 - bls _0817A7EA - ldr r0, _0817A884 - adds r6, r5, r0 - movs r1, #0 - ldrsh r0, [r6, r1] - cmp r0, #0 - beq _0817A894 - movs r2, #0x83 - lsls r2, r2, #5 - adds r4, r5, r2 - movs r1, #0 - ldrsh r0, [r4, r1] - adds r2, #4 - adds r1, r5, r2 - movs r2, #0 - ldrsh r1, [r1, r2] - bl Sin - ldr r2, _0817A888 - adds r1, r5, r2 - strh r0, [r1] - movs r1, #0 - ldrsh r0, [r4, r1] - subs r2, #0xe - adds r1, r5, r2 - movs r2, #0 - ldrsh r1, [r1, r2] - bl Cos - ldr r2, _0817A88C - adds r1, r5, r2 - strh r0, [r1] - ldrh r0, [r6] - ldr r1, _0817A890 - adds r4, r5, r1 - strh r0, [r4] - ldr r0, [r5] - ldrh r1, [r0, #0x24] - adds r2, #4 - adds r0, r5, r2 - strh r1, [r0] - ldr r0, [r5] - ldrh r1, [r0, #0x26] - adds r2, #2 - adds r0, r5, r2 - strh r1, [r0] - bl sub_0817AA20 - ldrh r0, [r4] - strh r0, [r6] - bl sub_0817A90C - ldrh r0, [r4] - strh r0, [r6] - movs r0, #0 - b _0817A896 - .align 2, 0 -_0817A878: .4byte gUnknown_203B9E4 -_0817A87C: .4byte gUnknown_85CD38E -_0817A880: .4byte 0x00001051 -_0817A884: .4byte 0x00001068 -_0817A888: .4byte 0x00001074 -_0817A88C: .4byte 0x00001076 -_0817A890: .4byte 0x00001078 -_0817A894: - movs r0, #1 -_0817A896: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_0817A7D4 - - thumb_func_start sub_0817A89C -sub_0817A89C: @ 0x0817A89C - push {r4, r5, lr} - ldr r0, _0817A8E0 - ldr r2, [r0] - ldr r1, _0817A8E4 - adds r0, r2, r1 - ldr r5, _0817A8E8 - adds r4, r2, r5 - ldrh r1, [r0] - ldrh r0, [r4] - subs r1, r1, r0 - lsls r1, r1, #0x10 - ldr r3, [r2] - lsrs r1, r1, #0xf - movs r5, #0x85 - lsls r5, r5, #4 - adds r0, r2, r5 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r3, #0x24] - ldr r3, [r2] - movs r0, #0xc5 - lsls r0, r0, #4 - adds r2, r2, r0 - adds r2, r2, r1 - ldrh r0, [r2] - strh r0, [r3, #0x26] - ldrh r0, [r4] - subs r0, #1 - strh r0, [r4] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0817A8EC - movs r0, #0 - b _0817A8EE - .align 2, 0 -_0817A8E0: .4byte gUnknown_203B9E4 -_0817A8E4: .4byte 0x00001078 -_0817A8E8: .4byte 0x00001068 -_0817A8EC: - movs r0, #1 -_0817A8EE: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_0817A89C - - thumb_func_start FreeMonSpriteOamMatrix -FreeMonSpriteOamMatrix: @ 0x0817A8F4 - push {lr} - ldr r0, _0817A908 - ldr r0, [r0] - ldr r0, [r0] - bl FreeSpriteOamMatrix - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0817A908: .4byte gUnknown_203B9E4 - thumb_func_end FreeMonSpriteOamMatrix - - thumb_func_start sub_0817A90C -sub_0817A90C: @ 0x0817A90C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - ldr r0, _0817AA0C - ldr r7, [r0] - ldr r1, _0817AA10 - adds r0, r7, r1 - ldrh r0, [r0] - mov sb, r0 - ldr r2, _0817AA14 - adds r0, r7, r2 - ldrh r0, [r0] - mov r3, sb - subs r0, r0, r3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - ldr r4, _0817AA18 - adds r1, r7, r4 - subs r2, #0xc - adds r0, r7, r2 - ldrh r0, [r0] - ldrh r1, [r1] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp] - ldr r3, _0817AA1C - adds r1, r7, r3 - subs r4, #0xc - adds r0, r7, r4 - ldrh r0, [r0] - ldrh r1, [r1] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #4] - movs r5, #0 - mov r0, r8 - subs r0, #1 - cmp r5, r0 - bge _0817A9D8 - ldr r1, [sp] - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - str r0, [sp, #8] - ldr r2, [sp, #4] - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - mov sl, r0 -_0817A976: - mov r3, sb - adds r0, r3, r5 - lsls r0, r0, #1 - movs r4, #0x85 - lsls r4, r4, #4 - adds r2, r7, r4 - adds r2, r2, r0 - ldrh r6, [r2] - ldr r3, [sp, #8] - subs r1, r6, r3 - movs r4, #0xc5 - lsls r4, r4, #4 - adds r3, r7, r4 - adds r3, r3, r0 - ldrh r4, [r3] - mov r0, sl - subs r4, r4, r0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r5, #1 - adds r0, r1, #0 - muls r0, r5, r0 - mov r1, r8 - str r2, [sp, #0xc] - str r3, [sp, #0x10] - bl __divsi3 - subs r6, r6, r0 - ldr r2, [sp, #0xc] - strh r6, [r2] - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - adds r0, r4, #0 - muls r0, r5, r0 - mov r1, r8 - bl __divsi3 - ldr r3, [sp, #0x10] - ldrh r1, [r3] - subs r1, r1, r0 - strh r1, [r3] - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - mov r0, r8 - subs r0, #1 - cmp r5, r0 - blt _0817A976 -_0817A9D8: - mov r0, sb - add r0, r8 - subs r0, #1 - lsls r0, r0, #1 - movs r2, #0x85 - lsls r2, r2, #4 - adds r1, r7, r2 - adds r1, r1, r0 - mov r3, sp - ldrh r3, [r3] - strh r3, [r1] - movs r4, #0xc5 - lsls r4, r4, #4 - adds r1, r7, r4 - adds r1, r1, r0 - mov r0, sp - ldrh r0, [r0, #4] - strh r0, [r1] - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0817AA0C: .4byte gUnknown_203B9E4 -_0817AA10: .4byte 0x00001070 -_0817AA14: .4byte 0x00001078 -_0817AA18: .4byte 0x0000107A -_0817AA1C: .4byte 0x0000107C - thumb_func_end sub_0817A90C - - thumb_func_start sub_0817AA20 -sub_0817AA20: @ 0x0817AA20 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - ldr r0, _0817AAE4 - ldr r6, [r0] - movs r0, #0 - str r0, [sp] - ldr r1, _0817AAE8 - adds r0, r6, r1 - ldr r2, _0817AAEC - adds r1, r6, r2 - ldrh r2, [r0] - ldrh r0, [r1] - subs r2, r2, r0 - ldr r3, _0817AAF0 - adds r0, r6, r3 - ldr r1, _0817AAF4 - adds r3, r6, r1 - ldrh r1, [r0] - ldrh r0, [r3] - subs r1, r1, r0 - ldr r3, _0817AAF8 - adds r3, r3, r6 - mov sb, r3 - movs r0, #0x83 - lsls r0, r0, #5 - adds r0, r0, r6 - mov r8, r0 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - str r2, [sp, #4] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - mov sl, r1 -_0817AA6A: - ldr r1, _0817AAFC - adds r0, r6, r1 - movs r2, #0 - ldrsh r0, [r0, r2] - cmp r0, #0 - bge _0817AA78 - rsbs r0, r0, #0 -_0817AA78: - lsls r0, r0, #0x10 - ldr r3, _0817AB00 - adds r7, r6, r3 - lsrs r0, r0, #0x10 - ldrh r1, [r7] - adds r0, r0, r1 - lsls r4, r0, #0x10 - strh r0, [r7] - ldr r2, _0817AB04 - adds r0, r6, r2 - ldrh r2, [r0] - movs r3, #0 - ldrsh r0, [r0, r3] - cmp r0, #0 - bge _0817AA9A - movs r0, #1 - str r0, [sp] -_0817AA9A: - ldr r1, _0817AB08 - adds r0, r6, r1 - ldrh r0, [r0] - mov r3, sb - ldrh r1, [r3] - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r1, #0 - beq _0817AB70 - ldr r0, [sp] - cmp r0, #0 - bne _0817AB0C - mov r1, r8 - movs r3, #0 - ldrsh r0, [r1, r3] - lsrs r4, r4, #0x18 - adds r1, r2, r4 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl Sin - lsls r5, r5, #1 - movs r2, #0x85 - lsls r2, r2, #4 - adds r1, r6, r2 - adds r1, r1, r5 - ldr r3, [sp, #4] - adds r0, r3, r0 - strh r0, [r1] - mov r1, r8 - movs r2, #0 - ldrsh r0, [r1, r2] - ldrh r1, [r7] - adds r1, r1, r4 - b _0817AB38 - .align 2, 0 -_0817AAE4: .4byte gUnknown_203B9E4 -_0817AAE8: .4byte 0x0000107A -_0817AAEC: .4byte 0x00001074 -_0817AAF0: .4byte 0x0000107C -_0817AAF4: .4byte 0x00001076 -_0817AAF8: .4byte 0x00001068 -_0817AAFC: .4byte 0x0000106A -_0817AB00: .4byte 0x00001066 -_0817AB04: .4byte 0x00001064 -_0817AB08: .4byte 0x00001078 -_0817AB0C: - mov r1, r8 - movs r3, #0 - ldrsh r0, [r1, r3] - lsrs r4, r4, #0x18 - subs r1, r2, r4 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl Sin - lsls r5, r5, #1 - movs r2, #0x85 - lsls r2, r2, #4 - adds r1, r6, r2 - adds r1, r1, r5 - ldr r3, [sp, #4] - adds r0, r3, r0 - strh r0, [r1] - mov r1, r8 - movs r2, #0 - ldrsh r0, [r1, r2] - ldrh r1, [r7] - subs r1, r1, r4 -_0817AB38: - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl Cos - movs r3, #0xc5 - lsls r3, r3, #4 - adds r1, r6, r3 - adds r1, r1, r5 - add r0, sl - strh r0, [r1] - ldr r1, _0817AB6C - adds r0, r6, r1 - ldrh r0, [r0] - mov r2, r8 - ldrh r2, [r2] - adds r0, r0, r2 - movs r1, #0xff - ands r0, r1 - mov r3, r8 - strh r0, [r3] - mov r1, sb - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - b _0817AA6A - .align 2, 0 -_0817AB6C: .4byte 0x00001062 -_0817AB70: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_0817AA20 - - thumb_func_start CB2_InitClearSaveDataScreen -CB2_InitClearSaveDataScreen: @ 0x0817AB80 - push {lr} - bl SetupClearSaveDataScreen - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0817AB94 - ldr r0, _0817AB98 - movs r1, #0 - bl CreateTask -_0817AB94: - pop {r0} - bx r0 - .align 2, 0 -_0817AB98: .4byte sub_0817AB9C - thumb_func_end CB2_InitClearSaveDataScreen - - thumb_func_start sub_0817AB9C -sub_0817AB9C: @ 0x0817AB9C - push {r4, r5, lr} - sub sp, #0xc - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - movs r1, #0 - movs r2, #2 - movs r3, #0xe - bl DrawStdFrameWithCustomTileAndPalette - ldr r2, _0817ABF0 - movs r5, #2 - str r5, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - ldr r0, _0817ABF4 - str r5, [sp] - movs r1, #0xe - str r1, [sp, #4] - movs r1, #1 - str r1, [sp, #8] - movs r2, #0 - movs r3, #2 - bl sub_08198C08 - ldr r1, _0817ABF8 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0817ABFC - str r1, [r0] - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0817ABF0: .4byte gUnknown_85CDB60 -_0817ABF4: .4byte gUnknown_85CDBA8 -_0817ABF8: .4byte gUnknown_3005B60 -_0817ABFC: .4byte Task_ClearSaveDataScreenYesNoChoice - thumb_func_end sub_0817AB9C - - thumb_func_start Task_ClearSaveDataScreenYesNoChoice -Task_ClearSaveDataScreenYesNoChoice: @ 0x0817AC00 - push {r4, r5, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r4, r0, #0x18 - cmp r4, #0 - beq _0817AC28 - cmp r4, #0 - bgt _0817AC22 - movs r0, #1 - rsbs r0, r0, #0 - cmp r4, r0 - beq _0817AC60 - b _0817AC72 -_0817AC22: - cmp r4, #1 - beq _0817AC60 - b _0817AC72 -_0817AC28: - movs r0, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r2, _0817AC54 - movs r0, #2 - str r0, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r0, #0 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - ldr r1, _0817AC58 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _0817AC5C - str r1, [r0] - b _0817AC72 - .align 2, 0 -_0817AC54: .4byte gUnknown_85CDB7A -_0817AC58: .4byte gUnknown_3005B60 -_0817AC5C: .4byte Task_ClearSaveData -_0817AC60: - movs r0, #5 - bl sub_080A306C - adds r0, r5, #0 - bl DestroyTask - ldr r0, _0817AC7C - bl SetMainCallback2 -_0817AC72: - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0817AC7C: .4byte CB2_FadeAndDoReset - thumb_func_end Task_ClearSaveDataScreenYesNoChoice - - thumb_func_start Task_ClearSaveData -Task_ClearSaveData: @ 0x0817AC80 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl ClearSaveData - adds r0, r4, #0 - bl DestroyTask - ldr r0, _0817ACA0 - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0817ACA0: .4byte CB2_FadeAndDoReset - thumb_func_end Task_ClearSaveData - - thumb_func_start sub_0817ACA4 -sub_0817ACA4: @ 0x0817ACA4 - push {lr} - bl RunTasks - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0817ACA4 - - thumb_func_start VBlankCB -VBlankCB: @ 0x0817ACB4 - push {lr} - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end VBlankCB - - thumb_func_start SetupClearSaveDataScreen -SetupClearSaveDataScreen: @ 0x0817ACC0 - push {r4, lr} - sub sp, #0xc - ldr r0, _0817AE20 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _0817ACD8 - cmp r0, #1 - bne _0817ACD8 - b _0817AE64 -_0817ACD8: - movs r0, #0 - bl SetVBlankCallback - movs r0, #0 - movs r1, #0 - bl SetGpuReg - movs r0, #0x10 - movs r1, #0 - bl SetGpuReg - movs r0, #0x12 - movs r1, #0 - bl SetGpuReg - movs r0, #0x1c - movs r1, #0 - bl SetGpuReg - movs r0, #0x1e - movs r1, #0 - bl SetGpuReg - movs r0, #0x40 - movs r1, #0 - bl SetGpuReg - movs r0, #0x44 - movs r1, #0 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0 - bl SetGpuReg - movs r0, #0x4a - movs r1, #0 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - add r0, sp, #4 - movs r4, #0 - strh r4, [r0] - ldr r1, _0817AE24 - str r0, [r1] - movs r0, #0xc0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _0817AE28 - str r0, [r1, #8] - ldr r0, [r1, #8] - movs r2, #0 - str r2, [sp, #8] - add r0, sp, #8 - str r0, [r1] - movs r0, #0xe0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _0817AE2C - str r0, [r1, #8] - ldr r0, [r1, #8] - add r0, sp, #4 - strh r2, [r0] - str r0, [r1] - ldr r0, _0817AE30 - str r0, [r1, #4] - ldr r0, _0817AE34 - str r0, [r1, #8] - ldr r0, [r1, #8] - bl ResetPaletteFade - ldr r2, _0817AE38 - ldr r0, _0817AE3C - strh r0, [r2] - ldr r1, _0817AE40 - strh r0, [r1] - ldr r0, _0817AE44 - strh r0, [r2, #2] - strh r0, [r1, #2] - movs r1, #0 - ldr r3, _0817AE48 - ldr r0, _0817AE4C - adds r2, r0, #0 -_0817AD94: - lsls r0, r1, #1 - adds r0, r0, r3 - strh r2, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0xf - bls _0817AD94 - movs r1, #0 - ldr r4, _0817AE50 - movs r3, #1 - ldr r2, _0817AE54 -_0817ADAC: - lsls r0, r1, #1 - adds r0, r0, r4 - strh r3, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, r2 - bls _0817ADAC - bl ResetTasks - bl ResetSpriteData - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _0817AE58 - movs r0, #0 - movs r2, #2 - bl InitBgsFromTemplates - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #3 - bl ShowBg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - bl InitClearSaveDataScreenWindows - ldr r0, _0817AE5C - str r0, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - movs r0, #1 - bl EnableInterrupts - ldr r0, _0817AE60 - bl SetVBlankCallback - ldr r0, _0817AE20 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - movs r1, #1 - strb r1, [r0] - b _0817AE88 - .align 2, 0 -_0817AE20: .4byte gUnknown_3002360 -_0817AE24: .4byte 0x040000D4 -_0817AE28: .4byte 0x8100C000 -_0817AE2C: .4byte 0x85000100 -_0817AE30: .4byte 0x05000002 -_0817AE34: .4byte 0x810001FF -_0817AE38: .4byte gUnknown_20373B4 -_0817AE3C: .4byte 0x00007FFF -_0817AE40: .4byte gUnknown_20377B4 -_0817AE44: .4byte 0x00003945 -_0817AE48: .4byte 0x06000020 -_0817AE4C: .4byte 0x00001111 -_0817AE50: .4byte 0x0600F000 -_0817AE54: .4byte 0x000003FF -_0817AE58: .4byte gUnknown_85CDB90 -_0817AE5C: .4byte 0x0000FFFF -_0817AE60: .4byte VBlankCB -_0817AE64: - bl UpdatePaletteFade - ldr r0, _0817AE80 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0817AE88 - ldr r0, _0817AE84 - bl SetMainCallback2 - movs r0, #1 - b _0817AE8A - .align 2, 0 -_0817AE80: .4byte gUnknown_2037C74 -_0817AE84: .4byte sub_0817ACA4 -_0817AE88: - movs r0, #0 -_0817AE8A: - add sp, #0xc - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end SetupClearSaveDataScreen - - thumb_func_start CB2_FadeAndDoReset -CB2_FadeAndDoReset: @ 0x0817AE94 - push {r4, lr} - sub sp, #4 - ldr r0, _0817AEC0 - movs r1, #0x87 - lsls r1, r1, #3 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, #0 - beq _0817AEAA - cmp r0, #1 - beq _0817AEC8 -_0817AEAA: - ldr r0, _0817AEC4 - str r0, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - movs r0, #1 - strb r0, [r4] - b _0817AEE0 - .align 2, 0 -_0817AEC0: .4byte gUnknown_3002360 -_0817AEC4: .4byte 0x0000FFFF -_0817AEC8: - bl UpdatePaletteFade - ldr r0, _0817AEE8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0817AEE0 - bl FreeAllWindowBuffers - bl DoSoftReset -_0817AEE0: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0817AEE8: .4byte gUnknown_2037C74 - thumb_func_end CB2_FadeAndDoReset - - thumb_func_start InitClearSaveDataScreenWindows -InitClearSaveDataScreenWindows: @ 0x0817AEEC - push {lr} - ldr r0, _0817AF1C - bl InitWindows - bl sub_08004480 - movs r0, #0 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #0 - movs r1, #0 - movs r2, #2 - movs r3, #0xe0 - bl LoadWindowGfx - ldr r0, _0817AF20 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_0817AF1C: .4byte gUnknown_85CDB98 -_0817AF20: .4byte gUnknown_85D7B04 - thumb_func_end InitClearSaveDataScreenWindows - - thumb_func_start load_intro_part2_graphics -load_intro_part2_graphics: @ 0x0817AF24 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0817AF80 - ldr r1, _0817AF84 - bl LZ77UnCompVram - ldr r0, _0817AF88 - ldr r1, _0817AF8C - bl LZ77UnCompVram - ldr r0, _0817AF90 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - cmp r4, #0 - beq _0817AF4C - cmp r4, #1 - beq _0817AFAC -_0817AF4C: - ldr r0, _0817AF94 - movs r1, #0xc0 - lsls r1, r1, #0x13 - bl LZ77UnCompVram - ldr r0, _0817AF98 - ldr r1, _0817AF9C - bl LZ77UnCompVram - ldr r0, _0817AFA0 - movs r1, #0 - movs r2, #0x60 - bl LoadPalette - ldr r0, _0817AFA4 - bl LoadCompressedSpriteSheet - ldr r0, _0817AFA8 - movs r1, #0x80 - lsls r1, r1, #1 - movs r2, #0x20 - bl LoadPalette - bl sub_0817B62C - b _0817AFDE - .align 2, 0 -_0817AF80: .4byte gUnknown_85CDC10 -_0817AF84: .4byte 0x06004000 -_0817AF88: .4byte gUnknown_85CE090 -_0817AF8C: .4byte 0x06007800 -_0817AF90: .4byte gUnknown_85CDBB0 -_0817AF94: .4byte gUnknown_85CE28C -_0817AF98: .4byte gUnknown_85CE868 -_0817AF9C: .4byte 0x06003000 -_0817AFA0: .4byte gUnknown_85CE1CC -_0817AFA4: .4byte gUnknown_85D2534 -_0817AFA8: .4byte gUnknown_85CEB38 -_0817AFAC: - ldr r0, _0817AFF0 - movs r1, #0xc0 - lsls r1, r1, #0x13 - bl LZ77UnCompVram - ldr r0, _0817AFF4 - ldr r1, _0817AFF8 - bl LZ77UnCompVram - ldr r0, _0817AFFC - movs r1, #0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _0817B000 - bl LoadCompressedSpriteSheet - ldr r0, _0817B004 - movs r1, #0x80 - lsls r1, r1, #1 - movs r2, #0x20 - bl LoadPalette - bl sub_0817B648 -_0817AFDE: - ldr r1, _0817B008 - movs r0, #0 - strh r0, [r1] - ldr r1, _0817B00C - movs r0, #8 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0817AFF0: .4byte gUnknown_85CECF4 -_0817AFF4: .4byte gUnknown_85CF37C -_0817AFF8: .4byte 0x06003000 -_0817AFFC: .4byte gUnknown_85CECB4 -_0817B000: .4byte gUnknown_85D25BC -_0817B004: .4byte gUnknown_85CF680 -_0817B008: .4byte gUnknown_203B9F4 -_0817B00C: .4byte gUnknown_30030BC - thumb_func_end load_intro_part2_graphics - - thumb_func_start LinkPartnerHandleChooseMove -LinkPartnerHandleChooseMove: @ 0x0817B010 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0817B022 - cmp r0, #1 - ble _0817B022 - cmp r0, #2 - beq _0817B054 -_0817B022: - ldr r1, _0817B048 - movs r0, #0xe - bl SetGpuReg - ldr r1, _0817B04C - movs r0, #0xc - bl SetGpuReg - ldr r1, _0817B050 - movs r0, #0xa - bl SetGpuReg - movs r1, #0xf2 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - b _0817B076 - .align 2, 0 -_0817B048: .4byte 0x00000603 -_0817B04C: .4byte 0x00000702 -_0817B050: .4byte 0x00000F05 -_0817B054: - ldr r1, _0817B07C - movs r0, #0xe - bl SetGpuReg - ldr r1, _0817B080 - movs r0, #0xc - bl SetGpuReg - ldr r1, _0817B084 - movs r0, #0xa - bl SetGpuReg - movs r1, #0xf2 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg -_0817B076: - pop {r0} - bx r0 - .align 2, 0 -_0817B07C: .4byte 0x00000603 -_0817B080: .4byte 0x00000702 -_0817B084: .4byte 0x00000F05 - thumb_func_end LinkPartnerHandleChooseMove - - thumb_func_start sub_0817B088 -sub_0817B088: @ 0x0817B088 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0817B0AC - ldr r1, _0817B0B0 - bl LZ77UnCompVram - ldr r0, _0817B0B4 - ldr r1, _0817B0B8 - bl LZ77UnCompVram - cmp r4, #4 - bhi _0817B0D4 - lsls r0, r4, #2 - ldr r1, _0817B0BC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0817B0AC: .4byte gUnknown_85CDC10 -_0817B0B0: .4byte 0x06004000 -_0817B0B4: .4byte gUnknown_85CE090 -_0817B0B8: .4byte 0x06007800 -_0817B0BC: .4byte _0817B0C0 -_0817B0C0: @ jump table - .4byte _0817B0D4 @ case 0 - .4byte _0817B130 @ case 1 - .4byte _0817B19C @ case 2 - .4byte _0817B19C @ case 3 - .4byte _0817B1F4 @ case 4 -_0817B0D4: - ldr r0, _0817B10C - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _0817B110 - movs r1, #0xc0 - lsls r1, r1, #0x13 - bl LZ77UnCompVram - ldr r0, _0817B114 - ldr r1, _0817B118 - bl LZ77UnCompVram - ldr r0, _0817B11C - movs r1, #0 - movs r2, #0x60 - bl LoadPalette - ldr r0, _0817B120 - bl LoadCompressedSpriteSheet - ldr r0, _0817B124 - ldr r1, _0817B128 - bl LZ77UnCompVram - ldr r0, _0817B12C - b _0817B166 - .align 2, 0 -_0817B10C: .4byte gUnknown_85CDBB0 -_0817B110: .4byte gUnknown_85CE28C -_0817B114: .4byte gUnknown_85CE868 -_0817B118: .4byte 0x06003000 -_0817B11C: .4byte gUnknown_85CE1CC -_0817B120: .4byte gUnknown_85D2534 -_0817B124: .4byte gUnknown_85CEB78 -_0817B128: .4byte 0x06010000 -_0817B12C: .4byte gUnknown_85CEB38 -_0817B130: - ldr r0, _0817B178 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _0817B17C - movs r1, #0xc0 - lsls r1, r1, #0x13 - bl LZ77UnCompVram - ldr r0, _0817B180 - ldr r1, _0817B184 - bl LZ77UnCompVram - ldr r0, _0817B188 - movs r1, #0 - movs r2, #0x60 - bl LoadPalette - ldr r0, _0817B18C - bl LoadCompressedSpriteSheet - ldr r0, _0817B190 - ldr r1, _0817B194 - bl LZ77UnCompVram - ldr r0, _0817B198 -_0817B166: - movs r1, #0x80 - lsls r1, r1, #1 - movs r2, #0x20 - bl LoadPalette - bl sub_0817B62C - b _0817B230 - .align 2, 0 -_0817B178: .4byte gUnknown_85CDBD0 -_0817B17C: .4byte gUnknown_85CE28C -_0817B180: .4byte gUnknown_85CE868 -_0817B184: .4byte 0x06003000 -_0817B188: .4byte gUnknown_85CE22C -_0817B18C: .4byte gUnknown_85D2534 -_0817B190: .4byte gUnknown_85CEB78 -_0817B194: .4byte 0x06010000 -_0817B198: .4byte gUnknown_85CEB58 -_0817B19C: - ldr r0, _0817B1DC - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _0817B1E0 - movs r1, #0xc0 - lsls r1, r1, #0x13 - bl LZ77UnCompVram - ldr r0, _0817B1E4 - ldr r1, _0817B1E8 - bl LZ77UnCompVram - ldr r4, _0817B1EC - adds r0, r4, #0 - movs r1, #0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _0817B1F0 - bl LoadCompressedSpriteSheet - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r4, #0 - movs r2, #0x20 - bl LoadPalette - bl sub_0817B648 - b _0817B230 - .align 2, 0 -_0817B1DC: .4byte gUnknown_85CDBD0 -_0817B1E0: .4byte gUnknown_85CECF4 -_0817B1E4: .4byte gUnknown_85CF37C -_0817B1E8: .4byte 0x06003000 -_0817B1EC: .4byte gUnknown_85CECD4 -_0817B1F0: .4byte gUnknown_85D25BC -_0817B1F4: - ldr r0, _0817B244 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _0817B248 - movs r1, #0xc0 - lsls r1, r1, #0x13 - bl LZ77UnCompVram - ldr r0, _0817B24C - ldr r1, _0817B250 - bl LZ77UnCompVram - ldr r0, _0817B254 - movs r1, #0 - movs r2, #0x40 - bl LoadPalette - ldr r0, _0817B258 - bl LoadCompressedSpriteSheet - ldr r0, _0817B25C - movs r1, #0x80 - lsls r1, r1, #1 - movs r2, #0x20 - bl LoadPalette - bl sub_0817B664 -_0817B230: - ldr r1, _0817B260 - movs r0, #8 - strb r0, [r1] - ldr r1, _0817B264 - movs r0, #0 - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0817B244: .4byte gUnknown_85CDBF0 -_0817B248: .4byte gUnknown_85CF82C -_0817B24C: .4byte gUnknown_85CFA38 -_0817B250: .4byte 0x06003000 -_0817B254: .4byte gUnknown_85CF7EC -_0817B258: .4byte gUnknown_85D2650 -_0817B25C: .4byte gUnknown_85CFA18 -_0817B260: .4byte gUnknown_30030BC -_0817B264: .4byte gUnknown_203B9F4 - thumb_func_end sub_0817B088 - - thumb_func_start sub_0817B268 -sub_0817B268: @ 0x0817B268 - push {lr} - ldr r1, _0817B290 - movs r0, #0xe - bl SetGpuReg - ldr r1, _0817B294 - movs r0, #0xc - bl SetGpuReg - ldr r1, _0817B298 - movs r0, #0xa - bl SetGpuReg - movs r1, #0xfa - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 -_0817B290: .4byte 0x00000603 -_0817B294: .4byte 0x00000702 -_0817B298: .4byte 0x00000F05 - thumb_func_end sub_0817B268 - - thumb_func_start sub_0817B29C -sub_0817B29C: @ 0x0817B29C - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #4 - adds r5, r0, #0 - adds r6, r1, #0 - mov r8, r2 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - mov r0, r8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - ldr r1, _0817B310 - mov sb, r1 - mov r0, sb - movs r1, #0 - str r3, [sp] - bl CreateTask - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _0817B314 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #0 - strh r5, [r0, #8] - strh r6, [r0, #0xa] - strh r2, [r0, #0xc] - strh r2, [r0, #0xe] - mov r1, r8 - strh r1, [r0, #0x10] - strh r2, [r0, #0x12] - strh r2, [r0, #0x14] - ldr r3, [sp] - strh r3, [r0, #0x16] - movs r1, #8 - strh r1, [r0, #0x18] - strh r2, [r0, #0x1a] - adds r0, r4, #0 - bl _call_via_r9 - adds r0, r4, #0 - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0817B310: .4byte sub_0817B318 -_0817B314: .4byte gUnknown_3005B60 - thumb_func_end sub_0817B29C - - thumb_func_start sub_0817B318 -sub_0817B318: @ 0x0817B318 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _0817B3A4 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - ldrh r0, [r4, #0xa] - lsls r2, r0, #0x10 - cmp r2, #0 - beq _0817B360 - movs r1, #0xc - ldrsh r0, [r4, r1] - lsls r0, r0, #0x10 - ldrh r1, [r4, #0xe] - adds r1, r0, r1 - lsrs r0, r2, #0xc - subs r1, r1, r0 - asrs r0, r1, #0x10 - strh r0, [r4, #0xc] - strh r1, [r4, #0xe] - ldrh r1, [r4, #0xc] - movs r0, #0x14 - bl SetGpuReg - ldr r2, _0817B3A8 - ldr r0, _0817B3AC - ldrh r1, [r0] - ldrh r2, [r2] - adds r1, r1, r2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x16 - bl SetGpuReg -_0817B360: - ldrh r0, [r4, #0x10] - lsls r2, r0, #0x10 - cmp r2, #0 - beq _0817B3BA - movs r1, #0x12 - ldrsh r0, [r4, r1] - lsls r0, r0, #0x10 - ldrh r1, [r4, #0x14] - adds r1, r0, r1 - lsrs r0, r2, #0xc - subs r1, r1, r0 - asrs r0, r1, #0x10 - strh r0, [r4, #0x12] - strh r1, [r4, #0x14] - ldrh r1, [r4, #0x12] - movs r0, #0x18 - bl SetGpuReg - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0817B3B0 - ldr r2, _0817B3A8 - ldr r0, _0817B3AC - ldrh r1, [r0] - ldrh r2, [r2] - adds r1, r1, r2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x1a - bl SetGpuReg - b _0817B3BA - .align 2, 0 -_0817B3A4: .4byte gUnknown_3005B60 -_0817B3A8: .4byte gUnknown_203B9F0 -_0817B3AC: .4byte gUnknown_203B9F2 -_0817B3B0: - ldr r0, _0817B3F8 - ldrh r1, [r0] - movs r0, #0x1a - bl SetGpuReg -_0817B3BA: - ldr r0, _0817B3FC - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r2, r1, r0 - ldrh r0, [r2, #0x16] - lsls r3, r0, #0x10 - cmp r3, #0 - beq _0817B3F2 - movs r1, #0x18 - ldrsh r0, [r2, r1] - lsls r0, r0, #0x10 - ldrh r1, [r2, #0x1a] - adds r1, r0, r1 - lsrs r0, r3, #0xc - subs r1, r1, r0 - asrs r0, r1, #0x10 - strh r0, [r2, #0x18] - strh r1, [r2, #0x1a] - ldrh r1, [r2, #0x18] - movs r0, #0x1c - bl SetGpuReg - ldr r0, _0817B3F8 - ldrh r1, [r0] - movs r0, #0x1e - bl SetGpuReg -_0817B3F2: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0817B3F8: .4byte gUnknown_203B9F0 -_0817B3FC: .4byte gUnknown_3005B60 - thumb_func_end sub_0817B318 - - thumb_func_start sub_0817B400 -sub_0817B400: @ 0x0817B400 - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0817B4E0 - cmp r0, #1 - ble _0817B414 - cmp r0, #2 - beq _0817B478 -_0817B414: - ldr r0, _0817B440 - ldr r2, [r0, #0x20] - movs r0, #3 - ands r0, r2 - cmp r0, #0 - bne _0817B4E0 - ldr r0, _0817B444 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0817B4E0 - movs r0, #4 - ands r2, r0 - cmp r2, #0 - beq _0817B44C - ldr r2, _0817B448 - ldrh r1, [r2, #0x12] - mov r0, sp - strh r1, [r0] - ldrh r1, [r2, #0x14] - b _0817B456 - .align 2, 0 -_0817B440: .4byte gUnknown_3002360 -_0817B444: .4byte gUnknown_2037C74 -_0817B448: .4byte gUnknown_20373B4 -_0817B44C: - ldr r2, _0817B474 - ldrh r1, [r2, #0x14] - mov r0, sp - strh r1, [r0] - ldrh r1, [r2, #0x12] -_0817B456: - adds r0, #2 - strh r1, [r0] - adds r4, r0, #0 - mov r0, sp - movs r1, #9 - movs r2, #2 - bl LoadPalette - adds r0, r4, #0 - movs r1, #0xa - movs r2, #2 - bl LoadPalette - b _0817B4E0 - .align 2, 0 -_0817B474: .4byte gUnknown_20373B4 -_0817B478: - ldr r0, _0817B4A8 - ldr r2, [r0, #0x20] - movs r0, #3 - ands r0, r2 - cmp r0, #0 - bne _0817B4E0 - ldr r0, _0817B4AC - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0817B4E0 - movs r0, #4 - ands r2, r0 - cmp r2, #0 - beq _0817B4B8 - mov r1, sp - ldr r2, _0817B4B0 - adds r0, r2, #0 - strh r0, [r1] - adds r1, #2 - ldr r2, _0817B4B4 - b _0817B4C6 - .align 2, 0 -_0817B4A8: .4byte gUnknown_3002360 -_0817B4AC: .4byte gUnknown_2037C74 -_0817B4B0: .4byte 0x00003D27 -_0817B4B4: .4byte 0x00000295 -_0817B4B8: - mov r1, sp - movs r2, #0xc7 - lsls r2, r2, #2 - adds r0, r2, #0 - strh r0, [r1] - adds r1, #2 - ldr r2, _0817B4E8 -_0817B4C6: - adds r0, r2, #0 - strh r0, [r1] - adds r4, r1, #0 - mov r0, sp - movs r1, #0xc - movs r2, #2 - bl LoadPalette - adds r0, r4, #0 - movs r1, #0xd - movs r2, #2 - bl LoadPalette -_0817B4E0: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0817B4E8: .4byte 0x00003D27 - thumb_func_end sub_0817B400 - - thumb_func_start sub_0817B4EC -sub_0817B4EC: @ 0x0817B4EC - push {lr} - adds r2, r0, #0 - ldr r0, _0817B508 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #2 - beq _0817B550 - cmp r0, #0 - beq _0817B50C - adds r0, r2, #0 - bl DestroySprite - b _0817B550 - .align 2, 0 -_0817B508: .4byte gUnknown_203B9F4 -_0817B50C: - movs r1, #0x20 - ldrsh r0, [r2, r1] - lsls r0, r0, #0x10 - ldrh r1, [r2, #0x32] - orrs r0, r1 - ldrh r1, [r2, #0x30] - adds r0, r0, r1 - asrs r1, r0, #0x10 - strh r1, [r2, #0x20] - strh r0, [r2, #0x32] - cmp r1, #0xff - ble _0817B528 - ldr r0, _0817B53C - strh r0, [r2, #0x20] -_0817B528: - movs r1, #0x2e - ldrsh r0, [r2, r1] - cmp r0, #0 - beq _0817B548 - ldr r1, _0817B540 - ldr r0, _0817B544 - ldrh r0, [r0] - ldrh r1, [r1] - adds r0, r0, r1 - b _0817B54C - .align 2, 0 -_0817B53C: .4byte 0x0000FFE0 -_0817B540: .4byte gUnknown_203B9F0 -_0817B544: .4byte gUnknown_203B9F2 -_0817B548: - ldr r0, _0817B554 - ldrh r0, [r0] -_0817B54C: - rsbs r0, r0, #0 - strh r0, [r2, #0x26] -_0817B550: - pop {r0} - bx r0 - .align 2, 0 -_0817B554: .4byte gUnknown_203B9F0 - thumb_func_end sub_0817B4EC - - thumb_func_start sub_0817B558 -sub_0817B558: @ 0x0817B558 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - str r1, [sp, #4] - str r2, [sp, #8] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r8, r3 - movs r7, #0 - cmp r7, r8 - bhs _0817B60E - ldr r0, _0817B620 - mov sl, r0 - movs r2, #0x3f - mov sb, r2 -_0817B582: - lsls r6, r7, #3 - ldr r0, [sp, #4] - adds r6, r6, r0 - ldrb r1, [r6, #1] - ldrb r2, [r6, #2] - ldrb r3, [r6, #3] - ldr r0, _0817B624 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r5, r0, #4 - adds r5, r5, r0 - lsls r5, r5, #2 - mov r2, sl - adds r4, r5, r2 - ldrb r2, [r6] - lsls r1, r2, #0x1a - lsrs r1, r1, #0x1e - lsrs r2, r2, #6 - adds r0, r4, #0 - movs r3, #0 - bl CalcCenterToCornerVec - ldrb r3, [r4, #5] - movs r0, #0xc - orrs r3, r0 - strb r3, [r4, #5] - ldrb r1, [r6] - lsls r1, r1, #0x1a - lsrs r1, r1, #0x1e - lsls r1, r1, #6 - ldrb r2, [r4, #1] - mov r0, sb - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #1] - ldrb r1, [r6] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r4, #3] - mov r0, sb - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #3] - movs r0, #0xf - ands r3, r0 - strb r3, [r4, #5] - ldr r0, _0817B628 - adds r5, r5, r0 - ldr r2, [sp, #8] - str r2, [r5] - ldrb r1, [r6] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - adds r0, r4, #0 - bl StartSpriteAnim - movs r1, #0 - mov r0, sp - ldrh r0, [r0] - strh r0, [r4, #0x2e] - ldrh r0, [r6, #4] - strh r0, [r4, #0x30] - strh r1, [r4, #0x32] - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, r8 - blo _0817B582 -_0817B60E: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0817B620: .4byte gUnknown_20205AC -_0817B624: .4byte gUnknown_85D251C -_0817B628: .4byte gUnknown_20205B4 - thumb_func_end sub_0817B558 - - thumb_func_start sub_0817B62C -sub_0817B62C: @ 0x0817B62C - push {lr} - ldr r1, _0817B640 - ldr r2, _0817B644 - movs r0, #0 - movs r3, #9 - bl sub_0817B558 - pop {r0} - bx r0 - .align 2, 0 -_0817B640: .4byte gUnknown_85D2574 -_0817B644: .4byte gUnknown_85D2564 - thumb_func_end sub_0817B62C - - thumb_func_start sub_0817B648 -sub_0817B648: @ 0x0817B648 - push {lr} - ldr r1, _0817B65C - ldr r2, _0817B660 - movs r0, #1 - movs r3, #0xc - bl sub_0817B558 - pop {r0} - bx r0 - .align 2, 0 -_0817B65C: .4byte gUnknown_85D25F0 -_0817B660: .4byte gUnknown_85D25E4 - thumb_func_end sub_0817B648 - - thumb_func_start sub_0817B664 -sub_0817B664: @ 0x0817B664 - push {lr} - ldr r1, _0817B678 - ldr r2, _0817B67C - movs r0, #1 - movs r3, #6 - bl sub_0817B558 - pop {r0} - bx r0 - .align 2, 0 -_0817B678: .4byte gUnknown_85D266C -_0817B67C: .4byte gUnknown_85D2668 - thumb_func_end sub_0817B664 - - thumb_func_start sub_0817B680 -sub_0817B680: @ 0x0817B680 - bx lr - .align 2, 0 - thumb_func_end sub_0817B680 - - thumb_func_start sub_0817B684 -sub_0817B684: @ 0x0817B684 - push {r4, lr} - ldr r4, _0817B6F0 - movs r1, #0x2e - ldrsh r2, [r0, r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r4 - adds r1, #0x3e - ldrb r1, [r1] - movs r2, #0x3e - adds r2, r2, r0 - mov ip, r2 - movs r2, #4 - ands r2, r1 - mov r1, ip - ldrb r3, [r1] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r3 - orrs r1, r2 - mov r2, ip - strb r1, [r2] - movs r1, #0x2e - ldrsh r2, [r0, r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrh r1, [r1, #0x20] - strh r1, [r0, #0x20] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrh r1, [r1, #0x22] - adds r1, #8 - strh r1, [r0, #0x22] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrh r1, [r1, #0x24] - strh r1, [r0, #0x24] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrh r1, [r1, #0x26] - strh r1, [r0, #0x26] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0817B6F0: .4byte gUnknown_20205AC - thumb_func_end sub_0817B684 - - thumb_func_start sub_0817B6F4 -sub_0817B6F4: @ 0x0817B6F4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - ldr r0, _0817B740 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - adds r1, r5, #0 - adds r2, r4, #0 - movs r3, #2 - bl CreateSprite - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - ldr r0, _0817B744 - adds r4, #8 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - adds r1, r5, #0 - adds r2, r4, #0 - movs r3, #3 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0817B748 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - strh r6, [r1, #0x2e] - adds r0, r6, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0817B740: .4byte gUnknown_85D26BC -_0817B744: .4byte gUnknown_85D270C -_0817B748: .4byte gUnknown_20205AC - thumb_func_end sub_0817B6F4 - - thumb_func_start sub_0817B74C -sub_0817B74C: @ 0x0817B74C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - ldr r0, _0817B798 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - adds r1, r5, #0 - adds r2, r4, #0 - movs r3, #2 - bl CreateSprite - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - ldr r0, _0817B79C - adds r4, #8 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - adds r1, r5, #0 - adds r2, r4, #0 - movs r3, #3 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0817B7A0 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - strh r6, [r1, #0x2e] - adds r0, r6, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0817B798: .4byte gUnknown_85D26D4 -_0817B79C: .4byte gUnknown_85D2724 -_0817B7A0: .4byte gUnknown_20205AC - thumb_func_end sub_0817B74C - - thumb_func_start sub_0817B7A4 -sub_0817B7A4: @ 0x0817B7A4 - bx lr - .align 2, 0 - thumb_func_end sub_0817B7A4 - - thumb_func_start sub_0817B7A8 -sub_0817B7A8: @ 0x0817B7A8 - push {r4, lr} - ldr r4, _0817B804 - movs r1, #0x2e - ldrsh r2, [r0, r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r4 - adds r1, #0x3e - ldrb r1, [r1] - movs r2, #0x3e - adds r2, r2, r0 - mov ip, r2 - movs r2, #4 - ands r2, r1 - mov r1, ip - ldrb r3, [r1] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r3 - orrs r1, r2 - mov r2, ip - strb r1, [r2] - movs r1, #0x2e - ldrsh r2, [r0, r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrh r1, [r1, #0x22] - strh r1, [r0, #0x22] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrh r1, [r1, #0x24] - strh r1, [r0, #0x24] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrh r1, [r1, #0x26] - strh r1, [r0, #0x26] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0817B804: .4byte gUnknown_20205AC - thumb_func_end sub_0817B7A8 - - thumb_func_start sub_0817B808 -sub_0817B808: @ 0x0817B808 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r2, r0, #0 - adds r5, r1, #0 - ldr r0, _0817B874 - mov r8, r0 - lsls r2, r2, #0x10 - asrs r4, r2, #0x10 - ldr r0, _0817B878 - adds r2, r2, r0 - asrs r2, r2, #0x10 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - mov r0, r8 - adds r1, r2, #0 - adds r2, r5, #0 - movs r3, #5 - bl CreateSprite - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - adds r4, #0x20 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - mov r0, r8 - adds r1, r4, #0 - adds r2, r5, #0 - movs r3, #6 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _0817B87C - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - adds r0, r4, r5 - strh r6, [r0, #0x2e] - movs r1, #1 - bl StartSpriteAnim - adds r5, #0x1c - adds r4, r4, r5 - ldr r0, _0817B880 - str r0, [r4] - adds r0, r6, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0817B874: .4byte gUnknown_85D275C -_0817B878: .4byte 0xFFE00000 -_0817B87C: .4byte gUnknown_20205AC -_0817B880: .4byte sub_0817B7A8 - thumb_func_end sub_0817B808 - - thumb_func_start sub_0817B884 -sub_0817B884: @ 0x0817B884 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r2, r0, #0 - adds r5, r1, #0 - ldr r0, _0817B8F0 - mov r8, r0 - lsls r2, r2, #0x10 - asrs r4, r2, #0x10 - ldr r0, _0817B8F4 - adds r2, r2, r0 - asrs r2, r2, #0x10 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - mov r0, r8 - adds r1, r2, #0 - adds r2, r5, #0 - movs r3, #5 - bl CreateSprite - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - adds r4, #0x20 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - mov r0, r8 - adds r1, r4, #0 - adds r2, r5, #0 - movs r3, #6 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _0817B8F8 - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - adds r0, r4, r5 - strh r6, [r0, #0x2e] - movs r1, #1 - bl StartSpriteAnim - adds r5, #0x1c - adds r4, r4, r5 - ldr r0, _0817B8FC - str r0, [r4] - adds r0, r6, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0817B8F0: .4byte gUnknown_85D2774 -_0817B8F4: .4byte 0xFFE00000 -_0817B8F8: .4byte gUnknown_20205AC -_0817B8FC: .4byte sub_0817B7A8 - thumb_func_end sub_0817B884 - - thumb_func_start sub_0817B900 -sub_0817B900: @ 0x0817B900 - bx lr - .align 2, 0 - thumb_func_end sub_0817B900 - - thumb_func_start SetEvoSparklesMatrices -SetEvoSparklesMatrices: @ 0x0817B904 - push {r4, r5, lr} - sub sp, #4 - movs r4, #0 - ldr r5, _0817B938 -_0817B90C: - adds r0, r4, #0 - adds r0, #0x14 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r4, #1 - adds r1, r1, r5 - ldrh r1, [r1] - str r1, [sp] - movs r2, #0 - movs r3, #0 - bl SetOamMatrix - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0xb - bls _0817B90C - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0817B938: .4byte gUnknown_85D2928 - thumb_func_end SetEvoSparklesMatrices - - thumb_func_start SpriteCB_PreEvoSparkleSet1 -SpriteCB_PreEvoSparkleSet1: @ 0x0817B93C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x22 - ldrsh r0, [r4, r1] - cmp r0, #8 - ble _0817B9EA - movs r2, #0x3c - ldrsh r0, [r4, r2] - adds r1, r0, #0 - muls r1, r0, r1 - adds r0, r1, #0 - movs r1, #0x50 - bl __divsi3 - movs r1, #0x58 - subs r1, r1, r0 - strh r1, [r4, #0x22] - ldrh r0, [r4, #0x3a] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0x38 - ldrsh r1, [r4, r2] - bl Sin - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _0817B976 - adds r0, #3 -_0817B976: - asrs r0, r0, #2 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x3a] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0x38 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x3a] - adds r0, #4 - strh r0, [r4, #0x3a] - ldrh r1, [r4, #0x3c] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0817B9A0 - ldrh r0, [r4, #0x38] - subs r0, #1 - strh r0, [r4, #0x38] -_0817B9A0: - ldrh r0, [r4, #0x3c] - adds r0, #1 - strh r0, [r4, #0x3c] - movs r1, #0x26 - ldrsh r0, [r4, r1] - cmp r0, #0 - ble _0817B9B6 - adds r1, r4, #0 - adds r1, #0x43 - movs r0, #1 - b _0817B9BC -_0817B9B6: - adds r1, r4, #0 - adds r1, #0x43 - movs r0, #0x14 -_0817B9BC: - strb r0, [r1] - movs r2, #0x38 - ldrsh r0, [r4, r2] - cmp r0, #0 - bge _0817B9C8 - adds r0, #3 -_0817B9C8: - asrs r0, r0, #2 - adds r0, #0x14 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x1f - bls _0817B9D6 - movs r2, #0x1f -_0817B9D6: - movs r0, #0x1f - ands r2, r0 - lsls r2, r2, #1 - ldrb r1, [r4, #3] - movs r0, #0x3f - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #3] - b _0817B9F0 -_0817B9EA: - adds r0, r4, #0 - bl DestroySprite -_0817B9F0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SpriteCB_PreEvoSparkleSet1 - - thumb_func_start CreatePreEvoSparkleSet1 -CreatePreEvoSparkleSet1: @ 0x0817B9F8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _0817BA48 - movs r1, #0x78 - movs r2, #0x58 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _0817BA42 - ldr r4, _0817BA4C - lsls r3, r0, #4 - adds r3, r3, r0 - lsls r3, r3, #2 - adds r2, r3, r4 - movs r1, #0 - movs r0, #0x30 - strh r0, [r2, #0x38] - strh r5, [r2, #0x3a] - strh r1, [r2, #0x3c] - ldrb r1, [r2, #1] - subs r0, #0x34 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #1] - ldrb r0, [r2, #3] - movs r1, #0x3e - orrs r0, r1 - strb r0, [r2, #3] - adds r4, #0x1c - adds r3, r3, r4 - ldr r0, _0817BA50 - str r0, [r3] -_0817BA42: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0817BA48: .4byte gUnknown_85D2910 -_0817BA4C: .4byte gUnknown_20205AC -_0817BA50: .4byte SpriteCB_PreEvoSparkleSet1 - thumb_func_end CreatePreEvoSparkleSet1 - - thumb_func_start SpriteCB_PreEvoSparkleSet2 -SpriteCB_PreEvoSparkleSet2: @ 0x0817BA54 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x22 - ldrsh r0, [r4, r1] - cmp r0, #0x57 - bgt _0817BABA - movs r2, #0x3c - ldrsh r0, [r4, r2] - adds r1, r0, #0 - muls r1, r0, r1 - adds r0, r1, #0 - movs r1, #5 - bl __divsi3 - adds r0, #8 - strh r0, [r4, #0x22] - ldrh r0, [r4, #0x3a] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0x38 - ldrsh r1, [r4, r2] - bl Sin - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _0817BA8C - adds r0, #3 -_0817BA8C: - asrs r0, r0, #2 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x3a] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0x38 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, #0x24] - movs r1, #0x3c - ldrsh r0, [r4, r1] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x18 - movs r1, #0x28 - bl Sin - adds r0, #8 - strh r0, [r4, #0x38] - ldrh r0, [r4, #0x3c] - adds r0, #1 - strh r0, [r4, #0x3c] - b _0817BAC0 -_0817BABA: - adds r0, r4, #0 - bl DestroySprite -_0817BAC0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SpriteCB_PreEvoSparkleSet2 - - thumb_func_start CreatePreEvoSparkleSet2 -CreatePreEvoSparkleSet2: @ 0x0817BAC8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _0817BB24 - movs r1, #0x78 - movs r2, #8 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _0817BB1E - ldr r4, _0817BB28 - lsls r3, r0, #4 - adds r3, r3, r0 - lsls r3, r3, #2 - adds r2, r3, r4 - movs r1, #0 - movs r0, #8 - strh r0, [r2, #0x38] - strh r5, [r2, #0x3a] - strh r1, [r2, #0x3c] - ldrb r1, [r2, #1] - subs r0, #0xc - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #1] - ldrb r1, [r2, #3] - movs r0, #0x3f - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x32 - orrs r0, r1 - strb r0, [r2, #3] - adds r2, #0x43 - movs r0, #1 - strb r0, [r2] - adds r4, #0x1c - adds r3, r3, r4 - ldr r0, _0817BB2C - str r0, [r3] -_0817BB1E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0817BB24: .4byte gUnknown_85D2910 -_0817BB28: .4byte gUnknown_20205AC -_0817BB2C: .4byte SpriteCB_PreEvoSparkleSet2 - thumb_func_end CreatePreEvoSparkleSet2 - - thumb_func_start SpriteCB_PostEvoSparkleSet1 -SpriteCB_PostEvoSparkleSet1: @ 0x0817BB30 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x38 - ldrsh r0, [r4, r1] - cmp r0, #8 - ble _0817BB6C - ldrh r0, [r4, #0x3a] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0x38 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x3a] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0x38 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x38] - ldrh r1, [r4, #0x34] - subs r0, r0, r1 - strh r0, [r4, #0x38] - ldrh r0, [r4, #0x3a] - adds r0, #4 - strh r0, [r4, #0x3a] - b _0817BB72 -_0817BB6C: - adds r0, r4, #0 - bl DestroySprite -_0817BB72: - pop {r4} - pop {r0} - bx r0 - thumb_func_end SpriteCB_PostEvoSparkleSet1 - - thumb_func_start CreatePostEvoSparkleSet1 -CreatePostEvoSparkleSet1: @ 0x0817BB78 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - ldr r0, _0817BBD4 - movs r1, #0x78 - movs r2, #0x38 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _0817BBCE - ldr r4, _0817BBD8 - lsls r3, r0, #4 - adds r3, r3, r0 - lsls r3, r3, #2 - adds r2, r3, r4 - movs r1, #0 - strh r5, [r2, #0x34] - movs r0, #0x78 - strh r0, [r2, #0x38] - strh r6, [r2, #0x3a] - strh r1, [r2, #0x3c] - ldrb r1, [r2, #1] - subs r0, #0x7c - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #1] - ldrb r0, [r2, #3] - movs r1, #0x3e - orrs r0, r1 - strb r0, [r2, #3] - adds r2, #0x43 - movs r0, #1 - strb r0, [r2] - adds r4, #0x1c - adds r3, r3, r4 - ldr r0, _0817BBDC - str r0, [r3] -_0817BBCE: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0817BBD4: .4byte gUnknown_85D2910 -_0817BBD8: .4byte gUnknown_20205AC -_0817BBDC: .4byte SpriteCB_PostEvoSparkleSet1 - thumb_func_end CreatePostEvoSparkleSet1 - - thumb_func_start SpriteCB_PostEvoSparkleSet2 -SpriteCB_PostEvoSparkleSet2: @ 0x0817BBE0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x3c] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _0817BBF4 - ldrh r0, [r4, #0x22] - adds r0, #1 - strh r0, [r4, #0x22] -_0817BBF4: - ldrh r1, [r4, #0x3a] - movs r2, #0x3a - ldrsh r0, [r4, r2] - cmp r0, #0x7f - bgt _0817BCA4 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - movs r5, #0x38 - ldrsh r1, [r4, r5] - bl Sin - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - movs r0, #0x34 - ldrsh r1, [r4, r0] - movs r2, #0x3c - ldrsh r0, [r4, r2] - muls r0, r1, r0 - movs r1, #3 - bl __divsi3 - adds r0, #0x78 - strh r0, [r4, #0x20] - ldrh r0, [r4, #0x3a] - adds r3, r0, #1 - strh r3, [r4, #0x3a] - movs r5, #0x3a - ldrsh r1, [r4, r5] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - cmp r0, #0 - bge _0817BC38 - adds r0, #0x7f -_0817BC38: - asrs r0, r0, #7 - movs r1, #0x1f - subs r1, r1, r0 - lsls r1, r1, #0x18 - lsrs r2, r1, #0x18 - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x40 - ble _0817BC54 - adds r1, r4, #0 - adds r1, #0x43 - movs r0, #1 - strb r0, [r1] - b _0817BC84 -_0817BC54: - adds r3, r4, #0 - adds r3, #0x3e - ldrb r1, [r3] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3] - adds r1, r4, #0 - adds r1, #0x43 - movs r0, #0x14 - strb r0, [r1] - ldrh r1, [r4, #0x3a] - movs r5, #0x3a - ldrsh r0, [r4, r5] - cmp r0, #0x70 - ble _0817BC84 - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0817BC84 - ldrb r0, [r3] - movs r1, #4 - orrs r0, r1 - strb r0, [r3] -_0817BC84: - cmp r2, #0x13 - bhi _0817BC8A - movs r2, #0x14 -_0817BC8A: - movs r0, #0x1f - ands r2, r0 - lsls r2, r2, #1 - ldrb r1, [r4, #3] - movs r0, #0x3f - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #3] - ldrh r0, [r4, #0x3c] - adds r0, #1 - strh r0, [r4, #0x3c] - b _0817BCAA -_0817BCA4: - adds r0, r4, #0 - bl DestroySprite -_0817BCAA: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end SpriteCB_PostEvoSparkleSet2 - - thumb_func_start CreatePostEvoSparkleSet2 -CreatePostEvoSparkleSet2: @ 0x0817BCB0 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - ldr r0, _0817BD2C - movs r1, #0x78 - movs r2, #0x38 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x40 - beq _0817BD20 - bl Random - ldr r6, _0817BD30 - lsls r5, r4, #4 - adds r5, r5, r4 - lsls r5, r5, #2 - adds r4, r5, r6 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #7 - bl __umodsi3 - movs r1, #3 - subs r1, r1, r0 - movs r0, #0 - mov r8, r0 - strh r1, [r4, #0x34] - bl Random - movs r1, #0x3f - ands r1, r0 - adds r1, #0x30 - strh r1, [r4, #0x38] - mov r0, r8 - strh r0, [r4, #0x3c] - ldrb r1, [r4, #1] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #1] - ldrb r0, [r4, #3] - movs r1, #0x3e - orrs r0, r1 - strb r0, [r4, #3] - adds r4, #0x43 - movs r0, #0x14 - strb r0, [r4] - adds r6, #0x1c - adds r5, r5, r6 - ldr r0, _0817BD34 - str r0, [r5] -_0817BD20: - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0817BD2C: .4byte gUnknown_85D2910 -_0817BD30: .4byte gUnknown_20205AC -_0817BD34: .4byte SpriteCB_PostEvoSparkleSet2 - thumb_func_end CreatePostEvoSparkleSet2 - - thumb_func_start LoadEvoSparkleSpriteAndPal -LoadEvoSparkleSpriteAndPal: @ 0x0817BD38 - push {lr} - ldr r0, _0817BD4C - bl LoadCompressedSpriteSheetUsingHeap - ldr r0, _0817BD50 - bl LoadSpritePalettes - pop {r0} - bx r0 - .align 2, 0 -_0817BD4C: .4byte gUnknown_85D28DC -_0817BD50: .4byte gUnknown_85D28EC - thumb_func_end LoadEvoSparkleSpriteAndPal - - thumb_func_start LaunchTask_PreEvoSparklesSet1 -LaunchTask_PreEvoSparklesSet1: @ 0x0817BD54 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r0, _0817BD7C - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0817BD80 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #0xa] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0817BD7C: .4byte EvoTask_BeginPreSet1_FadeAndPlaySE -_0817BD80: .4byte gUnknown_3005B60 - thumb_func_end LaunchTask_PreEvoSparklesSet1 - - thumb_func_start EvoTask_BeginPreSet1_FadeAndPlaySE -EvoTask_BeginPreSet1_FadeAndPlaySE: @ 0x0817BD84 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl SetEvoSparklesMatrices - ldr r0, _0817BDC8 - lsls r5, r4, #2 - adds r5, r5, r4 - lsls r5, r5, #3 - adds r5, r5, r0 - movs r0, #0 - strh r0, [r5, #0x26] - movs r0, #0xa - ldrsh r1, [r5, r0] - movs r0, #3 - lsls r0, r1 - ldr r1, _0817BDCC - str r1, [sp] - movs r1, #0xa - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _0817BDD0 - str r0, [r5] - movs r0, #0x8c - bl sub_080A306C - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0817BDC8: .4byte gUnknown_3005B60 -_0817BDCC: .4byte 0x00007FFF -_0817BDD0: .4byte EvoTask_CreatePreEvoSparkleSet1 - thumb_func_end EvoTask_BeginPreSet1_FadeAndPlaySE - - thumb_func_start EvoTask_CreatePreEvoSparkleSet1 -EvoTask_CreatePreEvoSparkleSet1: @ 0x0817BDD4 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _0817BE2C - lsls r3, r5, #2 - adds r0, r3, r5 - lsls r0, r0, #3 - adds r1, r0, r1 - ldrh r2, [r1, #0x26] - movs r4, #0x26 - ldrsh r0, [r1, r4] - cmp r0, #0x3f - bgt _0817BE30 - movs r0, #7 - ands r0, r2 - adds r7, r3, #0 - cmp r0, #0 - bne _0817BE1A - movs r4, #0 - adds r6, r1, #0 -_0817BDFC: - ldrh r1, [r6, #0x26] - movs r0, #0x78 - ands r0, r1 - lsls r0, r0, #1 - lsls r1, r4, #6 - adds r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl CreatePreEvoSparkleSet1 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _0817BDFC -_0817BE1A: - ldr r0, _0817BE2C - adds r1, r7, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x26] - adds r0, #1 - strh r0, [r1, #0x26] - b _0817BE38 - .align 2, 0 -_0817BE2C: .4byte gUnknown_3005B60 -_0817BE30: - movs r0, #0x60 - strh r0, [r1, #0x26] - ldr r0, _0817BE40 - str r0, [r1] -_0817BE38: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0817BE40: .4byte EvoTask_WaitForPre1SparklesToGoUp - thumb_func_end EvoTask_CreatePreEvoSparkleSet1 - - thumb_func_start EvoTask_WaitForPre1SparklesToGoUp -EvoTask_WaitForPre1SparklesToGoUp: @ 0x0817BE44 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _0817BE64 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r1, r0, r1 - ldrh r3, [r1, #0x26] - movs r4, #0x26 - ldrsh r0, [r1, r4] - cmp r0, #0 - beq _0817BE68 - subs r0, r3, #1 - strh r0, [r1, #0x26] - b _0817BE6E - .align 2, 0 -_0817BE64: .4byte gUnknown_3005B60 -_0817BE68: - adds r0, r2, #0 - bl DestroyTask -_0817BE6E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end EvoTask_WaitForPre1SparklesToGoUp - - thumb_func_start sub_0817BE74 -sub_0817BE74: @ 0x0817BE74 - push {lr} - ldr r0, _0817BE88 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0817BE88: .4byte EvoTask_BeginPreSparklesSet2 - thumb_func_end sub_0817BE74 - - thumb_func_start EvoTask_BeginPreSparklesSet2 -EvoTask_BeginPreSparklesSet2: @ 0x0817BE8C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl SetEvoSparklesMatrices - ldr r1, _0817BEB8 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #0x26] - ldr r1, _0817BEBC - str r1, [r0] - movs r0, #0xb7 - bl sub_080A306C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0817BEB8: .4byte gUnknown_3005B60 -_0817BEBC: .4byte EvoTask_CreatePreEvoSparklesSet2 - thumb_func_end EvoTask_BeginPreSparklesSet2 - - thumb_func_start EvoTask_CreatePreEvoSparklesSet2 -EvoTask_CreatePreEvoSparklesSet2: @ 0x0817BEC0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _0817BF04 - lsls r2, r5, #2 - adds r0, r2, r5 - lsls r0, r0, #3 - adds r1, r0, r1 - movs r3, #0x26 - ldrsh r0, [r1, r3] - cmp r0, #0x5f - bgt _0817BF08 - adds r6, r2, #0 - cmp r0, #5 - bgt _0817BEF2 - movs r4, #0 -_0817BEE0: - lsls r0, r4, #0x1c - lsrs r0, r0, #0x18 - bl CreatePreEvoSparkleSet2 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #8 - bls _0817BEE0 -_0817BEF2: - ldr r0, _0817BF04 - adds r1, r6, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x26] - adds r0, #1 - strh r0, [r1, #0x26] - b _0817BF0C - .align 2, 0 -_0817BF04: .4byte gUnknown_3005B60 -_0817BF08: - ldr r0, _0817BF14 - str r0, [r1] -_0817BF0C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0817BF14: .4byte sub_0817BF18 - thumb_func_end EvoTask_CreatePreEvoSparklesSet2 - - thumb_func_start sub_0817BF18 -sub_0817BF18: @ 0x0817BF18 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0817BF18 - - thumb_func_start sub_0817BF28 -sub_0817BF28: @ 0x0817BF28 - push {lr} - ldr r0, _0817BF3C - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0817BF3C: .4byte EvoTask_BeginPostSparklesSet1 - thumb_func_end sub_0817BF28 - - thumb_func_start EvoTask_BeginPostSparklesSet1 -EvoTask_BeginPostSparklesSet1: @ 0x0817BF40 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl SetEvoSparklesMatrices - ldr r1, _0817BF6C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #0x26] - ldr r1, _0817BF70 - str r1, [r0] - movs r0, #0x66 - bl sub_080A306C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0817BF6C: .4byte gUnknown_3005B60 -_0817BF70: .4byte EvoTask_CreatePostEvoSparklesSet1 - thumb_func_end EvoTask_BeginPostSparklesSet1 - - thumb_func_start EvoTask_CreatePostEvoSparklesSet1 -EvoTask_CreatePostEvoSparklesSet1: @ 0x0817BF74 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _0817BFE0 - lsls r2, r5, #2 - adds r0, r2, r5 - lsls r0, r0, #3 - adds r1, r0, r1 - movs r3, #0x26 - ldrsh r0, [r1, r3] - cmp r0, #0x2f - bgt _0817BFE4 - adds r6, r2, #0 - cmp r0, #0 - bne _0817BFA8 - movs r4, #0 -_0817BF94: - lsls r0, r4, #0x1c - lsrs r0, r0, #0x18 - movs r1, #4 - bl CreatePostEvoSparkleSet1 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xf - bls _0817BF94 -_0817BFA8: - ldr r0, _0817BFE0 - adds r1, r6, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r2, #0x26 - ldrsh r0, [r1, r2] - cmp r0, #0x20 - bne _0817BFCE - movs r4, #0 -_0817BFBA: - lsls r0, r4, #0x1c - lsrs r0, r0, #0x18 - movs r1, #8 - bl CreatePostEvoSparkleSet1 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xf - bls _0817BFBA -_0817BFCE: - ldr r0, _0817BFE0 - adds r1, r6, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x26] - adds r0, #1 - strh r0, [r1, #0x26] - b _0817BFE8 - .align 2, 0 -_0817BFE0: .4byte gUnknown_3005B60 -_0817BFE4: - ldr r0, _0817BFF0 - str r0, [r1] -_0817BFE8: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0817BFF0: .4byte EvoTask_DestroyPostSet1Task - thumb_func_end EvoTask_CreatePostEvoSparklesSet1 - - thumb_func_start EvoTask_DestroyPostSet1Task -EvoTask_DestroyPostSet1Task: @ 0x0817BFF4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end EvoTask_DestroyPostSet1Task - - thumb_func_start sub_0817C004 -sub_0817C004: @ 0x0817C004 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r0, _0817C02C - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0817C030 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #0xc] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0817C02C: .4byte EvoTask_BeginPostSparklesSet2_AndFlash -_0817C030: .4byte gUnknown_3005B60 - thumb_func_end sub_0817C004 - - thumb_func_start EvoTask_BeginPostSparklesSet2_AndFlash -EvoTask_BeginPostSparklesSet2_AndFlash: @ 0x0817C034 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl SetEvoSparklesMatrices - ldr r0, _0817C07C - lsls r5, r4, #2 - adds r5, r5, r4 - lsls r5, r5, #3 - adds r5, r5, r0 - movs r0, #0 - strh r0, [r5, #0x26] - ldr r0, _0817C080 - ldr r1, _0817C084 - movs r2, #0x30 - bl CpuSet - ldr r0, _0817C088 - ldr r1, _0817C08C - str r1, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _0817C090 - str r0, [r5] - movs r0, #0xca - bl sub_080A306C - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0817C07C: .4byte gUnknown_3005B60 -_0817C080: .4byte gUnknown_20377F4 -_0817C084: .4byte gUnknown_20373F4 -_0817C088: .4byte 0xFFF9041C -_0817C08C: .4byte 0x00007FFF -_0817C090: .4byte EvoTask_CreatePostEvoSparklesSet2_AndFlash - thumb_func_end EvoTask_BeginPostSparklesSet2_AndFlash - - thumb_func_start EvoTask_CreatePostEvoSparklesSet2_AndFlash -EvoTask_CreatePostEvoSparklesSet2_AndFlash: @ 0x0817C094 - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _0817C0CC - lsls r5, r6, #2 - adds r0, r5, r6 - lsls r0, r0, #3 - adds r1, r0, r1 - movs r0, #0x26 - ldrsh r2, [r1, r0] - cmp r2, #0x7f - bgt _0817C110 - adds r0, r2, #0 - cmp r0, #0 - beq _0817C0D0 - cmp r0, #0x20 - beq _0817C0E4 - cmp r2, #0x31 - bgt _0817C0F4 - bl Random - movs r1, #7 - ands r0, r1 - bl CreatePostEvoSparkleSet2 - b _0817C0F4 - .align 2, 0 -_0817C0CC: .4byte gUnknown_3005B60 -_0817C0D0: - movs r4, #0 -_0817C0D2: - adds r0, r4, #0 - bl CreatePostEvoSparkleSet2 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #7 - bls _0817C0D2 - b _0817C0F4 -_0817C0E4: - ldr r0, _0817C104 - ldr r1, _0817C108 - str r1, [sp] - movs r1, #0x10 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade -_0817C0F4: - ldr r0, _0817C10C - adds r1, r5, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x26] - adds r0, #1 - strh r0, [r1, #0x26] - b _0817C114 - .align 2, 0 -_0817C104: .4byte 0xFFFF041C -_0817C108: .4byte 0x00007FFF -_0817C10C: .4byte gUnknown_3005B60 -_0817C110: - ldr r0, _0817C11C - str r0, [r1] -_0817C114: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0817C11C: .4byte EvoTask_DestroyPostSet2AndFlashTask - thumb_func_end EvoTask_CreatePostEvoSparklesSet2_AndFlash - - thumb_func_start EvoTask_DestroyPostSet2AndFlashTask -EvoTask_DestroyPostSet2AndFlashTask: @ 0x0817C120 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _0817C13C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0817C138 - adds r0, r2, #0 - bl DestroyTask -_0817C138: - pop {r0} - bx r0 - .align 2, 0 -_0817C13C: .4byte gUnknown_2037C74 - thumb_func_end EvoTask_DestroyPostSet2AndFlashTask - - thumb_func_start sub_0817C140 -sub_0817C140: @ 0x0817C140 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r0, _0817C168 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0817C16C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #0xc] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0817C168: .4byte EvoTask_BeginPostSparklesSet2_AndFlash_Trade -_0817C16C: .4byte gUnknown_3005B60 - thumb_func_end sub_0817C140 - - thumb_func_start EvoTask_BeginPostSparklesSet2_AndFlash_Trade -EvoTask_BeginPostSparklesSet2_AndFlash_Trade: @ 0x0817C170 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl SetEvoSparklesMatrices - ldr r0, _0817C1B8 - lsls r5, r4, #2 - adds r5, r5, r4 - lsls r5, r5, #3 - adds r5, r5, r0 - movs r0, #0 - strh r0, [r5, #0x26] - ldr r0, _0817C1BC - ldr r1, _0817C1C0 - movs r2, #0x30 - bl CpuSet - ldr r0, _0817C1C4 - ldr r1, _0817C1C8 - str r1, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _0817C1CC - str r0, [r5] - movs r0, #0xca - bl sub_080A306C - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0817C1B8: .4byte gUnknown_3005B60 -_0817C1BC: .4byte gUnknown_20377F4 -_0817C1C0: .4byte gUnknown_20373F4 -_0817C1C4: .4byte 0xFFF90400 -_0817C1C8: .4byte 0x00007FFF -_0817C1CC: .4byte EvoTask_CreatePostEvoSparklesSet2_AndFlash_Trade - thumb_func_end EvoTask_BeginPostSparklesSet2_AndFlash_Trade - - thumb_func_start EvoTask_CreatePostEvoSparklesSet2_AndFlash_Trade -EvoTask_CreatePostEvoSparklesSet2_AndFlash_Trade: @ 0x0817C1D0 - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _0817C208 - lsls r5, r6, #2 - adds r0, r5, r6 - lsls r0, r0, #3 - adds r1, r0, r1 - movs r0, #0x26 - ldrsh r2, [r1, r0] - cmp r2, #0x7f - bgt _0817C24C - adds r0, r2, #0 - cmp r0, #0 - beq _0817C20C - cmp r0, #0x20 - beq _0817C220 - cmp r2, #0x31 - bgt _0817C230 - bl Random - movs r1, #7 - ands r0, r1 - bl CreatePostEvoSparkleSet2 - b _0817C230 - .align 2, 0 -_0817C208: .4byte gUnknown_3005B60 -_0817C20C: - movs r4, #0 -_0817C20E: - adds r0, r4, #0 - bl CreatePostEvoSparkleSet2 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #7 - bls _0817C20E - b _0817C230 -_0817C220: - ldr r0, _0817C240 - ldr r1, _0817C244 - str r1, [sp] - movs r1, #0x10 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade -_0817C230: - ldr r0, _0817C248 - adds r1, r5, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #0x26] - adds r0, #1 - strh r0, [r1, #0x26] - b _0817C250 - .align 2, 0 -_0817C240: .4byte 0xFFFF0400 -_0817C244: .4byte 0x00007FFF -_0817C248: .4byte gUnknown_3005B60 -_0817C24C: - ldr r0, _0817C258 - str r0, [r1] -_0817C250: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0817C258: .4byte EvoTask_DestroyPostSet2AndFlashTask - thumb_func_end EvoTask_CreatePostEvoSparklesSet2_AndFlash_Trade - - thumb_func_start sub_0817C25C -sub_0817C25C: @ 0x0817C25C - bx lr - .align 2, 0 - thumb_func_end sub_0817C25C - - thumb_func_start sub_0817C260 -sub_0817C260: @ 0x0817C260 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x28 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - movs r1, #0 - ldr r3, _0817C394 - ldr r2, _0817C398 -_0817C27A: - lsls r0, r1, #1 - add r0, sp - adds r0, #4 - strh r2, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0xf - bls _0817C27A - adds r0, r3, #0 - movs r1, #0 - bl CreateTask - mov r8, r0 - mov r0, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r0, _0817C39C - mov r1, r8 - lsls r6, r1, #2 - add r6, r8 - lsls r6, r6, #3 - adds r6, r6, r0 - strh r5, [r6, #0xa] - strh r7, [r6, #0xc] - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r6, #0xe] - movs r0, #0x10 - strh r0, [r6, #0x10] - movs r4, #0x80 - lsls r4, r4, #9 - str r1, [sp] - movs r0, #0x1e - movs r2, #0 - movs r3, #0 - bl SetOamMatrix - movs r0, #0x10 - ldrsh r1, [r6, r0] - adds r0, r4, #0 - bl __divsi3 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp] - movs r0, #0x1f - movs r2, #0 - movs r3, #0 - bl SetOamMatrix - ldr r1, _0817C3A0 - mov sb, r1 - lsls r2, r5, #4 - adds r2, r2, r5 - lsls r2, r2, #2 - mov r3, sb - adds r3, #0x1c - adds r0, r2, r3 - ldr r1, _0817C3A4 - str r1, [r0] - add r2, sb - ldrb r1, [r2, #1] - movs r4, #4 - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #1] - ldrb r1, [r2, #3] - movs r0, #0x3f - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x3c - orrs r0, r1 - strb r0, [r2, #3] - movs r0, #0x3e - adds r0, r0, r2 - mov sl, r0 - ldrb r1, [r0] - movs r5, #5 - rsbs r5, r5, #0 - adds r0, r5, #0 - ands r0, r1 - mov r1, sl - strb r0, [r1] - ldrb r1, [r2, #5] - lsrs r1, r1, #4 - lsls r1, r1, #5 - ldr r0, _0817C3A8 - mov sl, r0 - add r1, sl - add r0, sp, #4 - movs r2, #0x10 - str r3, [sp, #0x24] - bl CpuSet - lsls r1, r7, #4 - adds r1, r1, r7 - lsls r1, r1, #2 - ldr r3, [sp, #0x24] - adds r3, r1, r3 - ldr r0, _0817C3A4 - str r0, [r3] - add r1, sb - ldrb r0, [r1, #1] - ands r4, r0 - movs r0, #1 - orrs r4, r0 - strb r4, [r1, #1] - ldrb r0, [r1, #3] - movs r2, #0x3e - orrs r0, r2 - strb r0, [r1, #3] - adds r2, r1, #0 - adds r2, #0x3e - ldrb r0, [r2] - ands r5, r0 - strb r5, [r2] - ldrb r1, [r1, #5] - lsrs r1, r1, #4 - lsls r1, r1, #5 - add r1, sl - add r0, sp, #4 - movs r2, #0x10 - bl CpuSet - movs r1, #0 - strh r1, [r6, #0x18] - mov r0, r8 - add sp, #0x28 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0817C394: .4byte sub_0817C3AC -_0817C398: .4byte 0x00007FFF -_0817C39C: .4byte gUnknown_3005B60 -_0817C3A0: .4byte gUnknown_20205AC -_0817C3A4: .4byte sub_0817C25C -_0817C3A8: .4byte gUnknown_20379B4 - thumb_func_end sub_0817C260 - - thumb_func_start sub_0817C3AC -sub_0817C3AC: @ 0x0817C3AC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0817C3C8 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r0, #0 - strh r0, [r1, #0x12] - movs r0, #8 - strh r0, [r1, #0x14] - ldr r0, _0817C3CC - str r0, [r1] - bx lr - .align 2, 0 -_0817C3C8: .4byte gUnknown_3005B60 -_0817C3CC: .4byte sub_0817C3D0 - thumb_func_end sub_0817C3AC - - thumb_func_start sub_0817C3D0 -sub_0817C3D0: @ 0x0817C3D0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r1, _0817C3F0 - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #3 - adds r2, r0, r1 - movs r1, #0x18 - ldrsh r0, [r2, r1] - cmp r0, #0 - beq _0817C3F4 - adds r0, r3, #0 - bl PreEvoVisible_PostEvoInvisible_KillTask - b _0817C416 - .align 2, 0 -_0817C3F0: .4byte gUnknown_3005B60 -_0817C3F4: - ldrh r1, [r2, #0x14] - movs r4, #0x14 - ldrsh r0, [r2, r4] - cmp r0, #0x80 - bne _0817C406 - adds r0, r3, #0 - bl PreEvoInvisible_PostEvoVisible_KillTask - b _0817C416 -_0817C406: - adds r0, r1, #2 - strh r0, [r2, #0x14] - ldrh r0, [r2, #0x12] - movs r1, #1 - eors r0, r1 - strh r0, [r2, #0x12] - ldr r0, _0817C41C - str r0, [r2] -_0817C416: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0817C41C: .4byte sub_0817C420 - thumb_func_end sub_0817C3D0 - - thumb_func_start sub_0817C420 -sub_0817C420: @ 0x0817C420 - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _0817C444 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r2, r0, r1 - movs r3, #0x18 - ldrsh r0, [r2, r3] - adds r5, r1, #0 - cmp r0, #0 - beq _0817C44C - ldr r0, _0817C448 - str r0, [r2] - b _0817C530 - .align 2, 0 -_0817C444: .4byte gUnknown_3005B60 -_0817C448: .4byte PreEvoVisible_PostEvoInvisible_KillTask -_0817C44C: - movs r6, #0 - movs r7, #0x12 - ldrsh r0, [r2, r7] - cmp r0, #0 - bne _0817C49C - movs r0, #0xe - ldrsh r1, [r2, r0] - movs r3, #0x14 - ldrsh r0, [r2, r3] - movs r3, #0x80 - lsls r3, r3, #1 - subs r0, r3, r0 - cmp r1, r0 - bge _0817C472 - ldrh r0, [r2, #0x14] - ldrh r7, [r2, #0xe] - adds r0, r0, r7 - strh r0, [r2, #0xe] - b _0817C476 -_0817C472: - strh r3, [r2, #0xe] - movs r6, #1 -_0817C476: - lsls r2, r4, #2 - adds r0, r2, r4 - lsls r0, r0, #3 - adds r3, r0, r5 - movs r0, #0x10 - ldrsh r1, [r3, r0] - movs r7, #0x14 - ldrsh r0, [r3, r7] - adds r0, #0x10 - cmp r1, r0 - ble _0817C496 - ldrh r0, [r3, #0x10] - ldrh r1, [r3, #0x14] - subs r0, r0, r1 - strh r0, [r3, #0x10] - b _0817C4E6 -_0817C496: - movs r0, #0x10 - strh r0, [r3, #0x10] - b _0817C4E0 -_0817C49C: - movs r0, #0x10 - ldrsh r1, [r2, r0] - movs r3, #0x14 - ldrsh r0, [r2, r3] - movs r3, #0x80 - lsls r3, r3, #1 - subs r0, r3, r0 - cmp r1, r0 - bge _0817C4B8 - ldrh r0, [r2, #0x14] - ldrh r7, [r2, #0x10] - adds r0, r0, r7 - strh r0, [r2, #0x10] - b _0817C4BC -_0817C4B8: - strh r3, [r2, #0x10] - movs r6, #1 -_0817C4BC: - lsls r2, r4, #2 - adds r0, r2, r4 - lsls r0, r0, #3 - adds r3, r0, r5 - movs r0, #0xe - ldrsh r1, [r3, r0] - movs r7, #0x14 - ldrsh r0, [r3, r7] - adds r0, #0x10 - cmp r1, r0 - ble _0817C4DC - ldrh r0, [r3, #0xe] - ldrh r1, [r3, #0x14] - subs r0, r0, r1 - strh r0, [r3, #0xe] - b _0817C4E6 -_0817C4DC: - movs r0, #0x10 - strh r0, [r3, #0xe] -_0817C4E0: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_0817C4E6: - adds r0, r2, r4 - lsls r0, r0, #3 - adds r5, r0, r5 - movs r0, #0xe - ldrsh r1, [r5, r0] - movs r4, #0x80 - lsls r4, r4, #9 - adds r0, r4, #0 - bl __divsi3 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp] - movs r0, #0x1e - movs r2, #0 - movs r3, #0 - bl SetOamMatrix - movs r3, #0x10 - ldrsh r1, [r5, r3] - adds r0, r4, #0 - bl __divsi3 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp] - movs r0, #0x1f - movs r2, #0 - movs r3, #0 - bl SetOamMatrix - cmp r6, #2 - bne _0817C530 - ldr r0, _0817C538 - str r0, [r5] -_0817C530: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0817C538: .4byte sub_0817C3D0 - thumb_func_end sub_0817C420 - - thumb_func_start PreEvoInvisible_PostEvoVisible_KillTask -PreEvoInvisible_PostEvoVisible_KillTask: @ 0x0817C53C - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0817C5E4 - mov r8, r1 - ldr r1, _0817C5E8 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - adds r4, r4, r1 - movs r2, #0xa - ldrsh r1, [r4, r2] - lsls r2, r1, #4 - adds r2, r2, r1 - lsls r2, r2, #2 - add r2, r8 - ldrb r3, [r2, #1] - movs r6, #4 - rsbs r6, r6, #0 - adds r1, r6, #0 - ands r1, r3 - strb r1, [r2, #1] - movs r2, #0xa - ldrsh r1, [r4, r2] - lsls r2, r1, #4 - adds r2, r2, r1 - lsls r2, r2, #2 - add r2, r8 - ldrb r3, [r2, #3] - movs r5, #0x3f - rsbs r5, r5, #0 - adds r1, r5, #0 - ands r1, r3 - strb r1, [r2, #3] - movs r1, #0xa - ldrsh r2, [r4, r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - add r1, r8 - adds r1, #0x3e - ldrb r2, [r1] - movs r3, #4 - orrs r2, r3 - strb r2, [r1] - movs r1, #0xc - ldrsh r2, [r4, r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - add r1, r8 - ldrb r2, [r1, #1] - ands r6, r2 - strb r6, [r1, #1] - movs r1, #0xc - ldrsh r2, [r4, r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - add r1, r8 - ldrb r2, [r1, #3] - ands r5, r2 - strb r5, [r1, #3] - movs r1, #0xc - ldrsh r2, [r4, r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - add r1, r8 - adds r1, #0x3e - ldrb r3, [r1] - movs r2, #5 - rsbs r2, r2, #0 - ands r2, r3 - strb r2, [r1] - bl DestroyTask - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0817C5E4: .4byte gUnknown_20205AC -_0817C5E8: .4byte gUnknown_3005B60 - thumb_func_end PreEvoInvisible_PostEvoVisible_KillTask - - thumb_func_start PreEvoVisible_PostEvoInvisible_KillTask -PreEvoVisible_PostEvoInvisible_KillTask: @ 0x0817C5EC - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0817C694 - mov r8, r1 - ldr r1, _0817C698 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - adds r4, r4, r1 - movs r2, #0xa - ldrsh r1, [r4, r2] - lsls r2, r1, #4 - adds r2, r2, r1 - lsls r2, r2, #2 - add r2, r8 - ldrb r3, [r2, #1] - movs r6, #4 - rsbs r6, r6, #0 - adds r1, r6, #0 - ands r1, r3 - strb r1, [r2, #1] - movs r2, #0xa - ldrsh r1, [r4, r2] - lsls r2, r1, #4 - adds r2, r2, r1 - lsls r2, r2, #2 - add r2, r8 - ldrb r3, [r2, #3] - movs r5, #0x3f - rsbs r5, r5, #0 - adds r1, r5, #0 - ands r1, r3 - strb r1, [r2, #3] - movs r1, #0xa - ldrsh r2, [r4, r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - add r1, r8 - adds r1, #0x3e - ldrb r3, [r1] - movs r2, #5 - rsbs r2, r2, #0 - ands r2, r3 - strb r2, [r1] - movs r1, #0xc - ldrsh r2, [r4, r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - add r1, r8 - ldrb r2, [r1, #1] - ands r6, r2 - strb r6, [r1, #1] - movs r1, #0xc - ldrsh r2, [r4, r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - add r1, r8 - ldrb r2, [r1, #3] - ands r5, r2 - strb r5, [r1, #3] - movs r1, #0xc - ldrsh r2, [r4, r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - add r1, r8 - adds r1, #0x3e - ldrb r2, [r1] - movs r3, #4 - orrs r2, r3 - strb r2, [r1] - bl DestroyTask - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0817C694: .4byte gUnknown_20205AC -_0817C698: .4byte gUnknown_3005B60 - thumb_func_end PreEvoVisible_PostEvoInvisible_KillTask - - thumb_func_start sub_0817C69C -sub_0817C69C: @ 0x0817C69C - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r3, #0 - strh r3, [r0, #0x16] - subs r1, #1 - strh r1, [r0, #0x18] - strh r2, [r0, #0x1a] - strh r3, [r0, #0x1c] - bx lr - .align 2, 0 - thumb_func_end sub_0817C69C - - thumb_func_start sub_0817C6B0 -sub_0817C6B0: @ 0x0817C6B0 - push {r4, lr} - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _0817C6E0 - lsls r0, r1, #1 - adds r0, #1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r4, #0x14] - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r0, [r1] - movs r2, #0 - ldrsh r1, [r1, r2] - movs r2, #2 - rsbs r2, r2, #0 - cmp r1, r2 - bne _0817C6E8 - ldr r0, _0817C6E4 - bl m4aMPlayStop - b _0817C6F0 - .align 2, 0 -_0817C6E0: .4byte gUnknown_85D2B4C -_0817C6E4: .4byte gUnknown_3007510 -_0817C6E8: - cmp r1, r2 - blt _0817C6F8 - cmp r1, #0 - bgt _0817C6F8 -_0817C6F0: - ldrh r0, [r4, #0x1c] - adds r0, #1 - strh r0, [r4, #0x1c] - b _0817C6FC -_0817C6F8: - bl m4aSongNumStart -_0817C6FC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0817C6B0 - - thumb_func_start sub_0817C704 -sub_0817C704: @ 0x0817C704 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r1, #0x1c - ldrsh r0, [r6, r1] - cmp r0, #0 - beq _0817C716 - movs r0, #0 - strh r0, [r6, #0x1c] - b _0817C74E -_0817C716: - ldr r4, _0817C75C - ldr r5, _0817C760 - ldrh r2, [r6, #0x14] - adds r0, r4, #0 - adds r1, r5, #0 - bl m4aMPlayVolumeControl - ldr r2, _0817C764 - movs r3, #0x18 - ldrsh r1, [r6, r3] - lsls r0, r1, #2 - adds r0, r0, r1 - movs r3, #0x1a - ldrsh r1, [r6, r3] - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, [r0] - movs r2, #0x16 - ldrsh r0, [r6, r2] - lsls r0, r0, #1 - adds r0, r0, r1 - movs r3, #0 - ldrsh r2, [r0, r3] - adds r0, r4, #0 - adds r1, r5, #0 - bl m4aMPlayPitchControl -_0817C74E: - ldrh r0, [r6, #0x16] - adds r0, #1 - strh r0, [r6, #0x16] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0817C75C: .4byte gUnknown_3007510 -_0817C760: .4byte 0x0000FFFF -_0817C764: .4byte gUnknown_85D2AC0 - thumb_func_end sub_0817C704 - - thumb_func_start SetUpFieldMove_Teleport -SetUpFieldMove_Teleport: @ 0x0817C768 - push {lr} - ldr r0, _0817C780 - ldrb r0, [r0, #0x17] - bl Overworld_MapTypeAllowsTeleportAndFly - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0817C784 - movs r0, #0 - b _0817C792 - .align 2, 0 -_0817C780: .4byte gUnknown_2036FB8 -_0817C784: - ldr r1, _0817C798 - ldr r0, _0817C79C - str r0, [r1] - ldr r1, _0817C7A0 - ldr r0, _0817C7A4 - str r0, [r1] - movs r0, #1 -_0817C792: - pop {r1} - bx r1 - .align 2, 0 -_0817C798: .4byte gUnknown_3005B10 -_0817C79C: .4byte FieldCallback_PrepareFadeInFromMenu -_0817C7A0: .4byte gUnknown_203CBB8 -_0817C7A4: .4byte FieldCallback_Teleport - thumb_func_end SetUpFieldMove_Teleport - - thumb_func_start FieldCallback_Teleport -FieldCallback_Teleport: @ 0x0817C7A8 - push {lr} - bl Overworld_ResetStateAfterTeleport - movs r0, #0x3f - bl FieldEffectStart - bl GetCursorSelectionMonId - ldr r1, _0817C7C4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0817C7C4: .4byte gUnknown_20388A8 - thumb_func_end FieldCallback_Teleport - - thumb_func_start FldEff_UseTeleport -FldEff_UseTeleport: @ 0x0817C7C8 - push {lr} - bl oei_task_add - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0817C7F0 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r2, _0817C7F4 - lsrs r0, r2, #0x10 - strh r0, [r1, #0x18] - strh r2, [r1, #0x1a] - movs r0, #1 - bl SetPlayerAvatarTransitionFlags - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_0817C7F0: .4byte gUnknown_3005B60 -_0817C7F4: .4byte StartTeleportFieldEffect - thumb_func_end FldEff_UseTeleport - - thumb_func_start StartTeleportFieldEffect -StartTeleportFieldEffect: @ 0x0817C7F8 - push {lr} - movs r0, #0x3f - bl FieldEffectActiveListRemove - bl sub_080B7720 - pop {r0} - bx r0 - thumb_func_end StartTeleportFieldEffect - - thumb_func_start BattleTv_SetDataBasedOnString -BattleTv_SetDataBasedOnString: @ 0x0817C808 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp] - ldr r0, _0817C88C - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - bne _0817C834 - ldr r0, [sp] - cmp r0, #0x1b - beq _0817C834 - cmp r0, #0xdd - beq _0817C834 - bl _0817DF52 -_0817C834: - ldr r0, _0817C890 - ldr r0, [r0] - movs r1, #0x81 - lsls r1, r1, #2 - adds r7, r0, r1 - ldr r5, _0817C894 - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0817C898 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _0817C89C - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldr r0, _0817C8A0 - ldr r0, [r0] - ldrb r0, [r0, #7] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - cmp r4, #0 - bne _0817C8AC - ldr r2, _0817C8A4 - ldrb r0, [r5] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _0817C8A8 - b _0817C8BC - .align 2, 0 -_0817C88C: .4byte gUnknown_2022C90 -_0817C890: .4byte gUnknown_2024140 -_0817C894: .4byte gUnknown_2023EAF -_0817C898: .4byte gUnknown_2023EB0 -_0817C89C: .4byte gUnknown_2023EB2 -_0817C8A0: .4byte gUnknown_203A874 -_0817C8A4: .4byte gUnknown_2023D12 -_0817C8A8: .4byte gUnknown_2024190 -_0817C8AC: - ldr r2, _0817C8D8 - ldrb r0, [r5] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _0817C8DC -_0817C8BC: - adds r1, r1, r0 - str r1, [sp, #8] - cmp r6, #0 - bne _0817C8E8 - ldr r0, _0817C8E0 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _0817C8E4 - b _0817C8F8 - .align 2, 0 -_0817C8D8: .4byte gUnknown_2023D12 -_0817C8DC: .4byte gUnknown_20243E8 -_0817C8E0: .4byte gUnknown_2023EB0 -_0817C8E4: .4byte gUnknown_2024190 -_0817C8E8: - ldr r0, _0817C938 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _0817C93C -_0817C8F8: - adds r1, r1, r0 - str r1, [sp, #0xc] - ldr r0, _0817C940 - ldrb r0, [r0] - ldr r1, _0817C944 - ldr r1, [r1] - ldrh r1, [r1] - bl GetBattlerMoveSlotId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - cmp r0, #3 - bls _0817C948 - ldr r0, [sp] - bl sub_0817DF64 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0817C948 - ldr r2, [sp] - cmp r2, #0xc - bls _0817C948 - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r7, r0 - adds r0, #0x57 - ldrb r1, [r0] - movs r2, #0x1e - bl _0817DF4E - .align 2, 0 -_0817C938: .4byte gUnknown_2023EB0 -_0817C93C: .4byte gUnknown_20243E8 -_0817C940: .4byte gUnknown_2023EAF -_0817C944: .4byte gUnknown_203A874 -_0817C948: - ldr r0, _0817C988 - ldrb r0, [r0] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x19 - mov r8, r0 - ldr r0, _0817C98C - ldrb r0, [r0] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r5, r0, #0x19 - ldr r0, _0817C990 - ldrb r0, [r0] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r3, r0, #0x19 - ldr r1, [sp] - subs r1, #2 - movs r0, #0xb0 - lsls r0, r0, #1 - cmp r1, r0 - bls _0817C97E - bl _0817DF52 -_0817C97E: - lsls r0, r1, #2 - ldr r1, _0817C994 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0817C988: .4byte gUnknown_2023EAF -_0817C98C: .4byte gUnknown_2023EB0 -_0817C990: .4byte gUnknown_2023EB2 -_0817C994: .4byte _0817C998 -_0817C998: @ jump table - .4byte _0817DC26 @ case 0 - .4byte _0817DF52 @ case 1 - .4byte _0817DF52 @ case 2 - .4byte _0817DF52 @ case 3 - .4byte _0817DF52 @ case 4 - .4byte _0817DF52 @ case 5 - .4byte _0817DF52 @ case 6 - .4byte _0817DF52 @ case 7 - .4byte _0817DF52 @ case 8 - .4byte _0817DF52 @ case 9 - .4byte _0817DF52 @ case 10 - .4byte _0817DF52 @ case 11 - .4byte _0817DF52 @ case 12 - .4byte _0817DF52 @ case 13 - .4byte _0817DF52 @ case 14 - .4byte _0817DF52 @ case 15 - .4byte _0817DF52 @ case 16 - .4byte _0817DF52 @ case 17 - .4byte _0817DF52 @ case 18 - .4byte _0817DF52 @ case 19 - .4byte _0817DF52 @ case 20 - .4byte _0817DF52 @ case 21 - .4byte _0817DF52 @ case 22 - .4byte _0817DF52 @ case 23 - .4byte _0817DF52 @ case 24 - .4byte _0817CF1C @ case 25 - .4byte _0817DC20 @ case 26 - .4byte _0817DC2C @ case 27 - .4byte _0817DF52 @ case 28 - .4byte _0817DF52 @ case 29 - .4byte _0817DF52 @ case 30 - .4byte _0817DF52 @ case 31 - .4byte _0817DF52 @ case 32 - .4byte _0817D914 @ case 33 - .4byte _0817DF52 @ case 34 - .4byte _0817DF52 @ case 35 - .4byte _0817DF52 @ case 36 - .4byte _0817DF52 @ case 37 - .4byte _0817D684 @ case 38 - .4byte _0817DF52 @ case 39 - .4byte _0817D750 @ case 40 - .4byte _0817DF52 @ case 41 - .4byte _0817D6E4 @ case 42 - .4byte _0817DF52 @ case 43 - .4byte _0817D5B0 @ case 44 - .4byte _0817DF52 @ case 45 - .4byte _0817D618 @ case 46 - .4byte _0817D9D0 @ case 47 - .4byte _0817DF52 @ case 48 - .4byte _0817DA3C @ case 49 - .4byte _0817DF52 @ case 50 - .4byte _0817DF52 @ case 51 - .4byte _0817DF52 @ case 52 - .4byte _0817D86E @ case 53 - .4byte _0817DF52 @ case 54 - .4byte _0817D8D0 @ case 55 - .4byte _0817DF52 @ case 56 - .4byte _0817DF52 @ case 57 - .4byte _0817DF52 @ case 58 - .4byte _0817DF52 @ case 59 - .4byte _0817DF52 @ case 60 - .4byte _0817DF52 @ case 61 - .4byte _0817DF52 @ case 62 - .4byte _0817DF52 @ case 63 - .4byte _0817DF52 @ case 64 - .4byte _0817DA80 @ case 65 - .4byte _0817DF52 @ case 66 - .4byte _0817D7F8 @ case 67 - .4byte _0817DF52 @ case 68 - .4byte _0817D840 @ case 69 - .4byte _0817DF52 @ case 70 - .4byte _0817DF52 @ case 71 - .4byte _0817DEEC @ case 72 - .4byte _0817DF52 @ case 73 - .4byte _0817DF52 @ case 74 - .4byte _0817DCBC @ case 75 - .4byte _0817DC74 @ case 76 - .4byte _0817DD88 @ case 77 - .4byte _0817DDD0 @ case 78 - .4byte _0817DDFA @ case 79 - .4byte _0817DF52 @ case 80 - .4byte _0817DF52 @ case 81 - .4byte _0817DF52 @ case 82 - .4byte _0817DF52 @ case 83 - .4byte _0817DF52 @ case 84 - .4byte _0817DF52 @ case 85 - .4byte _0817DF52 @ case 86 - .4byte _0817DF52 @ case 87 - .4byte _0817D50A @ case 88 - .4byte _0817D50A @ case 89 - .4byte _0817D50A @ case 90 - .4byte _0817D50A @ case 91 - .4byte _0817D544 @ case 92 - .4byte _0817DF52 @ case 93 - .4byte _0817DF3A @ case 94 - .4byte _0817DE1C @ case 95 - .4byte _0817DE68 @ case 96 - .4byte _0817DF52 @ case 97 - .4byte _0817DF3A @ case 98 - .4byte _0817DF52 @ case 99 - .4byte _0817DF52 @ case 100 - .4byte _0817DF52 @ case 101 - .4byte _0817D3E8 @ case 102 - .4byte _0817DF52 @ case 103 - .4byte _0817D430 @ case 104 - .4byte _0817D978 @ case 105 - .4byte _0817DF52 @ case 106 - .4byte _0817DF52 @ case 107 - .4byte _0817DF52 @ case 108 - .4byte _0817DF52 @ case 109 - .4byte _0817DF52 @ case 110 - .4byte _0817DF52 @ case 111 - .4byte _0817DF52 @ case 112 - .4byte _0817DF52 @ case 113 - .4byte _0817DF52 @ case 114 - .4byte _0817DF52 @ case 115 - .4byte _0817DF52 @ case 116 - .4byte _0817DF52 @ case 117 - .4byte _0817DF52 @ case 118 - .4byte _0817DF52 @ case 119 - .4byte _0817DF52 @ case 120 - .4byte _0817DF52 @ case 121 - .4byte _0817DF52 @ case 122 - .4byte _0817D252 @ case 123 - .4byte _0817DF52 @ case 124 - .4byte _0817DF52 @ case 125 - .4byte _0817DF52 @ case 126 - .4byte _0817DF52 @ case 127 - .4byte _0817DF52 @ case 128 - .4byte _0817DF52 @ case 129 - .4byte _0817DF52 @ case 130 - .4byte _0817DF52 @ case 131 - .4byte _0817DF52 @ case 132 - .4byte _0817DF52 @ case 133 - .4byte _0817DF52 @ case 134 - .4byte _0817DF52 @ case 135 - .4byte _0817DF52 @ case 136 - .4byte _0817D142 @ case 137 - .4byte _0817D190 @ case 138 - .4byte _0817DF52 @ case 139 - .4byte _0817DF52 @ case 140 - .4byte _0817DF52 @ case 141 - .4byte _0817D47A @ case 142 - .4byte _0817D4B4 @ case 143 - .4byte _0817D344 @ case 144 - .4byte _0817D38C @ case 145 - .4byte _0817DB0E @ case 146 - .4byte _0817DB44 @ case 147 - .4byte _0817DF52 @ case 148 - .4byte _0817D064 @ case 149 - .4byte _0817DF52 @ case 150 - .4byte _0817DF52 @ case 151 - .4byte _0817DF52 @ case 152 - .4byte _0817DF52 @ case 153 - .4byte _0817DF52 @ case 154 - .4byte _0817DF52 @ case 155 - .4byte _0817DF52 @ case 156 - .4byte _0817DB88 @ case 157 - .4byte _0817DF52 @ case 158 - .4byte _0817CF88 @ case 159 - .4byte _0817DF52 @ case 160 - .4byte _0817DF52 @ case 161 - .4byte _0817DF52 @ case 162 - .4byte _0817DF52 @ case 163 - .4byte _0817DF52 @ case 164 - .4byte _0817DF52 @ case 165 - .4byte _0817DF52 @ case 166 - .4byte _0817DF52 @ case 167 - .4byte _0817DF52 @ case 168 - .4byte _0817DF52 @ case 169 - .4byte _0817DF52 @ case 170 - .4byte _0817DF52 @ case 171 - .4byte _0817DF52 @ case 172 - .4byte _0817DF52 @ case 173 - .4byte _0817DF52 @ case 174 - .4byte _0817DF52 @ case 175 - .4byte _0817D08C @ case 176 - .4byte _0817D1C0 @ case 177 - .4byte _0817D200 @ case 178 - .4byte _0817D21E @ case 179 - .4byte _0817DF52 @ case 180 - .4byte _0817DF52 @ case 181 - .4byte _0817DF52 @ case 182 - .4byte _0817DF52 @ case 183 - .4byte _0817DF52 @ case 184 - .4byte _0817D0C2 @ case 185 - .4byte _0817D10C @ case 186 - .4byte _0817DF52 @ case 187 - .4byte _0817DF52 @ case 188 - .4byte _0817DF52 @ case 189 - .4byte _0817DF52 @ case 190 - .4byte _0817DF52 @ case 191 - .4byte _0817DF52 @ case 192 - .4byte _0817DF52 @ case 193 - .4byte _0817DF52 @ case 194 - .4byte _0817DF52 @ case 195 - .4byte _0817DF52 @ case 196 - .4byte _0817DF52 @ case 197 - .4byte _0817DF52 @ case 198 - .4byte _0817DF52 @ case 199 - .4byte _0817DF52 @ case 200 - .4byte _0817DF52 @ case 201 - .4byte _0817DF52 @ case 202 - .4byte _0817DF52 @ case 203 - .4byte _0817DF52 @ case 204 - .4byte _0817DF52 @ case 205 - .4byte _0817DF52 @ case 206 - .4byte _0817DF52 @ case 207 - .4byte _0817DF52 @ case 208 - .4byte _0817DF52 @ case 209 - .4byte _0817DF52 @ case 210 - .4byte _0817D26C @ case 211 - .4byte _0817D29E @ case 212 - .4byte _0817D2EC @ case 213 - .4byte _0817D308 @ case 214 - .4byte _0817D264 @ case 215 - .4byte _0817DF52 @ case 216 - .4byte _0817DF52 @ case 217 - .4byte _0817DF52 @ case 218 - .4byte _0817CF44 @ case 219 - .4byte _0817CF80 @ case 220 - .4byte _0817DF52 @ case 221 - .4byte _0817DF52 @ case 222 - .4byte _0817DF52 @ case 223 - .4byte _0817DF52 @ case 224 - .4byte _0817DF52 @ case 225 - .4byte _0817DF52 @ case 226 - .4byte _0817DF52 @ case 227 - .4byte _0817DACC @ case 228 - .4byte _0817DF52 @ case 229 - .4byte _0817DF52 @ case 230 - .4byte _0817DF52 @ case 231 - .4byte _0817DF52 @ case 232 - .4byte _0817DF52 @ case 233 - .4byte _0817DF52 @ case 234 - .4byte _0817DF52 @ case 235 - .4byte _0817DF52 @ case 236 - .4byte _0817DF52 @ case 237 - .4byte _0817DF52 @ case 238 - .4byte _0817DF52 @ case 239 - .4byte _0817DF52 @ case 240 - .4byte _0817DF52 @ case 241 - .4byte _0817DF52 @ case 242 - .4byte _0817DF52 @ case 243 - .4byte _0817DF52 @ case 244 - .4byte _0817DF52 @ case 245 - .4byte _0817DF52 @ case 246 - .4byte _0817DF52 @ case 247 - .4byte _0817DF52 @ case 248 - .4byte _0817DF52 @ case 249 - .4byte _0817DF52 @ case 250 - .4byte _0817DF52 @ case 251 - .4byte _0817D018 @ case 252 - .4byte _0817DF52 @ case 253 - .4byte _0817DF52 @ case 254 - .4byte _0817DF52 @ case 255 - .4byte _0817DF52 @ case 256 - .4byte _0817DF52 @ case 257 - .4byte _0817DF52 @ case 258 - .4byte _0817DF52 @ case 259 - .4byte _0817DF52 @ case 260 - .4byte _0817DF52 @ case 261 - .4byte _0817DF52 @ case 262 - .4byte _0817DF52 @ case 263 - .4byte _0817DF52 @ case 264 - .4byte _0817DF52 @ case 265 - .4byte _0817DF52 @ case 266 - .4byte _0817DF52 @ case 267 - .4byte _0817DF52 @ case 268 - .4byte _0817DF52 @ case 269 - .4byte _0817DF52 @ case 270 - .4byte _0817DF52 @ case 271 - .4byte _0817DF52 @ case 272 - .4byte _0817DF52 @ case 273 - .4byte _0817DF52 @ case 274 - .4byte _0817DF52 @ case 275 - .4byte _0817DF52 @ case 276 - .4byte _0817DF52 @ case 277 - .4byte _0817DF52 @ case 278 - .4byte _0817DF52 @ case 279 - .4byte _0817DF52 @ case 280 - .4byte _0817DF52 @ case 281 - .4byte _0817DF52 @ case 282 - .4byte _0817DF52 @ case 283 - .4byte _0817DF52 @ case 284 - .4byte _0817DF52 @ case 285 - .4byte _0817DF52 @ case 286 - .4byte _0817DF52 @ case 287 - .4byte _0817DF52 @ case 288 - .4byte _0817DF52 @ case 289 - .4byte _0817DF52 @ case 290 - .4byte _0817DF52 @ case 291 - .4byte _0817DF52 @ case 292 - .4byte _0817DF52 @ case 293 - .4byte _0817DF52 @ case 294 - .4byte _0817DF52 @ case 295 - .4byte _0817DF52 @ case 296 - .4byte _0817DF52 @ case 297 - .4byte _0817DF52 @ case 298 - .4byte _0817DF52 @ case 299 - .4byte _0817DF52 @ case 300 - .4byte _0817DF52 @ case 301 - .4byte _0817DF52 @ case 302 - .4byte _0817DF52 @ case 303 - .4byte _0817DF52 @ case 304 - .4byte _0817DF52 @ case 305 - .4byte _0817DF52 @ case 306 - .4byte _0817DF52 @ case 307 - .4byte _0817DF52 @ case 308 - .4byte _0817DF52 @ case 309 - .4byte _0817DF52 @ case 310 - .4byte _0817DF52 @ case 311 - .4byte _0817DF52 @ case 312 - .4byte _0817DBE4 @ case 313 - .4byte _0817DBA8 @ case 314 - .4byte _0817DF52 @ case 315 - .4byte _0817DF52 @ case 316 - .4byte _0817DF52 @ case 317 - .4byte _0817DF52 @ case 318 - .4byte _0817DF52 @ case 319 - .4byte _0817DF52 @ case 320 - .4byte _0817DF52 @ case 321 - .4byte _0817DF52 @ case 322 - .4byte _0817DF52 @ case 323 - .4byte _0817DF52 @ case 324 - .4byte _0817DF52 @ case 325 - .4byte _0817D50A @ case 326 - .4byte _0817DF52 @ case 327 - .4byte _0817DF52 @ case 328 - .4byte _0817DF52 @ case 329 - .4byte _0817DF52 @ case 330 - .4byte _0817DF52 @ case 331 - .4byte _0817DF52 @ case 332 - .4byte _0817CFD0 @ case 333 - .4byte _0817DF52 @ case 334 - .4byte _0817DF52 @ case 335 - .4byte _0817DF52 @ case 336 - .4byte _0817DF52 @ case 337 - .4byte _0817DF52 @ case 338 - .4byte _0817DF52 @ case 339 - .4byte _0817DF52 @ case 340 - .4byte _0817DF52 @ case 341 - .4byte _0817DF52 @ case 342 - .4byte _0817DF52 @ case 343 - .4byte _0817DF52 @ case 344 - .4byte _0817DF52 @ case 345 - .4byte _0817DF52 @ case 346 - .4byte _0817DF52 @ case 347 - .4byte _0817DF52 @ case 348 - .4byte _0817DD04 @ case 349 - .4byte _0817DC74 @ case 350 - .4byte _0817DCBC @ case 351 - .4byte _0817DE92 @ case 352 -_0817CF1C: - movs r0, #1 - mov r1, sl - movs r2, #2 - movs r3, #0 - bl AddMovePoints - ldr r0, _0817CF40 - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _0817CF38 - bl _0817DF52 -_0817CF38: - bl TrySetBattleSeminarShow - bl _0817DF52 - .align 2, 0 -_0817CF40: .4byte gUnknown_2022C90 -_0817CF44: - movs r0, #1 - mov r1, sl - movs r2, #1 - movs r3, #0 - bl AddMovePoints - ldr r0, _0817CF7C - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _0817CF60 - bl _0817DF52 -_0817CF60: - ldr r0, [sp, #0xc] - movs r1, #0x39 - movs r2, #0 - bl GetMonData - cmp r0, #0 - bne _0817CF72 - bl _0817DF52 -_0817CF72: - bl TrySetBattleSeminarShow - bl _0817DF52 - .align 2, 0 -_0817CF7C: .4byte gUnknown_2022C90 -_0817CF80: - movs r0, #1 - mov r1, sl - movs r2, #0 - b _0817D33A -_0817CF88: - lsls r3, r4, #1 - adds r3, r3, r4 - lsls r3, r3, #2 - adds r3, r7, r3 - ldr r1, _0817CFC4 - ldr r0, _0817CFC8 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - adds r0, #1 - movs r1, #7 - ands r0, r1 - lsls r0, r0, #0xf - ldr r1, [r3, #0x50] - ldr r2, _0817CFCC - ands r1, r2 - orrs r1, r0 - str r1, [r3, #0x50] - adds r3, #0x55 - movs r0, #3 - mov r1, sl - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r3] - movs r0, #0xd - rsbs r0, r0, #0 - bl _0817DAB8 - .align 2, 0 -_0817CFC4: .4byte gUnknown_2023D12 -_0817CFC8: .4byte gUnknown_2023EAF -_0817CFCC: .4byte 0xFFFC7FFF -_0817CFD0: - lsls r2, r4, #1 - adds r2, r2, r4 - lsls r2, r2, #2 - adds r2, r7, r2 - ldr r1, _0817D010 - ldr r0, _0817D014 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r1, #1 - adds r4, r2, #0 - adds r4, #0x52 - movs r0, #7 - ands r1, r0 - lsls r1, r1, #2 - ldrb r3, [r4] - movs r0, #0x1d - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r4] - adds r2, #0x55 - movs r0, #3 - mov r1, sl - ands r1, r0 - lsls r1, r1, #4 - ldrb r3, [r2] - movs r0, #0x31 - rsbs r0, r0, #0 - bl _0817DE56 - .align 2, 0 -_0817D010: .4byte gUnknown_2023D12 -_0817D014: .4byte gUnknown_2023EAF -_0817D018: - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r5, r7, r0 - ldr r1, _0817D05C - ldr r0, _0817D060 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r1, #1 - adds r3, r5, #0 - adds r3, #0x52 - lsls r1, r1, #5 - ldrb r2, [r3] - movs r0, #0x1f - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - adds r4, r5, #0 - adds r4, #0x55 - mov r0, sl - lsls r2, r0, #6 - ldrb r1, [r4] - movs r0, #0x3f - ands r0, r1 - orrs r0, r2 - strb r0, [r4] - adds r2, r5, #0 - adds r2, #0x58 - ldrb r0, [r2] - movs r1, #0x40 - bl _0817DE58 - .align 2, 0 -_0817D05C: .4byte gUnknown_2023D12 -_0817D060: .4byte gUnknown_2023EAF -_0817D064: - ldr r1, _0817D088 - ldrb r0, [r1] - cmp r0, #0 - beq _0817D070 - bl _0817DF52 -_0817D070: - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r7, r0 - adds r0, #0x57 - ldrb r2, [r0] - movs r1, #0x1f - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #0x14 - bl _0817DF4E - .align 2, 0 -_0817D088: .4byte gUnknown_2022C10 -_0817D08C: - lsls r0, r6, #1 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r3, r7, r0 - adds r0, r3, #0 - adds r0, #0x53 - ldrb r0, [r0] - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1d - cmp r0, #0 - bne _0817D0A6 - bl _0817DF52 -_0817D0A6: - adds r2, r6, #0 - subs r1, r0, #1 - lsls r1, r1, #2 - adds r0, r3, #0 - adds r0, #0x56 - ldrb r3, [r0] - lsls r3, r3, #0x1e - lsrs r3, r3, #0x1e - adds r3, r3, r1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #2 - bl sub_0817D9BC -_0817D0C2: - lsls r2, r4, #1 - adds r2, r2, r4 - lsls r2, r2, #2 - adds r2, r7, r2 - ldr r1, _0817D104 - ldr r0, _0817D108 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r1, #1 - adds r4, r2, #0 - adds r4, #0x53 - movs r0, #7 - ands r1, r0 - lsls r1, r1, #3 - ldrb r3, [r4] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r4] - adds r2, #0x56 - movs r0, #3 - mov r1, sl - ands r1, r0 - lsls r1, r1, #2 - ldrb r3, [r2] - movs r0, #0xd - rsbs r0, r0, #0 - bl _0817DE56 - .align 2, 0 -_0817D104: .4byte gUnknown_2023D12 -_0817D108: .4byte gUnknown_2023EAF -_0817D10C: - lsls r0, r6, #1 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r3, r7, r0 - adds r0, r3, #0 - adds r0, #0x53 - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1d - cmp r0, #0 - bne _0817D126 - bl _0817DF52 -_0817D126: - adds r2, r6, #0 - subs r1, r0, #1 - lsls r1, r1, #2 - adds r0, r3, #0 - adds r0, #0x56 - ldrb r3, [r0] - lsls r3, r3, #0x1c - lsrs r3, r3, #0x1e - adds r3, r3, r1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #2 - bl _0817DA6E @ long jump -_0817D142: - lsls r2, r4, #1 - adds r2, r2, r4 - lsls r2, r2, #2 - adds r2, r7, r2 - ldr r1, _0817D184 - ldr r0, _0817D188 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r1, #1 - adds r2, #0x56 - movs r0, #7 - ands r1, r0 - lsls r1, r1, #4 - ldrb r3, [r2] - movs r0, #0x71 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - movs r0, #3 - mov r1, sl - ands r1, r0 - lsls r1, r1, #7 - ldrh r3, [r2] - ldr r0, _0817D18C - ands r0, r3 - orrs r0, r1 - strh r0, [r2] - bl _0817DF52 - .align 2, 0 -_0817D184: .4byte gUnknown_2023D12 -_0817D188: .4byte gUnknown_2023EAF -_0817D18C: .4byte 0xFFFFFE7F -_0817D190: - lsls r0, r6, #1 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r0, r7, r0 - adds r0, #0x56 - ldrb r0, [r0] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1d - cmp r0, #0 - bne _0817D1A8 - bl _0817DF52 -_0817D1A8: - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r7, r0 - adds r0, #0x57 - ldrb r2, [r0] - movs r1, #0x1f - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #0x16 - bl _0817DF4E -_0817D1C0: - mov r2, r8 - lsls r3, r2, #3 - lsls r0, r4, #4 - adds r3, r3, r0 - adds r3, r7, r3 - ldr r1, _0817D1F8 - ldr r0, _0817D1FC - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r1, #1 - adds r3, #0x35 - movs r0, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - movs r2, #3 - mov r1, sl - ands r1, r2 - lsls r1, r1, #3 - movs r2, #0x19 - rsbs r2, r2, #0 - bl _0817DAB8 - .align 2, 0 -_0817D1F8: .4byte gUnknown_2023D12 -_0817D1FC: .4byte gUnknown_2023EAF -_0817D200: - mov r1, r8 - lsls r0, r1, #3 - lsls r1, r4, #4 - adds r0, r0, r1 - adds r0, r7, r0 - adds r0, #0x35 - ldrb r1, [r0] - lsls r0, r1, #0x1d - lsrs r0, r0, #0x1d - cmp r0, #0 - bne _0817D21A - bl _0817DF52 -_0817D21A: - adds r2, r4, #0 - b _0817D238 -_0817D21E: - lsls r0, r5, #3 - lsls r1, r6, #4 - adds r0, r0, r1 - adds r0, r7, r0 - adds r0, #0x35 - ldrb r1, [r0] - lsls r0, r1, #0x1d - lsrs r0, r0, #0x1d - cmp r0, #0 - bne _0817D236 - bl _0817DF52 -_0817D236: - adds r2, r6, #0 -_0817D238: - subs r0, #1 - lsls r0, r0, #2 - lsls r3, r1, #0x1b - lsrs r3, r3, #0x1e - adds r3, r3, r0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #2 - movs r1, #6 - bl AddMovePoints - bl _0817DF52 -_0817D252: - ldr r0, _0817D260 - ldr r0, [r0] - adds r0, #0xb3 - movs r1, #1 - bl _0817DF50 - .align 2, 0 -_0817D260: .4byte gUnknown_2024140 -_0817D264: - movs r0, #0x12 - mov r1, sl - movs r2, #0 - b _0817D33A -_0817D26C: - ldr r0, _0817D28C - ldrb r2, [r0, #2] - cmp r2, #0 - bne _0817D278 - bl _0817DF52 -_0817D278: - ldr r1, _0817D290 - ldrh r0, [r1] - cmp r0, #0xd1 - bne _0817D294 - subs r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r0, #0x17 - b _0817D338 - .align 2, 0 -_0817D28C: .4byte gUnknown_2022C0C -_0817D290: .4byte gUnknown_2022C1E -_0817D294: - subs r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r0, #0x16 - b _0817D338 -_0817D29E: - ldr r0, _0817D2C8 - ldrb r2, [r0, #2] - cmp r2, #0 - bne _0817D2AA - bl _0817DF52 -_0817D2AA: - ldr r0, _0817D2CC - ldr r1, _0817D2D0 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bne _0817D2E2 - ldr r1, _0817D2D4 - ldrh r0, [r1] - cmp r0, #0xd1 - bne _0817D2D8 - subs r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r0, #0x17 - b _0817D338 - .align 2, 0 -_0817D2C8: .4byte gUnknown_2022C0C -_0817D2CC: .4byte gUnknown_2023EAF -_0817D2D0: .4byte gUnknown_2023EB0 -_0817D2D4: .4byte gUnknown_2022C1E -_0817D2D8: - subs r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r0, #0x16 - b _0817D338 -_0817D2E2: - subs r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r0, #0x1b - b _0817D338 -_0817D2EC: - ldr r0, _0817D304 - ldrb r2, [r0, #2] - cmp r2, #0 - bne _0817D2F8 - bl _0817DF52 -_0817D2F8: - subs r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r0, #0x18 - b _0817D338 - .align 2, 0 -_0817D304: .4byte gUnknown_2022C0C -_0817D308: - ldr r0, _0817D328 - ldrb r2, [r0, #2] - cmp r2, #0 - bne _0817D314 - bl _0817DF52 -_0817D314: - ldr r1, _0817D32C - ldrh r0, [r1] - cmp r0, #0xd3 - bne _0817D330 - subs r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r0, #0x1a - b _0817D338 - .align 2, 0 -_0817D328: .4byte gUnknown_2022C0C -_0817D32C: .4byte gUnknown_2022C1E -_0817D330: - subs r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r0, #0x19 -_0817D338: - mov r1, sl -_0817D33A: - movs r3, #0 - bl AddMovePoints - bl _0817DF52 -_0817D344: - lsls r2, r5, #3 - lsls r0, r6, #4 - adds r2, r2, r0 - adds r2, r7, r2 - ldr r1, _0817D384 - ldr r0, _0817D388 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r1, #1 - adds r4, r2, #0 - adds r4, #0x30 - movs r0, #7 - ands r1, r0 - ldrb r3, [r4] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r4] - adds r2, #0x32 - movs r0, #3 - mov r1, sl - ands r1, r0 - lsls r1, r1, #2 - ldrb r3, [r2] - movs r0, #0xd - rsbs r0, r0, #0 - bl _0817DE56 - .align 2, 0 -_0817D384: .4byte gUnknown_2023D12 -_0817D388: .4byte gUnknown_2023EAF -_0817D38C: - ldr r0, [sp, #8] - movs r1, #0x39 - movs r2, #0 - bl GetMonData - cmp r0, #0 - bne _0817D39E - bl _0817DF52 -_0817D39E: - mov r2, r8 - lsls r0, r2, #3 - lsls r1, r4, #4 - adds r0, r0, r1 - adds r1, r7, r0 - adds r0, r1, #0 - adds r0, #0x30 - ldrb r0, [r0] - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1d - cmp r0, #0 - bne _0817D3BA - bl _0817DF52 -_0817D3BA: - subs r2, r0, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r1, #0 - adds r0, #0x32 - ldrb r3, [r0] - lsls r3, r3, #0x1c - lsrs r3, r3, #0x1e - movs r0, #8 - movs r1, #0 - bl AddMovePoints - lsls r1, r4, #1 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r1, r7, r1 - adds r1, #0x57 - ldrb r2, [r1] - movs r0, #0x1f - rsbs r0, r0, #0 - ands r0, r2 - movs r2, #2 - b _0817D59E -_0817D3E8: - lsls r2, r5, #3 - lsls r0, r6, #4 - adds r2, r2, r0 - adds r2, r7, r2 - ldr r1, _0817D428 - ldr r0, _0817D42C - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r1, #1 - adds r4, r2, #0 - adds r4, #0x30 - movs r0, #7 - ands r1, r0 - lsls r1, r1, #3 - ldrb r3, [r4] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r4] - adds r2, #0x32 - movs r0, #3 - mov r1, sl - ands r1, r0 - lsls r1, r1, #4 - ldrb r3, [r2] - movs r0, #0x31 - rsbs r0, r0, #0 - bl _0817DE56 - .align 2, 0 -_0817D428: .4byte gUnknown_2023D12 -_0817D42C: .4byte gUnknown_2023EAF -_0817D430: - mov r1, r8 - lsls r0, r1, #3 - lsls r1, r4, #4 - adds r0, r0, r1 - adds r1, r7, r0 - adds r0, r1, #0 - adds r0, #0x30 - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1d - cmp r0, #0 - bne _0817D44C - bl _0817DF52 -_0817D44C: - subs r2, r0, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r1, #0 - adds r0, #0x32 - ldrb r3, [r0] - lsls r3, r3, #0x1a - lsrs r3, r3, #0x1e - movs r0, #8 - movs r1, #1 - bl AddMovePoints - lsls r1, r4, #1 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r1, r7, r1 - adds r1, #0x57 - ldrb r2, [r1] - movs r0, #0x1f - rsbs r0, r0, #0 - ands r0, r2 - movs r2, #4 - b _0817D59E -_0817D47A: - lsls r2, r5, #3 - lsls r0, r6, #4 - adds r2, r2, r0 - adds r2, r7, r2 - ldr r1, _0817D4A8 - ldr r0, _0817D4AC - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r1, #1 - movs r0, #7 - ands r1, r0 - lsls r1, r1, #6 - ldrh r3, [r2, #0x30] - ldr r0, _0817D4B0 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, #0x30] - adds r2, #0x32 - bl _0817DDB6 - .align 2, 0 -_0817D4A8: .4byte gUnknown_2023D12 -_0817D4AC: .4byte gUnknown_2023EAF -_0817D4B0: .4byte 0xFFFFFE3F -_0817D4B4: - ldr r0, [sp, #8] - movs r1, #0x39 - movs r2, #0 - bl GetMonData - cmp r0, #0 - bne _0817D4C6 - bl _0817DF52 -_0817D4C6: - mov r1, r8 - lsls r0, r1, #3 - lsls r1, r4, #4 - adds r0, r0, r1 - adds r1, r7, r0 - ldrh r0, [r1, #0x30] - lsls r0, r0, #0x17 - lsrs r0, r0, #0x1d - cmp r0, #0 - bne _0817D4DE - bl _0817DF52 -_0817D4DE: - subs r2, r0, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r1, #0 - adds r0, #0x32 - ldrb r3, [r0] - lsrs r3, r3, #6 - movs r0, #8 - movs r1, #5 - bl AddMovePoints - lsls r1, r4, #1 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r1, r7, r1 - adds r1, #0x57 - ldrb r2, [r1] - movs r0, #0x1f - rsbs r0, r0, #0 - ands r0, r2 - movs r2, #0xa - b _0817D59E -_0817D50A: - lsls r2, r5, #3 - lsls r0, r6, #4 - adds r2, r2, r0 - adds r2, r7, r2 - ldr r1, _0817D53C - ldr r0, _0817D540 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r1, #1 - adds r4, r2, #0 - adds r4, #0x31 - movs r0, #7 - ands r1, r0 - lsls r1, r1, #1 - ldrb r3, [r4] - movs r0, #0xf - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r4] - adds r2, #0x33 - bl _0817DE4A - .align 2, 0 -_0817D53C: .4byte gUnknown_2023D12 -_0817D540: .4byte gUnknown_2023EAF -_0817D544: - ldr r0, [sp, #8] - movs r1, #0x39 - movs r2, #0 - bl GetMonData - cmp r0, #0 - bne _0817D556 - bl _0817DF52 -_0817D556: - mov r1, r8 - lsls r0, r1, #3 - lsls r1, r4, #4 - adds r0, r0, r1 - adds r1, r7, r0 - adds r0, r1, #0 - adds r0, #0x31 - ldrb r0, [r0] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1d - cmp r0, #0 - bne _0817D572 - bl _0817DF52 -_0817D572: - subs r2, r0, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r1, #0 - adds r0, #0x33 - ldrb r3, [r0] - lsls r3, r3, #0x1e - lsrs r3, r3, #0x1e - movs r0, #8 - movs r1, #6 - bl AddMovePoints - lsls r1, r4, #1 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r1, r7, r1 - adds r1, #0x57 - ldrb r2, [r1] - movs r0, #0x1f - rsbs r0, r0, #0 - ands r0, r2 - movs r2, #0xc -_0817D59E: - orrs r0, r2 - mov r2, r8 - lsls r3, r2, #5 - movs r2, #0x1f - ands r0, r2 - orrs r0, r3 - strb r0, [r1] - bl _0817DF52 -_0817D5B0: - ldr r5, _0817D608 - ldr r6, _0817D60C - ldrb r0, [r6] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r2, [r0] - lsls r2, r2, #2 - mov r0, sb - lsls r4, r0, #1 - add r4, sb - lsls r4, r4, #3 - adds r2, r2, r4 - adds r2, r7, r2 - ldr r0, _0817D610 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r1, [r0] - adds r1, #1 - movs r0, #7 - ands r1, r0 - lsls r1, r1, #6 - ldrh r3, [r2] - ldr r0, _0817D614 - ands r0, r3 - orrs r0, r1 - strh r0, [r2] - ldrb r0, [r6] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r1, [r0] - lsls r1, r1, #2 - adds r1, r1, r4 - adds r1, r7, r1 - mov r2, sl - lsls r3, r2, #6 - ldrb r2, [r1, #2] - movs r0, #0x3f - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #2] - bl _0817DF52 - .align 2, 0 -_0817D608: .4byte gUnknown_2023D12 -_0817D60C: .4byte gUnknown_2023EB2 -_0817D610: .4byte gUnknown_2023EAF -_0817D614: .4byte 0xFFFFFE3F -_0817D618: - ldr r0, [sp, #8] - movs r1, #0x39 - movs r2, #0 - bl GetMonData - cmp r0, #0 - bne _0817D62A - bl _0817DF52 -_0817D62A: - ldr r6, _0817D67C - ldr r5, _0817D680 - ldrb r0, [r5] - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r0, [r0] - lsls r0, r0, #2 - lsls r1, r4, #1 - adds r4, r1, r4 - lsls r1, r4, #3 - adds r0, r0, r1 - adds r1, r7, r0 - ldrh r0, [r1] - lsls r0, r0, #0x17 - lsrs r0, r0, #0x1d - cmp r0, #0 - beq _0817D65E - subs r2, r0, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r3, [r1, #2] - lsrs r3, r3, #6 - movs r0, #8 - movs r1, #4 - bl AddMovePoints -_0817D65E: - lsls r3, r4, #2 - adds r3, r7, r3 - adds r3, #0x57 - ldrb r0, [r3] - movs r1, #0x1f - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #8 - orrs r1, r0 - strb r1, [r3] - ldrb r0, [r5] - lsls r0, r0, #1 - adds r0, r0, r6 - b _0817D7E0 - .align 2, 0 -_0817D67C: .4byte gUnknown_2023D12 -_0817D680: .4byte gUnknown_2023EAF -_0817D684: - ldr r5, _0817D6D8 - ldr r6, _0817D6DC - ldrb r0, [r6] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r2, [r0] - lsls r2, r2, #2 - mov r0, sb - lsls r4, r0, #1 - add r4, sb - lsls r4, r4, #3 - adds r2, r2, r4 - adds r2, r7, r2 - ldr r0, _0817D6E0 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r1, [r0] - adds r1, #1 - movs r0, #7 - ands r1, r0 - ldrb r3, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r6] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r1, [r0] - lsls r1, r1, #2 - adds r1, r1, r4 - adds r1, r7, r1 - movs r0, #3 - mov r2, sl - ands r2, r0 - lsls r2, r2, #2 - ldrb r3, [r1, #2] - movs r0, #0xd - rsbs r0, r0, #0 - b _0817D738 - .align 2, 0 -_0817D6D8: .4byte gUnknown_2023D12 -_0817D6DC: .4byte gUnknown_2023EB2 -_0817D6E0: .4byte gUnknown_2023EAF -_0817D6E4: - ldr r5, _0817D744 - ldr r6, _0817D748 - ldrb r0, [r6] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r2, [r0] - lsls r2, r2, #2 - mov r1, sb - lsls r4, r1, #1 - add r4, sb - lsls r4, r4, #3 - adds r2, r2, r4 - adds r2, r7, r2 - ldr r0, _0817D74C - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r1, [r0] - adds r1, #1 - movs r0, #7 - ands r1, r0 - lsls r1, r1, #3 - ldrb r3, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r6] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r1, [r0] - lsls r1, r1, #2 - adds r1, r1, r4 - adds r1, r7, r1 - movs r0, #3 - mov r2, sl - ands r2, r0 - lsls r2, r2, #4 - ldrb r3, [r1, #2] - movs r0, #0x31 - rsbs r0, r0, #0 -_0817D738: - ands r0, r3 - orrs r0, r2 - strb r0, [r1, #2] - bl _0817DF52 - .align 2, 0 -_0817D744: .4byte gUnknown_2023D12 -_0817D748: .4byte gUnknown_2023EB2 -_0817D74C: .4byte gUnknown_2023EAF -_0817D750: - ldr r0, [sp, #8] - movs r1, #0x39 - movs r2, #0 - bl GetMonData - cmp r0, #0 - bne _0817D762 - bl _0817DF52 -_0817D762: - ldr r2, _0817D7F0 - mov r8, r2 - ldr r6, _0817D7F4 - ldrb r0, [r6] - lsls r0, r0, #1 - add r0, r8 - ldrh r0, [r0] - lsls r0, r0, #2 - lsls r1, r4, #1 - adds r5, r1, r4 - lsls r4, r5, #3 - adds r0, r0, r4 - adds r1, r7, r0 - ldrb r0, [r1] - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1d - cmp r0, #0 - beq _0817D79A - subs r2, r0, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r3, [r1, #2] - lsls r3, r3, #0x1c - lsrs r3, r3, #0x1e - movs r0, #8 - movs r1, #2 - bl AddMovePoints -_0817D79A: - ldrb r0, [r6] - lsls r0, r0, #1 - add r0, r8 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r4 - adds r1, r7, r0 - ldrb r0, [r1] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1d - cmp r0, #0 - beq _0817D7C6 - subs r2, r0, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r3, [r1, #2] - lsls r3, r3, #0x1a - lsrs r3, r3, #0x1e - movs r0, #8 - movs r1, #3 - bl AddMovePoints -_0817D7C6: - lsls r3, r5, #2 - adds r3, r7, r3 - adds r3, #0x57 - ldrb r0, [r3] - movs r1, #0x1f - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #6 - orrs r1, r0 - strb r1, [r3] - ldrb r0, [r6] - lsls r0, r0, #1 - add r0, r8 -_0817D7E0: - ldrh r0, [r0] - lsls r0, r0, #5 - movs r2, #0x1f - ands r1, r2 - orrs r1, r0 - strb r1, [r3] - b _0817DF52 - .align 2, 0 -_0817D7F0: .4byte gUnknown_2023D12 -_0817D7F4: .4byte gUnknown_2023EAF -_0817D7F8: - lsls r2, r5, #3 - lsls r0, r6, #4 - adds r2, r2, r0 - adds r2, r7, r2 - ldr r1, _0817D838 - ldr r0, _0817D83C - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r1, #1 - adds r4, r2, #0 - adds r4, #0x31 - movs r0, #7 - ands r1, r0 - lsls r1, r1, #4 - ldrb r3, [r4] - movs r0, #0x71 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r4] - adds r2, #0x33 - movs r0, #3 - mov r1, sl - ands r1, r0 - lsls r1, r1, #2 - ldrb r3, [r2] - movs r0, #0xd - rsbs r0, r0, #0 - b _0817DE56 - .align 2, 0 -_0817D838: .4byte gUnknown_2023D12 -_0817D83C: .4byte gUnknown_2023EAF -_0817D840: - mov r1, r8 - lsls r0, r1, #3 - lsls r1, r4, #4 - adds r0, r0, r1 - adds r1, r7, r0 - adds r0, r1, #0 - adds r0, #0x31 - ldrb r0, [r0] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1d - cmp r0, #0 - bne _0817D85A - b _0817DF52 -_0817D85A: - subs r2, r0, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r1, #0 - adds r0, #0x33 - ldrb r3, [r0] - lsls r3, r3, #0x1c - lsrs r3, r3, #0x1e - movs r0, #9 - b _0817DF32 -_0817D86E: - ldr r5, _0817D8C4 - ldr r6, _0817D8C8 - ldrb r0, [r6] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r2, [r0] - lsls r2, r2, #2 - mov r0, sb - lsls r4, r0, #1 - add r4, sb - lsls r4, r4, #3 - adds r2, r2, r4 - adds r2, r7, r2 - ldr r0, _0817D8CC - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r1, [r0] - adds r1, #1 - movs r0, #7 - ands r1, r0 - lsls r1, r1, #1 - ldrb r3, [r2, #1] - movs r0, #0xf - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #1] - ldrb r0, [r6] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r1, [r0] - lsls r1, r1, #2 - adds r1, r1, r4 - adds r1, r7, r1 - movs r0, #3 - mov r2, sl - ands r2, r0 - ldrb r3, [r1, #3] - movs r0, #4 - rsbs r0, r0, #0 - b _0817DA22 - .align 2, 0 -_0817D8C4: .4byte gUnknown_2023D12 -_0817D8C8: .4byte gUnknown_2023EB2 -_0817D8CC: .4byte gUnknown_2023EAF -_0817D8D0: - ldr r1, _0817D90C - ldr r0, _0817D910 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - lsls r1, r1, #2 - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r1, r1, r0 - adds r1, r7, r1 - ldrb r0, [r1, #1] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1d - cmp r0, #0 - bne _0817D8F4 - b _0817DF52 -_0817D8F4: - subs r2, r0, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r3, [r1, #3] - lsls r3, r3, #0x1e - lsrs r3, r3, #0x1e - movs r0, #9 - movs r1, #2 - bl AddMovePoints - b _0817DF52 - .align 2, 0 -_0817D90C: .4byte gUnknown_2023D12 -_0817D910: .4byte gUnknown_2023EAF -_0817D914: - ldr r5, _0817D96C - ldr r6, _0817D970 - ldrb r0, [r6] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r2, [r0] - lsls r2, r2, #2 - mov r1, sb - lsls r4, r1, #1 - add r4, sb - lsls r4, r4, #3 - adds r2, r2, r4 - adds r2, r7, r2 - ldr r0, _0817D974 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r1, [r0] - adds r1, #1 - movs r0, #7 - ands r1, r0 - lsls r1, r1, #4 - ldrb r3, [r2, #1] - movs r0, #0x71 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #1] - ldrb r0, [r6] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r1, [r0] - lsls r1, r1, #2 - adds r1, r1, r4 - adds r1, r7, r1 - movs r0, #3 - mov r2, sl - ands r2, r0 - lsls r2, r2, #2 - ldrb r3, [r1, #3] - movs r0, #0xd - rsbs r0, r0, #0 - b _0817DA22 - .align 2, 0 -_0817D96C: .4byte gUnknown_2023D12 -_0817D970: .4byte gUnknown_2023EB2 -_0817D974: .4byte gUnknown_2023EAF -_0817D978: - ldr r1, _0817D9C4 - ldr r0, _0817D9C8 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - lsls r1, r1, #2 - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r1, r1, r0 - adds r1, r7, r1 - ldrb r0, [r1, #1] - lsls r0, r0, #0x19 - lsrs r2, r0, #0x1d - cmp r2, #0 - bne _0817D99C - b _0817DF52 -_0817D99C: - ldr r0, _0817D9CC - ldr r0, [r0] - ldrh r0, [r0] - cmp r0, #0xad - bne _0817D9A8 - b _0817DF52 -_0817D9A8: - cmp r0, #0xd6 - bne _0817D9AE - b _0817DF52 -_0817D9AE: - subs r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r3, [r1, #3] - lsls r3, r3, #0x1c - lsrs r3, r3, #0x1e - movs r0, #9 - thumb_func_end BattleTv_SetDataBasedOnString - - thumb_func_start sub_0817D9BC -sub_0817D9BC: @ 0x0817D9BC - movs r1, #3 - bl AddMovePoints - b _0817DF52 - .align 2, 0 -_0817D9C4: .4byte gUnknown_2023D12 -_0817D9C8: .4byte gUnknown_2023EAF -_0817D9CC: .4byte gUnknown_203A874 -_0817D9D0: - ldr r5, _0817DA2C - ldr r6, _0817DA30 - ldrb r0, [r6] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r3, [r0] - lsls r3, r3, #2 - mov r2, sb - lsls r4, r2, #1 - add r4, sb - lsls r4, r4, #3 - adds r3, r3, r4 - adds r3, r7, r3 - ldr r0, _0817DA34 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r0, [r0] - adds r0, #1 - movs r1, #7 - ands r0, r1 - lsls r0, r0, #0xf - ldr r1, [r3] - ldr r2, _0817DA38 - ands r1, r2 - orrs r1, r0 - str r1, [r3] - ldrb r0, [r6] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r1, [r0] - lsls r1, r1, #2 - adds r1, r1, r4 - adds r1, r7, r1 - movs r0, #3 - mov r2, sl - ands r2, r0 - lsls r2, r2, #4 - ldrb r3, [r1, #3] - movs r0, #0x31 - rsbs r0, r0, #0 -_0817DA22: - ands r0, r3 - orrs r0, r2 - strb r0, [r1, #3] - b _0817DF52 - .align 2, 0 -_0817DA2C: .4byte gUnknown_2023D12 -_0817DA30: .4byte gUnknown_2023EB2 -_0817DA34: .4byte gUnknown_2023EAF -_0817DA38: .4byte 0xFFFC7FFF -_0817DA3C: - ldr r1, _0817DA78 - ldr r0, _0817DA7C - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - lsls r1, r1, #2 - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r1, r1, r0 - adds r1, r7, r1 - ldr r0, [r1] - lsls r0, r0, #0xe - lsrs r0, r0, #0x1d - cmp r0, #0 - bne _0817DA60 - b _0817DF52 -_0817DA60: - subs r2, r0, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r3, [r1, #3] - lsls r3, r3, #0x1a - lsrs r3, r3, #0x1e - movs r0, #9 -_0817DA6E: - movs r1, #4 - bl AddMovePoints - b _0817DF52 - .align 2, 0 -_0817DA78: .4byte gUnknown_2023D12 -_0817DA7C: .4byte gUnknown_2023EAF -_0817DA80: - lsls r3, r3, #3 - mov r1, sb - lsls r0, r1, #4 - adds r3, r3, r0 - adds r3, r7, r3 - ldr r1, _0817DAC0 - ldr r0, _0817DAC4 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - adds r0, #1 - movs r1, #7 - ands r0, r1 - lsls r0, r0, #0xf - ldr r1, [r3, #0x30] - ldr r2, _0817DAC8 - ands r1, r2 - orrs r1, r0 - str r1, [r3, #0x30] - adds r3, #0x33 - movs r0, #3 - mov r1, sl - ands r1, r0 - lsls r1, r1, #4 - ldrb r2, [r3] - movs r0, #0x31 - rsbs r0, r0, #0 -_0817DAB8: - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _0817DF52 - .align 2, 0 -_0817DAC0: .4byte gUnknown_2023D12 -_0817DAC4: .4byte gUnknown_2023EAF -_0817DAC8: .4byte 0xFFFC7FFF -_0817DACC: - mov r2, r8 - lsls r0, r2, #3 - lsls r1, r4, #4 - adds r0, r0, r1 - adds r3, r7, r0 - ldr r0, [r3, #0x30] - lsls r0, r0, #0xe - lsrs r0, r0, #0x1d - cmp r0, #0 - beq _0817DAF8 - subs r2, r0, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r3, #0 - adds r0, #0x33 - ldrb r3, [r0] - lsls r3, r3, #0x1a - lsrs r3, r3, #0x1e - movs r0, #9 - movs r1, #1 - bl AddMovePoints -_0817DAF8: - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r7, r0 - adds r0, #0x57 - ldrb r2, [r0] - movs r1, #0x1f - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #0x18 - b _0817DF4E -_0817DB0E: - lsls r2, r6, #1 - adds r2, r2, r6 - lsls r2, r2, #2 - adds r2, r7, r2 - ldr r1, _0817DB3C - ldr r0, _0817DB40 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r1, #1 - adds r4, r2, #0 - adds r4, #0x50 - movs r0, #7 - ands r1, r0 - ldrb r3, [r4] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r4] - adds r2, #0x54 - b _0817DE4A - .align 2, 0 -_0817DB3C: .4byte gUnknown_2023D12 -_0817DB40: .4byte gUnknown_2023EAF -_0817DB44: - ldr r1, [sp, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, r7, r0 - adds r0, r4, #0 - adds r0, #0x50 - ldrb r0, [r0] - lsls r0, r0, #0x1d - lsrs r2, r0, #0x1d - cmp r2, #0 - bne _0817DB5E - b _0817DF52 -_0817DB5E: - movs r0, #1 - eors r1, r0 - subs r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r0, #0x54 - ldrb r3, [r0] - lsls r3, r3, #0x1e - lsrs r3, r3, #0x1e - movs r0, #0xa - bl AddMovePoints - adds r2, r4, #0 - adds r2, #0x57 - ldrb r1, [r2] - movs r0, #0x1f - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0xe - b _0817DE58 -_0817DB88: - lsls r1, r4, #1 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r1, r7, r1 - adds r3, r1, #0 - adds r3, #0x50 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r3] - adds r1, #0x54 - ldrb r2, [r1] - movs r0, #4 - rsbs r0, r0, #0 - b _0817DE16 -_0817DBA8: - mov r0, r8 - lsls r2, r0, #3 - lsls r0, r4, #4 - adds r2, r2, r0 - adds r2, r7, r2 - ldr r1, _0817DBDC - ldr r0, _0817DBE0 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r1, #1 - adds r4, r2, #0 - adds r4, #0x34 - movs r0, #7 - ands r1, r0 - ldrb r3, [r4] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r4] - adds r2, #0x33 - mov r1, sl - lsls r3, r1, #6 - b _0817DDBA - .align 2, 0 -_0817DBDC: .4byte gUnknown_2023D12 -_0817DBE0: .4byte gUnknown_2023EAF -_0817DBE4: - mov r0, r8 - lsls r2, r0, #3 - lsls r0, r4, #4 - adds r2, r2, r0 - adds r2, r7, r2 - ldr r1, _0817DC18 - ldr r0, _0817DC1C - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r1, #1 - adds r2, #0x34 - movs r0, #7 - ands r1, r0 - lsls r1, r1, #3 - ldrb r3, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - mov r1, sl - lsls r3, r1, #6 - movs r1, #0x3f - b _0817DDBE - .align 2, 0 -_0817DC18: .4byte gUnknown_2023D12 -_0817DC1C: .4byte gUnknown_2023EAF -_0817DC20: - movs r0, #0 - bl AddPointsOnFainting -_0817DC26: - mov r2, r8 - lsls r0, r2, #3 - b _0817DC34 -_0817DC2C: - movs r0, #1 - bl AddPointsOnFainting - lsls r0, r5, #3 -_0817DC34: - lsls r1, r4, #4 - adds r0, r0, r1 - adds r1, r7, r0 - adds r4, r1, #0 - adds r4, #0x34 - ldrb r5, [r4] - lsls r0, r5, #0x1d - cmp r0, #0 - beq _0817DC5A - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r5 - strb r0, [r4] - adds r2, r1, #0 - adds r2, #0x33 - ldrb r1, [r2] - movs r0, #0x3f - ands r0, r1 - strb r0, [r2] -_0817DC5A: - ldrb r1, [r4] - lsls r0, r1, #0x1a - lsrs r0, r0, #0x1d - cmp r0, #0 - bne _0817DC66 - b _0817DF52 -_0817DC66: - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x3f - ands r0, r1 - strb r0, [r4] - b _0817DF52 -_0817DC74: - lsls r2, r4, #1 - adds r2, r2, r4 - lsls r2, r2, #2 - adds r2, r7, r2 - ldr r1, _0817DCB4 - ldr r0, _0817DCB8 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r1, #1 - adds r4, r2, #0 - adds r4, #0x50 - movs r0, #7 - ands r1, r0 - lsls r1, r1, #3 - ldrb r3, [r4] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r4] - adds r2, #0x54 - movs r0, #3 - mov r1, sl - ands r1, r0 - lsls r1, r1, #2 - ldrb r3, [r2] - movs r0, #0xd - rsbs r0, r0, #0 - b _0817DE56 - .align 2, 0 -_0817DCB4: .4byte gUnknown_2023D12 -_0817DCB8: .4byte gUnknown_2023EAF -_0817DCBC: - lsls r2, r4, #1 - adds r2, r2, r4 - lsls r2, r2, #2 - adds r2, r7, r2 - ldr r1, _0817DCF8 - ldr r0, _0817DCFC - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r1, #1 - adds r4, r2, #0 - adds r4, #0x50 - movs r0, #7 - ands r1, r0 - lsls r1, r1, #6 - ldrh r3, [r4] - ldr r0, _0817DD00 - ands r0, r3 - orrs r0, r1 - strh r0, [r4] - adds r2, #0x54 - movs r0, #3 - mov r1, sl - ands r1, r0 - lsls r1, r1, #4 - ldrb r3, [r2] - movs r0, #0x31 - rsbs r0, r0, #0 - b _0817DE56 - .align 2, 0 -_0817DCF8: .4byte gUnknown_2023D12 -_0817DCFC: .4byte gUnknown_2023EAF -_0817DD00: .4byte 0xFFFFFE3F -_0817DD04: - ldr r1, _0817DD80 - ldrh r0, [r1] - cmp r0, #0x73 - bne _0817DD2E - lsls r1, r4, #1 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r1, r7, r1 - adds r3, r1, #0 - adds r3, #0x50 - ldrb r2, [r3] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r3] - adds r1, #0x54 - ldrb r2, [r1] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] -_0817DD2E: - ldr r2, _0817DD80 - ldrh r0, [r2] - cmp r0, #0x71 - bne _0817DD56 - lsls r1, r4, #1 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r1, r7, r1 - adds r3, r1, #0 - adds r3, #0x50 - ldrh r2, [r3] - ldr r0, _0817DD84 - ands r0, r2 - strh r0, [r3] - adds r1, #0x54 - ldrb r2, [r1] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] -_0817DD56: - ldr r1, _0817DD80 - ldrh r0, [r1] - cmp r0, #0x36 - beq _0817DD60 - b _0817DF52 -_0817DD60: - lsls r1, r4, #1 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r1, r7, r1 - adds r4, r1, #0 - adds r4, #0x51 - ldrb r2, [r4] - movs r0, #0x71 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r4] - adds r1, #0x55 - ldrb r2, [r1] - movs r0, #4 - rsbs r0, r0, #0 - b _0817DE16 - .align 2, 0 -_0817DD80: .4byte gUnknown_2022C0E -_0817DD84: .4byte 0xFFFFFE3F -_0817DD88: - lsls r2, r4, #1 - adds r2, r2, r4 - lsls r2, r2, #2 - adds r2, r7, r2 - ldr r1, _0817DDC8 - ldr r0, _0817DDCC - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r1, #1 - adds r4, r2, #0 - adds r4, #0x51 - movs r0, #7 - ands r1, r0 - lsls r1, r1, #1 - ldrb r3, [r4] - movs r0, #0xf - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r4] - adds r2, #0x54 -_0817DDB6: - mov r0, sl - lsls r3, r0, #6 -_0817DDBA: - ldrb r1, [r2] - movs r0, #0x3f -_0817DDBE: - ands r0, r1 - orrs r0, r3 - strb r0, [r2] - b _0817DF52 - .align 2, 0 -_0817DDC8: .4byte gUnknown_2023D12 -_0817DDCC: .4byte gUnknown_2023EAF -_0817DDD0: - lsls r0, r6, #1 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r1, r7, r0 - adds r0, r1, #0 - adds r0, #0x51 - ldrb r0, [r0] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1d - cmp r0, #0 - bne _0817DDE8 - b _0817DF52 -_0817DDE8: - subs r2, r0, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r1, #0 - adds r0, #0x54 - ldrb r3, [r0] - lsrs r3, r3, #6 - movs r0, #0xf - b _0817DF32 -_0817DDFA: - lsls r1, r4, #1 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r1, r7, r1 - adds r4, r1, #0 - adds r4, #0x51 - ldrb r2, [r4] - movs r0, #0xf - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r4] - adds r1, #0x54 - ldrb r2, [r1] - movs r0, #0x3f -_0817DE16: - ands r0, r2 - strb r0, [r1] - b _0817DF52 -_0817DE1C: - lsls r2, r4, #1 - adds r2, r2, r4 - lsls r2, r2, #2 - adds r2, r7, r2 - ldr r1, _0817DE60 - ldr r0, _0817DE64 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r1, #1 - adds r4, r2, #0 - adds r4, #0x51 - movs r0, #7 - ands r1, r0 - lsls r1, r1, #4 - ldrb r3, [r4] - movs r0, #0x71 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r4] - adds r2, #0x55 -_0817DE4A: - movs r0, #3 - mov r1, sl - ands r1, r0 - ldrb r3, [r2] - movs r0, #4 - rsbs r0, r0, #0 -_0817DE56: - ands r0, r3 -_0817DE58: - orrs r0, r1 - strb r0, [r2] - b _0817DF52 - .align 2, 0 -_0817DE60: .4byte gUnknown_2023D12 -_0817DE64: .4byte gUnknown_2023EAF -_0817DE68: - lsls r0, r6, #1 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r1, r7, r0 - adds r0, r1, #0 - adds r0, #0x51 - ldrb r0, [r0] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1d - cmp r0, #0 - beq _0817DF52 - subs r2, r0, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r1, #0 - adds r0, #0x55 - ldrb r3, [r0] - lsls r3, r3, #0x1e - lsrs r3, r3, #0x1e - movs r0, #0x10 - b _0817DF32 -_0817DE92: - lsls r1, r6, #1 - adds r1, r1, r6 - lsls r1, r1, #2 - adds r1, r7, r1 - adds r3, r1, #0 - adds r3, #0x50 - ldrb r2, [r3] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r3] - adds r1, #0x54 - ldrb r2, [r1] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldrh r2, [r3] - ldr r0, _0817DEE0 - ands r0, r2 - strh r0, [r3] - ldrb r2, [r1] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r1, _0817DEE4 - ldr r0, _0817DEE8 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrb r2, [r0] - movs r0, #0x11 - movs r1, #0 - mov r3, sl - bl AddMovePoints - b _0817DF52 - .align 2, 0 -_0817DEE0: .4byte 0xFFFFFE3F -_0817DEE4: .4byte gUnknown_2023D12 -_0817DEE8: .4byte gUnknown_2023EAF -_0817DEEC: - lsls r0, r4, #4 - adds r4, r7, r0 - adds r0, r4, #0 - adds r0, #0x35 - ldrb r0, [r0] - lsrs r0, r0, #5 - cmp r0, #0 - beq _0817DF14 - subs r2, r0, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r0, #0x36 - ldrb r3, [r0] - lsls r3, r3, #0x1e - lsrs r3, r3, #0x1e - movs r0, #0x15 - movs r1, #0 - bl AddMovePoints -_0817DF14: - adds r0, r4, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsrs r0, r0, #5 - cmp r0, #0 - beq _0817DF52 - subs r2, r0, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r0, #0x3e - ldrb r3, [r0] - lsls r3, r3, #0x1e - lsrs r3, r3, #0x1e - movs r0, #0x15 -_0817DF32: - movs r1, #0 - bl AddMovePoints - b _0817DF52 -_0817DF3A: - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r7, r0 - adds r0, #0x57 - ldrb r2, [r0] - movs r1, #0x1f - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #0x1c -_0817DF4E: - orrs r1, r2 -_0817DF50: - strb r1, [r0] -_0817DF52: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0817D9BC - - thumb_func_start sub_0817DF64 -sub_0817DF64: @ 0x0817DF64 - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - movs r3, #0 - ldr r4, _0817DF98 - ldr r6, _0817DF9C - adds r2, r4, #0 - adds r1, r4, #0 -_0817DF74: - ldrh r0, [r1] - cmp r0, r5 - beq _0817DF86 - adds r2, #2 - adds r1, #2 - adds r3, #1 - ldrh r0, [r2] - cmp r0, r6 - bne _0817DF74 -_0817DF86: - lsls r0, r3, #1 - adds r0, r0, r4 - ldrh r1, [r0] - ldr r0, _0817DF9C - cmp r1, r0 - beq _0817DFA0 - movs r0, #0 - b _0817DFA2 - .align 2, 0 -_0817DF98: .4byte gUnknown_85D3304 -_0817DF9C: .4byte 0x0000FFFF -_0817DFA0: - movs r0, #1 -_0817DFA2: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_0817DF64 - - thumb_func_start BattleTv_SetDataBasedOnMove -BattleTv_SetDataBasedOnMove: @ 0x0817DFA8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - str r2, [sp, #4] - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp] - ldr r0, _0817E020 - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - bne _0817DFCE - b _0817E1BC -_0817DFCE: - ldr r0, _0817E024 - ldr r0, [r0] - movs r1, #0x81 - lsls r1, r1, #2 - adds r1, r0, r1 - str r1, [sp, #8] - ldr r2, _0817E028 - mov sl, r2 - ldrb r0, [r2] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldr r0, _0817E02C - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - mov r1, sl - ldrb r0, [r1] - adds r1, r7, #0 - bl GetBattlerMoveSlotId - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #3 - bls _0817E030 - mov r2, sb - lsls r0, r2, #1 - add r0, sb - lsls r0, r0, #2 - ldr r1, [sp, #8] - adds r0, r1, r0 - adds r0, #0x57 - ldrb r1, [r0] - movs r2, #0x1e - orrs r1, r2 - strb r1, [r0] - b _0817E1BC - .align 2, 0 -_0817E020: .4byte gUnknown_2022C90 -_0817E024: .4byte gUnknown_2024140 -_0817E028: .4byte gUnknown_2023EAF -_0817E02C: .4byte gUnknown_2023EB0 -_0817E030: - mov r2, sl - ldrb r0, [r2] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x19 - lsls r0, r0, #3 - lsls r4, r4, #4 - adds r0, r0, r4 - ldr r1, [sp, #8] - adds r0, r1, r0 - mov r2, sl - ldrb r1, [r2] - lsls r1, r1, #1 - ldr r2, _0817E1CC - adds r1, r1, r2 - ldrh r2, [r1] - adds r2, #1 - adds r0, #0x35 - lsls r2, r2, #5 - ldrb r3, [r0] - movs r1, #0x1f - ands r1, r3 - orrs r1, r2 - strb r1, [r0] - mov r1, sl - ldrb r0, [r1] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x19 - lsls r0, r0, #3 - adds r0, r0, r4 - ldr r2, [sp, #8] - adds r0, r2, r0 - adds r0, #0x36 - movs r1, #3 - mov r8, r6 - mov r2, r8 - ands r2, r1 - mov r8, r2 - ldrb r2, [r0] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r2 - mov r2, r8 - orrs r1, r2 - strb r1, [r0] - mov r1, sb - lsls r0, r1, #1 - add r0, sb - lsls r0, r0, #2 - ldr r2, [sp, #8] - adds r0, r2, r0 - str r0, [sp, #0xc] - adds r5, r0, #0 - adds r5, #0x53 - lsls r2, r6, #6 - ldrb r1, [r5] - movs r0, #0x3f - ands r0, r1 - orrs r0, r2 - strb r0, [r5] - ldr r1, _0817E1D0 - lsls r4, r7, #1 - adds r0, r4, r7 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r2, [r0] - movs r0, #0 - adds r1, r6, #0 - movs r3, #0 - bl AddMovePoints - ldr r0, [sp] - adds r1, r7, #0 - adds r2, r6, #0 - bl AddPointsBasedOnWeather - ldr r0, [sp, #4] - ldrb r1, [r0, #0x12] - movs r0, #0xf - ands r0, r1 - str r4, [sp, #0x10] - cmp r0, #0 - beq _0817E0E8 - movs r0, #7 - adds r1, r7, #0 - adds r2, r6, #0 - movs r3, #0 - bl AddMovePoints -_0817E0E8: - ldr r0, _0817E1D4 - cmp r7, r0 - bne _0817E11E - mov r1, sl - ldrb r0, [r1] - lsls r0, r0, #1 - ldr r2, _0817E1CC - adds r0, r0, r2 - ldrh r1, [r0] - adds r1, #1 - movs r0, #7 - ands r1, r0 - ldrb r2, [r5] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5] - ldr r2, [sp, #0xc] - adds r2, #0x56 - ldrb r1, [r2] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - mov r1, r8 - orrs r0, r1 - strb r0, [r2] -_0817E11E: - cmp r7, #0x78 - beq _0817E126 - cmp r7, #0x99 - bne _0817E17E -_0817E126: - movs r0, #1 - mov r2, sb - eors r0, r2 - lsls r2, r0, #1 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r0, [sp, #8] - adds r2, r0, r2 - mov r1, sl - ldrb r0, [r1] - lsls r0, r0, #1 - ldr r1, _0817E1CC - adds r0, r0, r1 - ldrh r1, [r0] - adds r1, #1 - adds r4, r2, #0 - adds r4, #0x58 - movs r0, #7 - ands r1, r0 - lsls r1, r1, #3 - ldrb r3, [r4] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - mov r1, r8 - lsls r3, r1, #1 - movs r1, #7 - rsbs r1, r1, #0 - ands r0, r1 - orrs r0, r3 - strb r0, [r4] - adds r2, #0x57 - ldrb r1, [r2] - movs r0, #0x1f - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x1a - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4] - movs r1, #1 - orrs r0, r1 - strb r0, [r4] -_0817E17E: - ldr r1, _0817E1D0 - ldr r2, [sp, #0x10] - adds r0, r2, r7 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r4, [r0, #2] - ldrb r5, [r0, #1] - movs r0, #0xd - adds r1, r4, #0 - adds r2, r5, #0 - movs r3, #0 - bl AddMovePoints - movs r0, #0xe - adds r1, r4, #0 - adds r2, r5, #0 - movs r3, #0 - bl AddMovePoints - movs r0, #0xb - adds r1, r4, #0 - movs r2, #0 - movs r3, #0 - bl AddMovePoints - movs r0, #0xc - adds r1, r4, #0 - movs r2, #0 - movs r3, #0 - bl AddMovePoints -_0817E1BC: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0817E1CC: .4byte gUnknown_2023D12 -_0817E1D0: .4byte gUnknown_82ED220 -_0817E1D4: .4byte 0x00000111 - thumb_func_end BattleTv_SetDataBasedOnMove - - thumb_func_start BattleTv_SetDataBasedOnAnimation -BattleTv_SetDataBasedOnAnimation: @ 0x0817E1D8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _0817E20C - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _0817E29A - ldr r0, _0817E210 - ldr r0, [r0] - movs r1, #0x81 - lsls r1, r1, #2 - adds r4, r0, r1 - ldr r0, _0817E214 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r5, #0x12 - beq _0817E218 - cmp r5, #0x13 - beq _0817E256 - b _0817E29A - .align 2, 0 -_0817E20C: .4byte gUnknown_2022C90 -_0817E210: .4byte gUnknown_2024140 -_0817E214: .4byte gUnknown_2023EAF -_0817E218: - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r4, r4, r0 - ldr r0, [r4, #0x50] - lsls r0, r0, #0xe - lsrs r0, r0, #0x1d - cmp r0, #0 - beq _0817E29A - subs r0, #1 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #0x55 - ldrb r3, [r1] - lsls r3, r3, #0x1c - lsrs r3, r3, #0x1e - adds r3, r3, r0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #2 - movs r1, #0 - bl AddMovePoints - adds r2, r4, #0 - adds r2, #0x57 - ldrb r1, [r2] - movs r0, #0x1f - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x10 - b _0817E296 -_0817E256: - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r4, r4, r0 - adds r0, r4, #0 - adds r0, #0x52 - ldrb r0, [r0] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1d - cmp r0, #0 - beq _0817E29A - subs r0, #1 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #0x55 - ldrb r3, [r1] - lsls r3, r3, #0x1a - lsrs r3, r3, #0x1e - adds r3, r3, r0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #2 - movs r1, #1 - bl AddMovePoints - adds r2, r4, #0 - adds r2, #0x57 - ldrb r1, [r2] - movs r0, #0x1f - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x12 -_0817E296: - orrs r0, r1 - strb r0, [r2] -_0817E29A: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end BattleTv_SetDataBasedOnAnimation - - thumb_func_start TryPutLinkBattleTvShowOnAir -TryPutLinkBattleTvShowOnAir: @ 0x0817E2A0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - movs r0, #0 - str r0, [sp] - movs r1, #0 - str r1, [sp, #4] - movs r2, #0 - str r2, [sp, #8] - ldr r3, _0817E428 - str r3, [sp, #0xc] - movs r4, #0 - str r4, [sp, #0x10] - movs r7, #0 - str r7, [sp, #0x14] - mov r8, r0 - ldr r0, _0817E42C - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0xb3 - ldrb r0, [r0] - cmp r0, #0 - beq _0817E2D6 - b _0817E51C -_0817E2D6: - movs r2, #0xd2 - lsls r2, r2, #1 - adds r2, r2, r1 - mov sl, r2 - movs r6, #0 -_0817E2E0: - movs r0, #0x64 - adds r4, r6, #0 - muls r4, r0, r4 - ldr r0, _0817E430 - adds r0, r4, r0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - cmp r0, #0 - beq _0817E300 - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 -_0817E300: - ldr r5, _0817E434 - adds r0, r4, r5 - movs r1, #0xb - movs r2, #0 - bl GetMonData - cmp r0, #0 - beq _0817E316 - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 -_0817E316: - adds r6, #1 - cmp r6, #5 - ble _0817E2E0 - ldr r0, _0817E438 - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - bne _0817E32A - b _0817E51C -_0817E32A: - cmp r8, r7 - beq _0817E330 - b _0817E51C -_0817E330: - movs r6, #0 - lsls r3, r6, #1 - str r3, [sp, #0x18] - movs r4, #0x64 - mov r8, r4 -_0817E33A: - mov r1, r8 - muls r1, r6, r1 - ldr r0, _0817E430 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - adds r0, r6, #1 - mov sb, r0 - cmp r7, #0 - beq _0817E39A - adds r0, r4, #0 - movs r1, #0x2d - movs r2, #0 - bl GetMonData - cmp r0, #0 - bne _0817E39A - movs r4, #0 - lsls r0, r6, #3 - mov r2, sl - adds r1, r0, r2 - movs r3, #3 -_0817E370: - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - ldrh r4, [r1] - adds r0, r0, r4 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r1, #2 - subs r3, #1 - cmp r3, #0 - bge _0817E370 - ldr r1, [sp, #8] - lsls r0, r1, #0x10 - lsls r1, r4, #0x10 - cmp r0, r1 - bge _0817E39A - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x10] - lsrs r1, r1, #0x10 - str r1, [sp, #8] - str r7, [sp] -_0817E39A: - mov r0, r8 - muls r0, r6, r0 - ldr r2, _0817E434 - adds r4, r0, r2 - adds r0, r4, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - ldr r3, [sp, #8] - lsls r3, r3, #0x10 - str r3, [sp, #0x1c] - cmp r7, #0 - beq _0817E44C - adds r0, r4, #0 - movs r1, #0x2d - movs r2, #0 - bl GetMonData - cmp r0, #0 - bne _0817E44C - movs r4, #0 - ldr r0, [sp, #0xc] - lsls r2, r0, #0x10 - movs r3, #1 - lsls r1, r3, #1 - adds r1, #1 - lsls r1, r1, #4 - lsls r0, r6, #3 - adds r0, r0, r1 - mov r3, sl - adds r1, r0, r3 - movs r3, #3 -_0817E3E0: - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - ldrh r4, [r1] - adds r0, r0, r4 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r1, #2 - subs r3, #1 - cmp r3, #0 - bge _0817E3E0 - asrs r1, r2, #0x10 - lsls r5, r4, #0x10 - asrs r0, r5, #0x10 - cmp r1, r0 - bne _0817E43C - mov r0, r8 - muls r0, r6, r0 - ldr r1, _0817E434 - adds r0, r0, r1 - movs r1, #0x19 - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - ldr r2, [sp, #0x14] - mov r0, r8 - muls r0, r2, r0 - ldr r3, _0817E434 - adds r0, r0, r3 - movs r1, #0x19 - movs r2, #0 - bl GetMonData - cmp r4, r0 - bls _0817E44C - b _0817E440 - .align 2, 0 -_0817E428: .4byte 0x00007FFF -_0817E42C: .4byte gUnknown_2024140 -_0817E430: .4byte gUnknown_2024190 -_0817E434: .4byte gUnknown_20243E8 -_0817E438: .4byte gUnknown_2022C90 -_0817E43C: - cmp r1, r0 - ble _0817E44C -_0817E440: - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x14] - lsrs r5, r5, #0x10 - str r5, [sp, #0xc] - str r7, [sp, #4] -_0817E44C: - mov r6, sb - cmp r6, #5 - bgt _0817E454 - b _0817E33A -_0817E454: - movs r4, #0 - movs r6, #0 - movs r3, #0 - ldr r5, _0817E4C0 - ldr r7, [sp, #0x10] - lsls r0, r7, #3 - mov r1, sl - adds r2, r0, r1 -_0817E464: - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - movs r7, #0 - ldrsh r1, [r2, r7] - cmp r0, r1 - bge _0817E474 - ldrh r4, [r2] - adds r6, r3, #0 -_0817E474: - adds r2, #2 - adds r3, #1 - cmp r3, #3 - ble _0817E464 - movs r0, #0x64 - ldr r1, [sp, #0x10] - muls r0, r1, r0 - adds r0, r0, r5 - adds r1, r6, #0 - adds r1, #0xd - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r2, [sp, #0x1c] - cmp r2, #0 - beq _0817E51C - cmp r4, #0 - beq _0817E51C - ldr r0, _0817E4C4 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0817E508 - ldr r3, [sp, #0x10] - cmp r3, #2 - bhi _0817E4CC - ldr r0, _0817E4C8 - adds r0, #0x25 - ldrb r0, [r0] - bl GetLinkTrainerFlankId - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0817E4DC - b _0817E51C - .align 2, 0 -_0817E4C0: .4byte gUnknown_2024190 -_0817E4C4: .4byte gUnknown_2022C90 -_0817E4C8: .4byte gUnknown_2024118 -_0817E4CC: - ldr r0, _0817E504 - adds r0, #0x25 - ldrb r0, [r0] - bl GetLinkTrainerFlankId - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0817E51C -_0817E4DC: - movs r3, #0 - ldr r7, [sp, #0x14] - cmp r7, #2 - bls _0817E4E6 - movs r3, #1 -_0817E4E6: - lsls r0, r3, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0817E504 - adds r1, #0x25 - ldrb r1, [r1] - bl sub_0806EA10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r4, #0 - ldr r2, [sp] - ldr r3, [sp, #4] - bl sub_080ED694 - b _0817E51C - .align 2, 0 -_0817E504: .4byte gUnknown_2024118 -_0817E508: - ldr r0, _0817E52C - adds r0, #0x25 - ldrb r1, [r0] - movs r0, #1 - eors r0, r1 - adds r1, r4, #0 - ldr r2, [sp] - ldr r3, [sp, #4] - bl sub_080ED694 -_0817E51C: - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0817E52C: .4byte gUnknown_2024118 - thumb_func_end TryPutLinkBattleTvShowOnAir - - thumb_func_start AddMovePoints -AddMovePoints: @ 0x0817E530 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov sb, r3 - ldr r0, _0817E58C - ldr r0, [r0] - movs r1, #0xd2 - lsls r1, r1, #1 - adds r1, r1, r0 - mov r8, r1 - movs r2, #0x81 - lsls r2, r2, #2 - adds r7, r0, r2 - ldr r0, _0817E590 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0817E594 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - mov r0, sl - cmp r0, #0x1b - bls _0817E580 - b _0817E918 -_0817E580: - lsls r0, r0, #2 - ldr r1, _0817E598 - adds r1, r0, r1 - ldr r1, [r1] - mov ip, r0 - mov pc, r1 - .align 2, 0 -_0817E58C: .4byte gUnknown_2024140 -_0817E590: .4byte gUnknown_2023EAF -_0817E594: .4byte gUnknown_2023EB0 -_0817E598: .4byte _0817E59C -_0817E59C: @ jump table - .4byte _0817E60C @ case 0 - .4byte _0817E60C @ case 1 - .4byte _0817E708 @ case 2 - .4byte _0817E648 @ case 3 - .4byte _0817E648 @ case 4 - .4byte _0817E648 @ case 5 - .4byte _0817E648 @ case 6 - .4byte _0817E648 @ case 7 - .4byte _0817E74C @ case 8 - .4byte _0817E74C @ case 9 - .4byte _0817E778 @ case 10 - .4byte _0817E79C @ case 11 - .4byte _0817E824 @ case 12 - .4byte _0817E88C @ case 13 - .4byte _0817E8D4 @ case 14 - .4byte _0817E74C @ case 15 - .4byte _0817E74C @ case 16 - .4byte _0817E72C @ case 17 - .4byte _0817E60C @ case 18 - .4byte _0817E6B6 @ case 19 - .4byte _0817E6F4 @ case 20 - .4byte _0817E74C @ case 21 - .4byte _0817E60C @ case 22 - .4byte _0817E60C @ case 23 - .4byte _0817E60C @ case 24 - .4byte _0817E60C @ case 25 - .4byte _0817E60C @ case 26 - .4byte _0817E60C @ case 27 -_0817E60C: - ldr r1, _0817E63C - ldr r0, _0817E640 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - lsls r1, r1, #2 - adds r1, r1, r6 - lsls r1, r1, #1 - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #4 - adds r1, r1, r0 - add r1, r8 - ldr r0, _0817E644 - add r0, ip - ldr r2, [r0] - lsls r0, r5, #1 - adds r0, r0, r2 - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r0, r2 - b _0817E916 - .align 2, 0 -_0817E63C: .4byte gUnknown_2023D12 -_0817E640: .4byte gUnknown_2023EAF -_0817E644: .4byte gUnknown_85D3294 -_0817E648: - ldr r1, _0817E67C - add r1, ip - ldr r7, _0817E680 - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r2, r0, #4 - ldr r4, _0817E684 - ldr r1, [r1] - ldr r3, _0817E688 - ldrh r0, [r1] - cmp r6, r0 - bne _0817E68C - ldrb r0, [r3] - lsls r0, r0, #1 - adds r0, r0, r7 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r5 - lsls r0, r0, #1 - adds r0, r0, r2 - add r0, r8 - ldrh r1, [r1, #2] - ldrh r2, [r0] - adds r1, r1, r2 - strh r1, [r0] - b _0817E918 - .align 2, 0 -_0817E67C: .4byte gUnknown_85D3294 -_0817E680: .4byte gUnknown_2023D12 -_0817E684: .4byte 0x0000FFFF -_0817E688: .4byte gUnknown_2023EAF -_0817E68C: - adds r1, #4 - ldrh r0, [r1] - cmp r0, r4 - bne _0817E696 - b _0817E918 -_0817E696: - cmp r6, r0 - bne _0817E68C - ldrb r0, [r3] - lsls r0, r0, #1 - adds r0, r0, r7 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r5 - lsls r0, r0, #1 - adds r0, r0, r2 - add r0, r8 - ldrh r1, [r1, #2] - ldrh r5, [r0] - adds r1, r1, r5 - strh r1, [r0] - b _0817E918 -_0817E6B6: - movs r0, #1 - adds r1, r5, #0 - eors r1, r0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r7, r0 - adds r0, #0x57 - ldrb r2, [r0] - movs r1, #0x1f - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - mov r0, sb - lsls r1, r0, #1 - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #4 - adds r1, r1, r0 - add r1, r8 - ldr r0, _0817E6F0 - add r0, ip - ldr r2, [r0] - lsls r0, r6, #1 - adds r0, r0, r2 - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r0, r2 - b _0817E916 - .align 2, 0 -_0817E6F0: .4byte gUnknown_85D3294 -_0817E6F4: - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r0, r7, r0 - adds r0, #0x57 - ldrb r2, [r0] - movs r1, #0x1f - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] -_0817E708: - mov r0, sb - lsls r1, r0, #1 - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #4 - adds r1, r1, r0 - add r1, r8 - ldr r0, _0817E728 - add r0, ip - ldr r2, [r0] - lsls r0, r6, #1 - adds r0, r0, r2 - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r0, r2 - b _0817E916 - .align 2, 0 -_0817E728: .4byte gUnknown_85D3294 -_0817E72C: - lsls r1, r5, #2 - add r1, sb - lsls r1, r1, #1 - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #4 - adds r1, r1, r0 - add r1, r8 - ldr r0, _0817E748 - add r0, ip - ldr r2, [r0] - lsls r0, r6, #1 - adds r0, r0, r2 - b _0817E910 - .align 2, 0 -_0817E748: .4byte gUnknown_85D3294 -_0817E74C: - lsls r2, r5, #2 - add r2, sb - lsls r2, r2, #1 - movs r1, #1 - eors r1, r4 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #4 - adds r2, r2, r0 - add r2, r8 - ldr r0, _0817E774 - add r0, ip - ldr r1, [r0] - lsls r0, r6, #1 - adds r0, r0, r1 - ldrh r0, [r0] - ldrh r1, [r2] - adds r0, r0, r1 - strh r0, [r2] - b _0817E918 - .align 2, 0 -_0817E774: .4byte gUnknown_85D3294 -_0817E778: - lsls r1, r5, #2 - add r1, sb - lsls r1, r1, #1 - lsls r0, r6, #1 - adds r0, r0, r6 - lsls r0, r0, #4 - adds r1, r1, r0 - add r1, r8 - ldr r0, _0817E798 - add r0, ip - ldr r0, [r0] - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r0, r2 - b _0817E916 - .align 2, 0 -_0817E798: .4byte gUnknown_85D3294 -_0817E79C: - lsls r0, r3, #4 - adds r2, r7, r0 - adds r0, r2, #0 - adds r0, #0x34 - ldrb r0, [r0] - lsls r0, r0, #0x1d - lsrs r1, r0, #0x1d - adds r4, r2, #0 - adds r4, #0x3c - ldrb r0, [r4] - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1d - cmn r1, r0 - bne _0817E7BA - b _0817E918 -_0817E7BA: - cmp r6, #0xa - beq _0817E7C0 - b _0817E918 -_0817E7C0: - cmp r1, #0 - beq _0817E7EC - subs r1, #1 - lsls r1, r1, #2 - adds r0, r2, #0 - adds r0, #0x33 - ldrb r0, [r0] - lsrs r0, r0, #6 - adds r1, r1, r0 - lsls r1, r1, #1 - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #4 - adds r1, r1, r0 - add r1, r8 - ldr r0, _0817E820 - add r0, ip - ldr r0, [r0] - ldrh r0, [r0] - ldrh r5, [r1] - adds r0, r0, r5 - strh r0, [r1] -_0817E7EC: - ldrb r0, [r4] - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1d - cmp r0, #0 - bne _0817E7F8 - b _0817E918 -_0817E7F8: - subs r1, r0, #1 - lsls r1, r1, #2 - adds r0, r2, #0 - adds r0, #0x3b - ldrb r0, [r0] - lsrs r0, r0, #6 - adds r1, r1, r0 - lsls r1, r1, #1 - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #4 - adds r1, r1, r0 - add r1, r8 - ldr r0, _0817E820 - add r0, ip - ldr r0, [r0] - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r0, r2 - b _0817E916 - .align 2, 0 -_0817E820: .4byte gUnknown_85D3294 -_0817E824: - lsls r1, r3, #4 - adds r1, r7, r1 - adds r0, r1, #0 - adds r0, #0x34 - ldrb r4, [r0] - lsls r0, r4, #0x1a - lsrs r2, r0, #0x1d - adds r5, r1, #0 - adds r5, #0x3c - ldrb r0, [r5] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1d - cmn r2, r0 - beq _0817E918 - cmp r6, #0xd - bne _0817E918 - cmp r2, #0 - beq _0817E86A - subs r1, r2, #1 - lsls r1, r1, #2 - lsrs r0, r4, #6 - adds r1, r1, r0 - lsls r1, r1, #1 - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #4 - adds r1, r1, r0 - add r1, r8 - ldr r0, _0817E888 - add r0, ip - ldr r0, [r0] - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] -_0817E86A: - ldrb r2, [r5] - lsls r0, r2, #0x1a - lsrs r0, r0, #0x1d - cmp r0, #0 - beq _0817E918 - subs r1, r0, #1 - lsls r1, r1, #2 - lsrs r0, r2, #6 - adds r1, r1, r0 - lsls r1, r1, #1 - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #4 - b _0817E906 - .align 2, 0 -_0817E888: .4byte gUnknown_85D3294 -_0817E88C: - cmp r6, #8 - bhi _0817E918 - cmp r5, #0 - beq _0817E918 - lsls r0, r3, #1 - adds r3, r0, r3 - lsls r0, r3, #2 - adds r2, r7, r0 - adds r0, r2, #0 - adds r0, #0x50 - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1d - cmp r0, #0 - beq _0817E918 - subs r1, r0, #1 - lsls r1, r1, #2 - adds r0, r2, #0 - adds r0, #0x54 - ldrb r0, [r0] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1e - adds r1, r1, r0 - lsls r1, r1, #1 - lsls r0, r3, #4 - adds r1, r1, r0 - add r1, r8 - ldr r0, _0817E8D0 - add r0, ip - ldr r0, [r0] - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r0, r2 - b _0817E916 - .align 2, 0 -_0817E8D0: .4byte gUnknown_85D3294 -_0817E8D4: - cmp r6, #8 - bls _0817E918 - cmp r5, #0 - beq _0817E918 - lsls r0, r3, #1 - adds r3, r0, r3 - lsls r0, r3, #2 - adds r2, r7, r0 - adds r0, r2, #0 - adds r0, #0x50 - ldrh r0, [r0] - lsls r0, r0, #0x17 - lsrs r0, r0, #0x1d - cmp r0, #0 - beq _0817E918 - subs r1, r0, #1 - lsls r1, r1, #2 - adds r0, r2, #0 - adds r0, #0x54 - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - adds r1, r1, r0 - lsls r1, r1, #1 - lsls r0, r3, #4 -_0817E906: - adds r1, r1, r0 - add r1, r8 - ldr r0, _0817E928 - add r0, ip - ldr r0, [r0] -_0817E910: - ldrh r0, [r0] - ldrh r5, [r1] - adds r0, r0, r5 -_0817E916: - strh r0, [r1] -_0817E918: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0817E928: .4byte gUnknown_85D3294 - thumb_func_end AddMovePoints - - thumb_func_start AddPointsOnFainting -AddPointsOnFainting: @ 0x0817E92C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _0817E988 - ldr r0, [r0] - movs r1, #0x81 - lsls r1, r1, #2 - adds r5, r0, r1 - ldr r3, _0817E98C - mov r8, r3 - ldrb r0, [r3] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0817E990 - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r6, r5, r0 - adds r0, r6, #0 - adds r0, #0x57 - ldrb r0, [r0] - lsrs r3, r0, #5 - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1c - cmp r0, #0 - bne _0817E974 - b _0817ECFC -_0817E974: - subs r0, #1 - cmp r0, #0xe - bls _0817E97C - b _0817ED68 -_0817E97C: - lsls r0, r0, #2 - ldr r1, _0817E994 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0817E988: .4byte gUnknown_2024140 -_0817E98C: .4byte gUnknown_2023EAF -_0817E990: .4byte gUnknown_2023EB0 -_0817E994: .4byte _0817E998 -_0817E998: @ jump table - .4byte _0817E9D4 @ case 0 - .4byte _0817EA00 @ case 1 - .4byte _0817EA2C @ case 2 - .4byte _0817EA80 @ case 3 - .4byte _0817EAAA @ case 4 - .4byte _0817EAD2 @ case 5 - .4byte _0817EAFA @ case 6 - .4byte _0817EB18 @ case 7 - .4byte _0817EB46 @ case 8 - .4byte _0817EB78 @ case 9 - .4byte _0817EC00 @ case 10 - .4byte _0817EC2E @ case 11 - .4byte _0817EC6E @ case 12 - .4byte _0817ECC8 @ case 13 - .4byte _0817ED68 @ case 14 -_0817E9D4: - lsls r0, r3, #3 - lsls r1, r4, #4 - adds r0, r0, r1 - adds r3, r5, r0 - adds r0, r3, #0 - adds r0, #0x30 - ldrb r0, [r0] - lsls r0, r0, #0x1d - lsrs r1, r0, #0x1d - cmp r1, #0 - bne _0817E9EC - b _0817ED68 -_0817E9EC: - movs r0, #1 - adds r2, r4, #0 - eors r2, r0 - subs r1, #1 - lsls r1, r1, #2 - adds r0, r3, #0 - adds r0, #0x32 - ldrb r3, [r0] - lsls r3, r3, #0x1c - b _0817ED30 -_0817EA00: - lsls r0, r3, #3 - lsls r1, r4, #4 - adds r0, r0, r1 - adds r3, r5, r0 - adds r0, r3, #0 - adds r0, #0x30 - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r1, r0, #0x1d - cmp r1, #0 - bne _0817EA18 - b _0817ED68 -_0817EA18: - movs r0, #1 - adds r2, r4, #0 - eors r2, r0 - subs r1, #1 - lsls r1, r1, #2 - adds r0, r3, #0 - adds r0, #0x32 - ldrb r3, [r0] - lsls r3, r3, #0x1a - b _0817ED30 -_0817EA2C: - lsls r0, r3, #2 - lsls r1, r4, #1 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r0, r0, r1 - adds r5, r5, r0 - ldrb r0, [r5] - lsls r0, r0, #0x1d - lsrs r1, r0, #0x1d - cmp r1, #0 - beq _0817EA60 - movs r0, #1 - adds r2, r4, #0 - eors r2, r0 - subs r0, r1, #1 - lsls r0, r0, #2 - ldrb r3, [r5, #2] - lsls r3, r3, #0x1c - lsrs r3, r3, #0x1e - adds r3, r3, r0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #0x13 - movs r1, #0 - bl AddMovePoints -_0817EA60: - ldrb r0, [r5] - lsls r0, r0, #0x1a - lsrs r1, r0, #0x1d - cmp r1, #0 - bne _0817EA6C - b _0817ED68 -_0817EA6C: - movs r0, #1 - adds r2, r4, #0 - eors r2, r0 - subs r0, r1, #1 - lsls r0, r0, #2 - ldrb r3, [r5, #2] - lsls r3, r3, #0x1a - lsrs r3, r3, #0x1e - adds r3, r3, r0 - b _0817ED34 -_0817EA80: - lsls r0, r3, #2 - lsls r1, r4, #1 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r0, r0, r1 - adds r1, r5, r0 - ldrh r0, [r1] - lsls r0, r0, #0x17 - lsrs r3, r0, #0x1d - cmp r3, #0 - bne _0817EA98 - b _0817ED68 -_0817EA98: - movs r0, #1 - adds r2, r4, #0 - eors r2, r0 - subs r0, r3, #1 - lsls r0, r0, #2 - ldrb r3, [r1, #2] - lsrs r3, r3, #6 - adds r3, r3, r0 - b _0817ED34 -_0817EAAA: - lsls r0, r3, #3 - lsls r1, r4, #4 - adds r0, r0, r1 - adds r3, r5, r0 - ldrh r0, [r3, #0x30] - lsls r0, r0, #0x17 - lsrs r1, r0, #0x1d - cmp r1, #0 - bne _0817EABE - b _0817ED68 -_0817EABE: - movs r0, #1 - adds r2, r4, #0 - eors r2, r0 - subs r1, #1 - lsls r1, r1, #2 - adds r0, r3, #0 - adds r0, #0x32 - ldrb r3, [r0] - lsrs r3, r3, #6 - b _0817ED32 -_0817EAD2: - lsls r0, r3, #3 - lsls r1, r4, #4 - adds r0, r0, r1 - adds r3, r5, r0 - adds r0, r3, #0 - adds r0, #0x31 - ldrb r0, [r0] - lsls r0, r0, #0x1c - lsrs r1, r0, #0x1d - cmp r1, #0 - bne _0817EAEA - b _0817ED68 -_0817EAEA: - movs r0, #1 - adds r2, r4, #0 - eors r2, r0 - subs r1, #1 - lsls r1, r1, #2 - adds r0, r3, #0 - adds r0, #0x33 - b _0817ED2C -_0817EAFA: - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r3, r5, r0 - adds r0, r3, #0 - adds r0, #0x50 - ldrb r0, [r0] - lsls r0, r0, #0x1d - lsrs r1, r0, #0x1d - cmp r1, #0 - bne _0817EB12 - b _0817ED68 -_0817EB12: - movs r0, #1 - adds r2, r4, #0 - b _0817ED22 -_0817EB18: - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r3, r5, r0 - ldr r0, [r3, #0x50] - lsls r0, r0, #0xe - lsrs r0, r0, #0x1d - cmp r0, #0 - bne _0817EB2C - b _0817ED68 -_0817EB2C: - adds r2, r4, #0 - subs r1, r0, #1 - lsls r1, r1, #2 - adds r0, r3, #0 - adds r0, #0x55 - ldrb r3, [r0] - lsls r3, r3, #0x1c - lsrs r3, r3, #0x1e - adds r3, r3, r1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #0x14 - b _0817ED3A -_0817EB46: - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r3, r5, r0 - adds r0, r3, #0 - adds r0, #0x52 - ldrb r0, [r0] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1d - cmp r0, #0 - bne _0817EB5E - b _0817ED68 -_0817EB5E: - adds r2, r4, #0 - subs r1, r0, #1 - lsls r1, r1, #2 - adds r0, r3, #0 - adds r0, #0x55 - ldrb r3, [r0] - lsls r3, r3, #0x1a - lsrs r3, r3, #0x1e - adds r3, r3, r1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #0x14 - b _0817ED3A -_0817EB78: - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r3, r5, r0 - adds r0, r3, #0 - adds r0, #0x58 - ldrb r0, [r0] - lsls r0, r0, #0x19 - cmp r0, #0 - bge _0817EBC0 - adds r0, r3, #0 - adds r0, #0x52 - ldrb r0, [r0] - lsrs r0, r0, #5 - subs r6, r0, #1 - ldr r1, _0817EBF8 - ldr r0, _0817EBFC - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r6, r0 - beq _0817EBC0 - adds r2, r4, #0 - lsls r1, r6, #2 - adds r0, r3, #0 - adds r0, #0x55 - ldrb r3, [r0] - lsrs r3, r3, #6 - adds r3, r3, r1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #0x13 - movs r1, #0 - bl AddMovePoints -_0817EBC0: - movs r1, #1 - eors r1, r4 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r5, r0 - adds r0, r1, #0 - adds r0, #0x58 - ldrb r0, [r0] - lsls r0, r0, #0x19 - cmp r0, #0 - blt _0817EBDA - b _0817ED68 -_0817EBDA: - movs r0, #1 - adds r2, r4, #0 - eors r2, r0 - adds r0, r1, #0 - adds r0, #0x52 - ldrb r0, [r0] - lsrs r0, r0, #5 - subs r0, #1 - lsls r0, r0, #2 - adds r1, #0x55 - ldrb r3, [r1] - lsrs r3, r3, #6 - adds r3, r3, r0 - b _0817ED34 - .align 2, 0 -_0817EBF8: .4byte gUnknown_2023D12 -_0817EBFC: .4byte gUnknown_2023EAF -_0817EC00: - movs r0, #1 - eors r0, r4 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r5, r1 - adds r1, #0x56 - ldrb r0, [r1] - lsls r0, r0, #0x19 - lsrs r5, r0, #0x1d - cmp r5, #0 - bne _0817EC1A - b _0817ED68 -_0817EC1A: - movs r0, #1 - adds r2, r4, #0 - eors r2, r0 - subs r0, r5, #1 - lsls r0, r0, #2 - ldrh r3, [r1] - lsls r3, r3, #0x17 - lsrs r3, r3, #0x1e - adds r3, r3, r0 - b _0817ED34 -_0817EC2E: - lsls r2, r4, #4 - movs r1, #1 - adds r0, r4, #0 - eors r0, r1 - lsls r6, r0, #0x18 - adds r0, r5, #0 - adds r0, #0x30 - adds r4, r2, r0 - movs r5, #1 -_0817EC40: - ldr r0, [r4] - lsls r0, r0, #0xe - lsrs r0, r0, #0x1d - cmp r0, #0 - beq _0817EC64 - subs r0, #1 - lsls r0, r0, #2 - ldrb r3, [r4, #3] - lsls r3, r3, #0x1a - lsrs r3, r3, #0x1e - adds r3, r3, r0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #0x13 - movs r1, #0 - lsrs r2, r6, #0x18 - bl AddMovePoints -_0817EC64: - adds r4, #8 - subs r5, #1 - cmp r5, #0 - bge _0817EC40 - b _0817ED68 -_0817EC6E: - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r5, r0 - adds r0, #0x58 - ldrb r3, [r0] - lsls r0, r3, #0x1f - cmp r0, #0 - beq _0817EC9C - adds r2, r4, #0 - lsls r0, r3, #0x1a - lsrs r0, r0, #0x1d - subs r0, #1 - lsls r0, r0, #2 - lsls r3, r3, #0x1d - lsrs r3, r3, #0x1e - adds r3, r3, r0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #0x13 - movs r1, #0 - bl AddMovePoints -_0817EC9C: - movs r0, #1 - eors r0, r4 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r5, r1 - adds r1, #0x58 - ldrb r1, [r1] - lsls r0, r1, #0x1f - cmp r0, #0 - beq _0817ED68 - movs r0, #1 - adds r2, r4, #0 - eors r2, r0 - lsls r0, r1, #0x1a - lsrs r0, r0, #0x1d - subs r0, #1 - lsls r0, r0, #2 - lsls r3, r1, #0x1d - lsrs r3, r3, #0x1e - adds r3, r3, r0 - b _0817ED34 -_0817ECC8: - cmp r7, #1 - bne _0817ED68 - adds r2, r4, #0 - ldr r1, _0817ECF4 - ldr r0, _0817ECF8 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - lsls r1, r1, #2 - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r5, r0 - adds r0, #0x53 - ldrb r3, [r0] - lsrs r3, r3, #6 - adds r3, r3, r1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #0x14 - b _0817ED3A - .align 2, 0 -_0817ECF4: .4byte gUnknown_2023D12 -_0817ECF8: .4byte gUnknown_2023EAF -_0817ECFC: - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r3, r5, r0 - adds r0, r3, #0 - adds r0, #0x57 - ldrb r0, [r0] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1c - cmp r0, #7 - bne _0817ED42 - adds r0, r3, #0 - adds r0, #0x50 - ldrb r0, [r0] - lsls r0, r0, #0x1d - lsrs r1, r0, #0x1d - cmp r1, #0 - beq _0817ED68 - movs r0, #1 -_0817ED22: - eors r2, r0 - subs r1, #1 - lsls r1, r1, #2 - adds r0, r3, #0 - adds r0, #0x54 -_0817ED2C: - ldrb r3, [r0] - lsls r3, r3, #0x1e -_0817ED30: - lsrs r3, r3, #0x1e -_0817ED32: - adds r3, r3, r1 -_0817ED34: - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #0x13 -_0817ED3A: - movs r1, #0 - bl AddMovePoints - b _0817ED68 -_0817ED42: - adds r2, r4, #0 - ldr r1, _0817ED74 - mov r3, r8 - ldrb r0, [r3] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - lsls r1, r1, #2 - adds r0, r6, #0 - adds r0, #0x53 - ldrb r3, [r0] - lsrs r3, r3, #6 - adds r3, r3, r1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #0x14 - movs r1, #0 - bl AddMovePoints -_0817ED68: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0817ED74: .4byte gUnknown_2023D12 - thumb_func_end AddPointsOnFainting - - thumb_func_start TrySetBattleSeminarShow -TrySetBattleSeminarShow: @ 0x0817ED78 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x28 - ldr r7, _0817F034 - ldr r0, [r7] - ldr r1, _0817F038 - ands r0, r1 - cmp r0, #0 - beq _0817ED92 - b _0817F0A6 -_0817ED92: - ldr r4, _0817F03C - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0817EDA4 - b _0817F0A6 -_0817EDA4: - ldr r5, _0817F040 - ldrb r4, [r4] - movs r1, #0x58 - adds r6, r4, #0 - muls r6, r1, r6 - adds r0, r6, r5 - ldrb r0, [r0, #0x1e] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #5 - bgt _0817EDBC - b _0817F0A6 -_0817EDBC: - ldr r0, _0817F044 - ldrb r0, [r0] - muls r0, r1, r0 - adds r0, r0, r5 - ldrb r0, [r0, #0x1f] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #6 - ble _0817EDD0 - b _0817F0A6 -_0817EDD0: - ldr r0, _0817F048 - ldrh r1, [r0] - cmp r1, #0xed - bne _0817EDDA - b _0817F0A6 -_0817EDDA: - ldr r0, _0817F04C - cmp r1, r0 - bne _0817EDE2 - b _0817F0A6 -_0817EDE2: - ldr r0, [r7] - movs r1, #0xc8 - lsls r1, r1, #0xe - ands r0, r1 - cmp r0, #0 - beq _0817EDF0 - b _0817F0A6 -_0817EDF0: - ldr r3, _0817F050 - ldr r2, _0817F054 - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r6 - adds r1, r5, #0 - adds r1, #0xc - adds r0, r0, r1 - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r0, [r0, #1] - adds r6, r2, #0 - cmp r0, #0 - bne _0817EE16 - b _0817F0A6 -_0817EE16: - movs r5, #0 - str r1, [sp, #0x24] - ldr r1, _0817F058 - ldr r4, _0817F05C - adds r3, r1, #0 - adds r2, r1, #0 -_0817EE22: - ldr r0, [sp, #0x24] - ldrh r7, [r2] - cmp r0, r7 - beq _0817EE36 - adds r3, #2 - adds r2, #2 - adds r5, #1 - ldrh r0, [r3] - cmp r0, r4 - bne _0817EE22 -_0817EE36: - lsls r0, r5, #1 - adds r0, r0, r1 - ldrh r1, [r0] - ldr r0, _0817F05C - cmp r1, r0 - beq _0817EE44 - b _0817F0A6 -_0817EE44: - ldr r2, _0817F03C - ldrb r0, [r2] - adds r0, r0, r6 - ldrb r0, [r0] - lsls r0, r0, #2 - mov r1, sp - adds r1, r1, r0 - adds r1, #0x10 - ldr r0, _0817F060 - ldr r0, [r0] - str r0, [r1] - ldr r0, _0817F048 - ldrh r1, [r0] - str r1, [sp, #0x24] - movs r5, #0 - add r3, sp, #0x20 - mov sl, r3 - mov r8, r0 - add r7, sp, #0x10 - ldr r4, _0817F044 - mov sb, r4 -_0817EE6E: - lsls r1, r5, #1 - ldr r6, _0817F03C - ldrb r0, [r6] - movs r2, #0x58 - muls r0, r2, r0 - adds r1, r1, r0 - ldr r0, _0817F040 - adds r0, #0xc - adds r1, r1, r0 - ldrh r0, [r1] - mov r3, r8 - strh r0, [r3] - movs r6, #0 - mov r4, sl - strh r6, [r4] - ldrh r0, [r3] - adds r1, r7, #0 - mov r2, sl - bl ShouldCalculateDamage - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0817EF60 - ldr r4, _0817F064 - mov r1, sb - ldrb r0, [r1] - bl sub_080A630C - movs r1, #1 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r3, [r1] - ldr r2, _0817F03C - ldrb r0, [r2] - movs r4, #0x58 - muls r0, r4, r0 - ldr r6, _0817F040 - adds r0, r0, r6 - mov r2, sb - ldrb r1, [r2] - muls r1, r4, r1 - adds r1, r1, r6 - mov r4, r8 - ldrh r2, [r4] - mov r6, sl - ldrh r4, [r6] - str r4, [sp] - movs r4, #0 - str r4, [sp, #4] - ldr r6, _0817F03C - ldrb r4, [r6] - str r4, [sp, #8] - mov r6, sb - ldrb r4, [r6] - str r4, [sp, #0xc] - bl CalculateBaseDamage - adds r3, r0, #0 - ldr r4, _0817F060 - str r3, [r4] - ldr r1, _0817F068 - ldr r2, _0817F03C - ldrb r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #2 - ands r0, r1 - cmp r0, #0 - beq _0817EF16 - ldr r2, _0817F050 - mov r6, r8 - ldrh r1, [r6] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #2] - cmp r0, #0xd - bne _0817EF16 - lsls r0, r3, #1 - str r0, [r4] -_0817EF16: - ldr r0, _0817F06C - ldr r6, _0817F03C - ldrb r1, [r6] - lsls r1, r1, #4 - adds r1, r1, r0 - ldrb r0, [r1] - lsls r0, r0, #0x1c - cmp r0, #0 - bge _0817EF38 - ldr r4, _0817F060 - ldr r1, [r4] - lsls r0, r1, #4 - subs r0, r0, r1 - movs r1, #0xa - bl __divsi3 - str r0, [r4] -_0817EF38: - mov r1, r8 - ldrh r0, [r1] - ldrb r1, [r6] - mov r3, sb - ldrb r2, [r3] - bl TypeCalc - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r0, _0817F060 - ldr r0, [r0] - str r0, [r7] - cmp r0, #0 - bne _0817EF60 - movs r0, #0x29 - ands r0, r1 - cmp r0, #0 - bne _0817EF60 - movs r0, #1 - str r0, [r7] -_0817EF60: - adds r7, #4 - adds r5, #1 - cmp r5, #3 - ble _0817EE6E - movs r5, #0 - ldr r3, _0817F03C - ldr r6, _0817F054 - ldr r4, _0817F070 - mov r8, r4 - movs r7, #0x64 - mov sb, r7 - mov sl, r6 -_0817EF78: - ldrb r0, [r3] - adds r0, r0, r6 - ldrb r2, [r0] - cmp r5, r2 - bne _0817EF84 - b _0817F080 -_0817EF84: - lsls r0, r5, #2 - mov r1, sp - adds r1, r1, r0 - adds r1, #0x10 - lsls r0, r2, #2 - add r0, sp - adds r0, #0x10 - ldr r1, [r1] - ldr r0, [r0] - cmp r1, r0 - ble _0817F080 - movs r7, #1 - cmp r2, #0 - beq _0817EFA2 - movs r7, #0 -_0817EFA2: - movs r5, #0 - ldr r4, _0817F044 - ldr r6, _0817F074 - ldr r0, _0817F03C - ldrb r0, [r0] - add r0, sl - ldrb r3, [r0] - add r2, sp, #0x10 -_0817EFB2: - cmp r5, r3 - beq _0817EFC6 - lsls r0, r7, #2 - add r0, sp - adds r0, #0x10 - ldr r1, [r2] - ldr r0, [r0] - cmp r1, r0 - ble _0817EFC6 - adds r7, r5, #0 -_0817EFC6: - adds r2, #4 - adds r5, #1 - cmp r5, #3 - ble _0817EFB2 - ldrb r0, [r4] - lsls r0, r0, #1 - add r0, r8 - ldrh r0, [r0] - mov r1, sb - muls r1, r0, r1 - adds r0, r1, #0 - adds r0, r0, r6 - movs r1, #0xb - movs r2, #0 - bl GetMonData - adds r6, r0, #0 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - ldr r2, _0817F03C - ldrb r0, [r2] - lsls r0, r0, #1 - add r0, r8 - ldrh r0, [r0] - mov r3, sb - muls r3, r0, r3 - adds r0, r3, #0 - ldr r1, _0817F078 - adds r0, r0, r1 - movs r1, #0xb - movs r2, #0 - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r4, _0817F03C - ldrb r3, [r4] - mov r2, sl - adds r0, r3, r2 - ldrb r2, [r0] - movs r0, #0x58 - adds r4, r3, #0 - muls r4, r0, r4 - ldr r5, _0817F07C - adds r3, r4, r5 - lsls r0, r7, #1 - adds r0, r0, r4 - adds r0, r0, r5 - ldrh r0, [r0] - str r0, [sp] - adds r0, r6, #0 - bl sub_080EEE7C - b _0817F088 - .align 2, 0 -_0817F034: .4byte gUnknown_2022C90 -_0817F038: .4byte gUnknown_2000003 -_0817F03C: .4byte gUnknown_2023EAF -_0817F040: .4byte gUnknown_2023D28 -_0817F044: .4byte gUnknown_2023EB0 -_0817F048: .4byte gUnknown_2023E8E -_0817F04C: .4byte 0x00000137 -_0817F050: .4byte gUnknown_82ED220 -_0817F054: .4byte gUnknown_2024154 -_0817F058: .4byte gUnknown_85D2F0C -_0817F05C: .4byte 0x0000FFFF -_0817F060: .4byte gUnknown_2023E94 -_0817F064: .4byte gUnknown_2023F32 -_0817F068: .4byte gUnknown_2023F50 -_0817F06C: .4byte gUnknown_2023FE0 -_0817F070: .4byte gUnknown_2023D12 -_0817F074: .4byte gUnknown_20243E8 -_0817F078: .4byte gUnknown_2024190 -_0817F07C: .4byte gUnknown_2023D34 -_0817F080: - adds r5, #1 - cmp r5, #3 - bgt _0817F088 - b _0817EF78 -_0817F088: - ldr r2, _0817F0B8 - ldr r1, _0817F0BC - ldr r0, _0817F0C0 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #2 - add r0, sp - adds r0, #0x10 - ldr r0, [r0] - str r0, [r2] - ldr r0, _0817F0C4 - mov r3, sp - ldrh r3, [r3, #0x24] - strh r3, [r0] -_0817F0A6: - add sp, #0x28 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0817F0B8: .4byte gUnknown_2023E94 -_0817F0BC: .4byte gUnknown_2024154 -_0817F0C0: .4byte gUnknown_2023EAF -_0817F0C4: .4byte gUnknown_2023E8E - thumb_func_end TrySetBattleSeminarShow - - thumb_func_start ShouldCalculateDamage -ShouldCalculateDamage: @ 0x0817F0C8 - push {r4, r5, r6, r7, lr} - adds r6, r1, #0 - mov ip, r2 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r1, _0817F110 - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #1] - cmp r0, #0 - beq _0817F132 - movs r4, #0 - ldr r5, _0817F114 - ldr r7, _0817F118 - adds r3, r5, #0 - adds r1, r5, #0 -_0817F0EC: - ldrh r0, [r1] - cmp r2, r0 - beq _0817F0FE - adds r3, #2 - adds r1, #2 - adds r4, #1 - ldrh r0, [r3] - cmp r0, r7 - bne _0817F0EC -_0817F0FE: - lsls r0, r4, #1 - adds r0, r0, r5 - ldrh r1, [r0] - ldr r0, _0817F118 - cmp r1, r0 - beq _0817F11C - movs r0, #0 - str r0, [r6] - b _0817F14C - .align 2, 0 -_0817F110: .4byte gUnknown_82ED220 -_0817F114: .4byte gUnknown_85D2F0C -_0817F118: .4byte 0x0000FFFF -_0817F11C: - cmp r2, #0x95 - bne _0817F140 - ldr r2, _0817F138 - ldr r0, _0817F13C - ldrb r1, [r0] - movs r0, #0x58 - muls r0, r1, r0 - adds r0, r0, r2 - adds r0, #0x2a - ldrb r0, [r0] - asrs r0, r0, #1 -_0817F132: - str r0, [r6] - movs r0, #0 - b _0817F14C - .align 2, 0 -_0817F138: .4byte gUnknown_2023D28 -_0817F13C: .4byte gUnknown_2023EAF -_0817F140: - cmp r2, #0xde - bne _0817F14A - movs r0, #0xa - mov r1, ip - strh r0, [r1] -_0817F14A: - movs r0, #1 -_0817F14C: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ShouldCalculateDamage - - thumb_func_start BattleTv_ClearExplosionFaintCause -BattleTv_ClearExplosionFaintCause: @ 0x0817F154 - push {r4, r5, lr} - ldr r0, _0817F1D8 - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _0817F1D0 - ldr r0, _0817F1DC - ldr r3, [r0] - ldr r0, _0817F1E0 - adds r4, r3, r0 - ldrb r2, [r4] - subs r1, #0x21 - adds r0, r1, #0 - ands r0, r2 - strb r0, [r4] - ldr r0, _0817F1E4 - adds r2, r3, r0 - ldrb r0, [r2] - ands r1, r0 - strb r1, [r2] - ldrb r5, [r4] - movs r1, #0x1f - adds r0, r1, #0 - ands r0, r5 - strb r0, [r4] - ldrb r0, [r2] - ands r1, r0 - strb r1, [r2] - movs r0, #0x97 - lsls r0, r0, #2 - adds r4, r3, r0 - ldrb r2, [r4] - movs r1, #0x39 - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - strb r0, [r4] - movs r0, #0x9a - lsls r0, r0, #2 - adds r3, r3, r0 - ldrb r0, [r3] - ands r1, r0 - strb r1, [r3] - ldrb r2, [r4] - movs r1, #7 - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - strb r0, [r4] - ldrb r0, [r3] - ands r1, r0 - strb r1, [r3] - ldrb r2, [r4] - movs r1, #2 - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - strb r0, [r4] - ldrb r0, [r3] - ands r1, r0 - strb r1, [r3] -_0817F1D0: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0817F1D8: .4byte gUnknown_2022C90 -_0817F1DC: .4byte gUnknown_2024140 -_0817F1E0: .4byte 0x0000025B -_0817F1E4: .4byte 0x00000267 - thumb_func_end BattleTv_ClearExplosionFaintCause - - thumb_func_start GetBattlerMoveSlotId -GetBattlerMoveSlotId: @ 0x0817F1E8 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - adds r0, r5, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - ldr r6, _0817F20C - cmp r0, #0 - bne _0817F202 - ldr r6, _0817F210 -_0817F202: - movs r4, #0 - ldr r1, _0817F214 - lsls r0, r5, #1 - adds r5, r0, r1 - b _0817F21A - .align 2, 0 -_0817F20C: .4byte gUnknown_20243E8 -_0817F210: .4byte gUnknown_2024190 -_0817F214: .4byte gUnknown_2023D12 -_0817F218: - adds r4, #1 -_0817F21A: - cmp r4, #3 - bgt _0817F234 - ldrh r1, [r5] - movs r0, #0x64 - muls r0, r1, r0 - adds r0, r6, r0 - adds r1, r4, #0 - adds r1, #0xd - movs r2, #0 - bl GetMonData - cmp r0, r7 - bne _0817F218 -_0817F234: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetBattlerMoveSlotId - - thumb_func_start AddPointsBasedOnWeather -AddPointsBasedOnWeather: @ 0x0817F240 - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - adds r4, r3, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r6, r1, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r5, r2, #0 - movs r0, #7 - ands r0, r3 - cmp r0, #0 - beq _0817F260 - movs r0, #3 - b _0817F276 -_0817F260: - movs r0, #0x60 - ands r0, r3 - cmp r0, #0 - beq _0817F26C - movs r0, #4 - b _0817F276 -_0817F26C: - movs r0, #0x18 - ands r0, r3 - cmp r0, #0 - beq _0817F27E - movs r0, #5 -_0817F276: - movs r3, #0 - bl AddMovePoints - b _0817F292 -_0817F27E: - movs r0, #0x80 - ands r4, r0 - cmp r4, #0 - beq _0817F292 - movs r0, #6 - adds r1, r6, #0 - adds r2, r5, #0 - movs r3, #0 - bl AddMovePoints -_0817F292: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end AddPointsBasedOnWeather - - thumb_func_start sub_0817F298 -sub_0817F298: @ 0x0817F298 - bx lr - .align 2, 0 - thumb_func_end sub_0817F298 - - thumb_func_start sub_0817F29C -sub_0817F29C: @ 0x0817F29C - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #4 - mov sb, r0 - mov r8, r1 - adds r5, r2, #0 - adds r4, r3, #0 - lsls r5, r5, #0x10 - rsbs r5, r5, #0 - lsls r4, r4, #0x10 - rsbs r4, r4, #0 - lsrs r4, r4, #0x10 - mov r0, r8 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov r8, r0 - asrs r5, r5, #0x10 - adds r1, r5, #0 - bl Cos - adds r6, r0, #0 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - mov r0, r8 - adds r1, r4, #0 - bl Sin - subs r6, r6, r0 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - mov r0, r8 - adds r1, r4, #0 - bl Cos - adds r2, r0, #0 - mov r0, r8 - adds r1, r5, #0 - str r2, [sp] - bl Sin - ldr r2, [sp] - adds r2, r2, r0 - rsbs r5, r5, #0 - rsbs r4, r4, #0 - lsls r6, r6, #0x10 - asrs r6, r6, #0x10 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - adds r6, r6, r5 - mov r0, sb - strh r6, [r0, #0x24] - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - adds r2, r2, r4 - strh r2, [r0, #0x26] - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_0817F29C - - thumb_func_start GetSpeciesBackAnimSet -GetSpeciesBackAnimSet: @ 0x0817F320 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _0817F334 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _0817F338 - movs r0, #0 - b _0817F33E - .align 2, 0 -_0817F334: .4byte gUnknown_85D3328 -_0817F338: - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_0817F33E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetSpeciesBackAnimSet - - thumb_func_start Task_HandleMonAnimation -Task_HandleMonAnimation: @ 0x0817F344 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _0817F3E0 - lsls r6, r5, #2 - adds r0, r6, r5 - lsls r0, r0, #3 - adds r2, r0, r1 - movs r3, #0xa - ldrsh r0, [r2, r3] - lsls r3, r0, #0x10 - movs r4, #0xc - ldrsh r0, [r2, r4] - orrs r3, r0 - movs r0, #8 - ldrsh r4, [r2, r0] - mov r8, r1 - ldr r0, _0817F3E4 - mov ip, r0 - cmp r4, #0 - bne _0817F3B4 - ldrh r0, [r3, #0x2e] - strh r0, [r2, #0x10] - ldrh r0, [r3, #0x32] - strh r0, [r2, #0x12] - movs r0, #1 - strh r0, [r3, #0x30] - strh r4, [r3, #0x2e] - movs r0, #2 - adds r1, r6, #0 - ldr r6, _0817F3E8 - ldr r7, _0817F3EC - movs r4, #0 - adds r2, r3, #0 - adds r2, #0x32 -_0817F38E: - strh r4, [r2] - adds r2, #2 - adds r0, #1 - cmp r0, #7 - bls _0817F38E - adds r1, r1, r5 - lsls r1, r1, #3 - add r1, r8 - movs r2, #0xe - ldrsh r0, [r1, r2] - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r0, [r0] - str r0, [r3, #0x1c] - movs r0, #0 - str r0, [r7] - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] -_0817F3B4: - ldr r0, [r3, #0x1c] - cmp r0, ip - bne _0817F3D4 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - add r0, r8 - ldrh r1, [r0, #0x10] - movs r2, #0 - strh r1, [r3, #0x2e] - ldrh r0, [r0, #0x12] - strh r0, [r3, #0x32] - strh r2, [r3, #0x30] - adds r0, r5, #0 - bl DestroyTask -_0817F3D4: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0817F3E0: .4byte gUnknown_3005B60 -_0817F3E4: .4byte sub_08007140 -_0817F3E8: .4byte gUnknown_85D34E8 -_0817F3EC: .4byte gUnknown_3001274 - thumb_func_end Task_HandleMonAnimation - - thumb_func_start LaunchAnimationTaskForFrontSprite -LaunchAnimationTaskForFrontSprite: @ 0x0817F3F0 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r4, r1, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _0817F41C - movs r1, #0x80 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0817F420 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - lsrs r0, r5, #0x10 - strh r0, [r1, #0xa] - strh r5, [r1, #0xc] - strh r4, [r1, #0xe] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0817F41C: .4byte Task_HandleMonAnimation -_0817F420: .4byte gUnknown_3005B60 - thumb_func_end LaunchAnimationTaskForFrontSprite - - thumb_func_start StartMonSummaryAnimation -StartMonSummaryAnimation: @ 0x0817F424 - lsls r1, r1, #0x18 - ldr r3, _0817F438 - movs r2, #1 - str r2, [r3] - ldr r2, _0817F43C - lsrs r1, r1, #0x16 - adds r1, r1, r2 - ldr r1, [r1] - str r1, [r0, #0x1c] - bx lr - .align 2, 0 -_0817F438: .4byte gUnknown_3001274 -_0817F43C: .4byte gUnknown_85D34E8 - thumb_func_end StartMonSummaryAnimation - - thumb_func_start LaunchAnimationTaskForBackSprite -LaunchAnimationTaskForBackSprite: @ 0x0817F440 - push {r4, r5, r6, lr} - adds r5, r0, #0 - lsls r6, r1, #0x18 - lsrs r6, r6, #0x18 - ldr r0, _0817F4A0 - movs r1, #0x80 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0817F4A4 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - adds r4, r4, r1 - lsrs r0, r5, #0x10 - strh r0, [r4, #0xa] - strh r5, [r4, #0xc] - ldrh r0, [r5, #0x2e] - lsls r0, r0, #0x18 - ldr r1, _0817F4A8 - lsrs r0, r0, #0x17 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0817F4AC - adds r0, r0, r1 - bl GetNature - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r6, #1 - ldr r2, _0817F4B0 - adds r0, r0, r2 - adds r1, r1, r6 - ldrb r0, [r0] - adds r1, r1, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, _0817F4B4 - adds r1, r1, r0 - ldrb r0, [r1] - strh r0, [r4, #0xe] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0817F4A0: .4byte Task_HandleMonAnimation -_0817F4A4: .4byte gUnknown_3005B60 -_0817F4A8: .4byte gUnknown_2023D12 -_0817F4AC: .4byte gUnknown_2024190 -_0817F4B0: .4byte gUnknown_85D378F -_0817F4B4: .4byte gUnknown_85D3744 - thumb_func_end LaunchAnimationTaskForBackSprite - - thumb_func_start sub_0817F4B8 -sub_0817F4B8: @ 0x0817F4B8 - ldr r1, _0817F4C0 - str r1, [r0, #0x1c] - bx lr - .align 2, 0 -_0817F4C0: .4byte sub_0817F298 - thumb_func_end sub_0817F4B8 - - thumb_func_start SetAffineData -SetAffineData: @ 0x0817F4C4 - push {r4, r5, lr} - sub sp, #0x10 - lsls r1, r1, #0x10 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - ldr r4, _0817F514 - lsls r2, r2, #0x10 - lsrs r1, r1, #0x10 - orrs r1, r2 - str r1, [sp] - ldr r1, [sp, #4] - ands r1, r4 - orrs r1, r3 - str r1, [sp, #4] - ldrb r4, [r0, #3] - lsls r4, r4, #0x1a - lsrs r4, r4, #0x1b - add r5, sp, #8 - mov r0, sp - adds r1, r5, #0 - movs r2, #1 - movs r3, #2 - bl ObjAffineSet - ldr r0, _0817F518 - lsls r4, r4, #3 - adds r4, r4, r0 - ldrh r0, [r5] - strh r0, [r4] - ldrh r0, [r5, #2] - strh r0, [r4, #2] - ldrh r0, [r5, #4] - strh r0, [r4, #4] - ldrh r0, [r5, #6] - strh r0, [r4, #6] - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0817F514: .4byte 0xFFFF0000 -_0817F518: .4byte gUnknown_2021B3C - thumb_func_end SetAffineData - - thumb_func_start HandleStartAffineAnim -HandleStartAffineAnim: @ 0x0817F51C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #1] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #1] - ldr r0, _0817F54C - str r0, [r4, #0x10] - ldr r0, _0817F550 - ldr r0, [r0] - cmp r0, #1 - bne _0817F53A - adds r0, r4, #0 - bl InitSpriteAffineAnim -_0817F53A: - movs r1, #0x30 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0817F554 - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAffineAnim - b _0817F55C - .align 2, 0 -_0817F54C: .4byte gUnknown_85D37C8 -_0817F550: .4byte gUnknown_3001274 -_0817F554: - adds r0, r4, #0 - movs r1, #0 - bl StartSpriteAffineAnim -_0817F55C: - ldrb r3, [r4, #1] - lsrs r1, r3, #6 - ldrb r2, [r4, #3] - lsrs r2, r2, #6 - lsls r3, r3, #0x1e - lsrs r3, r3, #0x1e - adds r0, r4, #0 - bl CalcCenterToCornerVec - adds r2, r4, #0 - adds r2, #0x2c - ldrb r0, [r2] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2] - pop {r4} - pop {r0} - bx r0 - thumb_func_end HandleStartAffineAnim - - thumb_func_start HandleSetAffineData -HandleSetAffineData: @ 0x0817F580 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - movs r5, #0x30 - ldrsh r0, [r4, r5] - cmp r0, #0 - bne _0817F5A4 - lsls r0, r1, #0x10 - rsbs r0, r0, #0 - lsrs r1, r0, #0x10 - rsbs r0, r3, #0 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 -_0817F5A4: - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r0, r4, #0 - bl SetAffineData - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end HandleSetAffineData - - thumb_func_start sub_0817F5B8 -sub_0817F5B8: @ 0x0817F5B8 - push {lr} - adds r1, r0, #0 - movs r2, #0x30 - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _0817F5CC - movs r2, #0x24 - ldrsh r0, [r1, r2] - rsbs r0, r0, #0 - strh r0, [r1, #0x24] -_0817F5CC: - pop {r0} - bx r0 - thumb_func_end sub_0817F5B8 - - thumb_func_start sub_0817F5D0 -sub_0817F5D0: @ 0x0817F5D0 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #3 - bhi _0817F5FC - ldr r1, _0817F5F8 - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - movs r2, #0 - strh r2, [r0, #6] - strh r2, [r0] - movs r1, #1 - strh r1, [r0, #4] - strh r2, [r0, #2] - strh r2, [r0, #8] - movs r0, #1 - b _0817F5FE - .align 2, 0 -_0817F5F8: .4byte gUnknown_3001240 -_0817F5FC: - movs r0, #0 -_0817F5FE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0817F5D0 - - thumb_func_start sub_0817F604 -sub_0817F604: @ 0x0817F604 - push {r4, lr} - ldr r4, _0817F624 - ldrb r1, [r4] - adds r2, r1, #1 - adds r0, r2, #0 - asrs r0, r0, #2 - lsls r0, r0, #2 - subs r0, r2, r0 - strb r0, [r4] - ldrb r0, [r4] - bl sub_0817F5D0 - ldrb r0, [r4] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0817F624: .4byte gUnknown_3001270 - thumb_func_end sub_0817F604 - - thumb_func_start sub_0817F628 -sub_0817F628: @ 0x0817F628 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #1] - movs r3, #4 - rsbs r3, r3, #0 - ands r3, r0 - movs r5, #1 - orrs r3, r5 - strb r3, [r4, #1] - lsrs r1, r3, #6 - ldrb r2, [r4, #3] - lsrs r2, r2, #6 - lsls r3, r3, #0x1e - lsrs r3, r3, #0x1e - adds r0, r4, #0 - bl CalcCenterToCornerVec - ldr r0, _0817F668 - ldr r0, [r0] - cmp r0, #1 - bne _0817F6AC - movs r1, #0x30 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0817F66C - adds r1, r4, #0 - adds r1, #0x3f - ldrb r0, [r1] - orrs r0, r5 - strb r0, [r1] - adds r5, r1, #0 - b _0817F67C - .align 2, 0 -_0817F668: .4byte gUnknown_3001274 -_0817F66C: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r2, [r0] - movs r1, #2 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - adds r5, r0, #0 -_0817F67C: - ldrb r0, [r4, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - ldrb r2, [r4, #3] - lsls r1, r2, #0x1a - lsrs r1, r1, #0x1b - ldrb r0, [r5] - lsls r0, r0, #0x1f - lsrs r0, r0, #0x1f - lsls r0, r0, #3 - orrs r1, r0 - lsls r1, r1, #1 - movs r0, #0x3f - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #3] - ldrb r1, [r4, #1] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #1] -_0817F6AC: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0817F628 - - thumb_func_start pokemonanimfunc_01 -pokemonanimfunc_01: @ 0x0817F6B4 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r1, #0x32 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _0817F6C6 - adds r0, r6, #0 - bl HandleStartAffineAnim -_0817F6C6: - movs r1, #0x32 - ldrsh r0, [r6, r1] - cmp r0, #0x28 - ble _0817F6EC - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r6, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - adds r0, r6, #0 - bl sub_0817F628 - ldr r0, _0817F6E8 - str r0, [r6, #0x1c] - b _0817F738 - .align 2, 0 -_0817F6E8: .4byte sub_08184C34 -_0817F6EC: - movs r1, #0x32 - ldrsh r0, [r6, r1] - lsls r0, r0, #9 - movs r1, #0x28 - bl __divsi3 - adds r4, r0, #0 - cmp r0, #0 - bge _0817F700 - adds r4, #0xff -_0817F700: - asrs r4, r4, #8 - lsls r4, r4, #8 - subs r4, r0, r4 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - adds r0, r4, #0 - movs r1, #0x20 - bl Sin - movs r1, #0x80 - lsls r1, r1, #1 - adds r5, r1, #0 - adds r0, r0, r5 - strh r0, [r6, #0x36] - adds r0, r4, #0 - movs r1, #0x20 - bl Cos - adds r0, r0, r5 - strh r0, [r6, #0x38] - movs r0, #0x36 - ldrsh r1, [r6, r0] - movs r0, #0x38 - ldrsh r2, [r6, r0] - adds r0, r6, #0 - movs r3, #0 - bl HandleSetAffineData -_0817F738: - ldrh r0, [r6, #0x32] - adds r0, #1 - strh r0, [r6, #0x32] - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_01 - - thumb_func_start sub_0817F744 -sub_0817F744: @ 0x0817F744 - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x32] - movs r2, #0x32 - ldrsh r0, [r4, r2] - cmp r0, #0x28 - ble _0817F760 - ldr r0, _0817F75C - str r0, [r4, #0x1c] - movs r0, #0 - b _0817F79A - .align 2, 0 -_0817F75C: .4byte sub_08184C34 -_0817F760: - movs r0, #1 - ands r0, r1 - movs r5, #0xff - cmp r0, #0 - bne _0817F76C - movs r5, #1 -_0817F76C: - movs r1, #0x32 - ldrsh r0, [r4, r1] - lsls r0, r0, #7 - movs r1, #0x28 - bl __divsi3 - adds r1, r0, #0 - cmp r1, #0 - bge _0817F780 - adds r0, #0xff -_0817F780: - asrs r0, r0, #8 - lsls r0, r0, #8 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #6 - bl Sin - lsls r1, r5, #0x18 - asrs r1, r1, #0x18 - adds r2, r0, #0 - muls r2, r1, r2 - adds r0, r2, #0 -_0817F79A: - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_0817F744 - - thumb_func_start sub_0817F7A8 -sub_0817F7A8: @ 0x0817F7A8 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - movs r0, #0x32 - ldrsh r1, [r4, r0] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r1, r0 - ble _0817F7C8 - ldr r0, _0817F7C4 - str r0, [r4, #0x1c] - movs r0, #0 - b _0817F7F2 - .align 2, 0 -_0817F7C4: .4byte sub_08184C34 -_0817F7C8: - movs r0, #0x32 - ldrsh r1, [r4, r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #7 - movs r2, #0x2e - ldrsh r1, [r4, r2] - bl __divsi3 - adds r1, r0, #0 - cmp r1, #0 - bge _0817F7E2 - adds r0, #0xff -_0817F7E2: - asrs r0, r0, #8 - lsls r0, r0, #8 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #6 - bl Sin -_0817F7F2: - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0817F7A8 - - thumb_func_start sub_0817F808 -sub_0817F808: @ 0x0817F808 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x28 - strh r0, [r4, #0x2e] - adds r0, r4, #0 - bl sub_0817F7A8 - ldr r0, _0817F820 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0817F820: .4byte sub_0817F7A8 - thumb_func_end sub_0817F808 - - thumb_func_start sub_0817F824 -sub_0817F824: @ 0x0817F824 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - movs r0, #0x32 - ldrsh r1, [r4, r0] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r1, r0 - ble _0817F844 - ldr r0, _0817F840 - str r0, [r4, #0x1c] - movs r0, #0 - b _0817F870 - .align 2, 0 -_0817F840: .4byte sub_08184C34 -_0817F844: - movs r0, #0x32 - ldrsh r1, [r4, r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #7 - movs r2, #0x2e - ldrsh r1, [r4, r2] - bl __divsi3 - adds r1, r0, #0 - cmp r1, #0 - bge _0817F85E - adds r0, #0xff -_0817F85E: - asrs r0, r0, #8 - lsls r0, r0, #8 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #6 - bl Sin - rsbs r0, r0, #0 -_0817F870: - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0817F824 - - thumb_func_start sub_0817F884 -sub_0817F884: @ 0x0817F884 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x28 - strh r0, [r4, #0x2e] - adds r0, r4, #0 - bl sub_0817F824 - ldr r0, _0817F89C - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0817F89C: .4byte sub_0817F824 - thumb_func_end sub_0817F884 - - thumb_func_start sub_0817F8A0 -sub_0817F8A0: @ 0x0817F8A0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r1, [r4, r0] - movs r0, #0xc0 - lsls r0, r0, #1 - cmp r1, r0 - ble _0817F8C0 - ldr r0, _0817F8BC - str r0, [r4, #0x1c] - movs r0, #0 - strh r0, [r4, #0x24] - b _0817F90A - .align 2, 0 -_0817F8BC: .4byte sub_08184C34 -_0817F8C0: - adds r0, r1, #0 - cmp r1, #0 - bge _0817F8C8 - adds r0, #0x7f -_0817F8C8: - asrs r2, r0, #7 - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - blt _0817F90C - cmp r0, #1 - ble _0817F8F4 - cmp r0, #3 - bgt _0817F90C - ldr r2, _0817F8F0 - adds r1, r1, r2 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x2e - ldrsh r2, [r4, r1] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #0x10 - b _0817F902 - .align 2, 0 -_0817F8F0: .4byte 0xFFFFFF00 -_0817F8F4: - lsls r0, r2, #7 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x2e - ldrsh r1, [r4, r2] - lsls r1, r1, #0x11 -_0817F902: - asrs r1, r1, #0x10 - bl Sin - rsbs r0, r0, #0 -_0817F90A: - strh r0, [r4, #0x26] -_0817F90C: - ldrh r0, [r4, #0x32] - adds r0, #0xc - strh r0, [r4, #0x32] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0817F8A0 - - thumb_func_start pokemonanimfunc_1E -pokemonanimfunc_1E: @ 0x0817F918 - push {r4, lr} - adds r4, r0, #0 - movs r0, #4 - strh r0, [r4, #0x2e] - adds r0, r4, #0 - bl sub_0817F8A0 - ldr r0, _0817F930 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0817F930: .4byte sub_0817F8A0 - thumb_func_end pokemonanimfunc_1E - - thumb_func_start pokemonanimfunc_06 -pokemonanimfunc_06: @ 0x0817F934 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r2, [r4, r0] - movs r0, #0xc0 - lsls r0, r0, #2 - cmp r2, r0 - ble _0817F954 - ldr r0, _0817F950 - str r0, [r4, #0x1c] - movs r0, #0 - strh r0, [r4, #0x24] - b _0817FA02 - .align 2, 0 -_0817F950: .4byte sub_08184C34 -_0817F954: - adds r0, r2, #0 - cmp r2, #0 - bge _0817F95C - adds r0, #0x7f -_0817F95C: - lsls r0, r0, #9 - asrs r0, r0, #0x10 - cmp r0, #5 - bhi _0817F9E8 - lsls r0, r0, #2 - ldr r1, _0817F970 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0817F970: .4byte _0817F974 -_0817F974: @ jump table - .4byte _0817F98C @ case 0 - .4byte _0817F98C @ case 1 - .4byte _0817F990 @ case 2 - .4byte _0817F994 @ case 3 - .4byte _0817F9B0 @ case 4 - .4byte _0817F9CA @ case 5 -_0817F98C: - movs r0, #0 - b _0817F9E6 -_0817F990: - movs r2, #0 - b _0817F9E8 -_0817F994: - adds r0, r2, #0 - cmp r2, #0 - bge _0817F99C - adds r0, #0x7f -_0817F99C: - asrs r0, r0, #7 - lsls r0, r0, #7 - subs r0, r2, r0 - lsls r0, r0, #3 - rsbs r0, r0, #0 - cmp r0, #0 - bge _0817F9AC - adds r0, #0x7f -_0817F9AC: - asrs r0, r0, #7 - b _0817F9E6 -_0817F9B0: - adds r0, r2, #0 - cmp r2, #0 - bge _0817F9B8 - adds r0, #0x7f -_0817F9B8: - asrs r0, r0, #7 - lsls r0, r0, #7 - subs r0, r2, r0 - cmp r0, #0 - bge _0817F9C4 - adds r0, #7 -_0817F9C4: - asrs r0, r0, #3 - subs r0, #8 - b _0817F9E6 -_0817F9CA: - adds r0, r2, #0 - cmp r2, #0 - bge _0817F9D2 - adds r0, #0x7f -_0817F9D2: - asrs r0, r0, #7 - lsls r0, r0, #7 - subs r0, r2, r0 - lsls r0, r0, #3 - rsbs r0, r0, #0 - cmp r0, #0 - bge _0817F9E2 - adds r0, #0x7f -_0817F9E2: - asrs r0, r0, #7 - adds r0, #8 -_0817F9E6: - strh r0, [r4, #0x24] -_0817F9E8: - adds r0, r2, #0 - cmp r2, #0 - bge _0817F9F0 - adds r0, #0x7f -_0817F9F0: - asrs r0, r0, #7 - lsls r0, r0, #7 - subs r0, r2, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #8 - bl Sin - rsbs r0, r0, #0 -_0817FA02: - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x32] - adds r0, #0xc - strh r0, [r4, #0x32] - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_06 - - thumb_func_start pokemonanimfunc_09 -pokemonanimfunc_09: @ 0x0817FA10 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r1, #0x32 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _0817FA22 - adds r0, r6, #0 - bl HandleStartAffineAnim -_0817FA22: - movs r1, #0x32 - ldrsh r0, [r6, r1] - cmp r0, #0x28 - ble _0817FA48 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r6, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - adds r0, r6, #0 - bl sub_0817F628 - ldr r0, _0817FA44 - str r0, [r6, #0x1c] - b _0817FABE - .align 2, 0 -_0817FA44: .4byte sub_08184C34 -_0817FA48: - movs r1, #0x32 - ldrsh r0, [r6, r1] - lsls r0, r0, #8 - movs r1, #0x28 - bl __divsi3 - adds r1, r0, #0 - cmp r1, #0 - bge _0817FA5C - adds r0, #0xff -_0817FA5C: - asrs r0, r0, #8 - lsls r0, r0, #8 - subs r0, r1, r0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldrh r0, [r6, #0x32] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _0817FA8C - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - adds r0, r4, #0 - movs r1, #0x20 - bl Sin - movs r1, #0x80 - lsls r1, r1, #1 - adds r5, r1, #0 - adds r0, r0, r5 - strh r0, [r6, #0x36] - adds r0, r4, #0 - movs r1, #0x20 - b _0817FAA6 -_0817FA8C: - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - adds r0, r4, #0 - movs r1, #8 - bl Sin - movs r1, #0x80 - lsls r1, r1, #1 - adds r5, r1, #0 - adds r0, r0, r5 - strh r0, [r6, #0x36] - adds r0, r4, #0 - movs r1, #8 -_0817FAA6: - bl Sin - adds r0, r0, r5 - strh r0, [r6, #0x38] - movs r0, #0x36 - ldrsh r1, [r6, r0] - movs r0, #0x38 - ldrsh r2, [r6, r0] - adds r0, r6, #0 - movs r3, #0 - bl HandleSetAffineData -_0817FABE: - ldrh r0, [r6, #0x32] - adds r0, #1 - strh r0, [r6, #0x32] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_09 - - thumb_func_start sub_0817FACC -sub_0817FACC: @ 0x0817FACC - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0817FADE - strh r0, [r4, #0x34] -_0817FADE: - ldr r2, _0817FB04 - movs r5, #0x34 - ldrsh r1, [r4, r5] - lsls r0, r1, #1 - adds r0, r0, r1 - adds r1, r2, #2 - adds r3, r0, r1 - movs r1, #0 - ldrsb r1, [r3, r1] - movs r5, #0x32 - ldrsh r0, [r4, r5] - cmp r1, r0 - bne _0817FB16 - adds r0, r1, #0 - cmp r0, #0 - bne _0817FB0C - ldr r0, _0817FB08 - str r0, [r4, #0x1c] - b _0817FB16 - .align 2, 0 -_0817FB04: .4byte gUnknown_85D37D0 -_0817FB08: .4byte sub_08184C34 -_0817FB0C: - ldrh r0, [r4, #0x34] - adds r0, #1 - movs r1, #0 - strh r0, [r4, #0x34] - strh r1, [r4, #0x32] -_0817FB16: - movs r0, #0x34 - ldrsh r1, [r4, r0] - lsls r0, r1, #1 - adds r1, r0, r1 - adds r0, r2, #2 - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _0817FB38 - ldr r0, _0817FB34 - str r0, [r4, #0x1c] - b _0817FB6A - .align 2, 0 -_0817FB34: .4byte sub_08184C34 -_0817FB38: - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x24] - adds r0, r0, r1 - strh r0, [r4, #0x24] - movs r5, #0x34 - ldrsh r1, [r4, r5] - lsls r0, r1, #1 - adds r0, r0, r1 - adds r1, r2, #1 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x26] - adds r0, r0, r1 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl sub_0817F5B8 -_0817FB6A: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_0817FACC - - thumb_func_start pokemonanimfunc_0A -pokemonanimfunc_0A: @ 0x0817FB70 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817FACC - ldr r0, _0817FB84 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0817FB84: .4byte sub_0817FACC - thumb_func_end pokemonanimfunc_0A - - thumb_func_start sub_0817FB88 -sub_0817FB88: @ 0x0817FB88 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r1, [r4, r0] - movs r0, #0x90 - lsls r0, r0, #4 - cmp r1, r0 - ble _0817FBA4 - ldr r0, _0817FBA0 - str r0, [r4, #0x1c] - movs r0, #0 - b _0817FBBE - .align 2, 0 -_0817FBA0: .4byte sub_08184C34 -_0817FBA4: - adds r0, r1, #0 - cmp r1, #0 - bge _0817FBAC - adds r0, #0xff -_0817FBAC: - asrs r0, r0, #8 - lsls r0, r0, #8 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x3c - ldrsh r1, [r4, r2] - bl Sin -_0817FBBE: - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x2e] - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0817FB88 - - thumb_func_start pokemonanimfunc_0F -pokemonanimfunc_0F: @ 0x0817FBD0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x3c - strh r0, [r4, #0x2e] - movs r0, #3 - strh r0, [r4, #0x3c] - adds r0, r4, #0 - bl sub_0817FB88 - ldr r0, _0817FBEC - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0817FBEC: .4byte sub_0817FB88 - thumb_func_end pokemonanimfunc_0F - - thumb_func_start sub_0817FBF0 -sub_0817FBF0: @ 0x0817FBF0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r1, [r4, r0] - movs r0, #0x90 - lsls r0, r0, #4 - cmp r1, r0 - ble _0817FC0C - ldr r0, _0817FC08 - str r0, [r4, #0x1c] - movs r0, #0 - b _0817FC24 - .align 2, 0 -_0817FC08: .4byte sub_08184C34 -_0817FC0C: - adds r0, r1, #0 - cmp r1, #0 - bge _0817FC14 - adds r0, #0xff -_0817FC14: - asrs r0, r0, #8 - lsls r0, r0, #8 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #3 - bl Sin -_0817FC24: - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x2e] - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_0817FBF0 - - thumb_func_start pokemonanimfunc_10 -pokemonanimfunc_10: @ 0x0817FC34 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x3c - strh r0, [r4, #0x2e] - adds r0, r4, #0 - bl sub_0817FBF0 - ldr r0, _0817FC4C - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0817FC4C: .4byte sub_0817FBF0 - thumb_func_end pokemonanimfunc_10 - - thumb_func_start pokemonanimfunc_11 -pokemonanimfunc_11: @ 0x0817FC50 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - ldrh r2, [r7, #0x32] - movs r0, #0x32 - ldrsh r1, [r7, r0] - movs r0, #0x80 - lsls r0, r0, #2 - cmp r1, r0 - ble _0817FC74 - ldr r0, _0817FC70 - str r0, [r7, #0x1c] - movs r0, #0 - strh r0, [r7, #0x24] - strh r0, [r7, #0x26] - b _0817FCD0 - .align 2, 0 -_0817FC70: .4byte sub_08184C34 -_0817FC74: - movs r0, #1 - ands r0, r2 - movs r5, #0xff - cmp r0, #0 - bne _0817FC80 - movs r5, #1 -_0817FC80: - movs r1, #0x32 - ldrsh r0, [r7, r1] - cmp r0, #0 - bge _0817FC8A - adds r0, #3 -_0817FC8A: - asrs r0, r0, #2 - movs r1, #8 - bl Sin - lsls r0, r0, #0x10 - asrs r6, r0, #0x10 - movs r0, #0x32 - ldrsh r1, [r7, r0] - adds r4, r1, #0 - cmp r1, #0 - bge _0817FCA2 - adds r4, #0xff -_0817FCA2: - asrs r4, r4, #8 - lsls r4, r4, #8 - subs r4, r1, r4 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - adds r0, r4, #0 - adds r1, r6, #0 - bl Sin - lsls r5, r5, #0x18 - asrs r5, r5, #0x18 - adds r1, r0, #0 - muls r1, r5, r1 - adds r0, r1, #0 - strh r0, [r7, #0x26] - adds r0, r4, #0 - adds r1, r6, #0 - bl Cos - adds r1, r0, #0 - muls r1, r5, r1 - adds r0, r1, #0 - strh r0, [r7, #0x24] -_0817FCD0: - ldrh r0, [r7, #0x32] - adds r0, #9 - strh r0, [r7, #0x32] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_11 - - thumb_func_start sub_0817FCDC -sub_0817FCDC: @ 0x0817FCDC - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r2, _0817FCFC - ldrh r6, [r4, #0x2e] - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r5, r0, r2 - ldrh r0, [r5] - cmp r0, #0 - beq _0817FD00 - subs r0, #1 - strh r0, [r5] - b _0817FDA4 - .align 2, 0 -_0817FCFC: .4byte gUnknown_3001240 -_0817FD00: - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0817FD1C - movs r2, #8 - ldrsh r0, [r5, r2] - cmp r0, #0 - bne _0817FD1C - adds r0, r4, #0 - bl HandleStartAffineAnim - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] -_0817FD1C: - ldr r2, _0817FD5C - lsls r1, r6, #0x10 - asrs r1, r1, #0x10 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r5, r0, r2 - movs r0, #0x32 - ldrsh r1, [r4, r0] - movs r2, #6 - ldrsh r0, [r5, r2] - cmp r1, r0 - ble _0817FD70 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - ldrh r1, [r5, #4] - movs r2, #4 - ldrsh r0, [r5, r2] - cmp r0, #1 - ble _0817FD60 - subs r0, r1, #1 - movs r1, #0 - strh r0, [r5, #4] - movs r0, #0xa - strh r0, [r5] - strh r1, [r4, #0x32] - b _0817FD9E - .align 2, 0 -_0817FD5C: .4byte gUnknown_3001240 -_0817FD60: - adds r0, r4, #0 - bl sub_0817F628 - ldr r0, _0817FD6C - str r0, [r4, #0x1c] - b _0817FD9E - .align 2, 0 -_0817FD6C: .4byte sub_08184C34 -_0817FD70: - movs r0, #0x32 - ldrsh r1, [r4, r0] - adds r0, r1, #0 - cmp r1, #0 - bge _0817FD7C - adds r0, #0xff -_0817FD7C: - asrs r0, r0, #8 - lsls r0, r0, #8 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #5 - bl Sin - strh r0, [r4, #0x3a] - movs r2, #0x80 - lsls r2, r2, #1 - ldrh r3, [r4, #0x3a] - adds r0, r4, #0 - adds r1, r2, #0 - bl HandleSetAffineData -_0817FD9E: - ldrh r0, [r4, #0x32] - adds r0, #0x10 - strh r0, [r4, #0x32] -_0817FDA4: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0817FCDC - - thumb_func_start pokemonanimfunc_12 -pokemonanimfunc_12: @ 0x0817FDAC - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F604 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r3, #0 - strh r0, [r4, #0x2e] - ldr r2, _0817FDE0 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r1, #6] - strh r3, [r1] - adds r0, r4, #0 - bl sub_0817FCDC - ldr r0, _0817FDE4 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0817FDE0: .4byte gUnknown_3001240 -_0817FDE4: .4byte sub_0817FCDC - thumb_func_end pokemonanimfunc_12 - - thumb_func_start sub_0817FDE8 -sub_0817FDE8: @ 0x0817FDE8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2e] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0817FE00 - adds r0, r4, #0 - bl HandleStartAffineAnim -_0817FE00: - movs r2, #0x32 - ldrsh r6, [r4, r2] - ldr r1, _0817FE30 - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r1, [r0] - cmp r6, r1 - ble _0817FE38 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - adds r0, r4, #0 - bl sub_0817F628 - ldr r0, _0817FE34 - str r0, [r4, #0x1c] - b _0817FE56 - .align 2, 0 -_0817FE30: .4byte gUnknown_3001240 -_0817FE34: .4byte sub_08184C34 -_0817FE38: - movs r2, #8 - ldrsh r1, [r0, r2] - movs r0, #0x80 - lsls r0, r0, #9 - bl __divsi3 - muls r0, r6, r0 - strh r0, [r4, #0x3a] - movs r2, #0x80 - lsls r2, r2, #1 - ldrh r3, [r4, #0x3a] - adds r0, r4, #0 - adds r1, r2, #0 - bl HandleSetAffineData -_0817FE56: - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0817FDE8 - - thumb_func_start pokemonanimfunc_1F -pokemonanimfunc_1F: @ 0x0817FE64 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F604 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x2e] - ldr r2, _0817FE94 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #0x3c - strh r0, [r1] - movs r0, #0x14 - strh r0, [r1, #8] - adds r0, r4, #0 - bl sub_0817FDE8 - ldr r0, _0817FE98 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0817FE94: .4byte gUnknown_3001240 -_0817FE98: .4byte sub_0817FDE8 - thumb_func_end pokemonanimfunc_1F - - thumb_func_start sub_0817FE9C -sub_0817FE9C: @ 0x0817FE9C - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldrh r0, [r5, #0x2e] - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - adds r0, r5, #0 - bl sub_0817F5B8 - ldr r1, _0817FED0 - lsls r0, r7, #1 - adds r0, r0, r7 - lsls r0, r0, #2 - adds r6, r0, r1 - movs r0, #0x32 - ldrsh r1, [r5, r0] - movs r2, #6 - ldrsh r0, [r6, r2] - cmp r1, r0 - ble _0817FED8 - movs r0, #0 - strh r0, [r5, #0x24] - strh r0, [r5, #0x26] - ldr r0, _0817FED4 - str r0, [r5, #0x1c] - b _0817FF16 - .align 2, 0 -_0817FED0: .4byte gUnknown_3001240 -_0817FED4: .4byte sub_08184C34 -_0817FED8: - movs r0, #0x32 - ldrsh r1, [r5, r0] - adds r0, r1, #0 - adds r0, #0xc0 - adds r4, r0, #0 - cmp r0, #0 - bge _0817FEEA - ldr r2, _0817FF34 - adds r4, r1, r2 -_0817FEEA: - asrs r4, r4, #8 - lsls r4, r4, #8 - subs r4, r0, r4 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - movs r0, #8 - ldrsh r1, [r6, r0] - lsls r1, r1, #0x11 - asrs r1, r1, #0x10 - adds r0, r4, #0 - bl Cos - rsbs r0, r0, #0 - strh r0, [r5, #0x24] - movs r2, #8 - ldrsh r1, [r6, r2] - adds r0, r4, #0 - bl Sin - ldrh r1, [r6, #8] - adds r0, r0, r1 - strh r0, [r5, #0x26] -_0817FF16: - ldr r0, _0817FF38 - lsls r1, r7, #1 - adds r1, r1, r7 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrh r0, [r1, #2] - ldrh r1, [r5, #0x32] - adds r0, r0, r1 - strh r0, [r5, #0x32] - adds r0, r5, #0 - bl sub_0817F5B8 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0817FF34: .4byte 0x000001BF -_0817FF38: .4byte gUnknown_3001240 - thumb_func_end sub_0817FE9C - - thumb_func_start pokemonanimfunc_14 -pokemonanimfunc_14: @ 0x0817FF3C - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F604 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x2e] - ldr r2, _0817FF74 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r1, #6] - movs r0, #6 - strh r0, [r1, #8] - movs r0, #0x18 - strh r0, [r1, #2] - adds r0, r4, #0 - bl sub_0817FE9C - ldr r0, _0817FF78 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0817FF74: .4byte gUnknown_3001240 -_0817FF78: .4byte sub_0817FE9C - thumb_func_end pokemonanimfunc_14 - - thumb_func_start pokemonanimfunc_15 -pokemonanimfunc_15: @ 0x0817FF7C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0817FF98 - ldrb r0, [r4, #5] - lsrs r0, r0, #4 - lsls r0, r0, #4 - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r2, #0 - adds r0, r0, r1 - strh r0, [r4, #0x3c] -_0817FF98: - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0x80 - ble _0817FFB8 - ldrh r0, [r4, #0x3c] - movs r1, #0x10 - movs r2, #0 - movs r3, #0 - bl BlendPalette - ldr r0, _0817FFB4 - str r0, [r4, #0x1c] - b _0817FFD4 - .align 2, 0 -_0817FFB4: .4byte sub_08184C34 -_0817FFB8: - movs r2, #0x32 - ldrsh r0, [r4, r2] - movs r1, #0x10 - bl Sin - adds r2, r0, #0 - strh r2, [r4, #0x3a] - ldrh r0, [r4, #0x3c] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r1, #0x10 - movs r3, #0 - bl BlendPalette -_0817FFD4: - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_15 - - thumb_func_start pokemonanimfunc_16 -pokemonanimfunc_16: @ 0x0817FFE0 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - movs r7, #0 - movs r1, #0x32 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _0817FFF4 - adds r0, r6, #0 - bl HandleStartAffineAnim -_0817FFF4: - ldrh r5, [r6, #0x32] - movs r2, #0x32 - ldrsh r0, [r6, r2] - cmp r0, #0x28 - ble _0818001C - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r6, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - adds r0, r6, #0 - bl sub_0817F628 - ldr r0, _08180018 - str r0, [r6, #0x1c] - b _081800B0 - .align 2, 0 -_08180018: .4byte sub_08184C34 -_0818001C: - movs r1, #0x32 - ldrsh r0, [r6, r1] - lsls r0, r0, #7 - movs r1, #0x28 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r5, #0 - subs r0, #0xa - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x13 - bhi _08180042 - ldrh r0, [r6, #0x3c] - adds r0, #0x33 - strh r0, [r6, #0x3c] - movs r7, #0xff - ands r7, r0 -_08180042: - movs r2, #0x30 - ldrsh r0, [r6, r2] - cmp r0, #0 - bne _08180070 - lsls r5, r4, #0x10 - asrs r0, r5, #0x10 - movs r1, #0x28 - bl Sin - adds r4, r0, #0 - adds r0, r7, #0 - movs r1, #0x10 - bl Sin - ldr r1, _0818006C - adds r0, r0, r1 - adds r4, r4, r0 - strh r4, [r6, #0x36] - adds r4, r5, #0 - b _08180090 - .align 2, 0 -_0818006C: .4byte 0xFFFFFF00 -_08180070: - adds r0, r7, #0 - movs r1, #0x10 - bl Sin - adds r5, r0, #0 - lsls r4, r4, #0x10 - asrs r0, r4, #0x10 - movs r1, #0x28 - bl Sin - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r2, #0 - subs r1, r1, r5 - subs r1, r1, r0 - strh r1, [r6, #0x36] -_08180090: - asrs r0, r4, #0x10 - movs r1, #0x10 - bl Sin - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r0, r1 - strh r0, [r6, #0x38] - movs r2, #0x36 - ldrsh r1, [r6, r2] - movs r0, #0x38 - ldrsh r2, [r6, r0] - adds r0, r6, #0 - movs r3, #0 - bl SetAffineData -_081800B0: - ldrh r0, [r6, #0x32] - adds r0, #1 - strh r0, [r6, #0x32] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_16 - - thumb_func_start pokemonanimfunc_17 -pokemonanimfunc_17: @ 0x081800BC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - movs r0, #0 - mov r8, r0 - movs r7, #0 - movs r1, #0x32 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _081800D8 - adds r0, r5, #0 - bl HandleStartAffineAnim -_081800D8: - ldrh r6, [r5, #0x32] - movs r2, #0x32 - ldrsh r0, [r5, r2] - cmp r0, #0x28 - ble _08180104 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r5, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - adds r0, r5, #0 - bl sub_0817F628 - ldr r0, _08180100 - str r0, [r5, #0x1c] - mov r0, r8 - strh r0, [r5, #0x26] - b _081801B6 - .align 2, 0 -_08180100: .4byte sub_08184C34 -_08180104: - movs r1, #0x32 - ldrsh r0, [r5, r1] - lsls r0, r0, #7 - movs r1, #0x28 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r6, #0 - subs r0, #0xa - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x13 - bhi _0818012A - ldrh r0, [r5, #0x3c] - adds r0, #0x33 - strh r0, [r5, #0x3c] - movs r7, #0xff - ands r7, r0 -_0818012A: - movs r2, #0x30 - ldrsh r0, [r5, r2] - cmp r0, #0 - bne _0818014C - lsls r4, r4, #0x10 - asrs r0, r4, #0x10 - movs r1, #0x10 - bl Sin - ldr r2, _08180148 - adds r1, r2, #0 - subs r1, r1, r0 - strh r1, [r5, #0x36] - b _0818015E - .align 2, 0 -_08180148: .4byte 0xFFFFFF00 -_0818014C: - lsls r4, r4, #0x10 - asrs r0, r4, #0x10 - movs r1, #0x10 - bl Sin - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r0, r1 - strh r0, [r5, #0x36] -_0818015E: - adds r6, r4, #0 - adds r0, r7, #0 - movs r1, #8 - bl Sin - adds r4, r0, #0 - asrs r0, r6, #0x10 - movs r1, #0x28 - bl Sin - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r2, #0 - subs r4, r1, r4 - subs r4, r4, r0 - strh r4, [r5, #0x38] - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r4, r1 - beq _0818019C - movs r2, #0x38 - ldrsh r0, [r5, r2] - subs r0, r1, r0 - cmp r0, #0 - bge _08180196 - adds r0, #7 -_08180196: - lsls r0, r0, #0xd - lsrs r0, r0, #0x10 - mov r8, r0 -_0818019C: - mov r1, r8 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - rsbs r0, r0, #0 - strh r0, [r5, #0x26] - movs r2, #0x36 - ldrsh r1, [r5, r2] - movs r0, #0x38 - ldrsh r2, [r5, r0] - adds r0, r5, #0 - movs r3, #0 - bl SetAffineData -_081801B6: - ldrh r0, [r5, #0x32] - adds r0, #1 - strh r0, [r5, #0x32] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_17 - - thumb_func_start sub_081801C8 -sub_081801C8: @ 0x081801C8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - ldrh r0, [r4, #0x32] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldrh r0, [r4, #0x3a] - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r2, _08180214 - movs r1, #0x38 - ldrsh r0, [r4, r1] - lsls r0, r0, #1 - adds r1, r0, r2 - ldrb r5, [r1] - adds r2, #1 - adds r0, r0, r2 - ldrb r6, [r0] - movs r1, #0 - cmp r5, #0xfe - beq _08180204 - subs r0, r6, r7 - muls r0, r5, r0 - adds r1, r6, #0 - bl __divsi3 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 -_08180204: - cmp r5, #0xff - bne _0818021C - ldr r0, _08180218 - str r0, [r4, #0x1c] - movs r0, #0 - strh r0, [r4, #0x26] - b _08180240 - .align 2, 0 -_08180214: .4byte gUnknown_85D34E0 -_08180218: .4byte sub_08184C34 -_0818021C: - mov r0, r8 - bl Sin - strh r0, [r4, #0x26] - cmp r7, r6 - bne _08180232 - ldrh r0, [r4, #0x38] - adds r0, #1 - strh r0, [r4, #0x38] - movs r0, #0 - b _0818023E -_08180232: - ldrh r0, [r4, #0x2e] - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - ldrh r0, [r4, #0x3a] - adds r0, #1 -_0818023E: - strh r0, [r4, #0x3a] -_08180240: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081801C8 - - thumb_func_start pokemonanimfunc_19 -pokemonanimfunc_19: @ 0x0818024C - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x30 - strh r0, [r4, #0x2e] - adds r0, r4, #0 - bl sub_081801C8 - ldr r0, _08180264 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08180264: .4byte sub_081801C8 - thumb_func_end pokemonanimfunc_19 - - thumb_func_start pokemonanimfunc_1A -pokemonanimfunc_1A: @ 0x08180268 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - bl sub_0817F5B8 - ldrh r0, [r4, #0x32] - lsls r7, r0, #0x18 - lsrs r5, r7, #0x18 - mov r8, r5 - cmp r0, #0 - bne _08180286 - adds r0, r4, #0 - bl HandleStartAffineAnim -_08180286: - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0x23 - ble _081802B0 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - adds r0, r4, #0 - bl sub_0817F628 - ldr r0, _081802AC - str r0, [r4, #0x1c] - movs r0, #0 - strh r0, [r4, #0x24] - b _0818030A - .align 2, 0 -_081802AC: .4byte sub_08184C34 -_081802B0: - adds r6, r5, #0 - subs r6, #0xa - lsls r0, r6, #7 - movs r1, #0x14 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r5, #9 - bhi _081802D6 - movs r2, #0x80 - lsls r2, r2, #1 - lsrs r3, r7, #0x19 - lsls r3, r3, #9 - adds r0, r4, #0 - adds r1, r2, #0 - bl HandleSetAffineData - b _0818030A -_081802D6: - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x13 - bhi _081802EE - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - movs r1, #5 - bl Sin - rsbs r0, r0, #0 - strh r0, [r4, #0x24] - b _0818030A -_081802EE: - movs r2, #0x80 - lsls r2, r2, #1 - movs r3, #0x23 - mov r0, r8 - subs r3, r3, r0 - lsrs r0, r3, #0x1f - adds r3, r3, r0 - asrs r3, r3, #1 - lsls r3, r3, #0x1a - lsrs r3, r3, #0x10 - adds r0, r4, #0 - adds r1, r2, #0 - bl HandleSetAffineData -_0818030A: - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_1A - - thumb_func_start pokemonanimfunc_1B -pokemonanimfunc_1B: @ 0x08180320 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r1, #0x32 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _08180332 - adds r0, r6, #0 - bl HandleStartAffineAnim -_08180332: - movs r1, #0x32 - ldrsh r0, [r6, r1] - cmp r0, #0x64 - ble _0818035C - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r6, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - movs r0, #0 - strh r0, [r6, #0x26] - adds r0, r6, #0 - bl sub_0817F628 - ldr r0, _08180358 - str r0, [r6, #0x1c] - b _08180394 - .align 2, 0 -_08180358: .4byte sub_08184C34 -_0818035C: - movs r1, #0x32 - ldrsh r0, [r6, r1] - lsls r0, r0, #8 - movs r1, #0x64 - bl __divsi3 - adds r4, r0, #0 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - adds r0, r4, #0 - movs r1, #0xa - bl Sin - strh r0, [r6, #0x26] - movs r5, #0x80 - lsls r5, r5, #1 - ldr r1, _081803A0 - adds r0, r4, #0 - bl Sin - adds r3, r0, #0 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - adds r0, r6, #0 - adds r1, r5, #0 - adds r2, r5, #0 - bl HandleSetAffineData -_08180394: - ldrh r0, [r6, #0x32] - adds r0, #1 - strh r0, [r6, #0x32] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081803A0: .4byte 0x00000CCC - thumb_func_end pokemonanimfunc_1B - - thumb_func_start sub_081803A4 -sub_081803A4: @ 0x081803A4 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r5, #0 - movs r1, #0x32 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _081803B8 - adds r0, r6, #0 - bl HandleStartAffineAnim -_081803B8: - movs r1, #0x32 - ldrsh r0, [r6, r1] - cmp r0, #0x64 - ble _081803E0 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r6, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - strh r5, [r6, #0x26] - adds r0, r6, #0 - bl sub_0817F628 - ldr r0, _081803DC - str r0, [r6, #0x1c] - b _0818042E - .align 2, 0 -_081803DC: .4byte sub_08184C34 -_081803E0: - movs r0, #0x32 - ldrsh r5, [r6, r0] - lsls r0, r5, #8 - movs r1, #0x64 - bl __divsi3 - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #9 - adds r0, r5, #0 - movs r1, #0x64 - bl __divsi3 - adds r5, r0, #0 - movs r0, #0xff - ands r5, r0 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - movs r0, #0x2e - ldrsh r1, [r6, r0] - adds r0, r4, #0 - bl Sin - strh r0, [r6, #0x26] - movs r4, #0x80 - lsls r4, r4, #1 - adds r0, r5, #0 - ldr r1, _0818043C - bl Sin - adds r3, r0, #0 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r4, #0 - bl HandleSetAffineData -_0818042E: - ldrh r0, [r6, #0x32] - adds r0, #1 - strh r0, [r6, #0x32] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0818043C: .4byte 0x00000CCC - thumb_func_end sub_081803A4 - - thumb_func_start pokemonanimfunc_1C -pokemonanimfunc_1C: @ 0x08180440 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0xa - strh r0, [r4, #0x2e] - adds r0, r4, #0 - bl sub_081803A4 - ldr r0, _08180458 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08180458: .4byte sub_081803A4 - thumb_func_end pokemonanimfunc_1C - - thumb_func_start sub_0818045C -sub_0818045C: @ 0x0818045C - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r5, #0 - movs r1, #0x32 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _08180470 - adds r0, r6, #0 - bl HandleStartAffineAnim -_08180470: - movs r2, #0x32 - ldrsh r0, [r6, r2] - cmp r0, #0x64 - ble _08180498 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r6, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - strh r5, [r6, #0x26] - adds r0, r6, #0 - bl sub_0817F628 - ldr r0, _08180494 - str r0, [r6, #0x1c] - b _081804F0 - .align 2, 0 -_08180494: .4byte sub_08184C34 -_08180498: - movs r0, #0x32 - ldrsh r5, [r6, r0] - lsls r0, r5, #8 - movs r1, #0x64 - bl __divsi3 - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #9 - adds r0, r5, #0 - movs r1, #0x64 - bl __divsi3 - adds r5, r0, #0 - movs r0, #0xff - ands r5, r0 - lsls r4, r4, #0x10 - asrs r0, r4, #0x10 - lsrs r4, r4, #0x1f - adds r0, r0, r4 - asrs r0, r0, #1 - movs r2, #0x2e - ldrsh r1, [r6, r2] - lsls r1, r1, #0x11 - asrs r1, r1, #0x10 - bl Sin - rsbs r0, r0, #0 - strh r0, [r6, #0x26] - movs r4, #0x80 - lsls r4, r4, #1 - adds r0, r5, #0 - ldr r1, _081804FC - bl Sin - adds r3, r0, #0 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r4, #0 - bl HandleSetAffineData -_081804F0: - ldrh r0, [r6, #0x32] - adds r0, #1 - strh r0, [r6, #0x32] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081804FC: .4byte 0x00000CCC - thumb_func_end sub_0818045C - - thumb_func_start pokemonanimfunc_18 -pokemonanimfunc_18: @ 0x08180500 - push {r4, lr} - adds r4, r0, #0 - movs r0, #5 - strh r0, [r4, #0x2e] - adds r0, r4, #0 - bl sub_0818045C - ldr r0, _08180518 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08180518: .4byte sub_0818045C - thumb_func_end pokemonanimfunc_18 - - thumb_func_start pokemonanimfunc_1D -pokemonanimfunc_1D: @ 0x0818051C - push {r4, r5, r6, lr} - adds r6, r0, #0 - bl sub_0817F5B8 - movs r5, #0 - movs r1, #0x32 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _08180534 - adds r0, r6, #0 - bl HandleStartAffineAnim -_08180534: - movs r1, #0x32 - ldrsh r0, [r6, r1] - cmp r0, #0x64 - ble _0818055C - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r6, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - strh r5, [r6, #0x24] - adds r0, r6, #0 - bl sub_0817F628 - ldr r0, _08180558 - str r0, [r6, #0x1c] - b _081805A8 - .align 2, 0 -_08180558: .4byte sub_08184C34 -_0818055C: - movs r0, #0x32 - ldrsh r5, [r6, r0] - lsls r0, r5, #8 - movs r1, #0x64 - bl __divsi3 - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #9 - adds r0, r5, #0 - movs r1, #0x64 - bl __divsi3 - adds r5, r0, #0 - movs r0, #0xff - ands r5, r0 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - adds r0, r4, #0 - movs r1, #8 - bl Sin - strh r0, [r6, #0x24] - movs r4, #0x80 - lsls r4, r4, #1 - adds r0, r5, #0 - ldr r1, _081805BC - bl Sin - adds r3, r0, #0 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r4, #0 - bl HandleSetAffineData -_081805A8: - ldrh r0, [r6, #0x32] - adds r0, #1 - strh r0, [r6, #0x32] - adds r0, r6, #0 - bl sub_0817F5B8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081805BC: .4byte 0x00000CCC - thumb_func_end pokemonanimfunc_1D - - thumb_func_start sub_081805C0 -sub_081805C0: @ 0x081805C0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r6, #0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _081805D6 - adds r0, r4, #0 - bl HandleStartAffineAnim - strh r6, [r4, #0x34] -_081805D6: - adds r0, r4, #0 - bl sub_0817F5B8 - movs r0, #0x32 - ldrsh r2, [r4, r0] - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #1 - adds r0, r0, r1 - cmp r2, r0 - ble _0818060C - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - strh r6, [r4, #0x26] - adds r0, r4, #0 - bl sub_0817F628 - ldr r0, _08180608 - str r0, [r4, #0x1c] - b _081806AA - .align 2, 0 -_08180608: .4byte sub_08184C34 -_0818060C: - movs r1, #0x36 - ldrsh r0, [r4, r1] - movs r1, #0x20 - bl Sin - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - movs r0, #0x32 - ldrsh r1, [r4, r0] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r1, r0 - ble _08180642 - adds r2, r0, #0 - lsls r0, r2, #1 - cmp r1, r0 - bge _08180642 - movs r0, #0x80 - adds r1, r2, #0 - bl __divsi3 - ldrh r1, [r4, #0x34] - adds r1, r1, r0 - strh r1, [r4, #0x34] -_08180642: - lsls r0, r5, #0x10 - asrs r1, r0, #0x10 - movs r2, #0x80 - lsls r2, r2, #1 - adds r5, r0, #0 - cmp r1, r2 - ble _0818065C - subs r0, r2, r1 - cmp r0, #0 - bge _08180658 - adds r0, #7 -_08180658: - lsls r0, r0, #0xd - lsrs r6, r0, #0x10 -_0818065C: - movs r1, #0x34 - ldrsh r0, [r4, r1] - movs r1, #0xa - bl Sin - rsbs r0, r0, #0 - lsls r1, r6, #0x10 - asrs r1, r1, #0x10 - subs r0, r0, r1 - strh r0, [r4, #0x26] - movs r2, #0x36 - ldrsh r0, [r4, r2] - movs r1, #0x20 - bl Sin - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r2, #0 - subs r1, r1, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - asrs r2, r5, #0x10 - adds r0, r4, #0 - movs r3, #0 - bl HandleSetAffineData - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r0, #0x80 - bl __divsi3 - ldrh r1, [r4, #0x36] - adds r1, r1, r0 - movs r0, #0xff - ands r1, r0 - strh r1, [r4, #0x36] -_081806AA: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081805C0 - - thumb_func_start pokemonanimfunc_00 -pokemonanimfunc_00: @ 0x081806B8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x10 - strh r0, [r4, #0x2e] - adds r0, r4, #0 - bl sub_081805C0 - ldr r0, _081806D0 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081806D0: .4byte sub_081805C0 - thumb_func_end pokemonanimfunc_00 - - thumb_func_start sub_081806D4 -sub_081806D4: @ 0x081806D4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r6, #0 - movs r0, #0x32 - ldrsh r4, [r5, r0] - movs r2, #0x3a - ldrsh r1, [r5, r2] - movs r0, #0x80 - bl __divsi3 - movs r2, #0x3c - ldrsh r1, [r5, r2] - muls r0, r1, r0 - cmp r4, r0 - ble _08180714 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r5, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - strh r6, [r5, #0x26] - adds r0, r5, #0 - bl sub_0817F628 - ldr r0, _08180710 - str r0, [r5, #0x1c] - b _0818077C - .align 2, 0 -_08180710: .4byte sub_08184C34 -_08180714: - movs r1, #0x36 - ldrsh r0, [r5, r1] - movs r1, #0x20 - bl Sin - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r2, #0 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - asrs r0, r0, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r0, r1 - ble _08180740 - subs r0, r1, r0 - cmp r0, #0 - bge _0818073C - adds r0, #7 -_0818073C: - lsls r0, r0, #0xd - lsrs r6, r0, #0x10 -_08180740: - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - rsbs r0, r0, #0 - strh r0, [r5, #0x26] - movs r1, #0x36 - ldrsh r0, [r5, r1] - movs r1, #0x30 - bl Sin - adds r1, r0, #0 - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - lsls r2, r4, #0x10 - asrs r2, r2, #0x10 - adds r0, r5, #0 - movs r3, #0 - bl HandleSetAffineData - ldrh r0, [r5, #0x32] - adds r0, #1 - strh r0, [r5, #0x32] - ldrh r0, [r5, #0x3a] - ldrh r1, [r5, #0x36] - adds r0, r0, r1 - movs r1, #0xff - ands r0, r1 - strh r0, [r5, #0x36] -_0818077C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081806D4 - - thumb_func_start pokemonanimfunc_13 -pokemonanimfunc_13: @ 0x08180784 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0818079E - adds r0, r4, #0 - bl HandleStartAffineAnim - movs r0, #3 - strh r0, [r4, #0x3c] - movs r0, #8 - strh r0, [r4, #0x3a] -_0818079E: - adds r0, r4, #0 - bl sub_081806D4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_13 - - thumb_func_start sub_081807AC -sub_081807AC: @ 0x081807AC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r4, r0, #0 - bl sub_0817F5B8 - ldrh r1, [r4, #0x2e] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _08180850 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #6] - str r1, [sp] - ldr r5, _08180854 - movs r3, #0x36 - ldrsh r2, [r4, r3] - lsls r1, r2, #1 - adds r1, r1, r2 - movs r3, #8 - ldrsh r2, [r0, r3] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r6, r0, #3 - adds r1, r1, r6 - adds r2, r1, r5 - adds r0, r5, #1 - adds r1, r1, r0 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrb r2, [r2] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - mov sb, r2 - subs r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sl, r0 - ldrh r7, [r4, #0x34] - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08180818 - adds r0, r4, #0 - bl HandleStartAffineAnim - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] -_08180818: - movs r2, #0x36 - ldrsh r1, [r4, r2] - lsls r0, r1, #1 - adds r0, r0, r1 - adds r0, r0, r6 - adds r5, #2 - mov r8, r5 - adds r1, r0, r5 - movs r5, #0 - ldrsb r5, [r1, r5] - cmp r5, #0 - bne _0818085C - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - strh r5, [r4, #0x24] - strh r5, [r4, #0x26] - adds r0, r4, #0 - bl sub_0817F628 - ldr r0, _08180858 - str r0, [r4, #0x1c] - b _081808E6 - .align 2, 0 -_08180850: .4byte gUnknown_3001240 -_08180854: .4byte gUnknown_85D37EE -_08180858: .4byte sub_08184C34 -_0818085C: - lsls r0, r7, #0x10 - asrs r5, r0, #0x10 - lsls r0, r5, #7 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - bl __divsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0xa - bl Sin - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - mov r3, sl - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - muls r0, r5, r0 - movs r1, #0x36 - ldrsh r2, [r4, r1] - lsls r1, r2, #1 - adds r1, r1, r2 - adds r1, r1, r6 - add r1, r8 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - bl __divsi3 - add r0, sb - strh r0, [r4, #0x24] - ldr r2, [sp] - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - movs r3, #0x24 - ldrsh r1, [r4, r3] - muls r0, r1, r0 - rsbs r0, r0, #0 - cmp r0, #0 - bge _081808B0 - adds r0, #7 -_081808B0: - lsls r3, r0, #0xd - lsrs r3, r3, #0x10 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r2, #0 - bl HandleSetAffineData - movs r0, #0x36 - ldrsh r1, [r4, r0] - lsls r0, r1, #1 - adds r0, r0, r1 - adds r0, r0, r6 - add r0, r8 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r5, r0 - bne _081808E0 - ldrh r0, [r4, #0x36] - adds r0, #1 - strh r0, [r4, #0x36] - movs r0, #0 - b _081808E4 -_081808E0: - ldrh r0, [r4, #0x34] - adds r0, #1 -_081808E4: - strh r0, [r4, #0x34] -_081808E6: - adds r0, r4, #0 - bl sub_0817F5B8 - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_081807AC - - thumb_func_start pokemonanimfunc_05 -pokemonanimfunc_05: @ 0x081808FC - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F604 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x2e] - ldr r2, _08180930 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #0x80 - lsls r0, r0, #5 - strh r0, [r1, #6] - ldrh r0, [r4, #0x3a] - strh r0, [r1, #8] - adds r0, r4, #0 - bl sub_081807AC - ldr r0, _08180934 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08180930: .4byte gUnknown_3001240 -_08180934: .4byte sub_081807AC - thumb_func_end pokemonanimfunc_05 - - thumb_func_start sub_08180938 -sub_08180938: @ 0x08180938 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08180954 - ldrb r0, [r4, #5] - lsrs r0, r0, #4 - lsls r0, r0, #4 - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r2, #0 - adds r0, r0, r1 - strh r0, [r4, #0x3c] -_08180954: - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0x80 - ble _08180978 - ldrh r0, [r4, #0x3c] - ldr r3, _08180970 - movs r1, #0x10 - movs r2, #0 - bl BlendPalette - ldr r0, _08180974 - str r0, [r4, #0x1c] - b _08180994 - .align 2, 0 -_08180970: .4byte 0x000002DF -_08180974: .4byte sub_08184C34 -_08180978: - movs r2, #0x32 - ldrsh r0, [r4, r2] - movs r1, #0xc - bl Sin - adds r2, r0, #0 - strh r2, [r4, #0x3a] - ldrh r0, [r4, #0x3c] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r3, _081809A0 - movs r1, #0x10 - bl BlendPalette -_08180994: - ldrh r0, [r4, #0x32] - adds r0, #2 - strh r0, [r4, #0x32] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081809A0: .4byte 0x000002DF - thumb_func_end sub_08180938 - - thumb_func_start pokemonanimfunc_21 -pokemonanimfunc_21: @ 0x081809A4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _081809C0 - ldrb r0, [r4, #5] - lsrs r0, r0, #4 - lsls r0, r0, #4 - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r2, #0 - adds r0, r0, r1 - strh r0, [r4, #0x3c] -_081809C0: - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0x80 - ble _081809E0 - ldrh r0, [r4, #0x3c] - movs r1, #0x10 - movs r2, #0 - movs r3, #0x1f - bl BlendPalette - ldr r0, _081809DC - str r0, [r4, #0x1c] - b _081809FC - .align 2, 0 -_081809DC: .4byte sub_08184C34 -_081809E0: - movs r2, #0x32 - ldrsh r0, [r4, r2] - movs r1, #0xc - bl Sin - adds r2, r0, #0 - strh r2, [r4, #0x3a] - ldrh r0, [r4, #0x3c] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r1, #0x10 - movs r3, #0x1f - bl BlendPalette -_081809FC: - ldrh r0, [r4, #0x32] - adds r0, #2 - strh r0, [r4, #0x32] - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_21 - - thumb_func_start pokemonanimfunc_22 -pokemonanimfunc_22: @ 0x08180A08 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08180A24 - ldrb r0, [r4, #5] - lsrs r0, r0, #4 - lsls r0, r0, #4 - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r2, #0 - adds r0, r0, r1 - strh r0, [r4, #0x3c] -_08180A24: - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0x80 - ble _08180A44 - ldrh r0, [r4, #0x3c] - movs r3, #0xf8 - lsls r3, r3, #7 - movs r1, #0x10 - movs r2, #0 - bl BlendPalette - ldr r0, _08180A40 - str r0, [r4, #0x1c] - b _08180A62 - .align 2, 0 -_08180A40: .4byte sub_08184C34 -_08180A44: - movs r2, #0x32 - ldrsh r0, [r4, r2] - movs r1, #0xc - bl Sin - adds r2, r0, #0 - strh r2, [r4, #0x3a] - ldrh r0, [r4, #0x3c] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r3, #0xf8 - lsls r3, r3, #7 - movs r1, #0x10 - bl BlendPalette -_08180A62: - ldrh r0, [r4, #0x32] - adds r0, #2 - strh r0, [r4, #0x32] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_22 - - thumb_func_start sub_08180A70 -sub_08180A70: @ 0x08180A70 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08180A8C - ldrb r0, [r4, #5] - lsrs r0, r0, #4 - lsls r0, r0, #4 - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r2, #0 - adds r0, r0, r1 - strh r0, [r4, #0x3c] -_08180A8C: - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0x80 - ble _08180AB0 - ldrh r0, [r4, #0x3c] - ldr r3, _08180AA8 - movs r1, #0x10 - movs r2, #0 - bl BlendPalette - ldr r0, _08180AAC - str r0, [r4, #0x1c] - b _08180ACC - .align 2, 0 -_08180AA8: .4byte 0x000003FF -_08180AAC: .4byte sub_08184C34 -_08180AB0: - movs r2, #0x32 - ldrsh r0, [r4, r2] - movs r1, #0xc - bl Sin - adds r2, r0, #0 - strh r2, [r4, #0x3a] - ldrh r0, [r4, #0x3c] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r3, _08180AD8 - movs r1, #0x10 - bl BlendPalette -_08180ACC: - ldrh r0, [r4, #0x32] - adds r0, #2 - strh r0, [r4, #0x32] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08180AD8: .4byte 0x000003FF - thumb_func_end sub_08180A70 - - thumb_func_start pokemonanimfunc_24 -pokemonanimfunc_24: @ 0x08180ADC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08180AF8 - ldrb r0, [r4, #5] - lsrs r0, r0, #4 - lsls r0, r0, #4 - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r2, #0 - adds r0, r0, r1 - strh r0, [r4, #0x3c] -_08180AF8: - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0x80 - ble _08180B1C - ldrh r0, [r4, #0x3c] - ldr r3, _08180B14 - movs r1, #0x10 - movs r2, #0 - bl BlendPalette - ldr r0, _08180B18 - str r0, [r4, #0x1c] - b _08180B38 - .align 2, 0 -_08180B14: .4byte 0x00006018 -_08180B18: .4byte sub_08184C34 -_08180B1C: - movs r2, #0x32 - ldrsh r0, [r4, r2] - movs r1, #0xc - bl Sin - adds r2, r0, #0 - strh r2, [r4, #0x3a] - ldrh r0, [r4, #0x3c] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r3, _08180B44 - movs r1, #0x10 - bl BlendPalette -_08180B38: - ldrh r0, [r4, #0x32] - adds r0, #2 - strh r0, [r4, #0x32] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08180B44: .4byte 0x00006018 - thumb_func_end pokemonanimfunc_24 - - thumb_func_start pokemonanimfunc_25 -pokemonanimfunc_25: @ 0x08180B48 - push {r4, lr} - adds r4, r0, #0 - bl HandleStartAffineAnim - ldr r0, _08180B5C - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08180B5C: .4byte sub_08180B60 - thumb_func_end pokemonanimfunc_25 - - thumb_func_start sub_08180B60 -sub_08180B60: @ 0x08180B60 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - ldrh r0, [r4, #0x24] - adds r0, #1 - strh r0, [r4, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #7 - ble _08180B82 - movs r0, #8 - strh r0, [r4, #0x24] - movs r0, #2 - strh r0, [r4, #0x3c] - ldr r0, _08180B90 - str r0, [r4, #0x1c] -_08180B82: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08180B90: .4byte sub_08180B94 - thumb_func_end sub_08180B60 - - thumb_func_start sub_08180B94 -sub_08180B94: @ 0x08180B94 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - ldrh r1, [r4, #0x24] - ldrh r0, [r4, #0x3c] - subs r1, r1, r0 - strh r1, [r4, #0x24] - adds r0, #1 - adds r2, r0, #0 - strh r0, [r4, #0x3c] - lsls r1, r1, #0x10 - cmp r1, #0 - bgt _08180BDE - lsls r0, r2, #0x18 - lsrs r2, r0, #0x18 - movs r0, #0 - strh r0, [r4, #0x3a] - ldrh r1, [r4, #0x24] - ldr r5, _08180BEC - movs r3, #8 - rsbs r3, r3, #0 -_08180BC0: - subs r0, r1, r2 - lsls r0, r0, #0x10 - ldrh r1, [r4, #0x3a] - adds r1, #1 - strh r1, [r4, #0x3a] - adds r1, r2, #1 - lsls r1, r1, #0x18 - lsrs r2, r1, #0x18 - lsrs r1, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, r3 - bgt _08180BC0 - movs r0, #1 - strh r0, [r4, #0x38] - str r5, [r4, #0x1c] -_08180BDE: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08180BEC: .4byte sub_08180BF0 - thumb_func_end sub_08180B94 - - thumb_func_start sub_08180BF0 -sub_08180BF0: @ 0x08180BF0 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - ldrh r0, [r4, #0x24] - ldrh r1, [r4, #0x3c] - subs r0, r0, r1 - strh r0, [r4, #0x24] - adds r1, #1 - strh r1, [r4, #0x3c] - movs r0, #0x38 - ldrsh r1, [r4, r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - movs r2, #0x3a - ldrsh r1, [r4, r2] - bl __divsi3 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldrh r0, [r4, #0x38] - adds r0, #1 - strh r0, [r4, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrh r2, [r4, #0x3a] - movs r3, #0x3a - ldrsh r1, [r4, r3] - cmp r0, r1 - ble _08180C30 - strh r2, [r4, #0x38] -_08180C30: - movs r2, #0x80 - lsls r2, r2, #1 - lsls r3, r5, #8 - adds r0, r4, #0 - adds r1, r2, #0 - bl HandleSetAffineData - movs r1, #0x24 - ldrsh r0, [r4, r1] - movs r1, #8 - rsbs r1, r1, #0 - cmp r0, r1 - bge _08180C5A - strh r1, [r4, #0x24] - movs r0, #2 - strh r0, [r4, #0x36] - movs r0, #0 - strh r0, [r4, #0x34] - strh r5, [r4, #0x32] - ldr r0, _08180C68 - str r0, [r4, #0x1c] -_08180C5A: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08180C68: .4byte sub_08180C6C - thumb_func_end sub_08180BF0 - - thumb_func_start sub_08180C6C -sub_08180C6C: @ 0x08180C6C - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - ldrh r1, [r4, #0x34] - movs r2, #0x34 - ldrsh r0, [r4, r2] - cmp r0, #0xb - ble _08180CB4 - ldrh r0, [r4, #0x32] - subs r0, #2 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _08180C8E - movs r0, #0 - strh r0, [r4, #0x32] -_08180C8E: - movs r2, #0x80 - lsls r2, r2, #1 - ldrh r3, [r4, #0x32] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x10 - adds r0, r4, #0 - adds r1, r2, #0 - bl HandleSetAffineData - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08180CC8 - ldr r0, _08180CB0 - str r0, [r4, #0x1c] - b _08180CC8 - .align 2, 0 -_08180CB0: .4byte sub_08180CD4 -_08180CB4: - ldrh r0, [r4, #0x36] - ldrh r2, [r4, #0x24] - adds r0, r0, r2 - strh r0, [r4, #0x24] - movs r2, #0x36 - ldrsh r0, [r4, r2] - rsbs r0, r0, #0 - strh r0, [r4, #0x36] - adds r0, r1, #1 - strh r0, [r4, #0x34] -_08180CC8: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08180C6C - - thumb_func_start sub_08180CD4 -sub_08180CD4: @ 0x08180CD4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - ldrh r0, [r4, #0x24] - adds r0, #2 - strh r0, [r4, #0x24] - lsls r0, r0, #0x10 - cmp r0, #0 - ble _08180CF6 - movs r0, #0 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0817F628 - ldr r0, _08180D04 - str r0, [r4, #0x1c] -_08180CF6: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08180D04: .4byte sub_08184C34 - thumb_func_end sub_08180CD4 - - thumb_func_start pokemonanimfunc_26 -pokemonanimfunc_26: @ 0x08180D08 - push {r4, lr} - adds r4, r0, #0 - bl HandleStartAffineAnim - movs r0, #0 - strh r0, [r4, #0x34] - ldr r0, _08180D20 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08180D20: .4byte sub_08180D24 - thumb_func_end pokemonanimfunc_26 - - thumb_func_start sub_08180D24 -sub_08180D24: @ 0x08180D24 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - ldrh r0, [r4, #0x24] - adds r0, #1 - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x26] - subs r0, #1 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x24] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08180D4E - movs r1, #0x34 - ldrsh r0, [r4, r1] - cmp r0, #0 - bgt _08180D4E - movs r0, #0xa - strh r0, [r4, #0x34] -_08180D4E: - movs r1, #0x24 - ldrsh r0, [r4, r1] - cmp r0, #7 - ble _08180D66 - movs r1, #0 - movs r0, #8 - strh r0, [r4, #0x24] - ldr r0, _08180D74 - strh r0, [r4, #0x26] - strh r1, [r4, #0x36] - ldr r0, _08180D78 - str r0, [r4, #0x1c] -_08180D66: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08180D74: .4byte 0x0000FFF8 -_08180D78: .4byte sub_08180D7C - thumb_func_end sub_08180D24 - - thumb_func_start sub_08180D7C -sub_08180D7C: @ 0x08180D7C - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - movs r1, #0x36 - ldrsh r0, [r4, r1] - movs r1, #0x10 - bl Cos - subs r0, #8 - strh r0, [r4, #0x24] - movs r1, #0x36 - ldrsh r0, [r4, r1] - movs r1, #0x10 - bl Sin - subs r0, #8 - strh r0, [r4, #0x26] - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0x3f - ble _08180DB4 - movs r0, #0xa0 - strh r0, [r4, #0x32] - movs r0, #0xa - strh r0, [r4, #0x34] - ldr r0, _08180DD4 - str r0, [r4, #0x1c] -_08180DB4: - ldrh r0, [r4, #0x36] - adds r0, #8 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x40 - ble _08180DC6 - movs r0, #0x40 - strh r0, [r4, #0x36] -_08180DC6: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08180DD4: .4byte sub_08180DD8 - thumb_func_end sub_08180D7C - - thumb_func_start sub_08180DD8 -sub_08180DD8: @ 0x08180DD8 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - ldrh r1, [r4, #0x34] - movs r2, #0x34 - ldrsh r0, [r4, r2] - cmp r0, #0 - ble _08180DF0 - subs r0, r1, #1 - strh r0, [r4, #0x34] - b _08180E42 -_08180DF0: - movs r1, #0x32 - ldrsh r0, [r4, r1] - movs r1, #5 - bl Cos - subs r0, #4 - movs r5, #0 - strh r0, [r4, #0x24] - movs r2, #0x32 - ldrsh r0, [r4, r2] - movs r1, #5 - bl Sin - rsbs r0, r0, #0 - adds r0, #4 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x32] - subs r0, #4 - strh r0, [r4, #0x32] - movs r0, #0x32 - ldrsh r3, [r4, r0] - subs r3, #0x20 - movs r2, #0x80 - lsls r2, r2, #1 - lsls r3, r3, #0x19 - lsrs r3, r3, #0x10 - adds r0, r4, #0 - adds r1, r2, #0 - bl HandleSetAffineData - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0x20 - bgt _08180E42 - strh r5, [r4, #0x24] - strh r5, [r4, #0x26] - adds r0, r4, #0 - bl sub_0817F628 - ldr r0, _08180E50 - str r0, [r4, #0x1c] -_08180E42: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08180E50: .4byte sub_08184C34 - thumb_func_end sub_08180DD8 - - thumb_func_start pokemonanimfunc_27 -pokemonanimfunc_27: @ 0x08180E54 - push {r4, lr} - adds r3, r0, #0 - ldrh r1, [r3, #0x34] - movs r2, #0x34 - ldrsh r0, [r3, r2] - cmp r0, #0 - ble _08180E66 - subs r0, r1, #1 - b _08180EAA -_08180E66: - movs r2, #0 - movs r1, #0x36 - ldrsh r0, [r3, r1] - cmp r0, #0 - bne _08180E72 - movs r2, #1 -_08180E72: - strh r2, [r3, #0x36] - movs r0, #0x3e - adds r0, r0, r3 - mov ip, r0 - lsls r2, r2, #2 - ldrb r1, [r0] - movs r4, #5 - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r1 - orrs r0, r2 - mov r1, ip - strb r0, [r1] - ldrh r0, [r3, #0x32] - adds r0, #1 - strh r0, [r3, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x13 - ble _08180EA8 - ldrb r0, [r1] - adds r1, r4, #0 - ands r1, r0 - mov r2, ip - strb r1, [r2] - ldr r0, _08180EB4 - str r0, [r3, #0x1c] -_08180EA8: - movs r0, #2 -_08180EAA: - strh r0, [r3, #0x34] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08180EB4: .4byte sub_08184C34 - thumb_func_end pokemonanimfunc_27 - - thumb_func_start pokemonanimfunc_28 -pokemonanimfunc_28: @ 0x08180EB8 - push {r4, lr} - adds r4, r0, #0 - bl HandleStartAffineAnim - ldr r0, _08180ECC - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08180ECC: .4byte sub_08180ED0 - thumb_func_end pokemonanimfunc_28 - - thumb_func_start sub_08180ED0 -sub_08180ED0: @ 0x08180ED0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - ldrh r0, [r4, #0x24] - subs r0, #1 - strh r0, [r4, #0x24] - ldrh r1, [r4, #0x26] - adds r1, #1 - strh r1, [r4, #0x26] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x10 - rsbs r1, r1, #0 - cmp r0, r1 - bgt _08180F00 - ldr r0, _08180F0C - strh r0, [r4, #0x24] - movs r0, #0x10 - strh r0, [r4, #0x26] - ldr r0, _08180F10 - str r0, [r4, #0x1c] - movs r0, #0xa0 - strh r0, [r4, #0x32] -_08180F00: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08180F0C: .4byte 0x0000FFF0 -_08180F10: .4byte sub_08180F14 - thumb_func_end sub_08180ED0 - - thumb_func_start sub_08180F14 -sub_08180F14: @ 0x08180F14 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - ldrh r0, [r4, #0x32] - subs r0, #4 - strh r0, [r4, #0x32] - movs r1, #0x32 - ldrsh r0, [r4, r1] - movs r1, #0x16 - bl Cos - strh r0, [r4, #0x24] - movs r1, #0x32 - ldrsh r0, [r4, r1] - movs r1, #0x16 - bl Sin - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - movs r0, #0x32 - ldrsh r3, [r4, r0] - subs r3, #0x20 - movs r2, #0x80 - lsls r2, r2, #1 - lsls r3, r3, #0x19 - lsrs r3, r3, #0x10 - adds r0, r4, #0 - adds r1, r2, #0 - bl HandleSetAffineData - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0x20 - bgt _08180F5E - ldr r0, _08180F6C - str r0, [r4, #0x1c] -_08180F5E: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08180F6C: .4byte sub_08180F70 - thumb_func_end sub_08180F14 - - thumb_func_start sub_08180F70 -sub_08180F70: @ 0x08180F70 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - ldrh r1, [r4, #0x24] - subs r1, #1 - strh r1, [r4, #0x24] - ldrh r0, [r4, #0x26] - adds r0, #1 - strh r0, [r4, #0x26] - lsls r1, r1, #0x10 - cmp r1, #0 - bgt _08180F94 - adds r0, r4, #0 - bl sub_0817F628 - ldr r0, _08180FA0 - str r0, [r4, #0x1c] -_08180F94: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08180FA0: .4byte sub_08184C34 - thumb_func_end sub_08180F70 - - thumb_func_start pokemonanimfunc_29 -pokemonanimfunc_29: @ 0x08180FA4 - push {r4, lr} - adds r4, r0, #0 - bl HandleStartAffineAnim - ldr r0, _08180FB8 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08180FB8: .4byte sub_08180FBC - thumb_func_end pokemonanimfunc_29 - - thumb_func_start sub_08180FBC -sub_08180FBC: @ 0x08180FBC - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - ldrh r1, [r4, #0x24] - adds r1, #1 - strh r1, [r4, #0x24] - ldrh r0, [r4, #0x26] - subs r0, #1 - strh r0, [r4, #0x26] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0xf - ble _08180FE0 - movs r0, #0 - strh r0, [r4, #0x32] - ldr r0, _08180FEC - str r0, [r4, #0x1c] -_08180FE0: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08180FEC: .4byte sub_08180FF0 - thumb_func_end sub_08180FBC - - thumb_func_start sub_08180FF0 -sub_08180FF0: @ 0x08180FF0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - ldrh r0, [r4, #0x32] - adds r0, #0x10 - strh r0, [r4, #0x32] - ldrh r2, [r4, #0x24] - movs r0, #0x24 - ldrsh r1, [r4, r0] - movs r0, #0x10 - rsbs r0, r0, #0 - cmp r1, r0 - bgt _08181028 - ldr r0, _08181020 - strh r0, [r4, #0x24] - movs r0, #0x10 - strh r0, [r4, #0x26] - movs r0, #0 - strh r0, [r4, #0x32] - ldr r0, _08181024 - str r0, [r4, #0x1c] - b _08181032 - .align 2, 0 -_08181020: .4byte 0x0000FFF0 -_08181024: .4byte sub_08181050 -_08181028: - subs r0, r2, #2 - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x26] - adds r0, #2 - strh r0, [r4, #0x26] -_08181032: - movs r2, #0x80 - lsls r2, r2, #1 - ldrh r3, [r4, #0x32] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x10 - adds r0, r4, #0 - adds r1, r2, #0 - bl HandleSetAffineData - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08180FF0 - - thumb_func_start sub_08181050 -sub_08181050: @ 0x08181050 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - ldrh r1, [r4, #0x24] - adds r1, #1 - movs r2, #0 - strh r1, [r4, #0x24] - ldrh r0, [r4, #0x26] - subs r0, #1 - strh r0, [r4, #0x26] - lsls r1, r1, #0x10 - cmp r1, #0 - blt _0818107A - strh r2, [r4, #0x24] - strh r2, [r4, #0x26] - adds r0, r4, #0 - bl sub_0817F628 - ldr r0, _08181088 - str r0, [r4, #0x1c] -_0818107A: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08181088: .4byte sub_08184C34 - thumb_func_end sub_08181050 - - thumb_func_start pokemonanimfunc_2A -pokemonanimfunc_2A: @ 0x0818108C - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F604 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x2e] - ldr r2, _081810B8 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #2 - strh r0, [r1, #2] - adds r0, r4, #0 - bl sub_081810C0 - ldr r0, _081810BC - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081810B8: .4byte gUnknown_3001240 -_081810BC: .4byte sub_081810C0 - thumb_func_end pokemonanimfunc_2A - - thumb_func_start sub_081810C0 -sub_081810C0: @ 0x081810C0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r6, _081810E0 - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r6 - ldrh r0, [r1] - cmp r0, #0 - beq _081810E4 - subs r0, #1 - strh r0, [r1] - b _081811F6 - .align 2, 0 -_081810E0: .4byte gUnknown_3001240 -_081810E4: - adds r0, r4, #0 - bl sub_0817F5B8 - ldrh r0, [r4, #0x32] - movs r1, #0x32 - ldrsh r5, [r4, r1] - cmp r5, #0 - bne _0818111C - adds r0, #1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl HandleStartAffineAnim - movs r2, #0x2e - ldrsh r1, [r4, r2] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrh r0, [r0, #2] - strh r0, [r4, #0x3c] - ldr r0, _08181160 - strh r0, [r4, #0x34] - movs r0, #1 - rsbs r0, r0, #0 - strh r0, [r4, #0x36] - strh r5, [r4, #0x38] - strh r5, [r4, #0x3a] -_0818111C: - movs r3, #0x3c - ldrsh r1, [r4, r3] - movs r6, #0x34 - ldrsh r0, [r4, r6] - lsls r0, r0, #1 - muls r1, r0, r1 - ldrh r0, [r4, #0x24] - adds r1, r1, r0 - strh r1, [r4, #0x24] - ldrh r2, [r4, #0x3c] - ldrh r0, [r4, #0x36] - adds r3, r0, #0 - muls r3, r2, r3 - adds r0, r3, #0 - ldrh r6, [r4, #0x26] - adds r2, r0, r6 - strh r2, [r4, #0x26] - ldrh r0, [r4, #0x3a] - adds r0, #8 - strh r0, [r4, #0x3a] - adds r1, #0xf - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - cmp r1, #0x1e - bls _08181164 - movs r1, #0x34 - ldrsh r0, [r4, r1] - lsls r0, r0, #4 - strh r0, [r4, #0x24] - movs r2, #0x34 - ldrsh r0, [r4, r2] - rsbs r0, r0, #0 - strh r0, [r4, #0x34] - b _08181180 - .align 2, 0 -_08181160: .4byte 0x0000FFFF -_08181164: - adds r0, r2, #0 - adds r0, #0xf - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x1e - bls _08181186 - movs r3, #0x36 - ldrsh r0, [r4, r3] - lsls r0, r0, #4 - strh r0, [r4, #0x26] - movs r6, #0x36 - ldrsh r0, [r4, r6] - rsbs r0, r0, #0 - strh r0, [r4, #0x36] -_08181180: - ldrh r0, [r4, #0x38] - adds r0, #1 - strh r0, [r4, #0x38] -_08181186: - movs r1, #0x38 - ldrsh r0, [r4, r1] - cmp r0, #5 - ble _081811DE - movs r2, #0x24 - ldrsh r0, [r4, r2] - cmp r0, #0 - bgt _081811DE - movs r3, #0 - strh r3, [r4, #0x24] - strh r3, [r4, #0x26] - ldr r5, _081811D0 - movs r6, #0x2e - ldrsh r0, [r4, r6] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrh r2, [r1, #4] - movs r6, #4 - ldrsh r0, [r1, r6] - cmp r0, #1 - ble _081811D4 - subs r0, r2, #1 - strh r0, [r1, #4] - strh r3, [r4, #0x38] - strh r3, [r4, #0x3a] - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0xa - strh r1, [r0] - b _081811DE - .align 2, 0 -_081811D0: .4byte gUnknown_3001240 -_081811D4: - adds r0, r4, #0 - bl sub_0817F628 - ldr r0, _081811FC - str r0, [r4, #0x1c] -_081811DE: - movs r2, #0x80 - lsls r2, r2, #1 - ldrh r3, [r4, #0x3a] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x10 - adds r0, r4, #0 - adds r1, r2, #0 - bl HandleSetAffineData - adds r0, r4, #0 - bl sub_0817F5B8 -_081811F6: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081811FC: .4byte sub_08184C34 - thumb_func_end sub_081810C0 - - thumb_func_start pokemonanimfunc_2B -pokemonanimfunc_2B: @ 0x08181200 - push {r4, lr} - adds r4, r0, #0 - bl HandleStartAffineAnim - movs r0, #0 - strh r0, [r4, #0x3a] - strh r0, [r4, #0x3c] - ldr r0, _08181218 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08181218: .4byte sub_0818121C - thumb_func_end pokemonanimfunc_2B - - thumb_func_start sub_0818121C -sub_0818121C: @ 0x0818121C - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - ldrh r0, [r4, #0x3a] - adds r0, #4 - strh r0, [r4, #0x3a] - movs r1, #0x3a - ldrsh r0, [r4, r1] - movs r1, #0x10 - bl Sin - rsbs r0, r0, #0 - strh r0, [r4, #0x24] - movs r1, #0x3a - ldrsh r0, [r4, r1] - lsls r0, r0, #1 - movs r1, #0xff - ands r0, r1 - movs r1, #8 - bl Sin - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - movs r1, #0x3a - ldrsh r0, [r4, r1] - cmp r0, #0xc0 - ble _08181266 - movs r1, #0x3c - ldrsh r0, [r4, r1] - cmp r0, #1 - bne _08181266 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r2, #0 - b _0818127E -_08181266: - movs r1, #0x3a - ldrsh r0, [r4, r1] - cmp r0, #0x40 - ble _0818128A - movs r1, #0x3c - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0818128A - ldr r1, _081812BC - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 -_0818127E: - movs r3, #0 - bl HandleSetAffineData - ldrh r0, [r4, #0x3c] - adds r0, #1 - strh r0, [r4, #0x3c] -_0818128A: - movs r1, #0x3a - ldrsh r0, [r4, r1] - cmp r0, #0xff - ble _081812B0 - movs r0, #0 - strh r0, [r4, #0x24] - strh r0, [r4, #0x26] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - adds r0, r4, #0 - bl sub_0817F628 - ldr r0, _081812C0 - str r0, [r4, #0x1c] -_081812B0: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081812BC: .4byte 0xFFFFFF00 -_081812C0: .4byte sub_08184C34 - thumb_func_end sub_0818121C - - thumb_func_start pokemonanimfunc_2C -pokemonanimfunc_2C: @ 0x081812C4 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x32] - adds r0, #1 - movs r2, #0 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - bne _081812EE - ldrb r0, [r4, #5] - lsrs r0, r0, #4 - lsls r0, r0, #4 - movs r3, #0x80 - lsls r3, r3, #1 - adds r1, r3, #0 - adds r0, r0, r1 - strh r0, [r4, #0x3c] - strh r2, [r4, #0x3a] - strh r2, [r4, #0x38] - strh r2, [r4, #0x36] -_081812EE: - ldr r1, _08181308 - movs r2, #0x3a - ldrsh r0, [r4, r2] - lsls r2, r0, #1 - adds r0, r1, #1 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, #0xff - bne _08181310 - ldr r0, _0818130C - str r0, [r4, #0x1c] - b _0818137A - .align 2, 0 -_08181308: .4byte gUnknown_85D34C4 -_0818130C: .4byte sub_08184C34 -_08181310: - movs r3, #0x36 - ldrsh r0, [r4, r3] - cmp r0, #1 - bne _08181346 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _08181334 - ldrh r0, [r4, #0x3c] - ldr r3, _08181330 - movs r1, #0x10 - movs r2, #0x10 - bl BlendPalette - b _08181340 - .align 2, 0 -_08181330: .4byte 0x000003FF -_08181334: - ldrh r0, [r4, #0x3c] - ldr r3, _0818136C - movs r1, #0x10 - movs r2, #0 - bl BlendPalette -_08181340: - movs r0, #0 - strh r0, [r4, #0x36] - ldr r1, _08181370 -_08181346: - movs r2, #0x3a - ldrsh r0, [r4, r2] - lsls r0, r0, #1 - adds r1, #1 - adds r0, r0, r1 - ldrb r1, [r0] - movs r3, #0x38 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _08181374 - movs r1, #0 - movs r0, #1 - strh r0, [r4, #0x36] - strh r1, [r4, #0x38] - ldrh r0, [r4, #0x3a] - adds r0, #1 - strh r0, [r4, #0x3a] - b _0818137A - .align 2, 0 -_0818136C: .4byte 0x000003FF -_08181370: .4byte gUnknown_85D34C4 -_08181374: - ldrh r0, [r4, #0x38] - adds r0, #1 - strh r0, [r4, #0x38] -_0818137A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_2C - - thumb_func_start sub_08181380 -sub_08181380: @ 0x08181380 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r1, #0x32 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _08181392 - adds r0, r6, #0 - bl HandleStartAffineAnim -_08181392: - adds r0, r6, #0 - bl sub_0817F5B8 - ldr r4, _081813E4 - movs r3, #0x2e - ldrsh r1, [r6, r3] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, r0, r4 - movs r0, #0x32 - ldrsh r1, [r6, r0] - movs r3, #8 - ldrsh r0, [r2, r3] - cmp r1, r0 - ble _081813F8 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r6, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - movs r3, #0 - strh r3, [r6, #0x24] - movs r0, #0x2e - ldrsh r1, [r6, r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r4 - ldrh r2, [r1, #4] - movs r4, #4 - ldrsh r0, [r1, r4] - cmp r0, #1 - ble _081813E8 - subs r0, r2, #1 - strh r0, [r1, #4] - strh r3, [r6, #0x32] - b _08181434 - .align 2, 0 -_081813E4: .4byte gUnknown_3001240 -_081813E8: - adds r0, r6, #0 - bl sub_0817F628 - ldr r0, _081813F4 - str r0, [r6, #0x1c] - b _08181434 - .align 2, 0 -_081813F4: .4byte sub_08184C34 -_081813F8: - movs r1, #0x32 - ldrsh r0, [r6, r1] - lsls r0, r0, #8 - movs r3, #8 - ldrsh r1, [r2, r3] - bl __divsi3 - adds r4, r0, #0 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - adds r0, r4, #0 - movs r1, #0xa - bl Sin - rsbs r0, r0, #0 - strh r0, [r6, #0x24] - movs r5, #0x80 - lsls r5, r5, #1 - ldr r1, _08181448 - adds r0, r4, #0 - bl Sin - adds r3, r0, #0 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - adds r0, r6, #0 - adds r1, r5, #0 - adds r2, r5, #0 - bl HandleSetAffineData -_08181434: - ldrh r0, [r6, #0x32] - adds r0, #1 - strh r0, [r6, #0x32] - adds r0, r6, #0 - bl sub_0817F5B8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08181448: .4byte 0x00000CCC - thumb_func_end sub_08181380 - - thumb_func_start pokemonanimfunc_2D -pokemonanimfunc_2D: @ 0x0818144C - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F604 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x2e] - ldr r2, _08181478 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #0x32 - strh r0, [r1, #8] - adds r0, r4, #0 - bl sub_08181380 - ldr r0, _0818147C - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08181478: .4byte gUnknown_3001240 -_0818147C: .4byte sub_08181380 - thumb_func_end pokemonanimfunc_2D - - thumb_func_start sub_08181480 -sub_08181480: @ 0x08181480 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r1, #0x32 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _08181492 - adds r0, r6, #0 - bl HandleStartAffineAnim -_08181492: - adds r0, r6, #0 - bl sub_0817F5B8 - ldr r4, _081814E4 - movs r3, #0x2e - ldrsh r1, [r6, r3] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, r0, r4 - movs r0, #0x32 - ldrsh r1, [r6, r0] - movs r3, #8 - ldrsh r0, [r2, r3] - cmp r1, r0 - ble _081814F8 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r6, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - movs r3, #0 - strh r3, [r6, #0x24] - movs r0, #0x2e - ldrsh r1, [r6, r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r4 - ldrh r2, [r1, #4] - movs r4, #4 - ldrsh r0, [r1, r4] - cmp r0, #1 - ble _081814E8 - subs r0, r2, #1 - strh r0, [r1, #4] - strh r3, [r6, #0x32] - b _08181536 - .align 2, 0 -_081814E4: .4byte gUnknown_3001240 -_081814E8: - adds r0, r6, #0 - bl sub_0817F628 - ldr r0, _081814F4 - str r0, [r6, #0x1c] - b _08181536 - .align 2, 0 -_081814F4: .4byte sub_08184C34 -_081814F8: - movs r1, #0x32 - ldrsh r0, [r6, r1] - lsls r0, r0, #8 - movs r3, #8 - ldrsh r1, [r2, r3] - bl __divsi3 - adds r4, r0, #0 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - adds r0, r4, #0 - movs r1, #0xa - bl Sin - rsbs r0, r0, #0 - strh r0, [r6, #0x24] - movs r5, #0x80 - lsls r5, r5, #1 - ldr r1, _08181548 - adds r0, r4, #0 - bl Sin - adds r3, r0, #0 - rsbs r3, r3, #0 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - adds r0, r6, #0 - adds r1, r5, #0 - adds r2, r5, #0 - bl HandleSetAffineData -_08181536: - ldrh r0, [r6, #0x32] - adds r0, #1 - strh r0, [r6, #0x32] - adds r0, r6, #0 - bl sub_0817F5B8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08181548: .4byte 0x00000CCC - thumb_func_end sub_08181480 - - thumb_func_start pokemonanimfunc_2E -pokemonanimfunc_2E: @ 0x0818154C - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F604 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x2e] - ldr r2, _08181578 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #0x32 - strh r0, [r1, #8] - adds r0, r4, #0 - bl sub_08181480 - ldr r0, _0818157C - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08181578: .4byte gUnknown_3001240 -_0818157C: .4byte sub_08181480 - thumb_func_end pokemonanimfunc_2E - - thumb_func_start pokemonanimfunc_2F -pokemonanimfunc_2F: @ 0x08181580 - push {r4, lr} - adds r4, r0, #0 - bl HandleStartAffineAnim - adds r0, r4, #0 - adds r0, #0x28 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #1 - movs r1, #0xa - bl __divsi3 - rsbs r0, r0, #0 - strh r0, [r4, #0x3a] - movs r0, #0x80 - strh r0, [r4, #0x3c] - ldr r0, _081815B0 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081815B0: .4byte sub_081815B4 - thumb_func_end pokemonanimfunc_2F - - thumb_func_start sub_081815B4 -sub_081815B4: @ 0x081815B4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - ldrh r0, [r4, #0x3c] - subs r0, #1 - strh r0, [r4, #0x3c] - movs r1, #0x3c - ldrsh r0, [r4, r1] - movs r2, #0x3a - ldrsh r1, [r4, r2] - bl Cos - ldrh r1, [r4, #0x3a] - adds r0, r0, r1 - strh r0, [r4, #0x24] - movs r2, #0x3c - ldrsh r0, [r4, r2] - movs r2, #0x3a - ldrsh r1, [r4, r2] - bl Sin - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - movs r2, #0x80 - lsls r2, r2, #1 - ldrh r3, [r4, #0x3c] - subs r3, #0x80 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x10 - adds r0, r4, #0 - adds r1, r2, #0 - bl HandleSetAffineData - movs r1, #0x3c - ldrsh r0, [r4, r1] - cmp r0, #0x78 - bgt _0818160C - movs r0, #0x78 - strh r0, [r4, #0x3c] - movs r0, #0 - strh r0, [r4, #0x34] - ldr r0, _08181618 - str r0, [r4, #0x1c] -_0818160C: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08181618: .4byte sub_0818161C - thumb_func_end sub_081815B4 - - thumb_func_start sub_0818161C -sub_0818161C: @ 0x0818161C - push {lr} - adds r1, r0, #0 - movs r2, #0x34 - ldrsh r0, [r1, r2] - cmp r0, #0x14 - bne _08181630 - ldr r0, _0818163C - str r0, [r1, #0x1c] - movs r0, #0 - strh r0, [r1, #0x34] -_08181630: - ldrh r0, [r1, #0x34] - adds r0, #1 - strh r0, [r1, #0x34] - pop {r0} - bx r0 - .align 2, 0 -_0818163C: .4byte sub_08181640 - thumb_func_end sub_0818161C - - thumb_func_start sub_08181640 -sub_08181640: @ 0x08181640 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - ldrh r0, [r4, #0x3c] - adds r0, #2 - movs r6, #0 - strh r0, [r4, #0x3c] - movs r1, #0x3c - ldrsh r0, [r4, r1] - movs r2, #0x3a - ldrsh r1, [r4, r2] - bl Cos - ldrh r1, [r4, #0x3a] - adds r0, r0, r1 - strh r0, [r4, #0x24] - movs r2, #0x3c - ldrsh r0, [r4, r2] - movs r2, #0x3a - ldrsh r1, [r4, r2] - bl Sin - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - movs r5, #0x80 - lsls r5, r5, #1 - ldrh r3, [r4, #0x3c] - subs r3, #0x80 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r5, #0 - bl HandleSetAffineData - movs r1, #0x3c - ldrsh r0, [r4, r1] - cmp r0, #0x7f - ble _081816AC - strh r6, [r4, #0x24] - strh r6, [r4, #0x26] - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r5, #0 - movs r3, #0 - bl HandleSetAffineData - strh r6, [r4, #0x32] - adds r0, r4, #0 - bl sub_0817F628 - ldr r0, _081816B8 - str r0, [r4, #0x1c] -_081816AC: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081816B8: .4byte pokemonanimfunc_10 - thumb_func_end sub_08181640 - - thumb_func_start sub_081816BC -sub_081816BC: @ 0x081816BC - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r4, _081816DC - movs r0, #0x2e - ldrsh r1, [r5, r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r4 - ldrh r0, [r1] - adds r6, r0, #0 - cmp r6, #0 - beq _081816E0 - subs r0, #1 - strh r0, [r1] - b _081817FC - .align 2, 0 -_081816DC: .4byte gUnknown_3001240 -_081816E0: - movs r1, #0x32 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _081816F6 - adds r0, r5, #0 - bl HandleStartAffineAnim - strh r6, [r5, #0x36] - strh r6, [r5, #0x38] - movs r0, #1 - strh r0, [r5, #0x32] -_081816F6: - movs r3, #0x38 - ldrsh r0, [r5, r3] - cmp r0, #0 - bne _0818174E - movs r1, #0x36 - ldrsh r0, [r5, r1] - movs r4, #0x80 - lsls r4, r4, #1 - adds r1, r4, #0 - bl Sin - strh r0, [r5, #0x3c] - movs r3, #0x36 - ldrsh r0, [r5, r3] - movs r1, #0x10 - bl Sin - strh r0, [r5, #0x26] - movs r1, #0x36 - ldrsh r0, [r5, r1] - movs r1, #0x20 - bl Sin - adds r1, r0, #0 - strh r1, [r5, #0x3a] - subs r1, r4, r1 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldrh r2, [r5, #0x3c] - adds r2, r2, r4 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r0, r5, #0 - movs r3, #0 - bl HandleSetAffineData - movs r3, #0x36 - ldrsh r0, [r5, r3] - cmp r0, #0x80 - bne _081817E6 - strh r6, [r5, #0x36] - movs r0, #1 - strh r0, [r5, #0x38] - b _081817E6 -_0818174E: - cmp r0, #1 - bne _081817E6 - movs r1, #0x36 - ldrsh r0, [r5, r1] - movs r1, #0x20 - bl Sin - strh r0, [r5, #0x3c] - movs r3, #0x36 - ldrsh r0, [r5, r3] - movs r1, #8 - bl Sin - rsbs r0, r0, #0 - strh r0, [r5, #0x26] - movs r1, #0x36 - ldrsh r0, [r5, r1] - movs r1, #0x80 - bl Sin - adds r1, r0, #0 - strh r1, [r5, #0x3a] - movs r3, #0x80 - lsls r3, r3, #1 - adds r2, r3, #0 - adds r1, r1, r2 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldrh r0, [r5, #0x3c] - subs r2, r2, r0 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r0, r5, #0 - movs r3, #0 - bl HandleSetAffineData - movs r1, #0x36 - ldrsh r0, [r5, r1] - cmp r0, #0x80 - bne _081817E6 - movs r3, #0x2e - ldrsh r0, [r5, r3] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrh r2, [r1, #4] - movs r3, #4 - ldrsh r0, [r1, r3] - cmp r0, #1 - ble _081817CE - subs r0, r2, #1 - strh r0, [r1, #4] - movs r0, #0x2e - ldrsh r1, [r5, r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0xa - strh r1, [r0] - strh r6, [r5, #0x36] - strh r6, [r5, #0x38] - b _081817E6 -_081817CE: - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r5, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - adds r0, r5, #0 - bl sub_0817F628 - ldr r0, _08181804 - str r0, [r5, #0x1c] -_081817E6: - ldr r2, _08181808 - movs r3, #0x2e - ldrsh r1, [r5, r3] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0, #6] - ldrh r1, [r5, #0x36] - adds r0, r0, r1 - strh r0, [r5, #0x36] -_081817FC: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08181804: .4byte sub_08184C34 -_08181808: .4byte gUnknown_3001240 - thumb_func_end sub_081816BC - - thumb_func_start pokemonanimfunc_30 -pokemonanimfunc_30: @ 0x0818180C - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F604 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x2e] - ldr r2, _08181838 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #4 - strh r0, [r1, #6] - adds r0, r4, #0 - bl sub_081816BC - ldr r0, _0818183C - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08181838: .4byte gUnknown_3001240 -_0818183C: .4byte sub_081816BC - thumb_func_end pokemonanimfunc_30 - - thumb_func_start pokemonanimfunc_31 -pokemonanimfunc_31: @ 0x08181840 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x32 - ldrsh r4, [r5, r0] - adds r0, r5, #0 - bl sub_0817F5B8 - movs r0, #0x80 - lsls r0, r0, #2 - cmp r4, r0 - ble _08181864 - ldr r0, _08181860 - str r0, [r5, #0x1c] - movs r0, #0 - strh r0, [r5, #0x24] - b _0818190E - .align 2, 0 -_08181860: .4byte sub_08184C34 -_08181864: - movs r1, #0x32 - ldrsh r0, [r5, r1] - cmp r0, #0 - bge _0818186E - adds r0, #0x7f -_0818186E: - asrs r0, r0, #7 - cmp r0, #1 - beq _081818A4 - cmp r0, #1 - bgt _0818187E - cmp r0, #0 - beq _08181888 - b _081818F4 -_0818187E: - cmp r0, #2 - beq _081818BE - cmp r0, #3 - beq _081818D6 - b _081818F4 -_08181888: - adds r0, r4, #0 - cmp r4, #0 - bge _08181890 - adds r0, #0x7f -_08181890: - asrs r0, r0, #7 - lsls r0, r0, #7 - subs r0, r4, r0 - lsls r0, r0, #3 - rsbs r0, r0, #0 - cmp r0, #0 - bge _081818A0 - adds r0, #0x7f -_081818A0: - asrs r0, r0, #7 - b _081818F2 -_081818A4: - adds r0, r4, #0 - cmp r4, #0 - bge _081818AC - adds r0, #0x7f -_081818AC: - asrs r0, r0, #7 - lsls r0, r0, #7 - subs r0, r4, r0 - cmp r0, #0 - bge _081818B8 - adds r0, #0xf -_081818B8: - asrs r0, r0, #4 - subs r0, #8 - b _081818F2 -_081818BE: - adds r0, r4, #0 - cmp r4, #0 - bge _081818C6 - adds r0, #0x7f -_081818C6: - asrs r0, r0, #7 - lsls r0, r0, #7 - subs r0, r4, r0 - cmp r0, #0 - bge _081818D2 - adds r0, #0xf -_081818D2: - asrs r0, r0, #4 - b _081818F2 -_081818D6: - adds r0, r4, #0 - cmp r4, #0 - bge _081818DE - adds r0, #0x7f -_081818DE: - asrs r0, r0, #7 - lsls r0, r0, #7 - subs r0, r4, r0 - lsls r0, r0, #3 - rsbs r0, r0, #0 - cmp r0, #0 - bge _081818EE - adds r0, #0x7f -_081818EE: - asrs r0, r0, #7 - adds r0, #8 -_081818F2: - strh r0, [r5, #0x24] -_081818F4: - adds r0, r4, #0 - cmp r4, #0 - bge _081818FC - adds r0, #0x7f -_081818FC: - asrs r0, r0, #7 - lsls r0, r0, #7 - subs r0, r4, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #8 - bl Sin - rsbs r0, r0, #0 -_0818190E: - strh r0, [r5, #0x26] - ldrh r0, [r5, #0x32] - adds r0, #0xc - strh r0, [r5, #0x32] - adds r0, r5, #0 - bl sub_0817F5B8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_31 - - thumb_func_start pokemonanimfunc_32 -pokemonanimfunc_32: @ 0x08181924 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0817F604 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r5, #0 - strh r0, [r4, #0x2e] - ldr r2, _0818195C - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r0, _08181960 - strh r0, [r1, #8] - adds r0, r4, #0 - bl HandleStartAffineAnim - strh r5, [r4, #0x34] - adds r0, r4, #0 - bl sub_08181968 - ldr r0, _08181964 - str r0, [r4, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0818195C: .4byte gUnknown_3001240 -_08181960: .4byte 0x0000FFFF -_08181964: .4byte sub_08181968 - thumb_func_end pokemonanimfunc_32 - - thumb_func_start sub_08181968 -sub_08181968: @ 0x08181968 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r6, _08181988 - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r6 - ldrh r0, [r1] - adds r5, r0, #0 - cmp r5, #0 - beq _0818198C - subs r0, #1 - strh r0, [r1] - b _081819F0 - .align 2, 0 -_08181988: .4byte gUnknown_3001240 -_0818198C: - adds r0, r4, #0 - bl sub_0817F5B8 - movs r1, #0x32 - ldrsh r2, [r4, r1] - adds r0, r2, #0 - cmp r0, #0x80 - ble _081819A8 - strh r5, [r4, #0x32] - ldr r0, _081819A4 - str r0, [r4, #0x1c] - b _081819EA - .align 2, 0 -_081819A4: .4byte sub_081819F8 -_081819A8: - movs r1, #0x2e - ldrsh r0, [r4, r1] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - movs r3, #8 - ldrsh r0, [r1, r3] - lsls r3, r0, #3 - adds r0, r2, #0 - cmp r2, #0 - bge _081819C2 - adds r0, #0x7f -_081819C2: - asrs r0, r0, #7 - lsls r0, r0, #7 - subs r1, r2, r0 - adds r0, r3, #0 - muls r0, r1, r0 - cmp r0, #0 - bge _081819D2 - adds r0, #0x7f -_081819D2: - asrs r0, r0, #7 - strh r0, [r4, #0x24] - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - movs r1, #8 - bl Sin - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x32] - adds r0, #0xc - strh r0, [r4, #0x32] -_081819EA: - adds r0, r4, #0 - bl sub_0817F5B8 -_081819F0: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08181968 - - thumb_func_start sub_081819F8 -sub_081819F8: @ 0x081819F8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0x30 - ble _08181A28 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - movs r0, #0 - strh r0, [r4, #0x26] - strh r0, [r4, #0x32] - ldr r0, _08181A24 - str r0, [r4, #0x1c] - b _08181AC6 - .align 2, 0 -_08181A24: .4byte sub_08181AD8 -_08181A28: - movs r2, #0x36 - ldrsh r0, [r4, r2] - movs r1, #0x40 - bl Sin - movs r1, #0x80 - lsls r1, r1, #1 - adds r6, r1, #0 - adds r0, r0, r6 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldrh r0, [r4, #0x32] - subs r0, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xf - bhi _08181A66 - ldrh r0, [r4, #0x34] - adds r0, #8 - strh r0, [r4, #0x34] - ldr r2, _08181AD4 - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r4, #0x24] - ldrh r0, [r0, #8] - subs r1, r1, r0 - strh r1, [r4, #0x24] -_08181A66: - movs r5, #0 - lsls r1, r3, #0x10 - asrs r2, r1, #0x10 - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - adds r6, r1, #0 - cmp r2, r0 - ble _08181A82 - subs r0, r0, r2 - cmp r0, #0 - bge _08181A7E - adds r0, #7 -_08181A7E: - lsls r0, r0, #0xd - lsrs r5, r0, #0x10 -_08181A82: - movs r1, #0x34 - ldrsh r0, [r4, r1] - movs r1, #0x14 - bl Sin - rsbs r0, r0, #0 - lsls r1, r5, #0x10 - asrs r1, r1, #0x10 - subs r0, r0, r1 - strh r0, [r4, #0x26] - movs r2, #0x36 - ldrsh r0, [r4, r2] - movs r1, #0x20 - bl Sin - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r2, #0 - subs r1, r1, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - asrs r2, r6, #0x10 - adds r0, r4, #0 - movs r3, #0 - bl HandleSetAffineData - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - ldrh r0, [r4, #0x36] - adds r0, #8 - movs r1, #0xff - ands r0, r1 - strh r0, [r4, #0x36] -_08181AC6: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08181AD4: .4byte gUnknown_3001240 - thumb_func_end sub_081819F8 - - thumb_func_start sub_08181AD8 -sub_08181AD8: @ 0x08181AD8 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - movs r0, #0x32 - ldrsh r3, [r4, r0] - cmp r3, #0x80 - ble _08181B3C - ldr r3, _08181B20 - movs r1, #0x2e - ldrsh r0, [r4, r1] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrh r2, [r1, #4] - movs r5, #4 - ldrsh r0, [r1, r5] - cmp r0, #1 - ble _08181B28 - subs r0, r2, #1 - movs r2, #0 - strh r0, [r1, #4] - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r1, #0xa - strh r1, [r0] - strh r2, [r4, #0x34] - strh r2, [r4, #0x32] - strh r2, [r4, #0x36] - ldr r0, _08181B24 - b _08181B30 - .align 2, 0 -_08181B20: .4byte gUnknown_3001240 -_08181B24: .4byte sub_08181968 -_08181B28: - adds r0, r4, #0 - bl sub_0817F628 - ldr r0, _08181B38 -_08181B30: - str r0, [r4, #0x1c] - movs r0, #0 - strh r0, [r4, #0x24] - b _08181B7C - .align 2, 0 -_08181B38: .4byte sub_08184C34 -_08181B3C: - ldr r2, _08181B90 - movs r5, #0x2e - ldrsh r1, [r4, r5] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #8 - ldrsh r5, [r0, r1] - lsls r1, r5, #3 - adds r0, r3, #0 - cmp r3, #0 - bge _08181B58 - adds r0, #0x7f -_08181B58: - asrs r0, r0, #7 - lsls r0, r0, #7 - subs r2, r3, r0 - adds r0, r1, #0 - muls r0, r2, r0 - cmp r0, #0 - bge _08181B68 - adds r0, #0x7f -_08181B68: - asrs r0, r0, #7 - lsls r1, r5, #3 - subs r0, r0, r1 - strh r0, [r4, #0x24] - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - movs r1, #8 - bl Sin - rsbs r0, r0, #0 -_08181B7C: - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x32] - adds r0, #0xc - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08181B90: .4byte gUnknown_3001240 - thumb_func_end sub_08181AD8 - - thumb_func_start sub_08181B94 -sub_08181B94: @ 0x08181B94 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08181BAC - adds r0, r4, #0 - bl HandleStartAffineAnim - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] -_08181BAC: - adds r0, r4, #0 - bl sub_0817F5B8 - movs r3, #0x3c - ldrsh r0, [r4, r3] - cmp r0, #0xfe - ble _08181C0C - movs r5, #0 - strh r5, [r4, #0x24] - strh r5, [r4, #0x26] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - ldr r2, _08181BF0 - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r2 - ldrh r2, [r1, #4] - movs r3, #4 - ldrsh r0, [r1, r3] - cmp r0, #1 - ble _08181BF4 - subs r0, r2, #1 - strh r0, [r1, #4] - strh r5, [r4, #0x32] - strh r5, [r4, #0x3c] - b _08181BFE - .align 2, 0 -_08181BF0: .4byte gUnknown_3001240 -_08181BF4: - adds r0, r4, #0 - bl sub_0817F628 - ldr r0, _08181C08 - str r0, [r4, #0x1c] -_08181BFE: - adds r0, r4, #0 - bl sub_0817F5B8 - b _08181C52 - .align 2, 0 -_08181C08: .4byte sub_08184C34 -_08181C0C: - movs r1, #0x3c - ldrsh r0, [r4, r1] - movs r1, #0x10 - bl Sin - rsbs r0, r0, #0 - strh r0, [r4, #0x24] - movs r3, #0x3c - ldrsh r0, [r4, r3] - movs r1, #0x20 - bl Sin - adds r3, r0, #0 - movs r2, #0x80 - lsls r2, r2, #1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x10 - adds r0, r4, #0 - adds r1, r2, #0 - bl HandleSetAffineData - ldr r2, _08181C58 - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0, #6] - ldrh r1, [r4, #0x3c] - adds r0, r0, r1 - strh r0, [r4, #0x3c] - adds r0, r4, #0 - bl sub_0817F5B8 -_08181C52: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08181C58: .4byte gUnknown_3001240 - thumb_func_end sub_08181B94 - - thumb_func_start pokemonanimfunc_33 -pokemonanimfunc_33: @ 0x08181C5C - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F604 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x2e] - ldr r2, _08181C88 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #4 - strh r0, [r1, #6] - adds r0, r4, #0 - bl sub_08181B94 - ldr r0, _08181C8C - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08181C88: .4byte gUnknown_3001240 -_08181C8C: .4byte sub_08181B94 - thumb_func_end pokemonanimfunc_33 - - thumb_func_start pokemonanimfunc_34 -pokemonanimfunc_34: @ 0x08181C90 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08181CA8 - adds r0, r4, #0 - bl HandleStartAffineAnim - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] -_08181CA8: - adds r0, r4, #0 - bl sub_0817F5B8 - movs r1, #0x3c - ldrsh r0, [r4, r1] - cmp r0, #0xfe - ble _08181CE0 - movs r0, #0 - strh r0, [r4, #0x24] - strh r0, [r4, #0x26] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - adds r0, r4, #0 - bl sub_0817F628 - ldr r0, _08181CDC - str r0, [r4, #0x1c] - adds r0, r4, #0 - bl sub_0817F5B8 - b _08181D36 - .align 2, 0 -_08181CDC: .4byte sub_08184C34 -_08181CE0: - movs r1, #0x3c - ldrsh r0, [r4, r1] - movs r1, #0x10 - bl Sin - rsbs r0, r0, #0 - strh r0, [r4, #0x24] - movs r0, #0x3c - ldrsh r1, [r4, r0] - adds r0, r1, #0 - cmp r1, #0 - bge _08181CFA - adds r0, #0x7f -_08181CFA: - asrs r0, r0, #7 - lsls r0, r0, #7 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x10 - bl Sin - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - movs r1, #0x3c - ldrsh r0, [r4, r1] - movs r1, #0x20 - bl Sin - adds r3, r0, #0 - movs r2, #0x80 - lsls r2, r2, #1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x10 - adds r0, r4, #0 - adds r1, r2, #0 - bl HandleSetAffineData - ldrh r0, [r4, #0x3c] - adds r0, #8 - strh r0, [r4, #0x3c] - adds r0, r4, #0 - bl sub_0817F5B8 -_08181D36: - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_34 - - thumb_func_start pokemonanimfunc_35 -pokemonanimfunc_35: @ 0x08181D3C - push {r4, r5, lr} - adds r3, r0, #0 - movs r1, #0x32 - ldrsh r0, [r3, r1] - cmp r0, #0 - bne _08181D4A - strh r0, [r3, #0x3c] -_08181D4A: - ldrh r4, [r3, #0x32] - movs r5, #0x32 - ldrsh r1, [r3, r5] - ldrh r2, [r3, #0x3c] - movs r5, #0x3c - ldrsh r0, [r3, r5] - cmp r1, r0 - bne _08181D74 - movs r0, #0 - strh r0, [r3, #0x3c] - adds r0, r4, #1 - strh r0, [r3, #0x32] - adds r1, r3, #0 - adds r1, #0x3e - ldrb r2, [r1] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - adds r2, r1, #0 - b _08181D84 -_08181D74: - adds r0, r2, #1 - strh r0, [r3, #0x3c] - adds r2, r3, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] -_08181D84: - movs r1, #0x32 - ldrsh r0, [r3, r1] - cmp r0, #0xa - ble _08181D9A - ldrb r0, [r2] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r2] - ldr r0, _08181DA0 - str r0, [r3, #0x1c] -_08181D9A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08181DA0: .4byte sub_08184C34 - thumb_func_end pokemonanimfunc_35 - - thumb_func_start pokemonanimfunc_36 -pokemonanimfunc_36: @ 0x08181DA4 - push {r4, lr} - adds r4, r0, #0 - bl HandleStartAffineAnim - movs r0, #0 - strh r0, [r4, #0x3c] - ldr r0, _08181DBC - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08181DBC: .4byte sub_08181DC0 - thumb_func_end pokemonanimfunc_36 - - thumb_func_start sub_08181DC0 -sub_08181DC0: @ 0x08181DC0 - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x3c] - movs r2, #0x3c - ldrsh r0, [r4, r2] - cmp r0, #0x1f - ble _08181DE0 - movs r0, #0 - movs r1, #0x20 - strh r1, [r4, #0x3c] - strh r0, [r4, #0x32] - ldr r0, _08181DDC - str r0, [r4, #0x1c] - b _08181DE4 - .align 2, 0 -_08181DDC: .4byte sub_08181DFC -_08181DE0: - adds r0, r1, #4 - strh r0, [r4, #0x3c] -_08181DE4: - movs r2, #0x80 - lsls r2, r2, #1 - ldrh r3, [r4, #0x3c] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x10 - adds r0, r4, #0 - adds r1, r2, #0 - bl HandleSetAffineData - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08181DC0 - - thumb_func_start sub_08181DFC -sub_08181DFC: @ 0x08181DFC - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - movs r0, #0x32 - ldrsh r1, [r4, r0] - movs r0, #0x80 - lsls r0, r0, #2 - cmp r1, r0 - ble _08181E20 - ldr r0, _08181E1C - str r0, [r4, #0x1c] - movs r0, #0 - strh r0, [r4, #0x3a] - b _08181E5A - .align 2, 0 -_08181E1C: .4byte sub_08181E6C -_08181E20: - movs r1, #0x32 - ldrsh r0, [r4, r1] - lsls r0, r0, #4 - rsbs r0, r0, #0 - cmp r0, #0 - bge _08181E30 - ldr r1, _08181E68 - adds r0, r0, r1 -_08181E30: - asrs r0, r0, #9 - strh r0, [r4, #0x24] - movs r0, #0x32 - ldrsh r1, [r4, r0] - adds r0, r1, #0 - cmp r1, #0 - bge _08181E40 - adds r0, #0x7f -_08181E40: - asrs r0, r0, #7 - lsls r0, r0, #7 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #4 - bl Sin - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x32] - adds r0, #0xc - strh r0, [r4, #0x32] -_08181E5A: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08181E68: .4byte 0x000001FF - thumb_func_end sub_08181DFC - - thumb_func_start sub_08181E6C -sub_08181E6C: @ 0x08181E6C - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - ldrh r0, [r4, #0x3c] - subs r0, #2 - movs r1, #0 - strh r0, [r4, #0x3c] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _08181E98 - strh r1, [r4, #0x3c] - strh r1, [r4, #0x24] - adds r0, r4, #0 - bl sub_0817F628 - ldr r0, _08181E94 - str r0, [r4, #0x1c] - b _08181EAA - .align 2, 0 -_08181E94: .4byte sub_08184C34 -_08181E98: - movs r1, #0x3c - ldrsh r0, [r4, r1] - lsls r0, r0, #0x11 - asrs r0, r0, #0x10 - movs r1, #0x10 - bl Sin - rsbs r0, r0, #0 - strh r0, [r4, #0x24] -_08181EAA: - movs r2, #0x80 - lsls r2, r2, #1 - ldrh r3, [r4, #0x3c] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x10 - adds r0, r4, #0 - adds r1, r2, #0 - bl HandleSetAffineData - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08181E6C - - thumb_func_start pokemonanimfunc_37 -pokemonanimfunc_37: @ 0x08181EC8 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r5, [r4, r0] - cmp r5, #0 - bne _08181EE2 - adds r0, r4, #0 - bl HandleStartAffineAnim - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - strh r5, [r4, #0x3c] -_08181EE2: - adds r0, r4, #0 - bl sub_0817F5B8 - ldrh r1, [r4, #0x3c] - movs r2, #0x3c - ldrsh r0, [r4, r2] - cmp r0, #0xff - ble _08181F0C - movs r0, #0 - strh r0, [r4, #0x24] - strh r0, [r4, #0x26] - strh r0, [r4, #0x3c] - adds r0, r4, #0 - bl sub_0817F628 - ldr r0, _08181F08 - str r0, [r4, #0x1c] - b _08181F52 - .align 2, 0 -_08181F08: .4byte sub_08184C34 -_08181F0C: - adds r0, r1, #0 - adds r0, #0x10 - strh r0, [r4, #0x3c] - movs r0, #0x3c - ldrsh r1, [r4, r0] - adds r0, r1, #0 - cmp r1, #0 - bge _08181F1E - adds r0, #0x7f -_08181F1E: - asrs r0, r0, #7 - lsls r0, r0, #7 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #8 - bl Sin - rsbs r0, r0, #0 - strh r0, [r4, #0x24] - movs r2, #0x3c - ldrsh r1, [r4, r2] - adds r0, r1, #0 - cmp r1, #0 - bge _08181F3E - adds r0, #0x7f -_08181F3E: - asrs r0, r0, #7 - lsls r0, r0, #7 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #8 - bl Sin - rsbs r0, r0, #0 - strh r0, [r4, #0x26] -_08181F52: - movs r0, #0x3c - ldrsh r1, [r4, r0] - adds r0, r1, #0 - cmp r1, #0 - bge _08181F5E - adds r0, #0x7f -_08181F5E: - asrs r0, r0, #7 - lsls r0, r0, #7 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x10 - bl Sin - adds r3, r0, #0 - movs r2, #0x80 - lsls r2, r2, #1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x10 - adds r0, r4, #0 - adds r1, r2, #0 - bl HandleSetAffineData - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_37 - - thumb_func_start pokemonanimfunc_38 -pokemonanimfunc_38: @ 0x08181F8C - push {r4, lr} - adds r4, r0, #0 - bl HandleStartAffineAnim - movs r0, #0 - strh r0, [r4, #0x3c] - strh r0, [r4, #0x36] - ldr r0, _08181FA4 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08181FA4: .4byte sub_08181FA8 - thumb_func_end pokemonanimfunc_38 - - thumb_func_start sub_08181FA8 -sub_08181FA8: @ 0x08181FA8 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - ldrh r1, [r4, #0x3c] - movs r2, #0x3c - ldrsh r0, [r4, r2] - cmp r0, #0x18 - ble _08181FD8 - ldrh r0, [r4, #0x36] - adds r0, #1 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - ble _08181FF6 - movs r0, #0 - strh r0, [r4, #0x36] - ldr r0, _08181FD4 - str r0, [r4, #0x1c] - b _08181FF6 - .align 2, 0 -_08181FD4: .4byte sub_08182018 -_08181FD8: - adds r0, r1, #2 - strh r0, [r4, #0x3c] - movs r1, #0x3c - ldrsh r0, [r4, r1] - movs r1, #8 - bl Sin - strh r0, [r4, #0x24] - movs r2, #0x3c - ldrsh r0, [r4, r2] - movs r1, #8 - bl Sin - rsbs r0, r0, #0 - strh r0, [r4, #0x26] -_08181FF6: - movs r2, #0x80 - lsls r2, r2, #1 - ldrh r3, [r4, #0x3c] - rsbs r3, r3, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x10 - adds r0, r4, #0 - adds r1, r2, #0 - bl HandleSetAffineData - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08181FA8 - - thumb_func_start sub_08182018 -sub_08182018: @ 0x08182018 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - ldrh r1, [r4, #0x3c] - movs r2, #0x3c - ldrsh r0, [r4, r2] - cmp r0, #0x20 - ble _08182038 - movs r0, #1 - strh r0, [r4, #0x3a] - ldr r0, _08182034 - str r0, [r4, #0x1c] - b _08182056 - .align 2, 0 -_08182034: .4byte sub_08182078 -_08182038: - adds r0, r1, #2 - strh r0, [r4, #0x3c] - movs r1, #0x3c - ldrsh r0, [r4, r1] - movs r1, #8 - bl Sin - strh r0, [r4, #0x24] - movs r2, #0x3c - ldrsh r0, [r4, r2] - movs r1, #8 - bl Sin - rsbs r0, r0, #0 - strh r0, [r4, #0x26] -_08182056: - movs r2, #0x80 - lsls r2, r2, #1 - ldrh r3, [r4, #0x3c] - rsbs r3, r3, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x10 - adds r0, r4, #0 - adds r1, r2, #0 - bl HandleSetAffineData - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08182018 - - thumb_func_start sub_08182078 -sub_08182078: @ 0x08182078 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - movs r1, #0x3a - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - ldrh r1, [r4, #0x3c] - adds r0, r0, r1 - strh r0, [r4, #0x3c] - movs r1, #0x38 - ldrsh r0, [r4, r1] - cmp r0, #9 - ble _0818209C - movs r0, #0x20 - strh r0, [r4, #0x3c] - ldr r0, _081820F0 - str r0, [r4, #0x1c] -_0818209C: - movs r1, #0x3c - ldrsh r0, [r4, r1] - movs r1, #8 - bl Sin - strh r0, [r4, #0x24] - movs r1, #0x3c - ldrsh r0, [r4, r1] - movs r1, #8 - bl Sin - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x3c] - subs r0, #0x1d - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #6 - bls _081820D0 - movs r1, #0x3a - ldrsh r0, [r4, r1] - rsbs r0, r0, #0 - strh r0, [r4, #0x3a] - ldrh r0, [r4, #0x38] - adds r0, #1 - strh r0, [r4, #0x38] -_081820D0: - movs r2, #0x80 - lsls r2, r2, #1 - ldrh r3, [r4, #0x3c] - rsbs r3, r3, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x10 - adds r0, r4, #0 - adds r1, r2, #0 - bl HandleSetAffineData - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081820F0: .4byte sub_081820F4 - thumb_func_end sub_08182078 - - thumb_func_start sub_081820F4 -sub_081820F4: @ 0x081820F4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - ldrh r1, [r4, #0x3c] - movs r2, #0x3c - ldrsh r0, [r4, r2] - cmp r0, #0 - bgt _0818211C - movs r0, #0 - strh r0, [r4, #0x3c] - adds r0, r4, #0 - bl sub_0817F628 - ldr r0, _08182118 - str r0, [r4, #0x1c] - b _0818213A - .align 2, 0 -_08182118: .4byte sub_08184C34 -_0818211C: - subs r0, r1, #2 - strh r0, [r4, #0x3c] - movs r1, #0x3c - ldrsh r0, [r4, r1] - movs r1, #8 - bl Sin - strh r0, [r4, #0x24] - movs r2, #0x3c - ldrsh r0, [r4, r2] - movs r1, #8 - bl Sin - rsbs r0, r0, #0 - strh r0, [r4, #0x26] -_0818213A: - movs r2, #0x80 - lsls r2, r2, #1 - ldrh r3, [r4, #0x3c] - rsbs r3, r3, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x10 - adds r0, r4, #0 - adds r1, r2, #0 - bl HandleSetAffineData - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081820F4 - - thumb_func_start pokemonanimfunc_39 -pokemonanimfunc_39: @ 0x0818215C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - ldrh r1, [r4, #0x32] - movs r2, #0x32 - ldrsh r0, [r4, r2] - cmp r0, #0x28 - ble _0818217C - ldr r0, _08182178 - str r0, [r4, #0x1c] - movs r0, #0 - strh r0, [r4, #0x24] - b _08182208 - .align 2, 0 -_08182178: .4byte sub_08184C34 -_0818217C: - movs r0, #1 - ands r0, r1 - movs r5, #0xff - cmp r0, #0 - bne _08182188 - movs r5, #1 -_08182188: - movs r0, #0x32 - ldrsh r2, [r4, r0] - adds r0, r2, #0 - cmp r2, #0 - bge _08182194 - adds r0, r2, #3 -_08182194: - asrs r0, r0, #2 - lsls r0, r0, #2 - subs r0, r2, r0 - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - lsrs r0, r0, #0x1f - adds r1, r1, r0 - asrs r1, r1, #1 - cmp r1, #0 - bne _081821D8 - lsls r0, r2, #7 - movs r1, #0x28 - bl __divsi3 - adds r1, r0, #0 - cmp r1, #0 - bge _081821B8 - adds r0, #0xff -_081821B8: - asrs r0, r0, #8 - lsls r0, r0, #8 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x10 - bl Sin - lsls r1, r5, #0x18 - asrs r1, r1, #0x18 - adds r2, r0, #0 - muls r2, r1, r2 - adds r0, r2, #0 - strh r0, [r4, #0x24] - rsbs r0, r0, #0 - b _08182206 -_081821D8: - lsls r0, r2, #7 - movs r1, #0x28 - bl __divsi3 - adds r1, r0, #0 - cmp r1, #0 - bge _081821E8 - adds r0, #0xff -_081821E8: - asrs r0, r0, #8 - lsls r0, r0, #8 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x10 - bl Sin - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - rsbs r0, r0, #0 - lsls r1, r5, #0x18 - asrs r1, r1, #0x18 - muls r0, r1, r0 - strh r0, [r4, #0x24] -_08182206: - strh r0, [r4, #0x26] -_08182208: - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_39 - - thumb_func_start pokemonanimfunc_3A -pokemonanimfunc_3A: @ 0x0818221C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - movs r0, #0x32 - ldrsh r5, [r4, r0] - cmp r5, #0 - bne _0818223E - adds r0, r4, #0 - bl HandleStartAffineAnim - strh r5, [r4, #0x38] - strh r5, [r4, #0x3a] - strh r5, [r4, #0x3c] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] -_0818223E: - ldrh r1, [r4, #0x3a] - movs r2, #0x3a - ldrsh r0, [r4, r2] - cmp r0, #0 - ble _08182290 - subs r0, r1, #1 - strh r0, [r4, #0x3a] - movs r1, #0x38 - ldrsh r0, [r4, r1] - cmp r0, #3 - beq _08182340 - movs r2, #0x3a - ldrsh r0, [r4, r2] - lsls r0, r0, #3 - movs r1, #0x14 - bl __divsi3 - adds r1, r0, #0 - ldrh r0, [r4, #0x3c] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - subs r0, r0, r1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x40 - bl Sin - movs r1, #0x80 - lsls r1, r1, #1 - adds r2, r1, #0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - subs r2, r2, r0 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - b _08182340 -_08182290: - movs r2, #0x38 - ldrsh r0, [r4, r2] - cmp r0, #3 - bne _081822D0 - movs r1, #0x3c - ldrsh r0, [r4, r1] - cmp r0, #0x3f - ble _081822BC - movs r0, #0x40 - strh r0, [r4, #0x3c] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - adds r0, r4, #0 - bl sub_0817F628 - ldr r0, _081822CC - str r0, [r4, #0x1c] -_081822BC: - movs r2, #0x3c - ldrsh r0, [r4, r2] - movs r1, #0x40 - bl Cos - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - b _08182320 - .align 2, 0 -_081822CC: .4byte sub_08184C34 -_081822D0: - movs r1, #0x3c - ldrsh r0, [r4, r1] - movs r1, #0x40 - bl Sin - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - movs r2, #0x3c - ldrsh r0, [r4, r2] - cmp r0, #0x3f - ble _081822F4 - movs r0, #0 - movs r1, #3 - strh r1, [r4, #0x38] - movs r1, #0xa - strh r1, [r4, #0x3a] - strh r0, [r4, #0x3c] - b _08182320 -_081822F4: - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x30 - ble _08182308 - movs r1, #0x38 - ldrsh r0, [r4, r1] - cmp r0, #1 - bne _08182308 - movs r0, #2 - b _0818231A -_08182308: - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x10 - ble _08182320 - movs r2, #0x38 - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _08182320 - movs r0, #1 -_0818231A: - strh r0, [r4, #0x38] - movs r0, #0x14 - strh r0, [r4, #0x3a] -_08182320: - ldrh r0, [r4, #0x3c] - adds r0, #2 - strh r0, [r4, #0x3c] - movs r0, #0x80 - lsls r0, r0, #1 - adds r2, r0, #0 - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - subs r2, r2, r0 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData -_08182340: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_3A - - thumb_func_start pokemonanimfunc_3B -pokemonanimfunc_3B: @ 0x0818234C - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r5, [r4, r0] - cmp r5, #0 - bne _08182366 - adds r0, r4, #0 - bl HandleStartAffineAnim - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - strh r5, [r4, #0x3c] -_08182366: - movs r0, #0x3c - ldrsh r1, [r4, r0] - movs r0, #0x80 - lsls r0, r0, #2 - cmp r1, r0 - ble _08182394 - movs r0, #0 - strh r0, [r4, #0x26] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - adds r0, r4, #0 - bl sub_0817F628 - ldr r0, _08182390 - str r0, [r4, #0x1c] - b _081823EC - .align 2, 0 -_08182390: .4byte sub_08184C34 -_08182394: - movs r0, #0x3c - ldrsh r1, [r4, r0] - adds r0, r1, #0 - cmp r1, #0 - bge _081823A0 - adds r0, #0xff -_081823A0: - asrs r0, r0, #8 - lsls r0, r0, #8 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #8 - bl Sin - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x3c] - adds r0, #8 - strh r0, [r4, #0x3c] - movs r0, #0x3c - ldrsh r1, [r4, r0] - adds r0, r1, #0 - cmp r1, #0 - bge _081823C4 - adds r0, #0x7f -_081823C4: - asrs r0, r0, #7 - lsls r0, r0, #7 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x60 - bl Sin - adds r2, r0, #0 - movs r1, #0x80 - lsls r1, r1, #1 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r2, r2, r1 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r0, r4, #0 - movs r3, #0 - bl HandleSetAffineData -_081823EC: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_3B - - thumb_func_start pokemonanimfunc_3C -pokemonanimfunc_3C: @ 0x081823F4 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r5, [r4, r0] - cmp r5, #0 - bne _0818240E - adds r0, r4, #0 - bl HandleStartAffineAnim - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - strh r5, [r4, #0x3c] -_0818240E: - movs r1, #0x3c - ldrsh r0, [r4, r1] - movs r5, #0x80 - lsls r5, r5, #1 - cmp r0, r5 - ble _0818243C - movs r0, #0 - strh r0, [r4, #0x26] - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r5, #0 - movs r3, #0 - bl HandleSetAffineData - adds r0, r4, #0 - bl sub_0817F628 - ldr r0, _08182438 - str r0, [r4, #0x1c] - b _08182480 - .align 2, 0 -_08182438: .4byte sub_08184C34 -_0818243C: - movs r1, #0x3c - ldrsh r0, [r4, r1] - movs r1, #0x10 - bl Sin - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x3c] - adds r0, #4 - strh r0, [r4, #0x3c] - movs r0, #0x3c - ldrsh r1, [r4, r0] - adds r0, r1, #0 - cmp r1, #0 - bge _0818245A - adds r0, #0x3f -_0818245A: - asrs r0, r0, #6 - lsls r0, r0, #6 - subs r0, r1, r0 - lsls r0, r0, #0x11 - asrs r0, r0, #0x10 - movs r1, #0x80 - bl Sin - adds r2, r0, #0 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r2, r2, r5 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - movs r3, #0 - bl HandleSetAffineData -_08182480: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_3C - - thumb_func_start pokemonanimfunc_3D -pokemonanimfunc_3D: @ 0x08182488 - push {r4, lr} - adds r4, r0, #0 - bl HandleStartAffineAnim - ldr r0, _081824A0 - str r0, [r4, #0x1c] - movs r0, #0 - strh r0, [r4, #0x3c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081824A0: .4byte sub_081824A4 - thumb_func_end pokemonanimfunc_3D - - thumb_func_start sub_081824A4 -sub_081824A4: @ 0x081824A4 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3c] - adds r0, #8 - movs r1, #0 - strh r0, [r4, #0x3c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3f - ble _081824C8 - strh r1, [r4, #0x3c] - strh r1, [r4, #0x3a] - ldr r0, _081824C4 - str r0, [r4, #0x1c] - movs r0, #0x40 - b _081824CC - .align 2, 0 -_081824C4: .4byte sub_081824F4 -_081824C8: - movs r1, #0x3c - ldrsh r0, [r4, r1] -_081824CC: - movs r1, #0x80 - bl Sin - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #1 - lsls r2, r0, #0x10 - asrs r2, r2, #0x10 - adds r2, r2, r1 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r0, r4, #0 - movs r3, #0 - bl HandleSetAffineData - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081824A4 - - thumb_func_start sub_081824F4 -sub_081824F4: @ 0x081824F4 - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3c] - adds r0, #4 - strh r0, [r4, #0x3c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x5f - ble _0818251E - movs r0, #0 - movs r1, #0x80 - bl Cos - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - movs r0, #0 - strh r0, [r4, #0x3c] - ldrh r0, [r4, #0x3a] - adds r0, #1 - strh r0, [r4, #0x3a] - b _08182574 -_0818251E: - movs r1, #0x3c - ldrsh r0, [r4, r1] - movs r1, #8 - bl Sin - movs r2, #0x3a - ldrsh r1, [r4, r2] - lsls r1, r1, #2 - rsbs r1, r1, #0 - subs r1, r1, r0 - strh r1, [r4, #0x26] - ldrh r1, [r4, #0x3c] - movs r2, #0x3c - ldrsh r0, [r4, r2] - cmp r0, #0x3f - ble _08182550 - ldr r5, _0818254C - adds r0, r1, #0 - subs r0, #0x40 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b _08182554 - .align 2, 0 -_0818254C: .4byte 0x0000FFFF -_08182550: - movs r5, #1 - movs r0, #0 -_08182554: - lsls r0, r0, #0x10 - asrs r0, r0, #0xf - ldrh r1, [r4, #0x3c] - adds r0, r0, r1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x80 - bl Cos - lsls r1, r5, #0x10 - asrs r1, r1, #0x10 - adds r2, r1, #0 - muls r2, r0, r2 - adds r0, r2, #0 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 -_08182574: - movs r1, #0x80 - lsls r1, r1, #1 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r2, r2, r1 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r0, r4, #0 - movs r3, #0 - bl HandleSetAffineData - movs r1, #0x3a - ldrsh r0, [r4, r1] - cmp r0, #3 - bne _0818259A - movs r0, #0 - strh r0, [r4, #0x3c] - ldr r0, _081825A0 - str r0, [r4, #0x1c] -_0818259A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081825A0: .4byte sub_081825A4 - thumb_func_end sub_081824F4 - - thumb_func_start sub_081825A4 -sub_081825A4: @ 0x081825A4 - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3c] - adds r0, #8 - strh r0, [r4, #0x3c] - movs r1, #0x3c - ldrsh r0, [r4, r1] - movs r1, #0x80 - bl Cos - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - movs r1, #0x3c - ldrsh r0, [r4, r1] - movs r1, #0xc - bl Cos - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - movs r1, #0x3c - ldrsh r0, [r4, r1] - cmp r0, #0x3f - ble _081825EE - adds r0, r4, #0 - bl sub_0817F628 - ldr r0, _0818260C - str r0, [r4, #0x1c] - movs r0, #0 - strh r0, [r4, #0x26] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData -_081825EE: - movs r1, #0x80 - lsls r1, r1, #1 - lsls r2, r5, #0x10 - asrs r2, r2, #0x10 - adds r2, r2, r1 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r0, r4, #0 - movs r3, #0 - bl HandleSetAffineData - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0818260C: .4byte sub_08184C34 - thumb_func_end sub_081825A4 - - thumb_func_start sub_08182610 -sub_08182610: @ 0x08182610 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x3c - ldrsh r1, [r4, r0] - movs r2, #0x38 - ldrsh r0, [r4, r2] - cmp r1, r0 - ble _08182644 - movs r0, #0 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0817F628 - ldr r0, _08182640 - str r0, [r4, #0x1c] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - b _081826A0 - .align 2, 0 -_08182640: .4byte sub_08184C34 -_08182644: - movs r0, #0x3c - ldrsh r1, [r4, r0] - adds r0, r1, #0 - cmp r1, #0 - bge _08182650 - adds r0, #0xff -_08182650: - asrs r0, r0, #8 - lsls r0, r0, #8 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x36 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x3a] - ldrh r1, [r4, #0x3c] - adds r0, r0, r1 - strh r0, [r4, #0x3c] - movs r2, #0x3c - ldrsh r1, [r4, r2] - adds r0, r1, #0 - cmp r1, #0 - bge _08182678 - adds r0, #0x7f -_08182678: - asrs r0, r0, #7 - lsls r0, r0, #7 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x60 - bl Sin - adds r1, r0, #0 - lsls r1, r1, #0x10 - movs r0, #0x80 - lsls r0, r0, #0x11 - adds r1, r1, r0 - asrs r1, r1, #0x10 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - movs r3, #0 - bl HandleSetAffineData -_081826A0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08182610 - - thumb_func_start pokemonanimfunc_3E -pokemonanimfunc_3E: @ 0x081826A8 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r5, [r4, r0] - cmp r5, #0 - bne _081826CE - adds r0, r4, #0 - bl HandleStartAffineAnim - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - strh r5, [r4, #0x3c] - movs r1, #8 - strh r1, [r4, #0x3a] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x38] - strh r1, [r4, #0x36] -_081826CE: - adds r0, r4, #0 - bl sub_08182610 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_3E - - thumb_func_start sub_081826DC -sub_081826DC: @ 0x081826DC - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x3c - ldrsh r1, [r4, r0] - movs r2, #0x38 - ldrsh r0, [r4, r2] - cmp r1, r0 - ble _08182710 - movs r0, #0 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0817F628 - ldr r0, _0818270C - str r0, [r4, #0x1c] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - b _0818276C - .align 2, 0 -_0818270C: .4byte sub_08184C34 -_08182710: - movs r0, #0x3c - ldrsh r1, [r4, r0] - adds r0, r1, #0 - cmp r1, #0 - bge _0818271C - adds r0, #0xff -_0818271C: - asrs r0, r0, #8 - lsls r0, r0, #8 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x36 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x3a] - ldrh r1, [r4, #0x3c] - adds r0, r0, r1 - strh r0, [r4, #0x3c] - movs r2, #0x3c - ldrsh r1, [r4, r2] - adds r0, r1, #0 - cmp r1, #0 - bge _08182744 - adds r0, #0x3f -_08182744: - asrs r0, r0, #6 - lsls r0, r0, #6 - subs r0, r1, r0 - lsls r0, r0, #0x11 - asrs r0, r0, #0x10 - movs r1, #0x80 - bl Sin - adds r1, r0, #0 - lsls r1, r1, #0x10 - movs r0, #0x80 - lsls r0, r0, #0x11 - adds r1, r1, r0 - asrs r1, r1, #0x10 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - movs r3, #0 - bl HandleSetAffineData -_0818276C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081826DC - - thumb_func_start pokemonanimfunc_3F -pokemonanimfunc_3F: @ 0x08182774 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r5, [r4, r0] - cmp r5, #0 - bne _0818279A - adds r0, r4, #0 - bl HandleStartAffineAnim - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - strh r5, [r4, #0x3c] - movs r0, #4 - strh r0, [r4, #0x3a] - adds r0, #0xfc - strh r0, [r4, #0x38] - movs r0, #0x10 - strh r0, [r4, #0x36] -_0818279A: - adds r0, r4, #0 - bl sub_081826DC - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_3F - - thumb_func_start pokemonanimfunc_40 -pokemonanimfunc_40: @ 0x081827A8 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - movs r0, #0x32 - ldrsh r5, [r4, r0] - cmp r5, #0 - bne _081827C6 - adds r0, r4, #0 - bl HandleStartAffineAnim - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - strh r5, [r4, #0x3c] -_081827C6: - movs r0, #0x3c - ldrsh r1, [r4, r0] - movs r0, #0x80 - lsls r0, r0, #2 - cmp r1, r0 - ble _081827F4 - movs r0, #0 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0817F628 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - ldr r0, _081827F0 - str r0, [r4, #0x1c] - b _0818284A - .align 2, 0 -_081827F0: .4byte sub_08184C34 -_081827F4: - movs r0, #0x3c - ldrsh r1, [r4, r0] - adds r0, r1, #0 - cmp r1, #0 - bge _08182800 - adds r0, #0xff -_08182800: - asrs r0, r0, #8 - lsls r0, r0, #8 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #8 - bl Sin - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x3c] - adds r0, #8 - strh r0, [r4, #0x3c] - movs r0, #0x3c - ldrsh r1, [r4, r0] - adds r0, r1, #0 - cmp r1, #0 - bge _08182824 - adds r0, #0x7f -_08182824: - asrs r0, r0, #7 - lsls r0, r0, #7 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x60 - bl Sin - adds r2, r0, #0 - lsls r2, r2, #0x10 - movs r0, #0x80 - lsls r0, r0, #0x11 - adds r2, r2, r0 - asrs r2, r2, #0x10 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData -_0818284A: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_40 - - thumb_func_start pokemonanimfunc_41 -pokemonanimfunc_41: @ 0x08182858 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - movs r0, #0x32 - ldrsh r5, [r4, r0] - cmp r5, #0 - bne _08182876 - adds r0, r4, #0 - bl HandleStartAffineAnim - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - strh r5, [r4, #0x3c] -_08182876: - movs r0, #0x3c - ldrsh r1, [r4, r0] - movs r0, #0x80 - lsls r0, r0, #2 - cmp r1, r0 - ble _081828A4 - movs r0, #0 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0817F628 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - ldr r0, _081828A0 - str r0, [r4, #0x1c] - b _0818290A - .align 2, 0 -_081828A0: .4byte sub_08184C34 -_081828A4: - movs r1, #0x3c - ldrsh r0, [r4, r1] - adds r1, r0, #0 - cmp r0, #0 - bge _081828B0 - adds r1, #0xff -_081828B0: - asrs r1, r1, #8 - lsls r1, r1, #8 - subs r1, r0, r1 - lsls r1, r1, #0x10 - asrs r0, r1, #0x10 - lsrs r1, r1, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - movs r1, #0x10 - bl Sin - rsbs r0, r0, #0 - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x3c] - adds r0, #8 - strh r0, [r4, #0x3c] - movs r1, #0x3c - ldrsh r0, [r4, r1] - adds r1, r0, #0 - cmp r0, #0 - bge _081828DC - adds r1, #0xff -_081828DC: - asrs r1, r1, #8 - lsls r1, r1, #8 - subs r1, r0, r1 - lsls r1, r1, #0x10 - asrs r0, r1, #0x10 - lsrs r1, r1, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - movs r1, #0x40 - bl Sin - adds r2, r0, #0 - rsbs r2, r2, #0 - lsls r2, r2, #0x10 - movs r0, #0x80 - lsls r0, r0, #0x11 - adds r2, r2, r0 - asrs r2, r2, #0x10 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData -_0818290A: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_41 - - thumb_func_start pokemonanimfunc_42 -pokemonanimfunc_42: @ 0x08182918 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - movs r0, #0x32 - ldrsh r5, [r4, r0] - cmp r5, #0 - bne _08182936 - adds r0, r4, #0 - bl HandleStartAffineAnim - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - strh r5, [r4, #0x3c] -_08182936: - movs r0, #0x3c - ldrsh r1, [r4, r0] - movs r0, #0x80 - lsls r0, r0, #2 - cmp r1, r0 - ble _08182964 - movs r0, #0 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0817F628 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - ldr r0, _08182960 - str r0, [r4, #0x1c] - b _081829C2 - .align 2, 0 -_08182960: .4byte sub_08184C34 -_08182964: - movs r0, #0x3c - ldrsh r1, [r4, r0] - adds r0, r1, #0 - cmp r1, #0 - bge _08182970 - adds r0, #0xff -_08182970: - asrs r0, r0, #8 - lsls r0, r0, #8 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #8 - bl Sin - rsbs r0, r0, #0 - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x3c] - adds r0, #8 - strh r0, [r4, #0x3c] - movs r1, #0x3c - ldrsh r0, [r4, r1] - adds r1, r0, #0 - cmp r0, #0 - bge _08182996 - adds r1, #0xff -_08182996: - asrs r1, r1, #8 - lsls r1, r1, #8 - subs r1, r0, r1 - lsls r1, r1, #0x10 - asrs r0, r1, #0x10 - lsrs r1, r1, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - movs r1, #0x60 - bl Sin - adds r2, r0, #0 - lsls r2, r2, #0x10 - movs r0, #0x80 - lsls r0, r0, #0x11 - adds r2, r2, r0 - asrs r2, r2, #0x10 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData -_081829C2: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_42 - - thumb_func_start pokemonanimfunc_43 -pokemonanimfunc_43: @ 0x081829D0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - movs r0, #0x32 - ldrsh r1, [r4, r0] - movs r0, #0x80 - lsls r0, r0, #4 - cmp r1, r0 - ble _081829F4 - ldr r0, _081829F0 - str r0, [r4, #0x1c] - movs r0, #0 - strh r0, [r4, #0x3a] - b _08182AB4 - .align 2, 0 -_081829F0: .4byte sub_08184C34 -_081829F4: - movs r1, #0x32 - ldrsh r2, [r4, r1] - adds r0, r2, #0 - cmp r2, #0 - bge _08182A02 - ldr r1, _08182A28 - adds r0, r2, r1 -_08182A02: - asrs r3, r0, #9 - adds r1, r3, #0 - adds r0, r1, #0 - cmp r1, #0 - bge _08182A0E - adds r0, r1, #3 -_08182A0E: - asrs r0, r0, #2 - lsls r0, r0, #2 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - beq _08182A50 - cmp r0, #1 - bgt _08182A2C - cmp r0, #0 - beq _08182A36 - b _08182A8E - .align 2, 0 -_08182A28: .4byte 0x000001FF -_08182A2C: - cmp r0, #2 - beq _08182A64 - cmp r0, #3 - beq _08182A76 - b _08182A8E -_08182A36: - lsls r0, r3, #9 - subs r0, r2, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0xc - rsbs r0, r0, #0 - cmp r0, #0 - bge _08182A48 - ldr r1, _08182A4C - adds r0, r0, r1 -_08182A48: - asrs r0, r0, #9 - b _08182A8C - .align 2, 0 -_08182A4C: .4byte 0x000001FF -_08182A50: - lsls r0, r3, #9 - subs r0, r2, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _08182A5E - adds r0, #0x1f -_08182A5E: - asrs r0, r0, #5 - subs r0, #0x10 - b _08182A8C -_08182A64: - lsls r0, r3, #9 - subs r0, r2, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _08182A72 - adds r0, #0x1f -_08182A72: - asrs r0, r0, #5 - b _08182A8C -_08182A76: - lsls r0, r3, #9 - subs r0, r2, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0xc - rsbs r0, r0, #0 - cmp r0, #0 - bge _08182A88 - ldr r1, _08182AC0 - adds r0, r0, r1 -_08182A88: - asrs r0, r0, #9 - adds r0, #0x10 -_08182A8C: - strh r0, [r4, #0x24] -_08182A8E: - movs r0, #0x32 - ldrsh r1, [r4, r0] - adds r0, r1, #0 - cmp r1, #0 - bge _08182A9A - adds r0, #0x7f -_08182A9A: - asrs r0, r0, #7 - lsls r0, r0, #7 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #4 - bl Sin - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x32] - adds r0, #0x18 - strh r0, [r4, #0x32] -_08182AB4: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08182AC0: .4byte 0x000001FF - thumb_func_end pokemonanimfunc_43 - - thumb_func_start pokemonanimfunc_44 -pokemonanimfunc_44: @ 0x08182AC4 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - ldrh r1, [r4, #0x32] - movs r2, #0x32 - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _08182AE0 - strh r0, [r4, #0x3a] - movs r0, #0x40 - strh r0, [r4, #0x3c] - adds r0, r1, #1 - strh r0, [r4, #0x32] -_08182AE0: - ldrh r0, [r4, #0x3c] - adds r1, r0, #0 - adds r1, #8 - movs r3, #0 - strh r1, [r4, #0x3c] - ldrh r2, [r4, #0x3a] - movs r5, #0x3a - ldrsh r0, [r4, r5] - cmp r0, #4 - bne _08182AFE - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3f - ble _08182B0C - b _08182B06 -_08182AFE: - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x7f - ble _08182B0C -_08182B06: - strh r3, [r4, #0x3c] - adds r0, r2, #1 - strh r0, [r4, #0x3a] -_08182B0C: - movs r1, #0x3a - ldrsh r0, [r4, r1] - cmp r0, #4 - bhi _08182BB4 - lsls r0, r0, #2 - ldr r1, _08182B20 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08182B20: .4byte _08182B24 -_08182B24: @ jump table - .4byte _08182B98 @ case 0 - .4byte _08182B38 @ case 1 - .4byte _08182B56 @ case 2 - .4byte _08182B78 @ case 3 - .4byte _08182B98 @ case 4 -_08182B38: - movs r2, #0x3c - ldrsh r0, [r4, r2] - movs r1, #8 - bl Cos - rsbs r0, r0, #0 - strh r0, [r4, #0x24] - movs r5, #0x3c - ldrsh r0, [r4, r5] - movs r1, #8 - bl Sin - subs r0, #8 - strh r0, [r4, #0x26] - b _08182BBE -_08182B56: - ldrh r0, [r4, #0x3c] - adds r0, #0x80 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #8 - bl Sin - adds r0, #8 - strh r0, [r4, #0x24] - movs r1, #0x3c - ldrsh r0, [r4, r1] - movs r1, #8 - bl Cos - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - b _08182BBE -_08182B78: - movs r2, #0x3c - ldrsh r0, [r4, r2] - movs r1, #8 - bl Cos - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x3c] - adds r0, #0x80 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #8 - bl Sin - adds r0, #8 - strh r0, [r4, #0x26] - b _08182BBE -_08182B98: - movs r5, #0x3c - ldrsh r0, [r4, r5] - movs r1, #8 - bl Sin - subs r0, #8 - strh r0, [r4, #0x24] - movs r1, #0x3c - ldrsh r0, [r4, r1] - movs r1, #8 - bl Cos - strh r0, [r4, #0x26] - b _08182BBE -_08182BB4: - movs r0, #0 - strh r0, [r4, #0x24] - strh r0, [r4, #0x26] - ldr r0, _08182BCC - str r0, [r4, #0x1c] -_08182BBE: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08182BCC: .4byte sub_08184C34 - thumb_func_end pokemonanimfunc_44 - - thumb_func_start pokemonanimfunc_45 -pokemonanimfunc_45: @ 0x08182BD0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x20 - strh r0, [r4, #0x2e] - adds r0, r4, #0 - bl sub_081805C0 - ldr r0, _08182BE8 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08182BE8: .4byte sub_081805C0 - thumb_func_end pokemonanimfunc_45 - - thumb_func_start pokemonanimfunc_46 -pokemonanimfunc_46: @ 0x08182BEC - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x50 - strh r0, [r4, #0x2e] - adds r0, r4, #0 - bl sub_0817F7A8 - ldr r0, _08182C04 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08182C04: .4byte sub_0817F7A8 - thumb_func_end pokemonanimfunc_46 - - thumb_func_start pokemonanimfunc_47 -pokemonanimfunc_47: @ 0x08182C08 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x50 - strh r0, [r4, #0x2e] - adds r0, r4, #0 - bl sub_0817F824 - ldr r0, _08182C20 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08182C20: .4byte sub_0817F824 - thumb_func_end pokemonanimfunc_47 - - thumb_func_start pokemonanimfunc_48 -pokemonanimfunc_48: @ 0x08182C24 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F604 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x2e] - ldr r2, _08182C58 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #0x80 - lsls r0, r0, #4 - strh r0, [r1, #6] - ldrh r0, [r4, #0x3a] - strh r0, [r1, #8] - adds r0, r4, #0 - bl sub_081807AC - ldr r0, _08182C5C - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08182C58: .4byte gUnknown_3001240 -_08182C5C: .4byte sub_081807AC - thumb_func_end pokemonanimfunc_48 - - thumb_func_start sub_08182C60 -sub_08182C60: @ 0x08182C60 - push {lr} - movs r1, #1 - strh r1, [r0, #0x3a] - bl pokemonanimfunc_05 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08182C60 - - thumb_func_start pokemonanimfunc_4A -pokemonanimfunc_4A: @ 0x08182C70 - push {lr} - movs r1, #1 - strh r1, [r0, #0x3a] - bl pokemonanimfunc_48 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_4A - - thumb_func_start pokemonanimfunc_4B -pokemonanimfunc_4B: @ 0x08182C80 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08182C8E - strh r0, [r4, #0x2e] -_08182C8E: - ldrh r1, [r4, #0x2e] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r0, #0 - bgt _08182CA2 - adds r0, r4, #0 - bl sub_0817FACC - movs r0, #1 - b _08182CA4 -_08182CA2: - subs r0, r1, #1 -_08182CA4: - strh r0, [r4, #0x2e] - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_4B - - thumb_func_start pokemonanimfunc_4C -pokemonanimfunc_4C: @ 0x08182CAC - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x1e - strh r0, [r4, #0x2e] - movs r0, #3 - strh r0, [r4, #0x3c] - adds r0, r4, #0 - bl sub_0817FB88 - ldr r0, _08182CC8 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08182CC8: .4byte sub_0817FB88 - thumb_func_end pokemonanimfunc_4C - - thumb_func_start pokemonanimfunc_4D -pokemonanimfunc_4D: @ 0x08182CCC - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x1e - strh r0, [r4, #0x2e] - adds r0, r4, #0 - bl sub_0817FBF0 - ldr r0, _08182CE4 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08182CE4: .4byte sub_0817FBF0 - thumb_func_end pokemonanimfunc_4D - - thumb_func_start pokemonanimfunc_4E -pokemonanimfunc_4E: @ 0x08182CE8 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F604 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r3, #0 - strh r0, [r4, #0x2e] - ldr r2, _08182D20 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r1, #6] - strh r3, [r1] - movs r0, #2 - strh r0, [r1, #4] - adds r0, r4, #0 - bl sub_0817FCDC - ldr r0, _08182D24 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08182D20: .4byte gUnknown_3001240 -_08182D24: .4byte sub_0817FCDC - thumb_func_end pokemonanimfunc_4E - - thumb_func_start pokemonanimfunc_4F -pokemonanimfunc_4F: @ 0x08182D28 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F604 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x2e] - ldr r2, _08182D60 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r1, #6] - movs r0, #3 - strh r0, [r1, #8] - movs r0, #0xc - strh r0, [r1, #2] - adds r0, r4, #0 - bl sub_0817FE9C - ldr r0, _08182D64 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08182D60: .4byte gUnknown_3001240 -_08182D64: .4byte sub_0817FE9C - thumb_func_end pokemonanimfunc_4F - - thumb_func_start pokemonanimfunc_50 -pokemonanimfunc_50: @ 0x08182D68 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x18 - strh r0, [r4, #0x2e] - adds r0, r4, #0 - bl sub_081801C8 - ldr r0, _08182D80 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08182D80: .4byte sub_081801C8 - thumb_func_end pokemonanimfunc_50 - - thumb_func_start pokemonanimfunc_51 -pokemonanimfunc_51: @ 0x08182D84 - push {r4, lr} - adds r4, r0, #0 - movs r0, #5 - strh r0, [r4, #0x2e] - adds r0, r4, #0 - bl sub_081803A4 - ldr r0, _08182D9C - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08182D9C: .4byte sub_081803A4 - thumb_func_end pokemonanimfunc_51 - - thumb_func_start pokemonanimfunc_52 -pokemonanimfunc_52: @ 0x08182DA0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #3 - strh r0, [r4, #0x2e] - adds r0, r4, #0 - bl sub_0817F8A0 - ldr r0, _08182DB8 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08182DB8: .4byte sub_0817F8A0 - thumb_func_end pokemonanimfunc_52 - - thumb_func_start pokemonanimfunc_53 -pokemonanimfunc_53: @ 0x08182DBC - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F604 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x2e] - ldr r2, _08182DEC - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #0x3c - strh r0, [r1] - movs r0, #0x1e - strh r0, [r1, #8] - adds r0, r4, #0 - bl sub_0817FDE8 - ldr r0, _08182DF0 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08182DEC: .4byte gUnknown_3001240 -_08182DF0: .4byte sub_0817FDE8 - thumb_func_end pokemonanimfunc_53 - - thumb_func_start pokemonanimfunc_54 -pokemonanimfunc_54: @ 0x08182DF4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F604 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x2e] - ldr r2, _08182E24 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #1 - strh r0, [r1, #2] - movs r0, #2 - strh r0, [r1, #4] - adds r0, r4, #0 - bl sub_081810C0 - ldr r0, _08182E28 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08182E24: .4byte gUnknown_3001240 -_08182E28: .4byte sub_081810C0 - thumb_func_end pokemonanimfunc_54 - - thumb_func_start pokemonanimfunc_55 -pokemonanimfunc_55: @ 0x08182E2C - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F604 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x2e] - ldr r2, _08182E5C - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #4 - strh r0, [r1, #6] - movs r0, #2 - strh r0, [r1, #4] - adds r0, r4, #0 - bl sub_081816BC - ldr r0, _08182E60 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08182E5C: .4byte gUnknown_3001240 -_08182E60: .4byte sub_081816BC - thumb_func_end pokemonanimfunc_55 - - thumb_func_start pokemonanimfunc_56 -pokemonanimfunc_56: @ 0x08182E64 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0817F604 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r5, #0 - strh r0, [r4, #0x2e] - ldr r2, _08182EA0 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #1 - strh r0, [r1, #8] - movs r0, #2 - strh r0, [r1, #4] - adds r0, r4, #0 - bl HandleStartAffineAnim - strh r5, [r4, #0x34] - adds r0, r4, #0 - bl sub_08181968 - ldr r0, _08182EA4 - str r0, [r4, #0x1c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08182EA0: .4byte gUnknown_3001240 -_08182EA4: .4byte sub_08181968 - thumb_func_end pokemonanimfunc_56 - - thumb_func_start pokemonanimfunc_07 -pokemonanimfunc_07: @ 0x08182EA8 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F604 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x2e] - ldr r2, _08182ED4 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #2 - strh r0, [r1, #6] - adds r0, r4, #0 - bl sub_08181B94 - ldr r0, _08182ED8 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08182ED4: .4byte gUnknown_3001240 -_08182ED8: .4byte sub_08181B94 - thumb_func_end pokemonanimfunc_07 - - thumb_func_start pokemonanimfunc_08 -pokemonanimfunc_08: @ 0x08182EDC - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F604 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x2e] - ldr r2, _08182F0C - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #4 - strh r0, [r1, #6] - movs r0, #2 - strh r0, [r1, #4] - adds r0, r4, #0 - bl sub_08181B94 - ldr r0, _08182F10 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08182F0C: .4byte gUnknown_3001240 -_08182F10: .4byte sub_08181B94 - thumb_func_end pokemonanimfunc_08 - - thumb_func_start pokemonanimfunc_0B -pokemonanimfunc_0B: @ 0x08182F14 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F604 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x2e] - ldr r2, _08182F40 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #0x64 - strh r0, [r1, #8] - adds r0, r4, #0 - bl sub_08181380 - ldr r0, _08182F44 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08182F40: .4byte gUnknown_3001240 -_08182F44: .4byte sub_08181380 - thumb_func_end pokemonanimfunc_0B - - thumb_func_start pokemonanimfunc_0C -pokemonanimfunc_0C: @ 0x08182F48 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F604 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x2e] - ldr r2, _08182F78 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #0x32 - strh r0, [r1, #8] - movs r0, #2 - strh r0, [r1, #4] - adds r0, r4, #0 - bl sub_08181380 - ldr r0, _08182F7C - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08182F78: .4byte gUnknown_3001240 -_08182F7C: .4byte sub_08181380 - thumb_func_end pokemonanimfunc_0C - - thumb_func_start pokemonanimfunc_0D -pokemonanimfunc_0D: @ 0x08182F80 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F604 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x2e] - ldr r2, _08182FAC - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #0x64 - strh r0, [r1, #8] - adds r0, r4, #0 - bl sub_08181480 - ldr r0, _08182FB0 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08182FAC: .4byte gUnknown_3001240 -_08182FB0: .4byte sub_08181480 - thumb_func_end pokemonanimfunc_0D - - thumb_func_start pokemonanimfunc_0E -pokemonanimfunc_0E: @ 0x08182FB4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F604 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x2e] - ldr r2, _08182FE4 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #0x32 - strh r0, [r1, #8] - movs r0, #2 - strh r0, [r1, #4] - adds r0, r4, #0 - bl sub_08181480 - ldr r0, _08182FE8 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08182FE4: .4byte gUnknown_3001240 -_08182FE8: .4byte sub_08181480 - thumb_func_end pokemonanimfunc_0E - - thumb_func_start sub_08182FEC -sub_08182FEC: @ 0x08182FEC - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r2, [r4, r0] - movs r0, #0x90 - lsls r0, r0, #4 - cmp r2, r0 - ble _08183008 - ldr r0, _08183004 - str r0, [r4, #0x1c] - movs r0, #0 - b _0818302C - .align 2, 0 -_08183004: .4byte sub_08184C34 -_08183008: - adds r1, r2, #0 - adds r1, #0xc0 - adds r0, r1, #0 - cmp r1, #0 - bge _08183016 - ldr r3, _0818303C - adds r0, r2, r3 -_08183016: - asrs r0, r0, #8 - lsls r0, r0, #8 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x3c - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, #0x3c] - adds r0, r0, r1 -_0818302C: - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x2e] - ldrh r3, [r4, #0x32] - adds r0, r0, r3 - strh r0, [r4, #0x32] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0818303C: .4byte 0x000001BF - thumb_func_end sub_08182FEC - - thumb_func_start pokemonanimfunc_57 -pokemonanimfunc_57: @ 0x08183040 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x3c - strh r0, [r4, #0x2e] - movs r0, #3 - strh r0, [r4, #0x3c] - adds r0, r4, #0 - bl sub_08182FEC - ldr r0, _0818305C - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0818305C: .4byte sub_08182FEC - thumb_func_end pokemonanimfunc_57 - - thumb_func_start pokemonanimfunc_58 -pokemonanimfunc_58: @ 0x08183060 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x1e - strh r0, [r4, #0x2e] - movs r0, #3 - strh r0, [r4, #0x3c] - adds r0, r4, #0 - bl sub_08182FEC - ldr r0, _0818307C - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0818307C: .4byte sub_08182FEC - thumb_func_end pokemonanimfunc_58 - - thumb_func_start pokemonanimfunc_66 -pokemonanimfunc_66: @ 0x08183080 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - movs r0, #0x32 - ldrsh r1, [r4, r0] - movs r0, #0x80 - lsls r0, r0, #4 - cmp r1, r0 - ble _081830A4 - ldr r0, _081830A0 - str r0, [r4, #0x1c] - movs r0, #0 - strh r0, [r4, #0x3a] - b _08183168 - .align 2, 0 -_081830A0: .4byte sub_08184C34 -_081830A4: - movs r1, #0x32 - ldrsh r2, [r4, r1] - adds r0, r2, #0 - cmp r2, #0 - bge _081830B2 - ldr r1, _081830D8 - adds r0, r2, r1 -_081830B2: - asrs r3, r0, #9 - adds r1, r3, #0 - adds r0, r1, #0 - cmp r1, #0 - bge _081830BE - adds r0, r1, #3 -_081830BE: - asrs r0, r0, #2 - lsls r0, r0, #2 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - beq _08183114 - cmp r0, #1 - bgt _081830DC - cmp r0, #0 - beq _081830E6 - b _08183144 - .align 2, 0 -_081830D8: .4byte 0x000001FF -_081830DC: - cmp r0, #2 - beq _081830F8 - cmp r0, #3 - beq _08183130 - b _08183144 -_081830E6: - lsls r0, r3, #9 - subs r0, r2, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _081830F4 - adds r0, #0x1f -_081830F4: - asrs r0, r0, #5 - b _08183142 -_081830F8: - lsls r0, r3, #9 - subs r0, r2, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0xc - rsbs r0, r0, #0 - cmp r0, #0 - bge _0818310A - ldr r1, _08183110 - adds r0, r0, r1 -_0818310A: - asrs r0, r0, #9 - b _08183142 - .align 2, 0 -_08183110: .4byte 0x000001FF -_08183114: - lsls r0, r3, #9 - subs r0, r2, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0xc - rsbs r0, r0, #0 - cmp r0, #0 - bge _08183126 - ldr r1, _0818312C - adds r0, r0, r1 -_08183126: - asrs r0, r0, #9 - adds r0, #0x10 - b _08183142 - .align 2, 0 -_0818312C: .4byte 0x000001FF -_08183130: - lsls r0, r3, #9 - subs r0, r2, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _0818313E - adds r0, #0x1f -_0818313E: - asrs r0, r0, #5 - subs r0, #0x10 -_08183142: - strh r0, [r4, #0x24] -_08183144: - movs r0, #0x32 - ldrsh r1, [r4, r0] - adds r0, r1, #0 - cmp r1, #0 - bge _08183150 - adds r0, #0x7f -_08183150: - asrs r0, r0, #7 - lsls r0, r0, #7 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #4 - bl Sin - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x32] - adds r0, #0x18 - strh r0, [r4, #0x32] -_08183168: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_66 - - thumb_func_start sub_08183174 -sub_08183174: @ 0x08183174 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - movs r0, #0 - mov r8, r0 - movs r2, #0x38 - ldrsh r1, [r6, r2] - movs r2, #0x3a - ldrsh r0, [r6, r2] - cmp r1, r0 - ble _081831C6 - mov r0, r8 - strh r0, [r6, #0x26] - strh r0, [r6, #0x38] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r6, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - ldrh r1, [r6, #0x36] - movs r2, #0x36 - ldrsh r0, [r6, r2] - cmp r0, #1 - bgt _081831BC - adds r0, r6, #0 - bl sub_0817F628 - ldr r0, _081831B8 - str r0, [r6, #0x1c] - b _08183288 - .align 2, 0 -_081831B8: .4byte sub_08184C34 -_081831BC: - subs r0, r1, #1 - strh r0, [r6, #0x36] - mov r0, r8 - strh r0, [r6, #0x3c] - b _08183288 -_081831C6: - movs r1, #0x38 - ldrsh r5, [r6, r1] - lsls r0, r5, #7 - movs r2, #0x3a - ldrsh r4, [r6, r2] - adds r1, r4, #0 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r4, #0 - bge _081831E0 - adds r4, #3 -_081831E0: - asrs r1, r4, #2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r5, r1 - blt _08183204 - cmp r5, r0 - bge _08183204 - ldrh r0, [r6, #0x3c] - adds r0, #0x33 - strh r0, [r6, #0x3c] - movs r1, #0xff - mov r8, r1 - ands r1, r0 - mov r8, r1 -_08183204: - movs r1, #0x30 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _08183228 - lsls r4, r2, #0x10 - asrs r0, r4, #0x10 - movs r1, #0x10 - bl Sin - ldr r2, _08183224 - adds r1, r2, #0 - subs r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sb, r1 - b _0818323E - .align 2, 0 -_08183224: .4byte 0xFFFFFF00 -_08183228: - lsls r4, r2, #0x10 - asrs r0, r4, #0x10 - movs r1, #0x10 - bl Sin - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 -_0818323E: - adds r7, r4, #0 - ldrh r4, [r6, #0x34] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r5, r8 - adds r0, r4, #0 - movs r1, #5 - bl __udivsi3 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl Sin - adds r5, r0, #0 - asrs r0, r7, #0x10 - adds r1, r4, #0 - bl Sin - movs r1, #0x80 - lsls r1, r1, #1 - adds r2, r1, #0 - subs r2, r2, r5 - subs r2, r2, r0 - mov r0, sb - lsls r1, r0, #0x10 - asrs r1, r1, #0x10 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r0, r6, #0 - movs r3, #0 - bl SetAffineData - ldrh r0, [r6, #0x38] - adds r0, #1 - strh r0, [r6, #0x38] -_08183288: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08183174 - - thumb_func_start pokemonanimfunc_5A -pokemonanimfunc_5A: @ 0x08183294 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #0x32 - ldrsh r6, [r5, r0] - cmp r6, #0 - bne _081832B6 - movs r4, #1 - strh r4, [r5, #0x32] - adds r0, r5, #0 - bl HandleStartAffineAnim - strh r4, [r5, #0x36] - movs r0, #0x28 - strh r0, [r5, #0x3a] - strh r0, [r5, #0x34] - strh r6, [r5, #0x38] - strh r6, [r5, #0x3c] -_081832B6: - adds r0, r5, #0 - bl sub_08183174 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_5A - - thumb_func_start sub_081832C4 -sub_081832C4: @ 0x081832C4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - movs r0, #0 - mov r8, r0 - movs r2, #0x38 - ldrsh r1, [r6, r2] - movs r2, #0x3a - ldrsh r0, [r6, r2] - cmp r1, r0 - ble _08183316 - mov r0, r8 - strh r0, [r6, #0x38] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r6, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - ldrh r1, [r6, #0x36] - movs r2, #0x36 - ldrsh r0, [r6, r2] - cmp r0, #1 - bgt _0818330C - adds r0, r6, #0 - bl sub_0817F628 - ldr r0, _08183308 - str r0, [r6, #0x1c] - b _081833E4 - .align 2, 0 -_08183308: .4byte sub_08184C34 -_0818330C: - subs r0, r1, #1 - strh r0, [r6, #0x36] - mov r0, r8 - strh r0, [r6, #0x3c] - b _081833E4 -_08183316: - movs r1, #0x38 - ldrsh r5, [r6, r1] - lsls r0, r5, #7 - movs r2, #0x3a - ldrsh r4, [r6, r2] - adds r1, r4, #0 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - cmp r4, #0 - bge _08183332 - adds r4, #3 -_08183332: - asrs r1, r4, #2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r5, r1 - blt _08183358 - cmp r5, r0 - bge _08183358 - ldrh r0, [r6, #0x3c] - adds r0, #0x33 - strh r0, [r6, #0x3c] - movs r1, #0xff - mov r8, r1 - mov r2, r8 - ands r2, r0 - mov r8, r2 -_08183358: - ldrh r0, [r6, #0x34] - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r1, #0x30 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _0818339C - mov r2, sb - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - adds r1, r7, #0 - bl Sin - adds r4, r0, #0 - mov r5, r8 - adds r0, r7, #0 - movs r1, #5 - bl __udivsi3 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x17 - adds r0, r5, #0 - bl Sin - ldr r1, _08183398 - adds r0, r0, r1 - adds r4, r4, r0 - lsls r4, r4, #0x10 - lsrs r1, r4, #0x10 - b _081833CE - .align 2, 0 -_08183398: .4byte 0xFFFFFF00 -_0818339C: - mov r4, r8 - adds r0, r7, #0 - movs r1, #5 - bl __udivsi3 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x17 - adds r0, r4, #0 - bl Sin - adds r4, r0, #0 - mov r2, sb - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - adds r1, r7, #0 - bl Sin - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r2, #0 - subs r1, r1, r4 - subs r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 -_081833CE: - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r6, #0 - movs r3, #0 - bl SetAffineData - ldrh r0, [r6, #0x38] - adds r0, #1 - strh r0, [r6, #0x38] -_081833E4: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_081832C4 - - thumb_func_start pokemonanimfunc_5B -pokemonanimfunc_5B: @ 0x081833F0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #0x32 - ldrsh r6, [r5, r0] - cmp r6, #0 - bne _08183412 - movs r4, #1 - strh r4, [r5, #0x32] - adds r0, r5, #0 - bl HandleStartAffineAnim - strh r4, [r5, #0x36] - movs r0, #0x28 - strh r0, [r5, #0x3a] - strh r0, [r5, #0x34] - strh r6, [r5, #0x38] - strh r6, [r5, #0x3c] -_08183412: - adds r0, r5, #0 - bl sub_081832C4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_5B - - thumb_func_start sub_08183420 -sub_08183420: @ 0x08183420 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r4, r0, #0 - ldrh r0, [r4, #0x32] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldrh r0, [r4, #0x3a] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldr r3, _0818347C - movs r1, #0x38 - ldrsh r0, [r4, r1] - lsls r1, r0, #1 - adds r0, r1, r3 - ldrb r5, [r0] - adds r2, r5, #0 - cmp r5, #0xff - beq _08183452 - ldrh r0, [r4, #0x3c] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_08183452: - adds r0, r3, #1 - adds r0, r1, r0 - ldrb r6, [r0] - movs r7, #0 - cmp r2, #0xfe - beq _0818346E - mov r1, sb - subs r0, r6, r1 - muls r0, r5, r0 - adds r1, r6, #0 - bl __divsi3 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 -_0818346E: - cmp r5, #0xff - bne _08183484 - ldr r0, _08183480 - str r0, [r4, #0x1c] - movs r0, #0 - strh r0, [r4, #0x26] - b _081834B6 - .align 2, 0 -_0818347C: .4byte gUnknown_85D34E0 -_08183480: .4byte sub_08184C34 -_08183484: - mov r1, r8 - adds r1, #0xc0 - adds r0, r1, #0 - asrs r0, r0, #8 - lsls r0, r0, #8 - subs r0, r1, r0 - adds r1, r7, #0 - bl Sin - adds r0, r0, r7 - strh r0, [r4, #0x26] - cmp sb, r6 - bne _081834A8 - ldrh r0, [r4, #0x38] - adds r0, #1 - strh r0, [r4, #0x38] - movs r0, #0 - b _081834B4 -_081834A8: - ldrh r0, [r4, #0x2e] - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - ldrh r0, [r4, #0x3a] - adds r0, #1 -_081834B4: - strh r0, [r4, #0x3a] -_081834B6: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08183420 - - thumb_func_start pokemonanimfunc_5C -pokemonanimfunc_5C: @ 0x081834C4 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x28 - strh r0, [r4, #0x2e] - movs r0, #6 - strh r0, [r4, #0x3c] - adds r0, r4, #0 - bl sub_08183420 - ldr r0, _081834E0 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081834E0: .4byte sub_08183420 - thumb_func_end pokemonanimfunc_5C - - thumb_func_start pokemonanimfunc_5D -pokemonanimfunc_5D: @ 0x081834E4 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x46 - strh r0, [r4, #0x2e] - movs r0, #6 - strh r0, [r4, #0x3c] - adds r0, r4, #0 - bl sub_0817FB88 - ldr r0, _08183500 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08183500: .4byte sub_0817FB88 - thumb_func_end pokemonanimfunc_5D - - thumb_func_start pokemonanimfunc_5E -pokemonanimfunc_5E: @ 0x08183504 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x14 - strh r0, [r4, #0x2e] - adds r0, r4, #0 - bl sub_0817F7A8 - ldr r0, _0818351C - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0818351C: .4byte sub_0817F7A8 - thumb_func_end pokemonanimfunc_5E - - thumb_func_start sub_08183520 -sub_08183520: @ 0x08183520 - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x32] - movs r2, #0x32 - ldrsh r0, [r4, r2] - cmp r0, #0x28 - ble _0818353C - ldr r0, _08183538 - str r0, [r4, #0x1c] - movs r0, #0 - b _08183576 - .align 2, 0 -_08183538: .4byte sub_08184C34 -_0818353C: - movs r0, #1 - ands r0, r1 - movs r5, #0xff - cmp r0, #0 - bne _08183548 - movs r5, #1 -_08183548: - movs r1, #0x32 - ldrsh r0, [r4, r1] - lsls r0, r0, #7 - movs r1, #0x28 - bl __divsi3 - adds r1, r0, #0 - cmp r1, #0 - bge _0818355C - adds r0, #0xff -_0818355C: - asrs r0, r0, #8 - lsls r0, r0, #8 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #9 - bl Sin - lsls r1, r5, #0x18 - asrs r1, r1, #0x18 - adds r2, r0, #0 - muls r2, r1, r2 - adds r0, r2, #0 -_08183576: - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_08183520 - - thumb_func_start pokemonanimfunc_60 -pokemonanimfunc_60: @ 0x08183584 - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x32] - movs r2, #0x32 - ldrsh r0, [r4, r2] - cmp r0, #0x28 - ble _081835A0 - ldr r0, _0818359C - str r0, [r4, #0x1c] - movs r0, #0 - b _081835DA - .align 2, 0 -_0818359C: .4byte sub_08184C34 -_081835A0: - movs r0, #1 - ands r0, r1 - movs r5, #0xff - cmp r0, #0 - bne _081835AC - movs r5, #1 -_081835AC: - movs r1, #0x32 - ldrsh r0, [r4, r1] - lsls r0, r0, #7 - movs r1, #0x28 - bl __divsi3 - adds r1, r0, #0 - cmp r1, #0 - bge _081835C0 - adds r0, #0xff -_081835C0: - asrs r0, r0, #8 - lsls r0, r0, #8 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0xc - bl Sin - lsls r1, r5, #0x18 - asrs r1, r1, #0x18 - adds r2, r0, #0 - muls r2, r1, r2 - adds r0, r2, #0 -_081835DA: - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_60 - - thumb_func_start pokemonanimfunc_61 -pokemonanimfunc_61: @ 0x081835E8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x46 - strh r0, [r4, #0x2e] - movs r0, #6 - strh r0, [r4, #0x3c] - adds r0, r4, #0 - bl sub_08182FEC - ldr r0, _08183604 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08183604: .4byte sub_08182FEC - thumb_func_end pokemonanimfunc_61 - - thumb_func_start pokemonanimfunc_62 -pokemonanimfunc_62: @ 0x08183608 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x18 - strh r0, [r4, #0x2e] - movs r0, #6 - strh r0, [r4, #0x3c] - adds r0, r4, #0 - bl sub_08183420 - ldr r0, _08183624 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08183624: .4byte sub_08183420 - thumb_func_end pokemonanimfunc_62 - - thumb_func_start pokemonanimfunc_63 -pokemonanimfunc_63: @ 0x08183628 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x38 - strh r0, [r4, #0x2e] - movs r0, #9 - strh r0, [r4, #0x3c] - adds r0, r4, #0 - bl sub_08183420 - ldr r0, _08183644 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08183644: .4byte sub_08183420 - thumb_func_end pokemonanimfunc_63 - - thumb_func_start pokemonanimfunc_64 -pokemonanimfunc_64: @ 0x08183648 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F604 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x2e] - ldr r2, _08183680 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r1, #6] - movs r0, #6 - strh r0, [r1, #8] - movs r0, #0x18 - strh r0, [r1, #2] - adds r0, r4, #0 - bl sub_0817FE9C - ldr r0, _08183684 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08183680: .4byte gUnknown_3001240 -_08183684: .4byte sub_0817FE9C - thumb_func_end pokemonanimfunc_64 - - thumb_func_start sub_08183688 -sub_08183688: @ 0x08183688 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r7, r0, #0 - movs r5, #0 - movs r0, #0x38 - ldrsh r1, [r7, r0] - movs r2, #0x3a - ldrsh r0, [r7, r2] - cmp r1, r0 - ble _081836D8 - strh r5, [r7, #0x26] - strh r5, [r7, #0x38] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r7, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - ldrh r1, [r7, #0x36] - movs r2, #0x36 - ldrsh r0, [r7, r2] - cmp r0, #1 - bgt _081836D0 - adds r0, r7, #0 - bl sub_0817F628 - ldr r0, _081836CC - str r0, [r7, #0x1c] - b _081837D8 - .align 2, 0 -_081836CC: .4byte sub_08184C34 -_081836D0: - subs r0, r1, #1 - strh r0, [r7, #0x36] - strh r5, [r7, #0x3c] - b _081837D8 -_081836D8: - movs r0, #0x38 - ldrsh r6, [r7, r0] - lsls r0, r6, #7 - movs r1, #0x3a - ldrsh r4, [r7, r1] - adds r1, r4, #0 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r4, #0 - bge _081836F2 - adds r4, #3 -_081836F2: - asrs r1, r4, #2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r6, r1 - blt _08183712 - cmp r6, r0 - bge _08183712 - ldrh r0, [r7, #0x3c] - adds r0, #0x33 - strh r0, [r7, #0x3c] - movs r5, #0xff - ands r5, r0 -_08183712: - ldrh r0, [r7, #0x34] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - movs r1, #0x30 - ldrsh r0, [r7, r1] - cmp r0, #0 - bne _0818375C - lsls r2, r2, #0x10 - mov r8, r2 - asrs r0, r2, #0x10 - mov r1, sb - bl Sin - adds r4, r0, #0 - lsls r6, r5, #0x10 - asrs r5, r6, #0x10 - mov r0, sb - movs r1, #5 - bl __udivsi3 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x17 - adds r0, r5, #0 - bl Sin - ldr r2, _08183758 - adds r4, r4, r2 - adds r0, r0, r4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sl, r0 - mov r0, r8 - b _08183796 - .align 2, 0 -_08183758: .4byte 0xFFFFFF00 -_0818375C: - lsls r2, r2, #0x10 - mov r8, r2 - asrs r0, r2, #0x10 - mov r1, sb - bl Sin - adds r6, r0, #0 - lsls r5, r5, #0x10 - asrs r4, r5, #0x10 - mov r0, sb - movs r1, #5 - bl __udivsi3 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x17 - adds r0, r4, #0 - bl Sin - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r2, #0 - subs r1, r1, r6 - subs r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sl, r1 - mov r0, r8 - adds r6, r5, #0 -_08183796: - asrs r0, r0, #0x10 - mov r1, sb - bl Sin - adds r5, r0, #0 - asrs r4, r6, #0x10 - mov r0, sb - movs r1, #5 - bl __udivsi3 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl Sin - movs r1, #0x80 - lsls r1, r1, #1 - adds r2, r1, #0 - subs r2, r2, r5 - subs r2, r2, r0 - mov r0, sl - lsls r1, r0, #0x10 - asrs r1, r1, #0x10 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r0, r7, #0 - movs r3, #0 - bl SetAffineData - ldrh r0, [r7, #0x38] - adds r0, #1 - strh r0, [r7, #0x38] -_081837D8: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08183688 - - thumb_func_start pokemonanimfunc_65 -pokemonanimfunc_65: @ 0x081837E8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #0x32 - ldrsh r6, [r5, r0] - cmp r6, #0 - bne _0818380A - movs r4, #1 - strh r4, [r5, #0x32] - adds r0, r5, #0 - bl HandleStartAffineAnim - strh r4, [r5, #0x36] - movs r0, #0x28 - strh r0, [r5, #0x3a] - strh r0, [r5, #0x34] - strh r6, [r5, #0x38] - strh r6, [r5, #0x3c] -_0818380A: - adds r0, r5, #0 - bl sub_08183688 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_65 - - thumb_func_start sub_08183818 -sub_08183818: @ 0x08183818 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - movs r0, #0x32 - ldrsh r1, [r4, r0] - movs r0, #0x80 - lsls r0, r0, #4 - cmp r1, r0 - ble _0818383C - ldr r0, _08183838 - str r0, [r4, #0x1c] - movs r0, #0 - strh r0, [r4, #0x3a] - b _08183900 - .align 2, 0 -_08183838: .4byte sub_08184C34 -_0818383C: - movs r1, #0x32 - ldrsh r2, [r4, r1] - adds r0, r2, #0 - cmp r2, #0 - bge _0818384A - ldr r1, _08183870 - adds r0, r2, r1 -_0818384A: - asrs r3, r0, #9 - adds r1, r3, #0 - adds r0, r1, #0 - cmp r1, #0 - bge _08183856 - adds r0, r1, #3 -_08183856: - asrs r0, r0, #2 - lsls r0, r0, #2 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - beq _081838AC - cmp r0, #1 - bgt _08183874 - cmp r0, #0 - beq _0818387E - b _081838DC - .align 2, 0 -_08183870: .4byte 0x000001FF -_08183874: - cmp r0, #2 - beq _08183890 - cmp r0, #3 - beq _081838C8 - b _081838DC -_0818387E: - lsls r0, r3, #9 - subs r0, r2, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _0818388C - adds r0, #0x1f -_0818388C: - asrs r0, r0, #5 - b _081838DA -_08183890: - lsls r0, r3, #9 - subs r0, r2, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0xc - rsbs r0, r0, #0 - cmp r0, #0 - bge _081838A2 - ldr r1, _081838A8 - adds r0, r0, r1 -_081838A2: - asrs r0, r0, #9 - b _081838DA - .align 2, 0 -_081838A8: .4byte 0x000001FF -_081838AC: - lsls r0, r3, #9 - subs r0, r2, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0xc - rsbs r0, r0, #0 - cmp r0, #0 - bge _081838BE - ldr r1, _081838C4 - adds r0, r0, r1 -_081838BE: - asrs r0, r0, #9 - adds r0, #0x10 - b _081838DA - .align 2, 0 -_081838C4: .4byte 0x000001FF -_081838C8: - lsls r0, r3, #9 - subs r0, r2, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _081838D6 - adds r0, #0x1f -_081838D6: - asrs r0, r0, #5 - subs r0, #0x10 -_081838DA: - strh r0, [r4, #0x24] -_081838DC: - movs r0, #0x32 - ldrsh r1, [r4, r0] - adds r0, r1, #0 - cmp r1, #0 - bge _081838E8 - adds r0, #0x7f -_081838E8: - asrs r0, r0, #7 - lsls r0, r0, #7 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #4 - bl Sin - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x32] - adds r0, #0x30 - strh r0, [r4, #0x32] -_08183900: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08183818 - - thumb_func_start pokemonanimfunc_67 -pokemonanimfunc_67: @ 0x0818390C - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - movs r0, #0x32 - ldrsh r1, [r4, r0] - movs r0, #0x80 - lsls r0, r0, #4 - cmp r1, r0 - ble _08183930 - ldr r0, _0818392C - str r0, [r4, #0x1c] - movs r0, #0 - strh r0, [r4, #0x3a] - b _081839EC - .align 2, 0 -_0818392C: .4byte sub_08184C34 -_08183930: - movs r1, #0x32 - ldrsh r2, [r4, r1] - adds r0, r2, #0 - cmp r2, #0 - bge _0818393E - ldr r1, _08183964 - adds r0, r2, r1 -_0818393E: - asrs r3, r0, #9 - adds r1, r3, #0 - adds r0, r1, #0 - cmp r1, #0 - bge _0818394A - adds r0, r1, #3 -_0818394A: - asrs r0, r0, #2 - lsls r0, r0, #2 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - beq _081839A0 - cmp r0, #1 - bgt _08183968 - cmp r0, #0 - beq _08183972 - b _081839D0 - .align 2, 0 -_08183964: .4byte 0x000001FF -_08183968: - cmp r0, #2 - beq _08183984 - cmp r0, #3 - beq _081839BC - b _081839D0 -_08183972: - lsls r0, r3, #9 - subs r0, r2, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _08183980 - adds r0, #0x1f -_08183980: - asrs r0, r0, #5 - b _081839CE -_08183984: - lsls r0, r3, #9 - subs r0, r2, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0xc - rsbs r0, r0, #0 - cmp r0, #0 - bge _08183996 - ldr r1, _0818399C - adds r0, r0, r1 -_08183996: - asrs r0, r0, #9 - b _081839CE - .align 2, 0 -_0818399C: .4byte 0x000001FF -_081839A0: - lsls r0, r3, #9 - subs r0, r2, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0xc - rsbs r0, r0, #0 - cmp r0, #0 - bge _081839B2 - ldr r1, _081839B8 - adds r0, r0, r1 -_081839B2: - asrs r0, r0, #9 - adds r0, #0x10 - b _081839CE - .align 2, 0 -_081839B8: .4byte 0x000001FF -_081839BC: - lsls r0, r3, #9 - subs r0, r2, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _081839CA - adds r0, #0x1f -_081839CA: - asrs r0, r0, #5 - subs r0, #0x10 -_081839CE: - strh r0, [r4, #0x24] -_081839D0: - movs r1, #0x32 - ldrsh r0, [r4, r1] - movs r1, #0x60 - bl __modsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #4 - bl Sin - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x32] - adds r0, #0x40 - strh r0, [r4, #0x32] -_081839EC: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_67 - - thumb_func_start sub_081839F8 -sub_081839F8: @ 0x081839F8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08183A0A - strh r0, [r4, #0x34] -_08183A0A: - ldr r7, _08183A6C - movs r2, #0x34 - ldrsh r1, [r4, r2] - lsls r0, r1, #1 - adds r0, r0, r1 - adds r5, r7, #2 - adds r0, r0, r5 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r2, #0x38 - ldrsh r1, [r4, r2] - bl __divsi3 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _08183A38 - ldrh r0, [r4, #0x34] - adds r0, #1 - movs r1, #0 - strh r0, [r4, #0x34] - strh r1, [r4, #0x32] -_08183A38: - movs r0, #0x34 - ldrsh r1, [r4, r0] - lsls r0, r1, #1 - adds r6, r0, r1 - adds r0, r6, r5 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #0x38 - ldrsh r5, [r4, r1] - adds r1, r5, #0 - bl __divsi3 - adds r1, r0, #0 - cmp r1, #0 - bne _08183A78 - ldrh r0, [r4, #0x3a] - subs r0, #1 - strh r0, [r4, #0x3a] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08183A74 - ldr r0, _08183A70 - str r0, [r4, #0x1c] - b _08183AB2 - .align 2, 0 -_08183A6C: .4byte gUnknown_85D381E -_08183A70: .4byte sub_08184C34 -_08183A74: - strh r1, [r4, #0x32] - b _08183AB2 -_08183A78: - adds r0, r6, r7 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - muls r0, r5, r0 - ldrh r2, [r4, #0x24] - adds r0, r0, r2 - strh r0, [r4, #0x24] - movs r0, #0x34 - ldrsh r1, [r4, r0] - lsls r0, r1, #1 - adds r0, r0, r1 - adds r1, r7, #1 - adds r0, r0, r1 - movs r1, #0 - ldrsb r1, [r0, r1] - ldrh r0, [r4, #0x38] - adds r2, r0, #0 - muls r2, r1, r2 - adds r0, r2, #0 - ldrh r1, [r4, #0x26] - adds r0, r0, r1 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl sub_0817F5B8 -_08183AB2: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_081839F8 - - thumb_func_start pokemonanimfunc_68 -pokemonanimfunc_68: @ 0x08183AB8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strh r0, [r4, #0x38] - strh r0, [r4, #0x3a] - adds r0, r4, #0 - bl sub_081839F8 - ldr r0, _08183AD4 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08183AD4: .4byte sub_081839F8 - thumb_func_end pokemonanimfunc_68 - - thumb_func_start pokemonanimfunc_69 -pokemonanimfunc_69: @ 0x08183AD8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - strh r0, [r4, #0x38] - movs r0, #1 - strh r0, [r4, #0x3a] - adds r0, r4, #0 - bl sub_081839F8 - ldr r0, _08183AF4 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08183AF4: .4byte sub_081839F8 - thumb_func_end pokemonanimfunc_69 - - thumb_func_start pokemonanimfunc_6A -pokemonanimfunc_6A: @ 0x08183AF8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - strh r0, [r4, #0x38] - strh r0, [r4, #0x3a] - adds r0, r4, #0 - bl sub_081839F8 - ldr r0, _08183B14 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08183B14: .4byte sub_081839F8 - thumb_func_end pokemonanimfunc_6A - - thumb_func_start sub_08183B18 -sub_08183B18: @ 0x08183B18 - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x3c] - movs r2, #0x3c - ldrsh r0, [r4, r2] - cmp r0, #0xff - ble _08183B5A - ldrh r1, [r4, #0x38] - movs r2, #0x38 - ldrsh r0, [r4, r2] - cmp r0, #1 - bgt _08183B50 - adds r0, r4, #0 - bl sub_0817F628 - ldr r0, _08183B4C - str r0, [r4, #0x1c] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - b _08183B94 - .align 2, 0 -_08183B4C: .4byte sub_08184C34 -_08183B50: - subs r0, r1, #1 - movs r1, #0 - strh r0, [r4, #0x38] - strh r1, [r4, #0x3c] - b _08183B94 -_08183B5A: - ldrh r0, [r4, #0x3a] - adds r0, r1, r0 - strh r0, [r4, #0x3c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r5, #0x80 - lsls r5, r5, #1 - cmp r0, r5 - ble _08183B6E - strh r5, [r4, #0x3c] -_08183B6E: - movs r1, #0x3c - ldrsh r0, [r4, r1] - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - movs r1, #0x40 - bl Sin - adds r2, r0, #0 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - subs r2, r5, r2 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData -_08183B94: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08183B18 - - thumb_func_start pokemonanimfunc_6B -pokemonanimfunc_6B: @ 0x08183B9C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - movs r0, #0x32 - ldrsh r5, [r4, r0] - cmp r5, #0 - bne _08183BC2 - adds r0, r4, #0 - bl HandleStartAffineAnim - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - strh r5, [r4, #0x3c] - movs r0, #4 - strh r0, [r4, #0x3a] - movs r0, #1 - strh r0, [r4, #0x38] -_08183BC2: - adds r0, r4, #0 - bl sub_08183B18 - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_6B - - thumb_func_start pokemonanimfunc_6C -pokemonanimfunc_6C: @ 0x08183BD4 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - movs r0, #0x32 - ldrsh r5, [r4, r0] - cmp r5, #0 - bne _08183BFA - adds r0, r4, #0 - bl HandleStartAffineAnim - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - strh r5, [r4, #0x3c] - movs r0, #8 - strh r0, [r4, #0x3a] - movs r0, #2 - strh r0, [r4, #0x38] -_08183BFA: - adds r0, r4, #0 - bl sub_08183B18 - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_6C - - thumb_func_start pokemonanimfunc_6D -pokemonanimfunc_6D: @ 0x08183C0C - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r5, [r4, r0] - cmp r5, #0 - bne _08183C34 - adds r0, r4, #0 - bl HandleStartAffineAnim - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - strh r5, [r4, #0x3c] - movs r0, #8 - strh r0, [r4, #0x3a] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x38] - movs r0, #0x10 - strh r0, [r4, #0x36] -_08183C34: - adds r0, r4, #0 - bl sub_08182610 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_6D - - thumb_func_start pokemonanimfunc_6E -pokemonanimfunc_6E: @ 0x08183C40 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r5, [r4, r0] - cmp r5, #0 - bne _08183C66 - adds r0, r4, #0 - bl HandleStartAffineAnim - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - strh r5, [r4, #0x3c] - movs r0, #4 - strh r0, [r4, #0x3a] - adds r0, #0xfc - strh r0, [r4, #0x38] - movs r0, #0x10 - strh r0, [r4, #0x36] -_08183C66: - adds r0, r4, #0 - bl sub_08182610 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_6E - - thumb_func_start pokemonanimfunc_6F -pokemonanimfunc_6F: @ 0x08183C74 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r5, [r4, r0] - cmp r5, #0 - bne _08183C9C - adds r0, r4, #0 - bl HandleStartAffineAnim - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - strh r5, [r4, #0x3c] - movs r0, #8 - strh r0, [r4, #0x3a] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x38] - movs r0, #0x10 - strh r0, [r4, #0x36] -_08183C9C: - adds r0, r4, #0 - bl sub_081826DC - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_6F - - thumb_func_start pokemonanimfunc_70 -pokemonanimfunc_70: @ 0x08183CA8 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r5, [r4, r0] - cmp r5, #0 - bne _08183CCE - adds r0, r4, #0 - bl HandleStartAffineAnim - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - strh r5, [r4, #0x3c] - movs r1, #8 - strh r1, [r4, #0x3a] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x38] - strh r1, [r4, #0x36] -_08183CCE: - adds r0, r4, #0 - bl sub_081826DC - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_70 - - thumb_func_start pokemonanimfunc_71 -pokemonanimfunc_71: @ 0x08183CDC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08183CF6 - adds r0, r4, #0 - bl HandleStartAffineAnim - movs r0, #5 - strh r0, [r4, #0x3c] - movs r0, #8 - strh r0, [r4, #0x3a] -_08183CF6: - adds r0, r4, #0 - bl sub_081806D4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_71 - - thumb_func_start pokemonanimfunc_72 -pokemonanimfunc_72: @ 0x08183D04 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08183D1E - adds r0, r4, #0 - bl HandleStartAffineAnim - movs r0, #3 - strh r0, [r4, #0x3c] - movs r0, #4 - strh r0, [r4, #0x3a] -_08183D1E: - adds r0, r4, #0 - bl sub_081806D4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_72 - - thumb_func_start pokemonanimfunc_73 -pokemonanimfunc_73: @ 0x08183D2C - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #0x32 - ldrsh r6, [r5, r0] - cmp r6, #0 - bne _08183D4E - movs r4, #1 - strh r4, [r5, #0x32] - adds r0, r5, #0 - bl HandleStartAffineAnim - strh r4, [r5, #0x36] - movs r0, #0x1e - strh r0, [r5, #0x3a] - movs r0, #0x3c - strh r0, [r5, #0x34] - strh r6, [r5, #0x3c] -_08183D4E: - adds r0, r5, #0 - bl sub_08183174 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_73 - - thumb_func_start pokemonanimfunc_74 -pokemonanimfunc_74: @ 0x08183D5C - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r5, [r4, r0] - cmp r5, #0 - bne _08183D80 - movs r0, #1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl HandleStartAffineAnim - movs r0, #2 - strh r0, [r4, #0x36] - movs r0, #0x14 - strh r0, [r4, #0x3a] - movs r0, #0x46 - strh r0, [r4, #0x34] - strh r5, [r4, #0x3c] -_08183D80: - adds r0, r4, #0 - bl sub_08183174 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_74 - - thumb_func_start pokemonanimfunc_75 -pokemonanimfunc_75: @ 0x08183D8C - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r5, [r4, r0] - cmp r5, #0 - bne _08183DB2 - movs r0, #1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl HandleStartAffineAnim - movs r0, #2 - strh r0, [r4, #0x36] - movs r0, #0x14 - strh r0, [r4, #0x3a] - movs r0, #0x46 - strh r0, [r4, #0x34] - strh r5, [r4, #0x38] - strh r5, [r4, #0x3c] -_08183DB2: - adds r0, r4, #0 - bl sub_081832C4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_75 - - thumb_func_start pokemonanimfunc_76 -pokemonanimfunc_76: @ 0x08183DC0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #0x32 - ldrsh r6, [r5, r0] - cmp r6, #0 - bne _08183DE4 - movs r4, #1 - strh r4, [r5, #0x32] - adds r0, r5, #0 - bl HandleStartAffineAnim - strh r4, [r5, #0x36] - movs r0, #0x1e - strh r0, [r5, #0x3a] - movs r0, #0x3c - strh r0, [r5, #0x34] - strh r6, [r5, #0x38] - strh r6, [r5, #0x3c] -_08183DE4: - adds r0, r5, #0 - bl sub_081832C4 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_76 - - thumb_func_start pokemonanimfunc_77 -pokemonanimfunc_77: @ 0x08183DF0 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r5, [r4, r0] - cmp r5, #0 - bne _08183E16 - movs r0, #1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl HandleStartAffineAnim - movs r0, #2 - strh r0, [r4, #0x36] - movs r0, #0x14 - strh r0, [r4, #0x3a] - movs r0, #0x46 - strh r0, [r4, #0x34] - strh r5, [r4, #0x38] - strh r5, [r4, #0x3c] -_08183E16: - adds r0, r4, #0 - bl sub_08183688 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_77 - - thumb_func_start pokemonanimfunc_78 -pokemonanimfunc_78: @ 0x08183E24 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #0x32 - ldrsh r6, [r5, r0] - cmp r6, #0 - bne _08183E48 - movs r4, #1 - strh r4, [r5, #0x32] - adds r0, r5, #0 - bl HandleStartAffineAnim - strh r4, [r5, #0x36] - movs r0, #0x1e - strh r0, [r5, #0x3a] - movs r0, #0x3c - strh r0, [r5, #0x34] - strh r6, [r5, #0x38] - strh r6, [r5, #0x3c] -_08183E48: - adds r0, r5, #0 - bl sub_08183688 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_78 - - thumb_func_start sub_08183E54 -sub_08183E54: @ 0x08183E54 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x3c - ldrsh r0, [r4, r1] - cmp r0, #0xff - ble _08183E96 - ldrh r2, [r4, #0x3a] - movs r3, #0x3a - ldrsh r0, [r4, r3] - cmp r0, #1 - bgt _08183E7C - ldr r0, _08183E78 - str r0, [r4, #0x1c] - movs r0, #0 - strh r0, [r4, #0x24] - strh r0, [r4, #0x26] - b _08183EEA - .align 2, 0 -_08183E78: .4byte sub_08184C34 -_08183E7C: - movs r0, #0x3c - ldrsh r1, [r4, r0] - adds r0, r1, #0 - cmp r1, #0 - bge _08183E88 - adds r0, #0xff -_08183E88: - asrs r0, r0, #8 - lsls r0, r0, #8 - subs r0, r1, r0 - strh r0, [r4, #0x3c] - subs r0, r2, #1 - strh r0, [r4, #0x3a] - b _08183EEA -_08183E96: - movs r1, #0x3c - ldrsh r0, [r4, r1] - movs r2, #0x38 - ldrsh r1, [r4, r2] - bl Sin - rsbs r0, r0, #0 - strh r0, [r4, #0x24] - movs r3, #0x3c - ldrsh r2, [r4, r3] - adds r1, r2, #0 - adds r1, #0xc0 - adds r0, r1, #0 - cmp r1, #0 - bge _08183EB8 - ldr r3, _08183EF0 - adds r0, r2, r3 -_08183EB8: - asrs r0, r0, #8 - lsls r0, r0, #8 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x36 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, #0x26] - lsls r0, r0, #0x10 - cmp r0, #0 - ble _08183EDA - movs r3, #0x26 - ldrsh r0, [r4, r3] - rsbs r0, r0, #0 - strh r0, [r4, #0x26] -_08183EDA: - ldrh r0, [r4, #0x36] - ldrh r1, [r4, #0x26] - adds r0, r0, r1 - strh r0, [r4, #0x26] - ldrh r0, [r4, #0x34] - ldrh r2, [r4, #0x3c] - adds r0, r0, r2 - strh r0, [r4, #0x3c] -_08183EEA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08183EF0: .4byte 0x000001BF - thumb_func_end sub_08183E54 - - thumb_func_start pokemonanimfunc_79 -pokemonanimfunc_79: @ 0x08183EF4 - push {lr} - adds r1, r0, #0 - movs r0, #0x32 - ldrsh r2, [r1, r0] - cmp r2, #0 - bne _08183F12 - movs r0, #1 - strh r0, [r1, #0x32] - strh r0, [r1, #0x3a] - strh r2, [r1, #0x3c] - movs r0, #0xc - strh r0, [r1, #0x38] - strh r0, [r1, #0x36] - movs r0, #4 - strh r0, [r1, #0x34] -_08183F12: - adds r0, r1, #0 - bl sub_08183E54 - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_79 - - thumb_func_start pokemonanimfunc_7A -pokemonanimfunc_7A: @ 0x08183F1C - push {lr} - adds r1, r0, #0 - movs r0, #0x32 - ldrsh r2, [r1, r0] - cmp r2, #0 - bne _08183F3A - movs r0, #1 - strh r0, [r1, #0x32] - strh r0, [r1, #0x3a] - strh r2, [r1, #0x3c] - movs r0, #0xc - strh r0, [r1, #0x38] - strh r0, [r1, #0x36] - movs r0, #6 - strh r0, [r1, #0x34] -_08183F3A: - adds r0, r1, #0 - bl sub_08183E54 - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_7A - - thumb_func_start pokemonanimfunc_7B -pokemonanimfunc_7B: @ 0x08183F44 - push {lr} - adds r1, r0, #0 - movs r0, #0x32 - ldrsh r2, [r1, r0] - cmp r2, #0 - bne _08183F64 - movs r0, #1 - strh r0, [r1, #0x32] - movs r0, #2 - strh r0, [r1, #0x3a] - strh r2, [r1, #0x3c] - movs r0, #0xc - strh r0, [r1, #0x38] - strh r0, [r1, #0x36] - movs r0, #8 - strh r0, [r1, #0x34] -_08183F64: - adds r0, r1, #0 - bl sub_08183E54 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_7B - - thumb_func_start sub_08183F70 -sub_08183F70: @ 0x08183F70 - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0x3c - ldrsh r0, [r5, r1] - movs r1, #0x80 - lsls r1, r1, #1 - cmp r0, r1 - ble _08183FA8 - movs r2, #0x3a - ldrsh r1, [r5, r2] - ldrh r2, [r5, #0x36] - movs r3, #0x36 - ldrsh r0, [r5, r3] - cmp r1, r0 - bgt _08183F98 - ldr r0, _08183F94 - str r0, [r5, #0x1c] - b _08183FA0 - .align 2, 0 -_08183F94: .4byte sub_08184C34 -_08183F98: - adds r0, r2, #1 - movs r1, #0 - strh r0, [r5, #0x36] - strh r1, [r5, #0x3c] -_08183FA0: - movs r0, #0 - strh r0, [r5, #0x24] - strh r0, [r5, #0x26] - b _08184034 -_08183FA8: - cmp r0, #0x9f - ble _08183FD2 - cmp r0, r1 - ble _08183FB2 - strh r1, [r5, #0x3c] -_08183FB2: - movs r0, #0x3c - ldrsh r1, [r5, r0] - adds r0, r1, #0 - cmp r1, #0 - bge _08183FBE - adds r0, #0xff -_08183FBE: - asrs r0, r0, #8 - lsls r0, r0, #8 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #8 - bl Sin - rsbs r0, r0, #0 - b _08184000 -_08183FD2: - cmp r0, #0x5f - ble _08183FF6 - movs r0, #0x60 - movs r1, #6 - bl Sin - adds r4, r0, #0 - movs r1, #0x3c - ldrsh r0, [r5, r1] - subs r0, #0x60 - lsls r0, r0, #0x11 - asrs r0, r0, #0x10 - movs r1, #4 - bl Sin - subs r4, r4, r0 - strh r4, [r5, #0x26] - b _08184002 -_08183FF6: - movs r2, #0x3c - ldrsh r0, [r5, r2] - movs r1, #6 - bl Sin -_08184000: - strh r0, [r5, #0x26] -_08184002: - movs r3, #0x3c - ldrsh r0, [r5, r3] - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - movs r2, #0x38 - ldrsh r1, [r5, r2] - bl Sin - rsbs r0, r0, #0 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldrh r0, [r5, #0x36] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _0818402A - lsls r0, r2, #0x10 - rsbs r0, r0, #0 - lsrs r2, r0, #0x10 -_0818402A: - strh r2, [r5, #0x24] - ldrh r0, [r5, #0x34] - ldrh r3, [r5, #0x3c] - adds r0, r0, r3 - strh r0, [r5, #0x3c] -_08184034: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08183F70 - - thumb_func_start pokemonanimfunc_7C -pokemonanimfunc_7C: @ 0x0818403C - push {lr} - adds r2, r0, #0 - movs r0, #0x32 - ldrsh r3, [r2, r0] - cmp r3, #0 - bne _0818405C - movs r1, #1 - strh r1, [r2, #0x32] - movs r0, #2 - strh r0, [r2, #0x3a] - strh r3, [r2, #0x3c] - movs r0, #0x10 - strh r0, [r2, #0x38] - strh r1, [r2, #0x36] - movs r0, #4 - strh r0, [r2, #0x34] -_0818405C: - adds r0, r2, #0 - bl sub_08183F70 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_7C - - thumb_func_start pokemonanimfunc_7D -pokemonanimfunc_7D: @ 0x08184068 - push {lr} - adds r2, r0, #0 - movs r0, #0x32 - ldrsh r3, [r2, r0] - cmp r3, #0 - bne _08184088 - movs r1, #1 - strh r1, [r2, #0x32] - movs r0, #2 - strh r0, [r2, #0x3a] - strh r3, [r2, #0x3c] - movs r0, #0x10 - strh r0, [r2, #0x38] - strh r1, [r2, #0x36] - movs r0, #6 - strh r0, [r2, #0x34] -_08184088: - adds r0, r2, #0 - bl sub_08183F70 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_7D - - thumb_func_start pokemonanimfunc_7E -pokemonanimfunc_7E: @ 0x08184094 - push {lr} - adds r2, r0, #0 - movs r0, #0x32 - ldrsh r3, [r2, r0] - cmp r3, #0 - bne _081840B4 - movs r1, #1 - strh r1, [r2, #0x32] - movs r0, #3 - strh r0, [r2, #0x3a] - strh r3, [r2, #0x3c] - movs r0, #0x10 - strh r0, [r2, #0x38] - strh r1, [r2, #0x36] - movs r0, #8 - strh r0, [r2, #0x34] -_081840B4: - adds r0, r2, #0 - bl sub_08183F70 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_7E - - thumb_func_start pokemonanimfunc_7F -pokemonanimfunc_7F: @ 0x081840C0 - push {lr} - adds r2, r0, #0 - movs r0, #0x32 - ldrsh r1, [r2, r0] - cmp r1, #0 - bne _081840DE - movs r0, #1 - strh r0, [r2, #0x32] - strh r0, [r2, #0x3a] - strh r1, [r2, #0x3c] - movs r1, #4 - strh r1, [r2, #0x38] - movs r0, #6 - strh r0, [r2, #0x36] - strh r1, [r2, #0x34] -_081840DE: - adds r0, r2, #0 - bl sub_08183E54 - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_7F - - thumb_func_start pokemonanimfunc_80 -pokemonanimfunc_80: @ 0x081840E8 - push {lr} - adds r1, r0, #0 - movs r0, #0x32 - ldrsh r2, [r1, r0] - cmp r2, #0 - bne _08184106 - movs r0, #1 - strh r0, [r1, #0x32] - strh r0, [r1, #0x3a] - strh r2, [r1, #0x3c] - movs r0, #4 - strh r0, [r1, #0x38] - movs r0, #6 - strh r0, [r1, #0x36] - strh r0, [r1, #0x34] -_08184106: - adds r0, r1, #0 - bl sub_08183E54 - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_80 - - thumb_func_start pokemonanimfunc_81 -pokemonanimfunc_81: @ 0x08184110 - push {lr} - adds r1, r0, #0 - movs r0, #0x32 - ldrsh r2, [r1, r0] - cmp r2, #0 - bne _08184132 - movs r0, #1 - strh r0, [r1, #0x32] - movs r0, #2 - strh r0, [r1, #0x3a] - strh r2, [r1, #0x3c] - movs r0, #4 - strh r0, [r1, #0x38] - movs r0, #6 - strh r0, [r1, #0x36] - movs r0, #8 - strh r0, [r1, #0x34] -_08184132: - adds r0, r1, #0 - bl sub_08183E54 - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_81 - - thumb_func_start sub_0818413C -sub_0818413C: @ 0x0818413C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - lsls r0, r0, #7 - movs r2, #0x3c - ldrsh r1, [r4, r2] - bl __divsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x38 - ldrsh r1, [r4, r2] - bl Sin - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r0, r1, #8 - rsbs r0, r0, #0 - strh r0, [r4, #0x3a] - movs r0, #0x36 - ldrsh r2, [r4, r0] - adds r0, r4, #0 - movs r3, #0 - bl sub_0817F29C - movs r2, #0x80 - lsls r2, r2, #1 - ldrh r3, [r4, #0x3a] - adds r0, r4, #0 - adds r1, r2, #0 - bl HandleSetAffineData - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0818413C - - thumb_func_start pokemonanimfunc_82 -pokemonanimfunc_82: @ 0x08184188 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r5, [r4, r0] - cmp r5, #0 - bne _081841AC - adds r0, r4, #0 - bl HandleStartAffineAnim - movs r0, #0x3c - strh r0, [r4, #0x3c] - movs r0, #8 - strh r0, [r4, #0x38] - ldr r0, _081841EC - strh r0, [r4, #0x36] - movs r0, #1 - strh r0, [r4, #0x34] - strh r5, [r4, #0x2e] -_081841AC: - movs r2, #0x32 - ldrsh r1, [r4, r2] - movs r3, #0x3c - ldrsh r0, [r4, r3] - cmp r1, r0 - ble _081841F8 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - movs r2, #0 - strh r2, [r4, #0x24] - strh r2, [r4, #0x26] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - movs r3, #0x34 - ldrsh r1, [r4, r3] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r1, r0 - bgt _081841F4 - adds r0, r4, #0 - bl sub_0817F628 - ldr r0, _081841F0 - str r0, [r4, #0x1c] - b _08184204 - .align 2, 0 -_081841EC: .4byte 0x0000FFE0 -_081841F0: .4byte sub_08184C34 -_081841F4: - strh r2, [r4, #0x32] - b _081841FE -_081841F8: - adds r0, r4, #0 - bl sub_0818413C -_081841FE: - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] -_08184204: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_82 - - thumb_func_start pokemonanimfunc_83 -pokemonanimfunc_83: @ 0x0818420C - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r5, [r4, r0] - cmp r5, #0 - bne _08184230 - adds r0, r4, #0 - bl HandleStartAffineAnim - movs r0, #0x5a - strh r0, [r4, #0x3c] - movs r0, #8 - strh r0, [r4, #0x38] - ldr r0, _08184270 - strh r0, [r4, #0x36] - movs r0, #1 - strh r0, [r4, #0x34] - strh r5, [r4, #0x2e] -_08184230: - movs r2, #0x32 - ldrsh r1, [r4, r2] - movs r3, #0x3c - ldrsh r0, [r4, r3] - cmp r1, r0 - ble _0818427C - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - movs r2, #0 - strh r2, [r4, #0x24] - strh r2, [r4, #0x26] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - movs r3, #0x34 - ldrsh r1, [r4, r3] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r1, r0 - bgt _08184278 - adds r0, r4, #0 - bl sub_0817F628 - ldr r0, _08184274 - str r0, [r4, #0x1c] - b _08184288 - .align 2, 0 -_08184270: .4byte 0x0000FFE0 -_08184274: .4byte sub_08184C34 -_08184278: - strh r2, [r4, #0x32] - b _08184282 -_0818427C: - adds r0, r4, #0 - bl sub_0818413C -_08184282: - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] -_08184288: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_83 - - thumb_func_start pokemonanimfunc_84 -pokemonanimfunc_84: @ 0x08184290 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r5, [r4, r0] - cmp r5, #0 - bne _081842B4 - adds r0, r4, #0 - bl HandleStartAffineAnim - movs r0, #0x1e - strh r0, [r4, #0x3c] - movs r0, #8 - strh r0, [r4, #0x38] - ldr r0, _081842F4 - strh r0, [r4, #0x36] - movs r0, #2 - strh r0, [r4, #0x34] - strh r5, [r4, #0x2e] -_081842B4: - movs r2, #0x32 - ldrsh r1, [r4, r2] - movs r3, #0x3c - ldrsh r0, [r4, r3] - cmp r1, r0 - ble _08184300 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - movs r2, #0 - strh r2, [r4, #0x24] - strh r2, [r4, #0x26] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - movs r3, #0x34 - ldrsh r1, [r4, r3] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r1, r0 - bgt _081842FC - adds r0, r4, #0 - bl sub_0817F628 - ldr r0, _081842F8 - str r0, [r4, #0x1c] - b _0818430C - .align 2, 0 -_081842F4: .4byte 0x0000FFE0 -_081842F8: .4byte sub_08184C34 -_081842FC: - strh r2, [r4, #0x32] - b _08184306 -_08184300: - adds r0, r4, #0 - bl sub_0818413C -_08184306: - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] -_0818430C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_84 - - thumb_func_start sub_08184314 -sub_08184314: @ 0x08184314 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r0, #0x32 - ldrsh r1, [r6, r0] - movs r2, #0x3c - ldrsh r0, [r6, r2] - cmp r1, r0 - ble _08184348 - movs r0, #0 - strh r0, [r6, #0x26] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r6, #0 - adds r1, r2, #0 - movs r3, #0 - bl HandleSetAffineData - adds r0, r6, #0 - bl sub_0817F628 - ldr r0, _08184344 - str r0, [r6, #0x1c] - b _081843F0 - .align 2, 0 -_08184344: .4byte sub_08184C34 -_08184348: - movs r1, #0x32 - ldrsh r0, [r6, r1] - movs r2, #0x3a - ldrsh r4, [r6, r2] - adds r1, r4, #0 - bl __modsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x10 - adds r1, r4, #0 - bl __divsi3 - adds r1, r0, #0 - cmp r1, #0 - bge _08184368 - adds r0, #0xff -_08184368: - asrs r0, r0, #8 - lsls r0, r0, #8 - subs r0, r1, r0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldrh r0, [r6, #0x32] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _081843A4 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - adds r0, r4, #0 - movs r1, #0x20 - bl Sin - movs r1, #0x80 - lsls r1, r1, #1 - adds r5, r1, #0 - adds r0, r0, r5 - strh r0, [r6, #0x36] - adds r0, r4, #0 - movs r1, #0x20 - bl Sin - adds r0, r0, r5 - strh r0, [r6, #0x38] - adds r0, r4, #0 - movs r1, #0x20 - b _081843CA -_081843A4: - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - adds r0, r4, #0 - movs r1, #8 - bl Sin - movs r2, #0x80 - lsls r2, r2, #1 - adds r5, r2, #0 - adds r0, r0, r5 - strh r0, [r6, #0x36] - adds r0, r4, #0 - movs r1, #8 - bl Sin - adds r0, r0, r5 - strh r0, [r6, #0x38] - adds r0, r4, #0 - movs r1, #8 -_081843CA: - bl Sin - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bge _081843DC - adds r0, #7 -_081843DC: - lsrs r0, r0, #3 - strh r0, [r6, #0x26] - movs r0, #0x36 - ldrsh r1, [r6, r0] - movs r0, #0x38 - ldrsh r2, [r6, r0] - adds r0, r6, #0 - movs r3, #0 - bl HandleSetAffineData -_081843F0: - ldrh r0, [r6, #0x32] - adds r0, #1 - strh r0, [r6, #0x32] - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_08184314 - - thumb_func_start pokemonanimfunc_85 -pokemonanimfunc_85: @ 0x081843FC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0818441C - adds r0, r4, #0 - bl HandleStartAffineAnim - ldrh r0, [r4, #0x26] - adds r0, #2 - strh r0, [r4, #0x26] - movs r0, #0x28 - strh r0, [r4, #0x3a] - movs r0, #0x50 - strh r0, [r4, #0x3c] -_0818441C: - adds r0, r4, #0 - bl sub_08184314 - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_85 - - thumb_func_start pokemonanimfunc_86 -pokemonanimfunc_86: @ 0x08184428 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08184446 - adds r0, r4, #0 - bl HandleStartAffineAnim - ldrh r0, [r4, #0x26] - adds r0, #2 - strh r0, [r4, #0x26] - movs r0, #0x28 - strh r0, [r4, #0x3a] - strh r0, [r4, #0x3c] -_08184446: - adds r0, r4, #0 - bl sub_08184314 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_86 - - thumb_func_start pokemonanimfunc_87 -pokemonanimfunc_87: @ 0x08184454 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08184472 - adds r0, r4, #0 - bl HandleStartAffineAnim - ldrh r0, [r4, #0x26] - adds r0, #2 - strh r0, [r4, #0x26] - movs r0, #0x50 - strh r0, [r4, #0x3a] - strh r0, [r4, #0x3c] -_08184472: - adds r0, r4, #0 - bl sub_08184314 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_87 - - thumb_func_start sub_08184480 -sub_08184480: @ 0x08184480 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - ldrh r0, [r4, #0x24] - ldrh r1, [r4, #0x32] - subs r0, r0, r1 - strh r0, [r4, #0x24] - movs r0, #0x24 - ldrsh r1, [r4, r0] - movs r2, #0x3a - ldrsh r0, [r4, r2] - cmn r1, r0 - bgt _081844AA - ldrh r0, [r4, #0x3a] - rsbs r0, r0, #0 - strh r0, [r4, #0x24] - movs r0, #2 - strh r0, [r4, #0x3c] - ldr r0, _081844B8 - str r0, [r4, #0x1c] -_081844AA: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081844B8: .4byte sub_081844BC - thumb_func_end sub_08184480 - - thumb_func_start sub_081844BC -sub_081844BC: @ 0x081844BC - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - ldrh r0, [r4, #0x3c] - ldrh r2, [r4, #0x24] - adds r1, r0, r2 - strh r1, [r4, #0x24] - adds r0, #1 - strh r0, [r4, #0x3c] - lsls r1, r1, #0x10 - cmp r1, #0 - blt _081844DA - ldr r0, _081844E8 - str r0, [r4, #0x1c] -_081844DA: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081844E8: .4byte sub_081844EC - thumb_func_end sub_081844BC - - thumb_func_start sub_081844EC -sub_081844EC: @ 0x081844EC - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - ldrh r0, [r4, #0x3c] - ldrh r2, [r4, #0x24] - adds r1, r0, r2 - strh r1, [r4, #0x24] - adds r0, #1 - strh r0, [r4, #0x3c] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldrh r2, [r4, #0x3a] - movs r3, #0x3a - ldrsh r0, [r4, r3] - cmp r1, r0 - ble _08184514 - strh r2, [r4, #0x24] - ldr r0, _08184520 - str r0, [r4, #0x1c] -_08184514: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08184520: .4byte sub_08184524 - thumb_func_end sub_081844EC - - thumb_func_start sub_08184524 -sub_08184524: @ 0x08184524 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - ldrh r2, [r4, #0x34] - movs r0, #0x34 - ldrsh r1, [r4, r0] - movs r3, #0x38 - ldrsh r0, [r4, r3] - cmp r1, r0 - blt _08184544 - ldr r0, _08184540 - str r0, [r4, #0x1c] - b _08184558 - .align 2, 0 -_08184540: .4byte sub_08184564 -_08184544: - ldrh r0, [r4, #0x36] - ldrh r1, [r4, #0x24] - adds r0, r0, r1 - strh r0, [r4, #0x24] - movs r3, #0x36 - ldrsh r0, [r4, r3] - rsbs r0, r0, #0 - strh r0, [r4, #0x36] - adds r0, r2, #1 - strh r0, [r4, #0x34] -_08184558: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08184524 - - thumb_func_start sub_08184564 -sub_08184564: @ 0x08184564 - push {r4, lr} - adds r4, r0, #0 - bl sub_0817F5B8 - ldrh r0, [r4, #0x24] - subs r0, #2 - strh r0, [r4, #0x24] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _08184586 - movs r0, #0 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0817F628 - ldr r0, _08184594 - str r0, [r4, #0x1c] -_08184586: - adds r0, r4, #0 - bl sub_0817F5B8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08184594: .4byte sub_08184C34 - thumb_func_end sub_08184564 - - thumb_func_start pokemonanimfunc_88 -pokemonanimfunc_88: @ 0x08184598 - push {r4, lr} - adds r4, r0, #0 - bl HandleStartAffineAnim - movs r2, #0 - movs r1, #4 - strh r1, [r4, #0x3c] - movs r0, #0xc - strh r0, [r4, #0x3a] - movs r0, #0x10 - strh r0, [r4, #0x38] - strh r1, [r4, #0x36] - strh r2, [r4, #0x34] - movs r0, #2 - strh r0, [r4, #0x32] - ldr r0, _081845C0 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081845C0: .4byte sub_08184480 - thumb_func_end pokemonanimfunc_88 - - thumb_func_start pokemonanimfunc_89 -pokemonanimfunc_89: @ 0x081845C4 - push {r4, lr} - adds r4, r0, #0 - bl HandleStartAffineAnim - movs r2, #0 - movs r1, #2 - strh r1, [r4, #0x3c] - movs r0, #8 - strh r0, [r4, #0x3a] - movs r0, #0xc - strh r0, [r4, #0x38] - strh r1, [r4, #0x36] - strh r2, [r4, #0x34] - movs r0, #1 - strh r0, [r4, #0x32] - ldr r0, _081845EC - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081845EC: .4byte sub_08184480 - thumb_func_end pokemonanimfunc_89 - - thumb_func_start pokemonanimfunc_8A -pokemonanimfunc_8A: @ 0x081845F0 - push {r4, lr} - adds r4, r0, #0 - bl HandleStartAffineAnim - movs r1, #0 - strh r1, [r4, #0x3c] - movs r0, #6 - strh r0, [r4, #0x3a] - strh r0, [r4, #0x38] - movs r0, #2 - strh r0, [r4, #0x36] - strh r1, [r4, #0x34] - movs r0, #1 - strh r0, [r4, #0x32] - ldr r0, _08184618 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08184618: .4byte sub_08184480 - thumb_func_end pokemonanimfunc_8A - - thumb_func_start sub_0818461C -sub_0818461C: @ 0x0818461C - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0x30] - strh r0, [r1, #0x24] - ldrh r2, [r1, #0x2e] - movs r3, #0x2e - ldrsh r0, [r1, r3] - cmp r0, #1 - ble _0818463A - movs r2, #0x30 - ldrsh r0, [r1, r2] - rsbs r0, r0, #0 - strh r0, [r1, #0x30] - movs r0, #0 - b _0818463C -_0818463A: - adds r0, r2, #1 -_0818463C: - strh r0, [r1, #0x2e] - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0818461C - - thumb_func_start BackAnimBlendYellow -BackAnimBlendYellow: @ 0x08184644 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r1, _08184674 - movs r2, #0x34 - ldrsh r0, [r4, r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r5, [r0] - adds r0, r4, #0 - bl sub_0818461C - movs r1, #0x3a - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r1, r0, r5 - ldrb r0, [r1, #1] - cmp r0, #0xff - bne _0818467C - movs r0, #0 - strh r0, [r4, #0x24] - ldr r0, _08184678 - str r0, [r4, #0x1c] - b _081846DA - .align 2, 0 -_08184674: .4byte gUnknown_85D38DC -_08184678: .4byte sub_08184C34 -_0818467C: - movs r2, #0x36 - ldrsh r0, [r4, r2] - cmp r0, #1 - bne _081846AC - ldrb r0, [r1] - cmp r0, #0 - beq _0818469C - ldrh r0, [r4, #0x3c] - ldr r3, _08184698 - movs r1, #0x10 - movs r2, #0x10 - bl BlendPalette - b _081846A8 - .align 2, 0 -_08184698: .4byte 0x000003FF -_0818469C: - ldrh r0, [r4, #0x3c] - ldr r3, _081846D0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalette -_081846A8: - movs r0, #0 - strh r0, [r4, #0x36] -_081846AC: - movs r1, #0x3a - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r1, [r0, #1] - movs r2, #0x38 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _081846D4 - movs r1, #0 - movs r0, #1 - strh r0, [r4, #0x36] - strh r1, [r4, #0x38] - ldrh r0, [r4, #0x3a] - adds r0, #1 - strh r0, [r4, #0x3a] - b _081846DA - .align 2, 0 -_081846D0: .4byte 0x000003FF -_081846D4: - ldrh r0, [r4, #0x38] - adds r0, #1 - strh r0, [r4, #0x38] -_081846DA: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end BackAnimBlendYellow - - thumb_func_start pokemonanimfunc_8B -pokemonanimfunc_8B: @ 0x081846E0 - push {r4, lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x32] - adds r0, #1 - movs r3, #0 - strh r0, [r2, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - bne _0818470C - ldrb r0, [r2, #5] - lsrs r0, r0, #4 - lsls r0, r0, #4 - movs r4, #0x80 - lsls r4, r4, #1 - adds r1, r4, #0 - adds r0, r0, r1 - strh r0, [r2, #0x3c] - strh r3, [r2, #0x3a] - strh r3, [r2, #0x38] - strh r3, [r2, #0x36] - strh r3, [r2, #0x34] -_0818470C: - adds r0, r2, #0 - bl BackAnimBlendYellow - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_8B - - thumb_func_start pokemonanimfunc_8C -pokemonanimfunc_8C: @ 0x08184718 - push {r4, r5, lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x32] - adds r0, #1 - movs r3, #0 - strh r0, [r2, #0x32] - lsls r0, r0, #0x10 - asrs r4, r0, #0x10 - cmp r4, #1 - bne _08184744 - ldrb r0, [r2, #5] - lsrs r0, r0, #4 - lsls r0, r0, #4 - movs r5, #0x80 - lsls r5, r5, #1 - adds r1, r5, #0 - adds r0, r0, r1 - strh r0, [r2, #0x3c] - strh r3, [r2, #0x3a] - strh r3, [r2, #0x38] - strh r3, [r2, #0x36] - strh r4, [r2, #0x34] -_08184744: - adds r0, r2, #0 - bl BackAnimBlendYellow - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_8C - - thumb_func_start pokemonanimfunc_8D -pokemonanimfunc_8D: @ 0x08184750 - push {r4, lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x32] - adds r0, #1 - movs r3, #0 - strh r0, [r2, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - bne _0818477E - ldrb r0, [r2, #5] - lsrs r0, r0, #4 - lsls r0, r0, #4 - movs r4, #0x80 - lsls r4, r4, #1 - adds r1, r4, #0 - adds r0, r0, r1 - strh r0, [r2, #0x3c] - strh r3, [r2, #0x3a] - strh r3, [r2, #0x38] - strh r3, [r2, #0x36] - movs r0, #2 - strh r0, [r2, #0x34] -_0818477E: - adds r0, r2, #0 - bl BackAnimBlendYellow - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_8D - - thumb_func_start BackAnimBlend -BackAnimBlend: @ 0x0818478C - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0x7f - ble _081847B0 - ldrh r0, [r4, #0x3c] - movs r1, #0x10 - movs r2, #0 - movs r3, #0x1f - bl BlendPalette - ldr r0, _081847AC - str r0, [r4, #0x1c] - b _081847D6 - .align 2, 0 -_081847AC: .4byte sub_08184C34 -_081847B0: - movs r5, #0x32 - ldrsh r0, [r4, r5] - movs r1, #0xc - bl Sin - adds r2, r0, #0 - strh r2, [r4, #0x3a] - ldrh r0, [r4, #0x3c] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r3, _081847DC - movs r5, #0x30 - ldrsh r1, [r4, r5] - lsls r1, r1, #1 - adds r1, r1, r3 - ldrh r3, [r1] - movs r1, #0x10 - bl BlendPalette -_081847D6: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081847DC: .4byte gUnknown_85D38E8 - thumb_func_end BackAnimBlend - - thumb_func_start sub_081847E0 -sub_081847E0: @ 0x081847E0 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x34 - ldrsh r1, [r4, r0] - movs r2, #0x36 - ldrsh r0, [r4, r2] - cmp r1, r0 - bge _08184878 - adds r0, r4, #0 - bl sub_0817F5B8 - movs r3, #0x38 - ldrsh r1, [r4, r3] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r1, r0 - ble _0818481C - ldrh r0, [r4, #0x34] - adds r0, #1 - movs r2, #0 - strh r0, [r4, #0x34] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r3, #0x36 - ldrsh r1, [r4, r3] - cmp r0, r1 - bge _08184818 - strh r2, [r4, #0x38] -_08184818: - strh r2, [r4, #0x24] - b _08184872 -_0818481C: - movs r0, #0x34 - ldrsh r1, [r4, r0] - lsrs r0, r1, #0x1f - adds r0, r1, r0 - asrs r0, r0, #1 - lsls r0, r0, #1 - subs r1, r1, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0xf - movs r0, #1 - subs r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r2, #0x38 - ldrsh r1, [r4, r2] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #7 - movs r3, #0x2e - ldrsh r1, [r4, r3] - bl __divsi3 - adds r1, r0, #0 - cmp r1, #0 - bge _08184850 - adds r0, #0xff -_08184850: - asrs r0, r0, #8 - lsls r0, r0, #8 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #6 - bl Sin - lsls r1, r5, #0x18 - asrs r1, r1, #0x18 - adds r2, r1, #0 - muls r2, r0, r2 - adds r0, r2, #0 - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x38] - adds r0, #1 - strh r0, [r4, #0x38] -_08184872: - adds r0, r4, #0 - bl sub_0817F5B8 -_08184878: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081847E0 - - thumb_func_start pokemonanimfunc_8E -pokemonanimfunc_8E: @ 0x08184880 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r2, [r4, r0] - cmp r2, #0 - bne _081848AA - ldrb r0, [r4, #5] - lsrs r0, r0, #4 - lsls r0, r0, #4 - movs r3, #0x80 - lsls r3, r3, #1 - adds r1, r3, #0 - adds r0, r0, r1 - strh r0, [r4, #0x3c] - movs r0, #0xa - strh r0, [r4, #0x2e] - strh r2, [r4, #0x38] - movs r0, #2 - strh r0, [r4, #0x36] - strh r2, [r4, #0x34] - strh r2, [r4, #0x30] -_081848AA: - ldrh r0, [r4, #0x32] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _081848BA - adds r0, r4, #0 - bl BackAnimBlend -_081848BA: - movs r0, #0x32 - ldrsh r2, [r4, r0] - movs r3, #0x2e - ldrsh r1, [r4, r3] - movs r3, #0x36 - ldrsh r0, [r4, r3] - muls r1, r0, r1 - movs r0, #0x80 - subs r0, r0, r1 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - cmp r2, r0 - blt _081848DC - adds r0, r4, #0 - bl sub_081847E0 -_081848DC: - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_8E - - thumb_func_start pokemonanimfunc_8F -pokemonanimfunc_8F: @ 0x081848E8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r2, [r4, r0] - cmp r2, #0 - bne _08184912 - ldrb r0, [r4, #5] - lsrs r0, r0, #4 - lsls r0, r0, #4 - movs r3, #0x80 - lsls r3, r3, #1 - adds r1, r3, #0 - adds r0, r0, r1 - strh r0, [r4, #0x3c] - movs r0, #0x14 - strh r0, [r4, #0x2e] - strh r2, [r4, #0x38] - movs r0, #1 - strh r0, [r4, #0x36] - strh r2, [r4, #0x34] - strh r2, [r4, #0x30] -_08184912: - ldrh r0, [r4, #0x32] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08184922 - adds r0, r4, #0 - bl BackAnimBlend -_08184922: - movs r0, #0x32 - ldrsh r2, [r4, r0] - movs r3, #0x2e - ldrsh r1, [r4, r3] - movs r3, #0x36 - ldrsh r0, [r4, r3] - muls r1, r0, r1 - movs r0, #0x80 - subs r0, r0, r1 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - cmp r2, r0 - blt _08184944 - adds r0, r4, #0 - bl sub_081847E0 -_08184944: - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_8F - - thumb_func_start pokemonanimfunc_90 -pokemonanimfunc_90: @ 0x08184950 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r2, [r4, r0] - cmp r2, #0 - bne _0818497A - ldrb r0, [r4, #5] - lsrs r0, r0, #4 - lsls r0, r0, #4 - movs r3, #0x80 - lsls r3, r3, #1 - adds r1, r3, #0 - adds r0, r0, r1 - strh r0, [r4, #0x3c] - movs r0, #0x50 - strh r0, [r4, #0x2e] - strh r2, [r4, #0x38] - movs r0, #1 - strh r0, [r4, #0x36] - strh r2, [r4, #0x34] - strh r2, [r4, #0x30] -_0818497A: - ldrh r0, [r4, #0x32] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _0818498A - adds r0, r4, #0 - bl BackAnimBlend -_0818498A: - movs r0, #0x32 - ldrsh r2, [r4, r0] - movs r3, #0x2e - ldrsh r1, [r4, r3] - movs r3, #0x36 - ldrsh r0, [r4, r3] - muls r1, r0, r1 - movs r0, #0x80 - subs r0, r0, r1 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - cmp r2, r0 - blt _081849AC - adds r0, r4, #0 - bl sub_081847E0 -_081849AC: - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_90 - - thumb_func_start pokemonanimfunc_91 -pokemonanimfunc_91: @ 0x081849B8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r2, [r4, r0] - cmp r2, #0 - bne _081849E4 - ldrb r0, [r4, #5] - lsrs r0, r0, #4 - lsls r0, r0, #4 - movs r3, #0x80 - lsls r3, r3, #1 - adds r1, r3, #0 - adds r0, r0, r1 - strh r0, [r4, #0x3c] - movs r0, #0xa - strh r0, [r4, #0x2e] - strh r2, [r4, #0x38] - movs r0, #2 - strh r0, [r4, #0x36] - strh r2, [r4, #0x34] - movs r0, #1 - strh r0, [r4, #0x30] -_081849E4: - ldrh r0, [r4, #0x32] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _081849F4 - adds r0, r4, #0 - bl BackAnimBlend -_081849F4: - movs r0, #0x32 - ldrsh r2, [r4, r0] - movs r3, #0x2e - ldrsh r1, [r4, r3] - movs r3, #0x36 - ldrsh r0, [r4, r3] - muls r1, r0, r1 - movs r0, #0x80 - subs r0, r0, r1 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - cmp r2, r0 - blt _08184A16 - adds r0, r4, #0 - bl sub_081847E0 -_08184A16: - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_91 - - thumb_func_start pokemonanimfunc_92 -pokemonanimfunc_92: @ 0x08184A24 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r2, [r4, r0] - cmp r2, #0 - bne _08184A4E - ldrb r0, [r4, #5] - lsrs r0, r0, #4 - lsls r0, r0, #4 - movs r3, #0x80 - lsls r3, r3, #1 - adds r1, r3, #0 - adds r0, r0, r1 - strh r0, [r4, #0x3c] - movs r0, #0x14 - strh r0, [r4, #0x2e] - strh r2, [r4, #0x38] - movs r0, #1 - strh r0, [r4, #0x36] - strh r2, [r4, #0x34] - strh r0, [r4, #0x30] -_08184A4E: - ldrh r0, [r4, #0x32] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08184A5E - adds r0, r4, #0 - bl BackAnimBlend -_08184A5E: - movs r0, #0x32 - ldrsh r2, [r4, r0] - movs r3, #0x2e - ldrsh r1, [r4, r3] - movs r3, #0x36 - ldrsh r0, [r4, r3] - muls r1, r0, r1 - movs r0, #0x80 - subs r0, r0, r1 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - cmp r2, r0 - blt _08184A80 - adds r0, r4, #0 - bl sub_081847E0 -_08184A80: - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_92 - - thumb_func_start pokemonanimfunc_93 -pokemonanimfunc_93: @ 0x08184A8C - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r2, [r4, r0] - cmp r2, #0 - bne _08184AB6 - ldrb r0, [r4, #5] - lsrs r0, r0, #4 - lsls r0, r0, #4 - movs r3, #0x80 - lsls r3, r3, #1 - adds r1, r3, #0 - adds r0, r0, r1 - strh r0, [r4, #0x3c] - movs r0, #0x50 - strh r0, [r4, #0x2e] - strh r2, [r4, #0x38] - movs r0, #1 - strh r0, [r4, #0x36] - strh r2, [r4, #0x34] - strh r0, [r4, #0x30] -_08184AB6: - ldrh r0, [r4, #0x32] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08184AC6 - adds r0, r4, #0 - bl BackAnimBlend -_08184AC6: - movs r0, #0x32 - ldrsh r2, [r4, r0] - movs r3, #0x2e - ldrsh r1, [r4, r3] - movs r3, #0x36 - ldrsh r0, [r4, r3] - muls r1, r0, r1 - movs r0, #0x80 - subs r0, r0, r1 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - cmp r2, r0 - blt _08184AE8 - adds r0, r4, #0 - bl sub_081847E0 -_08184AE8: - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_93 - - thumb_func_start pokemonanimfunc_94 -pokemonanimfunc_94: @ 0x08184AF4 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r2, [r4, r0] - cmp r2, #0 - bne _08184B1E - ldrb r0, [r4, #5] - lsrs r0, r0, #4 - lsls r0, r0, #4 - movs r3, #0x80 - lsls r3, r3, #1 - adds r1, r3, #0 - adds r0, r0, r1 - strh r0, [r4, #0x3c] - movs r0, #0xa - strh r0, [r4, #0x2e] - strh r2, [r4, #0x38] - movs r0, #2 - strh r0, [r4, #0x36] - strh r2, [r4, #0x34] - strh r0, [r4, #0x30] -_08184B1E: - ldrh r0, [r4, #0x32] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08184B2E - adds r0, r4, #0 - bl BackAnimBlend -_08184B2E: - movs r0, #0x32 - ldrsh r2, [r4, r0] - movs r3, #0x2e - ldrsh r1, [r4, r3] - movs r3, #0x36 - ldrsh r0, [r4, r3] - muls r1, r0, r1 - movs r0, #0x80 - subs r0, r0, r1 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - cmp r2, r0 - blt _08184B50 - adds r0, r4, #0 - bl sub_081847E0 -_08184B50: - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_94 - - thumb_func_start pokemonanimfunc_95 -pokemonanimfunc_95: @ 0x08184B5C - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r2, [r4, r0] - cmp r2, #0 - bne _08184B88 - ldrb r0, [r4, #5] - lsrs r0, r0, #4 - lsls r0, r0, #4 - movs r3, #0x80 - lsls r3, r3, #1 - adds r1, r3, #0 - adds r0, r0, r1 - strh r0, [r4, #0x3c] - movs r0, #0x14 - strh r0, [r4, #0x2e] - strh r2, [r4, #0x38] - movs r0, #1 - strh r0, [r4, #0x36] - strh r2, [r4, #0x34] - movs r0, #2 - strh r0, [r4, #0x30] -_08184B88: - ldrh r0, [r4, #0x32] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08184B98 - adds r0, r4, #0 - bl BackAnimBlend -_08184B98: - movs r0, #0x32 - ldrsh r2, [r4, r0] - movs r3, #0x2e - ldrsh r1, [r4, r3] - movs r3, #0x36 - ldrsh r0, [r4, r3] - muls r1, r0, r1 - movs r0, #0x80 - subs r0, r0, r1 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - cmp r2, r0 - blt _08184BBA - adds r0, r4, #0 - bl sub_081847E0 -_08184BBA: - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_95 - - thumb_func_start pokemonanimfunc_96 -pokemonanimfunc_96: @ 0x08184BC8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r2, [r4, r0] - cmp r2, #0 - bne _08184BF4 - ldrb r0, [r4, #5] - lsrs r0, r0, #4 - lsls r0, r0, #4 - movs r3, #0x80 - lsls r3, r3, #1 - adds r1, r3, #0 - adds r0, r0, r1 - strh r0, [r4, #0x3c] - movs r0, #0x50 - strh r0, [r4, #0x2e] - strh r2, [r4, #0x38] - movs r0, #1 - strh r0, [r4, #0x36] - strh r2, [r4, #0x34] - movs r0, #2 - strh r0, [r4, #0x30] -_08184BF4: - ldrh r0, [r4, #0x32] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08184C04 - adds r0, r4, #0 - bl BackAnimBlend -_08184C04: - movs r0, #0x32 - ldrsh r2, [r4, r0] - movs r3, #0x2e - ldrsh r1, [r4, r3] - movs r3, #0x36 - ldrsh r0, [r4, r3] - muls r1, r0, r1 - movs r0, #0x80 - subs r0, r0, r1 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - cmp r2, r0 - blt _08184C26 - adds r0, r4, #0 - bl sub_081847E0 -_08184C26: - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end pokemonanimfunc_96 - - thumb_func_start sub_08184C34 -sub_08184C34: @ 0x08184C34 - push {lr} - adds r2, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08184C48 - ldr r0, _08184C4C - str r0, [r2, #0x1c] -_08184C48: - pop {r0} - bx r0 - .align 2, 0 -_08184C4C: .4byte sub_08007140 - thumb_func_end sub_08184C34 - - thumb_func_start sub_08184C50 -sub_08184C50: @ 0x08184C50 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov ip, r0 - ldr r0, _08184CDC - mov r1, ip - strb r1, [r0] - ldr r1, _08184CE0 - movs r0, #0 - strb r0, [r1] - movs r2, #0 - movs r7, #0 - ldr r3, _08184CE4 - mov sl, r3 - ldr r6, _08184CE8 - mov sb, r6 - ldr r0, _08184CEC - mov r8, r0 -_08184C7C: - lsls r0, r2, #1 - mov r3, sb - adds r1, r0, r3 - strh r7, [r1] - ldr r6, _08184CF0 - adds r1, r0, r6 - strh r7, [r1] - ldr r1, _08184CF4 - adds r0, r0, r1 - strh r7, [r0] - adds r4, r2, #1 - mov r3, ip - cmp r3, #1 - bne _08184CC8 - ldr r5, _08184CF8 - movs r3, #0xff - movs r1, #0xa6 - lsls r1, r1, #2 - adds r0, r2, #0 - muls r0, r1, r0 - mov r6, r8 - adds r2, r0, r6 -_08184CA8: - ldrb r0, [r2] - orrs r0, r3 - strb r0, [r2] - adds r2, #1 - subs r1, #1 - cmp r1, #0 - bne _08184CA8 - ldr r0, [r5] - ldr r1, _08184CFC - str r0, [r1] - ldr r3, _08184D00 - ldr r0, [r3] - ldr r0, [r0, #0x14] - ldr r0, [r0, #0xc] - mov r6, sl - str r0, [r6] -_08184CC8: - adds r2, r4, #0 - cmp r2, #3 - ble _08184C7C - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08184CDC: .4byte gUnknown_203C478 -_08184CE0: .4byte gUnknown_203C99C -_08184CE4: .4byte gUnknown_203C488 -_08184CE8: .4byte gUnknown_203C460 -_08184CEC: .4byte gUnknown_203BA00 -_08184CF0: .4byte gUnknown_203C468 -_08184CF4: .4byte gUnknown_203C470 -_08184CF8: .4byte gUnknown_2022C90 -_08184CFC: .4byte gUnknown_203C484 -_08184D00: .4byte gUnknown_202414C - thumb_func_end sub_08184C50 - - thumb_func_start sub_08184D04 -sub_08184D04: @ 0x08184D04 - push {r4, r5, r6, r7, lr} - ldr r0, _08184D2C - ldrb r0, [r0] - cmp r0, #1 - bne _08184D44 - ldr r1, _08184D30 - ldr r0, _08184D34 - ldr r0, [r0] - str r0, [r1] - ldr r4, _08184D38 - ldr r0, _08184D3C - bl VarGet - strb r0, [r4] - ldr r4, _08184D40 - bl GetFronterBrainSymbol - strb r0, [r4] - b _08184D50 - .align 2, 0 -_08184D2C: .4byte gUnknown_203C478 -_08184D30: .4byte gUnknown_203B9F8 -_08184D34: .4byte gUnknown_3005AE0 -_08184D38: .4byte gUnknown_203C47A -_08184D3C: .4byte 0x000040CF -_08184D40: .4byte gUnknown_203C47B -_08184D44: - cmp r0, #2 - bne _08184D50 - ldr r0, _08184DB4 - ldr r1, _08184DB8 - ldr r1, [r1] - str r1, [r0] -_08184D50: - ldr r0, _08184DBC - ldr r5, [r0] - movs r0, #2 - ands r5, r0 - cmp r5, #0 - beq _08184DCC - bl GetMultiplayerId - ldr r1, _08184DC0 - strb r0, [r1] - movs r5, #0 - ldr r7, _08184DC4 - ldr r6, _08184DC8 -_08184D6A: - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #2 - adds r3, r4, r7 - lsls r2, r5, #3 - subs r2, r2, r5 - lsls r2, r2, #2 - adds r0, r6, #4 - adds r0, r2, r0 - ldr r0, [r0] - str r0, [r3] - adds r1, r2, r6 - ldrb r0, [r1, #0x13] - strb r0, [r3, #0xc] - ldrh r0, [r1, #0x18] - strh r0, [r3, #0xe] - ldrh r0, [r1, #0x1a] - strh r0, [r3, #0x10] - adds r3, r5, #1 - adds r0, r6, #0 - adds r0, #8 - adds r2, r2, r0 - adds r0, r7, #4 - adds r4, r4, r0 - movs r1, #7 -_08184D9C: - ldrb r0, [r2] - strb r0, [r4] - adds r2, #1 - adds r4, #1 - subs r1, #1 - cmp r1, #0 - bge _08184D9C - adds r5, r3, #0 - cmp r5, #3 - ble _08184D6A - b _08184E08 - .align 2, 0 -_08184DB4: .4byte gUnknown_3005AE0 -_08184DB8: .4byte gUnknown_203B9F8 -_08184DBC: .4byte gUnknown_2022C90 -_08184DC0: .4byte gUnknown_203C480 -_08184DC4: .4byte gUnknown_203C94C -_08184DC8: .4byte gUnknown_20226A0 -_08184DCC: - ldr r3, _08184E10 - ldr r4, _08184E14 - ldr r2, [r4] - ldrb r1, [r2, #0xa] - ldrb r0, [r2, #0xb] - lsls r0, r0, #8 - orrs r1, r0 - ldrb r0, [r2, #0xc] - lsls r0, r0, #0x10 - orrs r1, r0 - ldrb r0, [r2, #0xd] - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - ldrb r0, [r2, #8] - strb r0, [r3, #0xc] - strh r5, [r3, #0xe] - ldr r0, _08184E18 - ldrb r0, [r0] - strh r0, [r3, #0x10] - movs r5, #0 - adds r3, #4 -_08184DF8: - adds r0, r5, r3 - ldr r1, [r4] - adds r1, r1, r5 - ldrb r1, [r1] - strb r1, [r0] - adds r5, #1 - cmp r5, #7 - ble _08184DF8 -_08184E08: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08184E10: .4byte gUnknown_203C94C -_08184E14: .4byte gUnknown_3005AF0 -_08184E18: .4byte gUnknown_829BDA5 - thumb_func_end sub_08184D04 - - thumb_func_start RecordedBattle_SetBattlerAction -RecordedBattle_SetBattlerAction: @ 0x08184E1C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - ldr r1, _08184E58 - lsls r0, r5, #1 - adds r4, r0, r1 - ldrh r2, [r4] - adds r3, r2, #0 - ldr r0, _08184E5C - cmp r3, r0 - bhi _08184E50 - ldr r0, _08184E60 - ldrb r0, [r0] - cmp r0, #2 - beq _08184E50 - ldr r1, _08184E64 - adds r0, r2, #1 - strh r0, [r4] - movs r0, #0xa6 - lsls r0, r0, #2 - muls r0, r5, r0 - adds r0, r3, r0 - adds r0, r0, r1 - strb r6, [r0] -_08184E50: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08184E58: .4byte gUnknown_203C460 -_08184E5C: .4byte 0x00000297 -_08184E60: .4byte gUnknown_203C478 -_08184E64: .4byte gUnknown_203BA00 - thumb_func_end RecordedBattle_SetBattlerAction - - thumb_func_start RecordedBattle_ClearBattlerAction -RecordedBattle_ClearBattlerAction: @ 0x08184E68 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - movs r3, #0 - cmp r3, r4 - bge _08184EA6 - ldr r0, _08184EAC - lsls r1, r5, #1 - adds r2, r1, r0 - ldr r7, _08184EB0 - movs r0, #0xa6 - lsls r0, r0, #2 - muls r5, r0, r5 - movs r6, #0xff -_08184E88: - ldrh r0, [r2] - subs r0, #1 - strh r0, [r2] - ldrh r1, [r2] - adds r1, r1, r5 - adds r1, r1, r7 - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - ldrh r0, [r2] - cmp r0, #0 - beq _08184EA6 - adds r3, #1 - cmp r3, r4 - blt _08184E88 -_08184EA6: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08184EAC: .4byte gUnknown_203C460 -_08184EB0: .4byte gUnknown_203BA00 - thumb_func_end RecordedBattle_ClearBattlerAction - - thumb_func_start RecordedBattle_GetBattlerAction -RecordedBattle_GetBattlerAction: @ 0x08184EB4 - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r1, _08184F04 - lsls r0, r3, #1 - adds r2, r0, r1 - ldrh r1, [r2] - ldr r0, _08184F08 - cmp r1, r0 - bhi _08184EDA - ldr r4, _08184F0C - adds r0, #1 - muls r3, r0, r3 - adds r0, r1, r3 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0xff - bne _08184F1C -_08184EDA: - ldr r2, _08184F10 - ldr r1, _08184F14 - movs r0, #5 - strb r0, [r1] - movs r0, #5 - strh r0, [r2] - bl ResetPaletteFadeControl - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _08184F18 - bl SetMainCallback2 - movs r0, #0xff - b _08184F26 - .align 2, 0 -_08184F04: .4byte gUnknown_203C460 -_08184F08: .4byte 0x00000297 -_08184F0C: .4byte gUnknown_203BA00 -_08184F10: .4byte gUnknown_2037290 -_08184F14: .4byte gUnknown_2023FDE -_08184F18: .4byte CB2_QuitRecordedBattle -_08184F1C: - adds r0, r1, #1 - strh r0, [r2] - adds r0, r1, r3 - adds r0, r0, r4 - ldrb r0, [r0] -_08184F26: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end RecordedBattle_GetBattlerAction - - thumb_func_start sub_08184F30 -sub_08184F30: @ 0x08184F30 - ldr r0, _08184F38 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08184F38: .4byte gUnknown_203C478 - thumb_func_end sub_08184F30 - - thumb_func_start sub_08184F3C -sub_08184F3C: @ 0x08184F3C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov r8, r0 - movs r7, #0 - movs r0, #0 - mov ip, r0 -_08184F50: - mov r1, ip - lsls r3, r1, #1 - ldr r0, _08184FFC - adds r5, r3, r0 - ldr r1, _08185000 - adds r6, r3, r1 - ldrh r0, [r5] - mov sb, r3 - mov r1, ip - adds r1, #1 - str r1, [sp] - ldrh r1, [r6] - cmp r0, r1 - beq _08184FDE - adds r1, r7, #0 - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - adds r2, r7, #0 - add r1, r8 - mov r0, ip - strb r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - add r2, r8 - ldrb r0, [r5] - ldrb r1, [r6] - subs r0, r0, r1 - strb r0, [r2] - movs r4, #0 - ldrh r0, [r5] - ldrh r1, [r6] - subs r0, r0, r1 - cmp r4, r0 - bge _08184FD2 - ldr r1, _08185004 - mov sl, r1 - ldr r6, _08185000 - movs r0, #0xa6 - lsls r0, r0, #2 - mov r5, ip - muls r5, r0, r5 -_08184FA6: - adds r1, r7, #0 - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - add r1, r8 - adds r2, r3, r6 - ldrh r0, [r2] - adds r0, r0, r4 - adds r0, r0, r5 - add r0, sl - ldrb r0, [r0] - strb r0, [r1] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08184FFC - adds r0, r3, r1 - ldrh r1, [r0] - ldrh r0, [r2] - subs r1, r1, r0 - cmp r4, r1 - blt _08184FA6 -_08184FD2: - ldr r0, _08185000 - add r0, sb - ldr r1, _08184FFC - add r1, sb - ldrh r1, [r1] - strh r1, [r0] -_08184FDE: - ldr r1, [sp] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - mov ip, r0 - cmp r0, #3 - bls _08184F50 - adds r0, r7, #0 - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08184FFC: .4byte gUnknown_203C460 -_08185000: .4byte gUnknown_203C468 -_08185004: .4byte gUnknown_203BA00 - thumb_func_end sub_08184F3C - - thumb_func_start sub_08185008 -sub_08185008: @ 0x08185008 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - adds r7, r0, #0 - movs r1, #2 - mov r0, sp - strb r1, [r0] - ldr r0, _08185028 - ldr r0, [r0] - ands r0, r1 - cmp r0, #0 - beq _081850BE - movs r5, #0 - ldr r4, _0818502C - b _0818503A - .align 2, 0 -_08185028: .4byte gUnknown_2022C90 -_0818502C: .4byte gUnknown_20226A0 -_08185030: - ldrb r0, [r4] - cmp r0, #3 - bne _081850BE - adds r4, #0x1c - adds r5, #1 -_0818503A: - bl GetLinkPlayerCount - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r5, r0 - blt _08185030 - ldr r0, _081850CC - ldr r0, [r0] - movs r1, #4 - ands r0, r1 - cmp r0, #0 - bne _081850BE - ldrb r0, [r7] - mov r4, sp - adds r4, #1 - strb r0, [r4] - ldrb r0, [r4] - mov r8, r4 - cmp r0, #0 - beq _081850BE -_08185062: - adds r0, r7, #0 - mov r1, sp - adds r2, r4, #0 - bl sub_081850D8 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r0, r7, #0 - mov r1, sp - adds r2, r4, #0 - bl sub_081850D8 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - beq _081850B6 - ldr r3, _081850D0 - ldr r0, _081850D4 - lsls r1, r6, #1 - adds r4, r1, r0 - adds r5, r2, #0 - movs r0, #0xa6 - lsls r0, r0, #2 - muls r6, r0, r6 -_08185092: - adds r0, r7, #0 - mov r1, sp - mov r2, r8 - str r3, [sp, #4] - bl sub_081850D8 - ldrh r1, [r4] - adds r2, r1, #1 - strh r2, [r4] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r1, r1, r6 - ldr r3, [sp, #4] - adds r1, r1, r3 - strb r0, [r1] - subs r5, #1 - cmp r5, #0 - bne _08185092 -_081850B6: - mov r4, r8 - ldrb r0, [r4] - cmp r0, #0 - bne _08185062 -_081850BE: - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081850CC: .4byte gUnknown_2022C90 -_081850D0: .4byte gUnknown_203BA00 -_081850D4: .4byte gUnknown_203C470 - thumb_func_end sub_08185008 - - thumb_func_start sub_081850D8 -sub_081850D8: @ 0x081850D8 - ldrb r3, [r2] - subs r3, #1 - strb r3, [r2] - ldrb r2, [r1] - adds r3, r2, #1 - strb r3, [r1] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r0, r2 - ldrb r0, [r0] - bx lr - .align 2, 0 - thumb_func_end sub_081850D8 - - thumb_func_start CanCopyRecordedBattleSaveData -CanCopyRecordedBattleSaveData: @ 0x081850F0 - push {r4, r5, lr} - movs r0, #0xf8 - lsls r0, r0, #4 - bl AllocZeroed - adds r4, r0, #0 - bl CopyRecordedBattleFromSave - adds r5, r0, #0 - adds r0, r4, #0 - bl Free - adds r0, r5, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end CanCopyRecordedBattleSaveData - - thumb_func_start IsRecordedBattleSaveValid -IsRecordedBattleSaveValid: @ 0x08185110 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r1, _0818513C - adds r0, r5, r1 - ldr r1, [r0] - cmp r1, #0 - beq _08185148 - ldr r0, _08185140 - ands r1, r0 - cmp r1, #0 - bne _08185148 - ldr r4, _08185144 - adds r0, r5, #0 - adds r1, r4, #0 - bl CalcByteArraySum - adds r4, r5, r4 - ldr r1, [r4] - cmp r0, r1 - bne _08185148 - movs r0, #1 - b _0818514A - .align 2, 0 -_0818513C: .4byte 0x000004EC -_08185140: .4byte 0x7D007E92 -_08185144: .4byte 0x00000F7C -_08185148: - movs r0, #0 -_0818514A: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end IsRecordedBattleSaveValid - - thumb_func_start RecordedBattleToSave -RecordedBattleToSave: @ 0x08185150 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #0x80 - lsls r2, r2, #5 - adds r0, r5, #0 - movs r1, #0 - bl memset - movs r2, #0xf8 - lsls r2, r2, #4 - adds r0, r5, #0 - adds r1, r4, #0 - bl memcpy - ldr r4, _0818518C - adds r0, r5, #0 - adds r1, r4, #0 - bl CalcByteArraySum - adds r4, r5, r4 - str r0, [r4] - movs r0, #0x1f - adds r1, r5, #0 - bl TryWriteSpecialSaveSection - cmp r0, #1 - bne _08185190 - movs r0, #1 - b _08185192 - .align 2, 0 -_0818518C: .4byte 0x00000F7C -_08185190: - movs r0, #0 -_08185192: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end RecordedBattleToSave - - thumb_func_start MoveRecordedBattleToSaveData -MoveRecordedBattleToSaveData: @ 0x08185198 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - movs r0, #0 - str r0, [sp, #4] - movs r0, #0xf8 - lsls r0, r0, #4 - bl AllocZeroed - adds r7, r0, #0 - movs r0, #0x80 - lsls r0, r0, #5 - bl AllocZeroed - str r0, [sp] - movs r6, #0 -_081851BE: - movs r0, #0x64 - adds r4, r6, #0 - muls r4, r0, r4 - adds r5, r7, r4 - ldr r1, _08185290 - adds r1, r4, r1 - adds r0, r5, #0 - movs r2, #0x64 - bl memcpy - movs r1, #0x96 - lsls r1, r1, #2 - adds r5, r5, r1 - ldr r0, _08185294 - adds r4, r4, r0 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x64 - bl memcpy - adds r6, #1 - cmp r6, #5 - ble _081851BE - movs r6, #0 - ldr r2, _08185298 - mov sl, r2 - movs r3, #0x9a - lsls r3, r3, #3 - adds r3, r7, r3 - str r3, [sp, #8] - ldr r5, _0818529C - mov r8, r6 - mov ip, r6 - movs r0, #0x96 - lsls r0, r0, #3 - adds r0, r0, r7 - mov sb, r0 - ldr r1, _081852A0 - adds r4, r7, r1 -_0818520C: - lsls r1, r6, #3 - ldr r0, _0818529C - adds r0, #4 - mov r3, r8 - adds r2, r3, r0 - add r1, sb - movs r3, #7 -_0818521A: - ldrb r0, [r2] - strb r0, [r1] - adds r2, #1 - adds r1, #1 - subs r3, #1 - cmp r3, #0 - bge _0818521A - ldr r0, [sp, #8] - adds r1, r0, r6 - ldrb r0, [r5, #0xc] - strb r0, [r1] - ldrh r0, [r5, #0x10] - strb r0, [r4] - ldrh r0, [r5, #0xe] - strb r0, [r4, #0xc] - ldr r1, _081852A4 - adds r0, r7, r1 - add r0, ip - ldr r1, [r5] - str r1, [r0] - adds r5, #0x14 - movs r2, #0x14 - add r8, r2 - movs r3, #4 - add ip, r3 - adds r4, #1 - adds r6, #1 - cmp r6, #3 - ble _0818520C - movs r5, #0x9d - lsls r5, r5, #3 - adds r1, r7, r5 - ldr r2, _081852A8 - ldr r0, [r2] - str r0, [r1] - ldr r3, _081852AC - ldr r2, [r3] - movs r0, #2 - ands r0, r2 - cmp r0, #0 - beq _08185338 - adds r5, #4 - adds r3, r7, r5 - movs r1, #0x23 - rsbs r1, r1, #0 - ands r1, r2 - movs r0, #0x80 - lsls r0, r0, #0x12 - orrs r1, r0 - str r1, [r3] - movs r0, #4 - ands r0, r2 - cmp r0, #0 - beq _081852B0 - movs r0, #0x80 - lsls r0, r0, #0x18 - orrs r1, r0 - str r1, [r3] - b _0818533E - .align 2, 0 -_08185290: .4byte gUnknown_203C48C -_08185294: .4byte gUnknown_203C6E4 -_08185298: .4byte gUnknown_3005AF0 -_0818529C: .4byte gUnknown_203C94C -_081852A0: .4byte 0x000004E4 -_081852A4: .4byte 0x000004D4 -_081852A8: .4byte gUnknown_203B9F8 -_081852AC: .4byte gUnknown_203C484 -_081852B0: - movs r0, #0x40 - ands r2, r0 - cmp r2, #0 - beq _0818533E - ldr r1, _081852CC - ldrh r0, [r1, #0xe] - cmp r0, #1 - beq _08185304 - cmp r0, #1 - bgt _081852D0 - cmp r0, #0 - beq _081852DA - b _0818533E - .align 2, 0 -_081852CC: .4byte gUnknown_203C94C -_081852D0: - cmp r0, #2 - beq _081852DA - cmp r0, #3 - beq _08185304 - b _0818533E -_081852DA: - ldr r2, _081852F8 - ldrb r1, [r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r3, _081852FC - adds r0, r0, r3 - ldrh r1, [r0, #0xe] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0818533E - ldr r5, _08185300 - adds r0, r7, r5 - b _08185320 - .align 2, 0 -_081852F8: .4byte gUnknown_203C480 -_081852FC: .4byte gUnknown_203C94C -_08185300: .4byte 0x000004EC -_08185304: - ldr r0, _0818532C - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08185330 - adds r0, r0, r1 - ldrh r1, [r0, #0xe] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0818533E - ldr r2, _08185334 - adds r0, r7, r2 -_08185320: - ldr r1, [r0] - movs r2, #0x80 - lsls r2, r2, #0x18 - orrs r1, r2 - str r1, [r0] - b _0818533E - .align 2, 0 -_0818532C: .4byte gUnknown_203C480 -_08185330: .4byte gUnknown_203C94C -_08185334: .4byte 0x000004EC -_08185338: - ldr r3, _0818546C - adds r0, r7, r3 - str r2, [r0] -_0818533E: - ldr r5, _08185470 - ldrh r1, [r5] - ldr r2, _08185474 - adds r0, r7, r2 - strh r1, [r0] - ldr r3, _08185478 - ldrh r1, [r3] - ldr r5, _0818547C - adds r0, r7, r5 - strh r1, [r0] - ldr r0, _08185480 - ldrh r1, [r0] - adds r2, #4 - adds r0, r7, r2 - strh r1, [r0] - ldr r3, _08185484 - ldrb r1, [r3] - adds r5, #4 - adds r0, r7, r5 - strh r1, [r0] - mov r1, sl - ldr r0, [r1] - ldr r2, _08185488 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - ldr r3, _0818548C - adds r1, r7, r3 - strb r0, [r1] - ldr r5, _08185490 - ldrb r1, [r5] - ldr r2, _08185494 - adds r0, r7, r2 - strb r1, [r0] - ldr r3, _08185498 - ldrb r1, [r3] - ldr r5, _0818549C - adds r0, r7, r5 - strb r1, [r0] - mov r1, sl - ldr r0, [r1] - ldrb r1, [r0, #0x15] - lsls r1, r1, #0x1d - adds r2, #2 - adds r3, r7, r2 - lsrs r1, r1, #0x1f - ldrb r2, [r3] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - mov r5, sl - ldr r1, [r5] - ldrb r1, [r1, #0x14] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1c - movs r2, #0xf - rsbs r2, r2, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r0, #0xa0 - lsls r0, r0, #3 - adds r1, r7, r0 - ldr r2, _081854A0 - ldr r0, [r2] - str r0, [r1] - ldr r3, _081854A4 - adds r1, r3, #0 - ldr r5, _08185470 - ldrh r5, [r5] - adds r0, r1, r5 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x63 - bls _081853DC - b _08185500 -_081853DC: - movs r6, #0 - ldr r0, _081854A8 - adds r3, r7, r0 - mov sb, sl - ldr r1, _08185470 - mov ip, r1 - ldr r2, _081854A4 - mov r8, r2 - ldr r4, _081854AC -_081853EE: - adds r2, r3, r6 - mov r5, sb - ldr r1, [r5] - mov r5, ip - ldrh r0, [r5] - add r0, r8 - movs r5, #0xec - muls r0, r5, r0 - adds r0, r6, r0 - adds r1, r1, r4 - adds r1, r1, r0 - ldrb r0, [r1] - strb r0, [r2] - adds r6, #1 - cmp r6, #7 - ble _081853EE - mov r0, sl - ldr r2, [r0] - ldr r1, _08185470 - ldrh r0, [r1] - ldr r3, _081854A4 - adds r0, r0, r3 - movs r1, #0xec - muls r0, r1, r0 - adds r2, r2, r0 - ldr r5, _081854B0 - adds r2, r2, r5 - ldrb r1, [r2] - ldr r2, _081854B4 - adds r0, r7, r2 - strb r1, [r0] - ldr r5, _081854B8 - ldrb r0, [r5] - cmp r0, #1 - bne _081854C0 - movs r6, #0 - ldr r0, _081854BC - adds r4, r7, r0 - mov sb, sl - ldr r1, _08185470 - mov r8, r1 - adds r5, r3, #0 -_08185442: - lsls r3, r6, #1 - mov r0, sb - ldr r2, [r0] - mov r1, r8 - ldrh r0, [r1] - adds r0, r0, r5 - movs r1, #0xec - muls r0, r1, r0 - adds r3, r3, r0 - movs r0, #0xec - lsls r0, r0, #3 - adds r2, r2, r0 - adds r2, r2, r3 - ldrh r0, [r2] - strh r0, [r4] - adds r4, #2 - adds r6, #1 - cmp r6, #5 - ble _08185442 - b _0818565A - .align 2, 0 -_0818546C: .4byte 0x000004EC -_08185470: .4byte gUnknown_203886A -_08185474: .4byte 0x000004F4 -_08185478: .4byte gUnknown_203886C -_0818547C: .4byte 0x000004F6 -_08185480: .4byte gUnknown_203886E -_08185484: .4byte gUnknown_203C480 -_08185488: .4byte 0x00000CA9 -_0818548C: .4byte 0x000004FC -_08185490: .4byte gUnknown_203C47A -_08185494: .4byte 0x000004FD -_08185498: .4byte gUnknown_203C47B -_0818549C: .4byte 0x000004FE -_081854A0: .4byte gUnknown_203C488 -_081854A4: .4byte 0xFFFFFED4 -_081854A8: .4byte 0x00000504 -_081854AC: .4byte 0x0000073C -_081854B0: .4byte 0x00000739 -_081854B4: .4byte 0x0000050C -_081854B8: .4byte gUnknown_203C9B4 -_081854BC: .4byte 0x0000050E -_081854C0: - movs r6, #0 - ldr r1, _081854F4 - adds r4, r7, r1 - mov sb, sl - ldr r2, _081854F8 - mov r8, r2 - adds r5, r3, #0 -_081854CE: - lsls r3, r6, #1 - mov r0, sb - ldr r2, [r0] - mov r1, r8 - ldrh r0, [r1] - adds r0, r0, r5 - movs r1, #0xec - muls r0, r1, r0 - adds r3, r3, r0 - ldr r0, _081854FC - adds r2, r2, r0 - adds r2, r2, r3 - ldrh r0, [r2] - strh r0, [r4] - adds r4, #2 - adds r6, #1 - cmp r6, #5 - ble _081854CE - b _0818565A - .align 2, 0 -_081854F4: .4byte 0x0000050E -_081854F8: .4byte gUnknown_203886A -_081854FC: .4byte 0x00000754 -_08185500: - ldr r2, _0818559C - ldrh r2, [r2] - adds r0, r1, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x63 - bhi _081855FC - movs r6, #0 - ldr r5, _081855A0 - adds r3, r7, r5 - mov sb, sl - ldr r0, _0818559C - mov ip, r0 - ldr r1, _081855A4 - mov r8, r1 - ldr r4, _081855A8 -_08185520: - adds r2, r3, r6 - mov r5, sb - ldr r1, [r5] - mov r5, ip - ldrh r0, [r5] - add r0, r8 - movs r5, #0xec - muls r0, r5, r0 - adds r0, r6, r0 - adds r1, r1, r4 - adds r1, r1, r0 - ldrb r0, [r1] - strb r0, [r2] - adds r6, #1 - cmp r6, #7 - ble _08185520 - mov r0, sl - ldr r2, [r0] - ldr r1, _0818559C - ldrh r0, [r1] - ldr r3, _081855A4 - adds r0, r0, r3 - movs r1, #0xec - muls r0, r1, r0 - adds r2, r2, r0 - ldr r5, _081855AC - adds r2, r2, r5 - ldrb r1, [r2] - ldr r2, _081855B0 - adds r0, r7, r2 - strb r1, [r0] - ldr r5, _081855B4 - ldrb r0, [r5] - cmp r0, #1 - bne _081855BC - movs r6, #0 - ldr r0, _081855B8 - adds r4, r7, r0 - mov sb, sl - ldr r1, _0818559C - mov r8, r1 - adds r5, r3, #0 -_08185574: - lsls r3, r6, #1 - mov r0, sb - ldr r2, [r0] - mov r1, r8 - ldrh r0, [r1] - adds r0, r0, r5 - movs r1, #0xec - muls r0, r1, r0 - adds r3, r3, r0 - movs r0, #0xec - lsls r0, r0, #3 - adds r2, r2, r0 - adds r2, r2, r3 - ldrh r0, [r2] - strh r0, [r4] - adds r4, #2 - adds r6, #1 - cmp r6, #5 - ble _08185574 - b _0818565A - .align 2, 0 -_0818559C: .4byte gUnknown_203886C -_081855A0: .4byte 0x00000504 -_081855A4: .4byte 0xFFFFFED4 -_081855A8: .4byte 0x0000073C -_081855AC: .4byte 0x00000739 -_081855B0: .4byte 0x0000050C -_081855B4: .4byte gUnknown_203C9B4 -_081855B8: .4byte 0x0000050E -_081855BC: - movs r6, #0 - ldr r1, _081855F0 - adds r4, r7, r1 - mov sb, sl - ldr r2, _081855F4 - mov r8, r2 - adds r5, r3, #0 -_081855CA: - lsls r3, r6, #1 - mov r0, sb - ldr r2, [r0] - mov r1, r8 - ldrh r0, [r1] - adds r0, r0, r5 - movs r1, #0xec - muls r0, r1, r0 - adds r3, r3, r0 - ldr r0, _081855F8 - adds r2, r2, r0 - adds r2, r2, r3 - ldrh r0, [r2] - strh r0, [r4] - adds r4, #2 - adds r6, #1 - cmp r6, #5 - ble _081855CA - b _0818565A - .align 2, 0 -_081855F0: .4byte 0x0000050E -_081855F4: .4byte gUnknown_203886C -_081855F8: .4byte 0x00000754 -_081855FC: - ldr r2, _081856BC - ldrh r2, [r2] - adds r0, r1, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x63 - bhi _0818565A - movs r6, #0 - ldr r5, _081856C0 - adds r3, r7, r5 - mov sb, sl - ldr r0, _081856BC - mov ip, r0 - ldr r1, _081856C4 - mov r8, r1 - ldr r4, _081856C8 -_0818561C: - adds r2, r3, r6 - mov r5, sb - ldr r1, [r5] - mov r5, ip - ldrh r0, [r5] - add r0, r8 - movs r5, #0xec - muls r0, r5, r0 - adds r0, r6, r0 - adds r1, r1, r4 - adds r1, r1, r0 - ldrb r0, [r1] - strb r0, [r2] - adds r6, #1 - cmp r6, #7 - ble _0818561C - mov r0, sl - ldr r2, [r0] - ldr r1, _081856BC - ldrh r0, [r1] - ldr r3, _081856C4 - adds r0, r0, r3 - movs r1, #0xec - muls r0, r1, r0 - adds r2, r2, r0 - ldr r5, _081856CC - adds r2, r2, r5 - ldrb r1, [r2] - ldr r2, _081856D0 - adds r0, r7, r2 - strb r1, [r0] -_0818565A: - ldr r3, _081856D4 - ldrh r0, [r3] - ldr r1, _081856D8 - cmp r0, r1 - bls _081856E8 - mov r5, sl - ldr r2, [r5] - adds r1, r0, #0 - ldr r3, _081856DC - adds r1, r1, r3 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, r2, r0 - adds r2, #0xdc - ldrb r0, [r2] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1b - ldr r2, _081856E0 - adds r1, r7, r2 - strb r0, [r1] - movs r6, #0 - ldr r5, _081856E4 - adds r4, r7, r5 - mov sb, sl - ldr r0, _081856D4 - mov r8, r0 - adds r5, r3, #0 -_08185692: - lsls r3, r6, #1 - mov r1, sb - ldr r2, [r1] - mov r0, r8 - ldrh r1, [r0] - adds r1, r1, r5 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r3, r3, r0 - movs r1, #0x82 - lsls r1, r1, #1 - adds r2, r2, r1 - adds r2, r2, r3 - ldrh r0, [r2] - strh r0, [r4] - adds r4, #2 - adds r6, #1 - cmp r6, #5 - ble _08185692 - b _08185786 - .align 2, 0 -_081856BC: .4byte gUnknown_203886E -_081856C0: .4byte 0x00000504 -_081856C4: .4byte 0xFFFFFED4 -_081856C8: .4byte 0x0000073C -_081856CC: .4byte 0x00000739 -_081856D0: .4byte 0x0000050C -_081856D4: .4byte gUnknown_203886A -_081856D8: .4byte 0x0000018F -_081856DC: .4byte 0xFFFFFE70 -_081856E0: .4byte 0x0000050D -_081856E4: .4byte 0x0000050E -_081856E8: - ldr r2, _0818574C - ldrh r0, [r2] - cmp r0, r1 - bls _0818575C - mov r3, sl - ldr r2, [r3] - ldr r5, _0818574C - ldrh r1, [r5] - ldr r3, _08185750 - adds r1, r1, r3 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, r2, r0 - adds r2, #0xdc - ldrb r0, [r2] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1b - ldr r2, _08185754 - adds r1, r7, r2 - strb r0, [r1] - movs r6, #0 - ldr r5, _08185758 - adds r4, r7, r5 - mov sb, sl - ldr r0, _0818574C - mov r8, r0 - adds r5, r3, #0 -_08185720: - lsls r3, r6, #1 - mov r1, sb - ldr r2, [r1] - mov r0, r8 - ldrh r1, [r0] - adds r1, r1, r5 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r3, r3, r0 - movs r1, #0x82 - lsls r1, r1, #1 - adds r2, r2, r1 - adds r2, r2, r3 - ldrh r0, [r2] - strh r0, [r4] - adds r4, #2 - adds r6, #1 - cmp r6, #5 - ble _08185720 - b _08185786 - .align 2, 0 -_0818574C: .4byte gUnknown_203886C -_08185750: .4byte 0xFFFFFE70 -_08185754: .4byte 0x0000050D -_08185758: .4byte 0x0000050E -_0818575C: - ldr r2, _081857F8 - ldrh r0, [r2] - cmp r0, r1 - bls _08185786 - mov r3, sl - ldr r2, [r3] - ldr r5, _081857F8 - ldrh r1, [r5] - ldr r0, _081857FC - adds r1, r1, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, r2, r0 - adds r2, #0xdc - ldrb r0, [r2] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1b - ldr r2, _08185800 - adds r1, r7, r2 - strb r0, [r1] -_08185786: - movs r6, #0 - ldr r3, _08185804 - mov sl, r3 - ldr r5, _08185808 - mov sb, r5 - movs r0, #0xa6 - lsls r0, r0, #2 - mov r8, r0 - ldr r1, _0818580C - adds r5, r7, r1 -_0818579A: - adds r4, r6, #1 - mov r0, r8 - muls r0, r6, r0 - mov r3, sb - adds r2, r0, r3 - adds r1, r0, r5 - mov r3, sl - adds r3, #1 -_081857AA: - ldrb r0, [r2] - strb r0, [r1] - adds r2, #1 - adds r1, #1 - subs r3, #1 - cmp r3, #0 - bne _081857AA - adds r6, r4, #0 - cmp r6, #3 - ble _0818579A -_081857BE: - adds r0, r7, #0 - ldr r1, [sp] - bl RecordedBattleToSave - adds r4, r0, #0 - cmp r4, #1 - beq _081857DA - ldr r0, [sp, #4] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - cmp r0, #2 - bls _081857BE -_081857DA: - adds r0, r7, #0 - bl Free - ldr r0, [sp] - bl Free - adds r0, r4, #0 - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081857F8: .4byte gUnknown_203886E -_081857FC: .4byte 0xFFFFFE70 -_08185800: .4byte 0x0000050D -_08185804: .4byte 0x00000297 -_08185808: .4byte gUnknown_203BA00 -_0818580C: .4byte 0x0000051C - thumb_func_end MoveRecordedBattleToSaveData - - thumb_func_start TryCopyRecordedBattleSaveData -TryCopyRecordedBattleSaveData: @ 0x08185810 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - movs r0, #0x1f - bl TryReadSpecialSaveSection - cmp r0, #1 - bne _0818583A - movs r2, #0xf8 - lsls r2, r2, #4 - adds r0, r5, #0 - adds r1, r4, #0 - bl memcpy - adds r0, r5, #0 - bl IsRecordedBattleSaveValid - cmp r0, #0 - beq _0818583A - movs r0, #1 - b _0818583C -_0818583A: - movs r0, #0 -_0818583C: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end TryCopyRecordedBattleSaveData - - thumb_func_start CopyRecordedBattleFromSave -CopyRecordedBattleFromSave: @ 0x08185844 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x80 - lsls r0, r0, #5 - bl AllocZeroed - adds r5, r0, #0 - adds r0, r4, #0 - adds r1, r5, #0 - bl TryCopyRecordedBattleSaveData - adds r4, r0, #0 - adds r0, r5, #0 - bl Free - adds r0, r4, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CopyRecordedBattleFromSave - - thumb_func_start CB2_RecordedBattleEnd -CB2_RecordedBattleEnd: @ 0x0818586C - push {lr} - ldr r0, _081858B4 - ldr r2, [r0] - ldr r0, _081858B8 - ldrb r0, [r0] - ldr r1, _081858BC - adds r2, r2, r1 - movs r1, #3 - ands r1, r0 - ldrb r3, [r2] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldr r1, _081858C0 - movs r0, #0 - strb r0, [r1] - ldr r0, _081858C4 - movs r1, #0 - str r1, [r0] - ldr r0, _081858C8 - strh r1, [r0] - ldr r0, _081858CC - strh r1, [r0] - ldr r0, _081858D0 - strh r1, [r0] - bl sub_08185C54 - ldr r0, _081858D4 - ldr r0, [r0] - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_081858B4: .4byte gUnknown_3005AF0 -_081858B8: .4byte gUnknown_203C479 -_081858BC: .4byte 0x00000CA9 -_081858C0: .4byte gUnknown_2023FDE -_081858C4: .4byte gUnknown_2022C90 -_081858C8: .4byte gUnknown_203886A -_081858CC: .4byte gUnknown_203886C -_081858D0: .4byte gUnknown_203886E -_081858D4: .4byte gUnknown_203C47C - thumb_func_end CB2_RecordedBattleEnd - - thumb_func_start Task_StartAfterCountdown -Task_StartAfterCountdown: @ 0x081858D8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _0818590C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #8] - subs r1, #1 - strh r1, [r0, #8] - lsls r1, r1, #0x10 - cmp r1, #0 - bne _08185906 - ldr r0, _08185910 - ldr r1, _08185914 - str r1, [r0, #8] - ldr r0, _08185918 - bl SetMainCallback2 - adds r0, r4, #0 - bl DestroyTask -_08185906: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0818590C: .4byte gUnknown_3005B60 -_08185910: .4byte gUnknown_3002360 -_08185914: .4byte CB2_RecordedBattleEnd -_08185918: .4byte CB2_InitBattle - thumb_func_end Task_StartAfterCountdown - - thumb_func_start sub_0818591C -sub_0818591C: @ 0x0818591C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r7, r0, #0 - bl ZeroPlayerPartyMons - bl ZeroEnemyPartyMons - movs r6, #0 - ldr r0, _08185B04 - mov r8, r0 -_08185938: - movs r0, #0x64 - adds r4, r6, #0 - muls r4, r0, r4 - mov r1, r8 - adds r0, r4, r1 - adds r5, r7, r4 - adds r1, r5, #0 - movs r2, #0x64 - bl memcpy - ldr r0, _08185B08 - adds r4, r4, r0 - movs r2, #0x96 - lsls r2, r2, #2 - adds r5, r5, r2 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0x64 - bl memcpy - adds r6, #1 - cmp r6, #5 - ble _08185938 - movs r6, #0 - ldr r0, _08185B0C - mov r8, r0 - mov r5, r8 - adds r5, #4 - mov sl, r6 - mov sb, r6 - movs r1, #0x96 - lsls r1, r1, #3 - adds r1, r7, r1 - str r1, [sp] - movs r2, #0x9a - lsls r2, r2, #3 - adds r4, r7, r2 -_08185982: - lsls r0, r6, #2 - mov ip, r0 - ldr r3, [sp] - add r3, sb - mov r2, sl - lsls r1, r2, #2 - mov r0, r8 - adds r0, #8 - adds r1, r1, r0 - movs r2, #7 -_08185996: - ldrb r0, [r3] - strb r0, [r1] - adds r3, #1 - adds r1, #1 - subs r2, #1 - cmp r2, #0 - bge _08185996 - ldrb r0, [r4] - strb r0, [r5, #0xf] - ldrb r0, [r4, #0x14] - strh r0, [r5, #0x16] - movs r1, #0x9e - lsls r1, r1, #3 - adds r0, r7, r1 - adds r0, r0, r6 - ldrb r0, [r0] - strh r0, [r5, #0x14] - ldr r2, _08185B10 - adds r0, r7, r2 - add r0, ip - ldr r0, [r0] - str r0, [r5] - adds r5, #0x1c - movs r0, #7 - add sl, r0 - movs r1, #8 - add sb, r1 - adds r4, #1 - adds r6, #1 - cmp r6, #3 - ble _08185982 - adds r2, #0x14 - adds r0, r7, r2 - ldr r0, [r0] - ldr r1, _08185B14 - str r0, [r1] - adds r2, #4 - adds r0, r7, r2 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x11 - orrs r0, r1 - ldr r1, _08185B18 - str r0, [r1] - adds r2, #8 - adds r0, r7, r2 - ldrh r0, [r0] - ldr r1, _08185B1C - strh r0, [r1] - adds r2, #2 - adds r0, r7, r2 - ldrh r0, [r0] - ldr r1, _08185B20 - strh r0, [r1] - adds r2, #2 - adds r0, r7, r2 - ldrh r0, [r0] - ldr r1, _08185B24 - strh r0, [r1] - adds r2, #2 - adds r0, r7, r2 - ldrh r0, [r0] - ldr r1, _08185B28 - strb r0, [r1] - ldr r2, _08185B2C - ldr r0, [r2] - ldr r1, _08185B30 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - ldr r2, _08185B34 - strb r0, [r2] - ldr r1, _08185B38 - adds r0, r7, r1 - ldrb r0, [r0] - ldr r2, _08185B3C - strb r0, [r2] - adds r1, #1 - adds r0, r7, r1 - ldrb r0, [r0] - ldr r2, _08185B40 - strb r0, [r2] - adds r1, #1 - adds r0, r7, r1 - ldrb r1, [r0] - lsls r0, r1, #0x1f - lsrs r0, r0, #0x1f - ldr r2, _08185B44 - strb r0, [r2] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1d - ldr r0, _08185B48 - strb r1, [r0] - movs r1, #0xa0 - lsls r1, r1, #3 - adds r0, r7, r1 - ldr r0, [r0] - ldr r2, _08185B4C - str r0, [r2] - movs r6, #0 - ldr r4, _08185B50 - ldr r0, _08185B54 - adds r3, r7, r0 -_08185A66: - adds r0, r6, r4 - adds r1, r3, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, #1 - cmp r6, #7 - ble _08185A66 - ldr r1, _08185B58 - adds r0, r7, r1 - ldrb r0, [r0] - ldr r2, _08185B5C - strb r0, [r2] - adds r1, #1 - adds r0, r7, r1 - ldrb r0, [r0] - ldr r2, _08185B60 - strb r0, [r2] - ldr r0, _08185B64 - adds r1, r7, r0 - ldr r3, _08185B68 - movs r6, #5 -_08185A90: - ldrh r0, [r1] - strh r0, [r3] - adds r1, #2 - adds r3, #2 - subs r6, #1 - cmp r6, #0 - bge _08185A90 - ldr r1, _08185B2C - ldr r2, [r1] - ldr r1, _08185B6C - adds r0, r7, r1 - ldrb r0, [r0] - ldr r1, _08185B30 - adds r2, r2, r1 - movs r1, #3 - ands r1, r0 - ldrb r3, [r2] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - movs r6, #0 - ldr r2, _08185B70 - mov sl, r2 - ldr r0, _08185B74 - mov sb, r0 - movs r1, #0xa6 - lsls r1, r1, #2 - mov r8, r1 - ldr r2, _08185B78 - adds r5, r7, r2 -_08185AD0: - adds r3, r6, #1 - mov r0, r8 - muls r0, r6, r0 - adds r1, r0, r5 - mov r2, sb - adds r4, r0, r2 - mov r2, sl - adds r2, #1 -_08185AE0: - ldrb r0, [r1] - strb r0, [r4] - adds r1, #1 - adds r4, #1 - subs r2, #1 - cmp r2, #0 - bne _08185AE0 - adds r6, r3, #0 - cmp r6, #3 - ble _08185AD0 - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08185B04: .4byte gUnknown_2024190 -_08185B08: .4byte gUnknown_20243E8 -_08185B0C: .4byte gUnknown_20226A0 -_08185B10: .4byte 0x000004D4 -_08185B14: .4byte gUnknown_203B9F8 -_08185B18: .4byte gUnknown_2022C90 -_08185B1C: .4byte gUnknown_203886A -_08185B20: .4byte gUnknown_203886C -_08185B24: .4byte gUnknown_203886E -_08185B28: .4byte gUnknown_203C480 -_08185B2C: .4byte gUnknown_3005AF0 -_08185B30: .4byte 0x00000CA9 -_08185B34: .4byte gUnknown_203C479 -_08185B38: .4byte 0x000004FD -_08185B3C: .4byte gUnknown_203C47A -_08185B40: .4byte gUnknown_203C47B -_08185B44: .4byte gUnknown_203C482 -_08185B48: .4byte gUnknown_203C483 -_08185B4C: .4byte gUnknown_203C488 -_08185B50: .4byte gUnknown_203C99D -_08185B54: .4byte 0x00000504 -_08185B58: .4byte 0x0000050C -_08185B5C: .4byte gUnknown_203C9A5 -_08185B60: .4byte gUnknown_203C9A6 -_08185B64: .4byte 0x0000050E -_08185B68: .4byte gUnknown_203C9A8 -_08185B6C: .4byte 0x000004FC -_08185B70: .4byte 0x00000297 -_08185B74: .4byte gUnknown_203BA00 -_08185B78: .4byte 0x0000051C - thumb_func_end sub_0818591C - - thumb_func_start PlayRecordedBattle -PlayRecordedBattle: @ 0x08185B7C - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0xf8 - lsls r0, r0, #4 - bl AllocZeroed - adds r4, r0, #0 - bl CopyRecordedBattleFromSave - cmp r0, #1 - bne _08185BC6 - bl sub_08185C10 - adds r0, r4, #0 - bl sub_0818591C - ldr r0, _08185BD4 - movs r1, #1 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08185BD8 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r0, #0x80 - strh r0, [r1, #8] - ldr r0, _08185BDC - str r5, [r0] - movs r0, #0 - bl PlayMapChosenOrBattleBGM - ldr r0, _08185BE0 - bl SetMainCallback2 -_08185BC6: - adds r0, r4, #0 - bl Free - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08185BD4: .4byte Task_StartAfterCountdown -_08185BD8: .4byte gUnknown_3005B60 -_08185BDC: .4byte gUnknown_203C47C -_08185BE0: .4byte CB2_RecordedBattle - thumb_func_end PlayRecordedBattle - - thumb_func_start CB2_RecordedBattle -CB2_RecordedBattle: @ 0x08185BE4 - push {lr} - bl AnimateSprites - bl BuildOamBuffer - bl RunTasks - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CB2_RecordedBattle - - thumb_func_start sub_08185BF8 -sub_08185BF8: @ 0x08185BF8 - ldr r0, _08185C00 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08185C00: .4byte gUnknown_203C47A - thumb_func_end sub_08185BF8 - - thumb_func_start sub_08185C04 -sub_08185C04: @ 0x08185C04 - ldr r0, _08185C0C - ldrb r0, [r0] - bx lr - .align 2, 0 -_08185C0C: .4byte gUnknown_203C47B - thumb_func_end sub_08185C04 - - thumb_func_start sub_08185C10 -sub_08185C10: @ 0x08185C10 - push {r4, r5, r6, lr} - movs r5, #0 - ldr r6, _08185C44 -_08185C16: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - adds r0, r4, r6 - ldr r1, _08185C48 - adds r1, r4, r1 - movs r2, #0x64 - bl memcpy - ldr r0, _08185C4C - adds r0, r4, r0 - ldr r1, _08185C50 - adds r4, r4, r1 - adds r1, r4, #0 - movs r2, #0x64 - bl memcpy - adds r5, #1 - cmp r5, #5 - ble _08185C16 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08185C44: .4byte gUnknown_203C48C -_08185C48: .4byte gUnknown_2024190 -_08185C4C: .4byte gUnknown_203C6E4 -_08185C50: .4byte gUnknown_20243E8 - thumb_func_end sub_08185C10 - - thumb_func_start sub_08185C54 -sub_08185C54: @ 0x08185C54 - push {r4, r5, r6, lr} - movs r5, #0 - ldr r6, _08185C88 -_08185C5A: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - adds r0, r4, r6 - ldr r1, _08185C8C - adds r1, r4, r1 - movs r2, #0x64 - bl memcpy - ldr r0, _08185C90 - adds r0, r4, r0 - ldr r1, _08185C94 - adds r4, r4, r1 - adds r1, r4, #0 - movs r2, #0x64 - bl memcpy - adds r5, #1 - cmp r5, #5 - ble _08185C5A - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08185C88: .4byte gUnknown_2024190 -_08185C8C: .4byte gUnknown_203C48C -_08185C90: .4byte gUnknown_20243E8 -_08185C94: .4byte gUnknown_203C6E4 - thumb_func_end sub_08185C54 - - thumb_func_start GetActiveBattlerLinkPlayerGender -GetActiveBattlerLinkPlayerGender: @ 0x08185C98 - push {r4, r5, lr} - movs r2, #0 - ldr r0, _08185CC4 - ldr r3, _08185CC8 - ldrh r1, [r0, #0x18] - adds r4, r0, #0 - ldrb r0, [r3] - cmp r1, r0 - beq _08185CBC - adds r1, r4, #0 -_08185CAC: - adds r1, #0x1c - adds r2, #1 - cmp r2, #3 - bgt _08185CBC - ldrh r0, [r1, #0x18] - ldrb r5, [r3] - cmp r0, r5 - bne _08185CAC -_08185CBC: - cmp r2, #4 - bne _08185CCC - movs r0, #0 - b _08185CD6 - .align 2, 0 -_08185CC4: .4byte gUnknown_20226A0 -_08185CC8: .4byte gUnknown_2023D08 -_08185CCC: - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r0, [r0, #0x13] -_08185CD6: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end GetActiveBattlerLinkPlayerGender - - thumb_func_start sub_08185CDC -sub_08185CDC: @ 0x08185CDC - ldr r1, _08185CE4 - movs r0, #0 - strb r0, [r1] - bx lr - .align 2, 0 -_08185CE4: .4byte gUnknown_203C481 - thumb_func_end sub_08185CDC - - thumb_func_start sub_08185CE8 -sub_08185CE8: @ 0x08185CE8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r2, _08185D00 - movs r1, #0x80 - lsls r1, r1, #8 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x1f - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - bx lr - .align 2, 0 -_08185D00: .4byte gUnknown_203C481 - thumb_func_end sub_08185CE8 - - thumb_func_start sub_08185D04 -sub_08185D04: @ 0x08185D04 - ldr r0, _08185D0C - ldrb r0, [r0] - bx lr - .align 2, 0 -_08185D0C: .4byte gUnknown_203C481 - thumb_func_end sub_08185D04 - - thumb_func_start sub_08185D10 -sub_08185D10: @ 0x08185D10 - ldr r0, _08185D18 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08185D18: .4byte gUnknown_203C482 - thumb_func_end sub_08185D10 - - thumb_func_start sub_08185D1C -sub_08185D1C: @ 0x08185D1C - ldr r0, _08185D24 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08185D24: .4byte gUnknown_203C483 - thumb_func_end sub_08185D1C - - thumb_func_start RecordedBattle_CopyBattlerMoves -RecordedBattle_CopyBattlerMoves: @ 0x08185D28 - push {r4, r5, r6, r7, lr} - ldr r4, _08185D7C - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _08185D74 - ldr r0, _08185D80 - ldr r0, [r0] - ldr r1, _08185D84 - ands r0, r1 - cmp r0, #0 - bne _08185D74 - ldr r0, _08185D88 - ldrb r0, [r0] - cmp r0, #2 - beq _08185D74 - movs r3, #0 - ldr r7, _08185D8C - adds r6, r4, #0 - ldr r5, _08185D90 - movs r4, #0x58 -_08185D58: - lsls r2, r3, #1 - ldrb r1, [r6] - lsrs r0, r1, #1 - lsls r0, r0, #3 - adds r0, r2, r0 - adds r0, r0, r7 - muls r1, r4, r1 - adds r2, r2, r1 - adds r2, r2, r5 - ldrh r1, [r2] - strh r1, [r0] - adds r3, #1 - cmp r3, #3 - ble _08185D58 -_08185D74: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08185D7C: .4byte gUnknown_2023D08 -_08185D80: .4byte gUnknown_2022C90 -_08185D84: .4byte gUnknown_2000002 -_08185D88: .4byte gUnknown_203C478 -_08185D8C: .4byte gUnknown_203C93C -_08185D90: .4byte gUnknown_2023D34 - thumb_func_end RecordedBattle_CopyBattlerMoves - - thumb_func_start sub_08185D94 -sub_08185D94: @ 0x08185D94 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x50 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x24] - ldr r0, _08185DBC - ldr r0, [r0] - ldr r1, _08185DC0 - ands r0, r1 - cmp r0, #0 - beq _08185DB4 - b _08186154 -_08185DB4: - movs r0, #0 - mov sl, r0 - b _0818614A - .align 2, 0 -_08185DBC: .4byte gUnknown_2022C90 -_08185DC0: .4byte gUnknown_2000002 -_08185DC4: - mov r1, sl - lsls r4, r1, #0x18 - lsrs r5, r4, #0x18 - adds r0, r5, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r4, [sp, #0x4c] - mov r2, sl - adds r2, #1 - str r2, [sp, #0x38] - cmp r0, #1 - bne _08185DE2 - b _08186146 -_08185DE2: - ldr r3, [sp, #0x24] - cmp r3, #1 - bne _08185E76 - movs r5, #0 - ldr r4, _08185E60 - mov r0, sl - asrs r6, r0, #0x1f - subs r0, r0, r6 - asrs r0, r0, #1 - lsls r0, r0, #3 - adds r2, r0, r4 - movs r1, #0x58 - mov r0, sl - muls r0, r1, r0 - ldr r3, _08185E64 - adds r1, r0, r3 -_08185E02: - ldrh r0, [r1] - ldrh r4, [r2] - cmp r0, r4 - bne _08185E14 - adds r2, #2 - adds r1, #2 - adds r5, #1 - cmp r5, #3 - ble _08185E02 -_08185E14: - cmp r5, #4 - bne _08185E1A - b _08186146 -_08185E1A: - ldr r1, [sp, #0x4c] - lsrs r0, r1, #0x18 - movs r1, #6 - bl RecordedBattle_SetBattlerAction - movs r5, #0 - ldr r2, _08185E60 - mov r8, r2 - movs r3, #0x58 - mov r7, sl - muls r7, r3, r7 - mov r4, sl - subs r0, r4, r6 - asrs r4, r0, #1 -_08185E36: - movs r2, #0 - lsls r0, r5, #1 - adds r5, #1 - adds r0, r0, r7 - ldr r1, _08185E64 - adds r3, r0, r1 - lsls r0, r4, #3 - mov r6, r8 - adds r1, r0, r6 -_08185E48: - ldrh r0, [r3] - ldrh r6, [r1] - cmp r0, r6 - bne _08185E68 - lsls r1, r2, #0x18 - lsrs r1, r1, #0x18 - ldr r2, [sp, #0x4c] - lsrs r0, r2, #0x18 - bl RecordedBattle_SetBattlerAction - b _08185E70 - .align 2, 0 -_08185E60: .4byte gUnknown_203C93C -_08185E64: .4byte gUnknown_2023D34 -_08185E68: - adds r1, #2 - adds r2, #1 - cmp r2, #3 - ble _08185E48 -_08185E70: - cmp r5, #3 - ble _08185E36 - b _08186146 -_08185E76: - ldr r3, _08186164 - ldr r1, _08186168 - mov r4, sl - lsls r2, r4, #1 - adds r1, r2, r1 - movs r0, #0xa6 - lsls r0, r0, #2 - mov r6, sl - muls r6, r0, r6 - adds r0, r6, #0 - ldrh r1, [r1] - adds r0, r0, r1 - adds r0, r0, r3 - ldrb r0, [r0] - str r2, [sp, #0x44] - cmp r0, #6 - beq _08185E9A - b _08186146 -_08185E9A: - adds r0, r5, #0 - bl RecordedBattle_GetBattlerAction - movs r5, #0 - mov r0, sp - adds r0, #4 - str r0, [sp, #0x28] - mov r1, sp - adds r1, #0xc - str r1, [sp, #0x30] - mov r2, sp - adds r2, #0x14 - str r2, [sp, #0x34] - mov r3, sp - adds r3, #0x18 - str r3, [sp, #0x3c] - mov r4, sp - adds r4, #8 - str r4, [sp, #0x2c] - mov r6, sl - lsls r6, r6, #3 - str r6, [sp, #0x48] - movs r1, #0x58 - mov r0, sl - muls r0, r1, r0 - ldr r2, _0818616C - adds r0, r0, r2 - adds r6, r0, #0 - adds r6, #0x3b - movs r4, #3 -_08185ED6: - mov r0, sp - adds r3, r0, r5 - ldrb r1, [r6] - lsls r2, r5, #1 - adds r0, r4, #0 - lsls r0, r2 - ands r1, r0 - asrs r1, r2 - strb r1, [r3] - adds r5, #1 - cmp r5, #3 - ble _08185ED6 - movs r5, #0 - ldr r1, _0818616C - mov sb, r1 - movs r2, #0x58 - mov r7, sl - muls r7, r2, r7 - ldr r4, [sp, #0x28] - ldr r6, [sp, #0x30] -_08185EFE: - ldr r3, [sp, #0x4c] - lsrs r0, r3, #0x18 - bl RecordedBattle_GetBattlerAction - strb r0, [r4] - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r7 - movs r1, #0xc - add r1, sb - mov r8, r1 - add r0, r8 - ldrh r0, [r0] - strh r0, [r6] - ldr r2, [sp, #0x34] - adds r1, r2, r5 - ldrb r0, [r4] - adds r0, r0, r7 - ldr r3, _08186170 - adds r0, r0, r3 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, [sp, #0x3c] - adds r1, r0, r5 - ldrb r0, [r4] - add r0, sp - ldrb r0, [r0] - strb r0, [r1] - ldr r1, [sp, #0x2c] - adds r3, r1, r5 - ldr r2, [sp, #0x48] - mov r1, sl - subs r0, r2, r1 - lsls r0, r0, #2 - ldr r2, _08186174 - adds r0, r0, r2 - ldrb r1, [r0, #0x18] - lsrs r1, r1, #4 - ldr r2, _08186178 - lsls r0, r5, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - lsrs r1, r5 - strb r1, [r3] - adds r4, #1 - adds r6, #2 - adds r5, #1 - cmp r5, #3 - ble _08185EFE - movs r5, #0 - movs r3, #0xc - rsbs r3, r3, #0 - add r3, r8 - mov ip, r3 - ldr r4, _08186174 - mov sb, r4 - movs r6, #0x58 - mov r1, sl - muls r1, r6, r1 - mov r0, r8 - adds r0, #0x18 - adds r4, r1, r0 - adds r3, r1, #0 - mov r7, r8 - ldr r6, [sp, #0x34] - ldr r2, [sp, #0x30] -_08185F84: - adds r1, r3, r7 - ldrh r0, [r2] - strh r0, [r1] - adds r0, r6, r5 - ldrb r0, [r0] - strb r0, [r4] - adds r4, #1 - adds r3, #2 - adds r2, #2 - adds r5, #1 - cmp r5, #3 - ble _08185F84 - movs r0, #0x58 - mov r4, sl - muls r4, r0, r4 - mov r1, ip - adds r0, r4, r1 - adds r0, #0x3b - movs r1, #0 - strb r1, [r0] - ldr r2, [sp, #0x48] - mov r6, sl - subs r3, r2, r6 - lsls r3, r3, #2 - mov r0, sb - adds r2, r3, r0 - ldrb r1, [r2, #0x18] - movs r0, #0xf - ands r0, r1 - strb r0, [r2, #0x18] - movs r5, #0 - ldr r1, _0818616C - adds r4, r4, r1 - adds r4, #0x3b - ldr r0, _08186174 - adds r6, r3, r0 -_08185FCC: - ldr r2, [sp, #0x3c] - adds r0, r2, r5 - ldrb r0, [r0] - lsls r1, r5, #1 - lsls r0, r1 - ldrb r1, [r4] - orrs r0, r1 - strb r0, [r4] - ldrb r2, [r6, #0x18] - lsrs r3, r2, #4 - ldr r1, [sp, #0x2c] - adds r0, r1, r5 - ldrb r1, [r0] - lsls r1, r5 - orrs r1, r3 - lsls r1, r1, #4 - movs r0, #0xf - ands r0, r2 - orrs r0, r1 - strb r0, [r6, #0x18] - adds r5, #1 - cmp r5, #3 - ble _08185FCC - movs r2, #0x58 - mov r0, sl - muls r0, r2, r0 - mov r1, ip - adds r1, #0x50 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xe - ands r0, r1 - cmp r0, #0 - beq _08186014 - b _08186122 -_08186014: - movs r5, #0 - mov r3, sp - adds r3, #0x20 - str r3, [sp, #0x40] - ldr r0, _0818617C - ldr r4, [sp, #0x44] - adds r6, r4, r0 -_08186022: - ldrh r1, [r6] - movs r0, #0x64 - muls r0, r1, r0 - ldr r4, _08186180 - adds r0, r0, r4 - movs r1, #0x15 - movs r2, #0 - bl GetMonData - mov r1, sp - adds r3, r1, r5 - lsls r2, r5, #1 - movs r1, #3 - lsls r1, r2 - ands r0, r1 - lsrs r0, r2 - strb r0, [r3] - adds r5, #1 - cmp r5, #3 - ble _08186022 - movs r5, #0 - ldr r0, _0818617C - ldr r2, [sp, #0x44] - adds r7, r2, r0 - movs r3, #0x64 - mov sb, r3 - mov r8, r4 - ldr r4, [sp, #0x28] - ldr r6, [sp, #0x30] -_0818605C: - ldrh r0, [r7] - mov r1, sb - muls r1, r0, r1 - adds r0, r1, #0 - add r0, r8 - ldrb r1, [r4] - adds r1, #0xd - movs r2, #0 - bl GetMonData - strh r0, [r6] - ldrh r0, [r7] - mov r2, sb - muls r2, r0, r2 - adds r0, r2, #0 - add r0, r8 - ldrb r1, [r4] - adds r1, #0x11 - movs r2, #0 - bl GetMonData - ldr r3, [sp, #0x34] - adds r1, r3, r5 - strb r0, [r1] - ldr r0, [sp, #0x3c] - adds r1, r0, r5 - ldrb r0, [r4] - add r0, sp - ldrb r0, [r0] - strb r0, [r1] - adds r4, #1 - adds r6, #2 - adds r5, #1 - cmp r5, #3 - ble _0818605C - movs r5, #0 - ldr r0, _0818617C - ldr r1, [sp, #0x44] - adds r7, r1, r0 - movs r2, #0x64 - mov sb, r2 - ldr r3, _08186180 - mov r8, r3 - ldr r6, [sp, #0x30] - adds r6, #8 - ldr r4, [sp, #0x30] -_081860B8: - ldrh r0, [r7] - mov r1, sb - muls r1, r0, r1 - adds r0, r1, #0 - add r0, r8 - adds r1, r5, #0 - adds r1, #0xd - adds r2, r4, #0 - bl SetMonData - ldrh r0, [r7] - mov r2, sb - muls r2, r0, r2 - adds r0, r2, #0 - add r0, r8 - adds r1, r5, #0 - adds r1, #0x11 - adds r2, r6, #0 - bl SetMonData - adds r6, #1 - adds r4, #2 - adds r5, #1 - cmp r5, #3 - ble _081860B8 - movs r0, #0 - ldr r3, [sp, #0x40] - strb r0, [r3] - movs r5, #0 - ldr r4, _0818617C - ldr r6, _08186180 - ldr r3, [sp, #0x3c] - ldr r2, [sp, #0x40] -_081860FA: - adds r0, r3, r5 - ldrb r1, [r0] - lsls r0, r5, #1 - lsls r1, r0 - ldrb r0, [r2] - orrs r0, r1 - strb r0, [r2] - adds r5, #1 - cmp r5, #3 - ble _081860FA - ldr r1, [sp, #0x44] - adds r0, r1, r4 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - adds r0, r0, r6 - movs r1, #0x15 - ldr r2, [sp, #0x40] - bl SetMonData -_08186122: - ldr r2, _08186184 - ldr r3, [sp, #0x44] - adds r2, r3, r2 - ldr r0, _08186188 - ldr r0, [r0] - add r0, sl - adds r0, #0x80 - ldrb r0, [r0] - lsls r0, r0, #1 - movs r4, #0x58 - mov r1, sl - muls r1, r4, r1 - adds r0, r0, r1 - ldr r1, _0818616C - adds r1, #0xc - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2] -_08186146: - ldr r6, [sp, #0x38] - mov sl, r6 -_0818614A: - ldr r0, _0818618C - ldrb r0, [r0] - cmp sl, r0 - bge _08186154 - b _08185DC4 -_08186154: - add sp, #0x50 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08186164: .4byte gUnknown_203BA00 -_08186168: .4byte gUnknown_203C460 -_0818616C: .4byte gUnknown_2023D28 -_08186170: .4byte gUnknown_2023D4C -_08186174: .4byte gUnknown_2023F60 -_08186178: .4byte gUnknown_82FACB4 -_0818617C: .4byte gUnknown_2023D12 -_08186180: .4byte gUnknown_2024190 -_08186184: .4byte gUnknown_2023F18 -_08186188: .4byte gUnknown_2024140 -_0818618C: .4byte gUnknown_2023D10 - thumb_func_end sub_08185D94 - - thumb_func_start sub_08186190 -sub_08186190: @ 0x08186190 - ldr r0, _08186198 - ldr r0, [r0] - bx lr - .align 2, 0 -_08186198: .4byte gUnknown_203C488 - thumb_func_end sub_08186190 - - thumb_func_start sub_0818619C -sub_0818619C: @ 0x0818619C - ldr r1, _081861A4 - movs r0, #1 - strb r0, [r1] - bx lr - .align 2, 0 -_081861A4: .4byte gUnknown_203C99C - thumb_func_end sub_0818619C - - thumb_func_start sub_081861A8 -sub_081861A8: @ 0x081861A8 - push {lr} - movs r1, #0 - ldr r0, _081861BC - ldrb r0, [r0] - cmp r0, #0 - bne _081861B6 - movs r1, #1 -_081861B6: - adds r0, r1, #0 - pop {r1} - bx r1 - .align 2, 0 -_081861BC: .4byte gUnknown_203C99C - thumb_func_end sub_081861A8 - - thumb_func_start sub_081861C0 -sub_081861C0: @ 0x081861C0 - push {r4, lr} - adds r3, r0, #0 - movs r2, #0 - ldr r4, _081861DC -_081861C8: - adds r0, r3, r2 - adds r1, r2, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, #7 - ble _081861C8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081861DC: .4byte gUnknown_203C99D - thumb_func_end sub_081861C0 - - thumb_func_start sub_081861E0 -sub_081861E0: @ 0x081861E0 - ldr r0, _081861E8 - ldrb r0, [r0] - bx lr - .align 2, 0 -_081861E8: .4byte gUnknown_203C9A5 - thumb_func_end sub_081861E0 - - thumb_func_start sub_081861EC -sub_081861EC: @ 0x081861EC - ldr r0, _081861F4 - ldrb r0, [r0] - bx lr - .align 2, 0 -_081861F4: .4byte gUnknown_203C9A6 - thumb_func_end sub_081861EC - - thumb_func_start sub_081861F8 -sub_081861F8: @ 0x081861F8 - ldr r0, _08186204 - ldr r1, _08186208 - ldrb r1, [r1] - strb r1, [r0] - bx lr - .align 2, 0 -_08186204: .4byte gUnknown_203C9B4 -_08186208: .4byte gUnknown_2023FDE - thumb_func_end sub_081861F8 - - thumb_func_start sub_0818620C -sub_0818620C: @ 0x0818620C - ldr r0, _08186210 - bx lr - .align 2, 0 -_08186210: .4byte gUnknown_203C9A8 - thumb_func_end sub_0818620C - - thumb_func_start sub_08186214 -sub_08186214: @ 0x08186214 - bx lr - .align 2, 0 - thumb_func_end sub_08186214 - - thumb_func_start sub_08186218 -sub_08186218: @ 0x08186218 - ldr r1, _08186228 - ldr r0, _0818622C - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08186230 - str r1, [r0] - bx lr - .align 2, 0 -_08186228: .4byte gUnknown_3005AC0 -_0818622C: .4byte gUnknown_2023D08 -_08186230: .4byte sub_08186234 - thumb_func_end sub_08186218 - - thumb_func_start sub_08186234 -sub_08186234: @ 0x08186234 - push {lr} - ldr r2, _08186268 - ldr r1, _0818626C - ldr r0, _08186270 - ldrb r3, [r0] - lsls r0, r3, #2 - adds r0, r0, r1 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _08186280 - ldr r0, _08186274 - lsls r1, r3, #9 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0x38 - bhi _0818627C - ldr r0, _08186278 - ldrb r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl _call_via_r0 - b _08186280 - .align 2, 0 -_08186268: .4byte gUnknown_2023D0C -_0818626C: .4byte gUnknown_82FACB4 -_08186270: .4byte gUnknown_2023D08 -_08186274: .4byte gUnknown_2022D08 -_08186278: .4byte gUnknown_85D38F0 -_0818627C: - bl RecordedOpponentBufferExecCompleted -_08186280: - pop {r0} - bx r0 - thumb_func_end sub_08186234 - - thumb_func_start sub_08186284 -sub_08186284: @ 0x08186284 - push {lr} - ldr r2, _081862AC - ldr r1, _081862B0 - ldr r0, _081862B4 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _081862B8 - cmp r1, r0 - bne _081862A8 - bl RecordedOpponentBufferExecCompleted -_081862A8: - pop {r0} - bx r0 - .align 2, 0 -_081862AC: .4byte gUnknown_20205AC -_081862B0: .4byte gUnknown_2023E88 -_081862B4: .4byte gUnknown_2023D08 -_081862B8: .4byte sub_08007140 - thumb_func_end sub_08186284 - - thumb_func_start CompleteOnBankSpriteCallbackDummy2 -CompleteOnBankSpriteCallbackDummy2: @ 0x081862BC - push {lr} - ldr r2, _081862E4 - ldr r1, _081862E8 - ldr r0, _081862EC - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _081862F0 - cmp r1, r0 - bne _081862E0 - bl RecordedOpponentBufferExecCompleted -_081862E0: - pop {r0} - bx r0 - .align 2, 0 -_081862E4: .4byte gUnknown_20205AC -_081862E8: .4byte gUnknown_2023E88 -_081862EC: .4byte gUnknown_2023D08 -_081862F0: .4byte sub_08007140 - thumb_func_end CompleteOnBankSpriteCallbackDummy2 - - thumb_func_start sub_081862F4 -sub_081862F4: @ 0x081862F4 - push {r4, r5, r6, lr} - ldr r5, _0818634C - ldr r6, _08186350 - ldr r4, _08186354 - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r2, r0, #2 - adds r0, r5, #0 - adds r0, #0x1c - adds r0, r2, r0 - ldr r1, [r0] - ldr r0, _08186358 - cmp r1, r0 - bne _08186346 - adds r0, r2, r5 - ldrh r0, [r0, #6] - bl FreeTrainerFrontPicPalette - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - bl FreeSpriteOamMatrix - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - bl DestroySprite - bl RecordedOpponentBufferExecCompleted -_08186346: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0818634C: .4byte gUnknown_20205AC -_08186350: .4byte gUnknown_2023E88 -_08186354: .4byte gUnknown_2023D08 -_08186358: .4byte sub_08007140 - thumb_func_end sub_081862F4 - - thumb_func_start sub_0818635C -sub_0818635C: @ 0x0818635C - push {r4, lr} - ldr r4, _0818639C - ldr r1, [r4] - ldr r3, _081863A0 - ldrb r0, [r3] - ldr r2, [r1, #4] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r0, [r1, #9] - subs r0, #1 - strb r0, [r1, #9] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08186394 - ldr r0, [r4] - ldrb r1, [r3] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0 - strb r1, [r0, #9] - bl RecordedOpponentBufferExecCompleted -_08186394: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0818639C: .4byte gUnknown_2024174 -_081863A0: .4byte gUnknown_2023D08 - thumb_func_end sub_0818635C - - thumb_func_start sub_081863A4 -sub_081863A4: @ 0x081863A4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - movs r0, #0 - mov sb, r0 - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081863D0 - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08186424 - ldr r0, _0818640C - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08186424 -_081863D0: - ldr r4, _08186410 - ldr r0, _08186414 - ldr r2, _08186418 - ldrb r3, [r2] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, [r0] - ldr r0, _0818641C - mov r8, r2 - cmp r1, r0 - bne _08186490 - ldr r0, _08186420 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3f - ldrb r0, [r0] - lsls r0, r0, #0x1b - cmp r0, #0 - bge _08186490 - b _08186496 - .align 2, 0 -_0818640C: .4byte gUnknown_2022C90 -_08186410: .4byte gUnknown_20205AC -_08186414: .4byte gUnknown_3005AD0 -_08186418: .4byte gUnknown_2023D08 -_0818641C: .4byte sub_08007140 -_08186420: .4byte gUnknown_2023E88 -_08186424: - ldr r6, _08186574 - ldr r7, _08186578 - ldr r2, _0818657C - ldrb r3, [r2] - adds r0, r3, r7 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r5, r6, #0 - adds r5, #0x1c - adds r0, r0, r5 - ldr r4, [r0] - ldr r0, _08186580 - mov r8, r2 - cmp r4, r0 - bne _08186490 - movs r0, #2 - adds r2, r3, #0 - eors r2, r0 - adds r0, r2, r7 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r0, [r0] - cmp r0, r4 - bne _08186490 - ldr r4, _08186584 - adds r0, r3, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x3f - ldrb r0, [r0] - lsls r0, r0, #0x1b - cmp r0, #0 - bge _08186490 - adds r0, r2, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x3f - ldrb r0, [r0] - lsls r0, r0, #0x1b - cmp r0, #0 - bge _08186490 - movs r1, #1 - mov sb, r1 -_08186490: - mov r2, sb - cmp r2, #0 - beq _08186566 -_08186496: - mov r6, r8 - ldrb r0, [r6] - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #1 - bne _08186542 - ldr r0, _08186588 - mov ip, r0 - ldr r0, [r0] - ldrb r2, [r6] - ldr r5, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r4, r0, r5 - ldrb r1, [r4, #1] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08186566 - movs r7, #2 - adds r1, r7, #0 - eors r1, r2 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r1, [r0, #1] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08186566 - ldrb r1, [r4] - movs r3, #0x7f - adds r0, r3, #0 - ands r0, r1 - strb r0, [r4] - mov r1, ip - ldr r0, [r1] - ldrb r2, [r6] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #1] - movs r4, #2 - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r2 - strb r0, [r1, #1] - mov r0, ip - ldr r2, [r0] - ldrb r0, [r6] - adds r1, r7, #0 - eors r1, r0 - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - ands r3, r1 - strb r3, [r0] - mov r1, ip - ldr r2, [r1] - ldrb r0, [r6] - adds r1, r7, #0 - eors r1, r0 - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #1] - ands r4, r1 - strb r4, [r0, #1] - ldr r4, _0818658C - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl FreeSpritePaletteByTag -_08186542: - ldr r0, _08186588 - ldr r0, [r0] - mov r2, r8 - ldrb r1, [r2] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #3 - strb r1, [r0, #9] - ldr r1, _08186590 - mov r2, r8 - ldrb r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08186594 - str r1, [r0] -_08186566: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08186574: .4byte gUnknown_20205AC -_08186578: .4byte gUnknown_3005AD0 -_0818657C: .4byte gUnknown_2023D08 -_08186580: .4byte sub_08007140 -_08186584: .4byte gUnknown_2023E88 -_08186588: .4byte gUnknown_2024174 -_0818658C: .4byte 0x000027F9 -_08186590: .4byte gUnknown_3005AC0 -_08186594: .4byte sub_0818635C - thumb_func_end sub_081863A4 - - thumb_func_start sub_08186598 -sub_08186598: @ 0x08186598 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - movs r0, #0 - mov sb, r0 - mov r8, r0 - ldr r4, _08186750 - ldr r0, [r4] - ldr r7, _08186754 - ldrb r2, [r7] - ldr r1, [r0, #4] - lsls r3, r2, #1 - adds r0, r3, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r5, #0x88 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - bne _081865D8 - ldr r0, _08186758 - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _0818675C - adds r1, r1, r0 - adds r0, r2, #0 - bl sub_08172CD4 -_081865D8: - ldr r1, [r4] - ldrb r0, [r7] - movs r6, #2 - adds r2, r6, #0 - eors r2, r0 - ldr r1, [r1, #4] - lsls r3, r2, #1 - adds r0, r3, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - bne _0818660A - ldr r0, _08186758 - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _0818675C - adds r1, r1, r0 - adds r0, r2, #0 - bl sub_08172CD4 -_0818660A: - ldr r0, [r4] - ldrb r2, [r7] - ldr r3, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r4, r0, r3 - ldrb r1, [r4] - movs r5, #8 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - bne _081866DA - adds r1, r6, #0 - eors r1, r2 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - bne _081866DA - ldrb r1, [r4, #1] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081866C0 - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08186690 - ldr r0, _08186760 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08186690 - ldr r4, _08186764 - ldrb r0, [r7] - adds r1, r6, #0 - eors r1, r0 - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, _08186758 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _0818675C - adds r1, r1, r2 - movs r2, #0 - bl UpdateHealthboxAttribute - ldrb r0, [r7] - eors r0, r6 - bl sub_08076320 - ldrb r0, [r7] - eors r0, r6 - adds r0, r0, r4 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible -_08186690: - ldr r5, _08186764 - ldr r4, _08186754 - ldrb r1, [r4] - adds r0, r1, r5 - ldrb r0, [r0] - ldr r2, _08186758 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _0818675C - adds r1, r1, r2 - movs r2, #0 - bl UpdateHealthboxAttribute - ldrb r0, [r4] - bl sub_08076320 - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible -_081866C0: - ldr r0, _08186750 - ldr r2, [r0] - ldr r0, _08186754 - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #1] - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0, #1] -_081866DA: - ldr r5, _08186750 - ldr r0, [r5] - ldr r4, _08186754 - ldrb r2, [r4] - ldr r3, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0, #1] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0x80 - bne _08186796 - movs r1, #2 - eors r1, r2 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0, #1] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08186796 - bl IsCryPlayingOrClearCrySongs - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08186796 - ldr r0, [r5] - ldrb r2, [r4] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #1] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _08186778 - ldr r0, _08186760 - ldr r0, [r0] - movs r1, #0x42 - ands r0, r1 - cmp r0, #0x42 - bne _0818676C - adds r0, r2, #0 - bl sub_080A630C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08186778 - ldr r0, _08186768 - bl m4aMPlayContinue - b _08186778 - .align 2, 0 -_08186750: .4byte gUnknown_2024174 -_08186754: .4byte gUnknown_2023D08 -_08186758: .4byte gUnknown_2023D12 -_0818675C: .4byte gUnknown_20243E8 -_08186760: .4byte gUnknown_2022C90 -_08186764: .4byte gUnknown_3005AD0 -_08186768: .4byte gUnknown_30074D0 -_0818676C: - ldr r0, _081867D4 - ldr r1, _081867D8 - movs r2, #0x80 - lsls r2, r2, #1 - bl m4aMPlayVolumeControl -_08186778: - ldr r0, _081867DC - ldr r2, [r0] - ldr r0, _081867E0 - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #1] - movs r2, #0x20 - orrs r1, r2 - strb r1, [r0, #1] - movs r0, #1 - mov sb, r0 -_08186796: - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081867F4 - ldr r2, _081867E4 - ldr r0, _081867E8 - ldr r1, _081867E0 - ldrb r4, [r1] - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r3, [r0] - ldr r0, _081867EC - cmp r3, r0 - bne _08186852 - ldr r0, _081867F0 - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - cmp r0, r3 - bne _08186852 - b _0818684E - .align 2, 0 -_081867D4: .4byte gUnknown_30074D0 -_081867D8: .4byte 0x0000FFFF -_081867DC: .4byte gUnknown_2024174 -_081867E0: .4byte gUnknown_2023D08 -_081867E4: .4byte gUnknown_20205AC -_081867E8: .4byte gUnknown_3005ADC -_081867EC: .4byte sub_08007140 -_081867F0: .4byte gUnknown_2023E88 -_081867F4: - ldr r2, _08186948 - ldr r7, _0818694C - ldr r0, _08186950 - ldrb r3, [r0] - adds r0, r3, r7 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r4, [r0] - ldr r0, _08186954 - cmp r4, r0 - bne _08186852 - ldr r6, _08186958 - adds r0, r3, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r5, [r0] - cmp r5, r4 - bne _08186852 - movs r0, #2 - eors r3, r0 - adds r0, r3, r7 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r4, [r0] - cmp r4, r5 - bne _08186852 - adds r0, r3, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - cmp r0, r4 - bne _08186852 -_0818684E: - movs r0, #1 - mov r8, r0 -_08186852: - mov r0, sb - cmp r0, #0 - beq _0818693C - mov r0, r8 - cmp r0, #0 - beq _0818693C - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081868B6 - ldr r0, _0818695C - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _081868B6 - ldr r1, _0818694C - ldr r5, _08186950 - ldrb r0, [r5] - movs r4, #2 - eors r0, r4 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08186948 - adds r0, r0, r1 - bl DestroySprite - ldrb r0, [r5] - eors r4, r0 - ldr r1, _08186960 - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08186964 - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl SetBattlerShadowSpriteCallback -_081868B6: - ldr r1, _0818694C - ldr r4, _08186950 - ldrb r0, [r4] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08186948 - adds r0, r0, r1 - bl DestroySprite - ldrb r5, [r4] - ldr r1, _08186960 - lsls r0, r5, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08186964 - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r5, #0 - bl SetBattlerShadowSpriteCallback - ldr r3, _08186968 - ldr r0, [r3] - ldr r2, [r0, #8] - ldrb r1, [r2, #9] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #9] - ldr r0, [r3] - ldrb r2, [r4] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #1] - movs r0, #0x21 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #1] - ldr r0, [r3] - ldrb r2, [r4] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #1] - movs r0, #0x7f - ands r0, r2 - strb r0, [r1, #1] - ldr r1, _0818696C - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08186970 - str r1, [r0] -_0818693C: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08186948: .4byte gUnknown_20205AC -_0818694C: .4byte gUnknown_3005ADC -_08186950: .4byte gUnknown_2023D08 -_08186954: .4byte sub_08007140 -_08186958: .4byte gUnknown_2023E88 -_0818695C: .4byte gUnknown_2022C90 -_08186960: .4byte gUnknown_2023D12 -_08186964: .4byte gUnknown_20243E8 -_08186968: .4byte gUnknown_2024174 -_0818696C: .4byte gUnknown_3005AC0 -_08186970: .4byte sub_081863A4 - thumb_func_end sub_08186598 - - thumb_func_start sub_08186974 -sub_08186974: @ 0x08186974 - push {r4, r5, r6, r7, lr} - ldr r4, _081869D0 - ldr r0, _081869D4 - ldr r7, _081869D8 - ldrb r3, [r7] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r2, r0, #2 - adds r0, r4, #0 - adds r0, #0x1c - adds r0, r2, r0 - ldr r1, [r0] - ldr r0, _081869DC - cmp r1, r0 - bne _08186A26 - adds r0, r2, r4 - movs r1, #0x24 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08186A26 - ldr r6, _081869E0 - ldr r0, [r6] - ldr r1, [r0, #4] - lsls r4, r3, #1 - adds r0, r4, r3 - lsls r0, r0, #2 - adds r2, r0, r1 - ldrb r5, [r2] - movs r0, #0x80 - ands r0, r5 - cmp r0, #0 - bne _081869EC - ldr r0, _081869E4 - adds r0, r4, r0 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _081869E8 - adds r1, r1, r0 - adds r0, r3, #0 - bl sub_08172CD4 - b _08186A26 - .align 2, 0 -_081869D0: .4byte gUnknown_20205AC -_081869D4: .4byte gUnknown_2023E88 -_081869D8: .4byte gUnknown_2023D08 -_081869DC: .4byte sub_08007140 -_081869E0: .4byte gUnknown_2024174 -_081869E4: .4byte gUnknown_2023D12 -_081869E8: .4byte gUnknown_20243E8 -_081869EC: - ldrb r1, [r2, #1] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08186A26 - movs r0, #0x7f - ands r0, r5 - strb r0, [r2] - ldr r0, [r6] - ldrb r2, [r7] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #1] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #1] - ldr r4, _08186A2C - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl FreeSpritePaletteByTag - bl RecordedOpponentBufferExecCompleted -_08186A26: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08186A2C: .4byte 0x000027F9 - thumb_func_end sub_08186974 - - thumb_func_start sub_08186A30 -sub_08186A30: @ 0x08186A30 - push {r4, r5, r6, lr} - ldr r6, _08186A70 - ldrb r0, [r6] - ldr r5, _08186A74 - adds r1, r0, r5 - ldrb r1, [r1] - movs r2, #0 - movs r3, #0 - bl MoveBattleBar - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible - lsls r4, r4, #0x10 - asrs r1, r4, #0x10 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _08186A78 - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r0, [r0] - movs r2, #0 - bl sub_080726F4 - b _08186A7C - .align 2, 0 -_08186A70: .4byte gUnknown_2023D08 -_08186A74: .4byte gUnknown_3005AD0 -_08186A78: - bl RecordedOpponentBufferExecCompleted -_08186A7C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08186A30 - - thumb_func_start sub_08186A84 -sub_08186A84: @ 0x08186A84 - push {lr} - ldr r2, _08186AB8 - ldr r0, _08186ABC - ldr r1, _08186AC0 - ldrb r3, [r1] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1f - cmp r0, #0 - bne _08186AB2 - ldr r0, _08186AC4 - adds r0, r3, r0 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible - bl RecordedOpponentBufferExecCompleted -_08186AB2: - pop {r0} - bx r0 - .align 2, 0 -_08186AB8: .4byte gUnknown_20205AC -_08186ABC: .4byte gUnknown_2023E88 -_08186AC0: .4byte gUnknown_2023D08 -_08186AC4: .4byte gUnknown_3005AD0 - thumb_func_end sub_08186A84 - - thumb_func_start sub_08186AC8 -sub_08186AC8: @ 0x08186AC8 - push {r4, r5, r6, lr} - ldr r0, _08186B28 - ldr r0, [r0] - ldr r6, _08186B2C - ldrb r2, [r6] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08186B22 - ldr r5, _08186B30 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _08186B34 - adds r0, r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - ldrb r0, [r6] - bl HideBattlerShadowSprite - ldr r1, _08186B38 - ldrb r0, [r6] - adds r0, r0, r1 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible - bl RecordedOpponentBufferExecCompleted -_08186B22: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08186B28: .4byte gUnknown_2024174 -_08186B2C: .4byte gUnknown_2023D08 -_08186B30: .4byte gUnknown_2023E88 -_08186B34: .4byte gUnknown_20205AC -_08186B38: .4byte gUnknown_3005AD0 - thumb_func_end sub_08186AC8 - - thumb_func_start sub_08186B3C -sub_08186B3C: @ 0x08186B3C - push {lr} - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08186B4E - bl RecordedOpponentBufferExecCompleted -_08186B4E: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08186B3C - - thumb_func_start sub_08186B54 -sub_08186B54: @ 0x08186B54 - push {r4, lr} - ldr r1, _08186B90 - ldr r0, _08186B94 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - ldr r2, _08186B98 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, r0, r2 - movs r1, #0x30 - ldrsh r0, [r4, r1] - cmp r0, #0x20 - bne _08186BA0 - movs r3, #0 - movs r0, #0 - strh r0, [r4, #0x30] - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - subs r0, #5 - ands r0, r1 - strb r0, [r2] - ldr r0, _08186B9C - strb r3, [r0] - bl RecordedOpponentBufferExecCompleted - b _08186BCA - .align 2, 0 -_08186B90: .4byte gUnknown_2023E88 -_08186B94: .4byte gUnknown_2023D08 -_08186B98: .4byte gUnknown_20205AC -_08186B9C: .4byte gUnknown_202415D -_08186BA0: - ldrh r0, [r4, #0x30] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _08186BC4 - adds r3, r4, #0 - adds r3, #0x3e - ldrb r2, [r3] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_08186BC4: - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] -_08186BCA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08186B54 - - thumb_func_start sub_08186BD0 -sub_08186BD0: @ 0x08186BD0 - push {r4, lr} - ldr r2, _08186C24 - ldr r0, _08186C28 - ldr r4, _08186C2C - ldrb r3, [r4] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _08186C30 - cmp r1, r0 - bne _08186C1C - ldr r0, _08186C34 - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r3, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08186C10 - adds r0, r3, #0 - adds r1, r3, #0 - adds r2, r3, #0 - movs r3, #6 - bl InitAndLaunchSpecialAnimation -_08186C10: - ldr r0, _08186C38 - ldrb r1, [r4] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, _08186C3C - str r0, [r1] -_08186C1C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08186C24: .4byte gUnknown_20205AC -_08186C28: .4byte gUnknown_3005AD0 -_08186C2C: .4byte gUnknown_2023D08 -_08186C30: .4byte sub_08007140 -_08186C34: .4byte gUnknown_2024174 -_08186C38: .4byte gUnknown_3005AC0 -_08186C3C: .4byte sub_08186C40 - thumb_func_end sub_08186BD0 - - thumb_func_start sub_08186C40 -sub_08186C40: @ 0x08186C40 - push {r4, lr} - ldr r0, _08186CA0 - ldr r0, [r0] - ldr r4, _08186CA4 - ldrb r1, [r4] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08186C9A - bl IsCryPlayingOrClearCrySongs - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08186C9A - ldr r2, _08186CA8 - ldr r1, _08186CAC - ldrb r0, [r4] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _08186CB0 - cmp r1, r0 - beq _08186C8A - ldr r0, _08186CB4 - cmp r1, r0 - bne _08186C9A -_08186C8A: - ldr r0, _08186CB8 - ldr r1, _08186CBC - movs r2, #0x80 - lsls r2, r2, #1 - bl m4aMPlayVolumeControl - bl RecordedOpponentBufferExecCompleted -_08186C9A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08186CA0: .4byte gUnknown_2024174 -_08186CA4: .4byte gUnknown_2023D08 -_08186CA8: .4byte gUnknown_20205AC -_08186CAC: .4byte gUnknown_2023E88 -_08186CB0: .4byte sub_08007140 -_08186CB4: .4byte sub_080394FC -_08186CB8: .4byte gUnknown_30074D0 -_08186CBC: .4byte 0x0000FFFF - thumb_func_end sub_08186C40 - - thumb_func_start sub_08186CC0 -sub_08186CC0: @ 0x08186CC0 - push {r4, r5, r6, r7, lr} - ldr r4, _08186D84 - ldr r0, [r4] - ldr r5, _08186D88 - ldrb r2, [r5] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r3, r0, r1 - ldrb r1, [r3, #1] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08186D7C - ldr r7, _08186D8C - ldr r6, _08186D90 - adds r0, r2, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r7, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, [r0] - ldr r0, _08186D94 - cmp r1, r0 - bne _08186D7C - ldrb r1, [r3] - movs r0, #0x7f - ands r0, r1 - strb r0, [r3] - ldr r0, [r4] - ldrb r2, [r5] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #1] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #1] - ldr r4, _08186D98 - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl FreeSpritePaletteByTag - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - movs r1, #0 - bl StartSpriteAnim - ldr r4, _08186D9C - ldrb r1, [r5] - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, _08186DA0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _08186DA4 - adds r1, r1, r2 - movs r2, #0 - bl UpdateHealthboxAttribute - ldrb r0, [r5] - bl sub_08076320 - ldrb r0, [r5] - adds r0, r0, r4 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible - ldrb r0, [r5] - bl CopyBattleSpriteInvisibility - ldr r1, _08186DA8 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08186DAC - str r1, [r0] -_08186D7C: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08186D84: .4byte gUnknown_2024174 -_08186D88: .4byte gUnknown_2023D08 -_08186D8C: .4byte gUnknown_20205AC -_08186D90: .4byte gUnknown_2023E88 -_08186D94: .4byte sub_08007140 -_08186D98: .4byte 0x000027F9 -_08186D9C: .4byte gUnknown_3005AD0 -_08186DA0: .4byte gUnknown_2023D12 -_08186DA4: .4byte gUnknown_20243E8 -_08186DA8: .4byte gUnknown_3005AC0 -_08186DAC: .4byte sub_08186BD0 - thumb_func_end sub_08186CC0 - - thumb_func_start sub_08186DB0 -sub_08186DB0: @ 0x08186DB0 - push {r4, r5, r6, lr} - ldr r6, _08186E54 - ldr r0, [r6] - ldr r5, _08186E58 - ldrb r2, [r5] - ldr r1, [r0, #4] - lsls r3, r2, #1 - adds r0, r3, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x88 - ands r0, r1 - cmp r0, #0 - bne _08186DE2 - ldr r0, _08186E5C - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _08186E60 - adds r1, r1, r0 - adds r0, r2, #0 - bl sub_08172CD4 -_08186DE2: - ldr r4, _08186E64 - ldr r0, _08186E68 - ldrb r2, [r5] - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r3, r0, #2 - adds r0, r4, #0 - adds r0, #0x1c - adds r0, r3, r0 - ldr r1, [r0] - ldr r0, _08186E6C - cmp r1, r0 - bne _08186E4C - ldr r0, [r6] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - bne _08186E4C - adds r0, r3, r4 - bl DestroySprite - ldrb r4, [r5] - ldr r1, _08186E5C - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08186E60 - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl SetBattlerShadowSpriteCallback - ldr r1, _08186E70 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08186E74 - str r1, [r0] -_08186E4C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08186E54: .4byte gUnknown_2024174 -_08186E58: .4byte gUnknown_2023D08 -_08186E5C: .4byte gUnknown_2023D12 -_08186E60: .4byte gUnknown_20243E8 -_08186E64: .4byte gUnknown_20205AC -_08186E68: .4byte gUnknown_3005ADC -_08186E6C: .4byte sub_08007140 -_08186E70: .4byte gUnknown_3005AC0 -_08186E74: .4byte sub_08186CC0 - thumb_func_end sub_08186DB0 - - thumb_func_start sub_08186E78 -sub_08186E78: @ 0x08186E78 - push {lr} - ldr r0, _08186EA0 - ldr r2, [r0] - ldr r0, _08186EA4 - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _08186E9A - bl RecordedOpponentBufferExecCompleted -_08186E9A: - pop {r0} - bx r0 - .align 2, 0 -_08186EA0: .4byte gUnknown_2024174 -_08186EA4: .4byte gUnknown_2023D08 - thumb_func_end sub_08186E78 - - thumb_func_start sub_08186EA8 -sub_08186EA8: @ 0x08186EA8 - push {lr} - ldr r0, _08186ED0 - ldr r2, [r0] - ldr r0, _08186ED4 - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _08186ECA - bl RecordedOpponentBufferExecCompleted -_08186ECA: - pop {r0} - bx r0 - .align 2, 0 -_08186ED0: .4byte gUnknown_2024174 -_08186ED4: .4byte gUnknown_2023D08 - thumb_func_end sub_08186EA8 - - thumb_func_start RecordedOpponentBufferExecCompleted -RecordedOpponentBufferExecCompleted: @ 0x08186ED8 - push {r4, lr} - sub sp, #4 - ldr r1, _08186F18 - ldr r4, _08186F1C - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08186F20 - str r1, [r0] - ldr r0, _08186F24 - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _08186F2C - bl GetMultiplayerId - mov r1, sp - strb r0, [r1] - movs r0, #2 - movs r1, #4 - mov r2, sp - bl PrepareBufferDataTransferLink - ldr r1, _08186F28 - ldrb r0, [r4] - lsls r0, r0, #9 - adds r0, r0, r1 - movs r1, #0x38 - strb r1, [r0] - b _08186F3E - .align 2, 0 -_08186F18: .4byte gUnknown_3005AC0 -_08186F1C: .4byte gUnknown_2023D08 -_08186F20: .4byte sub_08186234 -_08186F24: .4byte gUnknown_2022C90 -_08186F28: .4byte gUnknown_2022D08 -_08186F2C: - ldr r2, _08186F48 - ldr r1, _08186F4C - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - ldr r0, [r2] - bics r0, r1 - str r0, [r2] -_08186F3E: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08186F48: .4byte gUnknown_2023D0C -_08186F4C: .4byte gUnknown_82FACB4 - thumb_func_end RecordedOpponentBufferExecCompleted - - thumb_func_start RecordedOpponentHandleGetMonData -RecordedOpponentHandleGetMonData: @ 0x08186F50 - push {r4, r5, r6, lr} - sub sp, #0x100 - movs r6, #0 - ldr r1, _08186F7C - ldr r0, _08186F80 - ldrb r2, [r0] - lsls r0, r2, #9 - adds r1, #2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, #0 - bne _08186F88 - ldr r0, _08186F84 - lsls r1, r2, #1 - adds r1, r1, r0 - ldrb r0, [r1] - mov r1, sp - bl sub_08186FC4 - adds r6, r0, #0 - b _08186FAA - .align 2, 0 -_08186F7C: .4byte gUnknown_2022D08 -_08186F80: .4byte gUnknown_2023D08 -_08186F84: .4byte gUnknown_2023D12 -_08186F88: - ldrb r4, [r1] - movs r5, #0 -_08186F8C: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _08186FA2 - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - mov r2, sp - adds r1, r2, r6 - bl sub_08186FC4 - adds r6, r6, r0 -_08186FA2: - lsrs r4, r4, #1 - adds r5, #1 - cmp r5, #5 - ble _08186F8C -_08186FAA: - lsls r1, r6, #0x10 - lsrs r1, r1, #0x10 - movs r0, #1 - mov r2, sp - bl BtlController_EmitDataTransfer - bl RecordedOpponentBufferExecCompleted - add sp, #0x100 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedOpponentHandleGetMonData - - thumb_func_start sub_08186FC4 -sub_08186FC4: @ 0x08186FC4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x90 - adds r7, r1, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r6, #0 - ldr r2, _08186FF8 - ldr r3, _08186FFC - ldrb r0, [r3] - lsls r0, r0, #9 - adds r1, r2, #1 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0x3b - bls _08186FEE - bl _0818775A -_08186FEE: - lsls r0, r0, #2 - ldr r1, _08187000 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08186FF8: .4byte gUnknown_2022D08 -_08186FFC: .4byte gUnknown_2023D08 -_08187000: .4byte _08187004 -_08187004: @ jump table - .4byte _081870F4 @ case 0 - .4byte _08187318 @ case 1 - .4byte _08187328 @ case 2 - .4byte _08187338 @ case 3 - .4byte _081873A0 @ case 4 - .4byte _081873A0 @ case 5 - .4byte _081873A0 @ case 6 - .4byte _081873A0 @ case 7 - .4byte _081873BC @ case 8 - .4byte _081873F8 @ case 9 - .4byte _081873F8 @ case 10 - .4byte _081873F8 @ case 11 - .4byte _081873F8 @ case 12 - .4byte _0818775A @ case 13 - .4byte _0818775A @ case 14 - .4byte _0818775A @ case 15 - .4byte _0818775A @ case 16 - .4byte _08187414 @ case 17 - .4byte _08187424 @ case 18 - .4byte _08187454 @ case 19 - .4byte _08187464 @ case 20 - .4byte _08187474 @ case 21 - .4byte _08187484 @ case 22 - .4byte _08187494 @ case 23 - .4byte _081874A4 @ case 24 - .4byte _081874B4 @ case 25 - .4byte _081874C4 @ case 26 - .4byte _081874D4 @ case 27 - .4byte _081874E4 @ case 28 - .4byte _081874F4 @ case 29 - .4byte _08187504 @ case 30 - .4byte _08187514 @ case 31 - .4byte _08187564 @ case 32 - .4byte _08187574 @ case 33 - .4byte _08187584 @ case 34 - .4byte _08187594 @ case 35 - .4byte _081875A4 @ case 36 - .4byte _081875B4 @ case 37 - .4byte _081875C4 @ case 38 - .4byte _081875D4 @ case 39 - .4byte _081875E4 @ case 40 - .4byte _08187618 @ case 41 - .4byte _08187628 @ case 42 - .4byte _08187638 @ case 43 - .4byte _08187648 @ case 44 - .4byte _08187658 @ case 45 - .4byte _08187668 @ case 46 - .4byte _08187678 @ case 47 - .4byte _08187688 @ case 48 - .4byte _081876A8 @ case 49 - .4byte _081876B8 @ case 50 - .4byte _081876C8 @ case 51 - .4byte _081876D8 @ case 52 - .4byte _081876E8 @ case 53 - .4byte _081876F8 @ case 54 - .4byte _08187708 @ case 55 - .4byte _08187718 @ case 56 - .4byte _08187728 @ case 57 - .4byte _08187738 @ case 58 - .4byte _08187748 @ case 59 -_081870F4: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _08187308 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - mov r1, sp - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0xc - bl GetMonData - mov r1, sp - strh r0, [r1, #0x2e] - movs r6, #0 - add r0, sp, #0x24 - mov sb, r0 - movs r1, #0x3b - add r1, sp - mov sl, r1 - mov r2, sp - adds r2, #0x2b - str r2, [sp, #0x80] - mov r0, sp - adds r0, #0x2a - str r0, [sp, #0x7c] - mov r1, sp - adds r1, #0x68 - str r1, [sp, #0x8c] - adds r2, #5 - str r2, [sp, #0x84] - adds r0, #0x12 - str r0, [sp, #0x88] - mov r8, r4 - add r4, sp, #0xc -_08187140: - adds r1, r6, #0 - adds r1, #0xd - mov r0, r8 - bl GetMonData - strh r0, [r4] - adds r1, r6, #0 - adds r1, #0x11 - mov r0, r8 - bl GetMonData - mov r2, sb - adds r1, r2, r6 - strb r0, [r1] - adds r4, #2 - adds r6, #1 - cmp r6, #3 - ble _08187140 - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _08187308 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x15 - bl GetMonData - mov r1, sl - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x20 - bl GetMonData - ldr r2, [sp, #0x80] - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0x19 - bl GetMonData - str r0, [sp, #0x44] - adds r0, r4, #0 - movs r1, #0x27 - bl GetMonData - mov r3, sp - movs r5, #0x1f - ands r0, r5 - ldrb r2, [r3, #0x14] - movs r1, #0x20 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x14] - adds r0, r4, #0 - movs r1, #0x28 - bl GetMonData - mov r3, sp - movs r6, #0x1f - ands r0, r6 - lsls r0, r0, #5 - ldrh r2, [r3, #0x14] - ldr r1, _0818730C - ands r1, r2 - orrs r1, r0 - strh r1, [r3, #0x14] - adds r0, r4, #0 - movs r1, #0x29 - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, r0, #2 - ldrb r2, [r3, #0x15] - movs r1, #0x7d - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x15] - adds r0, r4, #0 - movs r1, #0x2a - bl GetMonData - movs r1, #0x1f - ands r1, r0 - lsls r1, r1, #0xf - ldr r0, [sp, #0x14] - ldr r2, _08187310 - ands r0, r2 - orrs r0, r1 - str r0, [sp, #0x14] - adds r0, r4, #0 - movs r1, #0x2b - bl GetMonData - mov r3, sp - ands r0, r6 - lsls r0, r0, #4 - ldrh r2, [r3, #0x16] - ldr r1, _08187314 - ands r1, r2 - orrs r1, r0 - strh r1, [r3, #0x16] - adds r0, r4, #0 - movs r1, #0x2c - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, r0, #1 - ldrb r2, [r3, #0x17] - movs r1, #0x3f - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x17] - adds r0, r4, #0 - movs r1, #0 - bl GetMonData - str r0, [sp, #0x48] - adds r0, r4, #0 - movs r1, #0x37 - bl GetMonData - str r0, [sp, #0x4c] - adds r0, r4, #0 - movs r1, #0x38 - bl GetMonData - ldr r1, [sp, #0x7c] - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - mov r1, sp - strh r0, [r1, #0x28] - adds r0, r4, #0 - movs r1, #0x3a - bl GetMonData - mov r1, sp - strh r0, [r1, #0x2c] - adds r0, r4, #0 - movs r1, #0x3b - bl GetMonData - mov r1, sp - strh r0, [r1, #2] - adds r0, r4, #0 - movs r1, #0x3c - bl GetMonData - mov r1, sp - strh r0, [r1, #4] - adds r0, r4, #0 - movs r1, #0x3d - bl GetMonData - mov r1, sp - strh r0, [r1, #6] - adds r0, r4, #0 - movs r1, #0x3e - bl GetMonData - mov r1, sp - strh r0, [r1, #8] - adds r0, r4, #0 - movs r1, #0x3f - bl GetMonData - mov r1, sp - strh r0, [r1, #0xa] - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - mov r3, sp - movs r1, #1 - ands r0, r1 - lsls r0, r0, #6 - ldrb r2, [r3, #0x17] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x17] - adds r0, r4, #0 - movs r1, #0x2e - bl GetMonData - mov r3, sp - lsls r0, r0, #7 - ldrb r2, [r3, #0x17] - movs r1, #0x7f - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x17] - adds r0, r4, #0 - movs r1, #1 - bl GetMonData - str r0, [sp, #0x54] - adds r0, r4, #0 - movs r1, #2 - ldr r2, [sp, #0x8c] - bl GetMonData - ldr r0, [sp, #0x84] - ldr r1, [sp, #0x8c] - bl StringCopy10 - adds r0, r4, #0 - movs r1, #7 - ldr r2, [sp, #0x88] - bl GetMonData - mov r2, sp - movs r6, #0 -_081872F8: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, #1 - cmp r6, #0x57 - bls _081872F8 - b _0818775A - .align 2, 0 -_08187308: .4byte gUnknown_20243E8 -_0818730C: .4byte 0xFFFFFC1F -_08187310: .4byte 0xFFF07FFF -_08187314: .4byte 0xFFFFFE0F -_08187318: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187324 - adds r0, r0, r1 - movs r1, #0xb - b _08187692 - .align 2, 0 -_08187324: .4byte gUnknown_20243E8 -_08187328: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187334 - adds r0, r0, r1 - movs r1, #0xc - b _08187692 - .align 2, 0 -_08187334: .4byte gUnknown_20243E8 -_08187338: - movs r6, #0 - add r2, sp, #0x58 - mov sb, r2 - add r0, sp, #0x60 - mov sl, r0 - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _0818739C - adds r4, r1, r0 - mov r8, sb -_0818734E: - adds r1, r6, #0 - adds r1, #0xd - adds r0, r4, #0 - bl GetMonData - mov r1, r8 - strh r0, [r1] - adds r1, r6, #0 - adds r1, #0x11 - adds r0, r4, #0 - bl GetMonData - mov r2, sl - adds r1, r2, r6 - strb r0, [r1] - movs r0, #2 - add r8, r0 - adds r6, #1 - cmp r6, #3 - ble _0818734E - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818739C - adds r0, r0, r1 - movs r1, #0x15 - bl GetMonData - mov r1, sb - strb r0, [r1, #0xc] - mov r2, sb - movs r6, #0 -_0818738C: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, #1 - cmp r6, #0xf - bls _0818738C - b _0818775A - .align 2, 0 -_0818739C: .4byte gUnknown_20243E8 -_081873A0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081873B8 - adds r0, r0, r1 - ldrb r1, [r3] - lsls r1, r1, #9 - adds r2, #1 - adds r1, r1, r2 - ldrb r1, [r1] - adds r1, #9 - b _08187692 - .align 2, 0 -_081873B8: .4byte gUnknown_20243E8 -_081873BC: - movs r6, #0 - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r2, _081873F4 - mov r8, r2 -_081873C8: - adds r1, r6, #0 - adds r1, #0x11 - mov r2, r8 - adds r0, r4, r2 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, #1 - cmp r6, #3 - ble _081873C8 - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081873F4 - adds r0, r0, r1 - movs r1, #0x15 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, #1 - b _0818775A - .align 2, 0 -_081873F4: .4byte gUnknown_20243E8 -_081873F8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187410 - adds r0, r0, r1 - ldrb r1, [r3] - lsls r1, r1, #9 - adds r2, #1 - adds r1, r1, r2 - ldrb r1, [r1] - adds r1, #8 - b _08187752 - .align 2, 0 -_08187410: .4byte gUnknown_20243E8 -_08187414: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187420 - adds r0, r0, r1 - movs r1, #1 - b _0818742E - .align 2, 0 -_08187420: .4byte gUnknown_20243E8 -_08187424: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187450 - adds r0, r0, r1 - movs r1, #0x19 -_0818742E: - bl GetMonData - adds r1, r0, #0 - strb r1, [r7] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - lsrs r0, r0, #8 - strb r0, [r7, #1] - movs r0, #0xff - lsls r0, r0, #0x10 - ands r0, r1 - lsrs r0, r0, #0x10 - strb r0, [r7, #2] - movs r6, #3 - b _0818775A - .align 2, 0 -_08187450: .4byte gUnknown_20243E8 -_08187454: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187460 - adds r0, r0, r1 - movs r1, #0x1a - b _08187752 - .align 2, 0 -_08187460: .4byte gUnknown_20243E8 -_08187464: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187470 - adds r0, r0, r1 - movs r1, #0x1b - b _08187752 - .align 2, 0 -_08187470: .4byte gUnknown_20243E8 -_08187474: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187480 - adds r0, r0, r1 - movs r1, #0x1c - b _08187752 - .align 2, 0 -_08187480: .4byte gUnknown_20243E8 -_08187484: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187490 - adds r0, r0, r1 - movs r1, #0x1d - b _08187752 - .align 2, 0 -_08187490: .4byte gUnknown_20243E8 -_08187494: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081874A0 - adds r0, r0, r1 - movs r1, #0x1e - b _08187752 - .align 2, 0 -_081874A0: .4byte gUnknown_20243E8 -_081874A4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081874B0 - adds r0, r0, r1 - movs r1, #0x1f - b _08187752 - .align 2, 0 -_081874B0: .4byte gUnknown_20243E8 -_081874B4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081874C0 - adds r0, r0, r1 - movs r1, #0x20 - b _08187752 - .align 2, 0 -_081874C0: .4byte gUnknown_20243E8 -_081874C4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081874D0 - adds r0, r0, r1 - movs r1, #0x22 - b _08187752 - .align 2, 0 -_081874D0: .4byte gUnknown_20243E8 -_081874D4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081874E0 - adds r0, r0, r1 - movs r1, #0x23 - b _08187752 - .align 2, 0 -_081874E0: .4byte gUnknown_20243E8 -_081874E4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081874F0 - adds r0, r0, r1 - movs r1, #0x24 - b _08187752 - .align 2, 0 -_081874F0: .4byte gUnknown_20243E8 -_081874F4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187500 - adds r0, r0, r1 - movs r1, #0x25 - b _08187752 - .align 2, 0 -_08187500: .4byte gUnknown_20243E8 -_08187504: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187510 - adds r0, r0, r1 - movs r1, #0x26 - b _08187752 - .align 2, 0 -_08187510: .4byte gUnknown_20243E8 -_08187514: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _08187560 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x27 - bl GetMonData - strb r0, [r7] - adds r0, r4, #0 - movs r1, #0x28 - bl GetMonData - strb r0, [r7, #1] - adds r0, r4, #0 - movs r1, #0x29 - bl GetMonData - strb r0, [r7, #2] - adds r0, r4, #0 - movs r1, #0x2a - bl GetMonData - strb r0, [r7, #3] - adds r0, r4, #0 - movs r1, #0x2b - bl GetMonData - strb r0, [r7, #4] - adds r0, r4, #0 - movs r1, #0x2c - bl GetMonData - strb r0, [r7, #5] - movs r6, #6 - b _0818775A - .align 2, 0 -_08187560: .4byte gUnknown_20243E8 -_08187564: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187570 - adds r0, r0, r1 - movs r1, #0x27 - b _08187752 - .align 2, 0 -_08187570: .4byte gUnknown_20243E8 -_08187574: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187580 - adds r0, r0, r1 - movs r1, #0x28 - b _08187752 - .align 2, 0 -_08187580: .4byte gUnknown_20243E8 -_08187584: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187590 - adds r0, r0, r1 - movs r1, #0x29 - b _08187752 - .align 2, 0 -_08187590: .4byte gUnknown_20243E8 -_08187594: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081875A0 - adds r0, r0, r1 - movs r1, #0x2a - b _08187752 - .align 2, 0 -_081875A0: .4byte gUnknown_20243E8 -_081875A4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081875B0 - adds r0, r0, r1 - movs r1, #0x2b - b _08187752 - .align 2, 0 -_081875B0: .4byte gUnknown_20243E8 -_081875B4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081875C0 - adds r0, r0, r1 - movs r1, #0x2c - b _08187752 - .align 2, 0 -_081875C0: .4byte gUnknown_20243E8 -_081875C4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081875D0 - adds r0, r0, r1 - movs r1, #0 - b _081875EE - .align 2, 0 -_081875D0: .4byte gUnknown_20243E8 -_081875D4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081875E0 - adds r0, r0, r1 - movs r1, #9 - b _08187692 - .align 2, 0 -_081875E0: .4byte gUnknown_20243E8 -_081875E4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187614 - adds r0, r0, r1 - movs r1, #0x37 -_081875EE: - bl GetMonData - adds r1, r0, #0 - strb r1, [r7] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - lsrs r0, r0, #8 - strb r0, [r7, #1] - movs r0, #0xff - lsls r0, r0, #0x10 - ands r0, r1 - lsrs r0, r0, #0x10 - strb r0, [r7, #2] - lsrs r0, r1, #0x18 - strb r0, [r7, #3] - movs r6, #4 - b _0818775A - .align 2, 0 -_08187614: .4byte gUnknown_20243E8 -_08187618: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187624 - adds r0, r0, r1 - movs r1, #0x38 - b _08187752 - .align 2, 0 -_08187624: .4byte gUnknown_20243E8 -_08187628: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187634 - adds r0, r0, r1 - movs r1, #0x39 - b _08187692 - .align 2, 0 -_08187634: .4byte gUnknown_20243E8 -_08187638: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187644 - adds r0, r0, r1 - movs r1, #0x3a - b _08187692 - .align 2, 0 -_08187644: .4byte gUnknown_20243E8 -_08187648: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187654 - adds r0, r0, r1 - movs r1, #0x3b - b _08187692 - .align 2, 0 -_08187654: .4byte gUnknown_20243E8 -_08187658: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187664 - adds r0, r0, r1 - movs r1, #0x3c - b _08187692 - .align 2, 0 -_08187664: .4byte gUnknown_20243E8 -_08187668: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187674 - adds r0, r0, r1 - movs r1, #0x3d - b _08187692 - .align 2, 0 -_08187674: .4byte gUnknown_20243E8 -_08187678: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187684 - adds r0, r0, r1 - movs r1, #0x3e - b _08187692 - .align 2, 0 -_08187684: .4byte gUnknown_20243E8 -_08187688: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081876A4 - adds r0, r0, r1 - movs r1, #0x3f -_08187692: - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - strb r0, [r7] - lsrs r0, r0, #8 - strb r0, [r7, #1] - movs r6, #2 - b _0818775A - .align 2, 0 -_081876A4: .4byte gUnknown_20243E8 -_081876A8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081876B4 - adds r0, r0, r1 - movs r1, #0x16 - b _08187752 - .align 2, 0 -_081876B4: .4byte gUnknown_20243E8 -_081876B8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081876C4 - adds r0, r0, r1 - movs r1, #0x17 - b _08187752 - .align 2, 0 -_081876C4: .4byte gUnknown_20243E8 -_081876C8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081876D4 - adds r0, r0, r1 - movs r1, #0x18 - b _08187752 - .align 2, 0 -_081876D4: .4byte gUnknown_20243E8 -_081876D8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081876E4 - adds r0, r0, r1 - movs r1, #0x21 - b _08187752 - .align 2, 0 -_081876E4: .4byte gUnknown_20243E8 -_081876E8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081876F4 - adds r0, r0, r1 - movs r1, #0x2f - b _08187752 - .align 2, 0 -_081876F4: .4byte gUnknown_20243E8 -_081876F8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187704 - adds r0, r0, r1 - movs r1, #0x30 - b _08187752 - .align 2, 0 -_08187704: .4byte gUnknown_20243E8 -_08187708: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187714 - adds r0, r0, r1 - movs r1, #0x32 - b _08187752 - .align 2, 0 -_08187714: .4byte gUnknown_20243E8 -_08187718: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187724 - adds r0, r0, r1 - movs r1, #0x33 - b _08187752 - .align 2, 0 -_08187724: .4byte gUnknown_20243E8 -_08187728: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187734 - adds r0, r0, r1 - movs r1, #0x34 - b _08187752 - .align 2, 0 -_08187734: .4byte gUnknown_20243E8 -_08187738: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187744 - adds r0, r0, r1 - movs r1, #0x35 - b _08187752 - .align 2, 0 -_08187744: .4byte gUnknown_20243E8 -_08187748: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818776C - adds r0, r0, r1 - movs r1, #0x36 -_08187752: - bl GetMonData - strb r0, [r7] - movs r6, #1 -_0818775A: - adds r0, r6, #0 - add sp, #0x90 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0818776C: .4byte gUnknown_20243E8 - thumb_func_end sub_08186FC4 - - thumb_func_start sub_08187770 -sub_08187770: @ 0x08187770 - push {lr} - bl RecordedOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08187770 - - thumb_func_start sub_0818777C -sub_0818777C: @ 0x0818777C - push {r4, r5, lr} - ldr r1, _081877A0 - ldr r0, _081877A4 - ldrb r2, [r0] - lsls r0, r2, #9 - adds r1, #2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, #0 - bne _081877AC - ldr r0, _081877A8 - lsls r1, r2, #1 - adds r1, r1, r0 - ldrb r0, [r1] - bl SetRecordedOpponentMonData - b _081877CA - .align 2, 0 -_081877A0: .4byte gUnknown_2022D08 -_081877A4: .4byte gUnknown_2023D08 -_081877A8: .4byte gUnknown_2023D12 -_081877AC: - ldrb r4, [r1] - movs r5, #0 -_081877B0: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _081877BE - adds r0, r5, #0 - bl SetRecordedOpponentMonData -_081877BE: - lsrs r4, r4, #1 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #5 - bls _081877B0 -_081877CA: - bl RecordedOpponentBufferExecCompleted - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_0818777C - - thumb_func_start SetRecordedOpponentMonData -SetRecordedOpponentMonData: @ 0x081877D4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x38 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r3, _0818780C - ldrb r0, [r3] - lsls r0, r0, #9 - ldr r2, _08187810 - adds r4, r0, r2 - adds r7, r4, #0 - subs r1, r2, #2 - adds r0, r0, r1 - ldrb r0, [r0] - adds r6, r3, #0 - adds r3, r2, #0 - cmp r0, #0x3b - bls _08187802 - bl _081880E0 -_08187802: - lsls r0, r0, #2 - ldr r1, _08187814 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0818780C: .4byte gUnknown_2023D08 -_08187810: .4byte gUnknown_2022D0B -_08187814: .4byte _08187818 -_08187818: @ jump table - .4byte _08187908 @ case 0 - .4byte _08187AA0 @ case 1 - .4byte _08187ABC @ case 2 - .4byte _08187AD8 @ case 3 - .4byte _08187B2C @ case 4 - .4byte _08187B2C @ case 5 - .4byte _08187B2C @ case 6 - .4byte _08187B2C @ case 7 - .4byte _08187B4C @ case 8 - .4byte _08187BB4 @ case 9 - .4byte _08187BB4 @ case 10 - .4byte _08187BB4 @ case 11 - .4byte _08187BB4 @ case 12 - .4byte _081880E0 @ case 13 - .4byte _081880E0 @ case 14 - .4byte _081880E0 @ case 15 - .4byte _081880E0 @ case 16 - .4byte _08187BDC @ case 17 - .4byte _08187BF8 @ case 18 - .4byte _08187C14 @ case 19 - .4byte _08187C30 @ case 20 - .4byte _08187C4C @ case 21 - .4byte _08187C68 @ case 22 - .4byte _08187C84 @ case 23 - .4byte _08187CA0 @ case 24 - .4byte _08187CBC @ case 25 - .4byte _08187CD8 @ case 26 - .4byte _08187CF4 @ case 27 - .4byte _08187D10 @ case 28 - .4byte _08187D2C @ case 29 - .4byte _08187D48 @ case 30 - .4byte _08187D64 @ case 31 - .4byte _08187DD8 @ case 32 - .4byte _08187DF4 @ case 33 - .4byte _08187E10 @ case 34 - .4byte _08187E2C @ case 35 - .4byte _08187E48 @ case 36 - .4byte _08187E64 @ case 37 - .4byte _08187E80 @ case 38 - .4byte _08187E9C @ case 39 - .4byte _08187EB8 @ case 40 - .4byte _08187ED4 @ case 41 - .4byte _08187EF0 @ case 42 - .4byte _08187F0C @ case 43 - .4byte _08187F28 @ case 44 - .4byte _08187F44 @ case 45 - .4byte _08187F60 @ case 46 - .4byte _08187F7C @ case 47 - .4byte _08187F98 @ case 48 - .4byte _08187FB4 @ case 49 - .4byte _08187FD0 @ case 50 - .4byte _08187FEC @ case 51 - .4byte _08188008 @ case 52 - .4byte _08188024 @ case 53 - .4byte _08188040 @ case 54 - .4byte _0818805C @ case 55 - .4byte _08188078 @ case 56 - .4byte _08188094 @ case 57 - .4byte _081880B0 @ case 58 - .4byte _081880CC @ case 59 -_08187908: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _08187A9C - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0xb - adds r2, r7, #0 - bl SetMonData - adds r2, r7, #0 - adds r2, #0x2e - adds r0, r4, #0 - movs r1, #0xc - bl SetMonData - movs r0, #0 - mov r8, r0 - movs r0, #0x3b - adds r0, r0, r7 - mov sl, r0 - adds r0, r7, #0 - adds r0, #0x2b - str r0, [sp, #0x20] - adds r0, #0x19 - str r0, [sp, #0x28] - adds r0, #4 - str r0, [sp, #0x2c] - adds r0, #4 - str r0, [sp, #0x30] - subs r0, #0x22 - str r0, [sp, #0x1c] - subs r0, #2 - str r0, [sp, #0x18] - adds r0, #4 - str r0, [sp, #0x24] - adds r0, r7, #2 - str r0, [sp, #4] - adds r0, r7, #4 - str r0, [sp, #8] - adds r0, r7, #6 - str r0, [sp, #0xc] - adds r0, #2 - str r0, [sp, #0x10] - adds r0, #2 - str r0, [sp, #0x14] - mov sb, r4 - adds r6, r7, #0 - adds r6, #0x24 - adds r4, r7, #0 - adds r4, #0xc -_0818796E: - mov r1, r8 - adds r1, #0xd - mov r0, sb - adds r2, r4, #0 - bl SetMonData - mov r1, r8 - adds r1, #0x11 - mov r0, sb - adds r2, r6, #0 - bl SetMonData - adds r6, #1 - adds r4, #2 - movs r0, #1 - add r8, r0 - mov r0, r8 - cmp r0, #3 - ble _0818796E - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _08187A9C - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x15 - mov r2, sl - bl SetMonData - adds r0, r4, #0 - movs r1, #0x20 - ldr r2, [sp, #0x20] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x19 - ldr r2, [sp, #0x28] - bl SetMonData - ldrb r0, [r7, #0x14] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1b - mov r1, sp - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x27 - mov r2, sp - bl SetMonData - mov r1, sp - ldrh r0, [r7, #0x14] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x28 - mov r2, sp - bl SetMonData - mov r1, sp - ldrb r0, [r7, #0x15] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x29 - mov r2, sp - bl SetMonData - mov r1, sp - ldr r0, [r7, #0x14] - lsls r0, r0, #0xc - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x2a - mov r2, sp - bl SetMonData - mov r1, sp - ldrh r0, [r7, #0x16] - lsls r0, r0, #0x17 - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x2b - mov r2, sp - bl SetMonData - mov r1, sp - ldrb r0, [r7, #0x17] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x2c - mov r2, sp - bl SetMonData - adds r0, r4, #0 - movs r1, #0 - ldr r2, [sp, #0x2c] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x37 - ldr r2, [sp, #0x30] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x38 - ldr r2, [sp, #0x1c] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x39 - ldr r2, [sp, #0x18] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3a - ldr r2, [sp, #0x24] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3b - ldr r2, [sp, #4] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3c - ldr r2, [sp, #8] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3d - ldr r2, [sp, #0xc] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3e - ldr r2, [sp, #0x10] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3f - ldr r2, [sp, #0x14] - bl SetMonData - b _081880E0 - .align 2, 0 -_08187A9C: .4byte gUnknown_20243E8 -_08187AA0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187AB8 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0xb - bl SetMonData - b _081880E0 - .align 2, 0 -_08187AB8: .4byte gUnknown_20243E8 -_08187ABC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187AD4 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0xc - bl SetMonData - b _081880E0 - .align 2, 0 -_08187AD4: .4byte gUnknown_20243E8 -_08187AD8: - movs r0, #0 - mov r8, r0 - movs r0, #0xc - adds r0, r0, r4 - mov sb, r0 - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _08187B28 - adds r7, r1, r0 - adds r6, r4, #0 - adds r6, #8 -_08187AF0: - mov r1, r8 - adds r1, #0xd - adds r0, r7, #0 - adds r2, r4, #0 - bl SetMonData - mov r1, r8 - adds r1, #0x11 - adds r0, r7, #0 - adds r2, r6, #0 - bl SetMonData - adds r6, #1 - adds r4, #2 - movs r0, #1 - add r8, r0 - mov r0, r8 - cmp r0, #3 - ble _08187AF0 - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187B28 - adds r0, r0, r1 - movs r1, #0x15 - mov r2, sb - bl SetMonData - b _081880E0 - .align 2, 0 -_08187B28: .4byte gUnknown_20243E8 -_08187B2C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187B44 - adds r0, r0, r1 - ldr r3, _08187B48 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r1, r3, #1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, #9 - b _08187BCA - .align 2, 0 -_08187B44: .4byte gUnknown_20243E8 -_08187B48: .4byte gUnknown_2022D08 -_08187B4C: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _08187BB0 - adds r4, r4, r0 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - adds r0, r4, #0 - movs r1, #0x11 - str r3, [sp, #0x34] - bl SetMonData - ldrb r2, [r6] - lsls r2, r2, #9 - ldr r3, [sp, #0x34] - adds r0, r3, #1 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x12 - bl SetMonData - ldrb r2, [r6] - lsls r2, r2, #9 - ldr r3, [sp, #0x34] - adds r0, r3, #2 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x13 - bl SetMonData - ldrb r2, [r6] - lsls r2, r2, #9 - ldr r3, [sp, #0x34] - adds r0, r3, #3 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x14 - bl SetMonData - ldrb r2, [r6] - lsls r2, r2, #9 - ldr r3, [sp, #0x34] - adds r0, r3, #4 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x15 - bl SetMonData - b _081880E0 - .align 2, 0 -_08187BB0: .4byte gUnknown_20243E8 -_08187BB4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187BD4 - adds r0, r0, r1 - ldr r3, _08187BD8 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r1, r3, #1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, #8 -_08187BCA: - adds r3, #3 - adds r2, r2, r3 - bl SetMonData - b _081880E0 - .align 2, 0 -_08187BD4: .4byte gUnknown_20243E8 -_08187BD8: .4byte gUnknown_2022D08 -_08187BDC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187BF4 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #1 - bl SetMonData - b _081880E0 - .align 2, 0 -_08187BF4: .4byte gUnknown_20243E8 -_08187BF8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187C10 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x19 - bl SetMonData - b _081880E0 - .align 2, 0 -_08187C10: .4byte gUnknown_20243E8 -_08187C14: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187C2C - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x1a - bl SetMonData - b _081880E0 - .align 2, 0 -_08187C2C: .4byte gUnknown_20243E8 -_08187C30: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187C48 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x1b - bl SetMonData - b _081880E0 - .align 2, 0 -_08187C48: .4byte gUnknown_20243E8 -_08187C4C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187C64 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x1c - bl SetMonData - b _081880E0 - .align 2, 0 -_08187C64: .4byte gUnknown_20243E8 -_08187C68: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187C80 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x1d - bl SetMonData - b _081880E0 - .align 2, 0 -_08187C80: .4byte gUnknown_20243E8 -_08187C84: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187C9C - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x1e - bl SetMonData - b _081880E0 - .align 2, 0 -_08187C9C: .4byte gUnknown_20243E8 -_08187CA0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187CB8 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x1f - bl SetMonData - b _081880E0 - .align 2, 0 -_08187CB8: .4byte gUnknown_20243E8 -_08187CBC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187CD4 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x20 - bl SetMonData - b _081880E0 - .align 2, 0 -_08187CD4: .4byte gUnknown_20243E8 -_08187CD8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187CF0 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x22 - bl SetMonData - b _081880E0 - .align 2, 0 -_08187CF0: .4byte gUnknown_20243E8 -_08187CF4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187D0C - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x23 - bl SetMonData - b _081880E0 - .align 2, 0 -_08187D0C: .4byte gUnknown_20243E8 -_08187D10: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187D28 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x24 - bl SetMonData - b _081880E0 - .align 2, 0 -_08187D28: .4byte gUnknown_20243E8 -_08187D2C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187D44 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x25 - bl SetMonData - b _081880E0 - .align 2, 0 -_08187D44: .4byte gUnknown_20243E8 -_08187D48: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187D60 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x26 - bl SetMonData - b _081880E0 - .align 2, 0 -_08187D60: .4byte gUnknown_20243E8 -_08187D64: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _08187DD4 - adds r4, r4, r0 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - adds r0, r4, #0 - movs r1, #0x27 - str r3, [sp, #0x34] - bl SetMonData - ldrb r2, [r6] - lsls r2, r2, #9 - ldr r3, [sp, #0x34] - adds r0, r3, #1 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x28 - bl SetMonData - ldrb r2, [r6] - lsls r2, r2, #9 - ldr r3, [sp, #0x34] - adds r0, r3, #2 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x29 - bl SetMonData - ldrb r2, [r6] - lsls r2, r2, #9 - ldr r3, [sp, #0x34] - adds r0, r3, #3 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x2a - bl SetMonData - ldrb r2, [r6] - lsls r2, r2, #9 - ldr r3, [sp, #0x34] - adds r0, r3, #4 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x2b - bl SetMonData - ldrb r2, [r6] - lsls r2, r2, #9 - ldr r3, [sp, #0x34] - adds r0, r3, #5 - adds r2, r2, r0 - adds r0, r4, #0 - b _08187E72 - .align 2, 0 -_08187DD4: .4byte gUnknown_20243E8 -_08187DD8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187DF0 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x27 - bl SetMonData - b _081880E0 - .align 2, 0 -_08187DF0: .4byte gUnknown_20243E8 -_08187DF4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187E0C - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x28 - bl SetMonData - b _081880E0 - .align 2, 0 -_08187E0C: .4byte gUnknown_20243E8 -_08187E10: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187E28 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x29 - bl SetMonData - b _081880E0 - .align 2, 0 -_08187E28: .4byte gUnknown_20243E8 -_08187E2C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187E44 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x2a - bl SetMonData - b _081880E0 - .align 2, 0 -_08187E44: .4byte gUnknown_20243E8 -_08187E48: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187E60 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x2b - bl SetMonData - b _081880E0 - .align 2, 0 -_08187E60: .4byte gUnknown_20243E8 -_08187E64: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187E7C - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 -_08187E72: - movs r1, #0x2c - bl SetMonData - b _081880E0 - .align 2, 0 -_08187E7C: .4byte gUnknown_20243E8 -_08187E80: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187E98 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0 - bl SetMonData - b _081880E0 - .align 2, 0 -_08187E98: .4byte gUnknown_20243E8 -_08187E9C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187EB4 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #9 - bl SetMonData - b _081880E0 - .align 2, 0 -_08187EB4: .4byte gUnknown_20243E8 -_08187EB8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187ED0 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x37 - bl SetMonData - b _081880E0 - .align 2, 0 -_08187ED0: .4byte gUnknown_20243E8 -_08187ED4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187EEC - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x38 - bl SetMonData - b _081880E0 - .align 2, 0 -_08187EEC: .4byte gUnknown_20243E8 -_08187EF0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187F08 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x39 - bl SetMonData - b _081880E0 - .align 2, 0 -_08187F08: .4byte gUnknown_20243E8 -_08187F0C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187F24 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x3a - bl SetMonData - b _081880E0 - .align 2, 0 -_08187F24: .4byte gUnknown_20243E8 -_08187F28: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187F40 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x3b - bl SetMonData - b _081880E0 - .align 2, 0 -_08187F40: .4byte gUnknown_20243E8 -_08187F44: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187F5C - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x3c - bl SetMonData - b _081880E0 - .align 2, 0 -_08187F5C: .4byte gUnknown_20243E8 -_08187F60: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187F78 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x3d - bl SetMonData - b _081880E0 - .align 2, 0 -_08187F78: .4byte gUnknown_20243E8 -_08187F7C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187F94 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x3e - bl SetMonData - b _081880E0 - .align 2, 0 -_08187F94: .4byte gUnknown_20243E8 -_08187F98: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187FB0 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x3f - bl SetMonData - b _081880E0 - .align 2, 0 -_08187FB0: .4byte gUnknown_20243E8 -_08187FB4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187FCC - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x16 - bl SetMonData - b _081880E0 - .align 2, 0 -_08187FCC: .4byte gUnknown_20243E8 -_08187FD0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08187FE8 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x17 - bl SetMonData - b _081880E0 - .align 2, 0 -_08187FE8: .4byte gUnknown_20243E8 -_08187FEC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08188004 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x18 - bl SetMonData - b _081880E0 - .align 2, 0 -_08188004: .4byte gUnknown_20243E8 -_08188008: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08188020 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x21 - bl SetMonData - b _081880E0 - .align 2, 0 -_08188020: .4byte gUnknown_20243E8 -_08188024: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818803C - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x2f - bl SetMonData - b _081880E0 - .align 2, 0 -_0818803C: .4byte gUnknown_20243E8 -_08188040: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08188058 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x30 - bl SetMonData - b _081880E0 - .align 2, 0 -_08188058: .4byte gUnknown_20243E8 -_0818805C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08188074 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x32 - bl SetMonData - b _081880E0 - .align 2, 0 -_08188074: .4byte gUnknown_20243E8 -_08188078: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _08188090 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x33 - bl SetMonData - b _081880E0 - .align 2, 0 -_08188090: .4byte gUnknown_20243E8 -_08188094: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081880AC - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x34 - bl SetMonData - b _081880E0 - .align 2, 0 -_081880AC: .4byte gUnknown_20243E8 -_081880B0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081880C8 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x35 - bl SetMonData - b _081880E0 - .align 2, 0 -_081880C8: .4byte gUnknown_20243E8 -_081880CC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081880F0 - adds r0, r0, r1 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r2, r2, r3 - movs r1, #0x36 - bl SetMonData -_081880E0: - add sp, #0x38 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081880F0: .4byte gUnknown_20243E8 - thumb_func_end SetRecordedOpponentMonData - - thumb_func_start sub_081880F4 -sub_081880F4: @ 0x081880F4 - push {r4, r5, r6, r7, lr} - ldr r1, _08188158 - ldr r7, _0818815C - ldrb r2, [r7] - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - adds r3, r1, #0 - muls r3, r0, r3 - ldr r4, _08188160 - lsls r2, r2, #9 - adds r0, r4, #1 - adds r0, r2, r0 - ldrb r0, [r0] - ldr r1, _08188164 - adds r0, r0, r1 - adds r5, r3, r0 - movs r3, #0 - adds r0, r4, #2 - adds r2, r2, r0 - ldrb r2, [r2] - cmp r3, r2 - bhs _0818814C - adds r6, r4, #0 - adds r2, r7, #0 - adds r4, r0, #0 -_0818812A: - adds r1, r5, r3 - ldrb r0, [r2] - lsls r0, r0, #9 - adds r0, #3 - adds r0, r3, r0 - adds r0, r0, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldrb r0, [r2] - lsls r0, r0, #9 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r3, r0 - blo _0818812A -_0818814C: - bl RecordedOpponentBufferExecCompleted - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08188158: .4byte gUnknown_2023D12 -_0818815C: .4byte gUnknown_2023D08 -_08188160: .4byte gUnknown_2022D08 -_08188164: .4byte gUnknown_20243E8 - thumb_func_end sub_081880F4 - - thumb_func_start RecordedOpponentHandleLoadMonSprite -RecordedOpponentHandleLoadMonSprite: @ 0x08188168 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r7, _08188290 - ldr r6, _08188294 - ldrb r0, [r6] - lsls r0, r0, #1 - adds r0, r0, r7 - ldrh r0, [r0] - movs r1, #0x64 - mov sl, r1 - mov r2, sl - muls r2, r0, r2 - adds r0, r2, #0 - ldr r1, _08188298 - mov sb, r1 - add r0, sb - movs r1, #0xb - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldrb r1, [r6] - lsls r0, r1, #1 - adds r0, r0, r7 - ldrh r0, [r0] - mov r2, sl - muls r2, r0, r2 - adds r0, r2, #0 - add r0, sb - bl BattleLoadOpponentMonSpriteGfx - ldrb r0, [r6] - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl SetMultiuseSpriteTemplateToPokemon - ldr r0, _0818829C - mov r8, r0 - ldrb r0, [r6] - movs r1, #2 - bl GetBattlerSpriteCoord - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldrb r0, [r6] - bl GetBattlerSpriteDefault_Y - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldrb r0, [r6] - bl GetBattlerSpriteSubpriority - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r0, r8 - adds r1, r5, #0 - adds r2, r4, #0 - bl CreateSprite - ldr r4, _081882A0 - ldrb r1, [r6] - adds r1, r1, r4 - strb r0, [r1] - ldr r5, _081882A4 - ldrb r0, [r6] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _081882A8 - strh r1, [r0, #0x24] - ldrb r2, [r6] - adds r0, r2, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r2, [r0, #0x2e] - ldrb r3, [r6] - adds r0, r3, r4 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - lsls r3, r3, #4 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #5] - ldrb r2, [r6] - adds r4, r2, r4 - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _081882AC - adds r2, r2, r1 - ldrb r1, [r2] - bl StartSpriteAnim - ldrb r4, [r6] - lsls r0, r4, #1 - adds r0, r0, r7 - ldrh r0, [r0] - mov r1, sl - muls r1, r0, r1 - adds r0, r1, #0 - add r0, sb - movs r1, #0xb - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl SetBattlerShadowSpriteCallback - ldr r1, _081882B0 - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081882B4 - str r1, [r0] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08188290: .4byte gUnknown_2023D12 -_08188294: .4byte gUnknown_2023D08 -_08188298: .4byte gUnknown_20243E8 -_0818829C: .4byte gUnknown_2024640 -_081882A0: .4byte gUnknown_2023E88 -_081882A4: .4byte gUnknown_20205AC -_081882A8: .4byte 0x0000FF10 -_081882AC: .4byte gUnknown_2024188 -_081882B0: .4byte gUnknown_3005AC0 -_081882B4: .4byte sub_08186974 - thumb_func_end RecordedOpponentHandleLoadMonSprite - - thumb_func_start sub_081882B8 -sub_081882B8: @ 0x081882B8 - push {r4, lr} - ldr r1, _081882F0 - ldr r4, _081882F4 - ldrb r0, [r4] - lsls r2, r0, #1 - adds r2, r2, r1 - ldr r3, _081882F8 - lsls r0, r0, #9 - adds r1, r3, #1 - adds r0, r0, r1 - ldrb r0, [r0] - strh r0, [r2] - ldrb r0, [r4] - lsls r1, r0, #9 - adds r3, #2 - adds r1, r1, r3 - ldrb r1, [r1] - bl sub_08188304 - ldr r1, _081882FC - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08188300 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081882F0: .4byte gUnknown_2023D12 -_081882F4: .4byte gUnknown_2023D08 -_081882F8: .4byte gUnknown_2022D08 -_081882FC: .4byte gUnknown_3005AC0 -_08188300: .4byte sub_08186DB0 - thumb_func_end sub_081882B8 - - thumb_func_start sub_08188304 -sub_08188304: @ 0x08188304 - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r6, #0 - bl ClearTemporarySpeciesSpriteData - ldr r0, _0818846C - lsls r4, r6, #1 - adds r4, r4, r0 - ldr r0, _08188470 - lsls r1, r6, #9 - adds r0, #1 - adds r1, r1, r0 - ldrb r0, [r1] - strh r0, [r4] - ldrh r0, [r4] - movs r1, #0x64 - mov sb, r1 - mov r1, sb - muls r1, r0, r1 - adds r0, r1, #0 - ldr r5, _08188474 - adds r0, r0, r5 - movs r1, #0xb - bl GetMonData - mov r8, r0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - ldr r0, _08188478 - bl CreateInvisibleSpriteWithCallback - ldr r1, _0818847C - mov sl, r1 - add sl, r6 - mov r1, sl - strb r0, [r1] - ldrh r0, [r4] - mov r1, sb - muls r1, r0, r1 - adds r0, r1, #0 - adds r0, r0, r5 - adds r1, r6, #0 - bl BattleLoadOpponentMonSpriteGfx - adds r0, r6, #0 - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r0, r8 - bl SetMultiuseSpriteTemplateToPokemon - ldr r0, _08188480 - mov sb, r0 - adds r0, r6, #0 - movs r1, #2 - bl GetBattlerSpriteCoord - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - adds r0, r6, #0 - bl GetBattlerSpriteDefault_Y - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r6, #0 - bl GetBattlerSpriteSubpriority - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r0, sb - adds r1, r5, #0 - adds r2, r4, #0 - bl CreateSprite - ldr r4, _08188484 - adds r4, r6, r4 - strb r0, [r4] - ldr r5, _08188488 - mov r0, sl - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r1, [r4] - strh r1, [r0, #0x30] - mov r0, sl - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r6, [r0, #0x32] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r6, [r0, #0x2e] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - mov r1, r8 - strh r1, [r0, #0x32] - ldrb r0, [r4] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - lsls r3, r6, #4 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #5] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _0818848C - adds r6, r6, r1 - ldrb r1, [r6] - bl StartSpriteAnim - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r5, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _08188490 - str r1, [r0] - movs r0, #0 - movs r1, #0xfe - bl DoPokeballSendOutAnimation - mov r1, sl - ldrb r2, [r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r1, #0x2e] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0818846C: .4byte gUnknown_2023D12 -_08188470: .4byte gUnknown_2022D08 -_08188474: .4byte gUnknown_20243E8 -_08188478: .4byte sub_0805D330 -_0818847C: .4byte gUnknown_3005ADC -_08188480: .4byte gUnknown_2024640 -_08188484: .4byte gUnknown_2023E88 -_08188488: .4byte gUnknown_20205AC -_0818848C: .4byte gUnknown_2024188 -_08188490: .4byte sub_08007140 - thumb_func_end sub_08188304 - - thumb_func_start sub_08188494 -sub_08188494: @ 0x08188494 - push {r4, r5, r6, lr} - ldr r1, _081884C8 - ldr r6, _081884CC - ldrb r2, [r6] - lsls r0, r2, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r3, [r0] - cmp r3, #0 - bne _081884DC - ldr r0, _081884D0 - ldr r0, [r0] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - strb r3, [r0, #4] - ldr r1, _081884D4 - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081884D8 - str r1, [r0] - b _08188518 - .align 2, 0 -_081884C8: .4byte gUnknown_2022D08 -_081884CC: .4byte gUnknown_2023D08 -_081884D0: .4byte gUnknown_2024174 -_081884D4: .4byte gUnknown_3005AC0 -_081884D8: .4byte sub_0818852C -_081884DC: - ldr r5, _08188520 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _08188524 - adds r0, r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - ldrb r0, [r6] - bl HideBattlerShadowSprite - ldr r1, _08188528 - ldrb r0, [r6] - adds r0, r0, r1 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible - bl RecordedOpponentBufferExecCompleted -_08188518: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08188520: .4byte gUnknown_2023E88 -_08188524: .4byte gUnknown_20205AC -_08188528: .4byte gUnknown_3005AD0 - thumb_func_end sub_08188494 - - thumb_func_start sub_0818852C -sub_0818852C: @ 0x0818852C - push {r4, r5, r6, lr} - ldr r6, _0818854C - ldr r4, [r6] - ldr r5, _08188550 - ldrb r2, [r5] - ldr r1, [r4, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r3, r0, r1 - ldrb r0, [r3, #4] - cmp r0, #0 - beq _08188554 - cmp r0, #1 - beq _08188582 - b _081885AA - .align 2, 0 -_0818854C: .4byte gUnknown_2024174 -_08188550: .4byte gUnknown_2023D08 -_08188554: - ldr r1, [r4] - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0818856E - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #5 - bl InitAndLaunchSpecialAnimation -_0818856E: - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #1 - strb r1, [r0, #4] - b _081885AA -_08188582: - ldrb r1, [r3] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _081885AA - strb r0, [r3, #4] - ldrb r2, [r5] - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #2 - bl InitAndLaunchSpecialAnimation - ldr r1, _081885B0 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081885B4 - str r1, [r0] -_081885AA: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081885B0: .4byte gUnknown_3005AC0 -_081885B4: .4byte sub_08186AC8 - thumb_func_end sub_0818852C - - thumb_func_start RecordedOpponentHandleDrawTrainerPic -RecordedOpponentHandleDrawTrainerPic: @ 0x081885B8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r5, _081885F8 - ldr r0, [r5] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08188622 - ldr r4, _081885FC - ldrb r0, [r4] - bl sub_080A630C - movs r1, #2 - ands r1, r0 - movs r7, #0xc8 - cmp r1, #0 - beq _081885E0 - movs r7, #0x98 -_081885E0: - ldr r0, [r5] - movs r1, #0x80 - lsls r1, r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08188618 - ldrb r0, [r4] - cmp r0, #1 - bne _08188604 - ldr r0, _08188600 - b _08188606 - .align 2, 0 -_081885F8: .4byte gUnknown_2022C90 -_081885FC: .4byte gUnknown_2023D08 -_08188600: .4byte gUnknown_203886A -_08188604: - ldr r0, _08188614 -_08188606: - ldrh r0, [r0] - bl GetFrontierTrainerFrontSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _08188658 - .align 2, 0 -_08188614: .4byte gUnknown_203886C -_08188618: - bl GetActiveBattlerLinkPlayerGender - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _08188650 -_08188622: - movs r7, #0xb0 - ldr r0, _08188638 - ldrh r1, [r0] - movs r0, #0xc0 - lsls r0, r0, #4 - cmp r1, r0 - bne _0818863C - bl sub_08068688 - b _08188654 - .align 2, 0 -_08188638: .4byte gUnknown_203886A -_0818863C: - ldr r2, _0818873C - ldr r0, _08188740 - ldrb r0, [r0] - movs r1, #1 - eors r1, r0 - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #0x13] -_08188650: - bl PlayerGenderToFrontTrainerPicId -_08188654: - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 -_08188658: - mov r8, r0 - ldr r5, _08188744 - ldrb r1, [r5] - bl DecompressTrainerFrontPic - ldrb r0, [r5] - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r0, r8 - bl SetMultiuseSpriteTemplateToTrainerBack - ldr r6, _08188748 - mov sb, r7 - ldr r1, _0818874C - mov r2, r8 - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r0, [r0] - movs r4, #8 - subs r4, r4, r0 - lsls r4, r4, #0x12 - movs r0, #0xa0 - lsls r0, r0, #0xe - adds r4, r4, r0 - asrs r4, r4, #0x10 - ldrb r0, [r5] - bl GetBattlerSpriteSubpriority - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r6, #0 - mov r1, sb - adds r2, r4, #0 - bl CreateSprite - ldr r6, _08188750 - ldrb r1, [r5] - adds r1, r1, r6 - strb r0, [r1] - ldr r4, _08188754 - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _08188758 - strh r1, [r0, #0x24] - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #2 - strh r1, [r0, #0x2e] - ldr r1, _0818875C - mov r2, r8 - lsls r0, r2, #3 - adds r0, r0, r1 - ldrh r0, [r0, #4] - bl IndexOfSpritePaletteTag - ldrb r1, [r5] - adds r1, r1, r6 - ldrb r1, [r1] - lsls r2, r1, #4 - adds r2, r2, r1 - lsls r2, r2, #2 - adds r2, r2, r4 - lsls r0, r0, #4 - ldrb r3, [r2, #5] - movs r1, #0xf - ands r1, r3 - orrs r1, r0 - strb r1, [r2, #5] - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - mov r1, r8 - strh r1, [r0, #6] - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, #0x1c - adds r0, r0, r4 - ldr r1, _08188760 - str r1, [r0] - ldr r1, _08188764 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08188768 - str r1, [r0] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0818873C: .4byte gUnknown_20226A0 -_08188740: .4byte gUnknown_203C480 -_08188744: .4byte gUnknown_2023D08 -_08188748: .4byte gUnknown_2024640 -_0818874C: .4byte gUnknown_82D8D70 -_08188750: .4byte gUnknown_2023E88 -_08188754: .4byte gUnknown_20205AC -_08188758: .4byte 0x0000FF10 -_0818875C: .4byte gUnknown_82D91CC -_08188760: .4byte sub_0805D3C8 -_08188764: .4byte gUnknown_3005AC0 -_08188768: .4byte sub_08186284 - thumb_func_end RecordedOpponentHandleDrawTrainerPic - - thumb_func_start RecordedOpponentHandleTrainerSlide -RecordedOpponentHandleTrainerSlide: @ 0x0818876C - push {lr} - bl RecordedOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedOpponentHandleTrainerSlide - - thumb_func_start RecordedOpponentHandleTrainerSlideBack -RecordedOpponentHandleTrainerSlideBack: @ 0x08188778 - push {r4, r5, r6, lr} - ldr r6, _08188808 - ldr r4, _0818880C - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r5, _08188810 - adds r0, r0, r5 - bl SetSpritePrimaryCoordsFromSecondaryCoords - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0x23 - strh r1, [r0, #0x2e] - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0x8c - lsls r1, r1, #1 - strh r1, [r0, #0x32] - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrh r1, [r0, #0x22] - strh r1, [r0, #0x36] - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r5, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _08188814 - str r1, [r0] - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _08188818 - bl StoreSpriteCallbackInData6 - ldr r1, _0818881C - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08188820 - str r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08188808: .4byte gUnknown_2023E88 -_0818880C: .4byte gUnknown_2023D08 -_08188810: .4byte gUnknown_20205AC -_08188814: .4byte sub_080A67B4 -_08188818: .4byte sub_08007140 -_0818881C: .4byte gUnknown_3005AC0 -_08188820: .4byte sub_081862F4 - thumb_func_end RecordedOpponentHandleTrainerSlideBack - - thumb_func_start RecordedOpponentHandleFaintAnimation -RecordedOpponentHandleFaintAnimation: @ 0x08188824 - push {r4, r5, r6, lr} - ldr r6, _08188870 - ldr r4, [r6] - ldr r5, _08188874 - ldrb r2, [r5] - ldr r0, [r4, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r3, r1, r0 - ldrb r0, [r3, #4] - cmp r0, #0 - bne _08188878 - ldr r1, [r4] - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08188858 - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #5 - bl InitAndLaunchSpecialAnimation -_08188858: - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #4] - adds r1, #1 - strb r1, [r0, #4] - b _081888B4 - .align 2, 0 -_08188870: .4byte gUnknown_2024174 -_08188874: .4byte gUnknown_2023D08 -_08188878: - ldrb r1, [r3] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _081888B4 - strb r0, [r3, #4] - movs r0, #0x10 - movs r1, #0x3f - bl PlaySE12WithPanning - ldr r2, _081888BC - ldr r1, _081888C0 - ldrb r0, [r5] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, _081888C4 - str r1, [r0] - ldr r1, _081888C8 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081888CC - str r1, [r0] -_081888B4: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081888BC: .4byte gUnknown_20205AC -_081888C0: .4byte gUnknown_2023E88 -_081888C4: .4byte SpriteCB_FaintOpponentMon -_081888C8: .4byte gUnknown_3005AC0 -_081888CC: .4byte sub_08186A84 - thumb_func_end RecordedOpponentHandleFaintAnimation - - thumb_func_start RecordedOpponentHandlePaletteFade -RecordedOpponentHandlePaletteFade: @ 0x081888D0 - push {lr} - bl RecordedOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedOpponentHandlePaletteFade - - thumb_func_start RecordedOpponentHandleSuccessBallThrowAnim -RecordedOpponentHandleSuccessBallThrowAnim: @ 0x081888DC - push {lr} - bl RecordedOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedOpponentHandleSuccessBallThrowAnim - - thumb_func_start RecordedOpponentHandleBallThrowAnim -RecordedOpponentHandleBallThrowAnim: @ 0x081888E8 - push {lr} - bl RecordedOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedOpponentHandleBallThrowAnim - - thumb_func_start RecordedOpponentHandlePause -RecordedOpponentHandlePause: @ 0x081888F4 - push {lr} - bl RecordedOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedOpponentHandlePause - - thumb_func_start RecordedOpponentHandleMoveAnimation -RecordedOpponentHandleMoveAnimation: @ 0x08188900 - push {r4, r5, r6, lr} - ldr r6, _081889E4 - ldrb r0, [r6] - bl mplay_80342A4 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08188912 - b _08188A26 -_08188912: - ldr r0, _081889E8 - mov ip, r0 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r0, #1 - adds r0, r2, r0 - ldrb r0, [r0] - mov r1, ip - adds r1, #2 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - ldr r5, _081889EC - mov r1, ip - adds r1, #3 - adds r2, r2, r1 - ldrb r1, [r2] - strb r1, [r5] - ldr r4, _081889F0 - ldrb r2, [r6] - lsls r2, r2, #9 - mov r1, ip - adds r1, #4 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, ip - adds r1, #5 - adds r2, r2, r1 - ldrb r1, [r2] - lsls r1, r1, #8 - orrs r3, r1 - strh r3, [r4] - ldr r4, _081889F4 - ldrb r2, [r6] - lsls r2, r2, #9 - mov r1, ip - adds r1, #6 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, ip - adds r1, #7 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r3, r1 - mov r1, ip - adds r1, #8 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, r1, #0x10 - orrs r3, r1 - mov r1, ip - adds r1, #9 - adds r2, r2, r1 - ldrb r1, [r2] - lsls r1, r1, #0x18 - orrs r3, r1 - str r3, [r4] - ldr r3, _081889F8 - ldrb r1, [r6] - lsls r1, r1, #9 - mov r2, ip - adds r2, #0xa - adds r1, r1, r2 - ldrb r1, [r1] - strb r1, [r3] - ldr r4, _081889FC - ldrb r2, [r6] - lsls r2, r2, #9 - mov r1, ip - adds r1, #0xc - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, ip - adds r1, #0xd - adds r2, r2, r1 - ldrb r1, [r2] - lsls r1, r1, #8 - orrs r3, r1 - strh r3, [r4] - ldr r3, _08188A00 - ldrb r2, [r6] - lsls r2, r2, #9 - mov r1, ip - adds r1, #0x10 - adds r2, r2, r1 - str r2, [r3] - ldr r3, _08188A04 - ldrb r1, [r6] - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r2, [r2] - str r2, [r1] - ldrb r1, [r5] - bl sub_0805D7A8 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - beq _08188A08 - bl RecordedOpponentBufferExecCompleted - b _08188A26 - .align 2, 0 -_081889E4: .4byte gUnknown_2023D08 -_081889E8: .4byte gUnknown_2022D08 -_081889EC: .4byte gUnknown_20380D2 -_081889F0: .4byte gUnknown_20380A8 -_081889F4: .4byte gUnknown_20380A4 -_081889F8: .4byte gUnknown_20380BA -_081889FC: .4byte gUnknown_20380BC -_08188A00: .4byte gUnknown_20380A0 -_08188A04: .4byte gUnknown_2024160 -_08188A08: - ldr r0, _08188A2C - ldr r0, [r0] - ldrb r1, [r6] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strb r3, [r0, #4] - ldr r1, _08188A30 - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08188A34 - str r1, [r0] -_08188A26: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08188A2C: .4byte gUnknown_2024174 -_08188A30: .4byte gUnknown_3005AC0 -_08188A34: .4byte sub_08188A38 - thumb_func_end RecordedOpponentHandleMoveAnimation - - thumb_func_start sub_08188A38 -sub_08188A38: @ 0x08188A38 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r2, _08188A84 - ldr r6, _08188A88 - ldrb r3, [r6] - lsls r1, r3, #9 - adds r0, r2, #1 - mov sl, r0 - adds r0, r1, r0 - ldrb r4, [r0] - adds r5, r2, #2 - mov sb, r5 - adds r0, r1, r5 - ldrb r0, [r0] - lsls r0, r0, #8 - orrs r4, r0 - adds r2, #0xb - adds r1, r1, r2 - ldrb r1, [r1] - mov r8, r1 - ldr r7, _08188A8C - ldr r5, [r7] - ldr r1, [r5, #4] - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r2, [r0, #4] - cmp r2, #1 - beq _08188AD0 - cmp r2, #1 - bgt _08188A90 - cmp r2, #0 - beq _08188A9A - b _08188BAC - .align 2, 0 -_08188A84: .4byte gUnknown_2022D08 -_08188A88: .4byte gUnknown_2023D08 -_08188A8C: .4byte gUnknown_2024174 -_08188A90: - cmp r2, #2 - beq _08188AFA - cmp r2, #3 - beq _08188B70 - b _08188BAC -_08188A9A: - ldr r1, [r5] - lsls r0, r3, #2 - adds r1, r0, r1 - ldrb r2, [r1] - movs r0, #0xc - ands r0, r2 - cmp r0, #4 - bne _08188ABC - movs r0, #8 - orrs r0, r2 - strb r0, [r1] - ldrb r2, [r6] - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #5 - bl InitAndLaunchSpecialAnimation -_08188ABC: - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #1 - strb r1, [r0, #4] - b _08188BAC -_08188AD0: - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08188BAC - movs r0, #0 - bl sub_0805E7B8 - adds r0, r4, #0 - bl DoMoveAnim - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #2 - strb r1, [r0, #4] - b _08188BAC -_08188AFA: - ldr r0, _08188B60 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _08188B64 - ldrb r0, [r0] - cmp r0, #0 - bne _08188BAC - movs r0, #1 - bl sub_0805E7B8 - ldr r0, [r7] - ldrb r2, [r6] - ldr r1, [r0] - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08188B48 - mov r0, r8 - cmp r0, #1 - bhi _08188B48 - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #6 - bl InitAndLaunchSpecialAnimation - ldr r0, [r7] - ldrb r1, [r6] - ldr r0, [r0] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] -_08188B48: - ldr r0, _08188B68 - ldr r2, [r0] - ldr r0, _08188B6C - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #3 - strb r1, [r0, #4] - b _08188BAC - .align 2, 0 -_08188B60: .4byte gUnknown_2038098 -_08188B64: .4byte gUnknown_203809D -_08188B68: .4byte gUnknown_2024174 -_08188B6C: .4byte gUnknown_2023D08 -_08188B70: - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _08188BAC - bl CopyAllBattleSpritesInvisibilities - ldrb r0, [r6] - lsls r2, r0, #9 - mov r3, sl - adds r1, r2, r3 - ldrb r1, [r1] - add r2, sb - ldrb r2, [r2] - lsls r2, r2, #8 - orrs r1, r2 - bl TrySetBehindSubstituteSpriteBit - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strb r4, [r0, #4] - bl RecordedOpponentBufferExecCompleted -_08188BAC: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08188A38 - - thumb_func_start RecordedOpponentHandlePrintString -RecordedOpponentHandlePrintString: @ 0x08188BBC - push {r4, lr} - ldr r0, _08188BF4 - movs r1, #0 - strh r1, [r0] - ldr r0, _08188BF8 - strh r1, [r0] - ldr r4, _08188BFC - ldrb r0, [r4] - lsls r0, r0, #9 - ldr r1, _08188C00 - adds r0, r0, r1 - ldrh r0, [r0] - bl PrintOnTrainerHillRecordsWindow - ldr r0, _08188C04 - movs r1, #0 - bl sub_0814FA04 - ldr r1, _08188C08 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08188C0C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08188BF4: .4byte gUnknown_2022AC8 -_08188BF8: .4byte gUnknown_2022ACA -_08188BFC: .4byte gUnknown_2023D08 -_08188C00: .4byte gUnknown_2022D0A -_08188C04: .4byte gUnknown_2022AE0 -_08188C08: .4byte gUnknown_3005AC0 -_08188C0C: .4byte sub_08186B3C - thumb_func_end RecordedOpponentHandlePrintString - - thumb_func_start RecordedOpponentHandlePrintSelectionString -RecordedOpponentHandlePrintSelectionString: @ 0x08188C10 - push {lr} - bl RecordedOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedOpponentHandlePrintSelectionString - - thumb_func_start RecordedOpponentHandleChooseAction -RecordedOpponentHandleChooseAction: @ 0x08188C1C - push {lr} - ldr r0, _08188C3C - ldrb r0, [r0] - bl RecordedBattle_GetBattlerAction - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #1 - movs r2, #0 - bl BtlController_EmitTwoReturnValues - bl RecordedOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_08188C3C: .4byte gUnknown_2023D08 - thumb_func_end RecordedOpponentHandleChooseAction - - thumb_func_start RecordedOpponentHandleUnknownYesNoBox -RecordedOpponentHandleUnknownYesNoBox: @ 0x08188C40 - push {lr} - bl RecordedOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedOpponentHandleUnknownYesNoBox - - thumb_func_start RecordedOpponentHandleChooseMove -RecordedOpponentHandleChooseMove: @ 0x08188C4C - push {r4, r5, lr} - ldr r0, _08188C70 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xa - ands r0, r1 - cmp r0, #0 - beq _08188C74 - bl ChooseMoveAndTargetInBattlePalace - adds r2, r0, #0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - movs r0, #1 - movs r1, #0xa - bl BtlController_EmitTwoReturnValues - b _08188C98 - .align 2, 0 -_08188C70: .4byte gUnknown_2022C90 -_08188C74: - ldr r5, _08188CA4 - ldrb r0, [r5] - bl RecordedBattle_GetBattlerAction - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldrb r0, [r5] - bl RecordedBattle_GetBattlerAction - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x10 - orrs r2, r4 - movs r0, #1 - movs r1, #0xa - bl BtlController_EmitTwoReturnValues -_08188C98: - bl RecordedOpponentBufferExecCompleted - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08188CA4: .4byte gUnknown_2023D08 - thumb_func_end RecordedOpponentHandleChooseMove - - thumb_func_start RecordedOpponentHandleChooseItem -RecordedOpponentHandleChooseItem: @ 0x08188CA8 - push {lr} - bl RecordedOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedOpponentHandleChooseItem - - thumb_func_start RecordedOpponentHandleChoosePokemon -RecordedOpponentHandleChoosePokemon: @ 0x08188CB4 - push {r4, lr} - ldr r4, _08188CE8 - ldrb r0, [r4] - bl RecordedBattle_GetBattlerAction - ldrb r1, [r4] - ldr r3, _08188CEC - ldr r2, [r3] - adds r1, r1, r2 - adds r1, #0x5c - strb r0, [r1] - ldrb r0, [r4] - ldr r1, [r3] - adds r0, r0, r1 - adds r0, #0x5c - ldrb r1, [r0] - movs r0, #1 - movs r2, #0 - bl BtlController_EmitChosenMonReturnValue - bl RecordedOpponentBufferExecCompleted - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08188CE8: .4byte gUnknown_2023D08 -_08188CEC: .4byte gUnknown_2024140 - thumb_func_end RecordedOpponentHandleChoosePokemon - - thumb_func_start RecordedOpponentHandleCmd23 -RecordedOpponentHandleCmd23: @ 0x08188CF0 - push {lr} - bl RecordedOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedOpponentHandleCmd23 - - thumb_func_start RecordedOpponentHandleHealthBarUpdate -RecordedOpponentHandleHealthBarUpdate: @ 0x08188CFC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - movs r0, #0 - bl LoadBattleBarGfx - ldr r3, _08188D74 - ldr r0, _08188D78 - mov sb, r0 - ldrb r4, [r0] - lsls r2, r4, #9 - adds r0, r3, #2 - adds r0, r2, r0 - ldrb r1, [r0] - adds r3, #3 - adds r2, r2, r3 - ldrb r0, [r2] - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - asrs r7, r1, #0x10 - ldr r0, _08188D7C - cmp r7, r0 - beq _08188D8C - ldr r6, _08188D80 - lsls r0, r4, #1 - adds r0, r0, r6 - ldrh r0, [r0] - movs r5, #0x64 - muls r0, r5, r0 - ldr r4, _08188D84 - adds r0, r0, r4 - movs r1, #0x3a - bl GetMonData - mov r8, r0 - mov r1, sb - ldrb r0, [r1] - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r0, [r0] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #0x39 - bl GetMonData - adds r3, r0, #0 - mov r1, sb - ldrb r0, [r1] - ldr r1, _08188D88 - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - mov r2, r8 - bl SetBattleBarStruct - b _08188DB6 - .align 2, 0 -_08188D74: .4byte gUnknown_2022D08 -_08188D78: .4byte gUnknown_2023D08 -_08188D7C: .4byte 0x00007FFF -_08188D80: .4byte gUnknown_2023D12 -_08188D84: .4byte gUnknown_20243E8 -_08188D88: .4byte gUnknown_3005AD0 -_08188D8C: - ldr r1, _08188DD4 - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08188DD8 - adds r0, r0, r1 - movs r1, #0x3a - bl GetMonData - adds r2, r0, #0 - mov r1, sb - ldrb r0, [r1] - ldr r1, _08188DDC - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - movs r3, #0 - bl SetBattleBarStruct -_08188DB6: - ldr r1, _08188DE0 - ldr r0, _08188DE4 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08188DE8 - str r1, [r0] - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08188DD4: .4byte gUnknown_2023D12 -_08188DD8: .4byte gUnknown_20243E8 -_08188DDC: .4byte gUnknown_3005AD0 -_08188DE0: .4byte gUnknown_3005AC0 -_08188DE4: .4byte gUnknown_2023D08 -_08188DE8: .4byte sub_08186A30 - thumb_func_end RecordedOpponentHandleHealthBarUpdate - - thumb_func_start sub_08188DEC -sub_08188DEC: @ 0x08188DEC - push {lr} - bl RecordedOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08188DEC - - thumb_func_start RecordedOpponentHandleStatusIconUpdate -RecordedOpponentHandleStatusIconUpdate: @ 0x08188DF8 - push {r4, lr} - ldr r4, _08188E54 - ldrb r0, [r4] - bl mplay_80342A4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08188E4C - ldr r0, _08188E58 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - ldr r2, _08188E5C - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _08188E60 - adds r1, r1, r2 - movs r2, #9 - bl UpdateHealthboxAttribute - ldrb r2, [r4] - ldr r0, _08188E64 - ldr r0, [r0] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r1, _08188E68 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08188E6C - str r1, [r0] -_08188E4C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08188E54: .4byte gUnknown_2023D08 -_08188E58: .4byte gUnknown_3005AD0 -_08188E5C: .4byte gUnknown_2023D12 -_08188E60: .4byte gUnknown_20243E8 -_08188E64: .4byte gUnknown_2024174 -_08188E68: .4byte gUnknown_3005AC0 -_08188E6C: .4byte sub_08186E78 - thumb_func_end RecordedOpponentHandleStatusIconUpdate - - thumb_func_start RecordedOpponentHandleStatusAnimation -RecordedOpponentHandleStatusAnimation: @ 0x08188E70 - push {r4, r5, lr} - ldr r5, _08188EC8 - ldrb r0, [r5] - bl mplay_80342A4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08188EC0 - ldr r4, _08188ECC - ldrb r3, [r5] - lsls r3, r3, #9 - adds r0, r4, #1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, #2 - adds r1, r3, r1 - ldrb r1, [r1] - adds r2, r4, #3 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, r2, #8 - orrs r1, r2 - adds r2, r4, #4 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, r2, #0x10 - orrs r1, r2 - adds r4, #5 - adds r3, r3, r4 - ldrb r2, [r3] - lsls r2, r2, #0x18 - orrs r1, r2 - bl InitAndLaunchChosenStatusAnimation - ldr r1, _08188ED0 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08188ED4 - str r1, [r0] -_08188EC0: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08188EC8: .4byte gUnknown_2023D08 -_08188ECC: .4byte gUnknown_2022D08 -_08188ED0: .4byte gUnknown_3005AC0 -_08188ED4: .4byte sub_08186E78 - thumb_func_end RecordedOpponentHandleStatusAnimation - - thumb_func_start RecordedOpponentHandleStatusXor -RecordedOpponentHandleStatusXor: @ 0x08188ED8 - push {lr} - bl RecordedOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedOpponentHandleStatusXor - - thumb_func_start RecordedOpponentHandleDataTransfer -RecordedOpponentHandleDataTransfer: @ 0x08188EE4 - push {lr} - bl RecordedOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedOpponentHandleDataTransfer - - thumb_func_start sub_08188EF0 -sub_08188EF0: @ 0x08188EF0 - push {lr} - bl RecordedOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08188EF0 - - thumb_func_start RecordedOpponentHandlePlayBGM -RecordedOpponentHandlePlayBGM: @ 0x08188EFC - push {lr} - bl RecordedOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedOpponentHandlePlayBGM - - thumb_func_start RecordedOpponentHandleCmd32 -RecordedOpponentHandleCmd32: @ 0x08188F08 - push {lr} - bl RecordedOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedOpponentHandleCmd32 - - thumb_func_start RecordedOpponentHandleTwoReturnValues -RecordedOpponentHandleTwoReturnValues: @ 0x08188F14 - push {lr} - bl RecordedOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedOpponentHandleTwoReturnValues - - thumb_func_start RecordedOpponentHandleChosenMonReturnValue -RecordedOpponentHandleChosenMonReturnValue: @ 0x08188F20 - push {lr} - bl RecordedOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedOpponentHandleChosenMonReturnValue - - thumb_func_start RecordedOpponentHandleOneReturnValue -RecordedOpponentHandleOneReturnValue: @ 0x08188F2C - push {lr} - bl RecordedOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedOpponentHandleOneReturnValue - - thumb_func_start RecordedOpponentHandleOneReturnValue_Duplicate -RecordedOpponentHandleOneReturnValue_Duplicate: @ 0x08188F38 - push {lr} - bl RecordedOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedOpponentHandleOneReturnValue_Duplicate - - thumb_func_start RecordedOpponentHandleCmd37 -RecordedOpponentHandleCmd37: @ 0x08188F44 - push {lr} - ldr r2, _08188F5C - ldrb r1, [r2] - movs r0, #0x80 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - bl RecordedOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_08188F5C: .4byte gUnknown_20229C0 - thumb_func_end RecordedOpponentHandleCmd37 - - thumb_func_start RecordedOpponentHandleCmd38 -RecordedOpponentHandleCmd38: @ 0x08188F60 - push {lr} - ldr r3, _08188F8C - ldr r1, _08188F90 - ldr r0, _08188F94 - ldrb r0, [r0] - lsls r0, r0, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - ldrb r2, [r3] - movs r0, #0x80 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl RecordedOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_08188F8C: .4byte gUnknown_20229C0 -_08188F90: .4byte gUnknown_2022D08 -_08188F94: .4byte gUnknown_2023D08 - thumb_func_end RecordedOpponentHandleCmd38 - - thumb_func_start RecordedOpponentHandleCmd39 -RecordedOpponentHandleCmd39: @ 0x08188F98 - push {lr} - ldr r2, _08188FAC - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - bl RecordedOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_08188FAC: .4byte gUnknown_20229C0 - thumb_func_end RecordedOpponentHandleCmd39 - - thumb_func_start RecordedOpponentHandleCmd40 -RecordedOpponentHandleCmd40: @ 0x08188FB0 - push {lr} - ldr r3, _08188FD4 - ldr r1, [r3] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x1f - movs r0, #1 - eors r1, r0 - lsls r1, r1, #7 - ldrb r2, [r3] - movs r0, #0x7f - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl RecordedOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_08188FD4: .4byte gUnknown_20229C0 - thumb_func_end RecordedOpponentHandleCmd40 - - thumb_func_start RecordedOpponentHandleHitAnimation -RecordedOpponentHandleHitAnimation: @ 0x08188FD8 - push {r4, lr} - ldr r3, _08189000 - ldr r2, _08189004 - ldr r4, _08189008 - ldrb r0, [r4] - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - bge _0818900C - bl RecordedOpponentBufferExecCompleted - b _08189036 - .align 2, 0 -_08189000: .4byte gUnknown_20205AC -_08189004: .4byte gUnknown_2023E88 -_08189008: .4byte gUnknown_2023D08 -_0818900C: - ldr r1, _0818903C - movs r0, #1 - strb r0, [r1] - ldrb r0, [r4] - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r1, #0 - strh r1, [r0, #0x30] - ldrb r0, [r4] - bl sub_080763FC - ldr r1, _08189040 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08189044 - str r1, [r0] -_08189036: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0818903C: .4byte gUnknown_202415D -_08189040: .4byte gUnknown_3005AC0 -_08189044: .4byte sub_08186B54 - thumb_func_end RecordedOpponentHandleHitAnimation - - thumb_func_start RecordedOpponentHandleCmd42 -RecordedOpponentHandleCmd42: @ 0x08189048 - push {lr} - bl RecordedOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedOpponentHandleCmd42 - - thumb_func_start RecordedOpponentHandlePlaySE -RecordedOpponentHandlePlaySE: @ 0x08189054 - push {r4, lr} - ldr r4, _08189090 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - movs r3, #0x3f - cmp r0, #0 - bne _08189068 - movs r3, #0xc0 -_08189068: - ldr r2, _08189094 - ldrb r1, [r4] - lsls r1, r1, #9 - adds r0, r2, #1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, #2 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - lsls r1, r3, #0x18 - asrs r1, r1, #0x18 - bl PlaySE12WithPanning - bl RecordedOpponentBufferExecCompleted - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08189090: .4byte gUnknown_2023D08 -_08189094: .4byte gUnknown_2022D08 - thumb_func_end RecordedOpponentHandlePlaySE - - thumb_func_start RecordedOpponentHandlePlayFanfareOrBGM -RecordedOpponentHandlePlayFanfareOrBGM: @ 0x08189098 - push {r4, r5, lr} - ldr r4, _081890CC - ldr r5, _081890D0 - ldrb r0, [r5] - lsls r3, r0, #9 - adds r0, r4, #3 - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, #0 - beq _081890D4 - bl BattleStopLowHpSound - ldrb r1, [r5] - lsls r1, r1, #9 - adds r0, r4, #1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, r4, #2 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - bl PlayBGM - b _081890E8 - .align 2, 0 -_081890CC: .4byte gUnknown_2022D08 -_081890D0: .4byte gUnknown_2023D08 -_081890D4: - adds r0, r4, #1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, #2 - adds r1, r3, r1 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - bl PlayFanfare -_081890E8: - bl RecordedOpponentBufferExecCompleted - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedOpponentHandlePlayFanfareOrBGM - - thumb_func_start RecordedOpponentHandleFaintingCry -RecordedOpponentHandleFaintingCry: @ 0x081890F4 - push {lr} - ldr r1, _08189124 - ldr r0, _08189128 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0818912C - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x19 - movs r2, #5 - bl PlayCry3 - bl RecordedOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_08189124: .4byte gUnknown_2023D12 -_08189128: .4byte gUnknown_2023D08 -_0818912C: .4byte gUnknown_20243E8 - thumb_func_end RecordedOpponentHandleFaintingCry - - thumb_func_start sub_08189130 -sub_08189130: @ 0x08189130 - push {lr} - ldr r1, _08189158 - ldr r0, _0818915C - ldrb r0, [r0] - lsls r0, r0, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - bl HandleIntroSlide - ldr r2, _08189160 - ldrh r0, [r2] - movs r1, #1 - orrs r0, r1 - strh r0, [r2] - bl RecordedOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_08189158: .4byte gUnknown_2022D08 -_0818915C: .4byte gUnknown_2023D08 -_08189160: .4byte gUnknown_20240A0 - thumb_func_end sub_08189130 - - thumb_func_start RecordedOpponentHandleIntroTrainerBallThrow -RecordedOpponentHandleIntroTrainerBallThrow: @ 0x08189164 - push {r4, r5, r6, lr} - ldr r5, _08189244 - ldr r6, _08189248 - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _0818924C - adds r0, r0, r4 - bl SetSpritePrimaryCoordsFromSecondaryCoords - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0x23 - strh r1, [r0, #0x2e] - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0x8c - lsls r1, r1, #1 - strh r1, [r0, #0x32] - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r0, #0x22] - strh r1, [r0, #0x36] - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _08189250 - str r1, [r0] - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _08189254 - bl StoreSpriteCallbackInData6 - ldr r0, _08189258 - movs r1, #5 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _0818925C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r4 - ldrb r0, [r6] - strh r0, [r1, #8] - ldr r3, _08189260 - ldr r0, [r3] - ldrb r2, [r6] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08189226 - ldr r0, _08189264 - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r4 - ldr r1, _08189268 - str r1, [r0] -_08189226: - ldr r0, [r3] - ldr r2, [r0, #8] - ldrb r0, [r2, #9] - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #9] - ldr r1, _0818926C - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08189270 - str r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08189244: .4byte gUnknown_2023E88 -_08189248: .4byte gUnknown_2023D08 -_0818924C: .4byte gUnknown_20205AC -_08189250: .4byte sub_080A67B4 -_08189254: .4byte sub_08189358 -_08189258: .4byte sub_08189274 -_0818925C: .4byte gUnknown_3005B60 -_08189260: .4byte gUnknown_2024174 -_08189264: .4byte gUnknown_2024158 -_08189268: .4byte Task_HidePartyStatusSummary -_0818926C: .4byte gUnknown_3005AC0 -_08189270: .4byte sub_08186214 - thumb_func_end RecordedOpponentHandleIntroTrainerBallThrow - - thumb_func_start sub_08189274 -sub_08189274: @ 0x08189274 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r7, _081892CC - ldrb r0, [r7] - mov sb, r0 - ldr r1, _081892D0 - mov r2, r8 - lsls r0, r2, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r0, [r0, #8] - strb r0, [r7] - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081892AE - ldr r0, _081892D4 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _081892E0 -_081892AE: - ldr r0, _081892D8 - ldrb r1, [r7] - lsls r2, r1, #9 - adds r0, #1 - adds r2, r2, r0 - ldr r0, _081892DC - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - strb r0, [r2] - ldrb r0, [r7] - movs r1, #0 - bl sub_08188304 - b _08189320 - .align 2, 0 -_081892CC: .4byte gUnknown_2023D08 -_081892D0: .4byte gUnknown_3005B60 -_081892D4: .4byte gUnknown_2022C90 -_081892D8: .4byte gUnknown_2022D08 -_081892DC: .4byte gUnknown_2023D12 -_081892E0: - ldr r4, _08189344 - ldrb r0, [r7] - lsls r1, r0, #9 - adds r4, #1 - adds r1, r1, r4 - ldr r6, _08189348 - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - movs r1, #0 - bl sub_08188304 - ldrb r0, [r7] - movs r5, #2 - eors r0, r5 - strb r0, [r7] - ldrb r0, [r7] - lsls r1, r0, #9 - adds r1, r1, r4 - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - movs r1, #0 - bl sub_08188304 - ldrb r0, [r7] - eors r0, r5 - strb r0, [r7] -_08189320: - ldr r1, _0818934C - ldr r2, _08189350 - ldrb r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08189354 - str r1, [r0] - mov r0, sb - strb r0, [r2] - mov r0, r8 - bl DestroyTask - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08189344: .4byte gUnknown_2022D08 -_08189348: .4byte gUnknown_2023D12 -_0818934C: .4byte gUnknown_3005AC0 -_08189350: .4byte gUnknown_2023D08 -_08189354: .4byte sub_08186598 - thumb_func_end sub_08189274 - - thumb_func_start sub_08189358 -sub_08189358: @ 0x08189358 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #6] - bl FreeTrainerFrontPicPalette - adds r0, r4, #0 - bl FreeSpriteOamMatrix - adds r0, r4, #0 - bl DestroySprite - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08189358 - - thumb_func_start sub_08189374 -sub_08189374: @ 0x08189374 - push {r4, r5, r6, r7, lr} - ldr r1, _0818939C - ldr r0, _081893A0 - ldrb r2, [r0] - lsls r0, r2, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _081893A4 - adds r0, r2, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081893A4 - bl RecordedOpponentBufferExecCompleted - b _0818946E - .align 2, 0 -_0818939C: .4byte gUnknown_2022D08 -_081893A0: .4byte gUnknown_2023D08 -_081893A4: - ldr r4, _081893FC - ldr r0, [r4] - ldr r3, _08189400 - ldrb r1, [r3] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r2, #1 - orrs r1, r2 - strb r1, [r0] - ldr r1, _08189404 - ldrb r2, [r3] - lsls r0, r2, #9 - adds r1, #2 - adds r0, r0, r1 - ldrb r0, [r0] - adds r7, r3, #0 - cmp r0, #0 - beq _08189410 - ldr r0, [r4] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r3, r0, r1 - ldrb r2, [r3, #1] - lsls r1, r2, #0x1b - lsrs r0, r1, #0x1c - cmp r0, #1 - bhi _08189408 - adds r0, #1 - movs r1, #0xf - ands r0, r1 - lsls r0, r0, #1 - movs r1, #0x1f - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #1] - b _0818946E - .align 2, 0 -_081893FC: .4byte gUnknown_2024174 -_08189400: .4byte gUnknown_2023D08 -_08189404: .4byte gUnknown_2022D08 -_08189408: - movs r0, #0x1f - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r3, #1] -_08189410: - adds r5, r7, #0 - ldrb r0, [r5] - lsls r3, r0, #9 - ldr r4, _08189474 - adds r1, r3, r4 - subs r2, r4, #3 - adds r2, r3, r2 - ldrb r2, [r2] - subs r4, #2 - adds r3, r3, r4 - ldrb r3, [r3] - bl CreatePartyStatusSummarySprites - ldr r2, _08189478 - ldrb r1, [r5] - adds r1, r1, r2 - movs r3, #0 - strb r0, [r1] - ldr r6, _0818947C - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strb r3, [r0, #5] - ldrb r2, [r5] - lsls r0, r2, #9 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0 - beq _08189462 - ldr r0, [r6] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - movs r1, #0x5d - strb r1, [r0, #5] -_08189462: - ldr r0, _08189480 - ldrb r1, [r7] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, _08189484 - str r0, [r1] -_0818946E: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08189474: .4byte gUnknown_2022D0C -_08189478: .4byte gUnknown_2024158 -_0818947C: .4byte gUnknown_2024174 -_08189480: .4byte gUnknown_3005AC0 -_08189484: .4byte sub_08189488 - thumb_func_end sub_08189374 - - thumb_func_start sub_08189488 -sub_08189488: @ 0x08189488 - push {r4, lr} - ldr r4, _081894C8 - ldr r0, [r4] - ldr r3, _081894CC - ldrb r1, [r3] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #5] - adds r2, r1, #1 - strb r2, [r0, #5] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #0x5c - bls _081894C0 - ldr r0, [r4] - ldrb r1, [r3] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0 - strb r1, [r0, #5] - bl RecordedOpponentBufferExecCompleted -_081894C0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081894C8: .4byte gUnknown_2024174 -_081894CC: .4byte gUnknown_2023D08 - thumb_func_end sub_08189488 - - thumb_func_start RecordedOpponentHandleHidePartyStatusSummary -RecordedOpponentHandleHidePartyStatusSummary: @ 0x081894D0 - push {lr} - ldr r0, _0818950C - ldr r1, [r0] - ldr r0, _08189510 - ldrb r3, [r0] - ldr r1, [r1, #4] - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08189502 - ldr r2, _08189514 - ldr r0, _08189518 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldr r1, _0818951C - str r1, [r0] -_08189502: - bl RecordedOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_0818950C: .4byte gUnknown_2024174 -_08189510: .4byte gUnknown_2023D08 -_08189514: .4byte gUnknown_3005B60 -_08189518: .4byte gUnknown_2024158 -_0818951C: .4byte Task_HidePartyStatusSummary - thumb_func_end RecordedOpponentHandleHidePartyStatusSummary - - thumb_func_start RecordedOpponentHandleEndBounceEffect -RecordedOpponentHandleEndBounceEffect: @ 0x08189520 - push {lr} - bl RecordedOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedOpponentHandleEndBounceEffect - - thumb_func_start sub_0818952C -sub_0818952C: @ 0x0818952C - push {r4, lr} - ldr r4, _0818957C - ldrb r0, [r4] - bl IsBattlerSpritePresent - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08189572 - ldr r3, _08189580 - ldr r0, _08189584 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r0, _08189588 - lsls r1, r1, #9 - adds r0, #1 - adds r1, r1, r0 - adds r2, #0x3e - movs r0, #1 - ldrb r1, [r1] - ands r1, r0 - lsls r1, r1, #2 - ldrb r3, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4] - bl CopyBattleSpriteInvisibility -_08189572: - bl RecordedOpponentBufferExecCompleted - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0818957C: .4byte gUnknown_2023D08 -_08189580: .4byte gUnknown_20205AC -_08189584: .4byte gUnknown_2023E88 -_08189588: .4byte gUnknown_2022D08 - thumb_func_end sub_0818952C - - thumb_func_start RecordedOpponentHandleBattleAnimation -RecordedOpponentHandleBattleAnimation: @ 0x0818958C - push {r4, r5, r6, lr} - sub sp, #4 - ldr r6, _081895D0 - ldrb r0, [r6] - bl mplay_80342A4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081895E4 - ldr r5, _081895D4 - ldrb r2, [r6] - lsls r1, r2, #9 - adds r0, r5, #1 - adds r0, r1, r0 - ldrb r3, [r0] - adds r0, r5, #2 - adds r0, r1, r0 - ldrb r4, [r0] - adds r5, #3 - adds r1, r1, r5 - ldrb r0, [r1] - lsls r0, r0, #8 - orrs r4, r0 - str r4, [sp] - adds r0, r2, #0 - adds r1, r2, #0 - bl TryHandleLaunchBattleTableAnimation - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081895D8 - bl RecordedOpponentBufferExecCompleted - b _081895E4 - .align 2, 0 -_081895D0: .4byte gUnknown_2023D08 -_081895D4: .4byte gUnknown_2022D08 -_081895D8: - ldr r0, _081895EC - ldrb r1, [r6] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, _081895F0 - str r0, [r1] -_081895E4: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081895EC: .4byte gUnknown_3005AC0 -_081895F0: .4byte sub_08186EA8 - thumb_func_end RecordedOpponentHandleBattleAnimation - - thumb_func_start RecordedOpponentHandleLinkStandbyMsg -RecordedOpponentHandleLinkStandbyMsg: @ 0x081895F4 - push {lr} - bl RecordedOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedOpponentHandleLinkStandbyMsg - - thumb_func_start RecordedOpponentHandleResetActionMoveSelection -RecordedOpponentHandleResetActionMoveSelection: @ 0x08189600 - push {lr} - bl RecordedOpponentBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedOpponentHandleResetActionMoveSelection - - thumb_func_start RecordedOpponentHandleCmd55 -RecordedOpponentHandleCmd55: @ 0x0818960C - push {lr} - ldr r1, _08189628 - ldr r0, _0818962C - ldrb r0, [r0] - lsls r0, r0, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r2, [r0] - cmp r2, #3 - bne _08189634 - ldr r0, _08189630 - strb r2, [r0] - b _0818963C - .align 2, 0 -_08189628: .4byte gUnknown_2022D08 -_0818962C: .4byte gUnknown_2023D08 -_08189630: .4byte gUnknown_2023FDE -_08189634: - ldr r0, _08189660 - movs r1, #3 - eors r1, r2 - strb r1, [r0] -_0818963C: - movs r0, #5 - bl FadeOutMapMusic - movs r0, #3 - bl BeginFastPaletteFade - bl RecordedOpponentBufferExecCompleted - ldr r1, _08189664 - ldr r0, _08189668 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0818966C - str r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_08189660: .4byte gUnknown_2023FDE -_08189664: .4byte gUnknown_3005AC0 -_08189668: .4byte gUnknown_2023D08 -_0818966C: .4byte sub_080583C0 - thumb_func_end RecordedOpponentHandleCmd55 - - thumb_func_start sub_08189670 -sub_08189670: @ 0x08189670 - bx lr - .align 2, 0 - thumb_func_end sub_08189670 - - thumb_func_start sub_08189674 -sub_08189674: @ 0x08189674 - bx lr - .align 2, 0 - thumb_func_end sub_08189674 - - thumb_func_start sub_08189678 -sub_08189678: @ 0x08189678 - ldr r1, _08189688 - ldr r0, _0818968C - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08189690 - str r1, [r0] - bx lr - .align 2, 0 -_08189688: .4byte gUnknown_3005AC0 -_0818968C: .4byte gUnknown_2023D08 -_08189690: .4byte sub_08189694 - thumb_func_end sub_08189678 - - thumb_func_start sub_08189694 -sub_08189694: @ 0x08189694 - push {lr} - ldr r2, _081896C8 - ldr r1, _081896CC - ldr r0, _081896D0 - ldrb r3, [r0] - lsls r0, r3, #2 - adds r0, r0, r1 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _081896E0 - ldr r0, _081896D4 - lsls r1, r3, #9 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0x38 - bhi _081896DC - ldr r0, _081896D8 - ldrb r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl _call_via_r0 - b _081896E0 - .align 2, 0 -_081896C8: .4byte gUnknown_2023D0C -_081896CC: .4byte gUnknown_82FACB4 -_081896D0: .4byte gUnknown_2023D08 -_081896D4: .4byte gUnknown_2022D08 -_081896D8: .4byte gUnknown_85D39D4 -_081896DC: - bl RecordedPlayerBufferExecCompleted -_081896E0: - pop {r0} - bx r0 - thumb_func_end sub_08189694 - - thumb_func_start sub_081896E4 -sub_081896E4: @ 0x081896E4 - push {lr} - ldr r2, _0818970C - ldr r1, _08189710 - ldr r0, _08189714 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _08189718 - cmp r1, r0 - bne _08189708 - bl RecordedPlayerBufferExecCompleted -_08189708: - pop {r0} - bx r0 - .align 2, 0 -_0818970C: .4byte gUnknown_20205AC -_08189710: .4byte gUnknown_2023E88 -_08189714: .4byte gUnknown_2023D08 -_08189718: .4byte sub_08007140 - thumb_func_end sub_081896E4 - - thumb_func_start sub_0818971C -sub_0818971C: @ 0x0818971C - push {r4, r5, r6, lr} - ldr r6, _08189774 - ldr r5, _08189778 - ldr r4, _0818977C - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r6, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, [r0] - ldr r0, _08189780 - cmp r1, r0 - bne _0818976C - movs r0, #0 - bl sub_0805DBFC - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - bl FreeSpriteOamMatrix - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - bl DestroySprite - bl RecordedPlayerBufferExecCompleted -_0818976C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08189774: .4byte gUnknown_20205AC -_08189778: .4byte gUnknown_2023E88 -_0818977C: .4byte gUnknown_2023D08 -_08189780: .4byte sub_08007140 - thumb_func_end sub_0818971C - - thumb_func_start sub_08189784 -sub_08189784: @ 0x08189784 - push {r4, lr} - ldr r4, _081897C4 - ldr r1, [r4] - ldr r3, _081897C8 - ldrb r0, [r3] - ldr r2, [r1, #4] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r0, [r1, #9] - subs r0, #1 - strb r0, [r1, #9] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _081897BC - ldr r0, [r4] - ldrb r1, [r3] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0 - strb r1, [r0, #9] - bl RecordedPlayerBufferExecCompleted -_081897BC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081897C4: .4byte gUnknown_2024174 -_081897C8: .4byte gUnknown_2023D08 - thumb_func_end sub_08189784 - - thumb_func_start sub_081897CC -sub_081897CC: @ 0x081897CC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - movs r6, #0 - ldr r4, _08189824 - ldrb r0, [r4] - bl sub_080A630C - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081897E6 - b _0818998C -_081897E6: - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08189806 - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08189838 - ldr r0, _08189828 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08189838 -_08189806: - ldr r2, _0818982C - ldr r1, _08189830 - ldrb r0, [r4] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _08189834 - cmp r1, r0 - bne _0818986E - b _08189874 - .align 2, 0 -_08189824: .4byte gUnknown_2023D08 -_08189828: .4byte gUnknown_2022C90 -_0818982C: .4byte gUnknown_20205AC -_08189830: .4byte gUnknown_3005AD0 -_08189834: .4byte sub_08007140 -_08189838: - ldr r2, _08189968 - ldr r5, _0818996C - ldr r0, _08189970 - ldrb r3, [r0] - adds r0, r3, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r4, [r0] - ldr r0, _08189974 - cmp r4, r0 - bne _0818986E - movs r0, #2 - eors r3, r0 - adds r0, r3, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - cmp r0, r4 - bne _0818986E - movs r6, #1 -_0818986E: - cmp r6, #0 - bne _08189874 - b _08189A44 -_08189874: - ldr r0, _08189978 - mov sb, r0 - ldr r0, [r0] - ldr r5, _08189970 - ldrb r2, [r5] - ldr r3, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r4, r0, r3 - ldrb r1, [r4, #1] - movs r6, #1 - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - bne _08189896 - b _08189A44 -_08189896: - movs r1, #2 - mov r8, r1 - mov r1, r8 - eors r1, r2 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0, #1] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - bne _081898B2 - b _08189A44 -_081898B2: - ldrb r1, [r4] - movs r3, #0x7f - adds r0, r3, #0 - ands r0, r1 - strb r0, [r4] - mov r1, sb - ldr r0, [r1] - ldrb r2, [r5] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #1] - movs r4, #2 - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r2 - strb r0, [r1, #1] - mov r0, sb - ldr r2, [r0] - ldrb r0, [r5] - mov r1, r8 - eors r1, r0 - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - ands r3, r1 - strb r3, [r0] - mov r1, sb - ldr r2, [r1] - ldrb r0, [r5] - mov r1, r8 - eors r1, r0 - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #1] - ands r4, r1 - strb r4, [r0, #1] - ldr r4, _0818997C - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl FreeSpritePaletteByTag - ldr r7, _08189980 - ldrb r1, [r5] - lsls r0, r1, #1 - adds r0, r0, r7 - ldrh r0, [r0] - movs r6, #0x64 - muls r0, r6, r0 - ldr r4, _08189984 - adds r0, r0, r4 - bl HandleLowHpMusicChange - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0818994E - ldrb r0, [r5] - mov r1, r8 - eors r1, r0 - lsls r0, r1, #1 - adds r0, r0, r7 - ldrh r0, [r0] - muls r0, r6, r0 - adds r0, r0, r4 - bl HandleLowHpMusicChange -_0818994E: - mov r1, sb - ldr r0, [r1] - ldrb r1, [r5] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #3 - strb r1, [r0, #9] - ldr r1, _08189988 - ldrb r0, [r5] - b _08189A3C - .align 2, 0 -_08189968: .4byte gUnknown_20205AC -_0818996C: .4byte gUnknown_3005AD0 -_08189970: .4byte gUnknown_2023D08 -_08189974: .4byte sub_08007140 -_08189978: .4byte gUnknown_2024174 -_0818997C: .4byte 0x000027F9 -_08189980: .4byte gUnknown_2023D12 -_08189984: .4byte gUnknown_2024190 -_08189988: .4byte gUnknown_3005AC0 -_0818998C: - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081899AC - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081899DC - ldr r0, _081899CC - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _081899DC -_081899AC: - ldr r2, _081899D0 - ldr r1, _081899D4 - ldrb r0, [r4] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _081899D8 - cmp r1, r0 - bne _08189A12 - b _08189A10 - .align 2, 0 -_081899CC: .4byte gUnknown_2022C90 -_081899D0: .4byte gUnknown_20205AC -_081899D4: .4byte gUnknown_3005AD0 -_081899D8: .4byte sub_08007140 -_081899DC: - ldr r2, _08189A50 - ldr r5, _08189A54 - ldr r0, _08189A58 - ldrb r3, [r0] - adds r0, r3, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r4, [r0] - ldr r0, _08189A5C - cmp r4, r0 - bne _08189A12 - movs r0, #2 - eors r3, r0 - adds r0, r3, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - cmp r0, r4 - bne _08189A12 -_08189A10: - movs r6, #1 -_08189A12: - bl IsCryPlayingOrClearCrySongs - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08189A1E - movs r6, #0 -_08189A1E: - cmp r6, #0 - beq _08189A44 - ldr r0, _08189A60 - ldr r0, [r0] - ldr r3, _08189A58 - ldrb r1, [r3] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #3 - strb r1, [r0, #9] - ldr r1, _08189A64 - ldrb r0, [r3] -_08189A3C: - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08189A68 - str r1, [r0] -_08189A44: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08189A50: .4byte gUnknown_20205AC -_08189A54: .4byte gUnknown_3005AD0 -_08189A58: .4byte gUnknown_2023D08 -_08189A5C: .4byte sub_08007140 -_08189A60: .4byte gUnknown_2024174 -_08189A64: .4byte gUnknown_3005AC0 -_08189A68: .4byte sub_08189784 - thumb_func_end sub_081897CC - - thumb_func_start sub_08189A6C -sub_08189A6C: @ 0x08189A6C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - movs r0, #0 - mov sl, r0 - ldr r4, _08189C48 - ldrb r0, [r4] - bl sub_080A630C - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08189AEA - ldr r5, _08189C4C - ldr r0, [r5] - ldrb r2, [r4] - ldr r1, [r0, #4] - lsls r3, r2, #1 - adds r0, r3, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r6, #0x88 - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - bne _08189AB8 - ldr r0, _08189C50 - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _08189C54 - adds r1, r1, r0 - adds r0, r2, #0 - bl sub_08172CD4 -_08189AB8: - ldr r2, [r5] - ldrb r1, [r4] - movs r0, #2 - adds r3, r0, #0 - eors r3, r1 - ldr r1, [r2, #4] - lsls r2, r3, #1 - adds r0, r2, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - bne _08189AEA - ldr r0, _08189C50 - adds r0, r2, r0 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _08189C54 - adds r1, r1, r0 - adds r0, r3, #0 - bl sub_08172CD4 -_08189AEA: - ldr r3, _08189C4C - ldr r0, [r3] - ldr r2, _08189C48 - ldrb r5, [r2] - ldr r4, [r0, #4] - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r6, r0, r4 - ldrb r1, [r6] - movs r0, #8 - mov ip, r0 - ands r0, r1 - mov sb, r2 - mov r8, r3 - cmp r0, #0 - bne _08189BCE - movs r7, #2 - adds r1, r7, #0 - eors r1, r5 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r1, [r0] - mov r0, ip - ands r0, r1 - cmp r0, #0 - bne _08189BCE - ldrb r1, [r6, #1] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08189BB0 - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08189B80 - ldr r0, _08189C58 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08189B80 - ldr r4, _08189C5C - mov r1, sb - ldrb r0, [r1] - adds r1, r7, #0 - eors r1, r0 - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, _08189C50 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _08189C54 - adds r1, r1, r2 - movs r2, #0 - bl UpdateHealthboxAttribute - mov r1, sb - ldrb r0, [r1] - eors r0, r7 - bl sub_08076320 - mov r1, sb - ldrb r0, [r1] - eors r0, r7 - adds r0, r0, r4 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible -_08189B80: - ldr r5, _08189C5C - ldr r4, _08189C48 - ldrb r1, [r4] - adds r0, r1, r5 - ldrb r0, [r0] - ldr r2, _08189C50 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _08189C54 - adds r1, r1, r2 - movs r2, #0 - bl UpdateHealthboxAttribute - ldrb r0, [r4] - bl sub_08076320 - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible -_08189BB0: - ldr r4, _08189C4C - ldr r0, [r4] - ldr r3, _08189C48 - ldrb r1, [r3] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #1] - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0, #1] - mov sb, r3 - mov r8, r4 -_08189BCE: - mov r1, r8 - ldr r0, [r1] - mov r1, sb - ldrb r2, [r1] - ldr r3, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0, #1] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0x80 - bne _08189C8E - movs r1, #2 - eors r1, r2 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0, #1] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08189C8E - bl IsCryPlayingOrClearCrySongs - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08189C8E - mov r1, r8 - ldr r0, [r1] - mov r1, sb - ldrb r2, [r1] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #1] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _08189C70 - ldr r0, _08189C58 - ldr r0, [r0] - movs r1, #0x42 - ands r0, r1 - cmp r0, #0x42 - bne _08189C64 - adds r0, r2, #0 - bl sub_080A630C - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08189C70 - ldr r0, _08189C60 - bl m4aMPlayContinue - b _08189C70 - .align 2, 0 -_08189C48: .4byte gUnknown_2023D08 -_08189C4C: .4byte gUnknown_2024174 -_08189C50: .4byte gUnknown_2023D12 -_08189C54: .4byte gUnknown_2024190 -_08189C58: .4byte gUnknown_2022C90 -_08189C5C: .4byte gUnknown_3005AD0 -_08189C60: .4byte gUnknown_30074D0 -_08189C64: - ldr r0, _08189D64 - ldr r1, _08189D68 - movs r2, #0x80 - lsls r2, r2, #1 - bl m4aMPlayVolumeControl -_08189C70: - ldr r0, _08189D6C - ldr r2, [r0] - ldr r0, _08189D70 - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #1] - movs r2, #0x20 - orrs r1, r2 - strb r1, [r0, #1] - movs r0, #1 - mov sl, r0 -_08189C8E: - mov r1, sl - cmp r1, #0 - beq _08189D56 - ldr r7, _08189D74 - ldr r6, _08189D78 - ldr r5, _08189D70 - ldrb r3, [r5] - adds r0, r3, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, r7, #0 - adds r4, #0x1c - adds r0, r0, r4 - ldr r2, [r0] - ldr r0, _08189D7C - cmp r2, r0 - bne _08189D56 - ldr r0, _08189D80 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r0, [r0] - cmp r0, r2 - bne _08189D56 - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08189CF4 - ldr r0, _08189D84 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08189CF4 - ldrb r1, [r5] - movs r0, #2 - eors r0, r1 - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - bl DestroySprite -_08189CF4: - ldr r1, _08189D78 - ldr r4, _08189D70 - ldrb r0, [r4] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08189D74 - adds r0, r0, r1 - bl DestroySprite - ldr r3, _08189D6C - ldr r0, [r3] - ldr r2, [r0, #8] - ldrb r1, [r2, #9] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #9] - ldr r0, [r3] - ldrb r2, [r4] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #1] - movs r0, #0x21 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #1] - ldr r0, [r3] - ldrb r2, [r4] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #1] - movs r0, #0x7f - ands r0, r2 - strb r0, [r1, #1] - ldr r1, _08189D88 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _08189D8C - str r1, [r0] -_08189D56: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08189D64: .4byte gUnknown_30074D0 -_08189D68: .4byte 0x0000FFFF -_08189D6C: .4byte gUnknown_2024174 -_08189D70: .4byte gUnknown_2023D08 -_08189D74: .4byte gUnknown_20205AC -_08189D78: .4byte gUnknown_3005ADC -_08189D7C: .4byte sub_08007140 -_08189D80: .4byte gUnknown_2023E88 -_08189D84: .4byte gUnknown_2022C90 -_08189D88: .4byte gUnknown_3005AC0 -_08189D8C: .4byte sub_081897CC - thumb_func_end sub_08189A6C - - thumb_func_start sub_08189D90 -sub_08189D90: @ 0x08189D90 - push {lr} - ldr r2, _08189DC4 - ldr r1, _08189DC8 - ldr r0, _08189DCC - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r2 - adds r0, r1, #0 - adds r0, #0x3f - ldrb r0, [r0] - lsls r0, r0, #0x1b - cmp r0, #0 - bge _08189DBE - movs r2, #0x24 - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _08189DBE - bl RecordedPlayerBufferExecCompleted -_08189DBE: - pop {r0} - bx r0 - .align 2, 0 -_08189DC4: .4byte gUnknown_20205AC -_08189DC8: .4byte gUnknown_2023E88 -_08189DCC: .4byte gUnknown_2023D08 - thumb_func_end sub_08189D90 - - thumb_func_start sub_08189DD0 -sub_08189DD0: @ 0x08189DD0 - push {r4, r5, r6, lr} - ldr r5, _08189E10 - ldrb r0, [r5] - ldr r6, _08189E14 - adds r1, r0, r6 - ldrb r1, [r1] - movs r2, #0 - movs r3, #0 - bl MoveBattleBar - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible - lsls r4, r4, #0x10 - asrs r1, r4, #0x10 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _08189E18 - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r0, [r0] - movs r2, #0 - bl sub_080726F4 - b _08189E32 - .align 2, 0 -_08189E10: .4byte gUnknown_2023D08 -_08189E14: .4byte gUnknown_3005AD0 -_08189E18: - ldr r2, _08189E38 - ldrb r1, [r5] - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r2, [r0] - movs r0, #0x64 - muls r0, r2, r0 - ldr r2, _08189E3C - adds r0, r0, r2 - bl HandleLowHpMusicChange - bl RecordedPlayerBufferExecCompleted -_08189E32: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08189E38: .4byte gUnknown_2023D12 -_08189E3C: .4byte gUnknown_2024190 - thumb_func_end sub_08189DD0 - - thumb_func_start sub_08189E40 -sub_08189E40: @ 0x08189E40 - push {r4, r5, r6, lr} - ldr r6, _08189EC4 - ldr r5, _08189EC8 - ldr r4, _08189ECC - ldrb r2, [r4] - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r3, #0x22 - ldrsh r1, [r0, r3] - movs r3, #0x26 - ldrsh r0, [r0, r3] - adds r1, r1, r0 - cmp r1, #0xa0 - ble _08189EBC - ldr r1, _08189ED0 - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _08189ED4 - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_0805DB50 - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r0, [r0, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - bl DestroySprite - ldr r1, _08189ED8 - ldrb r0, [r4] - adds r0, r0, r1 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible - bl RecordedPlayerBufferExecCompleted -_08189EBC: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08189EC4: .4byte gUnknown_20205AC -_08189EC8: .4byte gUnknown_2023E88 -_08189ECC: .4byte gUnknown_2023D08 -_08189ED0: .4byte gUnknown_2023D12 -_08189ED4: .4byte gUnknown_2024190 -_08189ED8: .4byte gUnknown_3005AD0 - thumb_func_end sub_08189E40 - - thumb_func_start sub_08189EDC -sub_08189EDC: @ 0x08189EDC - push {r4, r5, r6, lr} - ldr r0, _08189F38 - ldr r0, [r0] - ldr r6, _08189F3C - ldrb r2, [r6] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08189F30 - ldr r5, _08189F40 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _08189F44 - adds r0, r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - ldr r1, _08189F48 - ldrb r0, [r6] - adds r0, r0, r1 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible - bl RecordedPlayerBufferExecCompleted -_08189F30: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08189F38: .4byte gUnknown_2024174 -_08189F3C: .4byte gUnknown_2023D08 -_08189F40: .4byte gUnknown_2023E88 -_08189F44: .4byte gUnknown_20205AC -_08189F48: .4byte gUnknown_3005AD0 - thumb_func_end sub_08189EDC - - thumb_func_start sub_08189F4C -sub_08189F4C: @ 0x08189F4C - push {lr} - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08189F5E - bl RecordedPlayerBufferExecCompleted -_08189F5E: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08189F4C - - thumb_func_start sub_08189F64 -sub_08189F64: @ 0x08189F64 - push {r4, lr} - ldr r1, _08189FA0 - ldr r0, _08189FA4 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - ldr r2, _08189FA8 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, r0, r2 - movs r1, #0x30 - ldrsh r0, [r4, r1] - cmp r0, #0x20 - bne _08189FB0 - movs r3, #0 - movs r0, #0 - strh r0, [r4, #0x30] - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - subs r0, #5 - ands r0, r1 - strb r0, [r2] - ldr r0, _08189FAC - strb r3, [r0] - bl RecordedPlayerBufferExecCompleted - b _08189FDA - .align 2, 0 -_08189FA0: .4byte gUnknown_2023E88 -_08189FA4: .4byte gUnknown_2023D08 -_08189FA8: .4byte gUnknown_20205AC -_08189FAC: .4byte gUnknown_202415D -_08189FB0: - ldrh r0, [r4, #0x30] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _08189FD4 - adds r3, r4, #0 - adds r3, #0x3e - ldrb r2, [r3] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_08189FD4: - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] -_08189FDA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08189F64 - - thumb_func_start sub_08189FE0 -sub_08189FE0: @ 0x08189FE0 - push {r4, lr} - ldr r2, _0818A038 - ldr r0, _0818A03C - ldr r4, _0818A040 - ldrb r3, [r4] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _0818A044 - cmp r1, r0 - bne _0818A032 - adds r0, r3, #0 - bl CopyBattleSpriteInvisibility - ldr r0, _0818A048 - ldr r0, [r0] - ldrb r2, [r4] - ldr r1, [r0] - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0818A026 - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #6 - bl InitAndLaunchSpecialAnimation -_0818A026: - ldr r0, _0818A04C - ldrb r1, [r4] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, _0818A050 - str r0, [r1] -_0818A032: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0818A038: .4byte gUnknown_20205AC -_0818A03C: .4byte gUnknown_3005AD0 -_0818A040: .4byte gUnknown_2023D08 -_0818A044: .4byte sub_08007140 -_0818A048: .4byte gUnknown_2024174 -_0818A04C: .4byte gUnknown_3005AC0 -_0818A050: .4byte sub_0818A054 - thumb_func_end sub_08189FE0 - - thumb_func_start sub_0818A054 -sub_0818A054: @ 0x0818A054 - push {lr} - ldr r0, _0818A094 - ldr r1, [r0] - ldr r0, _0818A098 - ldrb r3, [r0] - ldr r1, [r1, #4] - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _0818A090 - ldr r2, _0818A09C - ldr r0, _0818A0A0 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _0818A0A4 - cmp r1, r0 - bne _0818A090 - bl RecordedPlayerBufferExecCompleted -_0818A090: - pop {r0} - bx r0 - .align 2, 0 -_0818A094: .4byte gUnknown_2024174 -_0818A098: .4byte gUnknown_2023D08 -_0818A09C: .4byte gUnknown_20205AC -_0818A0A0: .4byte gUnknown_2023E88 -_0818A0A4: .4byte sub_08007140 - thumb_func_end sub_0818A054 - - thumb_func_start sub_0818A0A8 -sub_0818A0A8: @ 0x0818A0A8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r3, _0818A170 - ldr r0, [r3] - ldr r7, _0818A174 - ldrb r1, [r7] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, r0, r2 - ldrb r1, [r2, #1] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0818A164 - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - ldr r0, [r3] - ldrb r2, [r7] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #1] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #1] - ldr r4, _0818A178 - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl FreeSpritePaletteByTag - ldr r0, _0818A17C - movs r1, #0xa - bl CreateTask - ldr r0, _0818A180 - mov r8, r0 - ldrb r1, [r7] - lsls r0, r1, #1 - add r0, r8 - ldrh r0, [r0] - movs r6, #0x64 - muls r0, r6, r0 - ldr r5, _0818A184 - adds r0, r0, r5 - bl HandleLowHpMusicChange - ldr r1, _0818A188 - ldrb r0, [r7] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0818A18C - adds r0, r0, r1 - movs r1, #0 - bl StartSpriteAnim - ldr r4, _0818A190 - ldrb r1, [r7] - adds r0, r1, r4 - ldrb r0, [r0] - lsls r1, r1, #1 - add r1, r8 - ldrh r1, [r1] - muls r1, r6, r1 - adds r1, r1, r5 - movs r2, #0 - bl UpdateHealthboxAttribute - ldrb r0, [r7] - bl sub_08076320 - ldrb r0, [r7] - adds r0, r0, r4 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible - ldr r1, _0818A194 - ldrb r0, [r7] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0818A198 - str r1, [r0] -_0818A164: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0818A170: .4byte gUnknown_2024174 -_0818A174: .4byte gUnknown_2023D08 -_0818A178: .4byte 0x000027F9 -_0818A17C: .4byte sub_08058D10 -_0818A180: .4byte gUnknown_2023D12 -_0818A184: .4byte gUnknown_2024190 -_0818A188: .4byte gUnknown_2023E88 -_0818A18C: .4byte gUnknown_20205AC -_0818A190: .4byte gUnknown_3005AD0 -_0818A194: .4byte gUnknown_3005AC0 -_0818A198: .4byte sub_08189FE0 - thumb_func_end sub_0818A0A8 - - thumb_func_start sub_0818A19C -sub_0818A19C: @ 0x0818A19C - push {r4, r5, r6, lr} - ldr r6, _0818A21C - ldr r0, [r6] - ldr r4, _0818A220 - ldrb r2, [r4] - ldr r1, [r0, #4] - lsls r3, r2, #1 - adds r0, r3, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x88 - ands r0, r1 - cmp r0, #0 - bne _0818A1CE - ldr r0, _0818A224 - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _0818A228 - adds r1, r1, r0 - adds r0, r2, #0 - bl sub_08172CD4 -_0818A1CE: - ldr r5, _0818A22C - ldr r0, _0818A230 - ldrb r2, [r4] - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r3, r0, #2 - adds r0, r5, #0 - adds r0, #0x1c - adds r0, r3, r0 - ldr r1, [r0] - ldr r0, _0818A234 - cmp r1, r0 - bne _0818A214 - ldr r0, [r6] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - bne _0818A214 - adds r0, r3, r5 - bl DestroySprite - ldr r1, _0818A238 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0818A23C - str r1, [r0] -_0818A214: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0818A21C: .4byte gUnknown_2024174 -_0818A220: .4byte gUnknown_2023D08 -_0818A224: .4byte gUnknown_2023D12 -_0818A228: .4byte gUnknown_2024190 -_0818A22C: .4byte gUnknown_20205AC -_0818A230: .4byte gUnknown_3005ADC -_0818A234: .4byte sub_08007140 -_0818A238: .4byte gUnknown_3005AC0 -_0818A23C: .4byte sub_0818A0A8 - thumb_func_end sub_0818A19C - - thumb_func_start RecordedPlayerBufferExecCompleted -RecordedPlayerBufferExecCompleted: @ 0x0818A240 - push {r4, lr} - sub sp, #4 - ldr r1, _0818A280 - ldr r4, _0818A284 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0818A288 - str r1, [r0] - ldr r0, _0818A28C - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _0818A294 - bl GetMultiplayerId - mov r1, sp - strb r0, [r1] - movs r0, #2 - movs r1, #4 - mov r2, sp - bl PrepareBufferDataTransferLink - ldr r1, _0818A290 - ldrb r0, [r4] - lsls r0, r0, #9 - adds r0, r0, r1 - movs r1, #0x38 - strb r1, [r0] - b _0818A2A6 - .align 2, 0 -_0818A280: .4byte gUnknown_3005AC0 -_0818A284: .4byte gUnknown_2023D08 -_0818A288: .4byte sub_08189694 -_0818A28C: .4byte gUnknown_2022C90 -_0818A290: .4byte gUnknown_2022D08 -_0818A294: - ldr r2, _0818A2B0 - ldr r1, _0818A2B4 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - ldr r0, [r2] - bics r0, r1 - str r0, [r2] -_0818A2A6: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0818A2B0: .4byte gUnknown_2023D0C -_0818A2B4: .4byte gUnknown_82FACB4 - thumb_func_end RecordedPlayerBufferExecCompleted - - thumb_func_start CompleteOnFinishedStatusAnimation -CompleteOnFinishedStatusAnimation: @ 0x0818A2B8 - push {lr} - ldr r0, _0818A2E0 - ldr r2, [r0] - ldr r0, _0818A2E4 - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _0818A2DA - bl RecordedPlayerBufferExecCompleted -_0818A2DA: - pop {r0} - bx r0 - .align 2, 0 -_0818A2E0: .4byte gUnknown_2024174 -_0818A2E4: .4byte gUnknown_2023D08 - thumb_func_end CompleteOnFinishedStatusAnimation - - thumb_func_start CompleteOnFinishedBattleAnimation -CompleteOnFinishedBattleAnimation: @ 0x0818A2E8 - push {lr} - ldr r0, _0818A310 - ldr r2, [r0] - ldr r0, _0818A314 - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _0818A30A - bl RecordedPlayerBufferExecCompleted -_0818A30A: - pop {r0} - bx r0 - .align 2, 0 -_0818A310: .4byte gUnknown_2024174 -_0818A314: .4byte gUnknown_2023D08 - thumb_func_end CompleteOnFinishedBattleAnimation - - thumb_func_start RecordedPlayerHandleGetMonData -RecordedPlayerHandleGetMonData: @ 0x0818A318 - push {r4, r5, r6, lr} - sub sp, #0x100 - movs r6, #0 - ldr r1, _0818A344 - ldr r0, _0818A348 - ldrb r2, [r0] - lsls r0, r2, #9 - adds r1, #2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, #0 - bne _0818A350 - ldr r0, _0818A34C - lsls r1, r2, #1 - adds r1, r1, r0 - ldrb r0, [r1] - mov r1, sp - bl sub_0818A38C - adds r6, r0, #0 - b _0818A372 - .align 2, 0 -_0818A344: .4byte gUnknown_2022D08 -_0818A348: .4byte gUnknown_2023D08 -_0818A34C: .4byte gUnknown_2023D12 -_0818A350: - ldrb r4, [r1] - movs r5, #0 -_0818A354: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _0818A36A - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - mov r2, sp - adds r1, r2, r6 - bl sub_0818A38C - adds r6, r6, r0 -_0818A36A: - lsrs r4, r4, #1 - adds r5, #1 - cmp r5, #5 - ble _0818A354 -_0818A372: - lsls r1, r6, #0x10 - lsrs r1, r1, #0x10 - movs r0, #1 - mov r2, sp - bl BtlController_EmitDataTransfer - bl RecordedPlayerBufferExecCompleted - add sp, #0x100 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedPlayerHandleGetMonData - - thumb_func_start sub_0818A38C -sub_0818A38C: @ 0x0818A38C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x90 - adds r7, r1, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r6, #0 - ldr r2, _0818A3C0 - ldr r3, _0818A3C4 - ldrb r0, [r3] - lsls r0, r0, #9 - adds r1, r2, #1 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0x3b - bls _0818A3B6 - bl _0818AB22 -_0818A3B6: - lsls r0, r0, #2 - ldr r1, _0818A3C8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0818A3C0: .4byte gUnknown_2022D08 -_0818A3C4: .4byte gUnknown_2023D08 -_0818A3C8: .4byte _0818A3CC -_0818A3CC: @ jump table - .4byte _0818A4BC @ case 0 - .4byte _0818A6E0 @ case 1 - .4byte _0818A6F0 @ case 2 - .4byte _0818A700 @ case 3 - .4byte _0818A768 @ case 4 - .4byte _0818A768 @ case 5 - .4byte _0818A768 @ case 6 - .4byte _0818A768 @ case 7 - .4byte _0818A784 @ case 8 - .4byte _0818A7C0 @ case 9 - .4byte _0818A7C0 @ case 10 - .4byte _0818A7C0 @ case 11 - .4byte _0818A7C0 @ case 12 - .4byte _0818AB22 @ case 13 - .4byte _0818AB22 @ case 14 - .4byte _0818AB22 @ case 15 - .4byte _0818AB22 @ case 16 - .4byte _0818A7DC @ case 17 - .4byte _0818A7EC @ case 18 - .4byte _0818A81C @ case 19 - .4byte _0818A82C @ case 20 - .4byte _0818A83C @ case 21 - .4byte _0818A84C @ case 22 - .4byte _0818A85C @ case 23 - .4byte _0818A86C @ case 24 - .4byte _0818A87C @ case 25 - .4byte _0818A88C @ case 26 - .4byte _0818A89C @ case 27 - .4byte _0818A8AC @ case 28 - .4byte _0818A8BC @ case 29 - .4byte _0818A8CC @ case 30 - .4byte _0818A8DC @ case 31 - .4byte _0818A92C @ case 32 - .4byte _0818A93C @ case 33 - .4byte _0818A94C @ case 34 - .4byte _0818A95C @ case 35 - .4byte _0818A96C @ case 36 - .4byte _0818A97C @ case 37 - .4byte _0818A98C @ case 38 - .4byte _0818A99C @ case 39 - .4byte _0818A9AC @ case 40 - .4byte _0818A9E0 @ case 41 - .4byte _0818A9F0 @ case 42 - .4byte _0818AA00 @ case 43 - .4byte _0818AA10 @ case 44 - .4byte _0818AA20 @ case 45 - .4byte _0818AA30 @ case 46 - .4byte _0818AA40 @ case 47 - .4byte _0818AA50 @ case 48 - .4byte _0818AA70 @ case 49 - .4byte _0818AA80 @ case 50 - .4byte _0818AA90 @ case 51 - .4byte _0818AAA0 @ case 52 - .4byte _0818AAB0 @ case 53 - .4byte _0818AAC0 @ case 54 - .4byte _0818AAD0 @ case 55 - .4byte _0818AAE0 @ case 56 - .4byte _0818AAF0 @ case 57 - .4byte _0818AB00 @ case 58 - .4byte _0818AB10 @ case 59 -_0818A4BC: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _0818A6D0 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - mov r1, sp - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0xc - bl GetMonData - mov r1, sp - strh r0, [r1, #0x2e] - movs r6, #0 - add r0, sp, #0x24 - mov sb, r0 - movs r1, #0x3b - add r1, sp - mov sl, r1 - mov r2, sp - adds r2, #0x2b - str r2, [sp, #0x80] - mov r0, sp - adds r0, #0x2a - str r0, [sp, #0x7c] - mov r1, sp - adds r1, #0x68 - str r1, [sp, #0x8c] - adds r2, #5 - str r2, [sp, #0x84] - adds r0, #0x12 - str r0, [sp, #0x88] - mov r8, r4 - add r4, sp, #0xc -_0818A508: - adds r1, r6, #0 - adds r1, #0xd - mov r0, r8 - bl GetMonData - strh r0, [r4] - adds r1, r6, #0 - adds r1, #0x11 - mov r0, r8 - bl GetMonData - mov r2, sb - adds r1, r2, r6 - strb r0, [r1] - adds r4, #2 - adds r6, #1 - cmp r6, #3 - ble _0818A508 - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _0818A6D0 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x15 - bl GetMonData - mov r1, sl - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x20 - bl GetMonData - ldr r2, [sp, #0x80] - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0x19 - bl GetMonData - str r0, [sp, #0x44] - adds r0, r4, #0 - movs r1, #0x27 - bl GetMonData - mov r3, sp - movs r5, #0x1f - ands r0, r5 - ldrb r2, [r3, #0x14] - movs r1, #0x20 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x14] - adds r0, r4, #0 - movs r1, #0x28 - bl GetMonData - mov r3, sp - movs r6, #0x1f - ands r0, r6 - lsls r0, r0, #5 - ldrh r2, [r3, #0x14] - ldr r1, _0818A6D4 - ands r1, r2 - orrs r1, r0 - strh r1, [r3, #0x14] - adds r0, r4, #0 - movs r1, #0x29 - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, r0, #2 - ldrb r2, [r3, #0x15] - movs r1, #0x7d - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x15] - adds r0, r4, #0 - movs r1, #0x2a - bl GetMonData - movs r1, #0x1f - ands r1, r0 - lsls r1, r1, #0xf - ldr r0, [sp, #0x14] - ldr r2, _0818A6D8 - ands r0, r2 - orrs r0, r1 - str r0, [sp, #0x14] - adds r0, r4, #0 - movs r1, #0x2b - bl GetMonData - mov r3, sp - ands r0, r6 - lsls r0, r0, #4 - ldrh r2, [r3, #0x16] - ldr r1, _0818A6DC - ands r1, r2 - orrs r1, r0 - strh r1, [r3, #0x16] - adds r0, r4, #0 - movs r1, #0x2c - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, r0, #1 - ldrb r2, [r3, #0x17] - movs r1, #0x3f - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x17] - adds r0, r4, #0 - movs r1, #0 - bl GetMonData - str r0, [sp, #0x48] - adds r0, r4, #0 - movs r1, #0x37 - bl GetMonData - str r0, [sp, #0x4c] - adds r0, r4, #0 - movs r1, #0x38 - bl GetMonData - ldr r1, [sp, #0x7c] - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - mov r1, sp - strh r0, [r1, #0x28] - adds r0, r4, #0 - movs r1, #0x3a - bl GetMonData - mov r1, sp - strh r0, [r1, #0x2c] - adds r0, r4, #0 - movs r1, #0x3b - bl GetMonData - mov r1, sp - strh r0, [r1, #2] - adds r0, r4, #0 - movs r1, #0x3c - bl GetMonData - mov r1, sp - strh r0, [r1, #4] - adds r0, r4, #0 - movs r1, #0x3d - bl GetMonData - mov r1, sp - strh r0, [r1, #6] - adds r0, r4, #0 - movs r1, #0x3e - bl GetMonData - mov r1, sp - strh r0, [r1, #8] - adds r0, r4, #0 - movs r1, #0x3f - bl GetMonData - mov r1, sp - strh r0, [r1, #0xa] - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - mov r3, sp - movs r1, #1 - ands r0, r1 - lsls r0, r0, #6 - ldrb r2, [r3, #0x17] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x17] - adds r0, r4, #0 - movs r1, #0x2e - bl GetMonData - mov r3, sp - lsls r0, r0, #7 - ldrb r2, [r3, #0x17] - movs r1, #0x7f - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x17] - adds r0, r4, #0 - movs r1, #1 - bl GetMonData - str r0, [sp, #0x54] - adds r0, r4, #0 - movs r1, #2 - ldr r2, [sp, #0x8c] - bl GetMonData - ldr r0, [sp, #0x84] - ldr r1, [sp, #0x8c] - bl StringCopy10 - adds r0, r4, #0 - movs r1, #7 - ldr r2, [sp, #0x88] - bl GetMonData - mov r2, sp - movs r6, #0 -_0818A6C0: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, #1 - cmp r6, #0x57 - bls _0818A6C0 - b _0818AB22 - .align 2, 0 -_0818A6D0: .4byte gUnknown_2024190 -_0818A6D4: .4byte 0xFFFFFC1F -_0818A6D8: .4byte 0xFFF07FFF -_0818A6DC: .4byte 0xFFFFFE0F -_0818A6E0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818A6EC - adds r0, r0, r1 - movs r1, #0xb - b _0818AA5A - .align 2, 0 -_0818A6EC: .4byte gUnknown_2024190 -_0818A6F0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818A6FC - adds r0, r0, r1 - movs r1, #0xc - b _0818AA5A - .align 2, 0 -_0818A6FC: .4byte gUnknown_2024190 -_0818A700: - movs r6, #0 - add r2, sp, #0x58 - mov sb, r2 - add r0, sp, #0x60 - mov sl, r0 - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _0818A764 - adds r4, r1, r0 - mov r8, sb -_0818A716: - adds r1, r6, #0 - adds r1, #0xd - adds r0, r4, #0 - bl GetMonData - mov r1, r8 - strh r0, [r1] - adds r1, r6, #0 - adds r1, #0x11 - adds r0, r4, #0 - bl GetMonData - mov r2, sl - adds r1, r2, r6 - strb r0, [r1] - movs r0, #2 - add r8, r0 - adds r6, #1 - cmp r6, #3 - ble _0818A716 - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818A764 - adds r0, r0, r1 - movs r1, #0x15 - bl GetMonData - mov r1, sb - strb r0, [r1, #0xc] - mov r2, sb - movs r6, #0 -_0818A754: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, #1 - cmp r6, #0xf - bls _0818A754 - b _0818AB22 - .align 2, 0 -_0818A764: .4byte gUnknown_2024190 -_0818A768: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818A780 - adds r0, r0, r1 - ldrb r1, [r3] - lsls r1, r1, #9 - adds r2, #1 - adds r1, r1, r2 - ldrb r1, [r1] - adds r1, #9 - b _0818AA5A - .align 2, 0 -_0818A780: .4byte gUnknown_2024190 -_0818A784: - movs r6, #0 - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r2, _0818A7BC - mov r8, r2 -_0818A790: - adds r1, r6, #0 - adds r1, #0x11 - mov r2, r8 - adds r0, r4, r2 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, #1 - cmp r6, #3 - ble _0818A790 - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818A7BC - adds r0, r0, r1 - movs r1, #0x15 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, #1 - b _0818AB22 - .align 2, 0 -_0818A7BC: .4byte gUnknown_2024190 -_0818A7C0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818A7D8 - adds r0, r0, r1 - ldrb r1, [r3] - lsls r1, r1, #9 - adds r2, #1 - adds r1, r1, r2 - ldrb r1, [r1] - adds r1, #8 - b _0818AB1A - .align 2, 0 -_0818A7D8: .4byte gUnknown_2024190 -_0818A7DC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818A7E8 - adds r0, r0, r1 - movs r1, #1 - b _0818A7F6 - .align 2, 0 -_0818A7E8: .4byte gUnknown_2024190 -_0818A7EC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818A818 - adds r0, r0, r1 - movs r1, #0x19 -_0818A7F6: - bl GetMonData - adds r1, r0, #0 - strb r1, [r7] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - lsrs r0, r0, #8 - strb r0, [r7, #1] - movs r0, #0xff - lsls r0, r0, #0x10 - ands r0, r1 - lsrs r0, r0, #0x10 - strb r0, [r7, #2] - movs r6, #3 - b _0818AB22 - .align 2, 0 -_0818A818: .4byte gUnknown_2024190 -_0818A81C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818A828 - adds r0, r0, r1 - movs r1, #0x1a - b _0818AB1A - .align 2, 0 -_0818A828: .4byte gUnknown_2024190 -_0818A82C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818A838 - adds r0, r0, r1 - movs r1, #0x1b - b _0818AB1A - .align 2, 0 -_0818A838: .4byte gUnknown_2024190 -_0818A83C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818A848 - adds r0, r0, r1 - movs r1, #0x1c - b _0818AB1A - .align 2, 0 -_0818A848: .4byte gUnknown_2024190 -_0818A84C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818A858 - adds r0, r0, r1 - movs r1, #0x1d - b _0818AB1A - .align 2, 0 -_0818A858: .4byte gUnknown_2024190 -_0818A85C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818A868 - adds r0, r0, r1 - movs r1, #0x1e - b _0818AB1A - .align 2, 0 -_0818A868: .4byte gUnknown_2024190 -_0818A86C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818A878 - adds r0, r0, r1 - movs r1, #0x1f - b _0818AB1A - .align 2, 0 -_0818A878: .4byte gUnknown_2024190 -_0818A87C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818A888 - adds r0, r0, r1 - movs r1, #0x20 - b _0818AB1A - .align 2, 0 -_0818A888: .4byte gUnknown_2024190 -_0818A88C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818A898 - adds r0, r0, r1 - movs r1, #0x22 - b _0818AB1A - .align 2, 0 -_0818A898: .4byte gUnknown_2024190 -_0818A89C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818A8A8 - adds r0, r0, r1 - movs r1, #0x23 - b _0818AB1A - .align 2, 0 -_0818A8A8: .4byte gUnknown_2024190 -_0818A8AC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818A8B8 - adds r0, r0, r1 - movs r1, #0x24 - b _0818AB1A - .align 2, 0 -_0818A8B8: .4byte gUnknown_2024190 -_0818A8BC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818A8C8 - adds r0, r0, r1 - movs r1, #0x25 - b _0818AB1A - .align 2, 0 -_0818A8C8: .4byte gUnknown_2024190 -_0818A8CC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818A8D8 - adds r0, r0, r1 - movs r1, #0x26 - b _0818AB1A - .align 2, 0 -_0818A8D8: .4byte gUnknown_2024190 -_0818A8DC: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _0818A928 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x27 - bl GetMonData - strb r0, [r7] - adds r0, r4, #0 - movs r1, #0x28 - bl GetMonData - strb r0, [r7, #1] - adds r0, r4, #0 - movs r1, #0x29 - bl GetMonData - strb r0, [r7, #2] - adds r0, r4, #0 - movs r1, #0x2a - bl GetMonData - strb r0, [r7, #3] - adds r0, r4, #0 - movs r1, #0x2b - bl GetMonData - strb r0, [r7, #4] - adds r0, r4, #0 - movs r1, #0x2c - bl GetMonData - strb r0, [r7, #5] - movs r6, #6 - b _0818AB22 - .align 2, 0 -_0818A928: .4byte gUnknown_2024190 -_0818A92C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818A938 - adds r0, r0, r1 - movs r1, #0x27 - b _0818AB1A - .align 2, 0 -_0818A938: .4byte gUnknown_2024190 -_0818A93C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818A948 - adds r0, r0, r1 - movs r1, #0x28 - b _0818AB1A - .align 2, 0 -_0818A948: .4byte gUnknown_2024190 -_0818A94C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818A958 - adds r0, r0, r1 - movs r1, #0x29 - b _0818AB1A - .align 2, 0 -_0818A958: .4byte gUnknown_2024190 -_0818A95C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818A968 - adds r0, r0, r1 - movs r1, #0x2a - b _0818AB1A - .align 2, 0 -_0818A968: .4byte gUnknown_2024190 -_0818A96C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818A978 - adds r0, r0, r1 - movs r1, #0x2b - b _0818AB1A - .align 2, 0 -_0818A978: .4byte gUnknown_2024190 -_0818A97C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818A988 - adds r0, r0, r1 - movs r1, #0x2c - b _0818AB1A - .align 2, 0 -_0818A988: .4byte gUnknown_2024190 -_0818A98C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818A998 - adds r0, r0, r1 - movs r1, #0 - b _0818A9B6 - .align 2, 0 -_0818A998: .4byte gUnknown_2024190 -_0818A99C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818A9A8 - adds r0, r0, r1 - movs r1, #9 - b _0818AA5A - .align 2, 0 -_0818A9A8: .4byte gUnknown_2024190 -_0818A9AC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818A9DC - adds r0, r0, r1 - movs r1, #0x37 -_0818A9B6: - bl GetMonData - adds r1, r0, #0 - strb r1, [r7] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - lsrs r0, r0, #8 - strb r0, [r7, #1] - movs r0, #0xff - lsls r0, r0, #0x10 - ands r0, r1 - lsrs r0, r0, #0x10 - strb r0, [r7, #2] - lsrs r0, r1, #0x18 - strb r0, [r7, #3] - movs r6, #4 - b _0818AB22 - .align 2, 0 -_0818A9DC: .4byte gUnknown_2024190 -_0818A9E0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818A9EC - adds r0, r0, r1 - movs r1, #0x38 - b _0818AB1A - .align 2, 0 -_0818A9EC: .4byte gUnknown_2024190 -_0818A9F0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818A9FC - adds r0, r0, r1 - movs r1, #0x39 - b _0818AA5A - .align 2, 0 -_0818A9FC: .4byte gUnknown_2024190 -_0818AA00: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818AA0C - adds r0, r0, r1 - movs r1, #0x3a - b _0818AA5A - .align 2, 0 -_0818AA0C: .4byte gUnknown_2024190 -_0818AA10: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818AA1C - adds r0, r0, r1 - movs r1, #0x3b - b _0818AA5A - .align 2, 0 -_0818AA1C: .4byte gUnknown_2024190 -_0818AA20: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818AA2C - adds r0, r0, r1 - movs r1, #0x3c - b _0818AA5A - .align 2, 0 -_0818AA2C: .4byte gUnknown_2024190 -_0818AA30: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818AA3C - adds r0, r0, r1 - movs r1, #0x3d - b _0818AA5A - .align 2, 0 -_0818AA3C: .4byte gUnknown_2024190 -_0818AA40: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818AA4C - adds r0, r0, r1 - movs r1, #0x3e - b _0818AA5A - .align 2, 0 -_0818AA4C: .4byte gUnknown_2024190 -_0818AA50: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818AA6C - adds r0, r0, r1 - movs r1, #0x3f -_0818AA5A: - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - strb r0, [r7] - lsrs r0, r0, #8 - strb r0, [r7, #1] - movs r6, #2 - b _0818AB22 - .align 2, 0 -_0818AA6C: .4byte gUnknown_2024190 -_0818AA70: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818AA7C - adds r0, r0, r1 - movs r1, #0x16 - b _0818AB1A - .align 2, 0 -_0818AA7C: .4byte gUnknown_2024190 -_0818AA80: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818AA8C - adds r0, r0, r1 - movs r1, #0x17 - b _0818AB1A - .align 2, 0 -_0818AA8C: .4byte gUnknown_2024190 -_0818AA90: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818AA9C - adds r0, r0, r1 - movs r1, #0x18 - b _0818AB1A - .align 2, 0 -_0818AA9C: .4byte gUnknown_2024190 -_0818AAA0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818AAAC - adds r0, r0, r1 - movs r1, #0x21 - b _0818AB1A - .align 2, 0 -_0818AAAC: .4byte gUnknown_2024190 -_0818AAB0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818AABC - adds r0, r0, r1 - movs r1, #0x2f - b _0818AB1A - .align 2, 0 -_0818AABC: .4byte gUnknown_2024190 -_0818AAC0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818AACC - adds r0, r0, r1 - movs r1, #0x30 - b _0818AB1A - .align 2, 0 -_0818AACC: .4byte gUnknown_2024190 -_0818AAD0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818AADC - adds r0, r0, r1 - movs r1, #0x32 - b _0818AB1A - .align 2, 0 -_0818AADC: .4byte gUnknown_2024190 -_0818AAE0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818AAEC - adds r0, r0, r1 - movs r1, #0x33 - b _0818AB1A - .align 2, 0 -_0818AAEC: .4byte gUnknown_2024190 -_0818AAF0: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818AAFC - adds r0, r0, r1 - movs r1, #0x34 - b _0818AB1A - .align 2, 0 -_0818AAFC: .4byte gUnknown_2024190 -_0818AB00: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818AB0C - adds r0, r0, r1 - movs r1, #0x35 - b _0818AB1A - .align 2, 0 -_0818AB0C: .4byte gUnknown_2024190 -_0818AB10: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818AB34 - adds r0, r0, r1 - movs r1, #0x36 -_0818AB1A: - bl GetMonData - strb r0, [r7] - movs r6, #1 -_0818AB22: - adds r0, r6, #0 - add sp, #0x90 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0818AB34: .4byte gUnknown_2024190 - thumb_func_end sub_0818A38C - - thumb_func_start sub_0818AB38 -sub_0818AB38: @ 0x0818AB38 - push {lr} - bl RecordedPlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0818AB38 - - thumb_func_start sub_0818AB44 -sub_0818AB44: @ 0x0818AB44 - push {r4, r5, lr} - ldr r1, _0818AB68 - ldr r0, _0818AB6C - ldrb r2, [r0] - lsls r0, r2, #9 - adds r1, #2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, #0 - bne _0818AB74 - ldr r0, _0818AB70 - lsls r1, r2, #1 - adds r1, r1, r0 - ldrb r0, [r1] - bl SetRecordedPlayerMonData - b _0818AB92 - .align 2, 0 -_0818AB68: .4byte gUnknown_2022D08 -_0818AB6C: .4byte gUnknown_2023D08 -_0818AB70: .4byte gUnknown_2023D12 -_0818AB74: - ldrb r4, [r1] - movs r5, #0 -_0818AB78: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _0818AB86 - adds r0, r5, #0 - bl SetRecordedPlayerMonData -_0818AB86: - lsrs r4, r4, #1 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #5 - bls _0818AB78 -_0818AB92: - bl RecordedPlayerBufferExecCompleted - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_0818AB44 - - thumb_func_start SetRecordedPlayerMonData -SetRecordedPlayerMonData: @ 0x0818AB9C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x34 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _0818ABD4 - ldrb r0, [r0] - lsls r0, r0, #9 - ldr r2, _0818ABD8 - adds r3, r0, r2 - adds r6, r3, #0 - subs r1, r2, #2 - adds r0, r0, r1 - ldrb r0, [r0] - adds r7, r2, #0 - cmp r0, #0x3b - bls _0818ABC8 - bl _0818B562 -_0818ABC8: - lsls r0, r0, #2 - ldr r1, _0818ABDC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0818ABD4: .4byte gUnknown_2023D08 -_0818ABD8: .4byte gUnknown_2022D0B -_0818ABDC: .4byte _0818ABE0 -_0818ABE0: @ jump table - .4byte _0818ACD0 @ case 0 - .4byte _0818AE68 @ case 1 - .4byte _0818AE88 @ case 2 - .4byte _0818AEA8 @ case 3 - .4byte _0818AF00 @ case 4 - .4byte _0818AF00 @ case 5 - .4byte _0818AF00 @ case 6 - .4byte _0818AF00 @ case 7 - .4byte _0818AF28 @ case 8 - .4byte _0818AF8C @ case 9 - .4byte _0818AF8C @ case 10 - .4byte _0818AF8C @ case 11 - .4byte _0818AF8C @ case 12 - .4byte _0818B562 @ case 13 - .4byte _0818B562 @ case 14 - .4byte _0818B562 @ case 15 - .4byte _0818B562 @ case 16 - .4byte _0818AFBC @ case 17 - .4byte _0818AFDC @ case 18 - .4byte _0818AFFC @ case 19 - .4byte _0818B01C @ case 20 - .4byte _0818B03C @ case 21 - .4byte _0818B05C @ case 22 - .4byte _0818B07C @ case 23 - .4byte _0818B09C @ case 24 - .4byte _0818B0BC @ case 25 - .4byte _0818B0DC @ case 26 - .4byte _0818B0FC @ case 27 - .4byte _0818B11C @ case 28 - .4byte _0818B13C @ case 29 - .4byte _0818B15C @ case 30 - .4byte _0818B17C @ case 31 - .4byte _0818B1EC @ case 32 - .4byte _0818B20C @ case 33 - .4byte _0818B22C @ case 34 - .4byte _0818B24C @ case 35 - .4byte _0818B26C @ case 36 - .4byte _0818B28C @ case 37 - .4byte _0818B2AC @ case 38 - .4byte _0818B2CC @ case 39 - .4byte _0818B2EC @ case 40 - .4byte _0818B30C @ case 41 - .4byte _0818B32C @ case 42 - .4byte _0818B34C @ case 43 - .4byte _0818B36C @ case 44 - .4byte _0818B38C @ case 45 - .4byte _0818B3AC @ case 46 - .4byte _0818B3CC @ case 47 - .4byte _0818B3EC @ case 48 - .4byte _0818B40C @ case 49 - .4byte _0818B42C @ case 50 - .4byte _0818B44C @ case 51 - .4byte _0818B46C @ case 52 - .4byte _0818B48C @ case 53 - .4byte _0818B4AC @ case 54 - .4byte _0818B4CC @ case 55 - .4byte _0818B4EC @ case 56 - .4byte _0818B50C @ case 57 - .4byte _0818B52C @ case 58 - .4byte _0818B54C @ case 59 -_0818ACD0: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _0818AE64 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0xb - adds r2, r6, #0 - bl SetMonData - adds r2, r6, #0 - adds r2, #0x2e - adds r0, r4, #0 - movs r1, #0xc - bl SetMonData - movs r0, #0 - mov r8, r0 - movs r0, #0x3b - adds r0, r0, r6 - mov sl, r0 - adds r0, r6, #0 - adds r0, #0x2b - str r0, [sp, #0x20] - adds r0, #0x19 - str r0, [sp, #0x28] - adds r0, #4 - str r0, [sp, #0x2c] - adds r0, #4 - str r0, [sp, #0x30] - subs r0, #0x22 - str r0, [sp, #0x1c] - subs r0, #2 - str r0, [sp, #0x18] - adds r0, #4 - str r0, [sp, #0x24] - adds r0, r6, #2 - str r0, [sp, #4] - adds r0, r6, #4 - str r0, [sp, #8] - adds r0, r6, #6 - str r0, [sp, #0xc] - adds r0, #2 - str r0, [sp, #0x10] - adds r0, #2 - str r0, [sp, #0x14] - mov sb, r4 - adds r7, r6, #0 - adds r7, #0x24 - adds r4, r6, #0 - adds r4, #0xc -_0818AD36: - mov r1, r8 - adds r1, #0xd - mov r0, sb - adds r2, r4, #0 - bl SetMonData - mov r1, r8 - adds r1, #0x11 - mov r0, sb - adds r2, r7, #0 - bl SetMonData - adds r7, #1 - adds r4, #2 - movs r0, #1 - add r8, r0 - mov r0, r8 - cmp r0, #3 - ble _0818AD36 - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _0818AE64 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x15 - mov r2, sl - bl SetMonData - adds r0, r4, #0 - movs r1, #0x20 - ldr r2, [sp, #0x20] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x19 - ldr r2, [sp, #0x28] - bl SetMonData - ldrb r0, [r6, #0x14] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1b - mov r1, sp - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x27 - mov r2, sp - bl SetMonData - mov r1, sp - ldrh r0, [r6, #0x14] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x28 - mov r2, sp - bl SetMonData - mov r1, sp - ldrb r0, [r6, #0x15] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x29 - mov r2, sp - bl SetMonData - mov r1, sp - ldr r0, [r6, #0x14] - lsls r0, r0, #0xc - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x2a - mov r2, sp - bl SetMonData - mov r1, sp - ldrh r0, [r6, #0x16] - lsls r0, r0, #0x17 - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x2b - mov r2, sp - bl SetMonData - mov r1, sp - ldrb r0, [r6, #0x17] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x2c - mov r2, sp - bl SetMonData - adds r0, r4, #0 - movs r1, #0 - ldr r2, [sp, #0x2c] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x37 - ldr r2, [sp, #0x30] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x38 - ldr r2, [sp, #0x1c] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x39 - ldr r2, [sp, #0x18] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3a - ldr r2, [sp, #0x24] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3b - ldr r2, [sp, #4] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3c - ldr r2, [sp, #8] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3d - ldr r2, [sp, #0xc] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3e - ldr r2, [sp, #0x10] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3f - ldr r2, [sp, #0x14] - bl SetMonData - b _0818B562 - .align 2, 0 -_0818AE64: .4byte gUnknown_2024190 -_0818AE68: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818AE80 - adds r0, r0, r1 - ldr r1, _0818AE84 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0xb - bl SetMonData - b _0818B562 - .align 2, 0 -_0818AE80: .4byte gUnknown_2024190 -_0818AE84: .4byte gUnknown_2023D08 -_0818AE88: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818AEA0 - adds r0, r0, r1 - ldr r1, _0818AEA4 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0xc - bl SetMonData - b _0818B562 - .align 2, 0 -_0818AEA0: .4byte gUnknown_2024190 -_0818AEA4: .4byte gUnknown_2023D08 -_0818AEA8: - movs r0, #0 - mov r8, r0 - movs r0, #0xc - adds r0, r0, r3 - mov sb, r0 - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _0818AEFC - adds r7, r1, r0 - adds r6, r3, #0 - adds r6, #8 - adds r4, r3, #0 -_0818AEC2: - mov r1, r8 - adds r1, #0xd - adds r0, r7, #0 - adds r2, r4, #0 - bl SetMonData - mov r1, r8 - adds r1, #0x11 - adds r0, r7, #0 - adds r2, r6, #0 - bl SetMonData - adds r6, #1 - adds r4, #2 - movs r0, #1 - add r8, r0 - mov r0, r8 - cmp r0, #3 - ble _0818AEC2 - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818AEFC - adds r0, r0, r1 - movs r1, #0x15 - mov r2, sb - bl SetMonData - b _0818B562 - .align 2, 0 -_0818AEFC: .4byte gUnknown_2024190 -_0818AF00: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818AF1C - adds r0, r0, r1 - ldr r3, _0818AF20 - ldr r1, _0818AF24 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r1, r3, #1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, #9 - b _0818AFA4 - .align 2, 0 -_0818AF1C: .4byte gUnknown_2024190 -_0818AF20: .4byte gUnknown_2022D08 -_0818AF24: .4byte gUnknown_2023D08 -_0818AF28: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _0818AF84 - adds r4, r4, r0 - ldr r5, _0818AF88 - ldrb r2, [r5] - lsls r2, r2, #9 - adds r2, r2, r7 - adds r0, r4, #0 - movs r1, #0x11 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #1 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x12 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #2 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x13 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #3 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x14 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #4 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x15 - bl SetMonData - b _0818B562 - .align 2, 0 -_0818AF84: .4byte gUnknown_2024190 -_0818AF88: .4byte gUnknown_2023D08 -_0818AF8C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818AFB0 - adds r0, r0, r1 - ldr r3, _0818AFB4 - ldr r1, _0818AFB8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r1, r3, #1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, #8 -_0818AFA4: - adds r3, #3 - adds r2, r2, r3 - bl SetMonData - b _0818B562 - .align 2, 0 -_0818AFB0: .4byte gUnknown_2024190 -_0818AFB4: .4byte gUnknown_2022D08 -_0818AFB8: .4byte gUnknown_2023D08 -_0818AFBC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818AFD4 - adds r0, r0, r1 - ldr r1, _0818AFD8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #1 - bl SetMonData - b _0818B562 - .align 2, 0 -_0818AFD4: .4byte gUnknown_2024190 -_0818AFD8: .4byte gUnknown_2023D08 -_0818AFDC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818AFF4 - adds r0, r0, r1 - ldr r1, _0818AFF8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x19 - bl SetMonData - b _0818B562 - .align 2, 0 -_0818AFF4: .4byte gUnknown_2024190 -_0818AFF8: .4byte gUnknown_2023D08 -_0818AFFC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B014 - adds r0, r0, r1 - ldr r1, _0818B018 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x1a - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B014: .4byte gUnknown_2024190 -_0818B018: .4byte gUnknown_2023D08 -_0818B01C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B034 - adds r0, r0, r1 - ldr r1, _0818B038 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x1b - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B034: .4byte gUnknown_2024190 -_0818B038: .4byte gUnknown_2023D08 -_0818B03C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B054 - adds r0, r0, r1 - ldr r1, _0818B058 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x1c - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B054: .4byte gUnknown_2024190 -_0818B058: .4byte gUnknown_2023D08 -_0818B05C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B074 - adds r0, r0, r1 - ldr r1, _0818B078 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x1d - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B074: .4byte gUnknown_2024190 -_0818B078: .4byte gUnknown_2023D08 -_0818B07C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B094 - adds r0, r0, r1 - ldr r1, _0818B098 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x1e - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B094: .4byte gUnknown_2024190 -_0818B098: .4byte gUnknown_2023D08 -_0818B09C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B0B4 - adds r0, r0, r1 - ldr r1, _0818B0B8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x1f - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B0B4: .4byte gUnknown_2024190 -_0818B0B8: .4byte gUnknown_2023D08 -_0818B0BC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B0D4 - adds r0, r0, r1 - ldr r1, _0818B0D8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x20 - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B0D4: .4byte gUnknown_2024190 -_0818B0D8: .4byte gUnknown_2023D08 -_0818B0DC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B0F4 - adds r0, r0, r1 - ldr r1, _0818B0F8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x22 - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B0F4: .4byte gUnknown_2024190 -_0818B0F8: .4byte gUnknown_2023D08 -_0818B0FC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B114 - adds r0, r0, r1 - ldr r1, _0818B118 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x23 - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B114: .4byte gUnknown_2024190 -_0818B118: .4byte gUnknown_2023D08 -_0818B11C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B134 - adds r0, r0, r1 - ldr r1, _0818B138 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x24 - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B134: .4byte gUnknown_2024190 -_0818B138: .4byte gUnknown_2023D08 -_0818B13C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B154 - adds r0, r0, r1 - ldr r1, _0818B158 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x25 - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B154: .4byte gUnknown_2024190 -_0818B158: .4byte gUnknown_2023D08 -_0818B15C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B174 - adds r0, r0, r1 - ldr r1, _0818B178 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x26 - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B174: .4byte gUnknown_2024190 -_0818B178: .4byte gUnknown_2023D08 -_0818B17C: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _0818B1E4 - adds r4, r4, r0 - ldr r5, _0818B1E8 - ldrb r2, [r5] - lsls r2, r2, #9 - adds r2, r2, r7 - adds r0, r4, #0 - movs r1, #0x27 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #1 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x28 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #2 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x29 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #3 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x2a - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #4 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x2b - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #5 - adds r2, r2, r0 - adds r0, r4, #0 - b _0818B29C - .align 2, 0 -_0818B1E4: .4byte gUnknown_2024190 -_0818B1E8: .4byte gUnknown_2023D08 -_0818B1EC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B204 - adds r0, r0, r1 - ldr r1, _0818B208 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x27 - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B204: .4byte gUnknown_2024190 -_0818B208: .4byte gUnknown_2023D08 -_0818B20C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B224 - adds r0, r0, r1 - ldr r1, _0818B228 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x28 - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B224: .4byte gUnknown_2024190 -_0818B228: .4byte gUnknown_2023D08 -_0818B22C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B244 - adds r0, r0, r1 - ldr r1, _0818B248 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x29 - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B244: .4byte gUnknown_2024190 -_0818B248: .4byte gUnknown_2023D08 -_0818B24C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B264 - adds r0, r0, r1 - ldr r1, _0818B268 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x2a - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B264: .4byte gUnknown_2024190 -_0818B268: .4byte gUnknown_2023D08 -_0818B26C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B284 - adds r0, r0, r1 - ldr r1, _0818B288 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x2b - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B284: .4byte gUnknown_2024190 -_0818B288: .4byte gUnknown_2023D08 -_0818B28C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B2A4 - adds r0, r0, r1 - ldr r1, _0818B2A8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 -_0818B29C: - movs r1, #0x2c - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B2A4: .4byte gUnknown_2024190 -_0818B2A8: .4byte gUnknown_2023D08 -_0818B2AC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B2C4 - adds r0, r0, r1 - ldr r1, _0818B2C8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0 - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B2C4: .4byte gUnknown_2024190 -_0818B2C8: .4byte gUnknown_2023D08 -_0818B2CC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B2E4 - adds r0, r0, r1 - ldr r1, _0818B2E8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #9 - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B2E4: .4byte gUnknown_2024190 -_0818B2E8: .4byte gUnknown_2023D08 -_0818B2EC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B304 - adds r0, r0, r1 - ldr r1, _0818B308 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x37 - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B304: .4byte gUnknown_2024190 -_0818B308: .4byte gUnknown_2023D08 -_0818B30C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B324 - adds r0, r0, r1 - ldr r1, _0818B328 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x38 - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B324: .4byte gUnknown_2024190 -_0818B328: .4byte gUnknown_2023D08 -_0818B32C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B344 - adds r0, r0, r1 - ldr r1, _0818B348 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x39 - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B344: .4byte gUnknown_2024190 -_0818B348: .4byte gUnknown_2023D08 -_0818B34C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B364 - adds r0, r0, r1 - ldr r1, _0818B368 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x3a - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B364: .4byte gUnknown_2024190 -_0818B368: .4byte gUnknown_2023D08 -_0818B36C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B384 - adds r0, r0, r1 - ldr r1, _0818B388 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x3b - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B384: .4byte gUnknown_2024190 -_0818B388: .4byte gUnknown_2023D08 -_0818B38C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B3A4 - adds r0, r0, r1 - ldr r1, _0818B3A8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x3c - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B3A4: .4byte gUnknown_2024190 -_0818B3A8: .4byte gUnknown_2023D08 -_0818B3AC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B3C4 - adds r0, r0, r1 - ldr r1, _0818B3C8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x3d - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B3C4: .4byte gUnknown_2024190 -_0818B3C8: .4byte gUnknown_2023D08 -_0818B3CC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B3E4 - adds r0, r0, r1 - ldr r1, _0818B3E8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x3e - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B3E4: .4byte gUnknown_2024190 -_0818B3E8: .4byte gUnknown_2023D08 -_0818B3EC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B404 - adds r0, r0, r1 - ldr r1, _0818B408 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x3f - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B404: .4byte gUnknown_2024190 -_0818B408: .4byte gUnknown_2023D08 -_0818B40C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B424 - adds r0, r0, r1 - ldr r1, _0818B428 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x16 - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B424: .4byte gUnknown_2024190 -_0818B428: .4byte gUnknown_2023D08 -_0818B42C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B444 - adds r0, r0, r1 - ldr r1, _0818B448 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x17 - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B444: .4byte gUnknown_2024190 -_0818B448: .4byte gUnknown_2023D08 -_0818B44C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B464 - adds r0, r0, r1 - ldr r1, _0818B468 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x18 - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B464: .4byte gUnknown_2024190 -_0818B468: .4byte gUnknown_2023D08 -_0818B46C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B484 - adds r0, r0, r1 - ldr r1, _0818B488 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x21 - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B484: .4byte gUnknown_2024190 -_0818B488: .4byte gUnknown_2023D08 -_0818B48C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B4A4 - adds r0, r0, r1 - ldr r1, _0818B4A8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x2f - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B4A4: .4byte gUnknown_2024190 -_0818B4A8: .4byte gUnknown_2023D08 -_0818B4AC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B4C4 - adds r0, r0, r1 - ldr r1, _0818B4C8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x30 - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B4C4: .4byte gUnknown_2024190 -_0818B4C8: .4byte gUnknown_2023D08 -_0818B4CC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B4E4 - adds r0, r0, r1 - ldr r1, _0818B4E8 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x32 - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B4E4: .4byte gUnknown_2024190 -_0818B4E8: .4byte gUnknown_2023D08 -_0818B4EC: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B504 - adds r0, r0, r1 - ldr r1, _0818B508 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x33 - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B504: .4byte gUnknown_2024190 -_0818B508: .4byte gUnknown_2023D08 -_0818B50C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B524 - adds r0, r0, r1 - ldr r1, _0818B528 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x34 - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B524: .4byte gUnknown_2024190 -_0818B528: .4byte gUnknown_2023D08 -_0818B52C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B544 - adds r0, r0, r1 - ldr r1, _0818B548 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x35 - bl SetMonData - b _0818B562 - .align 2, 0 -_0818B544: .4byte gUnknown_2024190 -_0818B548: .4byte gUnknown_2023D08 -_0818B54C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0818B58C - adds r0, r0, r1 - ldr r1, _0818B590 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x36 - bl SetMonData -_0818B562: - ldr r2, _0818B594 - ldr r0, _0818B590 - ldrb r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r2, [r0] - movs r0, #0x64 - muls r0, r2, r0 - ldr r2, _0818B58C - adds r0, r0, r2 - bl HandleLowHpMusicChange - add sp, #0x34 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0818B58C: .4byte gUnknown_2024190 -_0818B590: .4byte gUnknown_2023D08 -_0818B594: .4byte gUnknown_2023D12 - thumb_func_end SetRecordedPlayerMonData - - thumb_func_start sub_0818B598 -sub_0818B598: @ 0x0818B598 - push {r4, r5, r6, r7, lr} - ldr r1, _0818B5FC - ldr r7, _0818B600 - ldrb r2, [r7] - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - adds r3, r1, #0 - muls r3, r0, r3 - ldr r4, _0818B604 - lsls r2, r2, #9 - adds r0, r4, #1 - adds r0, r2, r0 - ldrb r0, [r0] - ldr r1, _0818B608 - adds r0, r0, r1 - adds r5, r3, r0 - movs r3, #0 - adds r0, r4, #2 - adds r2, r2, r0 - ldrb r2, [r2] - cmp r3, r2 - bhs _0818B5F0 - adds r6, r4, #0 - adds r2, r7, #0 - adds r4, r0, #0 -_0818B5CE: - adds r1, r5, r3 - ldrb r0, [r2] - lsls r0, r0, #9 - adds r0, #3 - adds r0, r3, r0 - adds r0, r0, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldrb r0, [r2] - lsls r0, r0, #9 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r3, r0 - blo _0818B5CE -_0818B5F0: - bl RecordedPlayerBufferExecCompleted - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0818B5FC: .4byte gUnknown_2023D12 -_0818B600: .4byte gUnknown_2023D08 -_0818B604: .4byte gUnknown_2022D08 -_0818B608: .4byte gUnknown_2024190 - thumb_func_end sub_0818B598 - - thumb_func_start RecordedPlayerHandleLoadMonSprite -RecordedPlayerHandleLoadMonSprite: @ 0x0818B60C - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - ldr r0, _0818B700 - mov r8, r0 - ldr r6, _0818B704 - ldrb r1, [r6] - lsls r0, r1, #1 - add r0, r8 - ldrh r0, [r0] - movs r5, #0x64 - muls r0, r5, r0 - ldr r4, _0818B708 - adds r0, r0, r4 - bl BattleLoadPlayerMonSpriteGfx - ldrb r0, [r6] - lsls r0, r0, #1 - add r0, r8 - ldrh r0, [r0] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #0xb - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldrb r0, [r6] - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl SetMultiuseSpriteTemplateToPokemon - ldr r0, _0818B70C - mov r8, r0 - ldrb r0, [r6] - movs r1, #2 - bl GetBattlerSpriteCoord - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldrb r0, [r6] - bl GetBattlerSpriteDefault_Y - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldrb r0, [r6] - bl GetBattlerSpriteSubpriority - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r0, r8 - adds r1, r5, #0 - adds r2, r4, #0 - bl CreateSprite - ldr r4, _0818B710 - ldrb r1, [r6] - adds r1, r1, r4 - strb r0, [r1] - ldr r5, _0818B714 - ldrb r0, [r6] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _0818B718 - strh r1, [r0, #0x24] - ldrb r2, [r6] - adds r0, r2, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r2, [r0, #0x2e] - ldrb r3, [r6] - adds r0, r3, r4 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - lsls r3, r3, #4 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #5] - ldrb r2, [r6] - adds r4, r2, r4 - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _0818B71C - adds r2, r2, r1 - ldrb r1, [r2] - bl StartSpriteAnim - ldr r1, _0818B720 - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0818B724 - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0818B700: .4byte gUnknown_2023D12 -_0818B704: .4byte gUnknown_2023D08 -_0818B708: .4byte gUnknown_2024190 -_0818B70C: .4byte gUnknown_2024640 -_0818B710: .4byte gUnknown_2023E88 -_0818B714: .4byte gUnknown_20205AC -_0818B718: .4byte 0x0000FF10 -_0818B71C: .4byte gUnknown_2024188 -_0818B720: .4byte gUnknown_3005AC0 -_0818B724: .4byte sub_08189D90 - thumb_func_end RecordedPlayerHandleLoadMonSprite - - thumb_func_start RecordedPlayerHandleSwitchInAnim -RecordedPlayerHandleSwitchInAnim: @ 0x0818B728 - push {r4, r5, r6, lr} - ldr r5, _0818B780 - ldrb r0, [r5] - ldr r4, _0818B784 - lsls r1, r0, #9 - adds r6, r4, #2 - adds r1, r1, r6 - ldrb r1, [r1] - bl ClearTemporarySpeciesSpriteData - ldr r2, _0818B788 - ldrb r0, [r5] - lsls r1, r0, #1 - adds r1, r1, r2 - lsls r0, r0, #9 - adds r4, #1 - adds r0, r0, r4 - ldrb r0, [r0] - strh r0, [r1] - ldrb r1, [r5] - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r2, [r0] - movs r0, #0x64 - muls r0, r2, r0 - ldr r2, _0818B78C - adds r0, r0, r2 - bl BattleLoadPlayerMonSpriteGfx - ldrb r0, [r5] - lsls r1, r0, #9 - adds r1, r1, r6 - ldrb r1, [r1] - bl sub_0818B798 - ldr r1, _0818B790 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0818B794 - str r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0818B780: .4byte gUnknown_2023D08 -_0818B784: .4byte gUnknown_2022D08 -_0818B788: .4byte gUnknown_2023D12 -_0818B78C: .4byte gUnknown_2024190 -_0818B790: .4byte gUnknown_3005AC0 -_0818B794: .4byte sub_0818A19C - thumb_func_end RecordedPlayerHandleSwitchInAnim - - thumb_func_start sub_0818B798 -sub_0818B798: @ 0x0818B798 - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r6, #0 - bl ClearTemporarySpeciesSpriteData - ldr r0, _0818B8EC - lsls r2, r6, #1 - adds r2, r2, r0 - ldr r0, _0818B8F0 - lsls r1, r6, #9 - adds r0, #1 - adds r1, r1, r0 - ldrb r0, [r1] - strh r0, [r2] - ldrh r1, [r2] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0818B8F4 - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - mov r8, r0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - ldr r0, _0818B8F8 - bl CreateInvisibleSpriteWithCallback - ldr r1, _0818B8FC - mov sb, r1 - add sb, r6 - mov r1, sb - strb r0, [r1] - adds r0, r6, #0 - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r0, r8 - bl SetMultiuseSpriteTemplateToPokemon - ldr r0, _0818B900 - mov sl, r0 - adds r0, r6, #0 - movs r1, #2 - bl GetBattlerSpriteCoord - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - adds r0, r6, #0 - bl GetBattlerSpriteDefault_Y - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r6, #0 - bl GetBattlerSpriteSubpriority - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r0, sl - adds r1, r5, #0 - adds r2, r4, #0 - bl CreateSprite - ldr r4, _0818B904 - adds r4, r6, r4 - strb r0, [r4] - ldr r5, _0818B908 - mov r0, sb - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r1, [r4] - strh r1, [r0, #0x30] - mov r0, sb - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r6, [r0, #0x32] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r6, [r0, #0x2e] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - mov r1, r8 - strh r1, [r0, #0x32] - ldrb r0, [r4] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - lsls r3, r6, #4 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #5] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _0818B90C - adds r6, r6, r1 - ldrb r1, [r6] - bl StartSpriteAnim - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r5, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _0818B910 - str r1, [r0] - movs r0, #0 - movs r1, #0xff - bl DoPokeballSendOutAnimation - mov r1, sb - ldrb r2, [r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r1, #0x2e] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0818B8EC: .4byte gUnknown_2023D12 -_0818B8F0: .4byte gUnknown_2022D08 -_0818B8F4: .4byte gUnknown_2024190 -_0818B8F8: .4byte sub_0805D330 -_0818B8FC: .4byte gUnknown_3005ADC -_0818B900: .4byte gUnknown_2024640 -_0818B904: .4byte gUnknown_2023E88 -_0818B908: .4byte gUnknown_20205AC -_0818B90C: .4byte gUnknown_2024188 -_0818B910: .4byte sub_08007140 - thumb_func_end sub_0818B798 - - thumb_func_start sub_0818B914 -sub_0818B914: @ 0x0818B914 - push {r4, r5, r6, lr} - ldr r1, _0818B948 - ldr r6, _0818B94C - ldrb r2, [r6] - lsls r0, r2, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r3, [r0] - cmp r3, #0 - bne _0818B95C - ldr r0, _0818B950 - ldr r0, [r0] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - strb r3, [r0, #4] - ldr r1, _0818B954 - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0818B958 - str r1, [r0] - b _0818B992 - .align 2, 0 -_0818B948: .4byte gUnknown_2022D08 -_0818B94C: .4byte gUnknown_2023D08 -_0818B950: .4byte gUnknown_2024174 -_0818B954: .4byte gUnknown_3005AC0 -_0818B958: .4byte DoSwitchOutAnimation -_0818B95C: - ldr r5, _0818B998 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _0818B99C - adds r0, r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - ldr r1, _0818B9A0 - ldrb r0, [r6] - adds r0, r0, r1 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible - bl RecordedPlayerBufferExecCompleted -_0818B992: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0818B998: .4byte gUnknown_2023E88 -_0818B99C: .4byte gUnknown_20205AC -_0818B9A0: .4byte gUnknown_3005AD0 - thumb_func_end sub_0818B914 - - thumb_func_start DoSwitchOutAnimation -DoSwitchOutAnimation: @ 0x0818B9A4 - push {r4, r5, r6, lr} - ldr r6, _0818B9C4 - ldr r4, [r6] - ldr r5, _0818B9C8 - ldrb r2, [r5] - ldr r1, [r4, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r3, r0, r1 - ldrb r0, [r3, #4] - cmp r0, #0 - beq _0818B9CC - cmp r0, #1 - beq _0818B9FA - b _0818BA22 - .align 2, 0 -_0818B9C4: .4byte gUnknown_2024174 -_0818B9C8: .4byte gUnknown_2023D08 -_0818B9CC: - ldr r1, [r4] - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0818B9E6 - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #5 - bl InitAndLaunchSpecialAnimation -_0818B9E6: - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #1 - strb r1, [r0, #4] - b _0818BA22 -_0818B9FA: - ldrb r1, [r3] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0818BA22 - strb r0, [r3, #4] - ldrb r2, [r5] - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #1 - bl InitAndLaunchSpecialAnimation - ldr r1, _0818BA28 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0818BA2C - str r1, [r0] -_0818BA22: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0818BA28: .4byte gUnknown_3005AC0 -_0818BA2C: .4byte sub_08189EDC - thumb_func_end DoSwitchOutAnimation - - thumb_func_start RecordedPlayerHandleDrawTrainerPic -RecordedPlayerHandleDrawTrainerPic: @ 0x0818BA30 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r0, _0818BA58 - ldr r1, [r0] - movs r0, #0x80 - lsls r0, r0, #0x12 - ands r0, r1 - cmp r0, #0 - beq _0818BA74 - movs r0, #0x40 - ands r1, r0 - cmp r1, #0 - beq _0818BA5C - bl GetActiveBattlerLinkPlayerGender - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - b _0818BA78 - .align 2, 0 -_0818BA58: .4byte gUnknown_2022C90 -_0818BA5C: - ldr r2, _0818BA6C - ldr r0, _0818BA70 - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - b _0818BA76 - .align 2, 0 -_0818BA6C: .4byte gUnknown_20226A0 -_0818BA70: .4byte gUnknown_203C480 -_0818BA74: - ldr r0, _0818BAB4 -_0818BA76: - ldrb r4, [r0, #0x13] -_0818BA78: - ldr r0, _0818BAB8 - ldr r1, [r0] - movs r2, #0x40 - ands r1, r2 - adds r5, r0, #0 - cmp r1, #0 - beq _0818BAC4 - ldr r0, _0818BABC - ldrb r0, [r0] - bl sub_080A630C - movs r1, #2 - ands r1, r0 - movs r0, #0x20 - mov sb, r0 - cmp r1, #0 - beq _0818BA9E - movs r1, #0x5a - mov sb, r1 -_0818BA9E: - ldr r0, [r5] - movs r1, #0x80 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - beq _0818BAC8 - movs r0, #0x5a - mov sb, r0 - ldr r1, _0818BAC0 - b _0818BACA - .align 2, 0 -_0818BAB4: .4byte gUnknown_20226A0 -_0818BAB8: .4byte gUnknown_2022C90 -_0818BABC: .4byte gUnknown_2023D08 -_0818BAC0: .4byte gUnknown_82D8D70 -_0818BAC4: - movs r0, #0x50 - mov sb, r0 -_0818BAC8: - ldr r1, _0818BBE4 -_0818BACA: - lsls r0, r4, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #8 - subs r0, r0, r1 - lsls r0, r0, #0x12 - movs r1, #0xa0 - lsls r1, r1, #0xf - adds r0, r0, r1 - lsrs r7, r0, #0x10 - ldr r0, [r5] - movs r1, #0x80 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _0818BAEC - b _0818BC08 -_0818BAEC: - ldr r0, _0818BBE8 - ldr r0, [r0] - ldrb r0, [r0, #8] - bl PlayerGenderToFrontTrainerPicId - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r5, r4, #0 - ldr r6, _0818BBEC - ldrb r1, [r6] - adds r0, r5, #0 - bl DecompressTrainerFrontPic - ldrb r0, [r6] - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl SetMultiuseSpriteTemplateToTrainerFront - ldr r0, _0818BBF0 - mov r8, r0 - lsls r4, r7, #0x10 - asrs r4, r4, #0x10 - ldrb r0, [r6] - bl GetBattlerSpriteSubpriority - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r0, r8 - mov r1, sb - adds r2, r4, #0 - bl CreateSprite - ldr r4, _0818BBF4 - ldrb r1, [r6] - adds r1, r1, r4 - strb r0, [r1] - ldr r0, _0818BBF8 - lsls r5, r5, #3 - adds r5, r5, r0 - ldrh r0, [r5, #4] - bl IndexOfSpritePaletteTag - ldr r5, _0818BBFC - ldrb r1, [r6] - adds r1, r1, r4 - ldrb r1, [r1] - lsls r2, r1, #4 - adds r2, r2, r1 - lsls r2, r2, #2 - adds r2, r2, r5 - lsls r0, r0, #4 - ldrb r3, [r2, #5] - movs r1, #0xf - ands r1, r3 - orrs r1, r0 - strb r1, [r2, #5] - ldrb r0, [r6] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0xf0 - strh r1, [r0, #0x24] - ldrb r0, [r6] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0x30 - strh r1, [r0, #0x26] - ldrb r0, [r6] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _0818BC00 - strh r1, [r0, #0x2e] - ldrb r0, [r6] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r5, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _0818BC04 - str r1, [r0] - ldrb r0, [r6] - adds r0, r0, r4 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrb r2, [r1, #1] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #1] - ldrb r0, [r6] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3f - ldrb r1, [r0] - movs r2, #1 - orrs r1, r2 - strb r1, [r0] - b _0818BC9E - .align 2, 0 -_0818BBE4: .4byte gUnknown_82D95BC -_0818BBE8: .4byte gUnknown_3005AF0 -_0818BBEC: .4byte gUnknown_2023D08 -_0818BBF0: .4byte gUnknown_2024640 -_0818BBF4: .4byte gUnknown_2023E88 -_0818BBF8: .4byte gUnknown_82D91CC -_0818BBFC: .4byte gUnknown_20205AC -_0818BC00: .4byte 0x0000FFFE -_0818BC04: .4byte sub_0805D3C8 -_0818BC08: - ldr r5, _0818BCB8 - ldrb r1, [r5] - adds r0, r4, #0 - bl DecompressTrainerBackPic - ldrb r0, [r5] - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl SetMultiuseSpriteTemplateToTrainerBack - ldr r6, _0818BCBC - mov r8, sb - lsls r4, r7, #0x10 - asrs r4, r4, #0x10 - ldrb r0, [r5] - bl GetBattlerSpriteSubpriority - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r6, #0 - mov r1, r8 - adds r2, r4, #0 - bl CreateSprite - ldr r6, _0818BCC0 - ldrb r1, [r5] - adds r1, r1, r6 - strb r0, [r1] - ldr r4, _0818BCC4 - ldrb r3, [r5] - adds r0, r3, r6 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - lsls r3, r3, #4 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #5] - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0xf0 - strh r1, [r0, #0x24] - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _0818BCC8 - strh r1, [r0, #0x2e] - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, #0x1c - adds r0, r0, r4 - ldr r1, _0818BCCC - str r1, [r0] -_0818BC9E: - ldr r1, _0818BCD0 - ldr r0, _0818BCB8 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0818BCD4 - str r1, [r0] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0818BCB8: .4byte gUnknown_2023D08 -_0818BCBC: .4byte gUnknown_2024640 -_0818BCC0: .4byte gUnknown_2023E88 -_0818BCC4: .4byte gUnknown_20205AC -_0818BCC8: .4byte 0x0000FFFE -_0818BCCC: .4byte sub_0805D3C8 -_0818BCD0: .4byte gUnknown_3005AC0 -_0818BCD4: .4byte sub_081896E4 - thumb_func_end RecordedPlayerHandleDrawTrainerPic - - thumb_func_start RecordedPlayerHandleTrainerSlide -RecordedPlayerHandleTrainerSlide: @ 0x0818BCD8 - push {lr} - bl RecordedPlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedPlayerHandleTrainerSlide - - thumb_func_start sub_0818BCE4 -sub_0818BCE4: @ 0x0818BCE4 - push {r4, r5, r6, lr} - ldr r6, _0818BD70 - ldr r4, _0818BD74 - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r5, _0818BD78 - adds r0, r0, r5 - bl SetSpritePrimaryCoordsFromSecondaryCoords - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0x23 - strh r1, [r0, #0x2e] - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _0818BD7C - strh r1, [r0, #0x32] - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrh r1, [r0, #0x22] - strh r1, [r0, #0x36] - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r5, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _0818BD80 - str r1, [r0] - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _0818BD84 - bl StoreSpriteCallbackInData6 - ldr r1, _0818BD88 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0818BD8C - str r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0818BD70: .4byte gUnknown_2023E88 -_0818BD74: .4byte gUnknown_2023D08 -_0818BD78: .4byte gUnknown_20205AC -_0818BD7C: .4byte 0x0000FFD8 -_0818BD80: .4byte sub_080A67B4 -_0818BD84: .4byte sub_08007140 -_0818BD88: .4byte gUnknown_3005AC0 -_0818BD8C: .4byte sub_0818971C - thumb_func_end sub_0818BCE4 - - thumb_func_start RecordedPlayerHandleFaintAnimation -RecordedPlayerHandleFaintAnimation: @ 0x0818BD90 - push {r4, r5, r6, lr} - ldr r6, _0818BDDC - ldr r4, [r6] - ldr r5, _0818BDE0 - ldrb r2, [r5] - ldr r0, [r4, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r3, r1, r0 - ldrb r0, [r3, #4] - cmp r0, #0 - bne _0818BDE4 - ldr r1, [r4] - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0818BDC4 - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #5 - bl InitAndLaunchSpecialAnimation -_0818BDC4: - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #4] - adds r1, #1 - strb r1, [r0, #4] - b _0818BE5A - .align 2, 0 -_0818BDDC: .4byte gUnknown_2024174 -_0818BDE0: .4byte gUnknown_2023D08 -_0818BDE4: - ldrb r1, [r3] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _0818BE5A - strb r4, [r3, #4] - ldr r2, _0818BE60 - ldrb r1, [r5] - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r2, [r0] - movs r0, #0x64 - muls r0, r2, r0 - ldr r2, _0818BE64 - adds r0, r0, r2 - bl HandleLowHpMusicChange - movs r1, #0x40 - rsbs r1, r1, #0 - movs r0, #0x10 - bl PlaySE12WithPanning - ldr r2, _0818BE68 - ldr r3, _0818BE6C - ldrb r0, [r5] - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r4, [r0, #0x30] - ldrb r0, [r5] - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #5 - strh r1, [r0, #0x32] - ldrb r0, [r5] - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, _0818BE70 - str r1, [r0] - ldr r1, _0818BE74 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0818BE78 - str r1, [r0] -_0818BE5A: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0818BE60: .4byte gUnknown_2023D12 -_0818BE64: .4byte gUnknown_2024190 -_0818BE68: .4byte gUnknown_20205AC -_0818BE6C: .4byte gUnknown_2023E88 -_0818BE70: .4byte sub_08039844 -_0818BE74: .4byte gUnknown_3005AC0 -_0818BE78: .4byte sub_08189E40 - thumb_func_end RecordedPlayerHandleFaintAnimation - - thumb_func_start sub_0818BE7C -sub_0818BE7C: @ 0x0818BE7C - push {lr} - bl RecordedPlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0818BE7C - - thumb_func_start sub_0818BE88 -sub_0818BE88: @ 0x0818BE88 - push {lr} - bl RecordedPlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0818BE88 - - thumb_func_start sub_0818BE94 -sub_0818BE94: @ 0x0818BE94 - push {lr} - bl RecordedPlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0818BE94 - - thumb_func_start sub_0818BEA0 -sub_0818BEA0: @ 0x0818BEA0 - push {lr} - bl RecordedPlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0818BEA0 - - thumb_func_start RecordedPlayerHandleMoveAnimation -RecordedPlayerHandleMoveAnimation: @ 0x0818BEAC - push {r4, r5, r6, lr} - ldr r6, _0818BF90 - ldrb r0, [r6] - bl mplay_80342A4 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0818BEBE - b _0818BFD2 -_0818BEBE: - ldr r0, _0818BF94 - mov ip, r0 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r0, #1 - adds r0, r2, r0 - ldrb r0, [r0] - mov r1, ip - adds r1, #2 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - ldr r5, _0818BF98 - mov r1, ip - adds r1, #3 - adds r2, r2, r1 - ldrb r1, [r2] - strb r1, [r5] - ldr r4, _0818BF9C - ldrb r2, [r6] - lsls r2, r2, #9 - mov r1, ip - adds r1, #4 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, ip - adds r1, #5 - adds r2, r2, r1 - ldrb r1, [r2] - lsls r1, r1, #8 - orrs r3, r1 - strh r3, [r4] - ldr r4, _0818BFA0 - ldrb r2, [r6] - lsls r2, r2, #9 - mov r1, ip - adds r1, #6 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, ip - adds r1, #7 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r3, r1 - mov r1, ip - adds r1, #8 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, r1, #0x10 - orrs r3, r1 - mov r1, ip - adds r1, #9 - adds r2, r2, r1 - ldrb r1, [r2] - lsls r1, r1, #0x18 - orrs r3, r1 - str r3, [r4] - ldr r3, _0818BFA4 - ldrb r1, [r6] - lsls r1, r1, #9 - mov r2, ip - adds r2, #0xa - adds r1, r1, r2 - ldrb r1, [r1] - strb r1, [r3] - ldr r4, _0818BFA8 - ldrb r2, [r6] - lsls r2, r2, #9 - mov r1, ip - adds r1, #0xc - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, ip - adds r1, #0xd - adds r2, r2, r1 - ldrb r1, [r2] - lsls r1, r1, #8 - orrs r3, r1 - strh r3, [r4] - ldr r3, _0818BFAC - ldrb r2, [r6] - lsls r2, r2, #9 - mov r1, ip - adds r1, #0x10 - adds r2, r2, r1 - str r2, [r3] - ldr r3, _0818BFB0 - ldrb r1, [r6] - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r2, [r2] - str r2, [r1] - ldrb r1, [r5] - bl sub_0805D7A8 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - beq _0818BFB4 - bl RecordedPlayerBufferExecCompleted - b _0818BFD2 - .align 2, 0 -_0818BF90: .4byte gUnknown_2023D08 -_0818BF94: .4byte gUnknown_2022D08 -_0818BF98: .4byte gUnknown_20380D2 -_0818BF9C: .4byte gUnknown_20380A8 -_0818BFA0: .4byte gUnknown_20380A4 -_0818BFA4: .4byte gUnknown_20380BA -_0818BFA8: .4byte gUnknown_20380BC -_0818BFAC: .4byte gUnknown_20380A0 -_0818BFB0: .4byte gUnknown_2024160 -_0818BFB4: - ldr r0, _0818BFD8 - ldr r0, [r0] - ldrb r1, [r6] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strb r3, [r0, #4] - ldr r1, _0818BFDC - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0818BFE0 - str r1, [r0] -_0818BFD2: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0818BFD8: .4byte gUnknown_2024174 -_0818BFDC: .4byte gUnknown_3005AC0 -_0818BFE0: .4byte RecordedPlayerDoMoveAnimation - thumb_func_end RecordedPlayerHandleMoveAnimation - - thumb_func_start RecordedPlayerDoMoveAnimation -RecordedPlayerDoMoveAnimation: @ 0x0818BFE4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r2, _0818C030 - ldr r6, _0818C034 - ldrb r3, [r6] - lsls r1, r3, #9 - adds r0, r2, #1 - mov sl, r0 - adds r0, r1, r0 - ldrb r4, [r0] - adds r5, r2, #2 - mov sb, r5 - adds r0, r1, r5 - ldrb r0, [r0] - lsls r0, r0, #8 - orrs r4, r0 - adds r2, #0xb - adds r1, r1, r2 - ldrb r1, [r1] - mov r8, r1 - ldr r7, _0818C038 - ldr r5, [r7] - ldr r1, [r5, #4] - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r2, [r0, #4] - cmp r2, #1 - beq _0818C07C - cmp r2, #1 - bgt _0818C03C - cmp r2, #0 - beq _0818C046 - b _0818C158 - .align 2, 0 -_0818C030: .4byte gUnknown_2022D08 -_0818C034: .4byte gUnknown_2023D08 -_0818C038: .4byte gUnknown_2024174 -_0818C03C: - cmp r2, #2 - beq _0818C0A6 - cmp r2, #3 - beq _0818C11C - b _0818C158 -_0818C046: - ldr r1, [r5] - lsls r0, r3, #2 - adds r1, r0, r1 - ldrb r2, [r1] - movs r0, #0xc - ands r0, r2 - cmp r0, #4 - bne _0818C068 - movs r0, #8 - orrs r0, r2 - strb r0, [r1] - ldrb r2, [r6] - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #5 - bl InitAndLaunchSpecialAnimation -_0818C068: - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #1 - strb r1, [r0, #4] - b _0818C158 -_0818C07C: - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _0818C158 - movs r0, #0 - bl sub_0805E7B8 - adds r0, r4, #0 - bl DoMoveAnim - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #2 - strb r1, [r0, #4] - b _0818C158 -_0818C0A6: - ldr r0, _0818C10C - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _0818C110 - ldrb r0, [r0] - cmp r0, #0 - bne _0818C158 - movs r0, #1 - bl sub_0805E7B8 - ldr r0, [r7] - ldrb r2, [r6] - ldr r1, [r0] - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0818C0F4 - mov r0, r8 - cmp r0, #1 - bhi _0818C0F4 - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #6 - bl InitAndLaunchSpecialAnimation - ldr r0, [r7] - ldrb r1, [r6] - ldr r0, [r0] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] -_0818C0F4: - ldr r0, _0818C114 - ldr r2, [r0] - ldr r0, _0818C118 - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #3 - strb r1, [r0, #4] - b _0818C158 - .align 2, 0 -_0818C10C: .4byte gUnknown_2038098 -_0818C110: .4byte gUnknown_203809D -_0818C114: .4byte gUnknown_2024174 -_0818C118: .4byte gUnknown_2023D08 -_0818C11C: - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _0818C158 - bl CopyAllBattleSpritesInvisibilities - ldrb r0, [r6] - lsls r2, r0, #9 - mov r3, sl - adds r1, r2, r3 - ldrb r1, [r1] - add r2, sb - ldrb r2, [r2] - lsls r2, r2, #8 - orrs r1, r2 - bl TrySetBehindSubstituteSpriteBit - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strb r4, [r0, #4] - bl RecordedPlayerBufferExecCompleted -_0818C158: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedPlayerDoMoveAnimation - - thumb_func_start sub_0818C168 -sub_0818C168: @ 0x0818C168 - push {r4, lr} - ldr r0, _0818C1A0 - movs r1, #0 - strh r1, [r0] - ldr r0, _0818C1A4 - strh r1, [r0] - ldr r4, _0818C1A8 - ldrb r0, [r4] - lsls r0, r0, #9 - ldr r1, _0818C1AC - adds r0, r0, r1 - ldrh r0, [r0] - bl PrintOnTrainerHillRecordsWindow - ldr r0, _0818C1B0 - movs r1, #0 - bl sub_0814FA04 - ldr r1, _0818C1B4 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0818C1B8 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0818C1A0: .4byte gUnknown_2022AC8 -_0818C1A4: .4byte gUnknown_2022ACA -_0818C1A8: .4byte gUnknown_2023D08 -_0818C1AC: .4byte gUnknown_2022D0A -_0818C1B0: .4byte gUnknown_2022AE0 -_0818C1B4: .4byte gUnknown_3005AC0 -_0818C1B8: .4byte sub_08189F4C - thumb_func_end sub_0818C168 - - thumb_func_start RecordedPlayerHandlePrintSelectionString -RecordedPlayerHandlePrintSelectionString: @ 0x0818C1BC - push {lr} - bl RecordedPlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedPlayerHandlePrintSelectionString - - thumb_func_start ChooseActionInBattlePalace -ChooseActionInBattlePalace: @ 0x0818C1C8 - push {lr} - ldr r1, _0818C1F8 - ldr r0, _0818C1FC - ldrb r0, [r0] - ldrb r1, [r1, #4] - lsrs r0, r0, #1 - cmp r1, r0 - blo _0818C1F2 - ldr r0, _0818C200 - ldrb r0, [r0] - bl RecordedBattle_GetBattlerAction - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #1 - movs r2, #0 - bl BtlController_EmitTwoReturnValues - bl RecordedPlayerBufferExecCompleted -_0818C1F2: - pop {r0} - bx r0 - .align 2, 0 -_0818C1F8: .4byte gUnknown_2023FD6 -_0818C1FC: .4byte gUnknown_2023D10 -_0818C200: .4byte gUnknown_2023D08 - thumb_func_end ChooseActionInBattlePalace - - thumb_func_start RecordedPlayerHandleChooseAction -RecordedPlayerHandleChooseAction: @ 0x0818C204 - push {lr} - ldr r0, _0818C224 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xa - ands r0, r1 - cmp r0, #0 - beq _0818C234 - ldr r1, _0818C228 - ldr r0, _0818C22C - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0818C230 - str r1, [r0] - b _0818C24E - .align 2, 0 -_0818C224: .4byte gUnknown_2022C90 -_0818C228: .4byte gUnknown_3005AC0 -_0818C22C: .4byte gUnknown_2023D08 -_0818C230: .4byte ChooseActionInBattlePalace -_0818C234: - ldr r0, _0818C254 - ldrb r0, [r0] - bl RecordedBattle_GetBattlerAction - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #1 - movs r2, #0 - bl BtlController_EmitTwoReturnValues - bl RecordedPlayerBufferExecCompleted -_0818C24E: - pop {r0} - bx r0 - .align 2, 0 -_0818C254: .4byte gUnknown_2023D08 - thumb_func_end RecordedPlayerHandleChooseAction - - thumb_func_start sub_0818C258 -sub_0818C258: @ 0x0818C258 - push {lr} - bl RecordedPlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0818C258 - - thumb_func_start RecordedPlayerHandleChooseMove -RecordedPlayerHandleChooseMove: @ 0x0818C264 - push {r4, r5, lr} - ldr r0, _0818C288 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xa - ands r0, r1 - cmp r0, #0 - beq _0818C28C - bl ChooseMoveAndTargetInBattlePalace - adds r2, r0, #0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - movs r0, #1 - movs r1, #0xa - bl BtlController_EmitTwoReturnValues - b _0818C2B0 - .align 2, 0 -_0818C288: .4byte gUnknown_2022C90 -_0818C28C: - ldr r5, _0818C2BC - ldrb r0, [r5] - bl RecordedBattle_GetBattlerAction - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldrb r0, [r5] - bl RecordedBattle_GetBattlerAction - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x10 - orrs r2, r4 - movs r0, #1 - movs r1, #0xa - bl BtlController_EmitTwoReturnValues -_0818C2B0: - bl RecordedPlayerBufferExecCompleted - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0818C2BC: .4byte gUnknown_2023D08 - thumb_func_end RecordedPlayerHandleChooseMove - - thumb_func_start RecordedPlayerHandleChooseItem -RecordedPlayerHandleChooseItem: @ 0x0818C2C0 - push {lr} - bl RecordedPlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedPlayerHandleChooseItem - - thumb_func_start RecordedPlayerHandleChoosePokemon -RecordedPlayerHandleChoosePokemon: @ 0x0818C2CC - push {r4, lr} - ldr r4, _0818C300 - ldrb r0, [r4] - bl RecordedBattle_GetBattlerAction - ldrb r1, [r4] - ldr r3, _0818C304 - ldr r2, [r3] - adds r1, r1, r2 - adds r1, #0x5c - strb r0, [r1] - ldrb r0, [r4] - ldr r1, [r3] - adds r0, r0, r1 - adds r0, #0x5c - ldrb r1, [r0] - movs r0, #1 - movs r2, #0 - bl BtlController_EmitChosenMonReturnValue - bl RecordedPlayerBufferExecCompleted - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0818C300: .4byte gUnknown_2023D08 -_0818C304: .4byte gUnknown_2024140 - thumb_func_end RecordedPlayerHandleChoosePokemon - - thumb_func_start RecordedPlayerHandleCmd23 -RecordedPlayerHandleCmd23: @ 0x0818C308 - push {lr} - bl RecordedPlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedPlayerHandleCmd23 - - thumb_func_start RecordedPlayerHandleHealthBarUpdate -RecordedPlayerHandleHealthBarUpdate: @ 0x0818C314 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - movs r0, #0 - bl LoadBattleBarGfx - ldr r3, _0818C38C - ldr r0, _0818C390 - mov sb, r0 - ldrb r4, [r0] - lsls r2, r4, #9 - adds r0, r3, #2 - adds r0, r2, r0 - ldrb r1, [r0] - adds r3, #3 - adds r2, r2, r3 - ldrb r0, [r2] - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - asrs r7, r1, #0x10 - ldr r0, _0818C394 - cmp r7, r0 - beq _0818C3A4 - ldr r6, _0818C398 - lsls r0, r4, #1 - adds r0, r0, r6 - ldrh r0, [r0] - movs r5, #0x64 - muls r0, r5, r0 - ldr r4, _0818C39C - adds r0, r0, r4 - movs r1, #0x3a - bl GetMonData - mov r8, r0 - mov r1, sb - ldrb r0, [r1] - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r0, [r0] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #0x39 - bl GetMonData - adds r3, r0, #0 - mov r1, sb - ldrb r0, [r1] - ldr r1, _0818C3A0 - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - mov r2, r8 - bl SetBattleBarStruct - b _0818C3DE - .align 2, 0 -_0818C38C: .4byte gUnknown_2022D08 -_0818C390: .4byte gUnknown_2023D08 -_0818C394: .4byte 0x00007FFF -_0818C398: .4byte gUnknown_2023D12 -_0818C39C: .4byte gUnknown_2024190 -_0818C3A0: .4byte gUnknown_3005AD0 -_0818C3A4: - ldr r1, _0818C3FC - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0818C400 - adds r0, r0, r1 - movs r1, #0x3a - bl GetMonData - adds r2, r0, #0 - mov r1, sb - ldrb r0, [r1] - ldr r4, _0818C404 - adds r1, r0, r4 - ldrb r1, [r1] - str r7, [sp] - movs r3, #0 - bl SetBattleBarStruct - mov r1, sb - ldrb r0, [r1] - adds r0, r0, r4 - ldrb r0, [r0] - movs r1, #0 - movs r2, #0 - bl sub_080726F4 -_0818C3DE: - ldr r1, _0818C408 - ldr r0, _0818C40C - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0818C410 - str r1, [r0] - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0818C3FC: .4byte gUnknown_2023D12 -_0818C400: .4byte gUnknown_2024190 -_0818C404: .4byte gUnknown_3005AD0 -_0818C408: .4byte gUnknown_3005AC0 -_0818C40C: .4byte gUnknown_2023D08 -_0818C410: .4byte sub_08189DD0 - thumb_func_end RecordedPlayerHandleHealthBarUpdate - - thumb_func_start RecordedPlayerHandleExpUpdate -RecordedPlayerHandleExpUpdate: @ 0x0818C414 - push {lr} - bl RecordedPlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedPlayerHandleExpUpdate - - thumb_func_start RecordedPlayerHandleStatusIconUpdate -RecordedPlayerHandleStatusIconUpdate: @ 0x0818C420 - push {r4, lr} - ldr r4, _0818C47C - ldrb r0, [r4] - bl mplay_80342A4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0818C474 - ldr r0, _0818C480 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - ldr r2, _0818C484 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _0818C488 - adds r1, r1, r2 - movs r2, #9 - bl UpdateHealthboxAttribute - ldrb r2, [r4] - ldr r0, _0818C48C - ldr r0, [r0] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r1, _0818C490 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0818C494 - str r1, [r0] -_0818C474: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0818C47C: .4byte gUnknown_2023D08 -_0818C480: .4byte gUnknown_3005AD0 -_0818C484: .4byte gUnknown_2023D12 -_0818C488: .4byte gUnknown_2024190 -_0818C48C: .4byte gUnknown_2024174 -_0818C490: .4byte gUnknown_3005AC0 -_0818C494: .4byte CompleteOnFinishedStatusAnimation - thumb_func_end RecordedPlayerHandleStatusIconUpdate - - thumb_func_start RecordedPlayerHandleStatusAnimation -RecordedPlayerHandleStatusAnimation: @ 0x0818C498 - push {r4, r5, lr} - ldr r5, _0818C4F0 - ldrb r0, [r5] - bl mplay_80342A4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0818C4E8 - ldr r4, _0818C4F4 - ldrb r3, [r5] - lsls r3, r3, #9 - adds r0, r4, #1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, #2 - adds r1, r3, r1 - ldrb r1, [r1] - adds r2, r4, #3 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, r2, #8 - orrs r1, r2 - adds r2, r4, #4 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, r2, #0x10 - orrs r1, r2 - adds r4, #5 - adds r3, r3, r4 - ldrb r2, [r3] - lsls r2, r2, #0x18 - orrs r1, r2 - bl InitAndLaunchChosenStatusAnimation - ldr r1, _0818C4F8 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0818C4FC - str r1, [r0] -_0818C4E8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0818C4F0: .4byte gUnknown_2023D08 -_0818C4F4: .4byte gUnknown_2022D08 -_0818C4F8: .4byte gUnknown_3005AC0 -_0818C4FC: .4byte CompleteOnFinishedStatusAnimation - thumb_func_end RecordedPlayerHandleStatusAnimation - - thumb_func_start RecordedPlayerHandleStatusXor -RecordedPlayerHandleStatusXor: @ 0x0818C500 - push {lr} - bl RecordedPlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedPlayerHandleStatusXor - - thumb_func_start RecordedPlayerHandleDataTransfer -RecordedPlayerHandleDataTransfer: @ 0x0818C50C - push {lr} - bl RecordedPlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedPlayerHandleDataTransfer - - thumb_func_start RecordedPlayerHandleDMA3Transfer -RecordedPlayerHandleDMA3Transfer: @ 0x0818C518 - push {lr} - bl RecordedPlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedPlayerHandleDMA3Transfer - - thumb_func_start RecordedPlayerHandlePlayBGM -RecordedPlayerHandlePlayBGM: @ 0x0818C524 - push {lr} - bl RecordedPlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedPlayerHandlePlayBGM - - thumb_func_start sub_0818C530 -sub_0818C530: @ 0x0818C530 - push {lr} - bl RecordedPlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0818C530 - - thumb_func_start sub_0818C53C -sub_0818C53C: @ 0x0818C53C - push {lr} - bl RecordedPlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0818C53C - - thumb_func_start sub_0818C548 -sub_0818C548: @ 0x0818C548 - push {lr} - bl RecordedPlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0818C548 - - thumb_func_start sub_0818C554 -sub_0818C554: @ 0x0818C554 - push {lr} - bl RecordedPlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0818C554 - - thumb_func_start sub_0818C560 -sub_0818C560: @ 0x0818C560 - push {lr} - bl RecordedPlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0818C560 - - thumb_func_start RecordedPlayerHandleCmd37 -RecordedPlayerHandleCmd37: @ 0x0818C56C - push {lr} - ldr r2, _0818C584 - ldrb r1, [r2] - movs r0, #0x80 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - bl RecordedPlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_0818C584: .4byte gUnknown_20229C0 - thumb_func_end RecordedPlayerHandleCmd37 - - thumb_func_start RecordedPlayerHandleCmd38 -RecordedPlayerHandleCmd38: @ 0x0818C588 - push {lr} - ldr r3, _0818C5B4 - ldr r1, _0818C5B8 - ldr r0, _0818C5BC - ldrb r0, [r0] - lsls r0, r0, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - ldrb r2, [r3] - movs r0, #0x80 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl RecordedPlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_0818C5B4: .4byte gUnknown_20229C0 -_0818C5B8: .4byte gUnknown_2022D08 -_0818C5BC: .4byte gUnknown_2023D08 - thumb_func_end RecordedPlayerHandleCmd38 - - thumb_func_start RecordedPlayerHandleCmd39 -RecordedPlayerHandleCmd39: @ 0x0818C5C0 - push {lr} - ldr r2, _0818C5D4 - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - bl RecordedPlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_0818C5D4: .4byte gUnknown_20229C0 - thumb_func_end RecordedPlayerHandleCmd39 - - thumb_func_start RecordedPlayerHandleCmd40 -RecordedPlayerHandleCmd40: @ 0x0818C5D8 - push {lr} - ldr r3, _0818C5FC - ldr r1, [r3] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x1f - movs r0, #1 - eors r1, r0 - lsls r1, r1, #7 - ldrb r2, [r3] - movs r0, #0x7f - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl RecordedPlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_0818C5FC: .4byte gUnknown_20229C0 - thumb_func_end RecordedPlayerHandleCmd40 - - thumb_func_start sub_0818C600 -sub_0818C600: @ 0x0818C600 - push {r4, lr} - ldr r3, _0818C628 - ldr r2, _0818C62C - ldr r4, _0818C630 - ldrb r0, [r4] - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - bge _0818C634 - bl RecordedPlayerBufferExecCompleted - b _0818C65E - .align 2, 0 -_0818C628: .4byte gUnknown_20205AC -_0818C62C: .4byte gUnknown_2023E88 -_0818C630: .4byte gUnknown_2023D08 -_0818C634: - ldr r1, _0818C664 - movs r0, #1 - strb r0, [r1] - ldrb r0, [r4] - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r1, #0 - strh r1, [r0, #0x30] - ldrb r0, [r4] - bl sub_080763FC - ldr r1, _0818C668 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0818C66C - str r1, [r0] -_0818C65E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0818C664: .4byte gUnknown_202415D -_0818C668: .4byte gUnknown_3005AC0 -_0818C66C: .4byte sub_08189F64 - thumb_func_end sub_0818C600 - - thumb_func_start RecordedPlayerHandleCmd42 -RecordedPlayerHandleCmd42: @ 0x0818C670 - push {lr} - bl RecordedPlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedPlayerHandleCmd42 - - thumb_func_start sub_0818C67C -sub_0818C67C: @ 0x0818C67C - push {r4, lr} - ldr r4, _0818C6B8 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - movs r3, #0x3f - cmp r0, #0 - bne _0818C690 - movs r3, #0xc0 -_0818C690: - ldr r2, _0818C6BC - ldrb r1, [r4] - lsls r1, r1, #9 - adds r0, r2, #1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, #2 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - lsls r1, r3, #0x18 - asrs r1, r1, #0x18 - bl PlaySE12WithPanning - bl RecordedPlayerBufferExecCompleted - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0818C6B8: .4byte gUnknown_2023D08 -_0818C6BC: .4byte gUnknown_2022D08 - thumb_func_end sub_0818C67C - - thumb_func_start RecordedPlayerHandlePlayFanfareOrBGM -RecordedPlayerHandlePlayFanfareOrBGM: @ 0x0818C6C0 - push {r4, r5, lr} - ldr r4, _0818C6F4 - ldr r5, _0818C6F8 - ldrb r0, [r5] - lsls r3, r0, #9 - adds r0, r4, #3 - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, #0 - beq _0818C6FC - bl BattleStopLowHpSound - ldrb r1, [r5] - lsls r1, r1, #9 - adds r0, r4, #1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, r4, #2 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - bl PlayBGM - b _0818C710 - .align 2, 0 -_0818C6F4: .4byte gUnknown_2022D08 -_0818C6F8: .4byte gUnknown_2023D08 -_0818C6FC: - adds r0, r4, #1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, #2 - adds r1, r3, r1 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - bl PlayFanfare -_0818C710: - bl RecordedPlayerBufferExecCompleted - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedPlayerHandlePlayFanfareOrBGM - - thumb_func_start RecordedPlayerHandleFaintingCry -RecordedPlayerHandleFaintingCry: @ 0x0818C71C - push {lr} - ldr r1, _0818C750 - ldr r0, _0818C754 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _0818C758 - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x19 - rsbs r1, r1, #0 - movs r2, #5 - bl PlayCry3 - bl RecordedPlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_0818C750: .4byte gUnknown_2023D12 -_0818C754: .4byte gUnknown_2023D08 -_0818C758: .4byte gUnknown_2024190 - thumb_func_end RecordedPlayerHandleFaintingCry - - thumb_func_start sub_0818C75C -sub_0818C75C: @ 0x0818C75C - push {lr} - ldr r1, _0818C784 - ldr r0, _0818C788 - ldrb r0, [r0] - lsls r0, r0, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - bl HandleIntroSlide - ldr r2, _0818C78C - ldrh r0, [r2] - movs r1, #1 - orrs r0, r1 - strh r0, [r2] - bl RecordedPlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_0818C784: .4byte gUnknown_2022D08 -_0818C788: .4byte gUnknown_2023D08 -_0818C78C: .4byte gUnknown_20240A0 - thumb_func_end sub_0818C75C - - thumb_func_start RecordedPlayerHandleIntroTrainerBallThrow -RecordedPlayerHandleIntroTrainerBallThrow: @ 0x0818C790 - push {r4, r5, r6, lr} - ldr r5, _0818C85C - ldr r6, _0818C860 - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _0818C864 - adds r0, r0, r4 - bl SetSpritePrimaryCoordsFromSecondaryCoords - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0x32 - strh r1, [r0, #0x2e] - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _0818C868 - strh r1, [r0, #0x32] - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r0, #0x22] - strh r1, [r0, #0x36] - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _0818C86C - str r1, [r0] - ldrb r2, [r6] - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - strh r2, [r0, #0x38] - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _0818C870 - bl StoreSpriteCallbackInData6 - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #1 - bl StartSpriteAnim - ldr r0, _0818C874 - bl AllocSpritePalette - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _0818C878 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x12 - ands r0, r1 - cmp r0, #0 - beq _0818C880 - ldr r4, _0818C87C - ldrb r0, [r6] - bl GetBattlerMultiplayerId - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r0, [r1, #0x13] - b _0818C886 - .align 2, 0 -_0818C85C: .4byte gUnknown_2023E88 -_0818C860: .4byte gUnknown_2023D08 -_0818C864: .4byte gUnknown_20205AC -_0818C868: .4byte 0x0000FFD8 -_0818C86C: .4byte sub_080A67B4 -_0818C870: .4byte sub_0805C81C -_0818C874: .4byte 0x0000D6F9 -_0818C878: .4byte gUnknown_2022C90 -_0818C87C: .4byte gUnknown_20226A0 -_0818C880: - ldr r0, _0818C920 - ldr r0, [r0] - ldrb r0, [r0, #8] -_0818C886: - ldr r1, _0818C924 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r0, [r0] - lsls r4, r5, #4 - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r4, r2 - movs r2, #0x20 - bl LoadCompressedPalette - ldr r2, _0818C928 - ldr r1, _0818C92C - ldr r5, _0818C930 - ldrb r0, [r5] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r4 - strb r0, [r1, #5] - ldr r0, _0818C934 - movs r1, #5 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _0818C938 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r4 - ldrb r0, [r5] - strh r0, [r1, #8] - ldr r3, _0818C93C - ldr r0, [r3] - ldrb r2, [r5] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0818C900 - ldr r0, _0818C940 - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r4 - ldr r1, _0818C944 - str r1, [r0] -_0818C900: - ldr r0, [r3] - ldr r2, [r0, #8] - ldrb r0, [r2, #9] - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #9] - ldr r1, _0818C948 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0818C94C - str r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0818C920: .4byte gUnknown_3005AF0 -_0818C924: .4byte gUnknown_82D961C -_0818C928: .4byte gUnknown_20205AC -_0818C92C: .4byte gUnknown_2023E88 -_0818C930: .4byte gUnknown_2023D08 -_0818C934: .4byte sub_0818C950 -_0818C938: .4byte gUnknown_3005B60 -_0818C93C: .4byte gUnknown_2024174 -_0818C940: .4byte gUnknown_2024158 -_0818C944: .4byte Task_HidePartyStatusSummary -_0818C948: .4byte gUnknown_3005AC0 -_0818C94C: .4byte sub_08189674 - thumb_func_end RecordedPlayerHandleIntroTrainerBallThrow - - thumb_func_start sub_0818C950 -sub_0818C950: @ 0x0818C950 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r1, _0818C978 - lsls r0, r0, #2 - add r0, r8 - lsls r0, r0, #3 - adds r1, r0, r1 - ldrh r2, [r1, #0xa] - movs r3, #0xa - ldrsh r0, [r1, r3] - cmp r0, #0x17 - bgt _0818C97C - adds r0, r2, #1 - strh r0, [r1, #0xa] - b _0818CA38 - .align 2, 0 -_0818C978: .4byte gUnknown_3005B60 -_0818C97C: - ldr r7, _0818C9BC - ldrb r0, [r7] - mov sb, r0 - ldrh r0, [r1, #8] - strb r0, [r7] - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0818C99C - ldr r0, _0818C9C0 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0818C9CC -_0818C99C: - ldr r0, _0818C9C4 - ldrb r1, [r7] - lsls r2, r1, #9 - adds r0, #1 - adds r2, r2, r0 - ldr r0, _0818C9C8 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - strb r0, [r2] - ldrb r0, [r7] - movs r1, #0 - bl sub_0818B798 - b _0818CA20 - .align 2, 0 -_0818C9BC: .4byte gUnknown_2023D08 -_0818C9C0: .4byte gUnknown_2022C90 -_0818C9C4: .4byte gUnknown_2022D08 -_0818C9C8: .4byte gUnknown_2023D12 -_0818C9CC: - ldr r4, _0818CA44 - ldrb r0, [r7] - lsls r1, r0, #9 - adds r4, #1 - adds r1, r1, r4 - ldr r5, _0818CA48 - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - movs r1, #0 - bl sub_0818B798 - ldrb r0, [r7] - movs r6, #2 - eors r0, r6 - strb r0, [r7] - ldrb r0, [r7] - lsls r1, r0, #9 - adds r1, r1, r4 - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r0, [r0] - strb r0, [r1] - ldrb r1, [r7] - lsls r0, r1, #1 - adds r0, r0, r5 - ldrh r2, [r0] - movs r0, #0x64 - muls r0, r2, r0 - ldr r2, _0818CA4C - adds r0, r0, r2 - bl BattleLoadPlayerMonSpriteGfx - ldrb r0, [r7] - movs r1, #0 - bl sub_0818B798 - ldrb r0, [r7] - eors r0, r6 - strb r0, [r7] -_0818CA20: - ldr r1, _0818CA50 - ldr r2, _0818CA54 - ldrb r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0818CA58 - str r1, [r0] - mov r3, sb - strb r3, [r2] - mov r0, r8 - bl DestroyTask -_0818CA38: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0818CA44: .4byte gUnknown_2022D08 -_0818CA48: .4byte gUnknown_2023D12 -_0818CA4C: .4byte gUnknown_2024190 -_0818CA50: .4byte gUnknown_3005AC0 -_0818CA54: .4byte gUnknown_2023D08 -_0818CA58: .4byte sub_08189A6C - thumb_func_end sub_0818C950 - - thumb_func_start RecordedPlayerHandleDrawPartyStatusSummary -RecordedPlayerHandleDrawPartyStatusSummary: @ 0x0818CA5C - push {r4, r5, r6, lr} - ldr r1, _0818CA84 - ldr r0, _0818CA88 - ldrb r2, [r0] - lsls r0, r2, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _0818CA8C - adds r0, r2, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0818CA8C - bl RecordedPlayerBufferExecCompleted - b _0818CB00 - .align 2, 0 -_0818CA84: .4byte gUnknown_2022D08 -_0818CA88: .4byte gUnknown_2023D08 -_0818CA8C: - ldr r6, _0818CB08 - ldr r0, [r6] - ldr r5, _0818CB0C - ldrb r1, [r5] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r2, #1 - orrs r1, r2 - strb r1, [r0] - ldrb r0, [r5] - lsls r3, r0, #9 - ldr r4, _0818CB10 - adds r1, r3, r4 - subs r2, r4, #3 - adds r2, r3, r2 - ldrb r2, [r2] - subs r4, #2 - adds r3, r3, r4 - ldrb r3, [r3] - bl CreatePartyStatusSummarySprites - ldr r2, _0818CB14 - ldrb r1, [r5] - adds r1, r1, r2 - movs r3, #0 - strb r0, [r1] - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strb r3, [r0, #5] - ldrb r2, [r5] - lsls r0, r2, #9 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0 - beq _0818CAF4 - ldr r0, [r6] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - movs r1, #0x5d - strb r1, [r0, #5] -_0818CAF4: - ldr r0, _0818CB18 - ldrb r1, [r5] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, _0818CB1C - str r0, [r1] -_0818CB00: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0818CB08: .4byte gUnknown_2024174 -_0818CB0C: .4byte gUnknown_2023D08 -_0818CB10: .4byte gUnknown_2022D0C -_0818CB14: .4byte gUnknown_2024158 -_0818CB18: .4byte gUnknown_3005AC0 -_0818CB1C: .4byte sub_0818CB20 - thumb_func_end RecordedPlayerHandleDrawPartyStatusSummary - - thumb_func_start sub_0818CB20 -sub_0818CB20: @ 0x0818CB20 - push {r4, lr} - ldr r4, _0818CB60 - ldr r0, [r4] - ldr r3, _0818CB64 - ldrb r1, [r3] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #5] - adds r2, r1, #1 - strb r2, [r0, #5] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #0x5c - bls _0818CB58 - ldr r0, [r4] - ldrb r1, [r3] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0 - strb r1, [r0, #5] - bl RecordedPlayerBufferExecCompleted -_0818CB58: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0818CB60: .4byte gUnknown_2024174 -_0818CB64: .4byte gUnknown_2023D08 - thumb_func_end sub_0818CB20 - - thumb_func_start RecordedPlayerHandleHidePartyStatusSummary -RecordedPlayerHandleHidePartyStatusSummary: @ 0x0818CB68 - push {lr} - ldr r0, _0818CBA4 - ldr r1, [r0] - ldr r0, _0818CBA8 - ldrb r3, [r0] - ldr r1, [r1, #4] - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0818CB9A - ldr r2, _0818CBAC - ldr r0, _0818CBB0 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldr r1, _0818CBB4 - str r1, [r0] -_0818CB9A: - bl RecordedPlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_0818CBA4: .4byte gUnknown_2024174 -_0818CBA8: .4byte gUnknown_2023D08 -_0818CBAC: .4byte gUnknown_3005B60 -_0818CBB0: .4byte gUnknown_2024158 -_0818CBB4: .4byte Task_HidePartyStatusSummary - thumb_func_end RecordedPlayerHandleHidePartyStatusSummary - - thumb_func_start RecordedPlayerHandleEndBounceEffect -RecordedPlayerHandleEndBounceEffect: @ 0x0818CBB8 - push {lr} - bl RecordedPlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedPlayerHandleEndBounceEffect - - thumb_func_start RecordedPlayerHandleSpriteInvisibility -RecordedPlayerHandleSpriteInvisibility: @ 0x0818CBC4 - push {r4, lr} - ldr r4, _0818CC14 - ldrb r0, [r4] - bl IsBattlerSpritePresent - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0818CC0A - ldr r3, _0818CC18 - ldr r0, _0818CC1C - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r0, _0818CC20 - lsls r1, r1, #9 - adds r0, #1 - adds r1, r1, r0 - adds r2, #0x3e - movs r0, #1 - ldrb r1, [r1] - ands r1, r0 - lsls r1, r1, #2 - ldrb r3, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4] - bl CopyBattleSpriteInvisibility -_0818CC0A: - bl RecordedPlayerBufferExecCompleted - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0818CC14: .4byte gUnknown_2023D08 -_0818CC18: .4byte gUnknown_20205AC -_0818CC1C: .4byte gUnknown_2023E88 -_0818CC20: .4byte gUnknown_2022D08 - thumb_func_end RecordedPlayerHandleSpriteInvisibility - - thumb_func_start RecordedPlayerHandleBattleAnimation -RecordedPlayerHandleBattleAnimation: @ 0x0818CC24 - push {r4, r5, r6, lr} - sub sp, #4 - ldr r6, _0818CC68 - ldrb r0, [r6] - bl mplay_80342A4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0818CC7C - ldr r5, _0818CC6C - ldrb r2, [r6] - lsls r1, r2, #9 - adds r0, r5, #1 - adds r0, r1, r0 - ldrb r3, [r0] - adds r0, r5, #2 - adds r0, r1, r0 - ldrb r4, [r0] - adds r5, #3 - adds r1, r1, r5 - ldrb r0, [r1] - lsls r0, r0, #8 - orrs r4, r0 - str r4, [sp] - adds r0, r2, #0 - adds r1, r2, #0 - bl TryHandleLaunchBattleTableAnimation - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0818CC70 - bl RecordedPlayerBufferExecCompleted - b _0818CC7C - .align 2, 0 -_0818CC68: .4byte gUnknown_2023D08 -_0818CC6C: .4byte gUnknown_2022D08 -_0818CC70: - ldr r0, _0818CC84 - ldrb r1, [r6] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, _0818CC88 - str r0, [r1] -_0818CC7C: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0818CC84: .4byte gUnknown_3005AC0 -_0818CC88: .4byte CompleteOnFinishedBattleAnimation - thumb_func_end RecordedPlayerHandleBattleAnimation - - thumb_func_start RecordedPlayerHandleLinkStandbyMsg -RecordedPlayerHandleLinkStandbyMsg: @ 0x0818CC8C - push {lr} - bl RecordedPlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedPlayerHandleLinkStandbyMsg - - thumb_func_start RecordedPlayerHandleResetActionMoveSelection -RecordedPlayerHandleResetActionMoveSelection: @ 0x0818CC98 - push {lr} - bl RecordedPlayerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end RecordedPlayerHandleResetActionMoveSelection - - thumb_func_start RecordedPlayerHandleCmd55 -RecordedPlayerHandleCmd55: @ 0x0818CCA4 - push {r4, lr} - ldr r2, _0818CCDC - ldr r1, _0818CCE0 - ldr r4, _0818CCE4 - ldrb r0, [r4] - lsls r0, r0, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r2] - movs r0, #5 - bl FadeOutMapMusic - movs r0, #3 - bl BeginFastPaletteFade - bl RecordedPlayerBufferExecCompleted - ldr r1, _0818CCE8 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _0818CCEC - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0818CCDC: .4byte gUnknown_2023FDE -_0818CCE0: .4byte gUnknown_2022D08 -_0818CCE4: .4byte gUnknown_2023D08 -_0818CCE8: .4byte gUnknown_3005AC0 -_0818CCEC: .4byte sub_080583C0 - thumb_func_end RecordedPlayerHandleCmd55 - - thumb_func_start sub_0818CCF0 -sub_0818CCF0: @ 0x0818CCF0 - bx lr - .align 2, 0 - thumb_func_end sub_0818CCF0 - - thumb_func_start sub_0818CCF4 -sub_0818CCF4: @ 0x0818CCF4 - bx lr - .align 2, 0 - thumb_func_end sub_0818CCF4 - - thumb_func_start ResetAllPicSprites -ResetAllPicSprites: @ 0x0818CCF8 - push {r4, r5, r6, r7, lr} - ldr r4, _0818CD18 - ldr r3, _0818CD1C - movs r2, #7 -_0818CD00: - adds r1, r3, #0 - adds r0, r4, #0 - ldm r0!, {r5, r6, r7} - stm r1!, {r5, r6, r7} - adds r3, #0xc - subs r2, #1 - cmp r2, #0 - bge _0818CD00 - movs r0, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0818CD18: .4byte gUnknown_85D3AB8 -_0818CD1C: .4byte gUnknown_203C9D0 - thumb_func_end ResetAllPicSprites - - thumb_func_start DecompressPic -DecompressPic: @ 0x0818CD20 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r6, r1, #0 - adds r5, r3, #0 - ldr r3, [sp, #0x18] - ldr r1, [sp, #0x1c] - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r7, r4, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r1, #0 - cmp r3, #0 - bne _0818CD94 - cmp r2, #0 - beq _0818CD60 - cmp r1, #0 - bne _0818CD54 - lsls r0, r4, #3 - ldr r1, _0818CD50 - b _0818CD68 - .align 2, 0 -_0818CD50: .4byte gUnknown_82DDA1C -_0818CD54: - lsls r0, r4, #3 - ldr r1, _0818CD5C - b _0818CD80 - .align 2, 0 -_0818CD5C: .4byte gUnknown_82DDA1C -_0818CD60: - cmp r0, #0 - bne _0818CD7C - lsls r0, r4, #3 - ldr r1, _0818CD78 -_0818CD68: - adds r0, r0, r1 - str r2, [sp] - adds r1, r5, #0 - adds r2, r4, #0 - adds r3, r6, #0 - bl sub_080344AC - b _0818CDBA - .align 2, 0 -_0818CD78: .4byte gUnknown_82D6148 -_0818CD7C: - lsls r0, r4, #3 - ldr r1, _0818CD90 -_0818CD80: - adds r0, r0, r1 - str r2, [sp] - adds r1, r5, #0 - adds r2, r4, #0 - adds r3, r6, #0 - bl LoadSpecialPokePic_DontHandleDeoxys - b _0818CDBA - .align 2, 0 -_0818CD90: .4byte gUnknown_82D6148 -_0818CD94: - cmp r2, #0 - beq _0818CDAC - lsls r0, r4, #3 - ldr r1, _0818CDA8 - adds r0, r0, r1 - adds r1, r5, #0 - adds r2, r4, #0 - bl DecompressPicFromTable - b _0818CDBA - .align 2, 0 -_0818CDA8: .4byte gUnknown_82D8EE4 -_0818CDAC: - lsls r0, r7, #3 - ldr r1, _0818CDC4 - adds r0, r0, r1 - adds r1, r5, #0 - adds r2, r7, #0 - bl DecompressPicFromTable -_0818CDBA: - movs r0, #0 - add sp, #4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0818CDC4: .4byte gUnknown_82D95DC - thumb_func_end DecompressPic - - thumb_func_start DecompressPic_HandleDeoxys -DecompressPic_HandleDeoxys: @ 0x0818CDC8 - push {r4, lr} - sub sp, #8 - ldr r4, [sp, #0x10] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp] - movs r4, #0 - str r4, [sp, #4] - bl DecompressPic - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - add sp, #8 - pop {r4} - pop {r1} - bx r1 - thumb_func_end DecompressPic_HandleDeoxys - - thumb_func_start LoadPicPaletteByTagOrSlot -LoadPicPaletteByTagOrSlot: @ 0x0818CDF0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r1, #0 - mov r8, r2 - ldr r1, [sp, #0x18] - ldr r2, [sp, #0x1c] - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r6, r4, #0 - lsls r3, r3, #0x18 - lsrs r5, r3, #0x18 - mov ip, r5 - lsls r1, r1, #0x10 - lsrs r3, r1, #0x10 - adds r1, r3, #0 - lsls r2, r2, #0x18 - cmp r2, #0 - bne _0818CE54 - ldr r0, _0818CE34 - cmp r3, r0 - bne _0818CE3C - ldr r2, _0818CE38 - ldrh r1, [r2, #2] - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2, #2] - adds r0, r4, #0 - adds r1, r7, #0 - mov r2, r8 - bl GetMonSpritePalFromSpeciesAndPersonality - lsls r1, r5, #0x14 - b _0818CE70 - .align 2, 0 -_0818CE34: .4byte 0x0000FFFF -_0818CE38: .4byte gUnknown_203C9B8 -_0818CE3C: - ldr r0, _0818CE50 - strh r3, [r0, #2] - adds r0, r4, #0 - adds r1, r7, #0 - mov r2, r8 - bl GetMonSpritePalStructFromOtIdPersonality - bl LoadCompressedSpritePalette - b _0818CE9A - .align 2, 0 -_0818CE50: .4byte gUnknown_203C9B8 -_0818CE54: - ldr r0, _0818CE80 - cmp r3, r0 - bne _0818CE8C - ldr r2, _0818CE84 - ldrh r1, [r2, #2] - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2, #2] - ldr r1, _0818CE88 - lsls r0, r4, #3 - adds r0, r0, r1 - ldr r0, [r0] - mov r2, ip - lsls r1, r2, #0x14 -_0818CE70: - movs r2, #0x80 - lsls r2, r2, #0x11 - adds r1, r1, r2 - lsrs r1, r1, #0x10 - movs r2, #0x20 - bl LoadCompressedPalette - b _0818CE9A - .align 2, 0 -_0818CE80: .4byte 0x0000FFFF -_0818CE84: .4byte gUnknown_203C9B8 -_0818CE88: .4byte gUnknown_82D91CC -_0818CE8C: - ldr r0, _0818CEA4 - strh r1, [r0, #2] - lsls r0, r6, #3 - ldr r1, _0818CEA8 - adds r0, r0, r1 - bl LoadCompressedSpritePalette -_0818CE9A: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0818CEA4: .4byte gUnknown_203C9B8 -_0818CEA8: .4byte gUnknown_82D91CC - thumb_func_end LoadPicPaletteByTagOrSlot - - thumb_func_start LoadPicPaletteBySlot -LoadPicPaletteBySlot: @ 0x0818CEAC - push {r4, r5, lr} - adds r5, r1, #0 - ldr r1, [sp, #0xc] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r3, r3, #0x18 - lsrs r4, r3, #0x18 - lsls r1, r1, #0x18 - cmp r1, #0 - bne _0818CED0 - adds r1, r5, #0 - bl GetMonSpritePalFromSpeciesAndPersonality - lsls r1, r4, #4 - movs r2, #0x20 - bl LoadCompressedPalette - b _0818CEE0 -_0818CED0: - ldr r1, _0818CEE8 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r0, [r0] - lsls r1, r4, #4 - movs r2, #0x20 - bl LoadCompressedPalette -_0818CEE0: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0818CEE8: .4byte gUnknown_82D91CC - thumb_func_end LoadPicPaletteBySlot - - thumb_func_start AssignSpriteAnimsTable -AssignSpriteAnimsTable: @ 0x0818CEEC - push {lr} - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0818CF04 - ldr r1, _0818CEFC - ldr r0, _0818CF00 - str r0, [r1, #8] - b _0818CF0C - .align 2, 0 -_0818CEFC: .4byte gUnknown_203C9B8 -_0818CF00: .4byte gUnknown_82D2F9C -_0818CF04: - ldr r0, _0818CF10 - ldr r1, _0818CF14 - ldr r1, [r1] - str r1, [r0, #8] -_0818CF0C: - pop {r0} - bx r0 - .align 2, 0 -_0818CF10: .4byte gUnknown_203C9B8 -_0818CF14: .4byte gUnknown_82D8BFC - thumb_func_end AssignSpriteAnimsTable - - thumb_func_start CreatePicSprite -CreatePicSprite: @ 0x0818CF18 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x30 - str r1, [sp, #0xc] - str r2, [sp, #0x10] - ldr r1, [sp, #0x50] - ldr r2, [sp, #0x54] - ldr r4, [sp, #0x58] - ldr r5, [sp, #0x5c] - ldr r6, [sp, #0x60] - ldr r7, [sp, #0x64] - mov r8, r7 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #8] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r3, [sp, #0x14] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp, #0x18] - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - str r2, [sp, #0x1c] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp, #0x20] - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - mov sl, r5 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov sb, r6 - mov r0, r8 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r4, #0 - ldr r1, _0818CFB0 - ldrb r0, [r1, #0xb] - cmp r0, #0 - beq _0818CF88 -_0818CF70: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #7 - bhi _0818CF88 - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #0xb] - cmp r0, #0 - bne _0818CF70 -_0818CF88: - cmp r4, #8 - beq _0818CFAC - movs r0, #0x80 - lsls r0, r0, #6 - bl sub_08000BC8 - adds r7, r0, #0 - cmp r7, #0 - beq _0818CFAC - movs r0, #0x20 - bl sub_08000BC8 - mov r8, r0 - cmp r0, #0 - bne _0818CFB8 - adds r0, r7, #0 - bl Free -_0818CFAC: - ldr r0, _0818CFB4 - b _0818D082 - .align 2, 0 -_0818CFB0: .4byte gUnknown_203C9D0 -_0818CFB4: .4byte 0x0000FFFF -_0818CFB8: - mov r1, sb - str r1, [sp] - str r5, [sp, #4] - ldr r0, [sp, #8] - ldr r1, [sp, #0x10] - ldr r2, [sp, #0x14] - adds r3, r7, #0 - bl DecompressPic - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0818CFAC - lsls r2, r4, #1 - str r2, [sp, #0x2c] - ldr r5, _0818D094 - ldr r0, _0818D098 - mov ip, r0 - ldr r1, [sp, #0x18] - lsls r1, r1, #0x10 - str r1, [sp, #0x24] - ldr r2, [sp, #0x1c] - lsls r2, r2, #0x10 - str r2, [sp, #0x28] - movs r3, #0x80 - lsls r3, r3, #4 - mov r0, r8 - adds r1, r7, #0 - adds r6, r3, #0 - movs r2, #3 -_0818CFF2: - str r1, [r0] - strh r3, [r0, #4] - adds r0, #8 - adds r1, r1, r6 - subs r2, #1 - cmp r2, #0 - bge _0818CFF2 - ldr r0, _0818D09C - strh r0, [r5] - mov r0, ip - str r0, [r5, #4] - mov r0, sb - bl AssignSpriteAnimsTable - mov r1, r8 - str r1, [r5, #0xc] - ldr r0, _0818D0A0 - str r0, [r5, #0x10] - ldr r0, _0818D0A4 - str r0, [r5, #0x14] - mov r2, sl - str r2, [sp] - mov r0, sb - str r0, [sp, #4] - ldr r0, [sp, #8] - ldr r1, [sp, #0xc] - ldr r2, [sp, #0x10] - ldr r3, [sp, #0x20] - bl LoadPicPaletteByTagOrSlot - ldr r2, [sp, #0x24] - asrs r1, r2, #0x10 - ldr r0, [sp, #0x28] - asrs r2, r0, #0x10 - adds r0, r5, #0 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r6, r2, #0 - ldr r0, _0818D09C - cmp sl, r0 - bne _0818D062 - ldr r0, _0818D0A8 - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r2, [sp, #0x20] - lsls r3, r2, #4 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #5] -_0818D062: - ldr r1, _0818D0AC - ldr r2, [sp, #0x2c] - adds r0, r2, r4 - lsls r0, r0, #2 - adds r2, r0, r1 - str r7, [r2] - adds r1, #4 - adds r0, r0, r1 - mov r7, r8 - str r7, [r0] - mov r0, sl - strh r0, [r2, #8] - strb r6, [r2, #0xa] - movs r0, #1 - strb r0, [r2, #0xb] - adds r0, r6, #0 -_0818D082: - add sp, #0x30 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0818D094: .4byte gUnknown_203C9B8 -_0818D098: .4byte gUnknown_85D3AC4 -_0818D09C: .4byte 0x0000FFFF -_0818D0A0: .4byte gUnknown_82BF310 -_0818D0A4: .4byte sub_0818CCF4 -_0818D0A8: .4byte gUnknown_20205AC -_0818D0AC: .4byte gUnknown_203C9D0 - thumb_func_end CreatePicSprite - - thumb_func_start CreatePicSprite_HandleDeoxys -CreatePicSprite_HandleDeoxys: @ 0x0818D0B0 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x18 - ldr r4, [sp, #0x34] - ldr r5, [sp, #0x38] - ldr r6, [sp, #0x3c] - ldr r7, [sp, #0x40] - mov r8, r7 - ldr r7, [sp, #0x44] - mov sb, r7 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov r7, r8 - lsls r7, r7, #0x10 - lsrs r7, r7, #0x10 - mov r8, r7 - mov r7, sb - lsls r7, r7, #0x18 - lsrs r7, r7, #0x18 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - str r4, [sp] - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - str r5, [sp, #4] - str r6, [sp, #8] - mov r4, r8 - str r4, [sp, #0xc] - str r7, [sp, #0x10] - movs r4, #0 - str r4, [sp, #0x14] - bl CreatePicSprite - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - add sp, #0x18 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end CreatePicSprite_HandleDeoxys - - thumb_func_start CreatePicSprite2 -CreatePicSprite2: @ 0x0818D110 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x2c - str r1, [sp, #8] - str r2, [sp, #0xc] - ldr r1, [sp, #0x4c] - ldr r2, [sp, #0x50] - ldr r4, [sp, #0x54] - ldr r5, [sp, #0x58] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sl, r0 - lsls r3, r3, #0x18 - lsrs r6, r3, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp, #0x10] - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - str r2, [sp, #0x14] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp, #0x18] - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - str r5, [sp, #0x1c] - movs r5, #0 - ldr r1, _0818D190 - ldrb r0, [r1, #0xb] - cmp r0, #0 - beq _0818D16C -_0818D154: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #7 - bhi _0818D16C - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #0xb] - cmp r0, #0 - bne _0818D154 -_0818D16C: - cmp r5, #8 - beq _0818D1A8 - movs r0, #0x80 - lsls r0, r0, #6 - bl sub_08000BC8 - adds r7, r0, #0 - cmp r7, #0 - beq _0818D1A8 - movs r0, #0x80 - ands r0, r6 - cmp r0, #0 - beq _0818D194 - movs r0, #0x7f - ands r6, r0 - movs r0, #3 - mov sb, r0 - b _0818D196 - .align 2, 0 -_0818D190: .4byte gUnknown_203C9D0 -_0818D194: - mov sb, r6 -_0818D196: - movs r0, #0x20 - bl sub_08000BC8 - mov r8, r0 - cmp r0, #0 - bne _0818D1B0 - adds r0, r7, #0 - bl Free -_0818D1A8: - ldr r0, _0818D1AC - b _0818D2B4 - .align 2, 0 -_0818D1AC: .4byte 0x0000FFFF -_0818D1B0: - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, sl - ldr r1, [sp, #0xc] - adds r2, r6, #0 - adds r3, r7, #0 - bl DecompressPic - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0818D1A8 - lsls r1, r5, #1 - str r1, [sp, #0x28] - ldr r4, _0818D214 - mov r2, sl - lsls r2, r2, #2 - mov ip, r2 - ldr r0, [sp, #0x10] - lsls r0, r0, #0x10 - str r0, [sp, #0x20] - ldr r1, [sp, #0x14] - lsls r1, r1, #0x10 - str r1, [sp, #0x24] - movs r3, #0x80 - lsls r3, r3, #4 - mov r0, r8 - adds r1, r7, #0 - adds r6, r3, #0 - movs r2, #3 -_0818D1EC: - str r1, [r0] - strh r3, [r0, #4] - adds r0, #8 - adds r1, r1, r6 - subs r2, #1 - cmp r2, #0 - bge _0818D1EC - ldr r0, _0818D218 - strh r0, [r4] - ldr r0, _0818D21C - add r0, ip - ldr r0, [r0] - str r0, [r4, #8] - mov r2, r8 - str r2, [r4, #0xc] - mov r0, sb - cmp r0, #1 - bne _0818D224 - ldr r0, _0818D220 - b _0818D22C - .align 2, 0 -_0818D214: .4byte gUnknown_203C9B8 -_0818D218: .4byte 0x0000FFFF -_0818D21C: .4byte gUnknown_82DD33C -_0818D220: .4byte gUnknown_82D2F24 -_0818D224: - mov r1, sb - cmp r1, #0 - bne _0818D23C - ldr r0, _0818D234 -_0818D22C: - str r0, [r4, #0x10] - ldr r0, _0818D238 - str r0, [r4, #4] - b _0818D244 - .align 2, 0 -_0818D234: .4byte gUnknown_82D2EA8 -_0818D238: .4byte gUnknown_85D3ACC -_0818D23C: - ldr r0, _0818D2C4 - str r0, [r4, #4] - ldr r0, _0818D2C8 - str r0, [r4, #0x10] -_0818D244: - ldr r2, _0818D2CC - str r2, [r4, #0x14] - ldr r0, [sp, #0x1c] - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - mov r0, sl - ldr r1, [sp, #8] - ldr r2, [sp, #0xc] - ldr r3, [sp, #0x18] - bl LoadPicPaletteByTagOrSlot - ldr r2, [sp, #0x20] - asrs r1, r2, #0x10 - ldr r0, [sp, #0x24] - asrs r2, r0, #0x10 - adds r0, r4, #0 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r6, r2, #0 - ldr r0, _0818D2D0 - ldr r1, [sp, #0x1c] - cmp r1, r0 - bne _0818D292 - ldr r0, _0818D2D4 - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r2, [sp, #0x18] - lsls r3, r2, #4 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #5] -_0818D292: - ldr r1, _0818D2D8 - ldr r2, [sp, #0x28] - adds r0, r2, r5 - lsls r0, r0, #2 - adds r2, r0, r1 - str r7, [r2] - adds r1, #4 - adds r0, r0, r1 - mov r1, r8 - str r1, [r0] - mov r0, sp - ldrh r0, [r0, #0x1c] - strh r0, [r2, #8] - strb r6, [r2, #0xa] - movs r0, #1 - strb r0, [r2, #0xb] - adds r0, r6, #0 -_0818D2B4: - add sp, #0x2c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0818D2C4: .4byte gUnknown_85D3AC4 -_0818D2C8: .4byte gUnknown_82BF310 -_0818D2CC: .4byte sub_0818CCF4 -_0818D2D0: .4byte 0x0000FFFF -_0818D2D4: .4byte gUnknown_20205AC -_0818D2D8: .4byte gUnknown_203C9D0 - thumb_func_end CreatePicSprite2 - - thumb_func_start FreeAndDestroyPicSpriteInternal -FreeAndDestroyPicSpriteInternal: @ 0x0818D2DC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r2, #0 - ldr r0, _0818D314 - ldrb r1, [r0, #0xa] - adds r3, r0, #0 - cmp r1, r4 - beq _0818D30C - adds r1, r3, #0 -_0818D2F4: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #7 - bhi _0818D30C - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #0xa] - cmp r0, r4 - bne _0818D2F4 -_0818D30C: - cmp r2, #8 - bne _0818D31C - ldr r0, _0818D318 - b _0818D372 - .align 2, 0 -_0818D314: .4byte gUnknown_203C9D0 -_0818D318: .4byte 0x0000FFFF -_0818D31C: - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r5, r0, r3 - ldr r1, [r5] - mov r8, r1 - adds r1, r3, #4 - adds r0, r0, r1 - ldr r7, [r0] - ldrh r1, [r5, #8] - ldr r0, _0818D37C - lsls r6, r4, #4 - cmp r1, r0 - beq _0818D350 - ldr r1, _0818D380 - adds r0, r6, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #5] - lsrs r0, r0, #4 - bl sub_08008554 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl FreeSpritePaletteByTag -_0818D350: - adds r0, r6, r4 - lsls r0, r0, #2 - ldr r1, _0818D380 - adds r0, r0, r1 - bl DestroySprite - mov r0, r8 - bl Free - adds r0, r7, #0 - bl Free - adds r1, r5, #0 - ldr r0, _0818D384 - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - movs r0, #0 -_0818D372: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0818D37C: .4byte 0x0000FFFF -_0818D380: .4byte gUnknown_20205AC -_0818D384: .4byte gUnknown_85D3AB8 - thumb_func_end FreeAndDestroyPicSpriteInternal - - thumb_func_start sub_0818D388 -sub_0818D388: @ 0x0818D388 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - mov sb, r1 - adds r7, r2, #0 - adds r4, r3, #0 - ldr r1, [sp, #0x20] - ldr r2, [sp, #0x24] - ldr r3, [sp, #0x28] - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r6, r3, #0x18 - adds r0, r2, #0 - movs r1, #7 - bl GetWindowAttribute - adds r3, r0, #0 - movs r0, #0 - str r0, [sp] - adds r0, r5, #0 - adds r1, r7, #0 - adds r2, r4, #0 - bl DecompressPic_HandleDeoxys - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0818D3E4 - str r6, [sp] - adds r0, r5, #0 - mov r1, sb - adds r2, r7, #0 - mov r3, r8 - bl LoadPicPaletteBySlot - movs r0, #0 - b _0818D3E6 -_0818D3E4: - ldr r0, _0818D3F4 -_0818D3E6: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0818D3F4: .4byte 0x0000FFFF - thumb_func_end sub_0818D388 - - thumb_func_start sub_0818D3F8 -sub_0818D3F8: @ 0x0818D3F8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x24 - str r1, [sp, #0x18] - str r2, [sp, #0x1c] - ldr r1, [sp, #0x44] - ldr r2, [sp, #0x48] - ldr r4, [sp, #0x4c] - ldr r5, [sp, #0x50] - ldr r6, [sp, #0x54] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - lsls r3, r3, #0x18 - lsrs r7, r3, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sl, r1 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - mov r8, r2 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp, #0x20] - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - movs r0, #0x80 - lsls r0, r0, #6 - bl sub_08000BC8 - adds r4, r0, #0 - cmp r4, #0 - beq _0818D48E - str r6, [sp] - mov r0, sb - ldr r1, [sp, #0x1c] - adds r2, r7, #0 - adds r3, r4, #0 - bl DecompressPic_HandleDeoxys - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0818D48E - movs r0, #0x40 - str r0, [sp] - str r0, [sp, #4] - mov r1, sl - str r1, [sp, #8] - mov r1, r8 - str r1, [sp, #0xc] - str r0, [sp, #0x10] - str r0, [sp, #0x14] - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - movs r3, #0 - bl BlitBitmapRectToWindow - str r6, [sp] - mov r0, sb - ldr r1, [sp, #0x18] - ldr r2, [sp, #0x1c] - ldr r3, [sp, #0x20] - bl LoadPicPaletteBySlot - adds r0, r4, #0 - bl Free - movs r0, #0 - b _0818D490 -_0818D48E: - ldr r0, _0818D4A0 -_0818D490: - add sp, #0x24 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0818D4A0: .4byte 0x0000FFFF - thumb_func_end sub_0818D3F8 - - thumb_func_start CreateMonPicSprite -CreateMonPicSprite: @ 0x0818D4A4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x18 - ldr r4, [sp, #0x34] - ldr r5, [sp, #0x38] - ldr r6, [sp, #0x3c] - ldr r7, [sp, #0x40] - mov r8, r7 - ldr r7, [sp, #0x44] - mov sb, r7 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov r7, r8 - lsls r7, r7, #0x10 - lsrs r7, r7, #0x10 - mov r8, r7 - mov r7, sb - lsls r7, r7, #0x18 - lsrs r7, r7, #0x18 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - str r4, [sp] - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - str r5, [sp, #4] - str r6, [sp, #8] - mov r4, r8 - str r4, [sp, #0xc] - movs r4, #0 - str r4, [sp, #0x10] - str r7, [sp, #0x14] - bl CreatePicSprite - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - add sp, #0x18 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end CreateMonPicSprite - - thumb_func_start CreateMonPicSprite_HandleDeoxys -CreateMonPicSprite_HandleDeoxys: @ 0x0818D504 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x14 - ldr r4, [sp, #0x2c] - ldr r5, [sp, #0x30] - ldr r6, [sp, #0x34] - ldr r7, [sp, #0x38] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r7, r7, #0x10 - lsrs r7, r7, #0x10 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - str r4, [sp] - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - str r5, [sp, #4] - str r6, [sp, #8] - str r7, [sp, #0xc] - movs r4, #0 - str r4, [sp, #0x10] - bl CreateMonPicSprite - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - add sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end CreateMonPicSprite_HandleDeoxys - - thumb_func_start FreeAndDestroyMonPicSprite -FreeAndDestroyMonPicSprite: @ 0x0818D54C - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl FreeAndDestroyPicSpriteInternal - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end FreeAndDestroyMonPicSprite - - thumb_func_start sub_0818D560 -sub_0818D560: @ 0x0818D560 - push {r4, r5, lr} - sub sp, #0xc - ldr r4, [sp, #0x18] - ldr r5, [sp, #0x1c] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - str r4, [sp] - str r5, [sp, #4] - movs r4, #0 - str r4, [sp, #8] - bl sub_0818D388 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - add sp, #0xc - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_0818D560 - - thumb_func_start sub_0818D590 -sub_0818D590: @ 0x0818D590 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x14 - ldr r4, [sp, #0x2c] - ldr r5, [sp, #0x30] - ldr r6, [sp, #0x34] - ldr r7, [sp, #0x38] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r7, r7, #0x18 - lsrs r7, r7, #0x18 - str r4, [sp] - str r5, [sp, #4] - str r6, [sp, #8] - str r7, [sp, #0xc] - movs r4, #0 - str r4, [sp, #0x10] - bl sub_0818D3F8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - add sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_0818D590 - - thumb_func_start CreateTrainerPicSprite -CreateTrainerPicSprite: @ 0x0818D5D8 - push {r4, r5, lr} - sub sp, #0x14 - adds r5, r1, #0 - ldr r1, [sp, #0x20] - ldr r4, [sp, #0x24] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - str r2, [sp] - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - str r3, [sp, #4] - str r1, [sp, #8] - str r4, [sp, #0xc] - movs r1, #1 - str r1, [sp, #0x10] - movs r1, #0 - movs r2, #0 - adds r3, r5, #0 - bl CreatePicSprite_HandleDeoxys - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - add sp, #0x14 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end CreateTrainerPicSprite - - thumb_func_start FreeAndDestroyTrainerPicSprite -FreeAndDestroyTrainerPicSprite: @ 0x0818D61C - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl FreeAndDestroyPicSpriteInternal - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end FreeAndDestroyTrainerPicSprite - - thumb_func_start sub_0818D630 -sub_0818D630: @ 0x0818D630 - push {r4, lr} - sub sp, #0xc - adds r4, r1, #0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r2, [sp] - str r3, [sp, #4] - movs r1, #1 - str r1, [sp, #8] - movs r1, #0 - movs r2, #0 - adds r3, r4, #0 - bl sub_0818D388 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - add sp, #0xc - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_0818D630 - - thumb_func_start sub_0818D664 -sub_0818D664: @ 0x0818D664 - push {r4, r5, lr} - sub sp, #0x14 - adds r5, r1, #0 - ldr r1, [sp, #0x20] - ldr r4, [sp, #0x24] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r2, [sp] - str r3, [sp, #4] - str r1, [sp, #8] - str r4, [sp, #0xc] - movs r1, #1 - str r1, [sp, #0x10] - movs r1, #0 - movs r2, #0 - adds r3, r5, #0 - bl sub_0818D3F8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - add sp, #0x14 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_0818D664 - - thumb_func_start PlayerGenderToFrontTrainerPicId_Debug -PlayerGenderToFrontTrainerPicId_Debug: @ 0x0818D6A8 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #1 - bne _0818D6CE - cmp r0, #0 - beq _0818D6C8 - ldr r0, _0818D6C4 - adds r0, #0x3f - ldrb r0, [r0] - b _0818D6CE - .align 2, 0 -_0818D6C4: .4byte gUnknown_82EFF00 -_0818D6C8: - ldr r0, _0818D6D4 - adds r0, #0x3c - ldrb r0, [r0] -_0818D6CE: - pop {r1} - bx r1 - .align 2, 0 -_0818D6D4: .4byte gUnknown_82EFF00 - thumb_func_end PlayerGenderToFrontTrainerPicId_Debug - - thumb_func_start sub_0818D6D8 -sub_0818D6D8: @ 0x0818D6D8 - ldr r0, _0818D6E4 - ldr r0, [r0] - ldr r1, _0818D6E8 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0818D6E4: .4byte gUnknown_3005AEC -_0818D6E8: .4byte 0x00003B58 - thumb_func_end sub_0818D6D8 - - thumb_func_start sub_0818D6EC -sub_0818D6EC: @ 0x0818D6EC - push {r4, r5, lr} - ldr r5, _0818D730 - ldr r4, _0818D734 - bl sub_0818D6D8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r4 - ldrh r1, [r0] - adds r0, r5, #0 - bl VarSet - bl sub_0818D6D8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _0818D74C - ldr r0, _0818D738 - ldr r1, [r0] - ldr r0, _0818D73C - adds r1, r1, r0 - ldr r0, _0818D740 - ldr r2, _0818D744 - ldrb r1, [r1, #0xd] - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r1, [r1] - bl VarSet - ldr r1, _0818D748 - movs r0, #1 - b _0818D750 - .align 2, 0 -_0818D730: .4byte 0x00004010 -_0818D734: .4byte gUnknown_85D3ADE -_0818D738: .4byte gUnknown_3005AEC -_0818D73C: .4byte 0x00003B58 -_0818D740: .4byte 0x00004011 -_0818D744: .4byte gUnknown_85D3AD4 -_0818D748: .4byte gUnknown_2037290 -_0818D74C: - ldr r1, _0818D758 - movs r0, #0 -_0818D750: - strh r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0818D758: .4byte gUnknown_2037290 - thumb_func_end sub_0818D6EC - - thumb_func_start SetLilycoveLady -SetLilycoveLady: @ 0x0818D75C - push {lr} - ldr r0, _0818D784 - ldr r0, [r0] - ldrb r1, [r0, #0xb] - lsls r1, r1, #8 - ldrb r0, [r0, #0xa] - orrs r0, r1 - movs r1, #6 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x11 - adds r1, r0, #0 - cmp r0, #1 - beq _0818D794 - cmp r0, #1 - bgt _0818D788 - cmp r0, #0 - beq _0818D78E - b _0818D79E - .align 2, 0 -_0818D784: .4byte gUnknown_3005AF0 -_0818D788: - cmp r1, #2 - beq _0818D79A - b _0818D79E -_0818D78E: - bl SetLilycoveQuizLady - b _0818D79E -_0818D794: - bl SetLilycoveFavourLady - b _0818D79E -_0818D79A: - bl SetLilycoveContestLady -_0818D79E: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetLilycoveLady - - thumb_func_start sub_0818D7A4 -sub_0818D7A4: @ 0x0818D7A4 - push {lr} - bl sub_0818D6D8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0818D7C8 - cmp r0, #1 - bgt _0818D7BC - cmp r0, #0 - beq _0818D7C2 - b _0818D7D2 -_0818D7BC: - cmp r0, #2 - beq _0818D7CE - b _0818D7D2 -_0818D7C2: - bl sub_0818DD10 - b _0818D7D2 -_0818D7C8: - bl sub_0818D8F0 - b _0818D7D2 -_0818D7CE: - bl sub_0818E2D0 -_0818D7D2: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0818D7A4 - - thumb_func_start SetLilycoveLadyRandomly -SetLilycoveLadyRandomly: @ 0x0818D7D8 - push {lr} - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - cmp r0, #1 - beq _0818D808 - cmp r0, #1 - bgt _0818D7FC - cmp r0, #0 - beq _0818D802 - b _0818D812 -_0818D7FC: - cmp r1, #2 - beq _0818D80E - b _0818D812 -_0818D802: - bl SetLilycoveQuizLady - b _0818D812 -_0818D808: - bl SetLilycoveFavourLady - b _0818D812 -_0818D80E: - bl SetLilycoveContestLady -_0818D812: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetLilycoveLadyRandomly - - thumb_func_start sub_0818D818 -sub_0818D818: @ 0x0818D818 - push {r4, lr} - ldr r4, _0818D82C - bl sub_0818D6D8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0818D82C: .4byte gUnknown_2037290 - thumb_func_end sub_0818D818 - - thumb_func_start sub_0818D830 -sub_0818D830: @ 0x0818D830 - push {lr} - adds r1, r0, #0 - movs r2, #0 - b _0818D840 -_0818D838: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r1, #2 -_0818D840: - ldrh r0, [r1] - cmp r0, #0 - bne _0818D838 - adds r0, r2, #0 - pop {r1} - bx r1 - thumb_func_end sub_0818D830 - - thumb_func_start sub_0818D84C -sub_0818D84C: @ 0x0818D84C - push {r4, r5, r6, lr} - bl Random - ldr r5, _0818D8A0 - ldr r4, [r5] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #6 - bl __umodsi3 - strb r0, [r4, #0xc] - ldr r6, _0818D8A4 - ldr r0, [r5] - ldrb r0, [r0, #0xc] - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r0, [r0] - bl sub_0818D830 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r4, #0 - bl __modsi3 - lsls r0, r0, #0x18 - ldr r2, [r5] - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r6 - ldr r1, [r1] - lsrs r0, r0, #0x17 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2, #0x10] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0818D8A0: .4byte gUnknown_203CA30 -_0818D8A4: .4byte gUnknown_85D3D6C - thumb_func_end sub_0818D84C - - thumb_func_start SetLilycoveFavourLady -SetLilycoveFavourLady: @ 0x0818D8A8 - push {lr} - ldr r2, _0818D8E0 - ldr r0, _0818D8E4 - ldr r0, [r0] - ldr r1, _0818D8E8 - adds r0, r0, r1 - str r0, [r2] - movs r3, #0 - movs r1, #1 - strb r1, [r0] - ldr r0, [r2] - strb r3, [r0, #1] - ldr r1, [r2] - movs r0, #0xff - strb r0, [r1, #4] - ldr r0, [r2] - strb r3, [r0, #2] - ldr r0, [r2] - strb r3, [r0, #3] - ldr r1, [r2] - strh r3, [r1, #0xe] - ldr r0, _0818D8EC - ldrb r0, [r0] - strb r0, [r1, #0x12] - bl sub_0818D84C - pop {r0} - bx r0 - .align 2, 0 -_0818D8E0: .4byte gUnknown_203CA30 -_0818D8E4: .4byte gUnknown_3005AEC -_0818D8E8: .4byte 0x00003B58 -_0818D8EC: .4byte gUnknown_829BDA5 - thumb_func_end SetLilycoveFavourLady - - thumb_func_start sub_0818D8F0 -sub_0818D8F0: @ 0x0818D8F0 - ldr r3, _0818D908 - ldr r0, _0818D90C - ldr r0, [r0] - ldr r1, _0818D910 - adds r0, r0, r1 - str r0, [r3] - movs r2, #0 - movs r1, #1 - strb r1, [r0] - ldr r0, [r3] - strb r2, [r0, #1] - bx lr - .align 2, 0 -_0818D908: .4byte gUnknown_203CA30 -_0818D90C: .4byte gUnknown_3005AEC -_0818D910: .4byte 0x00003B58 - thumb_func_end sub_0818D8F0 - - thumb_func_start sub_0818D914 -sub_0818D914: @ 0x0818D914 - push {lr} - ldr r1, _0818D92C - ldr r0, _0818D930 - ldr r0, [r0] - ldr r2, _0818D934 - adds r0, r0, r2 - str r0, [r1] - ldrb r0, [r0, #1] - cmp r0, #2 - bne _0818D938 - movs r0, #2 - b _0818D942 - .align 2, 0 -_0818D92C: .4byte gUnknown_203CA30 -_0818D930: .4byte gUnknown_3005AEC -_0818D934: .4byte 0x00003B58 -_0818D938: - cmp r0, #1 - beq _0818D940 - movs r0, #0 - b _0818D942 -_0818D940: - movs r0, #1 -_0818D942: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0818D914 - - thumb_func_start sub_0818D948 -sub_0818D948: @ 0x0818D948 - lsls r0, r0, #0x18 - ldr r1, _0818D954 - lsrs r0, r0, #0x16 - adds r0, r0, r1 - ldr r0, [r0] - bx lr - .align 2, 0 -_0818D954: .4byte gUnknown_85D3CA4 - thumb_func_end sub_0818D948 - - thumb_func_start sub_0818D958 -sub_0818D958: @ 0x0818D958 - push {r4, lr} - ldr r1, _0818D97C - ldr r0, _0818D980 - ldr r0, [r0] - ldr r2, _0818D984 - adds r0, r0, r2 - str r0, [r1] - ldr r4, _0818D988 - ldrb r0, [r0, #0xc] - bl sub_0818D948 - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCopy - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0818D97C: .4byte gUnknown_203CA30 -_0818D980: .4byte gUnknown_3005AEC -_0818D984: .4byte 0x00003B58 -_0818D988: .4byte gUnknown_2021C40 - thumb_func_end sub_0818D958 - - thumb_func_start sub_0818D98C -sub_0818D98C: @ 0x0818D98C - push {lr} - ldr r1, _0818D9A4 - ldr r0, _0818D9A8 - ldr r2, [r0] - ldr r3, _0818D9AC - adds r0, r2, r3 - str r0, [r1] - ldrb r0, [r0, #4] - cmp r0, #0xff - bne _0818D9B0 - movs r0, #0 - b _0818D9BC - .align 2, 0 -_0818D9A4: .4byte gUnknown_203CA30 -_0818D9A8: .4byte gUnknown_3005AEC -_0818D9AC: .4byte 0x00003B58 -_0818D9B0: - ldr r0, _0818D9C0 - ldr r3, _0818D9C4 - adds r1, r2, r3 - bl StringCopy7 - movs r0, #1 -_0818D9BC: - pop {r1} - bx r1 - .align 2, 0 -_0818D9C0: .4byte gUnknown_2021C68 -_0818D9C4: .4byte 0x00003B5C - thumb_func_end sub_0818D98C - - thumb_func_start sub_0818D9C8 -sub_0818D9C8: @ 0x0818D9C8 - push {r4, lr} - adds r4, r0, #0 - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - bl sub_080D6C8C - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCopy - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0818D9C8 - - thumb_func_start sub_0818D9E4 -sub_0818D9E4: @ 0x0818D9E4 - push {lr} - ldr r2, _0818DA00 - ldr r0, _0818DA04 - ldr r1, [r0] - ldr r0, _0818DA08 - adds r1, r1, r0 - str r1, [r2] - ldr r0, _0818DA0C - ldrh r1, [r1, #0xe] - bl sub_0818D9C8 - pop {r0} - bx r0 - .align 2, 0 -_0818DA00: .4byte gUnknown_203CA30 -_0818DA04: .4byte gUnknown_3005AEC -_0818DA08: .4byte 0x00003B58 -_0818DA0C: .4byte gUnknown_2021C54 - thumb_func_end sub_0818D9E4 - - thumb_func_start sub_0818DA10 -sub_0818DA10: @ 0x0818DA10 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r0, r4, #0 - movs r1, #0xff - movs r2, #8 - bl memset - adds r0, r4, #0 - adds r1, r5, #0 - bl StringCopy7 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0818DA10 - - thumb_func_start SetRainStrengthFromSoundEffect -SetRainStrengthFromSoundEffect: @ 0x0818DA30 - push {lr} - ldr r2, _0818DA4C - ldr r0, _0818DA50 - ldr r0, [r0] - ldr r3, _0818DA54 - adds r1, r0, r3 - str r1, [r2] - ldr r1, _0818DA58 - adds r0, r0, r1 - ldr r1, _0818DA5C - bl sub_0818DA10 - pop {r0} - bx r0 - .align 2, 0 -_0818DA4C: .4byte gUnknown_203CA30 -_0818DA50: .4byte gUnknown_3005AEC -_0818DA54: .4byte 0x00003B58 -_0818DA58: .4byte 0x00003B5C -_0818DA5C: .4byte gUnknown_2021C68 - thumb_func_end SetRainStrengthFromSoundEffect - - thumb_func_start sub_0818DA60 -sub_0818DA60: @ 0x0818DA60 - ldr r1, _0818DA78 - ldr r0, _0818DA7C - ldr r0, [r0] - ldr r2, _0818DA80 - adds r0, r0, r2 - str r0, [r1] - ldrb r1, [r0, #2] - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - bx lr - .align 2, 0 -_0818DA78: .4byte gUnknown_203CA30 -_0818DA7C: .4byte gUnknown_3005AEC -_0818DA80: .4byte 0x00003B58 - thumb_func_end sub_0818DA60 - - thumb_func_start sub_0818DA84 -sub_0818DA84: @ 0x0818DA84 - push {lr} - bl sub_081AA9C8 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0818DA84 - - thumb_func_start sub_0818DA90 -sub_0818DA90: @ 0x0818DA90 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r4, _0818DB18 - ldr r0, _0818DB1C - ldr r0, [r0] - ldr r1, _0818DB20 - adds r0, r0, r1 - str r0, [r4] - ldr r1, _0818DB24 - mov r8, r1 - ldrb r0, [r0, #0xc] - lsls r0, r0, #2 - add r0, r8 - ldr r0, [r0] - bl sub_0818D830 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, [r4] - movs r0, #1 - strb r0, [r1, #1] - ldr r0, _0818DB28 - adds r1, r5, #0 - bl sub_0818D9C8 - ldr r1, [r4] - strh r5, [r1, #0xe] - ldr r0, _0818DB2C - ldr r0, [r0] - adds r1, #4 - bl sub_0818DA10 - ldr r1, [r4] - ldr r0, _0818DB30 - ldrb r0, [r0] - strb r0, [r1, #0x12] - movs r7, #0 - movs r3, #0 - cmp r7, r6 - bhs _0818DB42 - mov ip, r8 -_0818DAE8: - ldr r2, [r4] - ldrb r0, [r2, #0xc] - lsls r0, r0, #2 - add r0, ip - ldr r1, [r0] - lsls r0, r3, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, r5 - bne _0818DB34 - movs r7, #1 - ldrb r0, [r2, #3] - adds r0, #1 - strb r0, [r2, #3] - ldr r0, [r4] - strb r7, [r0, #2] - ldr r1, [r4] - ldrh r0, [r1, #0x10] - cmp r0, r5 - bne _0818DB42 - movs r0, #5 - strb r0, [r1, #3] - b _0818DB42 - .align 2, 0 -_0818DB18: .4byte gUnknown_203CA30 -_0818DB1C: .4byte gUnknown_3005AEC -_0818DB20: .4byte 0x00003B58 -_0818DB24: .4byte gUnknown_85D3D6C -_0818DB28: .4byte gUnknown_2021C54 -_0818DB2C: .4byte gUnknown_3005AF0 -_0818DB30: .4byte gUnknown_829BDA5 -_0818DB34: - movs r0, #0 - strb r0, [r2, #2] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, r6 - blo _0818DAE8 -_0818DB42: - adds r0, r7, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0818DA90 - - thumb_func_start sub_0818DB50 -sub_0818DB50: @ 0x0818DB50 - push {lr} - ldr r0, _0818DB64 - ldrh r0, [r0] - bl sub_0818DA90 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0818DB64: .4byte gUnknown_203CB48 - thumb_func_end sub_0818DB50 - - thumb_func_start sub_0818DB68 -sub_0818DB68: @ 0x0818DB68 - push {lr} - ldr r1, _0818DB88 - ldr r0, _0818DB8C - ldr r0, [r0] - ldr r2, _0818DB90 - adds r0, r0, r2 - str r0, [r1] - ldrb r0, [r0, #3] - movs r1, #0 - cmp r0, #4 - bls _0818DB80 - movs r1, #1 -_0818DB80: - adds r0, r1, #0 - pop {r1} - bx r1 - .align 2, 0 -_0818DB88: .4byte gUnknown_203CA30 -_0818DB8C: .4byte gUnknown_3005AEC -_0818DB90: .4byte 0x00003B58 - thumb_func_end sub_0818DB68 - - thumb_func_start sub_0818DB94 -sub_0818DB94: @ 0x0818DB94 - push {lr} - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, _0818DBA8 - bl sub_0818D9C8 - pop {r0} - bx r0 - .align 2, 0 -_0818DBA8: .4byte gUnknown_2021C54 - thumb_func_end sub_0818DB94 - - thumb_func_start sub_0818DBAC -sub_0818DBAC: @ 0x0818DBAC - push {r4, r5, lr} - ldr r5, _0818DBD8 - ldr r0, _0818DBDC - ldr r0, [r0] - ldr r1, _0818DBE0 - adds r0, r0, r1 - str r0, [r5] - ldr r1, _0818DBE4 - ldrb r0, [r0, #0xc] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r4, [r0] - adds r0, r4, #0 - bl sub_0818DB94 - ldr r1, [r5] - movs r0, #2 - strb r0, [r1, #1] - adds r0, r4, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0818DBD8: .4byte gUnknown_203CA30 -_0818DBDC: .4byte gUnknown_3005AEC -_0818DBE0: .4byte 0x00003B58 -_0818DBE4: .4byte gUnknown_85D3D84 - thumb_func_end sub_0818DBAC - - thumb_func_start sub_0818DBE8 -sub_0818DBE8: @ 0x0818DBE8 - push {lr} - bl SetLilycoveFavourLady - ldr r0, _0818DBFC - ldr r1, [r0] - movs r0, #1 - strb r0, [r1, #1] - pop {r0} - bx r0 - .align 2, 0 -_0818DBFC: .4byte gUnknown_203CA30 - thumb_func_end sub_0818DBE8 - - thumb_func_start CB2_ReturnToField -CB2_ReturnToField: @ 0x0818DC00 - push {lr} - bl EnableBothScriptContexts - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CB2_ReturnToField - - thumb_func_start sub_0818DC0C -sub_0818DC0C: @ 0x0818DC0C - push {r4, r5, r6, r7, lr} - bl Random - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r0, #0xf - ands r4, r0 - movs r3, #0 - ldr r5, _0818DC64 - ldr r1, _0818DC68 - lsls r0, r4, #2 - adds r6, r0, r1 - adds r7, r5, #0 -_0818DC26: - ldr r2, [r5] - lsls r1, r3, #1 - adds r2, #2 - adds r2, r2, r1 - ldr r0, [r6] - adds r1, r1, r0 - ldrh r0, [r1] - strh r0, [r2] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #8 - bls _0818DC26 - ldr r2, [r7] - ldr r0, _0818DC6C - lsls r1, r4, #1 - adds r0, r1, r0 - ldrh r0, [r0] - strh r0, [r2, #0x14] - ldr r0, _0818DC70 - adds r1, r1, r0 - ldrh r0, [r1] - strh r0, [r2, #0x28] - adds r2, #0x2b - strb r4, [r2] - ldr r1, [r7] - movs r0, #0xff - strb r0, [r1, #0x18] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0818DC64: .4byte gUnknown_203CA34 -_0818DC68: .4byte gUnknown_85D3C04 -_0818DC6C: .4byte gUnknown_85D3C44 -_0818DC70: .4byte gUnknown_85D3C64 - thumb_func_end sub_0818DC0C - - thumb_func_start SetLilycoveQuizLady -SetLilycoveQuizLady: @ 0x0818DC74 - push {r4, r5, r6, lr} - ldr r2, _0818DCFC - ldr r0, _0818DD00 - ldr r0, [r0] - ldr r1, _0818DD04 - adds r0, r0, r1 - str r0, [r2] - movs r1, #0 - strb r1, [r0] - ldr r0, [r2] - strb r1, [r0, #1] - movs r3, #0 - adds r4, r2, #0 - ldr r6, _0818DD08 - adds r5, r4, #0 - ldr r0, _0818DD0C - adds r2, r0, #0 -_0818DC96: - ldr r1, [r5] - lsls r0, r3, #1 - adds r1, #2 - adds r1, r1, r0 - ldrh r0, [r1] - orrs r0, r2 - strh r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #8 - bls _0818DC96 - ldr r0, [r4] - ldr r1, _0818DD0C - strh r1, [r0, #0x14] - movs r1, #1 - rsbs r1, r1, #0 - strh r1, [r0, #0x16] - movs r3, #0 - adds r5, r4, #0 - movs r2, #0 -_0818DCC0: - ldr r0, [r5] - lsls r1, r3, #1 - adds r0, #0x20 - adds r0, r0, r1 - strh r2, [r0] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #3 - bls _0818DCC0 - ldr r0, [r4] - movs r2, #0 - movs r1, #0 - strh r1, [r0, #0x28] - adds r0, #0x2a - strb r2, [r0] - ldr r0, [r4] - adds r0, #0x2c - movs r1, #0x10 - strb r1, [r0] - ldr r0, [r4] - ldrb r1, [r6] - adds r0, #0x2d - strb r1, [r0] - bl sub_0818DC0C - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0818DCFC: .4byte gUnknown_203CA34 -_0818DD00: .4byte gUnknown_3005AEC -_0818DD04: .4byte 0x00003B58 -_0818DD08: .4byte gUnknown_829BDA5 -_0818DD0C: .4byte 0x0000FFFF - thumb_func_end SetLilycoveQuizLady - - thumb_func_start sub_0818DD10 -sub_0818DD10: @ 0x0818DD10 - ldr r2, _0818DD34 - ldr r0, _0818DD38 - ldr r0, [r0] - ldr r1, _0818DD3C - adds r0, r0, r1 - str r0, [r2] - movs r1, #0 - strb r1, [r0] - ldr r0, [r2] - strb r1, [r0, #1] - ldr r0, [r2] - adds r0, #0x2a - strb r1, [r0] - ldr r1, [r2] - ldr r0, _0818DD40 - strh r0, [r1, #0x16] - bx lr - .align 2, 0 -_0818DD34: .4byte gUnknown_203CA34 -_0818DD38: .4byte gUnknown_3005AEC -_0818DD3C: .4byte 0x00003B58 -_0818DD40: .4byte 0x0000FFFF - thumb_func_end sub_0818DD10 - - thumb_func_start sub_0818DD44 -sub_0818DD44: @ 0x0818DD44 - push {lr} - ldr r1, _0818DD5C - ldr r0, _0818DD60 - ldr r0, [r0] - ldr r2, _0818DD64 - adds r0, r0, r2 - str r0, [r1] - ldrb r0, [r0, #1] - cmp r0, #2 - bne _0818DD68 - movs r0, #2 - b _0818DD72 - .align 2, 0 -_0818DD5C: .4byte gUnknown_203CA34 -_0818DD60: .4byte gUnknown_3005AEC -_0818DD64: .4byte 0x00003B58 -_0818DD68: - cmp r0, #1 - beq _0818DD70 - movs r0, #0 - b _0818DD72 -_0818DD70: - movs r0, #1 -_0818DD72: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0818DD44 - - thumb_func_start sub_0818DD78 -sub_0818DD78: @ 0x0818DD78 - push {lr} - bl sub_0818DDA4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0818DD8A - movs r0, #2 - b _0818DD9E -_0818DD8A: - cmp r0, #2 - beq _0818DD98 - bl sub_0818DE50 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0818DD9C -_0818DD98: - movs r0, #1 - b _0818DD9E -_0818DD9C: - movs r0, #0 -_0818DD9E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0818DD78 - - thumb_func_start sub_0818DDA4 -sub_0818DDA4: @ 0x0818DDA4 - push {r4, r5, r6, r7, lr} - movs r7, #1 - ldr r5, _0818DDC8 - ldr r0, _0818DDCC - ldr r1, [r0] - ldr r2, _0818DDD0 - adds r0, r1, r2 - str r0, [r5] - ldrb r0, [r0, #0x18] - cmp r0, #0xff - bne _0818DDDC - ldr r0, _0818DDD4 - ldr r1, _0818DDD8 - bl StringCopy7 - movs r7, #0 - b _0818DE36 - .align 2, 0 -_0818DDC8: .4byte gUnknown_203CA34 -_0818DDCC: .4byte gUnknown_3005AEC -_0818DDD0: .4byte 0x00003B58 -_0818DDD4: .4byte gUnknown_2021C40 -_0818DDD8: .4byte gUnknown_85D3D90 -_0818DDDC: - ldr r0, _0818DE40 - ldr r2, _0818DE44 - adds r1, r1, r2 - bl StringCopy7 - ldr r0, [r5] - adds r0, #0x18 - bl sub_0818DEB4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r6, _0818DE48 - ldr r0, [r6] - bl sub_0818DEB4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - bne _0818DE36 - ldr r0, [r5] - movs r2, #0 - cmp r2, r4 - bhs _0818DE36 - ldr r1, [r6] - ldrb r0, [r0, #0x18] - ldrb r1, [r1] - cmp r0, r1 - bne _0818DE34 -_0818DE14: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, r4 - bhs _0818DE36 - ldr r0, _0818DE4C - ldr r1, [r0] - adds r1, #0x18 - adds r1, r1, r2 - ldr r0, _0818DE48 - ldr r0, [r0] - adds r0, r0, r2 - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - beq _0818DE14 -_0818DE34: - movs r7, #2 -_0818DE36: - adds r0, r7, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0818DE40: .4byte gUnknown_2021C40 -_0818DE44: .4byte 0x00003B70 -_0818DE48: .4byte gUnknown_3005AF0 -_0818DE4C: .4byte gUnknown_203CA34 - thumb_func_end sub_0818DDA4 - - thumb_func_start sub_0818DE50 -sub_0818DE50: @ 0x0818DE50 - push {r4, r5, r6, lr} - ldr r3, _0818DEA0 - ldr r0, _0818DEA4 - ldr r1, [r0] - ldr r2, _0818DEA8 - adds r0, r1, r2 - str r0, [r3] - movs r5, #0 - movs r4, #0 - ldr r0, _0818DEAC - adds r1, r1, r0 - ldr r0, _0818DEB0 - ldr r2, [r0] - ldrh r1, [r1] - adds r6, r3, #0 - adds r3, r0, #0 - ldrb r2, [r2, #0xa] - cmp r1, r2 - bne _0818DE96 -_0818DE76: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bhi _0818DE98 - ldr r1, [r6] - lsls r0, r4, #1 - adds r1, #0x20 - adds r1, r1, r0 - ldr r0, [r3] - adds r0, #0xa - adds r0, r0, r4 - ldrh r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - beq _0818DE76 -_0818DE96: - movs r5, #1 -_0818DE98: - adds r0, r5, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0818DEA0: .4byte gUnknown_203CA34 -_0818DEA4: .4byte gUnknown_3005AEC -_0818DEA8: .4byte 0x00003B58 -_0818DEAC: .4byte 0x00003B78 -_0818DEB0: .4byte gUnknown_3005AF0 - thumb_func_end sub_0818DE50 - - thumb_func_start sub_0818DEB4 -sub_0818DEB4: @ 0x0818DEB4 - push {lr} - movs r2, #0 - adds r1, r0, #0 - b _0818DEC4 -_0818DEBC: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r1, #1 -_0818DEC4: - ldrb r0, [r1] - cmp r0, #0xff - bne _0818DEBC - adds r0, r2, #0 - pop {r1} - bx r1 - thumb_func_end sub_0818DEB4 - - thumb_func_start sub_0818DED0 -sub_0818DED0: @ 0x0818DED0 - push {r4, lr} - ldr r4, _0818DEEC - ldr r0, _0818DEF0 - ldr r0, [r0] - ldrh r0, [r0, #0x28] - bl sub_080D6C8C - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCopy - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0818DEEC: .4byte gUnknown_2021C40 -_0818DEF0: .4byte gUnknown_203CA34 - thumb_func_end sub_0818DED0 - - thumb_func_start sub_0818DEF4 -sub_0818DEF4: @ 0x0818DEF4 - push {r4, lr} - ldr r4, _0818DF10 - ldr r0, _0818DF14 - ldr r0, [r0] - ldr r1, _0818DF18 - adds r0, r0, r1 - str r0, [r4] - bl sub_0818DDA4 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0818DF1C - movs r0, #0 - b _0818DF28 - .align 2, 0 -_0818DF10: .4byte gUnknown_203CA34 -_0818DF14: .4byte gUnknown_3005AEC -_0818DF18: .4byte 0x00003B58 -_0818DF1C: - ldr r0, [r4] - ldr r1, _0818DF30 - ldrb r1, [r1] - adds r0, #0x2d - strb r1, [r0] - movs r0, #1 -_0818DF28: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0818DF30: .4byte gUnknown_829BDA5 - thumb_func_end sub_0818DEF4 - - thumb_func_start sub_0818DF34 -sub_0818DF34: @ 0x0818DF34 - ldr r2, _0818DF48 - ldr r0, _0818DF4C - ldr r0, [r0] - ldr r3, _0818DF50 - adds r1, r0, r3 - str r1, [r2] - ldr r1, _0818DF54 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0818DF48: .4byte gUnknown_203CA34 -_0818DF4C: .4byte gUnknown_3005AEC -_0818DF50: .4byte 0x00003B58 -_0818DF54: .4byte 0x00003B82 - thumb_func_end sub_0818DF34 - - thumb_func_start sub_0818DF58 -sub_0818DF58: @ 0x0818DF58 - push {lr} - bl ShowEasyChatScreen - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0818DF58 - - thumb_func_start sub_0818DF64 -sub_0818DF64: @ 0x0818DF64 - push {r4, r5, r6, lr} - ldr r5, _0818DFA0 - ldr r0, _0818DFA4 - ldr r0, [r0] - ldr r1, _0818DFA8 - adds r0, r0, r1 - str r0, [r5] - ldr r6, _0818DFAC - ldrh r1, [r0, #0x14] - adds r0, r6, #0 - bl CopyEasyChatWord - ldr r4, _0818DFB0 - ldr r0, [r5] - ldrh r1, [r0, #0x16] - adds r0, r4, #0 - bl CopyEasyChatWord - adds r0, r6, #0 - adds r1, r4, #0 - bl StringCompare - movs r1, #0 - cmp r0, #0 - bne _0818DF98 - movs r1, #1 -_0818DF98: - adds r0, r1, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_0818DFA0: .4byte gUnknown_203CA34 -_0818DFA4: .4byte gUnknown_3005AEC -_0818DFA8: .4byte 0x00003B58 -_0818DFAC: .4byte gUnknown_2021C40 -_0818DFB0: .4byte gUnknown_2021C54 - thumb_func_end sub_0818DF64 - - thumb_func_start sub_0818DFB4 -sub_0818DFB4: @ 0x0818DFB4 - ldr r1, _0818DFC8 - ldr r0, _0818DFCC - ldr r0, [r0] - ldr r2, _0818DFD0 - adds r0, r0, r2 - str r0, [r1] - ldr r1, _0818DFD4 - ldrh r0, [r0, #0x28] - strh r0, [r1] - bx lr - .align 2, 0 -_0818DFC8: .4byte gUnknown_203CA34 -_0818DFCC: .4byte gUnknown_3005AEC -_0818DFD0: .4byte 0x00003B58 -_0818DFD4: .4byte gUnknown_2037282 - thumb_func_end sub_0818DFB4 - - thumb_func_start sub_0818DFD8 -sub_0818DFD8: @ 0x0818DFD8 - ldr r1, _0818DFEC - ldr r0, _0818DFF0 - ldr r0, [r0] - ldr r2, _0818DFF4 - adds r0, r0, r2 - str r0, [r1] - movs r1, #1 - strb r1, [r0, #1] - bx lr - .align 2, 0 -_0818DFEC: .4byte gUnknown_203CA34 -_0818DFF0: .4byte gUnknown_3005AEC -_0818DFF4: .4byte 0x00003B58 - thumb_func_end sub_0818DFD8 - - thumb_func_start sub_0818DFF8 -sub_0818DFF8: @ 0x0818DFF8 - ldr r1, _0818E00C - ldr r0, _0818E010 - ldr r0, [r0] - ldr r2, _0818E014 - adds r0, r0, r2 - str r0, [r1] - movs r1, #2 - strb r1, [r0, #1] - bx lr - .align 2, 0 -_0818E00C: .4byte gUnknown_203CA34 -_0818E010: .4byte gUnknown_3005AEC -_0818E014: .4byte 0x00003B58 - thumb_func_end sub_0818DFF8 - - thumb_func_start sub_0818E018 -sub_0818E018: @ 0x0818E018 - ldr r1, _0818E02C - ldr r0, _0818E030 - ldr r0, [r0] - ldr r2, _0818E034 - adds r0, r0, r2 - str r0, [r1] - ldr r1, _0818E038 - strh r1, [r0, #0x16] - bx lr - .align 2, 0 -_0818E02C: .4byte gUnknown_203CA34 -_0818E030: .4byte gUnknown_3005AEC -_0818E034: .4byte 0x00003B58 -_0818E038: .4byte 0x0000FFFF - thumb_func_end sub_0818E018 - - thumb_func_start sub_0818E03C -sub_0818E03C: @ 0x0818E03C - push {lr} - bl sub_081AA9E8 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0818E03C - - thumb_func_start sub_0818E048 -sub_0818E048: @ 0x0818E048 - push {r4, lr} - ldr r4, _0818E06C - ldr r0, _0818E070 - ldr r0, [r0] - ldr r1, _0818E074 - adds r0, r0, r1 - str r0, [r4] - bl sub_0818DEF4 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0818E078 - ldr r0, [r4] - adds r1, r0, #0 - adds r1, #0x2b - ldrb r1, [r1] - adds r0, #0x2c - b _0818E07E - .align 2, 0 -_0818E06C: .4byte gUnknown_203CA34 -_0818E070: .4byte gUnknown_3005AEC -_0818E074: .4byte 0x00003B58 -_0818E078: - ldr r0, [r4] - adds r0, #0x2c - movs r1, #0x10 -_0818E07E: - strb r1, [r0] - bl sub_0818DC0C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0818E048 - - thumb_func_start sub_0818E08C -sub_0818E08C: @ 0x0818E08C - push {r4, r5, lr} - ldr r1, _0818E0C8 - ldr r0, _0818E0CC - ldr r0, [r0] - ldr r2, _0818E0D0 - adds r0, r0, r2 - str r0, [r1] - movs r2, #0 - adds r5, r1, #0 - adds r4, r5, #0 - ldr r0, _0818E0D4 - adds r3, r0, #0 -_0818E0A4: - ldr r1, [r4] - lsls r0, r2, #1 - adds r1, #2 - adds r1, r1, r0 - ldrh r0, [r1] - orrs r0, r3 - strh r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #8 - bls _0818E0A4 - ldr r1, [r5] - ldr r0, _0818E0D4 - strh r0, [r1, #0x14] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0818E0C8: .4byte gUnknown_203CA34 -_0818E0CC: .4byte gUnknown_3005AEC -_0818E0D0: .4byte 0x00003B58 -_0818E0D4: .4byte 0x0000FFFF - thumb_func_end sub_0818E08C - - thumb_func_start sub_0818E0D8 -sub_0818E0D8: @ 0x0818E0D8 - push {lr} - ldr r1, _0818E0E8 - movs r0, #0x11 - strh r0, [r1] - bl ShowEasyChatScreen - pop {r0} - bx r0 - .align 2, 0 -_0818E0E8: .4byte gUnknown_2037280 - thumb_func_end sub_0818E0D8 - - thumb_func_start sub_0818E0EC -sub_0818E0EC: @ 0x0818E0EC - push {lr} - ldr r0, _0818E0FC - ldrh r0, [r0] - movs r1, #1 - bl RemoveBagItem - pop {r0} - bx r0 - .align 2, 0 -_0818E0FC: .4byte gUnknown_203CB48 - thumb_func_end sub_0818E0EC - - thumb_func_start sub_0818E100 -sub_0818E100: @ 0x0818E100 - push {r4, r5, r6, lr} - ldr r2, _0818E154 - ldr r0, _0818E158 - ldr r0, [r0] - ldr r1, _0818E15C - adds r0, r0, r1 - str r0, [r2] - ldr r1, _0818E160 - ldrh r1, [r1] - strh r1, [r0, #0x28] - movs r3, #0 - adds r4, r2, #0 - ldr r6, _0818E164 - adds r5, r4, #0 - adds r2, r6, #0 -_0818E11E: - ldr r1, [r5] - lsls r0, r3, #1 - adds r1, #0x20 - adds r1, r1, r0 - ldr r0, [r2] - adds r0, #0xa - adds r0, r0, r3 - ldrb r0, [r0] - strh r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #3 - bls _0818E11E - ldr r0, [r4] - adds r0, #0x18 - ldr r1, [r6] - bl StringCopy7 - ldr r0, [r4] - ldr r1, _0818E168 - ldrb r1, [r1] - adds r0, #0x2d - strb r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0818E154: .4byte gUnknown_203CA34 -_0818E158: .4byte gUnknown_3005AEC -_0818E15C: .4byte 0x00003B58 -_0818E160: .4byte gUnknown_203CB48 -_0818E164: .4byte gUnknown_3005AF0 -_0818E168: .4byte gUnknown_829BDA5 - thumb_func_end sub_0818E100 - - thumb_func_start sub_0818E16C -sub_0818E16C: @ 0x0818E16C - ldr r2, _0818E184 - ldr r0, _0818E188 - ldr r0, [r0] - ldr r3, _0818E18C - adds r1, r0, r3 - str r1, [r2] - ldr r1, _0818E190 - adds r0, r0, r1 - movs r1, #1 - strb r1, [r0] - bx lr - .align 2, 0 -_0818E184: .4byte gUnknown_203CA34 -_0818E188: .4byte gUnknown_3005AEC -_0818E18C: .4byte 0x00003B58 -_0818E190: .4byte 0x00003B82 - thumb_func_end sub_0818E16C - - thumb_func_start sub_0818E194 -sub_0818E194: @ 0x0818E194 - push {lr} - ldr r2, _0818E1B0 - ldr r0, _0818E1B4 - ldr r1, [r0] - ldr r0, _0818E1B8 - adds r1, r1, r0 - str r1, [r2] - ldr r0, _0818E1BC - ldrh r1, [r1, #0x14] - bl CopyEasyChatWord - pop {r0} - bx r0 - .align 2, 0 -_0818E1B0: .4byte gUnknown_203CA34 -_0818E1B4: .4byte gUnknown_3005AEC -_0818E1B8: .4byte 0x00003B58 -_0818E1BC: .4byte gUnknown_2021C68 - thumb_func_end sub_0818E194 - - thumb_func_start MainCB2 -MainCB2: @ 0x0818E1C0 - push {lr} - bl EnableBothScriptContexts - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end MainCB2 - - thumb_func_start sub_0818E1CC -sub_0818E1CC: @ 0x0818E1CC - push {r4, r5, r6, r7, lr} - ldr r2, _0818E250 - ldr r1, _0818E254 - ldr r1, [r1] - ldr r4, _0818E258 - adds r3, r1, r4 - str r3, [r2] - adds r6, r0, #0 - adds r6, #0x2c - ldrb r4, [r6] - adds r7, r2, #0 - cmp r4, #0xf - bhi _0818E248 - ldrb r0, [r3] - cmp r0, #0 - bne _0818E248 - movs r5, #0 - ldr r2, _0818E25C - adds r0, r1, r2 - ldrb r0, [r0] - cmp r4, r0 - bne _0818E240 - adds r4, r7, #0 -_0818E1FA: - bl Random - ldr r2, [r4] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xf - ands r0, r1 - adds r2, #0x2b - strb r0, [r2] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #3 - bhi _0818E222 - ldr r0, [r4] - adds r0, #0x2b - ldrb r1, [r6] - ldrb r0, [r0] - cmp r1, r0 - beq _0818E1FA -_0818E222: - ldr r0, [r4] - adds r2, r0, #0 - adds r2, #0x2b - ldrb r0, [r6] - ldr r7, _0818E250 - ldrb r4, [r2] - cmp r0, r4 - bne _0818E240 - ldrb r1, [r2] - adds r3, r1, #1 - adds r0, r3, #0 - asrs r0, r0, #4 - lsls r0, r0, #4 - subs r0, r3, r0 - strb r0, [r2] -_0818E240: - ldr r0, [r7] - ldrb r1, [r6] - adds r0, #0x2c - strb r1, [r0] -_0818E248: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0818E250: .4byte gUnknown_203CA34 -_0818E254: .4byte gUnknown_3005AEC -_0818E258: .4byte 0x00003B58 -_0818E25C: .4byte 0x00003B83 - thumb_func_end sub_0818E1CC - - thumb_func_start sub_0818E260 -sub_0818E260: @ 0x0818E260 - push {r4, lr} - ldr r4, _0818E290 - ldr r1, [r4] - movs r0, #0xff - strb r0, [r1, #4] - ldr r0, [r4] - movs r1, #0 - strb r1, [r0, #2] - ldr r0, [r4] - strb r1, [r0, #3] - ldr r0, [r4] - strb r1, [r0, #0xc] - bl Random - ldr r4, [r4] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #5 - bl __umodsi3 - strb r0, [r4, #0xd] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0818E290: .4byte gUnknown_203CA38 - thumb_func_end sub_0818E260 - - thumb_func_start SetLilycoveContestLady -SetLilycoveContestLady: @ 0x0818E294 - push {r4, lr} - ldr r4, _0818E2C0 - ldr r0, _0818E2C4 - ldr r0, [r0] - ldr r1, _0818E2C8 - adds r0, r0, r1 - str r0, [r4] - movs r2, #0 - movs r1, #2 - strb r1, [r0] - ldr r0, [r4] - strb r2, [r0, #1] - bl sub_0818E260 - ldr r1, [r4] - ldr r0, _0818E2CC - ldrb r0, [r0] - strb r0, [r1, #0xe] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0818E2C0: .4byte gUnknown_203CA38 -_0818E2C4: .4byte gUnknown_3005AEC -_0818E2C8: .4byte 0x00003B58 -_0818E2CC: .4byte gUnknown_829BDA5 - thumb_func_end SetLilycoveContestLady - - thumb_func_start sub_0818E2D0 -sub_0818E2D0: @ 0x0818E2D0 - push {lr} - ldr r2, _0818E300 - ldr r0, _0818E304 - ldr r0, [r0] - ldr r1, _0818E308 - adds r0, r0, r1 - str r0, [r2] - movs r3, #0 - movs r1, #2 - strb r1, [r0] - ldr r0, [r2] - strb r3, [r0, #1] - ldr r2, [r2] - ldrb r0, [r2, #2] - cmp r0, #5 - beq _0818E2F6 - ldrb r0, [r2, #3] - cmp r0, #5 - bne _0818E2FA -_0818E2F6: - bl sub_0818E260 -_0818E2FA: - pop {r0} - bx r0 - .align 2, 0 -_0818E300: .4byte gUnknown_203CA38 -_0818E304: .4byte gUnknown_3005AEC -_0818E308: .4byte 0x00003B58 - thumb_func_end sub_0818E2D0 - - thumb_func_start sub_0818E30C -sub_0818E30C: @ 0x0818E30C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r4, _0818E34C - ldr r0, _0818E350 - ldr r0, [r0] - ldr r3, _0818E354 - adds r1, r0, r3 - str r1, [r4] - ldrb r0, [r1, #0xc] - cmp r0, r2 - bhi _0818E346 - strb r2, [r1, #0xc] - ldr r0, [r4] - adds r0, #4 - movs r1, #0xff - movs r2, #8 - bl memset - ldr r1, [r4] - ldr r0, _0818E358 - adds r1, #4 - ldr r0, [r0] - ldm r0!, {r2, r3} - stm r1!, {r2, r3} - ldr r1, [r4] - ldr r0, _0818E35C - ldrb r0, [r0] - strb r0, [r1, #0xe] -_0818E346: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0818E34C: .4byte gUnknown_203CA38 -_0818E350: .4byte gUnknown_3005AEC -_0818E354: .4byte 0x00003B58 -_0818E358: .4byte gUnknown_3005AF0 -_0818E35C: .4byte gUnknown_829BDA5 - thumb_func_end sub_0818E30C - - thumb_func_start GivePokeblockToContestLady -GivePokeblockToContestLady: @ 0x0818E360 - push {r4, r5, lr} - adds r2, r0, #0 - movs r3, #0 - movs r4, #0 - ldr r1, _0818E388 - ldr r0, _0818E38C - ldr r0, [r0] - ldr r5, _0818E390 - adds r0, r0, r5 - str r0, [r1] - ldrb r0, [r0, #0xd] - adds r5, r1, #0 - cmp r0, #4 - bhi _0818E3C6 - lsls r0, r0, #2 - ldr r1, _0818E394 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0818E388: .4byte gUnknown_203CA38 -_0818E38C: .4byte gUnknown_3005AEC -_0818E390: .4byte 0x00003B58 -_0818E394: .4byte _0818E398 -_0818E398: @ jump table - .4byte _0818E3AC @ case 0 - .4byte _0818E3B0 @ case 1 - .4byte _0818E3B4 @ case 2 - .4byte _0818E3B8 @ case 3 - .4byte _0818E3BC @ case 4 -_0818E3AC: - ldrb r0, [r2, #1] - b _0818E3BE -_0818E3B0: - ldrb r0, [r2, #2] - b _0818E3BE -_0818E3B4: - ldrb r0, [r2, #3] - b _0818E3BE -_0818E3B8: - ldrb r0, [r2, #4] - b _0818E3BE -_0818E3BC: - ldrb r0, [r2, #5] -_0818E3BE: - cmp r0, #0 - beq _0818E3C6 - adds r3, r0, #0 - movs r4, #1 -_0818E3C6: - cmp r4, #1 - bne _0818E3E0 - adds r0, r3, #0 - bl sub_0818E30C - ldr r0, _0818E3DC - ldr r1, [r0] - ldrb r0, [r1, #2] - adds r0, #1 - strb r0, [r1, #2] - b _0818E3E8 - .align 2, 0 -_0818E3DC: .4byte gUnknown_203CA38 -_0818E3E0: - ldr r1, [r5] - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] -_0818E3E8: - adds r0, r4, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end GivePokeblockToContestLady - - thumb_func_start sub_0818E3F0 -sub_0818E3F0: @ 0x0818E3F0 - push {r4, r5, lr} - adds r5, r1, #0 - ldr r4, _0818E428 - ldr r1, _0818E42C - ldr r1, [r1] - ldr r2, _0818E430 - adds r1, r1, r2 - str r1, [r4] - ldr r2, _0818E434 - ldrb r1, [r1, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl StringCopy - ldr r1, _0818E438 - ldr r0, [r4] - ldrb r0, [r0, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r5, #0 - bl StringCopy10 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0818E428: .4byte gUnknown_203CA38 -_0818E42C: .4byte gUnknown_3005AEC -_0818E430: .4byte 0x00003B58 -_0818E434: .4byte gUnknown_85D3DDC -_0818E438: .4byte gUnknown_85D3DB0 - thumb_func_end sub_0818E3F0 - - thumb_func_start sub_0818E43C -sub_0818E43C: @ 0x0818E43C - push {r4, lr} - adds r3, r1, #0 - ldr r2, _0818E468 - ldr r1, _0818E46C - ldr r1, [r1] - ldr r4, _0818E470 - adds r1, r1, r4 - str r1, [r2] - ldrb r2, [r1, #0xd] - strb r2, [r0] - ldr r2, _0818E474 - ldrb r0, [r1, #0xd] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, [r0] - adds r0, r3, #0 - bl StringCopy - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0818E468: .4byte gUnknown_203CA38 -_0818E46C: .4byte gUnknown_3005AEC -_0818E470: .4byte 0x00003B58 -_0818E474: .4byte gUnknown_85D3DB0 - thumb_func_end sub_0818E43C - - thumb_func_start sub_0818E478 -sub_0818E478: @ 0x0818E478 - push {r4, lr} - ldr r3, _0818E494 - ldr r1, _0818E498 - ldr r1, [r1] - ldr r4, _0818E49C - adds r2, r1, r4 - str r2, [r3] - ldr r2, _0818E4A0 - adds r1, r1, r2 - bl StringCopy - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0818E494: .4byte gUnknown_203CA38 -_0818E498: .4byte gUnknown_3005AEC -_0818E49C: .4byte 0x00003B58 -_0818E4A0: .4byte 0x00003B5C - thumb_func_end sub_0818E478 - - thumb_func_start sub_0818E4A4 -sub_0818E4A4: @ 0x0818E4A4 - ldr r2, _0818E4B8 - ldr r1, _0818E4BC - ldr r1, [r1] - ldr r3, _0818E4C0 - adds r1, r1, r3 - str r1, [r2] - ldrb r1, [r1, #0xe] - strb r1, [r0] - bx lr - .align 2, 0 -_0818E4B8: .4byte gUnknown_203CA38 -_0818E4BC: .4byte gUnknown_3005AEC -_0818E4C0: .4byte 0x00003B58 - thumb_func_end sub_0818E4A4 - - thumb_func_start sub_0818E4C4 -sub_0818E4C4: @ 0x0818E4C4 - push {lr} - lsls r1, r1, #0x18 - ldr r2, _0818E4D8 - lsrs r1, r1, #0x16 - adds r1, r1, r2 - ldr r1, [r1] - bl StringCopy - pop {r0} - bx r0 - .align 2, 0 -_0818E4D8: .4byte gUnknown_85D3DDC - thumb_func_end sub_0818E4C4 - - thumb_func_start sub_0818E4DC -sub_0818E4DC: @ 0x0818E4DC - push {lr} - ldr r1, _0818E4F4 - ldr r0, _0818E4F8 - ldr r0, [r0] - ldr r2, _0818E4FC - adds r0, r0, r2 - str r0, [r1] - ldrb r0, [r0, #2] - cmp r0, #4 - bls _0818E500 - movs r0, #1 - b _0818E50A - .align 2, 0 -_0818E4F4: .4byte gUnknown_203CA38 -_0818E4F8: .4byte gUnknown_3005AEC -_0818E4FC: .4byte 0x00003B58 -_0818E500: - cmp r0, #0 - beq _0818E508 - movs r0, #0 - b _0818E50A -_0818E508: - movs r0, #2 -_0818E50A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0818E4DC - - thumb_func_start sub_0818E510 -sub_0818E510: @ 0x0818E510 - push {lr} - ldr r1, _0818E528 - ldr r0, _0818E52C - ldr r0, [r0] - ldr r2, _0818E530 - adds r0, r0, r2 - str r0, [r1] - ldrb r0, [r0, #1] - cmp r0, #1 - beq _0818E534 - movs r0, #0 - b _0818E536 - .align 2, 0 -_0818E528: .4byte gUnknown_203CA38 -_0818E52C: .4byte gUnknown_3005AEC -_0818E530: .4byte 0x00003B58 -_0818E534: - movs r0, #1 -_0818E536: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0818E510 - - thumb_func_start sub_0818E53C -sub_0818E53C: @ 0x0818E53C - push {r4, lr} - movs r3, #0 - ldr r1, _0818E564 - ldr r0, _0818E568 - ldr r0, [r0] - ldr r4, _0818E56C - adds r2, r0, r4 - str r2, [r1] - ldrb r0, [r2, #2] - cmp r0, #4 - bhi _0818E558 - ldrb r0, [r2, #3] - cmp r0, #4 - bls _0818E55A -_0818E558: - movs r3, #1 -_0818E55A: - adds r0, r3, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0818E564: .4byte gUnknown_203CA38 -_0818E568: .4byte gUnknown_3005AEC -_0818E56C: .4byte 0x00003B58 - thumb_func_end sub_0818E53C - - thumb_func_start sub_0818E570 -sub_0818E570: @ 0x0818E570 - push {lr} - ldr r0, _0818E580 - ldr r1, _0818E584 - bl sub_0818E3F0 - pop {r0} - bx r0 - .align 2, 0 -_0818E580: .4byte gUnknown_2021C54 -_0818E584: .4byte gUnknown_2021C40 - thumb_func_end sub_0818E570 - - thumb_func_start sub_0818E588 -sub_0818E588: @ 0x0818E588 - push {lr} - ldr r1, _0818E598 - movs r0, #3 - bl sub_08135850 - pop {r0} - bx r0 - .align 2, 0 -_0818E598: .4byte sub_08085A30 - thumb_func_end sub_0818E588 - - thumb_func_start sub_0818E59C -sub_0818E59C: @ 0x0818E59C - ldr r1, _0818E5B0 - ldr r0, _0818E5B4 - ldr r0, [r0] - ldr r2, _0818E5B8 - adds r0, r0, r2 - str r0, [r1] - movs r1, #1 - strb r1, [r0, #1] - bx lr - .align 2, 0 -_0818E5B0: .4byte gUnknown_203CA38 -_0818E5B4: .4byte gUnknown_3005AEC -_0818E5B8: .4byte 0x00003B58 - thumb_func_end sub_0818E59C - - thumb_func_start sub_0818E5BC -sub_0818E5BC: @ 0x0818E5BC - ldr r1, _0818E5D8 - ldr r0, _0818E5DC - ldr r0, [r0] - ldr r2, _0818E5E0 - adds r0, r0, r2 - str r0, [r1] - ldr r2, _0818E5E4 - ldr r1, _0818E5E8 - ldrb r0, [r0, #0xd] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2] - bx lr - .align 2, 0 -_0818E5D8: .4byte gUnknown_203CA38 -_0818E5DC: .4byte gUnknown_3005AEC -_0818E5E0: .4byte 0x00003B58 -_0818E5E4: .4byte gUnknown_2037282 -_0818E5E8: .4byte gUnknown_85D3DF0 - thumb_func_end sub_0818E5BC - - thumb_func_start sub_0818E5EC -sub_0818E5EC: @ 0x0818E5EC - ldr r1, _0818E5FC - ldr r0, _0818E600 - ldr r0, [r0] - ldr r2, _0818E604 - adds r0, r0, r2 - str r0, [r1] - ldrb r0, [r0, #0xd] - bx lr - .align 2, 0 -_0818E5FC: .4byte gUnknown_203CA38 -_0818E600: .4byte gUnknown_3005AEC -_0818E604: .4byte 0x00003B58 - thumb_func_end sub_0818E5EC - - thumb_func_start sub_0818E608 -sub_0818E608: @ 0x0818E608 - push {lr} - ldr r1, _0818E620 - ldr r0, _0818E624 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - thumb_func_end sub_0818E608 - - thumb_func_start sub_0818E61C -sub_0818E61C: @ 0x0818E61C - bx r0 - .align 2, 0 -_0818E620: .4byte gUnknown_85D5B0C -_0818E624: .4byte gUnknown_2037280 - thumb_func_end sub_0818E61C - - thumb_func_start sub_0818E628 -sub_0818E628: @ 0x0818E628 - push {r4, r5, r6, r7, lr} - ldr r4, _0818E6BC - ldr r0, [r4] - ldr r1, _0818E6C0 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r5, r0, #0x1e - ldr r0, _0818E6C4 - bl VarGet - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - ldr r0, [r4] - ldr r2, _0818E6C8 - adds r0, r0, r2 - movs r6, #0 - strb r6, [r0] - ldr r1, [r4] - adds r2, #0xa - adds r0, r1, r2 - strh r6, [r0] - ldr r0, _0818E6C0 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r4] - ldr r2, _0818E6C0 - adds r1, r1, r2 - ldrb r2, [r1] - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r4, [r4] - ldr r0, _0818E6CC - adds r3, r4, r0 - ldr r2, _0818E6D0 - lsls r1, r5, #2 - lsls r0, r7, #3 - adds r1, r1, r0 - adds r1, r1, r2 - ldr r0, [r3] - ldr r1, [r1] - ands r0, r1 - cmp r0, #0 - bne _0818E69A - lsls r0, r5, #1 - lsls r1, r7, #2 - adds r0, r0, r1 - ldr r2, _0818E6D4 - adds r1, r4, r2 - adds r1, r1, r0 - strh r6, [r1] -_0818E69A: - ldr r0, _0818E6D8 - ldr r0, [r0] - movs r1, #4 - ldrsb r1, [r0, r1] - movs r2, #5 - ldrsb r2, [r0, r2] - movs r3, #1 - rsbs r3, r3, #0 - movs r0, #0 - bl SetDynamicWarp - ldr r0, _0818E6DC - strh r6, [r0] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0818E6BC: .4byte gUnknown_3005AF0 -_0818E6C0: .4byte 0x00000CA9 -_0818E6C4: .4byte 0x000040CE -_0818E6C8: .4byte 0x00000CA8 -_0818E6CC: .4byte 0x00000CDC -_0818E6D0: .4byte gUnknown_85D5B68 -_0818E6D4: .4byte 0x00000D0C -_0818E6D8: .4byte gUnknown_3005AEC -_0818E6DC: .4byte gUnknown_203886A - thumb_func_end sub_0818E628 - - thumb_func_start GetDomeData -GetDomeData: @ 0x0818E6E0 - push {r4, r5, r6, lr} - ldr r0, _0818E710 - ldr r0, [r0] - ldr r1, _0818E714 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r5, r0, #0x1e - ldr r0, _0818E718 - bl VarGet - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r0, _0818E71C - ldrh r0, [r0] - cmp r0, #9 - bls _0818E704 - b _0818E96C -_0818E704: - lsls r0, r0, #2 - ldr r1, _0818E720 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0818E710: .4byte gUnknown_3005AF0 -_0818E714: .4byte 0x00000CA9 -_0818E718: .4byte 0x000040CE -_0818E71C: .4byte gUnknown_2037282 -_0818E720: .4byte _0818E724 -_0818E724: @ jump table - .4byte _0818E74C @ case 0 - .4byte _0818E770 @ case 1 - .4byte _0818E7A4 @ case 2 - .4byte _0818E7C0 @ case 3 - .4byte _0818E7DC @ case 4 - .4byte _0818E7F4 @ case 5 - .4byte _0818E810 @ case 6 - .4byte _0818E89C @ case 7 - .4byte _0818E92C @ case 8 - .4byte _0818E950 @ case 9 -_0818E74C: - ldr r3, _0818E764 - ldr r0, _0818E768 - ldr r0, [r0] - lsls r1, r5, #1 - lsls r2, r6, #2 - adds r1, r1, r2 - ldr r2, _0818E76C - adds r0, r0, r2 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r3] - b _0818E96C - .align 2, 0 -_0818E764: .4byte gUnknown_2037290 -_0818E768: .4byte gUnknown_3005AF0 -_0818E76C: .4byte 0x00000D0C -_0818E770: - ldr r4, _0818E794 - ldr r0, _0818E798 - ldr r2, [r0] - ldr r3, _0818E79C - adds r2, r2, r3 - ldr r3, _0818E7A0 - lsls r0, r5, #2 - lsls r1, r6, #3 - adds r0, r0, r1 - adds r0, r0, r3 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - strh r0, [r4] - b _0818E96C - .align 2, 0 -_0818E794: .4byte gUnknown_2037290 -_0818E798: .4byte gUnknown_3005AF0 -_0818E79C: .4byte 0x00000CDC -_0818E7A0: .4byte gUnknown_85D5B68 -_0818E7A4: - ldr r1, _0818E7B4 - ldr r0, _0818E7B8 - ldr r0, [r0] - ldr r2, _0818E7BC - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1f - b _0818E91A - .align 2, 0 -_0818E7B4: .4byte gUnknown_2037290 -_0818E7B8: .4byte gUnknown_3005AF0 -_0818E7BC: .4byte 0x00000D08 -_0818E7C0: - ldr r1, _0818E7D0 - ldr r0, _0818E7D4 - ldr r0, [r0] - ldr r3, _0818E7D8 - adds r0, r0, r3 - ldrb r0, [r0] - lsls r0, r0, #0x1e - b _0818E91A - .align 2, 0 -_0818E7D0: .4byte gUnknown_2037290 -_0818E7D4: .4byte gUnknown_3005AF0 -_0818E7D8: .4byte 0x00000D08 -_0818E7DC: - ldr r1, _0818E7E8 - ldr r0, _0818E7EC - ldr r0, [r0] - ldr r2, _0818E7F0 - adds r0, r0, r2 - b _0818E916 - .align 2, 0 -_0818E7E8: .4byte gUnknown_2037290 -_0818E7EC: .4byte gUnknown_3005AF0 -_0818E7F0: .4byte 0x00000D08 -_0818E7F4: - ldr r1, _0818E804 - ldr r0, _0818E808 - ldr r0, [r0] - ldr r3, _0818E80C - adds r0, r0, r3 - ldrb r0, [r0] - lsls r0, r0, #0x1c - b _0818E91A - .align 2, 0 -_0818E804: .4byte gUnknown_2037290 -_0818E808: .4byte gUnknown_3005AF0 -_0818E80C: .4byte 0x00000D08 -_0818E810: - ldr r0, _0818E834 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bne _0818E860 - cmp r5, #0 - beq _0818E844 - ldr r1, _0818E838 - ldr r0, _0818E83C - ldr r0, [r0] - ldr r2, _0818E840 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1a - b _0818E91A - .align 2, 0 -_0818E834: .4byte 0x000040CE -_0818E838: .4byte gUnknown_2037290 -_0818E83C: .4byte gUnknown_3005AF0 -_0818E840: .4byte 0x00000D08 -_0818E844: - ldr r1, _0818E854 - ldr r0, _0818E858 - ldr r0, [r0] - ldr r3, _0818E85C - adds r0, r0, r3 - ldrb r0, [r0] - lsls r0, r0, #0x1b - b _0818E91A - .align 2, 0 -_0818E854: .4byte gUnknown_2037290 -_0818E858: .4byte gUnknown_3005AF0 -_0818E85C: .4byte 0x00000D08 -_0818E860: - cmp r5, #0 - beq _0818E880 - ldr r1, _0818E874 - ldr r0, _0818E878 - ldr r0, [r0] - ldr r2, _0818E87C - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1e - b _0818E91A - .align 2, 0 -_0818E874: .4byte gUnknown_2037290 -_0818E878: .4byte gUnknown_3005AF0 -_0818E87C: .4byte 0x00000D08 -_0818E880: - ldr r1, _0818E890 - ldr r0, _0818E894 - ldr r0, [r0] - ldr r3, _0818E898 - adds r0, r0, r3 - ldrb r0, [r0] - lsls r0, r0, #0x1f - b _0818E91A - .align 2, 0 -_0818E890: .4byte gUnknown_2037290 -_0818E894: .4byte gUnknown_3005AF0 -_0818E898: .4byte 0x00000D08 -_0818E89C: - ldr r0, _0818E8C0 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bne _0818E8EC - cmp r5, #0 - beq _0818E8D0 - ldr r1, _0818E8C4 - ldr r0, _0818E8C8 - ldr r0, [r0] - ldr r2, _0818E8CC - adds r0, r0, r2 - ldrb r0, [r0] - lsrs r0, r0, #7 - strh r0, [r1] - b _0818E96C - .align 2, 0 -_0818E8C0: .4byte 0x000040CE -_0818E8C4: .4byte gUnknown_2037290 -_0818E8C8: .4byte gUnknown_3005AF0 -_0818E8CC: .4byte 0x00000D08 -_0818E8D0: - ldr r1, _0818E8E0 - ldr r0, _0818E8E4 - ldr r0, [r0] - ldr r3, _0818E8E8 - adds r0, r0, r3 - ldrb r0, [r0] - lsls r0, r0, #0x19 - b _0818E91A - .align 2, 0 -_0818E8E0: .4byte gUnknown_2037290 -_0818E8E4: .4byte gUnknown_3005AF0 -_0818E8E8: .4byte 0x00000D08 -_0818E8EC: - cmp r5, #0 - beq _0818E90C - ldr r1, _0818E900 - ldr r0, _0818E904 - ldr r0, [r0] - ldr r2, _0818E908 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1c - b _0818E91A - .align 2, 0 -_0818E900: .4byte gUnknown_2037290 -_0818E904: .4byte gUnknown_3005AF0 -_0818E908: .4byte 0x00000D08 -_0818E90C: - ldr r1, _0818E920 - ldr r0, _0818E924 - ldr r0, [r0] - ldr r3, _0818E928 - adds r0, r0, r3 -_0818E916: - ldrb r0, [r0] - lsls r0, r0, #0x1d -_0818E91A: - lsrs r0, r0, #0x1f - strh r0, [r1] - b _0818E96C - .align 2, 0 -_0818E920: .4byte gUnknown_2037290 -_0818E924: .4byte gUnknown_3005AF0 -_0818E928: .4byte 0x00000D08 -_0818E92C: - bl sub_081B81F8 - ldr r2, _0818E948 - ldr r0, _0818E94C - ldr r0, [r0] - movs r1, #0xcb - lsls r1, r1, #4 - adds r0, r0, r1 - ldrh r1, [r0] - strb r1, [r2] - ldrh r0, [r0] - lsrs r0, r0, #8 - strb r0, [r2, #1] - b _0818E96C - .align 2, 0 -_0818E948: .4byte gUnknown_203CBC4 -_0818E94C: .4byte gUnknown_3005AF0 -_0818E950: - ldr r2, _0818E974 - ldr r0, _0818E978 - ldr r1, [r0] - ldr r3, _0818E97C - adds r0, r1, r3 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r3, #1 - adds r1, r1, r3 - ldr r3, _0818E980 - adds r0, r0, r3 - ldrb r1, [r1] - adds r0, r0, r1 - strh r0, [r2] -_0818E96C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0818E974: .4byte gUnknown_2037290 -_0818E978: .4byte gUnknown_3005AF0 -_0818E97C: .4byte 0x00000D0A -_0818E980: .4byte 0x0000FFFD - thumb_func_end GetDomeData - - thumb_func_start SetDomeData -SetDomeData: @ 0x0818E984 - push {r4, r5, lr} - ldr r0, _0818E9B4 - ldr r0, [r0] - ldr r1, _0818E9B8 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r4, r0, #0x1e - ldr r0, _0818E9BC - bl VarGet - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, _0818E9C0 - ldrh r0, [r0] - cmp r0, #8 - bls _0818E9A8 - b _0818EC7A -_0818E9A8: - lsls r0, r0, #2 - ldr r1, _0818E9C4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0818E9B4: .4byte gUnknown_3005AF0 -_0818E9B8: .4byte 0x00000CA9 -_0818E9BC: .4byte 0x000040CE -_0818E9C0: .4byte gUnknown_2037282 -_0818E9C4: .4byte _0818E9C8 -_0818E9C8: @ jump table - .4byte _0818E9EC @ case 0 - .4byte _0818EA10 @ case 1 - .4byte _0818EA6C @ case 2 - .4byte _0818EA90 @ case 3 - .4byte _0818EAB8 @ case 4 - .4byte _0818EAD4 @ case 5 - .4byte _0818EAFC @ case 6 - .4byte _0818EBAC @ case 7 - .4byte _0818EC64 @ case 8 -_0818E9EC: - ldr r0, _0818EA04 - ldr r2, [r0] - lsls r0, r4, #1 - lsls r1, r5, #2 - adds r0, r0, r1 - ldr r1, _0818EA08 - adds r2, r2, r1 - adds r2, r2, r0 - ldr r0, _0818EA0C - ldrh r0, [r0] - strh r0, [r2] - b _0818EC7A - .align 2, 0 -_0818EA04: .4byte gUnknown_3005AF0 -_0818EA08: .4byte 0x00000D0C -_0818EA0C: .4byte gUnknown_2037284 -_0818EA10: - ldr r0, _0818EA34 - ldrh r0, [r0] - cmp r0, #0 - beq _0818EA44 - ldr r0, _0818EA38 - ldr r2, [r0] - ldr r0, _0818EA3C - adds r2, r2, r0 - ldr r3, _0818EA40 - lsls r1, r4, #2 - lsls r0, r5, #3 - adds r1, r1, r0 - adds r1, r1, r3 - ldr r0, [r2] - ldr r1, [r1] - orrs r0, r1 - str r0, [r2] - b _0818EC7A - .align 2, 0 -_0818EA34: .4byte gUnknown_2037284 -_0818EA38: .4byte gUnknown_3005AF0 -_0818EA3C: .4byte 0x00000CDC -_0818EA40: .4byte gUnknown_85D5B68 -_0818EA44: - ldr r0, _0818EA60 - ldr r2, [r0] - ldr r1, _0818EA64 - adds r2, r2, r1 - ldr r3, _0818EA68 - lsls r1, r4, #2 - lsls r0, r5, #3 - adds r1, r1, r0 - adds r1, r1, r3 - ldr r0, [r2] - ldr r1, [r1] - ands r0, r1 - str r0, [r2] - b _0818EC7A - .align 2, 0 -_0818EA60: .4byte gUnknown_3005AF0 -_0818EA64: .4byte 0x00000CDC -_0818EA68: .4byte gUnknown_85D5B78 -_0818EA6C: - ldr r0, _0818EA84 - ldr r2, [r0] - ldr r0, _0818EA88 - ldrb r0, [r0] - ldr r1, _0818EA8C - adds r2, r2, r1 - movs r1, #1 - ands r1, r0 - ldrb r3, [r2] - movs r0, #2 - rsbs r0, r0, #0 - b _0818EBD0 - .align 2, 0 -_0818EA84: .4byte gUnknown_3005AF0 -_0818EA88: .4byte gUnknown_2037284 -_0818EA8C: .4byte 0x00000D08 -_0818EA90: - ldr r0, _0818EAAC - ldr r3, [r0] - ldr r0, _0818EAB0 - ldrb r0, [r0] - ldr r2, _0818EAB4 - adds r3, r3, r2 - movs r1, #1 - ands r1, r0 - lsls r1, r1, #1 - ldrb r2, [r3] - movs r0, #3 - rsbs r0, r0, #0 - b _0818EC50 - .align 2, 0 -_0818EAAC: .4byte gUnknown_3005AF0 -_0818EAB0: .4byte gUnknown_2037284 -_0818EAB4: .4byte 0x00000D08 -_0818EAB8: - ldr r0, _0818EAC8 - ldr r3, [r0] - ldr r0, _0818EACC - ldrb r0, [r0] - ldr r1, _0818EAD0 - adds r3, r3, r1 - b _0818EC44 - .align 2, 0 -_0818EAC8: .4byte gUnknown_3005AF0 -_0818EACC: .4byte gUnknown_2037284 -_0818EAD0: .4byte 0x00000D08 -_0818EAD4: - ldr r0, _0818EAF0 - ldr r3, [r0] - ldr r0, _0818EAF4 - ldrb r0, [r0] - ldr r2, _0818EAF8 - adds r3, r3, r2 - movs r1, #1 - ands r1, r0 - lsls r1, r1, #3 - ldrb r2, [r3] - movs r0, #9 - rsbs r0, r0, #0 - b _0818EC50 - .align 2, 0 -_0818EAF0: .4byte gUnknown_3005AF0 -_0818EAF4: .4byte gUnknown_2037284 -_0818EAF8: .4byte 0x00000D08 -_0818EAFC: - ldr r0, _0818EB28 - bl VarGet - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #1 - bne _0818EB5C - cmp r4, #0 - beq _0818EB38 - ldr r0, _0818EB2C - ldr r3, [r0] - ldr r0, _0818EB30 - ldrb r0, [r0] - ldr r2, _0818EB34 - adds r3, r3, r2 - ands r1, r0 - lsls r1, r1, #5 - ldrb r2, [r3] - movs r0, #0x21 - rsbs r0, r0, #0 - b _0818EC50 - .align 2, 0 -_0818EB28: .4byte 0x000040CE -_0818EB2C: .4byte gUnknown_3005AF0 -_0818EB30: .4byte gUnknown_2037284 -_0818EB34: .4byte 0x00000D08 -_0818EB38: - ldr r0, _0818EB50 - ldr r3, [r0] - ldr r0, _0818EB54 - ldrb r0, [r0] - ldr r2, _0818EB58 - adds r3, r3, r2 - ands r1, r0 - lsls r1, r1, #4 - ldrb r2, [r3] - movs r0, #0x11 - rsbs r0, r0, #0 - b _0818EC50 - .align 2, 0 -_0818EB50: .4byte gUnknown_3005AF0 -_0818EB54: .4byte gUnknown_2037284 -_0818EB58: .4byte 0x00000D08 -_0818EB5C: - cmp r4, #0 - beq _0818EB88 - ldr r0, _0818EB7C - ldr r3, [r0] - ldr r0, _0818EB80 - ldrb r0, [r0] - ldr r1, _0818EB84 - adds r3, r3, r1 - movs r1, #1 - ands r1, r0 - lsls r1, r1, #1 - ldrb r2, [r3] - movs r0, #3 - rsbs r0, r0, #0 - b _0818EC50 - .align 2, 0 -_0818EB7C: .4byte gUnknown_3005AF0 -_0818EB80: .4byte gUnknown_2037284 -_0818EB84: .4byte 0x00000D08 -_0818EB88: - ldr r0, _0818EBA0 - ldr r2, [r0] - ldr r0, _0818EBA4 - ldrb r0, [r0] - ldr r1, _0818EBA8 - adds r2, r2, r1 - movs r1, #1 - ands r1, r0 - ldrb r3, [r2] - movs r0, #2 - rsbs r0, r0, #0 - b _0818EBD0 - .align 2, 0 -_0818EBA0: .4byte gUnknown_3005AF0 -_0818EBA4: .4byte gUnknown_2037284 -_0818EBA8: .4byte 0x00000D08 -_0818EBAC: - ldr r0, _0818EBD8 - bl VarGet - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #1 - bne _0818EC0C - cmp r4, #0 - beq _0818EBE8 - ldr r0, _0818EBDC - ldr r2, [r0] - ldr r0, _0818EBE0 - ldrb r1, [r0] - ldr r0, _0818EBE4 - adds r2, r2, r0 - lsls r1, r1, #7 - ldrb r3, [r2] - movs r0, #0x7f -_0818EBD0: - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - b _0818EC7A - .align 2, 0 -_0818EBD8: .4byte 0x000040CE -_0818EBDC: .4byte gUnknown_3005AF0 -_0818EBE0: .4byte gUnknown_2037284 -_0818EBE4: .4byte 0x00000D08 -_0818EBE8: - ldr r0, _0818EC00 - ldr r3, [r0] - ldr r0, _0818EC04 - ldrb r0, [r0] - ldr r2, _0818EC08 - adds r3, r3, r2 - ands r1, r0 - lsls r1, r1, #6 - ldrb r2, [r3] - movs r0, #0x41 - rsbs r0, r0, #0 - b _0818EC50 - .align 2, 0 -_0818EC00: .4byte gUnknown_3005AF0 -_0818EC04: .4byte gUnknown_2037284 -_0818EC08: .4byte 0x00000D08 -_0818EC0C: - cmp r4, #0 - beq _0818EC38 - ldr r0, _0818EC2C - ldr r3, [r0] - ldr r0, _0818EC30 - ldrb r0, [r0] - ldr r1, _0818EC34 - adds r3, r3, r1 - movs r1, #1 - ands r1, r0 - lsls r1, r1, #3 - ldrb r2, [r3] - movs r0, #9 - rsbs r0, r0, #0 - b _0818EC50 - .align 2, 0 -_0818EC2C: .4byte gUnknown_3005AF0 -_0818EC30: .4byte gUnknown_2037284 -_0818EC34: .4byte 0x00000D08 -_0818EC38: - ldr r0, _0818EC58 - ldr r3, [r0] - ldr r0, _0818EC5C - ldrb r0, [r0] - ldr r2, _0818EC60 - adds r3, r3, r2 -_0818EC44: - movs r1, #1 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r3] - movs r0, #5 - rsbs r0, r0, #0 -_0818EC50: - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _0818EC7A - .align 2, 0 -_0818EC58: .4byte gUnknown_3005AF0 -_0818EC5C: .4byte gUnknown_2037284 -_0818EC60: .4byte 0x00000D08 -_0818EC64: - ldr r0, _0818EC80 - ldr r2, [r0] - ldr r0, _0818EC84 - ldrb r1, [r0] - ldrb r0, [r0, #1] - lsls r0, r0, #8 - orrs r1, r0 - movs r0, #0xcb - lsls r0, r0, #4 - adds r2, r2, r0 - strh r1, [r2] -_0818EC7A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0818EC80: .4byte gUnknown_3005AF0 -_0818EC84: .4byte gUnknown_203CBC4 - thumb_func_end SetDomeData - - thumb_func_start InitDomeTrainers -InitDomeTrainers: @ 0x0818EC88 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x3c - movs r0, #0 - str r0, [sp, #8] - str r0, [sp, #0xc] - str r0, [sp, #0x10] - movs r0, #0x20 - bl AllocZeroed - str r0, [sp, #0x18] - movs r0, #0x18 - bl AllocZeroed - str r0, [sp, #0x1c] - ldr r4, _0818EE48 - ldr r1, [r4] - ldr r2, _0818EE4C - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - adds r0, #1 - ldr r3, _0818EE50 - adds r1, r1, r3 - strb r0, [r1] - ldr r0, _0818EE54 - bl VarGet - ldr r1, [r4] - adds r0, #1 - ldr r5, _0818EE58 - adds r1, r1, r5 - strb r0, [r1] - ldr r2, [r4] - ldr r7, _0818EE5C - adds r3, r2, r7 - ldrh r0, [r3] - ldr r5, _0818EE60 - adds r1, r5, #0 - orrs r0, r1 - strh r0, [r3] - ldr r3, _0818EE64 - adds r2, r2, r3 - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldr r1, [r4] - adds r1, r1, r3 - ldrb r2, [r1] - movs r0, #0x19 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r4] - adds r1, r1, r3 - ldrb r2, [r1] - movs r0, #0x1f - ands r0, r2 - strb r0, [r1] - movs r7, #0 - mov sl, r7 - mov r8, r4 - ldr r0, _0818EE68 - mov sb, r0 - movs r4, #0 -_0818ED16: - mov r1, r8 - ldr r0, [r1] - ldr r2, _0818EE6C - adds r0, r0, r2 - adds r0, r0, r4 - ldrh r0, [r0] - movs r3, #0x64 - muls r0, r3, r0 - add r0, sb - movs r1, #0xb - movs r2, #0 - bl GetMonData - mov r5, r8 - ldr r1, [r5] - ldr r7, _0818EE70 - adds r1, r1, r7 - adds r1, r1, r4 - strh r0, [r1] - movs r5, #0 - mov r0, sl - lsls r7, r0, #4 - adds r6, r7, #0 -_0818ED44: - mov r1, r8 - ldr r0, [r1] - ldr r2, _0818EE6C - adds r0, r0, r2 - adds r0, r0, r4 - ldrh r0, [r0] - movs r3, #0x64 - muls r0, r3, r0 - add r0, sb - adds r1, r5, #0 - adds r1, #0xd - movs r2, #0 - bl GetMonData - mov r2, r8 - ldr r1, [r2] - ldr r3, _0818EE74 - adds r1, r1, r3 - adds r1, r1, r6 - strh r0, [r1] - adds r6, #2 - adds r5, #1 - cmp r5, #3 - ble _0818ED44 - movs r5, #0 - ldr r6, _0818EE48 -_0818ED78: - ldr r0, [r6] - ldr r1, _0818EE6C - adds r0, r0, r1 - adds r0, r0, r4 - ldrh r0, [r0] - movs r2, #0x64 - muls r0, r2, r0 - add r0, sb - adds r1, r5, #0 - adds r1, #0x1a - movs r2, #0 - bl GetMonData - ldr r1, [r6] - adds r2, r5, r7 - ldr r3, _0818EE78 - adds r1, r1, r3 - adds r1, r1, r2 - strb r0, [r1] - adds r5, #1 - cmp r5, #5 - ble _0818ED78 - mov r5, r8 - ldr r0, [r5] - ldr r1, _0818EE6C - adds r0, r0, r1 - adds r0, r0, r4 - ldrh r0, [r0] - movs r2, #0x64 - muls r0, r2, r0 - add r0, sb - bl GetNature - ldr r1, [r5] - adds r1, r1, r7 - ldr r3, _0818EE7C - adds r1, r1, r3 - strb r0, [r1] - adds r4, #2 - movs r5, #1 - add sl, r5 - mov r7, sl - cmp r7, #2 - ble _0818ED16 - mov sl, r5 - movs r0, #4 - str r0, [sp, #0x34] - movs r1, #6 - str r1, [sp, #0x38] -_0818EDDA: - mov r2, sl - cmp r2, #5 - ble _0818EE88 -_0818EDE0: - bl GetCurrentFacilityWinStreak - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl sub_0816245C - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r5, #1 - cmp r5, sl - bge _0818EE26 - ldr r3, _0818EE48 - ldr r0, [r3] - ldr r7, _0818EE80 - adds r0, r0, r7 - ldrh r0, [r0] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - adds r2, r3, #0 - cmp r0, r4 - beq _0818EE26 - ldr r3, _0818EE5C -_0818EE0E: - adds r5, #1 - cmp r5, sl - bge _0818EE26 - ldr r0, [r2] - lsls r1, r5, #2 - adds r0, r0, r1 - adds r0, r0, r3 - ldrh r0, [r0] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - cmp r0, r4 - bne _0818EE0E -_0818EE26: - cmp r5, sl - bne _0818EDE0 - ldr r0, _0818EE48 - ldr r3, [r0] - ldr r1, [sp, #0x34] - adds r3, r3, r1 - ldr r2, _0818EE5C - adds r3, r3, r2 - ldr r5, _0818EE60 - adds r0, r5, #0 - adds r2, r4, #0 - ands r2, r0 - ldrh r0, [r3] - ldr r7, _0818EE84 - adds r1, r7, #0 - b _0818EEEE - .align 2, 0 -_0818EE48: .4byte gUnknown_3005AF0 -_0818EE4C: .4byte 0x00000CA9 -_0818EE50: .4byte 0x00000D0A -_0818EE54: .4byte 0x000040CE -_0818EE58: .4byte 0x00000D0B -_0818EE5C: .4byte 0x00000D24 -_0818EE60: .4byte 0x000003FF -_0818EE64: .4byte 0x00000D25 -_0818EE68: .4byte gUnknown_202412C -_0818EE6C: .4byte 0x00000CAA -_0818EE70: .4byte 0x00000D64 -_0818EE74: .4byte 0x00000EFC -_0818EE78: .4byte 0x00000F04 -_0818EE7C: .4byte 0x00000F0A -_0818EE80: .4byte 0x00000D28 -_0818EE84: .4byte 0xFFFFFC00 -_0818EE88: - bl GetCurrentFacilityWinStreak - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl sub_0816245C - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r5, #1 - cmp r5, sl - bge _0818EED0 - ldr r1, _0818F22C - ldr r0, [r1] - ldr r2, _0818F230 - adds r0, r0, r2 - ldrh r0, [r0] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - adds r2, r1, #0 - cmp r0, r4 - beq _0818EED0 - ldr r3, _0818F234 -_0818EEB8: - adds r5, #1 - cmp r5, sl - bge _0818EED0 - ldr r0, [r2] - lsls r1, r5, #2 - adds r0, r0, r1 - adds r0, r0, r3 - ldrh r0, [r0] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - cmp r0, r4 - bne _0818EEB8 -_0818EED0: - cmp r5, sl - bne _0818EE88 - ldr r5, _0818F22C - ldr r3, [r5] - ldr r7, [sp, #0x34] - adds r3, r3, r7 - ldr r0, _0818F234 - adds r3, r3, r0 - ldr r1, _0818F238 - adds r0, r1, #0 - adds r2, r4, #0 - ands r2, r0 - ldrh r0, [r3] - ldr r5, _0818F23C - adds r1, r5, #0 -_0818EEEE: - ands r0, r1 - orrs r0, r2 - strh r0, [r3] - movs r5, #0 - lsls r4, r4, #0x10 - str r4, [sp, #0x2c] - ldr r7, [sp, #0x38] - str r7, [sp, #0x20] -_0818EEFE: - lsls r0, r5, #1 - mov sb, r0 - adds r1, r5, #1 - str r1, [sp, #0x24] - lsls r2, r5, #2 - str r2, [sp, #0x28] -_0818EF0A: - ldr r3, [sp, #0x2c] - lsrs r0, r3, #0x10 - bl RandomizeFacilityTrainerMonSet - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - movs r7, #0 - cmp r7, r5 - bge _0818EF5C - ldr r0, _0818F22C - ldr r0, [r0] - ldr r1, [sp, #8] - mov r8, r1 - ldr r2, [sp, #0xc] - mov ip, r2 - ldr r3, _0818F240 - adds r0, r0, r3 - ldr r1, [sp, #0x20] - adds r4, r1, r0 -_0818EF30: - ldrh r3, [r4] - cmp r3, r6 - beq _0818EF5C - ldr r2, _0818F244 - ldr r1, [r2] - lsls r0, r6, #4 - adds r2, r0, r1 - ldrh r0, [r2] - cmp r8, r0 - beq _0818EF5C - cmp ip, r0 - beq _0818EF5C - lsls r0, r3, #4 - adds r0, r0, r1 - ldrb r0, [r0, #0xa] - ldrb r2, [r2, #0xa] - cmp r0, r2 - beq _0818EF5C - adds r4, #2 - adds r7, #1 - cmp r7, r5 - blt _0818EF30 -_0818EF5C: - cmp r7, r5 - bne _0818EF0A - ldr r3, _0818F22C - ldr r0, [r3] - ldr r1, [sp, #0x38] - add r1, sb - ldr r5, _0818F240 - adds r0, r0, r5 - adds r0, r0, r1 - strh r6, [r0] - ldr r2, [sp, #0x28] - add r2, sp - adds r2, #8 - ldr r0, _0818F244 - ldr r1, [r0] - lsls r0, r6, #4 - adds r0, r0, r1 - ldrh r0, [r0] - str r0, [r2] - ldr r5, [sp, #0x24] - cmp r5, #2 - ble _0818EEFE - ldr r2, [r3] - ldr r7, [sp, #0x34] - adds r2, r2, r7 - ldr r0, _0818F248 - adds r2, r2, r0 - ldrb r0, [r2] - movs r3, #5 - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r0, r1 - strb r0, [r2] - ldr r5, _0818F22C - ldr r2, [r5] - adds r2, r2, r7 - ldr r7, _0818F248 - adds r2, r2, r7 - ldrb r0, [r2] - subs r3, #0x14 - adds r1, r3, #0 - ands r0, r1 - strb r0, [r2] - ldr r1, [r5] - ldr r5, [sp, #0x34] - adds r1, r1, r5 - adds r1, r1, r7 - ldrb r2, [r1] - movs r0, #0x1f - ands r0, r2 - strb r0, [r1] - adds r5, #4 - str r5, [sp, #0x34] - ldr r7, [sp, #0x38] - adds r7, #6 - str r7, [sp, #0x38] - movs r0, #1 - add sl, r0 - mov r1, sl - cmp r1, #0xf - bgt _0818EFD8 - b _0818EDDA -_0818EFD8: - movs r7, #0 - ldr r2, [sp, #0x18] - strh r7, [r2] - movs r3, #0 - mov sl, r3 - ldr r6, _0818F24C - ldr r5, _0818F250 -_0818EFE6: - ldr r0, _0818F22C - ldr r0, [r0] - mov r2, sl - lsls r1, r2, #1 - ldr r3, _0818F254 - adds r0, r0, r3 - adds r0, r0, r1 - ldrh r0, [r0] - subs r4, r0, #1 - movs r0, #0x64 - muls r4, r0, r4 - ldr r0, _0818F258 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x3b - movs r2, #0 - bl GetMonData - ldr r2, [sp, #0x18] - ldrh r1, [r2] - adds r1, r1, r0 - strh r1, [r2] - adds r0, r4, #0 - movs r1, #0x3c - movs r2, #0 - bl GetMonData - ldr r3, [sp, #0x18] - ldrh r1, [r3] - adds r1, r1, r0 - strh r1, [r3] - adds r0, r4, #0 - movs r1, #0x3e - movs r2, #0 - bl GetMonData - ldr r2, [sp, #0x18] - ldrh r1, [r2] - adds r1, r1, r0 - strh r1, [r2] - adds r0, r4, #0 - movs r1, #0x3f - movs r2, #0 - bl GetMonData - ldr r3, [sp, #0x18] - ldrh r1, [r3] - adds r1, r1, r0 - strh r1, [r3] - adds r0, r4, #0 - movs r1, #0x3d - movs r2, #0 - bl GetMonData - ldr r2, [sp, #0x18] - ldrh r1, [r2] - adds r1, r1, r0 - strh r1, [r2] - adds r0, r4, #0 - movs r1, #0x3a - movs r2, #0 - bl GetMonData - ldr r3, [sp, #0x18] - ldrh r1, [r3] - adds r1, r1, r0 - strh r1, [r3] - adds r0, r4, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrb r0, [r1, #6] - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r0, [r0] - orrs r7, r0 - adds r0, r4, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrb r0, [r1, #7] - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r0, [r0] - orrs r7, r0 - movs r0, #1 - add sl, r0 - mov r1, sl - cmp r1, #2 - ble _0818EFE6 - movs r4, #0 - movs r1, #1 - movs r5, #0x1f -_0818F0B4: - adds r0, r7, #0 - ands r0, r1 - cmp r0, #0 - beq _0818F0BE - adds r4, #1 -_0818F0BE: - asrs r7, r7, #1 - subs r5, #1 - cmp r5, #0 - bge _0818F0B4 - bl SetFacilityPtrsGetLevel - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x14] - adds r2, r0, #0 - adds r0, r4, #0 - muls r0, r2, r0 - movs r1, #0x14 - bl __divsi3 - ldr r3, [sp, #0x18] - ldrh r1, [r3] - adds r1, r1, r0 - strh r1, [r3] - movs r5, #1 - mov sl, r5 - adds r6, r3, #0 - adds r6, #2 - movs r7, #2 - str r7, [sp, #0x30] -_0818F0F0: - movs r7, #0 - strh r7, [r6] - ldr r1, _0818F22C - ldr r0, [r1] - mov r2, sl - lsls r1, r2, #2 - adds r0, r0, r1 - ldr r3, _0818F234 - adds r0, r0, r3 - ldrh r0, [r0] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - bl sub_0818FDC4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r5, #0 - ldr r0, [sp, #0x30] - mov sb, r0 -_0818F118: - ldr r1, _0818F22C - ldr r0, [r1] - mov r4, sb - add r4, sl - adds r4, r4, r5 - lsls r4, r4, #1 - ldr r2, _0818F240 - adds r0, r0, r2 - adds r0, r0, r4 - ldrh r1, [r0] - ldr r3, _0818F244 - ldr r0, [r3] - lsls r1, r1, #4 - adds r1, r1, r0 - ldrh r0, [r1] - ldrb r3, [r1, #0xb] - ldrb r1, [r1, #0xc] - str r1, [sp] - ldr r1, [sp, #0x1c] - str r1, [sp, #4] - ldr r1, [sp, #0x14] - mov r2, r8 - bl CalcDomeMonStats - ldr r2, [sp, #0x1c] - ldr r1, [r2, #4] - ldrh r0, [r6] - adds r0, r0, r1 - ldr r1, [r2, #8] - adds r0, r0, r1 - ldr r1, [r2, #0x10] - adds r0, r0, r1 - ldr r1, [r2, #0x14] - adds r0, r0, r1 - ldr r1, [r2, #0xc] - adds r0, r0, r1 - ldr r1, [r2] - adds r0, r0, r1 - strh r0, [r6] - ldr r3, _0818F22C - ldr r0, [r3] - ldr r1, _0818F240 - adds r0, r0, r1 - adds r0, r0, r4 - ldrh r0, [r0] - ldr r2, _0818F244 - ldr r1, [r2] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - ldr r3, _0818F250 - adds r1, r1, r3 - ldrb r0, [r1, #6] - lsls r0, r0, #2 - ldr r2, _0818F24C - adds r0, r0, r2 - ldr r0, [r0] - orrs r7, r0 - ldrb r0, [r1, #7] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - orrs r7, r0 - adds r5, #1 - cmp r5, #2 - ble _0818F118 - movs r4, #0 - movs r1, #1 - movs r5, #0x1f -_0818F1A8: - adds r0, r7, #0 - ands r0, r1 - cmp r0, #0 - beq _0818F1B2 - adds r4, #1 -_0818F1B2: - asrs r7, r7, #1 - subs r5, #1 - cmp r5, #0 - bge _0818F1A8 - ldr r3, [sp, #0x14] - adds r0, r4, #0 - muls r0, r3, r0 - movs r1, #0x14 - bl __divsi3 - ldrh r1, [r6] - adds r1, r1, r0 - strh r1, [r6] - adds r6, #2 - ldr r5, [sp, #0x30] - adds r5, #2 - str r5, [sp, #0x30] - movs r7, #1 - add sl, r7 - mov r0, sl - cmp r0, #0xf - ble _0818F0F0 - movs r1, #0 - mov sl, r1 - ldr r2, _0818F238 - mov r8, r2 -_0818F1E6: - mov r5, sl - adds r5, #1 - adds r7, r5, #0 - cmp r5, #0xf - bgt _0818F282 - mov r3, sl - lsls r0, r3, #1 - ldr r1, [sp, #0x18] - adds r6, r0, r1 - lsls r0, r5, #1 - adds r4, r0, r1 -_0818F1FC: - ldrh r1, [r6] - ldrh r0, [r4] - cmp r1, r0 - blo _0818F21E - cmp r1, r0 - bne _0818F27A - ldr r0, _0818F22C - ldr r1, [r0] - lsls r0, r5, #2 - adds r0, r1, r0 - ldr r2, _0818F234 - adds r0, r0, r2 - ldrh r0, [r0] - lsls r2, r0, #0x16 - lsrs r0, r2, #0x16 - cmp r0, r8 - bne _0818F25E -_0818F21E: - mov r0, sl - adds r1, r5, #0 - ldr r2, [sp, #0x18] - bl SwapDomeTrainers - b _0818F25C - .align 2, 0 -_0818F22C: .4byte gUnknown_3005AF0 -_0818F230: .4byte 0x00000D28 -_0818F234: .4byte 0x00000D24 -_0818F238: .4byte 0x000003FF -_0818F23C: .4byte 0xFFFFFC00 -_0818F240: .4byte 0x00000D64 -_0818F244: .4byte gUnknown_203B958 -_0818F248: .4byte 0x00000D25 -_0818F24C: .4byte gUnknown_82FACB4 -_0818F250: .4byte gUnknown_82F0D54 -_0818F254: .4byte 0x00000CAA -_0818F258: .4byte gUnknown_2024190 -_0818F25C: - b _0818F27A -_0818F25E: - mov r3, sl - lsls r0, r3, #2 - adds r0, r1, r0 - ldr r1, _0818F2F0 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #0x16 - cmp r0, r2 - bls _0818F27A - mov r0, sl - adds r1, r5, #0 - ldr r2, [sp, #0x18] - bl SwapDomeTrainers -_0818F27A: - adds r4, #2 - adds r5, #1 - cmp r5, #0xf - ble _0818F1FC -_0818F282: - mov sl, r7 - mov r2, sl - cmp r2, #0xe - ble _0818F1E6 - bl sub_081A33A0 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0818F34A - movs r3, #0 - mov sl, r3 - ldr r0, _0818F2F4 - ldr r1, [r0] - ldr r4, _0818F2F0 - adds r1, r1, r4 - ldrh r1, [r1] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x16 - ldr r3, _0818F2F8 - adds r2, r0, #0 - ldr r6, _0818F2FC - cmp r1, r3 - beq _0818F2D0 - adds r5, r2, #0 -_0818F2B2: - movs r7, #1 - add sl, r7 - mov r0, sl - cmp r0, #0xf - bgt _0818F2D0 - ldr r0, [r5] - mov r7, sl - lsls r1, r7, #2 - adds r0, r0, r1 - adds r0, r0, r4 - ldrh r0, [r0] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - cmp r0, r3 - bne _0818F2B2 -_0818F2D0: - mov r1, sl - lsls r0, r1, #1 - adds r0, r0, r6 - ldrb r0, [r0] - cmp r0, #0 - beq _0818F308 - movs r5, #0 - ldr r2, [r2] - ldr r3, _0818F2F0 - adds r2, r2, r3 - ldrh r1, [r2] - ldr r0, _0818F300 - ands r0, r1 - ldr r7, _0818F304 - adds r1, r7, #0 - b _0818F31A - .align 2, 0 -_0818F2F0: .4byte 0x00000D24 -_0818F2F4: .4byte gUnknown_3005AF0 -_0818F2F8: .4byte 0x000003FF -_0818F2FC: .4byte gUnknown_85D5E6D -_0818F300: .4byte 0xFFFFFC00 -_0818F304: .4byte 0x000003FE -_0818F308: - movs r5, #1 - ldr r2, [r2] - ldr r0, _0818F368 - adds r2, r2, r0 - ldrh r1, [r2] - ldr r0, _0818F36C - ands r0, r1 - ldr r3, _0818F370 - adds r1, r3, #0 -_0818F31A: - orrs r0, r1 - strh r0, [r2] - movs r7, #0 - mov sl, r7 - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r4, r0, #1 -_0818F328: - mov r1, sl - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - bl GetFrontierBrainMonSpecies - ldr r1, _0818F374 - ldr r1, [r1] - ldr r2, _0818F378 - adds r1, r1, r2 - adds r1, r1, r4 - strh r0, [r1] - adds r4, #2 - movs r3, #1 - add sl, r3 - mov r5, sl - cmp r5, #2 - ble _0818F328 -_0818F34A: - ldr r0, [sp, #0x18] - bl Free - ldr r0, [sp, #0x1c] - bl Free - add sp, #0x3c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0818F368: .4byte 0x00000D28 -_0818F36C: .4byte 0xFFFFFC00 -_0818F370: .4byte 0x000003FE -_0818F374: .4byte gUnknown_3005AF0 -_0818F378: .4byte 0x00000D64 - thumb_func_end InitDomeTrainers - - thumb_func_start CalcDomeMonStats -CalcDomeMonStats: @ 0x0818F37C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - adds r7, r1, #0 - mov sb, r2 - ldr r1, [sp, #0x3c] - ldr r2, [sp, #0x40] - mov r8, r2 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r3, r3, #0x18 - lsrs r5, r3, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp, #0x18] - movs r1, #0 - adds r4, r5, #0 - movs r3, #1 - movs r2, #5 -_0818F3A8: - adds r0, r4, #0 - ands r0, r3 - cmp r0, #0 - beq _0818F3B2 - adds r1, #1 -_0818F3B2: - lsrs r4, r4, #1 - subs r2, #1 - cmp r2, #0 - bge _0818F3A8 - movs r0, #0xff - lsls r0, r0, #1 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - lsls r0, r6, #3 - mov sl, r0 - movs r1, #0 - mov ip, r1 - mov r1, sp - movs r2, #5 -_0818F3D2: - mov r0, ip - str r0, [r1] - adds r0, r5, #0 - ands r0, r4 - cmp r0, #0 - beq _0818F3E0 - str r3, [r1] -_0818F3E0: - lsls r0, r4, #0x19 - lsrs r4, r0, #0x18 - adds r1, #4 - subs r2, #1 - cmp r2, #0 - bge _0818F3D2 - ldr r0, _0818F3F8 - cmp r6, r0 - bne _0818F3FC - movs r0, #1 - b _0818F426 - .align 2, 0 -_0818F3F8: .4byte 0x0000012F -_0818F3FC: - mov r2, sl - subs r0, r2, r6 - lsls r0, r0, #2 - ldr r1, _0818F55C - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #1 - mov r2, sb - adds r1, r0, r2 - ldr r0, [sp] - cmp r0, #0 - bge _0818F416 - adds r0, #3 -_0818F416: - asrs r0, r0, #2 - adds r0, r1, r0 - muls r0, r7, r0 - movs r1, #0x64 - bl __divsi3 - adds r0, r0, r7 - adds r0, #0xa -_0818F426: - mov r1, r8 - str r0, [r1] - mov r2, sl - subs r0, r2, r6 - lsls r0, r0, #2 - ldr r1, _0818F55C - adds r4, r0, r1 - ldrb r0, [r4, #1] - lsls r0, r0, #1 - mov r2, sb - adds r1, r0, r2 - ldr r0, [sp, #4] - cmp r0, #0 - bge _0818F444 - adds r0, #3 -_0818F444: - asrs r0, r0, #2 - adds r0, r1, r0 - muls r0, r7, r0 - movs r1, #0x64 - bl __divsi3 - adds r1, r0, #0 - adds r1, #5 - mov r0, r8 - str r1, [r0, #4] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, [sp, #0x18] - movs r2, #1 - bl ModifyStatByNature - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, r8 - str r0, [r1, #4] - ldrb r0, [r4, #2] - lsls r0, r0, #1 - mov r2, sb - adds r1, r0, r2 - ldr r0, [sp, #8] - cmp r0, #0 - bge _0818F47C - adds r0, #3 -_0818F47C: - asrs r0, r0, #2 - adds r0, r1, r0 - muls r0, r7, r0 - movs r1, #0x64 - bl __divsi3 - adds r1, r0, #0 - adds r1, #5 - mov r0, r8 - str r1, [r0, #8] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, [sp, #0x18] - movs r2, #2 - bl ModifyStatByNature - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, r8 - str r0, [r1, #8] - ldrb r0, [r4, #3] - lsls r0, r0, #1 - mov r2, sb - adds r1, r0, r2 - ldr r0, [sp, #0xc] - cmp r0, #0 - bge _0818F4B4 - adds r0, #3 -_0818F4B4: - asrs r0, r0, #2 - adds r0, r1, r0 - muls r0, r7, r0 - movs r1, #0x64 - bl __divsi3 - adds r1, r0, #0 - adds r1, #5 - mov r0, r8 - str r1, [r0, #0xc] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, [sp, #0x18] - movs r2, #3 - bl ModifyStatByNature - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, r8 - str r0, [r1, #0xc] - ldrb r0, [r4, #4] - lsls r0, r0, #1 - mov r2, sb - adds r1, r0, r2 - ldr r0, [sp, #0x10] - cmp r0, #0 - bge _0818F4EC - adds r0, #3 -_0818F4EC: - asrs r0, r0, #2 - adds r0, r1, r0 - muls r0, r7, r0 - movs r1, #0x64 - bl __divsi3 - adds r1, r0, #0 - adds r1, #5 - mov r0, r8 - str r1, [r0, #0x10] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, [sp, #0x18] - movs r2, #4 - bl ModifyStatByNature - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, r8 - str r0, [r1, #0x10] - ldrb r0, [r4, #5] - lsls r0, r0, #1 - mov r1, sb - adds r2, r0, r1 - ldr r0, [sp, #0x14] - cmp r0, #0 - bge _0818F524 - adds r0, #3 -_0818F524: - asrs r0, r0, #2 - adds r0, r2, r0 - muls r0, r7, r0 - movs r1, #0x64 - bl __divsi3 - adds r1, r0, #0 - adds r1, #5 - mov r2, r8 - str r1, [r2, #0x14] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, [sp, #0x18] - movs r2, #5 - bl ModifyStatByNature - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, r8 - str r0, [r1, #0x14] - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0818F55C: .4byte gUnknown_82F0D54 - thumb_func_end CalcDomeMonStats - - thumb_func_start SwapDomeTrainers -SwapDomeTrainers: @ 0x0818F560 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r3, r0, #1 - mov ip, r3 - adds r4, r3, r2 - ldrh r5, [r4] - lsls r7, r1, #1 - mov sb, r7 - add r2, sb - ldrh r3, [r2] - strh r3, [r4] - strh r5, [r2] - ldr r2, _0818F5FC - ldr r5, [r2] - lsls r6, r0, #2 - adds r6, r5, r6 - ldr r3, _0818F600 - adds r6, r6, r3 - ldrh r7, [r6] - mov sl, r7 - mov r2, sl - lsls r2, r2, #0x16 - mov r8, r2 - lsls r2, r1, #2 - adds r5, r5, r2 - adds r5, r5, r3 - ldrh r4, [r5] - lsls r4, r4, #0x16 - lsrs r4, r4, #0x16 - ldr r3, _0818F604 - adds r2, r3, #0 - mov r7, sl - ands r2, r7 - orrs r2, r4 - strh r2, [r6] - mov r2, r8 - lsrs r2, r2, #0x16 - mov r8, r2 - ldrh r2, [r5] - ands r3, r2 - mov r7, r8 - orrs r3, r7 - strh r3, [r5] - ldr r2, _0818F5FC - mov r8, r2 - add ip, r0 - add sb, r1 - mov r3, sb - lsls r4, r3, #1 - mov r7, ip - lsls r3, r7, #1 - ldr r7, _0818F608 - movs r6, #2 -_0818F5D0: - mov r1, r8 - ldr r0, [r1] - adds r0, r0, r7 - adds r2, r0, r3 - ldrh r5, [r2] - adds r0, r0, r4 - ldrh r1, [r0] - strh r1, [r2] - strh r5, [r0] - adds r4, #2 - adds r3, #2 - subs r6, #1 - cmp r6, #0 - bge _0818F5D0 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0818F5FC: .4byte gUnknown_3005AF0 -_0818F600: .4byte 0x00000D24 -_0818F604: .4byte 0xFFFFFC00 -_0818F608: .4byte 0x00000D64 - thumb_func_end SwapDomeTrainers - - thumb_func_start BufferDomeRoundText -BufferDomeRoundText: @ 0x0818F60C - push {lr} - ldr r0, _0818F62C - ldr r2, _0818F630 - ldr r1, _0818F634 - ldr r1, [r1] - ldr r3, _0818F638 - adds r1, r1, r3 - ldrh r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl StringCopy - pop {r0} - bx r0 - .align 2, 0 -_0818F62C: .4byte gUnknown_2021C40 -_0818F630: .4byte gUnknown_85ABD3C -_0818F634: .4byte gUnknown_3005AF0 -_0818F638: .4byte 0x00000CB2 - thumb_func_end BufferDomeRoundText - - thumb_func_start BufferDomeOpponentName -BufferDomeOpponentName: @ 0x0818F63C - push {lr} - ldr r0, _0818F664 - ldr r2, _0818F668 - ldr r1, _0818F66C - ldr r1, [r1] - ldr r3, _0818F670 - adds r1, r1, r3 - ldrh r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl StringCopy - ldr r0, _0818F674 - ldr r1, _0818F678 - ldrh r1, [r1] - bl CopyDomeTrainerName - pop {r0} - bx r0 - .align 2, 0 -_0818F664: .4byte gUnknown_2021C40 -_0818F668: .4byte gUnknown_85ABD3C -_0818F66C: .4byte gUnknown_3005AF0 -_0818F670: .4byte 0x00000CB2 -_0818F674: .4byte gUnknown_2021C54 -_0818F678: .4byte gUnknown_203886A - thumb_func_end BufferDomeOpponentName - - thumb_func_start InitDomeOpponentParty -InitDomeOpponentParty: @ 0x0818F67C - push {r4, r5, lr} - ldr r1, _0818F6C0 - movs r0, #0 - str r0, [r1] - ldr r4, _0818F6C4 - adds r0, r4, #0 - movs r1, #0x3a - movs r2, #0 - bl GetMonData - ldr r5, _0818F6C8 - str r0, [r5] - adds r4, #0x64 - adds r0, r4, #0 - movs r1, #0x3a - movs r2, #0 - bl GetMonData - ldr r1, [r5] - adds r1, r1, r0 - str r1, [r5] - bl sub_0806B004 - ldr r0, _0818F6CC - ldrh r0, [r0] - bl sub_08194F58 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl CreateDomeOpponentMons - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0818F6C0: .4byte gUnknown_203CA3C -_0818F6C4: .4byte gUnknown_2024190 -_0818F6C8: .4byte gUnknown_203CA40 -_0818F6CC: .4byte gUnknown_203886A - thumb_func_end InitDomeOpponentParty - - thumb_func_start CreateDomeOpponentMon -CreateDomeOpponentMon: @ 0x0818F6D0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x30 - adds r5, r2, #0 - str r3, [sp, #0x14] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x10] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp, #0x28] - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - add r0, sp, #0xc - movs r1, #1 - rsbs r1, r1, #0 - strb r1, [r0] - ldr r0, [sp, #0x28] - bl sub_0818FDC4 - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - str r6, [sp, #0x2c] - bl SetFacilityPtrsGetLevel - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r0, #0x64 - ldr r4, [sp, #0x10] - adds r3, r4, #0 - muls r3, r0, r3 - str r3, [sp, #0x18] - ldr r6, _0818F824 - adds r0, r3, r6 - ldr r7, _0818F828 - ldr r4, [r7] - lsls r5, r5, #1 - ldr r3, [sp, #0x28] - lsls r1, r3, #1 - adds r1, r1, r3 - lsls r1, r1, #1 - adds r1, r5, r1 - ldr r6, _0818F82C - adds r4, r4, r6 - adds r4, r4, r1 - ldrh r3, [r4] - ldr r7, _0818F830 - ldr r7, [r7] - mov r8, r7 - lsls r3, r3, #4 - add r3, r8 - ldrh r1, [r3] - ldrb r3, [r3, #0xc] - ldr r6, [sp, #0x2c] - str r6, [sp] - ldrh r4, [r4] - lsls r4, r4, #4 - add r4, r8 - ldrb r4, [r4, #0xb] - str r4, [sp, #4] - ldr r7, [sp, #0x14] - str r7, [sp, #8] - bl CreateMonWithEVSpreadNatureOTID - add r0, sp, #0xc - movs r1, #1 - rsbs r1, r1, #0 - strb r1, [r0] - movs r6, #0 - ldr r2, [sp, #0x18] - str r2, [sp, #0x1c] - mov sl, r5 - ldr r3, _0818F82C - mov sb, r3 - ldr r3, _0818F830 - mov r4, sl - str r4, [sp, #0x20] -_0818F774: - ldr r7, _0818F828 - ldr r1, [r7] - ldr r2, [sp, #0x28] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #1 - mov r8, r0 - mov r5, sl - add r5, r8 - add r1, sb - adds r1, r1, r5 - ldrh r0, [r1] - ldr r1, [r3] - lsls r0, r0, #4 - adds r0, r0, r1 - lsls r4, r6, #1 - adds r0, #2 - adds r0, r0, r4 - ldrh r1, [r0] - lsls r2, r6, #0x18 - lsrs r2, r2, #0x18 - mov ip, r2 - ldr r7, [sp, #0x1c] - ldr r2, _0818F824 - adds r0, r7, r2 - mov r2, ip - str r3, [sp, #0x24] - bl SetMonMoveSlot - ldr r7, _0818F828 - ldr r0, [r7] - add r0, sb - adds r0, r0, r5 - ldrh r0, [r0] - ldr r3, [sp, #0x24] - ldr r1, [r3] - lsls r0, r0, #4 - adds r0, r0, r1 - adds r0, #2 - adds r0, r0, r4 - ldrh r0, [r0] - cmp r0, #0xda - bne _0818F7D0 - movs r1, #0 - add r0, sp, #0xc - strb r1, [r0] -_0818F7D0: - adds r6, #1 - cmp r6, #3 - ble _0818F774 - movs r0, #0x64 - ldr r1, [sp, #0x10] - adds r4, r1, #0 - muls r4, r0, r4 - ldr r0, _0818F824 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x20 - add r2, sp, #0xc - bl SetMonData - ldr r0, _0818F828 - ldr r0, [r0] - ldr r1, [sp, #0x20] - add r1, r8 - ldr r2, _0818F82C - adds r0, r0, r2 - adds r0, r0, r1 - ldrh r0, [r0] - ldr r1, _0818F830 - ldr r1, [r1] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrb r2, [r0, #0xa] - lsls r2, r2, #1 - ldr r0, _0818F834 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0xc - bl SetMonData - add sp, #0x30 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0818F824: .4byte gUnknown_20243E8 -_0818F828: .4byte gUnknown_3005AF0 -_0818F82C: .4byte 0x00000D64 -_0818F830: .4byte gUnknown_203B958 -_0818F834: .4byte gUnknown_85ADBF4 - thumb_func_end CreateDomeOpponentMon - - thumb_func_start CreateDomeOpponentMons -CreateDomeOpponentMons: @ 0x0818F838 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - movs r6, #0 - bl ZeroEnemyPartyMons - mov r0, r8 - bl GetDomeTrainerMonCountInBits - adds r5, r0, #0 - bl Random - adds r4, r0, #0 - bl Random - lsls r4, r4, #0x10 - lsrs r7, r4, #0x10 - lsls r0, r0, #0x10 - orrs r7, r0 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #5 - bls _0818F8A2 - movs r4, #0 -_0818F87C: - movs r0, #1 - ands r0, r5 - cmp r0, #0 - beq _0818F898 - lsls r2, r4, #0x18 - lsrs r2, r2, #0x18 - adds r0, r6, #0 - mov r1, r8 - adds r3, r7, #0 - bl CreateDomeOpponentMon - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_0818F898: - asrs r5, r5, #1 - adds r4, #1 - cmp r4, #2 - ble _0818F87C - b _0818F8C8 -_0818F8A2: - movs r4, #2 -_0818F8A4: - movs r0, #4 - ands r0, r5 - cmp r0, #0 - beq _0818F8C0 - lsls r2, r4, #0x18 - lsrs r2, r2, #0x18 - adds r0, r6, #0 - mov r1, r8 - adds r3, r7, #0 - bl CreateDomeOpponentMon - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_0818F8C0: - lsls r5, r5, #1 - subs r4, #1 - cmp r4, #0 - bge _0818F8A4 -_0818F8C8: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CreateDomeOpponentMons - - thumb_func_start GetDomeTrainerMonCountInBits -GetDomeTrainerMonCountInBits: @ 0x0818F8D4 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r5, r4, #0 - bl Random - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0818F8FE - adds r0, r4, #0 - movs r1, #0 - bl sub_0818F918 - cmp r0, #0 - bne _0818F912 - adds r0, r4, #0 - movs r1, #1 - bl sub_0818FA14 - b _0818F912 -_0818F8FE: - adds r0, r5, #0 - movs r1, #0 - bl sub_0818FA14 - cmp r0, #0 - bne _0818F912 - adds r0, r5, #0 - movs r1, #1 - bl sub_0818F918 -_0818F912: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end GetDomeTrainerMonCountInBits - - thumb_func_start sub_0818F918 -sub_0818F918: @ 0x0818F918 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp, #0xc] - movs r0, #0 - mov sb, r0 - mov r1, r8 - lsls r1, r1, #2 - str r1, [sp, #0x18] -_0818F93A: - mov r2, sb - lsls r0, r2, #2 - mov r2, sp - adds r1, r2, r0 - movs r0, #0 - str r0, [r1] - movs r7, #0 - mov r0, sb - adds r0, #1 - str r0, [sp, #0x14] - adds r5, r1, #0 - mov r1, sb - lsls r1, r1, #1 - str r1, [sp, #0x10] -_0818F956: - movs r6, #0 - adds r2, r7, #1 - mov sl, r2 -_0818F95C: - ldr r0, _0818F98C - ldr r1, [r0] - ldr r2, [sp, #0x18] - adds r0, r1, r2 - ldr r2, _0818F990 - adds r0, r0, r2 - ldrh r0, [r0] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - ldr r2, _0818F994 - cmp r0, r2 - bne _0818F998 - mov r1, sb - lsls r0, r1, #0x18 - lsls r1, r7, #0x18 - lsrs r0, r0, #0x18 - lsrs r1, r1, #0x18 - bl GetFrontierBrainMonMove - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - b _0818F9BC - .align 2, 0 -_0818F98C: .4byte gUnknown_3005AF0 -_0818F990: .4byte 0x00000D24 -_0818F994: .4byte 0x000003FE -_0818F998: - mov r2, r8 - lsls r0, r2, #1 - add r0, r8 - lsls r0, r0, #1 - ldr r2, [sp, #0x10] - adds r0, r2, r0 - ldr r2, _0818FA08 - adds r1, r1, r2 - adds r1, r1, r0 - ldrh r0, [r1] - ldr r1, _0818FA0C - ldr r1, [r1] - lsls r0, r0, #4 - adds r0, r0, r1 - lsls r1, r7, #1 - adds r0, #2 - adds r0, r0, r1 - ldrh r4, [r0] -_0818F9BC: - movs r0, #0x64 - muls r0, r6, r0 - ldr r1, _0818FA10 - adds r0, r0, r1 - movs r1, #0xb - movs r2, #0 - bl GetMonData - adds r1, r0, #0 - adds r0, r4, #0 - movs r2, #0 - bl GetTypeEffectivenessPoints - ldr r1, [r5] - adds r1, r1, r0 - str r1, [r5] - adds r6, #1 - cmp r6, #2 - ble _0818F95C - mov r7, sl - cmp r7, #3 - ble _0818F956 - ldr r0, [sp, #0x14] - mov sb, r0 - cmp r0, #2 - ble _0818F93A - mov r0, sp - ldr r1, [sp, #0xc] - bl sub_0818FB10 - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0818FA08: .4byte 0x00000D64 -_0818FA0C: .4byte gUnknown_203B958 -_0818FA10: .4byte gUnknown_2024190 - thumb_func_end sub_0818F918 - - thumb_func_start sub_0818FA14 -sub_0818FA14: @ 0x0818FA14 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp, #0xc] - movs r0, #0 - mov sb, r0 - mov r1, r8 - lsls r1, r1, #2 - str r1, [sp, #0x18] -_0818FA36: - mov r2, sb - lsls r0, r2, #2 - mov r2, sp - adds r1, r2, r0 - movs r0, #0 - str r0, [r1] - movs r7, #0 - mov r0, sb - adds r0, #1 - str r0, [sp, #0x14] - adds r5, r1, #0 - mov r1, sb - lsls r1, r1, #1 - str r1, [sp, #0x10] -_0818FA52: - movs r6, #0 - adds r2, r7, #1 - mov sl, r2 -_0818FA58: - ldr r0, _0818FA88 - ldr r1, [r0] - ldr r2, [sp, #0x18] - adds r0, r1, r2 - ldr r2, _0818FA8C - adds r0, r0, r2 - ldrh r0, [r0] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - ldr r2, _0818FA90 - cmp r0, r2 - bne _0818FA94 - mov r1, sb - lsls r0, r1, #0x18 - lsls r1, r7, #0x18 - lsrs r0, r0, #0x18 - lsrs r1, r1, #0x18 - bl GetFrontierBrainMonMove - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - b _0818FAB8 - .align 2, 0 -_0818FA88: .4byte gUnknown_3005AF0 -_0818FA8C: .4byte 0x00000D24 -_0818FA90: .4byte 0x000003FE -_0818FA94: - mov r2, r8 - lsls r0, r2, #1 - add r0, r8 - lsls r0, r0, #1 - ldr r2, [sp, #0x10] - adds r0, r2, r0 - ldr r2, _0818FB04 - adds r1, r1, r2 - adds r1, r1, r0 - ldrh r0, [r1] - ldr r1, _0818FB08 - ldr r1, [r1] - lsls r0, r0, #4 - adds r0, r0, r1 - lsls r1, r7, #1 - adds r0, #2 - adds r0, r0, r1 - ldrh r4, [r0] -_0818FAB8: - movs r0, #0x64 - muls r0, r6, r0 - ldr r1, _0818FB0C - adds r0, r0, r1 - movs r1, #0xb - movs r2, #0 - bl GetMonData - adds r1, r0, #0 - adds r0, r4, #0 - movs r2, #1 - bl GetTypeEffectivenessPoints - ldr r1, [r5] - adds r1, r1, r0 - str r1, [r5] - adds r6, #1 - cmp r6, #2 - ble _0818FA58 - mov r7, sl - cmp r7, #3 - ble _0818FA52 - ldr r0, [sp, #0x14] - mov sb, r0 - cmp r0, #2 - ble _0818FA36 - mov r0, sp - ldr r1, [sp, #0xc] - bl sub_0818FB10 - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0818FB04: .4byte 0x00000D64 -_0818FB08: .4byte gUnknown_203B958 -_0818FB0C: .4byte gUnknown_2024190 - thumb_func_end sub_0818FA14 - - thumb_func_start sub_0818FB10 -sub_0818FB10: @ 0x0818FB10 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - mov sl, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0 - str r0, [sp, #0xc] - movs r3, #2 - add r0, sp, #8 -_0818FB2A: - str r3, [r0] - subs r0, #4 - subs r3, #1 - cmp r3, #0 - bge _0818FB2A - mov r3, sl - ldr r2, [r3] - ldr r0, [r3, #4] - cmp r2, r0 - bne _0818FB7C - ldr r0, [r3, #8] - cmp r2, r0 - bne _0818FB7C - cmp r1, #0 - beq _0818FC06 - movs r3, #0 - ldr r4, _0818FB78 -_0818FB4C: - str r3, [sp, #0x14] - bl Random - movs r1, #3 - ands r1, r0 - ldr r3, [sp, #0x14] - cmp r1, #3 - beq _0818FB72 - lsls r0, r1, #2 - adds r0, r0, r4 - ldr r1, [r0] - ldr r0, [sp, #0xc] - ands r0, r1 - cmp r0, #0 - bne _0818FB72 - ldr r0, [sp, #0xc] - orrs r0, r1 - str r0, [sp, #0xc] - adds r3, #1 -_0818FB72: - cmp r3, #2 - bne _0818FB4C - b _0818FC06 - .align 2, 0 -_0818FB78: .4byte gUnknown_82FACB4 -_0818FB7C: - movs r3, #0 - mov sb, sp - mov r8, sl -_0818FB82: - adds r2, r3, #1 - cmp r2, #2 - bgt _0818FBE0 - mov r6, r8 - mov r7, sb - lsls r0, r2, #2 - mov r1, sp - adds r5, r0, r1 - mov r1, sl - adds r4, r0, r1 -_0818FB96: - ldr r0, [r6] - ldr r1, [r4] - cmp r0, r1 - bge _0818FBAA - str r1, [r6] - str r0, [r4] - ldr r1, [r7] - ldr r0, [r5] - str r0, [r7] - str r1, [r5] -_0818FBAA: - ldr r1, [r6] - ldr r0, [r4] - cmp r1, r0 - bne _0818FBD6 - str r2, [sp, #0x10] - str r3, [sp, #0x14] - bl Random - movs r1, #1 - ands r1, r0 - ldr r2, [sp, #0x10] - ldr r3, [sp, #0x14] - cmp r1, #0 - beq _0818FBD6 - ldr r1, [r6] - ldr r0, [r4] - str r0, [r6] - str r1, [r4] - ldr r1, [r7] - ldr r0, [r5] - str r0, [r7] - str r1, [r5] -_0818FBD6: - adds r5, #4 - adds r4, #4 - adds r2, #1 - cmp r2, #2 - ble _0818FB96 -_0818FBE0: - movs r4, #4 - add sb, r4 - add r8, r4 - adds r3, #1 - cmp r3, #1 - ble _0818FB82 - ldr r2, _0818FC18 - mov r1, sp - movs r3, #1 -_0818FBF2: - ldm r1!, {r0} - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - ldr r4, [sp, #0xc] - orrs r4, r0 - str r4, [sp, #0xc] - subs r3, #1 - cmp r3, #0 - bge _0818FBF2 -_0818FC06: - ldr r0, [sp, #0xc] - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0818FC18: .4byte gUnknown_82FACB4 - thumb_func_end sub_0818FB10 - - thumb_func_start GetTypeEffectivenessPoints -GetTypeEffectivenessPoints: @ 0x0818FC1C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - adds r3, r0, #0 - adds r4, r1, #0 - str r2, [sp] - movs r6, #0 - movs r2, #0x14 - cmp r3, #0 - beq _0818FC4C - ldr r0, _0818FC50 - cmp r3, r0 - beq _0818FC4C - ldr r0, _0818FC54 - lsls r1, r3, #1 - adds r1, r1, r3 - lsls r1, r1, #2 - adds r3, r1, r0 - ldrb r0, [r3, #1] - cmp r0, #0 - bne _0818FC58 -_0818FC4C: - movs r0, #0 - b _0818FDB2 - .align 2, 0 -_0818FC50: .4byte 0x0000FFFF -_0818FC54: .4byte gUnknown_82ED220 -_0818FC58: - ldr r1, _0818FC84 - lsls r0, r4, #3 - subs r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #6] - mov sl, r1 - ldrb r1, [r0, #7] - mov sb, r1 - ldrb r0, [r0, #0x16] - mov r8, r0 - ldrb r3, [r3, #2] - str r3, [sp, #4] - cmp r0, #0x1a - bne _0818FC88 - cmp r3, #4 - bne _0818FC88 - ldr r0, [sp] - cmp r0, #1 - bne _0818FD06 - movs r2, #8 - b _0818FD00 - .align 2, 0 -_0818FC84: .4byte gUnknown_82F0D54 -_0818FC88: - ldr r0, _0818FD14 - adds r1, r6, r0 - ldrb r0, [r1] - ldr r7, _0818FD14 - cmp r0, #0xff - beq _0818FD00 - adds r4, r1, #0 -_0818FC96: - ldrb r0, [r4] - cmp r0, #0xfe - beq _0818FCF2 - ldrb r0, [r4] - ldr r1, [sp, #4] - cmp r0, r1 - bne _0818FCF2 - ldrb r0, [r4, #1] - adds r5, r6, #1 - cmp r0, sl - bne _0818FCC8 - adds r1, r6, #2 - mov r0, r8 - cmp r0, #0x19 - bne _0818FCBA - ldrb r0, [r4, #2] - cmp r0, #0x28 - bne _0818FCC8 -_0818FCBA: - adds r0, r1, r7 - ldrb r0, [r0] - muls r0, r2, r0 - movs r1, #0xa - bl __divsi3 - adds r2, r0, #0 -_0818FCC8: - adds r0, r5, r7 - ldrb r0, [r0] - cmp r0, sb - bne _0818FCF2 - cmp sl, sb - beq _0818FCF2 - adds r1, r6, #2 - mov r0, r8 - cmp r0, #0x19 - bne _0818FCE4 - adds r0, r1, r7 - ldrb r0, [r0] - cmp r0, #0x28 - bne _0818FCF2 -_0818FCE4: - adds r0, r1, r7 - ldrb r0, [r0] - muls r0, r2, r0 - movs r1, #0xa - bl __divsi3 - adds r2, r0, #0 -_0818FCF2: - adds r4, #3 - adds r6, #3 - ldr r1, _0818FD14 - adds r0, r6, r1 - ldrb r0, [r0] - cmp r0, #0xff - bne _0818FC96 -_0818FD00: - ldr r0, [sp] - cmp r0, #1 - beq _0818FD3C -_0818FD06: - ldr r1, [sp] - cmp r1, #1 - bgt _0818FD18 - cmp r1, #0 - beq _0818FD20 - b _0818FDB0 - .align 2, 0 -_0818FD14: .4byte gUnknown_82EBB38 -_0818FD18: - ldr r0, [sp] - cmp r0, #2 - beq _0818FD70 - b _0818FDB0 -_0818FD20: - cmp r2, #0xa - beq _0818FDA2 - cmp r2, #0xa - ble _0818FDA2 - cmp r2, #0x28 - beq _0818FDA6 - cmp r2, #0x28 - bgt _0818FD36 - cmp r2, #0x14 - beq _0818FD60 - b _0818FDA2 -_0818FD36: - cmp r2, #0x50 - bne _0818FDA2 - b _0818FD5C -_0818FD3C: - cmp r2, #0xa - beq _0818FD60 - cmp r2, #0xa - bgt _0818FD4E - cmp r2, #0 - beq _0818FD5C - cmp r2, #5 - beq _0818FDA6 - b _0818FDA2 -_0818FD4E: - cmp r2, #0x28 - beq _0818FD64 - cmp r2, #0x28 - ble _0818FDA2 - cmp r2, #0x50 - beq _0818FD6A - b _0818FDA2 -_0818FD5C: - movs r2, #8 - b _0818FDB0 -_0818FD60: - movs r2, #2 - b _0818FDB0 -_0818FD64: - movs r2, #2 - rsbs r2, r2, #0 - b _0818FDB0 -_0818FD6A: - movs r2, #4 - rsbs r2, r2, #0 - b _0818FDB0 -_0818FD70: - cmp r2, #0xa - beq _0818FDA2 - cmp r2, #0xa - bgt _0818FD82 - cmp r2, #0 - beq _0818FD96 - cmp r2, #5 - beq _0818FD9C - b _0818FDA2 -_0818FD82: - cmp r2, #0x28 - beq _0818FDAA - cmp r2, #0x28 - bgt _0818FD90 - cmp r2, #0x14 - beq _0818FDA6 - b _0818FDA2 -_0818FD90: - cmp r2, #0x50 - beq _0818FDAE - b _0818FDA2 -_0818FD96: - movs r2, #0x10 - rsbs r2, r2, #0 - b _0818FDB0 -_0818FD9C: - movs r2, #8 - rsbs r2, r2, #0 - b _0818FDB0 -_0818FDA2: - movs r2, #0 - b _0818FDB0 -_0818FDA6: - movs r2, #4 - b _0818FDB0 -_0818FDAA: - movs r2, #0xc - b _0818FDB0 -_0818FDAE: - movs r2, #0x14 -_0818FDB0: - adds r0, r2, #0 -_0818FDB2: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetTypeEffectivenessPoints - - thumb_func_start sub_0818FDC4 -sub_0818FDC4: @ 0x0818FDC4 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - cmp r0, #0x63 - bls _0818FDF6 - movs r1, #6 - cmp r0, #0x77 - bls _0818FDF6 - movs r1, #9 - cmp r0, #0x8b - bls _0818FDF6 - movs r1, #0xc - cmp r0, #0x9f - bls _0818FDF6 - movs r1, #0xf - cmp r0, #0xb3 - bls _0818FDF6 - movs r1, #0x12 - cmp r0, #0xc7 - bls _0818FDF6 - movs r1, #0x1f - cmp r0, #0xdb - bhi _0818FDF6 - movs r1, #0x15 -_0818FDF6: - adds r0, r1, #0 - pop {r1} - bx r1 - thumb_func_end sub_0818FDC4 - - thumb_func_start TournamentIdOfOpponent -TournamentIdOfOpponent: @ 0x0818FDFC - push {r4, r5, r6, r7, lr} - adds r3, r0, #0 - adds r2, r1, #0 - movs r5, #0 - ldr r0, _0818FE4C - ldr r1, [r0] - ldr r4, _0818FE50 - adds r1, r1, r4 - ldrh r1, [r1] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x16 - mov ip, r0 - ldr r6, _0818FE54 - cmp r1, r2 - beq _0818FE34 - mov r7, ip -_0818FE1C: - adds r5, #1 - cmp r5, #0xf - bgt _0818FE34 - ldr r0, [r7] - lsls r1, r5, #2 - adds r0, r0, r1 - adds r0, r0, r4 - ldrh r0, [r0] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - cmp r0, r2 - bne _0818FE1C -_0818FE34: - cmp r3, #0 - beq _0818FEC8 - cmp r3, #3 - bne _0818FE58 - lsls r0, r5, #2 - adds r1, r0, #3 - adds r1, r1, r6 - ldrb r1, [r1] - adds r4, r1, #0 - adds r4, #8 - b _0818FE62 - .align 2, 0 -_0818FE4C: .4byte gUnknown_3005AF0 -_0818FE50: .4byte 0x00000D24 -_0818FE54: .4byte gUnknown_85D5B88 -_0818FE58: - lsls r0, r5, #2 - adds r1, r3, r0 - adds r1, r1, r6 - ldrb r1, [r1] - adds r4, r1, #4 -_0818FE62: - adds r0, r3, r0 - adds r0, r0, r6 - ldrb r2, [r0] - cmp r2, r4 - bge _0818FEB2 - ldr r1, _0818FE88 - adds r0, r2, r1 - ldrb r3, [r0] - adds r6, r1, #0 - cmp r3, r5 - beq _0818FE90 - mov r1, ip - ldr r0, [r1] - lsls r1, r3, #2 - adds r0, r0, r1 - ldr r3, _0818FE8C - adds r0, r0, r3 - b _0818FEAA - .align 2, 0 -_0818FE88: .4byte gUnknown_85D5BC8 -_0818FE8C: .4byte 0x00000D25 -_0818FE90: - adds r2, #1 - cmp r2, r4 - bge _0818FEB2 - adds r0, r2, r6 - ldrb r1, [r0] - cmp r1, r5 - beq _0818FE90 - mov r3, ip - ldr r0, [r3] - lsls r1, r1, #2 - adds r0, r0, r1 - ldr r1, _0818FEC0 - adds r0, r0, r1 -_0818FEAA: - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - blt _0818FE90 -_0818FEB2: - cmp r2, r4 - beq _0818FEE2 - ldr r0, _0818FEC4 - adds r0, r2, r0 - ldrb r0, [r0] - b _0818FEEE - .align 2, 0 -_0818FEC0: .4byte 0x00000D25 -_0818FEC4: .4byte gUnknown_85D5BC8 -_0818FEC8: - mov r3, ip - ldr r1, [r3] - lsls r0, r5, #2 - adds r0, r0, r6 - ldrb r2, [r0] - lsls r0, r2, #2 - adds r1, r1, r0 - ldr r0, _0818FEE8 - adds r1, r1, r0 - ldrb r0, [r1] - lsls r0, r0, #0x1d - cmp r0, #0 - bge _0818FEEC -_0818FEE2: - movs r0, #0xff - b _0818FEEE - .align 2, 0 -_0818FEE8: .4byte 0x00000D25 -_0818FEEC: - adds r0, r2, #0 -_0818FEEE: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end TournamentIdOfOpponent - - thumb_func_start SetDomeOpponentId -SetDomeOpponentId: @ 0x0818FEF4 - push {lr} - bl TrainerIdOfPlayerOpponent - ldr r1, _0818FF04 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0818FF04: .4byte gUnknown_203886A - thumb_func_end SetDomeOpponentId - - thumb_func_start TrainerIdOfPlayerOpponent -TrainerIdOfPlayerOpponent: @ 0x0818FF08 - push {r4, lr} - ldr r0, _0818FF30 - ldr r4, [r0] - ldr r1, _0818FF34 - adds r0, r4, r1 - ldrh r0, [r0] - ldr r1, _0818FF38 - bl TournamentIdOfOpponent - lsls r0, r0, #2 - adds r4, r4, r0 - ldr r0, _0818FF3C - adds r4, r4, r0 - ldrh r0, [r4] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0818FF30: .4byte gUnknown_3005AF0 -_0818FF34: .4byte 0x00000CB2 -_0818FF38: .4byte 0x000003FF -_0818FF3C: .4byte 0x00000D24 - thumb_func_end TrainerIdOfPlayerOpponent - - thumb_func_start SetDomeOpponentGraphicsId -SetDomeOpponentGraphicsId: @ 0x0818FF40 - push {lr} - ldr r0, _0818FF50 - ldrh r0, [r0] - movs r1, #0 - bl sub_08162528 - pop {r0} - bx r0 - .align 2, 0 -_0818FF50: .4byte gUnknown_203886A - thumb_func_end SetDomeOpponentGraphicsId - - thumb_func_start sub_0818FF54 -sub_0818FF54: @ 0x0818FF54 - push {r4, lr} - ldr r4, _0818FF88 - ldr r0, [r4] - ldr r1, _0818FF8C - ldrh r1, [r1] - ldr r2, _0818FF90 - adds r0, r0, r2 - strb r1, [r0] - movs r0, #0x80 - lsls r0, r0, #7 - movs r1, #0 - bl VarSet - ldr r1, [r4] - ldr r0, _0818FF94 - adds r1, r1, r0 - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - bl sub_081A482C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0818FF88: .4byte gUnknown_3005AF0 -_0818FF8C: .4byte gUnknown_2037282 -_0818FF90: .4byte 0x00000CA8 -_0818FF94: .4byte 0x00000CA9 - thumb_func_end sub_0818FF54 - - thumb_func_start UpdateDomeStreaks -UpdateDomeStreaks: @ 0x0818FF98 - push {r4, r5, lr} - ldr r5, _0818FFF8 - ldr r0, [r5] - ldr r1, _0818FFFC - adds r0, r0, r1 - ldrb r4, [r0] - lsls r4, r4, #0x1e - lsrs r4, r4, #0x1e - ldr r0, _08190000 - bl VarGet - lsls r0, r0, #0x18 - ldr r1, [r5] - lsls r4, r4, #1 - lsrs r0, r0, #0x16 - adds r4, r4, r0 - ldr r3, _08190004 - adds r1, r1, r3 - adds r1, r1, r4 - ldrh r0, [r1] - ldr r2, _08190008 - cmp r0, r2 - bhi _0818FFCA - adds r0, #1 - strh r0, [r1] -_0818FFCA: - ldr r0, [r5] - ldr r1, _0819000C - adds r0, r0, r1 - adds r1, r0, r4 - ldrh r0, [r1] - cmp r0, r2 - bhi _0818FFDC - adds r0, #1 - strh r0, [r1] -_0818FFDC: - ldr r0, [r5] - adds r1, r0, r3 - adds r1, r1, r4 - ldr r2, _08190010 - adds r0, r0, r2 - adds r0, r0, r4 - ldrh r1, [r1] - ldrh r2, [r0] - cmp r1, r2 - bls _0818FFF2 - strh r1, [r0] -_0818FFF2: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0818FFF8: .4byte gUnknown_3005AF0 -_0818FFFC: .4byte 0x00000CA9 -_08190000: .4byte 0x000040CE -_08190004: .4byte 0x00000D0C -_08190008: .4byte 0x000003E6 -_0819000C: .4byte 0x00000D1C -_08190010: .4byte 0x00000D14 - thumb_func_end UpdateDomeStreaks - - thumb_func_start ShowDomeOpponentInfo -ShowDomeOpponentInfo: @ 0x08190014 - push {r4, r5, lr} - ldr r0, _08190050 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08190054 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - adds r4, r4, r1 - movs r5, #0 - strh r5, [r4, #8] - bl TrainerIdOfPlayerOpponent - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_08194F58 - strh r0, [r4, #0xa] - strh r5, [r4, #0xc] - strh r5, [r4, #0xe] - ldr r0, _08190058 - bl SetMainCallback2 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08190050: .4byte Task_ShowOpponentInfo -_08190054: .4byte gUnknown_3005B60 -_08190058: .4byte CB2_BattleDome - thumb_func_end ShowDomeOpponentInfo - - thumb_func_start Task_ShowOpponentInfo -Task_ShowOpponentInfo: @ 0x0819005C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - ldr r1, _08190098 - lsls r0, r0, #2 - add r0, sl - lsls r0, r0, #3 - adds r6, r0, r1 - movs r0, #0xa - ldrsh r5, [r6, r0] - movs r2, #0xc - ldrsh r1, [r6, r2] - mov sb, r1 - movs r0, #0xe - ldrsh r7, [r6, r0] - movs r1, #8 - ldrsh r4, [r6, r1] - cmp r4, #1 - beq _08190164 - cmp r4, #1 - bgt _0819009C - cmp r4, #0 - beq _081900AA - b _081903CE - .align 2, 0 -_08190098: .4byte gUnknown_3005B60 -_0819009C: - cmp r4, #2 - bne _081900A2 - b _081901CC -_081900A2: - cmp r4, #3 - bne _081900A8 - b _08190290 -_081900A8: - b _081903CE -_081900AA: - movs r0, #0 - bl SetHBlankCallback - movs r0, #0 - bl SetVBlankCallback - movs r0, #1 - bl EnableInterrupts - str r4, [sp, #4] - movs r1, #0xc0 - lsls r1, r1, #0x13 - ldr r2, _0819010C - add r0, sp, #4 - bl CpuSet - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _08190110 - movs r0, #0 - movs r2, #4 - bl InitBgsFromTemplates - ldr r0, _08190114 - bl InitWindows - bl sub_08004480 - ldr r0, _08190118 - strh r4, [r0] - ldr r0, _0819011C - strh r4, [r0] - ldr r0, _08190120 - strh r4, [r0] - ldr r0, _08190124 - strh r4, [r0] - ldr r0, _08190128 - strh r4, [r0] - ldr r0, _0819012C - strh r4, [r0] - mov r2, sb - cmp r2, #2 - bne _08190138 - ldr r0, _08190130 - strh r4, [r0] - ldr r0, _08190134 - strh r4, [r0] - b _08190142 - .align 2, 0 -_0819010C: .4byte 0x05006000 -_08190110: .4byte gUnknown_85D5928 -_08190114: .4byte gUnknown_85D5958 -_08190118: .4byte gUnknown_2022AC8 -_0819011C: .4byte gUnknown_2022ACA -_08190120: .4byte gUnknown_2022ACC -_08190124: .4byte gUnknown_2022ACE -_08190128: .4byte gUnknown_2022AD4 -_0819012C: .4byte gUnknown_2022AD6 -_08190130: .4byte gUnknown_2022AD0 -_08190134: .4byte gUnknown_2022AD2 -_08190138: - ldr r0, _08190158 - strh r4, [r0] - ldr r1, _0819015C - movs r0, #0xa0 - strh r0, [r1] -_08190142: - ldr r0, _08190160 - mov r2, sl - lsls r1, r2, #2 - add r1, sl - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _081903CE - .align 2, 0 -_08190158: .4byte gUnknown_2022AD0 -_0819015C: .4byte gUnknown_2022AD2 -_08190160: .4byte gUnknown_3005B60 -_08190164: - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - movs r0, #0x4c - movs r1, #0 - bl SetGpuReg - movs r0, #0x40 - movs r1, #0 - bl SetGpuReg - movs r0, #0x44 - movs r1, #0 - bl SetGpuReg - movs r0, #0x42 - movs r1, #0 - bl SetGpuReg - movs r0, #0x46 - movs r1, #0 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0 - bl SetGpuReg - movs r0, #0x4a - movs r1, #0x3f - bl SetGpuReg - bl ResetPaletteFade - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r1, _081901C8 - movs r0, #4 - strb r0, [r1] - b _0819025E - .align 2, 0 -_081901C8: .4byte gUnknown_30030BC -_081901CC: - ldr r1, _08190268 - movs r5, #0x80 - lsls r5, r5, #6 - movs r7, #0 - str r7, [sp] - movs r0, #2 - adds r2, r5, #0 - movs r3, #0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r1, _0819026C - movs r4, #1 - str r4, [sp] - movs r0, #2 - adds r2, r5, #0 - movs r3, #0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r1, _08190270 - movs r2, #0x80 - lsls r2, r2, #4 - str r4, [sp] - movs r0, #3 - movs r3, #0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r0, _08190274 - bl LoadCompressedSpriteSheet - ldr r0, _08190278 - movs r4, #0x80 - lsls r4, r4, #2 - movs r1, #0 - adds r2, r4, #0 - bl LoadCompressedPalette - ldr r0, _0819027C - movs r1, #0x80 - lsls r1, r1, #1 - adds r2, r4, #0 - bl LoadCompressedPalette - ldr r0, _08190280 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadCompressedPalette - mov r0, sb - cmp r0, #2 - bne _0819023A - ldr r0, _08190284 - movs r1, #0x50 - movs r2, #0x20 - bl LoadCompressedPalette -_0819023A: - str r7, [sp, #8] - add r0, sp, #8 - ldr r1, _08190288 - ldr r2, _0819028C - bl CpuSet - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg -_0819025E: - ldrh r0, [r6, #8] - adds r0, #1 - strh r0, [r6, #8] - b _081903CE - .align 2, 0 -_08190268: .4byte gUnknown_8D83DF4 -_0819026C: .4byte gUnknown_8D84A08 -_08190270: .4byte gUnknown_8D84F98 -_08190274: .4byte gUnknown_85D59FC -_08190278: .4byte gUnknown_8D8533C -_0819027C: .4byte gUnknown_8D85428 -_08190280: .4byte gUnknown_8D855E4 -_08190284: .4byte gUnknown_8D854AC -_08190288: .4byte gUnknown_20377B4 -_0819028C: .4byte 0x05000100 -_08190290: - ldr r0, _081902F4 - bl SetVBlankCallback - ldr r4, _081902F8 - movs r0, #0x14 - bl AllocZeroed - str r0, [r4] - movs r6, #0 - lsls r5, r5, #0x18 - movs r2, #0xff -_081902A6: - ldr r1, [r4] - adds r1, r1, r6 - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] - adds r6, #1 - cmp r6, #0xf - ble _081902A6 - bl LoadMonIconPalettes - ldr r0, _081902FC - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _08190300 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #8] - strh r1, [r0, #0xc] - mov r1, sb - strh r1, [r0, #0xe] - strh r7, [r0, #0x10] - mov r2, sb - cmp r2, #2 - bne _08190304 - lsrs r1, r5, #0x18 - movs r0, #0 - bl DisplayMatchInfoOnCard - ldr r0, _081902F8 - ldr r1, [r0] - movs r0, #1 - strb r0, [r1, #0x10] - b _0819030C - .align 2, 0 -_081902F4: .4byte VblankCb0_BattleDome -_081902F8: .4byte gUnknown_203CA44 -_081902FC: .4byte sub_08190930 -_08190300: .4byte gUnknown_3005B60 -_08190304: - lsrs r1, r5, #0x18 - movs r0, #0 - bl DisplayTrainerInfoOnCard -_0819030C: - movs r1, #0xfa - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - mov r0, sb - cmp r0, #0 - beq _081903C8 - ldr r5, _081903E0 - adds r0, r5, #0 - movs r1, #0x78 - movs r2, #4 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r4, r7, #4 - adds r4, r4, r7 - lsls r4, r4, #2 - ldr r1, _081903E4 - mov r8, r1 - add r4, r8 - adds r0, r4, #0 - movs r1, #0 - bl StartSpriteAnim - strh r6, [r4, #0x2e] - adds r0, r5, #0 - movs r1, #0x78 - movs r2, #0x9c - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r4, r7, #4 - adds r4, r4, r7 - lsls r4, r4, #2 - add r4, r8 - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAnim - strh r6, [r4, #0x2e] - ldr r5, _081903E8 - adds r0, r5, #0 - movs r1, #6 - movs r2, #0x50 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - mov r2, r8 - adds r4, r0, r2 - adds r0, r4, #0 - movs r1, #0 - bl StartSpriteAnim - strh r6, [r4, #0x2e] - movs r0, #0 - strh r0, [r4, #0x30] - mov r1, sb - cmp r1, #1 - bne _081903A2 - adds r0, r4, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_081903A2: - adds r0, r5, #0 - movs r1, #0xea - movs r2, #0x50 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r4, r7, #4 - adds r4, r4, r7 - lsls r4, r4, #2 - add r4, r8 - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAnim - strh r6, [r4, #0x2e] - movs r0, #1 - strh r0, [r4, #0x30] -_081903C8: - mov r0, sl - bl DestroyTask -_081903CE: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081903E0: .4byte gUnknown_85D5AE4 -_081903E4: .4byte gUnknown_20205AC -_081903E8: .4byte gUnknown_85D5ACC - thumb_func_end Task_ShowOpponentInfo - - thumb_func_start SpriteCb_TrainerIconCardScrollUp -SpriteCb_TrainerIconCardScrollUp: @ 0x081903EC - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x22] - adds r1, r0, #4 - strh r1, [r2, #0x22] - movs r3, #0x2e - ldrsh r0, [r2, r3] - cmp r0, #0 - beq _08190430 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x20 - rsbs r1, r1, #0 - cmp r0, r1 - blt _08190418 - adds r3, r2, #0 - adds r3, #0x3e - ldrb r1, [r3] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3] -_08190418: - ldrh r0, [r2, #0x30] - adds r0, #1 - strh r0, [r2, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x28 - bne _0819044C - ldr r0, _0819042C - str r0, [r2, #0x1c] - b _0819044C - .align 2, 0 -_0819042C: .4byte sub_08007140 -_08190430: - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xbf - ble _0819044C - ldr r0, _08190450 - ldr r0, [r0] - movs r3, #0x32 - ldrsh r1, [r2, r3] - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] - ldrh r0, [r2, #0x34] - bl FreeAndDestroyTrainerPicSprite -_0819044C: - pop {r0} - bx r0 - .align 2, 0 -_08190450: .4byte gUnknown_203CA44 - thumb_func_end SpriteCb_TrainerIconCardScrollUp - - thumb_func_start SpriteCb_TrainerIconCardScrollDown -SpriteCb_TrainerIconCardScrollDown: @ 0x08190454 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x22] - subs r1, r0, #4 - strh r1, [r2, #0x22] - movs r3, #0x2e - ldrsh r0, [r2, r3] - cmp r0, #0 - beq _08190494 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xc0 - bgt _0819047C - adds r3, r2, #0 - adds r3, #0x3e - ldrb r1, [r3] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3] -_0819047C: - ldrh r0, [r2, #0x30] - adds r0, #1 - strh r0, [r2, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x28 - bne _081904B4 - ldr r0, _08190490 - str r0, [r2, #0x1c] - b _081904B4 - .align 2, 0 -_08190490: .4byte sub_08007140 -_08190494: - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x20 - rsbs r1, r1, #0 - cmp r0, r1 - bgt _081904B4 - ldr r0, _081904B8 - ldr r0, [r0] - movs r3, #0x32 - ldrsh r1, [r2, r3] - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] - ldrh r0, [r2, #0x34] - bl FreeAndDestroyTrainerPicSprite -_081904B4: - pop {r0} - bx r0 - .align 2, 0 -_081904B8: .4byte gUnknown_203CA44 - thumb_func_end SpriteCb_TrainerIconCardScrollDown - - thumb_func_start SpriteCb_TrainerIconCardScrollLeft -SpriteCb_TrainerIconCardScrollLeft: @ 0x081904BC - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x20] - adds r1, r0, #4 - strh r1, [r2, #0x20] - movs r3, #0x2e - ldrsh r0, [r2, r3] - cmp r0, #0 - beq _08190500 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x20 - rsbs r1, r1, #0 - cmp r0, r1 - blt _081904E8 - adds r3, r2, #0 - adds r3, #0x3e - ldrb r1, [r3] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3] -_081904E8: - ldrh r0, [r2, #0x30] - adds r0, #1 - strh r0, [r2, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x40 - bne _0819051C - ldr r0, _081904FC - str r0, [r2, #0x1c] - b _0819051C - .align 2, 0 -_081904FC: .4byte sub_08007140 -_08190500: - lsls r1, r1, #0x10 - ldr r0, _08190520 - cmp r1, r0 - ble _0819051C - ldr r0, _08190524 - ldr r0, [r0] - movs r3, #0x32 - ldrsh r1, [r2, r3] - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] - ldrh r0, [r2, #0x34] - bl FreeAndDestroyTrainerPicSprite -_0819051C: - pop {r0} - bx r0 - .align 2, 0 -_08190520: .4byte 0x010F0000 -_08190524: .4byte gUnknown_203CA44 - thumb_func_end SpriteCb_TrainerIconCardScrollLeft - - thumb_func_start SpriteCb_TrainerIconCardScrollRight -SpriteCb_TrainerIconCardScrollRight: @ 0x08190528 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x20] - subs r1, r0, #4 - strh r1, [r2, #0x20] - movs r3, #0x2e - ldrsh r0, [r2, r3] - cmp r0, #0 - beq _0819056C - lsls r1, r1, #0x10 - movs r0, #0x88 - lsls r0, r0, #0x11 - cmp r1, r0 - bgt _08190552 - adds r3, r2, #0 - adds r3, #0x3e - ldrb r1, [r3] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3] -_08190552: - ldrh r0, [r2, #0x30] - adds r0, #1 - strh r0, [r2, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x40 - bne _0819058C - ldr r0, _08190568 - str r0, [r2, #0x1c] - b _0819058C - .align 2, 0 -_08190568: .4byte sub_08007140 -_0819056C: - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x20 - rsbs r1, r1, #0 - cmp r0, r1 - bgt _0819058C - ldr r0, _08190590 - ldr r0, [r0] - movs r3, #0x32 - ldrsh r1, [r2, r3] - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] - ldrh r0, [r2, #0x34] - bl FreeAndDestroyTrainerPicSprite -_0819058C: - pop {r0} - bx r0 - .align 2, 0 -_08190590: .4byte gUnknown_203CA44 - thumb_func_end SpriteCb_TrainerIconCardScrollRight - - thumb_func_start SpriteCb_MonIcon -SpriteCb_MonIcon: @ 0x08190594 - push {lr} - adds r1, r0, #0 - movs r2, #0x34 - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _081905A6 - adds r0, r1, #0 - bl UpdateMonIconFrame -_081905A6: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SpriteCb_MonIcon - - thumb_func_start SpriteCb_MonIconCardScrollUp -SpriteCb_MonIconCardScrollUp: @ 0x081905AC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x34 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _081905BE - adds r0, r4, #0 - bl UpdateMonIconFrame -_081905BE: - ldrh r0, [r4, #0x22] - adds r1, r0, #4 - strh r1, [r4, #0x22] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _08190600 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x10 - rsbs r1, r1, #0 - cmp r0, r1 - blt _081905E6 - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_081905E6: - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x28 - bne _0819061C - ldr r0, _081905FC - str r0, [r4, #0x1c] - b _0819061C - .align 2, 0 -_081905FC: .4byte SpriteCb_MonIcon -_08190600: - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xaf - ble _0819061C - ldr r0, _08190624 - ldr r0, [r0] - movs r2, #0x32 - ldrsh r1, [r4, r2] - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] - adds r0, r4, #0 - bl sub_080D2798 -_0819061C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08190624: .4byte gUnknown_203CA44 - thumb_func_end SpriteCb_MonIconCardScrollUp - - thumb_func_start SpriteCb_MonIconCardScrollDown -SpriteCb_MonIconCardScrollDown: @ 0x08190628 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x34 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0819063A - adds r0, r4, #0 - bl UpdateMonIconFrame -_0819063A: - ldrh r0, [r4, #0x22] - subs r1, r0, #4 - strh r1, [r4, #0x22] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _08190678 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xb0 - bgt _0819065E - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_0819065E: - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x28 - bne _08190698 - ldr r0, _08190674 - str r0, [r4, #0x1c] - b _08190698 - .align 2, 0 -_08190674: .4byte SpriteCb_MonIcon -_08190678: - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x10 - rsbs r1, r1, #0 - cmp r0, r1 - bgt _08190698 - ldr r0, _081906A0 - ldr r0, [r0] - movs r2, #0x32 - ldrsh r1, [r4, r2] - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] - adds r0, r4, #0 - bl sub_080D2798 -_08190698: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081906A0: .4byte gUnknown_203CA44 - thumb_func_end SpriteCb_MonIconCardScrollDown - - thumb_func_start SpriteCb_MonIconCardScrollLeft -SpriteCb_MonIconCardScrollLeft: @ 0x081906A4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x34 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _081906B6 - adds r0, r4, #0 - bl UpdateMonIconFrame -_081906B6: - ldrh r0, [r4, #0x20] - adds r1, r0, #4 - strh r1, [r4, #0x20] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _081906F8 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x10 - rsbs r1, r1, #0 - cmp r0, r1 - blt _081906DE - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_081906DE: - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x40 - bne _08190714 - ldr r0, _081906F4 - str r0, [r4, #0x1c] - b _08190714 - .align 2, 0 -_081906F4: .4byte SpriteCb_MonIcon -_081906F8: - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xff - ble _08190714 - ldr r0, _0819071C - ldr r0, [r0] - movs r2, #0x32 - ldrsh r1, [r4, r2] - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] - adds r0, r4, #0 - bl sub_080D2798 -_08190714: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0819071C: .4byte gUnknown_203CA44 - thumb_func_end SpriteCb_MonIconCardScrollLeft - - thumb_func_start SpriteCb_MonIconCardScrollRight -SpriteCb_MonIconCardScrollRight: @ 0x08190720 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x34 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08190732 - adds r0, r4, #0 - bl UpdateMonIconFrame -_08190732: - ldrh r0, [r4, #0x20] - subs r1, r0, #4 - strh r1, [r4, #0x20] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _08190770 - lsls r1, r1, #0x10 - movs r0, #0x80 - lsls r0, r0, #0x11 - cmp r1, r0 - bgt _08190758 - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_08190758: - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x40 - bne _08190790 - ldr r0, _0819076C - str r0, [r4, #0x1c] - b _08190790 - .align 2, 0 -_0819076C: .4byte SpriteCb_MonIcon -_08190770: - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x10 - rsbs r1, r1, #0 - cmp r0, r1 - bgt _08190790 - ldr r0, _08190798 - ldr r0, [r0] - movs r2, #0x32 - ldrsh r1, [r4, r2] - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] - adds r0, r4, #0 - bl sub_080D2798 -_08190790: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08190798: .4byte gUnknown_203CA44 - thumb_func_end SpriteCb_MonIconCardScrollRight - - thumb_func_start sub_0819079C -sub_0819079C: @ 0x0819079C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r3, r0, #0 - movs r0, #0x2e - ldrsh r6, [r3, r0] - ldr r2, _08190840 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r4, r0, r2 - movs r7, #0x10 - ldrsh r1, [r4, r7] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r1, #0xa - ldrsh r0, [r0, r1] - ldr r1, _08190844 - adds r0, r0, r1 - ldrb r0, [r0] - mov sl, r0 - ldr r1, _08190848 - ldr r5, [r1] - ldr r7, _0819084C - adds r0, r5, r7 - ldrh r0, [r0] - mov ip, r0 - movs r7, #0xe - ldrsh r0, [r4, r7] - mov sb, r2 - mov r8, r1 - cmp r0, #1 - bne _08190868 - movs r1, #0x30 - ldrsh r0, [r3, r1] - cmp r0, #0 - beq _08190858 - mov r2, sl - lsls r0, r2, #2 - adds r1, r5, r0 - ldr r7, _08190850 - adds r1, r1, r7 - ldrb r2, [r1] - lsls r1, r2, #0x1d - adds r4, r0, #0 - cmp r1, #0 - bge _08190812 - ldr r0, _08190854 - ldr r0, [r0] - ldrb r1, [r0, #0x10] - subs r1, #1 - lsls r0, r2, #0x1b - lsrs r0, r0, #0x1e - cmp r1, r0 - blt _0819088E -_08190812: - mov r1, r8 - ldr r0, [r1] - adds r0, r0, r4 - ldr r2, _08190850 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - blt _08190830 - ldr r0, _08190854 - ldr r0, [r0] - ldrb r0, [r0, #0x10] - subs r0, #1 - cmp r0, ip - blt _0819088E -_08190830: - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - add r0, sb - movs r7, #8 - ldrsh r0, [r0, r7] - b _081908A8 - .align 2, 0 -_08190840: .4byte gUnknown_3005B60 -_08190844: .4byte gUnknown_85D5AFC -_08190848: .4byte gUnknown_3005AF0 -_0819084C: .4byte 0x00000CB2 -_08190850: .4byte 0x00000D25 -_08190854: .4byte gUnknown_203CA44 -_08190858: - ldr r0, _08190864 - ldr r0, [r0] - ldrb r0, [r0, #0x10] - cmp r0, #0 - bne _0819088E - b _081908A4 - .align 2, 0 -_08190864: .4byte gUnknown_203CA44 -_08190868: - movs r2, #0x30 - ldrsh r0, [r3, r2] - cmp r0, #0 - beq _08190884 - ldr r0, _08190880 - ldr r0, [r0] - ldrb r0, [r0, #0x10] - cmp r0, #1 - bls _0819088E - movs r7, #8 - ldrsh r0, [r4, r7] - b _081908A8 - .align 2, 0 -_08190880: .4byte gUnknown_203CA44 -_08190884: - ldr r0, _081908A0 - ldr r0, [r0] - ldrb r0, [r0, #0x10] - cmp r0, #0 - beq _081908A4 -_0819088E: - adds r2, r3, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - b _081908B8 - .align 2, 0 -_081908A0: .4byte gUnknown_203CA44 -_081908A4: - movs r1, #8 - ldrsh r0, [r4, r1] -_081908A8: - cmp r0, #2 - bne _081908B8 - adds r0, r3, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_081908B8: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0819079C - - thumb_func_start sub_081908C8 -sub_081908C8: @ 0x081908C8 - push {lr} - adds r3, r0, #0 - movs r0, #0x2e - ldrsh r1, [r3, r0] - ldr r2, _081908F0 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r1, r0, r2 - movs r2, #0xe - ldrsh r0, [r1, r2] - cmp r0, #1 - bne _081908F8 - ldr r0, _081908F4 - ldr r0, [r0] - ldrb r0, [r0, #0x10] - cmp r0, #0 - bne _08190902 - b _0819091C - .align 2, 0 -_081908F0: .4byte gUnknown_3005B60 -_081908F4: .4byte gUnknown_203CA44 -_081908F8: - ldr r0, _08190918 - ldr r0, [r0] - ldrb r0, [r0, #0x10] - cmp r0, #1 - beq _0819091C -_08190902: - movs r2, #8 - ldrsh r0, [r1, r2] - cmp r0, #2 - bne _0819092A - adds r0, r3, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - b _0819092A - .align 2, 0 -_08190918: .4byte gUnknown_203CA44 -_0819091C: - adds r2, r3, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_0819092A: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081908C8 - - thumb_func_start sub_08190930 -sub_08190930: @ 0x08190930 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r1, _0819096C - lsls r0, r0, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r3, #0xe - ldrsh r2, [r0, r3] - mov sb, r2 - movs r4, #0x10 - ldrsh r7, [r0, r4] - movs r5, #8 - ldrsh r0, [r0, r5] - cmp r0, #8 - bls _08190962 - bl _08191E5E -_08190962: - lsls r0, r0, #2 - ldr r1, _08190970 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0819096C: .4byte gUnknown_3005B60 -_08190970: .4byte _08190974 -_08190974: @ jump table - .4byte _08190998 @ case 0 - .4byte _081909D8 @ case 1 - .4byte _08190A04 @ case 2 - .4byte _08190AA4 @ case 3 - .4byte _08191C54 @ case 4 - .4byte _08191C94 @ case 5 - .4byte _08191CD4 @ case 6 - .4byte _08191D18 @ case 7 - .4byte _08191D62 @ case 8 -_08190998: - ldr r0, _081909D0 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _081909AC - bl _08191E5E -_081909AC: - movs r0, #1 - rsbs r0, r0, #0 - str r1, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r1, _081909D4 - mov r6, r8 - lsls r0, r6, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #1 - strh r1, [r0, #8] - bl _08191E5E - .align 2, 0 -_081909D0: .4byte gUnknown_2037C74 -_081909D4: .4byte gUnknown_3005B60 -_081909D8: - ldr r0, _081909FC - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _081909E8 - bl _08191E5E -_081909E8: - mov r1, r8 - lsls r0, r1, #2 - add r0, r8 - lsls r0, r0, #3 - ldr r2, _08190A00 - adds r0, r0, r2 - movs r1, #2 - strh r1, [r0, #8] - bl _08191E5E - .align 2, 0 -_081909FC: .4byte gUnknown_2037C74 -_08190A00: .4byte gUnknown_3005B60 -_08190A04: - mov r0, r8 - bl sub_08191E78 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #8 - bgt _08190A1A - cmp r6, #1 - bge _08190A4C - bl _08191E5E -_08190A1A: - cmp r6, #9 - beq _08190A22 - bl _08191E5E -_08190A22: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _08190A48 - mov r3, r8 - lsls r0, r3, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #8 - strh r1, [r0, #8] - bl _08191E5E - .align 2, 0 -_08190A48: .4byte gUnknown_3005B60 -_08190A4C: - ldr r1, _08190AA0 - mov r4, r8 - lsls r2, r4, #2 - adds r0, r2, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r6, [r0, #0x12] - movs r5, #0xc - ldrsh r0, [r0, r5] - movs r1, #0 - mov sb, r2 - cmp r0, #0 - beq _08190A68 - movs r1, #9 -_08190A68: - adds r6, r1, #0 - adds r0, r6, #0 - adds r0, #9 - cmp r6, r0 - bge _08190A8E - adds r5, r0, #0 -_08190A74: - lsls r4, r6, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #2 - bl CopyWindowToVram - adds r0, r4, #0 - movs r1, #0 - bl FillWindowPixelBuffer - adds r6, #1 - cmp r6, r5 - blt _08190A74 -_08190A8E: - ldr r0, _08190AA0 - mov r1, sb - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #3 - strh r0, [r1, #8] - bl _08191E5E - .align 2, 0 -_08190AA0: .4byte gUnknown_3005B60 -_08190AA4: - mov r6, r8 - lsls r1, r6, #2 - adds r0, r1, r6 - lsls r0, r0, #3 - ldr r2, _08190ACC - adds r0, r0, r2 - movs r3, #0x12 - ldrsh r6, [r0, r3] - subs r0, r6, #1 - mov sb, r1 - cmp r0, #7 - bls _08190AC0 - bl _08191E5E -_08190AC0: - lsls r0, r0, #2 - ldr r1, _08190AD0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08190ACC: .4byte gUnknown_3005B60 -_08190AD0: .4byte _08190AD4 -_08190AD4: @ jump table - .4byte _08190AF4 @ case 0 - .4byte _08190E90 @ case 1 - .4byte _08191228 @ case 2 - .4byte _08191764 @ case 3 - .4byte _08190AF4 @ case 4 - .4byte _08190E90 @ case 5 - .4byte _081914D8 @ case 6 - .4byte _081919C4 @ case 7 -_08190AF4: - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - ldr r4, _08190B1C - adds r0, r0, r4 - movs r5, #0xc - ldrsh r2, [r0, r5] - cmp r2, #0 - beq _08190B30 - ldr r0, _08190B20 - movs r1, #0 - strh r1, [r0] - ldr r0, _08190B24 - strh r1, [r0] - ldr r0, _08190B28 - strh r1, [r0] - ldr r1, _08190B2C - movs r0, #0xa0 - strh r0, [r1] - b _08190B42 - .align 2, 0 -_08190B1C: .4byte gUnknown_3005B60 -_08190B20: .4byte gUnknown_2022AC8 -_08190B24: .4byte gUnknown_2022ACA -_08190B28: .4byte gUnknown_2022ACC -_08190B2C: .4byte gUnknown_2022ACE -_08190B30: - ldr r0, _08190B88 - strh r2, [r0] - ldr r1, _08190B8C - movs r0, #0xa0 - strh r0, [r1] - ldr r0, _08190B90 - strh r2, [r0] - ldr r0, _08190B94 - strh r2, [r0] -_08190B42: - cmp r6, #1 - bne _08190BF8 - ldr r5, _08190B98 - ldr r0, [r5] - ldrb r1, [r0, #0x10] - cmp r1, #0 - bne _08190BAC - ldr r0, _08190B9C - strh r1, [r0] - ldr r1, _08190BA0 - movs r6, #0xa0 - lsls r6, r6, #1 - adds r0, r6, #0 - strh r0, [r1] - ldr r3, _08190BA4 - ldr r2, _08190BA8 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r4, #0xa - ldrsh r1, [r0, r4] - adds r1, r1, r3 - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrb r2, [r0, #0xc] - movs r0, #0x10 - orrs r0, r2 - ldrb r1, [r1] - bl DisplayTrainerInfoOnCard - b _08190CE0 - .align 2, 0 -_08190B88: .4byte gUnknown_2022AC8 -_08190B8C: .4byte gUnknown_2022ACA -_08190B90: .4byte gUnknown_2022ACC -_08190B94: .4byte gUnknown_2022ACE -_08190B98: .4byte gUnknown_203CA44 -_08190B9C: .4byte gUnknown_2022AD0 -_08190BA0: .4byte gUnknown_2022AD2 -_08190BA4: .4byte gUnknown_85D5AFC -_08190BA8: .4byte gUnknown_3005B60 -_08190BAC: - ldr r1, _08190BE8 - movs r6, #0x80 - lsls r6, r6, #1 - adds r0, r6, #0 - strh r0, [r1] - ldr r0, _08190BEC - movs r4, #0 - strh r4, [r0] - ldr r3, _08190BF0 - ldr r2, _08190BF4 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r6, #0xa - ldrsh r1, [r0, r6] - adds r1, r1, r3 - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrb r2, [r0, #0xc] - movs r0, #0x10 - orrs r0, r2 - ldrb r1, [r1] - bl DisplayTrainerInfoOnCard - ldr r0, [r5] - strb r4, [r0, #0x10] - b _08190CE0 - .align 2, 0 -_08190BE8: .4byte gUnknown_2022AD0 -_08190BEC: .4byte gUnknown_2022AD2 -_08190BF0: .4byte gUnknown_85D5AFC -_08190BF4: .4byte gUnknown_3005B60 -_08190BF8: - ldr r6, _08190C44 - ldr r1, [r6] - ldrb r5, [r1, #0x10] - cmp r5, #0 - bne _08190C54 - ldr r4, _08190C48 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r4 - movs r2, #0xa - ldrsh r0, [r0, r2] - adds r2, r0, #0 - subs r2, #0x10 - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - adds r1, #0x11 - bl sub_08192B3C - ldr r0, _08190C4C - strh r5, [r0] - ldr r1, _08190C50 - movs r3, #0xa0 - lsls r3, r3, #1 - adds r0, r3, #0 - strh r0, [r1] - ldr r2, [r6] - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r4 - ldrb r1, [r0, #0xc] - movs r0, #0x10 - orrs r0, r1 - ldrb r1, [r2, #0x11] - bl DisplayTrainerInfoOnCard - b _08190CE0 - .align 2, 0 -_08190C44: .4byte gUnknown_203CA44 -_08190C48: .4byte gUnknown_3005B60 -_08190C4C: .4byte gUnknown_2022AD0 -_08190C50: .4byte gUnknown_2022AD2 -_08190C54: - cmp r5, #2 - bne _08190CA8 - ldr r4, _08190C9C - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r4 - movs r5, #0xa - ldrsh r0, [r0, r5] - adds r2, r0, #0 - subs r2, #0x10 - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - adds r1, #0x11 - bl sub_08192B3C - ldr r1, _08190CA0 - movs r0, #0 - strh r0, [r1] - ldr r1, _08190CA4 - movs r2, #0xa0 - lsls r2, r2, #1 - adds r0, r2, #0 - strh r0, [r1] - ldr r2, [r6] - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r4 - ldrb r1, [r0, #0xc] - movs r0, #0x10 - orrs r0, r1 - ldrb r1, [r2, #0x12] - bl DisplayTrainerInfoOnCard - b _08190CE0 - .align 2, 0 -_08190C9C: .4byte gUnknown_3005B60 -_08190CA0: .4byte gUnknown_2022AD0 -_08190CA4: .4byte gUnknown_2022AD2 -_08190CA8: - ldr r1, _08190D50 - movs r3, #0x80 - lsls r3, r3, #1 - adds r0, r3, #0 - strh r0, [r1] - ldr r1, _08190D54 - movs r0, #0xa0 - strh r0, [r1] - ldr r1, _08190D58 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r4, #0xa - ldrsh r0, [r0, r4] - adds r2, r0, #0 - subs r2, #0x10 - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r1, [r0, #0xc] - movs r0, #0x10 - orrs r0, r1 - lsls r1, r2, #0x18 - lsrs r1, r1, #0x18 - bl DisplayMatchInfoOnCard -_08190CE0: - movs r6, #0 - ldr r5, _08190D5C - mov sl, r5 - ldr r3, _08190D60 - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - ldr r1, _08190D58 - adds r5, r0, r1 - mov ip, r6 - adds r4, r3, #0 - adds r4, #0x1c - movs r7, #1 -_08190CFA: - cmp r6, #1 - bgt _08190D68 - mov r2, sl - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, #0xff - beq _08190DAC - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _08190D64 - str r1, [r0] - ldrb r0, [r2] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrh r0, [r5, #0xc] - eors r0, r7 - strh r0, [r1, #0x2e] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - mov r1, ip - strh r1, [r0, #0x30] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r6, [r0, #0x32] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r1, [r0, #0x34] - b _08190DAC - .align 2, 0 -_08190D50: .4byte gUnknown_2022AD0 -_08190D54: .4byte gUnknown_2022AD2 -_08190D58: .4byte gUnknown_3005B60 -_08190D5C: .4byte gUnknown_203CA44 -_08190D60: .4byte gUnknown_20205AC -_08190D64: .4byte SpriteCb_TrainerIconCardScrollUp -_08190D68: - mov r2, sl - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, #0xff - beq _08190DAC - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _08190E1C - str r1, [r0] - ldrb r0, [r2] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrh r0, [r5, #0xc] - eors r0, r7 - strh r0, [r1, #0x2e] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - mov r1, ip - strh r1, [r0, #0x30] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r6, [r0, #0x32] -_08190DAC: - adds r6, #1 - cmp r6, #7 - ble _08190CFA - movs r6, #8 - ldr r2, _08190E20 - mov ip, r2 - ldr r3, _08190E24 - ldr r1, _08190E28 - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - adds r5, r0, r1 - movs r4, #0 - adds r7, r3, #0 - adds r7, #0x1c -_08190DCA: - cmp r6, #9 - bgt _08190E30 - mov r1, ip - ldr r0, [r1] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, #0xff - beq _08190E70 - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldr r1, _08190E2C - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r5, #0xc] - strh r1, [r0, #0x2e] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r4, [r0, #0x30] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r6, [r0, #0x32] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r1, [r0, #0x34] - b _08190E70 - .align 2, 0 -_08190E1C: .4byte SpriteCb_MonIconCardScrollUp -_08190E20: .4byte gUnknown_203CA44 -_08190E24: .4byte gUnknown_20205AC -_08190E28: .4byte gUnknown_3005B60 -_08190E2C: .4byte SpriteCb_TrainerIconCardScrollUp -_08190E30: - mov r2, ip - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, #0xff - beq _08190E70 - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldr r1, _08190E88 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r5, #0xc] - strh r1, [r0, #0x2e] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r4, [r0, #0x30] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r6, [r0, #0x32] -_08190E70: - adds r6, #1 - cmp r6, #0xf - ble _08190DCA - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - ldr r3, _08190E8C - adds r0, r0, r3 - movs r2, #0 - movs r1, #4 - bl _08191C44 - .align 2, 0 -_08190E88: .4byte SpriteCb_MonIconCardScrollUp -_08190E8C: .4byte gUnknown_3005B60 -_08190E90: - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - ldr r4, _08190EBC - adds r0, r0, r4 - movs r5, #0xc - ldrsh r2, [r0, r5] - cmp r2, #0 - beq _08190ED4 - ldr r0, _08190EC0 - movs r1, #0 - strh r1, [r0] - ldr r0, _08190EC4 - strh r1, [r0] - ldr r0, _08190EC8 - strh r1, [r0] - ldr r1, _08190ECC - ldr r2, _08190ED0 - adds r0, r2, #0 - strh r0, [r1] - b _08190EE8 - .align 2, 0 -_08190EBC: .4byte gUnknown_3005B60 -_08190EC0: .4byte gUnknown_2022AC8 -_08190EC4: .4byte gUnknown_2022ACA -_08190EC8: .4byte gUnknown_2022ACC -_08190ECC: .4byte gUnknown_2022ACE -_08190ED0: .4byte 0x0000FF60 -_08190ED4: - ldr r0, _08190F28 - strh r2, [r0] - ldr r1, _08190F2C - ldr r3, _08190F30 - adds r0, r3, #0 - strh r0, [r1] - ldr r0, _08190F34 - strh r2, [r0] - ldr r0, _08190F38 - strh r2, [r0] -_08190EE8: - cmp r6, #2 - bne _08190F98 - ldr r5, _08190F3C - ldr r0, [r5] - ldrb r1, [r0, #0x10] - cmp r1, #0 - bne _08190F50 - ldr r0, _08190F40 - strh r1, [r0] - ldr r1, _08190F44 - movs r0, #0xa0 - strh r0, [r1] - ldr r3, _08190F48 - ldr r2, _08190F4C - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r4, #0xa - ldrsh r1, [r0, r4] - adds r1, r1, r3 - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrb r2, [r0, #0xc] - movs r0, #4 - orrs r0, r2 - ldrb r1, [r1] - bl DisplayTrainerInfoOnCard - b _08191078 - .align 2, 0 -_08190F28: .4byte gUnknown_2022AC8 -_08190F2C: .4byte gUnknown_2022ACA -_08190F30: .4byte 0x0000FF60 -_08190F34: .4byte gUnknown_2022ACC -_08190F38: .4byte gUnknown_2022ACE -_08190F3C: .4byte gUnknown_203CA44 -_08190F40: .4byte gUnknown_2022AD0 -_08190F44: .4byte gUnknown_2022AD2 -_08190F48: .4byte gUnknown_85D5AFC -_08190F4C: .4byte gUnknown_3005B60 -_08190F50: - ldr r0, _08190F88 - movs r4, #0 - strh r4, [r0] - ldr r0, _08190F8C - strh r4, [r0] - ldr r3, _08190F90 - ldr r2, _08190F94 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r6, #0xa - ldrsh r1, [r0, r6] - adds r1, r1, r3 - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrb r2, [r0, #0xc] - movs r0, #4 - orrs r0, r2 - ldrb r1, [r1] - bl DisplayTrainerInfoOnCard - ldr r0, [r5] - strb r4, [r0, #0x10] - b _08191078 - .align 2, 0 -_08190F88: .4byte gUnknown_2022AD0 -_08190F8C: .4byte gUnknown_2022AD2 -_08190F90: .4byte gUnknown_85D5AFC -_08190F94: .4byte gUnknown_3005B60 -_08190F98: - ldr r6, _08190FE0 - ldr r1, [r6] - ldrb r5, [r1, #0x10] - cmp r5, #0 - bne _08190FF0 - ldr r4, _08190FE4 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r4 - movs r2, #0xa - ldrsh r0, [r0, r2] - adds r2, r0, #0 - subs r2, #0x10 - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - adds r1, #0x11 - bl sub_08192B3C - ldr r0, _08190FE8 - strh r5, [r0] - ldr r1, _08190FEC - movs r0, #0xa0 - strh r0, [r1] - ldr r2, [r6] - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r4 - ldrb r1, [r0, #0xc] - movs r0, #4 - orrs r0, r1 - ldrb r1, [r2, #0x11] - bl DisplayTrainerInfoOnCard - b _08191078 - .align 2, 0 -_08190FE0: .4byte gUnknown_203CA44 -_08190FE4: .4byte gUnknown_3005B60 -_08190FE8: .4byte gUnknown_2022AD0 -_08190FEC: .4byte gUnknown_2022AD2 -_08190FF0: - cmp r5, #2 - bne _08191040 - ldr r4, _08191034 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r4 - movs r3, #0xa - ldrsh r0, [r0, r3] - adds r2, r0, #0 - subs r2, #0x10 - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - adds r1, #0x11 - bl sub_08192B3C - ldr r1, _08191038 - movs r0, #0 - strh r0, [r1] - ldr r1, _0819103C - movs r0, #0xa0 - strh r0, [r1] - ldr r2, [r6] - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r4 - ldrb r1, [r0, #0xc] - movs r0, #4 - orrs r0, r1 - ldrb r1, [r2, #0x12] - bl DisplayTrainerInfoOnCard - b _08191078 - .align 2, 0 -_08191034: .4byte gUnknown_3005B60 -_08191038: .4byte gUnknown_2022AD0 -_0819103C: .4byte gUnknown_2022AD2 -_08191040: - ldr r1, _081910E8 - movs r4, #0x80 - lsls r4, r4, #1 - adds r0, r4, #0 - strh r0, [r1] - ldr r1, _081910EC - movs r0, #0 - strh r0, [r1] - ldr r1, _081910F0 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r5, #0xa - ldrsh r0, [r0, r5] - adds r2, r0, #0 - subs r2, #0x10 - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r1, [r0, #0xc] - movs r0, #4 - orrs r0, r1 - lsls r1, r2, #0x18 - lsrs r1, r1, #0x18 - bl DisplayMatchInfoOnCard -_08191078: - movs r6, #0 - ldr r0, _081910F4 - mov sl, r0 - ldr r3, _081910F8 - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - ldr r1, _081910F0 - adds r5, r0, r1 - mov ip, r6 - adds r4, r3, #0 - adds r4, #0x1c - movs r7, #1 -_08191092: - cmp r6, #1 - bgt _08191100 - mov r2, sl - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, #0xff - beq _08191144 - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _081910FC - str r1, [r0] - ldrb r0, [r2] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrh r0, [r5, #0xc] - eors r0, r7 - strh r0, [r1, #0x2e] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - mov r1, ip - strh r1, [r0, #0x30] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r6, [r0, #0x32] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r1, [r0, #0x34] - b _08191144 - .align 2, 0 -_081910E8: .4byte gUnknown_2022AD0 -_081910EC: .4byte gUnknown_2022AD2 -_081910F0: .4byte gUnknown_3005B60 -_081910F4: .4byte gUnknown_203CA44 -_081910F8: .4byte gUnknown_20205AC -_081910FC: .4byte SpriteCb_TrainerIconCardScrollDown -_08191100: - mov r2, sl - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, #0xff - beq _08191144 - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _081911B4 - str r1, [r0] - ldrb r0, [r2] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrh r0, [r5, #0xc] - eors r0, r7 - strh r0, [r1, #0x2e] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - mov r1, ip - strh r1, [r0, #0x30] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r6, [r0, #0x32] -_08191144: - adds r6, #1 - cmp r6, #7 - ble _08191092 - movs r6, #8 - ldr r2, _081911B8 - mov ip, r2 - ldr r3, _081911BC - ldr r1, _081911C0 - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - adds r5, r0, r1 - movs r4, #0 - adds r7, r3, #0 - adds r7, #0x1c -_08191162: - cmp r6, #9 - bgt _081911C8 - mov r1, ip - ldr r0, [r1] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, #0xff - beq _08191208 - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldr r1, _081911C4 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r5, #0xc] - strh r1, [r0, #0x2e] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r4, [r0, #0x30] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r6, [r0, #0x32] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r1, [r0, #0x34] - b _08191208 - .align 2, 0 -_081911B4: .4byte SpriteCb_MonIconCardScrollDown -_081911B8: .4byte gUnknown_203CA44 -_081911BC: .4byte gUnknown_20205AC -_081911C0: .4byte gUnknown_3005B60 -_081911C4: .4byte SpriteCb_TrainerIconCardScrollDown -_081911C8: - mov r2, ip - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, #0xff - beq _08191208 - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldr r1, _08191220 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r5, #0xc] - strh r1, [r0, #0x2e] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r4, [r0, #0x30] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r6, [r0, #0x32] -_08191208: - adds r6, #1 - cmp r6, #0xf - ble _08191162 - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - ldr r3, _08191224 - adds r0, r0, r3 - movs r2, #0 - movs r1, #5 - bl _08191C44 - .align 2, 0 -_08191220: .4byte SpriteCb_MonIconCardScrollDown -_08191224: .4byte gUnknown_3005B60 -_08191228: - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - ldr r4, _08191254 - adds r0, r0, r4 - movs r5, #0xc - ldrsh r2, [r0, r5] - cmp r2, #0 - beq _08191268 - ldr r0, _08191258 - movs r1, #0 - strh r1, [r0] - ldr r0, _0819125C - strh r1, [r0] - ldr r2, _08191260 - movs r6, #0x80 - lsls r6, r6, #1 - adds r0, r6, #0 - strh r0, [r2] - ldr r0, _08191264 - strh r1, [r0] - b _0819127E - .align 2, 0 -_08191254: .4byte gUnknown_3005B60 -_08191258: .4byte gUnknown_2022AC8 -_0819125C: .4byte gUnknown_2022ACA -_08191260: .4byte gUnknown_2022ACC -_08191264: .4byte gUnknown_2022ACE -_08191268: - ldr r1, _081912C0 - movs r3, #0x80 - lsls r3, r3, #1 - adds r0, r3, #0 - strh r0, [r1] - ldr r0, _081912C4 - strh r2, [r0] - ldr r0, _081912C8 - strh r2, [r0] - ldr r0, _081912CC - strh r2, [r0] -_0819127E: - ldr r0, _081912D0 - ldr r4, [r0] - ldrb r0, [r4, #0x10] - cmp r0, #0 - bne _081912E4 - ldr r1, _081912D4 - movs r4, #0x80 - lsls r4, r4, #1 - adds r0, r4, #0 - strh r0, [r1] - ldr r1, _081912D8 - movs r0, #0xa0 - strh r0, [r1] - ldr r3, _081912DC - ldr r2, _081912E0 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r5, #0xa - ldrsh r1, [r0, r5] - adds r1, r1, r3 - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrb r2, [r0, #0xc] - movs r0, #8 - orrs r0, r2 - ldrb r1, [r1] - bl DisplayTrainerInfoOnCard - b _08191322 - .align 2, 0 -_081912C0: .4byte gUnknown_2022AC8 -_081912C4: .4byte gUnknown_2022ACA -_081912C8: .4byte gUnknown_2022ACC -_081912CC: .4byte gUnknown_2022ACE -_081912D0: .4byte gUnknown_203CA44 -_081912D4: .4byte gUnknown_2022AD0 -_081912D8: .4byte gUnknown_2022AD2 -_081912DC: .4byte gUnknown_85D5AFC -_081912E0: .4byte gUnknown_3005B60 -_081912E4: - ldr r1, _08191394 - movs r6, #0x80 - lsls r6, r6, #1 - adds r0, r6, #0 - strh r0, [r1] - ldr r1, _08191398 - movs r0, #0 - strh r0, [r1] - ldr r3, _0819139C - ldr r2, _081913A0 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r5, #0xa - ldrsh r1, [r0, r5] - lsls r1, r1, #2 - subs r1, #1 - ldrb r4, [r4, #0x10] - adds r1, r1, r4 - adds r1, r1, r3 - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrb r2, [r0, #0xc] - movs r0, #8 - orrs r0, r2 - ldrb r1, [r1] - bl DisplayMatchInfoOnCard -_08191322: - movs r6, #0 - ldr r0, _081913A4 - mov sl, r0 - ldr r3, _081913A8 - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - ldr r1, _081913A0 - adds r5, r0, r1 - mov ip, r6 - adds r4, r3, #0 - adds r4, #0x1c - movs r7, #1 -_0819133C: - cmp r6, #1 - bgt _081913B0 - mov r2, sl - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, #0xff - beq _081913F4 - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _081913AC - str r1, [r0] - ldrb r0, [r2] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrh r0, [r5, #0xc] - eors r0, r7 - strh r0, [r1, #0x2e] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - mov r1, ip - strh r1, [r0, #0x30] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r6, [r0, #0x32] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r1, [r0, #0x34] - b _081913F4 - .align 2, 0 -_08191394: .4byte gUnknown_2022AD0 -_08191398: .4byte gUnknown_2022AD2 -_0819139C: .4byte gUnknown_85D5BD8 -_081913A0: .4byte gUnknown_3005B60 -_081913A4: .4byte gUnknown_203CA44 -_081913A8: .4byte gUnknown_20205AC -_081913AC: .4byte SpriteCb_TrainerIconCardScrollLeft -_081913B0: - mov r2, sl - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, #0xff - beq _081913F4 - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _08191464 - str r1, [r0] - ldrb r0, [r2] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrh r0, [r5, #0xc] - eors r0, r7 - strh r0, [r1, #0x2e] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - mov r1, ip - strh r1, [r0, #0x30] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r6, [r0, #0x32] -_081913F4: - adds r6, #1 - cmp r6, #7 - ble _0819133C - movs r6, #8 - ldr r2, _08191468 - mov ip, r2 - ldr r3, _0819146C - ldr r1, _08191470 - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - adds r5, r0, r1 - movs r4, #0 - adds r7, r3, #0 - adds r7, #0x1c -_08191412: - cmp r6, #9 - bgt _08191478 - mov r1, ip - ldr r0, [r1] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, #0xff - beq _081914B8 - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldr r1, _08191474 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r5, #0xc] - strh r1, [r0, #0x2e] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r4, [r0, #0x30] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r6, [r0, #0x32] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r1, [r0, #0x34] - b _081914B8 - .align 2, 0 -_08191464: .4byte SpriteCb_MonIconCardScrollLeft -_08191468: .4byte gUnknown_203CA44 -_0819146C: .4byte gUnknown_20205AC -_08191470: .4byte gUnknown_3005B60 -_08191474: .4byte SpriteCb_TrainerIconCardScrollLeft -_08191478: - mov r2, ip - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, #0xff - beq _081914B8 - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldr r1, _081914D0 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r5, #0xc] - strh r1, [r0, #0x2e] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r4, [r0, #0x30] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r6, [r0, #0x32] -_081914B8: - adds r6, #1 - cmp r6, #0xf - ble _08191412 - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - ldr r3, _081914D4 - adds r0, r0, r3 - movs r2, #0 - movs r1, #6 - b _08191C44 - .align 2, 0 -_081914D0: .4byte SpriteCb_MonIconCardScrollLeft -_081914D4: .4byte gUnknown_3005B60 -_081914D8: - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - ldr r4, _08191504 - adds r0, r0, r4 - movs r5, #0xc - ldrsh r2, [r0, r5] - cmp r2, #0 - beq _08191518 - ldr r0, _08191508 - movs r1, #0 - strh r1, [r0] - ldr r0, _0819150C - strh r1, [r0] - ldr r2, _08191510 - movs r6, #0x80 - lsls r6, r6, #1 - adds r0, r6, #0 - strh r0, [r2] - ldr r0, _08191514 - strh r1, [r0] - b _0819152E - .align 2, 0 -_08191504: .4byte gUnknown_3005B60 -_08191508: .4byte gUnknown_2022AC8 -_0819150C: .4byte gUnknown_2022ACA -_08191510: .4byte gUnknown_2022ACC -_08191514: .4byte gUnknown_2022ACE -_08191518: - ldr r1, _08191560 - movs r3, #0x80 - lsls r3, r3, #1 - adds r0, r3, #0 - strh r0, [r1] - ldr r0, _08191564 - strh r2, [r0] - ldr r0, _08191568 - strh r2, [r0] - ldr r0, _0819156C - strh r2, [r0] -_0819152E: - ldr r0, _08191570 - ldr r2, [r0] - ldrb r0, [r2, #0x10] - cmp r0, #0 - bne _08191580 - ldr r1, _08191574 - movs r4, #0x80 - lsls r4, r4, #1 - adds r0, r4, #0 - strh r0, [r1] - ldr r1, _08191578 - movs r0, #0xa0 - strh r0, [r1] - ldr r1, _0819157C - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r1, [r0, #0xc] - movs r0, #8 - orrs r0, r1 - ldrb r1, [r2, #0x11] - bl DisplayTrainerInfoOnCard - b _081915B4 - .align 2, 0 -_08191560: .4byte gUnknown_2022AC8 -_08191564: .4byte gUnknown_2022ACA -_08191568: .4byte gUnknown_2022ACC -_0819156C: .4byte gUnknown_2022ACE -_08191570: .4byte gUnknown_203CA44 -_08191574: .4byte gUnknown_2022AD0 -_08191578: .4byte gUnknown_2022AD2 -_0819157C: .4byte gUnknown_3005B60 -_08191580: - ldr r1, _08191624 - movs r0, #0 - strh r0, [r1] - ldr r1, _08191628 - movs r0, #0xa0 - strh r0, [r1] - ldr r1, _0819162C - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r5, #0xa - ldrsh r0, [r0, r5] - adds r2, r0, #0 - subs r2, #0x10 - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r1, [r0, #0xc] - movs r0, #8 - orrs r0, r1 - lsls r1, r2, #0x18 - lsrs r1, r1, #0x18 - bl DisplayMatchInfoOnCard -_081915B4: - movs r6, #0 - ldr r0, _08191630 - mov sl, r0 - ldr r3, _08191634 - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - ldr r1, _0819162C - adds r5, r0, r1 - mov ip, r6 - adds r4, r3, #0 - adds r4, #0x1c - movs r7, #1 -_081915CE: - cmp r6, #1 - bgt _0819163C - mov r2, sl - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, #0xff - beq _08191680 - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _08191638 - str r1, [r0] - ldrb r0, [r2] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrh r0, [r5, #0xc] - eors r0, r7 - strh r0, [r1, #0x2e] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - mov r1, ip - strh r1, [r0, #0x30] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r6, [r0, #0x32] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r1, [r0, #0x34] - b _08191680 - .align 2, 0 -_08191624: .4byte gUnknown_2022AD0 -_08191628: .4byte gUnknown_2022AD2 -_0819162C: .4byte gUnknown_3005B60 -_08191630: .4byte gUnknown_203CA44 -_08191634: .4byte gUnknown_20205AC -_08191638: .4byte SpriteCb_TrainerIconCardScrollLeft -_0819163C: - mov r2, sl - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, #0xff - beq _08191680 - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _081916F0 - str r1, [r0] - ldrb r0, [r2] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrh r0, [r5, #0xc] - eors r0, r7 - strh r0, [r1, #0x2e] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - mov r1, ip - strh r1, [r0, #0x30] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r6, [r0, #0x32] -_08191680: - adds r6, #1 - cmp r6, #7 - ble _081915CE - movs r6, #8 - ldr r2, _081916F4 - mov ip, r2 - ldr r3, _081916F8 - ldr r1, _081916FC - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - adds r5, r0, r1 - movs r4, #0 - adds r7, r3, #0 - adds r7, #0x1c -_0819169E: - cmp r6, #9 - bgt _08191704 - mov r1, ip - ldr r0, [r1] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, #0xff - beq _08191744 - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldr r1, _08191700 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r5, #0xc] - strh r1, [r0, #0x2e] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r4, [r0, #0x30] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r6, [r0, #0x32] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r1, [r0, #0x34] - b _08191744 - .align 2, 0 -_081916F0: .4byte SpriteCb_MonIconCardScrollLeft -_081916F4: .4byte gUnknown_203CA44 -_081916F8: .4byte gUnknown_20205AC -_081916FC: .4byte gUnknown_3005B60 -_08191700: .4byte SpriteCb_TrainerIconCardScrollLeft -_08191704: - mov r2, ip - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, #0xff - beq _08191744 - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldr r1, _0819175C - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r5, #0xc] - strh r1, [r0, #0x2e] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r4, [r0, #0x30] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r6, [r0, #0x32] -_08191744: - adds r6, #1 - cmp r6, #0xf - ble _0819169E - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - ldr r3, _08191760 - adds r0, r0, r3 - movs r2, #0 - movs r1, #6 - b _08191C44 - .align 2, 0 -_0819175C: .4byte SpriteCb_MonIconCardScrollLeft -_08191760: .4byte gUnknown_3005B60 -_08191764: - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - ldr r4, _08191790 - adds r0, r0, r4 - movs r5, #0xc - ldrsh r2, [r0, r5] - cmp r2, #0 - beq _081917A4 - ldr r0, _08191794 - movs r1, #0 - strh r1, [r0] - ldr r0, _08191798 - strh r1, [r0] - ldr r2, _0819179C - movs r6, #0xff - lsls r6, r6, #8 - adds r0, r6, #0 - strh r0, [r2] - ldr r0, _081917A0 - strh r1, [r0] - b _081917BA - .align 2, 0 -_08191790: .4byte gUnknown_3005B60 -_08191794: .4byte gUnknown_2022AC8 -_08191798: .4byte gUnknown_2022ACA -_0819179C: .4byte gUnknown_2022ACC -_081917A0: .4byte gUnknown_2022ACE -_081917A4: - ldr r1, _081917D4 - movs r3, #0xff - lsls r3, r3, #8 - adds r0, r3, #0 - strh r0, [r1] - ldr r0, _081917D8 - strh r2, [r0] - ldr r0, _081917DC - strh r2, [r0] - ldr r0, _081917E0 - strh r2, [r0] -_081917BA: - ldr r0, _081917E4 - ldr r0, [r0] - ldrb r0, [r0, #0x10] - cmp r0, #1 - bne _081917F0 - ldr r1, _081917E8 - movs r0, #0 - strh r0, [r1] - ldr r1, _081917EC - movs r0, #0xa0 - strh r0, [r1] - b _081917FA - .align 2, 0 -_081917D4: .4byte gUnknown_2022AC8 -_081917D8: .4byte gUnknown_2022ACA -_081917DC: .4byte gUnknown_2022ACC -_081917E0: .4byte gUnknown_2022ACE -_081917E4: .4byte gUnknown_203CA44 -_081917E8: .4byte gUnknown_2022AD0 -_081917EC: .4byte gUnknown_2022AD2 -_081917F0: - ldr r0, _08191890 - movs r1, #0 - strh r1, [r0] - ldr r0, _08191894 - strh r1, [r0] -_081917FA: - ldr r4, _08191898 - ldr r5, _0819189C - ldr r3, [r5] - ldr r2, _081918A0 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r6, #0xa - ldrsh r1, [r0, r6] - lsls r1, r1, #2 - subs r1, #1 - ldrb r3, [r3, #0x10] - adds r1, r1, r3 - adds r1, r1, r4 - mov r4, sb - add r4, r8 - lsls r4, r4, #3 - adds r4, r4, r2 - ldrb r2, [r4, #0xc] - movs r0, #2 - orrs r0, r2 - ldrb r1, [r1] - bl DisplayMatchInfoOnCard - movs r6, #0 - ldr r7, _081918A4 - mov ip, r6 - mov sl, r5 - adds r5, r7, #0 - adds r5, #0x1c -_08191838: - cmp r6, #1 - bgt _081918AC - mov r1, sl - ldr r0, [r1] - adds r3, r0, r6 - ldrb r0, [r3] - cmp r0, #0xff - beq _081918F2 - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _081918A8 - str r1, [r0] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrh r1, [r4, #0xc] - movs r2, #1 - eors r1, r2 - strh r1, [r0, #0x2e] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - mov r2, ip - strh r2, [r0, #0x30] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r6, [r0, #0x32] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r1, [r0, #0x34] - b _081918F2 - .align 2, 0 -_08191890: .4byte gUnknown_2022AD0 -_08191894: .4byte gUnknown_2022AD2 -_08191898: .4byte gUnknown_85D5BD8 -_0819189C: .4byte gUnknown_203CA44 -_081918A0: .4byte gUnknown_3005B60 -_081918A4: .4byte gUnknown_20205AC -_081918A8: .4byte SpriteCb_TrainerIconCardScrollRight -_081918AC: - mov r3, sl - ldr r0, [r3] - adds r3, r0, r6 - ldrb r0, [r3] - cmp r0, #0xff - beq _081918F2 - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _08191964 - str r1, [r0] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrh r1, [r4, #0xc] - movs r2, #1 - eors r1, r2 - strh r1, [r0, #0x2e] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - mov r1, ip - strh r1, [r0, #0x30] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r6, [r0, #0x32] -_081918F2: - adds r6, #1 - cmp r6, #7 - ble _08191838 - movs r6, #8 - ldr r2, _08191968 - mov ip, r2 - ldr r3, _0819196C - ldr r1, _08191970 - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - adds r5, r0, r1 - movs r4, #0 - adds r7, r3, #0 - adds r7, #0x1c -_08191910: - cmp r6, #9 - bgt _08191978 - mov r1, ip - ldr r0, [r1] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, #0xff - beq _081919B8 - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldr r1, _08191974 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r5, #0xc] - strh r1, [r0, #0x2e] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r4, [r0, #0x30] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r6, [r0, #0x32] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r1, [r0, #0x34] - b _081919B8 - .align 2, 0 -_08191964: .4byte SpriteCb_MonIconCardScrollRight -_08191968: .4byte gUnknown_203CA44 -_0819196C: .4byte gUnknown_20205AC -_08191970: .4byte gUnknown_3005B60 -_08191974: .4byte SpriteCb_TrainerIconCardScrollRight -_08191978: - mov r2, ip - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, #0xff - beq _081919B8 - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldr r1, _081919C0 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r5, #0xc] - strh r1, [r0, #0x2e] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r4, [r0, #0x30] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r6, [r0, #0x32] -_081919B8: - adds r6, #1 - cmp r6, #0xf - ble _08191910 - b _08191C36 - .align 2, 0 -_081919C0: .4byte SpriteCb_MonIconCardScrollRight -_081919C4: - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - ldr r4, _081919F0 - adds r0, r0, r4 - movs r5, #0xc - ldrsh r2, [r0, r5] - cmp r2, #0 - beq _08191A04 - ldr r0, _081919F4 - movs r1, #0 - strh r1, [r0] - ldr r0, _081919F8 - strh r1, [r0] - ldr r2, _081919FC - movs r6, #0xff - lsls r6, r6, #8 - adds r0, r6, #0 - strh r0, [r2] - ldr r0, _08191A00 - strh r1, [r0] - b _08191A1A - .align 2, 0 -_081919F0: .4byte gUnknown_3005B60 -_081919F4: .4byte gUnknown_2022AC8 -_081919F8: .4byte gUnknown_2022ACA -_081919FC: .4byte gUnknown_2022ACC -_08191A00: .4byte gUnknown_2022ACE -_08191A04: - ldr r1, _08191A4C - movs r3, #0xff - lsls r3, r3, #8 - adds r0, r3, #0 - strh r0, [r1] - ldr r0, _08191A50 - strh r2, [r0] - ldr r0, _08191A54 - strh r2, [r0] - ldr r0, _08191A58 - strh r2, [r0] -_08191A1A: - ldr r0, _08191A5C - ldr r2, [r0] - ldrb r0, [r2, #0x10] - cmp r0, #2 - bne _08191A6C - ldr r1, _08191A60 - movs r4, #0x80 - lsls r4, r4, #1 - adds r0, r4, #0 - strh r0, [r1] - ldr r1, _08191A64 - movs r0, #0xa0 - strh r0, [r1] - ldr r1, _08191A68 - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r1, [r0, #0xc] - movs r0, #2 - orrs r0, r1 - ldrb r1, [r2, #0x12] - bl DisplayTrainerInfoOnCard - b _08191AA0 - .align 2, 0 -_08191A4C: .4byte gUnknown_2022AC8 -_08191A50: .4byte gUnknown_2022ACA -_08191A54: .4byte gUnknown_2022ACC -_08191A58: .4byte gUnknown_2022ACE -_08191A5C: .4byte gUnknown_203CA44 -_08191A60: .4byte gUnknown_2022AD0 -_08191A64: .4byte gUnknown_2022AD2 -_08191A68: .4byte gUnknown_3005B60 -_08191A6C: - ldr r1, _08191B10 - movs r0, #0 - strh r0, [r1] - ldr r1, _08191B14 - movs r0, #0xa0 - strh r0, [r1] - ldr r1, _08191B18 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r5, #0xa - ldrsh r0, [r0, r5] - adds r2, r0, #0 - subs r2, #0x10 - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r1, [r0, #0xc] - movs r0, #2 - orrs r0, r1 - lsls r1, r2, #0x18 - lsrs r1, r1, #0x18 - bl DisplayMatchInfoOnCard -_08191AA0: - movs r6, #0 - ldr r0, _08191B1C - mov sl, r0 - ldr r3, _08191B20 - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - ldr r1, _08191B18 - adds r5, r0, r1 - mov ip, r6 - adds r4, r3, #0 - adds r4, #0x1c - movs r7, #1 -_08191ABA: - cmp r6, #1 - bgt _08191B28 - mov r2, sl - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, #0xff - beq _08191B6C - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _08191B24 - str r1, [r0] - ldrb r0, [r2] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrh r0, [r5, #0xc] - eors r0, r7 - strh r0, [r1, #0x2e] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - mov r1, ip - strh r1, [r0, #0x30] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r6, [r0, #0x32] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r1, [r0, #0x34] - b _08191B6C - .align 2, 0 -_08191B10: .4byte gUnknown_2022AD0 -_08191B14: .4byte gUnknown_2022AD2 -_08191B18: .4byte gUnknown_3005B60 -_08191B1C: .4byte gUnknown_203CA44 -_08191B20: .4byte gUnknown_20205AC -_08191B24: .4byte SpriteCb_TrainerIconCardScrollRight -_08191B28: - mov r2, sl - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, #0xff - beq _08191B6C - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _08191BDC - str r1, [r0] - ldrb r0, [r2] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrh r0, [r5, #0xc] - eors r0, r7 - strh r0, [r1, #0x2e] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - mov r1, ip - strh r1, [r0, #0x30] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r6, [r0, #0x32] -_08191B6C: - adds r6, #1 - cmp r6, #7 - ble _08191ABA - movs r6, #8 - ldr r2, _08191BE0 - mov ip, r2 - ldr r3, _08191BE4 - ldr r1, _08191BE8 - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - adds r5, r0, r1 - movs r4, #0 - adds r7, r3, #0 - adds r7, #0x1c -_08191B8A: - cmp r6, #9 - bgt _08191BF0 - mov r1, ip - ldr r0, [r1] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, #0xff - beq _08191C30 - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldr r1, _08191BEC - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r5, #0xc] - strh r1, [r0, #0x2e] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r4, [r0, #0x30] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r6, [r0, #0x32] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r1, [r0, #0x34] - b _08191C30 - .align 2, 0 -_08191BDC: .4byte SpriteCb_MonIconCardScrollRight -_08191BE0: .4byte gUnknown_203CA44 -_08191BE4: .4byte gUnknown_20205AC -_08191BE8: .4byte gUnknown_3005B60 -_08191BEC: .4byte SpriteCb_TrainerIconCardScrollRight -_08191BF0: - mov r2, ip - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, #0xff - beq _08191C30 - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldr r1, _08191C4C - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r5, #0xc] - strh r1, [r0, #0x2e] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r4, [r0, #0x30] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r6, [r0, #0x32] -_08191C30: - adds r6, #1 - cmp r6, #0xf - ble _08191B8A -_08191C36: - mov r0, sb - add r0, r8 - lsls r0, r0, #3 - ldr r3, _08191C50 - adds r0, r0, r3 - movs r2, #0 - movs r1, #7 -_08191C44: - strh r1, [r0, #8] - strh r2, [r0, #0x12] - b _08191E5E - .align 2, 0 -_08191C4C: .4byte SpriteCb_MonIconCardScrollRight -_08191C50: .4byte gUnknown_3005B60 -_08191C54: - mov r4, r8 - lsls r0, r4, #2 - add r0, r8 - lsls r0, r0, #3 - ldr r5, _08191C84 - adds r1, r0, r5 - ldrh r0, [r1, #0x12] - adds r0, #1 - strh r0, [r1, #0x12] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x29 - beq _08191D5C - ldr r1, _08191C88 - ldrh r0, [r1] - subs r0, #4 - strh r0, [r1] - ldr r1, _08191C8C - ldrh r0, [r1] - subs r0, #4 - strh r0, [r1] - ldr r1, _08191C90 - b _08191D00 - .align 2, 0 -_08191C84: .4byte gUnknown_3005B60 -_08191C88: .4byte gUnknown_2022ACA -_08191C8C: .4byte gUnknown_2022ACE -_08191C90: .4byte gUnknown_2022AD2 -_08191C94: - mov r6, r8 - lsls r0, r6, #2 - add r0, r8 - lsls r0, r0, #3 - ldr r2, _08191CC4 - adds r1, r0, r2 - ldrh r0, [r1, #0x12] - adds r0, #1 - strh r0, [r1, #0x12] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x29 - beq _08191D5C - ldr r1, _08191CC8 - ldrh r0, [r1] - adds r0, #4 - strh r0, [r1] - ldr r1, _08191CCC - ldrh r0, [r1] - adds r0, #4 - strh r0, [r1] - ldr r1, _08191CD0 - b _08191D44 - .align 2, 0 -_08191CC4: .4byte gUnknown_3005B60 -_08191CC8: .4byte gUnknown_2022ACA -_08191CCC: .4byte gUnknown_2022ACE -_08191CD0: .4byte gUnknown_2022AD2 -_08191CD4: - mov r3, r8 - lsls r0, r3, #2 - add r0, r8 - lsls r0, r0, #3 - ldr r4, _08191D08 - adds r1, r0, r4 - ldrh r0, [r1, #0x12] - adds r0, #1 - strh r0, [r1, #0x12] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x41 - beq _08191D5C - ldr r1, _08191D0C - ldrh r0, [r1] - subs r0, #4 - strh r0, [r1] - ldr r1, _08191D10 - ldrh r0, [r1] - subs r0, #4 - strh r0, [r1] - ldr r1, _08191D14 -_08191D00: - ldrh r0, [r1] - subs r0, #4 - strh r0, [r1] - b _08191E5E - .align 2, 0 -_08191D08: .4byte gUnknown_3005B60 -_08191D0C: .4byte gUnknown_2022AC8 -_08191D10: .4byte gUnknown_2022ACC -_08191D14: .4byte gUnknown_2022AD0 -_08191D18: - mov r5, r8 - lsls r0, r5, #2 - add r0, r8 - lsls r0, r0, #3 - ldr r6, _08191D4C - adds r1, r0, r6 - ldrh r0, [r1, #0x12] - adds r0, #1 - strh r0, [r1, #0x12] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x41 - beq _08191D5C - ldr r1, _08191D50 - ldrh r0, [r1] - adds r0, #4 - strh r0, [r1] - ldr r1, _08191D54 - ldrh r0, [r1] - adds r0, #4 - strh r0, [r1] - ldr r1, _08191D58 -_08191D44: - ldrh r0, [r1] - adds r0, #4 - strh r0, [r1] - b _08191E5E - .align 2, 0 -_08191D4C: .4byte gUnknown_3005B60 -_08191D50: .4byte gUnknown_2022AC8 -_08191D54: .4byte gUnknown_2022ACC -_08191D58: .4byte gUnknown_2022AD0 -_08191D5C: - movs r0, #2 - strh r0, [r1, #8] - b _08191E5E -_08191D62: - ldr r0, _08191D88 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08191E5E - movs r6, #0 - ldr r4, _08191D8C -_08191D72: - cmp r6, #1 - bgt _08191D90 - ldr r0, [r4] - adds r1, r0, r6 - ldrb r0, [r1] - cmp r0, #0xff - beq _08191DAA - bl FreeAndDestroyTrainerPicSprite - b _08191DAA - .align 2, 0 -_08191D88: .4byte gUnknown_2037C74 -_08191D8C: .4byte gUnknown_203CA44 -_08191D90: - ldr r0, [r4] - adds r1, r0, r6 - ldrb r0, [r1] - cmp r0, #0xff - beq _08191DAA - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08191DC8 - adds r0, r0, r1 - bl sub_080D2798 -_08191DAA: - adds r6, #1 - cmp r6, #7 - ble _08191D72 - movs r6, #8 - ldr r4, _08191DCC -_08191DB4: - cmp r6, #9 - bgt _08191DD0 - ldr r0, [r4] - adds r1, r0, r6 - ldrb r0, [r1] - cmp r0, #0xff - beq _08191DEA - bl FreeAndDestroyTrainerPicSprite - b _08191DEA - .align 2, 0 -_08191DC8: .4byte gUnknown_20205AC -_08191DCC: .4byte gUnknown_203CA44 -_08191DD0: - ldr r0, [r4] - adds r1, r0, r6 - ldrb r0, [r1] - cmp r0, #0xff - beq _08191DEA - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08191E14 - adds r0, r0, r1 - bl sub_080D2798 -_08191DEA: - adds r6, #1 - cmp r6, #0xf - ble _08191DB4 - bl FreeMonIconPalettes - ldr r4, _08191E18 - ldr r0, [r4] - bl Free - movs r5, #0 - str r5, [r4] - bl FreeAllWindowBuffers - mov r0, sb - cmp r0, #0 - bne _08191E20 - ldr r0, _08191E1C - bl SetMainCallback2 - b _08191E58 - .align 2, 0 -_08191E14: .4byte gUnknown_20205AC -_08191E18: .4byte gUnknown_203CA44 -_08191E1C: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic -_08191E20: - ldr r0, _08191E70 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r2, _08191E74 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r5, [r1, #8] - strh r5, [r1, #0xa] - movs r0, #3 - strh r0, [r1, #0xc] - mov r3, r8 - lsls r0, r3, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrh r0, [r0, #0x10] - strh r0, [r1, #0xe] - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrh r0, [r0, #0x14] - strh r0, [r1, #0x10] -_08191E58: - mov r0, r8 - bl DestroyTask -_08191E5E: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08191E70: .4byte Task_ShowTourneyTree -_08191E74: .4byte gUnknown_3005B60 - thumb_func_end sub_08190930 - - thumb_func_start sub_08191E78 -sub_08191E78: @ 0x08191E78 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - movs r7, #0 - ldr r2, _08191EF8 - lsls r0, r0, #2 - add r0, sb - lsls r0, r0, #3 - adds r0, r0, r2 - mov ip, r0 - movs r1, #0x10 - ldrsh r6, [r0, r1] - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r3, #0xa - ldrsh r5, [r0, r3] - ldr r0, _08191EFC - adds r0, r5, r0 - ldrb r0, [r0] - mov sl, r0 - ldr r3, _08191F00 - ldr r0, [r3] - ldr r1, _08191F04 - adds r0, r0, r1 - ldrh r0, [r0] - mov r8, r0 - ldr r1, _08191F08 - ldrh r4, [r1, #0x2e] - movs r0, #3 - ands r0, r4 - adds r2, r1, #0 - cmp r0, #0 - beq _08191ECA - movs r7, #9 -_08191ECA: - mov r3, ip - movs r1, #0xe - ldrsh r0, [r3, r1] - cmp r0, #0 - bne _08191ED6 - b _08192128 -_08191ED6: - cmp r0, #1 - beq _08191EDC - b _0819200C -_08191EDC: - movs r0, #0x40 - ands r0, r4 - cmp r0, #0 - beq _08191F16 - ldr r0, _08191F0C - ldr r0, [r0] - ldrb r0, [r0, #0x10] - cmp r0, #0 - bne _08191F16 - cmp r5, #0 - bne _08191F10 - movs r5, #0xf - b _08191F12 - .align 2, 0 -_08191EF8: .4byte gUnknown_3005B60 -_08191EFC: .4byte gUnknown_85D5AFC -_08191F00: .4byte gUnknown_3005AF0 -_08191F04: .4byte 0x00000CB2 -_08191F08: .4byte gUnknown_3002360 -_08191F0C: .4byte gUnknown_203CA44 -_08191F10: - subs r5, #1 -_08191F12: - movs r7, #1 - b _08191FBC -_08191F16: - ldrh r1, [r2, #0x2e] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08191F3E - ldr r0, _08191F34 - ldr r0, [r0] - ldrb r0, [r0, #0x10] - cmp r0, #0 - bne _08191F3E - cmp r5, #0xf - bne _08191F38 - movs r5, #0 - b _08191F3A - .align 2, 0 -_08191F34: .4byte gUnknown_203CA44 -_08191F38: - adds r5, #1 -_08191F3A: - movs r7, #2 - b _08191FBC -_08191F3E: - ldrh r1, [r2, #0x2e] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08191F60 - ldr r0, _08191F5C - ldr r1, [r0] - ldrb r0, [r1, #0x10] - cmp r0, #0 - beq _08191F60 - subs r0, #1 - strb r0, [r1, #0x10] - movs r7, #3 - b _08191FBC - .align 2, 0 -_08191F5C: .4byte gUnknown_203CA44 -_08191F60: - ldrh r1, [r2, #0x2e] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08191FBC - ldr r2, _08191FE8 - ldr r0, [r2] - mov r3, sl - lsls r1, r3, #2 - adds r0, r0, r1 - ldr r2, _08191FEC - adds r0, r0, r2 - ldrb r3, [r0] - lsls r0, r3, #0x1d - mov ip, r1 - cmp r0, #0 - bge _08191F98 - ldr r0, _08191FF0 - ldr r2, [r0] - ldrb r4, [r2, #0x10] - subs r1, r4, #1 - lsls r0, r3, #0x1b - lsrs r0, r0, #0x1e - cmp r1, r0 - bge _08191F98 - adds r0, r4, #1 - strb r0, [r2, #0x10] - movs r7, #4 -_08191F98: - ldr r3, _08191FE8 - ldr r0, [r3] - add r0, ip - ldr r1, _08191FEC - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - blt _08191FBC - ldr r0, _08191FF0 - ldr r3, [r0] - ldrb r1, [r3, #0x10] - subs r0, r1, #1 - cmp r0, r8 - bge _08191FBC - adds r0, r1, #1 - strb r0, [r3, #0x10] - movs r7, #4 -_08191FBC: - cmp r7, #9 - beq _08191FC2 - b _081920FC -_08191FC2: - ldr r0, _08191FF0 - ldr r3, [r0] - ldrb r0, [r3, #0x10] - cmp r0, #0 - beq _08191FFC - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - ldr r2, _08191FF4 - adds r1, r1, r2 - ldr r2, _08191FF8 - lsrs r0, r5, #0x1f - adds r0, r5, r0 - asrs r0, r0, #1 - lsls r0, r0, #2 - subs r0, #1 - ldrb r3, [r3, #0x10] - adds r0, r0, r3 - b _081920DE - .align 2, 0 -_08191FE8: .4byte gUnknown_3005AF0 -_08191FEC: .4byte 0x00000D25 -_08191FF0: .4byte gUnknown_203CA44 -_08191FF4: .4byte gUnknown_3005B60 -_08191FF8: .4byte gUnknown_85D5C1C -_08191FFC: - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r3, _08192008 - adds r0, r0, r3 - b _081920FA - .align 2, 0 -_08192008: .4byte gUnknown_3005B60 -_0819200C: - movs r0, #0x40 - ands r0, r4 - cmp r0, #0 - beq _0819203A - ldr r0, _0819202C - ldr r0, [r0] - ldrb r0, [r0, #0x10] - cmp r0, #1 - bne _0819203A - cmp r5, #0x10 - bne _08192034 - ldr r0, _08192030 - add r0, r8 - ldrb r5, [r0] - b _08192036 - .align 2, 0 -_0819202C: .4byte gUnknown_203CA44 -_08192030: .4byte gUnknown_85D5C18 -_08192034: - subs r5, #1 -_08192036: - movs r7, #5 - b _081920A2 -_0819203A: - ldrh r1, [r2, #0x2e] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0819206A - ldr r0, _0819205C - ldr r0, [r0] - ldrb r0, [r0, #0x10] - cmp r0, #1 - bne _0819206A - ldr r0, _08192060 - add r0, r8 - ldrb r0, [r0] - cmp r5, r0 - bne _08192064 - movs r5, #0x10 - b _08192066 - .align 2, 0 -_0819205C: .4byte gUnknown_203CA44 -_08192060: .4byte gUnknown_85D5C18 -_08192064: - adds r5, #1 -_08192066: - movs r7, #6 - b _081920A2 -_0819206A: - ldrh r1, [r2, #0x2e] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08192088 - ldr r0, _08192084 - ldr r1, [r0] - ldrb r0, [r1, #0x10] - cmp r0, #0 - beq _08192088 - movs r7, #7 - subs r0, #1 - b _081920A0 - .align 2, 0 -_08192084: .4byte gUnknown_203CA44 -_08192088: - ldrh r1, [r2, #0x2e] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _081920A2 - ldr r0, _081920C0 - ldr r1, [r0] - ldrb r0, [r1, #0x10] - cmp r0, #1 - bhi _081920A2 - movs r7, #8 - adds r0, #1 -_081920A0: - strb r0, [r1, #0x10] -_081920A2: - cmp r7, #9 - bne _081920FC - ldr r0, _081920C0 - ldr r0, [r0] - ldrb r1, [r0, #0x10] - cmp r1, #0 - bne _081920CC - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - ldr r2, _081920C4 - adds r1, r1, r2 - ldr r2, _081920C8 - ldrb r0, [r0, #0x11] - b _081920DE - .align 2, 0 -_081920C0: .4byte gUnknown_203CA44 -_081920C4: .4byte gUnknown_3005B60 -_081920C8: .4byte gUnknown_85D5C3C -_081920CC: - cmp r1, #2 - bne _081920F0 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - ldr r3, _081920E8 - adds r1, r1, r3 - ldr r2, _081920EC - ldrb r0, [r0, #0x12] -_081920DE: - adds r0, r0, r2 - ldrb r0, [r0] - strh r0, [r1, #0xa] - b _081920FC - .align 2, 0 -_081920E8: .4byte gUnknown_3005B60 -_081920EC: .4byte gUnknown_85D5C3C -_081920F0: - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _08192138 - adds r0, r0, r1 -_081920FA: - strh r5, [r0, #0xa] -_081920FC: - cmp r7, #0 - beq _08192128 - cmp r7, #9 - beq _08192128 - movs r0, #5 - bl sub_080A306C - ldr r1, _08192138 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r5, [r0, #0xa] - mov r2, sb - lsls r0, r2, #2 - add r0, sb - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #0xc] - movs r2, #1 - eors r1, r2 - strh r1, [r0, #0xc] -_08192128: - adds r0, r7, #0 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08192138: .4byte gUnknown_3005B60 - thumb_func_end sub_08191E78 - - thumb_func_start DisplayTrainerInfoOnCard -DisplayTrainerInfoOnCard: @ 0x0819213C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x58 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x1c] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp, #0x20] - movs r5, #0 - movs r0, #0 - str r0, [sp, #0x28] - movs r1, #0 - str r1, [sp, #0x2c] - movs r2, #0 - str r2, [sp, #0x30] - movs r4, #0 - movs r0, #0x24 - bl AllocZeroed - mov r8, r0 - ldr r0, _081921E4 - ldr r1, [r0] - ldr r3, [sp, #0x20] - lsls r0, r3, #2 - adds r0, r1, r0 - ldr r2, _081921E8 - adds r0, r0, r2 - ldrh r0, [r0] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - str r0, [sp, #0x24] - movs r0, #1 - ldr r3, [sp, #0x1c] - ands r0, r3 - cmp r0, #0 - beq _08192194 - movs r5, #8 - movs r4, #9 - str r4, [sp, #0x28] - movs r4, #2 -_08192194: - movs r0, #2 - ldr r2, [sp, #0x1c] - ands r0, r2 - cmp r0, #0 - beq _081921A4 - movs r3, #0x80 - lsls r3, r3, #1 - str r3, [sp, #0x2c] -_081921A4: - movs r0, #4 - ldr r2, [sp, #0x1c] - ands r0, r2 - cmp r0, #0 - beq _081921B2 - movs r3, #0xa0 - str r3, [sp, #0x30] -_081921B2: - movs r0, #8 - ldr r2, [sp, #0x1c] - ands r0, r2 - cmp r0, #0 - beq _081921C0 - ldr r3, _081921EC - str r3, [sp, #0x2c] -_081921C0: - movs r0, #0x10 - ldr r2, [sp, #0x1c] - ands r0, r2 - cmp r0, #0 - beq _081921D0 - movs r3, #0xa0 - rsbs r3, r3, #0 - str r3, [sp, #0x30] -_081921D0: - ldr r0, _081921F0 - ldr r2, [sp, #0x24] - cmp r2, r0 - bne _081921F4 - ldrb r0, [r1, #8] - bl PlayerGenderToFrontTrainerPicId - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b _08192212 - .align 2, 0 -_081921E4: .4byte gUnknown_3005AF0 -_081921E8: .4byte 0x00000D24 -_081921EC: .4byte 0xFFFFFF00 -_081921F0: .4byte 0x000003FF -_081921F4: - ldr r0, _08192204 - ldr r3, [sp, #0x24] - cmp r3, r0 - bne _08192208 - bl sub_08195510 - b _0819220E - .align 2, 0 -_08192204: .4byte 0x000003FE -_08192208: - ldr r0, [sp, #0x24] - bl GetFrontierTrainerFrontSpriteId -_0819220E: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_08192212: - ldr r2, [sp, #0x2c] - adds r2, #0x30 - ldr r3, [sp, #0x30] - adds r3, #0x40 - adds r1, r4, #0 - adds r1, #0xc - str r1, [sp] - ldr r1, _081922A0 - str r1, [sp, #4] - movs r1, #1 - bl CreateTrainerPicSprite - ldr r1, _081922A4 - ldr r1, [r1] - adds r1, r1, r5 - strb r0, [r1] - movs r0, #0x1e - ldr r4, [sp, #0x1c] - ands r0, r4 - cmp r0, #0 - beq _08192258 - ldr r2, _081922A8 - ldr r0, _081922A4 - ldr r0, [r0] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_08192258: - movs r7, #0 - ldr r0, [sp, #0x20] - lsls r0, r0, #1 - str r0, [sp, #0x3c] - adds r1, r5, #2 - ldr r2, [sp, #0x28] - lsls r2, r2, #0x18 - str r2, [sp, #0x44] - ldr r3, [sp, #0x28] - adds r3, #4 - str r3, [sp, #0x40] - ldr r4, [sp, #0x20] - adds r0, r0, r4 - ldr r6, _081922A4 - ldr r2, _081922A8 - mov sl, r2 - adds r4, r1, #0 - lsls r5, r0, #1 - movs r3, #0 - mov sb, r3 -_08192280: - ldr r0, _081922AC - ldr r1, [sp, #0x24] - cmp r1, r0 - bne _081922BC - ldr r0, _081922B0 - ldr r0, [r0] - ldr r2, _081922B4 - adds r0, r0, r2 - adds r0, r0, r5 - ldrh r0, [r0] - ldr r1, _081922B8 - adds r1, r7, r1 - ldrb r2, [r1] - ldr r3, [sp, #0x2c] - orrs r2, r3 - b _0819230C - .align 2, 0 -_081922A0: .4byte 0x0000FFFF -_081922A4: .4byte gUnknown_203CA44 -_081922A8: .4byte gUnknown_20205AC -_081922AC: .4byte 0x000003FF -_081922B0: .4byte gUnknown_3005AF0 -_081922B4: .4byte 0x00000D64 -_081922B8: .4byte gUnknown_85D5DBC -_081922BC: - ldr r0, _081922DC - ldr r3, [sp, #0x24] - cmp r3, r0 - bne _081922EC - ldr r0, _081922E0 - ldr r0, [r0] - ldr r1, _081922E4 - adds r0, r0, r1 - adds r0, r0, r5 - ldrh r0, [r0] - ldr r1, _081922E8 - adds r1, r7, r1 - ldrb r2, [r1] - ldr r3, [sp, #0x2c] - orrs r2, r3 - b _0819230C - .align 2, 0 -_081922DC: .4byte 0x000003FE -_081922E0: .4byte gUnknown_3005AF0 -_081922E4: .4byte 0x00000D64 -_081922E8: .4byte gUnknown_85D5DBC -_081922EC: - ldr r0, _081923C0 - ldr r0, [r0] - ldr r3, _081923C4 - adds r0, r0, r3 - adds r0, r0, r5 - ldrh r1, [r0] - ldr r0, _081923C8 - ldr r0, [r0] - lsls r1, r1, #4 - adds r1, r1, r0 - ldrh r0, [r1] - ldr r1, _081923CC - adds r1, r7, r1 - ldrb r2, [r1] - ldr r1, [sp, #0x2c] - orrs r2, r1 -_0819230C: - ldr r1, _081923D0 - adds r1, r7, r1 - ldrb r3, [r1] - ldr r1, [sp, #0x30] - adds r3, r3, r1 - mov r1, sb - str r1, [sp] - str r1, [sp, #4] - movs r1, #1 - str r1, [sp, #8] - ldr r1, _081923D4 - bl CreateMonIcon - ldr r1, [r6] - adds r1, r1, r4 - strb r0, [r1] - ldr r0, [r6] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sl - ldrb r1, [r0, #5] - movs r2, #0xd - rsbs r2, r2, #0 - ands r1, r2 - strb r1, [r0, #5] - movs r0, #0x1e - ldr r3, [sp, #0x1c] - ands r0, r3 - cmp r0, #0 - beq _08192366 - ldr r0, [r6] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sl - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_08192366: - adds r4, #1 - adds r5, #2 - adds r7, #1 - cmp r7, #2 - ble _08192280 - add r0, sp, #0xc - movs r2, #0 - movs r3, #2 - strb r3, [r0, #5] - strb r2, [r0, #6] - strb r2, [r0, #7] - adds r1, r0, #0 - adds r0, r2, #0 - strb r0, [r1, #8] - adds r0, r1, #0 - ldrb r0, [r0, #7] - strb r0, [r1, #9] - adds r0, r1, #0 - strb r3, [r0, #0xa] - strb r2, [r0, #0xb] - adds r3, r0, #0 - ldrb r2, [r3, #0xc] - movs r1, #0x10 - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3, #0xc] - adds r2, r3, #0 - movs r0, #0xe0 - strb r0, [r2, #0xc] - ldrb r0, [r2, #0xd] - ands r1, r0 - strb r1, [r2, #0xd] - adds r1, r2, #0 - movs r0, #0xd0 - strb r0, [r1, #0xd] - movs r7, #0 - ldr r0, _081923D8 - ldr r4, [sp, #0x24] - cmp r4, r0 - bne _081923E0 - ldr r0, _081923DC - adds r0, #0x3c - ldrb r5, [r0] - b _081923FE - .align 2, 0 -_081923C0: .4byte gUnknown_3005AF0 -_081923C4: .4byte 0x00000D64 -_081923C8: .4byte gUnknown_203B958 -_081923CC: .4byte gUnknown_85D5DBC -_081923D0: .4byte gUnknown_85D5DBF -_081923D4: .4byte SpriteCb_MonIcon -_081923D8: .4byte 0x000003FF -_081923DC: .4byte gUnknown_82EFF52 -_081923E0: - ldr r0, _081923F0 - ldr r1, [sp, #0x24] - cmp r1, r0 - bne _081923F4 - bl sub_08195524 - b _081923FA - .align 2, 0 -_081923F0: .4byte 0x000003FE -_081923F4: - ldr r0, [sp, #0x24] - bl GetFrontierOpponentClass -_081923FA: - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_081923FE: - ldr r2, _0819244C - movs r0, #0xb - adds r1, r5, #0 - muls r1, r0, r1 - adds r0, r7, r1 - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #0xff - beq _08192426 - ldr r3, _08192450 - adds r0, r1, r2 - adds r2, r7, r0 -_08192416: - adds r0, r7, r3 - ldrb r1, [r2] - strb r1, [r0] - adds r2, #1 - adds r7, #1 - ldrb r0, [r2] - cmp r0, #0xff - bne _08192416 -_08192426: - ldr r5, _08192450 - adds r1, r7, r5 - movs r0, #0 - strb r0, [r1] - adds r0, r7, #1 - adds r0, r0, r5 - movs r1, #0xff - strb r1, [r0] - ldr r0, _08192454 - ldr r2, [sp, #0x24] - cmp r2, r0 - bne _0819245C - ldr r0, _08192458 - ldr r1, [r0] - adds r0, r5, #0 - bl StringAppend - b _08192492 - .align 2, 0 -_0819244C: .4byte gUnknown_82E3564 -_08192450: .4byte gUnknown_2021C40 -_08192454: .4byte 0x000003FF -_08192458: .4byte gUnknown_3005AF0 -_0819245C: - ldr r0, _08192478 - ldr r3, [sp, #0x24] - cmp r3, r0 - bne _08192480 - ldr r4, _0819247C - adds r0, r4, #0 - bl CopyDomeBrainTrainerName - adds r0, r5, #0 - adds r1, r4, #0 - bl StringAppend - b _08192492 - .align 2, 0 -_08192478: .4byte 0x000003FE -_0819247C: .4byte gUnknown_2021C54 -_08192480: - ldr r4, _081924F4 - ldr r1, [sp, #0x24] - adds r0, r4, #0 - bl CopyDomeTrainerName - adds r0, r5, #0 - adds r1, r4, #0 - bl StringAppend -_08192492: - ldr r0, _081924F8 - str r0, [sp, #0xc] - add r0, sp, #0xc - movs r5, #0 - add r4, sp, #0x28 - ldrb r4, [r4] - strb r4, [r0, #4] - ldr r0, [sp, #0x44] - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl PutWindowTilemap - adds r0, r4, #0 - movs r1, #3 - bl CopyWindowToVram - add r0, sp, #0xc - movs r1, #0 - movs r2, #0 - bl AddTextPrinter - add r0, sp, #0xc - strb r5, [r0, #0xa] - movs r7, #0 - add r1, sp, #0xc - mov sb, r1 - ldr r2, [sp, #0x3c] - ldr r3, [sp, #0x20] - adds r0, r2, r3 - lsls r6, r0, #1 - ldr r4, _081924FC - mov sl, r4 -_081924D2: - ldr r0, _08192500 - adds r0, r7, r0 - ldrb r0, [r0] - mov r1, sb - strb r0, [r1, #9] - ldr r0, _08192504 - ldr r2, [sp, #0x24] - cmp r2, r0 - bne _08192510 - ldr r3, _08192508 - ldr r1, [r3] - lsls r0, r7, #1 - adds r0, r0, r6 - ldr r4, _0819250C - adds r1, r1, r4 - b _0819254A - .align 2, 0 -_081924F4: .4byte gUnknown_2021C54 -_081924F8: .4byte gUnknown_2021C40 -_081924FC: .4byte gUnknown_82EA31C -_08192500: .4byte gUnknown_85D5DC2 -_08192504: .4byte 0x000003FF -_08192508: .4byte gUnknown_3005AF0 -_0819250C: .4byte 0x00000D64 -_08192510: - ldr r0, _08192528 - ldr r1, [sp, #0x24] - cmp r1, r0 - bne _08192534 - ldr r2, _0819252C - ldr r1, [r2] - lsls r0, r7, #1 - adds r0, r0, r6 - ldr r3, _08192530 - adds r1, r1, r3 - b _0819254A - .align 2, 0 -_08192528: .4byte 0x000003FE -_0819252C: .4byte gUnknown_3005AF0 -_08192530: .4byte 0x00000D64 -_08192534: - ldr r4, _081925A4 - ldr r1, [r4] - lsls r0, r7, #1 - adds r0, r0, r6 - ldr r2, _081925A8 - adds r1, r1, r2 - adds r1, r1, r0 - ldrh r1, [r1] - ldr r0, _081925AC - ldr r0, [r0] - lsls r1, r1, #4 -_0819254A: - adds r1, r1, r0 - ldrh r1, [r1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - add r0, sl - str r0, [sp, #0xc] - adds r5, r7, #1 - ldr r3, [sp, #0x28] - adds r4, r5, r3 - mov r0, sb - strb r4, [r0, #4] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl PutWindowTilemap - adds r0, r4, #0 - movs r1, #3 - bl CopyWindowToVram - add r0, sp, #0xc - movs r1, #0 - movs r2, #0 - bl AddTextPrinter - adds r7, r5, #0 - cmp r7, #2 - ble _081924D2 - ldr r4, [sp, #0x40] - adds r0, r4, #0 - bl PutWindowTilemap - adds r0, r4, #0 - movs r1, #3 - bl CopyWindowToVram - ldr r0, _081925B0 - ldr r1, [sp, #0x24] - cmp r1, r0 - bne _081925B8 - ldr r0, _081925B4 - ldr r0, [r0, #0x40] - b _081925C2 - .align 2, 0 -_081925A4: .4byte gUnknown_3005AF0 -_081925A8: .4byte 0x00000D64 -_081925AC: .4byte gUnknown_203B958 -_081925B0: .4byte 0x000003FE -_081925B4: .4byte gUnknown_85D5C4C -_081925B8: - ldr r0, _08192628 - ldr r2, [sp, #0x20] - lsls r1, r2, #2 - adds r1, r1, r0 - ldr r0, [r1] -_081925C2: - str r0, [sp, #0xc] - add r1, sp, #0xc - movs r0, #1 - strb r0, [r1, #5] - adds r0, r1, #0 - add r3, sp, #0x40 - ldrb r3, [r3] - strb r3, [r0, #4] - movs r1, #5 - strb r1, [r0, #7] - strb r1, [r0, #9] - movs r1, #0 - movs r2, #0 - bl AddTextPrinter - movs r7, #0 - ldr r3, _0819262C -_081925E4: - movs r5, #0 - adds r4, r7, #1 - str r4, [sp, #0x38] - lsls r0, r7, #1 - str r0, [sp, #0x34] - lsls r2, r7, #4 -_081925F0: - movs r6, #0 - lsls r1, r5, #1 - mov sl, r1 - mov r4, r8 - mov sb, r2 -_081925FA: - ldr r0, _08192630 - ldr r1, [sp, #0x24] - cmp r1, r0 - bne _08192634 - lsls r0, r7, #0x18 - lsls r1, r5, #0x18 - lsrs r0, r0, #0x18 - lsrs r1, r1, #0x18 - str r2, [sp, #0x48] - str r3, [sp, #0x4c] - bl GetFrontierBrainMonMove - lsls r0, r0, #0x10 - lsrs r0, r0, #0xc - adds r0, r6, r0 - ldr r3, [sp, #0x4c] - adds r0, r0, r3 - ldrh r1, [r4] - ldrb r0, [r0] - adds r1, r1, r0 - strh r1, [r4] - ldr r2, [sp, #0x48] - b _0819268C - .align 2, 0 -_08192628: .4byte gUnknown_85D5C4C -_0819262C: .4byte gUnknown_85D3DFC -_08192630: .4byte 0x000003FE -_08192634: - ldr r0, _08192648 - ldr r1, [sp, #0x24] - cmp r1, r0 - bne _08192654 - ldr r0, _0819264C - ldr r0, [r0] - ldr r1, _08192650 - adds r0, r0, r1 - add r0, sb - b _0819267C - .align 2, 0 -_08192648: .4byte 0x000003FF -_0819264C: .4byte gUnknown_3005AF0 -_08192650: .4byte 0x00000EFC -_08192654: - ldr r0, _0819273C - ldr r0, [r0] - mov ip, r0 - ldr r0, [sp, #0x3c] - ldr r1, [sp, #0x20] - adds r0, r0, r1 - str r0, [sp, #0x50] - lsls r0, r0, #1 - ldr r1, [sp, #0x34] - adds r0, r1, r0 - ldr r1, _08192740 - add r1, ip - adds r1, r1, r0 - ldrh r0, [r1] - ldr r1, _08192744 - ldr r1, [r1] - lsls r0, r0, #4 - adds r0, r0, r1 - adds r0, #2 - add r0, sl -_0819267C: - ldrh r0, [r0] - lsls r0, r0, #4 - adds r0, r6, r0 - adds r0, r0, r3 - ldrh r1, [r4] - ldrb r0, [r0] - adds r1, r1, r0 - strh r1, [r4] -_0819268C: - adds r4, #2 - adds r6, #1 - cmp r6, #0xf - ble _081925FA - adds r2, #2 - adds r5, #1 - cmp r5, #3 - ble _081925F0 - ldr r7, [sp, #0x38] - cmp r7, #2 - ble _081925E4 - movs r7, #0 - ldr r2, _08192748 - mov sb, r2 - ldr r3, _0819274C - mov sl, r3 -_081926AC: - movs r4, #0 - movs r6, #0 - movs r5, #0 - mov r3, r8 - lsls r0, r7, #4 - mov r1, sl - adds r2, r0, r1 -_081926BA: - ldrb r0, [r2] - cmp r0, #0 - beq _081926D2 - adds r4, #1 - movs r1, #0 - ldrsh r0, [r3, r1] - cmp r0, #0 - beq _081926D2 - ldrb r1, [r2] - cmp r0, r1 - blt _081926D2 - adds r6, #1 -_081926D2: - adds r3, #2 - adds r2, #1 - adds r5, #1 - cmp r5, #0xf - ble _081926BA - cmp r4, r6 - beq _081926E6 - adds r7, #1 - cmp r7, #0x1e - bls _081926AC -_081926E6: - lsls r0, r7, #2 - add r0, sb - ldr r0, [r0] - str r0, [sp, #0xc] - add r0, sp, #0xc - movs r1, #0x15 - strb r1, [r0, #7] - strb r1, [r0, #9] - movs r1, #0 - movs r2, #0 - bl AddTextPrinter - movs r1, #0 - mov r0, r8 - adds r0, #0x22 -_08192704: - strh r1, [r0] - subs r0, #2 - cmp r0, r8 - bge _08192704 - ldr r2, [sp, #0x24] - ldr r3, _08192750 - adds r0, r2, r3 - cmp r0, #1 - bls _08192718 - b _08192858 -_08192718: - movs r7, #0 - movs r4, #0 - mov sb, r4 -_0819271E: - movs r5, #0 - mov r4, r8 - mov r6, sb -_08192724: - ldr r0, _08192754 - ldr r1, [sp, #0x24] - cmp r1, r0 - bne _08192758 - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - lsrs r0, r6, #0x18 - bl GetFrontierBrainMonEvs - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _08192768 - .align 2, 0 -_0819273C: .4byte gUnknown_3005AF0 -_08192740: .4byte 0x00000D64 -_08192744: .4byte gUnknown_203B958 -_08192748: .4byte gUnknown_85D5C90 -_0819274C: .4byte gUnknown_85D542C -_08192750: .4byte 0xFFFFFC02 -_08192754: .4byte 0x000003FE -_08192758: - ldr r0, _08192798 - ldr r0, [r0] - lsls r1, r7, #4 - adds r1, r5, r1 - ldr r2, _0819279C - adds r0, r0, r2 - adds r0, r0, r1 - ldrb r0, [r0] -_08192768: - strh r0, [r4] - adds r4, #2 - adds r5, #1 - cmp r5, #5 - ble _08192724 - mov r3, r8 - ldrh r0, [r3] - ldrh r4, [r3, #0xc] - adds r0, r0, r4 - strh r0, [r3, #0xc] - movs r5, #0 - mov r4, r8 -_08192780: - ldr r0, _081927A0 - ldr r1, [sp, #0x24] - cmp r1, r0 - bne _081927A4 - mov r2, sb - lsrs r0, r2, #0x18 - bl GetFrontierBrainMonNature - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - b _081927B2 - .align 2, 0 -_08192798: .4byte gUnknown_3005AF0 -_0819279C: .4byte 0x00000F04 -_081927A0: .4byte 0x000003FE -_081927A4: - ldr r0, _081927DC - ldr r0, [r0] - lsls r1, r7, #4 - adds r0, r0, r1 - ldr r3, _081927E0 - adds r0, r0, r3 - ldrb r2, [r0] -_081927B2: - ldr r1, _081927E4 - lsls r0, r2, #2 - adds r0, r0, r2 - adds r0, r5, r0 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _081927E8 - movs r0, #2 - ldrsh r1, [r4, r0] - movs r0, #0x6e - muls r0, r1, r0 - movs r1, #0x64 - bl __divsi3 - ldrh r1, [r4, #0xe] - adds r1, r1, r0 - strh r1, [r4, #0xe] - b _08192810 - .align 2, 0 -_081927DC: .4byte gUnknown_3005AF0 -_081927E0: .4byte 0x00000F0A -_081927E4: .4byte gUnknown_82EF1A0 -_081927E8: - cmp r0, #0 - bge _08192808 - movs r2, #2 - ldrsh r1, [r4, r2] - movs r0, #0x5a - muls r0, r1, r0 - movs r1, #0x64 - bl __divsi3 - ldrh r1, [r4, #0xe] - adds r1, r1, r0 - strh r1, [r4, #0xe] - ldrh r0, [r4, #0x1a] - adds r0, #1 - strh r0, [r4, #0x1a] - b _08192810 -_08192808: - ldrh r0, [r4, #2] - ldrh r3, [r4, #0xe] - adds r0, r0, r3 - strh r0, [r4, #0xe] -_08192810: - adds r4, #2 - adds r5, #1 - cmp r5, #4 - ble _08192780 - movs r4, #0x80 - lsls r4, r4, #0x11 - add sb, r4 - adds r7, #1 - cmp r7, #2 - bgt _08192826 - b _0819271E -_08192826: - movs r5, #0 - mov r1, r8 - movs r7, #5 -_0819282C: - movs r2, #0xc - ldrsh r0, [r1, r2] - adds r5, r5, r0 - adds r1, #2 - subs r7, #1 - cmp r7, #0 - bge _0819282C - movs r6, #0x64 - mov r4, r8 - movs r7, #5 -_08192840: - movs r3, #0xc - ldrsh r0, [r4, r3] - muls r0, r6, r0 - adds r1, r5, #0 - bl __divsi3 - strh r0, [r4] - adds r4, #2 - subs r7, #1 - cmp r7, #0 - bge _08192840 - b _081929A4 -_08192858: - ldr r4, _08192928 - mov sl, r4 - ldr r1, [sp, #0x3c] - ldr r2, [sp, #0x20] - adds r0, r1, r2 - lsls r0, r0, #1 - mov sb, r0 - movs r7, #2 -_08192868: - ldr r3, _0819292C - ldr r0, [r3] - ldr r4, _08192930 - adds r0, r0, r4 - add r0, sb - ldrh r0, [r0] - mov r2, sl - ldr r1, [r2] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrb r2, [r0, #0xb] - movs r6, #0 - movs r4, #0 - movs r3, #1 - mov r1, r8 - movs r5, #5 -_08192888: - strh r4, [r1] - adds r0, r2, #0 - ands r0, r3 - cmp r0, #0 - beq _08192894 - adds r6, #1 -_08192894: - asrs r2, r2, #1 - adds r1, #2 - subs r5, #1 - cmp r5, #0 - bge _08192888 - movs r0, #0xff - lsls r0, r0, #1 - adds r1, r6, #0 - bl __divsi3 - adds r6, r0, #0 - ldr r3, _0819292C - ldr r0, [r3] - ldr r4, _08192930 - adds r0, r0, r4 - add r0, sb - ldrh r0, [r0] - mov r2, sl - ldr r1, [r2] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrb r2, [r0, #0xb] - movs r3, #1 - mov r1, r8 - movs r5, #5 -_081928C6: - adds r0, r2, #0 - ands r0, r3 - cmp r0, #0 - beq _081928D0 - strh r6, [r1] -_081928D0: - asrs r2, r2, #1 - adds r1, #2 - subs r5, #1 - cmp r5, #0 - bge _081928C6 - mov r3, r8 - ldrh r0, [r3] - ldrh r4, [r3, #0xc] - adds r0, r0, r4 - strh r0, [r3, #0xc] - movs r5, #0 - mov r4, r8 -_081928E8: - ldr r1, _0819292C - ldr r0, [r1] - ldr r2, _08192930 - adds r0, r0, r2 - add r0, sb - ldrh r0, [r0] - mov r3, sl - ldr r1, [r3] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrb r2, [r0, #0xc] - lsls r0, r2, #2 - adds r0, r0, r2 - adds r0, r5, r0 - ldr r1, _08192934 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _08192938 - movs r2, #2 - ldrsh r1, [r4, r2] - movs r0, #0x6e - muls r0, r1, r0 - movs r1, #0x64 - bl __divsi3 - ldrh r1, [r4, #0xe] - adds r1, r1, r0 - strh r1, [r4, #0xe] - b _08192960 - .align 2, 0 -_08192928: .4byte gUnknown_203B958 -_0819292C: .4byte gUnknown_3005AF0 -_08192930: .4byte 0x00000D64 -_08192934: .4byte gUnknown_82EF1A0 -_08192938: - cmp r0, #0 - bge _08192958 - movs r3, #2 - ldrsh r1, [r4, r3] - movs r0, #0x5a - muls r0, r1, r0 - movs r1, #0x64 - bl __divsi3 - ldrh r1, [r4, #0xe] - adds r1, r1, r0 - strh r1, [r4, #0xe] - ldrh r0, [r4, #0x1a] - adds r0, #1 - strh r0, [r4, #0x1a] - b _08192960 -_08192958: - ldrh r0, [r4, #2] - ldrh r1, [r4, #0xe] - adds r0, r0, r1 - strh r0, [r4, #0xe] -_08192960: - adds r4, #2 - adds r5, #1 - cmp r5, #4 - ble _081928E8 - movs r2, #2 - add sb, r2 - subs r7, #1 - cmp r7, #0 - blt _08192974 - b _08192868 -_08192974: - movs r5, #0 - mov r1, r8 - movs r7, #5 -_0819297A: - movs r3, #0xc - ldrsh r0, [r1, r3] - adds r5, r5, r0 - adds r1, #2 - subs r7, #1 - cmp r7, #0 - bge _0819297A - movs r6, #0x64 - mov r4, r8 - movs r7, #5 -_0819298E: - movs r1, #0xc - ldrsh r0, [r4, r1] - muls r0, r6, r0 - adds r1, r5, #0 - bl __divsi3 - strh r0, [r4] - adds r4, #2 - subs r7, #1 - cmp r7, #0 - bge _0819298E -_081929A4: - movs r7, #0 - movs r5, #0 - movs r6, #0 - mov r4, r8 - mov sl, r8 - mov sb, r8 -_081929B0: - movs r2, #0 - ldrsh r1, [r4, r2] - cmp r1, #0x1d - ble _08192A12 - cmp r7, #2 - bne _08192A08 - mov r3, r8 - movs r0, #0xc - ldrsh r3, [r3, r0] - mov ip, r3 - cmp ip, r1 - bge _081929FA - mov r2, r8 - ldrh r2, [r2, #0xe] - add r3, sp, #0x54 - strh r2, [r3] - mov r2, r8 - movs r3, #0xe - ldrsh r0, [r2, r3] - cmp r0, r1 - bge _081929EE - cmp ip, r0 - bge _081929E8 - add r0, sp, #0x54 - ldrh r0, [r0] - strh r0, [r2, #0xc] - strh r6, [r2, #0xe] - b _08192A12 -_081929E8: - mov r1, r8 - strh r6, [r1, #0xe] - b _08192A12 -_081929EE: - add r2, sp, #0x54 - ldrh r3, [r2] - mov r2, r8 - strh r3, [r2, #0xc] - strh r6, [r2, #0xe] - b _08192A12 -_081929FA: - mov r3, r8 - movs r2, #0xe - ldrsh r0, [r3, r2] - cmp r0, r1 - bge _08192A12 - strh r6, [r3, #0xe] - b _08192A12 -_08192A08: - mov r3, sb - strh r6, [r3, #0xc] - movs r0, #2 - add sb, r0 - adds r7, #1 -_08192A12: - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08192A98 - cmp r5, #2 - bne _08192A8E - movs r2, #0x18 - ldrsh r0, [r4, r2] - cmp r0, #1 - bgt _08192A4C - cmp r0, #1 - bne _08192A98 - mov r3, r8 - movs r1, #0x10 - ldrsh r0, [r3, r1] - lsls r0, r0, #1 - add r0, r8 - movs r2, #0x18 - ldrsh r0, [r0, r2] - cmp r0, #0 - bne _08192A56 - movs r1, #0x12 - ldrsh r0, [r3, r1] - lsls r0, r0, #1 - add r0, r8 - movs r2, #0x18 - ldrsh r0, [r0, r2] - cmp r0, #0 - bne _08192A56 -_08192A4C: - mov r3, r8 - ldrh r0, [r3, #0x12] - strh r0, [r3, #0x10] - strh r6, [r3, #0x12] - b _08192A98 -_08192A56: - movs r1, #0x18 - ldrsh r0, [r4, r1] - cmp r0, #1 - bne _08192A98 - mov r2, r8 - movs r3, #0x10 - ldrsh r0, [r2, r3] - lsls r0, r0, #1 - add r0, r8 - movs r1, #0x18 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08192A78 - ldrh r0, [r2, #0x12] - strh r0, [r2, #0x10] - strh r6, [r2, #0x12] - b _08192A98 -_08192A78: - mov r2, r8 - movs r3, #0x12 - ldrsh r0, [r2, r3] - lsls r0, r0, #1 - add r0, r8 - movs r1, #0x18 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08192A98 - strh r6, [r2, #0x12] - b _08192A98 -_08192A8E: - mov r2, sl - strh r6, [r2, #0x10] - movs r3, #2 - add sl, r3 - adds r5, #1 -_08192A98: - adds r4, #2 - adds r6, #1 - cmp r6, #5 - ble _081929B0 - cmp r7, #2 - bne _08192AC0 - ldr r0, _08192ABC - mov r4, r8 - movs r1, #0xc - ldrsh r2, [r4, r1] - adds r0, r2, r0 - movs r3, #0xe - ldrsh r1, [r4, r3] - subs r1, #1 - subs r1, r1, r2 - ldrb r0, [r0] - adds r7, r1, r0 - b _08192B06 - .align 2, 0 -_08192ABC: .4byte gUnknown_85D5DC5 -_08192AC0: - cmp r7, #1 - bne _08192AD0 - mov r4, r8 - movs r1, #0xc - ldrsh r0, [r4, r1] - adds r7, r0, #0 - adds r7, #0xf - b _08192B06 -_08192AD0: - cmp r5, #2 - bne _08192AF4 - ldr r0, _08192AF0 - mov r3, r8 - movs r4, #0x10 - ldrsh r2, [r3, r4] - adds r0, r2, r0 - movs r4, #0x12 - ldrsh r1, [r3, r4] - subs r1, #1 - subs r1, r1, r2 - ldrb r0, [r0] - adds r1, r1, r0 - adds r7, r1, #0 - adds r7, #0x15 - b _08192B06 - .align 2, 0 -_08192AF0: .4byte gUnknown_85D5DC5 -_08192AF4: - cmp r5, #1 - bne _08192B04 - mov r1, r8 - movs r2, #0x10 - ldrsh r0, [r1, r2] - adds r7, r0, #0 - adds r7, #0x24 - b _08192B06 -_08192B04: - movs r7, #0x2a -_08192B06: - lsls r0, r7, #2 - ldr r3, _08192B38 - adds r0, r0, r3 - ldr r0, [r0] - str r0, [sp, #0xc] - add r0, sp, #0xc - movs r1, #0x25 - strb r1, [r0, #7] - strb r1, [r0, #9] - movs r1, #0 - movs r2, #0 - bl AddTextPrinter - mov r0, r8 - bl Free - add sp, #0x58 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08192B38: .4byte gUnknown_85D5D10 - thumb_func_end DisplayTrainerInfoOnCard - - thumb_func_start sub_08192B3C -sub_08192B3C: @ 0x08192B3C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - str r1, [sp] - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r0, #0 - str r0, [sp, #4] - mov r8, r0 - ldr r2, _08192BB0 - lsls r0, r7, #1 - adds r0, r0, r7 - adds r1, r0, r2 - ldrb r6, [r1] - adds r1, r2, #1 - adds r0, r0, r1 - ldrb r0, [r0] - adds r0, r6, r0 - adds r3, r2, #0 - cmp r6, r0 - bge _08192C08 - ldr r5, _08192BB4 - ldr r1, _08192BB8 - mov sl, r1 - ldr r2, _08192BBC - mov sb, r2 -_08192B76: - ldr r0, _08192BC0 - adds r0, r6, r0 - ldrb r4, [r0] - ldr r0, [r5] - lsls r1, r4, #2 - adds r0, r0, r1 - ldr r2, _08192BC4 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - blt _08192BF2 - ldr r0, [sp] - add r0, r8 - strb r4, [r0] - ldr r2, [r5] - adds r0, r2, r1 - ldr r1, _08192BC8 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r1, r0, #0x16 - lsrs r0, r1, #0x16 - cmp r0, sl - bne _08192BD0 - ldr r0, _08192BCC - adds r1, r2, #0 - bl StringCopy - b _08192BEC - .align 2, 0 -_08192BB0: .4byte gUnknown_85D5E40 -_08192BB4: .4byte gUnknown_3005AF0 -_08192BB8: .4byte 0x000003FF -_08192BBC: .4byte 0x000003FE -_08192BC0: .4byte gUnknown_85D5E30 -_08192BC4: .4byte 0x00000D25 -_08192BC8: .4byte 0x00000D24 -_08192BCC: .4byte gUnknown_2021C40 -_08192BD0: - lsrs r0, r1, #0x16 - cmp r0, sb - bne _08192BE4 - ldr r0, _08192BE0 - bl CopyDomeBrainTrainerName - b _08192BEC - .align 2, 0 -_08192BE0: .4byte gUnknown_2021C40 -_08192BE4: - lsrs r1, r1, #0x16 - ldr r0, _08192C14 - bl CopyDomeTrainerName -_08192BEC: - movs r2, #1 - add r8, r2 - ldr r3, _08192C18 -_08192BF2: - adds r6, #1 - lsls r1, r7, #1 - adds r1, r1, r7 - adds r0, r1, r3 - ldrb r2, [r0] - adds r0, r3, #1 - adds r1, r1, r0 - ldrb r0, [r1] - adds r2, r2, r0 - cmp r6, r2 - blt _08192B76 -_08192C08: - mov r5, r8 - cmp r5, #2 - bne _08192C1C - movs r0, #0 - b _08192D6C - .align 2, 0 -_08192C14: .4byte gUnknown_2021C40 -_08192C18: .4byte gUnknown_85D5E40 -_08192C1C: - mov ip, r3 - lsls r3, r7, #1 - adds r0, r3, r7 - mov r2, ip - adds r1, r0, r2 - ldrb r6, [r1] - mov r1, ip - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - adds r0, r6, r0 - str r3, [sp, #8] - cmp r6, r0 - blt _08192C3A - b _08192D56 -_08192C3A: - ldr r5, _08192CD8 - mov sl, r5 - ldr r0, _08192CDC - mov sb, r0 -_08192C42: - ldr r0, _08192CE0 - adds r0, r6, r0 - ldrb r4, [r0] - mov r1, sl - ldr r0, [r1] - lsls r2, r4, #2 - str r2, [sp, #0xc] - adds r0, r0, r2 - add r0, sb - ldrb r2, [r0] - lsls r0, r2, #0x1d - cmp r0, #0 - bge _08192D30 - lsls r2, r2, #0x1b - adds r1, r3, r7 - mov r0, ip - adds r0, #2 - adds r1, r1, r0 - lsrs r2, r2, #0x1e - ldrb r1, [r1] - cmp r2, r1 - blo _08192D30 - ldr r0, [sp] - add r0, r8 - strb r4, [r0] - movs r5, #1 - add r8, r5 - mov r0, sl - ldr r3, [r0] - ldr r5, [sp, #0xc] - adds r2, r3, r5 - adds r0, r2, #0 - add r0, sb - ldrb r5, [r0] - mov ip, r5 - mov r0, ip - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1e - cmp r0, r1 - bne _08192CEC - lsls r4, r4, #1 - movs r1, #0xec - lsls r1, r1, #4 - adds r0, r3, r1 - adds r0, r0, r4 - ldrh r1, [r0] - lsls r1, r1, #3 - ldr r0, _08192CE4 - adds r1, r1, r0 - ldr r0, _08192CE8 - bl StringCopy - mov r2, sl - ldr r1, [r2] - ldr r5, [sp, #0xc] - adds r0, r1, r5 - add r0, sb - ldrb r0, [r0] - lsls r2, r0, #0x18 - lsrs r0, r2, #0x1d - lsls r0, r0, #1 - str r0, [sp, #4] - movs r0, #0xec - lsls r0, r0, #4 - adds r1, r1, r0 - adds r1, r1, r4 - ldrh r0, [r1] - cmp r0, #0 - bne _08192D30 - lsrs r0, r2, #0x1d - cmp r0, #0 - bne _08192D30 - movs r1, #4 - str r1, [sp, #4] - b _08192D30 - .align 2, 0 -_08192CD8: .4byte gUnknown_3005AF0 -_08192CDC: .4byte 0x00000D25 -_08192CE0: .4byte gUnknown_85D5E30 -_08192CE4: .4byte gUnknown_82EACC4 -_08192CE8: .4byte gUnknown_2021C54 -_08192CEC: - ldr r5, _08192D04 - adds r0, r2, r5 - ldrh r0, [r0] - lsls r1, r0, #0x16 - ldr r0, _08192D08 - cmp r1, r0 - bne _08192D10 - ldr r0, _08192D0C - adds r1, r3, #0 - bl StringCopy - b _08192D30 - .align 2, 0 -_08192D04: .4byte 0x00000D24 -_08192D08: .4byte 0xFFC00000 -_08192D0C: .4byte gUnknown_2021C40 -_08192D10: - ldr r0, _08192D20 - cmp r1, r0 - bne _08192D28 - ldr r0, _08192D24 - bl CopyDomeBrainTrainerName - b _08192D30 - .align 2, 0 -_08192D20: .4byte 0xFF800000 -_08192D24: .4byte gUnknown_2021C40 -_08192D28: - lsrs r1, r1, #0x16 - ldr r0, _08192D60 - bl CopyDomeTrainerName -_08192D30: - mov r0, r8 - cmp r0, #2 - beq _08192D56 - adds r6, #1 - ldr r1, _08192D64 - mov ip, r1 - ldr r3, [sp, #8] - adds r1, r3, r7 - mov r2, ip - adds r0, r1, r2 - ldrb r2, [r0] - mov r0, ip - adds r0, #1 - adds r1, r1, r0 - ldrb r0, [r1] - adds r2, r2, r0 - cmp r6, r2 - bge _08192D56 - b _08192C42 -_08192D56: - cmp r7, #0xe - beq _08192D68 - ldr r0, [sp, #4] - adds r0, #1 - b _08192D6C - .align 2, 0 -_08192D60: .4byte gUnknown_2021C40 -_08192D64: .4byte gUnknown_85D5E40 -_08192D68: - ldr r0, [sp, #4] - adds r0, #2 -_08192D6C: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_08192B3C - - thumb_func_start DisplayMatchInfoOnCard -DisplayMatchInfoOnCard: @ 0x08192D7C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x80 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x34] - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - movs r0, #0 - str r0, [sp, #0x3c] - movs r7, #0 - movs r1, #0 - str r1, [sp, #0x40] - movs r2, #0 - str r2, [sp, #0x44] - mov sb, r2 - movs r0, #1 - ldr r3, [sp, #0x34] - ands r0, r3 - cmp r0, #0 - beq _08192DB6 - movs r7, #8 - str r7, [sp, #0x3c] - movs r7, #9 - movs r0, #2 - mov sb, r0 -_08192DB6: - movs r0, #2 - ldr r1, [sp, #0x34] - ands r0, r1 - cmp r0, #0 - beq _08192DC6 - movs r2, #0x80 - lsls r2, r2, #1 - str r2, [sp, #0x40] -_08192DC6: - movs r0, #4 - ldr r3, [sp, #0x34] - ands r0, r3 - cmp r0, #0 - beq _08192DD4 - movs r0, #0xa0 - str r0, [sp, #0x44] -_08192DD4: - movs r0, #8 - ldr r1, [sp, #0x34] - ands r0, r1 - cmp r0, #0 - beq _08192DE2 - ldr r2, _08192EB4 - str r2, [sp, #0x40] -_08192DE2: - movs r0, #0x10 - ldr r3, [sp, #0x34] - ands r0, r3 - cmp r0, #0 - beq _08192DF2 - movs r0, #0xa0 - rsbs r0, r0, #0 - str r0, [sp, #0x44] -_08192DF2: - ldr r4, _08192EB8 - ldr r1, [r4] - adds r1, #0x11 - adds r0, r6, #0 - bl sub_08192B3C - str r0, [sp, #0x38] - movs r5, #0 - mov r1, sp - adds r1, #0x1c - str r1, [sp, #0x4c] - mov r2, sp - adds r2, #0x24 - str r2, [sp, #0x50] - lsls r1, r6, #1 - mov r3, sp - adds r3, #0x2c - str r3, [sp, #0x54] - ldr r0, [sp, #0x40] - adds r0, #0x30 - mov r8, r0 - ldr r2, [sp, #0x44] - adds r2, #0x58 - str r2, [sp, #0x7c] - movs r3, #0xc - add r3, sb - mov sl, r3 - ldr r0, [sp, #0x40] - adds r0, #0xc0 - str r0, [sp, #0x48] - mov r2, sb - adds r2, #0xd - str r2, [sp, #0x78] - ldr r3, [sp, #0x3c] - adds r3, #1 - mov sb, r3 - ldr r0, [sp, #0x3c] - adds r0, #2 - str r0, [sp, #0x58] - ldr r2, [sp, #0x3c] - adds r2, #5 - str r2, [sp, #0x60] - adds r3, r7, #0 - adds r3, #8 - str r3, [sp, #0x70] - adds r0, r7, #6 - str r0, [sp, #0x68] - adds r2, r7, #7 - str r2, [sp, #0x6c] - lsls r3, r6, #2 - str r3, [sp, #0x5c] - adds r0, r7, #5 - str r0, [sp, #0x64] - ldr r0, [r4] - adds r0, #0x11 - mov ip, r0 - ldr r0, _08192EBC - ldr r4, [r0] - ldr r0, _08192EC0 - movs r3, #0 - adds r1, r1, r6 - adds r1, r1, r0 - ldrb r6, [r1] -_08192E70: - ldr r1, [sp, #0x4c] - adds r2, r3, r1 - mov r7, ip - adds r0, r7, r5 - ldrb r0, [r0] - str r0, [r2] - ldr r7, [sp, #0x50] - adds r1, r3, r7 - lsls r0, r0, #2 - adds r0, r4, r0 - ldr r7, _08192EC4 - adds r0, r0, r7 - ldrh r0, [r0] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - str r0, [r1] - ldr r0, [r2] - lsls r0, r0, #2 - adds r0, r4, r0 - ldr r1, _08192EC8 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #0x1b - lsrs r0, r0, #0x1e - cmp r0, r6 - bhi _08192ECC - lsls r0, r1, #0x1d - cmp r0, #0 - bge _08192ECC - ldr r2, [sp, #0x54] - adds r1, r3, r2 - movs r0, #1 - b _08192ED2 - .align 2, 0 -_08192EB4: .4byte 0xFFFFFF00 -_08192EB8: .4byte gUnknown_203CA44 -_08192EBC: .4byte gUnknown_3005AF0 -_08192EC0: .4byte gUnknown_85D5E42 -_08192EC4: .4byte 0x00000D24 -_08192EC8: .4byte 0x00000D25 -_08192ECC: - ldr r7, [sp, #0x54] - adds r1, r3, r7 - movs r0, #0 -_08192ED2: - str r0, [r1] - adds r3, #4 - adds r5, #1 - cmp r5, #1 - ble _08192E70 - ldr r1, [sp, #0x24] - ldr r0, _08192EFC - cmp r1, r0 - bne _08192F04 - ldr r0, _08192F00 - ldr r0, [r0] - ldrb r0, [r0, #8] - bl PlayerGenderToFrontTrainerPicId - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r2, r8 - ldr r3, [sp, #0x7c] - mov r1, sl - str r1, [sp] - b _08192F28 - .align 2, 0 -_08192EFC: .4byte 0x000003FF -_08192F00: .4byte gUnknown_3005AF0 -_08192F04: - ldr r0, _08192F10 - cmp r1, r0 - bne _08192F14 - bl sub_08195510 - b _08192F1C - .align 2, 0 -_08192F10: .4byte 0x000003FE -_08192F14: - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - bl GetFrontierTrainerFrontSpriteId -_08192F1C: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r2, r8 - ldr r3, [sp, #0x7c] - mov r7, sl - str r7, [sp] -_08192F28: - ldr r1, _08192FA4 - str r1, [sp, #4] - movs r1, #1 - bl CreateTrainerPicSprite - ldr r1, _08192FA8 - ldr r1, [r1] - ldr r2, [sp, #0x3c] - adds r1, r1, r2 - strb r0, [r1] - movs r0, #0x1e - ldr r3, [sp, #0x34] - ands r0, r3 - cmp r0, #0 - beq _08192F64 - ldr r2, _08192FAC - ldr r0, _08192FA8 - ldr r0, [r0] - ldr r7, [sp, #0x3c] - adds r0, r0, r7 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_08192F64: - ldr r0, [sp, #0x2c] - cmp r0, #0 - beq _08192F8A - ldr r2, _08192FAC - ldr r0, _08192FA8 - ldr r0, [r0] - ldr r1, [sp, #0x3c] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r2, [r0, #5] - movs r1, #0xf - ands r1, r2 - movs r2, #0x30 - orrs r1, r2 - strb r1, [r0, #5] -_08192F8A: - ldr r2, [sp, #0x50] - ldr r1, [r2, #4] - ldr r0, _08192FB0 - cmp r1, r0 - bne _08192FB8 - ldr r0, _08192FB4 - ldr r0, [r0] - ldrb r0, [r0, #8] - bl PlayerGenderToFrontTrainerPicId - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b _08192FE0 - .align 2, 0 -_08192FA4: .4byte 0x0000FFFF -_08192FA8: .4byte gUnknown_203CA44 -_08192FAC: .4byte gUnknown_20205AC -_08192FB0: .4byte 0x000003FF -_08192FB4: .4byte gUnknown_3005AF0 -_08192FB8: - ldr r0, _08192FD0 - cmp r1, r0 - bne _08192FD4 - bl sub_08195510 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, [sp, #0x48] - ldr r3, [sp, #0x7c] - ldr r1, [sp, #0x78] - str r1, [sp] - b _08192FE8 - .align 2, 0 -_08192FD0: .4byte 0x000003FE -_08192FD4: - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - bl GetFrontierTrainerFrontSpriteId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_08192FE0: - ldr r2, [sp, #0x48] - ldr r3, [sp, #0x7c] - ldr r7, [sp, #0x78] - str r7, [sp] -_08192FE8: - ldr r1, _0819307C - str r1, [sp, #4] - movs r1, #1 - bl CreateTrainerPicSprite - ldr r1, _08193080 - ldr r1, [r1] - add r1, sb - strb r0, [r1] - movs r0, #0x1e - ldr r1, [sp, #0x34] - ands r0, r1 - cmp r0, #0 - beq _08193020 - ldr r2, _08193084 - ldr r0, _08193080 - ldr r0, [r0] - add r0, sb - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_08193020: - ldr r2, [sp, #0x54] - ldr r0, [r2, #4] - cmp r0, #0 - beq _08193046 - ldr r2, _08193084 - ldr r0, _08193080 - ldr r0, [r0] - add r0, sb - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r2, [r0, #5] - movs r1, #0xf - ands r1, r2 - movs r2, #0x30 - orrs r1, r2 - strb r1, [r0, #5] -_08193046: - movs r5, #0 - ldr r3, [sp, #0x38] - lsls r3, r3, #2 - str r3, [sp, #0x74] - mov r8, r5 - ldr r6, _08193080 - ldr r7, _08193084 - ldr r4, [sp, #0x58] - mov sb, r5 - movs r0, #1 - mov sl, r0 -_0819305C: - ldr r1, [sp, #0x24] - ldr r0, _08193088 - cmp r1, r0 - bne _08193094 - ldr r0, _0819308C - ldr r2, [r0] - ldr r1, [sp, #0x1c] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - add r0, sb - ldr r1, _08193090 - adds r2, r2, r1 - adds r2, r2, r0 - ldrh r0, [r2] - b _081930E0 - .align 2, 0 -_0819307C: .4byte 0x0000FFFF -_08193080: .4byte gUnknown_203CA44 -_08193084: .4byte gUnknown_20205AC -_08193088: .4byte 0x000003FF -_0819308C: .4byte gUnknown_3005AF0 -_08193090: .4byte 0x00000D64 -_08193094: - ldr r0, _081930B4 - cmp r1, r0 - bne _081930C0 - ldr r0, _081930B8 - ldr r2, [r0] - ldr r1, [sp, #0x1c] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - add r0, sb - ldr r1, _081930BC - adds r2, r2, r1 - adds r2, r2, r0 - ldrh r0, [r2] - b _081930E0 - .align 2, 0 -_081930B4: .4byte 0x000003FE -_081930B8: .4byte gUnknown_3005AF0 -_081930BC: .4byte 0x00000D64 -_081930C0: - ldr r0, _081931B8 - ldr r2, [r0] - ldr r1, [sp, #0x1c] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - add r0, sb - ldr r1, _081931BC - adds r2, r2, r1 - adds r2, r2, r0 - ldrh r1, [r2] - ldr r0, _081931C0 - ldr r0, [r0] - lsls r1, r1, #4 - adds r1, r1, r0 - ldrh r0, [r1] -_081930E0: - ldr r1, _081931C4 - adds r1, r5, r1 - ldrb r2, [r1] - ldr r3, [sp, #0x40] - orrs r2, r3 - ldr r1, _081931C8 - adds r1, r5, r1 - ldrb r3, [r1] - ldr r1, [sp, #0x44] - adds r3, r3, r1 - mov r1, r8 - str r1, [sp] - str r1, [sp, #4] - mov r1, sl - str r1, [sp, #8] - ldr r1, _081931CC - bl CreateMonIcon - ldr r1, [r6] - adds r1, r1, r4 - strb r0, [r1] - ldr r0, [r6] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrb r1, [r0, #5] - movs r3, #0xd - rsbs r3, r3, #0 - adds r2, r3, #0 - ands r1, r2 - strb r1, [r0, #5] - movs r0, #0x1e - ldr r1, [sp, #0x34] - ands r0, r1 - cmp r0, #0 - beq _08193146 - ldr r0, [r6] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_08193146: - ldr r0, [sp, #0x2c] - cmp r0, #0 - beq _08193178 - ldr r0, [r6] - adds r0, r0, r4 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r7 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - movs r2, #0x30 - orrs r0, r2 - strb r0, [r1, #5] - ldr r0, [r6] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - mov r2, sl - strh r2, [r0, #0x34] -_08193178: - adds r4, #1 - movs r3, #2 - add sb, r3 - adds r5, #1 - cmp r5, #2 - bgt _08193186 - b _0819305C -_08193186: - movs r5, #0 - ldr r6, _081931D0 - ldr r7, _081931D4 - mov r8, r7 - ldr r4, [sp, #0x60] - mov sb, r5 - movs r7, #0 -_08193194: - ldr r0, [sp, #0x50] - ldr r1, [r0, #4] - ldr r0, _081931D8 - cmp r1, r0 - bne _081931DC - ldr r0, _081931B8 - ldr r2, [r0] - ldr r3, [sp, #0x4c] - ldr r1, [r3, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - add r0, sb - ldr r1, _081931BC - adds r2, r2, r1 - adds r2, r2, r0 - ldrh r0, [r2] - b _0819322A - .align 2, 0 -_081931B8: .4byte gUnknown_3005AF0 -_081931BC: .4byte 0x00000D64 -_081931C0: .4byte gUnknown_203B958 -_081931C4: .4byte gUnknown_85D5E24 -_081931C8: .4byte gUnknown_85D5E27 -_081931CC: .4byte SpriteCb_MonIcon -_081931D0: .4byte gUnknown_203CA44 -_081931D4: .4byte gUnknown_20205AC -_081931D8: .4byte 0x000003FF -_081931DC: - ldr r0, _081931FC - cmp r1, r0 - bne _08193208 - ldr r0, _08193200 - ldr r2, [r0] - ldr r0, [sp, #0x4c] - ldr r1, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - add r0, sb - ldr r1, _08193204 - adds r2, r2, r1 - adds r2, r2, r0 - ldrh r0, [r2] - b _0819322A - .align 2, 0 -_081931FC: .4byte 0x000003FE -_08193200: .4byte gUnknown_3005AF0 -_08193204: .4byte 0x00000D64 -_08193208: - ldr r0, _0819335C - ldr r2, [r0] - ldr r0, [sp, #0x4c] - ldr r1, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - add r0, sb - ldr r1, _08193360 - adds r2, r2, r1 - adds r2, r2, r0 - ldrh r1, [r2] - ldr r0, _08193364 - ldr r0, [r0] - lsls r1, r1, #4 - adds r1, r1, r0 - ldrh r0, [r1] -_0819322A: - ldr r1, _08193368 - adds r1, r5, r1 - ldrb r2, [r1] - ldr r3, [sp, #0x40] - orrs r2, r3 - ldr r1, _0819336C - adds r1, r5, r1 - ldrb r3, [r1] - ldr r1, [sp, #0x44] - adds r3, r3, r1 - str r7, [sp] - str r7, [sp, #4] - movs r1, #1 - str r1, [sp, #8] - ldr r1, _08193370 - bl CreateMonIcon - ldr r1, [r6] - adds r1, r1, r4 - strb r0, [r1] - ldr r0, [r6] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - ldrb r1, [r0, #5] - movs r3, #0xd - rsbs r3, r3, #0 - adds r2, r3, #0 - ands r1, r2 - strb r1, [r0, #5] - movs r0, #0x1e - ldr r1, [sp, #0x34] - ands r0, r1 - cmp r0, #0 - beq _0819328E - ldr r0, [r6] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_0819328E: - ldr r2, [sp, #0x54] - ldr r0, [r2, #4] - cmp r0, #0 - beq _081932C2 - ldr r0, [r6] - adds r0, r0, r4 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - add r1, r8 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - movs r2, #0x30 - orrs r0, r2 - strb r0, [r1, #5] - ldr r0, [r6] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - movs r1, #1 - strh r1, [r0, #0x34] -_081932C2: - adds r4, #1 - movs r3, #2 - add sb, r3 - adds r5, #1 - cmp r5, #2 - bgt _081932D0 - b _08193194 -_081932D0: - add r0, sp, #0xc - movs r2, #0 - strb r2, [r0, #6] - adds r1, r0, #0 - movs r0, #2 - strb r0, [r1, #7] - adds r0, r1, #0 - ldrb r0, [r0, #6] - strb r0, [r1, #8] - adds r0, r1, #0 - ldrb r0, [r0, #7] - strb r0, [r1, #9] - adds r0, r1, #0 - strb r2, [r0, #0xa] - strb r2, [r0, #0xb] - adds r3, r0, #0 - ldrb r2, [r3, #0xc] - movs r1, #0x10 - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3, #0xc] - adds r2, r3, #0 - movs r0, #0xe0 - strb r0, [r2, #0xc] - ldrb r0, [r2, #0xd] - ands r1, r0 - strb r1, [r2, #0xd] - adds r1, r2, #0 - movs r0, #0xd0 - strb r0, [r1, #0xd] - ldr r4, _08193374 - ldr r0, _08193378 - ldr r7, [sp, #0x74] - adds r0, r7, r0 - ldr r1, [r0] - adds r0, r4, #0 - bl StringExpandPlaceholders - str r4, [sp, #0xc] - add r0, sp, #0xc - add r1, sp, #0x70 - ldrb r1, [r1] - strb r1, [r0, #4] - adds r1, r0, #0 - movs r0, #1 - strb r0, [r1, #5] - ldr r4, [sp, #0x70] - adds r0, r4, #0 - bl PutWindowTilemap - adds r0, r4, #0 - movs r1, #3 - bl CopyWindowToVram - add r0, sp, #0xc - movs r1, #0 - movs r2, #0 - bl AddTextPrinter - ldr r1, [sp, #0x24] - ldr r0, _0819337C - cmp r1, r0 - bne _08193384 - ldr r0, _08193380 - ldr r1, _0819335C - ldr r1, [r1] - bl StringCopy - b _081933A6 - .align 2, 0 -_0819335C: .4byte gUnknown_3005AF0 -_08193360: .4byte 0x00000D64 -_08193364: .4byte gUnknown_203B958 -_08193368: .4byte gUnknown_85D5E2A -_0819336C: .4byte gUnknown_85D5E2D -_08193370: .4byte SpriteCb_MonIcon -_08193374: .4byte gUnknown_2021C7C -_08193378: .4byte gUnknown_85D5E08 -_0819337C: .4byte 0x000003FF -_08193380: .4byte gUnknown_2021C40 -_08193384: - ldr r0, _08193394 - cmp r1, r0 - bne _0819339C - ldr r0, _08193398 - bl CopyDomeBrainTrainerName - b _081933A6 - .align 2, 0 -_08193394: .4byte 0x000003FE -_08193398: .4byte gUnknown_2021C40 -_0819339C: - ldr r0, _081933E8 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl CopyDomeTrainerName -_081933A6: - add r0, sp, #0xc - movs r1, #2 - strb r1, [r0, #5] - strb r1, [r0, #0xa] - ldr r5, _081933E8 - str r5, [sp, #0xc] - add r2, sp, #0x68 - ldrb r2, [r2] - strb r2, [r0, #4] - ldr r4, [sp, #0x68] - adds r0, r4, #0 - bl PutWindowTilemap - adds r0, r4, #0 - movs r1, #3 - bl CopyWindowToVram - add r0, sp, #0xc - movs r1, #0 - movs r2, #0 - bl AddTextPrinter - ldr r3, [sp, #0x50] - ldr r1, [r3, #4] - ldr r0, _081933EC - cmp r1, r0 - bne _081933F4 - ldr r0, _081933F0 - ldr r1, [r0] - adds r0, r5, #0 - bl StringCopy - b _08193412 - .align 2, 0 -_081933E8: .4byte gUnknown_2021C40 -_081933EC: .4byte 0x000003FF -_081933F0: .4byte gUnknown_3005AF0 -_081933F4: - ldr r0, _08193404 - cmp r1, r0 - bne _08193408 - adds r0, r5, #0 - bl CopyDomeBrainTrainerName - b _08193412 - .align 2, 0 -_08193404: .4byte 0x000003FE -_08193408: - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r5, #0 - bl CopyDomeTrainerName -_08193412: - ldr r0, _0819347C - str r0, [sp, #0xc] - add r0, sp, #0xc - movs r5, #0 - add r7, sp, #0x6c - ldrb r7, [r7] - strb r7, [r0, #4] - ldr r4, [sp, #0x6c] - adds r0, r4, #0 - bl PutWindowTilemap - adds r0, r4, #0 - movs r1, #3 - bl CopyWindowToVram - add r0, sp, #0xc - movs r1, #0 - movs r2, #0 - bl AddTextPrinter - add r0, sp, #0xc - strb r5, [r0, #0xa] - ldr r0, _08193480 - ldr r1, [sp, #0x5c] - adds r0, r1, r0 - ldr r0, [r0] - str r0, [sp, #0xc] - add r0, sp, #0xc - add r2, sp, #0x64 - ldrb r2, [r2] - strb r2, [r0, #4] - ldr r4, [sp, #0x64] - adds r0, r4, #0 - bl PutWindowTilemap - adds r0, r4, #0 - movs r1, #3 - bl CopyWindowToVram - add r0, sp, #0xc - movs r1, #0 - movs r2, #0 - bl AddTextPrinter - add sp, #0x80 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0819347C: .4byte gUnknown_2021C40 -_08193480: .4byte gUnknown_85D5DCC - thumb_func_end DisplayMatchInfoOnCard - - thumb_func_start ShowDomeTourneyTree -ShowDomeTourneyTree: @ 0x08193484 - push {lr} - ldr r0, _081934B4 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _081934B8 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r2, #0 - strh r2, [r1, #8] - strh r2, [r1, #0xa] - movs r0, #2 - strh r0, [r1, #0xc] - strh r2, [r1, #0x10] - ldr r0, _081934BC - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_081934B4: .4byte Task_ShowTourneyTree -_081934B8: .4byte gUnknown_3005B60 -_081934BC: .4byte CB2_BattleDome - thumb_func_end ShowDomeTourneyTree - - thumb_func_start ShowPreviousDomeResultsTourneyTree -ShowPreviousDomeResultsTourneyTree: @ 0x081934C0 - push {r4, lr} - bl InitDomeFacilityTrainersAndMons - ldr r4, _08193520 - ldr r2, [r4] - ldr r1, _08193524 - adds r0, r2, r1 - ldrb r1, [r0] - subs r1, #1 - ldr r0, _08193528 - adds r2, r2, r0 - movs r0, #3 - ands r1, r0 - ldrb r3, [r2] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r4] - ldr r1, _0819352C - adds r0, r0, r1 - movs r4, #0 - movs r1, #3 - strh r1, [r0] - ldr r0, _08193530 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08193534 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #8] - strh r4, [r1, #0xa] - movs r0, #2 - strh r0, [r1, #0xc] - movs r0, #1 - strh r0, [r1, #0x10] - ldr r0, _08193538 - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08193520: .4byte gUnknown_3005AF0 -_08193524: .4byte 0x00000D0A -_08193528: .4byte 0x00000CA9 -_0819352C: .4byte 0x00000CB2 -_08193530: .4byte Task_ShowTourneyTree -_08193534: .4byte gUnknown_3005B60 -_08193538: .4byte CB2_BattleDome - thumb_func_end ShowPreviousDomeResultsTourneyTree - - thumb_func_start sub_0819353C -sub_0819353C: @ 0x0819353C - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _08193568 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #0xa - ldrsh r7, [r0, r2] - movs r2, #8 - ldrsh r0, [r0, r2] - adds r2, r1, #0 - cmp r0, #7 - bls _0819355E - b _081937A2 -_0819355E: - lsls r0, r0, #2 - ldr r1, _0819356C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08193568: .4byte gUnknown_3005B60 -_0819356C: .4byte _08193570 -_08193570: @ jump table - .4byte _08193590 @ case 0 - .4byte _081935E0 @ case 1 - .4byte _08193600 @ case 2 - .4byte _08193688 @ case 3 - .4byte _081937A2 @ case 4 - .4byte _08193700 @ case 5 - .4byte _081937A2 @ case 6 - .4byte _08193764 @ case 7 -_08193590: - ldr r0, _081935D4 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _081935A2 - b _081937A2 -_081935A2: - movs r0, #1 - rsbs r0, r0, #0 - str r1, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r1, _081935D8 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #1 - strh r1, [r0, #8] - lsls r0, r7, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - ldr r1, _081935DC - adds r0, r0, r1 - movs r1, #1 - bl StartSpriteAnim - b _081937A2 - .align 2, 0 -_081935D4: .4byte gUnknown_2037C74 -_081935D8: .4byte gUnknown_3005B60 -_081935DC: .4byte gUnknown_20205AC -_081935E0: - ldr r0, _081935FC - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _081935EE - b _081937A2 -_081935EE: - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r1, #2 - strh r1, [r0, #8] - b _081937A2 - .align 2, 0 -_081935FC: .4byte gUnknown_2037C74 -_08193600: - adds r0, r5, #0 - bl UpdateTourneyTreeCursor - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08193610 - b _081937A2 -_08193610: - cmp r0, #1 - ble _0819361C - cmp r0, #2 - beq _08193640 - cmp r0, #3 - beq _08193664 -_0819361C: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _0819363C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #7 - strh r1, [r0, #8] - b _081937A2 - .align 2, 0 -_0819363C: .4byte gUnknown_3005B60 -_08193640: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _08193660 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #3 - strh r1, [r0, #8] - b _081937A2 - .align 2, 0 -_08193660: .4byte gUnknown_3005B60 -_08193664: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _08193684 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #5 - strh r1, [r0, #8] - b _081937A2 - .align 2, 0 -_08193684: .4byte gUnknown_3005B60 -_08193688: - ldr r0, _081936E8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - beq _0819369A - b _081937A2 -_0819369A: - bl FreeAllWindowBuffers - bl ScanlineEffect_Stop - ldr r4, _081936EC - ldr r0, [r4] - bl Free - str r6, [r4] - ldr r0, _081936F0 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r2, _081936F4 - lsls r1, r3, #2 - adds r1, r1, r3 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r3, #0 - strh r6, [r1, #8] - ldr r0, _081936F8 - adds r0, r7, r0 - ldrb r0, [r0] - strh r0, [r1, #0xa] - movs r0, #1 - strh r0, [r1, #0xc] - strh r5, [r1, #0xe] - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r1, #4 - strh r1, [r0, #8] - ldr r0, _081936FC - ldr r0, [r0] - strb r3, [r0, #0x10] - b _081937A2 - .align 2, 0 -_081936E8: .4byte gUnknown_2037C74 -_081936EC: .4byte gUnknown_203CA48 -_081936F0: .4byte Task_ShowOpponentInfo -_081936F4: .4byte gUnknown_3005B60 -_081936F8: .4byte gUnknown_85D5AFC -_081936FC: .4byte gUnknown_203CA44 -_08193700: - ldr r0, _08193754 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - bne _081937A2 - bl FreeAllWindowBuffers - bl ScanlineEffect_Stop - ldr r4, _08193758 - ldr r0, [r4] - bl Free - str r6, [r4] - ldr r0, _0819375C - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r2, _08193760 - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #3 - adds r0, r0, r2 - strh r6, [r0, #8] - adds r1, r7, #0 - subs r1, #0x10 - strh r1, [r0, #0xa] - movs r1, #2 - strh r1, [r0, #0xc] - strh r5, [r0, #0xe] - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r1, #6 - strh r1, [r0, #8] - b _081937A2 - .align 2, 0 -_08193754: .4byte gUnknown_2037C74 -_08193758: .4byte gUnknown_203CA48 -_0819375C: .4byte Task_ShowOpponentInfo -_08193760: .4byte gUnknown_3005B60 -_08193764: - ldr r0, _081937AC - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - bne _081937A2 - bl FreeAllWindowBuffers - bl ScanlineEffect_Stop - ldr r4, _081937B0 - ldr r0, [r4] - bl Free - str r6, [r4] - ldr r0, _081937B4 - bl SetMainCallback2 - ldr r1, _081937B8 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r0, [r0, #0x16] - bl DestroyTask - adds r0, r5, #0 - bl DestroyTask -_081937A2: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081937AC: .4byte gUnknown_2037C74 -_081937B0: .4byte gUnknown_203CA48 -_081937B4: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic -_081937B8: .4byte gUnknown_3005B60 - thumb_func_end sub_0819353C - - thumb_func_start UpdateTourneyTreeCursor -UpdateTourneyTreeCursor: @ 0x081937BC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r0, #1 - mov sb, r0 - movs r1, #4 - mov r8, r1 - ldr r1, _0819380C - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0xa - ldrsh r5, [r0, r1] - ldr r0, _08193810 - ldr r0, [r0] - ldr r1, _08193814 - adds r0, r0, r1 - ldrh r6, [r0] - ldr r0, _08193818 - ldrh r1, [r0, #0x2e] - adds r2, r1, #0 - adds r3, r0, #0 - cmp r2, #2 - beq _08193800 - mov r0, sb - ands r0, r1 - cmp r0, #0 - beq _08193838 - cmp r5, #0x1f - bne _0819381C -_08193800: - movs r0, #5 - bl sub_080A306C - movs r0, #0 - mov sb, r0 - b _081938BE - .align 2, 0 -_0819380C: .4byte gUnknown_3005B60 -_08193810: .4byte gUnknown_3005AF0 -_08193814: .4byte 0x00000CB2 -_08193818: .4byte gUnknown_3002360 -_0819381C: - cmp r5, #0xf - bgt _0819382C - movs r0, #5 - bl sub_080A306C - movs r1, #2 - mov sb, r1 - b _081938BE -_0819382C: - movs r0, #5 - bl sub_080A306C - movs r0, #3 - mov sb, r0 - b _081938BE -_08193838: - cmp r2, #0x40 - bne _08193858 - ldr r0, _08193854 - lsls r1, r5, #2 - adds r1, r1, r5 - adds r1, r1, r6 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0xff - beq _08193858 - movs r1, #0 - mov r8, r1 - b _081938BE - .align 2, 0 -_08193854: .4byte gUnknown_85D5695 -_08193858: - ldrh r0, [r3, #0x2e] - cmp r0, #0x80 - bne _0819387C - ldr r0, _08193878 - lsls r1, r5, #2 - adds r1, r1, r5 - adds r1, r1, r6 - lsls r1, r1, #2 - adds r0, #1 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0xff - beq _0819387C - movs r0, #1 - b _081938BC - .align 2, 0 -_08193878: .4byte gUnknown_85D5695 -_0819387C: - ldrh r0, [r3, #0x2e] - cmp r0, #0x20 - bne _081938A0 - ldr r0, _0819389C - lsls r1, r5, #2 - adds r1, r1, r5 - adds r1, r1, r6 - lsls r1, r1, #2 - adds r0, #2 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0xff - beq _081938A0 - movs r1, #2 - mov r8, r1 - b _081938BE - .align 2, 0 -_0819389C: .4byte gUnknown_85D5695 -_081938A0: - ldrh r0, [r3, #0x2e] - cmp r0, #0x10 - bne _081938BE - ldr r0, _08193914 - lsls r1, r5, #2 - adds r1, r1, r5 - adds r1, r1, r6 - lsls r1, r1, #2 - adds r0, #3 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0xff - beq _081938BE - movs r0, #3 -_081938BC: - mov r8, r0 -_081938BE: - mov r1, r8 - cmp r1, #4 - beq _08193906 - movs r0, #5 - bl sub_080A306C - lsls r0, r5, #4 - adds r0, r0, r5 - lsls r0, r0, #2 - ldr r4, _08193918 - adds r0, r0, r4 - movs r1, #0 - bl StartSpriteAnim - ldr r2, _08193914 - lsls r1, r6, #2 - add r1, r8 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r5, [r1] - lsls r0, r5, #4 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #1 - bl StartSpriteAnim - ldr r1, _0819391C - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r5, [r0, #0xa] -_08193906: - mov r0, sb - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08193914: .4byte gUnknown_85D5695 -_08193918: .4byte gUnknown_20205AC -_0819391C: .4byte gUnknown_3005B60 - thumb_func_end UpdateTourneyTreeCursor - - thumb_func_start ShowNonInteractiveDomeTourneyTree -ShowNonInteractiveDomeTourneyTree: @ 0x08193920 - push {lr} - ldr r0, _08193950 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08193954 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r2, #0 - strh r2, [r1, #8] - movs r0, #1 - strh r0, [r1, #0xa] - movs r0, #2 - strh r0, [r1, #0xc] - strh r2, [r1, #0x10] - ldr r0, _08193958 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_08193950: .4byte Task_ShowTourneyTree -_08193954: .4byte gUnknown_3005B60 -_08193958: .4byte CB2_BattleDome - thumb_func_end ShowNonInteractiveDomeTourneyTree - - thumb_func_start ResolveDomeRoundWinners -ResolveDomeRoundWinners: @ 0x0819395C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r7, _081939D8 - ldrh r0, [r7] - cmp r0, #1 - bne _081939F0 - ldr r5, _081939DC - ldrh r0, [r5] - bl sub_08194F58 - ldr r4, _081939E0 - ldr r2, [r4] - lsls r0, r0, #2 - adds r2, r2, r0 - ldr r6, _081939E4 - adds r2, r2, r6 - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r5] - bl sub_08194F58 - ldr r1, [r4] - lsls r0, r0, #2 - adds r0, r1, r0 - ldr r2, _081939E8 - mov r8, r2 - add r1, r8 - adds r0, r0, r6 - movs r3, #3 - ldrb r2, [r1] - ands r2, r3 - lsls r2, r2, #3 - ldrb r3, [r0] - movs r1, #0x19 - rsbs r1, r1, #0 - ands r1, r3 - orrs r1, r2 - strb r1, [r0] - ldrh r0, [r5] - bl sub_08194F58 - ldr r2, [r4] - lsls r0, r0, #1 - movs r3, #0xec - lsls r3, r3, #4 - adds r1, r2, r3 - adds r1, r1, r0 - ldr r0, _081939EC - ldrh r0, [r0, #0x22] - strh r0, [r1] - add r2, r8 - ldrh r0, [r2] - cmp r0, #2 - bhi _08193A8E - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DecideRoundWinners - b _08193A8E - .align 2, 0 -_081939D8: .4byte gUnknown_2037282 -_081939DC: .4byte gUnknown_203886A -_081939E0: .4byte gUnknown_3005AF0 -_081939E4: .4byte 0x00000D25 -_081939E8: .4byte 0x00000CB2 -_081939EC: .4byte gUnknown_3005A70 -_081939F0: - ldr r5, _08193A98 - adds r0, r5, #0 - bl sub_08194F58 - ldr r4, _08193A9C - ldr r2, [r4] - lsls r0, r0, #2 - adds r2, r2, r0 - ldr r6, _08193AA0 - adds r2, r2, r6 - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - bl sub_08194F58 - ldr r1, [r4] - lsls r0, r0, #2 - adds r0, r1, r0 - ldr r2, _08193AA4 - adds r1, r1, r2 - adds r0, r0, r6 - movs r3, #3 - ldrb r2, [r1] - ands r2, r3 - lsls r2, r2, #3 - ldrb r3, [r0] - movs r1, #0x19 - rsbs r1, r1, #0 - ands r1, r3 - orrs r1, r2 - strb r1, [r0] - adds r0, r5, #0 - bl sub_08194F58 - ldr r1, [r4] - lsls r0, r0, #1 - movs r3, #0xec - lsls r3, r3, #4 - adds r1, r1, r3 - adds r1, r1, r0 - ldr r0, _08193AA8 - ldrh r0, [r0, #0x24] - strh r0, [r1] - ldr r0, _08193AAC - ldrb r0, [r0] - cmp r0, #9 - beq _08193A58 - ldrh r0, [r7] - cmp r0, #9 - bne _08193A72 -_08193A58: - adds r0, r5, #0 - bl sub_08194F58 - ldr r2, [r4] - lsls r0, r0, #2 - adds r2, r2, r0 - adds r2, r2, r6 - ldrb r1, [r2] - movs r0, #0x1f - ands r0, r1 - movs r1, #0x20 - orrs r0, r1 - strb r0, [r2] -_08193A72: - ldr r0, _08193A9C - ldr r0, [r0] - ldr r1, _08193AA4 - adds r0, r0, r1 - ldrh r4, [r0] - cmp r4, #3 - bgt _08193A8E -_08193A80: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl DecideRoundWinners - adds r4, #1 - cmp r4, #3 - ble _08193A80 -_08193A8E: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08193A98: .4byte 0x000003FF -_08193A9C: .4byte gUnknown_3005AF0 -_08193AA0: .4byte 0x00000D25 -_08193AA4: .4byte 0x00000CB2 -_08193AA8: .4byte gUnknown_3005A70 -_08193AAC: .4byte gUnknown_2023FDE - thumb_func_end ResolveDomeRoundWinners - - thumb_func_start GetWinningMove -GetWinningMove: @ 0x08193AB0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x84 - str r0, [sp, #0x48] - str r1, [sp, #0x4c] - lsls r4, r2, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - str r0, [sp, #0x54] - movs r1, #0 - str r1, [sp, #0x58] - bl SetFacilityPtrsGetLevel - movs r2, #0 - str r2, [sp, #0x50] - add r3, sp, #0x30 - mov sl, r3 - ldr r5, [sp, #0x4c] - lsls r5, r5, #1 - str r5, [sp, #0x70] - subs r4, #1 - str r4, [sp, #0x78] -_08193AE2: - movs r0, #0 - mov sb, r0 - ldr r1, [sp, #0x50] - lsls r1, r1, #2 - str r1, [sp, #0x74] - ldr r2, [sp, #0x48] - lsls r2, r2, #2 - str r2, [sp, #0x6c] - ldr r3, [sp, #0x50] - adds r3, #1 - str r3, [sp, #0x60] -_08193AF8: - ldr r4, [sp, #0x74] - add r4, sb - lsls r0, r4, #2 - mov r5, sp - adds r1, r5, r0 - movs r0, #0 - str r0, [r1] - ldr r0, _08193B34 - ldr r3, [r0] - ldr r1, [sp, #0x6c] - adds r0, r3, r1 - ldr r2, _08193B38 - adds r0, r0, r2 - ldrh r0, [r0] - lsls r0, r0, #0x16 - ldr r1, _08193B3C - cmp r0, r1 - bne _08193B40 - ldr r3, [sp, #0x50] - lsls r0, r3, #0x18 - mov r5, sb - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - lsrs r0, r0, #0x18 - bl GetFrontierBrainMonMove - lsls r1, r4, #1 - add r1, sl - strh r0, [r1] - b _08193B6C - .align 2, 0 -_08193B34: .4byte gUnknown_3005AF0 -_08193B38: .4byte 0x00000D24 -_08193B3C: .4byte 0xFF800000 -_08193B40: - lsls r2, r4, #1 - add r2, sl - ldr r1, [sp, #0x48] - lsls r0, r1, #1 - adds r0, r0, r1 - ldr r4, [sp, #0x50] - adds r0, r0, r4 - lsls r0, r0, #1 - ldr r5, _08193B8C - adds r1, r3, r5 - adds r1, r1, r0 - ldrh r0, [r1] - ldr r1, _08193B90 - ldr r1, [r1] - lsls r0, r0, #4 - adds r0, r0, r1 - mov r3, sb - lsls r1, r3, #1 - adds r0, #2 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2] -_08193B6C: - ldr r0, _08193B94 - ldr r1, [sp, #0x74] - add r1, sb - lsls r1, r1, #1 - add r1, sl - ldrh r2, [r1] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r6, [r1, #1] - cmp r6, #0 - bne _08193B98 - movs r6, #0x28 - b _08193BB0 - .align 2, 0 -_08193B8C: .4byte 0x00000D64 -_08193B90: .4byte gUnknown_203B958 -_08193B94: .4byte gUnknown_82ED220 -_08193B98: - cmp r6, #1 - bne _08193BA0 - movs r6, #0x3c - b _08193BB0 -_08193BA0: - adds r1, r2, #0 - cmp r1, #0x78 - beq _08193BAA - cmp r1, #0x99 - bne _08193BB0 -_08193BAA: - lsrs r0, r6, #0x1f - adds r0, r6, r0 - asrs r6, r0, #1 -_08193BB0: - movs r1, #0 - mov r4, sb - adds r4, #1 - str r4, [sp, #0x64] - ldr r5, [sp, #0x70] - ldr r2, [sp, #0x4c] - adds r0, r5, r2 - lsls r0, r0, #1 - str r0, [sp, #0x5c] -_08193BC2: - lsls r7, r1, #1 - adds r1, #1 - str r1, [sp, #0x68] - ldr r3, [sp, #0x5c] - adds r3, r3, r7 - mov r8, r3 -_08193BCE: - bl Random - adds r4, r0, #0 - bl Random - lsls r4, r4, #0x10 - lsrs r5, r4, #0x10 - lsls r0, r0, #0x10 - orrs r5, r0 - ldr r2, _08193C38 - ldr r0, [r2] - ldr r4, _08193C3C - adds r0, r0, r4 - add r0, r8 - ldrh r4, [r0] - ldr r3, _08193C40 - ldr r0, [r3] - lsls r4, r4, #4 - adds r4, r4, r0 - adds r0, r5, #0 - str r2, [sp, #0x7c] - str r3, [sp, #0x80] - bl GetNatureFromPersonality - ldrb r1, [r4, #0xc] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, [sp, #0x7c] - ldr r3, [sp, #0x80] - cmp r1, r0 - bne _08193BCE - ldr r0, [r2] - ldr r2, [sp, #0x5c] - adds r1, r7, r2 - ldr r4, _08193C3C - adds r0, r0, r4 - adds r0, r0, r1 - ldrh r0, [r0] - ldr r1, [r3] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #1 - ands r5, r0 - cmp r5, #0 - beq _08193C48 - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r5, _08193C44 - adds r0, r0, r5 - ldrb r2, [r0, #0x17] - b _08193C54 - .align 2, 0 -_08193C38: .4byte gUnknown_3005AF0 -_08193C3C: .4byte 0x00000D64 -_08193C40: .4byte gUnknown_203B958 -_08193C44: .4byte gUnknown_82F0D54 -_08193C48: - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r2, _08193C78 - adds r0, r0, r2 - ldrb r2, [r0, #0x16] -_08193C54: - ldr r4, [sp, #0x74] - add r4, sb - lsls r0, r4, #1 - add r0, sl - ldrh r0, [r0] - bl AI_TypeCalc - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r0, #6 - ands r0, r5 - cmp r0, #6 - bne _08193C7C - lsls r0, r4, #2 - mov r3, sp - adds r1, r3, r0 - b _08193CB8 - .align 2, 0 -_08193C78: .4byte gUnknown_82F0D54 -_08193C7C: - movs r0, #0x29 - ands r0, r5 - cmp r0, #0 - bne _08193CBE - movs r0, #2 - ands r0, r5 - cmp r0, #0 - beq _08193C96 - lsls r0, r4, #2 - mov r5, sp - adds r2, r5, r0 - lsls r1, r6, #1 - b _08193CAA -_08193C96: - movs r0, #4 - ands r5, r0 - cmp r5, #0 - beq _08193CB2 - lsls r0, r4, #2 - mov r1, sp - adds r2, r1, r0 - lsrs r1, r6, #0x1f - adds r1, r6, r1 - asrs r1, r1, #1 -_08193CAA: - ldr r0, [r2] - adds r0, r0, r1 - str r0, [r2] - b _08193CBE -_08193CB2: - lsls r0, r4, #2 - mov r2, sp - adds r1, r2, r0 -_08193CB8: - ldr r0, [r1] - adds r0, r0, r6 - str r0, [r1] -_08193CBE: - ldr r1, [sp, #0x68] - cmp r1, #2 - bgt _08193CC6 - b _08193BC2 -_08193CC6: - ldr r2, [sp, #0x74] - add r2, sb - lsls r0, r2, #2 - add r0, sp - ldr r1, [r0] - ldr r3, [sp, #0x54] - cmp r3, r1 - bge _08193CE4 - lsls r0, r2, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x58] - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x54] - b _08193D02 -_08193CE4: - ldr r4, [sp, #0x54] - cmp r4, r1 - bne _08193D02 - ldr r5, [sp, #0x58] - lsls r0, r5, #1 - add r0, sl - lsls r1, r2, #1 - add r1, sl - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - bhs _08193D02 - lsls r0, r2, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x58] -_08193D02: - ldr r0, [sp, #0x64] - mov sb, r0 - cmp r0, #3 - bgt _08193D0C - b _08193AF8 -_08193D0C: - ldr r1, [sp, #0x60] - str r1, [sp, #0x50] - cmp r1, #2 - bgt _08193D16 - b _08193AE2 -_08193D16: - ldr r2, [sp, #0x58] - mov sb, r2 - b _08193D62 -_08193D1C: - movs r3, #0 - mov sb, r3 - movs r1, #0 - mov r4, sl - mov r3, sl - mov r2, sp -_08193D28: - ldr r0, [r2] - ldr r5, [sp, #0x54] - cmp r5, r0 - bge _08193D3A - mov sb, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x54] - b _08193D50 -_08193D3A: - ldr r5, [sp, #0x54] - cmp r5, r0 - bne _08193D50 - mov r5, sb - lsls r0, r5, #1 - adds r0, r4, r0 - ldrh r0, [r0] - ldrh r5, [r3] - cmp r0, r5 - bhs _08193D50 - mov sb, r1 -_08193D50: - adds r3, #2 - adds r2, #4 - adds r1, #1 - cmp r1, #0xb - ble _08193D28 - ldr r0, [sp, #0x50] - ldr r1, [sp, #0x78] - cmp r0, r1 - beq _08193DD4 -_08193D62: - movs r2, #0 - str r2, [sp, #0x50] - mov r3, sb - lsls r7, r3, #2 - ldr r4, [sp, #0x78] - cmp r2, r4 - bge _08193DAA - lsls r0, r3, #1 - mov r5, sl - adds r6, r5, r0 - ldr r0, [sp, #0x48] - lsls r5, r0, #0x18 -_08193D7A: - ldr r0, _08193DFC - ldr r4, [r0] - ldr r2, [sp, #0x50] - lsls r1, r2, #0x18 - lsrs r1, r1, #0x18 - lsrs r0, r5, #0x18 - bl sub_08194FE8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - movs r3, #0xec - lsls r3, r3, #4 - adds r4, r4, r3 - adds r4, r4, r0 - ldrh r0, [r4] - ldrh r4, [r6] - cmp r0, r4 - beq _08193DAA - ldr r0, [sp, #0x50] - adds r0, #1 - str r0, [sp, #0x50] - ldr r1, [sp, #0x78] - cmp r0, r1 - blt _08193D7A -_08193DAA: - ldr r2, [sp, #0x50] - ldr r3, [sp, #0x78] - cmp r2, r3 - beq _08193DD4 - mov r4, sp - adds r1, r4, r7 - movs r0, #0 - str r0, [r1] - movs r5, #0 - str r5, [sp, #0x54] - mov sb, r5 - mov r2, sp - movs r1, #0xb -_08193DC4: - ldm r2!, {r0} - add sb, r0 - subs r1, #1 - cmp r1, #0 - bge _08193DC4 - mov r0, sb - cmp r0, #0 - bne _08193D1C -_08193DD4: - mov r1, sb - lsls r0, r1, #2 - add r0, sp - ldr r0, [r0] - cmp r0, #0 - bne _08193DE4 - ldr r2, [sp, #0x58] - mov sb, r2 -_08193DE4: - mov r3, sb - lsls r0, r3, #1 - add r0, sl - ldrh r0, [r0] - add sp, #0x84 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08193DFC: .4byte gUnknown_3005AF0 - thumb_func_end GetWinningMove - - thumb_func_start Task_ShowTourneyTree -Task_ShowTourneyTree: @ 0x08193E00 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x28 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r1, _08193E3C - lsls r0, r0, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #0xa - ldrsh r1, [r0, r2] - mov sl, r1 - movs r3, #0xc - ldrsh r4, [r0, r3] - movs r1, #8 - ldrsh r0, [r0, r1] - cmp r0, #5 - bls _08193E30 - b _08194466 -_08193E30: - lsls r0, r0, #2 - ldr r1, _08193E40 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08193E3C: .4byte gUnknown_3005B60 -_08193E40: .4byte _08193E44 -_08193E44: @ jump table - .4byte _08193E5C @ case 0 - .4byte _08193EFC @ case 1 - .4byte _08193F6C @ case 2 - .4byte _0819405C @ case 3 - .4byte _081940B0 @ case 4 - .4byte _0819436C @ case 5 -_08193E5C: - movs r0, #0 - bl SetHBlankCallback - movs r0, #0 - bl SetVBlankCallback - movs r0, #3 - bl EnableInterrupts - movs r4, #0 - str r4, [sp, #0x14] - add r0, sp, #0x14 - movs r1, #0xc0 - lsls r1, r1, #0x13 - ldr r2, _08193EDC - bl CpuSet - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _08193EE0 - movs r0, #0 - movs r2, #4 - bl InitBgsFromTemplates - ldr r0, _08193EE4 - bl InitWindows - bl sub_08004480 - ldr r0, _08193EE8 - strh r4, [r0] - ldr r0, _08193EEC - strh r4, [r0] - ldr r0, _08193EF0 - strh r4, [r0] - ldr r0, _08193EF4 - strh r4, [r0] - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r1, #0xb0 - lsls r1, r1, #4 - movs r0, #3 - movs r2, #0 - bl ChangeBgY - ldr r1, _08193EF8 - mov r2, r8 - lsls r0, r2, #2 - b _0819401C - .align 2, 0 -_08193EDC: .4byte 0x05006000 -_08193EE0: .4byte gUnknown_85D5918 -_08193EE4: .4byte gUnknown_85D5938 -_08193EE8: .4byte gUnknown_2022AC8 -_08193EEC: .4byte gUnknown_2022ACA -_08193EF0: .4byte gUnknown_2022ACC -_08193EF4: .4byte gUnknown_2022ACE -_08193EF8: .4byte gUnknown_3005B60 -_08193EFC: - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - movs r0, #0x4c - movs r1, #0 - bl SetGpuReg - ldr r1, _08193F60 - movs r0, #0x40 - bl SetGpuReg - movs r0, #0x44 - movs r1, #0x9f - bl SetGpuReg - ldr r1, _08193F64 - movs r0, #0x42 - bl SetGpuReg - movs r0, #0x46 - movs r1, #0x9f - bl SetGpuReg - movs r0, #0x48 - movs r1, #0 - bl SetGpuReg - movs r0, #0x4a - movs r1, #0x3f - bl SetGpuReg - bl ResetPaletteFade - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r1, _08193F68 - mov r3, r8 - lsls r0, r3, #2 - b _0819401C - .align 2, 0 -_08193F60: .4byte 0x00005860 -_08193F64: .4byte 0x00009098 -_08193F68: .4byte gUnknown_3005B60 -_08193F6C: - ldr r4, _0819402C - movs r0, #0x80 - lsls r0, r0, #4 - bl AllocZeroed - adds r1, r0, #0 - str r1, [r4] - ldr r0, _08194030 - bl sub_08034370 - ldr r1, [r4] - movs r0, #1 - bl SetBgTilemapBuffer - movs r0, #1 - bl CopyBgTilemapBufferToVram - ldr r1, _08194034 - movs r5, #0x80 - lsls r5, r5, #6 - movs r6, #0 - str r6, [sp] - movs r0, #1 - adds r2, r5, #0 - movs r3, #0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r1, _08194038 - str r6, [sp] - movs r0, #2 - adds r2, r5, #0 - movs r3, #0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r1, _0819403C - movs r4, #1 - str r4, [sp] - movs r0, #2 - adds r2, r5, #0 - movs r3, #0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r1, _08194040 - str r4, [sp] - movs r0, #3 - adds r2, r5, #0 - movs r3, #0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r0, _08194044 - movs r4, #0x80 - lsls r4, r4, #2 - movs r1, #0 - adds r2, r4, #0 - bl LoadCompressedPalette - ldr r0, _08194048 - movs r1, #0x80 - lsls r1, r1, #1 - adds r2, r4, #0 - bl LoadCompressedPalette - ldr r0, _0819404C - movs r1, #0xf0 - movs r2, #0x20 - bl LoadCompressedPalette - str r6, [sp, #0x18] - add r0, sp, #0x18 - ldr r1, _08194050 - ldr r2, _08194054 - bl CpuSet - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg - ldr r1, _08194058 - mov r4, r8 - lsls r0, r4, #2 -_0819401C: - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #8] - adds r1, #1 - strh r1, [r0, #8] - b _08194466 - .align 2, 0 -_0819402C: .4byte gUnknown_203CA48 -_08194030: .4byte gUnknown_8D839A4 -_08194034: .4byte gUnknown_8D82FB4 -_08194038: .4byte gUnknown_8D835A0 -_0819403C: .4byte gUnknown_8D83BD0 -_08194040: .4byte gUnknown_8D83CE0 -_08194044: .4byte gUnknown_8D8533C -_08194048: .4byte gUnknown_8D85428 -_0819404C: .4byte gUnknown_8D855E4 -_08194050: .4byte gUnknown_20377B4 -_08194054: .4byte 0x05000100 -_08194058: .4byte gUnknown_3005B60 -_0819405C: - ldr r0, _0819409C - bl LoadCompressedSpriteSheet - mov r0, r8 - lsls r0, r0, #2 - str r0, [sp, #0x1c] - mov r1, sl - cmp r1, #0 - bne _08194092 - movs r5, #0 - ldr r4, _081940A0 -_08194072: - ldrb r1, [r4] - ldrb r2, [r4, #1] - ldr r0, _081940A4 - movs r3, #0 - bl CreateSprite - adds r4, #2 - adds r5, #1 - cmp r5, #0x1e - bls _08194072 - ldr r0, _081940A8 - movs r1, #0xda - movs r2, #0xc - movs r3, #0 - bl CreateSprite -_08194092: - ldr r1, _081940AC - movs r0, #0 - bl SetGpuReg - b _0819434A - .align 2, 0 -_0819409C: .4byte gUnknown_85D59FC -_081940A0: .4byte gUnknown_85D5E8D -_081940A4: .4byte gUnknown_85D5A54 -_081940A8: .4byte gUnknown_85D5A84 -_081940AC: .4byte 0x00007F40 -_081940B0: - add r0, sp, #4 - movs r2, #0 - movs r1, #2 - strb r1, [r0, #5] - ldr r0, _0819414C - str r0, [sp, #4] - add r0, sp, #4 - strb r1, [r0, #4] - strb r2, [r0, #6] - strb r2, [r0, #7] - strb r1, [r0, #0xa] - strb r2, [r0, #0xb] - strb r1, [r0, #8] - strb r1, [r0, #9] - adds r3, r0, #0 - ldrb r2, [r3, #0xc] - subs r1, #0x12 - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3, #0xc] - adds r2, r3, #0 - movs r0, #0xe0 - strb r0, [r2, #0xc] - ldrb r0, [r2, #0xd] - ands r1, r0 - strb r1, [r2, #0xd] - adds r1, r2, #0 - movs r0, #0xd0 - strb r0, [r1, #0xd] - adds r0, r1, #0 - movs r1, #0 - movs r2, #0 - bl AddTextPrinter - mov r2, r8 - lsls r2, r2, #2 - str r2, [sp, #0x1c] - add r4, sp, #4 - movs r3, #0xf - mov sb, r3 - movs r0, #0 - str r0, [sp, #0x20] - movs r1, #0 - str r1, [sp, #0x24] - movs r7, #0 - movs r5, #0xf -_0819410C: - ldr r2, _08194150 - ldr r0, [r2] - adds r0, r0, r7 - ldr r3, _08194154 - adds r0, r0, r3 - ldrh r1, [r0] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x16 - ldr r0, _08194158 - bl CopyDomeTrainerName - mov r0, sl - cmp r0, #1 - bne _08194164 - ldr r1, _08194150 - ldr r2, [r1] - adds r0, r2, r7 - ldr r3, _0819415C - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #0x1d - cmp r0, #0 - blt _0819417C - ldr r3, _08194160 - adds r0, r2, r3 - ldrh r1, [r0] - cmp r1, #1 - beq _081941D4 - ldr r2, [sp, #0x24] - lsrs r0, r2, #0x18 - subs r1, #2 - b _0819418A - .align 2, 0 -_0819414C: .4byte gUnknown_85ABD18 -_08194150: .4byte gUnknown_3005AF0 -_08194154: .4byte 0x00000D24 -_08194158: .4byte gUnknown_2022AE0 -_0819415C: .4byte 0x00000D25 -_08194160: .4byte 0x00000CB2 -_08194164: - mov r3, sl - cmp r3, #0 - bne _081941D4 - ldr r0, _08194194 - ldr r2, [r0] - adds r0, r2, r7 - ldr r1, _08194198 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #0x1d - cmp r0, #0 - bge _0819419C -_0819417C: - lsls r1, r1, #0x1b - lsrs r0, r1, #0x1e - cmp r0, #0 - beq _081941D4 - subs r1, r0, #1 - ldr r2, [sp, #0x24] - lsrs r0, r2, #0x18 -_0819418A: - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl sub_08194490 - b _081941D4 - .align 2, 0 -_08194194: .4byte gUnknown_3005AF0 -_08194198: .4byte 0x00000D25 -_0819419C: - ldr r3, _081941BC - adds r1, r2, r3 - ldrh r0, [r1] - cmp r0, #0 - beq _081941D4 - ldr r0, [sp, #0x1c] - add r0, r8 - lsls r0, r0, #3 - ldr r2, _081941C0 - adds r0, r0, r2 - movs r3, #0x10 - ldrsh r0, [r0, r3] - cmp r0, #0 - beq _081941C4 - ldrh r1, [r1] - b _081941C8 - .align 2, 0 -_081941BC: .4byte 0x00000CB2 -_081941C0: .4byte gUnknown_3005B60 -_081941C4: - ldrh r0, [r1] - subs r1, r0, #1 -_081941C8: - ldr r2, [sp, #0x24] - lsrs r0, r2, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl sub_08194490 -_081941D4: - ldr r0, [sp, #0x1c] - add r0, r8 - lsls r0, r0, #3 - ldr r3, _081941F4 - adds r0, r0, r3 - movs r1, #0x10 - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _08194200 - ldr r2, _081941F8 - ldr r0, [r2] - ldr r3, _081941FC - adds r0, r0, r3 - ldrh r3, [r0] - adds r6, r2, #0 - b _0819420E - .align 2, 0 -_081941F4: .4byte gUnknown_3005B60 -_081941F8: .4byte gUnknown_3005AF0 -_081941FC: .4byte 0x00000CB2 -_08194200: - ldr r1, _0819427C - ldr r0, [r1] - ldr r2, _08194280 - adds r0, r0, r2 - ldrh r0, [r0] - subs r3, r0, #1 - adds r6, r1, #0 -_0819420E: - mov r0, sl - cmp r0, #1 - bne _0819422E - ldr r2, [r6] - adds r0, r2, r7 - ldr r1, _08194284 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #0x1b - lsrs r1, r1, #0x1e - ldr r0, _08194280 - adds r2, r2, r0 - ldrh r0, [r2] - subs r0, #1 - cmp r1, r0 - blt _08194246 -_0819422E: - mov r1, sl - cmp r1, #0 - bne _0819429A - ldr r0, [r6] - adds r0, r0, r7 - ldr r2, _08194284 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1e - cmp r0, r3 - bgt _0819429A -_08194246: - ldr r0, [r6] - adds r1, r0, r7 - ldr r3, _08194284 - adds r0, r1, r3 - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - bge _0819429A - ldr r2, _08194288 - adds r0, r1, r2 - ldrh r0, [r0] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - ldr r3, _0819428C - cmp r0, r3 - bne _08194290 - ldrb r1, [r4, #0xc] - mov r0, sb - ands r0, r1 - movs r1, #0x30 - orrs r0, r1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0xd] - mov r0, sb - ands r0, r1 - movs r1, #0x40 - b _081942E0 - .align 2, 0 -_0819427C: .4byte gUnknown_3005AF0 -_08194280: .4byte 0x00000CB2 -_08194284: .4byte 0x00000D25 -_08194288: .4byte 0x00000D24 -_0819428C: .4byte 0x000003FF -_08194290: - ldrb r1, [r4, #0xc] - mov r0, sb - ands r0, r1 - movs r1, #0xb0 - b _081942D4 -_0819429A: - ldr r0, [r6] - adds r0, r0, r7 - ldr r1, _081942C4 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - ldr r2, _081942C8 - cmp r0, r2 - bne _081942CC - ldrb r1, [r4, #0xc] - mov r0, sb - ands r0, r1 - movs r1, #0x30 - orrs r0, r1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0xd] - mov r0, sb - ands r0, r1 - movs r1, #0x40 - b _081942E0 - .align 2, 0 -_081942C4: .4byte 0x00000D24 -_081942C8: .4byte 0x000003FF -_081942CC: - ldrb r1, [r4, #0xc] - mov r0, sb - ands r0, r1 - movs r1, #0xe0 -_081942D4: - orrs r0, r1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0xd] - mov r0, sb - ands r0, r1 - movs r1, #0xd0 -_081942E0: - orrs r0, r1 - strb r0, [r4, #0xd] - ldr r0, _08194304 - ldr r3, [sp, #0x20] - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, #0 - bne _0819430C - ldrb r0, [r4, #5] - ldrb r2, [r4, #0xa] - ldr r1, _08194308 - bl sub_08005DAC - ldrb r1, [r4, #0xa] - adds r1, r0, r1 - movs r0, #0x40 - subs r0, r0, r1 - b _0819430E - .align 2, 0 -_08194304: .4byte gUnknown_85D5E6D -_08194308: .4byte gUnknown_2022AE0 -_0819430C: - movs r0, #4 -_0819430E: - strb r0, [r4, #8] - ldr r0, _0819435C - str r0, [sp, #4] - ldr r0, _08194360 - ldr r1, [sp, #0x20] - adds r0, r1, r0 - ldrb r0, [r0] - strb r0, [r4, #4] - ldr r2, _08194364 - adds r0, r1, r2 - ldrb r0, [r0] - strb r0, [r4, #9] - add r0, sp, #4 - movs r1, #0 - movs r2, #0 - bl AddTextPrinter - ldr r3, [sp, #0x20] - adds r3, #2 - str r3, [sp, #0x20] - ldr r0, [sp, #0x24] - movs r1, #0x80 - lsls r1, r1, #0x11 - adds r0, r0, r1 - str r0, [sp, #0x24] - adds r7, #4 - subs r5, #1 - cmp r5, #0 - blt _0819434A - b _0819410C -_0819434A: - ldr r0, _08194368 - ldr r1, [sp, #0x1c] - add r1, r8 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _08194466 - .align 2, 0 -_0819435C: .4byte gUnknown_2022AE0 -_08194360: .4byte gUnknown_85D5E6D -_08194364: .4byte gUnknown_85D5E6E -_08194368: .4byte gUnknown_3005B60 -_0819436C: - movs r0, #0 - bl PutWindowTilemap - movs r0, #1 - bl PutWindowTilemap - movs r0, #2 - bl PutWindowTilemap - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - movs r0, #1 - movs r1, #3 - bl CopyWindowToVram - movs r0, #2 - movs r1, #3 - bl CopyWindowToVram - ldr r0, _081943D8 - bl SetHBlankCallback - ldr r0, _081943DC - bl SetVBlankCallback - cmp r4, #2 - bne _08194400 - mov r2, sl - cmp r2, #0 - bne _081943E8 - ldr r0, _081943E0 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r2, _081943E4 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r2 - mov r3, sl - strh r3, [r1, #8] - strh r3, [r1, #0xa] - mov r4, r8 - lsls r0, r4, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrh r0, [r0, #0x10] - strh r0, [r1, #0x14] - b _0819441C - .align 2, 0 -_081943D8: .4byte HblankCb_BattleDome -_081943DC: .4byte VblankCb1_BattleDome -_081943E0: .4byte sub_0819353C -_081943E4: .4byte gUnknown_3005B60 -_081943E8: - ldr r0, _081943F8 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _081943FC - b _08194410 - .align 2, 0 -_081943F8: .4byte sub_081944F4 -_081943FC: .4byte gUnknown_3005B60 -_08194400: - ldr r1, _08194478 - mov r2, r8 - lsls r0, r2, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r3, #0xe - ldrsh r5, [r0, r3] -_08194410: - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #8] -_0819441C: - bl ScanlineEffect_Clear - ldr r0, _0819447C - ldr r2, _08194480 - movs r4, #0xf0 - lsls r4, r4, #3 - adds r1, r0, r4 - movs r5, #0x5a -_0819442C: - strh r2, [r0] - strh r2, [r1] - adds r1, #2 - adds r0, #2 - subs r5, #1 - cmp r5, #0 - bge _0819442C - movs r5, #0x5b - ldr r3, _08194484 - ldr r0, _0819447C - ldr r2, _08194488 - ldr r4, _0819448C - adds r1, r0, r4 - adds r0, #0xb6 -_08194448: - strh r2, [r0] - strh r2, [r1] - adds r1, #2 - adds r0, #2 - adds r5, #1 - cmp r5, #0x9f - ble _08194448 - ldr r0, [r3] - ldr r1, [r3, #4] - ldr r2, [r3, #8] - bl ScanlineEffect_SetParams - mov r0, r8 - bl DestroyTask -_08194466: - add sp, #0x28 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08194478: .4byte gUnknown_3005B60 -_0819447C: .4byte gUnknown_20388C8 -_08194480: .4byte 0x00001F0A -_08194484: .4byte gUnknown_85D59F0 -_08194488: .4byte 0x00001F09 -_0819448C: .4byte 0x00000836 - thumb_func_end Task_ShowTourneyTree - - thumb_func_start sub_08194490 -sub_08194490: @ 0x08194490 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r4, _081944EC - lsls r2, r1, #2 - lsls r3, r0, #4 - adds r2, r2, r3 - adds r2, r2, r4 - ldr r3, [r2] - ldr r2, _081944F0 - lsls r0, r0, #2 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - cmp r0, #0 - beq _081944DC - movs r7, #1 - adds r4, r3, #0 - adds r5, r4, #2 - adds r6, r0, #0 -_081944BE: - ldrb r2, [r4] - ldrb r3, [r4, #1] - str r7, [sp] - str r7, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #1 - adds r1, r5, #0 - bl CopyToBgTilemapBufferRect_ChangePalette - adds r4, #4 - adds r5, #4 - subs r6, #1 - cmp r6, #0 - bne _081944BE -_081944DC: - movs r0, #1 - bl CopyBgTilemapBufferToVram - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081944EC: .4byte gUnknown_85D678C -_081944F0: .4byte gUnknown_85D688C - thumb_func_end sub_08194490 - - thumb_func_start sub_081944F4 -sub_081944F4: @ 0x081944F4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08194524 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #8 - ldrsh r0, [r0, r2] - adds r2, r1, #0 - cmp r0, #4 - bls _0819451A - b _0819473C -_0819451A: - lsls r0, r0, #2 - ldr r1, _08194528 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08194524: .4byte gUnknown_3005B60 -_08194528: .4byte _0819452C -_0819452C: @ jump table - .4byte _08194540 @ case 0 - .4byte _08194564 @ case 1 - .4byte _081946D4 @ case 2 - .4byte _081946EE @ case 3 - .4byte _08194724 @ case 4 -_08194540: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r1, _08194560 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #1 - strh r1, [r0, #8] - b _0819473C - .align 2, 0 -_08194560: .4byte gUnknown_3005B60 -_08194564: - ldr r0, _0819460C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08194572 - b _0819473C -_08194572: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r2, #0 - movs r3, #2 - movs r1, #2 - strh r1, [r0, #8] - movs r1, #0x40 - strh r1, [r0, #0xe] - add r0, sp, #4 - strb r3, [r0, #5] - strb r2, [r0, #6] - strb r2, [r0, #7] - strb r3, [r0, #0xa] - strb r2, [r0, #0xb] - adds r3, r0, #0 - ldrb r2, [r3, #0xc] - subs r1, #0x50 - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3, #0xc] - adds r2, r3, #0 - movs r0, #0xb0 - strb r0, [r2, #0xc] - ldrb r0, [r2, #0xd] - ands r1, r0 - strb r1, [r2, #0xd] - adds r1, r2, #0 - movs r0, #0xd0 - strb r0, [r1, #0xd] - movs r7, #0 - adds r6, r1, #0 - ldr r0, _08194610 - mov r8, r0 -_081945B8: - ldr r1, _08194614 - ldr r0, [r1] - lsls r4, r7, #2 - adds r0, r0, r4 - ldr r2, _08194618 - adds r0, r0, r2 - ldrh r1, [r0] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x16 - ldr r0, _0819461C - bl CopyDomeTrainerName - ldr r0, _08194614 - ldr r1, [r0] - adds r0, r1, r4 - ldr r2, _08194620 - adds r0, r0, r2 - ldrb r3, [r0] - lsls r2, r3, #0x1b - lsrs r2, r2, #0x1e - ldr r0, _08194624 - adds r1, r1, r0 - ldrh r0, [r1] - subs r0, #1 - mov sb, r4 - adds r1, r7, #1 - mov sl, r1 - cmp r2, r0 - bne _0819468A - lsls r0, r3, #0x1d - cmp r0, #0 - bge _0819468A - lsls r0, r7, #1 - ldr r2, _08194628 - adds r1, r0, r2 - ldrb r1, [r1] - adds r5, r0, #0 - cmp r1, #0 - bne _08194660 - movs r4, #0 - b _08194636 - .align 2, 0 -_0819460C: .4byte gUnknown_2037C74 -_08194610: .4byte gUnknown_2021C40 -_08194614: .4byte gUnknown_3005AF0 -_08194618: .4byte 0x00000D24 -_0819461C: .4byte gUnknown_2022AE0 -_08194620: .4byte 0x00000D25 -_08194624: .4byte 0x00000CB2 -_08194628: .4byte gUnknown_85D5E6D -_0819462C: - mov r0, r8 - adds r1, r4, r0 - movs r0, #0 - strb r0, [r1] - adds r4, #1 -_08194636: - ldr r0, _0819465C - bl StringLength - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #5 - subs r1, r1, r0 - cmp r4, r1 - blt _0819462C - mov r1, r8 - adds r0, r4, r1 - movs r1, #0xff - strb r1, [r0] - mov r0, r8 - ldr r1, _0819465C - bl StringAppend - movs r0, #2 - b _0819466A - .align 2, 0 -_0819465C: .4byte gUnknown_2022AE0 -_08194660: - ldr r0, _081946BC - ldr r1, _081946C0 - bl StringCopy - movs r0, #4 -_0819466A: - strb r0, [r6, #8] - mov r2, r8 - str r2, [sp, #4] - ldr r1, _081946C4 - adds r0, r5, r1 - ldrb r0, [r0] - strb r0, [r6, #4] - ldr r2, _081946C8 - adds r0, r5, r2 - ldrb r0, [r0] - strb r0, [r6, #9] - add r0, sp, #4 - movs r1, #0 - movs r2, #0 - bl AddTextPrinter -_0819468A: - ldr r0, _081946CC - ldr r1, [r0] - mov r2, sb - adds r0, r1, r2 - ldr r2, _081946D0 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - blt _081946B2 - subs r2, #0x73 - adds r0, r1, r2 - ldrh r0, [r0] - subs r4, r0, #1 - lsls r0, r7, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r4, #0x18 - lsrs r1, r1, #0x18 - bl sub_08194490 -_081946B2: - mov r7, sl - cmp r7, #0xf - bgt _081946BA - b _081945B8 -_081946BA: - b _0819473C - .align 2, 0 -_081946BC: .4byte gUnknown_2021C40 -_081946C0: .4byte gUnknown_2022AE0 -_081946C4: .4byte gUnknown_85D5E6D -_081946C8: .4byte gUnknown_85D5E6E -_081946CC: .4byte gUnknown_3005AF0 -_081946D0: .4byte 0x00000D25 -_081946D4: - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r1, r0, r2 - ldrh r0, [r1, #0xe] - subs r0, #1 - strh r0, [r1, #0xe] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0819473C - movs r0, #3 - strh r0, [r1, #8] - b _0819473C -_081946EE: - ldr r0, _0819471C - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _0819473C - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _08194720 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #4 - strh r1, [r0, #8] - b _0819473C - .align 2, 0 -_0819471C: .4byte gUnknown_3002360 -_08194720: .4byte gUnknown_3005B60 -_08194724: - ldr r0, _0819474C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0819473C - ldr r0, _08194750 - bl SetMainCallback2 - adds r0, r4, #0 - bl DestroyTask -_0819473C: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0819474C: .4byte gUnknown_2037C74 -_08194750: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic - thumb_func_end sub_081944F4 - - thumb_func_start CB2_BattleDome -CB2_BattleDome: @ 0x08194754 - push {lr} - bl AnimateSprites - bl BuildOamBuffer - bl sub_08004630 - bl UpdatePaletteFade - bl RunTasks - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CB2_BattleDome - - thumb_func_start VblankCb0_BattleDome -VblankCb0_BattleDome: @ 0x08194770 - push {lr} - movs r0, #3 - movs r1, #0x80 - movs r2, #1 - bl ChangeBgX - movs r0, #3 - movs r1, #0x80 - movs r2, #2 - bl ChangeBgY - ldr r0, _081947D4 - ldrh r1, [r0] - movs r0, #0x10 - bl SetGpuReg - ldr r0, _081947D8 - ldrh r1, [r0] - movs r0, #0x12 - bl SetGpuReg - ldr r0, _081947DC - ldrh r1, [r0] - movs r0, #0x14 - bl SetGpuReg - ldr r0, _081947E0 - ldrh r1, [r0] - movs r0, #0x16 - bl SetGpuReg - ldr r0, _081947E4 - ldrh r1, [r0] - movs r0, #0x18 - bl SetGpuReg - ldr r0, _081947E8 - ldrh r1, [r0] - movs r0, #0x1a - bl SetGpuReg - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 -_081947D4: .4byte gUnknown_2022AC8 -_081947D8: .4byte gUnknown_2022ACA -_081947DC: .4byte gUnknown_2022ACC -_081947E0: .4byte gUnknown_2022ACE -_081947E4: .4byte gUnknown_2022AD0 -_081947E8: .4byte gUnknown_2022AD2 - thumb_func_end VblankCb0_BattleDome - - thumb_func_start HblankCb_BattleDome -HblankCb_BattleDome: @ 0x081947EC - push {lr} - ldr r0, _0819480C - ldrh r0, [r0] - adds r1, r0, #0 - cmp r0, #0x29 - bls _081948C8 - cmp r0, #0x31 - bhi _0819481C - ldr r1, _08194810 - ldr r2, _08194814 - adds r0, r2, #0 - strh r0, [r1] - subs r1, #8 - ldr r0, _08194818 - b _081948D4 - .align 2, 0 -_0819480C: .4byte 0x04000006 -_08194810: .4byte 0x04000048 -_08194814: .4byte 0x00003B3B -_08194818: .4byte 0x989B5558 -_0819481C: - cmp r0, #0x39 - bls _081948C8 - cmp r0, #0x4a - bhi _08194840 - ldr r1, _08194834 - ldr r2, _08194838 - adds r0, r2, #0 - strh r0, [r1] - subs r1, #8 - ldr r0, _0819483C - b _081948D4 - .align 2, 0 -_08194834: .4byte 0x04000048 -_08194838: .4byte 0x00003B3B -_0819483C: .4byte 0x90985860 -_08194840: - cmp r0, #0x51 - bhi _08194860 - ldr r1, _08194854 - ldr r2, _08194858 - adds r0, r2, #0 - strh r0, [r1] - subs r1, #8 - ldr r0, _0819485C - b _081948D4 - .align 2, 0 -_08194854: .4byte 0x04000048 -_08194858: .4byte 0x00003B3B -_0819485C: .4byte 0x989B5558 -_08194860: - cmp r0, #0x5e - bls _081948C8 - cmp r0, #0x66 - bhi _08194884 - ldr r1, _08194878 - ldr r2, _0819487C - adds r0, r2, #0 - strh r0, [r1] - subs r1, #8 - ldr r0, _08194880 - b _081948D4 - .align 2, 0 -_08194878: .4byte 0x04000048 -_0819487C: .4byte 0x00003737 -_08194880: .4byte 0x989B5558 -_08194884: - cmp r0, #0x76 - bhi _081948A4 - ldr r1, _08194898 - ldr r2, _0819489C - adds r0, r2, #0 - strh r0, [r1] - subs r1, #8 - ldr r0, _081948A0 - b _081948D4 - .align 2, 0 -_08194898: .4byte 0x04000048 -_0819489C: .4byte 0x00003737 -_081948A0: .4byte 0x90985860 -_081948A4: - cmp r0, #0x7e - bls _081948C8 - cmp r1, #0x86 - bhi _081948C8 - ldr r1, _081948BC - ldr r2, _081948C0 - adds r0, r2, #0 - strh r0, [r1] - subs r1, #8 - ldr r0, _081948C4 - b _081948D4 - .align 2, 0 -_081948BC: .4byte 0x04000048 -_081948C0: .4byte 0x00003737 -_081948C4: .4byte 0x989B5558 -_081948C8: - ldr r1, _081948DC - ldr r2, _081948E0 - adds r0, r2, #0 - strh r0, [r1] - subs r1, #8 - movs r0, #0 -_081948D4: - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_081948DC: .4byte 0x04000048 -_081948E0: .4byte 0x00003F3F - thumb_func_end HblankCb_BattleDome - - thumb_func_start VblankCb1_BattleDome -VblankCb1_BattleDome: @ 0x081948E4 - push {lr} - ldr r0, _08194938 - ldrh r1, [r0] - movs r0, #0x10 - bl SetGpuReg - ldr r0, _0819493C - ldrh r1, [r0] - movs r0, #0x12 - bl SetGpuReg - ldr r0, _08194940 - ldrh r1, [r0] - movs r0, #0x14 - bl SetGpuReg - ldr r0, _08194944 - ldrh r1, [r0] - movs r0, #0x16 - bl SetGpuReg - movs r0, #2 - movs r1, #0x80 - movs r2, #2 - bl ChangeBgY - movs r0, #3 - movs r1, #0x80 - movs r2, #1 - bl ChangeBgY - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl ScanlineEffect_InitHBlankDmaTransfer - pop {r0} - bx r0 - .align 2, 0 -_08194938: .4byte gUnknown_2022AC8 -_0819493C: .4byte gUnknown_2022ACA -_08194940: .4byte gUnknown_2022ACC -_08194944: .4byte gUnknown_2022ACE - thumb_func_end VblankCb1_BattleDome - - thumb_func_start InitDomeFacilityTrainersAndMons -InitDomeFacilityTrainersAndMons: @ 0x08194948 - ldr r1, _08194958 - ldr r0, _0819495C - str r0, [r1] - ldr r1, _08194960 - ldr r0, _08194964 - str r0, [r1] - bx lr - .align 2, 0 -_08194958: .4byte gUnknown_203B958 -_0819495C: .4byte gUnknown_85B8700 -_08194960: .4byte gUnknown_203B954 -_08194964: .4byte gUnknown_85B4A10 - thumb_func_end InitDomeFacilityTrainersAndMons - - thumb_func_start RestoreDomePlayerParty -RestoreDomePlayerParty: @ 0x08194968 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - movs r3, #0 -_08194976: - ldr r0, _081949B0 - ldr r1, [r0] - ldr r0, _081949B4 - adds r0, r3, r0 - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #1 - ldr r2, _081949B8 - adds r1, r1, r2 - adds r1, r1, r0 - ldrh r0, [r1] - subs r0, #1 - mov sl, r0 - movs r6, #0 - adds r0, r3, #1 - str r0, [sp] - movs r1, #0x64 - mov r0, sl - muls r0, r1, r0 - movs r2, #0x8e - lsls r2, r2, #2 - adds r2, r2, r0 - mov sb, r2 - adds r7, r3, #0 - muls r7, r1, r7 -_081949A8: - movs r5, #0 - adds r0, r6, #1 - mov r8, r0 - b _081949BE - .align 2, 0 -_081949B0: .4byte gUnknown_3005AF0 -_081949B4: .4byte gUnknown_203CBC4 -_081949B8: .4byte 0x00000CAA -_081949BC: - adds r5, #1 -_081949BE: - cmp r5, #3 - bgt _081949EA - ldr r1, _08194A3C - ldr r0, [r1] - add r0, sb - adds r1, r5, #0 - adds r1, #0xd - movs r2, #0 - str r3, [sp, #4] - bl GetMonData - adds r4, r0, #0 - adds r1, r6, #0 - adds r1, #0xd - ldr r2, _08194A40 - adds r0, r7, r2 - movs r2, #0 - bl GetMonData - ldr r3, [sp, #4] - cmp r4, r0 - bne _081949BC -_081949EA: - cmp r5, #4 - bne _08194A00 - lsls r2, r6, #0x18 - lsrs r2, r2, #0x18 - ldr r1, _08194A40 - adds r0, r7, r1 - movs r1, #0xa6 - str r3, [sp, #4] - bl SetMonMoveSlot - ldr r3, [sp, #4] -_08194A00: - mov r6, r8 - cmp r6, #3 - ble _081949A8 - ldr r2, _08194A3C - ldr r0, [r2] - movs r2, #0x64 - mov r1, sl - muls r1, r2, r1 - adds r0, r0, r1 - movs r1, #0x8e - lsls r1, r1, #2 - adds r0, r0, r1 - adds r1, r3, #0 - muls r1, r2, r1 - ldr r2, _08194A40 - adds r1, r1, r2 - movs r2, #0x64 - bl memcpy - ldr r3, [sp] - cmp r3, #1 - ble _08194976 - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08194A3C: .4byte gUnknown_3005AEC -_08194A40: .4byte gUnknown_2024190 - thumb_func_end RestoreDomePlayerParty - - thumb_func_start RestoreDomePlayerPartyHeldItems -RestoreDomePlayerPartyHeldItems: @ 0x08194A44 - push {r4, r5, r6, r7, lr} - sub sp, #4 - movs r4, #0 - ldr r7, _08194AA0 - movs r6, #0x64 - movs r5, #0 -_08194A50: - ldr r0, _08194AA4 - ldr r1, [r0] - ldr r0, _08194AA8 - adds r0, r4, r0 - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #1 - ldr r2, _08194AAC - adds r1, r1, r2 - adds r1, r1, r0 - ldrh r0, [r1] - subs r0, #1 - adds r1, r0, #0 - muls r1, r6, r1 - movs r0, #0x8e - lsls r0, r0, #2 - adds r1, r1, r0 - ldr r0, [r7] - adds r0, r0, r1 - movs r1, #0xc - movs r2, #0 - bl GetMonData - mov r1, sp - strh r0, [r1] - ldr r0, _08194AB0 - adds r0, r5, r0 - movs r1, #0xc - mov r2, sp - bl SetMonData - adds r5, #0x64 - adds r4, #1 - cmp r4, #1 - ble _08194A50 - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08194AA0: .4byte gUnknown_3005AEC -_08194AA4: .4byte gUnknown_3005AF0 -_08194AA8: .4byte gUnknown_203CBC4 -_08194AAC: .4byte 0x00000CAA -_08194AB0: .4byte gUnknown_2024190 - thumb_func_end RestoreDomePlayerPartyHeldItems - - thumb_func_start sub_08194AB4 -sub_08194AB4: @ 0x08194AB4 - push {lr} - bl ReducePlayerPartyToSelectedMons - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08194AB4 - - thumb_func_start GetPlayerSeededBeforeOpponent -GetPlayerSeededBeforeOpponent: @ 0x08194AC0 - push {r4, lr} - ldr r0, _08194ADC - ldrh r0, [r0] - bl sub_08194F58 - adds r4, r0, #0 - ldr r0, _08194AE0 - bl sub_08194F58 - cmp r4, r0 - ble _08194AE8 - ldr r1, _08194AE4 - movs r0, #1 - b _08194AEC - .align 2, 0 -_08194ADC: .4byte gUnknown_203886A -_08194AE0: .4byte 0x000003FF -_08194AE4: .4byte gUnknown_2037290 -_08194AE8: - ldr r1, _08194AF4 - movs r0, #2 -_08194AEC: - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08194AF4: .4byte gUnknown_2037290 - thumb_func_end GetPlayerSeededBeforeOpponent - - thumb_func_start BufferLastDomeWinnerName -BufferLastDomeWinnerName: @ 0x08194AF8 - push {r4, lr} - bl InitDomeFacilityTrainersAndMons - movs r2, #0 - ldr r3, _08194B48 - ldr r0, [r3] - ldr r1, _08194B4C - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - bge _08194B2A - adds r4, r3, #0 - adds r3, r1, #0 -_08194B14: - adds r2, #1 - cmp r2, #0xf - bgt _08194B2A - ldr r0, [r4] - lsls r1, r2, #2 - adds r0, r0, r1 - adds r0, r0, r3 - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - blt _08194B14 -_08194B2A: - ldr r0, _08194B50 - ldr r1, _08194B48 - ldr r1, [r1] - lsls r2, r2, #2 - adds r1, r1, r2 - ldr r2, _08194B54 - adds r1, r1, r2 - ldrh r1, [r1] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x16 - bl CopyDomeTrainerName - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08194B48: .4byte gUnknown_3005AF0 -_08194B4C: .4byte 0x00000D25 -_08194B50: .4byte gUnknown_2021C40 -_08194B54: .4byte 0x00000D24 - thumb_func_end BufferLastDomeWinnerName - - thumb_func_start sub_08194B58 -sub_08194B58: @ 0x08194B58 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x40 - movs r0, #0 - str r0, [sp, #8] - str r0, [sp, #0xc] - str r0, [sp, #0x10] - ldr r4, _08194BE8 - ldr r2, [r4] - ldr r5, _08194BEC - adds r0, r2, r5 - ldrb r1, [r0] - ldr r6, _08194BF0 - adds r0, r2, r6 - ldrb r0, [r0] - cmn r1, r0 - beq _08194B8C - ldr r1, _08194BF4 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #1 - beq _08194B8C - b _08194F3E -_08194B8C: - movs r0, #0x20 - bl AllocZeroed - str r0, [sp, #0x18] - movs r0, #0x18 - bl AllocZeroed - str r0, [sp, #0x1c] - ldr r1, [r4] - ldr r2, _08194BF8 - adds r1, r1, r2 - ldrb r2, [r1] - lsls r0, r2, #0x1e - lsrs r0, r0, #0x1e - str r0, [sp, #0x14] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r0, [r4] - movs r1, #1 - adds r0, r0, r5 - strb r1, [r0] - ldr r0, [r4] - adds r0, r0, r6 - strb r1, [r0] - movs r3, #0 - mov sl, r3 - movs r4, #0 - str r4, [sp, #0x38] - movs r5, #0 - str r5, [sp, #0x3c] -_08194BCC: - mov r0, sl - cmp r0, #4 - bgt _08194BFC - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - b _08194C30 - .align 2, 0 -_08194BE8: .4byte gUnknown_3005AF0 -_08194BEC: .4byte 0x00000D0A -_08194BF0: .4byte 0x00000D0B -_08194BF4: .4byte 0x00000CA8 -_08194BF8: .4byte 0x00000CA9 -_08194BFC: - mov r1, sl - cmp r1, #0xe - bgt _08194C1A - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x14 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r4, r0, #0 - adds r4, #0xa - b _08194C30 -_08194C1A: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r4, r0, #0 - adds r4, #0x1e -_08194C30: - movs r6, #0 - cmp r6, sl - bge _08194C64 - ldr r2, _08194EA0 - ldr r0, [r2] - ldr r3, _08194EA4 - adds r0, r0, r3 - ldrh r0, [r0] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - cmp r0, r4 - beq _08194C64 - adds r3, r2, #0 - ldr r2, _08194EA4 -_08194C4C: - adds r6, #1 - cmp r6, sl - bge _08194C64 - ldr r0, [r3] - lsls r1, r6, #2 - adds r0, r0, r1 - adds r0, r0, r2 - ldrh r0, [r0] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - cmp r0, r4 - bne _08194C4C -_08194C64: - cmp r6, sl - bne _08194BCC - ldr r5, _08194EA0 - ldr r3, [r5] - ldr r0, [sp, #0x38] - adds r3, r3, r0 - ldr r1, _08194EA4 - adds r3, r3, r1 - ldr r2, _08194EA8 - adds r0, r2, #0 - adds r2, r4, #0 - ands r2, r0 - ldrh r0, [r3] - ldr r5, _08194EAC - adds r1, r5, #0 - ands r0, r1 - orrs r0, r2 - strh r0, [r3] - movs r6, #0 - lsls r4, r4, #0x10 - str r4, [sp, #0x30] - ldr r0, [sp, #0x3c] - str r0, [sp, #0x20] -_08194C92: - adds r1, r6, #1 - str r1, [sp, #0x24] - lsls r2, r6, #2 - str r2, [sp, #0x2c] - lsls r3, r6, #1 - str r3, [sp, #0x28] -_08194C9E: - ldr r4, [sp, #0x30] - lsrs r0, r4, #0x10 - bl RandomizeFacilityTrainerMonSet - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - movs r7, #0 - cmp r7, r6 - bge _08194CF4 - ldr r0, _08194EA0 - ldr r0, [r0] - ldr r1, _08194EB0 - mov sb, r1 - ldr r2, [sp, #8] - mov r8, r2 - ldr r3, [sp, #0xc] - mov ip, r3 - ldr r4, _08194EB4 - adds r0, r0, r4 - ldr r1, [sp, #0x20] - adds r4, r1, r0 -_08194CC8: - ldrh r3, [r4] - cmp r3, r5 - beq _08194CF4 - mov r2, sb - ldr r1, [r2] - lsls r0, r5, #4 - adds r2, r0, r1 - ldrh r0, [r2] - cmp r8, r0 - beq _08194CF4 - cmp ip, r0 - beq _08194CF4 - lsls r0, r3, #4 - adds r0, r0, r1 - ldrb r0, [r0, #0xa] - ldrb r2, [r2, #0xa] - cmp r0, r2 - beq _08194CF4 - adds r4, #2 - adds r7, #1 - cmp r7, r6 - blt _08194CC8 -_08194CF4: - cmp r7, r6 - bne _08194C9E - ldr r3, _08194EA0 - ldr r0, [r3] - ldr r4, [sp, #0x28] - ldr r2, [sp, #0x3c] - adds r1, r4, r2 - ldr r3, _08194EB4 - adds r0, r0, r3 - adds r0, r0, r1 - strh r5, [r0] - ldr r2, [sp, #0x2c] - add r2, sp - adds r2, #8 - ldr r3, _08194EB0 - ldr r1, [r3] - lsls r0, r5, #4 - adds r0, r0, r1 - ldrh r0, [r0] - str r0, [r2] - ldr r6, [sp, #0x24] - cmp r6, #2 - ble _08194C92 - ldr r4, _08194EA0 - ldr r2, [r4] - ldr r5, [sp, #0x38] - adds r2, r2, r5 - ldr r0, _08194EB8 - adds r2, r2, r0 - ldrb r0, [r2] - movs r4, #5 - rsbs r4, r4, #0 - adds r1, r4, #0 - ands r0, r1 - strb r0, [r2] - ldr r5, _08194EA0 - ldr r2, [r5] - ldr r0, [sp, #0x38] - adds r2, r2, r0 - ldr r1, _08194EB8 - adds r2, r2, r1 - ldrb r0, [r2] - subs r4, #0x14 - adds r1, r4, #0 - ands r0, r1 - strb r0, [r2] - ldr r1, [r5] - ldr r5, [sp, #0x38] - adds r1, r1, r5 - ldr r0, _08194EB8 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #0x1f - ands r0, r2 - strb r0, [r1] - adds r5, #4 - str r5, [sp, #0x38] - ldr r1, [sp, #0x3c] - adds r1, #6 - str r1, [sp, #0x3c] - movs r2, #1 - add sl, r2 - mov r4, sl - cmp r4, #0xf - bgt _08194D78 - b _08194BCC -_08194D78: - movs r5, #0 - mov sl, r5 - ldr r5, [sp, #0x18] - movs r0, #0 - str r0, [sp, #0x34] -_08194D82: - movs r7, #0 - strh r7, [r5] - ldr r1, _08194EA0 - ldr r0, [r1] - mov r2, sl - lsls r1, r2, #2 - adds r0, r0, r1 - ldr r3, _08194EA4 - adds r0, r0, r3 - ldrh r0, [r0] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - bl sub_0818FDC4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r6, #0 - ldr r4, [sp, #0x34] - mov sb, r4 -_08194DAA: - ldr r1, _08194EA0 - ldr r0, [r1] - mov r4, sb - add r4, sl - adds r4, r4, r6 - lsls r4, r4, #1 - ldr r2, _08194EB4 - adds r0, r0, r2 - adds r0, r0, r4 - ldrh r1, [r0] - ldr r3, _08194EB0 - ldr r0, [r3] - lsls r1, r1, #4 - adds r1, r1, r0 - ldrh r0, [r1] - ldrb r3, [r1, #0xb] - ldrb r1, [r1, #0xc] - str r1, [sp] - ldr r1, [sp, #0x1c] - str r1, [sp, #4] - movs r1, #0x32 - mov r2, r8 - bl CalcDomeMonStats - ldr r2, [sp, #0x1c] - ldr r1, [r2, #4] - ldrh r0, [r5] - adds r0, r0, r1 - ldr r1, [r2, #8] - adds r0, r0, r1 - ldr r1, [r2, #0x10] - adds r0, r0, r1 - ldr r1, [r2, #0x14] - adds r0, r0, r1 - ldr r1, [r2, #0xc] - adds r0, r0, r1 - ldr r1, [r2] - adds r0, r0, r1 - strh r0, [r5] - ldr r3, _08194EA0 - ldr r0, [r3] - ldr r1, _08194EB4 - adds r0, r0, r1 - adds r0, r0, r4 - ldrh r0, [r0] - ldr r2, _08194EB0 - ldr r1, [r2] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - ldr r3, _08194EBC - adds r1, r1, r3 - ldrb r0, [r1, #6] - lsls r0, r0, #2 - ldr r4, _08194EC0 - adds r0, r0, r4 - ldr r0, [r0] - orrs r7, r0 - ldrb r0, [r1, #7] - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r0, [r0] - orrs r7, r0 - adds r6, #1 - cmp r6, #2 - ble _08194DAA - movs r4, #0 - movs r1, #1 - movs r6, #0x1f -_08194E3A: - adds r0, r7, #0 - ands r0, r1 - cmp r0, #0 - beq _08194E44 - adds r4, #1 -_08194E44: - asrs r7, r7, #1 - subs r6, #1 - cmp r6, #0 - bge _08194E3A - movs r1, #0x32 - adds r0, r4, #0 - muls r0, r1, r0 - movs r1, #0x14 - bl __divsi3 - ldrh r1, [r5] - adds r1, r1, r0 - strh r1, [r5] - adds r5, #2 - ldr r2, [sp, #0x34] - adds r2, #2 - str r2, [sp, #0x34] - movs r3, #1 - add sl, r3 - mov r4, sl - cmp r4, #0xf - ble _08194D82 - movs r5, #0 - mov sl, r5 - ldr r7, [sp, #0x18] -_08194E76: - mov r6, sl - adds r6, #1 - cmp r6, #0xf - bgt _08194EF8 - mov r8, r7 - ldr r5, _08194EA4 - lsls r0, r6, #1 - ldr r1, [sp, #0x18] - adds r4, r0, r1 -_08194E88: - mov r2, r8 - ldrh r1, [r2] - ldrh r0, [r4] - cmp r1, r0 - bhs _08194EC4 - mov r0, sl - adds r1, r6, #0 - ldr r2, [sp, #0x18] - bl SwapDomeTrainers - b _08194EF0 - .align 2, 0 -_08194EA0: .4byte gUnknown_3005AF0 -_08194EA4: .4byte 0x00000D24 -_08194EA8: .4byte 0x000003FF -_08194EAC: .4byte 0xFFFFFC00 -_08194EB0: .4byte gUnknown_203B958 -_08194EB4: .4byte 0x00000D64 -_08194EB8: .4byte 0x00000D25 -_08194EBC: .4byte gUnknown_82F0D54 -_08194EC0: .4byte gUnknown_82FACB4 -_08194EC4: - cmp r1, r0 - bne _08194EF0 - ldr r0, _08194F50 - ldr r1, [r0] - mov r3, sl - lsls r0, r3, #2 - adds r0, r1, r0 - adds r0, r0, r5 - ldrh r2, [r0] - lsls r2, r2, #0x16 - lsls r0, r6, #2 - adds r1, r1, r0 - adds r1, r1, r5 - ldrh r0, [r1] - lsls r0, r0, #0x16 - cmp r2, r0 - bls _08194EF0 - mov r0, sl - adds r1, r6, #0 - ldr r2, [sp, #0x18] - bl SwapDomeTrainers -_08194EF0: - adds r4, #2 - adds r6, #1 - cmp r6, #0xf - ble _08194E88 -_08194EF8: - adds r7, #2 - movs r4, #1 - add sl, r4 - mov r5, sl - cmp r5, #0xe - ble _08194E76 - ldr r0, [sp, #0x18] - bl Free - ldr r0, [sp, #0x1c] - bl Free - movs r0, #0 - mov sl, r0 -_08194F14: - mov r1, sl - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - bl DecideRoundWinners - movs r2, #1 - add sl, r2 - mov r3, sl - cmp r3, #3 - ble _08194F14 - ldr r0, _08194F50 - ldr r1, [r0] - ldr r4, _08194F54 - adds r1, r1, r4 - ldrb r2, [r1] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - ldr r5, [sp, #0x14] - orrs r0, r5 - strb r0, [r1] -_08194F3E: - add sp, #0x40 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08194F50: .4byte gUnknown_3005AF0 -_08194F54: .4byte 0x00000CA9 - thumb_func_end sub_08194B58 - - thumb_func_start sub_08194F58 -sub_08194F58: @ 0x08194F58 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - movs r2, #0 - ldr r4, _08194F98 - ldr r0, [r4] - ldr r1, _08194F9C - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - cmp r0, r3 - beq _08194F8E - adds r5, r4, #0 - adds r4, r1, #0 -_08194F76: - adds r2, #1 - cmp r2, #0xf - bgt _08194F8E - ldr r0, [r5] - lsls r1, r2, #2 - adds r0, r0, r1 - adds r0, r0, r4 - ldrh r0, [r0] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - cmp r0, r3 - bne _08194F76 -_08194F8E: - adds r0, r2, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08194F98: .4byte gUnknown_3005AF0 -_08194F9C: .4byte 0x00000D24 - thumb_func_end sub_08194F58 - - thumb_func_start sub_08194FA0 -sub_08194FA0: @ 0x08194FA0 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - movs r2, #0 - ldr r4, _08194FE0 - ldr r0, [r4] - ldr r1, _08194FE4 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - cmp r0, r3 - beq _08194FD6 - adds r5, r4, #0 - adds r4, r1, #0 -_08194FBE: - adds r2, #1 - cmp r2, #0xf - bgt _08194FD6 - ldr r0, [r5] - lsls r1, r2, #2 - adds r0, r0, r1 - adds r0, r0, r4 - ldrh r0, [r0] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - cmp r0, r3 - bne _08194FBE -_08194FD6: - adds r0, r2, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08194FE0: .4byte gUnknown_3005AF0 -_08194FE4: .4byte 0x00000D24 - thumb_func_end sub_08194FA0 - - thumb_func_start sub_08194FE8 -sub_08194FE8: @ 0x08194FE8 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _08195024 - ldr r0, _08195028 - adds r0, r4, r0 - ldrb r0, [r0] - lsrs r0, r0, #1 - lsls r0, r0, #2 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - subs r0, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, sp - bl sub_08192B3C - mov r0, sp - ldrb r0, [r0] - cmp r4, r0 - beq _0819502C - mov r0, sp - ldrb r0, [r0] - b _08195030 - .align 2, 0 -_08195024: .4byte gUnknown_85D5C1C -_08195028: .4byte gUnknown_85D5C3C -_0819502C: - mov r0, sp - ldrb r0, [r0, #1] -_08195030: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_08194FE8 - - thumb_func_start DecideRoundWinners -DecideRoundWinners: @ 0x08195038 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x40 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - movs r0, #0 - str r0, [sp, #0xc] - movs r1, #0 - str r1, [sp, #0x10] - movs r5, #0 - movs r1, #3 - ldr r0, [sp] - ands r0, r1 - lsls r0, r0, #3 - str r0, [sp, #0x14] -_0819505E: - ldr r2, _081950F0 - ldr r0, [r2] - lsls r4, r5, #2 - adds r1, r0, r4 - ldr r3, _081950F4 - adds r0, r1, r3 - ldrb r0, [r0] - lsls r0, r0, #0x1d - adds r2, r5, #1 - str r2, [sp, #0x24] - cmp r0, #0 - bge _08195078 - b _08195476 -_08195078: - subs r3, #1 - adds r0, r1, r3 - ldrh r0, [r0] - lsls r1, r0, #0x16 - ldr r0, _081950F8 - cmp r1, r0 - bne _08195088 - b _08195476 -_08195088: - str r5, [sp, #4] - lsrs r1, r1, #0x16 - ldr r0, [sp] - bl TournamentIdOfOpponent - str r0, [sp, #8] - ldr r0, _081950F0 - ldr r3, [r0] - adds r0, r3, r4 - ldr r1, _081950FC - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #0x16 - ldr r1, _08195100 - cmp r0, r1 - bne _08195104 - ldr r2, [sp, #8] - cmp r2, #0xff - beq _08195104 - lsls r2, r2, #2 - adds r1, r3, r2 - ldr r3, _081950F4 - adds r1, r1, r3 - ldrb r0, [r1] - movs r3, #4 - orrs r0, r3 - strb r0, [r1] - ldr r0, _081950F0 - ldr r1, [r0] - adds r1, r1, r2 - ldr r2, _081950F4 - adds r1, r1, r2 - ldrb r0, [r1] - subs r3, #0x1d - ands r0, r3 - ldr r2, [sp, #0x14] - orrs r0, r2 - strb r0, [r1] - adds r0, r5, #0 - ldr r1, [sp, #8] - ldr r2, [sp] - bl GetWinningMove - ldr r3, _081950F0 - ldr r1, [r3] - ldr r5, [sp, #8] - lsls r2, r5, #1 - movs r3, #0xec - lsls r3, r3, #4 - adds r1, r1, r3 - adds r1, r1, r2 - b _08195474 - .align 2, 0 -_081950F0: .4byte gUnknown_3005AF0 -_081950F4: .4byte 0x00000D25 -_081950F8: .4byte 0xFFC00000 -_081950FC: .4byte 0x00000D24 -_08195100: .4byte 0xFF800000 -_08195104: - ldr r4, _0819516C - ldr r3, [r4] - ldr r0, [sp, #8] - lsls r2, r0, #2 - adds r0, r3, r2 - ldr r1, _08195170 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #0x16 - ldr r1, _08195174 - str r2, [sp, #0x30] - cmp r0, r1 - bne _0819517C - ldr r2, [sp, #4] - cmp r2, #0xff - beq _0819517C - lsls r2, r2, #2 - adds r1, r3, r2 - ldr r3, _08195178 - adds r1, r1, r3 - ldrb r0, [r1] - movs r3, #4 - orrs r0, r3 - strb r0, [r1] - ldr r1, [r4] - adds r1, r1, r2 - ldr r0, _08195178 - adds r1, r1, r0 - ldrb r0, [r1] - movs r2, #0x19 - rsbs r2, r2, #0 - ands r0, r2 - ldr r3, [sp, #0x14] - orrs r0, r3 - strb r0, [r1] - ldr r0, [sp, #8] - ldr r1, [sp, #4] - ldr r2, [sp] - bl GetWinningMove - ldr r1, [r4] - ldr r3, [sp, #4] - lsls r2, r3, #1 - movs r3, #0xec - lsls r3, r3, #4 - adds r1, r1, r3 - adds r1, r1, r2 - strh r0, [r1] - adds r5, #1 - str r5, [sp, #0x24] - b _08195476 - .align 2, 0 -_0819516C: .4byte gUnknown_3005AF0 -_08195170: .4byte 0x00000D24 -_08195174: .4byte 0xFF800000 -_08195178: .4byte 0x00000D25 -_0819517C: - adds r5, #1 - str r5, [sp, #0x24] - ldr r5, [sp, #8] - cmp r5, #0xff - bne _08195188 - b _08195476 -_08195188: - movs r0, #0 - mov sl, r0 - lsls r1, r5, #1 - str r1, [sp, #0x2c] - ldr r2, [sp, #4] - lsls r2, r2, #1 - str r2, [sp, #0x28] - ldr r3, [sp, #4] - adds r0, r2, r3 - lsls r0, r0, #1 - mov sb, r0 - adds r0, r1, r5 - lsls r0, r0, #1 - str r0, [sp, #0x18] -_081951A4: - movs r5, #0 - mov r0, sb - str r0, [sp, #0x38] -_081951AA: - movs r6, #0 - lsls r7, r5, #1 - ldr r4, [sp, #0x18] -_081951B0: - ldr r2, _08195370 - ldr r1, [r2] - ldr r3, _08195374 - adds r1, r1, r3 - ldr r2, [sp, #0x38] - adds r0, r1, r2 - ldrh r0, [r0] - ldr r3, _08195378 - mov r8, r3 - ldr r2, [r3] - lsls r0, r0, #4 - adds r0, r0, r2 - adds r0, #2 - adds r0, r0, r7 - ldrh r0, [r0] - adds r1, r1, r4 - ldrh r1, [r1] - lsls r1, r1, #4 - adds r1, r1, r2 - ldrh r1, [r1] - movs r2, #2 - bl GetTypeEffectivenessPoints - ldr r1, [sp, #0xc] - adds r1, r1, r0 - str r1, [sp, #0xc] - adds r4, #2 - adds r6, #1 - cmp r6, #2 - ble _081951B0 - adds r5, #1 - cmp r5, #3 - ble _081951AA - ldr r2, _08195370 - ldr r0, [r2] - ldr r3, _08195374 - adds r0, r0, r3 - add r0, sb - ldrh r0, [r0] - mov r5, r8 - ldr r1, [r5] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrh r2, [r0] - ldr r0, _0819537C - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1] - ldrb r2, [r1, #1] - adds r0, r0, r2 - ldrb r2, [r1, #2] - adds r0, r0, r2 - ldrb r2, [r1, #3] - adds r0, r0, r2 - ldrb r3, [r1, #4] - adds r0, r0, r3 - ldrb r1, [r1, #5] - adds r0, r0, r1 - movs r1, #0xa - bl __divsi3 - ldr r5, [sp, #0xc] - adds r5, r5, r0 - str r5, [sp, #0xc] - movs r0, #2 - add sb, r0 - movs r1, #1 - add sl, r1 - mov r2, sl - cmp r2, #2 - ble _081951A4 - bl Random - movs r1, #0x1f - ands r1, r0 - adds r5, r5, r1 - ldr r3, [sp, #4] - adds r5, r5, r3 - str r5, [sp, #0xc] - movs r5, #0 - mov sl, r5 - ldr r1, [sp, #0x2c] - ldr r2, [sp, #8] - adds r0, r1, r2 - lsls r0, r0, #1 - str r0, [sp, #0x1c] - ldr r5, [sp, #0x28] - adds r0, r5, r3 - lsls r0, r0, #1 - str r0, [sp, #0x20] -_08195268: - movs r5, #0 - mov r0, sl - lsls r3, r0, #1 - movs r1, #1 - add sl, r1 - ldr r2, [sp, #0x1c] - adds r2, r2, r3 - mov r8, r2 -_08195278: - movs r6, #0 - lsls r7, r5, #1 - adds r5, #1 - str r5, [sp, #0x3c] - ldr r4, [sp, #0x20] -_08195282: - ldr r5, _08195370 - ldr r1, [r5] - ldr r0, _08195374 - adds r1, r1, r0 - mov r2, r8 - adds r0, r1, r2 - ldrh r0, [r0] - ldr r5, _08195378 - mov sb, r5 - ldr r2, [r5] - lsls r0, r0, #4 - adds r0, r0, r2 - adds r0, #2 - adds r0, r0, r7 - ldrh r0, [r0] - adds r1, r1, r4 - ldrh r1, [r1] - lsls r1, r1, #4 - adds r1, r1, r2 - ldrh r1, [r1] - movs r2, #2 - str r3, [sp, #0x34] - bl GetTypeEffectivenessPoints - ldr r1, [sp, #0x10] - adds r1, r1, r0 - str r1, [sp, #0x10] - adds r4, #2 - adds r6, #1 - ldr r3, [sp, #0x34] - cmp r6, #2 - ble _08195282 - ldr r5, [sp, #0x3c] - cmp r5, #3 - ble _08195278 - ldr r2, _08195370 - ldr r0, [r2] - ldr r5, [sp, #0x1c] - adds r1, r3, r5 - ldr r2, _08195374 - adds r0, r0, r2 - adds r0, r0, r1 - ldrh r0, [r0] - mov r3, sb - ldr r1, [r3] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrh r2, [r0] - ldr r0, _0819537C - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1] - ldrb r2, [r1, #1] - adds r0, r0, r2 - ldrb r5, [r1, #2] - adds r0, r0, r5 - ldrb r2, [r1, #3] - adds r0, r0, r2 - ldrb r2, [r1, #4] - adds r0, r0, r2 - ldrb r1, [r1, #5] - adds r0, r0, r1 - movs r1, #0xa - bl __divsi3 - ldr r3, [sp, #0x10] - adds r3, r3, r0 - str r3, [sp, #0x10] - mov r5, sl - cmp r5, #2 - ble _08195268 - bl Random - movs r1, #0x1f - ands r1, r0 - ldr r0, [sp, #0x10] - adds r0, r0, r1 - ldr r1, [sp, #8] - adds r0, r0, r1 - str r0, [sp, #0x10] - ldr r2, [sp, #0xc] - cmp r2, r0 - ble _08195384 - ldr r3, _08195370 - ldr r1, [r3] - ldr r5, [sp, #0x30] - adds r1, r1, r5 - ldr r0, _08195380 - adds r1, r1, r0 - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - ldr r1, [r3] - adds r1, r1, r5 - ldr r3, _08195380 - adds r1, r1, r3 - ldrb r0, [r1] - movs r5, #0x19 - rsbs r5, r5, #0 - ands r0, r5 - ldr r2, [sp, #0x14] - orrs r0, r2 - strb r0, [r1] - ldr r0, [sp, #4] - ldr r1, [sp, #8] - ldr r2, [sp] - bl GetWinningMove - ldr r3, _08195370 - ldr r1, [r3] - movs r5, #0xec - lsls r5, r5, #4 - adds r1, r1, r5 - ldr r2, [sp, #0x2c] - adds r1, r1, r2 - b _08195474 - .align 2, 0 -_08195370: .4byte gUnknown_3005AF0 -_08195374: .4byte 0x00000D64 -_08195378: .4byte gUnknown_203B958 -_0819537C: .4byte gUnknown_82F0D54 -_08195380: .4byte 0x00000D25 -_08195384: - ldr r3, [sp, #0xc] - ldr r5, [sp, #0x10] - cmp r3, r5 - bge _081953DC - ldr r0, _081953D4 - ldr r1, [r0] - ldr r3, [sp, #4] - lsls r2, r3, #2 - adds r1, r1, r2 - ldr r5, _081953D8 - adds r1, r1, r5 - ldrb r0, [r1] - movs r3, #4 - orrs r0, r3 - strb r0, [r1] - ldr r5, _081953D4 - ldr r1, [r5] - adds r1, r1, r2 - ldr r0, _081953D8 - adds r1, r1, r0 - ldrb r0, [r1] - movs r2, #0x19 - rsbs r2, r2, #0 - ands r0, r2 - ldr r3, [sp, #0x14] - orrs r0, r3 - strb r0, [r1] - ldr r0, [sp, #8] - ldr r1, [sp, #4] - ldr r2, [sp] - bl GetWinningMove - ldr r1, [r5] - movs r5, #0xec - lsls r5, r5, #4 - adds r1, r1, r5 - ldr r2, [sp, #0x28] - adds r1, r1, r2 - b _08195474 - .align 2, 0 -_081953D4: .4byte gUnknown_3005AF0 -_081953D8: .4byte 0x00000D25 -_081953DC: - ldr r3, [sp, #4] - ldr r5, [sp, #8] - cmp r3, r5 - ble _08195430 - ldr r0, _08195428 - ldr r1, [r0] - ldr r2, [sp, #0x30] - adds r1, r1, r2 - ldr r3, _0819542C - adds r1, r1, r3 - ldrb r0, [r1] - movs r5, #4 - orrs r0, r5 - strb r0, [r1] - ldr r0, _08195428 - ldr r1, [r0] - adds r1, r1, r2 - adds r1, r1, r3 - ldrb r0, [r1] - movs r2, #0x19 - rsbs r2, r2, #0 - ands r0, r2 - ldr r3, [sp, #0x14] - orrs r0, r3 - strb r0, [r1] - ldr r0, [sp, #4] - ldr r1, [sp, #8] - ldr r2, [sp] - bl GetWinningMove - ldr r5, _08195428 - ldr r1, [r5] - movs r2, #0xec - lsls r2, r2, #4 - adds r1, r1, r2 - ldr r3, [sp, #0x2c] - b _08195472 - .align 2, 0 -_08195428: .4byte gUnknown_3005AF0 -_0819542C: .4byte 0x00000D25 -_08195430: - ldr r5, _08195490 - ldr r1, [r5] - ldr r0, [sp, #4] - lsls r2, r0, #2 - adds r1, r1, r2 - ldr r3, _08195494 - adds r1, r1, r3 - ldrb r0, [r1] - movs r5, #4 - orrs r0, r5 - strb r0, [r1] - ldr r0, _08195490 - ldr r1, [r0] - adds r1, r1, r2 - adds r1, r1, r3 - ldrb r0, [r1] - movs r2, #0x19 - rsbs r2, r2, #0 - ands r0, r2 - ldr r3, [sp, #0x14] - orrs r0, r3 - strb r0, [r1] - ldr r0, [sp, #8] - ldr r1, [sp, #4] - ldr r2, [sp] - bl GetWinningMove - ldr r5, _08195490 - ldr r1, [r5] - movs r2, #0xec - lsls r2, r2, #4 - adds r1, r1, r2 - ldr r3, [sp, #0x28] -_08195472: - adds r1, r1, r3 -_08195474: - strh r0, [r1] -_08195476: - ldr r5, [sp, #0x24] - cmp r5, #0xf - bgt _0819547E - b _0819505E -_0819547E: - add sp, #0x40 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08195490: .4byte gUnknown_3005AF0 -_08195494: .4byte 0x00000D25 - thumb_func_end DecideRoundWinners - - thumb_func_start CopyDomeTrainerName -CopyDomeTrainerName: @ 0x08195498 - push {r4, r5, r6, lr} - adds r6, r0, #0 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - movs r4, #0 - bl SetFacilityPtrsGetLevel - ldr r0, _081954B4 - cmp r5, r0 - bne _081954B8 - adds r0, r6, #0 - bl CopyDomeBrainTrainerName - b _08195502 - .align 2, 0 -_081954B4: .4byte 0x000003FE -_081954B8: - ldr r0, _081954D4 - cmp r5, r0 - bne _081954DC - ldr r0, _081954D8 - ldr r2, [r0] -_081954C2: - adds r0, r6, r4 - adds r1, r2, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r4, #1 - cmp r4, #6 - ble _081954C2 - b _081954FC - .align 2, 0 -_081954D4: .4byte 0x000003FF -_081954D8: .4byte gUnknown_3005AF0 -_081954DC: - ldr r0, _08195508 - cmp r5, r0 - bhi _081954FC - ldr r0, _0819550C - ldr r1, [r0] - movs r0, #0x34 - muls r0, r5, r0 - adds r0, r0, r1 - adds r2, r0, #4 -_081954EE: - adds r0, r6, r4 - adds r1, r2, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r4, #1 - cmp r4, #6 - ble _081954EE -_081954FC: - adds r1, r6, r4 - movs r0, #0xff - strb r0, [r1] -_08195502: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08195508: .4byte 0x0000012B -_0819550C: .4byte gUnknown_203B954 - thumb_func_end CopyDomeTrainerName - - thumb_func_start sub_08195510 -sub_08195510: @ 0x08195510 - ldr r0, _0819551C - ldr r1, _08195520 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0819551C: .4byte gUnknown_82E383C -_08195520: .4byte 0x000064C3 - thumb_func_end sub_08195510 - - thumb_func_start sub_08195524 -sub_08195524: @ 0x08195524 - ldr r0, _08195530 - ldr r1, _08195534 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08195530: .4byte gUnknown_82E383C -_08195534: .4byte 0x000064C1 - thumb_func_end sub_08195524 - - thumb_func_start CopyDomeBrainTrainerName -CopyDomeBrainTrainerName: @ 0x08195538 - push {r4, lr} - adds r3, r0, #0 - movs r2, #0 - ldr r4, _0819555C -_08195540: - adds r0, r3, r2 - adds r1, r2, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, #6 - ble _08195540 - adds r1, r3, r2 - movs r0, #0xff - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0819555C: .4byte gUnknown_82E9D00 - thumb_func_end CopyDomeBrainTrainerName - - thumb_func_start sub_08195560 -sub_08195560: @ 0x08195560 - push {lr} - ldr r1, _08195578 - ldr r0, _0819557C - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - thumb_func_end sub_08195560 - - thumb_func_start sub_08195574 -sub_08195574: @ 0x08195574 - bx r0 - .align 2, 0 -_08195578: .4byte gUnknown_85D68CC -_0819557C: .4byte gUnknown_2037280 - thumb_func_end sub_08195574 - - thumb_func_start sub_08195580 -sub_08195580: @ 0x08195580 - push {r4, r5, r6, r7, lr} - ldr r4, _08195614 - ldr r0, [r4] - ldr r1, _08195618 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r5, r0, #0x1e - ldr r0, _0819561C - bl VarGet - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - ldr r0, [r4] - ldr r2, _08195620 - adds r0, r0, r2 - movs r6, #0 - strb r6, [r0] - ldr r1, [r4] - adds r2, #0xa - adds r0, r1, r2 - strh r6, [r0] - ldr r0, _08195618 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r4] - ldr r2, _08195618 - adds r1, r1, r2 - ldrb r2, [r1] - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r4, [r4] - ldr r0, _08195624 - adds r3, r4, r0 - ldr r2, _08195628 - lsls r1, r5, #2 - lsls r0, r7, #3 - adds r1, r1, r0 - adds r1, r1, r2 - ldr r0, [r3] - ldr r1, [r1] - ands r0, r1 - cmp r0, #0 - bne _081955F2 - lsls r0, r5, #1 - lsls r1, r7, #2 - adds r0, r0, r1 - ldr r2, _0819562C - adds r1, r4, r2 - adds r1, r1, r0 - strh r6, [r1] -_081955F2: - ldr r0, _08195630 - ldr r0, [r0] - movs r1, #4 - ldrsb r1, [r0, r1] - movs r2, #5 - ldrsb r2, [r0, r2] - movs r3, #1 - rsbs r3, r3, #0 - movs r0, #0 - bl SetDynamicWarp - ldr r0, _08195634 - strh r6, [r0] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08195614: .4byte gUnknown_3005AF0 -_08195618: .4byte 0x00000CA9 -_0819561C: .4byte 0x000040CE -_08195620: .4byte 0x00000CA8 -_08195624: .4byte 0x00000CDC -_08195628: .4byte gUnknown_85D6914 -_0819562C: .4byte 0x00000DC8 -_08195630: .4byte gUnknown_3005AEC -_08195634: .4byte gUnknown_203886A - thumb_func_end sub_08195580 - - thumb_func_start sub_08195638 -sub_08195638: @ 0x08195638 - push {r4, r5, r6, r7, lr} - ldr r5, _08195664 - ldr r0, [r5] - ldr r1, _08195668 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r7, r0, #0x1e - ldr r0, _0819566C - bl VarGet - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r0, _08195670 - ldrh r0, [r0] - cmp r0, #1 - beq _08195690 - cmp r0, #1 - bgt _08195674 - cmp r0, #0 - beq _0819567A - b _081956D0 - .align 2, 0 -_08195664: .4byte gUnknown_3005AF0 -_08195668: .4byte 0x00000CA9 -_0819566C: .4byte 0x000040CE -_08195670: .4byte gUnknown_2037282 -_08195674: - cmp r0, #2 - beq _081956B0 - b _081956D0 -_0819567A: - ldr r0, _08195688 - ldr r1, [r5] - ldr r2, _0819568C - adds r1, r1, r2 - ldrh r1, [r1] - strh r1, [r0] - b _081956D0 - .align 2, 0 -_08195688: .4byte gUnknown_2037290 -_0819568C: .4byte 0x00000DC6 -_08195690: - ldr r3, _081956A8 - ldr r0, [r5] - lsls r1, r7, #1 - lsls r2, r6, #2 - adds r1, r1, r2 - ldr r2, _081956AC - adds r0, r0, r2 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r3] - b _081956D0 - .align 2, 0 -_081956A8: .4byte gUnknown_2037290 -_081956AC: .4byte 0x00000DC8 -_081956B0: - ldr r4, _081956D8 - ldr r2, [r5] - ldr r0, _081956DC - adds r2, r2, r0 - ldr r3, _081956E0 - lsls r0, r7, #2 - lsls r1, r6, #3 - adds r0, r0, r1 - adds r0, r0, r3 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - strh r0, [r4] -_081956D0: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081956D8: .4byte gUnknown_2037290 -_081956DC: .4byte 0x00000CDC -_081956E0: .4byte gUnknown_85D6914 - thumb_func_end sub_08195638 - - thumb_func_start sub_081956E4 -sub_081956E4: @ 0x081956E4 - push {r4, r5, r6, lr} - ldr r6, _08195710 - ldr r0, [r6] - ldr r1, _08195714 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r5, r0, #0x1e - ldr r0, _08195718 - bl VarGet - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, _0819571C - ldrh r0, [r0] - cmp r0, #1 - beq _0819573C - cmp r0, #1 - bgt _08195720 - cmp r0, #0 - beq _08195726 - b _081957A0 - .align 2, 0 -_08195710: .4byte gUnknown_3005AF0 -_08195714: .4byte 0x00000CA9 -_08195718: .4byte 0x000040CE -_0819571C: .4byte gUnknown_2037282 -_08195720: - cmp r0, #2 - beq _0819575C - b _081957A0 -_08195726: - ldr r0, [r6] - ldr r1, _08195734 - ldrh r1, [r1] - ldr r2, _08195738 - adds r0, r0, r2 - strh r1, [r0] - b _081957A0 - .align 2, 0 -_08195734: .4byte gUnknown_2037284 -_08195738: .4byte 0x00000DC6 -_0819573C: - ldr r2, [r6] - lsls r0, r5, #1 - lsls r1, r4, #2 - adds r0, r0, r1 - ldr r1, _08195754 - adds r2, r2, r1 - adds r2, r2, r0 - ldr r0, _08195758 - ldrh r0, [r0] - strh r0, [r2] - b _081957A0 - .align 2, 0 -_08195754: .4byte 0x00000DC8 -_08195758: .4byte gUnknown_2037284 -_0819575C: - ldr r0, _0819577C - ldrh r0, [r0] - cmp r0, #0 - beq _08195788 - ldr r2, [r6] - ldr r0, _08195780 - adds r2, r2, r0 - ldr r3, _08195784 - lsls r1, r5, #2 - lsls r0, r4, #3 - adds r1, r1, r0 - adds r1, r1, r3 - ldr r0, [r2] - ldr r1, [r1] - orrs r0, r1 - b _0819579E - .align 2, 0 -_0819577C: .4byte gUnknown_2037284 -_08195780: .4byte 0x00000CDC -_08195784: .4byte gUnknown_85D6914 -_08195788: - ldr r2, [r6] - ldr r1, _081957A8 - adds r2, r2, r1 - ldr r3, _081957AC - lsls r1, r5, #2 - lsls r0, r4, #3 - adds r1, r1, r0 - adds r1, r1, r3 - ldr r0, [r2] - ldr r1, [r1] - ands r0, r1 -_0819579E: - str r0, [r2] -_081957A0: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081957A8: .4byte 0x00000CDC -_081957AC: .4byte gUnknown_85D6924 - thumb_func_end sub_081956E4 - - thumb_func_start sub_081957B0 -sub_081957B0: @ 0x081957B0 - push {r4, lr} - ldr r0, _081957EC - bl VarGet - lsls r0, r0, #0x10 - ldr r1, _081957F0 - ldr r2, [r1] - ldr r3, _081957F4 - adds r1, r2, r3 - ldrb r1, [r1] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1d - lsrs r0, r0, #0xe - adds r1, r1, r0 - ldr r0, _081957F8 - adds r2, r2, r0 - adds r2, r2, r1 - ldrh r0, [r2] - cmp r0, #0x31 - bhi _08195800 - ldr r4, _081957FC - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - strh r0, [r4] - b _08195816 - .align 2, 0 -_081957EC: .4byte 0x000040CE -_081957F0: .4byte gUnknown_3005AF0 -_081957F4: .4byte 0x00000CA9 -_081957F8: .4byte 0x00000DC8 -_081957FC: .4byte gUnknown_2037290 -_08195800: - cmp r0, #0x62 - bhi _08195810 - ldr r1, _0819580C - movs r0, #3 - b _08195814 - .align 2, 0 -_0819580C: .4byte gUnknown_2037290 -_08195810: - ldr r1, _0819581C - movs r0, #4 -_08195814: - strh r0, [r1] -_08195816: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0819581C: .4byte gUnknown_2037290 - thumb_func_end sub_081957B0 - - thumb_func_start sub_08195820 -sub_08195820: @ 0x08195820 - push {r4, lr} - ldr r4, _0819584C - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xff - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r0, #2 - adds r1, r1, r0 - lsrs r1, r1, #6 - strh r1, [r4] - ldrh r0, [r4] - movs r1, #0 - bl sub_08162528 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0819584C: .4byte gUnknown_203886A - thumb_func_end sub_08195820 - - thumb_func_start sub_08195850 -sub_08195850: @ 0x08195850 - push {lr} - ldr r3, _08195870 - ldrh r1, [r3] - ldr r0, _08195874 - cmp r1, r0 - bhi _0819586C - ldr r2, _08195878 - movs r0, #0x34 - muls r1, r0, r1 - ldr r0, [r2] - adds r0, r0, r1 - adds r0, #0xc - bl FrontierSpeechToString -_0819586C: - pop {r0} - bx r0 - .align 2, 0 -_08195870: .4byte gUnknown_203886A -_08195874: .4byte 0x0000012B -_08195878: .4byte gUnknown_203B954 - thumb_func_end sub_08195850 - - thumb_func_start sub_0819587C -sub_0819587C: @ 0x0819587C - push {r4, r5, r6, r7, lr} - ldr r4, _081958D0 - ldr r0, [r4] - ldr r1, _081958D4 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r7, r0, #0x1e - ldr r0, _081958D8 - bl VarGet - lsls r0, r0, #0x18 - ldr r4, [r4] - lsls r1, r7, #1 - lsrs r5, r0, #0x16 - adds r1, r1, r5 - ldr r3, _081958DC - adds r6, r4, r3 - adds r3, r6, r1 - ldrh r2, [r3] - ldr r0, _081958E0 - cmp r2, r0 - bhi _081958CA - adds r2, #1 - strh r2, [r3] - movs r3, #0xdd - lsls r3, r3, #4 - adds r0, r4, r3 - adds r1, r0, r1 - adds r0, r5, #0 - ldrh r3, [r1] - cmp r7, r3 - bls _081958C0 - adds r0, #2 -_081958C0: - adds r0, r6, r0 - ldrh r0, [r0] - cmp r0, #0 - beq _081958CA - strh r2, [r1] -_081958CA: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081958D0: .4byte gUnknown_3005AF0 -_081958D4: .4byte 0x00000CA9 -_081958D8: .4byte 0x000040CE -_081958DC: .4byte 0x00000DC8 -_081958E0: .4byte 0x0000270E - thumb_func_end sub_0819587C - - thumb_func_start sub_081958E4 -sub_081958E4: @ 0x081958E4 - push {r4, lr} - ldr r4, _08195918 - ldr r0, [r4] - ldr r1, _0819591C - ldrh r1, [r1] - ldr r2, _08195920 - adds r0, r0, r2 - strb r1, [r0] - movs r0, #0x80 - lsls r0, r0, #7 - movs r1, #0 - bl VarSet - ldr r1, [r4] - ldr r0, _08195924 - adds r1, r1, r0 - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - bl sub_081A482C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08195918: .4byte gUnknown_3005AF0 -_0819591C: .4byte gUnknown_2037282 -_08195920: .4byte 0x00000CA8 -_08195924: .4byte 0x00000CA9 - thumb_func_end sub_081958E4 - - thumb_func_start sub_08195928 -sub_08195928: @ 0x08195928 - push {r4, r5, lr} - ldr r0, _08195970 - bl VarGet - lsls r0, r0, #0x10 - ldr r4, _08195974 - ldr r2, [r4] - ldr r3, _08195978 - adds r1, r2, r3 - ldrb r1, [r1] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1d - lsrs r0, r0, #0xe - adds r1, r1, r0 - ldr r0, _0819597C - adds r2, r2, r0 - adds r2, r2, r1 - ldrh r0, [r2] - cmp r0, #0x29 - bls _08195988 - bl Random - ldr r4, [r4] - ldr r5, _08195980 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #9 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0xf - adds r0, r0, r5 - ldrh r0, [r0] - ldr r1, _08195984 - adds r4, r4, r1 - b _081959A6 - .align 2, 0 -_08195970: .4byte 0x000040CE -_08195974: .4byte gUnknown_3005AF0 -_08195978: .4byte 0x00000CA9 -_0819597C: .4byte 0x00000DC8 -_08195980: .4byte gUnknown_85D6900 -_08195984: .4byte 0x00000DC6 -_08195988: - bl Random - ldr r4, [r4] - ldr r5, _081959B0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #6 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0xf - adds r0, r0, r5 - ldrh r0, [r0] - ldr r3, _081959B4 - adds r4, r4, r3 -_081959A6: - strh r0, [r4] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081959B0: .4byte gUnknown_85D68F4 -_081959B4: .4byte 0x00000DC6 - thumb_func_end sub_08195928 - - thumb_func_start sub_081959B8 -sub_081959B8: @ 0x081959B8 - push {r4, r5, lr} - ldr r4, _081959F0 - ldr r0, [r4] - ldr r1, _081959F4 - adds r0, r0, r1 - ldrh r0, [r0] - movs r1, #1 - bl AddBagItem - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #1 - bne _08195A00 - ldr r0, [r4] - ldr r1, _081959F4 - adds r0, r0, r1 - ldrh r0, [r0] - ldr r1, _081959F8 - bl sub_080D5EC8 - ldr r0, [r4] - ldr r1, _081959F4 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0] - ldr r0, _081959FC - strh r5, [r0] - b _08195A06 - .align 2, 0 -_081959F0: .4byte gUnknown_3005AF0 -_081959F4: .4byte 0x00000DC6 -_081959F8: .4byte gUnknown_2021C40 -_081959FC: .4byte gUnknown_2037290 -_08195A00: - ldr r1, _08195A0C - movs r0, #0 - strh r0, [r1] -_08195A06: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08195A0C: .4byte gUnknown_2037290 - thumb_func_end sub_081959B8 - - thumb_func_start InitMatchCallCounters -InitMatchCallCounters: @ 0x08195A10 - push {lr} - bl RtcCalcLocalTime - ldr r0, _08195A2C - bl GetCurrentTotalMinutes - ldr r1, _08195A30 - adds r0, #0xa - str r0, [r1] - movs r0, #0 - strb r0, [r1, #6] - pop {r0} - bx r0 - .align 2, 0 -_08195A2C: .4byte gUnknown_3005A50 -_08195A30: .4byte gUnknown_203CA4C - thumb_func_end InitMatchCallCounters - - thumb_func_start GetCurrentTotalMinutes -GetCurrentTotalMinutes: @ 0x08195A34 - adds r3, r0, #0 - movs r1, #0 - ldrsh r0, [r3, r1] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #5 - movs r2, #2 - ldrsb r2, [r3, r2] - lsls r1, r2, #4 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r1, #3 - ldrsb r1, [r3, r1] - adds r0, r0, r1 - bx lr - thumb_func_end GetCurrentTotalMinutes - - thumb_func_start UpdateMatchCallMinutesCounter -UpdateMatchCallMinutesCounter: @ 0x08195A58 - push {lr} - bl RtcCalcLocalTime - ldr r0, _08195A7C - bl GetCurrentTotalMinutes - adds r1, r0, #0 - ldr r2, _08195A80 - ldr r0, [r2] - cmp r0, r1 - bhi _08195A74 - subs r0, r1, r0 - cmp r0, #9 - bls _08195A84 -_08195A74: - str r1, [r2] - movs r0, #1 - b _08195A86 - .align 2, 0 -_08195A7C: .4byte gUnknown_3005A50 -_08195A80: .4byte gUnknown_203CA4C -_08195A84: - movs r0, #0 -_08195A86: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end UpdateMatchCallMinutesCounter - - thumb_func_start CheckMatchCallChance -CheckMatchCallChance: @ 0x08195A8C - push {r4, r5, lr} - movs r5, #1 - ldr r4, _08195ACC - adds r0, r4, #0 - movs r1, #6 - bl GetMonData - cmp r0, #0 - bne _08195AAE - adds r0, r4, #0 - bl GetMonAbility - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1f - bne _08195AAE - movs r5, #2 -_08195AAE: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r5, #1 - adds r1, r1, r5 - cmp r0, r1 - blt _08195AD0 - movs r0, #0 - b _08195AD2 - .align 2, 0 -_08195ACC: .4byte gUnknown_2024190 -_08195AD0: - movs r0, #1 -_08195AD2: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end CheckMatchCallChance - - thumb_func_start MapAllowsMatchCall -MapAllowsMatchCall: @ 0x08195AD8 - push {r4, lr} - ldr r4, _08195B34 - ldrb r0, [r4, #0x17] - bl Overworld_MapTypeAllowsTeleportAndFly - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08195B30 - ldrb r0, [r4, #0x14] - cmp r0, #0x39 - beq _08195B30 - cmp r0, #0xe - bne _08195B0E - movs r0, #0xf9 - lsls r0, r0, #2 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08195B0E - movs r0, #0xdc - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08195B30 -_08195B0E: - ldr r0, _08195B34 - ldrb r0, [r0, #0x14] - cmp r0, #0x38 - bne _08195B38 - movs r0, #0xcf - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08195B38 - movs r0, #0x8b - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08195B38 -_08195B30: - movs r0, #0 - b _08195B3A - .align 2, 0 -_08195B34: .4byte gUnknown_2036FB8 -_08195B38: - movs r0, #1 -_08195B3A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end MapAllowsMatchCall - - thumb_func_start UpdateMatchCallStepCounter -UpdateMatchCallStepCounter: @ 0x08195B40 - push {lr} - ldr r1, _08195B58 - ldrb r0, [r1, #6] - adds r0, #1 - strb r0, [r1, #6] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #9 - bhi _08195B5C - movs r0, #0 - b _08195B62 - .align 2, 0 -_08195B58: .4byte gUnknown_203CA4C -_08195B5C: - movs r0, #0 - strb r0, [r1, #6] - movs r0, #1 -_08195B62: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end UpdateMatchCallStepCounter - - thumb_func_start SelectMatchCallTrainer -SelectMatchCallTrainer: @ 0x08195B68 - push {r4, lr} - bl GetNumRegisteredNPCs - adds r4, r0, #0 - cmp r4, #0 - beq _08195BB8 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r4, #0 - bl __umodsi3 - bl GetActiveMatchCallTrainerId - ldr r2, _08195BBC - movs r1, #0 - strh r0, [r2, #4] - strb r1, [r2, #7] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x4e - beq _08195BB8 - ldrh r0, [r2, #4] - bl GetTrainerMatchCallId - adds r4, r0, #0 - bl GetRematchTrainerLocation - ldr r1, _08195BC0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r1, #0x14] - cmp r0, r1 - bne _08195BC4 - adds r0, r4, #0 - bl TrainerIsEligibleForRematch - cmp r0, #0 - bne _08195BC4 -_08195BB8: - movs r0, #0 - b _08195BC6 - .align 2, 0 -_08195BBC: .4byte gUnknown_203CA4C -_08195BC0: .4byte gUnknown_2036FB8 -_08195BC4: - movs r0, #1 -_08195BC6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end SelectMatchCallTrainer - - thumb_func_start GetNumRegisteredNPCs -GetNumRegisteredNPCs: @ 0x08195BCC - push {r4, r5, lr} - movs r4, #0 - movs r5, #0 -_08195BD2: - movs r1, #0xae - lsls r1, r1, #1 - adds r0, r4, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08195BE8 - adds r5, #1 -_08195BE8: - adds r4, #1 - cmp r4, #0x3f - bls _08195BD2 - adds r0, r5, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetNumRegisteredNPCs - - thumb_func_start GetActiveMatchCallTrainerId -GetActiveMatchCallTrainerId: @ 0x08195BF8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r4, #0 - ldr r6, _08195C1C -_08195C00: - movs r1, #0xae - lsls r1, r1, #1 - adds r0, r4, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08195C22 - cmp r5, #0 - bne _08195C20 - ldrh r0, [r6] - b _08195C2C - .align 2, 0 -_08195C1C: .4byte gUnknown_852AD40 -_08195C20: - subs r5, #1 -_08195C22: - adds r6, #0x10 - adds r4, #1 - cmp r4, #0x3f - bls _08195C00 - movs r0, #0x4e -_08195C2C: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetActiveMatchCallTrainerId - - thumb_func_start TryStartMatchCall -TryStartMatchCall: @ 0x08195C34 - push {lr} - ldr r0, _08195C74 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08195C78 - bl UpdateMatchCallStepCounter - cmp r0, #0 - beq _08195C78 - bl UpdateMatchCallMinutesCounter - cmp r0, #0 - beq _08195C78 - bl CheckMatchCallChance - cmp r0, #0 - beq _08195C78 - bl MapAllowsMatchCall - cmp r0, #0 - beq _08195C78 - bl SelectMatchCallTrainer - cmp r0, #0 - beq _08195C78 - bl StartMatchCall - movs r0, #1 - b _08195C7A - .align 2, 0 -_08195C74: .4byte 0x0000012F -_08195C78: - movs r0, #0 -_08195C7A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end TryStartMatchCall - - thumb_func_start StartMatchCallFromScript -StartMatchCallFromScript: @ 0x08195C80 - push {lr} - ldr r1, _08195C90 - movs r0, #1 - strb r0, [r1, #7] - bl StartMatchCall - pop {r0} - bx r0 - .align 2, 0 -_08195C90: .4byte gUnknown_203CA4C - thumb_func_end StartMatchCallFromScript - - thumb_func_start sub_08195C94 -sub_08195C94: @ 0x08195C94 - push {lr} - ldr r0, _08195CA4 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_08195CA4: .4byte ExecuteMatchCall - thumb_func_end sub_08195C94 - - thumb_func_start StartMatchCall -StartMatchCall: @ 0x08195CA8 - push {lr} - ldr r0, _08195CD4 - ldrb r0, [r0, #7] - cmp r0, #0 - bne _08195CC2 - bl sub_080987DC - bl FreezeEventObjects - bl sub_0808B1C8 - bl sub_0808B658 -_08195CC2: - ldr r0, _08195CD8 - bl sub_080A306C - ldr r0, _08195CDC - movs r1, #1 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_08195CD4: .4byte gUnknown_203CA4C -_08195CD8: .4byte 0x00000107 -_08195CDC: .4byte ExecuteMatchCall - thumb_func_end StartMatchCall - - thumb_func_start ExecuteMatchCall -ExecuteMatchCall: @ 0x08195CE0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _08195D24 - adds r4, r0, r1 - ldr r1, _08195D28 - movs r2, #0 - ldrsh r0, [r4, r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - cmp r0, #0 - beq _08195D1E - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - movs r1, #0 - strh r1, [r4, #2] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #7 - bls _08195D1E - adds r0, r5, #0 - bl DestroyTask -_08195D1E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08195D24: .4byte gUnknown_3005B68 -_08195D28: .4byte gUnknown_85D79F4 - thumb_func_end ExecuteMatchCall - - thumb_func_start LoadMatchCallWindowGfx -LoadMatchCallWindowGfx: @ 0x08195D2C - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r6, r4, #0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _08195D54 - adds r5, r0, r1 - ldr r0, _08195D58 - bl AddWindow - strh r0, [r5, #4] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xff - bne _08195D5C - adds r0, r4, #0 - b _08195DE0 - .align 2, 0 -_08195D54: .4byte gUnknown_3005B68 -_08195D58: .4byte gUnknown_85D7A14 -_08195D5C: - ldr r1, _08195D80 - movs r2, #0x80 - lsls r2, r2, #1 - movs r3, #0x9c - lsls r3, r3, #2 - movs r0, #0 - bl LoadBgTiles - lsls r0, r0, #0x10 - ldr r1, _08195D84 - cmp r0, r1 - bne _08195D88 - ldrb r0, [r5, #4] - bl RemoveWindow - adds r0, r4, #0 - b _08195DE0 - .align 2, 0 -_08195D80: .4byte gUnknown_85D74E8 -_08195D84: .4byte 0xFFFF0000 -_08195D88: - ldr r1, _08195DC4 - ldr r3, _08195DC8 - movs r0, #0 - str r0, [sp] - movs r2, #0 - bl decompress_and_copy_tile_data_to_vram - cmp r0, #0 - beq _08195DD8 - ldrb r0, [r5, #4] - movs r1, #0x88 - bl FillWindowPixelBuffer - ldr r0, _08195DCC - movs r1, #0xe0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _08195DD0 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - ldr r1, _08195DD4 - movs r0, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #1 - b _08195DE6 - .align 2, 0 -_08195DC4: .4byte gUnknown_85D7608 -_08195DC8: .4byte 0x00000279 -_08195DCC: .4byte gUnknown_85D74C8 -_08195DD0: .4byte gUnknown_85D75E8 -_08195DD4: .4byte 0xFFFFE000 -_08195DD8: - ldrb r0, [r5, #4] - bl RemoveWindow - adds r0, r6, #0 -_08195DE0: - bl DestroyTask - movs r0, #0 -_08195DE6: - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end LoadMatchCallWindowGfx - - thumb_func_start MoveMatchCallWindowToVram -MoveMatchCallWindowToVram: @ 0x08195DF0 - push {r4, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _08195E5C - adds r4, r1, r0 - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08195E68 - ldrb r0, [r4, #4] - bl PutWindowTilemap - movs r1, #4 - ldrsh r0, [r4, r1] - movs r1, #0x9c - lsls r1, r1, #2 - movs r2, #0xe - bl DrawMatchCallTextBoxBorder - ldr r1, _08195E60 - movs r0, #4 - str r0, [sp] - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #1 - str r0, [sp, #0xc] - movs r0, #0 - movs r2, #1 - movs r3, #0xf - bl WriteSequenceToBgTilemapBuffer - ldr r0, _08195E64 - movs r1, #0xa - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0xa] - ldrb r0, [r4, #4] - movs r1, #2 - bl CopyWindowToVram - movs r0, #0 - bl CopyBgTilemapBufferToVram - movs r0, #1 - b _08195E6A - .align 2, 0 -_08195E5C: .4byte gUnknown_3005B68 -_08195E60: .4byte 0x0000F279 -_08195E64: .4byte sub_08196294 -_08195E68: - movs r0, #0 -_08195E6A: - add sp, #0x10 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MoveMatchCallWindowToVram - - thumb_func_start PrintMatchCallIntroEllipsis -PrintMatchCallIntroEllipsis: @ 0x08195E74 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _08195E94 - adds r4, r1, r0 - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08195E98 - movs r0, #0 - b _08195EA4 - .align 2, 0 -_08195E94: .4byte gUnknown_3005B68 -_08195E98: - movs r1, #4 - ldrsh r0, [r4, r1] - ldr r1, _08195EAC - bl InitMatchCallTextPrinter - movs r0, #1 -_08195EA4: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08195EAC: .4byte gUnknown_85D79EC - thumb_func_end PrintMatchCallIntroEllipsis - - thumb_func_start sub_08195EB0 -sub_08195EB0: @ 0x08195EB0 - push {lr} - movs r1, #0xc0 - lsls r1, r1, #3 - movs r0, #0 - movs r2, #1 - bl ChangeBgY - cmp r0, #0 - bge _08195EC6 - movs r0, #0 - b _08195ED2 -_08195EC6: - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #1 -_08195ED2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08195EB0 - - thumb_func_start sub_08195ED8 -sub_08195ED8: @ 0x08195ED8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _08195F1C - adds r4, r1, r0 - movs r1, #4 - ldrsh r0, [r4, r1] - bl ExecuteMatchCallTextPrinter - cmp r0, #0 - bne _08195F28 - ldrb r0, [r4, #4] - movs r1, #0x88 - bl FillWindowPixelBuffer - ldr r1, _08195F20 - ldrb r0, [r1, #7] - cmp r0, #0 - bne _08195F0C - ldrh r0, [r1, #4] - ldr r1, _08195F24 - bl SelectMatchCallMessage -_08195F0C: - movs r1, #4 - ldrsh r0, [r4, r1] - ldr r1, _08195F24 - bl InitMatchCallTextPrinter - movs r0, #1 - b _08195F2A - .align 2, 0 -_08195F1C: .4byte gUnknown_3005B68 -_08195F20: .4byte gUnknown_203CA4C -_08195F24: .4byte gUnknown_2021C7C -_08195F28: - movs r0, #0 -_08195F2A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_08195ED8 - - thumb_func_start sub_08195F30 -sub_08195F30: @ 0x08195F30 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _08195F80 - adds r4, r1, r0 - movs r1, #4 - ldrsh r0, [r4, r1] - bl ExecuteMatchCallTextPrinter - cmp r0, #0 - bne _08195F88 - bl IsSEPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08195F88 - ldr r0, _08195F84 - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _08195F88 - ldrb r0, [r4, #4] - movs r1, #0x88 - bl FillWindowPixelBuffer - ldrb r0, [r4, #4] - movs r1, #2 - bl CopyWindowToVram - movs r0, #0x84 - lsls r0, r0, #1 - bl sub_080A306C - movs r0, #1 - b _08195F8A - .align 2, 0 -_08195F80: .4byte gUnknown_3005B68 -_08195F84: .4byte gUnknown_3002360 -_08195F88: - movs r0, #0 -_08195F8A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_08195F30 - - thumb_func_start sub_08195F90 -sub_08195F90: @ 0x08195F90 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _08195FB8 - adds r4, r1, r0 - movs r1, #0xc0 - lsls r1, r1, #3 - movs r0, #0 - movs r2, #2 - bl ChangeBgY - ldr r1, _08195FBC - cmp r0, r1 - ble _08195FC0 - movs r0, #0 - b _08195FE8 - .align 2, 0 -_08195FB8: .4byte gUnknown_3005B68 -_08195FBC: .4byte 0xFFFFE000 -_08195FC0: - movs r0, #0x1e - str r0, [sp] - movs r0, #6 - str r0, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0xe - bl FillBgTilemapBufferRect_Palette0 - ldrb r0, [r4, #0xa] - bl DestroyTask - ldrb r0, [r4, #4] - bl RemoveWindow - movs r0, #0 - bl CopyBgTilemapBufferToVram - movs r0, #1 -_08195FE8: - add sp, #8 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_08195F90 - - thumb_func_start sub_08195FF0 -sub_08195FF0: @ 0x08195FF0 - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08196054 - bl IsSEPlaying - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08196054 - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - ldr r0, _0819604C - ldrb r0, [r0, #7] - cmp r0, #0 - bne _08196046 - bl sub_08196F98 - movs r0, #0xff - movs r1, #0 - movs r2, #0 - bl GetEventObjectIdByLocalIdAndMap - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08196050 - adds r0, r0, r1 - bl EventObjectClearHeldMovementIfFinished - bl sub_080D2C2C - bl UnfreezeEventObjects - bl sub_080987E8 -_08196046: - movs r0, #1 - b _08196056 - .align 2, 0 -_0819604C: .4byte gUnknown_203CA4C -_08196050: .4byte gUnknown_2036FF0 -_08196054: - movs r0, #0 -_08196056: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08195FF0 - - thumb_func_start DrawMatchCallTextBoxBorder -DrawMatchCallTextBoxBorder: @ 0x0819605C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - adds r4, r0, #0 - adds r5, r1, #0 - adds r7, r2, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #0 - bl GetWindowAttribute - mov sb, r0 - adds r0, r4, #0 - movs r1, #1 - bl GetWindowAttribute - str r0, [sp, #8] - adds r0, r4, #0 - movs r1, #2 - bl GetWindowAttribute - str r0, [sp, #0xc] - adds r0, r4, #0 - movs r1, #3 - bl GetWindowAttribute - adds r6, r0, #0 - adds r0, r4, #0 - movs r1, #4 - bl GetWindowAttribute - str r0, [sp, #0x10] - mov r0, sb - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - movs r1, #0xa - bl GetBgAttribute - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r5, r5, r0 - lsls r7, r7, #0xc - movs r1, #0xf0 - lsls r1, r1, #8 - adds r0, r1, #0 - ands r7, r0 - adds r1, r7, #0 - orrs r1, r5 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r2, [sp, #8] - subs r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sl, r2 - ldr r4, [sp, #0xc] - subs r4, #1 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r3, #1 - mov r8, r3 - str r3, [sp] - str r3, [sp, #4] - mov r0, sb - adds r3, r4, #0 - bl FillBgTilemapBufferRect_Palette0 - adds r1, r5, #1 - orrs r1, r7 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, [sp, #8] - lsls r2, r0, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x14] - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x18] - str r0, [sp] - mov r2, r8 - str r2, [sp, #4] - mov r0, sb - ldr r2, [sp, #0x14] - adds r3, r4, #0 - bl FillBgTilemapBufferRect_Palette0 - adds r1, r5, #2 - orrs r1, r7 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r3, [sp, #8] - adds r0, r3, r6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x1c] - mov r0, r8 - str r0, [sp] - str r0, [sp, #4] - mov r0, sb - ldr r2, [sp, #0x1c] - adds r3, r4, #0 - bl FillBgTilemapBufferRect_Palette0 - adds r1, r5, #3 - orrs r1, r7 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r2, [sp, #0xc] - lsls r6, r2, #0x18 - lsrs r6, r6, #0x18 - mov r3, r8 - str r3, [sp] - ldr r0, [sp, #0x10] - lsls r4, r0, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp, #4] - mov r0, sb - mov r2, sl - adds r3, r6, #0 - bl FillBgTilemapBufferRect_Palette0 - adds r1, r5, #4 - orrs r1, r7 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r2, r8 - str r2, [sp] - str r4, [sp, #4] - mov r0, sb - ldr r2, [sp, #0x1c] - adds r3, r6, #0 - bl FillBgTilemapBufferRect_Palette0 - adds r1, r5, #5 - orrs r1, r7 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r3, [sp, #0xc] - ldr r2, [sp, #0x10] - adds r0, r3, r2 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - mov r3, r8 - str r3, [sp] - str r3, [sp, #4] - mov r0, sb - mov r2, sl - adds r3, r4, #0 - bl FillBgTilemapBufferRect_Palette0 - adds r1, r5, #6 - orrs r1, r7 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, [sp, #0x18] - str r0, [sp] - mov r2, r8 - str r2, [sp, #4] - mov r0, sb - ldr r2, [sp, #0x14] - adds r3, r4, #0 - bl FillBgTilemapBufferRect_Palette0 - adds r5, #7 - orrs r5, r7 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - mov r3, r8 - str r3, [sp] - str r3, [sp, #4] - mov r0, sb - adds r1, r5, #0 - ldr r2, [sp, #0x1c] - adds r3, r4, #0 - bl FillBgTilemapBufferRect_Palette0 - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end DrawMatchCallTextBoxBorder - - thumb_func_start InitMatchCallTextPrinter -InitMatchCallTextPrinter: @ 0x081961D8 - push {lr} - sub sp, #0x10 - str r1, [sp] - mov r1, sp - movs r3, #0 - strb r0, [r1, #4] - movs r0, #1 - strb r0, [r1, #5] - mov r0, sp - movs r2, #0x20 - strb r2, [r0, #6] - movs r1, #2 - strb r1, [r0, #7] - strb r2, [r0, #8] - strb r1, [r0, #9] - strb r3, [r0, #0xa] - strb r3, [r0, #0xb] - mov r3, sp - ldrb r2, [r3, #0xc] - subs r1, #0x12 - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3, #0xc] - mov r2, sp - movs r3, #0xf - movs r0, #0xa0 - strb r0, [r2, #0xc] - ldrb r0, [r2, #0xd] - ands r1, r0 - movs r0, #8 - orrs r1, r0 - strb r1, [r2, #0xd] - ands r1, r3 - movs r0, #0xe0 - orrs r1, r0 - strb r1, [r2, #0xd] - ldr r2, _08196244 - ldrb r1, [r2] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - bl GetPlayerTextSpeedDelay - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r0, sp - movs r2, #0 - bl AddTextPrinter - add sp, #0x10 - pop {r0} - bx r0 - .align 2, 0 -_08196244: .4byte gUnknown_30030B4 - thumb_func_end InitMatchCallTextPrinter - - thumb_func_start ExecuteMatchCallTextPrinter -ExecuteMatchCallTextPrinter: @ 0x08196248 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08196264 - ldrh r1, [r0, #0x2c] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0819626C - ldr r0, _08196268 - ldrb r1, [r0] - movs r2, #1 - orrs r1, r2 - strb r1, [r0] - b _08196278 - .align 2, 0 -_08196264: .4byte gUnknown_3002360 -_08196268: .4byte gUnknown_30030B4 -_0819626C: - ldr r2, _08196290 - ldrb r1, [r2] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_08196278: - bl sub_08004630 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl sub_080046A8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08196290: .4byte gUnknown_30030B4 - thumb_func_end ExecuteMatchCallTextPrinter - - thumb_func_start sub_08196294 -sub_08196294: @ 0x08196294 - push {lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _08196304 - adds r2, r1, r0 - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #8 - ble _081962FC - movs r1, #0 - strh r1, [r2] - ldrh r0, [r2, #2] - adds r0, #1 - strh r0, [r2, #2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #7 - ble _081962C8 - strh r1, [r2, #2] -_081962C8: - movs r0, #2 - ldrsh r1, [r2, r0] - lsls r1, r1, #4 - ldr r0, _08196308 - adds r1, r1, r0 - strh r1, [r2, #4] - ldr r2, _0819630C - adds r0, r2, #0 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #4 - str r0, [sp] - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #1 - str r0, [sp, #0xc] - movs r0, #0 - movs r2, #1 - movs r3, #0xf - bl WriteSequenceToBgTilemapBuffer - movs r0, #0 - bl CopyBgTilemapBufferToVram -_081962FC: - add sp, #0x10 - pop {r0} - bx r0 - .align 2, 0 -_08196304: .4byte gUnknown_3005B68 -_08196308: .4byte 0x00000279 -_0819630C: .4byte 0xFFFFF000 - thumb_func_end sub_08196294 - - thumb_func_start TrainerIsEligibleForRematch -TrainerIsEligibleForRematch: @ 0x08196310 - ldr r1, _08196324 - ldr r1, [r1] - ldr r2, _08196328 - adds r1, r1, r2 - adds r1, r1, r0 - ldrb r1, [r1] - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - bx lr - .align 2, 0 -_08196324: .4byte gUnknown_3005AEC -_08196328: .4byte 0x000009CA - thumb_func_end TrainerIsEligibleForRematch - - thumb_func_start GetRematchTrainerLocation -GetRematchTrainerLocation: @ 0x0819632C - push {lr} - ldr r1, _08196344 - lsls r0, r0, #4 - adds r0, r0, r1 - ldrh r2, [r0, #0xa] - ldrh r1, [r0, #0xc] - adds r0, r2, #0 - bl Overworld_GetMapHeaderByGroupAndId - ldrb r0, [r0, #0x14] - pop {r1} - bx r1 - .align 2, 0 -_08196344: .4byte gUnknown_852AD40 - thumb_func_end GetRematchTrainerLocation - - thumb_func_start GetNumRematchTrainersFought -GetNumRematchTrainersFought: @ 0x08196348 - push {r4, r5, r6, lr} - movs r5, #0 - movs r6, #0 - ldr r4, _08196370 -_08196350: - ldrh r0, [r4] - bl HasTrainerBeenFought - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0819635E - adds r6, #1 -_0819635E: - adds r4, #0x10 - adds r5, #1 - cmp r5, #0x3f - bls _08196350 - adds r0, r6, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08196370: .4byte gUnknown_852AD40 - thumb_func_end GetNumRematchTrainersFought - - thumb_func_start sub_08196374 -sub_08196374: @ 0x08196374 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - movs r4, #0 - movs r6, #0 - ldr r5, _08196394 -_0819637E: - ldrh r0, [r5] - bl HasTrainerBeenFought - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0819639A - cmp r6, r7 - bne _08196398 - adds r0, r4, #0 - b _081963A4 - .align 2, 0 -_08196394: .4byte gUnknown_852AD40 -_08196398: - adds r6, #1 -_0819639A: - adds r5, #0x10 - adds r4, #1 - cmp r4, #0x4d - bls _0819637E - movs r0, #0x4e -_081963A4: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08196374 - - thumb_func_start SelectMatchCallMessage -SelectMatchCallMessage: @ 0x081963AC - push {r4, r5, r6, r7, lr} - adds r6, r1, #0 - movs r7, #0 - bl GetTrainerMatchCallId - adds r5, r0, #0 - ldr r0, _081963E4 - strh r7, [r0] - adds r0, r5, #0 - bl TrainerIsEligibleForRematch - cmp r0, #0 - beq _081963EC - adds r0, r5, #0 - bl GetRematchTrainerLocation - ldr r1, _081963E8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r1, #0x14] - cmp r0, r1 - bne _081963EC - adds r0, r5, #0 - adds r1, r6, #0 - bl GetSameRouteMatchCallText - b _08196430 - .align 2, 0 -_081963E4: .4byte gUnknown_203CA54 -_081963E8: .4byte gUnknown_2036FB8 -_081963EC: - adds r0, r5, #0 - bl sub_08196968 - cmp r0, #0 - beq _0819640A - adds r0, r5, #0 - adds r1, r6, #0 - bl GetDifferentRouteMatchCallText - adds r4, r0, #0 - movs r7, #1 - adds r0, r5, #0 - bl UpdateRematchIfDefeated - b _08196432 -_0819640A: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08196428 - adds r0, r5, #0 - adds r1, r6, #0 - bl GetBattleMatchCallText - b _08196430 -_08196428: - adds r0, r5, #0 - adds r1, r6, #0 - bl GetGeneralMatchCallText -_08196430: - adds r4, r0, #0 -_08196432: - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r6, #0 - bl BuildMatchCallString - adds r0, r7, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end SelectMatchCallMessage - - thumb_func_start GetTrainerMatchCallId -GetTrainerMatchCallId: @ 0x08196444 - push {lr} - adds r3, r0, #0 - movs r2, #0 - ldr r1, _08196458 -_0819644C: - ldrh r0, [r1] - cmp r0, r3 - beq _0819645C - adds r1, #0x14 - adds r2, #1 - b _0819644C - .align 2, 0 -_08196458: .4byte gUnknown_85D6934 -_0819645C: - adds r0, r2, #0 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetTrainerMatchCallId - - thumb_func_start GetSameRouteMatchCallText -GetSameRouteMatchCallText: @ 0x08196464 - ldr r2, _08196488 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r1, [r1, #0xe] - movs r2, #0xff - lsrs r0, r1, #8 - subs r0, #1 - ands r1, r2 - subs r1, #1 - ldr r2, _0819648C - lsls r0, r0, #2 - adds r0, r0, r2 - lsls r1, r1, #3 - ldr r0, [r0] - adds r0, r0, r1 - bx lr - .align 2, 0 -_08196488: .4byte gUnknown_85D6934 -_0819648C: .4byte gUnknown_85D74A8 - thumb_func_end GetSameRouteMatchCallText - - thumb_func_start GetDifferentRouteMatchCallText -GetDifferentRouteMatchCallText: @ 0x08196490 - ldr r2, _081964B4 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r1, [r1, #0x10] - movs r2, #0xff - lsrs r0, r1, #8 - subs r0, #1 - ands r1, r2 - subs r1, #1 - ldr r2, _081964B8 - lsls r0, r0, #2 - adds r0, r0, r2 - lsls r1, r1, #3 - ldr r0, [r0] - adds r0, r0, r1 - bx lr - .align 2, 0 -_081964B4: .4byte gUnknown_85D6934 -_081964B8: .4byte gUnknown_85D74A8 - thumb_func_end GetDifferentRouteMatchCallText - - thumb_func_start GetBattleMatchCallText -GetBattleMatchCallText: @ 0x081964BC - push {r4, lr} - adds r4, r0, #0 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - lsls r0, r0, #0x10 - ldr r2, _08196508 - lsrs r0, r0, #0xf - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r0, r0, r1 - adds r2, #4 - adds r0, r0, r2 - ldrh r4, [r0] - cmp r4, #0 - bne _081964EC - movs r0, #0 - bl sub_08007140 -_081964EC: - movs r1, #0xff - lsrs r0, r4, #8 - subs r0, #1 - ands r4, r1 - subs r1, r4, #1 - ldr r2, _0819650C - lsls r0, r0, #2 - adds r0, r0, r2 - lsls r1, r1, #3 - ldr r0, [r0] - adds r0, r0, r1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08196508: .4byte gUnknown_85D6934 -_0819650C: .4byte gUnknown_85D749C - thumb_func_end GetBattleMatchCallText - - thumb_func_start GetGeneralMatchCallText -GetGeneralMatchCallText: @ 0x08196510 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r6, r0, #0 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _081965AC - movs r5, #0 - movs r4, #0 - lsls r7, r6, #2 -_0819652C: - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - mov r1, sp - bl GetFrontierStreakInfo - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bls _08196540 - adds r5, #1 -_08196540: - adds r4, #1 - cmp r4, #6 - ble _0819652C - cmp r5, #0 - beq _081965AC - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r5, #0 - bl __modsi3 - adds r5, r0, #0 - movs r4, #0 - b _08196562 -_0819655E: - subs r5, #1 -_08196560: - adds r4, #1 -_08196562: - cmp r4, #6 - bgt _08196580 - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - mov r1, sp - bl GetFrontierStreakInfo - ldr r1, _081965A0 - strh r0, [r1, #2] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bls _08196560 - cmp r5, #0 - bne _0819655E -_08196580: - ldr r0, _081965A0 - strh r4, [r0] - ldr r1, _081965A4 - adds r0, r7, r6 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #0xc] - subs r2, r0, #1 - ldr r1, _081965A8 - ldr r0, [sp] - lsls r0, r0, #2 - adds r0, r0, r1 - lsls r1, r2, #3 - ldr r0, [r0] - adds r0, r0, r1 - b _081965D0 - .align 2, 0 -_081965A0: .4byte gUnknown_203CA54 -_081965A4: .4byte gUnknown_85D6934 -_081965A8: .4byte gUnknown_85D74B0 -_081965AC: - ldr r1, _081965D8 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r2, [r0, #0xa] - lsrs r1, r2, #8 - subs r1, #1 - str r1, [sp] - movs r0, #0xff - ands r0, r2 - subs r2, r0, #1 - ldr r0, _081965DC - lsls r1, r1, #2 - adds r1, r1, r0 - lsls r2, r2, #3 - ldr r0, [r1] - adds r0, r0, r2 -_081965D0: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081965D8: .4byte gUnknown_85D6934 -_081965DC: .4byte gUnknown_85D74B0 - thumb_func_end GetGeneralMatchCallText - - thumb_func_start BuildMatchCallString -BuildMatchCallString: @ 0x081965E0 - push {r4, r5, lr} - adds r4, r1, #0 - adds r5, r2, #0 - adds r1, r4, #4 - bl PopulateMatchCallStringVars - ldr r1, [r4] - adds r0, r5, #0 - bl StringExpandPlaceholders - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BuildMatchCallString - - thumb_func_start PopulateMatchCallStringVars -PopulateMatchCallStringVars: @ 0x081965FC - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r6, r1, #0 - movs r4, #0 - ldr r5, _08196628 -_08196606: - adds r1, r6, r4 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - blt _0819661A - adds r1, r0, #0 - ldr r2, [r5] - adds r0, r7, #0 - bl PopulateMatchCallStringVar -_0819661A: - adds r5, #4 - adds r4, #1 - cmp r4, #2 - ble _08196606 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08196628: .4byte gUnknown_85D7A1C - thumb_func_end PopulateMatchCallStringVars - - thumb_func_start PopulateMatchCallStringVar -PopulateMatchCallStringVar: @ 0x0819662C - push {lr} - ldr r3, _08196640 - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r3, [r1] - adds r1, r2, #0 - bl _call_via_r3 - pop {r0} - bx r0 - .align 2, 0 -_08196640: .4byte gUnknown_85D7A28 - thumb_func_end PopulateMatchCallStringVar - - thumb_func_start PopulateTrainerName -PopulateTrainerName: @ 0x08196644 - push {r4, r5, r6, lr} - adds r5, r1, #0 - ldr r2, _08196670 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r4, [r1] - movs r3, #0 - ldr r1, _08196674 - adds r6, r1, #0 -_0819665A: - lsls r2, r3, #3 - ldrh r0, [r1] - cmp r0, r4 - bne _08196678 - adds r0, r6, #4 - adds r0, r2, r0 - ldr r1, [r0] - adds r0, r5, #0 - bl StringCopy - b _0819668C - .align 2, 0 -_08196670: .4byte gUnknown_85D6934 -_08196674: .4byte gUnknown_85D7A54 -_08196678: - adds r1, #8 - adds r3, #1 - cmp r3, #5 - bls _0819665A - lsls r1, r4, #5 - ldr r0, _08196694 - adds r1, r1, r0 - adds r0, r5, #0 - bl StringCopy -_0819668C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08196694: .4byte gUnknown_82E3840 - thumb_func_end PopulateTrainerName - - thumb_func_start PopulateMapName -PopulateMapName: @ 0x08196698 - push {r4, lr} - adds r4, r1, #0 - bl GetRematchTrainerLocation - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - movs r2, #0 - bl GetMapName - pop {r4} - pop {r0} - bx r0 - thumb_func_end PopulateMapName - - thumb_func_start GetLandEncounterSlot -GetLandEncounterSlot: @ 0x081966B4 - push {lr} - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0x13 - bgt _081966D0 - movs r0, #0 - b _08196746 -_081966D0: - adds r0, r1, #0 - subs r0, #0x14 - cmp r0, #0x13 - bhi _081966DC - movs r0, #1 - b _08196746 -_081966DC: - adds r0, r1, #0 - subs r0, #0x28 - cmp r0, #9 - bhi _081966E8 - movs r0, #2 - b _08196746 -_081966E8: - adds r0, r1, #0 - subs r0, #0x32 - cmp r0, #9 - bhi _081966F4 - movs r0, #3 - b _08196746 -_081966F4: - adds r0, r1, #0 - subs r0, #0x3c - cmp r0, #9 - bhi _08196700 - movs r0, #4 - b _08196746 -_08196700: - adds r0, r1, #0 - subs r0, #0x46 - cmp r0, #9 - bhi _0819670C - movs r0, #5 - b _08196746 -_0819670C: - adds r0, r1, #0 - subs r0, #0x50 - cmp r0, #4 - bhi _08196718 - movs r0, #6 - b _08196746 -_08196718: - adds r0, r1, #0 - subs r0, #0x55 - cmp r0, #4 - bhi _08196724 - movs r0, #7 - b _08196746 -_08196724: - adds r0, r1, #0 - subs r0, #0x5a - cmp r0, #3 - bhi _08196730 - movs r0, #8 - b _08196746 -_08196730: - adds r0, r1, #0 - subs r0, #0x5e - cmp r0, #3 - bhi _0819673C - movs r0, #9 - b _08196746 -_0819673C: - cmp r1, #0x62 - beq _08196744 - movs r0, #0xb - b _08196746 -_08196744: - movs r0, #0xa -_08196746: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetLandEncounterSlot - - thumb_func_start GetWaterEncounterSlot -GetWaterEncounterSlot: @ 0x0819674C - push {lr} - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0x3b - bgt _08196768 - movs r0, #0 - b _0819678E -_08196768: - adds r0, r1, #0 - subs r0, #0x3c - cmp r0, #0x1d - bhi _08196774 - movs r0, #1 - b _0819678E -_08196774: - adds r0, r1, #0 - subs r0, #0x5a - cmp r0, #4 - bhi _08196780 - movs r0, #2 - b _0819678E -_08196780: - adds r0, r1, #0 - subs r0, #0x5f - cmp r0, #3 - bls _0819678C - movs r0, #4 - b _0819678E -_0819678C: - movs r0, #3 -_0819678E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetWaterEncounterSlot - - thumb_func_start PopulateSpeciesFromTrainerLocation -PopulateSpeciesFromTrainerLocation: @ 0x08196794 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r2, r0, #0 - mov r8, r1 - movs r3, #0 - ldr r0, _0819684C - ldrb r1, [r0] - adds r7, r0, #0 - cmp r1, #0xff - beq _08196858 - ldr r1, _08196850 - lsls r0, r2, #4 - adds r2, r0, r1 - ldrh r4, [r2, #0xa] - adds r1, r7, #0 -_081967B6: - ldrb r0, [r1] - cmp r0, r4 - bne _081967C4 - ldrb r0, [r1, #1] - ldrh r5, [r2, #0xc] - cmp r0, r5 - beq _081967CE -_081967C4: - adds r1, #0x14 - adds r3, #1 - ldrb r0, [r1] - cmp r0, #0xff - bne _081967B6 -_081967CE: - adds r1, r7, #0 - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r5, r0, #2 - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, #0xff - beq _08196858 - movs r6, #0 - adds r0, r1, #4 - adds r0, r5, r0 - ldr r4, [r0] - cmp r4, #0 - beq _081967FE - bl GetLandEncounterSlot - lsls r0, r0, #0x18 - mov r2, sp - ldr r1, [r4, #4] - lsrs r0, r0, #0x16 - adds r0, r0, r1 - ldrh r0, [r0, #2] - strh r0, [r2] - movs r6, #1 -_081967FE: - adds r0, r7, #0 - adds r0, #8 - adds r0, r5, r0 - ldr r4, [r0] - cmp r4, #0 - beq _08196822 - bl GetWaterEncounterSlot - lsls r0, r0, #0x18 - lsls r1, r6, #1 - mov r3, sp - adds r2, r3, r1 - ldr r1, [r4, #4] - lsrs r0, r0, #0x16 - adds r0, r0, r1 - ldrh r0, [r0, #2] - strh r0, [r2] - adds r6, #1 -_08196822: - cmp r6, #0 - beq _08196858 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r6, #0 - bl __modsi3 - lsls r0, r0, #1 - add r0, sp - ldrh r0, [r0] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - ldr r0, _08196854 - adds r1, r1, r0 - mov r0, r8 - bl StringCopy - b _0819685E - .align 2, 0 -_0819684C: .4byte gUnknown_852D9F4 -_08196850: .4byte gUnknown_852AD40 -_08196854: .4byte gUnknown_82EA31C -_08196858: - movs r0, #0xff - mov r5, r8 - strb r0, [r5] -_0819685E: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PopulateSpeciesFromTrainerLocation - - thumb_func_start atk50_openpartyscreen -atk50_openpartyscreen: @ 0x0819686C - push {r4, r5, r6, r7, lr} - adds r7, r1, #0 - ldr r2, _081968BC - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r0, [r1] - bl GetLastBeatenRematchTrainerId - adds r4, r0, #0 - lsls r4, r4, #0x10 - ldr r5, _081968C0 - lsrs r4, r4, #0xb - adds r0, r5, #0 - adds r0, #0x1c - adds r0, r4, r0 - ldr r6, [r0] - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r4, r4, r5 - ldrb r1, [r4, #0x18] - bl __modsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r4] - cmp r1, #1 - beq _081968C8 - cmp r1, #1 - ble _081968B6 - cmp r1, #2 - beq _081968C4 - cmp r1, #3 - beq _081968C8 -_081968B6: - lsls r0, r0, #3 - b _081968CA - .align 2, 0 -_081968BC: .4byte gUnknown_85D6934 -_081968C0: .4byte gUnknown_82E383C -_081968C4: - lsls r0, r0, #3 - b _081968CA -_081968C8: - lsls r0, r0, #4 -_081968CA: - adds r0, r0, r6 - ldrh r0, [r0, #4] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - ldr r0, _081968E4 - adds r1, r1, r0 - adds r0, r7, #0 - bl StringCopy - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081968E4: .4byte gUnknown_82EA31C - thumb_func_end atk50_openpartyscreen - - thumb_func_start PopulateBattleFrontierFacilityName -PopulateBattleFrontierFacilityName: @ 0x081968E8 - push {lr} - adds r0, r1, #0 - ldr r2, _08196900 - ldr r1, _08196904 - ldrh r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl StringCopy - pop {r0} - bx r0 - .align 2, 0 -_08196900: .4byte gUnknown_85D7A84 -_08196904: .4byte gUnknown_203CA54 - thumb_func_end PopulateBattleFrontierFacilityName - - thumb_func_start PopulateBattleFrontierStreak -PopulateBattleFrontierStreak: @ 0x08196908 - push {r4, r5, r6, lr} - adds r5, r1, #0 - movs r4, #0 - ldr r0, _0819693C - ldrh r1, [r0, #2] - adds r6, r0, #0 - cmp r1, #0 - beq _08196928 -_08196918: - adds r0, r1, #0 - movs r1, #0xa - bl __divsi3 - adds r1, r0, #0 - adds r4, #1 - cmp r1, #0 - bne _08196918 -_08196928: - ldrh r1, [r6, #2] - lsls r3, r4, #0x18 - lsrs r3, r3, #0x18 - adds r0, r5, #0 - movs r2, #0 - bl sub_080089D8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0819693C: .4byte gUnknown_203CA54 - thumb_func_end PopulateBattleFrontierStreak - - thumb_func_start GetNumOwnedBadges -GetNumOwnedBadges: @ 0x08196940 - push {r4, r5, lr} - movs r4, #0 - ldr r5, _08196948 - b _08196950 - .align 2, 0 -_08196948: .4byte gUnknown_85D7AA0 -_0819694C: - adds r5, #2 - adds r4, #1 -_08196950: - cmp r4, #7 - bhi _08196960 - ldrh r0, [r5] - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0819694C -_08196960: - adds r0, r4, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end GetNumOwnedBadges - - thumb_func_start sub_08196968 -sub_08196968: @ 0x08196968 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - bl GetNumOwnedBadges - cmp r0, #4 - ble _081969E8 - bl RtcGetLocalDayCount - adds r4, r0, #0 - ldr r0, _081969D8 - ldr r0, [r0] - adds r0, #0xa - bl GetTrainerId - adds r6, r0, #0 - ldr r0, _081969DC - ands r6, r0 - ldr r0, _081969E0 - ldr r0, [r0] - ldr r1, _081969E4 - adds r0, r0, r1 - ldrh r5, [r0] - bl GetNumRematchTrainersFought - mov sb, r0 - movs r0, #0xd - mov r1, sb - muls r1, r0, r1 - adds r0, r1, #0 - movs r1, #0xa - bl __divsi3 - mov r8, r0 - movs r0, #9 - bl GetGameStat - eors r4, r5 - eors r5, r0 - adds r4, r4, r5 - eors r4, r6 - adds r0, r4, #0 - mov r1, r8 - bl __modsi3 - cmp r0, sb - bge _081969E8 - bl sub_08196374 - cmp r0, r7 - bne _081969E8 - movs r0, #1 - b _081969EA - .align 2, 0 -_081969D8: .4byte gUnknown_3005AF0 -_081969DC: .4byte 0x0000FFFF -_081969E0: .4byte gUnknown_3005AEC -_081969E4: .4byte 0x00002E6A -_081969E8: - movs r0, #0 -_081969EA: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08196968 - - thumb_func_start GetFrontierStreakInfo -GetFrontierStreakInfo: @ 0x081969F8 - push {r4, r5, r6, lr} - adds r5, r1, #0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r4, #0 - cmp r0, #6 - bls _08196A08 - b _08196B72 -_08196A08: - lsls r0, r0, #2 - ldr r1, _08196A14 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08196A14: .4byte _08196A18 -_08196A18: @ jump table - .4byte _08196A90 @ case 0 - .4byte _08196A34 @ case 1 - .4byte _08196AC4 @ case 2 - .4byte _08196B2C @ case 3 - .4byte _08196A68 @ case 4 - .4byte _08196AF8 @ case 5 - .4byte _08196B54 @ case 6 -_08196A34: - movs r3, #0 - ldr r0, _08196A60 - ldr r0, [r0] - ldr r1, _08196A64 - adds r0, r0, r1 -_08196A3E: - lsls r1, r3, #2 - adds r3, #1 - adds r1, r1, r0 - movs r2, #1 -_08196A46: - ldrh r6, [r1] - cmp r4, r6 - bhs _08196A4E - ldrh r4, [r1] -_08196A4E: - adds r1, #2 - subs r2, #1 - cmp r2, #0 - bge _08196A46 - cmp r3, #1 - ble _08196A3E - movs r0, #3 - b _08196B70 - .align 2, 0 -_08196A60: .4byte gUnknown_3005AF0 -_08196A64: .4byte 0x00000D14 -_08196A68: - ldr r0, _08196A88 - ldr r0, [r0] - ldr r1, _08196A8C - adds r0, r0, r1 - movs r3, #1 -_08196A72: - ldrh r6, [r0] - cmp r4, r6 - bhs _08196A7A - ldrh r4, [r0] -_08196A7A: - adds r0, #2 - subs r3, #1 - cmp r3, #0 - bge _08196A72 - movs r0, #4 - b _08196B70 - .align 2, 0 -_08196A88: .4byte gUnknown_3005AF0 -_08196A8C: .4byte 0x00000E08 -_08196A90: - movs r3, #0 - ldr r0, _08196AC0 - ldr r0, [r0] - movs r1, #0xcf - lsls r1, r1, #4 - adds r0, r0, r1 -_08196A9C: - lsls r1, r3, #2 - adds r3, #1 - adds r1, r1, r0 - movs r2, #1 -_08196AA4: - ldrh r6, [r1] - cmp r4, r6 - bhs _08196AAC - ldrh r4, [r1] -_08196AAC: - adds r1, #2 - subs r2, #1 - cmp r2, #0 - bge _08196AA4 - movs r2, #2 - cmp r3, #3 - ble _08196A9C - str r2, [r5] - b _08196B72 - .align 2, 0 -_08196AC0: .4byte gUnknown_3005AF0 -_08196AC4: - movs r3, #0 - ldr r0, _08196AF4 - ldr r0, [r0] - movs r1, #0xdd - lsls r1, r1, #4 - adds r0, r0, r1 -_08196AD0: - lsls r1, r3, #2 - adds r3, #1 - adds r1, r1, r0 - movs r2, #1 -_08196AD8: - ldrh r6, [r1] - cmp r4, r6 - bhs _08196AE0 - ldrh r4, [r1] -_08196AE0: - adds r1, #2 - subs r2, #1 - cmp r2, #0 - bge _08196AD8 - movs r2, #2 - cmp r3, #1 - ble _08196AD0 - str r2, [r5] - b _08196B72 - .align 2, 0 -_08196AF4: .4byte gUnknown_3005AF0 -_08196AF8: - movs r3, #0 - ldr r0, _08196B24 - ldr r0, [r0] - ldr r1, _08196B28 - adds r0, r0, r1 -_08196B02: - lsls r1, r3, #2 - adds r3, #1 - adds r1, r1, r0 - movs r2, #1 -_08196B0A: - ldrh r6, [r1] - cmp r4, r6 - bhs _08196B12 - ldrh r4, [r1] -_08196B12: - adds r1, #2 - subs r2, #1 - cmp r2, #0 - bge _08196B0A - movs r2, #2 - cmp r3, #1 - ble _08196B02 - str r2, [r5] - b _08196B72 - .align 2, 0 -_08196B24: .4byte gUnknown_3005AF0 -_08196B28: .4byte 0x00000DEA -_08196B2C: - ldr r0, _08196B4C - ldr r0, [r0] - ldr r1, _08196B50 - adds r0, r0, r1 - movs r3, #1 -_08196B36: - ldrh r6, [r0] - cmp r4, r6 - bhs _08196B3E - ldrh r4, [r0] -_08196B3E: - adds r0, #2 - subs r3, #1 - cmp r3, #0 - bge _08196B36 - movs r3, #2 - str r3, [r5] - b _08196B72 - .align 2, 0 -_08196B4C: .4byte gUnknown_3005AF0 -_08196B50: .4byte 0x00000DDE -_08196B54: - ldr r0, _08196B7C - ldr r0, [r0] - ldr r1, _08196B80 - adds r0, r0, r1 - movs r3, #1 -_08196B5E: - ldrh r6, [r0] - cmp r4, r6 - bhs _08196B66 - ldrh r4, [r0] -_08196B66: - adds r0, #2 - subs r3, #1 - cmp r3, #0 - bge _08196B5E - movs r0, #5 -_08196B70: - str r0, [r5] -_08196B72: - adds r0, r4, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08196B7C: .4byte gUnknown_3005AF0 -_08196B80: .4byte 0x00000E1E - thumb_func_end GetFrontierStreakInfo - - thumb_func_start GetPokedexRatingLevel -GetPokedexRatingLevel: @ 0x08196B84 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #9 - bhi _08196B92 - movs r0, #0 - b _08196C6E -_08196B92: - cmp r4, #0x13 - bhi _08196B9A - movs r0, #1 - b _08196C6E -_08196B9A: - cmp r4, #0x1d - bhi _08196BA2 - movs r0, #2 - b _08196C6E -_08196BA2: - cmp r4, #0x27 - bhi _08196BAA - movs r0, #3 - b _08196C6E -_08196BAA: - cmp r4, #0x31 - bhi _08196BB2 - movs r0, #4 - b _08196C6E -_08196BB2: - cmp r4, #0x3b - bhi _08196BBA - movs r0, #5 - b _08196C6E -_08196BBA: - cmp r4, #0x45 - bhi _08196BC2 - movs r0, #6 - b _08196C6E -_08196BC2: - cmp r4, #0x4f - bhi _08196BCA - movs r0, #7 - b _08196C6E -_08196BCA: - cmp r4, #0x59 - bhi _08196BD2 - movs r0, #8 - b _08196C6E -_08196BD2: - cmp r4, #0x63 - bhi _08196BDA - movs r0, #9 - b _08196C6E -_08196BDA: - cmp r4, #0x6d - bhi _08196BE2 - movs r0, #0xa - b _08196C6E -_08196BE2: - cmp r4, #0x77 - bhi _08196BEA - movs r0, #0xb - b _08196C6E -_08196BEA: - cmp r4, #0x81 - bhi _08196BF2 - movs r0, #0xc - b _08196C6E -_08196BF2: - cmp r4, #0x8b - bhi _08196BFA - movs r0, #0xd - b _08196C6E -_08196BFA: - cmp r4, #0x95 - bhi _08196C02 - movs r0, #0xe - b _08196C6E -_08196C02: - cmp r4, #0x9f - bhi _08196C0A - movs r0, #0xf - b _08196C6E -_08196C0A: - cmp r4, #0xa9 - bhi _08196C12 - movs r0, #0x10 - b _08196C6E -_08196C12: - cmp r4, #0xb3 - bhi _08196C1A - movs r0, #0x11 - b _08196C6E -_08196C1A: - cmp r4, #0xbd - bhi _08196C22 - movs r0, #0x12 - b _08196C6E -_08196C22: - cmp r4, #0xc7 - bls _08196C6C - movs r0, #0xcd - lsls r0, r0, #1 - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - bl GetSetPokedexFlag - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08196C44 - subs r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_08196C44: - ldr r0, _08196C68 - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - bl GetSetPokedexFlag - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08196C60 - subs r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_08196C60: - cmp r4, #0xc7 - bls _08196C6C - movs r0, #0x14 - b _08196C6E - .align 2, 0 -_08196C68: .4byte 0x00000199 -_08196C6C: - movs r0, #0x13 -_08196C6E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetPokedexRatingLevel - - thumb_func_start sub_08196C74 -sub_08196C74: @ 0x08196C74 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov r8, r0 - movs r0, #0xfa - lsls r0, r0, #2 - bl sub_08000BC8 - adds r7, r0, #0 - cmp r7, #0 - bne _08196C96 - movs r0, #0xff - mov r1, r8 - strb r0, [r1] - b _08196D50 -_08196C96: - movs r0, #0 - bl GetHoennPokedexCount - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r0, #1 - bl GetHoennPokedexCount - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r0, _08196D60 - mov sl, r0 - adds r1, r4, #0 - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - ldr r1, _08196D64 - mov sb, r1 - mov r0, sb - adds r1, r6, #0 - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - adds r0, r6, #0 - bl GetPokedexRatingLevel - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _08196D68 - adds r0, r7, #0 - bl StringCopy - adds r5, r0, #0 - movs r6, #0xfb - strb r6, [r5] - adds r5, #1 - ldr r1, _08196D6C - adds r0, r5, #0 - bl StringCopy - adds r5, r0, #0 - strb r6, [r5] - adds r5, #1 - ldr r0, _08196D70 - lsls r4, r4, #2 - adds r4, r4, r0 - ldr r1, [r4] - adds r0, r5, #0 - bl StringCopy - mov r0, r8 - adds r1, r7, #0 - bl StringExpandPlaceholders - adds r5, r0, #0 - bl IsNationalPokedexEnabled - cmp r0, #0 - beq _08196D4A - strb r6, [r5] - adds r5, #1 - movs r0, #0 - bl GetNationalPokedexCount - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r0, #1 - bl GetNationalPokedexCount - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - mov r0, sl - adds r1, r4, #0 - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - mov r0, sb - adds r1, r6, #0 - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - ldr r1, _08196D74 - adds r0, r5, #0 - bl StringExpandPlaceholders -_08196D4A: - adds r0, r7, #0 - bl Free -_08196D50: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08196D60: .4byte gUnknown_2021C40 -_08196D64: .4byte gUnknown_2021C54 -_08196D68: .4byte gUnknown_8262DF5 -_08196D6C: .4byte gUnknown_8262E39 -_08196D70: .4byte gUnknown_85D7AB0 -_08196D74: .4byte gUnknown_826316A - thumb_func_end sub_08196C74 - - thumb_func_start sub_08196D78 -sub_08196D78: @ 0x08196D78 - push {r4, r5, lr} - adds r4, r1, #0 - adds r5, r2, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl GetWindowAttribute - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08196DB0 - movs r2, #0x80 - lsls r2, r2, #1 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r3, r4, #0 - bl LoadBgTiles - ldr r0, _08196DB4 - lsls r5, r5, #0x14 - lsrs r5, r5, #0x10 - adds r1, r5, #0 - movs r2, #0x20 - bl LoadPalette - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08196DB0: .4byte gUnknown_85D74E8 -_08196DB4: .4byte gUnknown_85D74C8 - thumb_func_end sub_08196D78 - - thumb_func_start sub_08196DB8 -sub_08196DB8: @ 0x08196DB8 - push {lr} - bl DrawMatchCallTextBoxBorder - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08196DB8 - - thumb_func_start InitStandardTextBoxWindows -InitStandardTextBoxWindows: @ 0x08196DC4 - push {lr} - ldr r0, _08196DDC - bl InitWindows - ldr r0, _08196DE0 - movs r1, #0xff - strb r1, [r0] - ldr r0, _08196DE4 - strb r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_08196DDC: .4byte gUnknown_85D7B28 -_08196DE0: .4byte gUnknown_203CA58 -_08196DE4: .4byte gUnknown_203CA59 - thumb_func_end InitStandardTextBoxWindows - - thumb_func_start sub_08196DE8 -sub_08196DE8: @ 0x08196DE8 - push {lr} - bl FreeAllWindowBuffers - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08196DE8 - - thumb_func_start sub_08196DF4 -sub_08196DF4: @ 0x08196DF4 - push {lr} - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - bl sub_08004480 - bl sub_08196F98 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08196DF4 - - thumb_func_start RunTextPrintersAndIsPrinter0Active -RunTextPrintersAndIsPrinter0Active: @ 0x08196E18 - push {lr} - bl sub_08004630 - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - thumb_func_end RunTextPrintersAndIsPrinter0Active - - thumb_func_start AddTextPrinterParameterized2 -AddTextPrinterParameterized2: @ 0x08196E2C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x10 - ldr r7, [sp, #0x28] - ldr r4, [sp, #0x2c] - mov r8, r4 - ldr r5, [sp, #0x30] - ldr r6, [sp, #0x34] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x18 - str r2, [sp] - mov r2, sp - movs r4, #0 - strb r0, [r2, #4] - mov r0, sp - strb r1, [r0, #5] - strb r4, [r0, #6] - movs r1, #2 - strb r1, [r0, #7] - strb r4, [r0, #8] - strb r1, [r0, #9] - strb r4, [r0, #0xa] - strb r4, [r0, #0xb] - mov r4, sp - ldrb r2, [r4, #0xc] - subs r1, #0x12 - adds r0, r1, #0 - ands r0, r2 - strb r0, [r4, #0xc] - mov r0, sp - mov r2, r8 - lsls r2, r2, #4 - movs r4, #0xf - strb r2, [r0, #0xc] - mov r2, sp - ands r5, r4 - ldrb r0, [r2, #0xd] - ands r1, r0 - orrs r1, r5 - strb r1, [r2, #0xd] - mov r0, sp - lsrs r6, r6, #0x14 - ands r1, r4 - orrs r1, r6 - strb r1, [r0, #0xd] - ldr r2, _08196EB4 - ldrb r1, [r2] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - mov r0, sp - adds r1, r3, #0 - adds r2, r7, #0 - bl AddTextPrinter - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08196EB4: .4byte gUnknown_30030B4 - thumb_func_end AddTextPrinterParameterized2 - - thumb_func_start AddTextPrinterForMessage -AddTextPrinterForMessage: @ 0x08196EB8 - push {r4, r5, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r5, #0 - ldr r3, _08196EFC - movs r4, #1 - ands r0, r4 - ldrb r2, [r3] - movs r1, #2 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3] - bl GetPlayerTextSpeedDelay - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r2, _08196F00 - str r5, [sp] - movs r0, #2 - str r0, [sp, #4] - str r4, [sp, #8] - movs r0, #3 - str r0, [sp, #0xc] - movs r0, #0 - movs r1, #1 - bl AddTextPrinterParameterized2 - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08196EFC: .4byte gUnknown_30030B4 -_08196F00: .4byte gUnknown_2021C7C - thumb_func_end AddTextPrinterForMessage - - thumb_func_start AddTextPrinterForMessage_2 -AddTextPrinterForMessage_2: @ 0x08196F04 - push {r4, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _08196F48 - movs r4, #1 - ands r0, r4 - ldrb r2, [r3] - movs r1, #2 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3] - bl GetPlayerTextSpeedDelay - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r2, _08196F4C - movs r0, #0 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - str r4, [sp, #8] - movs r0, #3 - str r0, [sp, #0xc] - movs r0, #0 - movs r1, #1 - bl AddTextPrinterParameterized2 - add sp, #0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08196F48: .4byte gUnknown_30030B4 -_08196F4C: .4byte gUnknown_2021C7C - thumb_func_end AddTextPrinterForMessage_2 - - thumb_func_start AddTextPrinterWithCustomSpeedForMessage -AddTextPrinterWithCustomSpeedForMessage: @ 0x08196F50 - push {r4, r5, lr} - sub sp, #0x10 - adds r3, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r4, _08196F90 - movs r5, #1 - ands r0, r5 - ldrb r2, [r4] - movs r1, #2 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r4] - ldr r2, _08196F94 - movs r0, #0 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - str r5, [sp, #8] - movs r0, #3 - str r0, [sp, #0xc] - movs r0, #0 - movs r1, #1 - bl AddTextPrinterParameterized2 - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08196F90: .4byte gUnknown_30030B4 -_08196F94: .4byte gUnknown_2021C7C - thumb_func_end AddTextPrinterWithCustomSpeedForMessage - - thumb_func_start sub_08196F98 -sub_08196F98: @ 0x08196F98 - push {lr} - movs r1, #0x80 - lsls r1, r1, #2 - movs r0, #0 - movs r2, #0xf0 - bl LoadMessageBoxGfx - movs r1, #0x85 - lsls r1, r1, #2 - movs r0, #0 - movs r2, #0xe0 - bl LoadUserWindowBorderGfx - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08196F98 - - thumb_func_start sub_08196FB8 -sub_08196FB8: @ 0x08196FB8 - push {r4, r5, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _08196FEC - adds r0, r5, #0 - bl CallWindowFunction - adds r0, r5, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - adds r0, r5, #0 - bl PutWindowTilemap - cmp r4, #1 - bne _08196FE6 - adds r0, r5, #0 - movs r1, #3 - bl CopyWindowToVram -_08196FE6: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08196FEC: .4byte sub_081971E8 - thumb_func_end sub_08196FB8 - - thumb_func_start sub_08196FF0 -sub_08196FF0: @ 0x08196FF0 - push {r4, r5, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _08197024 - adds r0, r5, #0 - bl CallWindowFunction - adds r0, r5, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - adds r0, r5, #0 - bl PutWindowTilemap - cmp r4, #1 - bne _0819701E - adds r0, r5, #0 - movs r1, #3 - bl CopyWindowToVram -_0819701E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08197024: .4byte WindowFunc_DrawStandardFrame - thumb_func_end sub_08196FF0 - - thumb_func_start sub_08197028 -sub_08197028: @ 0x08197028 - push {r4, r5, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _0819705C - adds r0, r5, #0 - bl CallWindowFunction - adds r0, r5, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - adds r0, r5, #0 - bl ClearWindowTilemap - cmp r4, #1 - bne _08197056 - adds r0, r5, #0 - movs r1, #3 - bl CopyWindowToVram -_08197056: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0819705C: .4byte WindowFunc_ClearDialogWindowAndFrame - thumb_func_end sub_08197028 - - thumb_func_start sub_08197060 -sub_08197060: @ 0x08197060 - push {r4, r5, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _08197094 - adds r0, r5, #0 - bl CallWindowFunction - adds r0, r5, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - adds r0, r5, #0 - bl ClearWindowTilemap - cmp r4, #1 - bne _0819708E - adds r0, r5, #0 - movs r1, #3 - bl CopyWindowToVram -_0819708E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08197094: .4byte WindowFunc_ClearStdWindowAndFrame - thumb_func_end sub_08197060 - - thumb_func_start WindowFunc_DrawStandardFrame -WindowFunc_DrawStandardFrame: @ 0x08197098 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - adds r4, r2, #0 - ldr r2, [sp, #0x3c] - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r1, r1, #0x18 - lsls r4, r4, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r3, [sp, #0x10] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x14] - movs r3, #0x85 - lsls r3, r3, #2 - lsrs r0, r1, #0x18 - str r0, [sp, #0xc] - movs r2, #0xff - lsls r2, r2, #0x18 - adds r2, r2, r1 - mov r8, r2 - lsrs r2, r2, #0x18 - lsrs r0, r4, #0x18 - mov sb, r0 - movs r0, #0xff - lsls r0, r0, #0x18 - adds r4, r4, r0 - lsrs r4, r4, #0x18 - movs r5, #1 - str r5, [sp] - str r5, [sp, #4] - movs r6, #0xe - str r6, [sp, #8] - adds r0, r7, #0 - adds r1, r3, #0 - adds r3, r4, #0 - bl FillBgTilemapBufferRect - ldr r1, _081971D0 - ldr r2, [sp, #0x10] - str r2, [sp] - str r5, [sp, #4] - str r6, [sp, #8] - adds r0, r7, #0 - ldr r2, [sp, #0xc] - adds r3, r4, #0 - bl FillBgTilemapBufferRect - ldr r1, _081971D4 - ldr r3, [sp, #0xc] - ldr r2, [sp, #0x10] - adds r0, r3, r2 - lsls r0, r0, #0x18 - mov sl, r0 - lsrs r2, r0, #0x18 - str r5, [sp] - str r5, [sp, #4] - str r6, [sp, #8] - adds r0, r7, #0 - adds r3, r4, #0 - bl FillBgTilemapBufferRect - mov r5, sb - ldr r0, [sp, #0x14] - add r0, sb - cmp sb, r0 - bge _0819716C - mov r3, r8 - str r3, [sp, #0x18] - movs r6, #1 - movs r0, #0xe - mov r8, r0 -_08197132: - lsls r4, r5, #0x18 - lsrs r4, r4, #0x18 - str r6, [sp] - str r6, [sp, #4] - mov r2, r8 - str r2, [sp, #8] - adds r0, r7, #0 - ldr r1, _081971D8 - ldr r3, [sp, #0x18] - lsrs r2, r3, #0x18 - adds r3, r4, #0 - bl FillBgTilemapBufferRect - str r6, [sp] - str r6, [sp, #4] - mov r0, r8 - str r0, [sp, #8] - adds r0, r7, #0 - ldr r1, _081971DC - mov r3, sl - lsrs r2, r3, #0x18 - adds r3, r4, #0 - bl FillBgTilemapBufferRect - adds r5, #1 - ldr r0, [sp, #0x14] - add r0, sb - cmp r5, r0 - blt _08197132 -_0819716C: - ldr r1, _081971E0 - ldr r2, [sp, #0xc] - subs r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r4, [sp, #0x14] - add r4, sb - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r5, #1 - str r5, [sp] - str r5, [sp, #4] - movs r6, #0xe - str r6, [sp, #8] - adds r0, r7, #0 - adds r3, r4, #0 - bl FillBgTilemapBufferRect - ldr r1, _081971E4 - ldr r0, [sp, #0x10] - str r0, [sp] - str r5, [sp, #4] - str r6, [sp, #8] - adds r0, r7, #0 - ldr r2, [sp, #0xc] - adds r3, r4, #0 - bl FillBgTilemapBufferRect - movs r1, #0x87 - lsls r1, r1, #2 - ldr r3, [sp, #0xc] - ldr r0, [sp, #0x10] - adds r2, r3, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r5, [sp] - str r5, [sp, #4] - str r6, [sp, #8] - adds r0, r7, #0 - adds r3, r4, #0 - bl FillBgTilemapBufferRect - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081971D0: .4byte 0x00000215 -_081971D4: .4byte 0x00000216 -_081971D8: .4byte 0x00000217 -_081971DC: .4byte 0x00000219 -_081971E0: .4byte 0x0000021A -_081971E4: .4byte 0x0000021B - thumb_func_end WindowFunc_DrawStandardFrame - - thumb_func_start sub_081971E8 -sub_081971E8: @ 0x081971E8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x30 - adds r6, r0, #0 - adds r5, r2, #0 - ldr r4, [sp, #0x50] - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r2, r1, #0x18 - lsls r5, r5, #0x18 - lsls r0, r3, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x10] - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x14] - ldr r1, _08197544 - lsrs r0, r2, #0x18 - str r0, [sp, #0xc] - movs r0, #0xfd - lsls r0, r0, #0x18 - adds r2, r2, r0 - lsrs r2, r2, #0x18 - str r2, [sp, #0x18] - lsrs r2, r5, #0x18 - mov sl, r2 - movs r0, #0xff - lsls r0, r0, #0x18 - adds r5, r5, r0 - lsrs r5, r5, #0x18 - movs r4, #1 - str r4, [sp] - str r4, [sp, #4] - movs r2, #0xf - mov r8, r2 - str r2, [sp, #8] - adds r0, r6, #0 - ldr r2, [sp, #0x18] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - ldr r0, _08197548 - mov sb, r0 - ldr r0, [sp, #0xc] - subs r0, #2 - lsls r2, r0, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x1c] - str r4, [sp] - str r4, [sp, #4] - mov r2, r8 - str r2, [sp, #8] - adds r0, r6, #0 - mov r1, sb - ldr r2, [sp, #0x1c] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - ldr r1, _0819754C - ldr r0, [sp, #0xc] - subs r0, #1 - lsls r2, r0, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x20] - str r4, [sp] - str r4, [sp, #4] - mov r0, r8 - str r0, [sp, #8] - adds r0, r6, #0 - adds r3, r5, #0 - bl FillBgTilemapBufferRect - movs r1, #0x81 - lsls r1, r1, #2 - ldr r2, [sp, #0x10] - str r2, [sp] - str r4, [sp, #4] - mov r0, r8 - str r0, [sp, #8] - adds r0, r6, #0 - ldr r2, [sp, #0xc] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - ldr r1, _08197550 - ldr r2, [sp, #0xc] - ldr r0, [sp, #0x10] - adds r7, r2, r0 - lsls r2, r7, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x24] - str r4, [sp] - str r4, [sp, #4] - mov r2, r8 - str r2, [sp, #8] - adds r0, r6, #0 - ldr r2, [sp, #0x24] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - adds r0, r7, #1 - lsls r2, r0, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x28] - str r4, [sp] - str r4, [sp, #4] - mov r0, r8 - str r0, [sp, #8] - adds r0, r6, #0 - mov r1, sb - adds r3, r5, #0 - bl FillBgTilemapBufferRect - ldr r1, _08197554 - adds r0, r7, #2 - lsls r2, r0, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x2c] - str r4, [sp] - str r4, [sp, #4] - mov r2, r8 - str r2, [sp, #8] - adds r0, r6, #0 - ldr r2, [sp, #0x2c] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - ldr r7, _08197558 - str r4, [sp] - str r4, [sp, #4] - mov r0, r8 - str r0, [sp, #8] - adds r0, r6, #0 - adds r1, r7, #0 - ldr r2, [sp, #0x18] - mov r3, sl - bl FillBgTilemapBufferRect - ldr r5, _0819755C - str r4, [sp] - str r4, [sp, #4] - mov r2, r8 - str r2, [sp, #8] - adds r0, r6, #0 - adds r1, r5, #0 - ldr r2, [sp, #0x1c] - mov r3, sl - bl FillBgTilemapBufferRect - ldr r1, _08197560 - str r4, [sp] - str r4, [sp, #4] - mov r0, r8 - str r0, [sp, #8] - adds r0, r6, #0 - ldr r2, [sp, #0x20] - mov r3, sl - bl FillBgTilemapBufferRect - ldr r2, [sp, #0x10] - str r2, [sp] - str r4, [sp, #4] - mov r0, r8 - str r0, [sp, #8] - adds r0, r6, #0 - ldr r1, _08197564 - ldr r2, [sp, #0xc] - mov r3, sl - bl FillBgTilemapBufferRect - ldr r1, _08197568 - str r4, [sp] - str r4, [sp, #4] - mov r2, r8 - str r2, [sp, #8] - adds r0, r6, #0 - ldr r2, [sp, #0x24] - mov r3, sl - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - mov r0, r8 - str r0, [sp, #8] - adds r0, r6, #0 - adds r1, r5, #0 - ldr r2, [sp, #0x28] - mov r3, sl - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - mov r2, r8 - str r2, [sp, #8] - adds r0, r6, #0 - ldr r1, _0819756C - ldr r2, [sp, #0x2c] - mov r3, sl - bl FillBgTilemapBufferRect - mov r5, sl - adds r5, #1 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - str r4, [sp] - movs r0, #2 - mov sb, r0 - str r0, [sp, #4] - mov r2, r8 - str r2, [sp, #8] - adds r0, r6, #0 - adds r1, r7, #0 - ldr r2, [sp, #0x18] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - adds r7, #1 - str r4, [sp] - mov r0, sb - str r0, [sp, #4] - mov r2, r8 - str r2, [sp, #8] - adds r0, r6, #0 - adds r1, r7, #0 - ldr r2, [sp, #0x1c] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - ldr r0, [sp, #0x10] - adds r0, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - mov r0, sb - str r0, [sp, #4] - mov r2, r8 - str r2, [sp, #8] - adds r0, r6, #0 - ldr r1, _08197564 - ldr r2, [sp, #0x20] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - str r4, [sp] - mov r0, sb - str r0, [sp, #4] - mov r2, r8 - str r2, [sp, #8] - adds r0, r6, #0 - adds r1, r7, #0 - ldr r2, [sp, #0x28] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - str r4, [sp] - mov r0, sb - str r0, [sp, #4] - mov r2, r8 - str r2, [sp, #8] - adds r0, r6, #0 - ldr r1, _0819756C - ldr r2, [sp, #0x2c] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - ldr r1, _08197570 - ldr r0, [sp, #0x14] - add sl, r0 - mov r5, sl - subs r5, #1 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - str r4, [sp] - str r4, [sp, #4] - mov r2, r8 - str r2, [sp, #8] - adds r0, r6, #0 - ldr r2, [sp, #0x18] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - ldr r0, _08197574 - mov sb, r0 - str r4, [sp] - str r4, [sp, #4] - mov r2, r8 - str r2, [sp, #8] - adds r0, r6, #0 - mov r1, sb - ldr r2, [sp, #0x1c] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - ldr r1, _08197578 - str r4, [sp] - str r4, [sp, #4] - mov r0, r8 - str r0, [sp, #8] - adds r0, r6, #0 - ldr r2, [sp, #0x20] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - ldr r1, _0819757C - str r4, [sp] - str r4, [sp, #4] - mov r2, r8 - str r2, [sp, #8] - adds r0, r6, #0 - ldr r2, [sp, #0xc] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - ldr r1, _08197580 - str r4, [sp] - str r4, [sp, #4] - mov r0, r8 - str r0, [sp, #8] - adds r0, r6, #0 - ldr r2, [sp, #0x24] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - mov r2, r8 - str r2, [sp, #8] - adds r0, r6, #0 - mov r1, sb - ldr r2, [sp, #0x28] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - ldr r1, _08197584 - str r4, [sp] - str r4, [sp, #4] - mov r0, r8 - str r0, [sp, #8] - adds r0, r6, #0 - ldr r2, [sp, #0x2c] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - ldr r1, _08197588 - mov r2, sl - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sl, r2 - str r4, [sp] - str r4, [sp, #4] - mov r0, r8 - str r0, [sp, #8] - adds r0, r6, #0 - ldr r2, [sp, #0x18] - mov r3, sl - bl FillBgTilemapBufferRect - ldr r5, _0819758C - str r4, [sp] - str r4, [sp, #4] - mov r2, r8 - str r2, [sp, #8] - adds r0, r6, #0 - adds r1, r5, #0 - ldr r2, [sp, #0x1c] - mov r3, sl - bl FillBgTilemapBufferRect - ldr r1, _08197590 - str r4, [sp] - str r4, [sp, #4] - mov r0, r8 - str r0, [sp, #8] - adds r0, r6, #0 - ldr r2, [sp, #0x20] - mov r3, sl - bl FillBgTilemapBufferRect - ldr r1, _08197594 - ldr r2, [sp, #0x10] - str r2, [sp] - str r4, [sp, #4] - mov r0, r8 - str r0, [sp, #8] - adds r0, r6, #0 - ldr r2, [sp, #0xc] - mov r3, sl - bl FillBgTilemapBufferRect - ldr r1, _08197598 - str r4, [sp] - str r4, [sp, #4] - mov r2, r8 - str r2, [sp, #8] - adds r0, r6, #0 - ldr r2, [sp, #0x24] - mov r3, sl - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - mov r0, r8 - str r0, [sp, #8] - adds r0, r6, #0 - adds r1, r5, #0 - ldr r2, [sp, #0x28] - mov r3, sl - bl FillBgTilemapBufferRect - ldr r1, _0819759C - str r4, [sp] - str r4, [sp, #4] - mov r2, r8 - str r2, [sp, #8] - adds r0, r6, #0 - ldr r2, [sp, #0x2c] - mov r3, sl - bl FillBgTilemapBufferRect - add sp, #0x30 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08197544: .4byte 0x00000201 -_08197548: .4byte 0x00000202 -_0819754C: .4byte 0x00000203 -_08197550: .4byte 0x00000205 -_08197554: .4byte 0x00000206 -_08197558: .4byte 0x00000207 -_0819755C: .4byte 0x0000020D -_08197560: .4byte 0x0000020B -_08197564: .4byte 0x00000209 -_08197568: .4byte 0x0000060B -_0819756C: .4byte 0x0000020A -_08197570: .4byte 0x00000A07 -_08197574: .4byte 0x00000A0D -_08197578: .4byte 0x00000A0B -_0819757C: .4byte 0x00000A09 -_08197580: .4byte 0x00000E0B -_08197584: .4byte 0x00000A0A -_08197588: .4byte 0x00000A01 -_0819758C: .4byte 0x00000A02 -_08197590: .4byte 0x00000A03 -_08197594: .4byte 0x00000A04 -_08197598: .4byte 0x00000A05 -_0819759C: .4byte 0x00000A06 - thumb_func_end sub_081971E8 - - thumb_func_start WindowFunc_ClearStdWindowAndFrame -WindowFunc_ClearStdWindowAndFrame: @ 0x081975A0 - push {r4, r5, lr} - sub sp, #0xc - adds r4, r1, #0 - adds r5, r2, #0 - ldr r1, [sp, #0x18] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r4, #0x18 - lsls r5, r5, #0x18 - lsls r3, r3, #0x18 - lsls r1, r1, #0x18 - movs r2, #0xff - lsls r2, r2, #0x18 - adds r4, r4, r2 - lsrs r4, r4, #0x18 - adds r5, r5, r2 - lsrs r5, r5, #0x18 - movs r2, #0x80 - lsls r2, r2, #0x12 - adds r3, r3, r2 - lsrs r3, r3, #0x18 - str r3, [sp] - adds r1, r1, r2 - lsrs r1, r1, #0x18 - str r1, [sp, #4] - movs r1, #0xe - str r1, [sp, #8] - movs r1, #0 - adds r2, r4, #0 - adds r3, r5, #0 - bl FillBgTilemapBufferRect - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end WindowFunc_ClearStdWindowAndFrame - - thumb_func_start WindowFunc_ClearDialogWindowAndFrame -WindowFunc_ClearDialogWindowAndFrame: @ 0x081975E8 - push {r4, r5, lr} - sub sp, #0xc - adds r4, r1, #0 - adds r5, r2, #0 - ldr r1, [sp, #0x18] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r4, #0x18 - lsls r5, r5, #0x18 - lsls r3, r3, #0x18 - lsls r1, r1, #0x18 - movs r2, #0xfd - lsls r2, r2, #0x18 - adds r4, r4, r2 - lsrs r4, r4, #0x18 - movs r2, #0xff - lsls r2, r2, #0x18 - adds r5, r5, r2 - lsrs r5, r5, #0x18 - movs r2, #0xc0 - lsls r2, r2, #0x13 - adds r3, r3, r2 - lsrs r3, r3, #0x18 - str r3, [sp] - movs r2, #0x80 - lsls r2, r2, #0x12 - adds r1, r1, r2 - lsrs r1, r1, #0x18 - str r1, [sp, #4] - movs r1, #0xe - str r1, [sp, #8] - movs r1, #0 - adds r2, r4, #0 - adds r3, r5, #0 - bl FillBgTilemapBufferRect - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end WindowFunc_ClearDialogWindowAndFrame - - thumb_func_start SetStandardWindowBorderStyle -SetStandardWindowBorderStyle: @ 0x08197638 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r2, #0x85 - lsls r2, r2, #2 - movs r3, #0xe - bl DrawStdFrameWithCustomTileAndPalette - pop {r0} - bx r0 - thumb_func_end SetStandardWindowBorderStyle - - thumb_func_start sub_08197650 -sub_08197650: @ 0x08197650 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - movs r6, #0x80 - lsls r6, r6, #2 - adds r0, r4, #0 - adds r1, r6, #0 - movs r2, #0xf0 - bl LoadMessageBoxGfx - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - movs r3, #0xf - bl DrawDialogFrameWithCustomTileAndPalette - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08197650 - - thumb_func_start sub_08197680 -sub_08197680: @ 0x08197680 - push {lr} - ldr r0, _08197690 - movs r1, #0xe0 - movs r2, #0x14 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_08197690: .4byte gUnknown_85D7B04 - thumb_func_end sub_08197680 - - thumb_func_start Menu_LoadStdPalAt -Menu_LoadStdPalAt: @ 0x08197694 - push {lr} - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, _081976A8 - movs r2, #0x14 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_081976A8: .4byte gUnknown_85D7B04 - thumb_func_end Menu_LoadStdPalAt - - thumb_func_start sub_081976AC -sub_081976AC: @ 0x081976AC - ldr r0, _081976B0 - bx lr - .align 2, 0 -_081976B0: .4byte gUnknown_85D7B04 - thumb_func_end sub_081976AC - - thumb_func_start sub_081976B4 -sub_081976B4: @ 0x081976B4 - push {lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xf - bls _081976C0 - movs r1, #0 -_081976C0: - ldr r0, _081976CC - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - pop {r1} - bx r1 - .align 2, 0 -_081976CC: .4byte gUnknown_85D7B04 - thumb_func_end sub_081976B4 - - thumb_func_start DisplayItemMessageOnField -DisplayItemMessageOnField: @ 0x081976D0 - push {r4, r5, r6, lr} - sub sp, #0x10 - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_08196F98 - bl GetPlayerTextSpeedDelay - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0x80 - lsls r2, r2, #2 - movs r1, #1 - str r1, [sp] - str r0, [sp, #4] - str r5, [sp, #8] - str r6, [sp, #0xc] - adds r0, r4, #0 - movs r1, #0 - movs r3, #0xf - bl DisplayMessageAndContinueTask - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - add sp, #0x10 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end DisplayItemMessageOnField - - thumb_func_start sub_08197714 -sub_08197714: @ 0x08197714 - push {lr} - sub sp, #0xc - ldr r0, _08197738 - movs r1, #0x85 - lsls r1, r1, #2 - str r1, [sp] - movs r1, #0xe - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl sub_08198C08 - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_08197738: .4byte gUnknown_85D7B38 - thumb_func_end sub_08197714 - - thumb_func_start sub_0819773C -sub_0819773C: @ 0x0819773C - push {lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08197764 - movs r1, #0x85 - lsls r1, r1, #2 - str r1, [sp] - movs r1, #0xe - str r1, [sp, #4] - str r0, [sp, #8] - adds r0, r2, #0 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl sub_08198C08 - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_08197764: .4byte gUnknown_85D7B38 - thumb_func_end sub_0819773C - - thumb_func_start sub_08197768 -sub_08197768: @ 0x08197768 - push {lr} - ldr r0, _08197784 - ldrb r1, [r0] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - bne _0819778C - ldr r0, _08197788 - ldr r0, [r0] - ldrb r0, [r0, #0x14] - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1d - b _0819778E - .align 2, 0 -_08197784: .4byte gUnknown_30030B4 -_08197788: .4byte gUnknown_3005AF0 -_0819778C: - movs r0, #1 -_0819778E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08197768 - - thumb_func_start GetPlayerTextSpeedDelay -GetPlayerTextSpeedDelay: @ 0x08197794 - push {lr} - ldr r0, _081977C0 - ldr r2, [r0] - ldrb r1, [r2, #0x14] - lsls r0, r1, #0x1d - lsrs r0, r0, #0x1d - cmp r0, #2 - bls _081977B0 - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x14] -_081977B0: - bl sub_08197768 - ldr r1, _081977C4 - adds r0, r0, r1 - ldrb r0, [r0] - pop {r1} - bx r1 - .align 2, 0 -_081977C0: .4byte gUnknown_3005AF0 -_081977C4: .4byte gUnknown_85D7B24 - thumb_func_end GetPlayerTextSpeedDelay - - thumb_func_start sub_081977C8 -sub_081977C8: @ 0x081977C8 - push {r4, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r4, _08197808 - ldrb r0, [r4] - cmp r0, #0xff - bne _081977FC - lsls r0, r1, #0x19 - movs r1, #0x80 - lsls r1, r1, #0x12 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - str r0, [sp] - movs r0, #0xf - str r0, [sp, #4] - movs r0, #0xad - lsls r0, r0, #1 - str r0, [sp, #8] - movs r0, #0 - movs r1, #0x17 - movs r2, #1 - movs r3, #6 - bl sub_08198BB4 - strb r0, [r4] -_081977FC: - ldrb r0, [r4] - add sp, #0xc - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08197808: .4byte gUnknown_203CA58 - thumb_func_end sub_081977C8 - - thumb_func_start sub_0819780C -sub_0819780C: @ 0x0819780C - ldr r0, _08197814 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08197814: .4byte gUnknown_203CA58 - thumb_func_end sub_0819780C - - thumb_func_start sub_08197818 -sub_08197818: @ 0x08197818 - push {r4, lr} - ldr r4, _08197830 - ldrb r0, [r4] - cmp r0, #0xff - beq _0819782A - bl RemoveWindow - movs r0, #0xff - strb r0, [r4] -_0819782A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08197830: .4byte gUnknown_203CA58 - thumb_func_end sub_08197818 - - thumb_func_start sub_08197834 -sub_08197834: @ 0x08197834 - movs r0, #0x80 - lsls r0, r0, #2 - bx lr - .align 2, 0 - thumb_func_end sub_08197834 - - thumb_func_start sub_0819783C -sub_0819783C: @ 0x0819783C - movs r0, #0x85 - lsls r0, r0, #2 - bx lr - .align 2, 0 - thumb_func_end sub_0819783C - - thumb_func_start AddMapNamePopUpWindow -AddMapNamePopUpWindow: @ 0x08197844 - push {r4, lr} - sub sp, #0xc - ldr r4, _08197878 - ldrb r0, [r4] - cmp r0, #0xff - bne _0819786C - movs r0, #3 - str r0, [sp] - movs r0, #0xe - str r0, [sp, #4] - movs r0, #0x94 - lsls r0, r0, #1 - str r0, [sp, #8] - movs r0, #0 - movs r1, #1 - movs r2, #1 - movs r3, #0xa - bl sub_08198BB4 - strb r0, [r4] -_0819786C: - ldrb r0, [r4] - add sp, #0xc - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08197878: .4byte gUnknown_203CA59 - thumb_func_end AddMapNamePopUpWindow - - thumb_func_start sub_0819787C -sub_0819787C: @ 0x0819787C - ldr r0, _08197884 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08197884: .4byte gUnknown_203CA59 - thumb_func_end sub_0819787C - - thumb_func_start sub_08197888 -sub_08197888: @ 0x08197888 - push {r4, lr} - ldr r4, _081978A0 - ldrb r0, [r4] - cmp r0, #0xff - beq _0819789A - bl RemoveWindow - movs r0, #0xff - strb r0, [r4] -_0819789A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081978A0: .4byte gUnknown_203CA59 - thumb_func_end sub_08197888 - - thumb_func_start AddTextPrinterWithCallbackForMessage -AddTextPrinterWithCallbackForMessage: @ 0x081978A4 - push {r4, r5, lr} - sub sp, #0x10 - adds r5, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _081978E8 - movs r4, #1 - ands r0, r4 - ldrb r2, [r3] - movs r1, #2 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3] - bl GetPlayerTextSpeedDelay - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r2, _081978EC - str r5, [sp] - movs r0, #2 - str r0, [sp, #4] - str r4, [sp, #8] - movs r0, #3 - str r0, [sp, #0xc] - movs r0, #0 - movs r1, #1 - bl AddTextPrinterParameterized2 - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081978E8: .4byte gUnknown_30030B4 -_081978EC: .4byte gUnknown_2021C7C - thumb_func_end AddTextPrinterWithCallbackForMessage - - thumb_func_start sub_081978F0 -sub_081978F0: @ 0x081978F0 - push {r4, lr} - sub sp, #0xc - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0x20 - str r0, [sp] - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect - cmp r4, #1 - bne _0819791A - movs r0, #0 - bl CopyBgTilemapBufferToVram -_0819791A: - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081978F0 - - thumb_func_start DrawDialogFrameWithCustomTileAndPalette -DrawDialogFrameWithCustomTileAndPalette: @ 0x08197924 - push {r4, r5, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _08197960 - strh r2, [r0] - ldr r0, _08197964 - strb r3, [r0] - ldr r1, _08197968 - adds r0, r5, #0 - bl CallWindowFunction - adds r0, r5, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - adds r0, r5, #0 - bl PutWindowTilemap - cmp r4, #1 - bne _0819795A - adds r0, r5, #0 - movs r1, #3 - bl CopyWindowToVram -_0819795A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08197960: .4byte gUnknown_203CA68 -_08197964: .4byte gUnknown_203CA6A -_08197968: .4byte sub_081979BC - thumb_func_end DrawDialogFrameWithCustomTileAndPalette - - thumb_func_start DrawDialogFrameWithCustomTile -DrawDialogFrameWithCustomTile: @ 0x0819796C - push {r4, r5, r6, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081979B0 - strh r2, [r0] - ldr r5, _081979B4 - adds r0, r6, #0 - movs r1, #5 - bl GetWindowAttribute - strb r0, [r5] - ldr r1, _081979B8 - adds r0, r6, #0 - bl CallWindowFunction - adds r0, r6, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - adds r0, r6, #0 - bl PutWindowTilemap - cmp r4, #1 - bne _081979AA - adds r0, r6, #0 - movs r1, #3 - bl CopyWindowToVram -_081979AA: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081979B0: .4byte gUnknown_203CA68 -_081979B4: .4byte gUnknown_203CA6A -_081979B8: .4byte sub_081979BC - thumb_func_end DrawDialogFrameWithCustomTile - - thumb_func_start sub_081979BC -sub_081979BC: @ 0x081979BC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x30 - mov r8, r0 - adds r5, r2, #0 - ldr r4, [sp, #0x50] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r2, r1, #0x18 - lsls r5, r5, #0x18 - lsls r0, r3, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x10] - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x14] - ldr r1, _08197DD0 - mov sl, r1 - ldrh r1, [r1] - adds r1, #1 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsrs r0, r2, #0x18 - str r0, [sp, #0xc] - movs r0, #0xfd - lsls r0, r0, #0x18 - adds r2, r2, r0 - lsrs r2, r2, #0x18 - str r2, [sp, #0x18] - lsrs r7, r5, #0x18 - movs r2, #0xff - lsls r2, r2, #0x18 - adds r5, r5, r2 - lsrs r5, r5, #0x18 - movs r4, #1 - str r4, [sp] - str r4, [sp, #4] - ldr r0, _08197DD4 - mov sb, r0 - ldrb r0, [r0] - str r0, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x18] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - mov r2, sl - ldrh r1, [r2] - adds r1, #2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, [sp, #0xc] - subs r0, #2 - lsls r2, r0, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x1c] - str r4, [sp] - str r4, [sp, #4] - mov r2, sb - ldrb r0, [r2] - str r0, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x1c] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - mov r0, sl - ldrh r1, [r0] - adds r1, #3 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, [sp, #0xc] - subs r0, #1 - lsls r2, r0, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x20] - str r4, [sp] - str r4, [sp, #4] - mov r2, sb - ldrb r0, [r2] - str r0, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x20] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - mov r0, sl - ldrh r1, [r0] - adds r1, #4 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r2, [sp, #0x10] - str r2, [sp] - str r4, [sp, #4] - mov r2, sb - ldrb r0, [r2] - str r0, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0xc] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - mov r0, sl - ldrh r1, [r0] - adds r1, #5 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r2, [sp, #0xc] - ldr r0, [sp, #0x10] - adds r6, r2, r0 - lsls r2, r6, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x24] - str r4, [sp] - str r4, [sp, #4] - mov r2, sb - ldrb r0, [r2] - str r0, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x24] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - mov r0, sl - ldrh r1, [r0] - adds r1, #2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r6, #1 - lsls r2, r0, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x28] - str r4, [sp] - str r4, [sp, #4] - mov r2, sb - ldrb r0, [r2] - str r0, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x28] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - mov r0, sl - ldrh r1, [r0] - adds r1, #6 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r6, #2 - lsls r2, r0, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x2c] - str r4, [sp] - str r4, [sp, #4] - mov r2, sb - ldrb r0, [r2] - str r0, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x2c] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - mov r0, sl - ldrh r1, [r0] - adds r1, #7 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r4, [sp] - str r4, [sp, #4] - mov r2, sb - ldrb r0, [r2] - str r0, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x18] - adds r3, r7, #0 - bl FillBgTilemapBufferRect - mov r0, sl - ldrh r1, [r0] - adds r1, #0xd - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r4, [sp] - str r4, [sp, #4] - mov r2, sb - ldrb r0, [r2] - str r0, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x1c] - adds r3, r7, #0 - bl FillBgTilemapBufferRect - mov r0, sl - ldrh r1, [r0] - adds r1, #0xb - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r4, [sp] - str r4, [sp, #4] - mov r2, sb - ldrb r0, [r2] - str r0, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x20] - adds r3, r7, #0 - bl FillBgTilemapBufferRect - mov r0, sl - ldrh r1, [r0] - adds r1, #9 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r2, [sp, #0x10] - str r2, [sp] - str r4, [sp, #4] - mov r2, sb - ldrb r0, [r2] - str r0, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0xc] - adds r3, r7, #0 - bl FillBgTilemapBufferRect - ldr r0, _08197DD8 - adds r1, r0, #0 - mov r2, sl - ldrh r2, [r2] - adds r1, r1, r2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r4, [sp] - str r4, [sp, #4] - mov r2, sb - ldrb r0, [r2] - str r0, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x24] - adds r3, r7, #0 - bl FillBgTilemapBufferRect - mov r0, sl - ldrh r1, [r0] - adds r1, #0xd - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r4, [sp] - str r4, [sp, #4] - mov r2, sb - ldrb r0, [r2] - str r0, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x28] - adds r3, r7, #0 - bl FillBgTilemapBufferRect - mov r0, sl - ldrh r1, [r0] - adds r1, #0xa - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r4, [sp] - str r4, [sp, #4] - mov r2, sb - ldrb r0, [r2] - str r0, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x2c] - adds r3, r7, #0 - bl FillBgTilemapBufferRect - mov r0, sl - ldrh r1, [r0] - adds r1, #7 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r5, r7, #1 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - str r4, [sp] - movs r6, #2 - str r6, [sp, #4] - mov r2, sb - ldrb r0, [r2] - str r0, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x18] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - mov r0, sl - ldrh r1, [r0] - adds r1, #8 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r4, [sp] - str r6, [sp, #4] - mov r2, sb - ldrb r0, [r2] - str r0, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x1c] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - mov r0, sl - ldrh r1, [r0] - adds r1, #9 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, [sp, #0x10] - adds r0, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - str r6, [sp, #4] - mov r2, sb - ldrb r0, [r2] - str r0, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x20] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - mov r0, sl - ldrh r1, [r0] - adds r1, #8 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r4, [sp] - str r6, [sp, #4] - mov r2, sb - ldrb r0, [r2] - str r0, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x28] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - mov r0, sl - ldrh r1, [r0] - adds r1, #0xa - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r4, [sp] - str r6, [sp, #4] - mov r2, sb - ldrb r0, [r2] - str r0, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x2c] - adds r3, r5, #0 - bl FillBgTilemapBufferRect - ldr r0, _08197DDC - adds r1, r0, #0 - mov r2, sl - ldrh r2, [r2] - adds r1, r1, r2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, [sp, #0x14] - adds r7, r7, r0 - subs r6, r7, #1 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - str r4, [sp] - str r4, [sp, #4] - mov r2, sb - ldrb r0, [r2] - str r0, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x18] - adds r3, r6, #0 - bl FillBgTilemapBufferRect - ldr r0, _08197DE0 - adds r5, r0, #0 - mov r2, sl - ldrh r2, [r2] - adds r1, r5, r2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r4, [sp] - str r4, [sp, #4] - mov r2, sb - ldrb r0, [r2] - str r0, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x1c] - adds r3, r6, #0 - bl FillBgTilemapBufferRect - ldr r0, _08197DE4 - adds r1, r0, #0 - mov r2, sl - ldrh r2, [r2] - adds r1, r1, r2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r4, [sp] - str r4, [sp, #4] - mov r2, sb - ldrb r0, [r2] - str r0, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x20] - adds r3, r6, #0 - bl FillBgTilemapBufferRect - ldr r0, _08197DE8 - adds r1, r0, #0 - mov r2, sl - ldrh r2, [r2] - adds r1, r1, r2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r4, [sp] - str r4, [sp, #4] - mov r2, sb - ldrb r0, [r2] - str r0, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0xc] - adds r3, r6, #0 - bl FillBgTilemapBufferRect - ldr r0, _08197DEC - adds r1, r0, #0 - mov r2, sl - ldrh r2, [r2] - adds r1, r1, r2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r4, [sp] - str r4, [sp, #4] - mov r2, sb - ldrb r0, [r2] - str r0, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x24] - adds r3, r6, #0 - bl FillBgTilemapBufferRect - mov r0, sl - ldrh r0, [r0] - adds r5, r5, r0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - str r4, [sp] - str r4, [sp, #4] - mov r1, sb - ldrb r0, [r1] - str r0, [sp, #8] - mov r0, r8 - adds r1, r5, #0 - ldr r2, [sp, #0x28] - adds r3, r6, #0 - bl FillBgTilemapBufferRect - ldr r2, _08197DF0 - adds r1, r2, #0 - mov r0, sl - ldrh r0, [r0] - adds r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r4, [sp] - str r4, [sp, #4] - mov r2, sb - ldrb r0, [r2] - str r0, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x2c] - adds r3, r6, #0 - bl FillBgTilemapBufferRect - ldr r0, _08197DF4 - adds r1, r0, #0 - mov r2, sl - ldrh r2, [r2] - adds r1, r1, r2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r3, r7, #0x18 - lsrs r6, r3, #0x18 - str r4, [sp] - str r4, [sp, #4] - mov r2, sb - ldrb r0, [r2] - str r0, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x18] - adds r3, r6, #0 - bl FillBgTilemapBufferRect - ldr r0, _08197DF8 - adds r5, r0, #0 - mov r2, sl - ldrh r2, [r2] - adds r1, r5, r2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r4, [sp] - str r4, [sp, #4] - mov r2, sb - ldrb r0, [r2] - str r0, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x1c] - adds r3, r6, #0 - bl FillBgTilemapBufferRect - ldr r0, _08197DFC - adds r1, r0, #0 - mov r2, sl - ldrh r2, [r2] - adds r1, r1, r2 - b _08197E00 - .align 2, 0 -_08197DD0: .4byte gUnknown_203CA68 -_08197DD4: .4byte gUnknown_203CA6A -_08197DD8: .4byte 0x0000040B -_08197DDC: .4byte 0x00000807 -_08197DE0: .4byte 0x0000080D -_08197DE4: .4byte 0x0000080B -_08197DE8: .4byte 0x00000809 -_08197DEC: .4byte 0x00000C0B -_08197DF0: .4byte 0x0000080A -_08197DF4: .4byte 0x00000801 -_08197DF8: .4byte 0x00000802 -_08197DFC: .4byte 0x00000803 -_08197E00: - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r4, [sp] - str r4, [sp, #4] - mov r2, sb - ldrb r0, [r2] - str r0, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x20] - adds r3, r6, #0 - bl FillBgTilemapBufferRect - ldr r0, _08197EB0 - adds r1, r0, #0 - mov r2, sl - ldrh r2, [r2] - adds r1, r1, r2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, [sp, #0x10] - str r0, [sp] - str r4, [sp, #4] - mov r2, sb - ldrb r0, [r2] - str r0, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0xc] - adds r3, r6, #0 - bl FillBgTilemapBufferRect - ldr r0, _08197EB4 - adds r1, r0, #0 - mov r2, sl - ldrh r2, [r2] - adds r1, r1, r2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r4, [sp] - str r4, [sp, #4] - mov r2, sb - ldrb r0, [r2] - str r0, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x24] - adds r3, r6, #0 - bl FillBgTilemapBufferRect - mov r0, sl - ldrh r0, [r0] - adds r5, r5, r0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - str r4, [sp] - str r4, [sp, #4] - mov r1, sb - ldrb r0, [r1] - str r0, [sp, #8] - mov r0, r8 - adds r1, r5, #0 - ldr r2, [sp, #0x28] - adds r3, r6, #0 - bl FillBgTilemapBufferRect - ldr r2, _08197EB8 - adds r1, r2, #0 - mov r0, sl - ldrh r0, [r0] - adds r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r4, [sp] - str r4, [sp, #4] - mov r2, sb - ldrb r0, [r2] - str r0, [sp, #8] - mov r0, r8 - ldr r2, [sp, #0x2c] - adds r3, r6, #0 - bl FillBgTilemapBufferRect - add sp, #0x30 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08197EB0: .4byte 0x00000804 -_08197EB4: .4byte 0x00000805 -_08197EB8: .4byte 0x00000806 - thumb_func_end sub_081979BC - - thumb_func_start sub_08197EBC -sub_08197EBC: @ 0x08197EBC - push {r4, r5, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _08197EF0 - adds r0, r5, #0 - bl CallWindowFunction - adds r0, r5, #0 - movs r1, #0 - bl FillWindowPixelBuffer - adds r0, r5, #0 - bl ClearWindowTilemap - cmp r4, #1 - bne _08197EEA - adds r0, r5, #0 - movs r1, #3 - bl CopyWindowToVram -_08197EEA: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08197EF0: .4byte WindowFunc_ClearDialogWindowAndFrameNullPalette - thumb_func_end sub_08197EBC - - thumb_func_start WindowFunc_ClearDialogWindowAndFrameNullPalette -WindowFunc_ClearDialogWindowAndFrameNullPalette: @ 0x08197EF4 - push {r4, r5, lr} - sub sp, #0xc - adds r4, r1, #0 - adds r5, r2, #0 - ldr r1, [sp, #0x18] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r4, #0x18 - lsls r5, r5, #0x18 - lsls r3, r3, #0x18 - lsls r1, r1, #0x18 - movs r2, #0xfd - lsls r2, r2, #0x18 - adds r4, r4, r2 - lsrs r4, r4, #0x18 - movs r2, #0xff - lsls r2, r2, #0x18 - adds r5, r5, r2 - lsrs r5, r5, #0x18 - movs r2, #0xc0 - lsls r2, r2, #0x13 - adds r3, r3, r2 - lsrs r3, r3, #0x18 - str r3, [sp] - movs r2, #0x80 - lsls r2, r2, #0x12 - adds r1, r1, r2 - lsrs r1, r1, #0x18 - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - adds r2, r4, #0 - adds r3, r5, #0 - bl FillBgTilemapBufferRect - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WindowFunc_ClearDialogWindowAndFrameNullPalette - - thumb_func_start DrawStdFrameWithCustomTileAndPalette -DrawStdFrameWithCustomTileAndPalette: @ 0x08197F44 - push {r4, r5, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _08197F80 - strh r2, [r0] - ldr r0, _08197F84 - strb r3, [r0] - ldr r1, _08197F88 - adds r0, r5, #0 - bl CallWindowFunction - adds r0, r5, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - adds r0, r5, #0 - bl PutWindowTilemap - cmp r4, #1 - bne _08197F7A - adds r0, r5, #0 - movs r1, #3 - bl CopyWindowToVram -_08197F7A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08197F80: .4byte gUnknown_203CA68 -_08197F84: .4byte gUnknown_203CA6A -_08197F88: .4byte WindowFunc_DrawStdFrameWithCustomTileAndPalette - thumb_func_end DrawStdFrameWithCustomTileAndPalette - - thumb_func_start sub_08197F8C -sub_08197F8C: @ 0x08197F8C - push {r4, r5, r6, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _08197FD0 - strh r2, [r0] - ldr r5, _08197FD4 - adds r0, r6, #0 - movs r1, #5 - bl GetWindowAttribute - strb r0, [r5] - ldr r1, _08197FD8 - adds r0, r6, #0 - bl CallWindowFunction - adds r0, r6, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - adds r0, r6, #0 - bl PutWindowTilemap - cmp r4, #1 - bne _08197FCA - adds r0, r6, #0 - movs r1, #3 - bl CopyWindowToVram -_08197FCA: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08197FD0: .4byte gUnknown_203CA68 -_08197FD4: .4byte gUnknown_203CA6A -_08197FD8: .4byte WindowFunc_DrawStdFrameWithCustomTileAndPalette - thumb_func_end sub_08197F8C - - thumb_func_start WindowFunc_DrawStdFrameWithCustomTileAndPalette -WindowFunc_DrawStdFrameWithCustomTileAndPalette: @ 0x08197FDC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - mov sb, r0 - adds r6, r1, #0 - adds r4, r2, #0 - ldr r0, [sp, #0x38] - mov r1, sb - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sb, r1 - lsls r6, r6, #0x18 - lsls r4, r4, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r3, [sp, #0x10] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x14] - ldr r2, _0819812C - ldrh r1, [r2] - lsrs r0, r6, #0x18 - str r0, [sp, #0xc] - movs r2, #0xff - lsls r2, r2, #0x18 - adds r6, r6, r2 - lsrs r6, r6, #0x18 - lsrs r0, r4, #0x18 - mov r8, r0 - adds r4, r4, r2 - lsrs r4, r4, #0x18 - movs r5, #1 - str r5, [sp] - str r5, [sp, #4] - ldr r7, _08198130 - ldrb r0, [r7] - str r0, [sp, #8] - mov r0, sb - adds r2, r6, #0 - adds r3, r4, #0 - bl FillBgTilemapBufferRect - ldr r2, _0819812C - ldrh r1, [r2] - adds r1, #1 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, [sp, #0x10] - str r0, [sp] - str r5, [sp, #4] - ldrb r0, [r7] - str r0, [sp, #8] - mov r0, sb - ldr r2, [sp, #0xc] - adds r3, r4, #0 - bl FillBgTilemapBufferRect - ldr r2, _0819812C - ldrh r1, [r2] - adds r1, #2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, [sp, #0xc] - ldr r2, [sp, #0x10] - adds r0, r0, r2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - str r5, [sp] - str r5, [sp, #4] - ldrb r0, [r7] - str r0, [sp, #8] - mov r0, sb - mov r2, sl - adds r3, r4, #0 - bl FillBgTilemapBufferRect - ldr r0, _0819812C - ldrh r1, [r0] - adds r1, #3 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r5, [sp] - ldr r2, [sp, #0x14] - str r2, [sp, #4] - ldrb r0, [r7] - str r0, [sp, #8] - mov r0, sb - adds r2, r6, #0 - mov r3, r8 - bl FillBgTilemapBufferRect - ldr r0, _0819812C - ldrh r1, [r0] - adds r1, #5 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r5, [sp] - ldr r2, [sp, #0x14] - str r2, [sp, #4] - ldrb r0, [r7] - str r0, [sp, #8] - mov r0, sb - mov r2, sl - mov r3, r8 - bl FillBgTilemapBufferRect - ldr r0, _0819812C - ldrh r1, [r0] - adds r1, #6 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r2, [sp, #0x14] - add r8, r2 - mov r0, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - str r5, [sp] - str r5, [sp, #4] - ldrb r0, [r7] - str r0, [sp, #8] - mov r0, sb - adds r2, r6, #0 - mov r3, r8 - bl FillBgTilemapBufferRect - ldr r2, _0819812C - ldrh r1, [r2] - adds r1, #7 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, [sp, #0x10] - str r0, [sp] - str r5, [sp, #4] - ldrb r0, [r7] - str r0, [sp, #8] - mov r0, sb - ldr r2, [sp, #0xc] - mov r3, r8 - bl FillBgTilemapBufferRect - ldr r2, _0819812C - ldrh r1, [r2] - adds r1, #8 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r5, [sp] - str r5, [sp, #4] - ldrb r0, [r7] - str r0, [sp, #8] - mov r0, sb - mov r2, sl - mov r3, r8 - bl FillBgTilemapBufferRect - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0819812C: .4byte gUnknown_203CA68 -_08198130: .4byte gUnknown_203CA6A - thumb_func_end WindowFunc_DrawStdFrameWithCustomTileAndPalette - - thumb_func_start sub_08198134 -sub_08198134: @ 0x08198134 - push {r4, r5, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _08198168 - adds r0, r5, #0 - bl CallWindowFunction - adds r0, r5, #0 - movs r1, #0 - bl FillWindowPixelBuffer - adds r0, r5, #0 - bl ClearWindowTilemap - cmp r4, #1 - bne _08198162 - adds r0, r5, #0 - movs r1, #3 - bl CopyWindowToVram -_08198162: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08198168: .4byte WindowFunc_ClearStdWindowAndFrameToTransparent - thumb_func_end sub_08198134 - - thumb_func_start WindowFunc_ClearStdWindowAndFrameToTransparent -WindowFunc_ClearStdWindowAndFrameToTransparent: @ 0x0819816C - push {r4, r5, lr} - sub sp, #0xc - adds r4, r1, #0 - adds r5, r2, #0 - ldr r1, [sp, #0x18] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r4, #0x18 - lsls r5, r5, #0x18 - lsls r3, r3, #0x18 - lsls r1, r1, #0x18 - movs r2, #0xff - lsls r2, r2, #0x18 - adds r4, r4, r2 - lsrs r4, r4, #0x18 - adds r5, r5, r2 - lsrs r5, r5, #0x18 - movs r2, #0x80 - lsls r2, r2, #0x12 - adds r3, r3, r2 - lsrs r3, r3, #0x18 - str r3, [sp] - adds r1, r1, r2 - lsrs r1, r1, #0x18 - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - adds r2, r4, #0 - adds r3, r5, #0 - bl FillBgTilemapBufferRect - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end WindowFunc_ClearStdWindowAndFrameToTransparent - - thumb_func_start sub_081981B4 -sub_081981B4: @ 0x081981B4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - ldr r4, [sp, #0x20] - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r8, r2 - lsls r3, r3, #0x18 - lsrs r5, r3, #0x18 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - mov r0, sp - movs r1, #0 - movs r2, #8 - bl memset - cmp r6, #3 - bls _081981EA - movs r1, #0 - mov r0, sp - strb r1, [r0] - b _081981EE -_081981EA: - mov r0, sp - strb r6, [r0] -_081981EE: - mov r1, sp - mov r0, r8 - strb r0, [r1, #2] - movs r0, #2 - strb r0, [r1, #4] - movs r0, #0x1e - subs r0, r0, r7 - strb r0, [r1, #1] - strb r7, [r1, #3] - strb r5, [r1, #5] - strh r4, [r1, #6] - ldr r4, _08198218 - mov r0, sp - bl AddWindow - strb r0, [r4] - cmp r5, #0xf - bls _0819821C - movs r5, #0xf0 - b _08198220 - .align 2, 0 -_08198218: .4byte gUnknown_203CA6C -_0819821C: - lsls r0, r5, #0x1c - lsrs r5, r0, #0x18 -_08198220: - ldr r0, _0819823C - adds r1, r5, #0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _08198240 - ldrb r0, [r0] - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0819823C: .4byte gUnknown_85D7B48 -_08198240: .4byte gUnknown_203CA6C - thumb_func_end sub_081981B4 - - thumb_func_start sub_08198244 -sub_08198244: @ 0x08198244 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - adds r6, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - movs r5, #0 - ldr r4, _081982E0 - ldrb r0, [r4] - cmp r0, #0xff - beq _081982D4 - bl PutWindowTilemap - ldrb r0, [r4] - movs r1, #0xff - bl FillWindowPixelBuffer - adds r0, r6, #0 - bl StringLength - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r1, r4, #0 - lsls r7, r7, #0x18 - cmp r5, r4 - bhs _08198298 -_08198280: - adds r0, r6, r5 - ldrb r0, [r0] - cmp r0, #0xf8 - bne _0819828E - subs r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_0819828E: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, r1 - blo _08198280 -_08198298: - lsls r0, r4, #0x13 - lsrs r4, r0, #0x10 - ldr r5, _081982E0 - ldrb r0, [r5] - movs r1, #1 - bl GetWindowAttribute - movs r2, #0xec - mov r1, r8 - subs r2, r2, r1 - lsls r0, r0, #3 - subs r2, r2, r0 - subs r2, r2, r4 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r0, [r5] - ldr r1, _081982E4 - str r1, [sp] - movs r1, #0 - str r1, [sp, #4] - str r6, [sp, #8] - movs r3, #1 - bl AddTextPrinterParameterized3 - cmp r7, #0 - beq _081982D4 - ldrb r0, [r5] - movs r1, #3 - bl CopyWindowToVram -_081982D4: - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081982E0: .4byte gUnknown_203CA6C -_081982E4: .4byte gUnknown_85D7B68 - thumb_func_end sub_08198244 - - thumb_func_start sub_081982E8 -sub_081982E8: @ 0x081982E8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x18 - mov sb, r0 - adds r6, r1, #0 - ldr r0, [sp, #0x34] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r8, r3 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r5, #0 - ldr r0, _0819831C - ldrb r0, [r0] - cmp r0, #0xff - beq _081983C8 - cmp r2, #0 - beq _08198320 - add r0, sp, #0x14 - strb r5, [r0] - adds r1, r0, #0 - b _08198326 - .align 2, 0 -_0819831C: .4byte gUnknown_203CA6C -_08198320: - add r1, sp, #0x14 - movs r0, #0xf - strb r0, [r1] -_08198326: - movs r0, #1 - strb r0, [r1, #1] - movs r0, #2 - strb r0, [r1, #2] - ldr r4, _081983D8 - ldrb r0, [r4] - bl PutWindowTilemap - ldrb r0, [r4] - movs r1, #0xff - bl FillWindowPixelBuffer - lsls r7, r7, #0x18 - cmp r6, #0 - beq _0819839E - adds r0, r6, #0 - bl StringLength - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r2, r5, #0 - movs r1, #0 - cmp r1, r5 - bhs _0819836E -_08198356: - adds r0, r6, r1 - ldrb r0, [r0] - cmp r0, #0xf8 - bne _08198364 - subs r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_08198364: - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, r2 - blo _08198356 -_0819836E: - lsls r0, r5, #0x13 - lsrs r5, r0, #0x10 - ldr r4, _081983D8 - ldrb r0, [r4] - movs r1, #1 - bl GetWindowAttribute - movs r2, #0xec - mov r1, r8 - subs r2, r2, r1 - lsls r0, r0, #3 - subs r2, r2, r0 - subs r2, r2, r5 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r0, [r4] - add r1, sp, #0x14 - str r1, [sp] - movs r1, #0 - str r1, [sp, #4] - str r6, [sp, #8] - movs r3, #1 - bl AddTextPrinterParameterized3 -_0819839E: - ldr r4, _081983D8 - ldrb r0, [r4] - movs r1, #0 - str r1, [sp] - str r1, [sp, #4] - add r2, sp, #0x14 - str r2, [sp, #8] - str r1, [sp, #0xc] - mov r1, sb - str r1, [sp, #0x10] - movs r1, #1 - movs r2, #4 - movs r3, #1 - bl AddTextPrinterParameterized4 - cmp r7, #0 - beq _081983C8 - ldrb r0, [r4] - movs r1, #3 - bl CopyWindowToVram -_081983C8: - add sp, #0x18 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081983D8: .4byte gUnknown_203CA6C - thumb_func_end sub_081982E8 - - thumb_func_start sub_081983DC -sub_081983DC: @ 0x081983DC - push {lr} - ldr r1, _081983F0 - ldrb r0, [r1] - cmp r0, #0xff - beq _081983EC - movs r1, #3 - bl CopyWindowToVram -_081983EC: - pop {r0} - bx r0 - .align 2, 0 -_081983F0: .4byte gUnknown_203CA6C - thumb_func_end sub_081983DC - - thumb_func_start sub_081983F4 -sub_081983F4: @ 0x081983F4 - push {r4, lr} - ldr r4, _08198414 - ldrb r0, [r4] - cmp r0, #0xff - beq _0819840C - movs r1, #0xff - bl FillWindowPixelBuffer - ldrb r0, [r4] - movs r1, #3 - bl CopyWindowToVram -_0819840C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08198414: .4byte gUnknown_203CA6C - thumb_func_end sub_081983F4 - - thumb_func_start sub_08198418 -sub_08198418: @ 0x08198418 - push {r4, lr} - ldr r4, _08198448 - ldrb r0, [r4] - cmp r0, #0xff - beq _08198440 - movs r1, #0 - bl FillWindowPixelBuffer - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - movs r1, #3 - bl CopyWindowToVram - ldrb r0, [r4] - bl RemoveWindow - movs r0, #0xff - strb r0, [r4] -_08198440: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08198448: .4byte gUnknown_203CA6C - thumb_func_end sub_08198418 - - thumb_func_start sub_0819844C -sub_0819844C: @ 0x0819844C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r4, [sp, #0x18] - mov r8, r4 - ldr r4, [sp, #0x1c] - ldr r5, [sp, #0x20] - ldr r6, [sp, #0x24] - mov ip, r6 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r7, r5, #0x18 - ldr r5, _08198490 - movs r6, #0 - strb r2, [r5] - strb r3, [r5, #1] - strb r6, [r5, #3] - subs r4, #1 - strb r4, [r5, #4] - strb r0, [r5, #5] - strb r1, [r5, #6] - mov r0, r8 - strb r0, [r5, #8] - mov r4, ip - strb r4, [r5, #0xb] - cmp r7, #0 - blt _0819848C - movs r0, #4 - ldrsb r0, [r5, r0] - cmp r7, r0 - ble _08198494 -_0819848C: - strb r6, [r5, #2] - b _08198496 - .align 2, 0 -_08198490: .4byte gUnknown_203CA5C -_08198494: - strb r7, [r5, #2] -_08198496: - movs r0, #0 - bl Menu_MoveCursor - ldr r0, _081984AC - ldrb r0, [r0, #2] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081984AC: .4byte gUnknown_203CA5C - thumb_func_end sub_0819844C - - thumb_func_start sub_081984B0 -sub_081984B0: @ 0x081984B0 - push {r4, r5, r6, lr} - sub sp, #0x10 - ldr r4, [sp, #0x20] - ldr r5, [sp, #0x24] - ldr r6, [sp, #0x28] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - str r4, [sp] - str r5, [sp, #4] - str r6, [sp, #8] - movs r4, #0 - str r4, [sp, #0xc] - bl sub_0819844C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #0x10 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_081984B0 - - thumb_func_start sub_081984F0 -sub_081984F0: @ 0x081984F0 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0x14 - mov r8, r0 - adds r6, r1, #0 - ldr r4, [sp, #0x28] - ldr r5, [sp, #0x2c] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - adds r0, r6, #0 - movs r1, #1 - str r2, [sp, #0xc] - str r3, [sp, #0x10] - bl sub_0800629C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - mov r0, r8 - adds r1, r6, #0 - ldr r2, [sp, #0xc] - ldr r3, [sp, #0x10] - bl sub_081984B0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_081984F0 - - thumb_func_start sub_0819854C -sub_0819854C: @ 0x0819854C - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #0x10 - adds r6, r0, #0 - mov r8, r1 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov r0, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r1, _081985E0 - add r0, sp, #0xc - movs r2, #2 - bl memcpy - ldr r4, _081985E4 - ldrb r0, [r4, #6] - movs r1, #0 - bl sub_0800629C - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldrb r0, [r4, #6] - movs r1, #1 - bl sub_0800629C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r4, #5] - mov sb, r1 - ldrb r2, [r4] - ldrb r1, [r4, #8] - adds r3, r1, #0 - muls r3, r6, r3 - ldrb r1, [r4, #1] - adds r3, r3, r1 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - str r5, [sp] - str r0, [sp, #4] - mov r0, sb - movs r1, #0x11 - bl sub_08003A34 - ldrb r0, [r4, #5] - ldrb r1, [r4, #6] - ldrb r3, [r4] - ldrb r2, [r4, #8] - mov r5, r8 - muls r5, r2, r5 - adds r2, r5, #0 - ldrb r4, [r4, #1] - adds r2, r2, r4 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp] - movs r2, #0 - str r2, [sp, #4] - str r2, [sp, #8] - add r2, sp, #0xc - bl AddTextPrinterParameterized - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081985E0: .4byte gUnknown_85D7B6C -_081985E4: .4byte gUnknown_203CA5C - thumb_func_end sub_0819854C - - thumb_func_start Menu_MoveCursor -Menu_MoveCursor: @ 0x081985E8 - push {r4, r5, lr} - ldr r1, _08198608 - ldrb r5, [r1, #2] - movs r2, #2 - ldrsb r2, [r1, r2] - lsls r0, r0, #0x18 - asrs r3, r0, #0x18 - adds r2, r2, r3 - movs r0, #3 - ldrsb r0, [r1, r0] - adds r4, r1, #0 - cmp r2, r0 - bge _0819860C - ldrb r0, [r4, #4] - b _0819861A - .align 2, 0 -_08198608: .4byte gUnknown_203CA5C -_0819860C: - movs r0, #4 - ldrsb r0, [r4, r0] - cmp r2, r0 - ble _08198618 - ldrb r0, [r4, #3] - b _0819861A -_08198618: - adds r0, r3, r5 -_0819861A: - strb r0, [r4, #2] - ldrb r1, [r4, #2] - adds r0, r5, #0 - bl sub_0819854C - ldrb r0, [r4, #2] - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end Menu_MoveCursor - - thumb_func_start Menu_MoveCursorNoWrapAround -Menu_MoveCursorNoWrapAround: @ 0x0819862C - push {r4, r5, lr} - ldr r1, _0819864C - ldrb r5, [r1, #2] - movs r2, #2 - ldrsb r2, [r1, r2] - lsls r0, r0, #0x18 - asrs r3, r0, #0x18 - adds r2, r2, r3 - movs r0, #3 - ldrsb r0, [r1, r0] - adds r4, r1, #0 - cmp r2, r0 - bge _08198650 - ldrb r0, [r4, #3] - b _0819865E - .align 2, 0 -_0819864C: .4byte gUnknown_203CA5C -_08198650: - movs r0, #4 - ldrsb r0, [r4, r0] - cmp r2, r0 - ble _0819865C - ldrb r0, [r4, #4] - b _0819865E -_0819865C: - adds r0, r3, r5 -_0819865E: - strb r0, [r4, #2] - ldrb r1, [r4, #2] - adds r0, r5, #0 - bl sub_0819854C - ldrb r0, [r4, #2] - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end Menu_MoveCursorNoWrapAround - - thumb_func_start Menu_GetCursorPos -Menu_GetCursorPos: @ 0x08198670 - ldr r0, _08198678 - ldrb r0, [r0, #2] - bx lr - .align 2, 0 -_08198678: .4byte gUnknown_203CA5C - thumb_func_end Menu_GetCursorPos - - thumb_func_start Menu_ProcessInput -Menu_ProcessInput: @ 0x0819867C - push {r4, lr} - ldr r0, _081986A0 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081986A8 - ldr r4, _081986A4 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _08198698 - movs r0, #5 - bl sub_080A306C -_08198698: - movs r0, #2 - ldrsb r0, [r4, r0] - b _081986E2 - .align 2, 0 -_081986A0: .4byte gUnknown_3002360 -_081986A4: .4byte gUnknown_203CA5C -_081986A8: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081986B6 - movs r0, #1 - rsbs r0, r0, #0 - b _081986E2 -_081986B6: - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _081986CA - movs r0, #5 - bl sub_080A306C - movs r0, #1 - rsbs r0, r0, #0 - b _081986DA -_081986CA: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _081986DE - movs r0, #5 - bl sub_080A306C - movs r0, #1 -_081986DA: - bl Menu_MoveCursor -_081986DE: - movs r0, #2 - rsbs r0, r0, #0 -_081986E2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end Menu_ProcessInput - - thumb_func_start Menu_ProcessInputNoWrap -Menu_ProcessInputNoWrap: @ 0x081986E8 - push {r4, r5, r6, lr} - ldr r4, _08198710 - ldrb r5, [r4, #2] - adds r6, r5, #0 - ldr r0, _08198714 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08198718 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _08198708 - movs r0, #5 - bl sub_080A306C -_08198708: - movs r0, #2 - ldrsb r0, [r4, r0] - b _08198760 - .align 2, 0 -_08198710: .4byte gUnknown_203CA5C -_08198714: .4byte gUnknown_3002360 -_08198718: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08198726 - movs r0, #1 - rsbs r0, r0, #0 - b _08198760 -_08198726: - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08198740 - movs r0, #1 - rsbs r0, r0, #0 - bl Menu_MoveCursorNoWrapAround - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r5, r0 - beq _0819875C - b _08198756 -_08198740: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0819875C - movs r0, #1 - bl Menu_MoveCursorNoWrapAround - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r6, r0 - beq _0819875C -_08198756: - movs r0, #5 - bl sub_080A306C -_0819875C: - movs r0, #2 - rsbs r0, r0, #0 -_08198760: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end Menu_ProcessInputNoWrap - - thumb_func_start ProcessMenuInput_other -ProcessMenuInput_other: @ 0x08198768 - push {r4, lr} - ldr r2, _0819878C - ldrh r1, [r2, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08198794 - ldr r4, _08198790 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _08198784 - movs r0, #5 - bl sub_080A306C -_08198784: - movs r0, #2 - ldrsb r0, [r4, r0] - b _081987CC - .align 2, 0 -_0819878C: .4byte gUnknown_3002360 -_08198790: .4byte gUnknown_203CA5C -_08198794: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081987A2 - movs r0, #1 - rsbs r0, r0, #0 - b _081987CC -_081987A2: - ldrh r0, [r2, #0x30] - movs r1, #0xf0 - ands r1, r0 - cmp r1, #0x40 - bne _081987B8 - movs r0, #5 - bl sub_080A306C - movs r0, #1 - rsbs r0, r0, #0 - b _081987C4 -_081987B8: - cmp r1, #0x80 - bne _081987C8 - movs r0, #5 - bl sub_080A306C - movs r0, #1 -_081987C4: - bl Menu_MoveCursor -_081987C8: - movs r0, #2 - rsbs r0, r0, #0 -_081987CC: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ProcessMenuInput_other - - thumb_func_start Menu_ProcessInputNoWrapAround_other -Menu_ProcessInputNoWrapAround_other: @ 0x081987D4 - push {r4, r5, r6, lr} - ldr r4, _081987FC - ldrb r5, [r4, #2] - adds r6, r5, #0 - ldr r2, _08198800 - ldrh r1, [r2, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08198804 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _081987F4 - movs r0, #5 - bl sub_080A306C -_081987F4: - movs r0, #2 - ldrsb r0, [r4, r0] - b _0819884A - .align 2, 0 -_081987FC: .4byte gUnknown_203CA5C -_08198800: .4byte gUnknown_3002360 -_08198804: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08198812 - movs r0, #1 - rsbs r0, r0, #0 - b _0819884A -_08198812: - ldrh r0, [r2, #0x30] - movs r1, #0xf0 - ands r1, r0 - cmp r1, #0x40 - bne _0819882E - movs r0, #1 - rsbs r0, r0, #0 - bl Menu_MoveCursorNoWrapAround - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r5, r0 - beq _08198846 - b _08198840 -_0819882E: - cmp r1, #0x80 - bne _08198846 - movs r0, #1 - bl Menu_MoveCursorNoWrapAround - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r6, r0 - beq _08198846 -_08198840: - movs r0, #5 - bl sub_080A306C -_08198846: - movs r0, #2 - rsbs r0, r0, #0 -_0819884A: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end Menu_ProcessInputNoWrapAround_other - - thumb_func_start PrintTextArray -PrintTextArray: @ 0x08198850 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - ldr r4, [sp, #0x2c] - ldr r5, [sp, #0x30] - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sl, r1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sb, r2 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r8, r3 - lsls r4, r4, #0x18 - lsrs r7, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - movs r4, #0 - cmp r4, r5 - bhs _081988B4 -_08198884: - lsls r0, r4, #3 - ldr r1, [sp, #0x34] - adds r0, r0, r1 - ldr r2, [r0] - adds r0, r7, #0 - muls r0, r4, r0 - add r0, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - adds r0, r6, #0 - mov r1, sl - mov r3, sb - bl AddTextPrinterParameterized - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r5 - blo _08198884 -_081988B4: - adds r0, r6, #0 - movs r1, #2 - bl CopyWindowToVram - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end PrintTextArray - - thumb_func_start sub_081988CC -sub_081988CC: @ 0x081988CC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - ldr r4, [sp, #0x40] - ldr r5, [sp, #0x44] - ldr r6, [sp, #0x4c] - ldr r7, [sp, #0x50] - mov r8, r7 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp, #0x14] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x18] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r3, [sp, #0x1c] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov sl, r4 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov sb, r6 - mov r0, r8 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r4, #0 - cmp r4, r5 - bhs _0819894C -_08198914: - lsls r0, r4, #3 - ldr r1, [sp, #0x48] - adds r0, r0, r1 - ldr r2, [r0] - mov r0, sl - muls r0, r4, r0 - ldr r1, [sp, #0x1c] - adds r0, r1, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - mov r0, sb - str r0, [sp, #0xc] - str r6, [sp, #0x10] - adds r0, r7, #0 - ldr r1, [sp, #0x14] - ldr r3, [sp, #0x18] - bl AddTextPrinterParameterized5 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r5 - blo _08198914 -_0819894C: - adds r0, r7, #0 - movs r1, #2 - bl CopyWindowToVram - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_081988CC - - thumb_func_start sub_08198964 -sub_08198964: @ 0x08198964 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - mov r8, r0 - adds r6, r1, #0 - adds r4, r2, #0 - adds r5, r3, #0 - ldr r7, [sp, #0x24] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - adds r0, r6, #0 - movs r1, #0 - bl GetFontAttribute - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r4, [sp] - str r5, [sp, #4] - str r7, [sp, #8] - mov r0, r8 - adds r1, r6, #0 - movs r3, #2 - bl PrintTextArray - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08198964 - - thumb_func_start AddItemMenuActionTextPrinters -AddItemMenuActionTextPrinters: @ 0x081989B4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - adds r6, r1, #0 - mov r8, r2 - ldr r1, [sp, #0x38] - mov sb, r1 - ldr r1, [sp, #0x3c] - ldr r2, [sp, #0x40] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x10] - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov r4, r8 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r8, r4 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r3, [sp, #0x14] - mov r0, sb - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sl, r1 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - mov r0, sp - ldrb r1, [r0, #0x10] - strb r1, [r0, #4] - strb r6, [r0, #5] - adds r0, r6, #0 - movs r1, #5 - bl GetFontAttribute - mov r3, sp - lsls r0, r0, #4 - ldrb r2, [r3, #0xc] - movs r5, #0xf - adds r1, r5, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0xc] - adds r0, r6, #0 - movs r1, #6 - bl GetFontAttribute - mov r3, sp - adds r1, r5, #0 - ands r1, r0 - ldrb r2, [r3, #0xd] - movs r4, #0x10 - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0xd] - adds r0, r6, #0 - movs r1, #7 - bl GetFontAttribute - mov r3, sp - lsls r0, r0, #4 - ldrb r2, [r3, #0xd] - adds r1, r5, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0xd] - adds r0, r6, #0 - movs r1, #4 - bl GetFontAttribute - mov r1, sp - ands r5, r0 - ldrb r0, [r1, #0xc] - ands r4, r0 - orrs r4, r5 - strb r4, [r1, #0xc] - mov r0, sp - mov r2, sb - strb r2, [r0, #0xa] - adds r0, r6, #0 - movs r1, #3 - bl GetFontAttribute - mov r1, sp - strb r0, [r1, #0xb] - mov r0, sp - mov r4, r8 - strb r4, [r0, #6] - strb r4, [r0, #8] - movs r4, #0 - cmp r4, r7 - bhs _08198AAE - mov r5, sp -_08198A7E: - ldr r1, [sp, #0x48] - adds r0, r1, r4 - ldrb r0, [r0] - lsls r0, r0, #3 - ldr r2, [sp, #0x44] - adds r0, r0, r2 - ldr r0, [r0] - str r0, [sp] - mov r0, sl - muls r0, r4, r0 - ldr r1, [sp, #0x14] - adds r0, r1, r0 - strb r0, [r5, #7] - strb r0, [r5, #9] - mov r0, sp - movs r1, #0xff - movs r2, #0 - bl AddTextPrinter - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r7 - blo _08198A7E -_08198AAE: - ldr r0, [sp, #0x10] - movs r1, #2 - bl CopyWindowToVram - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AddItemMenuActionTextPrinters - - thumb_func_start sub_08198AC8 -sub_08198AC8: @ 0x08198AC8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x14 - mov sb, r0 - adds r4, r1, #0 - adds r6, r2, #0 - mov r8, r3 - ldr r7, [sp, #0x30] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov r0, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - adds r0, r4, #0 - movs r1, #0 - bl GetFontAttribute - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - adds r0, r4, #0 - movs r1, #2 - bl GetFontAttribute - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - str r6, [sp, #4] - mov r0, r8 - str r0, [sp, #8] - str r7, [sp, #0xc] - ldr r0, [sp, #0x34] - str r0, [sp, #0x10] - mov r0, sb - adds r1, r4, #0 - adds r2, r5, #0 - movs r3, #2 - bl AddItemMenuActionTextPrinters - add sp, #0x14 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08198AC8 - - thumb_func_start SetWindowTemplateFields -SetWindowTemplateFields: @ 0x08198B34 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r4, [sp, #0x18] - ldr r5, [sp, #0x1c] - ldr r6, [sp, #0x20] - ldr r7, [sp, #0x24] - mov r8, r7 - strb r1, [r0] - strb r2, [r0, #1] - strb r3, [r0, #2] - strb r4, [r0, #3] - strb r5, [r0, #4] - strb r6, [r0, #5] - mov r1, r8 - strh r1, [r0, #6] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetWindowTemplateFields - - thumb_func_start CreateWindowTemplate -CreateWindowTemplate: @ 0x08198B60 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0x18 - mov r8, r0 - ldr r0, [sp, #0x2c] - ldr r4, [sp, #0x30] - ldr r5, [sp, #0x34] - ldr r6, [sp, #0x38] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - str r0, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - str r6, [sp, #0xc] - add r0, sp, #0x10 - bl SetWindowTemplateFields - ldr r0, [sp, #0x10] - ldr r1, [sp, #0x14] - mov r2, r8 - str r0, [r2] - str r1, [r2, #4] - mov r0, r8 - add sp, #0x18 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r2} - bx r2 - thumb_func_end CreateWindowTemplate - - thumb_func_start sub_08198BB4 -sub_08198BB4: @ 0x08198BB4 - push {r4, r5, r6, lr} - sub sp, #0x18 - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - ldr r0, [sp, #0x28] - ldr r1, [sp, #0x2c] - ldr r2, [sp, #0x30] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - str r3, [sp] - str r0, [sp, #4] - str r1, [sp, #8] - str r2, [sp, #0xc] - add r0, sp, #0x10 - adds r1, r4, #0 - adds r2, r5, #0 - adds r3, r6, #0 - bl SetWindowTemplateFields - add r0, sp, #0x10 - bl AddWindow - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - add sp, #0x18 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08198BB4 - - thumb_func_start sub_08198C08 -sub_08198C08: @ 0x08198C08 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - adds r6, r1, #0 - mov r8, r2 - mov sb, r3 - ldr r4, [sp, #0x3c] - ldr r5, [sp, #0x40] - ldr r1, [sp, #0x44] - mov sl, r1 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov r1, r8 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - mov r1, sb - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sb, r1 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - mov r1, sl - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sl, r1 - ldr r7, _08198D3C - bl AddWindow - strb r0, [r7] - ldrb r0, [r7] - movs r1, #1 - adds r2, r4, #0 - adds r3, r5, #0 - bl DrawStdFrameWithCustomTileAndPalette - ldr r0, _08198D40 - str r0, [sp, #0xc] - add r1, sp, #0xc - ldrb r0, [r7] - strb r0, [r1, #4] - adds r0, r1, #0 - strb r6, [r0, #5] - adds r0, r6, #0 - movs r1, #0 - bl GetFontAttribute - add r1, sp, #0xc - add r0, r8 - strb r0, [r1, #6] - adds r0, r1, #0 - mov r1, sb - strb r1, [r0, #7] - adds r1, r0, #0 - ldrb r0, [r0, #6] - strb r0, [r1, #8] - adds r0, r1, #0 - ldrb r0, [r0, #7] - strb r0, [r1, #9] - adds r0, r6, #0 - movs r1, #5 - bl GetFontAttribute - add r3, sp, #0xc - lsls r0, r0, #4 - ldrb r2, [r3, #0xc] - movs r5, #0xf - adds r1, r5, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0xc] - adds r0, r6, #0 - movs r1, #6 - bl GetFontAttribute - add r3, sp, #0xc - adds r1, r5, #0 - ands r1, r0 - ldrb r2, [r3, #0xd] - movs r4, #0x10 - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0xd] - adds r0, r6, #0 - movs r1, #7 - bl GetFontAttribute - add r3, sp, #0xc - lsls r0, r0, #4 - ldrb r2, [r3, #0xd] - adds r1, r5, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0xd] - adds r0, r6, #0 - movs r1, #4 - bl GetFontAttribute - add r1, sp, #0xc - ands r5, r0 - ldrb r0, [r1, #0xc] - ands r4, r0 - orrs r4, r5 - strb r4, [r1, #0xc] - adds r0, r6, #0 - movs r1, #2 - bl GetFontAttribute - add r1, sp, #0xc - strb r0, [r1, #0xa] - adds r0, r6, #0 - movs r1, #3 - bl GetFontAttribute - add r1, sp, #0xc - strb r0, [r1, #0xb] - adds r0, r1, #0 - movs r1, #0xff - movs r2, #0 - bl AddTextPrinter - adds r0, r6, #0 - movs r1, #1 - bl GetFontAttribute - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r7] - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - mov r0, sl - str r0, [sp, #8] - adds r0, r1, #0 - adds r1, r6, #0 - mov r2, r8 - mov r3, sb - bl sub_081984B0 - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08198D3C: .4byte gUnknown_203CA6B -_08198D40: .4byte gUnknown_85D7B40 - thumb_func_end sub_08198C08 - - thumb_func_start sub_08198D44 -sub_08198D44: @ 0x08198D44 - push {lr} - sub sp, #0xc - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r2, [sp] - str r3, [sp, #4] - movs r2, #0 - str r2, [sp, #8] - movs r3, #2 - bl sub_08198C08 - add sp, #0xc - pop {r0} - bx r0 - thumb_func_end sub_08198D44 - - thumb_func_start Menu_ProcessInputNoWrapClearOnChoose -Menu_ProcessInputNoWrapClearOnChoose: @ 0x08198D68 - push {r4, lr} - bl Menu_ProcessInputNoWrap - lsls r0, r0, #0x18 - asrs r4, r0, #0x18 - movs r0, #2 - rsbs r0, r0, #0 - cmp r4, r0 - beq _08198D7E - bl MovementType_WalkSequenceUpLeftDownRight_callback -_08198D7E: - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end Menu_ProcessInputNoWrapClearOnChoose - - thumb_func_start MovementType_WalkSequenceUpLeftDownRight_callback -MovementType_WalkSequenceUpLeftDownRight_callback: @ 0x08198D88 - push {r4, lr} - ldr r4, _08198DA0 - ldrb r0, [r4] - movs r1, #1 - bl sub_08198134 - ldrb r0, [r4] - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08198DA0: .4byte gUnknown_203CA6B - thumb_func_end MovementType_WalkSequenceUpLeftDownRight_callback - - thumb_func_start sub_08198DA4 -sub_08198DA4: @ 0x08198DA4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - ldr r4, [sp, #0x40] - ldr r5, [sp, #0x44] - ldr r6, [sp, #0x48] - ldr r7, [sp, #0x4c] - mov r8, r7 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp, #0xc] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x10] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r3, [sp, #0x14] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp, #0x18] - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - str r5, [sp, #0x1c] - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov r0, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - movs r5, #0 - cmp r5, sb - bhs _08198E4A -_08198DF0: - movs r4, #0 - adds r1, r5, #1 - mov r8, r1 - cmp r4, r6 - bhs _08198E40 - ldr r7, [sp, #0x1c] - adds r0, r7, #0 - muls r0, r5, r0 - ldr r1, [sp, #0x14] - adds r0, r1, r0 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 -_08198E08: - adds r0, r5, #0 - muls r0, r6, r0 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, [sp, #0x50] - adds r0, r0, r1 - ldr r2, [r0] - ldr r0, [sp, #0x18] - adds r3, r0, #0 - muls r3, r4, r3 - ldr r1, [sp, #0x10] - adds r3, r1, r3 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r7, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - mov r0, sl - ldr r1, [sp, #0xc] - bl AddTextPrinterParameterized - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r6 - blo _08198E08 -_08198E40: - mov r7, r8 - lsls r0, r7, #0x18 - lsrs r5, r0, #0x18 - cmp r5, sb - blo _08198DF0 -_08198E4A: - mov r0, sl - movs r1, #2 - bl CopyWindowToVram - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08198DA4 - - thumb_func_start sub_08198E64 -sub_08198E64: @ 0x08198E64 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x18 - mov sb, r0 - mov r8, r1 - adds r4, r2, #0 - adds r5, r3, #0 - ldr r6, [sp, #0x34] - ldr r3, [sp, #0x38] - ldr r7, [sp, #0x3c] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - mov r0, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r1, #0 - str r3, [sp, #0x14] - bl GetFontAttribute - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r4, [sp] - str r5, [sp, #4] - str r6, [sp, #8] - ldr r3, [sp, #0x14] - str r3, [sp, #0xc] - str r7, [sp, #0x10] - mov r0, sb - mov r1, r8 - movs r3, #0 - bl sub_08198DA4 - add sp, #0x18 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08198E64 - - thumb_func_start sub_08198ECC -sub_08198ECC: @ 0x08198ECC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - ldr r4, [sp, #0x40] - ldr r5, [sp, #0x44] - ldr r6, [sp, #0x48] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x10] - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x14] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r3, [sp, #0x18] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp, #0x1c] - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - mov r8, r5 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov sl, r6 - mov r0, sp - ldrb r1, [r0, #0x10] - strb r1, [r0, #4] - strb r7, [r0, #5] - adds r0, r7, #0 - movs r1, #5 - bl GetFontAttribute - mov r3, sp - lsls r0, r0, #4 - ldrb r2, [r3, #0xc] - movs r5, #0xf - adds r1, r5, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0xc] - adds r0, r7, #0 - movs r1, #6 - bl GetFontAttribute - mov r3, sp - adds r1, r5, #0 - ands r1, r0 - ldrb r2, [r3, #0xd] - movs r4, #0x10 - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0xd] - adds r0, r7, #0 - movs r1, #7 - bl GetFontAttribute - mov r3, sp - lsls r0, r0, #4 - ldrb r2, [r3, #0xd] - adds r1, r5, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0xd] - adds r0, r7, #0 - movs r1, #4 - bl GetFontAttribute - mov r1, sp - ands r5, r0 - ldrb r0, [r1, #0xc] - ands r4, r0 - orrs r4, r5 - strb r4, [r1, #0xc] - adds r0, r7, #0 - movs r1, #2 - bl GetFontAttribute - mov r1, sp - strb r0, [r1, #0xa] - adds r0, r7, #0 - movs r1, #3 - bl GetFontAttribute - mov r1, sp - strb r0, [r1, #0xb] - movs r6, #0 - cmp r6, sl - bhs _08198FEE -_08198F8A: - movs r5, #0 - adds r2, r6, #1 - mov sb, r2 - cmp r5, r8 - bhs _08198FE4 - mov r4, sp -_08198F96: - mov r0, r8 - muls r0, r6, r0 - adds r0, r0, r5 - ldr r1, [sp, #0x50] - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, r0, #3 - ldr r2, [sp, #0x4c] - adds r0, r0, r2 - ldr r0, [r0] - str r0, [sp] - ldr r1, [sp, #0x1c] - adds r0, r1, #0 - muls r0, r5, r0 - ldr r2, [sp, #0x14] - adds r0, r2, r0 - strb r0, [r4, #6] - adds r0, r7, #0 - movs r1, #1 - bl GetFontAttribute - adds r1, r6, #0 - muls r1, r0, r1 - ldr r0, [sp, #0x18] - adds r1, r0, r1 - strb r1, [r4, #7] - ldrb r0, [r4, #6] - strb r0, [r4, #8] - strb r1, [r4, #9] - mov r0, sp - movs r1, #0xff - movs r2, #0 - bl AddTextPrinter - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, r8 - blo _08198F96 -_08198FE4: - mov r1, sb - lsls r0, r1, #0x18 - lsrs r6, r0, #0x18 - cmp r6, sl - blo _08198F8A -_08198FEE: - ldr r0, [sp, #0x10] - movs r1, #2 - bl CopyWindowToVram - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08198ECC - - thumb_func_start sub_08199008 -sub_08199008: @ 0x08199008 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x18 - mov r8, r0 - adds r3, r1, #0 - adds r4, r2, #0 - ldr r5, [sp, #0x30] - ldr r6, [sp, #0x34] - ldr r7, [sp, #0x38] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - adds r0, r3, #0 - movs r1, #0 - str r3, [sp, #0x14] - bl GetFontAttribute - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r4, [sp] - str r5, [sp, #4] - str r6, [sp, #8] - str r7, [sp, #0xc] - ldr r0, [sp, #0x3c] - str r0, [sp, #0x10] - mov r0, r8 - ldr r3, [sp, #0x14] - adds r1, r3, #0 - movs r3, #0 - bl sub_08198ECC - add sp, #0x18 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08199008 - - thumb_func_start sub_08199068 -sub_08199068: @ 0x08199068 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r4, [sp, #0x20] - mov ip, r4 - ldr r4, [sp, #0x24] - mov r8, r4 - ldr r4, [sp, #0x28] - mov sb, r4 - ldr r4, [sp, #0x2c] - mov sl, r4 - ldr r4, [sp, #0x30] - ldr r5, [sp, #0x34] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r7, r5, #0x18 - ldr r5, _081990C0 - movs r6, #0 - strb r2, [r5] - strb r3, [r5, #1] - strb r6, [r5, #3] - subs r4, #1 - strb r4, [r5, #4] - strb r0, [r5, #5] - strb r1, [r5, #6] - mov r0, ip - strb r0, [r5, #7] - mov r4, r8 - strb r4, [r5, #8] - mov r0, sb - strb r0, [r5, #9] - mov r4, sl - strb r4, [r5, #0xa] - cmp r7, #0 - blt _081990BC - movs r0, #4 - ldrsb r0, [r5, r0] - cmp r7, r0 - ble _081990C4 -_081990BC: - strb r6, [r5, #2] - b _081990C6 - .align 2, 0 -_081990C0: .4byte gUnknown_203CA5C -_081990C4: - strb r7, [r5, #2] -_081990C6: - movs r0, #0 - movs r1, #0 - bl sub_08199250 - ldr r0, _081990E0 - ldrb r0, [r0, #2] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081990E0: .4byte gUnknown_203CA5C - thumb_func_end sub_08199068 - - thumb_func_start sub_081990E4 -sub_081990E4: @ 0x081990E4 - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - sub sp, #0x20 - mov sb, r0 - mov r8, r1 - mov sl, r2 - ldr r6, [sp, #0x3c] - ldr r4, [sp, #0x40] - ldr r5, [sp, #0x44] - ldr r2, [sp, #0x48] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - mov r0, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - mov r0, sl - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r0, r8 - movs r1, #1 - str r2, [sp, #0x18] - str r3, [sp, #0x1c] - bl sub_0800629C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r4, #0 - muls r1, r5, r1 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r6, [sp] - str r0, [sp, #4] - str r4, [sp, #8] - str r5, [sp, #0xc] - str r1, [sp, #0x10] - ldr r2, [sp, #0x18] - str r2, [sp, #0x14] - mov r0, sb - mov r1, r8 - mov r2, sl - ldr r3, [sp, #0x1c] - bl sub_08199068 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081990E4 - - thumb_func_start sub_08199170 -sub_08199170: @ 0x08199170 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - mov sb, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - lsls r0, r1, #0x18 - lsrs r7, r0, #0x18 - ldr r1, _08199248 - add r0, sp, #0xc - movs r2, #2 - bl memcpy - ldr r5, _0819924C - ldrb r0, [r5, #6] - movs r1, #0 - bl sub_0800629C - mov r8, r0 - mov r1, r8 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - ldrb r0, [r5, #6] - movs r1, #1 - bl sub_0800629C - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - ldrb r0, [r5, #9] - mov sl, r0 - mov r0, sb - mov r1, sl - bl __umodsi3 - ldrb r1, [r5, #7] - adds r4, r1, #0 - muls r4, r0, r4 - ldrb r1, [r5] - adds r4, r4, r1 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r0, sb - mov r1, sl - bl __udivsi3 - ldrb r1, [r5, #8] - adds r3, r1, #0 - muls r3, r0, r3 - ldrb r0, [r5, #1] - adds r3, r3, r0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldrb r0, [r5, #5] - mov r1, r8 - str r1, [sp] - str r6, [sp, #4] - movs r1, #0x11 - adds r2, r4, #0 - bl sub_08003A34 - ldrb r6, [r5, #9] - adds r0, r7, #0 - adds r1, r6, #0 - bl __umodsi3 - ldrb r1, [r5, #7] - adds r4, r1, #0 - muls r4, r0, r4 - ldrb r0, [r5] - adds r4, r4, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r7, #0 - adds r1, r6, #0 - bl __udivsi3 - ldrb r1, [r5, #8] - adds r2, r1, #0 - muls r2, r0, r2 - ldrb r1, [r5, #1] - adds r2, r2, r1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r0, [r5, #5] - ldrb r1, [r5, #6] - str r2, [sp] - movs r2, #0 - str r2, [sp, #4] - str r2, [sp, #8] - add r2, sp, #0xc - adds r3, r4, #0 - bl AddTextPrinterParameterized - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08199248: .4byte gUnknown_85D7B6C -_0819924C: .4byte gUnknown_203CA5C - thumb_func_end sub_08199170 - - thumb_func_start sub_08199250 -sub_08199250: @ 0x08199250 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sb, r1 - ldr r1, _0819928C - ldrb r2, [r1, #2] - mov r8, r2 - lsls r0, r0, #0x18 - asrs r6, r0, #0x18 - adds r5, r1, #0 - cmp r6, #0 - beq _081992A6 - movs r7, #2 - ldrsb r7, [r5, r7] - ldrb r4, [r5, #9] - adds r0, r7, #0 - adds r1, r4, #0 - bl __modsi3 - adds r0, r0, r6 - cmp r0, #0 - bge _08199290 - adds r0, r4, #0 - adds r0, #0xff - add r0, r8 - b _081992A4 - .align 2, 0 -_0819928C: .4byte gUnknown_203CA5C -_08199290: - cmp r0, r4 - blt _081992A0 - adds r0, r7, #0 - adds r1, r4, #0 - bl __divsi3 - muls r0, r4, r0 - b _081992A4 -_081992A0: - mov r1, r8 - adds r0, r6, r1 -_081992A4: - strb r0, [r5, #2] -_081992A6: - mov r2, sb - lsls r0, r2, #0x18 - asrs r6, r0, #0x18 - cmp r6, #0 - beq _081992EA - movs r0, #2 - ldrsb r0, [r5, r0] - ldrb r4, [r5, #9] - adds r1, r4, #0 - bl __divsi3 - adds r1, r0, r6 - cmp r1, #0 - bge _081992CE - ldrb r0, [r5, #0xa] - subs r0, #1 - muls r0, r4, r0 - ldrb r1, [r5, #2] - adds r0, r0, r1 - b _081992E8 -_081992CE: - ldrb r0, [r5, #0xa] - cmp r1, r0 - blt _081992E0 - subs r0, #1 - adds r1, r4, #0 - muls r1, r0, r1 - ldrb r0, [r5, #2] - subs r0, r0, r1 - b _081992E8 -_081992E0: - adds r0, r4, #0 - muls r0, r6, r0 - ldrb r2, [r5, #2] - adds r0, r0, r2 -_081992E8: - strb r0, [r5, #2] -_081992EA: - movs r1, #2 - ldrsb r1, [r5, r1] - movs r0, #4 - ldrsb r0, [r5, r0] - cmp r1, r0 - bgt _08199300 - ldrb r1, [r5, #2] - mov r0, r8 - bl sub_08199170 - b _08199304 -_08199300: - mov r0, r8 - strb r0, [r5, #2] -_08199304: - ldrb r0, [r5, #2] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08199250 - - thumb_func_start sub_08199314 -sub_08199314: @ 0x08199314 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - ldr r1, _0819938C - ldrb r7, [r1, #2] - lsls r0, r0, #0x18 - asrs r4, r0, #0x18 - adds r5, r1, #0 - cmp r4, #0 - beq _08199348 - movs r0, #2 - ldrsb r0, [r5, r0] - ldrb r6, [r5, #9] - adds r1, r6, #0 - bl __modsi3 - adds r0, r0, r4 - cmp r0, #0 - blt _08199348 - cmp r0, r6 - bge _08199348 - adds r0, r4, r7 - strb r0, [r5, #2] -_08199348: - mov r1, r8 - lsls r0, r1, #0x18 - asrs r4, r0, #0x18 - cmp r4, #0 - beq _08199374 - movs r0, #2 - ldrsb r0, [r5, r0] - ldrb r6, [r5, #9] - adds r1, r6, #0 - bl __divsi3 - adds r0, r0, r4 - cmp r0, #0 - blt _08199374 - ldrb r1, [r5, #0xa] - cmp r0, r1 - bge _08199374 - adds r0, r6, #0 - muls r0, r4, r0 - ldrb r1, [r5, #2] - adds r0, r0, r1 - strb r0, [r5, #2] -_08199374: - movs r1, #2 - ldrsb r1, [r5, r1] - movs r0, #4 - ldrsb r0, [r5, r0] - cmp r1, r0 - bgt _08199390 - ldrb r1, [r5, #2] - adds r0, r7, #0 - bl sub_08199170 - b _08199392 - .align 2, 0 -_0819938C: .4byte gUnknown_203CA5C -_08199390: - strb r7, [r5, #2] -_08199392: - ldrb r0, [r5, #2] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_08199314 - - thumb_func_start sub_081993A0 -sub_081993A0: @ 0x081993A0 - push {r4, lr} - ldr r4, _081993C0 - ldrh r1, [r4, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081993C8 - movs r0, #5 - bl sub_080A306C - ldr r0, _081993C4 - ldrb r0, [r0, #2] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - b _08199448 - .align 2, 0 -_081993C0: .4byte gUnknown_3002360 -_081993C4: .4byte gUnknown_203CA5C -_081993C8: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081993D6 - movs r0, #1 - rsbs r0, r0, #0 - b _08199448 -_081993D6: - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _081993EC - movs r0, #5 - bl sub_080A306C - movs r1, #1 - rsbs r1, r1, #0 - movs r0, #0 - b _08199440 -_081993EC: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08199400 - movs r0, #5 - bl sub_080A306C - movs r0, #0 - movs r1, #1 - b _08199440 -_08199400: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _08199414 - bl GetLRKeysState - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08199420 -_08199414: - movs r0, #5 - bl sub_080A306C - movs r0, #1 - rsbs r0, r0, #0 - b _0819943E -_08199420: - ldrh r1, [r4, #0x2e] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _08199436 - bl GetLRKeysState - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _08199444 -_08199436: - movs r0, #5 - bl sub_080A306C - movs r0, #1 -_0819943E: - movs r1, #0 -_08199440: - bl sub_08199250 -_08199444: - movs r0, #2 - rsbs r0, r0, #0 -_08199448: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081993A0 - - thumb_func_start Menu_ProcessInputGridLayout -Menu_ProcessInputGridLayout: @ 0x08199450 - push {r4, r5, r6, lr} - ldr r5, _08199470 - ldrb r4, [r5, #2] - ldr r6, _08199474 - ldrh r1, [r6, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08199478 - movs r0, #5 - bl sub_080A306C - movs r0, #2 - ldrsb r0, [r5, r0] - b _081994EE - .align 2, 0 -_08199470: .4byte gUnknown_203CA5C -_08199474: .4byte gUnknown_3002360 -_08199478: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08199486 - movs r0, #1 - rsbs r0, r0, #0 - b _081994EE -_08199486: - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08199496 - movs r1, #1 - rsbs r1, r1, #0 - movs r0, #0 - b _081994D8 -_08199496: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _081994A4 - movs r0, #0 - movs r1, #1 - b _081994D8 -_081994A4: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _081994B8 - bl GetLRKeysState - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081994BE -_081994B8: - movs r0, #1 - rsbs r0, r0, #0 - b _081994D6 -_081994BE: - ldrh r1, [r6, #0x2e] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _081994D4 - bl GetLRKeysState - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _081994EA -_081994D4: - movs r0, #1 -_081994D6: - movs r1, #0 -_081994D8: - bl sub_08199314 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - beq _081994EA - movs r0, #5 - bl sub_080A306C -_081994EA: - movs r0, #2 - rsbs r0, r0, #0 -_081994EE: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end Menu_ProcessInputGridLayout - - thumb_func_start sub_081994F4 -sub_081994F4: @ 0x081994F4 - push {r4, r5, lr} - ldr r4, _08199514 - ldrh r1, [r4, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0819951C - movs r0, #5 - bl sub_080A306C - ldr r0, _08199518 - ldrb r0, [r0, #2] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - b _08199598 - .align 2, 0 -_08199514: .4byte gUnknown_3002360 -_08199518: .4byte gUnknown_203CA5C -_0819951C: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0819952A - movs r0, #1 - rsbs r0, r0, #0 - b _08199598 -_0819952A: - ldrh r0, [r4, #0x30] - movs r5, #0xf0 - adds r1, r5, #0 - ands r1, r0 - cmp r1, #0x40 - bne _08199544 - movs r0, #5 - bl sub_080A306C - movs r1, #1 - rsbs r1, r1, #0 - movs r0, #0 - b _08199590 -_08199544: - cmp r1, #0x80 - bne _08199554 - movs r0, #5 - bl sub_080A306C - movs r0, #0 - movs r1, #1 - b _08199590 -_08199554: - cmp r1, #0x20 - beq _08199564 - bl sub_08122118 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08199570 -_08199564: - movs r0, #5 - bl sub_080A306C - movs r0, #1 - rsbs r0, r0, #0 - b _0819958E -_08199570: - ldrh r1, [r4, #0x30] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0x10 - beq _08199586 - bl sub_08122118 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _08199594 -_08199586: - movs r0, #5 - bl sub_080A306C - movs r0, #1 -_0819958E: - movs r1, #0 -_08199590: - bl sub_08199250 -_08199594: - movs r0, #2 - rsbs r0, r0, #0 -_08199598: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081994F4 - - thumb_func_start sub_081995A0 -sub_081995A0: @ 0x081995A0 - push {r4, r5, r6, lr} - ldr r6, _081995C0 - ldrb r4, [r6, #2] - ldr r5, _081995C4 - ldrh r1, [r5, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081995C8 - movs r0, #5 - bl sub_080A306C - movs r0, #2 - ldrsb r0, [r6, r0] - b _0819963A - .align 2, 0 -_081995C0: .4byte gUnknown_203CA5C -_081995C4: .4byte gUnknown_3002360 -_081995C8: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081995D6 - movs r0, #1 - rsbs r0, r0, #0 - b _0819963A -_081995D6: - ldrh r0, [r5, #0x30] - movs r6, #0xf0 - adds r1, r6, #0 - ands r1, r0 - cmp r1, #0x40 - bne _081995EA - movs r1, #1 - rsbs r1, r1, #0 - movs r0, #0 - b _08199624 -_081995EA: - cmp r1, #0x80 - bne _081995F4 - movs r0, #0 - movs r1, #1 - b _08199624 -_081995F4: - cmp r1, #0x20 - beq _08199604 - bl sub_08122118 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0819960A -_08199604: - movs r0, #1 - rsbs r0, r0, #0 - b _08199622 -_0819960A: - ldrh r1, [r5, #0x30] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0x10 - beq _08199620 - bl sub_08122118 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _08199636 -_08199620: - movs r0, #1 -_08199622: - movs r1, #0 -_08199624: - bl sub_08199314 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - beq _08199636 - movs r0, #5 - bl sub_080A306C -_08199636: - movs r0, #2 - rsbs r0, r0, #0 -_0819963A: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_081995A0 - - thumb_func_start sub_08199640 -sub_08199640: @ 0x08199640 - push {lr} - ldr r0, _08199650 - movs r1, #0 - movs r2, #4 - bl memset - pop {r0} - bx r0 - .align 2, 0 -_08199650: .4byte gUnknown_203CA70 - thumb_func_end sub_08199640 - - thumb_func_start schedule_bg_copy_tilemap_to_vram -schedule_bg_copy_tilemap_to_vram: @ 0x08199654 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08199664 - adds r0, r0, r1 - movs r1, #1 - strb r1, [r0] - bx lr - .align 2, 0 -_08199664: .4byte gUnknown_203CA70 - thumb_func_end schedule_bg_copy_tilemap_to_vram - - thumb_func_start do_scheduled_bg_tilemap_copies_to_vram -do_scheduled_bg_tilemap_copies_to_vram: @ 0x08199668 - push {r4, lr} - ldr r4, _081996B4 - ldrb r0, [r4] - cmp r0, #1 - bne _0819967C - movs r0, #0 - bl CopyBgTilemapBufferToVram - movs r0, #0 - strb r0, [r4] -_0819967C: - ldrb r0, [r4, #1] - cmp r0, #1 - bne _0819968C - movs r0, #1 - bl CopyBgTilemapBufferToVram - movs r0, #0 - strb r0, [r4, #1] -_0819968C: - ldrb r0, [r4, #2] - cmp r0, #1 - bne _0819969C - movs r0, #2 - bl CopyBgTilemapBufferToVram - movs r0, #0 - strb r0, [r4, #2] -_0819969C: - ldrb r0, [r4, #3] - cmp r0, #1 - bne _081996AC - movs r0, #3 - bl CopyBgTilemapBufferToVram - movs r0, #0 - strb r0, [r4, #3] -_081996AC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081996B4: .4byte gUnknown_203CA70 - thumb_func_end do_scheduled_bg_tilemap_copies_to_vram - - thumb_func_start reset_temp_tile_data_buffers -reset_temp_tile_data_buffers: @ 0x081996B8 - push {lr} - ldr r3, _081996D4 - ldr r1, _081996D8 - movs r2, #0 - adds r0, r1, #0 - adds r0, #0x7c -_081996C4: - str r2, [r0] - subs r0, #4 - cmp r0, r1 - bge _081996C4 - movs r0, #0 - strh r0, [r3] - pop {r0} - bx r0 - .align 2, 0 -_081996D4: .4byte gUnknown_203CA74 -_081996D8: .4byte gUnknown_203CA78 - thumb_func_end reset_temp_tile_data_buffers - - thumb_func_start free_temp_tile_data_buffers_if_possible -free_temp_tile_data_buffers_if_possible: @ 0x081996DC - push {r4, r5, r6, lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08199720 - ldr r1, _08199718 - ldrh r0, [r1] - cmp r0, #0 - beq _08199714 - movs r4, #0 - ldrh r1, [r1] - cmp r4, r1 - bge _0819970E - ldr r5, _0819971C - movs r6, #0 -_081996FC: - ldr r0, [r5] - bl Free - stm r5!, {r6} - adds r4, #1 - ldr r0, _08199718 - ldrh r0, [r0] - cmp r4, r0 - blt _081996FC -_0819970E: - ldr r1, _08199718 - movs r0, #0 - strh r0, [r1] -_08199714: - movs r0, #0 - b _08199722 - .align 2, 0 -_08199718: .4byte gUnknown_203CA74 -_0819971C: .4byte gUnknown_203CA78 -_08199720: - movs r0, #1 -_08199722: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end free_temp_tile_data_buffers_if_possible - - thumb_func_start decompress_and_copy_tile_data_to_vram -decompress_and_copy_tile_data_to_vram: @ 0x08199728 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #8 - adds r4, r1, #0 - adds r5, r2, #0 - ldr r1, [sp, #0x24] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - mov sb, r3 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - ldr r6, _08199788 - ldrh r0, [r6] - cmp r0, #0x1f - bhi _08199790 - adds r0, r4, #0 - add r1, sp, #4 - bl malloc_and_decompress - adds r4, r0, #0 - cmp r5, #0 - bne _08199760 - ldr r5, [sp, #4] -_08199760: - cmp r4, #0 - beq _08199784 - lsls r2, r5, #0x10 - lsrs r2, r2, #0x10 - str r7, [sp] - mov r0, r8 - adds r1, r4, #0 - mov r3, sb - bl copy_decompressed_tile_data_to_vram - ldr r2, _0819978C - ldrh r0, [r6] - adds r1, r0, #1 - strh r1, [r6] - lsls r0, r0, #0x10 - lsrs r0, r0, #0xe - adds r0, r0, r2 - str r4, [r0] -_08199784: - adds r0, r4, #0 - b _08199792 - .align 2, 0 -_08199788: .4byte gUnknown_203CA74 -_0819978C: .4byte gUnknown_203CA78 -_08199790: - movs r0, #0 -_08199792: - add sp, #8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end decompress_and_copy_tile_data_to_vram - - thumb_func_start DecompressAndLoadBgGfxUsingHeap -DecompressAndLoadBgGfxUsingHeap: @ 0x081997A0 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #8 - adds r5, r2, #0 - ldr r2, [sp, #0x24] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - mov sb, r3 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - adds r0, r1, #0 - add r1, sp, #4 - bl malloc_and_decompress - adds r6, r0, #0 - cmp r5, #0 - bne _081997CE - ldr r5, [sp, #4] -_081997CE: - cmp r6, #0 - beq _08199806 - ldr r0, _08199814 - movs r1, #0 - bl CreateTask - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r2, r5, #0x10 - lsrs r2, r2, #0x10 - str r7, [sp] - mov r0, r8 - adds r1, r6, #0 - mov r3, sb - bl copy_decompressed_tile_data_to_vram - ldr r2, _08199818 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r0, [r1, #8] - adds r0, r4, #0 - movs r1, #1 - adds r2, r6, #0 - bl SetWordTaskArg -_08199806: - add sp, #8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08199814: .4byte task_free_buf_after_copying_tile_data_to_vram -_08199818: .4byte gUnknown_3005B60 - thumb_func_end DecompressAndLoadBgGfxUsingHeap - - thumb_func_start task_free_buf_after_copying_tile_data_to_vram -task_free_buf_after_copying_tile_data_to_vram: @ 0x0819981C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08199854 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #8 - ldrsh r0, [r0, r1] - bl CheckForSpaceForDma3Request - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0819984C - adds r0, r4, #0 - movs r1, #1 - bl GetWordTaskArg - bl Free - adds r0, r4, #0 - bl DestroyTask -_0819984C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08199854: .4byte gUnknown_3005B60 - thumb_func_end task_free_buf_after_copying_tile_data_to_vram - - thumb_func_start malloc_and_decompress -malloc_and_decompress: @ 0x08199858 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #1] - strb r0, [r1] - ldrb r0, [r5, #2] - strb r0, [r1, #1] - ldrb r0, [r5, #3] - strb r0, [r1, #2] - movs r0, #0 - strb r0, [r1, #3] - ldr r0, [r1] - bl sub_08000BC8 - adds r4, r0, #0 - cmp r4, #0 - beq _08199880 - adds r0, r5, #0 - adds r1, r4, #0 - bl LZ77UnCompWram -_08199880: - adds r0, r4, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end malloc_and_decompress - - thumb_func_start copy_decompressed_tile_data_to_vram -copy_decompressed_tile_data_to_vram: @ 0x08199888 - push {r4, lr} - adds r4, r1, #0 - ldr r1, [sp, #8] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #0 - beq _081998B0 - cmp r1, #1 - beq _081998B8 - ldr r0, _081998AC - b _081998C2 - .align 2, 0 -_081998AC: .4byte 0x0000FFFF -_081998B0: - adds r1, r4, #0 - bl LoadBgTiles - b _081998BE -_081998B8: - adds r1, r4, #0 - bl LoadBgTilemap -_081998BE: - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 -_081998C2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end copy_decompressed_tile_data_to_vram - - thumb_func_start sub_081998C8 -sub_081998C8: @ 0x081998C8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - adds r5, r2, #0 - ldr r4, [sp, #0x28] - ldr r2, [sp, #0x2c] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp] - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r3, [sp, #4] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sl, r2 - bl GetBgTilemapBuffer - mov r8, r0 - adds r0, r5, r4 - cmp r5, r0 - bge _08199940 - mov sb, r0 -_08199906: - ldr r3, [sp] - ldr r1, [sp, #4] - adds r0, r3, r1 - adds r7, r5, #1 - cmp r3, r0 - bge _08199938 - lsls r6, r5, #5 - ldr r1, _08199950 - mov ip, r1 - mov r1, sl - lsls r5, r1, #0xc - adds r4, r0, #0 -_0819991E: - adds r1, r6, r3 - lsls r1, r1, #1 - add r1, r8 - ldrh r2, [r1] - mov r0, ip - ands r0, r2 - orrs r0, r5 - strh r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, r4 - blt _0819991E -_08199938: - lsls r0, r7, #0x18 - lsrs r5, r0, #0x18 - cmp r5, sb - blt _08199906 -_08199940: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08199950: .4byte 0x00000FFF - thumb_func_end sub_081998C8 - - thumb_func_start sub_08199954 -sub_08199954: @ 0x08199954 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov sl, r1 - ldr r1, [sp, #0x24] - ldr r4, [sp, #0x28] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sb, r2 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r3, [sp] - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r8, r4 - bl GetBgTilemapBuffer - adds r7, r0, #0 - movs r0, #0 - cmp r0, r8 - bhs _081999C2 -_0819998C: - movs r2, #0 - adds r6, r0, #1 - cmp r2, r5 - bhs _081999BA - adds r4, r0, #0 - muls r4, r5, r4 - ldr r1, [sp] - adds r0, r0, r1 - lsls r3, r0, #5 -_0819999E: - adds r1, r4, r2 - lsls r1, r1, #1 - add r1, sl - adds r0, r3, r2 - add r0, sb - lsls r0, r0, #1 - adds r0, r0, r7 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, r5 - blo _0819999E -_081999BA: - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r8 - blo _0819998C -_081999C2: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08199954 - - thumb_func_start sub_081999D4 -sub_081999D4: @ 0x081999D4 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r5, r1, #0 - ldr r0, [sp, #0x14] - adds r4, r2, #0 - muls r4, r3, r4 - cmp r0, #1 - bne _081999FC - adds r3, r6, #0 - movs r2, #0 - cmp r2, r4 - bge _08199A24 -_081999EC: - adds r1, r3, r2 - ldrb r0, [r1] - adds r0, r0, r5 - strb r0, [r1] - adds r2, #1 - cmp r2, r4 - blt _081999EC - b _08199A24 -_081999FC: - cmp r4, #0 - ble _08199A24 - movs r0, #0xfc - lsls r0, r0, #8 - mov ip, r0 - ldr r0, _08199A2C - adds r7, r0, #0 - adds r3, r6, #0 - adds r2, r4, #0 -_08199A0E: - ldrh r0, [r3] - mov r1, ip - ands r1, r0 - adds r0, r0, r5 - ands r0, r7 - orrs r1, r0 - strh r1, [r3] - adds r3, #2 - subs r2, #1 - cmp r2, #0 - bne _08199A0E -_08199A24: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08199A2C: .4byte 0x000003FF - thumb_func_end sub_081999D4 - - thumb_func_start sub_08199A30 -sub_08199A30: @ 0x08199A30 - push {lr} - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08199A30 - - thumb_func_start sub_08199A88 -sub_08199A88: @ 0x08199A88 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov r8, r2 - mov sb, r3 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r5, #0 - movs r1, #4 - bl GetBgAttribute - lsls r0, r0, #0x10 - movs r7, #0x40 - cmp r0, #0 - bne _08199AAE - movs r7, #0x20 -_08199AAE: - adds r0, r5, #0 - movs r1, #1 - bl GetBgAttribute - adds r4, r0, #0 - adds r0, r5, #0 - movs r1, #0xa - bl GetBgAttribute - lsls r4, r4, #0x10 - lsrs r4, r4, #2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - add r0, r8 - muls r0, r7, r0 - adds r4, r4, r0 - lsls r0, r6, #0x18 - lsls r1, r6, #0x10 - orrs r0, r1 - lsls r1, r6, #8 - orrs r0, r1 - orrs r0, r6 - movs r1, #0xc0 - lsls r1, r1, #0x13 - adds r4, r4, r1 - mov r2, sb - muls r2, r7, r2 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - adds r1, r4, #0 - movs r3, #1 - bl RequestDma3Fill - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_08199A88 - - thumb_func_start AddTextPrinterParameterized3 -AddTextPrinterParameterized3: @ 0x08199AFC - push {r4, r5, r6, lr} - sub sp, #0x10 - adds r4, r1, #0 - ldr r6, [sp, #0x20] - ldr r5, [sp, #0x24] - ldr r1, [sp, #0x28] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - str r1, [sp] - mov r1, sp - strb r0, [r1, #4] - mov r0, sp - strb r4, [r0, #5] - strb r2, [r0, #6] - strb r3, [r0, #7] - ldrb r0, [r0, #6] - strb r0, [r1, #8] - mov r0, sp - ldrb r0, [r0, #7] - strb r0, [r1, #9] - adds r0, r4, #0 - movs r1, #2 - bl GetFontAttribute - mov r1, sp - strb r0, [r1, #0xa] - adds r0, r4, #0 - movs r1, #3 - bl GetFontAttribute - mov r1, sp - strb r0, [r1, #0xb] - mov r3, sp - ldrb r2, [r3, #0xc] - movs r1, #0x10 - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3, #0xc] - mov r2, sp - ldrb r0, [r6, #1] - lsls r0, r0, #4 - movs r4, #0xf - strb r0, [r2, #0xc] - ldrb r2, [r6] - adds r0, r4, #0 - ands r0, r2 - ldrb r2, [r3, #0xd] - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0xd] - mov r2, sp - ldrb r0, [r6, #2] - lsls r0, r0, #4 - ands r1, r4 - orrs r1, r0 - strb r1, [r2, #0xd] - mov r0, sp - adds r1, r5, #0 - movs r2, #0 - bl AddTextPrinter - add sp, #0x10 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end AddTextPrinterParameterized3 - - thumb_func_start AddTextPrinterParameterized4 -AddTextPrinterParameterized4: @ 0x08199B84 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #0x10 - adds r5, r1, #0 - ldr r1, [sp, #0x28] - mov r8, r1 - ldr r1, [sp, #0x2c] - mov sb, r1 - ldr r6, [sp, #0x30] - ldr r1, [sp, #0x34] - ldr r4, [sp, #0x38] - str r4, [sp] - mov r4, sp - strb r0, [r4, #4] - mov r0, sp - strb r5, [r0, #5] - strb r2, [r0, #6] - strb r3, [r0, #7] - mov r2, sp - ldrb r0, [r0, #6] - strb r0, [r2, #8] - mov r0, sp - ldrb r0, [r0, #7] - strb r0, [r2, #9] - mov r0, sp - mov r2, r8 - strb r2, [r0, #0xa] - mov r2, sb - strb r2, [r0, #0xb] - ldrb r3, [r4, #0xc] - movs r2, #0x10 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r3 - strb r0, [r4, #0xc] - mov r3, sp - ldrb r0, [r6, #1] - lsls r0, r0, #4 - movs r5, #0xf - strb r0, [r3, #0xc] - ldrb r3, [r6] - adds r0, r5, #0 - ands r0, r3 - ldrb r3, [r4, #0xd] - ands r2, r3 - orrs r2, r0 - strb r2, [r4, #0xd] - mov r3, sp - ldrb r0, [r6, #2] - lsls r0, r0, #4 - ands r2, r5 - orrs r2, r0 - strb r2, [r3, #0xd] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r0, sp - movs r2, #0 - bl AddTextPrinter - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end AddTextPrinterParameterized4 - - thumb_func_start AddTextPrinterParameterized5 -AddTextPrinterParameterized5: @ 0x08199C0C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x10 - adds r6, r1, #0 - ldr r4, [sp, #0x2c] - ldr r1, [sp, #0x30] - mov r8, r1 - ldr r7, [sp, #0x34] - ldr r5, [sp, #0x38] - ldr r1, [sp, #0x3c] - mov sb, r1 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r1, r8 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - str r2, [sp] - mov r1, sp - strb r0, [r1, #4] - mov r0, sp - strb r6, [r0, #5] - strb r3, [r0, #6] - strb r4, [r0, #7] - strb r3, [r0, #8] - strb r4, [r0, #9] - strb r5, [r0, #0xa] - mov r1, sb - strb r1, [r0, #0xb] - mov r2, sp - ldrb r1, [r2, #0xc] - movs r5, #0x10 - rsbs r5, r5, #0 - adds r0, r5, #0 - ands r0, r1 - strb r0, [r2, #0xc] - adds r0, r6, #0 - movs r1, #5 - bl GetFontAttribute - mov r3, sp - lsls r0, r0, #4 - ldrb r2, [r3, #0xc] - movs r4, #0xf - adds r1, r4, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0xc] - adds r0, r6, #0 - movs r1, #6 - bl GetFontAttribute - mov r2, sp - adds r1, r4, #0 - ands r1, r0 - ldrb r0, [r2, #0xd] - ands r5, r0 - orrs r5, r1 - strb r5, [r2, #0xd] - adds r0, r6, #0 - movs r1, #7 - bl GetFontAttribute - mov r2, sp - lsls r0, r0, #4 - ldrb r1, [r2, #0xd] - ands r4, r1 - orrs r4, r0 - strb r4, [r2, #0xd] - mov r0, sp - mov r1, r8 - adds r2, r7, #0 - bl AddTextPrinter - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end AddTextPrinterParameterized5 - - thumb_func_start PrintPlayerNameOnWindow -PrintPlayerNameOnWindow: @ 0x08199CBC - push {r4, r5, r6, r7, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r2, r2, #0x10 - lsrs r4, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r5, r3, #0x10 - movs r2, #0 - ldr r0, _08199D10 - ldr r3, [r0] - ldrb r0, [r3] - ldr r6, _08199D14 - cmp r0, #0xff - beq _08199CE4 -_08199CDA: - adds r2, #1 - adds r0, r3, r2 - ldrb r0, [r0] - cmp r0, #0xff - bne _08199CDA -_08199CE4: - adds r0, r6, #0 - bl StringExpandPlaceholders - lsls r3, r4, #0x18 - lsrs r3, r3, #0x18 - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - adds r0, r7, #0 - movs r1, #1 - adds r2, r6, #0 - bl AddTextPrinterParameterized - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08199D10: .4byte gUnknown_3005AF0 -_08199D14: .4byte gUnknown_2021C7C - thumb_func_end PrintPlayerNameOnWindow - - thumb_func_start sub_08199D18 -sub_08199D18: @ 0x08199D18 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x28 - str r0, [sp] - str r1, [sp, #4] - ldr r0, [sp, #0x48] - ldr r4, [sp, #0x4c] - ldr r1, [sp, #0x50] - ldr r5, [sp, #0x54] - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - str r2, [sp, #8] - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0xc] - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - ldr r2, [sp, #4] - ldrh r0, [r2, #4] - ldr r2, [sp, #0xc] - subs r0, r0, r2 - ldr r2, [sp, #8] - adds r2, r1, r2 - str r2, [sp, #0x10] - cmp r0, r1 - bge _08199D64 - ldr r1, [sp, #8] - adds r0, r0, r1 - str r0, [sp, #0x10] -_08199D64: - ldr r2, [sp, #4] - ldrh r1, [r2, #6] - subs r0, r1, r4 - cmp r0, r5 - bge _08199D76 - adds r0, r3, r1 - subs r0, r0, r4 - str r0, [sp, #0x14] - b _08199D7A -_08199D76: - adds r5, r3, r5 - str r5, [sp, #0x14] -_08199D7A: - ldr r0, [sp] - ldrh r1, [r0, #4] - movs r2, #7 - adds r0, r1, #0 - ands r0, r2 - adds r1, r1, r0 - asrs r1, r1, #3 - str r1, [sp, #0x18] - ldr r0, [sp, #4] - ldrh r1, [r0, #4] - adds r0, r1, #0 - ands r0, r2 - adds r1, r1, r0 - asrs r1, r1, #3 - str r1, [sp, #0x1c] - mov ip, r3 - mov r8, r4 - ldr r1, [sp, #0x14] - cmp ip, r1 - blt _08199DA4 - b _08199EE2 -_08199DA4: - ldr r5, [sp, #8] - ldr r6, [sp, #0xc] - mov r2, ip - adds r2, #1 - str r2, [sp, #0x20] - mov r0, r8 - adds r0, #1 - str r0, [sp, #0x24] - ldr r1, [sp, #0x10] - cmp r5, r1 - blt _08199DBC - b _08199ED2 -_08199DBC: - movs r7, #1 - movs r2, #0xf0 - mov sl, r2 - movs r0, #0xf - mov sb, r0 -_08199DC6: - asrs r0, r5, #1 - movs r1, #3 - ands r0, r1 - ldr r2, [sp] - ldr r1, [r2] - adds r1, r1, r0 - asrs r0, r5, #3 - lsls r0, r0, #5 - adds r1, r1, r0 - mov r2, ip - asrs r0, r2, #3 - ldr r2, [sp, #0x18] - muls r0, r2, r0 - lsls r0, r0, #5 - adds r1, r1, r0 - mov r2, ip - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1b - adds r3, r1, r0 - asrs r0, r6, #1 - movs r1, #3 - ands r0, r1 - ldr r2, [sp, #4] - ldr r1, [r2] - adds r1, r1, r0 - asrs r0, r6, #3 - lsls r0, r0, #5 - adds r1, r1, r0 - mov r2, r8 - asrs r0, r2, #3 - ldr r2, [sp, #0x1c] - muls r0, r2, r0 - lsls r0, r0, #5 - adds r1, r1, r0 - mov r2, r8 - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1b - adds r4, r1, r0 - adds r0, r4, #0 - ands r0, r7 - cmp r0, #0 - beq _08199E72 - subs r4, #1 - adds r0, r6, #0 - ands r0, r7 - cmp r0, #0 - beq _08199E4A - ldrh r0, [r4] - ldr r2, _08199E3C - ands r2, r0 - adds r0, r5, #0 - ands r0, r7 - cmp r0, #0 - beq _08199E40 - ldrb r1, [r3] - mov r0, sl - ands r0, r1 - lsls r0, r0, #8 - b _08199EC2 - .align 2, 0 -_08199E3C: .4byte 0x00000FFF -_08199E40: - ldrb r1, [r3] - mov r0, sb - ands r0, r1 - lsls r0, r0, #0xc - b _08199EC2 -_08199E4A: - ldrh r0, [r4] - ldr r2, _08199E64 - ands r2, r0 - adds r0, r5, #0 - ands r0, r7 - cmp r0, #0 - beq _08199E68 - ldrb r1, [r3] - mov r0, sl - ands r0, r1 - lsls r0, r0, #4 - b _08199EC2 - .align 2, 0 -_08199E64: .4byte 0x0000F0FF -_08199E68: - ldrb r1, [r3] - mov r0, sb - ands r0, r1 - lsls r0, r0, #8 - b _08199EC2 -_08199E72: - adds r0, r6, #0 - ands r0, r7 - cmp r0, #0 - beq _08199E9E - ldrh r0, [r4] - ldr r2, _08199E90 - ands r2, r0 - adds r0, r5, #0 - ands r0, r7 - cmp r0, #0 - beq _08199E94 - ldrb r1, [r3] - mov r0, sl - b _08199EC0 - .align 2, 0 -_08199E90: .4byte 0x0000FF0F -_08199E94: - ldrb r1, [r3] - mov r0, sb - ands r0, r1 - lsls r0, r0, #4 - b _08199EC2 -_08199E9E: - ldrh r0, [r4] - ldr r2, _08199EB8 - ands r2, r0 - adds r0, r5, #0 - ands r0, r7 - cmp r0, #0 - beq _08199EBC - ldrb r1, [r3] - mov r0, sl - ands r0, r1 - lsrs r0, r0, #4 - b _08199EC2 - .align 2, 0 -_08199EB8: .4byte 0x0000FFF0 -_08199EBC: - ldrb r1, [r3] - mov r0, sb -_08199EC0: - ands r0, r1 -_08199EC2: - orrs r2, r0 - strh r2, [r4] - adds r5, #1 - adds r6, #1 - ldr r0, [sp, #0x10] - cmp r5, r0 - bge _08199ED2 - b _08199DC6 -_08199ED2: - ldr r1, [sp, #0x20] - mov ip, r1 - ldr r2, [sp, #0x24] - mov r8, r2 - ldr r0, [sp, #0x14] - cmp ip, r0 - bge _08199EE2 - b _08199DA4 -_08199EE2: - add sp, #0x28 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08199D18 - - thumb_func_start sub_08199EF4 -sub_08199EF4: @ 0x08199EF4 - push {r4, lr} - adds r4, r0, #0 - adds r0, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetValidMonIconPalettePtr - adds r1, r4, #0 - movs r2, #0x20 - bl LoadPalette - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_08199EF4 - - thumb_func_start sub_08199F14 -sub_08199F14: @ 0x08199F14 - push {r4, r5, r6, lr} - sub sp, #8 - adds r6, r0, #0 - adds r0, r1, #0 - adds r1, r2, #0 - adds r4, r3, #0 - ldr r5, [sp, #0x18] - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - movs r2, #1 - bl GetMonIconPtr - adds r1, r0, #0 - movs r0, #0x20 - str r0, [sp] - str r0, [sp, #4] - adds r0, r6, #0 - adds r2, r4, #0 - adds r3, r5, #0 - bl BlitBitmapToWindow - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_08199F14 - - thumb_func_start sub_08199F54 -sub_08199F54: @ 0x08199F54 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #1 - beq _08199F74 - cmp r1, #1 - ble _08199F6A - cmp r1, #2 - beq _08199F7C -_08199F6A: - ldr r0, _08199F70 - b _08199F7E - .align 2, 0 -_08199F70: .4byte gUnknown_85D7BD8 -_08199F74: - ldr r0, _08199F78 - b _08199F7E - .align 2, 0 -_08199F78: .4byte gUnknown_85D7BF8 -_08199F7C: - ldr r0, _08199F8C -_08199F7E: - adds r1, r2, #0 - movs r2, #0x20 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_08199F8C: .4byte gUnknown_85D7C18 - thumb_func_end sub_08199F54 - - thumb_func_start blit_move_info_icon -blit_move_info_icon: @ 0x08199F90 - push {r4, r5, lr} - sub sp, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - ldr r4, _08199FD4 - lsrs r1, r1, #0x16 - adds r1, r1, r4 - ldrh r5, [r1, #2] - lsls r5, r5, #5 - ldr r4, _08199FD8 - adds r5, r5, r4 - movs r4, #0x80 - str r4, [sp] - str r4, [sp, #4] - str r2, [sp, #8] - str r3, [sp, #0xc] - ldrb r2, [r1] - str r2, [sp, #0x10] - ldrb r1, [r1, #1] - str r1, [sp, #0x14] - adds r1, r5, #0 - movs r2, #0 - movs r3, #0 - bl BlitBitmapRectToWindow - add sp, #0x18 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08199FD4: .4byte gUnknown_85D7B70 -_08199FD8: .4byte gUnknown_85D7C38 - thumb_func_end blit_move_info_icon - - thumb_func_start sub_08199FDC -sub_08199FDC: @ 0x08199FDC - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r5, r1, #0 - movs r1, #0xfc - strb r1, [r5] - adds r5, #1 - movs r0, #1 - strb r0, [r5] - adds r5, #1 - strb r2, [r5] - adds r5, #1 - strb r1, [r5] - adds r5, #1 - movs r0, #3 - strb r0, [r5] - adds r5, #1 - adds r2, #1 - strb r2, [r5] - adds r5, #1 - cmp r3, #4 - bhi _0819A0DE - lsls r0, r3, #2 - ldr r1, _0819A018 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0819A018: .4byte _0819A01C -_0819A01C: @ jump table - .4byte _0819A030 @ case 0 - .4byte _0819A040 @ case 1 - .4byte _0819A072 @ case 2 - .4byte _0819A0A0 @ case 3 - .4byte _0819A0B0 @ case 4 -_0819A030: - ldr r0, _0819A03C - ldr r1, [r0] - adds r0, r5, #0 - bl StringCopy - b _0819A0DE - .align 2, 0 -_0819A03C: .4byte gUnknown_3005AF0 -_0819A040: - bl IsNationalPokedexEnabled - cmp r0, #0 - beq _0819A050 - movs r0, #1 - bl GetNationalPokedexCount - b _0819A056 -_0819A050: - movs r0, #1 - bl GetHoennPokedexCount -_0819A056: - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r5, #0 - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - adds r5, r0, #0 - movs r0, #0x1b - strb r0, [r5] - adds r5, #1 - movs r0, #7 - b _0819A0D8 -_0819A072: - ldr r4, _0819A09C - ldr r0, [r4] - ldrh r1, [r0, #0xe] - adds r0, r5, #0 - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - adds r5, r0, #0 - movs r0, #0xf0 - strb r0, [r5] - adds r5, #1 - ldr r0, [r4] - ldrb r1, [r0, #0x10] - adds r0, r5, #0 - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - b _0819A0DE - .align 2, 0 -_0819A09C: .4byte gUnknown_3005AF0 -_0819A0A0: - ldr r0, _0819A0AC - ldrb r1, [r0, #0x14] - adds r0, r5, #0 - bl sub_081245E8 - b _0819A0DE - .align 2, 0 -_0819A0AC: .4byte gUnknown_2036FB8 -_0819A0B0: - ldr r4, _0819A0E4 - movs r6, #0 - adds r7, r5, #1 -_0819A0B6: - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0819A0C6 - adds r6, #1 -_0819A0C6: - adds r4, #1 - ldr r0, _0819A0E8 - cmp r4, r0 - ble _0819A0B6 - adds r0, r6, #0 - subs r0, #0x5f - strb r0, [r5] - adds r5, r7, #0 - movs r0, #0xa -_0819A0D8: - strb r0, [r5] - movs r0, #0xff - strb r0, [r5, #1] -_0819A0DE: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0819A0E4: .4byte 0x00000867 -_0819A0E8: .4byte 0x0000086E - thumb_func_end sub_08199FDC - - thumb_func_start sub_0819A0EC -sub_0819A0EC: @ 0x0819A0EC - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r4, [r5, #5] - lsrs r4, r4, #4 - movs r0, #0x65 - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsrs r0, r0, #0x18 - cmp r4, r0 - bne _0819A15A - adds r0, r5, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0819A150 - ldrh r1, [r5, #0x2e] - movs r2, #0x2e - ldrsh r0, [r5, r2] - cmp r0, #0 - beq _0819A124 - subs r0, r1, #1 - strh r0, [r5, #0x2e] - b _0819A162 -_0819A124: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #5 - bl __umodsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0819A146 - adds r0, r5, #0 - movs r1, #0 - bl StartSpriteAnim - movs r0, #0x20 - strh r0, [r5, #0x2e] - b _0819A162 -_0819A146: - adds r0, r5, #0 - movs r1, #1 - bl StartSpriteAnim - b _0819A162 -_0819A150: - adds r0, r5, #0 - movs r1, #1 - bl StartSpriteAnimIfDifferent - b _0819A162 -_0819A15A: - adds r0, r5, #0 - movs r1, #0 - bl StartSpriteAnimIfDifferent -_0819A162: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_0819A0EC - - thumb_func_start Select_CB2 -Select_CB2: @ 0x0819A168 - push {lr} - bl AnimateSprites - bl BuildOamBuffer - bl sub_08004630 - bl UpdatePaletteFade - bl RunTasks - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Select_CB2 - - thumb_func_start sub_0819A184 -sub_0819A184: @ 0x0819A184 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0819A184 - - thumb_func_start DoBattleFactorySelectScreen -DoBattleFactorySelectScreen: @ 0x0819A198 - push {lr} - ldr r0, _0819A1AC - movs r1, #0 - str r1, [r0] - ldr r0, _0819A1B0 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0819A1AC: .4byte gUnknown_3001278 -_0819A1B0: .4byte CB2_InitSelectScreen - thumb_func_end DoBattleFactorySelectScreen - - thumb_func_start CB2_InitSelectScreen -CB2_InitSelectScreen: @ 0x0819A1B4 - push {r4, r5, lr} - sub sp, #0xc - ldr r0, _0819A1D4 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0xa - bls _0819A1C8 - b _0819A62E -_0819A1C8: - lsls r0, r0, #2 - ldr r1, _0819A1D8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0819A1D4: .4byte gUnknown_3002360 -_0819A1D8: .4byte _0819A1DC -_0819A1DC: @ jump table - .4byte _0819A208 @ case 0 - .4byte _0819A260 @ case 1 - .4byte _0819A33C @ case 2 - .4byte _0819A41C @ case 3 - .4byte _0819A46C @ case 4 - .4byte _0819A508 @ case 5 - .4byte _0819A544 @ case 6 - .4byte _0819A54C @ case 7 - .4byte _0819A564 @ case 8 - .4byte _0819A57C @ case 9 - .4byte _0819A59C @ case 10 -_0819A208: - ldr r4, _0819A250 - ldr r0, [r4] - cmp r0, #0 - beq _0819A218 - bl Free - movs r0, #0 - str r0, [r4] -_0819A218: - movs r0, #0 - bl SetHBlankCallback - movs r0, #0 - bl SetVBlankCallback - movs r0, #0 - str r0, [sp, #8] - movs r1, #0xc0 - lsls r1, r1, #0x13 - ldr r2, _0819A254 - add r0, sp, #8 - bl CpuSet - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _0819A258 - movs r0, #0 - movs r2, #3 - bl InitBgsFromTemplates - ldr r0, _0819A25C - bl InitWindows - bl sub_08004480 - b _0819A586 - .align 2, 0 -_0819A250: .4byte gUnknown_203CB08 -_0819A254: .4byte 0x05006000 -_0819A258: .4byte gUnknown_85DBC30 -_0819A25C: .4byte gUnknown_85DBC3C -_0819A260: - ldr r5, _0819A328 - movs r4, #0x88 - lsls r4, r4, #3 - adds r0, r4, #0 - bl sub_08000BC8 - str r0, [r5] - ldr r5, _0819A32C - adds r0, r4, #0 - bl AllocZeroed - str r0, [r5] - ldr r5, _0819A330 - movs r4, #0x80 - lsls r4, r4, #4 - adds r0, r4, #0 - bl sub_08000BC8 - str r0, [r5] - ldr r5, _0819A334 - adds r0, r4, #0 - bl AllocZeroed - str r0, [r5] - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - movs r0, #0x4c - movs r1, #0 - bl SetGpuReg - movs r0, #0x40 - movs r1, #0 - bl SetGpuReg - movs r0, #0x44 - movs r1, #0 - bl SetGpuReg - movs r0, #0x42 - movs r1, #0 - bl SetGpuReg - movs r0, #0x46 - movs r1, #0 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0 - bl SetGpuReg - movs r0, #0x4a - movs r1, #0 - bl SetGpuReg - ldr r1, _0819A338 - movs r3, #0x87 - lsls r3, r3, #3 - adds r1, r1, r3 - b _0819A58E - .align 2, 0 -_0819A328: .4byte gUnknown_203CAF8 -_0819A32C: .4byte gUnknown_203CAFC -_0819A330: .4byte gUnknown_203CB00 -_0819A334: .4byte gUnknown_203CB04 -_0819A338: .4byte gUnknown_3002360 -_0819A33C: - bl ResetPaletteFade - bl ResetSpriteData - bl ResetTasks - bl FreeAllSpritePalettes - ldr r0, _0819A3EC - ldr r5, _0819A3F0 - ldr r1, [r5] - movs r2, #0x88 - lsls r2, r2, #2 - bl CpuSet - ldr r0, _0819A3F4 - ldr r4, _0819A3F8 - ldr r1, [r4] - movs r2, #0x30 - bl CpuSet - ldr r1, [r5] - movs r2, #0x88 - lsls r2, r2, #3 - movs r0, #1 - movs r3, #0 - bl LoadBgTiles - ldr r1, [r4] - movs r0, #3 - movs r2, #0x60 - movs r3, #0 - bl LoadBgTiles - ldr r0, _0819A3FC - ldr r4, _0819A400 - ldr r1, [r4] - movs r2, #0x80 - lsls r2, r2, #3 - bl CpuSet - ldr r1, [r4] - movs r2, #0x80 - lsls r2, r2, #4 - movs r0, #1 - movs r3, #0 - bl LoadBgTilemap - ldr r0, _0819A404 - movs r1, #0 - movs r2, #0x40 - bl LoadPalette - ldr r4, _0819A408 - adds r0, r4, #0 - movs r1, #0xf0 - movs r2, #8 - bl LoadPalette - adds r0, r4, #0 - movs r1, #0xe0 - movs r2, #0xa - bl LoadPalette - ldr r0, _0819A40C - ldr r1, [r0] - ldrb r0, [r1, #6] - cmp r0, #1 - bne _0819A3D8 - ldr r0, _0819A410 - movs r2, #0xa9 - lsls r2, r2, #2 - adds r1, r1, r2 - ldrh r1, [r1] - movs r3, #0xe4 - lsls r3, r3, #1 - adds r0, r0, r3 - strh r1, [r0] -_0819A3D8: - ldr r0, _0819A414 - movs r1, #0x20 - movs r2, #4 - bl LoadPalette - ldr r1, _0819A418 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _0819A58E - .align 2, 0 -_0819A3EC: .4byte gUnknown_85DAD38 -_0819A3F0: .4byte gUnknown_203CAF8 -_0819A3F4: .4byte gUnknown_85DBA78 -_0819A3F8: .4byte gUnknown_203CAFC -_0819A3FC: .4byte gUnknown_85DB178 -_0819A400: .4byte gUnknown_203CB00 -_0819A404: .4byte gUnknown_85DBAD8 -_0819A408: .4byte gUnknown_85DBC74 -_0819A40C: .4byte gUnknown_3001278 -_0819A410: .4byte gUnknown_20373B4 -_0819A414: .4byte gUnknown_85DBB18 -_0819A418: .4byte gUnknown_3002360 -_0819A41C: - ldr r0, _0819A464 - ldr r1, [r0] - movs r0, #3 - bl SetBgTilemapBuffer - ldr r5, _0819A468 - movs r4, #8 - str r4, [sp] - str r4, [sp, #4] - movs r0, #3 - adds r1, r5, #0 - movs r2, #0xb - movs r3, #4 - bl CopyToBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - movs r0, #3 - adds r1, r5, #0 - movs r2, #2 - movs r3, #4 - bl CopyToBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - movs r0, #3 - adds r1, r5, #0 - movs r2, #0x14 - movs r3, #4 - bl CopyToBgTilemapBufferRect - movs r0, #3 - bl CopyBgTilemapBufferToVram - b _0819A586 - .align 2, 0 -_0819A464: .4byte gUnknown_203CB04 -_0819A468: .4byte gUnknown_85DB978 -_0819A46C: - ldr r0, _0819A4D8 - bl LoadSpritePalettes - ldr r0, _0819A4DC - bl LoadSpriteSheets - ldr r0, _0819A4E0 - bl LoadCompressedSpriteSheet - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - ldr r0, _0819A4E4 - bl SetVBlankCallback - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - movs r1, #0x9a - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - ldr r0, _0819A4E8 - ldr r0, [r0] - ldrb r0, [r0, #6] - cmp r0, #1 - bne _0819A4F4 - movs r0, #0x58 - movs r1, #0x98 - movs r2, #0x20 - movs r3, #0x60 - bl Select_SetWinRegs - movs r0, #3 - bl ShowBg - ldr r1, _0819A4EC - movs r0, #0x50 - bl SetGpuReg - ldr r1, _0819A4F0 - movs r0, #0x52 - bl SetGpuReg - b _0819A4FA - .align 2, 0 -_0819A4D8: .4byte gUnknown_85DBB70 -_0819A4DC: .4byte gUnknown_85DBB38 -_0819A4E0: .4byte gUnknown_85DBB60 -_0819A4E4: .4byte sub_0819A184 -_0819A4E8: .4byte gUnknown_3001278 -_0819A4EC: .4byte 0x00001248 -_0819A4F0: .4byte 0x0000040B -_0819A4F4: - movs r0, #3 - bl HideBg -_0819A4FA: - ldr r1, _0819A504 - movs r3, #0x87 - lsls r3, r3, #3 - adds r1, r1, r3 - b _0819A58E - .align 2, 0 -_0819A504: .4byte gUnknown_3002360 -_0819A508: - ldr r4, _0819A538 - ldr r1, [r4] - ldrb r0, [r1, #6] - cmp r0, #1 - bne _0819A518 - ldr r0, _0819A53C - ldrb r0, [r0] - strb r0, [r1, #3] -_0819A518: - bl Select_InitMonsData - bl Select_InitAllSprites - ldr r0, [r4] - ldrb r0, [r0, #6] - cmp r0, #1 - bne _0819A52C - bl Select_ShowSummaryMonSprite -_0819A52C: - ldr r1, _0819A540 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _0819A58E - .align 2, 0 -_0819A538: .4byte gUnknown_3001278 -_0819A53C: .4byte gUnknown_203CBEC -_0819A540: .4byte gUnknown_3002360 -_0819A544: - bl Select_PrintSelectMonString - movs r0, #2 - b _0819A582 -_0819A54C: - bl Select_PrintMonCategory - movs r0, #5 - bl PutWindowTilemap - ldr r1, _0819A560 - movs r3, #0x87 - lsls r3, r3, #3 - adds r1, r1, r3 - b _0819A58E - .align 2, 0 -_0819A560: .4byte gUnknown_3002360 -_0819A564: - bl Select_PrintMonSpecies - movs r0, #1 - bl PutWindowTilemap - ldr r1, _0819A578 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _0819A58E - .align 2, 0 -_0819A578: .4byte gUnknown_3002360 -_0819A57C: - bl sub_0819B654 - movs r0, #0 -_0819A582: - bl PutWindowTilemap -_0819A586: - ldr r1, _0819A598 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 -_0819A58E: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0819A62E - .align 2, 0 -_0819A598: .4byte gUnknown_3002360 -_0819A59C: - ldr r0, _0819A5E0 - movs r1, #0 - bl CreateTask - ldr r2, _0819A5E4 - ldr r1, [r2] - ldr r3, _0819A5E8 - adds r1, r1, r3 - strb r0, [r1] - ldr r3, [r2] - ldrb r5, [r3, #6] - cmp r5, #0 - bne _0819A5F4 - ldr r4, _0819A5EC - ldr r1, _0819A5E8 - adds r0, r3, r1 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r4 - strh r5, [r0, #8] - ldr r0, _0819A5F0 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r4 - strh r5, [r0, #8] - b _0819A628 - .align 2, 0 -_0819A5E0: .4byte Task_SelectFadeSpeciesName -_0819A5E4: .4byte gUnknown_3001278 -_0819A5E8: .4byte 0x000002A1 -_0819A5EC: .4byte gUnknown_3005B60 -_0819A5F0: .4byte Task_HandleSelectionScreenChooseMons -_0819A5F4: - ldr r4, _0819A638 - ldr r2, _0819A63C - adds r0, r3, r2 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r4 - movs r2, #0 - movs r1, #1 - strh r1, [r0, #8] - ldr r1, _0819A640 - adds r0, r3, r1 - strb r2, [r0] - ldr r0, _0819A644 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r4 - movs r1, #0xd - strh r1, [r0, #8] -_0819A628: - ldr r0, _0819A648 - bl SetMainCallback2 -_0819A62E: - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0819A638: .4byte gUnknown_3005B60 -_0819A63C: .4byte 0x000002A1 -_0819A640: .4byte 0x000002A2 -_0819A644: .4byte Task_HandleSelectionScreenMenu -_0819A648: .4byte Select_CB2 - thumb_func_end CB2_InitSelectScreen - - thumb_func_start Select_InitMonsData -Select_InitMonsData: @ 0x0819A64C - push {r4, r5, lr} - ldr r5, _0819A6A0 - ldr r4, [r5] - cmp r4, #0 - bne _0819A6B2 - movs r0, #0xab - lsls r0, r0, #2 - bl AllocZeroed - str r0, [r5] - strb r4, [r0, #3] - ldr r1, [r5] - movs r0, #1 - strb r0, [r1, #5] - ldr r0, [r5] - strb r4, [r0, #6] - movs r2, #0 - movs r4, #0x6c - movs r3, #0 -_0819A672: - ldr r0, [r5] - adds r1, r2, #0 - muls r1, r4, r1 - adds r0, r0, r1 - strb r3, [r0, #0x10] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #5 - bls _0819A672 - ldr r0, _0819A6A4 - ldr r0, [r0] - ldr r1, _0819A6A8 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - cmp r0, #2 - beq _0819A6AC - movs r0, #0 - bl CreateFrontierFactorySelectableMons - b _0819A6B2 - .align 2, 0 -_0819A6A0: .4byte gUnknown_3001278 -_0819A6A4: .4byte gUnknown_3005AF0 -_0819A6A8: .4byte 0x00000CA9 -_0819A6AC: - movs r0, #0 - bl CreateTentFactorySelectableMons -_0819A6B2: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end Select_InitMonsData - - thumb_func_start Select_InitAllSprites -Select_InitAllSprites: @ 0x0819A6B8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r4, #0 - mov r8, r4 - ldr r7, _0819A7C8 -_0819A6C4: - lsls r1, r4, #3 - adds r1, r1, r4 - lsls r1, r1, #2 - subs r1, r1, r4 - adds r1, #0x20 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldr r0, _0819A7CC - movs r2, #0x40 - movs r3, #1 - bl CreateSprite - ldr r6, _0819A7D0 - ldr r2, [r6] - movs r5, #0x6c - adds r1, r4, #0 - muls r1, r5, r1 - adds r2, r2, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r2, #0xe] - ldrh r1, [r2, #0xe] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - mov r1, r8 - strh r1, [r0, #0x2e] - adds r0, r4, #0 - bl Select_SetBallSpritePaletteNum - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #5 - bls _0819A6C4 - ldr r0, [r6] - ldrb r1, [r0, #3] - ldr r4, _0819A7C8 - muls r1, r5, r1 - adds r0, r0, r1 - ldrh r0, [r0, #0xe] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldr r0, _0819A7D4 - movs r2, #0x20 - ldrsh r1, [r1, r2] - movs r2, #0x58 - movs r3, #0 - bl CreateSprite - ldr r1, [r6] - movs r5, #0 - strb r0, [r1, #4] - ldr r0, _0819A7D8 - movs r1, #0xb0 - movs r2, #0x70 - movs r3, #0 - bl CreateSprite - ldr r1, [r6] - strb r0, [r1, #1] - ldr r0, _0819A7DC - movs r1, #0xb0 - movs r2, #0x90 - movs r3, #0 - bl CreateSprite - ldr r1, [r6] - strb r0, [r1, #2] - ldr r0, [r6] - ldrb r1, [r0, #1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r6] - ldrb r1, [r0, #2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - ldr r0, [r6] - ldrb r1, [r0, #1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x28 - strb r5, [r0] - ldr r0, [r6] - ldrb r1, [r0, #1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x29 - strb r5, [r0] - ldr r0, [r6] - ldrb r1, [r0, #2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x28 - strb r5, [r0] - ldr r0, [r6] - ldrb r1, [r0, #2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x29 - strb r5, [r0] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0819A7C8: .4byte gUnknown_20205AC -_0819A7CC: .4byte gUnknown_85DBDE0 -_0819A7D0: .4byte gUnknown_3001278 -_0819A7D4: .4byte gUnknown_85DBDF8 -_0819A7D8: .4byte gUnknown_85DBE10 -_0819A7DC: .4byte gUnknown_85DBE28 - thumb_func_end Select_InitAllSprites - - thumb_func_start Select_DestroyAllSprites -Select_DestroyAllSprites: @ 0x0819A7E0 - push {r4, r5, r6, lr} - movs r4, #0 -_0819A7E4: - ldr r6, _0819A840 - ldr r1, [r6] - movs r0, #0x6c - muls r0, r4, r0 - adds r1, r1, r0 - ldrh r1, [r1, #0xe] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r5, _0819A844 - adds r0, r0, r5 - bl DestroySprite - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #5 - bls _0819A7E4 - ldr r0, [r6] - ldrb r1, [r0, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - bl DestroySprite - ldr r0, [r6] - ldrb r1, [r0, #1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - bl DestroySprite - ldr r0, [r6] - ldrb r1, [r0, #2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - bl DestroySprite - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0819A840: .4byte gUnknown_3001278 -_0819A844: .4byte gUnknown_20205AC - thumb_func_end Select_DestroyAllSprites - - thumb_func_start Select_UpdateBallCursorPosition -Select_UpdateBallCursorPosition: @ 0x0819A848 - push {r4, lr} - lsls r0, r0, #0x18 - cmp r0, #0 - ble _0819A868 - ldr r0, _0819A860 - ldr r1, [r0] - ldrb r3, [r1, #3] - adds r2, r0, #0 - cmp r3, #5 - beq _0819A864 - adds r0, r3, #1 - b _0819A87E - .align 2, 0 -_0819A860: .4byte gUnknown_3001278 -_0819A864: - movs r0, #0 - b _0819A87E -_0819A868: - ldr r0, _0819A878 - ldr r1, [r0] - ldrb r3, [r1, #3] - adds r2, r0, #0 - cmp r3, #0 - beq _0819A87C - subs r0, r3, #1 - b _0819A87E - .align 2, 0 -_0819A878: .4byte gUnknown_3001278 -_0819A87C: - movs r0, #5 -_0819A87E: - strb r0, [r1, #3] - ldr r2, [r2] - ldrb r3, [r2, #3] - ldr r4, _0819A8AC - ldrb r0, [r2, #4] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - movs r0, #0x6c - muls r0, r3, r0 - adds r2, r2, r0 - ldrh r2, [r2, #0xe] - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r0, [r0, #0x20] - strh r0, [r1, #0x20] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0819A8AC: .4byte gUnknown_20205AC - thumb_func_end Select_UpdateBallCursorPosition - - thumb_func_start Select_UpdateMenuCursorPosition -Select_UpdateMenuCursorPosition: @ 0x0819A8B0 - push {lr} - lsls r0, r0, #0x18 - cmp r0, #0 - ble _0819A8D0 - ldr r0, _0819A8C8 - ldr r1, [r0] - ldrb r3, [r1] - adds r2, r0, #0 - cmp r3, #2 - beq _0819A8CC - adds r0, r3, #1 - b _0819A8E6 - .align 2, 0 -_0819A8C8: .4byte gUnknown_3001278 -_0819A8CC: - movs r0, #0 - b _0819A8E6 -_0819A8D0: - ldr r0, _0819A8E0 - ldr r1, [r0] - ldrb r3, [r1] - adds r2, r0, #0 - cmp r3, #0 - beq _0819A8E4 - subs r0, r3, #1 - b _0819A8E6 - .align 2, 0 -_0819A8E0: .4byte gUnknown_3001278 -_0819A8E4: - movs r0, #2 -_0819A8E6: - strb r0, [r1] - ldr r3, _0819A914 - ldr r2, [r2] - ldrb r0, [r2, #1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrb r0, [r2] - lsls r0, r0, #4 - adds r0, #0x70 - strh r0, [r1, #0x22] - ldrb r0, [r2, #2] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrb r0, [r2] - lsls r0, r0, #4 - adds r0, #0x70 - strh r0, [r1, #0x22] - pop {r0} - bx r0 - .align 2, 0 -_0819A914: .4byte gUnknown_20205AC - thumb_func_end Select_UpdateMenuCursorPosition - - thumb_func_start Select_UpdateYesNoCursorPosition -Select_UpdateYesNoCursorPosition: @ 0x0819A918 - push {lr} - lsls r0, r0, #0x18 - cmp r0, #0 - ble _0819A938 - ldr r0, _0819A930 - ldr r1, [r0] - ldrb r3, [r1, #7] - adds r2, r0, #0 - cmp r3, #1 - beq _0819A934 - adds r0, r3, #1 - b _0819A94E - .align 2, 0 -_0819A930: .4byte gUnknown_3001278 -_0819A934: - movs r0, #0 - b _0819A94E -_0819A938: - ldr r0, _0819A948 - ldr r1, [r0] - ldrb r3, [r1, #7] - adds r2, r0, #0 - cmp r3, #0 - beq _0819A94C - subs r0, r3, #1 - b _0819A94E - .align 2, 0 -_0819A948: .4byte gUnknown_3001278 -_0819A94C: - movs r0, #1 -_0819A94E: - strb r0, [r1, #7] - ldr r3, _0819A97C - ldr r2, [r2] - ldrb r0, [r2, #1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrb r0, [r2, #7] - lsls r0, r0, #4 - adds r0, #0x70 - strh r0, [r1, #0x22] - ldrb r0, [r2, #2] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrb r0, [r2, #7] - lsls r0, r0, #4 - adds r0, #0x70 - strh r0, [r1, #0x22] - pop {r0} - bx r0 - .align 2, 0 -_0819A97C: .4byte gUnknown_20205AC - thumb_func_end Select_UpdateYesNoCursorPosition - - thumb_func_start Select_HandleMonSelectionChange -Select_HandleMonSelectionChange: @ 0x0819A980 - push {r4, r5, r6, lr} - ldr r5, _0819A9FC - ldr r0, [r5] - ldrb r6, [r0, #3] - movs r1, #0x6c - adds r4, r6, #0 - muls r4, r1, r4 - adds r0, r0, r4 - ldrb r0, [r0, #0x10] - cmp r0, #0 - beq _0819AA00 - movs r0, #0x64 - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r1, [r5] - ldrb r0, [r1, #5] - cmp r0, #3 - bne _0819A9E4 - adds r0, r1, r4 - ldrb r0, [r0, #0x10] - cmp r0, #1 - bne _0819A9E4 - movs r2, #0 - ldrb r0, [r1, #0x10] - cmp r0, #2 - beq _0819A9D2 - movs r4, #0x6c -_0819A9BA: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #5 - bhi _0819A9D2 - ldr r0, [r5] - adds r1, r2, #0 - muls r1, r4, r1 - adds r0, r0, r1 - ldrb r0, [r0, #0x10] - cmp r0, #2 - bne _0819A9BA -_0819A9D2: - cmp r2, #6 - beq _0819AA3C - ldr r0, _0819A9FC - ldr r1, [r0] - movs r0, #0x6c - muls r0, r2, r0 - adds r1, r1, r0 - movs r0, #1 - strb r0, [r1, #0x10] -_0819A9E4: - ldr r2, _0819A9FC - ldr r1, [r2] - movs r0, #0x6c - muls r0, r6, r0 - adds r1, r1, r0 - movs r0, #0 - strb r0, [r1, #0x10] - ldr r1, [r2] - ldrb r0, [r1, #5] - subs r0, #1 - b _0819AA18 - .align 2, 0 -_0819A9FC: .4byte gUnknown_3001278 -_0819AA00: - movs r0, #0x65 - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r0, [r5] - adds r1, r0, r4 - ldrb r0, [r0, #5] - strb r0, [r1, #0x10] - ldr r1, [r5] - ldrb r0, [r1, #5] - adds r0, #1 -_0819AA18: - strb r0, [r1, #5] - ldr r2, _0819AA44 - ldr r0, _0819AA48 - ldr r0, [r0] - movs r1, #0x6c - muls r1, r6, r1 - adds r0, r0, r1 - ldrh r0, [r0, #0xe] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - lsls r3, r3, #4 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #5] -_0819AA3C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0819AA44: .4byte gUnknown_20205AC -_0819AA48: .4byte gUnknown_3001278 - thumb_func_end Select_HandleMonSelectionChange - - thumb_func_start Select_SetBallSpritePaletteNum -Select_SetBallSpritePaletteNum: @ 0x0819AA4C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _0819AA68 - ldr r0, [r0] - movs r1, #0x6c - muls r1, r4, r1 - adds r0, r0, r1 - ldrb r0, [r0, #0x10] - cmp r0, #0 - beq _0819AA6C - movs r0, #0x65 - b _0819AA6E - .align 2, 0 -_0819AA68: .4byte gUnknown_3001278 -_0819AA6C: - movs r0, #0x64 -_0819AA6E: - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r2, _0819AAA0 - ldr r0, _0819AAA4 - ldr r0, [r0] - movs r1, #0x6c - muls r1, r4, r1 - adds r0, r0, r1 - ldrh r0, [r0, #0xe] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - lsls r3, r3, #4 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #5] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0819AAA0: .4byte gUnknown_20205AC -_0819AAA4: .4byte gUnknown_3001278 - thumb_func_end Select_SetBallSpritePaletteNum - - thumb_func_start Task_FromSelectScreenToSummaryScreen -Task_FromSelectScreenToSummaryScreen: @ 0x0819AAA8 - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _0819AACC - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r6, r0, r1 - movs r1, #8 - ldrsh r0, [r6, r1] - cmp r0, #7 - beq _0819AB04 - cmp r0, #7 - bgt _0819AAD0 - cmp r0, #6 - beq _0819AAD6 - b _0819ABF0 - .align 2, 0 -_0819AACC: .4byte gUnknown_3005B60 -_0819AAD0: - cmp r0, #8 - beq _0819AB88 - b _0819ABF0 -_0819AAD6: - ldr r1, _0819AAFC - ldr r0, _0819AB00 - movs r2, #0xe4 - lsls r2, r2, #1 - adds r0, r0, r2 - ldrh r0, [r0] - adds r1, r1, r2 - movs r2, #0 - strh r0, [r1] - movs r0, #1 - rsbs r0, r0, #0 - str r2, [sp] - movs r1, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - movs r0, #7 - strh r0, [r6, #8] - b _0819ABF0 - .align 2, 0 -_0819AAFC: .4byte gUnknown_20373B4 -_0819AB00: .4byte gUnknown_20377B4 -_0819AB04: - ldr r0, _0819AB6C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _0819ABF0 - ldr r4, _0819AB70 - ldr r0, [r4] - ldr r2, _0819AB74 - adds r0, r0, r2 - ldrb r0, [r0] - bl DestroyTask - ldr r1, [r4] - movs r3, #0xa6 - lsls r3, r3, #2 - adds r0, r1, r3 - ldr r0, [r0] - movs r2, #0xa8 - lsls r2, r2, #2 - adds r1, r1, r2 - bl sub_0819F330 - bl Select_DestroyAllSprites - ldr r4, _0819AB78 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0819AB7C - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0819AB80 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0819AB84 - ldr r0, [r4] - bl Free - str r5, [r4] - bl FreeAllWindowBuffers - movs r0, #8 - strh r0, [r6, #8] - b _0819ABF0 - .align 2, 0 -_0819AB6C: .4byte gUnknown_2037C74 -_0819AB70: .4byte gUnknown_3001278 -_0819AB74: .4byte 0x000002A1 -_0819AB78: .4byte gUnknown_203CAF8 -_0819AB7C: .4byte gUnknown_203CAFC -_0819AB80: .4byte gUnknown_203CB00 -_0819AB84: .4byte gUnknown_203CB04 -_0819AB88: - ldr r4, _0819ABF8 - ldr r1, [r4] - ldr r0, _0819ABFC - movs r3, #0xe4 - lsls r3, r3, #1 - adds r0, r0, r3 - ldrh r0, [r0] - adds r3, #0xdc - adds r1, r1, r3 - strh r0, [r1] - adds r0, r2, #0 - bl DestroyTask - ldr r1, [r4] - movs r0, #1 - strb r0, [r1, #6] - ldr r0, [r4] - ldrb r6, [r0, #3] - ldr r4, _0819AC00 - movs r0, #0x96 - lsls r0, r0, #2 - bl AllocZeroed - str r0, [r4] - movs r4, #0 -_0819ABBA: - ldr r5, _0819AC00 - ldr r1, [r5] - movs r0, #0x64 - muls r0, r4, r0 - adds r0, r0, r1 - ldr r1, _0819ABF8 - ldr r1, [r1] - movs r2, #0x6c - muls r2, r4, r2 - adds r1, r1, r2 - adds r1, #0x14 - movs r2, #0x64 - bl memcpy - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #5 - bls _0819ABBA - ldr r1, [r5] - ldr r0, _0819AC04 - str r0, [sp] - movs r0, #1 - adds r2, r6, #0 - movs r3, #5 - bl ShowPokemonSummaryScreen -_0819ABF0: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0819ABF8: .4byte gUnknown_3001278 -_0819ABFC: .4byte gUnknown_20373B4 -_0819AC00: .4byte gUnknown_203CB08 -_0819AC04: .4byte CB2_InitSelectScreen - thumb_func_end Task_FromSelectScreenToSummaryScreen - - thumb_func_start Task_CloseSelectionScreen -Task_CloseSelectionScreen: @ 0x0819AC08 - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r7, _0819AC38 - ldr r0, [r7] - movs r1, #0xa8 - lsls r1, r1, #2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - beq _0819ACAE - ldr r1, _0819AC3C - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r0, #8 - ldrsh r1, [r4, r0] - cmp r1, #0 - beq _0819AC40 - cmp r1, #1 - beq _0819AC58 - b _0819ACAE - .align 2, 0 -_0819AC38: .4byte gUnknown_3001278 -_0819AC3C: .4byte gUnknown_3005B60 -_0819AC40: - movs r0, #1 - rsbs r0, r0, #0 - str r1, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _0819ACAE -_0819AC58: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _0819ACAE - bl Select_CopyMonsToPlayerParty - ldr r0, [r7] - ldr r1, _0819ACB8 - adds r0, r0, r1 - ldrb r0, [r0] - bl DestroyTask - bl Select_DestroyAllSprites - ldr r4, _0819ACBC - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0819ACC0 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0819ACC4 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r0, [r7] - bl Free - str r5, [r7] - bl FreeAllWindowBuffers - ldr r0, _0819ACC8 - bl SetMainCallback2 - adds r0, r6, #0 - bl DestroyTask -_0819ACAE: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0819ACB8: .4byte 0x000002A1 -_0819ACBC: .4byte gUnknown_203CAF8 -_0819ACC0: .4byte gUnknown_203CB00 -_0819ACC4: .4byte gUnknown_203CB04 -_0819ACC8: .4byte CB2_ReturnToFieldContinueScript - thumb_func_end Task_CloseSelectionScreen - - thumb_func_start Task_HandleSelectionScreenYesNo -Task_HandleSelectionScreenYesNo: @ 0x0819ACCC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r7, _0819AD04 - ldr r0, [r7] - movs r1, #0xa8 - lsls r1, r1, #2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - beq _0819ADBA - ldr r1, _0819AD08 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r5, r0, r1 - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #5 - beq _0819AD24 - cmp r0, #5 - bgt _0819AD0C - cmp r0, #4 - beq _0819AD1A - b _0819ADBA - .align 2, 0 -_0819AD04: .4byte gUnknown_3001278 -_0819AD08: .4byte gUnknown_3005B60 -_0819AD0C: - cmp r0, #0xa - bne _0819ADBA - bl sub_0819C19C - movs r0, #4 - strh r0, [r5, #8] - b _0819ADBA -_0819AD1A: - bl Select_ShowYesNoOptions - movs r0, #5 - strh r0, [r5, #8] - b _0819ADBA -_0819AD24: - ldr r2, _0819AD50 - ldrh r1, [r2, #0x2e] - movs r0, #1 - mov r8, r0 - movs r6, #1 - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _0819AD58 - movs r0, #5 - bl sub_080A306C - ldr r0, [r7] - ldrb r4, [r0, #7] - cmp r4, #0 - bne _0819AD66 - bl sub_0819C250 - strh r4, [r5, #8] - ldr r0, _0819AD54 - str r0, [r5] - b _0819ADBA - .align 2, 0 -_0819AD50: .4byte gUnknown_3002360 -_0819AD54: .4byte Task_CloseSelectionScreen -_0819AD58: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0819AD8C - movs r0, #5 - bl sub_080A306C -_0819AD66: - movs r0, #4 - bl sub_0819B5F8 - bl sub_0819B940 - ldr r0, [r7] - ldr r1, _0819AD84 - adds r0, r0, r1 - mov r1, r8 - strb r1, [r0] - strh r6, [r5, #8] - ldr r0, _0819AD88 - str r0, [r5] - b _0819ADBA - .align 2, 0 -_0819AD84: .4byte 0x000002A2 -_0819AD88: .4byte Task_HandleSelectionScreenChooseMons -_0819AD8C: - ldrh r1, [r2, #0x30] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0819ADA6 - movs r0, #5 - bl sub_080A306C - movs r0, #1 - rsbs r0, r0, #0 - bl Select_UpdateYesNoCursorPosition - b _0819ADBA -_0819ADA6: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0819ADBA - movs r0, #5 - bl sub_080A306C - movs r0, #1 - bl Select_UpdateYesNoCursorPosition -_0819ADBA: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end Task_HandleSelectionScreenYesNo - - thumb_func_start Task_HandleSelectionScreenMenu -Task_HandleSelectionScreenMenu: @ 0x0819ADC4 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _0819ADF0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r0, [r0, #8] - subs r0, #2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r6, r1, #0 - cmp r0, #0xb - bls _0819ADE4 - b _0819B00E -_0819ADE4: - lsls r0, r0, #2 - ldr r1, _0819ADF4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0819ADF0: .4byte gUnknown_3005B60 -_0819ADF4: .4byte _0819ADF8 -_0819ADF8: @ jump table - .4byte _0819AE28 @ case 0 - .4byte _0819AE8C @ case 1 - .4byte _0819B00E @ case 2 - .4byte _0819B00E @ case 3 - .4byte _0819B00E @ case 4 - .4byte _0819B00E @ case 5 - .4byte _0819B00E @ case 6 - .4byte _0819AE5C @ case 7 - .4byte _0819B00E @ case 8 - .4byte _0819B00E @ case 9 - .4byte _0819AFA0 @ case 10 - .4byte _0819AFFC @ case 11 -_0819AE28: - ldr r0, _0819AE50 - ldr r1, [r0] - ldrb r0, [r1, #6] - cmp r0, #0 - bne _0819AE42 - ldr r2, _0819AE54 - adds r0, r1, r2 - movs r7, #0xa8 - lsls r7, r7, #2 - adds r1, r1, r7 - movs r2, #0 - bl sub_0819F1A0 -_0819AE42: - ldr r0, _0819AE58 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #9 - b _0819B00C - .align 2, 0 -_0819AE50: .4byte gUnknown_3001278 -_0819AE54: .4byte 0x00000299 -_0819AE58: .4byte gUnknown_3005B60 -_0819AE5C: - ldr r4, _0819AE84 - ldr r0, [r4] - movs r1, #0xa8 - lsls r1, r1, #2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - bne _0819AE6E - b _0819B00E -_0819AE6E: - bl Select_ShowMenuOptions - ldr r1, [r4] - movs r0, #0 - strb r0, [r1, #6] - ldr r1, _0819AE88 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - b _0819AFE4 - .align 2, 0 -_0819AE84: .4byte gUnknown_3001278 -_0819AE88: .4byte gUnknown_3005B60 -_0819AE8C: - ldr r2, _0819AEBC - ldrh r1, [r2, #0x2e] - movs r7, #1 - movs r6, #1 - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _0819AF1C - movs r0, #5 - bl sub_080A306C - bl Select_RunMenuOptionFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - cmp r0, #1 - bne _0819AEC8 - ldr r0, _0819AEC0 - ldr r0, [r0] - ldr r2, _0819AEC4 - adds r0, r0, r2 - b _0819AF4C - .align 2, 0 -_0819AEBC: .4byte gUnknown_3002360 -_0819AEC0: .4byte gUnknown_3001278 -_0819AEC4: .4byte 0x000002A2 -_0819AEC8: - cmp r0, #2 - bne _0819AEE8 - ldr r1, _0819AEE0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0xa - strh r1, [r0, #8] - ldr r1, _0819AEE4 - str r1, [r0] - b _0819B00E - .align 2, 0 -_0819AEE0: .4byte gUnknown_3005B60 -_0819AEE4: .4byte Task_HandleSelectionScreenYesNo -_0819AEE8: - cmp r1, #3 - bne _0819AF00 - ldr r1, _0819AEFC - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0xb - strh r1, [r0, #8] - b _0819AF5A - .align 2, 0 -_0819AEFC: .4byte gUnknown_3005B60 -_0819AF00: - ldr r1, _0819AF14 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #6 - strh r1, [r0, #8] - ldr r1, _0819AF18 - str r1, [r0] - b _0819B00E - .align 2, 0 -_0819AF14: .4byte gUnknown_3005B60 -_0819AF18: .4byte Task_FromSelectScreenToSummaryScreen -_0819AF1C: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0819AF70 - movs r0, #5 - bl sub_080A306C - ldr r4, _0819AF60 - ldr r1, [r4] - movs r2, #0xa6 - lsls r2, r2, #2 - adds r0, r1, r2 - ldr r0, [r0] - adds r2, #8 - adds r1, r1, r2 - movs r2, #0 - bl sub_0819F2E4 - movs r0, #3 - bl sub_0819B5F8 - ldr r0, [r4] - ldr r1, _0819AF64 - adds r0, r0, r1 -_0819AF4C: - strb r7, [r0] - ldr r1, _0819AF68 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r6, [r0, #8] -_0819AF5A: - ldr r1, _0819AF6C - str r1, [r0] - b _0819B00E - .align 2, 0 -_0819AF60: .4byte gUnknown_3001278 -_0819AF64: .4byte 0x000002A2 -_0819AF68: .4byte gUnknown_3005B60 -_0819AF6C: .4byte Task_HandleSelectionScreenChooseMons -_0819AF70: - ldrh r1, [r2, #0x30] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0819AF8A - movs r0, #5 - bl sub_080A306C - movs r0, #1 - rsbs r0, r0, #0 - bl Select_UpdateMenuCursorPosition - b _0819B00E -_0819AF8A: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0819B00E - movs r0, #5 - bl sub_080A306C - movs r0, #1 - bl Select_UpdateMenuCursorPosition - b _0819B00E -_0819AFA0: - ldr r0, _0819AFEC - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - bne _0819B00E - ldr r4, _0819AFF0 - ldr r2, [r4] - ldrb r0, [r2, #6] - cmp r0, #1 - bne _0819AFD8 - ldr r1, _0819AFF4 - movs r7, #0xa9 - lsls r7, r7, #2 - adds r0, r2, r7 - ldrh r0, [r0] - movs r2, #0xe4 - lsls r2, r2, #1 - adds r1, r1, r2 - strh r0, [r1] - ldr r0, _0819AFF8 - subs r7, #0xbc - adds r1, r0, r7 - ldrh r1, [r1] - adds r0, r0, r2 - strh r1, [r0] -_0819AFD8: - ldr r0, [r4] - strb r3, [r0, #6] - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r6 -_0819AFE4: - movs r1, #3 - strh r1, [r0, #8] - b _0819B00E - .align 2, 0 -_0819AFEC: .4byte gUnknown_2037C74 -_0819AFF0: .4byte gUnknown_3001278 -_0819AFF4: .4byte gUnknown_20377B4 -_0819AFF8: .4byte gUnknown_20373B4 -_0819AFFC: - bl Select_ShowMenuOptions - ldr r0, _0819B014 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r0, #0xc -_0819B00C: - strh r0, [r1, #8] -_0819B00E: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0819B014: .4byte gUnknown_3005B60 - thumb_func_end Task_HandleSelectionScreenMenu - - thumb_func_start Task_HandleSelectionScreenChooseMons -Task_HandleSelectionScreenChooseMons: @ 0x0819B018 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r5, _0819B04C - ldr r3, [r5] - movs r7, #0xa8 - lsls r7, r7, #2 - adds r0, r3, r7 - ldrb r0, [r0] - cmp r0, #1 - beq _0819B116 - ldr r1, _0819B050 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r0, #8 - ldrsh r1, [r4, r0] - cmp r1, #1 - beq _0819B07C - cmp r1, #1 - bgt _0819B054 - cmp r1, #0 - beq _0819B05A - b _0819B116 - .align 2, 0 -_0819B04C: .4byte gUnknown_3001278 -_0819B050: .4byte gUnknown_3005B60 -_0819B054: - cmp r1, #0xb - beq _0819B0E0 - b _0819B116 -_0819B05A: - ldr r0, _0819B074 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0819B116 - movs r0, #1 - movs r1, #1 - strh r1, [r4, #8] - ldr r2, _0819B078 - adds r1, r3, r2 - strb r0, [r1] - b _0819B116 - .align 2, 0 -_0819B074: .4byte gUnknown_2037C74 -_0819B078: .4byte 0x000002A2 -_0819B07C: - ldr r2, _0819B0A0 - ldrh r0, [r2, #0x2e] - ands r1, r0 - cmp r1, #0 - beq _0819B0AC - movs r0, #5 - bl sub_080A306C - ldr r0, [r5] - ldr r1, _0819B0A4 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - movs r0, #2 - strh r0, [r4, #8] - ldr r0, _0819B0A8 - str r0, [r4] - b _0819B116 - .align 2, 0 -_0819B0A0: .4byte gUnknown_3002360 -_0819B0A4: .4byte 0x000002A2 -_0819B0A8: .4byte Task_HandleSelectionScreenMenu -_0819B0AC: - ldrh r1, [r2, #0x30] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0819B0C2 - movs r0, #5 - bl sub_080A306C - movs r0, #1 - rsbs r0, r0, #0 - b _0819B0D2 -_0819B0C2: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0819B116 - movs r0, #5 - bl sub_080A306C - movs r0, #1 -_0819B0D2: - bl Select_UpdateBallCursorPosition - bl Select_PrintMonCategory - bl Select_PrintMonSpecies - b _0819B116 -_0819B0E0: - ldr r0, _0819B11C - ldrh r1, [r0, #0x2e] - movs r6, #1 - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _0819B116 - movs r0, #5 - bl sub_080A306C - ldr r1, [r5] - movs r2, #0xa6 - lsls r2, r2, #2 - adds r0, r1, r2 - ldr r0, [r0] - adds r1, r1, r7 - movs r2, #0 - bl sub_0819F2E4 - bl Select_PrintSelectMonString - ldr r0, [r5] - ldr r1, _0819B120 - adds r0, r0, r1 - movs r1, #1 - strb r1, [r0] - strh r6, [r4, #8] -_0819B116: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0819B11C: .4byte gUnknown_3002360 -_0819B120: .4byte 0x000002A2 - thumb_func_end Task_HandleSelectionScreenChooseMons - - thumb_func_start CreateFrontierFactorySelectableMons -CreateFrontierFactorySelectableMons: @ 0x0819B124 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x24 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x10] - movs r6, #0 - add r0, sp, #0xc - strb r6, [r0] - ldr r0, _0819B1F4 - bl VarGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r6, r0, #0 - ldr r7, _0819B1F8 - ldr r2, [r7] - ldr r0, _0819B1FC - adds r4, r2, r0 - ldrb r0, [r4] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - adds r5, r0, #0 - lsls r0, r5, #1 - lsls r1, r6, #2 - adds r0, r0, r1 - ldr r1, _0819B200 - adds r2, r2, r1 - adds r2, r2, r0 - ldrh r0, [r2] - movs r1, #7 - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x18] - ldr r1, _0819B204 - ldr r0, _0819B208 - str r0, [r1] - ldrb r1, [r4] - movs r0, #3 - ands r0, r1 - movs r2, #0x32 - str r2, [sp, #0x14] - cmp r0, #0 - beq _0819B18A - movs r3, #0x64 - str r3, [sp, #0x14] -_0819B18A: - adds r0, r6, #0 - adds r1, r5, #0 - bl GetNumPastRentalsRank - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x1c] - ldr r1, [r7] - ldrb r0, [r1, #0xa] - mov sb, r0 - ldrb r0, [r1, #0xb] - lsls r0, r0, #8 - mov r2, sb - orrs r2, r0 - ldrb r0, [r1, #0xc] - lsls r0, r0, #0x10 - orrs r2, r0 - ldrb r0, [r1, #0xd] - lsls r0, r0, #0x18 - orrs r2, r0 - mov sb, r2 - movs r3, #0 - mov r8, r3 -_0819B1B8: - ldr r0, _0819B1F8 - ldr r1, [r0] - mov r2, r8 - lsls r0, r2, #1 - add r0, r8 - lsls r0, r0, #2 - adds r1, r1, r0 - movs r3, #0xe7 - lsls r3, r3, #4 - adds r1, r1, r3 - ldrh r5, [r1] - ldr r0, _0819B20C - ldr r1, [r0] - ldr r2, [sp, #0x10] - add r2, r8 - movs r3, #0x6c - adds r0, r2, #0 - muls r0, r3, r0 - adds r1, r1, r0 - strh r5, [r1, #0xc] - mov sl, r2 - ldr r0, [sp, #0x1c] - cmp r8, r0 - bhs _0819B210 - ldr r0, [sp, #0x18] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _0819B212 - .align 2, 0 -_0819B1F4: .4byte 0x000040CE -_0819B1F8: .4byte gUnknown_3005AF0 -_0819B1FC: .4byte 0x00000CA9 -_0819B200: .4byte 0x00000DE2 -_0819B204: .4byte gUnknown_203B958 -_0819B208: .4byte gUnknown_85B8700 -_0819B20C: .4byte gUnknown_3001278 -_0819B210: - ldr r0, [sp, #0x18] -_0819B212: - movs r1, #0 - bl GetFactoryMonFixedIV - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r1, #0x6c - mov r4, sl - muls r4, r1, r4 - adds r4, #0xc - ldr r2, _0819B2D0 - ldr r0, [r2] - adds r0, r0, r4 - adds r0, #8 - ldr r1, _0819B2D4 - ldr r2, [r1] - lsls r5, r5, #4 - adds r2, r5, r2 - ldrh r1, [r2] - ldrb r3, [r2, #0xc] - str r6, [sp] - ldrb r2, [r2, #0xb] - str r2, [sp, #4] - mov r2, sb - str r2, [sp, #8] - ldr r2, [sp, #0x14] - bl CreateMonWithEVSpreadNatureOTID - movs r1, #0 - add r0, sp, #0xc - strb r1, [r0] - movs r6, #0 - adds r7, r5, #0 - movs r3, #1 - add r8, r3 - ldr r3, _0819B2D0 -_0819B258: - ldr r0, [r3] - adds r0, r0, r4 - adds r0, #8 - ldr r5, _0819B2D4 - ldr r1, [r5] - adds r1, r7, r1 - lsls r2, r6, #1 - adds r1, #2 - adds r1, r1, r2 - ldrh r1, [r1] - adds r2, r6, #0 - str r3, [sp, #0x20] - bl SetMonMoveAvoidReturn - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r3, [sp, #0x20] - cmp r6, #3 - bls _0819B258 - movs r0, #0x6c - mov r4, sl - muls r4, r0, r4 - adds r4, #0xc - ldr r1, _0819B2D0 - ldr r0, [r1] - adds r0, r0, r4 - adds r0, #8 - movs r1, #0x20 - add r2, sp, #0xc - bl SetMonData - ldr r2, _0819B2D0 - ldr r0, [r2] - adds r0, r0, r4 - adds r0, #8 - ldr r1, [r5] - adds r1, r7, r1 - ldrb r2, [r1, #0xa] - lsls r2, r2, #1 - ldr r1, _0819B2D8 - adds r2, r2, r1 - movs r1, #0xc - bl SetMonData - mov r3, r8 - lsls r0, r3, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - cmp r0, #5 - bhi _0819B2C0 - b _0819B1B8 -_0819B2C0: - add sp, #0x24 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0819B2D0: .4byte gUnknown_3001278 -_0819B2D4: .4byte gUnknown_203B958 -_0819B2D8: .4byte gUnknown_85ADBF4 - thumb_func_end CreateFrontierFactorySelectableMons - - thumb_func_start CreateTentFactorySelectableMons -CreateTentFactorySelectableMons: @ 0x0819B2DC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x10] - add r0, sp, #0xc - movs r1, #0 - strb r1, [r0] - ldr r2, _0819B3F0 - ldr r0, _0819B3F4 - str r0, [r2] - ldr r0, _0819B3F8 - ldr r1, [r0] - ldrb r3, [r1, #0xa] - ldrb r0, [r1, #0xb] - lsls r0, r0, #8 - orrs r3, r0 - ldrb r0, [r1, #0xc] - lsls r0, r0, #0x10 - orrs r3, r0 - ldrb r0, [r1, #0xd] - lsls r0, r0, #0x18 - orrs r3, r0 - mov sl, r3 - movs r7, #0 - mov sb, r7 -_0819B318: - ldr r0, _0819B3F8 - ldr r1, [r0] - mov r2, sb - lsls r0, r2, #1 - add r0, sb - lsls r0, r0, #2 - adds r1, r1, r0 - movs r3, #0xe7 - lsls r3, r3, #4 - adds r1, r1, r3 - ldrh r1, [r1] - mov r8, r1 - ldr r7, _0819B3FC - ldr r0, [r7] - ldr r6, [sp, #0x10] - add r6, sb - movs r1, #0x6c - adds r4, r6, #0 - muls r4, r1, r4 - adds r1, r0, r4 - mov r2, r8 - strh r2, [r1, #0xc] - adds r4, #0xc - adds r0, r0, r4 - adds r0, #8 - ldr r3, _0819B3F0 - ldr r2, [r3] - mov r7, r8 - lsls r5, r7, #4 - adds r2, r5, r2 - ldrh r1, [r2] - ldrb r3, [r2, #0xc] - movs r7, #0 - str r7, [sp] - ldrb r2, [r2, #0xb] - str r2, [sp, #4] - mov r2, sl - str r2, [sp, #8] - movs r2, #0x1e - bl CreateMonWithEVSpreadNatureOTID - add r0, sp, #0xc - movs r3, #0 - strb r3, [r0] - movs r0, #1 - add sb, r0 -_0819B374: - ldr r1, _0819B3FC - ldr r0, [r1] - adds r0, r0, r4 - adds r0, #8 - ldr r3, _0819B3F0 - ldr r2, [r3] - mov r3, r8 - lsls r1, r3, #4 - adds r1, r1, r2 - lsls r2, r7, #1 - adds r1, #2 - adds r1, r1, r2 - ldrh r1, [r1] - adds r2, r7, #0 - bl SetMonMoveAvoidReturn - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #3 - bls _0819B374 - movs r7, #0x6c - adds r4, r6, #0 - muls r4, r7, r4 - adds r4, #0xc - ldr r1, _0819B3FC - ldr r0, [r1] - adds r0, r0, r4 - adds r0, #8 - movs r1, #0x20 - add r2, sp, #0xc - bl SetMonData - ldr r2, _0819B3FC - ldr r0, [r2] - adds r0, r0, r4 - adds r0, #8 - ldr r3, _0819B3F0 - ldr r1, [r3] - adds r1, r5, r1 - ldrb r2, [r1, #0xa] - lsls r2, r2, #1 - ldr r1, _0819B400 - adds r2, r2, r1 - movs r1, #0xc - bl SetMonData - mov r7, sb - lsls r0, r7, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - cmp r0, #5 - bls _0819B318 - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0819B3F0: .4byte gUnknown_203B958 -_0819B3F4: .4byte gUnknown_85BCF70 -_0819B3F8: .4byte gUnknown_3005AF0 -_0819B3FC: .4byte gUnknown_3001278 -_0819B400: .4byte gUnknown_85ADBF4 - thumb_func_end CreateTentFactorySelectableMons - - thumb_func_start Select_CopyMonsToPlayerParty -Select_CopyMonsToPlayerParty: @ 0x0819B404 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - movs r7, #0 - ldr r0, _0819B4A4 - mov sl, r0 - ldr r1, _0819B4A8 - mov r8, r1 -_0819B418: - movs r2, #0 - adds r0, r7, #1 - mov sb, r0 -_0819B41E: - mov r1, sl - ldr r0, [r1] - movs r1, #0x6c - adds r6, r2, #0 - muls r6, r1, r6 - adds r1, r0, r6 - ldrb r0, [r1, #0x10] - cmp r0, sb - bne _0819B4BC - movs r0, #0x64 - adds r5, r7, #0 - muls r5, r0, r5 - ldr r2, _0819B4AC - adds r5, r5, r2 - adds r1, #0x14 - adds r0, r5, #0 - movs r2, #0x64 - bl memcpy - mov r0, r8 - ldr r1, [r0] - lsls r4, r7, #1 - adds r4, r4, r7 - lsls r4, r4, #2 - adds r1, r1, r4 - mov r2, sl - ldr r0, [r2] - adds r0, r0, r6 - ldrh r0, [r0, #0xc] - movs r2, #0xe7 - lsls r2, r2, #4 - adds r1, r1, r2 - strh r0, [r1] - adds r0, r5, #0 - movs r1, #0 - movs r2, #0 - bl GetMonData - mov r2, r8 - ldr r1, [r2] - ldr r2, _0819B4B0 - adds r1, r1, r2 - adds r1, r1, r4 - str r0, [r1] - adds r0, r5, #0 - movs r1, #0x2e - movs r2, #0 - bl sub_0806A1B4 - mov r2, r8 - ldr r1, [r2] - adds r1, r1, r4 - ldr r2, _0819B4B4 - adds r1, r1, r2 - strb r0, [r1] - adds r0, r5, #0 - movs r1, #0x28 - movs r2, #0 - bl sub_0806A1B4 - mov r2, r8 - ldr r1, [r2] - adds r1, r1, r4 - ldr r2, _0819B4B8 - adds r1, r1, r2 - strb r0, [r1] - b _0819B4C6 - .align 2, 0 -_0819B4A4: .4byte gUnknown_3001278 -_0819B4A8: .4byte gUnknown_3005AF0 -_0819B4AC: .4byte gUnknown_2024190 -_0819B4B0: .4byte 0x00000E74 -_0819B4B4: .4byte 0x00000E79 -_0819B4B8: .4byte 0x00000E78 -_0819B4BC: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #5 - bls _0819B41E -_0819B4C6: - mov r1, sb - lsls r0, r1, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #2 - bls _0819B418 - bl sub_0806B004 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Select_CopyMonsToPlayerParty - - thumb_func_start Select_ShowMenuOptions -Select_ShowMenuOptions: @ 0x0819B4E4 - push {r4, r5, lr} - ldr r5, _0819B56C - ldr r1, [r5] - ldrb r0, [r1, #6] - cmp r0, #0 - bne _0819B4F2 - strb r0, [r1] -_0819B4F2: - ldr r4, _0819B570 - ldr r2, [r5] - ldrb r1, [r2, #1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0xb0 - strh r1, [r0, #0x20] - ldrb r0, [r2, #1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r0, [r2] - lsls r0, r0, #4 - adds r0, #0x70 - strh r0, [r1, #0x22] - ldrb r1, [r2, #2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0xd0 - strh r1, [r0, #0x20] - ldrb r0, [r2, #2] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r0, [r2] - lsls r0, r0, #4 - adds r0, #0x70 - strh r0, [r1, #0x22] - ldrb r0, [r2, #1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - adds r1, #0x3e - ldrb r3, [r1] - movs r2, #5 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r3 - strb r0, [r1] - ldr r0, [r5] - ldrb r1, [r0, #2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - bl Select_PrintMenuOptions - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0819B56C: .4byte gUnknown_3001278 -_0819B570: .4byte gUnknown_20205AC - thumb_func_end Select_ShowMenuOptions - - thumb_func_start Select_ShowYesNoOptions -Select_ShowYesNoOptions: @ 0x0819B574 - push {r4, r5, lr} - ldr r5, _0819B5F0 - ldr r1, [r5] - movs r0, #0 - strb r0, [r1, #7] - ldr r4, _0819B5F4 - ldr r2, [r5] - ldrb r1, [r2, #1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0xb0 - strh r1, [r0, #0x20] - ldrb r1, [r2, #1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r3, #0x70 - strh r3, [r0, #0x22] - ldrb r1, [r2, #2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0xd0 - strh r1, [r0, #0x20] - ldrb r1, [r2, #2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - strh r3, [r0, #0x22] - ldrb r0, [r2, #1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - adds r1, #0x3e - ldrb r3, [r1] - movs r2, #5 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r3 - strb r0, [r1] - ldr r0, [r5] - ldrb r1, [r0, #2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - bl Select_PrintYesNoOptions - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0819B5F0: .4byte gUnknown_3001278 -_0819B5F4: .4byte gUnknown_20205AC - thumb_func_end Select_ShowYesNoOptions - - thumb_func_start sub_0819B5F8 -sub_0819B5F8: @ 0x0819B5F8 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r5, _0819B64C - ldr r3, _0819B650 - ldr r0, [r3] - ldrb r1, [r0, #1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r3] - ldrb r1, [r0, #2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - adds r0, r4, #0 - movs r1, #0 - bl FillWindowPixelBuffer - adds r0, r4, #0 - movs r1, #2 - bl CopyWindowToVram - adds r0, r4, #0 - bl ClearWindowTilemap - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0819B64C: .4byte gUnknown_20205AC -_0819B650: .4byte gUnknown_3001278 - thumb_func_end sub_0819B5F8 - - thumb_func_start sub_0819B654 -sub_0819B654: @ 0x0819B654 - push {lr} - sub sp, #0xc - movs r0, #0 - movs r1, #0 - bl FillWindowPixelBuffer - ldr r2, _0819B684 - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_0819B684: .4byte gUnknown_85DBB98 - thumb_func_end sub_0819B654 - - thumb_func_start Select_PrintMonSpecies -Select_PrintMonSpecies: @ 0x0819B688 - push {r4, r5, lr} - sub sp, #0xc - ldr r5, _0819B6F8 - ldr r0, [r5] - ldrb r4, [r0, #3] - movs r0, #1 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #0x6c - muls r0, r4, r0 - ldr r1, [r5] - adds r0, r0, r1 - adds r0, #0x14 - movs r1, #0xb - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _0819B6FC - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - ldr r0, _0819B700 - adds r1, r1, r0 - adds r0, r4, #0 - bl StringCopy - adds r0, r4, #0 - bl StringLength - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #5 - subs r2, r2, r0 - lsls r2, r2, #0x1b - lsrs r2, r2, #0x18 - ldr r0, _0819B704 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r4, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r3, #2 - bl AddTextPrinterParameterized3 - movs r0, #1 - movs r1, #2 - bl CopyWindowToVram - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0819B6F8: .4byte gUnknown_3001278 -_0819B6FC: .4byte gUnknown_2021C7C -_0819B700: .4byte gUnknown_82EA31C -_0819B704: .4byte gUnknown_85DBC81 - thumb_func_end Select_PrintMonSpecies - - thumb_func_start Select_PrintSelectMonString -Select_PrintSelectMonString: @ 0x0819B708 - push {lr} - sub sp, #0xc - movs r0, #2 - movs r1, #0 - bl FillWindowPixelBuffer - ldr r0, _0819B724 - ldr r0, [r0] - ldrb r0, [r0, #5] - cmp r0, #1 - bne _0819B72C - ldr r2, _0819B728 - b _0819B740 - .align 2, 0 -_0819B724: .4byte gUnknown_3001278 -_0819B728: .4byte gUnknown_85DBBA1 -_0819B72C: - cmp r0, #2 - bne _0819B738 - ldr r2, _0819B734 - b _0819B740 - .align 2, 0 -_0819B734: .4byte gUnknown_85DBBB5 -_0819B738: - ldr r2, _0819B764 - cmp r0, #3 - bne _0819B740 - ldr r2, _0819B768 -_0819B740: - movs r0, #5 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - movs r0, #2 - movs r1, #1 - movs r3, #4 - bl AddTextPrinterParameterized - movs r0, #2 - movs r1, #2 - bl CopyWindowToVram - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_0819B764: .4byte gUnknown_85DBBF6 -_0819B768: .4byte gUnknown_85DBBC9 - thumb_func_end Select_PrintSelectMonString - - thumb_func_start Select_PrintCantSelectSameMon -Select_PrintCantSelectSameMon: @ 0x0819B76C - push {lr} - sub sp, #0xc - movs r0, #2 - movs r1, #0 - bl FillWindowPixelBuffer - ldr r2, _0819B79C - movs r0, #5 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - movs r0, #2 - movs r1, #1 - movs r3, #4 - bl AddTextPrinterParameterized - movs r0, #2 - movs r1, #2 - bl CopyWindowToVram - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_0819B79C: .4byte gUnknown_85DBC11 - thumb_func_end Select_PrintCantSelectSameMon - - thumb_func_start Select_PrintMenuOptions -Select_PrintMenuOptions: @ 0x0819B7A0 - push {r4, r5, r6, lr} - sub sp, #0xc - ldr r0, _0819B7F4 - ldr r0, [r0] - ldrb r2, [r0, #3] - movs r1, #0x6c - muls r1, r2, r1 - adds r0, r0, r1 - ldrb r5, [r0, #0x10] - movs r0, #3 - bl PutWindowTilemap - movs r0, #3 - movs r1, #0 - bl FillWindowPixelBuffer - ldr r4, _0819B7F8 - str r4, [sp] - movs r6, #0 - str r6, [sp, #4] - ldr r0, _0819B7FC - str r0, [sp, #8] - movs r0, #3 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 - cmp r5, #0 - beq _0819B804 - str r4, [sp] - str r6, [sp, #4] - ldr r0, _0819B800 - str r0, [sp, #8] - movs r0, #3 - movs r1, #1 - movs r2, #0 - movs r3, #0x12 - bl AddTextPrinterParameterized3 - b _0819B818 - .align 2, 0 -_0819B7F4: .4byte gUnknown_3001278 -_0819B7F8: .4byte gUnknown_85DBC7E -_0819B7FC: .4byte gUnknown_85DBBE4 -_0819B800: .4byte gUnknown_85DBBF2 -_0819B804: - str r4, [sp] - str r5, [sp, #4] - ldr r0, _0819B840 - str r0, [sp, #8] - movs r0, #3 - movs r1, #1 - movs r2, #0 - movs r3, #0x12 - bl AddTextPrinterParameterized3 -_0819B818: - ldr r0, _0819B844 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - ldr r0, _0819B848 - str r0, [sp, #8] - movs r0, #3 - movs r1, #1 - movs r2, #0 - movs r3, #0x22 - bl AddTextPrinterParameterized3 - movs r0, #3 - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0819B840: .4byte gUnknown_85DBBDD -_0819B844: .4byte gUnknown_85DBC7E -_0819B848: .4byte gUnknown_85DBBEB - thumb_func_end Select_PrintMenuOptions - - thumb_func_start Select_PrintYesNoOptions -Select_PrintYesNoOptions: @ 0x0819B84C - push {r4, r5, lr} - sub sp, #0xc - movs r0, #4 - bl PutWindowTilemap - movs r0, #4 - movs r1, #0 - bl FillWindowPixelBuffer - ldr r5, _0819B89C - str r5, [sp] - movs r4, #0 - str r4, [sp, #4] - ldr r0, _0819B8A0 - str r0, [sp, #8] - movs r0, #4 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 - str r5, [sp] - str r4, [sp, #4] - ldr r0, _0819B8A4 - str r0, [sp, #8] - movs r0, #4 - movs r1, #1 - movs r2, #0 - movs r3, #0x12 - bl AddTextPrinterParameterized3 - movs r0, #4 - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0819B89C: .4byte gUnknown_85DBC7E -_0819B8A0: .4byte gUnknown_85DBC0A -_0819B8A4: .4byte gUnknown_85DBC0D - thumb_func_end Select_PrintYesNoOptions - - thumb_func_start Select_RunMenuOptionFunc -Select_RunMenuOptionFunc: @ 0x0819B8A8 - push {lr} - ldr r2, _0819B8C8 - ldr r1, _0819B8CC - ldr r0, _0819B8D0 - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r2] - bl _call_via_r0 - thumb_func_end Select_RunMenuOptionFunc - - thumb_func_start sub_0819B8C0 -sub_0819B8C0: @ 0x0819B8C0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_0819B8C8: .4byte gUnknown_3006028 -_0819B8CC: .4byte gUnknown_85DBC24 -_0819B8D0: .4byte gUnknown_3001278 - thumb_func_end sub_0819B8C0 - - thumb_func_start Select_OptionRentDeselect -Select_OptionRentDeselect: @ 0x0819B8D4 - push {r4, lr} - ldr r0, _0819B900 - ldr r0, [r0] - ldrb r2, [r0, #3] - movs r1, #0x6c - muls r1, r2, r1 - adds r0, r0, r1 - ldrb r1, [r0, #0x10] - ldrh r0, [r0, #0xc] - cmp r1, #0 - bne _0819B904 - bl Select_AreSpeciesValid - cmp r0, #0 - bne _0819B904 - bl Select_PrintCantSelectSameMon - movs r0, #3 - bl sub_0819B5F8 - movs r0, #3 - b _0819B93A - .align 2, 0 -_0819B900: .4byte gUnknown_3001278 -_0819B904: - ldr r4, _0819B934 - ldr r1, [r4] - movs r2, #0xa6 - lsls r2, r2, #2 - adds r0, r1, r2 - ldr r0, [r0] - adds r2, #8 - adds r1, r1, r2 - movs r2, #0 - bl sub_0819F2E4 - bl Select_HandleMonSelectionChange - bl Select_PrintSelectMonString - movs r0, #3 - bl sub_0819B5F8 - ldr r0, [r4] - ldrb r0, [r0, #5] - cmp r0, #3 - bhi _0819B938 - movs r0, #1 - b _0819B93A - .align 2, 0 -_0819B934: .4byte gUnknown_3001278 -_0819B938: - movs r0, #2 -_0819B93A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end Select_OptionRentDeselect - - thumb_func_start sub_0819B940 -sub_0819B940: @ 0x0819B940 - push {lr} - bl sub_0819C250 - bl Select_HandleMonSelectionChange - bl Select_PrintSelectMonString - movs r0, #3 - bl sub_0819B5F8 - ldr r0, _0819B964 - ldr r0, [r0] - ldrb r0, [r0, #5] - cmp r0, #3 - bhi _0819B968 - movs r0, #1 - b _0819B96A - .align 2, 0 -_0819B964: .4byte gUnknown_3001278 -_0819B968: - movs r0, #2 -_0819B96A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0819B940 - - thumb_func_start sub_0819B970 -sub_0819B970: @ 0x0819B970 - movs r0, #0 - bx lr - thumb_func_end sub_0819B970 - - thumb_func_start Select_OptionOthers -Select_OptionOthers: @ 0x0819B974 - push {lr} - ldr r0, _0819B998 - ldr r1, [r0] - movs r2, #0xa6 - lsls r2, r2, #2 - adds r0, r1, r2 - ldr r0, [r0] - adds r2, #8 - adds r1, r1, r2 - movs r2, #0 - bl sub_0819F2E4 - movs r0, #3 - bl sub_0819B5F8 - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 -_0819B998: .4byte gUnknown_3001278 - thumb_func_end Select_OptionOthers - - thumb_func_start Select_PrintMonCategory -Select_PrintMonCategory: @ 0x0819B99C - push {r4, r5, lr} - sub sp, #0x18 - ldr r5, _0819BA4C - ldr r0, [r5] - ldrb r4, [r0, #3] - cmp r4, #5 - bhi _0819BA44 - movs r0, #5 - bl PutWindowTilemap - movs r0, #5 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #0x6c - muls r0, r4, r0 - ldr r1, [r5] - adds r0, r0, r1 - adds r0, #0x14 - movs r1, #0xb - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r4, #0 - ldr r2, _0819BA50 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _0819BA0E - adds r3, r2, #0 - adds r2, r1, #0 -_0819B9EC: - mov r1, sp - adds r1, r1, r4 - adds r1, #0xc - adds r0, r4, r2 - adds r0, r0, r3 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #4 - bhi _0819BA0E - adds r0, r4, r2 - adds r0, r0, r3 - ldrb r0, [r0] - cmp r0, #0 - bne _0819B9EC -_0819BA0E: - mov r1, sp - adds r1, r1, r4 - adds r1, #0xc - movs r0, #0xff - strb r0, [r1] - ldr r1, _0819BA54 - add r0, sp, #0xc - bl StringAppend - movs r3, #5 - subs r3, r3, r4 - lsls r3, r3, #0x1b - lsrs r3, r3, #0x18 - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - movs r0, #5 - movs r1, #1 - add r2, sp, #0xc - bl AddTextPrinterParameterized - movs r0, #5 - movs r1, #2 - bl CopyWindowToVram -_0819BA44: - add sp, #0x18 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0819BA4C: .4byte gUnknown_3001278 -_0819BA50: .4byte gUnknown_854069C -_0819BA54: .4byte gUnknown_85C8C66 - thumb_func_end Select_PrintMonCategory - - thumb_func_start Summary_ShowMonSprite -Summary_ShowMonSprite: @ 0x0819BA58 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0x10 - ldr r6, _0819BAFC - ldr r2, [r6] - ldrb r1, [r2, #3] - movs r0, #0x6c - adds r4, r1, #0 - muls r4, r0, r4 - adds r4, r4, r2 - adds r4, #0x14 - adds r0, r4, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - bl GetMonData - mov r8, r0 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl GetMonData - adds r1, r0, #0 - movs r0, #0x58 - str r0, [sp] - movs r0, #0x20 - str r0, [sp, #4] - movs r0, #0xf - str r0, [sp, #8] - ldr r0, _0819BB00 - str r0, [sp, #0xc] - adds r0, r5, #0 - mov r2, r8 - movs r3, #1 - bl CreateMonPicSprite_HandleDeoxys - ldr r1, [r6] - movs r2, #0xa6 - lsls r2, r2, #2 - adds r1, r1, r2 - movs r3, #0 - strb r0, [r1] - ldr r4, _0819BB04 - ldr r0, [r6] - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x28 - strb r3, [r0] - ldr r0, [r6] - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x29 - strb r3, [r0] - ldr r0, [r6] - movs r1, #0xa8 - lsls r1, r1, #2 - adds r0, r0, r1 - strb r3, [r0] - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0819BAFC: .4byte gUnknown_3001278 -_0819BB00: .4byte 0x0000FFFF -_0819BB04: .4byte gUnknown_20205AC - thumb_func_end Summary_ShowMonSprite - - thumb_func_start sub_0819BB08 -sub_0819BB08: @ 0x0819BB08 - ldr r1, _0819BB18 - ldr r1, [r1] - movs r2, #0xa8 - lsls r2, r2, #2 - adds r1, r1, r2 - strb r0, [r1] - bx lr - .align 2, 0 -_0819BB18: .4byte gUnknown_3001278 - thumb_func_end sub_0819BB08 - - thumb_func_start Select_ShowSummaryMonSprite -Select_ShowSummaryMonSprite: @ 0x0819BB1C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - ldr r0, _0819BC00 - movs r1, #0x78 - movs r2, #0x40 - movs r3, #1 - bl CreateSprite - ldr r6, _0819BC04 - ldr r1, [r6] - ldr r2, _0819BC08 - mov sl, r2 - add r1, sl - movs r7, #0 - strb r0, [r1] - ldr r0, [r6] - add r0, sl - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0819BC0C - mov r8, r1 - add r0, r8 - movs r1, #2 - bl StartSpriteAffineAnim - ldr r2, [r6] - ldrb r1, [r2, #3] - movs r0, #0x6c - adds r4, r1, #0 - muls r4, r0, r4 - adds r4, r4, r2 - adds r4, #0x14 - adds r0, r4, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - bl GetMonData - mov sb, r0 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl GetMonData - adds r1, r0, #0 - movs r0, #0x58 - str r0, [sp] - movs r0, #0x20 - str r0, [sp, #4] - movs r0, #0xf - str r0, [sp, #8] - ldr r0, _0819BC10 - str r0, [sp, #0xc] - adds r0, r5, #0 - mov r2, sb - movs r3, #1 - bl CreateMonPicSprite_HandleDeoxys - ldr r1, [r6] - movs r2, #0xa6 - lsls r2, r2, #2 - adds r1, r1, r2 - strb r0, [r1] - ldr r0, [r6] - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - adds r0, #0x28 - strb r7, [r0] - ldr r0, [r6] - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - adds r0, #0x29 - strb r7, [r0] - ldr r0, [r6] - add r0, sl - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0819BC00: .4byte gUnknown_85DBE40 -_0819BC04: .4byte gUnknown_3001278 -_0819BC08: .4byte 0x00000299 -_0819BC0C: .4byte gUnknown_20205AC -_0819BC10: .4byte 0x0000FFFF - thumb_func_end Select_ShowSummaryMonSprite - - thumb_func_start Select_ShowChosenMonsSprites -Select_ShowChosenMonsSprites: @ 0x0819BC14 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - movs r7, #0 - ldr r0, _0819BCE4 - mov sb, r0 -_0819BC26: - movs r2, #0 - adds r1, r7, #1 - mov sl, r1 - lsls r0, r7, #2 - mov r8, r0 -_0819BC30: - mov r0, sb - ldr r1, [r0] - movs r0, #0x6c - adds r4, r2, #0 - muls r4, r0, r4 - adds r0, r1, r4 - ldrb r0, [r0, #0x10] - cmp r0, sl - bne _0819BCF0 - adds r4, r4, r1 - adds r4, #0x14 - adds r0, r4, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - bl GetMonData - adds r6, r0, #0 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl GetMonData - adds r1, r0, #0 - lsls r0, r7, #3 - adds r0, r0, r7 - lsls r0, r0, #0x13 - movs r2, #0x80 - lsls r2, r2, #0xd - adds r0, r0, r2 - asrs r0, r0, #0x10 - str r0, [sp] - movs r0, #0x20 - str r0, [sp, #4] - adds r0, r7, #0 - adds r0, #0xd - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #8] - ldr r0, _0819BCE8 - str r0, [sp, #0xc] - adds r0, r5, #0 - adds r2, r6, #0 - movs r3, #1 - bl CreateMonPicSprite_HandleDeoxys - mov r2, sb - ldr r1, [r2] - add r1, r8 - movs r2, #0xa5 - lsls r2, r2, #2 - adds r1, r1, r2 - strb r0, [r1] - mov r1, sb - ldr r0, [r1] - add r0, r8 - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r2, _0819BCEC - adds r0, r0, r2 - adds r0, #0x28 - movs r1, #0 - strb r1, [r0] - mov r2, sb - ldr r0, [r2] - add r0, r8 - movs r1, #0xa5 - lsls r1, r1, #2 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r2, _0819BCEC - adds r0, r0, r2 - adds r0, #0x29 - movs r1, #0 - strb r1, [r0] - b _0819BCFA - .align 2, 0 -_0819BCE4: .4byte gUnknown_3001278 -_0819BCE8: .4byte 0x0000FFFF -_0819BCEC: .4byte gUnknown_20205AC -_0819BCF0: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #5 - bls _0819BC30 -_0819BCFA: - mov r2, sl - lsls r0, r2, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #2 - bls _0819BC26 - ldr r0, _0819BD24 - ldr r0, [r0] - movs r1, #0xa8 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0819BD24: .4byte gUnknown_3001278 - thumb_func_end Select_ShowChosenMonsSprites - - thumb_func_start sub_0819BD28 -sub_0819BD28: @ 0x0819BD28 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0819BDC4 - ldr r3, _0819BDCC - ldr r6, _0819BDD0 - ldr r2, [r6] - ldr r0, _0819BDD4 - adds r5, r2, r0 - ldrb r0, [r5] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - adds r1, #0x3f - ldrb r0, [r1] - lsls r0, r0, #0x1a - cmp r0, #0 - bge _0819BDC4 - ldr r1, _0819BDD8 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3f - ldrb r0, [r0] - lsls r0, r0, #0x1a - cmp r0, #0 - bge _0819BDC4 - adds r1, r4, #0 - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - ldrb r1, [r5] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - ldr r0, [r6] - ldr r1, _0819BDD8 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - ldr r0, _0819BDDC - movs r1, #1 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0819BDE0 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - ldr r0, _0819BDE4 - str r0, [r4, #0x1c] -_0819BDC4: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0819BDCC: .4byte gUnknown_20205AC -_0819BDD0: .4byte gUnknown_3001278 -_0819BDD4: .4byte 0x00000295 -_0819BDD8: .4byte 0x0000029D -_0819BDDC: .4byte sub_0819BEB8 -_0819BDE0: .4byte gUnknown_3005B60 -_0819BDE4: .4byte sub_08007140 - thumb_func_end sub_0819BD28 - - thumb_func_start sub_0819BDE8 -sub_0819BDE8: @ 0x0819BDE8 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0819BEA2 - ldr r6, _0819BEA8 - ldr r4, _0819BEAC - ldr r2, [r4] - ldr r7, _0819BEB0 - adds r0, r2, r7 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x3f - ldrb r0, [r0] - lsls r0, r0, #0x1a - cmp r0, #0 - bge _0819BEA2 - ldr r1, _0819BEB4 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x3f - ldrb r0, [r0] - lsls r0, r0, #0x1a - cmp r0, #0 - bge _0819BEA2 - ldrb r0, [r5, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - ldr r0, [r4] - adds r0, r0, r7 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r0, [r0, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - ldr r0, [r4] - ldr r1, _0819BEB4 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r0, [r0, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - ldr r0, [r4] - movs r1, #0xa8 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - ldr r0, [r4] - adds r0, r0, r7 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - bl DestroySprite - ldr r0, [r4] - ldr r1, _0819BEB4 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - bl DestroySprite - adds r0, r5, #0 - bl DestroySprite -_0819BEA2: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0819BEA8: .4byte gUnknown_20205AC -_0819BEAC: .4byte gUnknown_3001278 -_0819BEB0: .4byte 0x00000295 -_0819BEB4: .4byte 0x0000029D - thumb_func_end sub_0819BDE8 - - thumb_func_start sub_0819BEB8 -sub_0819BEB8: @ 0x0819BEB8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _0819BEDC - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _0819BF36 - cmp r0, #1 - bgt _0819BEE0 - cmp r0, #0 - beq _0819BEE6 - b _0819BFA2 - .align 2, 0 -_0819BEDC: .4byte gUnknown_3005B60 -_0819BEE0: - cmp r0, #2 - beq _0819BF58 - b _0819BFA2 -_0819BEE6: - movs r0, #0x10 - strh r0, [r4, #0xe] - movs r0, #0xe0 - strh r0, [r4, #0x38] - movs r0, #0x40 - strh r0, [r4, #0x12] - movs r0, #0x41 - strh r0, [r4, #0x18] - movs r1, #0x80 - lsls r1, r1, #6 - movs r0, #0 - bl SetGpuRegBits - ldrh r1, [r4, #0xe] - lsls r1, r1, #8 - ldrh r0, [r4, #0x38] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x40 - bl SetGpuReg - ldrh r1, [r4, #0x12] - lsls r1, r1, #8 - ldrh r0, [r4, #0x18] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x44 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0x3f - bl SetGpuReg - movs r0, #0x4a - movs r1, #0x37 - bl SetGpuReg - b _0819BFAE -_0819BF36: - movs r0, #3 - bl ShowBg - ldr r1, _0819BF50 - movs r0, #0x50 - bl SetGpuReg - ldr r1, _0819BF54 - movs r0, #0x52 - bl SetGpuReg - b _0819BFAE - .align 2, 0 -_0819BF50: .4byte 0x00001248 -_0819BF54: .4byte 0x0000040B -_0819BF58: - ldrh r0, [r4, #0x12] - subs r0, #4 - strh r0, [r4, #0x12] - ldrh r1, [r4, #0x18] - adds r1, #4 - strh r1, [r4, #0x18] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x20 - ble _0819BF74 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x5f - ble _0819BF86 -_0819BF74: - movs r0, #0x20 - strh r0, [r4, #0x12] - movs r0, #0x60 - strh r0, [r4, #0x18] - movs r1, #0x80 - lsls r1, r1, #6 - movs r0, #0 - bl ClearGpuRegBits -_0819BF86: - ldrh r1, [r4, #0x12] - lsls r1, r1, #8 - ldrh r0, [r4, #0x18] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x44 - bl SetGpuReg - movs r1, #0x12 - ldrsh r0, [r4, r1] - cmp r0, #0x20 - bne _0819BFB4 - b _0819BFAE -_0819BFA2: - adds r0, r2, #0 - bl DestroyTask - bl Select_ShowChosenMonsSprites - b _0819BFB4 -_0819BFAE: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_0819BFB4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0819BEB8 - - thumb_func_start sub_0819BFBC -sub_0819BFBC: @ 0x0819BFBC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - ldr r1, _0819C0D8 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0819BFDE - b _0819C0F8 -_0819BFDE: - cmp r0, #1 - bne _0819BFE4 - b _0819C148 -_0819BFE4: - movs r0, #3 - bl HideBg - ldr r4, _0819C0DC - ldr r0, _0819C0E0 - mov r8, r0 - ldr r0, [r0] - ldr r1, _0819C0E4 - mov ip, r1 - add r0, ip - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - adds r1, #0x3e - ldrb r2, [r1] - movs r3, #5 - rsbs r3, r3, #0 - adds r0, r3, #0 - ands r0, r2 - strb r0, [r1] - mov r0, r8 - ldr r2, [r0] - mov r1, ip - adds r0, r2, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r6, r4, #0 - adds r6, #0x1c - adds r0, r0, r6 - ldr r1, _0819C0E8 - str r1, [r0] - ldr r0, _0819C0EC - mov sb, r0 - add r2, sb - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r2, [r0] - adds r1, r3, #0 - ands r1, r2 - strb r1, [r0] - mov r1, r8 - ldr r2, [r1] - mov r1, sb - adds r0, r2, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r1, _0819C0F0 - mov sl, r1 - str r1, [r0] - ldr r5, _0819C0F4 - adds r2, r2, r5 - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r1, [r0] - ands r3, r1 - strb r3, [r0] - mov r0, r8 - ldr r2, [r0] - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - mov r1, sl - str r1, [r0] - add r2, ip - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #1 - bl StartSpriteAffineAnim - mov r1, r8 - ldr r0, [r1] - add r0, sb - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #1 - bl StartSpriteAffineAnim - mov r1, r8 - ldr r0, [r1] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #1 - bl StartSpriteAffineAnim - movs r1, #0x80 - lsls r1, r1, #6 - movs r0, #0 - bl ClearGpuRegBits - adds r0, r7, #0 - bl DestroyTask - b _0819C18C - .align 2, 0 -_0819C0D8: .4byte gUnknown_3005B60 -_0819C0DC: .4byte gUnknown_20205AC -_0819C0E0: .4byte gUnknown_3001278 -_0819C0E4: .4byte 0x00000299 -_0819C0E8: .4byte sub_0819BDE8 -_0819C0EC: .4byte 0x00000295 -_0819C0F0: .4byte sub_08007140 -_0819C0F4: .4byte 0x0000029D -_0819C0F8: - movs r0, #0x10 - strh r0, [r4, #0xe] - movs r0, #0xe0 - strh r0, [r4, #0x38] - movs r0, #0x20 - strh r0, [r4, #0x12] - movs r0, #0x60 - strh r0, [r4, #0x18] - movs r1, #0x80 - lsls r1, r1, #6 - movs r0, #0 - bl SetGpuRegBits - ldrh r1, [r4, #0xe] - lsls r1, r1, #8 - ldrh r0, [r4, #0x38] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x40 - bl SetGpuReg - ldrh r1, [r4, #0x12] - lsls r1, r1, #8 - ldrh r0, [r4, #0x18] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x44 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0x3f - bl SetGpuReg - movs r0, #0x4a - movs r1, #0x37 - bl SetGpuReg - b _0819C186 -_0819C148: - ldrh r0, [r4, #0x12] - adds r0, #4 - strh r0, [r4, #0x12] - ldrh r1, [r4, #0x18] - subs r1, #4 - strh r1, [r4, #0x18] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3f - bgt _0819C164 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x41 - bgt _0819C16C -_0819C164: - movs r0, #0x40 - strh r0, [r4, #0x12] - movs r0, #0x41 - strh r0, [r4, #0x18] -_0819C16C: - ldrh r1, [r4, #0x12] - lsls r1, r1, #8 - ldrh r0, [r4, #0x18] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x44 - bl SetGpuReg - movs r1, #0x12 - ldrsh r0, [r4, r1] - cmp r0, #0x40 - bne _0819C18C -_0819C186: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_0819C18C: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0819BFBC - - thumb_func_start sub_0819C19C -sub_0819C19C: @ 0x0819C19C - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - ldr r4, _0819C230 - adds r0, r4, #0 - movs r1, #0x78 - movs r2, #0x40 - movs r3, #1 - bl CreateSprite - ldr r6, _0819C234 - ldr r1, [r6] - ldr r2, _0819C238 - mov r8, r2 - add r1, r8 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x2c - movs r2, #0x40 - movs r3, #1 - bl CreateSprite - ldr r1, [r6] - ldr r5, _0819C23C - adds r1, r1, r5 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0xc4 - movs r2, #0x40 - movs r3, #1 - bl CreateSprite - ldr r1, [r6] - ldr r4, _0819C240 - adds r1, r1, r4 - strb r0, [r1] - ldr r3, _0819C244 - ldr r2, [r6] - add r8, r2 - mov r0, r8 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r3, #0x1c - adds r0, r0, r3 - ldr r1, _0819C248 - str r1, [r0] - adds r5, r2, r5 - ldrb r1, [r5] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldr r5, _0819C24C - str r5, [r0] - adds r4, r2, r4 - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - str r5, [r0] - movs r0, #0xa8 - lsls r0, r0, #2 - adds r2, r2, r0 - movs r0, #1 - strb r0, [r2] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0819C230: .4byte gUnknown_85DBE40 -_0819C234: .4byte gUnknown_3001278 -_0819C238: .4byte 0x00000299 -_0819C23C: .4byte 0x00000295 -_0819C240: .4byte 0x0000029D -_0819C244: .4byte gUnknown_20205AC -_0819C248: .4byte sub_0819BD28 -_0819C24C: .4byte sub_08007140 - thumb_func_end sub_0819C19C - - thumb_func_start sub_0819C250 -sub_0819C250: @ 0x0819C250 - push {r4, lr} - ldr r4, _0819C2AC - ldr r0, [r4] - movs r1, #0xa5 - lsls r1, r1, #2 - adds r0, r0, r1 - ldrb r0, [r0] - bl FreeAndDestroyMonPicSprite - ldr r0, [r4] - movs r1, #0xa6 - lsls r1, r1, #2 - adds r0, r0, r1 - ldrb r0, [r0] - bl FreeAndDestroyMonPicSprite - ldr r0, [r4] - movs r1, #0xa7 - lsls r1, r1, #2 - adds r0, r0, r1 - ldrb r0, [r0] - bl FreeAndDestroyMonPicSprite - ldr r0, _0819C2B0 - movs r1, #1 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0819C2B4 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - ldr r0, [r4] - movs r1, #0xa8 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r1, #1 - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0819C2AC: .4byte gUnknown_3001278 -_0819C2B0: .4byte sub_0819BFBC -_0819C2B4: .4byte gUnknown_3005B60 - thumb_func_end sub_0819C250 - - thumb_func_start Select_SetWinRegs -Select_SetWinRegs: @ 0x0819C2B8 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r4, r0, #0 - adds r6, r1, #0 - adds r5, r2, #0 - mov r8, r3 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - mov r0, r8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - movs r1, #0x80 - lsls r1, r1, #6 - movs r0, #0 - bl SetGpuRegBits - lsls r4, r4, #0x18 - lsrs r4, r4, #0x10 - orrs r4, r6 - movs r0, #0x40 - adds r1, r4, #0 - bl SetGpuReg - lsls r5, r5, #0x18 - lsrs r5, r5, #0x10 - mov r0, r8 - orrs r5, r0 - movs r0, #0x44 - adds r1, r5, #0 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0x3f - bl SetGpuReg - movs r0, #0x4a - movs r1, #0x37 - bl SetGpuReg - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end Select_SetWinRegs - - thumb_func_start Select_AreSpeciesValid -Select_AreSpeciesValid: @ 0x0819C31C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - ldr r2, _0819C360 - ldr r1, [r2] - lsrs r0, r0, #0xc - adds r0, r0, r1 - ldrh r6, [r0] - ldr r0, _0819C364 - ldr r0, [r0] - ldrb r5, [r0, #5] - movs r3, #1 - cmp r3, r5 - bhs _0819C37C - adds r4, r0, #0 - movs r0, #0x6c - mov ip, r0 - adds r7, r2, #0 -_0819C33E: - movs r2, #0 -_0819C340: - mov r0, ip - muls r0, r2, r0 - adds r1, r4, r0 - ldrb r0, [r1, #0x10] - cmp r0, r3 - bne _0819C368 - ldrh r0, [r1, #0xc] - ldr r1, [r7] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, r6 - bne _0819C372 - movs r0, #0 - b _0819C37E - .align 2, 0 -_0819C360: .4byte gUnknown_203B958 -_0819C364: .4byte gUnknown_3001278 -_0819C368: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #5 - bls _0819C340 -_0819C372: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, r5 - blo _0819C33E -_0819C37C: - movs r0, #1 -_0819C37E: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end Select_AreSpeciesValid - - thumb_func_start Task_SelectFadeSpeciesName -Task_SelectFadeSpeciesName: @ 0x0819C384 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _0819C3A8 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r5, r0, r1 - movs r0, #8 - ldrsh r2, [r5, r0] - cmp r2, #1 - beq _0819C3E0 - cmp r2, #1 - bgt _0819C3AC - cmp r2, #0 - beq _0819C3B2 - b _0819C4C0 - .align 2, 0 -_0819C3A8: .4byte gUnknown_3005B60 -_0819C3AC: - cmp r2, #2 - beq _0819C49C - b _0819C4C0 -_0819C3B2: - ldr r1, _0819C3D4 - ldr r0, [r1] - ldr r3, _0819C3D8 - adds r0, r0, r3 - strb r2, [r0] - ldr r0, [r1] - adds r3, #1 - adds r0, r0, r3 - strb r2, [r0] - ldr r0, [r1] - ldr r1, _0819C3DC - adds r0, r0, r1 - movs r1, #1 - strb r1, [r0] - strh r1, [r5, #8] - b _0819C4C0 - .align 2, 0 -_0819C3D4: .4byte gUnknown_3001278 -_0819C3D8: .4byte 0x000002A7 -_0819C3DC: .4byte 0x000002A6 -_0819C3E0: - ldr r0, _0819C400 - ldr r3, [r0] - ldr r2, _0819C404 - adds r1, r3, r2 - ldrb r1, [r1] - adds r7, r0, #0 - cmp r1, #0 - beq _0819C4C0 - ldr r1, _0819C408 - adds r0, r3, r1 - ldrb r4, [r0] - cmp r4, #0 - beq _0819C40C - movs r0, #2 - strh r0, [r5, #8] - b _0819C4C0 - .align 2, 0 -_0819C400: .4byte gUnknown_3001278 -_0819C404: .4byte 0x000002A2 -_0819C408: .4byte 0x000002A9 -_0819C40C: - ldr r2, _0819C43C - adds r1, r3, r2 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r0, [r7] - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, #6 - bls _0819C44C - strb r4, [r1] - ldr r1, [r7] - subs r2, #1 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _0819C440 - movs r3, #0xaa - lsls r3, r3, #2 - adds r1, r1, r3 - ldrb r0, [r1] - subs r0, #1 - b _0819C44A - .align 2, 0 -_0819C43C: .4byte 0x000002A7 -_0819C440: - movs r0, #0xaa - lsls r0, r0, #2 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 -_0819C44A: - strb r0, [r1] -_0819C44C: - movs r0, #0x80 - lsls r0, r0, #7 - ldr r1, [r7] - movs r4, #0xaa - lsls r4, r4, #2 - adds r1, r1, r4 - ldrb r1, [r1] - movs r2, #0 - bl BlendPalettes - ldr r2, [r7] - adds r4, r2, r4 - ldrb r0, [r4] - cmp r0, #5 - bls _0819C478 - ldr r3, _0819C474 - adds r1, r2, r3 - movs r0, #0 - b _0819C4BE - .align 2, 0 -_0819C474: .4byte 0x000002A6 -_0819C478: - cmp r0, #0 - bne _0819C4C0 - ldr r1, _0819C494 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #2 - strh r1, [r0, #8] - ldr r0, _0819C498 - adds r1, r2, r0 - movs r0, #1 - b _0819C4BE - .align 2, 0 -_0819C494: .4byte gUnknown_3005B60 -_0819C498: .4byte 0x000002A6 -_0819C49C: - ldr r0, _0819C4B4 - ldr r0, [r0] - ldr r2, _0819C4B8 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, #0xe - bls _0819C4BC - movs r0, #0 - strb r0, [r1] - movs r0, #1 - strh r0, [r5, #8] - b _0819C4C0 - .align 2, 0 -_0819C4B4: .4byte gUnknown_3001278 -_0819C4B8: .4byte 0x000002A9 -_0819C4BC: - adds r0, #1 -_0819C4BE: - strb r0, [r1] -_0819C4C0: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Task_SelectFadeSpeciesName - - thumb_func_start Swap_CB2 -Swap_CB2: @ 0x0819C4C8 - push {lr} - bl AnimateSprites - bl BuildOamBuffer - bl sub_08004630 - bl UpdatePaletteFade - bl RunTasks - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Swap_CB2 - - thumb_func_start FldEff_UseCutOnTree -FldEff_UseCutOnTree: @ 0x0819C4E4 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end FldEff_UseCutOnTree - - thumb_func_start CopySwappedMonData -CopySwappedMonData: @ 0x0819C4F8 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #4 - ldr r4, _0819C5D8 - ldr r5, _0819C5DC - ldr r1, [r5] - ldrb r0, [r1, #0x12] - movs r6, #0x64 - muls r0, r6, r0 - adds r0, r0, r4 - ldr r2, _0819C5E0 - mov sb, r2 - ldrb r1, [r1, #0x13] - muls r1, r6, r1 - add r1, sb - movs r2, #0x64 - bl memcpy - movs r1, #0 - mov r0, sp - strb r1, [r0] - ldr r0, [r5] - ldrb r0, [r0, #0x12] - muls r0, r6, r0 - adds r0, r0, r4 - movs r1, #0x20 - mov r2, sp - bl SetMonData - ldr r3, _0819C5E4 - mov r8, r3 - ldr r3, [r3] - ldr r4, [r5] - ldrb r0, [r4, #0x12] - lsls r2, r0, #1 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r3, r2 - ldrb r1, [r4, #0x13] - adds r1, #3 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r3, r0 - movs r1, #0xe7 - lsls r1, r1, #4 - adds r0, r0, r1 - ldrh r0, [r0] - adds r2, r2, r1 - strh r0, [r2] - ldrb r0, [r4, #0x12] - lsls r2, r0, #1 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r3, r2 - ldrb r1, [r4, #0x13] - adds r1, #3 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r3, r3, r0 - ldr r0, _0819C5E8 - adds r3, r3, r0 - ldrb r1, [r3] - adds r2, r2, r0 - strb r1, [r2] - ldr r0, [r5] - ldrb r0, [r0, #0x13] - muls r0, r6, r0 - add r0, sb - movs r1, #0 - movs r2, #0 - bl GetMonData - mov r1, r8 - ldr r2, [r1] - ldr r4, [r5] - ldrb r3, [r4, #0x12] - lsls r1, r3, #1 - adds r1, r1, r3 - lsls r1, r1, #2 - ldr r3, _0819C5EC - adds r2, r2, r3 - adds r2, r2, r1 - str r0, [r2] - ldrb r0, [r4, #0x13] - muls r0, r6, r0 - add r0, sb - movs r1, #0x2e - movs r2, #0 - bl sub_0806A1B4 - mov r1, r8 - ldr r2, [r1] - ldr r1, [r5] - ldrb r3, [r1, #0x12] - lsls r1, r3, #1 - adds r1, r1, r3 - lsls r1, r1, #2 - adds r2, r2, r1 - ldr r3, _0819C5F0 - adds r2, r2, r3 - strb r0, [r2] - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0819C5D8: .4byte gUnknown_2024190 -_0819C5DC: .4byte gUnknown_3001280 -_0819C5E0: .4byte gUnknown_20243E8 -_0819C5E4: .4byte gUnknown_3005AF0 -_0819C5E8: .4byte 0x00000E78 -_0819C5EC: .4byte 0x00000E74 -_0819C5F0: .4byte 0x00000E79 - thumb_func_end CopySwappedMonData - - thumb_func_start Task_FromSwapScreenToSummaryScreen -Task_FromSwapScreenToSummaryScreen: @ 0x0819C5F4 - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _0819C618 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r6, r0, r1 - movs r1, #8 - ldrsh r0, [r6, r1] - cmp r0, #7 - beq _0819C638 - cmp r0, #7 - bgt _0819C61C - cmp r0, #6 - beq _0819C622 - b _0819C6D8 - .align 2, 0 -_0819C618: .4byte gUnknown_3005B60 -_0819C61C: - cmp r0, #8 - beq _0819C6AC - b _0819C6D8 -_0819C622: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - movs r0, #7 - strh r0, [r6, #8] - b _0819C6D8 -_0819C638: - ldr r0, _0819C694 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _0819C6D8 - ldr r4, _0819C698 - ldr r0, [r4] - adds r0, #0x21 - ldrb r0, [r0] - bl DestroyTask - ldr r1, [r4] - ldr r0, [r1, #0x2c] - adds r1, #0x30 - bl sub_0819F330 - bl Swap_DestroyAllSprites - ldr r4, _0819C69C - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0819C6A0 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0819C6A4 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0819C6A8 - ldr r0, [r4] - bl Free - str r5, [r4] - bl FreeAllWindowBuffers - movs r0, #8 - strh r0, [r6, #8] - b _0819C6D8 - .align 2, 0 -_0819C694: .4byte gUnknown_2037C74 -_0819C698: .4byte gUnknown_3001280 -_0819C69C: .4byte gUnknown_203CB0C -_0819C6A0: .4byte gUnknown_203CB10 -_0819C6A4: .4byte gUnknown_203CB14 -_0819C6A8: .4byte gUnknown_203CB18 -_0819C6AC: - adds r0, r2, #0 - bl DestroyTask - ldr r2, _0819C6E0 - ldr r1, [r2] - movs r0, #1 - strb r0, [r1, #0x15] - ldr r2, [r2] - ldr r0, _0819C6E4 - movs r1, #0xf4 - lsls r1, r1, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2, #0x24] - ldr r1, _0819C6E8 - ldrb r2, [r2, #3] - ldr r0, _0819C6EC - str r0, [sp] - movs r0, #0 - movs r3, #2 - bl ShowPokemonSummaryScreen -_0819C6D8: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0819C6E0: .4byte gUnknown_3001280 -_0819C6E4: .4byte gUnknown_20373B4 -_0819C6E8: .4byte gUnknown_2024190 -_0819C6EC: .4byte CB2_InitSwapScreen - thumb_func_end Task_FromSwapScreenToSummaryScreen - - thumb_func_start Task_CloseSwapScreen -Task_CloseSwapScreen: @ 0x0819C6F0 - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r7, _0819C724 - ldr r2, [r7] - adds r0, r2, #0 - adds r0, #0x30 - ldrb r0, [r0] - cmp r0, #1 - beq _0819C7E6 - ldr r1, _0819C728 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r0, #8 - ldrsh r1, [r4, r0] - cmp r1, #1 - beq _0819C760 - cmp r1, #1 - bgt _0819C72C - cmp r1, #0 - beq _0819C736 - b _0819C7E6 - .align 2, 0 -_0819C724: .4byte gUnknown_3001280 -_0819C728: .4byte gUnknown_3005B60 -_0819C72C: - cmp r1, #2 - beq _0819C774 - cmp r1, #3 - beq _0819C78C - b _0819C7E6 -_0819C736: - adds r0, r2, #0 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #1 - bne _0819C750 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - ldr r0, _0819C74C - strh r1, [r0] - b _0819C7E6 - .align 2, 0 -_0819C74C: .4byte gUnknown_2037290 -_0819C750: - movs r0, #2 - strh r0, [r4, #8] - ldr r1, _0819C75C - movs r0, #1 - strh r0, [r1] - b _0819C7E6 - .align 2, 0 -_0819C75C: .4byte gUnknown_2037290 -_0819C760: - adds r0, r2, #0 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #1 - bne _0819C784 - ldrb r0, [r2, #3] - strb r0, [r2, #0x13] - bl CopySwappedMonData - b _0819C784 -_0819C774: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade -_0819C784: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _0819C7E6 -_0819C78C: - bl UpdatePaletteFade - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _0819C7E6 - ldr r0, [r7] - adds r0, #0x21 - ldrb r0, [r0] - bl DestroyTask - bl Swap_DestroyAllSprites - ldr r4, _0819C7F0 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0819C7F4 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0819C7F8 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _0819C7FC - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r0, [r7] - bl Free - str r5, [r7] - bl FreeAllWindowBuffers - ldr r0, _0819C800 - bl SetMainCallback2 - adds r0, r6, #0 - bl DestroyTask -_0819C7E6: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0819C7F0: .4byte gUnknown_203CB0C -_0819C7F4: .4byte gUnknown_203CB10 -_0819C7F8: .4byte gUnknown_203CB14 -_0819C7FC: .4byte gUnknown_203CB18 -_0819C800: .4byte CB2_ReturnToFieldContinueScript - thumb_func_end Task_CloseSwapScreen - - thumb_func_start Task_HandleSwapScreenYesNo -Task_HandleSwapScreenYesNo: @ 0x0819C804 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r7, _0819C830 - ldr r0, [r7] - adds r0, #0x30 - ldrb r0, [r0] - cmp r0, #1 - beq _0819C8BE - ldr r1, _0819C834 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #4 - beq _0819C838 - cmp r0, #5 - beq _0819C842 - b _0819C8BE - .align 2, 0 -_0819C830: .4byte gUnknown_3001280 -_0819C834: .4byte gUnknown_3005B60 -_0819C838: - bl Swap_ShowYesNoOptions - movs r0, #5 - strh r0, [r4, #8] - b _0819C8BE -_0819C842: - ldr r2, _0819C864 - ldrh r1, [r2, #0x2e] - movs r6, #1 - adds r5, r6, #0 - ands r5, r1 - cmp r5, #0 - beq _0819C86E - movs r0, #5 - bl sub_080A306C - ldr r0, [r7] - ldrb r0, [r0, #0x16] - cmp r0, #0 - bne _0819C868 - strh r6, [r4, #0xa] - b _0819C884 - .align 2, 0 -_0819C864: .4byte gUnknown_3002360 -_0819C868: - movs r0, #0 - strh r0, [r4, #0xa] - b _0819C87E -_0819C86E: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0819C890 - movs r0, #5 - bl sub_080A306C - strh r5, [r4, #0xa] -_0819C87E: - movs r0, #4 - bl sub_0819E76C -_0819C884: - ldrh r0, [r4, #0x14] - ldrh r1, [r4, #0x16] - lsls r0, r0, #0x10 - orrs r0, r1 - str r0, [r4] - b _0819C8BE -_0819C890: - ldrh r1, [r2, #0x30] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0819C8AA - movs r0, #5 - bl sub_080A306C - movs r0, #1 - rsbs r0, r0, #0 - bl Swap_UpdateYesNoCursorPosition - b _0819C8BE -_0819C8AA: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0819C8BE - movs r0, #5 - bl sub_080A306C - movs r0, #1 - bl Swap_UpdateYesNoCursorPosition -_0819C8BE: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end Task_HandleSwapScreenYesNo - - thumb_func_start sub_0819C8C4 -sub_0819C8C4: @ 0x0819C8C4 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0819C8E4 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r2, r1, r2 - movs r1, #0xa - ldrsh r0, [r2, r1] - cmp r0, #1 - bne _0819C8EC - movs r0, #0 - strh r0, [r2, #8] - ldr r0, _0819C8E8 - b _0819C8FE - .align 2, 0 -_0819C8E4: .4byte gUnknown_3005B60 -_0819C8E8: .4byte Task_CloseSwapScreen -_0819C8EC: - movs r0, #0 - strh r0, [r2, #8] - ldr r1, _0819C904 - lsrs r0, r1, #0x10 - strh r0, [r2, #0x14] - strh r1, [r2, #0x16] - movs r0, #1 - strh r0, [r2, #0x12] - ldr r0, _0819C908 -_0819C8FE: - str r0, [r2] - pop {r0} - bx r0 - .align 2, 0 -_0819C904: .4byte Task_HandleSwapScreenChooseMons -_0819C908: .4byte sub_0819D458 - thumb_func_end sub_0819C8C4 - - thumb_func_start sub_0819C90C -sub_0819C90C: @ 0x0819C90C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0819C948 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 - movs r0, #8 - ldrsh r5, [r4, r0] - cmp r5, #0 - bne _0819C942 - ldr r0, _0819C94C - bl Swap_PrintOnInfoWindow - ldr r0, _0819C950 - ldr r0, [r0] - adds r0, #0x20 - strb r5, [r0] - movs r0, #4 - strh r0, [r4, #8] - ldr r1, _0819C954 - lsrs r0, r1, #0x10 - strh r0, [r4, #0x14] - strh r1, [r4, #0x16] - ldr r0, _0819C958 - str r0, [r4] -_0819C942: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0819C948: .4byte gUnknown_3005B60 -_0819C94C: .4byte gUnknown_85DC0FB -_0819C950: .4byte gUnknown_3001280 -_0819C954: .4byte sub_0819C8C4 -_0819C958: .4byte Task_HandleSwapScreenYesNo - thumb_func_end sub_0819C90C - - thumb_func_start sub_0819C95C -sub_0819C95C: @ 0x0819C95C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _0819C98C - ldr r1, [r0] - ldr r0, [r1, #0x2c] - adds r1, #0x30 - movs r2, #1 - bl sub_0819F2E4 - ldr r1, _0819C990 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r2, r0, r1 - movs r1, #0xa - ldrsh r0, [r2, r1] - cmp r0, #1 - bne _0819C998 - movs r0, #0 - strh r0, [r2, #8] - ldr r0, _0819C994 - b _0819C9AA - .align 2, 0 -_0819C98C: .4byte gUnknown_3001280 -_0819C990: .4byte gUnknown_3005B60 -_0819C994: .4byte Task_CloseSwapScreen -_0819C998: - movs r0, #0 - strh r0, [r2, #8] - ldr r1, _0819C9B4 - lsrs r0, r1, #0x10 - strh r0, [r2, #0x14] - strh r1, [r2, #0x16] - movs r0, #1 - strh r0, [r2, #0x12] - ldr r0, _0819C9B8 -_0819C9AA: - str r0, [r2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0819C9B4: .4byte Task_HandleSwapScreenChooseMons -_0819C9B8: .4byte sub_0819D458 - thumb_func_end sub_0819C95C - - thumb_func_start sub_0819C9BC -sub_0819C9BC: @ 0x0819C9BC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0819CA08 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r5, r1, r2 - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _0819CA02 - ldr r4, _0819CA0C - ldr r1, [r4] - adds r0, r1, #0 - adds r0, #0x2d - adds r1, #0x30 - movs r2, #1 - bl sub_0819F1A0 - ldr r0, _0819CA10 - bl Swap_PrintOnInfoWindow - ldr r0, [r4] - adds r0, #0x20 - movs r1, #1 - strb r1, [r0] - movs r0, #4 - strh r0, [r5, #8] - ldr r1, _0819CA14 - lsrs r0, r1, #0x10 - strh r0, [r5, #0x14] - strh r1, [r5, #0x16] - ldr r0, _0819CA18 - str r0, [r5] -_0819CA02: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0819CA08: .4byte gUnknown_3005B60 -_0819CA0C: .4byte gUnknown_3001280 -_0819CA10: .4byte gUnknown_85DC12B -_0819CA14: .4byte sub_0819C95C -_0819CA18: .4byte Task_HandleSwapScreenYesNo - thumb_func_end sub_0819C9BC - - thumb_func_start Task_HandleSwapScreenMenu -Task_HandleSwapScreenMenu: @ 0x0819CA1C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _0819CA44 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r5, r0, r1 - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #3 - beq _0819CA8C - cmp r0, #3 - bgt _0819CA48 - cmp r0, #2 - beq _0819CA4E - b _0819CB1E - .align 2, 0 -_0819CA44: .4byte gUnknown_3005B60 -_0819CA48: - cmp r0, #9 - beq _0819CA70 - b _0819CB1E -_0819CA4E: - ldr r0, _0819CA6C - ldr r1, [r0] - ldrb r0, [r1, #0x15] - cmp r0, #0 - bne _0819CA64 - adds r0, r1, #0 - adds r0, #0x2d - adds r1, #0x30 - movs r2, #1 - bl sub_0819F1A0 -_0819CA64: - movs r0, #9 - strh r0, [r5, #8] - b _0819CB1E - .align 2, 0 -_0819CA6C: .4byte gUnknown_3001280 -_0819CA70: - ldr r0, _0819CA88 - ldr r0, [r0] - adds r0, #0x30 - ldrb r0, [r0] - cmp r0, #1 - beq _0819CB1E - bl Swap_ShowMenuOptions - movs r0, #3 - strh r0, [r5, #8] - b _0819CB1E - .align 2, 0 -_0819CA88: .4byte gUnknown_3001280 -_0819CA8C: - ldr r7, _0819CAB8 - ldr r0, [r7] - adds r0, #0x30 - ldrb r0, [r0] - cmp r0, #1 - beq _0819CB1E - ldr r2, _0819CABC - ldrh r1, [r2, #0x2e] - movs r0, #1 - mov r8, r0 - mov r4, r8 - ands r4, r1 - cmp r4, #0 - beq _0819CAC0 - movs r0, #5 - bl sub_080A306C - adds r0, r6, #0 - bl Swap_RunMenuOptionFunc - b _0819CB1E - .align 2, 0 -_0819CAB8: .4byte gUnknown_3001280 -_0819CABC: .4byte gUnknown_3002360 -_0819CAC0: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0819CAFC - movs r0, #5 - bl sub_080A306C - ldr r1, [r7] - ldr r0, [r1, #0x2c] - adds r1, #0x30 - movs r2, #1 - bl sub_0819F2E4 - movs r0, #3 - bl sub_0819E76C - strh r4, [r5, #8] - ldr r1, _0819CAF4 - lsrs r0, r1, #0x10 - strh r0, [r5, #0x14] - strh r1, [r5, #0x16] - mov r1, r8 - strh r1, [r5, #0x12] - ldr r0, _0819CAF8 - str r0, [r5] - b _0819CB1E - .align 2, 0 -_0819CAF4: .4byte Task_HandleSwapScreenChooseMons -_0819CAF8: .4byte sub_0819D458 -_0819CAFC: - ldrh r1, [r2, #0x30] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0819CB10 - movs r0, #1 - rsbs r0, r0, #0 - bl Swap_UpdateMenuCursorPosition - b _0819CB1E -_0819CB10: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0819CB1E - movs r0, #1 - bl Swap_UpdateMenuCursorPosition -_0819CB1E: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end Task_HandleSwapScreenMenu - - thumb_func_start Task_HandleSwapScreenChooseMons -Task_HandleSwapScreenChooseMons: @ 0x0819CB28 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _0819CB48 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0819CB4C - cmp r0, #1 - beq _0819CB70 - b _0819CC34 - .align 2, 0 -_0819CB48: .4byte gUnknown_3005B60 -_0819CB4C: - ldr r0, _0819CB68 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0819CC34 - ldr r0, _0819CB6C - ldr r0, [r0] - adds r0, #0x22 - movs r1, #1 - strb r1, [r0] - strh r1, [r4, #8] - b _0819CC34 - .align 2, 0 -_0819CB68: .4byte gUnknown_2037C74 -_0819CB6C: .4byte gUnknown_3001280 -_0819CB70: - ldr r2, _0819CB9C - ldrh r1, [r2, #0x2e] - adds r5, r1, #0 - ands r5, r0 - cmp r5, #0 - beq _0819CBA4 - movs r0, #5 - bl sub_080A306C - ldr r0, _0819CBA0 - ldr r0, [r0] - adds r0, #0x22 - movs r1, #0 - strb r1, [r0] - bl Swap_PrintMonSpecies2 - bl sub_0819E7C8 - adds r0, r6, #0 - bl Swap_RunActionFunc - b _0819CC34 - .align 2, 0 -_0819CB9C: .4byte gUnknown_3002360 -_0819CBA0: .4byte gUnknown_3001280 -_0819CBA4: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0819CBE0 - movs r0, #5 - bl sub_080A306C - ldr r0, _0819CBD4 - ldr r0, [r0] - adds r0, #0x22 - strb r5, [r0] - bl Swap_PrintMonSpecies2 - bl sub_0819E7C8 - ldr r1, _0819CBD8 - lsrs r0, r1, #0x10 - strh r0, [r4, #0x14] - strh r1, [r4, #0x16] - strh r5, [r4, #8] - strh r5, [r4, #0x12] - ldr r0, _0819CBDC - str r0, [r4] - b _0819CC34 - .align 2, 0 -_0819CBD4: .4byte gUnknown_3001280 -_0819CBD8: .4byte sub_0819C90C -_0819CBDC: .4byte sub_0819D270 -_0819CBE0: - ldrh r1, [r2, #0x30] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0819CBF4 - movs r0, #1 - rsbs r0, r0, #0 - bl Swap_UpdateBallCursorPosition - b _0819CC12 -_0819CBF4: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0819CC04 - movs r0, #1 - bl Swap_UpdateBallCursorPosition - b _0819CC12 -_0819CC04: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0819CC1C - movs r0, #1 - bl Swap_UpdateActionCursorPosition -_0819CC12: - bl Swap_PrintMonCategory - bl Swap_PrintMonSpecies - b _0819CC34 -_0819CC1C: - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0819CC34 - movs r0, #1 - rsbs r0, r0, #0 - bl Swap_UpdateActionCursorPosition - bl Swap_PrintMonCategory - bl Swap_PrintMonSpecies -_0819CC34: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Task_HandleSwapScreenChooseMons - - thumb_func_start Task_SwapFadeSpeciesName -Task_SwapFadeSpeciesName: @ 0x0819CC3C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _0819CC60 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r0, #8 - ldrsh r2, [r4, r0] - cmp r2, #1 - beq _0819CC88 - cmp r2, #1 - bgt _0819CC64 - cmp r2, #0 - beq _0819CC6A - b _0819CD44 - .align 2, 0 -_0819CC60: .4byte gUnknown_3005B60 -_0819CC64: - cmp r2, #2 - beq _0819CD24 - b _0819CD44 -_0819CC6A: - ldr r1, _0819CC84 - ldr r0, [r1] - adds r0, #0x27 - strb r2, [r0] - ldr r0, [r1] - adds r0, #0x28 - strb r2, [r0] - ldr r0, [r1] - adds r0, #0x26 - movs r1, #1 - strb r1, [r0] - strh r1, [r4, #8] - b _0819CD44 - .align 2, 0 -_0819CC84: .4byte gUnknown_3001280 -_0819CC88: - ldr r1, _0819CCA8 - ldr r2, [r1] - adds r0, r2, #0 - adds r0, #0x22 - ldrb r0, [r0] - adds r6, r1, #0 - cmp r0, #0 - beq _0819CD44 - adds r0, r2, #0 - adds r0, #0x29 - ldrb r3, [r0] - cmp r3, #0 - beq _0819CCAC - movs r0, #2 - strh r0, [r4, #8] - b _0819CD44 - .align 2, 0 -_0819CCA8: .4byte gUnknown_3001280 -_0819CCAC: - adds r1, r2, #0 - adds r1, #0x27 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r0, [r6] - adds r1, r0, #0 - adds r1, #0x27 - ldrb r0, [r1] - cmp r0, #6 - bls _0819CCE0 - strb r3, [r1] - ldr r1, [r6] - adds r0, r1, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - bne _0819CCD8 - adds r1, #0x28 - ldrb r0, [r1] - subs r0, #1 - b _0819CCDE -_0819CCD8: - adds r1, #0x28 - ldrb r0, [r1] - adds r0, #1 -_0819CCDE: - strb r0, [r1] -_0819CCE0: - movs r0, #0x80 - lsls r0, r0, #7 - ldr r1, [r6] - adds r1, #0x28 - ldrb r1, [r1] - movs r2, #0 - bl BlendPalettes - ldr r2, [r6] - adds r0, r2, #0 - adds r0, #0x28 - ldrb r0, [r0] - cmp r0, #5 - bls _0819CD04 - adds r1, r2, #0 - adds r1, #0x26 - movs r0, #0 - b _0819CD42 -_0819CD04: - cmp r0, #0 - bne _0819CD44 - ldr r1, _0819CD20 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #2 - strh r1, [r0, #8] - adds r1, r2, #0 - adds r1, #0x26 - movs r0, #1 - b _0819CD42 - .align 2, 0 -_0819CD20: .4byte gUnknown_3005B60 -_0819CD24: - ldr r0, _0819CD3C - ldr r0, [r0] - adds r1, r0, #0 - adds r1, #0x29 - ldrb r0, [r1] - cmp r0, #0xe - bls _0819CD40 - movs r0, #0 - strb r0, [r1] - movs r0, #1 - strh r0, [r4, #8] - b _0819CD44 - .align 2, 0 -_0819CD3C: .4byte gUnknown_3001280 -_0819CD40: - adds r0, #1 -_0819CD42: - strb r0, [r1] -_0819CD44: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Task_SwapFadeSpeciesName - - thumb_func_start Task_SwapFadeSpeciesName2 -Task_SwapFadeSpeciesName2: @ 0x0819CD4C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0819CD70 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 - movs r0, #8 - ldrsh r1, [r4, r0] - cmp r1, #1 - beq _0819CD8C - cmp r1, #1 - bgt _0819CD74 - cmp r1, #0 - beq _0819CD7A - b _0819CE00 - .align 2, 0 -_0819CD70: .4byte gUnknown_3005B60 -_0819CD74: - cmp r1, #2 - beq _0819CDA4 - b _0819CE00 -_0819CD7A: - ldr r0, _0819CD88 - ldr r0, [r0] - adds r0, #0x27 - strb r1, [r0] - strh r1, [r4, #0x10] - b _0819CD96 - .align 2, 0 -_0819CD88: .4byte gUnknown_3001280 -_0819CD8C: - ldr r0, _0819CDA0 - movs r1, #0xe0 - movs r2, #0xa - bl LoadPalette -_0819CD96: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _0819CE00 - .align 2, 0 -_0819CDA0: .4byte gUnknown_2037594 -_0819CDA4: - ldr r2, _0819CE08 - ldr r0, [r2] - adds r0, #0x28 - ldrb r0, [r0] - cmp r0, #0xf - bls _0819CDBA - movs r0, #1 - strh r0, [r4, #0x10] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_0819CDBA: - ldr r1, [r2] - adds r1, #0x27 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r0, [r2] - adds r1, r0, #0 - adds r1, #0x27 - ldrb r0, [r1] - cmp r0, #3 - bls _0819CDF0 - movs r0, #0 - strb r0, [r1] - ldr r1, _0819CE0C - ldr r0, _0819CE10 - movs r3, #0xe4 - lsls r3, r3, #1 - adds r0, r0, r3 - ldrh r0, [r0] - adds r3, #0x20 - adds r1, r1, r3 - strh r0, [r1] - ldr r1, [r2] - adds r1, #0x28 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_0819CDF0: - movs r0, #0x80 - lsls r0, r0, #7 - ldr r1, [r2] - adds r1, #0x28 - ldrb r1, [r1] - movs r2, #0 - bl BlendPalettes -_0819CE00: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0819CE08: .4byte gUnknown_3001280 -_0819CE0C: .4byte gUnknown_20373B4 -_0819CE10: .4byte gUnknown_20377B4 - thumb_func_end Task_SwapFadeSpeciesName2 - - thumb_func_start sub_0819CE14 -sub_0819CE14: @ 0x0819CE14 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - ldr r1, _0819CE40 - lsls r0, r0, #2 - ldr r2, [sp] - adds r0, r0, r2 - lsls r0, r0, #3 - adds r4, r0, r1 - movs r2, #8 - ldrsh r3, [r4, r2] - cmp r3, #0 - beq _0819CE44 - cmp r3, #1 - beq _0819CE50 - b _0819CFF8 - .align 2, 0 -_0819CE40: .4byte gUnknown_3005B60 -_0819CE44: - strh r3, [r4, #0xa] - strh r3, [r4, #0xc] - strh r3, [r4, #0xe] - movs r0, #1 - strh r0, [r4, #8] - b _0819CFF8 -_0819CE50: - movs r3, #0 - str r3, [sp, #4] - movs r1, #2 - str r0, [sp, #8] - ldr r0, _0819CEB4 - str r0, [sp, #0xc] -_0819CE5C: - lsls r0, r1, #0x18 - asrs r4, r0, #0x18 - mov sb, r0 - cmp r4, #2 - beq _0819CEDA - ldr r2, _0819CEB8 - ldr r3, _0819CEBC - ldr r0, [r3] - adds r0, #5 - mov r8, r0 - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r6, r0, r2 - ldrh r1, [r6, #0x20] - mov ip, r1 - mov r7, ip - ldr r1, [sp, #4] - subs r0, r1, r7 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - mov sl, r2 - cmp r5, #0x10 - beq _0819CEA6 - adds r0, r4, #2 - lsls r0, r0, #1 - ldr r2, [sp, #8] - adds r0, r0, r2 - ldr r1, _0819CEB4 - adds r1, #8 - adds r0, r0, r1 - movs r3, #0 - ldrsh r0, [r0, r3] - cmp r0, #1 - bne _0819CEC0 -_0819CEA6: - lsls r0, r7, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - mov r0, ip - adds r0, #0xa - strh r0, [r6, #0x20] - b _0819CEF8 - .align 2, 0 -_0819CEB4: .4byte gUnknown_3005B60 -_0819CEB8: .4byte gUnknown_20205AC -_0819CEBC: .4byte gUnknown_3001280 -_0819CEC0: - cmp r5, #0x10 - bls _0819CEF8 - adds r0, r4, #1 - add r0, r8 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sl - ldrh r0, [r0, #0x20] - subs r0, #0x30 - strh r0, [r6, #0x20] - b _0819CEF8 -_0819CEDA: - ldr r3, _0819CF3C - ldr r4, _0819CF40 - ldr r0, [r4] - ldrb r1, [r0, #7] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r2, [r0, #0x20] - lsls r1, r2, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp, #4] - adds r2, #0xa - strh r2, [r0, #0x20] - mov sl, r3 -_0819CEF8: - mov r0, sb - asrs r2, r0, #0x18 - adds r0, r2, #1 - lsls r0, r0, #1 - ldr r1, [sp, #8] - adds r0, r0, r1 - ldr r1, _0819CF44 - adds r1, #8 - adds r0, r0, r1 - movs r3, #0 - ldrsh r0, [r0, r3] - cmp r0, #1 - bne _0819CF52 - ldr r1, _0819CF40 - ldr r0, [r1] - adds r0, #5 - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - mov r3, sl - adds r1, r0, r3 - movs r0, #0x20 - ldrsh r3, [r1, r0] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #4 - adds r0, #0x48 - cmp r3, r0 - ble _0819CF48 - strh r0, [r1, #0x20] - movs r7, #1 - b _0819CF54 - .align 2, 0 -_0819CF3C: .4byte gUnknown_20205AC -_0819CF40: .4byte gUnknown_3001280 -_0819CF44: .4byte gUnknown_3005B60 -_0819CF48: - movs r7, #0 - cmp r3, r0 - bne _0819CF54 - movs r7, #1 - b _0819CF54 -_0819CF52: - movs r7, #0 -_0819CF54: - mov r6, sl - ldr r5, _0819CFA0 - ldr r2, [r5] - mov r1, sb - asrs r4, r1, #0x18 - adds r0, r2, #5 - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r6 - movs r3, #0x20 - ldrsh r0, [r1, r3] - subs r0, #0x10 - cmp r0, #0xf0 - ble _0819CFE0 - ldrh r0, [r1, #0x20] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - ldr r0, _0819CFA4 - strh r0, [r1, #0x20] - ldrb r0, [r2, #0x14] - cmp r0, #1 - bne _0819CFA8 - movs r0, #0x65 - bl IndexOfSpritePaletteTag - ldr r1, [r5] - adds r1, #5 - adds r1, r1, r4 - ldrb r1, [r1] - lsls r2, r1, #4 - adds r2, r2, r1 - lsls r2, r2, #2 - adds r2, r2, r6 - b _0819CFC0 - .align 2, 0 -_0819CFA0: .4byte gUnknown_3001280 -_0819CFA4: .4byte 0x0000FFF0 -_0819CFA8: - movs r0, #0x64 - bl IndexOfSpritePaletteTag - ldr r2, _0819D008 - ldr r1, [r2] - adds r1, #5 - adds r1, r1, r4 - ldrb r1, [r1] - lsls r2, r1, #4 - adds r2, r2, r1 - lsls r2, r2, #2 - add r2, sl -_0819CFC0: - lsls r0, r0, #4 - ldrb r3, [r2, #5] - movs r1, #0xf - ands r1, r3 - orrs r1, r0 - strb r1, [r2, #5] - mov r3, sb - asrs r0, r3, #0x17 - adds r0, #2 - ldr r1, [sp, #8] - adds r0, r0, r1 - ldr r2, [sp, #0xc] - adds r2, #8 - adds r0, r0, r2 - movs r1, #1 - strh r1, [r0] -_0819CFE0: - movs r0, #0xff - lsls r0, r0, #0x18 - add r0, sb - lsrs r1, r0, #0x18 - cmp r0, #0 - blt _0819CFEE - b _0819CE5C -_0819CFEE: - cmp r7, #1 - bne _0819CFF8 - ldr r0, [sp] - bl DestroyTask -_0819CFF8: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0819D008: .4byte gUnknown_3001280 - thumb_func_end sub_0819CE14 - - thumb_func_start sub_0819D00C -sub_0819D00C: @ 0x0819D00C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r0, #0 - mov r8, r0 - ldr r1, _0819D04C - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r2, r0, r1 - ldrb r4, [r2, #0xe] - movs r0, #0xc - ldrsh r5, [r2, r0] - mov sl, r1 - cmp r5, #1 - bne _0819D03A - lsls r0, r4, #0x18 - rsbs r0, r0, #0 - lsrs r4, r0, #0x18 -_0819D03A: - movs r1, #8 - ldrsh r0, [r2, r1] - cmp r0, #0 - beq _0819D050 - cmp r0, #1 - bne _0819D048 - b _0819D168 -_0819D048: - b _0819D258 - .align 2, 0 -_0819D04C: .4byte gUnknown_3005B60 -_0819D050: - ldr r3, _0819D07C - ldr r2, _0819D080 - ldr r0, [r2] - ldrb r1, [r0, #8] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r0, [r0, #0x20] - cmp r5, #0 - bne _0819D084 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r2, r4, #0x18 - asrs r1, r2, #0x18 - adds r0, r0, r1 - movs r1, #1 - cmp r0, #0xef - ble _0819D09A - movs r1, #0 - movs r0, #0xf0 - b _0819D098 - .align 2, 0 -_0819D07C: .4byte gUnknown_20205AC -_0819D080: .4byte gUnknown_3001280 -_0819D084: - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r2, r4, #0x18 - asrs r1, r2, #0x18 - adds r0, r0, r1 - movs r1, #1 - cmp r0, #0xa0 - bgt _0819D09A - movs r1, #0 - movs r0, #0xa0 -_0819D098: - mov r8, r0 -_0819D09A: - cmp r1, #1 - bne _0819D0E4 - movs r3, #0 - ldr r7, _0819D0DC - ldr r6, _0819D0E0 - asrs r5, r2, #0x18 -_0819D0A6: - movs r4, #0 - adds r2, r3, #1 -_0819D0AA: - ldr r1, [r6] - lsls r0, r4, #1 - adds r0, r0, r4 - adds r0, r3, r0 - adds r1, #8 - adds r1, r1, r0 - ldrb r1, [r1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrh r1, [r0, #0x20] - adds r1, r1, r5 - strh r1, [r0, #0x20] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #1 - bls _0819D0AA - lsls r0, r2, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #2 - bls _0819D0A6 - b _0819D258 - .align 2, 0 -_0819D0DC: .4byte gUnknown_20205AC -_0819D0E0: .4byte gUnknown_3001280 -_0819D0E4: - movs r4, #0 - lsls r1, r7, #2 - mov ip, r1 - mov r6, r8 - adds r6, #0x10 - movs r0, #0x30 - add r0, r8 - mov sb, r0 - ldr r5, _0819D160 -_0819D0F6: - ldr r1, _0819D164 - ldr r2, [r1] - lsls r3, r4, #1 - adds r3, r3, r4 - adds r0, r2, #0 - adds r0, #8 - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - mov r1, r8 - strh r1, [r0, #0x20] - adds r0, r2, #0 - adds r0, #9 - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r6, [r0, #0x20] - adds r2, #0xa - adds r2, r2, r3 - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - mov r1, sb - strh r1, [r0, #0x20] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #1 - bls _0819D0F6 - mov r1, ip - adds r0, r1, r7 - lsls r0, r0, #3 - add r0, sl - ldrb r1, [r0, #0xa] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - add r0, sl - movs r1, #1 - strh r1, [r0, #0xe] - adds r0, r7, #0 - bl DestroyTask - b _0819D258 - .align 2, 0 -_0819D160: .4byte gUnknown_20205AC -_0819D164: .4byte gUnknown_3001280 -_0819D168: - ldr r2, _0819D194 - ldr r0, _0819D198 - ldr r0, [r0] - ldrb r1, [r0, #0xe] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0, #0x20] - cmp r5, #0 - bne _0819D19C - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r2, r4, #0x18 - asrs r1, r2, #0x18 - adds r0, r0, r1 - movs r1, #1 - cmp r0, #0xef - ble _0819D1B2 - movs r1, #0 - movs r0, #0xf0 - b _0819D1B0 - .align 2, 0 -_0819D194: .4byte gUnknown_20205AC -_0819D198: .4byte gUnknown_3001280 -_0819D19C: - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r2, r4, #0x18 - asrs r1, r2, #0x18 - adds r0, r0, r1 - movs r1, #1 - cmp r0, #0xc0 - bgt _0819D1B2 - movs r1, #0 - movs r0, #0xc0 -_0819D1B0: - mov r8, r0 -_0819D1B2: - cmp r1, #1 - bne _0819D1F8 - movs r3, #0 - ldr r7, _0819D1F0 - ldr r6, _0819D1F4 - asrs r5, r2, #0x18 -_0819D1BE: - movs r4, #0 - adds r2, r3, #1 -_0819D1C2: - ldr r0, [r6] - lsls r1, r4, #1 - adds r1, r3, r1 - adds r0, #0xe - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrh r1, [r0, #0x20] - adds r1, r1, r5 - strh r1, [r0, #0x20] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #1 - bls _0819D1C2 - lsls r0, r2, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #1 - bls _0819D1BE - b _0819D258 - .align 2, 0 -_0819D1F0: .4byte gUnknown_20205AC -_0819D1F4: .4byte gUnknown_3001280 -_0819D1F8: - movs r4, #0 - lsls r1, r7, #2 - mov ip, r1 - mov r6, r8 - adds r6, #0x10 - ldr r5, _0819D268 - ldr r0, _0819D26C - mov sb, r0 -_0819D208: - mov r1, sb - ldr r2, [r1] - lsls r3, r4, #1 - adds r0, r2, #0 - adds r0, #0xe - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - mov r1, r8 - strh r1, [r0, #0x20] - adds r2, #0xf - adds r2, r2, r3 - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r6, [r0, #0x20] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #1 - bls _0819D208 - mov r1, ip - adds r0, r1, r7 - lsls r0, r0, #3 - add r0, sl - ldrb r1, [r0, #0xa] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - add r0, sl - movs r1, #1 - strh r1, [r0, #0x10] - adds r0, r7, #0 - bl DestroyTask -_0819D258: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0819D268: .4byte gUnknown_20205AC -_0819D26C: .4byte gUnknown_3001280 - thumb_func_end sub_0819D00C - - thumb_func_start sub_0819D270 -sub_0819D270: @ 0x0819D270 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _0819D29C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r2, #8 - ldrsh r0, [r0, r2] - mov r8, r1 - cmp r0, #5 - bls _0819D292 - b _0819D44A -_0819D292: - lsls r0, r0, #2 - ldr r1, _0819D2A0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0819D29C: .4byte gUnknown_3005B60 -_0819D2A0: .4byte _0819D2A4 -_0819D2A4: @ jump table - .4byte _0819D2BC @ case 0 - .4byte _0819D2D8 @ case 1 - .4byte _0819D2F4 @ case 2 - .4byte _0819D324 @ case 3 - .4byte _0819D3D8 @ case 4 - .4byte _0819D422 @ case 5 -_0819D2BC: - ldr r0, _0819D2D4 - movs r1, #0xe0 - movs r2, #0xa - bl LoadPalette - bl sub_0819EAB0 - movs r0, #5 - bl PutWindowTilemap - b _0819D30A - .align 2, 0 -_0819D2D4: .4byte gUnknown_85DC1C4 -_0819D2D8: - movs r0, #3 - bl sub_0819E76C - ldr r0, _0819D2F0 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _0819D44A - .align 2, 0 -_0819D2F0: .4byte gUnknown_3005B60 -_0819D2F4: - movs r0, #0x80 - lsls r0, r0, #7 - ldr r1, _0819D31C - adds r1, #0x4a - ldrh r1, [r1] - str r1, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade -_0819D30A: - ldr r1, _0819D320 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #8] - adds r1, #1 - strh r1, [r0, #8] - b _0819D44A - .align 2, 0 -_0819D31C: .4byte gUnknown_85D9C38 -_0819D320: .4byte gUnknown_3005B60 -_0819D324: - ldr r0, _0819D388 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - beq _0819D336 - b _0819D44A -_0819D336: - movs r0, #5 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #5 - movs r1, #2 - bl CopyWindowToVram - ldr r0, _0819D38C - ldr r0, [r0] - ldrb r0, [r0, #0x14] - cmp r0, #1 - bne _0819D398 - ldr r0, _0819D390 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _0819D394 - lsls r2, r5, #2 - adds r2, r2, r5 - lsls r2, r2, #3 - adds r2, r2, r1 - strh r6, [r2, #0xe] - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r5, [r0, #0xa] - strh r6, [r0, #8] - strh r6, [r0, #0xc] - movs r1, #6 - strh r1, [r0, #0xe] - movs r0, #5 - strh r0, [r2, #0xc] - ldrh r0, [r2, #8] - adds r0, #1 - strh r0, [r2, #8] - b _0819D44A - .align 2, 0 -_0819D388: .4byte gUnknown_2037C74 -_0819D38C: .4byte gUnknown_3001280 -_0819D390: .4byte sub_0819D00C -_0819D394: .4byte gUnknown_3005B60 -_0819D398: - ldr r0, _0819D3D0 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r3, _0819D3D4 - lsls r2, r5, #2 - adds r2, r2, r5 - lsls r2, r2, #3 - adds r2, r2, r3 - movs r1, #1 - strh r1, [r2, #0xe] - strh r6, [r2, #0x10] - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r3 - strh r5, [r0, #0xa] - strh r1, [r0, #8] - strh r6, [r0, #0xc] - movs r1, #6 - strh r1, [r0, #0xe] - ldrh r0, [r2, #8] - adds r0, #2 - strh r0, [r2, #8] - b _0819D44A - .align 2, 0 -_0819D3D0: .4byte sub_0819D00C -_0819D3D4: .4byte gUnknown_3005B60 -_0819D3D8: - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - mov r1, r8 - adds r6, r0, r1 - ldrh r0, [r6, #0xc] - movs r2, #0xc - ldrsh r7, [r6, r2] - cmp r7, #0 - bne _0819D41C - ldr r0, _0819D418 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - strh r7, [r6, #0x10] - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - add r0, r8 - strh r5, [r0, #0xa] - movs r1, #1 - strh r1, [r0, #8] - strh r7, [r0, #0xc] - movs r1, #6 - strh r1, [r0, #0xe] - ldrh r0, [r6, #8] - adds r0, #1 - strh r0, [r6, #8] - b _0819D44A - .align 2, 0 -_0819D418: .4byte sub_0819D00C -_0819D41C: - subs r0, #1 - strh r0, [r6, #0xc] - b _0819D44A -_0819D422: - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - mov r1, r8 - adds r2, r0, r1 - movs r1, #0xe - ldrsh r0, [r2, r1] - cmp r0, #1 - bne _0819D44A - movs r1, #0x10 - ldrsh r0, [r2, r1] - cmp r0, #1 - bne _0819D44A - ldrh r0, [r2, #0x12] - strh r0, [r2, #8] - ldrh r0, [r2, #0x14] - ldrh r1, [r2, #0x16] - lsls r0, r0, #0x10 - orrs r0, r1 - str r0, [r2] -_0819D44A: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0819D270 - - thumb_func_start sub_0819D458 -sub_0819D458: @ 0x0819D458 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _0819D498 - ldr r0, [r1] - adds r0, #0x30 - ldrb r0, [r0] - adds r3, r1, #0 - cmp r0, #1 - bne _0819D474 - b _0819D6C0 -_0819D474: - ldr r0, _0819D49C - lsls r2, r6, #2 - adds r1, r2, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r4, #8 - ldrsh r1, [r1, r4] - mov r8, r0 - adds r5, r2, #0 - cmp r1, #8 - bls _0819D48C - b _0819D6C0 -_0819D48C: - lsls r0, r1, #2 - ldr r1, _0819D4A0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0819D498: .4byte gUnknown_3001280 -_0819D49C: .4byte gUnknown_3005B60 -_0819D4A0: .4byte _0819D4A4 -_0819D4A4: @ jump table - .4byte _0819D4C8 @ case 0 - .4byte _0819D550 @ case 1 - .4byte _0819D596 @ case 2 - .4byte _0819D5DC @ case 3 - .4byte _0819D5F8 @ case 4 - .4byte _0819D610 @ case 5 - .4byte _0819D61E @ case 6 - .4byte _0819D630 @ case 7 - .4byte _0819D698 @ case 8 -_0819D4C8: - ldr r0, [r3] - ldrb r7, [r0, #0x14] - cmp r7, #1 - bne _0819D510 - ldr r0, _0819D508 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r3, _0819D50C - adds r2, r5, r6 - lsls r2, r2, #3 - adds r2, r2, r3 - movs r1, #0 - strh r1, [r2, #0xe] - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r3 - strh r6, [r0, #0xa] - strh r1, [r0, #8] - strh r7, [r0, #0xc] - movs r1, #6 - strh r1, [r0, #0xe] - movs r0, #0xa - strh r0, [r2, #0xc] - ldrh r0, [r2, #8] - adds r0, #1 - strh r0, [r2, #8] - b _0819D6C0 - .align 2, 0 -_0819D508: .4byte sub_0819D00C -_0819D50C: .4byte gUnknown_3005B60 -_0819D510: - ldr r0, _0819D548 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r3, _0819D54C - adds r2, r5, r6 - lsls r2, r2, #3 - adds r2, r2, r3 - movs r0, #0 - movs r1, #1 - strh r1, [r2, #0xe] - strh r0, [r2, #0x10] - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r3 - strh r6, [r0, #0xa] - strh r1, [r0, #8] - strh r1, [r0, #0xc] - movs r1, #6 - strh r1, [r0, #0xe] - ldrh r0, [r2, #8] - adds r0, #2 - strh r0, [r2, #8] - b _0819D6C0 - .align 2, 0 -_0819D548: .4byte sub_0819D00C -_0819D54C: .4byte gUnknown_3005B60 -_0819D550: - adds r0, r5, r6 - lsls r0, r0, #3 - mov r1, r8 - adds r5, r0, r1 - ldrh r0, [r5, #0xc] - movs r2, #0xc - ldrsh r7, [r5, r2] - cmp r7, #0 - bne _0819D590 - ldr r0, _0819D58C - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - strh r7, [r5, #0x10] - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - add r0, r8 - strh r6, [r0, #0xa] - movs r1, #1 - strh r1, [r0, #8] - strh r1, [r0, #0xc] - movs r1, #6 - strh r1, [r0, #0xe] - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - b _0819D6C0 - .align 2, 0 -_0819D58C: .4byte sub_0819D00C -_0819D590: - subs r0, #1 - strh r0, [r5, #0xc] - b _0819D6C0 -_0819D596: - adds r0, r5, r6 - lsls r0, r0, #3 - mov r1, r8 - adds r4, r0, r1 - movs r2, #0xe - ldrsh r0, [r4, r2] - cmp r0, #1 - beq _0819D5A8 - b _0819D6C0 -_0819D5A8: - movs r1, #0x10 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _0819D5B2 - b _0819D6C0 -_0819D5B2: - ldr r1, _0819D5D4 - ldr r0, _0819D5D8 - adds r0, #0x4a - ldrh r0, [r0] - movs r2, #0xe2 - lsls r2, r2, #1 - adds r1, r1, r2 - strh r0, [r1] - bl sub_0819EAB0 - movs r0, #5 - bl PutWindowTilemap - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _0819D6C0 - .align 2, 0 -_0819D5D4: .4byte gUnknown_20377B4 -_0819D5D8: .4byte gUnknown_85D9C38 -_0819D5DC: - movs r0, #0x80 - lsls r0, r0, #7 - ldr r1, _0819D5F4 - adds r1, #0x4a - ldrh r1, [r1] - str r1, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - b _0819D678 - .align 2, 0 -_0819D5F4: .4byte gUnknown_85D9C38 -_0819D5F8: - ldr r0, _0819D60C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0819D6C0 - movs r0, #0 - bl sub_0819EB80 - b _0819D678 - .align 2, 0 -_0819D60C: .4byte gUnknown_2037C74 -_0819D610: - movs r0, #1 - bl sub_0819EB80 - movs r0, #3 - bl PutWindowTilemap - b _0819D678 -_0819D61E: - movs r0, #5 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #5 - movs r1, #2 - bl CopyWindowToVram - b _0819D678 -_0819D630: - ldr r0, _0819D644 - ldr r0, [r0] - ldrb r0, [r0, #0x14] - cmp r0, #0 - bne _0819D64C - ldr r0, _0819D648 - bl Swap_PrintOnInfoWindow - b _0819D652 - .align 2, 0 -_0819D644: .4byte gUnknown_3001280 -_0819D648: .4byte gUnknown_85DC0C2 -_0819D64C: - ldr r0, _0819D688 - bl Swap_PrintOnInfoWindow -_0819D652: - ldr r0, _0819D68C - ldr r1, [r0] - ldrb r0, [r1, #3] - cmp r0, #2 - bhi _0819D674 - ldr r2, _0819D690 - ldrb r1, [r1, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] -_0819D674: - bl Swap_PrintMonCategory -_0819D678: - ldr r0, _0819D694 - adds r1, r5, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _0819D6C0 - .align 2, 0 -_0819D688: .4byte gUnknown_85DC0D5 -_0819D68C: .4byte gUnknown_3001280 -_0819D690: .4byte gUnknown_20205AC -_0819D694: .4byte gUnknown_3005B60 -_0819D698: - bl sub_0819ED38 - bl sub_0819E7FC - ldr r0, _0819D6CC - ldr r0, [r0] - adds r0, #0x22 - movs r1, #1 - strb r1, [r0] - ldr r1, _0819D6D0 - adds r0, r5, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #0x12] - strh r1, [r0, #8] - ldrh r1, [r0, #0x14] - ldrh r2, [r0, #0x16] - lsls r1, r1, #0x10 - orrs r1, r2 - str r1, [r0] -_0819D6C0: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0819D6CC: .4byte gUnknown_3001280 -_0819D6D0: .4byte gUnknown_3005B60 - thumb_func_end sub_0819D458 - - thumb_func_start sub_0819D6D4 -sub_0819D6D4: @ 0x0819D6D4 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _0819D70C - ldr r0, [r0] - adds r0, #0x30 - ldrb r0, [r0] - cmp r0, #1 - bne _0819D6E8 - b _0819D8B2 -_0819D6E8: - ldr r0, _0819D710 - lsls r2, r6, #2 - adds r1, r2, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r3, #8 - ldrsh r1, [r1, r3] - adds r3, r0, #0 - adds r7, r2, #0 - cmp r1, #4 - bls _0819D700 - b _0819D8B2 -_0819D700: - lsls r0, r1, #2 - ldr r1, _0819D714 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0819D70C: .4byte gUnknown_3001280 -_0819D710: .4byte gUnknown_3005B60 -_0819D714: .4byte _0819D718 -_0819D718: @ jump table - .4byte _0819D72C @ case 0 - .4byte _0819D740 @ case 1 - .4byte _0819D774 @ case 2 - .4byte _0819D7A4 @ case 3 - .4byte _0819D898 @ case 4 -_0819D72C: - bl sub_0819ED38 - ldr r0, _0819D73C - adds r1, r7, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - b _0819D87E - .align 2, 0 -_0819D73C: .4byte gUnknown_3005B60 -_0819D740: - bl sub_0819E7FC - ldr r2, _0819D768 - ldr r0, _0819D76C - ldr r0, [r0] - ldrb r1, [r0, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - ldr r0, _0819D770 - adds r1, r7, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - b _0819D87E - .align 2, 0 -_0819D768: .4byte gUnknown_20205AC -_0819D76C: .4byte gUnknown_3001280 -_0819D770: .4byte gUnknown_3005B60 -_0819D774: - ldr r0, _0819D794 - movs r1, #0 - bl CreateTask - ldr r2, _0819D798 - ldr r0, _0819D79C - ldr r0, [r0] - adds r0, #0x21 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldr r1, _0819D7A0 - str r1, [r0] - b _0819D878 - .align 2, 0 -_0819D794: .4byte sub_0819CE14 -_0819D798: .4byte gUnknown_3005B60 -_0819D79C: .4byte gUnknown_3001280 -_0819D7A0: .4byte Task_SwapFadeSpeciesName2 -_0819D7A4: - ldr r0, _0819D7E0 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0819D7B2 - b _0819D8B2 -_0819D7B2: - ldr r2, _0819D7E4 - ldr r4, _0819D7E8 - ldr r0, [r4] - adds r0, #0x21 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r1, #0x10 - ldrsh r0, [r0, r1] - cmp r0, #1 - bne _0819D8B2 - bl sub_0819E7C8 - ldr r0, [r4] - ldrb r0, [r0, #0x14] - cmp r0, #0 - bne _0819D7EC - movs r0, #1 - bl Swap_InitActions - b _0819D81A - .align 2, 0 -_0819D7E0: .4byte sub_0819CE14 -_0819D7E4: .4byte gUnknown_3005B60 -_0819D7E8: .4byte gUnknown_3001280 -_0819D7EC: - movs r0, #0 - bl Swap_InitActions - movs r2, #0 - ldr r5, _0819D888 - movs r3, #4 -_0819D7F8: - ldr r0, [r4] - adds r0, #0xb - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #2 - bls _0819D7F8 -_0819D81A: - ldr r5, _0819D888 - ldr r4, _0819D88C - ldr r3, [r4] - ldrb r0, [r3, #4] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - adds r0, r3, #5 - ldrb r2, [r3, #3] - adds r0, r0, r2 - ldrb r2, [r0] - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrh r0, [r0, #0x20] - movs r5, #0 - strh r0, [r1, #0x20] - ldr r2, _0819D890 - adds r0, r3, #0 - adds r0, #0x21 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldr r1, _0819D894 - str r1, [r0] - adds r3, #0x27 - strb r5, [r3] - ldr r0, [r4] - adds r0, #0x28 - movs r1, #6 - strb r1, [r0] - ldr r0, [r4] - adds r0, #0x26 - strb r5, [r0] - ldr r0, [r4] - adds r0, #0x21 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r1, #1 - strh r1, [r0, #8] -_0819D878: - adds r1, r7, r6 - lsls r1, r1, #3 - adds r1, r1, r2 -_0819D87E: - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _0819D8B2 - .align 2, 0 -_0819D888: .4byte gUnknown_20205AC -_0819D88C: .4byte gUnknown_3001280 -_0819D890: .4byte gUnknown_3005B60 -_0819D894: .4byte Task_SwapFadeSpeciesName -_0819D898: - adds r0, r7, r6 - lsls r0, r0, #3 - adds r0, r0, r3 - movs r1, #0 - strh r1, [r0, #8] - ldr r2, _0819D8B8 - lsrs r1, r2, #0x10 - strh r1, [r0, #0x14] - strh r2, [r0, #0x16] - movs r1, #1 - strh r1, [r0, #0x12] - ldr r1, _0819D8BC - str r1, [r0] -_0819D8B2: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0819D8B8: .4byte Task_HandleSwapScreenChooseMons -_0819D8BC: .4byte sub_0819D458 - thumb_func_end sub_0819D6D4 - - thumb_func_start Swap_InitStruct -Swap_InitStruct: @ 0x0819D8C0 - push {r4, r5, lr} - ldr r5, _0819D8E4 - ldr r4, [r5] - cmp r4, #0 - bne _0819D8DE - movs r0, #0x34 - bl AllocZeroed - str r0, [r5] - strb r4, [r0, #3] - ldr r0, [r5] - adds r0, #0x30 - strb r4, [r0] - ldr r0, [r5] - strb r4, [r0, #0x15] -_0819D8DE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0819D8E4: .4byte gUnknown_3001280 - thumb_func_end Swap_InitStruct - - thumb_func_start sub_0819D8E8 -sub_0819D8E8: @ 0x0819D8E8 - push {lr} - ldr r0, _0819D8FC - movs r1, #0 - str r1, [r0] - ldr r0, _0819D900 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0819D8FC: .4byte gUnknown_3001280 -_0819D900: .4byte CB2_InitSwapScreen - thumb_func_end sub_0819D8E8 - - thumb_func_start CB2_InitSwapScreen -CB2_InitSwapScreen: @ 0x0819D904 - push {r4, r5, r6, lr} - sub sp, #0xc - ldr r1, _0819D924 - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, r1, #0 - cmp r0, #0xf - bls _0819D91A - b _0819DDB2 -_0819D91A: - lsls r0, r0, #2 - ldr r1, _0819D928 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0819D924: .4byte gUnknown_3002360 -_0819D928: .4byte _0819D92C -_0819D92C: @ jump table - .4byte _0819D96C @ case 0 - .4byte _0819D9BC @ case 1 - .4byte _0819DA90 @ case 2 - .4byte _0819DB50 @ case 3 - .4byte _0819DB7C @ case 4 - .4byte _0819DBB4 @ case 5 - .4byte _0819DBD4 @ case 6 - .4byte _0819DBF8 @ case 7 - .4byte _0819DC18 @ case 8 - .4byte _0819DC24 @ case 9 - .4byte _0819DC4C @ case 10 - .4byte _0819DC58 @ case 11 - .4byte _0819DC80 @ case 12 - .4byte _0819DC94 @ case 13 - .4byte _0819DCAC @ case 14 - .4byte _0819DD24 @ case 15 -_0819D96C: - movs r0, #0 - bl SetHBlankCallback - movs r0, #0 - bl SetVBlankCallback - movs r0, #0 - str r0, [sp, #8] - movs r1, #0xc0 - lsls r1, r1, #0x13 - ldr r2, _0819D9AC - add r0, sp, #8 - bl CpuSet - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _0819D9B0 - movs r0, #0 - movs r2, #4 - bl InitBgsFromTemplates - ldr r0, _0819D9B4 - bl InitWindows - bl sub_08004480 - ldr r1, _0819D9B8 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _0819DD16 - .align 2, 0 -_0819D9AC: .4byte 0x05006000 -_0819D9B0: .4byte gUnknown_85DC164 -_0819D9B4: .4byte gUnknown_85DC174 -_0819D9B8: .4byte gUnknown_3002360 -_0819D9BC: - ldr r5, _0819DA80 - movs r4, #0x88 - lsls r4, r4, #3 - adds r0, r4, #0 - bl sub_08000BC8 - str r0, [r5] - ldr r5, _0819DA84 - adds r0, r4, #0 - bl AllocZeroed - str r0, [r5] - ldr r5, _0819DA88 - movs r4, #0x80 - lsls r4, r4, #4 - adds r0, r4, #0 - bl sub_08000BC8 - str r0, [r5] - ldr r5, _0819DA8C - adds r0, r4, #0 - bl AllocZeroed - str r0, [r5] - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - movs r0, #0x4c - movs r1, #0 - bl SetGpuReg - movs r0, #0x40 - movs r1, #0 - bl SetGpuReg - movs r0, #0x44 - movs r1, #0 - bl SetGpuReg - movs r0, #0x42 - movs r1, #0 - bl SetGpuReg - movs r0, #0x46 - movs r1, #0 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0 - bl SetGpuReg - movs r0, #0x4a - movs r1, #0 - bl SetGpuReg - b _0819DD0E - .align 2, 0 -_0819DA80: .4byte gUnknown_203CB0C -_0819DA84: .4byte gUnknown_203CB10 -_0819DA88: .4byte gUnknown_203CB14 -_0819DA8C: .4byte gUnknown_203CB18 -_0819DA90: - bl ResetPaletteFade - bl ResetSpriteData - bl ResetTasks - bl FreeAllSpritePalettes - bl ResetAllPicSprites - ldr r0, _0819DB28 - ldr r5, _0819DB2C - ldr r1, [r5] - movs r2, #0x88 - lsls r2, r2, #2 - bl CpuSet - ldr r0, _0819DB30 - ldr r4, _0819DB34 - ldr r1, [r4] - movs r2, #0x30 - bl CpuSet - ldr r1, [r5] - movs r2, #0x88 - lsls r2, r2, #3 - movs r0, #1 - movs r3, #0 - bl LoadBgTiles - ldr r1, [r4] - movs r0, #3 - movs r2, #0x60 - movs r3, #0 - bl LoadBgTiles - ldr r0, _0819DB38 - ldr r4, _0819DB3C - ldr r1, [r4] - movs r2, #0x80 - lsls r2, r2, #3 - bl CpuSet - ldr r1, [r4] - movs r2, #0x80 - lsls r2, r2, #4 - movs r0, #1 - movs r3, #0 - bl LoadBgTilemap - ldr r0, _0819DB40 - movs r1, #0 - movs r2, #0x40 - bl LoadPalette - ldr r4, _0819DB44 - adds r0, r4, #0 - movs r1, #0xf0 - movs r2, #0xa - bl LoadPalette - adds r0, r4, #0 - movs r1, #0xe0 - movs r2, #0xa - bl LoadPalette - ldr r0, _0819DB48 - movs r1, #0x20 - movs r2, #4 - bl LoadPalette - ldr r1, _0819DB4C - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _0819DD16 - .align 2, 0 -_0819DB28: .4byte gUnknown_85DAD38 -_0819DB2C: .4byte gUnknown_203CB0C -_0819DB30: .4byte gUnknown_85DBA78 -_0819DB34: .4byte gUnknown_203CB10 -_0819DB38: .4byte gUnknown_85DB178 -_0819DB3C: .4byte gUnknown_203CB14 -_0819DB40: .4byte gUnknown_85DBAD8 -_0819DB44: .4byte gUnknown_85DC1C4 -_0819DB48: .4byte gUnknown_85DBB18 -_0819DB4C: .4byte gUnknown_3002360 -_0819DB50: - ldr r0, _0819DB74 - ldr r1, [r0] - movs r0, #3 - bl SetBgTilemapBuffer - ldr r1, _0819DB78 - movs r0, #8 - str r0, [sp] - str r0, [sp, #4] - movs r0, #3 - movs r2, #0xb - movs r3, #4 - bl CopyToBgTilemapBufferRect - movs r0, #3 - bl CopyBgTilemapBufferToVram - b _0819DD0E - .align 2, 0 -_0819DB74: .4byte gUnknown_203CB18 -_0819DB78: .4byte gUnknown_85DB978 -_0819DB7C: - ldr r0, _0819DBA0 - bl LoadSpritePalettes - ldr r0, _0819DBA4 - bl LoadSpriteSheets - ldr r0, _0819DBA8 - bl LoadCompressedSpriteSheet - ldr r0, _0819DBAC - bl SetVBlankCallback - ldr r1, _0819DBB0 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _0819DD16 - .align 2, 0 -_0819DBA0: .4byte gUnknown_85DBEB8 -_0819DBA4: .4byte gUnknown_85DBE58 -_0819DBA8: .4byte gUnknown_85DBEA8 -_0819DBAC: .4byte FldEff_UseCutOnTree -_0819DBB0: .4byte gUnknown_3002360 -_0819DBB4: - ldr r0, _0819DBCC - ldr r1, [r0] - ldrb r0, [r1, #0x15] - cmp r0, #1 - bne _0819DBC4 - ldr r0, _0819DBD0 - ldrb r0, [r0] - strb r0, [r1, #3] -_0819DBC4: - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r2, r0 - b _0819DD16 - .align 2, 0 -_0819DBCC: .4byte gUnknown_3001280 -_0819DBD0: .4byte gUnknown_203CBEC -_0819DBD4: - bl Swap_InitStruct - bl Swap_InitAllSprites - ldr r0, _0819DBF4 - ldr r0, [r0] - ldrb r0, [r0, #0x15] - cmp r0, #1 - bne _0819DBEA - bl Swap_ShowSummaryMonSprite -_0819DBEA: - movs r0, #0 - bl Swap_InitActions - b _0819DD0E - .align 2, 0 -_0819DBF4: .4byte gUnknown_3001280 -_0819DBF8: - ldr r0, _0819DC10 - bl Swap_PrintOnInfoWindow - movs r0, #2 - bl PutWindowTilemap - ldr r1, _0819DC14 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _0819DD16 - .align 2, 0 -_0819DC10: .4byte gUnknown_85DC0C2 -_0819DC14: .4byte gUnknown_3002360 -_0819DC18: - bl Swap_PrintMonCategory - movs r0, #8 - bl PutWindowTilemap - b _0819DD0E -_0819DC24: - ldr r0, _0819DC44 - ldr r0, [r0] - ldrb r0, [r0, #0x15] - cmp r0, #0 - bne _0819DC32 - bl Swap_PrintMonSpecies -_0819DC32: - movs r0, #1 - bl PutWindowTilemap - ldr r1, _0819DC48 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _0819DD16 - .align 2, 0 -_0819DC44: .4byte gUnknown_3001280 -_0819DC48: .4byte gUnknown_3002360 -_0819DC4C: - bl Swap_PrintPkmnSwap - movs r0, #0 - bl PutWindowTilemap - b _0819DD0E -_0819DC58: - ldr r0, _0819DC78 - ldr r0, [r0] - ldrb r0, [r0, #0x15] - cmp r0, #0 - bne _0819DC66 - bl sub_0819EA40 -_0819DC66: - movs r0, #6 - bl PutWindowTilemap - ldr r1, _0819DC7C - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _0819DD16 - .align 2, 0 -_0819DC78: .4byte gUnknown_3001280 -_0819DC7C: .4byte gUnknown_3002360 -_0819DC80: - ldr r0, _0819DC90 - ldr r0, [r0] - ldrb r0, [r0, #0x15] - cmp r0, #0 - beq _0819DD0E - bl Swap_PrintMonSpecies2 - b _0819DD0E - .align 2, 0 -_0819DC90: .4byte gUnknown_3001280 -_0819DC94: - bl sub_0819EB18 - movs r0, #3 - bl PutWindowTilemap - ldr r1, _0819DCA8 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _0819DD16 - .align 2, 0 -_0819DCA8: .4byte gUnknown_3002360 -_0819DCAC: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - ldr r0, _0819DCFC - ldr r0, [r0] - ldrb r0, [r0, #0x15] - cmp r0, #1 - bne _0819DD08 - movs r0, #3 - bl ShowBg - ldr r1, _0819DD00 - movs r0, #0x50 - bl SetGpuReg - ldr r1, _0819DD04 - movs r0, #0x52 - bl SetGpuReg - b _0819DD0E - .align 2, 0 -_0819DCFC: .4byte gUnknown_3001280 -_0819DD00: .4byte 0x00001248 -_0819DD04: .4byte 0x0000040B -_0819DD08: - movs r0, #3 - bl HideBg -_0819DD0E: - ldr r1, _0819DD20 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 -_0819DD16: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0819DDB2 - .align 2, 0 -_0819DD20: .4byte gUnknown_3002360 -_0819DD24: - ldr r0, _0819DD64 - movs r1, #0 - bl CreateTask - ldr r6, _0819DD68 - ldr r1, [r6] - adds r1, #0x21 - strb r0, [r1] - ldr r0, [r6] - ldrb r5, [r0, #0x15] - cmp r5, #0 - bne _0819DD74 - ldr r4, _0819DD6C - adds r0, #0x21 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r4 - strh r5, [r0, #8] - ldr r0, _0819DD70 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r4 - strh r5, [r0, #8] - b _0819DDAC - .align 2, 0 -_0819DD64: .4byte Task_SwapFadeSpeciesName -_0819DD68: .4byte gUnknown_3001280 -_0819DD6C: .4byte gUnknown_3005B60 -_0819DD70: .4byte Task_HandleSwapScreenChooseMons -_0819DD74: - bl sub_0819E844 - ldr r4, _0819DDBC - ldr r2, [r6] - adds r0, r2, #0 - adds r0, #0x21 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r4 - movs r3, #0 - movs r1, #1 - strh r1, [r0, #8] - adds r2, #0x22 - strb r3, [r2] - ldr r0, _0819DDC0 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r4 - movs r1, #2 - strh r1, [r0, #8] -_0819DDAC: - ldr r0, _0819DDC4 - bl SetMainCallback2 -_0819DDB2: - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0819DDBC: .4byte gUnknown_3005B60 -_0819DDC0: .4byte Task_HandleSwapScreenMenu -_0819DDC4: .4byte Swap_CB2 - thumb_func_end CB2_InitSwapScreen - - thumb_func_start Swap_InitAllSprites -Swap_InitAllSprites: @ 0x0819DDC8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - mov r1, sp - ldr r0, _0819E1B8 - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - ldm r0!, {r2, r5, r6} - stm r1!, {r2, r5, r6} - mov r1, sp - movs r0, #0x65 - strh r0, [r1, #2] - movs r6, #0 - ldr r4, _0819E1BC - movs r7, #0 - ldr r5, _0819E1C0 -_0819DDEE: - lsls r1, r6, #1 - adds r1, r1, r6 - lsls r1, r1, #0x14 - movs r3, #0x90 - lsls r3, r3, #0xf - adds r1, r1, r3 - asrs r1, r1, #0x10 - mov r0, sp - movs r2, #0x40 - movs r3, #1 - bl CreateSprite - ldr r1, [r4] - adds r1, #5 - adds r1, r1, r6 - strb r0, [r1] - ldr r0, [r4] - adds r0, #5 - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r7, [r0, #0x2e] - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #2 - bls _0819DDEE - ldr r7, _0819E1BC - ldr r1, [r7] - adds r0, r1, #5 - ldrb r1, [r1, #3] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _0819E1C0 - adds r0, r0, r4 - movs r5, #0x20 - ldrsh r1, [r0, r5] - ldr r0, _0819E1C4 - movs r2, #0x58 - movs r3, #0 - bl CreateSprite - ldr r1, [r7] - movs r4, #0 - strb r0, [r1, #4] - ldr r0, _0819E1C8 - movs r1, #0xb0 - movs r2, #0x70 - movs r3, #0 - bl CreateSprite - ldr r1, [r7] - strb r0, [r1, #1] - ldr r0, _0819E1CC - movs r1, #0xb0 - movs r2, #0x90 - movs r3, #0 - bl CreateSprite - ldr r1, [r7] - strb r0, [r1, #2] - ldr r0, [r7] - ldrb r1, [r0, #1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r6, _0819E1C0 - adds r0, r0, r6 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r7] - ldrb r1, [r0, #2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - ldr r0, [r7] - ldrb r1, [r0, #1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x28 - strb r4, [r0] - ldr r0, [r7] - ldrb r1, [r0, #1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x29 - strb r4, [r0] - ldr r0, [r7] - ldrb r1, [r0, #2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x28 - strb r4, [r0] - ldr r0, [r7] - ldrb r1, [r0, #2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x29 - strb r4, [r0] - ldr r0, [r7] - ldrb r0, [r0, #0x15] - movs r1, #0xc0 - str r1, [sp, #0x18] - cmp r0, #1 - bne _0819DEF0 - movs r2, #0xf0 - str r2, [sp, #0x18] -_0819DEF0: - mov r1, sp - ldr r0, _0819E1C4 - ldm r0!, {r3, r4, r5} - stm r1!, {r3, r4, r5} - ldm r0!, {r2, r3, r6} - stm r1!, {r2, r3, r6} - mov r0, sp - movs r4, #0x68 - mov sl, r4 - mov r5, sl - strh r5, [r0] - movs r1, #0xf0 - movs r2, #0x78 - movs r3, #0xa - bl CreateSprite - ldr r1, [r7] - strb r0, [r1, #8] - mov r1, sp - ldr r0, _0819E1C8 - ldm r0!, {r2, r3, r6} - stm r1!, {r2, r3, r6} - ldm r0!, {r4, r5, r6} - stm r1!, {r4, r5, r6} - mov r0, sp - movs r1, #0x69 - mov sb, r1 - mov r2, sb - strh r2, [r0] - movs r4, #0x80 - lsls r4, r4, #1 - adds r1, r4, #0 - movs r2, #0x78 - movs r3, #0xa - bl CreateSprite - ldr r1, [r7] - strb r0, [r1, #9] - movs r5, #0x90 - lsls r5, r5, #1 - mov r0, sp - adds r1, r5, #0 - movs r2, #0x78 - movs r3, #0xa - bl CreateSprite - ldr r1, [r7] - strb r0, [r1, #0xa] - mov r1, sp - ldr r0, _0819E1C4 - ldm r0!, {r2, r3, r6} - stm r1!, {r2, r3, r6} - ldm r0!, {r2, r3, r6} - stm r1!, {r2, r3, r6} - mov r0, sp - movs r3, #0x6a - mov r8, r3 - mov r6, r8 - strh r6, [r0] - movs r1, #0xf0 - movs r2, #0x78 - movs r3, #1 - bl CreateSprite - ldr r1, [r7] - strb r0, [r1, #0xb] - mov r1, sp - ldr r0, _0819E1C8 - ldm r0!, {r2, r3, r6} - stm r1!, {r2, r3, r6} - ldm r0!, {r2, r3, r6} - stm r1!, {r2, r3, r6} - mov r1, sp - movs r0, #0x6b - strh r0, [r1] - mov r0, sp - adds r1, r4, #0 - movs r2, #0x78 - movs r3, #1 - bl CreateSprite - ldr r1, [r7] - strb r0, [r1, #0xc] - mov r0, sp - movs r6, #0x6c - strh r6, [r0] - adds r1, r5, #0 - movs r2, #0x78 - movs r3, #1 - bl CreateSprite - ldr r1, [r7] - strb r0, [r1, #0xd] - mov r1, sp - ldr r0, _0819E1C4 - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} - mov r0, sp - mov r4, sl - strh r4, [r0] - ldr r1, [sp, #0x18] - movs r2, #0x90 - movs r3, #0xa - bl CreateSprite - ldr r1, [r7] - strb r0, [r1, #0xe] - mov r1, sp - ldr r0, _0819E1C8 - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} - ldm r0!, {r2, r4, r5} - stm r1!, {r2, r4, r5} - mov r0, sp - mov r3, sb - strh r3, [r0] - ldr r4, [sp, #0x18] - adds r4, #0x10 - adds r1, r4, #0 - movs r2, #0x90 - movs r3, #0xa - bl CreateSprite - ldr r1, [r7] - strb r0, [r1, #0xf] - mov r1, sp - ldr r0, _0819E1C4 - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} - mov r0, sp - mov r5, r8 - strh r5, [r0] - ldr r1, [sp, #0x18] - movs r2, #0x90 - movs r3, #1 - bl CreateSprite - ldr r1, [r7] - strb r0, [r1, #0x10] - mov r1, sp - ldr r0, _0819E1C8 - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} - mov r0, sp - strh r6, [r0] - adds r1, r4, #0 - movs r2, #0x90 - movs r3, #1 - bl CreateSprite - ldr r1, [r7] - strb r0, [r1, #0x11] - movs r6, #0 - ldr r5, _0819E1C0 - adds r4, r7, #0 - movs r7, #0 - movs r0, #4 - mov sl, r0 -_0819E038: - ldr r0, [r4] - lsls r3, r6, #1 - adds r2, r3, r6 - adds r0, #8 - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x28 - strb r7, [r0] - ldr r0, [r4] - adds r0, #8 - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x29 - strb r7, [r0] - ldr r0, [r4] - adds r0, #9 - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x28 - strb r7, [r0] - ldr r0, [r4] - adds r0, #9 - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x29 - strb r7, [r0] - ldr r0, [r4] - adds r0, #0xa - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x28 - strb r7, [r0] - ldr r0, [r4] - adds r0, #0xa - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x29 - strb r7, [r0] - ldr r0, [r4] - adds r0, #0xe - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x28 - strb r7, [r0] - ldr r0, [r4] - adds r0, #0xe - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x29 - strb r7, [r0] - ldr r0, [r4] - adds r0, #0xf - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x28 - strb r7, [r0] - ldr r0, [r4] - adds r0, #0xf - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x29 - strb r7, [r0] - ldr r0, [r4] - adds r0, #8 - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - mov r8, r0 - ldrb r1, [r0] - mov r0, sl - orrs r1, r0 - mov r0, r8 - strb r1, [r0] - ldr r0, [r4] - adds r0, #9 - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - mov r8, r0 - ldrb r1, [r0] - mov r0, sl - orrs r1, r0 - mov r0, r8 - strb r1, [r0] - ldr r0, [r4] - adds r0, #0xa - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r1, [r0] - mov r2, sl - orrs r1, r2 - strb r1, [r0] - ldr r0, [r4] - adds r0, #0xe - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - ldr r0, [r4] - adds r0, #0xf - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r3, _0819E1BC - mov r8, r3 - ldr r0, _0819E1C0 - mov sb, r0 - cmp r6, #1 - bhi _0819E19E - b _0819E038 -_0819E19E: - ldr r0, [r3] - ldrb r0, [r0, #0xe] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - add r1, sb - adds r1, #0x3e - ldrb r2, [r1] - movs r3, #5 - rsbs r3, r3, #0 - adds r0, r3, #0 - b _0819E1D0 - .align 2, 0 -_0819E1B8: .4byte gUnknown_85DC03C -_0819E1BC: .4byte gUnknown_3001280 -_0819E1C0: .4byte gUnknown_20205AC -_0819E1C4: .4byte gUnknown_85DC054 -_0819E1C8: .4byte gUnknown_85DC06C -_0819E1CC: .4byte gUnknown_85DC084 -_0819E1D0: - ands r0, r2 - strb r0, [r1] - mov r1, r8 - ldr r0, [r1] - ldrb r1, [r0, #0xf] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sb - adds r0, #0x3e - ldrb r2, [r0] - adds r1, r3, #0 - ands r1, r2 - strb r1, [r0] - mov r2, r8 - ldr r0, [r2] - ldrb r1, [r0, #8] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sb - adds r0, #0x3e - ldrb r2, [r0] - adds r1, r3, #0 - ands r1, r2 - strb r1, [r0] - mov r4, r8 - ldr r0, [r4] - ldrb r1, [r0, #9] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sb - adds r0, #0x3e - ldrb r2, [r0] - adds r1, r3, #0 - ands r1, r2 - strb r1, [r0] - ldr r0, [r4] - ldrb r1, [r0, #0xa] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sb - adds r0, #0x3e - ldrb r1, [r0] - ands r3, r1 - strb r3, [r0] - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end Swap_InitAllSprites - - thumb_func_start Swap_DestroyAllSprites -Swap_DestroyAllSprites: @ 0x0819E240 - push {r4, r5, r6, r7, lr} - movs r5, #0 -_0819E244: - ldr r6, _0819E308 - ldr r0, [r6] - adds r0, #5 - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _0819E30C - adds r0, r0, r4 - bl DestroySprite - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #2 - bls _0819E244 - ldr r0, [r6] - ldrb r1, [r0, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - ldr r0, [r6] - ldrb r1, [r0, #1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - ldr r0, [r6] - ldrb r1, [r0, #2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - movs r5, #0 -_0819E298: - movs r4, #0 - lsls r6, r5, #1 -_0819E29C: - ldr r0, _0819E308 - ldr r0, [r0] - adds r1, r6, r5 - adds r1, r4, r1 - adds r0, #8 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0819E30C - adds r0, r0, r1 - bl DestroySprite - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #2 - bls _0819E29C - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #1 - bls _0819E298 - movs r5, #0 -_0819E2CE: - movs r4, #0 - adds r7, r5, #1 - lsls r6, r5, #1 -_0819E2D4: - ldr r0, _0819E308 - ldr r0, [r0] - adds r1, r4, r6 - adds r0, #0xe - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0819E30C - adds r0, r0, r1 - bl DestroySprite - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #1 - bls _0819E2D4 - lsls r0, r7, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #1 - bls _0819E2CE - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0819E308: .4byte gUnknown_3001280 -_0819E30C: .4byte gUnknown_20205AC - thumb_func_end Swap_DestroyAllSprites - - thumb_func_start Swap_HandleActionCursorChange -Swap_HandleActionCursorChange: @ 0x0819E310 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #2 - bhi _0819E364 - ldr r4, _0819E35C - ldr r5, _0819E360 - ldr r0, [r5] - ldrb r1, [r0, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - bl sub_0819E5F4 - ldr r0, [r5] - ldrb r2, [r0, #4] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r4 - adds r0, #5 - adds r0, r0, r6 - ldrb r2, [r0] - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r0, [r0, #0x20] - strh r0, [r1, #0x20] - b _0819E38C - .align 2, 0 -_0819E35C: .4byte gUnknown_20205AC -_0819E360: .4byte gUnknown_3001280 -_0819E364: - ldr r2, _0819E394 - ldr r3, _0819E398 - ldr r0, [r3] - ldrb r1, [r0, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r3] - ldr r1, [r0, #0x18] - lsls r0, r6, #3 - adds r0, r0, r1 - ldrb r0, [r0] - bl sub_0819E540 -_0819E38C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0819E394: .4byte gUnknown_20205AC -_0819E398: .4byte gUnknown_3001280 - thumb_func_end Swap_HandleActionCursorChange - - thumb_func_start Swap_UpdateBallCursorPosition -Swap_UpdateBallCursorPosition: @ 0x0819E39C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #5 - bl sub_080A306C - lsls r4, r4, #0x18 - cmp r4, #0 - ble _0819E3C8 - ldr r1, _0819E3C4 - ldr r2, [r1] - ldrb r0, [r2, #3] - adds r0, #1 - ldrb r3, [r2, #0x17] - cmp r0, r3 - bne _0819E3E0 - movs r0, #0 - b _0819E3E0 - .align 2, 0 -_0819E3C4: .4byte gUnknown_3001280 -_0819E3C8: - ldr r0, _0819E3D8 - ldr r2, [r0] - ldrb r3, [r2, #3] - adds r1, r0, #0 - cmp r3, #0 - beq _0819E3DC - subs r0, r3, #1 - b _0819E3E0 - .align 2, 0 -_0819E3D8: .4byte gUnknown_3001280 -_0819E3DC: - ldrb r0, [r2, #0x17] - subs r0, #1 -_0819E3E0: - strb r0, [r2, #3] - ldr r0, [r1] - ldrb r0, [r0, #3] - bl Swap_HandleActionCursorChange - pop {r4} - pop {r0} - bx r0 - thumb_func_end Swap_UpdateBallCursorPosition - - thumb_func_start Swap_UpdateActionCursorPosition -Swap_UpdateActionCursorPosition: @ 0x0819E3F0 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #5 - bl sub_080A306C - lsls r4, r4, #0x18 - cmp r4, #0 - ble _0819E430 - ldr r0, _0819E418 - ldr r2, [r0] - ldrb r1, [r2, #3] - adds r4, r0, #0 - cmp r1, #2 - bhi _0819E41C - movs r0, #3 - strb r0, [r2, #3] - b _0819E452 - .align 2, 0 -_0819E418: .4byte gUnknown_3001280 -_0819E41C: - ldrb r0, [r2, #3] - adds r0, #1 - ldrb r1, [r2, #0x17] - cmp r0, r1 - beq _0819E42A - strb r0, [r2, #3] - b _0819E452 -_0819E42A: - movs r0, #0 - strb r0, [r2, #3] - b _0819E452 -_0819E430: - ldr r0, _0819E448 - ldr r1, [r0] - ldrb r3, [r1, #3] - adds r2, r3, #0 - adds r4, r0, #0 - cmp r2, #2 - bls _0819E44C - cmp r2, #0 - beq _0819E44C - subs r0, r3, #1 - b _0819E450 - .align 2, 0 -_0819E448: .4byte gUnknown_3001280 -_0819E44C: - ldrb r0, [r1, #0x17] - subs r0, #1 -_0819E450: - strb r0, [r1, #3] -_0819E452: - ldr r0, [r4] - ldrb r0, [r0, #3] - bl Swap_HandleActionCursorChange - pop {r4} - pop {r0} - bx r0 - thumb_func_end Swap_UpdateActionCursorPosition - - thumb_func_start Swap_UpdateYesNoCursorPosition -Swap_UpdateYesNoCursorPosition: @ 0x0819E460 - push {lr} - lsls r0, r0, #0x18 - cmp r0, #0 - ble _0819E480 - ldr r0, _0819E478 - ldr r1, [r0] - ldrb r3, [r1, #0x16] - adds r2, r0, #0 - cmp r3, #1 - beq _0819E47C - adds r0, r3, #1 - b _0819E496 - .align 2, 0 -_0819E478: .4byte gUnknown_3001280 -_0819E47C: - movs r0, #0 - b _0819E496 -_0819E480: - ldr r0, _0819E490 - ldr r1, [r0] - ldrb r3, [r1, #0x16] - adds r2, r0, #0 - cmp r3, #0 - beq _0819E494 - subs r0, r3, #1 - b _0819E496 - .align 2, 0 -_0819E490: .4byte gUnknown_3001280 -_0819E494: - movs r0, #1 -_0819E496: - strb r0, [r1, #0x16] - ldr r3, _0819E4C4 - ldr r2, [r2] - ldrb r0, [r2, #1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrb r0, [r2, #0x16] - lsls r0, r0, #4 - adds r0, #0x70 - strh r0, [r1, #0x22] - ldrb r0, [r2, #2] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrb r0, [r2, #0x16] - lsls r0, r0, #4 - adds r0, #0x70 - strh r0, [r1, #0x22] - pop {r0} - bx r0 - .align 2, 0 -_0819E4C4: .4byte gUnknown_20205AC - thumb_func_end Swap_UpdateYesNoCursorPosition - - thumb_func_start Swap_UpdateMenuCursorPosition -Swap_UpdateMenuCursorPosition: @ 0x0819E4C8 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #5 - bl sub_080A306C - lsls r4, r4, #0x18 - cmp r4, #0 - ble _0819E4F4 - ldr r0, _0819E4EC - ldr r1, [r0] - ldrb r3, [r1] - adds r2, r0, #0 - cmp r3, #2 - beq _0819E4F0 - adds r0, r3, #1 - b _0819E50A - .align 2, 0 -_0819E4EC: .4byte gUnknown_3001280 -_0819E4F0: - movs r0, #0 - b _0819E50A -_0819E4F4: - ldr r0, _0819E504 - ldr r1, [r0] - ldrb r3, [r1] - adds r2, r0, #0 - cmp r3, #0 - beq _0819E508 - subs r0, r3, #1 - b _0819E50A - .align 2, 0 -_0819E504: .4byte gUnknown_3001280 -_0819E508: - movs r0, #2 -_0819E50A: - strb r0, [r1] - ldr r3, _0819E53C - ldr r2, [r2] - ldrb r0, [r2, #1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrb r0, [r2] - lsls r0, r0, #4 - adds r0, #0x70 - strh r0, [r1, #0x22] - ldrb r0, [r2, #2] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrb r0, [r2] - lsls r0, r0, #4 - adds r0, #0x70 - strh r0, [r1, #0x22] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0819E53C: .4byte gUnknown_20205AC - thumb_func_end Swap_UpdateMenuCursorPosition - - thumb_func_start sub_0819E540 -sub_0819E540: @ 0x0819E540 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r4, #0 - movs r0, #5 - rsbs r0, r0, #0 - mov sb, r0 - movs r2, #4 - mov r8, r2 - ldr r0, _0819E598 - mov ip, r0 - ldr r7, _0819E59C -_0819E55E: - cmp r6, #2 - bne _0819E5A0 - ldr r5, _0819E598 - ldr r3, _0819E59C - ldr r0, [r3] - adds r0, #0xb - adds r0, r0, r4 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - adds r1, #0x3e - ldrb r2, [r1] - mov r0, sb - ands r0, r2 - strb r0, [r1] - cmp r4, #1 - bhi _0819E5DC - ldr r0, [r3] - adds r0, #0x10 - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - b _0819E5D2 - .align 2, 0 -_0819E598: .4byte gUnknown_20205AC -_0819E59C: .4byte gUnknown_3001280 -_0819E5A0: - cmp r6, #3 - bne _0819E5DC - cmp r4, #1 - bhi _0819E5C2 - ldr r0, [r7] - adds r0, #0x10 - adds r0, r0, r4 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - add r1, ip - adds r1, #0x3e - ldrb r2, [r1] - mov r0, sb - ands r0, r2 - strb r0, [r1] -_0819E5C2: - ldr r0, [r7] - adds r0, #0xb - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, ip -_0819E5D2: - adds r0, #0x3e - ldrb r1, [r0] - mov r2, r8 - orrs r1, r2 - strb r1, [r0] -_0819E5DC: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #2 - bls _0819E55E - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0819E540 - - thumb_func_start sub_0819E5F4 -sub_0819E5F4: @ 0x0819E5F4 - push {r4, r5, r6, lr} - movs r2, #0 - ldr r5, _0819E644 - ldr r4, _0819E648 - adds r6, r5, #0 - movs r3, #4 -_0819E600: - ldr r0, [r4] - adds r0, #0xb - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - cmp r2, #1 - bhi _0819E634 - ldr r0, [r4] - adds r0, #0x10 - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] -_0819E634: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #2 - bls _0819E600 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0819E644: .4byte gUnknown_20205AC -_0819E648: .4byte gUnknown_3001280 - thumb_func_end sub_0819E5F4 - - thumb_func_start Swap_ShowMenuOptions -Swap_ShowMenuOptions: @ 0x0819E64C - push {r4, r5, lr} - ldr r0, _0819E660 - ldr r3, [r0] - ldrb r1, [r3, #0x15] - adds r5, r0, #0 - cmp r1, #1 - bne _0819E664 - movs r0, #0 - strb r0, [r3, #0x15] - b _0819E668 - .align 2, 0 -_0819E660: .4byte gUnknown_3001280 -_0819E664: - movs r0, #0 - strb r0, [r3] -_0819E668: - ldr r4, _0819E6E4 - ldr r2, [r5] - ldrb r1, [r2, #1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0xb0 - strh r1, [r0, #0x20] - ldrb r0, [r2, #1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r0, [r2] - lsls r0, r0, #4 - adds r0, #0x70 - strh r0, [r1, #0x22] - ldrb r1, [r2, #2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0xd0 - strh r1, [r0, #0x20] - ldrb r0, [r2, #2] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r0, [r2] - lsls r0, r0, #4 - adds r0, #0x70 - strh r0, [r1, #0x22] - ldrb r0, [r2, #1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - adds r1, #0x3e - ldrb r3, [r1] - movs r2, #5 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r3 - strb r0, [r1] - ldr r0, [r5] - ldrb r1, [r0, #2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - bl Swap_PrintMenuOptions - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0819E6E4: .4byte gUnknown_20205AC - thumb_func_end Swap_ShowMenuOptions - - thumb_func_start Swap_ShowYesNoOptions -Swap_ShowYesNoOptions: @ 0x0819E6E8 - push {r4, r5, lr} - ldr r5, _0819E764 - ldr r1, [r5] - movs r0, #0 - strb r0, [r1, #0x16] - ldr r4, _0819E768 - ldr r2, [r5] - ldrb r1, [r2, #1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0xb0 - strh r1, [r0, #0x20] - ldrb r1, [r2, #1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r3, #0x70 - strh r3, [r0, #0x22] - ldrb r1, [r2, #2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0xd0 - strh r1, [r0, #0x20] - ldrb r1, [r2, #2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - strh r3, [r0, #0x22] - ldrb r0, [r2, #1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - adds r1, #0x3e - ldrb r3, [r1] - movs r2, #5 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r3 - strb r0, [r1] - ldr r0, [r5] - ldrb r1, [r0, #2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - bl Swap_PrintYesNoOptions - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0819E764: .4byte gUnknown_3001280 -_0819E768: .4byte gUnknown_20205AC - thumb_func_end Swap_ShowYesNoOptions - - thumb_func_start sub_0819E76C -sub_0819E76C: @ 0x0819E76C - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r5, _0819E7C0 - ldr r3, _0819E7C4 - ldr r0, [r3] - ldrb r1, [r0, #1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r3] - ldrb r1, [r0, #2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - adds r0, r4, #0 - movs r1, #0 - bl FillWindowPixelBuffer - adds r0, r4, #0 - movs r1, #2 - bl CopyWindowToVram - adds r0, r4, #0 - bl ClearWindowTilemap - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0819E7C0: .4byte gUnknown_20205AC -_0819E7C4: .4byte gUnknown_3001280 - thumb_func_end sub_0819E76C - - thumb_func_start sub_0819E7C8 -sub_0819E7C8: @ 0x0819E7C8 - push {lr} - movs r0, #6 - bl PutWindowTilemap - movs r0, #6 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #6 - movs r1, #3 - bl CopyWindowToVram - movs r0, #1 - bl PutWindowTilemap - movs r0, #1 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #1 - movs r1, #2 - bl CopyWindowToVram - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0819E7C8 - - thumb_func_start sub_0819E7FC -sub_0819E7FC: @ 0x0819E7FC - push {lr} - sub sp, #0xc - movs r0, #0 - bl PutWindowTilemap - ldr r2, _0819E840 - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - movs r1, #1 - movs r3, #0x48 - bl AddTextPrinterParameterized - movs r0, #0 - movs r1, #2 - bl CopyWindowToVram - movs r0, #7 - bl PutWindowTilemap - movs r0, #7 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #7 - movs r1, #2 - bl CopyWindowToVram - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_0819E840: .4byte gUnknown_85DC13C - thumb_func_end sub_0819E7FC - - thumb_func_start sub_0819E844 -sub_0819E844: @ 0x0819E844 - push {lr} - bl sub_0819E7C8 - movs r0, #5 - bl PutWindowTilemap - movs r0, #5 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #5 - movs r1, #2 - bl CopyWindowToVram - pop {r0} - bx r0 - thumb_func_end sub_0819E844 - - thumb_func_start Swap_PrintPkmnSwap -Swap_PrintPkmnSwap: @ 0x0819E864 - push {lr} - sub sp, #0xc - movs r0, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r2, _0819E894 - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_0819E894: .4byte gUnknown_85DC0B4 - thumb_func_end Swap_PrintPkmnSwap - - thumb_func_start Swap_PrintMonSpecies -Swap_PrintMonSpecies: @ 0x0819E898 - push {r4, lr} - sub sp, #0xc - movs r0, #1 - movs r1, #0 - bl FillWindowPixelBuffer - ldr r0, _0819E8B8 - ldr r1, [r0] - ldrb r0, [r1, #3] - cmp r0, #2 - bls _0819E8BC - movs r0, #1 - movs r1, #2 - bl CopyWindowToVram - b _0819E924 - .align 2, 0 -_0819E8B8: .4byte gUnknown_3001280 -_0819E8BC: - ldrb r2, [r1, #3] - ldrb r0, [r1, #0x14] - cmp r0, #0 - bne _0819E8D0 - movs r0, #0x64 - muls r0, r2, r0 - ldr r1, _0819E8CC - b _0819E8D6 - .align 2, 0 -_0819E8CC: .4byte gUnknown_2024190 -_0819E8D0: - movs r0, #0x64 - muls r0, r2, r0 - ldr r1, _0819E92C -_0819E8D6: - adds r0, r0, r1 - movs r1, #0xb - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _0819E930 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - ldr r0, _0819E934 - adds r1, r1, r0 - adds r0, r4, #0 - bl StringCopy - adds r0, r4, #0 - bl StringLength - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #5 - subs r2, r2, r0 - lsls r2, r2, #0x1b - lsrs r2, r2, #0x18 - ldr r0, _0819E938 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r4, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r3, #2 - bl AddTextPrinterParameterized3 - movs r0, #1 - movs r1, #2 - bl CopyWindowToVram -_0819E924: - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0819E92C: .4byte gUnknown_20243E8 -_0819E930: .4byte gUnknown_2021C7C -_0819E934: .4byte gUnknown_82EA31C -_0819E938: .4byte gUnknown_85DC1D1 - thumb_func_end Swap_PrintMonSpecies - - thumb_func_start Swap_PrintOnInfoWindow -Swap_PrintOnInfoWindow: @ 0x0819E93C - push {r4, lr} - sub sp, #0xc - adds r4, r0, #0 - movs r0, #2 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #5 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - movs r0, #2 - movs r1, #1 - adds r2, r4, #0 - movs r3, #4 - bl AddTextPrinterParameterized - movs r0, #2 - movs r1, #2 - bl CopyWindowToVram - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - thumb_func_end Swap_PrintOnInfoWindow - - thumb_func_start Swap_PrintMenuOptions -Swap_PrintMenuOptions: @ 0x0819E970 - push {r4, r5, lr} - sub sp, #0xc - movs r0, #3 - bl PutWindowTilemap - movs r0, #3 - movs r1, #0 - bl FillWindowPixelBuffer - ldr r5, _0819E9D4 - str r5, [sp] - movs r4, #0 - str r4, [sp, #4] - ldr r0, _0819E9D8 - str r0, [sp, #8] - movs r0, #3 - movs r1, #1 - movs r2, #8 - movs r3, #2 - bl AddTextPrinterParameterized3 - str r5, [sp] - str r4, [sp, #4] - ldr r0, _0819E9DC - str r0, [sp, #8] - movs r0, #3 - movs r1, #1 - movs r2, #8 - movs r3, #0x12 - bl AddTextPrinterParameterized3 - str r5, [sp] - str r4, [sp, #4] - ldr r0, _0819E9E0 - str r0, [sp, #8] - movs r0, #3 - movs r1, #1 - movs r2, #8 - movs r3, #0x22 - bl AddTextPrinterParameterized3 - movs r0, #3 - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0819E9D4: .4byte gUnknown_85DC1CE -_0819E9D8: .4byte gUnknown_85DC0ED -_0819E9DC: .4byte gUnknown_85DC0E8 -_0819E9E0: .4byte gUnknown_85DC0F4 - thumb_func_end Swap_PrintMenuOptions - - thumb_func_start Swap_PrintYesNoOptions -Swap_PrintYesNoOptions: @ 0x0819E9E4 - push {r4, r5, lr} - sub sp, #0xc - movs r0, #4 - bl PutWindowTilemap - movs r0, #4 - movs r1, #0 - bl FillWindowPixelBuffer - ldr r5, _0819EA34 - str r5, [sp] - movs r4, #0 - str r4, [sp, #4] - ldr r0, _0819EA38 - str r0, [sp, #8] - movs r0, #4 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 - str r5, [sp] - str r4, [sp, #4] - ldr r0, _0819EA3C - str r0, [sp, #8] - movs r0, #4 - movs r1, #1 - movs r2, #0 - movs r3, #0x12 - bl AddTextPrinterParameterized3 - movs r0, #4 - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0819EA34: .4byte gUnknown_85DC1CE -_0819EA38: .4byte gUnknown_85DC10C -_0819EA3C: .4byte gUnknown_85DC10F - thumb_func_end Swap_PrintYesNoOptions - - thumb_func_start sub_0819EA40 -sub_0819EA40: @ 0x0819EA40 - push {lr} - sub sp, #0xc - movs r0, #6 - bl PutWindowTilemap - movs r0, #6 - movs r1, #0 - bl FillWindowPixelBuffer - ldr r0, _0819EA74 - ldr r0, [r0] - ldrb r1, [r0, #0x14] - cmp r1, #0 - bne _0819EA80 - ldr r0, _0819EA78 - str r0, [sp] - str r1, [sp, #4] - ldr r0, _0819EA7C - str r0, [sp, #8] - movs r0, #6 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 - b _0819EA98 - .align 2, 0 -_0819EA74: .4byte gUnknown_3001280 -_0819EA78: .4byte gUnknown_85DC1D1 -_0819EA7C: .4byte gUnknown_85DC121 -_0819EA80: - ldr r0, _0819EAA8 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - ldr r0, _0819EAAC - str r0, [sp, #8] - movs r0, #6 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 -_0819EA98: - movs r0, #6 - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_0819EAA8: .4byte gUnknown_85DC1D1 -_0819EAAC: .4byte gUnknown_85DC126 - thumb_func_end sub_0819EA40 - - thumb_func_start sub_0819EAB0 -sub_0819EAB0: @ 0x0819EAB0 - push {lr} - sub sp, #0xc - movs r0, #5 - movs r1, #0 - bl FillWindowPixelBuffer - ldr r0, _0819EB08 - ldr r0, [r0] - ldrb r0, [r0, #0x14] - cmp r0, #0 - beq _0819EAE2 - cmp r0, #1 - bne _0819EAFA - ldr r0, _0819EB0C - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - ldr r0, _0819EB10 - str r0, [sp, #8] - movs r0, #5 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl AddTextPrinterParameterized3 -_0819EAE2: - ldr r0, _0819EB0C - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - ldr r0, _0819EB14 - str r0, [sp, #8] - movs r0, #5 - movs r1, #0 - movs r2, #0x20 - movs r3, #0x18 - bl AddTextPrinterParameterized3 -_0819EAFA: - movs r0, #5 - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_0819EB08: .4byte gUnknown_3001280 -_0819EB0C: .4byte gUnknown_85DC1CE -_0819EB10: .4byte gUnknown_85DC113 -_0819EB14: .4byte gUnknown_85DC11C - thumb_func_end sub_0819EAB0 - - thumb_func_start sub_0819EB18 -sub_0819EB18: @ 0x0819EB18 - push {lr} - sub sp, #0xc - movs r0, #3 - movs r1, #0 - bl FillWindowPixelBuffer - ldr r0, _0819EB70 - ldr r0, [r0] - ldrb r0, [r0, #0x14] - cmp r0, #0 - beq _0819EB4A - cmp r0, #1 - bne _0819EB62 - ldr r0, _0819EB74 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - ldr r0, _0819EB78 - str r0, [sp, #8] - movs r0, #3 - movs r1, #0 - movs r2, #0 - movs r3, #8 - bl AddTextPrinterParameterized3 -_0819EB4A: - ldr r0, _0819EB74 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - ldr r0, _0819EB7C - str r0, [sp, #8] - movs r0, #3 - movs r1, #0 - movs r2, #0x20 - movs r3, #0x20 - bl AddTextPrinterParameterized3 -_0819EB62: - movs r0, #3 - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_0819EB70: .4byte gUnknown_3001280 -_0819EB74: .4byte gUnknown_85DC1CE -_0819EB78: .4byte gUnknown_85DC113 -_0819EB7C: .4byte gUnknown_85DC11C - thumb_func_end sub_0819EB18 - - thumb_func_start sub_0819EB80 -sub_0819EB80: @ 0x0819EB80 - push {lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _0819EB92 - cmp r1, #1 - beq _0819EBC0 - b _0819EBD8 -_0819EB92: - ldr r0, _0819EBB4 - ldr r0, [r0] - ldrb r0, [r0, #0x14] - cmp r0, #1 - bne _0819EBD8 - ldr r0, _0819EBB8 - str r0, [sp] - str r1, [sp, #4] - ldr r0, _0819EBBC - str r0, [sp, #8] - movs r0, #3 - movs r1, #0 - movs r2, #0 - movs r3, #8 - bl AddTextPrinterParameterized3 - b _0819EBD8 - .align 2, 0 -_0819EBB4: .4byte gUnknown_3001280 -_0819EBB8: .4byte gUnknown_85DC1CE -_0819EBBC: .4byte gUnknown_85DC113 -_0819EBC0: - ldr r0, _0819EBE8 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - ldr r0, _0819EBEC - str r0, [sp, #8] - movs r0, #3 - movs r1, #0 - movs r2, #0x20 - movs r3, #0x20 - bl AddTextPrinterParameterized3 -_0819EBD8: - movs r0, #3 - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_0819EBE8: .4byte gUnknown_85DC1CE -_0819EBEC: .4byte gUnknown_85DC11C - thumb_func_end sub_0819EB80 - - thumb_func_start Swap_PrintMonSpecies2 -Swap_PrintMonSpecies2: @ 0x0819EBF0 - push {r4, lr} - sub sp, #0x18 - ldr r0, _0819EC18 - add r1, sp, #0xc - movs r2, #4 - bl CpuSet - ldr r0, _0819EC1C - ldr r2, [r0] - ldrb r0, [r2, #0x15] - cmp r0, #0 - bne _0819EC24 - add r0, sp, #0xc - ldr r1, _0819EC20 - movs r2, #0xe4 - lsls r2, r2, #1 - adds r1, r1, r2 - ldrh r1, [r1] - strh r1, [r0, #8] - b _0819EC2A - .align 2, 0 -_0819EC18: .4byte gUnknown_85DC1C4 -_0819EC1C: .4byte gUnknown_3001280 -_0819EC20: .4byte gUnknown_20377B4 -_0819EC24: - add r1, sp, #0xc - ldrh r0, [r2, #0x24] - strh r0, [r1, #8] -_0819EC2A: - add r0, sp, #0xc - movs r1, #0xf0 - movs r2, #0xa - bl LoadPalette - movs r0, #0 - bl PutWindowTilemap - ldr r0, _0819EC5C - ldr r0, [r0] - ldrb r1, [r0, #0x14] - cmp r1, #0 - bne _0819EC68 - ldr r0, _0819EC60 - str r0, [sp] - str r1, [sp, #4] - ldr r0, _0819EC64 - str r0, [sp, #8] - movs r0, #0 - movs r1, #1 - movs r2, #0x48 - movs r3, #2 - bl AddTextPrinterParameterized3 - b _0819EC80 - .align 2, 0 -_0819EC5C: .4byte gUnknown_3001280 -_0819EC60: .4byte gUnknown_85DC1D1 -_0819EC64: .4byte gUnknown_85DC121 -_0819EC68: - ldr r0, _0819ECAC - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - ldr r0, _0819ECB0 - str r0, [sp, #8] - movs r0, #0 - movs r1, #1 - movs r2, #0x48 - movs r3, #2 - bl AddTextPrinterParameterized3 -_0819EC80: - movs r0, #0 - movs r1, #2 - bl CopyWindowToVram - movs r0, #7 - bl PutWindowTilemap - movs r0, #7 - movs r1, #0 - bl FillWindowPixelBuffer - ldr r0, _0819ECB4 - ldr r1, [r0] - ldrb r0, [r1, #3] - cmp r0, #2 - bls _0819ECB8 - movs r0, #7 - movs r1, #3 - bl CopyWindowToVram - b _0819ED20 - .align 2, 0 -_0819ECAC: .4byte gUnknown_85DC1D1 -_0819ECB0: .4byte gUnknown_85DC126 -_0819ECB4: .4byte gUnknown_3001280 -_0819ECB8: - ldrb r2, [r1, #3] - ldrb r0, [r1, #0x14] - cmp r0, #0 - bne _0819ECCC - movs r0, #0x64 - muls r0, r2, r0 - ldr r1, _0819ECC8 - b _0819ECD2 - .align 2, 0 -_0819ECC8: .4byte gUnknown_2024190 -_0819ECCC: - movs r0, #0x64 - muls r0, r2, r0 - ldr r1, _0819ED28 -_0819ECD2: - adds r0, r0, r1 - movs r1, #0xb - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _0819ED2C - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - ldr r0, _0819ED30 - adds r1, r1, r0 - adds r0, r4, #0 - bl StringCopy - adds r0, r4, #0 - bl StringLength - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #5 - subs r2, r2, r0 - lsls r2, r2, #0x1b - lsrs r2, r2, #0x18 - ldr r0, _0819ED34 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r4, [sp, #8] - movs r0, #7 - movs r1, #1 - movs r3, #2 - bl AddTextPrinterParameterized3 - movs r0, #7 - movs r1, #3 - bl CopyWindowToVram -_0819ED20: - add sp, #0x18 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0819ED28: .4byte gUnknown_20243E8 -_0819ED2C: .4byte gUnknown_2021C7C -_0819ED30: .4byte gUnknown_82EA31C -_0819ED34: .4byte gUnknown_85DC1D1 - thumb_func_end Swap_PrintMonSpecies2 - - thumb_func_start sub_0819ED38 -sub_0819ED38: @ 0x0819ED38 - push {r4, lr} - sub sp, #0xc - ldr r0, _0819ED78 - movs r1, #0xe0 - movs r2, #0xa - bl LoadPalette - ldr r0, _0819ED7C - ldr r1, _0819ED80 - movs r2, #5 - bl CpuSet - movs r0, #6 - bl PutWindowTilemap - ldr r0, _0819ED84 - ldr r0, [r0] - ldrb r1, [r0, #0x14] - cmp r1, #0 - bne _0819ED90 - ldr r0, _0819ED88 - str r0, [sp] - str r1, [sp, #4] - ldr r0, _0819ED8C - str r0, [sp, #8] - movs r0, #6 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 - b _0819EDA8 - .align 2, 0 -_0819ED78: .4byte gUnknown_85DC1C4 -_0819ED7C: .4byte gUnknown_2037594 -_0819ED80: .4byte gUnknown_2037974 -_0819ED84: .4byte gUnknown_3001280 -_0819ED88: .4byte gUnknown_85DC1D1 -_0819ED8C: .4byte gUnknown_85DC121 -_0819ED90: - ldr r0, _0819EDC4 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - ldr r0, _0819EDC8 - str r0, [sp, #8] - movs r0, #6 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 -_0819EDA8: - movs r0, #6 - movs r1, #3 - bl CopyWindowToVram - ldr r0, _0819EDCC - ldr r1, [r0] - ldrb r0, [r1, #3] - cmp r0, #2 - bls _0819EDD0 - movs r0, #1 - movs r1, #2 - bl CopyWindowToVram - b _0819EE38 - .align 2, 0 -_0819EDC4: .4byte gUnknown_85DC1D1 -_0819EDC8: .4byte gUnknown_85DC126 -_0819EDCC: .4byte gUnknown_3001280 -_0819EDD0: - ldrb r2, [r1, #3] - ldrb r0, [r1, #0x14] - cmp r0, #0 - bne _0819EDE4 - movs r0, #0x64 - muls r0, r2, r0 - ldr r1, _0819EDE0 - b _0819EDEA - .align 2, 0 -_0819EDE0: .4byte gUnknown_2024190 -_0819EDE4: - movs r0, #0x64 - muls r0, r2, r0 - ldr r1, _0819EE40 -_0819EDEA: - adds r0, r0, r1 - movs r1, #0xb - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r4, _0819EE44 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - ldr r0, _0819EE48 - adds r1, r1, r0 - adds r0, r4, #0 - bl StringCopy - adds r0, r4, #0 - bl StringLength - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #5 - subs r2, r2, r0 - lsls r2, r2, #0x1b - lsrs r2, r2, #0x18 - ldr r0, _0819EE4C - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r4, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r3, #2 - bl AddTextPrinterParameterized3 - movs r0, #1 - movs r1, #3 - bl CopyWindowToVram -_0819EE38: - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0819EE40: .4byte gUnknown_20243E8 -_0819EE44: .4byte gUnknown_2021C7C -_0819EE48: .4byte gUnknown_82EA31C -_0819EE4C: .4byte gUnknown_85DC1D1 - thumb_func_end sub_0819ED38 - - thumb_func_start Swap_PrintMonCategory -Swap_PrintMonCategory: @ 0x0819EE50 - push {r4, r5, r6, lr} - sub sp, #0x18 - ldr r6, _0819EE74 - ldr r0, [r6] - ldrb r4, [r0, #3] - adds r5, r4, #0 - movs r0, #8 - movs r1, #0 - bl FillWindowPixelBuffer - cmp r4, #2 - bls _0819EE78 - movs r0, #8 - movs r1, #2 - bl CopyWindowToVram - b _0819EF20 - .align 2, 0 -_0819EE74: .4byte gUnknown_3001280 -_0819EE78: - movs r0, #8 - bl PutWindowTilemap - ldr r0, [r6] - ldrb r0, [r0, #0x14] - cmp r0, #0 - bne _0819EE94 - movs r0, #0x64 - muls r0, r4, r0 - ldr r1, _0819EE90 - b _0819EE9A - .align 2, 0 -_0819EE90: .4byte gUnknown_2024190 -_0819EE94: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _0819EF28 -_0819EE9A: - adds r0, r0, r1 - movs r1, #0xb - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - movs r4, #0 - ldr r1, _0819EF2C - lsls r3, r5, #3 - subs r0, r3, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _0819EEEA - adds r6, r1, #0 -_0819EEC4: - mov r2, sp - adds r2, r2, r4 - adds r2, #0xc - subs r1, r3, r5 - lsls r1, r1, #2 - adds r0, r4, r1 - adds r0, r0, r6 - ldrb r0, [r0] - strb r0, [r2] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r1, r4, r1 - adds r1, r1, r6 - ldrb r0, [r1] - cmp r0, #0 - beq _0819EEEA - cmp r4, #4 - bls _0819EEC4 -_0819EEEA: - mov r1, sp - adds r1, r1, r4 - adds r1, #0xc - movs r0, #0xff - strb r0, [r1] - ldr r1, _0819EF30 - add r0, sp, #0xc - bl StringAppend - movs r3, #5 - subs r3, r3, r4 - lsls r3, r3, #0x1b - lsrs r3, r3, #0x18 - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - movs r0, #8 - movs r1, #1 - add r2, sp, #0xc - bl AddTextPrinterParameterized - movs r0, #8 - movs r1, #2 - bl CopyWindowToVram -_0819EF20: - add sp, #0x18 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0819EF28: .4byte gUnknown_20243E8 -_0819EF2C: .4byte gUnknown_854069C -_0819EF30: .4byte gUnknown_85C8C66 - thumb_func_end Swap_PrintMonCategory - - thumb_func_start Swap_InitActions -Swap_InitActions: @ 0x0819EF34 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r4, _0819EF50 - ldr r3, [r4] - ldrb r0, [r3, #0x15] - cmp r0, #1 - beq _0819EF80 - cmp r2, #0 - beq _0819EF54 - cmp r2, #1 - beq _0819EF6C - b _0819EF80 - .align 2, 0 -_0819EF50: .4byte gUnknown_3001280 -_0819EF54: - strb r2, [r3, #0x14] - ldr r0, [r4] - strb r2, [r0, #3] - ldr r1, [r4] - movs r0, #4 - strb r0, [r1, #0x17] - ldr r1, [r4] - ldr r0, _0819EF68 - b _0819EF7E - .align 2, 0 -_0819EF68: .4byte gUnknown_85DC1D4 -_0819EF6C: - movs r1, #0 - strb r2, [r3, #0x14] - ldr r0, [r4] - strb r1, [r0, #3] - ldr r1, [r4] - movs r0, #5 - strb r0, [r1, #0x17] - ldr r1, [r4] - ldr r0, _0819EF88 -_0819EF7E: - str r0, [r1, #0x18] -_0819EF80: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0819EF88: .4byte gUnknown_85DC1F4 - thumb_func_end Swap_InitActions - - thumb_func_start Swap_RunMenuOptionFunc -Swap_RunMenuOptionFunc: @ 0x0819EF8C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _0819EFAC - ldr r2, _0819EFB0 - ldr r1, _0819EFB4 - ldr r1, [r1] - ldrb r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - str r1, [r3] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_0819EFAC: .4byte gUnknown_300127C -_0819EFB0: .4byte gUnknown_85DC158 -_0819EFB4: .4byte gUnknown_3001280 - thumb_func_end Swap_RunMenuOptionFunc - - thumb_func_start sub_0819EFB8 -sub_0819EFB8: @ 0x0819EFB8 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r5, _0819EFF4 - ldr r1, [r5] - ldr r0, [r1, #0x2c] - adds r1, #0x30 - movs r2, #1 - bl sub_0819F2E4 - ldr r0, [r5] - ldrb r1, [r0, #3] - movs r5, #0 - strb r1, [r0, #0x12] - movs r0, #3 - bl sub_0819E76C - ldr r1, _0819EFF8 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r5, [r0, #8] - ldr r1, _0819EFFC - str r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0819EFF4: .4byte gUnknown_3001280 -_0819EFF8: .4byte gUnknown_3005B60 -_0819EFFC: .4byte sub_0819D6D4 - thumb_func_end sub_0819EFB8 - - thumb_func_start sub_0819F000 -sub_0819F000: @ 0x0819F000 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0819F018 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r0, #6 - strh r0, [r1, #8] - ldr r0, _0819F01C - str r0, [r1] - bx lr - .align 2, 0 -_0819F018: .4byte gUnknown_3005B60 -_0819F01C: .4byte Task_FromSwapScreenToSummaryScreen - thumb_func_end sub_0819F000 - - thumb_func_start sub_0819F020 -sub_0819F020: @ 0x0819F020 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _0819F060 - ldr r1, [r0] - ldr r0, [r1, #0x2c] - adds r1, #0x30 - movs r2, #1 - bl sub_0819F2E4 - movs r0, #3 - bl sub_0819E76C - ldr r1, _0819F064 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #8] - ldr r2, _0819F068 - lsrs r1, r2, #0x10 - strh r1, [r0, #0x14] - strh r2, [r0, #0x16] - movs r1, #1 - strh r1, [r0, #0x12] - ldr r1, _0819F06C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0819F060: .4byte gUnknown_3001280 -_0819F064: .4byte gUnknown_3005B60 -_0819F068: .4byte Task_HandleSwapScreenChooseMons -_0819F06C: .4byte sub_0819D458 - thumb_func_end sub_0819F020 - - thumb_func_start Swap_RunActionFunc -Swap_RunActionFunc: @ 0x0819F070 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _0819F090 - ldr r1, _0819F094 - ldr r2, [r1] - ldrb r1, [r2, #3] - ldr r2, [r2, #0x18] - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r1, [r1, #4] - str r1, [r3] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_0819F090: .4byte gUnknown_300127C -_0819F094: .4byte gUnknown_3001280 - thumb_func_end Swap_RunActionFunc - - thumb_func_start Swap_ActionCancel -Swap_ActionCancel: @ 0x0819F098 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0819F0BC - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r2, _0819F0C0 - lsrs r0, r2, #0x10 - movs r3, #0 - strh r0, [r1, #0x14] - strh r2, [r1, #0x16] - strh r3, [r1, #8] - strh r3, [r1, #0x12] - ldr r0, _0819F0C4 - str r0, [r1] - bx lr - .align 2, 0 -_0819F0BC: .4byte gUnknown_3005B60 -_0819F0C0: .4byte sub_0819C90C -_0819F0C4: .4byte sub_0819D270 - thumb_func_end Swap_ActionCancel - - thumb_func_start Swap_ActionPkmnForSwap -Swap_ActionPkmnForSwap: @ 0x0819F0C8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0819F0EC - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r2, _0819F0F0 - lsrs r0, r2, #0x10 - movs r3, #0 - strh r0, [r1, #0x14] - strh r2, [r1, #0x16] - strh r3, [r1, #0x12] - strh r3, [r1, #8] - ldr r0, _0819F0F4 - str r0, [r1] - bx lr - .align 2, 0 -_0819F0EC: .4byte gUnknown_3005B60 -_0819F0F0: .4byte sub_0819D6D4 -_0819F0F4: .4byte sub_0819D270 - thumb_func_end Swap_ActionPkmnForSwap - - thumb_func_start Swap_ActionMon -Swap_ActionMon: @ 0x0819F0F8 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r5, _0819F120 - ldr r1, [r5] - ldrb r0, [r1, #0x14] - cmp r0, #0 - bne _0819F12C - ldr r3, _0819F124 - lsls r4, r6, #2 - adds r0, r4, r6 - lsls r0, r0, #3 - adds r0, r0, r3 - ldr r2, _0819F128 - lsrs r1, r2, #0x10 - strh r1, [r0, #0x14] - strh r2, [r0, #0x16] - movs r1, #2 - strh r1, [r0, #0x12] - b _0819F17E - .align 2, 0 -_0819F120: .4byte gUnknown_3001280 -_0819F124: .4byte gUnknown_3005B60 -_0819F128: .4byte Task_HandleSwapScreenMenu -_0819F12C: - ldrb r0, [r1, #3] - bl Swap_AlreadyHasSameSpecies - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #1 - bne _0819F164 - ldr r1, [r5] - adds r0, r1, #0 - adds r0, #0x2d - adds r1, #0x30 - movs r2, #1 - bl sub_0819F1A0 - ldr r1, _0819F15C - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0, #8] - strh r4, [r0, #0x12] - ldr r1, _0819F160 - b _0819F18A - .align 2, 0 -_0819F15C: .4byte gUnknown_3005B60 -_0819F160: .4byte Task_SwapCantHaveSameMons -_0819F164: - ldr r4, _0819F194 - lsls r5, r6, #2 - adds r0, r5, r6 - lsls r0, r0, #3 - adds r0, r0, r4 - ldr r2, _0819F198 - lsrs r1, r2, #0x10 - movs r3, #0 - strh r1, [r0, #0x14] - strh r2, [r0, #0x16] - strh r3, [r0, #0x12] - adds r3, r4, #0 - adds r4, r5, #0 -_0819F17E: - adds r0, r4, r6 - lsls r0, r0, #3 - adds r0, r0, r3 - movs r1, #0 - strh r1, [r0, #8] - ldr r1, _0819F19C -_0819F18A: - str r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0819F194: .4byte gUnknown_3005B60 -_0819F198: .4byte sub_0819C9BC -_0819F19C: .4byte sub_0819D270 - thumb_func_end Swap_ActionMon - - thumb_func_start sub_0819F1A0 -sub_0819F1A0: @ 0x0819F1A0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - lsls r5, r2, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _0819F1E4 - movs r1, #0x78 - movs r2, #0x40 - movs r3, #1 - bl CreateSprite - strb r0, [r4] - ldr r2, _0819F1E8 - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r2, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _0819F1EC - str r1, [r0] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r5, [r0, #0x3c] - movs r0, #1 - strb r0, [r6] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0819F1E4: .4byte gUnknown_85DC09C -_0819F1E8: .4byte gUnknown_20205AC -_0819F1EC: .4byte sub_0819F4EC - thumb_func_end sub_0819F1A0 - - thumb_func_start Swap_ShowSummaryMonSprite -Swap_ShowSummaryMonSprite: @ 0x0819F1F0 - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - sub sp, #0x10 - ldr r0, _0819F2D0 - movs r1, #0x78 - movs r2, #0x40 - movs r3, #1 - bl CreateSprite - ldr r6, _0819F2D4 - ldr r1, [r6] - adds r1, #0x2d - movs r2, #0 - mov sl, r2 - strb r0, [r1] - ldr r0, [r6] - adds r0, #0x2d - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0819F2D8 - mov r8, r1 - add r0, r8 - movs r1, #2 - bl StartSpriteAffineAnim - ldr r0, [r6] - ldrb r1, [r0, #3] - movs r0, #0x64 - adds r4, r1, #0 - muls r4, r0, r4 - ldr r0, _0819F2DC - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - bl GetMonData - mov sb, r0 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl GetMonData - adds r2, r0, #0 - movs r0, #0x58 - str r0, [sp] - movs r0, #0x20 - str r0, [sp, #4] - movs r0, #0xf - str r0, [sp, #8] - ldr r0, _0819F2E0 - str r0, [sp, #0xc] - adds r0, r5, #0 - mov r1, sb - movs r3, #1 - bl CreateMonPicSprite_HandleDeoxys - ldr r1, [r6] - adds r1, #0x2c - strb r0, [r1] - ldr r0, [r6] - adds r0, #0x2c - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - adds r0, #0x28 - mov r2, sl - strb r2, [r0] - ldr r0, [r6] - adds r0, #0x2c - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - adds r0, #0x29 - strb r2, [r0] - ldr r0, [r6] - adds r0, #0x2d - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0819F2D0: .4byte gUnknown_85DC09C -_0819F2D4: .4byte gUnknown_3001280 -_0819F2D8: .4byte gUnknown_20205AC -_0819F2DC: .4byte gUnknown_2024190 -_0819F2E0: .4byte 0x0000FFFF - thumb_func_end Swap_ShowSummaryMonSprite - - thumb_func_start sub_0819F2E4 -sub_0819F2E4: @ 0x0819F2E4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - lsls r5, r2, #0x18 - lsrs r5, r5, #0x18 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl FreeAndDestroyMonPicSprite - ldr r0, _0819F328 - movs r1, #1 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0819F32C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r5, [r1, #0x16] - lsrs r4, r4, #8 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - strh r4, [r1, #0x14] - ldr r1, [r1] - bl _call_via_r1 - movs r0, #1 - strb r0, [r6] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0819F328: .4byte sub_0819F6A0 -_0819F32C: .4byte gUnknown_3005B60 - thumb_func_end sub_0819F2E4 - - thumb_func_start sub_0819F330 -sub_0819F330: @ 0x0819F330 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl FreeAndDestroyMonPicSprite - ldr r5, _0819F370 - lsls r4, r4, #0x10 - lsrs r1, r4, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r0, [r0, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - lsrs r4, r4, #0x18 - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r5 - bl DestroySprite - movs r0, #0 - strb r0, [r6] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0819F370: .4byte gUnknown_20205AC - thumb_func_end sub_0819F330 - - thumb_func_start Task_SwapCantHaveSameMons -Task_SwapCantHaveSameMons: @ 0x0819F374 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _0819F3A8 - ldr r0, [r1] - adds r0, #0x30 - ldrb r0, [r0] - adds r3, r1, #0 - cmp r0, #1 - beq _0819F476 - ldr r2, _0819F3AC - lsls r1, r4, #2 - adds r0, r1, r4 - lsls r0, r0, #3 - adds r0, r0, r2 - movs r2, #8 - ldrsh r0, [r0, r2] - adds r5, r1, #0 - cmp r0, #4 - bhi _0819F476 - lsls r0, r0, #2 - ldr r1, _0819F3B0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0819F3A8: .4byte gUnknown_3001280 -_0819F3AC: .4byte gUnknown_3005B60 -_0819F3B0: .4byte _0819F3B4 -_0819F3B4: @ jump table - .4byte _0819F3C8 @ case 0 - .4byte _0819F3E4 @ case 1 - .4byte _0819F418 @ case 2 - .4byte _0819F434 @ case 3 - .4byte _0819F454 @ case 4 -_0819F3C8: - ldr r0, _0819F3DC - bl Swap_PrintOnInfoWindow - ldr r0, _0819F3E0 - ldr r0, [r0] - adds r0, #0x20 - movs r1, #0 - strb r1, [r0] - b _0819F43A - .align 2, 0 -_0819F3DC: .4byte gUnknown_85DC141 -_0819F3E0: .4byte gUnknown_3001280 -_0819F3E4: - ldr r0, _0819F410 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0819F3F8 - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0819F476 -_0819F3F8: - movs r0, #5 - bl sub_080A306C - ldr r0, _0819F414 - ldr r1, [r0] - ldr r0, [r1, #0x2c] - adds r1, #0x30 - movs r2, #1 - bl sub_0819F2E4 - b _0819F43A - .align 2, 0 -_0819F410: .4byte gUnknown_3002360 -_0819F414: .4byte gUnknown_3001280 -_0819F418: - ldr r0, [r3] - adds r0, #0x30 - ldrb r0, [r0] - cmp r0, #1 - beq _0819F476 - movs r0, #5 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #5 - movs r1, #2 - bl CopyWindowToVram - b _0819F43A -_0819F434: - ldr r0, _0819F44C - bl Swap_PrintOnInfoWindow -_0819F43A: - ldr r0, _0819F450 - adds r1, r5, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _0819F476 - .align 2, 0 -_0819F44C: .4byte gUnknown_85DC0D5 -_0819F450: .4byte gUnknown_3005B60 -_0819F454: - bl sub_0819ED38 - bl sub_0819E7FC - ldr r0, _0819F47C - ldr r0, [r0] - adds r0, #0x22 - movs r1, #1 - strb r1, [r0] - ldr r1, _0819F480 - adds r0, r5, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #0x12] - strh r1, [r0, #8] - ldr r1, _0819F484 - str r1, [r0] -_0819F476: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0819F47C: .4byte gUnknown_3001280 -_0819F480: .4byte gUnknown_3005B60 -_0819F484: .4byte Task_HandleSwapScreenChooseMons - thumb_func_end Task_SwapCantHaveSameMons - - thumb_func_start Swap_AlreadyHasSameSpecies -Swap_AlreadyHasSameSpecies: @ 0x0819F488 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x64 - muls r0, r1, r0 - ldr r1, _0819F4CC - adds r0, r0, r1 - movs r1, #0xb - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - movs r4, #0 -_0819F4A4: - ldr r0, _0819F4D0 - ldr r0, [r0] - ldrb r0, [r0, #0x12] - cmp r4, r0 - beq _0819F4D8 - movs r0, #0x64 - muls r0, r4, r0 - ldr r1, _0819F4D4 - adds r0, r0, r1 - movs r1, #0xb - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r5 - bne _0819F4D8 - movs r0, #1 - b _0819F4E4 - .align 2, 0 -_0819F4CC: .4byte gUnknown_20243E8 -_0819F4D0: .4byte gUnknown_3001280 -_0819F4D4: .4byte gUnknown_2024190 -_0819F4D8: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #2 - bls _0819F4A4 - movs r0, #0 -_0819F4E4: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end Swap_AlreadyHasSameSpecies - - thumb_func_start sub_0819F4EC -sub_0819F4EC: @ 0x0819F4EC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0819F52C - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _0819F534 - movs r1, #1 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _0819F538 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldrh r2, [r4, #0x3c] - strh r2, [r1, #0x16] - ldr r1, [r1] - bl _call_via_r1 - ldr r0, _0819F53C - str r0, [r4, #0x1c] -_0819F52C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0819F534: .4byte sub_0819F588 -_0819F538: .4byte gUnknown_3005B60 -_0819F53C: .4byte sub_08007140 - thumb_func_end sub_0819F4EC - - thumb_func_start sub_0819F540 -sub_0819F540: @ 0x0819F540 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0819F580 - ldrb r0, [r4, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - movs r1, #0x3c - ldrsh r0, [r4, r1] - cmp r0, #1 - bne _0819F574 - ldr r0, _0819F570 - ldr r0, [r0] - adds r0, #0x30 - movs r1, #0 - strb r1, [r0] - b _0819F57A - .align 2, 0 -_0819F570: .4byte gUnknown_3001280 -_0819F574: - movs r0, #0 - bl sub_0819BB08 -_0819F57A: - adds r0, r4, #0 - bl DestroySprite -_0819F580: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0819F540 - - thumb_func_start sub_0819F588 -sub_0819F588: @ 0x0819F588 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _0819F5AC - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _0819F606 - cmp r0, #1 - bgt _0819F5B0 - cmp r0, #0 - beq _0819F5B6 - b _0819F668 - .align 2, 0 -_0819F5AC: .4byte gUnknown_3005B60 -_0819F5B0: - cmp r0, #2 - beq _0819F628 - b _0819F668 -_0819F5B6: - movs r0, #0x58 - strh r0, [r4, #0xe] - movs r0, #0x98 - strh r0, [r4, #0x38] - movs r0, #0x40 - strh r0, [r4, #0x12] - movs r0, #0x41 - strh r0, [r4, #0x18] - movs r1, #0x80 - lsls r1, r1, #6 - movs r0, #0 - bl SetGpuRegBits - ldrh r1, [r4, #0xe] - lsls r1, r1, #8 - ldrh r0, [r4, #0x38] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x40 - bl SetGpuReg - ldrh r1, [r4, #0x12] - lsls r1, r1, #8 - ldrh r0, [r4, #0x18] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x44 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0x3f - bl SetGpuReg - movs r0, #0x4a - movs r1, #0x37 - bl SetGpuReg - b _0819F692 -_0819F606: - movs r0, #3 - bl ShowBg - ldr r1, _0819F620 - movs r0, #0x50 - bl SetGpuReg - ldr r1, _0819F624 - movs r0, #0x52 - bl SetGpuReg - b _0819F692 - .align 2, 0 -_0819F620: .4byte 0x00001248 -_0819F624: .4byte 0x0000040B -_0819F628: - ldrh r0, [r4, #0x12] - subs r0, #4 - strh r0, [r4, #0x12] - ldrh r1, [r4, #0x18] - adds r1, #4 - strh r1, [r4, #0x18] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x20 - ble _0819F644 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x5f - ble _0819F64C -_0819F644: - movs r0, #0x20 - strh r0, [r4, #0x12] - movs r0, #0x60 - strh r0, [r4, #0x18] -_0819F64C: - ldrh r1, [r4, #0x12] - lsls r1, r1, #8 - ldrh r0, [r4, #0x18] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x44 - bl SetGpuReg - movs r2, #0x12 - ldrsh r0, [r4, r2] - cmp r0, #0x20 - bne _0819F698 - b _0819F692 -_0819F668: - adds r0, r5, #0 - bl DestroyTask - ldr r0, _0819F688 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r2, #0x16 - ldrsh r0, [r1, r2] - cmp r0, #1 - bne _0819F68C - bl Swap_ShowMonSprite - b _0819F698 - .align 2, 0 -_0819F688: .4byte gUnknown_3005B60 -_0819F68C: - bl Summary_ShowMonSprite - b _0819F698 -_0819F692: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_0819F698: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0819F588 - - thumb_func_start sub_0819F6A0 -sub_0819F6A0: @ 0x0819F6A0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _0819F724 - adds r4, r0, r1 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0819F730 - cmp r0, #1 - beq _0819F780 - movs r0, #3 - bl HideBg - ldr r3, _0819F728 - movs r0, #0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r4, #0x16] - strh r1, [r0, #0x3c] - movs r0, #0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - movs r0, #0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r3, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _0819F72C - str r1, [r0] - movs r0, #0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r1, #1 - bl StartSpriteAffineAnim - movs r1, #0x80 - lsls r1, r1, #6 - movs r0, #0 - bl ClearGpuRegBits - adds r0, r5, #0 - bl DestroyTask - b _0819F7C4 - .align 2, 0 -_0819F724: .4byte gUnknown_3005B60 -_0819F728: .4byte gUnknown_20205AC -_0819F72C: .4byte sub_0819F540 -_0819F730: - movs r0, #0x58 - strh r0, [r4, #0xe] - movs r0, #0x98 - strh r0, [r4, #0x38] - movs r0, #0x20 - strh r0, [r4, #0x12] - movs r0, #0x60 - strh r0, [r4, #0x18] - movs r1, #0x80 - lsls r1, r1, #6 - movs r0, #0 - bl SetGpuRegBits - ldrh r1, [r4, #0xe] - lsls r1, r1, #8 - ldrh r0, [r4, #0x38] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x40 - bl SetGpuReg - ldrh r1, [r4, #0x12] - lsls r1, r1, #8 - ldrh r0, [r4, #0x18] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x44 - bl SetGpuReg - movs r0, #0x48 - movs r1, #0x3f - bl SetGpuReg - movs r0, #0x4a - movs r1, #0x37 - bl SetGpuReg - b _0819F7BE -_0819F780: - ldrh r0, [r4, #0x12] - adds r0, #4 - strh r0, [r4, #0x12] - ldrh r1, [r4, #0x18] - subs r1, #4 - strh r1, [r4, #0x18] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3f - bgt _0819F79C - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x41 - bgt _0819F7A4 -_0819F79C: - movs r0, #0x40 - strh r0, [r4, #0x12] - movs r0, #0x41 - strh r0, [r4, #0x18] -_0819F7A4: - ldrh r1, [r4, #0x12] - lsls r1, r1, #8 - ldrh r0, [r4, #0x18] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x44 - bl SetGpuReg - movs r1, #0x12 - ldrsh r0, [r4, r1] - cmp r0, #0x40 - bne _0819F7C4 -_0819F7BE: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_0819F7C4: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0819F6A0 - - thumb_func_start Swap_ShowMonSprite -Swap_ShowMonSprite: @ 0x0819F7CC - push {r4, r5, r6, lr} - sub sp, #0x10 - ldr r0, _0819F7E4 - ldr r1, [r0] - ldrb r0, [r1, #0x14] - cmp r0, #0 - bne _0819F7EC - ldrb r1, [r1, #3] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _0819F7E8 - b _0819F7F4 - .align 2, 0 -_0819F7E4: .4byte gUnknown_3001280 -_0819F7E8: .4byte gUnknown_2024190 -_0819F7EC: - ldrb r1, [r1, #3] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _0819F878 -_0819F7F4: - adds r6, r1, r0 - adds r0, r6, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r6, #0 - movs r1, #0 - movs r2, #0 - bl GetMonData - adds r5, r0, #0 - adds r0, r6, #0 - movs r1, #1 - movs r2, #0 - bl GetMonData - adds r1, r0, #0 - movs r0, #0x58 - str r0, [sp] - movs r0, #0x20 - str r0, [sp, #4] - movs r0, #0xf - str r0, [sp, #8] - ldr r0, _0819F87C - str r0, [sp, #0xc] - adds r0, r4, #0 - adds r2, r5, #0 - movs r3, #1 - bl CreateMonPicSprite_HandleDeoxys - ldr r2, _0819F880 - ldr r1, [r2] - adds r1, #0x2c - movs r3, #0 - strb r0, [r1] - ldr r4, _0819F884 - ldr r0, [r2] - adds r0, #0x2c - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x28 - strb r3, [r0] - ldr r0, [r2] - adds r0, #0x2c - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x29 - strb r3, [r0] - ldr r0, [r2] - adds r0, #0x30 - strb r3, [r0] - add sp, #0x10 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0819F878: .4byte gUnknown_20243E8 -_0819F87C: .4byte 0x0000FFFF -_0819F880: .4byte gUnknown_3001280 -_0819F884: .4byte gUnknown_20205AC - thumb_func_end Swap_ShowMonSprite - - thumb_func_start CopyFriendsApprenticeChallengeText -CopyFriendsApprenticeChallengeText: @ 0x0819F888 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r2, _0819F914 - ldr r1, [r2] - lsls r0, r5, #4 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r1, r1, r0 - adds r1, #0xde - ldrb r1, [r1] - movs r6, #0 - adds r7, r2, #0 - ldr r0, _0819F918 - mov r8, r0 - cmp r1, #0 - beq _0819F8C8 -_0819F8AE: - adds r0, r1, #0 - movs r1, #0xa - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r1, #0 - beq _0819F8C8 - cmp r6, #3 - bls _0819F8AE -_0819F8C8: - lsls r4, r5, #4 - adds r4, r4, r5 - lsls r4, r4, #2 - ldr r1, [r7] - adds r1, r4, r1 - movs r0, #0x8a - lsls r0, r0, #1 - adds r1, r1, r0 - mov r0, r8 - bl StringCopy7 - ldr r0, _0819F91C - ldr r1, [r7] - adds r1, r1, r4 - adds r1, #0xde - ldrb r1, [r1] - movs r2, #1 - adds r3, r6, #0 - bl sub_080089D8 - ldr r1, _0819F920 - ldr r0, [r7] - adds r0, r0, r4 - adds r0, #0xdc - ldrb r0, [r0] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x19 - adds r0, r0, r1 - ldr r1, [r0] - ldr r0, _0819F924 - bl StringExpandPlaceholders - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0819F914: .4byte gUnknown_3005AF0 -_0819F918: .4byte gUnknown_2021C40 -_0819F91C: .4byte gUnknown_2021C54 -_0819F920: .4byte gUnknown_85DC95C -_0819F924: .4byte gUnknown_2021C7C - thumb_func_end CopyFriendsApprenticeChallengeText - - thumb_func_start sub_0819F928 -sub_0819F928: @ 0x0819F928 - push {lr} - bl EnableBothScriptContexts - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0819F928 - - thumb_func_start ResetApprenticeStruct -ResetApprenticeStruct: @ 0x0819F934 - push {r4, r5, lr} - adds r3, r0, #0 - movs r2, #0 - adds r4, r3, #0 - adds r4, #0x28 - ldr r0, _0819F974 - adds r5, r0, #0 -_0819F942: - lsls r0, r2, #1 - adds r0, r4, r0 - ldrh r1, [r0] - orrs r1, r5 - strh r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #5 - bls _0819F942 - adds r1, r3, #0 - adds r1, #0x38 - movs r0, #0xff - strb r0, [r1] - ldrb r1, [r3] - movs r0, #0x20 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r3] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0819F974: .4byte 0x0000FFFF - thumb_func_end ResetApprenticeStruct - - thumb_func_start ResetAllApprenticeData -ResetAllApprenticeData: @ 0x0819F978 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r3, _0819FA78 - ldr r1, [r3] - adds r1, #0xb2 - ldrb r2, [r1] - movs r0, #0x19 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - movs r0, #0 - mov ip, r0 - adds r5, r3, #0 - mov r8, r0 - ldr r1, _0819FA7C - mov sl, r1 -_0819F99E: - movs r2, #0 - mov r3, ip - lsls r7, r3, #4 - movs r4, #1 - add r4, ip - mov sb, r4 - adds r0, r7, r3 - lsls r3, r0, #2 -_0819F9AE: - ldr r1, [r5] - lsls r0, r2, #1 - adds r0, r0, r3 - movs r4, #0x82 - lsls r4, r4, #1 - adds r1, r1, r4 - adds r1, r1, r0 - ldrh r0, [r1] - mov r4, sl - orrs r0, r4 - strh r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #5 - bls _0819F9AE - ldr r2, [r5] - mov r0, ip - adds r3, r7, r0 - lsls r3, r3, #2 - adds r2, r2, r3 - adds r2, #0xdc - ldrb r1, [r2] - movs r0, #0x20 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r5] - adds r0, r0, r3 - movs r1, #0x8a - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] - ldr r1, [r5] - adds r1, r1, r3 - adds r1, #0xdc - ldrb r2, [r1] - movs r0, #0x61 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r0, [r5] - adds r0, r0, r3 - adds r0, #0xde - mov r4, r8 - strb r4, [r0] - ldr r0, [r5] - adds r0, r0, r3 - adds r0, #0xdd - strb r4, [r0] - movs r2, #0 - ldr r6, _0819FA78 - movs r4, #0x88 - lsls r4, r4, #1 -_0819FA20: - ldr r0, [r6] - adds r1, r2, r3 - adds r0, r0, r4 - adds r0, r0, r1 - mov r1, r8 - strb r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #3 - bls _0819FA20 - ldr r0, [r5] - mov r3, ip - adds r2, r7, r3 - lsls r2, r2, #2 - adds r0, r0, r2 - ldr r4, _0819FA80 - ldrb r1, [r4] - ldr r3, _0819FA84 - adds r0, r0, r3 - strb r1, [r0] - ldr r0, [r5] - movs r4, #0x8e - lsls r4, r4, #1 - adds r0, r0, r4 - adds r0, r0, r2 - mov r1, r8 - str r1, [r0] - mov r3, sb - lsls r0, r3, #0x18 - lsrs r0, r0, #0x18 - mov ip, r0 - cmp r0, #3 - bls _0819F99E - bl Script_ResetPlayerApprentice - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0819FA78: .4byte gUnknown_3005AF0 -_0819FA7C: .4byte 0x0000FFFF -_0819FA80: .4byte gUnknown_829BDA5 -_0819FA84: .4byte 0x0000011B - thumb_func_end ResetAllApprenticeData - - thumb_func_start IsPlayersApprenticeActive -IsPlayersApprenticeActive: @ 0x0819FA88 - ldr r0, _0819FA9C - ldr r0, [r0] - adds r0, #0xb1 - ldrb r0, [r0] - movs r1, #3 - ands r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - bx lr - .align 2, 0 -_0819FA9C: .4byte gUnknown_3005AF0 - thumb_func_end IsPlayersApprenticeActive - - thumb_func_start sub_0819FAA0 -sub_0819FAA0: @ 0x0819FAA0 - push {r4, r5, lr} - ldr r2, _0819FAE0 - ldr r0, [r2] - adds r0, #0xde - ldrb r0, [r0] - cmp r0, #0 - bne _0819FAE8 - adds r4, r2, #0 - ldr r5, _0819FAE4 -_0819FAB2: - bl Random - ldr r2, [r4] - lsls r0, r0, #0x10 - movs r1, #0xe0 - lsls r1, r1, #0xb - ands r1, r0 - lsrs r1, r1, #0x10 - adds r1, r1, r5 - ldrb r0, [r1] - adds r2, #0xb0 - strb r0, [r2] - ldr r0, [r4] - adds r1, r0, #0 - adds r1, #0xb0 - adds r0, #0xdc - ldrb r0, [r0] - lsls r0, r0, #0x1b - ldrb r1, [r1] - lsrs r0, r0, #0x1b - cmp r1, r0 - beq _0819FAB2 - b _0819FB10 - .align 2, 0 -_0819FAE0: .4byte gUnknown_3005AF0 -_0819FAE4: .4byte gUnknown_85DCB74 -_0819FAE8: - adds r4, r2, #0 -_0819FAEA: - bl Random - ldr r2, [r4] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xf - ands r0, r1 - adds r2, #0xb0 - strb r0, [r2] - ldr r0, [r4] - adds r1, r0, #0 - adds r1, #0xb0 - adds r0, #0xdc - ldrb r0, [r0] - lsls r0, r0, #0x1b - ldrb r1, [r1] - lsrs r0, r0, #0x1b - cmp r1, r0 - beq _0819FAEA -_0819FB10: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_0819FAA0 - - thumb_func_start SetPlayersApprenticeLvlMode -SetPlayersApprenticeLvlMode: @ 0x0819FB18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _0819FB34 - ldr r2, [r1] - adds r2, #0xb1 - movs r1, #3 - ands r0, r1 - ldrb r3, [r2] - subs r1, #7 - ands r1, r3 - orrs r1, r0 - strb r1, [r2] - bx lr - .align 2, 0 -_0819FB34: .4byte gUnknown_3005AF0 - thumb_func_end SetPlayersApprenticeLvlMode - - thumb_func_start sub_0819FB38 -sub_0819FB38: @ 0x0819FB38 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - movs r5, #0 -_0819FB3E: - mov r1, sp - adds r0, r1, r5 - strb r5, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #9 - bls _0819FB3E - movs r5, #0 -_0819FB50: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __umodsi3 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r7, sp - adds r2, r7, r4 - ldrb r3, [r2] - adds r1, r7, r0 - ldrb r0, [r1] - strb r0, [r2] - strb r3, [r1] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0x31 - bls _0819FB50 - movs r5, #0 - ldr r6, _0819FBCC - movs r4, #0xf -_0819FB94: - ldr r3, [r6] - adds r3, #0xb4 - adds r3, r3, r5 - lsls r2, r5, #1 - mov r1, sp - adds r0, r1, r2 - ldrb r0, [r0] - adds r1, r4, #0 - ands r1, r0 - lsls r1, r1, #4 - adds r2, #1 - mov r7, sp - adds r0, r7, r2 - ldrb r2, [r0] - adds r0, r4, #0 - ands r0, r2 - orrs r1, r0 - strb r1, [r3] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #2 - bls _0819FB94 - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0819FBCC: .4byte gUnknown_3005AF0 - thumb_func_end sub_0819FB38 - - thumb_func_start sub_0819FBD0 -sub_0819FBD0: @ 0x0819FBD0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r5, #0 - cmp r0, #2 - bne _0819FC24 - ldr r6, _0819FC20 -_0819FBDE: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r3, #0 - movs r2, #0 - ldr r1, [r6] - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r4, r0, #1 - adds r1, #2 -_0819FBFE: - lsls r0, r2, #1 - adds r0, r0, r4 - adds r0, r1, r0 - ldrh r0, [r0] - cmp r0, #0 - beq _0819FC10 - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 -_0819FC10: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #4 - bls _0819FBFE - cmp r3, #3 - bhi _0819FBDE - b _0819FC32 - .align 2, 0 -_0819FC20: .4byte gUnknown_300602C -_0819FC24: - cmp r0, #1 - bne _0819FC32 - ldrb r0, [r2] - adds r1, r1, r0 - ldrb r5, [r1] - adds r0, #1 - strb r0, [r2] -_0819FC32: - adds r0, r5, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_0819FBD0 - - thumb_func_start sub_0819FC3C -sub_0819FC3C: @ 0x0819FC3C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - movs r5, #0 - mov r0, sp - adds r0, #0xc - str r0, [sp, #0x14] - mov r1, sp - adds r1, #0x10 - str r1, [sp, #0x18] - adds r1, r0, #0 -_0819FC58: - adds r0, r1, r5 - strb r5, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #2 - bls _0819FC58 - movs r5, #0 - ldr r6, [sp, #0x14] -_0819FC6A: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r2, r6, r4 - ldrb r3, [r2] - adds r1, r6, r0 - ldrb r0, [r1] - strb r0, [r2] - strb r3, [r1] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #9 - bls _0819FC6A - movs r5, #0 - ldr r2, _0819FE64 -_0819FCA8: - mov r4, sp - adds r1, r4, r5 - adds r0, r5, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #9 - bls _0819FCA8 - movs r5, #0 -_0819FCBE: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xa - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r6, sp - adds r2, r6, r4 - ldrb r3, [r2] - adds r1, r6, r0 - ldrb r0, [r1] - strb r0, [r2] - strb r3, [r1] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0x31 - bls _0819FCBE - ldr r4, _0819FE68 - movs r0, #0x30 - bl AllocZeroed - str r0, [r4] - movs r1, #0 - strb r1, [r0] - movs r5, #0 - movs r2, #4 -_0819FD0C: - movs r3, #0 -_0819FD0E: - ldr r0, [r4] - lsls r1, r3, #2 - adds r1, r1, r3 - adds r1, r5, r1 - adds r0, #0x20 - adds r0, r0, r1 - strb r2, [r0] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #2 - bls _0819FD0E - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #4 - bls _0819FD0C - movs r0, #0 - ldr r7, [sp, #0x18] - strb r0, [r7] - movs r5, #0 -_0819FD38: - ldr r0, _0819FE6C - ldr r3, [r0] - lsls r4, r5, #2 - adds r3, r3, r4 - mov r1, sp - adds r6, r1, r5 - ldrb r0, [r6] - adds r3, #0xb8 - movs r2, #3 - ands r2, r0 - ldrb r0, [r3] - movs r7, #4 - rsbs r7, r7, #0 - adds r1, r7, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3] - ldrb r0, [r6] - adds r5, #1 - str r5, [sp, #0x1c] - mov r8, r4 - cmp r0, #3 - beq _0819FE3A - ldrb r0, [r6] - ldr r1, [sp, #0x14] - ldr r2, [sp, #0x18] - bl sub_0819FBD0 - ldr r1, _0819FE6C - ldr r3, [r1] - add r3, r8 - adds r3, #0xb8 - movs r2, #3 - ands r2, r0 - lsls r2, r2, #2 - ldrb r0, [r3] - movs r4, #0xd - rsbs r4, r4, #0 - adds r1, r4, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3] - ldr r7, _0819FE6C - ldr r0, [r7] - add r0, r8 - adds r0, #0xb8 - ldrb r0, [r0] - lsls r0, r0, #0x1c - lsrs r7, r0, #0x1e - ldrb r0, [r6] - cmp r0, #2 - bne _0819FE3A - lsls r0, r7, #2 - adds r0, r0, r7 - mov sl, r0 - ldr r0, _0819FE68 - mov sb, r0 -_0819FDAA: - bl Random - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r1, #3 - ands r4, r1 - movs r3, #0 - mov r6, sb - ldr r2, [r6] - ldrb r0, [r2] - adds r1, r0, #1 - lsls r5, r7, #2 - cmp r3, r1 - bge _0819FDEA - adds r2, #0x20 - mov r6, sl - adds r0, r2, r6 - ldrb r0, [r0] - cmp r0, r4 - beq _0819FDEA - adds r6, r1, #0 - adds r1, r5, r7 -_0819FDD6: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, r6 - bge _0819FDEA - adds r0, r3, r1 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, r4 - bne _0819FDD6 -_0819FDEA: - mov r1, sb - ldr r0, [r1] - ldrb r0, [r0] - adds r0, #1 - ldr r1, _0819FE68 - cmp r3, r0 - bne _0819FDAA - ldr r0, [r1] - orrs r5, r7 - ldrb r2, [r0] - adds r1, r5, r2 - adds r0, #0x20 - adds r0, r0, r1 - strb r4, [r0] - ldr r6, _0819FE6C - ldr r2, [r6] - add r2, r8 - adds r2, #0xb8 - movs r7, #3 - ands r4, r7 - lsls r3, r4, #4 - ldrb r0, [r2] - movs r4, #0x31 - rsbs r4, r4, #0 - adds r1, r4, #0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2] - ldr r0, [r6] - add r0, r8 - adds r0, #0xb8 - ldrb r0, [r0] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1e - bl sub_0819FE70 - ldr r1, [r6] - add r1, r8 - adds r1, #0xba - strh r0, [r1] -_0819FE3A: - ldr r6, [sp, #0x1c] - lsls r0, r6, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #8 - bhi _0819FE46 - b _0819FD38 -_0819FE46: - ldr r4, _0819FE68 - ldr r0, [r4] - bl Free - movs r0, #0 - str r0, [r4] - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0819FE64: .4byte gUnknown_85DCAFF -_0819FE68: .4byte gUnknown_300602C -_0819FE6C: .4byte gUnknown_3005AF0 - thumb_func_end sub_0819FC3C - - thumb_func_start sub_0819FE70 -sub_0819FE70: @ 0x0819FE70 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - movs r0, #0 - str r0, [sp, #0xc] - movs r7, #0 - ldr r1, [sp] - cmp r1, #2 - bhi _0819FEBC - ldr r2, _0819FEB8 - ldr r1, [r2] - adds r0, r1, #0 - adds r0, #0xb4 - ldr r3, [sp] - adds r0, r0, r3 - ldrb r4, [r0] - adds r1, #0xb2 - ldrb r0, [r1] - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1d - asrs r0, r3 - movs r1, #1 - ands r0, r1 - lsls r0, r0, #2 - asrs r4, r0 - movs r0, #0xf - ands r4, r0 - adds r0, r2, #0 - b _0819FEC0 - .align 2, 0 -_0819FEB8: .4byte gUnknown_3005AF0 -_0819FEBC: - movs r4, #0 - ldr r0, _0819FF80 -_0819FEC0: - ldr r3, _0819FF84 - lsls r2, r4, #1 - ldr r4, [r0] - adds r0, r4, #0 - adds r0, #0xb0 - ldrb r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #4 - adds r2, r2, r0 - adds r3, #0xc - adds r2, r2, r3 - ldrh r2, [r2] - str r2, [sp, #8] - ldr r1, _0819FF88 - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r6, [r0] - movs r3, #0 - adds r4, #0xb1 - ldrb r1, [r4] - movs r0, #3 - ands r0, r1 - movs r5, #0x3c - cmp r0, #1 - bne _0819FEF6 - movs r5, #0x32 -_0819FEF6: - ldrh r1, [r6] - ldr r4, _0819FF8C - cmp r1, r4 - beq _0819FF28 - movs r2, #0xfe - lsls r2, r2, #8 - adds r0, r2, #0 - ands r0, r1 - lsls r1, r5, #9 - cmp r0, r1 - bgt _0819FF28 - adds r5, r2, #0 - adds r2, r1, #0 -_0819FF10: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r0, r3, #1 - adds r0, r0, r6 - ldrh r1, [r0] - cmp r1, r4 - beq _0819FF28 - adds r0, r5, #0 - ands r0, r1 - cmp r0, r2 - ble _0819FF10 -_0819FF28: - adds r5, r3, #0 - movs r0, #0 - str r0, [sp, #4] -_0819FF2E: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0819FF44 - ldr r1, [sp, #0xc] - cmp r1, #1 - bne _0819FFBC -_0819FF44: - ldr r2, _0819FF90 - mov r8, r2 -_0819FF48: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x3a - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, [sp, #8] - adds r1, r4, #0 - bl CanSpeciesLearnTMHM - adds r2, r0, #0 - cmp r2, #0 - beq _0819FF48 - ldr r3, _0819FF94 - adds r0, r4, r3 - bl ItemIdToBattleMoveId - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - movs r2, #1 - cmp r5, #4 - bhi _0819FF98 - movs r3, #0 - b _0819FFA2 - .align 2, 0 -_0819FF80: .4byte gUnknown_3005AF0 -_0819FF84: .4byte gUnknown_85DC21C -_0819FF88: .4byte gUnknown_82F9D04 -_0819FF8C: .4byte 0x0000FFFF -_0819FF90: .4byte 0x000001FF -_0819FF94: .4byte 0x00000121 -_0819FF98: - subs r0, r5, #4 - b _0819FF9E -_0819FF9C: - adds r0, r3, #1 -_0819FF9E: - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 -_0819FFA2: - cmp r3, r5 - bhs _0819FFB6 - lsls r0, r3, #1 - adds r0, r0, r6 - ldrh r0, [r0] - mov r1, r8 - ands r0, r1 - cmp r0, r7 - bne _0819FF9C - movs r2, #0 -_0819FFB6: - cmp r2, #1 - bne _0819FF48 - b _081A0022 -_0819FFBC: - cmp r5, #4 - bhi _0819FFC6 - movs r2, #1 - str r2, [sp, #0xc] - b _081A0044 -_0819FFC6: - subs r4, r5, #4 - ldr r3, _081A0000 - mov sl, r3 - mov r8, r3 - lsls r0, r4, #0x18 - mov sb, r0 -_0819FFD2: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r4, #0 - bl __modsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r6 - ldrh r0, [r0] - mov r7, r8 - ands r7, r0 - movs r2, #1 - mov r1, sb - lsrs r3, r1, #0x18 - cmp r3, r5 - bhs _081A001E - lsls r0, r3, #1 - adds r0, r0, r6 - ldrh r1, [r0] - mov r0, r8 - b _081A0016 - .align 2, 0 -_081A0000: .4byte 0x000001FF -_081A0004: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, r5 - bhs _081A001E - lsls r0, r3, #1 - adds r0, r0, r6 - ldrh r0, [r0] - mov r1, sl -_081A0016: - ands r0, r1 - cmp r0, r7 - bne _081A0004 - movs r2, #0 -_081A001E: - cmp r2, #1 - bne _0819FFD2 -_081A0022: - ldr r0, [sp] - adds r1, r7, #0 - bl sub_081A0070 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081A0044 - ldr r0, _081A0068 - adds r0, r7, r0 - ldrb r0, [r0] - cmp r0, #0 - bne _081A004C - ldr r0, [sp, #4] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] -_081A0044: - ldr r2, [sp, #4] - cmp r2, #4 - bhi _081A004C - b _0819FF2E -_081A004C: - ldr r0, _081A006C - ldr r1, [r0] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - adds r0, r7, #0 - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081A0068: .4byte gUnknown_85DC99C -_081A006C: .4byte gUnknown_300602C - thumb_func_end sub_0819FE70 - - thumb_func_start sub_081A0070 -sub_081A0070: @ 0x081A0070 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - movs r3, #0 - ldr r0, _081A009C - mov ip, r0 - ldr r2, [r0] - lsls r1, r4, #2 - adds r0, r1, r4 - lsls r6, r0, #1 - adds r2, #2 - adds r7, r1, #0 -_081A008C: - lsls r0, r3, #1 - adds r0, r0, r6 - adds r0, r2, r0 - ldrh r0, [r0] - cmp r0, r5 - bne _081A00A0 - movs r0, #0 - b _081A00BE - .align 2, 0 -_081A009C: .4byte gUnknown_300602C -_081A00A0: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #4 - bls _081A008C - mov r2, ip - ldr r1, [r2] - adds r0, r7, r4 - ldrb r2, [r1] - adds r0, r0, r2 - lsls r0, r0, #1 - adds r1, #2 - adds r1, r1, r0 - strh r5, [r1] - movs r0, #1 -_081A00BE: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_081A0070 - - thumb_func_start GetLatestLearnedMoves -GetLatestLearnedMoves: @ 0x081A00C4 - push {r4, r5, r6, r7, lr} - mov ip, r1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, _081A0150 - ldr r0, [r0] - adds r0, #0xb1 - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - movs r4, #0x3c - cmp r0, #1 - bne _081A00E0 - movs r4, #0x32 -_081A00E0: - ldr r1, _081A0154 - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r6, [r0] - movs r5, #0 - ldrh r1, [r6] - ldr r3, _081A0158 - cmp r1, r3 - beq _081A011C - movs r2, #0xfe - lsls r2, r2, #8 - adds r0, r2, #0 - ands r0, r1 - lsls r1, r4, #9 - cmp r0, r1 - bgt _081A011C - adds r4, r2, #0 - adds r2, r1, #0 -_081A0104: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #1 - adds r0, r0, r6 - ldrh r1, [r0] - cmp r1, r3 - beq _081A011C - adds r0, r4, #0 - ands r0, r1 - cmp r0, r2 - ble _081A0104 -_081A011C: - adds r4, r5, #0 - cmp r4, #4 - bls _081A0124 - movs r4, #4 -_081A0124: - movs r2, #0 - cmp r2, r4 - bhs _081A0148 - ldr r7, _081A015C -_081A012C: - lsls r3, r2, #1 - add r3, ip - adds r2, #1 - subs r0, r5, r2 - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r1, [r0] - adds r0, r7, #0 - ands r0, r1 - strh r0, [r3] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - cmp r2, r4 - blo _081A012C -_081A0148: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A0150: .4byte gUnknown_3005AF0 -_081A0154: .4byte gUnknown_82F9D04 -_081A0158: .4byte 0x0000FFFF -_081A015C: .4byte 0x000001FF - thumb_func_end GetLatestLearnedMoves - - thumb_func_start sub_081A0160 -sub_081A0160: @ 0x081A0160 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - ldr r1, _081A0190 - ldr r2, [r1] - adds r0, r2, #0 - adds r0, #0xb1 - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1c - adds r7, r1, #0 - cmp r0, #2 - bhi _081A0194 - movs r0, #0 - b _081A025A - .align 2, 0 -_081A0190: .4byte gUnknown_3005AF0 -_081A0194: - movs r4, #0 - movs r3, #0 - adds r0, r2, #0 - adds r0, #0xb8 - ldrb r0, [r0] - lsls r0, r0, #0x1e - ldr r1, _081A0268 - mov ip, r1 - lsls r6, r6, #1 - lsls r5, r5, #1 - mov sb, r5 - cmp r0, #0 - beq _081A01D0 - adds r2, r7, #0 -_081A01B0: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #8 - bhi _081A01D0 - ldr r0, [r2] - lsls r1, r3, #2 - adds r0, r0, r1 - adds r0, #0xb8 - ldrb r0, [r0] - lsls r0, r0, #0x1e - cmp r0, #0 - bne _081A01B0 -_081A01D0: - ldr r0, [r7] - adds r0, #0xb0 - ldrb r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #4 - adds r0, r6, r0 - mov r1, ip - adds r1, #0xc - adds r0, r0, r1 - ldrh r0, [r0] - mov r1, sp - bl GetLatestLearnedMoves - movs r3, #0 - cmp r3, r4 - bhs _081A0254 - ldr r1, [r7] - adds r0, r1, #0 - adds r0, #0xb1 - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1c - subs r0, #3 - cmp r3, r0 - bge _081A0254 - adds r6, r7, #0 - adds r5, r1, #0 -_081A0208: - lsls r0, r3, #2 - adds r2, r5, r0 - adds r0, r2, #0 - adds r0, #0xb8 - ldrb r1, [r0] - lsls r0, r1, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #2 - bne _081A023A - lsls r0, r1, #0x1c - lsrs r0, r0, #0x1e - cmp r0, r8 - bne _081A023A - lsrs r0, r1, #6 - cmp r0, #0 - beq _081A023A - lsls r0, r1, #0x1a - lsrs r0, r0, #0x1e - lsls r0, r0, #1 - mov r7, sp - adds r1, r7, r0 - adds r0, r2, #0 - adds r0, #0xba - ldrh r0, [r0] - strh r0, [r1] -_081A023A: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, r4 - bhs _081A0254 - ldr r0, [r6] - adds r0, #0xb1 - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1c - subs r0, #3 - cmp r3, r0 - blt _081A0208 -_081A0254: - mov r0, sp - add r0, sb - ldrh r0, [r0] -_081A025A: - add sp, #8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081A0268: .4byte gUnknown_85DC21C - thumb_func_end sub_081A0160 - - thumb_func_start sub_081A026C -sub_081A026C: @ 0x081A026C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r5, #0 - ldr r7, _081A0380 - adds r6, r7, #0 - movs r4, #0 -_081A0282: - ldr r0, [r6] - lsls r2, r5, #1 - adds r2, r2, r5 - lsls r2, r2, #2 - adds r0, r0, r2 - adds r1, r0, #0 - adds r1, #0xe0 - strh r4, [r1] - adds r0, #0xea - strh r4, [r0] - movs r3, #0 -_081A0298: - ldr r0, [r6] - lsls r1, r3, #1 - adds r1, r1, r2 - adds r0, #0xe2 - adds r0, r0, r1 - strh r4, [r0] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #3 - bls _081A0298 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #2 - bls _081A0282 - ldr r0, [r7] - adds r0, #0xb1 - ldrb r0, [r0] - lsrs r3, r0, #6 - movs r5, #0 -_081A02C2: - lsls r0, r3, #2 - mov r1, sp - adds r2, r1, r0 - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r0, #0xe0 - ldr r1, [r7] - adds r1, r1, r0 - str r1, [r2] - adds r0, r3, #1 - movs r1, #3 - bl __modsi3 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #2 - bls _081A02C2 - movs r5, #0 - ldr r7, _081A0380 - ldr r6, _081A0384 -_081A02F2: - ldr r0, [r7] - mov ip, r0 - adds r0, #0xb4 - adds r0, r0, r5 - ldrb r2, [r0] - mov r0, ip - adds r0, #0xb2 - ldrb r0, [r0] - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1d - asrs r0, r5 - movs r1, #1 - ands r0, r1 - lsls r0, r0, #2 - asrs r2, r0 - movs r0, #0xf - ands r2, r0 - lsls r0, r5, #2 - mov r1, sp - adds r3, r1, r0 - ldr r4, [r3] - lsls r2, r2, #1 - mov r0, ip - adds r0, #0xb0 - ldrb r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #4 - adds r2, r2, r0 - adds r2, r2, r6 - ldrh r0, [r2] - strh r0, [r4] - ldr r1, [r3] - ldrh r0, [r1] - adds r1, #2 - bl GetLatestLearnedMoves - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #2 - bls _081A02F2 - movs r5, #0 - cmp r5, r8 - bhs _081A03B6 - ldr r7, _081A0380 -_081A034E: - ldr r1, [r7] - lsls r0, r5, #2 - adds r4, r1, r0 - adds r0, r4, #0 - adds r0, #0xb8 - ldrb r2, [r0] - lsls r0, r2, #0x1e - lsrs r1, r0, #0x1e - lsls r0, r2, #0x1c - lsrs r3, r0, #0x1e - adds r6, r3, #0 - cmp r1, #1 - bne _081A0388 - lsrs r0, r2, #6 - cmp r0, #0 - beq _081A03AC - lsls r0, r3, #2 - add r0, sp - ldr r1, [r0] - adds r0, r4, #0 - adds r0, #0xba - ldrh r0, [r0] - strh r0, [r1, #0xa] - b _081A03AC - .align 2, 0 -_081A0380: .4byte gUnknown_3005AF0 -_081A0384: .4byte gUnknown_85DC228 -_081A0388: - cmp r1, #2 - bne _081A03AC - lsls r0, r2, #0x18 - lsrs r0, r0, #0x1e - cmp r0, #0 - beq _081A03AC - lsls r2, r2, #0x1a - lsrs r2, r2, #0x1e - lsls r0, r6, #2 - add r0, sp - ldr r1, [r0] - lsls r2, r2, #1 - adds r1, #2 - adds r1, r1, r2 - adds r0, r4, #0 - adds r0, #0xba - ldrh r0, [r0] - strh r0, [r1] -_081A03AC: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, r8 - blo _081A034E -_081A03B6: - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081A026C - - thumb_func_start sub_081A03C4 -sub_081A03C4: @ 0x081A03C4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r7, #2 - cmp r0, #6 - bls _081A03DC - b _081A054C -_081A03DC: - lsls r0, r0, #2 - ldr r1, _081A03E8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081A03E8: .4byte _081A03EC -_081A03EC: @ jump table - .4byte _081A0408 @ case 0 - .4byte _081A0424 @ case 1 - .4byte _081A04A0 @ case 2 - .4byte _081A04E8 @ case 3 - .4byte _081A0514 @ case 4 - .4byte _081A054C @ case 5 - .4byte _081A0530 @ case 6 -_081A0408: - movs r0, #0x12 - mov sl, r0 - movs r5, #8 - movs r1, #8 - str r1, [sp, #0x18] - ldr r0, _081A041C - str r0, [sp, #0xc] - ldr r0, _081A0420 - str r0, [sp, #0x10] - b _081A0556 - .align 2, 0 -_081A041C: .4byte gUnknown_85CAB0D -_081A0420: .4byte gUnknown_85CAB13 -_081A0424: - movs r7, #3 - movs r0, #0x12 - mov sl, r0 - movs r5, #6 - movs r1, #8 - str r1, [sp, #0x18] - movs r4, #0 - ldr r0, _081A0494 - mov sb, r0 - ldr r0, _081A0498 - ldr r3, [r0] - movs r1, #0xb2 - adds r1, r1, r3 - mov ip, r1 - adds r6, r3, #0 - adds r6, #0xb0 - ldr r0, _081A049C - mov r8, r0 -_081A0448: - adds r0, r3, #0 - adds r0, #0xb4 - adds r0, r0, r4 - ldrb r2, [r0] - mov r1, ip - ldrb r0, [r1] - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1d - asrs r0, r4 - movs r1, #1 - ands r0, r1 - lsls r0, r0, #2 - asrs r2, r0 - movs r0, #0xf - ands r2, r0 - lsls r2, r2, #1 - ldrb r1, [r6] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #4 - adds r2, r2, r0 - add r2, r8 - ldrh r1, [r2] - lsls r0, r4, #2 - mov r2, sp - adds r2, r2, r0 - adds r2, #0xc - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - add r0, sb - str r0, [r2] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #2 - bls _081A0448 - b _081A0556 - .align 2, 0 -_081A0494: .4byte gUnknown_82EA31C -_081A0498: .4byte gUnknown_3005AF0 -_081A049C: .4byte gUnknown_85DC228 -_081A04A0: - movs r0, #0x12 - mov sl, r0 - movs r5, #8 - movs r1, #8 - str r1, [sp, #0x18] - ldr r0, _081A04DC - ldr r0, [r0] - adds r0, #0xb1 - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1c - cmp r0, #2 - bls _081A04BC - b _081A05C2 -_081A04BC: - ldr r0, _081A04E0 - ldr r3, [r0] - ldrh r1, [r3, #2] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r2, _081A04E4 - adds r0, r0, r2 - str r0, [sp, #0x10] - ldrh r1, [r3] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - str r0, [sp, #0xc] - b _081A0556 - .align 2, 0 -_081A04DC: .4byte gUnknown_3005AF0 -_081A04E0: .4byte gUnknown_3006030 -_081A04E4: .4byte gUnknown_82EA31C -_081A04E8: - movs r0, #0x11 - mov sl, r0 - movs r5, #8 - movs r1, #8 - str r1, [sp, #0x18] - ldr r0, _081A050C - ldr r2, [r0] - ldrh r0, [r2, #4] - lsls r0, r0, #3 - ldr r1, _081A0510 - adds r0, r0, r1 - str r0, [sp, #0xc] - ldrh r0, [r2, #6] - lsls r0, r0, #3 - adds r0, r0, r1 - str r0, [sp, #0x10] - b _081A0556 - .align 2, 0 -_081A050C: .4byte gUnknown_3006030 -_081A0510: .4byte gUnknown_82EACC4 -_081A0514: - movs r0, #0x12 - mov sl, r0 - movs r5, #8 - movs r1, #8 - str r1, [sp, #0x18] - ldr r0, _081A0528 - str r0, [sp, #0xc] - ldr r0, _081A052C - str r0, [sp, #0x10] - b _081A0556 - .align 2, 0 -_081A0528: .4byte gUnknown_85CC47F -_081A052C: .4byte gUnknown_85CC486 -_081A0530: - movs r0, #0x14 - mov sl, r0 - movs r5, #8 - movs r1, #4 - str r1, [sp, #0x18] - ldr r0, _081A0544 - str r0, [sp, #0xc] - ldr r0, _081A0548 - str r0, [sp, #0x10] - b _081A0556 - .align 2, 0 -_081A0544: .4byte gUnknown_85CAAD8 -_081A0548: .4byte gUnknown_85CAADB -_081A054C: - movs r0, #0 - mov sl, r0 - movs r5, #0 - movs r1, #8 - str r1, [sp, #0x18] -_081A0556: - lsls r3, r7, #1 - mov r0, sl - adds r1, r5, #0 - ldr r2, [sp, #0x18] - bl CreateAndShowWindow - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r5, #0 - movs r1, #0 - bl SetStandardWindowBorderStyle - movs r4, #0 - cmp r4, r7 - bhs _081A05A2 -_081A0574: - lsls r0, r4, #2 - add r0, sp - adds r0, #0xc - ldr r2, [r0] - lsls r0, r4, #4 - adds r0, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - adds r0, r5, #0 - movs r1, #1 - movs r3, #8 - bl AddTextPrinterParameterized - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r7 - blo _081A0574 -_081A05A2: - movs r0, #0x10 - str r0, [sp] - str r7, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - adds r0, r5, #0 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl sub_081984B0 - movs r0, #1 - adds r1, r7, #0 - adds r2, r5, #0 - bl CreateChooseAnswerTask -_081A05C2: - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081A03C4 - - thumb_func_start Task_ChooseAnswer -Task_ChooseAnswer: @ 0x081A05D4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _081A05F4 - adds r4, r0, r1 - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _081A05F8 - bl Menu_ProcessInputNoWrap - b _081A05FC - .align 2, 0 -_081A05F4: .4byte gUnknown_3005B68 -_081A05F8: - bl Menu_ProcessInput -_081A05FC: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - movs r0, #2 - rsbs r0, r0, #0 - cmp r1, r0 - beq _081A0640 - adds r0, #1 - cmp r1, r0 - bne _081A062C - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _081A0640 - movs r0, #5 - bl sub_080A306C - ldr r1, _081A0628 - movs r0, #0x7f - strh r0, [r1] - b _081A0630 - .align 2, 0 -_081A0628: .4byte gUnknown_2037290 -_081A062C: - ldr r0, _081A0648 - strh r1, [r0] -_081A0630: - ldrb r0, [r4, #0xc] - bl RemoveAndHideWindow - adds r0, r5, #0 - bl DestroyTask - bl EnableBothScriptContexts -_081A0640: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081A0648: .4byte gUnknown_2037290 - thumb_func_end Task_ChooseAnswer - - thumb_func_start CreateAndShowWindow -CreateAndShowWindow: @ 0x081A064C - push {r4, r5, lr} - sub sp, #0x20 - adds r4, r0, #0 - adds r5, r1, #0 - lsls r4, r4, #0x18 - lsls r5, r5, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #0x80 - lsls r0, r0, #0x11 - adds r4, r4, r0 - lsrs r4, r4, #0x18 - adds r5, r5, r0 - lsrs r5, r5, #0x18 - str r2, [sp] - str r3, [sp, #4] - movs r0, #0xf - str r0, [sp, #8] - movs r0, #0x5c - str r0, [sp, #0xc] - add r0, sp, #0x10 - movs r1, #0 - adds r2, r4, #0 - adds r3, r5, #0 - bl CreateWindowTemplate - ldr r0, [sp, #0x10] - ldr r1, [sp, #0x14] - str r0, [sp, #0x18] - str r1, [sp, #0x1c] - add r0, sp, #0x18 - bl AddWindow - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl PutWindowTilemap - adds r0, r4, #0 - movs r1, #3 - bl CopyWindowToVram - adds r0, r4, #0 - add sp, #0x20 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end CreateAndShowWindow - - thumb_func_start RemoveAndHideWindow -RemoveAndHideWindow: @ 0x081A06B0 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #1 - bl sub_08198134 - adds r0, r4, #0 - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - thumb_func_end RemoveAndHideWindow - - thumb_func_start CreateChooseAnswerTask -CreateChooseAnswerTask: @ 0x081A06CC - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - ldr r0, _081A0700 - movs r1, #0x50 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _081A0704 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r1, r0, r1 - strh r4, [r1, #0x10] - cmp r5, #3 - bls _081A0708 - movs r0, #1 - b _081A070A - .align 2, 0 -_081A0700: .4byte Task_ChooseAnswer -_081A0704: .4byte gUnknown_3005B60 -_081A0708: - movs r0, #0 -_081A070A: - strh r0, [r1, #0x12] - ldr r1, _081A0720 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r6, [r0, #0x14] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081A0720: .4byte gUnknown_3005B60 - thumb_func_end CreateChooseAnswerTask - - thumb_func_start sub_081A0724 -sub_081A0724: @ 0x081A0724 - push {lr} - ldr r1, _081A073C - ldr r0, _081A0740 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - thumb_func_end sub_081A0724 - - thumb_func_start sub_081A0738 -sub_081A0738: @ 0x081A0738 - bx r0 - .align 2, 0 -_081A073C: .4byte gUnknown_85DCB0C -_081A0740: .4byte gUnknown_2037280 - thumb_func_end sub_081A0738 - - thumb_func_start Script_ResetPlayerApprentice -Script_ResetPlayerApprentice: @ 0x081A0744 - push {r4, r5, r6, r7, lr} - bl sub_0819FAA0 - ldr r3, _081A0800 - ldr r1, [r3] - adds r1, #0xb1 - ldrb r2, [r1] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r3] - adds r1, #0xb1 - ldrb r2, [r1] - movs r0, #0x3d - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r3] - adds r1, #0xb1 - ldrb r2, [r1] - movs r0, #0x3f - ands r0, r2 - strb r0, [r1] - ldr r1, [r3] - adds r1, #0xb2 - ldrb r2, [r1] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - movs r4, #0 - movs r1, #0 -_081A0786: - ldr r0, [r3] - adds r0, #0xb4 - adds r0, r0, r4 - strb r1, [r0] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #2 - bls _081A0786 - movs r4, #0 - ldr r5, _081A0800 - movs r0, #4 - rsbs r0, r0, #0 - mov ip, r0 - movs r7, #0xd - rsbs r7, r7, #0 - movs r6, #0x31 - rsbs r6, r6, #0 -_081A07AA: - ldr r1, [r5] - lsls r3, r4, #2 - adds r1, r1, r3 - adds r1, #0xb8 - ldrb r2, [r1] - mov r0, ip - ands r0, r2 - strb r0, [r1] - ldr r1, [r5] - adds r1, r1, r3 - adds r1, #0xb8 - ldrb r2, [r1] - adds r0, r7, #0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r5] - adds r1, r1, r3 - adds r1, #0xb8 - ldrb r2, [r1] - adds r0, r6, #0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r5] - adds r1, r1, r3 - adds r1, #0xb8 - ldrb r2, [r1] - movs r0, #0x3f - ands r0, r2 - strb r0, [r1] - ldr r0, [r5] - adds r0, r0, r3 - adds r0, #0xba - movs r1, #0 - strh r1, [r0] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #8 - bls _081A07AA - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A0800: .4byte gUnknown_3005AF0 - thumb_func_end Script_ResetPlayerApprentice - - thumb_func_start sub_081A0804 -sub_081A0804: @ 0x081A0804 - push {lr} - bl IsPlayersApprenticeActive - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _081A081C - ldr r0, _081A0818 - strh r1, [r0] - b _081A0822 - .align 2, 0 -_081A0818: .4byte gUnknown_2037290 -_081A081C: - ldr r1, _081A0828 - movs r0, #1 - strh r0, [r1] -_081A0822: - pop {r0} - bx r0 - .align 2, 0 -_081A0828: .4byte gUnknown_2037290 - thumb_func_end sub_081A0804 - - thumb_func_start sub_081A082C -sub_081A082C: @ 0x081A082C - push {lr} - ldr r0, _081A083C - ldrb r0, [r0] - bl SetPlayersApprenticeLvlMode - pop {r0} - bx r0 - .align 2, 0 -_081A083C: .4byte gUnknown_2037282 - thumb_func_end sub_081A082C - - thumb_func_start sub_081A0840 -sub_081A0840: @ 0x081A0840 - push {lr} - bl sub_0819FAA0 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081A0840 - - thumb_func_start sub_081A084C -sub_081A084C: @ 0x081A084C - push {lr} - bl sub_0819FC3C - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081A084C - - thumb_func_start sub_081A0858 -sub_081A0858: @ 0x081A0858 - ldr r0, _081A0878 - ldr r2, [r0] - adds r2, #0xb1 - ldrb r3, [r2] - lsls r1, r3, #0x1a - lsrs r1, r1, #0x1c - adds r1, #1 - movs r0, #0xf - ands r1, r0 - lsls r1, r1, #2 - movs r0, #0x3d - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - bx lr - .align 2, 0 -_081A0878: .4byte gUnknown_3005AF0 - thumb_func_end sub_081A0858 - - thumb_func_start sub_081A087C -sub_081A087C: @ 0x081A087C - ldr r1, _081A0890 - ldr r0, _081A0894 - ldr r0, [r0] - adds r0, #0xb1 - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1c - strh r0, [r1] - bx lr - .align 2, 0 -_081A0890: .4byte gUnknown_2037290 -_081A0894: .4byte gUnknown_3005AF0 - thumb_func_end sub_081A087C - - thumb_func_start sub_081A0898 -sub_081A0898: @ 0x081A0898 - push {lr} - ldr r3, _081A08B4 - ldr r0, [r3] - adds r0, #0xb1 - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1c - subs r1, r0, #3 - cmp r1, #0 - bge _081A08BC - ldr r1, _081A08B8 - movs r0, #0 - strh r0, [r1] - b _081A08E4 - .align 2, 0 -_081A08B4: .4byte gUnknown_3005AF0 -_081A08B8: .4byte gUnknown_2037290 -_081A08BC: - ldr r2, _081A08DC - cmp r1, #8 - ble _081A08C6 - movs r0, #1 - strh r0, [r2] -_081A08C6: - ldr r0, [r3] - lsls r1, r1, #2 - adds r0, r0, r1 - adds r0, #0xb8 - ldrb r0, [r0] - lsls r0, r0, #0x1e - cmp r0, #0 - bne _081A08E0 - movs r0, #1 - b _081A08E2 - .align 2, 0 -_081A08DC: .4byte gUnknown_2037290 -_081A08E0: - movs r0, #0 -_081A08E2: - strh r0, [r2] -_081A08E4: - pop {r0} - bx r0 - thumb_func_end sub_081A0898 - - thumb_func_start sub_081A08E8 -sub_081A08E8: @ 0x081A08E8 - push {lr} - ldr r0, _081A08F8 - ldrb r0, [r0] - bl sub_081A03C4 - pop {r0} - bx r0 - .align 2, 0 -_081A08F8: .4byte gUnknown_2037282 - thumb_func_end sub_081A08E8 - - thumb_func_start Task_WaitForPrintingMessage -Task_WaitForPrintingMessage: @ 0x081A08FC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl RunTextPrintersAndIsPrinter0Active - lsls r0, r0, #0x10 - cmp r0, #0 - bne _081A0930 - adds r0, r4, #0 - bl DestroyTask - ldr r0, _081A0924 - ldrh r0, [r0] - cmp r0, #0 - beq _081A092C - ldr r0, _081A0928 - bl ExecuteFuncAfterButtonPress - b _081A0930 - .align 2, 0 -_081A0924: .4byte gUnknown_2037282 -_081A0928: .4byte EnableBothScriptContexts -_081A092C: - bl EnableBothScriptContexts -_081A0930: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Task_WaitForPrintingMessage - - thumb_func_start PrintMessage -PrintMessage: @ 0x081A0938 - push {lr} - ldr r1, _081A0950 - ldrh r0, [r1] - cmp r0, #6 - bne _081A095C - ldr r1, _081A0954 - ldr r0, _081A0958 - ldr r0, [r0] - adds r0, #0xb0 - ldrb r0, [r0] - lsls r0, r0, #3 - b _081A0B2E - .align 2, 0 -_081A0950: .4byte gUnknown_2037284 -_081A0954: .4byte gUnknown_85DC61C -_081A0958: .4byte gUnknown_3005AF0 -_081A095C: - cmp r0, #7 - bne _081A0978 - ldr r1, _081A0970 - ldr r0, _081A0974 - ldr r0, [r0] - adds r0, #0xb0 - ldrb r0, [r0] - lsls r0, r0, #3 - adds r1, #4 - b _081A0B2E - .align 2, 0 -_081A0970: .4byte gUnknown_85DC61C -_081A0974: .4byte gUnknown_3005AF0 -_081A0978: - cmp r0, #8 - bne _081A0994 - ldr r1, _081A098C - ldr r0, _081A0990 - ldr r0, [r0] - adds r0, #0xb0 - ldrb r0, [r0] - lsls r0, r0, #3 - b _081A0B2E - .align 2, 0 -_081A098C: .4byte gUnknown_85DC7DC -_081A0990: .4byte gUnknown_3005AF0 -_081A0994: - cmp r0, #9 - bne _081A09B0 - ldr r1, _081A09A8 - ldr r0, _081A09AC - ldr r0, [r0] - adds r0, #0xb0 - ldrb r0, [r0] - lsls r0, r0, #3 - adds r1, #4 - b _081A0B2E - .align 2, 0 -_081A09A8: .4byte gUnknown_85DC7DC -_081A09AC: .4byte gUnknown_3005AF0 -_081A09B0: - cmp r0, #4 - bne _081A09CC - ldr r1, _081A09C4 - ldr r0, _081A09C8 - ldr r0, [r0] - adds r0, #0xb0 - ldrb r0, [r0] - lsls r0, r0, #3 - b _081A0B2E - .align 2, 0 -_081A09C4: .4byte gUnknown_85DC85C -_081A09C8: .4byte gUnknown_3005AF0 -_081A09CC: - cmp r0, #5 - bne _081A09E8 - ldr r1, _081A09E0 - ldr r0, _081A09E4 - ldr r0, [r0] - adds r0, #0xb0 - ldrb r0, [r0] - lsls r0, r0, #3 - adds r1, #4 - b _081A0B2E - .align 2, 0 -_081A09E0: .4byte gUnknown_85DC85C -_081A09E4: .4byte gUnknown_3005AF0 -_081A09E8: - cmp r0, #0xa - bne _081A0A08 - ldr r2, _081A0A00 - ldr r0, _081A0A04 - ldr r0, [r0] - adds r0, #0xb0 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - b _081A0A9E - .align 2, 0 -_081A0A00: .4byte gUnknown_85DC69C -_081A0A04: .4byte gUnknown_3005AF0 -_081A0A08: - cmp r0, #0xb - bne _081A0A24 - ldr r1, _081A0A1C - ldr r0, _081A0A20 - ldr r0, [r0] - adds r0, #0xb0 - ldrb r0, [r0] - lsls r0, r0, #3 - b _081A0B2E - .align 2, 0 -_081A0A1C: .4byte gUnknown_85DC8DC -_081A0A20: .4byte gUnknown_3005AF0 -_081A0A24: - cmp r0, #0xc - bne _081A0A44 - ldr r2, _081A0A3C - ldr r0, _081A0A40 - ldr r0, [r0] - adds r0, #0xb0 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0xc - b _081A0A9E - .align 2, 0 -_081A0A3C: .4byte gUnknown_85DC69C -_081A0A40: .4byte gUnknown_3005AF0 -_081A0A44: - cmp r0, #0xd - bne _081A0A64 - ldr r2, _081A0A5C - ldr r0, _081A0A60 - ldr r0, [r0] - adds r0, #0xb0 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #4 - b _081A0A9E - .align 2, 0 -_081A0A5C: .4byte gUnknown_85DC69C -_081A0A60: .4byte gUnknown_3005AF0 -_081A0A64: - ldrh r0, [r1] - cmp r0, #0x10 - bne _081A0A88 - ldr r2, _081A0A80 - ldr r0, _081A0A84 - ldr r0, [r0] - adds r0, #0xb0 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x10 - b _081A0A9E - .align 2, 0 -_081A0A80: .4byte gUnknown_85DC69C -_081A0A84: .4byte gUnknown_3005AF0 -_081A0A88: - cmp r0, #0xe - bne _081A0AAC - ldr r2, _081A0AA4 - ldr r0, _081A0AA8 - ldr r0, [r0] - adds r0, #0xb0 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #8 -_081A0A9E: - adds r0, r0, r2 - ldr r1, [r0] - b _081A0B42 - .align 2, 0 -_081A0AA4: .4byte gUnknown_85DC69C -_081A0AA8: .4byte gUnknown_3005AF0 -_081A0AAC: - cmp r0, #0xf - bne _081A0AC8 - ldr r1, _081A0AC0 - ldr r0, _081A0AC4 - ldr r0, [r0] - adds r0, #0xb0 - ldrb r0, [r0] - lsls r0, r0, #3 - adds r1, #4 - b _081A0B2E - .align 2, 0 -_081A0AC0: .4byte gUnknown_85DC8DC -_081A0AC4: .4byte gUnknown_3005AF0 -_081A0AC8: - cmp r0, #0 - bne _081A0AE4 - ldr r1, _081A0ADC - ldr r0, _081A0AE0 - ldr r0, [r0] - adds r0, #0xb0 - ldrb r0, [r0] - lsls r0, r0, #4 - b _081A0B2E - .align 2, 0 -_081A0ADC: .4byte gUnknown_85DC51C -_081A0AE0: .4byte gUnknown_3005AF0 -_081A0AE4: - cmp r0, #1 - bne _081A0B00 - ldr r1, _081A0AF8 - ldr r0, _081A0AFC - ldr r0, [r0] - adds r0, #0xb0 - ldrb r0, [r0] - lsls r0, r0, #4 - adds r1, #4 - b _081A0B2E - .align 2, 0 -_081A0AF8: .4byte gUnknown_85DC51C -_081A0AFC: .4byte gUnknown_3005AF0 -_081A0B00: - cmp r0, #2 - bne _081A0B1C - ldr r1, _081A0B14 - ldr r0, _081A0B18 - ldr r0, [r0] - adds r0, #0xb0 - ldrb r0, [r0] - lsls r0, r0, #4 - adds r1, #8 - b _081A0B2E - .align 2, 0 -_081A0B14: .4byte gUnknown_85DC51C -_081A0B18: .4byte gUnknown_3005AF0 -_081A0B1C: - cmp r0, #3 - bne _081A0B3C - ldr r1, _081A0B34 - ldr r0, _081A0B38 - ldr r0, [r0] - adds r0, #0xb0 - ldrb r0, [r0] - lsls r0, r0, #4 - adds r1, #0xc -_081A0B2E: - adds r0, r0, r1 - ldr r1, [r0] - b _081A0B42 - .align 2, 0 -_081A0B34: .4byte gUnknown_85DC51C -_081A0B38: .4byte gUnknown_3005AF0 -_081A0B3C: - bl EnableBothScriptContexts - b _081A0B56 -_081A0B42: - ldr r0, _081A0B5C - bl StringExpandPlaceholders - movs r0, #1 - bl AddTextPrinterForMessage - ldr r0, _081A0B60 - movs r1, #1 - bl CreateTask -_081A0B56: - pop {r0} - bx r0 - .align 2, 0 -_081A0B5C: .4byte gUnknown_2021C7C -_081A0B60: .4byte Task_WaitForPrintingMessage - thumb_func_end PrintMessage - - thumb_func_start Script_PrintMessage -Script_PrintMessage: @ 0x081A0B64 - push {lr} - bl sub_080987DC - bl FreezeEventObjects - bl sub_0808B1C8 - bl sub_0808B658 - movs r0, #0 - movs r1, #1 - bl sub_08196FB8 - bl PrintMessage - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Script_PrintMessage - - thumb_func_start sub_081A0B88 -sub_081A0B88: @ 0x081A0B88 - push {lr} - ldr r0, _081A0BA4 - ldr r2, [r0] - adds r0, r2, #0 - adds r0, #0xb1 - ldrb r0, [r0] - lsls r1, r0, #0x1a - lsrs r0, r1, #0x1c - cmp r0, #2 - bhi _081A0BAC - ldr r1, _081A0BA8 - movs r0, #2 - b _081A0BFC - .align 2, 0 -_081A0BA4: .4byte gUnknown_3005AF0 -_081A0BA8: .4byte gUnknown_2037290 -_081A0BAC: - lsrs r0, r1, #0x1c - cmp r0, #0xb - bhi _081A0BF8 - lsrs r0, r1, #0x1c - subs r0, #3 - lsls r0, r0, #2 - adds r0, r2, r0 - adds r0, #0xb8 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #2 - beq _081A0BE0 - cmp r0, #2 - bgt _081A0BD0 - cmp r0, #1 - beq _081A0BD6 - b _081A0BF8 -_081A0BD0: - cmp r0, #3 - beq _081A0BEC - b _081A0BF8 -_081A0BD6: - ldr r1, _081A0BDC - movs r0, #4 - b _081A0BFC - .align 2, 0 -_081A0BDC: .4byte gUnknown_2037290 -_081A0BE0: - ldr r1, _081A0BE8 - movs r0, #3 - b _081A0BFC - .align 2, 0 -_081A0BE8: .4byte gUnknown_2037290 -_081A0BEC: - ldr r1, _081A0BF4 - movs r0, #1 - b _081A0BFC - .align 2, 0 -_081A0BF4: .4byte gUnknown_2037290 -_081A0BF8: - ldr r1, _081A0C04 - movs r0, #5 -_081A0BFC: - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_081A0C04: .4byte gUnknown_2037290 - thumb_func_end sub_081A0B88 - - thumb_func_start sub_081A0C08 -sub_081A0C08: @ 0x081A0C08 - push {r4, lr} - ldr r0, _081A0C3C - ldrh r0, [r0] - cmp r0, #0 - beq _081A0C36 - ldr r4, _081A0C40 - ldr r0, _081A0C44 - ldr r2, [r0] - adds r2, #0xb2 - ldrb r3, [r2] - lsls r0, r3, #0x1d - lsrs r0, r0, #0x1d - movs r1, #1 - ldrb r4, [r4] - lsls r1, r4 - orrs r1, r0 - movs r0, #7 - ands r1, r0 - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] -_081A0C36: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081A0C3C: .4byte gUnknown_2037282 -_081A0C40: .4byte gUnknown_2037284 -_081A0C44: .4byte gUnknown_3005AF0 - thumb_func_end sub_081A0C08 - - thumb_func_start sub_081A0C48 -sub_081A0C48: @ 0x081A0C48 - push {lr} - ldr r0, _081A0C80 - ldr r3, [r0] - adds r0, r3, #0 - adds r0, #0xb1 - ldrb r0, [r0] - lsls r1, r0, #0x1a - lsrs r0, r1, #0x1c - cmp r0, #2 - bls _081A0C96 - subs r0, #3 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _081A0C84 - ldrh r0, [r0] - cmp r0, #0 - beq _081A0C88 - lsls r2, r2, #2 - adds r2, r3, r2 - adds r2, #0xb8 - ldrb r1, [r2] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2] - b _081A0C96 - .align 2, 0 -_081A0C80: .4byte gUnknown_3005AF0 -_081A0C84: .4byte gUnknown_2037282 -_081A0C88: - lsls r0, r2, #2 - adds r0, r3, r0 - adds r0, #0xb8 - ldrb r2, [r0] - movs r1, #0x3f - ands r1, r2 - strb r1, [r0] -_081A0C96: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081A0C48 - - thumb_func_start sub_081A0C9C -sub_081A0C9C: @ 0x081A0C9C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - movs r5, #0 - movs r2, #0 - ldr r1, _081A0D4C - ldr r0, [r1] - adds r0, #0xb8 - ldrb r0, [r0] - lsls r0, r0, #0x1e - ldr r3, _081A0D50 - mov sb, r3 - cmp r0, #0 - beq _081A0CDC - adds r3, r1, #0 -_081A0CBC: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #8 - bhi _081A0CDC - ldr r0, [r3] - lsls r1, r2, #2 - adds r0, r0, r1 - adds r0, #0xb8 - ldrb r0, [r0] - lsls r0, r0, #0x1e - cmp r0, #0 - bne _081A0CBC -_081A0CDC: - mov r4, sb - movs r0, #8 - bl AllocZeroed - adds r7, r0, #0 - str r7, [r4] - ldr r0, _081A0D54 - ldrh r0, [r0] - cmp r0, #2 - bne _081A0D5C - ldr r0, _081A0D4C - ldr r0, [r0] - mov ip, r0 - mov r6, ip - adds r6, #0xb1 - ldrb r0, [r6] - lsls r1, r0, #0x1a - lsrs r0, r1, #0x1c - cmp r0, #2 - bls _081A0D06 - b _081A0EA8 -_081A0D06: - mov r3, ip - adds r3, #0xb4 - adds r0, r3, r0 - ldrb r0, [r0] - lsrs r5, r0, #4 - ldr r4, _081A0D58 - lsls r2, r5, #1 - mov r5, ip - adds r5, #0xb0 - ldrb r1, [r5] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #4 - adds r2, r2, r0 - adds r4, #0xc - adds r2, r2, r4 - ldrh r0, [r2] - strh r0, [r7, #2] - ldrb r0, [r6] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1c - adds r3, r3, r0 - ldrb r0, [r3] - movs r1, #0xf - ands r1, r0 - lsls r1, r1, #1 - ldrb r2, [r5] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #4 - adds r1, r1, r0 - adds r1, r1, r4 - ldrh r0, [r1] - b _081A0EA6 - .align 2, 0 -_081A0D4C: .4byte gUnknown_3005AF0 -_081A0D50: .4byte gUnknown_3006030 -_081A0D54: .4byte gUnknown_2037282 -_081A0D58: .4byte gUnknown_85DC21C -_081A0D5C: - cmp r0, #3 - bne _081A0E2C - ldr r0, _081A0E24 - mov r8, r0 - ldr r4, [r0] - movs r1, #0xb1 - adds r1, r1, r4 - mov ip, r1 - ldrb r0, [r1] - lsls r2, r0, #0x1a - lsrs r0, r2, #0x1c - cmp r0, #2 - bhi _081A0D78 - b _081A0EA8 -_081A0D78: - adds r1, r0, #0 - adds r0, r5, #3 - cmp r1, r0 - blt _081A0D82 - b _081A0EA8 -_081A0D82: - adds r0, r1, #0 - subs r0, #3 - lsls r0, r0, #2 - adds r0, r4, r0 - adds r0, #0xb8 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #2 - beq _081A0D98 - b _081A0EA8 -_081A0D98: - adds r0, r1, #0 - subs r0, #3 - lsls r0, r0, #2 - adds r0, r4, r0 - adds r0, #0xb8 - ldrb r0, [r0] - lsls r0, r0, #0x1c - lsrs r6, r0, #0x1e - adds r0, r4, #0 - adds r0, #0xb2 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - asrs r1, r6 - movs r0, #1 - ands r1, r0 - adds r0, r4, #0 - adds r0, #0xb4 - adds r0, r0, r6 - ldrb r5, [r0] - lsls r1, r1, #2 - asrs r5, r1 - movs r0, #0xf - ands r5, r0 - ldr r3, _081A0E28 - lsls r2, r5, #1 - adds r0, r4, #0 - adds r0, #0xb0 - ldrb r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #4 - adds r2, r2, r0 - adds r3, #0xc - adds r2, r2, r3 - ldrh r0, [r2] - strh r0, [r7] - mov r3, ip - ldrb r0, [r3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1c - subs r0, #3 - lsls r0, r0, #2 - adds r0, r4, r0 - adds r0, #0xb8 - ldrb r2, [r0] - lsls r2, r2, #0x1a - lsrs r2, r2, #0x1e - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_081A0160 - mov r1, sb - ldr r2, [r1] - strh r0, [r2, #4] - mov r3, r8 - ldr r1, [r3] - adds r0, r1, #0 - adds r0, #0xb1 - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1c - subs r0, #3 - lsls r0, r0, #2 - adds r1, r1, r0 - adds r1, #0xba - ldrh r0, [r1] - strh r0, [r2, #6] - b _081A0EA8 - .align 2, 0 -_081A0E24: .4byte gUnknown_3005AF0 -_081A0E28: .4byte gUnknown_85DC21C -_081A0E2C: - cmp r0, #4 - bne _081A0EA8 - ldr r0, _081A0EB4 - ldr r4, [r0] - adds r0, r4, #0 - adds r0, #0xb1 - ldrb r0, [r0] - lsls r2, r0, #0x1a - lsrs r0, r2, #0x1c - cmp r0, #2 - bls _081A0EA8 - adds r1, r0, #0 - adds r0, r5, #3 - cmp r1, r0 - bge _081A0EA8 - adds r0, r1, #0 - subs r0, #3 - lsls r0, r0, #2 - adds r0, r4, r0 - adds r0, #0xb8 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _081A0EA8 - adds r0, r1, #0 - subs r0, #3 - lsls r0, r0, #2 - adds r0, r4, r0 - adds r0, #0xb8 - ldrb r0, [r0] - lsls r0, r0, #0x1c - lsrs r6, r0, #0x1e - adds r0, r4, #0 - adds r0, #0xb2 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - asrs r1, r6 - movs r0, #1 - ands r1, r0 - adds r0, r4, #0 - adds r0, #0xb4 - adds r0, r0, r6 - ldrb r2, [r0] - lsls r1, r1, #2 - asrs r2, r1 - movs r0, #0xf - ands r2, r0 - ldr r3, _081A0EB8 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r0, #0xb0 - ldrb r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #4 - adds r2, r2, r0 - adds r3, #0xc - adds r2, r2, r3 - ldrh r0, [r2] -_081A0EA6: - strh r0, [r7] -_081A0EA8: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A0EB4: .4byte gUnknown_3005AF0 -_081A0EB8: .4byte gUnknown_85DC21C - thumb_func_end sub_081A0C9C - - thumb_func_start sub_081A0EBC -sub_081A0EBC: @ 0x081A0EBC - push {r4, lr} - ldr r4, _081A0ED0 - ldr r0, [r4] - bl Free - movs r0, #0 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081A0ED0: .4byte gUnknown_3006030 - thumb_func_end sub_081A0EBC - - thumb_func_start AtkCanceller_UnableToUseMove -AtkCanceller_UnableToUseMove: @ 0x081A0ED4 - push {r4, r5, r6, r7, lr} - sub sp, #0x10 - ldr r0, _081A0EEC - ldrh r0, [r0] - cmp r0, #1 - beq _081A0F00 - cmp r0, #1 - bgt _081A0EF0 - cmp r0, #0 - beq _081A0EF6 - b _081A10F2 - .align 2, 0 -_081A0EEC: .4byte gUnknown_2037282 -_081A0EF0: - cmp r0, #2 - beq _081A0F08 - b _081A10F2 -_081A0EF6: - ldr r5, _081A0EFC - b _081A0F0A - .align 2, 0 -_081A0EFC: .4byte gUnknown_2021C40 -_081A0F00: - ldr r5, _081A0F04 - b _081A0F0A - .align 2, 0 -_081A0F04: .4byte gUnknown_2021C54 -_081A0F08: - ldr r5, _081A0F20 -_081A0F0A: - ldr r0, _081A0F24 - ldrh r0, [r0] - cmp r0, #9 - bls _081A0F14 - b _081A10F2 -_081A0F14: - lsls r0, r0, #2 - ldr r1, _081A0F28 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081A0F20: .4byte gUnknown_2021C68 -_081A0F24: .4byte gUnknown_2037284 -_081A0F28: .4byte _081A0F2C -_081A0F2C: @ jump table - .4byte _081A0F54 @ case 0 - .4byte _081A0F70 @ case 1 - .4byte _081A0F8C @ case 2 - .4byte _081A0FA8 @ case 3 - .4byte _081A0FC0 @ case 4 - .4byte _081A0FD8 @ case 5 - .4byte _081A0FFC @ case 6 - .4byte _081A106C @ case 7 - .4byte _081A1048 @ case 8 - .4byte _081A108C @ case 9 -_081A0F54: - ldr r0, _081A0F68 - ldr r0, [r0] - ldrh r0, [r0] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - ldr r0, _081A0F6C - adds r1, r1, r0 - b _081A107C - .align 2, 0 -_081A0F68: .4byte gUnknown_3006030 -_081A0F6C: .4byte gUnknown_82EA31C -_081A0F70: - ldr r0, _081A0F84 - ldr r0, [r0] - ldrh r0, [r0, #2] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - ldr r0, _081A0F88 - adds r1, r1, r0 - b _081A107C - .align 2, 0 -_081A0F84: .4byte gUnknown_3006030 -_081A0F88: .4byte gUnknown_82EA31C -_081A0F8C: - ldr r0, _081A0FA0 - ldr r0, [r0] - ldrh r0, [r0] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - ldr r0, _081A0FA4 - adds r1, r1, r0 - b _081A107C - .align 2, 0 -_081A0FA0: .4byte gUnknown_3006030 -_081A0FA4: .4byte gUnknown_82EA31C -_081A0FA8: - ldr r0, _081A0FB8 - ldr r0, [r0] - ldrh r1, [r0, #4] - lsls r1, r1, #3 - ldr r0, _081A0FBC - adds r1, r1, r0 - b _081A107C - .align 2, 0 -_081A0FB8: .4byte gUnknown_3006030 -_081A0FBC: .4byte gUnknown_82EACC4 -_081A0FC0: - ldr r0, _081A0FD0 - ldr r0, [r0] - ldrh r1, [r0, #6] - lsls r1, r1, #3 - ldr r0, _081A0FD4 - adds r1, r1, r0 - b _081A107C - .align 2, 0 -_081A0FD0: .4byte gUnknown_3006030 -_081A0FD4: .4byte gUnknown_82EACC4 -_081A0FD8: - ldr r0, _081A0FF8 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0xb1 - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1c - subs r0, #3 - lsls r0, r0, #2 - adds r1, r1, r0 - adds r1, #0xba - ldrh r0, [r1] - bl sub_080D6C8C - adds r1, r0, #0 - b _081A107C - .align 2, 0 -_081A0FF8: .4byte gUnknown_3005AF0 -_081A0FFC: - movs r3, #0 - ldr r7, _081A1040 - ldr r6, _081A1044 - ldr r0, [r7] - adds r4, r0, #0 - adds r4, #0xb0 -_081A1008: - mov r0, sp - adds r2, r0, r3 - ldrb r1, [r4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #4 - adds r0, r3, r0 - adds r0, r0, r6 - ldrb r0, [r0] - strb r0, [r2] - cmp r0, #0xff - beq _081A102A - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #6 - bls _081A1008 -_081A102A: - cmp r3, #3 - bne _081A1034 - mov r1, sp - movs r0, #0xff - strb r0, [r1, #3] -_081A1034: - adds r0, r5, #0 - mov r1, sp - bl StringCopy - b _081A10F2 - .align 2, 0 -_081A1040: .4byte gUnknown_3005AF0 -_081A1044: .4byte gUnknown_85DC21C -_081A1048: - ldr r0, _081A105C - ldr r0, [r0] - adds r0, #0xb1 - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - cmp r0, #1 - bne _081A1064 - ldr r1, _081A1060 - b _081A107C - .align 2, 0 -_081A105C: .4byte gUnknown_3005AF0 -_081A1060: .4byte gUnknown_85CAB0D -_081A1064: - ldr r1, _081A1068 - b _081A107C - .align 2, 0 -_081A1068: .4byte gUnknown_85CAB13 -_081A106C: - ldr r0, _081A1084 - ldr r0, [r0] - movs r1, #0x82 - lsls r1, r1, #1 - adds r0, r0, r1 - bl FrontierSpeechToString - ldr r1, _081A1088 -_081A107C: - adds r0, r5, #0 - bl StringCopy - b _081A10F2 - .align 2, 0 -_081A1084: .4byte gUnknown_3005AF0 -_081A1088: .4byte gUnknown_2021C7C -_081A108C: - ldr r0, _081A10C4 - ldr r3, [r0] - adds r1, r3, #0 - adds r1, #0xb1 - ldrb r1, [r1] - lsls r4, r1, #0x18 - lsrs r1, r4, #0x1e - adds r7, r0, #0 - cmp r1, #2 - bhi _081A10C8 - adds r0, r3, #0 - adds r0, #0xb4 - adds r0, r0, r1 - ldrb r2, [r0] - adds r0, r3, #0 - adds r0, #0xb2 - ldrb r0, [r0] - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1d - asrs r0, r1 - movs r1, #1 - ands r0, r1 - lsls r0, r0, #2 - asrs r2, r0 - movs r0, #0xf - ands r2, r0 - b _081A10CA - .align 2, 0 -_081A10C4: .4byte gUnknown_3005AF0 -_081A10C8: - movs r2, #0 -_081A10CA: - ldr r3, _081A10FC - lsls r2, r2, #1 - ldr r0, [r7] - adds r0, #0xb0 - ldrb r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #4 - adds r2, r2, r0 - adds r3, #0xc - adds r2, r2, r3 - ldrh r0, [r2] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - ldr r0, _081A1100 - adds r1, r1, r0 - adds r0, r5, #0 - bl StringCopy -_081A10F2: - add sp, #0x10 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A10FC: .4byte gUnknown_85DC21C -_081A1100: .4byte gUnknown_82EA31C - thumb_func_end AtkCanceller_UnableToUseMove - - thumb_func_start sub_081A1104 -sub_081A1104: @ 0x081A1104 - ldr r0, _081A111C - ldr r2, [r0] - ldr r0, _081A1120 - ldrb r1, [r0] - adds r2, #0xb1 - lsls r1, r1, #6 - ldrb r3, [r2] - movs r0, #0x3f - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - bx lr - .align 2, 0 -_081A111C: .4byte gUnknown_3005AF0 -_081A1120: .4byte gUnknown_2037282 - thumb_func_end sub_081A1104 - - thumb_func_start sub_081A1124 -sub_081A1124: @ 0x081A1124 - push {lr} - bl sub_081AA9A0 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081A1124 - - thumb_func_start sub_081A1130 -sub_081A1130: @ 0x081A1130 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r1, _081A1208 - ldr r3, [r1] - adds r0, r3, #0 - adds r0, #0xb1 - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1c - adds r7, r1, #0 - cmp r0, #2 - bhi _081A114E - b _081A126E -_081A114E: - movs r5, #0 - movs r2, #0 - adds r0, r3, #0 - adds r0, #0xb8 - ldrb r0, [r0] - lsls r0, r0, #0x1e - ldr r1, _081A120C - mov ip, r1 - ldr r1, _081A1210 - mov r8, r1 - cmp r0, #0 - beq _081A1188 - adds r3, r7, #0 -_081A1168: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #8 - bhi _081A1188 - ldr r0, [r3] - lsls r1, r2, #2 - adds r0, r0, r1 - adds r0, #0xb8 - ldrb r0, [r0] - lsls r0, r0, #0x1e - cmp r0, #0 - bne _081A1168 -_081A1188: - movs r4, #0 - cmp r4, r5 - bhs _081A122E - ldr r0, [r7] - adds r0, #0xb1 - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1c - subs r0, #3 - cmp r4, r0 - bge _081A122E - adds r6, r7, #0 - mov sb, r4 -_081A11A2: - ldr r3, [r6] - lsls r0, r4, #2 - adds r2, r3, r0 - adds r0, r2, #0 - adds r0, #0xb8 - ldrb r1, [r0] - lsls r0, r1, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _081A1214 - lsrs r0, r1, #6 - cmp r0, #0 - beq _081A1214 - adds r0, r2, #0 - adds r0, #0xba - ldrh r0, [r0] - mov r2, ip - ldrh r2, [r2] - cmp r0, r2 - bne _081A1214 - adds r0, r3, #0 - adds r0, #0xb1 - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1c - subs r0, #3 - lsls r0, r0, #2 - adds r0, r3, r0 - adds r0, #0xb8 - ldrb r2, [r0] - movs r1, #0x3f - ands r1, r2 - strb r1, [r0] - ldr r1, [r6] - adds r0, r1, #0 - adds r0, #0xb1 - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1c - subs r0, #3 - lsls r0, r0, #2 - adds r1, r1, r0 - mov r2, ip - ldrh r0, [r2] - adds r1, #0xba - strh r0, [r1] - mov r1, sb - mov r0, r8 - strh r1, [r0] - b _081A126E - .align 2, 0 -_081A1208: .4byte gUnknown_3005AF0 -_081A120C: .4byte gUnknown_2037282 -_081A1210: .4byte gUnknown_2037290 -_081A1214: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r5 - bhs _081A122E - ldr r0, [r6] - adds r0, #0xb1 - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1c - subs r0, #3 - cmp r4, r0 - blt _081A11A2 -_081A122E: - ldr r2, [r7] - adds r0, r2, #0 - adds r0, #0xb1 - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1c - subs r0, #3 - lsls r0, r0, #2 - adds r2, r2, r0 - adds r2, #0xb8 - ldrb r1, [r2] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2] - ldr r1, [r7] - adds r0, r1, #0 - adds r0, #0xb1 - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1c - subs r0, #3 - lsls r0, r0, #2 - adds r1, r1, r0 - mov r2, ip - ldrh r0, [r2] - adds r1, #0xba - strh r0, [r1] - movs r0, #1 - mov r1, r8 - strh r0, [r1] -_081A126E: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081A1130 - - thumb_func_start sub_081A127C -sub_081A127C: @ 0x081A127C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _081A12C0 - ldr r1, [r0] - movs r2, #0x8a - lsls r2, r2, #1 - adds r1, r1, r2 - ldrb r1, [r1] - adds r4, r0, #0 - cmp r1, #0xff - beq _081A132E - movs r5, #0 -_081A129A: - ldr r1, [r4] - adds r2, r5, #1 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r3, r1, r0 - movs r5, #0x8a - lsls r5, r5, #1 - adds r0, r3, r5 - ldrb r0, [r0] - cmp r0, #0xff - bne _081A12C4 - adds r0, r3, #0 - adds r0, #0xdc - adds r1, #0xdc - movs r2, #0x44 - bl memcpy - b _081A132E - .align 2, 0 -_081A12C0: .4byte gUnknown_3005AF0 -_081A12C4: - adds r5, r2, #0 - cmp r5, #2 - ble _081A129A - ldr r0, _081A133C - mov sl, r0 - movs r2, #1 - rsbs r2, r2, #0 - mov sb, r2 - movs r5, #1 - ldr r7, _081A1340 - movs r0, #0x90 - lsls r0, r0, #1 - mov r8, r0 - movs r6, #0x44 -_081A12E0: - ldr r0, [r7] - add r0, r8 - adds r0, #0x34 - bl GetTrainerId - adds r4, r0, #0 - ldr r0, [r7] - adds r0, #0xa - bl GetTrainerId - cmp r4, r0 - bne _081A1308 - ldr r0, [r7] - adds r0, r0, r6 - adds r0, #0xde - ldrb r0, [r0] - cmp r0, sl - bge _081A1308 - mov sl, r0 - mov sb, r5 -_081A1308: - movs r2, #0x44 - add r8, r2 - adds r6, #0x44 - adds r5, #1 - cmp r5, #3 - ble _081A12E0 - mov r5, sb - cmp r5, #0 - ble _081A132E - ldr r0, _081A1340 - ldr r1, [r0] - lsls r0, r5, #4 - add r0, sb - lsls r0, r0, #2 - adds r0, r1, r0 - adds r0, #0xdc - adds r1, #0xdc - bl memcpy -_081A132E: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A133C: .4byte 0x0000FFFF -_081A1340: .4byte gUnknown_3005AF0 - thumb_func_end sub_081A127C - - thumb_func_start sub_081A1344 -sub_081A1344: @ 0x081A1344 - push {r4, r5, lr} - ldr r4, _081A1384 - ldr r2, [r4] - adds r0, r2, #0 - adds r0, #0xb0 - ldrb r0, [r0] - adds r2, #0xdc - movs r1, #0x1f - ands r1, r0 - ldrb r3, [r2] - movs r0, #0x20 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldr r2, [r4] - adds r0, r2, #0 - adds r0, #0xb1 - ldrb r1, [r0] - lsls r1, r1, #0x1e - adds r2, #0xdc - lsrs r1, r1, #0x19 - ldrb r3, [r2] - movs r0, #0x61 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - movs r2, #0 - ldr r0, [r4] - b _081A1398 - .align 2, 0 -_081A1384: .4byte gUnknown_3005AF0 -_081A1388: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #8 - bhi _081A13A2 - ldr r0, [r4] - lsls r1, r2, #2 - adds r0, r0, r1 -_081A1398: - adds r0, #0xb8 - ldrb r0, [r0] - lsls r0, r0, #0x1e - cmp r0, #0 - bne _081A1388 -_081A13A2: - ldr r4, _081A140C - ldr r0, [r4] - adds r0, #0xdd - strb r2, [r0] - ldr r0, [r4] - adds r1, r0, #0 - adds r1, #0xde - ldrb r0, [r1] - cmp r0, #0xfe - bhi _081A13BA - adds r0, #1 - strb r0, [r1] -_081A13BA: - ldr r0, [r4] - adds r0, #0xdd - ldrb r0, [r0] - bl sub_081A026C - movs r2, #0 - adds r3, r4, #0 - movs r4, #0x88 - lsls r4, r4, #1 - adds r5, r3, #0 -_081A13CE: - ldr r0, [r3] - adds r1, r0, r4 - adds r1, r1, r2 - adds r0, #0xa - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #3 - bls _081A13CE - ldr r1, [r5] - movs r2, #0x8a - lsls r2, r2, #1 - adds r0, r1, r2 - bl StringCopy - ldr r1, [r5] - ldr r0, _081A1410 - ldrb r0, [r0] - ldr r2, _081A1414 - adds r1, r1, r2 - strb r0, [r1] - ldr r0, [r5] - adds r0, #0xdc - bl CalcApprenticeChecksum - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081A140C: .4byte gUnknown_3005AF0 -_081A1410: .4byte gUnknown_829BDA5 -_081A1414: .4byte 0x0000011B - thumb_func_end sub_081A1344 - - thumb_func_start sub_081A1418 -sub_081A1418: @ 0x081A1418 - push {lr} - ldr r2, _081A1460 - ldr r0, _081A1464 - ldr r0, [r0] - adds r0, #0xdc - ldrb r1, [r0] - lsls r1, r1, #0x1b - lsrs r1, r1, #0x1b - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #4 - adds r0, r0, r2 - ldrb r2, [r0, #0xa] - movs r1, #0 - ldr r3, _081A1468 - ldrb r0, [r3] - cmp r0, r2 - beq _081A144E -_081A143C: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x1d - bhi _081A144E - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _081A143C -_081A144E: - cmp r1, #0x1e - beq _081A1474 - ldr r0, _081A146C - adds r0, r1, r0 - ldrb r1, [r0] - ldr r0, _081A1470 - bl VarSet - b _081A14A0 - .align 2, 0 -_081A1460: .4byte gUnknown_85DC21C -_081A1464: .4byte gUnknown_3005AF0 -_081A1468: .4byte gUnknown_85BBE20 -_081A146C: .4byte gUnknown_85BBE52 -_081A1470: .4byte 0x00004010 -_081A1474: - movs r1, #0 - ldr r3, _081A14A4 - ldrb r0, [r3] - cmp r0, r2 - beq _081A1490 -_081A147E: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x13 - bhi _081A1490 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _081A147E -_081A1490: - cmp r1, #0x14 - beq _081A14A0 - ldr r0, _081A14A8 - adds r0, r1, r0 - ldrb r1, [r0] - ldr r0, _081A14AC - bl VarSet -_081A14A0: - pop {r0} - bx r0 - .align 2, 0 -_081A14A4: .4byte gUnknown_85BBE3E -_081A14A8: .4byte gUnknown_85BBE70 -_081A14AC: .4byte 0x00004010 - thumb_func_end sub_081A1418 - - thumb_func_start Script_SetPlayerApprenticeTrainerGfxId -Script_SetPlayerApprenticeTrainerGfxId: @ 0x081A14B0 - push {lr} - ldr r2, _081A14F4 - ldr r0, _081A14F8 - ldr r0, [r0] - adds r0, #0xb0 - ldrb r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #4 - adds r0, r0, r2 - ldrb r2, [r0, #0xa] - movs r1, #0 - ldr r3, _081A14FC - ldrb r0, [r3] - cmp r0, r2 - beq _081A14E2 -_081A14D0: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x1d - bhi _081A14E2 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _081A14D0 -_081A14E2: - cmp r1, #0x1e - beq _081A1508 - ldr r0, _081A1500 - adds r0, r1, r0 - ldrb r1, [r0] - ldr r0, _081A1504 - bl VarSet - b _081A1534 - .align 2, 0 -_081A14F4: .4byte gUnknown_85DC21C -_081A14F8: .4byte gUnknown_3005AF0 -_081A14FC: .4byte gUnknown_85BBE20 -_081A1500: .4byte gUnknown_85BBE52 -_081A1504: .4byte 0x00004010 -_081A1508: - movs r1, #0 - ldr r3, _081A1538 - ldrb r0, [r3] - cmp r0, r2 - beq _081A1524 -_081A1512: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x13 - bhi _081A1524 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _081A1512 -_081A1524: - cmp r1, #0x14 - beq _081A1534 - ldr r0, _081A153C - adds r0, r1, r0 - ldrb r1, [r0] - ldr r0, _081A1540 - bl VarSet -_081A1534: - pop {r0} - bx r0 - .align 2, 0 -_081A1538: .4byte gUnknown_85BBE3E -_081A153C: .4byte gUnknown_85BBE70 -_081A1540: .4byte 0x00004010 - thumb_func_end Script_SetPlayerApprenticeTrainerGfxId - - thumb_func_start sub_081A1544 -sub_081A1544: @ 0x081A1544 - ldr r1, _081A154C - movs r0, #1 - strh r0, [r1] - bx lr - .align 2, 0 -_081A154C: .4byte gUnknown_2037280 - thumb_func_end sub_081A1544 - - thumb_func_start sub_081A1550 -sub_081A1550: @ 0x081A1550 - ldr r1, _081A1558 - movs r0, #1 - strh r0, [r1] - bx lr - .align 2, 0 -_081A1558: .4byte gUnknown_2037280 - thumb_func_end sub_081A1550 - - thumb_func_start sub_081A155C -sub_081A155C: @ 0x081A155C - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _081A1580 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _081A1576 - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081A157C -_081A1576: - adds r0, r2, #0 - bl SwitchTaskToFollowupFunc -_081A157C: - pop {r0} - bx r0 - .align 2, 0 -_081A1580: .4byte gUnknown_3002360 - thumb_func_end sub_081A155C - - thumb_func_start Task_ExecuteFuncAfterButtonPress -Task_ExecuteFuncAfterButtonPress: @ 0x081A1584 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _081A15C8 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _081A159E - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081A15C0 -_081A159E: - ldr r2, _081A15CC - ldr r1, _081A15D0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #8] - movs r3, #0xa - ldrsh r0, [r0, r3] - lsls r0, r0, #0x10 - orrs r1, r0 - str r1, [r2] - bl _call_via_r1 - adds r0, r4, #0 - bl DestroyTask -_081A15C0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081A15C8: .4byte gUnknown_3002360 -_081A15CC: .4byte gUnknown_3006034 -_081A15D0: .4byte gUnknown_3005B60 - thumb_func_end Task_ExecuteFuncAfterButtonPress - - thumb_func_start ExecuteFuncAfterButtonPress -ExecuteFuncAfterButtonPress: @ 0x081A15D4 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _081A15FC - movs r1, #1 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _081A1600 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #8] - lsrs r4, r4, #0x10 - strh r4, [r1, #0xa] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081A15FC: .4byte Task_ExecuteFuncAfterButtonPress -_081A1600: .4byte gUnknown_3005B60 - thumb_func_end ExecuteFuncAfterButtonPress - - thumb_func_start sub_081A1604 -sub_081A1604: @ 0x081A1604 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _081A1624 - adds r0, r4, #0 - movs r1, #1 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r4, #0 - adds r2, r5, #0 - bl SetTaskFuncWithFollowupFunc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081A1624: .4byte sub_081A155C - thumb_func_end sub_081A1604 - - thumb_func_start sub_081A1628 -sub_081A1628: @ 0x081A1628 - push {lr} - ldr r1, _081A1640 - ldr r0, _081A1644 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - thumb_func_end sub_081A1628 - - thumb_func_start sub_081A163C -sub_081A163C: @ 0x081A163C - bx r0 - .align 2, 0 -_081A1640: .4byte gUnknown_85DD244 -_081A1644: .4byte gUnknown_2037280 - thumb_func_end sub_081A163C - - thumb_func_start sub_081A1648 -sub_081A1648: @ 0x081A1648 - push {lr} - movs r0, #0x80 - lsls r0, r0, #7 - movs r1, #0xff - bl VarSet - ldr r0, _081A166C - ldr r0, [r0] - ldr r1, _081A1670 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #4 - bhi _081A16CA - lsls r0, r0, #2 - ldr r1, _081A1674 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081A166C: .4byte gUnknown_3005AF0 -_081A1670: .4byte 0x00000CA8 -_081A1674: .4byte _081A1678 -_081A1678: @ jump table - .4byte _081A16CA @ case 0 - .4byte _081A168C @ case 1 - .4byte _081A16B8 @ case 2 - .4byte _081A1694 @ case 3 - .4byte _081A1690 @ case 4 -_081A168C: - movs r0, #0 - b _081A1696 -_081A1690: - movs r0, #0 - b _081A1696 -_081A1694: - movs r0, #1 -_081A1696: - bl sub_0813A880 - movs r0, #0x80 - lsls r0, r0, #7 - ldr r1, _081A16B0 - ldr r1, [r1] - ldr r2, _081A16B4 - adds r1, r1, r2 - ldrb r1, [r1] - bl VarSet - b _081A16CA - .align 2, 0 -_081A16B0: .4byte gUnknown_3005AF0 -_081A16B4: .4byte 0x00000CA8 -_081A16B8: - movs r0, #0x80 - lsls r0, r0, #7 - ldr r1, _081A16D0 - ldr r1, [r1] - ldr r2, _081A16D4 - adds r1, r1, r2 - ldrb r1, [r1] - bl VarSet -_081A16CA: - pop {r0} - bx r0 - .align 2, 0 -_081A16D0: .4byte gUnknown_3005AF0 -_081A16D4: .4byte 0x00000CA8 - thumb_func_end sub_081A1648 - - thumb_func_start sub_081A16D8 -sub_081A16D8: @ 0x081A16D8 - push {r4, r5, r6, lr} - ldr r0, _081A1708 - bl VarGet - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r0, r6, #0 - bl GetPlayerSymbolCountForFacility - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #2 - bne _081A16F4 - movs r5, #1 -_081A16F4: - ldr r0, _081A170C - ldrh r0, [r0] - cmp r0, #7 - bls _081A16FE - b _081A17FE -_081A16FE: - lsls r0, r0, #2 - ldr r1, _081A1710 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081A1708: .4byte 0x000040CF -_081A170C: .4byte gUnknown_2037282 -_081A1710: .4byte _081A1714 -_081A1714: @ jump table - .4byte _081A1734 @ case 0 - .4byte _081A1750 @ case 1 - .4byte _081A1770 @ case 2 - .4byte _081A178C @ case 3 - .4byte _081A17FE @ case 4 - .4byte _081A17A8 @ case 5 - .4byte _081A17C0 @ case 6 - .4byte _081A17E0 @ case 7 -_081A1734: - ldr r1, _081A1744 - ldr r0, _081A1748 - ldr r0, [r0] - ldr r2, _081A174C - adds r0, r0, r2 - ldrb r0, [r0] - strh r0, [r1] - b _081A17FE - .align 2, 0 -_081A1744: .4byte gUnknown_2037290 -_081A1748: .4byte gUnknown_3005AF0 -_081A174C: .4byte 0x00000CA8 -_081A1750: - ldr r1, _081A1764 - ldr r0, _081A1768 - ldr r0, [r0] - ldr r2, _081A176C - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - strh r0, [r1] - b _081A17FE - .align 2, 0 -_081A1764: .4byte gUnknown_2037290 -_081A1768: .4byte gUnknown_3005AF0 -_081A176C: .4byte 0x00000CA9 -_081A1770: - ldr r1, _081A1780 - ldr r0, _081A1784 - ldr r0, [r0] - ldr r2, _081A1788 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r1] - b _081A17FE - .align 2, 0 -_081A1780: .4byte gUnknown_2037290 -_081A1784: .4byte gUnknown_3005AF0 -_081A1788: .4byte 0x00000CB2 -_081A178C: - ldr r1, _081A179C - ldr r0, _081A17A0 - ldr r0, [r0] - ldr r2, _081A17A4 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1d - b _081A17CE - .align 2, 0 -_081A179C: .4byte gUnknown_2037290 -_081A17A0: .4byte gUnknown_3005AF0 -_081A17A4: .4byte 0x00000CA9 -_081A17A8: - ldr r2, _081A17B8 - ldr r1, _081A17BC - ldrb r0, [r1] - strh r0, [r2] - movs r0, #0 - strb r0, [r1] - b _081A17FE - .align 2, 0 -_081A17B8: .4byte gUnknown_2037290 -_081A17BC: .4byte gUnknown_2023FDE -_081A17C0: - ldr r1, _081A17D4 - ldr r0, _081A17D8 - ldr r0, [r0] - ldr r2, _081A17DC - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1c -_081A17CE: - lsrs r0, r0, #0x1f - strh r0, [r1] - b _081A17FE - .align 2, 0 -_081A17D4: .4byte gUnknown_2037290 -_081A17D8: .4byte gUnknown_3005AF0 -_081A17DC: .4byte 0x00000CA9 -_081A17E0: - ldr r4, _081A1804 - ldr r0, _081A1808 - ldr r2, [r0] - movs r0, #0xd0 - lsls r0, r0, #4 - adds r2, r2, r0 - ldr r3, _081A180C - lsls r0, r5, #1 - lsls r1, r6, #2 - adds r0, r0, r1 - adds r0, r0, r3 - ldrh r1, [r2] - ldrh r0, [r0] - ands r0, r1 - strh r0, [r4] -_081A17FE: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081A1804: .4byte gUnknown_2037290 -_081A1808: .4byte gUnknown_3005AF0 -_081A180C: .4byte gUnknown_85DD228 - thumb_func_end sub_081A16D8 - - thumb_func_start sub_081A1810 -sub_081A1810: @ 0x081A1810 - push {r4, r5, lr} - ldr r0, _081A1840 - bl VarGet - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r5, #0 - bl GetPlayerSymbolCountForFacility - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #2 - bne _081A182C - movs r4, #1 -_081A182C: - ldr r0, _081A1844 - ldrh r0, [r0] - cmp r0, #7 - bls _081A1836 - b _081A196C -_081A1836: - lsls r0, r0, #2 - ldr r1, _081A1848 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081A1840: .4byte 0x000040CF -_081A1844: .4byte gUnknown_2037282 -_081A1848: .4byte _081A184C -_081A184C: @ jump table - .4byte _081A186C @ case 0 - .4byte _081A1888 @ case 1 - .4byte _081A18B4 @ case 2 - .4byte _081A18D0 @ case 3 - .4byte _081A18F8 @ case 4 - .4byte _081A196C @ case 5 - .4byte _081A1924 @ case 6 - .4byte _081A1950 @ case 7 -_081A186C: - ldr r0, _081A187C - ldr r0, [r0] - ldr r1, _081A1880 - ldrh r1, [r1] - ldr r2, _081A1884 - adds r0, r0, r2 - strb r1, [r0] - b _081A196C - .align 2, 0 -_081A187C: .4byte gUnknown_3005AF0 -_081A1880: .4byte gUnknown_2037284 -_081A1884: .4byte 0x00000CA8 -_081A1888: - ldr r0, _081A18A8 - ldr r2, [r0] - ldr r0, _081A18AC - ldrb r0, [r0] - ldr r1, _081A18B0 - adds r2, r2, r1 - movs r1, #3 - ands r1, r0 - ldrb r3, [r2] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - b _081A196C - .align 2, 0 -_081A18A8: .4byte gUnknown_3005AF0 -_081A18AC: .4byte gUnknown_2037284 -_081A18B0: .4byte 0x00000CA9 -_081A18B4: - ldr r0, _081A18C4 - ldr r0, [r0] - ldr r1, _081A18C8 - ldrh r1, [r1] - ldr r2, _081A18CC - adds r0, r0, r2 - strh r1, [r0] - b _081A196C - .align 2, 0 -_081A18C4: .4byte gUnknown_3005AF0 -_081A18C8: .4byte gUnknown_2037284 -_081A18CC: .4byte 0x00000CB2 -_081A18D0: - ldr r0, _081A18EC - ldr r3, [r0] - ldr r0, _081A18F0 - ldrb r0, [r0] - ldr r1, _081A18F4 - adds r3, r3, r1 - movs r1, #1 - ands r1, r0 - lsls r1, r1, #2 - ldrb r2, [r3] - movs r0, #5 - rsbs r0, r0, #0 - b _081A193C - .align 2, 0 -_081A18EC: .4byte gUnknown_3005AF0 -_081A18F0: .4byte gUnknown_2037284 -_081A18F4: .4byte 0x00000CA9 -_081A18F8: - movs r2, #0 - ldr r5, _081A1918 - ldr r4, _081A191C - ldr r3, _081A1920 -_081A1900: - ldr r1, [r5] - lsls r0, r2, #1 - adds r1, r1, r4 - adds r1, r1, r0 - adds r0, r2, r3 - ldrb r0, [r0] - strh r0, [r1] - adds r2, #1 - cmp r2, #3 - ble _081A1900 - b _081A196C - .align 2, 0 -_081A1918: .4byte gUnknown_3005AF0 -_081A191C: .4byte 0x00000CAA -_081A1920: .4byte gUnknown_203CBC4 -_081A1924: - ldr r0, _081A1944 - ldr r3, [r0] - ldr r0, _081A1948 - ldrb r0, [r0] - ldr r2, _081A194C - adds r3, r3, r2 - movs r1, #1 - ands r1, r0 - lsls r1, r1, #3 - ldrb r2, [r3] - movs r0, #9 - rsbs r0, r0, #0 -_081A193C: - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _081A196C - .align 2, 0 -_081A1944: .4byte gUnknown_3005AF0 -_081A1948: .4byte gUnknown_2037284 -_081A194C: .4byte 0x00000CA9 -_081A1950: - ldr r0, _081A1974 - ldr r2, [r0] - movs r0, #0xd0 - lsls r0, r0, #4 - adds r2, r2, r0 - ldr r3, _081A1978 - lsls r1, r4, #1 - lsls r0, r5, #2 - adds r1, r1, r0 - adds r1, r1, r3 - ldrh r0, [r2] - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r2] -_081A196C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081A1974: .4byte gUnknown_3005AF0 -_081A1978: .4byte gUnknown_85DD228 - thumb_func_end sub_081A1810 - - thumb_func_start sub_081A197C -sub_081A197C: @ 0x081A197C - push {r4, r5, r6, r7, lr} - bl sub_081B81F8 - movs r3, #0 - ldr r4, _081A19B4 - ldrh r0, [r4] - cmp r3, r0 - bge _081A19A8 - ldr r7, _081A19B8 - ldr r6, _081A19BC - ldr r5, _081A19C0 -_081A1992: - adds r2, r3, r7 - ldr r0, [r6] - lsls r1, r3, #1 - adds r0, r0, r5 - adds r0, r0, r1 - ldrh r0, [r0] - strb r0, [r2] - adds r3, #1 - ldrh r0, [r4] - cmp r3, r0 - blt _081A1992 -_081A19A8: - bl ReducePlayerPartyToSelectedMons - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A19B4: .4byte gUnknown_2037282 -_081A19B8: .4byte gUnknown_203CBC4 -_081A19BC: .4byte gUnknown_3005AF0 -_081A19C0: .4byte 0x00000CAA - thumb_func_end sub_081A197C - - thumb_func_start DoSoftReset_ -DoSoftReset_: @ 0x081A19C4 - push {lr} - bl DoSoftReset - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end DoSoftReset_ - - thumb_func_start sub_081A19D0 -sub_081A19D0: @ 0x081A19D0 - ldr r1, _081A19D8 - ldr r0, _081A19DC - str r0, [r1] - bx lr - .align 2, 0 -_081A19D8: .4byte gUnknown_203B954 -_081A19DC: .4byte gUnknown_85B4A10 - thumb_func_end sub_081A19D0 - - thumb_func_start sub_081A19E0 -sub_081A19E0: @ 0x081A19E0 - push {r4, r5, lr} - movs r4, #0 - movs r5, #0x64 -_081A19E6: - ldr r0, _081A1A30 - ldr r0, [r0] - lsls r1, r4, #1 - ldr r2, _081A1A34 - adds r0, r0, r2 - adds r1, r0, r1 - ldrh r0, [r1] - subs r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #5 - bhi _081A1A1E - ldr r0, _081A1A38 - ldr r0, [r0] - ldrh r1, [r1] - subs r1, #1 - muls r1, r5, r1 - adds r0, r0, r1 - movs r1, #0x8e - lsls r1, r1, #2 - adds r0, r0, r1 - ldr r2, _081A1A3C - adds r1, r4, #0 - muls r1, r5, r1 - adds r1, r1, r2 - movs r2, #0x64 - bl memcpy -_081A1A1E: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _081A19E6 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081A1A30: .4byte gUnknown_3005AF0 -_081A1A34: .4byte 0x00000CAA -_081A1A38: .4byte gUnknown_3005AEC -_081A1A3C: .4byte gUnknown_2024190 - thumb_func_end sub_081A19E0 - - thumb_func_start ShowFacilityResultsWindow -ShowFacilityResultsWindow: @ 0x081A1A40 - push {lr} - ldr r0, _081A1A64 - ldrh r1, [r0] - adds r2, r0, #0 - cmp r1, #3 - bls _081A1A50 - movs r0, #0 - strh r0, [r2] -_081A1A50: - ldr r0, _081A1A68 - ldrh r0, [r0] - cmp r0, #7 - bhi _081A1AC6 - lsls r0, r0, #2 - ldr r1, _081A1A6C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081A1A64: .4byte gUnknown_2037284 -_081A1A68: .4byte gUnknown_2037282 -_081A1A6C: .4byte _081A1A70 -_081A1A70: @ jump table - .4byte _081A1A90 @ case 0 - .4byte _081A1A98 @ case 1 - .4byte _081A1AA0 @ case 2 - .4byte _081A1AB6 @ case 3 - .4byte _081A1AAE @ case 4 - .4byte _081A1AA8 @ case 5 - .4byte _081A1ABC @ case 6 - .4byte _081A1AC2 @ case 7 -_081A1A90: - ldrb r0, [r2] - bl sub_081A1C9C - b _081A1AC6 -_081A1A98: - ldrb r0, [r2] - bl sub_081A1F30 - b _081A1AC6 -_081A1AA0: - ldrb r0, [r2] - bl sub_081A2250 - b _081A1AC6 -_081A1AA8: - bl sub_081A2490 - b _081A1AC6 -_081A1AAE: - ldrb r0, [r2] - bl ScriptCmd_end - b _081A1AC6 -_081A1AB6: - bl sub_081A2758 - b _081A1AC6 -_081A1ABC: - bl sub_081A2CFC - b _081A1AC6 -_081A1AC2: - bl sub_081A2DE4 -_081A1AC6: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ShowFacilityResultsWindow - - thumb_func_start sub_081A1ACC -sub_081A1ACC: @ 0x081A1ACC - push {lr} - ldr r1, _081A1AE4 - ldr r1, [r1] - ldr r2, _081A1AE8 - adds r1, r1, r2 - ldr r1, [r1] - ands r1, r0 - cmp r1, #0 - bne _081A1AEC - movs r0, #0 - b _081A1AEE - .align 2, 0 -_081A1AE4: .4byte gUnknown_3005AF0 -_081A1AE8: .4byte 0x00000CDC -_081A1AEC: - movs r0, #1 -_081A1AEE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081A1ACC - - thumb_func_start PrintLinkBattleRecord -PrintLinkBattleRecord: @ 0x081A1AF4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0xc - mov ip, r0 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r8, r2 - lsls r3, r3, #0x18 - ldr r0, _081A1B78 - mov sb, r0 - ldrb r0, [r0] - lsls r4, r2, #0x1b - lsrs r4, r4, #0x18 - lsrs r3, r3, #0x15 - adds r3, #2 - lsls r3, r3, #0x18 - lsrs r5, r3, #0x18 - str r5, [sp] - movs r7, #0 - str r7, [sp, #4] - str r7, [sp, #8] - movs r1, #1 - mov r2, ip - adds r3, r4, #0 - bl AddTextPrinterParameterized - ldr r0, _081A1B7C - cmp r6, r0 - bls _081A1B38 - adds r6, r0, #0 -_081A1B38: - ldr r0, _081A1B80 - adds r1, r6, #0 - movs r2, #1 - movs r3, #4 - bl sub_080089D8 - ldr r4, _081A1B84 - ldr r1, _081A1B88 - adds r0, r4, #0 - bl StringExpandPlaceholders - mov r1, sb - ldrb r0, [r1] - mov r3, r8 - adds r3, #6 - lsls r3, r3, #0x1b - lsrs r3, r3, #0x18 - str r5, [sp] - str r7, [sp, #4] - str r7, [sp, #8] - movs r1, #1 - adds r2, r4, #0 - bl AddTextPrinterParameterized - add sp, #0xc - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A1B78: .4byte gUnknown_203A840 -_081A1B7C: .4byte 0x0000270F -_081A1B80: .4byte gUnknown_2021C40 -_081A1B84: .4byte gUnknown_2021C7C -_081A1B88: .4byte gUnknown_85DD41D - thumb_func_end PrintLinkBattleRecord - - thumb_func_start sub_081A1B8C -sub_081A1B8C: @ 0x081A1B8C - push {r4, lr} - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r4, _081A1BBC - ldr r4, [r4] - lsrs r1, r1, #0x17 - lsrs r0, r0, #0x16 - adds r1, r1, r0 - movs r0, #0xcf - lsls r0, r0, #4 - adds r4, r4, r0 - adds r4, r4, r1 - ldrh r1, [r4] - ldr r0, _081A1BC0 - bl PrintLinkBattleRecord - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081A1BBC: .4byte gUnknown_3005AF0 -_081A1BC0: .4byte gUnknown_85DD42A - thumb_func_end sub_081A1B8C - - thumb_func_start TowerGetWinStreak -TowerGetWinStreak: @ 0x081A1BC4 - push {lr} - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - ldr r2, _081A1BEC - ldr r2, [r2] - lsrs r1, r1, #0x17 - lsrs r0, r0, #0x16 - adds r1, r1, r0 - movs r0, #0xce - lsls r0, r0, #4 - adds r2, r2, r0 - adds r2, r2, r1 - ldrh r0, [r2] - ldr r1, _081A1BF0 - cmp r0, r1 - bls _081A1BE6 - adds r0, r1, #0 -_081A1BE6: - pop {r1} - bx r1 - .align 2, 0 -_081A1BEC: .4byte gUnknown_3005AF0 -_081A1BF0: .4byte 0x0000270F - thumb_func_end TowerGetWinStreak - - thumb_func_start sub_081A1BF4 -sub_081A1BF4: @ 0x081A1BF4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r8, r3 - adds r0, r4, #0 - adds r1, r5, #0 - bl TowerGetWinStreak - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r4, #1 - beq _081A1C34 - cmp r4, #1 - ble _081A1C28 - cmp r4, #2 - beq _081A1C44 - cmp r4, #3 - beq _081A1C54 -_081A1C28: - cmp r5, #0 - beq _081A1C30 - movs r0, #2 - b _081A1C62 -_081A1C30: - movs r0, #1 - b _081A1C62 -_081A1C34: - cmp r5, #0 - beq _081A1C3E - movs r0, #0x80 - lsls r0, r0, #8 - b _081A1C62 -_081A1C3E: - movs r0, #0x80 - lsls r0, r0, #7 - b _081A1C62 -_081A1C44: - cmp r5, #0 - beq _081A1C4E - movs r0, #0x80 - lsls r0, r0, #0xa - b _081A1C62 -_081A1C4E: - movs r0, #0x80 - lsls r0, r0, #9 - b _081A1C62 -_081A1C54: - cmp r5, #0 - beq _081A1C5E - movs r0, #0x80 - lsls r0, r0, #0xc - b _081A1C62 -_081A1C5E: - movs r0, #0x80 - lsls r0, r0, #0xb -_081A1C62: - bl sub_081A1ACC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081A1C80 - ldr r0, _081A1C7C - adds r1, r6, #0 - adds r2, r7, #0 - mov r3, r8 - bl PrintLinkBattleRecord - b _081A1C8C - .align 2, 0 -_081A1C7C: .4byte gUnknown_85DD425 -_081A1C80: - ldr r0, _081A1C98 - adds r1, r6, #0 - adds r2, r7, #0 - mov r3, r8 - bl PrintLinkBattleRecord -_081A1C8C: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A1C98: .4byte gUnknown_85DD42F - thumb_func_end sub_081A1BF4 - - thumb_func_start sub_081A1C9C -sub_081A1C9C: @ 0x081A1C9C - push {r4, r5, r6, r7, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r4, _081A1CCC - ldr r0, _081A1CD0 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, #0 - bl sub_08196FF0 - ldrb r0, [r4] - movs r1, #0x11 - bl FillWindowPixelBuffer - cmp r6, #0 - bne _081A1CDC - ldr r0, _081A1CD4 - ldr r1, _081A1CD8 - bl StringExpandPlaceholders - b _081A1D14 - .align 2, 0 -_081A1CCC: .4byte gUnknown_203A840 -_081A1CD0: .4byte gUnknown_85DD2A0 -_081A1CD4: .4byte gUnknown_2021C7C -_081A1CD8: .4byte gUnknown_85DD2EC -_081A1CDC: - cmp r6, #1 - bne _081A1CF4 - ldr r0, _081A1CEC - ldr r1, _081A1CF0 - bl StringExpandPlaceholders - b _081A1D14 - .align 2, 0 -_081A1CEC: .4byte gUnknown_2021C7C -_081A1CF0: .4byte gUnknown_85DD303 -_081A1CF4: - cmp r6, #2 - bne _081A1D0C - ldr r0, _081A1D04 - ldr r1, _081A1D08 - bl StringExpandPlaceholders - b _081A1D14 - .align 2, 0 -_081A1D04: .4byte gUnknown_2021C7C -_081A1D08: .4byte gUnknown_85DD31A -_081A1D0C: - ldr r0, _081A1DC4 - ldr r1, _081A1DC8 - bl StringExpandPlaceholders -_081A1D14: - ldr r5, _081A1DCC - ldrb r0, [r5] - ldr r2, _081A1DC4 - movs r1, #0x12 - str r1, [sp] - movs r4, #0 - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #8 - bl AddTextPrinterParameterized - ldrb r0, [r5] - ldr r2, _081A1DD0 - movs r1, #0x32 - str r1, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #0x10 - bl AddTextPrinterParameterized - ldrb r0, [r5] - ldr r2, _081A1DD4 - movs r1, #0x62 - str r1, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #0x10 - bl AddTextPrinterParameterized - movs r5, #0 -_081A1D56: - ldr r7, _081A1DCC - ldrb r0, [r7] - lsls r3, r4, #1 - adds r3, r3, r4 - adds r3, #1 - lsls r3, r3, #0x1b - lsrs r3, r3, #0x18 - movs r1, #0x52 - str r1, [sp] - str r5, [sp, #4] - str r5, [sp, #8] - movs r1, #1 - ldr r2, _081A1DD8 - bl AddTextPrinterParameterized - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0xa - bls _081A1D56 - adds r0, r6, #0 - movs r1, #0 - movs r2, #0xb - movs r3, #6 - bl sub_081A1BF4 - adds r0, r6, #0 - movs r1, #0 - movs r2, #0xb - movs r3, #8 - bl sub_081A1B8C - adds r0, r6, #0 - movs r1, #1 - movs r2, #0xb - movs r3, #0xc - bl sub_081A1BF4 - adds r0, r6, #0 - movs r1, #1 - movs r2, #0xb - movs r3, #0xe - bl sub_081A1B8C - ldrb r0, [r7] - bl PutWindowTilemap - ldrb r0, [r7] - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A1DC4: .4byte gUnknown_2021C7C -_081A1DC8: .4byte gUnknown_85DD331 -_081A1DCC: .4byte gUnknown_203A840 -_081A1DD0: .4byte gUnknown_85DD40E -_081A1DD4: .4byte gUnknown_85DD415 -_081A1DD8: .4byte gUnknown_85DD2E8 - thumb_func_end sub_081A1C9C - - thumb_func_start sub_081A1DDC -sub_081A1DDC: @ 0x081A1DDC - push {lr} - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - ldr r2, _081A1E00 - ldr r2, [r2] - lsrs r1, r1, #0x17 - lsrs r0, r0, #0x16 - adds r1, r1, r0 - ldr r0, _081A1E04 - adds r2, r2, r0 - adds r2, r2, r1 - ldrh r0, [r2] - ldr r1, _081A1E08 - cmp r0, r1 - bls _081A1DFC - adds r0, r1, #0 -_081A1DFC: - pop {r1} - bx r1 - .align 2, 0 -_081A1E00: .4byte gUnknown_3005AF0 -_081A1E04: .4byte 0x00000D0C -_081A1E08: .4byte 0x0000270F - thumb_func_end sub_081A1DDC - - thumb_func_start sub_081A1E0C -sub_081A1E0C: @ 0x081A1E0C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - mov sl, r0 - adds r7, r1, #0 - adds r6, r2, #0 - adds r5, r3, #0 - ldr r4, [sp, #0x2c] - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r4, #0x18 - ldr r0, _081A1E94 - mov sb, r0 - ldrb r0, [r0] - lsls r3, r5, #0x1b - lsrs r3, r3, #0x18 - lsrs r4, r4, #0x15 - adds r4, #2 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp] - movs r1, #0 - mov r8, r1 - str r1, [sp, #4] - str r1, [sp, #8] - movs r1, #1 - mov r2, sl - bl AddTextPrinterParameterized - ldr r0, _081A1E98 - adds r1, r6, #0 - movs r2, #1 - movs r3, #4 - bl sub_080089D8 - ldr r6, _081A1E9C - adds r0, r6, #0 - adds r1, r7, #0 - bl StringExpandPlaceholders - mov r1, sb - ldrb r0, [r1] - adds r5, #5 - lsls r5, r5, #0x1b - lsrs r5, r5, #0x18 - str r4, [sp] - mov r1, r8 - str r1, [sp, #4] - str r1, [sp, #8] - movs r1, #1 - adds r2, r6, #0 - adds r3, r5, #0 - bl AddTextPrinterParameterized - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A1E94: .4byte gUnknown_203A840 -_081A1E98: .4byte gUnknown_2021C40 -_081A1E9C: .4byte gUnknown_2021C7C - thumb_func_end sub_081A1E0C - - thumb_func_start sub_081A1EA0 -sub_081A1EA0: @ 0x081A1EA0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r8, r2 - lsls r3, r3, #0x18 - lsrs r6, r3, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_081A1DDC - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - cmp r4, #0 - beq _081A1ECE - cmp r4, #1 - beq _081A1EDA -_081A1ECE: - cmp r5, #0 - beq _081A1ED6 - movs r0, #8 - b _081A1EE8 -_081A1ED6: - movs r0, #4 - b _081A1EE8 -_081A1EDA: - cmp r5, #0 - beq _081A1EE4 - movs r0, #0x80 - lsls r0, r0, #0xe - b _081A1EE8 -_081A1EE4: - movs r0, #0x80 - lsls r0, r0, #0xd -_081A1EE8: - bl sub_081A1ACC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081A1F0C - ldr r0, _081A1F04 - ldr r1, _081A1F08 - str r6, [sp] - adds r2, r7, #0 - mov r3, r8 - bl sub_081A1E0C - b _081A1F1A - .align 2, 0 -_081A1F04: .4byte gUnknown_85DD425 -_081A1F08: .4byte gUnknown_85DD447 -_081A1F0C: - ldr r0, _081A1F28 - ldr r1, _081A1F2C - str r6, [sp] - adds r2, r7, #0 - mov r3, r8 - bl sub_081A1E0C -_081A1F1A: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A1F28: .4byte gUnknown_85DD42F -_081A1F2C: .4byte gUnknown_85DD447 - thumb_func_end sub_081A1EA0 - - thumb_func_start sub_081A1F30 -sub_081A1F30: @ 0x081A1F30 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r4, _081A1F68 - ldr r0, _081A1F6C - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, #0 - bl sub_08196FF0 - ldrb r0, [r4] - movs r1, #0x11 - bl FillWindowPixelBuffer - cmp r6, #0 - bne _081A1F78 - ldr r0, _081A1F70 - ldr r1, _081A1F74 - bl StringExpandPlaceholders - b _081A1F80 - .align 2, 0 -_081A1F68: .4byte gUnknown_203A840 -_081A1F6C: .4byte gUnknown_85DD2A8 -_081A1F70: .4byte gUnknown_2021C7C -_081A1F74: .4byte gUnknown_85DD34A -_081A1F78: - ldr r0, _081A2094 - ldr r1, _081A2098 - bl StringExpandPlaceholders -_081A1F80: - ldr r5, _081A209C - ldrb r0, [r5] - ldr r2, _081A2094 - movs r1, #2 - str r1, [sp] - movs r4, #0 - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #8 - bl AddTextPrinterParameterized - ldrb r0, [r5] - ldr r2, _081A20A0 - movs r1, #0x22 - str r1, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #8 - bl AddTextPrinterParameterized - ldrb r0, [r5] - ldr r2, _081A20A4 - movs r1, #0x62 - str r1, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #8 - bl AddTextPrinterParameterized - lsls r7, r6, #2 - movs r5, #0 -_081A1FC4: - ldr r0, _081A209C - mov sl, r0 - ldrb r0, [r0] - lsls r3, r4, #1 - adds r3, r3, r4 - lsls r3, r3, #0x1b - lsrs r3, r3, #0x18 - movs r1, #0x52 - str r1, [sp] - str r5, [sp, #4] - str r5, [sp, #8] - movs r1, #1 - ldr r2, _081A20A8 - bl AddTextPrinterParameterized - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #9 - bls _081A1FC4 - adds r0, r6, #0 - movs r1, #0 - movs r2, #0xa - movs r3, #4 - bl sub_081A1EA0 - ldr r1, _081A20AC - mov r8, r1 - ldr r4, _081A20B0 - ldr r0, [r4] - ldr r1, _081A20B4 - adds r0, r0, r1 - adds r0, r0, r7 - ldrh r2, [r0] - movs r0, #6 - str r0, [sp] - mov r0, r8 - ldr r1, _081A20B8 - movs r3, #0xa - bl sub_081A1E0C - ldr r5, _081A20BC - ldr r0, _081A20C0 - mov sb, r0 - ldr r0, [r4] - ldr r1, _081A20C4 - adds r0, r0, r1 - adds r0, r0, r7 - ldrh r2, [r0] - movs r0, #8 - str r0, [sp] - adds r0, r5, #0 - mov r1, sb - movs r3, #0xa - bl sub_081A1E0C - adds r0, r6, #0 - movs r1, #1 - movs r2, #0xa - movs r3, #0xc - bl sub_081A1EA0 - ldr r0, [r4] - ldr r1, _081A20C8 - adds r0, r0, r1 - adds r0, r0, r7 - ldrh r2, [r0] - movs r0, #0xe - str r0, [sp] - mov r0, r8 - ldr r1, _081A20B8 - movs r3, #0xa - bl sub_081A1E0C - ldr r0, [r4] - ldr r1, _081A20CC - adds r0, r0, r1 - adds r0, r0, r7 - ldrh r2, [r0] - movs r0, #0x10 - str r0, [sp] - adds r0, r5, #0 - mov r1, sb - movs r3, #0xa - bl sub_081A1E0C - mov r1, sl - ldrb r0, [r1] - bl PutWindowTilemap - mov r1, sl - ldrb r0, [r1] - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A2094: .4byte gUnknown_2021C7C -_081A2098: .4byte gUnknown_85DD363 -_081A209C: .4byte gUnknown_203A840 -_081A20A0: .4byte gUnknown_85DD40E -_081A20A4: .4byte gUnknown_85DD415 -_081A20A8: .4byte gUnknown_85DD2E8 -_081A20AC: .4byte gUnknown_85DD42A -_081A20B0: .4byte gUnknown_3005AF0 -_081A20B4: .4byte 0x00000D14 -_081A20B8: .4byte gUnknown_85DD447 -_081A20BC: .4byte gUnknown_85DD442 -_081A20C0: .4byte gUnknown_85DD44D -_081A20C4: .4byte 0x00000D1C -_081A20C8: .4byte 0x00000D16 -_081A20CC: .4byte 0x00000D1E - thumb_func_end sub_081A1F30 - - thumb_func_start sub_081A20D0 -sub_081A20D0: @ 0x081A20D0 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0xc - mov ip, r0 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r8, r2 - lsls r3, r3, #0x18 - ldr r0, _081A2154 - mov sb, r0 - ldrb r0, [r0] - lsls r4, r2, #0x1b - lsrs r4, r4, #0x18 - lsrs r3, r3, #0x15 - adds r3, #2 - lsls r3, r3, #0x18 - lsrs r5, r3, #0x18 - str r5, [sp] - movs r7, #0 - str r7, [sp, #4] - str r7, [sp, #8] - movs r1, #1 - mov r2, ip - adds r3, r4, #0 - bl AddTextPrinterParameterized - ldr r0, _081A2158 - cmp r6, r0 - bls _081A2114 - adds r6, r0, #0 -_081A2114: - ldr r0, _081A215C - adds r1, r6, #0 - movs r2, #1 - movs r3, #4 - bl sub_080089D8 - ldr r4, _081A2160 - ldr r1, _081A2164 - adds r0, r4, #0 - bl StringExpandPlaceholders - mov r1, sb - ldrb r0, [r1] - mov r3, r8 - adds r3, #6 - lsls r3, r3, #0x1b - lsrs r3, r3, #0x18 - str r5, [sp] - str r7, [sp, #4] - str r7, [sp, #8] - movs r1, #1 - adds r2, r4, #0 - bl AddTextPrinterParameterized - add sp, #0xc - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A2154: .4byte gUnknown_203A840 -_081A2158: .4byte 0x0000270F -_081A215C: .4byte gUnknown_2021C40 -_081A2160: .4byte gUnknown_2021C7C -_081A2164: .4byte gUnknown_85DD41D - thumb_func_end sub_081A20D0 - - thumb_func_start sub_081A2168 -sub_081A2168: @ 0x081A2168 - push {r4, lr} - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r4, _081A2198 - ldr r4, [r4] - lsrs r1, r1, #0x17 - lsrs r0, r0, #0x16 - adds r1, r1, r0 - movs r0, #0xdd - lsls r0, r0, #4 - adds r4, r4, r0 - adds r4, r4, r1 - ldrh r1, [r4] - ldr r0, _081A219C - bl sub_081A20D0 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081A2198: .4byte gUnknown_3005AF0 -_081A219C: .4byte gUnknown_85DD42A - thumb_func_end sub_081A2168 - - thumb_func_start sub_081A21A0 -sub_081A21A0: @ 0x081A21A0 - push {lr} - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - ldr r2, _081A21C4 - ldr r2, [r2] - lsrs r1, r1, #0x17 - lsrs r0, r0, #0x16 - adds r1, r1, r0 - ldr r0, _081A21C8 - adds r2, r2, r0 - adds r2, r2, r1 - ldrh r0, [r2] - ldr r1, _081A21CC - cmp r0, r1 - bls _081A21C0 - adds r0, r1, #0 -_081A21C0: - pop {r1} - bx r1 - .align 2, 0 -_081A21C4: .4byte gUnknown_3005AF0 -_081A21C8: .4byte 0x00000DC8 -_081A21CC: .4byte 0x0000270F - thumb_func_end sub_081A21A0 - - thumb_func_start sub_081A21D0 -sub_081A21D0: @ 0x081A21D0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r8, r3 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_081A21A0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r4, #0 - beq _081A21FC - cmp r4, #1 - beq _081A2208 -_081A21FC: - cmp r5, #0 - beq _081A2204 - movs r0, #0x20 - b _081A2216 -_081A2204: - movs r0, #0x10 - b _081A2216 -_081A2208: - cmp r5, #0 - beq _081A2212 - movs r0, #0x80 - lsls r0, r0, #0x10 - b _081A2216 -_081A2212: - movs r0, #0x80 - lsls r0, r0, #0xf -_081A2216: - bl sub_081A1ACC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081A2234 - ldr r0, _081A2230 - adds r1, r6, #0 - adds r2, r7, #0 - mov r3, r8 - bl sub_081A20D0 - b _081A2240 - .align 2, 0 -_081A2230: .4byte gUnknown_85DD425 -_081A2234: - ldr r0, _081A224C - adds r1, r6, #0 - adds r2, r7, #0 - mov r3, r8 - bl sub_081A20D0 -_081A2240: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A224C: .4byte gUnknown_85DD42F - thumb_func_end sub_081A21D0 - - thumb_func_start sub_081A2250 -sub_081A2250: @ 0x081A2250 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r4, _081A2280 - ldr r0, _081A2284 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, #0 - bl sub_08196FF0 - ldrb r0, [r4] - movs r1, #0x11 - bl FillWindowPixelBuffer - cmp r7, #0 - bne _081A2290 - ldr r0, _081A2288 - ldr r1, _081A228C - bl StringExpandPlaceholders - b _081A2298 - .align 2, 0 -_081A2280: .4byte gUnknown_203A840 -_081A2284: .4byte gUnknown_85DD2B0 -_081A2288: .4byte gUnknown_2021C7C -_081A228C: .4byte gUnknown_85DD37B -_081A2290: - ldr r0, _081A2348 - ldr r1, _081A234C - bl StringExpandPlaceholders -_081A2298: - ldr r5, _081A2350 - ldrb r0, [r5] - ldr r2, _081A2348 - movs r1, #0x12 - str r1, [sp] - movs r4, #0 - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #0x10 - bl AddTextPrinterParameterized - ldrb r0, [r5] - ldr r2, _081A2354 - movs r1, #0x32 - str r1, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #0x10 - bl AddTextPrinterParameterized - ldrb r0, [r5] - ldr r2, _081A2358 - movs r1, #0x62 - str r1, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #0x10 - bl AddTextPrinterParameterized - movs r5, #0 -_081A22DA: - ldr r6, _081A2350 - ldrb r0, [r6] - lsls r3, r4, #1 - adds r3, r3, r4 - lsls r3, r3, #0x1b - lsrs r3, r3, #0x18 - movs r1, #0x52 - str r1, [sp] - str r5, [sp, #4] - str r5, [sp, #8] - movs r1, #1 - ldr r2, _081A235C - bl AddTextPrinterParameterized - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0xa - bls _081A22DA - adds r0, r7, #0 - movs r1, #0 - movs r2, #0xb - movs r3, #6 - bl sub_081A21D0 - adds r0, r7, #0 - movs r1, #0 - movs r2, #0xb - movs r3, #8 - bl sub_081A2168 - adds r0, r7, #0 - movs r1, #1 - movs r2, #0xb - movs r3, #0xc - bl sub_081A21D0 - adds r0, r7, #0 - movs r1, #1 - movs r2, #0xb - movs r3, #0xe - bl sub_081A2168 - ldrb r0, [r6] - bl PutWindowTilemap - ldrb r0, [r6] - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A2348: .4byte gUnknown_2021C7C -_081A234C: .4byte gUnknown_85DD391 -_081A2350: .4byte gUnknown_203A840 -_081A2354: .4byte gUnknown_85DD40E -_081A2358: .4byte gUnknown_85DD415 -_081A235C: .4byte gUnknown_85DD2E8 - thumb_func_end sub_081A2250 - - thumb_func_start sub_081A2360 -sub_081A2360: @ 0x081A2360 - push {lr} - lsls r0, r0, #0x18 - ldr r1, _081A2380 - ldr r1, [r1] - lsrs r0, r0, #0x17 - ldr r2, _081A2384 - adds r1, r1, r2 - adds r1, r1, r0 - ldrh r0, [r1] - ldr r1, _081A2388 - cmp r0, r1 - bls _081A237A - adds r0, r1, #0 -_081A237A: - pop {r1} - bx r1 - .align 2, 0 -_081A2380: .4byte gUnknown_3005AF0 -_081A2384: .4byte 0x00000E04 -_081A2388: .4byte 0x0000270F - thumb_func_end sub_081A2360 - - thumb_func_start sub_081A238C -sub_081A238C: @ 0x081A238C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - mov sl, r0 - adds r7, r1, #0 - adds r6, r2, #0 - adds r5, r3, #0 - ldr r4, [sp, #0x2c] - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r4, #0x18 - ldr r0, _081A2414 - mov sb, r0 - ldrb r0, [r0] - lsls r3, r5, #0x1b - lsrs r3, r3, #0x18 - lsrs r4, r4, #0x15 - adds r4, #2 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp] - movs r1, #0 - mov r8, r1 - str r1, [sp, #4] - str r1, [sp, #8] - movs r1, #1 - mov r2, sl - bl AddTextPrinterParameterized - ldr r0, _081A2418 - adds r1, r6, #0 - movs r2, #1 - movs r3, #4 - bl sub_080089D8 - ldr r6, _081A241C - adds r0, r6, #0 - adds r1, r7, #0 - bl StringExpandPlaceholders - mov r1, sb - ldrb r0, [r1] - adds r5, #5 - lsls r5, r5, #0x1b - lsrs r5, r5, #0x18 - str r4, [sp] - mov r1, r8 - str r1, [sp, #4] - str r1, [sp, #8] - movs r1, #1 - adds r2, r6, #0 - adds r3, r5, #0 - bl AddTextPrinterParameterized - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A2414: .4byte gUnknown_203A840 -_081A2418: .4byte gUnknown_2021C40 -_081A241C: .4byte gUnknown_2021C7C - thumb_func_end sub_081A238C - - thumb_func_start sub_081A2420 -sub_081A2420: @ 0x081A2420 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - adds r0, r4, #0 - bl sub_081A2360 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r4, #0 - beq _081A2446 - movs r0, #0x80 - lsls r0, r0, #4 - b _081A244A -_081A2446: - movs r0, #0x80 - lsls r0, r0, #3 -_081A244A: - bl sub_081A1ACC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081A2470 - ldr r0, _081A2468 - ldr r1, _081A246C - str r5, [sp] - adds r2, r6, #0 - adds r3, r7, #0 - bl sub_081A1E0C - b _081A247E - .align 2, 0 -_081A2468: .4byte gUnknown_85DD425 -_081A246C: .4byte gUnknown_85DD458 -_081A2470: - ldr r0, _081A2488 - ldr r1, _081A248C - str r5, [sp] - adds r2, r6, #0 - adds r3, r7, #0 - bl sub_081A1E0C -_081A247E: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A2488: .4byte gUnknown_85DD42F -_081A248C: .4byte gUnknown_85DD458 - thumb_func_end sub_081A2420 - - thumb_func_start sub_081A2490 -sub_081A2490: @ 0x081A2490 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0xc - ldr r5, _081A25BC - ldr r0, _081A25C0 - bl AddWindow - strb r0, [r5] - ldrb r0, [r5] - movs r1, #0 - bl sub_08196FF0 - ldrb r0, [r5] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r6, _081A25C4 - ldr r1, _081A25C8 - adds r0, r6, #0 - bl StringExpandPlaceholders - ldrb r0, [r5] - movs r1, #2 - str r1, [sp] - movs r4, #0 - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - adds r2, r6, #0 - movs r3, #0x28 - bl AddTextPrinterParameterized - ldrb r0, [r5] - ldr r2, _081A25CC - movs r1, #0x22 - str r1, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #8 - bl AddTextPrinterParameterized - ldrb r0, [r5] - ldr r2, _081A25D0 - movs r1, #0x62 - str r1, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #8 - bl AddTextPrinterParameterized - movs r5, #0 -_081A24FE: - ldr r7, _081A25BC - ldrb r0, [r7] - lsls r3, r4, #1 - adds r3, r3, r4 - lsls r3, r3, #0x1b - lsrs r3, r3, #0x18 - movs r1, #0x52 - str r1, [sp] - str r5, [sp, #4] - str r5, [sp, #8] - movs r1, #1 - ldr r2, _081A25D4 - bl AddTextPrinterParameterized - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0xa - bls _081A24FE - movs r0, #0 - movs r1, #0xb - movs r2, #4 - bl sub_081A2420 - ldr r0, _081A25D8 - mov r8, r0 - ldr r1, _081A25DC - mov sb, r1 - ldr r4, _081A25E0 - ldr r0, [r4] - ldr r1, _081A25E4 - adds r0, r0, r1 - ldrh r2, [r0] - movs r0, #6 - str r0, [sp] - mov r0, r8 - mov r1, sb - movs r3, #0xb - bl sub_081A238C - ldr r5, _081A25E8 - ldr r6, _081A25EC - ldr r0, [r4] - ldr r1, _081A25F0 - adds r0, r0, r1 - ldrh r2, [r0] - movs r0, #8 - str r0, [sp] - adds r0, r5, #0 - adds r1, r6, #0 - movs r3, #0xb - bl sub_081A238C - movs r0, #1 - movs r1, #0xb - movs r2, #0xc - bl sub_081A2420 - ldr r0, [r4] - ldr r1, _081A25F4 - adds r0, r0, r1 - ldrh r2, [r0] - movs r0, #0xe - str r0, [sp] - mov r0, r8 - mov r1, sb - movs r3, #0xb - bl sub_081A238C - ldr r0, [r4] - ldr r1, _081A25F8 - adds r0, r0, r1 - ldrh r2, [r0] - movs r0, #0x10 - str r0, [sp] - adds r0, r5, #0 - adds r1, r6, #0 - movs r3, #0xb - bl sub_081A238C - ldrb r0, [r7] - bl PutWindowTilemap - ldrb r0, [r7] - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A25BC: .4byte gUnknown_203A840 -_081A25C0: .4byte gUnknown_85DD2B8 -_081A25C4: .4byte gUnknown_2021C7C -_081A25C8: .4byte gUnknown_85DD3A6 -_081A25CC: .4byte gUnknown_85DD40E -_081A25D0: .4byte gUnknown_85DD415 -_081A25D4: .4byte gUnknown_85DD2E8 -_081A25D8: .4byte gUnknown_85DD42A -_081A25DC: .4byte gUnknown_85DD458 -_081A25E0: .4byte gUnknown_3005AF0 -_081A25E4: .4byte 0x00000E08 -_081A25E8: .4byte gUnknown_85DD442 -_081A25EC: .4byte gUnknown_85DD461 -_081A25F0: .4byte 0x00000E0C -_081A25F4: .4byte 0x00000E0A -_081A25F8: .4byte 0x00000E0E - thumb_func_end sub_081A2490 - - thumb_func_start sub_081A25FC -sub_081A25FC: @ 0x081A25FC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0xc - mov ip, r0 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r8, r2 - lsls r3, r3, #0x18 - ldr r0, _081A2684 - mov sb, r0 - ldrb r0, [r0] - lsls r4, r2, #0x1b - lsrs r4, r4, #0x18 - lsrs r3, r3, #0x15 - adds r3, #2 - lsls r3, r3, #0x18 - lsrs r5, r3, #0x18 - str r5, [sp] - movs r7, #0 - str r7, [sp, #4] - str r7, [sp, #8] - movs r1, #1 - mov r2, ip - adds r3, r4, #0 - bl AddTextPrinterParameterized - ldr r0, _081A2688 - cmp r6, r0 - bls _081A2640 - adds r6, r0, #0 -_081A2640: - ldr r0, _081A268C - adds r1, r6, #0 - movs r2, #1 - movs r3, #4 - bl sub_080089D8 - ldr r4, _081A2690 - ldr r1, _081A2694 - adds r0, r4, #0 - bl StringExpandPlaceholders - mov r1, sb - ldrb r0, [r1] - mov r1, r8 - lsls r3, r1, #0x1b - movs r1, #0xc0 - lsls r1, r1, #0x16 - adds r3, r3, r1 - lsrs r3, r3, #0x18 - str r5, [sp] - str r7, [sp, #4] - str r7, [sp, #8] - movs r1, #1 - adds r2, r4, #0 - bl AddTextPrinterParameterized - add sp, #0xc - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A2684: .4byte gUnknown_203A840 -_081A2688: .4byte 0x0000270F -_081A268C: .4byte gUnknown_2021C40 -_081A2690: .4byte gUnknown_2021C7C -_081A2694: .4byte gUnknown_85DD46A - thumb_func_end sub_081A25FC - - thumb_func_start sub_081A2698 -sub_081A2698: @ 0x081A2698 - push {r4, lr} - adds r4, r1, #0 - adds r3, r2, #0 - lsls r0, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r1, _081A26C4 - ldr r1, [r1] - lsrs r0, r0, #0x17 - ldr r2, _081A26C8 - adds r1, r1, r2 - adds r1, r1, r0 - ldrh r1, [r1] - ldr r0, _081A26CC - adds r2, r4, #0 - bl sub_081A25FC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081A26C4: .4byte gUnknown_3005AF0 -_081A26C8: .4byte 0x00000DDE -_081A26CC: .4byte gUnknown_85DD42A - thumb_func_end sub_081A2698 - - thumb_func_start sub_081A26D0 -sub_081A26D0: @ 0x081A26D0 - push {lr} - lsls r0, r0, #0x18 - ldr r1, _081A26F0 - ldr r1, [r1] - lsrs r0, r0, #0x17 - ldr r2, _081A26F4 - adds r1, r1, r2 - adds r1, r1, r0 - ldrh r0, [r1] - ldr r1, _081A26F8 - cmp r0, r1 - bls _081A26EA - adds r0, r1, #0 -_081A26EA: - pop {r1} - bx r1 - .align 2, 0 -_081A26F0: .4byte gUnknown_3005AF0 -_081A26F4: .4byte 0x00000DDA -_081A26F8: .4byte 0x0000270F - thumb_func_end sub_081A26D0 - - thumb_func_start sub_081A26FC -sub_081A26FC: @ 0x081A26FC - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - adds r0, r4, #0 - bl sub_081A26D0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r4, #0 - beq _081A271E - movs r0, #0x80 - b _081A2720 -_081A271E: - movs r0, #0x40 -_081A2720: - bl sub_081A1ACC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081A2740 - ldr r0, _081A273C - adds r1, r5, #0 - adds r2, r6, #0 - adds r3, r7, #0 - bl sub_081A25FC - b _081A274C - .align 2, 0 -_081A273C: .4byte gUnknown_85DD425 -_081A2740: - ldr r0, _081A2754 - adds r1, r5, #0 - adds r2, r6, #0 - adds r3, r7, #0 - bl sub_081A25FC -_081A274C: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A2754: .4byte gUnknown_85DD42F - thumb_func_end sub_081A26FC - - thumb_func_start sub_081A2758 -sub_081A2758: @ 0x081A2758 - push {r4, r5, r6, lr} - sub sp, #0xc - ldr r4, _081A2828 - ldr r0, _081A282C - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, #0 - bl sub_08196FF0 - ldrb r0, [r4] - movs r1, #0x11 - bl FillWindowPixelBuffer - movs r4, #0 - movs r5, #0 -_081A277A: - ldr r6, _081A2828 - ldrb r0, [r6] - lsls r3, r4, #1 - adds r3, r3, r4 - lsls r3, r3, #0x1b - lsrs r3, r3, #0x18 - movs r1, #0x52 - str r1, [sp] - str r5, [sp, #4] - str r5, [sp, #8] - movs r1, #1 - ldr r2, _081A2830 - bl AddTextPrinterParameterized - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #9 - bls _081A277A - ldr r5, _081A2834 - ldr r1, _081A2838 - adds r0, r5, #0 - bl StringExpandPlaceholders - ldrb r0, [r6] - movs r1, #0x10 - str r1, [sp] - movs r4, #0 - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - adds r2, r5, #0 - movs r3, #0x10 - bl AddTextPrinterParameterized - ldrb r0, [r6] - ldr r2, _081A283C - movs r1, #0x30 - str r1, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #0x10 - bl AddTextPrinterParameterized - ldrb r0, [r6] - ldr r2, _081A2840 - movs r1, #0x60 - str r1, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #0x10 - bl AddTextPrinterParameterized - movs r0, #0 - movs r1, #0xb - movs r2, #6 - bl sub_081A26FC - movs r0, #0 - movs r1, #0xb - movs r2, #8 - bl sub_081A2698 - movs r0, #1 - movs r1, #0xb - movs r2, #0xc - bl sub_081A26FC - movs r0, #1 - movs r1, #0xb - movs r2, #0xe - bl sub_081A2698 - ldrb r0, [r6] - bl PutWindowTilemap - ldrb r0, [r6] - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081A2828: .4byte gUnknown_203A840 -_081A282C: .4byte gUnknown_85DD2C0 -_081A2830: .4byte gUnknown_85DD2E8 -_081A2834: .4byte gUnknown_2021C7C -_081A2838: .4byte gUnknown_85DD3B7 -_081A283C: .4byte gUnknown_85DD40E -_081A2840: .4byte gUnknown_85DD415 - thumb_func_end sub_081A2758 - - thumb_func_start sub_081A2844 -sub_081A2844: @ 0x081A2844 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - mov ip, r0 - ldr r4, [sp, #0x30] - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - str r2, [sp, #0xc] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r5, r3, #0 - lsls r4, r4, #0x18 - ldr r0, _081A290C - mov sb, r0 - ldrb r0, [r0] - lsls r3, r5, #0x1b - lsrs r3, r3, #0x18 - lsrs r4, r4, #0x15 - adds r4, #2 - lsls r4, r4, #0x18 - lsrs r7, r4, #0x18 - str r7, [sp] - movs r1, #0 - mov r8, r1 - str r1, [sp, #4] - str r1, [sp, #8] - movs r1, #1 - mov r2, ip - bl AddTextPrinterParameterized - ldr r0, _081A2910 - cmp r6, r0 - bls _081A2892 - adds r6, r0, #0 -_081A2892: - ldr r0, _081A2914 - mov sl, r0 - adds r1, r6, #0 - movs r2, #1 - movs r3, #4 - bl sub_080089D8 - ldr r4, _081A2918 - ldr r1, _081A291C - adds r0, r4, #0 - bl StringExpandPlaceholders - mov r1, sb - ldrb r0, [r1] - lsls r3, r5, #0x1b - movs r1, #0xc0 - lsls r1, r1, #0x16 - adds r3, r3, r1 - lsrs r3, r3, #0x18 - str r7, [sp] - mov r1, r8 - str r1, [sp, #4] - str r1, [sp, #8] - movs r1, #1 - adds r2, r4, #0 - bl AddTextPrinterParameterized - mov r0, sl - ldr r1, [sp, #0xc] - movs r2, #1 - movs r3, #4 - bl sub_080089D8 - ldr r1, _081A2920 - adds r0, r4, #0 - bl StringExpandPlaceholders - mov r1, sb - ldrb r0, [r1] - lsls r3, r5, #0x1b - movs r1, #0x98 - lsls r1, r1, #0x18 - adds r3, r3, r1 - lsrs r3, r3, #0x18 - str r7, [sp] - mov r1, r8 - str r1, [sp, #4] - str r1, [sp, #8] - movs r1, #1 - adds r2, r4, #0 - bl AddTextPrinterParameterized - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A290C: .4byte gUnknown_203A840 -_081A2910: .4byte 0x0000270F -_081A2914: .4byte gUnknown_2021C40 -_081A2918: .4byte gUnknown_2021C7C -_081A291C: .4byte gUnknown_85DD41D -_081A2920: .4byte gUnknown_85DD471 - thumb_func_end sub_081A2844 - - thumb_func_start sub_081A2924 -sub_081A2924: @ 0x081A2924 - push {r4, r5, lr} - sub sp, #4 - adds r4, r2, #0 - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r2, _081A2964 - ldr r2, [r2] - lsrs r1, r1, #0x17 - lsrs r0, r0, #0x16 - adds r1, r1, r0 - ldr r5, _081A2968 - adds r0, r2, r5 - adds r0, r0, r1 - ldrh r5, [r0] - ldr r0, _081A296C - adds r2, r2, r0 - adds r2, r2, r1 - ldrh r2, [r2] - ldr r0, _081A2970 - str r3, [sp] - adds r1, r5, #0 - adds r3, r4, #0 - bl sub_081A2844 - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081A2964: .4byte gUnknown_3005AF0 -_081A2968: .4byte 0x00000DEA -_081A296C: .4byte 0x00000DFA -_081A2970: .4byte gUnknown_85DD42A - thumb_func_end sub_081A2924 - - thumb_func_start sub_081A2974 -sub_081A2974: @ 0x081A2974 - push {lr} - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - ldr r2, _081A2998 - ldr r2, [r2] - lsrs r1, r1, #0x17 - lsrs r0, r0, #0x16 - adds r1, r1, r0 - ldr r0, _081A299C - adds r2, r2, r0 - adds r2, r2, r1 - ldrh r0, [r2] - ldr r1, _081A29A0 - cmp r0, r1 - bls _081A2994 - adds r0, r1, #0 -_081A2994: - pop {r1} - bx r1 - .align 2, 0 -_081A2998: .4byte gUnknown_3005AF0 -_081A299C: .4byte 0x00000DE2 -_081A29A0: .4byte 0x0000270F - thumb_func_end sub_081A2974 - - thumb_func_start sub_081A29A4 -sub_081A29A4: @ 0x081A29A4 - push {lr} - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - ldr r2, _081A29C8 - ldr r2, [r2] - lsrs r1, r1, #0x17 - lsrs r0, r0, #0x16 - adds r1, r1, r0 - ldr r0, _081A29CC - adds r2, r2, r0 - adds r2, r2, r1 - ldrh r0, [r2] - ldr r1, _081A29D0 - cmp r0, r1 - bls _081A29C4 - adds r0, r1, #0 -_081A29C4: - pop {r1} - bx r1 - .align 2, 0 -_081A29C8: .4byte gUnknown_3005AF0 -_081A29CC: .4byte 0x00000DF2 -_081A29D0: .4byte 0x0000270F - thumb_func_end sub_081A29A4 - - thumb_func_start sub_081A29D4 -sub_081A29D4: @ 0x081A29D4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sb, r2 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r8, r3 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_081A2974 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_081A29A4 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r4, #0 - beq _081A2A12 - cmp r4, #1 - beq _081A2A22 -_081A2A12: - cmp r5, #0 - beq _081A2A1C - movs r0, #0x80 - lsls r0, r0, #2 - b _081A2A30 -_081A2A1C: - movs r0, #0x80 - lsls r0, r0, #1 - b _081A2A30 -_081A2A22: - cmp r5, #0 - beq _081A2A2C - movs r0, #0x80 - lsls r0, r0, #0x12 - b _081A2A30 -_081A2A2C: - movs r0, #0x80 - lsls r0, r0, #0x11 -_081A2A30: - bl sub_081A1ACC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081A2A54 - ldr r0, _081A2A50 - mov r1, r8 - str r1, [sp] - adds r1, r7, #0 - adds r2, r6, #0 - mov r3, sb - bl sub_081A2844 - b _081A2A64 - .align 2, 0 -_081A2A50: .4byte gUnknown_85DD425 -_081A2A54: - ldr r0, _081A2A74 - mov r1, r8 - str r1, [sp] - adds r1, r7, #0 - adds r2, r6, #0 - mov r3, sb - bl sub_081A2844 -_081A2A64: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A2A74: .4byte gUnknown_85DD42F - thumb_func_end sub_081A29D4 - - thumb_func_start ScriptCmd_end -ScriptCmd_end: @ 0x081A2A78 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r4, _081A2AA8 - ldr r0, _081A2AAC - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, #0 - bl sub_08196FF0 - ldrb r0, [r4] - movs r1, #0x11 - bl FillWindowPixelBuffer - cmp r7, #0 - bne _081A2AB8 - ldr r0, _081A2AB0 - ldr r1, _081A2AB4 - bl StringExpandPlaceholders - b _081A2AC0 - .align 2, 0 -_081A2AA8: .4byte gUnknown_203A840 -_081A2AAC: .4byte gUnknown_85DD2C8 -_081A2AB0: .4byte gUnknown_2021C7C -_081A2AB4: .4byte gUnknown_85DD3CC -_081A2AB8: - ldr r0, _081A2B80 - ldr r1, _081A2B84 - bl StringExpandPlaceholders -_081A2AC0: - ldr r5, _081A2B88 - ldrb r0, [r5] - ldr r2, _081A2B80 - movs r1, #2 - str r1, [sp] - movs r4, #0 - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #8 - bl AddTextPrinterParameterized - ldrb r0, [r5] - ldr r2, _081A2B8C - movs r6, #0x22 - str r6, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #8 - bl AddTextPrinterParameterized - ldrb r0, [r5] - ldr r2, _081A2B90 - str r6, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #0x80 - bl AddTextPrinterParameterized - ldrb r0, [r5] - ldr r2, _081A2B94 - movs r1, #0x62 - str r1, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #8 - bl AddTextPrinterParameterized - movs r5, #0 -_081A2B14: - ldr r6, _081A2B88 - ldrb r0, [r6] - lsls r3, r4, #1 - adds r3, r3, r4 - lsls r3, r3, #0x1b - lsrs r3, r3, #0x18 - movs r1, #0x52 - str r1, [sp] - str r5, [sp, #4] - str r5, [sp, #8] - movs r1, #1 - ldr r2, _081A2B98 - bl AddTextPrinterParameterized - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #9 - bls _081A2B14 - adds r0, r7, #0 - movs r1, #0 - movs r2, #1 - movs r3, #6 - bl sub_081A29D4 - adds r0, r7, #0 - movs r1, #0 - movs r2, #1 - movs r3, #8 - bl sub_081A2924 - adds r0, r7, #0 - movs r1, #1 - movs r2, #1 - movs r3, #0xe - bl sub_081A29D4 - adds r0, r7, #0 - movs r1, #1 - movs r2, #1 - movs r3, #0x10 - bl sub_081A2924 - ldrb r0, [r6] - bl PutWindowTilemap - ldrb r0, [r6] - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A2B80: .4byte gUnknown_2021C7C -_081A2B84: .4byte gUnknown_85DD3E3 -_081A2B88: .4byte gUnknown_203A840 -_081A2B8C: .4byte gUnknown_85DD40E -_081A2B90: .4byte gUnknown_85DD438 -_081A2B94: .4byte gUnknown_85DD415 -_081A2B98: .4byte gUnknown_85DD2E8 - thumb_func_end ScriptCmd_end - - thumb_func_start sub_081A2B9C -sub_081A2B9C: @ 0x081A2B9C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0xc - mov ip, r0 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r8, r2 - lsls r3, r3, #0x18 - ldr r0, _081A2C24 - mov sb, r0 - ldrb r0, [r0] - lsls r4, r2, #0x1b - lsrs r4, r4, #0x18 - lsrs r3, r3, #0x15 - adds r3, #2 - lsls r3, r3, #0x18 - lsrs r5, r3, #0x18 - str r5, [sp] - movs r7, #0 - str r7, [sp, #4] - str r7, [sp, #8] - movs r1, #1 - mov r2, ip - adds r3, r4, #0 - bl AddTextPrinterParameterized - ldr r0, _081A2C28 - cmp r6, r0 - bls _081A2BE0 - adds r6, r0, #0 -_081A2BE0: - ldr r0, _081A2C2C - adds r1, r6, #0 - movs r2, #1 - movs r3, #4 - bl sub_080089D8 - ldr r4, _081A2C30 - ldr r1, _081A2C34 - adds r0, r4, #0 - bl StringExpandPlaceholders - mov r1, sb - ldrb r0, [r1] - mov r1, r8 - lsls r3, r1, #0x1b - movs r1, #0xc0 - lsls r1, r1, #0x16 - adds r3, r3, r1 - lsrs r3, r3, #0x18 - str r5, [sp] - str r7, [sp, #4] - str r7, [sp, #8] - movs r1, #1 - adds r2, r4, #0 - bl AddTextPrinterParameterized - add sp, #0xc - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A2C24: .4byte gUnknown_203A840 -_081A2C28: .4byte 0x0000270F -_081A2C2C: .4byte gUnknown_2021C40 -_081A2C30: .4byte gUnknown_2021C7C -_081A2C34: .4byte gUnknown_85DD476 - thumb_func_end sub_081A2B9C - - thumb_func_start sub_081A2C38 -sub_081A2C38: @ 0x081A2C38 - push {r4, lr} - adds r4, r1, #0 - adds r3, r2, #0 - lsls r0, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r1, _081A2C64 - ldr r1, [r1] - lsrs r0, r0, #0x17 - ldr r2, _081A2C68 - adds r1, r1, r2 - adds r1, r1, r0 - ldrh r1, [r1] - ldr r0, _081A2C6C - adds r2, r4, #0 - bl sub_081A2B9C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081A2C64: .4byte gUnknown_3005AF0 -_081A2C68: .4byte 0x00000E1E -_081A2C6C: .4byte gUnknown_85DD42A - thumb_func_end sub_081A2C38 - - thumb_func_start sub_081A2C70 -sub_081A2C70: @ 0x081A2C70 - push {lr} - lsls r0, r0, #0x18 - ldr r1, _081A2C90 - ldr r1, [r1] - lsrs r0, r0, #0x17 - ldr r2, _081A2C94 - adds r1, r1, r2 - adds r1, r1, r0 - ldrh r0, [r1] - ldr r1, _081A2C98 - cmp r0, r1 - bls _081A2C8A - adds r0, r1, #0 -_081A2C8A: - pop {r1} - bx r1 - .align 2, 0 -_081A2C90: .4byte gUnknown_3005AF0 -_081A2C94: .4byte 0x00000E1A -_081A2C98: .4byte 0x0000270F - thumb_func_end sub_081A2C70 - - thumb_func_start sub_081A2C9C -sub_081A2C9C: @ 0x081A2C9C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - adds r0, r4, #0 - bl sub_081A2C70 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r4, #0 - beq _081A2CC0 - movs r0, #0x80 - lsls r0, r0, #6 - b _081A2CC4 -_081A2CC0: - movs r0, #0x80 - lsls r0, r0, #5 -_081A2CC4: - bl sub_081A1ACC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081A2CE4 - ldr r0, _081A2CE0 - adds r1, r5, #0 - adds r2, r6, #0 - adds r3, r7, #0 - bl sub_081A2B9C - b _081A2CF0 - .align 2, 0 -_081A2CE0: .4byte gUnknown_85DD425 -_081A2CE4: - ldr r0, _081A2CF8 - adds r1, r5, #0 - adds r2, r6, #0 - adds r3, r7, #0 - bl sub_081A2B9C -_081A2CF0: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A2CF8: .4byte gUnknown_85DD42F - thumb_func_end sub_081A2C9C - - thumb_func_start sub_081A2CFC -sub_081A2CFC: @ 0x081A2CFC - push {r4, r5, r6, lr} - sub sp, #0xc - ldr r5, _081A2DC8 - ldr r0, _081A2DCC - bl AddWindow - strb r0, [r5] - ldrb r0, [r5] - movs r1, #0 - bl sub_08196FF0 - ldrb r0, [r5] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r6, _081A2DD0 - ldr r1, _081A2DD4 - adds r0, r6, #0 - bl StringExpandPlaceholders - ldrb r0, [r5] - movs r1, #0x12 - str r1, [sp] - movs r4, #0 - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - adds r2, r6, #0 - movs r3, #0x18 - bl AddTextPrinterParameterized - ldrb r0, [r5] - ldr r2, _081A2DD8 - movs r1, #0x32 - str r1, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #0x10 - bl AddTextPrinterParameterized - ldrb r0, [r5] - ldr r2, _081A2DDC - movs r1, #0x62 - str r1, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #0x10 - bl AddTextPrinterParameterized - movs r5, #0 -_081A2D64: - ldr r6, _081A2DC8 - ldrb r0, [r6] - lsls r3, r4, #1 - adds r3, r3, r4 - lsls r3, r3, #0x1b - lsrs r3, r3, #0x18 - movs r1, #0x52 - str r1, [sp] - str r5, [sp, #4] - str r5, [sp, #8] - movs r1, #1 - ldr r2, _081A2DE0 - bl AddTextPrinterParameterized - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0xa - bls _081A2D64 - movs r0, #0 - movs r1, #0xa - movs r2, #6 - bl sub_081A2C9C - movs r0, #0 - movs r1, #0xa - movs r2, #8 - bl sub_081A2C38 - movs r0, #1 - movs r1, #0xa - movs r2, #0xc - bl sub_081A2C9C - movs r0, #1 - movs r1, #0xa - movs r2, #0xe - bl sub_081A2C38 - ldrb r0, [r6] - bl PutWindowTilemap - ldrb r0, [r6] - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081A2DC8: .4byte gUnknown_203A840 -_081A2DCC: .4byte gUnknown_85DD2D0 -_081A2DD0: .4byte gUnknown_2021C7C -_081A2DD4: .4byte gUnknown_85DD3F9 -_081A2DD8: .4byte gUnknown_85DD40E -_081A2DDC: .4byte gUnknown_85DD415 -_081A2DE0: .4byte gUnknown_85DD2E8 - thumb_func_end sub_081A2CFC - - thumb_func_start sub_081A2DE4 -sub_081A2DE4: @ 0x081A2DE4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - ldr r5, _081A2F54 - ldr r0, _081A2F58 - bl AddWindow - strb r0, [r5] - ldrb r0, [r5] - movs r1, #0 - bl sub_08196FF0 - ldrb r0, [r5] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r0, _081A2F5C - mov r8, r0 - ldr r1, _081A2F60 - bl StringExpandPlaceholders - ldrb r0, [r5] - movs r4, #0 - str r4, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - mov r2, r8 - movs r3, #0x10 - bl AddTextPrinterParameterized - ldrb r0, [r5] - ldr r2, _081A2F64 - movs r6, #0x20 - str r6, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #0x48 - bl AddTextPrinterParameterized - ldrb r0, [r5] - ldr r2, _081A2F68 - str r6, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #0x70 - bl AddTextPrinterParameterized - ldrb r0, [r5] - ldr r2, _081A2F6C - str r6, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #0x98 - bl AddTextPrinterParameterized - ldrb r0, [r5] - ldr r2, _081A2F70 - str r6, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #0xc0 - bl AddTextPrinterParameterized - ldrb r0, [r5] - ldr r2, _081A2F74 - movs r1, #0x30 - str r1, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #8 - bl AddTextPrinterParameterized - ldrb r0, [r5] - ldr r2, _081A2F78 - movs r1, #0x40 - str r1, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #8 - bl AddTextPrinterParameterized - ldrb r0, [r5] - ldr r2, _081A2F7C - movs r1, #0x50 - str r1, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #8 - bl AddTextPrinterParameterized - ldrb r0, [r5] - ldr r2, _081A2F80 - movs r1, #0x60 - str r1, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #8 - bl AddTextPrinterParameterized - ldrb r0, [r5] - ldr r2, _081A2F84 - movs r1, #0x70 - str r1, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #8 - bl AddTextPrinterParameterized - movs r1, #0 - mov sl, r8 -_081A2EDA: - adds r2, r1, #1 - mov sb, r2 - lsls r0, r1, #0x1c - movs r2, #0xc0 - lsls r2, r2, #0x16 - adds r0, r0, r2 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r6, #0xe0 - lsls r6, r6, #0x16 - lsls r4, r1, #3 - movs r5, #3 -_081A2EF2: - ldr r0, _081A2F88 - ldr r0, [r0] - ldr r1, _081A2F8C - adds r0, r0, r1 - adds r0, r0, r4 - ldrh r1, [r0] - mov r0, sl - movs r2, #1 - movs r3, #4 - bl sub_080089D8 - ldr r7, _081A2F54 - ldrb r0, [r7] - lsrs r3, r6, #0x18 - mov r2, r8 - str r2, [sp] - movs r1, #0 - str r1, [sp, #4] - str r1, [sp, #8] - movs r1, #1 - mov r2, sl - bl AddTextPrinterParameterized - movs r0, #0xa0 - lsls r0, r0, #0x16 - adds r6, r6, r0 - adds r4, #2 - subs r5, #1 - cmp r5, #0 - bge _081A2EF2 - mov r1, sb - cmp r1, #4 - ble _081A2EDA - ldrb r0, [r7] - bl PutWindowTilemap - ldrb r0, [r7] - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A2F54: .4byte gUnknown_203A840 -_081A2F58: .4byte gUnknown_85DD2D8 -_081A2F5C: .4byte gUnknown_2021C7C -_081A2F60: .4byte gUnknown_85CCEA5 -_081A2F64: .4byte gUnknown_85CCEB9 -_081A2F68: .4byte gUnknown_85CCEBC -_081A2F6C: .4byte gUnknown_85CCEBF -_081A2F70: .4byte gUnknown_85CCEC2 -_081A2F74: .4byte gUnknown_85CAC84 -_081A2F78: .4byte gUnknown_85CAC8A -_081A2F7C: .4byte gUnknown_85CAC90 -_081A2F80: .4byte gUnknown_85CAC95 -_081A2F84: .4byte gUnknown_85CAC9A -_081A2F88: .4byte gUnknown_3005AF0 -_081A2F8C: .4byte 0x00000624 - thumb_func_end sub_081A2DE4 - - thumb_func_start sub_081A2F90 -sub_081A2F90: @ 0x081A2F90 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - ldr r0, _081A2FD0 - ldr r0, [r0] - ldr r1, _081A2FD4 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r5, r0, #0x1e - ldr r0, _081A2FD8 - bl VarGet - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, _081A2FDC - bl VarGet - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r4, #6 - bls _081A2FC4 - b _081A335E -_081A2FC4: - lsls r0, r4, #2 - ldr r1, _081A2FE0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081A2FD0: .4byte gUnknown_3005AF0 -_081A2FD4: .4byte 0x00000CA9 -_081A2FD8: .4byte 0x000040CF -_081A2FDC: .4byte 0x000040CE -_081A2FE0: .4byte _081A2FE4 -_081A2FE4: @ jump table - .4byte _081A3000 @ case 0 - .4byte _081A3138 @ case 1 - .4byte _081A31A0 @ case 2 - .4byte _081A3208 @ case 3 - .4byte _081A3258 @ case 4 - .4byte _081A32DA @ case 5 - .4byte _081A3324 @ case 6 -_081A3000: - ldr r2, _081A30D0 - mov r8, r2 - ldr r1, [r2] - lsls r3, r5, #1 - lsls r4, r6, #2 - adds r2, r3, r4 - movs r7, #0xce - lsls r7, r7, #4 - adds r0, r1, r7 - adds r0, r0, r2 - adds r7, #0x10 - adds r1, r1, r7 - adds r1, r1, r2 - ldrh r0, [r0] - str r3, [sp] - str r4, [sp, #8] - ldrh r2, [r1] - cmp r0, r2 - bhi _081A3028 - b _081A335E -_081A3028: - strh r0, [r1] - cmp r6, #3 - bne _081A309A - movs r3, #0 - ldr r7, _081A30D4 - mov sl, r7 - lsls r0, r5, #2 - str r0, [sp, #4] - mov sb, r8 - movs r1, #0x25 - add r1, sl - mov ip, r1 - ldr r2, _081A30D8 - adds r2, #8 - mov r8, r2 - lsls r7, r5, #3 - ldr r4, _081A30DC -_081A304A: - mov r0, sb - ldr r2, [r0] - adds r0, r3, r7 - adds r2, r2, r4 - adds r2, r2, r0 - mov r1, ip - ldrb r0, [r1] - movs r5, #1 - adds r1, r5, #0 - eors r1, r0 - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r3, r0 - add r0, r8 - ldrb r0, [r0] - strb r0, [r2] - adds r3, #1 - cmp r3, #7 - ble _081A304A - mov r0, sl - adds r0, #0x25 - ldrb r0, [r0] - adds r1, r5, #0 - eors r1, r0 - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _081A30D8 - adds r1, #4 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _081A30D0 - ldr r2, _081A30E0 - ldr r3, [sp, #4] - adds r2, r3, r2 - ldr r1, [r1] - adds r1, r1, r2 - bl SetTrainerId -_081A309A: - ldr r4, _081A30D0 - ldr r0, [r4] - ldr r5, [sp] - ldr r7, [sp, #8] - adds r1, r5, r7 - movs r7, #0xce - lsls r7, r7, #4 - adds r0, r0, r7 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #1 - bhi _081A30B4 - b _081A335E -_081A30B4: - bl sub_080EF330 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081A30C0 - b _081A335E -_081A30C0: - cmp r6, #1 - beq _081A30FE - cmp r6, #1 - bgt _081A30E4 - cmp r6, #0 - beq _081A30EE - b _081A335E - .align 2, 0 -_081A30D0: .4byte gUnknown_3005AF0 -_081A30D4: .4byte gUnknown_2024118 -_081A30D8: .4byte gUnknown_20226A0 -_081A30DC: .4byte 0x00000EE1 -_081A30E0: .4byte 0x00000EF1 -_081A30E4: - cmp r6, #2 - beq _081A3110 - cmp r6, #3 - beq _081A3124 - b _081A335E -_081A30EE: - ldr r0, [r4] - adds r0, r0, r7 - adds r0, r0, r5 - ldrh r0, [r0] - movs r1, #1 - bl sub_080EF3E0 - b _081A335E -_081A30FE: - ldr r0, [r4] - adds r1, r5, #4 - adds r0, r0, r7 - adds r0, r0, r1 - ldrh r0, [r0] - movs r1, #2 - bl sub_080EF3E0 - b _081A335E -_081A3110: - ldr r0, [r4] - adds r1, r5, #0 - adds r1, #8 - adds r0, r0, r7 - adds r0, r0, r1 - ldrh r0, [r0] - movs r1, #3 - bl sub_080EF3E0 - b _081A335E -_081A3124: - ldr r0, [r4] - ldr r1, [sp] - adds r1, #0xc - adds r0, r0, r7 - adds r0, r0, r1 - ldrh r0, [r0] - movs r1, #4 - bl sub_080EF3E0 - b _081A335E -_081A3138: - ldr r7, _081A3184 - ldr r0, [r7] - lsls r5, r5, #1 - mov r8, r5 - lsls r1, r6, #2 - adds r4, r5, r1 - ldr r5, _081A3188 - adds r1, r0, r5 - adds r1, r1, r4 - ldr r2, _081A318C - adds r0, r0, r2 - adds r0, r0, r4 - ldrh r2, [r1] - ldrh r3, [r0] - cmp r2, r3 - bhi _081A315A - b _081A335E -_081A315A: - strh r2, [r0] - ldrh r0, [r1] - cmp r0, #1 - bhi _081A3164 - b _081A335E -_081A3164: - bl sub_080EF330 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081A3170 - b _081A335E -_081A3170: - cmp r6, #0 - bne _081A3190 - ldr r0, [r7] - adds r0, r0, r5 - add r0, r8 - ldrh r0, [r0] - movs r1, #5 - bl sub_080EF3E0 - b _081A335E - .align 2, 0 -_081A3184: .4byte gUnknown_3005AF0 -_081A3188: .4byte 0x00000D0C -_081A318C: .4byte 0x00000D14 -_081A3190: - ldr r0, [r7] - adds r0, r0, r5 - adds r0, r0, r4 - ldrh r0, [r0] - movs r1, #6 - bl sub_080EF3E0 - b _081A335E -_081A31A0: - ldr r7, _081A31F0 - ldr r0, [r7] - lsls r5, r5, #1 - mov r8, r5 - lsls r1, r6, #2 - adds r4, r5, r1 - ldr r5, _081A31F4 - adds r1, r0, r5 - adds r1, r1, r4 - movs r2, #0xdd - lsls r2, r2, #4 - adds r0, r0, r2 - adds r0, r0, r4 - ldrh r2, [r1] - ldrh r3, [r0] - cmp r2, r3 - bhi _081A31C4 - b _081A335E -_081A31C4: - strh r2, [r0] - ldrh r0, [r1] - cmp r0, #1 - bhi _081A31CE - b _081A335E -_081A31CE: - bl sub_080EF330 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081A31DA - b _081A335E -_081A31DA: - cmp r6, #0 - bne _081A31F8 - ldr r0, [r7] - adds r0, r0, r5 - add r0, r8 - ldrh r0, [r0] - movs r1, #0xb - bl sub_080EF3E0 - b _081A335E - .align 2, 0 -_081A31F0: .4byte gUnknown_3005AF0 -_081A31F4: .4byte 0x00000DC8 -_081A31F8: - ldr r0, [r7] - adds r0, r0, r5 - adds r0, r0, r4 - ldrh r0, [r0] - movs r1, #0xc - bl sub_080EF3E0 - b _081A335E -_081A3208: - ldr r6, _081A324C - ldr r1, [r6] - lsls r4, r5, #1 - ldr r5, _081A3250 - adds r0, r1, r5 - adds r0, r0, r4 - ldr r7, _081A3254 - adds r1, r1, r7 - adds r1, r1, r4 - ldrh r2, [r0] - ldrh r3, [r1] - cmp r2, r3 - bhi _081A3224 - b _081A335E -_081A3224: - strh r2, [r1] - ldrh r0, [r0] - cmp r0, #1 - bhi _081A322E - b _081A335E -_081A322E: - bl sub_080EF330 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081A323A - b _081A335E -_081A323A: - ldr r0, [r6] - adds r0, r0, r5 - adds r0, r0, r4 - ldrh r0, [r0] - movs r1, #0xa - bl sub_080EF3E0 - b _081A335E - .align 2, 0 -_081A324C: .4byte gUnknown_3005AF0 -_081A3250: .4byte 0x00000DDA -_081A3254: .4byte 0x00000DDE -_081A3258: - ldr r7, _081A32B4 - mov sb, r7 - mov r0, sb - ldr r2, [r0] - lsls r5, r5, #1 - mov r8, r5 - lsls r0, r6, #2 - adds r4, r5, r0 - ldr r5, _081A32B8 - adds r0, r2, r5 - adds r3, r0, r4 - ldr r1, _081A32BC - adds r0, r2, r1 - adds r0, r0, r4 - ldrh r1, [r3] - ldrh r7, [r0] - cmp r1, r7 - bls _081A335E - strh r1, [r0] - ldr r0, _081A32C0 - adds r1, r2, r0 - adds r1, r1, r4 - ldr r7, _081A32C4 - adds r0, r2, r7 - adds r0, r0, r4 - ldrh r0, [r0] - strh r0, [r1] - ldrh r0, [r3] - cmp r0, #1 - bls _081A335E - bl sub_080EF330 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081A335E - cmp r6, #0 - bne _081A32C8 - mov r1, sb - ldr r0, [r1] - adds r0, r0, r5 - add r0, r8 - ldrh r0, [r0] - movs r1, #7 - bl sub_080EF3E0 - b _081A335E - .align 2, 0 -_081A32B4: .4byte gUnknown_3005AF0 -_081A32B8: .4byte 0x00000DE2 -_081A32BC: .4byte 0x00000DEA -_081A32C0: .4byte 0x00000DFA -_081A32C4: .4byte 0x00000DF2 -_081A32C8: - mov r2, sb - ldr r0, [r2] - adds r0, r0, r5 - adds r0, r0, r4 - ldrh r0, [r0] - movs r1, #8 - bl sub_080EF3E0 - b _081A335E -_081A32DA: - ldr r6, _081A3318 - ldr r1, [r6] - lsls r4, r5, #1 - ldr r5, _081A331C - adds r0, r1, r5 - adds r0, r0, r4 - ldr r3, _081A3320 - adds r1, r1, r3 - adds r1, r1, r4 - ldrh r2, [r0] - ldrh r7, [r1] - cmp r2, r7 - bls _081A335E - strh r2, [r1] - ldrh r0, [r0] - cmp r0, #1 - bls _081A335E - bl sub_080EF330 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081A335E - ldr r0, [r6] - adds r0, r0, r5 - adds r0, r0, r4 - ldrh r0, [r0] - movs r1, #9 - bl sub_080EF3E0 - b _081A335E - .align 2, 0 -_081A3318: .4byte gUnknown_3005AF0 -_081A331C: .4byte 0x00000E04 -_081A3320: .4byte 0x00000E08 -_081A3324: - ldr r6, _081A3370 - ldr r1, [r6] - lsls r4, r5, #1 - ldr r5, _081A3374 - adds r0, r1, r5 - adds r0, r0, r4 - ldr r2, _081A3378 - adds r1, r1, r2 - adds r1, r1, r4 - ldrh r2, [r0] - ldrh r3, [r1] - cmp r2, r3 - bls _081A335E - strh r2, [r1] - ldrh r0, [r0] - cmp r0, #1 - bls _081A335E - bl sub_080EF330 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081A335E - ldr r0, [r6] - adds r0, r0, r5 - adds r0, r0, r4 - ldrh r0, [r0] - movs r1, #0xd - bl sub_080EF3E0 -_081A335E: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A3370: .4byte gUnknown_3005AF0 -_081A3374: .4byte 0x00000E1A -_081A3378: .4byte 0x00000E1E - thumb_func_end sub_081A2F90 - - thumb_func_start sub_081A337C -sub_081A337C: @ 0x081A337C - push {r4, lr} - ldr r0, _081A3398 - bl VarGet - ldr r4, _081A339C - bl sub_081A33A0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081A3398: .4byte 0x000040CF -_081A339C: .4byte gUnknown_2037290 - thumb_func_end sub_081A337C - - thumb_func_start sub_081A33A0 -sub_081A33A0: @ 0x081A33A0 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - movs r0, #0 - mov r8, r0 - ldr r0, _081A33E0 - bl VarGet - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r0, _081A33E4 - bl VarGet - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - bl GetCurrentFacilityWinStreak - lsls r0, r0, #0x10 - ldr r1, _081A33E8 - mov sb, r1 - lsls r7, r6, #2 - adds r1, #3 - adds r1, r7, r1 - lsrs r0, r0, #0x10 - ldrb r1, [r1] - adds r5, r0, r1 - cmp r4, #0 - beq _081A33EC - movs r0, #0 - b _081A3452 - .align 2, 0 -_081A33E0: .4byte 0x000040CF -_081A33E4: .4byte 0x000040CE -_081A33E8: .4byte gUnknown_85DCB7C -_081A33EC: - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - bl GetPlayerSymbolCountForFacility - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - blt _081A3410 - cmp r1, #1 - bgt _081A3410 - adds r0, r1, r7 - add r0, sb - ldrb r0, [r0] - cmp r5, r0 - bne _081A344C - adds r1, #1 - mov r8, r1 - b _081A344C -_081A3410: - ldr r1, _081A3420 - lsls r2, r6, #2 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r5, r0 - bne _081A3424 - movs r0, #3 - b _081A344A - .align 2, 0 -_081A3420: .4byte gUnknown_85DCB7C -_081A3424: - adds r0, r1, #1 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r5, r0 - bne _081A3434 - movs r1, #4 - mov r8, r1 - b _081A344C -_081A3434: - cmp r5, r0 - ble _081A344C - subs r0, r5, r0 - adds r1, #2 - adds r1, r2, r1 - ldrb r1, [r1] - bl __modsi3 - cmp r0, #0 - bne _081A344C - movs r0, #4 -_081A344A: - mov r8, r0 -_081A344C: - mov r1, r8 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 -_081A3452: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081A33A0 - - thumb_func_start CopyFrontierTrainerText -CopyFrontierTrainerText: @ 0x081A3460 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r2, r0, #0 - lsls r1, r1, #0x10 - lsrs r3, r1, #0x10 - cmp r0, #1 - beq _081A34F6 - cmp r0, #1 - bgt _081A347A - cmp r0, #0 - beq _081A3482 - b _081A368E -_081A347A: - cmp r2, #2 - bne _081A3480 - b _081A35A8 -_081A3480: - b _081A368E -_081A3482: - movs r0, #0xfa - lsls r0, r0, #1 - cmp r3, r0 - bne _081A349C - ldr r0, _081A3494 - ldr r0, [r0] - ldr r1, _081A3498 - b _081A3656 - .align 2, 0 -_081A3494: .4byte gUnknown_3005AF0 -_081A3498: .4byte 0x00000BFC -_081A349C: - ldr r0, _081A34BC - cmp r3, r0 - beq _081A3516 - ldr r0, _081A34C0 - cmp r3, r0 - bhi _081A34C8 - ldr r2, _081A34C4 - movs r0, #0x34 - adds r1, r3, #0 - muls r1, r0, r1 - ldr r0, [r2] - adds r0, r0, r1 - adds r0, #0xc - bl FrontierSpeechToString - b _081A368E - .align 2, 0 -_081A34BC: .4byte 0x000003FE -_081A34C0: .4byte 0x0000012B -_081A34C4: .4byte gUnknown_203B954 -_081A34C8: - ldr r0, _081A34DC - cmp r3, r0 - bhi _081A34E8 - ldr r1, _081A34E0 - movs r0, #0xec - muls r0, r3, r0 - ldr r1, [r1] - adds r0, r0, r1 - ldr r1, _081A34E4 - b _081A3656 - .align 2, 0 -_081A34DC: .4byte 0x0000018F -_081A34E0: .4byte gUnknown_3005AF0 -_081A34E4: .4byte 0xFFFEF2B8 -_081A34E8: - adds r0, r3, #0 - adds r0, #0x70 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl CopyFriendsApprenticeChallengeText - b _081A368E -_081A34F6: - movs r0, #0xfa - lsls r0, r0, #1 - cmp r3, r0 - bne _081A3510 - ldr r0, _081A3508 - ldr r0, [r0] - ldr r1, _081A350C - b _081A3656 - .align 2, 0 -_081A3508: .4byte gUnknown_3005AF0 -_081A350C: .4byte 0x00000C08 -_081A3510: - ldr r0, _081A3520 - cmp r3, r0 - bne _081A3524 -_081A3516: - movs r0, #0 - bl CopyFrontierBrainText - b _081A368E - .align 2, 0 -_081A3520: .4byte 0x000003FE -_081A3524: - ldr r0, _081A3540 - cmp r3, r0 - bhi _081A3548 - ldr r2, _081A3544 - movs r0, #0x34 - adds r1, r3, #0 - muls r1, r0, r1 - ldr r0, [r2] - adds r0, r0, r1 - adds r0, #0x18 - bl FrontierSpeechToString - b _081A368E - .align 2, 0 -_081A3540: .4byte 0x0000012B -_081A3544: .4byte gUnknown_203B954 -_081A3548: - ldr r0, _081A356C - cmp r3, r0 - bhi _081A357C - ldr r0, _081A3570 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - bne _081A360C - ldr r1, _081A3574 - movs r0, #0xec - muls r0, r3, r0 - ldr r1, [r1] - adds r0, r0, r1 - ldr r1, _081A3578 - b _081A3656 - .align 2, 0 -_081A356C: .4byte 0x0000018F -_081A3570: .4byte gUnknown_2022C90 -_081A3574: .4byte gUnknown_3005AF0 -_081A3578: .4byte 0xFFFEF2C4 -_081A357C: - ldr r0, _081A359C - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - bne _081A360C - ldr r1, _081A35A0 - lsls r0, r3, #4 - adds r0, r0, r3 - lsls r0, r0, #2 - ldr r1, [r1] - adds r0, r0, r1 - ldr r1, _081A35A4 - b _081A3656 - .align 2, 0 -_081A359C: .4byte gUnknown_2022C90 -_081A35A0: .4byte gUnknown_3005AF0 -_081A35A4: .4byte 0xFFFF96C4 -_081A35A8: - movs r0, #0xfa - lsls r0, r0, #1 - cmp r3, r0 - bne _081A35C0 - ldr r0, _081A35B8 - ldr r0, [r0] - ldr r1, _081A35BC - b _081A3656 - .align 2, 0 -_081A35B8: .4byte gUnknown_3005AF0 -_081A35BC: .4byte 0x00000C14 -_081A35C0: - ldr r0, _081A35D0 - cmp r3, r0 - bne _081A35D4 - movs r0, #1 - bl CopyFrontierBrainText - b _081A368E - .align 2, 0 -_081A35D0: .4byte 0x000003FE -_081A35D4: - ldr r0, _081A35F0 - cmp r3, r0 - bhi _081A35F8 - ldr r2, _081A35F4 - movs r0, #0x34 - adds r1, r3, #0 - muls r1, r0, r1 - ldr r0, [r2] - adds r0, r0, r1 - adds r0, #0x24 - bl FrontierSpeechToString - b _081A368E - .align 2, 0 -_081A35F0: .4byte 0x0000012B -_081A35F4: .4byte gUnknown_203B954 -_081A35F8: - ldr r0, _081A3618 - cmp r3, r0 - bhi _081A3638 - ldr r0, _081A361C - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - beq _081A3620 -_081A360C: - bl sub_0818620C - bl FrontierSpeechToString - b _081A368E - .align 2, 0 -_081A3618: .4byte 0x0000018F -_081A361C: .4byte gUnknown_2022C90 -_081A3620: - ldr r1, _081A3630 - movs r0, #0xec - muls r0, r3, r0 - ldr r1, [r1] - adds r0, r0, r1 - ldr r1, _081A3634 - b _081A3656 - .align 2, 0 -_081A3630: .4byte gUnknown_3005AF0 -_081A3634: .4byte 0xFFFEF2D0 -_081A3638: - ldr r0, _081A3660 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - beq _081A3668 - bl sub_081861EC - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #4 - ldr r1, _081A3664 -_081A3656: - adds r0, r0, r1 - bl FrontierSpeechToString - b _081A368E - .align 2, 0 -_081A3660: .4byte gUnknown_2022C90 -_081A3664: .4byte gUnknown_85DC23E -_081A3668: - ldr r0, _081A3694 - ldr r1, [r0] - ldr r0, _081A3698 - adds r2, r3, r0 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r1, r1, r0 - adds r1, #0xdc - ldrb r0, [r1] - lsls r0, r0, #0x1b - lsrs r3, r0, #0x1b - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #4 - ldr r1, _081A369C - adds r0, r0, r1 - bl FrontierSpeechToString -_081A368E: - pop {r0} - bx r0 - .align 2, 0 -_081A3694: .4byte gUnknown_3005AF0 -_081A3698: .4byte 0xFFFFFE70 -_081A369C: .4byte gUnknown_85DC23E - thumb_func_end CopyFrontierTrainerText - - thumb_func_start sub_081A36A0 -sub_081A36A0: @ 0x081A36A0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _081A3744 - ldr r1, [r0] - ldr r2, _081A3748 - adds r1, r1, r2 - movs r2, #0 - str r2, [r1] - movs r4, #0 - mov sb, r0 - mov r8, sb - movs r6, #0 -_081A36BE: - movs r5, #0 - lsls r7, r4, #2 - mov sl, r7 - adds r0, r4, #1 - mov ip, r0 -_081A36C8: - mov r1, r8 - ldr r2, [r1] - lsls r3, r5, #1 - mov r7, sl - adds r1, r3, r7 - movs r7, #0xce - lsls r7, r7, #4 - adds r0, r2, r7 - adds r0, r0, r1 - strh r6, [r0] - cmp r4, #1 - bgt _081A36F8 - adds r7, #0x2c - adds r0, r2, r7 - adds r0, r0, r1 - strh r6, [r0] - adds r7, #0xbc - adds r0, r2, r7 - adds r0, r0, r1 - strh r6, [r0] - adds r7, #0x1a - adds r0, r2, r7 - adds r0, r0, r1 - strh r6, [r0] -_081A36F8: - cmp r4, #0 - bne _081A3718 - mov r1, r8 - ldr r0, [r1] - ldr r2, _081A374C - adds r1, r0, r2 - adds r1, r1, r3 - strh r4, [r1] - ldr r7, _081A3750 - adds r1, r0, r7 - adds r1, r1, r3 - strh r4, [r1] - ldr r1, _081A3754 - adds r0, r0, r1 - adds r0, r0, r3 - strh r4, [r0] -_081A3718: - adds r5, #1 - cmp r5, #1 - ble _081A36C8 - mov r4, ip - cmp r4, #3 - ble _081A36BE - mov r2, sb - ldr r0, [r2] - ldr r7, _081A3758 - adds r1, r0, r7 - ldrb r0, [r1] - cmp r0, #0 - beq _081A3736 - movs r0, #1 - strb r0, [r1] -_081A3736: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A3744: .4byte gUnknown_3005AF0 -_081A3748: .4byte 0x00000CDC -_081A374C: .4byte 0x00000DDA -_081A3750: .4byte 0x00000E04 -_081A3754: .4byte 0x00000E1A -_081A3758: .4byte 0x00000CA8 - thumb_func_end sub_081A36A0 - - thumb_func_start GetCurrentFacilityWinStreak -GetCurrentFacilityWinStreak: @ 0x081A375C - push {r4, r5, lr} - ldr r0, _081A3790 - ldr r0, [r0] - ldr r1, _081A3794 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r4, r0, #0x1e - ldr r0, _081A3798 - bl VarGet - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, _081A379C - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #6 - bhi _081A385C - lsls r0, r0, #2 - ldr r1, _081A37A0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081A3790: .4byte gUnknown_3005AF0 -_081A3794: .4byte 0x00000CA9 -_081A3798: .4byte 0x000040CE -_081A379C: .4byte 0x000040CF -_081A37A0: .4byte _081A37A4 -_081A37A4: @ jump table - .4byte _081A37C0 @ case 0 - .4byte _081A37D4 @ case 1 - .4byte _081A37EC @ case 2 - .4byte _081A3804 @ case 3 - .4byte _081A3818 @ case 4 - .4byte _081A3830 @ case 5 - .4byte _081A3844 @ case 6 -_081A37C0: - ldr r0, _081A37D0 - ldr r0, [r0] - lsls r1, r4, #1 - lsls r2, r5, #2 - adds r1, r1, r2 - movs r2, #0xce - lsls r2, r2, #4 - b _081A384C - .align 2, 0 -_081A37D0: .4byte gUnknown_3005AF0 -_081A37D4: - ldr r0, _081A37E4 - ldr r0, [r0] - lsls r1, r4, #1 - lsls r2, r5, #2 - adds r1, r1, r2 - ldr r2, _081A37E8 - b _081A384C - .align 2, 0 -_081A37E4: .4byte gUnknown_3005AF0 -_081A37E8: .4byte 0x00000D0C -_081A37EC: - ldr r0, _081A37FC - ldr r0, [r0] - lsls r1, r4, #1 - lsls r2, r5, #2 - adds r1, r1, r2 - ldr r2, _081A3800 - b _081A384C - .align 2, 0 -_081A37FC: .4byte gUnknown_3005AF0 -_081A3800: .4byte 0x00000DC8 -_081A3804: - ldr r0, _081A3810 - ldr r0, [r0] - lsls r1, r4, #1 - ldr r2, _081A3814 - b _081A384C - .align 2, 0 -_081A3810: .4byte gUnknown_3005AF0 -_081A3814: .4byte 0x00000DDA -_081A3818: - ldr r0, _081A3828 - ldr r0, [r0] - lsls r1, r4, #1 - lsls r2, r5, #2 - adds r1, r1, r2 - ldr r2, _081A382C - b _081A384C - .align 2, 0 -_081A3828: .4byte gUnknown_3005AF0 -_081A382C: .4byte 0x00000DE2 -_081A3830: - ldr r0, _081A383C - ldr r0, [r0] - lsls r1, r4, #1 - ldr r2, _081A3840 - b _081A384C - .align 2, 0 -_081A383C: .4byte gUnknown_3005AF0 -_081A3840: .4byte 0x00000E04 -_081A3844: - ldr r0, _081A3854 - ldr r0, [r0] - lsls r1, r4, #1 - ldr r2, _081A3858 -_081A384C: - adds r0, r0, r2 - adds r0, r0, r1 - ldrh r0, [r0] - b _081A385E - .align 2, 0 -_081A3854: .4byte gUnknown_3005AF0 -_081A3858: .4byte 0x00000E1A -_081A385C: - movs r0, #0 -_081A385E: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end GetCurrentFacilityWinStreak - - thumb_func_start sub_081A3864 -sub_081A3864: @ 0x081A3864 - push {r4, r5, lr} - movs r2, #0 - ldr r5, _081A388C - ldr r4, _081A3890 - ldr r0, _081A3894 - adds r3, r0, #0 -_081A3870: - ldr r0, [r5] - lsls r1, r2, #1 - adds r0, r0, r4 - adds r0, r0, r1 - ldrh r1, [r0] - orrs r1, r3 - strh r1, [r0] - adds r2, #1 - cmp r2, #0x13 - ble _081A3870 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081A388C: .4byte gUnknown_3005AF0 -_081A3890: .4byte 0x00000CB4 -_081A3894: .4byte 0x0000FFFF - thumb_func_end sub_081A3864 - - thumb_func_start sub_081A3898 -sub_081A3898: @ 0x081A3898 - push {lr} - ldr r0, _081A38AC - ldrh r1, [r0] - ldr r0, _081A38B0 - cmp r1, r0 - bne _081A38B8 - ldr r1, _081A38B4 - movs r0, #1 - b _081A38BC - .align 2, 0 -_081A38AC: .4byte gUnknown_203886A -_081A38B0: .4byte 0x000003FE -_081A38B4: .4byte gUnknown_2037290 -_081A38B8: - ldr r1, _081A38C4 - movs r0, #0 -_081A38BC: - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_081A38C4: .4byte gUnknown_2037290 - thumb_func_end sub_081A3898 - - thumb_func_start GetPlayerSymbolCountForFacility -GetPlayerSymbolCountForFacility: @ 0x081A38C8 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x17 - ldr r1, _081A38F4 - adds r0, r4, r1 - bl FlagGet - adds r5, r0, #0 - ldr r0, _081A38F8 - adds r4, r4, r0 - adds r0, r4, #0 - bl FlagGet - adds r5, r5, r0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - adds r0, r5, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081A38F4: .4byte 0x000008C4 -_081A38F8: .4byte 0x000008C5 - thumb_func_end GetPlayerSymbolCountForFacility - - thumb_func_start sub_081A38FC -sub_081A38FC: @ 0x081A38FC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - movs r5, #0 - ldr r0, _081A3938 - ldr r0, [r0] - ldr r1, _081A393C - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r4, r0, #0x1e - ldr r0, _081A3940 - bl VarGet - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - ldr r0, _081A3944 - bl VarGet - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r7, #6 - bhi _081A3A10 - lsls r0, r7, #2 - ldr r1, _081A3948 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081A3938: .4byte gUnknown_3005AF0 -_081A393C: .4byte 0x00000CA9 -_081A3940: .4byte 0x000040CF -_081A3944: .4byte 0x000040CE -_081A3948: .4byte _081A394C -_081A394C: @ jump table - .4byte _081A3968 @ case 0 - .4byte _081A397C @ case 1 - .4byte _081A3998 @ case 2 - .4byte _081A39B0 @ case 3 - .4byte _081A39C4 @ case 4 - .4byte _081A39DC @ case 5 - .4byte _081A39F8 @ case 6 -_081A3968: - ldr r0, _081A3978 - ldr r0, [r0] - lsls r1, r4, #1 - lsls r2, r6, #2 - adds r1, r1, r2 - movs r2, #0xce - lsls r2, r2, #4 - b _081A3A00 - .align 2, 0 -_081A3978: .4byte gUnknown_3005AF0 -_081A397C: - ldr r0, _081A3990 - ldr r0, [r0] - lsls r1, r4, #1 - lsls r2, r6, #2 - adds r1, r1, r2 - ldr r2, _081A3994 - adds r0, r0, r2 - adds r0, r0, r1 - ldrh r5, [r0] - b _081A3A10 - .align 2, 0 -_081A3990: .4byte gUnknown_3005AF0 -_081A3994: .4byte 0x00000D0C -_081A3998: - ldr r0, _081A39A8 - ldr r0, [r0] - lsls r1, r4, #1 - lsls r2, r6, #2 - adds r1, r1, r2 - ldr r2, _081A39AC - b _081A3A00 - .align 2, 0 -_081A39A8: .4byte gUnknown_3005AF0 -_081A39AC: .4byte 0x00000DC8 -_081A39B0: - ldr r0, _081A39BC - ldr r0, [r0] - lsls r1, r4, #1 - ldr r2, _081A39C0 - b _081A3A00 - .align 2, 0 -_081A39BC: .4byte gUnknown_3005AF0 -_081A39C0: .4byte 0x00000DDA -_081A39C4: - ldr r0, _081A39D4 - ldr r0, [r0] - lsls r1, r4, #1 - lsls r2, r6, #2 - adds r1, r1, r2 - ldr r2, _081A39D8 - b _081A3A00 - .align 2, 0 -_081A39D4: .4byte gUnknown_3005AF0 -_081A39D8: .4byte 0x00000DE2 -_081A39DC: - ldr r0, _081A39F0 - ldr r0, [r0] - lsls r1, r4, #1 - ldr r2, _081A39F4 - adds r0, r0, r2 - adds r0, r0, r1 - ldrh r0, [r0] - movs r1, #0xe - b _081A3A08 - .align 2, 0 -_081A39F0: .4byte gUnknown_3005AF0 -_081A39F4: .4byte 0x00000E04 -_081A39F8: - ldr r0, _081A3AA0 - ldr r0, [r0] - lsls r1, r4, #1 - ldr r2, _081A3AA4 -_081A3A00: - adds r0, r0, r2 - adds r0, r0, r1 - ldrh r0, [r0] - movs r1, #7 -_081A3A08: - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_081A3A10: - cmp r5, #0 - beq _081A3A16 - subs r5, #1 -_081A3A16: - cmp r5, #0x1d - bls _081A3A1C - movs r5, #0x1d -_081A3A1C: - ldr r2, _081A3AA8 - lsls r1, r7, #2 - adds r1, r6, r1 - lsls r0, r5, #3 - subs r0, r0, r5 - lsls r0, r0, #2 - adds r1, r1, r0 - adds r7, r1, r2 - ldrb r5, [r7] - ldr r0, _081A3AAC - mov sb, r0 - ldrh r0, [r0] - ldr r1, _081A3AB0 - mov r8, r1 - cmp r0, r8 - bne _081A3A3E - adds r5, #0xa -_081A3A3E: - ldr r6, _081A3AA0 - ldr r1, [r6] - ldr r4, _081A3AB4 - adds r1, r1, r4 - ldrh r0, [r1] - adds r0, r0, r5 - strh r0, [r1] - ldr r0, _081A3AB8 - adds r1, r5, #0 - movs r2, #0 - movs r3, #2 - bl sub_080089D8 - ldr r0, [r6] - adds r2, r0, r4 - ldrh r0, [r2] - ldr r1, _081A3ABC - cmp r0, r1 - bls _081A3A66 - strh r1, [r2] -_081A3A66: - ldr r0, [r6] - ldr r4, _081A3AC0 - adds r0, r0, r4 - ldrh r5, [r0] - ldrb r0, [r7] - adds r5, r5, r0 - bl sub_080EF864 - mov r2, sb - ldrh r0, [r2] - cmp r0, r8 - bne _081A3A86 - adds r5, #0xa - movs r0, #0xa - bl sub_080EF864 -_081A3A86: - ldr r0, _081A3AC4 - cmp r5, r0 - ble _081A3A8E - adds r5, r0, #0 -_081A3A8E: - ldr r0, [r6] - adds r0, r0, r4 - strh r5, [r0] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A3AA0: .4byte gUnknown_3005AF0 -_081A3AA4: .4byte 0x00000E1A -_081A3AA8: .4byte gUnknown_85DCEE0 -_081A3AAC: .4byte gUnknown_203886A -_081A3AB0: .4byte 0x000003FE -_081A3AB4: .4byte 0x00000EB8 -_081A3AB8: .4byte gUnknown_2021C40 -_081A3ABC: .4byte 0x0000270F -_081A3AC0: .4byte 0x00000EBA -_081A3AC4: .4byte 0x0000FFFF - thumb_func_end sub_081A38FC - - thumb_func_start sub_081A3AC8 -sub_081A3AC8: @ 0x081A3AC8 - push {r4, lr} - ldr r0, _081A3AE8 - bl VarGet - ldr r4, _081A3AEC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetPlayerSymbolCountForFacility - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081A3AE8: .4byte 0x000040CF -_081A3AEC: .4byte gUnknown_2037290 - thumb_func_end sub_081A3AC8 - - thumb_func_start sub_081A3AF0 -sub_081A3AF0: @ 0x081A3AF0 - push {r4, lr} - ldr r0, _081A3B18 - bl VarGet - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - bl GetPlayerSymbolCountForFacility - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081A3B20 - lsls r0, r4, #0x11 - ldr r1, _081A3B1C - adds r0, r0, r1 - lsrs r0, r0, #0x10 - bl FlagSet - b _081A3B2C - .align 2, 0 -_081A3B18: .4byte 0x000040CF -_081A3B1C: .4byte gUnknown_8C40000 -_081A3B20: - lsls r0, r4, #0x11 - ldr r1, _081A3B34 - adds r0, r0, r1 - lsrs r0, r0, #0x10 - bl FlagSet -_081A3B2C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081A3B34: .4byte gUnknown_8C50000 - thumb_func_end sub_081A3AF0 - - thumb_func_start sub_081A3B38 -sub_081A3B38: @ 0x081A3B38 - push {lr} - ldr r0, _081A3B50 - ldr r1, _081A3B54 - ldrh r1, [r1] - ldr r2, [r0] - ands r2, r1 - cmp r2, #0 - beq _081A3B5C - ldr r1, _081A3B58 - movs r0, #1 - strh r0, [r1] - b _081A3B60 - .align 2, 0 -_081A3B50: .4byte gUnknown_2022C90 -_081A3B54: .4byte gUnknown_2037282 -_081A3B58: .4byte gUnknown_2037290 -_081A3B5C: - ldr r0, _081A3B64 - strh r2, [r0] -_081A3B60: - pop {r0} - bx r0 - .align 2, 0 -_081A3B64: .4byte gUnknown_2037290 - thumb_func_end sub_081A3B38 - - thumb_func_start sub_081A3B68 -sub_081A3B68: @ 0x081A3B68 - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r5, r0, #0 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - bl sub_0806CF68 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - bl GetSetPokedexFlag - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081A3BFC - cmp r4, #0 - bne _081A3B94 - ldr r0, _081A3BBC - ldr r1, _081A3BC0 - bl StringAppend -_081A3B94: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r6, _081A3BBC - lsls r1, r5, #1 - adds r1, r1, r5 - lsls r1, r1, #1 - ldr r0, _081A3BC4 - adds r1, r1, r0 - adds r0, r6, #0 - bl StringAppend - cmp r4, #5 - beq _081A3BE0 - cmp r4, #5 - bgt _081A3BC8 - cmp r4, #2 - beq _081A3BD2 - b _081A3BF4 - .align 2, 0 -_081A3BBC: .4byte gUnknown_2021C40 -_081A3BC0: .4byte gUnknown_85ABC6C -_081A3BC4: .4byte gUnknown_82EA31C -_081A3BC8: - cmp r4, #8 - beq _081A3BE0 - cmp r4, #0xb - beq _081A3BE0 - b _081A3BF4 -_081A3BD2: - ldr r1, _081A3BDC - adds r0, r6, #0 - bl StringAppend - b _081A3BFC - .align 2, 0 -_081A3BDC: .4byte gUnknown_85ABC70 -_081A3BE0: - ldr r0, _081A3BEC - ldr r1, _081A3BF0 - bl StringAppend - b _081A3BFC - .align 2, 0 -_081A3BEC: .4byte gUnknown_2021C40 -_081A3BF0: .4byte gUnknown_85ABC6E -_081A3BF4: - ldr r0, _081A3C04 - ldr r1, _081A3C08 - bl StringAppend -_081A3BFC: - adds r0, r4, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_081A3C04: .4byte gUnknown_2021C40 -_081A3C08: .4byte gUnknown_85ABC6C - thumb_func_end sub_081A3B68 - - thumb_func_start AppendIfValid -AppendIfValid: @ 0x081A3C0C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r2, [sp, #0x20] - ldr r4, [sp, #0x24] - mov sb, r4 - ldr r4, [sp, #0x28] - mov sl, r4 - ldr r7, [sp, #0x2c] - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov ip, r3 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r8, r2 - movs r2, #0 - movs r0, #0xce - lsls r0, r0, #1 - cmp r4, r0 - beq _081A3CDA - cmp r4, #0 - beq _081A3CDA - ldr r0, _081A3CE8 - ldrh r1, [r0] - ldr r5, _081A3CEC - adds r3, r0, #0 - cmp r1, r5 - beq _081A3C70 - cmp r1, r4 - beq _081A3C64 - adds r1, r3, #0 -_081A3C56: - adds r1, #2 - adds r2, #1 - ldrh r0, [r1] - cmp r0, r5 - beq _081A3C70 - cmp r0, r4 - bne _081A3C56 -_081A3C64: - lsls r0, r2, #1 - adds r0, r0, r3 - ldrh r1, [r0] - ldr r0, _081A3CEC - cmp r1, r0 - bne _081A3CDA -_081A3C70: - mov r0, ip - cmp r0, #0 - bne _081A3C7C - mov r1, r8 - cmp r1, #0x32 - bhi _081A3CDA -_081A3C7C: - movs r2, #0 - ldrb r3, [r7] - cmp r2, r3 - bge _081A3C9C - mov r1, sb - ldrh r0, [r1] - cmp r0, r4 - beq _081A3C9C - adds r5, r3, #0 -_081A3C8E: - adds r1, #2 - adds r2, #1 - cmp r2, r5 - bge _081A3C9C - ldrh r0, [r1] - cmp r0, r4 - bne _081A3C8E -_081A3C9C: - cmp r2, r3 - bne _081A3CDA - cmp r6, #0 - beq _081A3CC6 - movs r2, #0 - cmp r2, r3 - bge _081A3CC2 - mov r1, sl - ldrh r0, [r1] - cmp r0, r6 - beq _081A3CC2 - adds r5, r3, #0 -_081A3CB4: - adds r1, #2 - adds r2, #1 - cmp r2, r5 - bge _081A3CC2 - ldrh r0, [r1] - cmp r0, r6 - bne _081A3CB4 -_081A3CC2: - cmp r2, r3 - bne _081A3CDA -_081A3CC6: - lsls r0, r3, #1 - add r0, sb - strh r4, [r0] - ldrb r0, [r7] - lsls r0, r0, #1 - add r0, sl - strh r6, [r0] - ldrb r0, [r7] - adds r0, #1 - strb r0, [r7] -_081A3CDA: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A3CE8: .4byte gUnknown_85DD48E -_081A3CEC: .4byte 0x0000FFFF - thumb_func_end AppendIfValid - - thumb_func_start sub_081A3CF0 -sub_081A3CF0: @ 0x081A3CF0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x2c - movs r0, #0 - mov sl, r0 - add r4, sp, #0x28 - mov r1, sl - strb r1, [r4] - ldr r0, _081A3D20 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r4 - cmp r0, #1 - beq _081A3D32 - cmp r0, #1 - bgt _081A3D24 - cmp r0, #0 - beq _081A3D2C - b _081A3D46 - .align 2, 0 -_081A3D20: .4byte 0x000040CE -_081A3D24: - cmp r0, #3 - bgt _081A3D46 - movs r0, #2 - b _081A3D44 -_081A3D2C: - movs r1, #3 - mov sl, r1 - b _081A3D46 -_081A3D32: - ldr r0, _081A3DB4 - bl VarGet - lsls r0, r0, #0x10 - movs r1, #3 - mov sl, r1 - cmp r0, #0 - bne _081A3D46 - movs r0, #4 -_081A3D44: - mov sl, r0 -_081A3D46: - movs r1, #0 - mov r8, r1 -_081A3D4A: - movs r0, #0x64 - mov r4, r8 - muls r4, r0, r4 - ldr r0, _081A3DB8 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - adds r0, r4, #0 - movs r1, #0xc - bl GetMonData - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r0, r4, #0 - movs r1, #0x38 - bl GetMonData - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, _081A3DB4 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #6 - bne _081A3DC0 - cmp r6, #0 - bne _081A3DDC - ldr r0, _081A3DBC - ldrb r3, [r0] - str r5, [sp] - add r0, sp, #0x10 - str r0, [sp, #4] - add r0, sp, #0x1c - str r0, [sp, #8] - mov r1, sb - str r1, [sp, #0xc] - adds r0, r7, #0 - movs r1, #0 - adds r2, r4, #0 - bl AppendIfValid - b _081A3DDC - .align 2, 0 -_081A3DB4: .4byte 0x000040CF -_081A3DB8: .4byte gUnknown_2024190 -_081A3DBC: .4byte gUnknown_2037290 -_081A3DC0: - ldr r0, _081A3E44 - ldrb r3, [r0] - str r5, [sp] - add r0, sp, #0x10 - str r0, [sp, #4] - add r0, sp, #0x1c - str r0, [sp, #8] - mov r1, sb - str r1, [sp, #0xc] - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - bl AppendIfValid -_081A3DDC: - movs r0, #1 - add r8, r0 - mov r1, r8 - cmp r1, #5 - ble _081A3D4A - mov r1, sb - ldrb r0, [r1] - cmp r0, sl - bge _081A3E6C - ldr r1, _081A3E48 - movs r0, #0xff - strb r0, [r1] - ldr r1, _081A3E4C - movs r0, #1 - strh r0, [r1] - movs r0, #0 - mov r1, sb - strb r0, [r1] - ldr r2, _081A3E50 - ldrh r0, [r2] - ldr r1, _081A3E54 - cmp r0, r1 - beq _081A3E22 - mov r5, sb - adds r6, r1, #0 - adds r4, r2, #0 -_081A3E10: - ldrh r0, [r4] - ldrb r1, [r5] - bl sub_081A3B68 - strb r0, [r5] - adds r4, #2 - ldrh r0, [r4] - cmp r0, r6 - bne _081A3E10 -_081A3E22: - ldr r4, _081A3E48 - adds r0, r4, #0 - bl StringLength - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - subs r0, #1 - adds r0, r0, r4 - movs r1, #0xff - strb r1, [r0] - mov r1, sb - ldrb r0, [r1] - cmp r0, #2 - bhi _081A3E5C - ldr r1, _081A3E58 - b _081A3E5E - .align 2, 0 -_081A3E44: .4byte gUnknown_2037290 -_081A3E48: .4byte gUnknown_2021C40 -_081A3E4C: .4byte gUnknown_2037280 -_081A3E50: .4byte gUnknown_85DD48E -_081A3E54: .4byte 0x0000FFFF -_081A3E58: .4byte gUnknown_85ABC72 -_081A3E5C: - ldr r1, _081A3E68 -_081A3E5E: - adds r0, r4, #0 - bl StringAppend - b _081A3E8E - .align 2, 0 -_081A3E68: .4byte gUnknown_85ABC75 -_081A3E6C: - ldr r1, _081A3EA0 - movs r0, #0 - strh r0, [r1] - ldr r0, _081A3EA4 - ldr r2, [r0] - ldr r0, _081A3EA8 - ldrb r0, [r0] - ldr r1, _081A3EAC - adds r2, r2, r1 - movs r1, #3 - ands r1, r0 - ldrb r3, [r2] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] -_081A3E8E: - add sp, #0x2c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A3EA0: .4byte gUnknown_2037280 -_081A3EA4: .4byte gUnknown_3005AF0 -_081A3EA8: .4byte gUnknown_2037290 -_081A3EAC: .4byte 0x00000CA9 - thumb_func_end sub_081A3CF0 - - thumb_func_start sub_081A3EB0 -sub_081A3EB0: @ 0x081A3EB0 - push {lr} - bl ValidateEReaderTrainer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081A3EB0 - - thumb_func_start sub_081A3EBC -sub_081A3EBC: @ 0x081A3EBC - push {r4, r5, r6, r7, lr} - ldr r0, _081A3EF0 - ldr r0, [r0] - ldr r1, _081A3EF4 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r4, r0, #0x1e - ldr r0, _081A3EF8 - bl VarGet - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, _081A3EFC - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #6 - bls _081A3EE6 - b _081A4020 -_081A3EE6: - lsls r0, r0, #2 - ldr r1, _081A3F00 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081A3EF0: .4byte gUnknown_3005AF0 -_081A3EF4: .4byte 0x00000CA9 -_081A3EF8: .4byte 0x000040CE -_081A3EFC: .4byte 0x000040CF -_081A3F00: .4byte _081A3F04 -_081A3F04: @ jump table - .4byte _081A3F20 @ case 0 - .4byte _081A3F68 @ case 1 - .4byte _081A3FA8 @ case 2 - .4byte _081A3FC4 @ case 3 - .4byte _081A3FD8 @ case 4 - .4byte _081A3FF4 @ case 5 - .4byte _081A4008 @ case 6 -_081A3F20: - ldr r7, _081A3F5C - ldr r0, [r7] - lsls r4, r4, #1 - lsls r1, r5, #2 - adds r1, r4, r1 - movs r6, #0xce - lsls r6, r6, #4 - adds r3, r0, r6 - adds r2, r3, r1 - ldrh r1, [r2] - ldr r0, _081A3F60 - cmp r1, r0 - bhi _081A4020 - adds r0, r1, #1 - strh r0, [r2] - cmp r5, #0 - bne _081A4020 - adds r0, r3, r4 - ldrh r1, [r0] - movs r0, #0x20 - bl SetGameStat - ldr r1, [r7] - adds r0, r1, r6 - adds r0, r0, r4 - ldrh r0, [r0] - ldr r2, _081A3F64 - adds r1, r1, r2 - b _081A401E - .align 2, 0 -_081A3F5C: .4byte gUnknown_3005AF0 -_081A3F60: .4byte 0x0000270E -_081A3F64: .4byte 0x00000D02 -_081A3F68: - ldr r6, _081A3F98 - ldr r0, [r6] - lsls r2, r4, #1 - lsls r1, r5, #2 - adds r1, r2, r1 - ldr r3, _081A3F9C - adds r0, r0, r3 - adds r3, r0, r1 - ldrh r0, [r3] - ldr r2, _081A3FA0 - cmp r0, r2 - bhi _081A3F84 - adds r0, #1 - strh r0, [r3] -_081A3F84: - ldr r0, [r6] - ldr r3, _081A3FA4 - adds r0, r0, r3 - adds r1, r0, r1 - ldrh r0, [r1] - cmp r0, r2 - bhi _081A4020 - adds r0, #1 - b _081A401E - .align 2, 0 -_081A3F98: .4byte gUnknown_3005AF0 -_081A3F9C: .4byte 0x00000D0C -_081A3FA0: .4byte 0x0000270E -_081A3FA4: .4byte 0x00000D1C -_081A3FA8: - ldr r0, _081A3FBC - ldr r2, [r0] - lsls r0, r4, #1 - lsls r1, r5, #2 - adds r0, r0, r1 - ldr r1, _081A3FC0 - adds r2, r2, r1 - adds r1, r2, r0 - b _081A4014 - .align 2, 0 -_081A3FBC: .4byte gUnknown_3005AF0 -_081A3FC0: .4byte 0x00000DC8 -_081A3FC4: - ldr r0, _081A3FD0 - ldr r0, [r0] - lsls r1, r4, #1 - ldr r2, _081A3FD4 - adds r0, r0, r2 - b _081A4012 - .align 2, 0 -_081A3FD0: .4byte gUnknown_3005AF0 -_081A3FD4: .4byte 0x00000DDA -_081A3FD8: - ldr r0, _081A3FEC - ldr r2, [r0] - lsls r0, r4, #1 - lsls r1, r5, #2 - adds r0, r0, r1 - ldr r3, _081A3FF0 - adds r2, r2, r3 - adds r1, r2, r0 - b _081A4014 - .align 2, 0 -_081A3FEC: .4byte gUnknown_3005AF0 -_081A3FF0: .4byte 0x00000DE2 -_081A3FF4: - ldr r0, _081A4000 - ldr r0, [r0] - lsls r1, r4, #1 - ldr r2, _081A4004 - adds r0, r0, r2 - b _081A4012 - .align 2, 0 -_081A4000: .4byte gUnknown_3005AF0 -_081A4004: .4byte 0x00000E04 -_081A4008: - ldr r0, _081A4028 - ldr r0, [r0] - lsls r1, r4, #1 - ldr r3, _081A402C - adds r0, r0, r3 -_081A4012: - adds r1, r0, r1 -_081A4014: - ldrh r3, [r1] - ldr r0, _081A4030 - cmp r3, r0 - bhi _081A4020 - adds r0, r3, #1 -_081A401E: - strh r0, [r1] -_081A4020: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A4028: .4byte gUnknown_3005AF0 -_081A402C: .4byte 0x00000E1A -_081A4030: .4byte 0x0000270E - thumb_func_end sub_081A3EBC - - thumb_func_start sub_081A4034 -sub_081A4034: @ 0x081A4034 - push {r4, r5, r6, lr} - sub sp, #4 - movs r4, #0 - ldr r6, _081A408C - movs r5, #0x64 -_081A403E: - ldr r0, _081A4090 - ldr r0, [r0] - lsls r1, r4, #1 - ldr r2, _081A4094 - adds r0, r0, r2 - adds r1, r0, r1 - ldrh r0, [r1] - cmp r0, #0 - beq _081A407A - adds r1, r0, #0 - muls r1, r5, r1 - movs r0, #0xea - lsls r0, r0, #1 - adds r1, r1, r0 - ldr r0, [r6] - adds r0, r0, r1 - movs r1, #0xc - movs r2, #0 - bl GetMonData - mov r1, sp - strh r0, [r1] - adds r0, r4, #0 - muls r0, r5, r0 - ldr r1, _081A4098 - adds r0, r0, r1 - movs r1, #0xc - mov r2, sp - bl SetMonData -_081A407A: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _081A403E - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081A408C: .4byte gUnknown_3005AEC -_081A4090: .4byte gUnknown_3005AF0 -_081A4094: .4byte 0x00000CAA -_081A4098: .4byte gUnknown_2024190 - thumb_func_end sub_081A4034 - - thumb_func_start sub_081A409C -sub_081A409C: @ 0x081A409C - push {r4, lr} - ldr r4, _081A40BC - bl MoveRecordedBattleToSaveData - strh r0, [r4] - ldr r0, _081A40C0 - ldr r1, [r0] - ldr r0, _081A40C4 - adds r1, r1, r0 - ldrb r0, [r1] - movs r2, #8 - orrs r0, r2 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081A40BC: .4byte gUnknown_2037290 -_081A40C0: .4byte gUnknown_3005AF0 -_081A40C4: .4byte 0x00000CA9 - thumb_func_end sub_081A409C - - thumb_func_start sub_081A40C8 -sub_081A40C8: @ 0x081A40C8 - push {lr} - ldr r0, _081A40D8 - ldrh r0, [r0] - cmp r0, #0 - beq _081A40DC - cmp r0, #1 - beq _081A40F0 - b _081A40FA - .align 2, 0 -_081A40D8: .4byte gUnknown_2037282 -_081A40DC: - ldr r0, _081A40E8 - ldr r1, _081A40EC - ldrh r1, [r1] - bl sub_08162D24 - b _081A40FA - .align 2, 0 -_081A40E8: .4byte gUnknown_2021C40 -_081A40EC: .4byte gUnknown_203886A -_081A40F0: - ldr r0, _081A4100 - ldr r1, _081A4104 - ldrh r1, [r1] - bl sub_08162D24 -_081A40FA: - pop {r0} - bx r0 - .align 2, 0 -_081A4100: .4byte gUnknown_2021C54 -_081A4104: .4byte gUnknown_203886A - thumb_func_end sub_081A40C8 - - thumb_func_start sub_081A4108 -sub_081A4108: @ 0x081A4108 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - movs r0, #0 - str r0, [sp] -_081A4118: - ldr r1, _081A41F8 - ldr r0, [r1] - ldr r2, [sp] - lsls r1, r2, #1 - ldr r4, _081A41FC - adds r0, r0, r4 - adds r0, r0, r1 - ldrh r0, [r0] - subs r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r1 - adds r2, #1 - str r2, [sp, #4] - cmp r0, #5 - bhi _081A41DA - movs r6, #0 - ldr r0, [sp] - movs r2, #0x64 - adds r1, r0, #0 - muls r1, r2, r1 - ldr r0, _081A4200 - adds r7, r1, r0 -_081A4146: - movs r5, #0 - movs r4, #0xd - adds r4, r4, r6 - mov r8, r4 - adds r0, r6, #1 - mov sl, r0 -_081A4152: - ldr r1, _081A41F8 - ldr r0, [r1] - ldr r2, _081A41FC - adds r0, r0, r2 - add r0, sb - ldrh r0, [r0] - movs r4, #0x64 - adds r1, r0, #0 - muls r1, r4, r1 - movs r0, #0xea - lsls r0, r0, #1 - adds r1, r1, r0 - ldr r2, _081A4204 - ldr r0, [r2] - adds r0, r0, r1 - adds r1, r5, #0 - adds r1, #0xd - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - adds r0, r7, #0 - mov r1, r8 - movs r2, #0 - bl GetMonData - cmp r4, r0 - beq _081A4194 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #3 - bls _081A4152 -_081A4194: - cmp r5, #4 - bne _081A41A2 - adds r0, r7, #0 - movs r1, #0xa6 - adds r2, r6, #0 - bl SetMonMoveSlot -_081A41A2: - mov r4, sl - lsls r0, r4, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #3 - bls _081A4146 - ldr r0, _081A4204 - ldr r0, [r0] - ldr r2, _081A41F8 - ldr r1, [r2] - ldr r4, _081A41FC - adds r1, r1, r4 - add r1, sb - ldrh r1, [r1] - subs r1, #1 - movs r3, #0x64 - muls r1, r3, r1 - adds r0, r0, r1 - movs r1, #0x8e - lsls r1, r1, #2 - adds r0, r0, r1 - ldr r2, _081A4200 - ldr r4, [sp] - adds r1, r4, #0 - muls r1, r3, r1 - adds r1, r1, r2 - movs r2, #0x64 - bl memcpy -_081A41DA: - ldr r1, [sp, #4] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - cmp r0, #3 - bls _081A4118 - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A41F8: .4byte gUnknown_3005AF0 -_081A41FC: .4byte 0x00000CAA -_081A4200: .4byte gUnknown_2024190 -_081A4204: .4byte gUnknown_3005AEC - thumb_func_end sub_081A4108 - - thumb_func_start sub_081A4208 -sub_081A4208: @ 0x081A4208 - push {lr} - ldr r0, _081A421C - bl VarGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl SetFrontierBrainEventObjGfx - pop {r0} - bx r0 - .align 2, 0 -_081A421C: .4byte 0x000040CF - thumb_func_end sub_081A4208 - - thumb_func_start Print1PRecord -Print1PRecord: @ 0x081A4220 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - mov sb, r1 - adds r6, r3, #0 - ldr r1, _081A42DC - mov sl, r1 - ldrb r5, [r1] - lsls r4, r0, #1 - ldr r1, _081A42E0 - adds r4, r4, r1 - mov r1, sb - lsls r3, r1, #0x1b - lsrs r3, r3, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - adds r2, r2, r1 - lsls r2, r2, #3 - adds r2, #2 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - str r7, [sp] - movs r0, #0 - mov r8, r0 - str r0, [sp, #4] - str r0, [sp, #8] - adds r0, r5, #0 - movs r1, #1 - adds r2, r4, #0 - bl AddTextPrinterParameterized - movs r0, #0xff - strb r0, [r6, #0xd] - ldrh r0, [r6, #4] - cmp r0, #0 - beq _081A42CC - mov r1, sl - ldrb r0, [r1] - adds r2, r6, #6 - mov r3, sb - adds r3, #2 - lsls r3, r3, #0x1b - lsrs r3, r3, #0x18 - str r7, [sp] - mov r1, r8 - str r1, [sp, #4] - str r1, [sp, #8] - movs r1, #1 - bl AddTextPrinterParameterized - ldrh r1, [r6, #4] - ldr r0, _081A42E4 - cmp r1, r0 - bls _081A4294 - adds r1, r0, #0 -_081A4294: - ldr r0, _081A42E8 - movs r2, #1 - movs r3, #4 - bl sub_080089D8 - ldr r4, _081A42EC - ldr r1, _081A42F0 - ldr r0, [sp, #0x2c] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl StringExpandPlaceholders - mov r1, sl - ldrb r0, [r1] - mov r3, sb - adds r3, #0xe - lsls r3, r3, #0x1b - lsrs r3, r3, #0x18 - str r7, [sp] - mov r1, r8 - str r1, [sp, #4] - str r1, [sp, #8] - movs r1, #1 - adds r2, r4, #0 - bl AddTextPrinterParameterized -_081A42CC: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A42DC: .4byte gUnknown_203A840 -_081A42E0: .4byte gUnknown_85DD564 -_081A42E4: .4byte 0x0000270F -_081A42E8: .4byte gUnknown_2021C54 -_081A42EC: .4byte gUnknown_2021C7C -_081A42F0: .4byte gUnknown_85DD53C - thumb_func_end Print1PRecord - - thumb_func_start sub_081A42F4 -sub_081A42F4: @ 0x081A42F4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - mov r8, r1 - adds r4, r2, #0 - adds r6, r3, #0 - ldr r1, _081A43E0 - mov sb, r1 - ldrb r5, [r1] - lsls r2, r0, #1 - ldr r1, _081A43E4 - adds r2, r2, r1 - mov r1, r8 - lsls r3, r1, #0x1b - lsrs r3, r3, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - adds r4, r4, r1 - lsls r0, r4, #3 - adds r0, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - str r0, [sp] - movs r7, #0 - str r7, [sp, #4] - str r7, [sp, #8] - adds r0, r5, #0 - movs r1, #1 - bl AddTextPrinterParameterized - ldrh r0, [r6, #8] - cmp r0, #0 - beq _081A43D0 - movs r0, #0xff - strb r0, [r6, #0x11] - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r6, #0x19] - mov r1, sb - ldrb r0, [r1] - adds r2, r6, #0 - adds r2, #0xa - mov r3, r8 - adds r3, #2 - lsls r3, r3, #0x1b - lsrs r3, r3, #0x18 - subs r1, r4, #1 - lsls r1, r1, #3 - adds r1, #2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp] - str r7, [sp, #4] - str r7, [sp, #8] - movs r1, #1 - bl AddTextPrinterParameterized - mov r1, sb - ldrb r0, [r1] - adds r2, r6, #0 - adds r2, #0x12 - mov r3, r8 - adds r3, #4 - lsls r3, r3, #0x1b - lsrs r3, r3, #0x18 - adds r1, r4, #1 - lsls r1, r1, #3 - adds r1, #2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp] - str r7, [sp, #4] - str r7, [sp, #8] - movs r1, #1 - bl AddTextPrinterParameterized - ldrh r1, [r6, #8] - ldr r0, _081A43E8 - cmp r1, r0 - bls _081A439E - adds r1, r0, #0 -_081A439E: - ldr r0, _081A43EC - movs r2, #1 - movs r3, #4 - bl sub_080089D8 - ldr r4, _081A43F0 - ldr r0, _081A43F4 - ldr r1, [r0, #0x24] - adds r0, r4, #0 - bl StringExpandPlaceholders - mov r1, sb - ldrb r0, [r1] - mov r3, r8 - adds r3, #0xe - lsls r3, r3, #0x1b - lsrs r3, r3, #0x18 - mov r1, sl - str r1, [sp] - str r7, [sp, #4] - str r7, [sp, #8] - movs r1, #1 - adds r2, r4, #0 - bl AddTextPrinterParameterized -_081A43D0: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A43E0: .4byte gUnknown_203A840 -_081A43E4: .4byte gUnknown_85DD564 -_081A43E8: .4byte 0x0000270F -_081A43EC: .4byte gUnknown_2021C54 -_081A43F0: .4byte gUnknown_2021C7C -_081A43F4: .4byte gUnknown_85DD53C - thumb_func_end sub_081A42F4 - - thumb_func_start sub_081A43F8 -sub_081A43F8: @ 0x081A43F8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x44 - mov sb, r0 - mov sl, r1 - str r2, [sp, #0x40] - movs r0, #0xac - lsls r0, r0, #1 - bl AllocZeroed - mov r8, r0 - bl GetPlayerHallRecords - add r0, sp, #0x30 - mov ip, r0 - ldr r0, _081A44C8 - ldr r2, [r0] - ldr r3, [sp, #0x40] - lsls r1, r3, #1 - adds r1, r1, r3 - lsls r1, r1, #4 - mov r4, sl - lsls r0, r4, #1 - add r0, sl - lsls r0, r0, #5 - adds r1, r1, r0 - adds r4, r1, r2 - mov r3, sp - movs r2, #2 -_081A4438: - adds r0, r3, #0 - movs r5, #0x87 - lsls r5, r5, #2 - adds r1, r4, r5 - ldm r1!, {r5, r6, r7} - stm r0!, {r5, r6, r7} - ldr r1, [r1] - str r1, [r0] - adds r4, #0x10 - adds r3, #0x10 - subs r2, #1 - cmp r2, #0 - bge _081A4438 - ldr r6, [sp, #0x40] - lsls r0, r6, #4 - mov r7, sl - lsls r1, r7, #5 - adds r0, r0, r1 - mov r1, ip - add r0, r8 - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - ldr r0, [r0] - str r0, [r1] - movs r2, #0 -_081A446A: - movs r1, #0 - movs r4, #0 - movs r3, #0 - lsls r5, r2, #4 - adds r6, r2, #1 - mov r2, sp -_081A4476: - ldrh r0, [r2, #4] - cmp r0, r1 - ble _081A4480 - adds r4, r3, #0 - adds r1, r0, #0 -_081A4480: - adds r2, #0x10 - adds r3, #1 - cmp r3, #3 - ble _081A4476 - mov r0, sp - ldrh r0, [r0, #0x34] - cmp r0, r1 - blt _081A4492 - movs r4, #3 -_081A4492: - lsls r0, r4, #4 - mov r7, sp - adds r2, r7, r0 - mov r0, sb - adds r1, r5, r0 - adds r0, r2, #0 - ldm r0!, {r3, r4, r5} - stm r1!, {r3, r4, r5} - ldr r0, [r0] - str r0, [r1] - movs r0, #0 - strh r0, [r2, #4] - adds r2, r6, #0 - cmp r2, #2 - ble _081A446A - mov r0, r8 - bl Free - add sp, #0x44 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A44C8: .4byte gUnknown_3005AF0 - thumb_func_end sub_081A43F8 - - thumb_func_start Fill2PRecords -Fill2PRecords: @ 0x081A44CC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x74 - mov sb, r0 - mov sl, r1 - movs r0, #0xac - lsls r0, r0, #1 - bl AllocZeroed - mov r8, r0 - bl GetPlayerHallRecords - mov r0, sp - adds r0, #0x54 - str r0, [sp, #0x70] - add r1, sp, #0x5c - mov ip, r1 - ldr r0, _081A45A8 - ldr r1, [r0] - movs r0, #0x54 - mov r2, sl - muls r2, r0, r2 - adds r0, r2, #0 - adds r3, r0, r1 - mov r2, sp - movs r4, #2 -_081A4506: - adds r0, r2, #0 - ldr r5, _081A45AC - adds r1, r3, r5 - ldm r1!, {r5, r6, r7} - stm r0!, {r5, r6, r7} - ldm r1!, {r5, r6, r7} - stm r0!, {r5, r6, r7} - ldr r1, [r1] - str r1, [r0] - adds r3, #0x1c - adds r2, #0x1c - subs r4, #1 - cmp r4, #0 - bge _081A4506 - mov r6, sl - lsls r0, r6, #3 - subs r0, r0, r6 - lsls r0, r0, #2 - add r0, r8 - ldr r1, [sp, #0x70] - movs r7, #0x90 - lsls r7, r7, #1 - adds r0, r0, r7 - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - ldm r0!, {r5, r6, r7} - stm r1!, {r5, r6, r7} - ldr r0, [r0] - str r0, [r1] - movs r4, #0 -_081A4542: - movs r1, #0 - movs r5, #0 - movs r3, #0 - lsls r6, r4, #3 - adds r7, r4, #1 - mov r2, sp -_081A454E: - ldrh r0, [r2, #8] - cmp r0, r1 - ble _081A4558 - adds r5, r3, #0 - adds r1, r0, #0 -_081A4558: - adds r2, #0x1c - adds r3, #1 - cmp r3, #2 - ble _081A454E - mov r2, ip - ldrh r0, [r2] - cmp r0, r1 - blt _081A456A - movs r5, #3 -_081A456A: - subs r1, r6, r4 - lsls r1, r1, #2 - lsls r0, r5, #3 - subs r0, r0, r5 - lsls r0, r0, #2 - mov r3, sp - adds r2, r3, r0 - add r1, sb - adds r0, r2, #0 - ldm r0!, {r4, r5, r6} - stm r1!, {r4, r5, r6} - ldm r0!, {r3, r4, r5} - stm r1!, {r3, r4, r5} - ldr r0, [r0] - str r0, [r1] - movs r0, #0 - strh r0, [r2, #8] - adds r4, r7, #0 - cmp r4, #2 - ble _081A4542 - mov r0, r8 - bl Free - add sp, #0x74 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A45A8: .4byte gUnknown_3005AF0 -_081A45AC: .4byte 0x0000057C - thumb_func_end Fill2PRecords - - thumb_func_start sub_081A45B0 -sub_081A45B0: @ 0x081A45B0 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x90 - adds r7, r0, #0 - mov sb, r1 - ldr r0, _081A464C - ldr r4, _081A4650 - lsls r5, r7, #3 - adds r1, r5, r4 - ldr r1, [r1] - bl StringCopy - ldr r0, _081A4654 - mov r8, r0 - adds r4, #4 - adds r5, r5, r4 - ldr r1, [r5] - bl StringExpandPlaceholders - ldr r5, _081A4658 - ldrb r0, [r5] - movs r6, #2 - str r6, [sp] - movs r4, #0 - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - mov r2, r8 - movs r3, #0xc - bl AddTextPrinterParameterized - ldrb r0, [r5] - ldr r2, _081A465C - mov r3, sb - lsls r1, r3, #2 - adds r1, r1, r2 - ldr r2, [r1] - str r6, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r3, #0x84 - bl AddTextPrinterParameterized - cmp r7, #9 - bne _081A4668 - ldr r2, _081A4660 - ldr r0, [r2] - ldr r1, _081A4664 - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] - ldr r0, [r2] - movs r3, #0xef - lsls r3, r3, #4 - adds r0, r0, r3 - movs r1, #1 - rsbs r1, r1, #0 - strb r1, [r0] - add r4, sp, #0x3c - adds r0, r4, #0 - mov r1, sb - bl Fill2PRecords - movs r5, #0 -_081A4636: - adds r0, r5, #0 - movs r1, #1 - movs r2, #4 - adds r3, r4, #0 - bl sub_081A42F4 - adds r4, #0x1c - adds r5, #1 - cmp r5, #2 - ble _081A4636 - b _081A468C - .align 2, 0 -_081A464C: .4byte gUnknown_2021C40 -_081A4650: .4byte gUnknown_85DD4A4 -_081A4654: .4byte gUnknown_2021C7C -_081A4658: .4byte gUnknown_203A840 -_081A465C: .4byte gUnknown_85DD504 -_081A4660: .4byte gUnknown_3005AF0 -_081A4664: .4byte 0x00000EE8 -_081A4668: - add r0, sp, #0xc - adds r1, r7, #0 - mov r2, sb - bl sub_081A43F8 - movs r5, #0 - add r4, sp, #0xc -_081A4676: - str r7, [sp] - adds r0, r5, #0 - movs r1, #1 - movs r2, #4 - adds r3, r4, #0 - bl Print1PRecord - adds r4, #0x10 - adds r5, #1 - cmp r5, #2 - ble _081A4676 -_081A468C: - add sp, #0x90 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081A45B0 - - thumb_func_start ShowRankingHallRecordsWindow -ShowRankingHallRecordsWindow: @ 0x081A469C - push {r4, lr} - ldr r4, _081A46D8 - ldr r0, _081A46DC - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, #0 - bl sub_08196FF0 - ldrb r0, [r4] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r0, _081A46E0 - ldrh r0, [r0] - movs r1, #0 - bl sub_081A45B0 - ldrb r0, [r4] - bl PutWindowTilemap - ldrb r0, [r4] - movs r1, #3 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081A46D8: .4byte gUnknown_203A840 -_081A46DC: .4byte gUnknown_85DD2E0 -_081A46E0: .4byte gUnknown_2037282 - thumb_func_end ShowRankingHallRecordsWindow - - thumb_func_start ScrollRankingHallRecordsWindow -ScrollRankingHallRecordsWindow: @ 0x081A46E4 - push {r4, lr} - ldr r4, _081A4708 - ldrb r0, [r4] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r0, _081A470C - ldrh r0, [r0] - movs r1, #1 - bl sub_081A45B0 - ldrb r0, [r4] - movs r1, #2 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081A4708: .4byte gUnknown_203A840 -_081A470C: .4byte gUnknown_2037282 - thumb_func_end ScrollRankingHallRecordsWindow - - thumb_func_start ClearRankingHallRecords -ClearRankingHallRecords: @ 0x081A4710 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - movs r1, #0 - ldr r3, _081A4814 -_081A4720: - movs r6, #0 - lsls r0, r1, #1 - adds r2, r1, #1 - mov sl, r2 - adds r0, r0, r1 - lsls r0, r0, #5 - mov r8, r0 - movs r7, #0 - movs r0, #0x87 - lsls r0, r0, #2 - add r0, r8 - mov sb, r0 -_081A4738: - movs r5, #0 - adds r2, r7, #0 - mov r1, r8 - adds r4, r7, r1 -_081A4740: - ldr r0, [r3] - add r0, sb - adds r0, r0, r2 - lsls r1, r5, #4 - adds r0, r0, r1 - movs r1, #0 - str r2, [sp] - str r3, [sp, #4] - bl CopyTrainerId - ldr r3, [sp, #4] - ldr r0, [r3] - adds r0, r0, r4 - ldr r1, _081A4818 - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] - ldr r0, [r3] - adds r0, r0, r4 - movs r1, #0x88 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0] - adds r4, #0x10 - adds r5, #1 - ldr r2, [sp] - cmp r5, #2 - ble _081A4740 - adds r7, #0x30 - adds r6, #1 - cmp r6, #1 - ble _081A4738 - mov r1, sl - cmp r1, #8 - ble _081A4720 - movs r6, #0 - ldr r7, _081A4814 - movs r2, #0x54 - mov sl, r2 - movs r3, #0xff - mov sb, r3 -_081A4794: - adds r0, r6, #1 - mov r8, r0 - mov r1, sl - muls r1, r6, r1 - movs r0, #0x54 - adds r4, r6, #0 - muls r4, r0, r4 - movs r2, #0 - ldr r3, _081A481C - adds r6, r1, r3 - movs r5, #2 -_081A47AA: - ldr r0, [r7] - adds r0, r0, r6 - adds r0, r0, r2 - movs r1, #0 - str r2, [sp] - bl CopyTrainerId - ldr r0, [r7] - adds r0, r0, r6 - ldr r2, [sp] - adds r0, r0, r2 - adds r0, #4 - movs r1, #0 - bl CopyTrainerId - ldr r1, [r7] - adds r1, r1, r4 - ldr r0, _081A4820 - adds r1, r1, r0 - ldrb r0, [r1] - mov r3, sb - orrs r0, r3 - strb r0, [r1] - ldr r1, [r7] - adds r1, r1, r4 - ldr r0, _081A4824 - adds r1, r1, r0 - ldrb r0, [r1] - orrs r0, r3 - strb r0, [r1] - ldr r0, [r7] - adds r0, r0, r4 - ldr r1, _081A4828 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0] - adds r4, #0x1c - ldr r2, [sp] - adds r2, #0x1c - subs r5, #1 - cmp r5, #0 - bge _081A47AA - mov r6, r8 - cmp r6, #1 - ble _081A4794 - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A4814: .4byte gUnknown_3005AF0 -_081A4818: .4byte 0x00000222 -_081A481C: .4byte 0x0000057C -_081A4820: .4byte 0x00000586 -_081A4824: .4byte 0x0000058E -_081A4828: .4byte 0x00000584 - thumb_func_end ClearRankingHallRecords - - thumb_func_start sub_081A482C -sub_081A482C: @ 0x081A482C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r0, #0x96 - lsls r0, r0, #2 - bl AllocZeroed - adds r7, r0, #0 - adds r4, r7, #0 - movs r5, #0 - movs r0, #0xfa - lsls r0, r0, #1 - adds r6, r7, r0 - ldr r0, _081A48A4 - mov r8, r0 -_081A484A: - mov r0, r8 - adds r1, r5, r0 - adds r0, r4, #0 - movs r2, #0x64 - bl memcpy - adds r4, #0x64 - adds r5, #0x64 - cmp r4, r6 - ble _081A484A - ldr r4, _081A48A8 - ldrb r5, [r4] - bl LoadPlayerParty - bl SetContinueGameWarpStatusToDynamicWarp - movs r0, #1 - bl TrySavingData - bl sub_08076780 - strb r5, [r4] - adds r4, r7, #0 - ldr r5, _081A48A4 - movs r0, #0xfa - lsls r0, r0, #1 - adds r6, r7, r0 -_081A4880: - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x64 - bl memcpy - adds r4, #0x64 - adds r5, #0x64 - cmp r4, r6 - ble _081A4880 - adds r0, r7, #0 - bl Free - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A48A4: .4byte gUnknown_2024190 -_081A48A8: .4byte gUnknown_202418D - thumb_func_end sub_081A482C - - thumb_func_start sub_081A48AC -sub_081A48AC: @ 0x081A48AC - push {lr} - ldr r0, _081A48C8 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - beq _081A48CC - bl sub_08185BF8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _081A48D6 - .align 2, 0 -_081A48C8: .4byte gUnknown_2022C90 -_081A48CC: - ldr r0, _081A48EC - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 -_081A48D6: - ldr r2, _081A48F0 - ldr r1, _081A48F4 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r2 - ldrb r0, [r0, #3] - pop {r1} - bx r1 - .align 2, 0 -_081A48EC: .4byte 0x000040CF -_081A48F0: .4byte gUnknown_82E383C -_081A48F4: .4byte gUnknown_85DD56A - thumb_func_end sub_081A48AC - - thumb_func_start sub_081A48F8 -sub_081A48F8: @ 0x081A48F8 - push {lr} - ldr r0, _081A4914 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - beq _081A4918 - bl sub_08185BF8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _081A4922 - .align 2, 0 -_081A4914: .4byte gUnknown_2022C90 -_081A4918: - ldr r0, _081A4938 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 -_081A4922: - ldr r2, _081A493C - ldr r1, _081A4940 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r2 - ldrb r0, [r0, #1] - pop {r1} - bx r1 - .align 2, 0 -_081A4938: .4byte 0x000040CF -_081A493C: .4byte gUnknown_82E383C -_081A4940: .4byte gUnknown_85DD56A - thumb_func_end sub_081A48F8 - - thumb_func_start CopyFrontierBrainTrainerName -CopyFrontierBrainTrainerName: @ 0x081A4944 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _081A4960 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - beq _081A4964 - bl sub_08185BF8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _081A496E - .align 2, 0 -_081A4960: .4byte gUnknown_2022C90 -_081A4964: - ldr r0, _081A499C - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 -_081A496E: - movs r3, #0 - lsls r0, r0, #1 - ldr r2, _081A49A0 - ldr r1, _081A49A4 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #5 - adds r2, #4 - adds r2, r0, r2 -_081A4980: - adds r1, r4, r3 - ldrb r0, [r2] - strb r0, [r1] - adds r2, #1 - adds r3, #1 - cmp r3, #6 - ble _081A4980 - adds r1, r4, r3 - movs r0, #0xff - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081A499C: .4byte 0x000040CF -_081A49A0: .4byte gUnknown_82E383C -_081A49A4: .4byte gUnknown_85DD56A - thumb_func_end CopyFrontierBrainTrainerName - - thumb_func_start IsFrontierBrainFemale -IsFrontierBrainFemale: @ 0x081A49A8 - push {lr} - ldr r0, _081A49C0 - bl VarGet - lsls r0, r0, #0x10 - ldr r1, _081A49C4 - lsrs r0, r0, #0xf - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - pop {r1} - bx r1 - .align 2, 0 -_081A49C0: .4byte 0x000040CF -_081A49C4: .4byte gUnknown_85DD47F - thumb_func_end IsFrontierBrainFemale - - thumb_func_start SetFrontierBrainEventObjGfx_2 -SetFrontierBrainEventObjGfx_2: @ 0x081A49C8 - push {lr} - ldr r0, _081A49E8 - bl VarGet - lsls r0, r0, #0x10 - ldr r2, _081A49EC - ldr r1, _081A49F0 - lsrs r0, r0, #0xf - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r2, #0 - bl VarSet - pop {r0} - bx r0 - .align 2, 0 -_081A49E8: .4byte 0x000040CF -_081A49EC: .4byte 0x00004010 -_081A49F0: .4byte gUnknown_85DD47F - thumb_func_end SetFrontierBrainEventObjGfx_2 - - thumb_func_start CreateFrontierBrainPokemon -CreateFrontierBrainPokemon: @ 0x081A49F4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x44 - ldr r0, _081A4A2C - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x20] - bl GetFronterBrainSymbol - str r0, [sp, #0x24] - ldr r0, [sp, #0x20] - cmp r0, #1 - bne _081A4A34 - ldr r0, _081A4A30 - bl sub_08194FA0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetDomeTrainerMonCountInBits - adds r4, r0, #0 - b _081A4A36 - .align 2, 0 -_081A4A2C: .4byte 0x000040CF -_081A4A30: .4byte 0x000003FE -_081A4A34: - movs r4, #7 -_081A4A36: - bl ZeroEnemyPartyMons - movs r1, #0 - str r1, [sp, #0x18] - bl SetFacilityPtrsGetLevel - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x1c] - movs r2, #0 - str r2, [sp, #0x14] -_081A4A4C: - movs r0, #1 - ands r0, r4 - asrs r4, r4, #1 - str r4, [sp, #0x30] - ldr r3, [sp, #0x14] - adds r3, #1 - str r3, [sp, #0x28] - cmp r0, #0 - bne _081A4A60 - b _081A4BB4 -_081A4A60: - ldr r4, [sp, #0x14] - lsls r4, r4, #2 - mov sb, r4 - ldr r0, [sp, #0x24] - lsls r0, r0, #4 - str r0, [sp, #0x38] - ldr r1, [sp, #0x20] - lsls r1, r1, #4 - str r1, [sp, #0x34] - ldr r2, [sp, #0x1c] - lsls r2, r2, #0x18 - str r2, [sp, #0x3c] - ldr r3, [sp, #0x18] - adds r3, #1 - str r3, [sp, #0x2c] - ldr r0, [sp, #0x14] - add r0, sb - lsls r0, r0, #2 - mov r8, r0 -_081A4A86: - bl Random - adds r4, r0, #0 - bl Random - lsls r4, r4, #0x10 - lsrs r7, r4, #0x10 - lsls r0, r0, #0x10 - orrs r7, r0 - ldr r0, _081A4BD0 - adds r1, r7, #0 - bl IsShinyOtIdPersonality - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081A4A86 - ldr r4, [sp, #0x38] - ldr r1, [sp, #0x24] - subs r0, r4, r1 - lsls r5, r0, #2 - mov r2, r8 - adds r4, r2, r5 - ldr r3, [sp, #0x34] - ldr r1, [sp, #0x20] - subs r0, r3, r1 - lsls r6, r0, #3 - adds r4, r4, r6 - ldr r2, _081A4BD4 - adds r4, r4, r2 - adds r0, r7, #0 - bl GetNatureFromPersonality - ldrb r1, [r4, #5] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r1, r0 - bne _081A4A86 - ldr r4, [sp, #0x18] - movs r0, #0x64 - adds r3, r4, #0 - muls r3, r0, r3 - mov r8, r3 - ldr r1, _081A4BD8 - add r1, r8 - mov sl, r1 - ldr r4, [sp, #0x14] - add r4, sb - lsls r4, r4, #2 - adds r0, r4, r5 - adds r0, r0, r6 - ldr r2, _081A4BD4 - adds r0, r0, r2 - ldrh r1, [r0] - ldr r3, [sp, #0x3c] - lsrs r2, r3, #0x18 - ldrb r3, [r0, #4] - movs r0, #1 - str r0, [sp] - str r7, [sp, #4] - str r0, [sp, #8] - ldr r0, _081A4BD0 - str r0, [sp, #0xc] - mov r0, sl - bl CreateMon - ldr r0, _081A4BD4 - adds r5, r5, r0 - adds r5, r6, r5 - adds r4, r5, r4 - adds r4, #2 - mov r0, sl - movs r1, #0xc - adds r2, r4, #0 - bl SetMonData - movs r7, #0 - mov r6, r8 - ldr r3, _081A4BD8 -_081A4B22: - adds r1, r7, #0 - adds r1, #0x1a - ldr r0, [sp, #0x14] - add r0, sb - lsls r4, r0, #2 - adds r2, r5, r4 - adds r0, r7, #6 - adds r2, r2, r0 - adds r0, r6, r3 - str r3, [sp, #0x40] - bl SetMonData - adds r7, #1 - ldr r3, [sp, #0x40] - cmp r7, #5 - ble _081A4B22 - movs r1, #0xff - add r0, sp, #0x10 - strb r1, [r0] - movs r7, #0 - ldr r1, [sp, #0x18] - movs r2, #0x64 - adds r6, r1, #0 - muls r6, r2, r6 - ldr r3, _081A4BDC - mov r8, r3 - ldr r3, _081A4BD8 - adds r5, r4, #0 -_081A4B5A: - ldr r4, [sp, #0x38] - ldr r0, [sp, #0x24] - subs r1, r4, r0 - lsls r1, r1, #2 - adds r1, r5, r1 - ldr r2, [sp, #0x34] - ldr r4, [sp, #0x20] - subs r0, r2, r4 - lsls r0, r0, #3 - adds r1, r1, r0 - add r1, r8 - ldrh r4, [r1] - lsls r2, r7, #0x18 - lsrs r2, r2, #0x18 - adds r0, r6, r3 - adds r1, r4, #0 - str r3, [sp, #0x40] - bl SetMonMoveSlot - ldr r3, [sp, #0x40] - cmp r4, #0xda - bne _081A4B8C - movs r1, #0 - add r0, sp, #0x10 - strb r1, [r0] -_081A4B8C: - adds r5, #2 - adds r7, #1 - cmp r7, #3 - ble _081A4B5A - ldr r0, [sp, #0x18] - movs r1, #0x64 - adds r4, r0, #0 - muls r4, r1, r4 - ldr r0, _081A4BD8 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x20 - add r2, sp, #0x10 - bl SetMonData - adds r0, r4, #0 - bl CalculateMonStats - ldr r2, [sp, #0x2c] - str r2, [sp, #0x18] -_081A4BB4: - ldr r4, [sp, #0x30] - ldr r3, [sp, #0x28] - str r3, [sp, #0x14] - cmp r3, #2 - bgt _081A4BC0 - b _081A4A4C -_081A4BC0: - add sp, #0x44 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A4BD0: .4byte 0x0000EF2A -_081A4BD4: .4byte gUnknown_85DCB98 -_081A4BD8: .4byte gUnknown_20243E8 -_081A4BDC: .4byte gUnknown_85DCBA4 - thumb_func_end CreateFrontierBrainPokemon - - thumb_func_start GetFrontierBrainMonSpecies -GetFrontierBrainMonSpecies: @ 0x081A4BE0 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081A4C18 - bl VarGet - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - bl GetFronterBrainSymbol - ldr r3, _081A4C1C - lsls r2, r4, #2 - adds r2, r2, r4 - lsls r1, r0, #4 - subs r1, r1, r0 - adds r1, r1, r2 - lsls r1, r1, #2 - lsls r0, r5, #4 - subs r0, r0, r5 - lsls r0, r0, #3 - adds r1, r1, r0 - adds r1, r1, r3 - ldrh r0, [r1] - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081A4C18: .4byte 0x000040CF -_081A4C1C: .4byte gUnknown_85DCB98 - thumb_func_end GetFrontierBrainMonSpecies - - thumb_func_start SetFrontierBrainEventObjGfx -SetFrontierBrainEventObjGfx: @ 0x081A4C20 - push {lr} - lsls r0, r0, #0x18 - ldr r2, _081A4C40 - ldr r3, _081A4C44 - adds r1, r3, #0 - strh r1, [r2] - ldr r2, _081A4C48 - ldr r1, _081A4C4C - lsrs r0, r0, #0x17 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r2, #0 - bl VarSet - pop {r0} - bx r0 - .align 2, 0 -_081A4C40: .4byte gUnknown_203886A -_081A4C44: .4byte 0x000003FE -_081A4C48: .4byte 0x00004010 -_081A4C4C: .4byte gUnknown_85DD47F - thumb_func_end SetFrontierBrainEventObjGfx - - thumb_func_start GetFrontierBrainMonMove -GetFrontierBrainMonMove: @ 0x081A4C50 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r4, r1, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081A4C98 - bl VarGet - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - bl GetFronterBrainSymbol - ldr r2, _081A4C9C - lsls r4, r4, #1 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #2 - adds r4, r4, r1 - lsls r1, r0, #4 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r4, r4, r1 - lsls r0, r5, #4 - subs r0, r0, r5 - lsls r0, r0, #3 - adds r4, r4, r0 - adds r2, #0xc - adds r4, r4, r2 - ldrh r0, [r4] - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_081A4C98: .4byte 0x000040CF -_081A4C9C: .4byte gUnknown_85DCB98 - thumb_func_end GetFrontierBrainMonMove - - thumb_func_start GetFrontierBrainMonNature -GetFrontierBrainMonNature: @ 0x081A4CA0 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081A4CD8 - bl VarGet - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - bl GetFronterBrainSymbol - ldr r3, _081A4CDC - lsls r2, r4, #2 - adds r2, r2, r4 - lsls r1, r0, #4 - subs r1, r1, r0 - adds r1, r1, r2 - lsls r1, r1, #2 - lsls r0, r5, #4 - subs r0, r0, r5 - lsls r0, r0, #3 - adds r1, r1, r0 - adds r1, r1, r3 - ldrb r0, [r1, #5] - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081A4CD8: .4byte 0x000040CF -_081A4CDC: .4byte gUnknown_85DCB98 - thumb_func_end GetFrontierBrainMonNature - - thumb_func_start GetFrontierBrainMonEvs -GetFrontierBrainMonEvs: @ 0x081A4CE0 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r4, r1, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081A4D24 - bl VarGet - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - bl GetFronterBrainSymbol - ldr r2, _081A4D28 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #2 - adds r4, r4, r1 - lsls r1, r0, #4 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r4, r4, r1 - lsls r0, r5, #4 - subs r0, r0, r5 - lsls r0, r0, #3 - adds r4, r4, r0 - adds r2, #6 - adds r4, r4, r2 - ldrb r0, [r4] - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_081A4D24: .4byte 0x000040CF -_081A4D28: .4byte gUnknown_85DCB98 - thumb_func_end GetFrontierBrainMonEvs - - thumb_func_start GetFronterBrainSymbol -GetFronterBrainSymbol: @ 0x081A4D2C - push {r4, r5, lr} - ldr r0, _081A4D68 - bl VarGet - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - bl GetPlayerSymbolCountForFacility - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #2 - bne _081A4D90 - bl GetCurrentFacilityWinStreak - lsls r0, r0, #0x10 - ldr r3, _081A4D6C - lsls r2, r5, #2 - adds r1, r3, #3 - adds r1, r2, r1 - lsrs r0, r0, #0x10 - ldrb r1, [r1] - adds r1, r0, r1 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r1, r0 - bne _081A4D70 - movs r4, #0 - b _081A4D90 - .align 2, 0 -_081A4D68: .4byte 0x000040CF -_081A4D6C: .4byte gUnknown_85DCB7C -_081A4D70: - adds r0, r3, #1 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r1, r0 - beq _081A4D8E - cmp r1, r0 - ble _081A4D90 - subs r0, r1, r0 - adds r1, r3, #2 - adds r1, r2, r1 - ldrb r1, [r1] - bl __modsi3 - cmp r0, #0 - bne _081A4D90 -_081A4D8E: - movs r4, #1 -_081A4D90: - adds r0, r4, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end GetFronterBrainSymbol - - thumb_func_start CopyFrontierBrainText -CopyFrontierBrainText: @ 0x081A4D98 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _081A4DC0 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - beq _081A4DC4 - bl sub_08185BF8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl sub_08185C04 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - b _081A4DD4 - .align 2, 0 -_081A4DC0: .4byte gUnknown_2022C90 -_081A4DC4: - ldr r0, _081A4DE0 - bl VarGet - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - bl GetFronterBrainSymbol - adds r1, r0, #0 -_081A4DD4: - cmp r5, #0 - beq _081A4DE4 - cmp r5, #1 - beq _081A4E04 - b _081A4E18 - .align 2, 0 -_081A4DE0: .4byte 0x000040CF -_081A4DE4: - ldr r0, _081A4DFC - ldr r2, _081A4E00 - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r2, [r1] - lsls r1, r4, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl StringCopy - b _081A4E18 - .align 2, 0 -_081A4DFC: .4byte gUnknown_2021C7C -_081A4E00: .4byte gUnknown_85DD5E8 -_081A4E04: - ldr r0, _081A4E20 - ldr r2, _081A4E24 - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r2, [r1] - lsls r1, r4, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl StringCopy -_081A4E18: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081A4E20: .4byte gUnknown_2021C7C -_081A4E24: .4byte gUnknown_85DD5F0 - thumb_func_end CopyFrontierBrainText - - thumb_func_start sub_081A4E28 -sub_081A4E28: @ 0x081A4E28 - push {lr} - ldr r1, _081A4E40 - ldr r0, _081A4E44 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - thumb_func_end sub_081A4E28 - - thumb_func_start sub_081A4E3C -sub_081A4E3C: @ 0x081A4E3C - bx r0 - .align 2, 0 -_081A4E40: .4byte gUnknown_85DD7BC -_081A4E44: .4byte gUnknown_2037280 - thumb_func_end sub_081A4E3C - - thumb_func_start BattleArena_ShowJudgmentWindow -BattleArena_ShowJudgmentWindow: @ 0x081A4E48 - push {r4, r5, r6, lr} - sub sp, #4 - adds r5, r0, #0 - movs r6, #0 - ldrb r0, [r5] - cmp r0, #0xa - bls _081A4E58 - b _081A5134 -_081A4E58: - lsls r0, r0, #2 - ldr r1, _081A4E64 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081A4E64: .4byte _081A4E68 -_081A4E68: @ jump table - .4byte _081A4E94 @ case 0 - .4byte _081A4EE4 @ case 1 - .4byte _081A4F0C @ case 2 - .4byte _081A4FA4 @ case 3 - .4byte _081A4FFC @ case 4 - .4byte _081A501C @ case 5 - .4byte _081A503C @ case 6 - .4byte _081A5080 @ case 7 - .4byte _081A512E @ case 8 - .4byte _081A50C4 @ case 9 - .4byte _081A5110 @ case 10 -_081A4E94: - ldr r0, _081A4ECC - movs r1, #0 - str r1, [sp] - movs r1, #4 - movs r2, #0 - movs r3, #8 - bl BeginNormalPaletteFade - ldr r1, _081A4ED0 - movs r0, #0x48 - bl SetGpuReg - ldr r0, _081A4ED4 - bl LoadCompressedSpriteSheet - ldr r0, _081A4ED8 - movs r1, #0xf8 - lsls r1, r1, #1 - movs r2, #0x20 - bl LoadCompressedPalette - ldr r1, _081A4EDC - movs r0, #0xff - strh r0, [r1] - ldr r1, _081A4EE0 - movs r0, #0x70 - strh r0, [r1] - b _081A512E - .align 2, 0 -_081A4ECC: .4byte 0x7FFFFF1C -_081A4ED0: .4byte 0x00003F3E -_081A4ED4: .4byte gUnknown_85DD7AC -_081A4ED8: .4byte gUnknown_8D855CC -_081A4EDC: .4byte gUnknown_2022AD8 -_081A4EE0: .4byte gUnknown_2022ADA -_081A4EE4: - ldr r0, _081A4F08 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _081A4EF6 - b _081A5134 -_081A4EF6: - str r0, [sp] - movs r0, #6 - movs r1, #0 - movs r2, #0x17 - movs r3, #0xd - bl HandleBattleWindow - b _081A512E - .align 2, 0 -_081A4F08: .4byte gUnknown_2037C74 -_081A4F0C: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081A4F18 - b _081A5134 -_081A4F18: - ldr r1, _081A4F7C - movs r2, #0xa1 - strb r2, [r1] - movs r0, #0xff - strb r0, [r1, #1] - ldr r1, _081A4F80 - strb r2, [r1] - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r1, #1] - ldr r0, _081A4F84 - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r4, _081A4F88 - adds r0, r4, #0 - movs r1, #0xf - bl sub_0814FA04 - ldr r0, _081A4F8C - movs r1, #0x10 - bl sub_0814FA04 - ldr r0, _081A4F90 - bl BattleStringExpandPlaceholdersToDisplayedString - adds r0, r4, #0 - movs r1, #0x11 - bl sub_0814FA04 - ldr r0, _081A4F94 - movs r1, #0x12 - bl sub_0814FA04 - ldr r0, _081A4F98 - movs r1, #0x13 - bl sub_0814FA04 - ldr r0, _081A4F9C - movs r1, #0x14 - bl sub_0814FA04 - ldr r0, _081A4FA0 - bl BattleStringExpandPlaceholdersToDisplayedString - adds r0, r4, #0 - movs r1, #0x15 - bl sub_0814FA04 - b _081A512E - .align 2, 0 -_081A4F7C: .4byte gUnknown_2022C0C -_081A4F80: .4byte gUnknown_2022C1C -_081A4F84: .4byte gUnknown_85ABD9A -_081A4F88: .4byte gUnknown_2022AE0 -_081A4F8C: .4byte gUnknown_85ABD9D -_081A4F90: .4byte gUnknown_85ABDA0 -_081A4F94: .4byte gUnknown_85ABDA3 -_081A4F98: .4byte gUnknown_85ABDA7 -_081A4F9C: .4byte gUnknown_85ABDAA -_081A4FA0: .4byte gUnknown_85ABDAE -_081A4FA4: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081A4FB0 - b _081A5134 -_081A4FB0: - ldr r1, _081A4FF0 - movs r0, #0x48 - bl SetGpuReg - movs r6, #0x80 - lsls r6, r6, #0xf - movs r4, #7 -_081A4FBE: - asrs r1, r6, #0x10 - ldr r0, _081A4FF4 - movs r2, #0x54 - movs r3, #0 - bl CreateSprite - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _081A4FF8 - adds r0, r0, r1 - movs r1, #3 - bl StartSpriteAnim - movs r0, #0x80 - lsls r0, r0, #0xd - adds r6, r6, r0 - subs r4, #1 - cmp r4, #0 - bge _081A4FBE - b _081A512C - .align 2, 0 -_081A4FF0: .4byte 0x00003F3F -_081A4FF4: .4byte gUnknown_85DD794 -_081A4FF8: .4byte gUnknown_20205AC -_081A4FFC: - ldr r0, _081A5018 - bl sub_080A306C - movs r0, #0x50 - movs r1, #0x28 - movs r2, #0 - movs r3, #0 - bl ShowJudgmentSprite - movs r0, #0xa0 - movs r1, #0x28 - movs r2, #0 - b _081A5054 - .align 2, 0 -_081A5018: .4byte 0x00000109 -_081A501C: - ldr r0, _081A5038 - bl sub_080A306C - movs r0, #0x50 - movs r1, #0x38 - movs r2, #1 - movs r3, #0 - bl ShowJudgmentSprite - movs r0, #0xa0 - movs r1, #0x38 - movs r2, #1 - b _081A5054 - .align 2, 0 -_081A5038: .4byte 0x00000109 -_081A503C: - ldr r0, _081A5074 - bl sub_080A306C - movs r0, #0x50 - movs r1, #0x48 - movs r2, #2 - movs r3, #0 - bl ShowJudgmentSprite - movs r0, #0xa0 - movs r1, #0x48 - movs r2, #2 -_081A5054: - movs r3, #1 - bl ShowJudgmentSprite - ldr r0, _081A5078 - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r0, _081A507C - movs r1, #0x15 - bl sub_0814FA04 - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - movs r6, #1 - b _081A5134 - .align 2, 0 -_081A5074: .4byte 0x00000109 -_081A5078: .4byte gUnknown_85ABDAE -_081A507C: .4byte gUnknown_2022AE0 -_081A5080: - movs r0, #0x85 - lsls r0, r0, #1 - bl sub_080A306C - ldr r0, _081A50A0 - ldr r1, _081A50A4 - ldrb r2, [r0] - ldrb r0, [r1] - cmp r2, r0 - bls _081A50AC - movs r6, #2 - ldr r1, _081A50A8 - movs r0, #0 - strb r0, [r1, #0x17] - b _081A512E - .align 2, 0 -_081A50A0: .4byte gUnknown_2022C0C -_081A50A4: .4byte gUnknown_2022C1C -_081A50A8: .4byte gUnknown_2024118 -_081A50AC: - cmp r2, r0 - bhs _081A50C0 - movs r6, #3 - ldr r1, _081A50BC - movs r0, #1 - strb r0, [r1, #0x17] - b _081A512E - .align 2, 0 -_081A50BC: .4byte gUnknown_2024118 -_081A50C0: - movs r6, #4 - b _081A512E -_081A50C4: - ldr r1, _081A5100 - movs r0, #0x48 - bl SetGpuReg - movs r0, #1 - str r0, [sp] - movs r0, #6 - movs r1, #0 - movs r2, #0x17 - movs r3, #0xd - bl HandleBattleWindow - movs r0, #0 - bl CopyBgTilemapBufferToVram - ldr r0, _081A5104 - ldr r1, _081A5108 - movs r2, #0x80 - lsls r2, r2, #1 - bl m4aMPlayVolumeControl - ldr r0, _081A510C - movs r1, #0 - str r1, [sp] - movs r1, #4 - movs r2, #8 - movs r3, #0 - bl BeginNormalPaletteFade - b _081A512E - .align 2, 0 -_081A5100: .4byte 0x00003F3E -_081A5104: .4byte gUnknown_30074D0 -_081A5108: .4byte 0x0000FFFF -_081A510C: .4byte 0x7FFFFF1C -_081A5110: - ldr r0, _081A5140 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081A5134 - ldr r1, _081A5144 - movs r0, #0x48 - bl SetGpuReg - movs r0, #0xfa - lsls r0, r0, #2 - bl FreeSpriteTilesByTag -_081A512C: - movs r6, #1 -_081A512E: - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] -_081A5134: - adds r0, r6, #0 - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_081A5140: .4byte gUnknown_2037C74 -_081A5144: .4byte 0x00003F3F - thumb_func_end BattleArena_ShowJudgmentWindow - - thumb_func_start ShowJudgmentSprite -ShowJudgmentSprite: @ 0x081A5148 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sl, r1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sb, r2 - lsls r3, r3, #0x18 - lsrs r7, r3, #0x18 - movs r6, #0 - movs r1, #0 - ldr r0, _081A5190 - ldr r0, [r0] - movs r3, #0xa6 - lsls r3, r3, #2 - adds r4, r0, r3 - ldr r5, _081A5194 - adds r3, r0, r5 - adds r5, #2 - adds r5, r5, r0 - mov r8, r5 - cmp r2, #1 - beq _081A51B4 - cmp r2, #1 - bgt _081A5198 - cmp r2, #0 - beq _081A51A0 - b _081A5202 - .align 2, 0 -_081A5190: .4byte gUnknown_2024140 -_081A5194: .4byte 0x0000029A -_081A5198: - mov r0, sb - cmp r0, #2 - beq _081A51C8 - b _081A5202 -_081A51A0: - adds r0, r4, r7 - movs r6, #0 - ldrsb r6, [r0, r6] - movs r1, #1 - adds r0, r7, #0 - eors r0, r1 - adds r0, r4, r0 - movs r1, #0 - ldrsb r1, [r0, r1] - b _081A5202 -_081A51B4: - adds r0, r3, r7 - movs r6, #0 - ldrsb r6, [r0, r6] - movs r1, #1 - adds r0, r7, #0 - eors r0, r1 - adds r0, r3, r0 - movs r1, #0 - ldrsb r1, [r0, r1] - b _081A5202 -_081A51C8: - ldr r3, _081A5210 - mov sb, r3 - movs r5, #0x58 - adds r0, r7, #0 - muls r0, r5, r0 - add r0, sb - ldrh r0, [r0, #0x28] - movs r4, #0x64 - muls r0, r4, r0 - lsls r1, r7, #1 - add r1, r8 - ldrh r1, [r1] - bl __divsi3 - adds r6, r0, #0 - movs r0, #1 - adds r1, r7, #0 - eors r1, r0 - adds r0, r1, #0 - muls r0, r5, r0 - add r0, sb - ldrh r0, [r0, #0x28] - muls r0, r4, r0 - lsls r1, r1, #1 - add r1, r8 - ldrh r1, [r1] - bl __divsi3 - adds r1, r0, #0 -_081A5202: - cmp r6, r1 - ble _081A5228 - movs r4, #2 - cmp r7, #0 - beq _081A5218 - ldr r1, _081A5214 - b _081A521A - .align 2, 0 -_081A5210: .4byte gUnknown_2023D28 -_081A5214: .4byte gUnknown_2022C1C -_081A5218: - ldr r1, _081A5224 -_081A521A: - ldrb r0, [r1] - adds r0, #2 - strb r0, [r1] - b _081A524E - .align 2, 0 -_081A5224: .4byte gUnknown_2022C0C -_081A5228: - cmp r6, r1 - bne _081A524C - movs r4, #1 - cmp r7, #0 - beq _081A523C - ldr r1, _081A5238 - b _081A523E - .align 2, 0 -_081A5238: .4byte gUnknown_2022C1C -_081A523C: - ldr r1, _081A5248 -_081A523E: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _081A524E - .align 2, 0 -_081A5248: .4byte gUnknown_2022C0C -_081A524C: - movs r4, #0 -_081A524E: - ldr r0, _081A5280 - ldr r1, [sp] - mov r2, sl - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #4 - adds r0, r0, r6 - lsls r0, r0, #2 - ldr r1, _081A5284 - adds r0, r0, r1 - adds r1, r4, #0 - bl StartSpriteAnim - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A5280: .4byte gUnknown_85DD794 -_081A5284: .4byte gUnknown_20205AC - thumb_func_end ShowJudgmentSprite - - thumb_func_start SpriteCb_JudgmentIcon -SpriteCb_JudgmentIcon: @ 0x081A5288 - push {lr} - adds r1, r0, #0 - ldr r0, _081A52A0 - ldrb r0, [r0] - cmp r0, #8 - bls _081A529A - adds r0, r1, #0 - bl DestroySprite -_081A529A: - pop {r0} - bx r0 - .align 2, 0 -_081A52A0: .4byte gUnknown_2023FD6 - thumb_func_end SpriteCb_JudgmentIcon - - thumb_func_start BattleArena_InitPoints -BattleArena_InitPoints: @ 0x081A52A4 - ldr r0, _081A52D0 - ldr r2, [r0] - movs r0, #0xa6 - lsls r0, r0, #2 - adds r1, r2, r0 - adds r0, #2 - adds r3, r2, r0 - adds r0, #2 - adds r2, r2, r0 - movs r0, #0 - strb r0, [r1] - strb r0, [r1, #1] - strb r0, [r3] - strb r0, [r3, #1] - ldr r0, _081A52D4 - ldrh r1, [r0, #0x28] - strh r1, [r2] - adds r0, #0x80 - ldrh r0, [r0] - strh r0, [r2, #2] - bx lr - .align 2, 0 -_081A52D0: .4byte gUnknown_2024140 -_081A52D4: .4byte gUnknown_2023D28 - thumb_func_end BattleArena_InitPoints - - thumb_func_start BattleArena_AddMindPoints -BattleArena_AddMindPoints: @ 0x081A52D8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081A52FC - ldr r1, [r1] - movs r2, #0xa6 - lsls r2, r2, #2 - adds r1, r1, r2 - adds r1, r1, r0 - ldr r2, _081A5300 - ldr r0, _081A5304 - ldrh r0, [r0] - adds r0, r0, r2 - ldrb r0, [r0] - ldrb r2, [r1] - adds r0, r0, r2 - strb r0, [r1] - bx lr - .align 2, 0 -_081A52FC: .4byte gUnknown_2024140 -_081A5300: .4byte gUnknown_85DD5F8 -_081A5304: .4byte gUnknown_2023E8E - thumb_func_end BattleArena_AddMindPoints - - thumb_func_start BattleArena_AddSkillPoints -BattleArena_AddSkillPoints: @ 0x081A5308 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - adds r6, r3, #0 - ldr r0, _081A5348 - ldr r2, [r0] - ldr r0, _081A534C - adds r5, r2, r0 - ldr r0, _081A5350 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x12 - ands r0, r1 - cmp r0, #0 - beq _081A53CA - ldr r0, _081A5354 - adds r4, r2, r0 - ldrb r2, [r4] - ldr r0, _081A5358 - lsls r1, r3, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _081A535C - bics r2, r1 - strb r2, [r4] - adds r1, r5, r3 - ldrb r0, [r1] - subs r0, #2 - b _081A53C8 - .align 2, 0 -_081A5348: .4byte gUnknown_2024140 -_081A534C: .4byte 0x0000029A -_081A5350: .4byte gUnknown_2023F24 -_081A5354: .4byte 0x000002A2 -_081A5358: .4byte gUnknown_82FACB4 -_081A535C: - ldr r0, _081A5380 - ldrb r1, [r0] - movs r0, #0x29 - ands r0, r1 - cmp r0, #0 - beq _081A5388 - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081A5378 - ldr r0, _081A5384 - ldrb r0, [r0, #6] - cmp r0, #1 - beq _081A53CA -_081A5378: - adds r1, r5, r3 - ldrb r0, [r1] - subs r0, #2 - b _081A53C8 - .align 2, 0 -_081A5380: .4byte gUnknown_2023F20 -_081A5384: .4byte gUnknown_2023FD6 -_081A5388: - movs r0, #6 - ands r0, r1 - cmp r0, #6 - bne _081A5394 - adds r1, r5, r3 - b _081A53C4 -_081A5394: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081A53A4 - adds r1, r5, r3 - ldrb r0, [r1] - adds r0, #2 - b _081A53C8 -_081A53A4: - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _081A53B4 - adds r1, r5, r3 - ldrb r0, [r1] - subs r0, #1 - b _081A53C8 -_081A53B4: - ldr r0, _081A53D0 - lsls r1, r6, #4 - adds r1, r1, r0 - ldrb r0, [r1] - lsls r0, r0, #0x1f - cmp r0, #0 - bne _081A53CA - adds r1, r5, r6 -_081A53C4: - ldrb r0, [r1] - adds r0, #1 -_081A53C8: - strb r0, [r1] -_081A53CA: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081A53D0: .4byte gUnknown_2023FE0 - thumb_func_end BattleArena_AddSkillPoints - - thumb_func_start BattleArena_DeductMindPoints -BattleArena_DeductMindPoints: @ 0x081A53D4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r2, r1, #0 - ldr r0, _081A5404 - ldr r0, [r0] - ldr r5, _081A5408 - adds r3, r0, r5 - movs r0, #0x99 - lsls r0, r0, #1 - cmp r1, r0 - bgt _081A541A - subs r0, #1 - cmp r1, r0 - bge _081A544C - cmp r1, #0xc5 - bgt _081A540C - cmp r1, #0xc3 - bge _081A544C - cmp r1, #0x77 - beq _081A544C - b _081A5454 - .align 2, 0 -_081A5404: .4byte gUnknown_2024140 -_081A5408: .4byte 0x0000029A -_081A540C: - cmp r1, #0xc7 - blt _081A5454 - cmp r1, #0xcc - ble _081A544C - cmp r1, #0xce - beq _081A544C - b _081A5454 -_081A541A: - ldr r0, _081A5434 - cmp r1, r0 - beq _081A544C - cmp r1, r0 - bgt _081A5438 - subs r0, #0x12 - cmp r1, r0 - beq _081A544C - adds r0, #2 - cmp r1, r0 - beq _081A544C - b _081A5454 - .align 2, 0 -_081A5434: .4byte 0x00000147 -_081A5438: - movs r0, #0xad - lsls r0, r0, #1 - cmp r2, r0 - blt _081A5454 - adds r0, #1 - cmp r2, r0 - ble _081A544C - adds r0, #3 - cmp r2, r0 - bne _081A5454 -_081A544C: - adds r1, r3, r4 - ldrb r0, [r1] - subs r0, #3 - strb r0, [r1] -_081A5454: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BattleArena_DeductMindPoints - - thumb_func_start sub_081A545C -sub_081A545C: @ 0x081A545C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081A549C - ldr r3, [r1] - movs r1, #0xa7 - lsls r1, r1, #2 - adds r3, r3, r1 - lsls r2, r0, #1 - adds r2, r2, r3 - ldr r5, _081A54A0 - movs r4, #0x58 - adds r1, r0, #0 - muls r1, r4, r1 - adds r1, r1, r5 - ldrh r1, [r1, #0x28] - strh r1, [r2] - movs r1, #1 - eors r0, r1 - lsls r1, r0, #1 - adds r1, r1, r3 - muls r0, r4, r0 - adds r0, r0, r5 - ldrh r2, [r0, #0x28] - ldrh r0, [r1] - cmp r0, r2 - bls _081A5494 - strh r2, [r1] -_081A5494: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081A549C: .4byte gUnknown_2024140 -_081A54A0: .4byte gUnknown_2023D28 - thumb_func_end sub_081A545C - - thumb_func_start InitArenaChallenge -InitArenaChallenge: @ 0x081A54A4 - push {r4, r5, r6, lr} - ldr r4, _081A54F0 - ldr r1, [r4] - ldr r3, _081A54F4 - adds r0, r1, r3 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r5, r0, #0x1e - ldr r0, _081A54F8 - adds r1, r1, r0 - movs r2, #0 - strb r2, [r1] - ldr r1, [r4] - ldr r6, _081A54FC - adds r0, r1, r6 - strh r2, [r0] - adds r1, r1, r3 - ldrb r2, [r1] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r4] - adds r1, r1, r3 - ldrb r2, [r1] - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - cmp r5, #0 - beq _081A5504 - ldr r0, [r4] - ldr r1, _081A5500 - adds r0, r0, r1 - ldr r2, [r0] - movs r0, #0x80 - b _081A550E - .align 2, 0 -_081A54F0: .4byte gUnknown_3005AF0 -_081A54F4: .4byte 0x00000CA9 -_081A54F8: .4byte 0x00000CA8 -_081A54FC: .4byte 0x00000CB2 -_081A5500: .4byte 0x00000CDC -_081A5504: - ldr r0, [r4] - ldr r3, _081A5544 - adds r0, r0, r3 - ldr r2, [r0] - movs r0, #0x40 -_081A550E: - ands r2, r0 - cmp r2, #0 - bne _081A5520 - ldr r0, [r4] - lsls r1, r5, #1 - ldr r6, _081A5548 - adds r0, r0, r6 - adds r0, r0, r1 - strh r2, [r0] -_081A5520: - ldr r0, _081A554C - ldr r0, [r0] - movs r1, #4 - ldrsb r1, [r0, r1] - movs r2, #5 - ldrsb r2, [r0, r2] - movs r3, #1 - rsbs r3, r3, #0 - movs r0, #0 - bl SetDynamicWarp - ldr r1, _081A5550 - movs r0, #0 - strh r0, [r1] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081A5544: .4byte 0x00000CDC -_081A5548: .4byte 0x00000DDA -_081A554C: .4byte gUnknown_3005AEC -_081A5550: .4byte gUnknown_203886A - thumb_func_end InitArenaChallenge - - thumb_func_start GetArenaData -GetArenaData: @ 0x081A5554 - push {r4, lr} - ldr r0, _081A5578 - ldr r3, [r0] - ldr r1, _081A557C - adds r0, r3, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r1, r0, #0x1e - ldr r0, _081A5580 - ldrh r0, [r0] - cmp r0, #1 - beq _081A55A0 - cmp r0, #1 - bgt _081A5584 - cmp r0, #0 - beq _081A558A - b _081A55DE - .align 2, 0 -_081A5578: .4byte gUnknown_3005AF0 -_081A557C: .4byte 0x00000CA9 -_081A5580: .4byte gUnknown_2037282 -_081A5584: - cmp r0, #2 - beq _081A55B8 - b _081A55DE -_081A558A: - ldr r0, _081A5598 - ldr r2, _081A559C - adds r1, r3, r2 - ldrh r1, [r1] - strh r1, [r0] - b _081A55DE - .align 2, 0 -_081A5598: .4byte gUnknown_2037290 -_081A559C: .4byte 0x00000DD8 -_081A55A0: - ldr r2, _081A55B0 - lsls r1, r1, #1 - ldr r4, _081A55B4 - adds r0, r3, r4 - adds r0, r0, r1 - ldrh r0, [r0] - b _081A55DC - .align 2, 0 -_081A55B0: .4byte gUnknown_2037290 -_081A55B4: .4byte 0x00000DDA -_081A55B8: - cmp r1, #0 - beq _081A55D0 - ldr r2, _081A55C8 - ldr r1, _081A55CC - adds r0, r3, r1 - ldr r0, [r0] - movs r1, #0x80 - b _081A55DA - .align 2, 0 -_081A55C8: .4byte gUnknown_2037290 -_081A55CC: .4byte 0x00000CDC -_081A55D0: - ldr r2, _081A55E4 - ldr r4, _081A55E8 - adds r0, r3, r4 - ldr r0, [r0] - movs r1, #0x40 -_081A55DA: - ands r0, r1 -_081A55DC: - strh r0, [r2] -_081A55DE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081A55E4: .4byte gUnknown_2037290 -_081A55E8: .4byte 0x00000CDC - thumb_func_end GetArenaData - - thumb_func_start SetArenaData -SetArenaData: @ 0x081A55EC - push {lr} - ldr r0, _081A5610 - ldr r2, [r0] - ldr r1, _081A5614 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r1, r0, #0x1e - ldr r0, _081A5618 - ldrh r0, [r0] - cmp r0, #1 - beq _081A5638 - cmp r0, #1 - bgt _081A561C - cmp r0, #0 - beq _081A5622 - b _081A56AA - .align 2, 0 -_081A5610: .4byte gUnknown_3005AF0 -_081A5614: .4byte 0x00000CA9 -_081A5618: .4byte gUnknown_2037282 -_081A561C: - cmp r0, #2 - beq _081A5650 - b _081A56AA -_081A5622: - ldr r0, _081A5630 - ldrh r1, [r0] - ldr r3, _081A5634 - adds r0, r2, r3 - strh r1, [r0] - b _081A56AA - .align 2, 0 -_081A5630: .4byte gUnknown_2037284 -_081A5634: .4byte 0x00000DD8 -_081A5638: - lsls r1, r1, #1 - ldr r3, _081A5648 - adds r0, r2, r3 - adds r0, r0, r1 - ldr r1, _081A564C - ldrh r1, [r1] - strh r1, [r0] - b _081A56AA - .align 2, 0 -_081A5648: .4byte 0x00000DDA -_081A564C: .4byte gUnknown_2037284 -_081A5650: - cmp r1, #0 - beq _081A5680 - ldr r0, _081A5668 - ldrh r0, [r0] - cmp r0, #0 - beq _081A5670 - ldr r1, _081A566C - adds r0, r2, r1 - ldr r1, [r0] - movs r2, #0x80 - orrs r1, r2 - b _081A56A8 - .align 2, 0 -_081A5668: .4byte gUnknown_2037284 -_081A566C: .4byte 0x00000CDC -_081A5670: - ldr r3, _081A567C - adds r0, r2, r3 - ldr r1, [r0] - movs r2, #0x81 - rsbs r2, r2, #0 - b _081A56A6 - .align 2, 0 -_081A567C: .4byte 0x00000CDC -_081A5680: - ldr r0, _081A5694 - ldrh r0, [r0] - cmp r0, #0 - beq _081A569C - ldr r1, _081A5698 - adds r0, r2, r1 - ldr r1, [r0] - movs r2, #0x40 - orrs r1, r2 - b _081A56A8 - .align 2, 0 -_081A5694: .4byte gUnknown_2037284 -_081A5698: .4byte 0x00000CDC -_081A569C: - ldr r3, _081A56B0 - adds r0, r2, r3 - ldr r1, [r0] - movs r2, #0x41 - rsbs r2, r2, #0 -_081A56A6: - ands r1, r2 -_081A56A8: - str r1, [r0] -_081A56AA: - pop {r0} - bx r0 - .align 2, 0 -_081A56B0: .4byte 0x00000CDC - thumb_func_end SetArenaData - - thumb_func_start sub_081A56B4 -sub_081A56B4: @ 0x081A56B4 - push {r4, lr} - ldr r4, _081A56E8 - ldr r0, [r4] - ldr r1, _081A56EC - ldrh r1, [r1] - ldr r2, _081A56F0 - adds r0, r0, r2 - strb r1, [r0] - movs r0, #0x80 - lsls r0, r0, #7 - movs r1, #0 - bl VarSet - ldr r1, [r4] - ldr r0, _081A56F4 - adds r1, r1, r0 - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - bl sub_081A482C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081A56E8: .4byte gUnknown_3005AF0 -_081A56EC: .4byte gUnknown_2037282 -_081A56F0: .4byte 0x00000CA8 -_081A56F4: .4byte 0x00000CA9 - thumb_func_end sub_081A56B4 - - thumb_func_start SetArenaRewardItem -SetArenaRewardItem: @ 0x081A56F8 - push {r4, r5, lr} - ldr r4, _081A5734 - ldr r1, [r4] - ldr r2, _081A5738 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1d - ldr r2, _081A573C - adds r1, r1, r2 - adds r1, r1, r0 - ldrh r0, [r1] - cmp r0, #0x29 - bls _081A5748 - bl Random - ldr r4, [r4] - ldr r5, _081A5740 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #9 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0xf - adds r0, r0, r5 - ldrh r0, [r0] - ldr r1, _081A5744 - adds r4, r4, r1 - b _081A5766 - .align 2, 0 -_081A5734: .4byte gUnknown_3005AF0 -_081A5738: .4byte 0x00000CA9 -_081A573C: .4byte 0x00000DDA -_081A5740: .4byte gUnknown_85DD7E4 -_081A5744: .4byte 0x00000DD8 -_081A5748: - bl Random - ldr r4, [r4] - ldr r5, _081A5770 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #6 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0xf - adds r0, r0, r5 - ldrh r0, [r0] - ldr r2, _081A5774 - adds r4, r4, r2 -_081A5766: - strh r0, [r4] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081A5770: .4byte gUnknown_85DD7D8 -_081A5774: .4byte 0x00000DD8 - thumb_func_end SetArenaRewardItem - - thumb_func_start GiveArenaRewardItem -GiveArenaRewardItem: @ 0x081A5778 - push {r4, r5, lr} - ldr r4, _081A57B0 - ldr r0, [r4] - ldr r1, _081A57B4 - adds r0, r0, r1 - ldrh r0, [r0] - movs r1, #1 - bl AddBagItem - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #1 - bne _081A57C0 - ldr r0, [r4] - ldr r1, _081A57B4 - adds r0, r0, r1 - ldrh r0, [r0] - ldr r1, _081A57B8 - bl sub_080D5EC8 - ldr r0, [r4] - ldr r1, _081A57B4 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0] - ldr r0, _081A57BC - strh r5, [r0] - b _081A57C6 - .align 2, 0 -_081A57B0: .4byte gUnknown_3005AF0 -_081A57B4: .4byte 0x00000DD8 -_081A57B8: .4byte gUnknown_2021C40 -_081A57BC: .4byte gUnknown_2037290 -_081A57C0: - ldr r1, _081A57CC - movs r0, #0 - strh r0, [r1] -_081A57C6: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081A57CC: .4byte gUnknown_2037290 - thumb_func_end GiveArenaRewardItem - - thumb_func_start BufferArenaOpponentName -BufferArenaOpponentName: @ 0x081A57D0 - push {lr} - ldr r0, _081A57E0 - ldr r1, _081A57E4 - ldrh r1, [r1] - bl sub_08162D24 - pop {r0} - bx r0 - .align 2, 0 -_081A57E0: .4byte gUnknown_2021C40 -_081A57E4: .4byte gUnknown_203886A - thumb_func_end BufferArenaOpponentName - - thumb_func_start DrawArenaRefereeTextBox -DrawArenaRefereeTextBox: @ 0x081A57E8 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0xc - movs r0, #0x16 - mov r8, r0 - movs r5, #7 - movs r4, #1 - str r4, [sp] - movs r6, #6 - str r6, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0xe - bl FillBgTilemapBufferRect - str r4, [sp] - str r6, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #0x1d - movs r3, #0xe - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0x31 - movs r2, #1 - movs r3, #0xe - bl FillBgTilemapBufferRect - movs r6, #2 - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0x32 - movs r2, #2 - movs r3, #0xe - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0x33 - movs r2, #3 - movs r3, #0xe - bl FillBgTilemapBufferRect - mov r0, r8 - str r0, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0x34 - movs r2, #4 - movs r3, #0xe - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0x35 - movs r2, #0x1a - movs r3, #0xe - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0x32 - movs r2, #0x1b - movs r3, #0xe - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0x36 - movs r2, #0x1c - movs r3, #0xe - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0x37 - movs r2, #1 - movs r3, #0xf - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0x38 - movs r2, #2 - movs r3, #0xf - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0x3b - movs r2, #3 - movs r3, #0xf - bl FillBgTilemapBufferRect - mov r0, r8 - str r0, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0x39 - movs r2, #4 - movs r3, #0xf - bl FillBgTilemapBufferRect - ldr r1, _081A5AB0 - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r2, #0x1a - movs r3, #0xf - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0x38 - movs r2, #0x1b - movs r3, #0xf - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0x3a - movs r2, #0x1c - movs r3, #0xf - bl FillBgTilemapBufferRect - str r4, [sp] - str r6, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0x37 - movs r2, #1 - movs r3, #0x10 - bl FillBgTilemapBufferRect - str r4, [sp] - str r6, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0x38 - movs r2, #2 - movs r3, #0x10 - bl FillBgTilemapBufferRect - str r4, [sp] - str r6, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0x3c - movs r2, #3 - movs r3, #0x10 - bl FillBgTilemapBufferRect - mov r0, r8 - str r0, [sp] - str r6, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0x39 - movs r2, #4 - movs r3, #0x10 - bl FillBgTilemapBufferRect - ldr r1, _081A5AB4 - str r4, [sp] - str r6, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r2, #0x1a - movs r3, #0x10 - bl FillBgTilemapBufferRect - str r4, [sp] - str r6, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0x38 - movs r2, #0x1b - movs r3, #0x10 - bl FillBgTilemapBufferRect - str r4, [sp] - str r6, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0x3a - movs r2, #0x1c - movs r3, #0x10 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0x37 - movs r2, #1 - movs r3, #0x12 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0x38 - movs r2, #2 - movs r3, #0x12 - bl FillBgTilemapBufferRect - ldr r1, _081A5AB8 - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r2, #3 - movs r3, #0x12 - bl FillBgTilemapBufferRect - mov r0, r8 - str r0, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0x39 - movs r2, #4 - movs r3, #0x12 - bl FillBgTilemapBufferRect - ldr r1, _081A5ABC - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r2, #0x1a - movs r3, #0x12 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0x38 - movs r2, #0x1b - movs r3, #0x12 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0x3a - movs r2, #0x1c - movs r3, #0x12 - bl FillBgTilemapBufferRect - ldr r1, _081A5AC0 - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r2, #1 - movs r3, #0x13 - bl FillBgTilemapBufferRect - ldr r6, _081A5AC4 - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - adds r1, r6, #0 - movs r2, #2 - movs r3, #0x13 - bl FillBgTilemapBufferRect - ldr r1, _081A5AC8 - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r2, #3 - movs r3, #0x13 - bl FillBgTilemapBufferRect - ldr r1, _081A5ACC - mov r0, r8 - str r0, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r2, #4 - movs r3, #0x13 - bl FillBgTilemapBufferRect - ldr r1, _081A5AD0 - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r2, #0x1a - movs r3, #0x13 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - adds r1, r6, #0 - movs r2, #0x1b - movs r3, #0x13 - bl FillBgTilemapBufferRect - ldr r1, _081A5AD4 - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r2, #0x1c - movs r3, #0x13 - bl FillBgTilemapBufferRect - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081A5AB0: .4byte 0x0000043B -_081A5AB4: .4byte 0x0000043C -_081A5AB8: .4byte 0x0000083B -_081A5ABC: .4byte 0x00000C3B -_081A5AC0: .4byte 0x00000831 -_081A5AC4: .4byte 0x00000832 -_081A5AC8: .4byte 0x00000833 -_081A5ACC: .4byte 0x00000834 -_081A5AD0: .4byte 0x00000835 -_081A5AD4: .4byte 0x00000836 - thumb_func_end DrawArenaRefereeTextBox - - thumb_func_start sub_081A5AD8 -sub_081A5AD8: @ 0x081A5AD8 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0xc - movs r5, #0 - movs r0, #0x1a - mov r8, r0 - movs r4, #1 - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #3 - movs r2, #0 - movs r3, #0xe - bl FillBgTilemapBufferRect - movs r6, #4 - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #4 - movs r2, #1 - movs r3, #0xe - bl FillBgTilemapBufferRect - mov r0, r8 - str r0, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #5 - movs r2, #2 - movs r3, #0xe - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #6 - movs r2, #0x1c - movs r3, #0xe - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #7 - movs r2, #0x1d - movs r3, #0xe - bl FillBgTilemapBufferRect - str r4, [sp] - str r6, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #8 - movs r2, #0 - movs r3, #0xf - bl FillBgTilemapBufferRect - str r4, [sp] - str r6, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #9 - movs r2, #1 - movs r3, #0xf - bl FillBgTilemapBufferRect - mov r0, r8 - str r0, [sp] - str r6, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0xa - movs r2, #2 - movs r3, #0xf - bl FillBgTilemapBufferRect - str r4, [sp] - str r6, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0xb - movs r2, #0x1c - movs r3, #0xf - bl FillBgTilemapBufferRect - str r4, [sp] - str r6, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0xc - movs r2, #0x1d - movs r3, #0xf - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0xd - movs r2, #0 - movs r3, #0x13 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0xe - movs r2, #1 - movs r3, #0x13 - bl FillBgTilemapBufferRect - mov r0, r8 - str r0, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0xf - movs r2, #2 - movs r3, #0x13 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0x10 - movs r2, #0x1c - movs r3, #0x13 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #0x11 - movs r2, #0x1d - movs r3, #0x13 - bl FillBgTilemapBufferRect - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081A5AD8 - - thumb_func_start sub_081A5C0C -sub_081A5C0C: @ 0x081A5C0C - push {lr} - ldr r1, _081A5C24 - ldr r0, _081A5C28 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - thumb_func_end sub_081A5C0C - - thumb_func_start sub_081A5C20 -sub_081A5C20: @ 0x081A5C20 - bx r0 - .align 2, 0 -_081A5C24: .4byte gUnknown_85DD958 -_081A5C28: .4byte gUnknown_2037280 - thumb_func_end sub_081A5C20 - - thumb_func_start InitFactoryChallenge -InitFactoryChallenge: @ 0x081A5C2C - push {r4, r5, r6, r7, lr} - ldr r5, _081A5D0C - ldr r0, [r5] - ldr r4, _081A5D10 - adds r0, r0, r4 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r7, r0, #0x1e - ldr r0, _081A5D14 - bl VarGet - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r0, [r5] - ldr r1, _081A5D18 - adds r0, r0, r1 - movs r2, #0 - strb r2, [r0] - ldr r1, [r5] - ldr r3, _081A5D1C - adds r0, r1, r3 - strh r2, [r0] - adds r1, r1, r4 - ldrb r2, [r1] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r5] - adds r1, r1, r4 - ldrb r2, [r1] - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r4, [r5] - ldr r0, _081A5D20 - adds r3, r4, r0 - ldr r2, _081A5D24 - lsls r0, r7, #2 - lsls r1, r6, #3 - adds r0, r0, r1 - adds r0, r0, r2 - ldr r3, [r3] - ldr r0, [r0] - ands r3, r0 - cmp r3, #0 - bne _081A5CA2 - lsls r1, r7, #1 - lsls r0, r6, #2 - adds r1, r1, r0 - ldr r2, _081A5D28 - adds r0, r4, r2 - adds r0, r0, r1 - strh r3, [r0] - adds r2, #0x10 - adds r0, r4, r2 - adds r0, r0, r1 - strh r3, [r0] -_081A5CA2: - ldr r1, _081A5D2C - movs r0, #0 - strb r0, [r1] - movs r2, #0 - ldr r6, _081A5D30 - movs r4, #0xe7 - lsls r4, r4, #4 - ldr r0, _081A5D34 - adds r3, r0, #0 -_081A5CB4: - ldr r1, [r5] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r1, r1, r0 - adds r1, r1, r4 - ldrh r0, [r1] - orrs r0, r3 - strh r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #5 - bls _081A5CB4 - movs r2, #0 - ldr r4, _081A5D38 - ldr r1, _081A5D34 - adds r3, r1, #0 -_081A5CD8: - lsls r0, r2, #1 - adds r0, r0, r4 - ldrh r1, [r0] - orrs r1, r3 - strh r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #2 - bls _081A5CD8 - ldr r0, [r6] - movs r1, #4 - ldrsb r1, [r0, r1] - movs r2, #5 - ldrsb r2, [r0, r2] - movs r3, #1 - rsbs r3, r3, #0 - movs r0, #0 - bl SetDynamicWarp - ldr r1, _081A5D3C - movs r0, #0 - strh r0, [r1] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A5D0C: .4byte gUnknown_3005AF0 -_081A5D10: .4byte 0x00000CA9 -_081A5D14: .4byte 0x000040CE -_081A5D18: .4byte 0x00000CA8 -_081A5D1C: .4byte 0x00000CB2 -_081A5D20: .4byte 0x00000CDC -_081A5D24: .4byte gUnknown_85DD99C -_081A5D28: .4byte 0x00000DE2 -_081A5D2C: .4byte gUnknown_3001284 -_081A5D30: .4byte gUnknown_3005AEC -_081A5D34: .4byte 0x0000FFFF -_081A5D38: .4byte gUnknown_3005FD8 -_081A5D3C: .4byte gUnknown_203886A - thumb_func_end InitFactoryChallenge - - thumb_func_start GetBattleFactoryData -GetBattleFactoryData: @ 0x081A5D40 - push {r4, r5, r6, r7, lr} - ldr r7, _081A5D6C - ldr r0, [r7] - ldr r1, _081A5D70 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r6, r0, #0x1e - ldr r0, _081A5D74 - bl VarGet - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, _081A5D78 - ldrh r0, [r0] - cmp r0, #2 - beq _081A5D98 - cmp r0, #2 - bgt _081A5D7C - cmp r0, #1 - beq _081A5D82 - b _081A5DDC - .align 2, 0 -_081A5D6C: .4byte gUnknown_3005AF0 -_081A5D70: .4byte 0x00000CA9 -_081A5D74: .4byte 0x000040CE -_081A5D78: .4byte gUnknown_2037282 -_081A5D7C: - cmp r0, #3 - beq _081A5DC8 - b _081A5DDC -_081A5D82: - ldr r3, _081A5D90 - ldr r0, [r7] - lsls r1, r6, #1 - lsls r2, r5, #2 - adds r1, r1, r2 - ldr r2, _081A5D94 - b _081A5DD4 - .align 2, 0 -_081A5D90: .4byte gUnknown_2037290 -_081A5D94: .4byte 0x00000DE2 -_081A5D98: - ldr r4, _081A5DBC - ldr r2, [r7] - ldr r0, _081A5DC0 - adds r2, r2, r0 - ldr r3, _081A5DC4 - lsls r0, r6, #2 - lsls r1, r5, #3 - adds r0, r0, r1 - adds r0, r0, r3 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - strh r0, [r4] - b _081A5DDC - .align 2, 0 -_081A5DBC: .4byte gUnknown_2037290 -_081A5DC0: .4byte 0x00000CDC -_081A5DC4: .4byte gUnknown_85DD99C -_081A5DC8: - ldr r3, _081A5DE4 - ldr r0, [r7] - lsls r1, r6, #1 - lsls r2, r5, #2 - adds r1, r1, r2 - ldr r2, _081A5DE8 -_081A5DD4: - adds r0, r0, r2 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r3] -_081A5DDC: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A5DE4: .4byte gUnknown_2037290 -_081A5DE8: .4byte 0x00000DF2 - thumb_func_end GetBattleFactoryData - - thumb_func_start SetBattleFactoryData -SetBattleFactoryData: @ 0x081A5DEC - push {r4, r5, r6, lr} - ldr r6, _081A5E18 - ldr r0, [r6] - ldr r1, _081A5E1C - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r5, r0, #0x1e - ldr r0, _081A5E20 - bl VarGet - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, _081A5E24 - ldrh r0, [r0] - cmp r0, #2 - beq _081A5E4C - cmp r0, #2 - bgt _081A5E28 - cmp r0, #1 - beq _081A5E2E - b _081A5EC0 - .align 2, 0 -_081A5E18: .4byte gUnknown_3005AF0 -_081A5E1C: .4byte 0x00000CA9 -_081A5E20: .4byte 0x000040CE -_081A5E24: .4byte gUnknown_2037282 -_081A5E28: - cmp r0, #3 - beq _081A5EA0 - b _081A5EC0 -_081A5E2E: - ldr r2, [r6] - lsls r0, r5, #1 - lsls r1, r4, #2 - adds r0, r0, r1 - ldr r1, _081A5E44 - adds r2, r2, r1 - adds r2, r2, r0 - ldr r0, _081A5E48 - ldrh r0, [r0] - strh r0, [r2] - b _081A5EC0 - .align 2, 0 -_081A5E44: .4byte 0x00000DE2 -_081A5E48: .4byte gUnknown_2037284 -_081A5E4C: - ldr r0, _081A5E70 - ldrh r0, [r0] - cmp r0, #0 - beq _081A5E7C - ldr r2, [r6] - ldr r0, _081A5E74 - adds r2, r2, r0 - ldr r3, _081A5E78 - lsls r1, r5, #2 - lsls r0, r4, #3 - adds r1, r1, r0 - adds r1, r1, r3 - ldr r0, [r2] - ldr r1, [r1] - orrs r0, r1 - str r0, [r2] - b _081A5EC0 - .align 2, 0 -_081A5E70: .4byte gUnknown_2037284 -_081A5E74: .4byte 0x00000CDC -_081A5E78: .4byte gUnknown_85DD99C -_081A5E7C: - ldr r2, [r6] - ldr r1, _081A5E98 - adds r2, r2, r1 - ldr r3, _081A5E9C - lsls r1, r5, #2 - lsls r0, r4, #3 - adds r1, r1, r0 - adds r1, r1, r3 - ldr r0, [r2] - ldr r1, [r1] - ands r0, r1 - str r0, [r2] - b _081A5EC0 - .align 2, 0 -_081A5E98: .4byte 0x00000CDC -_081A5E9C: .4byte gUnknown_85DD9AC -_081A5EA0: - ldr r3, _081A5EC8 - ldrb r0, [r3] - cmp r0, #1 - bne _081A5EC0 - ldr r2, [r6] - lsls r0, r5, #1 - lsls r1, r4, #2 - adds r0, r0, r1 - ldr r1, _081A5ECC - adds r2, r2, r1 - adds r2, r2, r0 - ldr r0, _081A5ED0 - ldrh r0, [r0] - movs r1, #0 - strh r0, [r2] - strb r1, [r3] -_081A5EC0: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081A5EC8: .4byte gUnknown_3001284 -_081A5ECC: .4byte 0x00000DF2 -_081A5ED0: .4byte gUnknown_2037284 - thumb_func_end SetBattleFactoryData - - thumb_func_start sub_081A5ED4 -sub_081A5ED4: @ 0x081A5ED4 - push {r4, lr} - ldr r4, _081A5F08 - ldr r0, [r4] - ldr r1, _081A5F0C - ldrh r1, [r1] - ldr r2, _081A5F10 - adds r0, r0, r2 - strb r1, [r0] - movs r0, #0x80 - lsls r0, r0, #7 - movs r1, #0 - bl VarSet - ldr r1, [r4] - ldr r0, _081A5F14 - adds r1, r1, r0 - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - bl sub_081A482C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081A5F08: .4byte gUnknown_3005AF0 -_081A5F0C: .4byte gUnknown_2037282 -_081A5F10: .4byte 0x00000CA8 -_081A5F14: .4byte 0x00000CA9 - thumb_func_end sub_081A5ED4 - - thumb_func_start sub_081A5F18 -sub_081A5F18: @ 0x081A5F18 - bx lr - .align 2, 0 - thumb_func_end sub_081A5F18 - - thumb_func_start sub_081A5F1C -sub_081A5F1C: @ 0x081A5F1C - bx lr - .align 2, 0 - thumb_func_end sub_081A5F1C - - thumb_func_start SelectInitialRentalMons -SelectInitialRentalMons: @ 0x081A5F20 - push {lr} - bl ZeroPlayerPartyMons - bl DoBattleFactorySelectScreen - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SelectInitialRentalMons - - thumb_func_start sub_081A5F30 -sub_081A5F30: @ 0x081A5F30 - push {lr} - bl sub_0819D8E8 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081A5F30 - - thumb_func_start sub_081A5F3C -sub_081A5F3C: @ 0x081A5F3C - ldr r1, _081A5F44 - movs r0, #1 - strb r0, [r1] - bx lr - .align 2, 0 -_081A5F44: .4byte gUnknown_3001284 - thumb_func_end sub_081A5F3C - - thumb_func_start GenerateOpponentMons -GenerateOpponentMons: @ 0x081A5F48 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x28 - ldr r4, _081A611C - ldr r0, [r4] - ldr r1, _081A6120 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - str r0, [sp, #0x10] - ldr r0, _081A6124 - bl VarGet - lsls r0, r0, #0x10 - ldr r1, [r4] - ldr r3, [sp, #0x10] - lsls r2, r3, #1 - lsrs r0, r0, #0xe - adds r2, r2, r0 - ldr r6, _081A6128 - adds r1, r1, r6 - adds r1, r1, r2 - ldrh r0, [r1] - movs r1, #7 - bl __udivsi3 - ldr r2, _081A612C - ldr r1, _081A6130 - str r1, [r2] - ldr r5, _081A6134 - lsls r0, r0, #0x18 - str r0, [sp, #0x20] - mov r8, r0 -_081A5F92: - ldr r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - mov r2, r8 - lsrs r0, r2, #0x18 - bl sub_0816245C - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - movs r7, #0 - ldr r1, [r4] - adds r0, r1, r5 - ldr r6, [sp, #0x10] - lsls r6, r6, #0x18 - str r6, [sp, #0x1c] - ldrh r0, [r0] - cmp r7, r0 - bge _081A5FDC - ldr r2, _081A6138 - adds r0, r1, r2 - ldrh r0, [r0] - ldr r6, _081A611C - cmp r0, r3 - beq _081A5FDC - ldr r1, [r6] - ldr r6, _081A6134 - adds r0, r1, r6 - ldrh r2, [r0] - ldr r0, _081A6138 - adds r1, r1, r0 -_081A5FCE: - adds r1, #2 - adds r7, #1 - cmp r7, r2 - bge _081A5FDC - ldrh r0, [r1] - cmp r0, r3 - bne _081A5FCE -_081A5FDC: - ldr r0, [r4] - ldr r1, _081A6134 - adds r0, r0, r1 - ldr r6, _081A611C - ldrh r0, [r0] - cmp r7, r0 - bne _081A5F92 - ldr r0, _081A613C - strh r3, [r0] - ldr r2, [r6] - adds r1, r2, r1 - ldrh r0, [r1] - cmp r0, #5 - bhi _081A6004 - adds r1, r0, #0 - lsls r1, r1, #1 - ldr r4, _081A6138 - adds r0, r2, r4 - adds r0, r0, r1 - strh r3, [r0] -_081A6004: - movs r7, #0 - mov sl, sp - movs r6, #0 - lsls r6, r6, #1 - str r6, [sp, #0x14] - add r6, sp - str r6, [sp, #0x18] -_081A6012: - ldr r1, [sp, #0x1c] - lsrs r0, r1, #0x18 - ldr r2, [sp, #0x20] - lsrs r1, r2, #0x18 - movs r2, #0 - bl GetMonSetId - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - ldr r4, _081A6140 - ldr r2, [r4] - lsls r1, r0, #4 - adds r0, r1, r2 - ldrh r0, [r0] - cmp r0, #0xc9 - beq _081A6106 - movs r3, #0 - ldr r6, _081A611C - mov r8, r1 - adds r5, r0, #0 - ldr r1, [r6] -_081A603E: - movs r4, #0xe7 - lsls r4, r4, #4 - adds r0, r1, r4 - ldrh r0, [r0] - lsls r0, r0, #4 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r5, r0 - beq _081A6058 - adds r1, #0xc - adds r3, #1 - cmp r3, #5 - ble _081A603E -_081A6058: - cmp r3, #6 - bne _081A6106 - ldr r6, [sp, #0x10] - cmp r6, #0 - bne _081A6068 - ldr r0, _081A6144 - cmp sb, r0 - bhi _081A6106 -_081A6068: - movs r2, #0 - adds r4, r2, r7 - cmp r2, r4 - bge _081A609A - ldr r1, [sp, #0x18] - ldrh r0, [r1] - cmp r0, r5 - beq _081A609A - adds r6, r4, #0 - ldr r3, _081A6140 - mov ip, r3 - mov r5, r8 - ldr r3, [sp, #0x14] - add r3, sp -_081A6084: - adds r3, #2 - adds r2, #1 - cmp r2, r6 - bge _081A609A - mov r1, ip - ldr r0, [r1] - adds r0, r5, r0 - ldrh r1, [r3] - ldrh r0, [r0] - cmp r1, r0 - bne _081A6084 -_081A609A: - cmp r2, r4 - bne _081A6106 - movs r2, #0 - cmp r2, r4 - bge _081A60D6 - ldr r3, _081A6148 - mov ip, r3 - add r0, sp, #8 - ldr r6, [sp, #0x14] - adds r3, r0, r6 - mov r0, r8 - str r0, [sp, #0x24] - adds r5, r4, #0 -_081A60B4: - ldrh r1, [r3] - cmp r1, #0 - beq _081A60CE - ldr r6, _081A6140 - ldr r0, [r6] - ldr r6, [sp, #0x24] - adds r0, r6, r0 - ldrb r0, [r0, #0xa] - lsls r0, r0, #1 - add r0, ip - ldrh r0, [r0] - cmp r1, r0 - beq _081A60D6 -_081A60CE: - adds r3, #2 - adds r2, #1 - cmp r2, r5 - blt _081A60B4 -_081A60D6: - cmp r2, r4 - bne _081A6106 - lsls r4, r7, #1 - ldr r0, _081A6140 - ldr r1, [r0] - add r1, r8 - ldrh r0, [r1] - mov r2, sl - strh r0, [r2] - add r2, sp, #8 - adds r2, r2, r4 - ldr r3, _081A6148 - ldrb r0, [r1, #0xa] - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r0, [r0] - strh r0, [r2] - ldr r0, _081A614C - adds r4, r4, r0 - mov r3, sb - strh r3, [r4] - movs r4, #2 - add sl, r4 - adds r7, #1 -_081A6106: - cmp r7, #3 - bne _081A6012 - add sp, #0x28 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A611C: .4byte gUnknown_3005AF0 -_081A6120: .4byte 0x00000CA9 -_081A6124: .4byte 0x000040CE -_081A6128: .4byte 0x00000DE2 -_081A612C: .4byte gUnknown_203B954 -_081A6130: .4byte gUnknown_85B4A10 -_081A6134: .4byte 0x00000CB2 -_081A6138: .4byte 0x00000CB4 -_081A613C: .4byte gUnknown_203886A -_081A6140: .4byte gUnknown_203B958 -_081A6144: .4byte 0x00000351 -_081A6148: .4byte gUnknown_85ADBF4 -_081A614C: .4byte gUnknown_3005FD8 - thumb_func_end GenerateOpponentMons - - thumb_func_start VBlankCB_EvolutionScene -VBlankCB_EvolutionScene: @ 0x081A6150 - push {lr} - ldr r0, _081A6160 - ldrh r0, [r0] - movs r1, #0 - bl sub_08162528 - pop {r0} - bx r0 - .align 2, 0 -_081A6160: .4byte gUnknown_203886A - thumb_func_end VBlankCB_EvolutionScene - - thumb_func_start SetRentalsToOpponentParty -SetRentalsToOpponentParty: @ 0x081A6164 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _081A6184 - ldr r0, [r0] - ldr r1, _081A6188 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - cmp r0, #2 - beq _081A6194 - ldr r1, _081A618C - ldr r0, _081A6190 - b _081A6198 - .align 2, 0 -_081A6184: .4byte gUnknown_3005AF0 -_081A6188: .4byte 0x00000CA9 -_081A618C: .4byte gUnknown_203B958 -_081A6190: .4byte gUnknown_85B8700 -_081A6194: - ldr r1, _081A6238 - ldr r0, _081A623C -_081A6198: - str r0, [r1] - movs r7, #0 - ldr r2, _081A6240 - mov r8, r2 -_081A61A0: - mov r0, r8 - ldr r1, [r0] - adds r0, r7, #3 - lsls r4, r0, #1 - adds r4, r4, r0 - lsls r4, r4, #2 - adds r1, r1, r4 - ldr r0, _081A6244 - lsls r6, r7, #1 - adds r6, r6, r0 - ldrh r0, [r6] - movs r2, #0xe7 - lsls r2, r2, #4 - adds r1, r1, r2 - strh r0, [r1] - movs r0, #0x64 - adds r5, r7, #0 - muls r5, r0, r5 - ldr r0, _081A6248 - adds r5, r5, r0 - adds r0, r5, #0 - movs r1, #0x28 - movs r2, #0 - bl sub_0806A1B4 - mov r2, r8 - ldr r1, [r2] - adds r1, r1, r4 - ldr r2, _081A624C - adds r1, r1, r2 - strb r0, [r1] - adds r0, r5, #0 - movs r1, #0 - movs r2, #0 - bl GetMonData - mov r2, r8 - ldr r1, [r2] - ldr r2, _081A6250 - adds r1, r1, r2 - adds r1, r1, r4 - str r0, [r1] - adds r0, r5, #0 - movs r1, #0x2e - movs r2, #0 - bl sub_0806A1B4 - mov r2, r8 - ldr r1, [r2] - adds r1, r1, r4 - ldr r2, _081A6254 - adds r1, r1, r2 - strb r0, [r1] - ldrh r1, [r6] - ldr r0, _081A6238 - ldr r0, [r0] - lsls r1, r1, #4 - adds r1, r1, r0 - ldrb r2, [r1, #0xa] - lsls r2, r2, #1 - ldr r0, _081A6258 - adds r2, r2, r0 - adds r0, r5, #0 - movs r1, #0xc - bl SetMonData - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #2 - bls _081A61A0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A6238: .4byte gUnknown_203B958 -_081A623C: .4byte gUnknown_85BCF70 -_081A6240: .4byte gUnknown_3005AF0 -_081A6244: .4byte gUnknown_3005FD8 -_081A6248: .4byte gUnknown_20243E8 -_081A624C: .4byte 0x00000E78 -_081A6250: .4byte 0x00000E74 -_081A6254: .4byte 0x00000E79 -_081A6258: .4byte gUnknown_85ADBF4 - thumb_func_end SetRentalsToOpponentParty - - thumb_func_start SetPlayerAndOpponentParties -SetPlayerAndOpponentParties: @ 0x081A625C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x24 - ldr r0, _081A6288 - ldr r0, [r0] - ldr r1, _081A628C - adds r2, r0, r1 - ldrb r1, [r2] - movs r3, #3 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #2 - bne _081A6298 - ldr r1, _081A6290 - ldr r0, _081A6294 - str r0, [r1] - movs r2, #0x1e - str r2, [sp, #0x14] - b _081A62B0 - .align 2, 0 -_081A6288: .4byte gUnknown_3005AF0 -_081A628C: .4byte 0x00000CA9 -_081A6290: .4byte gUnknown_203B958 -_081A6294: .4byte gUnknown_85BCF70 -_081A6298: - ldr r1, _081A6558 - ldr r0, _081A655C - str r0, [r1] - ldrb r1, [r2] - adds r0, r3, #0 - ands r0, r1 - movs r4, #0x32 - str r4, [sp, #0x14] - cmp r0, #0 - beq _081A62B0 - movs r5, #0x64 - str r5, [sp, #0x14] -_081A62B0: - ldr r0, _081A6560 - ldrh r0, [r0] - cmp r0, #1 - bls _081A62BA - b _081A6404 -_081A62BA: - bl ZeroPlayerPartyMons - movs r0, #0 - mov r8, r0 - mov r1, sp - adds r1, #0x12 - str r1, [sp, #0x1c] - ldr r2, _081A6558 - mov sb, r2 -_081A62CC: - ldr r4, _081A6564 - ldr r2, [r4] - mov r5, r8 - lsls r5, r5, #1 - mov sl, r5 - mov r3, sl - add r3, r8 - lsls r3, r3, #2 - adds r1, r2, r3 - movs r4, #0xe7 - lsls r4, r4, #4 - adds r0, r1, r4 - ldrh r7, [r0] - ldr r5, _081A6568 - adds r1, r1, r5 - ldrb r6, [r1] - movs r1, #0x64 - mov r0, r8 - muls r0, r1, r0 - ldr r1, _081A656C - adds r0, r0, r1 - mov r4, sb - ldr r1, [r4] - lsls r4, r7, #4 - adds r1, r4, r1 - ldrh r1, [r1] - movs r5, #1 - str r5, [sp] - ldr r5, _081A6570 - adds r2, r2, r5 - adds r2, r2, r3 - ldr r2, [r2] - str r2, [sp, #4] - movs r2, #0 - str r2, [sp, #8] - str r2, [sp, #0xc] - ldr r2, [sp, #0x14] - adds r3, r6, #0 - bl CreateMon - movs r1, #0 - mov r2, sb - ldr r0, [r2] - adds r4, r4, r0 - ldrb r4, [r4, #0xb] - mov r5, r8 - adds r5, #1 - str r5, [sp, #0x18] - movs r5, #5 -_081A632E: - adds r0, r4, #0 - movs r2, #1 - ands r0, r2 - cmp r0, #0 - beq _081A633A - adds r1, #1 -_081A633A: - lsrs r4, r4, #1 - subs r5, #1 - cmp r5, #0 - bge _081A632E - movs r0, #0xff - lsls r0, r0, #1 - bl __divsi3 - add r1, sp, #0x10 - strh r0, [r1] - movs r4, #1 - movs r5, #0 - lsls r7, r7, #4 - movs r0, #0x64 - mov r6, r8 - muls r6, r0, r6 - ldr r3, _081A656C -_081A635C: - mov r1, sb - ldr r0, [r1] - adds r0, r7, r0 - ldrb r0, [r0, #0xb] - ands r0, r4 - cmp r0, #0 - beq _081A637A - adds r1, r5, #0 - adds r1, #0x1a - adds r0, r6, r3 - add r2, sp, #0x10 - str r3, [sp, #0x20] - bl SetMonData - ldr r3, [sp, #0x20] -_081A637A: - lsls r0, r4, #0x19 - lsrs r4, r0, #0x18 - adds r5, #1 - cmp r5, #5 - ble _081A635C - movs r2, #0x64 - mov r4, r8 - muls r4, r2, r4 - ldr r5, _081A656C - adds r0, r4, r5 - bl CalculateMonStats - movs r0, #0 - ldr r1, [sp, #0x1c] - strb r0, [r1] - movs r6, #0 -_081A639A: - mov r2, sb - ldr r0, [r2] - adds r0, r7, r0 - lsls r1, r6, #1 - adds r0, #2 - adds r0, r0, r1 - ldrh r1, [r0] - lsls r2, r6, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, r5 - bl SetMonMoveAvoidReturn - adds r6, #1 - cmp r6, #3 - ble _081A639A - movs r5, #0x64 - mov r4, r8 - muls r4, r5, r4 - ldr r0, _081A656C - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x20 - ldr r2, [sp, #0x1c] - bl SetMonData - mov r1, sb - ldr r0, [r1] - adds r0, r7, r0 - ldrb r2, [r0, #0xa] - lsls r2, r2, #1 - ldr r0, _081A6574 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0xc - bl SetMonData - mov r2, sl - add r2, r8 - lsls r2, r2, #2 - ldr r5, _081A6564 - ldr r0, [r5] - adds r2, r2, r0 - ldr r0, _081A6578 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x2e - bl SetMonData - ldr r1, [sp, #0x18] - mov r8, r1 - cmp r1, #2 - bgt _081A6404 - b _081A62CC -_081A6404: - ldr r0, _081A6560 - ldrh r0, [r0] - cmp r0, #0 - beq _081A6412 - cmp r0, #2 - beq _081A6412 - b _081A6546 -_081A6412: - movs r2, #0 - mov r8, r2 - ldr r4, _081A6558 - mov sb, r4 -_081A641A: - ldr r5, _081A6564 - ldr r3, [r5] - mov r0, r8 - adds r0, #3 - lsls r2, r0, #1 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r1, r3, r2 - movs r4, #0xe7 - lsls r4, r4, #4 - adds r0, r1, r4 - ldrh r7, [r0] - ldr r5, _081A6568 - adds r1, r1, r5 - ldrb r6, [r1] - movs r1, #0x64 - mov r0, r8 - muls r0, r1, r0 - ldr r1, _081A657C - adds r0, r0, r1 - mov r4, sb - ldr r1, [r4] - lsls r4, r7, #4 - adds r1, r4, r1 - ldrh r1, [r1] - movs r5, #1 - str r5, [sp] - ldr r5, _081A6570 - adds r3, r3, r5 - adds r3, r3, r2 - ldr r2, [r3] - str r2, [sp, #4] - movs r2, #0 - str r2, [sp, #8] - str r2, [sp, #0xc] - ldr r2, [sp, #0x14] - adds r3, r6, #0 - bl CreateMon - movs r1, #0 - mov r2, sb - ldr r0, [r2] - adds r4, r4, r0 - ldrb r4, [r4, #0xb] - mov r5, r8 - lsls r5, r5, #1 - mov sl, r5 - mov r0, r8 - adds r0, #1 - str r0, [sp, #0x18] - movs r5, #5 -_081A6480: - adds r0, r4, #0 - movs r2, #1 - ands r0, r2 - cmp r0, #0 - beq _081A648C - adds r1, #1 -_081A648C: - lsrs r4, r4, #1 - subs r5, #1 - cmp r5, #0 - bge _081A6480 - add r4, sp, #0x10 - movs r0, #0xff - lsls r0, r0, #1 - bl __divsi3 - strh r0, [r4] - movs r4, #1 - movs r5, #0 - lsls r7, r7, #4 - movs r0, #0x64 - mov r6, r8 - muls r6, r0, r6 - ldr r3, _081A657C -_081A64AE: - mov r1, sb - ldr r0, [r1] - adds r0, r7, r0 - ldrb r0, [r0, #0xb] - ands r0, r4 - cmp r0, #0 - beq _081A64CC - adds r1, r5, #0 - adds r1, #0x1a - adds r0, r6, r3 - add r2, sp, #0x10 - str r3, [sp, #0x20] - bl SetMonData - ldr r3, [sp, #0x20] -_081A64CC: - lsls r0, r4, #0x19 - lsrs r4, r0, #0x18 - adds r5, #1 - cmp r5, #5 - ble _081A64AE - movs r2, #0x64 - mov r4, r8 - muls r4, r2, r4 - ldr r5, _081A657C - adds r0, r4, r5 - bl CalculateMonStats - movs r6, #0 -_081A64E6: - mov r1, sb - ldr r0, [r1] - adds r0, r7, r0 - lsls r1, r6, #1 - adds r0, #2 - adds r0, r0, r1 - ldrh r1, [r0] - lsls r2, r6, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, r5 - bl SetMonMoveAvoidReturn - adds r6, #1 - cmp r6, #3 - ble _081A64E6 - movs r2, #0x64 - mov r4, r8 - muls r4, r2, r4 - ldr r0, _081A657C - adds r4, r4, r0 - mov r5, sb - ldr r0, [r5] - adds r0, r7, r0 - ldrb r2, [r0, #0xa] - lsls r2, r2, #1 - ldr r0, _081A6574 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0xc - bl SetMonData - mov r2, sl - add r2, r8 - lsls r2, r2, #2 - ldr r1, _081A6564 - ldr r0, [r1] - adds r2, r2, r0 - ldr r5, _081A6580 - adds r2, r2, r5 - adds r0, r4, #0 - movs r1, #0x2e - bl SetMonData - ldr r0, [sp, #0x18] - mov r8, r0 - cmp r0, #2 - bgt _081A6546 - b _081A641A -_081A6546: - add sp, #0x24 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A6558: .4byte gUnknown_203B958 -_081A655C: .4byte gUnknown_85B8700 -_081A6560: .4byte gUnknown_2037282 -_081A6564: .4byte gUnknown_3005AF0 -_081A6568: .4byte 0x00000E78 -_081A656C: .4byte gUnknown_2024190 -_081A6570: .4byte 0x00000E74 -_081A6574: .4byte gUnknown_85ADBF4 -_081A6578: .4byte 0x00000E79 -_081A657C: .4byte gUnknown_20243E8 -_081A6580: .4byte 0x00000E9D - thumb_func_end SetPlayerAndOpponentParties - - thumb_func_start GenerateInitialRentalMons -GenerateInitialRentalMons: @ 0x081A6584 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x4c - ldr r1, _081A662C - ldr r0, _081A6630 - str r0, [r1] - mov r0, sp - adds r0, #0xc - str r0, [sp, #0x38] - mov r1, sp - adds r1, #0x18 - str r1, [sp, #0x3c] - ldr r2, _081A6634 - mov sb, r2 - movs r2, #0 - adds r3, r1, #0 - adds r1, r0, #0 - mov r0, sp - movs r4, #5 - mov r8, r4 -_081A65B2: - strh r2, [r0] - strh r2, [r1] - strh r2, [r3] - adds r3, #2 - adds r1, #2 - adds r0, #2 - movs r5, #1 - rsbs r5, r5, #0 - add r8, r5 - mov r4, r8 - cmp r4, #0 - bge _081A65B2 - mov r5, sb - ldr r0, [r5] - ldr r7, _081A6638 - adds r0, r0, r7 - ldrb r4, [r0] - lsls r4, r4, #0x1e - lsrs r4, r4, #0x1e - ldr r6, _081A663C - adds r0, r6, #0 - bl VarGet - lsls r0, r0, #0x18 - ldr r1, [r5] - lsls r4, r4, #1 - lsrs r0, r0, #0x16 - adds r4, r4, r0 - ldr r5, _081A6640 - adds r1, r1, r5 - adds r1, r1, r4 - ldrh r0, [r1] - movs r1, #7 - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x24] - adds r0, r6, #0 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r2, #0 - cmp r0, #1 - bne _081A6610 - movs r2, #1 -_081A6610: - ldr r1, _081A6644 - ldr r0, _081A6648 - str r0, [r1] - mov r1, sb - ldr r0, [r1] - adds r0, r0, r7 - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _081A664C - movs r4, #1 - str r4, [sp, #0x28] - b _081A6650 - .align 2, 0 -_081A662C: .4byte gUnknown_203B954 -_081A6630: .4byte gUnknown_85B4A10 -_081A6634: .4byte gUnknown_3005AF0 -_081A6638: .4byte 0x00000CA9 -_081A663C: .4byte 0x000040CE -_081A6640: .4byte 0x00000DE2 -_081A6644: .4byte gUnknown_203B958 -_081A6648: .4byte gUnknown_85B8700 -_081A664C: - movs r5, #0 - str r5, [sp, #0x28] -_081A6650: - adds r0, r2, #0 - ldr r1, [sp, #0x28] - bl GetNumPastRentalsRank - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x2c] - movs r0, #0 - mov sl, r0 - mov r8, r0 - ldr r1, [sp, #0x3c] - str r1, [sp, #0x40] - mov r2, sp - str r2, [sp, #0x44] - lsls r4, r0, #1 - str r4, [sp, #0x30] - ldr r5, [sp, #0x38] - adds r5, r5, r4 - str r5, [sp, #0x34] -_081A6676: - ldr r0, [sp, #0x2c] - cmp r8, r0 - bge _081A6684 - ldr r0, [sp, #0x28] - ldr r1, [sp, #0x24] - movs r2, #1 - b _081A668A -_081A6684: - ldr r0, [sp, #0x28] - ldr r1, [sp, #0x24] - movs r2, #0 -_081A668A: - bl GetMonSetId - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - ldr r0, _081A6724 - ldr r1, [r0] - lsls r2, r7, #4 - adds r4, r2, r1 - ldrh r1, [r4] - mov sb, r2 - cmp r1, #0xc9 - beq _081A677A - movs r3, #0 - mov r2, r8 - adds r6, r3, r2 - cmp r3, r6 - bge _081A66E8 - ldr r5, [sp, #0x34] - ldrh r0, [r5] - cmp r0, r7 - beq _081A66E8 - mov ip, r4 - adds r2, r1, #0 - lsls r4, r3, #1 - ldr r1, [sp, #0x30] - add r1, sp - str r6, [sp, #0x48] -_081A66C0: - ldrh r0, [r1] - cmp r0, r2 - bne _081A66D2 - mov r0, sl - cmp r0, #0 - bne _081A66E8 - mov r5, ip - ldrh r5, [r5] - mov sl, r5 -_081A66D2: - adds r4, #2 - adds r1, #2 - adds r3, #1 - ldr r0, [sp, #0x48] - cmp r3, r0 - bge _081A66E8 - ldr r5, [sp, #0x38] - adds r0, r5, r4 - ldrh r0, [r0] - cmp r0, r7 - bne _081A66C0 -_081A66E8: - cmp r3, r6 - bne _081A677A - movs r3, #0 - cmp r3, r6 - bge _081A6734 - ldr r0, _081A6728 - mov ip, r0 - ldr r1, [sp, #0x30] - ldr r2, [sp, #0x3c] - adds r5, r1, r2 -_081A66FC: - ldrh r4, [r5] - cmp r4, #0 - beq _081A672C - ldr r1, _081A6724 - ldr r0, [r1] - mov r2, sb - adds r1, r2, r0 - ldrb r0, [r1, #0xa] - lsls r0, r0, #1 - add r0, ip - ldrh r0, [r0] - cmp r4, r0 - bne _081A672C - ldrh r0, [r1] - cmp r0, sl - bne _081A6734 - movs r4, #0 - mov sl, r4 - b _081A6734 - .align 2, 0 -_081A6724: .4byte gUnknown_203B958 -_081A6728: .4byte gUnknown_85ADBF4 -_081A672C: - adds r5, #2 - adds r3, #1 - cmp r3, r6 - blt _081A66FC -_081A6734: - cmp r3, r6 - bne _081A677A - ldr r0, _081A6794 - ldr r1, [r0] - mov r5, r8 - lsls r3, r5, #1 - adds r0, r3, r5 - lsls r0, r0, #2 - adds r1, r1, r0 - movs r0, #0xe7 - lsls r0, r0, #4 - adds r1, r1, r0 - strh r7, [r1] - ldr r2, _081A6798 - ldr r1, [r2] - add r1, sb - ldrh r0, [r1] - ldr r4, [sp, #0x44] - strh r0, [r4] - ldr r2, _081A679C - ldrb r0, [r1, #0xa] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - ldr r5, [sp, #0x40] - strh r0, [r5] - ldr r0, [sp, #0x38] - adds r3, r0, r3 - strh r7, [r3] - adds r5, #2 - str r5, [sp, #0x40] - adds r4, #2 - str r4, [sp, #0x44] - movs r1, #1 - add r8, r1 -_081A677A: - mov r2, r8 - cmp r2, #6 - beq _081A6782 - b _081A6676 -_081A6782: - add sp, #0x4c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A6794: .4byte gUnknown_3005AF0 -_081A6798: .4byte gUnknown_203B958 -_081A679C: .4byte gUnknown_85ADBF4 - thumb_func_end GenerateInitialRentalMons - - thumb_func_start GetOpponentMostCommonMonType -GetOpponentMostCommonMonType: @ 0x081A67A0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x18 - ldr r1, _081A6830 - ldr r0, _081A6834 - str r0, [r1] - movs r4, #0 - add r5, sp, #0x14 - ldr r7, _081A6838 - movs r1, #0 -_081A67B6: - mov r2, sp - adds r0, r2, r4 - strb r1, [r0] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x11 - bls _081A67B6 - movs r4, #0 - ldr r0, _081A683C - mov r8, r0 - ldr r0, _081A6830 - ldr r6, [r0] - ldr r1, _081A6840 - mov ip, r1 -_081A67D4: - lsls r0, r4, #1 - add r0, r8 - ldrh r0, [r0] - lsls r0, r0, #4 - adds r0, r0, r6 - ldrh r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - mov r2, ip - adds r3, r0, r2 - ldrb r2, [r3, #6] - mov r0, sp - adds r1, r0, r2 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldrb r1, [r3, #7] - cmp r2, r1 - beq _081A6808 - ldrb r0, [r3, #7] - mov r2, sp - adds r1, r2, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_081A6808: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #2 - bls _081A67D4 - movs r0, #0 - strb r0, [r5] - strb r0, [r5, #1] - movs r4, #1 - adds r3, r5, #0 -_081A681C: - ldrb r0, [r3] - add r0, sp - mov r2, sp - adds r1, r2, r4 - ldrb r2, [r0] - ldrb r0, [r1] - cmp r2, r0 - bhs _081A6844 - strb r4, [r5] - b _081A684A - .align 2, 0 -_081A6830: .4byte gUnknown_203B958 -_081A6834: .4byte gUnknown_85B8700 -_081A6838: .4byte gUnknown_2037290 -_081A683C: .4byte gUnknown_3005FD8 -_081A6840: .4byte gUnknown_82F0D54 -_081A6844: - cmp r2, r0 - bne _081A684A - strb r4, [r3, #1] -_081A684A: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x11 - bls _081A681C - ldrb r1, [r5] - mov r4, sp - adds r0, r4, r1 - ldrb r2, [r0] - cmp r2, #0 - beq _081A6872 - ldrb r3, [r5, #1] - adds r0, r4, r3 - ldrb r0, [r0] - cmp r2, r0 - bhi _081A686E - cmp r1, r3 - bne _081A6872 -_081A686E: - strh r1, [r7] - b _081A6876 -_081A6872: - movs r0, #0x12 - strh r0, [r7] -_081A6876: - add sp, #0x18 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end GetOpponentMostCommonMonType - - thumb_func_start GetOpponentBattleStyle -GetOpponentBattleStyle: @ 0x081A6884 - push {r4, r5, r6, r7, lr} - sub sp, #8 - movs r7, #0 - ldr r1, _081A6928 - ldr r0, _081A692C - str r0, [r1] - movs r4, #0 - movs r1, #0 -_081A6894: - mov r2, sp - adds r0, r2, r4 - strb r1, [r0] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #7 - bls _081A6894 - movs r4, #0 -_081A68A6: - ldr r1, _081A6930 - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r6, [r0] - movs r5, #0 -_081A68B0: - ldr r0, _081A6928 - ldr r1, [r0] - lsls r0, r6, #4 - adds r0, r0, r1 - lsls r1, r5, #1 - adds r0, #2 - adds r0, r0, r1 - ldrh r0, [r0] - bl GetMoveBattleStyle - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r2, sp - adds r1, r2, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #3 - bls _081A68B0 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #2 - bls _081A68A6 - ldr r1, _081A6934 - movs r0, #0 - strh r0, [r1] - movs r4, #1 - adds r5, r1, #0 - ldr r3, _081A6938 - adds r2, r5, #0 -_081A68F4: - mov r1, sp - adds r0, r1, r4 - subs r1, r4, #1 - adds r1, r1, r3 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - blo _081A690C - strh r4, [r2] - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 -_081A690C: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #7 - bls _081A68F4 - cmp r7, #2 - bls _081A691E - movs r0, #8 - strh r0, [r5] -_081A691E: - add sp, #8 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A6928: .4byte gUnknown_203B958 -_081A692C: .4byte gUnknown_85B8700 -_081A6930: .4byte gUnknown_3005FD8 -_081A6934: .4byte gUnknown_2037290 -_081A6938: .4byte gUnknown_85DD7F8 - thumb_func_end GetOpponentBattleStyle - - thumb_func_start GetMoveBattleStyle -GetMoveBattleStyle: @ 0x081A693C - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - movs r2, #0 - ldr r6, _081A6968 -_081A6946: - movs r3, #0 - lsls r0, r2, #2 - adds r0, r0, r6 - ldr r1, [r0] - ldrh r0, [r1] - adds r4, r2, #1 - cmp r0, #0 - beq _081A697C - lsls r0, r4, #0x18 - lsrs r2, r0, #0x18 -_081A695A: - lsls r0, r3, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, r5 - bne _081A696C - adds r0, r2, #0 - b _081A6986 - .align 2, 0 -_081A6968: .4byte gUnknown_85DD93C -_081A696C: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r0, r3, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0 - bne _081A695A -_081A697C: - lsls r0, r4, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #6 - bls _081A6946 - movs r0, #0 -_081A6986: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end GetMoveBattleStyle - - thumb_func_start InBattleFactory -InBattleFactory: @ 0x081A698C - push {lr} - movs r2, #0 - ldr r1, _081A69AC - ldr r3, _081A69B0 - adds r0, r3, #0 - ldrh r1, [r1, #0x12] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bhi _081A69A4 - movs r2, #1 -_081A69A4: - adds r0, r2, #0 - pop {r1} - bx r1 - .align 2, 0 -_081A69AC: .4byte gUnknown_2036FB8 -_081A69B0: .4byte 0xFFFFFEA5 - thumb_func_end InBattleFactory - - thumb_func_start RestorePlayerPartyHeldItems -RestorePlayerPartyHeldItems: @ 0x081A69B4 - push {r4, lr} - ldr r0, _081A69D0 - ldr r0, [r0] - ldr r1, _081A69D4 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - cmp r0, #2 - beq _081A69E0 - ldr r1, _081A69D8 - ldr r0, _081A69DC - b _081A69E4 - .align 2, 0 -_081A69D0: .4byte gUnknown_3005AF0 -_081A69D4: .4byte 0x00000CA9 -_081A69D8: .4byte gUnknown_203B958 -_081A69DC: .4byte gUnknown_85B8700 -_081A69E0: - ldr r1, _081A6A2C - ldr r0, _081A6A30 -_081A69E4: - str r0, [r1] - movs r4, #0 -_081A69E8: - movs r0, #0x64 - muls r0, r4, r0 - ldr r1, _081A6A34 - adds r0, r0, r1 - ldr r1, _081A6A38 - ldr r2, [r1] - lsls r1, r4, #1 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r2, r2, r1 - movs r1, #0xe7 - lsls r1, r1, #4 - adds r2, r2, r1 - ldrh r2, [r2] - ldr r1, _081A6A2C - ldr r1, [r1] - lsls r2, r2, #4 - adds r2, r2, r1 - ldrb r2, [r2, #0xa] - lsls r2, r2, #1 - ldr r1, _081A6A3C - adds r2, r2, r1 - movs r1, #0xc - bl SetMonData - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #2 - bls _081A69E8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081A6A2C: .4byte gUnknown_203B958 -_081A6A30: .4byte gUnknown_85BCF70 -_081A6A34: .4byte gUnknown_2024190 -_081A6A38: .4byte gUnknown_3005AF0 -_081A6A3C: .4byte gUnknown_85ADBF4 - thumb_func_end RestorePlayerPartyHeldItems - - thumb_func_start GetFactoryMonFixedIV -GetFactoryMonFixedIV: @ 0x081A6A40 - push {lr} - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - rsbs r2, r1, #0 - orrs r2, r1 - lsrs r2, r2, #0x1f - lsrs r1, r0, #0x18 - cmp r1, #8 - bls _081A6A56 - movs r1, #7 -_081A6A56: - ldr r0, _081A6A64 - lsls r1, r1, #1 - adds r1, r2, r1 - adds r1, r1, r0 - ldrb r0, [r1] - pop {r1} - bx r1 - .align 2, 0 -_081A6A64: .4byte gUnknown_85DD9BC - thumb_func_end GetFactoryMonFixedIV - - thumb_func_start FillFactoryBrainParty -FillFactoryBrainParty: @ 0x081A6A68 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x34 - ldr r4, _081A6C68 - ldr r0, [r4] - ldr r1, _081A6C6C - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - str r0, [sp, #0x2c] - ldr r0, _081A6C70 - bl VarGet - lsls r0, r0, #0x18 - ldr r1, [r4] - ldr r3, [sp, #0x2c] - lsls r2, r3, #1 - lsrs r0, r0, #0x16 - adds r2, r2, r0 - ldr r7, _081A6C74 - adds r1, r1, r7 - adds r1, r1, r2 - ldrh r0, [r1] - movs r1, #7 - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - str r1, [sp, #0x30] - movs r2, #0x80 - lsls r2, r2, #0x12 - adds r0, r0, r2 - lsrs r0, r0, #0x18 - movs r1, #0 - bl GetFactoryMonFixedIV - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x24] - bl SetFacilityPtrsGetLevel - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x20] - movs r3, #0 - mov sb, r3 - ldr r1, [r4] - ldrb r4, [r1, #0xa] - ldrb r0, [r1, #0xb] - lsls r0, r0, #8 - orrs r4, r0 - ldrb r0, [r1, #0xc] - lsls r0, r0, #0x10 - orrs r4, r0 - ldrb r0, [r1, #0xd] - lsls r0, r0, #0x18 - orrs r4, r0 - str r4, [sp, #0x28] -_081A6AE4: - ldr r0, [sp, #0x2c] - ldr r1, [sp, #0x30] - movs r2, #0 - bl GetMonSetId - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r7, _081A6C78 - ldr r1, [r7] - lsls r0, r5, #4 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0xc9 - bne _081A6B02 - b _081A6C50 -_081A6B02: - ldr r0, [sp, #0x20] - cmp r0, #0x32 - bne _081A6B10 - ldr r0, _081A6C7C - cmp r5, r0 - bls _081A6B10 - b _081A6C50 -_081A6B10: - movs r2, #0 - ldr r1, _081A6C68 - ldr r0, [r1] - movs r3, #0xe7 - lsls r3, r3, #4 - adds r0, r0, r3 - ldrh r0, [r0] - cmp r5, r0 - beq _081A6B3A - adds r4, r1, #0 - movs r1, #0 -_081A6B26: - adds r1, #0xc - adds r2, #1 - cmp r2, #5 - bgt _081A6B3A - ldr r0, [r4] - adds r0, r0, r1 - adds r0, r0, r3 - ldrh r0, [r0] - cmp r5, r0 - bne _081A6B26 -_081A6B3A: - cmp r2, #6 - beq _081A6B40 - b _081A6C50 -_081A6B40: - movs r4, #0 - cmp r4, sb - bge _081A6B74 - add r2, sp, #0xc - ldr r7, _081A6C78 - ldr r0, [r7] - lsls r1, r5, #4 - adds r0, r1, r0 - ldrh r2, [r2] - adds r7, r1, #0 - ldrh r0, [r0] - cmp r2, r0 - beq _081A6B74 - ldr r6, _081A6C78 - adds r3, r7, #0 - add r2, sp, #0xc -_081A6B60: - adds r2, #2 - adds r4, #1 - cmp r4, sb - bge _081A6B74 - ldr r0, [r6] - adds r0, r3, r0 - ldrh r1, [r2] - ldrh r0, [r0] - cmp r1, r0 - bne _081A6B60 -_081A6B74: - cmp r4, sb - bne _081A6C50 - movs r4, #0 - cmp r4, sb - bge _081A6BA4 - ldr r7, _081A6C80 - ldr r6, _081A6C78 - add r2, sp, #0x14 - lsls r3, r5, #4 -_081A6B86: - ldrh r1, [r2] - cmp r1, #0 - beq _081A6B9C - ldr r0, [r6] - adds r0, r3, r0 - ldrb r0, [r0, #0xa] - lsls r0, r0, #1 - adds r0, r0, r7 - ldrh r0, [r0] - cmp r1, r0 - beq _081A6BA4 -_081A6B9C: - adds r2, #2 - adds r4, #1 - cmp r4, sb - blt _081A6B86 -_081A6BA4: - cmp r4, sb - bne _081A6C50 - mov r0, sb - lsls r2, r0, #1 - mov r1, sp - adds r1, r1, r2 - adds r1, #0xc - ldr r3, _081A6C78 - ldr r4, [r3] - lsls r5, r5, #4 - mov r8, r5 - add r4, r8 - ldrh r0, [r4] - strh r0, [r1] - add r1, sp, #0x14 - adds r1, r1, r2 - ldr r2, _081A6C80 - ldrb r0, [r4, #0xa] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r1] - movs r0, #0x64 - mov r5, sb - muls r5, r0, r5 - ldr r6, _081A6C84 - adds r0, r5, r6 - ldrh r1, [r4] - ldr r7, [sp, #0x20] - lsls r2, r7, #0x18 - ldrb r3, [r4, #0xc] - ldr r7, [sp, #0x24] - str r7, [sp] - ldrb r4, [r4, #0xb] - str r4, [sp, #4] - ldr r4, [sp, #0x28] - str r4, [sp, #8] - lsrs r2, r2, #0x18 - bl CreateMonWithEVSpreadNatureOTID - add r0, sp, #0x1c - movs r7, #0 - strb r7, [r0] - movs r4, #0 - mov r7, r8 - mov sl, r0 - movs r0, #1 - add r0, sb - mov r8, r0 -_081A6C06: - ldr r1, _081A6C78 - ldr r0, [r1] - adds r0, r7, r0 - lsls r1, r4, #1 - adds r0, #2 - adds r0, r0, r1 - ldrh r1, [r0] - lsls r2, r4, #0x18 - lsrs r2, r2, #0x18 - adds r0, r5, r6 - bl SetMonMoveAvoidReturn - adds r4, #1 - cmp r4, #3 - ble _081A6C06 - movs r0, #0x64 - mov r4, sb - muls r4, r0, r4 - ldr r0, _081A6C84 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x20 - mov r2, sl - bl SetMonData - ldr r2, _081A6C78 - ldr r0, [r2] - adds r0, r7, r0 - ldrb r2, [r0, #0xa] - lsls r2, r2, #1 - ldr r0, _081A6C80 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0xc - bl SetMonData - mov sb, r8 -_081A6C50: - mov r3, sb - cmp r3, #3 - beq _081A6C58 - b _081A6AE4 -_081A6C58: - add sp, #0x34 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A6C68: .4byte gUnknown_3005AF0 -_081A6C6C: .4byte 0x00000CA9 -_081A6C70: .4byte 0x000040CE -_081A6C74: .4byte 0x00000DE2 -_081A6C78: .4byte gUnknown_203B958 -_081A6C7C: .4byte 0x00000351 -_081A6C80: .4byte gUnknown_85ADBF4 -_081A6C84: .4byte gUnknown_20243E8 - thumb_func_end FillFactoryBrainParty - - thumb_func_start GetMonSetId -GetMonSetId: @ 0x081A6C88 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r4, #8 - rsbs r1, r0, #0 - orrs r1, r0 - asrs r1, r1, #0x1f - ands r1, r4 - adds r4, r1, #0 - cmp r3, #6 - bhi _081A6CC4 - cmp r2, #0 - beq _081A6CB8 - ldr r2, _081A6CB4 - adds r1, r1, r3 - adds r1, #1 - b _081A6CD0 - .align 2, 0 -_081A6CB4: .4byte gUnknown_85DD9CC -_081A6CB8: - ldr r2, _081A6CC0 - adds r1, r1, r3 - b _081A6CD0 - .align 2, 0 -_081A6CC0: .4byte gUnknown_85DD9CC -_081A6CC4: - adds r1, r3, #0 - cmp r1, #7 - beq _081A6CCC - movs r1, #7 -_081A6CCC: - ldr r2, _081A6D04 - adds r1, r4, r1 -_081A6CD0: - lsls r1, r1, #2 - adds r0, r2, #2 - adds r0, r1, r0 - adds r1, r1, r2 - ldrh r0, [r0] - ldrh r4, [r1] - subs r0, r0, r4 - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r5, #0 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r4, r0, r4 - lsls r4, r4, #0x10 - lsrs r0, r4, #0x10 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081A6D04: .4byte gUnknown_85DD9CC - thumb_func_end GetMonSetId - - thumb_func_start GetNumPastRentalsRank -GetNumPastRentalsRank: @ 0x081A6D08 - push {lr} - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - ldr r2, _081A6D44 - ldr r2, [r2] - lsrs r1, r1, #0x17 - lsrs r0, r0, #0x16 - adds r1, r1, r0 - ldr r0, _081A6D48 - adds r2, r2, r0 - adds r2, r2, r1 - ldrb r1, [r2] - movs r0, #0 - cmp r1, #0xe - bls _081A6D40 - movs r0, #1 - cmp r1, #0x15 - bls _081A6D40 - movs r0, #2 - cmp r1, #0x1c - bls _081A6D40 - movs r0, #3 - cmp r1, #0x23 - bls _081A6D40 - movs r0, #5 - cmp r1, #0x2a - bhi _081A6D40 - movs r0, #4 -_081A6D40: - pop {r1} - bx r1 - .align 2, 0 -_081A6D44: .4byte gUnknown_3005AF0 -_081A6D48: .4byte 0x00000DF2 - thumb_func_end GetNumPastRentalsRank - - thumb_func_start GetAiScriptsInBattleFactory -GetAiScriptsInBattleFactory: @ 0x081A6D4C - push {r4, r5, lr} - ldr r5, _081A6D94 - ldr r0, [r5] - ldr r1, _081A6D98 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r4, r0, #0x1e - cmp r4, #2 - beq _081A6D90 - ldr r0, _081A6D9C - bl VarGet - lsls r0, r0, #0x10 - ldr r1, [r5] - lsls r2, r4, #1 - lsrs r0, r0, #0xe - adds r2, r2, r0 - ldr r0, _081A6DA0 - adds r1, r1, r0 - adds r1, r1, r2 - ldrh r0, [r1] - movs r1, #7 - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, _081A6DA4 - ldrh r1, [r0] - ldr r0, _081A6DA8 - cmp r1, r0 - beq _081A6DB0 - cmp r2, #1 - bgt _081A6DAC -_081A6D90: - movs r0, #0 - b _081A6DB6 - .align 2, 0 -_081A6D94: .4byte gUnknown_3005AF0 -_081A6D98: .4byte 0x00000CA9 -_081A6D9C: .4byte 0x000040CE -_081A6DA0: .4byte 0x00000DE2 -_081A6DA4: .4byte gUnknown_203886A -_081A6DA8: .4byte 0x000003FE -_081A6DAC: - cmp r2, #3 - ble _081A6DB4 -_081A6DB0: - movs r0, #7 - b _081A6DB6 -_081A6DB4: - movs r0, #1 -_081A6DB6: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end GetAiScriptsInBattleFactory - - thumb_func_start SetMonMoveAvoidReturn -SetMonMoveAvoidReturn: @ 0x081A6DBC - push {lr} - lsls r1, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsrs r1, r1, #0x10 - cmp r1, #0xd8 - bne _081A6DCC - movs r1, #0xda -_081A6DCC: - bl SetMonMoveSlot - pop {r0} - bx r0 - thumb_func_end SetMonMoveAvoidReturn - - thumb_func_start sub_081A6DD4 -sub_081A6DD4: @ 0x081A6DD4 - push {lr} - ldr r1, _081A6DEC - ldr r0, _081A6DF0 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - thumb_func_end sub_081A6DD4 - - thumb_func_start sub_081A6DE8 -sub_081A6DE8: @ 0x081A6DE8 - bx r0 - .align 2, 0 -_081A6DEC: .4byte gUnknown_85DDE30 -_081A6DF0: .4byte gUnknown_2037280 - thumb_func_end sub_081A6DE8 - - thumb_func_start SetRoomType -SetRoomType: @ 0x081A6DF4 - push {lr} - bl GetNextRoomType - ldr r1, _081A6E04 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_081A6E04: .4byte gUnknown_3001288 - thumb_func_end SetRoomType - - thumb_func_start sub_081A6E08 -sub_081A6E08: @ 0x081A6E08 - push {r4, r5, r6, r7, lr} - movs r4, #1 - movs r6, #0 - movs r5, #0 - movs r7, #0 - ldr r0, _081A6E24 - ldrb r0, [r0] - cmp r0, #8 - bhi _081A6EB2 - lsls r0, r0, #2 - ldr r1, _081A6E28 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081A6E24: .4byte gUnknown_3001288 -_081A6E28: .4byte _081A6E2C -_081A6E2C: @ jump table - .4byte _081A6E50 @ case 0 - .4byte _081A6E5A @ case 1 - .4byte _081A6E5E @ case 2 - .4byte _081A6E68 @ case 3 - .4byte _081A6E7C @ case 4 - .4byte _081A6E56 @ case 5 - .4byte _081A6E80 @ case 6 - .4byte _081A6E88 @ case 7 - .4byte _081A6E8E @ case 8 -_081A6E50: - movs r0, #0 - bl PrepareOneTrainer -_081A6E56: - movs r4, #0 - b _081A6E9A -_081A6E5A: - movs r5, #0x1c - b _081A6E9A -_081A6E5E: - bl GetNPCRoomGraphicsId - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - b _081A6E9A -_081A6E68: - movs r5, #0x30 - ldr r0, _081A6E78 - ldrb r0, [r0] - movs r7, #0xe1 - cmp r0, #1 - bne _081A6E98 - movs r7, #0xe2 - b _081A6E98 - .align 2, 0 -_081A6E78: .4byte gUnknown_3001289 -_081A6E7C: - movs r5, #0x30 - b _081A6E9A -_081A6E80: - movs r0, #1 - bl PrepareOneTrainer - b _081A6E94 -_081A6E88: - bl PrepareTwoTrainers - b _081A6E56 -_081A6E8E: - movs r0, #5 - bl SetFrontierBrainEventObjGfx -_081A6E94: - movs r7, #0x1c - movs r4, #0 -_081A6E98: - movs r6, #1 -_081A6E9A: - cmp r4, #1 - bne _081A6EA6 - ldr r0, _081A6EB8 - adds r1, r5, #0 - bl VarSet -_081A6EA6: - cmp r6, #1 - bne _081A6EB2 - ldr r0, _081A6EBC - adds r1, r7, #0 - bl VarSet -_081A6EB2: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A6EB8: .4byte 0x00004010 -_081A6EBC: .4byte 0x00004011 - thumb_func_end sub_081A6E08 - - thumb_func_start GetBattlePikeData -GetBattlePikeData: @ 0x081A6EC0 - push {lr} - ldr r1, _081A6EE4 - ldr r0, [r1] - ldr r2, _081A6EE8 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r2, r0, #0x1e - ldr r0, _081A6EEC - ldrh r0, [r0] - adds r3, r1, #0 - cmp r0, #4 - bhi _081A6FBA - lsls r0, r0, #2 - ldr r1, _081A6EF0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081A6EE4: .4byte gUnknown_3005AF0 -_081A6EE8: .4byte 0x00000CA9 -_081A6EEC: .4byte gUnknown_2037282 -_081A6EF0: .4byte _081A6EF4 -_081A6EF4: @ jump table - .4byte _081A6F08 @ case 0 - .4byte _081A6F20 @ case 1 - .4byte _081A6F44 @ case 2 - .4byte _081A6F68 @ case 3 - .4byte _081A6F8C @ case 4 -_081A6F08: - ldr r0, _081A6F18 - ldr r1, [r3] - ldr r3, _081A6F1C - adds r1, r1, r3 - ldrh r1, [r1] - strh r1, [r0] - b _081A6FBA - .align 2, 0 -_081A6F18: .4byte gUnknown_2037290 -_081A6F1C: .4byte 0x00000E02 -_081A6F20: - ldr r2, _081A6F38 - ldr r1, [r3] - ldr r3, _081A6F3C - adds r0, r1, r3 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1d - ldr r3, _081A6F40 - adds r1, r1, r3 - adds r1, r1, r0 - ldrh r0, [r1] - b _081A6FB8 - .align 2, 0 -_081A6F38: .4byte gUnknown_2037290 -_081A6F3C: .4byte 0x00000CA9 -_081A6F40: .4byte 0x00000E04 -_081A6F44: - ldr r2, _081A6F5C - ldr r1, [r3] - ldr r3, _081A6F60 - adds r0, r1, r3 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1d - ldr r3, _081A6F64 - adds r1, r1, r3 - adds r1, r1, r0 - ldrh r0, [r1] - b _081A6FB8 - .align 2, 0 -_081A6F5C: .4byte gUnknown_2037290 -_081A6F60: .4byte 0x00000CA9 -_081A6F64: .4byte 0x00000E08 -_081A6F68: - ldr r2, _081A6F80 - ldr r1, [r3] - ldr r3, _081A6F84 - adds r0, r1, r3 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1d - ldr r3, _081A6F88 - adds r1, r1, r3 - adds r1, r1, r0 - ldrh r0, [r1] - b _081A6FB8 - .align 2, 0 -_081A6F80: .4byte gUnknown_2037290 -_081A6F84: .4byte 0x00000CA9 -_081A6F88: .4byte 0x00000E0C -_081A6F8C: - cmp r2, #0 - beq _081A6FA8 - ldr r2, _081A6FA0 - ldr r0, [r3] - ldr r1, _081A6FA4 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #4 - b _081A6FB6 - .align 2, 0 -_081A6FA0: .4byte gUnknown_2037290 -_081A6FA4: .4byte 0x00000CDC -_081A6FA8: - ldr r2, _081A6FC0 - ldr r0, [r3] - ldr r3, _081A6FC4 - adds r0, r0, r3 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #3 -_081A6FB6: - ands r0, r1 -_081A6FB8: - strh r0, [r2] -_081A6FBA: - pop {r0} - bx r0 - .align 2, 0 -_081A6FC0: .4byte gUnknown_2037290 -_081A6FC4: .4byte 0x00000CDC - thumb_func_end GetBattlePikeData - - thumb_func_start SetBattlePikeData -SetBattlePikeData: @ 0x081A6FC8 - push {r4, r5, lr} - ldr r1, _081A6FF0 - ldr r0, [r1] - ldr r2, _081A6FF4 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r3, r0, #0x1e - ldr r0, _081A6FF8 - ldrh r0, [r0] - adds r2, r1, #0 - cmp r0, #4 - bls _081A6FE4 - b _081A712A -_081A6FE4: - lsls r0, r0, #2 - ldr r1, _081A6FFC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081A6FF0: .4byte gUnknown_3005AF0 -_081A6FF4: .4byte 0x00000CA9 -_081A6FF8: .4byte gUnknown_2037282 -_081A6FFC: .4byte _081A7000 -_081A7000: @ jump table - .4byte _081A7014 @ case 0 - .4byte _081A702C @ case 1 - .4byte _081A7058 @ case 2 - .4byte _081A7094 @ case 3 - .4byte _081A70C4 @ case 4 -_081A7014: - ldr r0, [r2] - ldr r1, _081A7024 - ldrh r1, [r1] - ldr r5, _081A7028 - adds r0, r0, r5 - strh r1, [r0] - b _081A712A - .align 2, 0 -_081A7024: .4byte gUnknown_2037284 -_081A7028: .4byte 0x00000E02 -_081A702C: - ldr r0, _081A7048 - ldrh r3, [r0] - ldr r0, _081A704C - cmp r3, r0 - bls _081A7038 - b _081A712A -_081A7038: - ldr r0, [r2] - ldr r2, _081A7050 - adds r1, r0, r2 - ldrb r1, [r1] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1d - ldr r5, _081A7054 - b _081A70AC - .align 2, 0 -_081A7048: .4byte gUnknown_2037284 -_081A704C: .4byte 0x0000270F -_081A7050: .4byte 0x00000CA9 -_081A7054: .4byte 0x00000E04 -_081A7058: - ldr r0, _081A7084 - ldrh r4, [r0] - adds r3, r4, #0 - ldr r0, _081A7088 - cmp r3, r0 - bhi _081A712A - ldr r1, [r2] - ldr r2, _081A708C - adds r0, r1, r2 - ldrb r0, [r0] - lsls r2, r0, #0x1e - lsrs r0, r2, #0x1d - ldr r5, _081A7090 - adds r1, r1, r5 - adds r0, r1, r0 - ldrh r0, [r0] - cmp r0, r3 - bhs _081A712A - lsrs r0, r2, #0x1d - adds r0, r1, r0 - strh r4, [r0] - b _081A712A - .align 2, 0 -_081A7084: .4byte gUnknown_2037284 -_081A7088: .4byte 0x0000270F -_081A708C: .4byte 0x00000CA9 -_081A7090: .4byte 0x00000E08 -_081A7094: - ldr r0, _081A70B4 - ldrh r3, [r0] - ldr r0, _081A70B8 - cmp r3, r0 - bhi _081A712A - ldr r0, [r2] - ldr r2, _081A70BC - adds r1, r0, r2 - ldrb r1, [r1] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1d - ldr r5, _081A70C0 -_081A70AC: - adds r0, r0, r5 - adds r0, r0, r1 - strh r3, [r0] - b _081A712A - .align 2, 0 -_081A70B4: .4byte gUnknown_2037284 -_081A70B8: .4byte 0x0000270F -_081A70BC: .4byte 0x00000CA9 -_081A70C0: .4byte 0x00000E0C -_081A70C4: - cmp r3, #0 - beq _081A70FC - ldr r0, _081A70E0 - ldrh r0, [r0] - cmp r0, #0 - beq _081A70E8 - ldr r0, [r2] - ldr r1, _081A70E4 - adds r0, r0, r1 - ldr r1, [r0] - movs r2, #0x80 - lsls r2, r2, #4 - orrs r1, r2 - b _081A7128 - .align 2, 0 -_081A70E0: .4byte gUnknown_2037284 -_081A70E4: .4byte 0x00000CDC -_081A70E8: - ldr r0, [r2] - ldr r2, _081A70F4 - adds r0, r0, r2 - ldr r1, [r0] - ldr r2, _081A70F8 - b _081A7126 - .align 2, 0 -_081A70F4: .4byte 0x00000CDC -_081A70F8: .4byte 0xFFFFF7FF -_081A70FC: - ldr r0, _081A7114 - ldrh r0, [r0] - cmp r0, #0 - beq _081A711C - ldr r0, [r2] - ldr r5, _081A7118 - adds r0, r0, r5 - ldr r1, [r0] - movs r2, #0x80 - lsls r2, r2, #3 - orrs r1, r2 - b _081A7128 - .align 2, 0 -_081A7114: .4byte gUnknown_2037284 -_081A7118: .4byte 0x00000CDC -_081A711C: - ldr r0, [r2] - ldr r1, _081A7130 - adds r0, r0, r1 - ldr r1, [r0] - ldr r2, _081A7134 -_081A7126: - ands r1, r2 -_081A7128: - str r1, [r0] -_081A712A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081A7130: .4byte 0x00000CDC -_081A7134: .4byte 0xFFFFFBFF - thumb_func_end SetBattlePikeData - - thumb_func_start GetInFinalRoom -GetInFinalRoom: @ 0x081A7138 - push {lr} - ldr r0, _081A7150 - ldr r0, [r0] - ldr r1, _081A7154 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0xe - bls _081A715C - ldr r1, _081A7158 - movs r0, #1 - b _081A7160 - .align 2, 0 -_081A7150: .4byte gUnknown_3005AF0 -_081A7154: .4byte 0x00000CB2 -_081A7158: .4byte gUnknown_2037290 -_081A715C: - ldr r1, _081A7168 - movs r0, #0 -_081A7160: - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_081A7168: .4byte gUnknown_2037290 - thumb_func_end GetInFinalRoom - - thumb_func_start sub_081A716C -sub_081A716C: @ 0x081A716C - ldr r0, _081A7178 - ldr r1, _081A717C - ldrb r1, [r1] - strh r1, [r0] - bx lr - .align 2, 0 -_081A7178: .4byte gUnknown_2037290 -_081A717C: .4byte gUnknown_3001288 - thumb_func_end sub_081A716C - - thumb_func_start sub_081A7180 -sub_081A7180: @ 0x081A7180 - ldr r1, _081A7188 - movs r0, #1 - strb r0, [r1] - bx lr - .align 2, 0 -_081A7188: .4byte gUnknown_300128A - thumb_func_end sub_081A7180 - - thumb_func_start sub_081A718C -sub_081A718C: @ 0x081A718C - ldr r1, _081A7194 - movs r0, #0 - strb r0, [r1] - bx lr - .align 2, 0 -_081A7194: .4byte gUnknown_300128A - thumb_func_end sub_081A718C - - thumb_func_start sub_081A7198 -sub_081A7198: @ 0x081A7198 - push {r4, lr} - ldr r4, _081A71D0 - ldr r0, [r4] - ldr r1, _081A71D4 - ldrh r1, [r1] - ldr r2, _081A71D8 - adds r0, r0, r2 - strb r1, [r0] - movs r0, #0x80 - lsls r0, r0, #7 - movs r1, #0 - bl VarSet - ldr r1, [r4] - ldr r0, _081A71DC - adds r1, r1, r0 - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - bl save_serialize_map - movs r0, #1 - bl TrySavingData - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081A71D0: .4byte gUnknown_3005AF0 -_081A71D4: .4byte gUnknown_2037282 -_081A71D8: .4byte 0x00000CA8 -_081A71DC: .4byte 0x00000CA9 - thumb_func_end sub_081A7198 - - thumb_func_start sub_081A71E0 -sub_081A71E0: @ 0x081A71E0 - bx lr - .align 2, 0 - thumb_func_end sub_081A71E0 - - thumb_func_start sub_081A71E4 -sub_081A71E4: @ 0x081A71E4 - bx lr - .align 2, 0 - thumb_func_end sub_081A71E4 - - thumb_func_start GetRoomInflictedStatus -GetRoomInflictedStatus: @ 0x081A71E8 - push {lr} - ldr r0, _081A7200 - ldr r0, [r0] - cmp r0, #0x20 - beq _081A720E - cmp r0, #0x20 - bhi _081A7204 - cmp r0, #7 - beq _081A723C - cmp r0, #0x10 - beq _081A7218 - b _081A7242 - .align 2, 0 -_081A7200: .4byte gUnknown_300128C -_081A7204: - cmp r0, #0x40 - beq _081A7230 - cmp r0, #0x80 - beq _081A7224 - b _081A7242 -_081A720E: - ldr r1, _081A7214 - movs r0, #0 - b _081A7240 - .align 2, 0 -_081A7214: .4byte gUnknown_2037290 -_081A7218: - ldr r1, _081A7220 - movs r0, #1 - b _081A7240 - .align 2, 0 -_081A7220: .4byte gUnknown_2037290 -_081A7224: - ldr r1, _081A722C - movs r0, #2 - b _081A7240 - .align 2, 0 -_081A722C: .4byte gUnknown_2037290 -_081A7230: - ldr r1, _081A7238 - movs r0, #3 - b _081A7240 - .align 2, 0 -_081A7238: .4byte gUnknown_2037290 -_081A723C: - ldr r1, _081A7248 - movs r0, #4 -_081A7240: - strh r0, [r1] -_081A7242: - pop {r0} - bx r0 - .align 2, 0 -_081A7248: .4byte gUnknown_2037290 - thumb_func_end GetRoomInflictedStatus - - thumb_func_start sub_081A724C -sub_081A724C: @ 0x081A724C - ldr r0, _081A7258 - ldr r1, _081A725C - ldrb r1, [r1] - strh r1, [r0] - bx lr - .align 2, 0 -_081A7258: .4byte gUnknown_2037290 -_081A725C: .4byte gUnknown_3001289 - thumb_func_end sub_081A724C - - thumb_func_start HealOneOrTwoMons -HealOneOrTwoMons: @ 0x081A7260 - push {r4, lr} - bl Random - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - movs r0, #1 - ands r4, r0 - adds r4, #1 - adds r0, r4, #0 - bl TryHealMons - ldr r0, _081A7284 - strh r4, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081A7284: .4byte gUnknown_2037290 - thumb_func_end HealOneOrTwoMons - - thumb_func_start BufferNPCMessage -BufferNPCMessage: @ 0x081A7288 - push {lr} - ldr r0, _081A72A8 - ldr r0, [r0] - ldr r1, _081A72AC - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #4 - bhi _081A72B8 - ldr r1, _081A72B0 - ldr r0, _081A72B4 - ldrb r0, [r0] - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r1, [r0, #2] - b _081A72E0 - .align 2, 0 -_081A72A8: .4byte gUnknown_3005AF0 -_081A72AC: .4byte 0x00000CB2 -_081A72B0: .4byte gUnknown_85DDB54 -_081A72B4: .4byte gUnknown_3001290 -_081A72B8: - cmp r0, #0xa - bhi _081A72D4 - ldr r1, _081A72CC - ldr r0, _081A72D0 - ldrb r0, [r0] - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r1, [r0, #3] - b _081A72E0 - .align 2, 0 -_081A72CC: .4byte gUnknown_85DDB54 -_081A72D0: .4byte gUnknown_3001290 -_081A72D4: - ldr r1, _081A72F4 - ldr r0, _081A72F8 - ldrb r0, [r0] - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r1, [r0, #4] -_081A72E0: - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _081A72FC - adds r0, r0, r1 - bl FrontierSpeechToString - pop {r0} - bx r0 - .align 2, 0 -_081A72F4: .4byte gUnknown_85DDB54 -_081A72F8: .4byte gUnknown_3001290 -_081A72FC: .4byte gUnknown_85DDC1C - thumb_func_end BufferNPCMessage - - thumb_func_start StatusInflictionScreenFade -StatusInflictionScreenFade: @ 0x081A7300 - push {lr} - ldr r0, _081A7310 - movs r1, #2 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_081A7310: .4byte Task_DoStatusInflictionScreenFade - thumb_func_end StatusInflictionScreenFade - - thumb_func_start HealMon -HealMon: @ 0x081A7314 - push {r4, r5, r6, lr} - sub sp, #4 - adds r5, r0, #0 - movs r4, #0 - movs r1, #0 -_081A731E: - mov r2, sp - adds r0, r2, r4 - strb r1, [r0] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _081A731E - adds r0, r5, #0 - movs r1, #0x3a - bl GetMonData - lsls r2, r0, #0x10 - mov r1, sp - strb r0, [r1] - mov r0, sp - lsrs r2, r2, #0x18 - strb r2, [r0, #1] - adds r0, r5, #0 - movs r1, #0x39 - mov r2, sp - bl SetMonData - adds r0, r5, #0 - movs r1, #0x15 - bl GetMonData - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r4, #0 -_081A735A: - adds r1, r4, #0 - adds r1, #0xd - adds r0, r5, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r6, #0 - adds r2, r4, #0 - bl CalculatePPWithBonus - mov r1, sp - strb r0, [r1] - adds r1, r4, #0 - adds r1, #0x11 - adds r0, r5, #0 - mov r2, sp - bl SetMonData - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _081A735A - mov r0, sp - movs r1, #0 - strb r1, [r0] - strb r1, [r0, #1] - strb r1, [r0, #2] - strb r1, [r0, #3] - adds r0, r5, #0 - movs r1, #0x37 - mov r2, sp - bl SetMonData - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end HealMon - - thumb_func_start DoesAbilityPreventStatus -DoesAbilityPreventStatus: @ 0x081A73A8 - push {r4, lr} - adds r4, r1, #0 - bl GetMonAbility - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - cmp r4, #0x20 - beq _081A73D2 - cmp r4, #0x20 - bhi _081A73C8 - cmp r4, #7 - beq _081A73E4 - cmp r4, #0x10 - beq _081A73D8 - b _081A73F4 -_081A73C8: - cmp r4, #0x40 - beq _081A73DE - cmp r4, #0x80 - beq _081A73EE - b _081A73F4 -_081A73D2: - cmp r0, #0x28 - bne _081A73F4 - b _081A73F2 -_081A73D8: - cmp r0, #0x29 - bne _081A73F4 - b _081A73F2 -_081A73DE: - cmp r0, #7 - bne _081A73F4 - b _081A73F2 -_081A73E4: - cmp r0, #0xf - beq _081A73F2 - cmp r0, #0x48 - bne _081A73F4 - b _081A73F2 -_081A73EE: - cmp r0, #0x11 - bne _081A73F4 -_081A73F2: - movs r1, #1 -_081A73F4: - adds r0, r1, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end DoesAbilityPreventStatus - - thumb_func_start DoesTypePreventStatus -DoesTypePreventStatus: @ 0x081A73FC - push {lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - movs r3, #0 - cmp r1, #0x20 - beq _081A7444 - cmp r1, #0x20 - bhi _081A7416 - cmp r1, #7 - beq _081A749C - cmp r1, #0x10 - beq _081A7484 - b _081A749C -_081A7416: - cmp r1, #0x40 - beq _081A7460 - cmp r1, #0x80 - bne _081A749C - ldr r1, _081A7440 - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r2, [r0, #6] - cmp r2, #8 - beq _081A749A - cmp r2, #3 - beq _081A749A - ldrb r0, [r0, #7] - cmp r0, #8 - beq _081A749A - cmp r0, #3 - bne _081A749C - b _081A749A - .align 2, 0 -_081A7440: .4byte gUnknown_82F0D54 -_081A7444: - ldr r0, _081A745C - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #6] - cmp r0, #0xf - beq _081A749A - ldrb r0, [r1, #7] - cmp r0, #0xf - bne _081A749C - b _081A749A - .align 2, 0 -_081A745C: .4byte gUnknown_82F0D54 -_081A7460: - ldr r1, _081A7480 - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r2, [r0, #6] - cmp r2, #4 - beq _081A749A - cmp r2, #0xd - beq _081A749A - ldrb r0, [r0, #7] - cmp r0, #4 - beq _081A749A - cmp r0, #0xd - bne _081A749C - b _081A749A - .align 2, 0 -_081A7480: .4byte gUnknown_82F0D54 -_081A7484: - ldr r0, _081A74A4 - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #6] - cmp r0, #0xa - beq _081A749A - ldrb r0, [r1, #7] - cmp r0, #0xa - bne _081A749C -_081A749A: - movs r3, #1 -_081A749C: - adds r0, r3, #0 - pop {r1} - bx r1 - .align 2, 0 -_081A74A4: .4byte gUnknown_82F0D54 - thumb_func_end DoesTypePreventStatus - - thumb_func_start TryInflictRandomStatus -TryInflictRandomStatus: @ 0x081A74A8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - movs r6, #0 -_081A74B6: - mov r1, sp - adds r0, r1, r6 - strb r6, [r0] - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #2 - bls _081A74B6 - movs r4, #0 - mov r8, r4 -_081A74CA: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, sp - adds r2, r1, r6 - ldrb r3, [r2] - adds r1, r1, r0 - ldrb r0, [r1] - strb r0, [r2] - strb r3, [r1] - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - cmp r0, #9 - bls _081A74CA - ldr r0, _081A7550 - ldr r0, [r0] - ldr r4, _081A7554 - adds r0, r0, r4 - ldrh r0, [r0] - movs r1, #1 - mov sl, r1 - cmp r0, #4 - bls _081A7528 - movs r4, #3 - mov sl, r4 - cmp r0, #9 - bhi _081A7528 - movs r0, #2 - mov sl, r0 -_081A7528: - movs r1, #0 - str r1, [sp, #4] - ldr r7, _081A7558 -_081A752E: - movs r4, #0 - mov sb, r4 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - cmp r0, #0x22 - bhi _081A755C - movs r0, #0x80 - b _081A757C - .align 2, 0 -_081A7550: .4byte gUnknown_3005AF0 -_081A7554: .4byte 0x00000CB2 -_081A7558: .4byte gUnknown_300128C -_081A755C: - cmp r0, #0x3b - bhi _081A7564 - movs r0, #0x20 - b _081A757C -_081A7564: - cmp r0, #0x4f - bhi _081A756C - movs r0, #0x40 - b _081A757C -_081A756C: - cmp r1, #0x59 - bhi _081A757A - movs r0, #7 - b _081A757C -_081A7574: - movs r0, #1 - mov sb, r0 - b _081A75EE -_081A757A: - movs r0, #0x10 -_081A757C: - str r0, [r7] - ldr r0, _081A7610 - ldr r0, [r0] - ldr r1, [sp, #4] - cmp r1, r0 - beq _081A75F4 - str r0, [sp, #4] - movs r4, #0 - mov r8, r4 - movs r6, #0 -_081A7590: - mov r1, sp - adds r0, r1, r6 - ldrb r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _081A7614 - adds r5, r1, r0 - adds r0, r5, #0 - movs r1, #0x37 - bl GetMonData - bl pokemon_ailments_get_primary - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081A75E0 - adds r0, r5, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _081A75E0 - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - adds r0, r5, #0 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r1, [r7] - adds r0, r4, #0 - bl DoesTypePreventStatus - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081A7574 -_081A75E0: - cmp r8, sl - beq _081A75EE - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #2 - bls _081A7590 -_081A75EE: - mov r4, r8 - cmp r4, #0 - beq _081A764C -_081A75F4: - mov r0, sb - cmp r0, #0 - beq _081A752E - ldr r0, _081A7610 - ldr r0, [r0] - cmp r0, #0x20 - beq _081A7618 - cmp r0, #0x20 - bhi _081A7650 - cmp r0, #7 - beq _081A7650 - cmp r0, #0x10 - beq _081A7624 - b _081A7650 - .align 2, 0 -_081A7610: .4byte gUnknown_300128C -_081A7614: .4byte gUnknown_2024190 -_081A7618: - ldr r1, _081A7620 - movs r0, #1 - b _081A7654 - .align 2, 0 -_081A7620: .4byte gUnknown_3001289 -_081A7624: - bl Random - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - movs r2, #1 - ands r1, r2 - cmp r1, #0 - beq _081A7640 - ldr r0, _081A763C - strb r2, [r0] - b _081A7656 - .align 2, 0 -_081A763C: .4byte gUnknown_3001289 -_081A7640: - ldr r0, _081A7648 - strb r1, [r0] - b _081A7656 - .align 2, 0 -_081A7648: .4byte gUnknown_3001289 -_081A764C: - movs r0, #0 - b _081A76D6 -_081A7650: - ldr r1, _081A76E8 - movs r0, #0 -_081A7654: - strb r0, [r1] -_081A7656: - movs r1, #0 - mov r8, r1 - movs r6, #0 -_081A765C: - mov r4, sp - adds r0, r4, r6 - ldrb r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _081A76EC - adds r5, r1, r0 - adds r0, r5, #0 - movs r1, #0x37 - bl GetMonData - bl pokemon_ailments_get_primary - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081A76C6 - adds r0, r5, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _081A76C6 - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - adds r0, r5, #0 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r7, _081A76F0 - ldr r1, [r7] - adds r0, r5, #0 - bl DoesAbilityPreventStatus - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081A76C6 - ldr r1, [r7] - adds r0, r4, #0 - bl DoesTypePreventStatus - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081A76C6 - adds r0, r5, #0 - movs r1, #0x37 - adds r2, r7, #0 - bl SetMonData -_081A76C6: - cmp r8, sl - beq _081A76D4 - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #2 - bls _081A765C -_081A76D4: - movs r0, #1 -_081A76D6: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081A76E8: .4byte gUnknown_3001289 -_081A76EC: .4byte gUnknown_2024190 -_081A76F0: .4byte gUnknown_300128C - thumb_func_end TryInflictRandomStatus - - thumb_func_start AtLeastOneHealthyMon -AtLeastOneHealthyMon: @ 0x081A76F4 - push {r4, r5, r6, r7, lr} - ldr r0, _081A7714 - ldr r0, [r0] - ldr r1, _081A7718 - adds r0, r0, r1 - ldrh r0, [r0] - movs r7, #1 - cmp r0, #4 - bls _081A770E - movs r7, #3 - cmp r0, #9 - bhi _081A770E - movs r7, #2 -_081A770E: - movs r6, #0 - movs r5, #0 - b _081A7722 - .align 2, 0 -_081A7714: .4byte gUnknown_3005AF0 -_081A7718: .4byte 0x00000CB2 -_081A771C: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_081A7722: - cmp r5, #2 - bhi _081A7758 - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _081A7760 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0x37 - bl GetMonData - bl pokemon_ailments_get_primary - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081A7754 - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _081A7754 - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_081A7754: - cmp r6, r7 - bne _081A771C -_081A7758: - cmp r6, #0 - beq _081A7764 - movs r0, #1 - b _081A7766 - .align 2, 0 -_081A7760: .4byte gUnknown_2024190 -_081A7764: - movs r0, #0 -_081A7766: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end AtLeastOneHealthyMon - - thumb_func_start GetNextRoomType -GetNextRoomType: @ 0x081A776C - push {r4, r5, r6, lr} - sub sp, #8 - ldr r1, _081A778C - ldr r0, [r1] - movs r4, #0xe1 - lsls r4, r4, #4 - adds r0, r0, r4 - ldrb r2, [r0] - movs r3, #0x78 - ands r3, r2 - adds r5, r1, #0 - cmp r3, #0x40 - bne _081A7790 - lsls r0, r2, #0x19 - lsrs r0, r0, #0x1c - b _081A78C8 - .align 2, 0 -_081A778C: .4byte gUnknown_3005AF0 -_081A7790: - ldr r0, _081A77B0 - lsls r1, r2, #0x1d - ldrh r0, [r0] - lsrs r1, r1, #0x1d - cmp r0, r1 - bne _081A77B4 - cmp r3, #0x18 - bne _081A77A4 - bl TryInflictRandomStatus -_081A77A4: - ldr r0, [r5] - adds r0, r0, r4 - ldrb r0, [r0] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1c - b _081A78C8 - .align 2, 0 -_081A77B0: .4byte gUnknown_2037286 -_081A77B4: - movs r2, #0 - ldr r3, _081A78D0 - movs r1, #0 -_081A77BA: - mov r4, sp - adds r0, r4, r2 - strb r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #7 - bls _081A77BA - movs r4, #8 - ldr r0, [r5] - movs r6, #0xe1 - lsls r6, r6, #4 - adds r0, r0, r6 - ldrb r0, [r0] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1c - adds r0, r0, r3 - ldrb r1, [r0] - movs r2, #0 - adds r5, r3, #0 - movs r3, #1 -_081A77E4: - adds r0, r2, r5 - ldrb r0, [r0] - cmp r0, r1 - bne _081A77F8 - mov r6, sp - adds r0, r6, r2 - strb r3, [r0] - subs r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_081A77F8: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #7 - bls _081A77E4 - mov r0, sp - ldrb r0, [r0, #7] - cmp r0, #1 - beq _081A7820 - bl AtLeastTwoAliveMons - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081A7820 - mov r1, sp - movs r0, #1 - strb r0, [r1, #7] - subs r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_081A7820: - mov r0, sp - ldrb r0, [r0, #3] - cmp r0, #1 - beq _081A783E - bl AtLeastOneHealthyMon - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081A783E - mov r1, sp - movs r0, #1 - strb r0, [r1, #3] - subs r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_081A783E: - ldr r0, _081A78D4 - ldr r0, [r0] - movs r1, #0xe1 - lsls r1, r1, #4 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _081A787A - mov r0, sp - ldrb r0, [r0, #1] - cmp r0, #1 - beq _081A7866 - mov r1, sp - movs r0, #1 - strb r0, [r1, #1] - subs r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_081A7866: - mov r0, sp - ldrb r0, [r0, #4] - cmp r0, #1 - beq _081A787A - mov r1, sp - movs r0, #1 - strb r0, [r1, #4] - subs r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_081A787A: - adds r0, r4, #0 - bl AllocZeroed - adds r5, r0, #0 - movs r3, #0 - movs r2, #0 -_081A7886: - mov r6, sp - adds r0, r6, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _081A789C - adds r1, r3, #0 - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - adds r1, r5, r1 - strb r2, [r1] -_081A789C: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #7 - bls _081A7886 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r4, #0 - bl __modsi3 - adds r0, r5, r0 - ldrb r4, [r0] - adds r0, r5, #0 - bl Free - cmp r4, #3 - bne _081A78C6 - bl TryInflictRandomStatus -_081A78C6: - adds r0, r4, #0 -_081A78C8: - add sp, #8 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_081A78D0: .4byte gUnknown_85DDEA4 -_081A78D4: .4byte gUnknown_3005AF0 - thumb_func_end GetNextRoomType - - thumb_func_start GetNPCRoomGraphicsId -GetNPCRoomGraphicsId: @ 0x081A78D8 - push {r4, lr} - ldr r4, _081A78FC - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x19 - bl __umodsi3 - strb r0, [r4] - ldr r1, _081A7900 - ldrb r0, [r4] - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r0, [r0] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081A78FC: .4byte gUnknown_3001290 -_081A7900: .4byte gUnknown_85DDB54 - thumb_func_end GetNPCRoomGraphicsId - - thumb_func_start sub_081A7904 -sub_081A7904: @ 0x081A7904 - ldr r0, _081A790C - ldrb r0, [r0] - bx lr - .align 2, 0 -_081A790C: .4byte gUnknown_300128A - thumb_func_end sub_081A7904 - - thumb_func_start TryGenerateBattlePikeWildMon -TryGenerateBattlePikeWildMon: @ 0x081A7910 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - bl GetBattlePikeWildMonHeaderId - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r7, _081A798C - ldr r0, [r7] - ldr r4, _081A7990 - adds r0, r0, r4 - ldrb r0, [r0] - lsls r0, r0, #0x1e - ldr r1, _081A7994 - lsrs r0, r0, #0x1c - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp, #4] - ldr r0, _081A7998 - movs r1, #0xb - movs r2, #0 - bl GetMonData - adds r5, r0, #0 - lsls r0, r5, #0x10 - lsrs r0, r0, #0x10 - bl SpeciesToPikeMonId - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, [r7] - adds r0, r0, r4 - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _081A799C - bl GetHighestLevelInPlayerParty - adds r7, r0, #0 - cmp r7, #0x3b - ble _081A7988 - lsls r0, r6, #2 - ldr r1, [sp, #4] - adds r0, r0, r1 - ldr r1, [r0] - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #2] - subs r7, r7, r0 - cmp r7, #0x3b - bgt _081A79B2 -_081A7988: - movs r7, #0x3c - b _081A79B2 - .align 2, 0 -_081A798C: .4byte gUnknown_3005AF0 -_081A7990: .4byte 0x00000CA9 -_081A7994: .4byte gUnknown_85DDB4C -_081A7998: .4byte gUnknown_20243E8 -_081A799C: - lsls r0, r6, #2 - ldr r2, [sp, #4] - adds r0, r0, r2 - ldr r1, [r0] - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #2] - movs r0, #0x32 - subs r7, r0, r1 -_081A79B2: - mov r0, r8 - cmp r0, #1 - bne _081A79CA - lsls r0, r7, #0x18 - lsrs r0, r0, #0x18 - bl CanEncounterWildMon - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081A79CA - movs r0, #0 - b _081A7A62 -_081A79CA: - ldr r0, _081A7A74 - ldr r1, _081A7A78 - mov r8, r1 - lsls r6, r6, #2 - mov sb, r6 - ldr r2, [sp, #4] - add r2, sb - mov sl, r2 - ldr r1, [r2] - lsls r6, r5, #1 - adds r4, r6, r5 - lsls r4, r4, #2 - adds r1, r4, r1 - ldrh r2, [r1] - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - add r1, r8 - ldrb r2, [r1, #0x13] - movs r1, #0xca - lsls r1, r1, #1 - muls r2, r1, r2 - lsls r1, r7, #2 - ldr r3, _081A7A7C - adds r1, r1, r3 - adds r2, r2, r1 - movs r1, #0x19 - bl SetMonData - mov r1, sl - ldr r0, [r1] - adds r4, r4, r0 - ldrh r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - ldrb r0, [r0, #0x17] - mov r7, sb - cmp r0, #0 - beq _081A7A28 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - ands r0, r1 -_081A7A28: - str r0, [sp] - ldr r0, _081A7A74 - movs r1, #0x2e - mov r2, sp - bl SetMonData - movs r4, #0 - adds r0, r6, r5 - lsls r6, r0, #2 -_081A7A3A: - ldr r2, [sp, #4] - adds r0, r7, r2 - ldr r0, [r0] - adds r0, r6, r0 - lsls r1, r4, #1 - adds r0, #4 - adds r0, r0, r1 - ldrh r1, [r0] - lsls r2, r4, #0x18 - lsrs r2, r2, #0x18 - ldr r0, _081A7A74 - bl SetMonMoveSlot - adds r4, #1 - cmp r4, #3 - ble _081A7A3A - ldr r0, _081A7A74 - bl CalculateMonStats - movs r0, #1 -_081A7A62: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081A7A74: .4byte gUnknown_20243E8 -_081A7A78: .4byte gUnknown_82F0D54 -_081A7A7C: .4byte gUnknown_82F00B4 - thumb_func_end TryGenerateBattlePikeWildMon - - thumb_func_start GetBattlePikeWildMonHeaderId -GetBattlePikeWildMonHeaderId: @ 0x081A7A80 - push {lr} - ldr r0, _081A7AA8 - ldr r1, [r0] - ldr r2, _081A7AAC - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1d - ldr r2, _081A7AB0 - adds r1, r1, r2 - adds r1, r1, r0 - ldrh r1, [r1] - adds r2, r1, #0 - movs r0, #0x8c - lsls r0, r0, #1 - cmp r1, r0 - bhi _081A7AB4 - movs r1, #0 - b _081A7ACC - .align 2, 0 -_081A7AA8: .4byte gUnknown_3005AF0 -_081A7AAC: .4byte 0x00000CA9 -_081A7AB0: .4byte 0x00000E04 -_081A7AB4: - movs r0, #0x8c - lsls r0, r0, #2 - cmp r1, r0 - bhi _081A7AC0 - movs r1, #1 - b _081A7ACC -_081A7AC0: - movs r0, #0xd2 - lsls r0, r0, #2 - movs r1, #3 - cmp r2, r0 - bhi _081A7ACC - movs r1, #2 -_081A7ACC: - adds r0, r1, #0 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetBattlePikeWildMonHeaderId - - thumb_func_start sub_081A7AD4 -sub_081A7AD4: @ 0x081A7AD4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _081A7B04 - ldr r2, _081A7B08 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_081A7AE6: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081A7AE6 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081A7B04: .4byte gUnknown_85DDEC0 -_081A7B08: .4byte gUnknown_3005B60 - thumb_func_end sub_081A7AD4 - - thumb_func_start StatusInflictionFadeOut -StatusInflictionFadeOut: @ 0x081A7B0C - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x14] - movs r2, #0x14 - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _081A7B24 - subs r0, r1, #1 - strh r0, [r4, #0x14] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _081A7B48 -_081A7B24: - ldrh r0, [r4, #0xa] - strh r0, [r4, #0x14] - ldrh r0, [r4, #0x10] - ldrh r1, [r4, #0x16] - adds r0, r0, r1 - strh r0, [r4, #0x16] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x10 - ble _081A7B3C - movs r0, #0x10 - strh r0, [r4, #0x16] -_081A7B3C: - movs r0, #1 - rsbs r0, r0, #0 - ldrb r1, [r4, #0x16] - ldr r2, _081A7B64 - bl BlendPalettes -_081A7B48: - movs r2, #0x16 - ldrsh r0, [r4, r2] - cmp r0, #0xf - ble _081A7B5A - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - ldrh r0, [r4, #0xc] - strh r0, [r4, #0x14] -_081A7B5A: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081A7B64: .4byte 0x00002D6B - thumb_func_end StatusInflictionFadeOut - - thumb_func_start StatusInflictionFadeIn -StatusInflictionFadeIn: @ 0x081A7B68 - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x14] - movs r2, #0x14 - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _081A7B80 - subs r0, r1, #1 - strh r0, [r4, #0x14] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _081A7BA2 -_081A7B80: - ldrh r0, [r4, #0xc] - strh r0, [r4, #0x14] - ldrh r0, [r4, #0x16] - ldrh r1, [r4, #0x12] - subs r0, r0, r1 - strh r0, [r4, #0x16] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _081A7B96 - movs r0, #0 - strh r0, [r4, #0x16] -_081A7B96: - movs r0, #1 - rsbs r0, r0, #0 - ldrb r1, [r4, #0x16] - ldr r2, _081A7BC8 - bl BlendPalettes -_081A7BA2: - movs r0, #0x16 - ldrsh r1, [r4, r0] - cmp r1, #0 - bne _081A7BD6 - ldrh r0, [r4, #0xe] - subs r0, #1 - strh r0, [r4, #0xe] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _081A7BD0 - ldr r0, _081A7BCC - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - b _081A7BD6 - .align 2, 0 -_081A7BC8: .4byte 0x00002D6B -_081A7BCC: .4byte sub_081A7AD4 -_081A7BD0: - ldrh r0, [r4, #0xa] - strh r0, [r4, #0x14] - strh r1, [r4, #8] -_081A7BD6: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end StatusInflictionFadeIn - - thumb_func_start sub_081A7BE0 -sub_081A7BE0: @ 0x081A7BE0 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #4 - mov r8, r0 - adds r4, r1, #0 - adds r5, r2, #0 - adds r6, r3, #0 - ldr r3, [sp, #0x18] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - ldr r0, _081A7C3C - movs r1, #3 - str r3, [sp] - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _081A7C40 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - mov r0, r8 - strh r0, [r1, #0xa] - strh r4, [r1, #0xc] - strh r5, [r1, #0xe] - strh r6, [r1, #0x10] - ldr r3, [sp] - strh r3, [r1, #0x12] - strh r0, [r1, #0x14] - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081A7C3C: .4byte sub_081A7AD4 -_081A7C40: .4byte gUnknown_3005B60 - thumb_func_end sub_081A7BE0 - - thumb_func_start IsStatusInflictionScreenFadeTaskFinished -IsStatusInflictionScreenFadeTaskFinished: @ 0x081A7C44 - push {lr} - ldr r0, _081A7C58 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _081A7C5C - movs r0, #0 - b _081A7C5E - .align 2, 0 -_081A7C58: .4byte sub_081A7AD4 -_081A7C5C: - movs r0, #1 -_081A7C5E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsStatusInflictionScreenFadeTaskFinished - - thumb_func_start Task_DoStatusInflictionScreenFade -Task_DoStatusInflictionScreenFade: @ 0x081A7C64 - push {r4, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r4, r0, #0 - ldr r1, _081A7C98 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r1, r0, r1 - ldrh r2, [r1, #8] - movs r3, #8 - ldrsh r0, [r1, r3] - cmp r0, #0 - bne _081A7C9C - adds r0, r2, #1 - strh r0, [r1, #8] - movs r0, #2 - str r0, [sp] - movs r0, #0 - movs r1, #0 - movs r2, #3 - movs r3, #2 - bl sub_081A7BE0 - b _081A7CB0 - .align 2, 0 -_081A7C98: .4byte gUnknown_3005B60 -_081A7C9C: - bl IsStatusInflictionScreenFadeTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081A7CB0 - bl EnableBothScriptContexts - adds r0, r4, #0 - bl DestroyTask -_081A7CB0: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end Task_DoStatusInflictionScreenFade - - thumb_func_start TryHealMons -TryHealMons: @ 0x081A7CB8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - cmp r0, #0 - bne _081A7CD0 - b _081A7DFA -_081A7CD0: - movs r0, #0 - mov r8, r0 -_081A7CD4: - mov r0, sp - add r0, r8 - mov r1, r8 - strb r1, [r0] - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - cmp r0, #2 - bls _081A7CD4 - movs r5, #0 -_081A7CEC: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - mov r2, sp - add r2, r8 - ldrb r3, [r2] - mov r0, sp - adds r1, r0, r4 - ldrb r0, [r1] - strb r0, [r2] - strb r3, [r1] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #9 - bls _081A7CEC - movs r1, #0 - mov r8, r1 -_081A7D30: - movs r0, #0 - mov sl, r0 - mov r4, sp - add r4, r8 - ldrb r1, [r4] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _081A7D78 - adds r7, r1, r0 - adds r0, r7, #0 - movs r1, #0x39 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r7, #0 - movs r1, #0x3a - bl GetMonData - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - str r4, [sp, #8] - cmp r5, r6 - blo _081A7DC4 - adds r0, r7, #0 - movs r1, #0x37 - bl GetMonData - bl pokemon_ailments_get_primary - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081A7D7C - movs r0, #1 - mov sl, r0 - b _081A7DC8 - .align 2, 0 -_081A7D78: .4byte gUnknown_2024190 -_081A7D7C: - adds r0, r7, #0 - movs r1, #0x15 - bl GetMonData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - movs r4, #0 - b _081A7D94 -_081A7D8E: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_081A7D94: - cmp r4, #3 - bhi _081A7DC8 - adds r1, r4, #0 - adds r1, #0xd - adds r0, r7, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r1, sb - adds r2, r4, #0 - bl CalculatePPWithBonus - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r1, r4, #0 - adds r1, #0x11 - adds r0, r7, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, r6 - bhs _081A7D8E -_081A7DC4: - movs r1, #1 - mov sl, r1 -_081A7DC8: - mov r0, sl - cmp r0, #1 - bne _081A7DEC - ldr r0, [sp, #8] - ldrb r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081A7E0C - adds r0, r0, r1 - bl HealMon - ldr r0, [sp, #4] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - cmp r0, #0 - beq _081A7DFA -_081A7DEC: - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - cmp r0, #2 - bls _081A7D30 -_081A7DFA: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A7E0C: .4byte gUnknown_2024190 - thumb_func_end TryHealMons - - thumb_func_start GetInBattlePike -GetInBattlePike: @ 0x081A7E10 - push {r4, lr} - ldr r4, _081A7E24 - bl InBattlePike - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081A7E24: .4byte gUnknown_2037290 - thumb_func_end GetInBattlePike - - thumb_func_start InBattlePike -InBattlePike: @ 0x081A7E28 - push {lr} - movs r2, #0 - ldr r0, _081A7E54 - ldrh r1, [r0, #0x12] - ldr r3, _081A7E58 - adds r0, r1, r3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bls _081A7E4A - movs r0, #0xb3 - lsls r0, r0, #1 - cmp r1, r0 - beq _081A7E4A - adds r0, #1 - cmp r1, r0 - bne _081A7E4C -_081A7E4A: - movs r2, #1 -_081A7E4C: - adds r0, r2, #0 - pop {r1} - bx r1 - .align 2, 0 -_081A7E54: .4byte gUnknown_2036FB8 -_081A7E58: .4byte 0xFFFFFEA1 - thumb_func_end InBattlePike - - thumb_func_start SetHintedRoom -SetHintedRoom: @ 0x081A7E5C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r4, _081A7EB0 - movs r0, #0 - strh r0, [r4] - movs r0, #1 - bl GetPikeQueenFightType - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081A7EB8 - movs r0, #1 - strh r0, [r4] - bl Random - ldr r5, _081A7EB4 - ldr r4, [r5] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #6 - bl __umodsi3 - movs r3, #0xe1 - lsls r3, r3, #4 - adds r4, r4, r3 - movs r1, #7 - ands r1, r0 - ldrb r2, [r4] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4] - ldr r2, [r5] - adds r2, r2, r3 - ldrb r1, [r2] - movs r0, #0x79 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x40 - b _081A7FC8 - .align 2, 0 -_081A7EB0: .4byte gUnknown_2037290 -_081A7EB4: .4byte gUnknown_3005AF0 -_081A7EB8: - bl Random - ldr r7, _081A7F2C - ldr r4, [r7] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #3 - bl __umodsi3 - movs r3, #0xe1 - lsls r3, r3, #4 - adds r4, r4, r3 - movs r1, #7 - ands r1, r0 - ldrb r2, [r4] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4] - ldr r0, [r7] - adds r0, r0, r3 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - movs r6, #8 - cmp r0, #0 - beq _081A7EF2 - movs r6, #6 -_081A7EF2: - adds r0, r6, #0 - bl AllocZeroed - adds r5, r0, #0 - movs r2, #0 - movs r3, #0 - cmp r2, r6 - bhs _081A7F3E - adds r4, r7, #0 -_081A7F04: - ldr r0, [r4] - movs r1, #0xe1 - lsls r1, r1, #4 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _081A7F30 - cmp r2, #1 - beq _081A7F34 - cmp r2, #4 - beq _081A7F34 - adds r1, r3, #0 - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - adds r1, r5, r1 - strb r2, [r1] - b _081A7F34 - .align 2, 0 -_081A7F2C: .4byte gUnknown_3005AF0 -_081A7F30: - adds r0, r5, r2 - strb r2, [r0] -_081A7F34: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, r6 - blo _081A7F04 -_081A7F3E: - bl Random - ldr r7, _081A7FD8 - ldr r4, [r7] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r6, #0 - bl __modsi3 - adds r0, r5, r0 - ldrb r0, [r0] - movs r6, #0xe1 - lsls r6, r6, #4 - adds r4, r4, r6 - movs r1, #0xf - ands r1, r0 - lsls r1, r1, #3 - ldrb r2, [r4] - movs r0, #0x79 - rsbs r0, r0, #0 - mov r8, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4] - adds r0, r5, #0 - bl Free - ldr r0, [r7] - adds r0, r0, r6 - ldrb r1, [r0] - movs r0, #0x78 - ands r0, r1 - cmp r0, #0x18 - bne _081A7F9C - bl AtLeastOneHealthyMon - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081A7F9C - ldr r2, [r7] - adds r2, r2, r6 - ldrb r1, [r2] - mov r0, r8 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r2] -_081A7F9C: - ldr r5, _081A7FD8 - ldr r0, [r5] - movs r4, #0xe1 - lsls r4, r4, #4 - adds r0, r0, r4 - ldrb r1, [r0] - movs r0, #0x78 - ands r0, r1 - cmp r0, #0x38 - bne _081A7FCC - bl AtLeastTwoAliveMons - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081A7FCC - ldr r2, [r5] - adds r2, r2, r4 - ldrb r1, [r2] - movs r0, #0x79 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x10 -_081A7FC8: - orrs r0, r1 - strb r0, [r2] -_081A7FCC: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A7FD8: .4byte gUnknown_3005AF0 - thumb_func_end SetHintedRoom - - thumb_func_start GetHintedRoomIndex -GetHintedRoomIndex: @ 0x081A7FDC - ldr r1, _081A7FF4 - ldr r0, _081A7FF8 - ldr r0, [r0] - movs r2, #0xe1 - lsls r2, r2, #4 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1d - strh r0, [r1] - bx lr - .align 2, 0 -_081A7FF4: .4byte gUnknown_2037290 -_081A7FF8: .4byte gUnknown_3005AF0 - thumb_func_end GetHintedRoomIndex - - thumb_func_start GetRoomTypeHint -GetRoomTypeHint: @ 0x081A7FFC - ldr r2, _081A8018 - ldr r1, _081A801C - ldr r0, _081A8020 - ldr r0, [r0] - movs r3, #0xe1 - lsls r3, r3, #4 - adds r0, r0, r3 - ldrb r0, [r0] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1c - adds r0, r0, r1 - ldrb r0, [r0] - strh r0, [r2] - bx lr - .align 2, 0 -_081A8018: .4byte gUnknown_2037290 -_081A801C: .4byte gUnknown_85DDEA4 -_081A8020: .4byte gUnknown_3005AF0 - thumb_func_end GetRoomTypeHint - - thumb_func_start PrepareOneTrainer -PrepareOneTrainer: @ 0x081A8024 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - movs r7, #6 - cmp r0, #0 - bne _081A8030 - movs r7, #1 -_081A8030: - ldr r4, _081A8078 - ldr r1, [r4] - ldr r2, _081A807C - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1d - ldr r2, _081A8080 - adds r1, r1, r2 - adds r1, r1, r0 - ldrh r0, [r1] - movs r1, #0xe - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r5, r4, #0 -_081A8052: - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - adds r1, r7, #0 - bl sub_0816245C - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r3, #0 - ldr r1, [r5] - ldr r2, _081A8084 - adds r0, r1, r2 - ldrh r0, [r0] - subs r2, r0, #1 - cmp r3, r2 - bge _081A809A - ldr r0, _081A8088 - adds r1, r1, r0 - b _081A8094 - .align 2, 0 -_081A8078: .4byte gUnknown_3005AF0 -_081A807C: .4byte 0x00000CA9 -_081A8080: .4byte 0x00000E04 -_081A8084: .4byte 0x00000CB2 -_081A8088: .4byte 0x00000CB4 -_081A808C: - adds r1, #2 - adds r3, #1 - cmp r3, r2 - bge _081A809A -_081A8094: - ldrh r0, [r1] - cmp r0, r4 - bne _081A808C -_081A809A: - ldr r0, [r5] - ldr r1, _081A80DC - adds r0, r0, r1 - ldrh r0, [r0] - subs r0, #1 - cmp r3, r0 - bne _081A8052 - ldr r5, _081A80E0 - strh r4, [r5] - ldr r1, _081A80E4 - ldr r0, _081A80E8 - str r0, [r1] - ldrh r0, [r5] - movs r1, #0 - bl sub_08162528 - ldr r0, _081A80EC - ldr r1, [r0] - ldr r0, _081A80DC - adds r2, r1, r0 - ldrh r0, [r2] - cmp r0, #0xd - bhi _081A80D6 - subs r0, #1 - lsls r0, r0, #1 - ldr r2, _081A80F0 - adds r1, r1, r2 - adds r1, r1, r0 - ldrh r0, [r5] - strh r0, [r1] -_081A80D6: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A80DC: .4byte 0x00000CB2 -_081A80E0: .4byte gUnknown_203886A -_081A80E4: .4byte gUnknown_203B954 -_081A80E8: .4byte gUnknown_85B4A10 -_081A80EC: .4byte gUnknown_3005AF0 -_081A80F0: .4byte 0x00000CB4 - thumb_func_end PrepareOneTrainer - - thumb_func_start PrepareTwoTrainers -PrepareTwoTrainers: @ 0x081A80F4 - push {r4, r5, r6, r7, lr} - ldr r4, _081A8144 - ldr r1, [r4] - ldr r2, _081A8148 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1d - ldr r2, _081A814C - adds r1, r1, r2 - adds r1, r1, r0 - ldrh r0, [r1] - movs r1, #0xe - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r1, _081A8150 - ldr r0, _081A8154 - str r0, [r1] - lsls r7, r5, #0x18 - adds r6, r4, #0 -_081A8120: - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - bl sub_0816245C - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r3, #0 - ldr r1, [r6] - ldr r2, _081A8158 - adds r0, r1, r2 - ldrh r0, [r0] - subs r2, r0, #1 - cmp r3, r2 - bge _081A816E - ldr r0, _081A815C - adds r1, r1, r0 - b _081A8168 - .align 2, 0 -_081A8144: .4byte gUnknown_3005AF0 -_081A8148: .4byte 0x00000CA9 -_081A814C: .4byte 0x00000E04 -_081A8150: .4byte gUnknown_203B954 -_081A8154: .4byte gUnknown_85B4A10 -_081A8158: .4byte 0x00000CB2 -_081A815C: .4byte 0x00000CB4 -_081A8160: - adds r1, #2 - adds r3, #1 - cmp r3, r2 - bge _081A816E -_081A8168: - ldrh r0, [r1] - cmp r0, r4 - bne _081A8160 -_081A816E: - ldr r0, [r6] - ldr r1, _081A8220 - adds r0, r0, r1 - ldrh r0, [r0] - subs r0, #1 - cmp r3, r0 - bne _081A8120 - ldr r5, _081A8224 - strh r4, [r5] - ldrh r0, [r5] - movs r1, #0 - bl sub_08162528 - ldr r3, _081A8228 - ldr r1, [r3] - ldr r0, _081A8220 - adds r2, r1, r0 - ldrh r0, [r2] - cmp r0, #0xe - bhi _081A81A4 - subs r0, #1 - lsls r0, r0, #1 - ldr r2, _081A822C - adds r1, r1, r2 - adds r1, r1, r0 - ldrh r0, [r5] - strh r0, [r1] -_081A81A4: - adds r5, r3, #0 -_081A81A6: - lsrs r0, r7, #0x18 - movs r1, #1 - bl sub_0816245C - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r3, #0 - ldr r1, [r5] - ldr r2, _081A8220 - adds r0, r1, r2 - ldrh r0, [r0] - cmp r3, r0 - bge _081A81E6 - adds r2, #2 - adds r0, r1, r2 - ldrh r0, [r0] - cmp r0, r4 - beq _081A81E6 - ldr r0, _081A8228 - ldr r1, [r0] - subs r2, #2 - adds r0, r1, r2 - ldrh r2, [r0] - ldr r0, _081A822C - adds r1, r1, r0 -_081A81D8: - adds r1, #2 - adds r3, #1 - cmp r3, r2 - bge _081A81E6 - ldrh r0, [r1] - cmp r0, r4 - bne _081A81D8 -_081A81E6: - ldr r0, [r5] - ldr r1, _081A8220 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r3, r0 - bne _081A81A6 - ldr r5, _081A8230 - strh r4, [r5] - ldrh r0, [r5] - movs r1, #1 - bl sub_08162528 - ldr r0, _081A8228 - ldr r1, [r0] - ldr r0, _081A8220 - adds r2, r1, r0 - ldrh r0, [r2] - cmp r0, #0xd - bhi _081A821A - subs r0, #2 - lsls r0, r0, #1 - ldr r2, _081A822C - adds r1, r1, r2 - adds r1, r1, r0 - ldrh r0, [r5] - strh r0, [r1] -_081A821A: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A8220: .4byte 0x00000CB2 -_081A8224: .4byte gUnknown_203886A -_081A8228: .4byte gUnknown_3005AF0 -_081A822C: .4byte 0x00000CB4 -_081A8230: .4byte gUnknown_203886C - thumb_func_end PrepareTwoTrainers - - thumb_func_start ClearPikeTrainerIds -ClearPikeTrainerIds: @ 0x081A8234 - push {r4, r5, lr} - movs r2, #0 - ldr r5, _081A8260 - ldr r4, _081A8264 - ldr r0, _081A8268 - adds r3, r0, #0 -_081A8240: - ldr r1, [r5] - lsls r0, r2, #1 - adds r1, r1, r4 - adds r1, r1, r0 - ldrh r0, [r1] - orrs r0, r3 - strh r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xd - bls _081A8240 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081A8260: .4byte gUnknown_3005AF0 -_081A8264: .4byte 0x00000CB4 -_081A8268: .4byte 0x0000FFFF - thumb_func_end ClearPikeTrainerIds - - thumb_func_start BufferRecordMixingTrainerMessage -BufferRecordMixingTrainerMessage: @ 0x081A826C - push {lr} - ldr r0, _081A8294 - ldrh r0, [r0] - cmp r0, #0 - bne _081A82A4 - ldr r3, _081A8298 - ldrh r1, [r3] - ldr r0, _081A829C - cmp r1, r0 - bhi _081A82C2 - ldr r2, _081A82A0 - movs r0, #0x34 - muls r1, r0, r1 - ldr r0, [r2] - adds r0, r0, r1 - adds r0, #0xc - bl FrontierSpeechToString - b _081A82C2 - .align 2, 0 -_081A8294: .4byte gUnknown_2037282 -_081A8298: .4byte gUnknown_203886A -_081A829C: .4byte 0x0000012B -_081A82A0: .4byte gUnknown_203B954 -_081A82A4: - cmp r0, #1 - bne _081A82C2 - ldr r3, _081A82C8 - ldrh r1, [r3] - ldr r0, _081A82CC - cmp r1, r0 - bhi _081A82C2 - ldr r2, _081A82D0 - movs r0, #0x34 - muls r1, r0, r1 - ldr r0, [r2] - adds r0, r0, r1 - adds r0, #0xc - bl FrontierSpeechToString -_081A82C2: - pop {r0} - bx r0 - .align 2, 0 -_081A82C8: .4byte gUnknown_203886C -_081A82CC: .4byte 0x0000012B -_081A82D0: .4byte gUnknown_203B954 - thumb_func_end BufferRecordMixingTrainerMessage - - thumb_func_start AtLeastTwoAliveMons -AtLeastTwoAliveMons: @ 0x081A82D4 - push {r4, r5, r6, lr} - ldr r5, _081A8304 - movs r6, #0 - movs r4, #0 -_081A82DC: - adds r0, r5, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - bne _081A82EE - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_081A82EE: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, #0x64 - cmp r4, #2 - bls _081A82DC - cmp r6, #1 - bhi _081A8308 - movs r0, #1 - b _081A830A - .align 2, 0 -_081A8304: .4byte gUnknown_2024190 -_081A8308: - movs r0, #0 -_081A830A: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end AtLeastTwoAliveMons - - thumb_func_start GetPikeQueenFightType -GetPikeQueenFightType: @ 0x081A8310 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - movs r6, #0 - ldr r1, _081A8360 - ldr r2, [r1] - ldr r3, _081A8364 - adds r1, r2, r3 - ldrb r1, [r1] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1d - ldr r3, _081A8368 - adds r2, r2, r3 - adds r2, r2, r1 - lsrs r4, r0, #0x18 - ldrh r2, [r2] - adds r0, r4, r2 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r0, #5 - bl GetPlayerSymbolCountForFacility - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - blt _081A8370 - cmp r2, #1 - bgt _081A8370 - ldr r1, _081A836C - adds r0, r2, #0 - adds r0, #0x14 - adds r0, r0, r1 - ldrb r0, [r0] - ldrb r1, [r1, #0x17] - subs r0, r0, r1 - cmp r4, r0 - bne _081A83B4 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - b _081A83B4 - .align 2, 0 -_081A8360: .4byte gUnknown_3005AF0 -_081A8364: .4byte 0x00000CA9 -_081A8368: .4byte 0x00000E04 -_081A836C: .4byte gUnknown_85DDE14 -_081A8370: - ldr r5, _081A838C - movs r0, #5 - lsls r3, r0, #2 - adds r0, r3, r5 - ldrb r1, [r0] - adds r0, r5, #3 - adds r0, r3, r0 - ldrb r2, [r0] - subs r1, r1, r2 - cmp r4, r1 - bne _081A8390 - movs r6, #3 - b _081A83B4 - .align 2, 0 -_081A838C: .4byte gUnknown_85DDE14 -_081A8390: - adds r0, r5, #1 - adds r0, r3, r0 - ldrb r1, [r0] - subs r0, r1, r2 - cmp r4, r0 - beq _081A83B2 - cmp r4, r1 - bls _081A83B4 - subs r0, r4, r1 - adds r0, r0, r2 - adds r1, r5, #2 - adds r1, r3, r1 - ldrb r1, [r1] - bl __modsi3 - cmp r0, #0 - bne _081A83B4 -_081A83B2: - movs r6, #4 -_081A83B4: - adds r0, r6, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end GetPikeQueenFightType - - thumb_func_start GetCurrentRoomPikeQueenFightType -GetCurrentRoomPikeQueenFightType: @ 0x081A83BC - push {r4, lr} - ldr r4, _081A83D4 - movs r0, #0 - bl GetPikeQueenFightType - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081A83D4: .4byte gUnknown_2037290 - thumb_func_end GetCurrentRoomPikeQueenFightType - - thumb_func_start HealSomeMonsBeforePikeQueen -HealSomeMonsBeforePikeQueen: @ 0x081A83D8 - push {r4, lr} - ldr r3, _081A840C - ldr r2, _081A8410 - ldr r0, _081A8414 - ldr r0, [r0] - movs r1, #0xe1 - lsls r1, r1, #4 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - lsls r0, r1, #1 - adds r0, r0, r1 - ldrh r2, [r2] - adds r0, r0, r2 - adds r0, r0, r3 - ldrb r4, [r0] - adds r0, r4, #0 - bl TryHealMons - ldr r0, _081A8418 - strh r4, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081A840C: .4byte gUnknown_85DDEAD -_081A8410: .4byte gUnknown_2037286 -_081A8414: .4byte gUnknown_3005AF0 -_081A8418: .4byte gUnknown_2037290 - thumb_func_end HealSomeMonsBeforePikeQueen - - thumb_func_start SetHealingRoomsDisabled -SetHealingRoomsDisabled: @ 0x081A841C - ldr r0, _081A8438 - ldr r2, [r0] - ldr r0, _081A843C - ldrb r1, [r0] - movs r0, #0xe1 - lsls r0, r0, #4 - adds r2, r2, r0 - lsls r1, r1, #7 - ldrb r3, [r2] - movs r0, #0x7f - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - bx lr - .align 2, 0 -_081A8438: .4byte gUnknown_3005AF0 -_081A843C: .4byte gUnknown_2037282 - thumb_func_end SetHealingRoomsDisabled - - thumb_func_start CanAnyPartyMonsBeHealed -CanAnyPartyMonsBeHealed: @ 0x081A8440 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r1, _081A84A4 - movs r0, #1 - strh r0, [r1] - movs r0, #0 - mov sl, r0 -_081A8454: - movs r0, #0 - mov sb, r0 - movs r0, #0x64 - mov r1, sl - muls r1, r0, r1 - ldr r0, _081A84A8 - adds r7, r1, r0 - adds r0, r7, #0 - movs r1, #0x39 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r7, #0 - movs r1, #0x3a - bl GetMonData - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r4, r5 - blo _081A84E2 - adds r0, r7, #0 - movs r1, #0x37 - bl GetMonData - bl pokemon_ailments_get_primary - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081A84E2 - adds r0, r7, #0 - movs r1, #0x15 - bl GetMonData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r6, #0 - b _081A84B2 - .align 2, 0 -_081A84A4: .4byte gUnknown_2037290 -_081A84A8: .4byte gUnknown_2024190 -_081A84AC: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_081A84B2: - cmp r6, #3 - bhi _081A84E6 - adds r1, r6, #0 - adds r1, #0xd - adds r0, r7, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r1, r8 - adds r2, r6, #0 - bl CalculatePPWithBonus - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r1, r6, #0 - adds r1, #0x11 - adds r0, r7, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, r5 - bhs _081A84AC -_081A84E2: - movs r0, #1 - mov sb, r0 -_081A84E6: - mov r0, sb - cmp r0, #1 - bne _081A84F8 - ldr r1, _081A84F4 - movs r0, #0 - strh r0, [r1] - b _081A8506 - .align 2, 0 -_081A84F4: .4byte gUnknown_2037290 -_081A84F8: - mov r0, sl - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - cmp r0, #2 - bls _081A8454 -_081A8506: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end CanAnyPartyMonsBeHealed - - thumb_func_start BackupMonHeldItems -BackupMonHeldItems: @ 0x081A8514 - push {r4, r5, r6, r7, lr} - movs r5, #0 - ldr r7, _081A8558 - ldr r6, _081A855C -_081A851C: - ldr r0, [r6] - lsls r4, r5, #1 - ldr r1, _081A8560 - adds r0, r0, r1 - adds r0, r0, r4 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - movs r2, #0xea - lsls r2, r2, #1 - adds r1, r1, r2 - ldr r0, [r7] - adds r0, r0, r1 - movs r1, #0xc - bl GetMonData - ldr r1, [r6] - ldr r2, _081A8564 - adds r1, r1, r2 - adds r1, r1, r4 - strh r0, [r1] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #2 - bls _081A851C - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A8558: .4byte gUnknown_3005AEC -_081A855C: .4byte gUnknown_3005AF0 -_081A8560: .4byte 0x00000CAA -_081A8564: .4byte 0x00000E12 - thumb_func_end BackupMonHeldItems - - thumb_func_start RestoreMonHeldItems -RestoreMonHeldItems: @ 0x081A8568 - push {r4, lr} - movs r4, #0 -_081A856C: - ldr r0, _081A85A0 - ldr r2, [r0] - lsls r3, r4, #1 - ldr r1, _081A85A4 - adds r0, r2, r1 - adds r0, r0, r3 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081A85A8 - adds r0, r0, r1 - ldr r1, _081A85AC - adds r3, r3, r1 - adds r2, r2, r3 - movs r1, #0xc - bl SetMonData - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #2 - bls _081A856C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081A85A0: .4byte gUnknown_3005AF0 -_081A85A4: .4byte 0x00000CAA -_081A85A8: .4byte gUnknown_202412C -_081A85AC: .4byte 0x00000E12 - thumb_func_end RestoreMonHeldItems - - thumb_func_start InitPikeChallenge -InitPikeChallenge: @ 0x081A85B0 - push {r4, r5, r6, lr} - ldr r3, _081A860C - ldr r1, [r3] - ldr r2, _081A8610 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r5, r0, #0x1e - ldr r0, _081A8614 - adds r1, r1, r0 - movs r4, #0 - strb r4, [r1] - ldr r1, [r3] - ldr r6, _081A8618 - adds r0, r1, r6 - strh r4, [r0] - adds r1, r1, r2 - ldrb r2, [r1] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r3, [r3] - ldr r0, _081A861C - adds r2, r3, r0 - ldr r1, _081A8620 - lsls r0, r5, #2 - adds r0, r0, r1 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _081A85FC - lsls r1, r5, #1 - ldr r2, _081A8624 - adds r0, r3, r2 - adds r0, r0, r1 - strh r4, [r0] -_081A85FC: - ldr r0, _081A8628 - strh r4, [r0] - ldr r1, _081A862C - movs r0, #0 - strb r0, [r1] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081A860C: .4byte gUnknown_3005AF0 -_081A8610: .4byte 0x00000CA9 -_081A8614: .4byte 0x00000CA8 -_081A8618: .4byte 0x00000CB2 -_081A861C: .4byte 0x00000CDC -_081A8620: .4byte gUnknown_85DDEC8 -_081A8624: .4byte 0x00000E04 -_081A8628: .4byte gUnknown_203886A -_081A862C: .4byte gUnknown_2023FDE - thumb_func_end InitPikeChallenge - - thumb_func_start CanEncounterWildMon -CanEncounterWildMon: @ 0x081A8630 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r4, _081A8680 - adds r0, r4, #0 - movs r1, #6 - bl GetMonData - cmp r0, #0 - bne _081A8684 - adds r0, r4, #0 - bl GetMonAbility - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x33 - beq _081A8656 - cmp r0, #0x16 - bne _081A8684 -_081A8656: - adds r0, r4, #0 - movs r1, #0x38 - bl GetMonData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #5 - bls _081A8684 - subs r0, #5 - cmp r5, r0 - bgt _081A8684 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _081A8684 - movs r0, #0 - b _081A8686 - .align 2, 0 -_081A8680: .4byte gUnknown_2024190 -_081A8684: - movs r0, #1 -_081A8686: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end CanEncounterWildMon - - thumb_func_start SpeciesToPikeMonId -SpeciesToPikeMonId: @ 0x081A868C - push {lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, _081A869C - cmp r2, r0 - bne _081A86A0 - movs r1, #0 - b _081A86AA - .align 2, 0 -_081A869C: .4byte 0x0000017B -_081A86A0: - ldr r0, _081A86B0 - movs r1, #2 - cmp r2, r0 - bne _081A86AA - movs r1, #1 -_081A86AA: - adds r0, r1, #0 - pop {r1} - bx r1 - .align 2, 0 -_081A86B0: .4byte 0x00000149 - thumb_func_end SpeciesToPikeMonId - - thumb_func_start InitMossdeepGymTiles -InitMossdeepGymTiles: @ 0x081A86B4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r4, _081A86D8 - ldr r0, [r4] - cmp r0, #0 - bne _081A86CA - movs r0, #0x44 - bl AllocZeroed - str r0, [r4] -_081A86CA: - ldr r0, [r4] - adds r0, #0x41 - strb r5, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081A86D8: .4byte gUnknown_203CB1C - thumb_func_end InitMossdeepGymTiles - - thumb_func_start FinishMossdeepGymTiles -FinishMossdeepGymTiles: @ 0x081A86DC - push {r4, lr} - ldr r4, _081A8718 - ldr r0, [r4] - cmp r0, #0 - beq _081A86EE - bl Free - movs r0, #0 - str r0, [r4] -_081A86EE: - movs r0, #0xff - movs r1, #0 - movs r2, #0 - bl GetEventObjectIdByLocalIdAndMap - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _081A871C - adds r0, r0, r1 - bl EventObjectClearHeldMovementIfFinished - bl sub_080D2C2C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081A8718: .4byte gUnknown_203CB1C -_081A871C: .4byte gUnknown_2036FF0 - thumb_func_end FinishMossdeepGymTiles - - thumb_func_start MossdeepGym_MoveEvents -MossdeepGym_MoveEvents: @ 0x081A8720 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - ldr r0, _081A87B8 - ldr r0, [r0] - movs r1, #0xc7 - lsls r1, r1, #4 - adds r1, r1, r0 - mov sb, r1 - movs r3, #0 - mov sl, r3 - mov r8, r3 -_081A8744: - mov r0, r8 - lsls r4, r0, #1 - adds r1, r4, r0 - lsls r1, r1, #3 - add r1, sb - ldrh r0, [r1, #4] - adds r0, #7 - ldrh r1, [r1, #6] - adds r1, #7 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl MapGridGetMetatileIdAt - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r0, _081A87BC - ldr r0, [r0] - adds r0, #0x41 - ldrb r0, [r0] - movs r2, #0xa6 - lsls r2, r2, #2 - cmp r0, #0 - bne _081A8778 - subs r2, #0x48 -_081A8778: - ldr r0, _081A87C0 - cmp r1, r0 - bls _081A8854 - subs r1, r1, r2 - adds r0, r1, #0 - cmp r1, #0 - bge _081A8788 - adds r0, r1, #7 -_081A8788: - asrs r2, r0, #3 - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _081A8854 - ldr r3, [sp] - cmp r0, r3 - bne _081A8854 - lsls r0, r2, #3 - subs r0, r1, r0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #3 - bhi _081A8854 - movs r1, #0 - movs r2, #0 - cmp r5, #1 - beq _081A87D8 - cmp r5, #1 - bgt _081A87C4 - cmp r5, #0 - beq _081A87CE - b _081A8854 - .align 2, 0 -_081A87B8: .4byte gUnknown_3005AEC -_081A87BC: .4byte gUnknown_203CB1C -_081A87C0: .4byte 0x0000024F -_081A87C4: - cmp r5, #2 - beq _081A87E4 - cmp r5, #3 - beq _081A87F0 - b _081A8854 -_081A87CE: - ldr r7, _081A87D4 - movs r1, #1 - b _081A87F4 - .align 2, 0 -_081A87D4: .4byte gUnknown_85DDED0 -_081A87D8: - ldr r7, _081A87E0 - movs r2, #1 - b _081A87F4 - .align 2, 0 -_081A87E0: .4byte gUnknown_85DDED4 -_081A87E4: - ldr r7, _081A87EC - movs r1, #0xff - b _081A87F4 - .align 2, 0 -_081A87EC: .4byte gUnknown_85DDED8 -_081A87F0: - ldr r7, _081A8844 - movs r2, #0xff -_081A87F4: - mov r3, r8 - adds r0, r4, r3 - lsls r0, r0, #3 - mov r3, sb - adds r4, r0, r3 - lsls r0, r1, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #4] - adds r0, r0, r1 - strh r0, [r4, #4] - lsls r0, r2, #0x18 - asrs r0, r0, #0x18 - ldrh r3, [r4, #6] - adds r0, r0, r3 - strh r0, [r4, #6] - ldrb r0, [r4] - ldr r6, _081A8848 - ldr r2, [r6] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - bl GetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x10 - beq _081A884C - mov r0, r8 - adds r1, r5, #0 - bl AddEventObject - ldrb r4, [r4] - mov sl, r4 - mov r0, sl - ldr r2, [r6] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - adds r3, r7, #0 - bl ScriptMovement_StartObjectMovementScript - b _081A8854 - .align 2, 0 -_081A8844: .4byte gUnknown_85DDEDC -_081A8848: .4byte gUnknown_3005AEC -_081A884C: - mov r0, r8 - adds r1, r5, #0 - bl sub_081A8B14 -_081A8854: - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - cmp r0, #0x3f - bhi _081A8864 - b _081A8744 -_081A8864: - mov r0, sl - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MossdeepGym_MoveEvents - - thumb_func_start MossdeepGym_TurnEvents -MossdeepGym_TurnEvents: @ 0x081A8878 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r1, _081A8924 - ldr r2, [r1] - cmp r2, #0 - bne _081A888C - b _081A8ACA -_081A888C: - adds r0, r2, #0 - adds r0, #0x41 - ldrb r0, [r0] - movs r3, #0xa6 - lsls r3, r3, #2 - mov sl, r3 - cmp r0, #0 - bne _081A88A2 - movs r0, #0x94 - lsls r0, r0, #2 - mov sl, r0 -_081A88A2: - ldr r0, _081A8928 - ldr r0, [r0] - movs r3, #0xc7 - lsls r3, r3, #4 - adds r7, r0, r3 - movs r0, #0 - mov sb, r0 - adds r0, r2, #0 - adds r0, #0x40 - ldrb r0, [r0] - cmp sb, r0 - blo _081A88BC - b _081A8ACA -_081A88BC: - mov r8, r1 -_081A88BE: - mov r1, r8 - ldr r0, [r1] - mov r2, sb - lsls r4, r2, #2 - adds r0, r0, r4 - ldrb r0, [r0, #1] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r7 - ldrh r0, [r1, #4] - adds r0, #7 - ldrh r1, [r1, #6] - adds r1, #7 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl MapGridGetMetatileIdAt - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r3, sl - subs r1, r0, r3 - adds r0, r1, #0 - cmp r1, #0 - bge _081A88F6 - adds r0, r1, #7 -_081A88F6: - asrs r0, r0, #3 - lsls r0, r0, #3 - subs r0, r1, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r2, r8 - ldr r1, [r2] - adds r1, r1, r4 - ldrb r1, [r1] - subs r0, r0, r1 - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - blt _081A8916 - cmp r1, #3 - bne _081A892C -_081A8916: - movs r0, #3 - rsbs r0, r0, #0 - movs r6, #0 - cmp r1, r0 - bne _081A8934 - b _081A8932 - .align 2, 0 -_081A8924: .4byte gUnknown_203CB1C -_081A8928: .4byte gUnknown_3005AEC -_081A892C: - movs r6, #2 - cmp r1, #0 - ble _081A8934 -_081A8932: - movs r6, #1 -_081A8934: - ldr r5, _081A8980 - ldr r0, [r5] - adds r0, r0, r4 - ldrb r1, [r0, #1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r7 - ldrb r0, [r0] - ldr r1, _081A8984 - ldr r2, [r1] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - bl GetEventObjectIdByLocalIdAndMap - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x10 - bne _081A895C - b _081A8AB2 -_081A895C: - ldr r0, _081A8988 - lsls r1, r2, #3 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #0x18] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - adds r1, r0, #0 - cmp r6, #0 - bne _081A8A1C - cmp r0, #2 - beq _081A89E0 - cmp r0, #2 - bgt _081A898C - cmp r0, #1 - beq _081A89B0 - b _081A8AB2 - .align 2, 0 -_081A8980: .4byte gUnknown_203CB1C -_081A8984: .4byte gUnknown_3005AEC -_081A8988: .4byte gUnknown_2036FF0 -_081A898C: - cmp r0, #3 - beq _081A89C8 - cmp r0, #4 - beq _081A8996 - b _081A8AB2 -_081A8996: - ldr r3, _081A89AC - ldr r0, [r5] - adds r0, r0, r4 - ldrb r1, [r0, #1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r7 - movs r1, #7 - b _081A89F2 - .align 2, 0 -_081A89AC: .4byte gUnknown_85DDEE6 -_081A89B0: - ldr r3, _081A89C4 - ldr r0, [r5] - adds r0, r0, r4 - ldrb r1, [r0, #1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r7 - movs r1, #0xa - b _081A89F2 - .align 2, 0 -_081A89C4: .4byte gUnknown_85DDEE0 -_081A89C8: - ldr r3, _081A89DC - ldr r0, [r5] - adds r0, r0, r4 - ldrb r1, [r0, #1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r7 - movs r1, #8 - b _081A89F2 - .align 2, 0 -_081A89DC: .4byte gUnknown_85DDEE2 -_081A89E0: - ldr r3, _081A8A14 - ldr r0, [r5] - adds r0, r0, r4 - ldrb r1, [r0, #1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r7 - movs r1, #9 -_081A89F2: - strb r1, [r0, #9] - mov r1, r8 - ldr r0, [r1] - adds r0, r0, r4 - ldrb r1, [r0, #1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r7 - ldrb r0, [r0] - ldr r1, _081A8A18 - ldr r2, [r1] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - bl ScriptMovement_StartObjectMovementScript - b _081A8AB2 - .align 2, 0 -_081A8A14: .4byte gUnknown_85DDEE4 -_081A8A18: .4byte gUnknown_3005AEC -_081A8A1C: - cmp r6, #1 - bne _081A8AB2 - cmp r0, #2 - beq _081A8A80 - cmp r0, #2 - bgt _081A8A2E - cmp r0, #1 - beq _081A8A50 - b _081A8AB2 -_081A8A2E: - cmp r1, #3 - beq _081A8A68 - cmp r1, #4 - bne _081A8AB2 - ldr r3, _081A8A4C - ldr r0, [r5] - adds r0, r0, r4 - ldrb r1, [r0, #1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r7 - movs r1, #8 - b _081A8A92 - .align 2, 0 -_081A8A4C: .4byte gUnknown_85DDEE2 -_081A8A50: - ldr r3, _081A8A64 - ldr r0, [r5] - adds r0, r0, r4 - ldrb r1, [r0, #1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r7 - movs r1, #9 - b _081A8A92 - .align 2, 0 -_081A8A64: .4byte gUnknown_85DDEE4 -_081A8A68: - ldr r3, _081A8A7C - ldr r0, [r5] - adds r0, r0, r4 - ldrb r1, [r0, #1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r7 - movs r1, #7 - b _081A8A92 - .align 2, 0 -_081A8A7C: .4byte gUnknown_85DDEE6 -_081A8A80: - ldr r3, _081A8AD8 - ldr r0, [r5] - adds r0, r0, r4 - ldrb r1, [r0, #1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r7 - movs r1, #0xa -_081A8A92: - strb r1, [r0, #9] - mov r2, r8 - ldr r0, [r2] - adds r0, r0, r4 - ldrb r1, [r0, #1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r7 - ldrb r0, [r0] - ldr r1, _081A8ADC - ldr r2, [r1] - ldrb r1, [r2, #5] - ldrb r2, [r2, #4] - bl ScriptMovement_StartObjectMovementScript -_081A8AB2: - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - mov r3, r8 - ldr r0, [r3] - adds r0, #0x40 - ldrb r0, [r0] - cmp sb, r0 - bhs _081A8ACA - b _081A88BE -_081A8ACA: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A8AD8: .4byte gUnknown_85DDEE0 -_081A8ADC: .4byte gUnknown_3005AEC - thumb_func_end MossdeepGym_TurnEvents - - thumb_func_start AddEventObject -AddEventObject: @ 0x081A8AE0 - push {r4, lr} - ldr r4, _081A8B10 - ldr r3, [r4] - adds r2, r3, #0 - adds r2, #0x40 - ldrb r2, [r2] - lsls r2, r2, #2 - adds r3, r3, r2 - strb r0, [r3, #1] - ldr r2, [r4] - adds r0, r2, #0 - adds r0, #0x40 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r2, r2, r0 - strb r1, [r2] - ldr r1, [r4] - adds r1, #0x40 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081A8B10: .4byte gUnknown_203CB1C - thumb_func_end AddEventObject - - thumb_func_start sub_081A8B14 -sub_081A8B14: @ 0x081A8B14 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - ldr r0, _081A8B80 - ldr r0, [r0] - movs r1, #0xc7 - lsls r1, r1, #4 - adds r5, r0, r1 - lsls r1, r4, #1 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r5 - ldrh r0, [r1, #4] - adds r0, #7 - ldrh r1, [r1, #6] - adds r1, #7 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl MapGridGetMetatileIdAt - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, _081A8B84 - ldr r0, [r0] - adds r0, #0x41 - ldrb r0, [r0] - movs r1, #0xa6 - lsls r1, r1, #2 - cmp r0, #0 - bne _081A8B5A - subs r1, #0x48 -_081A8B5A: - subs r1, r2, r1 - adds r0, r1, #0 - cmp r1, #0 - bge _081A8B64 - adds r0, r1, #7 -_081A8B64: - asrs r0, r0, #3 - lsls r0, r0, #3 - subs r0, r1, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, r0, r6 - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - blt _081A8B7C - cmp r1, #3 - bne _081A8B88 -_081A8B7C: - movs r2, #0 - b _081A8B9A - .align 2, 0 -_081A8B80: .4byte gUnknown_3005AEC -_081A8B84: .4byte gUnknown_203CB1C -_081A8B88: - cmp r1, #0 - bgt _081A8B94 - movs r0, #3 - rsbs r0, r0, #0 - cmp r1, r0 - bne _081A8B98 -_081A8B94: - movs r2, #1 - b _081A8B9A -_081A8B98: - movs r2, #2 -_081A8B9A: - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r1, r0, r5 - ldrb r0, [r1, #9] - adds r3, r0, #0 - cmp r2, #0 - bne _081A8BCC - cmp r0, #8 - beq _081A8BF2 - cmp r0, #8 - bgt _081A8BB8 - cmp r0, #7 - beq _081A8BC8 - b _081A8BF6 -_081A8BB8: - cmp r0, #9 - beq _081A8BC4 - cmp r0, #0xa - bne _081A8BF6 - movs r0, #7 - b _081A8BF4 -_081A8BC4: - movs r0, #8 - b _081A8BF4 -_081A8BC8: - movs r0, #9 - b _081A8BF4 -_081A8BCC: - cmp r2, #1 - bne _081A8BF6 - cmp r0, #8 - beq _081A8BEA - cmp r0, #8 - bgt _081A8BDE - cmp r0, #7 - beq _081A8BF2 - b _081A8BF6 -_081A8BDE: - cmp r3, #9 - beq _081A8BEE - cmp r3, #0xa - bne _081A8BF6 - movs r0, #8 - b _081A8BF4 -_081A8BEA: - movs r0, #9 - b _081A8BF4 -_081A8BEE: - movs r0, #7 - b _081A8BF4 -_081A8BF2: - movs r0, #0xa -_081A8BF4: - strb r0, [r1, #9] -_081A8BF6: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_081A8B14 - - thumb_func_start sub_081A8BFC -sub_081A8BFC: @ 0x081A8BFC - push {lr} - ldr r1, _081A8C14 - ldr r0, _081A8C18 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - thumb_func_end sub_081A8BFC - - thumb_func_start sub_081A8C10 -sub_081A8C10: @ 0x081A8C10 - bx r0 - .align 2, 0 -_081A8C14: .4byte gUnknown_85DF718 -_081A8C18: .4byte gUnknown_2037280 - thumb_func_end sub_081A8C10 - - thumb_func_start InitPyramidChallenge -InitPyramidChallenge: @ 0x081A8C1C - push {r4, r5, r6, lr} - ldr r3, _081A8C5C - ldr r1, [r3] - ldr r4, _081A8C60 - adds r0, r1, r4 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r5, r0, #0x1e - ldr r0, _081A8C64 - adds r1, r1, r0 - movs r2, #0 - strb r2, [r1] - ldr r1, [r3] - ldr r6, _081A8C68 - adds r0, r1, r6 - strh r2, [r0] - adds r1, r1, r4 - ldrb r2, [r1] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - cmp r5, #0 - beq _081A8C70 - ldr r0, [r3] - ldr r1, _081A8C6C - adds r0, r0, r1 - ldr r2, [r0] - movs r0, #0x80 - lsls r0, r0, #6 - b _081A8C7C - .align 2, 0 -_081A8C5C: .4byte gUnknown_3005AF0 -_081A8C60: .4byte 0x00000CA9 -_081A8C64: .4byte 0x00000CA8 -_081A8C68: .4byte 0x00000CB2 -_081A8C6C: .4byte 0x00000CDC -_081A8C70: - ldr r0, [r3] - ldr r6, _081A8CA8 - adds r0, r0, r6 - ldr r2, [r0] - movs r0, #0x80 - lsls r0, r0, #5 -_081A8C7C: - ands r2, r0 - cmp r2, #0 - bne _081A8C94 - ldr r0, [r3] - lsls r1, r5, #1 - ldr r3, _081A8CAC - adds r0, r0, r3 - adds r0, r0, r1 - strh r2, [r0] - adds r0, r5, #0 - bl InitPyramidBagItems -_081A8C94: - bl InitBattlePyramidBagCursorPosition - ldr r0, _081A8CB0 - movs r1, #0 - strh r1, [r0] - ldr r0, _081A8CB4 - strb r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081A8CA8: .4byte 0x00000CDC -_081A8CAC: .4byte 0x00000E1A -_081A8CB0: .4byte gUnknown_203886A -_081A8CB4: .4byte gUnknown_2023FDE - thumb_func_end InitPyramidChallenge - - thumb_func_start GetBattlePyramidData -GetBattlePyramidData: @ 0x081A8CB8 - push {r4, lr} - ldr r1, _081A8CE0 - ldr r0, [r1] - ldr r2, _081A8CE4 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r4, r0, #0x1e - ldr r0, _081A8CE8 - ldrh r0, [r0] - adds r3, r1, #0 - cmp r0, #6 - bls _081A8CD4 - b _081A8DBA -_081A8CD4: - lsls r0, r0, #2 - ldr r1, _081A8CEC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081A8CE0: .4byte gUnknown_3005AF0 -_081A8CE4: .4byte 0x00000CA9 -_081A8CE8: .4byte gUnknown_2037282 -_081A8CEC: .4byte _081A8CF0 -_081A8CF0: @ jump table - .4byte _081A8D0C @ case 0 - .4byte _081A8D1C @ case 1 - .4byte _081A8D34 @ case 2 - .4byte _081A8D64 @ case 3 - .4byte _081A8D78 @ case 4 - .4byte _081A8D90 @ case 5 - .4byte _081A8DA8 @ case 6 -_081A8D0C: - ldr r0, _081A8D14 - ldr r1, [r3] - ldr r3, _081A8D18 - b _081A8D7E - .align 2, 0 -_081A8D14: .4byte gUnknown_2037290 -_081A8D18: .4byte 0x00000E18 -_081A8D1C: - ldr r2, _081A8D2C - ldr r0, [r3] - lsls r1, r4, #1 - ldr r3, _081A8D30 - adds r0, r0, r3 - adds r0, r0, r1 - ldrh r0, [r0] - b _081A8DB8 - .align 2, 0 -_081A8D2C: .4byte gUnknown_2037290 -_081A8D30: .4byte 0x00000E1A -_081A8D34: - cmp r4, #0 - beq _081A8D4C - ldr r2, _081A8D44 - ldr r0, [r3] - ldr r1, _081A8D48 - adds r0, r0, r1 - b _081A8DB0 - .align 2, 0 -_081A8D44: .4byte gUnknown_2037290 -_081A8D48: .4byte 0x00000CDC -_081A8D4C: - ldr r2, _081A8D5C - ldr r0, [r3] - ldr r3, _081A8D60 - adds r0, r0, r3 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #5 - b _081A8DB6 - .align 2, 0 -_081A8D5C: .4byte gUnknown_2037290 -_081A8D60: .4byte 0x00000CDC -_081A8D64: - ldr r0, _081A8D70 - ldr r1, [r3] - ldr r2, _081A8D74 - adds r1, r1, r2 - b _081A8D80 - .align 2, 0 -_081A8D70: .4byte gUnknown_2037290 -_081A8D74: .4byte 0x00000E1A -_081A8D78: - ldr r0, _081A8D88 - ldr r1, [r3] - ldr r3, _081A8D8C -_081A8D7E: - adds r1, r1, r3 -_081A8D80: - ldrh r1, [r1] - strh r1, [r0] - b _081A8DBA - .align 2, 0 -_081A8D88: .4byte gUnknown_2037290 -_081A8D8C: .4byte 0x00000E1C -_081A8D90: - ldr r2, _081A8DA0 - ldr r0, [r3] - ldr r1, _081A8DA4 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #5 - b _081A8DB6 - .align 2, 0 -_081A8DA0: .4byte gUnknown_2037290 -_081A8DA4: .4byte 0x00000CDC -_081A8DA8: - ldr r2, _081A8DC0 - ldr r0, [r3] - ldr r3, _081A8DC4 - adds r0, r0, r3 -_081A8DB0: - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #6 -_081A8DB6: - ands r0, r1 -_081A8DB8: - strh r0, [r2] -_081A8DBA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081A8DC0: .4byte gUnknown_2037290 -_081A8DC4: .4byte 0x00000CDC - thumb_func_end GetBattlePyramidData - - thumb_func_start SetBattlePyramidData -SetBattlePyramidData: @ 0x081A8DC8 - push {lr} - ldr r0, _081A8DEC - ldr r2, [r0] - ldr r1, _081A8DF0 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r1, r0, #0x1e - ldr r0, _081A8DF4 - ldrh r0, [r0] - cmp r0, #1 - beq _081A8E18 - cmp r0, #1 - bgt _081A8DF8 - cmp r0, #0 - beq _081A8E02 - b _081A8EA6 - .align 2, 0 -_081A8DEC: .4byte gUnknown_3005AF0 -_081A8DF0: .4byte 0x00000CA9 -_081A8DF4: .4byte gUnknown_2037282 -_081A8DF8: - cmp r0, #2 - beq _081A8E30 - cmp r0, #7 - beq _081A8E9C - b _081A8EA6 -_081A8E02: - ldr r0, _081A8E10 - ldrh r1, [r0] - ldr r3, _081A8E14 - adds r0, r2, r3 - strh r1, [r0] - b _081A8EA6 - .align 2, 0 -_081A8E10: .4byte gUnknown_2037284 -_081A8E14: .4byte 0x00000E18 -_081A8E18: - lsls r1, r1, #1 - ldr r3, _081A8E28 - adds r0, r2, r3 - adds r0, r0, r1 - ldr r1, _081A8E2C - ldrh r1, [r1] - strh r1, [r0] - b _081A8EA6 - .align 2, 0 -_081A8E28: .4byte 0x00000E1A -_081A8E2C: .4byte gUnknown_2037284 -_081A8E30: - cmp r1, #0 - beq _081A8E64 - ldr r0, _081A8E48 - ldrh r0, [r0] - cmp r0, #0 - beq _081A8E50 - ldr r1, _081A8E4C - adds r0, r2, r1 - ldr r1, [r0] - movs r2, #0x80 - lsls r2, r2, #6 - b _081A8E76 - .align 2, 0 -_081A8E48: .4byte gUnknown_2037284 -_081A8E4C: .4byte 0x00000CDC -_081A8E50: - ldr r3, _081A8E5C - adds r0, r2, r3 - ldr r1, [r0] - ldr r2, _081A8E60 - b _081A8E8C - .align 2, 0 -_081A8E5C: .4byte 0x00000CDC -_081A8E60: .4byte 0xFFFFDFFF -_081A8E64: - ldr r0, _081A8E7C - ldrh r0, [r0] - cmp r0, #0 - beq _081A8E84 - ldr r1, _081A8E80 - adds r0, r2, r1 - ldr r1, [r0] - movs r2, #0x80 - lsls r2, r2, #5 -_081A8E76: - orrs r1, r2 - str r1, [r0] - b _081A8EA6 - .align 2, 0 -_081A8E7C: .4byte gUnknown_2037284 -_081A8E80: .4byte 0x00000CDC -_081A8E84: - ldr r3, _081A8E94 - adds r0, r2, r3 - ldr r1, [r0] - ldr r2, _081A8E98 -_081A8E8C: - ands r1, r2 - str r1, [r0] - b _081A8EA6 - .align 2, 0 -_081A8E94: .4byte 0x00000CDC -_081A8E98: .4byte 0xFFFFEFFF -_081A8E9C: - ldr r0, _081A8EAC - ldrh r1, [r0] - ldr r3, _081A8EB0 - adds r0, r2, r3 - strb r1, [r0] -_081A8EA6: - pop {r0} - bx r0 - .align 2, 0 -_081A8EAC: .4byte gUnknown_2037284 -_081A8EB0: .4byte 0x00000E2A - thumb_func_end SetBattlePyramidData - - thumb_func_start sub_081A8EB4 -sub_081A8EB4: @ 0x081A8EB4 - push {r4, lr} - ldr r4, _081A8EEC - ldr r0, [r4] - ldr r1, _081A8EF0 - ldrh r1, [r1] - ldr r2, _081A8EF4 - adds r0, r0, r2 - strb r1, [r0] - movs r0, #0x80 - lsls r0, r0, #7 - movs r1, #0 - bl VarSet - ldr r1, [r4] - ldr r0, _081A8EF8 - adds r1, r1, r0 - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - bl save_serialize_map - movs r0, #1 - bl TrySavingData - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081A8EEC: .4byte gUnknown_3005AF0 -_081A8EF0: .4byte gUnknown_2037282 -_081A8EF4: .4byte 0x00000CA8 -_081A8EF8: .4byte 0x00000CA9 - thumb_func_end sub_081A8EB4 - - thumb_func_start SetBattlePyramidRewardItem -SetBattlePyramidRewardItem: @ 0x081A8EFC - push {r4, r5, lr} - ldr r4, _081A8F38 - ldr r1, [r4] - ldr r2, _081A8F3C - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1d - ldr r2, _081A8F40 - adds r1, r1, r2 - adds r1, r1, r0 - ldrh r0, [r1] - cmp r0, #0x29 - bls _081A8F4C - bl Random - ldr r4, [r4] - ldr r5, _081A8F44 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #9 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0xf - adds r0, r0, r5 - ldrh r0, [r0] - ldr r1, _081A8F48 - adds r4, r4, r1 - b _081A8F6A - .align 2, 0 -_081A8F38: .4byte gUnknown_3005AF0 -_081A8F3C: .4byte 0x00000CA9 -_081A8F40: .4byte 0x00000E1A -_081A8F44: .4byte gUnknown_85DF76C -_081A8F48: .4byte 0x00000E18 -_081A8F4C: - bl Random - ldr r4, [r4] - ldr r5, _081A8F74 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #6 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0xf - adds r0, r0, r5 - ldrh r0, [r0] - ldr r2, _081A8F78 - adds r4, r4, r2 -_081A8F6A: - strh r0, [r4] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081A8F74: .4byte gUnknown_85DF760 -_081A8F78: .4byte 0x00000E18 - thumb_func_end SetBattlePyramidRewardItem - - thumb_func_start GiveBattlePyramidRewardItem -GiveBattlePyramidRewardItem: @ 0x081A8F7C - push {r4, r5, lr} - ldr r4, _081A8FB4 - ldr r0, [r4] - ldr r1, _081A8FB8 - adds r0, r0, r1 - ldrh r0, [r0] - movs r1, #1 - bl AddBagItem - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #1 - bne _081A8FC4 - ldr r0, [r4] - ldr r1, _081A8FB8 - adds r0, r0, r1 - ldrh r0, [r0] - ldr r1, _081A8FBC - bl sub_080D5EC8 - ldr r0, [r4] - ldr r1, _081A8FB8 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0] - ldr r0, _081A8FC0 - strh r5, [r0] - b _081A8FCA - .align 2, 0 -_081A8FB4: .4byte gUnknown_3005AF0 -_081A8FB8: .4byte 0x00000E18 -_081A8FBC: .4byte gUnknown_2021C40 -_081A8FC0: .4byte gUnknown_2037290 -_081A8FC4: - ldr r1, _081A8FD0 - movs r0, #0 - strh r0, [r1] -_081A8FCA: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081A8FD0: .4byte gUnknown_2037290 - thumb_func_end GiveBattlePyramidRewardItem - - thumb_func_start SeedPyramidFloor -SeedPyramidFloor: @ 0x081A8FD4 - push {r4, r5, lr} - movs r4, #0 - ldr r5, _081A9004 -_081A8FDA: - bl Random - ldr r1, [r5] - lsls r2, r4, #1 - ldr r3, _081A9008 - adds r1, r1, r3 - adds r1, r1, r2 - strh r0, [r1] - adds r4, #1 - cmp r4, #3 - ble _081A8FDA - ldr r0, _081A9004 - ldr r0, [r0] - ldr r1, _081A900C - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081A9004: .4byte gUnknown_3005AF0 -_081A9008: .4byte 0x00000E22 -_081A900C: .4byte 0x00000E2A - thumb_func_end SeedPyramidFloor - - thumb_func_start sub_081A9010 -sub_081A9010: @ 0x081A9010 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - ldr r5, _081A90E0 - ldr r1, [r5] - ldr r2, _081A90E4 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - mov sl, r0 - adds r2, #9 - adds r0, r1, r2 - ldrh r0, [r0] - str r0, [sp] - mov r2, sl - lsls r0, r2, #1 - ldr r2, _081A90E8 - adds r1, r1, r2 - adds r1, r1, r0 - ldrh r0, [r1] - movs r1, #7 - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - cmp r0, #0x13 - bls _081A9054 - movs r0, #0x13 - mov r8, r0 -_081A9054: - bl GetPyramidFloorTemplateId - lsls r0, r0, #0x18 - ldr r1, _081A90EC - ldrh r4, [r1] - ldr r1, _081A90F0 - lsrs r0, r0, #0x14 - adds r0, r0, r1 - ldrb r0, [r0, #1] - subs r4, r4, r0 - subs r7, r4, #1 - ldr r1, [r5] - lsrs r0, r7, #0x1f - adds r0, r7, r0 - asrs r0, r0, #1 - lsls r0, r0, #1 - ldr r2, _081A90F4 - adds r1, r1, r2 - adds r1, r1, r0 - ldrh r6, [r1] - adds r0, r6, #0 - bl sub_0806F094 - movs r5, #0 - mov r0, r8 - lsls r0, r0, #2 - mov sb, r0 - cmp r5, r4 - bge _081A90A8 -_081A908E: - bl sub_0806F0A4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r5, #1 - adds r0, r7, #1 - cmp r5, r0 - blt _081A908E -_081A90A8: - ldr r0, _081A90F8 - ldr r1, [sp] - adds r0, r1, r0 - ldrb r5, [r0] - ldr r1, _081A90FC - ldr r3, _081A9100 - ldr r4, _081A9104 - cmp r5, #0x3e - bhi _081A90D4 - lsls r2, r5, #1 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r6, r0 - blt _081A90D4 - adds r0, r2, r1 -_081A90C6: - adds r0, #2 - adds r5, #1 - cmp r5, #0x3e - bhi _081A90D4 - ldrb r2, [r0] - cmp r6, r2 - bge _081A90C6 -_081A90D4: - mov r0, sl - cmp r0, #0 - beq _081A910C - ldr r2, _081A9108 - b _081A910E - .align 2, 0 -_081A90E0: .4byte gUnknown_3005AF0 -_081A90E4: .4byte 0x00000CA9 -_081A90E8: .4byte 0x00000E1A -_081A90EC: .4byte gUnknown_2037292 -_081A90F0: .4byte gUnknown_85DEE88 -_081A90F4: .4byte 0x00000E22 -_081A90F8: .4byte gUnknown_85DF372 -_081A90FC: .4byte gUnknown_85DF2F4 -_081A9100: .4byte gUnknown_2037278 -_081A9104: .4byte gUnknown_203727A -_081A9108: .4byte gUnknown_85DF164 -_081A910C: - ldr r2, _081A913C -_081A910E: - lsls r0, r5, #1 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #1 - mov r1, sb - add r1, r8 - lsls r1, r1, #2 - adds r0, r0, r1 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r3] - movs r0, #1 - strh r0, [r4] - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A913C: .4byte gUnknown_85DEFD4 - thumb_func_end sub_081A9010 - - thumb_func_start HidePyramidItem -HidePyramidItem: @ 0x081A9140 - push {r4, r5, lr} - ldr r0, _081A9154 - ldr r0, [r0] - movs r1, #0xc7 - lsls r1, r1, #4 - adds r3, r0, r1 - movs r2, #0 - ldr r4, _081A9158 - b _081A916C - .align 2, 0 -_081A9154: .4byte gUnknown_3005AEC -_081A9158: .4byte gUnknown_2037292 -_081A915C: - adds r2, #1 - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r0, r0, r3 - ldrb r0, [r0] - cmp r0, #0 - beq _081A9182 -_081A916C: - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r1, r0, r3 - ldrb r0, [r1] - ldrh r5, [r4] - cmp r0, r5 - bne _081A915C - ldr r0, _081A9188 - strh r0, [r1, #4] - strh r0, [r1, #6] -_081A9182: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081A9188: .4byte 0x00007FFF - thumb_func_end HidePyramidItem - - thumb_func_start sub_081A918C -sub_081A918C: @ 0x081A918C - ldr r1, _081A9194 - ldr r0, _081A9198 - str r0, [r1] - bx lr - .align 2, 0 -_081A9194: .4byte gUnknown_203B954 -_081A9198: .4byte gUnknown_85B4A10 - thumb_func_end sub_081A918C - - thumb_func_start ShowPostBattleHintText -ShowPostBattleHintText: @ 0x081A919C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #8 - movs r0, #0 - mov sb, r0 - movs r7, #0 - ldr r0, _081A91EC - ldr r0, [r0] - movs r1, #0xc7 - lsls r1, r1, #4 - adds r1, r1, r0 - mov r8, r1 - ldr r2, _081A91F0 - ldr r0, _081A91F4 - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #8] - bl sub_081A9820 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - movs r6, #0 - ldr r2, _081A91F8 - ldr r0, _081A91FC - ldr r1, [r0] - movs r0, #0x34 - muls r0, r5, r0 - adds r0, r0, r1 - ldrb r1, [r2] - ldrb r0, [r0] - cmp r1, r0 - bne _081A9200 - ldrb r2, [r2, #1] - mov sb, r2 - b _081A9226 - .align 2, 0 -_081A91EC: .4byte gUnknown_3005AEC -_081A91F0: .4byte gUnknown_2036FF0 -_081A91F4: .4byte gUnknown_3005B50 -_081A91F8: .4byte gUnknown_85DF454 -_081A91FC: .4byte gUnknown_203B954 -_081A9200: - adds r6, #1 - cmp r6, #0x31 - bhi _081A9226 - ldr r4, _081A925C - lsls r3, r6, #1 - adds r2, r3, r4 - ldr r0, _081A9260 - ldr r1, [r0] - movs r0, #0x34 - muls r0, r5, r0 - adds r0, r0, r1 - ldrb r1, [r2] - ldrb r0, [r0] - cmp r1, r0 - bne _081A9200 - adds r0, r4, #1 - adds r0, r3, r0 - ldrb r0, [r0] - mov sb, r0 -_081A9226: - ldr r3, _081A9264 - ldr r2, _081A9268 - ldr r0, _081A926C - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #8] - subs r0, #1 - adds r0, r0, r3 - ldrb r0, [r0] - str r0, [sp] - movs r6, #0 - mov r3, sb - lsls r3, r3, #2 - mov sb, r3 -_081A9248: - ldr r0, [sp] - cmp r0, #8 - bls _081A9250 - b _081A9360 -_081A9250: - lsls r0, r0, #2 - ldr r1, _081A9270 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081A925C: .4byte gUnknown_85DF454 -_081A9260: .4byte gUnknown_203B954 -_081A9264: .4byte gUnknown_85DF710 -_081A9268: .4byte gUnknown_2036FF0 -_081A926C: .4byte gUnknown_3005B50 -_081A9270: .4byte _081A9274 -_081A9274: @ jump table - .4byte _081A9298 @ case 0 - .4byte _081A92A8 @ case 1 - .4byte _081A92EA @ case 2 - .4byte _081A932C @ case 3 - .4byte _081A9332 @ case 4 - .4byte _081A9338 @ case 5 - .4byte _081A933E @ case 6 - .4byte _081A934A @ case 7 - .4byte _081A9356 @ case 8 -_081A9298: - mov r0, sp - movs r1, #8 - movs r2, #0 - bl GetPostBattleDirectionHintTextIndex - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - b _081A9366 -_081A92A8: - movs r6, #0 - ldr r2, _081A92B4 - mov r4, r8 - adds r4, #4 - mov r5, r8 - b _081A92D8 - .align 2, 0 -_081A92B4: .4byte 0x7FFF0000 -_081A92B8: - ldrb r0, [r5, #1] - cmp r0, #0x3b - bne _081A92D2 - movs r1, #0 - ldrsh r0, [r4, r1] - asrs r1, r2, #0x10 - cmp r0, r1 - beq _081A92D2 - movs r3, #2 - ldrsh r0, [r4, r3] - cmp r0, r1 - beq _081A92D2 - adds r7, #1 -_081A92D2: - adds r4, #0x18 - adds r5, #0x18 - adds r6, #1 -_081A92D8: - str r2, [sp, #4] - bl GetNumBattlePyramidEventObjects - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, [sp, #4] - cmp r6, r0 - blt _081A92B8 - b _081A9366 -_081A92EA: - bl GetPyramidFloorTemplateId - lsls r0, r0, #0x18 - ldr r1, _081A931C - lsrs r0, r0, #0x14 - adds r0, r0, r1 - ldrb r7, [r0, #1] - ldr r0, _081A9320 - ldr r0, [r0] - ldr r1, _081A9324 - adds r0, r0, r1 - ldrb r2, [r0] - ldr r1, _081A9328 - movs r6, #7 -_081A9306: - ldr r0, [r1] - ands r0, r2 - cmp r0, #0 - beq _081A9310 - subs r7, #1 -_081A9310: - adds r1, #4 - subs r6, #1 - cmp r6, #0 - bge _081A9306 - b _081A9366 - .align 2, 0 -_081A931C: .4byte gUnknown_85DEE88 -_081A9320: .4byte gUnknown_3005AF0 -_081A9324: .4byte 0x00000E2A -_081A9328: .4byte gUnknown_82FACB4 -_081A932C: - mov r0, sp - movs r1, #8 - b _081A934E -_081A9332: - mov r0, sp - movs r1, #8 - b _081A9342 -_081A9338: - mov r0, sp - movs r1, #0x10 - b _081A934E -_081A933E: - mov r0, sp - movs r1, #0x10 -_081A9342: - movs r2, #1 - bl GetPostBattleDirectionHintTextIndex - b _081A9360 -_081A934A: - mov r0, sp - movs r1, #0x18 -_081A934E: - movs r2, #2 - bl GetPostBattleDirectionHintTextIndex - b _081A9360 -_081A9356: - mov r0, sp - movs r1, #0x18 - movs r2, #1 - bl GetPostBattleDirectionHintTextIndex -_081A9360: - cmp r6, #0 - bne _081A9366 - b _081A9248 -_081A9366: - ldr r1, _081A938C - add r1, sb - ldr r0, [sp] - ldr r1, [r1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - lsls r0, r7, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl ShowFieldMessage - add sp, #8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A938C: .4byte gUnknown_85DF6F8 - thumb_func_end ShowPostBattleHintText - - thumb_func_start UpdatePyramidWinStreak -UpdatePyramidWinStreak: @ 0x081A9390 - push {r4, r5, lr} - ldr r5, _081A93D0 - ldr r1, [r5] - ldr r2, _081A93D4 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r2, r0, #0x1d - ldr r4, _081A93D8 - adds r1, r1, r4 - adds r1, r1, r2 - ldrh r3, [r1] - ldr r0, _081A93DC - cmp r3, r0 - bhi _081A93B2 - adds r0, r3, #1 - strh r0, [r1] -_081A93B2: - ldr r0, [r5] - adds r1, r0, r4 - adds r1, r1, r2 - ldr r3, _081A93E0 - adds r0, r0, r3 - adds r0, r0, r2 - ldrh r1, [r1] - ldrh r2, [r0] - cmp r1, r2 - bls _081A93C8 - strh r1, [r0] -_081A93C8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081A93D0: .4byte gUnknown_3005AF0 -_081A93D4: .4byte 0x00000CA9 -_081A93D8: .4byte 0x00000E1A -_081A93DC: .4byte 0x000003E6 -_081A93E0: .4byte 0x00000E1E - thumb_func_end UpdatePyramidWinStreak - - thumb_func_start GetInBattlePyramid -GetInBattlePyramid: @ 0x081A93E4 - push {r4, lr} - ldr r4, _081A93F8 - bl InBattlePyramid - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081A93F8: .4byte gUnknown_2037290 - thumb_func_end GetInBattlePyramid - - thumb_func_start UpdatePyramidLightRadius -UpdatePyramidLightRadius: @ 0x081A93FC - push {r4, lr} - ldr r0, _081A940C - ldrh r0, [r0] - cmp r0, #0 - beq _081A9410 - cmp r0, #1 - beq _081A942C - b _081A94CC - .align 2, 0 -_081A940C: .4byte gUnknown_2037284 -_081A9410: - ldr r0, _081A9420 - ldr r0, [r0] - ldr r1, _081A9424 - ldrh r1, [r1] - ldr r2, _081A9428 - adds r0, r0, r2 - strb r1, [r0] - b _081A94CC - .align 2, 0 -_081A9420: .4byte gUnknown_3005AF0 -_081A9424: .4byte gUnknown_2037282 -_081A9428: .4byte 0x00000E68 -_081A942C: - ldr r4, _081A945C - ldrh r0, [r4] - cmp r0, #1 - beq _081A9488 - cmp r0, #1 - bgt _081A94CC - cmp r0, #0 - bne _081A94CC - ldr r0, _081A9460 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081A94CC - ldr r0, _081A9464 - ldr r0, [r0] - ldr r2, _081A9468 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, #0x77 - bls _081A946C - movs r0, #0x78 - strb r0, [r1] - b _081A9474 - .align 2, 0 -_081A945C: .4byte gUnknown_2037290 -_081A9460: .4byte gUnknown_2037C74 -_081A9464: .4byte gUnknown_3005AF0 -_081A9468: .4byte 0x00000E68 -_081A946C: - ldr r0, _081A9480 - ldrh r0, [r0] - bl sub_080A306C -_081A9474: - ldr r1, _081A9484 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _081A94CC - .align 2, 0 -_081A9480: .4byte gUnknown_2037286 -_081A9484: .4byte gUnknown_2037290 -_081A9488: - ldr r1, _081A94BC - ldrh r0, [r1] - cmp r0, #0 - beq _081A94C8 - subs r0, #1 - strh r0, [r1] - ldr r3, _081A94C0 - ldr r1, [r3] - ldr r2, _081A94C4 - adds r1, r1, r2 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r0, [r3] - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, #0x78 - bls _081A94B6 - movs r0, #0x78 - strb r0, [r1] - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] -_081A94B6: - bl WriteBattlePyramidViewScanlineEffectBuffer - b _081A94CC - .align 2, 0 -_081A94BC: .4byte gUnknown_2037282 -_081A94C0: .4byte gUnknown_3005AF0 -_081A94C4: .4byte 0x00000E68 -_081A94C8: - movs r0, #2 - strh r0, [r4] -_081A94CC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end UpdatePyramidLightRadius - - thumb_func_start ClearPyramidPartyHeldItems -ClearPyramidPartyHeldItems: @ 0x081A94D4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - movs r1, #0 - mov r0, sp - strh r1, [r0] - movs r5, #0 - movs r0, #0x64 - mov sb, r0 - ldr r1, _081A9534 - mov r8, r1 -_081A94EE: - movs r4, #0 - adds r7, r5, #1 - mov r6, sb - muls r6, r5, r6 -_081A94F6: - ldr r0, _081A9538 - ldr r0, [r0] - lsls r1, r4, #1 - ldr r2, _081A953C - adds r0, r0, r2 - adds r1, r0, r1 - ldrh r0, [r1] - cmp r0, #0 - beq _081A951A - subs r0, #1 - cmp r0, r5 - bne _081A951A - mov r1, r8 - adds r0, r6, r1 - movs r1, #0xc - mov r2, sp - bl SetMonData -_081A951A: - adds r4, #1 - cmp r4, #3 - ble _081A94F6 - adds r5, r7, #0 - cmp r5, #5 - ble _081A94EE - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A9534: .4byte gUnknown_2024190 -_081A9538: .4byte gUnknown_3005AF0 -_081A953C: .4byte 0x00000CAA - thumb_func_end ClearPyramidPartyHeldItems - - thumb_func_start SetPyramidFloorPalette -SetPyramidFloorPalette: @ 0x081A9540 - push {lr} - ldr r0, _081A9550 - movs r1, #0 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_081A9550: .4byte Task_SetPyramidFloorPalette - thumb_func_end SetPyramidFloorPalette - - thumb_func_start Task_SetPyramidFloorPalette -Task_SetPyramidFloorPalette: @ 0x081A9554 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _081A958C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _081A9584 - ldr r0, _081A9590 - ldr r0, [r0] - ldr r1, _081A9594 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #5 - ldr r1, _081A9598 - adds r0, r0, r1 - ldr r1, _081A959C - movs r2, #0x10 - bl CpuSet - adds r0, r4, #0 - bl DestroyTask -_081A9584: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081A958C: .4byte gUnknown_2037C74 -_081A9590: .4byte gUnknown_3005AF0 -_081A9594: .4byte 0x00000CB2 -_081A9598: .4byte gUnknown_8D856AC -_081A959C: .4byte gUnknown_2037474 - thumb_func_end Task_SetPyramidFloorPalette - - thumb_func_start FldEff_UseSecretPowerShrub -FldEff_UseSecretPowerShrub: @ 0x081A95A0 - push {lr} - bl CableCarMainCallback_Run - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end FldEff_UseSecretPowerShrub - - thumb_func_start RestorePyramidPlayerParty -RestorePyramidPlayerParty: @ 0x081A95AC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - movs r0, #0 - str r0, [sp] -_081A95BC: - ldr r0, _081A962C - ldr r0, [r0] - ldr r2, [sp] - lsls r1, r2, #1 - ldr r5, _081A9630 - adds r0, r0, r5 - adds r0, r0, r1 - ldrh r0, [r0] - subs r5, r0, #1 - movs r0, #0 - str r0, [sp, #4] - movs r2, #0x64 - adds r1, r5, #0 - muls r1, r2, r1 - str r1, [sp, #8] - movs r0, #0x8e - lsls r0, r0, #2 - adds r6, r1, r0 - movs r1, #0 - str r1, [sp, #0x10] -_081A95E4: - ldr r2, _081A9634 - ldr r0, [r2] - adds r0, r0, r6 - movs r1, #0xb - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - ldr r3, _081A9638 - ldr r1, [sp, #0x10] - adds r0, r1, r3 - movs r1, #0xb - movs r2, #0 - str r3, [sp, #0x14] - bl GetMonData - ldr r3, [sp, #0x14] - cmp r4, r0 - bne _081A96B4 - movs r6, #0 - adds r2, r5, #1 - str r2, [sp, #0xc] - movs r1, #0x64 - adds r0, r5, #0 - muls r0, r1, r0 - movs r5, #0x8e - lsls r5, r5, #2 - adds r5, r5, r0 - mov sb, r5 - ldr r7, [sp, #4] - muls r7, r1, r7 - mov sl, r3 -_081A9624: - movs r5, #0 - adds r0, r6, #1 - mov r8, r0 - b _081A963E - .align 2, 0 -_081A962C: .4byte gUnknown_3005AF0 -_081A9630: .4byte 0x00000CAA -_081A9634: .4byte gUnknown_3005AEC -_081A9638: .4byte gUnknown_2024190 -_081A963C: - adds r5, #1 -_081A963E: - cmp r5, #3 - bgt _081A9666 - ldr r1, _081A96A8 - ldr r0, [r1] - add r0, sb - adds r1, r5, #0 - adds r1, #0xd - movs r2, #0 - bl GetMonData - adds r4, r0, #0 - adds r1, r6, #0 - adds r1, #0xd - mov r2, sl - adds r0, r7, r2 - movs r2, #0 - bl GetMonData - cmp r4, r0 - bne _081A963C -_081A9666: - cmp r5, #4 - bne _081A9678 - lsls r2, r6, #0x18 - lsrs r2, r2, #0x18 - mov r5, sl - adds r0, r7, r5 - movs r1, #0xa6 - bl SetMonMoveSlot -_081A9678: - mov r6, r8 - cmp r6, #3 - ble _081A9624 - ldr r1, _081A96A8 - ldr r0, [r1] - ldr r2, [sp, #8] - adds r0, r0, r2 - movs r5, #0x8e - lsls r5, r5, #2 - adds r0, r0, r5 - ldr r1, _081A96AC - ldr r2, [sp, #0x10] - adds r1, r2, r1 - movs r2, #0x64 - bl memcpy - ldr r0, _081A96B0 - ldr r5, [sp, #4] - adds r0, r5, r0 - mov r1, sp - ldrb r1, [r1, #0xc] - strb r1, [r0] - b _081A96C4 - .align 2, 0 -_081A96A8: .4byte gUnknown_3005AEC -_081A96AC: .4byte gUnknown_2024190 -_081A96B0: .4byte gUnknown_203CBC4 -_081A96B4: - ldr r2, [sp, #0x10] - adds r2, #0x64 - str r2, [sp, #0x10] - ldr r0, [sp, #4] - adds r0, #1 - str r0, [sp, #4] - cmp r0, #2 - ble _081A95E4 -_081A96C4: - ldr r1, [sp] - adds r1, #1 - str r1, [sp] - cmp r1, #2 - bgt _081A96D0 - b _081A95BC -_081A96D0: - movs r2, #0 - str r2, [sp] - ldr r4, _081A9704 - ldr r3, _081A9708 - ldr r2, _081A970C -_081A96DA: - ldr r1, [r4] - ldr r5, [sp] - lsls r0, r5, #1 - adds r1, r1, r3 - adds r1, r1, r0 - adds r0, r5, r2 - ldrb r0, [r0] - strh r0, [r1] - adds r5, #1 - str r5, [sp] - cmp r5, #2 - ble _081A96DA - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A9704: .4byte gUnknown_3005AF0 -_081A9708: .4byte 0x00000CAA -_081A970C: .4byte gUnknown_203CBC4 - thumb_func_end RestorePyramidPlayerParty - - thumb_func_start GetPostBattleDirectionHintTextIndex -GetPostBattleDirectionHintTextIndex: @ 0x081A9710 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sl, r0 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - movs r4, #0 - ldr r0, _081A9798 - ldr r5, [r0, #8] - ldr r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #1 - adds r0, #0xe - adds r5, r5, r0 - movs r3, #0 - ldr r0, _081A979C - mov r8, r0 - ldr r1, _081A97A0 - mov ip, r1 - ldr r0, _081A97A4 - mov sb, r0 -_081A9744: - movs r2, #0 -_081A9746: - lsls r0, r2, #1 - adds r0, r0, r5 - ldrh r1, [r0] - mov r0, r8 - ands r0, r1 - cmp r0, ip - bne _081A9802 - adds r2, #7 - ldr r0, _081A97A8 - ldrb r1, [r0] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sb - movs r5, #0xc - ldrsh r1, [r0, r5] - subs r2, r2, r1 - adds r1, r3, #7 - movs r3, #0xe - ldrsh r0, [r0, r3] - subs r3, r1, r0 - cmp r2, r6 - bge _081A9786 - rsbs r0, r6, #0 - cmp r2, r0 - ble _081A9786 - cmp r3, r6 - bge _081A9786 - cmp r3, r0 - ble _081A9786 - cmp r7, #0 - bne _081A97FC -_081A9786: - cmp r2, #0 - ble _081A97AC - cmp r3, #0 - ble _081A97AC - movs r4, #3 - cmp r2, r3 - blt _081A97F4 - movs r4, #2 - b _081A97F4 - .align 2, 0 -_081A9798: .4byte gUnknown_3005B20 -_081A979C: .4byte 0x000003FF -_081A97A0: .4byte 0x0000028E -_081A97A4: .4byte gUnknown_2036FF0 -_081A97A8: .4byte gUnknown_3005B50 -_081A97AC: - cmp r2, #0 - bge _081A97BE - cmp r3, #0 - bge _081A97BE - movs r4, #1 - cmp r2, r3 - ble _081A97F4 - movs r4, #0 - b _081A97F4 -_081A97BE: - cmp r2, #0 - bne _081A97CC - movs r4, #0 - cmp r3, #0 - ble _081A97F4 - movs r4, #3 - b _081A97F4 -_081A97CC: - cmp r3, #0 - bne _081A97DA - movs r4, #1 - cmp r2, #0 - ble _081A97F4 - movs r4, #2 - b _081A97F4 -_081A97DA: - cmp r2, #0 - bge _081A97EA - adds r0, r2, r3 - movs r4, #1 - cmp r0, #0 - ble _081A97F4 - movs r4, #3 - b _081A97F4 -_081A97EA: - adds r0, r2, r3 - mvns r0, r0 - asrs r4, r0, #0x1f - movs r0, #2 - ands r4, r0 -_081A97F4: - movs r0, #0 - mov r5, sl - str r0, [r5] - b _081A9810 -_081A97FC: - mov r0, sl - str r7, [r0] - b _081A9810 -_081A9802: - adds r2, #1 - cmp r2, #0x1f - ble _081A9746 - adds r5, #0x5e - adds r3, #1 - cmp r3, #0x1f - ble _081A9744 -_081A9810: - adds r0, r4, #0 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end GetPostBattleDirectionHintTextIndex - - thumb_func_start sub_081A9820 -sub_081A9820: @ 0x081A9820 - lsls r0, r0, #0x18 - ldr r1, _081A9834 - ldr r1, [r1] - lsrs r0, r0, #0x17 - adds r1, r1, r0 - ldr r0, _081A9838 - adds r1, r1, r0 - ldrh r0, [r1] - bx lr - .align 2, 0 -_081A9834: .4byte gUnknown_3005AF0 -_081A9838: .4byte 0x00000CB2 - thumb_func_end sub_081A9820 - - thumb_func_start GetBattlePyramidTrainerFlag -GetBattlePyramidTrainerFlag: @ 0x081A983C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081A986C - ldr r2, [r1] - ldr r1, _081A9870 - adds r2, r2, r1 - ldr r4, _081A9874 - ldr r3, _081A9878 - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrb r0, [r1, #8] - subs r0, #1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r0, [r0] - ldrb r1, [r2] - ands r0, r1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081A986C: .4byte gUnknown_3005AF0 -_081A9870: .4byte 0x00000E2A -_081A9874: .4byte gUnknown_82FACB4 -_081A9878: .4byte gUnknown_2036FF0 - thumb_func_end GetBattlePyramidTrainerFlag - - thumb_func_start MarkApproachingPyramidTrainersAsBattled -MarkApproachingPyramidTrainersAsBattled: @ 0x081A987C - push {lr} - ldr r0, _081A98AC - ldrh r0, [r0] - bl MarkPyramidTrainerAsBattled - ldr r0, _081A98B0 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - beq _081A98A6 - movs r0, #1 - bl GetChosenApproachingTrainerEventObjectId - ldr r1, _081A98B4 - strb r0, [r1] - ldr r0, _081A98B8 - ldrh r0, [r0] - bl MarkPyramidTrainerAsBattled -_081A98A6: - pop {r0} - bx r0 - .align 2, 0 -_081A98AC: .4byte gUnknown_203886A -_081A98B0: .4byte gUnknown_2022C90 -_081A98B4: .4byte gUnknown_3005B50 -_081A98B8: .4byte gUnknown_203886C - thumb_func_end MarkApproachingPyramidTrainersAsBattled - - thumb_func_start MarkPyramidTrainerAsBattled -MarkPyramidTrainerAsBattled: @ 0x081A98BC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - movs r3, #0 - ldr r0, _081A9958 - mov ip, r0 - ldr r6, _081A995C - ldr r1, _081A9960 - mov sl, r1 - ldr r7, _081A9964 - mov sb, r7 - ldr r0, _081A9968 - mov r8, r0 - ldr r4, _081A996C -_081A98E0: - mov r1, sb - ldr r2, [r1] - lsls r0, r3, #1 - mov r7, r8 - adds r1, r2, r7 - adds r1, r1, r0 - ldrh r0, [r1] - cmp r0, r5 - bne _081A98FE - ldr r1, _081A9970 - adds r0, r2, r1 - ldr r1, [r4] - ldrb r2, [r0] - orrs r1, r2 - strb r1, [r0] -_081A98FE: - adds r4, #4 - adds r3, #1 - cmp r3, #7 - ble _081A98E0 - ldrb r1, [r6] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, ip - movs r3, #2 - strb r3, [r0, #6] - mov r7, sl - ldr r2, [r7] - ldr r0, _081A9974 - ldrh r1, [r0] - subs r1, #1 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r2, r2, r0 - ldr r1, _081A9978 - adds r2, r2, r1 - strb r3, [r2] - ldrb r1, [r6] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, ip - ldrh r1, [r0, #0x10] - strh r1, [r0, #0xc] - ldrb r1, [r6] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, ip - ldrh r1, [r0, #0x12] - strh r1, [r0, #0xe] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081A9958: .4byte gUnknown_2036FF0 -_081A995C: .4byte gUnknown_3005B50 -_081A9960: .4byte gUnknown_3005AEC -_081A9964: .4byte gUnknown_3005AF0 -_081A9968: .4byte 0x00000CB4 -_081A996C: .4byte gUnknown_82FACB4 -_081A9970: .4byte 0x00000E2A -_081A9974: .4byte gUnknown_2037292 -_081A9978: .4byte 0x00000C79 - thumb_func_end MarkPyramidTrainerAsBattled - - thumb_func_start GenerateBattlePyramidWildMon -GenerateBattlePyramidWildMon: @ 0x081A997C - push {r4, r5, r6, lr} - sub sp, #0x14 - ldr r0, _081A99BC - ldr r1, [r0] - ldr r2, _081A99C0 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r5, r0, #0x1e - lsls r0, r5, #1 - ldr r2, _081A99C4 - adds r1, r1, r2 - adds r1, r1, r0 - ldrh r0, [r1] - movs r1, #7 - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x14 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x13 - bls _081A99B2 - movs r0, #0x13 -_081A99B2: - cmp r5, #0 - beq _081A99CC - ldr r1, _081A99C8 - b _081A99CE - .align 2, 0 -_081A99BC: .4byte gUnknown_3005AF0 -_081A99C0: .4byte 0x00000CA9 -_081A99C4: .4byte 0x00000E1A -_081A99C8: .4byte gUnknown_85DEE38 -_081A99CC: - ldr r1, _081A9A44 -_081A99CE: - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r6, [r0] - ldr r4, _081A9A48 - adds r0, r4, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - subs r0, #1 - str r0, [sp, #0x10] - lsls r2, r0, #1 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r6, r2 - adds r0, r4, #0 - movs r1, #0xb - bl SetMonData - ldr r1, [sp, #0x10] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrh r1, [r0] - mov r0, sp - bl sub_0806B3DC - adds r0, r4, #0 - movs r1, #2 - mov r2, sp - bl SetMonData - cmp r5, #0 - beq _081A9A4C - bl SetFacilityPtrsGetLevel - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, [sp, #0x10] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r0, [r0, #2] - subs r5, r5, r0 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xb - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - subs r0, #5 - adds r5, r5, r0 - b _081A9A6E - .align 2, 0 -_081A9A44: .4byte gUnknown_85DE668 -_081A9A48: .4byte gUnknown_20243E8 -_081A9A4C: - bl Random - ldr r2, [sp, #0x10] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r6 - ldrb r4, [r1, #2] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xb - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - subs r0, #5 - adds r5, r4, r0 -_081A9A6E: - ldr r4, _081A9AB8 - ldr r2, _081A9ABC - ldr r1, [sp, #0x10] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrh r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #0x13] - movs r0, #0xca - lsls r0, r0, #1 - adds r2, r1, #0 - muls r2, r0, r2 - lsls r0, r5, #2 - ldr r1, _081A9AC0 - adds r0, r0, r1 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x19 - bl SetMonData - ldr r1, [sp, #0x10] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r1, [r0, #3] - cmp r1, #0 - blt _081A9AC4 - cmp r1, #1 - bgt _081A9AC4 - adds r2, r0, #3 - b _081A9AF4 - .align 2, 0 -_081A9AB8: .4byte gUnknown_20243E8 -_081A9ABC: .4byte gUnknown_82F0D54 -_081A9AC0: .4byte gUnknown_82F00B4 -_081A9AC4: - ldr r2, _081A9B00 - ldr r1, [sp, #0x10] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrh r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #0x17] - cmp r0, #0 - beq _081A9B08 - ldr r4, _081A9B04 - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - bl GetMonData - movs r1, #1 - ands r1, r0 - str r1, [sp, #0xc] - add r2, sp, #0xc -_081A9AF4: - adds r0, r4, #0 - movs r1, #0x2e - bl SetMonData - b _081A9B14 - .align 2, 0 -_081A9B00: .4byte gUnknown_82F0D54 -_081A9B04: .4byte gUnknown_20243E8 -_081A9B08: - str r0, [sp, #0xc] - ldr r0, _081A9B94 - add r2, sp, #0xc - movs r1, #0x2e - bl SetMonData -_081A9B14: - movs r0, #0 - str r0, [sp, #0xc] - movs r2, #0 - lsls r4, r5, #1 -_081A9B1C: - ldr r1, [sp, #0x10] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - lsls r1, r2, #1 - adds r0, #4 - adds r0, r0, r1 - ldrh r1, [r0] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r0, _081A9B94 - bl SetMonMoveSlot - ldr r0, [sp, #0xc] - adds r0, #1 - str r0, [sp, #0xc] - adds r2, r0, #0 - cmp r2, #3 - ble _081A9B1C - ldr r0, _081A9B98 - ldr r0, [r0] - ldr r1, _081A9B9C - adds r0, r0, r1 - adds r0, r0, r4 - ldrh r0, [r0] - cmp r0, #0x8b - bls _081A9B84 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x11 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r0, #0xf - str r0, [sp, #0x10] - movs r0, #0 - str r0, [sp, #0xc] -_081A9B6E: - adds r1, r0, #0 - adds r1, #0x27 - ldr r0, _081A9B94 - add r2, sp, #0x10 - bl SetMonData - ldr r0, [sp, #0xc] - adds r0, #1 - str r0, [sp, #0xc] - cmp r0, #5 - ble _081A9B6E -_081A9B84: - ldr r0, _081A9B94 - bl CalculateMonStats - add sp, #0x14 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081A9B94: .4byte gUnknown_20243E8 -_081A9B98: .4byte gUnknown_3005AF0 -_081A9B9C: .4byte 0x00000E1A - thumb_func_end GenerateBattlePyramidWildMon - - thumb_func_start GetPyramidRunMultiplier -GetPyramidRunMultiplier: @ 0x081A9BA0 - push {lr} - bl GetPyramidFloorTemplateId - lsls r0, r0, #0x18 - ldr r1, _081A9BB4 - lsrs r0, r0, #0x14 - adds r0, r0, r1 - ldrb r0, [r0, #4] - pop {r1} - bx r1 - .align 2, 0 -_081A9BB4: .4byte gUnknown_85DEE88 - thumb_func_end GetPyramidRunMultiplier - - thumb_func_start InBattlePyramid -InBattlePyramid: @ 0x081A9BB8 - push {lr} - ldr r0, _081A9BC8 - ldrh r1, [r0, #0x12] - ldr r0, _081A9BCC - cmp r1, r0 - bne _081A9BD0 - movs r0, #1 - b _081A9BDE - .align 2, 0 -_081A9BC8: .4byte gUnknown_2036FB8 -_081A9BCC: .4byte 0x00000169 -_081A9BD0: - movs r0, #0xbd - lsls r0, r0, #1 - cmp r1, r0 - beq _081A9BDC - movs r0, #0 - b _081A9BDE -_081A9BDC: - movs r0, #2 -_081A9BDE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end InBattlePyramid - - thumb_func_start InBattlePyramid_ -InBattlePyramid_: @ 0x081A9BE4 - push {lr} - movs r2, #0 - ldr r0, _081A9C00 - ldrh r1, [r0, #0x12] - ldr r0, _081A9C04 - cmp r1, r0 - beq _081A9BF8 - adds r0, #0x11 - cmp r1, r0 - bne _081A9BFA -_081A9BF8: - movs r2, #1 -_081A9BFA: - adds r0, r2, #0 - pop {r1} - bx r1 - .align 2, 0 -_081A9C00: .4byte gUnknown_2036FB8 -_081A9C04: .4byte 0x00000169 - thumb_func_end InBattlePyramid_ - - thumb_func_start sub_081A9C08 -sub_081A9C08: @ 0x081A9C08 - push {lr} - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081A9C30 - bl RestorePyramidPlayerParty - ldr r0, _081A9C34 - ldr r0, [r0] - ldr r1, _081A9C38 - adds r0, r0, r1 - movs r1, #2 - strb r1, [r0] - ldr r0, _081A9C3C - movs r1, #0 - bl VarSet - bl LoadPlayerParty -_081A9C30: - pop {r0} - bx r0 - .align 2, 0 -_081A9C34: .4byte gUnknown_3005AF0 -_081A9C38: .4byte 0x00000CA8 -_081A9C3C: .4byte 0x0000400E - thumb_func_end sub_081A9C08 - - thumb_func_start SoftResetInBattlePyramid -SoftResetInBattlePyramid: @ 0x081A9C40 - push {lr} - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081A9C50 - bl DoSoftReset -_081A9C50: - pop {r0} - bx r0 - thumb_func_end SoftResetInBattlePyramid - - thumb_func_start CopyPyramidTrainerSpeechBefore -CopyPyramidTrainerSpeechBefore: @ 0x081A9C54 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r2, _081A9C70 - movs r1, #0x34 - muls r1, r0, r1 - ldr r0, [r2] - adds r0, r0, r1 - adds r0, #0xc - bl FrontierSpeechToString - pop {r0} - bx r0 - .align 2, 0 -_081A9C70: .4byte gUnknown_203B954 - thumb_func_end CopyPyramidTrainerSpeechBefore - - thumb_func_start CopyPyramidTrainerWinSpeech -CopyPyramidTrainerWinSpeech: @ 0x081A9C74 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r2, _081A9C90 - movs r1, #0x34 - muls r1, r0, r1 - ldr r0, [r2] - adds r0, r0, r1 - adds r0, #0x18 - bl FrontierSpeechToString - pop {r0} - bx r0 - .align 2, 0 -_081A9C90: .4byte gUnknown_203B954 - thumb_func_end CopyPyramidTrainerWinSpeech - - thumb_func_start CopyPyramidTrainerLoseSpeech -CopyPyramidTrainerLoseSpeech: @ 0x081A9C94 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r2, _081A9CB0 - movs r1, #0x34 - muls r1, r0, r1 - ldr r0, [r2] - adds r0, r0, r1 - adds r0, #0x24 - bl FrontierSpeechToString - pop {r0} - bx r0 - .align 2, 0 -_081A9CB0: .4byte gUnknown_203B954 - thumb_func_end CopyPyramidTrainerLoseSpeech - - thumb_func_start GetBattlePyramindTrainerEncounterMusicId -GetBattlePyramindTrainerEncounterMusicId: @ 0x081A9CB4 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r4, #0 - ldr r3, _081A9CDC - ldr r1, _081A9CE0 - ldr r2, [r1] - movs r1, #0x34 - muls r0, r1, r0 - adds r0, r0, r2 - ldrb r0, [r0] - adds r0, r0, r3 - ldrb r2, [r0] - ldr r1, _081A9CE4 -_081A9CD0: - ldrb r0, [r1] - cmp r0, r2 - bne _081A9CE8 - ldrb r0, [r1, #1] - b _081A9CF2 - .align 2, 0 -_081A9CDC: .4byte gUnknown_82EFF52 -_081A9CE0: .4byte gUnknown_203B954 -_081A9CE4: .4byte gUnknown_85DF37C -_081A9CE8: - adds r1, #4 - adds r4, #1 - cmp r4, #0x35 - bls _081A9CD0 - movs r0, #0 -_081A9CF2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetBattlePyramindTrainerEncounterMusicId - - thumb_func_start sub_081A9CF8 -sub_081A9CF8: @ 0x081A9CF8 - push {lr} - ldr r0, _081A9D04 - bl ScriptContext1_SetupScript - pop {r0} - bx r0 - .align 2, 0 -_081A9D04: .4byte gUnknown_822D751 - thumb_func_end sub_081A9CF8 - - thumb_func_start GetUniqueTrainerId -GetUniqueTrainerId: @ 0x081A9D08 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _081A9D84 - ldr r4, [r0] - ldr r1, _081A9D88 - adds r0, r4, r1 - ldrb r1, [r0] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1d - ldr r2, _081A9D8C - adds r0, r4, r2 - adds r0, r0, r1 - ldrh r0, [r0] - movs r1, #7 - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _081A9D90 - adds r4, r4, r1 - ldrh r1, [r4] - cmp r1, #7 - bne _081A9D98 - adds r0, #1 - lsls r7, r0, #0x18 - lsls r1, r1, #0x18 - mov r8, r1 -_081A9D44: - lsrs r0, r7, #0x18 - mov r2, r8 - lsrs r1, r2, #0x18 - bl sub_0816245C - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - movs r2, #0 - cmp r2, r5 - bge _081A9D7C - ldr r1, _081A9D84 - ldr r0, [r1] - ldr r4, _081A9D94 - adds r0, r0, r4 - ldrh r0, [r0] - cmp r0, r3 - beq _081A9D7C - adds r6, r1, #0 -_081A9D68: - adds r2, #1 - cmp r2, r5 - bge _081A9D7C - ldr r0, [r6] - lsls r1, r2, #1 - adds r0, r0, r4 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, r3 - bne _081A9D68 -_081A9D7C: - cmp r2, r5 - bne _081A9D44 - b _081A9DDA - .align 2, 0 -_081A9D84: .4byte gUnknown_3005AF0 -_081A9D88: .4byte 0x00000CA9 -_081A9D8C: .4byte 0x00000E1A -_081A9D90: .4byte 0x00000CB2 -_081A9D94: .4byte 0x00000CB4 -_081A9D98: - lsls r1, r1, #0x18 - mov r8, r1 - lsls r7, r0, #0x18 -_081A9D9E: - lsrs r0, r7, #0x18 - mov r2, r8 - lsrs r1, r2, #0x18 - bl sub_0816245C - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - movs r2, #0 - cmp r2, r5 - bge _081A9DD6 - ldr r1, _081A9DE8 - ldr r0, [r1] - ldr r4, _081A9DEC - adds r0, r0, r4 - ldrh r0, [r0] - cmp r0, r3 - beq _081A9DD6 - adds r6, r1, #0 -_081A9DC2: - adds r2, #1 - cmp r2, r5 - bge _081A9DD6 - ldr r0, [r6] - lsls r1, r2, #1 - adds r0, r0, r4 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, r3 - bne _081A9DC2 -_081A9DD6: - cmp r2, r5 - bne _081A9D9E -_081A9DDA: - adds r0, r3, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081A9DE8: .4byte gUnknown_3005AF0 -_081A9DEC: .4byte 0x00000CB4 - thumb_func_end GetUniqueTrainerId - - thumb_func_start GenerateBattlePyramidFloorLayout -GenerateBattlePyramidFloorLayout: @ 0x081A9DF0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - str r0, [sp, #4] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp, #8] - movs r0, #0x10 - bl AllocZeroed - str r0, [sp, #0xc] - bl GetPyramidFloorLayoutOffsets - mov r4, sp - adds r4, #1 - mov r0, sp - adds r1, r4, #0 - bl GetPyramidEntranceAndExitSquareIds - movs r7, #0 -_081A9E1E: - ldr r1, [sp, #0xc] - adds r0, r1, r7 - ldrb r0, [r0] - ldr r2, _081A9EF0 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r1, _081A9EF4 - adds r0, r0, r1 - ldr r6, [r0] - ldr r2, [r6, #0xc] - mov sl, r2 - ldr r0, [sp, #4] - ldr r1, _081A9EF8 - str r0, [r1, #8] - ldr r0, [r6] - lsls r0, r0, #2 - adds r2, r0, #0 - adds r2, #0xf - str r2, [r1] - ldr r0, [r6, #4] - lsls r0, r0, #2 - adds r0, #0xe - str r0, [r1, #4] - ldr r0, [sp, #4] - mov sb, r0 - adds r1, r7, #0 - cmp r7, #0 - bge _081A9E58 - adds r1, r7, #3 -_081A9E58: - asrs r1, r1, #2 - ldr r4, [r6, #4] - adds r0, r1, #0 - muls r0, r4, r0 - adds r0, #7 - muls r2, r0, r2 - lsls r1, r1, #2 - subs r1, r7, r1 - ldr r3, [r6] - adds r0, r1, #0 - muls r0, r3, r0 - adds r0, #7 - adds r2, r2, r0 - lsls r2, r2, #1 - add sb, r2 - movs r1, #0 - mov r8, r1 - adds r2, r7, #1 - str r2, [sp, #0x10] - cmp r8, r4 - bge _081A9F2E -_081A9E82: - movs r0, #0 - mov ip, r0 - mov r1, r8 - adds r1, #1 - str r1, [sp, #0x14] - cmp ip, r3 - bge _081A9F1A - ldr r2, _081A9EFC - str r2, [sp, #0x18] - mov r4, sb - mov r5, sl -_081A9E98: - ldrh r1, [r5] - ldr r0, _081A9F00 - ands r0, r1 - ldr r2, _081A9F04 - cmp r0, r2 - bne _081A9F0C - mov r0, sp - ldrb r0, [r0, #1] - cmp r7, r0 - beq _081A9F0C - mov r0, sp - ldrb r0, [r0] - cmp r7, r0 - bne _081A9EDC - ldr r1, [sp, #8] - cmp r1, #0 - bne _081A9EDC - ldr r2, [sp, #0x18] - ldr r3, [r2] - adds r2, r7, #0 - cmp r7, #0 - bge _081A9EC6 - adds r2, r7, #3 -_081A9EC6: - asrs r2, r2, #2 - lsls r1, r2, #2 - subs r1, r7, r1 - ldr r0, [r6] - muls r0, r1, r0 - add r0, ip - strh r0, [r3] - ldr r0, [r6, #4] - muls r0, r2, r0 - add r0, r8 - strh r0, [r3, #2] -_081A9EDC: - ldrh r0, [r5] - movs r1, #0xfc - lsls r1, r1, #8 - ands r1, r0 - ldr r2, _081A9F08 - adds r0, r2, #0 - orrs r1, r0 - strh r1, [r4] - ldr r3, [r6] - b _081A9F0E - .align 2, 0 -_081A9EF0: .4byte 0x00000169 -_081A9EF4: .4byte gUnknown_845A1F4 -_081A9EF8: .4byte gUnknown_3005B20 -_081A9EFC: .4byte gUnknown_3005AEC -_081A9F00: .4byte 0x000003FF -_081A9F04: .4byte 0x0000028E -_081A9F08: .4byte 0x0000028D -_081A9F0C: - strh r1, [r4] -_081A9F0E: - adds r4, #2 - adds r5, #2 - movs r0, #1 - add ip, r0 - cmp ip, r3 - blt _081A9E98 -_081A9F1A: - lsls r0, r3, #3 - adds r0, #0x1e - add sb, r0 - lsls r0, r3, #1 - add sl, r0 - ldr r1, [sp, #0x14] - mov r8, r1 - ldr r0, [r6, #4] - cmp r8, r0 - blt _081A9E82 -_081A9F2E: - ldr r7, [sp, #0x10] - cmp r7, #0xf - bgt _081A9F36 - b _081A9E1E -_081A9F36: - bl sub_080989C8 - ldr r0, [sp, #0xc] - bl Free - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end GenerateBattlePyramidFloorLayout - - thumb_func_start LoadBattlePyramidEventObjectTemplates -LoadBattlePyramidEventObjectTemplates: @ 0x081A9F50 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - movs r5, #0 - mov r6, sp - adds r6, #1 - add r0, sp, #4 - mov r8, r0 - ldr r4, _081A9FB4 - ldr r3, _081A9FB8 - ldr r0, _081A9FBC - adds r2, r0, #0 -_081A9F6A: - ldr r0, [r4] - lsls r1, r5, #1 - adds r0, r0, r3 - adds r0, r0, r1 - ldrh r1, [r0] - orrs r1, r2 - strh r1, [r0] - adds r5, #1 - cmp r5, #7 - ble _081A9F6A - bl GetPyramidFloorTemplateId - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - mov r0, sp - adds r1, r6, #0 - bl GetPyramidEntranceAndExitSquareIds - movs r0, #0 - str r0, [sp, #4] - ldr r0, _081A9FC0 - ldr r1, [r0] - movs r0, #0xc7 - lsls r0, r0, #4 - adds r1, r1, r0 - ldr r2, _081A9FC4 - mov r0, r8 - bl CpuSet - movs r5, #0 -_081A9FA6: - cmp r5, #0 - bne _081A9FCC - ldr r1, _081A9FC8 - lsls r0, r7, #4 - adds r0, r0, r1 - ldrb r0, [r0, #3] - b _081A9FD4 - .align 2, 0 -_081A9FB4: .4byte gUnknown_3005AF0 -_081A9FB8: .4byte 0x00000CB4 -_081A9FBC: .4byte 0x0000FFFF -_081A9FC0: .4byte gUnknown_3005AEC -_081A9FC4: .4byte 0x05000180 -_081A9FC8: .4byte gUnknown_85DEE88 -_081A9FCC: - ldr r1, _081A9FE4 - lsls r0, r7, #4 - adds r0, r0, r1 - ldrb r0, [r0, #2] -_081A9FD4: - cmp r0, #4 - bhi _081AA05C - lsls r0, r0, #2 - ldr r1, _081A9FE8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081A9FE4: .4byte gUnknown_85DEE88 -_081A9FE8: .4byte _081A9FEC -_081A9FEC: @ jump table - .4byte _081AA000 @ case 0 - .4byte _081AA00A @ case 1 - .4byte _081AA01A @ case 2 - .4byte _081AA028 @ case 3 - .4byte _081AA044 @ case 4 -_081AA000: - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - bl SetPyramidObjectPositionsUniformly - b _081AA05C -_081AA00A: - lsls r0, r5, #0x18 - lsrs r4, r0, #0x18 - mov r0, sp - ldrb r1, [r0] - adds r0, r4, #0 - bl SetPyramidObjectPositionsInAndNearSquare - b _081AA036 -_081AA01A: - lsls r0, r5, #0x18 - lsrs r4, r0, #0x18 - ldrb r1, [r6] - adds r0, r4, #0 - bl SetPyramidObjectPositionsInAndNearSquare - b _081AA036 -_081AA028: - lsls r0, r5, #0x18 - lsrs r4, r0, #0x18 - mov r0, sp - ldrb r1, [r0] - adds r0, r4, #0 - bl SetPyramidObjectPositionsNearSquare -_081AA036: - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081AA05C - adds r0, r4, #0 - bl SetPyramidObjectPositionsUniformly - b _081AA05C -_081AA044: - lsls r0, r5, #0x18 - lsrs r4, r0, #0x18 - ldrb r1, [r6] - adds r0, r4, #0 - bl SetPyramidObjectPositionsNearSquare - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081AA05C - adds r0, r4, #0 - bl SetPyramidObjectPositionsUniformly -_081AA05C: - adds r5, #1 - cmp r5, #1 - ble _081A9FA6 - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LoadBattlePyramidEventObjectTemplates - - thumb_func_start LoadBattlePyramidFloorEventObjectScripts -LoadBattlePyramidFloorEventObjectScripts: @ 0x081AA070 - push {r4, r5, lr} - ldr r0, _081AA094 - ldr r0, [r0] - ldr r5, _081AA098 - ldr r4, _081AA09C - movs r2, #0xc8 - lsls r2, r2, #4 - adds r1, r0, r2 - movs r3, #0xc7 - lsls r3, r3, #4 - adds r2, r0, r3 - movs r3, #0x3f -_081AA088: - ldrb r0, [r2, #1] - cmp r0, #0x3b - beq _081AA0A0 - str r5, [r1] - b _081AA0A2 - .align 2, 0 -_081AA094: .4byte gUnknown_3005AEC -_081AA098: .4byte gUnknown_822D718 -_081AA09C: .4byte gUnknown_822D733 -_081AA0A0: - str r4, [r1] -_081AA0A2: - adds r1, #0x18 - adds r2, #0x18 - subs r3, #1 - cmp r3, #0 - bge _081AA088 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LoadBattlePyramidFloorEventObjectScripts - - thumb_func_start GetPyramidEntranceAndExitSquareIds -GetPyramidEntranceAndExitSquareIds: @ 0x081AA0B4 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r5, _081AA104 - ldr r1, [r5] - ldr r2, _081AA108 - adds r0, r1, r2 - ldrh r2, [r0] - movs r3, #0xf - ands r2, r3 - strb r2, [r4] - ldr r7, _081AA10C - adds r1, r1, r7 - ldrh r0, [r1] - ands r0, r3 - strb r0, [r6] - cmp r2, r0 - bne _081AA0FE - ldr r1, [r5] - ldr r2, _081AA108 - adds r0, r1, r2 - ldrh r2, [r0] - adds r3, r2, #1 - adds r0, r3, #0 - asrs r0, r0, #4 - lsls r0, r0, #4 - subs r0, r3, r0 - strb r0, [r4] - adds r0, r1, r7 - ldrh r1, [r0] - adds r2, r1, #0 - adds r2, #0xf - adds r0, r2, #0 - asrs r0, r0, #4 - lsls r0, r0, #4 - subs r0, r2, r0 - strb r0, [r6] -_081AA0FE: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081AA104: .4byte gUnknown_3005AF0 -_081AA108: .4byte 0x00000E28 -_081AA10C: .4byte 0x00000E22 - thumb_func_end GetPyramidEntranceAndExitSquareIds - - thumb_func_start SetPyramidObjectPositionsUniformly -SetPyramidObjectPositionsUniformly: @ 0x081AA110 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - movs r5, #0 - bl GetPyramidFloorTemplateId - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r0, #0x10 - bl AllocZeroed - str r0, [sp, #8] - bl GetPyramidFloorLayoutOffsets - ldr r0, _081AA15C - ldr r0, [r0] - ldr r1, _081AA160 - adds r0, r0, r1 - ldrh r4, [r0] - movs r0, #0xf - ands r4, r0 - ldr r0, [sp] - cmp r0, #0 - bne _081AA168 - ldr r1, _081AA164 - lsls r0, r6, #4 - adds r0, r0, r1 - ldrb r0, [r0, #1] - mov sl, r0 - movs r1, #0 - str r1, [sp, #4] - b _081AA176 - .align 2, 0 -_081AA15C: .4byte gUnknown_3005AF0 -_081AA160: .4byte 0x00000E26 -_081AA164: .4byte gUnknown_85DEE88 -_081AA168: - ldr r1, _081AA188 - lsls r0, r6, #4 - adds r0, r0, r1 - ldrb r1, [r0] - mov sl, r1 - ldrb r0, [r0, #1] - str r0, [sp, #4] -_081AA176: - movs r0, #0 - mov r8, r0 - cmp r8, sl - bge _081AA238 -_081AA17E: - movs r1, #1 - add r1, r8 - mov sb, r1 - b _081AA1A6 - .align 2, 0 -_081AA188: .4byte gUnknown_85DEE88 -_081AA18C: - lsls r2, r4, #0x18 - lsrs r2, r2, #0x18 - ldr r3, [sp, #4] - add r3, r8 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r0, [sp] - ldr r1, [sp, #8] - bl TrySetPyramidEventObjectPositionInSquare - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081AA22E -_081AA1A6: - ldr r0, _081AA1D0 - mov ip, r0 - ldr r6, _081AA1D4 - ldr r7, _081AA1D8 - movs r3, #2 - lsls r0, r4, #2 - mov r1, ip - adds r2, r0, r1 -_081AA1B6: - movs r0, #1 - ands r0, r5 - cmp r0, #0 - beq _081AA1DC - ldr r0, [r6] - adds r0, r0, r7 - ldrh r1, [r0] - ldr r0, [r2] - ands r0, r1 - cmp r0, #0 - bne _081AA1EC - b _081AA1EA - .align 2, 0 -_081AA1D0: .4byte gUnknown_82FACB4 -_081AA1D4: .4byte gUnknown_3005AF0 -_081AA1D8: .4byte 0x00000E28 -_081AA1DC: - ldr r0, [r6] - adds r0, r0, r7 - ldrh r1, [r0] - ldr r0, [r2] - ands r0, r1 - cmp r0, #0 - beq _081AA1EC -_081AA1EA: - orrs r5, r3 -_081AA1EC: - adds r2, #4 - adds r4, #1 - cmp r4, #0xf - ble _081AA1F8 - mov r2, ip - movs r4, #0 -_081AA1F8: - ldr r0, [r6] - ldr r1, _081AA218 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0xf - ands r1, r0 - cmp r4, r1 - bne _081AA21E - movs r1, #1 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _081AA21C - movs r0, #6 - orrs r5, r0 - b _081AA21E - .align 2, 0 -_081AA218: .4byte 0x00000E26 -_081AA21C: - orrs r5, r1 -_081AA21E: - adds r0, r5, #0 - ands r0, r3 - cmp r0, #0 - beq _081AA1B6 - movs r0, #4 - ands r0, r5 - cmp r0, #0 - beq _081AA18C -_081AA22E: - movs r0, #1 - ands r5, r0 - mov r8, sb - cmp r8, sl - blt _081AA17E -_081AA238: - ldr r0, [sp, #8] - bl Free - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetPyramidObjectPositionsUniformly - - thumb_func_start SetPyramidObjectPositionsInAndNearSquare -SetPyramidObjectPositionsInAndNearSquare: @ 0x081AA250 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp, #4] - movs r6, #0 - movs r7, #0 - movs r0, #0 - str r0, [sp, #0xc] - bl GetPyramidFloorTemplateId - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #0x10 - bl AllocZeroed - str r0, [sp, #0x14] - bl GetPyramidFloorLayoutOffsets - ldr r1, [sp] - cmp r1, #0 - bne _081AA29C - ldr r1, _081AA298 - lsls r0, r4, #4 - adds r0, r0, r1 - ldrb r0, [r0, #1] - str r0, [sp, #0x10] - movs r0, #0 - b _081AA2A8 - .align 2, 0 -_081AA298: .4byte gUnknown_85DEE88 -_081AA29C: - ldr r1, _081AA2DC - lsls r0, r4, #4 - adds r0, r0, r1 - ldrb r2, [r0] - str r2, [sp, #0x10] - ldrb r0, [r0, #1] -_081AA2A8: - movs r3, #0 - str r3, [sp, #8] - ldr r1, [sp, #0x10] - asrs r1, r1, #0x1f - str r1, [sp, #0x18] - ldr r2, [sp, #0x10] - cmp r3, r2 - bge _081AA39A - str r0, [sp, #0x1c] - adds r3, r0, #0 - lsls r3, r3, #0x18 - mov sb, r3 -_081AA2C0: - cmp r7, #0 - bne _081AA2E6 - mov r0, sb - lsrs r3, r0, #0x18 - ldr r0, [sp] - ldr r1, [sp, #0x14] - ldr r2, [sp, #4] - bl TrySetPyramidEventObjectPositionInSquare - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081AA2E0 - movs r7, #1 - b _081AA2E6 - .align 2, 0 -_081AA2DC: .4byte gUnknown_85DEE88 -_081AA2E0: - ldr r1, [sp, #0xc] - adds r1, #1 - str r1, [sp, #0xc] -_081AA2E6: - movs r0, #1 - ands r0, r7 - cmp r0, #0 - beq _081AA378 - ldr r2, _081AA31C - mov r8, r2 - ldr r3, [sp, #4] - lsls r4, r3, #2 - adds r0, r6, r4 - add r0, r8 - ldrb r2, [r0] - mov r0, sb - lsrs r3, r0, #0x18 - ldr r0, [sp] - ldr r1, [sp, #0x14] - bl TrySetPyramidEventObjectPositionInSquare - lsls r0, r0, #0x18 - ldr r1, [sp, #0x1c] - mov sl, r1 - adds r5, r4, #0 - cmp r0, #0 - beq _081AA360 - ldr r4, [sp, #0xc] - adds r4, #1 - b _081AA33A - .align 2, 0 -_081AA31C: .4byte gUnknown_85DF77E -_081AA320: - adds r0, r6, r5 - adds r0, r0, r2 - ldrb r2, [r0] - mov r0, sl - lsls r3, r0, #0x18 - lsrs r3, r3, #0x18 - ldr r0, [sp] - ldr r1, [sp, #0x14] - bl TrySetPyramidEventObjectPositionInSquare - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081AA358 -_081AA33A: - adds r6, #1 - ldr r0, _081AA35C - adds r1, r6, r5 - adds r1, r1, r0 - ldrb r1, [r1] - adds r2, r0, #0 - cmp r1, #0xff - beq _081AA34E - cmp r6, #3 - ble _081AA350 -_081AA34E: - movs r6, #0 -_081AA350: - adds r7, #2 - asrs r0, r7, #1 - cmp r0, #4 - bne _081AA320 -_081AA358: - str r4, [sp, #0xc] - b _081AA378 - .align 2, 0 -_081AA35C: .4byte gUnknown_85DF77E -_081AA360: - adds r6, #1 - adds r0, r6, r4 - add r0, r8 - ldrb r0, [r0] - cmp r0, #0xff - beq _081AA370 - cmp r6, #3 - ble _081AA372 -_081AA370: - movs r6, #0 -_081AA372: - ldr r1, [sp, #0xc] - adds r1, #1 - str r1, [sp, #0xc] -_081AA378: - asrs r0, r7, #1 - cmp r0, #4 - beq _081AA39A - movs r0, #1 - ands r7, r0 - ldr r2, [sp, #0x1c] - adds r2, #1 - str r2, [sp, #0x1c] - movs r3, #0x80 - lsls r3, r3, #0x11 - add sb, r3 - ldr r0, [sp, #8] - adds r0, #1 - str r0, [sp, #8] - ldr r1, [sp, #0x10] - cmp r0, r1 - blt _081AA2C0 -_081AA39A: - movs r1, #0 - ldr r2, [sp, #0x10] - ldr r3, [sp, #0x18] - subs r0, r2, r3 - asrs r0, r0, #1 - ldr r2, [sp, #0xc] - cmp r0, r2 - ble _081AA3AC - movs r1, #1 -_081AA3AC: - adds r0, r1, #0 - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end SetPyramidObjectPositionsInAndNearSquare - - thumb_func_start SetPyramidObjectPositionsNearSquare -SetPyramidObjectPositionsNearSquare: @ 0x081AA3C0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - movs r4, #0 - movs r7, #0 - movs r0, #0 - mov r8, r0 - bl GetPyramidFloorTemplateId - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r0, #0x10 - bl AllocZeroed - str r0, [sp, #8] - bl GetPyramidFloorLayoutOffsets - ldr r1, [sp] - cmp r1, #0 - bne _081AA40C - ldr r1, _081AA408 - lsls r0, r5, #4 - adds r0, r0, r1 - ldrb r0, [r0, #1] - mov sl, r0 - movs r0, #0 - b _081AA418 - .align 2, 0 -_081AA408: .4byte gUnknown_85DEE88 -_081AA40C: - ldr r1, _081AA448 - lsls r0, r5, #4 - adds r0, r0, r1 - ldrb r2, [r0] - mov sl, r2 - ldrb r0, [r0, #1] -_081AA418: - movs r3, #0 - str r3, [sp, #4] - mov r1, sl - asrs r1, r1, #0x1f - str r1, [sp, #0xc] - cmp r3, sl - bge _081AA4B6 - ldr r2, _081AA44C - mov sb, r2 - lsls r5, r6, #2 - lsls r6, r0, #0x18 -_081AA42E: - adds r0, r4, r5 - add r0, sb - ldrb r2, [r0] - lsrs r3, r6, #0x18 - ldr r0, [sp] - ldr r1, [sp, #8] - bl TrySetPyramidEventObjectPositionInSquare - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081AA48C - adds r7, #1 - b _081AA466 - .align 2, 0 -_081AA448: .4byte gUnknown_85DEE88 -_081AA44C: .4byte gUnknown_85DF77E -_081AA450: - adds r0, r4, r5 - adds r0, r0, r1 - ldrb r2, [r0] - lsrs r3, r6, #0x18 - ldr r0, [sp] - ldr r1, [sp, #8] - bl TrySetPyramidEventObjectPositionInSquare - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081AA4A0 -_081AA466: - adds r4, #1 - adds r0, r4, r5 - add r0, sb - ldrb r0, [r0] - ldr r1, _081AA488 - cmp r0, #0xff - beq _081AA478 - cmp r4, #3 - ble _081AA47A -_081AA478: - movs r4, #0 -_081AA47A: - movs r3, #1 - add r8, r3 - mov r0, r8 - cmp r0, #4 - bne _081AA450 - b _081AA4A0 - .align 2, 0 -_081AA488: .4byte gUnknown_85DF77E -_081AA48C: - adds r4, #1 - adds r0, r4, r5 - add r0, sb - ldrb r0, [r0] - cmp r0, #0xff - beq _081AA49C - cmp r4, #3 - ble _081AA49E -_081AA49C: - movs r4, #0 -_081AA49E: - adds r7, #1 -_081AA4A0: - mov r1, r8 - cmp r1, #4 - beq _081AA4B6 - movs r2, #0x80 - lsls r2, r2, #0x11 - adds r6, r6, r2 - ldr r3, [sp, #4] - adds r3, #1 - str r3, [sp, #4] - cmp r3, sl - blt _081AA42E -_081AA4B6: - movs r1, #0 - mov r2, sl - ldr r3, [sp, #0xc] - subs r0, r2, r3 - asrs r0, r0, #1 - cmp r0, r7 - ble _081AA4C6 - movs r1, #1 -_081AA4C6: - adds r0, r1, #0 - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end SetPyramidObjectPositionsNearSquare - - thumb_func_start TrySetPyramidEventObjectPositionInSquare -TrySetPyramidEventObjectPositionInSquare: @ 0x081AA4D8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - mov sl, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r8, r2 - lsls r3, r3, #0x18 - lsrs r7, r3, #0x18 - ldr r0, _081AA53C - ldr r0, [r0] - ldr r1, _081AA540 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081AA548 - movs r6, #7 -_081AA50A: - movs r4, #7 - lsls r5, r6, #0x18 -_081AA50E: - lsls r1, r4, #0x18 - lsrs r1, r1, #0x18 - mov r0, r8 - str r0, [sp] - str r7, [sp, #4] - mov r0, sb - lsrs r2, r5, #0x18 - mov r3, sl - bl TrySetPyramidEventObjectPositionAtCoords - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081AA544 - subs r4, #1 - cmp r4, #0 - bge _081AA50E - subs r6, #1 - movs r1, #1 - rsbs r1, r1, #0 - cmp r6, r1 - bgt _081AA50A - b _081AA574 - .align 2, 0 -_081AA53C: .4byte gUnknown_3005AF0 -_081AA540: .4byte 0x00000E22 -_081AA544: - movs r0, #0 - b _081AA576 -_081AA548: - movs r6, #0 -_081AA54A: - movs r4, #0 - lsls r5, r6, #0x18 -_081AA54E: - lsls r1, r4, #0x18 - lsrs r1, r1, #0x18 - mov r0, r8 - str r0, [sp] - str r7, [sp, #4] - mov r0, sb - lsrs r2, r5, #0x18 - mov r3, sl - bl TrySetPyramidEventObjectPositionAtCoords - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081AA544 - adds r4, #1 - cmp r4, #7 - ble _081AA54E - adds r6, #1 - cmp r6, #7 - ble _081AA54A -_081AA574: - movs r0, #1 -_081AA576: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end TrySetPyramidEventObjectPositionInSquare - - thumb_func_start TrySetPyramidEventObjectPositionAtCoords -TrySetPyramidEventObjectPositionAtCoords: @ 0x081AA588 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - ldr r4, [sp, #0x34] - ldr r5, [sp, #0x38] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp, #4] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r8, r2 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov sl, r4 - lsls r5, r5, #0x18 - lsrs r6, r5, #0x18 - ldr r0, _081AA6BC - ldr r0, [r0] - movs r1, #0xc7 - lsls r1, r1, #4 - adds r1, r0, r1 - str r1, [sp, #8] - add r3, sl - ldrb r1, [r3] - adds r1, #0x2c - movs r0, #0x19 - bl Overworld_GetMapHeaderByGroupAndId - adds r5, r0, #0 - movs r7, #0 - ldr r1, [r5, #4] - ldrb r2, [r1] - cmp r7, r2 - bge _081AA6D2 - movs r0, #3 - ands r0, r4 - lsls r0, r0, #3 - str r0, [sp, #0xc] -_081AA5E0: - ldr r1, [r1, #4] - lsls r2, r7, #1 - adds r0, r2, r7 - lsls r0, r0, #3 - adds r3, r0, r1 - movs r4, #4 - ldrsh r0, [r3, r4] - ldr r1, [r5, #4] - mov ip, r1 - mov sb, r2 - ldr r2, [sp, #4] - cmp r0, r2 - bne _081AA6C8 - movs r4, #6 - ldrsh r0, [r3, r4] - cmp r0, r8 - bne _081AA6C8 - ldr r0, [sp] - cmp r0, #0 - bne _081AA60E - ldrb r0, [r3, #1] - cmp r0, #0x3b - bne _081AA61A -_081AA60E: - ldr r1, [sp] - cmp r1, #1 - bne _081AA6C8 - ldrb r0, [r3, #1] - cmp r0, #0x3b - bne _081AA6C8 -_081AA61A: - movs r3, #0 - ldr r2, [r5, #4] - mov ip, r2 - cmp r3, r6 - bge _081AA654 - ldr r4, [sp, #4] - ldr r0, [sp, #0xc] - adds r4, r4, r0 - str r4, [sp, #0x10] - mov r1, sl - lsrs r0, r1, #2 - lsls r0, r0, #3 - mov r2, r8 - adds r1, r2, r0 - ldr r2, [sp, #8] - adds r2, #4 -_081AA63A: - movs r4, #0 - ldrsh r0, [r2, r4] - ldr r4, [sp, #0x10] - cmp r0, r4 - bne _081AA64C - movs r4, #2 - ldrsh r0, [r2, r4] - cmp r0, r1 - beq _081AA654 -_081AA64C: - adds r2, #0x18 - adds r3, #1 - cmp r3, r6 - blt _081AA63A -_081AA654: - cmp r3, r6 - bne _081AA6C8 - lsls r0, r6, #1 - mov r8, r0 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, [sp, #8] - adds r5, r0, r1 - mov r3, ip - ldr r2, [r3, #4] - mov r4, sb - adds r1, r4, r7 - lsls r1, r1, #3 - adds r0, r5, #0 - adds r1, r1, r2 - ldm r1!, {r2, r3, r4} - stm r0!, {r2, r3, r4} - ldm r1!, {r2, r3, r4} - stm r0!, {r2, r3, r4} - ldrh r0, [r5, #4] - ldr r1, [sp, #0xc] - adds r0, r0, r1 - strh r0, [r5, #4] - mov r2, sl - lsrs r0, r2, #2 - lsls r0, r0, #3 - ldrh r3, [r5, #6] - adds r0, r0, r3 - strh r0, [r5, #6] - adds r0, r6, #1 - strb r0, [r5] - ldrb r0, [r5, #1] - cmp r0, #0x3b - beq _081AA6B8 - adds r0, r6, #0 - bl GetUniqueTrainerId - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - adds r4, r7, #0 - adds r0, r4, #0 - bl IsFrontierTrainerFemale - strb r0, [r5, #1] - ldr r0, _081AA6C0 - ldr r0, [r0] - ldr r1, _081AA6C4 - adds r0, r0, r1 - add r0, r8 - strh r4, [r0] -_081AA6B8: - movs r0, #0 - b _081AA6D4 - .align 2, 0 -_081AA6BC: .4byte gUnknown_3005AEC -_081AA6C0: .4byte gUnknown_3005AF0 -_081AA6C4: .4byte 0x00000CB4 -_081AA6C8: - adds r7, #1 - mov r1, ip - ldrb r2, [r1] - cmp r7, r2 - blt _081AA5E0 -_081AA6D2: - movs r0, #1 -_081AA6D4: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end TrySetPyramidEventObjectPositionAtCoords - - thumb_func_start GetPyramidFloorLayoutOffsets -GetPyramidFloorLayoutOffsets: @ 0x081AA6E4 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldr r0, _081AA744 - ldr r0, [r0] - ldr r2, _081AA748 - adds r1, r0, r2 - ldrh r4, [r1] - ldr r1, _081AA74C - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #0x10 - orrs r4, r0 - bl GetPyramidFloorTemplateId - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r3, #0 - ldr r2, _081AA750 - mov ip, r2 - movs r7, #7 -_081AA70C: - adds r2, r6, r3 - adds r0, r4, #0 - ands r0, r7 - lsls r1, r5, #4 - adds r0, r0, r1 - add r0, ip - ldrb r0, [r0] - strb r0, [r2] - asrs r4, r4, #3 - cmp r3, #7 - bne _081AA738 - ldr r0, _081AA744 - ldr r1, [r0] - ldr r2, _081AA754 - adds r0, r1, r2 - ldrh r4, [r0] - ldr r0, _081AA758 - adds r1, r1, r0 - ldrh r0, [r1] - lsls r0, r0, #0x10 - orrs r4, r0 - asrs r4, r4, #8 -_081AA738: - adds r3, #1 - cmp r3, #0xf - ble _081AA70C - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081AA744: .4byte gUnknown_3005AF0 -_081AA748: .4byte 0x00000E22 -_081AA74C: .4byte 0x00000E24 -_081AA750: .4byte gUnknown_85DEE8D -_081AA754: .4byte 0x00000E26 -_081AA758: .4byte 0x00000E28 - thumb_func_end GetPyramidFloorLayoutOffsets - - thumb_func_start GetPyramidFloorTemplateId -GetPyramidFloorTemplateId: @ 0x081AA75C - push {r4, lr} - ldr r0, _081AA794 - ldr r4, [r0] - ldr r1, _081AA798 - adds r0, r4, r1 - ldrh r0, [r0] - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldr r0, _081AA79C - adds r4, r4, r0 - ldrh r0, [r4] - ldr r1, _081AA7A0 - adds r0, r0, r1 - ldrb r2, [r0] - cmp r2, #0x21 - bhi _081AA7B0 - ldr r1, _081AA7A4 - lsls r0, r2, #1 - adds r0, r0, r1 -_081AA788: - ldrb r1, [r0] - cmp r3, r1 - bge _081AA7A8 - ldrb r0, [r0, #1] - b _081AA7B2 - .align 2, 0 -_081AA794: .4byte gUnknown_3005AF0 -_081AA798: .4byte 0x00000E28 -_081AA79C: .4byte 0x00000CB2 -_081AA7A0: .4byte gUnknown_85DEFCC -_081AA7A4: .4byte gUnknown_85DEF88 -_081AA7A8: - adds r0, #2 - adds r2, #1 - cmp r2, #0x21 - bls _081AA788 -_081AA7B0: - movs r0, #0 -_081AA7B2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetPyramidFloorTemplateId - - thumb_func_start GetNumBattlePyramidEventObjects -GetNumBattlePyramidEventObjects: @ 0x081AA7B8 - push {lr} - ldr r0, _081AA7D0 - ldr r0, [r0] - movs r1, #0xc7 - lsls r1, r1, #4 - adds r2, r0, r1 - movs r1, #0 - movs r3, #0xc7 - lsls r3, r3, #4 - adds r0, r0, r3 - b _081AA7E6 - .align 2, 0 -_081AA7D0: .4byte gUnknown_3005AEC -_081AA7D4: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xf - bhi _081AA7EC - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 -_081AA7E6: - ldrb r0, [r0] - cmp r0, #0 - bne _081AA7D4 -_081AA7EC: - adds r0, r1, #0 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetNumBattlePyramidEventObjects - - thumb_func_start InitPyramidBagItems -InitPyramidBagItems: @ 0x081AA7F4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r3, #0 - ldr r1, _081AA84C - mov r8, r1 - lsls r1, r0, #2 - adds r1, r1, r0 - movs r0, #0 - mov ip, r0 - lsls r4, r1, #1 - ldr r7, _081AA850 - movs r6, #0 - ldr r5, _081AA854 - lsls r2, r1, #2 -_081AA816: - mov r1, r8 - ldr r0, [r1] - adds r1, r0, r7 - adds r1, r1, r2 - strh r6, [r1] - adds r1, r3, r4 - adds r0, r0, r5 - adds r0, r0, r1 - mov r1, ip - strb r1, [r0] - adds r2, #2 - adds r3, #1 - cmp r3, #9 - ble _081AA816 - movs r0, #0x15 - movs r1, #1 - bl AddPyramidBagItem - movs r0, #0x22 - movs r1, #1 - bl AddPyramidBagItem - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081AA84C: .4byte gUnknown_3005AF0 -_081AA850: .4byte 0x00000E2C -_081AA854: .4byte 0x00000E54 - thumb_func_end InitPyramidBagItems - - thumb_func_start GetBattlePyramidPickupItemId -GetBattlePyramidPickupItemId: @ 0x081AA858 - push {r4, r5, r6, lr} - ldr r0, _081AA8BC - ldr r1, [r0] - ldr r2, _081AA8C0 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r6, r0, #0x1e - lsls r0, r6, #1 - ldr r2, _081AA8C4 - adds r1, r1, r2 - adds r1, r1, r0 - ldrh r0, [r1] - movs r1, #7 - bl __udivsi3 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x13 - ble _081AA882 - movs r4, #0x13 -_081AA882: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - movs r1, #0 - ldr r3, _081AA8C8 - ldrb r0, [r3] - lsls r5, r4, #2 - cmp r0, r2 - bgt _081AA8AE -_081AA8A0: - adds r1, #1 - cmp r1, #9 - bhi _081AA8B2 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - ble _081AA8A0 -_081AA8AE: - cmp r1, #9 - bls _081AA8B4 -_081AA8B2: - movs r1, #9 -_081AA8B4: - cmp r6, #0 - bne _081AA8D0 - ldr r2, _081AA8CC - b _081AA8D2 - .align 2, 0 -_081AA8BC: .4byte gUnknown_3005AF0 -_081AA8C0: .4byte 0x00000CA9 -_081AA8C4: .4byte 0x00000E1A -_081AA8C8: .4byte gUnknown_85DF7BE -_081AA8CC: .4byte gUnknown_85DEFD4 -_081AA8D0: - ldr r2, _081AA8E4 -_081AA8D2: - lsls r1, r1, #1 - adds r0, r5, r4 - lsls r0, r0, #2 - adds r1, r1, r0 - adds r1, r1, r2 - ldrh r0, [r1] - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_081AA8E4: .4byte gUnknown_85DF164 - thumb_func_end GetBattlePyramidPickupItemId - - thumb_func_start ResetBagScrollPositions -ResetBagScrollPositions: @ 0x081AA8E8 - push {r4, lr} - ldr r4, _081AA910 - movs r0, #0 - strb r0, [r4, #5] - adds r0, r4, #0 - adds r0, #8 - movs r1, #0 - movs r2, #0xa - bl memset - adds r4, #0x12 - adds r0, r4, #0 - movs r1, #0 - movs r2, #0xa - bl memset - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081AA910: .4byte gUnknown_203CB24 - thumb_func_end ResetBagScrollPositions - - thumb_func_start CB2_BagMenuFromStartMenu -CB2_BagMenuFromStartMenu: @ 0x081AA914 - push {lr} - ldr r2, _081AA924 - movs r0, #0 - movs r1, #5 - bl GoToBagMenu - pop {r0} - bx r0 - .align 2, 0 -_081AA924: .4byte CB2_ReturnToFieldWithOpenMenu - thumb_func_end CB2_BagMenuFromStartMenu - - thumb_func_start sub_081AA928 -sub_081AA928: @ 0x081AA928 - push {lr} - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081AA944 - ldr r2, _081AA940 - movs r0, #1 - movs r1, #5 - bl GoToBagMenu - b _081AA94C - .align 2, 0 -_081AA940: .4byte sub_0805996C -_081AA944: - ldr r1, _081AA950 - movs r0, #1 - bl sub_081C47A0 -_081AA94C: - pop {r0} - bx r0 - .align 2, 0 -_081AA950: .4byte sub_0805996C - thumb_func_end sub_081AA928 - - thumb_func_start CB2_ChooseBerry -CB2_ChooseBerry: @ 0x081AA954 - push {lr} - ldr r2, _081AA964 - movs r0, #4 - movs r1, #3 - bl GoToBagMenu - pop {r0} - bx r0 - .align 2, 0 -_081AA964: .4byte CB2_ReturnToFieldContinueScript - thumb_func_end CB2_ChooseBerry - - thumb_func_start sub_081AA968 -sub_081AA968: @ 0x081AA968 - push {lr} - adds r2, r0, #0 - movs r0, #5 - movs r1, #3 - bl GoToBagMenu - pop {r0} - bx r0 - thumb_func_end sub_081AA968 - - thumb_func_start CB2_GoToSellMenu -CB2_GoToSellMenu: @ 0x081AA978 - push {lr} - ldr r2, _081AA988 - movs r0, #3 - movs r1, #5 - bl GoToBagMenu - pop {r0} - bx r0 - .align 2, 0 -_081AA988: .4byte sub_080DF194 - thumb_func_end CB2_GoToSellMenu - - thumb_func_start sub_081AA98C -sub_081AA98C: @ 0x081AA98C - push {lr} - ldr r2, _081AA99C - movs r0, #6 - movs r1, #5 - bl GoToBagMenu - pop {r0} - bx r0 - .align 2, 0 -_081AA99C: .4byte sub_0816B140 - thumb_func_end sub_081AA98C - - thumb_func_start sub_081AA9A0 -sub_081AA9A0: @ 0x081AA9A0 - push {lr} - ldr r2, _081AA9BC - movs r0, #9 - movs r1, #5 - bl GoToBagMenu - ldr r0, _081AA9C0 - movs r1, #0 - strh r1, [r0] - ldr r0, _081AA9C4 - strh r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_081AA9BC: .4byte sub_081ADC78 -_081AA9C0: .4byte gUnknown_2037282 -_081AA9C4: .4byte gUnknown_2037290 - thumb_func_end sub_081AA9A0 - - thumb_func_start sub_081AA9C8 -sub_081AA9C8: @ 0x081AA9C8 - push {lr} - ldr r2, _081AA9E0 - movs r0, #7 - movs r1, #5 - bl GoToBagMenu - ldr r1, _081AA9E4 - movs r0, #0 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_081AA9E0: .4byte sub_081ADCC8 -_081AA9E4: .4byte gUnknown_2037290 - thumb_func_end sub_081AA9C8 - - thumb_func_start sub_081AA9E8 -sub_081AA9E8: @ 0x081AA9E8 - push {lr} - ldr r2, _081AAA00 - movs r0, #8 - movs r1, #5 - bl GoToBagMenu - ldr r1, _081AAA04 - movs r0, #0 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_081AAA00: .4byte sub_081ADD0C -_081AAA04: .4byte gUnknown_2037290 - thumb_func_end sub_081AA9E8 - - thumb_func_start GoToBagMenu -GoToBagMenu: @ 0x081AAA08 - push {r4, r5, r6, r7, lr} - adds r4, r2, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - ldr r6, _081AAA2C - ldr r0, _081AAA30 - bl AllocZeroed - str r0, [r6] - cmp r0, #0 - bne _081AAA34 - adds r0, r4, #0 - bl SetMainCallback2 - b _081AAAB2 - .align 2, 0 -_081AAA2C: .4byte gUnknown_203CB20 -_081AAA30: .4byte 0x00000844 -_081AAA34: - ldr r0, _081AAAB8 - cmp r5, #0xc - beq _081AAA3C - strb r5, [r0, #4] -_081AAA3C: - cmp r4, #0 - beq _081AAA42 - str r4, [r0] -_081AAA42: - cmp r7, #4 - bhi _081AAA48 - strb r7, [r0, #5] -_081AAA48: - ldrb r0, [r0, #4] - subs r0, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _081AAA68 - ldr r2, [r6] - ldr r0, _081AAABC - adds r2, r2, r0 - ldrb r1, [r2] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2] -_081AAA68: - ldr r0, [r6] - movs r1, #0 - str r1, [r0] - ldr r1, _081AAAC0 - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] - ldr r0, [r6] - ldr r1, _081AAAC4 - adds r0, r0, r1 - movs r1, #1 - rsbs r1, r1, #0 - strb r1, [r0] - ldr r0, [r6] - ldr r1, _081AAAC8 - adds r0, r0, r1 - movs r1, #1 - rsbs r1, r1, #0 - strb r1, [r0] - ldr r0, [r6] - ldr r1, _081AAACC - adds r0, r0, r1 - movs r1, #0xff - movs r2, #0xc - bl memset - ldr r0, [r6] - movs r1, #0x81 - lsls r1, r1, #4 - adds r0, r0, r1 - movs r1, #0xff - movs r2, #0xa - bl memset - ldr r0, _081AAAD0 - bl SetMainCallback2 -_081AAAB2: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081AAAB8: .4byte gUnknown_203CB24 -_081AAABC: .4byte 0x0000081B -_081AAAC0: .4byte 0x0000081A -_081AAAC4: .4byte 0x0000081E -_081AAAC8: .4byte 0x0000081F -_081AAACC: .4byte 0x00000804 -_081AAAD0: .4byte CB2_Bag - thumb_func_end GoToBagMenu - - thumb_func_start sub_081AAAD4 -sub_081AAAD4: @ 0x081AAAD4 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081AAAD4 - - thumb_func_start c2_bag_3 -c2_bag_3: @ 0x081AAAF0 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end c2_bag_3 - - thumb_func_start CB2_Bag -CB2_Bag: @ 0x081AAB04 - push {lr} -_081AAB06: - bl sub_081221F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081AAB2A - bl SetupBagMenu - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081AAB2A - bl sub_081221B8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081AAB06 -_081AAB2A: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CB2_Bag - - thumb_func_start SetupBagMenu -SetupBagMenu: @ 0x081AAB30 - push {r4, r5, lr} - sub sp, #4 - ldr r1, _081AAB50 - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, r1, #0 - cmp r0, #0x14 - bls _081AAB46 - b _081AAD9C -_081AAB46: - lsls r0, r0, #2 - ldr r1, _081AAB54 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081AAB50: .4byte gUnknown_3002360 -_081AAB54: .4byte _081AAB58 -_081AAB58: @ jump table - .4byte _081AABAC @ case 0 - .4byte _081AABB6 @ case 1 - .4byte _081AABC8 @ case 2 - .4byte _081AABCE @ case 3 - .4byte _081AABF0 @ case 4 - .4byte _081AABF6 @ case 5 - .4byte _081AABFE @ case 6 - .4byte _081AAC1C @ case 7 - .4byte _081AAC44 @ case 8 - .4byte _081AAC52 @ case 9 - .4byte _081AAC64 @ case 10 - .4byte _081AAC72 @ case 11 - .4byte _081AAC84 @ case 12 - .4byte _081AAC94 @ case 13 - .4byte _081AACC4 @ case 14 - .4byte _081AAD10 @ case 15 - .4byte _081AAD2C @ case 16 - .4byte _081AAD32 @ case 17 - .4byte _081AAD48 @ case 18 - .4byte _081AAD4E @ case 19 - .4byte _081AAD68 @ case 20 -_081AABAC: - bl SetVBlankHBlankCallbacksToNull - bl sub_08199640 - b _081AAD82 -_081AABB6: - bl ScanlineEffect_Stop - ldr r1, _081AABC4 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _081AAD8A - .align 2, 0 -_081AABC4: .4byte gUnknown_3002360 -_081AABC8: - bl FreeAllSpritePalettes - b _081AAD82 -_081AABCE: - bl ResetPaletteFade - ldr r2, _081AABE8 - ldrb r0, [r2, #8] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #8] - ldr r1, _081AABEC - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _081AAD8A - .align 2, 0 -_081AABE8: .4byte gUnknown_2037C74 -_081AABEC: .4byte gUnknown_3002360 -_081AABF0: - bl ResetSpriteData - b _081AAD82 -_081AABF6: - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r2, r0 - b _081AAD8A -_081AABFE: - bl sub_081221B8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081AAC0C - bl ResetTasks -_081AAC0C: - ldr r1, _081AAC18 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _081AAD8A - .align 2, 0 -_081AAC18: .4byte gUnknown_3002360 -_081AAC1C: - bl BagMenu_InitBGs - ldr r0, _081AAC38 - ldr r0, [r0] - ldr r1, _081AAC3C - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0] - ldr r1, _081AAC40 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _081AAD8A - .align 2, 0 -_081AAC38: .4byte gUnknown_203CB20 -_081AAC3C: .4byte 0x00000834 -_081AAC40: .4byte gUnknown_3002360 -_081AAC44: - bl LoadBagMenu_Graphics - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081AAC50 - b _081AADB4 -_081AAC50: - b _081AAD82 -_081AAC52: - bl SetupBagMenu_Textboxes - ldr r1, _081AAC60 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _081AAD8A - .align 2, 0 -_081AAC60: .4byte gUnknown_3002360 -_081AAC64: - bl sub_081AB818 - bl SetPocketListPositions - bl sub_081AB88C - b _081AAD82 -_081AAC72: - bl AllocateBagItemListBuffers - ldr r1, _081AAC80 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _081AAD8A - .align 2, 0 -_081AAC80: .4byte gUnknown_3002360 -_081AAC84: - ldr r0, _081AAC90 - ldrb r0, [r0, #5] - bl LoadBagItemListBuffers - b _081AAD82 - .align 2, 0 -_081AAC90: .4byte gUnknown_203CB24 -_081AAC94: - ldr r4, _081AACB8 - ldrb r1, [r4, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - ldr r1, _081AACBC - adds r0, r0, r1 - movs r1, #0 - bl sub_081AB4A0 - ldrb r0, [r4, #5] - movs r1, #1 - bl BagMenu_DrawPocketIndicatorSquare - ldr r1, _081AACC0 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _081AAD8A - .align 2, 0 -_081AACB8: .4byte gUnknown_203CB24 -_081AACBC: .4byte gUnknown_85C9742 -_081AACC0: .4byte gUnknown_3002360 -_081AACC4: - ldr r4, _081AAD04 - ldrb r0, [r4, #4] - bl AccessHallOfFamePC - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _081AAD08 - ldrb r2, [r4, #5] - lsls r2, r2, #1 - adds r1, r4, #0 - adds r1, #0x12 - adds r1, r2, r1 - ldrh r1, [r1] - adds r4, #8 - adds r2, r2, r4 - ldrh r2, [r2] - bl ListMenuInit - ldr r2, _081AAD0C - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0 - strh r0, [r1, #8] - strh r2, [r1, #0xe] - strh r2, [r1, #0x18] - b _081AAD82 - .align 2, 0 -_081AAD04: .4byte gUnknown_203CB24 -_081AAD08: .4byte gUnknown_3006050 -_081AAD0C: .4byte gUnknown_3005B60 -_081AAD10: - ldr r0, _081AAD24 - ldrb r0, [r0, #5] - bl AddBagVisualSprite - ldr r1, _081AAD28 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _081AAD8A - .align 2, 0 -_081AAD24: .4byte gUnknown_203CB24 -_081AAD28: .4byte gUnknown_3002360 -_081AAD2C: - bl sub_080D4830 - b _081AAD82 -_081AAD32: - bl bag_menu_add_pocket_scroll_arrow_indicators_maybe - bl bag_menu_add_list_scroll_arrow_indicators_maybe - ldr r1, _081AAD44 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _081AAD8A - .align 2, 0 -_081AAD44: .4byte gUnknown_3002360 -_081AAD48: - bl BagMenu_PrepareTMHMMoveWindow - b _081AAD82 -_081AAD4E: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - ldr r1, _081AAD64 - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 - b _081AAD8A - .align 2, 0 -_081AAD64: .4byte gUnknown_3002360 -_081AAD68: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r2, _081AAD94 - ldrb r1, [r2, #8] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #8] -_081AAD82: - ldr r1, _081AAD98 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 -_081AAD8A: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _081AADB4 - .align 2, 0 -_081AAD94: .4byte gUnknown_2037C74 -_081AAD98: .4byte gUnknown_3002360 -_081AAD9C: - ldr r0, _081AADAC - bl SetVBlankCallback - ldr r0, _081AADB0 - bl SetMainCallback2 - movs r0, #1 - b _081AADB6 - .align 2, 0 -_081AADAC: .4byte c2_bag_3 -_081AADB0: .4byte sub_081AAAD4 -_081AADB4: - movs r0, #0 -_081AADB6: - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end SetupBagMenu - - thumb_func_start BagMenu_InitBGs -BagMenu_InitBGs: @ 0x081AADC0 - push {r4, lr} - bl ResetVramOamAndBgCntRegs - ldr r4, _081AAE24 - ldr r0, [r4] - adds r0, #4 - movs r2, #0x80 - lsls r2, r2, #4 - movs r1, #0 - bl memset - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _081AAE28 - movs r0, #0 - movs r2, #3 - bl InitBgsFromTemplates - ldr r1, [r4] - adds r1, #4 - movs r0, #2 - bl SetBgTilemapBuffer - bl ResetAllBgsCoordinates - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081AAE24: .4byte gUnknown_203CB20 -_081AAE28: .4byte gUnknown_85DF7C8 - thumb_func_end BagMenu_InitBGs - - thumb_func_start LoadBagMenu_Graphics -LoadBagMenu_Graphics: @ 0x081AAE2C - push {r4, lr} - sub sp, #4 - ldr r4, _081AAE4C - ldr r0, [r4] - ldr r1, _081AAE50 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #4 - bls _081AAE42 - b _081AAF3C -_081AAE42: - lsls r0, r0, #2 - ldr r1, _081AAE54 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081AAE4C: .4byte gUnknown_203CB20 -_081AAE50: .4byte 0x00000834 -_081AAE54: .4byte _081AAE58 -_081AAE58: @ jump table - .4byte _081AAE6C @ case 0 - .4byte _081AAE88 @ case 1 - .4byte _081AAEAC @ case 2 - .4byte _081AAEE4 @ case 3 - .4byte _081AAF18 @ case 4 -_081AAE6C: - bl reset_temp_tile_data_buffers - ldr r1, _081AAE84 - movs r0, #0 - str r0, [sp] - movs r0, #2 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - b _081AAF1E - .align 2, 0 -_081AAE84: .4byte gUnknown_8D9A7CC -_081AAE88: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081AAF54 - ldr r0, _081AAEA4 - ldr r4, _081AAEA8 - ldr r1, [r4] - adds r1, #4 - bl sub_08034370 - ldr r1, [r4] - b _081AAF22 - .align 2, 0 -_081AAEA4: .4byte gUnknown_8D9AA84 -_081AAEA8: .4byte gUnknown_203CB20 -_081AAEAC: - bl IsWallysBag - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081AAED4 - ldr r0, _081AAECC - ldr r0, [r0] - ldrb r0, [r0, #8] - cmp r0, #0 - beq _081AAED4 - ldr r0, _081AAED0 - movs r1, #0 - movs r2, #0x40 - bl LoadCompressedPalette - b _081AAF1E - .align 2, 0 -_081AAECC: .4byte gUnknown_3005AF0 -_081AAED0: .4byte gUnknown_8D9A780 -_081AAED4: - ldr r0, _081AAEE0 - movs r1, #0 - movs r2, #0x40 - bl LoadCompressedPalette - b _081AAF1E - .align 2, 0 -_081AAEE0: .4byte gUnknown_8D9A734 -_081AAEE4: - bl IsWallysBag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081AAEFA - ldr r0, _081AAF04 - ldr r0, [r0] - ldrb r0, [r0, #8] - cmp r0, #0 - bne _081AAF0C -_081AAEFA: - ldr r0, _081AAF08 - bl LoadCompressedSpriteSheet - b _081AAF1E - .align 2, 0 -_081AAF04: .4byte gUnknown_3005AF0 -_081AAF08: .4byte gUnknown_855A664 -_081AAF0C: - ldr r0, _081AAF14 - bl LoadCompressedSpriteSheet - b _081AAF1E - .align 2, 0 -_081AAF14: .4byte gUnknown_855A66C -_081AAF18: - ldr r0, _081AAF30 - bl LoadCompressedSpritePalette -_081AAF1E: - ldr r0, _081AAF34 - ldr r1, [r0] -_081AAF22: - ldr r0, _081AAF38 - adds r1, r1, r0 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _081AAF54 - .align 2, 0 -_081AAF30: .4byte gUnknown_855A674 -_081AAF34: .4byte gUnknown_203CB20 -_081AAF38: .4byte 0x00000834 -_081AAF3C: - bl sub_08122334 - ldr r0, [r4] - ldr r1, _081AAF50 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0] - movs r0, #1 - b _081AAF56 - .align 2, 0 -_081AAF50: .4byte 0x00000834 -_081AAF54: - movs r0, #0 -_081AAF56: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end LoadBagMenu_Graphics - - thumb_func_start AccessHallOfFamePC -AccessHallOfFamePC: @ 0x081AAF60 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xa - bne _081AAF74 - ldr r0, _081AAF70 - b _081AAF76 - .align 2, 0 -_081AAF70: .4byte Task_WallyTutorialBagMenu -_081AAF74: - ldr r0, _081AAF84 -_081AAF76: - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_081AAF84: .4byte sub_081ABAB4 - thumb_func_end AccessHallOfFamePC - - thumb_func_start AllocateBagItemListBuffers -AllocateBagItemListBuffers: @ 0x081AAF88 - push {r4, lr} - ldr r4, _081AAFA8 - movs r0, #0x82 - lsls r0, r0, #2 - bl sub_08000BC8 - str r0, [r4] - ldr r4, _081AAFAC - movs r0, #0xc3 - lsls r0, r0, #3 - bl sub_08000BC8 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081AAFA8: .4byte gUnknown_203CB40 -_081AAFAC: .4byte gUnknown_203CB44 - thumb_func_end AllocateBagItemListBuffers - - thumb_func_start LoadBagItemListBuffers -LoadBagItemListBuffers: @ 0x081AAFB0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r1, r7, #3 - ldr r0, _081AB050 - adds r1, r1, r0 - mov r8, r1 - ldr r0, _081AB054 - ldr r2, [r0] - ldr r1, _081AB058 - adds r0, r2, r1 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081AB06C - movs r6, #0 - ldr r3, _081AB05C - adds r0, r2, r3 - adds r0, r0, r7 - ldrb r0, [r0] - subs r0, #1 - cmp r6, r0 - bge _081AB026 - ldr r5, _081AB060 -_081AAFE6: - lsls r4, r6, #1 - adds r4, r4, r6 - lsls r4, r4, #3 - ldr r0, [r5] - adds r0, r0, r4 - mov r1, r8 - ldr r2, [r1] - lsls r1, r6, #2 - adds r1, r1, r2 - ldrh r1, [r1] - bl sub_081AB10C - ldr r0, _081AB064 - ldr r0, [r0] - lsls r1, r6, #3 - adds r1, r1, r0 - ldr r0, [r5] - adds r0, r0, r4 - str r0, [r1] - str r6, [r1, #4] - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r0, _081AB054 - ldr r0, [r0] - ldr r3, _081AB05C - adds r0, r0, r3 - adds r0, r0, r7 - ldrb r0, [r0] - subs r0, #1 - cmp r6, r0 - blt _081AAFE6 -_081AB026: - ldr r5, _081AB060 - lsls r4, r6, #1 - adds r4, r4, r6 - lsls r4, r4, #3 - ldr r0, [r5] - adds r0, r0, r4 - ldr r1, _081AB068 - bl StringCopy - ldr r0, _081AB064 - ldr r0, [r0] - lsls r1, r6, #3 - adds r1, r1, r0 - ldr r0, [r5] - adds r0, r0, r4 - str r0, [r1] - movs r0, #2 - rsbs r0, r0, #0 - str r0, [r1, #4] - b _081AB0BA - .align 2, 0 -_081AB050: .4byte gUnknown_2039A78 -_081AB054: .4byte gUnknown_203CB20 -_081AB058: .4byte 0x0000081B -_081AB05C: .4byte 0x00000829 -_081AB060: .4byte gUnknown_203CB44 -_081AB064: .4byte gUnknown_203CB40 -_081AB068: .4byte gUnknown_85C9448 -_081AB06C: - movs r6, #0 - ldr r4, _081AB0F0 - adds r0, r2, r4 - adds r0, r0, r7 - ldrb r0, [r0] - cmp r6, r0 - bhs _081AB0BA - ldr r5, _081AB0F4 -_081AB07C: - lsls r4, r6, #1 - adds r4, r4, r6 - lsls r4, r4, #3 - ldr r0, [r5] - adds r0, r0, r4 - mov r1, r8 - ldr r2, [r1] - lsls r1, r6, #2 - adds r1, r1, r2 - ldrh r1, [r1] - bl sub_081AB10C - ldr r0, _081AB0F8 - ldr r0, [r0] - lsls r1, r6, #3 - adds r1, r1, r0 - ldr r0, [r5] - adds r0, r0, r4 - str r0, [r1] - str r6, [r1, #4] - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r0, _081AB0FC - ldr r0, [r0] - ldr r3, _081AB0F0 - adds r0, r0, r3 - adds r0, r0, r7 - ldrb r0, [r0] - cmp r6, r0 - blo _081AB07C -_081AB0BA: - ldr r2, _081AB100 - adds r1, r2, #0 - ldr r0, _081AB104 - ldm r0!, {r3, r4, r5} - stm r1!, {r3, r4, r5} - ldm r0!, {r3, r4, r5} - stm r1!, {r3, r4, r5} - ldr r0, _081AB0FC - ldr r1, [r0] - ldr r4, _081AB0F0 - adds r0, r1, r4 - adds r0, r0, r7 - ldrb r0, [r0] - strh r0, [r2, #0xc] - ldr r0, _081AB0F8 - ldr r0, [r0] - str r0, [r2] - ldr r5, _081AB108 - adds r1, r1, r5 - adds r1, r1, r7 - ldrb r0, [r1] - strh r0, [r2, #0xe] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081AB0F0: .4byte 0x00000829 -_081AB0F4: .4byte gUnknown_203CB44 -_081AB0F8: .4byte gUnknown_203CB40 -_081AB0FC: .4byte gUnknown_203CB20 -_081AB100: .4byte gUnknown_3006050 -_081AB104: .4byte gUnknown_85DF7D4 -_081AB108: .4byte 0x0000082E - thumb_func_end LoadBagItemListBuffers - - thumb_func_start sub_081AB10C -sub_081AB10C: @ 0x081AB10C - push {r4, r5, r6, lr} - adds r6, r0, #0 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - ldr r0, _081AB12C - ldrb r0, [r0, #5] - cmp r0, #2 - beq _081AB130 - cmp r0, #3 - beq _081AB190 - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_080D5EC8 - b _081AB1AE - .align 2, 0 -_081AB12C: .4byte gUnknown_203CB24 -_081AB130: - ldr r4, _081AB164 - adds r0, r5, #0 - bl ItemIdToBattleMoveId - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0xd - ldr r0, _081AB168 - adds r1, r1, r0 - adds r0, r4, #0 - bl StringCopy - movs r0, #0xa9 - lsls r0, r0, #1 - cmp r5, r0 - bls _081AB178 - ldr r0, _081AB16C - ldr r2, _081AB170 - adds r1, r5, r2 - movs r2, #2 - movs r3, #1 - bl sub_080089D8 - ldr r1, _081AB174 - b _081AB1A8 - .align 2, 0 -_081AB164: .4byte gUnknown_2021C54 -_081AB168: .4byte gUnknown_82EACC4 -_081AB16C: .4byte gUnknown_2021C40 -_081AB170: .4byte 0xFFFFFEAE -_081AB174: .4byte gUnknown_85C9776 -_081AB178: - ldr r0, _081AB188 - ldr r2, _081AB18C - adds r1, r5, r2 - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - b _081AB1A6 - .align 2, 0 -_081AB188: .4byte gUnknown_2021C40 -_081AB18C: .4byte 0xFFFFFEE0 -_081AB190: - ldr r0, _081AB1B4 - adds r1, r5, #0 - subs r1, #0x84 - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - ldr r1, _081AB1B8 - adds r0, r5, #0 - bl sub_080D5EC8 -_081AB1A6: - ldr r1, _081AB1BC -_081AB1A8: - adds r0, r6, #0 - bl StringExpandPlaceholders -_081AB1AE: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081AB1B4: .4byte gUnknown_2021C40 -_081AB1B8: .4byte gUnknown_2021C54 -_081AB1BC: .4byte gUnknown_85C976F - thumb_func_end sub_081AB10C - - thumb_func_start BagMenu_MoveCursorCallback -BagMenu_MoveCursorCallback: @ 0x081AB1C0 - push {r4, r5, r6, lr} - adds r6, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #1 - beq _081AB1D6 - movs r0, #5 - bl sub_080A306C - bl ShakeBagVisual -_081AB1D6: - ldr r4, _081AB228 - ldr r1, [r4] - ldr r2, _081AB22C - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0xff - bne _081AB27C - adds r2, #1 - adds r0, r1, r2 - ldrb r1, [r0] - lsls r1, r1, #0x1a - lsrs r1, r1, #0x1e - movs r0, #1 - eors r0, r1 - bl RemoveBagItemIconSprite - movs r0, #2 - rsbs r0, r0, #0 - cmp r6, r0 - beq _081AB238 - ldr r0, _081AB230 - ldrb r0, [r0, #5] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r6, #0x10 - lsrs r1, r1, #0x10 - bl BagGetItemIdByPocketPosition - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, [r4] - ldr r2, _081AB234 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #0x1a - lsrs r1, r1, #0x1e - bl AddBagItemIconSprite - b _081AB24A - .align 2, 0 -_081AB228: .4byte gUnknown_203CB20 -_081AB22C: .4byte 0x0000081A -_081AB230: .4byte gUnknown_203CB24 -_081AB234: .4byte 0x0000081B -_081AB238: - ldr r0, _081AB284 - ldr r1, [r4] - ldr r2, _081AB288 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #0x1a - lsrs r1, r1, #0x1e - bl AddBagItemIconSprite -_081AB24A: - ldr r5, _081AB28C - ldr r2, [r5] - ldr r4, _081AB288 - adds r2, r2, r4 - ldrb r3, [r2] - lsls r0, r3, #0x1a - lsrs r0, r0, #0x1e - movs r1, #1 - eors r1, r0 - lsls r1, r1, #4 - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r5] - adds r0, r0, r4 - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _081AB27C - adds r0, r6, #0 - bl BagMenu_PrintDescription -_081AB27C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081AB284: .4byte 0x0000FFFF -_081AB288: .4byte 0x0000081B -_081AB28C: .4byte gUnknown_203CB20 - thumb_func_end BagMenu_MoveCursorCallback - - thumb_func_start PrintItemQuantityPlusGFX -PrintItemQuantityPlusGFX: @ 0x081AB290 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x14 - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - movs r0, #2 - rsbs r0, r0, #0 - cmp r4, r0 - bne _081AB2B0 - b _081AB3FA -_081AB2B0: - ldr r0, _081AB2D0 - ldr r0, [r0] - ldr r1, _081AB2D4 - adds r0, r0, r1 - ldrb r1, [r0] - cmp r1, #0xff - beq _081AB2E0 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - cmp r1, r0 - bne _081AB2D8 - adds r0, r7, #0 - movs r1, #2 - bl BagMenu_PrintCursor - b _081AB2E0 - .align 2, 0 -_081AB2D0: .4byte gUnknown_203CB20 -_081AB2D4: .4byte 0x0000081A -_081AB2D8: - adds r0, r7, #0 - movs r1, #0xff - bl BagMenu_PrintCursor -_081AB2E0: - ldr r5, _081AB368 - ldrb r0, [r5, #5] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r1, r4, #0 - bl BagGetItemIdByPocketPosition - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldrb r0, [r5, #5] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r4, #0 - bl BagGetQuantityByPocketPosition - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - mov sb, r4 - ldr r1, _081AB36C - adds r0, r6, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #7 - bhi _081AB32E - ldr r1, _081AB370 - subs r3, r7, #2 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - movs r0, #0x10 - str r0, [sp] - str r0, [sp, #4] - mov r0, r8 - movs r2, #8 - bl BlitBitmapToWindow -_081AB32E: - ldrb r0, [r5, #5] - cmp r0, #3 - bne _081AB380 - ldr r0, _081AB374 - adds r1, r4, #0 - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - ldr r4, _081AB378 - ldr r1, _081AB37C - adds r0, r4, #0 - bl StringExpandPlaceholders - str r7, [sp] - movs r1, #0 - str r1, [sp, #4] - str r1, [sp, #8] - movs r0, #0xff - str r0, [sp, #0xc] - str r1, [sp, #0x10] - mov r0, r8 - movs r1, #1 - adds r2, r4, #0 - movs r3, #0x58 - bl BagMenu_Print - b _081AB3FA - .align 2, 0 -_081AB368: .4byte gUnknown_203CB24 -_081AB36C: .4byte 0xFFFFFEAD -_081AB370: .4byte gUnknown_85DF99C -_081AB374: .4byte gUnknown_2021C40 -_081AB378: .4byte gUnknown_2021C7C -_081AB37C: .4byte gUnknown_85C943C -_081AB380: - cmp r0, #4 - beq _081AB3D0 - adds r0, r6, #0 - bl sub_080D6D68 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _081AB3D0 - ldr r0, _081AB3C4 - mov r1, sb - movs r2, #1 - movs r3, #2 - bl sub_080089D8 - ldr r4, _081AB3C8 - ldr r1, _081AB3CC - adds r0, r4, #0 - bl StringExpandPlaceholders - str r7, [sp] - str r5, [sp, #4] - str r5, [sp, #8] - movs r0, #0xff - str r0, [sp, #0xc] - str r5, [sp, #0x10] - mov r0, r8 - movs r1, #1 - adds r2, r4, #0 - movs r3, #0x60 - bl BagMenu_Print - b _081AB3FA - .align 2, 0 -_081AB3C4: .4byte gUnknown_2021C40 -_081AB3C8: .4byte gUnknown_2021C7C -_081AB3CC: .4byte gUnknown_85C943C -_081AB3D0: - ldr r0, _081AB408 - ldr r0, [r0] - ldr r1, _081AB40C - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0 - beq _081AB3FA - cmp r0, r6 - bne _081AB3FA - ldr r1, _081AB410 - subs r3, r7, #1 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - movs r0, #0x18 - str r0, [sp] - movs r0, #0x10 - str r0, [sp, #4] - mov r0, r8 - movs r2, #0x60 - bl BlitBitmapToWindow -_081AB3FA: - add sp, #0x14 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081AB408: .4byte gUnknown_3005AEC -_081AB40C: .4byte 0x00000496 -_081AB410: .4byte gUnknown_85DF8DC - thumb_func_end PrintItemQuantityPlusGFX - - thumb_func_start BagMenu_PrintDescription -BagMenu_PrintDescription: @ 0x081AB414 - push {r4, lr} - sub sp, #0x14 - adds r1, r0, #0 - movs r0, #2 - rsbs r0, r0, #0 - cmp r1, r0 - beq _081AB444 - ldr r0, _081AB440 - ldrb r0, [r0, #5] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl BagGetItemIdByPocketPosition - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_080D6D40 - adds r4, r0, #0 - b _081AB460 - .align 2, 0 -_081AB440: .4byte gUnknown_203CB24 -_081AB444: - ldr r0, _081AB48C - ldr r2, _081AB490 - ldr r1, _081AB494 - ldrb r1, [r1, #4] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl StringCopy - ldr r4, _081AB498 - ldr r1, _081AB49C - adds r0, r4, #0 - bl StringExpandPlaceholders -_081AB460: - movs r0, #1 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - str r0, [sp, #0xc] - str r0, [sp, #0x10] - movs r0, #1 - movs r1, #1 - adds r2, r4, #0 - movs r3, #0 - bl BagMenu_Print - add sp, #0x14 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081AB48C: .4byte gUnknown_2021C40 -_081AB490: .4byte gUnknown_85C96F8 -_081AB494: .4byte gUnknown_203CB24 -_081AB498: .4byte gUnknown_2021C7C -_081AB49C: .4byte gUnknown_85C9738 - thumb_func_end BagMenu_PrintDescription - - thumb_func_start sub_081AB4A0 -sub_081AB4A0: @ 0x081AB4A0 - push {lr} - sub sp, #0x20 - adds r2, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r2, r2, r1 - add r0, sp, #0x14 - adds r1, r2, #0 - movs r2, #9 - bl StringCopyN - add r1, sp, #0x14 - movs r0, #0xff - strb r0, [r1, #8] - movs r0, #2 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - str r0, [sp, #0xc] - movs r0, #1 - str r0, [sp, #0x10] - movs r0, #2 - movs r1, #1 - add r2, sp, #0x14 - movs r3, #0 - bl BagMenu_Print - add sp, #0x20 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081AB4A0 - - thumb_func_start BagMenu_PrintCursor_ -BagMenu_PrintCursor_: @ 0x081AB4E8 - push {r4, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl ListMenuGetYCoordForPrintingArrowCursor - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r4, #0 - bl BagMenu_PrintCursor - pop {r4} - pop {r0} - bx r0 - thumb_func_end BagMenu_PrintCursor_ - - thumb_func_start BagMenu_PrintCursor -BagMenu_PrintCursor: @ 0x081AB508 - push {r4, r5, lr} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #0xff - bne _081AB544 - movs r0, #1 - movs r1, #0 - bl sub_0800629C - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - movs r1, #1 - bl sub_0800629C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r4, [sp] - str r0, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - adds r3, r5, #0 - bl sub_08003A34 - b _081AB55A -_081AB544: - ldr r2, _081AB564 - str r5, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - str r0, [sp, #0xc] - str r1, [sp, #0x10] - movs r1, #1 - movs r3, #0 - bl BagMenu_Print -_081AB55A: - add sp, #0x14 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081AB564: .4byte gUnknown_85C9421 - thumb_func_end BagMenu_PrintCursor - - thumb_func_start bag_menu_add_pocket_scroll_arrow_indicators_maybe -bag_menu_add_pocket_scroll_arrow_indicators_maybe: @ 0x081AB568 - push {r4, r5, r6, lr} - sub sp, #0x10 - ldr r5, _081AB5C0 - ldr r4, [r5] - ldr r1, _081AB5C4 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, #0xff - bne _081AB5B6 - ldr r2, _081AB5C8 - ldrb r3, [r2, #5] - ldr r6, _081AB5CC - adds r0, r4, r6 - adds r0, r0, r3 - ldrb r1, [r0] - adds r6, #5 - adds r0, r4, r6 - adds r0, r0, r3 - ldrb r0, [r0] - subs r1, r1, r0 - str r1, [sp] - movs r0, #0x6e - str r0, [sp, #4] - str r0, [sp, #8] - ldrb r0, [r2, #5] - lsls r0, r0, #1 - adds r2, #0x12 - adds r0, r0, r2 - str r0, [sp, #0xc] - movs r0, #2 - movs r1, #0xac - movs r2, #0xc - movs r3, #0x94 - bl AddScrollIndicatorArrowPairParameterized - ldr r1, [r5] - ldr r2, _081AB5C4 - adds r1, r1, r2 - strb r0, [r1] -_081AB5B6: - add sp, #0x10 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081AB5C0: .4byte gUnknown_203CB20 -_081AB5C4: .4byte 0x0000081E -_081AB5C8: .4byte gUnknown_203CB24 -_081AB5CC: .4byte 0x00000829 - thumb_func_end bag_menu_add_pocket_scroll_arrow_indicators_maybe - - thumb_func_start sub_081AB5D0 -sub_081AB5D0: @ 0x081AB5D0 - push {r4, lr} - ldr r4, _081AB5F8 - ldr r0, [r4] - ldr r2, _081AB5FC - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, #0xff - beq _081AB5EE - bl RemoveScrollIndicatorArrowPair - ldr r0, [r4] - ldr r1, _081AB5FC - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] -_081AB5EE: - bl sub_081AB648 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081AB5F8: .4byte gUnknown_203CB20 -_081AB5FC: .4byte 0x0000081E - thumb_func_end sub_081AB5D0 - - thumb_func_start bag_menu_add_list_scroll_arrow_indicators_maybe -bag_menu_add_list_scroll_arrow_indicators_maybe: @ 0x081AB600 - push {r4, lr} - ldr r4, _081AB634 - ldr r2, [r4] - ldr r1, _081AB638 - adds r0, r2, r1 - ldrb r1, [r0] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - beq _081AB62E - ldr r1, _081AB63C - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #0xff - bne _081AB62E - ldr r0, _081AB640 - ldr r1, _081AB644 - bl AddScrollIndicatorArrowPair - ldr r1, [r4] - ldr r2, _081AB63C - adds r1, r1, r2 - strb r0, [r1] -_081AB62E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081AB634: .4byte gUnknown_203CB20 -_081AB638: .4byte 0x0000081B -_081AB63C: .4byte 0x0000081F -_081AB640: .4byte gUnknown_85DF8CC -_081AB644: .4byte gUnknown_203CB2A - thumb_func_end bag_menu_add_list_scroll_arrow_indicators_maybe - - thumb_func_start sub_081AB648 -sub_081AB648: @ 0x081AB648 - push {r4, lr} - ldr r4, _081AB66C - ldr r0, [r4] - ldr r2, _081AB670 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, #0xff - beq _081AB666 - bl RemoveScrollIndicatorArrowPair - ldr r0, [r4] - ldr r1, _081AB670 - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] -_081AB666: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081AB66C: .4byte gUnknown_203CB20 -_081AB670: .4byte 0x0000081F - thumb_func_end sub_081AB648 - - thumb_func_start sub_081AB674 -sub_081AB674: @ 0x081AB674 - push {lr} - ldr r0, _081AB698 - ldr r0, [r0] - bl Free - ldr r0, _081AB69C - ldr r0, [r0] - bl Free - bl FreeAllWindowBuffers - ldr r0, _081AB6A0 - ldr r0, [r0] - bl Free - pop {r0} - bx r0 - .align 2, 0 -_081AB698: .4byte gUnknown_203CB44 -_081AB69C: .4byte gUnknown_203CB40 -_081AB6A0: .4byte gUnknown_203CB20 - thumb_func_end sub_081AB674 - - thumb_func_start sub_081AB6A4 -sub_081AB6A4: @ 0x081AB6A4 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _081AB6D4 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081AB6D8 - str r1, [r0] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081AB6D4: .4byte gUnknown_3005B60 -_081AB6D8: .4byte TaskCloseBagMenu_2 - thumb_func_end sub_081AB6A4 - - thumb_func_start TaskCloseBagMenu_2 -TaskCloseBagMenu_2: @ 0x081AB6DC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _081AB720 - adds r2, r0, r1 - ldr r0, _081AB724 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081AB74C - ldrb r0, [r2] - ldr r4, _081AB728 - ldrb r2, [r4, #5] - lsls r2, r2, #1 - adds r1, r4, #0 - adds r1, #0x12 - adds r1, r2, r1 - adds r3, r4, #0 - adds r3, #8 - adds r2, r2, r3 - bl DestroyListMenuTask - ldr r0, _081AB72C - ldr r0, [r0] - ldr r0, [r0] - cmp r0, #0 - beq _081AB730 - bl SetMainCallback2 - b _081AB736 - .align 2, 0 -_081AB720: .4byte gUnknown_3005B68 -_081AB724: .4byte gUnknown_2037C74 -_081AB728: .4byte gUnknown_203CB24 -_081AB72C: .4byte gUnknown_203CB20 -_081AB730: - ldr r0, [r4] - bl SetMainCallback2 -_081AB736: - bl sub_081AB5D0 - bl ResetSpriteData - bl FreeAllSpritePalettes - bl sub_081AB674 - adds r0, r5, #0 - bl DestroyTask -_081AB74C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end TaskCloseBagMenu_2 - - thumb_func_start sub_081AB754 -sub_081AB754: @ 0x081AB754 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r5, #3 - ldr r0, _081AB770 - adds r4, r1, r0 - cmp r5, #3 - bgt _081AB774 - cmp r5, #2 - blt _081AB774 - adds r0, r4, #0 - bl SortBerriesOrTMHMs - b _081AB77A - .align 2, 0 -_081AB770: .4byte gUnknown_2039A78 -_081AB774: - adds r0, r4, #0 - bl CompactItemsInBagPocket -_081AB77A: - ldr r0, _081AB7F4 - ldr r1, [r0] - ldr r6, _081AB7F8 - adds r1, r1, r6 - adds r1, r1, r5 - movs r2, #0 - strb r2, [r1] - adds r3, r0, #0 - ldrb r0, [r4, #4] - cmp r2, r0 - bhs _081AB7BE - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, #0 - beq _081AB7BE - adds r7, r3, #0 -_081AB79A: - ldr r0, [r7] - adds r0, r0, r6 - adds r0, r0, r5 - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldrb r1, [r4, #4] - cmp r2, r1 - bhs _081AB7BE - ldr r0, [r4] - lsls r1, r2, #2 - adds r1, r1, r0 - ldrh r0, [r1] - cmp r0, #0 - bne _081AB79A -_081AB7BE: - ldr r2, [r3] - ldr r1, _081AB7FC - adds r0, r2, r1 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081AB7DA - ldr r0, _081AB7F8 - adds r1, r2, r0 - adds r1, r1, r5 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_081AB7DA: - ldr r1, [r3] - ldr r2, _081AB7F8 - adds r0, r1, r2 - adds r0, r0, r5 - ldrb r2, [r0] - cmp r2, #8 - bls _081AB804 - ldr r3, _081AB800 - adds r0, r1, r3 - adds r0, r0, r5 - movs r1, #8 - strb r1, [r0] - b _081AB80C - .align 2, 0 -_081AB7F4: .4byte gUnknown_203CB20 -_081AB7F8: .4byte 0x00000829 -_081AB7FC: .4byte 0x0000081B -_081AB800: .4byte 0x0000082E -_081AB804: - ldr r3, _081AB814 - adds r0, r1, r3 - adds r0, r0, r5 - strb r2, [r0] -_081AB80C: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081AB814: .4byte 0x0000082E - thumb_func_end sub_081AB754 - - thumb_func_start sub_081AB818 -sub_081AB818: @ 0x081AB818 - push {r4, lr} - movs r4, #0 -_081AB81C: - adds r0, r4, #0 - bl sub_081AB754 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #4 - bls _081AB81C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081AB818 - - thumb_func_start SetInitialScrollAndCursorPositions -SetInitialScrollAndCursorPositions: @ 0x081AB834 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #1 - ldr r2, _081AB864 - adds r4, r1, r2 - subs r2, #0xa - adds r1, r1, r2 - ldr r2, _081AB868 - ldr r3, [r2] - ldr r5, _081AB86C - adds r2, r3, r5 - adds r2, r2, r0 - ldrb r2, [r2] - subs r5, #5 - adds r3, r3, r5 - adds r3, r3, r0 - ldrb r3, [r3] - adds r0, r4, #0 - bl sub_08122268 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081AB864: .4byte gUnknown_203CB36 -_081AB868: .4byte gUnknown_203CB20 -_081AB86C: .4byte 0x0000082E - thumb_func_end SetInitialScrollAndCursorPositions - - thumb_func_start SetPocketListPositions -SetPocketListPositions: @ 0x081AB870 - push {r4, lr} - movs r4, #0 -_081AB874: - adds r0, r4, #0 - bl SetInitialScrollAndCursorPositions - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #4 - bls _081AB874 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetPocketListPositions - - thumb_func_start sub_081AB88C -sub_081AB88C: @ 0x081AB88C - push {r4, r5, r6, r7, lr} - sub sp, #4 - movs r5, #0 - ldr r6, _081AB8CC - adds r7, r6, #0 - subs r7, #0xa -_081AB898: - lsls r1, r5, #1 - adds r0, r1, r6 - adds r1, r1, r7 - ldr r2, _081AB8D0 - ldr r3, [r2] - ldr r4, _081AB8D4 - adds r2, r3, r4 - adds r2, r2, r5 - ldrb r2, [r2] - subs r4, #5 - adds r3, r3, r4 - adds r3, r3, r5 - ldrb r3, [r3] - movs r4, #8 - str r4, [sp] - bl sub_081222A4 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #4 - bls _081AB898 - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081AB8CC: .4byte gUnknown_203CB36 -_081AB8D0: .4byte gUnknown_203CB20 -_081AB8D4: .4byte 0x0000082E - thumb_func_end sub_081AB88C - - thumb_func_start GetItemListPosition -GetItemListPosition: @ 0x081AB8D8 - lsls r0, r0, #0x18 - ldr r1, _081AB8F4 - lsrs r0, r0, #0x17 - adds r2, r1, #0 - adds r2, #0x12 - adds r2, r0, r2 - adds r1, #8 - adds r0, r0, r1 - ldrb r0, [r0] - ldrb r2, [r2] - adds r0, r0, r2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bx lr - .align 2, 0 -_081AB8F4: .4byte gUnknown_203CB24 - thumb_func_end GetItemListPosition - - thumb_func_start DisplayItemMessage -DisplayItemMessage: @ 0x081AB8F8 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #0x10 - adds r5, r0, #0 - adds r6, r1, #0 - mov r8, r2 - mov sb, r3 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - ldr r0, _081AB964 - adds r4, r4, r0 - movs r0, #4 - bl AddItemMessageWindow - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x14] - movs r1, #0x11 - bl FillWindowPixelBuffer - bl GetPlayerTextSpeedDelay - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r4, #0x14] - str r6, [sp] - str r0, [sp, #4] - mov r0, r8 - str r0, [sp, #8] - mov r0, sb - str r0, [sp, #0xc] - adds r0, r5, #0 - movs r2, #0xa - movs r3, #0xd - bl DisplayMessageAndContinueTask - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081AB964: .4byte gUnknown_3005B68 - thumb_func_end DisplayItemMessage - - thumb_func_start BagMenu_InitListsMenu -BagMenu_InitListsMenu: @ 0x081AB968 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r5, r6, #2 - adds r5, r5, r6 - lsls r5, r5, #3 - ldr r0, _081AB9DC - adds r5, r5, r0 - ldr r7, _081AB9E0 - ldrb r4, [r7, #5] - lsls r4, r4, #1 - movs r0, #0x12 - adds r0, r0, r7 - mov r8, r0 - add r8, r4 - adds r0, r7, #0 - adds r0, #8 - adds r4, r4, r0 - movs r0, #4 - bl sub_081ADED0 - ldrb r0, [r5] - mov r1, r8 - adds r2, r4, #0 - bl DestroyListMenuTask - ldrb r0, [r7, #5] - bl sub_081AB754 - ldrb r0, [r7, #5] - bl SetInitialScrollAndCursorPositions - ldrb r0, [r7, #5] - bl LoadBagItemListBuffers - ldr r0, _081AB9E4 - mov r2, r8 - ldrh r1, [r2] - ldrh r2, [r4] - bl ListMenuInit - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5] - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r6, #0 - bl set_callback3_to_bag - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081AB9DC: .4byte gUnknown_3005B68 -_081AB9E0: .4byte gUnknown_203CB24 -_081AB9E4: .4byte gUnknown_3006050 - thumb_func_end BagMenu_InitListsMenu - - thumb_func_start GetItemName -GetItemName: @ 0x081AB9E8 - push {r4, r5, r6, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _081ABA00 - ldrb r0, [r0, #5] - cmp r0, #3 - bne _081ABA04 - movs r6, #4 - movs r3, #3 - b _081ABA08 - .align 2, 0 -_081ABA00: .4byte gUnknown_203CB24 -_081ABA04: - movs r6, #8 - movs r3, #2 -_081ABA08: - ldr r0, _081ABA44 - movs r1, #1 - movs r2, #2 - bl sub_080089D8 - ldr r4, _081ABA48 - ldr r1, _081ABA4C - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r5, #0 - bl BagMenu_AddWindow - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r3, r6, #0 - movs r1, #2 - str r1, [sp] - movs r1, #0 - str r1, [sp, #4] - str r1, [sp, #8] - movs r1, #1 - adds r2, r4, #0 - bl AddTextPrinterParameterized - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081ABA44: .4byte gUnknown_2021C40 -_081ABA48: .4byte gUnknown_2021C7C -_081ABA4C: .4byte gUnknown_85C943C - thumb_func_end GetItemName - - thumb_func_start sub_081ABA50 -sub_081ABA50: @ 0x081ABA50 - push {r4, r5, r6, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r0, _081ABA6C - ldrb r0, [r0, #5] - cmp r0, #3 - bne _081ABA70 - movs r5, #4 - movs r3, #3 - b _081ABA74 - .align 2, 0 -_081ABA6C: .4byte gUnknown_203CB24 -_081ABA70: - movs r5, #8 - movs r3, #2 -_081ABA74: - ldr r0, _081ABAA8 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r2, #2 - bl sub_080089D8 - ldr r4, _081ABAAC - ldr r1, _081ABAB0 - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r3, r5, #0 - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - adds r0, r6, #0 - movs r1, #1 - adds r2, r4, #0 - bl AddTextPrinterParameterized - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081ABAA8: .4byte gUnknown_2021C40 -_081ABAAC: .4byte gUnknown_2021C7C -_081ABAB0: .4byte gUnknown_85C943C - thumb_func_end sub_081ABA50 - - thumb_func_start sub_081ABAB4 -sub_081ABAB4: @ 0x081ABAB4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - lsls r0, r0, #2 - add r0, sb - lsls r0, r0, #3 - str r0, [sp] - ldr r1, _081ABB34 - adds r6, r0, r1 - ldr r5, _081ABB38 - ldrb r0, [r5, #5] - lsls r0, r0, #1 - adds r1, r5, #0 - adds r1, #0x12 - adds r7, r0, r1 - subs r1, #0xa - adds r0, r0, r1 - mov r8, r0 - bl sub_081221F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081ABAF2 - b _081ABC3E -_081ABAF2: - ldr r0, _081ABB3C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _081ABB00 - b _081ABC3E -_081ABB00: - bl GetSwitchBagPocketDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081ABB44 - cmp r0, #2 - beq _081ABB4C - ldr r0, _081ABB40 - ldrh r1, [r0, #0x2e] - movs r0, #4 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sl, r0 - cmp r0, #0 - beq _081ABB9C - bl sub_081AC084 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081ABB30 - b _081ABC3E -_081ABB30: - b _081ABB58 - .align 2, 0 -_081ABB34: .4byte gUnknown_3005B68 -_081ABB38: .4byte gUnknown_203CB24 -_081ABB3C: .4byte gUnknown_2037C74 -_081ABB40: .4byte gUnknown_3002360 -_081ABB44: - movs r1, #1 - rsbs r1, r1, #0 - mov r0, sb - b _081ABB50 -_081ABB4C: - mov r0, sb - movs r1, #1 -_081ABB50: - movs r2, #0 - bl Fill1PRecords - b _081ABC3E -_081ABB58: - ldrb r0, [r6] - adds r1, r7, #0 - mov r2, r8 - bl ListMenuGetScrollAndRow - ldrh r2, [r7] - mov r3, r8 - ldrh r0, [r3] - adds r2, r2, r0 - ldr r0, _081ABB90 - ldr r0, [r0] - ldr r1, _081ABB94 - ldr r3, _081ABB98 - adds r0, r0, r3 - ldrb r1, [r1, #5] - adds r0, r0, r1 - ldrb r0, [r0] - subs r0, #1 - cmp r2, r0 - beq _081ABC3E - movs r0, #5 - bl sub_080A306C - mov r0, sb - bl sub_081AC0AC - b _081ABC3E - .align 2, 0 -_081ABB90: .4byte gUnknown_203CB20 -_081ABB94: .4byte gUnknown_203CB24 -_081ABB98: .4byte 0x00000829 -_081ABB9C: - ldrb r0, [r6] - bl ListMenu_ProcessInput - adds r4, r0, #0 - ldrb r0, [r6] - adds r1, r7, #0 - mov r2, r8 - bl ListMenuGetScrollAndRow - movs r0, #2 - rsbs r0, r0, #0 - cmp r4, r0 - beq _081ABBBE - adds r0, #1 - cmp r4, r0 - bne _081ABBF4 - b _081ABC3E -_081ABBBE: - ldrb r0, [r5, #4] - cmp r0, #5 - bne _081ABBCC - movs r0, #0x20 - bl sub_080A306C - b _081ABC3E -_081ABBCC: - movs r0, #5 - bl sub_080A306C - ldr r0, _081ABBE8 - mov r1, sl - strh r1, [r0] - ldr r0, _081ABBEC - subs r0, #8 - ldr r3, [sp] - adds r0, r3, r0 - ldr r1, _081ABBF0 - str r1, [r0] - b _081ABC3E - .align 2, 0 -_081ABBE8: .4byte gUnknown_203CB48 -_081ABBEC: .4byte gUnknown_3005B68 -_081ABBF0: .4byte sub_081AB6A4 -_081ABBF4: - movs r0, #5 - bl sub_080A306C - bl sub_081AB5D0 - ldrb r0, [r6] - movs r1, #2 - bl BagMenu_PrintCursor_ - strh r4, [r6, #2] - ldrb r0, [r5, #5] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r1, r4, #0 - bl BagGetQuantityByPocketPosition - strh r0, [r6, #4] - ldrb r0, [r5, #5] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r4, #0 - bl BagGetItemIdByPocketPosition - ldr r1, _081ABC50 - strh r0, [r1] - ldr r1, _081ABC54 - ldrb r0, [r5, #4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - mov r0, sb - bl _call_via_r1 -_081ABC3E: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081ABC50: .4byte gUnknown_203CB48 -_081ABC54: .4byte gUnknown_85DF88C - thumb_func_end sub_081ABAB4 - - thumb_func_start set_callback3_to_bag -set_callback3_to_bag: @ 0x081ABC58 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl bag_menu_add_pocket_scroll_arrow_indicators_maybe - bl bag_menu_add_list_scroll_arrow_indicators_maybe - movs r0, #3 - bl ClearWindowTilemap - movs r0, #4 - bl ClearWindowTilemap - movs r0, #1 - bl PutWindowTilemap - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, _081ABC94 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081ABC98 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081ABC94: .4byte gUnknown_3005B60 -_081ABC98: .4byte sub_081ABAB4 - thumb_func_end set_callback3_to_bag - - thumb_func_start GetSwitchBagPocketDirection -GetSwitchBagPocketDirection: @ 0x081ABC9C - push {lr} - ldr r0, _081ABCD4 - ldr r0, [r0] - ldr r1, _081ABCD8 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _081ABCF6 - bl GetLRKeysState - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _081ABCDC - ldrh r1, [r0, #0x2e] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _081ABCC8 - cmp r2, #1 - bne _081ABCE0 -_081ABCC8: - movs r0, #5 - bl sub_080A306C - movs r0, #1 - b _081ABCF8 - .align 2, 0 -_081ABCD4: .4byte gUnknown_203CB20 -_081ABCD8: .4byte 0x0000081B -_081ABCDC: .4byte gUnknown_3002360 -_081ABCE0: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _081ABCEC - cmp r2, #2 - bne _081ABCF6 -_081ABCEC: - movs r0, #5 - bl sub_080A306C - movs r0, #2 - b _081ABCF8 -_081ABCF6: - movs r0, #0 -_081ABCF8: - pop {r1} - bx r1 - thumb_func_end GetSwitchBagPocketDirection - - thumb_func_start ChangeBagPocketId -ChangeBagPocketId: @ 0x081ABCFC - push {r4, lr} - adds r2, r0, #0 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - asrs r1, r1, #0x18 - cmp r1, #1 - bne _081ABD14 - ldrb r0, [r2] - cmp r0, #4 - bne _081ABD14 - movs r0, #0 - b _081ABD2C -_081ABD14: - lsls r0, r4, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - ldrb r3, [r2] - cmp r0, r1 - bne _081ABD2A - cmp r3, #0 - bne _081ABD2A - movs r0, #4 - b _081ABD2C -_081ABD2A: - adds r0, r3, r4 -_081ABD2C: - strb r0, [r2] - pop {r4} - pop {r0} - bx r0 - thumb_func_end ChangeBagPocketId - - thumb_func_start Fill1PRecords -Fill1PRecords: @ 0x081ABD34 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - lsls r2, r2, #0x10 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - ldr r1, _081ABDFC - adds r4, r0, r1 - movs r0, #0 - strh r0, [r4, #0x1a] - strh r0, [r4, #0x18] - strh r5, [r4, #0x16] - cmp r2, #0 - bne _081ABDB6 - movs r0, #0 - bl ClearWindowTilemap - movs r0, #1 - bl ClearWindowTilemap - ldrb r0, [r4] - ldr r3, _081ABE00 - ldrb r2, [r3, #5] - lsls r2, r2, #1 - adds r1, r3, #0 - adds r1, #0x12 - adds r1, r2, r1 - adds r3, #8 - adds r2, r2, r3 - bl DestroyListMenuTask - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - ldr r3, _081ABE04 - ldr r0, _081ABE08 - ldr r2, [r0] - ldr r1, _081ABE0C - adds r0, r2, r1 - ldrb r1, [r0] - lsls r1, r1, #0x1a - lsrs r1, r1, #0x1e - movs r0, #1 - eors r0, r1 - adds r2, r2, r0 - ldr r0, _081ABE10 - adds r2, r2, r0 - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - bl sub_081AB5D0 -_081ABDB6: - ldr r6, _081ABE00 - ldrb r1, [r6, #5] - add r0, sp, #8 - strb r1, [r0] - lsls r1, r5, #0x18 - asrs r1, r1, #0x18 - bl ChangeBagPocketId - lsls r0, r5, #0x10 - asrs r1, r0, #0x10 - mov r8, r0 - cmp r1, #1 - bne _081ABE1C - ldr r4, _081ABE14 - ldrb r0, [r6, #5] - lsls r1, r0, #3 - adds r1, r1, r0 - ldr r5, _081ABE18 - adds r1, r1, r5 - adds r0, r4, #0 - bl StringCopy - add r0, sp, #8 - ldrb r0, [r0] - lsls r1, r0, #3 - adds r1, r1, r0 - adds r1, r1, r5 - adds r0, r4, #0 - bl StringAppend - adds r0, r4, #0 - movs r1, #0 - bl sub_081AB4A0 - b _081ABE46 - .align 2, 0 -_081ABDFC: .4byte gUnknown_3005B68 -_081ABE00: .4byte gUnknown_203CB24 -_081ABE04: .4byte gUnknown_20205AC -_081ABE08: .4byte gUnknown_203CB20 -_081ABE0C: .4byte 0x0000081B -_081ABE10: .4byte 0x00000806 -_081ABE14: .4byte gUnknown_2021C7C -_081ABE18: .4byte gUnknown_85C9742 -_081ABE1C: - ldr r4, _081ABEAC - add r0, sp, #8 - ldrb r0, [r0] - lsls r1, r0, #3 - adds r1, r1, r0 - ldr r5, _081ABEB0 - adds r1, r1, r5 - adds r0, r4, #0 - bl StringCopy - ldrb r0, [r6, #5] - lsls r1, r0, #3 - adds r1, r1, r0 - adds r1, r1, r5 - adds r0, r4, #0 - bl StringAppend - adds r0, r4, #0 - movs r1, #8 - bl sub_081AB4A0 -_081ABE46: - ldr r0, _081ABEB4 - ldrb r0, [r0, #5] - movs r1, #0 - bl BagMenu_DrawPocketIndicatorSquare - add r0, sp, #8 - ldrb r0, [r0] - movs r1, #1 - bl BagMenu_DrawPocketIndicatorSquare - movs r0, #0xf - str r0, [sp] - movs r0, #0x10 - str r0, [sp, #4] - movs r0, #2 - movs r1, #0xb - movs r2, #0xe - movs r3, #2 - bl FillBgTilemapBufferRect_Palette0 - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - add r0, sp, #8 - ldrb r0, [r0] - movs r1, #1 - bl SetBagVisualPocketId - movs r0, #1 - bl RemoveBagSprite - mov r1, r8 - asrs r0, r1, #0x10 - bl AddSwitchPocketRotatingBallSprite - ldr r1, _081ABEB8 - ldr r2, _081ABEBC - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r2 - ldr r2, [r0] - adds r0, r7, #0 - bl SetTaskFuncWithFollowupFunc - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081ABEAC: .4byte gUnknown_2021C7C -_081ABEB0: .4byte gUnknown_85C9742 -_081ABEB4: .4byte gUnknown_203CB24 -_081ABEB8: .4byte sub_081ABEC0 -_081ABEBC: .4byte gUnknown_3005B60 - thumb_func_end Fill1PRecords - - thumb_func_start sub_081ABEC0 -sub_081ABEC0: @ 0x081ABEC0 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - ldr r1, _081ABEF8 - adds r6, r0, r1 - bl sub_081221B8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081ABF38 - bl IsWallysBag - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081ABF38 - bl GetSwitchBagPocketDirection - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081ABEFC - cmp r0, #2 - beq _081ABF18 - b _081ABF38 - .align 2, 0 -_081ABEF8: .4byte gUnknown_3005B68 -_081ABEFC: - ldr r0, _081ABF14 - movs r1, #0x16 - ldrsb r1, [r6, r1] - bl ChangeBagPocketId - adds r0, r7, #0 - bl SwitchTaskToFollowupFunc - movs r1, #1 - rsbs r1, r1, #0 - adds r0, r7, #0 - b _081ABF2C - .align 2, 0 -_081ABF14: .4byte gUnknown_203CB29 -_081ABF18: - ldr r0, _081ABF34 - movs r1, #0x16 - ldrsb r1, [r6, r1] - bl ChangeBagPocketId - adds r0, r7, #0 - bl SwitchTaskToFollowupFunc - adds r0, r7, #0 - movs r1, #1 -_081ABF2C: - movs r2, #1 - bl Fill1PRecords - b _081ABFF2 - .align 2, 0 -_081ABF34: .4byte gUnknown_203CB29 -_081ABF38: - movs r1, #0x1a - ldrsh r0, [r6, r1] - cmp r0, #0 - beq _081ABF46 - cmp r0, #1 - beq _081ABFA0 - b _081ABFF2 -_081ABF46: - ldrb r0, [r6, #0x18] - bl sub_081AC000 - ldrh r0, [r6, #0x18] - adds r1, r0, #1 - strh r1, [r6, #0x18] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _081ABF8A - movs r2, #0x16 - ldrsh r0, [r6, r2] - cmp r0, #1 - bne _081ABF78 - ldr r0, _081ABF74 - lsls r1, r1, #0x10 - asrs r1, r1, #0x11 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl sub_081AB4A0 - b _081ABF8A - .align 2, 0 -_081ABF74: .4byte gUnknown_2021C7C -_081ABF78: - ldr r0, _081ABF9C - lsls r2, r1, #0x10 - asrs r2, r2, #0x11 - movs r1, #8 - subs r1, r1, r2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl sub_081AB4A0 -_081ABF8A: - movs r1, #0x18 - ldrsh r0, [r6, r1] - cmp r0, #0x10 - bne _081ABFF2 - ldrh r0, [r6, #0x1a] - adds r0, #1 - strh r0, [r6, #0x1a] - b _081ABFF2 - .align 2, 0 -_081ABF9C: .4byte gUnknown_2021C7C -_081ABFA0: - ldr r4, _081ABFF8 - movs r1, #0x16 - ldrsb r1, [r6, r1] - adds r0, r4, #0 - bl ChangeBagPocketId - subs r5, r4, #5 - ldrb r0, [r5, #5] - bl LoadBagItemListBuffers - ldr r0, _081ABFFC - ldrb r2, [r5, #5] - lsls r2, r2, #1 - adds r1, r4, #0 - adds r1, #0xd - adds r1, r2, r1 - ldrh r1, [r1] - adds r4, #3 - adds r2, r2, r4 - ldrh r2, [r2] - bl ListMenuInit - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r6] - movs r0, #1 - bl PutWindowTilemap - movs r0, #2 - bl PutWindowTilemap - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - bl bag_menu_add_pocket_scroll_arrow_indicators_maybe - bl bag_menu_add_list_scroll_arrow_indicators_maybe - adds r0, r7, #0 - bl SwitchTaskToFollowupFunc -_081ABFF2: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081ABFF8: .4byte gUnknown_203CB29 -_081ABFFC: .4byte gUnknown_3006050 - thumb_func_end sub_081ABEC0 - - thumb_func_start sub_081AC000 -sub_081AC000: @ 0x081AC000 - push {lr} - sub sp, #8 - adds r3, r0, #0 - lsls r3, r3, #0x18 - movs r0, #0x80 - lsls r0, r0, #0x12 - adds r3, r3, r0 - lsrs r3, r3, #0x18 - movs r0, #0xf - str r0, [sp] - movs r0, #1 - str r0, [sp, #4] - movs r0, #2 - movs r1, #0x11 - movs r2, #0xe - bl FillBgTilemapBufferRect_Palette0 - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - add sp, #8 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081AC000 - - thumb_func_start BagMenu_DrawPocketIndicatorSquare -BagMenu_DrawPocketIndicatorSquare: @ 0x081AC030 - push {lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - cmp r1, #0 - bne _081AC05C - ldr r1, _081AC058 - adds r2, r0, #5 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r0, #1 - str r0, [sp] - str r0, [sp, #4] - movs r0, #2 - movs r3, #3 - bl FillBgTilemapBufferRect_Palette0 - b _081AC072 - .align 2, 0 -_081AC058: .4byte 0x00001017 -_081AC05C: - ldr r1, _081AC080 - adds r2, r0, #5 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r0, #1 - str r0, [sp] - str r0, [sp, #4] - movs r0, #2 - movs r3, #3 - bl FillBgTilemapBufferRect_Palette0 -_081AC072: - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - add sp, #8 - pop {r0} - bx r0 - .align 2, 0 -_081AC080: .4byte 0x0000102B - thumb_func_end BagMenu_DrawPocketIndicatorSquare - - thumb_func_start sub_081AC084 -sub_081AC084: @ 0x081AC084 - push {lr} - ldr r1, _081AC0A0 - ldrb r0, [r1, #4] - cmp r0, #1 - bhi _081AC0A4 - ldrb r0, [r1, #5] - subs r0, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _081AC0A4 - movs r0, #1 - b _081AC0A6 - .align 2, 0 -_081AC0A0: .4byte gUnknown_203CB24 -_081AC0A4: - movs r0, #0 -_081AC0A6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081AC084 - - thumb_func_start sub_081AC0AC -sub_081AC0AC: @ 0x081AC0AC - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _081AC164 - mov sb, r0 - adds r6, r4, r0 - ldrb r0, [r6] - movs r1, #0x10 - movs r2, #1 - bl ListMenuSetUnkIndicatorsStructField - ldr r3, _081AC168 - ldrb r0, [r3, #5] - lsls r0, r0, #1 - adds r2, r3, #0 - adds r2, #0x12 - adds r2, r0, r2 - adds r1, r3, #0 - adds r1, #8 - adds r0, r0, r1 - ldrh r1, [r0] - ldrh r2, [r2] - adds r1, r1, r2 - strh r1, [r6, #2] - ldr r0, _081AC16C - ldr r0, [r0] - ldr r2, _081AC170 - adds r0, r0, r2 - movs r5, #0 - strb r1, [r0] - ldrb r0, [r3, #5] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r6, #2] - bl BagGetItemIdByPocketPosition - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _081AC174 - bl sub_080D5EC8 - ldr r0, _081AC178 - mov r8, r0 - ldr r1, _081AC17C - bl StringExpandPlaceholders - movs r0, #1 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #2 - str r0, [sp] - str r5, [sp, #4] - str r5, [sp, #8] - str r5, [sp, #0xc] - str r5, [sp, #0x10] - movs r0, #1 - movs r1, #1 - mov r2, r8 - movs r3, #0 - bl BagMenu_Print - ldrb r0, [r6, #2] - bl sub_080D4870 - bl sub_081AB648 - ldrb r0, [r6] - movs r1, #2 - bl BagMenu_PrintCursor_ - movs r2, #8 - rsbs r2, r2, #0 - add sb, r2 - add r4, sb - ldr r0, _081AC180 - str r0, [r4] - add sp, #0x14 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081AC164: .4byte gUnknown_3005B68 -_081AC168: .4byte gUnknown_203CB24 -_081AC16C: .4byte gUnknown_203CB20 -_081AC170: .4byte 0x0000081A -_081AC174: .4byte gUnknown_2021C40 -_081AC178: .4byte gUnknown_2021C7C -_081AC17C: .4byte gUnknown_85C947F -_081AC180: .4byte sub_081AC184 - thumb_func_end sub_081AC0AC - - thumb_func_start sub_081AC184 -sub_081AC184: @ 0x081AC184 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _081AC1D0 - adds r4, r0, r1 - bl sub_081221F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081AC252 - ldr r0, _081AC1D4 - mov r8, r0 - ldrh r1, [r0, #0x2e] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _081AC1DC - movs r0, #5 - bl sub_080A306C - ldrb r0, [r4] - ldr r3, _081AC1D8 - ldrb r2, [r3, #5] - lsls r2, r2, #1 - adds r1, r3, #0 - adds r1, #0x12 - adds r1, r2, r1 - adds r3, #8 - adds r2, r2, r3 - bl ListMenuGetScrollAndRow - b _081AC236 - .align 2, 0 -_081AC1D0: .4byte gUnknown_3005B68 -_081AC1D4: .4byte gUnknown_3002360 -_081AC1D8: .4byte gUnknown_203CB24 -_081AC1DC: - ldrb r0, [r4] - bl ListMenu_ProcessInput - adds r7, r0, #0 - ldrb r0, [r4] - ldr r5, _081AC220 - ldrb r2, [r5, #5] - lsls r2, r2, #1 - adds r1, r5, #0 - adds r1, #0x12 - adds r1, r2, r1 - adds r4, r5, #0 - adds r4, #8 - adds r2, r2, r4 - bl ListMenuGetScrollAndRow - movs r0, #0 - bl sub_080D484C - ldrb r0, [r5, #5] - lsls r0, r0, #1 - adds r0, r0, r4 - ldrb r0, [r0] - bl sub_080D4870 - movs r0, #2 - rsbs r0, r0, #0 - cmp r7, r0 - beq _081AC224 - adds r0, #1 - cmp r7, r0 - bne _081AC246 - b _081AC252 - .align 2, 0 -_081AC220: .4byte gUnknown_203CB24 -_081AC224: - movs r0, #5 - bl sub_080A306C - mov r0, r8 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081AC23E -_081AC236: - adds r0, r6, #0 - bl sub_081AC25C - b _081AC252 -_081AC23E: - adds r0, r6, #0 - bl sub_081AC354 - b _081AC252 -_081AC246: - movs r0, #5 - bl sub_080A306C - adds r0, r6, #0 - bl sub_081AC25C -_081AC252: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_081AC184 - - thumb_func_start sub_081AC25C -sub_081AC25C: @ 0x081AC25C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #3 - mov sl, r0 - ldr r0, _081AC2B0 - add r0, sl - mov sb, r0 - ldr r5, _081AC2B4 - ldrb r6, [r5, #5] - lsls r1, r6, #1 - adds r0, r5, #0 - adds r0, #0x12 - adds r0, r0, r1 - mov r8, r0 - ldr r2, _081AC2B8 - adds r7, r1, r2 - ldrh r0, [r7] - mov r1, r8 - ldrh r1, [r1] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - mov r0, sb - movs r1, #2 - ldrsh r2, [r0, r1] - cmp r2, r4 - beq _081AC2A6 - subs r0, r4, #1 - cmp r2, r0 - bne _081AC2BC -_081AC2A6: - adds r0, r3, #0 - bl sub_081AC354 - b _081AC32A - .align 2, 0 -_081AC2B0: .4byte gUnknown_3005B68 -_081AC2B4: .4byte gUnknown_203CB24 -_081AC2B8: .4byte gUnknown_203CB2C -_081AC2BC: - ldr r1, _081AC338 - lsls r0, r6, #3 - adds r0, r0, r1 - ldr r0, [r0] - adds r1, r2, #0 - adds r2, r4, #0 - bl MoveItemSlotInList - ldr r0, _081AC33C - ldr r0, [r0] - ldr r2, _081AC340 - adds r0, r0, r2 - movs r1, #0xff - strb r1, [r0] - mov r1, sb - ldrb r0, [r1] - mov r1, r8 - adds r2, r7, #0 - bl DestroyListMenuTask - mov r2, sb - movs r1, #2 - ldrsh r0, [r2, r1] - cmp r0, r4 - bge _081AC2FC - ldrb r1, [r5, #5] - lsls r1, r1, #1 - ldr r2, _081AC344 - adds r1, r1, r2 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] -_081AC2FC: - ldrb r0, [r5, #5] - bl LoadBagItemListBuffers - ldr r0, _081AC348 - mov r2, r8 - ldrh r1, [r2] - ldrh r2, [r7] - bl ListMenuInit - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, sb - strh r0, [r1] - movs r0, #1 - bl sub_080D484C - bl bag_menu_add_list_scroll_arrow_indicators_maybe - ldr r0, _081AC34C - subs r0, #8 - add r0, sl - ldr r1, _081AC350 - str r1, [r0] -_081AC32A: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081AC338: .4byte gUnknown_2039A78 -_081AC33C: .4byte gUnknown_203CB20 -_081AC340: .4byte 0x0000081A -_081AC344: .4byte gUnknown_203CB2C -_081AC348: .4byte gUnknown_3006050 -_081AC34C: .4byte gUnknown_3005B68 -_081AC350: .4byte sub_081ABAB4 - thumb_func_end sub_081AC25C - - thumb_func_start sub_081AC354 -sub_081AC354: @ 0x081AC354 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - mov sb, r1 - ldr r0, _081AC3F0 - mov sl, r0 - mov r7, sb - add r7, sl - ldr r4, _081AC3F4 - ldrb r0, [r4, #5] - lsls r0, r0, #1 - adds r1, r4, #0 - adds r1, #0x12 - adds r6, r0, r1 - movs r1, #8 - adds r1, r1, r4 - mov r8, r1 - adds r5, r0, r1 - ldr r0, _081AC3F8 - ldr r0, [r0] - ldr r1, _081AC3FC - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] - ldrb r0, [r7] - adds r1, r6, #0 - adds r2, r5, #0 - bl DestroyListMenuTask - movs r0, #2 - ldrsh r2, [r7, r0] - ldrh r0, [r6] - ldrh r1, [r5] - adds r0, r0, r1 - cmp r2, r0 - bge _081AC3B6 - ldrb r1, [r4, #5] - lsls r1, r1, #1 - add r1, r8 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] -_081AC3B6: - ldrb r0, [r4, #5] - bl LoadBagItemListBuffers - ldr r0, _081AC400 - ldrh r1, [r6] - ldrh r2, [r5] - bl ListMenuInit - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r7] - movs r0, #1 - bl sub_080D484C - bl bag_menu_add_list_scroll_arrow_indicators_maybe - mov r0, sl - subs r0, #8 - add r0, sb - ldr r1, _081AC404 - str r1, [r0] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081AC3F0: .4byte gUnknown_3005B68 -_081AC3F4: .4byte gUnknown_203CB24 -_081AC3F8: .4byte gUnknown_203CB20 -_081AC3FC: .4byte 0x0000081A -_081AC400: .4byte gUnknown_3006050 -_081AC404: .4byte sub_081ABAB4 - thumb_func_end sub_081AC354 - - thumb_func_start sub_081AC408 -sub_081AC408: @ 0x081AC408 - push {r4, r5, lr} - sub sp, #0x14 - ldr r0, _081AC424 - ldrb r0, [r0, #4] - subs r0, #1 - cmp r0, #9 - bls _081AC418 - b _081AC5F0 -_081AC418: - lsls r0, r0, #2 - ldr r1, _081AC428 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081AC424: .4byte gUnknown_203CB24 -_081AC428: .4byte _081AC42C -_081AC42C: @ jump table - .4byte _081AC454 @ case 0 - .4byte _081AC5F0 @ case 1 - .4byte _081AC5F0 @ case 2 - .4byte _081AC5F0 @ case 3 - .4byte _081AC4AC @ case 4 - .4byte _081AC5F0 @ case 5 - .4byte _081AC530 @ case 6 - .4byte _081AC590 @ case 7 - .4byte _081AC4D0 @ case 8 - .4byte _081AC454 @ case 9 -_081AC454: - ldr r0, _081AC478 - ldrh r0, [r0] - bl sub_080D6E20 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081AC488 - ldr r0, _081AC47C - ldr r1, [r0] - movs r0, #0x82 - lsls r0, r0, #4 - adds r2, r1, r0 - ldr r0, _081AC480 - str r0, [r2] - ldr r0, _081AC484 - adds r1, r1, r0 - movs r0, #2 - b _081AC7D4 - .align 2, 0 -_081AC478: .4byte gUnknown_203CB48 -_081AC47C: .4byte gUnknown_203CB20 -_081AC480: .4byte gUnknown_85DF87A -_081AC484: .4byte 0x00000828 -_081AC488: - ldr r0, _081AC4A0 - ldr r1, [r0] - movs r0, #0x82 - lsls r0, r0, #4 - adds r2, r1, r0 - ldr r0, _081AC4A4 - str r0, [r2] - ldr r0, _081AC4A8 - adds r1, r1, r0 - movs r0, #1 - b _081AC7D4 - .align 2, 0 -_081AC4A0: .4byte gUnknown_203CB20 -_081AC4A4: .4byte gUnknown_85DF87E -_081AC4A8: .4byte 0x00000828 -_081AC4AC: - ldr r0, _081AC4C4 - ldr r1, [r0] - movs r0, #0x82 - lsls r0, r0, #4 - adds r2, r1, r0 - ldr r0, _081AC4C8 - str r0, [r2] - ldr r0, _081AC4CC - adds r1, r1, r0 - movs r0, #4 - b _081AC7D4 - .align 2, 0 -_081AC4C4: .4byte gUnknown_203CB20 -_081AC4C8: .4byte gUnknown_85DF87F -_081AC4CC: .4byte 0x00000828 -_081AC4D0: - ldr r4, _081AC4FC - ldrh r0, [r4] - bl sub_080D6D68 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081AC50C - ldrh r0, [r4] - cmp r0, #0xaf - beq _081AC50C - ldr r0, _081AC500 - ldr r1, [r0] - movs r0, #0x82 - lsls r0, r0, #4 - adds r2, r1, r0 - ldr r0, _081AC504 - str r0, [r2] - ldr r0, _081AC508 - adds r1, r1, r0 - movs r0, #2 - b _081AC7D4 - .align 2, 0 -_081AC4FC: .4byte gUnknown_203CB48 -_081AC500: .4byte gUnknown_203CB20 -_081AC504: .4byte gUnknown_85DF883 -_081AC508: .4byte 0x00000828 -_081AC50C: - ldr r0, _081AC524 - ldr r1, [r0] - movs r0, #0x82 - lsls r0, r0, #4 - adds r2, r1, r0 - ldr r0, _081AC528 - str r0, [r2] - ldr r0, _081AC52C - adds r1, r1, r0 - movs r0, #1 - b _081AC7D4 - .align 2, 0 -_081AC524: .4byte gUnknown_203CB20 -_081AC528: .4byte gUnknown_85DF87E -_081AC52C: .4byte 0x00000828 -_081AC530: - ldr r4, _081AC55C - ldrh r0, [r4] - bl sub_080D6D68 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081AC56C - ldrh r0, [r4] - cmp r0, #0xaf - beq _081AC56C - ldr r0, _081AC560 - ldr r1, [r0] - movs r0, #0x82 - lsls r0, r0, #4 - adds r2, r1, r0 - ldr r0, _081AC564 - str r0, [r2] - ldr r0, _081AC568 - adds r1, r1, r0 - movs r0, #2 - b _081AC7D4 - .align 2, 0 -_081AC55C: .4byte gUnknown_203CB48 -_081AC560: .4byte gUnknown_203CB20 -_081AC564: .4byte gUnknown_85DF885 -_081AC568: .4byte 0x00000828 -_081AC56C: - ldr r0, _081AC584 - ldr r1, [r0] - movs r0, #0x82 - lsls r0, r0, #4 - adds r2, r1, r0 - ldr r0, _081AC588 - str r0, [r2] - ldr r0, _081AC58C - adds r1, r1, r0 - movs r0, #1 - b _081AC7D4 - .align 2, 0 -_081AC584: .4byte gUnknown_203CB20 -_081AC588: .4byte gUnknown_85DF87E -_081AC58C: .4byte 0x00000828 -_081AC590: - ldr r4, _081AC5BC - ldrh r0, [r4] - bl sub_080D6D68 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081AC5CC - ldrh r0, [r4] - cmp r0, #0xaf - beq _081AC5CC - ldr r0, _081AC5C0 - ldr r1, [r0] - movs r0, #0x82 - lsls r0, r0, #4 - adds r2, r1, r0 - ldr r0, _081AC5C4 - str r0, [r2] - ldr r0, _081AC5C8 - adds r1, r1, r0 - movs r0, #2 - b _081AC7D4 - .align 2, 0 -_081AC5BC: .4byte gUnknown_203CB48 -_081AC5C0: .4byte gUnknown_203CB20 -_081AC5C4: .4byte gUnknown_85DF887 -_081AC5C8: .4byte 0x00000828 -_081AC5CC: - ldr r0, _081AC5E4 - ldr r1, [r0] - movs r0, #0x82 - lsls r0, r0, #4 - adds r2, r1, r0 - ldr r0, _081AC5E8 - str r0, [r2] - ldr r0, _081AC5EC - adds r1, r1, r0 - movs r0, #1 - b _081AC7D4 - .align 2, 0 -_081AC5E4: .4byte gUnknown_203CB20 -_081AC5E8: .4byte gUnknown_85DF87E -_081AC5EC: .4byte 0x00000828 -_081AC5F0: - bl sub_081221B8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081AC604 - bl InUnionRoom - cmp r0, #1 - bne _081AC668 -_081AC604: - ldr r0, _081AC630 - ldrb r0, [r0, #5] - cmp r0, #4 - beq _081AC61A - ldr r0, _081AC634 - ldrh r0, [r0] - bl sub_08122154 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081AC644 -_081AC61A: - ldr r0, _081AC638 - ldr r1, [r0] - movs r0, #0x82 - lsls r0, r0, #4 - adds r2, r1, r0 - ldr r0, _081AC63C - str r0, [r2] - ldr r0, _081AC640 - adds r1, r1, r0 - movs r0, #1 - b _081AC7D4 - .align 2, 0 -_081AC630: .4byte gUnknown_203CB24 -_081AC634: .4byte gUnknown_203CB48 -_081AC638: .4byte gUnknown_203CB20 -_081AC63C: .4byte gUnknown_85DF87E -_081AC640: .4byte 0x00000828 -_081AC644: - ldr r0, _081AC65C - ldr r1, [r0] - movs r0, #0x82 - lsls r0, r0, #4 - adds r2, r1, r0 - ldr r0, _081AC660 - str r0, [r2] - ldr r0, _081AC664 - adds r1, r1, r0 - movs r0, #2 - b _081AC7D4 - .align 2, 0 -_081AC65C: .4byte gUnknown_203CB20 -_081AC660: .4byte gUnknown_85DF87C -_081AC664: .4byte 0x00000828 -_081AC668: - ldr r0, _081AC67C - ldrb r0, [r0, #5] - cmp r0, #4 - bls _081AC672 - b _081AC7D6 -_081AC672: - lsls r0, r0, #2 - ldr r1, _081AC680 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081AC67C: .4byte gUnknown_203CB24 -_081AC680: .4byte _081AC684 -_081AC684: @ jump table - .4byte _081AC698 @ case 0 - .4byte _081AC778 @ case 1 - .4byte _081AC79C @ case 2 - .4byte _081AC7C0 @ case 3 - .4byte _081AC6F0 @ case 4 -_081AC698: - ldr r4, _081AC6DC - ldr r1, [r4] - movs r0, #0x82 - lsls r0, r0, #4 - adds r2, r1, r0 - ldr r3, _081AC6E0 - adds r0, r1, r3 - str r0, [r2] - ldr r0, _081AC6E4 - adds r1, r1, r0 - movs r0, #4 - strb r0, [r1] - ldr r0, [r4] - adds r0, r0, r3 - ldr r1, _081AC6E8 - movs r2, #4 - bl memcpy - ldr r0, _081AC6EC - ldrh r0, [r0] - bl ItemIsMail - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081AC6CE - b _081AC7D6 -_081AC6CE: - ldr r0, [r4] - ldr r1, _081AC6E0 - adds r0, r0, r1 - movs r1, #6 - strb r1, [r0] - b _081AC7D6 - .align 2, 0 -_081AC6DC: .4byte gUnknown_203CB20 -_081AC6E0: .4byte 0x00000824 -_081AC6E4: .4byte 0x00000828 -_081AC6E8: .4byte gUnknown_85DF864 -_081AC6EC: .4byte gUnknown_203CB48 -_081AC6F0: - ldr r4, _081AC754 - ldr r1, [r4] - movs r0, #0x82 - lsls r0, r0, #4 - adds r2, r1, r0 - ldr r5, _081AC758 - adds r0, r1, r5 - str r0, [r2] - ldr r0, _081AC75C - adds r1, r1, r0 - movs r0, #4 - strb r0, [r1] - ldr r0, [r4] - adds r0, r0, r5 - ldr r1, _081AC760 - movs r2, #4 - bl memcpy - ldr r0, _081AC764 - ldr r0, [r0] - ldr r1, _081AC768 - adds r0, r0, r1 - ldr r2, _081AC76C - ldrh r0, [r0] - ldrh r1, [r2] - cmp r0, r1 - bne _081AC730 - ldr r0, [r4] - ldr r1, _081AC770 - adds r0, r0, r1 - movs r1, #8 - strb r1, [r0] -_081AC730: - ldrh r1, [r2] - ldr r0, _081AC774 - cmp r1, r0 - beq _081AC73E - adds r0, #0xd - cmp r1, r0 - bne _081AC7D6 -_081AC73E: - movs r0, #6 - bl TestPlayerAvatarFlags - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081AC7D6 - ldr r0, [r4] - adds r0, r0, r5 - movs r1, #7 - strb r1, [r0] - b _081AC7D6 - .align 2, 0 -_081AC754: .4byte gUnknown_203CB20 -_081AC758: .4byte 0x00000824 -_081AC75C: .4byte 0x00000828 -_081AC760: .4byte gUnknown_85DF868 -_081AC764: .4byte gUnknown_3005AEC -_081AC768: .4byte 0x00000496 -_081AC76C: .4byte gUnknown_203CB48 -_081AC770: .4byte 0x00000825 -_081AC774: .4byte 0x00000103 -_081AC778: - ldr r0, _081AC790 - ldr r1, [r0] - movs r0, #0x82 - lsls r0, r0, #4 - adds r2, r1, r0 - ldr r0, _081AC794 - str r0, [r2] - ldr r0, _081AC798 - adds r1, r1, r0 - movs r0, #4 - b _081AC7D4 - .align 2, 0 -_081AC790: .4byte gUnknown_203CB20 -_081AC794: .4byte gUnknown_85DF86C -_081AC798: .4byte 0x00000828 -_081AC79C: - ldr r0, _081AC7B4 - ldr r1, [r0] - movs r0, #0x82 - lsls r0, r0, #4 - adds r2, r1, r0 - ldr r0, _081AC7B8 - str r0, [r2] - ldr r0, _081AC7BC - adds r1, r1, r0 - movs r0, #4 - b _081AC7D4 - .align 2, 0 -_081AC7B4: .4byte gUnknown_203CB20 -_081AC7B8: .4byte gUnknown_85DF870 -_081AC7BC: .4byte 0x00000828 -_081AC7C0: - ldr r0, _081AC800 - ldr r1, [r0] - movs r0, #0x82 - lsls r0, r0, #4 - adds r2, r1, r0 - ldr r0, _081AC804 - str r0, [r2] - ldr r0, _081AC808 - adds r1, r1, r0 - movs r0, #6 -_081AC7D4: - strb r0, [r1] -_081AC7D6: - ldr r0, _081AC80C - ldrb r0, [r0, #5] - cmp r0, #2 - bne _081AC814 - movs r0, #1 - bl ClearWindowTilemap - ldr r0, _081AC810 - ldrh r0, [r0] - bl PrintTMHMMoveData - movs r0, #3 - bl PutWindowTilemap - movs r0, #4 - bl PutWindowTilemap - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - b _081AC84A - .align 2, 0 -_081AC800: .4byte gUnknown_203CB20 -_081AC804: .4byte gUnknown_85DF874 -_081AC808: .4byte 0x00000828 -_081AC80C: .4byte gUnknown_203CB24 -_081AC810: .4byte gUnknown_203CB48 -_081AC814: - ldr r0, _081AC85C - ldrh r0, [r0] - ldr r1, _081AC860 - bl sub_080D5EC8 - ldr r4, _081AC864 - ldr r1, _081AC868 - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #1 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - str r0, [sp, #0xc] - str r0, [sp, #0x10] - movs r0, #1 - movs r1, #1 - adds r2, r4, #0 - movs r3, #0 - bl BagMenu_Print -_081AC84A: - ldr r0, _081AC86C - ldr r0, [r0] - ldr r1, _081AC870 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - bne _081AC874 - movs r0, #0 - b _081AC87A - .align 2, 0 -_081AC85C: .4byte gUnknown_203CB48 -_081AC860: .4byte gUnknown_2021C40 -_081AC864: .4byte gUnknown_2021C7C -_081AC868: .4byte gUnknown_85C9450 -_081AC86C: .4byte gUnknown_203CB20 -_081AC870: .4byte 0x00000828 -_081AC874: - cmp r0, #2 - bne _081AC888 - movs r0, #1 -_081AC87A: - bl BagMenu_AddWindow - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_081AC8BC - b _081AC8B2 -_081AC888: - cmp r0, #4 - bne _081AC8A0 - movs r0, #2 - bl BagMenu_AddWindow - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - movs r2, #2 - bl sub_081AC938 - b _081AC8B2 -_081AC8A0: - movs r0, #3 - bl BagMenu_AddWindow - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - movs r2, #3 - bl sub_081AC938 -_081AC8B2: - add sp, #0x14 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081AC408 - - thumb_func_start sub_081AC8BC -sub_081AC8BC: @ 0x081AC8BC - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0x14 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - mov r8, r0 - str r0, [sp] - movs r0, #0x10 - str r0, [sp, #4] - ldr r6, _081AC92C - ldr r1, [r6] - ldr r5, _081AC930 - adds r0, r1, r5 - ldrb r0, [r0] - str r0, [sp, #8] - ldr r0, _081AC934 - str r0, [sp, #0xc] - movs r0, #0x82 - lsls r0, r0, #4 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [sp, #0x10] - adds r0, r4, #0 - movs r1, #1 - movs r2, #8 - movs r3, #2 - bl AddItemMenuActionTextPrinters - movs r0, #1 - movs r1, #1 - bl GetFontAttribute - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - ldr r0, [r6] - adds r0, r0, r5 - ldrb r0, [r0] - str r0, [sp, #4] - mov r0, r8 - str r0, [sp, #8] - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl sub_081984B0 - add sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081AC92C: .4byte gUnknown_203CB20 -_081AC930: .4byte 0x00000828 -_081AC934: .4byte gUnknown_85DF7EC - thumb_func_end sub_081AC8BC - - thumb_func_start sub_081AC938 -sub_081AC938: @ 0x081AC938 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0x14 - adds r6, r0, #0 - adds r4, r1, #0 - adds r5, r2, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - movs r0, #0x30 - mov r8, r0 - str r0, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - ldr r0, _081AC9A0 - str r0, [sp, #0xc] - ldr r0, _081AC9A4 - ldr r0, [r0] - movs r1, #0x82 - lsls r1, r1, #4 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp, #0x10] - adds r0, r6, #0 - movs r1, #1 - movs r2, #8 - movs r3, #2 - bl sub_08198ECC - mov r0, r8 - str r0, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - str r0, [sp, #0xc] - adds r0, r6, #0 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl sub_081990E4 - add sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081AC9A0: .4byte gUnknown_85DF7EC -_081AC9A4: .4byte gUnknown_203CB20 - thumb_func_end sub_081AC938 - - thumb_func_start unknown_item_menu_type -unknown_item_menu_type: @ 0x081AC9A8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl sub_081AC408 - ldr r0, _081AC9D0 - ldr r0, [r0] - ldr r1, _081AC9D4 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #2 - bhi _081AC9E0 - ldr r0, _081AC9D8 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081AC9DC - b _081AC9EC - .align 2, 0 -_081AC9D0: .4byte gUnknown_203CB20 -_081AC9D4: .4byte 0x00000828 -_081AC9D8: .4byte gUnknown_3005B60 -_081AC9DC: .4byte Task_HandleInBattleItemMenuInput -_081AC9E0: - ldr r0, _081AC9F4 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081AC9F8 -_081AC9EC: - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081AC9F4: .4byte gUnknown_3005B60 -_081AC9F8: .4byte Task_HandleOutOfBattleItemMenuInput - thumb_func_end unknown_item_menu_type - - thumb_func_start Task_HandleInBattleItemMenuInput -Task_HandleInBattleItemMenuInput: @ 0x081AC9FC - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r6, r5, #0 - bl sub_081221F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081ACA62 - bl Menu_ProcessInputNoWrap - lsls r0, r0, #0x18 - asrs r4, r0, #0x18 - movs r0, #2 - rsbs r0, r0, #0 - cmp r4, r0 - beq _081ACA62 - adds r0, #1 - cmp r4, r0 - bne _081ACA3C - movs r0, #5 - bl sub_080A306C - ldr r0, _081ACA38 - ldr r1, [r0, #0x24] - adds r0, r5, #0 - bl _call_via_r1 - b _081ACA62 - .align 2, 0 -_081ACA38: .4byte gUnknown_85DF7EC -_081ACA3C: - movs r0, #5 - bl sub_080A306C - ldr r1, _081ACA68 - ldr r0, _081ACA6C - ldr r0, [r0] - movs r2, #0x82 - lsls r2, r2, #4 - adds r0, r0, r2 - ldr r0, [r0] - adds r0, r0, r4 - ldrb r0, [r0] - lsls r0, r0, #3 - adds r1, #4 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r6, #0 - bl _call_via_r1 -_081ACA62: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081ACA68: .4byte gUnknown_85DF7EC -_081ACA6C: .4byte gUnknown_203CB20 - thumb_func_end Task_HandleInBattleItemMenuInput - - thumb_func_start Task_HandleOutOfBattleItemMenuInput -Task_HandleOutOfBattleItemMenuInput: @ 0x081ACA70 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - bl sub_081221F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081ACA84 - b _081ACBE8 -_081ACA84: - bl Menu_GetCursorPos - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r5, _081ACAC8 - ldrh r1, [r5, #0x2e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _081ACACC - lsls r0, r4, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bgt _081ACAA2 - b _081ACBE8 -_081ACAA2: - subs r0, #2 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - bl sub_081ACBF4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081ACAB4 - b _081ACBE8 -_081ACAB4: - movs r0, #5 - bl sub_080A306C - movs r1, #1 - rsbs r1, r1, #0 - movs r0, #0 - bl sub_08199250 - b _081ACBE8 - .align 2, 0 -_081ACAC8: .4byte gUnknown_3002360 -_081ACACC: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _081ACB14 - lsls r0, r4, #0x18 - asrs r1, r0, #0x18 - ldr r0, _081ACB0C - ldr r0, [r0] - ldr r2, _081ACB10 - adds r0, r0, r2 - ldrb r0, [r0] - subs r0, #2 - cmp r1, r0 - blt _081ACAEA - b _081ACBE8 -_081ACAEA: - adds r0, r1, #2 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - bl sub_081ACBF4 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081ACBE8 - movs r0, #5 - bl sub_080A306C - movs r0, #0 - movs r1, #1 - bl sub_08199250 - b _081ACBE8 - .align 2, 0 -_081ACB0C: .4byte gUnknown_203CB20 -_081ACB10: .4byte 0x00000828 -_081ACB14: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _081ACB28 - bl GetLRKeysState - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081ACB50 -_081ACB28: - lsls r0, r4, #0x18 - asrs r1, r0, #0x18 - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081ACBE8 - subs r0, r1, #1 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - bl sub_081ACBF4 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081ACBE8 - movs r0, #5 - bl sub_080A306C - movs r0, #1 - rsbs r0, r0, #0 - b _081ACB8A -_081ACB50: - ldrh r1, [r5, #0x2e] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _081ACB66 - bl GetLRKeysState - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _081ACB92 -_081ACB66: - lsls r0, r4, #0x18 - asrs r1, r0, #0x18 - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _081ACBE8 - adds r0, r1, #1 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - bl sub_081ACBF4 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081ACBE8 - movs r0, #5 - bl sub_080A306C - movs r0, #1 -_081ACB8A: - movs r1, #0 - bl sub_08199250 - b _081ACBE8 -_081ACB92: - ldrh r1, [r5, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081ACBD0 - movs r0, #5 - bl sub_080A306C - ldr r2, _081ACBC8 - ldr r0, _081ACBCC - ldr r0, [r0] - lsls r1, r4, #0x18 - asrs r1, r1, #0x18 - movs r3, #0x82 - lsls r3, r3, #4 - adds r0, r0, r3 - ldr r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #3 - adds r2, #4 - adds r0, r0, r2 - ldr r1, [r0] - adds r0, r6, #0 - bl _call_via_r1 - b _081ACBE8 - .align 2, 0 -_081ACBC8: .4byte gUnknown_85DF7EC -_081ACBCC: .4byte gUnknown_203CB20 -_081ACBD0: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081ACBE8 - movs r0, #5 - bl sub_080A306C - ldr r0, _081ACBF0 - ldr r1, [r0, #0x24] - adds r0, r6, #0 - bl _call_via_r1 -_081ACBE8: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081ACBF0: .4byte gUnknown_85DF7EC - thumb_func_end Task_HandleOutOfBattleItemMenuInput - - thumb_func_start sub_081ACBF4 -sub_081ACBF4: @ 0x081ACBF4 - push {lr} - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - blt _081ACC28 - ldr r0, _081ACC20 - ldr r2, [r0] - ldr r3, _081ACC24 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r1, r0 - bgt _081ACC28 - movs r3, #0x82 - lsls r3, r3, #4 - adds r0, r2, r3 - ldr r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0xe - beq _081ACC28 - movs r0, #1 - b _081ACC2A - .align 2, 0 -_081ACC20: .4byte gUnknown_203CB20 -_081ACC24: .4byte 0x00000828 -_081ACC28: - movs r0, #0 -_081ACC2A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081ACBF4 - - thumb_func_start BagMenu_RemoveSomeWindow -BagMenu_RemoveSomeWindow: @ 0x081ACC30 - push {lr} - ldr r0, _081ACC48 - ldr r0, [r0] - ldr r1, _081ACC4C - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - bne _081ACC50 - movs r0, #0 - bl sub_081ADE5C - b _081ACC6E - .align 2, 0 -_081ACC48: .4byte gUnknown_203CB20 -_081ACC4C: .4byte 0x00000828 -_081ACC50: - cmp r0, #2 - bne _081ACC5C - movs r0, #1 - bl sub_081ADE5C - b _081ACC6E -_081ACC5C: - cmp r0, #4 - bne _081ACC68 - movs r0, #2 - bl sub_081ADE5C - b _081ACC6E -_081ACC68: - movs r0, #3 - bl sub_081ADE5C -_081ACC6E: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BagMenu_RemoveSomeWindow - - thumb_func_start ItemMenu_UseOutOfBattle -ItemMenu_UseOutOfBattle: @ 0x081ACC74 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r5, _081ACCAC - ldrh r0, [r5] - bl sub_080D6DF8 - cmp r0, #0 - beq _081ACCE6 - bl BagMenu_RemoveSomeWindow - bl sub_0806B004 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081ACCB0 - ldrh r0, [r5] - bl sub_080D6DD4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081ACCB0 - adds r0, r4, #0 - bl BagMenu_PrintThereIsNoPokemon - b _081ACCE6 - .align 2, 0 -_081ACCAC: .4byte gUnknown_203CB48 -_081ACCB0: - movs r0, #1 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, _081ACCD8 - ldrb r0, [r0, #5] - cmp r0, #3 - beq _081ACCE0 - ldr r0, _081ACCDC - ldrh r0, [r0] - bl sub_080D6DF8 - adds r1, r0, #0 - adds r0, r4, #0 - bl _call_via_r1 - b _081ACCE6 - .align 2, 0 -_081ACCD8: .4byte gUnknown_203CB24 -_081ACCDC: .4byte gUnknown_203CB48 -_081ACCE0: - adds r0, r4, #0 - bl sub_080FE564 -_081ACCE6: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end ItemMenu_UseOutOfBattle - - thumb_func_start ItemMenu_Toss -ItemMenu_Toss: @ 0x081ACCEC - push {r4, r5, r6, r7, lr} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r6, r0, #3 - ldr r7, _081ACD18 - adds r4, r6, r7 - bl BagMenu_RemoveSomeWindow - movs r0, #1 - strh r0, [r4, #0x10] - movs r1, #4 - ldrsh r0, [r4, r1] - cmp r0, #1 - bne _081ACD1C - adds r0, r5, #0 - bl sub_081ACD80 - b _081ACD62 - .align 2, 0 -_081ACD18: .4byte gUnknown_3005B68 -_081ACD1C: - ldr r0, _081ACD6C - ldrh r0, [r0] - ldr r1, _081ACD70 - bl sub_080D5EC8 - ldr r4, _081ACD74 - ldr r1, _081ACD78 - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #1 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - str r0, [sp, #0xc] - str r0, [sp, #0x10] - movs r0, #1 - movs r1, #1 - adds r2, r4, #0 - movs r3, #0 - bl BagMenu_Print - movs r0, #7 - bl GetItemName - adds r0, r7, #0 - subs r0, #8 - adds r0, r6, r0 - ldr r1, _081ACD7C - str r1, [r0] -_081ACD62: - add sp, #0x14 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081ACD6C: .4byte gUnknown_203CB48 -_081ACD70: .4byte gUnknown_2021C40 -_081ACD74: .4byte gUnknown_2021C7C -_081ACD78: .4byte gUnknown_85C9523 -_081ACD7C: .4byte Task_ChooseHowManyToToss - thumb_func_end ItemMenu_Toss - - thumb_func_start sub_081ACD80 -sub_081ACD80: @ 0x081ACD80 - push {r4, r5, lr} - sub sp, #0x14 - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - ldr r0, _081ACDEC - adds r4, r4, r0 - ldr r0, _081ACDF0 - ldrh r0, [r0] - ldr r1, _081ACDF4 - bl sub_080D5EC8 - ldr r0, _081ACDF8 - movs r2, #0x10 - ldrsh r1, [r4, r2] - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - ldr r4, _081ACDFC - ldr r1, _081ACE00 - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #1 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - str r0, [sp, #0xc] - str r0, [sp, #0x10] - movs r0, #1 - movs r1, #1 - adds r2, r4, #0 - movs r3, #0 - bl BagMenu_Print - ldr r2, _081ACE04 - adds r0, r5, #0 - movs r1, #5 - bl BagMenu_YesNo - add sp, #0x14 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081ACDEC: .4byte gUnknown_3005B68 -_081ACDF0: .4byte gUnknown_203CB48 -_081ACDF4: .4byte gUnknown_2021C40 -_081ACDF8: .4byte gUnknown_2021C54 -_081ACDFC: .4byte gUnknown_2021C7C -_081ACE00: .4byte gUnknown_85C9540 -_081ACE04: .4byte gUnknown_85DF8BC - thumb_func_end sub_081ACD80 - - thumb_func_start BagMenu_CancelToss -BagMenu_CancelToss: @ 0x081ACE08 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - ldr r0, _081ACE38 - adds r4, r4, r0 - movs r1, #2 - ldrsh r0, [r4, r1] - bl BagMenu_PrintDescription - ldrb r0, [r4] - movs r1, #0 - bl BagMenu_PrintCursor_ - adds r0, r5, #0 - bl set_callback3_to_bag - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081ACE38: .4byte gUnknown_3005B68 - thumb_func_end BagMenu_CancelToss - - thumb_func_start Task_ChooseHowManyToToss -Task_ChooseHowManyToToss: @ 0x081ACE3C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r6, r5, #0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _081ACE74 - adds r4, r0, r1 - adds r0, r4, #0 - adds r0, #0x10 - ldrh r1, [r4, #4] - bl AdjustQuantityAccordingToDPadInput - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081ACE80 - ldr r0, _081ACE78 - ldr r0, [r0] - ldr r1, _081ACE7C - adds r0, r0, r1 - ldrb r0, [r0] - movs r2, #0x10 - ldrsh r1, [r4, r2] - bl sub_081ABA50 - b _081ACEBE - .align 2, 0 -_081ACE74: .4byte gUnknown_3005B68 -_081ACE78: .4byte gUnknown_203CB20 -_081ACE7C: .4byte 0x00000817 -_081ACE80: - ldr r0, _081ACEA0 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081ACEA4 - movs r0, #5 - bl sub_080A306C - movs r0, #7 - bl sub_081ADE5C - adds r0, r5, #0 - bl sub_081ACD80 - b _081ACEBE - .align 2, 0 -_081ACEA0: .4byte gUnknown_3002360 -_081ACEA4: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081ACEBE - movs r0, #5 - bl sub_080A306C - movs r0, #7 - bl sub_081ADE5C - adds r0, r6, #0 - bl BagMenu_CancelToss -_081ACEBE: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end Task_ChooseHowManyToToss - - thumb_func_start BagMenu_ConfirmToss -BagMenu_ConfirmToss: @ 0x081ACEC4 - push {r4, r5, r6, lr} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r5, _081ACF2C - adds r6, r4, r5 - ldr r0, _081ACF30 - ldrh r0, [r0] - ldr r1, _081ACF34 - bl sub_080D5EC8 - ldr r0, _081ACF38 - movs r2, #0x10 - ldrsh r1, [r6, r2] - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - ldr r6, _081ACF3C - ldr r1, _081ACF40 - adds r0, r6, #0 - bl StringExpandPlaceholders - movs r0, #1 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - str r0, [sp, #0xc] - str r0, [sp, #0x10] - movs r0, #1 - movs r1, #1 - adds r2, r6, #0 - movs r3, #0 - bl BagMenu_Print - subs r5, #8 - adds r4, r4, r5 - ldr r0, _081ACF44 - str r0, [r4] - add sp, #0x14 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081ACF2C: .4byte gUnknown_3005B68 -_081ACF30: .4byte gUnknown_203CB48 -_081ACF34: .4byte gUnknown_2021C40 -_081ACF38: .4byte gUnknown_2021C54 -_081ACF3C: .4byte gUnknown_2021C7C -_081ACF40: .4byte gUnknown_85C9532 -_081ACF44: .4byte Task_ActuallyToss - thumb_func_end BagMenu_ConfirmToss - - thumb_func_start Task_ActuallyToss -Task_ActuallyToss: @ 0x081ACF48 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _081ACFD0 - adds r5, r0, r1 - ldr r4, _081ACFD4 - ldrb r0, [r4, #5] - lsls r0, r0, #1 - adds r1, r4, #0 - adds r1, #0x12 - adds r1, r1, r0 - mov r8, r1 - adds r1, r4, #0 - adds r1, #8 - adds r7, r0, r1 - ldr r0, _081ACFD8 - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _081ACFC6 - movs r0, #5 - bl sub_080A306C - ldr r0, _081ACFDC - ldrh r0, [r0] - ldrh r1, [r5, #0x10] - bl RemoveBagItem - ldrb r0, [r5] - mov r1, r8 - adds r2, r7, #0 - bl DestroyListMenuTask - ldrb r0, [r4, #5] - bl sub_081AB754 - ldrb r0, [r4, #5] - bl SetInitialScrollAndCursorPositions - ldrb r0, [r4, #5] - bl LoadBagItemListBuffers - ldr r0, _081ACFE0 - mov r2, r8 - ldrh r1, [r2] - ldrh r2, [r7] - bl ListMenuInit - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5] - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r6, #0 - bl set_callback3_to_bag -_081ACFC6: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081ACFD0: .4byte gUnknown_3005B68 -_081ACFD4: .4byte gUnknown_203CB24 -_081ACFD8: .4byte gUnknown_3002360 -_081ACFDC: .4byte gUnknown_203CB48 -_081ACFE0: .4byte gUnknown_3006050 - thumb_func_end Task_ActuallyToss - - thumb_func_start ItemMenu_Register -ItemMenu_Register: @ 0x081ACFE4 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _081AD01C - adds r7, r0, r1 - ldr r0, _081AD020 - ldrb r1, [r0, #5] - lsls r1, r1, #1 - adds r2, r0, #0 - adds r2, #0x12 - adds r6, r1, r2 - adds r0, #8 - adds r5, r1, r0 - ldr r0, _081AD024 - ldr r0, [r0] - ldr r2, _081AD028 - adds r1, r0, r2 - ldr r0, _081AD02C - ldrh r2, [r0] - ldrh r0, [r1] - cmp r0, r2 - bne _081AD030 - movs r0, #0 - strh r0, [r1] - b _081AD032 - .align 2, 0 -_081AD01C: .4byte gUnknown_3005B68 -_081AD020: .4byte gUnknown_203CB24 -_081AD024: .4byte gUnknown_3005AEC -_081AD028: .4byte 0x00000496 -_081AD02C: .4byte gUnknown_203CB48 -_081AD030: - strh r2, [r1] -_081AD032: - ldrb r0, [r7] - adds r1, r6, #0 - adds r2, r5, #0 - bl DestroyListMenuTask - ldr r0, _081AD068 - ldrb r0, [r0, #5] - bl LoadBagItemListBuffers - ldr r0, _081AD06C - ldrh r1, [r6] - ldrh r2, [r5] - bl ListMenuInit - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r7] - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r4, #0 - bl ItemMenu_Cancel - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081AD068: .4byte gUnknown_203CB24 -_081AD06C: .4byte gUnknown_3006050 - thumb_func_end ItemMenu_Register - - thumb_func_start ItemMenu_Give -ItemMenu_Give: @ 0x081AD070 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r6, r4, #0 - bl BagMenu_RemoveSomeWindow - ldr r5, _081AD098 - ldrh r0, [r5] - bl itemid_80BF6D8_mail_related - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081AD0A4 - ldr r2, _081AD09C - ldr r3, _081AD0A0 - adds r0, r4, #0 - movs r1, #1 - bl DisplayItemMessage - b _081AD0E2 - .align 2, 0 -_081AD098: .4byte gUnknown_203CB48 -_081AD09C: .4byte gUnknown_85C945C -_081AD0A0: .4byte sub_081AD148 -_081AD0A4: - ldrh r0, [r5] - bl sub_080D6D68 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081AD0DC - bl sub_0806B004 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081AD0C2 - adds r0, r4, #0 - bl BagMenu_PrintThereIsNoPokemon - b _081AD0E2 -_081AD0C2: - ldr r0, _081AD0D4 - ldr r1, [r0] - ldr r0, _081AD0D8 - str r0, [r1] - adds r0, r4, #0 - bl sub_081AB6A4 - b _081AD0E2 - .align 2, 0 -_081AD0D4: .4byte gUnknown_203CB20 -_081AD0D8: .4byte sub_081B7C00 -_081AD0DC: - adds r0, r6, #0 - bl BagMenu_PrintItemCantBeHeld -_081AD0E2: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end ItemMenu_Give - - thumb_func_start BagMenu_PrintThereIsNoPokemon -BagMenu_PrintThereIsNoPokemon: @ 0x081AD0E8 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _081AD0FC - ldr r3, _081AD100 - movs r1, #1 - bl DisplayItemMessage - pop {r0} - bx r0 - .align 2, 0 -_081AD0FC: .4byte gUnknown_85C9472 -_081AD100: .4byte sub_081AD148 - thumb_func_end BagMenu_PrintThereIsNoPokemon - - thumb_func_start BagMenu_PrintItemCantBeHeld -BagMenu_PrintItemCantBeHeld: @ 0x081AD104 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081AD134 - ldrh r0, [r0] - ldr r1, _081AD138 - bl sub_080D5EC8 - ldr r5, _081AD13C - ldr r1, _081AD140 - adds r0, r5, #0 - bl StringExpandPlaceholders - ldr r3, _081AD144 - adds r0, r4, #0 - movs r1, #1 - adds r2, r5, #0 - bl DisplayItemMessage - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081AD134: .4byte gUnknown_203CB48 -_081AD138: .4byte gUnknown_2021C40 -_081AD13C: .4byte gUnknown_2021C7C -_081AD140: .4byte gUnknown_85C948E -_081AD144: .4byte sub_081AD148 - thumb_func_end BagMenu_PrintItemCantBeHeld - - thumb_func_start sub_081AD148 -sub_081AD148: @ 0x081AD148 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _081AD16C - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081AD166 - movs r0, #5 - bl sub_080A306C - adds r0, r4, #0 - bl BagMenu_InitListsMenu -_081AD166: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081AD16C: .4byte gUnknown_3002360 - thumb_func_end sub_081AD148 - - thumb_func_start ItemMenu_CheckTag -ItemMenu_CheckTag: @ 0x081AD170 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081AD188 - ldr r2, [r1] - ldr r1, _081AD18C - str r1, [r2] - bl sub_081AB6A4 - pop {r0} - bx r0 - .align 2, 0 -_081AD188: .4byte gUnknown_203CB20 -_081AD18C: .4byte DoBerryTagScreen - thumb_func_end ItemMenu_CheckTag - - thumb_func_start ItemMenu_Cancel -ItemMenu_Cancel: @ 0x081AD190 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - ldr r0, _081AD1D0 - adds r4, r4, r0 - bl BagMenu_RemoveSomeWindow - movs r1, #2 - ldrsh r0, [r4, r1] - bl BagMenu_PrintDescription - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - ldrb r0, [r4] - movs r1, #0 - bl BagMenu_PrintCursor_ - adds r0, r5, #0 - bl set_callback3_to_bag - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081AD1D0: .4byte gUnknown_3005B68 - thumb_func_end ItemMenu_Cancel - - thumb_func_start AnimRazorLeafParticle -AnimRazorLeafParticle: @ 0x081AD1D4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r4, _081AD200 - ldrh r0, [r4] - bl sub_080D6E44 - cmp r0, #0 - beq _081AD1F8 - bl BagMenu_RemoveSomeWindow - ldrh r0, [r4] - bl sub_080D6E44 - adds r1, r0, #0 - adds r0, r5, #0 - bl _call_via_r1 -_081AD1F8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081AD200: .4byte gUnknown_203CB48 - thumb_func_end AnimRazorLeafParticle - - thumb_func_start bag_menu_mail_related -bag_menu_mail_related: @ 0x081AD204 - push {lr} - movs r0, #0xc - movs r1, #5 - movs r2, #0 - bl GoToBagMenu - pop {r0} - bx r0 - thumb_func_end bag_menu_mail_related - - thumb_func_start item_menu_type_2 -item_menu_type_2: @ 0x081AD214 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r4, _081AD238 - ldrh r0, [r4] - bl itemid_80BF6D8_mail_related - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081AD244 - ldr r2, _081AD23C - ldr r3, _081AD240 - adds r0, r5, #0 - movs r1, #1 - bl DisplayItemMessage - b _081AD2A6 - .align 2, 0 -_081AD238: .4byte gUnknown_203CB48 -_081AD23C: .4byte gUnknown_85C945C -_081AD240: .4byte sub_081AD148 -_081AD244: - ldrh r0, [r4] - bl sub_08122154 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081AD280 - ldrh r0, [r4] - ldr r1, _081AD270 - bl sub_080D5EC8 - ldr r4, _081AD274 - ldr r1, _081AD278 - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r3, _081AD27C - adds r0, r5, #0 - movs r1, #1 - adds r2, r4, #0 - bl DisplayItemMessage - b _081AD2A6 - .align 2, 0 -_081AD270: .4byte gUnknown_2021C40 -_081AD274: .4byte gUnknown_2021C7C -_081AD278: .4byte gUnknown_85C94A1 -_081AD27C: .4byte sub_081AD148 -_081AD280: - ldr r0, _081AD29C - ldrb r0, [r0, #5] - cmp r0, #4 - beq _081AD2A0 - ldrh r0, [r4] - bl sub_080D6D68 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081AD2A0 - adds r0, r5, #0 - bl sub_081AB6A4 - b _081AD2A6 - .align 2, 0 -_081AD29C: .4byte gUnknown_203CB24 -_081AD2A0: - adds r0, r5, #0 - bl BagMenu_PrintItemCantBeHeld -_081AD2A6: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end item_menu_type_2 - - thumb_func_start item_menu_type_b -item_menu_type_b: @ 0x081AD2AC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r5, _081AD2D0 - ldrh r0, [r5] - bl ItemIsMail - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081AD2DC - ldr r2, _081AD2D4 - ldr r3, _081AD2D8 - adds r0, r4, #0 - movs r1, #1 - bl DisplayItemMessage - b _081AD312 - .align 2, 0 -_081AD2D0: .4byte gUnknown_203CB48 -_081AD2D4: .4byte gUnknown_85C945C -_081AD2D8: .4byte sub_081AD148 -_081AD2DC: - ldr r0, _081AD300 - ldrb r0, [r0, #5] - cmp r0, #4 - beq _081AD30C - ldrh r0, [r5] - bl sub_080D6D68 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081AD30C - ldr r0, _081AD304 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081AD308 - str r0, [r1] - b _081AD312 - .align 2, 0 -_081AD300: .4byte gUnknown_203CB24 -_081AD304: .4byte gUnknown_3005B60 -_081AD308: .4byte sub_081AB6A4 -_081AD30C: - adds r0, r4, #0 - bl BagMenu_PrintItemCantBeHeld -_081AD312: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end item_menu_type_b - - thumb_func_start UseRegisteredKeyItemOnField -UseRegisteredKeyItemOnField: @ 0x081AD318 - push {r4, r5, r6, r7, lr} - bl InUnionRoom - cmp r0, #1 - beq _081AD344 - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081AD344 - bl InBattlePike - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #0 - bne _081AD344 - bl InMultiBattleRoom - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081AD348 -_081AD344: - movs r0, #0 - b _081AD3CA -_081AD348: - bl HideMapNamePopUpWindow - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - ldr r4, _081AD3AC - ldr r0, [r4] - ldr r5, _081AD3B0 - adds r1, r0, r5 - ldrh r0, [r1] - cmp r0, #0 - beq _081AD3C2 - movs r1, #1 - bl CheckBagHasItem - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #1 - bne _081AD3BC - bl sub_080987DC - bl FreezeEventObjects - bl sub_0808B1C8 - bl sub_0808B658 - ldr r2, _081AD3B4 - ldr r0, [r4] - adds r0, r0, r5 - ldrh r1, [r0] - strh r1, [r2] - ldrh r0, [r0] - bl sub_080D6DF8 - movs r1, #8 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _081AD3B8 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r6, [r1, #0xe] - b _081AD3C8 - .align 2, 0 -_081AD3AC: .4byte gUnknown_3005AEC -_081AD3B0: .4byte 0x00000496 -_081AD3B4: .4byte gUnknown_203CB48 -_081AD3B8: .4byte gUnknown_3005B60 -_081AD3BC: - ldr r0, [r4] - adds r0, r0, r5 - strh r7, [r0] -_081AD3C2: - ldr r0, _081AD3D0 - bl ScriptContext1_SetupScript -_081AD3C8: - movs r0, #1 -_081AD3CA: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081AD3D0: .4byte gUnknown_82440DD - thumb_func_end UseRegisteredKeyItemOnField - - thumb_func_start DisplaySellItemAskString -DisplaySellItemAskString: @ 0x081AD3D4 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r7, r5, #0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _081AD414 - adds r4, r0, r1 - ldr r6, _081AD418 - ldrh r0, [r6] - bl sub_080D6CD4 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _081AD42C - ldrh r0, [r6] - ldr r1, _081AD41C - bl sub_080D5EC8 - ldr r4, _081AD420 - ldr r1, _081AD424 - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r3, _081AD428 - adds r0, r5, #0 - movs r1, #1 - adds r2, r4, #0 - bl DisplayItemMessage - b _081AD462 - .align 2, 0 -_081AD414: .4byte gUnknown_3005B68 -_081AD418: .4byte gUnknown_203CB48 -_081AD41C: .4byte gUnknown_2021C54 -_081AD420: .4byte gUnknown_2021C7C -_081AD424: .4byte gUnknown_85C9A47 -_081AD428: .4byte BagMenu_InitListsMenu -_081AD42C: - movs r0, #1 - strh r0, [r4, #0x10] - movs r1, #4 - ldrsh r0, [r4, r1] - cmp r0, #1 - bne _081AD444 - bl bag_menu_AddMoney_window - adds r0, r5, #0 - bl sub_081AD478 - b _081AD462 -_081AD444: - ldrh r0, [r6] - ldr r1, _081AD468 - bl sub_080D5EC8 - ldr r4, _081AD46C - ldr r1, _081AD470 - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r3, _081AD474 - adds r0, r7, #0 - movs r1, #1 - adds r2, r4, #0 - bl DisplayItemMessage -_081AD462: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081AD468: .4byte gUnknown_2021C54 -_081AD46C: .4byte gUnknown_2021C7C -_081AD470: .4byte gUnknown_85C9A5D -_081AD474: .4byte sub_081AD528 - thumb_func_end DisplaySellItemAskString - - thumb_func_start sub_081AD478 -sub_081AD478: @ 0x081AD478 - push {r4, r5, r6, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - ldr r0, _081AD4C4 - adds r4, r4, r0 - ldr r6, _081AD4C8 - ldr r0, _081AD4CC - ldrh r0, [r0] - bl sub_080D6CD4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x11 - movs r2, #0x10 - ldrsh r1, [r4, r2] - muls r1, r0, r1 - adds r0, r6, #0 - movs r2, #0 - movs r3, #6 - bl sub_080089D8 - ldr r4, _081AD4D0 - ldr r1, _081AD4D4 - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r3, _081AD4D8 - adds r0, r5, #0 - movs r1, #1 - adds r2, r4, #0 - bl DisplayItemMessage - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081AD4C4: .4byte gUnknown_3005B68 -_081AD4C8: .4byte gUnknown_2021C40 -_081AD4CC: .4byte gUnknown_203CB48 -_081AD4D0: .4byte gUnknown_2021C7C -_081AD4D4: .4byte gUnknown_85C9A6C -_081AD4D8: .4byte sub_081AD4DC - thumb_func_end sub_081AD478 - - thumb_func_start sub_081AD4DC -sub_081AD4DC: @ 0x081AD4DC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _081AD4F0 - movs r1, #6 - bl BagMenu_YesNo - pop {r0} - bx r0 - .align 2, 0 -_081AD4F0: .4byte gUnknown_85DF8C4 - thumb_func_end sub_081AD4DC - - thumb_func_start BagMenu_CancelSell -BagMenu_CancelSell: @ 0x081AD4F4 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - ldr r0, _081AD524 - adds r4, r4, r0 - bl bag_menu_remove_money_window - movs r0, #4 - bl sub_081ADED0 - ldrb r0, [r4] - movs r1, #0 - bl BagMenu_PrintCursor_ - adds r0, r5, #0 - bl set_callback3_to_bag - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081AD524: .4byte gUnknown_3005B68 - thumb_func_end BagMenu_CancelSell - - thumb_func_start sub_081AD528 -sub_081AD528: @ 0x081AD528 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r5, _081AD570 - adds r6, r4, r5 - movs r0, #8 - bl BagMenu_AddWindow - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - bl sub_081ABA50 - ldr r0, _081AD574 - ldrh r0, [r0] - bl sub_080D6CD4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x11 - movs r2, #0x10 - ldrsh r1, [r6, r2] - muls r0, r1, r0 - bl sub_081AD57C - bl bag_menu_AddMoney_window - subs r5, #8 - adds r4, r4, r5 - ldr r0, _081AD578 - str r0, [r4] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081AD570: .4byte gUnknown_3005B68 -_081AD574: .4byte gUnknown_203CB48 -_081AD578: .4byte sub_081AD5A8 - thumb_func_end sub_081AD528 - - thumb_func_start sub_081AD57C -sub_081AD57C: @ 0x081AD57C - push {lr} - sub sp, #4 - adds r3, r0, #0 - ldr r0, _081AD5A0 - ldr r0, [r0] - ldr r1, _081AD5A4 - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #0 - str r1, [sp] - movs r1, #0x28 - movs r2, #2 - bl CreateBicycleAnimationTask - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_081AD5A0: .4byte gUnknown_203CB20 -_081AD5A4: .4byte 0x00000818 - thumb_func_end sub_081AD57C - - thumb_func_start sub_081AD5A8 -sub_081AD5A8: @ 0x081AD5A8 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r6, r4, #0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _081AD5F8 - adds r5, r0, r1 - adds r0, r5, #0 - adds r0, #0x10 - ldrh r1, [r5, #4] - bl AdjustQuantityAccordingToDPadInput - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081AD608 - ldr r0, _081AD5FC - ldr r0, [r0] - ldr r1, _081AD600 - adds r0, r0, r1 - ldrb r0, [r0] - movs r2, #0x10 - ldrsh r1, [r5, r2] - bl sub_081ABA50 - ldr r0, _081AD604 - ldrh r0, [r0] - bl sub_080D6CD4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x11 - movs r2, #0x10 - ldrsh r1, [r5, r2] - muls r0, r1, r0 - bl sub_081AD57C - b _081AD658 - .align 2, 0 -_081AD5F8: .4byte gUnknown_3005B68 -_081AD5FC: .4byte gUnknown_203CB20 -_081AD600: .4byte 0x00000818 -_081AD604: .4byte gUnknown_203CB48 -_081AD608: - ldr r0, _081AD628 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081AD62C - movs r0, #5 - bl sub_080A306C - movs r0, #8 - bl sub_081ADE5C - adds r0, r4, #0 - bl sub_081AD478 - b _081AD658 - .align 2, 0 -_081AD628: .4byte gUnknown_3002360 -_081AD62C: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081AD658 - movs r0, #5 - bl sub_080A306C - ldrb r0, [r5] - movs r1, #0 - bl BagMenu_PrintCursor_ - bl bag_menu_remove_money_window - movs r0, #8 - bl sub_081ADE5C - movs r0, #4 - bl sub_081ADED0 - adds r0, r6, #0 - bl set_callback3_to_bag -_081AD658: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081AD5A8 - - thumb_func_start BagMenu_ConfirmSell -BagMenu_ConfirmSell: @ 0x081AD660 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - ldr r0, _081AD6C0 - adds r4, r4, r0 - ldr r6, _081AD6C4 - ldrh r0, [r6] - ldr r1, _081AD6C8 - bl sub_080D5EC8 - ldr r0, _081AD6CC - mov r8, r0 - ldrh r0, [r6] - bl sub_080D6CD4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x11 - movs r2, #0x10 - ldrsh r1, [r4, r2] - muls r1, r0, r1 - mov r0, r8 - movs r2, #0 - movs r3, #6 - bl sub_080089D8 - ldr r4, _081AD6D0 - ldr r1, _081AD6D4 - adds r0, r4, #0 - bl StringExpandPlaceholders - ldr r3, _081AD6D8 - adds r0, r5, #0 - movs r1, #1 - adds r2, r4, #0 - bl DisplayItemMessage - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081AD6C0: .4byte gUnknown_3005B68 -_081AD6C4: .4byte gUnknown_203CB48 -_081AD6C8: .4byte gUnknown_2021C54 -_081AD6CC: .4byte gUnknown_2021C40 -_081AD6D0: .4byte gUnknown_2021C7C -_081AD6D4: .4byte gUnknown_85C9A88 -_081AD6D8: .4byte sub_081AD6DC - thumb_func_end BagMenu_ConfirmSell - - thumb_func_start sub_081AD6DC -sub_081AD6DC: @ 0x081AD6DC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r6, r0, #2 - adds r6, r6, r0 - lsls r6, r6, #3 - ldr r0, _081AD7B4 - adds r0, r0, r6 - mov sl, r0 - ldr r7, _081AD7B8 - ldrb r5, [r7, #5] - lsls r5, r5, #1 - movs r1, #0x12 - adds r1, r1, r7 - mov sb, r1 - add sb, r5 - adds r0, r7, #0 - adds r0, #8 - adds r5, r5, r0 - movs r0, #0x5f - bl sub_080A306C - ldr r2, _081AD7BC - mov r8, r2 - ldrh r0, [r2] - mov r3, sl - ldrh r1, [r3, #0x10] - bl RemoveBagItem - ldr r0, _081AD7C0 - ldr r4, [r0] - movs r1, #0x92 - lsls r1, r1, #3 - adds r4, r4, r1 - mov r2, r8 - ldrh r0, [r2] - bl sub_080D6CD4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x11 - mov r3, sl - movs r2, #0x10 - ldrsh r1, [r3, r2] - muls r1, r0, r1 - adds r0, r4, #0 - bl AddMoney - mov r3, sl - ldrb r0, [r3] - mov r1, sb - adds r2, r5, #0 - bl DestroyListMenuTask - ldrb r0, [r7, #5] - bl sub_081AB754 - ldrb r0, [r7, #5] - bl SetInitialScrollAndCursorPositions - ldrb r0, [r7, #5] - bl LoadBagItemListBuffers - ldr r0, _081AD7C4 - mov r2, sb - ldrh r1, [r2] - ldrh r2, [r5] - bl ListMenuInit - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r3, sl - strh r0, [r3] - movs r1, #2 - bl BagMenu_PrintCursor_ - ldr r0, _081AD7C8 - ldr r0, [r0] - ldr r1, _081AD7CC - adds r0, r0, r1 - ldrb r4, [r0] - ldr r2, _081AD7C0 - ldr r0, [r2] - movs r3, #0x92 - lsls r3, r3, #3 - adds r0, r0, r3 - bl sub_080E4908 - adds r1, r0, #0 - adds r0, r4, #0 - movs r2, #0 - bl PrintMoneyAmountInMoneyBox - ldr r0, _081AD7B4 - subs r0, #8 - adds r6, r6, r0 - ldr r0, _081AD7D0 - str r0, [r6] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081AD7B4: .4byte gUnknown_3005B68 -_081AD7B8: .4byte gUnknown_203CB24 -_081AD7BC: .4byte gUnknown_203CB48 -_081AD7C0: .4byte gUnknown_3005AEC -_081AD7C4: .4byte gUnknown_3006050 -_081AD7C8: .4byte gUnknown_203CB20 -_081AD7CC: .4byte 0x00000819 -_081AD7D0: .4byte sub_081AD7D4 - thumb_func_end sub_081AD6DC - - thumb_func_start sub_081AD7D4 -sub_081AD7D4: @ 0x081AD7D4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _081AD7FC - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _081AD7F6 - movs r0, #5 - bl sub_080A306C - bl bag_menu_remove_money_window - adds r0, r4, #0 - bl BagMenu_InitListsMenu -_081AD7F6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081AD7FC: .4byte gUnknown_3002360 - thumb_func_end sub_081AD7D4 - - thumb_func_start DisplayDepositItemAskString -DisplayDepositItemAskString: @ 0x081AD800 - push {r4, r5, r6, lr} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r5, r0, #3 - ldr r6, _081AD828 - adds r1, r5, r6 - movs r0, #1 - strh r0, [r1, #0x10] - movs r3, #4 - ldrsh r0, [r1, r3] - cmp r0, #1 - bne _081AD82C - adds r0, r2, #0 - bl sub_081AD928 - b _081AD872 - .align 2, 0 -_081AD828: .4byte gUnknown_3005B68 -_081AD82C: - ldr r0, _081AD87C - ldrh r0, [r0] - ldr r1, _081AD880 - bl sub_080D5EC8 - ldr r4, _081AD884 - ldr r1, _081AD888 - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #1 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - str r0, [sp, #0xc] - str r0, [sp, #0x10] - movs r0, #1 - movs r1, #1 - adds r2, r4, #0 - movs r3, #0 - bl BagMenu_Print - movs r0, #7 - bl GetItemName - adds r0, r6, #0 - subs r0, #8 - adds r0, r5, r0 - ldr r1, _081AD88C - str r1, [r0] -_081AD872: - add sp, #0x14 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081AD87C: .4byte gUnknown_203CB48 -_081AD880: .4byte gUnknown_2021C40 -_081AD884: .4byte gUnknown_2021C7C -_081AD888: .4byte gUnknown_85C94B9 -_081AD88C: .4byte sub_081AD890 - thumb_func_end DisplayDepositItemAskString - - thumb_func_start sub_081AD890 -sub_081AD890: @ 0x081AD890 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r6, r4, #0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _081AD8C8 - adds r5, r0, r1 - adds r0, r5, #0 - adds r0, #0x10 - ldrh r1, [r5, #4] - bl AdjustQuantityAccordingToDPadInput - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081AD8D4 - ldr r0, _081AD8CC - ldr r0, [r0] - ldr r1, _081AD8D0 - adds r0, r0, r1 - ldrb r0, [r0] - movs r2, #0x10 - ldrsh r1, [r5, r2] - bl sub_081ABA50 - b _081AD922 - .align 2, 0 -_081AD8C8: .4byte gUnknown_3005B68 -_081AD8CC: .4byte gUnknown_203CB20 -_081AD8D0: .4byte 0x00000817 -_081AD8D4: - ldr r0, _081AD8F4 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081AD8F8 - movs r0, #5 - bl sub_080A306C - movs r0, #7 - bl sub_081ADE5C - adds r0, r4, #0 - bl sub_081AD928 - b _081AD922 - .align 2, 0 -_081AD8F4: .4byte gUnknown_3002360 -_081AD8F8: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081AD922 - movs r0, #5 - bl sub_080A306C - movs r1, #2 - ldrsh r0, [r5, r1] - bl BagMenu_PrintDescription - ldrb r0, [r5] - movs r1, #0 - bl BagMenu_PrintCursor_ - movs r0, #7 - bl sub_081ADE5C - adds r0, r6, #0 - bl set_callback3_to_bag -_081AD922: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_081AD890 - - thumb_func_start sub_081AD928 -sub_081AD928: @ 0x081AD928 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r6, r1, #3 - ldr r0, _081AD96C - mov r8, r0 - adds r7, r6, r0 - movs r0, #1 - movs r1, #0 - bl FillWindowPixelBuffer - ldr r4, _081AD970 - ldrh r0, [r4] - bl sub_080D6D68 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - beq _081AD978 - ldr r2, _081AD974 - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - str r0, [sp, #0xc] - str r0, [sp, #0x10] - b _081AD9EE - .align 2, 0 -_081AD96C: .4byte gUnknown_3005B68 -_081AD970: .4byte gUnknown_203CB48 -_081AD974: .4byte gUnknown_85C94EB -_081AD978: - ldrh r0, [r4] - ldrh r1, [r7, #0x10] - bl AddPCItem - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081AD9E0 - ldrh r0, [r4] - ldr r1, _081AD9CC - bl sub_080D5EC8 - ldr r0, _081AD9D0 - movs r2, #0x10 - ldrsh r1, [r7, r2] - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - ldr r4, _081AD9D4 - ldr r1, _081AD9D8 - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #2 - str r0, [sp] - str r5, [sp, #4] - str r5, [sp, #8] - str r5, [sp, #0xc] - str r5, [sp, #0x10] - movs r0, #1 - movs r1, #1 - adds r2, r4, #0 - movs r3, #0 - bl BagMenu_Print - mov r0, r8 - subs r0, #8 - adds r0, r6, r0 - ldr r1, _081AD9DC - b _081ADA00 - .align 2, 0 -_081AD9CC: .4byte gUnknown_2021C40 -_081AD9D0: .4byte gUnknown_2021C54 -_081AD9D4: .4byte gUnknown_2021C7C -_081AD9D8: .4byte gUnknown_85C94CA -_081AD9DC: .4byte Task_ActuallyToss -_081AD9E0: - ldr r2, _081ADA10 - movs r0, #2 - str r0, [sp] - str r5, [sp, #4] - str r5, [sp, #8] - str r5, [sp, #0xc] - str r5, [sp, #0x10] -_081AD9EE: - movs r0, #1 - movs r1, #1 - movs r3, #0 - bl BagMenu_Print - mov r0, r8 - subs r0, #8 - adds r0, r6, r0 - ldr r1, _081ADA14 -_081ADA00: - str r1, [r0] - add sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081ADA10: .4byte gUnknown_85C94DA -_081ADA14: .4byte sub_081ADA18 - thumb_func_end sub_081AD928 - - thumb_func_start sub_081ADA18 -sub_081ADA18: @ 0x081ADA18 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _081ADA58 - adds r5, r0, r1 - ldr r0, _081ADA5C - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _081ADA50 - movs r0, #5 - bl sub_080A306C - movs r1, #2 - ldrsh r0, [r5, r1] - bl BagMenu_PrintDescription - ldrb r0, [r5] - movs r1, #0 - bl BagMenu_PrintCursor_ - adds r0, r4, #0 - bl set_callback3_to_bag -_081ADA50: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081ADA58: .4byte gUnknown_3005B68 -_081ADA5C: .4byte gUnknown_3002360 - thumb_func_end sub_081ADA18 - - thumb_func_start IsWallysBag -IsWallysBag: @ 0x081ADA60 - push {lr} - ldr r0, _081ADA70 - ldrb r0, [r0, #4] - cmp r0, #0xa - beq _081ADA74 - movs r0, #0 - b _081ADA76 - .align 2, 0 -_081ADA70: .4byte gUnknown_203CB24 -_081ADA74: - movs r0, #1 -_081ADA76: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsWallysBag - - thumb_func_start PrepareBagForWallyTutorial -PrepareBagForWallyTutorial: @ 0x081ADA7C - push {r4, r5, r6, lr} - ldr r4, _081ADB00 - movs r0, #0xd0 - bl AllocZeroed - str r0, [r4] - ldr r5, _081ADB04 - ldr r1, [r5] - movs r2, #0xac - lsls r2, r2, #3 - adds r1, r1, r2 - movs r2, #0x78 - bl memcpy - ldr r0, [r4] - ldr r1, [r5] - movs r2, #0xca - lsls r2, r2, #3 - adds r1, r1, r2 - adds r0, #0x78 - movs r2, #0x40 - bl memcpy - ldr r0, [r4] - ldr r2, _081ADB08 - ldrb r1, [r2, #5] - adds r0, #0xce - strh r1, [r0] - movs r6, #0 - adds r5, r2, #0 - adds r5, #8 -_081ADABA: - ldr r2, [r4] - lsls r3, r6, #1 - adds r0, r2, #0 - adds r0, #0xb8 - adds r0, r0, r3 - ldrh r1, [r5] - strh r1, [r0] - adds r2, #0xc2 - adds r2, r2, r3 - ldrh r0, [r5, #0xa] - strh r0, [r2] - adds r5, #2 - adds r6, #1 - cmp r6, #4 - bls _081ADABA - ldr r4, _081ADB04 - ldr r0, [r4] - movs r1, #0xac - lsls r1, r1, #3 - adds r0, r0, r1 - movs r1, #0x1e - bl ClearItemSlots - ldr r0, [r4] - movs r2, #0xca - lsls r2, r2, #3 - adds r0, r0, r2 - movs r1, #0x10 - bl ClearItemSlots - bl ResetBagScrollPositions - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081ADB00: .4byte gUnknown_203CB4C -_081ADB04: .4byte gUnknown_3005AEC -_081ADB08: .4byte gUnknown_203CB24 - thumb_func_end PrepareBagForWallyTutorial - - thumb_func_start RestoreBagAfterWallyTutorial -RestoreBagAfterWallyTutorial: @ 0x081ADB0C - push {r4, r5, r6, lr} - ldr r5, _081ADB70 - ldr r0, [r5] - movs r1, #0xac - lsls r1, r1, #3 - adds r0, r0, r1 - ldr r4, _081ADB74 - ldr r1, [r4] - movs r2, #0x78 - bl memcpy - ldr r0, [r5] - movs r1, #0xca - lsls r1, r1, #3 - adds r0, r0, r1 - ldr r1, [r4] - adds r1, #0x78 - movs r2, #0x40 - bl memcpy - ldr r1, _081ADB78 - ldr r0, [r4] - adds r0, #0xce - ldrh r0, [r0] - strb r0, [r1, #5] - movs r5, #0 - adds r6, r4, #0 - adds r3, r1, #0 - adds r3, #8 -_081ADB46: - lsls r2, r5, #1 - ldr r1, [r4] - adds r0, r1, #0 - adds r0, #0xb8 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r3] - adds r1, #0xc2 - adds r1, r1, r2 - ldrh r0, [r1] - strh r0, [r3, #0xa] - adds r3, #2 - adds r5, #1 - cmp r5, #4 - bls _081ADB46 - ldr r0, [r6] - bl Free - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081ADB70: .4byte gUnknown_3005AEC -_081ADB74: .4byte gUnknown_203CB4C -_081ADB78: .4byte gUnknown_203CB24 - thumb_func_end RestoreBagAfterWallyTutorial - - thumb_func_start DoWallyTutorialBagMenu -DoWallyTutorialBagMenu: @ 0x081ADB7C - push {lr} - bl PrepareBagForWallyTutorial - movs r0, #0xd - movs r1, #1 - bl AddBagItem - movs r0, #4 - movs r1, #1 - bl AddBagItem - ldr r2, _081ADBA0 - movs r0, #0xa - movs r1, #0 - bl GoToBagMenu - pop {r0} - bx r0 - .align 2, 0 -_081ADBA0: .4byte sub_0805996C - thumb_func_end DoWallyTutorialBagMenu - - thumb_func_start Task_WallyTutorialBagMenu -Task_WallyTutorialBagMenu: @ 0x081ADBA4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _081ADBD4 - adds r4, r0, r1 - ldr r0, _081ADBD8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081ADC3E - movs r0, #0x10 - ldrsh r1, [r4, r0] - cmp r1, #0xcc - beq _081ADBF8 - cmp r1, #0xcc - bgt _081ADBDC - cmp r1, #0x66 - beq _081ADBE6 - b _081ADC38 - .align 2, 0 -_081ADBD4: .4byte gUnknown_3005B68 -_081ADBD8: .4byte gUnknown_2037C74 -_081ADBDC: - movs r0, #0x99 - lsls r0, r0, #1 - cmp r1, r0 - beq _081ADC18 - b _081ADC38 -_081ADBE6: - movs r0, #5 - bl sub_080A306C - adds r0, r5, #0 - movs r1, #1 - movs r2, #0 - bl Fill1PRecords - b _081ADC38 -_081ADBF8: - movs r0, #5 - bl sub_080A306C - ldrb r0, [r4] - movs r1, #2 - bl BagMenu_PrintCursor_ - ldr r1, _081ADC14 - movs r0, #4 - strh r0, [r1] - adds r0, r5, #0 - bl sub_081AC408 - b _081ADC38 - .align 2, 0 -_081ADC14: .4byte gUnknown_203CB48 -_081ADC18: - movs r0, #5 - bl sub_080A306C - bl BagMenu_RemoveSomeWindow - ldrb r0, [r4] - movs r1, #0 - movs r2, #0 - bl DestroyListMenuTask - bl RestoreBagAfterWallyTutorial - adds r0, r5, #0 - bl sub_081AB6A4 - b _081ADC3E -_081ADC38: - ldrh r0, [r4, #0x10] - adds r0, #1 - strh r0, [r4, #0x10] -_081ADC3E: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end Task_WallyTutorialBagMenu - - thumb_func_start sub_081ADC44 -sub_081ADC44: @ 0x081ADC44 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _081ADC6C - ldr r0, _081ADC70 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _081ADC74 - movs r0, #1 - strh r0, [r1] - bl BagMenu_RemoveSomeWindow - adds r0, r4, #0 - bl sub_081AB6A4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081ADC6C: .4byte gUnknown_2037282 -_081ADC70: .4byte gUnknown_203CB48 -_081ADC74: .4byte gUnknown_2037290 - thumb_func_end sub_081ADC44 - - thumb_func_start sub_081ADC78 -sub_081ADC78: @ 0x081ADC78 - push {lr} - ldr r0, _081ADC8C - ldr r1, _081ADC90 - str r1, [r0] - ldr r0, _081ADC94 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_081ADC8C: .4byte gUnknown_3005B0C -_081ADC90: .4byte sub_0819F928 -_081ADC94: .4byte sub_08085A30 - thumb_func_end sub_081ADC78 - - thumb_func_start unknown_ItemMenu_Give2 -unknown_ItemMenu_Give2: @ 0x081ADC98 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081ADCC0 - ldrh r0, [r0] - movs r1, #1 - bl RemoveBagItem - ldr r1, _081ADCC4 - movs r0, #1 - strh r0, [r1] - bl BagMenu_RemoveSomeWindow - adds r0, r4, #0 - bl sub_081AB6A4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081ADCC0: .4byte gUnknown_203CB48 -_081ADCC4: .4byte gUnknown_2037290 - thumb_func_end unknown_ItemMenu_Give2 - - thumb_func_start sub_081ADCC8 -sub_081ADCC8: @ 0x081ADCC8 - push {lr} - ldr r0, _081ADCDC - ldr r1, _081ADCE0 - str r1, [r0] - ldr r0, _081ADCE4 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_081ADCDC: .4byte gUnknown_3005B0C -_081ADCE0: .4byte CB2_ReturnToField -_081ADCE4: .4byte sub_08085A30 - thumb_func_end sub_081ADCC8 - - thumb_func_start unknown_ItemMenu_Confirm2 -unknown_ItemMenu_Confirm2: @ 0x081ADCE8 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _081ADD08 - movs r0, #1 - strh r0, [r1] - bl BagMenu_RemoveSomeWindow - adds r0, r4, #0 - bl sub_081AB6A4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081ADD08: .4byte gUnknown_2037290 - thumb_func_end unknown_ItemMenu_Confirm2 - - thumb_func_start sub_081ADD0C -sub_081ADD0C: @ 0x081ADD0C - push {lr} - ldr r0, _081ADD20 - ldr r1, _081ADD24 - str r1, [r0] - ldr r0, _081ADD28 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_081ADD20: .4byte gUnknown_3005B0C -_081ADD24: .4byte MainCB2 -_081ADD28: .4byte sub_08085A30 - thumb_func_end sub_081ADD0C - - thumb_func_start SetupBagMenu_Textboxes -SetupBagMenu_Textboxes: @ 0x081ADD2C - push {r4, lr} - ldr r0, _081ADD8C - bl InitWindows - bl sub_08004480 - movs r0, #0 - movs r1, #1 - movs r2, #0xe0 - bl LoadUserWindowBorderGfx - movs r0, #0 - movs r1, #0xa - movs r2, #0xd0 - bl LoadMessageBoxGfx - movs r0, #0xc0 - movs r1, #1 - bl sub_08199F54 - ldr r0, _081ADD90 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - movs r4, #0 -_081ADD60: - adds r0, r4, #0 - movs r1, #0 - bl FillWindowPixelBuffer - adds r0, r4, #0 - bl PutWindowTilemap - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #2 - bls _081ADD60 - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081ADD8C: .4byte gUnknown_85DFA2C -_081ADD90: .4byte gUnknown_85D7B04 - thumb_func_end SetupBagMenu_Textboxes - - thumb_func_start BagMenu_Print -BagMenu_Print: @ 0x081ADD94 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x14 - mov sb, r3 - ldr r3, [sp, #0x30] - ldr r4, [sp, #0x34] - ldr r6, [sp, #0x38] - ldr r5, [sp, #0x3c] - mov r8, r5 - ldr r5, [sp, #0x40] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r7, sb - lsls r7, r7, #0x18 - lsrs r7, r7, #0x18 - mov sb, r7 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - str r4, [sp] - str r6, [sp, #4] - lsls r4, r5, #1 - adds r4, r4, r5 - ldr r5, _081ADDF8 - adds r4, r4, r5 - str r4, [sp, #8] - mov r4, r8 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - str r4, [sp, #0xc] - str r2, [sp, #0x10] - mov r2, sb - bl AddTextPrinterParameterized4 - add sp, #0x14 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081ADDF8: .4byte gUnknown_85DFA1C - thumb_func_end BagMenu_Print - - thumb_func_start sub_081ADDFC -sub_081ADDFC: @ 0x081ADDFC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081ADE10 - ldr r1, [r1] - movs r2, #0x81 - lsls r2, r2, #4 - adds r1, r1, r2 - adds r1, r1, r0 - ldrb r0, [r1] - bx lr - .align 2, 0 -_081ADE10: .4byte gUnknown_203CB20 - thumb_func_end sub_081ADDFC - - thumb_func_start BagMenu_AddWindow -BagMenu_AddWindow: @ 0x081ADE14 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _081ADE54 - movs r3, #0x81 - lsls r3, r3, #4 - adds r1, r2, r3 - ldr r0, [r0] - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, #0xff - bne _081ADE4A - lsls r0, r2, #3 - ldr r1, _081ADE58 - adds r0, r0, r1 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, #0 - movs r2, #1 - movs r3, #0xe - bl DrawStdFrameWithCustomTileAndPalette - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram -_081ADE4A: - ldrb r0, [r4] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081ADE54: .4byte gUnknown_203CB20 -_081ADE58: .4byte gUnknown_85DFA64 - thumb_func_end BagMenu_AddWindow - - thumb_func_start sub_081ADE5C -sub_081ADE5C: @ 0x081ADE5C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081ADE98 - movs r2, #0x81 - lsls r2, r2, #4 - adds r0, r0, r2 - ldr r1, [r1] - adds r4, r1, r0 - ldrb r0, [r4] - cmp r0, #0xff - beq _081ADE90 - movs r1, #0 - bl sub_08198134 - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - bl RemoveWindow - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #0xff - strb r0, [r4] -_081ADE90: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081ADE98: .4byte gUnknown_203CB20 - thumb_func_end sub_081ADE5C - - thumb_func_start AddItemMessageWindow -AddItemMessageWindow: @ 0x081ADE9C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _081ADEC8 - movs r3, #0x81 - lsls r3, r3, #4 - adds r1, r2, r3 - ldr r0, [r0] - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, #0xff - bne _081ADEC0 - lsls r0, r2, #3 - ldr r1, _081ADECC - adds r0, r0, r1 - bl AddWindow - strb r0, [r4] -_081ADEC0: - ldrb r0, [r4] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081ADEC8: .4byte gUnknown_203CB20 -_081ADECC: .4byte gUnknown_85DFA64 - thumb_func_end AddItemMessageWindow - - thumb_func_start sub_081ADED0 -sub_081ADED0: @ 0x081ADED0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081ADF0C - movs r2, #0x81 - lsls r2, r2, #4 - adds r0, r0, r2 - ldr r1, [r1] - adds r4, r1, r0 - ldrb r0, [r4] - cmp r0, #0xff - beq _081ADF04 - movs r1, #0 - bl sub_08197EBC - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - bl RemoveWindow - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #0xff - strb r0, [r4] -_081ADF04: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081ADF0C: .4byte gUnknown_203CB20 - thumb_func_end sub_081ADED0 - - thumb_func_start BagMenu_YesNo -BagMenu_YesNo: @ 0x081ADF10 - push {lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x15 - ldr r3, _081ADF3C - adds r1, r1, r3 - movs r3, #2 - str r3, [sp] - movs r3, #1 - str r3, [sp, #4] - movs r3, #0xe - str r3, [sp, #8] - str r2, [sp, #0xc] - movs r2, #1 - movs r3, #0 - bl sub_08121F84 - add sp, #0x10 - pop {r0} - bx r0 - .align 2, 0 -_081ADF3C: .4byte gUnknown_85DFA64 - thumb_func_end BagMenu_YesNo - - thumb_func_start bag_menu_AddMoney_window -bag_menu_AddMoney_window: @ 0x081ADF40 - push {r4, lr} - movs r0, #9 - bl BagMenu_AddWindow - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081ADF78 - ldr r0, [r0] - movs r1, #0x92 - lsls r1, r1, #3 - adds r0, r0, r1 - bl sub_080E4908 - adds r3, r0, #0 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0xe - bl PrintMoneyAmountInMoneyBoxWithBorder - movs r0, #0x13 - movs r1, #0xb - bl AddMoneyLabelObject - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081ADF78: .4byte gUnknown_3005AEC - thumb_func_end bag_menu_AddMoney_window - - thumb_func_start bag_menu_remove_money_window -bag_menu_remove_money_window: @ 0x081ADF7C - push {lr} - movs r0, #9 - bl sub_081ADE5C - bl RemoveMoneyLabelObject - pop {r0} - bx r0 - thumb_func_end bag_menu_remove_money_window - - thumb_func_start BagMenu_PrepareTMHMMoveWindow -BagMenu_PrepareTMHMMoveWindow: @ 0x081ADF8C - push {lr} - movs r0, #3 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #3 - movs r1, #0x13 - movs r2, #0 - movs r3, #0 - bl blit_move_info_icon - movs r0, #3 - movs r1, #0x14 - movs r2, #0 - movs r3, #0xc - bl blit_move_info_icon - movs r0, #3 - movs r1, #0x15 - movs r2, #0 - movs r3, #0x18 - bl blit_move_info_icon - movs r0, #3 - movs r1, #0x16 - movs r2, #0 - movs r3, #0x24 - bl blit_move_info_icon - movs r0, #3 - movs r1, #2 - bl CopyWindowToVram - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BagMenu_PrepareTMHMMoveWindow - - thumb_func_start PrintTMHMMoveData -PrintTMHMMoveData: @ 0x081ADFD4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x14 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r0, #4 - movs r1, #0 - bl FillWindowPixelBuffer - cmp r4, #0 - bne _081AE02C - movs r4, #0 - movs r5, #0 -_081ADFF2: - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #0x1a - lsrs r0, r0, #0x18 - str r0, [sp] - str r5, [sp, #4] - str r5, [sp, #8] - movs r0, #0xff - str r0, [sp, #0xc] - movs r0, #4 - str r0, [sp, #0x10] - movs r1, #1 - ldr r2, _081AE028 - movs r3, #4 - bl BagMenu_Print - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _081ADFF2 - movs r0, #4 - movs r1, #2 - bl CopyWindowToVram - b _081AE118 - .align 2, 0 -_081AE028: .4byte gUnknown_85C9406 -_081AE02C: - adds r0, r4, #0 - bl ItemIdToBattleMoveId - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - ldr r1, _081AE05C - lsls r0, r7, #1 - adds r0, r0, r7 - lsls r0, r0, #2 - adds r5, r0, r1 - ldrb r1, [r5, #2] - adds r1, #1 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #4 - movs r2, #0 - movs r3, #0 - bl blit_move_info_icon - ldrb r0, [r5, #1] - cmp r0, #1 - bhi _081AE064 - ldr r2, _081AE060 - b _081AE074 - .align 2, 0 -_081AE05C: .4byte gUnknown_82ED220 -_081AE060: .4byte gUnknown_85C9406 -_081AE064: - ldr r4, _081AE0A4 - ldrb r1, [r5, #1] - adds r0, r4, #0 - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - adds r2, r4, #0 -_081AE074: - movs r0, #0xc - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - movs r0, #0xff - str r0, [sp, #0xc] - movs r0, #4 - str r0, [sp, #0x10] - movs r1, #1 - movs r3, #4 - bl BagMenu_Print - ldr r2, _081AE0A8 - lsls r1, r7, #1 - adds r0, r1, r7 - lsls r0, r0, #2 - adds r2, r0, r2 - ldrb r0, [r2, #3] - adds r6, r1, #0 - cmp r0, #0 - bne _081AE0B0 - ldr r2, _081AE0AC - b _081AE0C0 - .align 2, 0 -_081AE0A4: .4byte gUnknown_2021C40 -_081AE0A8: .4byte gUnknown_82ED220 -_081AE0AC: .4byte gUnknown_85C9406 -_081AE0B0: - ldr r4, _081AE128 - ldrb r1, [r2, #3] - adds r0, r4, #0 - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - adds r2, r4, #0 -_081AE0C0: - movs r0, #0x18 - str r0, [sp] - movs r4, #0 - str r4, [sp, #4] - str r4, [sp, #8] - movs r0, #0xff - mov r8, r0 - str r0, [sp, #0xc] - movs r0, #4 - mov sb, r0 - str r0, [sp, #0x10] - movs r1, #1 - movs r3, #4 - bl BagMenu_Print - ldr r5, _081AE128 - ldr r1, _081AE12C - adds r0, r6, r7 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #4] - adds r0, r5, #0 - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - movs r0, #0x24 - str r0, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - mov r0, r8 - str r0, [sp, #0xc] - mov r0, sb - str r0, [sp, #0x10] - movs r0, #4 - movs r1, #1 - adds r2, r5, #0 - movs r3, #4 - bl BagMenu_Print - movs r0, #4 - movs r1, #2 - bl CopyWindowToVram -_081AE118: - add sp, #0x14 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081AE128: .4byte gUnknown_2021C40 -_081AE12C: .4byte gUnknown_82ED220 - thumb_func_end PrintTMHMMoveData - - thumb_func_start sub_081AE130 -sub_081AE130: @ 0x081AE130 - bx lr - .align 2, 0 - thumb_func_end sub_081AE130 - - thumb_func_start DoMysteryGiftListMenu -DoMysteryGiftListMenu: @ 0x081AE134 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - mov ip, r0 - str r1, [sp] - ldr r0, [sp, #0x28] - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - mov sl, r6 - lsls r3, r3, #0x10 - lsrs r7, r3, #0x10 - str r7, [sp, #4] - lsls r0, r0, #0x10 - mov r8, r0 - lsrs r0, r0, #0x10 - mov sb, r0 - ldr r5, _081AE1C4 - ldrb r4, [r5, #4] - cmp r4, #1 - beq _081AE1CC - cmp r4, #1 - ble _081AE16A - cmp r4, #2 - beq _081AE230 -_081AE16A: - mov r0, ip - bl AddWindow - strb r0, [r5, #5] - cmp r6, #1 - beq _081AE188 - cmp r6, #2 - bne _081AE198 - ldrb r0, [r5, #5] - mov r1, sb - lsls r2, r1, #0x18 - lsrs r2, r2, #0x18 - adds r1, r7, #0 - bl LoadUserWindowBorderGfx -_081AE188: - ldrb r0, [r5, #5] - mov r3, r8 - lsrs r2, r3, #0x14 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r1, [sp, #4] - bl DrawTextBorderOuter -_081AE198: - ldr r0, _081AE1C8 - adds r2, r0, #0 - ldr r1, [sp] - ldm r1!, {r3, r4, r5} - stm r2!, {r3, r4, r5} - ldm r1!, {r3, r4, r5} - stm r2!, {r3, r4, r5} - ldr r4, _081AE1C4 - ldrb r1, [r4, #5] - strb r1, [r0, #0x10] - movs r1, #0 - movs r2, #0 - bl ListMenuInit - strb r0, [r4, #6] - ldrb r0, [r4, #5] - movs r1, #1 - bl CopyWindowToVram - movs r0, #1 - strb r0, [r4, #4] - b _081AE248 - .align 2, 0 -_081AE1C4: .4byte gUnknown_203CB50 -_081AE1C8: .4byte gUnknown_3006050 -_081AE1CC: - ldrb r0, [r5, #6] - bl ListMenu_ProcessInput - str r0, [r5] - ldr r1, _081AE208 - ldrh r0, [r1, #0x2e] - ands r4, r0 - cmp r4, #0 - beq _081AE1E2 - movs r0, #2 - strb r0, [r5, #4] -_081AE1E2: - ldrh r1, [r1, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081AE1F6 - movs r0, #2 - rsbs r0, r0, #0 - str r0, [r5] - movs r0, #2 - strb r0, [r5, #4] -_081AE1F6: - ldrb r0, [r5, #4] - cmp r0, #2 - bne _081AE248 - cmp r6, #0 - bne _081AE20C - ldrb r0, [r5, #5] - bl ClearWindowTilemap - b _081AE21E - .align 2, 0 -_081AE208: .4byte gUnknown_3002360 -_081AE20C: - mov r4, sl - cmp r4, #0 - blt _081AE21E - cmp r4, #2 - bgt _081AE21E - ldrb r0, [r5, #5] - movs r1, #0 - bl sub_08197060 -_081AE21E: - ldr r0, _081AE22C - ldrb r0, [r0, #5] - movs r1, #1 - bl CopyWindowToVram - b _081AE248 - .align 2, 0 -_081AE22C: .4byte gUnknown_203CB50 -_081AE230: - ldrb r0, [r5, #6] - movs r1, #0 - movs r2, #0 - bl DestroyListMenuTask - ldrb r0, [r5, #5] - bl RemoveWindow - movs r0, #0 - strb r0, [r5, #4] - ldr r0, [r5] - b _081AE24C -_081AE248: - movs r0, #1 - rsbs r0, r0, #0 -_081AE24C: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end DoMysteryGiftListMenu - - thumb_func_start ListMenuInit -ListMenuInit: @ 0x081AE25C - push {r4, r5, lr} - adds r5, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - bl ListMenuInitInternal - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldrb r0, [r5, #0x10] - bl PutWindowTilemap - ldrb r0, [r5, #0x10] - movs r1, #2 - bl CopyWindowToVram - adds r0, r4, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end ListMenuInit - - thumb_func_start ListMenuInitInRect -ListMenuInitInRect: @ 0x081AE288 - push {r4, r5, r6, r7, lr} - sub sp, #8 - adds r6, r0, #0 - adds r4, r1, #0 - adds r1, r2, #0 - adds r2, r3, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - bl ListMenuInitInternal - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldrb r0, [r4, #4] - cmp r0, #0xff - beq _081AE2C8 - adds r5, r4, #0 -_081AE2AC: - ldrb r0, [r6, #0x10] - ldrb r1, [r5] - ldrb r2, [r5, #1] - ldrb r3, [r5, #2] - ldrb r4, [r5, #3] - str r4, [sp] - ldrb r4, [r5, #4] - str r4, [sp, #4] - bl PutWindowRectTilemapOverridePalette - adds r5, #8 - ldrb r0, [r5, #4] - cmp r0, #0xff - bne _081AE2AC -_081AE2C8: - ldrb r0, [r6, #0x10] - movs r1, #2 - bl CopyWindowToVram - adds r0, r7, #0 - add sp, #8 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ListMenuInitInRect - - thumb_func_start ListMenu_ProcessInput -ListMenu_ProcessInput: @ 0x081AE2DC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _081AE308 - adds r3, r1, r0 - ldr r2, _081AE30C - ldrh r1, [r2, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081AE310 - ldrh r0, [r3, #0x18] - ldrh r1, [r3, #0x1a] - adds r0, r0, r1 - ldr r1, [r3] - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r0, [r0, #4] - b _081AE39A - .align 2, 0 -_081AE308: .4byte gUnknown_3005B68 -_081AE30C: .4byte gUnknown_3002360 -_081AE310: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081AE31E - movs r0, #2 - rsbs r0, r0, #0 - b _081AE39A -_081AE31E: - ldrh r1, [r2, #0x30] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _081AE332 - adds r0, r3, #0 - movs r1, #1 - movs r2, #1 - movs r3, #0 - b _081AE392 -_081AE332: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _081AE342 - adds r0, r3, #0 - movs r1, #1 - movs r2, #1 - b _081AE390 -_081AE342: - ldrb r0, [r3, #0x16] - lsrs r0, r0, #6 - cmp r0, #1 - beq _081AE358 - cmp r0, #1 - ble _081AE352 - cmp r0, #2 - beq _081AE364 -_081AE352: - movs r2, #0 - movs r0, #0 - b _081AE378 -_081AE358: - movs r0, #0x20 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - movs r0, #0x10 - b _081AE372 -_081AE364: - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - movs r0, #0x80 - lsls r0, r0, #1 -_081AE372: - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 -_081AE378: - cmp r2, #0 - beq _081AE386 - ldrb r2, [r3, #0xe] - adds r0, r3, #0 - movs r1, #1 - movs r3, #0 - b _081AE392 -_081AE386: - cmp r0, #0 - beq _081AE396 - ldrb r2, [r3, #0xe] - adds r0, r3, #0 - movs r1, #1 -_081AE390: - movs r3, #1 -_081AE392: - bl ListMenuChangeSelection -_081AE396: - movs r0, #1 - rsbs r0, r0, #0 -_081AE39A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ListMenu_ProcessInput - - thumb_func_start DestroyListMenuTask -DestroyListMenuTask: @ 0x081AE3A0 - push {r4, lr} - adds r3, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r4, r0, #0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _081AE3E0 - adds r1, r0, r1 - cmp r3, #0 - beq _081AE3BC - ldrh r0, [r1, #0x18] - strh r0, [r3] -_081AE3BC: - cmp r2, #0 - beq _081AE3C4 - ldrh r0, [r1, #0x1a] - strh r0, [r2] -_081AE3C4: - ldrb r0, [r1, #0x1e] - cmp r0, #0xff - beq _081AE3D4 - ldrb r1, [r1, #0x17] - lsrs r1, r1, #6 - subs r1, #2 - bl ListMenuRemoveCursorObject -_081AE3D4: - adds r0, r4, #0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081AE3E0: .4byte gUnknown_3005B68 - thumb_func_end DestroyListMenuTask - - thumb_func_start RedrawListMenu -RedrawListMenu: @ 0x081AE3E4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _081AE424 - adds r4, r4, r0 - ldrb r0, [r4, #0x10] - ldrb r2, [r4, #0x15] - lsls r2, r2, #0x1c - lsrs r1, r2, #4 - orrs r1, r2 - lsrs r1, r1, #0x18 - bl FillWindowPixelBuffer - ldrh r1, [r4, #0x18] - ldrh r3, [r4, #0xe] - adds r0, r4, #0 - movs r2, #0 - bl ListMenuPrintEntries - adds r0, r4, #0 - bl ListMenuDrawCursor - ldrb r0, [r4, #0x10] - movs r1, #2 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081AE424: .4byte gUnknown_3005B68 - thumb_func_end RedrawListMenu - - thumb_func_start ChangeListMenuPals -ChangeListMenuPals: @ 0x081AE428 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _081AE468 - adds r4, r4, r0 - lsrs r1, r1, #0x14 - ldrb r6, [r4, #0x14] - movs r5, #0xf - adds r0, r5, #0 - ands r0, r6 - orrs r0, r1 - strb r0, [r4, #0x14] - ands r2, r5 - ldrb r1, [r4, #0x15] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - lsrs r3, r3, #0x14 - ands r0, r5 - orrs r0, r3 - strb r0, [r4, #0x15] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081AE468: .4byte gUnknown_3005B68 - thumb_func_end ChangeListMenuPals - - thumb_func_start ChangeListMenuCoords -ChangeListMenuCoords: @ 0x081AE46C - push {r4, r5, lr} - adds r3, r1, #0 - adds r5, r2, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _081AE4A4 - adds r4, r4, r0 - ldrb r0, [r4, #0x10] - movs r1, #1 - adds r2, r3, #0 - bl SetWindowAttribute - ldrb r0, [r4, #0x10] - movs r1, #2 - adds r2, r5, #0 - bl SetWindowAttribute - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081AE4A4: .4byte gUnknown_3005B68 - thumb_func_end ChangeListMenuCoords - - thumb_func_start ListMenuTestInput -ListMenuTestInput: @ 0x081AE4A8 - push {r4, r5, r6, r7, lr} - sub sp, #0x20 - mov ip, r2 - ldr r5, [sp, #0x34] - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - adds r4, r3, #0 - mov r3, sp - ldm r0!, {r2, r6, r7} - stm r3!, {r2, r6, r7} - ldm r0!, {r2, r6, r7} - stm r3!, {r2, r6, r7} - mov r0, sp - movs r3, #0 - strh r1, [r0, #0x18] - mov r1, ip - strh r1, [r0, #0x1a] - strb r3, [r0, #0x1c] - strb r3, [r0, #0x1d] - cmp r4, #0x40 - bne _081AE4DC - movs r1, #0 - movs r2, #1 - movs r3, #0 - bl ListMenuChangeSelection -_081AE4DC: - cmp r4, #0x80 - bne _081AE4EC - mov r0, sp - movs r1, #0 - movs r2, #1 - movs r3, #1 - bl ListMenuChangeSelection -_081AE4EC: - cmp r5, #0 - beq _081AE4F6 - mov r0, sp - ldrh r0, [r0, #0x18] - strh r0, [r5] -_081AE4F6: - ldr r2, [sp, #0x38] - cmp r2, #0 - beq _081AE502 - mov r0, sp - ldrh r0, [r0, #0x1a] - strh r0, [r2] -_081AE502: - movs r0, #1 - rsbs r0, r0, #0 - add sp, #0x20 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ListMenuTestInput - - thumb_func_start ListMenuGetCurrentItemArrayId -ListMenuGetCurrentItemArrayId: @ 0x081AE510 - push {lr} - adds r2, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _081AE534 - adds r1, r1, r0 - cmp r2, #0 - beq _081AE52E - ldrh r0, [r1, #0x1a] - ldrh r1, [r1, #0x18] - adds r0, r0, r1 - strh r0, [r2] -_081AE52E: - pop {r0} - bx r0 - .align 2, 0 -_081AE534: .4byte gUnknown_3005B68 - thumb_func_end ListMenuGetCurrentItemArrayId - - thumb_func_start ListMenuGetScrollAndRow -ListMenuGetScrollAndRow: @ 0x081AE538 - push {lr} - adds r3, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _081AE560 - adds r1, r1, r0 - cmp r3, #0 - beq _081AE552 - ldrh r0, [r1, #0x18] - strh r0, [r3] -_081AE552: - cmp r2, #0 - beq _081AE55A - ldrh r0, [r1, #0x1a] - strh r0, [r2] -_081AE55A: - pop {r0} - bx r0 - .align 2, 0 -_081AE560: .4byte gUnknown_3005B68 - thumb_func_end ListMenuGetScrollAndRow - - thumb_func_start ListMenuGetYCoordForPrintingArrowCursor -ListMenuGetYCoordForPrintingArrowCursor: @ 0x081AE564 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _081AE5A8 - adds r4, r4, r0 - ldrb r0, [r4, #0x17] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1a - movs r1, #1 - bl GetFontAttribute - ldrb r1, [r4, #0x16] - lsls r1, r1, #0x1a - lsrs r1, r1, #0x1d - adds r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #0x1a] - adds r2, r1, #0 - muls r2, r0, r2 - adds r1, r2, #0 - ldrb r0, [r4, #0x14] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081AE5A8: .4byte gUnknown_3005B68 - thumb_func_end ListMenuGetYCoordForPrintingArrowCursor - - thumb_func_start ListMenuInitInternal -ListMenuInitInternal: @ 0x081AE5AC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - ldr r0, _081AE67C - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r0, r0, #2 - add r0, r8 - lsls r0, r0, #3 - ldr r1, _081AE680 - adds r7, r0, r1 - adds r0, r7, #0 - ldm r4!, {r1, r2, r3} - stm r0!, {r1, r2, r3} - ldm r4!, {r1, r2, r3} - stm r0!, {r1, r2, r3} - movs r1, #0 - strh r5, [r7, #0x18] - strh r6, [r7, #0x1a] - strb r1, [r7, #0x1c] - strb r1, [r7, #0x1d] - movs r0, #0xff - strb r0, [r7, #0x1e] - strb r1, [r7, #0x1f] - ldr r3, _081AE684 - ldrb r1, [r7, #0x14] - movs r5, #0xf - lsrs r1, r1, #4 - ldrb r4, [r3] - movs r2, #0x10 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r4 - orrs r0, r1 - strb r0, [r3] - ldrb r1, [r7, #0x15] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x18 - ands r0, r5 - orrs r0, r1 - strb r0, [r3] - ldrb r0, [r7, #0x15] - lsrs r0, r0, #4 - ands r5, r0 - ldrb r0, [r3, #1] - ands r2, r0 - orrs r2, r5 - strb r2, [r3, #1] - ldrb r1, [r7, #0x16] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x11 - ldr r0, [r3] - ldr r2, _081AE688 - ands r0, r2 - orrs r0, r1 - str r0, [r3] - ldrb r0, [r7, #0x17] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1a - strb r0, [r3, #3] - ldrh r0, [r7, #0xc] - ldrh r1, [r7, #0xe] - cmp r0, r1 - bhs _081AE644 - strh r0, [r7, #0xe] -_081AE644: - ldrb r0, [r7, #0x10] - ldrb r2, [r7, #0x15] - lsls r2, r2, #0x1c - lsrs r1, r2, #4 - orrs r1, r2 - lsrs r1, r1, #0x18 - bl FillWindowPixelBuffer - ldrh r1, [r7, #0x18] - ldrh r3, [r7, #0xe] - adds r0, r7, #0 - movs r2, #0 - bl ListMenuPrintEntries - adds r0, r7, #0 - bl ListMenuDrawCursor - adds r0, r7, #0 - movs r1, #1 - bl ListMenuCallSelectionChangedCallback - mov r0, r8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081AE67C: .4byte sub_081AE130 -_081AE680: .4byte gUnknown_3005B68 -_081AE684: .4byte gUnknown_3006040 -_081AE688: .4byte 0xFFFC0FFF - thumb_func_end ListMenuInitInternal - - thumb_func_start ListMenuPrint -ListMenuPrint: @ 0x081AE68C - push {r4, r5, r6, r7, lr} - sub sp, #0x18 - adds r4, r0, #0 - adds r6, r1, #0 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov ip, r3 - ldr r5, _081AE6F4 - ldrb r1, [r5, #3] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - beq _081AE6F8 - add r1, sp, #0x14 - ldr r2, [r5] - lsls r0, r2, #0x18 - lsrs r0, r0, #0x1c - movs r3, #0 - strb r0, [r1] - lsls r0, r2, #0x1c - lsrs r0, r0, #0x1c - strb r0, [r1, #1] - lsls r0, r2, #0x14 - lsrs r0, r0, #0x1c - strb r0, [r1, #2] - ldrb r0, [r4, #0x10] - lsls r1, r2, #1 - lsrs r1, r1, #0x19 - lsls r2, r2, #0xe - lsrs r2, r2, #0x1a - str r2, [sp] - str r3, [sp, #4] - add r2, sp, #0x14 - str r2, [sp, #8] - movs r2, #1 - rsbs r2, r2, #0 - str r2, [sp, #0xc] - str r6, [sp, #0x10] - adds r2, r7, #0 - mov r3, ip - bl AddTextPrinterParameterized4 - ldrb r1, [r5, #3] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #3] - b _081AE736 - .align 2, 0 -_081AE6F4: .4byte gUnknown_3006040 -_081AE6F8: - add r2, sp, #0x14 - ldrb r1, [r4, #0x15] - lsls r0, r1, #0x1c - lsrs r0, r0, #0x1c - strb r0, [r2] - ldrb r0, [r4, #0x14] - lsrs r0, r0, #4 - strb r0, [r2, #1] - adds r0, r2, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x1c - strb r1, [r0, #2] - ldrb r0, [r4, #0x10] - ldrb r1, [r4, #0x17] - lsls r1, r1, #0x1a - lsrs r1, r1, #0x1a - ldrb r2, [r4, #0x16] - lsls r2, r2, #0x1d - lsrs r2, r2, #0x1d - str r2, [sp] - str r3, [sp, #4] - add r2, sp, #0x14 - str r2, [sp, #8] - movs r2, #1 - rsbs r2, r2, #0 - str r2, [sp, #0xc] - str r6, [sp, #0x10] - adds r2, r7, #0 - mov r3, ip - bl AddTextPrinterParameterized4 -_081AE736: - add sp, #0x18 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ListMenuPrint - - thumb_func_start ListMenuPrintEntries -ListMenuPrintEntries: @ 0x081AE740 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - adds r4, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sb, r1 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - str r2, [sp] - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - mov sl, r3 - ldrb r0, [r4, #0x17] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1a - movs r1, #1 - bl GetFontAttribute - ldrb r1, [r4, #0x16] - lsls r1, r1, #0x1a - lsrs r1, r1, #0x1d - adds r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - movs r0, #0 - mov r8, r0 - cmp r8, sl - bge _081AE7E8 -_081AE782: - ldr r0, [r4] - mov r2, sb - lsls r1, r2, #3 - adds r0, r1, r0 - ldr r2, [r0, #4] - movs r0, #3 - rsbs r0, r0, #0 - adds r5, r1, #0 - cmp r2, r0 - beq _081AE79A - ldrb r6, [r4, #0x12] - b _081AE79C -_081AE79A: - ldrb r6, [r4, #0x11] -_081AE79C: - ldr r0, [sp] - add r0, r8 - ldr r2, [sp, #4] - adds r1, r0, #0 - muls r1, r2, r1 - ldrb r0, [r4, #0x14] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - adds r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r7, r2, #0 - ldr r3, [r4, #8] - cmp r3, #0 - beq _081AE7C6 - ldrb r0, [r4, #0x10] - ldr r1, [r4] - adds r1, r5, r1 - ldr r1, [r1, #4] - bl _call_via_r3 -_081AE7C6: - ldr r0, [r4] - adds r0, r5, r0 - ldr r1, [r0] - adds r0, r4, #0 - adds r2, r6, #0 - adds r3, r7, #0 - bl ListMenuPrint - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - movs r0, #1 - add r8, r0 - cmp r8, sl - blt _081AE782 -_081AE7E8: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end ListMenuPrintEntries - - thumb_func_start ListMenuDrawCursor -ListMenuDrawCursor: @ 0x081AE7F8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - ldrb r0, [r6, #0x17] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1a - movs r1, #1 - bl GetFontAttribute - ldrb r1, [r6, #0x16] - lsls r1, r1, #0x1a - lsrs r1, r1, #0x1d - adds r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r6, #0x13] - mov r8, r1 - ldrh r1, [r6, #0x1a] - muls r1, r0, r1 - ldrb r0, [r6, #0x14] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - adds r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldrb r0, [r6, #0x17] - lsrs r0, r0, #6 - cmp r0, #1 - beq _081AE8E4 - cmp r0, #1 - bgt _081AE83E - cmp r0, #0 - beq _081AE848 - b _081AE8E4 -_081AE83E: - cmp r0, #2 - beq _081AE85C - cmp r0, #3 - beq _081AE8A4 - b _081AE8E4 -_081AE848: - ldr r1, _081AE858 - adds r0, r6, #0 - mov r2, r8 - adds r3, r7, #0 - bl ListMenuPrint - b _081AE8E4 - .align 2, 0 -_081AE858: .4byte gUnknown_85C9421 -_081AE85C: - ldrb r0, [r6, #0x1e] - cmp r0, #0xff - bne _081AE86C - adds r0, r6, #0 - movs r1, #0 - bl ListMenuAddCursorObject - strb r0, [r6, #0x1e] -_081AE86C: - ldrb r5, [r6, #0x1e] - ldrb r0, [r6, #0x10] - movs r1, #1 - bl GetWindowAttribute - adds r4, r0, #0 - lsls r4, r4, #0x13 - ldr r0, _081AE8A0 - adds r4, r4, r0 - lsrs r4, r4, #0x10 - ldrb r0, [r6, #0x10] - movs r1, #2 - bl GetWindowAttribute - adds r2, r0, #0 - lsls r2, r2, #3 - adds r2, r2, r7 - subs r2, #1 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - movs r3, #0 - bl ListMenuUpdateCursorObject - b _081AE8E4 - .align 2, 0 -_081AE8A0: .4byte 0xFFFF0000 -_081AE8A4: - ldrb r0, [r6, #0x1e] - cmp r0, #0xff - bne _081AE8B4 - adds r0, r6, #0 - movs r1, #1 - bl ListMenuAddCursorObject - strb r0, [r6, #0x1e] -_081AE8B4: - ldrb r5, [r6, #0x1e] - ldrb r0, [r6, #0x10] - movs r1, #1 - bl GetWindowAttribute - adds r4, r0, #0 - lsls r4, r4, #3 - add r4, r8 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldrb r0, [r6, #0x10] - movs r1, #2 - bl GetWindowAttribute - adds r2, r0, #0 - lsls r2, r2, #3 - adds r2, r2, r7 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - movs r3, #1 - bl ListMenuUpdateCursorObject -_081AE8E4: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ListMenuDrawCursor - - thumb_func_start ListMenuAddCursorObject -ListMenuAddCursorObject: @ 0x081AE8F0 - push {r4, r5, lr} - sub sp, #0xc - adds r4, r0, #0 - adds r5, r1, #0 - mov r1, sp - movs r0, #0 - strb r0, [r1] - movs r0, #0xa0 - strb r0, [r1, #1] - ldrb r0, [r4, #0x10] - movs r1, #3 - bl GetWindowAttribute - mov r1, sp - lsls r0, r0, #3 - adds r0, #2 - strh r0, [r1, #2] - ldrb r0, [r4, #0x17] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1a - movs r1, #1 - bl GetFontAttribute - mov r1, sp - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, #2 - strh r0, [r1, #4] - movs r0, #0x80 - lsls r0, r0, #7 - strh r0, [r1, #6] - ldr r0, _081AE94C - strh r0, [r1, #8] - movs r0, #0xf - strb r0, [r1, #0xa] - mov r0, sp - adds r1, r5, #0 - bl ListMenuAddCursorObjectInternal - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - add sp, #0xc - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081AE94C: .4byte 0x0000FFFF - thumb_func_end ListMenuAddCursorObject - - thumb_func_start ListMenuErasePrintedCursor -ListMenuErasePrintedCursor: @ 0x081AE950 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - adds r7, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r8, r1 - ldrb r1, [r7, #0x17] - lsrs r0, r1, #6 - cmp r0, #0 - bne _081AE9CC - lsls r0, r1, #0x1a - lsrs r0, r0, #0x1a - movs r1, #1 - bl GetFontAttribute - adds r4, r0, #0 - ldrb r0, [r7, #0x16] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1d - adds r4, r4, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldrb r0, [r7, #0x17] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1a - movs r1, #0 - bl sub_0800629C - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldrb r0, [r7, #0x17] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1a - movs r1, #1 - bl sub_0800629C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r6, [r7, #0x10] - ldrb r2, [r7, #0x15] - lsls r2, r2, #0x1c - lsrs r1, r2, #4 - orrs r1, r2 - lsrs r1, r1, #0x18 - ldrb r2, [r7, #0x13] - mov r3, r8 - muls r3, r4, r3 - adds r4, r3, #0 - ldrb r3, [r7, #0x14] - lsls r3, r3, #0x1c - lsrs r3, r3, #0x1c - adds r3, r3, r4 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - str r5, [sp] - str r0, [sp, #4] - adds r0, r6, #0 - bl sub_08003A34 -_081AE9CC: - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end ListMenuErasePrintedCursor - - thumb_func_start ListMenuUpdateSelectedRowIndexAndScrollOffset -ListMenuUpdateSelectedRowIndexAndScrollOffset: @ 0x081AE9D8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - lsls r1, r1, #0x18 - ldrh r3, [r4, #0x1a] - ldrh r5, [r4, #0x18] - cmp r1, #0 - bne _081AEA4C - ldrh r0, [r4, #0xe] - cmp r0, #1 - bne _081AE9F0 - movs r2, #0 - b _081AEA02 -_081AE9F0: - ldrh r0, [r4, #0xe] - lsrs r2, r0, #1 - movs r1, #1 - ands r1, r0 - adds r2, r2, r1 - subs r0, r0, r2 - subs r0, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 -_081AEA02: - cmp r5, #0 - bne _081AEA28 - cmp r3, #0 - beq _081AEA8E - ldr r1, [r4] - movs r2, #3 - rsbs r2, r2, #0 -_081AEA10: - subs r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - adds r0, r5, r3 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r0, [r0, #4] - cmp r0, r2 - bne _081AEA92 - cmp r3, #0 - bne _081AEA10 - b _081AEA8E -_081AEA28: - cmp r3, r2 - bls _081AEA48 - ldr r1, [r4] - movs r6, #3 - rsbs r6, r6, #0 -_081AEA32: - subs r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - adds r0, r5, r3 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r0, [r0, #4] - cmp r0, r6 - bne _081AEA92 - cmp r3, r2 - bhi _081AEA32 -_081AEA48: - subs r0, r5, #1 - b _081AEABA -_081AEA4C: - ldrh r0, [r4, #0xe] - cmp r0, #1 - bne _081AEA56 - movs r2, #0 - b _081AEA60 -_081AEA56: - ldrh r0, [r4, #0xe] - lsrs r2, r0, #1 - movs r1, #1 - ands r1, r0 - adds r2, r2, r1 -_081AEA60: - adds r1, r0, #0 - ldrh r0, [r4, #0xc] - subs r0, r0, r1 - cmp r5, r0 - bne _081AEA98 - subs r0, r1, #1 - cmp r3, r0 - bge _081AEA8E - ldr r2, [r4] - movs r6, #3 - rsbs r6, r6, #0 - adds r1, r0, #0 -_081AEA78: - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - adds r0, r5, r3 - lsls r0, r0, #3 - adds r0, r0, r2 - ldr r0, [r0, #4] - cmp r0, r6 - bne _081AEA92 - cmp r3, r1 - blt _081AEA78 -_081AEA8E: - movs r0, #0 - b _081AEAC0 -_081AEA92: - strh r3, [r4, #0x1a] - movs r0, #1 - b _081AEAC0 -_081AEA98: - cmp r3, r2 - bhs _081AEAB8 - ldr r1, [r4] - movs r6, #3 - rsbs r6, r6, #0 -_081AEAA2: - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - adds r0, r5, r3 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r0, [r0, #4] - cmp r0, r6 - bne _081AEA92 - cmp r3, r2 - blo _081AEAA2 -_081AEAB8: - adds r0, r5, #1 -_081AEABA: - strh r2, [r4, #0x1a] - strh r0, [r4, #0x18] - movs r0, #2 -_081AEAC0: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ListMenuUpdateSelectedRowIndexAndScrollOffset - - thumb_func_start ListMenuScroll -ListMenuScroll: @ 0x081AEAC8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - adds r6, r0, #0 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - adds r7, r5, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r8, r2 - ldrh r0, [r6, #0xe] - cmp r5, r0 - blo _081AEB02 - ldrb r0, [r6, #0x10] - ldrb r2, [r6, #0x15] - lsls r2, r2, #0x1c - lsrs r1, r2, #4 - orrs r1, r2 - lsrs r1, r1, #0x18 - bl FillWindowPixelBuffer - ldrh r1, [r6, #0x18] - ldrh r3, [r6, #0xe] - adds r0, r6, #0 - movs r2, #0 - bl ListMenuPrintEntries - b _081AEBF2 -_081AEB02: - ldrb r0, [r6, #0x17] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1a - movs r1, #1 - bl GetFontAttribute - ldrb r1, [r6, #0x16] - lsls r1, r1, #0x1a - lsrs r1, r1, #0x1d - adds r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - mov r1, r8 - cmp r1, #0 - bne _081AEB94 - ldrb r0, [r6, #0x10] - adds r2, r5, #0 - muls r2, r4, r2 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r1, [r6, #0x15] - lsls r1, r1, #0x1c - lsrs r3, r1, #4 - orrs r3, r1 - lsrs r3, r3, #0x18 - movs r1, #1 - bl ScrollWindow - ldrh r1, [r6, #0x18] - adds r0, r6, #0 - movs r2, #0 - adds r3, r5, #0 - bl ListMenuPrintEntries - ldrh r0, [r6, #0xe] - adds r1, r0, #0 - muls r1, r4, r1 - adds r0, r1, #0 - ldrb r4, [r6, #0x14] - lsls r4, r4, #0x1c - lsrs r4, r4, #0x1c - adds r4, r4, r0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldrb r0, [r6, #0x10] - movs r1, #3 - bl GetWindowAttribute - adds r5, r0, #0 - lsls r5, r5, #0x13 - lsrs r5, r5, #0x10 - ldrb r0, [r6, #0x10] - movs r1, #4 - bl GetWindowAttribute - lsls r0, r0, #3 - subs r0, r0, r4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrb r3, [r6, #0x10] - ldrb r2, [r6, #0x15] - lsls r2, r2, #0x1c - lsrs r1, r2, #4 - orrs r1, r2 - lsrs r1, r1, #0x18 - str r5, [sp] - str r0, [sp, #4] - adds r0, r3, #0 - movs r2, #0 - adds r3, r4, #0 - bl sub_08003A34 - b _081AEBF2 -_081AEB94: - ldrb r0, [r6, #0x10] - adds r2, r7, #0 - muls r2, r4, r2 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r1, [r6, #0x15] - lsls r1, r1, #0x1c - lsrs r3, r1, #4 - orrs r3, r1 - lsrs r3, r3, #0x18 - movs r1, #0 - bl ScrollWindow - ldrh r2, [r6, #0xe] - subs r2, r2, r7 - ldrh r1, [r6, #0x18] - adds r1, r1, r2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - adds r0, r6, #0 - adds r3, r7, #0 - bl ListMenuPrintEntries - ldrb r0, [r6, #0x10] - movs r1, #3 - bl GetWindowAttribute - lsls r0, r0, #0x13 - lsrs r0, r0, #0x10 - ldrb r3, [r6, #0x10] - ldrb r2, [r6, #0x15] - lsls r2, r2, #0x1c - lsrs r1, r2, #4 - orrs r1, r2 - lsrs r1, r1, #0x18 - str r0, [sp] - ldrb r0, [r6, #0x14] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - str r0, [sp, #4] - adds r0, r3, #0 - movs r2, #0 - movs r3, #0 - bl sub_08003A34 -_081AEBF2: - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ListMenuScroll - - thumb_func_start ListMenuChangeSelection -ListMenuChangeSelection: @ 0x081AEC00 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov r8, r2 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov sb, r3 - ldrh r0, [r4, #0x1a] - mov sl, r0 - movs r7, #0 - movs r5, #0 - movs r0, #0 - cmp r7, r8 - bhs _081AEC68 -_081AEC2E: - adds r6, r0, #1 - b _081AEC4E -_081AEC32: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldrh r0, [r4, #0x18] - ldrh r1, [r4, #0x1a] - adds r0, r0, r1 - ldr r1, [r4] - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, [r0, #4] - movs r0, #3 - rsbs r0, r0, #0 - cmp r1, r0 - bne _081AEC60 -_081AEC4E: - adds r0, r4, #0 - mov r1, sb - bl ListMenuUpdateSelectedRowIndexAndScrollOffset - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - orrs r5, r0 - cmp r0, #2 - beq _081AEC32 -_081AEC60: - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r8 - blo _081AEC2E -_081AEC68: - ldr r0, [sp] - cmp r0, #0 - beq _081AECC6 - cmp r5, #1 - beq _081AEC7E - cmp r5, #1 - ble _081AEC7A - cmp r5, #3 - ble _081AEC9E -_081AEC7A: - movs r0, #1 - b _081AECC8 -_081AEC7E: - adds r0, r4, #0 - mov r1, sl - bl ListMenuErasePrintedCursor - adds r0, r4, #0 - bl ListMenuDrawCursor - adds r0, r4, #0 - movs r1, #0 - bl ListMenuCallSelectionChangedCallback - ldrb r0, [r4, #0x10] - movs r1, #2 - bl CopyWindowToVram - b _081AECC6 -_081AEC9E: - adds r0, r4, #0 - mov r1, sl - bl ListMenuErasePrintedCursor - adds r0, r4, #0 - adds r1, r7, #0 - mov r2, sb - bl ListMenuScroll - adds r0, r4, #0 - bl ListMenuDrawCursor - adds r0, r4, #0 - movs r1, #0 - bl ListMenuCallSelectionChangedCallback - ldrb r0, [r4, #0x10] - movs r1, #2 - bl CopyWindowToVram -_081AECC6: - movs r0, #0 -_081AECC8: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end ListMenuChangeSelection - - thumb_func_start ListMenuCallSelectionChangedCallback -ListMenuCallSelectionChangedCallback: @ 0x081AECD8 - push {r4, lr} - adds r2, r0, #0 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - ldr r3, [r2, #4] - cmp r3, #0 - beq _081AECFA - ldrh r0, [r2, #0x18] - ldrh r1, [r2, #0x1a] - adds r0, r0, r1 - ldr r1, [r2] - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r0, [r0, #4] - adds r1, r4, #0 - bl _call_via_r3 -_081AECFA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ListMenuCallSelectionChangedCallback - - thumb_func_start ListMenuOverrideSetColors -ListMenuOverrideSetColors: @ 0x081AED00 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r6, _081AED4C - movs r5, #0xf - ands r0, r5 - ldrb r3, [r6] - mov r8, r3 - movs r4, #0x10 - rsbs r4, r4, #0 - adds r3, r4, #0 - mov r7, r8 - ands r3, r7 - orrs r3, r0 - lsrs r1, r1, #0x14 - ands r3, r5 - orrs r3, r1 - strb r3, [r6] - ands r2, r5 - ldrb r0, [r6, #1] - ands r4, r0 - orrs r4, r2 - strb r4, [r6, #1] - ldrb r0, [r6, #3] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r6, #3] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081AED4C: .4byte gUnknown_3006040 - thumb_func_end ListMenuOverrideSetColors - - thumb_func_start ListMenuDefaultCursorMoveFunc -ListMenuDefaultCursorMoveFunc: @ 0x081AED50 - push {lr} - lsls r1, r1, #0x18 - cmp r1, #0 - bne _081AED5E - movs r0, #5 - bl sub_080A306C -_081AED5E: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ListMenuDefaultCursorMoveFunc - - thumb_func_start ListMenuGetUnkIndicatorsStructFields -ListMenuGetUnkIndicatorsStructFields: @ 0x081AED64 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _081AED88 - adds r2, r1, r0 - cmp r3, #0x10 - bhi _081AEE2C - lsls r0, r3, #2 - ldr r1, _081AED8C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081AED88: .4byte gUnknown_3005B68 -_081AED8C: .4byte _081AED90 -_081AED90: @ jump table - .4byte _081AEDD4 @ case 0 - .4byte _081AEDD4 @ case 1 - .4byte _081AEDD8 @ case 2 - .4byte _081AEDDC @ case 3 - .4byte _081AEDE0 @ case 4 - .4byte _081AEDE4 @ case 5 - .4byte _081AEDE8 @ case 6 - .4byte _081AEDEC @ case 7 - .4byte _081AEDF0 @ case 8 - .4byte _081AEDF4 @ case 9 - .4byte _081AEDFA @ case 10 - .4byte _081AEE02 @ case 11 - .4byte _081AEE08 @ case 12 - .4byte _081AEE10 @ case 13 - .4byte _081AEE18 @ case 14 - .4byte _081AEE1E @ case 15 - .4byte _081AEE26 @ case 16 -_081AEDD4: - ldr r0, [r2, #4] - b _081AEE30 -_081AEDD8: - ldrh r0, [r2, #0xc] - b _081AEE30 -_081AEDDC: - ldrh r0, [r2, #0xe] - b _081AEE30 -_081AEDE0: - ldrb r0, [r2, #0x10] - b _081AEE30 -_081AEDE4: - ldrb r0, [r2, #0x11] - b _081AEE30 -_081AEDE8: - ldrb r0, [r2, #0x12] - b _081AEE30 -_081AEDEC: - ldrb r0, [r2, #0x13] - b _081AEE30 -_081AEDF0: - ldrb r0, [r2, #0x14] - b _081AEDFC -_081AEDF4: - ldrb r0, [r2, #0x14] - lsrs r0, r0, #4 - b _081AEE30 -_081AEDFA: - ldrb r0, [r2, #0x15] -_081AEDFC: - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - b _081AEE30 -_081AEE02: - ldrb r0, [r2, #0x15] - lsrs r0, r0, #4 - b _081AEE30 -_081AEE08: - ldrb r0, [r2, #0x16] - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1d - b _081AEE30 -_081AEE10: - ldrb r0, [r2, #0x16] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1d - b _081AEE30 -_081AEE18: - ldrb r0, [r2, #0x16] - lsrs r0, r0, #6 - b _081AEE30 -_081AEE1E: - ldrb r0, [r2, #0x17] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1a - b _081AEE30 -_081AEE26: - ldrb r0, [r2, #0x17] - lsrs r0, r0, #6 - b _081AEE30 -_081AEE2C: - movs r0, #1 - rsbs r0, r0, #0 -_081AEE30: - pop {r1} - bx r1 - thumb_func_end ListMenuGetUnkIndicatorsStructFields - - thumb_func_start ListMenuSetUnkIndicatorsStructField -ListMenuSetUnkIndicatorsStructField: @ 0x081AEE34 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _081AEE58 - adds r3, r1, r0 - cmp r4, #0x10 - bhi _081AEF34 - lsls r0, r4, #2 - ldr r1, _081AEE5C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081AEE58: .4byte gUnknown_3005B68 -_081AEE5C: .4byte _081AEE60 -_081AEE60: @ jump table - .4byte _081AEEA4 @ case 0 - .4byte _081AEEA4 @ case 1 - .4byte _081AEEA8 @ case 2 - .4byte _081AEEAC @ case 3 - .4byte _081AEEB0 @ case 4 - .4byte _081AEEB4 @ case 5 - .4byte _081AEEB8 @ case 6 - .4byte _081AEEBC @ case 7 - .4byte _081AEEC0 @ case 8 - .4byte _081AEECC @ case 9 - .4byte _081AEEDA @ case 10 - .4byte _081AEEE6 @ case 11 - .4byte _081AEEF4 @ case 12 - .4byte _081AEF00 @ case 13 - .4byte _081AEF0E @ case 14 - .4byte _081AEF1C @ case 15 - .4byte _081AEF28 @ case 16 -_081AEEA4: - str r2, [r3, #4] - b _081AEF34 -_081AEEA8: - strh r2, [r3, #0xc] - b _081AEF34 -_081AEEAC: - strh r2, [r3, #0xe] - b _081AEF34 -_081AEEB0: - strb r2, [r3, #0x10] - b _081AEF34 -_081AEEB4: - strb r2, [r3, #0x11] - b _081AEF34 -_081AEEB8: - strb r2, [r3, #0x12] - b _081AEF34 -_081AEEBC: - strb r2, [r3, #0x13] - b _081AEF34 -_081AEEC0: - movs r0, #0xf - ands r2, r0 - ldrb r1, [r3, #0x14] - movs r0, #0x10 - rsbs r0, r0, #0 - b _081AEED2 -_081AEECC: - lsls r2, r2, #4 - ldrb r1, [r3, #0x14] - movs r0, #0xf -_081AEED2: - ands r0, r1 - orrs r0, r2 - strb r0, [r3, #0x14] - b _081AEF34 -_081AEEDA: - movs r0, #0xf - ands r2, r0 - ldrb r1, [r3, #0x15] - movs r0, #0x10 - rsbs r0, r0, #0 - b _081AEEEC -_081AEEE6: - lsls r2, r2, #4 - ldrb r1, [r3, #0x15] - movs r0, #0xf -_081AEEEC: - ands r0, r1 - orrs r0, r2 - strb r0, [r3, #0x15] - b _081AEF34 -_081AEEF4: - movs r0, #7 - ands r2, r0 - ldrb r1, [r3, #0x16] - movs r0, #8 - rsbs r0, r0, #0 - b _081AEF14 -_081AEF00: - movs r0, #7 - ands r2, r0 - lsls r2, r2, #3 - ldrb r1, [r3, #0x16] - movs r0, #0x39 - rsbs r0, r0, #0 - b _081AEF14 -_081AEF0E: - lsls r2, r2, #6 - ldrb r1, [r3, #0x16] - movs r0, #0x3f -_081AEF14: - ands r0, r1 - orrs r0, r2 - strb r0, [r3, #0x16] - b _081AEF34 -_081AEF1C: - movs r0, #0x3f - ands r2, r0 - ldrb r1, [r3, #0x17] - movs r0, #0x40 - rsbs r0, r0, #0 - b _081AEF2E -_081AEF28: - lsls r2, r2, #6 - ldrb r1, [r3, #0x17] - movs r0, #0x3f -_081AEF2E: - ands r0, r1 - orrs r0, r2 - strb r0, [r3, #0x17] -_081AEF34: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ListMenuSetUnkIndicatorsStructField - - thumb_func_start SpriteCallback_ScrollIndicatorArrow -SpriteCallback_ScrollIndicatorArrow: @ 0x081AEF3C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _081AEF4E - cmp r0, #1 - beq _081AEF62 - b _081AEFBC -_081AEF4E: - ldrh r1, [r4, #0x30] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - b _081AEFBC -_081AEF62: - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _081AEF72 - cmp r0, #1 - beq _081AEF98 - ldrh r2, [r4, #0x38] - b _081AEFB6 -_081AEF72: - movs r0, #0x34 - ldrsh r3, [r4, r0] - ldr r1, _081AEF94 - ldrh r2, [r4, #0x38] - lsls r0, r2, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - muls r0, r3, r0 - cmp r0, #0 - bge _081AEF8C - adds r0, #0xff -_081AEF8C: - asrs r0, r0, #8 - strh r0, [r4, #0x24] - b _081AEFB6 - .align 2, 0 -_081AEF94: .4byte gUnknown_82FA8CC -_081AEF98: - movs r0, #0x34 - ldrsh r3, [r4, r0] - ldr r1, _081AEFC4 - ldrh r2, [r4, #0x38] - lsls r0, r2, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - muls r0, r3, r0 - cmp r0, #0 - bge _081AEFB2 - adds r0, #0xff -_081AEFB2: - asrs r0, r0, #8 - strh r0, [r4, #0x26] -_081AEFB6: - ldrh r0, [r4, #0x36] - adds r0, r2, r0 - strh r0, [r4, #0x38] -_081AEFBC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081AEFC4: .4byte gUnknown_82FA8CC - thumb_func_end SpriteCallback_ScrollIndicatorArrow - - thumb_func_start AddScrollIndicatorArrowObject -AddScrollIndicatorArrowObject: @ 0x081AEFC8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x18 - adds r6, r0, #0 - ldr r5, [sp, #0x30] - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov r8, r6 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - mov ip, r5 - mov r4, sp - ldr r0, _081AF04C - ldm r0!, {r5, r6, r7} - stm r4!, {r5, r6, r7} - ldm r0!, {r5, r6, r7} - stm r4!, {r5, r6, r7} - mov r0, sp - movs r4, #0 - strh r3, [r0] - mov r3, ip - strh r3, [r0, #2] - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081AF050 - lsls r3, r0, #4 - adds r3, r3, r0 - lsls r3, r3, #2 - adds r3, r3, r1 - adds r5, r3, #0 - adds r5, #0x3e - ldrb r1, [r5] - movs r2, #4 - orrs r1, r2 - strb r1, [r5] - strh r4, [r3, #0x2e] - ldr r1, _081AF054 - mov r5, r8 - lsls r6, r5, #2 - adds r6, r6, r1 - ldrb r2, [r6] - lsls r1, r2, #0x1c - lsrs r1, r1, #0x1c - strh r1, [r3, #0x30] - lsrs r2, r2, #4 - strh r2, [r3, #0x32] - ldrb r1, [r6, #1] - strh r1, [r3, #0x34] - ldrh r1, [r6, #2] - strh r1, [r3, #0x36] - strh r4, [r3, #0x38] - add sp, #0x18 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081AF04C: .4byte gUnknown_85DFAFC -_081AF050: .4byte gUnknown_20205AC -_081AF054: .4byte gUnknown_85DFAB4 - thumb_func_end AddScrollIndicatorArrowObject - - thumb_func_start AddScrollIndicatorArrowPair -AddScrollIndicatorArrowPair: @ 0x081AF058 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x14 - adds r6, r0, #0 - mov sb, r1 - ldr r0, _081AF0A4 - str r0, [sp, #4] - ldr r5, _081AF0A8 - ldr r0, [sp, #8] - ands r0, r5 - movs r1, #0x80 - lsls r1, r1, #1 - orrs r0, r1 - ldrh r1, [r6, #0xa] - lsls r1, r1, #0x10 - ldr r4, _081AF0AC - ands r0, r4 - orrs r0, r1 - str r0, [sp, #8] - add r0, sp, #4 - bl LoadCompressedSpriteSheet - ldrh r2, [r6, #0xc] - cmp r2, r4 - bne _081AF0B4 - ldr r0, _081AF0B0 - ldrb r1, [r6, #0xe] - lsls r1, r1, #0x14 - movs r2, #0x80 - lsls r2, r2, #0x11 - adds r1, r1, r2 - lsrs r1, r1, #0x10 - movs r2, #0x20 - bl LoadPalette - b _081AF0C6 - .align 2, 0 -_081AF0A4: .4byte gUnknown_85DFB80 -_081AF0A8: .4byte 0xFFFF0000 -_081AF0AC: .4byte 0x0000FFFF -_081AF0B0: .4byte gUnknown_85DFB60 -_081AF0B4: - ldr r0, _081AF164 - str r0, [sp, #0xc] - add r0, sp, #0xc - ldr r1, [r0, #4] - ands r1, r5 - orrs r1, r2 - str r1, [r0, #4] - bl LoadSpritePalette -_081AF0C6: - ldr r0, _081AF168 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r0, r0, #2 - add r0, r8 - lsls r0, r0, #3 - ldr r1, _081AF16C - adds r7, r0, r1 - movs r0, #0 - strb r0, [r7] - mov r0, sb - str r0, [r7, #4] - ldrh r0, [r6, #6] - strh r0, [r7, #8] - ldrh r0, [r6, #8] - strh r0, [r7, #0xa] - ldrh r0, [r6, #0xa] - strh r0, [r7, #0xe] - ldrh r0, [r6, #0xc] - strh r0, [r7, #0x10] - ldrb r0, [r6] - ldrb r1, [r6, #1] - ldrb r2, [r6, #2] - ldrh r3, [r6, #0xa] - ldrh r4, [r6, #0xc] - str r4, [sp] - bl AddScrollIndicatorArrowObject - strb r0, [r7, #0xc] - ldrb r0, [r6, #3] - ldrb r1, [r6, #4] - ldrb r2, [r6, #5] - ldrh r3, [r6, #0xa] - ldrh r4, [r6, #0xc] - str r4, [sp] - bl AddScrollIndicatorArrowObject - strb r0, [r7, #0xd] - ldrh r1, [r6, #0xc] - ldr r0, _081AF170 - cmp r1, r0 - bne _081AF154 - ldr r5, _081AF174 - ldrb r0, [r7, #0xc] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrb r3, [r6, #0xe] - lsls r3, r3, #4 - ldrb r4, [r1, #5] - movs r2, #0xf - adds r0, r2, #0 - ands r0, r4 - orrs r0, r3 - strb r0, [r1, #5] - ldrb r1, [r7, #0xd] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r1, [r6, #0xe] - lsls r1, r1, #4 - ldrb r3, [r0, #5] - ands r2, r3 - orrs r2, r1 - strb r2, [r0, #5] -_081AF154: - mov r0, r8 - add sp, #0x14 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081AF164: .4byte gUnknown_85DFB60 -_081AF168: .4byte Task_ScrollIndicatorArrowPair -_081AF16C: .4byte gUnknown_3005B68 -_081AF170: .4byte 0x0000FFFF -_081AF174: .4byte gUnknown_20205AC - thumb_func_end AddScrollIndicatorArrowPair - - thumb_func_start AddScrollIndicatorArrowPairParameterized -AddScrollIndicatorArrowPairParameterized: @ 0x081AF178 - push {r4, lr} - adds r4, r1, #0 - subs r0, #2 - cmp r0, #1 - bhi _081AF19C - ldr r0, _081AF198 - movs r1, #2 - strb r1, [r0] - strb r4, [r0, #1] - strb r2, [r0, #2] - movs r1, #3 - strb r1, [r0, #3] - strb r4, [r0, #4] - strb r3, [r0, #5] - b _081AF1AE - .align 2, 0 -_081AF198: .4byte gUnknown_203CB58 -_081AF19C: - ldr r0, _081AF1D8 - movs r1, #0 - strb r1, [r0] - strb r2, [r0, #1] - strb r4, [r0, #2] - movs r1, #1 - strb r1, [r0, #3] - strb r3, [r0, #4] - strb r4, [r0, #5] -_081AF1AE: - adds r2, r0, #0 - movs r1, #0 - movs r0, #0 - strh r0, [r2, #6] - ldr r0, [sp, #8] - strh r0, [r2, #8] - ldr r0, [sp, #0xc] - strh r0, [r2, #0xa] - ldr r0, [sp, #0x10] - strh r0, [r2, #0xc] - strb r1, [r2, #0xe] - adds r0, r2, #0 - ldr r1, [sp, #0x14] - bl AddScrollIndicatorArrowPair - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081AF1D8: .4byte gUnknown_203CB58 - thumb_func_end AddScrollIndicatorArrowPairParameterized - - thumb_func_start Task_ScrollIndicatorArrowPair -Task_ScrollIndicatorArrowPair: @ 0x081AF1DC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _081AF214 - adds r4, r1, r0 - ldr r0, [r4, #4] - ldrh r5, [r0] - ldrh r0, [r4, #8] - cmp r5, r0 - bne _081AF220 - ldr r0, _081AF218 - cmp r5, r0 - beq _081AF220 - ldr r3, _081AF21C - ldrb r1, [r4, #0xc] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - b _081AF236 - .align 2, 0 -_081AF214: .4byte gUnknown_3005B68 -_081AF218: .4byte 0x0000FFFF -_081AF21C: .4byte gUnknown_20205AC -_081AF220: - ldr r3, _081AF254 - ldrb r1, [r4, #0xc] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 -_081AF236: - strb r1, [r0] - ldrh r0, [r4, #0xa] - cmp r5, r0 - bne _081AF258 - ldrb r1, [r4, #0xd] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - b _081AF26C - .align 2, 0 -_081AF254: .4byte gUnknown_20205AC -_081AF258: - ldrb r1, [r4, #0xd] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 -_081AF26C: - strb r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end Task_ScrollIndicatorArrowPair - - thumb_func_start Task_ScrollIndicatorArrowPairOnMainMenu -Task_ScrollIndicatorArrowPairOnMainMenu: @ 0x081AF274 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _081AF2B8 - adds r4, r1, r0 - movs r1, #0x1e - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _081AF2C0 - ldr r3, _081AF2BC - ldrb r1, [r4, #0xc] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - ldrb r1, [r4, #0xd] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - b _081AF2EA - .align 2, 0 -_081AF2B8: .4byte gUnknown_3005B68 -_081AF2BC: .4byte gUnknown_20205AC -_081AF2C0: - ldr r3, _081AF2F4 - ldrb r1, [r4, #0xc] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r4, #0xd] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 -_081AF2EA: - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081AF2F4: .4byte gUnknown_20205AC - thumb_func_end Task_ScrollIndicatorArrowPairOnMainMenu - - thumb_func_start RemoveScrollIndicatorArrowPair -RemoveScrollIndicatorArrowPair: @ 0x081AF2F8 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r6, r0, #0 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _081AF34C - adds r5, r0, r1 - ldrh r0, [r5, #0xe] - ldr r4, _081AF350 - cmp r0, r4 - beq _081AF316 - bl FreeSpriteTilesByTag -_081AF316: - ldrh r0, [r5, #0x10] - cmp r0, r4 - beq _081AF320 - bl FreeSpritePaletteByTag -_081AF320: - ldrb r1, [r5, #0xc] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _081AF354 - adds r0, r0, r4 - bl DestroySprite - ldrb r1, [r5, #0xd] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - adds r0, r6, #0 - bl DestroyTask - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081AF34C: .4byte gUnknown_3005B68 -_081AF350: .4byte 0x0000FFFF -_081AF354: .4byte gUnknown_20205AC - thumb_func_end RemoveScrollIndicatorArrowPair - - thumb_func_start ListMenuAddCursorObjectInternal -ListMenuAddCursorObjectInternal: @ 0x081AF358 - push {lr} - cmp r1, #0 - beq _081AF362 - cmp r1, #1 - beq _081AF368 -_081AF362: - bl ListMenuAddRedOutlineCursorObject - b _081AF36C -_081AF368: - bl ListMenuAddRedArrowCursorObject -_081AF36C: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - thumb_func_end ListMenuAddCursorObjectInternal - - thumb_func_start ListMenuUpdateCursorObject -ListMenuUpdateCursorObject: @ 0x081AF374 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - cmp r3, #0 - beq _081AF38C - cmp r3, #1 - beq _081AF392 - b _081AF396 -_081AF38C: - bl ListMenuUpdateRedOutlineCursorObject - b _081AF396 -_081AF392: - bl ListMenuUpdateRedArrowCursorObject -_081AF396: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ListMenuUpdateCursorObject - - thumb_func_start ListMenuRemoveCursorObject -ListMenuRemoveCursorObject: @ 0x081AF39C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r1, #0 - beq _081AF3AC - cmp r1, #1 - beq _081AF3B2 - b _081AF3B6 -_081AF3AC: - bl ListMenuRemoveRedOutlineCursorObject - b _081AF3B6 -_081AF3B2: - bl ListMenuRemoveRedArrowCursorObject -_081AF3B6: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ListMenuRemoveCursorObject - - thumb_func_start sub_081AF3BC -sub_081AF3BC: @ 0x081AF3BC - bx lr - .align 2, 0 - thumb_func_end sub_081AF3BC - - thumb_func_start ListMenuGetRedOutlineCursorSpriteCount -ListMenuGetRedOutlineCursorSpriteCount: @ 0x081AF3C0 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r3, #4 - cmp r0, #0x10 - bls _081AF3E0 - movs r2, #8 - subs r0, #8 - cmp r2, r0 - bge _081AF3E0 -_081AF3D8: - adds r3, #2 - adds r2, #8 - cmp r2, r0 - blt _081AF3D8 -_081AF3E0: - cmp r1, #0x10 - bls _081AF3F4 - movs r2, #8 - subs r1, #8 - cmp r2, r1 - bge _081AF3F4 -_081AF3EC: - adds r3, #2 - adds r2, #8 - cmp r2, r1 - blt _081AF3EC -_081AF3F4: - lsls r0, r3, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - thumb_func_end ListMenuGetRedOutlineCursorSpriteCount - - thumb_func_start ListMenuSetUpRedOutlineCursorSpriteOamTable -ListMenuSetUpRedOutlineCursorSpriteOamTable: @ 0x081AF3FC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r3, r2, #0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sb, r1 - ldr r0, _081AF4E0 - ldr r0, [r0] - str r0, [r3] - movs r1, #0x88 - strb r1, [r3] - strb r1, [r3, #1] - ldr r0, _081AF4E4 - ldr r0, [r0] - str r0, [r3, #4] - mov r2, r8 - adds r2, #0x80 - strb r2, [r3, #4] - strb r1, [r3, #5] - ldr r0, _081AF4E8 - ldr r0, [r0] - str r0, [r3, #8] - strb r1, [r3, #8] - mov r4, sb - adds r4, #0x80 - strb r4, [r3, #9] - ldr r0, _081AF4EC - ldr r0, [r0] - str r0, [r3, #0xc] - strb r2, [r3, #0xc] - strb r4, [r3, #0xd] - movs r0, #4 - mov ip, r0 - mov r2, r8 - cmp r2, #0x10 - bls _081AF490 - movs r2, #8 - mov r5, r8 - subs r5, #8 - cmp r2, r5 - bge _081AF490 - ldr r0, _081AF4F0 - ldr r0, [r0] - str r0, [sp] - ldr r0, _081AF4F4 - ldr r6, [r0] - adds r1, r3, #0 - adds r1, #0x10 - movs r7, #0x88 - mov sl, r7 -_081AF46E: - ldr r0, [sp] - str r0, [r1] - adds r0, r2, #0 - subs r0, #0x78 - strb r0, [r1] - mov r7, sl - strb r7, [r1, #1] - adds r1, #4 - str r6, [r1] - strb r0, [r1] - strb r4, [r1, #1] - adds r1, #4 - movs r0, #2 - add ip, r0 - adds r2, #8 - cmp r2, r5 - blt _081AF46E -_081AF490: - mov r2, sb - cmp r2, #0x10 - bls _081AF4CE - movs r1, #8 - mov r4, sb - subs r4, #8 - cmp r1, r4 - bge _081AF4CE - ldr r0, _081AF4F8 - ldr r6, [r0] - ldr r0, _081AF4FC - ldr r5, [r0] - mov r7, ip - lsls r0, r7, #2 - adds r2, r0, r3 - movs r7, #0x88 - mov r3, r8 - adds r3, #0x80 -_081AF4B4: - str r6, [r2] - strb r7, [r2] - adds r0, r1, #0 - subs r0, #0x78 - strb r0, [r2, #1] - adds r2, #4 - str r5, [r2] - strb r3, [r2] - strb r0, [r2, #1] - adds r2, #4 - adds r1, #8 - cmp r1, r4 - blt _081AF4B4 -_081AF4CE: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081AF4E0: .4byte gUnknown_85DFB14 -_081AF4E4: .4byte gUnknown_85DFB18 -_081AF4E8: .4byte gUnknown_85DFB2C -_081AF4EC: .4byte gUnknown_85DFB30 -_081AF4F0: .4byte gUnknown_85DFB1C -_081AF4F4: .4byte gUnknown_85DFB28 -_081AF4F8: .4byte gUnknown_85DFB20 -_081AF4FC: .4byte gUnknown_85DFB24 - thumb_func_end ListMenuSetUpRedOutlineCursorSpriteOamTable - - thumb_func_start ListMenuAddRedOutlineCursorObject -ListMenuAddRedOutlineCursorObject: @ 0x081AF500 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x28 - adds r6, r0, #0 - ldr r0, _081AF54C - str r0, [sp, #0x18] - ldr r5, _081AF550 - add r0, sp, #0x18 - ldr r1, [r0, #4] - ands r1, r5 - movs r2, #0x80 - lsls r2, r2, #1 - orrs r1, r2 - ldrh r2, [r6, #6] - lsls r2, r2, #0x10 - ldr r3, _081AF554 - ands r1, r3 - orrs r1, r2 - str r1, [r0, #4] - bl LoadCompressedSpriteSheet - ldrh r2, [r6, #8] - ldr r7, _081AF554 - cmp r2, r7 - bne _081AF55C - ldr r0, _081AF558 - ldrb r1, [r6, #0xa] - lsls r1, r1, #0x14 - movs r2, #0x80 - lsls r2, r2, #0x11 - adds r1, r1, r2 - lsrs r1, r1, #0x10 - movs r2, #0x20 - bl LoadPalette - b _081AF56E - .align 2, 0 -_081AF54C: .4byte gUnknown_85DFBF0 -_081AF550: .4byte 0xFFFF0000 -_081AF554: .4byte 0x0000FFFF -_081AF558: .4byte gUnknown_85DFB60 -_081AF55C: - ldr r0, _081AF654 - str r0, [sp, #0x20] - add r0, sp, #0x20 - ldr r1, [r0, #4] - ands r1, r5 - orrs r1, r2 - str r1, [r0, #4] - bl LoadSpritePalette -_081AF56E: - ldr r0, _081AF658 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r4, r0, #0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _081AF65C - adds r5, r0, r1 - ldrh r0, [r6, #6] - movs r3, #0 - mov r8, r3 - strh r0, [r5, #0xe] - ldrh r0, [r6, #8] - strh r0, [r5, #0x10] - ldrh r0, [r6, #2] - ldrh r1, [r6, #4] - bl ListMenuGetRedOutlineCursorSpriteCount - strb r0, [r5] - ldrb r0, [r5] - lsls r0, r0, #2 - bl sub_08000BC8 - adds r2, r0, #0 - str r2, [r5, #8] - str r2, [r5, #4] - ldrh r0, [r6, #2] - ldrh r1, [r6, #4] - bl ListMenuSetUpRedOutlineCursorSpriteOamTable - mov r1, sp - ldr r0, _081AF660 - ldm r0!, {r2, r3, r7} - stm r1!, {r2, r3, r7} - ldm r0!, {r2, r3, r7} - stm r1!, {r2, r3, r7} - mov r1, sp - ldrh r0, [r6, #6] - strh r0, [r1] - ldrh r0, [r6, #8] - strh r0, [r1, #2] - ldrb r1, [r6] - adds r1, #0x78 - ldrb r2, [r6, #1] - adds r2, #0x78 - mov r0, sp - movs r3, #0 - bl CreateSprite - strb r0, [r5, #0xc] - ldrb r1, [r5, #0xc] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r7, _081AF664 - adds r0, r0, r7 - adds r1, r5, #0 - bl SetSubspriteTables - ldrb r0, [r5, #0xc] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r7 - ldrb r2, [r1, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #5] - ldrb r1, [r5, #0xc] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - adds r0, #0x43 - mov r1, r8 - strb r1, [r0] - ldrb r1, [r5, #0xc] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - adds r0, #0x42 - ldrb r2, [r0] - movs r1, #0x40 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - ldrh r1, [r6, #8] - ldr r0, _081AF668 - cmp r1, r0 - bne _081AF646 - ldrb r0, [r5, #0xc] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r7 - ldrb r2, [r6, #0xa] - lsls r2, r2, #4 - ldrb r3, [r1, #5] - movs r0, #0xf - ands r0, r3 - orrs r0, r2 - strb r0, [r1, #5] -_081AF646: - adds r0, r4, #0 - add sp, #0x28 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081AF654: .4byte gUnknown_85DFB60 -_081AF658: .4byte sub_081AF3BC -_081AF65C: .4byte gUnknown_3005B68 -_081AF660: .4byte gUnknown_82BF314 -_081AF664: .4byte gUnknown_20205AC -_081AF668: .4byte 0x0000FFFF - thumb_func_end ListMenuAddRedOutlineCursorObject - - thumb_func_start ListMenuUpdateRedOutlineCursorObject -ListMenuUpdateRedOutlineCursorObject: @ 0x081AF66C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - lsls r3, r0, #2 - adds r3, r3, r0 - lsls r3, r3, #3 - ldr r0, _081AF6A8 - adds r3, r3, r0 - ldr r5, _081AF6AC - ldrb r4, [r3, #0xc] - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r1, #0x78 - strh r1, [r0, #0x20] - ldrb r1, [r3, #0xc] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r2, #0x78 - strh r2, [r0, #0x22] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081AF6A8: .4byte gUnknown_3005B68 -_081AF6AC: .4byte gUnknown_20205AC - thumb_func_end ListMenuUpdateRedOutlineCursorObject - - thumb_func_start ListMenuRemoveRedOutlineCursorObject -ListMenuRemoveRedOutlineCursorObject: @ 0x081AF6B0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _081AF6FC - adds r4, r0, r1 - ldr r0, [r4, #8] - bl Free - ldrh r0, [r4, #0xe] - ldr r6, _081AF700 - cmp r0, r6 - beq _081AF6D4 - bl FreeSpriteTilesByTag -_081AF6D4: - ldrh r0, [r4, #0x10] - cmp r0, r6 - beq _081AF6DE - bl FreeSpritePaletteByTag -_081AF6DE: - ldrb r1, [r4, #0xc] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _081AF704 - adds r0, r0, r1 - bl DestroySprite - adds r0, r5, #0 - bl DestroyTask - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081AF6FC: .4byte gUnknown_3005B68 -_081AF700: .4byte 0x0000FFFF -_081AF704: .4byte gUnknown_20205AC - thumb_func_end ListMenuRemoveRedOutlineCursorObject - - thumb_func_start SpriteCallback_RedArrowCursor -SpriteCallback_RedArrowCursor: @ 0x081AF708 - push {lr} - adds r2, r0, #0 - ldr r1, _081AF730 - ldrh r3, [r2, #0x2e] - lsls r0, r3, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bge _081AF720 - adds r0, #0x3f -_081AF720: - asrs r0, r0, #6 - strh r0, [r2, #0x24] - adds r0, r3, #0 - adds r0, #8 - strh r0, [r2, #0x2e] - pop {r0} - bx r0 - .align 2, 0 -_081AF730: .4byte gUnknown_82FA8CC - thumb_func_end SpriteCallback_RedArrowCursor - - thumb_func_start sub_081AF734 -sub_081AF734: @ 0x081AF734 - bx lr - .align 2, 0 - thumb_func_end sub_081AF734 - - thumb_func_start ListMenuAddRedArrowCursorObject -ListMenuAddRedArrowCursorObject: @ 0x081AF738 - push {r4, r5, r6, r7, lr} - sub sp, #0x28 - adds r5, r0, #0 - ldr r0, _081AF77C - str r0, [sp, #0x18] - ldr r6, _081AF780 - add r0, sp, #0x18 - ldr r1, [r0, #4] - ands r1, r6 - movs r2, #0x80 - orrs r1, r2 - ldrh r2, [r5, #6] - lsls r2, r2, #0x10 - ldr r4, _081AF784 - ands r1, r4 - orrs r1, r2 - str r1, [r0, #4] - bl LoadCompressedSpriteSheet - ldrh r2, [r5, #8] - cmp r2, r4 - bne _081AF78C - ldr r0, _081AF788 - ldrb r1, [r5, #0xa] - lsls r1, r1, #0x14 - movs r2, #0x80 - lsls r2, r2, #0x11 - adds r1, r1, r2 - lsrs r1, r1, #0x10 - movs r2, #0x20 - bl LoadPalette - b _081AF79E - .align 2, 0 -_081AF77C: .4byte gUnknown_85DFC30 -_081AF780: .4byte 0xFFFF0000 -_081AF784: .4byte 0x0000FFFF -_081AF788: .4byte gUnknown_85DFB60 -_081AF78C: - ldr r0, _081AF828 - str r0, [sp, #0x20] - add r0, sp, #0x20 - ldr r1, [r0, #4] - ands r1, r6 - orrs r1, r2 - str r1, [r0, #4] - bl LoadSpritePalette -_081AF79E: - ldr r0, _081AF82C - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r6, r0, #0 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _081AF830 - adds r4, r0, r1 - ldrh r0, [r5, #6] - strh r0, [r4, #2] - ldrh r0, [r5, #8] - strh r0, [r4, #4] - mov r1, sp - ldr r0, _081AF834 - ldm r0!, {r2, r3, r7} - stm r1!, {r2, r3, r7} - ldm r0!, {r2, r3, r7} - stm r1!, {r2, r3, r7} - mov r1, sp - ldrh r0, [r5, #6] - strh r0, [r1] - ldrh r0, [r5, #8] - strh r0, [r1, #2] - ldrb r1, [r5] - ldrb r2, [r5, #1] - mov r0, sp - movs r3, #0 - bl CreateSprite - strb r0, [r4] - ldr r3, _081AF838 - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r2, #8 - strh r2, [r0, #0x24] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r2, [r0, #0x26] - ldrh r1, [r5, #8] - ldr r0, _081AF83C - cmp r1, r0 - bne _081AF81E - ldrb r0, [r4] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrb r2, [r5, #0xa] - lsls r2, r2, #4 - ldrb r3, [r1, #5] - movs r0, #0xf - ands r0, r3 - orrs r0, r2 - strb r0, [r1, #5] -_081AF81E: - adds r0, r6, #0 - add sp, #0x28 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081AF828: .4byte gUnknown_85DFB60 -_081AF82C: .4byte sub_081AF734 -_081AF830: .4byte gUnknown_3005B68 -_081AF834: .4byte gUnknown_85DFB48 -_081AF838: .4byte gUnknown_20205AC -_081AF83C: .4byte 0x0000FFFF - thumb_func_end ListMenuAddRedArrowCursorObject - - thumb_func_start ListMenuUpdateRedArrowCursorObject -ListMenuUpdateRedArrowCursorObject: @ 0x081AF840 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r3, r0, #2 - adds r3, r3, r0 - lsls r3, r3, #3 - ldr r0, _081AF870 - adds r3, r3, r0 - ldr r5, _081AF874 - ldrb r4, [r3] - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r1, [r0, #0x20] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r2, [r0, #0x22] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081AF870: .4byte gUnknown_3005B68 -_081AF874: .4byte gUnknown_20205AC - thumb_func_end ListMenuUpdateRedArrowCursorObject - - thumb_func_start ListMenuRemoveRedArrowCursorObject -ListMenuRemoveRedArrowCursorObject: @ 0x081AF878 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _081AF8BC - adds r4, r0, r1 - ldrh r0, [r4, #2] - ldr r6, _081AF8C0 - cmp r0, r6 - beq _081AF896 - bl FreeSpriteTilesByTag -_081AF896: - ldrh r0, [r4, #4] - cmp r0, r6 - beq _081AF8A0 - bl FreeSpritePaletteByTag -_081AF8A0: - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _081AF8C4 - adds r0, r0, r1 - bl DestroySprite - adds r0, r5, #0 - bl DestroyTask - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081AF8BC: .4byte gUnknown_3005B68 -_081AF8C0: .4byte 0x0000FFFF -_081AF8C4: .4byte gUnknown_20205AC - thumb_func_end ListMenuRemoveRedArrowCursorObject - - thumb_func_start DynamicPlaceholderTextUtil_Reset -DynamicPlaceholderTextUtil_Reset: @ 0x081AF8C8 - push {lr} - ldr r1, _081AF8E0 - movs r2, #0 - adds r0, r1, #0 - adds r0, #0x1c -_081AF8D2: - str r2, [r0] - subs r0, #4 - cmp r0, r1 - bge _081AF8D2 - pop {r0} - bx r0 - .align 2, 0 -_081AF8E0: .4byte gUnknown_203CB68 - thumb_func_end DynamicPlaceholderTextUtil_Reset - - thumb_func_start DynamicPlaceholderTextUtil_SetPlaceholderPtr -DynamicPlaceholderTextUtil_SetPlaceholderPtr: @ 0x081AF8E4 - push {lr} - adds r2, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #7 - bhi _081AF8F8 - ldr r1, _081AF8FC - lsls r0, r0, #2 - adds r0, r0, r1 - str r2, [r0] -_081AF8F8: - pop {r0} - bx r0 - .align 2, 0 -_081AF8FC: .4byte gUnknown_203CB68 - thumb_func_end DynamicPlaceholderTextUtil_SetPlaceholderPtr - - thumb_func_start DynamicPlaceholderTextUtil_ExpandPlaceholders -DynamicPlaceholderTextUtil_ExpandPlaceholders: @ 0x081AF900 - push {r4, r5, lr} - adds r2, r0, #0 - adds r4, r1, #0 - ldrb r1, [r4] - adds r0, r1, #0 - cmp r0, #0xff - beq _081AF940 - ldr r5, _081AF91C -_081AF910: - cmp r1, #0xf7 - beq _081AF920 - strb r1, [r2] - adds r4, #1 - adds r2, #1 - b _081AF938 - .align 2, 0 -_081AF91C: .4byte gUnknown_203CB68 -_081AF920: - adds r4, #1 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - cmp r1, #0 - beq _081AF936 - adds r0, r2, #0 - bl StringCopy - adds r2, r0, #0 -_081AF936: - adds r4, #1 -_081AF938: - ldrb r1, [r4] - adds r0, r1, #0 - cmp r0, #0xff - bne _081AF910 -_081AF940: - movs r0, #0xff - strb r0, [r2] - adds r0, r2, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end DynamicPlaceholderTextUtil_ExpandPlaceholders - - thumb_func_start sub_081AF94C -sub_081AF94C: @ 0x081AF94C - lsls r0, r0, #0x18 - ldr r1, _081AF958 - lsrs r0, r0, #0x16 - adds r0, r0, r1 - ldr r0, [r0] - bx lr - .align 2, 0 -_081AF958: .4byte gUnknown_203CB68 - thumb_func_end sub_081AF94C - - thumb_func_start IsCurMapInLocationList -IsCurMapInLocationList: @ 0x081AF95C - push {r4, lr} - adds r2, r0, #0 - ldr r0, _081AF98C - ldr r0, [r0] - movs r1, #4 - ldrsb r1, [r0, r1] - lsls r1, r1, #8 - ldrb r0, [r0, #5] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldrh r0, [r2] - ldr r1, _081AF990 - cmp r0, r1 - beq _081AF99C - adds r4, r1, #0 - adds r1, r2, #0 -_081AF982: - ldrh r0, [r1] - cmp r0, r3 - bne _081AF994 - movs r0, #1 - b _081AF99E - .align 2, 0 -_081AF98C: .4byte gUnknown_3005AEC -_081AF990: .4byte 0x0000FFFF -_081AF994: - adds r1, #2 - ldrh r0, [r1] - cmp r0, r4 - bne _081AF982 -_081AF99C: - movs r0, #0 -_081AF99E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end IsCurMapInLocationList - - thumb_func_start IsCurMapPokeCenter -IsCurMapPokeCenter: @ 0x081AF9A4 - push {lr} - ldr r0, _081AF9B0 - bl IsCurMapInLocationList - pop {r1} - bx r1 - .align 2, 0 -_081AF9B0: .4byte gUnknown_85DFC74 - thumb_func_end IsCurMapPokeCenter - - thumb_func_start IsCurMapReloadLocation -IsCurMapReloadLocation: @ 0x081AF9B4 - push {lr} - ldr r0, _081AF9C0 - bl IsCurMapInLocationList - pop {r1} - bx r1 - .align 2, 0 -_081AF9C0: .4byte gUnknown_85DFCC2 - thumb_func_end IsCurMapReloadLocation - - thumb_func_start sub_081AF9C4 -sub_081AF9C4: @ 0x081AF9C4 - push {lr} - ldr r0, _081AF9D0 - bl IsCurMapInLocationList - pop {r1} - bx r1 - .align 2, 0 -_081AF9D0: .4byte gUnknown_85DFCC6 - thumb_func_end sub_081AF9C4 - - thumb_func_start TrySetPokeCenterWarpStatus -TrySetPokeCenterWarpStatus: @ 0x081AF9D4 - push {lr} - bl IsCurMapPokeCenter - cmp r0, #0 - bne _081AF9F0 - ldr r0, _081AF9EC - ldr r2, [r0] - ldrb r1, [r2, #9] - movs r0, #0xfd - ands r0, r1 - b _081AF9FA - .align 2, 0 -_081AF9EC: .4byte gUnknown_3005AF0 -_081AF9F0: - ldr r0, _081AFA00 - ldr r2, [r0] - ldrb r1, [r2, #9] - movs r0, #2 - orrs r0, r1 -_081AF9FA: - strb r0, [r2, #9] - pop {r0} - bx r0 - .align 2, 0 -_081AFA00: .4byte gUnknown_3005AF0 - thumb_func_end TrySetPokeCenterWarpStatus - - thumb_func_start TrySetReloadWarpStatus -TrySetReloadWarpStatus: @ 0x081AFA04 - push {lr} - bl IsCurMapReloadLocation - cmp r0, #0 - bne _081AFA20 - ldr r0, _081AFA1C - ldr r2, [r0] - ldrb r1, [r2, #9] - movs r0, #0xfb - ands r0, r1 - b _081AFA2A - .align 2, 0 -_081AFA1C: .4byte gUnknown_3005AF0 -_081AFA20: - ldr r0, _081AFA30 - ldr r2, [r0] - ldrb r1, [r2, #9] - movs r0, #4 - orrs r0, r1 -_081AFA2A: - strb r0, [r2, #9] - pop {r0} - bx r0 - .align 2, 0 -_081AFA30: .4byte gUnknown_3005AF0 - thumb_func_end TrySetReloadWarpStatus - - thumb_func_start sub_081AFA34 -sub_081AFA34: @ 0x081AFA34 - push {lr} - bl sub_081AF9C4 - cmp r0, #0 - bne _081AFA50 - ldr r0, _081AFA4C - ldr r2, [r0] - ldrb r1, [r2, #9] - movs r0, #0xf7 - ands r0, r1 - b _081AFA5A - .align 2, 0 -_081AFA4C: .4byte gUnknown_3005AF0 -_081AFA50: - ldr r0, _081AFA60 - ldr r2, [r0] - ldrb r1, [r2, #9] - movs r0, #8 - orrs r0, r1 -_081AFA5A: - strb r0, [r2, #9] - pop {r0} - bx r0 - .align 2, 0 -_081AFA60: .4byte gUnknown_3005AF0 - thumb_func_end sub_081AFA34 - - thumb_func_start TrySetMapSaveWarpStatus -TrySetMapSaveWarpStatus: @ 0x081AFA64 - push {lr} - bl TrySetPokeCenterWarpStatus - bl TrySetReloadWarpStatus - bl sub_081AFA34 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end TrySetMapSaveWarpStatus - - thumb_func_start sub_081AFA78 -sub_081AFA78: @ 0x081AFA78 - ldr r0, _081AFAA4 - ldr r2, [r0] - adds r2, #0xa8 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #8 - orrs r0, r1 - movs r1, #1 - orrs r0, r1 - movs r1, #2 - orrs r0, r1 - movs r1, #4 - orrs r0, r1 - movs r1, #0x10 - orrs r0, r1 - movs r1, #0x20 - orrs r0, r1 - movs r1, #8 - orrs r0, r1 - str r0, [r2] - bx lr - .align 2, 0 -_081AFAA4: .4byte gUnknown_3005AF0 - thumb_func_end sub_081AFA78 - - thumb_func_start sub_081AFAA8 -sub_081AFAA8: @ 0x081AFAA8 - ldr r0, _081AFAB8 - ldr r2, [r0] - ldrb r1, [r2, #9] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #9] - bx lr - .align 2, 0 -_081AFAB8: .4byte gUnknown_3005AF0 - thumb_func_end sub_081AFAA8 - - thumb_func_start AllocItemIconTemporaryBuffers -AllocItemIconTemporaryBuffers: @ 0x081AFABC - push {r4, r5, lr} - ldr r5, _081AFAE4 - movs r0, #0x90 - lsls r0, r0, #1 - bl sub_08000BC8 - str r0, [r5] - cmp r0, #0 - beq _081AFAF2 - ldr r4, _081AFAE8 - movs r0, #0x80 - lsls r0, r0, #2 - bl AllocZeroed - str r0, [r4] - cmp r0, #0 - beq _081AFAEC - movs r0, #1 - b _081AFAF4 - .align 2, 0 -_081AFAE4: .4byte gUnknown_203CB88 -_081AFAE8: .4byte gUnknown_203CB8C -_081AFAEC: - ldr r0, [r5] - bl Free -_081AFAF2: - movs r0, #0 -_081AFAF4: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end AllocItemIconTemporaryBuffers - - thumb_func_start FreeItemIconTemporaryBuffers -FreeItemIconTemporaryBuffers: @ 0x081AFAFC - push {lr} - ldr r0, _081AFB14 - ldr r0, [r0] - bl Free - ldr r0, _081AFB18 - ldr r0, [r0] - bl Free - pop {r0} - bx r0 - .align 2, 0 -_081AFB14: .4byte gUnknown_203CB88 -_081AFB18: .4byte gUnknown_203CB8C - thumb_func_end FreeItemIconTemporaryBuffers - - thumb_func_start CopyItemIconPicTo4x4Buffer -CopyItemIconPicTo4x4Buffer: @ 0x081AFB1C - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r5, r1, #0 - movs r4, #0 -_081AFB24: - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #5 - adds r0, r6, r0 - lsls r1, r4, #7 - adds r1, r5, r1 - movs r2, #0x30 - bl CpuSet - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #2 - bls _081AFB24 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CopyItemIconPicTo4x4Buffer - - thumb_func_start AddItemIconSprite -AddItemIconSprite: @ 0x081AFB48 - push {r4, r5, r6, r7, lr} - sub sp, #0x10 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r5, r2, #0x10 - bl AllocItemIconTemporaryBuffers - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081AFC00 - adds r0, r5, #0 - movs r1, #0 - bl GetItemIconPicOrPalette - ldr r4, _081AFBEC - ldr r1, [r4] - bl sub_08034370 - ldr r0, [r4] - ldr r4, _081AFBF0 - ldr r1, [r4] - bl CopyItemIconPicTo4x4Buffer - ldr r0, [r4] - str r0, [sp] - ldr r4, _081AFBF4 - ldr r0, [sp, #4] - ands r0, r4 - movs r1, #0x80 - lsls r1, r1, #2 - orrs r0, r1 - lsls r2, r7, #0x10 - ldr r1, _081AFBF8 - ands r0, r1 - orrs r0, r2 - str r0, [sp, #4] - mov r0, sp - bl LoadSpriteSheet - adds r0, r5, #0 - movs r1, #1 - bl GetItemIconPicOrPalette - str r0, [sp, #8] - add r0, sp, #8 - ldr r1, [r0, #4] - ands r1, r4 - orrs r1, r6 - str r1, [r0, #4] - bl LoadCompressedSpritePalette - movs r0, #0x18 - bl sub_08000BC8 - adds r5, r0, #0 - ldr r0, _081AFBFC - adds r1, r5, #0 - movs r2, #0xc - bl CpuSet - strh r7, [r5] - strh r6, [r5, #2] - adds r0, r5, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl CreateSprite - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl FreeItemIconTemporaryBuffers - adds r0, r5, #0 - bl Free - adds r0, r4, #0 - b _081AFC02 - .align 2, 0 -_081AFBEC: .4byte gUnknown_203CB88 -_081AFBF0: .4byte gUnknown_203CB8C -_081AFBF4: .4byte 0xFFFF0000 -_081AFBF8: .4byte 0x0000FFFF -_081AFBFC: .4byte gUnknown_85E08AC -_081AFC00: - movs r0, #0x40 -_081AFC02: - add sp, #0x10 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end AddItemIconSprite - - thumb_func_start AddCustomItemIconSprite -AddCustomItemIconSprite: @ 0x081AFC0C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x10 - mov r8, r0 - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r6, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r5, r3, #0x10 - bl AllocItemIconTemporaryBuffers - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081AFCC4 - adds r0, r5, #0 - movs r1, #0 - bl GetItemIconPicOrPalette - ldr r4, _081AFCB4 - ldr r1, [r4] - bl sub_08034370 - ldr r0, [r4] - ldr r4, _081AFCB8 - ldr r1, [r4] - bl CopyItemIconPicTo4x4Buffer - ldr r0, [r4] - str r0, [sp] - ldr r4, _081AFCBC - ldr r0, [sp, #4] - ands r0, r4 - movs r1, #0x80 - lsls r1, r1, #2 - orrs r0, r1 - lsls r2, r7, #0x10 - ldr r1, _081AFCC0 - ands r0, r1 - orrs r0, r2 - str r0, [sp, #4] - mov r0, sp - bl LoadSpriteSheet - adds r0, r5, #0 - movs r1, #1 - bl GetItemIconPicOrPalette - str r0, [sp, #8] - add r0, sp, #8 - ldr r1, [r0, #4] - ands r1, r4 - orrs r1, r6 - str r1, [r0, #4] - bl LoadCompressedSpritePalette - movs r0, #0x18 - bl sub_08000BC8 - adds r5, r0, #0 - mov r0, r8 - adds r1, r5, #0 - movs r2, #0xc - bl CpuSet - strh r7, [r5] - strh r6, [r5, #2] - adds r0, r5, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl CreateSprite - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl FreeItemIconTemporaryBuffers - adds r0, r5, #0 - bl Free - adds r0, r4, #0 - b _081AFCC6 - .align 2, 0 -_081AFCB4: .4byte gUnknown_203CB88 -_081AFCB8: .4byte gUnknown_203CB8C -_081AFCBC: .4byte 0xFFFF0000 -_081AFCC0: .4byte 0x0000FFFF -_081AFCC4: - movs r0, #0x40 -_081AFCC6: - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end AddCustomItemIconSprite - - thumb_func_start GetItemIconPicOrPalette -GetItemIconPicOrPalette: @ 0x081AFCD4 - push {lr} - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, _081AFCE8 - cmp r3, r0 - bne _081AFCF0 - ldr r3, _081AFCEC - b _081AFCFA - .align 2, 0 -_081AFCE8: .4byte 0x0000FFFF -_081AFCEC: .4byte 0x00000179 -_081AFCF0: - movs r0, #0xbc - lsls r0, r0, #1 - cmp r3, r0 - bls _081AFCFA - movs r3, #0 -_081AFCFA: - ldr r2, _081AFD0C - lsls r0, r1, #2 - lsls r1, r3, #3 - adds r0, r0, r1 - adds r0, r0, r2 - ldr r0, [r0] - pop {r1} - bx r1 - .align 2, 0 -_081AFD0C: .4byte gUnknown_85DFCC8 - thumb_func_end GetItemIconPicOrPalette - - thumb_func_start InitPartyMenu -InitPartyMenu: @ 0x081AFD10 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - ldr r4, [sp, #0x24] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sb, r1 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r3, [sp] - lsls r4, r4, #0x18 - lsrs r6, r4, #0x18 - bl reset_brm - ldr r0, _081AFD5C - mov sl, r0 - movs r0, #0x8e - lsls r0, r0, #2 - bl sub_08000BC8 - adds r5, r0, #0 - mov r1, sl - str r5, [r1] - cmp r5, #0 - bne _081AFD60 - ldr r0, [sp, #0x2c] - bl SetMainCallback2 - b _081AFE6C - .align 2, 0 -_081AFD5C: .4byte gUnknown_203CB90 -_081AFD60: - ldr r3, _081AFDC4 - movs r1, #0xf - mov r4, r8 - ands r1, r4 - ldrb r2, [r3, #8] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #8] - ldr r0, [sp, #0x2c] - str r0, [r3] - movs r4, #0 - strb r7, [r3, #0xb] - lsls r2, r6, #2 - ldrh r1, [r5, #0xa] - movs r0, #3 - ands r0, r1 - orrs r0, r2 - strh r0, [r5, #0xa] - ldr r0, [sp, #0x28] - str r0, [r5] - str r4, [r5, #4] - ldrb r1, [r5, #8] - movs r0, #0xf - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r5, #8] - mov r1, sl - ldr r2, [r1] - ldrh r0, [r2, #8] - movs r4, #0xfe - lsls r4, r4, #3 - adds r1, r4, #0 - orrs r0, r1 - strh r0, [r2, #8] - ldr r0, [r2, #8] - movs r1, #0xfe - lsls r1, r1, #0xa - orrs r0, r1 - str r0, [r2, #8] - adds r6, r3, #0 - mov r5, r8 - cmp r5, #4 - bne _081AFDC8 - ldrb r0, [r2, #8] - movs r1, #1 - orrs r0, r1 - b _081AFDD0 - .align 2, 0 -_081AFDC4: .4byte gUnknown_203CB94 -_081AFDC8: - ldrb r1, [r2, #8] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r1 -_081AFDD0: - strb r0, [r2, #8] - mov r0, sb - cmp r0, #0xff - beq _081AFDEC - movs r0, #3 - mov r1, sb - ands r0, r1 - lsls r0, r0, #4 - ldrb r2, [r6, #8] - movs r1, #0x31 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r6, #8] -_081AFDEC: - movs r2, #0 - ldr r5, _081AFE30 - movs r4, #0x86 - lsls r4, r4, #2 - movs r3, #0 -_081AFDF6: - ldr r0, [r5] - lsls r1, r2, #1 - adds r0, r0, r4 - adds r0, r0, r1 - strh r3, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0xf - bls _081AFDF6 - movs r2, #0 - ldr r4, _081AFE30 - movs r3, #0xff -_081AFE10: - ldr r0, [r4] - adds r0, #0xc - adds r0, r0, r2 - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #2 - bls _081AFE10 - ldr r4, [sp] - cmp r4, #0 - bne _081AFE34 - strb r4, [r6, #9] - b _081AFE56 - .align 2, 0 -_081AFE30: .4byte gUnknown_203CB90 -_081AFE34: - adds r1, r6, #0 - movs r0, #9 - ldrsb r0, [r1, r0] - cmp r0, #5 - bgt _081AFE52 - adds r1, r0, #0 - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081AFE7C - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - bne _081AFE56 -_081AFE52: - movs r0, #0 - strb r0, [r6, #9] -_081AFE56: - ldr r2, _081AFE80 - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - bl sub_0806B004 - ldr r0, _081AFE84 - bl SetMainCallback2 -_081AFE6C: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081AFE7C: .4byte gUnknown_2024190 -_081AFE80: .4byte gUnknown_30030B4 -_081AFE84: .4byte PartyMenuInitCallback - thumb_func_end InitPartyMenu - - thumb_func_start PartyMenuCallback -PartyMenuCallback: @ 0x081AFE88 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PartyMenuCallback - - thumb_func_start sub_081AFEA4 -sub_081AFEA4: @ 0x081AFEA4 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081AFEA4 - - thumb_func_start PartyMenuInitCallback -PartyMenuInitCallback: @ 0x081AFEB8 - push {lr} -_081AFEBA: - bl sub_081221F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081AFEDE - bl PartyMenuSetup - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081AFEDE - bl sub_081221B8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081AFEBA -_081AFEDE: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PartyMenuInitCallback - - thumb_func_start PartyMenuSetup -PartyMenuSetup: @ 0x081AFEE4 - push {r4, lr} - sub sp, #4 - ldr r1, _081AFF04 - movs r2, #0x87 - lsls r2, r2, #3 - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, r1, #0 - cmp r0, #0x16 - bls _081AFEFA - b _081B0170 -_081AFEFA: - lsls r0, r0, #2 - ldr r1, _081AFF08 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081AFF04: .4byte gUnknown_3002360 -_081AFF08: .4byte _081AFF0C -_081AFF0C: @ jump table - .4byte _081AFF68 @ case 0 - .4byte _081AFF84 @ case 1 - .4byte _081AFF8A @ case 2 - .4byte _081AFFAC @ case 3 - .4byte _081AFFB2 @ case 4 - .4byte _081AFFC4 @ case 5 - .4byte _081AFFD6 @ case 6 - .4byte _081AFFE8 @ case 7 - .4byte _081B0010 @ case 8 - .4byte _081B002C @ case 9 - .4byte _081B0040 @ case 10 - .4byte _081B0064 @ case 11 - .4byte _081B0078 @ case 12 - .4byte _081B007E @ case 13 - .4byte _081B0090 @ case 14 - .4byte _081B0096 @ case 15 - .4byte _081B00B8 @ case 16 - .4byte _081B00D8 @ case 17 - .4byte _081B00EC @ case 18 - .4byte _081B0100 @ case 19 - .4byte _081B0108 @ case 20 - .4byte _081B0124 @ case 21 - .4byte _081B014C @ case 22 -_081AFF68: - bl SetVBlankHBlankCallbacksToNull - bl ResetVramOamAndBgCntRegs - bl sub_08199640 - ldr r1, _081AFF80 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _081B0164 - .align 2, 0 -_081AFF80: .4byte gUnknown_3002360 -_081AFF84: - bl ScanlineEffect_Stop - b _081B015C -_081AFF8A: - bl ResetPaletteFade - ldr r2, _081AFFA4 - ldrb r0, [r2, #8] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #8] - ldr r1, _081AFFA8 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _081B0164 - .align 2, 0 -_081AFFA4: .4byte gUnknown_2037C74 -_081AFFA8: .4byte gUnknown_3002360 -_081AFFAC: - bl ResetSpriteData - b _081B015C -_081AFFB2: - bl FreeAllSpritePalettes - ldr r1, _081AFFC0 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _081B0164 - .align 2, 0 -_081AFFC0: .4byte gUnknown_3002360 -_081AFFC4: - bl sub_081221B8 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081AFFD0 - b _081B015C -_081AFFD0: - bl ResetTasks - b _081B015C -_081AFFD6: - bl sub_081B1D6C - ldr r1, _081AFFE4 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _081B0164 - .align 2, 0 -_081AFFE4: .4byte gUnknown_3002360 -_081AFFE8: - bl AllocPartyMenuBg - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081AFFFA - bl PartyMenuExit - movs r0, #1 - b _081B018A -_081AFFFA: - ldr r0, _081B000C - ldr r0, [r0] - movs r1, #0x86 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0] - b _081B015C - .align 2, 0 -_081B000C: .4byte gUnknown_203CB90 -_081B0010: - bl AllocPartyMiscGfx - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081B001C - b _081B0188 -_081B001C: - ldr r1, _081B0028 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _081B0164 - .align 2, 0 -_081B0028: .4byte gUnknown_3002360 -_081B002C: - ldr r0, _081B003C - ldrb r0, [r0, #8] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - bl sub_081B206C - b _081B015C - .align 2, 0 -_081B003C: .4byte gUnknown_203CB94 -_081B0040: - ldr r0, _081B005C - ldrb r0, [r0, #8] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - bl PartyMenuInitHelperStructs - ldr r0, _081B0060 - ldr r0, [r0] - movs r1, #0x86 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0] - b _081B015C - .align 2, 0 -_081B005C: .4byte gUnknown_203CB94 -_081B0060: .4byte gUnknown_203CB90 -_081B0064: - bl sub_081B59D0 - ldr r1, _081B0074 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _081B0164 - .align 2, 0 -_081B0074: .4byte gUnknown_3002360 -_081B0078: - bl LoadPartyMenuPokeballGfx - b _081B015C -_081B007E: - bl LoadPartyMenuAilmentGfx - ldr r1, _081B008C - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _081B0164 - .align 2, 0 -_081B008C: .4byte gUnknown_3002360 -_081B0090: - bl LoadMonIconPalettes - b _081B015C -_081B0096: - bl party_menu_add_per_mon_objects - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081B00A2 - b _081B0188 -_081B00A2: - ldr r0, _081B00B4 - ldr r0, [r0] - movs r1, #0x86 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0] - b _081B015C - .align 2, 0 -_081B00B4: .4byte gUnknown_203CB90 -_081B00B8: - bl sub_081B0A70 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081B0188 - ldr r0, _081B00D4 - ldr r0, [r0] - movs r1, #0x86 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0] - b _081B015C - .align 2, 0 -_081B00D4: .4byte gUnknown_203CB90 -_081B00D8: - bl sub_081B0BF8 - ldr r1, _081B00E8 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _081B0164 - .align 2, 0 -_081B00E8: .4byte gUnknown_3002360 -_081B00EC: - ldr r0, _081B00FC - ldr r0, [r0] - ldrb r0, [r0, #8] - lsls r0, r0, #0x1f - lsrs r0, r0, #0x1f - bl sub_081B20F8 - b _081B015C - .align 2, 0 -_081B00FC: .4byte gUnknown_203CB90 -_081B0100: - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r2, r0 - b _081B0164 -_081B0108: - ldr r4, _081B0120 - ldr r0, [r4] - ldr r0, [r0] - movs r1, #0 - bl CreateTask - ldr r0, [r4] - ldrh r0, [r0, #0xa] - lsrs r0, r0, #2 - bl display_pokemon_menu_message - b _081B015C - .align 2, 0 -_081B0120: .4byte gUnknown_203CB90 -_081B0124: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - ldr r2, _081B0144 - ldrb r1, [r2, #8] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #8] - ldr r1, _081B0148 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _081B0164 - .align 2, 0 -_081B0144: .4byte gUnknown_2037C74 -_081B0148: .4byte gUnknown_3002360 -_081B014C: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade -_081B015C: - ldr r1, _081B016C - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 -_081B0164: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _081B0188 - .align 2, 0 -_081B016C: .4byte gUnknown_3002360 -_081B0170: - ldr r0, _081B0180 - bl SetVBlankCallback - ldr r0, _081B0184 - bl SetMainCallback2 - movs r0, #1 - b _081B018A - .align 2, 0 -_081B0180: .4byte sub_081AFEA4 -_081B0184: .4byte PartyMenuCallback -_081B0188: - movs r0, #0 -_081B018A: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end PartyMenuSetup - - thumb_func_start PartyMenuExit -PartyMenuExit: @ 0x081B0194 - push {lr} - sub sp, #4 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, _081B01C4 - movs r1, #0 - bl CreateTask - ldr r0, _081B01C8 - bl SetVBlankCallback - ldr r0, _081B01CC - bl SetMainCallback2 - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_081B01C4: .4byte PartyMenuExitTask -_081B01C8: .4byte sub_081AFEA4 -_081B01CC: .4byte PartyMenuCallback - thumb_func_end PartyMenuExit - - thumb_func_start PartyMenuExitTask -PartyMenuExitTask: @ 0x081B01D0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _081B01FC - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081B01F4 - ldr r0, _081B0200 - ldr r0, [r0] - bl SetMainCallback2 - bl FreePartyPointers - adds r0, r4, #0 - bl DestroyTask -_081B01F4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B01FC: .4byte gUnknown_2037C74 -_081B0200: .4byte gUnknown_203CB94 - thumb_func_end PartyMenuExitTask - - thumb_func_start reset_brm -reset_brm: @ 0x081B0204 - ldr r0, _081B0218 - movs r1, #0 - str r1, [r0] - ldr r0, _081B021C - str r1, [r0] - ldr r0, _081B0220 - str r1, [r0] - ldr r0, _081B0224 - str r1, [r0] - bx lr - .align 2, 0 -_081B0218: .4byte gUnknown_203CB90 -_081B021C: .4byte gUnknown_203CBB0 -_081B0220: .4byte gUnknown_203CBA8 -_081B0224: .4byte gUnknown_203CBAC - thumb_func_end reset_brm - - thumb_func_start AllocPartyMenuBg -AllocPartyMenuBg: @ 0x081B0228 - push {r4, r5, lr} - ldr r5, _081B0290 - movs r4, #0x80 - lsls r4, r4, #4 - adds r0, r4, #0 - bl sub_08000BC8 - str r0, [r5] - cmp r0, #0 - beq _081B0298 - movs r1, #0 - adds r2, r4, #0 - bl memset - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _081B0294 - movs r0, #0 - movs r2, #3 - bl InitBgsFromTemplates - ldr r1, [r5] - movs r0, #1 - bl SetBgTilemapBuffer - bl ResetAllBgsCoordinates - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #1 - b _081B029A - .align 2, 0 -_081B0290: .4byte gUnknown_203CBB0 -_081B0294: .4byte gUnknown_85E0F70 -_081B0298: - movs r0, #0 -_081B029A: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end AllocPartyMenuBg - - thumb_func_start AllocPartyMiscGfx -AllocPartyMiscGfx: @ 0x081B02A0 - push {r4, lr} - sub sp, #4 - ldr r0, _081B02C0 - ldr r0, [r0] - movs r1, #0x86 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #7 - bhi _081B0388 - lsls r0, r0, #2 - ldr r1, _081B02C4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081B02C0: .4byte gUnknown_203CB90 -_081B02C4: .4byte _081B02C8 -_081B02C8: @ jump table - .4byte _081B02E8 @ case 0 - .4byte _081B0310 @ case 1 - .4byte _081B0330 @ case 2 - .4byte _081B035C @ case 3 - .4byte _081B0360 @ case 4 - .4byte _081B0364 @ case 5 - .4byte _081B0368 @ case 6 - .4byte _081B036C @ case 7 -_081B02E8: - ldr r4, _081B0308 - ldr r0, _081B030C - mov r1, sp - bl malloc_and_decompress - adds r1, r0, #0 - str r1, [r4] - ldr r2, [sp] - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - movs r0, #1 - movs r3, #0 - bl LoadBgTiles - b _081B0372 - .align 2, 0 -_081B0308: .4byte gUnknown_203CBAC -_081B030C: .4byte gUnknown_8D967A0 -_081B0310: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081B038C - ldr r0, _081B0328 - ldr r1, _081B032C - ldr r1, [r1] - bl sub_08034370 - b _081B0372 - .align 2, 0 -_081B0328: .4byte gUnknown_8D96B54 -_081B032C: .4byte gUnknown_203CBB0 -_081B0330: - ldr r0, _081B0350 - movs r2, #0xb0 - lsls r2, r2, #1 - movs r1, #0 - bl LoadCompressedPalette - ldr r0, _081B0354 - ldr r4, _081B0358 - ldr r1, [r4] - adds r1, #0x18 - movs r2, #0xb0 - bl CpuSet - ldr r1, [r4] - b _081B0376 - .align 2, 0 -_081B0350: .4byte gUnknown_8D96A68 -_081B0354: .4byte gUnknown_20373B4 -_081B0358: .4byte gUnknown_203CB90 -_081B035C: - movs r0, #4 - b _081B036E -_081B0360: - movs r0, #5 - b _081B036E -_081B0364: - movs r0, #6 - b _081B036E -_081B0368: - movs r0, #7 - b _081B036E -_081B036C: - movs r0, #8 -_081B036E: - bl PartyPaletteBufferCopy -_081B0372: - ldr r0, _081B0384 - ldr r1, [r0] -_081B0376: - movs r0, #0x86 - lsls r0, r0, #2 - adds r1, r1, r0 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _081B038C - .align 2, 0 -_081B0384: .4byte gUnknown_203CB90 -_081B0388: - movs r0, #1 - b _081B038E -_081B038C: - movs r0, #0 -_081B038E: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end AllocPartyMiscGfx - - thumb_func_start PartyPaletteBufferCopy -PartyPaletteBufferCopy: @ 0x081B0398 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x1c - ldr r5, _081B03C4 - lsrs r4, r4, #0x17 - adds r1, r5, #0 - subs r1, #0x60 - adds r1, r4, r1 - adds r0, r5, #0 - movs r2, #0x10 - bl CpuSet - ldr r0, _081B03C8 - adds r4, r4, r0 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x10 - bl CpuSet - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B03C4: .4byte gUnknown_2037414 -_081B03C8: .4byte gUnknown_20377B4 - thumb_func_end PartyPaletteBufferCopy - - thumb_func_start FreePartyPointers -FreePartyPointers: @ 0x081B03CC - push {lr} - ldr r0, _081B0408 - ldr r0, [r0] - cmp r0, #0 - beq _081B03DA - bl Free -_081B03DA: - ldr r0, _081B040C - ldr r0, [r0] - cmp r0, #0 - beq _081B03E6 - bl Free -_081B03E6: - ldr r0, _081B0410 - ldr r0, [r0] - cmp r0, #0 - beq _081B03F2 - bl Free -_081B03F2: - ldr r0, _081B0414 - ldr r0, [r0] - cmp r0, #0 - beq _081B03FE - bl Free -_081B03FE: - bl FreeAllWindowBuffers - pop {r0} - bx r0 - .align 2, 0 -_081B0408: .4byte gUnknown_203CB90 -_081B040C: .4byte gUnknown_203CBB0 -_081B0410: .4byte gUnknown_203CBAC -_081B0414: .4byte gUnknown_203CBA8 - thumb_func_end FreePartyPointers - - thumb_func_start PartyMenuInitHelperStructs -PartyMenuInitHelperStructs: @ 0x081B0418 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r4, _081B0498 - movs r0, #0x60 - bl sub_08000BC8 - str r0, [r4] - movs r5, #0 - lsls r0, r7, #1 - adds r0, r0, r7 - lsls r0, r0, #4 - mov r8, r0 - movs r6, #0xff - mov sb, r4 -_081B043C: - ldr r2, [r4] - lsls r3, r5, #4 - adds r2, r3, r2 - ldr r0, _081B049C - mov ip, r0 - str r0, [r2] - lsls r0, r5, #3 - ldr r1, _081B04A0 - adds r0, r0, r1 - add r0, r8 - str r0, [r2, #4] - strb r5, [r2, #8] - ldr r1, [r4] - adds r1, r3, r1 - ldrb r0, [r1, #9] - orrs r0, r6 - strb r0, [r1, #9] - ldr r1, [r4] - adds r1, r3, r1 - ldrb r0, [r1, #0xa] - orrs r0, r6 - strb r0, [r1, #0xa] - ldr r1, [r4] - adds r1, r3, r1 - ldrb r0, [r1, #0xb] - orrs r0, r6 - strb r0, [r1, #0xb] - ldr r0, [r4] - adds r3, r3, r0 - ldrb r0, [r3, #0xc] - orrs r0, r6 - strb r0, [r3, #0xc] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #5 - bls _081B043C - mov r1, sb - ldr r0, [r1] - mov r1, ip - subs r1, #0x20 - str r1, [r0] - cmp r7, #3 - bne _081B04A4 - str r1, [r0, #0x30] - b _081B04AA - .align 2, 0 -_081B0498: .4byte gUnknown_203CBA8 -_081B049C: .4byte gUnknown_85E0F9C -_081B04A0: .4byte gUnknown_85E0FBC -_081B04A4: - cmp r7, #0 - beq _081B04AA - str r1, [r0, #0x10] -_081B04AA: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PartyMenuInitHelperStructs - - thumb_func_start RenderPartyMenuBox -RenderPartyMenuBox: @ 0x081B04B8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _081B04F4 - ldrb r1, [r0, #8] - movs r0, #0xf - ands r0, r1 - cmp r0, #5 - bne _081B0534 - cmp r5, #2 - bls _081B0534 - adds r0, r5, #0 - bl sub_081B09C4 - ldr r0, _081B04F8 - subs r1, r5, #3 - lsls r1, r1, #5 - adds r1, r1, r0 - ldrh r0, [r1] - cmp r0, #0 - bne _081B0500 - ldr r0, _081B04FC - lsls r4, r5, #4 - ldr r0, [r0] - adds r0, r0, r4 - movs r1, #0x40 - bl UpdateSelectedPartyBox - b _081B050E - .align 2, 0 -_081B04F4: .4byte gUnknown_203CB94 -_081B04F8: .4byte gUnknown_2022C9C -_081B04FC: .4byte gUnknown_203CBA8 -_081B0500: - ldr r0, _081B0530 - lsls r4, r5, #4 - ldr r0, [r0] - adds r0, r0, r4 - movs r1, #8 - bl UpdateSelectedPartyBox -_081B050E: - adds r5, r4, #0 - ldr r4, _081B0530 - ldr r0, [r4] - adds r0, r5, r0 - ldrb r0, [r0, #8] - movs r1, #2 - bl CopyWindowToVram - ldr r0, [r4] - adds r0, r5, r0 - ldrb r0, [r0, #8] - bl PutWindowTilemap - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - b _081B0616 - .align 2, 0 -_081B0530: .4byte gUnknown_203CBA8 -_081B0534: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081B056C - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - bne _081B0574 - ldr r4, _081B0570 - ldr r0, [r4] - lsls r5, r5, #4 - adds r0, r5, r0 - ldrb r0, [r0, #8] - bl DrawEmptySlot - ldr r0, [r4] - adds r0, r0, r5 - movs r1, #0x40 - bl UpdateSelectedPartyBox - ldr r0, [r4] - adds r0, r5, r0 - ldrb r0, [r0, #8] - movs r1, #2 - bl CopyWindowToVram - b _081B0604 - .align 2, 0 -_081B056C: .4byte gUnknown_2024190 -_081B0570: .4byte gUnknown_203CBA8 -_081B0574: - ldr r0, _081B0588 - ldrb r0, [r0, #8] - movs r1, #0xf - ands r1, r0 - cmp r1, #7 - bne _081B058C - adds r0, r5, #0 - bl DisplayPartyPokemonSelectForRelearner - b _081B05CE - .align 2, 0 -_081B0588: .4byte gUnknown_203CB94 -_081B058C: - cmp r1, #2 - bne _081B0598 - adds r0, r5, #0 - bl DisplayPartyPokemonSelectForContest - b _081B05CE -_081B0598: - cmp r1, #4 - bne _081B05A4 - adds r0, r5, #0 - bl DisplayPartyPokemonSelectForBattle - b _081B05CE -_081B05A4: - cmp r1, #0xb - bne _081B05B0 - adds r0, r5, #0 - bl sub_081B0870 - b _081B05CE -_081B05B0: - cmp r1, #0xc - bne _081B05BC - adds r0, r5, #0 - bl DisplayPartyPokemonSelectHeldItemRelated - b _081B05CE -_081B05BC: - adds r0, r5, #0 - bl sub_081B08D4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081B05CE - adds r0, r5, #0 - bl DisplayPartyPokemonData -_081B05CE: - ldr r2, _081B05E4 - ldrb r1, [r2, #8] - movs r0, #0xf - ands r0, r1 - cmp r0, #5 - bne _081B05E8 - adds r0, r5, #0 - movs r1, #0 - bl sub_081B0C9C - b _081B0602 - .align 2, 0 -_081B05E4: .4byte gUnknown_203CB94 -_081B05E8: - movs r0, #9 - ldrsb r0, [r2, r0] - cmp r0, r5 - bne _081B05FA - adds r0, r5, #0 - movs r1, #1 - bl sub_081B0C9C - b _081B0602 -_081B05FA: - adds r0, r5, #0 - movs r1, #0 - bl sub_081B0C9C -_081B0602: - lsls r5, r5, #4 -_081B0604: - ldr r0, _081B061C - ldr r0, [r0] - adds r0, r5, r0 - ldrb r0, [r0, #8] - bl PutWindowTilemap - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram -_081B0616: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B061C: .4byte gUnknown_203CBA8 - thumb_func_end RenderPartyMenuBox - - thumb_func_start DisplayPartyPokemonData -DisplayPartyPokemonData: @ 0x081B0620 - push {r4, r5, r6, r7, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #0x64 - adds r1, r4, #0 - muls r1, r0, r1 - ldr r0, _081B0670 - adds r7, r1, r0 - adds r0, r7, #0 - movs r1, #0x2d - bl GetMonData - adds r2, r0, #0 - cmp r2, #0 - beq _081B0678 - ldr r6, _081B0674 - ldr r0, [r6] - lsls r5, r4, #4 - adds r0, r5, r0 - ldr r2, [r0] - ldrb r0, [r0, #8] - movs r1, #0 - str r1, [sp] - movs r1, #1 - str r1, [sp, #4] - ldr r4, [r2] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl _call_via_r4 - ldr r1, [r6] - adds r1, r1, r5 - adds r0, r7, #0 - movs r2, #0 - bl DisplayPartyPokemonNickname - b _081B06DA - .align 2, 0 -_081B0670: .4byte gUnknown_2024190 -_081B0674: .4byte gUnknown_203CBA8 -_081B0678: - ldr r5, _081B06E4 - ldr r0, [r5] - lsls r4, r4, #4 - adds r0, r4, r0 - ldr r1, [r0] - ldrb r0, [r0, #8] - str r2, [sp] - str r2, [sp, #4] - ldr r6, [r1] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl _call_via_r6 - ldr r1, [r5] - adds r1, r1, r4 - adds r0, r7, #0 - movs r2, #0 - bl DisplayPartyPokemonNickname - ldr r1, [r5] - adds r1, r1, r4 - adds r0, r7, #0 - movs r2, #0 - bl DisplayPartyPokemonLevelCheck - ldr r1, [r5] - adds r1, r1, r4 - adds r0, r7, #0 - movs r2, #0 - bl DisplayPartyPokemonGenderNidoranCheck - ldr r1, [r5] - adds r1, r1, r4 - adds r0, r7, #0 - movs r2, #0 - bl DisplayPartyPokemonHPCheck - ldr r1, [r5] - adds r1, r1, r4 - adds r0, r7, #0 - movs r2, #0 - bl DisplayPartyPokemonMaxHPCheck - ldr r1, [r5] - adds r1, r1, r4 - adds r0, r7, #0 - bl DisplayPartyPokemonHPBarCheck -_081B06DA: - add sp, #8 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B06E4: .4byte gUnknown_203CBA8 - thumb_func_end DisplayPartyPokemonData - - thumb_func_start DisplayPartyPokemonSelectData -DisplayPartyPokemonSelectData: @ 0x081B06E8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - movs r1, #0x64 - adds r2, r0, #0 - muls r2, r1, r2 - ldr r1, _081B076C - adds r6, r2, r1 - ldr r7, _081B0770 - ldr r1, [r7] - lsls r5, r0, #4 - adds r1, r5, r1 - ldr r2, [r1] - ldrb r0, [r1, #8] - movs r1, #0 - str r1, [sp] - movs r1, #1 - str r1, [sp, #4] - ldr r4, [r2] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl _call_via_r4 - ldr r1, [r7] - adds r1, r1, r5 - adds r0, r6, #0 - movs r2, #0 - bl DisplayPartyPokemonNickname - adds r0, r6, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - bne _081B0754 - ldr r1, [r7] - adds r1, r1, r5 - adds r0, r6, #0 - movs r2, #0 - bl DisplayPartyPokemonLevelCheck - ldr r1, [r7] - adds r1, r1, r5 - adds r0, r6, #0 - movs r2, #0 - bl DisplayPartyPokemonGenderNidoranCheck -_081B0754: - ldr r1, [r7] - adds r1, r1, r5 - mov r0, r8 - movs r2, #0 - bl sub_081B2C3C - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B076C: .4byte gUnknown_2024190 -_081B0770: .4byte gUnknown_203CBA8 - thumb_func_end DisplayPartyPokemonSelectData - - thumb_func_start DisplayPartyPokemonSelectForBattle -DisplayPartyPokemonSelectForBattle: @ 0x081B0774 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081B0798 - adds r0, r0, r1 - ldr r6, _081B079C - bl GetBattleEntryEligibility - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081B07AE - adds r0, r5, #0 - movs r1, #7 - bl DisplayPartyPokemonSelectData - b _081B07DA - .align 2, 0 -_081B0798: .4byte gUnknown_2024190 -_081B079C: .4byte gUnknown_203CBC4 -_081B07A0: - adds r1, r4, #2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl DisplayPartyPokemonSelectData - b _081B07DA -_081B07AE: - movs r4, #0 - b _081B07C6 -_081B07B2: - adds r1, r6, r4 - ldrb r0, [r1] - cmp r0, #0 - beq _081B07C0 - subs r0, #1 - cmp r0, r5 - beq _081B07A0 -_081B07C0: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_081B07C6: - bl sub_081B84D0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - blo _081B07B2 - adds r0, r5, #0 - movs r1, #1 - bl DisplayPartyPokemonSelectData -_081B07DA: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end DisplayPartyPokemonSelectForBattle - - thumb_func_start DisplayPartyPokemonSelectForContest -DisplayPartyPokemonSelectForContest: @ 0x081B07E0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #0x64 - muls r0, r4, r0 - ldr r1, _081B0804 - adds r0, r0, r1 - bl sub_080DA58C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _081B0832 - lsls r0, r0, #2 - ldr r1, _081B0808 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081B0804: .4byte gUnknown_2024190 -_081B0808: .4byte _081B080C -_081B080C: @ jump table - .4byte _081B0820 @ case 0 - .4byte _081B082A @ case 1 - .4byte _081B082A @ case 2 - .4byte _081B0820 @ case 3 - .4byte _081B0820 @ case 4 -_081B0820: - adds r0, r4, #0 - movs r1, #7 - bl DisplayPartyPokemonSelectData - b _081B0832 -_081B082A: - adds r0, r4, #0 - movs r1, #6 - bl DisplayPartyPokemonSelectData -_081B0832: - pop {r4} - pop {r0} - bx r0 - thumb_func_end DisplayPartyPokemonSelectForContest - - thumb_func_start DisplayPartyPokemonSelectForRelearner -DisplayPartyPokemonSelectForRelearner: @ 0x081B0838 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #0x64 - muls r0, r4, r0 - ldr r1, _081B085C - adds r0, r0, r1 - bl GetNumberOfRelearnableMoves - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081B0860 - adds r0, r4, #0 - movs r1, #9 - bl DisplayPartyPokemonSelectData - b _081B0868 - .align 2, 0 -_081B085C: .4byte gUnknown_2024190 -_081B0860: - adds r0, r4, #0 - movs r1, #8 - bl DisplayPartyPokemonSelectData -_081B0868: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end DisplayPartyPokemonSelectForRelearner - - thumb_func_start sub_081B0870 -sub_081B0870: @ 0x081B0870 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl sub_081B1E5C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081B088E - adds r0, r4, #0 - movs r1, #6 - bl DisplayPartyPokemonSelectData - b _081B0896 -_081B088E: - adds r0, r4, #0 - movs r1, #7 - bl DisplayPartyPokemonSelectData -_081B0896: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081B0870 - - thumb_func_start DisplayPartyPokemonSelectHeldItemRelated -DisplayPartyPokemonSelectHeldItemRelated: @ 0x081B089C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #0x64 - muls r0, r4, r0 - ldr r1, _081B08C0 - adds r0, r0, r1 - movs r1, #0xc - bl GetMonData - cmp r0, #0 - beq _081B08C4 - adds r0, r4, #0 - movs r1, #0xb - bl DisplayPartyPokemonSelectData - b _081B08CC - .align 2, 0 -_081B08C0: .4byte gUnknown_2024190 -_081B08C4: - adds r0, r4, #0 - movs r1, #0xc - bl DisplayPartyPokemonSelectData -_081B08CC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end DisplayPartyPokemonSelectHeldItemRelated - - thumb_func_start sub_081B08D4 -sub_081B08D4: @ 0x081B08D4 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _081B0904 - adds r6, r1, r0 - ldr r0, _081B0908 - ldrh r4, [r0] - ldr r0, _081B090C - ldrb r0, [r0, #0xb] - cmp r0, #0xc - bne _081B0918 - ldr r1, _081B0910 - movs r0, #0 - strh r0, [r1] - ldr r0, _081B0914 - ldrb r2, [r0] - adds r0, r5, #0 - movs r1, #0 - bl DisplayPartyPokemonSelectToTeachMove - b _081B0962 - .align 2, 0 -_081B0904: .4byte gUnknown_2024190 -_081B0908: .4byte gUnknown_203CB48 -_081B090C: .4byte gUnknown_203CB94 -_081B0910: .4byte gUnknown_2037290 -_081B0914: .4byte gUnknown_2037282 -_081B0918: - cmp r0, #3 - bne _081B092E - adds r0, r4, #0 - bl CheckIfItemIsTMHMOrEvolutionStone - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B0932 - cmp r0, #2 - beq _081B093E -_081B092E: - movs r0, #0 - b _081B0964 -_081B0932: - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - bl DisplayPartyPokemonSelectToTeachMove - b _081B0962 -_081B093E: - adds r0, r6, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - bne _081B095A - adds r0, r6, #0 - movs r1, #3 - adds r2, r4, #0 - bl GetEvolutionTargetSpecies - lsls r0, r0, #0x10 - cmp r0, #0 - bne _081B092E -_081B095A: - adds r0, r5, #0 - movs r1, #0 - bl DisplayPartyPokemonSelectData -_081B0962: - movs r0, #1 -_081B0964: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081B08D4 - - thumb_func_start DisplayPartyPokemonSelectToTeachMove -DisplayPartyPokemonSelectToTeachMove: @ 0x081B096C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r0, #0x64 - muls r0, r4, r0 - ldr r3, _081B0998 - adds r0, r0, r3 - bl CanMonLearnTMTutor - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - beq _081B09AA - cmp r0, #2 - bgt _081B099C - cmp r0, #1 - beq _081B09A0 - b _081B09B4 - .align 2, 0 -_081B0998: .4byte gUnknown_2024190 -_081B099C: - cmp r0, #3 - bne _081B09B4 -_081B09A0: - adds r0, r4, #0 - movs r1, #9 - bl DisplayPartyPokemonSelectData - b _081B09BC -_081B09AA: - adds r0, r4, #0 - movs r1, #0xa - bl DisplayPartyPokemonSelectData - b _081B09BC -_081B09B4: - adds r0, r4, #0 - movs r1, #8 - bl DisplayPartyPokemonSelectData -_081B09BC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end DisplayPartyPokemonSelectToTeachMove - - thumb_func_start sub_081B09C4 -sub_081B09C4: @ 0x081B09C4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081B09F4 - lsls r2, r0, #4 - ldr r1, [r1] - adds r6, r1, r2 - subs r0, #3 - lsls r0, r0, #0x18 - ldr r5, _081B09F8 - lsrs r0, r0, #0x13 - mov r8, r0 - adds r7, r0, r5 - ldrh r0, [r7] - cmp r0, #0 - bne _081B09FC - ldrb r0, [r6, #8] - bl DrawEmptySlot - b _081B0A60 - .align 2, 0 -_081B09F4: .4byte gUnknown_203CBA8 -_081B09F8: .4byte gUnknown_2022C9C -_081B09FC: - ldr r2, [r6] - ldrb r0, [r6, #8] - movs r1, #0 - str r1, [sp] - str r1, [sp, #4] - ldr r4, [r2] - movs r2, #0 - movs r3, #0 - bl _call_via_r4 - ldr r4, _081B0A6C - adds r5, #4 - add r5, r8 - adds r0, r4, #0 - adds r1, r5, #0 - bl StringCopy - adds r0, r4, #0 - bl StringGetEnd10 - ldrb r0, [r6, #8] - ldr r3, [r6] - adds r3, #4 - adds r1, r4, #0 - movs r2, #0 - bl DisplayPartyPokemonBarDetail - ldrb r0, [r7, #0xf] - adds r1, r6, #0 - bl DisplayPartyPokemonLevel - ldrb r0, [r7, #0x1c] - ldrh r1, [r7] - adds r2, r5, #0 - adds r3, r6, #0 - bl DisplayPartyPokemonGender - ldrh r0, [r7, #0x10] - adds r1, r6, #0 - bl DisplayPartyPokemonHP - ldrh r0, [r7, #0x12] - adds r1, r6, #0 - bl DisplayPartyPokemonMaxHP - ldrh r0, [r7, #0x10] - ldrh r1, [r7, #0x12] - adds r2, r6, #0 - bl DisplayPartyPokemonHPBar -_081B0A60: - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B0A6C: .4byte gUnknown_2021C40 - thumb_func_end sub_081B09C4 - - thumb_func_start sub_081B0A70 -sub_081B0A70: @ 0x081B0A70 - push {r4, r5, lr} - ldr r5, _081B0A98 - ldr r0, [r5] - movs r4, #0x86 - lsls r4, r4, #2 - adds r0, r0, r4 - ldrb r0, [r0] - bl RenderPartyMenuBox - ldr r1, [r5] - adds r1, r1, r4 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #6 - beq _081B0A9C - movs r0, #0 - b _081B0A9E - .align 2, 0 -_081B0A98: .4byte gUnknown_203CB90 -_081B0A9C: - movs r0, #1 -_081B0A9E: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_081B0A70 - - thumb_func_start GetPartyMiscGraphicsTile -GetPartyMiscGraphicsTile: @ 0x081B0AA4 - lsls r0, r0, #0x10 - ldr r1, _081B0AB4 - lsrs r0, r0, #0xb - ldr r1, [r1] - adds r1, r1, r0 - adds r0, r1, #0 - bx lr - .align 2, 0 -_081B0AB4: .4byte gUnknown_203CBAC - thumb_func_end GetPartyMiscGraphicsTile - - thumb_func_start party_menu_add_per_mon_objects_internal -party_menu_add_per_mon_objects_internal: @ 0x081B0AB8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _081B0B2C - ldrb r1, [r0, #8] - movs r0, #0xf - ands r0, r1 - cmp r0, #5 - bne _081B0B68 - cmp r7, #2 - bls _081B0B68 - subs r0, r7, #3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - ldr r0, _081B0B30 - mov sb, r0 - mov r2, sl - lsls r2, r2, #5 - mov r8, r2 - mov r6, r8 - add r6, sb - ldrh r0, [r6] - cmp r0, #0 - beq _081B0BAC - mov r1, sb - adds r1, #0x18 - add r1, r8 - ldr r1, [r1] - ldr r4, _081B0B34 - lsls r5, r7, #4 - ldr r2, [r4] - adds r2, r2, r5 - movs r3, #0 - str r3, [sp] - bl party_menu_link_mon_icon_anim - ldrh r0, [r6] - ldrh r1, [r6, #2] - ldr r2, [r4] - adds r2, r2, r5 - bl party_menu_link_mon_held_item_object - ldrh r0, [r6] - ldr r1, [r4] - adds r1, r1, r5 - bl sub_081B5B94 - ldrh r0, [r6, #0x10] - cmp r0, #0 - bne _081B0B38 - movs r3, #7 - b _081B0B48 - .align 2, 0 -_081B0B2C: .4byte gUnknown_203CB94 -_081B0B30: .4byte gUnknown_2022C9C -_081B0B34: .4byte gUnknown_203CBA8 -_081B0B38: - mov r0, sb - adds r0, #0x14 - add r0, r8 - ldr r0, [r0] - bl pokemon_ailments_get_primary - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 -_081B0B48: - ldr r1, _081B0B60 - mov r2, sl - lsls r0, r2, #5 - adds r0, r0, r1 - ldrh r0, [r0] - ldr r1, _081B0B64 - ldr r2, [r1] - adds r2, r2, r5 - adds r1, r3, #0 - bl party_menu_link_mon_status_condition_object - b _081B0BAC - .align 2, 0 -_081B0B60: .4byte gUnknown_2022C9C -_081B0B64: .4byte gUnknown_203CBA8 -_081B0B68: - movs r0, #0x64 - adds r1, r7, #0 - muls r1, r0, r1 - ldr r0, _081B0BBC - adds r6, r1, r0 - adds r0, r6, #0 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _081B0BAC - ldr r4, _081B0BC0 - lsls r5, r7, #4 - ldr r1, [r4] - adds r1, r1, r5 - adds r0, r6, #0 - adds r2, r7, #0 - bl party_menu_icon_anim - ldr r1, [r4] - adds r1, r1, r5 - adds r0, r6, #0 - bl party_menu_held_item_object - ldr r1, [r4] - adds r1, r1, r5 - adds r0, r6, #0 - bl party_menu_pokeball_object - ldr r1, [r4] - adds r1, r1, r5 - adds r0, r6, #0 - bl party_menu_status_condition_object -_081B0BAC: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B0BBC: .4byte gUnknown_2024190 -_081B0BC0: .4byte gUnknown_203CBA8 - thumb_func_end party_menu_add_per_mon_objects_internal - - thumb_func_start party_menu_add_per_mon_objects -party_menu_add_per_mon_objects: @ 0x081B0BC4 - push {r4, r5, lr} - ldr r5, _081B0BEC - ldr r0, [r5] - movs r4, #0x86 - lsls r4, r4, #2 - adds r0, r0, r4 - ldrb r0, [r0] - bl party_menu_add_per_mon_objects_internal - ldr r1, [r5] - adds r1, r1, r4 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #6 - beq _081B0BF0 - movs r0, #0 - b _081B0BF2 - .align 2, 0 -_081B0BEC: .4byte gUnknown_203CB90 -_081B0BF0: - movs r0, #1 -_081B0BF2: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end party_menu_add_per_mon_objects - - thumb_func_start sub_081B0BF8 -sub_081B0BF8: @ 0x081B0BF8 - push {r4, lr} - sub sp, #0xc - ldr r0, _081B0C20 - ldrb r1, [r0, #8] - movs r0, #0xf - ands r0, r1 - cmp r0, #5 - bne _081B0C24 - movs r0, #7 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - movs r1, #0xe - movs r2, #0x17 - movs r3, #0x11 - bl FillBgTilemapBufferRect - b _081B0C8C - .align 2, 0 -_081B0C20: .4byte gUnknown_203CB94 -_081B0C24: - ldr r4, _081B0C5C - ldr r0, [r4] - ldrb r0, [r0, #8] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _081B0C64 - movs r0, #0xbf - movs r1, #0x88 - bl sub_081B5C14 - ldr r3, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x7f - ands r0, r1 - lsls r0, r0, #4 - ldrh r2, [r3, #8] - ldr r1, _081B0C60 - ands r1, r2 - orrs r1, r0 - strh r1, [r3, #8] - bl sub_081B0EDC - movs r0, #0xbf - movs r1, #0x98 - bl sub_081B5C14 - b _081B0C6C - .align 2, 0 -_081B0C5C: .4byte gUnknown_203CB90 -_081B0C60: .4byte 0xFFFFF80F -_081B0C64: - movs r0, #0xc6 - movs r1, #0x94 - bl sub_081B5BD4 -_081B0C6C: - ldr r3, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x7f - ands r0, r1 - lsls r0, r0, #0xb - ldr r1, [r3, #8] - ldr r2, _081B0C94 - ands r1, r2 - orrs r1, r0 - str r1, [r3, #8] - ldr r0, _081B0C98 - ldrb r0, [r0, #9] - movs r1, #1 - bl sub_081B0C9C -_081B0C8C: - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B0C94: .4byte 0xFFFC07FF -_081B0C98: .4byte gUnknown_203CB94 - thumb_func_end sub_081B0BF8 - - thumb_func_start sub_081B0C9C -sub_081B0C9C: @ 0x081B0C9C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r8, r1 - cmp r7, #6 - beq _081B0D08 - cmp r7, #7 - beq _081B0D44 - movs r0, #0x64 - muls r0, r7, r0 - ldr r1, _081B0D00 - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _081B0DB8 - ldr r6, _081B0D04 - lsls r5, r7, #4 - ldr r4, [r6] - adds r4, r4, r5 - adds r0, r7, #0 - mov r1, r8 - bl GetPartyBoxPalBitfield - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl UpdateSelectedPartyBox - ldr r0, [r6] - adds r0, r5, r0 - ldrb r0, [r0, #9] - mov r1, r8 - bl AnimateSelectedPartyIcon - ldr r0, [r6] - adds r5, r5, r0 - ldrb r0, [r5, #0xb] - mov r1, r8 - bl sub_081B5C38 - b _081B0DB8 - .align 2, 0 -_081B0D00: .4byte gUnknown_2024190 -_081B0D04: .4byte gUnknown_203CBA8 -_081B0D08: - mov r0, r8 - cmp r0, #0 - bne _081B0D22 - movs r0, #2 - str r0, [sp] - movs r0, #1 - str r0, [sp, #4] - movs r1, #0x17 - movs r2, #0x10 - movs r3, #7 - bl sub_081998C8 - b _081B0D34 -_081B0D22: - movs r0, #2 - str r0, [sp] - str r0, [sp, #4] - movs r0, #1 - movs r1, #0x17 - movs r2, #0x10 - movs r3, #7 - bl sub_081998C8 -_081B0D34: - ldr r0, _081B0D40 - ldr r0, [r0] - ldrh r0, [r0, #8] - lsls r0, r0, #0x15 - b _081B0DAA - .align 2, 0 -_081B0D40: .4byte gUnknown_203CB90 -_081B0D44: - ldr r0, _081B0D64 - ldr r0, [r0] - ldrb r0, [r0, #8] - lsls r0, r0, #0x1f - cmp r0, #0 - bne _081B0D76 - mov r0, r8 - cmp r0, #0 - bne _081B0D68 - movs r0, #2 - str r0, [sp] - movs r0, #1 - str r0, [sp, #4] - movs r1, #0x17 - movs r2, #0x11 - b _081B0D88 - .align 2, 0 -_081B0D64: .4byte gUnknown_203CB90 -_081B0D68: - movs r0, #2 - str r0, [sp] - str r0, [sp, #4] - movs r0, #1 - movs r1, #0x17 - movs r2, #0x11 - b _081B0D88 -_081B0D76: - mov r0, r8 - cmp r0, #0 - bne _081B0D90 - movs r0, #2 - str r0, [sp] - movs r0, #1 - str r0, [sp, #4] - movs r1, #0x17 - movs r2, #0x12 -_081B0D88: - movs r3, #7 - bl sub_081998C8 - b _081B0DA2 -_081B0D90: - movs r0, #2 - str r0, [sp] - str r0, [sp, #4] - movs r0, #1 - movs r1, #0x17 - movs r2, #0x12 - movs r3, #7 - bl sub_081998C8 -_081B0DA2: - ldr r0, _081B0DC4 - ldr r0, [r0] - ldr r0, [r0, #8] - lsls r0, r0, #0xe -_081B0DAA: - lsrs r0, r0, #0x19 - mov r1, r8 - bl sub_081B5C38 - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram -_081B0DB8: - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B0DC4: .4byte gUnknown_203CB90 - thumb_func_end sub_081B0C9C - - thumb_func_start GetPartyBoxPalBitfield -GetPartyBoxPalBitfield: @ 0x081B0DC8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r4, #0 - cmp r1, #1 - bne _081B0DDA - movs r4, #1 -_081B0DDA: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081B0E54 - adds r0, r0, r1 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - bne _081B0DF0 - movs r0, #2 - orrs r4, r0 -_081B0DF0: - adds r0, r5, #0 - bl PartyBoxPal_ParnterOrDisqualifiedInArena - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081B0E06 - movs r0, #8 - orrs r4, r0 - lsls r0, r4, #0x18 - lsrs r4, r0, #0x18 -_081B0E06: - ldr r0, _081B0E58 - ldrb r1, [r0, #0xb] - adds r2, r0, #0 - cmp r1, #9 - bne _081B0E18 - movs r0, #0x10 - orrs r4, r0 - lsls r0, r4, #0x18 - lsrs r4, r0, #0x18 -_081B0E18: - cmp r1, #8 - bne _081B0E34 - movs r0, #9 - ldrsb r0, [r2, r0] - cmp r5, r0 - beq _081B0E2C - movs r0, #0xa - ldrsb r0, [r2, r0] - cmp r5, r0 - bne _081B0E34 -_081B0E2C: - movs r0, #4 - orrs r4, r0 - lsls r0, r4, #0x18 - lsrs r4, r0, #0x18 -_081B0E34: - ldrb r0, [r2, #0xb] - cmp r0, #0xa - bne _081B0E4A - movs r0, #9 - ldrsb r0, [r2, r0] - cmp r5, r0 - bne _081B0E4A - movs r0, #0x20 - orrs r4, r0 - lsls r0, r4, #0x18 - lsrs r4, r0, #0x18 -_081B0E4A: - adds r0, r4, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081B0E54: .4byte gUnknown_2024190 -_081B0E58: .4byte gUnknown_203CB94 - thumb_func_end GetPartyBoxPalBitfield - - thumb_func_start PartyBoxPal_ParnterOrDisqualifiedInArena -PartyBoxPal_ParnterOrDisqualifiedInArena: @ 0x081B0E5C - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _081B0E80 - ldrb r1, [r0, #8] - movs r0, #0x30 - ands r0, r1 - cmp r0, #0x20 - bne _081B0E84 - cmp r2, #1 - beq _081B0E7A - cmp r2, #4 - beq _081B0E7A - cmp r2, #5 - bne _081B0E84 -_081B0E7A: - movs r0, #1 - b _081B0EC8 - .align 2, 0 -_081B0E80: .4byte gUnknown_203CB94 -_081B0E84: - cmp r2, #2 - bhi _081B0EC6 - ldr r0, _081B0ECC - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xb - ands r0, r1 - cmp r0, #0 - beq _081B0EC6 - ldr r0, _081B0ED0 - ldr r1, _081B0ED4 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081B0EC6 - adds r0, r2, #0 - bl sub_081B8BD8 - ldr r1, _081B0ED8 - ldr r1, [r1] - movs r2, #0xa8 - lsls r2, r2, #2 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - asrs r1, r0 - movs r0, #1 - ands r1, r0 - cmp r1, #0 - bne _081B0EC8 -_081B0EC6: - movs r0, #0 -_081B0EC8: - pop {r1} - bx r1 - .align 2, 0 -_081B0ECC: .4byte gUnknown_2022C90 -_081B0ED0: .4byte gUnknown_3002360 -_081B0ED4: .4byte 0x00000439 -_081B0ED8: .4byte gUnknown_2024140 - thumb_func_end PartyBoxPal_ParnterOrDisqualifiedInArena - - thumb_func_start sub_081B0EDC -sub_081B0EDC: @ 0x081B0EDC - push {r4, r5, r6, lr} - sub sp, #0xc - ldr r1, _081B0F18 - movs r6, #7 - str r6, [sp] - movs r5, #2 - str r5, [sp, #4] - movs r4, #0x11 - str r4, [sp, #8] - movs r0, #1 - movs r2, #0x17 - movs r3, #0x10 - bl CopyToBgTilemapBufferRect_ChangePalette - ldr r1, _081B0F1C - str r6, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #1 - movs r2, #0x17 - movs r3, #0x12 - bl CopyToBgTilemapBufferRect_ChangePalette - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081B0F18: .4byte gUnknown_85E107C -_081B0F1C: .4byte gUnknown_85E1098 - thumb_func_end sub_081B0EDC - - thumb_func_start IsMultiBattle -IsMultiBattle: @ 0x081B0F20 - push {lr} - ldr r0, _081B0F44 - ldr r0, [r0] - movs r1, #0x49 - ands r0, r1 - cmp r0, #0x49 - bne _081B0F50 - ldr r0, _081B0F48 - ldr r1, _081B0F4C - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081B0F50 - movs r0, #1 - b _081B0F52 - .align 2, 0 -_081B0F44: .4byte gUnknown_2022C90 -_081B0F48: .4byte gUnknown_3002360 -_081B0F4C: .4byte 0x00000439 -_081B0F50: - movs r0, #0 -_081B0F52: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsMultiBattle - - thumb_func_start sub_081B0F58 -sub_081B0F58: @ 0x081B0F58 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - movs r0, #0x64 - bl sub_08000BC8 - adds r5, r0, #0 - adds r1, r4, #0 - movs r2, #0x64 - bl memcpy - adds r0, r4, #0 - adds r1, r6, #0 - movs r2, #0x64 - bl memcpy - adds r0, r6, #0 - adds r1, r5, #0 - movs r2, #0x64 - bl memcpy - adds r0, r5, #0 - bl Free - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081B0F58 - - thumb_func_start sub_081B0F90 -sub_081B0F90: @ 0x081B0F90 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _081B0FC0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B0FC4 - str r1, [r0] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B0FC0: .4byte gUnknown_3005B60 -_081B0FC4: .4byte c3_0811FAB4 - thumb_func_end sub_081B0F90 - - thumb_func_start c3_0811FAB4 -c3_0811FAB4: @ 0x081B0FC8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _081B0FFC - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081B101C - ldr r4, _081B1000 - ldrb r1, [r4, #8] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - bne _081B0FEA - bl sub_081B8D20 -_081B0FEA: - ldr r0, _081B1004 - ldr r0, [r0] - ldr r0, [r0, #4] - cmp r0, #0 - beq _081B1008 - bl SetMainCallback2 - b _081B100E - .align 2, 0 -_081B0FFC: .4byte gUnknown_2037C74 -_081B1000: .4byte gUnknown_203CB94 -_081B1004: .4byte gUnknown_203CB90 -_081B1008: - ldr r0, [r4] - bl SetMainCallback2 -_081B100E: - bl ResetSpriteData - bl FreePartyPointers - adds r0, r5, #0 - bl DestroyTask -_081B101C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end c3_0811FAB4 - - thumb_func_start GetCursorSelectionMonId -GetCursorSelectionMonId: @ 0x081B1024 - ldr r0, _081B102C - ldrb r0, [r0, #9] - bx lr - .align 2, 0 -_081B102C: .4byte gUnknown_203CB94 - thumb_func_end GetCursorSelectionMonId - - thumb_func_start sub_081B1030 -sub_081B1030: @ 0x081B1030 - ldr r0, _081B103C - ldrb r0, [r0, #8] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - bx lr - .align 2, 0 -_081B103C: .4byte gUnknown_203CB94 - thumb_func_end sub_081B1030 - - thumb_func_start sub_081B1040 -sub_081B1040: @ 0x081B1040 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r6, r5, #0 - ldr r0, _081B107C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081B10B0 - bl sub_081221F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B10B0 - bl sub_081B10BC - adds r4, r0, #0 - bl PartyMenuButtonHandler - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #2 - beq _081B1090 - cmp r0, #2 - bgt _081B1080 - cmp r0, #1 - beq _081B1086 - b _081B10B0 - .align 2, 0 -_081B107C: .4byte gUnknown_2037C74 -_081B1080: - cmp r0, #8 - beq _081B109A - b _081B10B0 -_081B1086: - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_081B10DC - b _081B10B0 -_081B1090: - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_081B12A0 - b _081B10B0 -_081B109A: - ldr r0, _081B10B8 - ldr r0, [r0] - ldrb r0, [r0, #8] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _081B10B0 - movs r0, #5 - bl sub_080A306C - bl sub_081B4C28 -_081B10B0: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081B10B8: .4byte gUnknown_203CB90 - thumb_func_end sub_081B1040 - - thumb_func_start sub_081B10BC -sub_081B10BC: @ 0x081B10BC - push {lr} - ldr r0, _081B10D0 - ldrb r1, [r0, #0xb] - cmp r1, #8 - beq _081B10CA - cmp r1, #0xa - bne _081B10D4 -_081B10CA: - adds r0, #0xa - b _081B10D6 - .align 2, 0 -_081B10D0: .4byte gUnknown_203CB94 -_081B10D4: - adds r0, #9 -_081B10D6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081B10BC - - thumb_func_start sub_081B10DC -sub_081B10DC: @ 0x081B10DC - push {r4, r5, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #6 - bne _081B10FC - ldr r0, _081B10F8 - ldr r1, [r0, #4] - adds r0, r5, #0 - bl _call_via_r1 - b _081B126E - .align 2, 0 -_081B10F8: .4byte gUnknown_203CB94 -_081B10FC: - ldr r0, _081B1114 - ldrb r0, [r0, #0xb] - subs r0, #3 - cmp r0, #0xa - bls _081B1108 - b _081B1262 -_081B1108: - lsls r0, r0, #2 - ldr r1, _081B1118 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081B1114: .4byte gUnknown_203CB94 -_081B1118: .4byte _081B111C -_081B111C: @ jump table - .4byte _081B116C @ case 0 - .4byte _081B1262 @ case 1 - .4byte _081B1208 @ case 2 - .4byte _081B1208 @ case 3 - .4byte _081B11E0 @ case 4 - .4byte _081B1230 @ case 5 - .4byte _081B1262 @ case 6 - .4byte _081B1148 @ case 7 - .4byte _081B123E @ case 8 - .4byte _081B11B8 @ case 9 - .4byte _081B124C @ case 10 -_081B1148: - adds r0, r4, #0 - bl sub_081B1274 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081B1156 - b _081B126E -_081B1156: - ldr r0, _081B1168 - ldr r0, [r0] - adds r0, #0xd - bl sub_081B2CB0 - adds r0, r5, #0 - bl sub_081614AC - b _081B126E - .align 2, 0 -_081B1168: .4byte gUnknown_203CB90 -_081B116C: - adds r0, r4, #0 - bl sub_081B1274 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081B117A - b _081B126E -_081B117A: - ldr r0, _081B11A4 - ldrb r1, [r0, #8] - movs r0, #0xf - ands r0, r1 - ldr r2, _081B11A8 - cmp r0, #1 - bne _081B118E - ldr r1, [r2] - ldr r0, _081B11AC - str r0, [r1, #4] -_081B118E: - ldr r0, [r2] - adds r0, #0xd - bl sub_081B2CB0 - ldr r0, _081B11B0 - ldr r1, _081B11B4 - ldr r2, [r0] - adds r0, r5, #0 - bl _call_via_r2 - b _081B126E - .align 2, 0 -_081B11A4: .4byte gUnknown_203CB94 -_081B11A8: .4byte gUnknown_203CB90 -_081B11AC: .4byte sub_081B8DE0 -_081B11B0: .4byte gUnknown_3006068 -_081B11B4: .4byte sub_081B6434 -_081B11B8: - adds r0, r4, #0 - bl sub_081B1274 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081B126E - movs r0, #5 - bl sub_080A306C - ldr r0, _081B11DC - ldr r0, [r0] - adds r0, #0xd - bl sub_081B2CB0 - adds r0, r5, #0 - bl sub_081B7AF0 - b _081B126E - .align 2, 0 -_081B11DC: .4byte gUnknown_203CB90 -_081B11E0: - adds r0, r4, #0 - bl sub_081B1274 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081B126E - movs r0, #5 - bl sub_080A306C - ldr r0, _081B1204 - ldr r0, [r0] - adds r0, #0xd - bl sub_081B2CB0 - adds r0, r5, #0 - bl sub_081B8114 - b _081B126E - .align 2, 0 -_081B1204: .4byte gUnknown_203CB90 -_081B1208: - adds r0, r4, #0 - bl sub_081B1274 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081B126E - movs r0, #5 - bl sub_080A306C - ldr r0, _081B122C - ldr r0, [r0] - adds r0, #0xd - bl sub_081B2CB0 - adds r0, r5, #0 - bl sub_081B7C4C - b _081B126E - .align 2, 0 -_081B122C: .4byte gUnknown_203CB90 -_081B1230: - movs r0, #5 - bl sub_080A306C - adds r0, r5, #0 - bl sub_081B35D8 - b _081B126E -_081B123E: - movs r0, #5 - bl sub_080A306C - adds r0, r5, #0 - bl sub_081B0F90 - b _081B126E -_081B124C: - adds r0, r4, #0 - bl sub_081B1274 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081B126E - ldrb r1, [r4] - adds r0, r5, #0 - bl sub_081B1E7C - b _081B126E -_081B1262: - movs r0, #5 - bl sub_080A306C - adds r0, r5, #0 - bl sub_081B339C -_081B126E: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_081B10DC - - thumb_func_start sub_081B1274 -sub_081B1274: @ 0x081B1274 - push {lr} - ldrb r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081B1290 - adds r0, r0, r1 - movs r1, #0x2d - bl GetMonData - cmp r0, #1 - beq _081B1294 - movs r0, #1 - b _081B129C - .align 2, 0 -_081B1290: .4byte gUnknown_2024190 -_081B1294: - movs r0, #0x20 - bl sub_080A306C - movs r0, #0 -_081B129C: - pop {r1} - bx r1 - thumb_func_end sub_081B1274 - - thumb_func_start sub_081B12A0 -sub_081B12A0: @ 0x081B12A0 - push {r4, r5, lr} - adds r5, r1, #0 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _081B12BC - ldrb r0, [r0, #0xb] - cmp r0, #8 - beq _081B12D2 - cmp r0, #8 - bgt _081B12C0 - cmp r0, #1 - beq _081B12CA - b _081B12EE - .align 2, 0 -_081B12BC: .4byte gUnknown_203CB94 -_081B12C0: - cmp r0, #0xa - beq _081B12D2 - cmp r0, #0xd - beq _081B12E0 - b _081B12EE -_081B12CA: - movs r0, #0x20 - bl sub_080A306C - b _081B1322 -_081B12D2: - movs r0, #5 - bl sub_080A306C - adds r0, r4, #0 - bl sub_081B3D1C - b _081B1322 -_081B12E0: - movs r0, #5 - bl sub_080A306C - adds r0, r4, #0 - bl sub_081B1EE0 - b _081B1322 -_081B12EE: - movs r0, #5 - bl sub_080A306C - adds r0, r4, #0 - bl sub_081B1330 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B1322 - bl sub_081221B8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081B1312 - ldr r1, _081B1328 - movs r0, #7 - strh r0, [r1] -_081B1312: - ldr r0, _081B132C - movs r1, #0 - strb r1, [r0] - movs r0, #7 - strb r0, [r5] - adds r0, r4, #0 - bl sub_081B0F90 -_081B1322: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B1328: .4byte gUnknown_2037280 -_081B132C: .4byte gUnknown_203CBB4 - thumb_func_end sub_081B12A0 - - thumb_func_start sub_081B1330 -sub_081B1330: @ 0x081B1330 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r5, #0 - ldr r0, _081B1348 - ldrb r0, [r0, #8] - movs r1, #0xf - ands r1, r0 - cmp r1, #2 - bne _081B1350 - ldr r5, _081B134C - b _081B135A - .align 2, 0 -_081B1348: .4byte gUnknown_203CB94 -_081B134C: .4byte gUnknown_85CA210 -_081B1350: - cmp r1, #4 - bne _081B135A - bl sub_081B855C - adds r5, r0, #0 -_081B135A: - cmp r5, #0 - beq _081B139C - ldr r0, _081B138C - ldr r0, [r0] - adds r0, #0xd - bl sub_081B2CB0 - ldr r4, _081B1390 - adds r0, r4, #0 - adds r1, r5, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - movs r1, #1 - bl sub_081B182C - ldr r1, _081B1394 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B1398 - str r1, [r0] - movs r0, #1 - b _081B139E - .align 2, 0 -_081B138C: .4byte gUnknown_203CB90 -_081B1390: .4byte gUnknown_2021C7C -_081B1394: .4byte gUnknown_3005B60 -_081B1398: .4byte sub_081B13A4 -_081B139C: - movs r0, #0 -_081B139E: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_081B1330 - - thumb_func_start sub_081B13A4 -sub_081B13A4: @ 0x081B13A4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl LoadListMenuArrowsGfx - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B13C8 - bl sub_081B2FDC - ldr r0, _081B13D0 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B13D4 - str r0, [r1] -_081B13C8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B13D0: .4byte gUnknown_3005B60 -_081B13D4: .4byte sub_081B13D8 - thumb_func_end sub_081B13A4 - - thumb_func_start sub_081B13D8 -sub_081B13D8: @ 0x081B13D8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _081B13FE - cmp r1, #0 - bgt _081B13F8 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _081B141C - b _081B1428 -_081B13F8: - cmp r1, #1 - beq _081B1422 - b _081B1428 -_081B13FE: - ldr r0, _081B1414 - strb r1, [r0] - ldr r1, _081B1418 - movs r0, #7 - strb r0, [r1, #9] - bl sub_081B81F8 - adds r0, r4, #0 - bl sub_081B0F90 - b _081B1428 - .align 2, 0 -_081B1414: .4byte gUnknown_203CBB4 -_081B1418: .4byte gUnknown_203CB94 -_081B141C: - movs r0, #5 - bl sub_080A306C -_081B1422: - adds r0, r4, #0 - bl sub_081B18EC -_081B1428: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081B13D8 - - thumb_func_start PartyMenuButtonHandler -PartyMenuButtonHandler: @ 0x081B1430 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _081B1448 - ldrh r1, [r0, #0x30] - adds r3, r0, #0 - cmp r1, #0x20 - beq _081B145E - cmp r1, #0x20 - bgt _081B144C - cmp r1, #0x10 - beq _081B1462 - b _081B1466 - .align 2, 0 -_081B1448: .4byte gUnknown_3002360 -_081B144C: - cmp r1, #0x40 - beq _081B1456 - cmp r1, #0x80 - beq _081B145A - b _081B1466 -_081B1456: - movs r1, #0xff - b _081B1482 -_081B145A: - movs r1, #1 - b _081B1482 -_081B145E: - movs r1, #0xfe - b _081B1482 -_081B1462: - movs r1, #2 - b _081B1482 -_081B1466: - bl sub_08122118 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B147A - cmp r0, #2 - beq _081B147E - movs r1, #0 - b _081B1480 -_081B147A: - movs r1, #0xff - b _081B1480 -_081B147E: - movs r1, #1 -_081B1480: - ldr r3, _081B1490 -_081B1482: - ldrh r2, [r3, #0x2e] - movs r0, #8 - ands r0, r2 - cmp r0, #0 - beq _081B1494 - movs r0, #8 - b _081B14C0 - .align 2, 0 -_081B1490: .4byte gUnknown_3002360 -_081B1494: - lsls r0, r1, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _081B14A6 - adds r0, r4, #0 - bl UpdateCurrentPartySelection - movs r0, #0 - b _081B14C0 -_081B14A6: - movs r0, #1 - ands r0, r2 - cmp r0, #0 - beq _081B14BA - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #7 - bne _081B14BA - movs r0, #2 - b _081B14C0 -_081B14BA: - ldrh r1, [r3, #0x2e] - movs r0, #3 - ands r0, r1 -_081B14C0: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end PartyMenuButtonHandler - - thumb_func_start UpdateCurrentPartySelection -UpdateCurrentPartySelection: @ 0x081B14C8 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrb r4, [r5] - ldr r0, _081B14EC - ldrb r0, [r0, #8] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - cmp r0, #0 - bne _081B14F0 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r5, #0 - bl SetNewPartySelectTarget1 - b _081B14FA - .align 2, 0 -_081B14EC: .4byte gUnknown_203CB94 -_081B14F0: - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r5, #0 - bl SetNewPartySelectTarget2 -_081B14FA: - movs r1, #0 - ldrsb r1, [r5, r1] - lsls r4, r4, #0x18 - asrs r0, r4, #0x18 - cmp r1, r0 - beq _081B151C - movs r0, #5 - bl sub_080A306C - lsrs r0, r4, #0x18 - movs r1, #0 - bl sub_081B0C9C - ldrb r0, [r5] - movs r1, #1 - bl sub_081B0C9C -_081B151C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end UpdateCurrentPartySelection - - thumb_func_start SetNewPartySelectTarget1 -SetNewPartySelectTarget1: @ 0x081B1524 - push {r4, lr} - adds r4, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _081B154A - cmp r1, r0 - bgt _081B1540 - subs r0, #1 - cmp r1, r0 - beq _081B15F4 - b _081B1622 -_081B1540: - cmp r1, #1 - beq _081B1590 - cmp r1, #2 - beq _081B15C8 - b _081B1622 -_081B154A: - ldrb r0, [r4] - movs r1, #0 - ldrsb r1, [r4, r1] - cmp r1, #0 - bne _081B1558 - movs r0, #7 - b _081B1620 -_081B1558: - cmp r1, #6 - bne _081B1568 - ldr r0, _081B1564 - ldrb r0, [r0] - subs r0, #1 - b _081B1620 - .align 2, 0 -_081B1564: .4byte gUnknown_202418D -_081B1568: - cmp r1, #7 - bne _081B158C - ldr r0, _081B157C - ldr r0, [r0] - ldrb r0, [r0, #8] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _081B1580 - movs r0, #6 - b _081B1620 - .align 2, 0 -_081B157C: .4byte gUnknown_203CB90 -_081B1580: - ldr r0, _081B1588 - ldrb r0, [r0] - subs r0, #1 - b _081B1620 - .align 2, 0 -_081B1588: .4byte gUnknown_202418D -_081B158C: - subs r0, #1 - b _081B1620 -_081B1590: - ldrb r2, [r4] - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #7 - beq _081B161E - movs r1, #0 - ldrsb r1, [r4, r1] - ldr r0, _081B15B8 - ldrb r0, [r0] - subs r0, #1 - cmp r1, r0 - bne _081B15C4 - ldr r0, _081B15BC - ldr r0, [r0] - ldrb r0, [r0, #8] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _081B15C0 - movs r0, #6 - b _081B1620 - .align 2, 0 -_081B15B8: .4byte gUnknown_202418D -_081B15BC: .4byte gUnknown_203CB90 -_081B15C0: - movs r0, #7 - b _081B1620 -_081B15C4: - adds r0, r2, #1 - b _081B1620 -_081B15C8: - ldr r0, _081B15EC - ldrb r0, [r0] - cmp r0, #1 - beq _081B1622 - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #0 - bne _081B1622 - ldr r0, _081B15F0 - ldr r0, [r0] - ldrb r0, [r0, #8] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1d - cmp r0, #0 - bne _081B1620 - movs r0, #1 - b _081B1620 - .align 2, 0 -_081B15EC: .4byte gUnknown_202418D -_081B15F0: .4byte gUnknown_203CB90 -_081B15F4: - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #0 - beq _081B1622 - cmp r0, #6 - beq _081B1622 - cmp r0, #7 - beq _081B1622 - ldr r0, _081B1628 - ldr r3, [r0] - movs r1, #0 - ldrsb r1, [r4, r1] - movs r0, #7 - ands r1, r0 - lsls r1, r1, #1 - ldrb r2, [r3, #8] - movs r0, #0xf - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #8] -_081B161E: - movs r0, #0 -_081B1620: - strb r0, [r4] -_081B1622: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B1628: .4byte gUnknown_203CB90 - thumb_func_end SetNewPartySelectTarget1 - - thumb_func_start SetNewPartySelectTarget2 -SetNewPartySelectTarget2: @ 0x081B162C - push {r4, r5, r6, lr} - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r2, r1, #0x18 - asrs r5, r1, #0x18 - movs r6, #1 - rsbs r6, r6, #0 - cmp r5, r6 - beq _081B1658 - cmp r5, r6 - bgt _081B164E - movs r0, #2 - rsbs r0, r0, #0 - cmp r5, r0 - bne _081B164C - b _081B176C -_081B164C: - b _081B17C4 -_081B164E: - cmp r5, #1 - beq _081B16B4 - cmp r5, #2 - beq _081B16F4 - b _081B17C4 -_081B1658: - ldrb r1, [r4] - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #0 - bne _081B1666 - movs r0, #7 - b _081B17C2 -_081B1666: - cmp r0, #6 - bne _081B1678 - ldr r0, _081B1674 - ldrb r0, [r0] - subs r0, #1 - b _081B17C2 - .align 2, 0 -_081B1674: .4byte gUnknown_202418D -_081B1678: - cmp r0, #7 - bne _081B1694 - ldr r0, _081B168C - ldr r0, [r0] - ldrb r0, [r0, #8] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _081B1690 - movs r0, #6 - b _081B17C2 - .align 2, 0 -_081B168C: .4byte gUnknown_203CB90 -_081B1690: - subs r0, r1, #1 - strb r0, [r4] -_081B1694: - movs r0, #0 - ldrsb r0, [r4, r0] - lsls r1, r2, #0x18 - asrs r1, r1, #0x18 - bl sub_081B17D0 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _081B16B0 - b _081B17C4 -_081B16B0: - strb r2, [r4] - b _081B17C4 -_081B16B4: - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #6 - bne _081B16C0 - movs r0, #7 - b _081B17C2 -_081B16C0: - cmp r0, #7 - bne _081B16C8 - movs r0, #0 - b _081B17C2 -_081B16C8: - movs r0, #0 - ldrsb r0, [r4, r0] - movs r1, #1 - bl sub_081B17D0 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, r6 - bne _081B16B0 - ldr r0, _081B16EC - ldr r0, [r0] - ldrb r0, [r0, #8] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _081B16F0 - movs r0, #6 - b _081B17C2 - .align 2, 0 -_081B16EC: .4byte gUnknown_203CB90 -_081B16F0: - movs r0, #7 - b _081B17C2 -_081B16F4: - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #0 - bne _081B172C - ldr r0, _081B171C - ldr r0, [r0] - ldrb r0, [r0, #8] - lsls r0, r0, #0x1c - lsrs r6, r0, #0x1d - cmp r6, #3 - bne _081B1724 - ldr r0, _081B1720 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _081B17C4 - strb r6, [r4] - b _081B17C4 - .align 2, 0 -_081B171C: .4byte gUnknown_203CB90 -_081B1720: .4byte gUnknown_20242BC -_081B1724: - ldr r0, _081B1728 - b _081B1740 - .align 2, 0 -_081B1728: .4byte gUnknown_2024258 -_081B172C: - cmp r0, #1 - bne _081B17C4 - ldr r0, _081B1750 - ldr r0, [r0] - ldrb r0, [r0, #8] - lsls r0, r0, #0x1c - lsrs r5, r0, #0x1d - cmp r5, #5 - bne _081B1758 - ldr r0, _081B1754 -_081B1740: - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _081B17C4 - strb r5, [r4] - b _081B17C4 - .align 2, 0 -_081B1750: .4byte gUnknown_203CB90 -_081B1754: .4byte gUnknown_2024384 -_081B1758: - ldr r0, _081B1768 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _081B17C4 - movs r0, #4 - b _081B17C2 - .align 2, 0 -_081B1768: .4byte gUnknown_2024320 -_081B176C: - ldrb r1, [r4] - subs r0, r1, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _081B179C - ldr r0, _081B1798 - ldr r3, [r0] - movs r1, #0 - ldrsb r1, [r4, r1] - movs r0, #7 - ands r1, r0 - lsls r1, r1, #1 - ldrb r2, [r3, #8] - movs r0, #0xf - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #8] - movs r0, #0 - b _081B17C2 - .align 2, 0 -_081B1798: .4byte gUnknown_203CB90 -_081B179C: - subs r0, r1, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _081B17C4 - ldr r0, _081B17CC - ldr r3, [r0] - movs r1, #0 - ldrsb r1, [r4, r1] - movs r0, #7 - ands r1, r0 - lsls r1, r1, #1 - ldrb r2, [r3, #8] - movs r0, #0xf - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #8] - movs r0, #1 -_081B17C2: - strb r0, [r4] -_081B17C4: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081B17CC: .4byte gUnknown_203CB90 - thumb_func_end SetNewPartySelectTarget2 - - thumb_func_start sub_081B17D0 -sub_081B17D0: @ 0x081B17D0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x18 - asrs r6, r1, #0x18 -_081B17DA: - lsls r0, r5, #0x18 - asrs r0, r0, #0x18 - adds r0, r0, r6 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r5, #0x18 - lsrs r0, r1, #0x18 - cmp r0, #5 - bhi _081B1808 - asrs r4, r1, #0x18 - movs r0, #0x64 - muls r0, r4, r0 - ldr r1, _081B1804 - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _081B17DA - adds r0, r4, #0 - b _081B180C - .align 2, 0 -_081B1804: .4byte gUnknown_2024190 -_081B1808: - movs r0, #1 - rsbs r0, r0, #0 -_081B180C: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081B17D0 - - thumb_func_start GetMonNickname -GetMonNickname: @ 0x081B1814 - push {r4, lr} - adds r4, r1, #0 - movs r1, #2 - adds r2, r4, #0 - bl GetMonData - adds r0, r4, #0 - bl StringGetEnd10 - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetMonNickname - - thumb_func_start sub_081B182C -sub_081B182C: @ 0x081B182C - push {r4, lr} - lsls r4, r1, #0x18 - lsrs r4, r4, #0x18 - bl sub_081B2F90 - ldr r0, _081B1854 - movs r1, #1 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _081B1858 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #8] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081B1854: .4byte sub_081B185C -_081B1858: .4byte gUnknown_3005B60 - thumb_func_end sub_081B182C - - thumb_func_start sub_081B185C -sub_081B185C: @ 0x081B185C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, r4, #0 - movs r0, #6 - bl RunTextPrintersRetIsActive - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - beq _081B1898 - ldr r0, _081B18A0 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - movs r2, #8 - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _081B1892 - movs r0, #6 - movs r1, #0 - bl sub_08198134 - movs r0, #6 - bl ClearWindowTilemap -_081B1892: - adds r0, r5, #0 - bl DestroyTask -_081B1898: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B18A0: .4byte gUnknown_3005B60 - thumb_func_end sub_081B185C - - thumb_func_start LoadListMenuArrowsGfx -LoadListMenuArrowsGfx: @ 0x081B18A4 - push {lr} - ldr r0, _081B18B4 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_081B18B4: .4byte sub_081B185C - thumb_func_end LoadListMenuArrowsGfx - - thumb_func_start sub_081B18B8 -sub_081B18B8: @ 0x081B18B8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl sub_081221F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B18DE - movs r0, #0 - bl display_pokemon_menu_message - ldr r0, _081B18E4 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B18E8 - str r0, [r1] -_081B18DE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B18E4: .4byte gUnknown_3005B60 -_081B18E8: .4byte sub_081B1040 - thumb_func_end sub_081B18B8 - - thumb_func_start sub_081B18EC -sub_081B18EC: @ 0x081B18EC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, r4, #0 - bl LoadListMenuArrowsGfx - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B1944 - movs r0, #6 - movs r1, #0 - bl sub_08198134 - movs r0, #6 - bl ClearWindowTilemap - bl sub_081221B8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081B1930 - ldr r0, _081B1928 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B192C - b _081B1942 - .align 2, 0 -_081B1928: .4byte gUnknown_3005B60 -_081B192C: .4byte sub_081B18B8 -_081B1930: - movs r0, #0 - bl display_pokemon_menu_message - ldr r0, _081B194C - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B1950 -_081B1942: - str r0, [r1] -_081B1944: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B194C: .4byte gUnknown_3005B60 -_081B1950: .4byte sub_081B1040 - thumb_func_end sub_081B18EC - - thumb_func_start sub_081B1954 -sub_081B1954: @ 0x081B1954 - push {r4, r5, lr} - adds r4, r1, #0 - adds r5, r2, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r1, _081B1990 - bl GetMonNickname - ldr r1, _081B1994 - adds r0, r4, #0 - bl sub_080D5EC8 - ldr r4, _081B1998 - ldr r1, _081B199C - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_081B182C - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B1990: .4byte gUnknown_2021C40 -_081B1994: .4byte gUnknown_2021C54 -_081B1998: .4byte gUnknown_2021C7C -_081B199C: .4byte gUnknown_85C9C76 - thumb_func_end sub_081B1954 - - thumb_func_start sub_081B19A0 -sub_081B19A0: @ 0x081B19A0 - push {r4, r5, lr} - adds r4, r1, #0 - adds r5, r2, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r1, _081B19DC - bl GetMonNickname - ldr r1, _081B19E0 - adds r0, r4, #0 - bl sub_080D5EC8 - ldr r4, _081B19E4 - ldr r1, _081B19E8 - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_081B182C - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B19DC: .4byte gUnknown_2021C40 -_081B19E0: .4byte gUnknown_2021C54 -_081B19E4: .4byte gUnknown_2021C7C -_081B19E8: .4byte gUnknown_85C9CC6 - thumb_func_end sub_081B19A0 - - thumb_func_start sub_081B19EC -sub_081B19EC: @ 0x081B19EC - push {r4, r5, lr} - adds r4, r1, #0 - adds r5, r2, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r1, _081B1A28 - bl GetMonNickname - ldr r1, _081B1A2C - adds r0, r4, #0 - bl sub_080D5EC8 - ldr r4, _081B1A30 - ldr r1, _081B1A34 - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_081B182C - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B1A28: .4byte gUnknown_2021C40 -_081B1A2C: .4byte gUnknown_2021C54 -_081B1A30: .4byte gUnknown_2021C7C -_081B1A34: .4byte gUnknown_85C9C86 - thumb_func_end sub_081B19EC - - thumb_func_start sub_081B1A38 -sub_081B1A38: @ 0x081B1A38 - push {r4, r5, lr} - adds r4, r1, #0 - adds r5, r2, #0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r1, _081B1A78 - bl sub_080D5EC8 - ldr r1, _081B1A7C - adds r0, r4, #0 - bl sub_080D5EC8 - ldr r4, _081B1A80 - ldr r1, _081B1A84 - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_081B182C - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B1A78: .4byte gUnknown_2021C40 -_081B1A7C: .4byte gUnknown_2021C54 -_081B1A80: .4byte gUnknown_2021C7C -_081B1A84: .4byte gUnknown_85C9CEF - thumb_func_end sub_081B1A38 - - thumb_func_start sub_081B1A88 -sub_081B1A88: @ 0x081B1A88 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r6, r0, #0 - lsls r5, r1, #0x10 - lsrs r4, r5, #0x10 - adds r7, r4, #0 - adds r0, r4, #0 - bl ItemIsMail - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081B1AB2 - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_080D3CC0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _081B1AC6 -_081B1AB2: - mov r0, sp - strb r7, [r0] - mov r1, sp - lsrs r0, r5, #0x18 - strb r0, [r1, #1] - adds r0, r6, #0 - movs r1, #0xc - mov r2, sp - bl SetMonData -_081B1AC6: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081B1A88 - - thumb_func_start InitEventObjectPalettes -InitEventObjectPalettes: @ 0x081B1AD0 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - movs r1, #0xc - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r1, sp - strh r0, [r1] - cmp r0, #0 - bne _081B1AEC - movs r0, #0 - b _081B1B0E -_081B1AEC: - movs r1, #1 - bl AddBagItem - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081B1B0C - movs r1, #0 - mov r0, sp - strh r1, [r0] - adds r0, r4, #0 - movs r1, #0xc - mov r2, sp - bl SetMonData - movs r0, #2 - b _081B1B0E -_081B1B0C: - movs r0, #1 -_081B1B0E: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end InitEventObjectPalettes - - thumb_func_start pokemon_item_not_removed -pokemon_item_not_removed: @ 0x081B1B18 - push {lr} - ldr r0, _081B1B28 - ldr r1, _081B1B2C - bl StringExpandPlaceholders - pop {r0} - bx r0 - .align 2, 0 -_081B1B28: .4byte gUnknown_2021C7C -_081B1B2C: .4byte gUnknown_85C9D47 - thumb_func_end pokemon_item_not_removed - - thumb_func_start sub_081B1B30 -sub_081B1B30: @ 0x081B1B30 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r0, r0, #2 - add r0, r8 - lsls r0, r0, #3 - ldr r1, _081B1BD8 - adds r7, r0, r1 - ldrh r0, [r7, #4] - ldrh r1, [r7] - adds r0, r0, r1 - strh r0, [r7] - ldrh r0, [r7, #6] - subs r0, #1 - strh r0, [r7, #6] - movs r2, #8 - ldrsh r0, [r7, r2] - movs r5, #0x64 - muls r0, r5, r0 - ldr r4, _081B1BDC - adds r0, r0, r4 - movs r1, #0x39 - adds r2, r7, #0 - bl SetMonData - movs r3, #8 - ldrsh r2, [r7, r3] - adds r0, r2, #0 - muls r0, r5, r0 - adds r0, r0, r4 - ldr r6, _081B1BE0 - lsls r2, r2, #4 - ldr r1, [r6] - adds r1, r1, r2 - movs r2, #1 - bl DisplayPartyPokemonHPCheck - movs r0, #8 - ldrsh r2, [r7, r0] - adds r0, r2, #0 - muls r0, r5, r0 - adds r0, r0, r4 - lsls r2, r2, #4 - ldr r1, [r6] - adds r1, r1, r2 - bl DisplayPartyPokemonHPBarCheck - movs r1, #6 - ldrsh r0, [r7, r1] - cmp r0, #0 - beq _081B1BAC - movs r2, #0 - ldrsh r1, [r7, r2] - cmp r1, #0 - beq _081B1BAC - movs r3, #2 - ldrsh r0, [r7, r3] - cmp r1, r0 - bne _081B1BCE -_081B1BAC: - movs r0, #0 - ldrsh r1, [r7, r0] - movs r2, #0xa - ldrsh r0, [r7, r2] - cmp r1, r0 - ble _081B1BC8 - ldr r0, _081B1BE4 - movs r3, #0xa - ldrsh r2, [r7, r3] - subs r1, r1, r2 - movs r2, #0 - movs r3, #3 - bl sub_080089D8 -_081B1BC8: - mov r0, r8 - bl SwitchTaskToFollowupFunc -_081B1BCE: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B1BD8: .4byte gUnknown_3005B68 -_081B1BDC: .4byte gUnknown_2024190 -_081B1BE0: .4byte gUnknown_203CBA8 -_081B1BE4: .4byte gUnknown_2021C54 - thumb_func_end sub_081B1B30 - - thumb_func_start sub_081B1BE8 -sub_081B1BE8: @ 0x081B1BE8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov r8, r0 - mov sb, r1 - adds r5, r2, #0 - mov sl, r3 - ldr r7, [sp, #0x20] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - mov r0, sb - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - mov r0, sl - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sl, r0 - movs r0, #0x64 - mov r6, sb - muls r6, r0, r6 - ldr r0, _081B1C6C - adds r6, r6, r0 - mov r0, r8 - lsls r4, r0, #2 - add r4, r8 - lsls r4, r4, #3 - ldr r0, _081B1C70 - adds r4, r4, r0 - adds r0, r6, #0 - movs r1, #0x39 - bl GetMonData - strh r0, [r4] - adds r0, r6, #0 - movs r1, #0x3a - bl GetMonData - strh r0, [r4, #2] - lsls r5, r5, #0x18 - asrs r5, r5, #0x18 - strh r5, [r4, #4] - mov r0, sl - strh r0, [r4, #6] - mov r0, sb - strh r0, [r4, #8] - ldrh r0, [r4] - strh r0, [r4, #0xa] - ldr r1, _081B1C74 - mov r0, r8 - adds r2, r7, #0 - bl SetTaskFuncWithFollowupFunc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B1C6C: .4byte gUnknown_2024190 -_081B1C70: .4byte gUnknown_3005B68 -_081B1C74: .4byte sub_081B1B30 - thumb_func_end sub_081B1BE8 - - thumb_func_start sub_081B1C78 -sub_081B1C78: @ 0x081B1C78 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _081B1C9C - adds r3, r0, r1 - cmp r5, #5 - bhi _081B1CDA - lsls r0, r5, #2 - ldr r1, _081B1CA0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081B1C9C: .4byte gUnknown_3005B68 -_081B1CA0: .4byte _081B1CA4 -_081B1CA4: @ jump table - .4byte _081B1CBC @ case 0 - .4byte _081B1CC2 @ case 1 - .4byte _081B1CC6 @ case 2 - .4byte _081B1CCA @ case 3 - .4byte _081B1CCE @ case 4 - .4byte _081B1CD2 @ case 5 -_081B1CBC: - strh r2, [r3] - strh r2, [r3, #0xa] - b _081B1CDA -_081B1CC2: - strh r2, [r3, #2] - b _081B1CDA -_081B1CC6: - strh r2, [r3, #4] - b _081B1CDA -_081B1CCA: - strh r2, [r3, #6] - b _081B1CDA -_081B1CCE: - strh r2, [r3, #8] - b _081B1CDA -_081B1CD2: - ldr r1, _081B1CE0 - adds r0, r4, #0 - bl SetTaskFuncWithFollowupFunc -_081B1CDA: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B1CE0: .4byte sub_081B1B30 - thumb_func_end sub_081B1C78 - - thumb_func_start pokemon_ailments_get_primary -pokemon_ailments_get_primary: @ 0x081B1CE4 - push {lr} - adds r1, r0, #0 - movs r0, #0x88 - ands r0, r1 - cmp r0, #0 - beq _081B1CF4 - movs r0, #1 - b _081B1D26 -_081B1CF4: - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _081B1D00 - movs r0, #2 - b _081B1D26 -_081B1D00: - movs r0, #7 - ands r0, r1 - cmp r0, #0 - beq _081B1D0C - movs r0, #3 - b _081B1D26 -_081B1D0C: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _081B1D18 - movs r0, #4 - b _081B1D26 -_081B1D18: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _081B1D24 - movs r0, #0 - b _081B1D26 -_081B1D24: - movs r0, #5 -_081B1D26: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end pokemon_ailments_get_primary - - thumb_func_start GetMonAilment -GetMonAilment: @ 0x081B1D2C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - bne _081B1D3E - movs r0, #7 - b _081B1D66 -_081B1D3E: - adds r0, r4, #0 - movs r1, #0x37 - bl GetMonData - bl pokemon_ailments_get_primary - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _081B1D66 - adds r0, r4, #0 - movs r1, #0 - bl CheckPartyPokerus - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081B1D64 - movs r0, #0 - b _081B1D66 -_081B1D64: - movs r0, #6 -_081B1D66: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetMonAilment - - thumb_func_start sub_081B1D6C -sub_081B1D6C: @ 0x081B1D6C - push {r4, r5, lr} - ldr r2, _081B1DBC - ldrb r1, [r2, #8] - movs r0, #0xf - ands r0, r1 - cmp r0, #0xb - bne _081B1DF6 - adds r5, r2, #0 - adds r5, #0xe - movs r0, #0 - strh r0, [r2, #0xe] - ldr r0, _081B1DC0 - ldrh r0, [r0] - cmp r0, #0 - bne _081B1DCC - movs r4, #0 - ldr r0, _081B1DC4 - ldrb r0, [r0] - cmp r4, r0 - bhs _081B1DF6 -_081B1D94: - movs r0, #0x64 - muls r0, r4, r0 - ldr r1, _081B1DC8 - adds r0, r0, r1 - bl sub_081B1E04 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r0, r4 - ldrh r1, [r5] - adds r0, r0, r1 - strh r0, [r5] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _081B1DC4 - ldrb r0, [r0] - cmp r4, r0 - blo _081B1D94 - b _081B1DF6 - .align 2, 0 -_081B1DBC: .4byte gUnknown_203CB94 -_081B1DC0: .4byte gUnknown_2037282 -_081B1DC4: .4byte gUnknown_202418D -_081B1DC8: .4byte gUnknown_2024190 -_081B1DCC: - movs r4, #0 - b _081B1DEE -_081B1DD0: - movs r0, #0x64 - muls r0, r4, r0 - ldr r1, _081B1DFC - adds r0, r0, r1 - bl sub_081B1E34 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r0, r4 - ldrh r1, [r5] - adds r0, r0, r1 - strh r0, [r5] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_081B1DEE: - ldr r0, _081B1E00 - ldrb r0, [r0] - cmp r4, r0 - blo _081B1DD0 -_081B1DF6: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B1DFC: .4byte gUnknown_2024190 -_081B1E00: .4byte gUnknown_202418D - thumb_func_end sub_081B1D6C - - thumb_func_start sub_081B1E04 -sub_081B1E04: @ 0x081B1E04 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #1 - beq _081B1E2A - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_0802C5FC - cmp r0, #0 - beq _081B1E2A - movs r0, #1 - b _081B1E2C -_081B1E2A: - movs r0, #0 -_081B1E2C: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081B1E04 - - thumb_func_start sub_081B1E34 -sub_081B1E34: @ 0x081B1E34 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #1 - beq _081B1E52 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - cmp r0, #0x55 - bne _081B1E52 - movs r0, #1 - b _081B1E54 -_081B1E52: - movs r0, #0 -_081B1E54: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081B1E34 - - thumb_func_start sub_081B1E5C -sub_081B1E5C: @ 0x081B1E5C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081B1E78 - movs r2, #0xe - ldrsh r1, [r1, r2] - asrs r1, r0 - movs r0, #1 - ands r1, r0 - cmp r1, #0 - bne _081B1E74 - movs r0, #0 -_081B1E74: - pop {r1} - bx r1 - .align 2, 0 -_081B1E78: .4byte gUnknown_203CB94 - thumb_func_end sub_081B1E5C - - thumb_func_start sub_081B1E7C -sub_081B1E7C: @ 0x081B1E7C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - adds r0, r5, #0 - bl sub_081B1E5C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081B1EAC - movs r0, #5 - bl sub_080A306C - ldr r0, _081B1EA8 - strh r5, [r0] - adds r0, r4, #0 - bl sub_081B0F90 - b _081B1ECE - .align 2, 0 -_081B1EA8: .4byte gUnknown_2037280 -_081B1EAC: - movs r0, #0x20 - bl sub_080A306C - ldr r0, _081B1ED4 - movs r1, #0 - bl sub_081B182C - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, _081B1ED8 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B1EDC - str r1, [r0] -_081B1ECE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B1ED4: .4byte gUnknown_85CA1FB -_081B1ED8: .4byte gUnknown_3005B60 -_081B1EDC: .4byte sub_081B18EC - thumb_func_end sub_081B1E7C - - thumb_func_start sub_081B1EE0 -sub_081B1EE0: @ 0x081B1EE0 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081B1F0C - movs r1, #1 - bl sub_081B182C - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, _081B1F10 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B1F14 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B1F0C: .4byte gUnknown_85CA210 -_081B1F10: .4byte gUnknown_3005B60 -_081B1F14: .4byte sub_081B1F18 - thumb_func_end sub_081B1EE0 - - thumb_func_start sub_081B1F18 -sub_081B1F18: @ 0x081B1F18 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl LoadListMenuArrowsGfx - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B1F3C - bl sub_081B2FDC - ldr r0, _081B1F44 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B1F48 - str r0, [r1] -_081B1F3C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B1F44: .4byte gUnknown_3005B60 -_081B1F48: .4byte sub_081B1F4C - thumb_func_end sub_081B1F18 - - thumb_func_start sub_081B1F4C -sub_081B1F4C: @ 0x081B1F4C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _081B1F72 - cmp r1, #0 - bgt _081B1F6C - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _081B1F84 - b _081B1F98 -_081B1F6C: - cmp r1, #1 - beq _081B1F8A - b _081B1F98 -_081B1F72: - ldr r1, _081B1F80 - movs r0, #7 - strh r0, [r1] - adds r0, r4, #0 - bl sub_081B0F90 - b _081B1F98 - .align 2, 0 -_081B1F80: .4byte gUnknown_2037280 -_081B1F84: - movs r0, #5 - bl sub_080A306C -_081B1F8A: - ldr r0, _081B1FA0 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B1FA4 - str r0, [r1] -_081B1F98: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B1FA0: .4byte gUnknown_3005B60 -_081B1FA4: .4byte sub_081B18EC - thumb_func_end sub_081B1F4C - - thumb_func_start CanMonLearnTMTutor -CanMonLearnTMTutor: @ 0x081B1FA8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - adds r7, r4, #0 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - mov r8, r6 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - beq _081B1FCA - movs r0, #3 - b _081B2026 -_081B1FCA: - movs r0, #0x90 - lsls r0, r0, #1 - cmp r4, r0 - bls _081B1FEC - adds r1, r4, #0 - subs r1, #0x21 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl CanMonLearnTMHM - cmp r0, #0 - beq _081B2004 - adds r0, r7, #0 - bl ItemIdToBattleMoveId - b _081B200E -_081B1FEC: - adds r0, r5, #0 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r6, #0 - bl CanLearnTutorMove - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081B2008 -_081B2004: - movs r0, #1 - b _081B2026 -_081B2008: - mov r0, r8 - bl sub_081B2030 -_081B200E: - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - adds r0, r5, #0 - bl MonKnowsMove - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B2024 - movs r0, #0 - b _081B2026 -_081B2024: - movs r0, #2 -_081B2026: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end CanMonLearnTMTutor - - thumb_func_start sub_081B2030 -sub_081B2030: @ 0x081B2030 - lsls r0, r0, #0x18 - ldr r1, _081B203C - lsrs r0, r0, #0x17 - adds r0, r0, r1 - ldrh r0, [r0] - bx lr - .align 2, 0 -_081B203C: .4byte gUnknown_85E08C4 - thumb_func_end sub_081B2030 - - thumb_func_start CanLearnTutorMove -CanLearnTutorMove: @ 0x081B2040 - push {lr} - lsls r0, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _081B2060 - lsrs r0, r0, #0xe - adds r0, r0, r2 - movs r2, #1 - lsls r2, r1 - ldr r0, [r0] - ands r0, r2 - cmp r0, #0 - bne _081B2064 - movs r0, #0 - b _081B2066 - .align 2, 0 -_081B2060: .4byte gUnknown_85E0900 -_081B2064: - movs r0, #1 -_081B2066: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CanLearnTutorMove - - thumb_func_start sub_081B206C -sub_081B206C: @ 0x081B206C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - cmp r0, #1 - beq _081B2094 - cmp r0, #1 - bgt _081B2082 - cmp r0, #0 - beq _081B2088 - b _081B20AC -_081B2082: - cmp r1, #2 - beq _081B20A0 - b _081B20AC -_081B2088: - ldr r0, _081B2090 - bl InitWindows - b _081B20B2 - .align 2, 0 -_081B2090: .4byte gUnknown_85E10C8 -_081B2094: - ldr r0, _081B209C - bl InitWindows - b _081B20B2 - .align 2, 0 -_081B209C: .4byte gUnknown_85E1108 -_081B20A0: - ldr r0, _081B20A8 - bl InitWindows - b _081B20B2 - .align 2, 0 -_081B20A8: .4byte gUnknown_85E1148 -_081B20AC: - ldr r0, _081B20F0 - bl InitWindows -_081B20B2: - bl sub_08004480 - movs r4, #0 -_081B20B8: - adds r0, r4, #0 - movs r1, #0 - bl FillWindowPixelBuffer - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #5 - bls _081B20B8 - movs r0, #0 - movs r1, #0x4f - movs r2, #0xd0 - bl LoadUserWindowBorderGfx - bl sub_080985EC - movs r1, #0xe0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _081B20F4 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B20F0: .4byte gUnknown_85E1188 -_081B20F4: .4byte gUnknown_85D7B04 - thumb_func_end sub_081B206C - - thumb_func_start sub_081B20F8 -sub_081B20F8: @ 0x081B20F8 - push {r4, r5, lr} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _081B2160 - ldrb r1, [r0, #8] - movs r0, #0xf - ands r0, r1 - cmp r0, #5 - beq _081B21EE - cmp r2, #1 - bne _081B2174 - ldr r0, _081B2164 - bl AddWindow - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - ldr r0, _081B2168 - str r0, [sp, #8] - movs r0, #1 - rsbs r0, r0, #0 - str r0, [sp, #0xc] - ldr r0, _081B216C - str r0, [sp, #0x10] - adds r0, r4, #0 - movs r1, #1 - movs r2, #8 - movs r3, #2 - bl AddTextPrinterParameterized4 - adds r0, r4, #0 - bl PutWindowTilemap - adds r0, r4, #0 - movs r1, #2 - bl CopyWindowToVram - ldr r0, _081B2170 - bl AddWindow - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r5, #0xa - b _081B2180 - .align 2, 0 -_081B2160: .4byte gUnknown_203CB94 -_081B2164: .4byte gUnknown_85E11D0 -_081B2168: .4byte gUnknown_85E10B4 -_081B216C: .4byte gUnknown_85C93BB -_081B2170: .4byte gUnknown_85E11C8 -_081B2174: - ldr r0, _081B21B0 - bl AddWindow - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r5, #0xc -_081B2180: - adds r0, r4, #0 - movs r1, #0 - bl FillWindowPixelBuffer - ldr r0, _081B21B4 - ldrb r1, [r0, #8] - movs r0, #0xf - ands r0, r1 - cmp r0, #0xa - beq _081B21C0 - ldr r0, _081B21B8 - str r0, [sp] - movs r0, #1 - rsbs r0, r0, #0 - str r0, [sp, #4] - ldr r0, _081B21BC - str r0, [sp, #8] - adds r0, r4, #0 - movs r1, #1 - adds r2, r5, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 - b _081B21DA - .align 2, 0 -_081B21B0: .4byte gUnknown_85E11C0 -_081B21B4: .4byte gUnknown_203CB94 -_081B21B8: .4byte gUnknown_85E10B4 -_081B21BC: .4byte gUnknown_85C93C4 -_081B21C0: - ldr r0, _081B21F8 - str r0, [sp] - movs r0, #1 - rsbs r0, r0, #0 - str r0, [sp, #4] - ldr r0, _081B21FC - str r0, [sp, #8] - adds r0, r4, #0 - movs r1, #1 - adds r2, r5, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 -_081B21DA: - adds r0, r4, #0 - bl PutWindowTilemap - adds r0, r4, #0 - movs r1, #2 - bl CopyWindowToVram - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram -_081B21EE: - add sp, #0x14 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B21F8: .4byte gUnknown_85E10B4 -_081B21FC: .4byte gUnknown_85C93C8 - thumb_func_end sub_081B20F8 - - thumb_func_start GetPartyMenuPaletteFromBuffer -GetPartyMenuPaletteFromBuffer: @ 0x081B2200 - lsls r0, r0, #0x18 - ldr r1, _081B2210 - lsrs r0, r0, #0x17 - adds r0, #0x18 - ldr r1, [r1] - adds r1, r1, r0 - adds r0, r1, #0 - bx lr - .align 2, 0 -_081B2210: .4byte gUnknown_203CB90 - thumb_func_end GetPartyMenuPaletteFromBuffer - - thumb_func_start BlitBitmapToPartyWindow -BlitBitmapToPartyWindow: @ 0x081B2214 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x2c - str r1, [sp, #0xc] - ldr r1, [sp, #0x4c] - ldr r4, [sp, #0x50] - ldr r5, [sp, #0x54] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #8] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x10] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r3, [sp, #0x14] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp, #0x18] - lsls r4, r4, #0x18 - lsrs r6, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - mov sl, r5 - mov r0, sl - muls r0, r6, r0 - lsls r0, r0, #5 - bl AllocZeroed - mov sb, r0 - cmp r0, #0 - beq _081B22E2 - movs r5, #0 - ldr r0, [sp, #0x14] - lsls r0, r0, #0x13 - str r0, [sp, #0x1c] - ldr r1, [sp, #0x18] - lsls r1, r1, #0x13 - str r1, [sp, #0x20] - lsls r2, r6, #0x13 - str r2, [sp, #0x24] - mov r0, sl - lsls r0, r0, #0x13 - str r0, [sp, #0x28] - cmp r5, sl - bhs _081B22C0 -_081B2276: - movs r4, #0 - adds r1, r5, #1 - mov r8, r1 - cmp r4, r6 - bhs _081B22B6 - ldr r2, [sp, #0x18] - adds r0, r2, r5 - ldr r2, [sp, #0x10] - adds r1, r0, #0 - muls r1, r2, r1 - adds r7, r1, #0 -_081B228C: - ldr r1, [sp, #0x14] - adds r0, r1, r4 - adds r0, r0, r7 - ldr r2, [sp, #0xc] - adds r0, r2, r0 - ldrb r0, [r0] - bl GetPartyMiscGraphicsTile - adds r1, r5, #0 - muls r1, r6, r1 - adds r1, r1, r4 - lsls r1, r1, #5 - add r1, sb - movs r2, #0x10 - bl CpuSet - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r6 - blo _081B228C -_081B22B6: - mov r1, r8 - lsls r0, r1, #0x18 - lsrs r5, r0, #0x18 - cmp r5, sl - blo _081B2276 -_081B22C0: - ldr r0, [sp, #0x1c] - lsrs r2, r0, #0x10 - ldr r1, [sp, #0x20] - lsrs r3, r1, #0x10 - ldr r1, [sp, #0x24] - lsrs r0, r1, #0x10 - str r0, [sp] - ldr r1, [sp, #0x28] - lsrs r0, r1, #0x10 - str r0, [sp, #4] - ldr r0, [sp, #8] - mov r1, sb - bl BlitBitmapToWindow - mov r0, sb - bl Free -_081B22E2: - add sp, #0x2c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end BlitBitmapToPartyWindow - - thumb_func_start BlitBitmapToPartyWindow_Default1 -BlitBitmapToPartyWindow_Default1: @ 0x081B22F4 - push {r4, r5, r6, lr} - sub sp, #0xc - ldr r4, [sp, #0x1c] - ldr r5, [sp, #0x20] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - cmp r3, #0 - bne _081B2320 - cmp r4, #0 - bne _081B2320 - movs r3, #0xa - movs r4, #7 -_081B2320: - cmp r5, #0 - bne _081B233C - ldr r1, _081B2338 - str r2, [sp] - str r3, [sp, #4] - str r4, [sp, #8] - movs r2, #0xa - adds r3, r6, #0 - bl BlitBitmapToPartyWindow - b _081B234C - .align 2, 0 -_081B2338: .4byte gUnknown_85E1240 -_081B233C: - ldr r1, _081B2354 - str r2, [sp] - str r3, [sp, #4] - str r4, [sp, #8] - movs r2, #0xa - adds r3, r6, #0 - bl BlitBitmapToPartyWindow -_081B234C: - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081B2354: .4byte gUnknown_85E1286 - thumb_func_end BlitBitmapToPartyWindow_Default1 - - thumb_func_start BlitBitmapToPartyWindow_Default2 -BlitBitmapToPartyWindow_Default2: @ 0x081B2358 - push {r4, r5, r6, lr} - sub sp, #0xc - ldr r4, [sp, #0x1c] - ldr r5, [sp, #0x20] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - cmp r3, #0 - bne _081B2384 - cmp r4, #0 - bne _081B2384 - movs r3, #0x12 - movs r4, #3 -_081B2384: - cmp r5, #0 - bne _081B23A0 - ldr r1, _081B239C - str r2, [sp] - str r3, [sp, #4] - str r4, [sp, #8] - movs r2, #0x12 - adds r3, r6, #0 - bl BlitBitmapToPartyWindow - b _081B23B0 - .align 2, 0 -_081B239C: .4byte gUnknown_85E12CC -_081B23A0: - ldr r1, _081B23B8 - str r2, [sp] - str r3, [sp, #4] - str r4, [sp, #8] - movs r2, #0x12 - adds r3, r6, #0 - bl BlitBitmapToPartyWindow -_081B23B0: - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081B23B8: .4byte gUnknown_85E1302 - thumb_func_end BlitBitmapToPartyWindow_Default2 - - thumb_func_start DrawEmptySlot -DrawEmptySlot: @ 0x081B23BC - push {lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081B23E0 - movs r2, #0 - str r2, [sp] - movs r2, #0x12 - str r2, [sp, #4] - movs r2, #3 - str r2, [sp, #8] - movs r2, #0x12 - movs r3, #0 - bl BlitBitmapToPartyWindow - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_081B23E0: .4byte gUnknown_85E1338 - thumb_func_end DrawEmptySlot - - thumb_func_start UpdateSelectedPartyBox -UpdateSelectedPartyBox: @ 0x081B23E4 - push {r4, r5, r6, r7, lr} - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - adds r5, r4, #0 - ldrb r0, [r0, #8] - movs r1, #5 - bl GetWindowAttribute - lsls r0, r0, #0x1c - lsrs r6, r0, #0x18 - adds r7, r6, #0 - movs r0, #0x40 - ands r0, r4 - cmp r0, #0 - beq _081B2418 - ldr r5, _081B2410 - ldrb r0, [r5] - bl GetPartyMenuPaletteFromBuffer - ldr r4, _081B2414 - b _081B261A - .align 2, 0 -_081B2410: .4byte gUnknown_85E13A9 -_081B2414: .4byte gUnknown_85E1378 -_081B2418: - movs r0, #0x20 - ands r0, r4 - cmp r0, #0 - beq _081B2474 - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _081B2430 - ldr r5, _081B242C - b _081B25DE - .align 2, 0 -_081B242C: .4byte gUnknown_85E1397 -_081B2430: - ldr r5, _081B2468 - ldrb r0, [r5] - bl GetPartyMenuPaletteFromBuffer - ldr r4, _081B246C - ldrb r1, [r4] - adds r1, r1, r6 - movs r2, #2 - bl LoadPalette - ldrb r0, [r5, #1] - bl GetPartyMenuPaletteFromBuffer - ldrb r1, [r4, #1] - adds r1, r1, r6 - movs r2, #2 - bl LoadPalette - ldrb r0, [r5, #2] - bl GetPartyMenuPaletteFromBuffer - ldrb r1, [r4, #2] - adds r1, r1, r6 - movs r2, #2 - bl LoadPalette - ldr r5, _081B2470 - b _081B2612 - .align 2, 0 -_081B2468: .4byte gUnknown_85E1397 -_081B246C: .4byte gUnknown_85E1372 -_081B2470: .4byte gUnknown_85E13A6 -_081B2474: - movs r0, #0x10 - ands r0, r4 - cmp r0, #0 - beq _081B24C0 - ldr r5, _081B24B4 - ldrb r0, [r5] - bl GetPartyMenuPaletteFromBuffer - ldr r4, _081B24B8 - ldrb r1, [r4] - adds r1, r1, r6 - movs r2, #2 - bl LoadPalette - ldrb r0, [r5, #1] - bl GetPartyMenuPaletteFromBuffer - ldrb r1, [r4, #1] - adds r1, r1, r6 - movs r2, #2 - bl LoadPalette - ldrb r0, [r5, #2] - bl GetPartyMenuPaletteFromBuffer - ldrb r1, [r4, #2] - adds r1, r1, r6 - movs r2, #2 - bl LoadPalette - ldr r5, _081B24BC - b _081B2612 - .align 2, 0 -_081B24B4: .4byte gUnknown_85E1397 -_081B24B8: .4byte gUnknown_85E1372 -_081B24BC: .4byte gUnknown_85E13A6 -_081B24C0: - movs r0, #4 - ands r0, r4 - cmp r0, #0 - beq _081B251C - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _081B24D8 - ldr r5, _081B24D4 - b _081B25DE - .align 2, 0 -_081B24D4: .4byte gUnknown_85E1397 -_081B24D8: - ldr r5, _081B2510 - ldrb r0, [r5] - bl GetPartyMenuPaletteFromBuffer - ldr r4, _081B2514 - ldrb r1, [r4] - adds r1, r1, r6 - movs r2, #2 - bl LoadPalette - ldrb r0, [r5, #1] - bl GetPartyMenuPaletteFromBuffer - ldrb r1, [r4, #1] - adds r1, r1, r6 - movs r2, #2 - bl LoadPalette - ldrb r0, [r5, #2] - bl GetPartyMenuPaletteFromBuffer - ldrb r1, [r4, #2] - adds r1, r1, r6 - movs r2, #2 - bl LoadPalette - ldr r5, _081B2518 - b _081B2612 - .align 2, 0 -_081B2510: .4byte gUnknown_85E1397 -_081B2514: .4byte gUnknown_85E1372 -_081B2518: .4byte gUnknown_85E13A6 -_081B251C: - movs r0, #2 - ands r0, r4 - cmp r0, #0 - beq _081B2578 - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _081B2534 - ldr r5, _081B2530 - b _081B25DE - .align 2, 0 -_081B2530: .4byte gUnknown_85E1394 -_081B2534: - ldr r5, _081B256C - ldrb r0, [r5] - bl GetPartyMenuPaletteFromBuffer - ldr r4, _081B2570 - ldrb r1, [r4] - adds r1, r1, r6 - movs r2, #2 - bl LoadPalette - ldrb r0, [r5, #1] - bl GetPartyMenuPaletteFromBuffer - ldrb r1, [r4, #1] - adds r1, r1, r6 - movs r2, #2 - bl LoadPalette - ldrb r0, [r5, #2] - bl GetPartyMenuPaletteFromBuffer - ldrb r1, [r4, #2] - adds r1, r1, r6 - movs r2, #2 - bl LoadPalette - ldr r5, _081B2574 - b _081B2612 - .align 2, 0 -_081B256C: .4byte gUnknown_85E138B -_081B2570: .4byte gUnknown_85E1372 -_081B2574: .4byte gUnknown_85E13A0 -_081B2578: - movs r0, #8 - ands r0, r4 - cmp r0, #0 - beq _081B25D4 - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _081B2590 - ldr r5, _081B258C - b _081B25DE - .align 2, 0 -_081B258C: .4byte gUnknown_85E1391 -_081B2590: - ldr r5, _081B25C8 - ldrb r0, [r5] - bl GetPartyMenuPaletteFromBuffer - ldr r4, _081B25CC - ldrb r1, [r4] - adds r1, r1, r6 - movs r2, #2 - bl LoadPalette - ldrb r0, [r5, #1] - bl GetPartyMenuPaletteFromBuffer - ldrb r1, [r4, #1] - adds r1, r1, r6 - movs r2, #2 - bl LoadPalette - ldrb r0, [r5, #2] - bl GetPartyMenuPaletteFromBuffer - ldrb r1, [r4, #2] - adds r1, r1, r6 - movs r2, #2 - bl LoadPalette - ldr r5, _081B25D0 - b _081B2612 - .align 2, 0 -_081B25C8: .4byte gUnknown_85E1388 -_081B25CC: .4byte gUnknown_85E1372 -_081B25D0: .4byte gUnknown_85E139D -_081B25D4: - movs r0, #1 - ands r5, r0 - cmp r5, #0 - beq _081B2658 - ldr r5, _081B2648 -_081B25DE: - ldrb r0, [r5] - bl GetPartyMenuPaletteFromBuffer - ldr r4, _081B264C - ldrb r1, [r4] - adds r1, r1, r6 - movs r2, #2 - bl LoadPalette - ldrb r0, [r5, #1] - bl GetPartyMenuPaletteFromBuffer - ldrb r1, [r4, #1] - adds r1, r1, r6 - movs r2, #2 - bl LoadPalette - ldrb r0, [r5, #2] - bl GetPartyMenuPaletteFromBuffer - ldrb r1, [r4, #2] - adds r1, r1, r6 - movs r2, #2 - bl LoadPalette - ldr r5, _081B2650 -_081B2612: - ldrb r0, [r5] - bl GetPartyMenuPaletteFromBuffer - ldr r4, _081B2654 -_081B261A: - ldrb r1, [r4] - adds r1, r1, r6 - movs r2, #2 - bl LoadPalette - ldrb r0, [r5, #1] - bl GetPartyMenuPaletteFromBuffer - ldrb r1, [r4, #1] - adds r1, r1, r6 - movs r2, #2 - bl LoadPalette - ldrb r0, [r5, #2] - bl GetPartyMenuPaletteFromBuffer - ldrb r1, [r4, #2] - adds r1, r1, r6 - movs r2, #2 - bl LoadPalette - b _081B26C0 - .align 2, 0 -_081B2648: .4byte gUnknown_85E138E -_081B264C: .4byte gUnknown_85E1372 -_081B2650: .4byte gUnknown_85E13A3 -_081B2654: .4byte gUnknown_85E1375 -_081B2658: - ldr r5, _081B26C8 - ldrb r0, [r5] - bl GetPartyMenuPaletteFromBuffer - ldr r4, _081B26CC - ldrb r1, [r4] - adds r1, r1, r7 - movs r2, #2 - bl LoadPalette - ldrb r0, [r5, #1] - bl GetPartyMenuPaletteFromBuffer - ldrb r1, [r4, #1] - adds r1, r1, r7 - movs r2, #2 - bl LoadPalette - ldrb r0, [r5, #2] - bl GetPartyMenuPaletteFromBuffer - ldrb r1, [r4, #2] - adds r1, r1, r7 - movs r2, #2 - bl LoadPalette - ldr r5, _081B26D0 - ldrb r0, [r5] - bl GetPartyMenuPaletteFromBuffer - ldr r4, _081B26D4 - ldrb r1, [r4] - adds r1, r1, r7 - movs r2, #2 - bl LoadPalette - ldrb r0, [r5, #1] - bl GetPartyMenuPaletteFromBuffer - ldrb r1, [r4, #1] - adds r1, r1, r7 - movs r2, #2 - bl LoadPalette - ldrb r0, [r5, #2] - bl GetPartyMenuPaletteFromBuffer - ldrb r1, [r4, #2] - adds r1, r1, r7 - movs r2, #2 - bl LoadPalette -_081B26C0: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B26C8: .4byte gUnknown_85E1385 -_081B26CC: .4byte gUnknown_85E1372 -_081B26D0: .4byte gUnknown_85E139A -_081B26D4: .4byte gUnknown_85E1375 - thumb_func_end UpdateSelectedPartyBox - - thumb_func_start DisplayPartyPokemonBarDetail -DisplayPartyPokemonBarDetail: @ 0x081B26D8 - push {r4, r5, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrb r5, [r3] - ldrb r3, [r3, #1] - lsls r4, r2, #1 - adds r4, r4, r2 - ldr r2, _081B2708 - adds r4, r4, r2 - str r4, [sp] - movs r2, #0 - str r2, [sp, #4] - str r1, [sp, #8] - movs r1, #0 - adds r2, r5, #0 - bl AddTextPrinterParameterized3 - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B2708: .4byte gUnknown_85E10B4 - thumb_func_end DisplayPartyPokemonBarDetail - - thumb_func_start DisplayPartyPokemonNickname -DisplayPartyPokemonNickname: @ 0x081B270C - push {r4, r5, r6, r7, lr} - sub sp, #0x14 - adds r7, r0, #0 - adds r6, r1, #0 - lsls r2, r2, #0x18 - lsrs r4, r2, #0x18 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _081B275C - cmp r4, #1 - bne _081B2746 - ldr r5, [r6] - ldrb r0, [r6, #8] - ldrb r1, [r5, #4] - lsrs r1, r1, #3 - ldrb r2, [r5, #5] - lsrs r2, r2, #3 - ldrb r3, [r5, #6] - lsrs r3, r3, #3 - ldrb r4, [r5, #7] - lsrs r4, r4, #3 - str r4, [sp] - movs r4, #0 - str r4, [sp, #4] - ldr r4, [r5] - bl _call_via_r4 -_081B2746: - adds r0, r7, #0 - add r1, sp, #8 - bl GetMonNickname - ldrb r0, [r6, #8] - ldr r3, [r6] - adds r3, #4 - add r1, sp, #8 - movs r2, #0 - bl DisplayPartyPokemonBarDetail -_081B275C: - add sp, #0x14 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end DisplayPartyPokemonNickname - - thumb_func_start DisplayPartyPokemonLevelCheck -DisplayPartyPokemonLevelCheck: @ 0x081B2764 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - adds r6, r0, #0 - adds r7, r1, #0 - lsls r2, r2, #0x18 - lsrs r4, r2, #0x18 - mov r8, r4 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _081B27D0 - adds r0, r6, #0 - bl GetMonAilment - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _081B2792 - cmp r0, #6 - bne _081B27D0 -_081B2792: - cmp r4, #0 - beq _081B27B8 - ldr r5, [r7] - ldrb r0, [r7, #8] - ldrb r1, [r5, #8] - lsrs r1, r1, #3 - ldrb r2, [r5, #9] - lsrs r2, r2, #3 - adds r2, #1 - ldrb r3, [r5, #0xa] - lsrs r3, r3, #3 - ldrb r4, [r5, #0xb] - lsrs r4, r4, #3 - str r4, [sp] - movs r4, #0 - str r4, [sp, #4] - ldr r4, [r5] - bl _call_via_r4 -_081B27B8: - mov r0, r8 - cmp r0, #2 - beq _081B27D0 - adds r0, r6, #0 - movs r1, #0x38 - bl GetMonData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r7, #0 - bl DisplayPartyPokemonLevel -_081B27D0: - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end DisplayPartyPokemonLevelCheck - - thumb_func_start DisplayPartyPokemonLevel -DisplayPartyPokemonLevel: @ 0x081B27DC - push {r4, r5, r6, lr} - adds r2, r0, #0 - adds r6, r1, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r5, _081B281C - adds r0, r5, #0 - adds r1, r2, #0 - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - ldr r4, _081B2820 - ldr r1, _081B2824 - adds r0, r4, #0 - bl StringCopy - adds r0, r4, #0 - adds r1, r5, #0 - bl StringAppend - ldrb r0, [r6, #8] - ldr r3, [r6] - adds r3, #8 - adds r1, r4, #0 - movs r2, #0 - bl DisplayPartyPokemonBarDetail - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081B281C: .4byte gUnknown_2021C54 -_081B2820: .4byte gUnknown_2021C40 -_081B2824: .4byte gUnknown_85C940E - thumb_func_end DisplayPartyPokemonLevel - - thumb_func_start DisplayPartyPokemonGenderNidoranCheck -DisplayPartyPokemonGenderNidoranCheck: @ 0x081B2828 - push {r4, r5, r6, r7, lr} - sub sp, #0x14 - adds r6, r0, #0 - adds r7, r1, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - cmp r2, #1 - bne _081B285A - ldr r5, [r7] - ldrb r0, [r7, #8] - ldrb r1, [r5, #0xc] - lsrs r1, r1, #3 - ldrb r2, [r5, #0xd] - lsrs r2, r2, #3 - adds r2, #1 - ldrb r3, [r5, #0xe] - lsrs r3, r3, #3 - ldrb r4, [r5, #0xf] - lsrs r4, r4, #3 - str r4, [sp] - movs r4, #0 - str r4, [sp, #4] - ldr r4, [r5] - bl _call_via_r4 -_081B285A: - adds r0, r6, #0 - add r1, sp, #8 - bl GetMonNickname - adds r0, r6, #0 - bl GetMonGender - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r6, #0 - movs r1, #0xb - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - add r2, sp, #8 - adds r3, r7, #0 - bl DisplayPartyPokemonGender - add sp, #0x14 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end DisplayPartyPokemonGenderNidoranCheck - - thumb_func_start DisplayPartyPokemonGender -DisplayPartyPokemonGender: @ 0x081B2890 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov sb, r2 - adds r7, r3, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - adds r5, r4, #0 - ldrb r0, [r7, #8] - movs r1, #5 - bl GetWindowAttribute - lsls r0, r0, #0x1c - lsrs r6, r0, #0x18 - cmp r4, #0 - beq _081B2956 - cmp r4, #0x20 - beq _081B28C0 - cmp r4, #0x1d - bne _081B28D4 -_081B28C0: - lsls r1, r5, #1 - adds r1, r1, r5 - lsls r1, r1, #1 - ldr r0, _081B28E0 - adds r1, r1, r0 - mov r0, sb - bl StringCompare - cmp r0, #0 - beq _081B2956 -_081B28D4: - mov r0, r8 - cmp r0, #0 - beq _081B28E4 - cmp r0, #0xfe - beq _081B2924 - b _081B2956 - .align 2, 0 -_081B28E0: .4byte gUnknown_82EA31C -_081B28E4: - ldr r5, _081B2918 - ldrb r0, [r5] - bl GetPartyMenuPaletteFromBuffer - ldr r4, _081B291C - ldrb r1, [r4] - adds r1, r1, r6 - movs r2, #2 - bl LoadPalette - ldrb r0, [r5, #1] - bl GetPartyMenuPaletteFromBuffer - ldrb r1, [r4, #1] - adds r1, r1, r6 - movs r2, #2 - bl LoadPalette - ldrb r0, [r7, #8] - ldr r1, _081B2920 - ldr r3, [r7] - adds r3, #0xc - movs r2, #2 - bl DisplayPartyPokemonBarDetail - b _081B2956 - .align 2, 0 -_081B2918: .4byte gUnknown_85E137B -_081B291C: .4byte gUnknown_85E136E -_081B2920: .4byte gUnknown_85C940A -_081B2924: - ldr r5, _081B2964 - ldrb r0, [r5] - bl GetPartyMenuPaletteFromBuffer - ldr r4, _081B2968 - ldrb r1, [r4] - adds r1, r1, r6 - movs r2, #2 - bl LoadPalette - ldrb r0, [r5, #1] - bl GetPartyMenuPaletteFromBuffer - ldrb r1, [r4, #1] - adds r1, r1, r6 - movs r2, #2 - bl LoadPalette - ldrb r0, [r7, #8] - ldr r1, _081B296C - ldr r3, [r7] - adds r3, #0xc - movs r2, #2 - bl DisplayPartyPokemonBarDetail -_081B2956: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B2964: .4byte gUnknown_85E137D -_081B2968: .4byte gUnknown_85E136E -_081B296C: .4byte gUnknown_85C940C - thumb_func_end DisplayPartyPokemonGender - - thumb_func_start DisplayPartyPokemonHPCheck -DisplayPartyPokemonHPCheck: @ 0x081B2970 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - adds r7, r0, #0 - adds r6, r1, #0 - lsls r2, r2, #0x18 - lsrs r4, r2, #0x18 - mov r8, r4 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _081B29CA - cmp r4, #0 - beq _081B29B2 - ldr r5, [r6] - ldrb r0, [r6, #8] - ldrb r1, [r5, #0x10] - lsrs r1, r1, #3 - ldrb r2, [r5, #0x11] - lsrs r2, r2, #3 - adds r2, #1 - ldrb r3, [r5, #0x12] - lsrs r3, r3, #3 - ldrb r4, [r5, #0x13] - lsrs r4, r4, #3 - str r4, [sp] - movs r4, #0 - str r4, [sp, #4] - ldr r4, [r5] - bl _call_via_r4 -_081B29B2: - mov r0, r8 - cmp r0, #2 - beq _081B29CA - adds r0, r7, #0 - movs r1, #0x39 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r6, #0 - bl DisplayPartyPokemonHP -_081B29CA: - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end DisplayPartyPokemonHPCheck - - thumb_func_start DisplayPartyPokemonHP -DisplayPartyPokemonHP: @ 0x081B29D8 - push {r4, r5, lr} - adds r2, r0, #0 - adds r4, r1, #0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldr r5, _081B2A04 - adds r0, r5, #0 - adds r1, r2, #0 - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - ldrb r0, [r4, #8] - ldr r3, [r4] - adds r3, #0x10 - adds r1, r5, #0 - movs r2, #0 - bl DisplayPartyPokemonBarDetail - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B2A04: .4byte gUnknown_2021C40 - thumb_func_end DisplayPartyPokemonHP - - thumb_func_start DisplayPartyPokemonMaxHPCheck -DisplayPartyPokemonMaxHPCheck: @ 0x081B2A08 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - adds r7, r0, #0 - adds r6, r1, #0 - lsls r2, r2, #0x18 - lsrs r4, r2, #0x18 - mov r8, r4 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _081B2A64 - cmp r4, #0 - beq _081B2A4C - ldr r5, [r6] - ldrb r0, [r6, #8] - ldrb r1, [r5, #0x14] - lsrs r1, r1, #3 - adds r1, #1 - ldrb r2, [r5, #0x15] - lsrs r2, r2, #3 - adds r2, #1 - ldrb r3, [r5, #0x16] - lsrs r3, r3, #3 - ldrb r4, [r5, #0x17] - lsrs r4, r4, #3 - str r4, [sp] - movs r4, #0 - str r4, [sp, #4] - ldr r4, [r5] - bl _call_via_r4 -_081B2A4C: - mov r0, r8 - cmp r0, #2 - beq _081B2A64 - adds r0, r7, #0 - movs r1, #0x3a - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r6, #0 - bl DisplayPartyPokemonMaxHP -_081B2A64: - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end DisplayPartyPokemonMaxHPCheck - - thumb_func_start DisplayPartyPokemonMaxHP -DisplayPartyPokemonMaxHP: @ 0x081B2A70 - push {r4, r5, r6, lr} - adds r2, r0, #0 - adds r6, r1, #0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldr r5, _081B2AB0 - adds r0, r5, #0 - adds r1, r2, #0 - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - ldr r4, _081B2AB4 - ldr r1, _081B2AB8 - adds r0, r4, #0 - bl StringCopy - adds r0, r4, #0 - adds r1, r5, #0 - bl StringAppend - ldrb r0, [r6, #8] - ldr r3, [r6] - adds r3, #0x14 - adds r1, r4, #0 - movs r2, #0 - bl DisplayPartyPokemonBarDetail - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081B2AB0: .4byte gUnknown_2021C54 -_081B2AB4: .4byte gUnknown_2021C40 -_081B2AB8: .4byte gUnknown_85C93FF - thumb_func_end DisplayPartyPokemonMaxHP - - thumb_func_start DisplayPartyPokemonHPBarCheck -DisplayPartyPokemonHPBarCheck: @ 0x081B2ABC - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _081B2AF0 - adds r0, r5, #0 - movs r1, #0x39 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - movs r1, #0x3a - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - adds r2, r6, #0 - bl DisplayPartyPokemonHPBar -_081B2AF0: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end DisplayPartyPokemonHPBarCheck - - thumb_func_start DisplayPartyPokemonHPBar -DisplayPartyPokemonHPBar: @ 0x081B2AF8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #8 - adds r6, r2, #0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sb, r1 - ldrb r0, [r6, #8] - movs r1, #5 - bl GetWindowAttribute - lsls r0, r0, #0x1c - lsrs r7, r0, #0x18 - mov r1, r8 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - mov r2, sb - lsls r1, r2, #0x10 - asrs r1, r1, #0x10 - bl GetHPBarLevel - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - beq _081B2B44 - cmp r0, #2 - blt _081B2B74 - cmp r0, #4 - bgt _081B2B74 - ldr r5, _081B2B40 - b _081B2B46 - .align 2, 0 -_081B2B40: .4byte gUnknown_85E137F -_081B2B44: - ldr r5, _081B2B6C -_081B2B46: - ldrb r0, [r5] - bl GetPartyMenuPaletteFromBuffer - ldr r4, _081B2B70 - ldrb r1, [r4] - adds r1, r1, r7 - movs r2, #2 - bl LoadPalette - ldrb r0, [r5, #1] - bl GetPartyMenuPaletteFromBuffer - ldrb r1, [r4, #1] - adds r1, r1, r7 - movs r2, #2 - bl LoadPalette - b _081B2B98 - .align 2, 0 -_081B2B6C: .4byte gUnknown_85E1381 -_081B2B70: .4byte gUnknown_85E1370 -_081B2B74: - ldr r5, _081B2C34 - ldrb r0, [r5] - bl GetPartyMenuPaletteFromBuffer - ldr r4, _081B2C38 - ldrb r1, [r4] - adds r1, r1, r7 - movs r2, #2 - bl LoadPalette - ldrb r0, [r5, #1] - bl GetPartyMenuPaletteFromBuffer - ldrb r1, [r4, #1] - adds r1, r1, r7 - movs r2, #2 - bl LoadPalette -_081B2B98: - mov r1, r8 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - mov r2, sb - lsls r1, r2, #0x10 - asrs r1, r1, #0x10 - ldr r2, [r6] - ldrb r2, [r2, #0x1a] - bl GetScaledHPFraction - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldrb r0, [r6, #8] - ldr r4, _081B2C38 - ldrb r1, [r4, #1] - ldr r3, [r6] - ldrb r2, [r3, #0x18] - ldrb r3, [r3, #0x19] - str r5, [sp] - movs r7, #1 - str r7, [sp, #4] - bl sub_08003A34 - ldrb r0, [r6, #8] - ldrb r1, [r4] - ldr r3, [r6] - ldrb r2, [r3, #0x18] - ldrb r3, [r3, #0x19] - adds r3, #1 - str r5, [sp] - movs r4, #2 - str r4, [sp, #4] - bl sub_08003A34 - ldr r1, [r6] - ldrb r0, [r1, #0x1a] - cmp r5, r0 - beq _081B2C1C - ldrb r0, [r6, #8] - ldrb r2, [r1, #0x18] - adds r2, r2, r5 - ldrb r3, [r1, #0x19] - ldrb r1, [r1, #0x1a] - subs r1, r1, r5 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp] - str r7, [sp, #4] - movs r1, #0xd - bl sub_08003A34 - ldrb r0, [r6, #8] - ldr r1, [r6] - ldrb r2, [r1, #0x18] - adds r2, r2, r5 - ldrb r3, [r1, #0x19] - adds r3, #1 - ldrb r1, [r1, #0x1a] - subs r1, r1, r5 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp] - str r4, [sp, #4] - movs r1, #2 - bl sub_08003A34 -_081B2C1C: - ldrb r0, [r6, #8] - movs r1, #2 - bl CopyWindowToVram - add sp, #8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B2C34: .4byte gUnknown_85E1383 -_081B2C38: .4byte gUnknown_85E1370 - thumb_func_end DisplayPartyPokemonHPBar - - thumb_func_start sub_081B2C3C -sub_081B2C3C: @ 0x081B2C3C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - adds r6, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r7, r2, #0 - cmp r7, #0 - beq _081B2C76 - ldr r5, [r6] - ldrb r0, [r6, #8] - ldrb r1, [r5, #0x1c] - lsrs r1, r1, #3 - ldrb r2, [r5, #0x1d] - lsrs r2, r2, #3 - ldrb r3, [r5, #0x1e] - lsrs r3, r3, #3 - ldrb r4, [r5, #0x1f] - lsrs r4, r4, #3 - str r4, [sp] - movs r4, #1 - str r4, [sp, #4] - ldr r4, [r5] - bl _call_via_r4 -_081B2C76: - cmp r7, #2 - beq _081B2C9C - ldrb r0, [r6, #8] - ldr r1, [r6] - ldrb r2, [r1, #0x1c] - ldrb r3, [r1, #0x1d] - ldr r1, _081B2CA8 - str r1, [sp] - movs r1, #0 - str r1, [sp, #4] - ldr r4, _081B2CAC - mov r5, r8 - lsls r1, r5, #2 - adds r1, r1, r4 - ldr r1, [r1] - str r1, [sp, #8] - movs r1, #1 - bl AddTextPrinterParameterized3 -_081B2C9C: - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B2CA8: .4byte gUnknown_85E10B4 -_081B2CAC: .4byte gUnknown_85E1418 - thumb_func_end sub_081B2C3C - - thumb_func_start sub_081B2CB0 -sub_081B2CB0: @ 0x081B2CB0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4] - cmp r0, #0xff - beq _081B2CD0 - movs r1, #0 - bl sub_08198134 - ldrb r0, [r4] - bl RemoveWindow - movs r0, #0xff - strb r0, [r4] - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram -_081B2CD0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081B2CB0 - - thumb_func_start display_pokemon_menu_message -display_pokemon_menu_message: @ 0x081B2CD8 - push {r4, r5, r6, lr} - sub sp, #0xc - adds r6, r0, #0 - ldr r0, _081B2D08 - ldr r4, [r0] - adds r5, r4, #0 - adds r5, #0xd - ldrb r0, [r4, #0xd] - cmp r0, #0xff - beq _081B2CF2 - adds r0, r5, #0 - bl sub_081B2CB0 -_081B2CF2: - cmp r6, #0x7f - beq _081B2DC0 - adds r0, r6, #0 - subs r0, #0x15 - cmp r0, #5 - bhi _081B2D58 - lsls r0, r0, #2 - ldr r1, _081B2D0C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081B2D08: .4byte gUnknown_203CB90 -_081B2D0C: .4byte _081B2D10 -_081B2D10: @ jump table - .4byte _081B2D28 @ case 0 - .4byte _081B2D40 @ case 1 - .4byte _081B2D40 @ case 2 - .4byte _081B2D30 @ case 3 - .4byte _081B2D38 @ case 4 - .4byte _081B2D48 @ case 5 -_081B2D28: - ldr r0, _081B2D2C - b _081B2D4A - .align 2, 0 -_081B2D2C: .4byte gUnknown_85E11E0 -_081B2D30: - ldr r0, _081B2D34 - b _081B2D4A - .align 2, 0 -_081B2D34: .4byte gUnknown_85E11E8 -_081B2D38: - ldr r0, _081B2D3C - b _081B2D4A - .align 2, 0 -_081B2D3C: .4byte gUnknown_85E11F0 -_081B2D40: - ldr r0, _081B2D44 - b _081B2D4A - .align 2, 0 -_081B2D44: .4byte gUnknown_85E11F8 -_081B2D48: - ldr r0, _081B2D54 -_081B2D4A: - bl AddWindow - strb r0, [r5] - b _081B2D60 - .align 2, 0 -_081B2D54: .4byte gUnknown_85E1200 -_081B2D58: - ldr r0, _081B2D74 - bl AddWindow - strb r0, [r4, #0xd] -_081B2D60: - cmp r6, #0 - bne _081B2D88 - ldr r0, _081B2D78 - ldr r0, [r0] - ldrb r0, [r0, #8] - lsls r0, r0, #0x1f - cmp r0, #0 - beq _081B2D7C - movs r6, #2 - b _081B2D88 - .align 2, 0 -_081B2D74: .4byte gUnknown_85E11D8 -_081B2D78: .4byte gUnknown_203CB90 -_081B2D7C: - bl sub_081B2DD0 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081B2D88 - movs r6, #1 -_081B2D88: - ldrb r0, [r5] - movs r1, #0 - movs r2, #0x4f - movs r3, #0xd - bl DrawStdFrameWithCustomTileAndPalette - ldr r4, _081B2DC8 - ldr r1, _081B2DCC - lsls r0, r6, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl StringExpandPlaceholders - ldrb r0, [r5] - movs r1, #2 - str r1, [sp] - movs r1, #0 - str r1, [sp, #4] - str r1, [sp, #8] - movs r1, #1 - adds r2, r4, #0 - movs r3, #0 - bl AddTextPrinterParameterized - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram -_081B2DC0: - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081B2DC8: .4byte gUnknown_2021C7C -_081B2DCC: .4byte gUnknown_85E13AC - thumb_func_end display_pokemon_menu_message - - thumb_func_start sub_081B2DD0 -sub_081B2DD0: @ 0x081B2DD0 - push {r4, r5, r6, r7, lr} - ldr r7, _081B2DE4 - movs r6, #0 - ldr r0, _081B2DE8 - ldrb r0, [r0, #0xb] - cmp r0, #1 - bne _081B2DEC -_081B2DDE: - movs r0, #1 - b _081B2E2E - .align 2, 0 -_081B2DE4: .4byte gUnknown_2024190 -_081B2DE8: .4byte gUnknown_203CB94 -_081B2DEC: - movs r5, #0 -_081B2DEE: - movs r0, #0x64 - muls r0, r5, r0 - adds r4, r7, r0 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _081B2E1E - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - bne _081B2E18 - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - beq _081B2E1E -_081B2E18: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_081B2E1E: - cmp r6, #1 - bhi _081B2DDE - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #5 - bls _081B2DEE - movs r0, #0 -_081B2E2E: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_081B2DD0 - - thumb_func_start sub_081B2E34 -sub_081B2E34: @ 0x081B2E34 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x1c - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #1 - beq _081B2E90 - cmp r4, #1 - bgt _081B2E50 - cmp r4, #0 - beq _081B2E56 - b _081B2EA0 -_081B2E50: - cmp r4, #2 - beq _081B2E98 - b _081B2EA0 -_081B2E56: - ldr r0, _081B2E88 - ldr r1, [r0] - ldrb r0, [r1, #0x17] - lsls r0, r0, #1 - movs r3, #0x13 - subs r3, r3, r0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #8 - str r0, [sp] - ldrb r0, [r1, #0x17] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - movs r0, #0xe - str r0, [sp, #8] - ldr r0, _081B2E8C - str r0, [sp, #0xc] - add r0, sp, #0x14 - movs r1, #2 - movs r2, #0x15 - bl SetWindowTemplateFields - b _081B2EAA - .align 2, 0 -_081B2E88: .4byte gUnknown_203CB90 -_081B2E8C: .4byte 0x000002D3 -_081B2E90: - ldr r0, _081B2E94 - b _081B2EA2 - .align 2, 0 -_081B2E94: .4byte gUnknown_85E1208 -_081B2E98: - ldr r0, _081B2E9C - b _081B2EA2 - .align 2, 0 -_081B2E9C: .4byte gUnknown_85E1210 -_081B2EA0: - ldr r0, _081B2ECC -_081B2EA2: - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [sp, #0x14] - str r1, [sp, #0x18] -_081B2EAA: - add r0, sp, #0x14 - bl AddWindow - ldr r6, _081B2ED0 - ldr r1, [r6] - strb r0, [r1, #0xc] - ldr r0, [r6] - ldrb r0, [r0, #0xc] - movs r1, #0 - movs r2, #0x4f - movs r3, #0xd - bl DrawStdFrameWithCustomTileAndPalette - cmp r4, #3 - bne _081B2ED4 - ldr r0, [r6] - b _081B2F74 - .align 2, 0 -_081B2ECC: .4byte gUnknown_85E1218 -_081B2ED0: .4byte gUnknown_203CB90 -_081B2ED4: - movs r0, #1 - movs r1, #0 - bl sub_0800629C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - movs r0, #1 - movs r1, #2 - bl GetFontAttribute - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r5, #0 - ldr r0, [r6] - ldrb r0, [r0, #0x17] - cmp r5, r0 - bhs _081B2F4E - adds r7, r6, #0 - movs r6, #0 -_081B2EFE: - ldr r1, [r7] - adds r0, r1, #0 - adds r0, #0xf - adds r4, r0, r5 - ldrb r0, [r4] - movs r2, #3 - cmp r0, #0x12 - bls _081B2F10 - movs r2, #4 -_081B2F10: - ldrb r0, [r1, #0xc] - lsls r3, r5, #4 - adds r3, #2 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r1, r8 - str r1, [sp] - str r6, [sp, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - ldr r2, _081B2F84 - adds r1, r1, r2 - str r1, [sp, #8] - str r6, [sp, #0xc] - ldr r2, _081B2F88 - ldrb r1, [r4] - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r1, [r1] - str r1, [sp, #0x10] - movs r1, #1 - mov r2, sb - bl AddTextPrinterParameterized4 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, [r7] - ldrb r0, [r0, #0x17] - cmp r5, r0 - blo _081B2EFE -_081B2F4E: - ldr r4, _081B2F8C - ldr r2, [r4] - ldrb r0, [r2, #0xc] - movs r1, #0x10 - str r1, [sp] - ldrb r1, [r2, #0x17] - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - str r1, [sp, #0xc] - movs r2, #0 - movs r3, #2 - bl sub_0819844C - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, [r4] -_081B2F74: - ldrb r0, [r0, #0xc] - add sp, #0x1c - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081B2F84: .4byte gUnknown_85E10B4 -_081B2F88: .4byte gUnknown_85E14C0 -_081B2F8C: .4byte gUnknown_203CB90 - thumb_func_end sub_081B2E34 - - thumb_func_start sub_081B2F90 -sub_081B2F90: @ 0x081B2F90 - push {r4, lr} - sub sp, #0x10 - adds r4, r0, #0 - movs r0, #6 - movs r1, #0 - movs r2, #0x4f - movs r3, #0xd - bl DrawStdFrameWithCustomTileAndPalette - ldr r2, _081B2FD8 - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - bl GetPlayerTextSpeedDelay - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #0 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - movs r0, #3 - str r0, [sp, #0xc] - movs r0, #6 - movs r1, #1 - adds r2, r4, #0 - bl AddTextPrinterParameterized2 - add sp, #0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B2FD8: .4byte gUnknown_30030B4 - thumb_func_end sub_081B2F90 - - thumb_func_start sub_081B2FDC -sub_081B2FDC: @ 0x081B2FDC - push {lr} - sub sp, #0xc - ldr r0, _081B3000 - movs r1, #0x4f - str r1, [sp] - movs r1, #0xd - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - movs r2, #2 - movs r3, #2 - bl sub_08198C08 - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_081B3000: .4byte gUnknown_85E1220 - thumb_func_end sub_081B2FDC - - thumb_func_start sub_081B3004 -sub_081B3004: @ 0x081B3004 - push {r4, lr} - ldr r0, _081B302C - bl AddWindow - ldr r4, _081B3030 - ldr r1, [r4] - strb r0, [r1, #0xc] - ldr r0, [r4] - ldrb r0, [r0, #0xc] - movs r1, #0 - movs r2, #0x4f - movs r3, #0xd - bl DrawStdFrameWithCustomTileAndPalette - ldr r0, [r4] - ldrb r0, [r0, #0xc] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081B302C: .4byte gUnknown_85E1228 -_081B3030: .4byte gUnknown_203CB90 - thumb_func_end sub_081B3004 - - thumb_func_start sub_081B3034 -sub_081B3034: @ 0x081B3034 - push {r4, lr} - ldr r4, _081B3050 - ldr r0, [r4] - ldrb r0, [r0, #0xc] - bl ClearWindowTilemap - ldr r0, [r4] - adds r0, #0xc - bl sub_081B2CB0 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B3050: .4byte gUnknown_203CB90 - thumb_func_end sub_081B3034 - - thumb_func_start sub_081B3054 -sub_081B3054: @ 0x081B3054 - push {r4, lr} - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - cmp r2, #0 - bne _081B3068 - bl CreateActionList - b _081B30A0 -_081B3068: - ldr r4, _081B30A8 - ldr r1, [r4] - ldr r0, _081B30AC - adds r0, r2, r0 - ldrb r0, [r0] - strb r0, [r1, #0x17] - movs r3, #0 - ldr r0, [r4] - ldrb r0, [r0, #0x17] - cmp r3, r0 - bhs _081B30A0 - ldr r1, _081B30B0 - lsls r0, r2, #2 - adds r2, r0, r1 -_081B3084: - ldr r1, [r4] - adds r1, #0xf - adds r1, r1, r3 - ldr r0, [r2] - adds r0, r0, r3 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r0, [r4] - ldrb r0, [r0, #0x17] - cmp r3, r0 - blo _081B3084 -_081B30A0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B30A8: .4byte gUnknown_203CB90 -_081B30AC: .4byte gUnknown_85E1628 -_081B30B0: .4byte gUnknown_85E15F0 - thumb_func_end sub_081B3054 - - thumb_func_start CreateActionList -CreateActionList: @ 0x081B30B4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov sb, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sl, r1 - ldr r2, _081B3128 - ldr r1, [r2] - movs r0, #0 - strb r0, [r1, #0x17] - ldr r1, [r2] - adds r0, r1, #0 - adds r0, #0xf - adds r1, #0x17 - movs r2, #0 - bl AppendToList - movs r7, #0 - ldr r0, _081B312C - ldrh r0, [r0] - str r0, [sp] -_081B30E6: - movs r4, #0 - adds r0, r7, #1 - mov r8, r0 - ldr r1, [sp] - cmp r1, #0xe - beq _081B3140 - movs r0, #0x64 - mov r6, sl - muls r6, r0, r6 - ldr r5, _081B312C -_081B30FA: - mov r1, sb - adds r0, r1, r6 - adds r1, r7, #0 - adds r1, #0xd - bl GetMonData - lsls r1, r4, #1 - adds r1, r1, r5 - ldrh r1, [r1] - cmp r0, r1 - bne _081B3130 - ldr r0, _081B3128 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0xf - adds r1, #0x17 - adds r2, r4, #0 - adds r2, #0x13 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - bl AppendToList - b _081B3140 - .align 2, 0 -_081B3128: .4byte gUnknown_203CB90 -_081B312C: .4byte gUnknown_85E1636 -_081B3130: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #1 - adds r0, r0, r5 - ldrh r0, [r0] - cmp r0, #0xe - bne _081B30FA -_081B3140: - mov r1, r8 - lsls r0, r1, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #3 - bls _081B30E6 - bl InBattlePike - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081B31B8 - mov r0, sb - adds r0, #0x64 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _081B3172 - ldr r0, _081B31A4 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0xf - adds r1, #0x17 - movs r2, #1 - bl AppendToList -_081B3172: - movs r0, #0x64 - mov r1, sl - muls r1, r0, r1 - adds r0, r1, #0 - add r0, sb - movs r1, #0xc - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl ItemIsMail - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081B31A8 - ldr r0, _081B31A4 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0xf - adds r1, #0x17 - movs r2, #6 - bl AppendToList - b _081B31B8 - .align 2, 0 -_081B31A4: .4byte gUnknown_203CB90 -_081B31A8: - ldr r0, _081B31D8 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0xf - adds r1, #0x17 - movs r2, #3 - bl AppendToList -_081B31B8: - ldr r0, _081B31D8 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0xf - adds r1, #0x17 - movs r2, #2 - bl AppendToList - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B31D8: .4byte gUnknown_203CB90 - thumb_func_end CreateActionList - - thumb_func_start sub_081B31DC -sub_081B31DC: @ 0x081B31DC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _081B31F8 - ldrb r0, [r1, #8] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - adds r2, r1, #0 - cmp r0, #0xc - bhi _081B329E - lsls r0, r0, #2 - ldr r1, _081B31FC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081B31F8: .4byte gUnknown_203CB94 -_081B31FC: .4byte _081B3200 -_081B3200: @ jump table - .4byte _081B3234 @ case 0 - .4byte _081B3250 @ case 1 - .4byte _081B329E @ case 2 - .4byte _081B329E @ case 3 - .4byte _081B325C @ case 4 - .4byte _081B329E @ case 5 - .4byte _081B327C @ case 6 - .4byte _081B329E @ case 7 - .4byte _081B328E @ case 8 - .4byte _081B3292 @ case 9 - .4byte _081B3296 @ case 10 - .4byte _081B329E @ case 11 - .4byte _081B329A @ case 12 -_081B3234: - bl InMultiBattleRoom - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B324C - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - beq _081B329E -_081B324C: - movs r1, #1 - b _081B32A0 -_081B3250: - adds r0, r4, #0 - bl sub_081B86CC - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - b _081B32A0 -_081B325C: - movs r0, #9 - ldrsb r0, [r2, r0] - bl sub_081B820C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _081B3274 - cmp r0, #1 - beq _081B3278 - movs r1, #7 - b _081B32A0 -_081B3274: - movs r1, #4 - b _081B32A0 -_081B3278: - movs r1, #5 - b _081B32A0 -_081B327C: - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - movs r1, #6 - cmp r0, #0 - beq _081B32A0 - movs r1, #7 - b _081B32A0 -_081B328E: - movs r1, #0xa - b _081B32A0 -_081B3292: - movs r1, #0xb - b _081B32A0 -_081B3296: - movs r1, #0xc - b _081B32A0 -_081B329A: - movs r1, #0xd - b _081B32A0 -_081B329E: - movs r1, #0 -_081B32A0: - adds r0, r1, #0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081B31DC - - thumb_func_start sub_081B32A8 -sub_081B32A8: @ 0x081B32A8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r4, _081B3304 - movs r1, #9 - ldrsb r1, [r4, r1] - movs r0, #0x64 - muls r0, r1, r0 - ldr r7, _081B3308 - adds r5, r0, r7 - ldr r1, _081B330C - adds r0, r5, #0 - bl GetMonNickname - ldr r0, _081B3310 - ldr r0, [r0] - adds r0, #0xd - bl sub_081B2CB0 - ldrb r1, [r4, #8] - movs r0, #0xf - ands r0, r1 - cmp r0, #0xc - beq _081B3314 - ldrb r4, [r4, #9] - adds r0, r5, #0 - bl sub_081B31DC - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r7, #0 - adds r1, r4, #0 - bl sub_081B3054 - movs r0, #0 - bl sub_081B2E34 - movs r0, #0x15 - bl display_pokemon_menu_message - b _081B338A - .align 2, 0 -_081B3304: .4byte gUnknown_203CB94 -_081B3308: .4byte gUnknown_2024190 -_081B330C: .4byte gUnknown_2021C40 -_081B3310: .4byte gUnknown_203CB90 -_081B3314: - adds r0, r5, #0 - movs r1, #0xc - bl GetMonData - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0 - bne _081B3360 - ldr r4, _081B3350 - ldr r1, _081B3354 - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - movs r1, #1 - bl sub_081B182C - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, _081B3358 - mov r2, r8 - lsls r0, r2, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B335C - str r1, [r0] - movs r0, #0 - b _081B338C - .align 2, 0 -_081B3350: .4byte gUnknown_2021C7C -_081B3354: .4byte gUnknown_85C9CAD -_081B3358: .4byte gUnknown_3005B60 -_081B335C: .4byte sub_081B433C -_081B3360: - ldrb r4, [r4, #9] - adds r0, r5, #0 - bl sub_081B31DC - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r7, #0 - adds r1, r4, #0 - bl sub_081B3054 - movs r0, #1 - bl sub_081B2E34 - ldr r1, _081B3398 - adds r0, r6, #0 - bl sub_080D5EC8 - movs r0, #0x1a - bl display_pokemon_menu_message -_081B338A: - movs r0, #1 -_081B338C: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081B3398: .4byte gUnknown_2021C54 - thumb_func_end sub_081B32A8 - - thumb_func_start sub_081B339C -sub_081B339C: @ 0x081B339C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - bl sub_081B32A8 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081B33C0 - ldr r1, _081B33C8 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0xff - strh r1, [r0, #8] - ldr r1, _081B33CC - str r1, [r0] -_081B33C0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B33C8: .4byte gUnknown_3005B60 -_081B33CC: .4byte HandleMenuInput - thumb_func_end sub_081B339C - - thumb_func_start HandleMenuInput -HandleMenuInput: @ 0x081B33D0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _081B3408 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081B348E - bl sub_081221F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B348E - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _081B340C - adds r5, r0, r1 - ldr r0, _081B3410 - ldr r0, [r0] - ldrb r0, [r0, #0x17] - cmp r0, #3 - bhi _081B3414 - bl Menu_ProcessInputNoWrapAround_other - b _081B3418 - .align 2, 0 -_081B3408: .4byte gUnknown_2037C74 -_081B340C: .4byte gUnknown_3005B68 -_081B3410: .4byte gUnknown_203CB90 -_081B3414: - bl ProcessMenuInput_other -_081B3418: - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl Menu_GetCursorPos - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5] - lsls r0, r4, #0x18 - asrs r5, r0, #0x18 - movs r0, #2 - rsbs r0, r0, #0 - cmp r5, r0 - beq _081B348E - adds r0, #1 - cmp r5, r0 - bne _081B346C - movs r0, #5 - bl sub_080A306C - ldr r4, _081B3464 - ldr r0, [r4] - adds r0, #0xe - bl sub_081B2CB0 - ldr r2, _081B3468 - ldr r0, [r4] - ldrb r1, [r0, #0x17] - adds r0, r0, r1 - ldrb r0, [r0, #0xe] - lsls r0, r0, #3 - adds r2, #4 - adds r0, r0, r2 - ldr r1, [r0] - adds r0, r6, #0 - bl _call_via_r1 - b _081B348E - .align 2, 0 -_081B3464: .4byte gUnknown_203CB90 -_081B3468: .4byte gUnknown_85E14C0 -_081B346C: - ldr r4, _081B3494 - ldr r0, [r4] - adds r0, #0xe - bl sub_081B2CB0 - ldr r1, _081B3498 - ldr r0, [r4] - adds r0, #0xf - adds r0, r0, r5 - ldrb r0, [r0] - lsls r0, r0, #3 - adds r1, #4 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r6, #0 - bl _call_via_r1 -_081B348E: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081B3494: .4byte gUnknown_203CB90 -_081B3498: .4byte gUnknown_85E14C0 - thumb_func_end HandleMenuInput - - thumb_func_start sub_081B349C -sub_081B349C: @ 0x081B349C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #5 - bl sub_080A306C - ldr r0, _081B34C0 - ldr r1, [r0] - ldr r0, _081B34C4 - str r0, [r1, #4] - adds r0, r4, #0 - bl sub_081B0F90 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B34C0: .4byte gUnknown_203CB90 -_081B34C4: .4byte sub_081B34C8 - thumb_func_end sub_081B349C - - thumb_func_start sub_081B34C8 -sub_081B34C8: @ 0x081B34C8 - push {r4, lr} - sub sp, #4 - ldr r4, _081B34F8 - ldrb r1, [r4, #8] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - bne _081B3508 - bl sub_081B8CD0 - ldr r1, _081B34FC - ldrb r2, [r4, #9] - ldr r0, _081B3500 - ldrb r3, [r0] - subs r3, #1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r0, _081B3504 - str r0, [sp] - movs r0, #1 - bl ShowPokemonSummaryScreen - b _081B3520 - .align 2, 0 -_081B34F8: .4byte gUnknown_203CB94 -_081B34FC: .4byte gUnknown_2024190 -_081B3500: .4byte gUnknown_202418D -_081B3504: .4byte sub_081B3534 -_081B3508: - ldr r1, _081B3528 - ldrb r2, [r4, #9] - ldr r0, _081B352C - ldrb r3, [r0] - subs r3, #1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r0, _081B3530 - str r0, [sp] - movs r0, #0 - bl ShowPokemonSummaryScreen -_081B3520: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B3528: .4byte gUnknown_2024190 -_081B352C: .4byte gUnknown_202418D -_081B3530: .4byte sub_081B3534 - thumb_func_end sub_081B34C8 - - thumb_func_start sub_081B3534 -sub_081B3534: @ 0x081B3534 - push {lr} - sub sp, #0xc - ldr r2, _081B356C - ldrb r0, [r2, #8] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #8] - ldr r3, _081B3570 - ldr r0, _081B3574 - ldrb r0, [r0] - strb r0, [r3, #9] - ldrb r0, [r3, #8] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - ldrb r2, [r3, #0xb] - movs r1, #0x15 - str r1, [sp] - ldr r1, _081B3578 - str r1, [sp, #4] - ldr r1, [r3] - str r1, [sp, #8] - movs r1, #0xff - movs r3, #1 - bl InitPartyMenu - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_081B356C: .4byte gUnknown_2037C74 -_081B3570: .4byte gUnknown_203CB94 -_081B3574: .4byte gUnknown_203CBEC -_081B3578: .4byte sub_081B339C - thumb_func_end sub_081B3534 - - thumb_func_start CursorCb_Switch -CursorCb_Switch: @ 0x081B357C - push {r4, r5, r6, lr} - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - movs r0, #5 - bl sub_080A306C - ldr r5, _081B35C8 - movs r0, #8 - strb r0, [r5, #0xb] - ldr r4, _081B35CC - ldr r0, [r4] - adds r0, #0xd - bl sub_081B2CB0 - ldr r0, [r4] - adds r0, #0xc - bl sub_081B2CB0 - movs r0, #3 - bl display_pokemon_menu_message - ldrb r0, [r5, #9] - movs r1, #1 - bl sub_081B0C9C - ldrb r0, [r5, #9] - strb r0, [r5, #0xa] - ldr r1, _081B35D0 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B35D4 - str r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081B35C8: .4byte gUnknown_203CB94 -_081B35CC: .4byte gUnknown_203CB90 -_081B35D0: .4byte gUnknown_3005B60 -_081B35D4: .4byte sub_081B1040 - thumb_func_end CursorCb_Switch - - thumb_func_start sub_081B35D8 -sub_081B35D8: @ 0x081B35D8 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - ldr r1, _081B3600 - adds r6, r0, r1 - ldr r3, _081B3604 - movs r1, #0xa - ldrsb r1, [r3, r1] - movs r0, #9 - ldrsb r0, [r3, r0] - cmp r1, r0 - bne _081B3608 - adds r0, r7, #0 - bl sub_081B3D1C - b _081B375A - .align 2, 0 -_081B3600: .4byte gUnknown_3005B68 -_081B3604: .4byte gUnknown_203CB94 -_081B3608: - add r2, sp, #8 - movs r0, #9 - ldrsb r0, [r3, r0] - ldr r1, _081B3660 - ldr r1, [r1] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrb r0, [r0, #8] - movs r4, #0 - strb r0, [r2] - adds r0, r2, #0 - ldrb r0, [r0] - movs r1, #1 - bl GetWindowAttribute - strh r0, [r6] - add r0, sp, #8 - ldrb r0, [r0] - movs r1, #2 - bl GetWindowAttribute - strh r0, [r6, #2] - add r0, sp, #8 - ldrb r0, [r0] - movs r1, #3 - bl GetWindowAttribute - strh r0, [r6, #4] - add r0, sp, #8 - ldrb r0, [r0] - movs r1, #4 - bl GetWindowAttribute - strh r0, [r6, #6] - strh r4, [r6, #0x10] - movs r1, #4 - ldrsh r0, [r6, r1] - cmp r0, #0xa - bne _081B3664 - movs r2, #1 - rsbs r2, r2, #0 - adds r0, r2, #0 - b _081B3666 - .align 2, 0 -_081B3660: .4byte gUnknown_203CBA8 -_081B3664: - movs r0, #1 -_081B3666: - strh r0, [r6, #0x14] - add r2, sp, #8 - ldr r0, _081B36C4 - ldrb r0, [r0, #0xa] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldr r1, _081B36C8 - ldr r1, [r1] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrb r0, [r0, #8] - movs r4, #0 - strb r0, [r2, #1] - adds r0, r2, #0 - ldrb r0, [r0, #1] - movs r1, #1 - bl GetWindowAttribute - strh r0, [r6, #8] - add r0, sp, #8 - ldrb r0, [r0, #1] - movs r1, #2 - bl GetWindowAttribute - strh r0, [r6, #0xa] - add r0, sp, #8 - ldrb r0, [r0, #1] - movs r1, #3 - bl GetWindowAttribute - strh r0, [r6, #0xc] - add r0, sp, #8 - ldrb r0, [r0, #1] - movs r1, #4 - bl GetWindowAttribute - strh r0, [r6, #0xe] - strh r4, [r6, #0x12] - movs r1, #0xc - ldrsh r0, [r6, r1] - cmp r0, #0xa - bne _081B36CC - movs r2, #1 - rsbs r2, r2, #0 - adds r0, r2, #0 - b _081B36CE - .align 2, 0 -_081B36C4: .4byte gUnknown_203CB94 -_081B36C8: .4byte gUnknown_203CBA8 -_081B36CC: - movs r0, #1 -_081B36CE: - strh r0, [r6, #0x16] - ldr r4, _081B3764 - movs r0, #4 - ldrsh r1, [r6, r0] - movs r2, #6 - ldrsh r0, [r6, r2] - lsls r0, r0, #1 - muls r0, r1, r0 - bl sub_08000BC8 - str r0, [r4] - ldr r5, _081B3768 - movs r0, #0xc - ldrsh r1, [r6, r0] - movs r2, #0xe - ldrsh r0, [r6, r2] - lsls r0, r0, #1 - muls r0, r1, r0 - bl sub_08000BC8 - str r0, [r5] - ldr r1, [r4] - ldrb r2, [r6] - ldrb r3, [r6, #2] - ldrb r0, [r6, #4] - str r0, [sp] - ldrb r0, [r6, #6] - str r0, [sp, #4] - movs r0, #0 - bl sub_08199954 - ldr r1, [r5] - ldrb r2, [r6, #8] - ldrb r3, [r6, #0xa] - ldrb r0, [r6, #0xc] - str r0, [sp] - ldrb r0, [r6, #0xe] - str r0, [sp, #4] - movs r0, #0 - bl sub_08199954 - add r0, sp, #8 - ldrb r0, [r0] - bl ClearWindowTilemap - add r0, sp, #8 - ldrb r0, [r0, #1] - bl ClearWindowTilemap - ldr r4, _081B376C - movs r0, #9 - strb r0, [r4, #0xb] - ldrb r0, [r4, #9] - movs r1, #1 - bl sub_081B0C9C - ldrb r0, [r4, #0xa] - movs r1, #1 - bl sub_081B0C9C - adds r0, r7, #0 - bl sub_081B3960 - ldr r1, _081B3770 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B3774 - str r1, [r0] -_081B375A: - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B3764: .4byte gUnknown_203CBBC -_081B3768: .4byte gUnknown_203CBC0 -_081B376C: .4byte gUnknown_203CB94 -_081B3770: .4byte gUnknown_3005B60 -_081B3774: .4byte sub_081B39E8 - thumb_func_end sub_081B35D8 - - thumb_func_start sub_081B3778 -sub_081B3778: @ 0x081B3778 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r2, #0 - mov ip, r3 - ldr r7, [sp, #0x18] - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - adds r5, r3, #0 - lsls r1, r1, #0x10 - lsrs r2, r1, #0x10 - mov r8, r2 - lsls r0, r3, #0x10 - asrs r1, r0, #0x10 - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - adds r4, r1, r0 - cmp r4, #0 - blt _081B37A2 - cmp r1, #0x1f - ble _081B37A6 -_081B37A2: - movs r0, #0 - b _081B37D4 -_081B37A6: - cmp r1, #0 - bge _081B37BA - rsbs r0, r1, #0 - strb r0, [r6] - movs r0, #0 - mov r1, ip - strb r0, [r1] - adds r0, r2, r3 - strb r0, [r7] - b _081B37D2 -_081B37BA: - movs r0, #0 - strb r0, [r6] - mov r0, ip - strb r5, [r0] - cmp r4, #0x1f - ble _081B37CE - movs r0, #0x20 - subs r0, r0, r5 - strb r0, [r7] - b _081B37D2 -_081B37CE: - mov r1, r8 - strb r1, [r7] -_081B37D2: - movs r0, #1 -_081B37D4: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081B3778 - - thumb_func_start sub_081B37E0 -sub_081B37E0: @ 0x081B37E0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x34 - str r0, [sp, #0x28] - ldr r0, [sp, #0x54] - ldr r4, [sp, #0x58] - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - mov sb, r2 - lsls r3, r3, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sl, r0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - str r4, [sp, #0x30] - lsls r1, r1, #0x10 - asrs r7, r1, #0x10 - lsrs r0, r3, #0x10 - str r0, [sp, #0x2c] - asrs r3, r3, #0x10 - mov r8, r3 - mov r5, sp - adds r5, #0x25 - mov r6, sp - adds r6, #0x26 - str r6, [sp] - adds r0, r7, #0 - mov r1, r8 - add r2, sp, #0x24 - adds r3, r5, #0 - bl sub_081B3778 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081B389A - ldrb r2, [r5] - mov r1, sb - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldrb r0, [r6] - str r0, [sp] - mov r1, sl - lsls r0, r1, #0x18 - lsrs r4, r0, #0x18 - str r4, [sp, #4] - movs r0, #0 - movs r1, #0 - mov r3, sb - bl FillBgTilemapBufferRect_Palette0 - ldr r1, [sp, #0x30] - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - adds r0, r7, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - str r6, [sp] - mov r1, r8 - add r2, sp, #0x24 - adds r3, r5, #0 - bl sub_081B3778 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081B389A - add r0, sp, #0x24 - ldrb r2, [r0] - ldr r1, [sp, #0x2c] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - str r4, [sp, #4] - ldrb r0, [r5] - str r0, [sp, #8] - mov r0, sb - str r0, [sp, #0xc] - ldrb r0, [r6] - str r0, [sp, #0x10] - str r4, [sp, #0x14] - movs r0, #0x11 - str r0, [sp, #0x18] - movs r0, #0 - str r0, [sp, #0x1c] - str r0, [sp, #0x20] - ldr r1, [sp, #0x28] - movs r3, #0 - bl CopyRectToBgTilemapBufferRect -_081B389A: - add sp, #0x34 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081B37E0 - - thumb_func_start sub_081B38AC -sub_081B38AC: @ 0x081B38AC - push {r4, lr} - ldr r4, _081B38FC - ldrb r2, [r0, #0xb] - lsls r3, r2, #4 - adds r3, r3, r2 - lsls r3, r3, #2 - adds r3, r3, r4 - lsls r1, r1, #0x10 - asrs r1, r1, #0xd - ldrh r2, [r3, #0x24] - adds r2, r2, r1 - strh r2, [r3, #0x24] - ldrb r3, [r0, #0xa] - lsls r2, r3, #4 - adds r2, r2, r3 - lsls r2, r2, #2 - adds r2, r2, r4 - ldrh r3, [r2, #0x24] - adds r3, r3, r1 - strh r3, [r2, #0x24] - ldrb r3, [r0, #9] - lsls r2, r3, #4 - adds r2, r2, r3 - lsls r2, r2, #2 - adds r2, r2, r4 - ldrh r3, [r2, #0x24] - adds r3, r3, r1 - strh r3, [r2, #0x24] - ldrb r2, [r0, #0xc] - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r2, [r0, #0x24] - adds r2, r2, r1 - strh r2, [r0, #0x24] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B38FC: .4byte gUnknown_20205AC - thumb_func_end sub_081B38AC - - thumb_func_start sub_081B3900 -sub_081B3900: @ 0x081B3900 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _081B3954 - adds r4, r1, r0 - movs r1, #0x14 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _081B392E - ldr r2, _081B3958 - ldr r0, _081B395C - movs r1, #9 - ldrsb r1, [r0, r1] - lsls r1, r1, #4 - ldr r0, [r2] - adds r0, r0, r1 - movs r2, #0x14 - ldrsh r1, [r4, r2] - bl sub_081B38AC -_081B392E: - movs r1, #0x16 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _081B394C - ldr r2, _081B3958 - ldr r0, _081B395C - movs r1, #0xa - ldrsb r1, [r0, r1] - lsls r1, r1, #4 - ldr r0, [r2] - adds r0, r0, r1 - movs r2, #0x16 - ldrsh r1, [r4, r2] - bl sub_081B38AC -_081B394C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B3954: .4byte gUnknown_3005B68 -_081B3958: .4byte gUnknown_203CBA8 -_081B395C: .4byte gUnknown_203CB94 - thumb_func_end sub_081B3900 - - thumb_func_start sub_081B3960 -sub_081B3960: @ 0x081B3960 - push {r4, r5, r6, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _081B39DC - adds r5, r1, r0 - movs r1, #0x14 - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _081B39A0 - ldr r0, _081B39E0 - ldr r0, [r0] - ldrh r1, [r5, #0x10] - ldrh r2, [r5] - adds r1, r1, r2 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r3, #2 - ldrsh r2, [r5, r3] - movs r4, #4 - ldrsh r3, [r5, r4] - movs r6, #6 - ldrsh r4, [r5, r6] - str r4, [sp] - movs r6, #0x14 - ldrsh r4, [r5, r6] - str r4, [sp, #4] - bl sub_081B37E0 -_081B39A0: - movs r1, #0x16 - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _081B39CE - ldr r0, _081B39E4 - ldr r0, [r0] - ldrh r1, [r5, #0x12] - ldrh r2, [r5, #8] - adds r1, r1, r2 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r3, #0xa - ldrsh r2, [r5, r3] - movs r4, #0xc - ldrsh r3, [r5, r4] - movs r6, #0xe - ldrsh r4, [r5, r6] - str r4, [sp] - movs r6, #0x16 - ldrsh r4, [r5, r6] - str r4, [sp, #4] - bl sub_081B37E0 -_081B39CE: - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081B39DC: .4byte gUnknown_3005B68 -_081B39E0: .4byte gUnknown_203CBBC -_081B39E4: .4byte gUnknown_203CBC0 - thumb_func_end sub_081B3960 - - thumb_func_start sub_081B39E8 -sub_081B39E8: @ 0x081B39E8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r7, r0, #3 - ldr r0, _081B3AE8 - mov r8, r0 - adds r6, r7, r0 - adds r0, r4, #0 - bl sub_081B3960 - adds r0, r4, #0 - bl sub_081B3900 - ldrh r1, [r6, #0x14] - ldrh r2, [r6, #0x10] - adds r1, r1, r2 - strh r1, [r6, #0x10] - ldrh r0, [r6, #0x16] - ldrh r3, [r6, #0x12] - adds r0, r0, r3 - strh r0, [r6, #0x12] - add r2, sp, #8 - ldrh r0, [r6] - adds r0, r0, r1 - strh r0, [r2] - adds r1, r2, #0 - ldrh r0, [r6, #0x12] - ldrh r3, [r6, #8] - adds r2, r0, r3 - strh r2, [r1, #2] - adds r0, r1, #0 - ldrh r0, [r0] - cmp r0, #0x21 - bls _081B3ADA - lsls r0, r2, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x21 - bls _081B3ADA - movs r1, #0x14 - ldrsh r0, [r6, r1] - rsbs r0, r0, #0 - strh r0, [r6, #0x14] - movs r2, #0x16 - ldrsh r0, [r6, r2] - rsbs r0, r0, #0 - strh r0, [r6, #0x16] - bl swap_pokemon_and_oams - ldr r4, _081B3AEC - ldrb r0, [r4, #9] - bl DisplayPartyPokemonData - ldrb r0, [r4, #0xa] - bl DisplayPartyPokemonData - movs r0, #9 - ldrsb r0, [r4, r0] - ldr r5, _081B3AF0 - ldr r1, [r5] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrb r0, [r0, #8] - bl PutWindowTilemap - movs r0, #0xa - ldrsb r0, [r4, r0] - ldr r1, [r5] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrb r0, [r0, #8] - bl PutWindowTilemap - ldr r0, _081B3AF4 - ldr r1, [r0] - ldrb r2, [r6] - ldrb r3, [r6, #2] - ldrb r0, [r6, #4] - str r0, [sp] - ldrb r0, [r6, #6] - str r0, [sp, #4] - movs r0, #0 - bl sub_08199954 - ldr r0, _081B3AF8 - ldr r1, [r0] - ldrb r2, [r6, #8] - ldrb r3, [r6, #0xa] - ldrb r0, [r6, #0xc] - str r0, [sp] - ldrb r0, [r6, #0xe] - str r0, [sp, #4] - movs r0, #0 - bl sub_08199954 - movs r0, #9 - ldrsb r0, [r4, r0] - ldr r1, [r5] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrb r0, [r0, #8] - bl ClearWindowTilemap - movs r0, #0xa - ldrsb r0, [r4, r0] - ldr r1, [r5] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrb r0, [r0, #8] - bl ClearWindowTilemap - mov r0, r8 - subs r0, #8 - adds r0, r7, r0 - ldr r1, _081B3AFC - str r1, [r0] -_081B3ADA: - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B3AE8: .4byte gUnknown_3005B68 -_081B3AEC: .4byte gUnknown_203CB94 -_081B3AF0: .4byte gUnknown_203CBA8 -_081B3AF4: .4byte gUnknown_203CBBC -_081B3AF8: .4byte gUnknown_203CBC0 -_081B3AFC: .4byte sub_081B3B00 - thumb_func_end sub_081B39E8 - - thumb_func_start sub_081B3B00 -sub_081B3B00: @ 0x081B3B00 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _081B3B70 - adds r4, r0, r1 - adds r0, r6, #0 - bl sub_081B3960 - adds r0, r6, #0 - bl sub_081B3900 - movs r1, #0x14 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _081B3B84 - movs r2, #0x16 - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _081B3B84 - ldr r5, _081B3B74 - movs r0, #9 - ldrsb r0, [r5, r0] - ldr r4, _081B3B78 - ldr r1, [r4] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrb r0, [r0, #8] - bl PutWindowTilemap - movs r0, #0xa - ldrsb r0, [r5, r0] - ldr r1, [r4] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrb r0, [r0, #8] - bl PutWindowTilemap - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, _081B3B7C - ldr r0, [r0] - bl Free - ldr r0, _081B3B80 - ldr r0, [r0] - bl Free - adds r0, r6, #0 - bl sub_081B3D1C - b _081B3BA8 - .align 2, 0 -_081B3B70: .4byte gUnknown_3005B68 -_081B3B74: .4byte gUnknown_203CB94 -_081B3B78: .4byte gUnknown_203CBA8 -_081B3B7C: .4byte gUnknown_203CBBC -_081B3B80: .4byte gUnknown_203CBC0 -_081B3B84: - ldrh r1, [r4, #0x14] - ldrh r0, [r4, #0x10] - adds r1, r1, r0 - strh r1, [r4, #0x10] - ldrh r0, [r4, #0x16] - ldrh r2, [r4, #0x12] - adds r0, r0, r2 - strh r0, [r4, #0x12] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0 - bne _081B3B9E - strh r1, [r4, #0x14] -_081B3B9E: - movs r1, #0x12 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _081B3BA8 - strh r0, [r4, #0x16] -_081B3BA8: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081B3B00 - - thumb_func_start oamt_swap_pos -oamt_swap_pos: @ 0x081B3BB0 - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - ldrb r3, [r0] - ldrb r2, [r1] - strb r2, [r0] - strb r3, [r1] - ldr r5, _081B3C78 - ldrb r2, [r0] - lsls r3, r2, #4 - adds r3, r3, r2 - lsls r3, r3, #2 - adds r3, r3, r5 - ldrh r6, [r3, #0x20] - ldrh r2, [r3, #0x22] - mov r8, r2 - ldrh r2, [r3, #0x24] - mov sb, r2 - ldrh r2, [r3, #0x26] - mov sl, r2 - ldrb r4, [r1] - lsls r2, r4, #4 - adds r2, r2, r4 - lsls r2, r2, #2 - adds r2, r2, r5 - ldrh r2, [r2, #0x20] - strh r2, [r3, #0x20] - ldrb r2, [r0] - lsls r3, r2, #4 - adds r3, r3, r2 - lsls r3, r3, #2 - adds r3, r3, r5 - ldrb r4, [r1] - lsls r2, r4, #4 - adds r2, r2, r4 - lsls r2, r2, #2 - adds r2, r2, r5 - ldrh r2, [r2, #0x22] - strh r2, [r3, #0x22] - ldrb r2, [r0] - lsls r3, r2, #4 - adds r3, r3, r2 - lsls r3, r3, #2 - adds r3, r3, r5 - ldrb r4, [r1] - lsls r2, r4, #4 - adds r2, r2, r4 - lsls r2, r2, #2 - adds r2, r2, r5 - ldrh r2, [r2, #0x24] - strh r2, [r3, #0x24] - ldrb r0, [r0] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r5 - ldrb r3, [r1] - lsls r0, r3, #4 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrh r0, [r0, #0x26] - strh r0, [r2, #0x26] - ldrb r2, [r1] - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r6, [r0, #0x20] - ldrb r2, [r1] - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r5 - mov r2, r8 - strh r2, [r0, #0x22] - ldrb r2, [r1] - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r5 - mov r2, sb - strh r2, [r0, #0x24] - ldrb r1, [r1] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - mov r1, sl - strh r1, [r0, #0x26] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081B3C78: .4byte gUnknown_20205AC - thumb_func_end oamt_swap_pos - - thumb_func_start swap_pokemon_and_oams -swap_pokemon_and_oams: @ 0x081B3C7C - push {r4, r5, r6, lr} - sub sp, #8 - ldr r1, _081B3D10 - ldr r2, _081B3D14 - movs r3, #9 - ldrsb r3, [r2, r3] - lsls r0, r3, #4 - ldr r1, [r1] - adds r0, r1, r0 - str r0, [sp] - ldrb r2, [r2, #0xa] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - lsls r0, r2, #4 - adds r0, r1, r0 - str r0, [sp, #4] - movs r1, #0x64 - adds r4, r3, #0 - muls r4, r1, r4 - ldr r0, _081B3D18 - adds r4, r4, r0 - adds r5, r2, #0 - muls r5, r1, r5 - adds r5, r5, r0 - movs r0, #0x64 - bl sub_08000BC8 - adds r6, r0, #0 - adds r1, r4, #0 - movs r2, #0x64 - bl memcpy - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0x64 - bl memcpy - adds r0, r5, #0 - adds r1, r6, #0 - movs r2, #0x64 - bl memcpy - adds r0, r6, #0 - bl Free - ldr r0, [sp] - adds r0, #0xb - ldr r1, [sp, #4] - adds r1, #0xb - bl oamt_swap_pos - ldr r0, [sp] - adds r0, #0xa - ldr r1, [sp, #4] - adds r1, #0xa - bl oamt_swap_pos - ldr r0, [sp] - adds r0, #9 - ldr r1, [sp, #4] - adds r1, #9 - bl oamt_swap_pos - ldr r0, [sp] - adds r0, #0xc - ldr r1, [sp, #4] - adds r1, #0xc - bl oamt_swap_pos - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081B3D10: .4byte gUnknown_203CBA8 -_081B3D14: .4byte gUnknown_203CB94 -_081B3D18: .4byte gUnknown_2024190 - thumb_func_end swap_pokemon_and_oams - - thumb_func_start sub_081B3D1C -sub_081B3D1C: @ 0x081B3D1C - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _081B3D64 - ldr r0, [r0] - adds r0, #0xd - bl sub_081B2CB0 - ldr r4, _081B3D68 - movs r0, #0 - strb r0, [r4, #0xb] - ldrb r0, [r4, #9] - movs r1, #0 - bl sub_081B0C9C - ldrb r0, [r4, #0xa] - strb r0, [r4, #9] - ldrb r0, [r4, #0xa] - movs r1, #1 - bl sub_081B0C9C - movs r0, #0 - bl display_pokemon_menu_message - ldr r1, _081B3D6C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B3D70 - str r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B3D64: .4byte gUnknown_203CB90 -_081B3D68: .4byte gUnknown_203CB94 -_081B3D6C: .4byte gUnknown_3005B60 -_081B3D70: .4byte sub_081B1040 - thumb_func_end sub_081B3D1C - - thumb_func_start CursorCb_Cancel1 -CursorCb_Cancel1: @ 0x081B3D74 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r0, #5 - bl sub_080A306C - ldr r4, _081B3DA8 - ldr r0, [r4] - adds r0, #0xc - bl sub_081B2CB0 - ldr r0, [r4] - adds r0, #0xd - bl sub_081B2CB0 - ldr r0, _081B3DAC - ldrb r1, [r0, #8] - movs r0, #0xf - ands r0, r1 - cmp r0, #6 - bne _081B3DB0 - movs r0, #0xf - bl display_pokemon_menu_message - b _081B3DB6 - .align 2, 0 -_081B3DA8: .4byte gUnknown_203CB90 -_081B3DAC: .4byte gUnknown_203CB94 -_081B3DB0: - movs r0, #0 - bl display_pokemon_menu_message -_081B3DB6: - ldr r0, _081B3DCC - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B3DD0 - str r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B3DCC: .4byte gUnknown_3005B60 -_081B3DD0: .4byte sub_081B1040 - thumb_func_end CursorCb_Cancel1 - - thumb_func_start CursorCb_Item -CursorCb_Item: @ 0x081B3DD4 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - movs r0, #5 - bl sub_080A306C - ldr r4, _081B3E24 - ldr r0, [r4] - adds r0, #0xc - bl sub_081B2CB0 - ldr r0, [r4] - adds r0, #0xd - bl sub_081B2CB0 - ldr r0, _081B3E28 - ldr r1, _081B3E2C - ldrb r1, [r1, #9] - movs r2, #8 - bl sub_081B3054 - movs r0, #1 - bl sub_081B2E34 - movs r0, #0x18 - bl display_pokemon_menu_message - ldr r1, _081B3E30 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0xff - strh r1, [r0, #8] - ldr r1, _081B3E34 - str r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B3E24: .4byte gUnknown_203CB90 -_081B3E28: .4byte gUnknown_2024190 -_081B3E2C: .4byte gUnknown_203CB94 -_081B3E30: .4byte gUnknown_3005B60 -_081B3E34: .4byte HandleMenuInput - thumb_func_end CursorCb_Item - - thumb_func_start sub_081B3E38 -sub_081B3E38: @ 0x081B3E38 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #5 - bl sub_080A306C - ldr r0, _081B3E5C - ldr r1, [r0] - ldr r0, _081B3E60 - str r0, [r1, #4] - adds r0, r4, #0 - bl sub_081B0F90 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B3E5C: .4byte gUnknown_203CB90 -_081B3E60: .4byte sub_081B3E64 - thumb_func_end sub_081B3E38 - - thumb_func_start sub_081B3E64 -sub_081B3E64: @ 0x081B3E64 - push {lr} - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081B3E80 - ldr r2, _081B3E7C - movs r0, #2 - movs r1, #5 - bl GoToBagMenu - b _081B3E88 - .align 2, 0 -_081B3E7C: .4byte c2_8123744 -_081B3E80: - ldr r1, _081B3E8C - movs r0, #2 - bl sub_081C47A0 -_081B3E88: - pop {r0} - bx r0 - .align 2, 0 -_081B3E8C: .4byte c2_8123744 - thumb_func_end sub_081B3E64 - - thumb_func_start c2_8123744 -c2_8123744: @ 0x081B3E90 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - ldr r6, _081B3EB8 - ldrh r0, [r6] - cmp r0, #0 - bne _081B3EC4 - ldr r3, _081B3EBC - ldrb r0, [r3, #8] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - ldrb r2, [r3, #0xb] - movs r1, #0x7f - str r1, [sp] - ldr r1, _081B3EC0 - str r1, [sp, #4] - ldr r1, [r3] - b _081B3EFA - .align 2, 0 -_081B3EB8: .4byte gUnknown_203CB48 -_081B3EBC: .4byte gUnknown_203CB94 -_081B3EC0: .4byte sub_081B339C -_081B3EC4: - ldr r4, _081B3F08 - ldr r5, _081B3F0C - movs r0, #9 - ldrsb r0, [r5, r0] - movs r1, #0x64 - mov r8, r1 - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - ldr r7, _081B3F10 - adds r0, r0, r7 - movs r1, #0xc - bl GetMonData - strh r0, [r4] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _081B3F18 - ldrb r0, [r5, #8] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - ldrb r2, [r5, #0xb] - movs r1, #0x7f - str r1, [sp] - ldr r1, _081B3F14 - str r1, [sp, #4] - ldr r1, [r5] -_081B3EFA: - str r1, [sp, #8] - movs r1, #0xff - movs r3, #1 - bl InitPartyMenu - b _081B3F60 - .align 2, 0 -_081B3F08: .4byte gUnknown_203CBC8 -_081B3F0C: .4byte gUnknown_203CB94 -_081B3F10: .4byte gUnknown_2024190 -_081B3F14: .4byte sub_081B3FF0 -_081B3F18: - ldrh r0, [r6] - bl ItemIsMail - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081B3F44 - ldrh r0, [r6] - movs r1, #1 - bl RemoveBagItem - movs r0, #9 - ldrsb r0, [r5, r0] - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - adds r0, r0, r7 - ldrh r1, [r6] - bl sub_081B1A88 - bl sub_081B41CC - b _081B3F60 -_081B3F44: - ldrb r0, [r5, #8] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - ldrb r2, [r5, #0xb] - movs r1, #0x7f - str r1, [sp] - ldr r1, _081B3F6C - str r1, [sp, #4] - ldr r1, [r5] - str r1, [sp, #8] - movs r1, #0xff - movs r3, #1 - bl InitPartyMenu -_081B3F60: - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B3F6C: .4byte sub_081B3F70 - thumb_func_end c2_8123744 - - thumb_func_start sub_081B3F70 -sub_081B3F70: @ 0x081B3F70 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _081B3FD8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081B3FCC - ldr r0, _081B3FDC - ldrh r4, [r0] - ldr r0, _081B3FE0 - mov r8, r0 - ldrb r0, [r0, #9] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r6, #0x64 - muls r0, r6, r0 - ldr r5, _081B3FE4 - adds r0, r0, r5 - adds r1, r4, #0 - movs r2, #0 - movs r3, #0 - bl sub_081B1954 - mov r1, r8 - movs r0, #9 - ldrsb r0, [r1, r0] - muls r0, r6, r0 - adds r0, r0, r5 - adds r1, r4, #0 - bl sub_081B1A88 - adds r0, r4, #0 - movs r1, #1 - bl RemoveBagItem - ldr r1, _081B3FE8 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B3FEC - str r1, [r0] -_081B3FCC: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B3FD8: .4byte gUnknown_2037C74 -_081B3FDC: .4byte gUnknown_203CB48 -_081B3FE0: .4byte gUnknown_203CB94 -_081B3FE4: .4byte gUnknown_2024190 -_081B3FE8: .4byte gUnknown_3005B60 -_081B3FEC: .4byte sub_081B433C - thumb_func_end sub_081B3F70 - - thumb_func_start sub_081B3FF0 -sub_081B3FF0: @ 0x081B3FF0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _081B4030 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081B4028 - ldr r0, _081B4034 - movs r1, #9 - ldrsb r1, [r0, r1] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081B4038 - adds r0, r0, r1 - ldr r1, _081B403C - ldrh r1, [r1] - movs r2, #1 - bl sub_081B19EC - ldr r1, _081B4040 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B4044 - str r1, [r0] -_081B4028: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B4030: .4byte gUnknown_2037C74 -_081B4034: .4byte gUnknown_203CB94 -_081B4038: .4byte gUnknown_2024190 -_081B403C: .4byte gUnknown_203CBC8 -_081B4040: .4byte gUnknown_3005B60 -_081B4044: .4byte sub_081B4048 - thumb_func_end sub_081B3FF0 - - thumb_func_start sub_081B4048 -sub_081B4048: @ 0x081B4048 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl LoadListMenuArrowsGfx - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B406C - bl sub_081B2FDC - ldr r0, _081B4074 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B4078 - str r0, [r1] -_081B406C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B4074: .4byte gUnknown_3005B60 -_081B4078: .4byte sub_081B407C - thumb_func_end sub_081B4048 - - thumb_func_start sub_081B407C -sub_081B407C: @ 0x081B407C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _081B40A2 - cmp r1, #0 - bgt _081B409C - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _081B4178 - b _081B418C -_081B409C: - cmp r1, #1 - beq _081B417E - b _081B418C -_081B40A2: - ldr r5, _081B40E4 - ldrh r0, [r5] - movs r1, #1 - bl RemoveBagItem - ldr r6, _081B40E8 - ldrh r0, [r6] - movs r1, #1 - bl AddBagItem - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081B40F8 - ldrh r0, [r5] - movs r1, #1 - bl AddBagItem - ldrh r0, [r6] - bl pokemon_item_not_removed - ldr r0, _081B40EC - movs r1, #0 - bl sub_081B182C - ldr r1, _081B40F0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B40F4 - str r1, [r0] - b _081B418C - .align 2, 0 -_081B40E4: .4byte gUnknown_203CB48 -_081B40E8: .4byte gUnknown_203CBC8 -_081B40EC: .4byte gUnknown_2021C7C -_081B40F0: .4byte gUnknown_3005B60 -_081B40F4: .4byte sub_081B18EC -_081B40F8: - ldrh r0, [r5] - bl ItemIsMail - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081B4138 - ldr r0, _081B4128 - movs r1, #9 - ldrsb r1, [r0, r1] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081B412C - adds r0, r0, r1 - ldrh r1, [r5] - bl sub_081B1A88 - ldr r1, _081B4130 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B4134 - str r1, [r0] - b _081B418C - .align 2, 0 -_081B4128: .4byte gUnknown_203CB94 -_081B412C: .4byte gUnknown_2024190 -_081B4130: .4byte gUnknown_3005B60 -_081B4134: .4byte sub_081B419C -_081B4138: - ldr r0, _081B4168 - movs r1, #9 - ldrsb r1, [r0, r1] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081B416C - adds r0, r0, r1 - ldrh r1, [r5] - bl sub_081B1A88 - ldrh r0, [r5] - ldrh r1, [r6] - movs r2, #1 - bl sub_081B1A38 - ldr r1, _081B4170 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B4174 - str r1, [r0] - b _081B418C - .align 2, 0 -_081B4168: .4byte gUnknown_203CB94 -_081B416C: .4byte gUnknown_2024190 -_081B4170: .4byte gUnknown_3005B60 -_081B4174: .4byte sub_081B433C -_081B4178: - movs r0, #5 - bl sub_080A306C -_081B417E: - ldr r0, _081B4194 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B4198 - str r0, [r1] -_081B418C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081B4194: .4byte gUnknown_3005B60 -_081B4198: .4byte sub_081B18EC - thumb_func_end sub_081B407C - - thumb_func_start sub_081B419C -sub_081B419C: @ 0x081B419C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl LoadListMenuArrowsGfx - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B41BC - ldr r0, _081B41C4 - ldr r1, [r0] - ldr r0, _081B41C8 - str r0, [r1, #4] - adds r0, r4, #0 - bl sub_081B0F90 -_081B41BC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B41C4: .4byte gUnknown_203CB90 -_081B41C8: .4byte sub_081B41CC - thumb_func_end sub_081B419C - - thumb_func_start sub_081B41CC -sub_081B41CC: @ 0x081B41CC - push {lr} - ldr r0, _081B4204 - movs r1, #9 - ldrsb r1, [r0, r1] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081B4208 - adds r0, r0, r1 - movs r1, #0x40 - bl GetMonData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081B420C - lsls r2, r0, #3 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r0, _081B4210 - adds r2, r2, r0 - ldr r1, [r1] - adds r1, r1, r2 - ldr r2, _081B4214 - movs r0, #4 - movs r3, #3 - bl DoEasyChatScreen - pop {r0} - bx r0 - .align 2, 0 -_081B4204: .4byte gUnknown_203CB94 -_081B4208: .4byte gUnknown_2024190 -_081B420C: .4byte gUnknown_3005AEC -_081B4210: .4byte 0x00002BE0 -_081B4214: .4byte sub_081B4218 - thumb_func_end sub_081B41CC - - thumb_func_start sub_081B4218 -sub_081B4218: @ 0x081B4218 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - ldr r6, _081B4284 - movs r1, #9 - ldrsb r1, [r6, r1] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _081B4288 - adds r5, r1, r0 - adds r0, r5, #0 - movs r1, #0xc - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - ldr r0, _081B428C - ldrh r7, [r0] - cmp r7, #0 - bne _081B4298 - adds r0, r5, #0 - bl TakeMailFromMon - ldr r4, _081B4290 - adds r0, r5, #0 - movs r1, #0xc - adds r2, r4, #0 - bl SetMonData - ldrh r0, [r4] - movs r1, #1 - bl RemoveBagItem - mov r0, r8 - movs r1, #1 - bl AddBagItem - ldrb r0, [r6, #8] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - ldrb r2, [r6, #0xb] - str r7, [sp] - ldr r1, _081B4294 - str r1, [sp, #4] - ldr r1, [r6] - str r1, [sp, #8] - movs r1, #0xff - movs r3, #1 - bl InitPartyMenu - b _081B42B4 - .align 2, 0 -_081B4284: .4byte gUnknown_203CB94 -_081B4288: .4byte gUnknown_2024190 -_081B428C: .4byte gUnknown_2037290 -_081B4290: .4byte gUnknown_203CBC8 -_081B4294: .4byte sub_081B339C -_081B4298: - ldrb r0, [r6, #8] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - ldrb r2, [r6, #0xb] - movs r1, #0x7f - str r1, [sp] - ldr r1, _081B42C0 - str r1, [sp, #4] - ldr r1, [r6] - str r1, [sp, #8] - movs r1, #0xff - movs r3, #1 - bl InitPartyMenu -_081B42B4: - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B42C0: .4byte sub_081B42C4 - thumb_func_end sub_081B4218 - - thumb_func_start sub_081B42C4 -sub_081B42C4: @ 0x081B42C4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _081B42FC - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081B432A - ldr r1, _081B4300 - ldrh r0, [r1] - cmp r0, #0 - bne _081B4310 - ldr r0, _081B4304 - movs r1, #9 - ldrsb r1, [r0, r1] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081B4308 - adds r0, r0, r1 - ldr r1, _081B430C - ldrh r1, [r1] - movs r2, #0 - movs r3, #0 - bl sub_081B1954 - b _081B431C - .align 2, 0 -_081B42FC: .4byte gUnknown_2037C74 -_081B4300: .4byte gUnknown_203CBC8 -_081B4304: .4byte gUnknown_203CB94 -_081B4308: .4byte gUnknown_2024190 -_081B430C: .4byte gUnknown_203CB48 -_081B4310: - ldr r0, _081B4330 - ldrh r0, [r0] - ldrh r1, [r1] - movs r2, #0 - bl sub_081B1A38 -_081B431C: - ldr r0, _081B4334 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B4338 - str r0, [r1] -_081B432A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B4330: .4byte gUnknown_203CB48 -_081B4334: .4byte gUnknown_3005B60 -_081B4338: .4byte sub_081B433C - thumb_func_end sub_081B42C4 - - thumb_func_start sub_081B433C -sub_081B433C: @ 0x081B433C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r4, _081B4398 - movs r1, #9 - ldrsb r1, [r4, r1] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _081B439C - adds r6, r1, r0 - bl LoadListMenuArrowsGfx - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B43BC - ldr r5, _081B43A0 - movs r0, #9 - ldrsb r0, [r4, r0] - lsls r0, r0, #4 - ldr r1, [r5] - adds r1, r1, r0 - adds r0, r6, #0 - bl sub_081B5934 - ldrb r1, [r4, #8] - movs r0, #0xf - ands r0, r1 - cmp r0, #0xc - bne _081B43B6 - adds r0, r6, #0 - movs r1, #0xc - bl GetMonData - cmp r0, #0 - beq _081B43A4 - movs r0, #9 - ldrsb r0, [r4, r0] - lsls r0, r0, #4 - ldr r1, [r5] - adds r1, r1, r0 - movs r0, #0xb - movs r2, #1 - bl sub_081B2C3C - b _081B43B6 - .align 2, 0 -_081B4398: .4byte gUnknown_203CB94 -_081B439C: .4byte gUnknown_2024190 -_081B43A0: .4byte gUnknown_203CBA8 -_081B43A4: - movs r0, #9 - ldrsb r0, [r4, r0] - lsls r0, r0, #4 - ldr r1, [r5] - adds r1, r1, r0 - movs r0, #0xc - movs r2, #1 - bl sub_081B2C3C -_081B43B6: - adds r0, r7, #0 - bl sub_081B18EC -_081B43BC: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081B433C - - thumb_func_start CursorCb_TakeItem -CursorCb_TakeItem: @ 0x081B43C4 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _081B441C - movs r1, #9 - ldrsb r1, [r0, r1] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _081B4420 - adds r5, r1, r0 - adds r0, r5, #0 - movs r1, #0xc - bl GetMonData - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - movs r0, #5 - bl sub_080A306C - ldr r4, _081B4424 - ldr r0, [r4] - adds r0, #0xc - bl sub_081B2CB0 - ldr r0, [r4] - adds r0, #0xd - bl sub_081B2CB0 - adds r0, r5, #0 - bl InitEventObjectPalettes - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _081B4428 - cmp r0, #1 - beq _081B444C - adds r0, r5, #0 - adds r1, r6, #0 - movs r2, #1 - bl sub_081B19A0 - b _081B445A - .align 2, 0 -_081B441C: .4byte gUnknown_203CB94 -_081B4420: .4byte gUnknown_2024190 -_081B4424: .4byte gUnknown_203CB90 -_081B4428: - ldr r1, _081B4440 - adds r0, r5, #0 - bl GetMonNickname - ldr r4, _081B4444 - ldr r1, _081B4448 - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - b _081B4454 - .align 2, 0 -_081B4440: .4byte gUnknown_2021C40 -_081B4444: .4byte gUnknown_2021C7C -_081B4448: .4byte gUnknown_85C9CAD -_081B444C: - adds r0, r6, #0 - bl pokemon_item_not_removed - ldr r0, _081B4474 -_081B4454: - movs r1, #1 - bl sub_081B182C -_081B445A: - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, _081B4478 - lsls r1, r7, #2 - adds r1, r1, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B447C - str r0, [r1] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B4474: .4byte gUnknown_2021C7C -_081B4478: .4byte gUnknown_3005B60 -_081B447C: .4byte sub_081B433C - thumb_func_end CursorCb_TakeItem - - thumb_func_start CursorCb_Toss -CursorCb_Toss: @ 0x081B4480 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _081B44E4 - movs r1, #9 - ldrsb r1, [r0, r1] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _081B44E8 - adds r7, r1, r0 - adds r0, r7, #0 - movs r1, #0xc - bl GetMonData - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - movs r0, #5 - bl sub_080A306C - ldr r4, _081B44EC - ldr r0, [r4] - adds r0, #0xc - bl sub_081B2CB0 - ldr r0, [r4] - adds r0, #0xd - bl sub_081B2CB0 - cmp r5, #0 - bne _081B4504 - ldr r1, _081B44F0 - adds r0, r7, #0 - bl GetMonNickname - ldr r4, _081B44F4 - ldr r1, _081B44F8 - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - movs r1, #1 - bl sub_081B182C - ldr r1, _081B44FC - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B4500 - b _081B452A - .align 2, 0 -_081B44E4: .4byte gUnknown_203CB94 -_081B44E8: .4byte gUnknown_2024190 -_081B44EC: .4byte gUnknown_203CB90 -_081B44F0: .4byte gUnknown_2021C40 -_081B44F4: .4byte gUnknown_2021C7C -_081B44F8: .4byte gUnknown_85C9CAD -_081B44FC: .4byte gUnknown_3005B60 -_081B4500: .4byte sub_081B433C -_081B4504: - ldr r1, _081B4534 - adds r0, r5, #0 - bl sub_080D5EC8 - ldr r4, _081B4538 - ldr r1, _081B453C - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - movs r1, #1 - bl sub_081B182C - ldr r1, _081B4540 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B4544 -_081B452A: - str r1, [r0] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B4534: .4byte gUnknown_2021C40 -_081B4538: .4byte gUnknown_2021C7C -_081B453C: .4byte gUnknown_85CA007 -_081B4540: .4byte gUnknown_3005B60 -_081B4544: .4byte sub_081B4548 - thumb_func_end CursorCb_Toss - - thumb_func_start sub_081B4548 -sub_081B4548: @ 0x081B4548 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl LoadListMenuArrowsGfx - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B456C - bl sub_081B2FDC - ldr r0, _081B4574 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B4578 - str r0, [r1] -_081B456C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B4574: .4byte gUnknown_3005B60 -_081B4578: .4byte BagMenu_TossItems - thumb_func_end sub_081B4548 - - thumb_func_start BagMenu_TossItems -BagMenu_TossItems: @ 0x081B457C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _081B45AC - movs r1, #9 - ldrsb r1, [r0, r1] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _081B45B0 - adds r4, r1, r0 - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _081B45BA - cmp r1, #0 - bgt _081B45B4 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _081B4604 - b _081B4618 - .align 2, 0 -_081B45AC: .4byte gUnknown_203CB94 -_081B45B0: .4byte gUnknown_2024190 -_081B45B4: - cmp r1, #1 - beq _081B460A - b _081B4618 -_081B45BA: - adds r0, r4, #0 - movs r1, #0xc - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _081B45F0 - bl sub_080D5EC8 - ldr r4, _081B45F4 - ldr r1, _081B45F8 - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - movs r1, #0 - bl sub_081B182C - ldr r1, _081B45FC - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B4600 - str r1, [r0] - b _081B4618 - .align 2, 0 -_081B45F0: .4byte gUnknown_2021C40 -_081B45F4: .4byte gUnknown_2021C7C -_081B45F8: .4byte gUnknown_85CA018 -_081B45FC: .4byte gUnknown_3005B60 -_081B4600: .4byte sub_081B4628 -_081B4604: - movs r0, #5 - bl sub_080A306C -_081B460A: - ldr r0, _081B4620 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B4624 - str r0, [r1] -_081B4618: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B4620: .4byte gUnknown_3005B60 -_081B4624: .4byte sub_081B18EC - thumb_func_end BagMenu_TossItems - - thumb_func_start sub_081B4628 -sub_081B4628: @ 0x081B4628 - push {r4, r5, r6, r7, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r6, _081B4694 - movs r1, #9 - ldrsb r1, [r6, r1] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _081B4698 - adds r5, r1, r0 - bl LoadListMenuArrowsGfx - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B468C - movs r1, #0 - mov r0, sp - strh r1, [r0] - adds r0, r5, #0 - movs r1, #0xc - mov r2, sp - bl SetMonData - ldr r4, _081B469C - movs r0, #9 - ldrsb r0, [r6, r0] - lsls r0, r0, #4 - ldr r1, [r4] - adds r1, r1, r0 - adds r0, r5, #0 - bl sub_081B5934 - movs r0, #9 - ldrsb r0, [r6, r0] - lsls r0, r0, #4 - ldr r1, [r4] - adds r1, r1, r0 - movs r0, #0xc - movs r2, #1 - bl sub_081B2C3C - ldr r1, _081B46A0 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B46A4 - str r1, [r0] -_081B468C: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B4694: .4byte gUnknown_203CB94 -_081B4698: .4byte gUnknown_2024190 -_081B469C: .4byte gUnknown_203CBA8 -_081B46A0: .4byte gUnknown_3005B60 -_081B46A4: .4byte sub_081B18EC - thumb_func_end sub_081B4628 - - thumb_func_start CursorCb_Mail -CursorCb_Mail: @ 0x081B46A8 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - movs r0, #5 - bl sub_080A306C - ldr r4, _081B46F8 - ldr r0, [r4] - adds r0, #0xc - bl sub_081B2CB0 - ldr r0, [r4] - adds r0, #0xd - bl sub_081B2CB0 - ldr r0, _081B46FC - ldr r1, _081B4700 - ldrb r1, [r1, #9] - movs r2, #9 - bl sub_081B3054 - movs r0, #2 - bl sub_081B2E34 - movs r0, #0x19 - bl display_pokemon_menu_message - ldr r1, _081B4704 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0xff - strh r1, [r0, #8] - ldr r1, _081B4708 - str r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B46F8: .4byte gUnknown_203CB90 -_081B46FC: .4byte gUnknown_2024190 -_081B4700: .4byte gUnknown_203CB94 -_081B4704: .4byte gUnknown_3005B60 -_081B4708: .4byte HandleMenuInput - thumb_func_end CursorCb_Mail - - thumb_func_start CursorCb_Read -CursorCb_Read: @ 0x081B470C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #5 - bl sub_080A306C - ldr r0, _081B4730 - ldr r1, [r0] - ldr r0, _081B4734 - str r0, [r1, #4] - adds r0, r4, #0 - bl sub_081B0F90 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B4730: .4byte gUnknown_203CB90 -_081B4734: .4byte sub_081B4738 - thumb_func_end CursorCb_Read - - thumb_func_start sub_081B4738 -sub_081B4738: @ 0x081B4738 - push {lr} - ldr r0, _081B476C - movs r1, #9 - ldrsb r1, [r0, r1] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081B4770 - adds r0, r0, r1 - movs r1, #0x40 - bl GetMonData - ldr r2, _081B4774 - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _081B4778 - adds r1, r1, r0 - ldr r0, [r2] - adds r0, r0, r1 - ldr r1, _081B477C - movs r2, #1 - bl sub_08121568 - pop {r0} - bx r0 - .align 2, 0 -_081B476C: .4byte gUnknown_203CB94 -_081B4770: .4byte gUnknown_2024190 -_081B4774: .4byte gUnknown_3005AEC -_081B4778: .4byte 0x00002BE0 -_081B477C: .4byte sub_081B4780 - thumb_func_end sub_081B4738 - - thumb_func_start sub_081B4780 -sub_081B4780: @ 0x081B4780 - push {lr} - sub sp, #0xc - ldr r2, _081B47B4 - ldrb r0, [r2, #8] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #8] - ldr r3, _081B47B8 - ldrb r0, [r3, #8] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - ldrb r2, [r3, #0xb] - movs r1, #0x15 - str r1, [sp] - ldr r1, _081B47BC - str r1, [sp, #4] - ldr r1, [r3] - str r1, [sp, #8] - movs r1, #0xff - movs r3, #1 - bl InitPartyMenu - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_081B47B4: .4byte gUnknown_2037C74 -_081B47B8: .4byte gUnknown_203CB94 -_081B47BC: .4byte sub_081B339C - thumb_func_end sub_081B4780 - - thumb_func_start CursorCb_TakeMail -CursorCb_TakeMail: @ 0x081B47C0 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #5 - bl sub_080A306C - ldr r5, _081B47FC - ldr r0, [r5] - adds r0, #0xd - bl sub_081B2CB0 - ldr r0, [r5] - adds r0, #0xc - bl sub_081B2CB0 - ldr r0, _081B4800 - movs r1, #1 - bl sub_081B182C - ldr r1, _081B4804 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B4808 - str r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B47FC: .4byte gUnknown_203CB90 -_081B4800: .4byte gUnknown_85C9BF1 -_081B4804: .4byte gUnknown_3005B60 -_081B4808: .4byte sub_081B480C - thumb_func_end CursorCb_TakeMail - - thumb_func_start sub_081B480C -sub_081B480C: @ 0x081B480C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl LoadListMenuArrowsGfx - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B4830 - bl sub_081B2FDC - ldr r0, _081B4838 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B483C - str r0, [r1] -_081B4830: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B4838: .4byte gUnknown_3005B60 -_081B483C: .4byte sub_081B4840 - thumb_func_end sub_081B480C - - thumb_func_start sub_081B4840 -sub_081B4840: @ 0x081B4840 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _081B4866 - cmp r1, #0 - bgt _081B4860 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _081B48D0 - b _081B48EC -_081B4860: - cmp r1, #1 - beq _081B48D6 - b _081B48EC -_081B4866: - ldr r0, _081B4898 - movs r1, #9 - ldrsb r1, [r0, r1] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081B489C - adds r0, r0, r1 - bl TakeMailFromMon2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _081B48AC - ldr r0, _081B48A0 - movs r1, #0 - bl sub_081B182C - ldr r1, _081B48A4 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B48A8 - b _081B48EA - .align 2, 0 -_081B4898: .4byte gUnknown_203CB94 -_081B489C: .4byte gUnknown_2024190 -_081B48A0: .4byte gUnknown_85C9C0A -_081B48A4: .4byte gUnknown_3005B60 -_081B48A8: .4byte sub_081B433C -_081B48AC: - ldr r0, _081B48C4 - movs r1, #0 - bl sub_081B182C - ldr r1, _081B48C8 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B48CC - b _081B48EA - .align 2, 0 -_081B48C4: .4byte gUnknown_85C9C20 -_081B48C8: .4byte gUnknown_3005B60 -_081B48CC: .4byte sub_081B18EC -_081B48D0: - movs r0, #5 - bl sub_080A306C -_081B48D6: - ldr r0, _081B48F4 - movs r1, #1 - bl sub_081B182C - ldr r1, _081B48F8 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B48FC -_081B48EA: - str r1, [r0] -_081B48EC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B48F4: .4byte gUnknown_85C9C39 -_081B48F8: .4byte gUnknown_3005B60 -_081B48FC: .4byte sub_081B4900 - thumb_func_end sub_081B4840 - - thumb_func_start sub_081B4900 -sub_081B4900: @ 0x081B4900 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl LoadListMenuArrowsGfx - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B4924 - bl sub_081B2FDC - ldr r0, _081B492C - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B4930 - str r0, [r1] -_081B4924: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B492C: .4byte gUnknown_3005B60 -_081B4930: .4byte sub_081B4934 - thumb_func_end sub_081B4900 - - thumb_func_start sub_081B4934 -sub_081B4934: @ 0x081B4934 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _081B495E - cmp r1, #0 - bgt _081B4958 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _081B49F0 - b _081B4A04 -_081B4958: - cmp r1, #1 - beq _081B49F6 - b _081B4A04 -_081B495E: - ldr r0, _081B49B0 - mov r8, r0 - ldrb r0, [r0, #9] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r7, #0x64 - muls r0, r7, r0 - ldr r6, _081B49B4 - adds r0, r0, r6 - movs r1, #0xc - bl GetMonData - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r4, #0 - movs r1, #1 - bl AddBagItem - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081B49C4 - mov r1, r8 - movs r0, #9 - ldrsb r0, [r1, r0] - muls r0, r7, r0 - adds r0, r0, r6 - bl TakeMailFromMon - ldr r0, _081B49B8 - movs r1, #0 - bl sub_081B182C - ldr r1, _081B49BC - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B49C0 - str r1, [r0] - b _081B4A04 - .align 2, 0 -_081B49B0: .4byte gUnknown_203CB94 -_081B49B4: .4byte gUnknown_2024190 -_081B49B8: .4byte gUnknown_85C9CDA -_081B49BC: .4byte gUnknown_3005B60 -_081B49C0: .4byte sub_081B433C -_081B49C4: - adds r0, r4, #0 - bl pokemon_item_not_removed - ldr r0, _081B49E4 - movs r1, #0 - bl sub_081B182C - ldr r1, _081B49E8 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B49EC - str r1, [r0] - b _081B4A04 - .align 2, 0 -_081B49E4: .4byte gUnknown_2021C7C -_081B49E8: .4byte gUnknown_3005B60 -_081B49EC: .4byte sub_081B18EC -_081B49F0: - movs r0, #5 - bl sub_080A306C -_081B49F6: - ldr r0, _081B4A10 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B4A14 - str r0, [r1] -_081B4A04: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B4A10: .4byte gUnknown_3005B60 -_081B4A14: .4byte sub_081B18EC - thumb_func_end sub_081B4934 - - thumb_func_start CursorCb_Cancel2 -CursorCb_Cancel2: @ 0x081B4A18 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r5, _081B4A78 - movs r1, #9 - ldrsb r1, [r5, r1] - movs r0, #0x64 - muls r0, r1, r0 - ldr r6, _081B4A7C - adds r7, r0, r6 - movs r0, #5 - bl sub_080A306C - ldr r4, _081B4A80 - ldr r0, [r4] - adds r0, #0xc - bl sub_081B2CB0 - ldr r0, [r4] - adds r0, #0xd - bl sub_081B2CB0 - ldrb r4, [r5, #9] - adds r0, r7, #0 - bl sub_081B31DC - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_081B3054 - ldrb r1, [r5, #8] - movs r0, #0xf - ands r0, r1 - cmp r0, #0xc - beq _081B4A84 - movs r0, #0 - bl sub_081B2E34 - movs r0, #0x15 - bl display_pokemon_menu_message - b _081B4AA2 - .align 2, 0 -_081B4A78: .4byte gUnknown_203CB94 -_081B4A7C: .4byte gUnknown_2024190 -_081B4A80: .4byte gUnknown_203CB90 -_081B4A84: - movs r0, #1 - bl sub_081B2E34 - adds r0, r7, #0 - movs r1, #0xc - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _081B4AC0 - bl sub_080D5EC8 - movs r0, #0x1a - bl display_pokemon_menu_message -_081B4AA2: - ldr r1, _081B4AC4 - mov r2, r8 - lsls r0, r2, #2 - add r0, r8 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0xff - strh r1, [r0, #8] - ldr r1, _081B4AC8 - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B4AC0: .4byte gUnknown_2021C54 -_081B4AC4: .4byte gUnknown_3005B60 -_081B4AC8: .4byte HandleMenuInput - thumb_func_end CursorCb_Cancel2 - - thumb_func_start CursorCb_SendMon -CursorCb_SendMon: @ 0x081B4ACC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #5 - bl sub_080A306C - ldr r5, _081B4AF8 - ldr r0, [r5] - adds r0, #0xc - bl sub_081B2CB0 - bl sub_081B871C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081B4AFC - adds r0, r4, #0 - bl sub_081B0F90 - b _081B4B1A - .align 2, 0 -_081B4AF8: .4byte gUnknown_203CB90 -_081B4AFC: - ldr r0, [r5] - adds r0, #0xd - bl sub_081B2CB0 - ldr r0, _081B4B20 - movs r1, #1 - bl sub_081B182C - ldr r1, _081B4B24 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B4B28 - str r1, [r0] -_081B4B1A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B4B20: .4byte gUnknown_2021C7C -_081B4B24: .4byte gUnknown_3005B60 -_081B4B28: .4byte sub_081B18EC - thumb_func_end CursorCb_SendMon - - thumb_func_start CursorCb_Enter -CursorCb_Enter: @ 0x081B4B2C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r4, _081B4BB4 - ldr r0, [r4] - adds r0, #0xc - bl sub_081B2CB0 - ldr r0, [r4] - adds r0, #0xd - bl sub_081B2CB0 - bl sub_081B84D0 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r5, #0 - cmp r5, r6 - bhs _081B4BD6 - ldr r2, _081B4BB8 - ldr r1, _081B4BBC - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - mov r8, r0 -_081B4B66: - ldr r0, _081B4BC0 - adds r4, r5, r0 - ldrb r0, [r4] - cmp r0, #0 - bne _081B4BCC - movs r0, #5 - str r2, [sp] - bl sub_080A306C - ldr r2, [sp] - ldrb r0, [r2, #9] - adds r0, #1 - strb r0, [r4] - adds r0, r5, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081B4BC4 - ldrb r2, [r2, #9] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - lsls r2, r2, #4 - ldr r1, [r1] - adds r1, r1, r2 - movs r2, #1 - bl sub_081B2C3C - subs r0, r6, #1 - cmp r5, r0 - bne _081B4BA4 - bl sub_081B4C28 -_081B4BA4: - movs r0, #0 - bl display_pokemon_menu_message - ldr r0, _081B4BC8 - mov r1, r8 - str r0, [r1] - b _081B4C08 - .align 2, 0 -_081B4BB4: .4byte gUnknown_203CB90 -_081B4BB8: .4byte gUnknown_203CB94 -_081B4BBC: .4byte gUnknown_3005B60 -_081B4BC0: .4byte gUnknown_203CBC4 -_081B4BC4: .4byte gUnknown_203CBA8 -_081B4BC8: .4byte sub_081B1040 -_081B4BCC: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, r6 - blo _081B4B66 -_081B4BD6: - ldr r0, _081B4C14 - adds r1, r6, #0 - movs r2, #0 - movs r3, #1 - bl sub_080089D8 - ldr r4, _081B4C18 - ldr r1, _081B4C1C - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #0x20 - bl sub_080A306C - adds r0, r4, #0 - movs r1, #1 - bl sub_081B182C - ldr r1, _081B4C20 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B4C24 - str r1, [r0] -_081B4C08: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B4C14: .4byte gUnknown_2021C40 -_081B4C18: .4byte gUnknown_2021C7C -_081B4C1C: .4byte gUnknown_85C9BD5 -_081B4C20: .4byte gUnknown_3005B60 -_081B4C24: .4byte sub_081B18EC - thumb_func_end CursorCb_Enter - - thumb_func_start sub_081B4C28 -sub_081B4C28: @ 0x081B4C28 - push {r4, lr} - ldr r4, _081B4C44 - ldrb r0, [r4, #9] - movs r1, #0 - bl sub_081B0C9C - movs r0, #6 - strb r0, [r4, #9] - movs r1, #1 - bl sub_081B0C9C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B4C44: .4byte gUnknown_203CB94 - thumb_func_end sub_081B4C28 - - thumb_func_start CursorCb_NoEntry -CursorCb_NoEntry: @ 0x081B4C48 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r0, #5 - bl sub_080A306C - ldr r4, _081B4CB4 - ldr r0, [r4] - adds r0, #0xc - bl sub_081B2CB0 - ldr r0, [r4] - adds r0, #0xd - bl sub_081B2CB0 - bl sub_081B84D0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r4, #0 - cmp r4, r5 - bhs _081B4CCA - ldr r6, _081B4CB8 - subs r2, r5, #1 - adds r7, r6, #0 - ldr r3, _081B4CBC -_081B4C82: - adds r0, r4, r6 - ldrb r1, [r0] - movs r0, #9 - ldrsb r0, [r3, r0] - adds r0, #1 - cmp r1, r0 - bne _081B4CC0 - adds r0, r4, #0 - adds r4, r2, #0 - cmp r0, r4 - bge _081B4CAC - adds r3, r7, #0 -_081B4C9A: - adds r2, r0, r3 - adds r1, r0, #1 - adds r0, r1, r3 - ldrb r0, [r0] - strb r0, [r2] - lsls r1, r1, #0x18 - lsrs r0, r1, #0x18 - cmp r0, r4 - blt _081B4C9A -_081B4CAC: - adds r1, r0, r6 - movs r0, #0 - strb r0, [r1] - b _081B4CCA - .align 2, 0 -_081B4CB4: .4byte gUnknown_203CB90 -_081B4CB8: .4byte gUnknown_203CBC4 -_081B4CBC: .4byte gUnknown_203CB94 -_081B4CC0: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r5 - blo _081B4C82 -_081B4CCA: - ldr r6, _081B4D38 - ldr r0, _081B4D3C - ldrb r0, [r0, #9] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #4 - ldr r1, [r6] - adds r1, r1, r0 - movs r0, #1 - movs r2, #1 - bl sub_081B2C3C - movs r4, #0 - subs r5, #1 - mov r0, r8 - lsls r7, r0, #2 - cmp r4, r5 - bge _081B4D18 -_081B4CEE: - ldr r0, _081B4D40 - adds r1, r4, r0 - ldrb r0, [r1] - cmp r0, #0 - beq _081B4D0E - adds r0, r4, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r2, [r1] - lsls r2, r2, #4 - subs r2, #0x10 - ldr r1, [r6] - adds r1, r1, r2 - movs r2, #1 - bl sub_081B2C3C -_081B4D0E: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r5 - blt _081B4CEE -_081B4D18: - movs r0, #0 - bl display_pokemon_menu_message - ldr r0, _081B4D44 - mov r2, r8 - adds r1, r7, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B4D48 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B4D38: .4byte gUnknown_203CBA8 -_081B4D3C: .4byte gUnknown_203CB94 -_081B4D40: .4byte gUnknown_203CBC4 -_081B4D44: .4byte gUnknown_3005B60 -_081B4D48: .4byte sub_081B1040 - thumb_func_end CursorCb_NoEntry - - thumb_func_start CursorCb_Store -CursorCb_Store: @ 0x081B4D4C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #5 - bl sub_080A306C - adds r0, r4, #0 - bl sub_081B0F90 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CursorCb_Store - - thumb_func_start CursorCb_Register -CursorCb_Register: @ 0x081B4D68 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _081B4DF4 - mov sb, r0 - ldrb r0, [r0, #9] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #0x64 - mov r8, r1 - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - ldr r4, _081B4DF8 - adds r0, r0, r4 - movs r1, #0x41 - bl GetMonData - adds r6, r0, #0 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - mov r1, sb - movs r0, #9 - ldrsb r0, [r1, r0] - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - adds r0, r0, r4 - movs r1, #0xb - bl GetMonData - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - mov r1, sb - movs r0, #9 - ldrsb r0, [r1, r0] - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - adds r0, r0, r4 - movs r1, #0x50 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_0800F29C - ldr r0, [r0] - adds r1, r6, #0 - adds r2, r5, #0 - adds r3, r4, #0 - bl sub_0807A340 - cmp r0, #1 - beq _081B4DFC - cmp r0, #2 - beq _081B4E10 - movs r0, #5 - bl sub_080A306C - adds r0, r7, #0 - bl sub_081B0F90 - b _081B4E50 - .align 2, 0 -_081B4DF4: .4byte gUnknown_203CB94 -_081B4DF8: .4byte gUnknown_2024190 -_081B4DFC: - ldr r0, _081B4E08 - ldr r1, _081B4E0C - bl StringExpandPlaceholders - b _081B4E18 - .align 2, 0 -_081B4E08: .4byte gUnknown_2021C7C -_081B4E0C: .4byte gUnknown_85CA2B4 -_081B4E10: - ldr r0, _081B4E5C - ldr r1, _081B4E60 - bl StringExpandPlaceholders -_081B4E18: - movs r0, #0x20 - bl sub_080A306C - ldr r4, _081B4E64 - ldr r0, [r4] - adds r0, #0xc - bl sub_081B2CB0 - ldr r0, [r4] - adds r0, #0xd - bl sub_081B2CB0 - ldr r4, _081B4E5C - ldr r1, _081B4E68 - adds r0, r4, #0 - bl StringAppend - adds r0, r4, #0 - movs r1, #1 - bl sub_081B182C - ldr r1, _081B4E6C - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B4E70 - str r1, [r0] -_081B4E50: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B4E5C: .4byte gUnknown_2021C7C -_081B4E60: .4byte gUnknown_85CA2CC -_081B4E64: .4byte gUnknown_203CB90 -_081B4E68: .4byte gUnknown_85CA273 -_081B4E6C: .4byte gUnknown_3005B60 -_081B4E70: .4byte sub_081B18EC - thumb_func_end CursorCb_Register - - thumb_func_start CursorCb_Trade1 -CursorCb_Trade1: @ 0x081B4E74 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _081B4F3C - mov r8, r0 - ldrb r0, [r0, #9] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r6, #0x64 - muls r0, r6, r0 - ldr r4, _081B4F40 - adds r0, r0, r4 - movs r1, #0x41 - bl GetMonData - mov sb, r0 - mov r1, sb - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sb, r1 - mov r1, r8 - movs r0, #9 - ldrsb r0, [r1, r0] - muls r0, r6, r0 - adds r0, r0, r4 - movs r1, #0xb - bl GetMonData - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - mov r1, r8 - movs r0, #9 - ldrsb r0, [r1, r0] - muls r0, r6, r0 - adds r0, r0, r4 - movs r1, #0x50 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_0800F29C - ldr r0, [r0] - ldr r1, _081B4F44 - ldr r1, [r1] - ldr r2, _081B4F48 - ldrh r3, [r2] - ldr r2, _081B4F4C - ldrb r2, [r2] - str r2, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - mov r2, sb - bl sub_0807A250 - cmp r0, #0 - beq _081B4F68 - ldr r5, _081B4F50 - ldr r1, _081B4F54 - subs r0, #1 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r5, #0 - bl StringExpandPlaceholders - movs r0, #0x20 - bl sub_080A306C - ldr r4, _081B4F58 - ldr r0, [r4] - adds r0, #0xc - bl sub_081B2CB0 - ldr r0, [r4] - adds r0, #0xd - bl sub_081B2CB0 - ldr r1, _081B4F5C - adds r0, r5, #0 - bl StringAppend - adds r0, r5, #0 - movs r1, #1 - bl sub_081B182C - ldr r1, _081B4F60 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B4F64 - str r1, [r0] - b _081B4F74 - .align 2, 0 -_081B4F3C: .4byte gUnknown_203CB94 -_081B4F40: .4byte gUnknown_2024190 -_081B4F44: .4byte gUnknown_20228EC -_081B4F48: .4byte gUnknown_20228F0 -_081B4F4C: .4byte gUnknown_20228F2 -_081B4F50: .4byte gUnknown_2021C7C -_081B4F54: .4byte gUnknown_85E16C4 -_081B4F58: .4byte gUnknown_203CB90 -_081B4F5C: .4byte gUnknown_85CA273 -_081B4F60: .4byte gUnknown_3005B60 -_081B4F64: .4byte sub_081B18EC -_081B4F68: - movs r0, #5 - bl sub_080A306C - adds r0, r7, #0 - bl sub_081B0F90 -_081B4F74: - add sp, #0xc - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CursorCb_Trade1 - - thumb_func_start CursorCb_Trade2 -CursorCb_Trade2: @ 0x081B4F84 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r4, _081B4FBC - ldr r0, [r4] - adds r0, #0xc - bl sub_081B2CB0 - ldr r0, [r4] - adds r0, #0xd - bl sub_081B2CB0 - ldr r0, _081B4FC0 - ldr r1, _081B4FC4 - ldrb r1, [r1, #9] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl sub_0807A388 - cmp r0, #2 - beq _081B4FE0 - cmp r0, #2 - bgt _081B4FC8 - cmp r0, #1 - beq _081B4FCE - b _081B5008 - .align 2, 0 -_081B4FBC: .4byte gUnknown_203CB90 -_081B4FC0: .4byte gUnknown_2024190 -_081B4FC4: .4byte gUnknown_203CB94 -_081B4FC8: - cmp r0, #3 - beq _081B4FF4 - b _081B5008 -_081B4FCE: - ldr r0, _081B4FD8 - ldr r1, _081B4FDC - bl StringExpandPlaceholders - b _081B5060 - .align 2, 0 -_081B4FD8: .4byte gUnknown_2021C7C -_081B4FDC: .4byte gUnknown_85CA294 -_081B4FE0: - ldr r0, _081B4FEC - ldr r1, _081B4FF0 - bl StringExpandPlaceholders - b _081B5060 - .align 2, 0 -_081B4FEC: .4byte gUnknown_2021C7C -_081B4FF0: .4byte gUnknown_85CA2B4 -_081B4FF4: - ldr r0, _081B5000 - ldr r1, _081B5004 - bl StringExpandPlaceholders - b _081B5060 - .align 2, 0 -_081B5000: .4byte gUnknown_2021C7C -_081B5004: .4byte gUnknown_85CA2CC -_081B5008: - movs r0, #5 - bl sub_080A306C - ldr r0, _081B5044 - movs r1, #9 - ldrsb r1, [r0, r1] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081B5048 - adds r0, r0, r1 - ldr r1, _081B504C - bl GetMonNickname - ldr r4, _081B5050 - ldr r1, _081B5054 - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - movs r1, #1 - bl sub_081B182C - ldr r1, _081B5058 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B505C - b _081B5084 - .align 2, 0 -_081B5044: .4byte gUnknown_203CB94 -_081B5048: .4byte gUnknown_2024190 -_081B504C: .4byte gUnknown_2021C40 -_081B5050: .4byte gUnknown_2021C7C -_081B5054: .4byte gUnknown_85CA276 -_081B5058: .4byte gUnknown_3005B60 -_081B505C: .4byte GetFlavorRelationByPersonality -_081B5060: - movs r0, #0x20 - bl sub_080A306C - ldr r4, _081B508C - ldr r1, _081B5090 - adds r0, r4, #0 - bl StringAppend - adds r0, r4, #0 - movs r1, #1 - bl sub_081B182C - ldr r1, _081B5094 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B5098 -_081B5084: - str r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B508C: .4byte gUnknown_2021C7C -_081B5090: .4byte gUnknown_85CA273 -_081B5094: .4byte gUnknown_3005B60 -_081B5098: .4byte sub_081B18EC - thumb_func_end CursorCb_Trade2 - - thumb_func_start GetFlavorRelationByPersonality -GetFlavorRelationByPersonality: @ 0x081B509C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl LoadListMenuArrowsGfx - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B50C0 - bl sub_081B2FDC - ldr r0, _081B50C8 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B50CC - str r0, [r1] -_081B50C0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B50C8: .4byte gUnknown_3005B60 -_081B50CC: .4byte sub_081B50D0 - thumb_func_end GetFlavorRelationByPersonality - - thumb_func_start sub_081B50D0 -sub_081B50D0: @ 0x081B50D0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _081B50F6 - cmp r1, #0 - bgt _081B50F0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _081B50FE - b _081B510A -_081B50F0: - cmp r1, #1 - beq _081B5104 - b _081B510A -_081B50F6: - adds r0, r4, #0 - bl sub_081B0F90 - b _081B510A -_081B50FE: - movs r0, #5 - bl sub_080A306C -_081B5104: - adds r0, r4, #0 - bl sub_081B18EC -_081B510A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081B50D0 - - thumb_func_start CursorCb_FieldMove -CursorCb_FieldMove: @ 0x081B5110 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - bl Menu_GetCursorPos - ldr r5, _081B517C - ldr r1, [r5] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, #0xf - adds r1, r1, r0 - ldrb r0, [r1] - subs r0, #0x13 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #5 - bl sub_080A306C - ldr r1, _081B5180 - lsls r0, r4, #3 - adds r7, r0, r1 - ldr r0, [r7] - cmp r0, #0 - bne _081B5142 - b _081B5304 -_081B5142: - ldr r0, [r5] - adds r0, #0xc - bl sub_081B2CB0 - ldr r0, [r5] - adds r0, #0xd - bl sub_081B2CB0 - bl sub_081221B8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B5166 - bl InUnionRoom - cmp r0, #1 - bne _081B5188 -_081B5166: - adds r0, r4, #0 - subs r0, #0xb - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _081B5184 - movs r0, #0xd - bl display_pokemon_menu_message - b _081B52F6 - .align 2, 0 -_081B517C: .4byte gUnknown_203CB90 -_081B5180: .4byte gUnknown_85E1654 -_081B5184: - ldrb r0, [r7, #4] - b _081B52F2 -_081B5188: - cmp r4, #7 - bhi _081B51C4 - ldr r1, _081B51B4 - adds r0, r4, r1 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B51C4 - ldr r0, _081B51B8 - movs r1, #1 - bl sub_081B182C - ldr r1, _081B51BC - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B51C0 - str r1, [r0] - b _081B5304 - .align 2, 0 -_081B51B4: .4byte 0x00000867 -_081B51B8: .4byte gUnknown_85C9BB7 -_081B51BC: .4byte gUnknown_3005B60 -_081B51C0: .4byte sub_081B18EC -_081B51C4: - ldr r1, _081B51EC - lsls r0, r4, #3 - adds r5, r0, r1 - ldr r0, [r5] - bl _call_via_r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B51DA - b _081B52DC -_081B51DA: - subs r0, r4, #5 - cmp r0, #7 - bhi _081B52C4 - lsls r0, r0, #2 - ldr r1, _081B51F0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081B51EC: .4byte gUnknown_85E1654 -_081B51F0: .4byte _081B51F4 -_081B51F4: @ jump table - .4byte _081B52B4 @ case 0 - .4byte _081B52C4 @ case 1 - .4byte _081B52C4 @ case 2 - .4byte _081B521C @ case 3 - .4byte _081B5258 @ case 4 - .4byte _081B52C4 @ case 5 - .4byte _081B5214 @ case 6 - .4byte _081B5214 @ case 7 -_081B5214: - adds r0, r6, #0 - bl sub_08161464 - b _081B5304 -_081B521C: - ldr r0, _081B5248 - ldr r1, [r0] - movs r0, #0x1c - ldrsb r0, [r1, r0] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r1, #0x1d] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl Overworld_GetMapHeaderByGroupAndId - adds r1, r0, #0 - ldr r0, _081B524C - ldrb r1, [r1, #0x14] - bl sub_081245E8 - ldr r0, _081B5250 - ldr r1, _081B5254 - b _081B5288 - .align 2, 0 -_081B5248: .4byte gUnknown_3005AEC -_081B524C: .4byte gUnknown_2021C40 -_081B5250: .4byte gUnknown_2021C7C -_081B5254: .4byte gUnknown_85CA25C -_081B5258: - ldr r0, _081B52A0 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0x24 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, #0x25 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl Overworld_GetMapHeaderByGroupAndId - adds r1, r0, #0 - ldr r0, _081B52A4 - ldrb r1, [r1, #0x14] - bl sub_081245E8 - ldr r0, _081B52A8 - ldr r1, _081B52AC -_081B5288: - bl StringExpandPlaceholders - adds r0, r6, #0 - bl sub_081B5314 - ldr r0, _081B52B0 - ldr r0, [r0] - movs r1, #0x86 - lsls r1, r1, #2 - adds r0, r0, r1 - strh r4, [r0] - b _081B5304 - .align 2, 0 -_081B52A0: .4byte gUnknown_3005AEC -_081B52A4: .4byte gUnknown_2021C40 -_081B52A8: .4byte gUnknown_2021C7C -_081B52AC: .4byte gUnknown_85CA246 -_081B52B0: .4byte gUnknown_203CB90 -_081B52B4: - ldr r1, _081B52BC - ldr r0, _081B52C0 - b _081B52C8 - .align 2, 0 -_081B52BC: .4byte gUnknown_203CB94 -_081B52C0: .4byte MCB2_FlyMap -_081B52C4: - ldr r1, _081B52D4 - ldr r0, _081B52D8 -_081B52C8: - str r0, [r1] - adds r0, r6, #0 - bl sub_081B0F90 - b _081B5304 - .align 2, 0 -_081B52D4: .4byte gUnknown_203CB94 -_081B52D8: .4byte sub_08085A30 -_081B52DC: - cmp r4, #1 - beq _081B52EA - cmp r4, #4 - bne _081B52F0 - bl sub_081B5504 - b _081B52F6 -_081B52EA: - bl sub_081B547C - b _081B52F6 -_081B52F0: - ldrb r0, [r5, #4] -_081B52F2: - bl display_pokemon_menu_message -_081B52F6: - ldr r0, _081B530C - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B5310 - str r0, [r1] -_081B5304: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B530C: .4byte gUnknown_3005B60 -_081B5310: .4byte task_brm_cancel_1_on_keypad_a_or_b - thumb_func_end CursorCb_FieldMove - - thumb_func_start sub_081B5314 -sub_081B5314: @ 0x081B5314 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081B5338 - movs r1, #1 - bl sub_081B182C - ldr r1, _081B533C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B5340 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B5338: .4byte gUnknown_2021C7C -_081B533C: .4byte gUnknown_3005B60 -_081B5340: .4byte sub_081B5344 - thumb_func_end sub_081B5314 - - thumb_func_start sub_081B5344 -sub_081B5344: @ 0x081B5344 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl LoadListMenuArrowsGfx - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B5368 - bl sub_081B2FDC - ldr r0, _081B5370 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B5374 - str r0, [r1] -_081B5368: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B5370: .4byte gUnknown_3005B60 -_081B5374: .4byte sub_081B5378 - thumb_func_end sub_081B5344 - - thumb_func_start sub_081B5378 -sub_081B5378: @ 0x081B5378 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _081B539E - cmp r1, #0 - bgt _081B5398 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _081B53B4 - b _081B53CA -_081B5398: - cmp r1, #1 - beq _081B53BA - b _081B53CA -_081B539E: - ldr r1, _081B53AC - ldr r0, _081B53B0 - str r0, [r1] - adds r0, r4, #0 - bl sub_081B0F90 - b _081B53CA - .align 2, 0 -_081B53AC: .4byte gUnknown_203CB94 -_081B53B0: .4byte sub_08085A30 -_081B53B4: - movs r0, #5 - bl sub_080A306C -_081B53BA: - ldr r0, _081B53D0 - movs r1, #0 - str r1, [r0] - ldr r0, _081B53D4 - str r1, [r0] - adds r0, r4, #0 - bl sub_081B18EC -_081B53CA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B53D0: .4byte gUnknown_3005B10 -_081B53D4: .4byte gUnknown_203CBB8 - thumb_func_end sub_081B5378 - - thumb_func_start FieldCallback_PrepareFadeInFromMenu -FieldCallback_PrepareFadeInFromMenu: @ 0x081B53D8 - push {lr} - bl pal_fill_black - ldr r0, _081B53EC - movs r1, #8 - bl CreateTask - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 -_081B53EC: .4byte task_launch_hm_phase_2 - thumb_func_end FieldCallback_PrepareFadeInFromMenu - - thumb_func_start task_launch_hm_phase_2 -task_launch_hm_phase_2: @ 0x081B53F0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl IsWeatherNotFadingIn - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081B541C - bl brm_get_selected_species - ldr r1, _081B5424 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [r1] - ldr r0, _081B5428 - ldr r0, [r0] - bl _call_via_r0 - adds r0, r4, #0 - bl DestroyTask -_081B541C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B5424: .4byte gUnknown_20388A8 -_081B5428: .4byte gUnknown_203CBB8 - thumb_func_end task_launch_hm_phase_2 - - thumb_func_start brm_get_selected_species -brm_get_selected_species: @ 0x081B542C - push {lr} - ldr r0, _081B544C - movs r1, #9 - ldrsb r1, [r0, r1] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081B5450 - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - .align 2, 0 -_081B544C: .4byte gUnknown_203CB94 -_081B5450: .4byte gUnknown_2024190 - thumb_func_end brm_get_selected_species - - thumb_func_start task_brm_cancel_1_on_keypad_a_or_b -task_brm_cancel_1_on_keypad_a_or_b: @ 0x081B5454 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _081B5478 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _081B546E - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081B5474 -_081B546E: - adds r0, r2, #0 - bl CursorCb_Cancel1 -_081B5474: - pop {r0} - bx r0 - .align 2, 0 -_081B5478: .4byte gUnknown_3002360 - thumb_func_end task_brm_cancel_1_on_keypad_a_or_b - - thumb_func_start sub_081B547C -sub_081B547C: @ 0x081B547C - push {lr} - ldr r0, _081B5494 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081B5498 - movs r0, #0xc - bl display_pokemon_menu_message - b _081B549E - .align 2, 0 -_081B5494: .4byte 0x00000888 -_081B5498: - movs r0, #0xd - bl display_pokemon_menu_message -_081B549E: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081B547C - - thumb_func_start sub_081B54A4 -sub_081B54A4: @ 0x081B54A4 - push {lr} - bl GetCursorSelectionMonId - ldr r1, _081B54BC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [r1] - movs r0, #9 - bl FieldEffectStart - pop {r0} - bx r0 - .align 2, 0 -_081B54BC: .4byte gUnknown_20388A8 - thumb_func_end sub_081B54A4 - - thumb_func_start SetUpFieldMove_Surf -SetUpFieldMove_Surf: @ 0x081B54C0 - push {lr} - bl PartyHasMonWithSurf - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081B54FC - bl IsPlayerFacingSurfableFishableWater - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081B54FC - ldr r1, _081B54EC - ldr r0, _081B54F0 - str r0, [r1] - ldr r1, _081B54F4 - ldr r0, _081B54F8 - str r0, [r1] - movs r0, #1 - b _081B54FE - .align 2, 0 -_081B54EC: .4byte gUnknown_3005B10 -_081B54F0: .4byte FieldCallback_PrepareFadeInFromMenu -_081B54F4: .4byte gUnknown_203CBB8 -_081B54F8: .4byte sub_081B54A4 -_081B54FC: - movs r0, #0 -_081B54FE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end SetUpFieldMove_Surf - - thumb_func_start sub_081B5504 -sub_081B5504: @ 0x081B5504 - push {lr} - movs r0, #8 - bl TestPlayerAvatarFlags - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081B551A - movs r0, #9 - bl display_pokemon_menu_message - b _081B5520 -_081B551A: - movs r0, #8 - bl display_pokemon_menu_message -_081B5520: - pop {r0} - bx r0 - thumb_func_end sub_081B5504 - - thumb_func_start SetUpFieldMove_Fly -SetUpFieldMove_Fly: @ 0x081B5524 - push {lr} - ldr r0, _081B553C - ldrb r0, [r0, #0x17] - bl Overworld_MapTypeAllowsTeleportAndFly - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B5540 - movs r0, #0 - b _081B5542 - .align 2, 0 -_081B553C: .4byte gUnknown_2036FB8 -_081B5540: - movs r0, #1 -_081B5542: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end SetUpFieldMove_Fly - - thumb_func_start sub_081B5548 -sub_081B5548: @ 0x081B5548 - push {lr} - sub sp, #0xc - movs r0, #0 - str r0, [sp] - ldr r0, _081B556C - str r0, [sp, #4] - ldr r0, _081B5570 - str r0, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #1 - bl InitPartyMenu - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_081B556C: .4byte sub_081B1040 -_081B5570: .4byte CB2_ReturnToFieldWithOpenMenu - thumb_func_end sub_081B5548 - - thumb_func_start hm2_waterfall -hm2_waterfall: @ 0x081B5574 - push {lr} - bl GetCursorSelectionMonId - ldr r1, _081B558C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [r1] - movs r0, #0x2b - bl FieldEffectStart - pop {r0} - bx r0 - .align 2, 0 -_081B558C: .4byte gUnknown_20388A8 - thumb_func_end hm2_waterfall - - thumb_func_start SetUpFieldMove_Waterfall -SetUpFieldMove_Waterfall: @ 0x081B5590 - push {r4, lr} - sub sp, #4 - mov r4, sp - adds r4, #2 - 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, r0, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsWaterfall - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081B55EC - bl IsPlayerSurfingNorth - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081B55EC - ldr r1, _081B55DC - ldr r0, _081B55E0 - str r0, [r1] - ldr r1, _081B55E4 - ldr r0, _081B55E8 - str r0, [r1] - movs r0, #1 - b _081B55EE - .align 2, 0 -_081B55DC: .4byte gUnknown_3005B10 -_081B55E0: .4byte FieldCallback_PrepareFadeInFromMenu -_081B55E4: .4byte gUnknown_203CBB8 -_081B55E8: .4byte hm2_waterfall -_081B55EC: - movs r0, #0 -_081B55EE: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end SetUpFieldMove_Waterfall - - thumb_func_start sub_081B55F8 -sub_081B55F8: @ 0x081B55F8 - push {lr} - bl GetCursorSelectionMonId - ldr r1, _081B5610 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [r1] - movs r0, #0x2c - bl FieldEffectStart - pop {r0} - bx r0 - .align 2, 0 -_081B5610: .4byte gUnknown_20388A8 - thumb_func_end sub_081B55F8 - - thumb_func_start SetUpFieldMove_Dive -SetUpFieldMove_Dive: @ 0x081B5614 - push {lr} - bl TrySetDiveWarp - ldr r1, _081B562C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [r1, #4] - cmp r0, #0 - bne _081B5630 - movs r0, #0 - b _081B563E - .align 2, 0 -_081B562C: .4byte gUnknown_20388A8 -_081B5630: - ldr r1, _081B5644 - ldr r0, _081B5648 - str r0, [r1] - ldr r1, _081B564C - ldr r0, _081B5650 - str r0, [r1] - movs r0, #1 -_081B563E: - pop {r1} - bx r1 - .align 2, 0 -_081B5644: .4byte gUnknown_3005B10 -_081B5648: .4byte FieldCallback_PrepareFadeInFromMenu -_081B564C: .4byte gUnknown_203CBB8 -_081B5650: .4byte sub_081B55F8 - thumb_func_end SetUpFieldMove_Dive - - thumb_func_start party_menu_icon_anim -party_menu_icon_anim: @ 0x081B5654 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r5, r0, #0 - adds r7, r1, #0 - adds r4, r2, #0 - movs r6, #1 - bl IsMultiBattle - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081B568A - ldr r0, _081B56C0 - ldr r1, _081B56C4 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081B568A - ldr r0, _081B56C8 - adds r0, r4, r0 - ldrb r1, [r0] - eors r1, r6 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r6, r0, #0x1f -_081B568A: - adds r0, r5, #0 - movs r1, #0x41 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - movs r1, #0 - bl GetMonData - adds r1, r0, #0 - str r6, [sp] - adds r0, r4, #0 - adds r2, r7, #0 - movs r3, #1 - bl party_menu_link_mon_icon_anim - ldrb r0, [r7, #9] - adds r1, r5, #0 - bl sub_081B57D8 - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B56C0: .4byte gUnknown_3002360 -_081B56C4: .4byte 0x00000439 -_081B56C8: .4byte gUnknown_85E18D8 - thumb_func_end party_menu_icon_anim - - thumb_func_start party_menu_link_mon_icon_anim -party_menu_link_mon_icon_anim: @ 0x081B56CC - push {r4, r5, r6, r7, lr} - sub sp, #0xc - adds r6, r1, #0 - adds r4, r2, #0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r3, r3, #0x18 - lsrs r7, r3, #0x18 - cmp r5, #0 - beq _081B571A - ldr r1, _081B5724 - ldr r0, [r4, #4] - ldrb r2, [r0] - ldrb r3, [r0, #1] - movs r0, #4 - str r0, [sp] - str r6, [sp, #4] - ldr r0, [sp, #0x20] - str r0, [sp, #8] - adds r0, r5, #0 - bl CreateMonIcon - strb r0, [r4, #9] - ldr r2, _081B5728 - ldrb r0, [r4, #9] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #3 - adds r2, r7, #0 - ands r2, r0 - lsls r2, r2, #2 - ldrb r3, [r1, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, #5] -_081B571A: - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B5724: .4byte sub_080D28B4 -_081B5728: .4byte gUnknown_20205AC - thumb_func_end party_menu_link_mon_icon_anim - - thumb_func_start sub_081B572C -sub_081B572C: @ 0x081B572C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r0, r1, #0 - adds r1, r2, #0 - bl GetHPBarLevel - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - beq _081B578C - cmp r0, #2 - bgt _081B5754 - cmp r0, #1 - beq _081B57A4 - b _081B57BC -_081B5754: - cmp r0, #3 - beq _081B5774 - cmp r0, #4 - bne _081B57BC - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - ldr r1, _081B5770 - adds r0, r0, r1 - movs r1, #0 - bl sub_080D2B68 - b _081B57CC - .align 2, 0 -_081B5770: .4byte gUnknown_20205AC -_081B5774: - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - ldr r1, _081B5788 - adds r0, r0, r1 - movs r1, #1 - bl sub_080D2B68 - b _081B57CC - .align 2, 0 -_081B5788: .4byte gUnknown_20205AC -_081B578C: - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - ldr r1, _081B57A0 - adds r0, r0, r1 - movs r1, #2 - bl sub_080D2B68 - b _081B57CC - .align 2, 0 -_081B57A0: .4byte gUnknown_20205AC -_081B57A4: - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - ldr r1, _081B57B8 - adds r0, r0, r1 - movs r1, #3 - bl sub_080D2B68 - b _081B57CC - .align 2, 0 -_081B57B8: .4byte gUnknown_20205AC -_081B57BC: - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - ldr r1, _081B57D4 - adds r0, r0, r1 - movs r1, #4 - bl sub_080D2B68 -_081B57CC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B57D4: .4byte gUnknown_20205AC - thumb_func_end sub_081B572C - - thumb_func_start sub_081B57D8 -sub_081B57D8: @ 0x081B57D8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - adds r0, r6, #0 - movs r1, #0x39 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r6, #0 - movs r1, #0x3a - bl GetMonData - adds r2, r0, #0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_081B572C - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_081B57D8 - - thumb_func_start AnimateSelectedPartyIcon -AnimateSelectedPartyIcon: @ 0x081B580C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - ldr r5, _081B583C - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r6, r0, #2 - adds r2, r6, r5 - movs r7, #0 - movs r3, #0 - strh r3, [r2, #0x2e] - mov ip, r5 - cmp r1, #0 - bne _081B5864 - movs r1, #0x20 - ldrsh r0, [r2, r1] - cmp r0, #0x18 - bne _081B5844 - strh r3, [r2, #0x24] - ldr r0, _081B5840 - strh r0, [r2, #0x26] - b _081B584A - .align 2, 0 -_081B583C: .4byte gUnknown_20205AC -_081B5840: .4byte 0x0000FFFC -_081B5844: - ldr r0, _081B585C - strh r0, [r2, #0x24] - strh r3, [r2, #0x26] -_081B584A: - lsls r0, r4, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - mov r1, ip - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _081B5860 - b _081B5870 - .align 2, 0 -_081B585C: .4byte 0x0000FFFC -_081B5860: .4byte UpdatePartyMonIconFrame -_081B5864: - strh r3, [r2, #0x24] - strh r3, [r2, #0x26] - adds r0, r5, #0 - adds r0, #0x1c - adds r0, r6, r0 - ldr r1, _081B5878 -_081B5870: - str r1, [r0] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B5878: .4byte UpdatePartyMonIconFrameAndBounce - thumb_func_end AnimateSelectedPartyIcon - - thumb_func_start UpdatePartyMonIconFrameAndBounce -UpdatePartyMonIconFrameAndBounce: @ 0x081B587C - push {r4, lr} - adds r4, r0, #0 - bl UpdateMonIconFrame - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _081B58A2 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _081B58A0 - ldr r0, _081B589C - strh r0, [r4, #0x26] - b _081B58A2 - .align 2, 0 -_081B589C: .4byte 0x0000FFFD -_081B58A0: - strh r1, [r4, #0x26] -_081B58A2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end UpdatePartyMonIconFrameAndBounce - - thumb_func_start UpdatePartyMonIconFrame -UpdatePartyMonIconFrame: @ 0x081B58A8 - push {lr} - bl UpdateMonIconFrame - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end UpdatePartyMonIconFrame - - thumb_func_start party_menu_held_item_object -party_menu_held_item_object: @ 0x081B58B4 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _081B58DC - ldr r0, _081B58E4 - ldr r2, [r4, #4] - ldrb r1, [r2, #2] - ldrb r2, [r2, #3] - movs r3, #0 - bl CreateSprite - strb r0, [r4, #0xa] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_081B5934 -_081B58DC: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B58E4: .4byte gUnknown_85E1778 - thumb_func_end party_menu_held_item_object - - thumb_func_start party_menu_link_mon_held_item_object -party_menu_link_mon_held_item_object: @ 0x081B58E8 - push {r4, r5, lr} - adds r4, r2, #0 - lsls r0, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - cmp r0, #0 - beq _081B5924 - ldr r0, _081B592C - ldr r2, [r4, #4] - ldrb r1, [r2, #2] - ldrb r2, [r2, #3] - movs r3, #0 - bl CreateSprite - strb r0, [r4, #0xa] - ldr r2, _081B5930 - ldrb r0, [r4, #0xa] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r2, [r1, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #5] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_081B5950 -_081B5924: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B592C: .4byte gUnknown_85E1778 -_081B5930: .4byte gUnknown_20205AC - thumb_func_end party_menu_link_mon_held_item_object - - thumb_func_start sub_081B5934 -sub_081B5934: @ 0x081B5934 - push {r4, lr} - adds r4, r1, #0 - movs r1, #0xc - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r4, #0 - bl sub_081B5950 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081B5934 - - thumb_func_start sub_081B5950 -sub_081B5950: @ 0x081B5950 - push {r4, lr} - adds r4, r1, #0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - bne _081B5978 - ldr r2, _081B5974 - ldrb r1, [r4, #0xa] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - b _081B59C4 - .align 2, 0 -_081B5974: .4byte gUnknown_20205AC -_081B5978: - bl ItemIsMail - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081B599C - ldrb r1, [r4, #0xa] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _081B5998 - adds r0, r0, r1 - movs r1, #1 - bl StartSpriteAnim - b _081B59AE - .align 2, 0 -_081B5998: .4byte gUnknown_20205AC -_081B599C: - ldrb r1, [r4, #0xa] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _081B59CC - adds r0, r0, r1 - movs r1, #0 - bl StartSpriteAnim -_081B59AE: - ldr r2, _081B59CC - ldrb r1, [r4, #0xa] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 -_081B59C4: - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B59CC: .4byte gUnknown_20205AC - thumb_func_end sub_081B5950 - - thumb_func_start sub_081B59D0 -sub_081B59D0: @ 0x081B59D0 - push {lr} - ldr r0, _081B59E4 - bl LoadSpriteSheet - ldr r0, _081B59E8 - bl LoadSpritePalette - pop {r0} - bx r0 - .align 2, 0 -_081B59E4: .4byte gUnknown_85E1768 -_081B59E8: .4byte gUnknown_85E1770 - thumb_func_end sub_081B59D0 - - thumb_func_start sub_081B59EC -sub_081B59EC: @ 0x081B59EC - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r7, r1, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - cmp r2, #0 - beq _081B5A00 - cmp r2, #1 - beq _081B5A48 - b _081B5A84 -_081B5A00: - movs r5, #0 - ldrb r0, [r6] - cmp r5, r0 - bhs _081B5A84 -_081B5A08: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081B5A44 - adds r0, r0, r1 - movs r1, #0xc - bl GetMonData - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - beq _081B5A34 - adds r0, r7, r5 - ldrb r4, [r0] - adds r0, r1, #0 - bl ItemIsMail - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl sub_081B5A90 -_081B5A34: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldrb r0, [r6] - cmp r5, r0 - blo _081B5A08 - b _081B5A84 - .align 2, 0 -_081B5A44: .4byte gUnknown_2024190 -_081B5A48: - movs r5, #0 - b _081B5A7E -_081B5A4C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081B5A8C - adds r0, r0, r1 - movs r1, #0xc - bl GetMonData - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - beq _081B5A78 - adds r0, r5, r7 - ldrb r4, [r0, #6] - adds r0, r1, #0 - bl ItemIsMail - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl sub_081B5A90 -_081B5A78: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_081B5A7E: - ldrb r0, [r6, #1] - cmp r5, r0 - blo _081B5A4C -_081B5A84: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B5A8C: .4byte gUnknown_20243E8 - thumb_func_end sub_081B59EC - - thumb_func_start sub_081B5A90 -sub_081B5A90: @ 0x081B5A90 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - adds r6, r0, #0 - mov sb, r1 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov r0, sb - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldr r0, _081B5B08 - mov r8, r0 - lsls r0, r6, #4 - adds r0, r0, r6 - lsls r0, r0, #2 - add r0, r8 - adds r0, #0x43 - ldrb r3, [r0] - ldr r0, _081B5B0C - subs r3, #1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r1, #0xfa - movs r2, #0xaa - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - mov r0, r8 - adds r5, r4, r0 - movs r0, #4 - strh r0, [r5, #0x24] - movs r0, #0xa - strh r0, [r5, #0x26] - movs r0, #0x1c - add r8, r0 - add r4, r8 - ldr r0, _081B5B10 - str r0, [r4] - strh r6, [r5, #0x3c] - adds r0, r5, #0 - mov r1, sb - bl StartSpriteAnim - ldr r1, [r4] - adds r0, r5, #0 - bl _call_via_r1 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081B5B08: .4byte gUnknown_20205AC -_081B5B0C: .4byte gUnknown_85E1778 -_081B5B10: .4byte SpriteCB_HeldItem - thumb_func_end sub_081B5A90 - - thumb_func_start SpriteCB_HeldItem -SpriteCB_HeldItem: @ 0x081B5B14 - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x3c] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _081B5B44 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, r0, r2 - adds r0, r2, #0 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - bge _081B5B48 - adds r0, r4, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - b _081B5B66 - .align 2, 0 -_081B5B44: .4byte gUnknown_20205AC -_081B5B48: - adds r3, r4, #0 - adds r3, #0x3e - ldrb r1, [r3] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3] - ldrh r0, [r2, #0x24] - ldrh r1, [r2, #0x20] - adds r0, r0, r1 - strh r0, [r4, #0x20] - ldrh r0, [r2, #0x26] - ldrh r2, [r2, #0x22] - adds r0, r0, r2 - strh r0, [r4, #0x22] -_081B5B66: - pop {r4} - pop {r0} - bx r0 - thumb_func_end SpriteCB_HeldItem - - thumb_func_start party_menu_pokeball_object -party_menu_pokeball_object: @ 0x081B5B6C - push {r4, lr} - adds r4, r1, #0 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _081B5B8A - ldr r0, _081B5B90 - ldr r2, [r4, #4] - ldrb r1, [r2, #6] - ldrb r2, [r2, #7] - movs r3, #8 - bl CreateSprite - strb r0, [r4, #0xb] -_081B5B8A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B5B90: .4byte gUnknown_85E17C0 - thumb_func_end party_menu_pokeball_object - - thumb_func_start sub_081B5B94 -sub_081B5B94: @ 0x081B5B94 - push {r4, lr} - adds r4, r1, #0 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _081B5BC4 - ldr r0, _081B5BCC - ldr r2, [r4, #4] - ldrb r1, [r2, #6] - ldrb r2, [r2, #7] - movs r3, #8 - bl CreateSprite - strb r0, [r4, #0xb] - ldr r2, _081B5BD0 - ldrb r0, [r4, #0xb] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r2, [r1, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #5] -_081B5BC4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B5BCC: .4byte gUnknown_85E17C0 -_081B5BD0: .4byte gUnknown_20205AC - thumb_func_end sub_081B5B94 - - thumb_func_start sub_081B5BD4 -sub_081B5BD4: @ 0x081B5BD4 - push {lr} - adds r3, r0, #0 - adds r2, r1, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r0, _081B5C0C - adds r1, r3, #0 - movs r3, #8 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _081B5C10 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r3, [r1, #5] - movs r2, #0xd - rsbs r2, r2, #0 - ands r2, r3 - movs r3, #8 - orrs r2, r3 - strb r2, [r1, #5] - pop {r1} - bx r1 - .align 2, 0 -_081B5C0C: .4byte gUnknown_85E17C0 -_081B5C10: .4byte gUnknown_20205AC - thumb_func_end sub_081B5BD4 - - thumb_func_start sub_081B5C14 -sub_081B5C14: @ 0x081B5C14 - push {lr} - adds r3, r0, #0 - adds r2, r1, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r0, _081B5C34 - adds r1, r3, #0 - movs r3, #8 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_081B5C34: .4byte gUnknown_85E1830 - thumb_func_end sub_081B5C14 - - thumb_func_start sub_081B5C38 -sub_081B5C38: @ 0x081B5C38 - push {lr} - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _081B5C58 - adds r0, r0, r2 - bl StartSpriteAnim - pop {r0} - bx r0 - .align 2, 0 -_081B5C58: .4byte gUnknown_20205AC - thumb_func_end sub_081B5C38 - - thumb_func_start sub_081B5C5C -sub_081B5C5C: @ 0x081B5C5C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - cmp r6, #0 - bne _081B5CA0 - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _081B5C9C - mov r8, r0 - add r4, r8 - adds r0, r4, #0 - movs r1, #2 - bl StartSpriteAnim - lsls r5, r7, #4 - adds r5, r5, r7 - lsls r5, r5, #2 - add r5, r8 - adds r0, r5, #0 - movs r1, #4 - bl StartSpriteAnim - strh r6, [r4, #0x26] - strh r6, [r5, #0x26] - b _081B5CCC - .align 2, 0 -_081B5C9C: .4byte gUnknown_20205AC -_081B5CA0: - lsls r5, r0, #4 - adds r5, r5, r0 - lsls r5, r5, #2 - ldr r0, _081B5CD8 - mov r8, r0 - add r5, r8 - adds r0, r5, #0 - movs r1, #3 - bl StartSpriteAnim - lsls r4, r7, #4 - adds r4, r4, r7 - lsls r4, r4, #2 - add r4, r8 - adds r0, r4, #0 - movs r1, #5 - bl StartSpriteAnim - ldr r0, _081B5CDC - strh r0, [r5, #0x26] - movs r0, #4 - strh r0, [r4, #0x26] -_081B5CCC: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B5CD8: .4byte gUnknown_20205AC -_081B5CDC: .4byte 0x0000FFFC - thumb_func_end sub_081B5C5C - - thumb_func_start LoadPartyMenuPokeballGfx -LoadPartyMenuPokeballGfx: @ 0x081B5CE0 - push {lr} - ldr r0, _081B5CF8 - bl LoadCompressedSpriteSheet - ldr r0, _081B5CFC - bl LoadCompressedSpriteSheet - ldr r0, _081B5D00 - bl LoadCompressedSpritePalette - pop {r0} - bx r0 - .align 2, 0 -_081B5CF8: .4byte gUnknown_85E17B0 -_081B5CFC: .4byte gUnknown_85E1828 -_081B5D00: .4byte gUnknown_85E17B8 - thumb_func_end LoadPartyMenuPokeballGfx - - thumb_func_start party_menu_status_condition_object -party_menu_status_condition_object: @ 0x081B5D04 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _081B5D2C - ldr r0, _081B5D34 - ldr r2, [r4, #4] - ldrb r1, [r2, #4] - ldrb r2, [r2, #5] - movs r3, #0 - bl CreateSprite - strb r0, [r4, #0xc] - adds r0, r5, #0 - adds r1, r4, #0 - bl party_menu_get_status_condition_and_update_object -_081B5D2C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B5D34: .4byte gUnknown_85E18C0 - thumb_func_end party_menu_status_condition_object - - thumb_func_start party_menu_link_mon_status_condition_object -party_menu_link_mon_status_condition_object: @ 0x081B5D38 - push {r4, r5, lr} - adds r4, r2, #0 - lsls r0, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - cmp r0, #0 - beq _081B5D74 - ldr r0, _081B5D7C - ldr r2, [r4, #4] - ldrb r1, [r2, #4] - ldrb r2, [r2, #5] - movs r3, #0 - bl CreateSprite - strb r0, [r4, #0xc] - adds r0, r5, #0 - adds r1, r4, #0 - bl party_menu_update_status_condition_object - ldr r2, _081B5D80 - ldrb r0, [r4, #0xc] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r2, [r1, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #5] -_081B5D74: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B5D7C: .4byte gUnknown_85E18C0 -_081B5D80: .4byte gUnknown_20205AC - thumb_func_end party_menu_link_mon_status_condition_object - - thumb_func_start party_menu_get_status_condition_and_update_object -party_menu_get_status_condition_and_update_object: @ 0x081B5D84 - push {r4, lr} - adds r4, r1, #0 - bl GetMonAilment - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r4, #0 - bl party_menu_update_status_condition_object - pop {r4} - pop {r0} - bx r0 - thumb_func_end party_menu_get_status_condition_and_update_object - - thumb_func_start party_menu_update_status_condition_object -party_menu_update_status_condition_object: @ 0x081B5D9C - push {r4, r5, lr} - adds r5, r1, #0 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - beq _081B5DAC - cmp r2, #6 - bne _081B5DC8 -_081B5DAC: - ldr r2, _081B5DC4 - ldrb r1, [r5, #0xc] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - b _081B5DF2 - .align 2, 0 -_081B5DC4: .4byte gUnknown_20205AC -_081B5DC8: - ldrb r1, [r5, #0xc] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _081B5DFC - adds r0, r0, r4 - subs r1, r2, #1 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl StartSpriteAnim - ldrb r1, [r5, #0xc] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x3e - ldrb r2, [r0] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r2 -_081B5DF2: - strb r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B5DFC: .4byte gUnknown_20205AC - thumb_func_end party_menu_update_status_condition_object - - thumb_func_start LoadPartyMenuAilmentGfx -LoadPartyMenuAilmentGfx: @ 0x081B5E00 - push {lr} - ldr r0, _081B5E14 - bl LoadCompressedSpriteSheet - ldr r0, _081B5E18 - bl LoadCompressedSpritePalette - pop {r0} - bx r0 - .align 2, 0 -_081B5E14: .4byte gUnknown_85E18B0 -_081B5E18: .4byte gUnknown_85E18B8 - thumb_func_end LoadPartyMenuAilmentGfx - - thumb_func_start sub_081B5E1C -sub_081B5E1C: @ 0x081B5E1C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - ldr r0, _081B5E44 - mov r8, r0 - ldr r0, _081B5E48 - ldr r1, _081B5E4C - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081B5E5C - movs r7, #1 - bl sub_081B8624 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - b _081B5E60 - .align 2, 0 -_081B5E44: .4byte c2_815ABFC -_081B5E48: .4byte gUnknown_3002360 -_081B5E4C: .4byte 0x00000439 -_081B5E50: - ldr r0, _081B5E58 - strb r5, [r0, #9] - b _081B5EA4 - .align 2, 0 -_081B5E58: .4byte gUnknown_203CB94 -_081B5E5C: - movs r7, #0 - movs r6, #0 -_081B5E60: - ldr r4, _081B5EAC - ldrh r0, [r4] - bl GetItemEffectType - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xa - bne _081B5EBC - ldr r1, _081B5EB0 - movs r0, #0 - strb r0, [r1, #9] - movs r5, #0 -_081B5E78: - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _081B5EB4 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _081B5E9A - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _081B5E50 -_081B5E9A: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #5 - bls _081B5E78 -_081B5EA4: - ldr r0, _081B5EB8 - movs r1, #0x7f - b _081B5ED0 - .align 2, 0 -_081B5EAC: .4byte gUnknown_203CB48 -_081B5EB0: .4byte gUnknown_203CB94 -_081B5EB4: .4byte gUnknown_2024190 -_081B5EB8: .4byte sub_081B5F20 -_081B5EBC: - ldrh r0, [r4] - bl GetPocketByItemId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #5 - cmp r0, #3 - bne _081B5ECE - movs r1, #4 -_081B5ECE: - ldr r0, _081B5EF0 -_081B5ED0: - str r1, [sp] - str r0, [sp, #4] - mov r0, r8 - str r0, [sp, #8] - adds r0, r7, #0 - adds r1, r6, #0 - movs r2, #3 - movs r3, #1 - bl InitPartyMenu - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B5EF0: .4byte sub_081B1040 - thumb_func_end sub_081B5E1C - - thumb_func_start c2_815ABFC -c2_815ABFC: @ 0x081B5EF4 - push {lr} - bl InBattlePyramid - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081B5F0C - movs r0, #0xc - movs r1, #5 - movs r2, #0 - bl GoToBagMenu - b _081B5F16 -_081B5F0C: - ldr r0, _081B5F1C - ldr r1, [r0] - movs r0, #4 - bl sub_081C47A0 -_081B5F16: - pop {r0} - bx r0 - .align 2, 0 -_081B5F1C: .4byte gUnknown_203CBFC - thumb_func_end c2_815ABFC - - thumb_func_start sub_081B5F20 -sub_081B5F20: @ 0x081B5F20 - push {lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r0, _081B5F58 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081B5F52 - ldr r0, _081B5F5C - ldrb r1, [r0, #8] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - bne _081B5F46 - ldr r0, _081B5F60 - ldr r1, [r0] - ldr r0, _081B5F64 - str r0, [r1, #4] -_081B5F46: - ldr r0, _081B5F68 - ldr r1, _081B5F6C - ldr r2, [r0] - adds r0, r3, #0 - bl _call_via_r2 -_081B5F52: - pop {r0} - bx r0 - .align 2, 0 -_081B5F58: .4byte gUnknown_2037C74 -_081B5F5C: .4byte gUnknown_203CB94 -_081B5F60: .4byte gUnknown_203CB90 -_081B5F64: .4byte sub_081B8DE0 -_081B5F68: .4byte gUnknown_3006068 -_081B5F6C: .4byte sub_081B6434 - thumb_func_end sub_081B5F20 - - thumb_func_start IsHPRecoveryItem -IsHPRecoveryItem: @ 0x081B5F70 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xaf - bne _081B5F8C - ldr r0, _081B5F84 - ldr r0, [r0] - ldr r1, _081B5F88 - adds r0, r0, r1 - b _081B5F96 - .align 2, 0 -_081B5F84: .4byte gUnknown_3005AEC -_081B5F88: .4byte 0x00003214 -_081B5F8C: - ldr r1, _081B5FA4 - subs r0, #0xd - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] -_081B5F96: - ldrb r1, [r0, #4] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _081B5FA8 - movs r0, #0 - b _081B5FAA - .align 2, 0 -_081B5FA4: .4byte gUnknown_82EEF14 -_081B5FA8: - movs r0, #1 -_081B5FAA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsHPRecoveryItem - - thumb_func_start GetMedicineItemEffectMessage -GetMedicineItemEffectMessage: @ 0x081B5FB0 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl GetItemEffectType - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, #3 - cmp r0, #0x12 - bls _081B5FC6 - b _081B615C -_081B5FC6: - lsls r0, r0, #2 - ldr r1, _081B5FD0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081B5FD0: .4byte _081B5FD4 -_081B5FD4: @ jump table - .4byte _081B6020 @ case 0 - .4byte _081B6034 @ case 1 - .4byte _081B6048 @ case 2 - .4byte _081B605C @ case 3 - .4byte _081B6070 @ case 4 - .4byte _081B6084 @ case 5 - .4byte _081B6098 @ case 6 - .4byte _081B615C @ case 7 - .4byte _081B60AC @ case 8 - .4byte _081B60D0 @ case 9 - .4byte _081B60C0 @ case 10 - .4byte _081B6100 @ case 11 - .4byte _081B6110 @ case 12 - .4byte _081B60F0 @ case 13 - .4byte _081B60E0 @ case 14 - .4byte _081B615C @ case 15 - .4byte _081B6134 @ case 16 - .4byte _081B6134 @ case 17 - .4byte _081B6148 @ case 18 -_081B6020: - ldr r0, _081B602C - ldr r1, _081B6030 - bl StringExpandPlaceholders - b _081B6164 - .align 2, 0 -_081B602C: .4byte gUnknown_2021C7C -_081B6030: .4byte gUnknown_85C9EA6 -_081B6034: - ldr r0, _081B6040 - ldr r1, _081B6044 - bl StringExpandPlaceholders - b _081B6164 - .align 2, 0 -_081B6040: .4byte gUnknown_2021C7C -_081B6044: .4byte gUnknown_85C9ED4 -_081B6048: - ldr r0, _081B6054 - ldr r1, _081B6058 - bl StringExpandPlaceholders - b _081B6164 - .align 2, 0 -_081B6054: .4byte gUnknown_2021C7C -_081B6058: .4byte gUnknown_85C9EE2 -_081B605C: - ldr r0, _081B6068 - ldr r1, _081B606C - bl StringExpandPlaceholders - b _081B6164 - .align 2, 0 -_081B6068: .4byte gUnknown_2021C7C -_081B606C: .4byte gUnknown_85C9EF2 -_081B6070: - ldr r0, _081B607C - ldr r1, _081B6080 - bl StringExpandPlaceholders - b _081B6164 - .align 2, 0 -_081B607C: .4byte gUnknown_2021C7C -_081B6080: .4byte gUnknown_85C9EC0 -_081B6084: - ldr r0, _081B6090 - ldr r1, _081B6094 - bl StringExpandPlaceholders - b _081B6164 - .align 2, 0 -_081B6090: .4byte gUnknown_2021C7C -_081B6094: .4byte gUnknown_85C9FE7 -_081B6098: - ldr r0, _081B60A4 - ldr r1, _081B60A8 - bl StringExpandPlaceholders - b _081B6164 - .align 2, 0 -_081B60A4: .4byte gUnknown_2021C7C -_081B60A8: .4byte gUnknown_85C9FF7 -_081B60AC: - ldr r0, _081B60B8 - ldr r1, _081B60BC - bl StringExpandPlaceholders - b _081B6164 - .align 2, 0 -_081B60B8: .4byte gUnknown_2021C7C -_081B60BC: .4byte gUnknown_85C9F2B -_081B60C0: - ldr r0, _081B60C8 - ldr r1, _081B60CC - b _081B6114 - .align 2, 0 -_081B60C8: .4byte gUnknown_2021C54 -_081B60CC: .4byte gUnknown_85C9AE7 -_081B60D0: - ldr r0, _081B60D8 - ldr r1, _081B60DC - b _081B6114 - .align 2, 0 -_081B60D8: .4byte gUnknown_2021C54 -_081B60DC: .4byte gUnknown_85CA36F -_081B60E0: - ldr r0, _081B60E8 - ldr r1, _081B60EC - b _081B6114 - .align 2, 0 -_081B60E8: .4byte gUnknown_2021C54 -_081B60EC: .4byte gUnknown_85CA374 -_081B60F0: - ldr r0, _081B60F8 - ldr r1, _081B60FC - b _081B6114 - .align 2, 0 -_081B60F8: .4byte gUnknown_2021C54 -_081B60FC: .4byte gUnknown_85CA383 -_081B6100: - ldr r0, _081B6108 - ldr r1, _081B610C - b _081B6114 - .align 2, 0 -_081B6108: .4byte gUnknown_2021C54 -_081B610C: .4byte gUnknown_85C9AED -_081B6110: - ldr r0, _081B6124 - ldr r1, _081B6128 -_081B6114: - bl StringCopy - ldr r0, _081B612C - ldr r1, _081B6130 - bl StringExpandPlaceholders - b _081B6164 - .align 2, 0 -_081B6124: .4byte gUnknown_2021C54 -_081B6128: .4byte gUnknown_85C9AF2 -_081B612C: .4byte gUnknown_2021C7C -_081B6130: .4byte gUnknown_85C9F5F -_081B6134: - ldr r0, _081B6140 - ldr r1, _081B6144 - bl StringExpandPlaceholders - b _081B6164 - .align 2, 0 -_081B6140: .4byte gUnknown_2021C7C -_081B6144: .4byte gUnknown_85C9F3B -_081B6148: - ldr r0, _081B6154 - ldr r1, _081B6158 - bl StringExpandPlaceholders - b _081B6164 - .align 2, 0 -_081B6154: .4byte gUnknown_2021C7C -_081B6158: .4byte gUnknown_85C9F06 -_081B615C: - ldr r0, _081B6168 - ldr r1, _081B616C - bl StringExpandPlaceholders -_081B6164: - pop {r0} - bx r0 - .align 2, 0 -_081B6168: .4byte gUnknown_2021C7C -_081B616C: .4byte gUnknown_85C9AF7 - thumb_func_end GetMedicineItemEffectMessage - - thumb_func_start UsingHPEVItemOnShedinja -UsingHPEVItemOnShedinja: @ 0x081B6170 - push {r4, lr} - adds r4, r0, #0 - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - bl GetItemEffectType - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xd - bne _081B619C - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - ldr r1, _081B6198 - cmp r0, r1 - bne _081B619C - movs r0, #0 - b _081B619E - .align 2, 0 -_081B6198: .4byte 0x0000012F -_081B619C: - movs r0, #1 -_081B619E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end UsingHPEVItemOnShedinja - - thumb_func_start IsItemFlute -IsItemFlute: @ 0x081B61A4 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x27 - beq _081B61B6 - cmp r0, #0x29 - beq _081B61B6 - cmp r0, #0x28 - bne _081B61BA -_081B61B6: - movs r0, #1 - b _081B61BC -_081B61BA: - movs r0, #0 -_081B61BC: - pop {r1} - bx r1 - thumb_func_end IsItemFlute - - thumb_func_start ExecuteTableBasedItemEffect__ -ExecuteTableBasedItemEffect__: @ 0x081B61C0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - ldr r0, _081B61EC - ldr r1, _081B61F0 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _081B61F8 - movs r0, #0x64 - muls r0, r3, r0 - ldr r1, _081B61F4 - adds r0, r0, r1 - adds r1, r5, #0 - adds r2, r3, #0 - b _081B6212 - .align 2, 0 -_081B61EC: .4byte gUnknown_3002360 -_081B61F0: .4byte 0x00000439 -_081B61F4: .4byte gUnknown_2024190 -_081B61F8: - movs r0, #0x64 - adds r4, r3, #0 - muls r4, r0, r4 - ldr r0, _081B6224 - adds r4, r4, r0 - adds r0, r3, #0 - bl sub_081B8BD8 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 -_081B6212: - adds r3, r6, #0 - bl ExecuteTableBasedItemEffect - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_081B6224: .4byte gUnknown_2024190 - thumb_func_end ExecuteTableBasedItemEffect__ - - thumb_func_start ItemUseCB_Medicine -ItemUseCB_Medicine: @ 0x081B6228 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - str r1, [sp, #4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - movs r0, #0 - mov sl, r0 - ldr r0, _081B62B0 - movs r1, #9 - ldrsb r1, [r0, r1] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _081B62B4 - adds r5, r1, r0 - ldr r0, _081B62B8 - ldrh r6, [r0] - adds r0, r5, #0 - adds r1, r6, #0 - bl UsingHPEVItemOnShedinja - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081B62A0 - adds r0, r6, #0 - bl IsHPRecoveryItem - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - cmp r0, #1 - bne _081B628E - adds r0, r5, #0 - movs r1, #0x39 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sl, r0 - adds r0, r5, #0 - movs r1, #0x3a - bl GetMonData - cmp sl, r0 - bne _081B628E - movs r1, #0 - mov r8, r1 -_081B628E: - ldr r4, _081B62B0 - ldrb r0, [r4, #9] - adds r1, r6, #0 - movs r2, #0 - bl ExecuteTableBasedItemEffect__ - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081B62C4 -_081B62A0: - ldr r1, _081B62BC - movs r0, #0 - strb r0, [r1] - movs r0, #5 - bl sub_080A306C - ldr r0, _081B62C0 - b _081B6394 - .align 2, 0 -_081B62B0: .4byte gUnknown_203CB94 -_081B62B4: .4byte gUnknown_2024190 -_081B62B8: .4byte gUnknown_203CB48 -_081B62BC: .4byte gUnknown_203CBB4 -_081B62C0: .4byte gUnknown_85C9AF7 -_081B62C4: - ldr r1, _081B62EC - movs r0, #1 - strb r0, [r1] - adds r0, r6, #0 - bl IsItemFlute - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081B62F0 - movs r0, #1 - bl sub_080A306C - ldrb r0, [r4, #0xb] - cmp r0, #0xe - beq _081B62F6 - adds r0, r6, #0 - movs r1, #1 - bl RemoveBagItem - b _081B62F6 - .align 2, 0 -_081B62EC: .4byte gUnknown_203CBB4 -_081B62F0: - movs r0, #0x75 - bl sub_080A306C -_081B62F6: - ldr r4, _081B6374 - ldr r7, _081B6378 - movs r0, #9 - ldrsb r0, [r7, r0] - lsls r0, r0, #4 - ldr r1, [r4] - adds r1, r1, r0 - adds r0, r5, #0 - bl party_menu_get_status_condition_and_update_object - ldr r2, _081B637C - movs r0, #9 - ldrsb r0, [r7, r0] - ldr r1, [r4] - lsls r0, r0, #4 - adds r3, r0, r1 - ldrb r1, [r3, #0xc] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - bge _081B6334 - adds r0, r5, #0 - adds r1, r3, #0 - movs r2, #1 - bl DisplayPartyPokemonLevelCheck -_081B6334: - mov r2, r8 - cmp r2, #1 - bne _081B6384 - mov r0, sl - cmp r0, #0 - bne _081B6348 - ldrb r0, [r7, #9] - movs r1, #1 - bl sub_081B0C9C -_081B6348: - adds r0, r5, #0 - movs r1, #0x39 - bl GetMonData - adds r3, r0, #0 - mov r1, sl - subs r3, r3, r1 - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - ldrb r1, [r7, #9] - ldr r0, _081B6380 - str r0, [sp] - mov r0, sb - movs r2, #1 - bl sub_081B1BE8 - mov r0, sb - movs r1, #0 - mov r2, sl - bl sub_081B1C78 - b _081B63B0 - .align 2, 0 -_081B6374: .4byte gUnknown_203CBA8 -_081B6378: .4byte gUnknown_203CB94 -_081B637C: .4byte gUnknown_20205AC -_081B6380: .4byte sub_081B63CC -_081B6384: - ldr r1, _081B63C0 - adds r0, r5, #0 - bl GetMonNickname - adds r0, r6, #0 - bl GetMedicineItemEffectMessage - ldr r0, _081B63C4 -_081B6394: - movs r1, #1 - bl sub_081B182C - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, _081B63C8 - mov r2, sb - lsls r0, r2, #2 - add r0, sb - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, [sp, #4] - str r1, [r0] -_081B63B0: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B63C0: .4byte gUnknown_2021C40 -_081B63C4: .4byte gUnknown_2021C7C -_081B63C8: .4byte gUnknown_3005B60 - thumb_func_end ItemUseCB_Medicine - - thumb_func_start sub_081B63CC -sub_081B63CC: @ 0x081B63CC - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _081B6418 - movs r1, #9 - ldrsb r1, [r0, r1] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081B641C - adds r0, r0, r1 - ldr r1, _081B6420 - bl GetMonNickname - ldr r4, _081B6424 - ldr r1, _081B6428 - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - movs r1, #0 - bl sub_081B182C - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - bl HandleBattleLowHpMusicChange - ldr r1, _081B642C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B6430 - str r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B6418: .4byte gUnknown_203CB94 -_081B641C: .4byte gUnknown_2024190 -_081B6420: .4byte gUnknown_2021C40 -_081B6424: .4byte gUnknown_2021C7C -_081B6428: .4byte gUnknown_85C9E8F -_081B642C: .4byte gUnknown_3005B60 -_081B6430: .4byte sub_081B6434 - thumb_func_end sub_081B63CC - - thumb_func_start sub_081B6434 -sub_081B6434: @ 0x081B6434 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl LoadListMenuArrowsGfx - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B645A - ldr r0, _081B6460 - ldrb r1, [r0] - cmp r1, #0 - bne _081B6454 - ldr r0, _081B6464 - ldr r0, [r0] - str r1, [r0, #4] -_081B6454: - adds r0, r4, #0 - bl sub_081B0F90 -_081B645A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B6460: .4byte gUnknown_203CBB4 -_081B6464: .4byte gUnknown_203CB90 - thumb_func_end sub_081B6434 - - thumb_func_start sub_081B6468 -sub_081B6468: @ 0x081B6468 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - str r1, [sp] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - ldr r4, _081B6500 - movs r1, #9 - ldrsb r1, [r4, r1] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _081B6504 - adds r5, r1, r0 - ldr r0, _081B6508 - ldrh r6, [r0] - adds r0, r6, #0 - bl GetItemEffectType - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - adds r0, r5, #0 - movs r1, #0x20 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #4] - adds r0, r5, #0 - adds r1, r7, #0 - bl ItemEffectToMonEv - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #8] - ldrb r0, [r4, #9] - adds r1, r6, #0 - movs r2, #0 - bl ExecuteTableBasedItemEffect__ - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - movs r1, #0x20 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - adds r0, r5, #0 - adds r1, r7, #0 - bl ItemEffectToMonEv - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - cmp r4, #0 - bne _081B64F0 - ldr r0, [sp, #4] - cmp r0, sb - bne _081B6514 - ldr r1, [sp, #8] - cmp r1, r8 - bne _081B6514 -_081B64F0: - ldr r1, _081B650C - movs r0, #0 - strb r0, [r1] - movs r0, #5 - bl sub_080A306C - ldr r0, _081B6510 - b _081B6582 - .align 2, 0 -_081B6500: .4byte gUnknown_203CB94 -_081B6504: .4byte gUnknown_2024190 -_081B6508: .4byte gUnknown_203CB48 -_081B650C: .4byte gUnknown_203CBB4 -_081B6510: .4byte gUnknown_85C9AF7 -_081B6514: - ldr r1, _081B6550 - movs r0, #1 - strb r0, [r1] - movs r0, #1 - bl sub_080A306C - adds r0, r6, #0 - movs r1, #1 - bl RemoveBagItem - ldr r1, _081B6554 - adds r0, r5, #0 - bl GetMonNickname - ldr r1, _081B6558 - adds r0, r7, #0 - bl ItemEffectToStatString - ldr r2, [sp, #4] - cmp r2, sb - beq _081B6578 - ldr r0, [sp, #8] - cmp r0, r8 - beq _081B6564 - ldr r0, _081B655C - ldr r1, _081B6560 - bl StringExpandPlaceholders - b _081B6580 - .align 2, 0 -_081B6550: .4byte gUnknown_203CBB4 -_081B6554: .4byte gUnknown_2021C40 -_081B6558: .4byte gUnknown_2021C54 -_081B655C: .4byte gUnknown_2021C7C -_081B6560: .4byte gUnknown_85C9F78 -_081B6564: - ldr r0, _081B6570 - ldr r1, _081B6574 - bl StringExpandPlaceholders - b _081B6580 - .align 2, 0 -_081B6570: .4byte gUnknown_2021C7C -_081B6574: .4byte gUnknown_85C9FC1 -_081B6578: - ldr r0, _081B65B0 - ldr r1, _081B65B4 - bl StringExpandPlaceholders -_081B6580: - ldr r0, _081B65B0 -_081B6582: - movs r1, #1 - bl sub_081B182C - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, _081B65B8 - mov r2, sl - lsls r0, r2, #2 - add r0, sl - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, [sp] - str r1, [r0] - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B65B0: .4byte gUnknown_2021C7C -_081B65B4: .4byte gUnknown_85C9F9B -_081B65B8: .4byte gUnknown_3005B60 - thumb_func_end sub_081B6468 - - thumb_func_start ItemEffectToMonEv -ItemEffectToMonEv: @ 0x081B65BC - push {r4, lr} - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r1, #0 - subs r0, #0xc - cmp r0, #5 - bhi _081B6632 - lsls r0, r0, #2 - ldr r1, _081B65D8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081B65D8: .4byte _081B65DC -_081B65DC: @ jump table - .4byte _081B660C @ case 0 - .4byte _081B65F4 @ case 1 - .4byte _081B661E @ case 2 - .4byte _081B6624 @ case 3 - .4byte _081B6618 @ case 4 - .4byte _081B6612 @ case 5 -_081B65F4: - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - ldr r1, _081B6608 - cmp r0, r1 - beq _081B6632 - adds r0, r4, #0 - movs r1, #0x1a - b _081B6628 - .align 2, 0 -_081B6608: .4byte 0x0000012F -_081B660C: - adds r0, r4, #0 - movs r1, #0x1b - b _081B6628 -_081B6612: - adds r0, r4, #0 - movs r1, #0x1c - b _081B6628 -_081B6618: - adds r0, r4, #0 - movs r1, #0x1d - b _081B6628 -_081B661E: - adds r0, r4, #0 - movs r1, #0x1e - b _081B6628 -_081B6624: - adds r0, r4, #0 - movs r1, #0x1f -_081B6628: - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b _081B6634 -_081B6632: - movs r0, #0 -_081B6634: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end ItemEffectToMonEv - - thumb_func_start ItemEffectToStatString -ItemEffectToStatString: @ 0x081B663C - push {lr} - adds r2, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, #0xc - cmp r0, #5 - bhi _081B66A8 - lsls r0, r0, #2 - ldr r1, _081B6654 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081B6654: .4byte _081B6658 -_081B6658: @ jump table - .4byte _081B6678 @ case 0 - .4byte _081B6670 @ case 1 - .4byte _081B6690 @ case 2 - .4byte _081B66A0 @ case 3 - .4byte _081B6688 @ case 4 - .4byte _081B6680 @ case 5 -_081B6670: - ldr r1, _081B6674 - b _081B6692 - .align 2, 0 -_081B6674: .4byte gUnknown_85C9AE7 -_081B6678: - ldr r1, _081B667C - b _081B6692 - .align 2, 0 -_081B667C: .4byte gUnknown_85CA36F -_081B6680: - ldr r1, _081B6684 - b _081B6692 - .align 2, 0 -_081B6684: .4byte gUnknown_85CA374 -_081B6688: - ldr r1, _081B668C - b _081B6692 - .align 2, 0 -_081B668C: .4byte gUnknown_85CA383 -_081B6690: - ldr r1, _081B669C -_081B6692: - adds r0, r2, #0 - bl StringCopy - b _081B66A8 - .align 2, 0 -_081B669C: .4byte gUnknown_85C9AED -_081B66A0: - ldr r1, _081B66AC - adds r0, r2, #0 - bl StringCopy -_081B66A8: - pop {r0} - bx r0 - .align 2, 0 -_081B66AC: .4byte gUnknown_85C9AF2 - thumb_func_end ItemEffectToStatString - - thumb_func_start sub_081B66B0 -sub_081B66B0: @ 0x081B66B0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - mov sl, r0 - movs r1, #1 - mov r8, r1 - movs r0, #3 - bl sub_081B2E34 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - movs r6, #0 - movs r0, #0x64 - adds r2, r4, #0 - muls r2, r0, r2 - str r2, [sp, #0xc] -_081B66E0: - ldr r0, _081B6774 - adds r1, r6, #0 - adds r1, #0xd - ldr r2, [sp, #0xc] - adds r0, r2, r0 - bl GetMonData - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - mov r0, r8 - movs r1, #0 - bl GetFontAttribute - adds r4, r0, #0 - mov r0, r8 - movs r1, #2 - bl GetFontAttribute - adds r4, r4, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r2, r5, #3 - ldr r0, _081B6778 - adds r2, r2, r0 - lsls r0, r6, #4 - adds r0, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r7, #0 - str r7, [sp, #8] - mov r0, sb - mov r1, r8 - adds r3, r4, #0 - bl AddTextPrinterParameterized - cmp r5, #0 - beq _081B673C - mov r0, sl - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 -_081B673C: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #3 - bls _081B66E0 - movs r0, #0x10 - str r0, [sp] - mov r0, sl - str r0, [sp, #4] - str r7, [sp, #8] - mov r0, sb - mov r1, r8 - movs r2, #0 - movs r3, #2 - bl sub_081984B0 - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B6774: .4byte gUnknown_2024190 -_081B6778: .4byte gUnknown_82EACC4 - thumb_func_end sub_081B66B0 - - thumb_func_start ether_effect_related_3 -ether_effect_related_3: @ 0x081B677C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, r4, #0 - bl Menu_ProcessInput - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - movs r0, #2 - rsbs r0, r0, #0 - cmp r1, r0 - beq _081B67B8 - adds r0, #1 - cmp r1, r0 - bne _081B67A8 - movs r0, #5 - bl sub_080A306C - adds r0, r4, #0 - bl sub_081B687C - b _081B67B8 -_081B67A8: - ldr r0, _081B67C0 - ldr r0, [r0] - adds r0, #0xd - bl sub_081B2CB0 - adds r0, r5, #0 - bl ether_effect_related_2 -_081B67B8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B67C0: .4byte gUnknown_203CB90 - thumb_func_end ether_effect_related_3 - - thumb_func_start dp05_ether -dp05_ether: @ 0x081B67C4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _081B67DC - ldrh r0, [r0] - cmp r0, #0xaf - bne _081B67E8 - ldr r0, _081B67E0 - ldr r0, [r0] - ldr r1, _081B67E4 - adds r0, r0, r1 - b _081B67F2 - .align 2, 0 -_081B67DC: .4byte gUnknown_203CB48 -_081B67E0: .4byte gUnknown_3005AEC -_081B67E4: .4byte 0x00003214 -_081B67E8: - ldr r1, _081B680C - subs r0, #0xd - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] -_081B67F2: - ldrb r1, [r0, #4] - movs r0, #0x10 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _081B6814 - ldr r0, _081B6810 - strh r1, [r0, #0xe] - adds r0, r4, #0 - bl sub_081B68B4 - b _081B6836 - .align 2, 0 -_081B680C: .4byte gUnknown_82EEF14 -_081B6810: .4byte gUnknown_203CB94 -_081B6814: - movs r0, #5 - bl sub_080A306C - movs r0, #0x16 - bl display_pokemon_menu_message - ldr r0, _081B683C - ldrb r0, [r0, #9] - bl sub_081B66B0 - ldr r1, _081B6840 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B6844 - str r1, [r0] -_081B6836: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B683C: .4byte gUnknown_203CB94 -_081B6840: .4byte gUnknown_3005B60 -_081B6844: .4byte ether_effect_related_3 - thumb_func_end dp05_ether - - thumb_func_start ether_effect_related_2 -ether_effect_related_2: @ 0x081B6848 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081B6874 - ldr r0, [r0] - adds r0, #0xc - bl sub_081B2CB0 - bl Menu_GetCursorPos - ldr r1, _081B6878 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r1, #0xe] - adds r0, r4, #0 - bl sub_081B68B4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B6874: .4byte gUnknown_203CB90 -_081B6878: .4byte gUnknown_203CB94 - thumb_func_end ether_effect_related_2 - - thumb_func_start sub_081B687C -sub_081B687C: @ 0x081B687C - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _081B68A8 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r0, _081B68AC - str r0, [r1] - ldr r0, _081B68B0 - ldr r0, [r0] - movs r1, #0 - str r1, [r0, #4] - adds r0, #0xc - bl sub_081B2CB0 - movs r0, #5 - bl display_pokemon_menu_message - pop {r0} - bx r0 - .align 2, 0 -_081B68A8: .4byte gUnknown_3005B60 -_081B68AC: .4byte sub_081B1040 -_081B68B0: .4byte gUnknown_203CB90 - thumb_func_end sub_081B687C - - thumb_func_start sub_081B68B4 -sub_081B68B4: @ 0x081B68B4 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r7, _081B68E4 - ldr r0, _081B68E8 - ldrh r5, [r0] - adds r4, r7, #0 - subs r4, #0xe - ldrb r0, [r4, #9] - ldrb r2, [r7] - adds r1, r5, #0 - bl ExecuteTableBasedItemEffect__ - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081B68F4 - ldr r1, _081B68EC - movs r0, #0 - strb r0, [r1] - movs r0, #5 - bl sub_080A306C - ldr r0, _081B68F0 - b _081B693A - .align 2, 0 -_081B68E4: .4byte gUnknown_203CBA2 -_081B68E8: .4byte gUnknown_203CB48 -_081B68EC: .4byte gUnknown_203CBB4 -_081B68F0: .4byte gUnknown_85C9AF7 -_081B68F4: - ldr r1, _081B695C - movs r0, #1 - strb r0, [r1] - movs r1, #9 - ldrsb r1, [r4, r1] - movs r0, #0x64 - adds r4, r1, #0 - muls r4, r0, r4 - ldr r0, _081B6960 - adds r4, r4, r0 - movs r0, #1 - bl sub_080A306C - adds r0, r5, #0 - movs r1, #1 - bl RemoveBagItem - movs r0, #0 - ldrsh r1, [r7, r0] - adds r1, #0xd - adds r0, r4, #0 - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x10 - ldr r0, _081B6964 - lsrs r1, r1, #0xd - ldr r2, _081B6968 - adds r1, r1, r2 - bl StringCopy - adds r0, r5, #0 - bl GetMedicineItemEffectMessage - ldr r0, _081B696C -_081B693A: - movs r1, #1 - bl sub_081B182C - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, _081B6970 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B6974 - str r1, [r0] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B695C: .4byte gUnknown_203CBB4 -_081B6960: .4byte gUnknown_2024190 -_081B6964: .4byte gUnknown_2021C40 -_081B6968: .4byte gUnknown_82EACC4 -_081B696C: .4byte gUnknown_2021C7C -_081B6970: .4byte gUnknown_3005B60 -_081B6974: .4byte sub_081B6434 - thumb_func_end sub_081B68B4 - - thumb_func_start dp05_pp_up -dp05_pp_up: @ 0x081B6978 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #5 - bl sub_080A306C - movs r0, #0x17 - bl display_pokemon_menu_message - ldr r0, _081B69A8 - ldrb r0, [r0, #9] - bl sub_081B66B0 - ldr r1, _081B69AC - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B69B0 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B69A8: .4byte gUnknown_203CB94 -_081B69AC: .4byte gUnknown_3005B60 -_081B69B0: .4byte ether_effect_related_3 - thumb_func_end dp05_pp_up - - thumb_func_start ItemIdToBattleMoveId -ItemIdToBattleMoveId: @ 0x081B69B4 - lsls r0, r0, #0x10 - ldr r1, _081B69C4 - adds r0, r0, r1 - ldr r1, _081B69C8 - lsrs r0, r0, #0xf - adds r0, r0, r1 - ldrh r0, [r0] - bx lr - .align 2, 0 -_081B69C4: .4byte 0xFEDF0000 -_081B69C8: .4byte gUnknown_85E18F8 - thumb_func_end ItemIdToBattleMoveId - - thumb_func_start IsMoveHm -IsMoveHm: @ 0x081B69CC - push {lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - movs r1, #0 - ldr r3, _081B69E8 -_081B69D6: - adds r0, r1, #0 - adds r0, #0x32 - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r0, [r0] - cmp r0, r2 - bne _081B69EC - movs r0, #1 - b _081B69F8 - .align 2, 0 -_081B69E8: .4byte gUnknown_85E18F8 -_081B69EC: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #7 - bls _081B69D6 - movs r0, #0 -_081B69F8: - pop {r1} - bx r1 - thumb_func_end IsMoveHm - - thumb_func_start MonKnowsMove -MonKnowsMove: @ 0x081B69FC - push {r4, r5, r6, lr} - adds r6, r0, #0 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - movs r4, #0 -_081B6A06: - adds r1, r4, #0 - adds r1, #0xd - adds r0, r6, #0 - bl GetMonData - cmp r0, r5 - bne _081B6A18 - movs r0, #1 - b _081B6A24 -_081B6A18: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _081B6A06 - movs r0, #0 -_081B6A24: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MonKnowsMove - - thumb_func_start sub_081B6A2C -sub_081B6A2C: @ 0x081B6A2C - push {r4, lr} - adds r1, r0, #0 - ldr r4, _081B6A4C - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - movs r1, #1 - bl sub_081B182C - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B6A4C: .4byte gUnknown_2021C7C - thumb_func_end sub_081B6A2C - - thumb_func_start sub_081B6A50 -sub_081B6A50: @ 0x081B6A50 - push {r4, lr} - adds r4, r0, #0 - adds r0, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_081B6A2C - ldr r1, _081B6A74 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B6A78 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B6A74: .4byte gUnknown_3005B60 -_081B6A78: .4byte sub_081B6434 - thumb_func_end sub_081B6A50 - - thumb_func_start sub_081B6A7C -sub_081B6A7C: @ 0x081B6A7C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r0, #5 - bl sub_080A306C - ldr r7, _081B6B00 - movs r1, #9 - ldrsb r1, [r7, r1] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _081B6B04 - adds r5, r1, r0 - movs r0, #0xe - adds r0, r0, r7 - mov r8, r0 - ldr r0, _081B6B08 - ldrh r4, [r0] - ldr r1, _081B6B0C - adds r0, r5, #0 - bl GetMonNickname - adds r0, r4, #0 - bl ItemIdToBattleMoveId - strh r0, [r7, #0xe] - ldr r0, _081B6B10 - movs r2, #0xe - ldrsh r1, [r7, r2] - lsls r1, r1, #3 - ldr r2, _081B6B14 - adds r1, r1, r2 - bl StringCopy - movs r0, #0 - mov r1, r8 - strh r0, [r1, #2] - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - bl CanMonLearnTMTutor - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B6B24 - cmp r0, #2 - beq _081B6B2C - ldrh r1, [r7, #0xe] - adds r0, r5, #0 - bl GiveMoveToMon - lsls r0, r0, #0x10 - ldr r1, _081B6B18 - cmp r0, r1 - beq _081B6B3C - ldr r0, _081B6B1C - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B6B20 - str r0, [r1] - b _081B6B50 - .align 2, 0 -_081B6B00: .4byte gUnknown_203CB94 -_081B6B04: .4byte gUnknown_2024190 -_081B6B08: .4byte gUnknown_203CB48 -_081B6B0C: .4byte gUnknown_2021C40 -_081B6B10: .4byte gUnknown_2021C54 -_081B6B14: .4byte gUnknown_82EACC4 -_081B6B18: .4byte 0xFFFF0000 -_081B6B1C: .4byte gUnknown_3005B60 -_081B6B20: .4byte sub_081B6B68 -_081B6B24: - ldr r1, _081B6B28 - b _081B6B2E - .align 2, 0 -_081B6B28: .4byte gUnknown_85C9D7C -_081B6B2C: - ldr r1, _081B6B38 -_081B6B2E: - adds r0, r6, #0 - bl sub_081B6A50 - b _081B6B50 - .align 2, 0 -_081B6B38: .4byte gUnknown_85C9E79 -_081B6B3C: - ldr r0, _081B6B5C - bl sub_081B6A2C - ldr r1, _081B6B60 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B6B64 - str r1, [r0] -_081B6B50: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B6B5C: .4byte gUnknown_85C9DA1 -_081B6B60: .4byte gUnknown_3005B60 -_081B6B64: .4byte sub_081B6CA4 - thumb_func_end sub_081B6A7C - - thumb_func_start sub_081B6B68 -sub_081B6B68: @ 0x081B6B68 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r2, _081B6BE8 - movs r1, #9 - ldrsb r1, [r2, r1] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _081B6BEC - adds r5, r1, r0 - adds r7, r2, #0 - adds r7, #0xe - ldr r0, _081B6BF0 - ldrh r4, [r0] - movs r1, #2 - ldrsh r0, [r7, r1] - cmp r0, #0 - bne _081B6BA4 - adds r0, r5, #0 - movs r1, #4 - bl AdjustFriendship - movs r0, #0xa9 - lsls r0, r0, #1 - cmp r4, r0 - bhi _081B6BA4 - adds r0, r4, #0 - movs r1, #1 - bl RemoveBagItem -_081B6BA4: - ldr r1, _081B6BF4 - adds r0, r5, #0 - bl GetMonNickname - ldr r0, _081B6BF8 - movs r2, #0 - ldrsh r1, [r7, r2] - lsls r1, r1, #3 - ldr r2, _081B6BFC - adds r1, r1, r2 - bl StringCopy - ldr r4, _081B6C00 - ldr r1, _081B6C04 - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - movs r1, #1 - bl sub_081B182C - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, _081B6C08 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B6C0C - str r1, [r0] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B6BE8: .4byte gUnknown_203CB94 -_081B6BEC: .4byte gUnknown_2024190 -_081B6BF0: .4byte gUnknown_203CB48 -_081B6BF4: .4byte gUnknown_2021C40 -_081B6BF8: .4byte gUnknown_2021C54 -_081B6BFC: .4byte gUnknown_82EACC4 -_081B6C00: .4byte gUnknown_2021C7C -_081B6C04: .4byte gUnknown_85C9D68 -_081B6C08: .4byte gUnknown_3005B60 -_081B6C0C: .4byte sub_081B6C10 - thumb_func_end sub_081B6B68 - - thumb_func_start sub_081B6C10 -sub_081B6C10: @ 0x081B6C10 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl LoadListMenuArrowsGfx - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B6C36 - ldr r0, _081B6C3C - bl PlayFanfare - ldr r1, _081B6C40 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B6C44 - str r1, [r0] -_081B6C36: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B6C3C: .4byte 0x0000016F -_081B6C40: .4byte gUnknown_3005B60 -_081B6C44: .4byte sub_081B6C48 - thumb_func_end sub_081B6C10 - - thumb_func_start sub_081B6C48 -sub_081B6C48: @ 0x081B6C48 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, r4, #0 - bl IsFanfareTaskInactive - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081B6C9A - ldr r0, _081B6C84 - ldrh r1, [r0, #0x2e] - movs r2, #1 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _081B6C70 - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081B6C9A -_081B6C70: - ldr r0, _081B6C88 - movs r1, #0x10 - ldrsh r0, [r0, r1] - cmp r0, #1 - bne _081B6C8C - adds r0, r4, #0 - bl sub_081B7458 - b _081B6C9A - .align 2, 0 -_081B6C84: .4byte gUnknown_3002360 -_081B6C88: .4byte gUnknown_203CB94 -_081B6C8C: - cmp r0, #2 - bne _081B6C94 - ldr r0, _081B6CA0 - strh r2, [r0] -_081B6C94: - adds r0, r5, #0 - bl sub_081B0F90 -_081B6C9A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B6CA0: .4byte gUnknown_2037290 - thumb_func_end sub_081B6C48 - - thumb_func_start sub_081B6CA4 -sub_081B6CA4: @ 0x081B6CA4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl LoadListMenuArrowsGfx - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B6CC8 - bl sub_081B2FDC - ldr r0, _081B6CD0 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B6CD4 - str r0, [r1] -_081B6CC8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B6CD0: .4byte gUnknown_3005B60 -_081B6CD4: .4byte sub_081B6CD8 - thumb_func_end sub_081B6CA4 - - thumb_func_start sub_081B6CD8 -sub_081B6CD8: @ 0x081B6CD8 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _081B6CFE - cmp r1, #0 - bgt _081B6CF8 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _081B6D24 - b _081B6D30 -_081B6CF8: - cmp r1, #1 - beq _081B6D2A - b _081B6D30 -_081B6CFE: - ldr r0, _081B6D18 - movs r1, #1 - bl sub_081B182C - ldr r1, _081B6D1C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B6D20 - str r1, [r0] - b _081B6D30 - .align 2, 0 -_081B6D18: .4byte gUnknown_85C9E23 -_081B6D1C: .4byte gUnknown_3005B60 -_081B6D20: .4byte sub_081B6D38 -_081B6D24: - movs r0, #5 - bl sub_080A306C -_081B6D2A: - adds r0, r4, #0 - bl sub_081B6EE0 -_081B6D30: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081B6CD8 - - thumb_func_start sub_081B6D38 -sub_081B6D38: @ 0x081B6D38 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl LoadListMenuArrowsGfx - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B6D58 - ldr r0, _081B6D60 - ldr r1, [r0] - ldr r0, _081B6D64 - str r0, [r1, #4] - adds r0, r4, #0 - bl sub_081B0F90 -_081B6D58: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B6D60: .4byte gUnknown_203CB90 -_081B6D64: .4byte sub_081B6D68 - thumb_func_end sub_081B6D38 - - thumb_func_start sub_081B6D68 -sub_081B6D68: @ 0x081B6D68 - push {r4, lr} - sub sp, #4 - ldr r0, _081B6D90 - ldr r4, _081B6D94 - ldrb r1, [r4, #9] - ldr r2, _081B6D98 - ldrb r2, [r2] - subs r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r3, _081B6D9C - ldrh r4, [r4, #0xe] - str r4, [sp] - bl ShowSelectMovePokemonSummaryScreen - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B6D90: .4byte gUnknown_2024190 -_081B6D94: .4byte gUnknown_203CB94 -_081B6D98: .4byte gUnknown_202418D -_081B6D9C: .4byte sub_081B6DA0 - thumb_func_end sub_081B6D68 - - thumb_func_start sub_081B6DA0 -sub_081B6DA0: @ 0x081B6DA0 - push {lr} - sub sp, #0xc - movs r0, #0x7f - str r0, [sp] - ldr r0, _081B6DC4 - str r0, [sp, #4] - ldr r0, _081B6DC8 - ldr r0, [r0] - str r0, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #1 - bl InitPartyMenu - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_081B6DC4: .4byte sub_081B6DCC -_081B6DC8: .4byte gUnknown_203CB94 - thumb_func_end sub_081B6DA0 - - thumb_func_start sub_081B6DCC -sub_081B6DCC: @ 0x081B6DCC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, r4, #0 - ldr r0, _081B6DF4 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081B6DFE - bl sub_081C14C8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - beq _081B6DF8 - adds r0, r4, #0 - bl sub_081B6E04 - b _081B6DFE - .align 2, 0 -_081B6DF4: .4byte gUnknown_2037C74 -_081B6DF8: - adds r0, r5, #0 - bl sub_081B6EE0 -_081B6DFE: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_081B6DCC - - thumb_func_start sub_081B6E04 -sub_081B6E04: @ 0x081B6E04 - push {r4, r5, r6, lr} - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - ldr r0, _081B6E64 - movs r1, #9 - ldrsb r1, [r0, r1] - movs r0, #0x64 - adds r5, r1, #0 - muls r5, r0, r5 - ldr r0, _081B6E68 - adds r5, r5, r0 - bl sub_081C14C8 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r1, #0xd - adds r0, r5, #0 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r1, _081B6E6C - adds r0, r5, #0 - bl GetMonNickname - ldr r0, _081B6E70 - lsls r4, r4, #3 - ldr r1, _081B6E74 - adds r4, r4, r1 - adds r1, r4, #0 - bl StringCopy - ldr r0, _081B6E78 - bl sub_081B6A2C - ldr r1, _081B6E7C - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B6E80 - str r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081B6E64: .4byte gUnknown_203CB94 -_081B6E68: .4byte gUnknown_2024190 -_081B6E6C: .4byte gUnknown_2021C40 -_081B6E70: .4byte gUnknown_2021C54 -_081B6E74: .4byte gUnknown_82EACC4 -_081B6E78: .4byte gUnknown_85C9E35 -_081B6E7C: .4byte gUnknown_3005B60 -_081B6E80: .4byte sub_081B6E84 - thumb_func_end sub_081B6E04 - - thumb_func_start sub_081B6E84 -sub_081B6E84: @ 0x081B6E84 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - bl LoadListMenuArrowsGfx - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B6ED0 - ldr r5, _081B6ED8 - movs r1, #9 - ldrsb r1, [r5, r1] - movs r0, #0x64 - adds r4, r1, #0 - muls r4, r0, r4 - ldr r0, _081B6EDC - adds r4, r4, r0 - bl sub_081C14C8 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl RemoveMonPPBonus - ldrh r5, [r5, #0xe] - bl sub_081C14C8 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl SetMonMoveSlot - adds r0, r6, #0 - bl sub_081B6B68 -_081B6ED0: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081B6ED8: .4byte gUnknown_203CB94 -_081B6EDC: .4byte gUnknown_2024190 - thumb_func_end sub_081B6E84 - - thumb_func_start sub_081B6EE0 -sub_081B6EE0: @ 0x081B6EE0 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _081B6F28 - ldr r1, _081B6F2C - movs r2, #0xe - ldrsh r1, [r1, r2] - lsls r1, r1, #3 - ldr r2, _081B6F30 - adds r1, r1, r2 - bl StringCopy - ldr r4, _081B6F34 - ldr r1, _081B6F38 - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - movs r1, #1 - bl sub_081B182C - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, _081B6F3C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B6F40 - str r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B6F28: .4byte gUnknown_2021C54 -_081B6F2C: .4byte gUnknown_203CB94 -_081B6F30: .4byte gUnknown_82EACC4 -_081B6F34: .4byte gUnknown_2021C7C -_081B6F38: .4byte gUnknown_85C9DF2 -_081B6F3C: .4byte gUnknown_3005B60 -_081B6F40: .4byte sub_081B6F44 - thumb_func_end sub_081B6EE0 - - thumb_func_start sub_081B6F44 -sub_081B6F44: @ 0x081B6F44 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl LoadListMenuArrowsGfx - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B6F68 - bl sub_081B2FDC - ldr r0, _081B6F70 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B6F74 - str r0, [r1] -_081B6F68: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B6F70: .4byte gUnknown_3005B60 -_081B6F74: .4byte sub_081B6F78 - thumb_func_end sub_081B6F44 - - thumb_func_start sub_081B6F78 -sub_081B6F78: @ 0x081B6F78 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r7, _081B6FA8 - movs r1, #9 - ldrsb r1, [r7, r1] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _081B6FAC - adds r4, r1, r0 - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r5, r0, #0x18 - cmp r5, #0 - beq _081B6FB6 - cmp r5, #0 - bgt _081B6FB0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r5, r0 - beq _081B7038 - b _081B706C - .align 2, 0 -_081B6FA8: .4byte gUnknown_203CB94 -_081B6FAC: .4byte gUnknown_2024190 -_081B6FB0: - cmp r5, #1 - beq _081B703E - b _081B706C -_081B6FB6: - ldr r1, _081B6FF8 - adds r0, r4, #0 - bl GetMonNickname - ldr r0, _081B6FFC - movs r2, #0xe - ldrsh r1, [r7, r2] - lsls r1, r1, #3 - ldr r2, _081B7000 - adds r1, r1, r2 - bl StringCopy - ldr r4, _081B7004 - ldr r1, _081B7008 - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - movs r1, #1 - bl sub_081B182C - movs r1, #0x10 - ldrsh r0, [r7, r1] - cmp r0, #1 - bne _081B7014 - ldr r0, _081B700C - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B7010 - str r0, [r1] - b _081B706C - .align 2, 0 -_081B6FF8: .4byte gUnknown_2021C40 -_081B6FFC: .4byte gUnknown_2021C54 -_081B7000: .4byte gUnknown_82EACC4 -_081B7004: .4byte gUnknown_2021C7C -_081B7008: .4byte gUnknown_85C9E0D -_081B700C: .4byte gUnknown_3005B60 -_081B7010: .4byte sub_081B7090 -_081B7014: - cmp r0, #2 - bne _081B701C - ldr r0, _081B702C - strh r5, [r0] -_081B701C: - ldr r0, _081B7030 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B7034 - str r0, [r1] - b _081B706C - .align 2, 0 -_081B702C: .4byte gUnknown_2037290 -_081B7030: .4byte gUnknown_3005B60 -_081B7034: .4byte sub_081B6434 -_081B7038: - movs r0, #5 - bl sub_080A306C -_081B703E: - ldr r1, _081B7074 - adds r0, r4, #0 - bl GetMonNickname - ldr r0, _081B7078 - ldr r1, _081B707C - movs r2, #0xe - ldrsh r1, [r1, r2] - lsls r1, r1, #3 - ldr r2, _081B7080 - adds r1, r1, r2 - bl StringCopy - ldr r0, _081B7084 - bl sub_081B6A2C - ldr r1, _081B7088 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B708C - str r1, [r0] -_081B706C: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B7074: .4byte gUnknown_2021C40 -_081B7078: .4byte gUnknown_2021C54 -_081B707C: .4byte gUnknown_203CB94 -_081B7080: .4byte gUnknown_82EACC4 -_081B7084: .4byte gUnknown_85C9DA1 -_081B7088: .4byte gUnknown_3005B60 -_081B708C: .4byte sub_081B6CA4 - thumb_func_end sub_081B6F78 - - thumb_func_start sub_081B7090 -sub_081B7090: @ 0x081B7090 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl LoadListMenuArrowsGfx - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B70A8 - adds r0, r4, #0 - bl sub_081B7458 -_081B70A8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081B7090 - - thumb_func_start dp05_rare_candy -dp05_rare_candy: @ 0x081B70B0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sl, r1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _081B7114 - mov sb, r0 - movs r1, #9 - ldrsb r1, [r0, r1] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _081B7118 - adds r5, r1, r0 - ldr r0, _081B711C - ldr r6, [r0] - movs r1, #0x86 - lsls r1, r1, #2 - adds r4, r6, r1 - ldr r2, _081B7120 - mov r8, r2 - adds r0, r5, #0 - movs r1, #0x38 - bl GetMonData - cmp r0, #0x64 - beq _081B7124 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_081B7644 - mov r1, sb - ldrb r0, [r1, #9] - mov r2, r8 - ldrh r1, [r2] - movs r2, #0 - bl ExecuteTableBasedItemEffect__ - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #0x89 - lsls r0, r0, #2 - adds r1, r6, r0 - adds r0, r5, #0 - bl sub_081B7644 - b _081B7126 - .align 2, 0 -_081B7114: .4byte gUnknown_203CB94 -_081B7118: .4byte gUnknown_2024190 -_081B711C: .4byte gUnknown_203CB90 -_081B7120: .4byte gUnknown_203CB48 -_081B7124: - movs r4, #1 -_081B7126: - movs r0, #5 - bl sub_080A306C - cmp r4, #0 - beq _081B7160 - ldr r1, _081B7154 - movs r0, #0 - strb r0, [r1] - ldr r0, _081B7158 - movs r1, #1 - bl sub_081B182C - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, _081B715C - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - mov r1, sl - b _081B71C2 - .align 2, 0 -_081B7154: .4byte gUnknown_203CBB4 -_081B7158: .4byte gUnknown_85C9AF7 -_081B715C: .4byte gUnknown_3005B60 -_081B7160: - ldr r1, _081B71D4 - movs r0, #1 - strb r0, [r1] - movs r0, #0 - bl PlayFanfareByFanfareNum - ldr r0, _081B71D8 - ldrb r0, [r0, #9] - adds r1, r5, #0 - bl sub_081B71F8 - ldr r0, _081B71DC - ldrh r0, [r0] - movs r1, #1 - bl RemoveBagItem - ldr r1, _081B71E0 - adds r0, r5, #0 - bl GetMonNickname - ldr r4, _081B71E4 - adds r0, r5, #0 - movs r1, #0x38 - bl GetMonData - adds r1, r0, #0 - adds r0, r4, #0 - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - ldr r4, _081B71E8 - ldr r1, _081B71EC - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - movs r1, #1 - bl sub_081B182C - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, _081B71F0 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B71F4 -_081B71C2: - str r1, [r0] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B71D4: .4byte gUnknown_203CBB4 -_081B71D8: .4byte gUnknown_203CB94 -_081B71DC: .4byte gUnknown_203CB48 -_081B71E0: .4byte gUnknown_2021C40 -_081B71E4: .4byte gUnknown_2021C54 -_081B71E8: .4byte gUnknown_2021C7C -_081B71EC: .4byte gUnknown_85C9F4E -_081B71F0: .4byte gUnknown_3005B60 -_081B71F4: .4byte sub_081B7280 - thumb_func_end dp05_rare_candy - - thumb_func_start sub_081B71F8 -sub_081B71F8: @ 0x081B71F8 - push {r4, r5, r6, r7, lr} - adds r5, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r7, r0, #0 - ldr r6, _081B7278 - lsls r4, r7, #4 - ldr r1, [r6] - adds r1, r1, r4 - adds r0, r5, #0 - bl party_menu_get_status_condition_and_update_object - ldr r2, _081B727C - ldr r0, [r6] - adds r3, r4, r0 - ldrb r1, [r3, #0xc] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - bge _081B7234 - adds r0, r5, #0 - adds r1, r3, #0 - movs r2, #1 - bl DisplayPartyPokemonLevelCheck -_081B7234: - ldr r1, [r6] - adds r1, r1, r4 - adds r0, r5, #0 - movs r2, #1 - bl DisplayPartyPokemonHPCheck - ldr r1, [r6] - adds r1, r1, r4 - adds r0, r5, #0 - movs r2, #1 - bl DisplayPartyPokemonMaxHPCheck - ldr r1, [r6] - adds r1, r1, r4 - adds r0, r5, #0 - bl DisplayPartyPokemonHPBarCheck - ldr r0, [r6] - adds r0, r4, r0 - ldrb r0, [r0, #9] - adds r1, r5, #0 - bl sub_081B57D8 - adds r0, r7, #0 - movs r1, #1 - bl sub_081B0C9C - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B7278: .4byte gUnknown_203CBA8 -_081B727C: .4byte gUnknown_20205AC - thumb_func_end sub_081B71F8 - - thumb_func_start sub_081B7280 -sub_081B7280: @ 0x081B7280 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #0 - bl WaitFanfare - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081B72CC - bl LoadListMenuArrowsGfx - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B72CC - ldr r0, _081B72D4 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _081B72B2 - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081B72CC -_081B72B2: - movs r0, #5 - bl sub_080A306C - adds r0, r4, #0 - bl sub_081B7328 - ldr r0, _081B72D8 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B72DC - str r0, [r1] -_081B72CC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B72D4: .4byte gUnknown_3002360 -_081B72D8: .4byte gUnknown_3005B60 -_081B72DC: .4byte sub_081B72E0 - thumb_func_end sub_081B7280 - - thumb_func_start sub_081B72E0 -sub_081B72E0: @ 0x081B72E0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _081B731C - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _081B72FA - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081B7314 -_081B72FA: - movs r0, #5 - bl sub_080A306C - adds r0, r4, #0 - bl sub_081B7374 - ldr r0, _081B7320 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B7324 - str r0, [r1] -_081B7314: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B731C: .4byte gUnknown_3002360 -_081B7320: .4byte gUnknown_3005B60 -_081B7324: .4byte sub_081B73B0 - thumb_func_end sub_081B72E0 - - thumb_func_start sub_081B7328 -sub_081B7328: @ 0x081B7328 - push {r4, r5, lr} - sub sp, #8 - ldr r0, _081B7370 - ldr r5, [r0] - movs r0, #0x86 - lsls r0, r0, #2 - adds r4, r5, r0 - bl sub_081B3004 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x18] - ldrh r0, [r4, #0x18] - movs r1, #0x89 - lsls r1, r1, #2 - adds r2, r5, r1 - movs r1, #2 - str r1, [sp] - movs r1, #3 - str r1, [sp, #4] - adds r1, r4, #0 - movs r3, #1 - bl DrawLevelUpWindowPg1 - ldrb r0, [r4, #0x18] - movs r1, #2 - bl CopyWindowToVram - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B7370: .4byte gUnknown_203CB90 - thumb_func_end sub_081B7328 - - thumb_func_start sub_081B7374 -sub_081B7374: @ 0x081B7374 - push {r4, lr} - sub sp, #4 - ldr r0, _081B73AC - ldr r1, [r0] - movs r0, #0x86 - lsls r0, r0, #2 - adds r4, r1, r0 - ldrh r0, [r4, #0x18] - movs r2, #0x89 - lsls r2, r2, #2 - adds r1, r1, r2 - movs r2, #3 - str r2, [sp] - movs r2, #1 - movs r3, #2 - bl DrawLevelUpWindowPg2 - ldrb r0, [r4, #0x18] - movs r1, #2 - bl CopyWindowToVram - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B73AC: .4byte gUnknown_203CB90 - thumb_func_end sub_081B7374 - - thumb_func_start sub_081B73B0 -sub_081B73B0: @ 0x081B73B0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r0, #0 - bl WaitFanfare - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081B7452 - ldr r0, _081B7408 - ldrh r1, [r0, #0x2e] - movs r6, #1 - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - bne _081B73D8 - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081B7452 -_081B73D8: - bl sub_081B3034 - ldr r4, _081B740C - movs r1, #9 - ldrsb r1, [r4, r1] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081B7410 - adds r0, r0, r1 - movs r1, #1 - bl MonTryLearningNewMove - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - strh r6, [r4, #0x10] - ldr r0, _081B7414 - cmp r1, r0 - beq _081B7434 - cmp r1, r0 - bgt _081B7418 - cmp r1, #0 - beq _081B7424 - b _081B744C - .align 2, 0 -_081B7408: .4byte gUnknown_3002360 -_081B740C: .4byte gUnknown_203CB94 -_081B7410: .4byte gUnknown_2024190 -_081B7414: .4byte 0x0000FFFE -_081B7418: - ldr r0, _081B7420 - cmp r1, r0 - beq _081B742C - b _081B744C - .align 2, 0 -_081B7420: .4byte 0x0000FFFF -_081B7424: - adds r0, r5, #0 - bl sub_081B74BC - b _081B7452 -_081B742C: - adds r0, r5, #0 - bl sub_081B7528 - b _081B7452 -_081B7434: - ldr r0, _081B7444 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B7448 - str r0, [r1] - b _081B7452 - .align 2, 0 -_081B7444: .4byte gUnknown_3005B60 -_081B7448: .4byte sub_081B7458 -_081B744C: - adds r0, r5, #0 - bl sub_081B75B8 -_081B7452: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_081B73B0 - - thumb_func_start sub_081B7458 -sub_081B7458: @ 0x081B7458 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _081B7488 - movs r1, #9 - ldrsb r1, [r0, r1] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081B748C - adds r0, r0, r1 - movs r1, #0 - bl MonTryLearningNewMove - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r0, _081B7490 - cmp r1, r0 - beq _081B74B6 - cmp r1, r0 - bgt _081B7494 - cmp r1, #0 - beq _081B74A0 - b _081B74B0 - .align 2, 0 -_081B7488: .4byte gUnknown_203CB94 -_081B748C: .4byte gUnknown_2024190 -_081B7490: .4byte 0x0000FFFE -_081B7494: - ldr r0, _081B749C - cmp r1, r0 - beq _081B74A8 - b _081B74B0 - .align 2, 0 -_081B749C: .4byte 0x0000FFFF -_081B74A0: - adds r0, r4, #0 - bl sub_081B74BC - b _081B74B6 -_081B74A8: - adds r0, r4, #0 - bl sub_081B7528 - b _081B74B6 -_081B74B0: - adds r0, r4, #0 - bl sub_081B75B8 -_081B74B6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081B7458 - - thumb_func_start sub_081B74BC -sub_081B74BC: @ 0x081B74BC - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r6, _081B7500 - movs r1, #9 - ldrsb r1, [r6, r1] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _081B7504 - adds r7, r1, r0 - adds r0, r7, #0 - movs r1, #0 - movs r2, #0 - bl GetEvolutionTargetSpecies - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0 - beq _081B750C - bl FreePartyPointers - ldr r0, _081B7508 - ldr r1, [r6] - str r1, [r0] - ldrb r3, [r6, #9] - adds r0, r7, #0 - adds r1, r4, #0 - movs r2, #1 - bl BeginEvolutionScene - adds r0, r5, #0 - bl DestroyTask - b _081B751A - .align 2, 0 -_081B7500: .4byte gUnknown_203CB94 -_081B7504: .4byte gUnknown_2024190 -_081B7508: .4byte gUnknown_3005F28 -_081B750C: - ldr r0, _081B7520 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B7524 - str r0, [r1] -_081B751A: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B7520: .4byte gUnknown_3005B60 -_081B7524: .4byte sub_081B6434 - thumb_func_end sub_081B74BC - - thumb_func_start sub_081B7528 -sub_081B7528: @ 0x081B7528 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _081B7590 - mov r8, r0 - movs r1, #9 - ldrsb r1, [r0, r1] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081B7594 - adds r0, r0, r1 - ldr r1, _081B7598 - bl GetMonNickname - ldr r0, _081B759C - ldr r6, _081B75A0 - ldrh r1, [r6] - lsls r1, r1, #3 - ldr r2, _081B75A4 - adds r1, r1, r2 - bl StringCopy - ldr r4, _081B75A8 - ldr r1, _081B75AC - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - movs r1, #1 - bl sub_081B182C - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - ldrh r0, [r6] - mov r1, r8 - strh r0, [r1, #0xe] - ldr r1, _081B75B0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B75B4 - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081B7590: .4byte gUnknown_203CB94 -_081B7594: .4byte gUnknown_2024190 -_081B7598: .4byte gUnknown_2021C40 -_081B759C: .4byte gUnknown_2021C54 -_081B75A0: .4byte gUnknown_2024186 -_081B75A4: .4byte gUnknown_82EACC4 -_081B75A8: .4byte gUnknown_2021C7C -_081B75AC: .4byte gUnknown_85C9DA1 -_081B75B0: .4byte gUnknown_3005B60 -_081B75B4: .4byte sub_081B6CA4 - thumb_func_end sub_081B7528 - - thumb_func_start sub_081B75B8 -sub_081B75B8: @ 0x081B75B8 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r6, r0, #0 - adds r5, r1, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - ldr r0, _081B7620 - mov r8, r0 - movs r1, #9 - ldrsb r1, [r0, r1] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081B7624 - adds r0, r0, r1 - ldr r1, _081B7628 - bl GetMonNickname - ldr r0, _081B762C - lsls r1, r5, #3 - ldr r2, _081B7630 - adds r1, r1, r2 - bl StringCopy - ldr r4, _081B7634 - ldr r1, _081B7638 - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - movs r1, #1 - bl sub_081B182C - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - mov r0, r8 - strh r5, [r0, #0xe] - ldr r1, _081B763C - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B7640 - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081B7620: .4byte gUnknown_203CB94 -_081B7624: .4byte gUnknown_2024190 -_081B7628: .4byte gUnknown_2021C40 -_081B762C: .4byte gUnknown_2021C54 -_081B7630: .4byte gUnknown_82EACC4 -_081B7634: .4byte gUnknown_2021C7C -_081B7638: .4byte gUnknown_85C9D68 -_081B763C: .4byte gUnknown_3005B60 -_081B7640: .4byte sub_081B6C10 - thumb_func_end sub_081B75B8 - - thumb_func_start sub_081B7644 -sub_081B7644: @ 0x081B7644 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r1, #0x3a - bl GetMonData - strh r0, [r5] - adds r0, r4, #0 - movs r1, #0x3b - bl GetMonData - strh r0, [r5, #2] - adds r0, r4, #0 - movs r1, #0x3c - bl GetMonData - strh r0, [r5, #4] - adds r0, r4, #0 - movs r1, #0x3e - bl GetMonData - strh r0, [r5, #8] - adds r0, r4, #0 - movs r1, #0x3f - bl GetMonData - strh r0, [r5, #0xa] - adds r0, r4, #0 - movs r1, #0x3d - bl GetMonData - strh r0, [r5, #6] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081B7644 - - thumb_func_start sub_081B768C -sub_081B768C: @ 0x081B768C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081B76C0 - ldr r2, [r1] - movs r3, #0x86 - lsls r3, r3, #2 - adds r1, r2, r3 - movs r3, #0 - strh r3, [r1] - ldr r4, _081B76C4 - adds r1, r2, r4 - strh r3, [r1] - ldr r1, _081B76C8 - ldrb r1, [r1, #9] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - movs r3, #0x87 - lsls r3, r3, #2 - adds r2, r2, r3 - strh r1, [r2] - bl sub_081B76CC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B76C0: .4byte gUnknown_203CB90 -_081B76C4: .4byte 0x0000021A -_081B76C8: .4byte gUnknown_203CB94 - thumb_func_end sub_081B768C - - thumb_func_start sub_081B76CC -sub_081B76CC: @ 0x081B76CC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - mov r8, r4 - ldr r6, _081B7724 - movs r1, #9 - ldrsb r1, [r6, r1] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _081B7728 - adds r5, r1, r0 - adds r0, r5, #0 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _081B7712 - adds r0, r5, #0 - movs r1, #0x39 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - ldrb r0, [r6, #9] - ldr r1, _081B772C - ldrh r1, [r1] - movs r2, #0 - bl ExecuteTableBasedItemEffect__ - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081B7738 -_081B7712: - ldr r0, _081B7730 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B7734 - str r0, [r1] - b _081B77CE - .align 2, 0 -_081B7724: .4byte gUnknown_203CB94 -_081B7728: .4byte gUnknown_2024190 -_081B772C: .4byte gUnknown_203CB48 -_081B7730: .4byte gUnknown_3005B60 -_081B7734: .4byte task_sacred_ash_party_loop -_081B7738: - movs r0, #1 - bl sub_080A306C - ldr r4, _081B77DC - movs r0, #9 - ldrsb r0, [r6, r0] - lsls r0, r0, #4 - ldr r1, [r4] - adds r1, r1, r0 - adds r0, r5, #0 - bl party_menu_get_status_condition_and_update_object - ldr r2, _081B77E0 - movs r0, #9 - ldrsb r0, [r6, r0] - ldr r1, [r4] - lsls r0, r0, #4 - adds r3, r0, r1 - ldrb r1, [r3, #0xc] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - bge _081B777A - adds r0, r5, #0 - adds r1, r3, #0 - movs r2, #1 - bl DisplayPartyPokemonLevelCheck -_081B777A: - ldr r4, _081B77E4 - ldr r0, [r4] - movs r1, #0x87 - lsls r1, r1, #2 - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #0 - bl sub_081B0C9C - ldrb r0, [r6, #9] - movs r1, #1 - bl sub_081B0C9C - adds r0, r5, #0 - movs r1, #0x39 - bl GetMonData - adds r3, r0, #0 - subs r3, r3, r7 - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - ldrb r1, [r6, #9] - ldr r0, _081B77E8 - str r0, [sp] - mov r0, r8 - movs r2, #1 - bl sub_081B1BE8 - mov r0, r8 - movs r1, #0 - adds r2, r7, #0 - bl sub_081B1C78 - ldr r0, [r4] - movs r2, #0x86 - lsls r2, r2, #2 - adds r1, r0, r2 - movs r2, #1 - strh r2, [r1] - ldr r1, _081B77EC - adds r0, r0, r1 - strh r2, [r0] -_081B77CE: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B77DC: .4byte gUnknown_203CBA8 -_081B77E0: .4byte gUnknown_20205AC -_081B77E4: .4byte gUnknown_203CB90 -_081B77E8: .4byte sub_081B78B4 -_081B77EC: .4byte 0x0000021A - thumb_func_end sub_081B76CC - - thumb_func_start task_sacred_ash_party_loop -task_sacred_ash_party_loop: @ 0x081B77F0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl LoadListMenuArrowsGfx - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B78AE - ldr r5, _081B7858 - ldr r2, [r5] - movs r0, #0x86 - lsls r0, r0, #2 - adds r1, r2, r0 - movs r3, #0 - ldrsh r0, [r1, r3] - ldr r3, _081B785C - cmp r0, #1 - bne _081B7826 - movs r0, #0 - strh r0, [r1] - movs r1, #9 - ldrsb r1, [r3, r1] - movs r6, #0x87 - lsls r6, r6, #2 - adds r0, r2, r6 - strh r1, [r0] -_081B7826: - ldrb r0, [r3, #9] - adds r0, #1 - strb r0, [r3, #9] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #6 - bne _081B78A8 - ldr r0, [r5] - ldr r1, _081B7860 - adds r0, r0, r1 - movs r2, #0 - ldrsh r1, [r0, r2] - cmp r1, #0 - bne _081B786C - ldr r0, _081B7864 - strb r1, [r0] - ldr r0, _081B7868 - movs r1, #1 - bl sub_081B182C - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - b _081B787C - .align 2, 0 -_081B7858: .4byte gUnknown_203CB90 -_081B785C: .4byte gUnknown_203CB94 -_081B7860: .4byte 0x0000021A -_081B7864: .4byte gUnknown_203CBB4 -_081B7868: .4byte gUnknown_85C9AF7 -_081B786C: - ldr r1, _081B7894 - movs r0, #1 - strb r0, [r1] - ldr r0, _081B7898 - ldrh r0, [r0] - movs r1, #1 - bl RemoveBagItem -_081B787C: - ldr r1, _081B789C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B78A0 - str r1, [r0] - ldr r1, _081B78A4 - movs r0, #0 - strb r0, [r1, #9] - b _081B78AE - .align 2, 0 -_081B7894: .4byte gUnknown_203CBB4 -_081B7898: .4byte gUnknown_203CB48 -_081B789C: .4byte gUnknown_3005B60 -_081B78A0: .4byte sub_081B6434 -_081B78A4: .4byte gUnknown_203CB94 -_081B78A8: - adds r0, r4, #0 - bl sub_081B76CC -_081B78AE: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end task_sacred_ash_party_loop - - thumb_func_start sub_081B78B4 -sub_081B78B4: @ 0x081B78B4 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _081B78FC - movs r1, #9 - ldrsb r1, [r0, r1] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081B7900 - adds r0, r0, r1 - ldr r1, _081B7904 - bl GetMonNickname - ldr r4, _081B7908 - ldr r1, _081B790C - adds r0, r4, #0 - bl StringExpandPlaceholders - adds r0, r4, #0 - movs r1, #0 - bl sub_081B182C - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, _081B7910 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B7914 - str r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B78FC: .4byte gUnknown_203CB94 -_081B7900: .4byte gUnknown_2024190 -_081B7904: .4byte gUnknown_2021C40 -_081B7908: .4byte gUnknown_2021C7C -_081B790C: .4byte gUnknown_85C9E8F -_081B7910: .4byte gUnknown_3005B60 -_081B7914: .4byte task_sacred_ash_party_loop - thumb_func_end sub_081B78B4 - - thumb_func_start sub_081B7918 -sub_081B7918: @ 0x081B7918 - push {r4, r5, r6, lr} - adds r6, r1, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r0, #5 - bl sub_080A306C - ldr r2, _081B7964 - ldr r1, _081B7968 - ldr r0, [r1] - str r0, [r2] - ldrb r0, [r1, #9] - ldr r4, _081B796C - ldrh r1, [r4] - movs r2, #0 - bl ExecuteTableBasedItemEffect__ - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081B797C - ldr r1, _081B7970 - movs r0, #0 - strb r0, [r1] - ldr r0, _081B7974 - movs r1, #1 - bl sub_081B182C - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, _081B7978 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - str r6, [r0] - b _081B7988 - .align 2, 0 -_081B7964: .4byte gUnknown_3005F28 -_081B7968: .4byte gUnknown_203CB94 -_081B796C: .4byte gUnknown_203CB48 -_081B7970: .4byte gUnknown_203CBB4 -_081B7974: .4byte gUnknown_85C9AF7 -_081B7978: .4byte gUnknown_3005B60 -_081B797C: - ldrh r0, [r4] - movs r1, #1 - bl RemoveBagItem - bl FreePartyPointers -_081B7988: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081B7918 - - thumb_func_start GetItemEffectType -GetItemEffectType: @ 0x081B7990 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - adds r2, r1, #0 - subs r2, #0xd - lsls r0, r2, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xa5 - bls _081B79A4 - b _081B7AE4 -_081B79A4: - cmp r1, #0xaf - bne _081B79BC - ldr r0, _081B79B4 - ldr r0, [r0] - ldr r1, _081B79B8 - adds r4, r0, r1 - b _081B79C4 - .align 2, 0 -_081B79B4: .4byte gUnknown_3005AEC -_081B79B8: .4byte 0x00003214 -_081B79BC: - ldr r1, _081B79EC - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r4, [r0] -_081B79C4: - ldrb r1, [r4] - movs r5, #0x3f - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - bne _081B79E6 - ldrb r0, [r4, #1] - cmp r0, #0 - bne _081B79E6 - ldrb r0, [r4, #2] - cmp r0, #0 - bne _081B79E6 - ldrb r3, [r4, #3] - movs r0, #0x80 - ands r0, r3 - cmp r0, #0 - beq _081B79F0 -_081B79E6: - movs r0, #0 - b _081B7AEA - .align 2, 0 -_081B79EC: .4byte gUnknown_82EEF14 -_081B79F0: - movs r2, #0x40 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _081B79FE - movs r0, #0xa - b _081B7AEA -_081B79FE: - adds r0, r2, #0 - ands r0, r3 - cmp r0, #0 - beq _081B7A0A - movs r0, #1 - b _081B7AEA -_081B7A0A: - adds r2, r5, #0 - ands r2, r3 - cmp r2, #0 - bne _081B7A18 - lsrs r0, r1, #7 - cmp r0, #0 - beq _081B7A5A -_081B7A18: - cmp r2, #0x20 - bne _081B7A20 - movs r0, #4 - b _081B7AEA -_081B7A20: - cmp r2, #0x10 - bne _081B7A28 - movs r0, #3 - b _081B7AEA -_081B7A28: - cmp r2, #8 - bne _081B7A30 - movs r0, #5 - b _081B7AEA -_081B7A30: - cmp r2, #4 - bne _081B7A38 - movs r0, #6 - b _081B7AEA -_081B7A38: - cmp r2, #2 - bne _081B7A40 - movs r0, #7 - b _081B7AEA -_081B7A40: - cmp r2, #1 - bne _081B7A48 - movs r0, #8 - b _081B7AEA -_081B7A48: - lsrs r0, r1, #7 - cmp r0, #0 - beq _081B7A56 - cmp r2, #0 - bne _081B7A56 - movs r0, #9 - b _081B7AEA -_081B7A56: - movs r0, #0xb - b _081B7AEA -_081B7A5A: - ldrb r1, [r4, #4] - movs r0, #0x44 - ands r0, r1 - adds r2, r1, #0 - cmp r0, #0 - beq _081B7A6A - movs r0, #2 - b _081B7AEA -_081B7A6A: - movs r5, #2 - adds r0, r5, #0 - ands r0, r2 - cmp r0, #0 - beq _081B7A78 - movs r0, #0xc - b _081B7AEA -_081B7A78: - movs r3, #1 - adds r0, r3, #0 - ands r0, r2 - cmp r0, #0 - beq _081B7A86 - movs r0, #0xd - b _081B7AEA -_081B7A86: - ldrb r1, [r4, #5] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _081B7A94 - movs r0, #0xe - b _081B7AEA -_081B7A94: - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _081B7AA0 - movs r0, #0xf - b _081B7AEA -_081B7AA0: - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _081B7AAC - movs r0, #0x10 - b _081B7AEA -_081B7AAC: - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _081B7AB8 - movs r0, #0x11 - b _081B7AEA -_081B7AB8: - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - beq _081B7AC4 - movs r0, #0x12 - b _081B7AEA -_081B7AC4: - movs r0, #0x20 - ands r0, r2 - cmp r0, #0 - beq _081B7AD0 - movs r0, #0x13 - b _081B7AEA -_081B7AD0: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _081B7ADC - movs r0, #0x14 - b _081B7AEA -_081B7ADC: - movs r0, #0x18 - ands r0, r2 - cmp r0, #0 - bne _081B7AE8 -_081B7AE4: - movs r0, #0x16 - b _081B7AEA -_081B7AE8: - movs r0, #0x15 -_081B7AEA: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end GetItemEffectType - - thumb_func_start sub_081B7AF0 -sub_081B7AF0: @ 0x081B7AF0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _081B7B70 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081B7BBC - ldr r7, _081B7B74 - movs r1, #9 - ldrsb r1, [r7, r1] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _081B7B78 - adds r5, r1, r0 - movs r0, #0xe - adds r0, r0, r7 - mov r8, r0 - ldr r1, _081B7B7C - adds r0, r5, #0 - bl GetMonNickname - ldr r4, _081B7B80 - ldrb r0, [r4] - bl sub_081B2030 - strh r0, [r7, #0xe] - ldr r0, _081B7B84 - movs r2, #0xe - ldrsh r1, [r7, r2] - lsls r1, r1, #3 - ldr r2, _081B7B88 - adds r1, r1, r2 - bl StringCopy - movs r0, #2 - mov r1, r8 - strh r0, [r1, #2] - ldrb r2, [r4] - adds r0, r5, #0 - movs r1, #0 - bl CanMonLearnTMTutor - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B7B90 - cmp r0, #2 - beq _081B7B98 - ldrh r1, [r7, #0xe] - adds r0, r5, #0 - bl GiveMoveToMon - lsls r0, r0, #0x10 - ldr r1, _081B7B8C - cmp r0, r1 - beq _081B7BA8 - adds r0, r6, #0 - bl sub_081B6B68 - b _081B7BBC - .align 2, 0 -_081B7B70: .4byte gUnknown_2037C74 -_081B7B74: .4byte gUnknown_203CB94 -_081B7B78: .4byte gUnknown_2024190 -_081B7B7C: .4byte gUnknown_2021C40 -_081B7B80: .4byte gUnknown_2037282 -_081B7B84: .4byte gUnknown_2021C54 -_081B7B88: .4byte gUnknown_82EACC4 -_081B7B8C: .4byte 0xFFFF0000 -_081B7B90: - ldr r1, _081B7B94 - b _081B7B9A - .align 2, 0 -_081B7B94: .4byte gUnknown_85C9D7C -_081B7B98: - ldr r1, _081B7BA4 -_081B7B9A: - adds r0, r6, #0 - bl sub_081B6A50 - b _081B7BBC - .align 2, 0 -_081B7BA4: .4byte gUnknown_85C9E79 -_081B7BA8: - ldr r0, _081B7BC8 - bl sub_081B6A2C - ldr r1, _081B7BCC - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B7BD0 - str r1, [r0] -_081B7BBC: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B7BC8: .4byte gUnknown_85C9DA1 -_081B7BCC: .4byte gUnknown_3005B60 -_081B7BD0: .4byte sub_081B6CA4 - thumb_func_end sub_081B7AF0 - - thumb_func_start CB2_PartyMenuFromStartMenu -CB2_PartyMenuFromStartMenu: @ 0x081B7BD4 - push {lr} - sub sp, #0xc - movs r0, #0 - str r0, [sp] - ldr r0, _081B7BF8 - str r0, [sp, #4] - ldr r0, _081B7BFC - str r0, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl InitPartyMenu - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_081B7BF8: .4byte sub_081B1040 -_081B7BFC: .4byte CB2_ReturnToFieldWithOpenMenu - thumb_func_end CB2_PartyMenuFromStartMenu - - thumb_func_start sub_081B7C00 -sub_081B7C00: @ 0x081B7C00 - push {lr} - sub sp, #0xc - bl InBattlePyramid - lsls r0, r0, #0x18 - ldr r1, _081B7C38 - cmp r0, #0 - bne _081B7C12 - ldr r1, _081B7C3C -_081B7C12: - movs r0, #6 - str r0, [sp] - ldr r0, _081B7C40 - str r0, [sp, #4] - str r1, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #5 - movs r3, #0 - bl InitPartyMenu - ldr r1, _081B7C44 - ldr r0, _081B7C48 - ldrh r0, [r0] - strh r0, [r1, #0xc] - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_081B7C38: .4byte sub_081C478C -_081B7C3C: .4byte c2_815ABFC -_081B7C40: .4byte sub_081B1040 -_081B7C44: .4byte gUnknown_203CB94 -_081B7C48: .4byte gUnknown_203CB48 - thumb_func_end sub_081B7C00 - - thumb_func_start sub_081B7C4C -sub_081B7C4C: @ 0x081B7C4C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r6, r4, #0 - ldr r5, _081B7C8C - ldr r0, _081B7C90 - mov sb, r0 - ldrb r0, [r0, #9] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #0x64 - mov r8, r1 - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - ldr r7, _081B7C94 - adds r0, r0, r7 - movs r1, #0xc - bl GetMonData - strh r0, [r5] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _081B7C98 - adds r0, r4, #0 - bl sub_081B7CE4 - b _081B7CD0 - .align 2, 0 -_081B7C8C: .4byte gUnknown_203CBC8 -_081B7C90: .4byte gUnknown_203CB94 -_081B7C94: .4byte gUnknown_2024190 -_081B7C98: - ldrh r0, [r5] - bl ItemIsMail - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081B7CAC - adds r0, r4, #0 - bl sub_081B8058 - b _081B7CD0 -_081B7CAC: - mov r1, sb - movs r0, #9 - ldrsb r0, [r1, r0] - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - adds r0, r0, r7 - ldrh r1, [r5] - movs r2, #1 - bl sub_081B19EC - ldr r1, _081B7CDC - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B7CE0 - str r1, [r0] -_081B7CD0: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B7CDC: .4byte gUnknown_3005B60 -_081B7CE0: .4byte sub_081B7F40 - thumb_func_end sub_081B7C4C - - thumb_func_start sub_081B7CE4 -sub_081B7CE4: @ 0x081B7CE4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r5, _081B7D10 - ldrh r0, [r5, #0xc] - bl ItemIsMail - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081B7D1C - ldrh r0, [r5, #0xc] - bl sub_081B8090 - ldr r0, _081B7D14 - ldr r1, [r0] - ldr r0, _081B7D18 - str r0, [r1, #4] - adds r0, r4, #0 - bl sub_081B0F90 - b _081B7D22 - .align 2, 0 -_081B7D10: .4byte gUnknown_203CB94 -_081B7D14: .4byte gUnknown_203CB90 -_081B7D18: .4byte sub_081B7DEC -_081B7D1C: - adds r0, r4, #0 - bl sub_081B7D28 -_081B7D22: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_081B7CE4 - - thumb_func_start sub_081B7D28 -sub_081B7D28: @ 0x081B7D28 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _081B7D90 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081B7D84 - ldr r4, _081B7D94 - ldrh r5, [r4, #0xc] - movs r0, #9 - ldrsb r0, [r4, r0] - movs r1, #0x64 - mov r8, r1 - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - ldr r6, _081B7D98 - adds r0, r0, r6 - adds r1, r5, #0 - movs r2, #0 - movs r3, #1 - bl sub_081B1954 - movs r0, #9 - ldrsb r0, [r4, r0] - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - adds r0, r0, r6 - adds r1, r5, #0 - bl sub_081B1A88 - adds r0, r5, #0 - bl sub_081B8090 - ldr r1, _081B7D9C - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B7DA0 - str r1, [r0] -_081B7D84: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B7D90: .4byte gUnknown_2037C74 -_081B7D94: .4byte gUnknown_203CB94 -_081B7D98: .4byte gUnknown_2024190 -_081B7D9C: .4byte gUnknown_3005B60 -_081B7DA0: .4byte sub_081B7DA4 - thumb_func_end sub_081B7D28 - - thumb_func_start sub_081B7DA4 -sub_081B7DA4: @ 0x081B7DA4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _081B7DE0 - ldrb r4, [r0, #9] - bl LoadListMenuArrowsGfx - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B7DD8 - lsls r2, r4, #0x18 - asrs r2, r2, #0x18 - movs r0, #0x64 - muls r0, r2, r0 - ldr r1, _081B7DE4 - adds r0, r0, r1 - ldr r1, _081B7DE8 - lsls r2, r2, #4 - ldr r1, [r1] - adds r1, r1, r2 - bl sub_081B5934 - adds r0, r5, #0 - bl sub_081B0F90 -_081B7DD8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B7DE0: .4byte gUnknown_203CB94 -_081B7DE4: .4byte gUnknown_2024190 -_081B7DE8: .4byte gUnknown_203CBA8 - thumb_func_end sub_081B7DA4 - - thumb_func_start sub_081B7DEC -sub_081B7DEC: @ 0x081B7DEC - push {r4, r5, r6, lr} - ldr r4, _081B7E34 - movs r0, #9 - ldrsb r0, [r4, r0] - movs r6, #0x64 - muls r0, r6, r0 - ldr r5, _081B7E38 - adds r0, r0, r5 - ldrh r1, [r4, #0xc] - bl sub_081B1A88 - movs r0, #9 - ldrsb r0, [r4, r0] - muls r0, r6, r0 - adds r0, r0, r5 - movs r1, #0x40 - bl GetMonData - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081B7E3C - lsls r2, r0, #3 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r0, _081B7E40 - adds r2, r2, r0 - ldr r1, [r1] - adds r1, r1, r2 - ldr r2, _081B7E44 - movs r0, #4 - movs r3, #3 - bl DoEasyChatScreen - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081B7E34: .4byte gUnknown_203CB94 -_081B7E38: .4byte gUnknown_2024190 -_081B7E3C: .4byte gUnknown_3005AEC -_081B7E40: .4byte 0x00002BE0 -_081B7E44: .4byte sub_081B7E48 - thumb_func_end sub_081B7DEC - - thumb_func_start sub_081B7E48 -sub_081B7E48: @ 0x081B7E48 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - ldr r6, _081B7E98 - movs r1, #9 - ldrsb r1, [r6, r1] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _081B7E9C - adds r5, r1, r0 - adds r0, r5, #0 - movs r1, #0xc - bl GetMonData - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - ldr r0, _081B7EA0 - ldrh r0, [r0] - cmp r0, #0 - bne _081B7EA8 - adds r0, r5, #0 - bl TakeMailFromMon - ldr r4, _081B7EA4 - adds r0, r5, #0 - movs r1, #0xc - adds r2, r4, #0 - bl SetMonData - ldrh r0, [r4] - movs r1, #1 - bl RemoveBagItem - adds r0, r7, #0 - bl sub_081B80BC - ldr r0, [r6] - bl SetMainCallback2 - b _081B7EC4 - .align 2, 0 -_081B7E98: .4byte gUnknown_203CB94 -_081B7E9C: .4byte gUnknown_2024190 -_081B7EA0: .4byte gUnknown_2037290 -_081B7EA4: .4byte gUnknown_203CBC8 -_081B7EA8: - ldrb r0, [r6, #8] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - ldrb r2, [r6, #0xb] - movs r1, #0x7f - str r1, [sp] - ldr r1, _081B7ECC - str r1, [sp, #4] - ldr r1, [r6] - str r1, [sp, #8] - movs r1, #0xff - movs r3, #1 - bl InitPartyMenu -_081B7EC4: - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B7ECC: .4byte sub_081B7ED0 - thumb_func_end sub_081B7E48 - - thumb_func_start sub_081B7ED0 -sub_081B7ED0: @ 0x081B7ED0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _081B7EF8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081B7F2A - ldr r1, _081B7EFC - ldrh r0, [r1] - cmp r0, #0 - beq _081B7F04 - ldr r0, _081B7F00 - ldrh r0, [r0, #0xc] - ldrh r1, [r1] - movs r2, #0 - bl sub_081B1A38 - b _081B7F1C - .align 2, 0 -_081B7EF8: .4byte gUnknown_2037C74 -_081B7EFC: .4byte gUnknown_203CBC8 -_081B7F00: .4byte gUnknown_203CB94 -_081B7F04: - ldr r2, _081B7F30 - movs r1, #9 - ldrsb r1, [r2, r1] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081B7F34 - adds r0, r0, r1 - ldrh r1, [r2, #0xc] - movs r2, #0 - movs r3, #1 - bl sub_081B1954 -_081B7F1C: - ldr r0, _081B7F38 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B7F3C - str r0, [r1] -_081B7F2A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B7F30: .4byte gUnknown_203CB94 -_081B7F34: .4byte gUnknown_2024190 -_081B7F38: .4byte gUnknown_3005B60 -_081B7F3C: .4byte sub_081B7DA4 - thumb_func_end sub_081B7ED0 - - thumb_func_start sub_081B7F40 -sub_081B7F40: @ 0x081B7F40 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl LoadListMenuArrowsGfx - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B7F64 - bl sub_081B2FDC - ldr r0, _081B7F6C - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B7F70 - str r0, [r1] -_081B7F64: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B7F6C: .4byte gUnknown_3005B60 -_081B7F70: .4byte sub_081B7F74 - thumb_func_end sub_081B7F40 - - thumb_func_start sub_081B7F74 -sub_081B7F74: @ 0x081B7F74 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - beq _081B7F9A - cmp r1, #0 - bgt _081B7F94 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _081B8034 - b _081B8048 -_081B7F94: - cmp r1, #1 - beq _081B803A - b _081B8048 -_081B7F9A: - ldr r7, _081B7FCC - ldrh r4, [r7, #0xc] - adds r0, r4, #0 - bl sub_081B8090 - ldr r6, _081B7FD0 - ldrh r0, [r6] - movs r1, #1 - bl AddBagItem - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081B7FD8 - adds r0, r4, #0 - bl sub_081B80BC - ldrh r0, [r6] - bl pokemon_item_not_removed - ldr r0, _081B7FD4 - movs r1, #0 - bl sub_081B182C - b _081B8018 - .align 2, 0 -_081B7FCC: .4byte gUnknown_203CB94 -_081B7FD0: .4byte gUnknown_203CBC8 -_081B7FD4: .4byte gUnknown_2021C7C -_081B7FD8: - adds r0, r4, #0 - bl ItemIsMail - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081B7FFC - ldr r0, _081B7FF4 - ldr r1, [r0] - ldr r0, _081B7FF8 - str r0, [r1, #4] - adds r0, r5, #0 - bl sub_081B0F90 - b _081B8048 - .align 2, 0 -_081B7FF4: .4byte gUnknown_203CB90 -_081B7FF8: .4byte sub_081B7DEC -_081B7FFC: - movs r1, #9 - ldrsb r1, [r7, r1] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081B8028 - adds r0, r0, r1 - adds r1, r4, #0 - bl sub_081B1A88 - ldrh r1, [r6] - adds r0, r4, #0 - movs r2, #1 - bl sub_081B1A38 -_081B8018: - ldr r1, _081B802C - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B8030 - str r1, [r0] - b _081B8048 - .align 2, 0 -_081B8028: .4byte gUnknown_2024190 -_081B802C: .4byte gUnknown_3005B60 -_081B8030: .4byte sub_081B7DA4 -_081B8034: - movs r0, #5 - bl sub_080A306C -_081B803A: - ldr r0, _081B8050 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B8054 - str r0, [r1] -_081B8048: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B8050: .4byte gUnknown_3005B60 -_081B8054: .4byte sub_081B7DA4 - thumb_func_end sub_081B7F74 - - thumb_func_start sub_081B8058 -sub_081B8058: @ 0x081B8058 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081B8084 - movs r1, #1 - bl sub_081B182C - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, _081B8088 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081B808C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B8084: .4byte gUnknown_85C9C5C -_081B8088: .4byte gUnknown_3005B60 -_081B808C: .4byte sub_081B7DA4 - thumb_func_end sub_081B8058 - - thumb_func_start sub_081B8090 -sub_081B8090: @ 0x081B8090 - push {lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r0, _081B80AC - ldrb r0, [r0, #0xb] - cmp r0, #6 - bne _081B80B0 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - bl RemovePCItem - b _081B80B8 - .align 2, 0 -_081B80AC: .4byte gUnknown_203CB94 -_081B80B0: - adds r0, r1, #0 - movs r1, #1 - bl RemoveBagItem -_081B80B8: - pop {r0} - bx r0 - thumb_func_end sub_081B8090 - - thumb_func_start sub_081B80BC -sub_081B80BC: @ 0x081B80BC - push {lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r0, _081B80D4 - ldrb r0, [r0, #0xb] - cmp r0, #5 - beq _081B80D8 - adds r0, r1, #0 - movs r1, #1 - bl AddPCItem - b _081B80E0 - .align 2, 0 -_081B80D4: .4byte gUnknown_203CB94 -_081B80D8: - adds r0, r1, #0 - movs r1, #1 - bl AddBagItem -_081B80E0: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - thumb_func_end sub_081B80BC - - thumb_func_start sub_081B80E8 -sub_081B80E8: @ 0x081B80E8 - push {lr} - sub sp, #0xc - movs r0, #6 - str r0, [sp] - ldr r0, _081B810C - str r0, [sp, #4] - ldr r0, _081B8110 - str r0, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #7 - movs r3, #0 - bl InitPartyMenu - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_081B810C: .4byte sub_081B1040 -_081B8110: .4byte sub_0816B968 - thumb_func_end sub_081B80E8 - - thumb_func_start sub_081B8114 -sub_081B8114: @ 0x081B8114 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _081B8160 - movs r1, #9 - ldrsb r1, [r0, r1] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _081B8164 - adds r5, r1, r0 - ldr r1, _081B8168 - movs r0, #0 - strb r0, [r1] - ldr r2, _081B816C - ldr r0, _081B8170 - ldrh r1, [r0] - adds r1, #6 - ldrh r0, [r0, #2] - adds r1, r1, r0 - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _081B8174 - adds r0, r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - adds r0, r5, #0 - movs r1, #0xc - bl GetMonData - cmp r0, #0 - beq _081B817C - ldr r0, _081B8178 - movs r1, #1 - bl sub_081B182C - b _081B8192 - .align 2, 0 -_081B8160: .4byte gUnknown_203CB94 -_081B8164: .4byte gUnknown_2024190 -_081B8168: .4byte gUnknown_203CBB4 -_081B816C: .4byte gUnknown_3005AEC -_081B8170: .4byte gUnknown_203B984 -_081B8174: .4byte 0x00002BE0 -_081B8178: .4byte gUnknown_85C9D0C -_081B817C: - adds r0, r5, #0 - adds r1, r4, #0 - bl GiveMailToMon2 - adds r0, r4, #0 - bl ClearMailStruct - ldr r0, _081B81AC - movs r1, #1 - bl sub_081B182C -_081B8192: - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, _081B81B0 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B81B4 - str r0, [r1] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081B81AC: .4byte gUnknown_85C9D32 -_081B81B0: .4byte gUnknown_3005B60 -_081B81B4: .4byte sub_081B7DA4 - thumb_func_end sub_081B8114 - - thumb_func_start InitChooseHalfPartyForBattle -InitChooseHalfPartyForBattle: @ 0x081B81B8 - push {lr} - sub sp, #0xc - bl sub_081B81F8 - movs r0, #0 - str r0, [sp] - ldr r0, _081B81E8 - str r0, [sp, #4] - ldr r0, _081B81EC - ldr r0, [r0, #8] - str r0, [sp, #8] - movs r0, #4 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl InitPartyMenu - ldr r1, _081B81F0 - ldr r0, _081B81F4 - str r0, [r1, #4] - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_081B81E8: .4byte sub_081B1040 -_081B81EC: .4byte gUnknown_3002360 -_081B81F0: .4byte gUnknown_203CB94 -_081B81F4: .4byte sub_081B843C - thumb_func_end InitChooseHalfPartyForBattle - - thumb_func_start sub_081B81F8 -sub_081B81F8: @ 0x081B81F8 - push {lr} - ldr r0, _081B8208 - movs r1, #0 - movs r2, #4 - bl memset - pop {r0} - bx r0 - .align 2, 0 -_081B8208: .4byte gUnknown_203CBC4 - thumb_func_end sub_081B81F8 - - thumb_func_start sub_081B820C -sub_081B820C: @ 0x081B820C - push {r4, lr} - lsls r0, r0, #0x18 - asrs r4, r0, #0x18 - movs r0, #0x64 - muls r0, r4, r0 - ldr r1, _081B8228 - adds r0, r0, r1 - bl GetBattleEntryEligibility - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081B822C - movs r0, #2 - b _081B8244 - .align 2, 0 -_081B8228: .4byte gUnknown_2024190 -_081B822C: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_081B8410 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B8242 - movs r0, #0 - b _081B8244 -_081B8242: - movs r0, #1 -_081B8244: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081B820C - - thumb_func_start GetBattleEntryEligibility -GetBattleEntryEligibility: @ 0x081B824C - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r6, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - bne _081B82A8 - adds r0, r5, #0 - movs r1, #0x38 - bl GetMonData - adds r4, r0, #0 - bl sub_081B8528 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - bhi _081B82A8 - ldr r0, _081B82AC - ldr r0, [r0] - ldrh r1, [r0, #4] - ldr r0, _081B82B0 - cmp r1, r0 - bne _081B828A - adds r0, r5, #0 - movs r1, #0xc - bl GetMonData - cmp r0, #0 - bne _081B82A8 -_081B828A: - ldr r0, _081B82B4 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #8 - beq _081B82EA - cmp r0, #9 - bne _081B82B8 - adds r0, r5, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - bne _081B82EA -_081B82A8: - movs r0, #0 - b _081B82EC - .align 2, 0 -_081B82AC: .4byte gUnknown_3005AEC -_081B82B0: .4byte 0x0000191A -_081B82B4: .4byte 0x000040CF -_081B82B8: - adds r0, r5, #0 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r3, _081B82F4 - lsls r1, r6, #1 - adds r0, r1, r3 - ldrh r0, [r0] - ldr r2, _081B82F8 - cmp r0, r2 - beq _081B82EA -_081B82D2: - adds r0, r1, r3 - ldrh r0, [r0] - cmp r0, r4 - beq _081B82A8 - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r1, r6, #1 - adds r0, r1, r3 - ldrh r0, [r0] - cmp r0, r2 - bne _081B82D2 -_081B82EA: - movs r0, #1 -_081B82EC: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_081B82F4: .4byte gUnknown_85DD48E -_081B82F8: .4byte 0x0000FFFF - thumb_func_end GetBattleEntryEligibility - - thumb_func_start sub_081B82FC -sub_081B82FC: @ 0x081B82FC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - bl sub_081B84FC - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r1, r2, #0 - ldr r3, _081B8324 - adds r0, r2, r3 - subs r0, #1 - ldrb r0, [r0] - cmp r0, #0 - bne _081B833C - cmp r2, #1 - bne _081B8328 - movs r0, #0xe - b _081B83F8 - .align 2, 0 -_081B8324: .4byte gUnknown_203CBC4 -_081B8328: - ldr r0, _081B8338 - movs r2, #0 - movs r3, #1 - bl sub_080089D8 - movs r0, #0x11 - b _081B83F8 - .align 2, 0 -_081B8338: .4byte gUnknown_2021C40 -_081B833C: - ldr r0, _081B8354 - bl VarGet - lsls r0, r0, #0x18 - movs r1, #0xf8 - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _081B8360 - b _081B83F6 - .align 2, 0 -_081B8354: .4byte 0x000040CF -_081B8358: - movs r0, #0x12 - b _081B83F8 -_081B835C: - movs r0, #0x13 - b _081B83F8 -_081B8360: - bl sub_081B84D0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r5, #0 - b _081B83F0 -_081B836E: - ldr r3, _081B8408 - adds r4, r3, r5 - ldrb r0, [r4] - movs r1, #0x64 - muls r0, r1, r0 - subs r0, #0x64 - ldr r3, _081B840C - adds r0, r3, r0 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sl, r0 - ldrb r0, [r4] - movs r1, #0x64 - muls r0, r1, r0 - subs r0, #0x64 - ldr r3, _081B840C - adds r0, r3, r0 - movs r1, #0xc - bl GetMonData - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r1, r5, #1 - lsls r0, r1, #0x18 - lsrs r4, r0, #0x18 - mov sb, r1 - cmp r4, r8 - bhs _081B83E8 - movs r7, #0x64 -_081B83AE: - ldr r0, _081B8408 - adds r5, r0, r4 - ldrb r0, [r5] - muls r0, r7, r0 - subs r0, #0x64 - ldr r1, _081B840C - adds r0, r1, r0 - movs r1, #0xb - bl GetMonData - cmp sl, r0 - beq _081B8358 - cmp r6, #0 - beq _081B83DE - ldrb r0, [r5] - muls r0, r7, r0 - subs r0, #0x64 - ldr r3, _081B840C - adds r0, r3, r0 - movs r1, #0xc - bl GetMonData - cmp r6, r0 - beq _081B835C -_081B83DE: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r8 - blo _081B83AE -_081B83E8: - mov r1, sb - lsls r0, r1, #0x18 - lsrs r5, r0, #0x18 - mov r0, r8 -_081B83F0: - subs r0, #1 - cmp r5, r0 - blt _081B836E -_081B83F6: - movs r0, #0xff -_081B83F8: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081B8408: .4byte gUnknown_203CBC4 -_081B840C: .4byte gUnknown_2024190 - thumb_func_end sub_081B82FC - - thumb_func_start sub_081B8410 -sub_081B8410: @ 0x081B8410 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - movs r1, #0 - ldr r3, _081B8428 -_081B841A: - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _081B842C - movs r0, #1 - b _081B8438 - .align 2, 0 -_081B8428: .4byte gUnknown_203CBC4 -_081B842C: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #3 - bls _081B841A - movs r0, #0 -_081B8438: - pop {r1} - bx r1 - thumb_func_end sub_081B8410 - - thumb_func_start sub_081B843C -sub_081B843C: @ 0x081B843C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - bl sub_081B82FC - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xff - beq _081B8474 - movs r0, #0x20 - bl sub_080A306C - adds r0, r4, #0 - bl display_pokemon_menu_message - ldr r0, _081B846C - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B8470 - str r0, [r1] - b _081B8480 - .align 2, 0 -_081B846C: .4byte gUnknown_3005B60 -_081B8470: .4byte sub_081B8488 -_081B8474: - movs r0, #5 - bl sub_080A306C - adds r0, r5, #0 - bl sub_081B0F90 -_081B8480: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081B843C - - thumb_func_start sub_081B8488 -sub_081B8488: @ 0x081B8488 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _081B84C4 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _081B84A2 - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081B84BC -_081B84A2: - movs r0, #5 - bl sub_080A306C - movs r0, #0 - bl display_pokemon_menu_message - ldr r0, _081B84C8 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B84CC - str r0, [r1] -_081B84BC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B84C4: .4byte gUnknown_3002360 -_081B84C8: .4byte gUnknown_3005B60 -_081B84CC: .4byte sub_081B1040 - thumb_func_end sub_081B8488 - - thumb_func_start sub_081B84D0 -sub_081B84D0: @ 0x081B84D0 - push {lr} - ldr r0, _081B84E8 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #8 - beq _081B84EC - cmp r0, #9 - bne _081B84F0 - movs r0, #3 - b _081B84F4 - .align 2, 0 -_081B84E8: .4byte 0x000040CF -_081B84EC: - movs r0, #2 - b _081B84F4 -_081B84F0: - ldr r0, _081B84F8 - ldrb r0, [r0] -_081B84F4: - pop {r1} - bx r1 - .align 2, 0 -_081B84F8: .4byte gUnknown_2037282 - thumb_func_end sub_081B84D0 - - thumb_func_start sub_081B84FC -sub_081B84FC: @ 0x081B84FC - push {lr} - ldr r0, _081B8514 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #8 - beq _081B8518 - cmp r0, #9 - bne _081B851C - movs r0, #1 - b _081B8520 - .align 2, 0 -_081B8514: .4byte 0x000040CF -_081B8518: - movs r0, #2 - b _081B8520 -_081B851C: - ldr r0, _081B8524 - ldrb r0, [r0] -_081B8520: - pop {r1} - bx r1 - .align 2, 0 -_081B8524: .4byte gUnknown_2037282 - thumb_func_end sub_081B84FC - - thumb_func_start sub_081B8528 -sub_081B8528: @ 0x081B8528 - push {lr} - ldr r0, _081B8540 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #8 - beq _081B8544 - cmp r0, #9 - bne _081B8548 -_081B853C: - movs r0, #0x64 - b _081B8552 - .align 2, 0 -_081B8540: .4byte 0x000040CF -_081B8544: - movs r0, #0x1e - b _081B8552 -_081B8548: - ldr r0, _081B8558 - ldrh r0, [r0] - cmp r0, #0 - bne _081B853C - movs r0, #0x32 -_081B8552: - pop {r1} - bx r1 - .align 2, 0 -_081B8558: .4byte gUnknown_2037280 - thumb_func_end sub_081B8528 - - thumb_func_start sub_081B855C -sub_081B855C: @ 0x081B855C - push {lr} - ldr r0, _081B8578 - bl VarGet - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r2, #0xf8 - lsls r2, r2, #0x18 - adds r0, r0, r2 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _081B8580 - ldr r0, _081B857C - b _081B859A - .align 2, 0 -_081B8578: .4byte 0x000040CF -_081B857C: .4byte gUnknown_85CA21C -_081B8580: - cmp r1, #1 - bne _081B8598 - ldr r0, _081B8590 - ldrh r0, [r0] - cmp r0, #2 - bne _081B8598 - ldr r0, _081B8594 - b _081B859A - .align 2, 0 -_081B8590: .4byte gUnknown_2037282 -_081B8594: .4byte gUnknown_85CA229 -_081B8598: - ldr r0, _081B85A0 -_081B859A: - pop {r1} - bx r1 - .align 2, 0 -_081B85A0: .4byte gUnknown_85CA238 - thumb_func_end sub_081B855C - - thumb_func_start sub_081B85A4 -sub_081B85A4: @ 0x081B85A4 - push {lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0 - str r2, [sp] - ldr r2, _081B85C8 - str r2, [sp, #4] - str r1, [sp, #8] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl InitPartyMenu - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_081B85C8: .4byte sub_081B1040 - thumb_func_end sub_081B85A4 - - thumb_func_start sub_081B85CC -sub_081B85CC: @ 0x081B85CC - push {lr} - sub sp, #0xc - movs r0, #4 - str r0, [sp] - ldr r0, _081B85F0 - str r0, [sp, #4] - ldr r0, _081B85F4 - str r0, [sp, #8] - movs r0, #0 - movs r1, #0 - movs r2, #0xc - movs r3, #0 - bl InitPartyMenu - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_081B85F0: .4byte sub_081B1040 -_081B85F4: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic - thumb_func_end sub_081B85CC - - thumb_func_start sub_081B85F8 -sub_081B85F8: @ 0x081B85F8 - push {lr} - sub sp, #0xc - movs r0, #1 - str r0, [sp] - ldr r0, _081B861C - str r0, [sp, #4] - ldr r0, _081B8620 - str r0, [sp, #8] - movs r0, #0xb - movs r1, #0 - movs r2, #0xd - movs r3, #0 - bl InitPartyMenu - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_081B861C: .4byte sub_081B1040 -_081B8620: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic - thumb_func_end sub_081B85F8 - - thumb_func_start sub_081B8624 -sub_081B8624: @ 0x081B8624 - push {lr} - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081B8634 - movs r0, #0 - b _081B8646 -_081B8634: - bl IsMultiBattle - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081B8644 - movs r0, #1 - b _081B8646 -_081B8644: - movs r0, #2 -_081B8646: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081B8624 - - thumb_func_start OpenPartyMenuInBattle -OpenPartyMenuInBattle: @ 0x081B864C - push {r4, lr} - sub sp, #0xc - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl sub_081B8624 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0 - str r0, [sp] - ldr r0, _081B8688 - str r0, [sp, #4] - ldr r0, _081B868C - str r0, [sp, #8] - movs r0, #1 - adds r2, r4, #0 - movs r3, #0 - bl InitPartyMenu - bl sub_080A8BBC - bl sub_081B8CD0 - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B8688: .4byte sub_081B1040 -_081B868C: .4byte sub_0805995C - thumb_func_end OpenPartyMenuInBattle - - thumb_func_start sub_081B8690 -sub_081B8690: @ 0x081B8690 - push {lr} - sub sp, #0xc - bl sub_081B8624 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #5 - str r0, [sp] - ldr r0, _081B86C4 - str r0, [sp, #4] - ldr r0, _081B86C8 - str r0, [sp, #8] - movs r0, #1 - movs r2, #3 - movs r3, #0 - bl InitPartyMenu - bl sub_080A8BBC - bl sub_081B8CD0 - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_081B86C4: .4byte sub_081B1040 -_081B86C8: .4byte c2_815ABFC - thumb_func_end sub_081B8690 - - thumb_func_start sub_081B86CC -sub_081B86CC: @ 0x081B86CC - push {r4, lr} - adds r4, r0, #0 - ldr r0, _081B86F4 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _081B8714 - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - bne _081B8714 - ldr r0, _081B86F8 - ldrb r0, [r0, #0xb] - cmp r0, #1 - bne _081B86FC - movs r0, #3 - b _081B8716 - .align 2, 0 -_081B86F4: .4byte gUnknown_20241F4 -_081B86F8: .4byte gUnknown_203CB94 -_081B86FC: - ldr r0, _081B8710 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xb - ands r0, r1 - cmp r0, #0 - bne _081B8714 - movs r0, #2 - b _081B8716 - .align 2, 0 -_081B8710: .4byte gUnknown_2022C90 -_081B8714: - movs r0, #7 -_081B8716: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081B86CC - - thumb_func_start sub_081B871C -sub_081B871C: @ 0x081B871C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - bl GetCursorSelectionMonId - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - bl IsMultiBattle - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081B8764 - cmp r5, #1 - beq _081B8742 - cmp r5, #4 - beq _081B8742 - cmp r5, #5 - bne _081B8764 -_081B8742: - ldr r4, _081B8758 - bl GetTrainerPartnerName - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCopy - ldr r0, _081B875C - ldr r1, _081B8760 - b _081B88E2 - .align 2, 0 -_081B8758: .4byte gUnknown_2021C40 -_081B875C: .4byte gUnknown_2021C7C -_081B8760: .4byte gUnknown_85C9B76 -_081B8764: - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _081B8788 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - bne _081B8798 - ldr r1, _081B878C - adds r0, r4, #0 - bl GetMonNickname - ldr r0, _081B8790 - ldr r1, _081B8794 - b _081B88E2 - .align 2, 0 -_081B8788: .4byte gUnknown_2024190 -_081B878C: .4byte gUnknown_2021C40 -_081B8790: .4byte gUnknown_2021C7C -_081B8794: .4byte gUnknown_85C9B59 -_081B8798: - movs r4, #0 - b _081B87C4 -_081B879C: - adds r0, r4, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081B87BE - adds r0, r5, #0 - bl sub_081B8BD8 - lsls r0, r0, #0x18 - ldr r2, _081B87EC - lsls r1, r4, #1 - adds r1, r1, r2 - lsrs r0, r0, #0x18 - ldrh r1, [r1] - cmp r0, r1 - beq _081B889C -_081B87BE: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_081B87C4: - ldr r0, _081B87F0 - ldrb r0, [r0] - cmp r4, r0 - blo _081B879C - movs r7, #0x64 - adds r0, r5, #0 - muls r0, r7, r0 - ldr r1, _081B87F4 - mov r8, r1 - adds r6, r0, r1 - adds r0, r6, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - beq _081B8800 - ldr r0, _081B87F8 - ldr r1, _081B87FC - b _081B88E2 - .align 2, 0 -_081B87EC: .4byte gUnknown_2023D12 -_081B87F0: .4byte gUnknown_2023D10 -_081B87F4: .4byte gUnknown_2024190 -_081B87F8: .4byte gUnknown_2021C7C -_081B87FC: .4byte gUnknown_85C9B9D -_081B8800: - adds r0, r5, #0 - bl sub_081B8BD8 - ldr r1, _081B8824 - ldr r1, [r1] - adds r1, #0x8b - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1] - cmp r0, r1 - bne _081B8834 - ldr r1, _081B8828 - adds r0, r6, #0 - bl GetMonNickname - ldr r0, _081B882C - ldr r1, _081B8830 - b _081B88E2 - .align 2, 0 -_081B8824: .4byte gUnknown_2024140 -_081B8828: .4byte gUnknown_2021C40 -_081B882C: .4byte gUnknown_2021C7C -_081B8830: .4byte gUnknown_85C9B43 -_081B8834: - ldr r0, _081B8844 - ldrb r0, [r0, #0xb] - cmp r0, #4 - bne _081B8848 - bl SetMonPreventsSwitchingString - b _081B88E6 - .align 2, 0 -_081B8844: .4byte gUnknown_203CB94 -_081B8848: - cmp r0, #2 - beq _081B88C0 - adds r0, r5, #0 - bl sub_081B8BD8 - ldr r1, _081B888C - strb r0, [r1] - ldr r1, _081B8890 - movs r0, #1 - strb r0, [r1] - ldr r1, _081B8894 - ldr r0, _081B8898 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - bl pokemon_order_func - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_081B8C50 - adds r0, r4, #0 - muls r0, r7, r0 - add r0, r8 - adds r1, r6, #0 - bl sub_081B0F58 - movs r0, #1 - b _081B88E8 - .align 2, 0 -_081B888C: .4byte gUnknown_203CBB5 -_081B8890: .4byte gUnknown_203CBB4 -_081B8894: .4byte gUnknown_2023D12 -_081B8898: .4byte gUnknown_202415C -_081B889C: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081B88B0 - adds r0, r0, r1 - ldr r1, _081B88B4 - bl GetMonNickname - ldr r0, _081B88B8 - ldr r1, _081B88BC - b _081B88E2 - .align 2, 0 -_081B88B0: .4byte gUnknown_2024190 -_081B88B4: .4byte gUnknown_2021C40 -_081B88B8: .4byte gUnknown_2021C7C -_081B88BC: .4byte gUnknown_85C9B2D -_081B88C0: - ldr r0, _081B88F4 - ldrb r0, [r0] - ldr r1, _081B88F8 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - bl pokemon_order_func - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - muls r0, r7, r0 - add r0, r8 - ldr r1, _081B88FC - bl GetMonNickname - ldr r0, _081B8900 - ldr r1, _081B8904 -_081B88E2: - bl StringExpandPlaceholders -_081B88E6: - movs r0, #0 -_081B88E8: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081B88F4: .4byte gUnknown_202415C -_081B88F8: .4byte gUnknown_2023D12 -_081B88FC: .4byte gUnknown_2021C40 -_081B8900: .4byte gUnknown_2021C7C -_081B8904: .4byte gUnknown_85C9B1A - thumb_func_end sub_081B871C - - thumb_func_start sub_081B8908 -sub_081B8908: @ 0x081B8908 - push {r4, lr} - ldr r4, _081B8924 - bl sub_0806D288 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl sub_081B8928 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B8924: .4byte gUnknown_203CBCC - thumb_func_end sub_081B8908 - - thumb_func_start sub_081B8928 -sub_081B8928: @ 0x081B8928 - push {r4, r5, r6, lr} - sub sp, #8 - adds r6, r0, #0 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - bl IsMultiBattle - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081B895E - cmp r4, #0 - beq _081B8950 - movs r0, #0x30 - strb r0, [r6] - movs r0, #0x45 - strb r0, [r6, #1] - movs r0, #0x12 - strb r0, [r6, #2] - b _081B89F8 -_081B8950: - movs r0, #3 - strb r0, [r6] - movs r0, #0x12 - strb r0, [r6, #1] - movs r0, #0x45 - strb r0, [r6, #2] - b _081B89F8 -_081B895E: - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081B899C - movs r5, #1 - movs r0, #0 - bl GetBattlerAtPosition - mov r2, sp - ldr r1, _081B8998 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r1 - ldrh r0, [r0] - strb r0, [r2] - movs r4, #0 - mov r1, sp -_081B8982: - ldrb r0, [r1] - cmp r4, r0 - beq _081B8990 - mov r2, sp - adds r0, r2, r5 - strb r4, [r0] - adds r5, #1 -_081B8990: - adds r4, #1 - cmp r4, #5 - ble _081B8982 - b _081B89E0 - .align 2, 0 -_081B8998: .4byte gUnknown_2023D12 -_081B899C: - movs r5, #2 - movs r0, #0 - bl GetBattlerAtPosition - mov r1, sp - ldr r4, _081B8A00 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r4 - ldrh r0, [r0] - strb r0, [r1] - movs r0, #2 - bl GetBattlerAtPosition - mov r1, sp - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r4 - ldrh r0, [r0] - strb r0, [r1, #1] - movs r4, #0 -_081B89C6: - ldrb r0, [r1] - cmp r4, r0 - beq _081B89DA - ldrb r0, [r1, #1] - cmp r4, r0 - beq _081B89DA - mov r2, sp - adds r0, r2, r5 - strb r4, [r0] - adds r5, #1 -_081B89DA: - adds r4, #1 - cmp r4, #5 - ble _081B89C6 -_081B89E0: - movs r4, #0 - mov r3, sp -_081B89E4: - adds r0, r6, r4 - ldrb r1, [r3] - lsls r1, r1, #4 - ldrb r2, [r3, #1] - orrs r1, r2 - strb r1, [r0] - adds r3, #2 - adds r4, #1 - cmp r4, #2 - ble _081B89E4 -_081B89F8: - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081B8A00: .4byte gUnknown_2023D12 - thumb_func_end sub_081B8928 - - thumb_func_start sub_081B8A04 -sub_081B8A04: @ 0x081B8A04 - push {lr} - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, _081B8A24 - lsls r3, r2, #1 - adds r3, r3, r2 - adds r3, #0x60 - ldr r0, [r0] - adds r0, r0, r3 - bl sub_081B8A28 - pop {r0} - bx r0 - .align 2, 0 -_081B8A24: .4byte gUnknown_2024140 - thumb_func_end sub_081B8A04 - - thumb_func_start sub_081B8A28 -sub_081B8A28: @ 0x081B8A28 - push {r4, r5, r6, r7, lr} - sub sp, #8 - adds r5, r0, #0 - adds r0, r2, #0 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081B8A50 - movs r0, #0 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #2 - b _081B8A5C -_081B8A50: - movs r0, #1 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #3 -_081B8A5C: - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - bl IsMultiBattle - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081B8A90 - cmp r7, #0 - beq _081B8A82 - movs r0, #0x30 - strb r0, [r5] - movs r0, #0x45 - strb r0, [r5, #1] - movs r0, #0x12 - strb r0, [r5, #2] - b _081B8B12 -_081B8A82: - movs r0, #3 - strb r0, [r5] - movs r0, #0x12 - strb r0, [r5, #1] - movs r0, #0x45 - strb r0, [r5, #2] - b _081B8B12 -_081B8A90: - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081B8AC8 - movs r3, #1 - mov r2, sp - ldr r1, _081B8AC4 - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strb r0, [r2] - movs r4, #0 - mov r1, sp -_081B8AAC: - ldrb r0, [r1] - cmp r4, r0 - beq _081B8ABA - mov r2, sp - adds r0, r2, r3 - strb r4, [r0] - adds r3, #1 -_081B8ABA: - adds r4, #1 - cmp r4, #5 - ble _081B8AAC - b _081B8AFA - .align 2, 0 -_081B8AC4: .4byte gUnknown_2023D12 -_081B8AC8: - movs r3, #2 - mov r1, sp - ldr r2, _081B8B1C - lsls r0, r4, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strb r0, [r1] - lsls r0, r6, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strb r0, [r1, #1] - movs r4, #0 -_081B8AE0: - ldrb r0, [r1] - cmp r4, r0 - beq _081B8AF4 - ldrb r0, [r1, #1] - cmp r4, r0 - beq _081B8AF4 - mov r2, sp - adds r0, r2, r3 - strb r4, [r0] - adds r3, #1 -_081B8AF4: - adds r4, #1 - cmp r4, #5 - ble _081B8AE0 -_081B8AFA: - movs r4, #0 - mov r3, sp -_081B8AFE: - adds r0, r5, r4 - ldrb r1, [r3] - lsls r1, r1, #4 - ldrb r2, [r3, #1] - orrs r1, r2 - strb r1, [r0] - adds r3, #2 - adds r4, #1 - cmp r4, #2 - ble _081B8AFE -_081B8B12: - add sp, #8 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B8B1C: .4byte gUnknown_2023D12 - thumb_func_end sub_081B8A28 - - thumb_func_start sub_081B8B20 -sub_081B8B20: @ 0x081B8B20 - push {r4, r5, r6, r7, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - movs r7, #0 - bl IsMultiBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081B8BCE - ldr r0, _081B8B84 - lsls r1, r4, #1 - adds r1, r1, r4 - adds r1, #0x60 - ldr r0, [r0] - adds r4, r0, r1 - movs r2, #0 - add r6, sp - mov ip, r6 - movs r6, #0xf - mov r3, sp -_081B8B52: - adds r1, r4, r2 - ldrb r0, [r1] - lsrs r0, r0, #4 - strb r0, [r3] - adds r3, #1 - ldrb r1, [r1] - adds r0, r6, #0 - ands r0, r1 - strb r0, [r3] - adds r3, #1 - adds r2, #1 - cmp r2, #2 - ble _081B8B52 - mov r0, ip - ldrb r3, [r0] - movs r2, #0 - mov r0, sp - ldrb r0, [r0] - cmp r0, r5 - bne _081B8B88 - mov r0, sp - ldrb r7, [r0] - strb r3, [r0] - b _081B8B9C - .align 2, 0 -_081B8B84: .4byte gUnknown_2024140 -_081B8B88: - adds r2, #1 - cmp r2, #5 - bgt _081B8B9C - mov r0, sp - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, r5 - bne _081B8B88 - adds r7, r0, #0 - strb r3, [r1] -_081B8B9C: - cmp r2, #6 - beq _081B8BCE - mov r0, ip - strb r7, [r0] - mov r0, sp - ldrb r0, [r0] - lsls r0, r0, #4 - mov r1, sp - ldrb r1, [r1, #1] - orrs r0, r1 - strb r0, [r4] - mov r0, sp - ldrb r0, [r0, #2] - lsls r0, r0, #4 - mov r1, sp - ldrb r1, [r1, #3] - orrs r0, r1 - strb r0, [r4, #1] - mov r0, sp - ldrb r0, [r0, #4] - lsls r0, r0, #4 - mov r1, sp - ldrb r1, [r1, #5] - orrs r0, r1 - strb r0, [r4, #2] -_081B8BCE: - add sp, #8 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081B8B20 - - thumb_func_start sub_081B8BD8 -sub_081B8BD8: @ 0x081B8BD8 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - movs r1, #1 - ands r1, r2 - lsrs r2, r0, #0x19 - cmp r1, #0 - beq _081B8BF8 - ldr r0, _081B8BF4 - adds r0, r2, r0 - ldrb r0, [r0] - movs r1, #0xf - ands r1, r0 - b _081B8C00 - .align 2, 0 -_081B8BF4: .4byte gUnknown_203CBCC -_081B8BF8: - ldr r0, _081B8C08 - adds r0, r2, r0 - ldrb r0, [r0] - lsrs r1, r0, #4 -_081B8C00: - adds r0, r1, #0 - pop {r1} - bx r1 - .align 2, 0 -_081B8C08: .4byte gUnknown_203CBCC - thumb_func_end sub_081B8BD8 - - thumb_func_start sub_081B8C0C -sub_081B8C0C: @ 0x081B8C0C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - movs r1, #1 - ands r1, r3 - lsrs r3, r0, #0x19 - cmp r1, #0 - beq _081B8C34 - ldr r0, _081B8C30 - adds r0, r3, r0 - ldrb r2, [r0] - movs r1, #0xf0 - ands r1, r2 - orrs r1, r4 - strb r1, [r0] - b _081B8C44 - .align 2, 0 -_081B8C30: .4byte gUnknown_203CBCC -_081B8C34: - ldr r2, _081B8C4C - adds r2, r3, r2 - ldrb r1, [r2] - movs r0, #0xf - ands r0, r1 - lsls r1, r4, #4 - orrs r0, r1 - strb r0, [r2] -_081B8C44: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B8C4C: .4byte gUnknown_203CBCC - thumb_func_end sub_081B8C0C - - thumb_func_start sub_081B8C50 -sub_081B8C50: @ 0x081B8C50 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - adds r0, r5, #0 - bl sub_081B8BD8 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r6, #0 - bl sub_081B8BD8 - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl sub_081B8C0C - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_081B8C0C - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081B8C50 - - thumb_func_start pokemon_order_func -pokemon_order_func: @ 0x081B8C8C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r3, #0 - movs r2, #0 - ldr r5, _081B8CB4 -_081B8C98: - adds r0, r3, r5 - ldrb r1, [r0] - lsrs r0, r1, #4 - cmp r0, r4 - beq _081B8CB0 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - movs r0, #0xf - ands r0, r1 - cmp r0, r4 - bne _081B8CB8 -_081B8CB0: - adds r0, r2, #0 - b _081B8CCA - .align 2, 0 -_081B8CB4: .4byte gUnknown_203CBCC -_081B8CB8: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #2 - bls _081B8C98 - movs r0, #0 -_081B8CCA: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end pokemon_order_func - - thumb_func_start sub_081B8CD0 -sub_081B8CD0: @ 0x081B8CD0 - push {r4, r5, r6, lr} - movs r4, #0x96 - lsls r4, r4, #2 - adds r0, r4, #0 - bl sub_08000BC8 - adds r5, r0, #0 - ldr r1, _081B8D1C - adds r2, r4, #0 - bl memcpy - movs r4, #0 - movs r6, #0x64 -_081B8CEA: - adds r0, r4, #0 - bl pokemon_order_func - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - muls r0, r6, r0 - ldr r1, _081B8D1C - adds r0, r0, r1 - adds r1, r4, #0 - muls r1, r6, r1 - adds r1, r1, r5 - movs r2, #0x64 - bl memcpy - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #5 - bls _081B8CEA - adds r0, r5, #0 - bl Free - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081B8D1C: .4byte gUnknown_2024190 - thumb_func_end sub_081B8CD0 - - thumb_func_start sub_081B8D20 -sub_081B8D20: @ 0x081B8D20 - push {r4, r5, r6, lr} - movs r4, #0x96 - lsls r4, r4, #2 - adds r0, r4, #0 - bl sub_08000BC8 - adds r5, r0, #0 - ldr r1, _081B8D6C - adds r2, r4, #0 - bl memcpy - movs r4, #0 - movs r6, #0x64 -_081B8D3A: - adds r0, r4, #0 - bl sub_081B8BD8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - muls r0, r6, r0 - ldr r1, _081B8D6C - adds r0, r0, r1 - adds r1, r4, #0 - muls r1, r6, r1 - adds r1, r1, r5 - movs r2, #0x64 - bl memcpy - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #5 - bls _081B8D3A - adds r0, r5, #0 - bl Free - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081B8D6C: .4byte gUnknown_2024190 - thumb_func_end sub_081B8D20 - - thumb_func_start sub_081B8D70 -sub_081B8D70: @ 0x081B8D70 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r6, #1 - movs r7, #0x64 - ldr r0, _081B8DC8 - mov r8, r0 -_081B8D7E: - adds r0, r6, #0 - bl sub_081B8BD8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - muls r0, r7, r0 - mov r1, r8 - adds r5, r0, r1 - adds r0, r5, #0 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _081B8DCC - adds r0, r5, #0 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _081B8DCC - movs r0, #0 - bl sub_081B8BD8 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - adds r1, r6, #0 - bl sub_081B8C50 - adds r0, r4, #0 - muls r0, r7, r0 - add r0, r8 - adds r1, r5, #0 - bl sub_081B0F58 - b _081B8DD6 - .align 2, 0 -_081B8DC8: .4byte gUnknown_2024190 -_081B8DCC: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #5 - bls _081B8D7E -_081B8DD6: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_081B8D70 - - thumb_func_start sub_081B8DE0 -sub_081B8DE0: @ 0x081B8DE0 - push {lr} - ldr r0, _081B8DEC - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_081B8DEC: .4byte sub_0805995C - thumb_func_end sub_081B8DE0 - - thumb_func_start sub_081B8DF0 -sub_081B8DF0: @ 0x081B8DF0 - push {lr} - sub sp, #0xc - movs r0, #0x7f - str r0, [sp] - ldr r0, _081B8E14 - str r0, [sp, #4] - ldr r0, _081B8E18 - ldr r0, [r0, #8] - str r0, [sp, #8] - movs r0, #5 - movs r1, #3 - movs r2, #0 - movs r3, #0 - bl InitPartyMenu - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_081B8E14: .4byte sub_081B8E1C -_081B8E18: .4byte gUnknown_3002360 - thumb_func_end sub_081B8DF0 - - thumb_func_start sub_081B8E1C -sub_081B8E1C: @ 0x081B8E1C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081B8E4C - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - adds r4, r4, r1 - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r4, #8] - bl sub_081B8F34 - movs r1, #0x80 - lsls r1, r1, #9 - movs r0, #2 - movs r2, #0 - bl ChangeBgX - ldr r0, _081B8E50 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B8E4C: .4byte gUnknown_3005B60 -_081B8E50: .4byte sub_081B8E54 - thumb_func_end sub_081B8E1C - - thumb_func_start sub_081B8E54 -sub_081B8E54: @ 0x081B8E54 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r6, r5, #2 - adds r0, r6, r5 - lsls r0, r0, #3 - ldr r1, _081B8EC8 - adds r4, r0, r1 - ldr r0, _081B8ECC - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081B8EC0 - ldrh r0, [r4] - subs r0, #8 - strh r0, [r4] - adds r0, r5, #0 - bl sub_081B8F34 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _081B8EC0 - movs r4, #3 - ldr r7, _081B8ED0 -_081B8E88: - subs r0, r4, #3 - lsls r0, r0, #5 - adds r0, r0, r7 - ldrh r0, [r0] - cmp r0, #0 - beq _081B8EA4 - ldr r0, _081B8ED4 - ldr r1, [r0] - lsls r0, r4, #4 - adds r0, r0, r1 - ldrb r0, [r0, #9] - movs r1, #0 - bl AnimateSelectedPartyIcon -_081B8EA4: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #5 - bls _081B8E88 - movs r0, #0x78 - bl sub_080A306C - ldr r0, _081B8ED8 - adds r1, r6, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081B8EDC - str r0, [r1] -_081B8EC0: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B8EC8: .4byte gUnknown_3005B68 -_081B8ECC: .4byte gUnknown_2037C74 -_081B8ED0: .4byte gUnknown_2022C9C -_081B8ED4: .4byte gUnknown_203CBA8 -_081B8ED8: .4byte gUnknown_3005B60 -_081B8EDC: .4byte sub_081B8EE0 - thumb_func_end sub_081B8E54 - - thumb_func_start sub_081B8EE0 -sub_081B8EE0: @ 0x081B8EE0 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _081B8F0C - adds r0, r0, r1 - ldrh r1, [r0] - adds r1, #1 - strh r1, [r0] - lsls r1, r1, #0x10 - movs r0, #0x80 - lsls r0, r0, #0x11 - cmp r1, r0 - bne _081B8F06 - adds r0, r2, #0 - bl sub_081B0F90 -_081B8F06: - pop {r0} - bx r0 - .align 2, 0 -_081B8F0C: .4byte gUnknown_3005B68 - thumb_func_end sub_081B8EE0 - - thumb_func_start sub_081B8F10 -sub_081B8F10: @ 0x081B8F10 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r3, r1, #0x10 - cmp r1, #0 - blt _081B8F2A - ldr r1, _081B8F30 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - strh r3, [r0, #0x24] -_081B8F2A: - pop {r0} - bx r0 - .align 2, 0 -_081B8F30: .4byte gUnknown_20205AC - thumb_func_end sub_081B8F10 - - thumb_func_start sub_081B8F34 -sub_081B8F34: @ 0x081B8F34 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _081B8FBC - adds r5, r1, r0 - movs r6, #3 - ldr r7, _081B8FC0 -_081B8F48: - ldr r0, _081B8FC4 - subs r1, r6, #3 - lsls r1, r1, #5 - adds r1, r1, r0 - ldrh r0, [r1] - cmp r0, #0 - beq _081B8FA0 - ldr r0, [r7] - lsls r4, r6, #4 - adds r0, r4, r0 - ldrb r0, [r0, #9] - ldrh r1, [r5] - subs r1, #8 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl sub_081B8F10 - ldr r0, [r7] - adds r0, r4, r0 - ldrb r0, [r0, #0xa] - ldrh r1, [r5] - subs r1, #8 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl sub_081B8F10 - ldr r0, [r7] - adds r0, r4, r0 - ldrb r0, [r0, #0xb] - ldrh r1, [r5] - subs r1, #8 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl sub_081B8F10 - ldr r0, [r7] - adds r4, r4, r0 - ldrb r0, [r4, #0xc] - ldrh r1, [r5] - subs r1, #8 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl sub_081B8F10 -_081B8FA0: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #5 - bls _081B8F48 - movs r1, #0x80 - lsls r1, r1, #4 - movs r0, #2 - movs r2, #1 - bl ChangeBgX - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B8FBC: .4byte gUnknown_3005B68 -_081B8FC0: .4byte gUnknown_203CBA8 -_081B8FC4: .4byte gUnknown_2022C9C - thumb_func_end sub_081B8F34 - - thumb_func_start sub_081B8FC8 -sub_081B8FC8: @ 0x081B8FC8 - push {lr} - sub sp, #0xc - movs r0, #0xf - str r0, [sp] - ldr r0, _081B8FEC - str r0, [sp, #4] - ldr r0, _081B8FF0 - str r0, [sp, #8] - movs r0, #6 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl InitPartyMenu - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_081B8FEC: .4byte sub_081B1040 -_081B8FF0: .4byte sub_081B9030 - thumb_func_end sub_081B8FC8 - - thumb_func_start sub_081B8FF4 -sub_081B8FF4: @ 0x081B8FF4 - push {lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _081B9020 - ldr r1, _081B9024 - str r1, [r2] - movs r1, #0 - str r1, [sp] - ldr r1, _081B9028 - str r1, [sp, #4] - ldr r1, _081B902C - str r1, [sp, #8] - movs r1, #0 - movs r2, #0xb - movs r3, #0 - bl InitPartyMenu - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_081B9020: .4byte gUnknown_3005B10 -_081B9024: .4byte hm_add_c3_without_phase_2 -_081B9028: .4byte sub_081B1040 -_081B902C: .4byte sub_08085A30 - thumb_func_end sub_081B8FF4 - - thumb_func_start sub_081B9030 -sub_081B9030: @ 0x081B9030 - push {r4, lr} - ldr r4, _081B9058 - bl GetCursorSelectionMonId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - cmp r0, #5 - bls _081B9046 - movs r0, #0xff - strh r0, [r4] -_081B9046: - ldr r0, _081B905C - ldr r1, _081B9060 - str r1, [r0] - ldr r0, _081B9064 - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B9058: .4byte gUnknown_2037280 -_081B905C: .4byte gUnknown_3005B10 -_081B9060: .4byte hm_add_c3_without_phase_2 -_081B9064: .4byte sub_08085A30 - thumb_func_end sub_081B9030 - - thumb_func_start hm_add_c3_without_phase_2 -hm_add_c3_without_phase_2: @ 0x081B9068 - push {lr} - bl pal_fill_black - ldr r0, _081B907C - movs r1, #0xa - bl CreateTask - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 -_081B907C: .4byte TossPokeblockChoice_No - thumb_func_end hm_add_c3_without_phase_2 - - thumb_func_start TossPokeblockChoice_No -TossPokeblockChoice_No: @ 0x081B9080 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl IsWeatherNotFadingIn - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081B909E - adds r0, r4, #0 - bl DestroyTask - bl sub_080987E8 - bl EnableBothScriptContexts -_081B909E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end TossPokeblockChoice_No - - thumb_func_start sub_081B90A4 -sub_081B90A4: @ 0x081B90A4 - push {lr} - bl sub_080987DC - movs r0, #1 - movs r1, #0 - bl FadeScreen - ldr r0, _081B90C0 - movs r1, #0xa - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_081B90C0: .4byte sub_081B90C4 - thumb_func_end sub_081B90A4 - - thumb_func_start sub_081B90C4 -sub_081B90C4: @ 0x081B90C4 - push {r4, r5, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _081B9104 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _081B90FC - bl CleanupOverworldWindowsAndTilemaps - str r4, [sp] - ldr r0, _081B9108 - str r0, [sp, #4] - ldr r0, _081B910C - str r0, [sp, #8] - movs r0, #2 - movs r1, #0 - movs r2, #0xb - movs r3, #0 - bl InitPartyMenu - adds r0, r5, #0 - bl DestroyTask -_081B90FC: - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B9104: .4byte gUnknown_2037C74 -_081B9108: .4byte sub_081B1040 -_081B910C: .4byte sub_081B9110 - thumb_func_end sub_081B90C4 - - thumb_func_start sub_081B9110 -sub_081B9110: @ 0x081B9110 - push {lr} - bl GetCursorSelectionMonId - ldr r2, _081B913C - strb r0, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #5 - bls _081B9126 - movs r0, #0xff - strb r0, [r2] -_081B9126: - ldr r1, _081B9140 - ldrb r0, [r2] - strh r0, [r1] - ldr r1, _081B9144 - ldr r0, _081B9148 - str r0, [r1] - ldr r0, _081B914C - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_081B913C: .4byte gUnknown_2039BC4 -_081B9140: .4byte gUnknown_2037280 -_081B9144: .4byte gUnknown_3005B10 -_081B9148: .4byte hm_add_c3_without_phase_2 -_081B914C: .4byte sub_08085A30 - thumb_func_end sub_081B9110 - - thumb_func_start sub_081B9150 -sub_081B9150: @ 0x081B9150 - push {lr} - bl sub_080987DC - movs r0, #1 - movs r1, #0 - bl FadeScreen - ldr r0, _081B916C - movs r1, #0xa - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_081B916C: .4byte sub_081B9170 - thumb_func_end sub_081B9150 - - thumb_func_start sub_081B9170 -sub_081B9170: @ 0x081B9170 - push {r4, r5, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _081B91B0 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _081B91A8 - bl CleanupOverworldWindowsAndTilemaps - str r4, [sp] - ldr r0, _081B91B4 - str r0, [sp, #4] - ldr r0, _081B91B8 - str r0, [sp, #8] - movs r0, #3 - movs r1, #0 - movs r2, #0xb - movs r3, #0 - bl InitPartyMenu - adds r0, r5, #0 - bl DestroyTask -_081B91A8: - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B91B0: .4byte gUnknown_2037C74 -_081B91B4: .4byte sub_081B1040 -_081B91B8: .4byte sub_081B9030 - thumb_func_end sub_081B9170 - - thumb_func_start sub_081B91BC -sub_081B91BC: @ 0x081B91BC - push {lr} - bl sub_080987DC - movs r0, #1 - movs r1, #0 - bl FadeScreen - ldr r0, _081B91D8 - movs r1, #0xa - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_081B91D8: .4byte sub_081B91DC - thumb_func_end sub_081B91BC - - thumb_func_start sub_081B91DC -sub_081B91DC: @ 0x081B91DC - push {r4, r5, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _081B921C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _081B9214 - bl CleanupOverworldWindowsAndTilemaps - str r4, [sp] - ldr r0, _081B9220 - str r0, [sp, #4] - ldr r0, _081B9224 - str r0, [sp, #8] - movs r0, #7 - movs r1, #0 - movs r2, #0xb - movs r3, #0 - bl InitPartyMenu - adds r0, r5, #0 - bl DestroyTask -_081B9214: - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B921C: .4byte gUnknown_2037C74 -_081B9220: .4byte sub_081B1040 -_081B9224: .4byte sub_081B9228 - thumb_func_end sub_081B91DC - - thumb_func_start sub_081B9228 -sub_081B9228: @ 0x081B9228 - push {r4, r5, lr} - ldr r5, _081B9240 - bl GetCursorSelectionMonId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5] - cmp r0, #5 - bls _081B9244 - movs r0, #0xff - strh r0, [r5] - b _081B925A - .align 2, 0 -_081B9240: .4byte gUnknown_2037280 -_081B9244: - ldr r4, _081B926C - ldrh r1, [r5] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081B9270 - adds r0, r0, r1 - bl GetNumberOfRelearnableMoves - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] -_081B925A: - ldr r0, _081B9274 - ldr r1, _081B9278 - str r1, [r0] - ldr r0, _081B927C - bl SetMainCallback2 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B926C: .4byte gUnknown_2037282 -_081B9270: .4byte gUnknown_2024190 -_081B9274: .4byte gUnknown_3005B10 -_081B9278: .4byte hm_add_c3_without_phase_2 -_081B927C: .4byte sub_08085A30 - thumb_func_end sub_081B9228 - - thumb_func_start sub_081B9280 -sub_081B9280: @ 0x081B9280 - push {r4, r5, lr} - ldr r1, _081B9290 - movs r0, #0 - strh r0, [r1] - movs r4, #0 - adds r5, r1, #0 - b _081B929A - .align 2, 0 -_081B9290: .4byte gUnknown_2037290 -_081B9294: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_081B929A: - cmp r4, #2 - bhi _081B92B4 - movs r0, #0x64 - muls r0, r4, r0 - ldr r1, _081B92BC - adds r0, r0, r1 - movs r1, #0xc - bl GetMonData - cmp r0, #0 - beq _081B9294 - movs r0, #1 - strh r0, [r5] -_081B92B4: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B92BC: .4byte gUnknown_2024190 - thumb_func_end sub_081B9280 - - thumb_func_start sub_081B92C0 -sub_081B92C0: @ 0x081B92C0 - push {lr} - bl sub_080987DC - movs r0, #1 - movs r1, #0 - bl FadeScreen - ldr r0, _081B92DC - movs r1, #0xa - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_081B92DC: .4byte sub_081B92E0 - thumb_func_end sub_081B92C0 - - thumb_func_start sub_081B92E0 -sub_081B92E0: @ 0x081B92E0 - push {r4, r5, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _081B9320 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _081B9318 - bl CleanupOverworldWindowsAndTilemaps - str r4, [sp] - ldr r0, _081B9324 - str r0, [sp, #4] - ldr r0, _081B9328 - str r0, [sp, #8] - movs r0, #0xc - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl InitPartyMenu - adds r0, r5, #0 - bl DestroyTask -_081B9318: - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B9320: .4byte gUnknown_2037C74 -_081B9324: .4byte sub_081B1040 -_081B9328: .4byte sub_081B9030 - thumb_func_end sub_081B92E0 - - thumb_func_start ForcedMovement_Slip -ForcedMovement_Slip: @ 0x081B932C - push {lr} - sub sp, #4 - ldr r1, _081B9358 - ldr r0, _081B935C - ldrb r2, [r0] - ldr r0, _081B9360 - ldrb r3, [r0] - subs r3, #1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r0, _081B9364 - str r0, [sp] - movs r0, #3 - bl ShowPokemonSummaryScreen - ldr r1, _081B9368 - ldr r0, _081B936C - str r0, [r1] - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_081B9358: .4byte gUnknown_2024190 -_081B935C: .4byte gUnknown_2037280 -_081B9360: .4byte gUnknown_202418D -_081B9364: .4byte sub_08085A30 -_081B9368: .4byte gUnknown_3005B0C -_081B936C: .4byte FieldCallback_ReturnToEventScript2 - thumb_func_end ForcedMovement_Slip - - thumb_func_start sub_081B9370 -sub_081B9370: @ 0x081B9370 - push {r4, r5, lr} - ldr r1, _081B93AC - movs r0, #0 - strh r0, [r1] - movs r4, #0 - adds r5, r1, #0 -_081B937C: - ldr r0, _081B93B0 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081B93B4 - adds r0, r0, r1 - adds r1, r4, #0 - adds r1, #0xd - bl GetMonData - cmp r0, #0 - beq _081B939A - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] -_081B939A: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _081B937C - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B93AC: .4byte gUnknown_2037290 -_081B93B0: .4byte gUnknown_2037280 -_081B93B4: .4byte gUnknown_2024190 - thumb_func_end sub_081B9370 - - thumb_func_start sub_081B93B8 -sub_081B93B8: @ 0x081B93B8 - push {r4, r5, lr} - ldr r0, _081B93F8 - ldrh r1, [r0] - movs r0, #0x64 - adds r5, r1, #0 - muls r5, r0, r5 - ldr r0, _081B93FC - adds r5, r5, r0 - ldr r0, _081B9400 - ldrh r1, [r0] - adds r1, #0xd - adds r0, r5, #0 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r1, _081B9404 - adds r0, r5, #0 - bl GetMonNickname - ldr r0, _081B9408 - lsls r4, r4, #3 - ldr r1, _081B940C - adds r4, r4, r1 - adds r1, r4, #0 - bl StringCopy - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B93F8: .4byte gUnknown_2037280 -_081B93FC: .4byte gUnknown_2024190 -_081B9400: .4byte gUnknown_2037282 -_081B9404: .4byte gUnknown_2021C40 -_081B9408: .4byte gUnknown_2021C54 -_081B940C: .4byte gUnknown_82EACC4 - thumb_func_end sub_081B93B8 - - thumb_func_start sub_081B9410 -sub_081B9410: @ 0x081B9410 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - ldr r0, _081B9470 - mov r8, r0 - ldrh r0, [r0] - movs r6, #0x64 - muls r0, r6, r0 - ldr r5, _081B9474 - adds r0, r0, r5 - ldr r4, _081B9478 - ldrb r2, [r4] - movs r1, #0 - bl SetMonMoveSlot - mov r1, r8 - ldrh r0, [r1] - muls r0, r6, r0 - adds r0, r0, r5 - ldrb r1, [r4] - bl RemoveMonPPBonus - ldrh r4, [r4] - cmp r4, #2 - bhi _081B9464 -_081B9442: - ldr r0, _081B9470 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081B9474 - adds r0, r0, r1 - lsls r1, r4, #0x18 - lsrs r1, r1, #0x18 - adds r4, #1 - lsls r2, r4, #0x18 - lsrs r2, r2, #0x18 - bl sub_081B947C - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - cmp r4, #2 - bls _081B9442 -_081B9464: - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081B9470: .4byte gUnknown_2037280 -_081B9474: .4byte gUnknown_2024190 -_081B9478: .4byte gUnknown_2037282 - thumb_func_end sub_081B9410 - - thumb_func_start sub_081B947C -sub_081B947C: @ 0x081B947C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - mov r8, r0 - adds r5, r1, #0 - adds r4, r2, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - adds r0, #0xd - str r0, [sp, #8] - mov r0, r8 - ldr r1, [sp, #8] - bl GetMonData - mov r1, sp - adds r1, #2 - 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, #5 - 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, #4 - mov sl, r7 - strb r0, [r7] - mov r0, r8 - movs r1, #0x15 - bl GetMonData - mov r6, sp - adds r6, #6 - strb r0, [r6] - ldr r1, _081B9578 - adds r0, r5, r1 - ldrb r0, [r0] - mov sb, r0 - ldrb r0, [r6] - adds r2, r0, #0 - mov r3, sb - ands r2, r3 - lsls r5, r5, #1 - asrs r2, r5 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r1, r4, r1 - ldrb r3, [r1] - adds r1, r0, #0 - ands r1, r3 - lsls r4, r4, #1 - asrs r1, r4 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r7, sb - bics r0, r7 - strb r0, [r6] - ldrb r0, [r6] - bics r0, r3 - strb r0, [r6] - lsls r2, r4 - lsls r1, r5 - adds r2, r2, r1 - ldrb r0, [r6] - orrs r0, r2 - strb r0, [r6] - mov r0, r8 - ldr r1, [sp, #8] - 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, sl - 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, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B9578: .4byte gUnknown_82FA6AA - thumb_func_end sub_081B947C - - thumb_func_start sub_081B957C -sub_081B957C: @ 0x081B957C - push {lr} - ldr r0, _081B95A0 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081B95A4 - adds r0, r0, r1 - movs r1, #0x2d - bl GetMonData - adds r1, r0, #0 - cmp r1, #0 - beq _081B95AC - ldr r1, _081B95A8 - movs r0, #1 - strh r0, [r1] - b _081B95B0 - .align 2, 0 -_081B95A0: .4byte gUnknown_2037280 -_081B95A4: .4byte gUnknown_2024190 -_081B95A8: .4byte gUnknown_2037290 -_081B95AC: - ldr r0, _081B95B4 - strh r1, [r0] -_081B95B0: - pop {r0} - bx r0 - .align 2, 0 -_081B95B4: .4byte gUnknown_2037290 - thumb_func_end sub_081B957C - - thumb_func_start sub_081B95B8 -sub_081B95B8: @ 0x081B95B8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r1, _081B95E8 - movs r0, #0 - strh r0, [r1] - ldr r0, _081B95EC - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081B95F0 - adds r0, r0, r1 - ldr r1, _081B95F4 - ldrh r1, [r1] - adds r1, #0xd - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - cmp r0, #0x39 - bne _081B963C - movs r6, #0 - b _081B9620 - .align 2, 0 -_081B95E8: .4byte gUnknown_2037290 -_081B95EC: .4byte gUnknown_2037280 -_081B95F0: .4byte gUnknown_2024190 -_081B95F4: .4byte gUnknown_2037282 -_081B95F8: - ldr r0, _081B9648 - ldrh r0, [r0] - cmp r6, r0 - beq _081B961E - movs r4, #0 - movs r0, #0x64 - adds r5, r6, #0 - muls r5, r0, r5 - ldr r7, _081B964C -_081B960A: - adds r1, r4, #0 - adds r1, #0xd - adds r0, r5, r7 - bl GetMonData - cmp r0, #0x39 - beq _081B963C - adds r4, #1 - cmp r4, #3 - bls _081B960A -_081B961E: - adds r6, #1 -_081B9620: - bl sub_0806B004 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r6, r0 - blo _081B95F8 - mov r0, r8 - bl AnyStorageMonWithMove - cmp r0, #1 - beq _081B963C - ldr r1, _081B9650 - movs r0, #1 - strh r0, [r1] -_081B963C: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B9648: .4byte gUnknown_2037280 -_081B964C: .4byte gUnknown_2024190 -_081B9650: .4byte gUnknown_2037290 - thumb_func_end sub_081B95B8 - - thumb_func_start sub_081B9654 -sub_081B9654: @ 0x081B9654 - push {lr} - ldr r1, _081B966C - ldr r0, _081B9670 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - thumb_func_end sub_081B9654 - - thumb_func_start sub_081B9668 -sub_081B9668: @ 0x081B9668 - bx r0 - .align 2, 0 -_081B966C: .4byte gUnknown_85E196C -_081B9670: .4byte gUnknown_2037280 - thumb_func_end sub_081B9668 - - thumb_func_start sub_081B9674 -sub_081B9674: @ 0x081B9674 - push {lr} - ldr r1, _081B96B4 - ldr r0, [r1] - ldr r2, _081B96B8 - adds r0, r0, r2 - movs r2, #0 - strb r2, [r0] - ldr r1, [r1] - ldr r3, _081B96BC - adds r0, r1, r3 - strh r2, [r0] - ldr r0, _081B96C0 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r0, _081B96C4 - ldr r0, [r0] - movs r1, #4 - ldrsb r1, [r0, r1] - movs r2, #5 - ldrsb r2, [r0, r2] - movs r3, #1 - rsbs r3, r3, #0 - movs r0, #0 - bl SetDynamicWarp - pop {r0} - bx r0 - .align 2, 0 -_081B96B4: .4byte gUnknown_3005AF0 -_081B96B8: .4byte 0x00000CA8 -_081B96BC: .4byte 0x00000CB2 -_081B96C0: .4byte 0x00000CA9 -_081B96C4: .4byte gUnknown_3005AEC - thumb_func_end sub_081B9674 - - thumb_func_start sub_081B96C8 -sub_081B96C8: @ 0x081B96C8 - ldr r1, _081B96D8 - ldr r0, _081B96DC - ldr r0, [r0] - ldr r2, _081B96E0 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r1] - bx lr - .align 2, 0 -_081B96D8: .4byte gUnknown_2037290 -_081B96DC: .4byte gUnknown_3005AF0 -_081B96E0: .4byte 0x00000E6A - thumb_func_end sub_081B96C8 - - thumb_func_start sub_081B96E4 -sub_081B96E4: @ 0x081B96E4 - ldr r0, _081B96F4 - ldr r0, [r0] - ldr r1, _081B96F8 - ldrh r1, [r1] - ldr r2, _081B96FC - adds r0, r0, r2 - strh r1, [r0] - bx lr - .align 2, 0 -_081B96F4: .4byte gUnknown_3005AF0 -_081B96F8: .4byte gUnknown_2037284 -_081B96FC: .4byte 0x00000E6A - thumb_func_end sub_081B96E4 - - thumb_func_start sub_081B9700 -sub_081B9700: @ 0x081B9700 - push {r4, lr} - ldr r4, _081B972C - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0xff - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r0, #2 - adds r1, r1, r0 - lsrs r1, r1, #6 - strh r1, [r4] - ldrh r0, [r4] - movs r1, #0 - bl sub_08162528 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B972C: .4byte gUnknown_203886A - thumb_func_end sub_081B9700 - - thumb_func_start sub_081B9730 -sub_081B9730: @ 0x081B9730 - push {lr} - ldr r3, _081B9750 - ldrh r1, [r3] - ldr r0, _081B9754 - cmp r1, r0 - bhi _081B974C - ldr r2, _081B9758 - movs r0, #0x34 - muls r1, r0, r1 - ldr r0, [r2] - adds r0, r0, r1 - adds r0, #0xc - bl FrontierSpeechToString -_081B974C: - pop {r0} - bx r0 - .align 2, 0 -_081B9750: .4byte gUnknown_203886A -_081B9754: .4byte 0x0000012B -_081B9758: .4byte gUnknown_203B954 - thumb_func_end sub_081B9730 - - thumb_func_start sub_081B975C -sub_081B975C: @ 0x081B975C - push {r4, lr} - ldr r4, _081B9790 - ldr r0, [r4] - ldr r1, _081B9794 - ldrh r1, [r1] - ldr r2, _081B9798 - adds r0, r0, r2 - strb r1, [r0] - movs r0, #0x80 - lsls r0, r0, #7 - movs r1, #0 - bl VarSet - ldr r1, [r4] - ldr r0, _081B979C - adds r1, r1, r0 - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - bl sub_081A482C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B9790: .4byte gUnknown_3005AF0 -_081B9794: .4byte gUnknown_2037282 -_081B9798: .4byte 0x00000CA8 -_081B979C: .4byte 0x00000CA9 - thumb_func_end sub_081B975C - - thumb_func_start sub_081B97A0 -sub_081B97A0: @ 0x081B97A0 - push {r4, r5, lr} - ldr r0, _081B97BC - ldr r4, [r0] - ldr r5, _081B97C0 - bl Random - ldrh r0, [r5] - ldr r1, _081B97C4 - adds r4, r4, r1 - strh r0, [r4] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B97BC: .4byte gUnknown_3005AF0 -_081B97C0: .4byte gUnknown_85E198C -_081B97C4: .4byte 0x00000E6A - thumb_func_end sub_081B97A0 - - thumb_func_start sub_081B97C8 -sub_081B97C8: @ 0x081B97C8 - push {r4, r5, lr} - ldr r4, _081B9800 - ldr r0, [r4] - ldr r1, _081B9804 - adds r0, r0, r1 - ldrh r0, [r0] - movs r1, #1 - bl AddBagItem - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #1 - bne _081B9810 - ldr r0, [r4] - ldr r1, _081B9804 - adds r0, r0, r1 - ldrh r0, [r0] - ldr r1, _081B9808 - bl sub_080D5EC8 - ldr r0, [r4] - ldr r1, _081B9804 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0] - ldr r0, _081B980C - strh r5, [r0] - b _081B9816 - .align 2, 0 -_081B9800: .4byte gUnknown_3005AF0 -_081B9804: .4byte 0x00000E6A -_081B9808: .4byte gUnknown_2021C40 -_081B980C: .4byte gUnknown_2037290 -_081B9810: - ldr r1, _081B981C - movs r0, #0 - strh r0, [r1] -_081B9816: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B981C: .4byte gUnknown_2037290 - thumb_func_end sub_081B97C8 - - thumb_func_start sub_081B9820 -sub_081B9820: @ 0x081B9820 - push {lr} - ldr r1, _081B9838 - ldr r0, _081B983C - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - thumb_func_end sub_081B9820 - - thumb_func_start sub_081B9834 -sub_081B9834: @ 0x081B9834 - bx r0 - .align 2, 0 -_081B9838: .4byte gUnknown_85E1990 -_081B983C: .4byte gUnknown_2037280 - thumb_func_end sub_081B9834 - - thumb_func_start sub_081B9840 -sub_081B9840: @ 0x081B9840 - push {lr} - ldr r1, _081B9880 - ldr r0, [r1] - ldr r2, _081B9884 - adds r0, r0, r2 - movs r2, #0 - strb r2, [r0] - ldr r1, [r1] - ldr r3, _081B9888 - adds r0, r1, r3 - strh r2, [r0] - ldr r0, _081B988C - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r0, _081B9890 - ldr r0, [r0] - movs r1, #4 - ldrsb r1, [r0, r1] - movs r2, #5 - ldrsb r2, [r0, r2] - movs r3, #1 - rsbs r3, r3, #0 - movs r0, #0 - bl SetDynamicWarp - pop {r0} - bx r0 - .align 2, 0 -_081B9880: .4byte gUnknown_3005AF0 -_081B9884: .4byte 0x00000CA8 -_081B9888: .4byte 0x00000CB2 -_081B988C: .4byte 0x00000CA9 -_081B9890: .4byte gUnknown_3005AEC - thumb_func_end sub_081B9840 - - thumb_func_start sub_081B9894 -sub_081B9894: @ 0x081B9894 - ldr r1, _081B98A4 - ldr r0, _081B98A8 - ldr r0, [r0] - ldr r2, _081B98AC - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r1] - bx lr - .align 2, 0 -_081B98A4: .4byte gUnknown_2037290 -_081B98A8: .4byte gUnknown_3005AF0 -_081B98AC: .4byte 0x00000E6C - thumb_func_end sub_081B9894 - - thumb_func_start sub_081B98B0 -sub_081B98B0: @ 0x081B98B0 - ldr r0, _081B98C0 - ldr r0, [r0] - ldr r1, _081B98C4 - ldrh r1, [r1] - ldr r2, _081B98C8 - adds r0, r0, r2 - strh r1, [r0] - bx lr - .align 2, 0 -_081B98C0: .4byte gUnknown_3005AF0 -_081B98C4: .4byte gUnknown_2037284 -_081B98C8: .4byte 0x00000E6C - thumb_func_end sub_081B98B0 - - thumb_func_start sub_081B98CC -sub_081B98CC: @ 0x081B98CC - push {r4, lr} - ldr r4, _081B9900 - ldr r0, [r4] - ldr r1, _081B9904 - ldrh r1, [r1] - ldr r2, _081B9908 - adds r0, r0, r2 - strb r1, [r0] - movs r0, #0x80 - lsls r0, r0, #7 - movs r1, #0 - bl VarSet - ldr r1, [r4] - ldr r0, _081B990C - adds r1, r1, r0 - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - bl sub_081A482C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B9900: .4byte gUnknown_3005AF0 -_081B9904: .4byte gUnknown_2037282 -_081B9908: .4byte 0x00000CA8 -_081B990C: .4byte 0x00000CA9 - thumb_func_end sub_081B98CC - - thumb_func_start sub_081B9910 -sub_081B9910: @ 0x081B9910 - push {r4, r5, lr} - ldr r0, _081B992C - ldr r4, [r0] - ldr r5, _081B9930 - bl Random - ldrh r0, [r5] - ldr r1, _081B9934 - adds r4, r4, r1 - strh r0, [r4] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B992C: .4byte gUnknown_3005AF0 -_081B9930: .4byte gUnknown_85E19AC -_081B9934: .4byte 0x00000E6C - thumb_func_end sub_081B9910 - - thumb_func_start sub_081B9938 -sub_081B9938: @ 0x081B9938 - push {r4, r5, lr} - ldr r4, _081B9970 - ldr r0, [r4] - ldr r1, _081B9974 - adds r0, r0, r1 - ldrh r0, [r0] - movs r1, #1 - bl AddBagItem - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #1 - bne _081B9980 - ldr r0, [r4] - ldr r1, _081B9974 - adds r0, r0, r1 - ldrh r0, [r0] - ldr r1, _081B9978 - bl sub_080D5EC8 - ldr r0, [r4] - ldr r1, _081B9974 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0] - ldr r0, _081B997C - strh r5, [r0] - b _081B9986 - .align 2, 0 -_081B9970: .4byte gUnknown_3005AF0 -_081B9974: .4byte 0x00000E6C -_081B9978: .4byte gUnknown_2021C40 -_081B997C: .4byte gUnknown_2037290 -_081B9980: - ldr r1, _081B998C - movs r0, #0 - strh r0, [r1] -_081B9986: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B998C: .4byte gUnknown_2037290 - thumb_func_end sub_081B9938 - - thumb_func_start sub_081B9990 -sub_081B9990: @ 0x081B9990 - push {lr} - ldr r0, _081B99A0 - ldr r1, _081B99A4 - ldrh r1, [r1] - bl sub_08162D24 - pop {r0} - bx r0 - .align 2, 0 -_081B99A0: .4byte gUnknown_2021C40 -_081B99A4: .4byte gUnknown_203886A - thumb_func_end sub_081B9990 - - thumb_func_start sub_081B99A8 -sub_081B99A8: @ 0x081B99A8 - push {lr} - ldr r1, _081B99C0 - ldr r0, _081B99C4 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - thumb_func_end sub_081B99A8 - - thumb_func_start sub_081B99BC -sub_081B99BC: @ 0x081B99BC - bx r0 - .align 2, 0 -_081B99C0: .4byte gUnknown_85E19B0 -_081B99C4: .4byte gUnknown_2037280 - thumb_func_end sub_081B99BC - - thumb_func_start sub_081B99C8 -sub_081B99C8: @ 0x081B99C8 - push {lr} - ldr r1, _081B9A08 - ldr r0, [r1] - ldr r2, _081B9A0C - adds r0, r0, r2 - movs r2, #0 - strb r2, [r0] - ldr r1, [r1] - ldr r3, _081B9A10 - adds r0, r1, r3 - strh r2, [r0] - ldr r0, _081B9A14 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r0, _081B9A18 - ldr r0, [r0] - movs r1, #4 - ldrsb r1, [r0, r1] - movs r2, #5 - ldrsb r2, [r0, r2] - movs r3, #1 - rsbs r3, r3, #0 - movs r0, #0 - bl SetDynamicWarp - pop {r0} - bx r0 - .align 2, 0 -_081B9A08: .4byte gUnknown_3005AF0 -_081B9A0C: .4byte 0x00000CA8 -_081B9A10: .4byte 0x00000CB2 -_081B9A14: .4byte 0x00000CA9 -_081B9A18: .4byte gUnknown_3005AEC - thumb_func_end sub_081B99C8 - - thumb_func_start sub_081B9A1C -sub_081B9A1C: @ 0x081B9A1C - ldr r1, _081B9A2C - ldr r0, _081B9A30 - ldr r0, [r0] - ldr r2, _081B9A34 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r1] - bx lr - .align 2, 0 -_081B9A2C: .4byte gUnknown_2037290 -_081B9A30: .4byte gUnknown_3005AF0 -_081B9A34: .4byte 0x00000E6E - thumb_func_end sub_081B9A1C - - thumb_func_start sub_081B9A38 -sub_081B9A38: @ 0x081B9A38 - ldr r0, _081B9A48 - ldr r0, [r0] - ldr r1, _081B9A4C - ldrh r1, [r1] - ldr r2, _081B9A50 - adds r0, r0, r2 - strh r1, [r0] - bx lr - .align 2, 0 -_081B9A48: .4byte gUnknown_3005AF0 -_081B9A4C: .4byte gUnknown_2037284 -_081B9A50: .4byte 0x00000E6E - thumb_func_end sub_081B9A38 - - thumb_func_start sub_081B9A54 -sub_081B9A54: @ 0x081B9A54 - push {r4, lr} - ldr r4, _081B9A88 - ldr r0, [r4] - ldr r1, _081B9A8C - ldrh r1, [r1] - ldr r2, _081B9A90 - adds r0, r0, r2 - strb r1, [r0] - movs r0, #0x80 - lsls r0, r0, #7 - movs r1, #0 - bl VarSet - ldr r1, [r4] - ldr r0, _081B9A94 - adds r1, r1, r0 - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - bl sub_081A482C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081B9A88: .4byte gUnknown_3005AF0 -_081B9A8C: .4byte gUnknown_2037282 -_081B9A90: .4byte 0x00000CA8 -_081B9A94: .4byte 0x00000CA9 - thumb_func_end sub_081B9A54 - - thumb_func_start GetTrainerEncounterMusicId -GetTrainerEncounterMusicId: @ 0x081B9A98 - push {r4, r5, lr} - ldr r0, _081B9AB4 - ldr r4, [r0] - ldr r5, _081B9AB8 - bl Random - ldrh r0, [r5] - ldr r1, _081B9ABC - adds r4, r4, r1 - strh r0, [r4] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B9AB4: .4byte gUnknown_3005AF0 -_081B9AB8: .4byte gUnknown_85E19D8 -_081B9ABC: .4byte 0x00000E6E - thumb_func_end GetTrainerEncounterMusicId - - thumb_func_start sub_081B9AC0 -sub_081B9AC0: @ 0x081B9AC0 - push {r4, r5, lr} - ldr r4, _081B9AF8 - ldr r0, [r4] - ldr r1, _081B9AFC - adds r0, r0, r1 - ldrh r0, [r0] - movs r1, #1 - bl AddBagItem - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #1 - bne _081B9B08 - ldr r0, [r4] - ldr r1, _081B9AFC - adds r0, r0, r1 - ldrh r0, [r0] - ldr r1, _081B9B00 - bl sub_080D5EC8 - ldr r0, [r4] - ldr r1, _081B9AFC - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0] - ldr r0, _081B9B04 - strh r5, [r0] - b _081B9B0E - .align 2, 0 -_081B9AF8: .4byte gUnknown_3005AF0 -_081B9AFC: .4byte 0x00000E6E -_081B9B00: .4byte gUnknown_2021C40 -_081B9B04: .4byte gUnknown_2037290 -_081B9B08: - ldr r1, _081B9B14 - movs r0, #0 - strh r0, [r1] -_081B9B0E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081B9B14: .4byte gUnknown_2037290 - thumb_func_end sub_081B9AC0 - - thumb_func_start sub_081B9B18 -sub_081B9B18: @ 0x081B9B18 - push {lr} - bl ZeroPlayerPartyMons - bl DoBattleFactorySelectScreen - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081B9B18 - - thumb_func_start sub_081B9B28 -sub_081B9B28: @ 0x081B9B28 - push {lr} - bl sub_0819D8E8 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081B9B28 - - thumb_func_start InSlateportBattleTent -InSlateportBattleTent: @ 0x081B9B34 - push {lr} - movs r2, #0 - ldr r1, _081B9B58 - ldrb r0, [r1, #0x14] - cmp r0, #8 - bne _081B9B52 - ldr r3, _081B9B5C - adds r0, r3, #0 - ldrh r1, [r1, #0x12] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bhi _081B9B52 - movs r2, #1 -_081B9B52: - adds r0, r2, #0 - pop {r1} - bx r1 - .align 2, 0 -_081B9B58: .4byte gUnknown_2036FB8 -_081B9B5C: .4byte 0xFFFFFE7F - thumb_func_end InSlateportBattleTent - - thumb_func_start sub_081B9B60 -sub_081B9B60: @ 0x081B9B60 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x3c - ldr r1, _081B9C58 - ldr r0, _081B9C5C - str r0, [r1] - add r0, sp, #0xc - mov sb, r0 - mov r1, sp - adds r1, #0x18 - str r1, [sp, #0x2c] - ldr r5, _081B9C60 - ldr r4, _081B9C64 - movs r2, #0 - adds r3, r1, #0 - mov r1, sb - mov r0, sp - movs r6, #5 - mov r8, r6 -_081B9B8C: - strh r2, [r0] - strh r2, [r1] - strh r2, [r3] - adds r3, #2 - adds r1, #2 - adds r0, #2 - movs r7, #1 - rsbs r7, r7, #0 - add r8, r7 - mov r6, r8 - cmp r6, #0 - bge _081B9B8C - str r4, [r5] - movs r7, #0 - mov sl, r7 - movs r0, #0 - mov r8, r0 - ldr r1, [sp, #0x2c] - str r1, [sp, #0x30] - mov r2, sp - str r2, [sp, #0x34] - lsls r6, r0, #1 - str r6, [sp, #0x24] - add r6, sb - str r6, [sp, #0x28] -_081B9BBE: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x46 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - movs r2, #0 - mov r7, r8 - adds r6, r2, r7 - cmp r2, r6 - bge _081B9C1C - ldr r1, [sp, #0x28] - ldrh r0, [r1] - cmp r0, r5 - beq _081B9C1C - ldr r0, _081B9C60 - ldr r1, [r0] - lsls r0, r5, #4 - adds r4, r0, r1 - ldrh r7, [r4] - mov ip, r7 - lsls r3, r2, #1 - ldr r1, [sp, #0x24] - add r1, sp - str r6, [sp, #0x38] -_081B9BF6: - ldrh r0, [r1] - cmp r0, ip - bne _081B9C06 - mov r0, sl - cmp r0, #0 - bne _081B9C1C - ldrh r7, [r4] - mov sl, r7 -_081B9C06: - adds r3, #2 - adds r1, #2 - adds r2, #1 - ldr r0, [sp, #0x38] - cmp r2, r0 - bge _081B9C1C - mov r7, sb - adds r0, r7, r3 - ldrh r0, [r0] - cmp r0, r5 - bne _081B9BF6 -_081B9C1C: - cmp r2, r6 - bne _081B9CBC - movs r2, #0 - cmp r2, r6 - bge _081B9C74 - ldr r0, _081B9C68 - mov ip, r0 - ldr r7, _081B9C60 - ldr r1, [sp, #0x24] - ldr r0, [sp, #0x2c] - adds r4, r1, r0 -_081B9C32: - ldrh r3, [r4] - cmp r3, #0 - beq _081B9C6C - ldr r1, [r7] - lsls r0, r5, #4 - adds r1, r0, r1 - ldrb r0, [r1, #0xa] - lsls r0, r0, #1 - add r0, ip - ldrh r0, [r0] - cmp r3, r0 - bne _081B9C6C - ldrh r0, [r1] - cmp r0, sl - bne _081B9C74 - movs r1, #0 - mov sl, r1 - b _081B9C74 - .align 2, 0 -_081B9C58: .4byte gUnknown_203B954 -_081B9C5C: .4byte gUnknown_85BC958 -_081B9C60: .4byte gUnknown_203B958 -_081B9C64: .4byte gUnknown_85BCF70 -_081B9C68: .4byte gUnknown_85ADBF4 -_081B9C6C: - adds r4, #2 - adds r2, #1 - cmp r2, r6 - blt _081B9C32 -_081B9C74: - cmp r2, r6 - bne _081B9CBC - ldr r0, _081B9CD4 - ldr r1, [r0] - mov r2, r8 - lsls r3, r2, #1 - adds r0, r3, r2 - lsls r0, r0, #2 - adds r1, r1, r0 - movs r6, #0xe7 - lsls r6, r6, #4 - adds r1, r1, r6 - strh r5, [r1] - ldr r0, _081B9CD8 - ldr r0, [r0] - lsls r1, r5, #4 - adds r1, r1, r0 - ldrh r0, [r1] - ldr r7, [sp, #0x34] - strh r0, [r7] - ldr r2, _081B9CDC - ldrb r0, [r1, #0xa] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - ldr r1, [sp, #0x30] - strh r0, [r1] - add r3, sb - strh r5, [r3] - adds r1, #2 - str r1, [sp, #0x30] - adds r2, r7, #0 - adds r2, #2 - str r2, [sp, #0x34] - movs r6, #1 - add r8, r6 -_081B9CBC: - mov r7, r8 - cmp r7, #6 - beq _081B9CC4 - b _081B9BBE -_081B9CC4: - add sp, #0x3c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B9CD4: .4byte gUnknown_3005AF0 -_081B9CD8: .4byte gUnknown_203B958 -_081B9CDC: .4byte gUnknown_85ADBF4 - thumb_func_end sub_081B9B60 - - thumb_func_start sub_081B9CE0 -sub_081B9CE0: @ 0x081B9CE0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - movs r0, #0 - mov sl, r0 - ldr r1, _081B9D8C - ldr r0, _081B9D90 - str r0, [r1] - ldr r1, _081B9D94 - ldr r0, _081B9D98 - str r0, [r1] - ldr r7, _081B9D9C - ldr r1, _081B9DA0 - mov r8, r1 -_081B9D02: - mov r2, sl - lsls r6, r2, #1 -_081B9D06: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x1e - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - movs r5, #0 - ldr r1, [r7] - ldr r4, _081B9DA4 - adds r0, r1, r4 - ldrh r0, [r0] - cmp r5, r0 - bge _081B9D4A - ldr r2, _081B9DA8 - adds r0, r1, r2 - ldrh r0, [r0] - cmp r0, r3 - beq _081B9D4A - ldr r0, _081B9D9C - ldr r1, [r0] - adds r0, r1, r4 - ldrh r2, [r0] - adds r4, #2 - adds r1, r1, r4 -_081B9D3C: - adds r1, #2 - adds r5, #1 - cmp r5, r2 - bge _081B9D4A - ldrh r0, [r1] - cmp r0, r3 - bne _081B9D3C -_081B9D4A: - ldr r0, [r7] - ldr r1, _081B9DA4 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r5, r0 - bne _081B9D06 - ldr r2, _081B9DAC - strh r3, [r2] - ldrh r3, [r2] - ldr r4, _081B9D8C - ldr r1, [r4] - movs r0, #0x34 - muls r0, r3, r0 - adds r0, r0, r1 - ldr r0, [r0, #0x30] - adds r1, r6, r0 - ldrh r0, [r1] - cmp r0, r8 - beq _081B9D7E - ldr r3, _081B9DA0 -_081B9D72: - adds r1, #2 - movs r6, #1 - add sl, r6 - ldrh r0, [r1] - cmp r0, r3 - bne _081B9D72 -_081B9D7E: - mov r0, sl - cmp r0, #8 - bgt _081B9DB0 - movs r1, #0 - mov sl, r1 - b _081B9D02 - .align 2, 0 -_081B9D8C: .4byte gUnknown_203B954 -_081B9D90: .4byte gUnknown_85BC958 -_081B9D94: .4byte gUnknown_203B958 -_081B9D98: .4byte gUnknown_85BCF70 -_081B9D9C: .4byte gUnknown_3005AF0 -_081B9DA0: .4byte 0x0000FFFF -_081B9DA4: .4byte 0x00000CB2 -_081B9DA8: .4byte 0x00000CB4 -_081B9DAC: .4byte gUnknown_203886A -_081B9DB0: - ldr r0, _081B9ED4 - ldr r1, [r0] - ldr r6, _081B9ED8 - adds r3, r1, r6 - ldrh r0, [r3] - cmp r0, #1 - bhi _081B9DCA - lsls r0, r0, #1 - ldr r3, _081B9EDC - adds r1, r1, r3 - adds r1, r1, r0 - ldrh r0, [r2] - strh r0, [r1] -_081B9DCA: - ldrh r1, [r2] - ldr r2, [r4] - movs r0, #0x34 - muls r0, r1, r0 - adds r0, r0, r2 - ldr r0, [r0, #0x30] - mov sb, r0 - movs r5, #0 - ldr r7, _081B9EE0 - mov r8, sp -_081B9DDE: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r1, sl - bl __modsi3 - lsls r0, r0, #1 - add r0, sb - ldrh r0, [r0] - strh r0, [r7] - movs r2, #0 - ldrh r0, [r7] - ldr r4, _081B9EE4 - ldr r3, [r4] - lsls r0, r0, #4 - adds r0, r0, r3 - ldr r1, _081B9ED4 - ldrh r6, [r0] - ldr r1, [r1] -_081B9E06: - movs r4, #0xe7 - lsls r4, r4, #4 - adds r0, r1, r4 - ldrh r0, [r0] - lsls r0, r0, #4 - adds r0, r0, r3 - ldrh r0, [r0] - cmp r6, r0 - beq _081B9E20 - adds r1, #0xc - adds r2, #1 - cmp r2, #5 - ble _081B9E06 -_081B9E20: - cmp r2, #6 - bne _081B9EC0 - movs r4, #0 - cmp r4, r5 - bge _081B9E50 - mov r0, sp - ldrh r0, [r0] - cmp r0, r6 - beq _081B9E50 - ldr r6, _081B9EE0 - ldr r3, _081B9EE4 - mov r2, sp -_081B9E38: - adds r2, #2 - adds r4, #1 - cmp r4, r5 - bge _081B9E50 - ldrh r0, [r6] - ldr r1, [r3] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrh r1, [r2] - ldrh r0, [r0] - cmp r1, r0 - bne _081B9E38 -_081B9E50: - cmp r4, r5 - bne _081B9EC0 - movs r4, #0 - cmp r4, r5 - bge _081B9E86 - ldr r6, _081B9EE8 - mov ip, r6 - add r3, sp, #8 -_081B9E60: - ldrh r2, [r3] - cmp r2, #0 - beq _081B9E7E - ldr r1, _081B9EE0 - ldrh r0, [r1] - ldr r6, _081B9EE4 - ldr r1, [r6] - lsls r0, r0, #4 - adds r0, r0, r1 - ldrb r0, [r0, #0xa] - lsls r0, r0, #1 - add r0, ip - ldrh r0, [r0] - cmp r2, r0 - beq _081B9E86 -_081B9E7E: - adds r3, #2 - adds r4, #1 - cmp r4, r5 - blt _081B9E60 -_081B9E86: - cmp r4, r5 - bne _081B9EC0 - lsls r2, r5, #1 - ldrh r0, [r7] - ldr r1, _081B9EE4 - ldr r4, [r1] - lsls r0, r0, #4 - adds r0, r0, r4 - ldrh r0, [r0] - mov r3, r8 - strh r0, [r3] - add r1, sp, #8 - adds r1, r1, r2 - ldr r3, _081B9EE8 - ldrh r0, [r7] - lsls r0, r0, #4 - adds r0, r0, r4 - ldrb r0, [r0, #0xa] - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r0, [r0] - strh r0, [r1] - ldr r0, _081B9EEC - adds r2, r2, r0 - ldrh r0, [r7] - strh r0, [r2] - movs r4, #2 - add r8, r4 - adds r5, #1 -_081B9EC0: - cmp r5, #3 - bne _081B9DDE - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081B9ED4: .4byte gUnknown_3005AF0 -_081B9ED8: .4byte 0x00000CB2 -_081B9EDC: .4byte 0x00000CB4 -_081B9EE0: .4byte gUnknown_3001294 -_081B9EE4: .4byte gUnknown_203B958 -_081B9EE8: .4byte gUnknown_85ADBF4 -_081B9EEC: .4byte gUnknown_3005FD8 - thumb_func_end sub_081B9CE0 - - thumb_func_start Font6Func -Font6Func: @ 0x081B9EF0 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r4, r6, #0 - adds r4, #0x14 - ldrb r0, [r6, #0x1c] - cmp r0, #6 - bls _081B9F00 - b _081BA300 -_081B9F00: - lsls r0, r0, #2 - ldr r1, _081B9F0C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081B9F0C: .4byte _081B9F10 -_081B9F10: @ jump table - .4byte _081B9F2C @ case 0 - .4byte _081BA1F4 @ case 1 - .4byte _081BA206 @ case 2 - .4byte _081BA230 @ case 3 - .4byte _081BA268 @ case 4 - .4byte _081BA2DC @ case 5 - .4byte _081BA2EE @ case 6 -_081B9F2C: - ldr r2, _081B9F80 - ldrh r1, [r2, #0x2c] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _081B9F46 - ldrb r1, [r4] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _081B9F46 - movs r0, #0 - strb r0, [r6, #0x1e] -_081B9F46: - ldrb r1, [r6, #0x1e] - cmp r1, #0 - beq _081B9F88 - ldrb r0, [r6, #0x1d] - cmp r0, #0 - beq _081B9F88 - subs r0, r1, #1 - strb r0, [r6, #0x1e] - ldr r0, _081B9F84 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _081B9F64 - b _081BA1AE -_081B9F64: - ldrh r1, [r2, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _081B9F70 - b _081BA1AE -_081B9F70: - ldrb r0, [r4] - movs r1, #0x10 - orrs r0, r1 - strb r0, [r4] - movs r0, #0 - strb r0, [r6, #0x1e] - b _081BA1AE - .align 2, 0 -_081B9F80: .4byte gUnknown_3002360 -_081B9F84: .4byte gUnknown_30030B4 -_081B9F88: - ldr r2, _081B9F98 - ldrb r1, [r2] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _081B9F9C - movs r0, #3 - b _081B9F9E - .align 2, 0 -_081B9F98: .4byte gUnknown_30030B4 -_081B9F9C: - ldrb r0, [r6, #0x1d] -_081B9F9E: - strb r0, [r6, #0x1e] - ldr r0, [r6] - ldrb r3, [r0] - adds r0, #1 - str r0, [r6] - adds r0, r3, #0 - subs r0, #0xf8 - cmp r0, #7 - bls _081B9FB2 - b _081BA1CE -_081B9FB2: - lsls r0, r0, #2 - ldr r1, _081B9FBC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081B9FBC: .4byte _081B9FC0 -_081B9FC0: @ jump table - .4byte _081BA1C4 @ case 0 - .4byte _081BA1B2 @ case 1 - .4byte _081BA1A4 @ case 2 - .4byte _081BA1A0 @ case 3 - .4byte _081BA00E @ case 4 - .4byte _081BA008 @ case 5 - .4byte _081B9FE0 @ case 6 - .4byte _081BA300 @ case 7 -_081B9FE0: - ldrb r0, [r6, #6] - strb r0, [r6, #8] - ldrb r1, [r6, #5] - ldr r0, _081BA004 - ldr r2, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r6, #0xb] - ldrb r0, [r0, #5] - adds r1, r1, r0 - ldrb r0, [r6, #9] - adds r0, r0, r1 - strb r0, [r6, #9] -_081B9FFE: - movs r0, #2 - b _081BA302 - .align 2, 0 -_081BA004: .4byte gUnknown_3003020 -_081BA008: - ldr r0, [r6] - adds r0, #1 - b _081BA164 -_081BA00E: - ldr r0, [r6] - ldrb r3, [r0] - adds r0, #1 - str r0, [r6] - subs r0, r3, #1 - cmp r0, #0xf - bls _081BA01E - b _081BA1CE -_081BA01E: - lsls r0, r0, #2 - ldr r1, _081BA028 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081BA028: .4byte _081BA02C -_081BA02C: @ jump table - .4byte _081BA06C @ case 0 - .4byte _081BA08E @ case 1 - .4byte _081BA0B2 @ case 2 - .4byte _081BA0CC @ case 3 - .4byte _081BA118 @ case 4 - .4byte _081BA11E @ case 5 - .4byte _081B9FFE @ case 6 - .4byte _081BA138 @ case 7 - .4byte _081BA148 @ case 8 - .4byte _081BA15C @ case 9 - .4byte _081BA160 @ case 10 - .4byte _081BA168 @ case 11 - .4byte _081BA172 @ case 12 - .4byte _081BA17E @ case 13 - .4byte _081BA18E @ case 14 - .4byte _081BA160 @ case 15 -_081BA06C: - ldr r2, [r6] - ldrb r1, [r2] - lsls r1, r1, #4 - ldrb r3, [r6, #0xc] - movs r0, #0xf - ands r0, r3 - orrs r0, r1 - strb r0, [r6, #0xc] - adds r2, #1 - str r2, [r6] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1c - ldrb r2, [r6, #0xd] - lsls r1, r2, #0x1c - lsrs r1, r1, #0x1c - lsrs r2, r2, #4 - b _081BA112 -_081BA08E: - ldr r1, [r6] - ldrb r2, [r1] - movs r0, #0xf - ands r0, r2 - ldrb r3, [r6, #0xd] - movs r2, #0x10 - rsbs r2, r2, #0 - ands r2, r3 - orrs r2, r0 - strb r2, [r6, #0xd] - adds r1, #1 - str r1, [r6] - ldrb r0, [r6, #0xc] - lsrs r0, r0, #4 - lsls r1, r2, #0x1c - lsrs r1, r1, #0x1c - lsrs r2, r2, #4 - b _081BA112 -_081BA0B2: - ldr r1, [r6] - ldrb r0, [r1] - lsls r0, r0, #4 - ldrb r3, [r6, #0xd] - movs r2, #0xf - ands r2, r3 - orrs r2, r0 - strb r2, [r6, #0xd] - adds r1, #1 - str r1, [r6] - ldrb r0, [r6, #0xc] - lsrs r0, r0, #4 - b _081BA10A -_081BA0CC: - ldr r3, [r6] - ldrb r1, [r3] - lsls r1, r1, #4 - ldrb r4, [r6, #0xc] - movs r2, #0xf - adds r0, r2, #0 - ands r0, r4 - orrs r0, r1 - strb r0, [r6, #0xc] - adds r5, r3, #1 - str r5, [r6] - ldrb r3, [r3, #1] - adds r1, r2, #0 - ands r1, r3 - ldrb r4, [r6, #0xd] - movs r3, #0x10 - rsbs r3, r3, #0 - ands r3, r4 - orrs r3, r1 - strb r3, [r6, #0xd] - adds r4, r5, #1 - str r4, [r6] - ldrb r1, [r5, #1] - lsls r1, r1, #4 - ands r2, r3 - orrs r2, r1 - strb r2, [r6, #0xd] - adds r4, #1 - str r4, [r6] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1c -_081BA10A: - lsls r1, r2, #0x1c - lsrs r1, r1, #0x1c - lsls r2, r2, #0x18 - lsrs r2, r2, #0x1c -_081BA112: - bl sub_080046E4 - b _081B9FFE -_081BA118: - ldr r0, [r6] - adds r0, #1 - b _081BA164 -_081BA11E: - ldr r0, [r6] - ldrb r0, [r0] - movs r1, #0xf - ands r1, r0 - ldrb r2, [r4] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4] - ldr r0, [r6] - adds r0, #1 - b _081BA164 -_081BA138: - ldr r0, [r6] - ldrb r1, [r0] - strb r1, [r6, #0x1e] - adds r0, #1 - str r0, [r6] - movs r0, #6 - strb r0, [r6, #0x1c] - b _081B9FFE -_081BA148: - movs r0, #1 - strb r0, [r6, #0x1c] - ldrb r1, [r2] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _081BA1AE - movs r0, #0 - strb r0, [r4, #2] - b _081BA1AE -_081BA15C: - movs r0, #5 - b _081BA2EA -_081BA160: - ldr r0, [r6] - adds r0, #2 -_081BA164: - str r0, [r6] - b _081B9FFE -_081BA168: - ldr r1, [r6] - adds r0, r1, #1 - str r0, [r6] - ldrb r3, [r1, #1] - b _081BA1CE -_081BA172: - ldr r1, [r6] - ldrb r0, [r1] - ldrb r2, [r6, #6] - adds r0, r0, r2 - strb r0, [r6, #8] - b _081BA188 -_081BA17E: - ldr r1, [r6] - ldrb r0, [r1] - ldrb r2, [r6, #7] - adds r0, r0, r2 - strb r0, [r6, #9] -_081BA188: - adds r1, #1 - str r1, [r6] - b _081B9FFE -_081BA18E: - ldrb r0, [r6, #4] - ldrb r2, [r6, #0xd] - lsls r2, r2, #0x1c - lsrs r1, r2, #4 - orrs r1, r2 - lsrs r1, r1, #0x18 - bl FillWindowPixelBuffer - b _081B9FFE -_081BA1A0: - movs r0, #2 - b _081BA1A6 -_081BA1A4: - movs r0, #3 -_081BA1A6: - strb r0, [r6, #0x1c] - adds r0, r6, #0 - bl TextPrinterInitDownArrowCounters -_081BA1AE: - movs r0, #3 - b _081BA302 -_081BA1B2: - ldr r0, [r6] - ldrb r3, [r0] - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r2, #0 - orrs r3, r1 - adds r0, #1 - str r0, [r6] - b _081BA1CE -_081BA1C4: - ldr r0, [r6] - adds r0, #1 - str r0, [r6] - movs r0, #0 - b _081BA302 -_081BA1CE: - adds r0, r3, #0 - bl DecompressGlyphFont6 - adds r0, r6, #0 - bl sub_08004850 - ldr r0, _081BA1F0 - adds r0, #0x80 - ldrb r1, [r6, #0xa] - ldrb r0, [r0] - adds r1, r1, r0 - ldrb r0, [r6, #8] - adds r0, r0, r1 - strb r0, [r6, #8] - movs r0, #0 - b _081BA302 - .align 2, 0 -_081BA1F0: .4byte gUnknown_3003030 -_081BA1F4: - adds r0, r6, #0 - bl TextPrinterWait - lsls r0, r0, #0x10 - cmp r0, #0 - beq _081BA1AE - movs r0, #0 - strb r0, [r6, #0x1c] - b _081BA1AE -_081BA206: - adds r0, r6, #0 - bl TextPrinterWaitWithDownArrow - lsls r0, r0, #0x10 - cmp r0, #0 - beq _081BA1AE - ldrb r0, [r6, #4] - ldrb r2, [r6, #0xd] - lsls r2, r2, #0x1c - lsrs r1, r2, #4 - orrs r1, r2 - lsrs r1, r1, #0x18 - bl FillWindowPixelBuffer - ldrb r0, [r6, #6] - movs r1, #0 - strb r0, [r6, #8] - ldrb r0, [r6, #7] - strb r0, [r6, #9] - strb r1, [r6, #0x1c] - b _081BA1AE -_081BA230: - adds r0, r6, #0 - bl TextPrinterWaitWithDownArrow - lsls r0, r0, #0x10 - cmp r0, #0 - beq _081BA1AE - adds r0, r6, #0 - bl TextPrinterClearDownArrow - ldrb r1, [r6, #5] - ldr r0, _081BA264 - ldr r2, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r6, #0xb] - ldrb r0, [r0, #5] - adds r1, r1, r0 - strb r1, [r6, #0x1f] - ldrb r0, [r6, #6] - strb r0, [r6, #8] - movs r0, #4 - strb r0, [r6, #0x1c] - b _081BA1AE - .align 2, 0 -_081BA264: .4byte gUnknown_3003020 -_081BA268: - ldrb r2, [r6, #0x1f] - cmp r2, #0 - beq _081BA2D8 - ldr r4, _081BA29C - ldr r5, _081BA2A0 - ldr r0, [r5] - ldrb r0, [r0, #0x14] - lsls r1, r0, #0x1d - lsrs r0, r1, #0x1d - adds r0, r0, r4 - ldrb r0, [r0] - cmp r2, r0 - bhs _081BA2A4 - ldrb r0, [r6, #4] - ldrb r1, [r6, #0xd] - lsls r1, r1, #0x1c - lsrs r3, r1, #4 - orrs r3, r1 - lsrs r3, r3, #0x18 - movs r1, #0 - bl ScrollWindow - movs r0, #0 - strb r0, [r6, #0x1f] - b _081BA2CE - .align 2, 0 -_081BA29C: .4byte gUnknown_85E19DC -_081BA2A0: .4byte gUnknown_3005AF0 -_081BA2A4: - ldrb r0, [r6, #4] - lsrs r1, r1, #0x1d - adds r1, r1, r4 - ldrb r2, [r1] - ldrb r1, [r6, #0xd] - lsls r1, r1, #0x1c - lsrs r3, r1, #4 - orrs r3, r1 - lsrs r3, r3, #0x18 - movs r1, #0 - bl ScrollWindow - ldr r0, [r5] - ldrb r0, [r0, #0x14] - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1d - adds r0, r0, r4 - ldrb r1, [r6, #0x1f] - ldrb r0, [r0] - subs r1, r1, r0 - strb r1, [r6, #0x1f] -_081BA2CE: - ldrb r0, [r6, #4] - movs r1, #2 - bl CopyWindowToVram - b _081BA1AE -_081BA2D8: - strb r2, [r6, #0x1c] - b _081BA1AE -_081BA2DC: - bl IsSEPlaying - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _081BA2EA - b _081BA1AE -_081BA2EA: - strb r0, [r6, #0x1c] - b _081BA1AE -_081BA2EE: - ldrb r0, [r6, #0x1e] - adds r1, r0, #0 - cmp r1, #0 - beq _081BA2FC - subs r0, #1 - strb r0, [r6, #0x1e] - b _081BA1AE -_081BA2FC: - strb r1, [r6, #0x1c] - b _081BA1AE -_081BA300: - movs r0, #1 -_081BA302: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end Font6Func - - thumb_func_start DecompressGlyphFont6 -DecompressGlyphFont6: @ 0x081BA308 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x13 - lsls r2, r2, #9 - movs r1, #0xe0 - lsls r1, r1, #0xb - ands r1, r0 - lsrs r1, r1, #0xb - ldr r0, _081BA364 - adds r1, r1, r0 - adds r5, r2, r1 - ldr r4, _081BA368 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080047C8 - adds r0, r5, #0 - adds r0, #0x10 - adds r1, r4, #0 - adds r1, #0x20 - bl sub_080047C8 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r5, r1 - adds r1, r4, #0 - adds r1, #0x40 - bl sub_080047C8 - movs r1, #0x88 - lsls r1, r1, #1 - adds r0, r5, r1 - adds r1, r4, #0 - adds r1, #0x60 - bl sub_080047C8 - adds r0, r4, #0 - adds r0, #0x80 - movs r1, #0x10 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081BA364: .4byte gUnknown_85E19E0 -_081BA368: .4byte gUnknown_3003030 - thumb_func_end DecompressGlyphFont6 - - thumb_func_start MultiBootInit -MultiBootInit: @ 0x081BA36C - adds r2, r0, #0 - movs r1, #0 - strb r1, [r2, #0x1e] - strb r1, [r2, #0x18] - strb r1, [r2, #0x1d] - adds r3, r2, #0 - adds r3, #0x4a - movs r0, #0xf - strb r0, [r3] - adds r0, r2, #0 - adds r0, #0x48 - strb r1, [r0] - strh r1, [r2, #0x16] - ldr r0, _081BA398 - strh r1, [r0] - ldr r2, _081BA39C - ldr r3, _081BA3A0 - adds r0, r3, #0 - strh r0, [r2] - ldr r0, _081BA3A4 - strh r1, [r0] - bx lr - .align 2, 0 -_081BA398: .4byte 0x04000134 -_081BA39C: .4byte 0x04000128 -_081BA3A0: .4byte 0x00002003 -_081BA3A4: .4byte 0x0400012A - thumb_func_end MultiBootInit - - thumb_func_start MultiBootMain -MultiBootMain: @ 0x081BA3A8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r7, r0, #0 - bl MultiBootCheckComplete - cmp r0, #0 - beq _081BA3BE - b _081BA786 -_081BA3BE: - adds r0, r7, #0 - adds r0, #0x4a - ldrb r1, [r0] - mov sl, r0 - cmp r1, #0xf - bls _081BA3D2 - subs r0, r1, #1 - mov r1, sl - strb r0, [r1] - b _081BA786 -_081BA3D2: - adds r1, r7, #0 - adds r1, #0x48 - ldrb r0, [r1] - cmp r0, #0 - beq _081BA3FC - movs r0, #0 - strb r0, [r1] - ldr r0, _081BA3F8 - ldrh r0, [r0] - movs r5, #0xfc - ands r5, r0 - cmp r5, #8 - beq _081BA3FC - adds r0, r7, #0 - bl MultiBootInit - movs r0, #8 - eors r0, r5 - b _081BA788 - .align 2, 0 -_081BA3F8: .4byte 0x04000128 -_081BA3FC: - ldrb r0, [r7, #0x18] - cmp r0, #0xdf - bls _081BA44E - adds r0, r7, #0 - bl MultiBootHandShake - adds r5, r0, #0 - cmp r5, #0 - beq _081BA410 - b _081BA788 -_081BA410: - adds r0, r7, #0 - adds r0, #0x4b - ldrb r0, [r0] - cmp r0, #1 - bne _081BA42C - ldrb r0, [r7, #0x18] - cmp r0, #0xe1 - bls _081BA42C - adds r0, r7, #0 - bl MultiBootCheckComplete - cmp r0, #0 - bne _081BA42C - b _081BA776 -_081BA42C: - adds r0, r7, #0 - bl MultiBootCheckComplete - cmp r0, #0 - beq _081BA438 - b _081BA786 -_081BA438: - ldrh r0, [r7, #0x16] - cmp r0, #0 - bne _081BA448 - adds r0, r7, #0 - bl MultiBootInit - movs r0, #0x71 - b _081BA788 -_081BA448: - subs r0, #1 - strh r0, [r7, #0x16] - b _081BA786 -_081BA44E: - ldrb r0, [r7, #0x18] - cmp r0, #2 - bne _081BA456 - b _081BA58C -_081BA456: - cmp r0, #2 - bgt _081BA464 - cmp r0, #0 - beq _081BA472 - cmp r0, #1 - beq _081BA52E - b _081BA6C4 -_081BA464: - cmp r0, #0xd0 - bne _081BA46A - b _081BA5D8 -_081BA46A: - cmp r0, #0xd1 - bne _081BA470 - b _081BA672 -_081BA470: - b _081BA6C4 -_081BA472: - movs r3, #0xe - movs r5, #3 - ldr r0, _081BA4B8 - ldrh r0, [r0, #6] - adds r1, r0, #0 - ldr r0, _081BA4BC - ldrb r2, [r7, #0x1e] - adds r6, r2, #0 - cmp r1, r0 - bne _081BA49A - adds r4, r1, #0 - ldr r1, _081BA4C0 -_081BA48A: - asrs r3, r3, #1 - subs r1, #2 - subs r5, #1 - cmp r5, #0 - beq _081BA49A - ldrh r0, [r1] - cmp r0, r4 - beq _081BA48A -_081BA49A: - movs r0, #0xe - ands r3, r0 - strb r3, [r7, #0x1d] - movs r5, #3 - ldr r0, _081BA4B8 - ldrh r0, [r0, #6] - adds r4, r0, #0 - asrs r0, r2, #3 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _081BA4C8 - ldr r0, _081BA4C4 - b _081BA4EE - .align 2, 0 -_081BA4B8: .4byte 0x04000120 -_081BA4BC: .4byte 0x0000FFFF -_081BA4C0: .4byte 0x04000126 -_081BA4C4: .4byte 0x00007208 -_081BA4C8: - subs r5, #1 - cmp r5, #0 - beq _081BA4F4 - lsls r0, r5, #1 - ldr r1, _081BA51C - adds r0, r0, r1 - ldrh r0, [r0] - adds r4, r0, #0 - adds r0, r2, #0 - asrs r0, r5 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _081BA4C8 - adds r0, r1, #0 - lsls r0, r5 - movs r1, #0xe4 - lsls r1, r1, #7 - orrs r0, r1 -_081BA4EE: - cmp r4, r0 - beq _081BA4C8 - movs r3, #0 -_081BA4F4: - adds r0, r3, #0 - ands r0, r6 - strb r0, [r7, #0x1e] - cmp r3, #0 - bne _081BA504 - movs r0, #0xf - mov r2, sl - strb r0, [r2] -_081BA504: - mov r1, sl - ldrb r0, [r1] - cmp r0, #0 - bne _081BA520 - ldrb r0, [r7, #0x1d] - ldrb r2, [r7, #0x1e] - cmp r0, r2 - beq _081BA526 - adds r0, r7, #0 - bl MultiBootStartProbe - b _081BA52E - .align 2, 0 -_081BA51C: .4byte 0x04000120 -_081BA520: - subs r0, #1 - mov r1, sl - strb r0, [r1] -_081BA526: - ldrb r1, [r7, #0x1e] - movs r2, #0xc4 - lsls r2, r2, #7 - b _081BA62E -_081BA52E: - adds r1, r7, #0 - adds r1, #0x49 - movs r0, #0 - strb r0, [r1] - movs r5, #3 - mov ip, r1 - ldr r3, _081BA584 -_081BA53C: - lsls r0, r5, #1 - ldr r2, _081BA588 - adds r0, r0, r2 - ldrh r0, [r0] - adds r4, r0, #0 - asrs r0, r4, #8 - subs r2, r5, #1 - cmp r0, #0x72 - bne _081BA566 - lsls r0, r2, #1 - adds r0, r0, r3 - strh r4, [r0] - movs r0, #0xff - ands r4, r0 - movs r0, #1 - lsls r0, r5 - cmp r4, r0 - bne _081BA566 - ldrb r0, [r1] - orrs r4, r0 - strb r4, [r1] -_081BA566: - adds r5, r2, #0 - cmp r5, #0 - bne _081BA53C - ldrb r0, [r7, #0x1d] - mov r1, ip - ldrb r1, [r1] - cmp r0, r1 - bne _081BA526 - movs r0, #2 - strb r0, [r7, #0x18] - mov r2, ip - ldrb r1, [r2] - movs r2, #0xc2 - lsls r2, r2, #7 - b _081BA62E - .align 2, 0 -_081BA584: .4byte gUnknown_3001298 -_081BA588: .4byte 0x04000120 -_081BA58C: - movs r5, #3 - movs r0, #0x49 - adds r0, r0, r7 - mov ip, r0 - mov r4, ip - movs r6, #1 - ldr r1, _081BA5D0 - mov sb, r1 - ldr r2, _081BA5D4 - mov r8, r2 -_081BA5A0: - ldrb r3, [r4] - adds r0, r3, #0 - asrs r0, r5 - ands r0, r6 - subs r2, r5, #1 - cmp r0, #0 - beq _081BA5C6 - lsls r0, r5, #1 - add r0, r8 - ldrh r1, [r0] - lsls r0, r2, #1 - add r0, sb - ldrh r0, [r0] - cmp r1, r0 - beq _081BA5C6 - adds r0, r6, #0 - lsls r0, r5 - eors r3, r0 - strb r3, [r4] -_081BA5C6: - adds r5, r2, #0 - cmp r5, #0 - bne _081BA5A0 - b _081BA72C - .align 2, 0 -_081BA5D0: .4byte gUnknown_3001298 -_081BA5D4: .4byte 0x04000120 -_081BA5D8: - movs r3, #1 - movs r5, #3 - movs r0, #0x49 - adds r0, r0, r7 - mov ip, r0 - adds r6, r7, #0 - adds r6, #0x19 - ldr r1, _081BA63C - mov r8, r1 -_081BA5EA: - lsls r0, r5, #1 - ldr r2, _081BA640 - adds r0, r0, r2 - ldrh r0, [r0] - adds r4, r0, #0 - subs r2, r5, #1 - adds r0, r6, r2 - strb r4, [r0] - mov r0, ip - ldrb r1, [r0] - asrs r1, r5 - movs r0, #1 - ands r1, r0 - cmp r1, #0 - beq _081BA61E - asrs r0, r4, #8 - subs r0, #0x72 - cmp r0, #1 - bls _081BA612 - b _081BA77C -_081BA612: - lsls r0, r2, #1 - add r0, r8 - ldrh r0, [r0] - cmp r4, r0 - bne _081BA61E - movs r3, #0 -_081BA61E: - adds r5, r2, #0 - cmp r5, #0 - bne _081BA5EA - cmp r3, #0 - bne _081BA644 - ldrb r1, [r7, #0x1c] - movs r2, #0xc6 - lsls r2, r2, #7 -_081BA62E: - adds r0, r2, #0 - orrs r1, r0 - adds r0, r7, #0 - bl MultiBootSend - b _081BA788 - .align 2, 0 -_081BA63C: .4byte gUnknown_3001298 -_081BA640: .4byte 0x04000120 -_081BA644: - movs r0, #0xd1 - strb r0, [r7, #0x18] - movs r3, #0x11 - movs r5, #3 - adds r1, r6, #2 -_081BA64E: - ldrb r0, [r1] - adds r3, r3, r0 - subs r1, #1 - subs r5, #1 - cmp r5, #0 - bne _081BA64E - strb r3, [r7, #0x14] - movs r0, #0xff - ands r3, r0 - movs r1, #0xc8 - lsls r1, r1, #7 - adds r0, r1, #0 - orrs r3, r0 - adds r0, r7, #0 - adds r1, r3, #0 - bl MultiBootSend - b _081BA788 -_081BA672: - movs r5, #3 - movs r2, #0x49 - ldrb r1, [r2, r7] - ldr r2, _081BA6B0 - movs r3, #1 -_081BA67C: - ldrh r0, [r2] - adds r4, r0, #0 - adds r0, r1, #0 - asrs r0, r5 - ands r0, r3 - cmp r0, #0 - beq _081BA690 - asrs r0, r4, #8 - cmp r0, #0x73 - bne _081BA77C -_081BA690: - subs r2, #2 - subs r5, #1 - cmp r5, #0 - bne _081BA67C - adds r0, r7, #0 - bl MultiBoot - adds r5, r0, #0 - cmp r5, #0 - bne _081BA6B4 - movs r0, #0xe0 - strb r0, [r7, #0x18] - adds r0, #0xb0 - strh r0, [r7, #0x16] - b _081BA786 - .align 2, 0 -_081BA6B0: .4byte 0x04000126 -_081BA6B4: - adds r0, r7, #0 - bl MultiBootInit - movs r0, #0x1e - mov r1, sl - strb r0, [r1] - movs r0, #0x70 - b _081BA788 -_081BA6C4: - movs r5, #3 - movs r2, #0x49 - adds r2, r2, r7 - mov ip, r2 - mov r8, ip - movs r0, #1 - mov sb, r0 -_081BA6D2: - mov r1, r8 - ldrb r6, [r1] - adds r0, r6, #0 - asrs r0, r5 - mov r2, sb - ands r0, r2 - cmp r0, #0 - beq _081BA70C - lsls r0, r5, #1 - ldr r1, _081BA728 - adds r0, r0, r1 - ldrh r0, [r0] - adds r4, r0, #0 - asrs r2, r4, #8 - ldrb r0, [r7, #0x18] - lsrs r0, r0, #1 - movs r1, #0x62 - subs r1, r1, r0 - mov r3, sb - lsls r3, r5 - cmp r2, r1 - bne _081BA706 - movs r0, #0xff - ands r4, r0 - cmp r4, r3 - beq _081BA70C -_081BA706: - eors r6, r3 - mov r2, r8 - strb r6, [r2] -_081BA70C: - subs r5, #1 - cmp r5, #0 - bne _081BA6D2 - ldrb r0, [r7, #0x18] - cmp r0, #0xc4 - bne _081BA72C - mov r0, ip - ldrb r1, [r0] - movs r0, #0xe - ands r0, r1 - strb r0, [r7, #0x1e] - strb r5, [r7, #0x18] - b _081BA526 - .align 2, 0 -_081BA728: .4byte 0x04000120 -_081BA72C: - mov r1, ip - ldrb r0, [r1] - cmp r0, #0 - bne _081BA73E - adds r0, r7, #0 - bl MultiBootInit - movs r0, #0x50 - b _081BA788 -_081BA73E: - ldrb r0, [r7, #0x18] - adds r0, #2 - strb r0, [r7, #0x18] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xc4 - bne _081BA74E - b _081BA526 -_081BA74E: - ldrb r0, [r7, #0x18] - ldr r1, [r7, #0x28] - adds r0, r0, r1 - subs r1, r0, #3 - ldrb r2, [r1] - lsls r2, r2, #8 - subs r0, #4 - ldrb r1, [r0] - orrs r1, r2 - adds r0, r7, #0 - bl MultiBootSend - adds r5, r0, #0 - cmp r5, #0 - bne _081BA788 - adds r0, r7, #0 - adds r0, #0x4b - ldrb r0, [r0] - cmp r0, #1 - bne _081BA786 -_081BA776: - bl MultiBootWaitSendDone - b _081BA3D2 -_081BA77C: - adds r0, r7, #0 - bl MultiBootInit - movs r0, #0x60 - b _081BA788 -_081BA786: - movs r0, #0 -_081BA788: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MultiBootMain - - thumb_func_start MultiBootSend -MultiBootSend: @ 0x081BA798 - push {r4, lr} - adds r2, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r3, _081BA7C4 - ldrh r0, [r3] - movs r4, #0x8c - ands r4, r0 - cmp r4, #8 - bne _081BA7D0 - ldr r0, _081BA7C8 - strh r1, [r0] - ldr r1, _081BA7CC - adds r0, r1, #0 - strh r0, [r3] - adds r1, r2, #0 - adds r1, #0x48 - movs r0, #1 - strb r0, [r1] - movs r0, #0 - b _081BA7DC - .align 2, 0 -_081BA7C4: .4byte 0x04000128 -_081BA7C8: .4byte 0x0400012A -_081BA7CC: .4byte 0x00002083 -_081BA7D0: - adds r0, r2, #0 - bl MultiBootInit - movs r0, #8 - eors r4, r0 - adds r0, r4, #0 -_081BA7DC: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MultiBootSend - - thumb_func_start MultiBootStartProbe -MultiBootStartProbe: @ 0x081BA7E4 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0x18] - cmp r0, #0 - beq _081BA7F6 - adds r0, r1, #0 - bl MultiBootInit - b _081BA802 -_081BA7F6: - adds r2, r1, #0 - adds r2, #0x4a - strb r0, [r2] - strb r0, [r1, #0x1e] - movs r0, #1 - strb r0, [r1, #0x18] -_081BA802: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end MultiBootStartProbe - - thumb_func_start MultiBootStartMaster -MultiBootStartMaster: @ 0x081BA808 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r0, [sp, #0x14] - lsls r3, r3, #0x18 - lsrs r5, r3, #0x18 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r3, #0 - ldrb r0, [r4, #0x18] - cmp r0, #0 - bne _081BA844 - ldrb r0, [r4, #0x1e] - cmp r0, #0 - beq _081BA844 - adds r0, r4, #0 - adds r0, #0x4a - ldrb r0, [r0] - cmp r0, #0 - bne _081BA844 - str r6, [r4, #0x20] - adds r2, #0xf - movs r0, #0x10 - rsbs r0, r0, #0 - ands r2, r0 - subs r0, #0xf0 - adds r1, r2, r0 - ldr r0, _081BA84C - cmp r1, r0 - bls _081BA850 -_081BA844: - adds r0, r4, #0 - bl MultiBootInit - b _081BA8C4 - .align 2, 0 -_081BA84C: .4byte 0x0003FF00 -_081BA850: - adds r0, r6, r2 - str r0, [r4, #0x24] - lsls r1, r7, #0x18 - movs r2, #0x80 - lsls r2, r2, #0x13 - adds r0, r1, r2 - asrs r0, r0, #0x18 - adds r2, r1, #0 - cmp r0, #8 - bhi _081BA8B0 - lsls r0, r0, #2 - ldr r1, _081BA870 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081BA870: .4byte _081BA874 -_081BA874: @ jump table - .4byte _081BA898 @ case 0 - .4byte _081BA898 @ case 1 - .4byte _081BA898 @ case 2 - .4byte _081BA898 @ case 3 - .4byte _081BA8A2 @ case 4 - .4byte _081BA8A8 @ case 5 - .4byte _081BA8A8 @ case 6 - .4byte _081BA8A8 @ case 7 - .4byte _081BA8A8 @ case 8 -_081BA898: - lsls r3, r5, #3 - asrs r1, r2, #0x18 - movs r0, #3 - subs r0, r0, r1 - b _081BA8AE -_081BA8A2: - movs r0, #0x38 - adds r3, r5, #0 - b _081BA8AE -_081BA8A8: - lsls r3, r5, #3 - asrs r0, r2, #0x18 - subs r0, #1 -_081BA8AE: - orrs r3, r0 -_081BA8B0: - movs r0, #0x3f - ands r3, r0 - lsls r0, r3, #1 - movs r2, #0x7f - rsbs r2, r2, #0 - adds r1, r2, #0 - orrs r0, r1 - strb r0, [r4, #0x1c] - movs r0, #0xd0 - strb r0, [r4, #0x18] -_081BA8C4: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end MultiBootStartMaster - - thumb_func_start MultiBootCheckComplete -MultiBootCheckComplete: @ 0x081BA8CC - push {lr} - ldrb r0, [r0, #0x18] - cmp r0, #0xe9 - beq _081BA8D8 - movs r0, #0 - b _081BA8DA -_081BA8D8: - movs r0, #1 -_081BA8DA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MultiBootCheckComplete - - thumb_func_start MultiBootHandShake -MultiBootHandShake: @ 0x081BA8E0 - push {r4, r5, r6, lr} - adds r3, r0, #0 - ldrb r0, [r3, #0x18] - cmp r0, #0xe0 - beq _081BA8FC - cmp r0, #0xe0 - blt _081BA90C - cmp r0, #0xe8 - bgt _081BA90C - cmp r0, #0xe7 - blt _081BA90C - movs r4, #3 - ldrb r5, [r3, #0x1e] - b _081BA96C -_081BA8FC: - movs r1, #0 - movs r0, #0xe1 - strb r0, [r3, #0x18] - str r1, [r3, #4] - movs r0, #0x80 - lsls r0, r0, #0xd - str r0, [r3] - b _081BA95E -_081BA90C: - movs r4, #3 - ldrb r5, [r3, #0x1e] - movs r6, #1 - ldr r1, _081BA968 -_081BA914: - ldrh r0, [r1] - adds r2, r0, #0 - adds r0, r5, #0 - asrs r0, r4 - ands r0, r6 - cmp r0, #0 - beq _081BA928 - ldr r0, [r3, #4] - cmp r2, r0 - bne _081BA8FC -_081BA928: - subs r1, #2 - subs r4, #1 - cmp r4, #0 - bne _081BA914 - ldrb r0, [r3, #0x18] - adds r0, #1 - strb r0, [r3, #0x18] - ldr r1, [r3] - ldrh r0, [r3] - str r0, [r3, #4] - cmp r1, #0 - bne _081BA956 - ldr r0, [r3, #0x28] - adds r1, r0, #0 - adds r1, #0xac - ldrb r1, [r1] - adds r0, #0xad - ldrb r0, [r0] - lsls r0, r0, #8 - orrs r1, r0 - str r1, [r3, #4] - lsls r1, r1, #5 - str r1, [r3] -_081BA956: - ldr r0, [r3] - lsrs r0, r0, #5 - str r0, [r3] -_081BA95C: - ldrh r1, [r3] -_081BA95E: - adds r0, r3, #0 - bl MultiBootSend - b _081BA9C4 - .align 2, 0 -_081BA968: .4byte 0x04000126 -_081BA96C: - lsls r0, r4, #1 - ldr r1, _081BA9B4 - adds r0, r0, r1 - ldrh r0, [r0] - adds r2, r0, #0 - adds r0, r5, #0 - asrs r0, r4 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _081BA988 - ldr r0, [r3, #4] - cmp r2, r0 - bne _081BA9B8 -_081BA988: - subs r4, #1 - cmp r4, #0 - bne _081BA96C - ldrb r0, [r3, #0x18] - adds r0, #1 - strb r0, [r3, #0x18] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xe9 - beq _081BA9C2 - ldr r0, [r3, #0x28] - adds r1, r0, #0 - adds r1, #0xae - ldrb r1, [r1] - adds r0, #0xaf - ldrb r0, [r0] - lsls r0, r0, #8 - orrs r1, r0 - str r1, [r3] - str r1, [r3, #4] - b _081BA95C - .align 2, 0 -_081BA9B4: .4byte 0x04000120 -_081BA9B8: - adds r0, r3, #0 - bl MultiBootInit - movs r0, #0x71 - b _081BA9C4 -_081BA9C2: - movs r0, #0 -_081BA9C4: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MultiBootHandShake - - thumb_func_start MultiBootWaitCycles -MultiBootWaitCycles: @ 0x081BA9CC - mov r2, pc - lsrs r2, r2, #0x18 - movs r1, #0xc - cmp r2, #2 - beq _081BA9DE - movs r1, #0xd - cmp r2, #8 - beq _081BA9DE - movs r1, #4 -_081BA9DE: - subs r0, r0, r1 - bgt _081BA9DE - bx lr - thumb_func_end MultiBootWaitCycles - - thumb_func_start MultiBootWaitSendDone -MultiBootWaitSendDone: @ 0x081BA9E4 - push {r4, r5, lr} - movs r2, #0 - ldr r3, _081BAA18 - ldrh r1, [r3] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _081BAA08 - ldr r5, _081BAA1C - movs r4, #0x80 -_081BA9F8: - adds r2, #1 - cmp r2, r5 - bgt _081BAA08 - ldrh r1, [r3] - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - bne _081BA9F8 -_081BAA08: - movs r0, #0x96 - lsls r0, r0, #2 - bl MultiBootWaitCycles - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081BAA18: .4byte 0x04000128 -_081BAA1C: .4byte 0x0000795C - thumb_func_end MultiBootWaitSendDone - - thumb_func_start sub_081BAA20 -sub_081BAA20: @ 0x081BAA20 - push {r4, r5, r6, lr} - movs r6, #0x80 - lsls r6, r6, #0x13 - movs r2, #0 - strh r2, [r6] - ldr r1, _081BAA7C - strh r2, [r1] - adds r1, #2 - strh r2, [r1] - adds r1, #0x3e - strh r2, [r1] - ldr r5, _081BAA80 - lsls r4, r0, #1 - adds r4, r4, r0 - lsls r4, r4, #2 - adds r0, r4, r5 - ldr r0, [r0] - movs r1, #0xc0 - lsls r1, r1, #0x13 - bl LZ77UnCompVram - adds r0, r5, #4 - adds r0, r4, r0 - ldr r0, [r0] - ldr r1, _081BAA84 - bl LZ77UnCompVram - adds r5, #8 - adds r4, r4, r5 - ldr r0, [r4] - movs r1, #0xa0 - lsls r1, r1, #0x13 - movs r4, #0x80 - lsls r4, r4, #1 - adds r2, r4, #0 - bl CpuSet - ldr r1, _081BAA88 - movs r2, #0xf8 - lsls r2, r2, #5 - adds r0, r2, #0 - strh r0, [r1] - strh r4, [r6] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081BAA7C: .4byte 0x04000010 -_081BAA80: .4byte gUnknown_85E72E4 -_081BAA84: .4byte 0x0600F800 -_081BAA88: .4byte 0x04000008 - thumb_func_end sub_081BAA20 - - thumb_func_start sub_081BAA8C -sub_081BAA8C: @ 0x081BAA8C - bx lr - .align 2, 0 - thumb_func_end sub_081BAA8C - - thumb_func_start sub_081BAA90 -sub_081BAA90: @ 0x081BAA90 - ldr r1, _081BAAA0 - ldr r0, _081BAAA4 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081BAAA8 - str r1, [r0] - bx lr - .align 2, 0 -_081BAAA0: .4byte gUnknown_3005AC0 -_081BAAA4: .4byte gUnknown_2023D08 -_081BAAA8: .4byte sub_081BAAAC - thumb_func_end sub_081BAA90 - - thumb_func_start sub_081BAAAC -sub_081BAAAC: @ 0x081BAAAC - push {lr} - ldr r2, _081BAAE0 - ldr r1, _081BAAE4 - ldr r0, _081BAAE8 - ldrb r3, [r0] - lsls r0, r3, #2 - adds r0, r0, r1 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _081BAAF8 - ldr r0, _081BAAEC - lsls r1, r3, #9 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0x38 - bhi _081BAAF4 - ldr r0, _081BAAF0 - ldrb r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl _call_via_r0 - b _081BAAF8 - .align 2, 0 -_081BAAE0: .4byte gUnknown_2023D0C -_081BAAE4: .4byte gUnknown_82FACB4 -_081BAAE8: .4byte gUnknown_2023D08 -_081BAAEC: .4byte gUnknown_2022D08 -_081BAAF0: .4byte gUnknown_85E732C -_081BAAF4: - bl PlayerPartnerBufferExecCompleted -_081BAAF8: - pop {r0} - bx r0 - thumb_func_end sub_081BAAAC - - thumb_func_start CompleteOnBattlerSpriteCallbackDummy -CompleteOnBattlerSpriteCallbackDummy: @ 0x081BAAFC - push {lr} - ldr r2, _081BAB24 - ldr r1, _081BAB28 - ldr r0, _081BAB2C - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _081BAB30 - cmp r1, r0 - bne _081BAB20 - bl PlayerPartnerBufferExecCompleted -_081BAB20: - pop {r0} - bx r0 - .align 2, 0 -_081BAB24: .4byte gUnknown_20205AC -_081BAB28: .4byte gUnknown_2023E88 -_081BAB2C: .4byte gUnknown_2023D08 -_081BAB30: .4byte sub_08007140 - thumb_func_end CompleteOnBattlerSpriteCallbackDummy - - thumb_func_start sub_081BAB34 -sub_081BAB34: @ 0x081BAB34 - push {r4, r5, r6, lr} - ldr r6, _081BAB8C - ldr r5, _081BAB90 - ldr r4, _081BAB94 - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r6, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, [r0] - ldr r0, _081BAB98 - cmp r1, r0 - bne _081BAB84 - movs r0, #0 - bl sub_0805DBFC - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - bl FreeSpriteOamMatrix - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - bl DestroySprite - bl PlayerPartnerBufferExecCompleted -_081BAB84: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081BAB8C: .4byte gUnknown_20205AC -_081BAB90: .4byte gUnknown_2023E88 -_081BAB94: .4byte gUnknown_2023D08 -_081BAB98: .4byte sub_08007140 - thumb_func_end sub_081BAB34 - - thumb_func_start sub_081BAB9C -sub_081BAB9C: @ 0x081BAB9C - push {r4, lr} - ldr r4, _081BABDC - ldr r1, [r4] - ldr r3, _081BABE0 - ldrb r0, [r3] - ldr r2, [r1, #4] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r0, [r1, #9] - subs r0, #1 - strb r0, [r1, #9] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _081BABD4 - ldr r0, [r4] - ldrb r1, [r3] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0 - strb r1, [r0, #9] - bl PlayerPartnerBufferExecCompleted -_081BABD4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081BABDC: .4byte gUnknown_2024174 -_081BABE0: .4byte gUnknown_2023D08 - thumb_func_end sub_081BAB9C - - thumb_func_start sub_081BABE4 -sub_081BABE4: @ 0x081BABE4 - push {r4, r5, r6, lr} - movs r6, #0 - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081BAC08 - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081BAC3C - ldr r0, _081BAC28 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _081BAC3C -_081BAC08: - ldr r2, _081BAC2C - ldr r1, _081BAC30 - ldr r0, _081BAC34 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _081BAC38 - cmp r1, r0 - bne _081BAC74 - b _081BAC72 - .align 2, 0 -_081BAC28: .4byte gUnknown_2022C90 -_081BAC2C: .4byte gUnknown_20205AC -_081BAC30: .4byte gUnknown_3005AD0 -_081BAC34: .4byte gUnknown_2023D08 -_081BAC38: .4byte sub_08007140 -_081BAC3C: - ldr r2, _081BACAC - ldr r5, _081BACB0 - ldr r0, _081BACB4 - ldrb r3, [r0] - adds r0, r3, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, r2, #0 - adds r4, #0x1c - adds r0, r0, r4 - ldr r2, [r0] - ldr r0, _081BACB8 - cmp r2, r0 - bne _081BAC74 - movs r0, #2 - eors r3, r0 - adds r0, r3, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r0, [r0] - cmp r0, r2 - bne _081BAC74 -_081BAC72: - movs r6, #1 -_081BAC74: - bl IsCryPlayingOrClearCrySongs - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081BAC80 - movs r6, #0 -_081BAC80: - cmp r6, #0 - beq _081BACA6 - ldr r0, _081BACBC - ldr r0, [r0] - ldr r3, _081BACB4 - ldrb r1, [r3] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #3 - strb r1, [r0, #9] - ldr r1, _081BACC0 - ldrb r0, [r3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081BACC4 - str r1, [r0] -_081BACA6: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081BACAC: .4byte gUnknown_20205AC -_081BACB0: .4byte gUnknown_3005AD0 -_081BACB4: .4byte gUnknown_2023D08 -_081BACB8: .4byte sub_08007140 -_081BACBC: .4byte gUnknown_2024174 -_081BACC0: .4byte gUnknown_3005AC0 -_081BACC4: .4byte sub_081BAB9C - thumb_func_end sub_081BABE4 - - thumb_func_start sub_081BACC8 -sub_081BACC8: @ 0x081BACC8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _081BAE40 - mov ip, r0 - ldr r0, [r0] - ldr r7, _081BAE44 - ldrb r2, [r7] - ldr r3, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r4, r0, r3 - ldrb r1, [r4] - movs r5, #8 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _081BACF4 - b _081BAE32 -_081BACF4: - movs r1, #2 - mov r8, r1 - adds r1, r2, #0 - mov r0, r8 - eors r1, r0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0] - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - beq _081BAD16 - b _081BAE32 -_081BAD16: - ldr r1, _081BAE48 - mov sl, r1 - ldr r0, _081BAE4C - mov sb, r0 - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - mov r5, sl - adds r5, #0x1c - adds r0, r0, r5 - ldr r3, [r0] - ldr r0, _081BAE50 - cmp r3, r0 - bne _081BAE32 - ldr r0, _081BAE54 - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r0, [r0] - cmp r0, r3 - bne _081BAE32 - ldrb r0, [r4, #9] - adds r0, #1 - strb r0, [r4, #9] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081BAE32 - mov r1, ip - ldr r0, [r1] - ldrb r1, [r7] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strb r6, [r0, #9] - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081BADD0 - ldr r0, _081BAE58 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _081BADD0 - ldrb r0, [r7] - mov r1, r8 - eors r0, r1 - add r0, sb - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sl - bl DestroySprite - ldr r4, _081BAE5C - ldrb r0, [r7] - mov r1, r8 - eors r1, r0 - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, _081BAE60 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _081BAE64 - adds r1, r1, r2 - movs r2, #0 - bl UpdateHealthboxAttribute - ldrb r0, [r7] - mov r1, r8 - eors r0, r1 - bl sub_08076320 - ldrb r0, [r7] - mov r1, r8 - eors r0, r1 - adds r0, r0, r4 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible -_081BADD0: - ldr r1, _081BAE4C - ldr r4, _081BAE44 - ldrb r0, [r4] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _081BAE48 - adds r0, r0, r1 - bl DestroySprite - ldr r5, _081BAE5C - ldrb r1, [r4] - adds r0, r1, r5 - ldrb r0, [r0] - ldr r2, _081BAE60 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _081BAE64 - adds r1, r1, r2 - movs r2, #0 - bl UpdateHealthboxAttribute - ldrb r0, [r4] - bl sub_08076320 - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible - ldr r0, _081BAE40 - ldr r0, [r0] - ldr r2, [r0, #8] - ldrb r1, [r2, #9] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #9] - ldr r1, _081BAE68 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081BAE6C - str r1, [r0] -_081BAE32: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081BAE40: .4byte gUnknown_2024174 -_081BAE44: .4byte gUnknown_2023D08 -_081BAE48: .4byte gUnknown_20205AC -_081BAE4C: .4byte gUnknown_3005ADC -_081BAE50: .4byte sub_08007140 -_081BAE54: .4byte gUnknown_2023E88 -_081BAE58: .4byte gUnknown_2022C90 -_081BAE5C: .4byte gUnknown_3005AD0 -_081BAE60: .4byte gUnknown_2023D12 -_081BAE64: .4byte gUnknown_2024190 -_081BAE68: .4byte gUnknown_3005AC0 -_081BAE6C: .4byte sub_081BABE4 - thumb_func_end sub_081BACC8 - - thumb_func_start sub_081BAE70 -sub_081BAE70: @ 0x081BAE70 - push {lr} - ldr r2, _081BAEA4 - ldr r1, _081BAEA8 - ldr r0, _081BAEAC - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r2 - adds r0, r1, #0 - adds r0, #0x3f - ldrb r0, [r0] - lsls r0, r0, #0x1b - cmp r0, #0 - bge _081BAE9E - movs r2, #0x24 - ldrsh r0, [r1, r2] - cmp r0, #0 - bne _081BAE9E - bl PlayerPartnerBufferExecCompleted -_081BAE9E: - pop {r0} - bx r0 - .align 2, 0 -_081BAEA4: .4byte gUnknown_20205AC -_081BAEA8: .4byte gUnknown_2023E88 -_081BAEAC: .4byte gUnknown_2023D08 - thumb_func_end sub_081BAE70 - - thumb_func_start sub_081BAEB0 -sub_081BAEB0: @ 0x081BAEB0 - push {r4, r5, r6, lr} - ldr r5, _081BAEF0 - ldrb r0, [r5] - ldr r6, _081BAEF4 - adds r1, r0, r6 - ldrb r1, [r1] - movs r2, #0 - movs r3, #0 - bl MoveBattleBar - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible - lsls r4, r4, #0x10 - asrs r1, r4, #0x10 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _081BAEF8 - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r0, [r0] - movs r2, #0 - bl sub_080726F4 - b _081BAF12 - .align 2, 0 -_081BAEF0: .4byte gUnknown_2023D08 -_081BAEF4: .4byte gUnknown_3005AD0 -_081BAEF8: - ldr r2, _081BAF18 - ldrb r1, [r5] - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r2, [r0] - movs r0, #0x64 - muls r0, r2, r0 - ldr r2, _081BAF1C - adds r0, r0, r2 - bl HandleLowHpMusicChange - bl PlayerPartnerBufferExecCompleted -_081BAF12: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081BAF18: .4byte gUnknown_2023D12 -_081BAF1C: .4byte gUnknown_2024190 - thumb_func_end sub_081BAEB0 - - thumb_func_start sub_081BAF20 -sub_081BAF20: @ 0x081BAF20 - push {lr} - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _081BAF32 - bl PlayerPartnerBufferExecCompleted -_081BAF32: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081BAF20 - - thumb_func_start Task_GiveExpToMon -Task_GiveExpToMon: @ 0x081BAF38 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldr r1, _081BB038 - lsls r0, r0, #2 - add r0, sb - lsls r0, r0, #3 - adds r0, r0, r1 - mov r8, r0 - ldrb r0, [r0, #8] - mov sl, r0 - mov r1, r8 - ldrb r7, [r1, #0xc] - str r7, [sp, #8] - ldrh r2, [r1, #0xa] - str r2, [sp, #0xc] - bl IsDoubleBattle - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081BAF7E - ldr r1, _081BB03C - lsls r0, r7, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp sl, r0 - bne _081BAF7E - b _081BB094 -_081BAF7E: - movs r0, #0x64 - mov r1, sl - muls r1, r0, r1 - ldr r0, _081BB040 - adds r6, r1, r0 - adds r0, r6, #0 - movs r1, #0xb - bl GetMonData - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - adds r0, r6, #0 - movs r1, #0x38 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r6, #0 - movs r1, #0x19 - bl GetMonData - str r0, [sp, #4] - ldr r3, _081BB044 - adds r4, #1 - lsls r4, r4, #2 - ldr r2, _081BB048 - lsls r1, r5, #3 - subs r1, r1, r5 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r2, [r1, #0x13] - movs r1, #0xca - lsls r1, r1, #1 - muls r1, r2, r1 - adds r4, r4, r1 - adds r4, r4, r3 - ldr r2, [r4] - str r2, [sp] - ldr r3, [sp, #0xc] - lsls r1, r3, #0x10 - asrs r1, r1, #0x10 - adds r0, r0, r1 - cmp r0, r2 - blo _081BB06C - adds r0, r6, #0 - movs r1, #0x19 - mov r2, sp - bl SetMonData - adds r0, r6, #0 - bl CalculateMonStats - ldr r2, [sp] - add r0, sp, #4 - ldrh r0, [r0] - subs r2, r2, r0 - ldr r0, [sp, #0xc] - subs r2, r0, r2 - ldr r4, _081BB04C - ldrb r5, [r4] - strb r7, [r4] - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - movs r0, #1 - movs r1, #0xb - bl BtlController_EmitTwoReturnValues - strb r5, [r4] - bl IsDoubleBattle - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081BB054 - ldr r2, _081BB03C - lsls r0, r7, #1 - adds r0, r0, r2 - mov r1, sl - ldrh r0, [r0] - cmp r1, r0 - beq _081BB032 - movs r0, #2 - eors r7, r0 - lsls r0, r7, #1 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r1, r0 - bne _081BB054 -_081BB032: - ldr r0, _081BB050 - b _081BB096 - .align 2, 0 -_081BB038: .4byte gUnknown_3005B60 -_081BB03C: .4byte gUnknown_2023D12 -_081BB040: .4byte gUnknown_2024190 -_081BB044: .4byte gUnknown_82F00B4 -_081BB048: .4byte gUnknown_82F0D54 -_081BB04C: .4byte gUnknown_2023D08 -_081BB050: .4byte sub_081BB2C4 -_081BB054: - ldr r0, _081BB064 - mov r2, sb - lsls r1, r2, #2 - add r1, sb - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081BB068 - b _081BB098 - .align 2, 0 -_081BB064: .4byte gUnknown_3005B60 -_081BB068: .4byte sub_081BB3DC -_081BB06C: - str r0, [sp, #4] - add r2, sp, #4 - adds r0, r6, #0 - movs r1, #0x19 - bl SetMonData - ldr r1, _081BB08C - ldr r3, [sp, #8] - lsls r0, r3, #2 - adds r0, r0, r1 - ldr r1, _081BB090 - str r1, [r0] - mov r0, sb - bl DestroyTask - b _081BB09A - .align 2, 0 -_081BB08C: .4byte gUnknown_3005AC0 -_081BB090: .4byte sub_081BAF20 -_081BB094: - ldr r0, _081BB0AC -_081BB096: - mov r1, r8 -_081BB098: - str r0, [r1] -_081BB09A: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081BB0AC: .4byte sub_081BB0B0 - thumb_func_end Task_GiveExpToMon - - thumb_func_start sub_081BB0B0 -sub_081BB0B0: @ 0x081BB0B0 - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081BB168 - lsls r2, r0, #2 - mov r8, r2 - add r8, r0 - mov r0, r8 - lsls r0, r0, #3 - mov r8, r0 - add r8, r1 - mov r2, r8 - ldrb r1, [r2, #8] - movs r0, #0xa - ldrsh r2, [r2, r0] - mov sb, r2 - mov r2, r8 - ldrb r2, [r2, #0xc] - mov sl, r2 - movs r0, #0x64 - adds r6, r1, #0 - muls r6, r0, r6 - ldr r0, _081BB16C - adds r6, r6, r0 - adds r0, r6, #0 - movs r1, #0x38 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r6, #0 - movs r1, #0xb - bl GetMonData - adds r5, r0, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - adds r0, r6, #0 - movs r1, #0x19 - bl GetMonData - adds r3, r0, #0 - ldr r6, _081BB170 - lsls r1, r4, #2 - ldr r2, _081BB174 - lsls r0, r5, #3 - subs r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r2, [r0, #0x13] - movs r0, #0xca - lsls r0, r0, #1 - muls r0, r2, r0 - adds r1, r1, r0 - adds r1, r1, r6 - ldr r1, [r1] - subs r3, r3, r1 - adds r4, #1 - lsls r4, r4, #2 - adds r4, r4, r0 - adds r4, r4, r6 - ldr r2, [r4] - subs r2, r2, r1 - ldr r0, _081BB178 - add r0, sl - ldrb r1, [r0] - mov r0, sb - rsbs r0, r0, #0 - str r0, [sp] - mov r0, sl - bl SetBattleBarStruct - movs r0, #0x21 - bl sub_080A306C - ldr r0, _081BB17C - mov r1, r8 - str r0, [r1] - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081BB168: .4byte gUnknown_3005B60 -_081BB16C: .4byte gUnknown_2024190 -_081BB170: .4byte gUnknown_82F00B4 -_081BB174: .4byte gUnknown_82F0D54 -_081BB178: .4byte gUnknown_3005AD0 -_081BB17C: .4byte sub_081BB180 - thumb_func_end sub_081BB0B0 - - thumb_func_start sub_081BB180 -sub_081BB180: @ 0x081BB180 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r1, _081BB1AC - lsls r0, r0, #2 - add r0, r8 - lsls r0, r0, #3 - adds r6, r0, r1 - ldrh r1, [r6, #0x1c] - movs r2, #0x1c - ldrsh r0, [r6, r2] - cmp r0, #0xc - bgt _081BB1B0 - adds r0, r1, #1 - strh r0, [r6, #0x1c] - b _081BB2AC - .align 2, 0 -_081BB1AC: .4byte gUnknown_3005B60 -_081BB1B0: - ldrb r0, [r6, #8] - mov sb, r0 - ldrh r2, [r6, #0xa] - mov sl, r2 - ldrb r7, [r6, #0xc] - ldr r5, _081BB278 - adds r5, r7, r5 - ldrb r1, [r5] - adds r0, r7, #0 - movs r2, #1 - movs r3, #0 - bl MoveBattleBar - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldrb r0, [r5] - bl SetHealthboxSpriteVisible - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - movs r0, #1 - rsbs r0, r0, #0 - cmp r4, r0 - bne _081BB2AC - movs r0, #0x21 - bl m4aSongNumStop - movs r0, #0x64 - mov r1, sb - muls r1, r0, r1 - ldr r0, _081BB27C - adds r5, r1, r0 - adds r0, r5, #0 - movs r1, #0x38 - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - movs r1, #0x19 - bl GetMonData - str r0, [sp, #4] - adds r0, r5, #0 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r3, _081BB280 - adds r4, #1 - lsls r4, r4, #2 - ldr r2, _081BB284 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r1, [r1, #0x13] - movs r0, #0xca - lsls r0, r0, #1 - muls r0, r1, r0 - adds r4, r4, r0 - adds r4, r4, r3 - ldr r1, [r4] - str r1, [sp] - mov r2, sl - lsls r0, r2, #0x10 - asrs r4, r0, #0x10 - ldr r0, [sp, #4] - adds r0, r0, r4 - cmp r0, r1 - blt _081BB290 - adds r0, r5, #0 - movs r1, #0x19 - mov r2, sp - bl SetMonData - adds r0, r5, #0 - bl CalculateMonStats - ldr r2, [sp] - add r0, sp, #4 - ldrh r0, [r0] - subs r2, r2, r0 - subs r2, r4, r2 - ldr r4, _081BB288 - ldrb r5, [r4] - strb r7, [r4] - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - movs r0, #1 - movs r1, #0xb - bl BtlController_EmitTwoReturnValues - strb r5, [r4] - ldr r0, _081BB28C - str r0, [r6] - b _081BB2AC - .align 2, 0 -_081BB278: .4byte gUnknown_3005AD0 -_081BB27C: .4byte gUnknown_2024190 -_081BB280: .4byte gUnknown_82F00B4 -_081BB284: .4byte gUnknown_82F0D54 -_081BB288: .4byte gUnknown_2023D08 -_081BB28C: .4byte sub_081BB2C4 -_081BB290: - str r0, [sp, #4] - add r2, sp, #4 - adds r0, r5, #0 - movs r1, #0x19 - bl SetMonData - ldr r1, _081BB2BC - lsls r0, r7, #2 - adds r0, r0, r1 - ldr r1, _081BB2C0 - str r1, [r0] - mov r0, r8 - bl DestroyTask -_081BB2AC: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081BB2BC: .4byte gUnknown_3005AC0 -_081BB2C0: .4byte sub_081BAF20 - thumb_func_end sub_081BB180 - - thumb_func_start sub_081BB2C4 -sub_081BB2C4: @ 0x081BB2C4 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _081BB318 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r4, [r0, #0xc] - ldrb r6, [r0, #8] - bl IsDoubleBattle - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081BB2F8 - ldr r1, _081BB31C - movs r0, #2 - adds r2, r4, #0 - eors r2, r0 - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r6, r0 - bne _081BB2F8 - adds r4, r2, #0 -_081BB2F8: - adds r0, r4, #0 - adds r1, r4, #0 - adds r2, r4, #0 - movs r3, #0 - bl InitAndLaunchSpecialAnimation - ldr r0, _081BB318 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081BB320 - str r0, [r1] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081BB318: .4byte gUnknown_3005B60 -_081BB31C: .4byte gUnknown_2023D12 -_081BB320: .4byte sub_081BB324 - thumb_func_end sub_081BB2C4 - - thumb_func_start sub_081BB324 -sub_081BB324: @ 0x081BB324 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _081BB390 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r2, r0, r1 - ldrb r5, [r2, #0xc] - ldr r0, _081BB394 - ldr r0, [r0] - ldr r1, [r0, #4] - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _081BB3C6 - ldrb r4, [r2, #8] - movs r0, #0x64 - adds r1, r4, #0 - muls r1, r0, r1 - ldr r0, _081BB398 - adds r7, r1, r0 - adds r0, r7, #0 - movs r1, #0x38 - bl GetMonData - bl IsDoubleBattle - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081BB3A4 - ldr r1, _081BB39C - movs r0, #2 - adds r2, r5, #0 - eors r2, r0 - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r4, r0 - bne _081BB3A4 - ldr r0, _081BB3A0 - adds r0, r2, r0 - ldrb r0, [r0] - adds r1, r7, #0 - movs r2, #0 - bl UpdateHealthboxAttribute - b _081BB3B8 - .align 2, 0 -_081BB390: .4byte gUnknown_3005B60 -_081BB394: .4byte gUnknown_2024174 -_081BB398: .4byte gUnknown_2024190 -_081BB39C: .4byte gUnknown_2023D12 -_081BB3A0: .4byte gUnknown_3005AD0 -_081BB3A4: - ldr r0, _081BB3CC - adds r0, r5, r0 - ldrb r0, [r0] - movs r1, #0x64 - muls r1, r4, r1 - ldr r2, _081BB3D0 - adds r1, r1, r2 - movs r2, #0 - bl UpdateHealthboxAttribute -_081BB3B8: - ldr r0, _081BB3D4 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081BB3D8 - str r0, [r1] -_081BB3C6: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081BB3CC: .4byte gUnknown_3005AD0 -_081BB3D0: .4byte gUnknown_2024190 -_081BB3D4: .4byte gUnknown_3005B60 -_081BB3D8: .4byte sub_081BB3DC - thumb_func_end sub_081BB324 - - thumb_func_start sub_081BB3DC -sub_081BB3DC: @ 0x081BB3DC - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _081BB418 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - adds r4, r4, r0 - ldrb r1, [r4, #8] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081BB41C - adds r0, r0, r1 - movs r1, #0x38 - bl GetMonData - ldrb r0, [r4, #0xc] - ldr r1, _081BB420 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081BB424 - str r1, [r0] - adds r0, r5, #0 - bl DestroyTask - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081BB418: .4byte gUnknown_3005B60 -_081BB41C: .4byte gUnknown_2024190 -_081BB420: .4byte gUnknown_3005AC0 -_081BB424: .4byte sub_081BAF20 - thumb_func_end sub_081BB3DC - - thumb_func_start sub_081BB428 -sub_081BB428: @ 0x081BB428 - push {r4, r5, r6, lr} - ldr r6, _081BB4AC - ldr r5, _081BB4B0 - ldr r4, _081BB4B4 - ldrb r2, [r4] - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r3, #0x22 - ldrsh r1, [r0, r3] - movs r3, #0x26 - ldrsh r0, [r0, r3] - adds r1, r1, r0 - cmp r1, #0xa0 - ble _081BB4A4 - ldr r1, _081BB4B8 - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081BB4BC - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_0805DB50 - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r0, [r0, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - ldrb r0, [r4] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - bl DestroySprite - ldr r1, _081BB4C0 - ldrb r0, [r4] - adds r0, r0, r1 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible - bl PlayerPartnerBufferExecCompleted -_081BB4A4: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081BB4AC: .4byte gUnknown_20205AC -_081BB4B0: .4byte gUnknown_2023E88 -_081BB4B4: .4byte gUnknown_2023D08 -_081BB4B8: .4byte gUnknown_2023D12 -_081BB4BC: .4byte gUnknown_2024190 -_081BB4C0: .4byte gUnknown_3005AD0 - thumb_func_end sub_081BB428 - - thumb_func_start sub_081BB4C4 -sub_081BB4C4: @ 0x081BB4C4 - push {r4, r5, r6, lr} - ldr r0, _081BB520 - ldr r0, [r0] - ldr r6, _081BB524 - ldrb r2, [r6] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _081BB518 - ldr r5, _081BB528 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _081BB52C - adds r0, r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - ldr r1, _081BB530 - ldrb r0, [r6] - adds r0, r0, r1 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible - bl PlayerPartnerBufferExecCompleted -_081BB518: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081BB520: .4byte gUnknown_2024174 -_081BB524: .4byte gUnknown_2023D08 -_081BB528: .4byte gUnknown_2023E88 -_081BB52C: .4byte gUnknown_20205AC -_081BB530: .4byte gUnknown_3005AD0 - thumb_func_end sub_081BB4C4 - - thumb_func_start CompleteOnInactiveTextPrinter -CompleteOnInactiveTextPrinter: @ 0x081BB534 - push {lr} - movs r0, #0 - bl sub_080046A8 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _081BB546 - bl PlayerPartnerBufferExecCompleted -_081BB546: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CompleteOnInactiveTextPrinter - - thumb_func_start sub_081BB54C -sub_081BB54C: @ 0x081BB54C - push {r4, lr} - ldr r1, _081BB588 - ldr r0, _081BB58C - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - ldr r2, _081BB590 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, r0, r2 - movs r1, #0x30 - ldrsh r0, [r4, r1] - cmp r0, #0x20 - bne _081BB598 - movs r3, #0 - movs r0, #0 - strh r0, [r4, #0x30] - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - subs r0, #5 - ands r0, r1 - strb r0, [r2] - ldr r0, _081BB594 - strb r3, [r0] - bl PlayerPartnerBufferExecCompleted - b _081BB5C2 - .align 2, 0 -_081BB588: .4byte gUnknown_2023E88 -_081BB58C: .4byte gUnknown_2023D08 -_081BB590: .4byte gUnknown_20205AC -_081BB594: .4byte gUnknown_202415D -_081BB598: - ldrh r0, [r4, #0x30] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _081BB5BC - adds r3, r4, #0 - adds r3, #0x3e - ldrb r2, [r3] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_081BB5BC: - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] -_081BB5C2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081BB54C - - thumb_func_start sub_081BB5C8 -sub_081BB5C8: @ 0x081BB5C8 - push {r4, lr} - ldr r2, _081BB620 - ldr r0, _081BB624 - ldr r4, _081BB628 - ldrb r3, [r4] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _081BB62C - cmp r1, r0 - bne _081BB61A - adds r0, r3, #0 - bl CopyBattleSpriteInvisibility - ldr r0, _081BB630 - ldr r0, [r0] - ldrb r2, [r4] - ldr r1, [r0] - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _081BB60E - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #6 - bl InitAndLaunchSpecialAnimation -_081BB60E: - ldr r0, _081BB634 - ldrb r1, [r4] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, _081BB638 - str r0, [r1] -_081BB61A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081BB620: .4byte gUnknown_20205AC -_081BB624: .4byte gUnknown_3005AD0 -_081BB628: .4byte gUnknown_2023D08 -_081BB62C: .4byte sub_08007140 -_081BB630: .4byte gUnknown_2024174 -_081BB634: .4byte gUnknown_3005AC0 -_081BB638: .4byte sub_081BB63C - thumb_func_end sub_081BB5C8 - - thumb_func_start sub_081BB63C -sub_081BB63C: @ 0x081BB63C - push {lr} - ldr r0, _081BB67C - ldr r1, [r0] - ldr r0, _081BB680 - ldrb r3, [r0] - ldr r1, [r1, #4] - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _081BB678 - ldr r2, _081BB684 - ldr r0, _081BB688 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _081BB68C - cmp r1, r0 - bne _081BB678 - bl PlayerPartnerBufferExecCompleted -_081BB678: - pop {r0} - bx r0 - .align 2, 0 -_081BB67C: .4byte gUnknown_2024174 -_081BB680: .4byte gUnknown_2023D08 -_081BB684: .4byte gUnknown_20205AC -_081BB688: .4byte gUnknown_2023E88 -_081BB68C: .4byte sub_08007140 - thumb_func_end sub_081BB63C - - thumb_func_start sub_081BB690 -sub_081BB690: @ 0x081BB690 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r3, _081BB758 - ldr r0, [r3] - ldr r7, _081BB75C - ldrb r1, [r7] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, r0, r2 - ldrb r1, [r2, #1] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081BB74C - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - ldr r0, [r3] - ldrb r2, [r7] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1, #1] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #1] - ldr r4, _081BB760 - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl FreeSpritePaletteByTag - ldr r0, _081BB764 - movs r1, #0xa - bl CreateTask - ldr r0, _081BB768 - mov r8, r0 - ldrb r1, [r7] - lsls r0, r1, #1 - add r0, r8 - ldrh r0, [r0] - movs r6, #0x64 - muls r0, r6, r0 - ldr r5, _081BB76C - adds r0, r0, r5 - bl HandleLowHpMusicChange - ldr r1, _081BB770 - ldrb r0, [r7] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _081BB774 - adds r0, r0, r1 - movs r1, #0 - bl StartSpriteAnim - ldr r4, _081BB778 - ldrb r1, [r7] - adds r0, r1, r4 - ldrb r0, [r0] - lsls r1, r1, #1 - add r1, r8 - ldrh r1, [r1] - muls r1, r6, r1 - adds r1, r1, r5 - movs r2, #0 - bl UpdateHealthboxAttribute - ldrb r0, [r7] - bl sub_08076320 - ldrb r0, [r7] - adds r0, r0, r4 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible - ldr r1, _081BB77C - ldrb r0, [r7] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081BB780 - str r1, [r0] -_081BB74C: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081BB758: .4byte gUnknown_2024174 -_081BB75C: .4byte gUnknown_2023D08 -_081BB760: .4byte 0x000027F9 -_081BB764: .4byte sub_08058D10 -_081BB768: .4byte gUnknown_2023D12 -_081BB76C: .4byte gUnknown_2024190 -_081BB770: .4byte gUnknown_2023E88 -_081BB774: .4byte gUnknown_20205AC -_081BB778: .4byte gUnknown_3005AD0 -_081BB77C: .4byte gUnknown_3005AC0 -_081BB780: .4byte sub_081BB5C8 - thumb_func_end sub_081BB690 - - thumb_func_start sub_081BB784 -sub_081BB784: @ 0x081BB784 - push {r4, r5, r6, lr} - ldr r6, _081BB804 - ldr r0, [r6] - ldr r4, _081BB808 - ldrb r2, [r4] - ldr r1, [r0, #4] - lsls r3, r2, #1 - adds r0, r3, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x88 - ands r0, r1 - cmp r0, #0 - bne _081BB7B6 - ldr r0, _081BB80C - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - ldr r0, _081BB810 - adds r1, r1, r0 - adds r0, r2, #0 - bl sub_08172CD4 -_081BB7B6: - ldr r5, _081BB814 - ldr r0, _081BB818 - ldrb r2, [r4] - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r3, r0, #2 - adds r0, r5, #0 - adds r0, #0x1c - adds r0, r3, r0 - ldr r1, [r0] - ldr r0, _081BB81C - cmp r1, r0 - bne _081BB7FC - ldr r0, [r6] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - bne _081BB7FC - adds r0, r3, r5 - bl DestroySprite - ldr r1, _081BB820 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081BB824 - str r1, [r0] -_081BB7FC: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081BB804: .4byte gUnknown_2024174 -_081BB808: .4byte gUnknown_2023D08 -_081BB80C: .4byte gUnknown_2023D12 -_081BB810: .4byte gUnknown_2024190 -_081BB814: .4byte gUnknown_20205AC -_081BB818: .4byte gUnknown_3005ADC -_081BB81C: .4byte sub_08007140 -_081BB820: .4byte gUnknown_3005AC0 -_081BB824: .4byte sub_081BB690 - thumb_func_end sub_081BB784 - - thumb_func_start PlayerPartnerBufferExecCompleted -PlayerPartnerBufferExecCompleted: @ 0x081BB828 - push {r4, lr} - sub sp, #4 - ldr r1, _081BB868 - ldr r4, _081BB86C - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081BB870 - str r1, [r0] - ldr r0, _081BB874 - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _081BB87C - bl GetMultiplayerId - mov r1, sp - strb r0, [r1] - movs r0, #2 - movs r1, #4 - mov r2, sp - bl PrepareBufferDataTransferLink - ldr r1, _081BB878 - ldrb r0, [r4] - lsls r0, r0, #9 - adds r0, r0, r1 - movs r1, #0x38 - strb r1, [r0] - b _081BB88E - .align 2, 0 -_081BB868: .4byte gUnknown_3005AC0 -_081BB86C: .4byte gUnknown_2023D08 -_081BB870: .4byte sub_081BAAAC -_081BB874: .4byte gUnknown_2022C90 -_081BB878: .4byte gUnknown_2022D08 -_081BB87C: - ldr r2, _081BB898 - ldr r1, _081BB89C - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - ldr r0, [r2] - bics r0, r1 - str r0, [r2] -_081BB88E: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081BB898: .4byte gUnknown_2023D0C -_081BB89C: .4byte gUnknown_82FACB4 - thumb_func_end PlayerPartnerBufferExecCompleted - - thumb_func_start sub_081BB8A0 -sub_081BB8A0: @ 0x081BB8A0 - push {lr} - ldr r0, _081BB8C8 - ldr r2, [r0] - ldr r0, _081BB8CC - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _081BB8C2 - bl PlayerPartnerBufferExecCompleted -_081BB8C2: - pop {r0} - bx r0 - .align 2, 0 -_081BB8C8: .4byte gUnknown_2024174 -_081BB8CC: .4byte gUnknown_2023D08 - thumb_func_end sub_081BB8A0 - - thumb_func_start sub_081BB8D0 -sub_081BB8D0: @ 0x081BB8D0 - push {lr} - ldr r0, _081BB8F8 - ldr r2, [r0] - ldr r0, _081BB8FC - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _081BB8F2 - bl PlayerPartnerBufferExecCompleted -_081BB8F2: - pop {r0} - bx r0 - .align 2, 0 -_081BB8F8: .4byte gUnknown_2024174 -_081BB8FC: .4byte gUnknown_2023D08 - thumb_func_end sub_081BB8D0 - - thumb_func_start PlayerPartnerHandleGetMonData -PlayerPartnerHandleGetMonData: @ 0x081BB900 - push {r4, r5, r6, lr} - sub sp, #0x100 - movs r6, #0 - ldr r1, _081BB92C - ldr r0, _081BB930 - ldrb r2, [r0] - lsls r0, r2, #9 - adds r1, #2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, #0 - bne _081BB938 - ldr r0, _081BB934 - lsls r1, r2, #1 - adds r1, r1, r0 - ldrb r0, [r1] - mov r1, sp - bl CopyPlayerPartnerMonData - adds r6, r0, #0 - b _081BB95A - .align 2, 0 -_081BB92C: .4byte gUnknown_2022D08 -_081BB930: .4byte gUnknown_2023D08 -_081BB934: .4byte gUnknown_2023D12 -_081BB938: - ldrb r4, [r1] - movs r5, #0 -_081BB93C: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _081BB952 - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - mov r2, sp - adds r1, r2, r6 - bl CopyPlayerPartnerMonData - adds r6, r6, r0 -_081BB952: - lsrs r4, r4, #1 - adds r5, #1 - cmp r5, #5 - ble _081BB93C -_081BB95A: - lsls r1, r6, #0x10 - lsrs r1, r1, #0x10 - movs r0, #1 - mov r2, sp - bl BtlController_EmitDataTransfer - bl PlayerPartnerBufferExecCompleted - add sp, #0x100 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PlayerPartnerHandleGetMonData - - thumb_func_start CopyPlayerPartnerMonData -CopyPlayerPartnerMonData: @ 0x081BB974 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x90 - adds r7, r1, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r6, #0 - ldr r2, _081BB9A8 - ldr r3, _081BB9AC - ldrb r0, [r3] - lsls r0, r0, #9 - adds r1, r2, #1 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0x3b - bls _081BB99E - bl _081BC10A -_081BB99E: - lsls r0, r0, #2 - ldr r1, _081BB9B0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081BB9A8: .4byte gUnknown_2022D08 -_081BB9AC: .4byte gUnknown_2023D08 -_081BB9B0: .4byte _081BB9B4 -_081BB9B4: @ jump table - .4byte _081BBAA4 @ case 0 - .4byte _081BBCC8 @ case 1 - .4byte _081BBCD8 @ case 2 - .4byte _081BBCE8 @ case 3 - .4byte _081BBD50 @ case 4 - .4byte _081BBD50 @ case 5 - .4byte _081BBD50 @ case 6 - .4byte _081BBD50 @ case 7 - .4byte _081BBD6C @ case 8 - .4byte _081BBDA8 @ case 9 - .4byte _081BBDA8 @ case 10 - .4byte _081BBDA8 @ case 11 - .4byte _081BBDA8 @ case 12 - .4byte _081BC10A @ case 13 - .4byte _081BC10A @ case 14 - .4byte _081BC10A @ case 15 - .4byte _081BC10A @ case 16 - .4byte _081BBDC4 @ case 17 - .4byte _081BBDD4 @ case 18 - .4byte _081BBE04 @ case 19 - .4byte _081BBE14 @ case 20 - .4byte _081BBE24 @ case 21 - .4byte _081BBE34 @ case 22 - .4byte _081BBE44 @ case 23 - .4byte _081BBE54 @ case 24 - .4byte _081BBE64 @ case 25 - .4byte _081BBE74 @ case 26 - .4byte _081BBE84 @ case 27 - .4byte _081BBE94 @ case 28 - .4byte _081BBEA4 @ case 29 - .4byte _081BBEB4 @ case 30 - .4byte _081BBEC4 @ case 31 - .4byte _081BBF14 @ case 32 - .4byte _081BBF24 @ case 33 - .4byte _081BBF34 @ case 34 - .4byte _081BBF44 @ case 35 - .4byte _081BBF54 @ case 36 - .4byte _081BBF64 @ case 37 - .4byte _081BBF74 @ case 38 - .4byte _081BBF84 @ case 39 - .4byte _081BBF94 @ case 40 - .4byte _081BBFC8 @ case 41 - .4byte _081BBFD8 @ case 42 - .4byte _081BBFE8 @ case 43 - .4byte _081BBFF8 @ case 44 - .4byte _081BC008 @ case 45 - .4byte _081BC018 @ case 46 - .4byte _081BC028 @ case 47 - .4byte _081BC038 @ case 48 - .4byte _081BC058 @ case 49 - .4byte _081BC068 @ case 50 - .4byte _081BC078 @ case 51 - .4byte _081BC088 @ case 52 - .4byte _081BC098 @ case 53 - .4byte _081BC0A8 @ case 54 - .4byte _081BC0B8 @ case 55 - .4byte _081BC0C8 @ case 56 - .4byte _081BC0D8 @ case 57 - .4byte _081BC0E8 @ case 58 - .4byte _081BC0F8 @ case 59 -_081BBAA4: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _081BBCB8 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - mov r1, sp - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0xc - bl GetMonData - mov r1, sp - strh r0, [r1, #0x2e] - movs r6, #0 - add r0, sp, #0x24 - mov sb, r0 - movs r1, #0x3b - add r1, sp - mov sl, r1 - mov r2, sp - adds r2, #0x2b - str r2, [sp, #0x80] - mov r0, sp - adds r0, #0x2a - str r0, [sp, #0x7c] - mov r1, sp - adds r1, #0x68 - str r1, [sp, #0x8c] - adds r2, #5 - str r2, [sp, #0x84] - adds r0, #0x12 - str r0, [sp, #0x88] - mov r8, r4 - add r4, sp, #0xc -_081BBAF0: - adds r1, r6, #0 - adds r1, #0xd - mov r0, r8 - bl GetMonData - strh r0, [r4] - adds r1, r6, #0 - adds r1, #0x11 - mov r0, r8 - bl GetMonData - mov r2, sb - adds r1, r2, r6 - strb r0, [r1] - adds r4, #2 - adds r6, #1 - cmp r6, #3 - ble _081BBAF0 - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _081BBCB8 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x15 - bl GetMonData - mov r1, sl - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x20 - bl GetMonData - ldr r2, [sp, #0x80] - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0x19 - bl GetMonData - str r0, [sp, #0x44] - adds r0, r4, #0 - movs r1, #0x27 - bl GetMonData - mov r3, sp - movs r5, #0x1f - ands r0, r5 - ldrb r2, [r3, #0x14] - movs r1, #0x20 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x14] - adds r0, r4, #0 - movs r1, #0x28 - bl GetMonData - mov r3, sp - movs r6, #0x1f - ands r0, r6 - lsls r0, r0, #5 - ldrh r2, [r3, #0x14] - ldr r1, _081BBCBC - ands r1, r2 - orrs r1, r0 - strh r1, [r3, #0x14] - adds r0, r4, #0 - movs r1, #0x29 - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, r0, #2 - ldrb r2, [r3, #0x15] - movs r1, #0x7d - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x15] - adds r0, r4, #0 - movs r1, #0x2a - bl GetMonData - movs r1, #0x1f - ands r1, r0 - lsls r1, r1, #0xf - ldr r0, [sp, #0x14] - ldr r2, _081BBCC0 - ands r0, r2 - orrs r0, r1 - str r0, [sp, #0x14] - adds r0, r4, #0 - movs r1, #0x2b - bl GetMonData - mov r3, sp - ands r0, r6 - lsls r0, r0, #4 - ldrh r2, [r3, #0x16] - ldr r1, _081BBCC4 - ands r1, r2 - orrs r1, r0 - strh r1, [r3, #0x16] - adds r0, r4, #0 - movs r1, #0x2c - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, r0, #1 - ldrb r2, [r3, #0x17] - movs r1, #0x3f - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x17] - adds r0, r4, #0 - movs r1, #0 - bl GetMonData - str r0, [sp, #0x48] - adds r0, r4, #0 - movs r1, #0x37 - bl GetMonData - str r0, [sp, #0x4c] - adds r0, r4, #0 - movs r1, #0x38 - bl GetMonData - ldr r1, [sp, #0x7c] - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - mov r1, sp - strh r0, [r1, #0x28] - adds r0, r4, #0 - movs r1, #0x3a - bl GetMonData - mov r1, sp - strh r0, [r1, #0x2c] - adds r0, r4, #0 - movs r1, #0x3b - bl GetMonData - mov r1, sp - strh r0, [r1, #2] - adds r0, r4, #0 - movs r1, #0x3c - bl GetMonData - mov r1, sp - strh r0, [r1, #4] - adds r0, r4, #0 - movs r1, #0x3d - bl GetMonData - mov r1, sp - strh r0, [r1, #6] - adds r0, r4, #0 - movs r1, #0x3e - bl GetMonData - mov r1, sp - strh r0, [r1, #8] - adds r0, r4, #0 - movs r1, #0x3f - bl GetMonData - mov r1, sp - strh r0, [r1, #0xa] - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - mov r3, sp - movs r1, #1 - ands r0, r1 - lsls r0, r0, #6 - ldrb r2, [r3, #0x17] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x17] - adds r0, r4, #0 - movs r1, #0x2e - bl GetMonData - mov r3, sp - lsls r0, r0, #7 - ldrb r2, [r3, #0x17] - movs r1, #0x7f - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x17] - adds r0, r4, #0 - movs r1, #1 - bl GetMonData - str r0, [sp, #0x54] - adds r0, r4, #0 - movs r1, #2 - ldr r2, [sp, #0x8c] - bl GetMonData - ldr r0, [sp, #0x84] - ldr r1, [sp, #0x8c] - bl StringCopy10 - adds r0, r4, #0 - movs r1, #7 - ldr r2, [sp, #0x88] - bl GetMonData - mov r2, sp - movs r6, #0 -_081BBCA8: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, #1 - cmp r6, #0x57 - bls _081BBCA8 - b _081BC10A - .align 2, 0 -_081BBCB8: .4byte gUnknown_2024190 -_081BBCBC: .4byte 0xFFFFFC1F -_081BBCC0: .4byte 0xFFF07FFF -_081BBCC4: .4byte 0xFFFFFE0F -_081BBCC8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BBCD4 - adds r0, r0, r1 - movs r1, #0xb - b _081BC042 - .align 2, 0 -_081BBCD4: .4byte gUnknown_2024190 -_081BBCD8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BBCE4 - adds r0, r0, r1 - movs r1, #0xc - b _081BC042 - .align 2, 0 -_081BBCE4: .4byte gUnknown_2024190 -_081BBCE8: - movs r6, #0 - add r2, sp, #0x58 - mov sb, r2 - add r0, sp, #0x60 - mov sl, r0 - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _081BBD4C - adds r4, r1, r0 - mov r8, sb -_081BBCFE: - adds r1, r6, #0 - adds r1, #0xd - adds r0, r4, #0 - bl GetMonData - mov r1, r8 - strh r0, [r1] - adds r1, r6, #0 - adds r1, #0x11 - adds r0, r4, #0 - bl GetMonData - mov r2, sl - adds r1, r2, r6 - strb r0, [r1] - movs r0, #2 - add r8, r0 - adds r6, #1 - cmp r6, #3 - ble _081BBCFE - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BBD4C - adds r0, r0, r1 - movs r1, #0x15 - bl GetMonData - mov r1, sb - strb r0, [r1, #0xc] - mov r2, sb - movs r6, #0 -_081BBD3C: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, #1 - cmp r6, #0xf - bls _081BBD3C - b _081BC10A - .align 2, 0 -_081BBD4C: .4byte gUnknown_2024190 -_081BBD50: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BBD68 - adds r0, r0, r1 - ldrb r1, [r3] - lsls r1, r1, #9 - adds r2, #1 - adds r1, r1, r2 - ldrb r1, [r1] - adds r1, #9 - b _081BC042 - .align 2, 0 -_081BBD68: .4byte gUnknown_2024190 -_081BBD6C: - movs r6, #0 - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r2, _081BBDA4 - mov r8, r2 -_081BBD78: - adds r1, r6, #0 - adds r1, #0x11 - mov r2, r8 - adds r0, r4, r2 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, #1 - cmp r6, #3 - ble _081BBD78 - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BBDA4 - adds r0, r0, r1 - movs r1, #0x15 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, #1 - b _081BC10A - .align 2, 0 -_081BBDA4: .4byte gUnknown_2024190 -_081BBDA8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BBDC0 - adds r0, r0, r1 - ldrb r1, [r3] - lsls r1, r1, #9 - adds r2, #1 - adds r1, r1, r2 - ldrb r1, [r1] - adds r1, #8 - b _081BC102 - .align 2, 0 -_081BBDC0: .4byte gUnknown_2024190 -_081BBDC4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BBDD0 - adds r0, r0, r1 - movs r1, #1 - b _081BBDDE - .align 2, 0 -_081BBDD0: .4byte gUnknown_2024190 -_081BBDD4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BBE00 - adds r0, r0, r1 - movs r1, #0x19 -_081BBDDE: - bl GetMonData - adds r1, r0, #0 - strb r1, [r7] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - lsrs r0, r0, #8 - strb r0, [r7, #1] - movs r0, #0xff - lsls r0, r0, #0x10 - ands r0, r1 - lsrs r0, r0, #0x10 - strb r0, [r7, #2] - movs r6, #3 - b _081BC10A - .align 2, 0 -_081BBE00: .4byte gUnknown_2024190 -_081BBE04: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BBE10 - adds r0, r0, r1 - movs r1, #0x1a - b _081BC102 - .align 2, 0 -_081BBE10: .4byte gUnknown_2024190 -_081BBE14: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BBE20 - adds r0, r0, r1 - movs r1, #0x1b - b _081BC102 - .align 2, 0 -_081BBE20: .4byte gUnknown_2024190 -_081BBE24: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BBE30 - adds r0, r0, r1 - movs r1, #0x1c - b _081BC102 - .align 2, 0 -_081BBE30: .4byte gUnknown_2024190 -_081BBE34: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BBE40 - adds r0, r0, r1 - movs r1, #0x1d - b _081BC102 - .align 2, 0 -_081BBE40: .4byte gUnknown_2024190 -_081BBE44: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BBE50 - adds r0, r0, r1 - movs r1, #0x1e - b _081BC102 - .align 2, 0 -_081BBE50: .4byte gUnknown_2024190 -_081BBE54: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BBE60 - adds r0, r0, r1 - movs r1, #0x1f - b _081BC102 - .align 2, 0 -_081BBE60: .4byte gUnknown_2024190 -_081BBE64: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BBE70 - adds r0, r0, r1 - movs r1, #0x20 - b _081BC102 - .align 2, 0 -_081BBE70: .4byte gUnknown_2024190 -_081BBE74: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BBE80 - adds r0, r0, r1 - movs r1, #0x22 - b _081BC102 - .align 2, 0 -_081BBE80: .4byte gUnknown_2024190 -_081BBE84: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BBE90 - adds r0, r0, r1 - movs r1, #0x23 - b _081BC102 - .align 2, 0 -_081BBE90: .4byte gUnknown_2024190 -_081BBE94: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BBEA0 - adds r0, r0, r1 - movs r1, #0x24 - b _081BC102 - .align 2, 0 -_081BBEA0: .4byte gUnknown_2024190 -_081BBEA4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BBEB0 - adds r0, r0, r1 - movs r1, #0x25 - b _081BC102 - .align 2, 0 -_081BBEB0: .4byte gUnknown_2024190 -_081BBEB4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BBEC0 - adds r0, r0, r1 - movs r1, #0x26 - b _081BC102 - .align 2, 0 -_081BBEC0: .4byte gUnknown_2024190 -_081BBEC4: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _081BBF10 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x27 - bl GetMonData - strb r0, [r7] - adds r0, r4, #0 - movs r1, #0x28 - bl GetMonData - strb r0, [r7, #1] - adds r0, r4, #0 - movs r1, #0x29 - bl GetMonData - strb r0, [r7, #2] - adds r0, r4, #0 - movs r1, #0x2a - bl GetMonData - strb r0, [r7, #3] - adds r0, r4, #0 - movs r1, #0x2b - bl GetMonData - strb r0, [r7, #4] - adds r0, r4, #0 - movs r1, #0x2c - bl GetMonData - strb r0, [r7, #5] - movs r6, #6 - b _081BC10A - .align 2, 0 -_081BBF10: .4byte gUnknown_2024190 -_081BBF14: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BBF20 - adds r0, r0, r1 - movs r1, #0x27 - b _081BC102 - .align 2, 0 -_081BBF20: .4byte gUnknown_2024190 -_081BBF24: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BBF30 - adds r0, r0, r1 - movs r1, #0x28 - b _081BC102 - .align 2, 0 -_081BBF30: .4byte gUnknown_2024190 -_081BBF34: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BBF40 - adds r0, r0, r1 - movs r1, #0x29 - b _081BC102 - .align 2, 0 -_081BBF40: .4byte gUnknown_2024190 -_081BBF44: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BBF50 - adds r0, r0, r1 - movs r1, #0x2a - b _081BC102 - .align 2, 0 -_081BBF50: .4byte gUnknown_2024190 -_081BBF54: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BBF60 - adds r0, r0, r1 - movs r1, #0x2b - b _081BC102 - .align 2, 0 -_081BBF60: .4byte gUnknown_2024190 -_081BBF64: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BBF70 - adds r0, r0, r1 - movs r1, #0x2c - b _081BC102 - .align 2, 0 -_081BBF70: .4byte gUnknown_2024190 -_081BBF74: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BBF80 - adds r0, r0, r1 - movs r1, #0 - b _081BBF9E - .align 2, 0 -_081BBF80: .4byte gUnknown_2024190 -_081BBF84: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BBF90 - adds r0, r0, r1 - movs r1, #9 - b _081BC042 - .align 2, 0 -_081BBF90: .4byte gUnknown_2024190 -_081BBF94: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BBFC4 - adds r0, r0, r1 - movs r1, #0x37 -_081BBF9E: - bl GetMonData - adds r1, r0, #0 - strb r1, [r7] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - lsrs r0, r0, #8 - strb r0, [r7, #1] - movs r0, #0xff - lsls r0, r0, #0x10 - ands r0, r1 - lsrs r0, r0, #0x10 - strb r0, [r7, #2] - lsrs r0, r1, #0x18 - strb r0, [r7, #3] - movs r6, #4 - b _081BC10A - .align 2, 0 -_081BBFC4: .4byte gUnknown_2024190 -_081BBFC8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BBFD4 - adds r0, r0, r1 - movs r1, #0x38 - b _081BC102 - .align 2, 0 -_081BBFD4: .4byte gUnknown_2024190 -_081BBFD8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BBFE4 - adds r0, r0, r1 - movs r1, #0x39 - b _081BC042 - .align 2, 0 -_081BBFE4: .4byte gUnknown_2024190 -_081BBFE8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BBFF4 - adds r0, r0, r1 - movs r1, #0x3a - b _081BC042 - .align 2, 0 -_081BBFF4: .4byte gUnknown_2024190 -_081BBFF8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC004 - adds r0, r0, r1 - movs r1, #0x3b - b _081BC042 - .align 2, 0 -_081BC004: .4byte gUnknown_2024190 -_081BC008: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC014 - adds r0, r0, r1 - movs r1, #0x3c - b _081BC042 - .align 2, 0 -_081BC014: .4byte gUnknown_2024190 -_081BC018: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC024 - adds r0, r0, r1 - movs r1, #0x3d - b _081BC042 - .align 2, 0 -_081BC024: .4byte gUnknown_2024190 -_081BC028: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC034 - adds r0, r0, r1 - movs r1, #0x3e - b _081BC042 - .align 2, 0 -_081BC034: .4byte gUnknown_2024190 -_081BC038: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC054 - adds r0, r0, r1 - movs r1, #0x3f -_081BC042: - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - strb r0, [r7] - lsrs r0, r0, #8 - strb r0, [r7, #1] - movs r6, #2 - b _081BC10A - .align 2, 0 -_081BC054: .4byte gUnknown_2024190 -_081BC058: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC064 - adds r0, r0, r1 - movs r1, #0x16 - b _081BC102 - .align 2, 0 -_081BC064: .4byte gUnknown_2024190 -_081BC068: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC074 - adds r0, r0, r1 - movs r1, #0x17 - b _081BC102 - .align 2, 0 -_081BC074: .4byte gUnknown_2024190 -_081BC078: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC084 - adds r0, r0, r1 - movs r1, #0x18 - b _081BC102 - .align 2, 0 -_081BC084: .4byte gUnknown_2024190 -_081BC088: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC094 - adds r0, r0, r1 - movs r1, #0x21 - b _081BC102 - .align 2, 0 -_081BC094: .4byte gUnknown_2024190 -_081BC098: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC0A4 - adds r0, r0, r1 - movs r1, #0x2f - b _081BC102 - .align 2, 0 -_081BC0A4: .4byte gUnknown_2024190 -_081BC0A8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC0B4 - adds r0, r0, r1 - movs r1, #0x30 - b _081BC102 - .align 2, 0 -_081BC0B4: .4byte gUnknown_2024190 -_081BC0B8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC0C4 - adds r0, r0, r1 - movs r1, #0x32 - b _081BC102 - .align 2, 0 -_081BC0C4: .4byte gUnknown_2024190 -_081BC0C8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC0D4 - adds r0, r0, r1 - movs r1, #0x33 - b _081BC102 - .align 2, 0 -_081BC0D4: .4byte gUnknown_2024190 -_081BC0D8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC0E4 - adds r0, r0, r1 - movs r1, #0x34 - b _081BC102 - .align 2, 0 -_081BC0E4: .4byte gUnknown_2024190 -_081BC0E8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC0F4 - adds r0, r0, r1 - movs r1, #0x35 - b _081BC102 - .align 2, 0 -_081BC0F4: .4byte gUnknown_2024190 -_081BC0F8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC11C - adds r0, r0, r1 - movs r1, #0x36 -_081BC102: - bl GetMonData - strb r0, [r7] - movs r6, #1 -_081BC10A: - adds r0, r6, #0 - add sp, #0x90 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081BC11C: .4byte gUnknown_2024190 - thumb_func_end CopyPlayerPartnerMonData - - thumb_func_start sub_081BC120 -sub_081BC120: @ 0x081BC120 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081BC120 - - thumb_func_start sub_081BC12C -sub_081BC12C: @ 0x081BC12C - push {r4, r5, lr} - ldr r1, _081BC150 - ldr r0, _081BC154 - ldrb r2, [r0] - lsls r0, r2, #9 - adds r1, #2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, #0 - bne _081BC15C - ldr r0, _081BC158 - lsls r1, r2, #1 - adds r1, r1, r0 - ldrb r0, [r1] - bl SetPlayerPartnerMonData - b _081BC17A - .align 2, 0 -_081BC150: .4byte gUnknown_2022D08 -_081BC154: .4byte gUnknown_2023D08 -_081BC158: .4byte gUnknown_2023D12 -_081BC15C: - ldrb r4, [r1] - movs r5, #0 -_081BC160: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _081BC16E - adds r0, r5, #0 - bl SetPlayerPartnerMonData -_081BC16E: - lsrs r4, r4, #1 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #5 - bls _081BC160 -_081BC17A: - bl PlayerPartnerBufferExecCompleted - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_081BC12C - - thumb_func_start SetPlayerPartnerMonData -SetPlayerPartnerMonData: @ 0x081BC184 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x34 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _081BC1BC - ldrb r0, [r0] - lsls r0, r0, #9 - ldr r2, _081BC1C0 - adds r3, r0, r2 - adds r6, r3, #0 - subs r1, r2, #2 - adds r0, r0, r1 - ldrb r0, [r0] - adds r7, r2, #0 - cmp r0, #0x3b - bls _081BC1B0 - bl _081BCB4A -_081BC1B0: - lsls r0, r0, #2 - ldr r1, _081BC1C4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081BC1BC: .4byte gUnknown_2023D08 -_081BC1C0: .4byte gUnknown_2022D0B -_081BC1C4: .4byte _081BC1C8 -_081BC1C8: @ jump table - .4byte _081BC2B8 @ case 0 - .4byte _081BC450 @ case 1 - .4byte _081BC470 @ case 2 - .4byte _081BC490 @ case 3 - .4byte _081BC4E8 @ case 4 - .4byte _081BC4E8 @ case 5 - .4byte _081BC4E8 @ case 6 - .4byte _081BC4E8 @ case 7 - .4byte _081BC510 @ case 8 - .4byte _081BC574 @ case 9 - .4byte _081BC574 @ case 10 - .4byte _081BC574 @ case 11 - .4byte _081BC574 @ case 12 - .4byte _081BCB4A @ case 13 - .4byte _081BCB4A @ case 14 - .4byte _081BCB4A @ case 15 - .4byte _081BCB4A @ case 16 - .4byte _081BC5A4 @ case 17 - .4byte _081BC5C4 @ case 18 - .4byte _081BC5E4 @ case 19 - .4byte _081BC604 @ case 20 - .4byte _081BC624 @ case 21 - .4byte _081BC644 @ case 22 - .4byte _081BC664 @ case 23 - .4byte _081BC684 @ case 24 - .4byte _081BC6A4 @ case 25 - .4byte _081BC6C4 @ case 26 - .4byte _081BC6E4 @ case 27 - .4byte _081BC704 @ case 28 - .4byte _081BC724 @ case 29 - .4byte _081BC744 @ case 30 - .4byte _081BC764 @ case 31 - .4byte _081BC7D4 @ case 32 - .4byte _081BC7F4 @ case 33 - .4byte _081BC814 @ case 34 - .4byte _081BC834 @ case 35 - .4byte _081BC854 @ case 36 - .4byte _081BC874 @ case 37 - .4byte _081BC894 @ case 38 - .4byte _081BC8B4 @ case 39 - .4byte _081BC8D4 @ case 40 - .4byte _081BC8F4 @ case 41 - .4byte _081BC914 @ case 42 - .4byte _081BC934 @ case 43 - .4byte _081BC954 @ case 44 - .4byte _081BC974 @ case 45 - .4byte _081BC994 @ case 46 - .4byte _081BC9B4 @ case 47 - .4byte _081BC9D4 @ case 48 - .4byte _081BC9F4 @ case 49 - .4byte _081BCA14 @ case 50 - .4byte _081BCA34 @ case 51 - .4byte _081BCA54 @ case 52 - .4byte _081BCA74 @ case 53 - .4byte _081BCA94 @ case 54 - .4byte _081BCAB4 @ case 55 - .4byte _081BCAD4 @ case 56 - .4byte _081BCAF4 @ case 57 - .4byte _081BCB14 @ case 58 - .4byte _081BCB34 @ case 59 -_081BC2B8: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _081BC44C - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0xb - adds r2, r6, #0 - bl SetMonData - adds r2, r6, #0 - adds r2, #0x2e - adds r0, r4, #0 - movs r1, #0xc - bl SetMonData - movs r0, #0 - mov r8, r0 - movs r0, #0x3b - adds r0, r0, r6 - mov sl, r0 - adds r0, r6, #0 - adds r0, #0x2b - str r0, [sp, #0x20] - adds r0, #0x19 - str r0, [sp, #0x28] - adds r0, #4 - str r0, [sp, #0x2c] - adds r0, #4 - str r0, [sp, #0x30] - subs r0, #0x22 - str r0, [sp, #0x1c] - subs r0, #2 - str r0, [sp, #0x18] - adds r0, #4 - str r0, [sp, #0x24] - adds r0, r6, #2 - str r0, [sp, #4] - adds r0, r6, #4 - str r0, [sp, #8] - adds r0, r6, #6 - str r0, [sp, #0xc] - adds r0, #2 - str r0, [sp, #0x10] - adds r0, #2 - str r0, [sp, #0x14] - mov sb, r4 - adds r7, r6, #0 - adds r7, #0x24 - adds r4, r6, #0 - adds r4, #0xc -_081BC31E: - mov r1, r8 - adds r1, #0xd - mov r0, sb - adds r2, r4, #0 - bl SetMonData - mov r1, r8 - adds r1, #0x11 - mov r0, sb - adds r2, r7, #0 - bl SetMonData - adds r7, #1 - adds r4, #2 - movs r0, #1 - add r8, r0 - mov r0, r8 - cmp r0, #3 - ble _081BC31E - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _081BC44C - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x15 - mov r2, sl - bl SetMonData - adds r0, r4, #0 - movs r1, #0x20 - ldr r2, [sp, #0x20] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x19 - ldr r2, [sp, #0x28] - bl SetMonData - ldrb r0, [r6, #0x14] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1b - mov r1, sp - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x27 - mov r2, sp - bl SetMonData - mov r1, sp - ldrh r0, [r6, #0x14] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x28 - mov r2, sp - bl SetMonData - mov r1, sp - ldrb r0, [r6, #0x15] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x29 - mov r2, sp - bl SetMonData - mov r1, sp - ldr r0, [r6, #0x14] - lsls r0, r0, #0xc - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x2a - mov r2, sp - bl SetMonData - mov r1, sp - ldrh r0, [r6, #0x16] - lsls r0, r0, #0x17 - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x2b - mov r2, sp - bl SetMonData - mov r1, sp - ldrb r0, [r6, #0x17] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x2c - mov r2, sp - bl SetMonData - adds r0, r4, #0 - movs r1, #0 - ldr r2, [sp, #0x2c] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x37 - ldr r2, [sp, #0x30] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x38 - ldr r2, [sp, #0x1c] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x39 - ldr r2, [sp, #0x18] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3a - ldr r2, [sp, #0x24] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3b - ldr r2, [sp, #4] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3c - ldr r2, [sp, #8] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3d - ldr r2, [sp, #0xc] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3e - ldr r2, [sp, #0x10] - bl SetMonData - adds r0, r4, #0 - movs r1, #0x3f - ldr r2, [sp, #0x14] - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC44C: .4byte gUnknown_2024190 -_081BC450: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC468 - adds r0, r0, r1 - ldr r1, _081BC46C - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0xb - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC468: .4byte gUnknown_2024190 -_081BC46C: .4byte gUnknown_2023D08 -_081BC470: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC488 - adds r0, r0, r1 - ldr r1, _081BC48C - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0xc - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC488: .4byte gUnknown_2024190 -_081BC48C: .4byte gUnknown_2023D08 -_081BC490: - movs r0, #0 - mov r8, r0 - movs r0, #0xc - adds r0, r0, r3 - mov sb, r0 - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _081BC4E4 - adds r7, r1, r0 - adds r6, r3, #0 - adds r6, #8 - adds r4, r3, #0 -_081BC4AA: - mov r1, r8 - adds r1, #0xd - adds r0, r7, #0 - adds r2, r4, #0 - bl SetMonData - mov r1, r8 - adds r1, #0x11 - adds r0, r7, #0 - adds r2, r6, #0 - bl SetMonData - adds r6, #1 - adds r4, #2 - movs r0, #1 - add r8, r0 - mov r0, r8 - cmp r0, #3 - ble _081BC4AA - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC4E4 - adds r0, r0, r1 - movs r1, #0x15 - mov r2, sb - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC4E4: .4byte gUnknown_2024190 -_081BC4E8: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC504 - adds r0, r0, r1 - ldr r3, _081BC508 - ldr r1, _081BC50C - ldrb r2, [r1] - lsls r2, r2, #9 - adds r1, r3, #1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, #9 - b _081BC58C - .align 2, 0 -_081BC504: .4byte gUnknown_2024190 -_081BC508: .4byte gUnknown_2022D08 -_081BC50C: .4byte gUnknown_2023D08 -_081BC510: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _081BC56C - adds r4, r4, r0 - ldr r5, _081BC570 - ldrb r2, [r5] - lsls r2, r2, #9 - adds r2, r2, r7 - adds r0, r4, #0 - movs r1, #0x11 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #1 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x12 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #2 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x13 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #3 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x14 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #4 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x15 - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC56C: .4byte gUnknown_2024190 -_081BC570: .4byte gUnknown_2023D08 -_081BC574: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC598 - adds r0, r0, r1 - ldr r3, _081BC59C - ldr r1, _081BC5A0 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r1, r3, #1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, #8 -_081BC58C: - adds r3, #3 - adds r2, r2, r3 - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC598: .4byte gUnknown_2024190 -_081BC59C: .4byte gUnknown_2022D08 -_081BC5A0: .4byte gUnknown_2023D08 -_081BC5A4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC5BC - adds r0, r0, r1 - ldr r1, _081BC5C0 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #1 - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC5BC: .4byte gUnknown_2024190 -_081BC5C0: .4byte gUnknown_2023D08 -_081BC5C4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC5DC - adds r0, r0, r1 - ldr r1, _081BC5E0 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x19 - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC5DC: .4byte gUnknown_2024190 -_081BC5E0: .4byte gUnknown_2023D08 -_081BC5E4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC5FC - adds r0, r0, r1 - ldr r1, _081BC600 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x1a - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC5FC: .4byte gUnknown_2024190 -_081BC600: .4byte gUnknown_2023D08 -_081BC604: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC61C - adds r0, r0, r1 - ldr r1, _081BC620 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x1b - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC61C: .4byte gUnknown_2024190 -_081BC620: .4byte gUnknown_2023D08 -_081BC624: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC63C - adds r0, r0, r1 - ldr r1, _081BC640 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x1c - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC63C: .4byte gUnknown_2024190 -_081BC640: .4byte gUnknown_2023D08 -_081BC644: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC65C - adds r0, r0, r1 - ldr r1, _081BC660 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x1d - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC65C: .4byte gUnknown_2024190 -_081BC660: .4byte gUnknown_2023D08 -_081BC664: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC67C - adds r0, r0, r1 - ldr r1, _081BC680 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x1e - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC67C: .4byte gUnknown_2024190 -_081BC680: .4byte gUnknown_2023D08 -_081BC684: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC69C - adds r0, r0, r1 - ldr r1, _081BC6A0 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x1f - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC69C: .4byte gUnknown_2024190 -_081BC6A0: .4byte gUnknown_2023D08 -_081BC6A4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC6BC - adds r0, r0, r1 - ldr r1, _081BC6C0 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x20 - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC6BC: .4byte gUnknown_2024190 -_081BC6C0: .4byte gUnknown_2023D08 -_081BC6C4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC6DC - adds r0, r0, r1 - ldr r1, _081BC6E0 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x22 - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC6DC: .4byte gUnknown_2024190 -_081BC6E0: .4byte gUnknown_2023D08 -_081BC6E4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC6FC - adds r0, r0, r1 - ldr r1, _081BC700 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x23 - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC6FC: .4byte gUnknown_2024190 -_081BC700: .4byte gUnknown_2023D08 -_081BC704: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC71C - adds r0, r0, r1 - ldr r1, _081BC720 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x24 - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC71C: .4byte gUnknown_2024190 -_081BC720: .4byte gUnknown_2023D08 -_081BC724: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC73C - adds r0, r0, r1 - ldr r1, _081BC740 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x25 - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC73C: .4byte gUnknown_2024190 -_081BC740: .4byte gUnknown_2023D08 -_081BC744: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC75C - adds r0, r0, r1 - ldr r1, _081BC760 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x26 - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC75C: .4byte gUnknown_2024190 -_081BC760: .4byte gUnknown_2023D08 -_081BC764: - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _081BC7CC - adds r4, r4, r0 - ldr r5, _081BC7D0 - ldrb r2, [r5] - lsls r2, r2, #9 - adds r2, r2, r7 - adds r0, r4, #0 - movs r1, #0x27 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #1 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x28 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #2 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x29 - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #3 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x2a - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #4 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0x2b - bl SetMonData - ldrb r2, [r5] - lsls r2, r2, #9 - adds r0, r7, #5 - adds r2, r2, r0 - adds r0, r4, #0 - b _081BC884 - .align 2, 0 -_081BC7CC: .4byte gUnknown_2024190 -_081BC7D0: .4byte gUnknown_2023D08 -_081BC7D4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC7EC - adds r0, r0, r1 - ldr r1, _081BC7F0 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x27 - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC7EC: .4byte gUnknown_2024190 -_081BC7F0: .4byte gUnknown_2023D08 -_081BC7F4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC80C - adds r0, r0, r1 - ldr r1, _081BC810 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x28 - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC80C: .4byte gUnknown_2024190 -_081BC810: .4byte gUnknown_2023D08 -_081BC814: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC82C - adds r0, r0, r1 - ldr r1, _081BC830 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x29 - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC82C: .4byte gUnknown_2024190 -_081BC830: .4byte gUnknown_2023D08 -_081BC834: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC84C - adds r0, r0, r1 - ldr r1, _081BC850 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x2a - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC84C: .4byte gUnknown_2024190 -_081BC850: .4byte gUnknown_2023D08 -_081BC854: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC86C - adds r0, r0, r1 - ldr r1, _081BC870 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x2b - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC86C: .4byte gUnknown_2024190 -_081BC870: .4byte gUnknown_2023D08 -_081BC874: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC88C - adds r0, r0, r1 - ldr r1, _081BC890 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 -_081BC884: - movs r1, #0x2c - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC88C: .4byte gUnknown_2024190 -_081BC890: .4byte gUnknown_2023D08 -_081BC894: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC8AC - adds r0, r0, r1 - ldr r1, _081BC8B0 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0 - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC8AC: .4byte gUnknown_2024190 -_081BC8B0: .4byte gUnknown_2023D08 -_081BC8B4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC8CC - adds r0, r0, r1 - ldr r1, _081BC8D0 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #9 - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC8CC: .4byte gUnknown_2024190 -_081BC8D0: .4byte gUnknown_2023D08 -_081BC8D4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC8EC - adds r0, r0, r1 - ldr r1, _081BC8F0 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x37 - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC8EC: .4byte gUnknown_2024190 -_081BC8F0: .4byte gUnknown_2023D08 -_081BC8F4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC90C - adds r0, r0, r1 - ldr r1, _081BC910 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x38 - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC90C: .4byte gUnknown_2024190 -_081BC910: .4byte gUnknown_2023D08 -_081BC914: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC92C - adds r0, r0, r1 - ldr r1, _081BC930 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x39 - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC92C: .4byte gUnknown_2024190 -_081BC930: .4byte gUnknown_2023D08 -_081BC934: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC94C - adds r0, r0, r1 - ldr r1, _081BC950 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x3a - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC94C: .4byte gUnknown_2024190 -_081BC950: .4byte gUnknown_2023D08 -_081BC954: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC96C - adds r0, r0, r1 - ldr r1, _081BC970 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x3b - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC96C: .4byte gUnknown_2024190 -_081BC970: .4byte gUnknown_2023D08 -_081BC974: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC98C - adds r0, r0, r1 - ldr r1, _081BC990 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x3c - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC98C: .4byte gUnknown_2024190 -_081BC990: .4byte gUnknown_2023D08 -_081BC994: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC9AC - adds r0, r0, r1 - ldr r1, _081BC9B0 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x3d - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC9AC: .4byte gUnknown_2024190 -_081BC9B0: .4byte gUnknown_2023D08 -_081BC9B4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC9CC - adds r0, r0, r1 - ldr r1, _081BC9D0 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x3e - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC9CC: .4byte gUnknown_2024190 -_081BC9D0: .4byte gUnknown_2023D08 -_081BC9D4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BC9EC - adds r0, r0, r1 - ldr r1, _081BC9F0 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x3f - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BC9EC: .4byte gUnknown_2024190 -_081BC9F0: .4byte gUnknown_2023D08 -_081BC9F4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BCA0C - adds r0, r0, r1 - ldr r1, _081BCA10 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x16 - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BCA0C: .4byte gUnknown_2024190 -_081BCA10: .4byte gUnknown_2023D08 -_081BCA14: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BCA2C - adds r0, r0, r1 - ldr r1, _081BCA30 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x17 - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BCA2C: .4byte gUnknown_2024190 -_081BCA30: .4byte gUnknown_2023D08 -_081BCA34: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BCA4C - adds r0, r0, r1 - ldr r1, _081BCA50 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x18 - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BCA4C: .4byte gUnknown_2024190 -_081BCA50: .4byte gUnknown_2023D08 -_081BCA54: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BCA6C - adds r0, r0, r1 - ldr r1, _081BCA70 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x21 - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BCA6C: .4byte gUnknown_2024190 -_081BCA70: .4byte gUnknown_2023D08 -_081BCA74: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BCA8C - adds r0, r0, r1 - ldr r1, _081BCA90 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x2f - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BCA8C: .4byte gUnknown_2024190 -_081BCA90: .4byte gUnknown_2023D08 -_081BCA94: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BCAAC - adds r0, r0, r1 - ldr r1, _081BCAB0 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x30 - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BCAAC: .4byte gUnknown_2024190 -_081BCAB0: .4byte gUnknown_2023D08 -_081BCAB4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BCACC - adds r0, r0, r1 - ldr r1, _081BCAD0 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x32 - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BCACC: .4byte gUnknown_2024190 -_081BCAD0: .4byte gUnknown_2023D08 -_081BCAD4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BCAEC - adds r0, r0, r1 - ldr r1, _081BCAF0 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x33 - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BCAEC: .4byte gUnknown_2024190 -_081BCAF0: .4byte gUnknown_2023D08 -_081BCAF4: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BCB0C - adds r0, r0, r1 - ldr r1, _081BCB10 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x34 - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BCB0C: .4byte gUnknown_2024190 -_081BCB10: .4byte gUnknown_2023D08 -_081BCB14: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BCB2C - adds r0, r0, r1 - ldr r1, _081BCB30 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x35 - bl SetMonData - b _081BCB4A - .align 2, 0 -_081BCB2C: .4byte gUnknown_2024190 -_081BCB30: .4byte gUnknown_2023D08 -_081BCB34: - movs r0, #0x64 - muls r0, r5, r0 - ldr r1, _081BCB74 - adds r0, r0, r1 - ldr r1, _081BCB78 - ldrb r2, [r1] - lsls r2, r2, #9 - adds r2, r2, r7 - movs r1, #0x36 - bl SetMonData -_081BCB4A: - ldr r2, _081BCB7C - ldr r0, _081BCB78 - ldrb r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r2, [r0] - movs r0, #0x64 - muls r0, r2, r0 - ldr r2, _081BCB74 - adds r0, r0, r2 - bl HandleLowHpMusicChange - add sp, #0x34 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081BCB74: .4byte gUnknown_2024190 -_081BCB78: .4byte gUnknown_2023D08 -_081BCB7C: .4byte gUnknown_2023D12 - thumb_func_end SetPlayerPartnerMonData - - thumb_func_start sub_081BCB80 -sub_081BCB80: @ 0x081BCB80 - push {r4, r5, r6, r7, lr} - ldr r1, _081BCBE4 - ldr r7, _081BCBE8 - ldrb r2, [r7] - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - adds r3, r1, #0 - muls r3, r0, r3 - ldr r4, _081BCBEC - lsls r2, r2, #9 - adds r0, r4, #1 - adds r0, r2, r0 - ldrb r0, [r0] - ldr r1, _081BCBF0 - adds r0, r0, r1 - adds r5, r3, r0 - movs r3, #0 - adds r0, r4, #2 - adds r2, r2, r0 - ldrb r2, [r2] - cmp r3, r2 - bhs _081BCBD8 - adds r6, r4, #0 - adds r2, r7, #0 - adds r4, r0, #0 -_081BCBB6: - adds r1, r5, r3 - ldrb r0, [r2] - lsls r0, r0, #9 - adds r0, #3 - adds r0, r3, r0 - adds r0, r0, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldrb r0, [r2] - lsls r0, r0, #9 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r3, r0 - blo _081BCBB6 -_081BCBD8: - bl PlayerPartnerBufferExecCompleted - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081BCBE4: .4byte gUnknown_2023D12 -_081BCBE8: .4byte gUnknown_2023D08 -_081BCBEC: .4byte gUnknown_2022D08 -_081BCBF0: .4byte gUnknown_2024190 - thumb_func_end sub_081BCB80 - - thumb_func_start PlayerPartnerHandleLoadMonSprite -PlayerPartnerHandleLoadMonSprite: @ 0x081BCBF4 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - ldr r0, _081BCCE8 - mov r8, r0 - ldr r6, _081BCCEC - ldrb r1, [r6] - lsls r0, r1, #1 - add r0, r8 - ldrh r0, [r0] - movs r5, #0x64 - muls r0, r5, r0 - ldr r4, _081BCCF0 - adds r0, r0, r4 - bl BattleLoadPlayerMonSpriteGfx - ldrb r0, [r6] - lsls r0, r0, #1 - add r0, r8 - ldrh r0, [r0] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #0xb - bl GetMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldrb r0, [r6] - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl SetMultiuseSpriteTemplateToPokemon - ldr r0, _081BCCF4 - mov r8, r0 - ldrb r0, [r6] - movs r1, #2 - bl GetBattlerSpriteCoord - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldrb r0, [r6] - bl GetBattlerSpriteDefault_Y - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldrb r0, [r6] - bl GetBattlerSpriteSubpriority - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r0, r8 - adds r1, r5, #0 - adds r2, r4, #0 - bl CreateSprite - ldr r4, _081BCCF8 - ldrb r1, [r6] - adds r1, r1, r4 - strb r0, [r1] - ldr r5, _081BCCFC - ldrb r0, [r6] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _081BCD00 - strh r1, [r0, #0x24] - ldrb r2, [r6] - adds r0, r2, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r2, [r0, #0x2e] - ldrb r3, [r6] - adds r0, r3, r4 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - lsls r3, r3, #4 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #5] - ldrb r2, [r6] - adds r4, r2, r4 - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _081BCD04 - adds r2, r2, r1 - ldrb r1, [r2] - bl StartSpriteAnim - ldr r1, _081BCD08 - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081BCD0C - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081BCCE8: .4byte gUnknown_2023D12 -_081BCCEC: .4byte gUnknown_2023D08 -_081BCCF0: .4byte gUnknown_2024190 -_081BCCF4: .4byte gUnknown_2024640 -_081BCCF8: .4byte gUnknown_2023E88 -_081BCCFC: .4byte gUnknown_20205AC -_081BCD00: .4byte 0x0000FF10 -_081BCD04: .4byte gUnknown_2024188 -_081BCD08: .4byte gUnknown_3005AC0 -_081BCD0C: .4byte sub_081BAE70 - thumb_func_end PlayerPartnerHandleLoadMonSprite - - thumb_func_start PlayerPartnerHandleSwitchInAnim -PlayerPartnerHandleSwitchInAnim: @ 0x081BCD10 - push {r4, r5, r6, lr} - ldr r5, _081BCD68 - ldrb r0, [r5] - ldr r4, _081BCD6C - lsls r1, r0, #9 - adds r6, r4, #2 - adds r1, r1, r6 - ldrb r1, [r1] - bl ClearTemporarySpeciesSpriteData - ldr r2, _081BCD70 - ldrb r0, [r5] - lsls r1, r0, #1 - adds r1, r1, r2 - lsls r0, r0, #9 - adds r4, #1 - adds r0, r0, r4 - ldrb r0, [r0] - strh r0, [r1] - ldrb r1, [r5] - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r2, [r0] - movs r0, #0x64 - muls r0, r2, r0 - ldr r2, _081BCD74 - adds r0, r0, r2 - bl BattleLoadPlayerMonSpriteGfx - ldrb r0, [r5] - lsls r1, r0, #9 - adds r1, r1, r6 - ldrb r1, [r1] - bl sub_081BCD80 - ldr r1, _081BCD78 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081BCD7C - str r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081BCD68: .4byte gUnknown_2023D08 -_081BCD6C: .4byte gUnknown_2022D08 -_081BCD70: .4byte gUnknown_2023D12 -_081BCD74: .4byte gUnknown_2024190 -_081BCD78: .4byte gUnknown_3005AC0 -_081BCD7C: .4byte sub_081BB784 - thumb_func_end PlayerPartnerHandleSwitchInAnim - - thumb_func_start sub_081BCD80 -sub_081BCD80: @ 0x081BCD80 - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r6, #0 - bl ClearTemporarySpeciesSpriteData - ldr r0, _081BCED4 - lsls r2, r6, #1 - adds r2, r2, r0 - ldr r0, _081BCED8 - lsls r1, r6, #9 - adds r0, #1 - adds r1, r1, r0 - ldrb r0, [r1] - strh r0, [r2] - ldrh r1, [r2] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081BCEDC - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - mov r8, r0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - ldr r0, _081BCEE0 - bl CreateInvisibleSpriteWithCallback - ldr r1, _081BCEE4 - mov sb, r1 - add sb, r6 - mov r1, sb - strb r0, [r1] - adds r0, r6, #0 - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r0, r8 - bl SetMultiuseSpriteTemplateToPokemon - ldr r0, _081BCEE8 - mov sl, r0 - adds r0, r6, #0 - movs r1, #2 - bl GetBattlerSpriteCoord - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - adds r0, r6, #0 - bl GetBattlerSpriteDefault_Y - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r6, #0 - bl GetBattlerSpriteSubpriority - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r0, sl - adds r1, r5, #0 - adds r2, r4, #0 - bl CreateSprite - ldr r4, _081BCEEC - adds r4, r6, r4 - strb r0, [r4] - ldr r5, _081BCEF0 - mov r0, sb - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r1, [r4] - strh r1, [r0, #0x30] - mov r0, sb - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r6, [r0, #0x32] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r6, [r0, #0x2e] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - mov r1, r8 - strh r1, [r0, #0x32] - ldrb r0, [r4] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - lsls r3, r6, #4 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #5] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _081BCEF4 - adds r6, r6, r1 - ldrb r1, [r6] - bl StartSpriteAnim - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r5, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _081BCEF8 - str r1, [r0] - movs r0, #0 - movs r1, #0xff - bl DoPokeballSendOutAnimation - mov r1, sb - ldrb r2, [r1] - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r1, #0x2e] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081BCED4: .4byte gUnknown_2023D12 -_081BCED8: .4byte gUnknown_2022D08 -_081BCEDC: .4byte gUnknown_2024190 -_081BCEE0: .4byte sub_0805D330 -_081BCEE4: .4byte gUnknown_3005ADC -_081BCEE8: .4byte gUnknown_2024640 -_081BCEEC: .4byte gUnknown_2023E88 -_081BCEF0: .4byte gUnknown_20205AC -_081BCEF4: .4byte gUnknown_2024188 -_081BCEF8: .4byte sub_08007140 - thumb_func_end sub_081BCD80 - - thumb_func_start sub_081BCEFC -sub_081BCEFC: @ 0x081BCEFC - push {r4, r5, r6, lr} - ldr r1, _081BCF30 - ldr r6, _081BCF34 - ldrb r2, [r6] - lsls r0, r2, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r3, [r0] - cmp r3, #0 - bne _081BCF44 - ldr r0, _081BCF38 - ldr r0, [r0] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - strb r3, [r0, #4] - ldr r1, _081BCF3C - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081BCF40 - str r1, [r0] - b _081BCF7A - .align 2, 0 -_081BCF30: .4byte gUnknown_2022D08 -_081BCF34: .4byte gUnknown_2023D08 -_081BCF38: .4byte gUnknown_2024174 -_081BCF3C: .4byte gUnknown_3005AC0 -_081BCF40: .4byte sub_081BCF8C -_081BCF44: - ldr r5, _081BCF80 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _081BCF84 - adds r0, r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r6] - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - ldr r1, _081BCF88 - ldrb r0, [r6] - adds r0, r0, r1 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible - bl PlayerPartnerBufferExecCompleted -_081BCF7A: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081BCF80: .4byte gUnknown_2023E88 -_081BCF84: .4byte gUnknown_20205AC -_081BCF88: .4byte gUnknown_3005AD0 - thumb_func_end sub_081BCEFC - - thumb_func_start sub_081BCF8C -sub_081BCF8C: @ 0x081BCF8C - push {r4, r5, r6, lr} - ldr r6, _081BCFAC - ldr r4, [r6] - ldr r5, _081BCFB0 - ldrb r2, [r5] - ldr r1, [r4, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r3, r0, r1 - ldrb r0, [r3, #4] - cmp r0, #0 - beq _081BCFB4 - cmp r0, #1 - beq _081BCFE2 - b _081BD00A - .align 2, 0 -_081BCFAC: .4byte gUnknown_2024174 -_081BCFB0: .4byte gUnknown_2023D08 -_081BCFB4: - ldr r1, [r4] - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _081BCFCE - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #5 - bl InitAndLaunchSpecialAnimation -_081BCFCE: - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #1 - strb r1, [r0, #4] - b _081BD00A -_081BCFE2: - ldrb r1, [r3] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _081BD00A - strb r0, [r3, #4] - ldrb r2, [r5] - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #1 - bl InitAndLaunchSpecialAnimation - ldr r1, _081BD010 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081BD014 - str r1, [r0] -_081BD00A: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081BD010: .4byte gUnknown_3005AC0 -_081BD014: .4byte sub_081BB4C4 - thumb_func_end sub_081BCF8C - - thumb_func_start PlayerPartnerHandleDrawTrainerPic -PlayerPartnerHandleDrawTrainerPic: @ 0x081BD018 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r2, _081BD038 - ldrh r1, [r2] - ldr r0, _081BD03C - cmp r1, r0 - bne _081BD044 - movs r4, #7 - movs r0, #0x5a - mov sb, r0 - ldr r0, _081BD040 - ldrb r1, [r0, #0x1c] - b _081BD05A - .align 2, 0 -_081BD038: .4byte gUnknown_203886E -_081BD03C: .4byte 0x00000C03 -_081BD040: .4byte gUnknown_82D95BC -_081BD044: - ldrh r0, [r2] - bl GetFrontierTrainerFrontSpriteId - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #0x20 - mov sb, r0 - ldr r1, _081BD10C - lsls r0, r4, #2 - adds r0, r0, r1 - ldrb r1, [r0] -_081BD05A: - movs r0, #8 - subs r0, r0, r1 - lsls r0, r0, #0x12 - movs r1, #0xa0 - lsls r1, r1, #0xf - adds r0, r0, r1 - lsrs r7, r0, #0x10 - ldr r0, _081BD110 - ldrh r1, [r0] - ldr r0, _081BD114 - cmp r1, r0 - bne _081BD130 - ldr r5, _081BD118 - ldrb r1, [r5] - adds r0, r4, #0 - bl DecompressTrainerBackPic - ldrb r0, [r5] - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl SetMultiuseSpriteTemplateToTrainerBack - ldr r6, _081BD11C - mov r8, sb - lsls r4, r7, #0x10 - asrs r4, r4, #0x10 - ldrb r0, [r5] - bl GetBattlerSpriteSubpriority - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - adds r0, r6, #0 - mov r1, r8 - adds r2, r4, #0 - bl CreateSprite - ldr r6, _081BD120 - ldrb r1, [r5] - adds r1, r1, r6 - strb r0, [r1] - ldr r4, _081BD124 - ldrb r3, [r5] - adds r0, r3, r6 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - lsls r3, r3, #4 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r3 - strb r0, [r1, #5] - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0xf0 - strh r1, [r0, #0x24] - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _081BD128 - strh r1, [r0, #0x2e] - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, #0x1c - adds r0, r0, r4 - ldr r1, _081BD12C - str r1, [r0] - b _081BD218 - .align 2, 0 -_081BD10C: .4byte gUnknown_82D8D70 -_081BD110: .4byte gUnknown_203886E -_081BD114: .4byte 0x00000C03 -_081BD118: .4byte gUnknown_2023D08 -_081BD11C: .4byte gUnknown_2024640 -_081BD120: .4byte gUnknown_2023E88 -_081BD124: .4byte gUnknown_20205AC -_081BD128: .4byte 0x0000FFFE -_081BD12C: .4byte sub_0805D3C8 -_081BD130: - adds r5, r4, #0 - ldr r6, _081BD234 - ldrb r1, [r6] - adds r0, r5, #0 - bl DecompressTrainerFrontPic - ldrb r0, [r6] - bl sub_080A630C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r5, #0 - bl SetMultiuseSpriteTemplateToTrainerFront - ldr r0, _081BD238 - mov r8, r0 - lsls r4, r7, #0x10 - asrs r4, r4, #0x10 - ldrb r0, [r6] - bl GetBattlerSpriteSubpriority - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r0, r8 - mov r1, sb - adds r2, r4, #0 - bl CreateSprite - ldr r4, _081BD23C - ldrb r1, [r6] - adds r1, r1, r4 - strb r0, [r1] - ldr r0, _081BD240 - lsls r5, r5, #3 - adds r5, r5, r0 - ldrh r0, [r5, #4] - bl IndexOfSpritePaletteTag - ldr r5, _081BD244 - ldrb r1, [r6] - adds r1, r1, r4 - ldrb r1, [r1] - lsls r2, r1, #4 - adds r2, r2, r1 - lsls r2, r2, #2 - adds r2, r2, r5 - lsls r0, r0, #4 - ldrb r3, [r2, #5] - movs r1, #0xf - ands r1, r3 - orrs r1, r0 - strb r1, [r2, #5] - ldrb r0, [r6] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0xf0 - strh r1, [r0, #0x24] - ldrb r0, [r6] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0x30 - strh r1, [r0, #0x26] - ldrb r0, [r6] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _081BD248 - strh r1, [r0, #0x2e] - ldrb r0, [r6] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r5, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _081BD24C - str r1, [r0] - ldrb r0, [r6] - adds r0, r0, r4 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrb r2, [r1, #1] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1, #1] - ldrb r0, [r6] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3f - ldrb r1, [r0] - movs r2, #1 - orrs r1, r2 - strb r1, [r0] -_081BD218: - ldr r1, _081BD250 - ldr r0, _081BD234 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081BD254 - str r1, [r0] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081BD234: .4byte gUnknown_2023D08 -_081BD238: .4byte gUnknown_2024640 -_081BD23C: .4byte gUnknown_2023E88 -_081BD240: .4byte gUnknown_82D91CC -_081BD244: .4byte gUnknown_20205AC -_081BD248: .4byte 0x0000FFFE -_081BD24C: .4byte sub_0805D3C8 -_081BD250: .4byte gUnknown_3005AC0 -_081BD254: .4byte CompleteOnBattlerSpriteCallbackDummy - thumb_func_end PlayerPartnerHandleDrawTrainerPic - - thumb_func_start PlayerPartnerHandleTrainerSlide -PlayerPartnerHandleTrainerSlide: @ 0x081BD258 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PlayerPartnerHandleTrainerSlide - - thumb_func_start sub_081BD264 -sub_081BD264: @ 0x081BD264 - push {r4, r5, r6, lr} - ldr r6, _081BD2F0 - ldr r4, _081BD2F4 - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r5, _081BD2F8 - adds r0, r0, r5 - bl SetSpritePrimaryCoordsFromSecondaryCoords - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0x23 - strh r1, [r0, #0x2e] - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _081BD2FC - strh r1, [r0, #0x32] - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrh r1, [r0, #0x22] - strh r1, [r0, #0x36] - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r5, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _081BD300 - str r1, [r0] - ldrb r0, [r4] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, _081BD304 - bl StoreSpriteCallbackInData6 - ldr r1, _081BD308 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081BD30C - str r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081BD2F0: .4byte gUnknown_2023E88 -_081BD2F4: .4byte gUnknown_2023D08 -_081BD2F8: .4byte gUnknown_20205AC -_081BD2FC: .4byte 0x0000FFD8 -_081BD300: .4byte sub_080A67B4 -_081BD304: .4byte sub_08007140 -_081BD308: .4byte gUnknown_3005AC0 -_081BD30C: .4byte sub_081BAB34 - thumb_func_end sub_081BD264 - - thumb_func_start PlayerPartnerHandleFaintAnimation -PlayerPartnerHandleFaintAnimation: @ 0x081BD310 - push {r4, r5, r6, lr} - ldr r6, _081BD35C - ldr r4, [r6] - ldr r5, _081BD360 - ldrb r2, [r5] - ldr r0, [r4, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r3, r1, r0 - ldrb r0, [r3, #4] - cmp r0, #0 - bne _081BD364 - ldr r1, [r4] - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _081BD344 - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #5 - bl InitAndLaunchSpecialAnimation -_081BD344: - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #4] - adds r1, #1 - strb r1, [r0, #4] - b _081BD3DA - .align 2, 0 -_081BD35C: .4byte gUnknown_2024174 -_081BD360: .4byte gUnknown_2023D08 -_081BD364: - ldrb r1, [r3] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _081BD3DA - strb r4, [r3, #4] - ldr r2, _081BD3E0 - ldrb r1, [r5] - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r2, [r0] - movs r0, #0x64 - muls r0, r2, r0 - ldr r2, _081BD3E4 - adds r0, r0, r2 - bl HandleLowHpMusicChange - movs r1, #0x40 - rsbs r1, r1, #0 - movs r0, #0x10 - bl PlaySE12WithPanning - ldr r2, _081BD3E8 - ldr r3, _081BD3EC - ldrb r0, [r5] - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r4, [r0, #0x30] - ldrb r0, [r5] - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #5 - strh r1, [r0, #0x32] - ldrb r0, [r5] - adds r0, r0, r3 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, _081BD3F0 - str r1, [r0] - ldr r1, _081BD3F4 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081BD3F8 - str r1, [r0] -_081BD3DA: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081BD3E0: .4byte gUnknown_2023D12 -_081BD3E4: .4byte gUnknown_2024190 -_081BD3E8: .4byte gUnknown_20205AC -_081BD3EC: .4byte gUnknown_2023E88 -_081BD3F0: .4byte sub_08039844 -_081BD3F4: .4byte gUnknown_3005AC0 -_081BD3F8: .4byte sub_081BB428 - thumb_func_end PlayerPartnerHandleFaintAnimation - - thumb_func_start PlayerPartnerHandlePaletteFade -PlayerPartnerHandlePaletteFade: @ 0x081BD3FC - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PlayerPartnerHandlePaletteFade - - thumb_func_start PlayerPartnerHandleSuccessBallThrowAnim -PlayerPartnerHandleSuccessBallThrowAnim: @ 0x081BD408 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PlayerPartnerHandleSuccessBallThrowAnim - - thumb_func_start PlayerPartnerHandleBallThrowAnim -PlayerPartnerHandleBallThrowAnim: @ 0x081BD414 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PlayerPartnerHandleBallThrowAnim - - thumb_func_start PlayerPartnerHandlePause -PlayerPartnerHandlePause: @ 0x081BD420 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PlayerPartnerHandlePause - - thumb_func_start PlayerPartnerHandleMoveAnimation -PlayerPartnerHandleMoveAnimation: @ 0x081BD42C - push {r4, r5, r6, lr} - ldr r6, _081BD510 - ldrb r0, [r6] - bl mplay_80342A4 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081BD43E - b _081BD552 -_081BD43E: - ldr r0, _081BD514 - mov ip, r0 - ldrb r2, [r6] - lsls r2, r2, #9 - adds r0, #1 - adds r0, r2, r0 - ldrb r0, [r0] - mov r1, ip - adds r1, #2 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - ldr r5, _081BD518 - mov r1, ip - adds r1, #3 - adds r2, r2, r1 - ldrb r1, [r2] - strb r1, [r5] - ldr r4, _081BD51C - ldrb r2, [r6] - lsls r2, r2, #9 - mov r1, ip - adds r1, #4 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, ip - adds r1, #5 - adds r2, r2, r1 - ldrb r1, [r2] - lsls r1, r1, #8 - orrs r3, r1 - strh r3, [r4] - ldr r4, _081BD520 - ldrb r2, [r6] - lsls r2, r2, #9 - mov r1, ip - adds r1, #6 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, ip - adds r1, #7 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r3, r1 - mov r1, ip - adds r1, #8 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, r1, #0x10 - orrs r3, r1 - mov r1, ip - adds r1, #9 - adds r2, r2, r1 - ldrb r1, [r2] - lsls r1, r1, #0x18 - orrs r3, r1 - str r3, [r4] - ldr r3, _081BD524 - ldrb r1, [r6] - lsls r1, r1, #9 - mov r2, ip - adds r2, #0xa - adds r1, r1, r2 - ldrb r1, [r1] - strb r1, [r3] - ldr r4, _081BD528 - ldrb r2, [r6] - lsls r2, r2, #9 - mov r1, ip - adds r1, #0xc - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, ip - adds r1, #0xd - adds r2, r2, r1 - ldrb r1, [r2] - lsls r1, r1, #8 - orrs r3, r1 - strh r3, [r4] - ldr r3, _081BD52C - ldrb r2, [r6] - lsls r2, r2, #9 - mov r1, ip - adds r1, #0x10 - adds r2, r2, r1 - str r2, [r3] - ldr r3, _081BD530 - ldrb r1, [r6] - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r2, [r2] - str r2, [r1] - ldrb r1, [r5] - bl sub_0805D7A8 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - beq _081BD534 - bl PlayerPartnerBufferExecCompleted - b _081BD552 - .align 2, 0 -_081BD510: .4byte gUnknown_2023D08 -_081BD514: .4byte gUnknown_2022D08 -_081BD518: .4byte gUnknown_20380D2 -_081BD51C: .4byte gUnknown_20380A8 -_081BD520: .4byte gUnknown_20380A4 -_081BD524: .4byte gUnknown_20380BA -_081BD528: .4byte gUnknown_20380BC -_081BD52C: .4byte gUnknown_20380A0 -_081BD530: .4byte gUnknown_2024160 -_081BD534: - ldr r0, _081BD558 - ldr r0, [r0] - ldrb r1, [r6] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strb r3, [r0, #4] - ldr r1, _081BD55C - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081BD560 - str r1, [r0] -_081BD552: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081BD558: .4byte gUnknown_2024174 -_081BD55C: .4byte gUnknown_3005AC0 -_081BD560: .4byte PlayerPartnerDoMoveAnimation - thumb_func_end PlayerPartnerHandleMoveAnimation - - thumb_func_start PlayerPartnerDoMoveAnimation -PlayerPartnerDoMoveAnimation: @ 0x081BD564 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r2, _081BD5B0 - ldr r6, _081BD5B4 - ldrb r3, [r6] - lsls r1, r3, #9 - adds r0, r2, #1 - mov sl, r0 - adds r0, r1, r0 - ldrb r4, [r0] - adds r5, r2, #2 - mov sb, r5 - adds r0, r1, r5 - ldrb r0, [r0] - lsls r0, r0, #8 - orrs r4, r0 - adds r2, #0xb - adds r1, r1, r2 - ldrb r1, [r1] - mov r8, r1 - ldr r7, _081BD5B8 - ldr r5, [r7] - ldr r1, [r5, #4] - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r2, [r0, #4] - cmp r2, #1 - beq _081BD5FC - cmp r2, #1 - bgt _081BD5BC - cmp r2, #0 - beq _081BD5C6 - b _081BD6D8 - .align 2, 0 -_081BD5B0: .4byte gUnknown_2022D08 -_081BD5B4: .4byte gUnknown_2023D08 -_081BD5B8: .4byte gUnknown_2024174 -_081BD5BC: - cmp r2, #2 - beq _081BD626 - cmp r2, #3 - beq _081BD69C - b _081BD6D8 -_081BD5C6: - ldr r1, [r5] - lsls r0, r3, #2 - adds r1, r0, r1 - ldrb r2, [r1] - movs r0, #0xc - ands r0, r2 - cmp r0, #4 - bne _081BD5E8 - movs r0, #8 - orrs r0, r2 - strb r0, [r1] - ldrb r2, [r6] - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #5 - bl InitAndLaunchSpecialAnimation -_081BD5E8: - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #1 - strb r1, [r0, #4] - b _081BD6D8 -_081BD5FC: - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _081BD6D8 - movs r0, #0 - bl sub_0805E7B8 - adds r0, r4, #0 - bl DoMoveAnim - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #2 - strb r1, [r0, #4] - b _081BD6D8 -_081BD626: - ldr r0, _081BD68C - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _081BD690 - ldrb r0, [r0] - cmp r0, #0 - bne _081BD6D8 - movs r0, #1 - bl sub_0805E7B8 - ldr r0, [r7] - ldrb r2, [r6] - ldr r1, [r0] - lsls r0, r2, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _081BD674 - mov r0, r8 - cmp r0, #1 - bhi _081BD674 - adds r0, r2, #0 - adds r1, r2, #0 - movs r3, #6 - bl InitAndLaunchSpecialAnimation - ldr r0, [r7] - ldrb r1, [r6] - ldr r0, [r0] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] -_081BD674: - ldr r0, _081BD694 - ldr r2, [r0] - ldr r0, _081BD698 - ldrb r1, [r0] - ldr r2, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #3 - strb r1, [r0, #4] - b _081BD6D8 - .align 2, 0 -_081BD68C: .4byte gUnknown_2038098 -_081BD690: .4byte gUnknown_203809D -_081BD694: .4byte gUnknown_2024174 -_081BD698: .4byte gUnknown_2023D08 -_081BD69C: - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _081BD6D8 - bl CopyAllBattleSpritesInvisibilities - ldrb r0, [r6] - lsls r2, r0, #9 - mov r3, sl - adds r1, r2, r3 - ldrb r1, [r1] - add r2, sb - ldrb r2, [r2] - lsls r2, r2, #8 - orrs r1, r2 - bl TrySetBehindSubstituteSpriteBit - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strb r4, [r0, #4] - bl PlayerPartnerBufferExecCompleted -_081BD6D8: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PlayerPartnerDoMoveAnimation - - thumb_func_start PlayerPartnerHandlePrintString -PlayerPartnerHandlePrintString: @ 0x081BD6E8 - push {r4, lr} - ldr r0, _081BD720 - movs r1, #0 - strh r1, [r0] - ldr r0, _081BD724 - strh r1, [r0] - ldr r4, _081BD728 - ldrb r0, [r4] - lsls r0, r0, #9 - ldr r1, _081BD72C - adds r0, r0, r1 - ldrh r0, [r0] - bl PrintOnTrainerHillRecordsWindow - ldr r0, _081BD730 - movs r1, #0 - bl sub_0814FA04 - ldr r1, _081BD734 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081BD738 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081BD720: .4byte gUnknown_2022AC8 -_081BD724: .4byte gUnknown_2022ACA -_081BD728: .4byte gUnknown_2023D08 -_081BD72C: .4byte gUnknown_2022D0A -_081BD730: .4byte gUnknown_2022AE0 -_081BD734: .4byte gUnknown_3005AC0 -_081BD738: .4byte CompleteOnInactiveTextPrinter - thumb_func_end PlayerPartnerHandlePrintString - - thumb_func_start sub_081BD73C -sub_081BD73C: @ 0x081BD73C - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081BD73C - - thumb_func_start PlayerPartnerHandleChooseAction -PlayerPartnerHandleChooseAction: @ 0x081BD748 - push {lr} - bl AI_TrySwitchOrUseItem - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PlayerPartnerHandleChooseAction - - thumb_func_start PlayerPartnerHandleUnknownYesNoBox -PlayerPartnerHandleUnknownYesNoBox: @ 0x081BD758 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PlayerPartnerHandleUnknownYesNoBox - - thumb_func_start PlayerPartnerHandleChooseMove -PlayerPartnerHandleChooseMove: @ 0x081BD764 - push {r4, r5, r6, lr} - ldr r6, _081BD7F4 - ldrb r4, [r6] - lsls r4, r4, #9 - ldr r0, _081BD7F8 - adds r4, r4, r0 - movs r0, #0xf - bl BattleAI_SetupAIData - bl sub_08130BEC - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r2, _081BD7FC - lsls r0, r5, #1 - adds r4, r4, r0 - ldrh r1, [r4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #6] - movs r0, #0x12 - ands r0, r1 - cmp r0, #0 - beq _081BD79E - ldr r1, _081BD800 - ldrb r0, [r6] - strb r0, [r1] -_081BD79E: - ldrh r1, [r4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #6] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _081BD7D8 - movs r0, #1 - bl GetBattlerAtPosition - ldr r4, _081BD800 - strb r0, [r4] - ldr r0, _081BD804 - ldrb r1, [r0] - ldr r2, _081BD808 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _081BD7D8 - movs r0, #3 - bl GetBattlerAtPosition - strb r0, [r4] -_081BD7D8: - ldr r0, _081BD800 - ldrb r2, [r0] - lsls r2, r2, #8 - orrs r2, r5 - movs r0, #1 - movs r1, #0xa - bl BtlController_EmitTwoReturnValues - bl PlayerPartnerBufferExecCompleted - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081BD7F4: .4byte gUnknown_2023D08 -_081BD7F8: .4byte gUnknown_2022D0C -_081BD7FC: .4byte gUnknown_82ED220 -_081BD800: .4byte gUnknown_2023EB0 -_081BD804: .4byte gUnknown_2023EB4 -_081BD808: .4byte gUnknown_82FACB4 - thumb_func_end PlayerPartnerHandleChooseMove - - thumb_func_start sub_081BD80C -sub_081BD80C: @ 0x081BD80C - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081BD80C - - thumb_func_start PlayerPartnerHandleChoosePokemon -PlayerPartnerHandleChoosePokemon: @ 0x081BD818 - push {r4, r5, r6, lr} - bl GetMostSuitableMonToSwitchInto - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #6 - bne _081BD86C - movs r0, #0 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r0, #2 - bl GetBattlerAtPosition - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r4, #3 - b _081BD840 -_081BD83E: - adds r4, #1 -_081BD840: - cmp r4, #5 - bgt _081BD86C - movs r0, #0x64 - muls r0, r4, r0 - ldr r1, _081BD890 - adds r0, r0, r1 - movs r1, #0x39 - bl GetMonData - cmp r0, #0 - beq _081BD83E - ldr r1, _081BD894 - lsls r0, r6, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r4, r0 - beq _081BD83E - lsls r0, r5, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r4, r0 - beq _081BD83E -_081BD86C: - ldr r0, _081BD898 - ldrb r0, [r0] - ldr r1, _081BD89C - ldr r1, [r1] - adds r0, r0, r1 - adds r0, #0x5c - strb r4, [r0] - lsls r1, r4, #0x18 - lsrs r1, r1, #0x18 - movs r0, #1 - movs r2, #0 - bl BtlController_EmitChosenMonReturnValue - bl PlayerPartnerBufferExecCompleted - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081BD890: .4byte gUnknown_2024190 -_081BD894: .4byte gUnknown_2023D12 -_081BD898: .4byte gUnknown_2023D08 -_081BD89C: .4byte gUnknown_2024140 - thumb_func_end PlayerPartnerHandleChoosePokemon - - thumb_func_start sub_081BD8A0 -sub_081BD8A0: @ 0x081BD8A0 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081BD8A0 - - thumb_func_start sub_081BD8AC -sub_081BD8AC: @ 0x081BD8AC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - movs r0, #0 - bl LoadBattleBarGfx - ldr r3, _081BD924 - ldr r0, _081BD928 - mov sb, r0 - ldrb r4, [r0] - lsls r2, r4, #9 - adds r0, r3, #2 - adds r0, r2, r0 - ldrb r1, [r0] - adds r3, #3 - adds r2, r2, r3 - ldrb r0, [r2] - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - asrs r7, r1, #0x10 - ldr r0, _081BD92C - cmp r7, r0 - beq _081BD93C - ldr r6, _081BD930 - lsls r0, r4, #1 - adds r0, r0, r6 - ldrh r0, [r0] - movs r5, #0x64 - muls r0, r5, r0 - ldr r4, _081BD934 - adds r0, r0, r4 - movs r1, #0x3a - bl GetMonData - mov r8, r0 - mov r1, sb - ldrb r0, [r1] - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r0, [r0] - muls r0, r5, r0 - adds r0, r0, r4 - movs r1, #0x39 - bl GetMonData - adds r3, r0, #0 - mov r1, sb - ldrb r0, [r1] - ldr r1, _081BD938 - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - mov r2, r8 - bl SetBattleBarStruct - b _081BD966 - .align 2, 0 -_081BD924: .4byte gUnknown_2022D08 -_081BD928: .4byte gUnknown_2023D08 -_081BD92C: .4byte 0x00007FFF -_081BD930: .4byte gUnknown_2023D12 -_081BD934: .4byte gUnknown_2024190 -_081BD938: .4byte gUnknown_3005AD0 -_081BD93C: - ldr r1, _081BD984 - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081BD988 - adds r0, r0, r1 - movs r1, #0x3a - bl GetMonData - adds r2, r0, #0 - mov r1, sb - ldrb r0, [r1] - ldr r1, _081BD98C - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - movs r3, #0 - bl SetBattleBarStruct -_081BD966: - ldr r1, _081BD990 - ldr r0, _081BD994 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081BD998 - str r1, [r0] - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081BD984: .4byte gUnknown_2023D12 -_081BD988: .4byte gUnknown_2024190 -_081BD98C: .4byte gUnknown_3005AD0 -_081BD990: .4byte gUnknown_3005AC0 -_081BD994: .4byte gUnknown_2023D08 -_081BD998: .4byte sub_081BAEB0 - thumb_func_end sub_081BD8AC - - thumb_func_start PlayerPartnerHandleExpUpdate -PlayerPartnerHandleExpUpdate: @ 0x081BD99C - push {r4, r5, r6, r7, lr} - ldr r5, _081BD9C8 - ldr r6, _081BD9CC - ldrb r0, [r6] - lsls r0, r0, #9 - adds r1, r5, #1 - adds r0, r0, r1 - ldrb r7, [r0] - movs r0, #0x64 - adds r1, r7, #0 - muls r1, r0, r1 - ldr r0, _081BD9D0 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #0x38 - bl GetMonData - cmp r0, #0x63 - bls _081BD9D4 - bl PlayerPartnerBufferExecCompleted - b _081BDA20 - .align 2, 0 -_081BD9C8: .4byte gUnknown_2022D08 -_081BD9CC: .4byte gUnknown_2023D08 -_081BD9D0: .4byte gUnknown_2024190 -_081BD9D4: - movs r0, #1 - bl LoadBattleBarGfx - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - ldrb r1, [r6] - lsls r1, r1, #9 - adds r0, r5, #2 - adds r0, r1, r0 - ldrb r4, [r0] - adds r0, r5, #3 - adds r1, r1, r0 - ldrb r0, [r1] - lsls r0, r0, #8 - orrs r4, r0 - ldr r0, _081BDA28 - movs r1, #0xa - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _081BDA2C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r7, [r1, #8] - strh r4, [r1, #0xa] - ldrb r0, [r6] - strh r0, [r1, #0xc] - ldr r1, _081BDA30 - ldrb r0, [r6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081BDA34 - str r1, [r0] -_081BDA20: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081BDA28: .4byte Task_GiveExpToMon -_081BDA2C: .4byte gUnknown_3005B60 -_081BDA30: .4byte gUnknown_3005AC0 -_081BDA34: .4byte sub_08057068 - thumb_func_end PlayerPartnerHandleExpUpdate - - thumb_func_start PlayerPartnerHandleStatusIconUpdate -PlayerPartnerHandleStatusIconUpdate: @ 0x081BDA38 - push {r4, lr} - ldr r4, _081BDA94 - ldrb r0, [r4] - bl mplay_80342A4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081BDA8C - ldr r0, _081BDA98 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - ldr r2, _081BDA9C - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - ldr r2, _081BDAA0 - adds r1, r1, r2 - movs r2, #9 - bl UpdateHealthboxAttribute - ldrb r2, [r4] - ldr r0, _081BDAA4 - ldr r0, [r0] - ldr r0, [r0, #4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r1, _081BDAA8 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081BDAAC - str r1, [r0] -_081BDA8C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081BDA94: .4byte gUnknown_2023D08 -_081BDA98: .4byte gUnknown_3005AD0 -_081BDA9C: .4byte gUnknown_2023D12 -_081BDAA0: .4byte gUnknown_2024190 -_081BDAA4: .4byte gUnknown_2024174 -_081BDAA8: .4byte gUnknown_3005AC0 -_081BDAAC: .4byte sub_081BB8A0 - thumb_func_end PlayerPartnerHandleStatusIconUpdate - - thumb_func_start PlayerPartnerHandleStatusAnimation -PlayerPartnerHandleStatusAnimation: @ 0x081BDAB0 - push {r4, r5, lr} - ldr r5, _081BDB08 - ldrb r0, [r5] - bl mplay_80342A4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081BDB00 - ldr r4, _081BDB0C - ldrb r3, [r5] - lsls r3, r3, #9 - adds r0, r4, #1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, #2 - adds r1, r3, r1 - ldrb r1, [r1] - adds r2, r4, #3 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, r2, #8 - orrs r1, r2 - adds r2, r4, #4 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, r2, #0x10 - orrs r1, r2 - adds r4, #5 - adds r3, r3, r4 - ldrb r2, [r3] - lsls r2, r2, #0x18 - orrs r1, r2 - bl InitAndLaunchChosenStatusAnimation - ldr r1, _081BDB10 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081BDB14 - str r1, [r0] -_081BDB00: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081BDB08: .4byte gUnknown_2023D08 -_081BDB0C: .4byte gUnknown_2022D08 -_081BDB10: .4byte gUnknown_3005AC0 -_081BDB14: .4byte sub_081BB8A0 - thumb_func_end PlayerPartnerHandleStatusAnimation - - thumb_func_start sub_081BDB18 -sub_081BDB18: @ 0x081BDB18 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081BDB18 - - thumb_func_start sub_081BDB24 -sub_081BDB24: @ 0x081BDB24 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081BDB24 - - thumb_func_start sub_081BDB30 -sub_081BDB30: @ 0x081BDB30 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081BDB30 - - thumb_func_start sub_081BDB3C -sub_081BDB3C: @ 0x081BDB3C - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081BDB3C - - thumb_func_start sub_081BDB48 -sub_081BDB48: @ 0x081BDB48 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081BDB48 - - thumb_func_start PlayerPartnerHandleTwoReturnValues -PlayerPartnerHandleTwoReturnValues: @ 0x081BDB54 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PlayerPartnerHandleTwoReturnValues - - thumb_func_start PlayerPartnerHandleChosenMonReturnValue -PlayerPartnerHandleChosenMonReturnValue: @ 0x081BDB60 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PlayerPartnerHandleChosenMonReturnValue - - thumb_func_start PlayerPartnerHandleOneReturnValue -PlayerPartnerHandleOneReturnValue: @ 0x081BDB6C - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PlayerPartnerHandleOneReturnValue - - thumb_func_start PlayerPartnerHandleOneReturnValue_Duplicate -PlayerPartnerHandleOneReturnValue_Duplicate: @ 0x081BDB78 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PlayerPartnerHandleOneReturnValue_Duplicate - - thumb_func_start PlayerPartnerHandleCmd37 -PlayerPartnerHandleCmd37: @ 0x081BDB84 - push {lr} - ldr r2, _081BDB9C - ldrb r1, [r2] - movs r0, #0x80 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_081BDB9C: .4byte gUnknown_20229C0 - thumb_func_end PlayerPartnerHandleCmd37 - - thumb_func_start PlayerPartnerHandleCmd38 -PlayerPartnerHandleCmd38: @ 0x081BDBA0 - push {lr} - ldr r3, _081BDBCC - ldr r1, _081BDBD0 - ldr r0, _081BDBD4 - ldrb r0, [r0] - lsls r0, r0, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - ldrb r2, [r3] - movs r0, #0x80 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_081BDBCC: .4byte gUnknown_20229C0 -_081BDBD0: .4byte gUnknown_2022D08 -_081BDBD4: .4byte gUnknown_2023D08 - thumb_func_end PlayerPartnerHandleCmd38 - - thumb_func_start PlayerPartnerHandleCmd39 -PlayerPartnerHandleCmd39: @ 0x081BDBD8 - push {lr} - ldr r2, _081BDBEC - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_081BDBEC: .4byte gUnknown_20229C0 - thumb_func_end PlayerPartnerHandleCmd39 - - thumb_func_start PlayerPartnerHandleCmd40 -PlayerPartnerHandleCmd40: @ 0x081BDBF0 - push {lr} - ldr r3, _081BDC14 - ldr r1, [r3] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x1f - movs r0, #1 - eors r1, r0 - lsls r1, r1, #7 - ldrb r2, [r3] - movs r0, #0x7f - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_081BDC14: .4byte gUnknown_20229C0 - thumb_func_end PlayerPartnerHandleCmd40 - - thumb_func_start PlayerPartnerHandleHitAnimation -PlayerPartnerHandleHitAnimation: @ 0x081BDC18 - push {r4, lr} - ldr r3, _081BDC40 - ldr r2, _081BDC44 - ldr r4, _081BDC48 - ldrb r0, [r4] - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - bge _081BDC4C - bl PlayerPartnerBufferExecCompleted - b _081BDC76 - .align 2, 0 -_081BDC40: .4byte gUnknown_20205AC -_081BDC44: .4byte gUnknown_2023E88 -_081BDC48: .4byte gUnknown_2023D08 -_081BDC4C: - ldr r1, _081BDC7C - movs r0, #1 - strb r0, [r1] - ldrb r0, [r4] - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r1, #0 - strh r1, [r0, #0x30] - ldrb r0, [r4] - bl sub_080763FC - ldr r1, _081BDC80 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081BDC84 - str r1, [r0] -_081BDC76: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081BDC7C: .4byte gUnknown_202415D -_081BDC80: .4byte gUnknown_3005AC0 -_081BDC84: .4byte sub_081BB54C - thumb_func_end PlayerPartnerHandleHitAnimation - - thumb_func_start PlayerPartnerHandleCmd42 -PlayerPartnerHandleCmd42: @ 0x081BDC88 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PlayerPartnerHandleCmd42 - - thumb_func_start PlayerPartnerHandlePlaySE -PlayerPartnerHandlePlaySE: @ 0x081BDC94 - push {r4, lr} - ldr r4, _081BDCD0 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, r0, #0x18 - movs r3, #0x3f - cmp r0, #0 - bne _081BDCA8 - movs r3, #0xc0 -_081BDCA8: - ldr r2, _081BDCD4 - ldrb r1, [r4] - lsls r1, r1, #9 - adds r0, r2, #1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, #2 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - lsls r1, r3, #0x18 - asrs r1, r1, #0x18 - bl PlaySE12WithPanning - bl PlayerPartnerBufferExecCompleted - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081BDCD0: .4byte gUnknown_2023D08 -_081BDCD4: .4byte gUnknown_2022D08 - thumb_func_end PlayerPartnerHandlePlaySE - - thumb_func_start PlayerPartnerHandlePlayFanfareOrBGM -PlayerPartnerHandlePlayFanfareOrBGM: @ 0x081BDCD8 - push {r4, r5, lr} - ldr r4, _081BDD0C - ldr r5, _081BDD10 - ldrb r0, [r5] - lsls r3, r0, #9 - adds r0, r4, #3 - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, #0 - beq _081BDD14 - bl BattleStopLowHpSound - ldrb r1, [r5] - lsls r1, r1, #9 - adds r0, r4, #1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, r4, #2 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - bl PlayBGM - b _081BDD28 - .align 2, 0 -_081BDD0C: .4byte gUnknown_2022D08 -_081BDD10: .4byte gUnknown_2023D08 -_081BDD14: - adds r0, r4, #1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, #2 - adds r1, r3, r1 - ldrb r1, [r1] - lsls r1, r1, #8 - orrs r0, r1 - bl PlayFanfare -_081BDD28: - bl PlayerPartnerBufferExecCompleted - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PlayerPartnerHandlePlayFanfareOrBGM - - thumb_func_start PlayerPartnerHandleFaintingCry -PlayerPartnerHandleFaintingCry: @ 0x081BDD34 - push {lr} - ldr r1, _081BDD68 - ldr r0, _081BDD6C - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081BDD70 - adds r0, r0, r1 - movs r1, #0xb - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x19 - rsbs r1, r1, #0 - movs r2, #5 - bl PlayCry3 - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_081BDD68: .4byte gUnknown_2023D12 -_081BDD6C: .4byte gUnknown_2023D08 -_081BDD70: .4byte gUnknown_2024190 - thumb_func_end PlayerPartnerHandleFaintingCry - - thumb_func_start sub_081BDD74 -sub_081BDD74: @ 0x081BDD74 - push {lr} - ldr r1, _081BDD9C - ldr r0, _081BDDA0 - ldrb r0, [r0] - lsls r0, r0, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - bl HandleIntroSlide - ldr r2, _081BDDA4 - ldrh r0, [r2] - movs r1, #1 - orrs r0, r1 - strh r0, [r2] - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_081BDD9C: .4byte gUnknown_2022D08 -_081BDDA0: .4byte gUnknown_2023D08 -_081BDDA4: .4byte gUnknown_20240A0 - thumb_func_end sub_081BDD74 - - thumb_func_start PlayerPartnerHandleIntroTrainerBallThrow -PlayerPartnerHandleIntroTrainerBallThrow: @ 0x081BDDA8 - push {r4, r5, r6, lr} - ldr r6, _081BDE70 - ldr r5, _081BDE74 - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _081BDE78 - adds r0, r0, r4 - bl SetSpritePrimaryCoordsFromSecondaryCoords - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0x32 - strh r1, [r0, #0x2e] - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _081BDE7C - strh r1, [r0, #0x32] - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r0, #0x22] - strh r1, [r0, #0x36] - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _081BDE80 - str r1, [r0] - ldrb r2, [r5] - adds r0, r2, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - strh r2, [r0, #0x38] - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, _081BDE84 - bl StoreSpriteCallbackInData6 - ldrb r0, [r5] - adds r0, r0, r6 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #1 - bl StartSpriteAnim - ldr r0, _081BDE88 - bl AllocSpritePalette - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r2, _081BDE8C - ldrh r1, [r2] - ldr r0, _081BDE90 - cmp r1, r0 - bne _081BDE98 - ldr r0, _081BDE94 - ldr r0, [r0, #0x38] - lsls r4, r4, #4 - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r4, r2 - movs r2, #0x20 - bl LoadCompressedPalette - b _081BDEB6 - .align 2, 0 -_081BDE70: .4byte gUnknown_2023E88 -_081BDE74: .4byte gUnknown_2023D08 -_081BDE78: .4byte gUnknown_20205AC -_081BDE7C: .4byte 0x0000FFD8 -_081BDE80: .4byte sub_080A67B4 -_081BDE84: .4byte sub_0805C81C -_081BDE88: .4byte 0x0000D6F9 -_081BDE8C: .4byte gUnknown_203886E -_081BDE90: .4byte 0x00000C03 -_081BDE94: .4byte gUnknown_82D961C -_081BDE98: - ldrh r0, [r2] - bl GetFrontierTrainerFrontSpriteId - lsls r0, r0, #0x18 - ldr r1, _081BDF38 - lsrs r0, r0, #0x15 - adds r0, r0, r1 - ldr r0, [r0] - lsls r4, r4, #4 - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r4, r2 - movs r2, #0x20 - bl LoadCompressedPalette -_081BDEB6: - ldr r2, _081BDF3C - ldr r1, _081BDF40 - ldr r5, _081BDF44 - ldrb r0, [r5] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r2, [r1, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r4 - strb r0, [r1, #5] - ldr r0, _081BDF48 - movs r1, #5 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _081BDF4C - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r4 - ldrb r0, [r5] - strh r0, [r1, #8] - ldr r3, _081BDF50 - ldr r0, [r3] - ldrb r2, [r5] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081BDF1A - ldr r0, _081BDF54 - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r4 - ldr r1, _081BDF58 - str r1, [r0] -_081BDF1A: - ldr r0, [r3] - ldr r2, [r0, #8] - ldrb r0, [r2, #9] - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #9] - ldr r1, _081BDF5C - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081BDF60 - str r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081BDF38: .4byte gUnknown_82D91CC -_081BDF3C: .4byte gUnknown_20205AC -_081BDF40: .4byte gUnknown_2023E88 -_081BDF44: .4byte gUnknown_2023D08 -_081BDF48: .4byte sub_081BDF64 -_081BDF4C: .4byte gUnknown_3005B60 -_081BDF50: .4byte gUnknown_2024174 -_081BDF54: .4byte gUnknown_2024158 -_081BDF58: .4byte Task_HidePartyStatusSummary -_081BDF5C: .4byte gUnknown_3005AC0 -_081BDF60: .4byte sub_081BAA8C - thumb_func_end PlayerPartnerHandleIntroTrainerBallThrow - - thumb_func_start sub_081BDF64 -sub_081BDF64: @ 0x081BDF64 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r1, _081BDF8C - lsls r0, r0, #2 - add r0, r8 - lsls r0, r0, #3 - adds r1, r0, r1 - ldrh r2, [r1, #0xa] - movs r3, #0xa - ldrsh r0, [r1, r3] - cmp r0, #0x17 - bgt _081BDF90 - adds r0, r2, #1 - strh r0, [r1, #0xa] - b _081BE04C - .align 2, 0 -_081BDF8C: .4byte gUnknown_3005B60 -_081BDF90: - ldr r7, _081BDFD0 - ldrb r0, [r7] - mov sb, r0 - ldrh r0, [r1, #8] - strb r0, [r7] - bl IsDoubleBattle - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081BDFB0 - ldr r0, _081BDFD4 - ldr r0, [r0] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _081BDFE0 -_081BDFB0: - ldr r0, _081BDFD8 - ldrb r1, [r7] - lsls r2, r1, #9 - adds r0, #1 - adds r2, r2, r0 - ldr r0, _081BDFDC - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - strb r0, [r2] - ldrb r0, [r7] - movs r1, #0 - bl sub_081BCD80 - b _081BE034 - .align 2, 0 -_081BDFD0: .4byte gUnknown_2023D08 -_081BDFD4: .4byte gUnknown_2022C90 -_081BDFD8: .4byte gUnknown_2022D08 -_081BDFDC: .4byte gUnknown_2023D12 -_081BDFE0: - ldr r4, _081BE058 - ldrb r0, [r7] - lsls r1, r0, #9 - adds r4, #1 - adds r1, r1, r4 - ldr r5, _081BE05C - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - movs r1, #0 - bl sub_081BCD80 - ldrb r0, [r7] - movs r6, #2 - eors r0, r6 - strb r0, [r7] - ldrb r0, [r7] - lsls r1, r0, #9 - adds r1, r1, r4 - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r0, [r0] - strb r0, [r1] - ldrb r1, [r7] - lsls r0, r1, #1 - adds r0, r0, r5 - ldrh r2, [r0] - movs r0, #0x64 - muls r0, r2, r0 - ldr r2, _081BE060 - adds r0, r0, r2 - bl BattleLoadPlayerMonSpriteGfx - ldrb r0, [r7] - movs r1, #0 - bl sub_081BCD80 - ldrb r0, [r7] - eors r0, r6 - strb r0, [r7] -_081BE034: - ldr r1, _081BE064 - ldr r2, _081BE068 - ldrb r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081BE06C - str r1, [r0] - mov r3, sb - strb r3, [r2] - mov r0, r8 - bl DestroyTask -_081BE04C: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081BE058: .4byte gUnknown_2022D08 -_081BE05C: .4byte gUnknown_2023D12 -_081BE060: .4byte gUnknown_2024190 -_081BE064: .4byte gUnknown_3005AC0 -_081BE068: .4byte gUnknown_2023D08 -_081BE06C: .4byte sub_081BACC8 - thumb_func_end sub_081BDF64 - - thumb_func_start PlayerPartnerHandleDrawPartyStatusSummary -PlayerPartnerHandleDrawPartyStatusSummary: @ 0x081BE070 - push {r4, r5, r6, lr} - ldr r1, _081BE098 - ldr r0, _081BE09C - ldrb r2, [r0] - lsls r0, r2, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _081BE0A0 - adds r0, r2, #0 - bl GetBattlerSide - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081BE0A0 - bl PlayerPartnerBufferExecCompleted - b _081BE114 - .align 2, 0 -_081BE098: .4byte gUnknown_2022D08 -_081BE09C: .4byte gUnknown_2023D08 -_081BE0A0: - ldr r6, _081BE11C - ldr r0, [r6] - ldr r5, _081BE120 - ldrb r1, [r5] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0] - movs r2, #1 - orrs r1, r2 - strb r1, [r0] - ldrb r0, [r5] - lsls r3, r0, #9 - ldr r4, _081BE124 - adds r1, r3, r4 - subs r2, r4, #3 - adds r2, r3, r2 - ldrb r2, [r2] - subs r4, #2 - adds r3, r3, r4 - ldrb r3, [r3] - bl CreatePartyStatusSummarySprites - ldr r2, _081BE128 - ldrb r1, [r5] - adds r1, r1, r2 - movs r3, #0 - strb r0, [r1] - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strb r3, [r0, #5] - ldrb r2, [r5] - lsls r0, r2, #9 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0 - beq _081BE108 - ldr r0, [r6] - ldr r1, [r0, #4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - movs r1, #0x5d - strb r1, [r0, #5] -_081BE108: - ldr r0, _081BE12C - ldrb r1, [r5] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, _081BE130 - str r0, [r1] -_081BE114: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081BE11C: .4byte gUnknown_2024174 -_081BE120: .4byte gUnknown_2023D08 -_081BE124: .4byte gUnknown_2022D0C -_081BE128: .4byte gUnknown_2024158 -_081BE12C: .4byte gUnknown_3005AC0 -_081BE130: .4byte sub_081BE134 - thumb_func_end PlayerPartnerHandleDrawPartyStatusSummary - - thumb_func_start sub_081BE134 -sub_081BE134: @ 0x081BE134 - push {r4, lr} - ldr r4, _081BE174 - ldr r0, [r4] - ldr r3, _081BE178 - ldrb r1, [r3] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #5] - adds r2, r1, #1 - strb r2, [r0, #5] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #0x5c - bls _081BE16C - ldr r0, [r4] - ldrb r1, [r3] - ldr r2, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0 - strb r1, [r0, #5] - bl PlayerPartnerBufferExecCompleted -_081BE16C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081BE174: .4byte gUnknown_2024174 -_081BE178: .4byte gUnknown_2023D08 - thumb_func_end sub_081BE134 - - thumb_func_start PlayerPartnerHandleHidePartyStatusSummary -PlayerPartnerHandleHidePartyStatusSummary: @ 0x081BE17C - push {lr} - ldr r0, _081BE1B8 - ldr r1, [r0] - ldr r0, _081BE1BC - ldrb r3, [r0] - ldr r1, [r1, #4] - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081BE1AE - ldr r2, _081BE1C0 - ldr r0, _081BE1C4 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldr r1, _081BE1C8 - str r1, [r0] -_081BE1AE: - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_081BE1B8: .4byte gUnknown_2024174 -_081BE1BC: .4byte gUnknown_2023D08 -_081BE1C0: .4byte gUnknown_3005B60 -_081BE1C4: .4byte gUnknown_2024158 -_081BE1C8: .4byte Task_HidePartyStatusSummary - thumb_func_end PlayerPartnerHandleHidePartyStatusSummary - - thumb_func_start PlayerPartnerHandleEndBounceEffect -PlayerPartnerHandleEndBounceEffect: @ 0x081BE1CC - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PlayerPartnerHandleEndBounceEffect - - thumb_func_start sub_081BE1D8 -sub_081BE1D8: @ 0x081BE1D8 - push {r4, lr} - ldr r4, _081BE228 - ldrb r0, [r4] - bl IsBattlerSpritePresent - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081BE21E - ldr r3, _081BE22C - ldr r0, _081BE230 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r0, _081BE234 - lsls r1, r1, #9 - adds r0, #1 - adds r1, r1, r0 - adds r2, #0x3e - movs r0, #1 - ldrb r1, [r1] - ands r1, r0 - lsls r1, r1, #2 - ldrb r3, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4] - bl CopyBattleSpriteInvisibility -_081BE21E: - bl PlayerPartnerBufferExecCompleted - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081BE228: .4byte gUnknown_2023D08 -_081BE22C: .4byte gUnknown_20205AC -_081BE230: .4byte gUnknown_2023E88 -_081BE234: .4byte gUnknown_2022D08 - thumb_func_end sub_081BE1D8 - - thumb_func_start PlayerPartnerHandleBattleAnimation -PlayerPartnerHandleBattleAnimation: @ 0x081BE238 - push {r4, r5, r6, lr} - sub sp, #4 - ldr r6, _081BE27C - ldrb r0, [r6] - bl mplay_80342A4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081BE290 - ldr r5, _081BE280 - ldrb r2, [r6] - lsls r1, r2, #9 - adds r0, r5, #1 - adds r0, r1, r0 - ldrb r3, [r0] - adds r0, r5, #2 - adds r0, r1, r0 - ldrb r4, [r0] - adds r5, #3 - adds r1, r1, r5 - ldrb r0, [r1] - lsls r0, r0, #8 - orrs r4, r0 - str r4, [sp] - adds r0, r2, #0 - adds r1, r2, #0 - bl TryHandleLaunchBattleTableAnimation - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081BE284 - bl PlayerPartnerBufferExecCompleted - b _081BE290 - .align 2, 0 -_081BE27C: .4byte gUnknown_2023D08 -_081BE280: .4byte gUnknown_2022D08 -_081BE284: - ldr r0, _081BE298 - ldrb r1, [r6] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, _081BE29C - str r0, [r1] -_081BE290: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081BE298: .4byte gUnknown_3005AC0 -_081BE29C: .4byte sub_081BB8D0 - thumb_func_end PlayerPartnerHandleBattleAnimation - - thumb_func_start PlayerPartnerHandleLinkStandbyMsg -PlayerPartnerHandleLinkStandbyMsg: @ 0x081BE2A0 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PlayerPartnerHandleLinkStandbyMsg - - thumb_func_start PlayerPartnerHandleResetActionMoveSelection -PlayerPartnerHandleResetActionMoveSelection: @ 0x081BE2AC - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PlayerPartnerHandleResetActionMoveSelection - - thumb_func_start FullSaveGame -FullSaveGame: @ 0x081BE2B8 - push {r4, lr} - ldr r2, _081BE2F0 - ldr r1, _081BE2F4 - ldr r4, _081BE2F8 - ldrb r0, [r4] - lsls r0, r0, #9 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r2] - movs r0, #5 - bl FadeOutMapMusic - movs r0, #3 - bl BeginFastPaletteFade - bl PlayerPartnerBufferExecCompleted - ldr r1, _081BE2FC - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, _081BE300 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081BE2F0: .4byte gUnknown_2023FDE -_081BE2F4: .4byte gUnknown_2022D08 -_081BE2F8: .4byte gUnknown_2023D08 -_081BE2FC: .4byte gUnknown_3005AC0 -_081BE300: .4byte sub_080583C0 - thumb_func_end FullSaveGame - - thumb_func_start sub_081BE304 -sub_081BE304: @ 0x081BE304 - bx lr - .align 2, 0 - thumb_func_end sub_081BE304 - - thumb_func_start IsMirageTowerVisible -IsMirageTowerVisible: @ 0x081BE308 - push {lr} - ldr r0, _081BE328 - ldr r0, [r0] - ldrh r1, [r0, #4] - movs r0, #0xd0 - lsls r0, r0, #5 - cmp r1, r0 - bne _081BE32C - movs r0, #0xa7 - lsls r0, r0, #1 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _081BE32E - .align 2, 0 -_081BE328: .4byte gUnknown_3005AEC -_081BE32C: - movs r0, #0 -_081BE32E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsMirageTowerVisible - - thumb_func_start UpdateMirageTowerPulseBlend -UpdateMirageTowerPulseBlend: @ 0x081BE334 - push {lr} - ldr r0, _081BE344 - ldr r0, [r0] - adds r0, #4 - bl UpdatePulseBlend - pop {r0} - bx r0 - .align 2, 0 -_081BE344: .4byte gUnknown_203CBE4 - thumb_func_end UpdateMirageTowerPulseBlend - - thumb_func_start sub_081BE348 -sub_081BE348: @ 0x081BE348 - ldr r1, _081BE350 - movs r0, #0 - str r0, [r1] - bx lr - .align 2, 0 -_081BE350: .4byte gUnknown_203CBE4 - thumb_func_end sub_081BE348 - - thumb_func_start TryStartMirageTowerPulseBlendEffect -TryStartMirageTowerPulseBlendEffect: @ 0x081BE354 - push {r4, lr} - ldr r4, _081BE364 - ldr r0, [r4] - cmp r0, #0 - beq _081BE368 - movs r0, #0 - str r0, [r4] - b _081BE3B4 - .align 2, 0 -_081BE364: .4byte gUnknown_203CBE4 -_081BE368: - ldr r0, _081BE3BC - ldr r0, [r0] - ldrh r1, [r0, #4] - movs r0, #0xd0 - lsls r0, r0, #5 - cmp r1, r0 - bne _081BE3B4 - movs r0, #0xa7 - lsls r0, r0, #1 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081BE3B4 - movs r0, #0xc8 - bl AllocZeroed - str r0, [r4] - adds r0, #4 - bl InitPulseBlend - ldr r0, [r4] - adds r0, #4 - ldr r1, _081BE3C0 - bl InitPulseBlendPaletteSettings - ldr r0, [r4] - adds r0, #4 - movs r1, #1 - movs r2, #1 - bl MarkUsedPulseBlendPalettes - ldr r0, _081BE3C4 - movs r1, #0xff - bl CreateTask - ldr r1, [r4] - strb r0, [r1] -_081BE3B4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081BE3BC: .4byte gUnknown_3005AEC -_081BE3C0: .4byte gUnknown_85E7FD4 -_081BE3C4: .4byte UpdateMirageTowerPulseBlend - thumb_func_end TryStartMirageTowerPulseBlendEffect - - thumb_func_start ClearMirageTowerPulseBlendEffect -ClearMirageTowerPulseBlendEffect: @ 0x081BE3C8 - push {r4, lr} - ldr r0, _081BE42C - ldr r0, [r0] - ldrh r1, [r0, #4] - movs r0, #0xd0 - lsls r0, r0, #5 - cmp r1, r0 - bne _081BE424 - movs r0, #0xa7 - lsls r0, r0, #1 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081BE424 - ldr r4, _081BE430 - ldr r0, [r4] - cmp r0, #0 - beq _081BE424 - ldr r0, _081BE434 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081BE402 - ldr r0, [r4] - ldrb r0, [r0] - bl DestroyTask -_081BE402: - ldr r0, [r4] - adds r0, #4 - movs r1, #1 - movs r2, #1 - bl UnmarkUsedPulseBlendPalettes - ldr r0, [r4] - adds r0, #4 - movs r1, #1 - movs r2, #1 - bl UnloadUsedPulseBlendPalettes - ldr r0, [r4] - bl Free - movs r0, #0 - str r0, [r4] -_081BE424: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081BE42C: .4byte gUnknown_3005AEC -_081BE430: .4byte gUnknown_203CBE4 -_081BE434: .4byte UpdateMirageTowerPulseBlend - thumb_func_end ClearMirageTowerPulseBlendEffect - - thumb_func_start SetMirageTowerVisibility -SetMirageTowerVisibility: @ 0x081BE438 - push {r4, lr} - ldr r0, _081BE450 - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - beq _081BE454 - movs r0, #0xa7 - lsls r0, r0, #1 - bl FlagClear - b _081BE48A - .align 2, 0 -_081BE450: .4byte 0x000040CB -_081BE454: - bl Random - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r0, #1 - ands r4, r0 - movs r0, #0x9d - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081BE470 - movs r4, #1 -_081BE470: - cmp r4, #0 - beq _081BE482 - movs r0, #0xa7 - lsls r0, r0, #1 - bl FlagSet - bl TryStartMirageTowerPulseBlendEffect - b _081BE48A -_081BE482: - movs r0, #0xa7 - lsls r0, r0, #1 - bl FlagClear -_081BE48A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end SetMirageTowerVisibility - - thumb_func_start StartPlayerDescendMirageTower -StartPlayerDescendMirageTower: @ 0x081BE490 - push {lr} - ldr r0, _081BE4A0 - movs r1, #8 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_081BE4A0: .4byte PlayerDescendMirageTower - thumb_func_end StartPlayerDescendMirageTower - - thumb_func_start PlayerDescendMirageTower -PlayerDescendMirageTower: @ 0x081BE4A4 - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _081BE528 - ldr r0, [r0] - ldrb r1, [r0, #5] - ldrb r2, [r0, #4] - movs r0, #0x2d - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - mov r0, sp - ldrb r0, [r0] - lsls r2, r0, #3 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r4, _081BE52C - adds r2, r2, r4 - ldr r3, _081BE530 - ldrb r1, [r2, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r0, #0x26] - adds r1, #4 - strh r1, [r0, #0x26] - ldr r0, _081BE534 - ldrb r0, [r0, #5] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldrb r2, [r2, #4] - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r4, #0x22 - ldrsh r2, [r0, r4] - movs r4, #0x26 - ldrsh r0, [r0, r4] - adds r2, r2, r0 - ldrb r1, [r1, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r3, #0x22 - ldrsh r1, [r0, r3] - movs r4, #0x26 - ldrsh r0, [r0, r4] - adds r1, r1, r0 - cmp r2, r1 - blt _081BE51E - adds r0, r5, #0 - bl DestroyTask - bl EnableBothScriptContexts -_081BE51E: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081BE528: .4byte gUnknown_3005AEC -_081BE52C: .4byte gUnknown_2036FF0 -_081BE530: .4byte gUnknown_20205AC -_081BE534: .4byte gUnknown_2037230 - thumb_func_end PlayerDescendMirageTower - - thumb_func_start StartScreenShake -StartScreenShake: @ 0x081BE538 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - mov r8, r0 - adds r4, r1, #0 - adds r5, r2, #0 - adds r6, r3, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - ldr r0, _081BE594 - movs r1, #9 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _081BE598 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - movs r0, #0 - strh r4, [r1, #8] - strh r0, [r1, #0xa] - strh r5, [r1, #0xc] - strh r6, [r1, #0xe] - mov r0, r8 - strh r0, [r1, #0x10] - movs r0, #0 - bl sub_08089C24 - movs r0, #0xd6 - bl sub_080A306C - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081BE594: .4byte DoScreenShake -_081BE598: .4byte gUnknown_3005B60 - thumb_func_end StartScreenShake - - thumb_func_start DoScreenShake -DoScreenShake: @ 0x081BE59C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _081BE600 - adds r4, r0, r1 - ldrh r0, [r4, #2] - adds r0, #1 - strh r0, [r4, #2] - movs r1, #2 - ldrsh r0, [r4, r1] - movs r2, #6 - ldrsh r1, [r4, r2] - bl __modsi3 - cmp r0, #0 - bne _081BE5F8 - strh r0, [r4, #2] - ldrh r0, [r4, #4] - subs r0, #1 - strh r0, [r4, #4] - ldrh r0, [r4] - rsbs r0, r0, #0 - strh r0, [r4] - ldrh r0, [r4, #8] - rsbs r0, r0, #0 - strh r0, [r4, #8] - movs r1, #0 - ldrsh r0, [r4, r1] - movs r2, #8 - ldrsh r1, [r4, r2] - bl SetCameraPanning - movs r1, #4 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _081BE5F8 - bl IncrementCeilingCrumbleFinishedCount - adds r0, r5, #0 - bl DestroyTask - bl InstallCameraPanAheadCallback -_081BE5F8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081BE600: .4byte gUnknown_3005B68 - thumb_func_end DoScreenShake - - thumb_func_start IncrementCeilingCrumbleFinishedCount -IncrementCeilingCrumbleFinishedCount: @ 0x081BE604 - push {lr} - ldr r0, _081BE628 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xff - beq _081BE624 - ldr r0, _081BE62C - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] -_081BE624: - pop {r0} - bx r0 - .align 2, 0 -_081BE628: .4byte WaitCeilingCrumble -_081BE62C: .4byte gUnknown_3005B60 - thumb_func_end IncrementCeilingCrumbleFinishedCount - - thumb_func_start DoMirageTowerCeilingCrumble -DoMirageTowerCeilingCrumble: @ 0x081BE630 - push {lr} - ldr r0, _081BE654 - bl LoadSpriteSheets - bl CreateCeilingCrumbleSprites - ldr r0, _081BE658 - movs r1, #8 - bl CreateTask - movs r0, #2 - movs r1, #1 - movs r2, #0x10 - movs r3, #3 - bl StartScreenShake - pop {r0} - bx r0 - .align 2, 0 -_081BE654: .4byte gUnknown_85E7F50 -_081BE658: .4byte WaitCeilingCrumble - thumb_func_end DoMirageTowerCeilingCrumble - - thumb_func_start WaitCeilingCrumble -WaitCeilingCrumble: @ 0x081BE65C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r3, r1, #3 - ldr r4, _081BE694 - adds r2, r3, r4 - ldrh r0, [r2, #2] - adds r0, #1 - strh r0, [r2, #2] - lsls r0, r0, #0x10 - movs r1, #0xfa - lsls r1, r1, #0x12 - cmp r0, r1 - beq _081BE682 - ldrh r0, [r2] - cmp r0, #0x11 - bne _081BE68C -_081BE682: - adds r0, r4, #0 - subs r0, #8 - adds r0, r3, r0 - ldr r1, _081BE698 - str r1, [r0] -_081BE68C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081BE694: .4byte gUnknown_3005B68 -_081BE698: .4byte FinishCeilingCrumbleTask - thumb_func_end WaitCeilingCrumble - - thumb_func_start FinishCeilingCrumbleTask -FinishCeilingCrumbleTask: @ 0x081BE69C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0xfa - lsls r0, r0, #4 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl DestroyTask - bl EnableBothScriptContexts - pop {r4} - pop {r0} - bx r0 - thumb_func_end FinishCeilingCrumbleTask - - thumb_func_start CreateCeilingCrumbleSprites -CreateCeilingCrumbleSprites: @ 0x081BE6BC - push {r4, r5, r6, r7, lr} - movs r4, #0 - ldr r5, _081BE764 - adds r7, r5, #2 - ldr r6, _081BE768 -_081BE6C6: - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #1 - adds r1, r0, r5 - ldrh r1, [r1] - adds r1, #0x78 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r0, r7 - movs r3, #0 - ldrsh r2, [r0, r3] - ldr r0, _081BE76C - movs r3, #8 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r2, [r0, #5] - movs r3, #0xd - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r2, r1 - movs r1, #0xf - ands r2, r1 - strb r2, [r0, #5] - strh r4, [r0, #0x2e] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #7 - bls _081BE6C6 - movs r4, #0 - ldr r5, _081BE764 - adds r7, r5, #2 - ldr r6, _081BE768 -_081BE714: - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #1 - adds r1, r0, r5 - ldrh r1, [r1] - adds r1, #0x73 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r0, r7 - ldrh r2, [r0] - subs r2, #3 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - ldr r0, _081BE770 - movs r3, #8 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r2, [r0, #5] - movs r3, #0xd - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r2, r1 - movs r1, #0xf - ands r2, r1 - strb r2, [r0, #5] - strh r4, [r0, #0x2e] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #7 - bls _081BE714 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081BE764: .4byte gUnknown_85E7F20 -_081BE768: .4byte gUnknown_20205AC -_081BE76C: .4byte gUnknown_85E801C -_081BE770: .4byte gUnknown_85E7FF0 - thumb_func_end CreateCeilingCrumbleSprites - - thumb_func_start MoveCeilingCrumbleSprite -MoveCeilingCrumbleSprite: @ 0x081BE774 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x30] - adds r0, #2 - strh r0, [r4, #0x30] - movs r1, #0x30 - ldrsh r0, [r4, r1] - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - strh r0, [r4, #0x26] - movs r0, #0x22 - ldrsh r3, [r4, r0] - movs r1, #0x26 - ldrsh r0, [r4, r1] - adds r3, r3, r0 - ldr r2, _081BE7BC - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r2, #4 - adds r0, r0, r2 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r3, r0 - ble _081BE7B6 - adds r0, r4, #0 - bl DestroySprite - bl IncrementCeilingCrumbleFinishedCount -_081BE7B6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081BE7BC: .4byte gUnknown_85E7F20 - thumb_func_end MoveCeilingCrumbleSprite - - thumb_func_start SetInvisibleMirageTowerMetatiles -SetInvisibleMirageTowerMetatiles: @ 0x081BE7C0 - push {r4, r5, lr} - movs r4, #0 - ldr r5, _081BE7EC -_081BE7C6: - lsls r2, r4, #2 - adds r2, r2, r5 - ldrb r0, [r2] - adds r0, #7 - ldrb r1, [r2, #1] - adds r1, #7 - ldrh r2, [r2, #2] - bl MapGridSetMetatileIdAt - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x11 - bls _081BE7C6 - bl DrawWholeMapView - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081BE7EC: .4byte gUnknown_85E7F60 - thumb_func_end SetInvisibleMirageTowerMetatiles - - thumb_func_start sub_081BE7F0 -sub_081BE7F0: @ 0x081BE7F0 - push {lr} - ldr r0, _081BE800 - movs r1, #9 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_081BE800: .4byte DoMirageTowerDisintegration - thumb_func_end sub_081BE7F0 - - thumb_func_start sub_081BE804 -sub_081BE804: @ 0x081BE804 - push {lr} - ldr r0, _081BE814 - movs r1, #9 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_081BE814: .4byte InitMirageTowerShake - thumb_func_end sub_081BE804 - - thumb_func_start sub_081BE818 -sub_081BE818: @ 0x081BE818 - push {lr} - ldr r0, _081BE828 - movs r1, #9 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_081BE828: .4byte DoFossilFallAndSink - thumb_func_end sub_081BE818 - - thumb_func_start SetBgShakeOffsets -SetBgShakeOffsets: @ 0x081BE82C - push {r4, lr} - ldr r4, _081BE84C - ldr r0, [r4] - ldrh r1, [r0] - movs r0, #0x10 - bl SetGpuReg - ldr r0, [r4] - ldrh r1, [r0, #2] - movs r0, #0x12 - bl SetGpuReg - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081BE84C: .4byte gUnknown_203CBE0 - thumb_func_end SetBgShakeOffsets - - thumb_func_start UpdateBgShake -UpdateBgShake: @ 0x081BE850 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _081BE880 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r2, r1, r2 - ldrh r1, [r2, #8] - movs r3, #8 - ldrsh r0, [r2, r3] - cmp r0, #0 - bne _081BE888 - ldr r0, _081BE884 - ldr r1, [r0] - ldrh r0, [r1] - rsbs r0, r0, #0 - strh r0, [r1] - movs r0, #2 - strh r0, [r2, #8] - bl SetBgShakeOffsets - b _081BE88C - .align 2, 0 -_081BE880: .4byte gUnknown_3005B60 -_081BE884: .4byte gUnknown_203CBE0 -_081BE888: - subs r0, r1, #1 - strh r0, [r2, #8] -_081BE88C: - pop {r0} - bx r0 - thumb_func_end UpdateBgShake - - thumb_func_start InitMirageTowerShake -InitMirageTowerShake: @ 0x081BE890 - push {r4, r5, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r1, _081BE8B8 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #8 - ldrsh r0, [r0, r1] - cmp r0, #6 - bls _081BE8AC - b _081BE9DC -_081BE8AC: - lsls r0, r0, #2 - ldr r1, _081BE8BC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081BE8B8: .4byte gUnknown_3005B60 -_081BE8BC: .4byte _081BE8C0 -_081BE8C0: @ jump table - .4byte _081BE8DC @ case 0 - .4byte _081BE8EC @ case 1 - .4byte _081BE924 @ case 2 - .4byte _081BE94C @ case 3 - .4byte _081BE994 @ case 4 - .4byte _081BE99C @ case 5 - .4byte _081BE9B8 @ case 6 -_081BE8DC: - bl FreeAllWindowBuffers - movs r0, #0 - movs r1, #7 - movs r2, #2 - bl SetBgAttribute - b _081BE9A0 -_081BE8EC: - ldr r4, _081BE91C - movs r0, #0x92 - lsls r0, r0, #4 - bl AllocZeroed - str r0, [r4] - ldr r4, _081BE920 - movs r0, #0x80 - lsls r0, r0, #4 - bl AllocZeroed - str r0, [r4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - b _081BE974 - .align 2, 0 -_081BE91C: .4byte gUnknown_203CBD0 -_081BE920: .4byte gUnknown_203CBD4 -_081BE924: - ldr r0, _081BE944 - ldr r4, _081BE948 - ldr r1, [r4] - movs r2, #0x92 - lsls r2, r2, #3 - bl CpuSet - ldr r1, [r4] - movs r2, #0x92 - lsls r2, r2, #4 - movs r0, #0 - movs r3, #0 - bl LoadBgTiles - b _081BE974 - .align 2, 0 -_081BE944: .4byte gUnknown_85E7430 -_081BE948: .4byte gUnknown_203CBD0 -_081BE94C: - ldr r0, _081BE988 - ldr r1, [r0] - movs r0, #0 - bl SetBgTilemapBuffer - ldr r1, _081BE98C - movs r0, #6 - str r0, [sp] - movs r0, #0xc - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #0 - movs r2, #0xc - movs r3, #0x1d - bl CopyToBgTilemapBufferRect_ChangePalette - movs r0, #0 - bl CopyBgTilemapBufferToVram -_081BE974: - ldr r1, _081BE990 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #8] - adds r1, #1 - strh r1, [r0, #8] - b _081BE9DC - .align 2, 0 -_081BE988: .4byte gUnknown_203CBD4 -_081BE98C: .4byte gUnknown_85E7D50 -_081BE990: .4byte gUnknown_3005B60 -_081BE994: - movs r0, #0 - bl ShowBg - b _081BE9A0 -_081BE99C: - bl SetInvisibleMirageTowerMetatiles -_081BE9A0: - ldr r0, _081BE9B4 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - b _081BE9DC - .align 2, 0 -_081BE9B4: .4byte gUnknown_3005B60 -_081BE9B8: - ldr r4, _081BE9E4 - movs r0, #4 - bl sub_08000BC8 - str r0, [r4] - movs r2, #0 - movs r1, #2 - strh r1, [r0] - strh r2, [r0, #2] - ldr r0, _081BE9E8 - movs r1, #0xa - bl CreateTask - adds r0, r5, #0 - bl DestroyTask - bl EnableBothScriptContexts -_081BE9DC: - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081BE9E4: .4byte gUnknown_203CBE0 -_081BE9E8: .4byte UpdateBgShake - thumb_func_end InitMirageTowerShake - - thumb_func_start DoMirageTowerDisintegration -DoMirageTowerDisintegration: @ 0x081BE9EC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - ldr r1, _081BEA24 - lsls r0, r0, #2 - add r0, sl - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r0, [r0, #8] - subs r0, #1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r6, r1, #0 - cmp r0, #7 - bls _081BEA18 - b _081BEC9E -_081BEA18: - lsls r0, r0, #2 - ldr r1, _081BEA28 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081BEA24: .4byte gUnknown_3005B60 -_081BEA28: .4byte _081BEA2C -_081BEA2C: @ jump table - .4byte _081BEA4C @ case 0 - .4byte _081BEC9E @ case 1 - .4byte _081BEA60 @ case 2 - .4byte _081BEC00 @ case 3 - .4byte _081BEC30 @ case 4 - .4byte _081BEC6C @ case 5 - .4byte _081BEC8C @ case 6 - .4byte _081BEC94 @ case 7 -_081BEA4C: - ldr r4, _081BEA5C - movs r0, #0xc0 - lsls r0, r0, #2 - bl AllocZeroed - str r0, [r4] - b _081BEC9E - .align 2, 0 -_081BEA5C: .4byte gUnknown_203CBDC -_081BEA60: - mov r1, sl - lsls r0, r1, #2 - adds r1, r0, r1 - lsls r1, r1, #3 - adds r2, r1, r6 - ldrh r3, [r2, #0xe] - movs r4, #0xe - ldrsh r1, [r2, r4] - str r0, [sp, #8] - cmp r1, #0x5f - bgt _081BEB26 - movs r1, #0xa - ldrsh r0, [r2, r1] - cmp r0, #1 - ble _081BEB18 - lsls r0, r3, #0x18 - lsrs r4, r0, #0x18 - movs r0, #0x30 - bl sub_08000BC8 - ldr r3, _081BEBF0 - ldr r1, [r3] - lsls r2, r4, #3 - adds r1, r2, r1 - str r0, [r1] - movs r5, #0 - adds r4, r2, #0 -_081BEA96: - ldr r0, [r3] - adds r0, r4, r0 - ldr r0, [r0] - adds r0, r0, r5 - strb r5, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0x2f - bls _081BEA96 - movs r5, #0 - ldr r7, _081BEBF0 - adds r6, r2, #0 -_081BEAB0: - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x30 - bl __umodsi3 - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x30 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, [r7] - adds r1, r6, r1 - ldr r1, [r1] - adds r0, r1, r0 - ldrb r2, [r0] - adds r1, r1, r4 - ldrb r1, [r1] - strb r1, [r0] - ldr r0, [r7] - adds r0, r6, r0 - ldr r0, [r0] - adds r0, r0, r4 - strb r2, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0x2f - bls _081BEAB0 - ldr r0, _081BEBF4 - ldr r1, [sp, #8] - add r1, sl - lsls r1, r1, #3 - adds r2, r1, r0 - ldrh r3, [r2, #0xe] - movs r4, #0xe - ldrsh r1, [r2, r4] - adds r6, r0, #0 - cmp r1, #0x5f - bgt _081BEB14 - adds r0, r3, #1 - strh r0, [r2, #0xe] -_081BEB14: - movs r0, #0 - strh r0, [r2, #0xa] -_081BEB18: - ldr r1, [sp, #8] - add r1, sl - lsls r1, r1, #3 - adds r1, r1, r6 - ldrh r0, [r1, #0xa] - adds r0, #1 - strh r0, [r1, #0xa] -_081BEB26: - ldr r0, [sp, #8] - add r0, sl - lsls r0, r0, #3 - adds r0, r0, r6 - ldrb r4, [r0, #0xe] - ldrb r5, [r0, #0xc] - lsls r0, r4, #0x10 - cmp r5, r4 - bhs _081BEBCE - str r0, [sp, #0xc] -_081BEB3A: - movs r6, #0 - adds r0, r5, #1 - str r0, [sp, #4] - lsls r4, r5, #3 - movs r2, #0x5f - subs r1, r2, r5 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #4 - mov sb, r0 -_081BEB4E: - ldr r0, _081BEBF8 - ldr r0, [r0] - ldr r7, _081BEBF0 - ldr r3, [r7] - adds r3, r4, r3 - ldrb r2, [r3, #4] - adds r1, r2, #1 - strb r1, [r3, #4] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r1, [r3] - adds r1, r1, r2 - ldrb r1, [r1] - add r1, sb - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r2, #1 - mov r8, r2 - str r2, [sp] - movs r2, #0 - movs r3, #0x30 - bl sub_081BEF54 - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - beq _081BEB4E - ldr r0, [r7] - adds r1, r4, r0 - ldrb r0, [r1, #4] - cmp r0, #0x2f - bls _081BEBC0 - ldr r0, [r1] - bl Free - ldr r0, [r7] - adds r0, r4, r0 - movs r1, #0 - str r1, [r0] - ldr r1, [sp, #8] - add r1, sl - lsls r1, r1, #3 - ldr r4, _081BEBF4 - adds r1, r1, r4 - ldrh r0, [r1, #0xc] - adds r0, #1 - strh r0, [r1, #0xc] - mov r0, r8 - ands r5, r0 - cmp r5, #1 - bne _081BEBC0 - ldr r0, _081BEBFC - ldr r1, [r0] - ldrh r0, [r1, #2] - subs r0, #1 - strh r0, [r1, #2] -_081BEBC0: - ldr r1, [sp, #4] - lsls r0, r1, #0x10 - lsrs r5, r0, #0x10 - ldr r2, [sp, #0xc] - lsrs r0, r2, #0x10 - cmp r5, r0 - blo _081BEB3A -_081BEBCE: - ldr r0, _081BEBF8 - ldr r1, [r0] - movs r2, #0x92 - lsls r2, r2, #4 - movs r0, #0 - movs r3, #0 - bl LoadBgTiles - ldr r0, _081BEBF0 - ldr r0, [r0] - movs r4, #0xbe - lsls r4, r4, #2 - adds r0, r0, r4 - ldrb r0, [r0, #4] - cmp r0, #0x2f - bhi _081BEC9E - b _081BECB0 - .align 2, 0 -_081BEBF0: .4byte gUnknown_203CBDC -_081BEBF4: .4byte gUnknown_3005B60 -_081BEBF8: .4byte gUnknown_203CBD0 -_081BEBFC: .4byte gUnknown_203CBE0 -_081BEC00: - movs r0, #0 - bl UnsetBgTilemapBuffer - ldr r0, _081BEC28 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _081BEC18 - bl DestroyTask -_081BEC18: - ldr r0, _081BEC2C - ldr r1, [r0] - movs r0, #0 - strh r0, [r1] - strh r0, [r1, #2] - bl SetBgShakeOffsets - b _081BEC9E - .align 2, 0 -_081BEC28: .4byte UpdateBgShake -_081BEC2C: .4byte gUnknown_203CBE0 -_081BEC30: - ldr r4, _081BEC5C - ldr r0, [r4] - bl Free - movs r5, #0 - str r5, [r4] - ldr r4, _081BEC60 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _081BEC64 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, _081BEC68 - ldr r0, [r4] - bl Free - str r5, [r4] - b _081BEC9E - .align 2, 0 -_081BEC5C: .4byte gUnknown_203CBE0 -_081BEC60: .4byte gUnknown_203CBDC -_081BEC64: .4byte gUnknown_203CBD0 -_081BEC68: .4byte gUnknown_203CBD4 -_081BEC6C: - movs r0, #0xc - movs r1, #2 - bl SetGpuRegBits - movs r0, #8 - movs r1, #0 - bl SetGpuRegBits - movs r0, #0 - movs r1, #7 - movs r2, #0 - bl SetBgAttribute - bl InitStandardTextBoxWindows - b _081BEC9E -_081BEC8C: - movs r0, #0 - bl ShowBg - b _081BEC9E -_081BEC94: - mov r0, sl - bl DestroyTask - bl EnableBothScriptContexts -_081BEC9E: - ldr r0, _081BECC0 - mov r2, sl - lsls r1, r2, #2 - add r1, sl - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] -_081BECB0: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081BECC0: .4byte gUnknown_3005B60 - thumb_func_end DoMirageTowerDisintegration - - thumb_func_start DoFossilFallAndSink -DoFossilFallAndSink: @ 0x081BECC4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x18 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r1, _081BECF4 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r0, [r0, #8] - subs r0, #1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #7 - bls _081BECE8 - b _081BEEC4 -_081BECE8: - lsls r0, r0, #2 - ldr r1, _081BECF8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081BECF4: .4byte gUnknown_3005B60 -_081BECF8: .4byte _081BECFC -_081BECFC: @ jump table - .4byte _081BED1C @ case 0 - .4byte _081BED50 @ case 1 - .4byte _081BED78 @ case 2 - .4byte _081BED8C @ case 3 - .4byte _081BEDE4 @ case 4 - .4byte _081BEE0C @ case 5 - .4byte _081BEE68 @ case 6 - .4byte _081BEEC0 @ case 7 -_081BED1C: - ldr r4, _081BED4C - movs r0, #0x14 - bl AllocZeroed - str r0, [r4] - movs r0, #0x80 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1] - movs r0, #8 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, #4] - movs r0, #0x80 - lsls r0, r0, #2 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, #0xc] - movs r0, #0 - strh r0, [r1, #0x10] - b _081BEEC4 - .align 2, 0 -_081BED4C: .4byte gUnknown_203CBD8 -_081BED50: - ldr r0, _081BED70 - ldr r0, [r0] - ldr r1, [r0] - movs r5, #0 - ldr r2, _081BED74 -_081BED5A: - adds r0, r5, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r1, #1 - cmp r5, #0x7f - bls _081BED5A - b _081BEEC4 - .align 2, 0 -_081BED70: .4byte gUnknown_203CBD8 -_081BED74: .4byte gUnknown_85E7E00 -_081BED78: - ldr r0, _081BED88 - ldr r0, [r0] - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [r1] - movs r0, #0x80 - strh r0, [r1, #4] - b _081BEEC4 - .align 2, 0 -_081BED88: .4byte gUnknown_203CBD8 -_081BED8C: - mov r1, sp - ldr r0, _081BEE00 - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - ldr r4, _081BEE04 - ldr r0, [r4] - ldr r0, [r0, #4] - str r0, [sp, #0xc] - movs r2, #0x10 - rsbs r2, r2, #0 - mov r0, sp - movs r1, #0x80 - movs r3, #1 - bl CreateSprite - ldr r1, [r4] - movs r3, #0 - strb r0, [r1, #8] - ldr r2, _081BEE08 - ldr r0, [r4] - ldrb r1, [r0, #8] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x28 - strb r3, [r0] - ldr r3, [r4] - ldrb r1, [r3, #8] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x20] - strh r1, [r0, #0x2e] - ldrb r1, [r3, #8] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #1 - strh r1, [r0, #0x30] -_081BEDE4: - movs r5, #0 - ldr r2, _081BEE04 -_081BEDE8: - ldr r0, [r2] - ldr r1, [r0, #0xc] - lsls r0, r5, #1 - adds r0, r0, r1 - strh r5, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0xff - bls _081BEDE8 - b _081BEEC4 - .align 2, 0 -_081BEE00: .4byte gUnknown_85E7FBC -_081BEE04: .4byte gUnknown_203CBD8 -_081BEE08: .4byte gUnknown_20205AC -_081BEE0C: - movs r5, #0 - movs r6, #0xff - ldr r0, _081BEE58 - mov r8, r0 -_081BEE14: - bl Random - adds r4, r6, #0 - ands r4, r0 - bl Random - adds r1, r6, #0 - ands r1, r0 - ldr r0, _081BEE5C - ldr r3, [r0] - ldr r0, [r3, #0xc] - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r2, [r1] - lsls r4, r4, #1 - adds r4, r4, r0 - ldrh r0, [r4] - strh r0, [r1] - strh r2, [r4] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, r8 - bls _081BEE14 - ldr r2, _081BEE60 - ldrb r1, [r3, #8] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, _081BEE64 - str r1, [r0] - b _081BEEC4 - .align 2, 0 -_081BEE58: .4byte 0x000001FF -_081BEE5C: .4byte gUnknown_203CBD8 -_081BEE60: .4byte gUnknown_20205AC -_081BEE64: .4byte sub_081BEEE4 -_081BEE68: - ldr r3, _081BEEB4 - ldr r5, _081BEEB8 - ldr r0, [r5] - ldrb r1, [r0, #8] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r2, r0, #2 - adds r0, r3, #0 - adds r0, #0x1c - adds r0, r2, r0 - ldr r1, [r0] - ldr r0, _081BEEBC - cmp r1, r0 - bne _081BEED4 - adds r0, r2, r3 - bl DestroySprite - ldr r0, [r5] - ldr r0, [r0, #0xc] - bl Free - ldr r0, [r5] - movs r4, #0 - str r4, [r0, #0xc] - ldr r0, [r0, #4] - bl Free - ldr r0, [r5] - str r4, [r0, #4] - ldr r0, [r0] - bl Free - ldr r0, [r5] - str r4, [r0] - bl Free - str r4, [r5] - b _081BEEC4 - .align 2, 0 -_081BEEB4: .4byte gUnknown_20205AC -_081BEEB8: .4byte gUnknown_203CBD8 -_081BEEBC: .4byte sub_08007140 -_081BEEC0: - bl EnableBothScriptContexts -_081BEEC4: - ldr r0, _081BEEE0 - lsls r1, r7, #2 - adds r1, r1, r7 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] -_081BEED4: - add sp, #0x18 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081BEEE0: .4byte gUnknown_3005B60 - thumb_func_end DoFossilFallAndSink - - thumb_func_start sub_081BEEE4 -sub_081BEEE4: @ 0x081BEEE4 - push {r4, r5, lr} - sub sp, #4 - adds r5, r0, #0 - ldr r0, _081BEEFC - ldr r0, [r0] - ldrh r0, [r0, #0x10] - cmp r0, #0xff - bls _081BEF04 - ldr r0, _081BEF00 - str r0, [r5, #0x1c] - b _081BEF4C - .align 2, 0 -_081BEEFC: .4byte gUnknown_203CBD8 -_081BEF00: .4byte sub_08007140 -_081BEF04: - ldrh r1, [r5, #0x22] - movs r2, #0x22 - ldrsh r0, [r5, r2] - cmp r0, #0x5f - ble _081BEF48 - movs r4, #0 -_081BEF10: - ldr r0, _081BEF44 - ldr r3, [r0] - ldr r0, [r3] - ldrh r1, [r3, #0x10] - adds r2, r1, #1 - strh r2, [r3, #0x10] - lsls r1, r1, #0x10 - ldr r2, [r3, #0xc] - lsrs r1, r1, #0xf - adds r1, r1, r2 - ldrh r1, [r1] - movs r2, #0 - str r2, [sp] - movs r3, #0x10 - bl sub_081BEF54 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #1 - bls _081BEF10 - adds r0, r5, #0 - movs r1, #0 - bl StartSpriteAnim - b _081BEF4C - .align 2, 0 -_081BEF44: .4byte gUnknown_203CBD8 -_081BEF48: - adds r0, r1, #1 - strh r0, [r5, #0x22] -_081BEF4C: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_081BEEE4 - - thumb_func_start sub_081BEF54 -sub_081BEF54: @ 0x081BEF54 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - str r0, [sp] - mov sl, r1 - adds r6, r2, #0 - mov r8, r3 - ldr r0, [sp, #0x28] - mov sb, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sl, r1 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov r0, r8 - lsls r0, r0, #0x18 - mov r8, r0 - lsrs r7, r0, #0x18 - mov r1, sb - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sb, r1 - mov r0, sl - adds r1, r7, #0 - bl __divsi3 - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r4, r5, #0x18 - ldr r3, _081BF01C - strh r4, [r3] - mov r0, sl - adds r1, r7, #0 - str r3, [sp, #4] - bl __modsi3 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r3, [sp, #4] - strh r2, [r3, #2] - movs r1, #7 - ands r4, r1 - ands r2, r1 - strh r4, [r3, #4] - strh r2, [r3, #6] - lsrs r0, r0, #0x1b - lsrs r5, r5, #0x1b - strh r0, [r3, #8] - strh r5, [r3, #0xa] - mov r1, r8 - lsrs r1, r1, #0x1b - lsls r1, r1, #6 - mov r8, r1 - mov r1, r8 - muls r1, r5, r1 - lsls r0, r0, #6 - adds r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - strh r1, [r3, #0xc] - lsls r4, r4, #3 - adds r4, r4, r2 - adds r1, r1, r4 - lsls r4, r1, #0x10 - lsrs r4, r4, #0x11 - strh r1, [r3, #0xe] - movs r1, #1 - mov r0, sl - ands r1, r0 - movs r2, #1 - eors r1, r2 - lsls r0, r1, #2 - lsls r6, r0 - eors r1, r2 - lsls r1, r1, #2 - movs r0, #0xf - lsls r0, r1 - orrs r6, r0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov r1, sb - lsls r1, r1, #5 - mov sb, r1 - add sb, r4 - ldr r1, [sp] - add r1, sb - ldrb r0, [r1] - ands r6, r0 - strb r6, [r1] - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081BF01C: .4byte gUnknown_30012A0 - thumb_func_end sub_081BEF54 - - thumb_func_start sub_081BF020 -sub_081BF020: @ 0x081BF020 - push {r4, lr} - sub sp, #4 - ldr r0, _081BF094 - bl DisableInterrupts - movs r0, #1 - bl EnableInterrupts - bl m4aSoundVSyncOff - movs r0, #0 - bl SetVBlankCallback - movs r4, #0 - str r4, [sp] - ldr r0, _081BF098 - mov r1, sp - str r1, [r0] - movs r1, #0xc0 - lsls r1, r1, #0x13 - str r1, [r0, #4] - ldr r1, _081BF09C - str r1, [r0, #8] - ldr r1, [r0, #8] - str r4, [sp] - mov r1, sp - str r1, [r0] - movs r1, #0xa0 - lsls r1, r1, #0x13 - str r1, [r0, #4] - ldr r1, _081BF0A0 - str r1, [r0, #8] - ldr r0, [r0, #8] - bl ResetSpriteData - bl ResetTasks - bl ScanlineEffect_Stop - ldr r0, _081BF0A4 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _081BF0A8 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #8] - ldr r0, _081BF0AC - bl SetMainCallback2 - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081BF094: .4byte 0x0000FFFF -_081BF098: .4byte 0x040000D4 -_081BF09C: .4byte 0x85006000 -_081BF0A0: .4byte 0x85000100 -_081BF0A4: .4byte sub_081BF0BC -_081BF0A8: .4byte gUnknown_3005B60 -_081BF0AC: .4byte sub_081BF0B0 - thumb_func_end sub_081BF020 - - thumb_func_start sub_081BF0B0 -sub_081BF0B0: @ 0x081BF0B0 - push {lr} - bl RunTasks - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081BF0B0 - - thumb_func_start sub_081BF0BC -sub_081BF0BC: @ 0x081BF0BC - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _081BF0E4 - adds r5, r0, r1 - movs r1, #0 - ldrsh r0, [r5, r1] - cmp r0, #0xa - bls _081BF0D8 - b _081BF272 -_081BF0D8: - lsls r0, r0, #2 - ldr r1, _081BF0E8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081BF0E4: .4byte gUnknown_3005B68 -_081BF0E8: .4byte _081BF0EC -_081BF0EC: @ jump table - .4byte _081BF118 @ case 0 - .4byte _081BF122 @ case 1 - .4byte _081BF140 @ case 2 - .4byte _081BF272 @ case 3 - .4byte _081BF15C @ case 4 - .4byte _081BF194 @ case 5 - .4byte _081BF200 @ case 6 - .4byte _081BF236 @ case 7 - .4byte _081BF23A @ case 8 - .4byte _081BF258 @ case 9 - .4byte _081BF262 @ case 10 -_081BF118: - movs r0, #5 - bl sub_081BAA20 - movs r0, #1 - b _081BF270 -_081BF122: - ldr r0, _081BF13C - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _081BF130 - b _081BF272 -_081BF130: - movs r0, #0 - bl sub_081BAA20 - movs r0, #2 - b _081BF270 - .align 2, 0 -_081BF13C: .4byte gUnknown_3002360 -_081BF140: - ldr r0, _081BF158 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _081BF14E - b _081BF272 -_081BF14E: - movs r0, #1 - bl sub_081BAA20 - movs r0, #4 - b _081BF270 - .align 2, 0 -_081BF158: .4byte gUnknown_3002360 -_081BF15C: - ldr r0, _081BF180 - ldr r1, _081BF184 - str r1, [r0] - ldr r2, _081BF188 - ldr r0, _081BF18C - subs r0, r0, r1 - str r0, [r2] - ldr r0, _081BF190 - str r1, [r0, #0x28] - adds r1, r0, #0 - adds r1, #0x4b - movs r4, #0 - strb r4, [r1] - bl MultiBootInit - strh r4, [r5, #2] - movs r0, #5 - b _081BF270 - .align 2, 0 -_081BF180: .4byte gUnknown_3006070 -_081BF184: .4byte gUnknown_8912454 -_081BF188: .4byte gUnknown_3006078 -_081BF18C: .4byte gUnknown_89158E0 -_081BF190: .4byte gUnknown_3006080 -_081BF194: - ldr r0, _081BF1DC - ldrb r6, [r0, #0x18] - adds r4, r0, #0 - cmp r6, #0 - bne _081BF1EC - ldr r0, [r4, #0x1c] - ldr r1, _081BF1E0 - ands r0, r1 - cmp r0, r1 - bne _081BF1EC - ldrh r0, [r5, #2] - adds r0, #1 - strh r0, [r5, #2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xb4 - ble _081BF1F0 - movs r0, #2 - bl sub_081BAA20 - ldr r0, _081BF1E4 - ldr r1, [r0] - adds r1, #0xc0 - ldr r0, _081BF1E8 - ldr r2, [r0] - subs r2, #0xc0 - movs r0, #1 - str r0, [sp] - adds r0, r4, #0 - movs r3, #4 - bl MultiBootStartMaster - strh r6, [r5, #2] - movs r0, #6 - b _081BF270 - .align 2, 0 -_081BF1DC: .4byte gUnknown_3006080 -_081BF1E0: .4byte 0x00020200 -_081BF1E4: .4byte gUnknown_3006070 -_081BF1E8: .4byte gUnknown_3006078 -_081BF1EC: - movs r0, #0 - strh r0, [r5, #2] -_081BF1F0: - adds r0, r4, #0 - bl MultiBootMain - ldr r1, _081BF1FC - str r0, [r1] - b _081BF272 - .align 2, 0 -_081BF1FC: .4byte gUnknown_3006074 -_081BF200: - ldr r4, _081BF220 - adds r0, r4, #0 - bl MultiBootMain - ldr r1, _081BF224 - str r0, [r1] - adds r0, r4, #0 - bl MultiBootCheckComplete - cmp r0, #0 - beq _081BF228 - movs r0, #3 - bl sub_081BAA20 - movs r0, #7 - b _081BF270 - .align 2, 0 -_081BF220: .4byte gUnknown_3006080 -_081BF224: .4byte gUnknown_3006074 -_081BF228: - ldrb r1, [r4, #0x1e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _081BF272 - movs r0, #9 - b _081BF270 -_081BF236: - movs r0, #8 - b _081BF270 -_081BF23A: - ldr r0, _081BF254 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081BF272 - adds r0, r2, #0 - bl DestroyTask - bl DoSoftReset - b _081BF272 - .align 2, 0 -_081BF254: .4byte gUnknown_3002360 -_081BF258: - movs r0, #4 - bl sub_081BAA20 - movs r0, #0xa - b _081BF270 -_081BF262: - ldr r0, _081BF27C - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081BF272 - movs r0, #0 -_081BF270: - strh r0, [r5] -_081BF272: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081BF27C: .4byte gUnknown_3002360 - thumb_func_end sub_081BF0BC - - thumb_func_start ShowPokemonSummaryScreen -ShowPokemonSummaryScreen: @ 0x081BF280 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r1 - adds r5, r2, #0 - adds r6, r3, #0 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - ldr r4, _081BF2D0 - ldr r0, _081BF2D4 - bl AllocZeroed - str r0, [r4] - ldr r1, _081BF2D8 - adds r0, r0, r1 - strb r7, [r0] - ldr r0, [r4] - mov r2, r8 - str r2, [r0] - adds r1, #2 - adds r0, r0, r1 - strb r5, [r0] - ldr r0, [r4] - ldr r2, _081BF2DC - adds r0, r0, r2 - strb r6, [r0] - ldr r1, [r4] - ldr r0, [sp, #0x18] - str r0, [r1, #4] - cmp r7, #2 - bne _081BF2E0 - subs r2, #2 - adds r1, r1, r2 - movs r0, #1 - b _081BF2E6 - .align 2, 0 -_081BF2D0: .4byte gUnknown_203CBE8 -_081BF2D4: .4byte 0x000040F8 -_081BF2D8: .4byte 0x000040BC -_081BF2DC: .4byte 0x000040BF -_081BF2E0: - ldr r0, _081BF2F8 - adds r1, r1, r0 - movs r0, #0 -_081BF2E6: - strb r0, [r1] - cmp r7, #1 - beq _081BF334 - cmp r7, #1 - bgt _081BF300 - cmp r7, #0 - beq _081BF310 - ldr r2, _081BF2FC - b _081BF382 - .align 2, 0 -_081BF2F8: .4byte 0x000040BD -_081BF2FC: .4byte gUnknown_203CBE8 -_081BF300: - cmp r7, #2 - beq _081BF310 - cmp r7, #3 - beq _081BF364 - ldr r2, _081BF30C - b _081BF382 - .align 2, 0 -_081BF30C: .4byte gUnknown_203CBE8 -_081BF310: - ldr r2, _081BF328 - ldr r0, [r2] - ldr r1, _081BF32C - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - ldr r0, [r2] - ldr r1, _081BF330 - adds r0, r0, r1 - movs r1, #3 - b _081BF380 - .align 2, 0 -_081BF328: .4byte gUnknown_203CBE8 -_081BF32C: .4byte 0x000040C1 -_081BF330: .4byte 0x000040C2 -_081BF334: - ldr r2, _081BF354 - ldr r0, [r2] - ldr r1, _081BF358 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - ldr r0, [r2] - ldr r1, _081BF35C - adds r0, r0, r1 - movs r1, #3 - strb r1, [r0] - ldr r0, [r2] - ldr r1, _081BF360 - adds r0, r0, r1 - strb r7, [r0] - b _081BF382 - .align 2, 0 -_081BF354: .4byte gUnknown_203CBE8 -_081BF358: .4byte 0x000040C1 -_081BF35C: .4byte 0x000040C2 -_081BF360: .4byte 0x000040C8 -_081BF364: - ldr r2, _081BF3B8 - ldr r0, [r2] - ldr r1, _081BF3BC - adds r0, r0, r1 - movs r1, #2 - strb r1, [r0] - ldr r0, [r2] - ldr r1, _081BF3C0 - adds r0, r0, r1 - strb r7, [r0] - ldr r0, [r2] - adds r1, #1 - adds r0, r0, r1 - movs r1, #1 -_081BF380: - strb r1, [r0] -_081BF382: - ldr r0, [r2] - ldr r2, _081BF3BC - adds r1, r0, r2 - ldrb r1, [r1] - subs r2, #1 - adds r0, r0, r2 - strb r1, [r0] - movs r0, #0xff - bl sub_081C4094 - ldr r0, _081BF3C4 - ldr r0, [r0] - cmp r0, #0 - bne _081BF3A6 - movs r0, #0 - movs r1, #0 - bl sub_0806ED30 -_081BF3A6: - ldr r0, _081BF3C8 - bl SetMainCallback2 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081BF3B8: .4byte gUnknown_203CBE8 -_081BF3BC: .4byte 0x000040C1 -_081BF3C0: .4byte 0x000040C2 -_081BF3C4: .4byte gUnknown_2024178 -_081BF3C8: .4byte SummaryScreen_LoadingCB2 - thumb_func_end ShowPokemonSummaryScreen - - thumb_func_start ShowSelectMovePokemonSummaryScreen -ShowSelectMovePokemonSummaryScreen: @ 0x081BF3CC - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #4 - mov r8, r0 - adds r4, r1, #0 - adds r5, r2, #0 - ldr r6, [sp, #0x18] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 - str r3, [sp] - movs r0, #3 - mov r1, r8 - adds r2, r4, #0 - adds r3, r5, #0 - bl ShowPokemonSummaryScreen - ldr r0, _081BF40C - ldr r0, [r0] - ldr r1, _081BF410 - adds r0, r0, r1 - strh r6, [r0] - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081BF40C: .4byte gUnknown_203CBE8 -_081BF410: .4byte 0x000040C4 - thumb_func_end ShowSelectMovePokemonSummaryScreen - - thumb_func_start CallBattlePyramidFunction -CallBattlePyramidFunction: @ 0x081BF414 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CallBattlePyramidFunction - - thumb_func_start SummaryScreen_VBlank -SummaryScreen_VBlank: @ 0x081BF430 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SummaryScreen_VBlank - - thumb_func_start SummaryScreen_LoadingCB2 -SummaryScreen_LoadingCB2: @ 0x081BF444 - push {lr} -_081BF446: - bl sub_081221F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081BF46A - bl SummaryScreen_LoadGraphics - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081BF46A - bl sub_081221B8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081BF446 -_081BF46A: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SummaryScreen_LoadingCB2 - - thumb_func_start SummaryScreen_LoadGraphics -SummaryScreen_LoadGraphics: @ 0x081BF470 - push {r4, lr} - sub sp, #4 - ldr r0, _081BF490 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0x18 - bls _081BF484 - b _081BF760 -_081BF484: - lsls r0, r0, #2 - ldr r1, _081BF494 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081BF490: .4byte gUnknown_3002360 -_081BF494: .4byte _081BF498 -_081BF498: @ jump table - .4byte _081BF4FC @ case 0 - .4byte _081BF50A @ case 1 - .4byte _081BF51C @ case 2 - .4byte _081BF530 @ case 3 - .4byte _081BF544 @ case 4 - .4byte _081BF54A @ case 5 - .4byte _081BF564 @ case 6 - .4byte _081BF580 @ case 7 - .4byte _081BF586 @ case 8 - .4byte _081BF598 @ case 9 - .4byte _081BF5B8 @ case 10 - .4byte _081BF5DC @ case 11 - .4byte _081BF5E2 @ case 12 - .4byte _081BF5F4 @ case 13 - .4byte _081BF60C @ case 14 - .4byte _081BF620 @ case 15 - .4byte _081BF638 @ case 16 - .4byte _081BF658 @ case 17 - .4byte _081BF694 @ case 18 - .4byte _081BF6B0 @ case 19 - .4byte _081BF6C0 @ case 20 - .4byte _081BF6D4 @ case 21 - .4byte _081BF6DA @ case 22 - .4byte _081BF710 @ case 23 - .4byte _081BF72C @ case 24 -_081BF4FC: - bl SetVBlankHBlankCallbacksToNull - bl ResetVramOamAndBgCntRegs - bl sub_08199640 - b _081BF746 -_081BF50A: - bl ScanlineEffect_Stop - ldr r1, _081BF518 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _081BF74E - .align 2, 0 -_081BF518: .4byte gUnknown_3002360 -_081BF51C: - bl ResetPaletteFade - ldr r2, _081BF52C - ldrb r0, [r2, #8] - movs r1, #0x80 - orrs r0, r1 - b _081BF744 - .align 2, 0 -_081BF52C: .4byte gUnknown_2037C74 -_081BF530: - bl ResetSpriteData - ldr r1, _081BF540 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _081BF74E - .align 2, 0 -_081BF540: .4byte gUnknown_3002360 -_081BF544: - bl FreeAllSpritePalettes - b _081BF746 -_081BF54A: - bl InitBGs - ldr r0, _081BF55C - ldr r0, [r0] - ldr r1, _081BF560 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0] - b _081BF746 - .align 2, 0 -_081BF55C: .4byte gUnknown_203CBE8 -_081BF560: .4byte 0x000040F0 -_081BF564: - bl SummaryScreen_DecompressGraphics - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081BF570 - b _081BF778 -_081BF570: - ldr r1, _081BF57C - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _081BF74E - .align 2, 0 -_081BF57C: .4byte gUnknown_3002360 -_081BF580: - bl ResetWindows - b _081BF746 -_081BF586: - bl DrawPagination - ldr r1, _081BF594 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _081BF74E - .align 2, 0 -_081BF594: .4byte gUnknown_3002360 -_081BF598: - ldr r4, _081BF5B0 - ldr r0, [r4] - adds r0, #0xc - bl CopyMonToSummaryStruct - ldr r0, [r4] - ldr r1, _081BF5B4 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0] - b _081BF746 - .align 2, 0 -_081BF5B0: .4byte gUnknown_203CBE8 -_081BF5B4: .4byte 0x000040F0 -_081BF5B8: - ldr r0, _081BF5D4 - ldr r0, [r0] - adds r0, #0xc - bl ExtractMonDataToSummaryStruct - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081BF5CA - b _081BF778 -_081BF5CA: - ldr r1, _081BF5D8 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _081BF74E - .align 2, 0 -_081BF5D4: .4byte gUnknown_203CBE8 -_081BF5D8: .4byte gUnknown_3002360 -_081BF5DC: - bl sub_081C1F1C - b _081BF746 -_081BF5E2: - bl sub_081C21CC - ldr r1, _081BF5F0 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _081BF74E - .align 2, 0 -_081BF5F0: .4byte gUnknown_3002360 -_081BF5F4: - ldr r0, _081BF604 - ldr r0, [r0] - ldr r1, _081BF608 - adds r0, r0, r1 - ldrb r0, [r0] - bl PrintPageSpecificText - b _081BF746 - .align 2, 0 -_081BF604: .4byte gUnknown_203CBE8 -_081BF608: .4byte 0x000040C0 -_081BF60C: - bl sub_081BFC7C - ldr r1, _081BF61C - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _081BF74E - .align 2, 0 -_081BF61C: .4byte gUnknown_3002360 -_081BF620: - ldr r0, _081BF630 - ldr r0, [r0] - ldr r1, _081BF634 - adds r0, r0, r1 - ldrb r0, [r0] - bl sub_081C23D4 - b _081BF746 - .align 2, 0 -_081BF630: .4byte gUnknown_203CBE8 -_081BF634: .4byte 0x000040C0 -_081BF638: - bl ResetSpriteIds - bl CreateMoveTypeIcons - ldr r0, _081BF650 - ldr r0, [r0] - ldr r1, _081BF654 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0] - b _081BF746 - .align 2, 0 -_081BF650: .4byte gUnknown_203CBE8 -_081BF654: .4byte 0x000040F0 -_081BF658: - ldr r4, _081BF688 - ldr r1, [r4] - adds r0, r1, #0 - adds r0, #0xc - ldr r2, _081BF68C - adds r1, r1, r2 - bl CreatePokemonSprite - ldr r1, [r4] - ldr r2, _081BF690 - adds r1, r1, r2 - strb r0, [r1] - ldr r1, [r4] - adds r2, r1, r2 - ldrb r0, [r2] - cmp r0, #0xff - bne _081BF67C - b _081BF778 -_081BF67C: - ldr r0, _081BF68C - adds r1, r1, r0 - movs r0, #0 - strh r0, [r1] - b _081BF746 - .align 2, 0 -_081BF688: .4byte gUnknown_203CBE8 -_081BF68C: .4byte 0x000040F0 -_081BF690: .4byte 0x000040D3 -_081BF694: - ldr r0, _081BF6A8 - ldr r0, [r0] - adds r0, #0xc - bl CreateMonMarkingsSprite - ldr r1, _081BF6AC - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _081BF74E - .align 2, 0 -_081BF6A8: .4byte gUnknown_203CBE8 -_081BF6AC: .4byte gUnknown_3002360 -_081BF6B0: - ldr r0, _081BF6BC - ldr r0, [r0] - adds r0, #0xc - bl CreateCaughtBallSprite - b _081BF746 - .align 2, 0 -_081BF6BC: .4byte gUnknown_203CBE8 -_081BF6C0: - bl sub_081C4290 - ldr r1, _081BF6D0 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _081BF74E - .align 2, 0 -_081BF6D0: .4byte gUnknown_3002360 -_081BF6D4: - bl SetTypeIcons - b _081BF746 -_081BF6DA: - ldr r0, _081BF6F4 - ldr r0, [r0] - ldr r1, _081BF6F8 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #3 - beq _081BF700 - ldr r0, _081BF6FC - movs r1, #0 - bl CreateTask - b _081BF746 - .align 2, 0 -_081BF6F4: .4byte gUnknown_203CBE8 -_081BF6F8: .4byte 0x000040BC -_081BF6FC: .4byte HandleInput -_081BF700: - ldr r0, _081BF70C - movs r1, #0 - bl CreateTask - b _081BF746 - .align 2, 0 -_081BF70C: .4byte sub_081C1050 -_081BF710: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - ldr r1, _081BF728 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - b _081BF74E - .align 2, 0 -_081BF728: .4byte gUnknown_3002360 -_081BF72C: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r2, _081BF758 - ldrb r1, [r2, #8] - movs r0, #0x7f - ands r0, r1 -_081BF744: - strb r0, [r2, #8] -_081BF746: - ldr r1, _081BF75C - movs r2, #0x87 - lsls r2, r2, #3 - adds r1, r1, r2 -_081BF74E: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _081BF778 - .align 2, 0 -_081BF758: .4byte gUnknown_2037C74 -_081BF75C: .4byte gUnknown_3002360 -_081BF760: - ldr r0, _081BF770 - bl SetVBlankCallback - ldr r0, _081BF774 - bl SetMainCallback2 - movs r0, #1 - b _081BF77A - .align 2, 0 -_081BF770: .4byte SummaryScreen_VBlank -_081BF774: .4byte CallBattlePyramidFunction -_081BF778: - movs r0, #0 -_081BF77A: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end SummaryScreen_LoadGraphics - - thumb_func_start InitBGs -InitBGs: @ 0x081BF784 - push {r4, lr} - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _081BF800 - movs r0, #0 - movs r2, #4 - bl InitBgsFromTemplates - ldr r4, _081BF804 - ldr r1, [r4] - ldr r0, _081BF808 - adds r1, r1, r0 - movs r0, #1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, _081BF80C - adds r1, r1, r0 - movs r0, #2 - bl SetBgTilemapBuffer - ldr r1, [r4] - adds r1, #0xbc - movs r0, #3 - bl SetBgTilemapBuffer - bl ResetAllBgsCoordinates - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #3 - bl schedule_bg_copy_tilemap_to_vram - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081BF800: .4byte gUnknown_85ECE88 -_081BF804: .4byte gUnknown_203CBE8 -_081BF808: .4byte 0x000020BC -_081BF80C: .4byte 0x000010BC - thumb_func_end InitBGs - - thumb_func_start SummaryScreen_DecompressGraphics -SummaryScreen_DecompressGraphics: @ 0x081BF810 - push {r4, lr} - sub sp, #4 - ldr r1, _081BF834 - ldr r0, [r1] - ldr r2, _081BF838 - adds r0, r0, r2 - movs r2, #0 - ldrsh r0, [r0, r2] - adds r4, r1, #0 - cmp r0, #0xc - bls _081BF828 - b _081BF9EC -_081BF828: - lsls r0, r0, #2 - ldr r1, _081BF83C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081BF834: .4byte gUnknown_203CBE8 -_081BF838: .4byte 0x000040F0 -_081BF83C: .4byte _081BF840 -_081BF840: @ jump table - .4byte _081BF874 @ case 0 - .4byte _081BF890 @ case 1 - .4byte _081BF8C0 @ case 2 - .4byte _081BF8D8 @ case 3 - .4byte _081BF8F0 @ case 4 - .4byte _081BF908 @ case 5 - .4byte _081BF920 @ case 6 - .4byte _081BF950 @ case 7 - .4byte _081BF95C @ case 8 - .4byte _081BF978 @ case 9 - .4byte _081BF984 @ case 10 - .4byte _081BF9A0 @ case 11 - .4byte _081BF9C4 @ case 12 -_081BF874: - bl reset_temp_tile_data_buffers - ldr r1, _081BF88C - movs r0, #0 - str r0, [sp] - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - b _081BF9A6 - .align 2, 0 -_081BF88C: .4byte gUnknown_8D97DD0 -_081BF890: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081BF89E - b _081BF9EC -_081BF89E: - ldr r0, _081BF8B4 - ldr r4, _081BF8B8 - ldr r1, [r4] - adds r1, #0xbc - bl sub_08034370 - ldr r1, [r4] - ldr r2, _081BF8BC - adds r1, r1, r2 - b _081BF9AE - .align 2, 0 -_081BF8B4: .4byte gUnknown_8D9888C -_081BF8B8: .4byte gUnknown_203CBE8 -_081BF8BC: .4byte 0x000040F0 -_081BF8C0: - ldr r0, _081BF8D0 - ldr r1, [r4] - ldr r2, _081BF8D4 - adds r1, r1, r2 - bl sub_08034370 - ldr r1, [r4] - b _081BF9AA - .align 2, 0 -_081BF8D0: .4byte gUnknown_8D98E8C -_081BF8D4: .4byte 0x000008BC -_081BF8D8: - ldr r0, _081BF8E8 - ldr r1, [r4] - ldr r2, _081BF8EC - adds r1, r1, r2 - bl sub_08034370 - ldr r1, [r4] - b _081BF9AA - .align 2, 0 -_081BF8E8: .4byte gUnknown_8D98A44 -_081BF8EC: .4byte 0x000018BC -_081BF8F0: - ldr r0, _081BF900 - ldr r1, [r4] - ldr r2, _081BF904 - adds r1, r1, r2 - bl sub_08034370 - ldr r1, [r4] - b _081BF9AA - .align 2, 0 -_081BF900: .4byte gUnknown_8D98BA8 -_081BF904: .4byte 0x000028BC -_081BF908: - ldr r0, _081BF918 - ldr r1, [r4] - ldr r2, _081BF91C - adds r1, r1, r2 - bl sub_08034370 - ldr r1, [r4] - b _081BF9AA - .align 2, 0 -_081BF918: .4byte gUnknown_8D98D14 -_081BF91C: .4byte 0x000038BC -_081BF920: - ldr r0, _081BF940 - movs r2, #0x80 - lsls r2, r2, #1 - movs r1, #0 - bl LoadCompressedPalette - ldr r0, _081BF944 - movs r1, #0x81 - movs r2, #0x1e - bl LoadPalette - ldr r0, _081BF948 - ldr r1, [r0] - ldr r2, _081BF94C - adds r1, r1, r2 - b _081BF9AE - .align 2, 0 -_081BF940: .4byte gUnknown_8D9879C -_081BF944: .4byte gUnknown_8D85604 -_081BF948: .4byte gUnknown_203CBE8 -_081BF94C: .4byte 0x000040F0 -_081BF950: - ldr r0, _081BF958 - bl LoadCompressedSpriteSheet - b _081BF9A6 - .align 2, 0 -_081BF958: .4byte gUnknown_85ED40C -_081BF95C: - ldr r0, _081BF96C - bl LoadCompressedSpriteSheet - ldr r0, _081BF970 - ldr r1, [r0] - ldr r2, _081BF974 - adds r1, r1, r2 - b _081BF9AE - .align 2, 0 -_081BF96C: .4byte gUnknown_85ED4C4 -_081BF970: .4byte gUnknown_203CBE8 -_081BF974: .4byte 0x000040F0 -_081BF978: - ldr r0, _081BF980 - bl LoadCompressedSpriteSheet - b _081BF9A6 - .align 2, 0 -_081BF980: .4byte gUnknown_85ED548 -_081BF984: - ldr r0, _081BF994 - bl LoadCompressedSpritePalette - ldr r0, _081BF998 - ldr r1, [r0] - ldr r2, _081BF99C - adds r1, r1, r2 - b _081BF9AE - .align 2, 0 -_081BF994: .4byte gUnknown_85ED550 -_081BF998: .4byte gUnknown_203CBE8 -_081BF99C: .4byte 0x000040F0 -_081BF9A0: - ldr r0, _081BF9B8 - bl LoadCompressedSpritePalette -_081BF9A6: - ldr r0, _081BF9BC - ldr r1, [r0] -_081BF9AA: - ldr r0, _081BF9C0 - adds r1, r1, r0 -_081BF9AE: - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _081BF9EC - .align 2, 0 -_081BF9B8: .4byte gUnknown_85ED4CC -_081BF9BC: .4byte gUnknown_203CBE8 -_081BF9C0: .4byte 0x000040F0 -_081BF9C4: - ldr r0, _081BF9E0 - movs r1, #0xe8 - lsls r1, r1, #1 - movs r2, #0x60 - bl LoadCompressedPalette - ldr r0, _081BF9E4 - ldr r0, [r0] - ldr r1, _081BF9E8 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0] - movs r0, #1 - b _081BF9EE - .align 2, 0 -_081BF9E0: .4byte gUnknown_8D97C54 -_081BF9E4: .4byte gUnknown_203CBE8 -_081BF9E8: .4byte 0x000040F0 -_081BF9EC: - movs r0, #0 -_081BF9EE: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end SummaryScreen_DecompressGraphics - - thumb_func_start CopyMonToSummaryStruct -CopyMonToSummaryStruct: @ 0x081BF9F8 - push {r4, lr} - adds r3, r0, #0 - ldr r0, _081BFA24 - ldr r1, [r0] - ldr r2, _081BFA28 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _081BFA30 - ldr r2, [r1] - ldr r4, _081BFA2C - adds r0, r1, r4 - ldrb r1, [r0] - movs r0, #0x64 - muls r1, r0, r1 - adds r1, r1, r2 - adds r0, r3, #0 - movs r2, #0x64 - bl memcpy - b _081BFA46 - .align 2, 0 -_081BFA24: .4byte gUnknown_203CBE8 -_081BFA28: .4byte 0x000040BD -_081BFA2C: .4byte 0x000040BE -_081BFA30: - ldr r0, [r1] - ldr r2, _081BFA4C - adds r1, r1, r2 - ldrb r2, [r1] - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #4 - adds r0, r0, r1 - adds r1, r3, #0 - bl BoxMonToMon -_081BFA46: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081BFA4C: .4byte 0x000040BE - thumb_func_end CopyMonToSummaryStruct - - thumb_func_start ExtractMonDataToSummaryStruct -ExtractMonDataToSummaryStruct: @ 0x081BFA50 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - ldr r0, _081BFA78 - ldr r6, [r0] - adds r5, r6, #0 - adds r5, #0x70 - ldr r1, _081BFA7C - adds r0, r6, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #1 - beq _081BFAF8 - cmp r0, #1 - bgt _081BFA80 - cmp r0, #0 - beq _081BFA8C - b _081BFC4A - .align 2, 0 -_081BFA78: .4byte gUnknown_203CBE8 -_081BFA7C: .4byte 0x000040F0 -_081BFA80: - cmp r0, #2 - beq _081BFB36 - cmp r0, #3 - bne _081BFA8A - b _081BFBF4 -_081BFA8A: - b _081BFC4A -_081BFA8C: - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - strh r0, [r5] - adds r0, r4, #0 - movs r1, #0x41 - bl GetMonData - strh r0, [r5, #2] - adds r0, r4, #0 - movs r1, #0x19 - bl GetMonData - str r0, [r5, #0x10] - adds r0, r4, #0 - movs r1, #0x38 - bl GetMonData - strb r0, [r5, #5] - adds r0, r4, #0 - movs r1, #0x2e - bl GetMonData - strb r0, [r5, #8] - adds r0, r4, #0 - movs r1, #0xc - bl GetMonData - strh r0, [r5, #0x2e] - adds r0, r4, #0 - movs r1, #0 - bl GetMonData - str r0, [r5, #0xc] - adds r0, r4, #0 - movs r1, #4 - bl GetMonData - adds r1, r6, #0 - adds r1, #0xa5 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081BFAEC - movs r0, #1 - strb r0, [r5, #4] - b _081BFC58 -_081BFAEC: - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - strb r0, [r5, #4] - b _081BFC58 -_081BFAF8: - movs r5, #0 - adds r7, r6, #0 - adds r7, #0x8c - movs r0, #0xa4 - adds r0, r0, r6 - mov r8, r0 - adds r6, #0x84 -_081BFB06: - adds r1, r5, #0 - adds r1, #0xd - adds r0, r4, #0 - bl GetMonData - strh r0, [r6] - adds r1, r5, #0 - adds r1, #0x11 - adds r0, r4, #0 - bl GetMonData - adds r1, r7, r5 - strb r0, [r1] - adds r6, #2 - adds r5, #1 - cmp r5, #3 - bls _081BFB06 - adds r0, r4, #0 - movs r1, #0x15 - bl GetMonData - mov r1, r8 - strb r0, [r1] - b _081BFC58 -_081BFB36: - ldr r1, [r6] - ldr r0, _081BFB98 - cmp r1, r0 - beq _081BFB48 - ldr r1, _081BFB9C - adds r0, r6, r1 - ldrb r0, [r0] - cmp r0, #2 - bne _081BFBA0 -_081BFB48: - adds r0, r4, #0 - bl GetNature - adds r1, r6, #0 - adds r1, #0xa3 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - strh r0, [r5, #0x20] - adds r0, r4, #0 - movs r1, #0x3a - bl GetMonData - strh r0, [r5, #0x22] - adds r0, r4, #0 - movs r1, #0x3b - bl GetMonData - strh r0, [r5, #0x24] - adds r0, r4, #0 - movs r1, #0x3c - bl GetMonData - strh r0, [r5, #0x26] - adds r0, r4, #0 - movs r1, #0x3e - bl GetMonData - strh r0, [r5, #0x28] - adds r0, r4, #0 - movs r1, #0x3f - bl GetMonData - strh r0, [r5, #0x2a] - adds r0, r4, #0 - movs r1, #0x3d - b _081BFBEC - .align 2, 0 -_081BFB98: .4byte gUnknown_2024190 -_081BFB9C: .4byte 0x000040BC -_081BFBA0: - adds r0, r4, #0 - bl GetNature - adds r1, r6, #0 - adds r1, #0xa3 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x39 - bl GetMonData - strh r0, [r5, #0x20] - adds r0, r4, #0 - movs r1, #0x3a - bl GetMonData - strh r0, [r5, #0x22] - adds r0, r4, #0 - movs r1, #0x54 - bl GetMonData - strh r0, [r5, #0x24] - adds r0, r4, #0 - movs r1, #0x55 - bl GetMonData - strh r0, [r5, #0x26] - adds r0, r4, #0 - movs r1, #0x57 - bl GetMonData - strh r0, [r5, #0x28] - adds r0, r4, #0 - movs r1, #0x58 - bl GetMonData - strh r0, [r5, #0x2a] - adds r0, r4, #0 - movs r1, #0x56 -_081BFBEC: - bl GetMonData - strh r0, [r5, #0x2c] - b _081BFC58 -_081BFBF4: - adds r2, r6, #0 - adds r2, #0xa6 - adds r0, r4, #0 - movs r1, #7 - bl GetMonData - adds r0, r4, #0 - bl GetMonAilment - strb r0, [r5, #7] - adds r0, r4, #0 - movs r1, #0x31 - bl GetMonData - adds r1, r6, #0 - adds r1, #0xa2 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #1 - bl GetMonData - str r0, [r5, #0x48] - adds r0, r4, #0 - movs r1, #0x23 - bl GetMonData - strb r0, [r5, #9] - adds r0, r4, #0 - movs r1, #0x24 - bl GetMonData - strb r0, [r5, #0xa] - adds r0, r4, #0 - movs r1, #0x25 - bl GetMonData - strb r0, [r5, #0xb] - adds r0, r4, #0 - movs r1, #0x20 - bl GetMonData - strh r0, [r5, #0x30] - b _081BFC58 -_081BFC4A: - adds r0, r4, #0 - movs r1, #0x52 - bl GetMonData - strb r0, [r5, #6] - movs r0, #1 - b _081BFC68 -_081BFC58: - ldr r0, _081BFC74 - ldr r1, [r0] - ldr r0, _081BFC78 - adds r1, r1, r0 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - movs r0, #0 -_081BFC68: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081BFC74: .4byte gUnknown_203CBE8 -_081BFC78: .4byte 0x000040F0 - thumb_func_end ExtractMonDataToSummaryStruct - - thumb_func_start sub_081BFC7C -sub_081BFC7C: @ 0x081BFC7C - push {r4, r5, r6, lr} - ldr r6, _081BFCA8 - ldr r2, [r6] - ldr r1, _081BFCAC - adds r0, r2, r1 - ldrb r0, [r0] - subs r0, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _081BFCB0 - movs r0, #0 - movs r1, #0xff - bl sub_081C16D8 - movs r0, #0 - movs r1, #0xff - movs r2, #0 - bl sub_081C1830 - b _081BFD0C - .align 2, 0 -_081BFCA8: .4byte gUnknown_203CBE8 -_081BFCAC: .4byte 0x000040C0 -_081BFCB0: - ldr r1, _081BFD24 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r1, r1, #1 - adds r0, r2, #0 - adds r0, #0x84 - adds r0, r0, r1 - ldrh r0, [r0] - bl DrawContestMoveHearts - ldr r0, [r6] - ldr r5, _081BFD28 - adds r0, r0, r5 - movs r1, #3 - movs r2, #0 - bl sub_081C1AC8 - ldr r0, [r6] - ldr r4, _081BFD2C - adds r0, r0, r4 - movs r1, #1 - movs r2, #0 - bl sub_081C1AC8 - ldr r1, [r6] - adds r1, r1, r4 - movs r0, #1 - bl SetBgTilemapBuffer - ldr r1, [r6] - adds r1, r1, r5 - movs r0, #2 - bl SetBgTilemapBuffer - movs r1, #0x80 - lsls r1, r1, #9 - movs r0, #2 - movs r2, #1 - bl ChangeBgX - movs r0, #0x13 - bl ClearWindowTilemap - movs r0, #0xd - bl ClearWindowTilemap -_081BFD0C: - ldr r0, _081BFD30 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0x77 - ldrb r0, [r0] - cmp r0, #0 - bne _081BFD34 - movs r0, #0 - movs r1, #0xff - bl sub_081C19A8 - b _081BFD4A - .align 2, 0 -_081BFD24: .4byte 0x000040C6 -_081BFD28: .4byte 0x000020BC -_081BFD2C: .4byte 0x000030BC -_081BFD30: .4byte gUnknown_203CBE8 -_081BFD34: - ldr r2, _081BFD60 - adds r0, r1, r2 - ldrb r0, [r0] - subs r0, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _081BFD4A - movs r0, #0xd - bl PutWindowTilemap -_081BFD4A: - bl LimitEggSummaryPageDisplay - ldr r0, _081BFD64 - ldr r0, [r0] - adds r0, #0xc - bl DrawPokerusCuredSymbol - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081BFD60: .4byte 0x000040C0 -_081BFD64: .4byte gUnknown_203CBE8 - thumb_func_end sub_081BFC7C - - thumb_func_start sub_081BFD68 -sub_081BFD68: @ 0x081BFD68 - push {lr} - bl FreeAllWindowBuffers - ldr r0, _081BFD7C - ldr r0, [r0] - bl Free - pop {r0} - bx r0 - .align 2, 0 -_081BFD7C: .4byte gUnknown_203CBE8 - thumb_func_end sub_081BFD68 - - thumb_func_start BeginCloseSummaryScreen -BeginCloseSummaryScreen: @ 0x081BFD80 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _081BFDB0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081BFDB4 - str r1, [r0] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081BFDB0: .4byte gUnknown_3005B60 -_081BFDB4: .4byte CloseSummaryScreen - thumb_func_end BeginCloseSummaryScreen - - thumb_func_start CloseSummaryScreen -CloseSummaryScreen: @ 0x081BFDB8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - bl sub_081221F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081BFE20 - ldr r0, _081BFE28 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081BFE20 - ldr r4, _081BFE2C - ldr r0, [r4] - ldr r0, [r0, #4] - bl SetMainCallback2 - ldr r1, _081BFE30 - ldr r0, [r4] - ldr r2, _081BFE34 - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r1] - bl SummaryScreen_DestroyUnknownTask - bl ResetSpriteData - bl FreeAllSpritePalettes - bl sub_080A2F64 - ldr r0, _081BFE38 - ldr r1, _081BFE3C - movs r2, #0x80 - lsls r2, r2, #1 - bl m4aMPlayVolumeControl - ldr r0, _081BFE40 - ldr r0, [r0] - cmp r0, #0 - bne _081BFE16 - movs r0, #0 - bl sub_0806EF00 -_081BFE16: - bl sub_081BFD68 - adds r0, r5, #0 - bl DestroyTask -_081BFE20: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081BFE28: .4byte gUnknown_2037C74 -_081BFE2C: .4byte gUnknown_203CBE8 -_081BFE30: .4byte gUnknown_203CBEC -_081BFE34: .4byte 0x000040BE -_081BFE38: .4byte gUnknown_30074D0 -_081BFE3C: .4byte 0x0000FFFF -_081BFE40: .4byte gUnknown_2024178 - thumb_func_end CloseSummaryScreen - - thumb_func_start HandleInput -HandleInput: @ 0x081BFE44 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl sub_081221F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081BFF32 - ldr r0, _081BFE7C - ldrb r1, [r0, #7] - movs r2, #0x80 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _081BFF32 - ldr r5, _081BFE80 - ldrh r1, [r5, #0x2e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _081BFE84 - movs r1, #1 - rsbs r1, r1, #0 - adds r0, r4, #0 - bl ChangeSummaryPokemon - b _081BFF32 - .align 2, 0 -_081BFE7C: .4byte gUnknown_2037C74 -_081BFE80: .4byte gUnknown_3002360 -_081BFE84: - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _081BFE96 - adds r0, r4, #0 - movs r1, #1 - bl ChangeSummaryPokemon - b _081BFF32 -_081BFE96: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _081BFEAA - bl GetLRKeysState - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081BFEB6 -_081BFEAA: - movs r1, #1 - rsbs r1, r1, #0 - adds r0, r4, #0 - bl ChangePage - b _081BFF32 -_081BFEB6: - ldrh r1, [r5, #0x2e] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _081BFECC - bl GetLRKeysState - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _081BFED6 -_081BFECC: - adds r0, r4, #0 - movs r1, #1 - bl ChangePage - b _081BFF32 -_081BFED6: - ldrh r1, [r5, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081BFF1A - ldr r0, _081BFF04 - ldr r0, [r0] - ldr r1, _081BFF08 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - beq _081BFF32 - cmp r0, #0 - bne _081BFF0C - bl StopPokemonAnimations - movs r0, #5 - bl sub_080A306C - adds r0, r4, #0 - bl BeginCloseSummaryScreen - b _081BFF32 - .align 2, 0 -_081BFF04: .4byte gUnknown_203CBE8 -_081BFF08: .4byte 0x000040C0 -_081BFF0C: - movs r0, #5 - bl sub_080A306C - adds r0, r4, #0 - bl sub_081C077C - b _081BFF32 -_081BFF1A: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081BFF32 - bl StopPokemonAnimations - movs r0, #5 - bl sub_080A306C - adds r0, r4, #0 - bl BeginCloseSummaryScreen -_081BFF32: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end HandleInput - - thumb_func_start ChangeSummaryPokemon -ChangeSummaryPokemon: @ 0x081BFF38 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - adds r4, r5, #0 - ldr r1, _081BFF7C - ldr r3, [r1] - ldr r2, _081BFF80 - adds r0, r3, r2 - ldrb r0, [r0] - adds r6, r1, #0 - cmp r0, #0 - bne _081C0022 - ldr r1, _081BFF84 - adds r0, r3, r1 - ldrb r2, [r0] - cmp r2, #1 - bne _081BFFAC - adds r1, #3 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _081BFF88 - lsls r1, r5, #0x18 - asrs r1, r1, #0x18 - movs r4, #2 - eors r1, r2 - rsbs r0, r1, #0 - orrs r0, r1 - asrs r0, r0, #0x1f - ands r4, r0 - b _081BFF90 - .align 2, 0 -_081BFF7C: .4byte gUnknown_203CBE8 -_081BFF80: .4byte 0x000040C3 -_081BFF84: .4byte 0x000040BD -_081BFF88: - movs r4, #3 - cmp r5, #1 - bne _081BFF90 - movs r4, #1 -_081BFF90: - ldr r2, [r6] - ldr r0, [r2] - ldr r3, _081BFFA8 - adds r1, r2, r3 - ldrb r1, [r1] - adds r3, #1 - adds r2, r2, r3 - ldrb r2, [r2] - adds r3, r4, #0 - bl sub_080D19EC - b _081BFFCA - .align 2, 0 -_081BFFA8: .4byte 0x000040BE -_081BFFAC: - bl IsMultiBattle - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081BFFC2 - lsls r0, r5, #0x18 - asrs r0, r0, #0x18 - bl sub_081C02E8 - b _081BFFCA -_081BFFC2: - lsls r0, r4, #0x18 - asrs r0, r0, #0x18 - bl sub_081C022C -_081BFFCA: - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #0x18 - asrs r0, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _081C0022 - movs r0, #5 - bl sub_080A306C - ldr r5, _081C0028 - ldr r0, [r5] - adds r0, #0x77 - ldrb r0, [r0] - cmp r0, #0 - beq _081C0008 - movs r0, #2 - movs r1, #1 - bl SetSpriteInvisibility - movs r0, #0xd - bl ClearWindowTilemap - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #0 - movs r1, #2 - bl sub_081C19A8 -_081C0008: - ldr r0, [r5] - ldr r1, _081C002C - adds r0, r0, r1 - movs r2, #0 - strb r4, [r0] - ldr r1, _081C0030 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r2, [r0, #8] - ldr r1, _081C0034 - str r1, [r0] -_081C0022: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C0028: .4byte gUnknown_203CBE8 -_081C002C: .4byte 0x000040BE -_081C0030: .4byte gUnknown_3005B60 -_081C0034: .4byte sub_081C0038 - thumb_func_end ChangeSummaryPokemon - - thumb_func_start sub_081C0038 -sub_081C0038: @ 0x081C0038 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r4, r1, #3 - ldr r6, _081C005C - adds r5, r4, r6 - movs r1, #0 - ldrsh r0, [r5, r1] - cmp r0, #0xc - bls _081C0052 - b _081C01F0 -_081C0052: - lsls r0, r0, #2 - ldr r1, _081C0060 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081C005C: .4byte gUnknown_3005B68 -_081C0060: .4byte _081C0064 -_081C0064: @ jump table - .4byte _081C0098 @ case 0 - .4byte _081C009E @ case 1 - .4byte _081C00B4 @ case 2 - .4byte _081C00DC @ case 3 - .4byte _081C00FC @ case 4 - .4byte _081C0114 @ case 5 - .4byte _081C0124 @ case 6 - .4byte _081C0134 @ case 7 - .4byte _081C015C @ case 8 - .4byte _081C01A0 @ case 9 - .4byte _081C01A6 @ case 10 - .4byte _081C01AC @ case 11 - .4byte _081C01C8 @ case 12 -_081C0098: - bl sub_080A2F64 - b _081C0220 -_081C009E: - bl SummaryScreen_DestroyUnknownTask - ldr r0, _081C00AC - ldr r0, [r0] - ldr r1, _081C00B0 - b _081C00BA - .align 2, 0 -_081C00AC: .4byte gUnknown_203CBE8 -_081C00B0: .4byte 0x000040D3 -_081C00B4: - ldr r0, _081C00D0 - ldr r0, [r0] - ldr r1, _081C00D4 -_081C00BA: - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _081C00D8 - adds r0, r0, r1 - bl DestroySpriteAndFreeResources - b _081C0220 - .align 2, 0 -_081C00D0: .4byte gUnknown_203CBE8 -_081C00D4: .4byte 0x000040D4 -_081C00D8: .4byte gUnknown_20205AC -_081C00DC: - ldr r4, _081C00F4 - ldr r0, [r4] - adds r0, #0xc - bl CopyMonToSummaryStruct - ldr r0, [r4] - ldr r1, _081C00F8 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0] - b _081C0220 - .align 2, 0 -_081C00F4: .4byte gUnknown_203CBE8 -_081C00F8: .4byte 0x000040F0 -_081C00FC: - ldr r0, _081C0110 - ldr r0, [r0] - adds r0, #0xc - bl ExtractMonDataToSummaryStruct - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081C010E - b _081C0226 -_081C010E: - b _081C0220 - .align 2, 0 -_081C0110: .4byte gUnknown_203CBE8 -_081C0114: - ldr r0, _081C0120 - ldr r0, [r0] - adds r0, #0xc - bl RemoveAndCreateMonMarkingsSprite - b _081C0220 - .align 2, 0 -_081C0120: .4byte gUnknown_203CBE8 -_081C0124: - ldr r0, _081C0130 - ldr r0, [r0] - adds r0, #0xc - bl CreateCaughtBallSprite - b _081C0220 - .align 2, 0 -_081C0130: .4byte gUnknown_203CBE8 -_081C0134: - ldr r4, _081C0158 - ldr r0, [r4] - adds r0, #0x77 - ldrb r0, [r0] - cmp r0, #0 - beq _081C014A - movs r1, #2 - rsbs r1, r1, #0 - movs r0, #0xa - bl sub_081C19A8 -_081C014A: - ldr r0, [r4] - adds r0, #0xc - bl DrawPokerusCuredSymbol - movs r0, #0 - strh r0, [r5, #2] - b _081C0220 - .align 2, 0 -_081C0158: .4byte gUnknown_203CBE8 -_081C015C: - ldr r4, _081C0194 - ldr r0, [r4] - adds r0, #0xc - adds r1, r5, #2 - bl CreatePokemonSprite - ldr r1, [r4] - ldr r2, _081C0198 - adds r1, r1, r2 - strb r0, [r1] - ldr r0, [r4] - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, #0xff - beq _081C0226 - ldr r2, _081C019C - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #1 - strh r1, [r0, #0x32] - bl CheckExperienceProgressBar - movs r0, #0 - strh r0, [r5, #2] - b _081C0220 - .align 2, 0 -_081C0194: .4byte gUnknown_203CBE8 -_081C0198: .4byte 0x000040D3 -_081C019C: .4byte gUnknown_20205AC -_081C01A0: - bl SetTypeIcons - b _081C0220 -_081C01A6: - bl sub_081C1F1C - b _081C0220 -_081C01AC: - ldr r0, _081C01C0 - ldr r0, [r0] - ldr r1, _081C01C4 - adds r0, r0, r1 - ldrb r0, [r0] - bl PrintPageSpecificText - bl LimitEggSummaryPageDisplay - b _081C0220 - .align 2, 0 -_081C01C0: .4byte gUnknown_203CBE8 -_081C01C4: .4byte 0x000040C0 -_081C01C8: - ldr r2, _081C01E4 - ldr r0, _081C01E8 - ldr r0, [r0] - ldr r1, _081C01EC - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0 - strh r1, [r0, #0x32] - b _081C0220 - .align 2, 0 -_081C01E4: .4byte gUnknown_20205AC -_081C01E8: .4byte gUnknown_203CBE8 -_081C01EC: .4byte 0x000040D3 -_081C01F0: - bl sub_081221F8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081C0226 - ldr r0, _081C0218 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _081C0226 - strh r0, [r5] - adds r0, r6, #0 - subs r0, #8 - adds r0, r4, r0 - ldr r1, _081C021C - str r1, [r0] - b _081C0226 - .align 2, 0 -_081C0218: .4byte sub_081C1A24 -_081C021C: .4byte HandleInput -_081C0220: - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] -_081C0226: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_081C0038 - - thumb_func_start sub_081C022C -sub_081C022C: @ 0x081C022C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _081C0284 - ldr r2, [r1] - ldr r7, [r2] - ldr r3, _081C0288 - adds r0, r2, r3 - ldrb r0, [r0] - adds r5, r1, #0 - cmp r0, #0 - bne _081C0294 - lsls r0, r4, #0x18 - asrs r3, r0, #0x18 - movs r1, #1 - rsbs r1, r1, #0 - adds r6, r0, #0 - cmp r3, r1 - bne _081C025C - ldr r1, _081C028C - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _081C02BC -_081C025C: - asrs r0, r6, #0x18 - cmp r0, #1 - bne _081C0274 - ldr r0, [r5] - ldr r2, _081C028C - adds r1, r0, r2 - ldr r3, _081C0290 - adds r0, r0, r3 - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bhs _081C02BC -_081C0274: - ldr r0, [r5] - ldr r1, _081C028C - adds r0, r0, r1 - ldrb r0, [r0] - adds r0, r0, r4 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - b _081C02E2 - .align 2, 0 -_081C0284: .4byte gUnknown_203CBE8 -_081C0288: .4byte 0x000040C0 -_081C028C: .4byte 0x000040BE -_081C0290: .4byte 0x000040BF -_081C0294: - ldr r3, _081C02C4 - adds r0, r2, r3 - ldrb r5, [r0] - lsls r6, r4, #0x18 -_081C029C: - lsls r0, r5, #0x18 - asrs r0, r0, #0x18 - asrs r1, r6, #0x18 - adds r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - asrs r4, r0, #0x18 - cmp r4, #0 - blt _081C02BC - ldr r0, _081C02C8 - ldr r0, [r0] - ldr r1, _081C02CC - adds r0, r0, r1 - ldrb r0, [r0] - cmp r4, r0 - ble _081C02D0 -_081C02BC: - movs r0, #1 - rsbs r0, r0, #0 - b _081C02E2 - .align 2, 0 -_081C02C4: .4byte 0x000040BE -_081C02C8: .4byte gUnknown_203CBE8 -_081C02CC: .4byte 0x000040BF -_081C02D0: - movs r0, #0x64 - muls r0, r4, r0 - adds r0, r7, r0 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - bne _081C029C - adds r0, r4, #0 -_081C02E2: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_081C022C - - thumb_func_start sub_081C02E8 -sub_081C02E8: @ 0x081C02E8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov ip, r0 - ldr r6, _081C0368 - ldr r0, [r6] - ldr r1, [r0] - mov r8, r1 - movs r5, #0 - movs r2, #0 - ldr r3, _081C036C - movs r1, #0 - ldrsb r1, [r3, r1] - ldr r4, _081C0370 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r1, r0 - beq _081C0330 - adds r7, r3, #0 - adds r3, r4, #0 -_081C0314: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #5 - bhi _081C0330 - adds r0, r2, r7 - movs r1, #0 - ldrsb r1, [r0, r1] - ldr r0, [r6] - adds r0, r0, r3 - ldrb r0, [r0] - cmp r1, r0 - bne _081C0314 - adds r5, r2, #0 -_081C0330: - mov r0, ip - lsls r6, r0, #0x18 - ldr r7, _081C036C -_081C0336: - lsls r0, r5, #0x18 - asrs r0, r0, #0x18 - asrs r1, r6, #0x18 - adds r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r5, #0x18 - lsrs r0, r1, #0x18 - cmp r0, #5 - bhi _081C0374 - asrs r0, r1, #0x18 - adds r0, r0, r7 - movs r4, #0 - ldrsb r4, [r0, r4] - movs r0, #0x64 - muls r0, r4, r0 - add r0, r8 - bl sub_081C0384 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081C0336 - adds r0, r4, #0 - b _081C0378 - .align 2, 0 -_081C0368: .4byte gUnknown_203CBE8 -_081C036C: .4byte gUnknown_85ED064 -_081C0370: .4byte 0x000040BE -_081C0374: - movs r0, #1 - rsbs r0, r0, #0 -_081C0378: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081C02E8 - - thumb_func_start sub_081C0384 -sub_081C0384: @ 0x081C0384 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xb - bl GetMonData - cmp r0, #0 - beq _081C03B8 - ldr r0, _081C03B0 - ldr r0, [r0] - ldr r1, _081C03B4 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _081C03AC - adds r0, r4, #0 - movs r1, #0x2d - bl GetMonData - cmp r0, #0 - bne _081C03B8 -_081C03AC: - movs r0, #1 - b _081C03BA - .align 2, 0 -_081C03B0: .4byte gUnknown_203CBE8 -_081C03B4: .4byte 0x000040BE -_081C03B8: - movs r0, #0 -_081C03BA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081C0384 - - thumb_func_start ChangePage -ChangePage: @ 0x081C03C0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - str r6, [sp] - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - str r3, [sp, #4] - ldr r0, _081C0468 - mov r8, r0 - ldr r2, [r0] - adds r1, r2, #0 - adds r1, #0x70 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r7, r0, #3 - ldr r0, _081C046C - mov sb, r0 - adds r0, r7, r0 - str r0, [sp, #8] - ldrb r1, [r1, #4] - mov sl, r1 - cmp r1, #0 - bne _081C04A2 - lsls r0, r3, #0x18 - asrs r5, r0, #0x18 - movs r0, #1 - rsbs r0, r0, #0 - cmp r5, r0 - bne _081C0414 - ldr r1, _081C0470 - adds r0, r2, r1 - ldr r3, _081C0474 - adds r1, r2, r3 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - beq _081C04A2 -_081C0414: - cmp r5, #1 - bne _081C0428 - ldr r1, _081C0470 - adds r0, r2, r1 - ldr r3, _081C0478 - adds r1, r2, r3 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - beq _081C04A2 -_081C0428: - movs r0, #5 - bl sub_080A306C - mov r1, r8 - ldr r0, [r1] - ldr r4, _081C0470 - adds r0, r0, r4 - ldrb r0, [r0] - bl sub_081C251C - mov r2, r8 - ldr r1, [r2] - adds r1, r1, r4 - ldrb r0, [r1] - ldr r3, [sp, #4] - adds r0, r0, r3 - strb r0, [r1] - mov r1, sl - ldr r0, [sp, #8] - strh r1, [r0] - cmp r5, #1 - bne _081C0480 - ldr r1, _081C047C - mov r0, sb - subs r0, #8 - adds r0, r7, r0 - ldr r2, [r0] - adds r0, r6, #0 - bl SetTaskFuncWithFollowupFunc - b _081C0490 - .align 2, 0 -_081C0468: .4byte gUnknown_203CBE8 -_081C046C: .4byte gUnknown_3005B68 -_081C0470: .4byte 0x000040C0 -_081C0474: .4byte 0x000040C1 -_081C0478: .4byte 0x000040C2 -_081C047C: .4byte PssScrollRight -_081C0480: - ldr r1, _081C04B4 - mov r0, sb - subs r0, #8 - adds r0, r7, r0 - ldr r2, [r0] - ldr r0, [sp] - bl SetTaskFuncWithFollowupFunc -_081C0490: - ldr r0, _081C04B8 - ldr r0, [r0] - ldr r2, _081C04BC - adds r0, r0, r2 - ldrb r0, [r0] - bl CreateTextPrinterTask - bl HidePageSpecificSprites -_081C04A2: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C04B4: .4byte PssScrollLeft -_081C04B8: .4byte gUnknown_203CBE8 -_081C04BC: .4byte 0x000040C0 - thumb_func_end ChangePage - - thumb_func_start PssScrollRight -PssScrollRight: @ 0x081C04C0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _081C0508 - adds r4, r0, r1 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _081C055E - ldr r0, _081C050C - ldr r0, [r0] - ldr r3, _081C0510 - adds r0, r0, r3 - ldrb r0, [r0] - cmp r0, #0 - bne _081C0514 - movs r0, #1 - strh r0, [r4, #2] - movs r0, #1 - movs r1, #7 - movs r2, #1 - bl SetBgAttribute - movs r0, #2 - movs r1, #7 - movs r2, #2 - bl SetBgAttribute - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - b _081C0532 - .align 2, 0 -_081C0508: .4byte gUnknown_3005B68 -_081C050C: .4byte gUnknown_203CBE8 -_081C0510: .4byte 0x000040C9 -_081C0514: - movs r0, #2 - strh r0, [r4, #2] - movs r0, #2 - movs r1, #7 - movs r2, #1 - bl SetBgAttribute - movs r0, #1 - movs r1, #7 - movs r2, #2 - bl SetBgAttribute - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram -_081C0532: - ldrb r0, [r4, #2] - movs r1, #0 - movs r2, #0 - bl ChangeBgX - ldrb r0, [r4, #2] - ldr r1, _081C058C - ldr r1, [r1] - ldr r3, _081C0590 - adds r2, r1, r3 - ldrb r2, [r2] - lsls r2, r2, #0xc - adds r2, #0xbc - adds r1, r1, r2 - bl SetBgTilemapBuffer - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg -_081C055E: - ldrb r0, [r4, #2] - movs r1, #0x80 - lsls r1, r1, #6 - movs r2, #1 - bl ChangeBgX - ldrh r0, [r4] - adds r0, #0x20 - strh r0, [r4] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xff - ble _081C0586 - ldr r0, _081C0594 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081C0598 - str r0, [r1] -_081C0586: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C058C: .4byte gUnknown_203CBE8 -_081C0590: .4byte 0x000040C0 -_081C0594: .4byte gUnknown_3005B60 -_081C0598: .4byte PssScrollRightEnd - thumb_func_end PssScrollRight - - thumb_func_start PssScrollRightEnd -PssScrollRightEnd: @ 0x081C059C - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r2, r4, #2 - adds r2, r2, r4 - lsls r2, r2, #3 - ldr r0, _081C05E8 - adds r2, r2, r0 - ldr r5, _081C05EC - ldr r3, [r5] - ldr r0, _081C05F0 - adds r3, r3, r0 - ldrb r0, [r3] - movs r1, #1 - eors r0, r1 - movs r1, #0 - strb r0, [r3] - strh r1, [r2, #2] - strh r1, [r2] - bl DrawPagination - ldr r0, [r5] - ldr r1, _081C05F4 - adds r0, r0, r1 - ldrb r0, [r0] - bl sub_081C23D4 - bl SetTypeIcons - bl CheckExperienceProgressBar - adds r0, r4, #0 - bl SwitchTaskToFollowupFunc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C05E8: .4byte gUnknown_3005B68 -_081C05EC: .4byte gUnknown_203CBE8 -_081C05F0: .4byte 0x000040C9 -_081C05F4: .4byte 0x000040C0 - thumb_func_end PssScrollRightEnd - - thumb_func_start PssScrollLeft -PssScrollLeft: @ 0x081C05F8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _081C0624 - adds r4, r0, r1 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _081C0640 - ldr r0, _081C0628 - ldr r0, [r0] - ldr r1, _081C062C - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _081C0630 - movs r0, #2 - b _081C0632 - .align 2, 0 -_081C0624: .4byte gUnknown_3005B68 -_081C0628: .4byte gUnknown_203CBE8 -_081C062C: .4byte 0x000040C9 -_081C0630: - movs r0, #1 -_081C0632: - strh r0, [r4, #2] - ldrb r0, [r4, #2] - movs r1, #0x80 - lsls r1, r1, #9 - movs r2, #0 - bl ChangeBgX -_081C0640: - ldrb r0, [r4, #2] - movs r1, #0x80 - lsls r1, r1, #6 - movs r2, #2 - bl ChangeBgX - ldrh r0, [r4] - adds r0, #0x20 - strh r0, [r4] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xff - ble _081C0668 - ldr r0, _081C0670 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081C0674 - str r0, [r1] -_081C0668: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C0670: .4byte gUnknown_3005B60 -_081C0674: .4byte PssScrollLeftEnd - thumb_func_end PssScrollLeft - - thumb_func_start PssScrollLeftEnd -PssScrollLeftEnd: @ 0x081C0678 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _081C06B4 - adds r4, r0, r1 - ldr r0, _081C06B8 - ldr r0, [r0] - ldr r1, _081C06BC - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _081C06C0 - movs r0, #1 - movs r1, #7 - movs r2, #1 - bl SetBgAttribute - movs r0, #2 - movs r1, #7 - movs r2, #2 - bl SetBgAttribute - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - b _081C06DA - .align 2, 0 -_081C06B4: .4byte gUnknown_3005B68 -_081C06B8: .4byte gUnknown_203CBE8 -_081C06BC: .4byte 0x000040C9 -_081C06C0: - movs r0, #2 - movs r1, #7 - movs r2, #1 - bl SetBgAttribute - movs r0, #1 - movs r1, #7 - movs r2, #2 - bl SetBgAttribute - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram -_081C06DA: - ldr r6, _081C0748 - ldr r2, [r6] - ldr r7, _081C074C - adds r1, r2, r7 - ldrb r0, [r1] - cmp r0, #1 - bls _081C0704 - ldrb r0, [r4, #2] - ldrb r1, [r1] - lsls r1, r1, #0xc - ldr r3, _081C0750 - adds r1, r1, r3 - adds r1, r2, r1 - bl SetBgTilemapBuffer - ldrb r0, [r4, #2] - movs r1, #0x80 - lsls r1, r1, #9 - movs r2, #0 - bl ChangeBgX -_081C0704: - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - ldr r2, [r6] - ldr r0, _081C0754 - adds r2, r2, r0 - ldrb r0, [r2] - movs r1, #1 - eors r0, r1 - movs r1, #0 - strb r0, [r2] - strh r1, [r4, #2] - strh r1, [r4] - bl DrawPagination - ldr r0, [r6] - adds r0, r0, r7 - ldrb r0, [r0] - bl sub_081C23D4 - bl SetTypeIcons - bl CheckExperienceProgressBar - adds r0, r5, #0 - bl SwitchTaskToFollowupFunc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C0748: .4byte gUnknown_203CBE8 -_081C074C: .4byte 0x000040C0 -_081C0750: .4byte 0xFFFFF0BC -_081C0754: .4byte 0x000040C9 - thumb_func_end PssScrollLeftEnd - - thumb_func_start CheckExperienceProgressBar -CheckExperienceProgressBar: @ 0x081C0758 - push {lr} - ldr r0, _081C0774 - ldr r1, [r0] - ldr r2, _081C0778 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #1 - bne _081C0770 - adds r0, r1, #0 - adds r0, #0xc - bl DrawExperienceProgressBar -_081C0770: - pop {r0} - bx r0 - .align 2, 0 -_081C0774: .4byte gUnknown_203CBE8 -_081C0778: .4byte 0x000040C0 - thumb_func_end CheckExperienceProgressBar - - thumb_func_start sub_081C077C -sub_081C077C: @ 0x081C077C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r5, _081C0854 - ldr r0, [r5] - ldr r2, _081C0858 - adds r0, r0, r2 - movs r1, #0 - strb r1, [r0] - ldr r1, [r5] - adds r2, r1, r2 - ldrb r0, [r2] - lsls r0, r0, #1 - adds r1, #0x84 - adds r1, r1, r0 - ldrh r6, [r1] - mov r8, r6 - movs r0, #0x13 - bl ClearWindowTilemap - ldr r2, _081C085C - ldr r0, [r5] - ldr r1, _081C0860 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - blt _081C07CA - movs r0, #0xd - bl ClearWindowTilemap -_081C07CA: - movs r4, #3 - rsbs r4, r4, #0 - movs r0, #9 - adds r1, r4, #0 - bl sub_081C16D8 - movs r0, #9 - adds r1, r4, #0 - adds r2, r6, #0 - bl sub_081C1830 - ldr r0, [r5] - ldr r1, _081C0864 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _081C07F8 - movs r0, #5 - bl ClearWindowTilemap - movs r0, #6 - bl PutWindowTilemap -_081C07F8: - ldr r0, [r5] - ldr r1, _081C0868 - adds r0, r0, r1 - movs r1, #3 - movs r2, #0 - bl sub_081C1AC8 - ldr r0, [r5] - ldr r1, _081C086C - adds r0, r0, r1 - movs r1, #1 - movs r2, #0 - bl sub_081C1AC8 - mov r0, r8 - bl PrintMoveDetails - bl sub_081C377C - bl SetNewMoveTypeIcon - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #8 - bl sub_081C4300 - ldr r1, _081C0870 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081C0874 - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C0854: .4byte gUnknown_203CBE8 -_081C0858: .4byte 0x000040C6 -_081C085C: .4byte gUnknown_20205AC -_081C0860: .4byte 0x000040D5 -_081C0864: .4byte 0x000040C8 -_081C0868: .4byte 0x000020BC -_081C086C: .4byte 0x000030BC -_081C0870: .4byte gUnknown_3005B60 -_081C0874: .4byte HandleInput_MoveSelect - thumb_func_end sub_081C077C - - thumb_func_start HandleInput_MoveSelect -HandleInput_MoveSelect: @ 0x081C0878 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r6, r5, #0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _081C08BC - adds r4, r0, r1 - bl sub_081221F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081C096E - ldr r0, _081C08C0 - ldrh r1, [r0, #0x2e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _081C08CC - movs r0, #4 - strh r0, [r4] - movs r1, #1 - rsbs r1, r1, #0 - ldr r0, _081C08C4 - ldr r2, [r0] - ldr r0, _081C08C8 - adds r2, r2, r0 - adds r0, r4, #0 - bl sub_081C09A4 - b _081C096E - .align 2, 0 -_081C08BC: .4byte gUnknown_3005B68 -_081C08C0: .4byte gUnknown_3002360 -_081C08C4: .4byte gUnknown_203CBE8 -_081C08C8: .4byte 0x000040C6 -_081C08CC: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _081C08F4 - movs r0, #4 - strh r0, [r4] - ldr r0, _081C08EC - ldr r2, [r0] - ldr r0, _081C08F0 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #1 - bl sub_081C09A4 - b _081C096E - .align 2, 0 -_081C08EC: .4byte gUnknown_203CBE8 -_081C08F0: .4byte 0x000040C6 -_081C08F4: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081C095A - ldr r0, _081C092C - ldr r1, [r0] - ldr r2, _081C0930 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #1 - beq _081C091C - subs r2, #4 - adds r0, r1, r2 - ldr r0, [r0] - ldr r1, _081C0934 - ands r0, r1 - movs r1, #0x80 - lsls r1, r1, #0xb - cmp r0, r1 - bne _081C0938 -_081C091C: - movs r0, #5 - bl sub_080A306C - adds r0, r5, #0 - bl sub_081C0B28 - b _081C096E - .align 2, 0 -_081C092C: .4byte gUnknown_203CBE8 -_081C0930: .4byte 0x000040C8 -_081C0934: .4byte 0x00FFFFFF -_081C0938: - bl sub_081C0974 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081C0952 - movs r0, #5 - bl sub_080A306C - adds r0, r5, #0 - bl sub_081C0BD0 - b _081C096E -_081C0952: - movs r0, #0x20 - bl sub_080A306C - b _081C096E -_081C095A: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081C096E - movs r0, #5 - bl sub_080A306C - adds r0, r6, #0 - bl sub_081C0B28 -_081C096E: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end HandleInput_MoveSelect - - thumb_func_start sub_081C0974 -sub_081C0974: @ 0x081C0974 - push {lr} - movs r1, #1 - ldr r0, _081C0990 - ldr r0, [r0] - adds r2, r0, #0 - adds r2, #0x84 -_081C0980: - lsls r0, r1, #1 - adds r0, r2, r0 - ldrh r0, [r0] - cmp r0, #0 - beq _081C0994 - movs r0, #1 - b _081C09A0 - .align 2, 0 -_081C0990: .4byte gUnknown_203CBE8 -_081C0994: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #3 - bls _081C0980 - movs r0, #0 -_081C09A0: - pop {r1} - bx r1 - thumb_func_end sub_081C0974 - - thumb_func_start sub_081C09A4 -sub_081C09A4: @ 0x081C09A4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - adds r4, r1, #0 - mov r8, r2 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #5 - bl sub_080A306C - mov r0, r8 - ldrb r6, [r0] - movs r2, #0 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - mov ip, r4 - movs r1, #0 - ldrsh r4, [r7, r1] - ldrb r0, [r7] - lsls r3, r0, #0x18 -_081C09D0: - lsls r0, r6, #0x18 - asrs r0, r0, #0x18 - add r0, ip - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, r4 - ble _081C09E4 - movs r6, #0 - b _081C09EA -_081C09E4: - cmp r0, #0 - bge _081C09EA - lsrs r6, r3, #0x18 -_081C09EA: - lsls r0, r6, #0x18 - asrs r1, r0, #0x18 - mov sb, r0 - cmp r1, #4 - bne _081C09F6 - b _081C0B00 -_081C09F6: - ldr r0, _081C0AEC - ldr r0, [r0] - lsls r1, r1, #1 - adds r0, #0x84 - adds r0, r0, r1 - ldrh r5, [r0] - cmp r5, #0 - bne _081C0A16 - lsls r0, r2, #0x18 - movs r1, #0x80 - lsls r1, r1, #0x11 - adds r0, r0, r1 - lsrs r2, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #3 - ble _081C09D0 -_081C0A16: - adds r0, r5, #0 - bl DrawContestMoveHearts - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r5, #0 - bl PrintMoveDetails - mov r1, r8 - ldrb r0, [r1] - cmp r0, #4 - bne _081C0A44 - ldr r0, _081C0AEC - ldr r0, [r0] - ldr r1, _081C0AF0 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0 - beq _081C0A4C -_081C0A44: - movs r1, #2 - ldrsh r0, [r7, r1] - cmp r0, #1 - bne _081C0A92 -_081C0A4C: - movs r0, #0x13 - bl ClearWindowTilemap - ldr r2, _081C0AF4 - ldr r0, _081C0AEC - ldr r0, [r0] - ldr r1, _081C0AF8 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - blt _081C0A76 - movs r0, #0xd - bl ClearWindowTilemap -_081C0A76: - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - movs r4, #3 - rsbs r4, r4, #0 - movs r0, #9 - adds r1, r4, #0 - bl sub_081C16D8 - movs r0, #9 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_081C1830 -_081C0A92: - mov r1, r8 - ldrb r0, [r1] - cmp r0, #4 - beq _081C0AD4 - mov r1, sb - asrs r0, r1, #0x18 - cmp r0, #4 - bne _081C0AD4 - ldr r0, _081C0AEC - ldr r0, [r0] - ldr r1, _081C0AF0 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0 - bne _081C0AD4 - movs r0, #0xe - bl ClearWindowTilemap - movs r0, #0xf - bl ClearWindowTilemap - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #0 - movs r1, #3 - bl sub_081C16D8 - movs r0, #0 - movs r1, #3 - movs r2, #0 - bl sub_081C1830 -_081C0AD4: - mov r0, r8 - strb r6, [r0] - ldr r0, _081C0AEC - ldr r0, [r0] - ldr r1, _081C0AFC - adds r0, r0, r1 - cmp r8, r0 - bne _081C0B14 - movs r0, #8 - bl sub_081C4520 - b _081C0B1A - .align 2, 0 -_081C0AEC: .4byte gUnknown_203CBE8 -_081C0AF0: .4byte 0x000040C4 -_081C0AF4: .4byte gUnknown_20205AC -_081C0AF8: .4byte 0x000040D5 -_081C0AFC: .4byte 0x000040C6 -_081C0B00: - ldr r0, _081C0B0C - ldr r0, [r0] - ldr r1, _081C0B10 - adds r0, r0, r1 - ldrh r5, [r0] - b _081C0A16 - .align 2, 0 -_081C0B0C: .4byte gUnknown_203CBE8 -_081C0B10: .4byte 0x000040C4 -_081C0B14: - movs r0, #0x12 - bl sub_081C4520 -_081C0B1A: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C09A4 - - thumb_func_start sub_081C0B28 -sub_081C0B28: @ 0x081C0B28 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r0, #8 - bl sub_081C4468 - movs r0, #6 - bl ClearWindowTilemap - movs r0, #5 - bl PutWindowTilemap - movs r0, #0 - bl PrintMoveDetails - ldr r4, _081C0BB8 - ldr r0, [r4] - ldr r1, _081C0BBC - adds r0, r0, r1 - movs r1, #3 - movs r2, #1 - bl sub_081C1AC8 - ldr r0, [r4] - ldr r1, _081C0BC0 - adds r0, r0, r1 - movs r1, #1 - movs r2, #1 - bl sub_081C1AC8 - bl sub_081C3888 - ldr r0, [r4] - ldr r1, _081C0BC4 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #4 - beq _081C0B92 - movs r0, #0xe - bl ClearWindowTilemap - movs r0, #0xf - bl ClearWindowTilemap - movs r0, #0 - movs r1, #3 - bl sub_081C16D8 - movs r0, #0 - movs r1, #3 - movs r2, #0 - bl sub_081C1830 -_081C0B92: - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, _081C0BC8 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081C0BCC - str r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C0BB8: .4byte gUnknown_203CBE8 -_081C0BBC: .4byte 0x000020BC -_081C0BC0: .4byte 0x000030BC -_081C0BC4: .4byte 0x000040C6 -_081C0BC8: .4byte gUnknown_3005B60 -_081C0BCC: .4byte HandleInput - thumb_func_end sub_081C0B28 - - thumb_func_start sub_081C0BD0 -sub_081C0BD0: @ 0x081C0BD0 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081C0C08 - ldr r0, [r0] - ldr r2, _081C0C0C - adds r1, r0, r2 - ldrb r1, [r1] - adds r2, #1 - adds r0, r0, r2 - strb r1, [r0] - movs r0, #1 - bl sub_081C448C - movs r0, #0x12 - bl sub_081C4300 - ldr r1, _081C0C10 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081C0C14 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C0C08: .4byte gUnknown_203CBE8 -_081C0C0C: .4byte 0x000040C6 -_081C0C10: .4byte gUnknown_3005B60 -_081C0C14: .4byte sub_081C0C18 - thumb_func_end sub_081C0BD0 - - thumb_func_start sub_081C0C18 -sub_081C0C18: @ 0x081C0C18 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r6, r5, #0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _081C0C5C - adds r4, r0, r1 - bl sub_081221F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081C0CDE - ldr r0, _081C0C60 - ldrh r1, [r0, #0x2e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _081C0C6C - movs r0, #3 - strh r0, [r4] - movs r1, #1 - rsbs r1, r1, #0 - ldr r0, _081C0C64 - ldr r2, [r0] - ldr r0, _081C0C68 - adds r2, r2, r0 - adds r0, r4, #0 - bl sub_081C09A4 - b _081C0CDE - .align 2, 0 -_081C0C5C: .4byte gUnknown_3005B68 -_081C0C60: .4byte gUnknown_3002360 -_081C0C64: .4byte gUnknown_203CBE8 -_081C0C68: .4byte 0x000040C7 -_081C0C6C: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _081C0C94 - movs r0, #3 - strh r0, [r4] - ldr r0, _081C0C8C - ldr r2, [r0] - ldr r0, _081C0C90 - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #1 - bl sub_081C09A4 - b _081C0CDE - .align 2, 0 -_081C0C8C: .4byte gUnknown_203CBE8 -_081C0C90: .4byte 0x000040C7 -_081C0C94: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081C0CCE - ldr r0, _081C0CBC - ldr r0, [r0] - ldr r2, _081C0CC0 - adds r1, r0, r2 - adds r2, #1 - adds r0, r0, r2 - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bne _081C0CC4 - adds r0, r5, #0 - movs r1, #0 - bl sub_081C0CE4 - b _081C0CDE - .align 2, 0 -_081C0CBC: .4byte gUnknown_203CBE8 -_081C0CC0: .4byte 0x000040C6 -_081C0CC4: - adds r0, r5, #0 - movs r1, #1 - bl sub_081C0CE4 - b _081C0CDE -_081C0CCE: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081C0CDE - adds r0, r6, #0 - movs r1, #0 - bl sub_081C0CE4 -_081C0CDE: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_081C0C18 - - thumb_func_start sub_081C0CE4 -sub_081C0CE4: @ 0x081C0CE4 - push {r4, r5, r6, r7, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #5 - bl sub_080A306C - movs r0, #0 - bl sub_081C448C - movs r0, #0x12 - bl sub_081C4468 - cmp r4, #1 - bne _081C0D98 - ldr r0, _081C0D34 - ldr r3, [r0] - ldr r1, _081C0D38 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _081C0D44 - ldr r0, [r3] - ldr r2, _081C0D3C - adds r1, r3, r2 - ldrb r2, [r1] - movs r1, #0x64 - muls r1, r2, r1 - adds r0, r0, r1 - ldr r4, _081C0D40 - adds r1, r3, r4 - ldrb r1, [r1] - adds r4, #1 - adds r2, r3, r4 - ldrb r2, [r2] - bl sub_081C0DF0 - b _081C0D64 - .align 2, 0 -_081C0D34: .4byte gUnknown_203CBE8 -_081C0D38: .4byte 0x000040BD -_081C0D3C: .4byte 0x000040BE -_081C0D40: .4byte 0x000040C6 -_081C0D44: - ldr r0, [r3] - ldr r2, _081C0DD8 - adds r1, r3, r2 - ldrb r2, [r1] - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #4 - adds r0, r0, r1 - ldr r4, _081C0DDC - adds r1, r3, r4 - ldrb r1, [r1] - adds r4, #1 - adds r2, r3, r4 - ldrb r2, [r2] - bl sub_081C0F20 -_081C0D64: - ldr r5, _081C0DE0 - ldr r0, [r5] - adds r0, #0xc - bl CopyMonToSummaryStruct - ldr r1, [r5] - ldr r6, _081C0DDC - adds r0, r1, r6 - ldrb r0, [r0] - ldr r4, _081C0DE4 - adds r1, r1, r4 - ldrb r1, [r1] - bl sub_081C38C4 - ldr r1, [r5] - adds r0, r1, r6 - ldrb r0, [r0] - adds r1, r1, r4 - ldrb r1, [r1] - bl sub_081C3D8C - ldr r0, [r5] - adds r4, r0, r4 - ldrb r1, [r4] - adds r0, r0, r6 - strb r1, [r0] -_081C0D98: - ldr r0, _081C0DE0 - ldr r1, [r0] - ldr r2, _081C0DDC - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r1, #0x84 - adds r1, r1, r0 - ldrh r4, [r1] - adds r0, r4, #0 - bl PrintMoveDetails - adds r0, r4, #0 - bl DrawContestMoveHearts - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, _081C0DE8 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081C0DEC - str r1, [r0] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C0DD8: .4byte 0x000040BE -_081C0DDC: .4byte 0x000040C6 -_081C0DE0: .4byte gUnknown_203CBE8 -_081C0DE4: .4byte 0x000040C7 -_081C0DE8: .4byte gUnknown_3005B60 -_081C0DEC: .4byte HandleInput_MoveSelect - thumb_func_end sub_081C0CE4 - - thumb_func_start sub_081C0DF0 -sub_081C0DF0: @ 0x081C0DF0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x28 - adds r7, r0, #0 - adds r4, r1, #0 - adds r6, r2, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - ldr r0, _081C0F18 - ldr r2, [r0] - lsls r0, r4, #1 - mov sl, r0 - adds r1, r2, #0 - adds r1, #0x84 - adds r0, r1, r0 - str r0, [sp, #8] - ldrh r0, [r0] - mov r3, sp - adds r3, #2 - str r3, [sp, #0x1c] - strh r0, [r3] - lsls r0, r6, #1 - mov sb, r0 - add r1, sb - str r1, [sp, #0xc] - ldrh r1, [r1] - mov r0, sp - strh r1, [r0] - adds r1, r2, #0 - adds r1, #0x8c - adds r3, r1, r4 - str r3, [sp, #0x10] - ldrb r0, [r3] - mov r3, sp - adds r3, #5 - str r3, [sp, #0x24] - strb r0, [r3] - adds r1, r1, r6 - str r1, [sp, #0x14] - ldrb r0, [r1] - mov r1, sp - adds r1, #4 - str r1, [sp, #0x20] - strb r0, [r1] - adds r2, #0xa4 - str r2, [sp, #0x18] - ldrb r0, [r2] - mov r5, sp - adds r5, #6 - strb r0, [r5] - ldr r1, _081C0F1C - adds r0, r4, r1 - ldrb r0, [r0] - mov r8, r0 - ldrb r0, [r5] - adds r2, r0, #0 - mov r3, r8 - ands r2, r3 - mov r3, sl - asrs r2, r3 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r1, r6, r1 - ldrb r1, [r1] - mov ip, r1 - adds r1, r0, #0 - mov r3, ip - ands r1, r3 - mov r3, sb - asrs r1, r3 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r3, r8 - bics r0, r3 - strb r0, [r5] - ldrb r0, [r5] - mov r3, ip - bics r0, r3 - strb r0, [r5] - mov r0, sb - lsls r2, r0 - mov r3, sl - lsls r1, r3 - adds r2, r2, r1 - ldrb r0, [r5] - orrs r0, r2 - strb r0, [r5] - adds r1, r4, #0 - adds r1, #0xd - adds r0, r7, #0 - mov r2, sp - bl SetMonData - adds r1, r6, #0 - adds r1, #0xd - adds r0, r7, #0 - ldr r2, [sp, #0x1c] - bl SetMonData - adds r4, #0x11 - adds r0, r7, #0 - adds r1, r4, #0 - ldr r2, [sp, #0x20] - bl SetMonData - adds r6, #0x11 - adds r0, r7, #0 - adds r1, r6, #0 - ldr r2, [sp, #0x24] - bl SetMonData - adds r0, r7, #0 - movs r1, #0x15 - adds r2, r5, #0 - bl SetMonData - mov r0, sp - ldrh r0, [r0] - ldr r1, [sp, #8] - strh r0, [r1] - ldr r3, [sp, #0x1c] - ldrh r0, [r3] - ldr r1, [sp, #0xc] - strh r0, [r1] - ldr r3, [sp, #0x20] - ldrb r0, [r3] - ldr r1, [sp, #0x10] - strb r0, [r1] - ldr r3, [sp, #0x24] - ldrb r0, [r3] - ldr r1, [sp, #0x14] - strb r0, [r1] - ldrb r0, [r5] - ldr r3, [sp, #0x18] - strb r0, [r3] - add sp, #0x28 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C0F18: .4byte gUnknown_203CBE8 -_081C0F1C: .4byte gUnknown_82FA6AA - thumb_func_end sub_081C0DF0 - - thumb_func_start sub_081C0F20 -sub_081C0F20: @ 0x081C0F20 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x28 - adds r7, r0, #0 - adds r4, r1, #0 - adds r6, r2, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - ldr r0, _081C1048 - ldr r2, [r0] - lsls r0, r4, #1 - mov sl, r0 - adds r1, r2, #0 - adds r1, #0x84 - adds r0, r1, r0 - str r0, [sp, #8] - ldrh r0, [r0] - mov r3, sp - adds r3, #2 - str r3, [sp, #0x1c] - strh r0, [r3] - lsls r0, r6, #1 - mov sb, r0 - add r1, sb - str r1, [sp, #0xc] - ldrh r1, [r1] - mov r0, sp - strh r1, [r0] - adds r1, r2, #0 - adds r1, #0x8c - adds r3, r1, r4 - str r3, [sp, #0x10] - ldrb r0, [r3] - mov r3, sp - adds r3, #5 - str r3, [sp, #0x24] - strb r0, [r3] - adds r1, r1, r6 - str r1, [sp, #0x14] - ldrb r0, [r1] - mov r1, sp - adds r1, #4 - str r1, [sp, #0x20] - strb r0, [r1] - adds r2, #0xa4 - str r2, [sp, #0x18] - ldrb r0, [r2] - mov r5, sp - adds r5, #6 - strb r0, [r5] - ldr r1, _081C104C - adds r0, r4, r1 - ldrb r0, [r0] - mov r8, r0 - ldrb r0, [r5] - adds r2, r0, #0 - mov r3, r8 - ands r2, r3 - mov r3, sl - asrs r2, r3 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r1, r6, r1 - ldrb r1, [r1] - mov ip, r1 - adds r1, r0, #0 - mov r3, ip - ands r1, r3 - mov r3, sb - asrs r1, r3 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov r3, r8 - bics r0, r3 - strb r0, [r5] - ldrb r0, [r5] - mov r3, ip - bics r0, r3 - strb r0, [r5] - mov r0, sb - lsls r2, r0 - mov r3, sl - lsls r1, r3 - adds r2, r2, r1 - ldrb r0, [r5] - orrs r0, r2 - strb r0, [r5] - adds r1, r4, #0 - adds r1, #0xd - adds r0, r7, #0 - mov r2, sp - bl SetBoxMonData - adds r1, r6, #0 - adds r1, #0xd - adds r0, r7, #0 - ldr r2, [sp, #0x1c] - bl SetBoxMonData - adds r4, #0x11 - adds r0, r7, #0 - adds r1, r4, #0 - ldr r2, [sp, #0x20] - bl SetBoxMonData - adds r6, #0x11 - adds r0, r7, #0 - adds r1, r6, #0 - ldr r2, [sp, #0x24] - bl SetBoxMonData - adds r0, r7, #0 - movs r1, #0x15 - adds r2, r5, #0 - bl SetBoxMonData - mov r0, sp - ldrh r0, [r0] - ldr r1, [sp, #8] - strh r0, [r1] - ldr r3, [sp, #0x1c] - ldrh r0, [r3] - ldr r1, [sp, #0xc] - strh r0, [r1] - ldr r3, [sp, #0x20] - ldrb r0, [r3] - ldr r1, [sp, #0x10] - strb r0, [r1] - ldr r3, [sp, #0x24] - ldrb r0, [r3] - ldr r1, [sp, #0x14] - strb r0, [r1] - ldrb r0, [r5] - ldr r3, [sp, #0x18] - strb r0, [r3] - add sp, #0x28 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C1048: .4byte gUnknown_203CBE8 -_081C104C: .4byte gUnknown_82FA6AA - thumb_func_end sub_081C0F20 - - thumb_func_start sub_081C1050 -sub_081C1050: @ 0x081C1050 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl SetNewMoveTypeIcon - movs r0, #8 - bl sub_081C4300 - ldr r1, _081C1078 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081C107C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C1078: .4byte gUnknown_3005B60 -_081C107C: .4byte HandleReplaceMoveInput - thumb_func_end sub_081C1050 - - thumb_func_start HandleReplaceMoveInput -HandleReplaceMoveInput: @ 0x081C1080 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _081C10D4 - adds r4, r0, r1 - bl sub_081221F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081C109E - b _081C11CE -_081C109E: - ldr r0, _081C10D8 - ldrb r1, [r0, #7] - movs r2, #0x80 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _081C10AE - b _081C11CE -_081C10AE: - ldr r6, _081C10DC - ldrh r1, [r6, #0x2e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _081C10E8 - movs r0, #4 - strh r0, [r4] - movs r1, #1 - rsbs r1, r1, #0 - ldr r0, _081C10E0 - ldr r2, [r0] - ldr r0, _081C10E4 - adds r2, r2, r0 - adds r0, r4, #0 - bl sub_081C09A4 - b _081C11CE - .align 2, 0 -_081C10D4: .4byte gUnknown_3005B68 -_081C10D8: .4byte gUnknown_2037C74 -_081C10DC: .4byte gUnknown_3002360 -_081C10E0: .4byte gUnknown_203CBE8 -_081C10E4: .4byte 0x000040C6 -_081C10E8: - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _081C1110 - movs r0, #4 - strh r0, [r4] - ldr r0, _081C1108 - ldr r2, [r0] - ldr r1, _081C110C - adds r2, r2, r1 - adds r0, r4, #0 - movs r1, #1 - bl sub_081C09A4 - b _081C11CE - .align 2, 0 -_081C1108: .4byte gUnknown_203CBE8 -_081C110C: .4byte 0x000040C6 -_081C1110: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _081C1124 - bl GetLRKeysState - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081C1130 -_081C1124: - movs r1, #1 - rsbs r1, r1, #0 - adds r0, r5, #0 - bl ChangePage - b _081C11CE -_081C1130: - ldrh r1, [r6, #0x2e] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _081C1146 - bl GetLRKeysState - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _081C1150 -_081C1146: - adds r0, r5, #0 - movs r1, #1 - bl ChangePage - b _081C11CE -_081C1150: - ldrh r1, [r6, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081C11AA - bl CanReplaceMove - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081C119C - bl StopPokemonAnimations - movs r0, #5 - bl sub_080A306C - ldr r2, _081C118C - ldr r0, _081C1190 - ldr r0, [r0] - ldr r1, _081C1194 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r1, _081C1198 - ldrb r0, [r2] - strh r0, [r1] - adds r0, r5, #0 - bl BeginCloseSummaryScreen - b _081C11CE - .align 2, 0 -_081C118C: .4byte gUnknown_203CBED -_081C1190: .4byte gUnknown_203CBE8 -_081C1194: .4byte 0x000040C6 -_081C1198: .4byte gUnknown_2037282 -_081C119C: - movs r0, #0x20 - bl sub_080A306C - adds r0, r5, #0 - bl ShowHMMovesCantBeForgottenWindow - b _081C11CE -_081C11AA: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081C11CE - bl StopPokemonAnimations - movs r0, #5 - bl sub_080A306C - ldr r1, _081C11D4 - movs r0, #4 - strb r0, [r1] - ldr r1, _081C11D8 - movs r0, #4 - strh r0, [r1] - adds r0, r5, #0 - bl BeginCloseSummaryScreen -_081C11CE: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081C11D4: .4byte gUnknown_203CBED -_081C11D8: .4byte gUnknown_2037282 - thumb_func_end HandleReplaceMoveInput - - thumb_func_start CanReplaceMove -CanReplaceMove: @ 0x081C11DC - push {lr} - ldr r0, _081C1214 - ldr r2, [r0] - ldr r0, _081C1218 - adds r1, r2, r0 - ldrb r0, [r1] - cmp r0, #4 - beq _081C120E - ldr r3, _081C121C - adds r0, r2, r3 - ldrh r0, [r0] - cmp r0, #0 - beq _081C120E - ldrb r1, [r1] - lsls r1, r1, #1 - adds r0, r2, #0 - adds r0, #0x84 - adds r0, r0, r1 - ldrh r0, [r0] - bl IsMoveHm - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081C1220 -_081C120E: - movs r0, #1 - b _081C1222 - .align 2, 0 -_081C1214: .4byte gUnknown_203CBE8 -_081C1218: .4byte 0x000040C6 -_081C121C: .4byte 0x000040C4 -_081C1220: - movs r0, #0 -_081C1222: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CanReplaceMove - - thumb_func_start ShowHMMovesCantBeForgottenWindow -ShowHMMovesCantBeForgottenWindow: @ 0x081C1228 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0xe - bl ClearWindowTilemap - movs r0, #0xf - bl ClearWindowTilemap - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #0 - movs r1, #3 - bl sub_081C16D8 - movs r0, #0 - movs r1, #3 - movs r2, #0 - bl sub_081C1830 - bl PrintHMMovesCantBeForgotten - ldr r1, _081C126C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081C1270 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C126C: .4byte gUnknown_3005B60 -_081C1270: .4byte HandleHMMovesCantBeForgottenInput - thumb_func_end ShowHMMovesCantBeForgottenWindow - - thumb_func_start HandleHMMovesCantBeForgottenInput -HandleHMMovesCantBeForgottenInput: @ 0x081C1274 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #3 - mov r8, r0 - ldr r0, _081C12D0 - mov sb, r0 - mov r4, r8 - add r4, sb - ldr r0, _081C12D4 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081C12A0 - b _081C14A8 -_081C12A0: - ldr r6, _081C12D8 - ldrh r1, [r6, #0x2e] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0 - beq _081C12E4 - movs r0, #1 - strh r0, [r4, #2] - movs r0, #4 - strh r0, [r4] - movs r1, #1 - rsbs r1, r1, #0 - ldr r0, _081C12DC - ldr r2, [r0] - ldr r0, _081C12E0 - adds r2, r2, r0 - adds r0, r4, #0 - bl sub_081C09A4 - movs r0, #0 - strh r0, [r4, #2] - b _081C149E - .align 2, 0 -_081C12D0: .4byte gUnknown_3005B68 -_081C12D4: .4byte sub_081C1754 -_081C12D8: .4byte gUnknown_3002360 -_081C12DC: .4byte gUnknown_203CBE8 -_081C12E0: .4byte 0x000040C6 -_081C12E4: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _081C1310 - movs r0, #1 - strh r0, [r4, #2] - movs r0, #4 - strh r0, [r4] - ldr r0, _081C1308 - ldr r2, [r0] - ldr r1, _081C130C - adds r2, r2, r1 - adds r0, r4, #0 - movs r1, #1 - bl sub_081C09A4 - strh r5, [r4, #2] - b _081C149E - .align 2, 0 -_081C1308: .4byte gUnknown_203CBE8 -_081C130C: .4byte 0x000040C6 -_081C1310: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _081C1324 - bl GetLRKeysState - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081C1398 -_081C1324: - ldr r4, _081C1380 - ldr r0, [r4] - ldr r2, _081C1384 - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #2 - bne _081C1334 - b _081C14A8 -_081C1334: - movs r0, #0x13 - bl ClearWindowTilemap - ldr r2, _081C1388 - ldr r0, [r4] - ldr r1, _081C138C - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - blt _081C135C - movs r0, #0xd - bl ClearWindowTilemap -_081C135C: - ldr r1, [r4] - ldr r2, _081C1390 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r1, #0x84 - adds r1, r1, r0 - ldrh r5, [r1] - mov r0, sb - subs r0, #8 - add r0, r8 - ldr r1, _081C1394 - str r1, [r0] - movs r1, #1 - rsbs r1, r1, #0 - adds r0, r7, #0 - b _081C1402 - .align 2, 0 -_081C1380: .4byte gUnknown_203CBE8 -_081C1384: .4byte 0x000040C0 -_081C1388: .4byte gUnknown_20205AC -_081C138C: .4byte 0x000040D5 -_081C1390: .4byte 0x000040C6 -_081C1394: .4byte HandleReplaceMoveInput -_081C1398: - ldrh r1, [r6, #0x2e] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _081C13AE - bl GetLRKeysState - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _081C1438 -_081C13AE: - ldr r4, _081C1420 - ldr r0, [r4] - ldr r1, _081C1424 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #3 - beq _081C14A8 - movs r0, #0x13 - bl ClearWindowTilemap - ldr r2, _081C1428 - ldr r0, [r4] - ldr r1, _081C142C - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - blt _081C13E4 - movs r0, #0xd - bl ClearWindowTilemap -_081C13E4: - ldr r1, [r4] - ldr r2, _081C1430 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r1, #0x84 - adds r1, r1, r0 - ldrh r5, [r1] - mov r0, sb - subs r0, #8 - add r0, r8 - ldr r1, _081C1434 - str r1, [r0] - adds r0, r7, #0 - movs r1, #1 -_081C1402: - bl ChangePage - movs r4, #2 - rsbs r4, r4, #0 - movs r0, #9 - adds r1, r4, #0 - bl sub_081C16D8 - movs r0, #9 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_081C1830 - b _081C14A8 - .align 2, 0 -_081C1420: .4byte gUnknown_203CBE8 -_081C1424: .4byte 0x000040C0 -_081C1428: .4byte gUnknown_20205AC -_081C142C: .4byte 0x000040D5 -_081C1430: .4byte 0x000040C6 -_081C1434: .4byte HandleReplaceMoveInput -_081C1438: - ldrh r1, [r6, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _081C14A8 - movs r0, #0x13 - bl ClearWindowTilemap - ldr r2, _081C14B4 - ldr r4, _081C14B8 - ldr r0, [r4] - ldr r1, _081C14BC - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - blt _081C146C - movs r0, #0xd - bl ClearWindowTilemap -_081C146C: - ldr r1, [r4] - ldr r2, _081C14C0 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r1, #0x84 - adds r1, r1, r0 - ldrh r5, [r1] - adds r0, r5, #0 - bl PrintMoveDetails - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - movs r4, #3 - rsbs r4, r4, #0 - movs r0, #9 - adds r1, r4, #0 - bl sub_081C16D8 - movs r0, #9 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_081C1830 -_081C149E: - mov r0, sb - subs r0, #8 - add r0, r8 - ldr r1, _081C14C4 - str r1, [r0] -_081C14A8: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C14B4: .4byte gUnknown_20205AC -_081C14B8: .4byte gUnknown_203CBE8 -_081C14BC: .4byte 0x000040D5 -_081C14C0: .4byte 0x000040C6 -_081C14C4: .4byte HandleReplaceMoveInput - thumb_func_end HandleHMMovesCantBeForgottenInput - - thumb_func_start sub_081C14C8 -sub_081C14C8: @ 0x081C14C8 - ldr r0, _081C14D0 - ldrb r0, [r0] - bx lr - .align 2, 0 -_081C14D0: .4byte gUnknown_203CBED - thumb_func_end sub_081C14C8 - - thumb_func_start DrawPagination -DrawPagination: @ 0x081C14D4 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - movs r0, #0x20 - bl sub_08000BC8 - adds r4, r0, #0 - movs r5, #0 -_081C14E2: - lsls r0, r5, #0x19 - lsrs r1, r0, #0x18 - adds r6, r1, #0 - ldr r0, _081C1504 - ldr r3, [r0] - ldr r2, _081C1508 - adds r0, r3, r2 - ldrb r0, [r0] - cmp r5, r0 - bhs _081C150C - lsls r0, r1, #1 - adds r0, r0, r4 - movs r1, #0x40 - strh r1, [r0] - strh r1, [r0, #2] - movs r1, #0x50 - b _081C1522 - .align 2, 0 -_081C1504: .4byte gUnknown_203CBE8 -_081C1508: .4byte 0x000040C1 -_081C150C: - ldr r7, _081C1528 - adds r0, r3, r7 - ldrb r2, [r0] - cmp r5, r2 - bls _081C152C - lsls r0, r1, #1 - adds r0, r0, r4 - movs r1, #0x4a - strh r1, [r0] - strh r1, [r0, #2] - movs r1, #0x5a -_081C1522: - strh r1, [r0, #0x10] - strh r1, [r0, #0x12] - b _081C15AC - .align 2, 0 -_081C1528: .4byte 0x000040C2 -_081C152C: - ldr r7, _081C154C - adds r0, r3, r7 - ldrb r0, [r0] - cmp r5, r0 - bhs _081C1550 - lsls r1, r1, #1 - adds r1, r1, r4 - movs r0, #0x46 - strh r0, [r1] - movs r0, #0x47 - strh r0, [r1, #2] - movs r0, #0x56 - strh r0, [r1, #0x10] - movs r0, #0x57 - b _081C15AA - .align 2, 0 -_081C154C: .4byte 0x000040C0 -_081C1550: - cmp r5, r0 - bne _081C1580 - cmp r5, r2 - beq _081C156C - lsls r1, r1, #1 - adds r1, r1, r4 - movs r0, #0x41 - strh r0, [r1] - movs r0, #0x42 - strh r0, [r1, #2] - movs r0, #0x51 - strh r0, [r1, #0x10] - movs r0, #0x52 - b _081C15AA -_081C156C: - lsls r1, r1, #1 - adds r1, r1, r4 - movs r0, #0x4b - strh r0, [r1] - movs r0, #0x4c - strh r0, [r1, #2] - movs r0, #0x5b - strh r0, [r1, #0x10] - movs r0, #0x5c - b _081C15AA -_081C1580: - cmp r5, r2 - beq _081C1598 - lsls r1, r1, #1 - adds r1, r1, r4 - movs r0, #0x43 - strh r0, [r1] - movs r0, #0x44 - strh r0, [r1, #2] - movs r0, #0x53 - strh r0, [r1, #0x10] - movs r0, #0x54 - b _081C15AA -_081C1598: - lsls r1, r6, #1 - adds r1, r1, r4 - movs r0, #0x48 - strh r0, [r1] - movs r0, #0x49 - strh r0, [r1, #2] - movs r0, #0x58 - strh r0, [r1, #0x10] - movs r0, #0x59 -_081C15AA: - strh r0, [r1, #0x12] -_081C15AC: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #3 - bls _081C14E2 - movs r0, #8 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #0x10 - str r0, [sp, #8] - movs r0, #3 - adds r1, r4, #0 - movs r2, #0xb - movs r3, #0 - bl CopyToBgTilemapBufferRect_ChangePalette - movs r0, #3 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r4, #0 - bl Free - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end DrawPagination - - thumb_func_start sub_081C15E4 -sub_081C15E4: @ 0x081C15E4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r4, r0, #0 - mov r8, r1 - lsls r2, r2, #0x18 - lsrs r6, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r5, r3, #0x18 - ldrb r1, [r4, #6] - ldrb r0, [r4, #7] - lsls r0, r0, #1 - muls r0, r1, r0 - bl sub_08000BC8 - adds r7, r0, #0 - mov r1, sp - ldrh r0, [r4, #4] - strh r0, [r1] - ldrb r1, [r4, #7] - ldrb r0, [r4, #6] - adds r2, r1, #0 - muls r2, r0, r2 - movs r0, #0x80 - lsls r0, r0, #0x11 - orrs r2, r0 - mov r0, sp - adds r1, r7, #0 - bl CpuSet - ldrb r0, [r4, #6] - cmp r0, r6 - beq _081C1694 - cmp r5, #0 - bne _081C1664 - movs r5, #0 - ldrb r0, [r4, #7] - cmp r5, r0 - bhs _081C1694 -_081C1634: - ldrb r2, [r4, #6] - adds r1, r2, #0 - muls r1, r5, r1 - adds r3, r6, r1 - lsls r3, r3, #1 - ldr r0, [r4] - adds r0, r0, r3 - lsls r1, r1, #1 - adds r1, r7, r1 - subs r2, r2, r6 - ldr r3, _081C1660 - ands r2, r3 - bl CpuSet - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldrb r3, [r4, #7] - cmp r5, r3 - blo _081C1634 - b _081C1694 - .align 2, 0 -_081C1660: .4byte 0x001FFFFF -_081C1664: - movs r5, #0 - ldrb r0, [r4, #7] - cmp r5, r0 - bhs _081C1694 -_081C166C: - ldrb r2, [r4, #6] - adds r1, r2, #0 - muls r1, r5, r1 - lsls r3, r1, #1 - ldr r0, [r4] - adds r0, r0, r3 - adds r1, r6, r1 - lsls r1, r1, #1 - adds r1, r7, r1 - subs r2, r2, r6 - ldr r3, _081C1698 - ands r2, r3 - bl CpuSet - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldrb r3, [r4, #7] - cmp r5, r3 - blo _081C166C -_081C1694: - movs r5, #0 - b _081C16BE - .align 2, 0 -_081C1698: .4byte 0x001FFFFF -_081C169C: - ldrb r2, [r4, #6] - adds r0, r2, #0 - muls r0, r5, r0 - lsls r0, r0, #1 - adds r0, r7, r0 - ldrb r1, [r4, #9] - adds r1, r1, r5 - lsls r1, r1, #5 - ldrb r3, [r4, #8] - adds r1, r1, r3 - lsls r1, r1, #1 - add r1, r8 - bl CpuSet - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_081C16BE: - ldrb r0, [r4, #7] - cmp r5, r0 - blo _081C169C - adds r0, r7, #0 - bl Free - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C15E4 - - thumb_func_start sub_081C16D8 -sub_081C16D8: @ 0x081C16D8 - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - asrs r1, r1, #0x10 - ldr r3, _081C1710 - ldrb r2, [r3, #6] - cmp r1, r2 - ble _081C16EE - adds r4, r2, #0 -_081C16EE: - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - beq _081C16FA - cmp r0, r2 - bne _081C171C -_081C16FA: - ldr r0, _081C1714 - ldr r1, [r0] - ldr r0, _081C1718 - adds r1, r1, r0 - lsls r2, r4, #0x18 - lsrs r2, r2, #0x18 - adds r0, r3, #0 - movs r3, #1 - bl sub_081C15E4 - b _081C1746 - .align 2, 0 -_081C1710: .4byte gUnknown_85ED04C -_081C1714: .4byte gUnknown_203CBE8 -_081C1718: .4byte 0x000020BC -_081C171C: - ldr r5, _081C174C - adds r0, r5, #0 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xff - bne _081C1738 - adds r0, r5, #0 - movs r1, #8 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 -_081C1738: - ldr r1, _081C1750 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r4, [r0, #8] - strh r6, [r0, #0xa] -_081C1746: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081C174C: .4byte sub_081C1754 -_081C1750: .4byte gUnknown_3005B60 - thumb_func_end sub_081C16D8 - - thumb_func_start sub_081C1754 -sub_081C1754: @ 0x081C1754 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _081C177C - adds r4, r0, r1 - ldrh r0, [r4] - ldrh r1, [r4, #2] - adds r0, r0, r1 - strh r0, [r4, #2] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _081C1784 - movs r0, #0 - strh r0, [r4, #2] - ldr r7, _081C1780 - b _081C1794 - .align 2, 0 -_081C177C: .4byte gUnknown_3005B68 -_081C1780: .4byte gUnknown_85ED04C -_081C1784: - movs r0, #2 - ldrsh r1, [r4, r0] - ldr r0, _081C17D0 - ldrb r2, [r0, #6] - adds r7, r0, #0 - cmp r1, r2 - ble _081C1794 - strh r2, [r4, #2] -_081C1794: - ldr r5, _081C17D4 - ldr r1, [r5] - ldr r0, _081C17D8 - adds r1, r1, r0 - ldrb r2, [r4, #2] - adds r0, r7, #0 - movs r3, #1 - bl sub_081C15E4 - movs r1, #2 - ldrsh r0, [r4, r1] - cmp r0, #0 - ble _081C17B4 - ldrb r7, [r7, #6] - cmp r0, r7 - blt _081C1814 -_081C17B4: - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #0 - bge _081C17E0 - ldr r0, [r5] - ldr r1, _081C17DC - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #2 - bne _081C1808 - movs r0, #0xe - bl PutWindowTilemap - b _081C1808 - .align 2, 0 -_081C17D0: .4byte gUnknown_85ED04C -_081C17D4: .4byte gUnknown_203CBE8 -_081C17D8: .4byte 0x000020BC -_081C17DC: .4byte 0x000040C0 -_081C17E0: - ldr r2, _081C1828 - ldr r0, [r5] - ldr r1, _081C182C - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - blt _081C1802 - movs r0, #0xd - bl PutWindowTilemap -_081C1802: - movs r0, #0x13 - bl PutWindowTilemap -_081C1808: - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r6, #0 - bl DestroyTask -_081C1814: - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C1828: .4byte gUnknown_20205AC -_081C182C: .4byte 0x000040D5 - thumb_func_end sub_081C1754 - - thumb_func_start sub_081C1830 -sub_081C1830: @ 0x081C1830 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - lsls r1, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r6, r2, #0x10 - lsrs r4, r1, #0x10 - asrs r1, r1, #0x10 - ldr r3, _081C186C - ldrb r2, [r3, #6] - cmp r1, r2 - ble _081C184A - adds r4, r2, #0 -_081C184A: - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - beq _081C1856 - cmp r0, r2 - bne _081C1878 -_081C1856: - ldr r0, _081C1870 - ldr r1, [r0] - ldr r0, _081C1874 - adds r1, r1, r0 - lsls r2, r4, #0x18 - lsrs r2, r2, #0x18 - adds r0, r3, #0 - movs r3, #1 - bl sub_081C15E4 - b _081C18A4 - .align 2, 0 -_081C186C: .4byte gUnknown_85ED058 -_081C1870: .4byte gUnknown_203CBE8 -_081C1874: .4byte 0x000030BC -_081C1878: - ldr r5, _081C18AC - adds r0, r5, #0 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xff - bne _081C1894 - adds r0, r5, #0 - movs r1, #8 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 -_081C1894: - ldr r1, _081C18B0 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r4, [r0, #8] - strh r7, [r0, #0xa] - strh r6, [r0, #0xc] -_081C18A4: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C18AC: .4byte sub_081C18B4 -_081C18B0: .4byte gUnknown_3005B60 - thumb_func_end sub_081C1830 - - thumb_func_start sub_081C18B4 -sub_081C18B4: @ 0x081C18B4 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _081C18DC - adds r4, r0, r1 - ldrh r0, [r4] - ldrh r1, [r4, #2] - adds r0, r0, r1 - strh r0, [r4, #2] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _081C18E4 - movs r0, #0 - strh r0, [r4, #2] - ldr r7, _081C18E0 - b _081C18F4 - .align 2, 0 -_081C18DC: .4byte gUnknown_3005B68 -_081C18E0: .4byte gUnknown_85ED058 -_081C18E4: - movs r0, #2 - ldrsh r1, [r4, r0] - ldr r0, _081C1944 - ldrb r2, [r0, #6] - adds r7, r0, #0 - cmp r1, r2 - ble _081C18F4 - strh r2, [r4, #2] -_081C18F4: - ldr r5, _081C1948 - ldr r1, [r5] - ldr r0, _081C194C - adds r1, r1, r0 - ldrb r2, [r4, #2] - adds r0, r7, #0 - movs r3, #1 - bl sub_081C15E4 - movs r1, #2 - ldrsh r0, [r4, r1] - cmp r0, #0 - ble _081C1914 - ldrb r7, [r7, #6] - cmp r0, r7 - blt _081C198C -_081C1914: - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #0 - bge _081C1958 - ldr r0, [r5] - ldr r1, _081C1950 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #3 - bne _081C193A - ldr r0, _081C1954 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081C193A - movs r0, #0xf - bl PutWindowTilemap -_081C193A: - ldrh r0, [r4, #4] - bl DrawContestMoveHearts - b _081C1980 - .align 2, 0 -_081C1944: .4byte gUnknown_85ED058 -_081C1948: .4byte gUnknown_203CBE8 -_081C194C: .4byte 0x000030BC -_081C1950: .4byte 0x000040C0 -_081C1954: .4byte PssScrollRight -_081C1958: - ldr r2, _081C19A0 - ldr r0, [r5] - ldr r1, _081C19A4 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1d - cmp r0, #0 - blt _081C197A - movs r0, #0xd - bl PutWindowTilemap -_081C197A: - movs r0, #0x13 - bl PutWindowTilemap -_081C1980: - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r6, #0 - bl DestroyTask -_081C198C: - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C19A0: .4byte gUnknown_20205AC -_081C19A4: .4byte 0x000040D5 - thumb_func_end sub_081C18B4 - - thumb_func_start sub_081C19A8 -sub_081C19A8: @ 0x081C19A8 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - asrs r1, r1, #0x10 - ldr r3, _081C19F0 - ldrb r2, [r3, #6] - cmp r1, r2 - ble _081C19BE - adds r4, r2, #0 -_081C19BE: - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - beq _081C19CA - cmp r0, r2 - bne _081C19FC -_081C19CA: - ldr r5, _081C19F4 - ldr r1, [r5] - adds r1, #0xbc - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r3, #0 - adds r2, r4, #0 - movs r3, #0 - bl sub_081C15E4 - ldr r0, _081C19F8 - ldr r1, [r5] - adds r1, #0xbc - adds r2, r4, #0 - movs r3, #0 - bl sub_081C15E4 - b _081C1A16 - .align 2, 0 -_081C19F0: .4byte gUnknown_85ED034 -_081C19F4: .4byte gUnknown_203CBE8 -_081C19F8: .4byte gUnknown_85ED040 -_081C19FC: - ldr r0, _081C1A1C - movs r1, #8 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _081C1A20 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #8] - strh r5, [r1, #0xa] -_081C1A16: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C1A1C: .4byte sub_081C1A24 -_081C1A20: .4byte gUnknown_3005B60 - thumb_func_end sub_081C19A8 - - thumb_func_start sub_081C1A24 -sub_081C1A24: @ 0x081C1A24 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _081C1A4C - adds r5, r0, r1 - ldrh r0, [r5] - ldrh r1, [r5, #2] - adds r0, r0, r1 - strh r0, [r5, #2] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _081C1A54 - movs r0, #0 - strh r0, [r5, #2] - ldr r7, _081C1A50 - b _081C1A64 - .align 2, 0 -_081C1A4C: .4byte gUnknown_3005B68 -_081C1A50: .4byte gUnknown_85ED034 -_081C1A54: - movs r0, #2 - ldrsh r1, [r5, r0] - ldr r0, _081C1ABC - ldrb r2, [r0, #6] - adds r7, r0, #0 - cmp r1, r2 - ble _081C1A64 - strh r2, [r5, #2] -_081C1A64: - ldr r4, _081C1AC0 - ldr r1, [r4] - adds r1, #0xbc - ldrb r2, [r5, #2] - adds r0, r7, #0 - movs r3, #0 - bl sub_081C15E4 - ldr r0, _081C1AC4 - ldr r1, [r4] - adds r1, #0xbc - ldrb r2, [r5, #2] - movs r3, #0 - bl sub_081C15E4 - movs r0, #3 - bl schedule_bg_copy_tilemap_to_vram - movs r1, #2 - ldrsh r0, [r5, r1] - cmp r0, #0 - ble _081C1A96 - ldrb r7, [r7, #6] - cmp r0, r7 - blt _081C1AB4 -_081C1A96: - movs r1, #0 - ldrsh r0, [r5, r1] - cmp r0, #0 - bge _081C1AAE - bl sub_081C4290 - movs r0, #0xd - bl PutWindowTilemap - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram -_081C1AAE: - adds r0, r6, #0 - bl DestroyTask -_081C1AB4: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C1ABC: .4byte gUnknown_85ED034 -_081C1AC0: .4byte gUnknown_203CBE8 -_081C1AC4: .4byte gUnknown_85ED040 - thumb_func_end sub_081C1A24 - - thumb_func_start sub_081C1AC8 -sub_081C1AC8: @ 0x081C1AC8 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - lsls r2, r2, #0x18 - lsls r1, r1, #0x1c - lsrs r4, r1, #0x10 - ldr r7, _081C1B10 - cmp r2, #0 - bne _081C1B18 - movs r3, #0 - ldr r5, _081C1B14 -_081C1ADC: - adds r2, r7, r3 - lsls r2, r2, #1 - adds r2, r2, r6 - lsls r0, r3, #1 - adds r0, r0, r5 - ldrh r1, [r0] - adds r1, r4, r1 - strh r1, [r2] - adds r0, r2, #0 - adds r0, #0x40 - strh r1, [r0] - adds r2, #0x80 - adds r0, r3, #0 - adds r0, #0x14 - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r0, [r0] - adds r0, r4, r0 - strh r0, [r2] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #0x13 - bls _081C1ADC - b _081C1B50 - .align 2, 0 -_081C1B10: .4byte 0x0000056A -_081C1B14: .4byte gUnknown_85ECFBC -_081C1B18: - movs r3, #0 - ldr r5, _081C1B58 -_081C1B1C: - adds r1, r7, r3 - lsls r1, r1, #1 - adds r1, r1, r6 - adds r0, r3, #0 - adds r0, #0x14 - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r0, [r0] - adds r0, r4, r0 - strh r0, [r1] - adds r2, r1, #0 - adds r2, #0x40 - adds r0, r3, #0 - adds r0, #0x28 - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r0, [r0] - adds r0, r4, r0 - strh r0, [r2] - adds r1, #0x80 - strh r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #0x13 - bls _081C1B1C -_081C1B50: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C1B58: .4byte gUnknown_85ECFBC - thumb_func_end sub_081C1AC8 - - thumb_func_start DrawPokerusCuredSymbol -DrawPokerusCuredSymbol: @ 0x081C1B5C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl CheckPartyPokerus - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081C1B90 - adds r0, r4, #0 - movs r1, #0 - bl CheckPartyHasHadPokerus - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081C1B90 - ldr r0, _081C1B88 - ldr r0, [r0] - ldr r2, _081C1B8C - adds r1, r0, r2 - movs r2, #0x2c - b _081C1B9A - .align 2, 0 -_081C1B88: .4byte gUnknown_203CBE8 -_081C1B8C: .4byte 0x00000482 -_081C1B90: - ldr r0, _081C1BB0 - ldr r0, [r0] - ldr r2, _081C1BB4 - adds r1, r0, r2 - ldr r2, _081C1BB8 -_081C1B9A: - strh r2, [r1] - ldr r1, _081C1BBC - adds r0, r0, r1 - strh r2, [r0] - movs r0, #3 - bl schedule_bg_copy_tilemap_to_vram - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C1BB0: .4byte gUnknown_203CBE8 -_081C1BB4: .4byte 0x00000482 -_081C1BB8: .4byte 0x0000081A -_081C1BBC: .4byte 0x00000C82 - thumb_func_end DrawPokerusCuredSymbol - - thumb_func_start sub_081C1BC0 -sub_081C1BC0: @ 0x081C1BC0 - push {lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _081C1BE0 - movs r0, #8 - str r0, [sp] - str r1, [sp, #4] - movs r0, #3 - movs r1, #1 - movs r2, #4 - movs r3, #8 - bl sub_081998C8 - b _081C1BF4 -_081C1BE0: - movs r0, #8 - str r0, [sp] - movs r0, #5 - str r0, [sp, #4] - movs r0, #3 - movs r1, #1 - movs r2, #4 - movs r3, #8 - bl sub_081998C8 -_081C1BF4: - movs r0, #3 - bl schedule_bg_copy_tilemap_to_vram - add sp, #8 - pop {r0} - bx r0 - thumb_func_end sub_081C1BC0 - - thumb_func_start DrawExperienceProgressBar -DrawExperienceProgressBar: @ 0x081C1C00 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _081C1C68 - ldr r1, [r0] - adds r6, r1, #0 - adds r6, #0x70 - ldrb r1, [r6, #5] - mov r8, r0 - cmp r1, #0x63 - bhi _081C1C74 - ldr r5, _081C1C6C - adds r2, r1, #0 - adds r1, r2, #1 - lsls r1, r1, #2 - ldr r4, _081C1C70 - ldrh r3, [r6] - lsls r0, r3, #3 - subs r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r3, [r0, #0x13] - movs r0, #0xca - lsls r0, r0, #1 - muls r0, r3, r0 - adds r1, r1, r0 - adds r1, r1, r5 - lsls r2, r2, #2 - adds r2, r2, r0 - adds r2, r2, r5 - ldr r1, [r1] - ldr r2, [r2] - subs r1, r1, r2 - ldr r0, [r6, #0x10] - subs r4, r0, r2 - lsls r0, r4, #6 - bl __udivsi3 - adds r6, r0, #0 - movs r7, #0 - adds r0, r7, #0 - orrs r0, r6 - cmp r0, #0 - bne _081C1C78 - cmp r4, #0 - beq _081C1C78 - movs r6, #1 - movs r7, #0 - b _081C1C78 - .align 2, 0 -_081C1C68: .4byte gUnknown_203CBE8 -_081C1C6C: .4byte gUnknown_82F00B4 -_081C1C70: .4byte gUnknown_82F0D54 -_081C1C74: - movs r6, #0 - movs r7, #0 -_081C1C78: - mov r1, r8 - ldr r0, [r1] - ldr r2, _081C1CA4 - adds r2, r2, r0 - mov sb, r2 - movs r0, #0 - mov ip, r0 - ldr r1, _081C1CA8 - mov sl, r1 -_081C1C8A: - cmp r7, #0 - bgt _081C1C96 - cmp r7, #0 - bne _081C1CB0 - cmp r6, #7 - bls _081C1CB0 -_081C1C96: - mov r2, ip - lsls r0, r2, #1 - add r0, sb - ldr r2, _081C1CAC - adds r1, r2, #0 - strh r1, [r0] - b _081C1CEA - .align 2, 0 -_081C1CA4: .4byte 0x00001D66 -_081C1CA8: .4byte 0x00002062 -_081C1CAC: .4byte 0x0000206A -_081C1CB0: - mov r1, ip - lsls r0, r1, #1 - add r0, sb - mov r8, r0 - adds r5, r7, #0 - adds r4, r6, #0 - cmp r7, #0 - bge _081C1CC8 - movs r4, #7 - movs r5, #0 - adds r4, r4, r6 - adcs r5, r7 -_081C1CC8: - lsls r3, r5, #0x1d - lsrs r2, r4, #3 - adds r0, r3, #0 - orrs r0, r2 - asrs r1, r5, #3 - lsrs r5, r0, #0x1d - lsls r4, r1, #3 - adds r3, r5, #0 - orrs r3, r4 - lsls r2, r0, #3 - adds r1, r7, #0 - adds r0, r6, #0 - subs r0, r0, r2 - sbcs r1, r3 - add r0, sl - mov r2, r8 - strh r0, [r2] -_081C1CEA: - movs r0, #8 - rsbs r0, r0, #0 - asrs r1, r0, #0x1f - adds r6, r6, r0 - adcs r7, r1 - cmp r7, #0 - bge _081C1CFC - movs r6, #0 - movs r7, #0 -_081C1CFC: - mov r0, ip - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov ip, r0 - cmp r0, #7 - bls _081C1C8A - movs r0, #1 - bl GetBgTilemapBuffer - ldr r1, _081C1D24 - ldr r1, [r1] - ldr r2, _081C1D28 - adds r1, r1, r2 - cmp r0, r1 - bne _081C1D2C - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - b _081C1D32 - .align 2, 0 -_081C1D24: .4byte gUnknown_203CBE8 -_081C1D28: .4byte 0x000010BC -_081C1D2C: - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram -_081C1D32: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end DrawExperienceProgressBar - - thumb_func_start DrawContestMoveHearts -DrawContestMoveHearts: @ 0x081C1D40 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldr r0, _081C1DA4 - ldr r0, [r0] - ldr r1, _081C1DA8 - adds r5, r0, r1 - cmp r3, #0 - beq _081C1E44 - ldr r1, _081C1DAC - ldr r2, _081C1DB0 - lsls r3, r3, #3 - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r4, [r0, #1] - mov sb, r1 - mov r8, r2 - mov sl, r3 - cmp r4, #0xff - beq _081C1D80 - adds r0, r4, #0 - movs r1, #0xa - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_081C1D80: - movs r2, #0 - movs r6, #3 - movs r3, #0xf3 - lsls r3, r3, #2 -_081C1D88: - cmp r4, #0xff - beq _081C1DB8 - cmp r2, r4 - bhs _081C1DB8 - lsrs r0, r2, #2 - adds r1, r2, #0 - ands r1, r6 - lsls r0, r0, #5 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r0, r0, r5 - adds r0, r0, r3 - ldr r7, _081C1DB4 - b _081C1DCA - .align 2, 0 -_081C1DA4: .4byte gUnknown_203CBE8 -_081C1DA8: .4byte 0x000038BC -_081C1DAC: .4byte gUnknown_8566AE4 -_081C1DB0: .4byte gUnknown_8565FCC -_081C1DB4: .4byte 0x0000103A -_081C1DB8: - lsrs r0, r2, #2 - adds r1, r2, #0 - ands r1, r6 - lsls r0, r0, #5 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r0, r0, r5 - adds r0, r0, r3 - ldr r7, _081C1E18 -_081C1DCA: - adds r1, r7, #0 - strh r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #7 - bls _081C1D88 - mov r0, sl - add r0, r8 - ldrb r0, [r0] - lsls r0, r0, #2 - add r0, sb - ldrb r4, [r0, #2] - cmp r4, #0xff - beq _081C1DF4 - adds r0, r4, #0 - movs r1, #0xa - bl __udivsi3 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_081C1DF4: - movs r2, #0 - movs r6, #3 - ldr r3, _081C1E1C -_081C1DFA: - cmp r4, #0xff - beq _081C1E24 - cmp r2, r4 - bhs _081C1E24 - lsrs r0, r2, #2 - adds r1, r2, #0 - ands r1, r6 - lsls r0, r0, #5 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r0, r0, r5 - adds r0, r0, r3 - ldr r7, _081C1E20 - b _081C1E36 - .align 2, 0 -_081C1E18: .4byte 0x00001039 -_081C1E1C: .4byte 0x0000044C -_081C1E20: .4byte 0x0000103C -_081C1E24: - lsrs r0, r2, #2 - adds r1, r2, #0 - ands r1, r6 - lsls r0, r0, #5 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r0, r0, r5 - adds r0, r0, r3 - ldr r7, _081C1E54 -_081C1E36: - adds r1, r7, #0 - strh r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #7 - bls _081C1DFA -_081C1E44: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C1E54: .4byte 0x0000103D - thumb_func_end DrawContestMoveHearts - - thumb_func_start LimitEggSummaryPageDisplay -LimitEggSummaryPageDisplay: @ 0x081C1E58 - push {lr} - ldr r0, _081C1E74 - ldr r0, [r0] - adds r0, #0x74 - ldrb r0, [r0] - cmp r0, #0 - beq _081C1E78 - movs r1, #0x80 - lsls r1, r1, #9 - movs r0, #3 - movs r2, #0 - bl ChangeBgX - b _081C1E82 - .align 2, 0 -_081C1E74: .4byte gUnknown_203CBE8 -_081C1E78: - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgX -_081C1E82: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LimitEggSummaryPageDisplay - - thumb_func_start ResetWindows -ResetWindows: @ 0x081C1E88 - push {r4, r5, lr} - ldr r0, _081C1ECC - bl InitWindows - bl sub_08004480 - movs r4, #0 -_081C1E96: - adds r0, r4, #0 - movs r1, #0 - bl FillWindowPixelBuffer - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x13 - bls _081C1E96 - movs r4, #0 - ldr r5, _081C1ED0 - ldr r3, _081C1ED4 - movs r2, #0xff -_081C1EB0: - ldr r0, [r5] - adds r0, r0, r3 - adds r0, r0, r4 - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #7 - bls _081C1EB0 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C1ECC: .4byte gUnknown_85ED06C -_081C1ED0: .4byte gUnknown_203CBE8 -_081C1ED4: .4byte 0x000040CB - thumb_func_end ResetWindows - - thumb_func_start SummaryScreen_PrintTextOnWindow -SummaryScreen_PrintTextOnWindow: @ 0x081C1ED8 - push {r4, r5, r6, lr} - sub sp, #0x14 - ldr r4, [sp, #0x24] - ldr r5, [sp, #0x28] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - movs r6, #0 - str r6, [sp] - str r4, [sp, #4] - lsls r4, r5, #1 - adds r4, r4, r5 - ldr r5, _081C1F18 - adds r4, r4, r5 - str r4, [sp, #8] - str r6, [sp, #0xc] - str r1, [sp, #0x10] - movs r1, #1 - bl AddTextPrinterParameterized4 - add sp, #0x14 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081C1F18: .4byte gUnknown_85ED17C - thumb_func_end SummaryScreen_PrintTextOnWindow - - thumb_func_start sub_081C1F1C -sub_081C1F1C: @ 0x081C1F1C - push {lr} - movs r0, #0x11 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #0x12 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #0x13 - movs r1, #0 - bl FillWindowPixelBuffer - ldr r0, _081C1F48 - ldr r0, [r0] - adds r0, #0x74 - ldrb r0, [r0] - cmp r0, #0 - bne _081C1F4C - bl sub_081C1F5C - b _081C1F50 - .align 2, 0 -_081C1F48: .4byte gUnknown_203CBE8 -_081C1F4C: - bl sub_081C20D8 -_081C1F50: - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C1F1C - - thumb_func_start sub_081C1F5C -sub_081C1F5C: @ 0x081C1F5C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - ldr r0, _081C1FCC - ldr r0, [r0] - movs r1, #0xc - adds r1, r1, r0 - mov r8, r1 - adds r7, r0, #0 - adds r7, #0x70 - ldrh r0, [r7] - bl SpeciesToPokedexNum - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, _081C1FD0 - cmp r5, r0 - beq _081C2002 - ldr r6, _081C1FD4 - ldr r1, _081C1FD8 - adds r0, r6, #0 - bl StringCopy - ldr r4, _081C1FDC - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #2 - movs r3, #3 - bl sub_080089D8 - adds r0, r6, #0 - adds r1, r4, #0 - bl StringAppend - mov r0, r8 - bl IsMonShiny - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _081C1FE0 - str r0, [sp] - movs r0, #1 - str r0, [sp, #4] - movs r0, #0x11 - adds r1, r6, #0 - movs r2, #0 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - movs r0, #0 - bl sub_081C1BC0 - b _081C1FFA - .align 2, 0 -_081C1FCC: .4byte gUnknown_203CBE8 -_081C1FD0: .4byte 0x0000FFFF -_081C1FD4: .4byte gUnknown_2021C40 -_081C1FD8: .4byte gUnknown_85C9411 -_081C1FDC: .4byte gUnknown_2021C54 -_081C1FE0: - movs r0, #0 - str r0, [sp] - movs r0, #7 - str r0, [sp, #4] - movs r0, #0x11 - adds r1, r6, #0 - movs r2, #0 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - movs r0, #1 - bl sub_081C1BC0 -_081C1FFA: - movs r0, #0x11 - bl PutWindowTilemap - b _081C2022 -_081C2002: - movs r0, #0x11 - bl ClearWindowTilemap - mov r0, r8 - bl IsMonShiny - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081C201C - movs r0, #0 - bl sub_081C1BC0 - b _081C2022 -_081C201C: - movs r0, #1 - bl sub_081C1BC0 -_081C2022: - ldr r6, _081C2078 - ldr r1, _081C207C - adds r0, r6, #0 - bl StringCopy - ldr r4, _081C2080 - ldrb r1, [r7, #5] - adds r0, r4, #0 - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - adds r0, r6, #0 - adds r1, r4, #0 - bl StringAppend - movs r4, #0 - str r4, [sp] - movs r5, #1 - str r5, [sp, #4] - movs r0, #0x12 - adds r1, r6, #0 - movs r2, #0 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - mov r0, r8 - adds r1, r6, #0 - bl GetMonNickname - ldrb r0, [r7, #5] - cmp r0, #9 - bhi _081C2084 - str r4, [sp] - str r5, [sp, #4] - movs r0, #0x12 - adds r1, r6, #0 - movs r2, #0x18 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - b _081C2094 - .align 2, 0 -_081C2078: .4byte gUnknown_2021C40 -_081C207C: .4byte gUnknown_85C940E -_081C2080: .4byte gUnknown_2021C54 -_081C2084: - str r4, [sp] - str r5, [sp, #4] - movs r0, #0x12 - adds r1, r6, #0 - movs r2, #0x20 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow -_081C2094: - ldrh r0, [r7, #2] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - ldr r0, _081C20D4 - adds r1, r1, r0 - movs r0, #0 - str r0, [sp] - movs r0, #1 - str r0, [sp, #4] - movs r0, #0x13 - movs r2, #0 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - ldrh r1, [r7, #2] - mov r0, r8 - bl GetBgType - movs r0, #0x12 - bl PutWindowTilemap - movs r0, #0x13 - bl PutWindowTilemap - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C20D4: .4byte gUnknown_82EA31C - thumb_func_end sub_081C1F5C - - thumb_func_start sub_081C20D8 -sub_081C20D8: @ 0x081C20D8 - push {r4, lr} - sub sp, #8 - ldr r0, _081C2118 - ldr r0, [r0] - adds r0, #0xc - ldr r4, _081C211C - adds r1, r4, #0 - bl GetMonNickname - movs r0, #0 - str r0, [sp] - movs r0, #1 - str r0, [sp, #4] - movs r0, #0x12 - adds r1, r4, #0 - movs r2, #0 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - movs r0, #0x12 - bl PutWindowTilemap - movs r0, #0x11 - bl ClearWindowTilemap - movs r0, #0x13 - bl ClearWindowTilemap - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C2118: .4byte gUnknown_203CBE8 -_081C211C: .4byte gUnknown_2021C40 - thumb_func_end sub_081C20D8 - - thumb_func_start GetBgType -GetBgType: @ 0x081C2120 - push {r4, r5, lr} - sub sp, #8 - adds r5, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - cmp r1, #0x20 - beq _081C218E - cmp r1, #0x1d - beq _081C218E - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r1, _081C2158 - adds r0, r0, r1 - bl StringLength - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r5, #0 - bl GetMonGender - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _081C215C - cmp r0, #0xfe - beq _081C2178 - b _081C218E - .align 2, 0 -_081C2158: .4byte gUnknown_82EA31C -_081C215C: - ldr r1, _081C2174 - lsls r2, r4, #0x1b - lsrs r2, r2, #0x18 - str r0, [sp] - movs r0, #3 - str r0, [sp, #4] - movs r0, #0x13 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - b _081C218E - .align 2, 0 -_081C2174: .4byte gUnknown_85C940A -_081C2178: - ldr r1, _081C2198 - lsls r2, r4, #0x1b - lsrs r2, r2, #0x18 - movs r0, #0 - str r0, [sp] - movs r0, #4 - str r0, [sp, #4] - movs r0, #0x13 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow -_081C218E: - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C2198: .4byte gUnknown_85C940C - thumb_func_end GetBgType - - thumb_func_start sub_081C219C -sub_081C219C: @ 0x081C219C - push {lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r1, r1, #0x18 - ldr r2, _081C21C8 - cmp r1, #0 - bne _081C21AE - subs r2, #0x80 -_081C21AE: - movs r0, #0x10 - str r0, [sp] - str r0, [sp, #4] - adds r0, r3, #0 - adds r1, r2, #0 - movs r2, #0 - movs r3, #0 - bl BlitBitmapToWindow - add sp, #8 - pop {r0} - bx r0 - .align 2, 0 -_081C21C8: .4byte gUnknown_85ED223 - thumb_func_end sub_081C219C - - thumb_func_start sub_081C21CC -sub_081C21CC: @ 0x081C21CC - push {r4, r5, lr} - sub sp, #8 - ldr r1, _081C2374 - movs r4, #0 - str r4, [sp] - movs r5, #1 - str r5, [sp, #4] - movs r0, #0 - movs r2, #0 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - ldr r1, _081C2378 - str r4, [sp] - str r5, [sp, #4] - movs r0, #1 - movs r2, #0 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - ldr r1, _081C237C - str r4, [sp] - str r5, [sp, #4] - movs r0, #2 - movs r2, #0 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - ldr r1, _081C2380 - str r4, [sp] - str r5, [sp, #4] - movs r0, #3 - movs r2, #0 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - movs r0, #4 - movs r1, #0 - bl sub_081C219C - ldr r1, _081C2384 - str r4, [sp] - str r4, [sp, #4] - movs r0, #4 - movs r2, #0x10 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - movs r0, #5 - movs r1, #0 - bl sub_081C219C - ldr r1, _081C2388 - str r4, [sp] - str r4, [sp, #4] - movs r0, #5 - movs r2, #0x10 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - movs r0, #6 - movs r1, #0 - bl sub_081C219C - ldr r1, _081C238C - str r4, [sp] - str r4, [sp, #4] - movs r0, #6 - movs r2, #0x10 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - ldr r1, _081C2390 - str r4, [sp] - str r5, [sp, #4] - movs r0, #7 - movs r2, #0 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - ldr r1, _081C2394 - str r4, [sp] - str r5, [sp, #4] - movs r0, #8 - movs r2, #0 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - ldr r1, _081C2398 - str r4, [sp] - str r5, [sp, #4] - movs r0, #0x10 - movs r2, #0 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - ldr r1, _081C239C - str r4, [sp] - str r4, [sp, #4] - movs r0, #9 - movs r2, #0 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - ldr r1, _081C23A0 - str r4, [sp] - str r5, [sp, #4] - movs r0, #0xa - movs r2, #8 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - ldr r1, _081C23A4 - str r4, [sp] - str r5, [sp, #4] - movs r0, #0xa - movs r2, #0 - movs r3, #0x12 - bl SummaryScreen_PrintTextOnWindow - ldr r1, _081C23A8 - str r4, [sp] - str r5, [sp, #4] - movs r0, #0xa - movs r2, #0 - movs r3, #0x22 - bl SummaryScreen_PrintTextOnWindow - ldr r1, _081C23AC - str r4, [sp] - str r5, [sp, #4] - movs r0, #0xb - movs r2, #0 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - ldr r1, _081C23B0 - str r4, [sp] - str r5, [sp, #4] - movs r0, #0xb - movs r2, #0 - movs r3, #0x12 - bl SummaryScreen_PrintTextOnWindow - ldr r1, _081C23B4 - str r4, [sp] - str r5, [sp, #4] - movs r0, #0xb - movs r2, #0 - movs r3, #0x22 - bl SummaryScreen_PrintTextOnWindow - ldr r1, _081C23B8 - str r4, [sp] - str r5, [sp, #4] - movs r0, #0xc - movs r2, #0 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - ldr r1, _081C23BC - str r4, [sp] - str r5, [sp, #4] - movs r0, #0xc - movs r2, #0 - movs r3, #0x12 - bl SummaryScreen_PrintTextOnWindow - ldr r1, _081C23C0 - str r4, [sp] - str r5, [sp, #4] - movs r0, #0xd - movs r2, #0 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - ldr r1, _081C23C4 - str r4, [sp] - str r5, [sp, #4] - movs r0, #0xe - movs r2, #8 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - ldr r1, _081C23C8 - str r4, [sp] - str r5, [sp, #4] - movs r0, #0xe - movs r2, #0 - movs r3, #0x12 - bl SummaryScreen_PrintTextOnWindow - ldr r1, _081C23CC - str r4, [sp] - str r5, [sp, #4] - movs r0, #0xf - movs r2, #0 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - ldr r1, _081C23D0 - str r4, [sp] - str r5, [sp, #4] - movs r0, #0xf - movs r2, #0 - movs r3, #0x12 - bl SummaryScreen_PrintTextOnWindow - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C2374: .4byte gUnknown_85CA3E4 -_081C2378: .4byte gUnknown_85CA3EE -_081C237C: .4byte gUnknown_85CA3F8 -_081C2380: .4byte gUnknown_85CA3FF -_081C2384: .4byte gUnknown_85C93C8 -_081C2388: .4byte gUnknown_85CA407 -_081C238C: .4byte gUnknown_85CA3DF -_081C2390: .4byte gUnknown_85CA38E -_081C2394: .4byte gUnknown_85CA392 -_081C2398: .4byte gUnknown_85C941A -_081C239C: .4byte gUnknown_85CA39B -_081C23A0: .4byte gUnknown_85CA388 -_081C23A4: .4byte gUnknown_85CA36F -_081C23A8: .4byte gUnknown_85CA374 -_081C23AC: .4byte gUnknown_85CA379 -_081C23B0: .4byte gUnknown_85CA37E -_081C23B4: .4byte gUnknown_85CA383 -_081C23B8: .4byte gUnknown_85CA3BB -_081C23BC: .4byte gUnknown_85CA3C6 -_081C23C0: .4byte gUnknown_85CA3B5 -_081C23C4: .4byte gUnknown_85CA3A0 -_081C23C8: .4byte gUnknown_85CA3A5 -_081C23CC: .4byte gUnknown_85CA3AB -_081C23D0: .4byte gUnknown_85CA3B0 - thumb_func_end sub_081C21CC - - thumb_func_start sub_081C23D4 -sub_081C23D4: @ 0x081C23D4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, r4, #0 - movs r0, #0 - bl ClearWindowTilemap - movs r0, #1 - bl ClearWindowTilemap - movs r0, #2 - bl ClearWindowTilemap - movs r0, #3 - bl ClearWindowTilemap - cmp r4, #1 - beq _081C244C - cmp r4, #1 - bgt _081C2402 - cmp r4, #0 - beq _081C240C - b _081C24EA -_081C2402: - cmp r5, #2 - beq _081C2466 - cmp r5, #3 - beq _081C24A8 - b _081C24EA -_081C240C: - movs r0, #0 - bl PutWindowTilemap - movs r0, #4 - bl PutWindowTilemap - bl InBattleFactory - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081C2430 - bl InSlateportBattleTent - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081C2438 -_081C2430: - movs r0, #8 - bl PutWindowTilemap - b _081C2444 -_081C2438: - movs r0, #7 - bl PutWindowTilemap - movs r0, #0x10 - bl PutWindowTilemap -_081C2444: - movs r0, #9 - bl PutWindowTilemap - b _081C24EA -_081C244C: - movs r0, #1 - bl PutWindowTilemap - movs r0, #0xa - bl PutWindowTilemap - movs r0, #0xb - bl PutWindowTilemap - movs r0, #0xc - bl PutWindowTilemap - b _081C24EA -_081C2466: - movs r0, #2 - bl PutWindowTilemap - ldr r0, _081C2494 - ldr r1, [r0] - ldr r2, _081C2498 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #3 - bne _081C24A0 - adds r2, #8 - adds r0, r1, r2 - ldr r0, [r0] - ldr r1, _081C249C - ands r0, r1 - movs r1, #0x80 - lsls r1, r1, #0xb - cmp r0, r1 - beq _081C24EA - movs r0, #0xe - bl PutWindowTilemap - b _081C24EA - .align 2, 0 -_081C2494: .4byte gUnknown_203CBE8 -_081C2498: .4byte 0x000040BC -_081C249C: .4byte 0x00FFFFFF -_081C24A0: - movs r0, #5 - bl PutWindowTilemap - b _081C24EA -_081C24A8: - movs r0, #3 - bl PutWindowTilemap - ldr r0, _081C24D8 - ldr r1, [r0] - ldr r2, _081C24DC - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #3 - bne _081C24E4 - adds r2, #8 - adds r0, r1, r2 - ldr r0, [r0] - ldr r1, _081C24E0 - ands r0, r1 - movs r1, #0x80 - lsls r1, r1, #0xb - cmp r0, r1 - beq _081C24EA - movs r0, #0xf - bl PutWindowTilemap - b _081C24EA - .align 2, 0 -_081C24D8: .4byte gUnknown_203CBE8 -_081C24DC: .4byte 0x000040BC -_081C24E0: .4byte 0x00FFFFFF -_081C24E4: - movs r0, #5 - bl PutWindowTilemap -_081C24EA: - movs r4, #0 - ldr r5, _081C2514 -_081C24EE: - ldr r0, [r5] - ldr r1, _081C2518 - adds r0, r0, r1 - adds r0, r0, r4 - ldrb r0, [r0] - bl PutWindowTilemap - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #7 - bls _081C24EE - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C2514: .4byte gUnknown_203CBE8 -_081C2518: .4byte 0x000040CB - thumb_func_end sub_081C23D4 - - thumb_func_start sub_081C251C -sub_081C251C: @ 0x081C251C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - cmp r0, #1 - beq _081C2576 - cmp r0, #1 - bgt _081C2532 - cmp r0, #0 - beq _081C253C - b _081C2602 -_081C2532: - cmp r1, #2 - beq _081C258A - cmp r1, #3 - beq _081C25C8 - b _081C2602 -_081C253C: - movs r0, #4 - bl ClearWindowTilemap - bl InBattleFactory - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081C255A - bl InSlateportBattleTent - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081C2562 -_081C255A: - movs r0, #8 - bl ClearWindowTilemap - b _081C256E -_081C2562: - movs r0, #7 - bl ClearWindowTilemap - movs r0, #0x10 - bl ClearWindowTilemap -_081C256E: - movs r0, #9 - bl ClearWindowTilemap - b _081C2602 -_081C2576: - movs r0, #0xa - bl ClearWindowTilemap - movs r0, #0xb - bl ClearWindowTilemap - movs r0, #0xc - bl ClearWindowTilemap - b _081C2602 -_081C258A: - ldr r0, _081C25B4 - ldr r1, [r0] - ldr r2, _081C25B8 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #3 - bne _081C25C0 - adds r2, #8 - adds r0, r1, r2 - ldr r0, [r0] - ldr r1, _081C25BC - ands r0, r1 - movs r1, #0x80 - lsls r1, r1, #0xb - cmp r0, r1 - beq _081C2602 - movs r0, #0xe - bl ClearWindowTilemap - b _081C2602 - .align 2, 0 -_081C25B4: .4byte gUnknown_203CBE8 -_081C25B8: .4byte 0x000040BC -_081C25BC: .4byte 0x00FFFFFF -_081C25C0: - movs r0, #5 - bl ClearWindowTilemap - b _081C2602 -_081C25C8: - ldr r0, _081C25F0 - ldr r1, [r0] - ldr r2, _081C25F4 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #3 - bne _081C25FC - adds r2, #8 - adds r0, r1, r2 - ldr r0, [r0] - ldr r1, _081C25F8 - ands r0, r1 - movs r1, #0x80 - lsls r1, r1, #0xb - cmp r0, r1 - beq _081C2602 - movs r0, #0xf - bl ClearWindowTilemap - b _081C2602 - .align 2, 0 -_081C25F0: .4byte gUnknown_203CBE8 -_081C25F4: .4byte 0x000040BC -_081C25F8: .4byte 0x00FFFFFF -_081C25FC: - movs r0, #5 - bl ClearWindowTilemap -_081C2602: - movs r4, #0 -_081C2604: - adds r0, r4, #0 - bl SummaryScreen_RemoveWindowByIndex - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #7 - bls _081C2604 - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081C251C - - thumb_func_start AddWindowFromTemplateList -AddWindowFromTemplateList: @ 0x081C2620 - push {r4, lr} - adds r3, r0, #0 - lsls r1, r1, #0x18 - lsrs r2, r1, #0x18 - ldr r0, _081C2654 - ldr r4, _081C2658 - adds r1, r2, r4 - ldr r0, [r0] - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, #0xff - bne _081C264A - lsls r0, r2, #3 - adds r0, r3, r0 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, #0 - bl FillWindowPixelBuffer -_081C264A: - ldrb r0, [r4] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081C2654: .4byte gUnknown_203CBE8 -_081C2658: .4byte 0x000040CB - thumb_func_end AddWindowFromTemplateList - - thumb_func_start SummaryScreen_RemoveWindowByIndex -SummaryScreen_RemoveWindowByIndex: @ 0x081C265C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081C2688 - ldr r2, _081C268C - adds r0, r0, r2 - ldr r1, [r1] - adds r4, r1, r0 - ldrb r0, [r4] - cmp r0, #0xff - beq _081C2680 - bl ClearWindowTilemap - ldrb r0, [r4] - bl RemoveWindow - movs r0, #0xff - strb r0, [r4] -_081C2680: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C2688: .4byte gUnknown_203CBE8 -_081C268C: .4byte 0x000040CB - thumb_func_end SummaryScreen_RemoveWindowByIndex - - thumb_func_start PrintPageSpecificText -PrintPageSpecificText: @ 0x081C2690 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r4, #0 -_081C2698: - ldr r0, _081C26CC - ldr r0, [r0] - ldr r1, _081C26D0 - adds r0, r0, r1 - adds r1, r0, r4 - ldrb r0, [r1] - cmp r0, #0xff - beq _081C26AE - movs r1, #0 - bl FillWindowPixelBuffer -_081C26AE: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #7 - bls _081C2698 - ldr r0, _081C26D4 - lsls r1, r5, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl _call_via_r0 - thumb_func_end PrintPageSpecificText - - thumb_func_start sub_081C26C4 -sub_081C26C4: @ 0x081C26C4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C26CC: .4byte gUnknown_203CBE8 -_081C26D0: .4byte 0x000040CB -_081C26D4: .4byte gUnknown_85ED2A4 - thumb_func_end sub_081C26C4 - - thumb_func_start CreateTextPrinterTask -CreateTextPrinterTask: @ 0x081C26D8 - push {lr} - lsls r0, r0, #0x18 - ldr r1, _081C26F0 - lsrs r0, r0, #0x16 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x10 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_081C26F0: .4byte gUnknown_85ED2B4 - thumb_func_end CreateTextPrinterTask - - thumb_func_start PrintInfoPageText -PrintInfoPageText: @ 0x081C26F4 - push {lr} - ldr r0, _081C2714 - ldr r0, [r0] - adds r0, #0x74 - ldrb r0, [r0] - cmp r0, #0 - beq _081C2718 - bl sub_081C2C54 - bl sub_081C2C84 - bl PrintEggState - bl PrintEggMemo - b _081C2730 - .align 2, 0 -_081C2714: .4byte gUnknown_203CBE8 -_081C2718: - bl sub_081C27B8 - bl sub_081C2828 - bl sub_081C288C - bl sub_081C28E0 - bl sub_081C2934 - bl PrintMonTrainerMemo -_081C2730: - pop {r0} - bx r0 - thumb_func_end PrintInfoPageText - - thumb_func_start Task_PrintInfoPage -Task_PrintInfoPage: @ 0x081C2734 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _081C275C - adds r4, r0, r1 - ldrh r0, [r4] - subs r0, #1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #6 - bhi _081C27AC - lsls r0, r0, #2 - ldr r1, _081C2760 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081C275C: .4byte gUnknown_3005B68 -_081C2760: .4byte _081C2764 -_081C2764: @ jump table - .4byte _081C2780 @ case 0 - .4byte _081C2786 @ case 1 - .4byte _081C278C @ case 2 - .4byte _081C2792 @ case 3 - .4byte _081C2798 @ case 4 - .4byte _081C279E @ case 5 - .4byte _081C27A4 @ case 6 -_081C2780: - bl sub_081C27B8 - b _081C27AC -_081C2786: - bl sub_081C2828 - b _081C27AC -_081C278C: - bl sub_081C288C - b _081C27AC -_081C2792: - bl sub_081C28E0 - b _081C27AC -_081C2798: - bl sub_081C2934 - b _081C27AC -_081C279E: - bl PrintMonTrainerMemo - b _081C27AC -_081C27A4: - adds r0, r2, #0 - bl DestroyTask - b _081C27B2 -_081C27AC: - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] -_081C27B2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end Task_PrintInfoPage - - thumb_func_start sub_081C27B8 -sub_081C27B8: @ 0x081C27B8 - push {lr} - sub sp, #8 - bl InBattleFactory - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081C2822 - bl InSlateportBattleTent - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081C2822 - ldr r0, _081C2804 - movs r1, #0 - bl AddWindowFromTemplateList - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r0, _081C2808 - ldr r0, [r0] - adds r2, r0, #0 - adds r2, #0xa2 - ldrb r2, [r2] - cmp r2, #0 - bne _081C280C - adds r1, r0, #0 - adds r1, #0xa6 - str r2, [sp] - movs r0, #5 - str r0, [sp, #4] - adds r0, r3, #0 - movs r2, #0 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - b _081C2822 - .align 2, 0 -_081C2804: .4byte gUnknown_85ED114 -_081C2808: .4byte gUnknown_203CBE8 -_081C280C: - adds r1, r0, #0 - adds r1, #0xa6 - movs r0, #0 - str r0, [sp] - movs r0, #6 - str r0, [sp, #4] - adds r0, r3, #0 - movs r2, #0 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow -_081C2822: - add sp, #8 - pop {r0} - bx r0 - thumb_func_end sub_081C27B8 - - thumb_func_start sub_081C2828 -sub_081C2828: @ 0x081C2828 - push {r4, lr} - sub sp, #8 - bl InBattleFactory - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081C2876 - bl InSlateportBattleTent - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081C2876 - ldr r4, _081C2880 - ldr r0, _081C2884 - ldr r0, [r0] - adds r0, #0xb8 - ldrh r1, [r0] - adds r0, r4, #0 - movs r2, #2 - movs r3, #5 - bl sub_080089D8 - ldr r0, _081C2888 - movs r1, #1 - bl AddWindowFromTemplateList - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - str r1, [sp] - movs r1, #1 - str r1, [sp, #4] - adds r1, r4, #0 - movs r2, #0 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow -_081C2876: - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C2880: .4byte gUnknown_2021C40 -_081C2884: .4byte gUnknown_203CBE8 -_081C2888: .4byte gUnknown_85ED114 - thumb_func_end sub_081C2828 - - thumb_func_start sub_081C288C -sub_081C288C: @ 0x081C288C - push {r4, lr} - sub sp, #8 - ldr r0, _081C28D4 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0x70 - ldrh r0, [r0] - adds r1, #0x78 - ldrb r1, [r1] - bl GetAbilityBySpecies - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081C28D8 - movs r1, #2 - bl AddWindowFromTemplateList - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r4, #3 - ldr r1, _081C28DC - adds r4, r4, r1 - movs r1, #0 - str r1, [sp] - movs r1, #1 - str r1, [sp, #4] - adds r1, r4, #0 - movs r2, #0 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C28D4: .4byte gUnknown_203CBE8 -_081C28D8: .4byte gUnknown_85ED114 -_081C28DC: .4byte gUnknown_82EBDC4 - thumb_func_end sub_081C288C - - thumb_func_start sub_081C28E0 -sub_081C28E0: @ 0x081C28E0 - push {r4, lr} - sub sp, #8 - ldr r0, _081C2928 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0x70 - ldrh r0, [r0] - adds r1, #0x78 - ldrb r1, [r1] - bl GetAbilityBySpecies - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081C292C - movs r1, #2 - bl AddWindowFromTemplateList - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #2 - subs r1, r1, r4 - ldr r2, _081C2930 - adds r1, r1, r2 - movs r2, #0 - str r2, [sp] - str r2, [sp, #4] - movs r3, #0x12 - bl SummaryScreen_PrintTextOnWindow - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C2928: .4byte gUnknown_203CBE8 -_081C292C: .4byte gUnknown_85ED114 -_081C2930: .4byte gUnknown_82EC034 - thumb_func_end sub_081C28E0 - - thumb_func_start sub_081C2934 -sub_081C2934: @ 0x081C2934 - push {r4, r5, r6, lr} - ldr r0, _081C2984 - ldr r0, [r0] - adds r4, r0, #0 - adds r4, #0x70 - bl DynamicPlaceholderTextUtil_Reset - ldr r1, _081C2988 - movs r0, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - ldr r1, _081C298C - movs r0, #1 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - bl sub_081C2A78 - bl InBattleFactory - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081C297A - bl InSlateportBattleTent - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081C297A - bl IsInGamePartnerMon - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081C2998 -_081C297A: - ldr r0, _081C2990 - ldr r1, _081C2994 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - b _081C2A3A - .align 2, 0 -_081C2984: .4byte gUnknown_203CBE8 -_081C2988: .4byte gUnknown_85ED2C4 -_081C298C: .4byte gUnknown_85ED2CB -_081C2990: .4byte gUnknown_2021C7C -_081C2994: .4byte gUnknown_85CA563 -_081C2998: - movs r0, #0x20 - bl sub_08000BC8 - adds r6, r0, #0 - movs r0, #0x20 - bl sub_08000BC8 - adds r5, r0, #0 - adds r0, r6, #0 - bl GetMetLevelString - ldrb r0, [r4, #9] - cmp r0, #0xd4 - bhi _081C29C4 - adds r1, r0, #0 - adds r0, r5, #0 - bl sub_0812461C - movs r0, #4 - adds r1, r5, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr -_081C29C4: - bl DoesMonOTMatchOwner - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081C2A00 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _081C29EC - ldrb r0, [r4, #9] - ldr r1, _081C29E4 - cmp r0, #0xd4 - bls _081C2A28 - ldr r1, _081C29E8 - b _081C2A28 - .align 2, 0 -_081C29E4: .4byte gUnknown_85CA4CC -_081C29E8: .4byte gUnknown_85CA593 -_081C29EC: - ldrb r0, [r4, #9] - ldr r1, _081C29F8 - cmp r0, #0xd4 - bls _081C2A28 - ldr r1, _081C29FC - b _081C2A28 - .align 2, 0 -_081C29F8: .4byte gUnknown_85CA4A6 -_081C29FC: .4byte gUnknown_85CA570 -_081C2A00: - ldrb r0, [r4, #9] - cmp r0, #0xff - bne _081C2A10 - ldr r1, _081C2A0C - b _081C2A28 - .align 2, 0 -_081C2A0C: .4byte gUnknown_85CA512 -_081C2A10: - cmp r0, #0xfe - beq _081C2A26 - bl DidMonComeFromGBAGames - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081C2A26 - ldrb r0, [r4, #9] - ldr r1, _081C2A40 - cmp r0, #0xd4 - bls _081C2A28 -_081C2A26: - ldr r1, _081C2A44 -_081C2A28: - ldr r0, _081C2A48 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - adds r0, r6, #0 - bl Free - adds r0, r5, #0 - bl Free -_081C2A3A: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081C2A40: .4byte gUnknown_85CA53B -_081C2A44: .4byte gUnknown_85CA4F2 -_081C2A48: .4byte gUnknown_2021C7C - thumb_func_end sub_081C2934 - - thumb_func_start PrintMonTrainerMemo -PrintMonTrainerMemo: @ 0x081C2A4C - push {lr} - sub sp, #8 - ldr r0, _081C2A70 - movs r1, #3 - bl AddWindowFromTemplateList - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081C2A74 - movs r2, #0 - str r2, [sp] - str r2, [sp, #4] - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - add sp, #8 - pop {r0} - bx r0 - .align 2, 0 -_081C2A70: .4byte gUnknown_85ED114 -_081C2A74: .4byte gUnknown_2021C7C - thumb_func_end PrintMonTrainerMemo - - thumb_func_start sub_081C2A78 -sub_081C2A78: @ 0x081C2A78 - push {r4, lr} - ldr r0, _081C2AA4 - ldr r4, [r0] - ldr r1, _081C2AA8 - adds r4, #0xa3 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - movs r0, #2 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - ldrb r0, [r4] - cmp r0, #5 - beq _081C2A9A - cmp r0, #0x15 - bne _081C2AB0 -_081C2A9A: - ldr r1, _081C2AAC - movs r0, #5 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - b _081C2AB8 - .align 2, 0 -_081C2AA4: .4byte gUnknown_203CBE8 -_081C2AA8: .4byte gUnknown_85ECE24 -_081C2AAC: .4byte gUnknown_85CA3D9 -_081C2AB0: - ldr r1, _081C2AC0 - movs r0, #5 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr -_081C2AB8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C2AC0: .4byte gUnknown_85CA3D8 - thumb_func_end sub_081C2A78 - - thumb_func_start GetMetLevelString -GetMetLevelString: @ 0x081C2AC4 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _081C2AF0 - ldr r0, [r0] - adds r0, #0x7a - ldrb r1, [r0] - cmp r1, #0 - bne _081C2AD6 - movs r1, #5 -_081C2AD6: - adds r0, r4, #0 - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - movs r0, #3 - adds r1, r4, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C2AF0: .4byte gUnknown_203CBE8 - thumb_func_end GetMetLevelString - - thumb_func_start DoesMonOTMatchOwner -DoesMonOTMatchOwner: @ 0x081C2AF4 - push {r4, r5, r6, lr} - ldr r0, _081C2B30 - ldr r0, [r0] - adds r6, r0, #0 - adds r6, #0x70 - ldr r1, [r0] - ldr r0, _081C2B34 - cmp r1, r0 - bne _081C2B40 - bl GetMultiplayerId - movs r1, #1 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _081C2B38 - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r0, r2, #4 - adds r0, r1, r0 - ldrh r4, [r0] - adds r0, r1, r2 - ldrb r5, [r0, #0x13] - ldr r0, _081C2B3C - adds r2, #8 - adds r1, r1, r2 - bl StringCopy - b _081C2B56 - .align 2, 0 -_081C2B30: .4byte gUnknown_203CBE8 -_081C2B34: .4byte gUnknown_20243E8 -_081C2B38: .4byte gUnknown_20226A0 -_081C2B3C: .4byte gUnknown_2021C40 -_081C2B40: - bl GetPlayerIDAsU32 - adds r4, r0, #0 - ldr r0, _081C2B6C - ands r4, r0 - ldr r0, _081C2B70 - ldr r1, [r0] - ldrb r5, [r1, #8] - ldr r0, _081C2B74 - bl StringCopy -_081C2B56: - adds r0, r6, #0 - adds r0, #0x32 - ldrb r0, [r0] - cmp r5, r0 - bne _081C2BA6 - ldr r0, [r6, #0x48] - ldr r1, _081C2B6C - ands r0, r1 - cmp r4, r0 - beq _081C2B7C - b _081C2BA6 - .align 2, 0 -_081C2B6C: .4byte 0x0000FFFF -_081C2B70: .4byte gUnknown_3005AF0 -_081C2B74: .4byte gUnknown_2021C40 -_081C2B78: - movs r0, #1 - b _081C2BA8 -_081C2B7C: - movs r2, #0 - ldr r4, _081C2BB0 - adds r3, r6, #0 - adds r3, #0x36 -_081C2B84: - adds r0, r2, r4 - ldrb r1, [r0] - cmp r1, #0xff - bne _081C2B94 - adds r0, r3, r2 - ldrb r0, [r0] - cmp r0, #0xff - beq _081C2B78 -_081C2B94: - adds r0, r3, r2 - ldrb r0, [r0] - cmp r1, r0 - bne _081C2BA6 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xf - bls _081C2B84 -_081C2BA6: - movs r0, #0 -_081C2BA8: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_081C2BB0: .4byte gUnknown_2021C40 - thumb_func_end DoesMonOTMatchOwner - - thumb_func_start DidMonComeFromGBAGames -DidMonComeFromGBAGames: @ 0x081C2BB4 - push {lr} - ldr r0, _081C2BCC - ldr r0, [r0] - adds r0, #0x70 - ldrb r0, [r0, #0xb] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bls _081C2BD0 - movs r0, #0 - b _081C2BD2 - .align 2, 0 -_081C2BCC: .4byte gUnknown_203CBE8 -_081C2BD0: - movs r0, #1 -_081C2BD2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end DidMonComeFromGBAGames - - thumb_func_start DidMonComeFromRSE -DidMonComeFromRSE: @ 0x081C2BD8 - push {lr} - ldr r0, _081C2BF0 - ldr r0, [r0] - adds r0, #0x70 - ldrb r0, [r0, #0xb] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bls _081C2BF4 - movs r0, #0 - b _081C2BF6 - .align 2, 0 -_081C2BF0: .4byte gUnknown_203CBE8 -_081C2BF4: - movs r0, #1 -_081C2BF6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end DidMonComeFromRSE - - thumb_func_start IsInGamePartnerMon -IsInGamePartnerMon: @ 0x081C2BFC - push {lr} - ldr r0, _081C2C38 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - beq _081C2C4C - ldr r0, _081C2C3C - ldr r1, _081C2C40 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081C2C4C - ldr r0, _081C2C44 - ldr r0, [r0] - ldr r1, _081C2C48 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - beq _081C2C32 - cmp r0, #4 - beq _081C2C32 - cmp r0, #5 - bne _081C2C4C -_081C2C32: - movs r0, #1 - b _081C2C4E - .align 2, 0 -_081C2C38: .4byte gUnknown_2022C90 -_081C2C3C: .4byte gUnknown_3002360 -_081C2C40: .4byte 0x00000439 -_081C2C44: .4byte gUnknown_203CBE8 -_081C2C48: .4byte 0x000040BE -_081C2C4C: - movs r0, #0 -_081C2C4E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsInGamePartnerMon - - thumb_func_start sub_081C2C54 -sub_081C2C54: @ 0x081C2C54 - push {lr} - sub sp, #8 - ldr r0, _081C2C7C - movs r1, #0 - bl AddWindowFromTemplateList - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081C2C80 - movs r2, #0 - str r2, [sp] - movs r2, #1 - str r2, [sp, #4] - movs r2, #0 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - add sp, #8 - pop {r0} - bx r0 - .align 2, 0 -_081C2C7C: .4byte gUnknown_85ED114 -_081C2C80: .4byte gUnknown_85C93F9 - thumb_func_end sub_081C2C54 - - thumb_func_start sub_081C2C84 -sub_081C2C84: @ 0x081C2C84 - push {lr} - sub sp, #8 - ldr r0, _081C2CAC - movs r1, #1 - bl AddWindowFromTemplateList - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081C2CB0 - movs r2, #0 - str r2, [sp] - movs r2, #1 - str r2, [sp, #4] - movs r2, #0 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - add sp, #8 - pop {r0} - bx r0 - .align 2, 0 -_081C2CAC: .4byte gUnknown_85ED114 -_081C2CB0: .4byte gUnknown_85C93F9 - thumb_func_end sub_081C2C84 - - thumb_func_start PrintEggState -PrintEggState: @ 0x081C2CB4 - push {r4, lr} - sub sp, #8 - ldr r0, _081C2CCC - ldr r0, [r0] - adds r1, r0, #0 - adds r1, #0x70 - adds r0, #0xa5 - ldrb r0, [r0] - cmp r0, #1 - bne _081C2CD4 - ldr r4, _081C2CD0 - b _081C2CF8 - .align 2, 0 -_081C2CCC: .4byte gUnknown_203CBE8 -_081C2CD0: .4byte gUnknown_85CA40C -_081C2CD4: - ldrh r0, [r1, #0x30] - cmp r0, #5 - bhi _081C2CE4 - ldr r4, _081C2CE0 - b _081C2CF8 - .align 2, 0 -_081C2CE0: .4byte gUnknown_85CA46B -_081C2CE4: - cmp r0, #0xa - bhi _081C2CF0 - ldr r4, _081C2CEC - b _081C2CF8 - .align 2, 0 -_081C2CEC: .4byte gUnknown_85CA448 -_081C2CF0: - ldr r4, _081C2D1C - cmp r0, #0x28 - bhi _081C2CF8 - ldr r4, _081C2D20 -_081C2CF8: - ldr r0, _081C2D24 - movs r1, #2 - bl AddWindowFromTemplateList - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - str r1, [sp] - str r1, [sp, #4] - adds r1, r4, #0 - movs r2, #0 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C2D1C: .4byte gUnknown_85CA40C -_081C2D20: .4byte gUnknown_85CA425 -_081C2D24: .4byte gUnknown_85ED114 - thumb_func_end PrintEggState - - thumb_func_start PrintEggMemo -PrintEggMemo: @ 0x081C2D28 - push {r4, lr} - sub sp, #8 - ldr r0, _081C2D48 - ldr r0, [r0] - adds r4, r0, #0 - adds r4, #0x70 - adds r0, #0xa5 - ldrb r0, [r0] - cmp r0, #1 - beq _081C2D8C - ldrb r0, [r4, #9] - cmp r0, #0xff - bne _081C2D50 - ldr r4, _081C2D4C - b _081C2D8E - .align 2, 0 -_081C2D48: .4byte gUnknown_203CBE8 -_081C2D4C: .4byte gUnknown_85CA5D5 -_081C2D50: - bl DidMonComeFromGBAGames - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081C2D64 - bl DoesMonOTMatchOwner - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081C2D6C -_081C2D64: - ldr r4, _081C2D68 - b _081C2D8E - .align 2, 0 -_081C2D68: .4byte gUnknown_85CA5F8 -_081C2D6C: - ldrb r0, [r4, #9] - cmp r0, #0xfd - bne _081C2D8C - bl DidMonComeFromRSE - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _081C2D84 - cmp r0, #1 - bne _081C2D8E - ldr r4, _081C2D88 - b _081C2D8E - .align 2, 0 -_081C2D84: .4byte gUnknown_85CA635 -_081C2D88: .4byte gUnknown_85CA616 -_081C2D8C: - ldr r4, _081C2DB4 -_081C2D8E: - ldr r0, _081C2DB8 - movs r1, #3 - bl AddWindowFromTemplateList - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - str r1, [sp] - str r1, [sp, #4] - adds r1, r4, #0 - movs r2, #0 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C2DB4: .4byte gUnknown_85CA5B6 -_081C2DB8: .4byte gUnknown_85ED114 - thumb_func_end PrintEggMemo - - thumb_func_start PrintSkillsPageText -PrintSkillsPageText: @ 0x081C2DBC - push {lr} - bl sub_081C2E70 - bl sub_081C2F08 - bl BufferLeftColumnStats - bl sub_081C303C - bl BufferRightColumnStats - bl sub_081C30F0 - bl sub_081C311C - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PrintSkillsPageText - - thumb_func_start Task_PrintSkillsPage -Task_PrintSkillsPage: @ 0x081C2DE0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _081C2E08 - adds r4, r0, r1 - ldrh r0, [r4] - subs r0, #1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #7 - bhi _081C2E62 - lsls r0, r0, #2 - ldr r1, _081C2E0C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081C2E08: .4byte gUnknown_3005B68 -_081C2E0C: .4byte _081C2E10 -_081C2E10: @ jump table - .4byte _081C2E30 @ case 0 - .4byte _081C2E36 @ case 1 - .4byte _081C2E3C @ case 2 - .4byte _081C2E42 @ case 3 - .4byte _081C2E48 @ case 4 - .4byte _081C2E4E @ case 5 - .4byte _081C2E54 @ case 6 - .4byte _081C2E5A @ case 7 -_081C2E30: - bl sub_081C2E70 - b _081C2E62 -_081C2E36: - bl sub_081C2F08 - b _081C2E62 -_081C2E3C: - bl BufferLeftColumnStats - b _081C2E62 -_081C2E42: - bl sub_081C303C - b _081C2E62 -_081C2E48: - bl BufferRightColumnStats - b _081C2E62 -_081C2E4E: - bl sub_081C30F0 - b _081C2E62 -_081C2E54: - bl sub_081C311C - b _081C2E62 -_081C2E5A: - adds r0, r2, #0 - bl DestroyTask - b _081C2E68 -_081C2E62: - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] -_081C2E68: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Task_PrintSkillsPage - - thumb_func_start sub_081C2E70 -sub_081C2E70: @ 0x081C2E70 - push {r4, lr} - sub sp, #8 - ldr r4, _081C2EAC - ldr r0, [r4] - adds r0, #0x9e - ldrh r0, [r0] - cmp r0, #0xaf - bne _081C2EB4 - bl IsMultiBattle - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081C2EB4 - ldr r0, [r4] - ldr r1, _081C2EB0 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - beq _081C2EA0 - cmp r0, #4 - beq _081C2EA0 - cmp r0, #5 - bne _081C2EB4 -_081C2EA0: - movs r0, #0xaf - bl sub_080D6C8C - adds r4, r0, #0 - b _081C2EDA - .align 2, 0 -_081C2EAC: .4byte gUnknown_203CBE8 -_081C2EB0: .4byte 0x000040BE -_081C2EB4: - ldr r0, _081C2EC8 - ldr r0, [r0] - adds r1, r0, #0 - adds r1, #0x9e - ldrh r0, [r1] - cmp r0, #0 - bne _081C2ED0 - ldr r4, _081C2ECC - b _081C2EDA - .align 2, 0 -_081C2EC8: .4byte gUnknown_203CBE8 -_081C2ECC: .4byte gUnknown_85C93ED -_081C2ED0: - ldrh r0, [r1] - ldr r4, _081C2F00 - adds r1, r4, #0 - bl sub_080D5EC8 -_081C2EDA: - ldr r0, _081C2F04 - movs r1, #0 - bl AddWindowFromTemplateList - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - str r1, [sp] - str r1, [sp, #4] - adds r1, r4, #0 - movs r2, #0 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C2F00: .4byte gUnknown_2021C40 -_081C2F04: .4byte gUnknown_85ED134 - thumb_func_end sub_081C2E70 - - thumb_func_start sub_081C2F08 -sub_081C2F08: @ 0x081C2F08 - push {r4, lr} - sub sp, #8 - ldr r0, _081C2F20 - ldr r0, [r0] - adds r1, r0, #0 - adds r1, #0x76 - ldrb r0, [r1] - cmp r0, #0 - bne _081C2F28 - ldr r4, _081C2F24 - b _081C2F3E - .align 2, 0 -_081C2F20: .4byte gUnknown_203CBE8 -_081C2F24: .4byte gUnknown_85C93ED -_081C2F28: - ldr r0, _081C2F64 - ldrb r1, [r1] - movs r2, #1 - movs r3, #2 - bl sub_080089D8 - ldr r4, _081C2F68 - ldr r1, _081C2F6C - adds r0, r4, #0 - bl StringExpandPlaceholders -_081C2F3E: - ldr r0, _081C2F70 - movs r1, #1 - bl AddWindowFromTemplateList - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - str r1, [sp] - str r1, [sp, #4] - adds r1, r4, #0 - movs r2, #0 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C2F64: .4byte gUnknown_2021C40 -_081C2F68: .4byte gUnknown_2021C7C -_081C2F6C: .4byte gUnknown_85CA3CF -_081C2F70: .4byte gUnknown_85ED134 - thumb_func_end sub_081C2F08 - - thumb_func_start BufferLeftColumnStats -BufferLeftColumnStats: @ 0x081C2F74 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - movs r0, #8 - bl sub_08000BC8 - mov sb, r0 - movs r0, #8 - bl sub_08000BC8 - mov r8, r0 - movs r0, #8 - bl sub_08000BC8 - adds r6, r0, #0 - movs r0, #8 - bl sub_08000BC8 - adds r5, r0, #0 - ldr r4, _081C3030 - ldr r0, [r4] - adds r0, #0x90 - ldrh r1, [r0] - mov r0, sb - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - ldr r0, [r4] - adds r0, #0x92 - ldrh r1, [r0] - mov r0, r8 - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - ldr r0, [r4] - adds r0, #0x94 - ldrh r1, [r0] - adds r0, r6, #0 - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - ldr r0, [r4] - adds r0, #0x96 - ldrh r1, [r0] - adds r0, r5, #0 - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - bl DynamicPlaceholderTextUtil_Reset - movs r0, #0 - mov r1, sb - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - movs r0, #1 - mov r1, r8 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - movs r0, #2 - adds r1, r6, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - movs r0, #3 - adds r1, r5, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - ldr r0, _081C3034 - ldr r1, _081C3038 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - mov r0, sb - bl Free - mov r0, r8 - bl Free - adds r0, r6, #0 - bl Free - adds r0, r5, #0 - bl Free - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081C3030: .4byte gUnknown_203CBE8 -_081C3034: .4byte gUnknown_2021C7C -_081C3038: .4byte gUnknown_85ED2D2 - thumb_func_end BufferLeftColumnStats - - thumb_func_start sub_081C303C -sub_081C303C: @ 0x081C303C - push {lr} - sub sp, #8 - ldr r0, _081C3060 - movs r1, #2 - bl AddWindowFromTemplateList - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081C3064 - movs r2, #0 - str r2, [sp] - str r2, [sp, #4] - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - add sp, #8 - pop {r0} - bx r0 - .align 2, 0 -_081C3060: .4byte gUnknown_85ED134 -_081C3064: .4byte gUnknown_2021C7C - thumb_func_end sub_081C303C - - thumb_func_start BufferRightColumnStats -BufferRightColumnStats: @ 0x081C3068 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - ldr r0, _081C30D8 - mov r8, r0 - ldr r4, _081C30DC - ldr r0, [r4] - adds r0, #0x98 - ldrh r1, [r0] - mov r0, r8 - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - ldr r6, _081C30E0 - ldr r0, [r4] - adds r0, #0x9a - ldrh r1, [r0] - adds r0, r6, #0 - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - ldr r5, _081C30E4 - ldr r0, [r4] - adds r0, #0x9c - ldrh r1, [r0] - adds r0, r5, #0 - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - bl DynamicPlaceholderTextUtil_Reset - movs r0, #0 - mov r1, r8 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - movs r0, #1 - adds r1, r6, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - movs r0, #2 - adds r1, r5, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - ldr r0, _081C30E8 - ldr r1, _081C30EC - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081C30D8: .4byte gUnknown_2021C40 -_081C30DC: .4byte gUnknown_203CBE8 -_081C30E0: .4byte gUnknown_2021C54 -_081C30E4: .4byte gUnknown_2021C68 -_081C30E8: .4byte gUnknown_2021C7C -_081C30EC: .4byte gUnknown_85ED2DE - thumb_func_end BufferRightColumnStats - - thumb_func_start sub_081C30F0 -sub_081C30F0: @ 0x081C30F0 - push {lr} - sub sp, #8 - ldr r0, _081C3114 - movs r1, #3 - bl AddWindowFromTemplateList - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081C3118 - movs r2, #0 - str r2, [sp] - str r2, [sp, #4] - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - add sp, #8 - pop {r0} - bx r0 - .align 2, 0 -_081C3114: .4byte gUnknown_85ED134 -_081C3118: .4byte gUnknown_2021C7C - thumb_func_end sub_081C30F0 - - thumb_func_start sub_081C311C -sub_081C311C: @ 0x081C311C - push {r4, r5, r6, r7, lr} - sub sp, #8 - ldr r0, _081C3194 - ldr r0, [r0] - adds r6, r0, #0 - adds r6, #0x70 - ldr r0, _081C3198 - movs r1, #4 - bl AddWindowFromTemplateList - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r5, _081C319C - ldr r1, [r6, #0x10] - adds r0, r5, #0 - movs r2, #1 - movs r3, #7 - bl sub_080089D8 - movs r4, #0 - str r4, [sp] - str r4, [sp, #4] - adds r0, r7, #0 - adds r1, r5, #0 - movs r2, #8 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - ldr r1, _081C31A0 - str r4, [sp] - str r4, [sp, #4] - adds r0, r7, #0 - movs r2, #0 - movs r3, #0x12 - bl SummaryScreen_PrintTextOnWindow - ldrb r0, [r6, #5] - cmp r0, #0x63 - bhi _081C31AC - ldr r4, _081C31A4 - adds r1, r0, #0 - adds r1, #1 - lsls r1, r1, #2 - ldr r3, _081C31A8 - ldrh r2, [r6] - lsls r0, r2, #3 - subs r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r2, [r0, #0x13] - movs r0, #0xca - lsls r0, r0, #1 - muls r0, r2, r0 - adds r1, r1, r0 - adds r1, r1, r4 - ldr r1, [r1] - ldr r0, [r6, #0x10] - subs r1, r1, r0 - b _081C31AE - .align 2, 0 -_081C3194: .4byte gUnknown_203CBE8 -_081C3198: .4byte gUnknown_85ED134 -_081C319C: .4byte gUnknown_2021C40 -_081C31A0: .4byte gUnknown_85CA38B -_081C31A4: .4byte gUnknown_82F00B4 -_081C31A8: .4byte gUnknown_82F0D54 -_081C31AC: - movs r1, #0 -_081C31AE: - ldr r4, _081C31D4 - adds r0, r4, #0 - movs r2, #1 - movs r3, #6 - bl sub_080089D8 - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - adds r0, r7, #0 - adds r1, r4, #0 - movs r2, #0x10 - movs r3, #0x12 - bl SummaryScreen_PrintTextOnWindow - add sp, #8 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C31D4: .4byte gUnknown_2021C40 - thumb_func_end sub_081C311C - - thumb_func_start PrintBattleMoves -PrintBattleMoves: @ 0x081C31D8 - push {r4, lr} - movs r0, #0 - bl CB2_HandleStartMultiPartnerBattle - movs r0, #1 - bl CB2_HandleStartMultiPartnerBattle - movs r0, #2 - bl CB2_HandleStartMultiPartnerBattle - movs r0, #3 - bl CB2_HandleStartMultiPartnerBattle - ldr r4, _081C3220 - ldr r0, [r4] - ldr r1, _081C3224 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #3 - bne _081C323E - bl sub_081C377C - ldr r1, [r4] - ldr r0, _081C3228 - adds r2, r1, r0 - ldrb r0, [r2] - cmp r0, #4 - bne _081C3230 - ldr r0, _081C322C - adds r1, r1, r0 - ldrh r0, [r1] - cmp r0, #0 - beq _081C323E - bl PrintMoveDetails - b _081C323E - .align 2, 0 -_081C3220: .4byte gUnknown_203CBE8 -_081C3224: .4byte 0x000040BC -_081C3228: .4byte 0x000040C6 -_081C322C: .4byte 0x000040C4 -_081C3230: - ldrb r0, [r2] - lsls r0, r0, #1 - adds r1, #0x84 - adds r1, r1, r0 - ldrh r0, [r1] - bl PrintMoveDetails -_081C323E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end PrintBattleMoves - - thumb_func_start Task_PrintBattleMoves -Task_PrintBattleMoves: @ 0x081C3244 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _081C326C - adds r4, r0, r1 - ldrh r0, [r4] - subs r0, #1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #7 - bhi _081C3350 - lsls r0, r0, #2 - ldr r1, _081C3270 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081C326C: .4byte gUnknown_3005B68 -_081C3270: .4byte _081C3274 -_081C3274: @ jump table - .4byte _081C3294 @ case 0 - .4byte _081C329C @ case 1 - .4byte _081C32A4 @ case 2 - .4byte _081C32AC @ case 3 - .4byte _081C32B4 @ case 4 - .4byte _081C32D0 @ case 5 - .4byte _081C3312 @ case 6 - .4byte _081C3348 @ case 7 -_081C3294: - movs r0, #0 - bl CB2_HandleStartMultiPartnerBattle - b _081C3350 -_081C329C: - movs r0, #1 - bl CB2_HandleStartMultiPartnerBattle - b _081C3350 -_081C32A4: - movs r0, #2 - bl CB2_HandleStartMultiPartnerBattle - b _081C3350 -_081C32AC: - movs r0, #3 - bl CB2_HandleStartMultiPartnerBattle - b _081C3350 -_081C32B4: - ldr r0, _081C32C8 - ldr r0, [r0] - ldr r1, _081C32CC - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #3 - bne _081C3350 - bl sub_081C377C - b _081C3350 - .align 2, 0 -_081C32C8: .4byte gUnknown_203CBE8 -_081C32CC: .4byte 0x000040BC -_081C32D0: - ldr r0, _081C32F4 - ldr r1, [r0] - ldr r2, _081C32F8 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #3 - bne _081C3350 - ldr r0, _081C32FC - adds r2, r1, r0 - ldrb r0, [r2] - cmp r0, #4 - bne _081C3304 - ldr r2, _081C3300 - adds r0, r1, r2 - ldrh r0, [r0] - strh r0, [r4, #2] - b _081C3350 - .align 2, 0 -_081C32F4: .4byte gUnknown_203CBE8 -_081C32F8: .4byte 0x000040BC -_081C32FC: .4byte 0x000040C6 -_081C3300: .4byte 0x000040C4 -_081C3304: - ldrb r0, [r2] - lsls r0, r0, #1 - adds r1, #0x84 - adds r1, r1, r0 - ldrh r0, [r1] - strh r0, [r4, #2] - b _081C3350 -_081C3312: - ldr r0, _081C333C - ldr r1, [r0] - ldr r2, _081C3340 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #3 - bne _081C3350 - adds r2, #8 - adds r0, r1, r2 - ldr r0, [r0] - ldr r1, _081C3344 - ands r0, r1 - movs r1, #0x80 - lsls r1, r1, #0xb - cmp r0, r1 - beq _081C3350 - ldrh r0, [r4, #2] - bl PrintMoveDetails - b _081C3350 - .align 2, 0 -_081C333C: .4byte gUnknown_203CBE8 -_081C3340: .4byte 0x000040BC -_081C3344: .4byte 0x00FFFFFF -_081C3348: - adds r0, r2, #0 - bl DestroyTask - b _081C3356 -_081C3350: - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] -_081C3356: - pop {r4} - pop {r0} - bx r0 - thumb_func_end Task_PrintBattleMoves - - thumb_func_start CB2_HandleStartMultiPartnerBattle -CB2_HandleStartMultiPartnerBattle: @ 0x081C335C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r0, _081C3438 - ldr r0, [r0] - mov r8, r0 - ldr r4, _081C343C - adds r0, r4, #0 - movs r1, #0 - bl AddWindowFromTemplateList - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - adds r0, r4, #0 - movs r1, #1 - bl AddWindowFromTemplateList - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - lsls r1, r7, #1 - mov r0, r8 - adds r0, #0x84 - adds r0, r0, r1 - ldrh r5, [r0] - cmp r5, #0 - beq _081C3454 - mov r0, r8 - adds r0, #0xa4 - ldrb r1, [r0] - adds r0, r5, #0 - adds r2, r7, #0 - bl CalculatePPWithBonus - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r1, r5, #3 - ldr r0, _081C3440 - adds r1, r1, r0 - lsls r4, r7, #4 - adds r4, #2 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - str r0, [sp] - movs r0, #1 - str r0, [sp, #4] - mov r0, sb - movs r2, #0 - adds r3, r4, #0 - bl SummaryScreen_PrintTextOnWindow - ldr r1, _081C3444 - mov sb, r1 - mov r5, r8 - adds r5, #0x8c - adds r5, r5, r7 - ldrb r1, [r5] - mov r0, sb - movs r2, #1 - movs r3, #2 - bl sub_080089D8 - ldr r0, _081C3448 - mov r8, r0 - adds r1, r6, #0 - movs r2, #1 - movs r3, #2 - bl sub_080089D8 - bl DynamicPlaceholderTextUtil_Reset - movs r0, #0 - mov r1, sb - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - movs r0, #1 - mov r1, r8 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - ldr r1, _081C344C - mov r8, r1 - ldr r1, _081C3450 - mov r0, r8 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - ldrb r0, [r5] - adds r1, r6, #0 - bl GetCurrentPpToMaxPpState - adds r0, #9 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - str r1, [sp] - str r0, [sp, #4] - mov r0, sl - mov r1, r8 - movs r2, #0 - adds r3, r4, #0 - bl SummaryScreen_PrintTextOnWindow - b _081C3480 - .align 2, 0 -_081C3438: .4byte gUnknown_203CBE8 -_081C343C: .4byte gUnknown_85ED15C -_081C3440: .4byte gUnknown_82EACC4 -_081C3444: .4byte gUnknown_2021C40 -_081C3448: .4byte gUnknown_2021C54 -_081C344C: .4byte gUnknown_2021C7C -_081C3450: .4byte gUnknown_85ED2E7 -_081C3454: - ldr r1, _081C3490 - lsls r4, r7, #4 - adds r4, #2 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r5, [sp] - movs r0, #1 - str r0, [sp, #4] - mov r0, sb - movs r2, #0 - adds r3, r4, #0 - bl SummaryScreen_PrintTextOnWindow - ldr r1, _081C3494 - str r5, [sp] - movs r0, #0xc - str r0, [sp, #4] - mov r0, sl - movs r2, #8 - adds r3, r4, #0 - bl SummaryScreen_PrintTextOnWindow -_081C3480: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C3490: .4byte gUnknown_85C9401 -_081C3494: .4byte gUnknown_85C9403 - thumb_func_end CB2_HandleStartMultiPartnerBattle - - thumb_func_start PrintMovePowerAndAccuracy -PrintMovePowerAndAccuracy: @ 0x081C3498 - push {r4, r5, r6, lr} - sub sp, #8 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0 - beq _081C3538 - movs r0, #0x18 - str r0, [sp] - movs r0, #0x20 - str r0, [sp, #4] - movs r0, #0xe - movs r1, #0 - movs r2, #0x28 - movs r3, #0 - bl sub_08003A34 - ldr r2, _081C34D0 - lsls r1, r5, #1 - adds r0, r1, r5 - lsls r0, r0, #2 - adds r2, r0, r2 - ldrb r0, [r2, #1] - adds r6, r1, #0 - cmp r0, #1 - bhi _081C34D8 - ldr r1, _081C34D4 - b _081C34E8 - .align 2, 0 -_081C34D0: .4byte gUnknown_82ED220 -_081C34D4: .4byte gUnknown_85C9406 -_081C34D8: - ldr r4, _081C350C - ldrb r1, [r2, #1] - adds r0, r4, #0 - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - adds r1, r4, #0 -_081C34E8: - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - movs r0, #0xe - movs r2, #0x28 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - ldr r1, _081C3510 - adds r0, r6, r5 - lsls r0, r0, #2 - adds r1, r0, r1 - ldrb r0, [r1, #3] - cmp r0, #0 - bne _081C3518 - ldr r1, _081C3514 - b _081C3528 - .align 2, 0 -_081C350C: .4byte gUnknown_2021C40 -_081C3510: .4byte gUnknown_82ED220 -_081C3514: .4byte gUnknown_85C9406 -_081C3518: - ldr r4, _081C3540 - ldrb r1, [r1, #3] - adds r0, r4, #0 - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - adds r1, r4, #0 -_081C3528: - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - movs r0, #0xe - movs r2, #0x28 - movs r3, #0x12 - bl SummaryScreen_PrintTextOnWindow -_081C3538: - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081C3540: .4byte gUnknown_2021C40 - thumb_func_end PrintMovePowerAndAccuracy - - thumb_func_start PrintContestMoves -PrintContestMoves: @ 0x081C3544 - push {r4, lr} - movs r0, #0 - bl CB2_HandleStartMultiPartnerBattle - movs r0, #1 - bl CB2_HandleStartMultiPartnerBattle - movs r0, #2 - bl CB2_HandleStartMultiPartnerBattle - movs r0, #3 - bl CB2_HandleStartMultiPartnerBattle - ldr r4, _081C3584 - ldr r0, [r4] - ldr r1, _081C3588 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #3 - bne _081C357C - bl sub_081C377C - ldr r0, [r4] - ldr r1, _081C358C - adds r0, r0, r1 - ldrb r0, [r0] - bl PrintContestMoveDescription -_081C357C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C3584: .4byte gUnknown_203CBE8 -_081C3588: .4byte 0x000040BC -_081C358C: .4byte 0x000040C6 - thumb_func_end PrintContestMoves - - thumb_func_start Task_PrintContestMoves -Task_PrintContestMoves: @ 0x081C3590 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - ldr r1, _081C35B8 - adds r4, r0, r1 - ldrh r0, [r4] - subs r0, #1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #6 - bhi _081C365C - lsls r0, r0, #2 - ldr r1, _081C35BC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081C35B8: .4byte gUnknown_3005B68 -_081C35BC: .4byte _081C35C0 -_081C35C0: @ jump table - .4byte _081C35DC @ case 0 - .4byte _081C35E4 @ case 1 - .4byte _081C35EC @ case 2 - .4byte _081C35F4 @ case 3 - .4byte _081C35FC @ case 4 - .4byte _081C3618 @ case 5 - .4byte _081C3654 @ case 6 -_081C35DC: - movs r0, #0 - bl CB2_HandleStartMultiPartnerBattle - b _081C365C -_081C35E4: - movs r0, #1 - bl CB2_HandleStartMultiPartnerBattle - b _081C365C -_081C35EC: - movs r0, #2 - bl CB2_HandleStartMultiPartnerBattle - b _081C365C -_081C35F4: - movs r0, #3 - bl CB2_HandleStartMultiPartnerBattle - b _081C365C -_081C35FC: - ldr r0, _081C3610 - ldr r0, [r0] - ldr r1, _081C3614 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #3 - bne _081C365C - bl sub_081C377C - b _081C365C - .align 2, 0 -_081C3610: .4byte gUnknown_203CBE8 -_081C3614: .4byte 0x000040BC -_081C3618: - ldr r0, _081C3644 - ldr r2, [r0] - ldr r1, _081C3648 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #3 - bne _081C365C - adds r1, #8 - adds r0, r2, r1 - ldr r0, [r0] - ldr r1, _081C364C - ands r0, r1 - movs r1, #0x80 - lsls r1, r1, #0xb - cmp r0, r1 - beq _081C365C - ldr r1, _081C3650 - adds r0, r2, r1 - ldrb r0, [r0] - bl PrintContestMoveDescription - b _081C365C - .align 2, 0 -_081C3644: .4byte gUnknown_203CBE8 -_081C3648: .4byte 0x000040BC -_081C364C: .4byte 0x00FFFFFF -_081C3650: .4byte 0x000040C6 -_081C3654: - adds r0, r2, #0 - bl DestroyTask - b _081C3662 -_081C365C: - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] -_081C3662: - pop {r4} - pop {r0} - bx r0 - thumb_func_end Task_PrintContestMoves - - thumb_func_start PrintContestMoveDescription -PrintContestMoveDescription: @ 0x081C3668 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #4 - bne _081C3684 - ldr r0, _081C367C - ldr r0, [r0] - ldr r1, _081C3680 - b _081C368C - .align 2, 0 -_081C367C: .4byte gUnknown_203CBE8 -_081C3680: .4byte 0x000040C4 -_081C3684: - ldr r0, _081C36C4 - ldr r0, [r0] - lsls r1, r1, #1 - adds r0, #0x84 -_081C368C: - adds r0, r0, r1 - ldrh r4, [r0] - cmp r4, #0 - beq _081C36BC - ldr r0, _081C36C8 - movs r1, #2 - bl AddWindowFromTemplateList - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _081C36CC - ldr r2, _081C36D0 - lsls r1, r4, #3 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r1, [r1] - movs r2, #0 - str r2, [sp] - str r2, [sp, #4] - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow -_081C36BC: - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C36C4: .4byte gUnknown_203CBE8 -_081C36C8: .4byte gUnknown_85ED15C -_081C36CC: .4byte gUnknown_8560BB4 -_081C36D0: .4byte gUnknown_8565FCC - thumb_func_end PrintContestMoveDescription - - thumb_func_start PrintMoveDetails -PrintMoveDetails: @ 0x081C36D4 - push {r4, r5, r6, lr} - sub sp, #8 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r6, r4, #0 - ldr r0, _081C3728 - movs r1, #2 - bl AddWindowFromTemplateList - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r5, #0 - movs r1, #0 - bl FillWindowPixelBuffer - cmp r4, #0 - beq _081C3768 - ldr r0, _081C372C - ldr r0, [r0] - ldr r1, _081C3730 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #2 - bne _081C3738 - adds r0, r4, #0 - bl PrintMovePowerAndAccuracy - lsls r1, r4, #3 - subs r1, r1, r4 - lsls r1, r1, #3 - ldr r0, _081C3734 - adds r1, r1, r0 - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - adds r0, r5, #0 - movs r2, #0 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - b _081C3758 - .align 2, 0 -_081C3728: .4byte gUnknown_85ED15C -_081C372C: .4byte gUnknown_203CBE8 -_081C3730: .4byte 0x000040C0 -_081C3734: .4byte gUnknown_85E7FFC -_081C3738: - ldr r2, _081C3760 - ldr r1, _081C3764 - lsls r0, r6, #3 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, [r0] - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - adds r0, r5, #0 - movs r2, #0 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow -_081C3758: - adds r0, r5, #0 - bl PutWindowTilemap - b _081C376E - .align 2, 0 -_081C3760: .4byte gUnknown_8560BB4 -_081C3764: .4byte gUnknown_8565FCC -_081C3768: - adds r0, r5, #0 - bl ClearWindowTilemap -_081C376E: - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end PrintMoveDetails - - thumb_func_start sub_081C377C -sub_081C377C: @ 0x081C377C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - ldr r4, _081C37C4 - adds r0, r4, #0 - movs r1, #0 - bl AddWindowFromTemplateList - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r7, r6, #0 - adds r0, r4, #0 - movs r1, #1 - bl AddWindowFromTemplateList - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r0, _081C37C8 - ldr r1, [r0] - ldr r2, _081C37CC - adds r0, r1, r2 - ldrh r2, [r0] - cmp r2, #0 - bne _081C37D4 - ldr r1, _081C37D0 - str r2, [sp] - movs r0, #1 - str r0, [sp, #4] - adds r0, r6, #0 - movs r2, #0 - movs r3, #0x42 - bl SummaryScreen_PrintTextOnWindow - b _081C3866 - .align 2, 0 -_081C37C4: .4byte gUnknown_85ED15C -_081C37C8: .4byte gUnknown_203CBE8 -_081C37CC: .4byte 0x000040C4 -_081C37D0: .4byte gUnknown_85C93C4 -_081C37D4: - ldrh r5, [r0] - ldr r2, _081C37FC - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #2 - bne _081C3804 - lsls r1, r5, #3 - ldr r0, _081C3800 - adds r1, r1, r0 - movs r0, #0 - str r0, [sp] - movs r0, #6 - str r0, [sp, #4] - adds r0, r6, #0 - movs r2, #0 - movs r3, #0x42 - bl SummaryScreen_PrintTextOnWindow - b _081C381C - .align 2, 0 -_081C37FC: .4byte 0x000040C0 -_081C3800: .4byte gUnknown_82EACC4 -_081C3804: - lsls r1, r5, #3 - ldr r0, _081C3874 - adds r1, r1, r0 - movs r0, #0 - str r0, [sp] - movs r0, #5 - str r0, [sp, #4] - adds r0, r7, #0 - movs r2, #0 - movs r3, #0x42 - bl SummaryScreen_PrintTextOnWindow -_081C381C: - ldr r4, _081C3878 - ldr r1, _081C387C - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0, #4] - adds r0, r4, #0 - movs r2, #1 - movs r3, #2 - bl sub_080089D8 - bl DynamicPlaceholderTextUtil_Reset - movs r0, #0 - adds r1, r4, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - movs r0, #1 - adds r1, r4, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - ldr r4, _081C3880 - ldr r1, _081C3884 - adds r0, r4, #0 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - movs r0, #0 - str r0, [sp] - movs r0, #0xc - str r0, [sp, #4] - mov r0, r8 - adds r1, r4, #0 - movs r2, #0 - movs r3, #0x42 - bl SummaryScreen_PrintTextOnWindow -_081C3866: - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C3874: .4byte gUnknown_82EACC4 -_081C3878: .4byte gUnknown_2021C40 -_081C387C: .4byte gUnknown_82ED220 -_081C3880: .4byte gUnknown_2021C7C -_081C3884: .4byte gUnknown_85ED2E7 - thumb_func_end sub_081C377C - - thumb_func_start sub_081C3888 -sub_081C3888: @ 0x081C3888 - push {r4, lr} - sub sp, #8 - ldr r0, _081C38C0 - movs r1, #0 - bl AddWindowFromTemplateList - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0x38 - str r0, [sp] - movs r0, #0x10 - str r0, [sp, #4] - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0x42 - bl sub_08003A34 - adds r0, r4, #0 - movs r1, #2 - bl CopyWindowToVram - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C38C0: .4byte gUnknown_85ED15C - thumb_func_end sub_081C3888 - - thumb_func_start sub_081C38C4 -sub_081C38C4: @ 0x081C38C4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - mov sb, r0 - mov sl, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - mov r0, sl - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - ldr r5, _081C3974 - adds r0, r5, #0 - movs r1, #0 - bl AddWindowFromTemplateList - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - movs r1, #1 - bl AddWindowFromTemplateList - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - mov r0, sb - lsls r6, r0, #4 - movs r0, #0x38 - mov r8, r0 - str r0, [sp] - movs r0, #0x10 - str r0, [sp, #4] - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - adds r3, r6, #0 - bl sub_08003A34 - mov r0, sl - lsls r7, r0, #4 - mov r0, r8 - str r0, [sp] - movs r0, #0x10 - str r0, [sp, #4] - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - adds r3, r7, #0 - bl sub_08003A34 - movs r4, #0x30 - str r4, [sp] - movs r0, #0x10 - str r0, [sp, #4] - adds r0, r5, #0 - movs r1, #0 - movs r2, #0 - adds r3, r6, #0 - bl sub_08003A34 - str r4, [sp] - movs r0, #0x10 - str r0, [sp, #4] - adds r0, r5, #0 - movs r1, #0 - movs r2, #0 - adds r3, r7, #0 - bl sub_08003A34 - mov r0, sb - bl CB2_HandleStartMultiPartnerBattle - mov r0, sl - bl CB2_HandleStartMultiPartnerBattle - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C3974: .4byte gUnknown_85ED15C - thumb_func_end sub_081C38C4 - - thumb_func_start PrintHMMovesCantBeForgotten -PrintHMMovesCantBeForgotten: @ 0x081C3978 - push {r4, lr} - sub sp, #8 - ldr r0, _081C39AC - movs r1, #2 - bl AddWindowFromTemplateList - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #0 - bl FillWindowPixelBuffer - ldr r1, _081C39B0 - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - adds r0, r4, #0 - movs r2, #0 - movs r3, #2 - bl SummaryScreen_PrintTextOnWindow - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C39AC: .4byte gUnknown_85ED15C -_081C39B0: .4byte gUnknown_85CA487 - thumb_func_end PrintHMMovesCantBeForgotten - - thumb_func_start ResetSpriteIds -ResetSpriteIds: @ 0x081C39B4 - push {r4, r5, lr} - movs r2, #0 - ldr r5, _081C39DC - ldr r4, _081C39E0 - movs r3, #0xff -_081C39BE: - ldr r0, [r5] - adds r0, r0, r4 - adds r0, r0, r2 - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x1b - bls _081C39BE - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C39DC: .4byte gUnknown_203CBE8 -_081C39E0: .4byte 0x000040D3 - thumb_func_end ResetSpriteIds - - thumb_func_start DestroySpriteInArray -DestroySpriteInArray: @ 0x081C39E4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r5, _081C3A1C - ldr r0, [r5] - ldr r1, _081C3A20 - adds r0, r0, r1 - adds r1, r0, r4 - ldrb r0, [r1] - cmp r0, #0xff - beq _081C3A16 - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _081C3A24 - adds r0, r0, r1 - bl DestroySprite - ldr r0, [r5] - ldr r1, _081C3A20 - adds r0, r0, r1 - adds r0, r0, r4 - movs r1, #0xff - strb r1, [r0] -_081C3A16: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C3A1C: .4byte gUnknown_203CBE8 -_081C3A20: .4byte 0x000040D3 -_081C3A24: .4byte gUnknown_20205AC - thumb_func_end DestroySpriteInArray - - thumb_func_start SetSpriteInvisibility -SetSpriteInvisibility: @ 0x081C3A28 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r3, _081C3A64 - ldr r2, _081C3A68 - ldr r2, [r2] - ldr r4, _081C3A6C - adds r2, r2, r4 - adds r2, r2, r0 - ldrb r0, [r2] - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r3 - adds r2, #0x3e - movs r0, #1 - ands r1, r0 - lsls r1, r1, #2 - ldrb r3, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C3A64: .4byte gUnknown_20205AC -_081C3A68: .4byte gUnknown_203CBE8 -_081C3A6C: .4byte 0x000040D3 - thumb_func_end SetSpriteInvisibility - - thumb_func_start HidePageSpecificSprites -HidePageSpecificSprites: @ 0x081C3A70 - push {r4, lr} - movs r4, #3 -_081C3A74: - ldr r0, _081C3A9C - ldr r0, [r0] - ldr r1, _081C3AA0 - adds r0, r0, r1 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0xff - beq _081C3A8C - adds r0, r4, #0 - movs r1, #1 - bl SetSpriteInvisibility -_081C3A8C: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x1b - bls _081C3A74 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C3A9C: .4byte gUnknown_203CBE8 -_081C3AA0: .4byte 0x000040D3 - thumb_func_end HidePageSpecificSprites - - thumb_func_start SetTypeIcons -SetTypeIcons: @ 0x081C3AA4 - push {lr} - ldr r0, _081C3AC0 - ldr r0, [r0] - ldr r1, _081C3AC4 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #2 - beq _081C3AD4 - cmp r0, #2 - bgt _081C3AC8 - cmp r0, #0 - beq _081C3ACE - b _081C3AE6 - .align 2, 0 -_081C3AC0: .4byte gUnknown_203CBE8 -_081C3AC4: .4byte 0x000040C0 -_081C3AC8: - cmp r0, #3 - beq _081C3ADE - b _081C3AE6 -_081C3ACE: - bl SetMonTypeIcons - b _081C3AE6 -_081C3AD4: - bl SetMoveTypeIcons - bl SetNewMoveTypeIcon - b _081C3AE6 -_081C3ADE: - bl SetContestMoveTypeIcons - bl SetNewMoveTypeIcon -_081C3AE6: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetTypeIcons - - thumb_func_start CreateMoveTypeIcons -CreateMoveTypeIcons: @ 0x081C3AEC - push {r4, r5, lr} - movs r4, #3 - ldr r5, _081C3B30 -_081C3AF2: - ldr r0, [r5] - ldr r1, _081C3B34 - adds r0, r0, r1 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0xff - bne _081C3B16 - ldr r0, _081C3B38 - movs r1, #0 - movs r2, #0 - movs r3, #2 - bl CreateSprite - ldr r1, [r5] - ldr r2, _081C3B34 - adds r1, r1, r2 - adds r1, r1, r4 - strb r0, [r1] -_081C3B16: - adds r0, r4, #0 - movs r1, #1 - bl SetSpriteInvisibility - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #7 - bls _081C3AF2 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C3B30: .4byte gUnknown_203CBE8 -_081C3B34: .4byte 0x000040D3 -_081C3B38: .4byte gUnknown_85ED414 - thumb_func_end CreateMoveTypeIcons - - thumb_func_start SetMoveTypeSpritePosAndType -SetMoveTypeSpritePosAndType: @ 0x081C3B3C - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #4 - adds r5, r0, #0 - adds r6, r1, #0 - mov r8, r2 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov r0, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r0, _081C3BB4 - ldr r0, [r0] - ldr r1, _081C3BB8 - adds r0, r0, r1 - adds r0, r0, r3 - ldrb r0, [r0] - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _081C3BBC - adds r4, r4, r0 - adds r0, r4, #0 - adds r1, r5, #0 - str r3, [sp] - bl StartSpriteAnim - ldr r0, _081C3BC0 - adds r5, r5, r0 - ldrb r1, [r5] - lsls r1, r1, #4 - ldrb r2, [r4, #5] - movs r0, #0xf - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #5] - adds r6, #0x10 - strh r6, [r4, #0x20] - movs r0, #8 - add r8, r0 - mov r1, r8 - strh r1, [r4, #0x22] - ldr r3, [sp] - adds r0, r3, #0 - movs r1, #0 - bl SetSpriteInvisibility - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081C3BB4: .4byte gUnknown_203CBE8 -_081C3BB8: .4byte 0x000040D3 -_081C3BBC: .4byte gUnknown_20205AC -_081C3BC0: .4byte gUnknown_85ED42C - thumb_func_end SetMoveTypeSpritePosAndType - - thumb_func_start SetMonTypeIcons -SetMonTypeIcons: @ 0x081C3BC4 - push {r4, r5, lr} - ldr r0, _081C3BEC - ldr r0, [r0] - adds r5, r0, #0 - adds r5, #0x70 - ldrb r0, [r5, #4] - cmp r0, #0 - beq _081C3BF0 - movs r0, #9 - movs r1, #0x78 - movs r2, #0x30 - movs r3, #3 - bl SetMoveTypeSpritePosAndType - movs r0, #4 - movs r1, #1 - bl SetSpriteInvisibility - b _081C3C3C - .align 2, 0 -_081C3BEC: .4byte gUnknown_203CBE8 -_081C3BF0: - ldr r4, _081C3C30 - ldrh r1, [r5] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r0, [r0, #6] - movs r1, #0x78 - movs r2, #0x30 - movs r3, #3 - bl SetMoveTypeSpritePosAndType - ldrh r1, [r5] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, r4 - ldrb r0, [r1, #6] - ldrb r2, [r1, #7] - cmp r0, r2 - beq _081C3C34 - ldrb r0, [r1, #7] - movs r1, #0xa0 - movs r2, #0x30 - movs r3, #4 - bl SetMoveTypeSpritePosAndType - movs r0, #4 - movs r1, #0 - bl SetSpriteInvisibility - b _081C3C3C - .align 2, 0 -_081C3C30: .4byte gUnknown_82F0D54 -_081C3C34: - movs r0, #4 - movs r1, #1 - bl SetSpriteInvisibility -_081C3C3C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetMonTypeIcons - - thumb_func_start SetMoveTypeIcons -SetMoveTypeIcons: @ 0x081C3C44 - push {r4, r5, r6, lr} - ldr r0, _081C3C84 - ldr r0, [r0] - adds r5, r0, #0 - adds r5, #0x70 - movs r4, #0 - ldr r6, _081C3C88 -_081C3C52: - lsls r0, r4, #1 - adds r1, r5, #0 - adds r1, #0x14 - adds r1, r1, r0 - ldrh r0, [r1] - cmp r0, #0 - beq _081C3C8C - adds r1, r0, #0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r0, [r0, #2] - lsls r2, r4, #0x1c - movs r1, #0x80 - lsls r1, r1, #0x16 - adds r2, r2, r1 - lsrs r2, r2, #0x18 - adds r3, r4, #3 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r1, #0x57 - bl SetMoveTypeSpritePosAndType - b _081C3C98 - .align 2, 0 -_081C3C84: .4byte gUnknown_203CBE8 -_081C3C88: .4byte gUnknown_82ED220 -_081C3C8C: - adds r0, r4, #3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - bl SetSpriteInvisibility -_081C3C98: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _081C3C52 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end SetMoveTypeIcons - - thumb_func_start SetContestMoveTypeIcons -SetContestMoveTypeIcons: @ 0x081C3CA8 - push {r4, r5, lr} - ldr r0, _081C3CF0 - ldr r0, [r0] - adds r5, r0, #0 - adds r5, #0x70 - movs r4, #0 -_081C3CB4: - lsls r0, r4, #1 - adds r1, r5, #0 - adds r1, #0x14 - adds r2, r1, r0 - ldrh r0, [r2] - cmp r0, #0 - beq _081C3CF8 - ldr r1, _081C3CF4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r0, [r0, #1] - lsls r0, r0, #0x1d - lsrs r0, r0, #5 - movs r1, #0x90 - lsls r1, r1, #0x15 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - lsls r2, r4, #0x1c - movs r1, #0x80 - lsls r1, r1, #0x16 - adds r2, r2, r1 - lsrs r2, r2, #0x18 - adds r3, r4, #3 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r1, #0x57 - bl SetMoveTypeSpritePosAndType - b _081C3D04 - .align 2, 0 -_081C3CF0: .4byte gUnknown_203CBE8 -_081C3CF4: .4byte gUnknown_8565FCC -_081C3CF8: - adds r0, r4, #3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - bl SetSpriteInvisibility -_081C3D04: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _081C3CB4 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end SetContestMoveTypeIcons - - thumb_func_start SetNewMoveTypeIcon -SetNewMoveTypeIcon: @ 0x081C3D14 - push {lr} - ldr r0, _081C3D30 - ldr r1, [r0] - ldr r0, _081C3D34 - adds r3, r1, r0 - ldrh r0, [r3] - cmp r0, #0 - bne _081C3D38 - movs r0, #7 - movs r1, #1 - bl SetSpriteInvisibility - b _081C3D84 - .align 2, 0 -_081C3D30: .4byte gUnknown_203CBE8 -_081C3D34: .4byte 0x000040C4 -_081C3D38: - ldr r2, _081C3D5C - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #2 - bne _081C3D64 - ldr r2, _081C3D60 - ldrh r1, [r3] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #2] - movs r1, #0x57 - movs r2, #0x60 - movs r3, #7 - bl SetMoveTypeSpritePosAndType - b _081C3D84 - .align 2, 0 -_081C3D5C: .4byte 0x000040C0 -_081C3D60: .4byte gUnknown_82ED220 -_081C3D64: - ldr r1, _081C3D88 - ldrh r0, [r3] - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r0, [r0, #1] - lsls r0, r0, #0x1d - lsrs r0, r0, #5 - movs r1, #0x90 - lsls r1, r1, #0x15 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - movs r1, #0x57 - movs r2, #0x60 - movs r3, #7 - bl SetMoveTypeSpritePosAndType -_081C3D84: - pop {r0} - bx r0 - .align 2, 0 -_081C3D88: .4byte gUnknown_8565FCC - thumb_func_end SetNewMoveTypeIcon - - thumb_func_start sub_081C3D8C -sub_081C3D8C: @ 0x081C3D8C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _081C3E0C - ldr r2, [r2] - adds r0, #3 - ldr r3, _081C3E10 - adds r2, r2, r3 - adds r0, r2, r0 - ldrb r0, [r0] - lsls r4, r0, #4 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r5, _081C3E14 - adds r4, r4, r5 - adds r1, #3 - adds r2, r2, r1 - ldrb r0, [r2] - lsls r3, r0, #4 - adds r3, r3, r0 - lsls r3, r3, #2 - adds r3, r3, r5 - adds r5, r4, #0 - adds r5, #0x2a - ldrb r1, [r5] - adds r2, r3, #0 - adds r2, #0x2a - ldrb r0, [r2] - strb r0, [r5] - strb r1, [r2] - ldrb r6, [r4, #5] - lsrs r5, r6, #4 - ldrb r2, [r3, #5] - lsrs r2, r2, #4 - lsls r2, r2, #4 - movs r1, #0xf - adds r0, r1, #0 - ands r0, r6 - orrs r0, r2 - strb r0, [r4, #5] - lsls r5, r5, #4 - ldrb r0, [r3, #5] - ands r1, r0 - orrs r1, r5 - strb r1, [r3, #5] - adds r4, #0x3f - ldrb r0, [r4] - movs r2, #4 - orrs r0, r2 - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r4] - adds r3, #0x3f - ldrb r0, [r3] - orrs r0, r2 - ands r0, r1 - strb r0, [r3] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081C3E0C: .4byte gUnknown_203CBE8 -_081C3E10: .4byte 0x000040D3 -_081C3E14: .4byte gUnknown_20205AC - thumb_func_end sub_081C3D8C - - thumb_func_start CreatePokemonSprite -CreatePokemonSprite: @ 0x081C3E18 - push {r4, r5, r6, lr} - adds r3, r0, #0 - adds r6, r1, #0 - ldr r0, _081C3E40 - ldr r2, [r0] - adds r5, r2, #0 - adds r5, #0x70 - movs r1, #0 - ldrsh r0, [r6, r1] - cmp r0, #0 - beq _081C3E44 - cmp r0, #1 - bne _081C3E34 - b _081C3F58 -_081C3E34: - adds r0, r3, #0 - bl sub_081C3FBC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _081C3F78 - .align 2, 0 -_081C3E40: .4byte gUnknown_203CBE8 -_081C3E44: - ldr r0, _081C3E78 - ldr r1, _081C3E7C - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081C3EA4 - ldr r1, _081C3E80 - adds r0, r2, r1 - ldrb r1, [r0] - movs r0, #3 - bl sub_08068438 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081C3E8C - ldrh r2, [r5, #2] - lsls r0, r2, #3 - ldr r1, _081C3E84 - adds r0, r0, r1 - ldr r1, _081C3E88 - ldr r1, [r1] - ldr r1, [r1, #8] - b _081C3EEA - .align 2, 0 -_081C3E78: .4byte gUnknown_3002360 -_081C3E7C: .4byte 0x00000439 -_081C3E80: .4byte 0x000040BE -_081C3E84: .4byte gUnknown_82DDA1C -_081C3E88: .4byte gUnknown_2024178 -_081C3E8C: - ldrh r2, [r5, #2] - lsls r0, r2, #3 - ldr r1, _081C3E9C - adds r0, r0, r1 - ldr r1, _081C3EA0 - ldr r1, [r1] - ldr r1, [r1, #8] - b _081C3EC8 - .align 2, 0 -_081C3E9C: .4byte gUnknown_82DDA1C -_081C3EA0: .4byte gUnknown_2024178 -_081C3EA4: - ldr r0, _081C3ED0 - ldr r3, [r0] - cmp r3, #0 - beq _081C3EF8 - ldr r1, [r2] - ldr r0, _081C3ED4 - cmp r1, r0 - beq _081C3EBE - ldr r1, _081C3ED8 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #2 - bne _081C3EE0 -_081C3EBE: - ldrh r2, [r5, #2] - lsls r0, r2, #3 - ldr r1, _081C3EDC - adds r0, r0, r1 - ldr r1, [r3, #8] -_081C3EC8: - ldr r3, [r5, #0xc] - bl HandleLoadSpecialPokePic_2 - b _081C3F70 - .align 2, 0 -_081C3ED0: .4byte gUnknown_2024178 -_081C3ED4: .4byte gUnknown_2024190 -_081C3ED8: .4byte 0x000040BC -_081C3EDC: .4byte gUnknown_82DDA1C -_081C3EE0: - ldrh r2, [r5, #2] - lsls r0, r2, #3 - ldr r1, _081C3EF4 - adds r0, r0, r1 - ldr r1, [r3, #8] -_081C3EEA: - ldr r3, [r5, #0xc] - bl HandleLoadSpecialPokePic_DontHandleDeoxys - b _081C3F70 - .align 2, 0 -_081C3EF4: .4byte gUnknown_82DDA1C -_081C3EF8: - ldr r1, [r2] - ldr r0, _081C3F28 - cmp r1, r0 - beq _081C3F0A - ldr r1, _081C3F2C - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #2 - bne _081C3F34 -_081C3F0A: - ldrh r4, [r5, #2] - lsls r4, r4, #3 - ldr r0, _081C3F30 - adds r4, r4, r0 - movs r0, #0 - movs r1, #1 - bl sub_0806EF7C - adds r1, r0, #0 - ldrh r2, [r5, #2] - ldr r3, [r5, #0xc] - adds r0, r4, #0 - bl HandleLoadSpecialPokePic_2 - b _081C3F70 - .align 2, 0 -_081C3F28: .4byte gUnknown_2024190 -_081C3F2C: .4byte 0x000040BC -_081C3F30: .4byte gUnknown_82DDA1C -_081C3F34: - ldrh r4, [r5, #2] - lsls r4, r4, #3 - ldr r0, _081C3F54 - adds r4, r4, r0 - movs r0, #0 - movs r1, #1 - bl sub_0806EF7C - adds r1, r0, #0 - ldrh r2, [r5, #2] - ldr r3, [r5, #0xc] - adds r0, r4, #0 - bl HandleLoadSpecialPokePic_DontHandleDeoxys - b _081C3F70 - .align 2, 0 -_081C3F54: .4byte gUnknown_82DDA1C -_081C3F58: - ldrh r0, [r5, #2] - ldr r1, [r5, #0x48] - ldr r2, [r5, #0xc] - bl GetMonSpritePalStructFromOtIdPersonality - adds r4, r0, #0 - bl LoadCompressedSpritePalette - ldrh r0, [r4, #4] - movs r1, #1 - bl SetMultiuseSpriteTemplateToPokemon -_081C3F70: - ldrh r0, [r6] - adds r0, #1 - strh r0, [r6] - movs r0, #0xff -_081C3F78: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CreatePokemonSprite - - thumb_func_start PlayMonCry -PlayMonCry: @ 0x081C3F80 - push {r4, lr} - ldr r0, _081C3FA8 - ldr r1, [r0] - adds r4, r1, #0 - adds r4, #0x70 - ldrb r0, [r4, #4] - cmp r0, #0 - bne _081C3FB6 - adds r0, r1, #0 - adds r0, #0xc - bl ShouldPlayNormalMonCry - cmp r0, #1 - bne _081C3FAC - ldrh r0, [r4, #2] - movs r1, #0 - movs r2, #0 - bl PlayCry3 - b _081C3FB6 - .align 2, 0 -_081C3FA8: .4byte gUnknown_203CBE8 -_081C3FAC: - ldrh r0, [r4, #2] - movs r1, #0 - movs r2, #0xb - bl PlayCry3 -_081C3FB6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end PlayMonCry - - thumb_func_start sub_081C3FBC -sub_081C3FBC: @ 0x081C3FBC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _081C4020 - ldr r6, [r0] - adds r6, #0x70 - ldr r0, _081C4024 - movs r1, #0x28 - movs r2, #0x40 - movs r3, #5 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r4, r0, #4 - add r4, r8 - lsls r4, r4, #2 - ldr r5, _081C4028 - adds r7, r4, r5 - adds r0, r7, #0 - bl FreeSpriteOamMatrix - ldrh r0, [r6, #2] - movs r1, #0 - strh r0, [r7, #0x2e] - strh r1, [r7, #0x32] - adds r5, #0x1c - adds r4, r4, r5 - ldr r0, _081C402C - str r0, [r4] - ldrb r1, [r7, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r7, #5] - ldrh r0, [r6, #2] - bl IsMonSpriteNotFlipped - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081C4030 - adds r0, r7, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r2, #1 - orrs r1, r2 - strb r1, [r0] - b _081C403E - .align 2, 0 -_081C4020: .4byte gUnknown_203CBE8 -_081C4024: .4byte gUnknown_2024640 -_081C4028: .4byte gUnknown_20205AC -_081C402C: .4byte SpriteCB_Pokemon -_081C4030: - adds r2, r7, #0 - adds r2, #0x3f - ldrb r1, [r2] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_081C403E: - mov r0, r8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081C3FBC - - thumb_func_start SpriteCB_Pokemon -SpriteCB_Pokemon: @ 0x081C404C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _081C408C - ldr r0, [r0] - adds r5, r0, #0 - adds r5, #0x70 - ldr r0, _081C4090 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081C4086 - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _081C4086 - ldrh r0, [r4, #0x2e] - bl IsMonSpriteNotFlipped - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x30] - bl PlayMonCry - ldrh r1, [r4, #0x2e] - ldrb r2, [r5, #4] - adds r0, r4, #0 - bl PokemonSummaryDoMonAnimation -_081C4086: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C408C: .4byte gUnknown_203CBE8 -_081C4090: .4byte gUnknown_2037C74 - thumb_func_end SpriteCB_Pokemon - - thumb_func_start sub_081C4094 -sub_081C4094: @ 0x081C4094 - ldr r1, _081C409C - strb r0, [r1] - bx lr - .align 2, 0 -_081C409C: .4byte gUnknown_203CBF0 - thumb_func_end sub_081C4094 - - thumb_func_start SummaryScreen_DestroyUnknownTask -SummaryScreen_DestroyUnknownTask: @ 0x081C40A0 - push {r4, lr} - ldr r4, _081C40B8 - ldrb r0, [r4] - cmp r0, #0xff - beq _081C40B2 - bl DestroyTask - movs r0, #0xff - strb r0, [r4] -_081C40B2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C40B8: .4byte gUnknown_203CBF0 - thumb_func_end SummaryScreen_DestroyUnknownTask - - thumb_func_start SummaryScreen_DoesSpriteHaveCallback -SummaryScreen_DoesSpriteHaveCallback: @ 0x081C40BC - push {lr} - ldr r2, _081C40E0 - ldr r0, _081C40E4 - ldr r0, [r0] - ldr r1, _081C40E8 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _081C40EC - cmp r1, r0 - beq _081C40F0 - movs r0, #1 - b _081C40F2 - .align 2, 0 -_081C40E0: .4byte gUnknown_20205AC -_081C40E4: .4byte gUnknown_203CBE8 -_081C40E8: .4byte 0x000040D3 -_081C40EC: .4byte sub_08007140 -_081C40F0: - movs r0, #0 -_081C40F2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end SummaryScreen_DoesSpriteHaveCallback - - thumb_func_start StopPokemonAnimations -StopPokemonAnimations: @ 0x081C40F8 - push {r4, r5, r6, lr} - ldr r6, _081C4174 - ldr r5, _081C4178 - ldr r0, [r5] - ldr r4, _081C417C - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x2c - ldrb r1, [r0] - movs r2, #0x40 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r5] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r6, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _081C4180 - str r1, [r0] - bl StopPokemonAnimationDelayTask - ldr r0, [r5] - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r0, [r0, #5] - lsrs r0, r0, #4 - lsls r3, r0, #4 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r1, #0 - orrs r3, r0 - movs r2, #0 - ldr r5, _081C4184 - ldr r4, _081C4188 -_081C4154: - adds r0, r2, r3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0xf - adds r1, r0, r5 - adds r0, r0, r4 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0xf - bls _081C4154 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081C4174: .4byte gUnknown_20205AC -_081C4178: .4byte gUnknown_203CBE8 -_081C417C: .4byte 0x000040D3 -_081C4180: .4byte sub_08007140 -_081C4184: .4byte gUnknown_20373B4 -_081C4188: .4byte gUnknown_20377B4 - thumb_func_end StopPokemonAnimations - - thumb_func_start CreateMonMarkingsSprite -CreateMonMarkingsSprite: @ 0x081C418C - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r1, _081C41DC - ldr r2, _081C41E0 - adds r0, r1, #0 - bl sub_081204B4 - adds r4, r0, #0 - ldr r6, _081C41E4 - ldr r0, [r6] - str r4, [r0, #8] - cmp r4, #0 - beq _081C41D6 - adds r0, r5, #0 - movs r1, #8 - bl GetMonData - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim - ldr r1, [r6] - ldr r2, [r1, #8] - movs r0, #0x3c - strh r0, [r2, #0x20] - ldr r2, [r1, #8] - movs r0, #0x1a - strh r0, [r2, #0x22] - ldr r2, [r1, #8] - ldrb r1, [r2, #5] - subs r0, #0x27 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2, #5] -_081C41D6: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081C41DC: .4byte 0x00007533 -_081C41E0: .4byte gUnknown_85ED570 -_081C41E4: .4byte gUnknown_203CBE8 - thumb_func_end CreateMonMarkingsSprite - - thumb_func_start RemoveAndCreateMonMarkingsSprite -RemoveAndCreateMonMarkingsSprite: @ 0x081C41E8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _081C4208 - ldr r0, [r0] - ldr r0, [r0, #8] - bl DestroySprite - ldr r0, _081C420C - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl CreateMonMarkingsSprite - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C4208: .4byte gUnknown_203CBE8 -_081C420C: .4byte 0x00007533 - thumb_func_end RemoveAndCreateMonMarkingsSprite - - thumb_func_start CreateCaughtBallSprite -CreateCaughtBallSprite: @ 0x081C4210 - push {r4, lr} - movs r1, #0x26 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl ItemIdToBallId - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl LoadBallGfx - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _081C427C - adds r0, r0, r1 - movs r1, #0x10 - movs r2, #0x78 - movs r3, #0 - bl CreateSprite - ldr r2, _081C4280 - ldr r1, [r2] - ldr r3, _081C4284 - adds r1, r1, r3 - strb r0, [r1] - ldr r4, _081C4288 - ldr r2, [r2] - adds r2, r2, r3 - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _081C428C - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r1, [r0, #5] - movs r2, #0xc - orrs r1, r2 - strb r1, [r0, #5] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C427C: .4byte gUnknown_82FCF94 -_081C4280: .4byte gUnknown_203CBE8 -_081C4284: .4byte 0x000040D4 -_081C4288: .4byte gUnknown_20205AC -_081C428C: .4byte sub_08007140 - thumb_func_end CreateCaughtBallSprite - - thumb_func_start sub_081C4290 -sub_081C4290: @ 0x081C4290 - push {r4, r5, lr} - ldr r5, _081C42E0 - ldr r0, [r5] - ldr r1, _081C42E4 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, #0xff - bne _081C42AE - ldr r0, _081C42E8 - movs r1, #0x40 - movs r2, #0x90 - movs r3, #0 - bl CreateSprite - strb r0, [r4] -_081C42AE: - ldr r0, [r5] - adds r0, #0xc - bl GetMonAilment - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - beq _081C42F0 - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _081C42EC - adds r0, r0, r1 - subs r1, r2, #1 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl StartSpriteAnim - movs r0, #2 - movs r1, #0 - bl SetSpriteInvisibility - b _081C42F8 - .align 2, 0 -_081C42E0: .4byte gUnknown_203CBE8 -_081C42E4: .4byte 0x000040D5 -_081C42E8: .4byte gUnknown_85ED558 -_081C42EC: .4byte gUnknown_20205AC -_081C42F0: - movs r0, #2 - movs r1, #1 - bl SetSpriteInvisibility -_081C42F8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C4290 - - thumb_func_start sub_081C4300 -sub_081C4300: @ 0x081C4300 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r0, _081C4368 - ldr r1, _081C436C - add r1, r8 - ldr r0, [r0] - adds r7, r0, r1 - ldr r1, _081C4370 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - bls _081C43DA - movs r0, #0 - mov sb, r0 - mov r1, r8 - cmp r1, #8 - bne _081C4332 - movs r0, #1 - mov sb, r0 -_081C4332: - movs r5, #0 - ldr r6, _081C4374 - mov sl, r5 -_081C4338: - lsls r1, r5, #0x14 - movs r0, #0xb0 - lsls r0, r0, #0xf - adds r1, r1, r0 - asrs r1, r1, #0x10 - ldr r0, _081C4378 - movs r2, #0x28 - mov r3, sb - bl CreateSprite - adds r1, r7, r5 - strb r0, [r1] - adds r4, r1, #0 - cmp r5, #0 - bne _081C437C - ldrb r1, [r7] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #4 - bl StartSpriteAnim - b _081C43A2 - .align 2, 0 -_081C4368: .4byte gUnknown_203CBE8 -_081C436C: .4byte 0x000040D3 -_081C4370: .4byte 0x000040C0 -_081C4374: .4byte gUnknown_20205AC -_081C4378: .4byte gUnknown_85ED4D4 -_081C437C: - cmp r5, #9 - bne _081C4392 - ldrb r1, [r7, #9] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #5 - bl StartSpriteAnim - b _081C43A2 -_081C4392: - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #6 - bl StartSpriteAnim -_081C43A2: - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r6, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _081C43E8 - str r1, [r0] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - mov r1, r8 - strh r1, [r0, #0x2e] - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - mov r1, sl - strh r1, [r0, #0x30] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #9 - bls _081C4338 -_081C43DA: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C43E8: .4byte sub_081C43EC - thumb_func_end sub_081C4300 - - thumb_func_start sub_081C43EC -sub_081C43EC: @ 0x081C43EC - push {lr} - adds r3, r0, #0 - adds r0, #0x2a - ldrb r0, [r0] - subs r0, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bhi _081C4424 - ldrh r0, [r3, #0x30] - adds r0, #1 - movs r1, #0x1f - ands r0, r1 - strh r0, [r3, #0x30] - cmp r0, #0x18 - ble _081C4418 - adds r2, r3, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - b _081C4432 -_081C4418: - adds r2, r3, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - b _081C4430 -_081C4424: - movs r0, #0 - strh r0, [r3, #0x30] - adds r2, r3, #0 - adds r2, #0x3e - ldrb r1, [r2] - subs r0, #5 -_081C4430: - ands r0, r1 -_081C4432: - strb r0, [r2] - movs r1, #0x2e - ldrsh r0, [r3, r1] - cmp r0, #8 - bne _081C444C - ldr r0, _081C4444 - ldr r0, [r0] - ldr r1, _081C4448 - b _081C4452 - .align 2, 0 -_081C4444: .4byte gUnknown_203CBE8 -_081C4448: .4byte 0x000040C6 -_081C444C: - ldr r0, _081C4460 - ldr r0, [r0] - ldr r1, _081C4464 -_081C4452: - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #4 - strh r0, [r3, #0x26] - pop {r0} - bx r0 - .align 2, 0 -_081C4460: .4byte gUnknown_203CBE8 -_081C4464: .4byte 0x000040C7 - thumb_func_end sub_081C43EC - - thumb_func_start sub_081C4468 -sub_081C4468: @ 0x081C4468 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r4, #0 -_081C4470: - adds r0, r5, r4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroySpriteInArray - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #9 - bls _081C4470 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C4468 - - thumb_func_start sub_081C448C -sub_081C448C: @ 0x081C448C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r0, _081C44D0 - ldr r0, [r0] - ldr r1, _081C44D4 - adds r5, r0, r1 - lsls r0, r6, #1 - adds r0, r0, r6 - lsls r0, r0, #0x18 - movs r4, #0 - ldr r7, _081C44D8 - movs r2, #0x80 - lsls r2, r2, #0x13 - adds r2, r2, r0 - mov sb, r2 - lsrs r6, r0, #0x18 - movs r1, #0xa0 - lsls r1, r1, #0x13 - adds r1, r1, r0 - mov r8, r1 -_081C44BC: - cmp r4, #0 - bne _081C44DC - ldrb r1, [r5] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - mov r2, sb - b _081C44EC - .align 2, 0 -_081C44D0: .4byte gUnknown_203CBE8 -_081C44D4: .4byte 0x000040DB -_081C44D8: .4byte gUnknown_20205AC -_081C44DC: - cmp r4, #9 - bne _081C44F4 - ldrb r1, [r5, #9] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - mov r2, r8 -_081C44EC: - lsrs r1, r2, #0x18 - bl StartSpriteAnim - b _081C450A -_081C44F4: - adds r0, r5, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - adds r1, r6, #6 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl StartSpriteAnim -_081C450A: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #9 - bls _081C44BC - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_081C448C - - thumb_func_start sub_081C4520 -sub_081C4520: @ 0x081C4520 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081C456C - ldr r2, _081C4570 - adds r0, r0, r2 - ldr r1, [r1] - adds r5, r1, r0 - movs r3, #0 - ldr r4, _081C4574 - movs r7, #5 - rsbs r7, r7, #0 - movs r6, #0 -_081C453A: - adds r2, r5, r3 - ldrb r1, [r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - strh r6, [r0, #0x30] - ldrb r0, [r2] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - adds r1, #0x3e - ldrb r2, [r1] - adds r0, r7, #0 - ands r0, r2 - strb r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #9 - bls _081C453A - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C456C: .4byte gUnknown_203CBE8 -_081C4570: .4byte 0x000040D3 -_081C4574: .4byte gUnknown_20205AC - thumb_func_end sub_081C4520 - - thumb_func_start sub_081C4578 -sub_081C4578: @ 0x081C4578 - push {r4, r5, lr} - sub sp, #4 - adds r5, r0, #0 - ldr r4, _081C45D8 - movs r0, #4 - bl sub_08000BC8 - str r0, [r4] - ldr r1, [r5] - lsls r0, r1, #0x14 - lsrs r4, r0, #0x1e - cmp r4, #0 - bne _081C45E4 - lsls r0, r1, #0x1e - lsrs r0, r0, #0x1e - movs r1, #8 - movs r2, #0 - bl SetBgAttribute - ldr r3, [r5] - lsls r0, r3, #0x1e - lsrs r0, r0, #0x1e - ldr r1, _081C45DC - lsls r3, r3, #0x16 - lsrs r3, r3, #0x18 - str r4, [sp] - movs r2, #0 - bl decompress_and_copy_tile_data_to_vram - ldr r0, [r5] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - ldr r1, _081C45E0 - movs r2, #1 - str r2, [sp] - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, [r5] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x18 - str r4, [sp] - movs r2, #0x20 - movs r3, #0x20 - bl sub_081999D4 - b _081C4636 - .align 2, 0 -_081C45D8: .4byte gUnknown_203CBF4 -_081C45DC: .4byte gUnknown_85ED5F0 -_081C45E0: .4byte gUnknown_85EE344 -_081C45E4: - lsls r0, r1, #0x1e - lsrs r0, r0, #0x1e - movs r1, #8 - movs r2, #2 - bl SetBgAttribute - ldr r0, [r5] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - movs r1, #9 - movs r2, #1 - bl SetBgAttribute - ldr r3, [r5] - lsls r0, r3, #0x1e - lsrs r0, r0, #0x1e - ldr r1, _081C4680 - lsls r3, r3, #0x16 - lsrs r3, r3, #0x18 - movs r2, #0 - str r2, [sp] - bl decompress_and_copy_tile_data_to_vram - ldr r0, [r5] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - ldr r1, _081C4684 - movs r4, #1 - str r4, [sp] - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, [r5] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x18 - str r4, [sp] - movs r2, #0x40 - movs r3, #0x40 - bl sub_081999D4 -_081C4636: - ldr r0, [r5] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - movs r1, #0 - movs r2, #0 - bl ChangeBgX - ldr r0, [r5] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - movs r1, #0 - movs r2, #0 - bl ChangeBgY - ldr r0, [r5] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - movs r1, #4 - movs r2, #1 - bl SetBgAttribute - ldr r0, _081C4688 - ldr r1, _081C468C - ldr r2, _081C4690 - bl CpuSet - ldr r0, _081C4694 - ldr r1, [r0] - ldr r0, [r5] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - strb r0, [r1] - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C4680: .4byte gUnknown_85EE658 -_081C4684: .4byte gUnknown_85EF3B4 -_081C4688: .4byte gUnknown_85ED590 -_081C468C: .4byte gUnknown_2037494 -_081C4690: .4byte 0x04000018 -_081C4694: .4byte gUnknown_203CBF4 - thumb_func_end sub_081C4578 - - thumb_func_start sub_081C4698 -sub_081C4698: @ 0x081C4698 - push {lr} - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081C46A8 - movs r0, #1 - b _081C46B4 -_081C46A8: - ldr r0, _081C46B8 - ldr r0, [r0] - ldrb r0, [r0] - bl ShowBg - movs r0, #0 -_081C46B4: - pop {r1} - bx r1 - .align 2, 0 -_081C46B8: .4byte gUnknown_203CBF4 - thumb_func_end sub_081C4698 - - thumb_func_start sub_081C46BC -sub_081C46BC: @ 0x081C46BC - push {r4, lr} - ldr r4, _081C46D4 - ldr r0, [r4] - cmp r0, #0 - beq _081C46CE - bl Free - movs r0, #0 - str r0, [r4] -_081C46CE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C46D4: .4byte gUnknown_203CBF4 - thumb_func_end sub_081C46BC - - thumb_func_start sub_081C46D8 -sub_081C46D8: @ 0x081C46D8 - push {lr} - adds r1, r0, #0 - ldr r0, _081C46F0 - ldr r0, [r0] - ldrb r0, [r0] - lsls r1, r1, #8 - movs r2, #0 - bl ChangeBgY - pop {r0} - bx r0 - .align 2, 0 -_081C46F0: .4byte gUnknown_203CBF4 - thumb_func_end sub_081C46D8 - - thumb_func_start InitBattlePyramidBagCursorPosition -InitBattlePyramidBagCursorPosition: @ 0x081C46F4 - ldr r1, _081C4700 - movs r0, #0 - strh r0, [r1, #6] - strh r0, [r1, #8] - bx lr - .align 2, 0 -_081C4700: .4byte gUnknown_203CBFC - thumb_func_end InitBattlePyramidBagCursorPosition - - thumb_func_start CB2_PyramidBagMenuFromStartMenu -CB2_PyramidBagMenuFromStartMenu: @ 0x081C4704 - push {lr} - ldr r1, _081C4714 - movs r0, #0 - bl sub_081C47A0 - pop {r0} - bx r0 - .align 2, 0 -_081C4714: .4byte CB2_ReturnToFieldWithOpenMenu - thumb_func_end CB2_PyramidBagMenuFromStartMenu - - thumb_func_start sub_081C4718 -sub_081C4718: @ 0x081C4718 - push {lr} - ldr r1, _081C4728 - movs r0, #1 - bl sub_081C47A0 - pop {r0} - bx r0 - .align 2, 0 -_081C4728: .4byte sub_0805996C - thumb_func_end sub_081C4718 - - thumb_func_start sub_081C472C -sub_081C472C: @ 0x081C472C - push {lr} - bl sub_080987DC - movs r0, #1 - movs r1, #0 - bl FadeScreen - ldr r0, _081C4748 - movs r1, #0xa - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_081C4748: .4byte sub_081C474C - thumb_func_end sub_081C472C - - thumb_func_start sub_081C474C -sub_081C474C: @ 0x081C474C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _081C477C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081C4776 - bl CleanupOverworldWindowsAndTilemaps - ldr r0, _081C4780 - ldr r1, _081C4784 - str r1, [r0] - ldr r1, _081C4788 - movs r0, #3 - bl sub_081C47A0 - adds r0, r4, #0 - bl DestroyTask -_081C4776: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C477C: .4byte gUnknown_2037C74 -_081C4780: .4byte gUnknown_3005B10 -_081C4784: .4byte hm_add_c3_without_phase_2 -_081C4788: .4byte sub_08085A30 - thumb_func_end sub_081C474C - - thumb_func_start sub_081C478C -sub_081C478C: @ 0x081C478C - push {lr} - ldr r0, _081C479C - ldr r1, [r0] - movs r0, #4 - bl sub_081C47A0 - pop {r0} - bx r0 - .align 2, 0 -_081C479C: .4byte gUnknown_203CBFC - thumb_func_end sub_081C478C - - thumb_func_start sub_081C47A0 -sub_081C47A0: @ 0x081C47A0 - push {r4, r5, r6, lr} - adds r5, r1, #0 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r6, _081C4804 - ldr r0, _081C4808 - bl AllocZeroed - str r0, [r6] - cmp r4, #4 - beq _081C47BA - ldr r0, _081C480C - strb r4, [r0, #4] -_081C47BA: - cmp r5, #0 - beq _081C47C2 - ldr r0, _081C480C - str r5, [r0] -_081C47C2: - ldr r0, [r6] - movs r1, #0 - str r1, [r0] - ldr r1, _081C4810 - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] - ldr r0, [r6] - ldr r1, _081C4814 - adds r0, r0, r1 - movs r1, #1 - rsbs r1, r1, #0 - strb r1, [r0] - ldr r0, [r6] - ldr r1, _081C4818 - adds r0, r0, r1 - movs r1, #0xff - movs r2, #0xb - bl memset - ldr r0, [r6] - ldr r1, _081C481C - adds r0, r0, r1 - movs r1, #0xff - movs r2, #5 - bl memset - ldr r0, _081C4820 - bl SetMainCallback2 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081C4804: .4byte gUnknown_203CBF8 -_081C4808: .4byte 0x0000098C -_081C480C: .4byte gUnknown_203CBFC -_081C4810: .4byte 0x00000814 -_081C4814: .4byte 0x00000816 -_081C4818: .4byte 0x00000804 -_081C481C: .4byte 0x0000080F -_081C4820: .4byte sub_081C4854 - thumb_func_end sub_081C47A0 - - thumb_func_start sub_081C4824 -sub_081C4824: @ 0x081C4824 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C4824 - - thumb_func_start sub_081C4840 -sub_081C4840: @ 0x081C4840 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C4840 - - thumb_func_start sub_081C4854 -sub_081C4854: @ 0x081C4854 - push {lr} -_081C4856: - bl sub_081221F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081C487A - bl sub_081C4880 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081C487A - bl sub_081221B8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081C4856 -_081C487A: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C4854 - - thumb_func_start sub_081C4880 -sub_081C4880: @ 0x081C4880 - push {lr} - sub sp, #4 - ldr r0, _081C48A0 - movs r1, #0x87 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0x10 - bls _081C4894 - b _081C49C4 -_081C4894: - lsls r0, r0, #2 - ldr r1, _081C48A4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081C48A0: .4byte gUnknown_3002360 -_081C48A4: .4byte _081C48A8 -_081C48A8: @ jump table - .4byte _081C48EC @ case 0 - .4byte _081C48F6 @ case 1 - .4byte _081C48FC @ case 2 - .4byte _081C4902 @ case 3 - .4byte _081C4914 @ case 4 - .4byte _081C491A @ case 5 - .4byte _081C492A @ case 6 - .4byte _081C4944 @ case 7 - .4byte _081C4950 @ case 8 - .4byte _081C4956 @ case 9 - .4byte _081C4964 @ case 10 - .4byte _081C496A @ case 11 - .4byte _081C4970 @ case 12 - .4byte _081C4976 @ case 13 - .4byte _081C497C @ case 14 - .4byte _081C4982 @ case 15 - .4byte _081C4990 @ case 16 -_081C48EC: - bl SetVBlankHBlankCallbacksToNull - bl sub_08199640 - b _081C49AA -_081C48F6: - bl ScanlineEffect_Stop - b _081C49AA -_081C48FC: - bl FreeAllSpritePalettes - b _081C49AA -_081C4902: - bl ResetPaletteFade - ldr r2, _081C4910 - ldrb r0, [r2, #8] - movs r1, #0x80 - orrs r0, r1 - b _081C49A8 - .align 2, 0 -_081C4910: .4byte gUnknown_2037C74 -_081C4914: - bl ResetSpriteData - b _081C49AA -_081C491A: - bl sub_081221B8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081C49AA - bl ResetTasks - b _081C49AA -_081C492A: - bl sub_081C49E4 - ldr r0, _081C493C - ldr r0, [r0] - ldr r1, _081C4940 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0] - b _081C49AA - .align 2, 0 -_081C493C: .4byte gUnknown_203CBF8 -_081C4940: .4byte 0x00000984 -_081C4944: - bl sub_081C4A40 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081C49DC - b _081C49AA -_081C4950: - bl sub_081C63F0 - b _081C49AA -_081C4956: - bl sub_081C5120 - bl sub_081C51B8 - bl sub_081C521C - b _081C49AA -_081C4964: - bl SetBagItemsListTemplate - b _081C49AA -_081C496A: - bl sub_081C4EF4 - b _081C49AA -_081C4970: - bl sub_081C66B4 - b _081C49AA -_081C4976: - bl AddScrollArrow - b _081C49AA -_081C497C: - bl sub_081C67CC - b _081C49AA -_081C4982: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - b _081C49AA -_081C4990: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r2, _081C49BC - ldrb r1, [r2, #8] - movs r0, #0x7f - ands r0, r1 -_081C49A8: - strb r0, [r2, #8] -_081C49AA: - ldr r1, _081C49C0 - movs r0, #0x87 - lsls r0, r0, #3 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _081C49DC - .align 2, 0 -_081C49BC: .4byte gUnknown_2037C74 -_081C49C0: .4byte gUnknown_3002360 -_081C49C4: - ldr r0, _081C49D4 - bl SetVBlankCallback - ldr r0, _081C49D8 - bl SetMainCallback2 - movs r0, #1 - b _081C49DE - .align 2, 0 -_081C49D4: .4byte sub_081C4840 -_081C49D8: .4byte sub_081C4824 -_081C49DC: - movs r0, #0 -_081C49DE: - add sp, #4 - pop {r1} - bx r1 - thumb_func_end sub_081C4880 - - thumb_func_start sub_081C49E4 -sub_081C49E4: @ 0x081C49E4 - push {lr} - bl ResetVramOamAndBgCntRegs - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _081C4A38 - movs r0, #0 - movs r2, #3 - bl InitBgsFromTemplates - ldr r0, _081C4A3C - ldr r1, [r0] - adds r1, #4 - movs r0, #2 - bl SetBgTilemapBuffer - bl ResetAllBgsCoordinates - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 -_081C4A38: .4byte gUnknown_85EF704 -_081C4A3C: .4byte gUnknown_203CBF8 - thumb_func_end sub_081C49E4 - - thumb_func_start sub_081C4A40 -sub_081C4A40: @ 0x081C4A40 - push {r4, lr} - sub sp, #4 - ldr r4, _081C4A60 - ldr r0, [r4] - ldr r1, _081C4A64 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #4 - bhi _081C4AF8 - lsls r0, r0, #2 - ldr r1, _081C4A68 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081C4A60: .4byte gUnknown_203CBF8 -_081C4A64: .4byte 0x00000984 -_081C4A68: .4byte _081C4A6C -_081C4A6C: @ jump table - .4byte _081C4A80 @ case 0 - .4byte _081C4A9C @ case 1 - .4byte _081C4AC0 @ case 2 - .4byte _081C4AD0 @ case 3 - .4byte _081C4ADC @ case 4 -_081C4A80: - bl reset_temp_tile_data_buffers - ldr r1, _081C4A98 - movs r0, #0 - str r0, [sp] - movs r0, #2 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - b _081C4AE0 - .align 2, 0 -_081C4A98: .4byte gUnknown_8D9A7CC -_081C4A9C: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081C4B10 - ldr r0, _081C4AB8 - ldr r4, _081C4ABC - ldr r1, [r4] - adds r1, #4 - bl sub_08034370 - ldr r1, [r4] - b _081C4AE4 - .align 2, 0 -_081C4AB8: .4byte gUnknown_8D9AFFC -_081C4ABC: .4byte gUnknown_203CBF8 -_081C4AC0: - ldr r0, _081C4ACC - movs r1, #0 - movs r2, #0x20 - bl LoadCompressedPalette - b _081C4AE0 - .align 2, 0 -_081C4ACC: .4byte gUnknown_8D9B13C -_081C4AD0: - ldr r0, _081C4AD8 - bl LoadCompressedSpriteSheet - b _081C4AE0 - .align 2, 0 -_081C4AD8: .4byte gUnknown_85EF81C -_081C4ADC: - bl sub_081C6658 -_081C4AE0: - ldr r0, _081C4AF0 - ldr r1, [r0] -_081C4AE4: - ldr r0, _081C4AF4 - adds r1, r1, r0 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _081C4B10 - .align 2, 0 -_081C4AF0: .4byte gUnknown_203CBF8 -_081C4AF4: .4byte 0x00000984 -_081C4AF8: - bl sub_08122334 - ldr r0, [r4] - ldr r1, _081C4B0C - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0] - movs r0, #1 - b _081C4B12 - .align 2, 0 -_081C4B0C: .4byte 0x00000984 -_081C4B10: - movs r0, #0 -_081C4B12: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081C4A40 - - thumb_func_start SetBagItemsListTemplate -SetBagItemsListTemplate: @ 0x081C4B1C - push {r4, r5, r6, r7, lr} - ldr r0, _081C4BE4 - ldr r2, [r0] - ldr r1, _081C4BE8 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1e - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r3, _081C4BEC - adds r0, r0, r3 - adds r7, r2, r0 - movs r6, #0 - ldr r1, _081C4BF0 - ldr r0, [r1] - ldr r4, _081C4BF4 - adds r0, r0, r4 - ldrb r0, [r0] - subs r0, #1 - cmp r6, r0 - bge _081C4B8A - adds r5, r1, #0 -_081C4B4C: - lsls r1, r6, #1 - adds r4, r1, r6 - lsls r4, r4, #3 - ldr r0, _081C4BF8 - adds r4, r4, r0 - ldr r0, [r5] - adds r0, r0, r4 - adds r1, r1, r7 - ldrh r1, [r1] - bl PyramidBag_CopyItemName - ldr r1, [r5] - lsls r2, r6, #3 - ldr r3, _081C4BFC - adds r0, r1, r3 - adds r0, r0, r2 - adds r4, r1, r4 - str r4, [r0] - ldr r4, _081C4C00 - adds r0, r1, r4 - adds r0, r0, r2 - str r6, [r0] - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r0, _081C4BF4 - adds r1, r1, r0 - ldrb r0, [r1] - subs r0, #1 - cmp r6, r0 - blt _081C4B4C -_081C4B8A: - ldr r5, _081C4BF0 - lsls r4, r6, #1 - adds r4, r4, r6 - lsls r4, r4, #3 - ldr r1, _081C4BF8 - adds r4, r4, r1 - ldr r0, [r5] - adds r0, r0, r4 - ldr r1, _081C4C04 - bl StringCopy - ldr r1, [r5] - lsls r2, r6, #3 - ldr r3, _081C4BFC - adds r0, r1, r3 - adds r0, r0, r2 - adds r4, r1, r4 - str r4, [r0] - ldr r4, _081C4C00 - adds r1, r1, r4 - adds r1, r1, r2 - movs r0, #2 - rsbs r0, r0, #0 - str r0, [r1] - ldr r2, _081C4C08 - adds r1, r2, #0 - ldr r0, _081C4C0C - ldm r0!, {r4, r6, r7} - stm r1!, {r4, r6, r7} - ldm r0!, {r4, r6, r7} - stm r1!, {r4, r6, r7} - ldr r1, [r5] - ldr r6, _081C4BF4 - adds r0, r1, r6 - ldrb r0, [r0] - strh r0, [r2, #0xc] - adds r3, r1, r3 - str r3, [r2] - ldr r7, _081C4C10 - adds r1, r1, r7 - ldrb r0, [r1] - strh r0, [r2, #0xe] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C4BE4: .4byte gUnknown_3005AF0 -_081C4BE8: .4byte 0x00000CA9 -_081C4BEC: .4byte 0x00000E2C -_081C4BF0: .4byte gUnknown_203CBF8 -_081C4BF4: .4byte 0x00000821 -_081C4BF8: .4byte 0x0000087C -_081C4BFC: .4byte 0x00000824 -_081C4C00: .4byte 0x00000828 -_081C4C04: .4byte gUnknown_85C9448 -_081C4C08: .4byte gUnknown_3006050 -_081C4C0C: .4byte gUnknown_85EF710 -_081C4C10: .4byte 0x00000822 - thumb_func_end SetBagItemsListTemplate - - thumb_func_start PyramidBag_CopyItemName -PyramidBag_CopyItemName: @ 0x081C4C14 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - adds r0, r4, #0 - bl sub_080D6DB0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bne _081C4C58 - ldr r0, _081C4C4C - adds r1, r4, #0 - subs r1, #0x84 - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - ldr r1, _081C4C50 - adds r0, r4, #0 - bl sub_080D5EC8 - ldr r1, _081C4C54 - adds r0, r5, #0 - bl StringExpandPlaceholders - b _081C4C60 - .align 2, 0 -_081C4C4C: .4byte gUnknown_2021C40 -_081C4C50: .4byte gUnknown_2021C54 -_081C4C54: .4byte gUnknown_85C976F -_081C4C58: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080D5EC8 -_081C4C60: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PyramidBag_CopyItemName - - thumb_func_start PyramidBagMoveCursorFunc -PyramidBagMoveCursorFunc: @ 0x081C4C68 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #1 - beq _081C4C7E - movs r0, #5 - bl sub_080A306C - bl sub_081C66E0 -_081C4C7E: - ldr r5, _081C4CD0 - ldr r1, [r5] - ldr r2, _081C4CD4 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0xff - bne _081C4D0C - adds r2, #1 - adds r0, r1, r2 - ldrb r1, [r0] - movs r0, #1 - eors r0, r1 - bl sub_081C67B8 - movs r0, #2 - rsbs r0, r0, #0 - cmp r4, r0 - beq _081C4CE8 - ldr r0, _081C4CD8 - ldr r2, [r0] - lsls r3, r4, #1 - ldr r1, _081C4CDC - adds r0, r2, r1 - ldrb r1, [r0] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1e - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r3, r3, r0 - ldr r0, _081C4CE0 - adds r2, r2, r0 - adds r2, r2, r3 - ldrh r0, [r2] - ldr r1, [r5] - ldr r2, _081C4CE4 - adds r1, r1, r2 - ldrb r1, [r1] - bl ShowItemImage - b _081C4CF6 - .align 2, 0 -_081C4CD0: .4byte gUnknown_203CBF8 -_081C4CD4: .4byte 0x00000814 -_081C4CD8: .4byte gUnknown_3005AF0 -_081C4CDC: .4byte 0x00000CA9 -_081C4CE0: .4byte 0x00000E2C -_081C4CE4: .4byte 0x00000815 -_081C4CE8: - ldr r0, _081C4D14 - ldr r1, [r5] - ldr r2, _081C4D18 - adds r1, r1, r2 - ldrb r1, [r1] - bl ShowItemImage -_081C4CF6: - ldr r0, _081C4D1C - ldr r1, [r0] - ldr r0, _081C4D18 - adds r1, r1, r0 - ldrb r0, [r1] - movs r2, #1 - eors r0, r2 - strb r0, [r1] - adds r0, r4, #0 - bl PrintItemDescription -_081C4D0C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C4D14: .4byte 0x0000FFFF -_081C4D18: .4byte 0x00000815 -_081C4D1C: .4byte gUnknown_203CBF8 - thumb_func_end PyramidBagMoveCursorFunc - - thumb_func_start PrintItemQuantity -PrintItemQuantity: @ 0x081C4D20 - push {r4, r5, r6, lr} - sub sp, #0x10 - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r2, r2, #0x18 - lsrs r5, r2, #0x18 - movs r0, #2 - rsbs r0, r0, #0 - cmp r4, r0 - beq _081C4DB2 - ldr r0, _081C4D58 - ldr r0, [r0] - ldr r1, _081C4D5C - adds r0, r0, r1 - ldrb r1, [r0] - cmp r1, #0xff - beq _081C4D68 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - cmp r1, r0 - bne _081C4D60 - adds r0, r5, #0 - movs r1, #1 - bl sub_081C52B4 - b _081C4D68 - .align 2, 0 -_081C4D58: .4byte gUnknown_203CBF8 -_081C4D5C: .4byte 0x00000814 -_081C4D60: - adds r0, r5, #0 - movs r1, #0xff - bl sub_081C52B4 -_081C4D68: - ldr r0, _081C4DBC - ldr r1, _081C4DC0 - ldr r3, [r1] - ldr r2, _081C4DC4 - adds r1, r3, r2 - ldrb r2, [r1] - lsls r2, r2, #0x1e - lsrs r2, r2, #0x1e - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #1 - adds r1, r4, r1 - ldr r2, _081C4DC8 - adds r3, r3, r2 - adds r3, r3, r1 - ldrb r1, [r3] - movs r2, #1 - movs r3, #2 - bl sub_080089D8 - ldr r4, _081C4DCC - ldr r1, _081C4DD0 - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r1, #0 - str r1, [sp] - str r1, [sp, #4] - movs r0, #0xff - str r0, [sp, #8] - str r1, [sp, #0xc] - adds r0, r6, #0 - adds r1, r4, #0 - movs r2, #0x60 - adds r3, r5, #0 - bl PrintOnWindow_Font1 -_081C4DB2: - add sp, #0x10 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081C4DBC: .4byte gUnknown_2021C40 -_081C4DC0: .4byte gUnknown_3005AF0 -_081C4DC4: .4byte 0x00000CA9 -_081C4DC8: .4byte 0x00000E54 -_081C4DCC: .4byte gUnknown_2021C7C -_081C4DD0: .4byte gUnknown_85C943C - thumb_func_end PrintItemQuantity - - thumb_func_start PrintItemDescription -PrintItemDescription: @ 0x081C4DD4 - push {r4, lr} - sub sp, #0x10 - adds r3, r0, #0 - movs r0, #2 - rsbs r0, r0, #0 - cmp r3, r0 - beq _081C4E18 - ldr r0, _081C4E0C - ldr r2, [r0] - lsls r3, r3, #1 - ldr r1, _081C4E10 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1e - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r3, r3, r0 - ldr r0, _081C4E14 - adds r2, r2, r0 - adds r2, r2, r3 - ldrh r0, [r2] - bl sub_080D6D40 - adds r4, r0, #0 - b _081C4E34 - .align 2, 0 -_081C4E0C: .4byte gUnknown_3005AF0 -_081C4E10: .4byte 0x00000CA9 -_081C4E14: .4byte 0x00000E2C -_081C4E18: - ldr r0, _081C4E5C - ldr r2, _081C4E60 - ldr r1, _081C4E64 - ldrb r1, [r1, #4] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl StringCopy - ldr r4, _081C4E68 - ldr r1, _081C4E6C - adds r0, r4, #0 - bl StringExpandPlaceholders -_081C4E34: - movs r0, #1 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - str r0, [sp, #8] - str r0, [sp, #0xc] - movs r0, #1 - adds r1, r4, #0 - movs r2, #0 - movs r3, #2 - bl PrintOnWindow_Font1 - add sp, #0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C4E5C: .4byte gUnknown_2021C40 -_081C4E60: .4byte gUnknown_85C9728 -_081C4E64: .4byte gUnknown_203CBFC -_081C4E68: .4byte gUnknown_2021C7C -_081C4E6C: .4byte gUnknown_85C9738 - thumb_func_end PrintItemDescription - - thumb_func_start AddScrollArrow -AddScrollArrow: @ 0x081C4E70 - push {r4, lr} - sub sp, #0x10 - ldr r4, _081C4EB8 - ldr r1, [r4] - ldr r2, _081C4EBC - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0xff - bne _081C4EB0 - adds r2, #0xb - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, #1 - adds r1, r1, r2 - ldrb r1, [r1] - subs r0, r0, r1 - str r0, [sp] - ldr r0, _081C4EC0 - str r0, [sp, #4] - str r0, [sp, #8] - ldr r0, _081C4EC4 - str r0, [sp, #0xc] - movs r0, #2 - movs r1, #0xac - movs r2, #0xc - movs r3, #0x94 - bl AddScrollIndicatorArrowPairParameterized - ldr r1, [r4] - ldr r2, _081C4EBC - adds r1, r1, r2 - strb r0, [r1] -_081C4EB0: - add sp, #0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C4EB8: .4byte gUnknown_203CBF8 -_081C4EBC: .4byte 0x00000816 -_081C4EC0: .4byte 0x00000B5E -_081C4EC4: .4byte gUnknown_203CC04 - thumb_func_end AddScrollArrow - - thumb_func_start sub_081C4EC8 -sub_081C4EC8: @ 0x081C4EC8 - push {r4, lr} - ldr r4, _081C4EEC - ldr r0, [r4] - ldr r2, _081C4EF0 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, #0xff - beq _081C4EE6 - bl RemoveScrollIndicatorArrowPair - ldr r0, [r4] - ldr r1, _081C4EF0 - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] -_081C4EE6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C4EEC: .4byte gUnknown_203CBF8 -_081C4EF0: .4byte 0x00000816 - thumb_func_end sub_081C4EC8 - - thumb_func_start sub_081C4EF4 -sub_081C4EF4: @ 0x081C4EF4 - push {r4, lr} - ldr r0, _081C4F24 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _081C4F28 - adds r4, r4, r0 - ldr r0, _081C4F2C - ldr r2, _081C4F30 - ldrh r1, [r2, #8] - ldrh r2, [r2, #6] - bl ListMenuInit - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C4F24: .4byte Task_HandlePyramidBagInput -_081C4F28: .4byte gUnknown_3005B68 -_081C4F2C: .4byte gUnknown_3006050 -_081C4F30: .4byte gUnknown_203CBFC - thumb_func_end sub_081C4EF4 - - thumb_func_start SwapItems -SwapItems: @ 0x081C4F34 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r2, _081C4F94 - ldr r6, [r2] - ldr r3, _081C4F98 - adds r2, r6, r3 - ldrb r3, [r2] - lsls r3, r3, #0x1e - lsrs r2, r3, #0x1e - lsls r4, r2, #2 - adds r4, r4, r2 - lsls r4, r4, #2 - ldr r2, _081C4F9C - adds r4, r4, r2 - adds r4, r6, r4 - lsrs r3, r3, #0x1e - lsls r2, r3, #2 - adds r2, r2, r3 - lsls r2, r2, #1 - ldr r3, _081C4FA0 - adds r2, r2, r3 - adds r6, r6, r2 - lsls r5, r0, #1 - adds r5, r5, r4 - ldrh r2, [r5] - mov r8, r2 - lsls r2, r1, #1 - adds r2, r2, r4 - ldrh r3, [r2] - strh r3, [r5] - mov r3, r8 - strh r3, [r2] - adds r0, r6, r0 - ldrb r2, [r0] - adds r6, r6, r1 - ldrb r1, [r6] - strb r1, [r0] - strb r2, [r6] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081C4F94: .4byte gUnknown_3005AF0 -_081C4F98: .4byte 0x00000CA9 -_081C4F9C: .4byte 0x00000E2C -_081C4FA0: .4byte 0x00000E54 - thumb_func_end SwapItems - - thumb_func_start MovePyramidBagItemSlotInList -MovePyramidBagItemSlotInList: @ 0x081C4FA4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r7, r4, #0 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - ldr r0, _081C501C - ldr r3, [r0] - ldr r1, _081C5020 - adds r0, r3, r1 - ldrb r1, [r0] - lsls r1, r1, #0x1e - lsrs r2, r1, #0x1e - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _081C5024 - adds r0, r0, r2 - adds r6, r3, r0 - lsrs r1, r1, #0x1e - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r1, _081C5028 - adds r0, r0, r1 - adds r3, r3, r0 - cmp r4, r5 - beq _081C505E - lsls r0, r4, #1 - adds r0, r0, r6 - ldrh r0, [r0] - mov ip, r0 - adds r0, r3, r4 - ldrb r0, [r0] - mov r8, r0 - cmp r5, r4 - bls _081C502C - subs r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r2, r4, #0x10 - cmp r4, r5 - bge _081C5050 -_081C4FFE: - asrs r2, r2, #0x10 - lsls r0, r2, #1 - adds r0, r0, r6 - ldrh r1, [r0, #2] - strh r1, [r0] - adds r1, r3, r2 - ldrb r0, [r1, #1] - strb r0, [r1] - adds r2, #1 - lsls r2, r2, #0x10 - asrs r0, r2, #0x10 - cmp r0, r5 - blt _081C4FFE - b _081C5050 - .align 2, 0 -_081C501C: .4byte gUnknown_3005AF0 -_081C5020: .4byte 0x00000CA9 -_081C5024: .4byte 0x00000E2C -_081C5028: .4byte 0x00000E54 -_081C502C: - lsls r2, r7, #0x10 - cmp r7, r5 - ble _081C5050 -_081C5032: - asrs r2, r2, #0x10 - lsls r1, r2, #1 - adds r1, r1, r6 - subs r0, r1, #2 - ldrh r0, [r0] - strh r0, [r1] - adds r1, r3, r2 - subs r0, r1, #1 - ldrb r0, [r0] - strb r0, [r1] - subs r2, #1 - lsls r2, r2, #0x10 - asrs r0, r2, #0x10 - cmp r0, r5 - bgt _081C5032 -_081C5050: - lsls r0, r5, #1 - adds r0, r0, r6 - mov r2, ip - strh r2, [r0] - adds r0, r3, r5 - mov r1, r8 - strb r1, [r0] -_081C505E: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end MovePyramidBagItemSlotInList - - thumb_func_start CompactItems -CompactItems: @ 0x081C5068 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r0, _081C5110 - ldr r3, [r0] - ldr r1, _081C5114 - adds r0, r3, r1 - ldrb r1, [r0] - lsls r1, r1, #0x1e - lsrs r2, r1, #0x1e - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r2, _081C5118 - adds r0, r0, r2 - adds r0, r0, r3 - mov sb, r0 - lsrs r1, r1, #0x1e - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r4, _081C511C - adds r0, r0, r4 - adds r3, r3, r0 - mov r8, r3 - movs r5, #0 - movs r3, #0 -_081C50A0: - lsls r0, r5, #1 - mov r1, sb - adds r2, r0, r1 - ldrh r0, [r2] - mov r4, r8 - adds r1, r4, r5 - cmp r0, #0 - beq _081C50B6 - ldrb r0, [r1] - cmp r0, #0 - bne _081C50BA -_081C50B6: - strh r3, [r2] - strb r3, [r1] -_081C50BA: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #9 - bls _081C50A0 - movs r5, #0 -_081C50C6: - adds r1, r5, #1 - lsls r0, r1, #0x18 - lsrs r4, r0, #0x18 - adds r7, r1, #0 - cmp r4, #9 - bhi _081C50FA - lsls r0, r5, #1 - mov r1, sb - adds r6, r0, r1 -_081C50D8: - ldrh r0, [r6] - cmp r0, #0 - beq _081C50E8 - mov r2, r8 - adds r0, r2, r5 - ldrb r0, [r0] - cmp r0, #0 - bne _081C50F0 -_081C50E8: - adds r0, r5, #0 - adds r1, r4, #0 - bl SwapItems -_081C50F0: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #9 - bls _081C50D8 -_081C50FA: - lsls r0, r7, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #8 - bls _081C50C6 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C5110: .4byte gUnknown_3005AF0 -_081C5114: .4byte 0x00000CA9 -_081C5118: .4byte 0x00000E2C -_081C511C: .4byte 0x00000E54 - thumb_func_end CompactItems - - thumb_func_start sub_081C5120 -sub_081C5120: @ 0x081C5120 - push {r4, r5, r6, lr} - ldr r0, _081C5190 - ldr r2, [r0] - ldr r1, _081C5194 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1e - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _081C5198 - adds r0, r0, r1 - adds r5, r2, r0 - bl CompactItems - ldr r3, _081C519C - ldr r0, [r3] - ldr r2, _081C51A0 - adds r0, r0, r2 - movs r1, #0 - strb r1, [r0] - movs r4, #0 - adds r6, r3, #0 -_081C5150: - lsls r0, r4, #1 - adds r0, r0, r5 - ldrh r0, [r0] - ldr r3, _081C519C - cmp r0, #0 - beq _081C5166 - ldr r1, [r6] - adds r1, r1, r2 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_081C5166: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #9 - bls _081C5150 - ldr r0, [r3] - ldr r2, _081C51A0 - adds r0, r0, r2 - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - ldr r0, [r3] - adds r2, r0, r2 - ldrb r2, [r2] - cmp r2, #8 - bls _081C51A8 - ldr r2, _081C51A4 - adds r1, r0, r2 - movs r0, #8 - strb r0, [r1] - b _081C51AE - .align 2, 0 -_081C5190: .4byte gUnknown_3005AF0 -_081C5194: .4byte 0x00000CA9 -_081C5198: .4byte 0x00000E2C -_081C519C: .4byte gUnknown_203CBF8 -_081C51A0: .4byte 0x00000821 -_081C51A4: .4byte 0x00000822 -_081C51A8: - ldr r1, _081C51B4 - adds r0, r0, r1 - strb r2, [r0] -_081C51AE: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081C51B4: .4byte 0x00000822 - thumb_func_end sub_081C5120 - - thumb_func_start sub_081C51B8 -sub_081C51B8: @ 0x081C51B8 - push {r4, r5, lr} - ldr r0, _081C5200 - ldrh r1, [r0, #8] - adds r3, r0, #0 - ldr r4, _081C5204 - cmp r1, #0 - beq _081C51E0 - ldrh r0, [r3, #8] - ldr r1, [r4] - ldr r5, _081C5208 - adds r2, r1, r5 - ldrb r2, [r2] - adds r0, r0, r2 - subs r5, #1 - adds r1, r1, r5 - ldrb r1, [r1] - cmp r0, r1 - ble _081C51E0 - subs r0, r1, r2 - strh r0, [r3, #8] -_081C51E0: - adds r2, r3, #0 - ldrh r1, [r2, #8] - ldrh r0, [r2, #6] - adds r1, r1, r0 - ldr r0, [r4] - ldr r4, _081C520C - adds r0, r0, r4 - ldrb r0, [r0] - cmp r1, r0 - blt _081C5214 - adds r1, r0, #0 - cmp r1, #0 - bne _081C5210 - strh r1, [r2, #6] - b _081C5214 - .align 2, 0 -_081C5200: .4byte gUnknown_203CBFC -_081C5204: .4byte gUnknown_203CBF8 -_081C5208: .4byte 0x00000822 -_081C520C: .4byte 0x00000821 -_081C5210: - subs r0, #1 - strh r0, [r3, #6] -_081C5214: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C51B8 - - thumb_func_start sub_081C521C -sub_081C521C: @ 0x081C521C - push {r4, r5, r6, r7, lr} - ldr r0, _081C5284 - ldrh r1, [r0, #6] - adds r5, r0, #0 - cmp r1, #4 - bls _081C527C - movs r4, #0 - ldrh r0, [r5, #6] - subs r0, #4 - cmp r4, r0 - bgt _081C527C - ldrh r2, [r5, #8] - ldr r6, _081C5288 - ldr r0, [r6] - ldr r3, _081C528C - adds r1, r0, r3 - ldrb r1, [r1] - adds r2, r2, r1 - ldr r7, _081C5290 - adds r0, r0, r7 - ldrb r0, [r0] - cmp r2, r0 - beq _081C527C - adds r3, r5, #0 -_081C524C: - ldrh r0, [r3, #6] - subs r0, #1 - strh r0, [r3, #6] - ldrh r0, [r3, #8] - adds r0, #1 - strh r0, [r3, #8] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldrh r0, [r3, #6] - subs r0, #4 - cmp r4, r0 - bgt _081C527C - ldrh r2, [r5, #8] - ldr r1, [r6] - ldr r7, _081C528C - adds r0, r1, r7 - ldrb r0, [r0] - adds r2, r2, r0 - ldr r0, _081C5290 - adds r1, r1, r0 - ldrb r1, [r1] - cmp r2, r1 - bne _081C524C -_081C527C: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C5284: .4byte gUnknown_203CBFC -_081C5288: .4byte gUnknown_203CBF8 -_081C528C: .4byte 0x00000822 -_081C5290: .4byte 0x00000821 - thumb_func_end sub_081C521C - - thumb_func_start sub_081C5294 -sub_081C5294: @ 0x081C5294 - push {r4, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl ListMenuGetYCoordForPrintingArrowCursor - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r4, #0 - bl sub_081C52B4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081C5294 - - thumb_func_start sub_081C52B4 -sub_081C52B4: @ 0x081C52B4 - push {r4, r5, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r2, r1, #0x18 - cmp r2, #0xff - bne _081C52F0 - movs r0, #1 - movs r1, #0 - bl sub_0800629C - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - movs r1, #1 - bl sub_0800629C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r4, [sp] - str r0, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - adds r3, r5, #0 - bl sub_08003A34 - b _081C5304 -_081C52F0: - ldr r1, _081C530C - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - str r0, [sp, #8] - str r2, [sp, #0xc] - movs r2, #0 - adds r3, r5, #0 - bl PrintOnWindow_Font1 -_081C5304: - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C530C: .4byte gUnknown_85C9421 - thumb_func_end sub_081C52B4 - - thumb_func_start sub_081C5310 -sub_081C5310: @ 0x081C5310 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _081C5340 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081C5344 - str r1, [r0] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C5340: .4byte gUnknown_3005B60 -_081C5344: .4byte sub_081C5348 - thumb_func_end sub_081C5310 - - thumb_func_start sub_081C5348 -sub_081C5348: @ 0x081C5348 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _081C5380 - adds r2, r0, r1 - ldr r0, _081C5384 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081C53B8 - ldrb r0, [r2] - ldr r4, _081C5388 - subs r2, r4, #2 - adds r1, r4, #0 - bl DestroyListMenuTask - ldr r0, _081C538C - ldr r0, [r0] - ldr r0, [r0] - cmp r0, #0 - beq _081C5390 - bl SetMainCallback2 - b _081C539A - .align 2, 0 -_081C5380: .4byte gUnknown_3005B68 -_081C5384: .4byte gUnknown_2037C74 -_081C5388: .4byte gUnknown_203CC04 -_081C538C: .4byte gUnknown_203CBF8 -_081C5390: - adds r0, r4, #0 - subs r0, #8 - ldr r0, [r0] - bl SetMainCallback2 -_081C539A: - bl sub_081C4EC8 - bl ResetSpriteData - bl FreeAllSpritePalettes - bl FreeAllWindowBuffers - ldr r0, _081C53C0 - ldr r0, [r0] - bl Free - adds r0, r5, #0 - bl DestroyTask -_081C53B8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C53C0: .4byte gUnknown_203CBF8 - thumb_func_end sub_081C5348 - - thumb_func_start Task_HandlePyramidBagInput -Task_HandlePyramidBagInput: @ 0x081C53C4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _081C5440 - adds r7, r0, r1 - bl sub_081221F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081C53E6 - b _081C5512 -_081C53E6: - ldr r0, _081C5444 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _081C53F4 - b _081C5512 -_081C53F4: - ldr r0, _081C5448 - ldrh r1, [r0, #0x2e] - movs r0, #4 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0 - beq _081C5458 - ldr r4, _081C544C - ldrb r0, [r4, #4] - cmp r0, #2 - bne _081C540E - b _081C5512 -_081C540E: - ldrb r0, [r7] - adds r1, r4, #0 - adds r1, #8 - adds r2, r4, #6 - bl ListMenuGetScrollAndRow - ldrh r1, [r4, #8] - ldrh r0, [r4, #6] - adds r1, r1, r0 - ldr r0, _081C5450 - ldr r0, [r0] - ldr r2, _081C5454 - adds r0, r0, r2 - ldrb r0, [r0] - subs r0, #1 - cmp r1, r0 - beq _081C5512 - movs r0, #5 - bl sub_080A306C - adds r0, r5, #0 - bl sub_081C5FDC - b _081C5512 - .align 2, 0 -_081C5440: .4byte gUnknown_3005B68 -_081C5444: .4byte gUnknown_2037C74 -_081C5448: .4byte gUnknown_3002360 -_081C544C: .4byte gUnknown_203CBFC -_081C5450: .4byte gUnknown_203CBF8 -_081C5454: .4byte 0x00000821 -_081C5458: - ldrb r0, [r7] - bl ListMenu_ProcessInput - adds r6, r0, #0 - ldrb r0, [r7] - ldr r1, _081C5480 - mov r8, r1 - mov r2, r8 - subs r2, #2 - bl ListMenuGetScrollAndRow - movs r0, #2 - rsbs r0, r0, #0 - cmp r6, r0 - beq _081C5484 - adds r0, #1 - cmp r6, r0 - bne _081C549C - b _081C5512 - .align 2, 0 -_081C5480: .4byte gUnknown_203CC04 -_081C5484: - movs r0, #5 - bl sub_080A306C - ldr r0, _081C5498 - strh r4, [r0] - adds r0, r5, #0 - bl sub_081C5310 - b _081C5512 - .align 2, 0 -_081C5498: .4byte gUnknown_203CB48 -_081C549C: - movs r0, #5 - bl sub_080A306C - ldr r2, _081C54F8 - mov ip, r2 - ldr r0, _081C54FC - ldr r2, [r0] - lsls r3, r6, #1 - ldr r0, _081C5500 - adds r4, r2, r0 - ldrb r1, [r4] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1e - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r3, r3, r0 - ldr r1, _081C5504 - adds r0, r2, r1 - adds r0, r0, r3 - ldrh r0, [r0] - mov r1, ip - strh r0, [r1] - strh r6, [r7, #2] - ldrb r1, [r4] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1e - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r0, r6, r0 - ldr r1, _081C5508 - adds r2, r2, r1 - adds r2, r2, r0 - ldrb r0, [r2] - strh r0, [r7, #4] - mov r0, r8 - subs r0, #8 - ldrb r0, [r0, #4] - cmp r0, #2 - bne _081C550C - adds r0, r5, #0 - bl sub_081C5F5C - b _081C5512 - .align 2, 0 -_081C54F8: .4byte gUnknown_203CB48 -_081C54FC: .4byte gUnknown_3005AF0 -_081C5500: .4byte 0x00000CA9 -_081C5504: .4byte 0x00000E2C -_081C5508: .4byte 0x00000E54 -_081C550C: - adds r0, r5, #0 - bl sub_081C551C -_081C5512: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end Task_HandlePyramidBagInput - - thumb_func_start sub_081C551C -sub_081C551C: @ 0x081C551C - push {r4, r5, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - ldr r0, _081C555C - adds r4, r4, r0 - bl sub_081C4EC8 - ldrb r0, [r4] - movs r1, #1 - bl sub_081C5294 - ldr r0, _081C5560 - ldrb r4, [r0, #4] - cmp r4, #1 - beq _081C5570 - cmp r4, #3 - beq _081C55C0 - ldr r0, _081C5564 - ldr r1, [r0] - ldr r0, _081C5568 - adds r2, r1, r0 - ldr r0, _081C556C - str r0, [r2] - movs r0, #0x82 - lsls r0, r0, #4 - adds r1, r1, r0 - movs r0, #4 - b _081C55D4 - .align 2, 0 -_081C555C: .4byte gUnknown_3005B68 -_081C5560: .4byte gUnknown_203CBFC -_081C5564: .4byte gUnknown_203CBF8 -_081C5568: .4byte 0x00000818 -_081C556C: .4byte gUnknown_85EF758 -_081C5570: - ldr r0, _081C558C - ldrh r0, [r0] - bl sub_080D6E20 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081C559C - ldr r0, _081C5590 - ldr r1, [r0] - ldr r0, _081C5594 - adds r2, r1, r0 - ldr r0, _081C5598 - b _081C55CA - .align 2, 0 -_081C558C: .4byte gUnknown_203CB48 -_081C5590: .4byte gUnknown_203CBF8 -_081C5594: .4byte 0x00000818 -_081C5598: .4byte gUnknown_85EF75E -_081C559C: - ldr r0, _081C55B4 - ldr r0, [r0] - ldr r1, _081C55B8 - adds r2, r0, r1 - ldr r1, _081C55BC - str r1, [r2] - movs r1, #0x82 - lsls r1, r1, #4 - adds r0, r0, r1 - strb r4, [r0] - b _081C55D6 - .align 2, 0 -_081C55B4: .4byte gUnknown_203CBF8 -_081C55B8: .4byte 0x00000818 -_081C55BC: .4byte gUnknown_85EF760 -_081C55C0: - ldr r0, _081C561C - ldr r1, [r0] - ldr r0, _081C5620 - adds r2, r1, r0 - ldr r0, _081C5624 -_081C55CA: - str r0, [r2] - movs r0, #0x82 - lsls r0, r0, #4 - adds r1, r1, r0 - movs r0, #2 -_081C55D4: - strb r0, [r1] -_081C55D6: - ldr r0, _081C5628 - ldrh r0, [r0] - ldr r1, _081C562C - bl sub_080D5EC8 - ldr r4, _081C5630 - ldr r1, _081C5634 - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #1 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - str r0, [sp, #8] - str r0, [sp, #0xc] - movs r0, #1 - adds r1, r4, #0 - movs r2, #0 - movs r3, #2 - bl PrintOnWindow_Font1 - ldr r0, _081C561C - ldr r0, [r0] - movs r1, #0x82 - lsls r1, r1, #4 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - bne _081C5638 - movs r0, #0 - b _081C563E - .align 2, 0 -_081C561C: .4byte gUnknown_203CBF8 -_081C5620: .4byte 0x00000818 -_081C5624: .4byte gUnknown_85EF75C -_081C5628: .4byte gUnknown_203CB48 -_081C562C: .4byte gUnknown_2021C40 -_081C5630: .4byte gUnknown_2021C7C -_081C5634: .4byte gUnknown_85C9450 -_081C5638: - cmp r0, #2 - bne _081C564C - movs r0, #1 -_081C563E: - bl sub_081C64E4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_081C56A8 - b _081C565E -_081C564C: - movs r0, #2 - bl sub_081C64E4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - movs r2, #2 - bl sub_081C5724 -_081C565E: - ldr r0, _081C567C - ldr r0, [r0] - movs r1, #0x82 - lsls r1, r1, #4 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #4 - bne _081C5688 - ldr r0, _081C5680 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081C5684 - b _081C5694 - .align 2, 0 -_081C567C: .4byte gUnknown_203CBF8 -_081C5680: .4byte gUnknown_3005B60 -_081C5684: .4byte HandleMenuActionInput -_081C5688: - ldr r0, _081C56A0 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081C56A4 -_081C5694: - str r0, [r1] - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C56A0: .4byte gUnknown_3005B60 -_081C56A4: .4byte HandleFewMenuActionsInput - thumb_func_end sub_081C551C - - thumb_func_start sub_081C56A8 -sub_081C56A8: @ 0x081C56A8 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0x14 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - mov r8, r0 - str r0, [sp] - movs r0, #0x10 - str r0, [sp, #4] - ldr r6, _081C5718 - ldr r1, [r6] - movs r5, #0x82 - lsls r5, r5, #4 - adds r0, r1, r5 - ldrb r0, [r0] - str r0, [sp, #8] - ldr r0, _081C571C - str r0, [sp, #0xc] - ldr r0, _081C5720 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [sp, #0x10] - adds r0, r4, #0 - movs r1, #1 - movs r2, #8 - movs r3, #2 - bl AddItemMenuActionTextPrinters - movs r0, #1 - movs r1, #1 - bl GetFontAttribute - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - ldr r0, [r6] - adds r0, r0, r5 - ldrb r0, [r0] - str r0, [sp, #4] - mov r0, r8 - str r0, [sp, #8] - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl sub_081984B0 - add sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081C5718: .4byte gUnknown_203CBF8 -_081C571C: .4byte gUnknown_85EF728 -_081C5720: .4byte 0x00000818 - thumb_func_end sub_081C56A8 - - thumb_func_start sub_081C5724 -sub_081C5724: @ 0x081C5724 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0x14 - adds r6, r0, #0 - adds r4, r1, #0 - adds r5, r2, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - movs r0, #0x30 - mov r8, r0 - str r0, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - ldr r0, _081C5788 - str r0, [sp, #0xc] - ldr r0, _081C578C - ldr r0, [r0] - ldr r1, _081C5790 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp, #0x10] - adds r0, r6, #0 - movs r1, #1 - movs r2, #8 - movs r3, #2 - bl sub_08198ECC - mov r0, r8 - str r0, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - str r0, [sp, #0xc] - adds r0, r6, #0 - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl sub_081990E4 - add sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081C5788: .4byte gUnknown_85EF728 -_081C578C: .4byte gUnknown_203CBF8 -_081C5790: .4byte 0x00000818 - thumb_func_end sub_081C5724 - - thumb_func_start HandleFewMenuActionsInput -HandleFewMenuActionsInput: @ 0x081C5794 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r6, r5, #0 - bl sub_081221F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081C57FC - bl Menu_ProcessInputNoWrap - lsls r0, r0, #0x18 - asrs r4, r0, #0x18 - movs r0, #2 - rsbs r0, r0, #0 - cmp r4, r0 - beq _081C57FC - adds r0, #1 - cmp r4, r0 - bne _081C57D4 - movs r0, #5 - bl sub_080A306C - ldr r0, _081C57D0 - ldr r1, [r0, #0x1c] - adds r0, r5, #0 - bl _call_via_r1 - b _081C57FC - .align 2, 0 -_081C57D0: .4byte gUnknown_85EF728 -_081C57D4: - movs r0, #5 - bl sub_080A306C - ldr r1, _081C5804 - ldr r0, _081C5808 - ldr r0, [r0] - ldr r2, _081C580C - adds r0, r0, r2 - ldr r0, [r0] - adds r0, r0, r4 - ldrb r0, [r0] - lsls r0, r0, #3 - adds r1, #4 - adds r0, r0, r1 - ldr r1, [r0] - cmp r1, #0 - beq _081C57FC - adds r0, r6, #0 - bl _call_via_r1 -_081C57FC: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081C5804: .4byte gUnknown_85EF728 -_081C5808: .4byte gUnknown_203CBF8 -_081C580C: .4byte 0x00000818 - thumb_func_end HandleFewMenuActionsInput - - thumb_func_start HandleMenuActionInput -HandleMenuActionInput: @ 0x081C5810 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - bl sub_081221F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081C5824 - b _081C598C -_081C5824: - bl Menu_GetCursorPos - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r5, _081C5868 - ldrh r1, [r5, #0x2e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _081C586C - lsls r0, r4, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bgt _081C5842 - b _081C598C -_081C5842: - subs r0, #2 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - bl IsValidMenuAction - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081C5854 - b _081C598C -_081C5854: - movs r0, #5 - bl sub_080A306C - movs r1, #1 - rsbs r1, r1, #0 - movs r0, #0 - bl sub_08199250 - b _081C598C - .align 2, 0 -_081C5868: .4byte gUnknown_3002360 -_081C586C: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _081C58B0 - lsls r0, r4, #0x18 - asrs r1, r0, #0x18 - ldr r0, _081C58AC - ldr r0, [r0] - movs r2, #0x82 - lsls r2, r2, #4 - adds r0, r0, r2 - ldrb r0, [r0] - subs r0, #2 - cmp r1, r0 - blt _081C588C - b _081C598C -_081C588C: - adds r0, r1, #2 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - bl IsValidMenuAction - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081C598C - movs r0, #5 - bl sub_080A306C - movs r0, #0 - movs r1, #1 - bl sub_08199250 - b _081C598C - .align 2, 0 -_081C58AC: .4byte gUnknown_203CBF8 -_081C58B0: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _081C58C4 - bl GetLRKeysState - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081C58EC -_081C58C4: - lsls r0, r4, #0x18 - asrs r1, r0, #0x18 - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081C598C - subs r0, r1, #1 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - bl IsValidMenuAction - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081C598C - movs r0, #5 - bl sub_080A306C - movs r0, #1 - rsbs r0, r0, #0 - b _081C5926 -_081C58EC: - ldrh r1, [r5, #0x2e] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _081C5902 - bl GetLRKeysState - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _081C592E -_081C5902: - lsls r0, r4, #0x18 - asrs r1, r0, #0x18 - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _081C598C - adds r0, r1, #1 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - bl IsValidMenuAction - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081C598C - movs r0, #5 - bl sub_080A306C - movs r0, #1 -_081C5926: - movs r1, #0 - bl sub_08199250 - b _081C598C -_081C592E: - ldrh r1, [r5, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081C5974 - movs r0, #5 - bl sub_080A306C - ldr r2, _081C5968 - ldr r0, _081C596C - ldr r0, [r0] - lsls r1, r4, #0x18 - asrs r1, r1, #0x18 - ldr r3, _081C5970 - adds r0, r0, r3 - ldr r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #3 - adds r2, #4 - adds r0, r0, r2 - ldr r1, [r0] - cmp r1, #0 - beq _081C598C - adds r0, r6, #0 - bl _call_via_r1 - b _081C598C - .align 2, 0 -_081C5968: .4byte gUnknown_85EF728 -_081C596C: .4byte gUnknown_203CBF8 -_081C5970: .4byte 0x00000818 -_081C5974: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081C598C - movs r0, #5 - bl sub_080A306C - ldr r0, _081C5994 - ldr r1, [r0, #0x1c] - adds r0, r6, #0 - bl _call_via_r1 -_081C598C: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081C5994: .4byte gUnknown_85EF728 - thumb_func_end HandleMenuActionInput - - thumb_func_start IsValidMenuAction -IsValidMenuAction: @ 0x081C5998 - push {lr} - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - blt _081C59CC - ldr r0, _081C59C4 - ldr r2, [r0] - movs r3, #0x82 - lsls r3, r3, #4 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r1, r0 - bgt _081C59CC - ldr r3, _081C59C8 - adds r0, r2, r3 - ldr r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #5 - beq _081C59CC - movs r0, #1 - b _081C59CE - .align 2, 0 -_081C59C4: .4byte gUnknown_203CBF8 -_081C59C8: .4byte 0x00000818 -_081C59CC: - movs r0, #0 -_081C59CE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsValidMenuAction - - thumb_func_start sub_081C59D4 -sub_081C59D4: @ 0x081C59D4 - push {lr} - ldr r0, _081C59F0 - ldr r0, [r0] - movs r1, #0x82 - lsls r1, r1, #4 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - bne _081C59F4 - movs r0, #0 - bl sub_081C652C - b _081C5A06 - .align 2, 0 -_081C59F0: .4byte gUnknown_203CBF8 -_081C59F4: - cmp r0, #2 - bne _081C5A00 - movs r0, #1 - bl sub_081C652C - b _081C5A06 -_081C5A00: - movs r0, #2 - bl sub_081C652C -_081C5A06: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C59D4 - - thumb_func_start BagAction_UseOnField -BagAction_UseOnField: @ 0x081C5A0C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r4, _081C5A48 - ldrh r0, [r4] - bl sub_080D6DB0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #5 - beq _081C5A38 - cmp r0, #2 - beq _081C5A38 - cmp r0, #3 - beq _081C5A38 - ldrh r0, [r4] - bl ItemIsMail - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081C5A54 -_081C5A38: - bl sub_081C59D4 - ldr r1, _081C5A4C - ldr r2, _081C5A50 - adds r0, r5, #0 - bl sub_081C6598 - b _081C5A7E - .align 2, 0 -_081C5A48: .4byte gUnknown_203CB48 -_081C5A4C: .4byte gUnknown_85C9556 -_081C5A50: .4byte sub_081C5F24 -_081C5A54: - ldrh r0, [r4] - bl sub_080D6DF8 - cmp r0, #0 - beq _081C5A7E - bl sub_081C59D4 - movs r0, #1 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - ldrh r0, [r4] - bl sub_080D6DF8 - adds r1, r0, #0 - adds r0, r5, #0 - bl _call_via_r1 -_081C5A7E: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end BagAction_UseOnField - - thumb_func_start BagAction_Cancel -BagAction_Cancel: @ 0x081C5A84 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - ldr r0, _081C5AC4 - adds r4, r4, r0 - bl sub_081C59D4 - movs r1, #2 - ldrsh r0, [r4, r1] - bl PrintItemDescription - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - ldrb r0, [r4] - movs r1, #0 - bl sub_081C5294 - adds r0, r5, #0 - bl sub_081C5AC8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C5AC4: .4byte gUnknown_3005B68 - thumb_func_end BagAction_Cancel - - thumb_func_start sub_081C5AC8 -sub_081C5AC8: @ 0x081C5AC8 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl AddScrollArrow - ldr r1, _081C5AE8 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081C5AEC - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C5AE8: .4byte gUnknown_3005B60 -_081C5AEC: .4byte Task_HandlePyramidBagInput - thumb_func_end sub_081C5AC8 - - thumb_func_start BagAction_Toss -BagAction_Toss: @ 0x081C5AF0 - push {r4, r5, r6, r7, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r6, r0, #3 - ldr r7, _081C5B1C - adds r4, r6, r7 - bl sub_081C59D4 - movs r0, #1 - strh r0, [r4, #0x10] - movs r1, #4 - ldrsh r0, [r4, r1] - cmp r0, #1 - bne _081C5B20 - adds r0, r5, #0 - bl sub_081C5B7C - b _081C5B60 - .align 2, 0 -_081C5B1C: .4byte gUnknown_3005B68 -_081C5B20: - ldr r0, _081C5B68 - ldrh r0, [r0] - ldr r1, _081C5B6C - bl sub_080D5EC8 - ldr r4, _081C5B70 - ldr r1, _081C5B74 - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #1 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - str r0, [sp, #8] - str r0, [sp, #0xc] - movs r0, #1 - adds r1, r4, #0 - movs r2, #0 - movs r3, #2 - bl PrintOnWindow_Font1 - bl sub_081C5C30 - adds r0, r7, #0 - subs r0, #8 - adds r0, r6, r0 - ldr r1, _081C5B78 - str r1, [r0] -_081C5B60: - add sp, #0x10 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C5B68: .4byte gUnknown_203CB48 -_081C5B6C: .4byte gUnknown_2021C40 -_081C5B70: .4byte gUnknown_2021C7C -_081C5B74: .4byte gUnknown_85C9523 -_081C5B78: .4byte sub_081C5CC4 - thumb_func_end BagAction_Toss - - thumb_func_start sub_081C5B7C -sub_081C5B7C: @ 0x081C5B7C - push {r4, r5, lr} - sub sp, #0x10 - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - ldr r0, _081C5BE0 - adds r4, r4, r0 - ldr r0, _081C5BE4 - ldrh r0, [r0] - ldr r1, _081C5BE8 - bl sub_080D5EC8 - ldr r0, _081C5BEC - movs r2, #0x10 - ldrsh r1, [r4, r2] - movs r2, #0 - movs r3, #2 - bl sub_080089D8 - ldr r4, _081C5BF0 - ldr r1, _081C5BF4 - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #1 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - str r0, [sp, #8] - str r0, [sp, #0xc] - movs r0, #1 - adds r1, r4, #0 - movs r2, #0 - movs r3, #2 - bl PrintOnWindow_Font1 - ldr r1, _081C5BF8 - adds r0, r5, #0 - bl sub_081C656C - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C5BE0: .4byte gUnknown_3005B68 -_081C5BE4: .4byte gUnknown_203CB48 -_081C5BE8: .4byte gUnknown_2021C40 -_081C5BEC: .4byte gUnknown_2021C54 -_081C5BF0: .4byte gUnknown_2021C7C -_081C5BF4: .4byte gUnknown_85C9540 -_081C5BF8: .4byte gUnknown_85EF764 - thumb_func_end sub_081C5B7C - - thumb_func_start DontTossItem -DontTossItem: @ 0x081C5BFC - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - ldr r0, _081C5C2C - adds r4, r4, r0 - movs r1, #2 - ldrsh r0, [r4, r1] - bl PrintItemDescription - ldrb r0, [r4] - movs r1, #0 - bl sub_081C5294 - adds r0, r5, #0 - bl sub_081C5AC8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C5C2C: .4byte gUnknown_3005B68 - thumb_func_end DontTossItem - - thumb_func_start sub_081C5C30 -sub_081C5C30: @ 0x081C5C30 - push {r4, lr} - sub sp, #0xc - ldr r0, _081C5C70 - movs r1, #1 - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - ldr r4, _081C5C74 - ldr r1, _081C5C78 - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #3 - bl sub_081C64AC - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - movs r0, #3 - movs r1, #1 - adds r2, r4, #0 - movs r3, #8 - bl AddTextPrinterParameterized - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C5C70: .4byte gUnknown_2021C40 -_081C5C74: .4byte gUnknown_2021C7C -_081C5C78: .4byte gUnknown_85C943C - thumb_func_end sub_081C5C30 - - thumb_func_start sub_081C5C7C -sub_081C5C7C: @ 0x081C5C7C - push {r4, lr} - sub sp, #0xc - adds r1, r0, #0 - ldr r0, _081C5CB8 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - ldr r4, _081C5CBC - ldr r1, _081C5CC0 - adds r0, r4, #0 - bl StringExpandPlaceholders - movs r0, #2 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - movs r0, #3 - movs r1, #1 - adds r2, r4, #0 - movs r3, #8 - bl AddTextPrinterParameterized - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C5CB8: .4byte gUnknown_2021C40 -_081C5CBC: .4byte gUnknown_2021C7C -_081C5CC0: .4byte gUnknown_85C943C - thumb_func_end sub_081C5C7C - - thumb_func_start sub_081C5CC4 -sub_081C5CC4: @ 0x081C5CC4 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r6, r5, #0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _081C5CF4 - adds r4, r0, r1 - adds r0, r4, #0 - adds r0, #0x10 - ldrh r1, [r4, #4] - bl AdjustQuantityAccordingToDPadInput - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081C5CF8 - movs r1, #0x10 - ldrsh r0, [r4, r1] - bl sub_081C5C7C - b _081C5D54 - .align 2, 0 -_081C5CF4: .4byte gUnknown_3005B68 -_081C5CF8: - ldr r0, _081C5D28 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081C5D2C - movs r0, #5 - bl sub_080A306C - movs r0, #3 - movs r1, #0 - bl sub_08198134 - movs r0, #3 - bl ClearWindowTilemap - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r5, #0 - bl sub_081C5B7C - b _081C5D54 - .align 2, 0 -_081C5D28: .4byte gUnknown_3002360 -_081C5D2C: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081C5D54 - movs r0, #5 - bl sub_080A306C - movs r0, #3 - movs r1, #0 - bl sub_08198134 - movs r0, #3 - bl ClearWindowTilemap - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r6, #0 - bl DontTossItem -_081C5D54: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C5CC4 - - thumb_func_start TossItem -TossItem: @ 0x081C5D5C - push {r4, r5, r6, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r5, _081C5DC0 - adds r6, r4, r5 - ldr r0, _081C5DC4 - ldrh r0, [r0] - ldr r1, _081C5DC8 - bl sub_080D5EC8 - ldr r0, _081C5DCC - movs r2, #0x10 - ldrsh r1, [r6, r2] - movs r2, #0 - movs r3, #2 - bl sub_080089D8 - ldr r6, _081C5DD0 - ldr r1, _081C5DD4 - adds r0, r6, #0 - bl StringExpandPlaceholders - movs r0, #1 - movs r1, #0 - bl FillWindowPixelBuffer - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - str r0, [sp, #8] - str r0, [sp, #0xc] - movs r0, #1 - adds r1, r6, #0 - movs r2, #0 - movs r3, #2 - bl PrintOnWindow_Font1 - subs r5, #8 - adds r4, r4, r5 - ldr r0, _081C5DD8 - str r0, [r4] - add sp, #0x10 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081C5DC0: .4byte gUnknown_3005B68 -_081C5DC4: .4byte gUnknown_203CB48 -_081C5DC8: .4byte gUnknown_2021C40 -_081C5DCC: .4byte gUnknown_2021C54 -_081C5DD0: .4byte gUnknown_2021C7C -_081C5DD4: .4byte gUnknown_85C9532 -_081C5DD8: .4byte sub_081C5DDC - thumb_func_end TossItem - - thumb_func_start sub_081C5DDC -sub_081C5DDC: @ 0x081C5DDC - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _081C5E44 - adds r4, r0, r1 - ldr r6, _081C5E48 - subs r7, r6, #2 - ldr r0, _081C5E4C - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _081C5E3E - movs r0, #5 - bl sub_080A306C - ldr r0, _081C5E50 - ldrh r0, [r0] - ldrh r1, [r4, #0x10] - bl RemovePyramidBagItem - ldrb r0, [r4] - adds r1, r6, #0 - adds r2, r7, #0 - bl DestroyListMenuTask - bl sub_081C5120 - bl sub_081C51B8 - bl SetBagItemsListTemplate - ldr r0, _081C5E54 - ldrh r1, [r6] - ldrh r2, [r7] - bl ListMenuInit - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r5, #0 - bl sub_081C5AC8 -_081C5E3E: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C5E44: .4byte gUnknown_3005B68 -_081C5E48: .4byte gUnknown_203CC04 -_081C5E4C: .4byte gUnknown_3002360 -_081C5E50: .4byte gUnknown_203CB48 -_081C5E54: .4byte gUnknown_3006050 - thumb_func_end sub_081C5DDC - - thumb_func_start BagAction_Give -BagAction_Give: @ 0x081C5E58 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r6, r4, #0 - bl sub_081C59D4 - ldr r5, _081C5E80 - ldrh r0, [r5] - bl ItemIsMail - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081C5E8C - ldr r1, _081C5E84 - ldr r2, _081C5E88 - adds r0, r4, #0 - bl sub_081C6598 - b _081C5EB6 - .align 2, 0 -_081C5E80: .4byte gUnknown_203CB48 -_081C5E84: .4byte gUnknown_85C945C -_081C5E88: .4byte sub_081C5EFC -_081C5E8C: - ldrh r0, [r5] - bl sub_080D6D68 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081C5EB0 - ldr r0, _081C5EA8 - ldr r1, [r0] - ldr r0, _081C5EAC - str r0, [r1] - adds r0, r4, #0 - bl sub_081C5310 - b _081C5EB6 - .align 2, 0 -_081C5EA8: .4byte gUnknown_203CBF8 -_081C5EAC: .4byte sub_081B7C00 -_081C5EB0: - adds r0, r6, #0 - bl sub_081C5EBC -_081C5EB6: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end BagAction_Give - - thumb_func_start sub_081C5EBC -sub_081C5EBC: @ 0x081C5EBC - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081C5EE8 - ldrh r0, [r0] - ldr r1, _081C5EEC - bl sub_080D5EC8 - ldr r5, _081C5EF0 - ldr r1, _081C5EF4 - adds r0, r5, #0 - bl StringExpandPlaceholders - ldr r2, _081C5EF8 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_081C6598 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C5EE8: .4byte gUnknown_203CB48 -_081C5EEC: .4byte gUnknown_2021C40 -_081C5EF0: .4byte gUnknown_2021C7C -_081C5EF4: .4byte gUnknown_85C948E -_081C5EF8: .4byte sub_081C5EFC - thumb_func_end sub_081C5EBC - - thumb_func_start sub_081C5EFC -sub_081C5EFC: @ 0x081C5EFC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _081C5F20 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081C5F1A - movs r0, #5 - bl sub_080A306C - adds r0, r4, #0 - bl sub_081C5F24 -_081C5F1A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C5F20: .4byte gUnknown_3002360 - thumb_func_end sub_081C5EFC - - thumb_func_start sub_081C5F24 -sub_081C5F24: @ 0x081C5F24 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r5, #2 - adds r4, r4, r5 - lsls r4, r4, #3 - ldr r0, _081C5F58 - adds r4, r4, r0 - bl sub_081C65DC - movs r1, #2 - ldrsh r0, [r4, r1] - bl PrintItemDescription - ldrb r0, [r4] - movs r1, #0 - bl sub_081C5294 - adds r0, r5, #0 - bl sub_081C5AC8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C5F58: .4byte gUnknown_3005B68 - thumb_func_end sub_081C5F24 - - thumb_func_start sub_081C5F5C -sub_081C5F5C: @ 0x081C5F5C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r6, r4, #0 - ldr r5, _081C5F80 - ldrh r0, [r5] - bl itemid_80BF6D8_mail_related - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081C5F8C - ldr r1, _081C5F84 - ldr r2, _081C5F88 - adds r0, r4, #0 - bl sub_081C6598 - b _081C5FA6 - .align 2, 0 -_081C5F80: .4byte gUnknown_203CB48 -_081C5F84: .4byte gUnknown_85C945C -_081C5F88: .4byte sub_081C5EFC -_081C5F8C: - ldrh r0, [r5] - bl sub_080D6D68 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081C5FA0 - adds r0, r4, #0 - bl sub_081C5310 - b _081C5FA6 -_081C5FA0: - adds r0, r6, #0 - bl sub_081C5EBC -_081C5FA6: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_081C5F5C - - thumb_func_start BagAction_UseInBattle -BagAction_UseInBattle: @ 0x081C5FAC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r4, _081C5FD8 - ldrh r0, [r4] - bl sub_080D6E44 - cmp r0, #0 - beq _081C5FD0 - bl sub_081C59D4 - ldrh r0, [r4] - bl sub_080D6E44 - adds r1, r0, #0 - adds r0, r5, #0 - bl _call_via_r1 -_081C5FD0: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C5FD8: .4byte gUnknown_203CB48 - thumb_func_end BagAction_UseInBattle - - thumb_func_start sub_081C5FDC -sub_081C5FDC: @ 0x081C5FDC - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _081C609C - mov sb, r0 - adds r1, r4, #0 - add r1, sb - mov r8, r1 - ldr r0, _081C60A0 - ldrh r1, [r0, #6] - ldrh r0, [r0, #8] - adds r1, r1, r0 - mov r2, r8 - strh r1, [r2, #2] - ldr r0, _081C60A4 - ldr r0, [r0] - ldr r2, _081C60A8 - adds r0, r0, r2 - movs r5, #0 - strb r1, [r0] - mov r1, r8 - ldrb r0, [r1] - movs r1, #0x10 - movs r2, #1 - bl ListMenuSetUnkIndicatorsStructField - ldr r0, _081C60AC - ldr r3, [r0] - mov r0, r8 - movs r1, #2 - ldrsh r2, [r0, r1] - lsls r2, r2, #1 - ldr r1, _081C60B0 - adds r0, r3, r1 - ldrb r1, [r0] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1e - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, r2, r0 - ldr r0, _081C60B4 - adds r3, r3, r0 - adds r3, r3, r2 - ldrh r0, [r3] - ldr r1, _081C60B8 - bl sub_080D5EC8 - ldr r6, _081C60BC - ldr r1, _081C60C0 - adds r0, r6, #0 - bl StringExpandPlaceholders - movs r0, #1 - movs r1, #0 - bl FillWindowPixelBuffer - str r5, [sp] - str r5, [sp, #4] - str r5, [sp, #8] - str r5, [sp, #0xc] - movs r0, #1 - adds r1, r6, #0 - movs r2, #0 - movs r3, #2 - bl PrintOnWindow_Font1 - mov r1, r8 - ldrb r0, [r1] - movs r1, #1 - bl sub_081C5294 - mov r2, r8 - ldrb r0, [r2, #2] - bl sub_081C680C - movs r0, #8 - rsbs r0, r0, #0 - add sb, r0 - add r4, sb - ldr r0, _081C60C4 - str r0, [r4] - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081C609C: .4byte gUnknown_3005B68 -_081C60A0: .4byte gUnknown_203CBFC -_081C60A4: .4byte gUnknown_203CBF8 -_081C60A8: .4byte 0x00000814 -_081C60AC: .4byte gUnknown_3005AF0 -_081C60B0: .4byte 0x00000CA9 -_081C60B4: .4byte 0x00000E2C -_081C60B8: .4byte gUnknown_2021C40 -_081C60BC: .4byte gUnknown_2021C7C -_081C60C0: .4byte gUnknown_85C947F -_081C60C4: .4byte Task_ItemSwapHandleInput - thumb_func_end sub_081C5FDC - - thumb_func_start Task_ItemSwapHandleInput -Task_ItemSwapHandleInput: @ 0x081C60C8 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _081C6104 - adds r4, r0, r1 - bl sub_081221F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081C6174 - ldr r7, _081C6108 - ldrh r1, [r7, #0x2e] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _081C6110 - movs r0, #5 - bl sub_080A306C - ldrb r0, [r4] - ldr r1, _081C610C - subs r2, r1, #2 - bl ListMenuGetScrollAndRow - b _081C6158 - .align 2, 0 -_081C6104: .4byte gUnknown_3005B68 -_081C6108: .4byte gUnknown_3002360 -_081C610C: .4byte gUnknown_203CC04 -_081C6110: - ldrb r0, [r4] - bl ListMenu_ProcessInput - adds r6, r0, #0 - ldrb r0, [r4] - ldr r4, _081C6144 - subs r2, r4, #2 - adds r1, r4, #0 - bl ListMenuGetScrollAndRow - movs r0, #0 - bl sub_081C67E8 - subs r4, #8 - ldrb r0, [r4, #6] - bl sub_081C680C - movs r0, #2 - rsbs r0, r0, #0 - cmp r6, r0 - beq _081C6148 - adds r0, #1 - cmp r6, r0 - bne _081C6168 - b _081C6174 - .align 2, 0 -_081C6144: .4byte gUnknown_203CC04 -_081C6148: - movs r0, #5 - bl sub_080A306C - ldrh r1, [r7, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081C6160 -_081C6158: - adds r0, r5, #0 - bl PerformItemSwap - b _081C6174 -_081C6160: - adds r0, r5, #0 - bl sub_081C622C - b _081C6174 -_081C6168: - movs r0, #5 - bl sub_080A306C - adds r0, r5, #0 - bl PerformItemSwap -_081C6174: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Task_ItemSwapHandleInput - - thumb_func_start PerformItemSwap -PerformItemSwap: @ 0x081C617C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _081C61B8 - adds r5, r0, r1 - ldr r7, _081C61BC - subs r0, r7, #2 - mov r8, r0 - ldrh r0, [r0] - ldrh r1, [r7] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r3, #2 - ldrsh r1, [r5, r3] - cmp r1, r4 - beq _081C61AE - subs r0, r4, #1 - cmp r1, r0 - bne _081C61C0 -_081C61AE: - adds r0, r6, #0 - bl sub_081C622C - b _081C6214 - .align 2, 0 -_081C61B8: .4byte gUnknown_3005B68 -_081C61BC: .4byte gUnknown_203CC04 -_081C61C0: - ldrb r0, [r5, #2] - lsls r1, r4, #0x18 - lsrs r1, r1, #0x18 - bl MovePyramidBagItemSlotInList - ldr r0, _081C6220 - ldr r0, [r0] - ldr r1, _081C6224 - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] - movs r0, #1 - bl sub_081C67E8 - ldrb r0, [r5] - adds r1, r7, #0 - mov r2, r8 - bl DestroyListMenuTask - movs r3, #2 - ldrsh r0, [r5, r3] - cmp r0, r4 - bge _081C61F8 - adds r1, r7, #0 - subs r1, #8 - ldrh r0, [r1, #6] - subs r0, #1 - strh r0, [r1, #6] -_081C61F8: - bl SetBagItemsListTemplate - ldr r0, _081C6228 - ldrh r1, [r7] - mov r3, r8 - ldrh r2, [r3] - bl ListMenuInit - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5] - adds r0, r6, #0 - bl sub_081C5AC8 -_081C6214: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C6220: .4byte gUnknown_203CBF8 -_081C6224: .4byte 0x00000814 -_081C6228: .4byte gUnknown_3006050 - thumb_func_end PerformItemSwap - - thumb_func_start sub_081C622C -sub_081C622C: @ 0x081C622C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r6, r0, #0 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _081C6298 - adds r4, r0, r1 - ldr r5, _081C629C - subs r7, r5, #2 - ldr r0, _081C62A0 - ldr r0, [r0] - ldr r1, _081C62A4 - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] - movs r0, #1 - bl sub_081C67E8 - ldrb r0, [r4] - adds r1, r5, #0 - adds r2, r7, #0 - bl DestroyListMenuTask - movs r0, #2 - ldrsh r2, [r4, r0] - ldrh r0, [r5] - ldrh r1, [r7] - adds r0, r0, r1 - cmp r2, r0 - bge _081C6276 - adds r1, r5, #0 - subs r1, #8 - ldrh r0, [r1, #6] - subs r0, #1 - strh r0, [r1, #6] -_081C6276: - bl SetBagItemsListTemplate - ldr r0, _081C62A8 - ldrh r1, [r5] - ldrh r2, [r7] - bl ListMenuInit - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - adds r0, r6, #0 - bl sub_081C5AC8 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C6298: .4byte gUnknown_3005B68 -_081C629C: .4byte gUnknown_203CC04 -_081C62A0: .4byte gUnknown_203CBF8 -_081C62A4: .4byte 0x00000814 -_081C62A8: .4byte gUnknown_3006050 - thumb_func_end sub_081C622C - - thumb_func_start sub_081C62AC -sub_081C62AC: @ 0x081C62AC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - ldr r0, _081C6388 - mov sb, r0 - movs r0, #0x14 - bl sub_08000BC8 - adds r7, r0, #0 - movs r0, #0xa - bl sub_08000BC8 - adds r5, r0, #0 - ldr r1, _081C638C - mov r8, r1 - ldr r2, [r1] - ldr r4, _081C6390 - adds r0, r2, r4 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r0, _081C6394 - adds r1, r1, r0 - adds r0, r7, #0 - movs r2, #0x14 - bl memcpy - mov r1, r8 - ldr r2, [r1] - adds r0, r2, r4 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldr r0, _081C6398 - adds r1, r1, r0 - adds r0, r5, #0 - movs r2, #0xa - bl memcpy - movs r6, #0 -_081C6310: - movs r0, #0x64 - muls r0, r6, r0 - add r0, sb - movs r1, #0xc - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r1, sp - strh r0, [r1] - cmp r0, #0 - beq _081C63A0 - movs r1, #1 - bl AddBagItem - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081C63A0 - mov r1, r8 - ldr r2, [r1] - adds r0, r2, r4 - ldrb r1, [r0] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1e - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, _081C6394 - adds r0, r0, r1 - adds r1, r7, #0 - movs r2, #0x14 - bl memcpy - mov r0, r8 - ldr r2, [r0] - adds r0, r2, r4 - ldrb r1, [r0] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1e - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldr r1, _081C6398 - adds r0, r0, r1 - adds r1, r5, #0 - movs r2, #0xa - bl memcpy - adds r0, r7, #0 - bl Free - adds r0, r5, #0 - bl Free - ldr r1, _081C639C - movs r0, #1 - strh r0, [r1] - b _081C63DE - .align 2, 0 -_081C6388: .4byte gUnknown_2024190 -_081C638C: .4byte gUnknown_3005AF0 -_081C6390: .4byte 0x00000CA9 -_081C6394: .4byte 0x00000E2C -_081C6398: .4byte 0x00000E54 -_081C639C: .4byte gUnknown_2037290 -_081C63A0: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #2 - bls _081C6310 - movs r1, #0 - mov r0, sp - strh r1, [r0] - movs r6, #0 - movs r4, #0x64 -_081C63B4: - adds r0, r6, #0 - muls r0, r4, r0 - add r0, sb - movs r1, #0xc - mov r2, sp - bl SetMonData - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #2 - bls _081C63B4 - ldr r1, _081C63EC - movs r0, #0 - strh r0, [r1] - adds r0, r7, #0 - bl Free - adds r0, r5, #0 - bl Free -_081C63DE: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C63EC: .4byte gUnknown_2037290 - thumb_func_end sub_081C62AC - - thumb_func_start sub_081C63F0 -sub_081C63F0: @ 0x081C63F0 - push {r4, lr} - ldr r0, _081C644C - bl InitWindows - bl sub_08004480 - movs r0, #0 - movs r1, #1 - movs r2, #0xe0 - bl LoadUserWindowBorderGfx - movs r0, #0 - movs r1, #0xa - movs r2, #0xd0 - bl LoadMessageBoxGfx - ldr r0, _081C6450 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - movs r4, #0 -_081C641C: - adds r0, r4, #0 - movs r1, #0 - bl FillWindowPixelBuffer - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #4 - bls _081C641C - movs r0, #0 - bl PutWindowTilemap - movs r0, #1 - bl PutWindowTilemap - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C644C: .4byte gUnknown_85EF778 -_081C6450: .4byte gUnknown_85D7B04 - thumb_func_end sub_081C63F0 - - thumb_func_start PrintOnWindow_Font1 -PrintOnWindow_Font1: @ 0x081C6454 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0x14 - ldr r4, [sp, #0x28] - ldr r6, [sp, #0x2c] - ldr r5, [sp, #0x30] - mov r8, r5 - ldr r5, [sp, #0x34] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - str r4, [sp] - str r6, [sp, #4] - lsls r4, r5, #1 - adds r4, r4, r5 - ldr r5, _081C64A8 - adds r4, r4, r5 - str r4, [sp, #8] - mov r4, r8 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - str r4, [sp, #0xc] - str r1, [sp, #0x10] - movs r1, #1 - bl AddTextPrinterParameterized4 - add sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081C64A8: .4byte gUnknown_85EF76C - thumb_func_end PrintOnWindow_Font1 - - thumb_func_start sub_081C64AC -sub_081C64AC: @ 0x081C64AC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - movs r2, #1 - movs r3, #0xe - bl DrawStdFrameWithCustomTileAndPalette - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C64AC - - thumb_func_start sub_081C64C8 -sub_081C64C8: @ 0x081C64C8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081C64DC - ldr r1, [r1] - ldr r2, _081C64E0 - adds r1, r1, r2 - adds r1, r1, r0 - ldrb r0, [r1] - bx lr - .align 2, 0 -_081C64DC: .4byte gUnknown_203CBF8 -_081C64E0: .4byte 0x0000080F - thumb_func_end sub_081C64C8 - - thumb_func_start sub_081C64E4 -sub_081C64E4: @ 0x081C64E4 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _081C6520 - ldr r3, _081C6524 - adds r1, r2, r3 - ldr r0, [r0] - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, #0xff - bne _081C6518 - lsls r0, r2, #3 - ldr r1, _081C6528 - adds r0, r0, r1 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, #0 - movs r2, #1 - movs r3, #0xe - bl DrawStdFrameWithCustomTileAndPalette - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram -_081C6518: - ldrb r0, [r4] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081C6520: .4byte gUnknown_203CBF8 -_081C6524: .4byte 0x0000080F -_081C6528: .4byte gUnknown_85EF7A0 - thumb_func_end sub_081C64E4 - - thumb_func_start sub_081C652C -sub_081C652C: @ 0x081C652C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081C6564 - ldr r2, _081C6568 - adds r0, r0, r2 - ldr r1, [r1] - adds r4, r1, r0 - ldrb r0, [r4] - cmp r0, #0xff - beq _081C655E - movs r1, #0 - bl sub_08198134 - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - bl RemoveWindow - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #0xff - strb r0, [r4] -_081C655E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C6564: .4byte gUnknown_203CBF8 -_081C6568: .4byte 0x0000080F - thumb_func_end sub_081C652C - - thumb_func_start sub_081C656C -sub_081C656C: @ 0x081C656C - push {lr} - sub sp, #0x10 - adds r3, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081C6594 - movs r2, #2 - str r2, [sp] - movs r2, #1 - str r2, [sp, #4] - movs r2, #0xe - str r2, [sp, #8] - str r3, [sp, #0xc] - movs r2, #1 - movs r3, #0 - bl sub_08121F84 - add sp, #0x10 - pop {r0} - bx r0 - .align 2, 0 -_081C6594: .4byte gUnknown_85EF7C0 - thumb_func_end sub_081C656C - - thumb_func_start sub_081C6598 -sub_081C6598: @ 0x081C6598 - push {r4, r5, r6, lr} - sub sp, #0x10 - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #2 - movs r1, #0x11 - bl FillWindowPixelBuffer - bl GetPlayerTextSpeedDelay - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - str r1, [sp] - str r0, [sp, #4] - str r5, [sp, #8] - str r6, [sp, #0xc] - adds r0, r4, #0 - movs r1, #2 - movs r2, #0xa - movs r3, #0xd - bl DisplayMessageAndContinueTask - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - add sp, #0x10 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C6598 - - thumb_func_start sub_081C65DC -sub_081C65DC: @ 0x081C65DC - push {lr} - movs r0, #2 - movs r1, #0 - bl sub_08197EBC - movs r0, #2 - bl ClearWindowTilemap - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C65DC - - thumb_func_start sub_081C65F8 -sub_081C65F8: @ 0x081C65F8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _081C6648 - ldr r2, _081C664C - adds r1, r4, r2 - ldr r0, [r0] - adds r5, r0, r1 - ldrb r0, [r5] - cmp r0, #0xff - beq _081C6640 - ldr r0, _081C6650 - adds r4, r4, r0 - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl FreeSpritePaletteByTag - ldrb r1, [r5] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _081C6654 - adds r0, r0, r4 - bl FreeSpriteOamMatrix - ldrb r1, [r5] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - movs r0, #0xff - strb r0, [r5] -_081C6640: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C6648: .4byte gUnknown_203CBF8 -_081C664C: .4byte 0x00000804 -_081C6650: .4byte 0x00001024 -_081C6654: .4byte gUnknown_20205AC - thumb_func_end sub_081C65F8 - - thumb_func_start sub_081C6658 -sub_081C6658: @ 0x081C6658 - push {r4, lr} - sub sp, #8 - movs r0, #0x40 - bl sub_08000BC8 - adds r4, r0, #0 - ldr r0, _081C66A0 - adds r1, r4, #0 - bl sub_08034370 - ldr r0, _081C66A4 - ldr r0, [r0] - ldr r1, _081C66A8 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x19 - adds r0, r4, r0 - str r0, [sp] - ldr r1, _081C66AC - ldr r0, [sp, #4] - ands r0, r1 - ldr r1, _081C66B0 - orrs r0, r1 - str r0, [sp, #4] - mov r0, sp - bl LoadSpritePalette - adds r0, r4, #0 - bl Free - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C66A0: .4byte gUnknown_8D9AFC8 -_081C66A4: .4byte gUnknown_3005AF0 -_081C66A8: .4byte 0x00000CA9 -_081C66AC: .4byte 0xFFFF0000 -_081C66B0: .4byte 0x00001024 - thumb_func_end sub_081C6658 - - thumb_func_start sub_081C66B4 -sub_081C66B4: @ 0x081C66B4 - push {r4, lr} - ldr r0, _081C66D4 - ldr r4, [r0] - ldr r0, _081C66D8 - adds r4, r4, r0 - ldr r0, _081C66DC - movs r1, #0x44 - movs r2, #0x38 - movs r3, #0 - bl CreateSprite - strb r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C66D4: .4byte gUnknown_203CBF8 -_081C66D8: .4byte 0x00000804 -_081C66DC: .4byte gUnknown_85EF824 - thumb_func_end sub_081C66B4 - - thumb_func_start sub_081C66E0 -sub_081C66E0: @ 0x081C66E0 - push {r4, lr} - ldr r0, _081C6718 - ldr r0, [r0] - ldr r1, _081C671C - adds r0, r0, r1 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _081C6720 - adds r4, r0, r1 - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _081C6710 - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAffineAnim - ldr r0, _081C6724 - str r0, [r4, #0x1c] -_081C6710: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C6718: .4byte gUnknown_203CBF8 -_081C671C: .4byte 0x00000804 -_081C6720: .4byte gUnknown_20205AC -_081C6724: .4byte sub_081C6728 - thumb_func_end sub_081C66E0 - - thumb_func_start sub_081C6728 -sub_081C6728: @ 0x081C6728 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _081C6744 - adds r0, r4, #0 - movs r1, #0 - bl StartSpriteAffineAnim - ldr r0, _081C674C - str r0, [r4, #0x1c] -_081C6744: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C674C: .4byte sub_08007140 - thumb_func_end sub_081C6728 - - thumb_func_start ShowItemImage -ShowItemImage: @ 0x081C6750 - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - ldr r0, _081C67A8 - ldr r2, _081C67AC - adds r1, r4, r2 - ldr r0, [r0] - adds r5, r0, r1 - ldrb r0, [r5] - cmp r0, #0xff - bne _081C67A0 - ldr r0, _081C67B0 - adds r4, r4, r0 - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl FreeSpritePaletteByTag - adds r0, r4, #0 - adds r1, r4, #0 - adds r2, r6, #0 - bl AddItemIconSprite - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x40 - beq _081C67A0 - strb r2, [r5] - ldr r1, _081C67B4 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - movs r1, #0x18 - strh r1, [r0, #0x24] - movs r1, #0x58 - strh r1, [r0, #0x26] -_081C67A0: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081C67A8: .4byte gUnknown_203CBF8 -_081C67AC: .4byte 0x00000805 -_081C67B0: .4byte 0x00001025 -_081C67B4: .4byte gUnknown_20205AC - thumb_func_end ShowItemImage - - thumb_func_start sub_081C67B8 -sub_081C67B8: @ 0x081C67B8 - push {lr} - lsls r0, r0, #0x18 - movs r1, #0x80 - lsls r1, r1, #0x11 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - bl sub_081C65F8 - pop {r0} - bx r0 - thumb_func_end sub_081C67B8 - - thumb_func_start sub_081C67CC -sub_081C67CC: @ 0x081C67CC - push {lr} - ldr r0, _081C67E0 - ldr r0, [r0] - ldr r1, _081C67E4 - adds r0, r0, r1 - movs r1, #8 - bl sub_08122350 - pop {r0} - bx r0 - .align 2, 0 -_081C67E0: .4byte gUnknown_203CBF8 -_081C67E4: .4byte 0x00000807 - thumb_func_end sub_081C67CC - - thumb_func_start sub_081C67E8 -sub_081C67E8: @ 0x081C67E8 - push {lr} - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r0, _081C6804 - ldr r0, [r0] - ldr r1, _081C6808 - adds r0, r0, r1 - movs r1, #8 - bl sub_08122408 - pop {r0} - bx r0 - .align 2, 0 -_081C6804: .4byte gUnknown_203CBF8 -_081C6808: .4byte 0x00000807 - thumb_func_end sub_081C67E8 - - thumb_func_start sub_081C680C -sub_081C680C: @ 0x081C680C - push {lr} - adds r3, r0, #0 - lsls r3, r3, #0x18 - ldr r0, _081C6830 - ldr r0, [r0] - ldr r1, _081C6834 - adds r0, r0, r1 - lsrs r3, r3, #4 - movs r1, #0x80 - lsls r1, r1, #0xd - adds r3, r3, r1 - lsrs r3, r3, #0x10 - movs r1, #0x88 - movs r2, #0x78 - bl sub_08122454 - pop {r0} - bx r0 - .align 2, 0 -_081C6830: .4byte gUnknown_203CBF8 -_081C6834: .4byte 0x00000807 - thumb_func_end sub_081C680C - - thumb_func_start CreateLoopedTask -CreateLoopedTask: @ 0x081C6838 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl IsUpdateLinkStateCBActive - cmp r0, #0 - bne _081C6850 - ldr r0, _081C684C - b _081C6852 - .align 2, 0 -_081C684C: .4byte sub_081C6930 -_081C6850: - ldr r0, _081C688C -_081C6852: - lsls r1, r4, #0x18 - lsrs r1, r1, #0x18 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r0, r4, #0 - movs r1, #1 - adds r2, r5, #0 - bl SetWordTaskArg - ldr r1, _081C6890 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r2, _081C6894 - ldrb r1, [r2] - strh r1, [r0, #0xe] - ldrb r0, [r2] - adds r1, r0, #1 - strb r1, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #8 - orrs r0, r4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081C688C: .4byte Task_RunLoopedTask_LinkMode -_081C6890: .4byte gUnknown_3005B60 -_081C6894: .4byte gUnknown_203CC08 - thumb_func_end CreateLoopedTask - - thumb_func_start IsLoopedTaskActive -IsLoopedTaskActive: @ 0x081C6898 - push {lr} - ldr r1, _081C68CC - ands r1, r0 - lsrs r3, r0, #0x10 - ldr r2, _081C68D0 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r1, r0, r2 - ldrb r0, [r1, #4] - cmp r0, #0 - beq _081C68DC - ldr r2, [r1] - ldr r0, _081C68D4 - cmp r2, r0 - beq _081C68BE - ldr r0, _081C68D8 - cmp r2, r0 - bne _081C68DC -_081C68BE: - movs r2, #0xe - ldrsh r0, [r1, r2] - cmp r0, r3 - bne _081C68DC - movs r0, #1 - b _081C68DE - .align 2, 0 -_081C68CC: .4byte 0x0000FFFF -_081C68D0: .4byte gUnknown_3005B60 -_081C68D4: .4byte sub_081C6930 -_081C68D8: .4byte Task_RunLoopedTask_LinkMode -_081C68DC: - movs r0, #0 -_081C68DE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsLoopedTaskActive - - thumb_func_start FuncIsActiveLoopedTask -FuncIsActiveLoopedTask: @ 0x081C68E4 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r5, #0 - ldr r4, _081C6914 -_081C68EC: - ldrb r0, [r4, #4] - cmp r0, #0 - beq _081C6920 - ldr r1, [r4] - ldr r0, _081C6918 - cmp r1, r0 - beq _081C6900 - ldr r0, _081C691C - cmp r1, r0 - bne _081C6920 -_081C6900: - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - movs r1, #1 - bl GetWordTaskArg - cmp r0, r6 - bne _081C6920 - movs r0, #1 - b _081C692A - .align 2, 0 -_081C6914: .4byte gUnknown_3005B60 -_081C6918: .4byte sub_081C6930 -_081C691C: .4byte Task_RunLoopedTask_LinkMode -_081C6920: - adds r4, #0x28 - adds r5, #1 - cmp r5, #0xf - ble _081C68EC - movs r0, #0 -_081C692A: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end FuncIsActiveLoopedTask - - thumb_func_start sub_081C6930 -sub_081C6930: @ 0x081C6930 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r5, #0 - movs r1, #1 - bl GetWordTaskArg - adds r6, r0, #0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _081C6964 - adds r4, r0, r1 - movs r7, #0 -_081C694C: - movs r1, #0 - ldrsh r0, [r4, r1] - bl _call_via_r6 - cmp r0, #4 - bhi _081C6996 - lsls r0, r0, #2 - ldr r1, _081C6968 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081C6964: .4byte gUnknown_3005B68 -_081C6968: .4byte _081C696C -_081C696C: @ jump table - .4byte _081C6986 @ case 0 - .4byte _081C6980 @ case 1 - .4byte _081C699E @ case 2 - .4byte _081C699A @ case 3 - .4byte _081C698E @ case 4 -_081C6980: - ldrh r0, [r4] - adds r0, #1 - b _081C6998 -_081C6986: - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - b _081C699E -_081C698E: - adds r0, r5, #0 - bl DestroyTask - b _081C699E -_081C6996: - subs r0, #5 -_081C6998: - strh r0, [r4] -_081C699A: - cmp r7, #0 - beq _081C694C -_081C699E: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_081C6930 - - thumb_func_start Task_RunLoopedTask_LinkMode -Task_RunLoopedTask_LinkMode: @ 0x081C69A4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - bl sub_08086EFC - cmp r0, #0 - bne _081C6A0A - adds r0, r5, #0 - movs r1, #1 - bl GetWordTaskArg - adds r2, r0, #0 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _081C69DC - adds r4, r0, r1 - movs r1, #0 - ldrsh r0, [r4, r1] - bl _call_via_r2 - cmp r0, #4 - bhi _081C6A06 - lsls r0, r0, #2 - ldr r1, _081C69E0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081C69DC: .4byte gUnknown_3005B68 -_081C69E0: .4byte _081C69E4 -_081C69E4: @ jump table - .4byte _081C69F8 @ case 0 - .4byte _081C69F8 @ case 1 - .4byte _081C6A0A @ case 2 - .4byte _081C6A0A @ case 3 - .4byte _081C69FE @ case 4 -_081C69F8: - ldrh r0, [r4] - adds r0, #1 - b _081C6A08 -_081C69FE: - adds r0, r5, #0 - bl DestroyTask - b _081C6A0A -_081C6A06: - subs r0, #5 -_081C6A08: - strh r0, [r4] -_081C6A0A: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end Task_RunLoopedTask_LinkMode - - thumb_func_start sub_081C6A10 -sub_081C6A10: @ 0x081C6A10 - push {r4, lr} - ldr r4, _081C6A28 - movs r0, #0x5c - bl sub_08000BC8 - str r0, [r4] - cmp r0, #0 - bne _081C6A30 - ldr r0, _081C6A2C - bl SetMainCallback2 - b _081C6A52 - .align 2, 0 -_081C6A28: .4byte gUnknown_203CC0C -_081C6A2C: .4byte CB2_ReturnToFieldWithOpenMenu -_081C6A30: - bl InitPokenavResources - bl ResetTasks - movs r0, #0 - bl SetVBlankCallback - ldr r0, _081C6A58 - movs r1, #0 - bl CreateTask - ldr r0, _081C6A5C - bl SetMainCallback2 - ldr r0, _081C6A60 - bl SetVBlankCallback -_081C6A52: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C6A58: .4byte sub_081C6BEC -_081C6A5C: .4byte sub_081C6BC0 -_081C6A60: .4byte VBlankCB_Pokenav - thumb_func_end sub_081C6A10 - - thumb_func_start sub_081C6A64 -sub_081C6A64: @ 0x081C6A64 - push {lr} - ldr r0, _081C6A78 - bl SetMainCallback2 - movs r0, #1 - movs r1, #0 - bl FadeScreen - pop {r0} - bx r0 - .align 2, 0 -_081C6A78: .4byte sub_081C6A7C - thumb_func_end sub_081C6A64 - - thumb_func_start sub_081C6A7C -sub_081C6A7C: @ 0x081C6A7C - push {r4, lr} - bl UpdatePaletteFade - ldr r0, _081C6AA4 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081C6AE0 - ldr r4, _081C6AA8 - movs r0, #0x5c - bl sub_08000BC8 - str r0, [r4] - cmp r0, #0 - bne _081C6AB0 - ldr r0, _081C6AAC - bl SetMainCallback2 - b _081C6AE0 - .align 2, 0 -_081C6AA4: .4byte gUnknown_2037C74 -_081C6AA8: .4byte gUnknown_203CC0C -_081C6AAC: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic -_081C6AB0: - bl InitPokenavResources - ldr r1, [r4] - movs r0, #1 - strh r0, [r1, #8] - bl ResetTasks - bl ResetSpriteData - bl FreeAllSpritePalettes - movs r0, #0 - bl SetVBlankCallback - ldr r0, _081C6AE8 - movs r1, #0 - bl CreateTask - ldr r0, _081C6AEC - bl SetMainCallback2 - ldr r0, _081C6AF0 - bl SetVBlankCallback -_081C6AE0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C6AE8: .4byte sub_081C6BEC -_081C6AEC: .4byte sub_081C6BC0 -_081C6AF0: .4byte VBlankCB_Pokenav - thumb_func_end sub_081C6A7C - - thumb_func_start FreePokenavResources -FreePokenavResources: @ 0x081C6AF4 - push {r4, lr} - movs r4, #0 -_081C6AF8: - adds r0, r4, #0 - bl FreePokenavSubstruct - adds r4, #1 - cmp r4, #0x12 - ble _081C6AF8 - ldr r4, _081C6B1C - ldr r0, [r4] - bl Free - movs r0, #0 - str r0, [r4] - bl InitKeys - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C6B1C: .4byte gUnknown_203CC0C - thumb_func_end FreePokenavResources - - thumb_func_start InitPokenavResources -InitPokenavResources: @ 0x081C6B20 - push {r4, r5, lr} - adds r5, r0, #0 - movs r2, #0 - movs r1, #0x12 - adds r0, #0x58 -_081C6B2A: - str r2, [r0] - subs r0, #4 - subs r1, #1 - cmp r1, #0 - bge _081C6B2A - movs r4, #0 - strh r4, [r5, #8] - str r4, [r5, #4] - bl AnyMonHasRibbon - str r0, [r5, #0xc] - str r4, [r5] - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end InitPokenavResources - - thumb_func_start AnyMonHasRibbon -AnyMonHasRibbon: @ 0x081C6B48 - push {r4, r5, r6, lr} - movs r5, #0 -_081C6B4C: - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _081C6BA8 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #5 - bl GetMonData - cmp r0, #0 - beq _081C6B7A - adds r0, r4, #0 - movs r1, #6 - bl GetMonData - cmp r0, #0 - bne _081C6B7A - adds r0, r4, #0 - movs r1, #0x52 - bl GetMonData - cmp r0, #0 - bne _081C6BA2 -_081C6B7A: - adds r5, #1 - cmp r5, #5 - ble _081C6B4C - movs r4, #0 -_081C6B82: - movs r5, #0 - lsls r6, r4, #0x18 -_081C6B86: - adds r0, r4, #0 - adds r1, r5, #0 - bl CheckBoxMonSanityAt - cmp r0, #0 - beq _081C6BAC - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - lsrs r0, r6, #0x18 - movs r2, #0x52 - bl GetBoxMonDataAt - cmp r0, #0 - beq _081C6BAC -_081C6BA2: - movs r0, #1 - b _081C6BBA - .align 2, 0 -_081C6BA8: .4byte gUnknown_2024190 -_081C6BAC: - adds r5, #1 - cmp r5, #0x1d - ble _081C6B86 - adds r4, #1 - cmp r4, #0xd - ble _081C6B82 - movs r0, #0 -_081C6BBA: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end AnyMonHasRibbon - - thumb_func_start sub_081C6BC0 -sub_081C6BC0: @ 0x081C6BC0 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C6BC0 - - thumb_func_start VBlankCB_Pokenav -VBlankCB_Pokenav: @ 0x081C6BD8 - push {lr} - bl TransferPlttBuffer - bl LoadOam - bl ProcessSpriteCopyRequests - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end VBlankCB_Pokenav - - thumb_func_start sub_081C6BEC -sub_081C6BEC: @ 0x081C6BEC - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _081C6C10 - adds r7, r1, r0 - movs r1, #0 - ldrsh r0, [r7, r1] - cmp r0, #5 - bls _081C6C06 - b _081C6D22 -_081C6C06: - lsls r0, r0, #2 - ldr r1, _081C6C14 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081C6C10: .4byte gUnknown_3005B68 -_081C6C14: .4byte _081C6C18 -_081C6C18: @ jump table - .4byte _081C6C30 @ case 0 - .4byte _081C6C3A @ case 1 - .4byte _081C6C50 @ case 2 - .4byte _081C6C5C @ case 3 - .4byte _081C6CDE @ case 4 - .4byte _081C6CEC @ case 5 -_081C6C30: - bl InitPokenavMainMenu - movs r0, #1 - strh r0, [r7] - b _081C6D22 -_081C6C3A: - bl PokenavMainMenuLoopedTaskIsActive - cmp r0, #0 - bne _081C6D22 - ldr r0, _081C6C4C - bl SetActivePokenavMenu - b _081C6CA8 - .align 2, 0 -_081C6C4C: .4byte 0x000186A0 -_081C6C50: - bl sub_081C702C - cmp r0, #0 - bne _081C6D22 - movs r0, #3 - strh r0, [r7] -_081C6C5C: - bl sub_081C6DA0 - adds r6, r0, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r6, r0 - beq _081C6CBC - ldr r0, _081C6CB0 - cmp r6, r0 - bls _081C6CC6 - ldr r4, _081C6CB4 - ldr r5, _081C6CB8 - ldr r0, [r5] - ldr r1, [r0, #4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #0x18 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, [r5] - ldr r1, [r0, #4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r4, #0x14 - adds r0, r0, r4 - ldr r0, [r0] - bl _call_via_r0 - adds r0, r6, #0 - bl SetActivePokenavMenu - cmp r0, #0 - beq _081C6CBC -_081C6CA8: - movs r0, #4 - strh r0, [r7] - b _081C6D22 - .align 2, 0 -_081C6CB0: .4byte 0x0001869F -_081C6CB4: .4byte gUnknown_85EF83C -_081C6CB8: .4byte gUnknown_203CC0C -_081C6CBC: - bl CB2_TradeEvolutionSceneUpdate - movs r0, #5 - strh r0, [r7] - b _081C6D22 -_081C6CC6: - cmp r6, #0 - beq _081C6D22 - adds r0, r6, #0 - bl sub_081C7010 - bl sub_081C702C - cmp r0, #0 - beq _081C6D22 - movs r0, #2 - strh r0, [r7] - b _081C6D22 -_081C6CDE: - bl sub_081C6D94 - cmp r0, #0 - bne _081C6D22 - movs r0, #3 - strh r0, [r7] - b _081C6D22 -_081C6CEC: - bl WaitForPokenavShutdownFade - cmp r0, #0 - bne _081C6D22 - ldr r0, _081C6D14 - ldr r0, [r0] - ldrh r0, [r0, #8] - rsbs r4, r0, #0 - orrs r4, r0 - lsrs r4, r4, #0x1f - bl sub_081C8BDC - bl FreePokenavResources - cmp r4, #0 - beq _081C6D1C - ldr r0, _081C6D18 - bl SetMainCallback2 - b _081C6D22 - .align 2, 0 -_081C6D14: .4byte gUnknown_203CC0C -_081C6D18: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic -_081C6D1C: - ldr r0, _081C6D28 - bl SetMainCallback2 -_081C6D22: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C6D28: .4byte CB2_ReturnToFieldWithOpenMenu - thumb_func_end sub_081C6BEC - - thumb_func_start SetActivePokenavMenu -SetActivePokenavMenu: @ 0x081C6D2C - push {r4, r5, r6, lr} - ldr r1, _081C6D80 - adds r6, r0, r1 - bl SetVBlankCallback_ - ldr r5, _081C6D84 - lsls r0, r6, #3 - subs r0, r0, r6 - lsls r4, r0, #2 - adds r0, r4, r5 - ldr r0, [r0] - bl _call_via_r0 - cmp r0, #0 - thumb_func_end SetActivePokenavMenu - - thumb_func_start sub_081C6D48 -sub_081C6D48: @ 0x081C6D48 - beq _081C6D8C - adds r0, r5, #0 - adds r0, #8 - adds r0, r4, r0 - ldr r0, [r0] - bl _call_via_r0 - cmp r0, #0 - beq _081C6D8C - adds r0, r5, #0 - adds r0, #0xc - adds r0, r4, r0 - ldr r0, [r0] - adds r1, r5, #0 - adds r1, #0x10 - adds r1, r4, r1 - ldr r1, [r1] - bl sub_081C6FF4 - ldr r0, _081C6D88 - ldr r1, [r0] - adds r0, r5, #4 - adds r0, r4, r0 - ldr r0, [r0] - str r0, [r1] - str r6, [r1, #4] - movs r0, #1 - b _081C6D8E - .align 2, 0 -_081C6D80: .4byte 0xFFFE7960 -_081C6D84: .4byte gUnknown_85EF83C -_081C6D88: .4byte gUnknown_203CC0C -_081C6D8C: - movs r0, #0 -_081C6D8E: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_081C6D48 - - thumb_func_start sub_081C6D94 -sub_081C6D94: @ 0x081C6D94 - push {lr} - bl sub_081C702C - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081C6D94 - - thumb_func_start sub_081C6DA0 -sub_081C6DA0: @ 0x081C6DA0 - push {lr} - ldr r0, _081C6DB0 - ldr r0, [r0] - ldr r0, [r0] - bl _call_via_r0 - thumb_func_end sub_081C6DA0 - - thumb_func_start sub_081C6DAC -sub_081C6DAC: @ 0x081C6DAC - pop {r1} - bx r1 - .align 2, 0 -_081C6DB0: .4byte gUnknown_203CC0C - thumb_func_end sub_081C6DAC - - thumb_func_start SetVBlankCallback_ -SetVBlankCallback_: @ 0x081C6DB4 - push {lr} - bl InitKeys - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SetVBlankCallback_ - - thumb_func_start sub_081C6DC0 -sub_081C6DC0: @ 0x081C6DC0 - push {lr} - bl SetVBlankCallback - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C6DC0 - - thumb_func_start SetPokenavVBlankCallback -SetPokenavVBlankCallback: @ 0x081C6DCC - push {lr} - ldr r0, _081C6DD8 - bl SetVBlankCallback - pop {r0} - bx r0 - .align 2, 0 -_081C6DD8: .4byte VBlankCB_Pokenav - thumb_func_end SetPokenavVBlankCallback - - thumb_func_start AllocSubstruct -AllocSubstruct: @ 0x081C6DDC - push {r4, lr} - adds r4, r0, #0 - adds r0, r1, #0 - bl sub_08000BC8 - ldr r1, _081C6DF8 - ldr r1, [r1] - lsls r4, r4, #2 - adds r1, #0x10 - adds r1, r1, r4 - str r0, [r1] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081C6DF8: .4byte gUnknown_203CC0C - thumb_func_end AllocSubstruct - - thumb_func_start GetSubstructPtr -GetSubstructPtr: @ 0x081C6DFC - ldr r1, _081C6E0C - ldr r1, [r1] - lsls r0, r0, #2 - adds r1, #0x10 - adds r1, r1, r0 - ldr r0, [r1] - bx lr - .align 2, 0 -_081C6E0C: .4byte gUnknown_203CC0C - thumb_func_end GetSubstructPtr - - thumb_func_start FreePokenavSubstruct -FreePokenavSubstruct: @ 0x081C6E10 - push {r4, r5, lr} - ldr r5, _081C6E38 - ldr r1, [r5] - lsls r4, r0, #2 - adds r1, #0x10 - adds r1, r1, r4 - ldr r0, [r1] - cmp r0, #0 - beq _081C6E30 - bl Free - ldr r0, [r5] - adds r0, #0x10 - adds r0, r0, r4 - movs r1, #0 - str r1, [r0] -_081C6E30: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C6E38: .4byte gUnknown_203CC0C - thumb_func_end FreePokenavSubstruct - - thumb_func_start GetPokenavMode -GetPokenavMode: @ 0x081C6E3C - ldr r0, _081C6E44 - ldr r0, [r0] - ldrh r0, [r0, #8] - bx lr - .align 2, 0 -_081C6E44: .4byte gUnknown_203CC0C - thumb_func_end GetPokenavMode - - thumb_func_start SetPokenavMode -SetPokenavMode: @ 0x081C6E48 - ldr r1, _081C6E50 - ldr r1, [r1] - strh r0, [r1, #8] - bx lr - .align 2, 0 -_081C6E50: .4byte gUnknown_203CC0C - thumb_func_end SetPokenavMode - - thumb_func_start sub_081C6E54 -sub_081C6E54: @ 0x081C6E54 - push {lr} - adds r1, r0, #0 - cmp r1, #4 - bls _081C6E5E - movs r1, #0 -_081C6E5E: - ldr r0, _081C6E68 - ldr r0, [r0] - strh r1, [r0, #0xa] - pop {r0} - bx r0 - .align 2, 0 -_081C6E68: .4byte gUnknown_203CC0C - thumb_func_end sub_081C6E54 - - thumb_func_start sub_081C6E6C -sub_081C6E6C: @ 0x081C6E6C - ldr r0, _081C6E74 - ldr r0, [r0] - ldrh r0, [r0, #0xa] - bx lr - .align 2, 0 -_081C6E74: .4byte gUnknown_203CC0C - thumb_func_end sub_081C6E6C - - thumb_func_start CanViewRibbonsMenu -CanViewRibbonsMenu: @ 0x081C6E78 - ldr r0, _081C6E80 - ldr r0, [r0] - ldr r0, [r0, #0xc] - bx lr - .align 2, 0 -_081C6E80: .4byte gUnknown_203CC0C - thumb_func_end CanViewRibbonsMenu - - thumb_func_start InitPokenavMainMenu -InitPokenavMainMenu: @ 0x081C6E84 - push {r4, lr} - ldr r1, _081C6EAC - movs r0, #0 - bl AllocSubstruct - adds r4, r0, #0 - cmp r4, #0 - beq _081C6EB4 - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r0, _081C6EB0 - movs r1, #1 - bl CreateLoopedTask - str r0, [r4, #0xc] - movs r0, #1 - b _081C6EB6 - .align 2, 0 -_081C6EAC: .4byte 0x0000082C -_081C6EB0: .4byte LoopedTask_InitPokenavMenu -_081C6EB4: - movs r0, #0 -_081C6EB6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end InitPokenavMainMenu - - thumb_func_start PokenavMainMenuLoopedTaskIsActive -PokenavMainMenuLoopedTaskIsActive: @ 0x081C6EBC - push {lr} - movs r0, #0 - bl GetSubstructPtr - ldr r0, [r0, #0xc] - bl IsLoopedTaskActive - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end PokenavMainMenuLoopedTaskIsActive - - thumb_func_start CB2_TradeEvolutionSceneUpdate -CB2_TradeEvolutionSceneUpdate: @ 0x081C6ED0 - push {lr} - sub sp, #4 - movs r0, #0x6f - bl sub_080A306C - bl sub_081CA288 - movs r1, #1 - rsbs r1, r1, #0 - movs r0, #0 - str r0, [sp] - adds r0, r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CB2_TradeEvolutionSceneUpdate - - thumb_func_start WaitForPokenavShutdownFade -WaitForPokenavShutdownFade: @ 0x081C6EF8 - push {lr} - ldr r0, _081C6F0C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _081C6F10 - movs r0, #1 - b _081C6F1E - .align 2, 0 -_081C6F0C: .4byte gUnknown_2037C74 -_081C6F10: - bl sub_081C9180 - bl CleanupPokenavMainMenuResources - bl FreeAllWindowBuffers - movs r0, #0 -_081C6F1E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end WaitForPokenavShutdownFade - - thumb_func_start LoopedTask_InitPokenavMenu -LoopedTask_InitPokenavMenu: @ 0x081C6F24 - push {r4, lr} - sub sp, #4 - cmp r0, #1 - beq _081C6F70 - cmp r0, #1 - bgt _081C6F36 - cmp r0, #0 - beq _081C6F40 - b _081C6FEA -_081C6F36: - cmp r0, #2 - beq _081C6FBC - cmp r0, #3 - beq _081C6FCE - b _081C6FEA -_081C6F40: - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - bl FreeAllWindowBuffers - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _081C6F6C - movs r0, #0 - movs r2, #1 - bl InitBgsFromTemplates - bl sub_08199A30 - bl reset_temp_tile_data_buffers - movs r0, #1 - b _081C6FEC - .align 2, 0 -_081C6F6C: .4byte gUnknown_85F13C8 -_081C6F70: - movs r0, #0 - bl GetSubstructPtr - adds r4, r0, #0 - ldr r1, _081C6FB0 - movs r0, #0 - str r0, [sp] - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - adds r4, #0x2c - movs r0, #0 - adds r1, r4, #0 - bl SetBgTilemapBuffer - ldr r1, _081C6FB4 - movs r0, #0 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - ldr r0, _081C6FB8 - movs r1, #0 - movs r2, #0x20 - bl ClearBottomWindow - movs r0, #0 - bl CopyBgTilemapBufferToVram - movs r0, #0 - b _081C6FEC - .align 2, 0 -_081C6FB0: .4byte gUnknown_85EFA00 -_081C6FB4: .4byte gUnknown_85EFC2C -_081C6FB8: .4byte gUnknown_85EF9E0 -_081C6FBC: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081C6FD8 - bl sub_081C7334 - movs r0, #0 - b _081C6FEC -_081C6FCE: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081C6FDC -_081C6FD8: - movs r0, #2 - b _081C6FEC -_081C6FDC: - bl InitPokenavMainMenuResources - bl InitHoennMapHeaderSprites - movs r0, #0 - bl ShowBg -_081C6FEA: - movs r0, #4 -_081C6FEC: - add sp, #4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end LoopedTask_InitPokenavMenu - - thumb_func_start sub_081C6FF4 -sub_081C6FF4: @ 0x081C6FF4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #0 - bl GetSubstructPtr - str r4, [r0] - str r5, [r0, #4] - movs r1, #0 - str r1, [r0, #8] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C6FF4 - - thumb_func_start sub_081C7010 -sub_081C7010: @ 0x081C7010 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0 - bl GetSubstructPtr - movs r1, #0 - str r1, [r0, #8] - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081C7010 - - thumb_func_start sub_081C702C -sub_081C702C: @ 0x081C702C - push {lr} - movs r0, #0 - bl GetSubstructPtr - ldr r0, [r0, #4] - bl _call_via_r0 - pop {r1} - thumb_func_end sub_081C702C - - thumb_func_start sub_081C703C -sub_081C703C: @ 0x081C703C - bx r1 - .align 2, 0 - thumb_func_end sub_081C703C - - thumb_func_start sub_081C7040 -sub_081C7040: @ 0x081C7040 - push {r4, lr} - movs r0, #0 - bl GetSubstructPtr - adds r4, r0, #0 - ldr r0, _081C705C - movs r1, #4 - bl CreateLoopedTask - str r0, [r4, #0xc] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C705C: .4byte LoopedTask_ScrollMenuHeaderDown - thumb_func_end sub_081C7040 - - thumb_func_start sub_081C7060 -sub_081C7060: @ 0x081C7060 - push {r4, lr} - movs r0, #0 - bl GetSubstructPtr - adds r4, r0, #0 - ldr r0, _081C707C - movs r1, #4 - bl CreateLoopedTask - str r0, [r4, #0xc] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C707C: .4byte LoopedTask_ScrollMenuHeaderUp - thumb_func_end sub_081C7060 - - thumb_func_start MainMenuLoopedTaskIsBusy -MainMenuLoopedTaskIsBusy: @ 0x081C7080 - push {lr} - movs r0, #0 - bl GetSubstructPtr - ldr r0, [r0, #0xc] - bl IsLoopedTaskActive - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MainMenuLoopedTaskIsBusy - - thumb_func_start LoopedTask_ScrollMenuHeaderDown -LoopedTask_ScrollMenuHeaderDown: @ 0x081C7094 - push {lr} - cmp r0, #1 - beq _081C70AA - cmp r0, #1 - bgt _081C70A4 - cmp r0, #0 - beq _081C70AA - b _081C70D4 -_081C70A4: - cmp r0, #2 - beq _081C70AE - b _081C70D4 -_081C70AA: - movs r0, #0 - b _081C70D6 -_081C70AE: - movs r1, #0xc0 - lsls r1, r1, #1 - movs r0, #0 - movs r2, #1 - bl ChangeBgY - ldr r1, _081C70C4 - cmp r0, r1 - bhi _081C70C8 - movs r0, #2 - b _081C70D6 - .align 2, 0 -_081C70C4: .4byte 0x00001FFF -_081C70C8: - movs r1, #0x80 - lsls r1, r1, #6 - movs r0, #0 - movs r2, #0 - bl ChangeBgY -_081C70D4: - movs r0, #4 -_081C70D6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end LoopedTask_ScrollMenuHeaderDown - - thumb_func_start LoopedTask_ScrollMenuHeaderUp -LoopedTask_ScrollMenuHeaderUp: @ 0x081C70DC - push {lr} - movs r1, #0xc0 - lsls r1, r1, #1 - movs r0, #0 - movs r2, #2 - bl ChangeBgY - cmp r0, #0 - ble _081C70F2 - movs r0, #2 - b _081C70FE -_081C70F2: - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #4 -_081C70FE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end LoopedTask_ScrollMenuHeaderUp - - thumb_func_start ClearBottomWindow -ClearBottomWindow: @ 0x081C7104 - push {lr} - lsls r1, r1, #1 - ldr r3, _081C7118 - adds r1, r1, r3 - lsls r2, r2, #0xa - lsrs r2, r2, #0xb - bl CpuSet - pop {r0} - bx r0 - .align 2, 0 -_081C7118: .4byte gUnknown_20373B4 - thumb_func_end ClearBottomWindow - - thumb_func_start Pokenav_AllocAndLoadPalettes -Pokenav_AllocAndLoadPalettes: @ 0x081C711C - push {r4, lr} - adds r4, r0, #0 - b _081C7134 -_081C7122: - lsls r0, r1, #4 - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r0, r2 - ldr r0, [r4] - movs r2, #0x20 - bl ClearBottomWindow - adds r4, #8 -_081C7134: - ldr r0, [r4] - cmp r0, #0 - beq _081C7148 - ldrh r0, [r4, #4] - bl AllocSpritePalette - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0xff - bne _081C7122 -_081C7148: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Pokenav_AllocAndLoadPalettes - - thumb_func_start sub_081C7150 -sub_081C7150: @ 0x081C7150 - push {lr} - sub sp, #4 - adds r3, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r0, sp - strh r1, [r0] - lsls r3, r3, #5 - ldr r0, _081C7174 - adds r3, r3, r0 - ldr r2, _081C7178 - mov r0, sp - adds r1, r3, #0 - bl CpuSet - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_081C7174: .4byte gUnknown_20379B4 -_081C7178: .4byte 0x01000010 - thumb_func_end sub_081C7150 - - thumb_func_start sub_081C717C -sub_081C717C: @ 0x081C717C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - str r0, [sp] - str r1, [sp, #4] - mov sl, r2 - str r3, [sp, #8] - ldr r0, [sp, #0x2c] - cmp r0, #0 - bne _081C71A4 - ldr r2, _081C71A0 - mov r1, sl - ands r2, r1 - ldr r0, [sp] - b _081C71B4 - .align 2, 0 -_081C71A0: .4byte 0x001FFFFF -_081C71A4: - ldr r2, [sp, #0x2c] - ldr r0, [sp, #8] - cmp r2, r0 - blt _081C71C0 - ldr r2, _081C71BC - mov r1, sl - ands r2, r1 - ldr r0, [sp, #4] -_081C71B4: - ldr r1, [sp, #0x30] - bl CpuSet - b _081C726E - .align 2, 0 -_081C71BC: .4byte 0x001FFFFF -_081C71C0: - movs r2, #1 - rsbs r2, r2, #0 - add sl, r2 - b _081C7266 -_081C71C8: - ldr r1, [sp] - ldrh r0, [r1] - movs r2, #0x1f - mov sb, r2 - mov r1, sb - ands r1, r0 - mov sb, r1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x15 - movs r1, #0x1f - ands r1, r2 - mov r8, r1 - lsrs r7, r0, #0x1a - movs r2, #0x1f - ands r7, r2 - ldr r0, [sp, #4] - ldrh r4, [r0] - movs r0, #0x1f - ands r0, r4 - mov r1, sb - subs r0, r0, r1 - lsls r0, r0, #8 - ldr r1, [sp, #8] - bl __divsi3 - ldr r2, [sp, #0x2c] - adds r6, r0, #0 - muls r6, r2, r6 - asrs r6, r6, #8 - lsls r4, r4, #0x10 - lsrs r0, r4, #0x15 - movs r1, #0x1f - ands r0, r1 - mov r2, r8 - subs r0, r0, r2 - lsls r0, r0, #8 - ldr r1, [sp, #8] - bl __divsi3 - ldr r1, [sp, #0x2c] - adds r5, r0, #0 - muls r5, r1, r5 - asrs r5, r5, #8 - lsrs r4, r4, #0x1a - movs r2, #0x1f - ands r4, r2 - subs r4, r4, r7 - lsls r4, r4, #8 - adds r0, r4, #0 - ldr r1, [sp, #8] - bl __divsi3 - ldr r1, [sp, #0x2c] - muls r0, r1, r0 - asrs r0, r0, #8 - add r6, sb - movs r2, #0x1f - ands r6, r2 - add r5, r8 - ands r5, r2 - adds r0, r7, r0 - ands r0, r2 - lsls r0, r0, #0xa - lsls r5, r5, #5 - orrs r0, r5 - orrs r0, r6 - ldr r1, [sp, #0x30] - strh r0, [r1] - ldr r2, [sp] - adds r2, #2 - str r2, [sp] - ldr r0, [sp, #4] - adds r0, #2 - str r0, [sp, #4] - adds r1, #2 - str r1, [sp, #0x30] - movs r1, #1 - rsbs r1, r1, #0 - add sl, r1 -_081C7266: - movs r0, #1 - rsbs r0, r0, #0 - cmp sl, r0 - bne _081C71C8 -_081C726E: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C717C - - thumb_func_start sub_081C7280 -sub_081C7280: @ 0x081C7280 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - movs r0, #0 - bl GetSubstructPtr - cmp r4, #1 - beq _081C72B0 - cmp r4, #1 - bgt _081C729A - cmp r4, #0 - beq _081C72A4 - b _081C72EC -_081C729A: - cmp r4, #2 - beq _081C72C4 - cmp r4, #3 - beq _081C72D8 - b _081C72EC -_081C72A4: - ldr r0, [r0, #0x14] - movs r1, #2 - rsbs r1, r1, #0 - str r4, [sp] - movs r2, #0 - b _081C72D0 -_081C72B0: - ldr r0, [r0, #0x14] - movs r1, #2 - rsbs r1, r1, #0 - movs r2, #0 - str r2, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - b _081C72EC -_081C72C4: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #2 - rsbs r1, r1, #0 - movs r2, #0 - str r2, [sp] -_081C72D0: - movs r3, #0x10 - bl BeginNormalPaletteFade - b _081C72EC -_081C72D8: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #2 - rsbs r1, r1, #0 - movs r2, #0 - str r2, [sp] - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade -_081C72EC: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081C7280 - - thumb_func_start sub_081C72F4 -sub_081C72F4: @ 0x081C72F4 - ldr r0, _081C72FC - ldrb r0, [r0, #7] - lsrs r0, r0, #7 - bx lr - .align 2, 0 -_081C72FC: .4byte gUnknown_2037C74 - thumb_func_end sub_081C72F4 - - thumb_func_start sub_081C7300 -sub_081C7300: @ 0x081C7300 - push {lr} - ldr r0, _081C7310 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - pop {r0} - bx r0 - .align 2, 0 -_081C7310: .4byte 0xFFFEFFFE - thumb_func_end sub_081C7300 - - thumb_func_start InitBgTemplates -InitBgTemplates: @ 0x081C7314 - push {r4, r5, lr} - adds r5, r0, #0 - cmp r1, #0 - ble _081C732C - adds r4, r1, #0 -_081C731E: - adds r0, r5, #0 - adds r5, #4 - bl InitBgFromTemplate - subs r4, #1 - cmp r4, #0 - bne _081C731E -_081C732C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end InitBgTemplates - - thumb_func_start sub_081C7334 -sub_081C7334: @ 0x081C7334 - push {r4, lr} - movs r0, #0 - bl GetSubstructPtr - adds r4, r0, #0 - ldr r0, _081C7360 - bl InitWindows - movs r0, #0 - str r0, [r4, #0x10] - bl sub_081C73B8 - ldrb r0, [r4, #0x10] - bl PutWindowTilemap - ldrb r0, [r4, #0x10] - movs r1, #3 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C7360: .4byte gUnknown_85F13CC - thumb_func_end sub_081C7334 - - thumb_func_start sub_081C7364 -sub_081C7364: @ 0x081C7364 - push {r4, r5, lr} - sub sp, #0xc - adds r4, r0, #0 - movs r0, #0 - bl GetSubstructPtr - adds r5, r0, #0 - ldr r0, [r5, #0x10] - bl sub_081C73B8 - ldrb r0, [r5, #0x10] - ldr r1, _081C73A0 - str r1, [sp] - movs r1, #0 - str r1, [sp, #4] - ldr r1, _081C73A4 - lsls r4, r4, #2 - adds r4, r4, r1 - ldr r1, [r4] - str r1, [sp, #8] - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C73A0: .4byte gUnknown_85F140C -_081C73A4: .4byte gUnknown_85F13DC - thumb_func_end sub_081C7364 - - thumb_func_start sub_081C73A8 -sub_081C73A8: @ 0x081C73A8 - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081C73A8 - - thumb_func_start sub_081C73B8 -sub_081C73B8: @ 0x081C73B8 - push {r4, lr} - sub sp, #8 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #0x44 - bl FillWindowPixelBuffer - movs r0, #0x80 - str r0, [sp] - movs r0, #1 - str r0, [sp, #4] - adds r0, r4, #0 - movs r1, #0x55 - movs r2, #0 - movs r3, #0 - bl sub_08003A34 - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C73B8 - - thumb_func_start InitPokenavMainMenuResources -InitPokenavMainMenuResources: @ 0x081C73E8 - push {r4, r5, r6, lr} - movs r0, #0 - bl GetSubstructPtr - adds r6, r0, #0 - movs r5, #0 - ldr r4, _081C7444 -_081C73F6: - adds r0, r4, #0 - bl LoadCompressedSpriteSheet - adds r4, #8 - adds r5, #1 - cmp r5, #0 - beq _081C73F6 - ldr r0, _081C7448 - bl Pokenav_AllocAndLoadPalettes - movs r0, #0 - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x80 - lsls r1, r1, #9 - lsls r1, r0 - movs r0, #2 - rsbs r0, r0, #0 - bics r0, r1 - str r0, [r6, #0x14] - ldr r0, _081C744C - movs r1, #0xdc - movs r2, #0xc - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _081C7450 - adds r1, r1, r0 - str r1, [r6, #0x18] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081C7444: .4byte gUnknown_85F1410 -_081C7448: .4byte gUnknown_85F1418 -_081C744C: .4byte gUnknown_85F14C8 -_081C7450: .4byte gUnknown_20205AC - thumb_func_end InitPokenavMainMenuResources - - thumb_func_start CleanupPokenavMainMenuResources -CleanupPokenavMainMenuResources: @ 0x081C7454 - push {lr} - movs r0, #0 - bl GetSubstructPtr - ldr r0, [r0, #0x18] - bl DestroySprite - movs r0, #0 - bl FreeSpriteTilesByTag - movs r0, #0 - bl FreeSpritePaletteByTag - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end CleanupPokenavMainMenuResources - - thumb_func_start SpriteCB_SpinningPokenav -SpriteCB_SpinningPokenav: @ 0x081C7474 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0 - bl GetBgY - lsrs r0, r0, #8 - rsbs r0, r0, #0 - strh r0, [r4, #0x26] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SpriteCB_SpinningPokenav - - thumb_func_start PauseSpinningPokenavSprite -PauseSpinningPokenavSprite: @ 0x081C748C - push {lr} - movs r0, #0 - bl GetSubstructPtr - ldr r0, [r0, #0x18] - ldr r1, _081C74A0 - str r1, [r0, #0x1c] - pop {r1} - bx r1 - .align 2, 0 -_081C74A0: .4byte sub_08007140 - thumb_func_end PauseSpinningPokenavSprite - - thumb_func_start ResumeSpinningPokenavSprite -ResumeSpinningPokenavSprite: @ 0x081C74A4 - push {r4, lr} - movs r0, #0 - bl GetSubstructPtr - ldr r2, [r0, #0x18] - movs r4, #0 - movs r1, #0xdc - strh r1, [r2, #0x20] - ldr r2, [r0, #0x18] - movs r1, #0xc - strh r1, [r2, #0x22] - ldr r2, [r0, #0x18] - ldr r1, _081C74E4 - str r1, [r2, #0x1c] - adds r2, #0x3e - ldrb r3, [r2] - movs r1, #5 - rsbs r1, r1, #0 - ands r1, r3 - strb r1, [r2] - ldr r3, [r0, #0x18] - ldrb r2, [r3, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r3, #5] - ldr r0, [r0, #0x18] - adds r0, #0x43 - strb r4, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C74E4: .4byte SpriteCB_SpinningPokenav - thumb_func_end ResumeSpinningPokenavSprite - - thumb_func_start InitHoennMapHeaderSprites -InitHoennMapHeaderSprites: @ 0x081C74E8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r0, #0 - bl GetSubstructPtr - adds r6, r0, #0 - ldr r0, _081C75A4 - bl LoadCompressedSpriteSheet - movs r0, #1 - bl AllocSpritePalette - movs r0, #2 - bl AllocSpritePalette - movs r5, #0 - ldr r0, _081C75A8 - mov r8, r0 - movs r7, #4 -_081C7510: - ldr r0, _081C75AC - movs r1, #0 - movs r2, #0 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - lsls r4, r5, #2 - adds r2, r6, #0 - adds r2, #0x1c - adds r2, r2, r4 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - str r0, [r2] - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r7 - strb r1, [r0] - ldr r1, [r2] - lsls r0, r5, #6 - strh r0, [r1, #0x24] - ldr r0, _081C75B0 - movs r1, #0 - movs r2, #0 - movs r3, #2 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r2, r6, #0 - adds r2, #0x24 - adds r2, r2, r4 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - str r0, [r2] - adds r0, #0x3e - ldrb r1, [r0] - orrs r1, r7 - strb r1, [r0] - ldr r1, [r2] - lsls r0, r5, #5 - strh r0, [r1, #0x24] - ldr r1, [r2] - movs r0, #0x12 - strh r0, [r1, #0x26] - ldr r3, [r2] - ldrh r2, [r3, #4] - lsls r1, r2, #0x16 - lsrs r1, r1, #0x16 - lsls r0, r5, #3 - adds r0, #0x40 - adds r1, r1, r0 - ldr r4, _081C75B4 - adds r0, r4, #0 - ands r1, r0 - ldr r4, _081C75B8 - adds r0, r4, #0 - ands r2, r0 - orrs r2, r1 - strh r2, [r3, #4] - adds r5, #1 - cmp r5, #1 - ble _081C7510 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C75A4: .4byte gUnknown_85F1428 -_081C75A8: .4byte gUnknown_20205AC -_081C75AC: .4byte gUnknown_85F14F0 -_081C75B0: .4byte gUnknown_85F1508 -_081C75B4: .4byte 0x000003FF -_081C75B8: .4byte 0xFFFFFC00 - thumb_func_end InitHoennMapHeaderSprites - - thumb_func_start LoadLeftHeaderGfxForIndex -LoadLeftHeaderGfxForIndex: @ 0x081C75BC - push {lr} - cmp r0, #5 - bhi _081C75C8 - bl sub_081C7618 - b _081C75CE -_081C75C8: - subs r0, #6 - bl LoadLeftHeaderGfxForSubMenu -_081C75CE: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end LoadLeftHeaderGfxForIndex - - thumb_func_start sub_081C75D4 -sub_081C75D4: @ 0x081C75D4 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0 - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #4 - bne _081C75F0 - movs r0, #2 - bl GetSpriteTileStartByTag - ldr r3, [r5, #0x20] - adds r0, #0x20 - b _081C75FA -_081C75F0: - movs r0, #2 - bl GetSpriteTileStartByTag - ldr r3, [r5, #0x20] - adds r0, #0x40 -_081C75FA: - ldr r2, _081C7610 - adds r1, r2, #0 - ands r0, r1 - ldrh r2, [r3, #4] - ldr r1, _081C7614 - ands r1, r2 - orrs r1, r0 - strh r1, [r3, #4] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C7610: .4byte 0x000003FF -_081C7614: .4byte 0xFFFFFC00 - thumb_func_end sub_081C75D4 - - thumb_func_start sub_081C7618 -sub_081C7618: @ 0x081C7618 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - adds r6, r0, #0 - cmp r6, #5 - bhi _081C76A8 - movs r0, #0 - bl GetSubstructPtr - mov sb, r0 - ldr r0, _081C76B4 - lsls r6, r6, #3 - adds r6, r6, r0 - ldrh r4, [r6, #6] - ldr r0, [r6] - mov r8, r0 - bl GetDecompressedDataSize - adds r5, r0, #0 - lsls r4, r4, #5 - ldr r0, _081C76B8 - adds r4, r4, r0 - movs r0, #1 - bl IndexOfSpritePaletteTag - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #4 - movs r2, #0x80 - lsls r2, r2, #0x11 - adds r1, r1, r2 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - movs r2, #0x20 - bl LoadPalette - ldr r4, _081C76BC - mov r0, r8 - adds r1, r4, #0 - bl LZ77UnCompWram - movs r0, #2 - bl GetSpriteTileStartByTag - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0xb - ldr r0, _081C76C0 - adds r1, r1, r0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - adds r0, r4, #0 - adds r2, r5, #0 - movs r3, #1 - bl RequestDma3Copy - movs r0, #2 - bl GetSpriteTileStartByTag - mov r1, sb - ldr r3, [r1, #0x20] - ldrh r1, [r6, #4] - adds r0, r0, r1 - ldr r2, _081C76C4 - adds r1, r2, #0 - ands r0, r1 - ldrh r2, [r3, #4] - ldr r1, _081C76C8 - ands r1, r2 - orrs r1, r0 - strh r1, [r3, #4] -_081C76A8: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081C76B4: .4byte gUnknown_85F1430 -_081C76B8: .4byte gUnknown_85F021C -_081C76BC: .4byte gUnknown_201C000 -_081C76C0: .4byte 0x06010000 -_081C76C4: .4byte 0x000003FF -_081C76C8: .4byte 0xFFFFFC00 - thumb_func_end sub_081C7618 - - thumb_func_start LoadLeftHeaderGfxForSubMenu -LoadLeftHeaderGfxForSubMenu: @ 0x081C76CC - push {r4, r5, r6, lr} - cmp r0, #6 - bhi _081C7732 - ldr r2, _081C7738 - lsls r1, r0, #3 - adds r0, r2, #4 - adds r0, r1, r0 - ldr r4, [r0] - adds r1, r1, r2 - ldr r6, [r1] - adds r0, r6, #0 - bl GetDecompressedDataSize - adds r5, r0, #0 - lsls r4, r4, #5 - ldr r0, _081C773C - adds r4, r4, r0 - movs r0, #2 - bl IndexOfSpritePaletteTag - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #4 - movs r0, #0x80 - lsls r0, r0, #0x11 - adds r1, r1, r0 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - movs r2, #0x20 - bl LoadPalette - ldr r4, _081C7740 - adds r0, r6, #0 - adds r1, r4, #0 - bl LZ77UnCompWram - movs r0, #2 - bl GetSpriteTileStartByTag - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0xb - ldr r0, _081C7744 - adds r1, r1, r0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - adds r0, r4, #0 - adds r2, r5, #0 - movs r3, #1 - bl RequestDma3Copy -_081C7732: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081C7738: .4byte gUnknown_85F1460 -_081C773C: .4byte gUnknown_85F021C -_081C7740: .4byte gUnknown_201D000 -_081C7744: .4byte 0x06010800 - thumb_func_end LoadLeftHeaderGfxForSubMenu - - thumb_func_start sub_081C7748 -sub_081C7748: @ 0x081C7748 - push {lr} - adds r3, r0, #0 - movs r0, #0x10 - cmp r1, #0 - bne _081C7754 - movs r0, #0x30 -_081C7754: - cmp r3, #5 - bhi _081C7760 - adds r1, r2, #0 - bl ShowLeftHeaderSprites - b _081C7766 -_081C7760: - adds r1, r2, #0 - bl ShowLeftHeaderSubmenuSprites -_081C7766: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C7748 - - thumb_func_start sub_081C776C -sub_081C776C: @ 0x081C776C - push {lr} - cmp r0, #5 - bhi _081C777A - adds r0, r1, #0 - bl HideLeftHeaderSprites - b _081C7780 -_081C777A: - adds r0, r1, #0 - bl HideLeftHeaderSubmenuSprites -_081C7780: - pop {r0} - bx r0 - thumb_func_end sub_081C776C - - thumb_func_start sub_081C7784 -sub_081C7784: @ 0x081C7784 - push {r4, lr} - movs r0, #0 - bl GetSubstructPtr - movs r4, #4 - adds r2, r0, #0 - adds r2, #0x1c - movs r3, #1 -_081C7794: - ldr r1, [r2] - adds r1, #0x3e - ldrb r0, [r1] - orrs r0, r4 - strb r0, [r1] - ldr r1, [r2, #8] - adds r1, #0x3e - ldrb r0, [r1] - orrs r0, r4 - strb r0, [r1] - adds r2, #4 - subs r3, #1 - cmp r3, #0 - bge _081C7794 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C7784 - - thumb_func_start sub_081C77B8 -sub_081C77B8: @ 0x081C77B8 - push {lr} - movs r0, #0 - bl GetSubstructPtr - adds r1, r0, #0 - ldr r0, [r1, #0x1c] - ldr r2, [r0, #0x1c] - ldr r0, _081C77D8 - cmp r2, r0 - bne _081C77DC - ldr r0, [r1, #0x24] - ldr r0, [r0, #0x1c] - cmp r0, r2 - bne _081C77DC - movs r0, #0 - b _081C77DE - .align 2, 0 -_081C77D8: .4byte sub_08007140 -_081C77DC: - movs r0, #1 -_081C77DE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081C77B8 - - thumb_func_start ShowLeftHeaderSprites -ShowLeftHeaderSprites: @ 0x081C77E4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r4, r1, #0 - movs r0, #0 - bl GetSubstructPtr - cmp r4, #0 - bne _081C7800 - movs r7, #0x60 - rsbs r7, r7, #0 - movs r6, #0x20 - b _081C7806 -_081C7800: - movs r7, #0x80 - lsls r7, r7, #1 - movs r6, #0xa0 -_081C7806: - adds r4, r0, #0 - adds r4, #0x1c - movs r5, #1 -_081C780C: - ldr r0, [r4] - mov r1, r8 - strh r1, [r0, #0x22] - ldm r4!, {r0} - adds r1, r7, #0 - adds r2, r6, #0 - movs r3, #0xc - bl MoveLeftHeader - subs r5, #1 - cmp r5, #0 - bge _081C780C - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ShowLeftHeaderSprites - - thumb_func_start ShowLeftHeaderSubmenuSprites -ShowLeftHeaderSubmenuSprites: @ 0x081C7830 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r4, r1, #0 - movs r0, #0 - bl GetSubstructPtr - cmp r4, #0 - bne _081C784C - movs r7, #0x60 - rsbs r7, r7, #0 - movs r6, #0x10 - b _081C7852 -_081C784C: - movs r7, #0x80 - lsls r7, r7, #1 - movs r6, #0xc0 -_081C7852: - adds r4, r0, #0 - adds r4, #0x24 - movs r5, #1 -_081C7858: - ldr r0, [r4] - mov r1, r8 - strh r1, [r0, #0x22] - ldm r4!, {r0} - adds r1, r7, #0 - adds r2, r6, #0 - movs r3, #0xc - bl MoveLeftHeader - subs r5, #1 - cmp r5, #0 - bge _081C7858 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end ShowLeftHeaderSubmenuSprites - - thumb_func_start HideLeftHeaderSprites -HideLeftHeaderSprites: @ 0x081C787C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - movs r0, #0 - bl GetSubstructPtr - cmp r4, #0 - bne _081C7892 - movs r6, #0x20 - movs r5, #0x60 - rsbs r5, r5, #0 - b _081C7898 -_081C7892: - movs r6, #0xc0 - movs r5, #0x80 - lsls r5, r5, #1 -_081C7898: - adds r7, r0, #0 - adds r7, #0x1c - movs r4, #1 -_081C789E: - ldm r7!, {r0} - adds r1, r6, #0 - adds r2, r5, #0 - movs r3, #0xc - bl MoveLeftHeader - subs r4, #1 - cmp r4, #0 - bge _081C789E - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end HideLeftHeaderSprites - - thumb_func_start HideLeftHeaderSubmenuSprites -HideLeftHeaderSubmenuSprites: @ 0x081C78B8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - movs r0, #0 - bl GetSubstructPtr - cmp r4, #0 - bne _081C78CE - movs r6, #0x10 - movs r5, #0x60 - rsbs r5, r5, #0 - b _081C78D4 -_081C78CE: - movs r6, #0xc0 - movs r5, #0x80 - lsls r5, r5, #1 -_081C78D4: - adds r7, r0, #0 - adds r7, #0x24 - movs r4, #1 -_081C78DA: - ldm r7!, {r0} - adds r1, r6, #0 - adds r2, r5, #0 - movs r3, #0xc - bl MoveLeftHeader - subs r4, #1 - cmp r4, #0 - bge _081C78DA - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end HideLeftHeaderSubmenuSprites - - thumb_func_start MoveLeftHeader -MoveLeftHeader: @ 0x081C78F4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r0, r1, #0 - adds r6, r2, #0 - adds r5, r3, #0 - strh r0, [r4, #0x20] - lsls r1, r0, #4 - strh r1, [r4, #0x2e] - subs r0, r6, r0 - lsls r0, r0, #4 - adds r1, r5, #0 - bl __divsi3 - strh r0, [r4, #0x30] - strh r5, [r4, #0x32] - strh r6, [r4, #0x3c] - ldr r0, _081C7920 - str r0, [r4, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081C7920: .4byte SpriteCB_MoveLeftHeader - thumb_func_end MoveLeftHeader - - thumb_func_start SpriteCB_MoveLeftHeader -SpriteCB_MoveLeftHeader: @ 0x081C7924 - push {lr} - adds r2, r0, #0 - ldrh r1, [r2, #0x32] - movs r3, #0x32 - ldrsh r0, [r2, r3] - cmp r0, #0 - beq _081C796C - subs r0, r1, #1 - strh r0, [r2, #0x32] - ldrh r0, [r2, #0x30] - ldrh r1, [r2, #0x2e] - adds r0, r0, r1 - strh r0, [r2, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - strh r0, [r2, #0x20] - adds r0, #0x10 - lsls r0, r0, #0x10 - movs r1, #0x88 - lsls r1, r1, #0x11 - cmp r0, r1 - bls _081C795E - adds r0, r2, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - b _081C7974 -_081C795E: - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - b _081C7974 -_081C796C: - ldrh r0, [r2, #0x3c] - strh r0, [r2, #0x20] - ldr r0, _081C7978 - str r0, [r2, #0x1c] -_081C7974: - pop {r0} - bx r0 - .align 2, 0 -_081C7978: .4byte sub_08007140 - thumb_func_end SpriteCB_MoveLeftHeader - - thumb_func_start sub_081C797C -sub_081C797C: @ 0x081C797C - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r5, r1, #0 - adds r7, r2, #0 - ldr r1, _081C79B8 - movs r0, #0x11 - bl AllocSubstruct - adds r4, r0, #0 - cmp r4, #0 - beq _081C79C4 - ldr r1, _081C79BC - adds r0, r4, r1 - adds r1, r5, #0 - bl sub_081C8914 - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r5, #0 - adds r3, r7, #0 - bl sub_081C8960 - cmp r0, #0 - beq _081C79C4 - ldr r0, _081C79C0 - movs r1, #6 - bl CreateLoopedTask - movs r0, #1 - b _081C79C6 - .align 2, 0 -_081C79B8: .4byte 0x000008A4 -_081C79BC: .4byte 0x00000888 -_081C79C0: .4byte LoopedTask_sub_81C8254 -_081C79C4: - movs r0, #0 -_081C79C6: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_081C797C - - thumb_func_start sub_081C79CC -sub_081C79CC: @ 0x081C79CC - push {lr} - ldr r0, _081C79D8 - bl FuncIsActiveLoopedTask - pop {r1} - bx r1 - .align 2, 0 -_081C79D8: .4byte LoopedTask_sub_81C8254 - thumb_func_end sub_081C79CC - - thumb_func_start sub_081C79DC -sub_081C79DC: @ 0x081C79DC - push {r4, lr} - movs r0, #0x11 - bl GetSubstructPtr - adds r4, r0, #0 - bl sub_081C8794 - ldrb r0, [r4, #8] - bl RemoveWindow - movs r0, #0x11 - bl FreePokenavSubstruct - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081C79DC - - thumb_func_start LoopedTask_sub_81C8254 -LoopedTask_sub_81C8254: @ 0x081C79FC - push {r4, lr} - adds r4, r0, #0 - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081C7A68 - movs r0, #0x11 - bl GetSubstructPtr - adds r2, r0, #0 - cmp r4, #4 - bhi _081C7A7E - lsls r0, r4, #2 - ldr r1, _081C7A20 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081C7A20: .4byte _081C7A24 -_081C7A24: @ jump table - .4byte _081C7A38 @ case 0 - .4byte _081C7A42 @ case 1 - .4byte _081C7A4C @ case 2 - .4byte _081C7A60 @ case 3 - .4byte _081C7A74 @ case 4 -_081C7A38: - adds r0, r2, #0 - bl sub_081C7A8C - movs r0, #0 - b _081C7A80 -_081C7A42: - adds r0, r2, #0 - bl sub_081C7B04 - movs r0, #0 - b _081C7A80 -_081C7A4C: - ldr r1, _081C7A5C - adds r0, r2, r1 - adds r1, r2, #0 - bl sub_081C7B24 - movs r0, #0 - b _081C7A80 - .align 2, 0 -_081C7A5C: .4byte 0x00000888 -_081C7A60: - bl sub_081C7B88 - cmp r0, #0 - beq _081C7A6C -_081C7A68: - movs r0, #2 - b _081C7A80 -_081C7A6C: - bl sub_081C867C - movs r0, #1 - b _081C7A80 -_081C7A74: - ldr r1, _081C7A88 - adds r0, r2, r1 - adds r1, r2, #0 - bl sub_081C86A4 -_081C7A7E: - movs r0, #4 -_081C7A80: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081C7A88: .4byte 0x00000888 - thumb_func_end LoopedTask_sub_81C8254 - - thumb_func_start sub_081C7A8C -sub_081C7A8C: @ 0x081C7A8C - push {r4, r5, lr} - sub sp, #8 - adds r5, r0, #0 - ldrb r4, [r5, #1] - lsls r4, r4, #0xc - ldrh r0, [r5, #6] - orrs r4, r0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldrb r0, [r5] - ldrh r2, [r5, #6] - movs r1, #0x11 - movs r3, #1 - bl sub_08199A88 - ldrb r0, [r5] - ldrh r2, [r5, #6] - adds r2, #1 - movs r1, #0x44 - movs r3, #1 - bl sub_08199A88 - ldrb r0, [r5] - adds r1, r5, #0 - adds r1, #0x88 - bl SetBgTilemapBuffer - ldrb r0, [r5] - movs r1, #0x20 - str r1, [sp] - str r1, [sp, #4] - adds r1, r4, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - ldrb r0, [r5] - movs r1, #0 - movs r2, #0 - bl ChangeBgY - ldrb r0, [r5] - movs r1, #0 - movs r2, #0 - bl ChangeBgX - ldrb r0, [r5] - ldrb r1, [r5, #3] - lsls r1, r1, #0xb - movs r2, #2 - bl ChangeBgY - ldrb r0, [r5] - bl CopyBgTilemapBufferToVram - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C7A8C - - thumb_func_start sub_081C7B04 -sub_081C7B04: @ 0x081C7B04 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #8] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldrb r0, [r4, #8] - bl PutWindowTilemap - ldrb r0, [r4, #8] - movs r1, #1 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081C7B04 - - thumb_func_start sub_081C7B24 -sub_081C7B24: @ 0x081C7B24 - push {r4, r5, lr} - sub sp, #8 - adds r3, r0, #0 - adds r5, r1, #0 - ldrh r0, [r3, #2] - ldrh r4, [r3] - subs r2, r0, r4 - ldrh r0, [r3, #8] - cmp r2, r0 - ble _081C7B3A - adds r2, r0, #0 -_081C7B3A: - ldr r0, [r3, #0x10] - ldr r3, [r3, #0xc] - movs r1, #0 - str r1, [sp] - str r5, [sp, #4] - adds r1, r4, #0 - bl sub_081C7B54 - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C7B24 - - thumb_func_start sub_081C7B54 -sub_081C7B54: @ 0x081C7B54 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, [sp, #0x10] - cmp r2, #0 - beq _081C7B7E - adds r0, r5, #0 - muls r0, r3, r0 - adds r0, r4, r0 - str r0, [r1, #0x1c] - str r3, [r1, #0x18] - movs r0, #0 - strh r0, [r1, #0xc] - strh r2, [r1, #0xe] - str r5, [r1, #0x14] - ldr r0, [sp, #0xc] - str r0, [r1, #0x10] - ldr r0, _081C7B84 - movs r1, #5 - bl CreateLoopedTask -_081C7B7E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C7B84: .4byte LoopedTask_sub_81C83F0 - thumb_func_end sub_081C7B54 - - thumb_func_start sub_081C7B88 -sub_081C7B88: @ 0x081C7B88 - push {lr} - ldr r0, _081C7B94 - bl FuncIsActiveLoopedTask - pop {r1} - bx r1 - .align 2, 0 -_081C7B94: .4byte LoopedTask_sub_81C83F0 - thumb_func_end sub_081C7B88 - - thumb_func_start LoopedTask_sub_81C83F0 -LoopedTask_sub_81C83F0: @ 0x081C7B98 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - adds r6, r0, #0 - movs r0, #0x11 - bl GetSubstructPtr - adds r4, r0, #0 - cmp r6, #0 - beq _081C7BB0 - cmp r6, #1 - beq _081C7C34 - b _081C7C42 -_081C7BB0: - ldrh r0, [r4, #0xa] - ldrh r1, [r4, #0xc] - adds r0, r0, r1 - ldr r1, [r4, #0x10] - adds r5, r0, r1 - movs r0, #0xf - ands r5, r0 - ldr r0, [r4, #0x1c] - adds r7, r4, #0 - adds r7, #0x48 - ldr r2, [r4, #0x34] - adds r1, r7, #0 - bl _call_via_r2 - ldr r3, [r4, #0x38] - cmp r3, #0 - beq _081C7BDC - ldrh r0, [r4, #8] - ldr r1, [r4, #0x14] - adds r2, r5, #0 - bl _call_via_r3 -_081C7BDC: - ldrb r0, [r4, #8] - lsls r1, r5, #4 - movs r2, #2 - orrs r1, r2 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - str r6, [sp, #8] - movs r1, #1 - adds r2, r7, #0 - movs r3, #0 - bl AddTextPrinterParameterized - ldrh r0, [r4, #0xc] - adds r0, #1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrh r1, [r4, #0xe] - cmp r0, r1 - blo _081C7C22 - ldr r0, [r4, #0x38] - cmp r0, #0 - beq _081C7C16 - ldrb r0, [r4, #8] - movs r1, #3 - bl CopyWindowToVram - b _081C7C1E -_081C7C16: - ldrb r0, [r4, #8] - movs r1, #2 - bl CopyWindowToVram -_081C7C1E: - movs r0, #0 - b _081C7C44 -_081C7C22: - ldr r0, [r4, #0x1c] - ldr r1, [r4, #0x18] - adds r0, r0, r1 - str r0, [r4, #0x1c] - ldr r0, [r4, #0x14] - adds r0, #1 - str r0, [r4, #0x14] - movs r0, #3 - b _081C7C44 -_081C7C34: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081C7C42 - movs r0, #2 - b _081C7C44 -_081C7C42: - movs r0, #4 -_081C7C44: - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end LoopedTask_sub_81C83F0 - - thumb_func_start ShouldShowUpArrow -ShouldShowUpArrow: @ 0x081C7C4C - push {lr} - movs r0, #0x11 - bl GetSubstructPtr - ldr r1, _081C7C64 - adds r0, r0, r1 - ldrh r1, [r0] - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - pop {r1} - bx r1 - .align 2, 0 -_081C7C64: .4byte 0x00000888 - thumb_func_end ShouldShowUpArrow - - thumb_func_start ShouldShowDownArrow -ShouldShowDownArrow: @ 0x081C7C68 - push {lr} - movs r0, #0x11 - bl GetSubstructPtr - ldr r1, _081C7C8C - adds r0, r0, r1 - movs r3, #0 - ldrh r1, [r0] - ldrh r2, [r0, #8] - adds r1, r1, r2 - ldrh r0, [r0, #2] - cmp r1, r0 - bge _081C7C84 - movs r3, #1 -_081C7C84: - adds r0, r3, #0 - pop {r1} - bx r1 - .align 2, 0 -_081C7C8C: .4byte 0x00000888 - thumb_func_end ShouldShowDownArrow - - thumb_func_start MatchCall_MoveWindow -MatchCall_MoveWindow: @ 0x081C7C90 - push {r4, r5, r6, r7, lr} - sub sp, #8 - adds r6, r0, #0 - adds r4, r1, #0 - movs r0, #0x11 - bl GetSubstructPtr - adds r7, r0, #0 - ldr r0, _081C7CC8 - adds r5, r7, r0 - cmp r6, #0 - bge _081C7CCC - ldrh r1, [r5] - adds r0, r1, r6 - cmp r0, #0 - bge _081C7CB2 - rsbs r6, r1, #0 -_081C7CB2: - cmp r4, #0 - beq _081C7CF6 - ldr r0, [r5, #0x10] - adds r1, r1, r6 - rsbs r2, r6, #0 - ldr r3, [r5, #0xc] - str r6, [sp] - str r7, [sp, #4] - bl sub_081C7B54 - b _081C7CF6 - .align 2, 0 -_081C7CC8: .4byte 0x00000888 -_081C7CCC: - cmp r4, #0 - beq _081C7CF6 - ldr r2, _081C7D0C - ldrh r1, [r5] - ldrh r0, [r5, #8] - adds r4, r1, r0 - str r4, [r2] - adds r0, r4, r6 - ldrh r1, [r5, #2] - cmp r0, r1 - blt _081C7CE4 - subs r6, r1, r4 -_081C7CE4: - ldr r0, [r5, #0x10] - ldr r3, [r5, #0xc] - ldrh r1, [r5, #8] - str r1, [sp] - str r7, [sp, #4] - adds r1, r4, #0 - adds r2, r6, #0 - bl sub_081C7B54 -_081C7CF6: - adds r0, r6, #0 - adds r1, r7, #0 - bl sub_081C7D10 - ldrh r0, [r5] - adds r0, r0, r6 - strh r0, [r5] - add sp, #8 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C7D0C: .4byte gUnknown_203CC10 - thumb_func_end MatchCall_MoveWindow - - thumb_func_start sub_081C7D10 -sub_081C7D10: @ 0x081C7D10 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - ldrb r0, [r4] - bl GetBgY - str r0, [r4, #0x20] - lsls r1, r5, #0xc - adds r0, r0, r1 - str r0, [r4, #0x24] - cmp r5, #0 - ble _081C7D2C - movs r0, #1 - b _081C7D2E -_081C7D2C: - movs r0, #2 -_081C7D2E: - str r0, [r4, #0x30] - str r5, [r4, #0x2c] - ldr r0, _081C7D44 - movs r1, #6 - bl CreateLoopedTask - str r0, [r4, #0x28] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C7D44: .4byte LoopedTask_sub_81C85A0 - thumb_func_end sub_081C7D10 - - thumb_func_start LoopedTask_sub_81C85A0 -LoopedTask_sub_81C85A0: @ 0x081C7D48 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #0x11 - bl GetSubstructPtr - adds r4, r0, #0 - cmp r5, #0 - beq _081C7D60 - cmp r5, #1 - beq _081C7D6C - movs r0, #4 - b _081C7DD2 -_081C7D60: - bl sub_081C7B88 - cmp r0, #0 - bne _081C7DD0 - movs r0, #1 - b _081C7DD2 -_081C7D6C: - movs r6, #0 - ldrb r0, [r4] - bl GetBgY - adds r5, r0, #0 - ldrb r0, [r4] - movs r1, #0x80 - lsls r1, r1, #4 - ldr r2, [r4, #0x30] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - bl ChangeBgY - adds r1, r0, #0 - ldr r0, [r4, #0x30] - cmp r0, #2 - bne _081C7DA0 - ldr r2, [r4, #0x24] - cmp r5, r2 - bgt _081C7D9A - ldr r0, [r4, #0x20] - cmp r5, r0 - bgt _081C7DB2 -_081C7D9A: - cmp r1, r2 - bgt _081C7DB2 - b _081C7DB6 -_081C7DA0: - ldr r2, [r4, #0x24] - cmp r5, r2 - blt _081C7DAC - ldr r0, [r4, #0x20] - cmp r5, r0 - blt _081C7DB2 -_081C7DAC: - cmp r1, r2 - blt _081C7DB2 - movs r6, #1 -_081C7DB2: - cmp r6, #0 - beq _081C7DD0 -_081C7DB6: - ldr r1, [r4, #0x2c] - ldrh r0, [r4, #0xa] - adds r0, r0, r1 - movs r1, #0xf - ands r0, r1 - strh r0, [r4, #0xa] - ldrb r0, [r4] - adds r1, r2, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #4 - b _081C7DD2 -_081C7DD0: - movs r0, #2 -_081C7DD2: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end LoopedTask_sub_81C85A0 - - thumb_func_start MatchCall_GetMessage_Type2 -MatchCall_GetMessage_Type2: @ 0x081C7DD8 - push {lr} - movs r0, #0x11 - bl GetSubstructPtr - ldr r0, [r0, #0x28] - bl IsLoopedTaskActive - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MatchCall_GetMessage_Type2 - - thumb_func_start GetMatchCallWindowStruct -GetMatchCallWindowStruct: @ 0x081C7DEC - push {lr} - movs r0, #0x11 - bl GetSubstructPtr - ldr r1, _081C7DFC - adds r0, r0, r1 - pop {r1} - bx r1 - .align 2, 0 -_081C7DFC: .4byte 0x00000888 - thumb_func_end GetMatchCallWindowStruct - - thumb_func_start MatchCall_MoveCursorUp -MatchCall_MoveCursorUp: @ 0x081C7E00 - push {lr} - bl GetMatchCallWindowStruct - adds r1, r0, #0 - ldrh r0, [r1, #6] - cmp r0, #0 - beq _081C7E16 - subs r0, #1 - strh r0, [r1, #6] - movs r0, #1 - b _081C7E2E -_081C7E16: - bl ShouldShowUpArrow - cmp r0, #0 - bne _081C7E22 - movs r0, #0 - b _081C7E2E -_081C7E22: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #1 - bl MatchCall_MoveWindow - movs r0, #2 -_081C7E2E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MatchCall_MoveCursorUp - - thumb_func_start MatchCall_MoveCursorDown -MatchCall_MoveCursorDown: @ 0x081C7E34 - push {lr} - bl GetMatchCallWindowStruct - adds r2, r0, #0 - ldrh r1, [r2] - ldrh r3, [r2, #6] - adds r1, r1, r3 - ldrh r0, [r2, #2] - subs r0, #1 - cmp r1, r0 - bge _081C7E62 - ldrh r0, [r2, #8] - subs r0, #1 - cmp r3, r0 - bge _081C7E5A - adds r0, r3, #1 - strh r0, [r2, #6] - movs r0, #1 - b _081C7E70 -_081C7E5A: - bl ShouldShowDownArrow - cmp r0, #0 - bne _081C7E66 -_081C7E62: - movs r0, #0 - b _081C7E70 -_081C7E66: - movs r0, #1 - movs r1, #1 - bl MatchCall_MoveWindow - movs r0, #2 -_081C7E70: - pop {r1} - bx r1 - thumb_func_end MatchCall_MoveCursorDown - - thumb_func_start MatchCall_PageUp -MatchCall_PageUp: @ 0x081C7E74 - push {r4, lr} - bl GetMatchCallWindowStruct - adds r4, r0, #0 - bl ShouldShowUpArrow - adds r1, r0, #0 - cmp r1, #0 - beq _081C7EA0 - ldrh r0, [r4] - ldrh r1, [r4, #8] - cmp r0, r1 - blo _081C7E92 - ldrh r0, [r4, #8] - b _081C7E94 -_081C7E92: - ldrh r0, [r4] -_081C7E94: - rsbs r0, r0, #0 - movs r1, #1 - bl MatchCall_MoveWindow - movs r0, #2 - b _081C7EAE -_081C7EA0: - ldrh r0, [r4, #6] - cmp r0, #0 - bne _081C7EAA - movs r0, #0 - b _081C7EAE -_081C7EAA: - strh r1, [r4, #6] - movs r0, #1 -_081C7EAE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end MatchCall_PageUp - - thumb_func_start MatchCall_PageDown -MatchCall_PageDown: @ 0x081C7EB4 - push {r4, lr} - bl GetMatchCallWindowStruct - adds r4, r0, #0 - bl ShouldShowDownArrow - cmp r0, #0 - beq _081C7EDE - ldrh r0, [r4] - ldrh r3, [r4, #8] - adds r2, r0, r3 - ldrh r1, [r4, #4] - subs r0, r1, r0 - cmp r2, r1 - bgt _081C7ED4 - adds r0, r3, #0 -_081C7ED4: - movs r1, #1 - bl MatchCall_MoveWindow - movs r0, #2 - b _081C7EFE -_081C7EDE: - ldrh r0, [r4, #2] - ldrh r1, [r4, #8] - cmp r0, r1 - blo _081C7EEC - ldrh r1, [r4, #6] - ldrh r0, [r4, #8] - b _081C7EF0 -_081C7EEC: - ldrh r1, [r4, #6] - ldrh r0, [r4, #2] -_081C7EF0: - subs r0, #1 - cmp r1, r0 - bge _081C7EFC - strh r0, [r4, #6] - movs r0, #1 - b _081C7EFE -_081C7EFC: - movs r0, #0 -_081C7EFE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end MatchCall_PageDown - - thumb_func_start GetSelectedMatchCall -GetSelectedMatchCall: @ 0x081C7F04 - push {lr} - bl GetMatchCallWindowStruct - adds r1, r0, #0 - ldrh r0, [r1] - ldrh r1, [r1, #6] - adds r0, r0, r1 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetSelectedMatchCall - - thumb_func_start GetMatchCallListTopIndex -GetMatchCallListTopIndex: @ 0x081C7F18 - push {lr} - bl GetMatchCallWindowStruct - ldrh r0, [r0] - pop {r1} - bx r1 - thumb_func_end GetMatchCallListTopIndex - - thumb_func_start sub_081C7F24 -sub_081C7F24: @ 0x081C7F24 - push {r4, lr} - movs r0, #0x11 - bl GetSubstructPtr - adds r4, r0, #0 - ldr r0, _081C7F4C - adds r1, r4, r0 - movs r0, #0 - str r0, [r1] - ldr r0, _081C7F50 - movs r1, #6 - bl CreateLoopedTask - movs r1, #0x8a - lsls r1, r1, #4 - adds r4, r4, r1 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C7F4C: .4byte 0x0000089C -_081C7F50: .4byte LoopedTask_sub_81C8870 - thumb_func_end sub_081C7F24 - - thumb_func_start sub_081C7F54 -sub_081C7F54: @ 0x081C7F54 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - movs r0, #0x11 - bl GetSubstructPtr - adds r5, r0, #0 - ldr r0, _081C7F8C - adds r1, r5, r0 - ldrh r0, [r1] - adds r0, r0, r4 - movs r2, #0 - strh r0, [r1] - ldr r1, _081C7F90 - adds r0, r5, r1 - str r2, [r0] - ldr r0, _081C7F94 - movs r1, #6 - bl CreateLoopedTask - movs r1, #0x8a - lsls r1, r1, #4 - adds r5, r5, r1 - str r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C7F8C: .4byte 0x00000888 -_081C7F90: .4byte 0x0000089C -_081C7F94: .4byte LoopedTask_sub_81C8958 - thumb_func_end sub_081C7F54 - - thumb_func_start sub_081C7F98 -sub_081C7F98: @ 0x081C7F98 - push {r4, lr} - movs r0, #0x11 - bl GetSubstructPtr - adds r4, r0, #0 - ldr r0, _081C7FC0 - adds r1, r4, r0 - movs r0, #0 - str r0, [r1] - ldr r0, _081C7FC4 - movs r1, #6 - bl CreateLoopedTask - movs r1, #0x8a - lsls r1, r1, #4 - adds r4, r4, r1 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C7FC0: .4byte 0x0000089C -_081C7FC4: .4byte LoopedTask_sub_81C8A28 - thumb_func_end sub_081C7F98 - - thumb_func_start sub_081C7FC8 -sub_081C7FC8: @ 0x081C7FC8 - push {lr} - movs r0, #0x11 - bl GetSubstructPtr - movs r1, #0x8a - lsls r1, r1, #4 - adds r0, r0, r1 - ldr r0, [r0] - bl IsLoopedTaskActive - pop {r1} - bx r1 - thumb_func_end sub_081C7FC8 - - thumb_func_start sub_081C7FE0 -sub_081C7FE0: @ 0x081C7FE0 - push {r4, lr} - movs r0, #0x11 - bl GetSubstructPtr - adds r4, r0, #0 - ldr r0, _081C8014 - adds r2, r4, r0 - ldrh r0, [r4, #8] - ldrh r1, [r2] - ldrh r3, [r2, #6] - adds r1, r1, r3 - ldrh r2, [r4, #0xa] - adds r2, r2, r3 - movs r3, #0xf - ands r2, r3 - ldr r3, [r4, #0x38] - bl _call_via_r3 - ldrb r0, [r4, #8] - movs r1, #1 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C8014: .4byte 0x00000888 - thumb_func_end sub_081C7FE0 - - thumb_func_start LoopedTask_sub_81C8870 -LoopedTask_sub_81C8870: @ 0x081C8018 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x11 - bl GetSubstructPtr - adds r4, r0, #0 - cmp r5, #4 - bhi _081C80F4 - lsls r0, r5, #2 - ldr r1, _081C8034 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081C8034: .4byte _081C8038 -_081C8038: @ jump table - .4byte _081C804C @ case 0 - .4byte _081C8054 @ case 1 - .4byte _081C8080 @ case 2 - .4byte _081C80C0 @ case 3 - .4byte _081C80E0 @ case 4 -_081C804C: - adds r0, r4, #0 - movs r1, #1 - bl ToggleMatchCallArrows -_081C8054: - ldr r0, _081C8078 - adds r5, r4, r0 - ldr r1, _081C807C - adds r0, r4, r1 - ldr r1, [r5] - ldrh r0, [r0] - cmp r1, r0 - beq _081C806C - adds r0, r4, #0 - movs r2, #1 - bl sub_081C8318 -_081C806C: - ldr r0, [r5] - adds r0, #1 - str r0, [r5] -_081C8072: - movs r0, #0 - b _081C80F6 - .align 2, 0 -_081C8078: .4byte 0x0000089C -_081C807C: .4byte 0x0000088E -_081C8080: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081C80EA - ldr r2, _081C80A0 - adds r0, r4, r2 - subs r2, #0xc - adds r1, r4, r2 - ldr r3, [r0] - ldrh r1, [r1] - cmp r3, r1 - beq _081C80A4 - movs r0, #6 - b _081C80F6 - .align 2, 0 -_081C80A0: .4byte 0x0000089C -_081C80A4: - ldr r0, _081C80BC - adds r1, r4, r0 - ldrh r0, [r1] - cmp r0, #0 - beq _081C8072 - adds r2, r0, #0 - adds r0, r4, #0 - adds r1, r3, #0 - bl sub_081C8318 - b _081C8072 - .align 2, 0 -_081C80BC: .4byte 0x0000088E -_081C80C0: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081C80EA - ldr r2, _081C80DC - adds r1, r4, r2 - ldrh r0, [r1] - cmp r0, #0 - beq _081C80F4 - movs r1, #0 - bl MatchCall_MoveWindow - b _081C8072 - .align 2, 0 -_081C80DC: .4byte 0x0000088E -_081C80E0: - bl MatchCall_GetMessage_Type2 - adds r1, r0, #0 - cmp r1, #0 - beq _081C80EE -_081C80EA: - movs r0, #2 - b _081C80F6 -_081C80EE: - ldr r2, _081C80FC - adds r0, r4, r2 - strh r1, [r0] -_081C80F4: - movs r0, #4 -_081C80F6: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081C80FC: .4byte 0x0000088E - thumb_func_end LoopedTask_sub_81C8870 - - thumb_func_start LoopedTask_sub_81C8958 -LoopedTask_sub_81C8958: @ 0x081C8100 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x11 - bl GetSubstructPtr - adds r4, r0, #0 - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081C811A - movs r0, #2 - b _081C81CA -_081C811A: - cmp r5, #7 - bhi _081C81C4 - lsls r0, r5, #2 - ldr r1, _081C8128 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081C8128: .4byte _081C812C -_081C812C: @ jump table - .4byte _081C814C @ case 0 - .4byte _081C815C @ case 1 - .4byte _081C8166 @ case 2 - .4byte _081C8178 @ case 3 - .4byte _081C8182 @ case 4 - .4byte _081C8194 @ case 5 - .4byte _081C819E @ case 6 - .4byte _081C81B0 @ case 7 -_081C814C: - ldr r1, _081C8158 - adds r0, r4, r1 - adds r1, r4, #0 - bl sub_081C845C - b _081C81C8 - .align 2, 0 -_081C8158: .4byte 0x00000888 -_081C815C: - adds r0, r4, #0 - movs r1, #0 - bl PrintMatchCallFieldNames - b _081C81C8 -_081C8166: - ldr r1, _081C8174 - adds r0, r4, r1 - adds r1, r4, #0 - movs r2, #0 - bl sub_081C85FC - b _081C81C8 - .align 2, 0 -_081C8174: .4byte 0x00000888 -_081C8178: - adds r0, r4, #0 - movs r1, #1 - bl PrintMatchCallFieldNames - b _081C81C8 -_081C8182: - ldr r1, _081C8190 - adds r0, r4, r1 - adds r1, r4, #0 - movs r2, #1 - bl sub_081C85FC - b _081C81C8 - .align 2, 0 -_081C8190: .4byte 0x00000888 -_081C8194: - adds r0, r4, #0 - movs r1, #2 - bl PrintMatchCallFieldNames - b _081C81C8 -_081C819E: - ldr r1, _081C81AC - adds r0, r4, r1 - adds r1, r4, #0 - movs r2, #2 - bl sub_081C85FC - b _081C81C8 - .align 2, 0 -_081C81AC: .4byte 0x00000888 -_081C81B0: - ldr r1, _081C81C0 - adds r0, r4, r1 - adds r1, r4, #0 - movs r2, #3 - bl sub_081C85FC - b _081C81C8 - .align 2, 0 -_081C81C0: .4byte 0x00000888 -_081C81C4: - movs r0, #4 - b _081C81CA -_081C81C8: - movs r0, #0 -_081C81CA: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end LoopedTask_sub_81C8958 - - thumb_func_start LoopedTask_sub_81C8A28 -LoopedTask_sub_81C8A28: @ 0x081C81D0 - push {r4, r5, r6, r7, lr} - sub sp, #8 - adds r5, r0, #0 - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081C824E - movs r0, #0x11 - bl GetSubstructPtr - adds r4, r0, #0 - ldr r0, _081C8200 - adds r6, r4, r0 - adds r2, r4, #0 - cmp r5, #6 - bls _081C81F4 - b _081C830C -_081C81F4: - lsls r0, r5, #2 - ldr r1, _081C8204 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081C8200: .4byte 0x00000888 -_081C8204: .4byte _081C8208 -_081C8208: @ jump table - .4byte _081C8224 @ case 0 - .4byte _081C8230 @ case 1 - .4byte _081C8290 @ case 2 - .4byte _081C82A4 @ case 3 - .4byte _081C82BC @ case 4 - .4byte _081C82DC @ case 5 - .4byte _081C8304 @ case 6 -_081C8224: - adds r0, r6, #0 - adds r1, r2, #0 - bl sub_081C84F4 - movs r0, #0 - b _081C830E -_081C8230: - ldr r1, _081C8254 - adds r7, r4, r1 - ldr r0, [r7] - adds r1, r0, #1 - str r1, [r7] - movs r3, #0x89 - lsls r3, r3, #4 - adds r0, r4, r3 - ldrh r0, [r0] - cmp r1, r0 - bge _081C8258 - adds r0, r2, #0 - movs r2, #1 - bl sub_081C8318 -_081C824E: - movs r0, #2 - b _081C830E - .align 2, 0 -_081C8254: .4byte 0x0000089C -_081C8258: - movs r0, #0 - str r0, [r7] - ldrh r0, [r6, #2] - ldrh r1, [r6, #8] - cmp r0, r1 - bhi _081C826E - ldrh r0, [r6] - cmp r0, #0 - beq _081C82FA - adds r4, r0, #0 - b _081C827C -_081C826E: - ldrh r1, [r6] - ldrh r0, [r6, #8] - adds r4, r1, r0 - ldrh r1, [r6, #2] - cmp r4, r1 - ble _081C82FA - subs r4, r4, r1 -_081C827C: - rsbs r5, r4, #0 - adds r0, r2, #0 - adds r1, r5, #0 - adds r2, r4, #0 - bl sub_081C8318 - strh r4, [r6, #6] - str r5, [r7] - movs r0, #0 - b _081C830E -_081C8290: - ldr r2, _081C82A0 - adds r0, r4, r2 - ldr r0, [r0] - movs r1, #0 - bl MatchCall_MoveWindow - movs r0, #0 - b _081C830E - .align 2, 0 -_081C82A0: .4byte 0x0000089C -_081C82A4: - bl MatchCall_GetMessage_Type2 - adds r1, r0, #0 - cmp r1, #0 - bne _081C824E - ldr r3, _081C82B8 - adds r0, r4, r3 - str r1, [r0] -_081C82B4: - movs r0, #1 - b _081C830E - .align 2, 0 -_081C82B8: .4byte 0x0000089C -_081C82BC: - ldr r0, [r6, #0x10] - ldrh r1, [r6] - ldr r3, _081C82D8 - adds r2, r4, r3 - ldr r2, [r2] - adds r1, r1, r2 - ldr r3, [r6, #0xc] - str r2, [sp] - str r4, [sp, #4] - movs r2, #1 - bl sub_081C7B54 - movs r0, #0 - b _081C830E - .align 2, 0 -_081C82D8: .4byte 0x0000089C -_081C82DC: - bl sub_081C7B88 - cmp r0, #0 - bne _081C824E - ldr r0, _081C8300 - adds r1, r4, r0 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - ldrh r1, [r6, #2] - cmp r0, r1 - bge _081C82B4 - ldrh r6, [r6, #8] - cmp r0, r6 - bge _081C82B4 -_081C82FA: - movs r0, #9 - b _081C830E - .align 2, 0 -_081C8300: .4byte 0x0000089C -_081C8304: - adds r0, r2, #0 - movs r1, #0 - bl ToggleMatchCallArrows -_081C830C: - movs r0, #4 -_081C830E: - add sp, #8 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end LoopedTask_sub_81C8A28 - - thumb_func_start sub_081C8318 -sub_081C8318: @ 0x081C8318 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - mov sb, r0 - adds r7, r1, #0 - adds r6, r2, #0 - ldrb r0, [r0, #8] - movs r1, #7 - bl GetWindowAttribute - mov sl, r0 - mov r1, sb - ldrb r0, [r1, #4] - lsls r3, r0, #6 - ldrh r0, [r1, #0xa] - adds r7, r0, r7 - movs r0, #0xf - ands r7, r0 - adds r0, r7, r6 - cmp r0, #0x10 - bgt _081C837C - ldr r0, _081C8374 - str r0, [sp] - adds r1, r7, #0 - muls r1, r3, r1 - add r1, sl - adds r2, r6, #0 - muls r2, r3, r2 - lsrs r2, r2, #2 - ldr r0, _081C8378 - ands r2, r0 - movs r0, #0x80 - lsls r0, r0, #0x11 - orrs r2, r0 - mov r0, sp - bl CpuFastSet - mov r1, sb - ldrb r0, [r1, #8] - movs r1, #2 - bl CopyWindowToVram - b _081C83C6 - .align 2, 0 -_081C8374: .4byte 0x11111111 -_081C8378: .4byte 0x001FFFFF -_081C837C: - movs r2, #0x10 - subs r2, r2, r7 - subs r0, r6, r2 - mov r8, r0 - ldr r1, _081C8404 - str r1, [sp, #4] - add r0, sp, #4 - adds r1, r7, #0 - muls r1, r3, r1 - add r1, sl - muls r2, r3, r2 - lsrs r2, r2, #2 - ldr r5, _081C8408 - ands r2, r5 - movs r4, #0x80 - lsls r4, r4, #0x11 - orrs r2, r4 - str r3, [sp, #0xc] - bl CpuFastSet - ldr r0, _081C8404 - str r0, [sp, #8] - add r0, sp, #8 - ldr r3, [sp, #0xc] - mov r2, r8 - muls r2, r3, r2 - lsrs r2, r2, #2 - ands r2, r5 - orrs r2, r4 - mov r1, sl - bl CpuFastSet - mov r1, sb - ldrb r0, [r1, #8] - movs r1, #2 - bl CopyWindowToVram -_081C83C6: - subs r6, #1 - movs r0, #1 - rsbs r0, r0, #0 - cmp r6, r0 - beq _081C83E8 - movs r5, #0xf - adds r4, r0, #0 -_081C83D4: - mov r1, sb - ldrh r0, [r1, #8] - adds r1, r7, #0 - bl sub_081CB4B8 - adds r7, #1 - ands r7, r5 - subs r6, #1 - cmp r6, r4 - bne _081C83D4 -_081C83E8: - mov r1, sb - ldrb r0, [r1, #8] - movs r1, #1 - bl CopyWindowToVram - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C8404: .4byte 0x11111111 -_081C8408: .4byte 0x001FFFFF - thumb_func_end sub_081C8318 - - thumb_func_start sub_081C840C -sub_081C840C: @ 0x081C840C - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - ldrb r0, [r5, #8] - movs r1, #0 - bl GetWindowAttribute - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBgTilemapBuffer - adds r2, r0, #0 - ldrh r0, [r5, #0xa] - lsls r0, r0, #6 - ldrb r1, [r5, #2] - adds r0, r0, r1 - lsls r0, r0, #1 - subs r0, #2 - adds r2, r2, r0 - cmp r4, #0 - beq _081C8440 - ldrb r0, [r5, #1] - lsls r0, r0, #0xc - ldrh r1, [r5, #6] - adds r1, #1 - b _081C8446 -_081C8440: - ldrb r0, [r5, #1] - lsls r0, r0, #0xc - ldrh r1, [r5, #6] -_081C8446: - orrs r0, r1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - strh r1, [r2] - adds r0, r2, #0 - adds r0, #0x40 - strh r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C840C - - thumb_func_start sub_081C845C -sub_081C845C: @ 0x081C845C - push {r4, r5, r6, lr} - sub sp, #0x10 - adds r5, r0, #0 - adds r4, r1, #0 - ldr r1, _081C84F0 - add r0, sp, #0xc - movs r2, #3 - bl memcpy - ldrh r1, [r5] - ldr r0, [r5, #0xc] - muls r1, r0, r1 - ldr r0, [r5, #0x10] - adds r0, r0, r1 - adds r6, r4, #0 - adds r6, #0x48 - ldr r2, [r4, #0x34] - adds r1, r6, #0 - bl _call_via_r2 - thumb_func_end sub_081C845C - - thumb_func_start sub_081C8484 -sub_081C8484: @ 0x081C8484 - ldrh r0, [r4, #8] - ldrh r1, [r5] - ldrh r2, [r4, #0xa] - ldr r3, [r4, #0x38] - bl _call_via_r3 - ldrb r0, [r4, #8] - ldrh r3, [r4, #0xa] - lsls r3, r3, #0x14 - lsrs r3, r3, #0x10 - ldrb r1, [r4, #4] - lsls r1, r1, #3 - str r1, [sp] - movs r1, #0x10 - str r1, [sp, #4] - movs r1, #0x44 - movs r2, #0 - bl sub_08003A34 - ldrb r0, [r4, #8] - ldrh r3, [r4, #0xa] - lsls r3, r3, #4 - adds r3, #2 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - add r1, sp, #0xc - str r1, [sp] - movs r1, #1 - rsbs r1, r1, #0 - str r1, [sp, #4] - str r6, [sp, #8] - movs r1, #1 - movs r2, #0 - bl AddTextPrinterParameterized3 - adds r0, r4, #0 - movs r1, #1 - bl sub_081C840C - ldrh r0, [r4, #8] - ldrh r3, [r4, #0xa] - lsls r3, r3, #1 - ldrb r1, [r4, #4] - str r1, [sp] - movs r1, #2 - str r1, [sp, #4] - movs r1, #3 - movs r2, #0 - bl CopyWindowRectToVram - add sp, #0x10 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081C84F0: .4byte gUnknown_85F15A8 - thumb_func_end sub_081C8484 - - thumb_func_start sub_081C84F4 -sub_081C84F4: @ 0x081C84F4 - push {r4, r5, lr} - sub sp, #0xc - adds r4, r1, #0 - ldrh r2, [r0] - ldr r1, [r0, #0xc] - muls r1, r2, r1 - ldr r0, [r0, #0x10] - adds r0, r0, r1 - adds r5, r4, #0 - adds r5, #0x48 - ldr r2, [r4, #0x34] - adds r1, r5, #0 - bl _call_via_r2 - thumb_func_end sub_081C84F4 - - thumb_func_start sub_081C8510 -sub_081C8510: @ 0x081C8510 - ldrb r0, [r4, #8] - ldrh r3, [r4, #0xa] - lsls r3, r3, #0x14 - lsrs r3, r3, #0x10 - ldrb r1, [r4, #4] - lsls r1, r1, #3 - str r1, [sp] - movs r1, #0x10 - str r1, [sp, #4] - movs r1, #0x11 - movs r2, #0 - bl sub_08003A34 - ldrb r0, [r4, #8] - ldrh r1, [r4, #0xa] - lsls r1, r1, #4 - adds r1, #2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - adds r2, r5, #0 - movs r3, #0 - bl AddTextPrinterParameterized - adds r0, r4, #0 - movs r1, #0 - bl sub_081C840C - ldrb r0, [r4, #8] - movs r1, #3 - bl CopyWindowToVram - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C8510 - - thumb_func_start PrintMatchCallFieldNames -PrintMatchCallFieldNames: @ 0x081C8564 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #0x1c - adds r6, r0, #0 - mov r8, r1 - add r1, sp, #0xc - ldr r0, _081C85F4 - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - add r0, sp, #0x18 - mov sb, r0 - ldr r1, _081C85F8 - movs r2, #3 - bl memcpy - ldrh r4, [r6, #0xa] - mov r1, r8 - lsls r0, r1, #1 - adds r0, #1 - adds r4, r4, r0 - movs r0, #0xf - ands r4, r0 - ldrb r0, [r6, #8] - lsls r5, r4, #4 - adds r3, r5, #0 - ldrb r1, [r6, #4] - str r1, [sp] - movs r1, #0x10 - str r1, [sp, #4] - movs r1, #0x11 - movs r2, #0 - bl sub_08003A34 - ldrb r0, [r6, #8] - movs r1, #2 - orrs r5, r1 - mov r2, sb - str r2, [sp] - subs r1, #3 - str r1, [sp, #4] - mov r3, r8 - lsls r3, r3, #2 - mov r8, r3 - mov r1, sp - add r1, r8 - adds r1, #0xc - ldr r1, [r1] - str r1, [sp, #8] - movs r1, #1 - movs r2, #0 - adds r3, r5, #0 - bl AddTextPrinterParameterized3 - ldrh r0, [r6, #8] - lsls r4, r4, #1 - ldrb r1, [r6, #4] - str r1, [sp] - movs r1, #2 - str r1, [sp, #4] - movs r2, #0 - adds r3, r4, #0 - bl CopyWindowRectToVram - add sp, #0x1c - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081C85F4: .4byte gUnknown_85F15AC -_081C85F8: .4byte gUnknown_85F15B8 - thumb_func_end PrintMatchCallFieldNames - - thumb_func_start sub_081C85FC -sub_081C85FC: @ 0x081C85FC - push {r4, r5, r6, r7, lr} - sub sp, #0xc - adds r5, r1, #0 - adds r1, r2, #0 - ldrh r3, [r5, #0xa] - ldr r2, _081C8630 - adds r2, r1, r2 - ldrb r2, [r2] - adds r7, r3, r2 - movs r2, #0xf - ands r7, r2 - ldrh r0, [r0] - bl GroundEffect_DeepSandTracks - adds r6, r0, #0 - cmp r6, #0 - beq _081C8634 - adds r4, r5, #0 - adds r4, #0x48 - ldrb r3, [r5, #4] - adds r0, r4, #0 - adds r1, r6, #0 - movs r2, #0 - bl StringCopyPadded - b _081C8642 - .align 2, 0 -_081C8630: .4byte gUnknown_85F15BB -_081C8634: - adds r4, r5, #0 - adds r4, #0x48 - ldrb r2, [r5, #4] - adds r0, r4, #0 - movs r1, #0 - bl StringFill -_081C8642: - cmp r6, #0 - beq _081C8674 - ldrb r0, [r5, #8] - lsls r1, r7, #4 - movs r2, #2 - orrs r1, r2 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - adds r2, r4, #0 - movs r3, #0 - bl AddTextPrinterParameterized - ldrh r0, [r5, #8] - lsls r3, r7, #1 - ldrb r1, [r5, #4] - str r1, [sp] - movs r1, #2 - str r1, [sp, #4] - movs r2, #0 - bl CopyWindowRectToVram -_081C8674: - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_081C85FC - - thumb_func_start sub_081C867C -sub_081C867C: @ 0x081C867C - push {r4, r5, lr} - movs r5, #0 - ldr r4, _081C869C -_081C8682: - adds r0, r4, #0 - bl LoadCompressedSpriteSheet - adds r4, #8 - adds r5, #1 - cmp r5, #0 - beq _081C8682 - ldr r0, _081C86A0 - bl Pokenav_AllocAndLoadPalettes - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C869C: .4byte gUnknown_85F15C0 -_081C86A0: .4byte gUnknown_85F15C8 - thumb_func_end sub_081C867C - - thumb_func_start sub_081C86A4 -sub_081C86A4: @ 0x081C86A4 - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r0, _081C8774 - ldrb r1, [r5, #2] - lsls r1, r1, #0x13 - ldr r2, _081C8778 - adds r1, r1, r2 - asrs r1, r1, #0x10 - ldrb r2, [r5, #3] - adds r2, #1 - lsls r2, r2, #3 - movs r3, #7 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r0, r3, #4 - adds r0, r0, r3 - lsls r0, r0, #2 - ldr r3, _081C877C - mov r8, r3 - add r0, r8 - str r0, [r5, #0x3c] - ldrb r6, [r5, #2] - lsls r6, r6, #3 - ldrb r0, [r5, #4] - subs r0, #1 - lsls r0, r0, #2 - ldr r1, _081C8780 - mov sl, r1 - adds r6, r6, r0 - ldrb r2, [r5, #3] - lsls r2, r2, #3 - ldrh r0, [r4, #8] - lsls r0, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - mov r0, sl - adds r1, r6, #0 - movs r3, #7 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r2, r3, #4 - adds r2, r2, r3 - lsls r2, r2, #2 - add r2, r8 - str r2, [r5, #0x44] - ldrh r3, [r2, #4] - lsls r1, r3, #0x16 - lsrs r1, r1, #0x16 - adds r1, #2 - ldr r0, _081C8784 - mov sb, r0 - mov r0, sb - ands r1, r0 - ldr r4, _081C8788 - adds r0, r4, #0 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, #4] - ldr r1, [r5, #0x44] - ldr r0, _081C878C - str r0, [r1, #0x1c] - ldrb r2, [r5, #3] - lsls r2, r2, #3 - mov r0, sl - adds r1, r6, #0 - movs r3, #7 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r1, r3, #4 - adds r1, r1, r3 - lsls r1, r1, #2 - add r1, r8 - str r1, [r5, #0x40] - ldrh r2, [r1, #4] - lsls r0, r2, #0x16 - lsrs r0, r0, #0x16 - adds r0, #4 - mov r3, sb - ands r0, r3 - ands r4, r2 - orrs r4, r0 - strh r4, [r1, #4] - ldr r1, [r5, #0x40] - ldr r0, _081C8790 - str r0, [r1, #0x1c] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081C8774: .4byte gUnknown_85F15E0 -_081C8778: .4byte 0xFFFC0000 -_081C877C: .4byte gUnknown_20205AC -_081C8780: .4byte gUnknown_85F1600 -_081C8784: .4byte 0x000003FF -_081C8788: .4byte 0xFFFFFC00 -_081C878C: .4byte SpriteCB_MatchCallDownArrow -_081C8790: .4byte SpriteCB_MatchCallUpArrow - thumb_func_end sub_081C86A4 - - thumb_func_start sub_081C8794 -sub_081C8794: @ 0x081C8794 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x3c] - bl DestroySprite - ldr r0, [r4, #0x40] - bl DestroySprite - ldr r0, [r4, #0x44] - bl DestroySprite - movs r0, #0xa - bl FreeSpriteTilesByTag - movs r0, #0x14 - bl FreeSpritePaletteByTag - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081C8794 - - thumb_func_start ToggleMatchCallArrows -ToggleMatchCallArrows: @ 0x081C87BC - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - cmp r4, #0 - beq _081C87DC - ldr r2, [r5, #0x3c] - ldr r1, _081C87D8 - str r1, [r2, #0x1c] - ldr r0, [r5, #0x40] - str r1, [r0, #0x1c] - ldr r0, [r5, #0x44] - str r1, [r0, #0x1c] - b _081C87EE - .align 2, 0 -_081C87D8: .4byte sub_08007140 -_081C87DC: - ldr r2, [r5, #0x3c] - ldr r0, _081C8828 - str r0, [r2, #0x1c] - ldr r1, [r5, #0x40] - ldr r0, _081C882C - str r0, [r1, #0x1c] - ldr r1, [r5, #0x44] - ldr r0, _081C8830 - str r0, [r1, #0x1c] -_081C87EE: - adds r3, r2, #0 - adds r3, #0x3e - movs r0, #1 - ands r4, r0 - lsls r4, r4, #2 - ldrb r2, [r3] - movs r1, #5 - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - orrs r0, r4 - strb r0, [r3] - ldr r2, [r5, #0x40] - adds r2, #0x3e - ldrb r3, [r2] - adds r0, r1, #0 - ands r0, r3 - orrs r0, r4 - strb r0, [r2] - ldr r0, [r5, #0x44] - adds r0, #0x3e - ldrb r2, [r0] - ands r1, r2 - orrs r1, r4 - strb r1, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C8828: .4byte c3_0802FDF4 -_081C882C: .4byte SpriteCB_MatchCallUpArrow -_081C8830: .4byte SpriteCB_MatchCallDownArrow - thumb_func_end ToggleMatchCallArrows - - thumb_func_start c3_0802FDF4 -c3_0802FDF4: @ 0x081C8834 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x11 - bl GetSubstructPtr - ldr r1, _081C8850 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #4 - strh r0, [r4, #0x26] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C8850: .4byte 0x0000088E - thumb_func_end c3_0802FDF4 - - thumb_func_start SpriteCB_MatchCallDownArrow -SpriteCB_MatchCallDownArrow: @ 0x081C8854 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x3c - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _081C8876 - bl ShouldShowDownArrow - cmp r0, #0 - beq _081C8876 - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - b _081C8880 -_081C8876: - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 -_081C8880: - strb r0, [r2] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - ble _081C88A0 - movs r0, #0 - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x30] - adds r0, #1 - movs r1, #7 - ands r0, r1 - strh r0, [r4, #0x30] - strh r0, [r4, #0x26] -_081C88A0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end SpriteCB_MatchCallDownArrow - - thumb_func_start SpriteCB_MatchCallUpArrow -SpriteCB_MatchCallUpArrow: @ 0x081C88A8 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x3c - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _081C88CA - bl ShouldShowUpArrow - cmp r0, #0 - beq _081C88CA - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - b _081C88D4 -_081C88CA: - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 -_081C88D4: - strb r0, [r2] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - ble _081C88F6 - movs r0, #0 - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x30] - adds r0, #1 - movs r1, #7 - ands r0, r1 - strh r0, [r4, #0x30] - rsbs r0, r0, #0 - strh r0, [r4, #0x26] -_081C88F6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end SpriteCB_MatchCallUpArrow - - thumb_func_start ToggleMatchCallVerticalArrows -ToggleMatchCallVerticalArrows: @ 0x081C88FC - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x11 - bl GetSubstructPtr - ldr r1, [r0, #0x40] - strh r4, [r1, #0x3c] - ldr r0, [r0, #0x44] - strh r4, [r0, #0x3c] - pop {r4} - pop {r0} - bx r0 - thumb_func_end ToggleMatchCallVerticalArrows - - thumb_func_start sub_081C8914 -sub_081C8914: @ 0x081C8914 - push {r4, r5, lr} - adds r2, r0, #0 - ldr r0, [r1] - str r0, [r2, #0x10] - ldrh r4, [r1, #6] - movs r5, #0 - strh r4, [r2] - ldrh r3, [r1, #4] - strh r3, [r2, #2] - ldrb r0, [r1, #8] - str r0, [r2, #0xc] - ldrb r1, [r1, #0xc] - strh r1, [r2, #8] - lsls r0, r3, #0x10 - lsrs r0, r0, #0x10 - cmp r1, r0 - blo _081C893E - strh r5, [r2] - strh r5, [r2, #4] - strh r4, [r2, #6] - b _081C895A -_081C893E: - subs r0, r3, r1 - strh r0, [r2, #4] - ldrh r1, [r2] - ldrh r0, [r2, #8] - adds r1, r1, r0 - ldrh r0, [r2, #2] - cmp r1, r0 - ble _081C8958 - subs r0, r1, r0 - strh r0, [r2, #6] - subs r0, r4, r0 - strh r0, [r2] - b _081C895A -_081C8958: - strh r5, [r2, #6] -_081C895A: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_081C8914 - - thumb_func_start sub_081C8960 -sub_081C8960: @ 0x081C8960 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - adds r7, r0, #0 - ldr r4, [r1] - lsls r4, r4, #0x1e - lsrs r0, r4, #0x1e - movs r1, #0 - mov r8, r1 - strb r0, [r7] - strh r3, [r7, #6] - ldr r0, [r2, #0x10] - str r0, [r7, #0x34] - ldr r0, [r2, #0x14] - str r0, [r7, #0x38] - ldrb r5, [r2, #0xd] - strb r5, [r7, #1] - ldrb r1, [r2, #9] - strb r1, [r7, #2] - ldrb r0, [r2, #0xb] - strb r0, [r7, #3] - ldrb r2, [r2, #0xa] - strb r2, [r7, #4] - lsrs r4, r4, #0x1e - ldr r6, _081C89F0 - ldr r0, [sp] - ands r0, r6 - orrs r0, r4 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x10 - ldr r4, _081C89F4 - ands r0, r4 - orrs r0, r1 - ldr r1, _081C89F8 - ands r0, r1 - lsls r2, r2, #0x18 - ldr r1, _081C89FC - ands r0, r1 - orrs r0, r2 - str r0, [sp] - ldr r0, [sp, #4] - ands r0, r6 - movs r1, #0x20 - orrs r0, r1 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x10 - ands r0, r4 - orrs r0, r5 - adds r3, #2 - lsls r3, r3, #0x10 - ldr r1, _081C8A00 - ands r0, r1 - orrs r0, r3 - str r0, [sp, #4] - mov r0, sp - bl AddWindow - strh r0, [r7, #8] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xff - beq _081C8A04 - mov r0, r8 - strh r0, [r7, #0xa] - mov r1, r8 - str r1, [r7, #0x3c] - str r1, [r7, #0x40] - str r1, [r7, #0x44] - movs r0, #1 - b _081C8A06 - .align 2, 0 -_081C89F0: .4byte 0xFFFFFF00 -_081C89F4: .4byte 0xFFFF00FF -_081C89F8: .4byte 0xFF00FFFF -_081C89FC: .4byte 0x00FFFFFF -_081C8A00: .4byte 0x0000FFFF -_081C8A04: - movs r0, #0 -_081C8A06: - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081C8960 - - thumb_func_start GetPokenavMainMenuType -GetPokenavMainMenuType: @ 0x081C8A14 - push {r4, lr} - movs r0, #0x98 - lsls r0, r0, #1 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r4, r1, #0x1f - ldr r0, _081C8A40 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081C8A36 - movs r4, #2 -_081C8A36: - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081C8A40: .4byte 0x0000089B - thumb_func_end GetPokenavMainMenuType - - thumb_func_start sub_081C8A44 -sub_081C8A44: @ 0x081C8A44 - push {r4, lr} - movs r0, #1 - movs r1, #0x10 - bl AllocSubstruct - adds r4, r0, #0 - cmp r4, #0 - beq _081C8A70 - bl GetPokenavMainMenuType - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - strh r0, [r4] - strh r1, [r4, #2] - strh r1, [r4, #4] - strh r1, [r4, #6] - adds r0, r4, #0 - bl sub_081C8B48 - movs r0, #1 - b _081C8A72 -_081C8A70: - movs r0, #0 -_081C8A72: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081C8A44 - - thumb_func_start sub_081C8A78 -sub_081C8A78: @ 0x081C8A78 - push {r4, lr} - movs r0, #1 - movs r1, #0x10 - bl AllocSubstruct - adds r4, r0, #0 - cmp r4, #0 - beq _081C8AA6 - bl GetPokenavMainMenuType - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - strh r0, [r4] - movs r0, #2 - strh r0, [r4, #2] - strh r0, [r4, #4] - strh r1, [r4, #6] - adds r0, r4, #0 - bl sub_081C8B48 - movs r0, #1 - b _081C8AA8 -_081C8AA6: - movs r0, #0 -_081C8AA8: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081C8A78 - - thumb_func_start sub_081C8AB0 -sub_081C8AB0: @ 0x081C8AB0 - push {r4, lr} - movs r0, #1 - movs r1, #0x10 - bl AllocSubstruct - adds r4, r0, #0 - cmp r4, #0 - beq _081C8ADA - bl GetPokenavMainMenuType - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - movs r0, #3 - strh r0, [r4, #2] - strh r0, [r4, #4] - adds r0, r4, #0 - bl sub_081C8B48 - movs r0, #1 - b _081C8ADC -_081C8ADA: - movs r0, #0 -_081C8ADC: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081C8AB0 - - thumb_func_start sub_081C8AE4 -sub_081C8AE4: @ 0x081C8AE4 - push {lr} - movs r0, #1 - movs r1, #0x10 - bl AllocSubstruct - adds r2, r0, #0 - cmp r2, #0 - beq _081C8B0C - movs r0, #0 - movs r1, #3 - strh r1, [r2] - strh r0, [r2, #2] - movs r1, #5 - strh r1, [r2, #4] - strh r0, [r2, #6] - adds r0, r2, #0 - bl sub_081C8B48 - movs r0, #1 - b _081C8B0E -_081C8B0C: - movs r0, #0 -_081C8B0E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081C8AE4 - - thumb_func_start sub_081C8B14 -sub_081C8B14: @ 0x081C8B14 - push {r4, r5, lr} - movs r0, #1 - movs r1, #0x10 - bl AllocSubstruct - adds r5, r0, #0 - cmp r5, #0 - beq _081C8B40 - movs r4, #0 - movs r0, #4 - strh r0, [r5] - bl sub_081C6E6C - strh r0, [r5, #2] - adds r0, #8 - strh r0, [r5, #4] - strh r4, [r5, #6] - adds r0, r5, #0 - bl sub_081C8B48 - movs r0, #1 - b _081C8B42 -_081C8B40: - movs r0, #0 -_081C8B42: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_081C8B14 - - thumb_func_start sub_081C8B48 -sub_081C8B48: @ 0x081C8B48 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4] - cmp r0, #4 - bhi _081C8B8C - lsls r0, r0, #2 - ldr r1, _081C8B5C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081C8B5C: .4byte _081C8B60 -_081C8B60: @ jump table - .4byte _081C8B74 @ case 0 - .4byte _081C8B7A @ case 1 - .4byte _081C8B7A @ case 2 - .4byte _081C8B80 @ case 3 - .4byte _081C8B88 @ case 4 -_081C8B74: - movs r0, #0 - bl SetPokenavMode -_081C8B7A: - bl sub_081C8B98 - b _081C8B8A -_081C8B80: - ldr r0, _081C8B84 - b _081C8B8A - .align 2, 0 -_081C8B84: .4byte sub_081C8DE8 -_081C8B88: - ldr r0, _081C8B94 -_081C8B8A: - str r0, [r4, #0xc] -_081C8B8C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C8B94: .4byte sub_081C8EA8 - thumb_func_end sub_081C8B48 - - thumb_func_start sub_081C8B98 -sub_081C8B98: @ 0x081C8B98 - push {lr} - bl GetPokenavMode - cmp r0, #1 - beq _081C8BB4 - cmp r0, #1 - blo _081C8BAA - cmp r0, #2 - beq _081C8BBC -_081C8BAA: - ldr r0, _081C8BB0 - b _081C8BBE - .align 2, 0 -_081C8BB0: .4byte sub_081C8BE8 -_081C8BB4: - ldr r0, _081C8BB8 - b _081C8BBE - .align 2, 0 -_081C8BB8: .4byte sub_081C8CCC -_081C8BBC: - ldr r0, _081C8BC4 -_081C8BBE: - pop {r1} - bx r1 - .align 2, 0 -_081C8BC4: .4byte sub_081C8D34 - thumb_func_end sub_081C8B98 - - thumb_func_start sub_081C8BC8 -sub_081C8BC8: @ 0x081C8BC8 - push {lr} - movs r0, #1 - bl GetSubstructPtr - ldr r1, [r0, #0xc] - bl _call_via_r1 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081C8BC8 - - thumb_func_start sub_081C8BDC -sub_081C8BDC: @ 0x081C8BDC - push {lr} - movs r0, #1 - bl FreePokenavSubstruct - pop {r0} - bx r0 - thumb_func_end sub_081C8BDC - - thumb_func_start sub_081C8BE8 -sub_081C8BE8: @ 0x081C8BE8 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_081C8FC0 - cmp r0, #0 - beq _081C8BF8 - movs r0, #1 - b _081C8CC6 -_081C8BF8: - ldr r2, _081C8C28 - ldrh r1, [r2, #0x2e] - movs r0, #1 - ands r0, r1 - adds r5, r2, #0 - cmp r0, #0 - beq _081C8CB4 - ldr r3, _081C8C2C - movs r0, #2 - ldrsh r1, [r4, r0] - ldrh r2, [r4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #1 - adds r1, r1, r0 - adds r1, r1, r3 - ldrb r0, [r1] - cmp r0, #4 - bhi _081C8CB4 - lsls r0, r0, #2 - ldr r1, _081C8C30 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081C8C28: .4byte gUnknown_3002360 -_081C8C2C: .4byte gUnknown_85F161D -_081C8C30: .4byte _081C8C34 -_081C8C34: @ jump table - .4byte _081C8C48 @ case 0 - .4byte _081C8C68 @ case 1 - .4byte _081C8C80 @ case 2 - .4byte _081C8C8C @ case 3 - .4byte _081C8CC2 @ case 4 -_081C8C48: - ldr r0, _081C8C60 - ldr r0, [r0] - ldrb r1, [r0, #0x15] - movs r0, #8 - ands r0, r1 - movs r1, #1 - cmp r0, #0 - beq _081C8C5A - movs r1, #2 -_081C8C5A: - strh r1, [r4, #6] - ldr r1, _081C8C64 - b _081C8C9A - .align 2, 0 -_081C8C60: .4byte gUnknown_3005AF0 -_081C8C64: .4byte 0x000186A6 -_081C8C68: - movs r1, #0 - movs r0, #3 - strh r0, [r4] - strh r1, [r4, #2] - ldrb r0, [r3, #0x12] - strh r0, [r4, #4] - ldr r0, _081C8C7C - str r0, [r4, #0xc] - movs r0, #2 - b _081C8CC6 - .align 2, 0 -_081C8C7C: .4byte sub_081C8DE8 -_081C8C80: - movs r0, #6 - strh r0, [r4, #6] - ldr r1, _081C8C88 - b _081C8C9A - .align 2, 0 -_081C8C88: .4byte 0x000186AB -_081C8C8C: - bl CanViewRibbonsMenu - cmp r0, #0 - beq _081C8CA8 - movs r0, #9 - strh r0, [r4, #6] - ldr r1, _081C8CA4 -_081C8C9A: - adds r0, r4, #0 - bl sub_081C8F5C - movs r0, #8 - b _081C8CC6 - .align 2, 0 -_081C8CA4: .4byte 0x000186AC -_081C8CA8: - ldr r0, _081C8CB0 - str r0, [r4, #0xc] - movs r0, #6 - b _081C8CC6 - .align 2, 0 -_081C8CB0: .4byte sub_081C8DAC -_081C8CB4: - ldrh r1, [r5, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _081C8CC2 - movs r0, #0 - b _081C8CC6 -_081C8CC2: - movs r0, #1 - rsbs r0, r0, #0 -_081C8CC6: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_081C8BE8 - - thumb_func_start sub_081C8CCC -sub_081C8CCC: @ 0x081C8CCC - push {r4, lr} - adds r4, r0, #0 - bl sub_081C8FC0 - cmp r0, #0 - beq _081C8CDC - movs r0, #1 - b _081C8D2C -_081C8CDC: - ldr r0, _081C8D10 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081C8D1C - ldr r3, _081C8D14 - movs r0, #2 - ldrsh r1, [r4, r0] - ldrh r2, [r4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #1 - adds r1, r1, r0 - adds r1, r1, r3 - ldrb r0, [r1] - cmp r0, #2 - bne _081C8D24 - movs r0, #6 - strh r0, [r4, #6] - ldr r1, _081C8D18 - adds r0, r4, #0 - bl sub_081C8F5C - movs r0, #8 - b _081C8D2C - .align 2, 0 -_081C8D10: .4byte gUnknown_3002360 -_081C8D14: .4byte gUnknown_85F161D -_081C8D18: .4byte 0x000186AB -_081C8D1C: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081C8D2A -_081C8D24: - movs r0, #0x20 - bl sub_080A306C -_081C8D2A: - movs r0, #0 -_081C8D2C: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081C8CCC - - thumb_func_start sub_081C8D34 -sub_081C8D34: @ 0x081C8D34 - push {r4, lr} - adds r4, r0, #0 - bl sub_081C8FC0 - cmp r0, #0 - beq _081C8D44 - movs r0, #1 - b _081C8DA4 -_081C8D44: - ldr r0, _081C8D78 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081C8D94 - ldr r3, _081C8D7C - movs r0, #2 - ldrsh r1, [r4, r0] - ldrh r2, [r4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #1 - adds r1, r1, r0 - adds r1, r1, r3 - ldrb r0, [r1] - cmp r0, #2 - beq _081C8D80 - cmp r0, #4 - beq _081C8DA0 - movs r0, #0x20 - bl sub_080A306C - movs r0, #0 - b _081C8DA4 - .align 2, 0 -_081C8D78: .4byte gUnknown_3002360 -_081C8D7C: .4byte gUnknown_85F161D -_081C8D80: - movs r0, #6 - strh r0, [r4, #6] - ldr r1, _081C8D90 - adds r0, r4, #0 - bl sub_081C8F5C - movs r0, #8 - b _081C8DA4 - .align 2, 0 -_081C8D90: .4byte 0x000186AB -_081C8D94: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _081C8DA0 - movs r0, #0 - b _081C8DA4 -_081C8DA0: - movs r0, #1 - rsbs r0, r0, #0 -_081C8DA4: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081C8D34 - - thumb_func_start sub_081C8DAC -sub_081C8DAC: @ 0x081C8DAC - push {r4, lr} - adds r4, r0, #0 - bl sub_081C8FC0 - cmp r0, #0 - beq _081C8DC2 - bl sub_081C8B98 - str r0, [r4, #0xc] - movs r0, #1 - b _081C8DE0 -_081C8DC2: - ldr r0, _081C8DD4 - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _081C8DD8 - movs r0, #0 - b _081C8DE0 - .align 2, 0 -_081C8DD4: .4byte gUnknown_3002360 -_081C8DD8: - bl sub_081C8B98 - str r0, [r4, #0xc] - movs r0, #7 -_081C8DE0: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081C8DAC - - thumb_func_start sub_081C8DE8 -sub_081C8DE8: @ 0x081C8DE8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_081C8FC0 - adds r3, r0, #0 - cmp r3, #0 - beq _081C8DFA - movs r0, #1 - b _081C8EA2 -_081C8DFA: - ldr r2, _081C8E2C - ldrh r1, [r2, #0x2e] - movs r0, #1 - ands r0, r1 - adds r6, r2, #0 - cmp r0, #0 - beq _081C8E64 - ldr r5, _081C8E30 - movs r1, #2 - ldrsh r0, [r4, r1] - ldrh r2, [r4] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - adds r0, r0, r1 - adds r0, r0, r5 - ldrb r0, [r0] - cmp r0, #6 - beq _081C8E3A - cmp r0, #6 - bgt _081C8E34 - cmp r0, #5 - beq _081C8E50 - b _081C8E64 - .align 2, 0 -_081C8E2C: .4byte gUnknown_3002360 -_081C8E30: .4byte gUnknown_85F161D -_081C8E34: - cmp r0, #7 - beq _081C8E90 - b _081C8E64 -_081C8E3A: - movs r0, #4 - strh r0, [r4] - strh r3, [r4, #2] - ldrb r0, [r5, #0x18] - strh r0, [r4, #4] - ldr r0, _081C8E4C - str r0, [r4, #0xc] - movs r0, #4 - b _081C8EA2 - .align 2, 0 -_081C8E4C: .4byte sub_081C8EA8 -_081C8E50: - strh r3, [r4, #6] - ldr r1, _081C8E60 - adds r0, r4, #0 - bl sub_081C8F5C - movs r0, #8 - b _081C8EA2 - .align 2, 0 -_081C8E60: .4byte 0x000186A7 -_081C8E64: - ldrh r1, [r6, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081C8EA0 - movs r0, #2 - ldrsh r2, [r4, r0] - ldr r1, _081C8E88 - ldrh r0, [r4] - adds r0, r0, r1 - ldrb r0, [r0] - cmp r2, r0 - beq _081C8E90 - strh r0, [r4, #2] - ldr r0, _081C8E8C - str r0, [r4, #0xc] - movs r0, #1 - b _081C8EA2 - .align 2, 0 -_081C8E88: .4byte gUnknown_85F1618 -_081C8E8C: .4byte sub_081C8F44 -_081C8E90: - movs r0, #5 - bl sub_080A306C - adds r0, r4, #0 - bl sub_081C8F6C - movs r0, #3 - b _081C8EA2 -_081C8EA0: - movs r0, #0 -_081C8EA2: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_081C8DE8 - - thumb_func_start sub_081C8EA8 -sub_081C8EA8: @ 0x081C8EA8 - push {r4, lr} - adds r4, r0, #0 - bl sub_081C8FC0 - cmp r0, #0 - beq _081C8EB8 - movs r0, #1 - b _081C8F3E -_081C8EB8: - ldr r0, _081C8EF4 - ldrh r1, [r0, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081C8F00 - ldr r3, _081C8EF8 - movs r0, #2 - ldrsh r1, [r4, r0] - ldrh r2, [r4] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #1 - adds r1, r1, r0 - adds r1, r1, r3 - ldrb r0, [r1] - cmp r0, #0xd - beq _081C8F2C - subs r0, #8 - bl sub_081C6E54 - ldr r1, _081C8EFC - adds r0, r4, #0 - bl sub_081C8F5C - movs r0, #3 - strh r0, [r4, #6] - movs r0, #8 - b _081C8F3E - .align 2, 0 -_081C8EF4: .4byte gUnknown_3002360 -_081C8EF8: .4byte gUnknown_85F161D -_081C8EFC: .4byte 0x000186A8 -_081C8F00: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081C8F3C - movs r0, #2 - ldrsh r2, [r4, r0] - ldr r1, _081C8F24 - ldrh r0, [r4] - adds r0, r0, r1 - ldrb r0, [r0] - cmp r2, r0 - beq _081C8F2C - strh r0, [r4, #2] - ldr r0, _081C8F28 - str r0, [r4, #0xc] - movs r0, #1 - b _081C8F3E - .align 2, 0 -_081C8F24: .4byte gUnknown_85F1618 -_081C8F28: .4byte sub_081C8F50 -_081C8F2C: - movs r0, #5 - bl sub_080A306C - adds r0, r4, #0 - bl sub_081C8FA4 - movs r0, #5 - b _081C8F3E -_081C8F3C: - movs r0, #0 -_081C8F3E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081C8EA8 - - thumb_func_start sub_081C8F44 -sub_081C8F44: @ 0x081C8F44 - push {lr} - bl sub_081C8F6C - movs r0, #3 - pop {r1} - bx r1 - thumb_func_end sub_081C8F44 - - thumb_func_start sub_081C8F50 -sub_081C8F50: @ 0x081C8F50 - push {lr} - bl sub_081C8FA4 - movs r0, #5 - pop {r1} - bx r1 - thumb_func_end sub_081C8F50 - - thumb_func_start sub_081C8F5C -sub_081C8F5C: @ 0x081C8F5C - str r1, [r0, #8] - ldr r1, _081C8F64 - str r1, [r0, #0xc] - bx lr - .align 2, 0 -_081C8F64: .4byte sub_081C8F68 - thumb_func_end sub_081C8F5C - - thumb_func_start sub_081C8F68 -sub_081C8F68: @ 0x081C8F68 - ldr r0, [r0, #8] - bx lr - thumb_func_end sub_081C8F68 - - thumb_func_start sub_081C8F6C -sub_081C8F6C: @ 0x081C8F6C - push {r4, lr} - adds r4, r0, #0 - bl GetPokenavMainMenuType - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - movs r0, #1 - strh r0, [r4, #2] - ldr r2, _081C8F9C - ldrh r1, [r4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r0, #1 - adds r0, r0, r2 - ldrb r0, [r0] - strh r0, [r4, #4] - ldr r0, _081C8FA0 - str r0, [r4, #0xc] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C8F9C: .4byte gUnknown_85F161D -_081C8FA0: .4byte sub_081C8BE8 - thumb_func_end sub_081C8F6C - - thumb_func_start sub_081C8FA4 -sub_081C8FA4: @ 0x081C8FA4 - movs r1, #3 - strh r1, [r0] - movs r1, #1 - strh r1, [r0, #2] - ldr r1, _081C8FB8 - ldrb r1, [r1, #0x13] - strh r1, [r0, #4] - ldr r1, _081C8FBC - str r1, [r0, #0xc] - bx lr - .align 2, 0 -_081C8FB8: .4byte gUnknown_85F161D -_081C8FBC: .4byte sub_081C8DE8 - thumb_func_end sub_081C8FA4 - - thumb_func_start sub_081C8FC0 -sub_081C8FC0: @ 0x081C8FC0 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _081C8FEC - ldrh r1, [r0, #0x2e] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0 - beq _081C8FF4 - ldrh r0, [r4, #2] - subs r0, #1 - strh r0, [r4, #2] - lsls r0, r0, #0x10 - ldrh r3, [r4] - cmp r0, #0 - bge _081C9016 - ldr r0, _081C8FF0 - adds r0, r3, r0 - ldrb r0, [r0] - strh r0, [r4, #2] - b _081C9016 - .align 2, 0 -_081C8FEC: .4byte gUnknown_3002360 -_081C8FF0: .4byte gUnknown_85F1618 -_081C8FF4: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _081C9038 - ldrh r0, [r4, #2] - adds r0, #1 - strh r0, [r4, #2] - movs r0, #2 - ldrsh r2, [r4, r0] - ldr r0, _081C9030 - ldrh r1, [r4] - adds r0, r1, r0 - adds r3, r1, #0 - ldrb r0, [r0] - cmp r2, r0 - ble _081C9016 - strh r5, [r4, #2] -_081C9016: - ldr r2, _081C9034 - movs r0, #2 - ldrsh r1, [r4, r0] - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #1 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strh r0, [r4, #4] - movs r0, #1 - b _081C903A - .align 2, 0 -_081C9030: .4byte gUnknown_85F1618 -_081C9034: .4byte gUnknown_85F161D -_081C9038: - movs r0, #0 -_081C903A: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_081C8FC0 - - thumb_func_start sub_081C9040 -sub_081C9040: @ 0x081C9040 - push {lr} - movs r0, #1 - bl GetSubstructPtr - ldrh r0, [r0] - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081C9040 - - thumb_func_start sub_081C9050 -sub_081C9050: @ 0x081C9050 - push {lr} - movs r0, #1 - bl GetSubstructPtr - movs r1, #2 - ldrsh r0, [r0, r1] - pop {r1} - bx r1 - thumb_func_end sub_081C9050 - - thumb_func_start sub_081C9060 -sub_081C9060: @ 0x081C9060 - push {lr} - movs r0, #1 - bl GetSubstructPtr - ldrh r0, [r0, #4] - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081C9060 - - thumb_func_start sub_081C9070 -sub_081C9070: @ 0x081C9070 - push {lr} - movs r0, #1 - bl GetSubstructPtr - ldrh r0, [r0, #6] - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081C9070 - - thumb_func_start sub_081C9080 -sub_081C9080: @ 0x081C9080 - push {r4, lr} - movs r4, #0 -_081C9084: - adds r0, r4, #0 - bl sub_081CA86C - ldr r1, _081C90B4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1, #0x14] - cmp r0, r1 - bne _081C90C0 - adds r0, r4, #0 - bl sub_081CA5B4 - cmp r0, #0 - beq _081C90C0 - ldr r0, _081C90B8 - ldr r0, [r0] - ldr r1, _081C90BC - adds r0, r0, r1 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0 - beq _081C90C0 - movs r0, #1 - b _081C90C8 - .align 2, 0 -_081C90B4: .4byte gUnknown_2036FB8 -_081C90B8: .4byte gUnknown_3005AEC -_081C90BC: .4byte 0x000009CA -_081C90C0: - adds r4, #1 - cmp r4, #0x4d - ble _081C9084 - movs r0, #0 -_081C90C8: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081C9080 - - thumb_func_start sub_081C90D0 -sub_081C90D0: @ 0x081C90D0 - push {lr} - bl sub_081C9104 - adds r1, r0, #0 - cmp r1, #0 - beq _081C90E4 - movs r0, #0 - strb r0, [r1, #0xd] - movs r0, #1 - b _081C90E6 -_081C90E4: - movs r0, #0 -_081C90E6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081C90D0 - - thumb_func_start sub_081C90EC -sub_081C90EC: @ 0x081C90EC - push {lr} - bl sub_081C9104 - adds r1, r0, #0 - cmp r1, #0 - beq _081C90FE - movs r0, #1 - strb r0, [r1, #0xd] - b _081C9100 -_081C90FE: - movs r0, #0 -_081C9100: - pop {r1} - bx r1 - thumb_func_end sub_081C90EC - - thumb_func_start sub_081C9104 -sub_081C9104: @ 0x081C9104 - push {r4, lr} - ldr r1, _081C9130 - movs r0, #2 - bl AllocSubstruct - adds r4, r0, #0 - cmp r4, #0 - beq _081C9126 - movs r0, #0 - strb r0, [r4, #0xc] - ldr r0, _081C9134 - movs r1, #1 - bl CreateLoopedTask - str r0, [r4, #4] - ldr r0, _081C9138 - str r0, [r4] -_081C9126: - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081C9130: .4byte 0x0000088C -_081C9134: .4byte sub_081C91BC -_081C9138: .4byte sub_081C91A8 - thumb_func_end sub_081C9104 - - thumb_func_start sub_081C913C -sub_081C913C: @ 0x081C913C - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #2 - bl GetSubstructPtr - adds r5, r0, #0 - ldr r0, _081C9164 - lsls r4, r4, #2 - adds r4, r4, r0 - ldr r0, [r4] - movs r1, #1 - bl CreateLoopedTask - str r0, [r5, #4] - ldr r0, _081C9168 - str r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C9164: .4byte gUnknown_85F2708 -_081C9168: .4byte sub_081C91A8 - thumb_func_end sub_081C913C - - thumb_func_start sub_081C916C -sub_081C916C: @ 0x081C916C - push {lr} - movs r0, #2 - bl GetSubstructPtr - ldr r0, [r0] - bl _call_via_r0 - pop {r1} - thumb_func_end sub_081C916C - - thumb_func_start sub_081C917C -sub_081C917C: @ 0x081C917C - bx r1 - .align 2, 0 - thumb_func_end sub_081C917C - - thumb_func_start sub_081C9180 -sub_081C9180: @ 0x081C9180 - push {r4, lr} - movs r0, #2 - bl GetSubstructPtr - adds r4, r0, #0 - bl sub_081C9FA0 - ldrb r0, [r4, #8] - bl RemoveWindow - bl PrintLeftColumnStats - bl sub_081CA140 - movs r0, #2 - bl FreePokenavSubstruct - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081C9180 - - thumb_func_start sub_081C91A8 -sub_081C91A8: @ 0x081C91A8 - push {lr} - movs r0, #2 - bl GetSubstructPtr - ldr r0, [r0, #4] - bl IsLoopedTaskActive - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081C91A8 - - thumb_func_start sub_081C91BC -sub_081C91BC: @ 0x081C91BC - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - movs r0, #2 - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #9 - bls _081C91D0 - b _081C940C -_081C91D0: - lsls r0, r4, #2 - ldr r1, _081C91DC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081C91DC: .4byte _081C91E0 -_081C91E0: @ jump table - .4byte _081C9208 @ case 0 - .4byte _081C9298 @ case 1 - .4byte _081C92DC @ case 2 - .4byte _081C9334 @ case 3 - .4byte _081C934A @ case 4 - .4byte _081C9350 @ case 5 - .4byte _081C9362 @ case 6 - .4byte _081C936C @ case 7 - .4byte _081C93BA @ case 8 - .4byte _081C93F8 @ case 9 -_081C9208: - ldr r0, _081C9288 - movs r1, #3 - bl InitBgTemplates - ldr r1, _081C928C - movs r0, #0 - str r0, [sp] - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - adds r1, r5, #0 - adds r1, #0x8c - movs r0, #1 - bl SetBgTilemapBuffer - ldr r1, _081C9290 - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - movs r0, #1 - bl CopyBgTilemapBufferToVram - ldr r0, _081C9294 - movs r1, #0x10 - movs r2, #0x20 - bl ClearBottomWindow - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgY -_081C9282: - movs r0, #0 - b _081C940E - .align 2, 0 -_081C9288: .4byte gUnknown_85F26FC -_081C928C: .4byte gUnknown_85F1730 -_081C9290: .4byte gUnknown_85F1780 -_081C9294: .4byte gUnknown_85F1710 -_081C9298: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _081C92A6 - b _081C9408 -_081C92A6: - ldr r1, _081C92D0 - str r0, [sp] - movs r0, #2 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, _081C92D4 - movs r0, #1 - str r0, [sp] - movs r0, #2 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - ldr r0, _081C92D8 - movs r1, #0x20 - movs r2, #0x20 - bl ClearBottomWindow - b _081C9282 - .align 2, 0 -_081C92D0: .4byte gUnknown_85F1858 -_081C92D4: .4byte gUnknown_85F1AE0 -_081C92D8: .4byte gUnknown_85F1838 -_081C92DC: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _081C92EA - b _081C9408 -_081C92EA: - ldr r1, _081C9328 - str r0, [sp] - movs r0, #3 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, _081C932C - movs r0, #1 - str r0, [sp] - movs r0, #3 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - ldr r0, _081C9330 - movs r1, #0x30 - movs r2, #0x20 - bl ClearBottomWindow - bl sub_081C9040 - cmp r0, #3 - beq _081C9322 - bl sub_081C9040 - cmp r0, #4 - bne _081C9282 -_081C9322: - bl Overworld_ResetStateAfterFly - b _081C9282 - .align 2, 0 -_081C9328: .4byte gUnknown_85F165C -_081C932C: .4byte gUnknown_85F1670 -_081C9330: .4byte gUnknown_85F163C -_081C9334: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081C9408 - bl sub_081C9E8C - bl sub_081C9F80 -_081C9346: - movs r0, #1 - b _081C940E -_081C934A: - bl sub_081C9770 - b _081C9346 -_081C9350: - bl sub_081C9EC0 - bl sub_081C97D8 - bl sub_081C9DEC - bl sub_081C9874 - b _081C9282 -_081C9362: - bl sub_081C9F70 - cmp r0, #0 - bne _081C9408 - b _081C9346 -_081C936C: - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg - ldrb r0, [r5, #0xd] - cmp r0, #0 - beq _081C938C - movs r0, #1 - bl sub_081C7280 - b _081C9398 -_081C938C: - movs r0, #0x6e - bl sub_080A306C - movs r0, #3 - bl sub_081C7280 -_081C9398: - bl sub_081C9040 - cmp r0, #3 - beq _081C93AA - cmp r0, #4 - bne _081C93B2 - movs r0, #7 - bl LoadLeftHeaderGfxForIndex -_081C93AA: - movs r0, #1 - bl LoadLeftHeaderGfxForIndex - b _081C9282 -_081C93B2: - movs r0, #0 - bl LoadLeftHeaderGfxForIndex - b _081C9282 -_081C93BA: - bl sub_081C72F4 - cmp r0, #0 - bne _081C9408 - bl sub_081C9040 - cmp r0, #3 - beq _081C93D8 - cmp r0, #4 - bne _081C93E4 - movs r0, #7 - movs r1, #0 - movs r2, #0 - bl sub_081C7748 -_081C93D8: - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl sub_081C7748 - b _081C93EE -_081C93E4: - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl sub_081C7748 -_081C93EE: - bl sub_081C99B8 - bl sub_081CA0D8 - b _081C9346 -_081C93F8: - bl sub_081C9AD0 - cmp r0, #0 - bne _081C9408 - bl sub_081C77B8 - cmp r0, #0 - beq _081C940C -_081C9408: - movs r0, #2 - b _081C940E -_081C940C: - movs r0, #4 -_081C940E: - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081C91BC - - thumb_func_start sub_081C9418 -sub_081C9418: @ 0x081C9418 - push {lr} - cmp r0, #0 - beq _081C9424 - cmp r0, #1 - beq _081C943A - b _081C944E -_081C9424: - bl sub_081CA1E8 - bl sub_081C9A24 - bl sub_081C9EC0 - movs r0, #5 - bl sub_080A306C - movs r0, #0 - b _081C9450 -_081C943A: - bl sub_081C9AD0 - cmp r0, #0 - bne _081C944A - bl sub_081C9F70 - cmp r0, #0 - beq _081C944E -_081C944A: - movs r0, #2 - b _081C9450 -_081C944E: - movs r0, #4 -_081C9450: - pop {r1} - bx r1 - thumb_func_end sub_081C9418 - - thumb_func_start sub_081C9454 -sub_081C9454: @ 0x081C9454 - push {lr} - cmp r0, #1 - beq _081C9488 - cmp r0, #1 - bgt _081C9464 - cmp r0, #0 - beq _081C946E - b _081C94E8 -_081C9464: - cmp r0, #2 - beq _081C94A6 - cmp r0, #3 - beq _081C94C0 - b _081C94E8 -_081C946E: - bl sub_081CA174 - bl sub_081C9A88 - movs r0, #0 - movs r1, #0 - bl sub_081C776C - movs r0, #5 - bl sub_080A306C - movs r0, #0 - b _081C94EA -_081C9488: - bl sub_081C9AD0 - cmp r0, #0 - bne _081C94E0 - bl sub_081C77B8 - cmp r0, #0 - bne _081C94E0 - bl sub_081C9874 - movs r0, #1 - bl LoadLeftHeaderGfxForIndex - movs r0, #0 - b _081C94EA -_081C94A6: - bl sub_081C99B8 - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl sub_081C7748 - bl sub_081C9FC4 - bl sub_081C9EC0 - movs r0, #0 - b _081C94EA -_081C94C0: - bl sub_081C9AD0 - cmp r0, #0 - bne _081C94E0 - bl sub_081C77B8 - cmp r0, #0 - bne _081C94E0 - bl sub_081CA048 - cmp r0, #0 - bne _081C94E0 - bl sub_081C9F70 - cmp r0, #0 - beq _081C94E4 -_081C94E0: - movs r0, #2 - b _081C94EA -_081C94E4: - bl sub_081CA184 -_081C94E8: - movs r0, #4 -_081C94EA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081C9454 - - thumb_func_start sub_081C94F0 -sub_081C94F0: @ 0x081C94F0 - push {lr} - cmp r0, #1 - beq _081C951E - cmp r0, #1 - bgt _081C9500 - cmp r0, #0 - beq _081C950A - b _081C957E -_081C9500: - cmp r0, #2 - beq _081C953C - cmp r0, #3 - beq _081C9556 - b _081C957E -_081C950A: - bl sub_081CA174 - bl sub_081C9A88 - movs r0, #1 - movs r1, #0 - bl sub_081C776C - movs r0, #0 - b _081C9580 -_081C951E: - bl sub_081C9AD0 - cmp r0, #0 - bne _081C9576 - bl sub_081C77B8 - cmp r0, #0 - bne _081C9576 - bl sub_081C9874 - movs r0, #0 - bl LoadLeftHeaderGfxForIndex - movs r0, #0 - b _081C9580 -_081C953C: - bl sub_081C99B8 - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl sub_081C7748 - bl sub_081CA010 - bl sub_081C9EC0 - movs r0, #0 - b _081C9580 -_081C9556: - bl sub_081C9AD0 - cmp r0, #0 - bne _081C9576 - bl sub_081C77B8 - cmp r0, #0 - bne _081C9576 - bl sub_081CA048 - cmp r0, #0 - bne _081C9576 - bl sub_081C9F70 - cmp r0, #0 - beq _081C957A -_081C9576: - movs r0, #2 - b _081C9580 -_081C957A: - bl sub_081CA184 -_081C957E: - movs r0, #4 -_081C9580: - pop {r1} - bx r1 - thumb_func_end sub_081C94F0 - - thumb_func_start sub_081C9584 -sub_081C9584: @ 0x081C9584 - push {lr} - cmp r0, #1 - beq _081C95B0 - cmp r0, #1 - bgt _081C9594 - cmp r0, #0 - beq _081C959E - b _081C95FC -_081C9594: - cmp r0, #2 - beq _081C95C6 - cmp r0, #3 - beq _081C95DC - b _081C95FC -_081C959E: - bl sub_081CA174 - bl sub_081C9A88 - movs r0, #5 - bl sub_080A306C - movs r0, #0 - b _081C95FE -_081C95B0: - bl sub_081C9AD0 - cmp r0, #0 - bne _081C95F4 - movs r0, #7 - bl LoadLeftHeaderGfxForIndex - bl sub_081C9874 - movs r0, #0 - b _081C95FE -_081C95C6: - bl sub_081C99B8 - movs r0, #7 - movs r1, #0 - movs r2, #0 - bl sub_081C7748 - bl sub_081C9EC0 - movs r0, #0 - b _081C95FE -_081C95DC: - bl sub_081C9AD0 - cmp r0, #0 - bne _081C95F4 - bl sub_081C77B8 - cmp r0, #0 - bne _081C95F4 - bl sub_081CA048 - cmp r0, #0 - beq _081C95F8 -_081C95F4: - movs r0, #2 - b _081C95FE -_081C95F8: - bl sub_081CA184 -_081C95FC: - movs r0, #4 -_081C95FE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081C9584 - - thumb_func_start sub_081C9604 -sub_081C9604: @ 0x081C9604 - push {lr} - cmp r0, #1 - beq _081C9632 - cmp r0, #1 - bgt _081C9614 - cmp r0, #0 - beq _081C961E - b _081C966E -_081C9614: - cmp r0, #2 - beq _081C964A - cmp r0, #3 - beq _081C9656 - b _081C966E -_081C961E: - bl sub_081CA174 - bl sub_081C9A88 - movs r0, #7 - movs r1, #0 - bl sub_081C776C - movs r0, #0 - b _081C9670 -_081C9632: - bl sub_081C9AD0 - cmp r0, #0 - bne _081C9666 - bl sub_081C77B8 - cmp r0, #0 - bne _081C9666 - bl sub_081C9874 - movs r0, #0 - b _081C9670 -_081C964A: - bl sub_081C99B8 - bl sub_081C9EC0 - movs r0, #0 - b _081C9670 -_081C9656: - bl sub_081C9AD0 - cmp r0, #0 - bne _081C9666 - bl sub_081CA048 - cmp r0, #0 - beq _081C966A -_081C9666: - movs r0, #2 - b _081C9670 -_081C966A: - bl sub_081CA184 -_081C966E: - movs r0, #4 -_081C9670: - pop {r1} - bx r1 - thumb_func_end sub_081C9604 - - thumb_func_start sub_081C9674 -sub_081C9674: @ 0x081C9674 - push {lr} - cmp r0, #0 - beq _081C9680 - cmp r0, #1 - beq _081C968E - b _081C969C -_081C9680: - movs r0, #0x20 - bl sub_080A306C - bl sub_081C9F1C - movs r0, #0 - b _081C969E -_081C968E: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081C969C - movs r0, #2 - b _081C969E -_081C969C: - movs r0, #4 -_081C969E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081C9674 - - thumb_func_start sub_081C96A4 -sub_081C96A4: @ 0x081C96A4 - push {lr} - cmp r0, #0 - beq _081C96B0 - cmp r0, #1 - beq _081C96BE - b _081C96CC -_081C96B0: - movs r0, #5 - bl sub_080A306C - bl sub_081C9EC0 - movs r0, #0 - b _081C96CE -_081C96BE: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081C96CC - movs r0, #2 - b _081C96CE -_081C96CC: - movs r0, #4 -_081C96CE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081C96A4 - - thumb_func_start sub_081C96D4 -sub_081C96D4: @ 0x081C96D4 - push {lr} - cmp r0, #1 - beq _081C96FE - cmp r0, #1 - bgt _081C96E4 - cmp r0, #0 - beq _081C96EE - b _081C9768 -_081C96E4: - cmp r0, #2 - beq _081C9742 - cmp r0, #3 - beq _081C975C - b _081C9768 -_081C96EE: - bl sub_081C9070 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl sub_081C7364 - movs r0, #0 - b _081C976A -_081C96FE: - bl sub_081C73A8 - cmp r0, #0 - bne _081C9764 - bl sub_081C7040 - bl sub_081CA174 - bl sub_081C9A88 - bl sub_081C9040 - cmp r0, #3 - beq _081C9726 - cmp r0, #4 - bne _081C9730 - movs r0, #7 - movs r1, #0 - bl sub_081C776C -_081C9726: - movs r0, #1 - movs r1, #0 - bl sub_081C776C - b _081C9738 -_081C9730: - movs r0, #0 - movs r1, #0 - bl sub_081C776C -_081C9738: - movs r0, #5 - bl sub_080A306C - movs r0, #0 - b _081C976A -_081C9742: - bl sub_081C9AD0 - cmp r0, #0 - bne _081C9764 - bl sub_081C77B8 - cmp r0, #0 - bne _081C9764 - movs r0, #0 - bl sub_081C7280 - movs r0, #0 - b _081C976A -_081C975C: - bl sub_081C72F4 - cmp r0, #0 - beq _081C9768 -_081C9764: - movs r0, #2 - b _081C976A -_081C9768: - movs r0, #4 -_081C976A: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081C96D4 - - thumb_func_start sub_081C9770 -sub_081C9770: @ 0x081C9770 - push {r4, r5, lr} - movs r5, #0 - ldr r4, _081C9790 -_081C9776: - adds r0, r4, #0 - bl LoadCompressedSpriteSheet - adds r4, #8 - adds r5, #1 - cmp r5, #1 - bls _081C9776 - ldr r0, _081C9794 - bl Pokenav_AllocAndLoadPalettes - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C9790: .4byte gUnknown_85F272C -_081C9794: .4byte gUnknown_85F273C - thumb_func_end sub_081C9770 - - thumb_func_start PrintLeftColumnStats -PrintLeftColumnStats: @ 0x081C9798 - push {lr} - movs r0, #3 - bl FreeSpriteTilesByTag - movs r0, #1 - bl FreeSpriteTilesByTag - movs r0, #4 - bl FreeSpritePaletteByTag - movs r0, #5 - bl FreeSpritePaletteByTag - movs r0, #6 - bl FreeSpritePaletteByTag - movs r0, #7 - bl FreeSpritePaletteByTag - movs r0, #8 - bl FreeSpritePaletteByTag - movs r0, #3 - bl FreeSpritePaletteByTag - bl sub_081C9840 - bl sub_081C9E44 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end PrintLeftColumnStats - - thumb_func_start sub_081C97D8 -sub_081C97D8: @ 0x081C97D8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r0, #2 - bl GetSubstructPtr - movs r2, #0 - adds r0, #0x2c - mov r8, r0 -_081C97EA: - movs r4, #0 - lsls r0, r2, #2 - lsls r1, r2, #4 - adds r7, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #0x12 - movs r2, #0xa0 - lsls r2, r2, #0xe - adds r5, r0, r2 - mov r0, r8 - adds r6, r1, r0 -_081C9800: - ldr r0, _081C9838 - movs r1, #0x8c - asrs r2, r5, #0x10 - movs r3, #3 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _081C983C - adds r1, r1, r0 - stm r6!, {r1} - lsls r0, r4, #5 - strh r0, [r1, #0x24] - adds r4, #1 - cmp r4, #3 - ble _081C9800 - adds r2, r7, #0 - cmp r2, #5 - ble _081C97EA - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C9838: .4byte gUnknown_85F28B4 -_081C983C: .4byte gUnknown_20205AC - thumb_func_end sub_081C97D8 - - thumb_func_start sub_081C9840 -sub_081C9840: @ 0x081C9840 - push {r4, r5, r6, r7, lr} - movs r0, #2 - bl GetSubstructPtr - movs r1, #0 - adds r7, r0, #0 - adds r7, #0x2c -_081C984E: - lsls r0, r1, #4 - adds r6, r1, #1 - adds r4, r0, r7 - movs r5, #3 -_081C9856: - ldr r0, [r4] - bl FreeSpriteOamMatrix - ldm r4!, {r0} - bl DestroySprite - subs r5, #1 - cmp r5, #0 - bge _081C9856 - adds r1, r6, #0 - cmp r1, #5 - ble _081C984E - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_081C9840 - - thumb_func_start sub_081C9874 -sub_081C9874: @ 0x081C9874 - push {lr} - bl sub_081C9040 - lsls r2, r0, #3 - subs r2, r2, r0 - lsls r2, r2, #2 - ldr r1, _081C9894 - adds r0, r2, r1 - subs r1, #4 - adds r2, r2, r1 - ldrh r1, [r2] - ldrh r2, [r2, #2] - bl sub_081C9898 - pop {r0} - bx r0 - .align 2, 0 -_081C9894: .4byte gUnknown_85F27AC - thumb_func_end sub_081C9874 - - thumb_func_start sub_081C9898 -sub_081C9898: @ 0x081C9898 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - adds r6, r0, #0 - str r1, [sp, #0x14] - str r2, [sp] - movs r0, #2 - bl GetSubstructPtr - mov sl, r0 - movs r0, #3 - bl GetSpriteTileStartByTag - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #4] - movs r1, #0 -_081C98C0: - ldr r0, [r6] - cmp r0, #0 - beq _081C995C - movs r5, #0 - lsls r2, r1, #4 - mov r0, sl - adds r0, #0x2c - lsls r3, r1, #2 - mov sb, r3 - movs r4, #0x10 - add r4, sl - mov r8, r4 - adds r7, r6, #4 - str r7, [sp, #0xc] - ldr r3, [sp, #0x14] - ldr r4, [sp] - adds r3, r3, r4 - str r3, [sp, #8] - adds r1, #1 - str r1, [sp, #0x10] - adds r4, r2, r0 -_081C98EA: - ldr r3, [r4] - ldr r0, [r6] - ldrh r2, [r0] - ldr r7, [sp, #4] - adds r2, r2, r7 - lsls r0, r5, #3 - adds r2, r2, r0 - ldr r1, _081C9954 - adds r0, r1, #0 - ands r2, r0 - ldrh r0, [r3, #4] - ldr r7, _081C9958 - adds r1, r7, #0 - ands r0, r1 - orrs r0, r2 - strh r0, [r3, #4] - ldr r0, [r6] - ldrh r0, [r0, #2] - adds r0, #4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl IndexOfSpritePaletteTag - ldr r3, [r4] - lsls r0, r0, #4 - ldrb r2, [r3, #5] - movs r1, #0xf - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #5] - ldr r2, [r4] - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r4] - mov r1, sp - ldrh r1, [r1, #0x14] - strh r1, [r0, #0x22] - ldr r1, [r4] - movs r0, #0x8c - strh r0, [r1, #0x20] - ldm r4!, {r1} - lsls r0, r5, #5 - strh r0, [r1, #0x24] - adds r5, #1 - cmp r5, #3 - ble _081C98EA - mov r1, r8 - add r1, sb - movs r0, #1 - b _081C9998 - .align 2, 0 -_081C9954: .4byte 0x000003FF -_081C9958: .4byte 0xFFFFFC00 -_081C995C: - lsls r2, r1, #4 - mov r0, sl - adds r0, #0x2c - lsls r3, r1, #2 - mov sb, r3 - movs r4, #0x10 - add r4, sl - mov r8, r4 - adds r6, #4 - str r6, [sp, #0xc] - ldr r7, [sp, #0x14] - ldr r3, [sp] - adds r7, r7, r3 - str r7, [sp, #8] - adds r1, #1 - str r1, [sp, #0x10] - movs r3, #4 - adds r2, r2, r0 - movs r5, #3 -_081C9982: - ldm r2!, {r1} - adds r1, #0x3e - ldrb r0, [r1] - orrs r0, r3 - strb r0, [r1] - subs r5, #1 - cmp r5, #0 - bge _081C9982 - mov r1, r8 - add r1, sb - movs r0, #0 -_081C9998: - str r0, [r1] - ldr r6, [sp, #0xc] - ldr r4, [sp, #8] - str r4, [sp, #0x14] - ldr r1, [sp, #0x10] - cmp r1, #5 - ble _081C98C0 - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C9898 - - thumb_func_start sub_081C99B8 -sub_081C99B8: @ 0x081C99B8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r0, #2 - bl GetSubstructPtr - adds r6, r0, #0 - bl sub_081C9050 - mov r8, r0 - movs r7, #0 - movs r5, #0 - adds r4, r6, #0 - adds r4, #0x2c -_081C99D4: - lsls r0, r5, #2 - adds r1, r6, #0 - adds r1, #0x10 - adds r1, r1, r0 - ldr r0, [r1] - cmp r0, #0 - beq _081C9A08 - adds r0, r7, #0 - adds r7, #1 - cmp r0, r8 - bne _081C99F0 - movs r2, #0x82 - strb r5, [r6, #0xb] - b _081C99F2 -_081C99F0: - movs r2, #0x8c -_081C99F2: - adds r0, r4, #0 - movs r1, #0x80 - lsls r1, r1, #1 - movs r3, #0xc - bl sub_081C9B08 - adds r0, r4, #0 - movs r1, #0 - bl sub_081C9BF4 - b _081C9A10 -_081C9A08: - adds r0, r4, #0 - movs r1, #1 - bl sub_081C9BF4 -_081C9A10: - adds r4, #0x10 - adds r5, #1 - cmp r5, #5 - ble _081C99D4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C99B8 - - thumb_func_start sub_081C9A24 -sub_081C9A24: @ 0x081C9A24 - push {r4, r5, lr} - movs r0, #2 - bl GetSubstructPtr - adds r4, r0, #0 - bl sub_081C9050 - adds r3, r0, #0 - movs r2, #0 - movs r5, #0 - ldr r0, [r4, #0x10] - cmp r0, #0 - beq _081C9A44 - cmp r5, r3 - beq _081C9A5E -_081C9A42: - adds r5, #1 -_081C9A44: - adds r2, #1 - cmp r2, #5 - bgt _081C9A5E - lsls r0, r2, #2 - adds r1, r4, #0 - adds r1, #0x10 - adds r1, r1, r0 - ldr r0, [r1] - cmp r0, #0 - beq _081C9A44 - cmp r5, r3 - bne _081C9A42 - adds r5, r2, #0 -_081C9A5E: - ldrb r0, [r4, #0xb] - lsls r0, r0, #4 - adds r0, #0x2c - adds r0, r4, r0 - movs r1, #0x82 - movs r2, #0x8c - movs r3, #4 - bl sub_081C9B08 - lsls r0, r5, #4 - adds r0, #0x2c - adds r0, r4, r0 - movs r1, #0x8c - movs r2, #0x82 - movs r3, #4 - bl sub_081C9B08 - strb r5, [r4, #0xb] - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_081C9A24 - - thumb_func_start sub_081C9A88 -sub_081C9A88: @ 0x081C9A88 - push {r4, r5, r6, lr} - movs r0, #2 - bl GetSubstructPtr - adds r6, r0, #0 - movs r5, #0 - adds r4, r6, #0 - adds r4, #0x2c -_081C9A98: - lsls r0, r5, #2 - adds r1, r6, #0 - adds r1, #0x10 - adds r1, r1, r0 - ldr r0, [r1] - cmp r0, #0 - beq _081C9AC2 - ldrb r0, [r6, #0xb] - cmp r0, r5 - beq _081C9ABC - adds r0, r4, #0 - movs r1, #0x8c - movs r2, #0x80 - lsls r2, r2, #1 - movs r3, #8 - bl sub_081C9B08 - b _081C9AC2 -_081C9ABC: - adds r0, r4, #0 - bl sub_081C9B60 -_081C9AC2: - adds r4, #0x10 - adds r5, #1 - cmp r5, #5 - ble _081C9A98 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_081C9A88 - - thumb_func_start sub_081C9AD0 -sub_081C9AD0: @ 0x081C9AD0 - push {r4, lr} - movs r0, #2 - bl GetSubstructPtr - adds r3, r0, #0 - movs r2, #0 - ldr r4, _081C9AFC - adds r1, r3, #0 - adds r1, #0x2c -_081C9AE2: - ldr r0, [r1] - ldr r0, [r0, #0x1c] - cmp r0, r4 - bne _081C9B00 - adds r1, #0x10 - adds r2, #1 - cmp r2, #5 - ble _081C9AE2 - ldrb r0, [r3, #0xc] - cmp r0, #0 - bne _081C9B00 - movs r0, #0 - b _081C9B02 - .align 2, 0 -_081C9AFC: .4byte sub_08007140 -_081C9B00: - movs r0, #1 -_081C9B02: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081C9AD0 - - thumb_func_start sub_081C9B08 -sub_081C9B08: @ 0x081C9B08 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r4, r0, #0 - adds r5, r1, #0 - mov sb, r2 - adds r6, r3, #0 - ldr r0, _081C9B5C - mov r8, r0 - subs r0, r2, r5 - lsls r0, r0, #4 - adds r1, r6, #0 - bl __divsi3 - adds r3, r0, #0 - movs r1, #3 - lsls r2, r5, #4 -_081C9B2C: - ldr r0, [r4] - strh r5, [r0, #0x20] - ldr r0, [r4] - strh r6, [r0, #0x2e] - ldr r0, [r4] - strh r3, [r0, #0x30] - ldr r0, [r4] - strh r2, [r0, #0x32] - ldr r0, [r4] - mov r7, sb - strh r7, [r0, #0x3c] - ldm r4!, {r0} - mov r7, r8 - str r7, [r0, #0x1c] - subs r1, #1 - cmp r1, #0 - bge _081C9B2C - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C9B5C: .4byte sub_081C9C20 - thumb_func_end sub_081C9B08 - - thumb_func_start sub_081C9B60 -sub_081C9B60: @ 0x081C9B60 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - movs r0, #2 - bl GetSubstructPtr - adds r7, r0, #0 - movs r5, #0 - mov r8, r5 -_081C9B74: - ldr r2, [r4] - ldrb r1, [r2, #1] - movs r3, #0xd - rsbs r3, r3, #0 - adds r0, r3, #0 - ands r1, r0 - movs r0, #4 - orrs r1, r0 - strb r1, [r2, #1] - ldr r2, [r4] - ldrb r0, [r2, #1] - movs r1, #3 - orrs r0, r1 - strb r0, [r2, #1] - ldr r1, [r4] - ldr r0, _081C9BE8 - str r0, [r1, #0x1c] - movs r6, #8 - strh r6, [r1, #0x2e] - ldr r0, [r4] - mov r1, r8 - strh r1, [r0, #0x30] - ldr r0, [r4] - strh r5, [r0, #0x3c] - ldr r0, [r4] - bl InitSpriteAffineAnim - ldm r4!, {r0} - movs r1, #0 - bl StartSpriteAffineAnim - adds r5, #1 - cmp r5, #3 - ble _081C9B74 - movs r0, #0x52 - movs r1, #0x10 - bl SetGpuReg - ldr r0, _081C9BEC - movs r1, #3 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _081C9BF0 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r6, [r1, #8] - ldrb r0, [r7, #0xc] - adds r0, #1 - strb r0, [r7, #0xc] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081C9BE8: .4byte sub_081C9C58 -_081C9BEC: .4byte sub_081C9D2C -_081C9BF0: .4byte gUnknown_3005B60 - thumb_func_end sub_081C9B60 - - thumb_func_start sub_081C9BF4 -sub_081C9BF4: @ 0x081C9BF4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #1 - ands r1, r0 - lsls r4, r1, #2 - movs r6, #5 - rsbs r6, r6, #0 - movs r3, #3 -_081C9C04: - ldm r5!, {r0} - adds r0, #0x3e - ldrb r2, [r0] - adds r1, r6, #0 - ands r1, r2 - orrs r1, r4 - strb r1, [r0] - subs r3, #1 - cmp r3, #0 - bge _081C9C04 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C9BF4 - - thumb_func_start sub_081C9C20 -sub_081C9C20: @ 0x081C9C20 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x2e] - subs r0, #1 - strh r0, [r2, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _081C9C46 - ldrh r0, [r2, #0x30] - ldrh r1, [r2, #0x32] - adds r0, r0, r1 - strh r0, [r2, #0x32] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - strh r0, [r2, #0x20] - b _081C9C4E -_081C9C46: - ldrh r0, [r2, #0x3c] - strh r0, [r2, #0x20] - ldr r0, _081C9C54 - str r0, [r2, #0x1c] -_081C9C4E: - pop {r0} - bx r0 - .align 2, 0 -_081C9C54: .4byte sub_08007140 - thumb_func_end sub_081C9C20 - - thumb_func_start sub_081C9C58 -sub_081C9C58: @ 0x081C9C58 - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x2e] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _081C9D20 - movs r0, #0x30 - ldrsh r5, [r4, r0] - cmp r5, #0 - bne _081C9C8E - adds r0, r4, #0 - movs r1, #1 - bl StartSpriteAffineAnim - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x32] - ldrh r0, [r4, #0x24] - ldrh r1, [r4, #0x20] - adds r0, r0, r1 - strh r0, [r4, #0x20] - strh r5, [r4, #0x24] - b _081C9D24 -_081C9C8E: - ldrh r0, [r4, #0x32] - adds r0, #0x10 - strh r0, [r4, #0x32] - movs r2, #0x32 - ldrsh r0, [r4, r2] - asrs r1, r0, #3 - adds r0, r1, #0 - subs r0, #0x20 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r1, r0, #1 - movs r2, #0x3c - ldrsh r0, [r4, r2] - cmp r0, #1 - beq _081C9CC4 - cmp r0, #1 - bgt _081C9CB6 - cmp r0, #0 - beq _081C9CC0 - b _081C9CD2 -_081C9CB6: - cmp r0, #2 - beq _081C9CC8 - cmp r0, #3 - beq _081C9CCC - b _081C9CD2 -_081C9CC0: - rsbs r1, r1, #0 - b _081C9CCC -_081C9CC4: - rsbs r0, r1, #0 - b _081C9CD0 -_081C9CC8: - strh r1, [r4, #0x24] - b _081C9CD2 -_081C9CCC: - lsls r0, r1, #1 - adds r0, r0, r1 -_081C9CD0: - strh r0, [r4, #0x24] -_081C9CD2: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _081C9D24 - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4, #3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - bl FreeOamMatrix - ldrb r1, [r4, #1] - lsrs r1, r1, #6 - ldrb r2, [r4, #3] - lsrs r2, r2, #6 - adds r0, r4, #0 - movs r3, #0 - bl CalcCenterToCornerVec - ldrb r1, [r4, #1] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0xd - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r4, #1] - ldr r0, _081C9D1C - str r0, [r4, #0x1c] - b _081C9D24 - .align 2, 0 -_081C9D1C: .4byte sub_08007140 -_081C9D20: - subs r0, r1, #1 - strh r0, [r4, #0x2e] -_081C9D24: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C9C58 - - thumb_func_start sub_081C9D2C -sub_081C9D2C: @ 0x081C9D2C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _081C9D54 - adds r4, r0, r1 - ldrh r0, [r4] - movs r1, #0 - ldrsh r2, [r4, r1] - cmp r2, #0 - bne _081C9DE0 - movs r0, #2 - ldrsh r1, [r4, r0] - cmp r1, #0 - beq _081C9D58 - cmp r1, #1 - beq _081C9D78 - b _081C9DE4 - .align 2, 0 -_081C9D54: .4byte gUnknown_3005B68 -_081C9D58: - movs r0, #0x10 - strh r0, [r4, #4] - strh r2, [r4, #6] - movs r1, #0xfc - lsls r1, r1, #6 - movs r0, #0x50 - bl SetGpuReg - movs r0, #0x52 - movs r1, #0x10 - bl SetGpuReg - ldrh r0, [r4, #2] - adds r0, #1 - strh r0, [r4, #2] - b _081C9DE4 -_081C9D78: - ldrh r0, [r4, #8] - ands r1, r0 - cmp r1, #0 - beq _081C9D90 - ldrh r0, [r4, #4] - subs r0, #3 - strh r0, [r4, #4] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _081C9DA2 - strh r2, [r4, #4] - b _081C9DA2 -_081C9D90: - ldrh r0, [r4, #6] - adds r0, #3 - strh r0, [r4, #6] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x10 - ble _081C9DA2 - movs r0, #0x10 - strh r0, [r4, #6] -_081C9DA2: - ldrh r1, [r4, #6] - lsls r1, r1, #8 - ldrh r0, [r4, #4] - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xc - bne _081C9DE4 - movs r0, #2 - bl GetSubstructPtr - ldrb r1, [r0, #0xc] - subs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0x80 - lsls r1, r1, #5 - movs r0, #0x52 - bl SetGpuReg - adds r0, r5, #0 - bl DestroyTask - b _081C9DE4 -_081C9DE0: - subs r0, #1 - strh r0, [r4] -_081C9DE4: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C9D2C - - thumb_func_start sub_081C9DEC -sub_081C9DEC: @ 0x081C9DEC - push {r4, lr} - movs r0, #2 - bl GetSubstructPtr - adds r4, r0, #0 - ldr r0, _081C9E24 - movs r1, #0x10 - movs r2, #0x60 - movs r3, #4 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _081C9E28 - adds r1, r1, r0 - str r1, [r4, #0x28] - bl sub_081C9080 - cmp r0, #0 - beq _081C9E30 - ldr r1, [r4, #0x28] - ldr r0, _081C9E2C - str r0, [r1, #0x1c] - b _081C9E3C - .align 2, 0 -_081C9E24: .4byte gUnknown_85F28D4 -_081C9E28: .4byte gUnknown_20205AC -_081C9E2C: .4byte sub_081C9E58 -_081C9E30: - ldr r0, [r4, #0x28] - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_081C9E3C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C9DEC - - thumb_func_start sub_081C9E44 -sub_081C9E44: @ 0x081C9E44 - push {lr} - movs r0, #2 - bl GetSubstructPtr - ldr r0, [r0, #0x28] - bl DestroySprite - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C9E44 - - thumb_func_start sub_081C9E58 -sub_081C9E58: @ 0x081C9E58 - push {lr} - adds r3, r0, #0 - ldrh r0, [r3, #0x2e] - adds r0, #1 - strh r0, [r3, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #8 - ble _081C9E86 - movs r0, #0 - strh r0, [r3, #0x2e] - adds r3, #0x3e - ldrb r2, [r3] - lsls r0, r2, #0x1d - lsrs r0, r0, #0x1f - movs r1, #1 - eors r1, r0 - lsls r1, r1, #2 - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_081C9E86: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C9E58 - - thumb_func_start sub_081C9E8C -sub_081C9E8C: @ 0x081C9E8C - push {r4, lr} - movs r0, #2 - bl GetSubstructPtr - adds r4, r0, #0 - ldr r0, _081C9EBC - bl AddWindow - strh r0, [r4, #8] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl PutWindowTilemap - ldrb r0, [r4, #8] - movs r1, #0x66 - bl FillWindowPixelBuffer - ldrb r0, [r4, #8] - movs r1, #3 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C9EBC: .4byte gUnknown_85F2834 - thumb_func_end sub_081C9E8C - - thumb_func_start sub_081C9EC0 -sub_081C9EC0: @ 0x081C9EC0 - push {r4, r5, r6, lr} - sub sp, #0xc - movs r0, #2 - bl GetSubstructPtr - adds r5, r0, #0 - bl sub_081C9060 - ldr r1, _081C9F14 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r6, [r0] - movs r2, #1 - rsbs r2, r2, #0 - movs r0, #1 - adds r1, r6, #0 - bl sub_08005DAC - adds r4, r0, #0 - ldrb r0, [r5, #8] - movs r1, #0x66 - bl FillWindowPixelBuffer - ldrb r0, [r5, #8] - movs r2, #0xb0 - subs r2, r2, r4 - lsrs r2, r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r1, _081C9F18 - str r1, [sp] - movs r1, #0 - str r1, [sp, #4] - str r6, [sp, #8] - movs r1, #1 - movs r3, #2 - bl AddTextPrinterParameterized3 - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081C9F14: .4byte gUnknown_85F283C -_081C9F18: .4byte gUnknown_85F2874 - thumb_func_end sub_081C9EC0 - - thumb_func_start sub_081C9F1C -sub_081C9F1C: @ 0x081C9F1C - push {r4, r5, r6, lr} - sub sp, #0xc - movs r0, #2 - bl GetSubstructPtr - adds r5, r0, #0 - ldr r6, _081C9F68 - movs r2, #1 - rsbs r2, r2, #0 - movs r0, #1 - adds r1, r6, #0 - bl sub_08005DAC - adds r4, r0, #0 - ldrb r0, [r5, #8] - movs r1, #0x66 - bl FillWindowPixelBuffer - ldrb r0, [r5, #8] - movs r2, #0xb0 - subs r2, r2, r4 - lsrs r2, r2, #1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r1, _081C9F6C - str r1, [sp] - movs r1, #0 - str r1, [sp, #4] - str r6, [sp, #8] - movs r1, #1 - movs r3, #2 - bl AddTextPrinterParameterized3 - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081C9F68: .4byte gUnknown_85CB5DC -_081C9F6C: .4byte gUnknown_85F2877 - thumb_func_end sub_081C9F1C - - thumb_func_start sub_081C9F70 -sub_081C9F70: @ 0x081C9F70 - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081C9F70 - - thumb_func_start sub_081C9F80 -sub_081C9F80: @ 0x081C9F80 - push {r4, lr} - movs r0, #2 - bl GetSubstructPtr - adds r4, r0, #0 - ldr r0, _081C9F9C - movs r1, #2 - bl CreateTask - strb r0, [r4, #0xa] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081C9F9C: .4byte sub_081C9FB4 - thumb_func_end sub_081C9F80 - - thumb_func_start sub_081C9FA0 -sub_081C9FA0: @ 0x081C9FA0 - push {lr} - movs r0, #2 - bl GetSubstructPtr - ldrb r0, [r0, #0xa] - bl DestroyTask - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081C9FA0 - - thumb_func_start sub_081C9FB4 -sub_081C9FB4: @ 0x081C9FB4 - push {lr} - movs r0, #3 - movs r1, #0x80 - movs r2, #1 - bl ChangeBgX - pop {r0} - bx r0 - thumb_func_end sub_081C9FB4 - - thumb_func_start sub_081C9FC4 -sub_081C9FC4: @ 0x081C9FC4 - push {r4, r5, lr} - ldr r0, _081C9FF4 - movs r1, #3 - bl CreateTask - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r5, _081C9FF8 - adds r0, r4, #0 - movs r1, #1 - adds r2, r5, #0 - bl SetWordTaskArg - adds r5, #0xc - adds r0, r4, #0 - movs r1, #3 - adds r2, r5, #0 - bl SetWordTaskArg - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081C9FF4: .4byte sub_081CA05C -_081C9FF8: .4byte gUnknown_85F163E - thumb_func_end sub_081C9FC4 - - thumb_func_start Overworld_ResetStateAfterFly -Overworld_ResetStateAfterFly: @ 0x081C9FFC - push {lr} - ldr r0, _081CA00C - movs r1, #0x31 - movs r2, #4 - bl ClearBottomWindow - pop {r0} - bx r0 - .align 2, 0 -_081CA00C: .4byte gUnknown_85F164A - thumb_func_end Overworld_ResetStateAfterFly - - thumb_func_start sub_081CA010 -sub_081CA010: @ 0x081CA010 - push {r4, r5, lr} - ldr r0, _081CA040 - movs r1, #3 - bl CreateTask - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r5, _081CA044 - adds r0, r4, #0 - movs r1, #1 - adds r2, r5, #0 - bl SetWordTaskArg - subs r5, #0xc - adds r0, r4, #0 - movs r1, #3 - adds r2, r5, #0 - bl SetWordTaskArg - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081CA040: .4byte sub_081CA05C -_081CA044: .4byte gUnknown_85F164A - thumb_func_end sub_081CA010 - - thumb_func_start sub_081CA048 -sub_081CA048: @ 0x081CA048 - push {lr} - ldr r0, _081CA058 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_081CA058: .4byte sub_081CA05C - thumb_func_end sub_081CA048 - - thumb_func_start sub_081CA05C -sub_081CA05C: @ 0x081CA05C - push {r4, r5, r6, lr} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r4, r6, #2 - adds r4, r4, r6 - lsls r4, r4, #3 - ldr r0, _081CA0BC - adds r4, r4, r0 - adds r0, r6, #0 - movs r1, #1 - bl GetWordTaskArg - adds r5, r0, #0 - adds r0, r6, #0 - movs r1, #3 - bl GetWordTaskArg - adds r1, r0, #0 - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - str r0, [sp] - add r0, sp, #8 - str r0, [sp, #4] - adds r0, r5, #0 - movs r2, #2 - movs r3, #0xc - bl sub_081C717C - add r0, sp, #8 - movs r1, #0x31 - movs r2, #4 - bl LoadPalette - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #0xc - bne _081CA0B4 - adds r0, r6, #0 - bl DestroyTask -_081CA0B4: - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081CA0BC: .4byte gUnknown_3005B68 - thumb_func_end sub_081CA05C - - thumb_func_start sub_081CA0C0 -sub_081CA0C0: @ 0x081CA0C0 - push {lr} - bl TransferPlttBuffer - bl LoadOam - bl ProcessSpriteCopyRequests - bl ScanlineEffect_InitHBlankDmaTransfer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081CA0C0 - - thumb_func_start sub_081CA0D8 -sub_081CA0D8: @ 0x081CA0D8 - push {lr} - movs r0, #0x50 - movs r1, #0x90 - bl SetGpuReg - movs r0, #0x54 - movs r1, #0 - bl SetGpuReg - movs r1, #0x80 - lsls r1, r1, #6 - movs r0, #0 - bl SetGpuRegBits - movs r0, #0x48 - movs r1, #0x3f - bl SetGpuRegBits - movs r0, #0x4a - movs r1, #0x1f - bl SetGpuRegBits - movs r0, #0x44 - movs r1, #0xa0 - bl SetGpuRegBits - bl ScanlineEffect_Stop - bl sub_081CA1E8 - ldr r2, _081CA134 - ldr r0, [r2] - ldr r1, [r2, #4] - ldr r2, [r2, #8] - bl ScanlineEffect_SetParams - ldr r0, _081CA138 - bl sub_081C6DC0 - ldr r0, _081CA13C - movs r1, #3 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_081CA134: .4byte gUnknown_85F28EC -_081CA138: .4byte sub_081CA0C0 -_081CA13C: .4byte sub_081CA198 - thumb_func_end sub_081CA0D8 - - thumb_func_start sub_081CA140 -sub_081CA140: @ 0x081CA140 - push {lr} - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - movs r1, #0x80 - lsls r1, r1, #6 - movs r0, #0 - bl ClearGpuRegBits - bl ScanlineEffect_Stop - ldr r0, _081CA170 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - bl SetPokenavVBlankCallback - pop {r0} - bx r0 - .align 2, 0 -_081CA170: .4byte sub_081CA198 - thumb_func_end sub_081CA140 - - thumb_func_start sub_081CA174 -sub_081CA174: @ 0x081CA174 - push {lr} - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081CA174 - - thumb_func_start sub_081CA184 -sub_081CA184: @ 0x081CA184 - push {lr} - bl sub_081CA1E8 - movs r0, #0x50 - movs r1, #0x90 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081CA184 - - thumb_func_start sub_081CA198 -sub_081CA198: @ 0x081CA198 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _081CA1E0 - adds r2, r1, r0 - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - lsls r0, r0, #0x10 - cmp r0, #0 - ble _081CA1DC - movs r0, #0 - strh r0, [r2] - ldrh r0, [r2, #2] - adds r0, #3 - movs r1, #0x7f - ands r0, r1 - strh r0, [r2, #2] - ldr r1, _081CA1E4 - movs r3, #2 - ldrsh r0, [r2, r3] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - lsls r1, r1, #0x10 - asrs r1, r1, #0x15 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x54 - bl SetGpuReg -_081CA1DC: - pop {r0} - bx r0 - .align 2, 0 -_081CA1E0: .4byte gUnknown_3005B68 -_081CA1E4: .4byte gUnknown_82FA8CC - thumb_func_end sub_081CA198 - - thumb_func_start sub_081CA1E8 -sub_081CA1E8: @ 0x081CA1E8 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - sub sp, #8 - bl sub_081C9040 - adds r4, r0, #0 - bl sub_081C9050 - ldr r2, _081CA274 - lsls r1, r4, #3 - subs r1, r1, r4 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r2, [r1, #2] - adds r4, r2, #0 - muls r4, r0, r4 - ldrh r1, [r1] - adds r4, r4, r1 - subs r4, #8 - mov r0, sp - movs r6, #0 - strh r6, [r0] - ldr r5, _081CA278 - ldr r0, _081CA27C - mov r8, r0 - mov r0, sp - adds r1, r5, #0 - mov r2, r8 - bl CpuSet - mov r0, sp - adds r0, #2 - strh r6, [r0] - movs r1, #0xf0 - lsls r1, r1, #3 - adds r1, r1, r5 - mov sb, r1 - mov r2, r8 - bl CpuSet - add r0, sp, #4 - ldr r1, _081CA280 - adds r6, r1, #0 - strh r6, [r0] - lsls r4, r4, #1 - adds r5, r4, r5 - ldr r1, _081CA284 - mov r8, r1 - adds r1, r5, #0 - mov r2, r8 - bl CpuSet - mov r0, sp - adds r0, #6 - strh r6, [r0] - add r4, sb - adds r1, r4, #0 - mov r2, r8 - bl CpuSet - add sp, #8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081CA274: .4byte gUnknown_85F27A8 -_081CA278: .4byte gUnknown_20388C8 -_081CA27C: .4byte 0x010000A0 -_081CA280: .4byte 0x000072F0 -_081CA284: .4byte 0x01000010 - thumb_func_end sub_081CA1E8 - - thumb_func_start sub_081CA288 -sub_081CA288: @ 0x081CA288 - push {lr} - bl sub_081CA174 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081CA288 - - thumb_func_start sub_081CA294 -sub_081CA294: @ 0x081CA294 - push {r4, lr} - movs r1, #0xd4 - lsls r1, r1, #1 - movs r0, #5 - bl AllocSubstruct - adds r4, r0, #0 - cmp r4, #0 - beq _081CA2C8 - ldr r0, _081CA2C0 - str r0, [r4, #0x18] - movs r0, #0 - strh r0, [r4, #8] - str r0, [r4, #0x10] - ldr r0, _081CA2C4 - movs r1, #1 - bl CreateLoopedTask - str r0, [r4, #0x14] - movs r0, #1 - b _081CA2CA - .align 2, 0 -_081CA2C0: .4byte sub_081CA2F0 -_081CA2C4: .4byte sub_081CA4CC -_081CA2C8: - movs r0, #0 -_081CA2CA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081CA294 - - thumb_func_start sub_081CA2D0 -sub_081CA2D0: @ 0x081CA2D0 - push {lr} - movs r0, #5 - bl GetSubstructPtr - ldr r1, [r0, #0x18] - bl _call_via_r1 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CA2D0 - - thumb_func_start sub_081CA2E4 -sub_081CA2E4: @ 0x081CA2E4 - push {lr} - movs r0, #5 - bl FreePokenavSubstruct - pop {r0} - bx r0 - thumb_func_end sub_081CA2E4 - - thumb_func_start sub_081CA2F0 -sub_081CA2F0: @ 0x081CA2F0 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r3, _081CA304 - ldrh r1, [r3, #0x30] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _081CA308 - movs r0, #2 - b _081CA3A0 - .align 2, 0 -_081CA304: .4byte gUnknown_3002360 -_081CA308: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _081CA314 - movs r0, #1 - b _081CA3A0 -_081CA314: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _081CA320 - movs r0, #4 - b _081CA3A0 -_081CA320: - movs r0, #0x10 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0 - beq _081CA330 - movs r0, #3 - b _081CA3A0 -_081CA330: - ldrh r1, [r3, #0x2e] - movs r5, #1 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _081CA37C - ldr r0, _081CA364 - str r0, [r4, #0x18] - strh r2, [r4] - bl GetSelectedMatchCall - lsls r0, r0, #2 - adds r1, r4, r0 - ldrb r0, [r1, #0x1c] - cmp r0, #0 - beq _081CA35A - ldrh r0, [r1, #0x1e] - bl sub_081D0F04 - cmp r0, #0 - beq _081CA36C -_081CA35A: - ldr r0, _081CA368 - str r0, [r4, #4] - movs r0, #2 - strh r0, [r4, #2] - b _081CA372 - .align 2, 0 -_081CA364: .4byte sub_081CA3B0 -_081CA368: .4byte gUnknown_85F3E96 -_081CA36C: - ldr r0, _081CA378 - str r0, [r4, #4] - strh r5, [r4, #2] -_081CA372: - movs r0, #5 - b _081CA3A0 - .align 2, 0 -_081CA378: .4byte gUnknown_85F3E94 -_081CA37C: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081CA39E - bl GetPokenavMode - cmp r0, #1 - beq _081CA398 - ldr r0, _081CA394 - str r0, [r4, #0x18] - movs r0, #0xf - b _081CA3A0 - .align 2, 0 -_081CA394: .4byte sub_081CA3A8 -_081CA398: - movs r0, #0x20 - bl sub_080A306C -_081CA39E: - movs r0, #0 -_081CA3A0: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CA2F0 - - thumb_func_start sub_081CA3A8 -sub_081CA3A8: @ 0x081CA3A8 - ldr r0, _081CA3AC - bx lr - .align 2, 0 -_081CA3AC: .4byte 0x000186A4 - thumb_func_end sub_081CA3A8 - - thumb_func_start sub_081CA3B0 -sub_081CA3B0: @ 0x081CA3B0 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _081CA3CC - ldrh r1, [r2, #0x2e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _081CA3D0 - ldrh r0, [r4] - cmp r0, #0 - beq _081CA3D0 - subs r0, #1 - b _081CA3E4 - .align 2, 0 -_081CA3CC: .4byte gUnknown_3002360 -_081CA3D0: - ldrh r1, [r2, #0x2e] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _081CA3EA - ldrh r0, [r4] - ldrh r1, [r4, #2] - cmp r0, r1 - bhs _081CA3EA - adds r0, #1 -_081CA3E4: - strh r0, [r4] - movs r0, #6 - b _081CA458 -_081CA3EA: - ldrh r1, [r2, #0x2e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081CA444 - ldrh r1, [r4] - ldr r0, [r4, #4] - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - beq _081CA438 - cmp r0, #1 - bgt _081CA40A - cmp r0, #0 - beq _081CA410 - b _081CA444 -_081CA40A: - cmp r0, #2 - bne _081CA444 - b _081CA452 -_081CA410: - bl GetPokenavMode - cmp r0, #1 - bne _081CA41E - movs r0, #2 - bl SetPokenavMode -_081CA41E: - ldr r0, _081CA430 - str r0, [r4, #0x18] - bl sub_081CA974 - cmp r0, #0 - beq _081CA434 - movs r0, #9 - b _081CA458 - .align 2, 0 -_081CA430: .4byte sub_081CA4A4 -_081CA434: - movs r0, #8 - b _081CA458 -_081CA438: - ldr r0, _081CA440 - str r0, [r4, #0x18] - movs r0, #0xb - b _081CA458 - .align 2, 0 -_081CA440: .4byte sub_081CA464 -_081CA444: - ldrh r1, [r2, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _081CA452 - movs r0, #0 - b _081CA458 -_081CA452: - ldr r0, _081CA460 - str r0, [r4, #0x18] - movs r0, #7 -_081CA458: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081CA460: .4byte sub_081CA2F0 - thumb_func_end sub_081CA3B0 - - thumb_func_start sub_081CA464 -sub_081CA464: @ 0x081CA464 - push {lr} - adds r3, r0, #0 - ldr r2, _081CA478 - ldrh r1, [r2, #0x30] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _081CA47C - movs r0, #0xc - b _081CA49C - .align 2, 0 -_081CA478: .4byte gUnknown_3002360 -_081CA47C: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _081CA488 - movs r0, #0xd - b _081CA49C -_081CA488: - ldrh r1, [r2, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _081CA496 - movs r0, #0 - b _081CA49C -_081CA496: - ldr r0, _081CA4A0 - str r0, [r3, #0x18] - movs r0, #0xe -_081CA49C: - pop {r1} - bx r1 - .align 2, 0 -_081CA4A0: .4byte sub_081CA2F0 - thumb_func_end sub_081CA464 - - thumb_func_start sub_081CA4A4 -sub_081CA4A4: @ 0x081CA4A4 - push {lr} - adds r2, r0, #0 - ldr r0, _081CA4B8 - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _081CA4BC - movs r0, #0 - b _081CA4C2 - .align 2, 0 -_081CA4B8: .4byte gUnknown_3002360 -_081CA4BC: - ldr r0, _081CA4C8 - str r0, [r2, #0x18] - movs r0, #0xa -_081CA4C2: - pop {r1} - bx r1 - .align 2, 0 -_081CA4C8: .4byte sub_081CA2F0 - thumb_func_end sub_081CA4A4 - - thumb_func_start sub_081CA4CC -sub_081CA4CC: @ 0x081CA4CC - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - movs r0, #5 - bl GetSubstructPtr - adds r4, r0, #0 - cmp r5, #1 - beq _081CA4F8 - cmp r5, #1 - bgt _081CA4E6 - cmp r5, #0 - beq _081CA4F0 - b _081CA5AC -_081CA4E6: - cmp r5, #2 - beq _081CA548 - cmp r5, #3 - beq _081CA5A8 - b _081CA5AC -_081CA4F0: - strh r5, [r4, #8] - strh r5, [r4, #0xa] -_081CA4F4: - movs r0, #1 - b _081CA5AE -_081CA4F8: - movs r6, #0 - ldrh r5, [r4, #8] -_081CA4FC: - adds r0, r5, #0 - bl MatchCallFlagGetByIndex - cmp r0, #0 - beq _081CA52C - ldrh r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r4, r0 - strh r5, [r0, #0x1e] - ldrh r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r4, r0 - movs r1, #1 - strb r1, [r0, #0x1c] - adds r0, r5, #0 - bl MatchCallMapSecGetByIndex - ldrh r1, [r4, #0xa] - lsls r1, r1, #2 - adds r1, r4, r1 - strb r0, [r1, #0x1d] - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] -_081CA52C: - ldrh r0, [r4, #8] - adds r1, r0, #1 - movs r2, #0 - strh r1, [r4, #8] - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x14 - bhi _081CA5A2 - adds r6, #1 - adds r5, #1 - cmp r6, #0x1d - ble _081CA4FC - movs r0, #3 - b _081CA5AE -_081CA548: - movs r6, #0 - ldrh r5, [r4, #8] - movs r7, #0 -_081CA54E: - ldrh r0, [r4, #8] - bl sub_081D12F4 - cmp r0, #0 - bne _081CA588 - ldrh r0, [r4, #8] - bl sub_081CA5B4 - cmp r0, #0 - beq _081CA588 - ldrh r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r4, r0 - ldrh r1, [r4, #8] - strh r1, [r0, #0x1e] - ldrh r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r4, r0 - strb r7, [r0, #0x1c] - adds r0, r5, #0 - bl sub_081CA86C - ldrh r1, [r4, #0xa] - lsls r1, r1, #2 - adds r1, r4, r1 - strb r0, [r1, #0x1d] - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] -_081CA588: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x4d - bhi _081CA4F4 - adds r6, #1 - adds r5, #1 - cmp r6, #0x1d - ble _081CA54E - movs r0, #3 - b _081CA5AE -_081CA5A2: - strh r1, [r4, #0xc] - strh r2, [r4, #8] - b _081CA4F4 -_081CA5A8: - movs r0, #1 - str r0, [r4, #0x10] -_081CA5AC: - movs r0, #4 -_081CA5AE: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_081CA4CC - - thumb_func_start sub_081CA5B4 -sub_081CA5B4: @ 0x081CA5B4 - push {lr} - cmp r0, #0x4d - ble _081CA5BE - movs r0, #0 - b _081CA5D0 -_081CA5BE: - movs r1, #0xae - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_081CA5D0: - pop {r1} - bx r1 - thumb_func_end sub_081CA5B4 - - thumb_func_start sub_081CA5D4 -sub_081CA5D4: @ 0x081CA5D4 - push {lr} - movs r0, #5 - bl GetSubstructPtr - ldr r0, [r0, #0x10] - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CA5D4 - - thumb_func_start sub_081CA5E4 -sub_081CA5E4: @ 0x081CA5E4 - push {lr} - movs r0, #5 - bl GetSubstructPtr - ldrh r0, [r0, #0xa] - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CA5E4 - - thumb_func_start sub_081CA5F4 -sub_081CA5F4: @ 0x081CA5F4 - push {lr} - movs r0, #5 - bl GetSubstructPtr - ldrh r0, [r0, #0xc] - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CA5F4 - - thumb_func_start unref_sub_81CAE58 -unref_sub_81CAE58: @ 0x081CA604 - push {lr} - movs r0, #5 - bl GetSubstructPtr - adds r1, r0, #0 - ldrh r0, [r1, #0xa] - ldrh r1, [r1, #0xc] - subs r0, r0, r1 - pop {r1} - bx r1 - thumb_func_end unref_sub_81CAE58 - - thumb_func_start unref_sub_81CAE6C -unref_sub_81CAE6C: @ 0x081CA618 - push {r4, lr} - adds r4, r0, #0 - movs r0, #5 - bl GetSubstructPtr - adds r1, r0, #0 - ldrh r0, [r1, #0xc] - adds r4, r4, r0 - ldrh r0, [r1, #0xa] - cmp r4, r0 - bge _081CA636 - lsls r0, r4, #2 - adds r0, r1, r0 - ldrh r0, [r0, #0x1e] - b _081CA638 -_081CA636: - movs r0, #0x4e -_081CA638: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end unref_sub_81CAE6C - - thumb_func_start sub_081CA640 -sub_081CA640: @ 0x081CA640 - push {lr} - movs r0, #5 - bl GetSubstructPtr - adds r0, #0x1c - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CA640 - - thumb_func_start sub_081CA650 -sub_081CA650: @ 0x081CA650 - push {r4, lr} - adds r4, r0, #0 - movs r0, #5 - bl GetSubstructPtr - lsls r4, r4, #2 - adds r0, r0, r4 - ldrb r0, [r0, #0x1d] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CA650 - - thumb_func_start sub_081CA668 -sub_081CA668: @ 0x081CA668 - push {r4, lr} - adds r4, r0, #0 - movs r0, #5 - bl GetSubstructPtr - lsls r1, r4, #2 - adds r1, r0, r1 - ldrb r0, [r1, #0x1c] - cmp r0, #0 - bne _081CA680 - ldrh r4, [r1, #0x1e] - b _081CA688 -_081CA680: - ldrh r0, [r1, #0x1e] - bl MatchCall_GetRematchTableIdx - adds r4, r0, #0 -_081CA688: - cmp r4, #0x4e - beq _081CA6A8 - ldr r0, _081CA6A0 - ldr r0, [r0] - ldr r1, _081CA6A4 - adds r0, r0, r1 - adds r0, r0, r4 - ldrb r1, [r0] - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - b _081CA6AA - .align 2, 0 -_081CA6A0: .4byte gUnknown_3005AEC -_081CA6A4: .4byte 0x000009CA -_081CA6A8: - movs r0, #0 -_081CA6AA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081CA668 - - thumb_func_start sub_081CA6B0 -sub_081CA6B0: @ 0x081CA6B0 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #5 - bl GetSubstructPtr - lsls r1, r4, #2 - adds r1, r0, r1 - ldrb r0, [r1, #0x1c] - cmp r0, #0 - bne _081CA6DC - ldrh r0, [r1, #0x1e] - bl GetTrainerIdxByRematchIdx - adds r4, r0, #0 - ldr r1, _081CA6D8 - lsls r0, r4, #5 - adds r0, r0, r1 - ldrb r0, [r0, #3] - b _081CA710 - .align 2, 0 -_081CA6D8: .4byte gUnknown_82E383C -_081CA6DC: - ldrh r5, [r1, #0x1e] - adds r0, r5, #0 - bl MatchCall_GetRematchTableIdx - adds r4, r0, #0 - cmp r4, #0x4e - bne _081CA700 - adds r0, r5, #0 - bl sub_081D12CC - adds r4, r0, #0 - ldr r0, _081CA6FC - adds r0, r4, r0 - ldrb r0, [r0] - b _081CA710 - .align 2, 0 -_081CA6FC: .4byte gUnknown_82EFF00 -_081CA700: - adds r0, r4, #0 - bl GetTrainerIdxByRematchIdx - adds r4, r0, #0 - ldr r0, _081CA718 - lsls r1, r4, #5 - adds r1, r1, r0 - ldrb r0, [r1, #3] -_081CA710: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081CA718: .4byte gUnknown_82E383C - thumb_func_end sub_081CA6B0 - - thumb_func_start sub_081CA71C -sub_081CA71C: @ 0x081CA71C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - movs r0, #5 - bl GetSubstructPtr - adds r4, r0, #0 - movs r0, #0 - strb r0, [r6] - ldr r0, _081CA740 - ldrb r0, [r0, #0x17] - bl Overworld_MapTypeAllowsTeleportAndFly - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081CA748 - ldr r0, _081CA744 - b _081CA772 - .align 2, 0 -_081CA740: .4byte gUnknown_2036FB8 -_081CA744: .4byte gUnknown_85F3E99 -_081CA748: - lsls r0, r5, #2 - adds r1, r4, r0 - ldrb r0, [r1, #0x1c] - cmp r0, #0 - bne _081CA768 - ldrh r0, [r1, #0x1e] - bl GetTrainerIdxByRematchIdx - ldr r1, _081CA764 - bl SelectMatchCallMessage - strb r0, [r6] - b _081CA770 - .align 2, 0 -_081CA764: .4byte gUnknown_2021C7C -_081CA768: - ldrh r0, [r1, #0x1e] - ldr r1, _081CA778 - bl MatchCall_GetMessage -_081CA770: - ldr r0, _081CA778 -_081CA772: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_081CA778: .4byte gUnknown_2021C7C - thumb_func_end sub_081CA71C - - thumb_func_start GroundEffect_DeepSandTracks -GroundEffect_DeepSandTracks: @ 0x081CA77C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #5 - bl GetSubstructPtr - lsls r4, r4, #2 - adds r4, r0, r4 - ldrb r0, [r4, #0x1c] - cmp r0, #0 - beq _081CA7A8 - ldrh r0, [r4, #0x1e] - bl MatchCall_GetRematchTableIdx - adds r1, r0, #0 - cmp r1, #0x4e - bne _081CA7AA - ldrh r0, [r4, #0x1e] - adds r1, r5, #0 - bl sub_081D123C - b _081CA7B6 -_081CA7A8: - ldrh r1, [r4, #0x1e] -_081CA7AA: - ldr r2, _081CA7BC - lsls r0, r5, #2 - lsls r1, r1, #4 - adds r0, r0, r1 - adds r0, r0, r2 - ldr r0, [r0] -_081CA7B6: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081CA7BC: .4byte gUnknown_85F39B4 - thumb_func_end GroundEffect_DeepSandTracks - - thumb_func_start sub_081CA7C0 -sub_081CA7C0: @ 0x081CA7C0 - push {lr} - movs r0, #5 - bl GetSubstructPtr - ldrh r0, [r0] - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CA7C0 - - thumb_func_start sub_081CA7D0 -sub_081CA7D0: @ 0x081CA7D0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #5 - bl GetSubstructPtr - adds r1, r0, #0 - ldrh r0, [r1, #2] - cmp r0, r4 - blt _081CA7EA - ldr r0, [r1, #4] - adds r0, r0, r4 - ldrb r0, [r0] - b _081CA7EC -_081CA7EA: - movs r0, #3 -_081CA7EC: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CA7D0 - - thumb_func_start DoHitAnimHealthboxEffect -DoHitAnimHealthboxEffect: @ 0x081CA7F4 - push {r4, r5, lr} - sub sp, #8 - adds r4, r0, #0 - adds r5, r1, #0 - adds r0, r5, #0 - movs r1, #0 - movs r2, #0xf - bl StringFill - ldrb r0, [r4] - cmp r0, #0 - bne _081CA834 - ldrh r0, [r4, #2] - bl GetTrainerIdxByRematchIdx - lsls r0, r0, #5 - ldr r1, _081CA82C - adds r0, r0, r1 - ldrb r2, [r0, #1] - movs r1, #0xb - muls r1, r2, r1 - ldr r2, _081CA830 - adds r1, r1, r2 - str r1, [sp] - adds r0, #4 - str r0, [sp, #4] - b _081CA83E - .align 2, 0 -_081CA82C: .4byte gUnknown_82E383C -_081CA830: .4byte gUnknown_82E3564 -_081CA834: - ldrh r0, [r4, #2] - add r2, sp, #4 - mov r1, sp - bl sub_081D1178 -_081CA83E: - ldr r1, [sp] - cmp r1, #0 - beq _081CA864 - ldr r0, [sp, #4] - cmp r0, #0 - beq _081CA864 - adds r0, r5, #0 - bl StringCopy - movs r4, #0 - strb r4, [r0] - adds r0, r5, #0 - adds r0, #0xa - ldr r1, [sp, #4] - bl StringCopy - strb r4, [r0] - movs r0, #0xff - strb r0, [r5, #0xf] -_081CA864: - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end DoHitAnimHealthboxEffect - - thumb_func_start sub_081CA86C -sub_081CA86C: @ 0x081CA86C - push {lr} - ldr r1, _081CA884 - lsls r0, r0, #4 - adds r0, r0, r1 - ldrh r2, [r0, #0xa] - ldrh r1, [r0, #0xc] - adds r0, r2, #0 - bl Overworld_GetMapHeaderByGroupAndId - ldrb r0, [r0, #0x14] - pop {r1} - bx r1 - .align 2, 0 -_081CA884: .4byte gUnknown_852AD40 - thumb_func_end sub_081CA86C - - thumb_func_start sub_081CA888 -sub_081CA888: @ 0x081CA888 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - movs r0, #5 - bl GetSubstructPtr - adds r7, r0, #0 - movs r6, #1 - adds r5, #1 - ldrh r0, [r7, #0xa] - cmp r5, r0 - bge _081CA8C4 - lsls r0, r5, #2 - adds r0, #0x1c - adds r4, r0, r7 -_081CA8A4: - ldrb r0, [r4] - cmp r0, #0 - beq _081CA8B4 - ldrh r0, [r4, #2] - bl sub_081D0F04 - cmp r0, #0 - beq _081CA8B8 -_081CA8B4: - adds r0, r6, #0 - b _081CA8C6 -_081CA8B8: - adds r6, #1 - adds r4, #4 - adds r5, #1 - ldrh r0, [r7, #0xa] - cmp r5, r0 - blt _081CA8A4 -_081CA8C4: - movs r0, #0 -_081CA8C6: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_081CA888 - - thumb_func_start sub_081CA8CC -sub_081CA8CC: @ 0x081CA8CC - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #5 - bl GetSubstructPtr - adds r1, r0, #0 - movs r6, #1 - rsbs r6, r6, #0 - subs r5, #1 - cmp r5, #0 - blt _081CA906 - lsls r0, r5, #2 - adds r0, #0x1c - adds r4, r0, r1 -_081CA8E8: - ldrb r0, [r4] - cmp r0, #0 - beq _081CA8F8 - ldrh r0, [r4, #2] - bl sub_081D0F04 - cmp r0, #0 - beq _081CA8FC -_081CA8F8: - adds r0, r6, #0 - b _081CA908 -_081CA8FC: - subs r6, #1 - subs r4, #4 - subs r5, #1 - cmp r5, #0 - bge _081CA8E8 -_081CA906: - movs r0, #0 -_081CA908: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CA8CC - - thumb_func_start unref_sub_81CB16C -unref_sub_81CB16C: @ 0x081CA910 - push {r4, lr} - movs r4, #0 -_081CA914: - adds r0, r4, #0 - bl sub_081CA5B4 - cmp r0, #0 - beq _081CA92E - ldr r0, _081CA95C - ldr r0, [r0] - ldr r1, _081CA960 - adds r0, r0, r1 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0 - bne _081CA956 -_081CA92E: - adds r4, #1 - cmp r4, #0x4d - ble _081CA914 - movs r4, #0 -_081CA936: - adds r0, r4, #0 - bl MatchCallFlagGetByIndex - cmp r0, #0 - beq _081CA964 - adds r0, r4, #0 - bl MatchCall_GetRematchTableIdx - ldr r1, _081CA95C - ldr r1, [r1] - ldr r2, _081CA960 - adds r1, r1, r2 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0 - beq _081CA964 -_081CA956: - movs r0, #1 - b _081CA96C - .align 2, 0 -_081CA95C: .4byte gUnknown_3005AEC -_081CA960: .4byte 0x000009CA -_081CA964: - adds r4, #1 - cmp r4, #0x14 - ble _081CA936 - movs r0, #0 -_081CA96C: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end unref_sub_81CB16C - - thumb_func_start sub_081CA974 -sub_081CA974: @ 0x081CA974 - push {r4, lr} - movs r0, #5 - bl GetSubstructPtr - adds r4, r0, #0 - bl GetSelectedMatchCall - adds r1, r0, #0 - lsls r0, r1, #2 - adds r4, r4, r0 - ldrb r0, [r4, #0x1c] - cmp r0, #0 - bne _081CA9BC - adds r0, r1, #0 - bl sub_081CA650 - ldr r1, _081CA9B0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r1, #0x14] - cmp r0, r1 - bne _081CA9FC - ldr r0, _081CA9B4 - ldr r0, [r0] - ldr r1, _081CA9B8 - adds r0, r0, r1 - ldrh r4, [r4, #0x1e] - adds r0, r0, r4 - ldrb r0, [r0] - b _081CA9EA - .align 2, 0 -_081CA9B0: .4byte gUnknown_2036FB8 -_081CA9B4: .4byte gUnknown_3005AEC -_081CA9B8: .4byte 0x000009CA -_081CA9BC: - ldrh r0, [r4, #0x1e] - cmp r0, #0xb - bne _081CA9FC - adds r0, r1, #0 - bl sub_081CA650 - ldr r1, _081CA9F4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r1, #0x14] - cmp r0, r1 - bne _081CA9FC - ldr r0, _081CA9F8 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081CA9FC - movs r0, #0x5b - bl FlagGet - lsls r0, r0, #0x18 -_081CA9EA: - cmp r0, #0 - bne _081CA9FC - movs r0, #1 - b _081CA9FE - .align 2, 0 -_081CA9F4: .4byte gUnknown_2036FB8 -_081CA9F8: .4byte 0x0000086B -_081CA9FC: - movs r0, #0 -_081CA9FE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081CA974 - - thumb_func_start sub_081CAA04 -sub_081CAA04: @ 0x081CAA04 - push {r4, lr} - ldr r1, _081CAA2C - movs r0, #6 - bl AllocSubstruct - adds r4, r0, #0 - cmp r4, #0 - beq _081CAA38 - movs r0, #0 - strb r0, [r4, #0x19] - ldr r0, _081CAA30 - movs r1, #1 - bl CreateLoopedTask - str r0, [r4, #4] - ldr r0, _081CAA34 - str r0, [r4] - movs r0, #1 - b _081CAA3A - .align 2, 0 -_081CAA2C: .4byte 0x00002048 -_081CAA30: .4byte sub_081CAAC8 -_081CAA34: .4byte sub_081CAAB4 -_081CAA38: - movs r0, #0 -_081CAA3A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081CAA04 - - thumb_func_start sub_081CAA40 -sub_081CAA40: @ 0x081CAA40 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #6 - bl GetSubstructPtr - adds r5, r0, #0 - ldr r0, _081CAA68 - lsls r4, r4, #2 - adds r4, r4, r0 - ldr r0, [r4] - movs r1, #1 - bl CreateLoopedTask - str r0, [r5, #4] - ldr r0, _081CAA6C - str r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081CAA68: .4byte gUnknown_85F4138 -_081CAA6C: .4byte sub_081CAAB4 - thumb_func_end sub_081CAA40 - - thumb_func_start sub_081CAA70 -sub_081CAA70: @ 0x081CAA70 - push {lr} - movs r0, #6 - bl GetSubstructPtr - ldr r0, [r0] - bl _call_via_r0 - pop {r1} - thumb_func_end sub_081CAA70 - - thumb_func_start sub_081CAA80 -sub_081CAA80: @ 0x081CAA80 - bx r1 - .align 2, 0 - thumb_func_end sub_081CAA80 - - thumb_func_start sub_081CAA84 -sub_081CAA84: @ 0x081CAA84 - push {r4, lr} - movs r0, #6 - bl GetSubstructPtr - adds r4, r0, #0 - bl sub_081CBA08 - bl sub_081CB38C - ldrb r0, [r4, #0x12] - bl RemoveWindow - ldrb r0, [r4, #0x10] - bl RemoveWindow - ldrb r0, [r4, #0x14] - bl RemoveWindow - movs r0, #6 - bl FreePokenavSubstruct - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081CAA84 - - thumb_func_start sub_081CAAB4 -sub_081CAAB4: @ 0x081CAAB4 - push {lr} - movs r0, #6 - bl GetSubstructPtr - ldr r0, [r0, #4] - bl IsLoopedTaskActive - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CAAB4 - - thumb_func_start sub_081CAAC8 -sub_081CAAC8: @ 0x081CAAC8 - push {r4, r5, lr} - sub sp, #8 - adds r4, r0, #0 - movs r0, #6 - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #7 - bls _081CAADC - b _081CACA8 -_081CAADC: - lsls r0, r4, #2 - ldr r1, _081CAAE8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081CAAE8: .4byte _081CAAEC -_081CAAEC: @ jump table - .4byte _081CAB0C @ case 0 - .4byte _081CAB78 @ case 1 - .4byte _081CABC8 @ case 2 - .4byte _081CAC0C @ case 3 - .4byte _081CAC26 @ case 4 - .4byte _081CAC38 @ case 5 - .4byte _081CAC4A @ case 6 - .4byte _081CAC8E @ case 7 -_081CAB0C: - ldr r0, _081CAB64 - movs r1, #3 - bl InitBgTemplates - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - ldr r1, _081CAB68 - movs r0, #0 - str r0, [sp] - movs r0, #2 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - ldr r0, _081CAB6C - adds r1, r5, r0 - movs r0, #2 - bl SetBgTilemapBuffer - ldr r1, _081CAB70 - movs r0, #2 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - movs r0, #2 - bl CopyBgTilemapBufferToVram - ldr r0, _081CAB74 - movs r1, #0x20 - movs r2, #0x20 - bl ClearBottomWindow - movs r0, #2 - b _081CABBC - .align 2, 0 -_081CAB64: .4byte gUnknown_85F412C -_081CAB68: .4byte gUnknown_85F3ED0 -_081CAB6C: .4byte 0x00001024 -_081CAB70: .4byte gUnknown_85F3F74 -_081CAB74: .4byte gUnknown_85F3EB0 -_081CAB78: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081CAB84 - b _081CAC9E -_081CAB84: - movs r0, #1 - movs r1, #0 - movs r2, #0 - movs r3, #1 - bl sub_08199A88 - adds r1, r5, #0 - adds r1, #0x24 - movs r0, #1 - bl SetBgTilemapBuffer - movs r1, #0x80 - lsls r1, r1, #5 - movs r0, #0x20 - str r0, [sp] - movs r0, #0x14 - str r0, [sp, #4] - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - ldr r0, _081CABC4 - movs r1, #0x10 - movs r2, #0x20 - bl ClearBottomWindow - movs r0, #1 -_081CABBC: - bl CopyBgTilemapBufferToVram - movs r0, #0 - b _081CACAA - .align 2, 0 -_081CABC4: .4byte gUnknown_85F4080 -_081CABC8: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _081CAC9E - adds r0, r5, #0 - bl sub_081CB780 - ldr r1, _081CAC00 - str r4, [sp] - movs r0, #3 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - ldr r0, _081CAC04 - movs r1, #0x30 - movs r2, #0x20 - bl ClearBottomWindow - ldr r0, _081CAC08 - movs r1, #0x50 - movs r2, #0x20 - bl ClearBottomWindow - movs r0, #0 - b _081CACAA - .align 2, 0 -_081CAC00: .4byte gUnknown_85F4100 -_081CAC04: .4byte gUnknown_85F40A0 -_081CAC08: .4byte gUnknown_85F40C0 -_081CAC0C: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081CAC9E - bl sub_081CA5D4 - cmp r0, #0 - beq _081CAC9E - bl sub_081CB32C - movs r0, #0 - b _081CACAA -_081CAC26: - bl sub_081C79CC - cmp r0, #0 - bne _081CAC9E - adds r0, r5, #0 - bl sub_081CB4E8 - movs r0, #0 - b _081CACAA -_081CAC38: - adds r0, r5, #0 - bl sub_081CB530 - adds r0, r5, #0 - movs r1, #0 - bl sub_081CB640 - movs r0, #0 - b _081CACAA -_081CAC4A: - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg - movs r0, #1 - bl ShowBg - bl sub_081CB968 - movs r0, #3 - bl LoadLeftHeaderGfxForIndex - movs r0, #3 - movs r1, #1 - movs r2, #0 - bl sub_081C7748 - movs r0, #1 - bl sub_081C7280 - movs r0, #0 - b _081CACAA -_081CAC8E: - bl sub_081C72F4 - cmp r0, #0 - bne _081CAC9E - bl sub_081C77B8 - cmp r0, #0 - beq _081CACA2 -_081CAC9E: - movs r0, #2 - b _081CACAA -_081CACA2: - movs r0, #1 - bl sub_081CB3A8 -_081CACA8: - movs r0, #4 -_081CACAA: - add sp, #8 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CAAC8 - - thumb_func_start sub_081CACB4 -sub_081CACB4: @ 0x081CACB4 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #6 - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #1 - beq _081CACF4 - cmp r4, #1 - bgt _081CACCE - cmp r4, #0 - beq _081CACD8 - b _081CAD16 -_081CACCE: - cmp r4, #2 - beq _081CACFC - cmp r4, #3 - beq _081CAD08 - b _081CAD16 -_081CACD8: - movs r0, #5 - bl sub_080A306C - bl MatchCall_MoveCursorDown - cmp r0, #1 - beq _081CACF0 - cmp r0, #1 - bgt _081CAD04 - cmp r0, #0 - bne _081CAD04 - b _081CAD16 -_081CACF0: - movs r0, #7 - b _081CAD18 -_081CACF4: - bl MatchCall_GetMessage_Type2 - cmp r0, #0 - bne _081CAD12 -_081CACFC: - adds r0, r5, #0 - movs r1, #0 - bl sub_081CB640 -_081CAD04: - movs r0, #0 - b _081CAD18 -_081CAD08: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081CAD16 -_081CAD12: - movs r0, #2 - b _081CAD18 -_081CAD16: - movs r0, #4 -_081CAD18: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CACB4 - - thumb_func_start sub_081CAD20 -sub_081CAD20: @ 0x081CAD20 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #6 - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #1 - beq _081CAD60 - cmp r4, #1 - bgt _081CAD3A - cmp r4, #0 - beq _081CAD44 - b _081CAD82 -_081CAD3A: - cmp r4, #2 - beq _081CAD68 - cmp r4, #3 - beq _081CAD74 - b _081CAD82 -_081CAD44: - movs r0, #5 - bl sub_080A306C - bl MatchCall_MoveCursorUp - cmp r0, #1 - beq _081CAD5C - cmp r0, #1 - bgt _081CAD70 - cmp r0, #0 - bne _081CAD70 - b _081CAD82 -_081CAD5C: - movs r0, #7 - b _081CAD84 -_081CAD60: - bl MatchCall_GetMessage_Type2 - cmp r0, #0 - bne _081CAD7E -_081CAD68: - adds r0, r5, #0 - movs r1, #0 - bl sub_081CB640 -_081CAD70: - movs r0, #0 - b _081CAD84 -_081CAD74: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081CAD82 -_081CAD7E: - movs r0, #2 - b _081CAD84 -_081CAD82: - movs r0, #4 -_081CAD84: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CAD20 - - thumb_func_start sub_081CAD8C -sub_081CAD8C: @ 0x081CAD8C - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #6 - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #1 - beq _081CADCC - cmp r4, #1 - bgt _081CADA6 - cmp r4, #0 - beq _081CADB0 - b _081CADEE -_081CADA6: - cmp r4, #2 - beq _081CADD4 - cmp r4, #3 - beq _081CADE0 - b _081CADEE -_081CADB0: - movs r0, #5 - bl sub_080A306C - bl MatchCall_PageDown - cmp r0, #1 - beq _081CADC8 - cmp r0, #1 - bgt _081CADDC - cmp r0, #0 - bne _081CADDC - b _081CADEE -_081CADC8: - movs r0, #7 - b _081CADF0 -_081CADCC: - bl MatchCall_GetMessage_Type2 - cmp r0, #0 - bne _081CADEA -_081CADD4: - adds r0, r5, #0 - movs r1, #0 - bl sub_081CB640 -_081CADDC: - movs r0, #0 - b _081CADF0 -_081CADE0: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081CADEE -_081CADEA: - movs r0, #2 - b _081CADF0 -_081CADEE: - movs r0, #4 -_081CADF0: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CAD8C - - thumb_func_start DestroyFog1Sprites -DestroyFog1Sprites: @ 0x081CADF8 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #6 - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #1 - beq _081CAE38 - cmp r4, #1 - bgt _081CAE12 - cmp r4, #0 - beq _081CAE1C - b _081CAE5A -_081CAE12: - cmp r4, #2 - beq _081CAE40 - cmp r4, #3 - beq _081CAE4C - b _081CAE5A -_081CAE1C: - movs r0, #5 - bl sub_080A306C - bl MatchCall_PageUp - cmp r0, #1 - beq _081CAE34 - cmp r0, #1 - bgt _081CAE48 - cmp r0, #0 - bne _081CAE48 - b _081CAE5A -_081CAE34: - movs r0, #7 - b _081CAE5C -_081CAE38: - bl MatchCall_GetMessage_Type2 - cmp r0, #0 - bne _081CAE56 -_081CAE40: - adds r0, r5, #0 - movs r1, #0 - bl sub_081CB640 -_081CAE48: - movs r0, #0 - b _081CAE5C -_081CAE4C: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081CAE5A -_081CAE56: - movs r0, #2 - b _081CAE5C -_081CAE5A: - movs r0, #4 -_081CAE5C: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end DestroyFog1Sprites - - thumb_func_start sub_081CAE64 -sub_081CAE64: @ 0x081CAE64 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #6 - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #0 - beq _081CAE7A - cmp r4, #1 - beq _081CAE90 - b _081CAE9E -_081CAE7A: - movs r0, #5 - bl sub_080A306C - adds r0, r5, #0 - bl sub_081CB6AC - movs r0, #7 - bl sub_081C7364 - movs r0, #0 - b _081CAEA0 -_081CAE90: - adds r0, r5, #0 - bl sub_081CB710 - cmp r0, #0 - beq _081CAE9E - movs r0, #2 - b _081CAEA0 -_081CAE9E: - movs r0, #4 -_081CAEA0: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CAE64 - - thumb_func_start sub_081CAEA8 -sub_081CAEA8: @ 0x081CAEA8 - push {r4, lr} - movs r0, #5 - bl sub_080A306C - movs r0, #6 - bl GetSubstructPtr - adds r4, r0, #0 - bl sub_081CA7C0 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl sub_081CBA98 - movs r0, #4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081CAEA8 - - thumb_func_start sub_081CAED0 -sub_081CAED0: @ 0x081CAED0 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #6 - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #0 - beq _081CAEE6 - cmp r4, #1 - beq _081CAEFC - b _081CAF0A -_081CAEE6: - movs r0, #5 - bl sub_080A306C - adds r0, r5, #0 - bl sub_081CB73C - movs r0, #6 - bl sub_081C7364 - movs r0, #0 - b _081CAF0C -_081CAEFC: - adds r0, r5, #0 - bl sub_081CB750 - cmp r0, #0 - beq _081CAF0A - movs r0, #2 - b _081CAF0C -_081CAF0A: - movs r0, #4 -_081CAF0C: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CAED0 - - thumb_func_start sub_081CAF14 -sub_081CAF14: @ 0x081CAF14 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #6 - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #1 - beq _081CAF48 - cmp r4, #1 - bgt _081CAF2E - cmp r4, #0 - beq _081CAF38 - b _081CAF8E -_081CAF2E: - cmp r4, #2 - beq _081CAF6C - cmp r4, #3 - beq _081CAF80 - b _081CAF8E -_081CAF38: - movs r0, #1 - bl ToggleMatchCallVerticalArrows - adds r0, r5, #0 - bl sub_081CB7A4 - movs r0, #0 - b _081CAF90 -_081CAF48: - adds r0, r5, #0 - bl OpponentHandlePaletteFade - adds r4, r0, #0 - cmp r4, #0 - bne _081CAF8A - adds r0, r5, #0 - bl sub_081CB82C - ldr r0, _081CAF68 - bl sub_080A306C - strb r4, [r5, #0xe] - movs r0, #0 - b _081CAF90 - .align 2, 0 -_081CAF68: .4byte 0x00000107 -_081CAF6C: - adds r0, r5, #0 - bl sub_081CB854 - cmp r0, #0 - bne _081CAF8A - adds r0, r5, #0 - bl sub_081CB8AC - movs r0, #0 - b _081CAF90 -_081CAF80: - adds r0, r5, #0 - bl sub_081CB8E8 - cmp r0, #0 - beq _081CAF8E -_081CAF8A: - movs r0, #2 - b _081CAF90 -_081CAF8E: - movs r0, #4 -_081CAF90: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CAF14 - - thumb_func_start sub_081CAF98 -sub_081CAF98: @ 0x081CAF98 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #6 - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #1 - beq _081CAFD2 - cmp r4, #1 - bgt _081CAFB2 - cmp r4, #0 - beq _081CAFB8 - b _081CAFF4 -_081CAFB2: - cmp r4, #2 - beq _081CAFE6 - b _081CAFF4 -_081CAFB8: - movs r0, #5 - bl sub_080A306C - adds r0, r5, #0 - bl sub_081CB7E8 - movs r0, #1 - bl ToggleMatchCallVerticalArrows - movs r0, #1 - strb r0, [r5, #0xe] - movs r0, #0 - b _081CAFF6 -_081CAFD2: - adds r0, r5, #0 - bl OpponentHandlePaletteFade - cmp r0, #0 - bne _081CAFF0 - adds r0, r5, #0 - bl sub_081CB86C - movs r0, #0 - b _081CAFF6 -_081CAFE6: - adds r0, r5, #0 - bl sub_081CB894 - cmp r0, #0 - beq _081CAFF4 -_081CAFF0: - movs r0, #2 - b _081CAFF6 -_081CAFF4: - movs r0, #4 -_081CAFF6: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_081CAF98 - - thumb_func_start sub_081CAFFC -sub_081CAFFC: @ 0x081CAFFC - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #6 - bl GetSubstructPtr - adds r4, r0, #0 - movs r6, #0 - cmp r5, #6 - bhi _081CB0A8 - lsls r0, r5, #2 - ldr r1, _081CB018 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081CB018: .4byte _081CB01C -_081CB01C: @ jump table - .4byte _081CB038 @ case 0 - .4byte _081CB04E @ case 1 - .4byte _081CB056 @ case 2 - .4byte _081CB064 @ case 3 - .4byte _081CB06C @ case 4 - .4byte _081CB080 @ case 5 - .4byte _081CB096 @ case 6 -_081CB038: - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _081CB046 - movs r0, #0x84 - lsls r0, r0, #1 - bl sub_080A306C -_081CB046: - movs r0, #5 - bl sub_080A306C - b _081CB0A8 -_081CB04E: - adds r0, r4, #0 - bl sub_081CB930 - b _081CB0A8 -_081CB056: - adds r0, r4, #0 - bl sub_081CB958 - cmp r0, #0 - beq _081CB0A8 -_081CB060: - movs r6, #2 - b _081CB0A8 -_081CB064: - adds r0, r4, #0 - bl sub_081CB73C - b _081CB0A8 -_081CB06C: - adds r0, r4, #0 - bl sub_081CB750 - cmp r0, #0 - beq _081CB078 - movs r6, #2 -_081CB078: - movs r0, #6 - bl sub_081C7364 - b _081CB0A8 -_081CB080: - bl sub_081C73A8 - cmp r0, #0 - bne _081CB060 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _081CB0A0 - bl sub_081C7FE0 - movs r6, #1 - b _081CB0A8 -_081CB096: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081CB060 -_081CB0A0: - movs r0, #0 - bl ToggleMatchCallVerticalArrows - movs r6, #4 -_081CB0A8: - adds r0, r6, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_081CAFFC - - thumb_func_start sub_081CB0B0 -sub_081CB0B0: @ 0x081CB0B0 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #6 - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #1 - beq _081CB0E8 - cmp r4, #1 - bgt _081CB0CA - cmp r4, #0 - beq _081CB0D4 - b _081CB132 -_081CB0CA: - cmp r4, #2 - beq _081CB104 - cmp r4, #3 - beq _081CB114 - b _081CB132 -_081CB0D4: - movs r0, #5 - bl sub_080A306C - bl sub_081C7F24 - adds r0, r5, #0 - bl sub_081CB760 - movs r0, #0 - b _081CB134 -_081CB0E8: - bl sub_081C7FC8 - cmp r0, #0 - bne _081CB12E - adds r0, r5, #0 - bl sub_081CB750 - cmp r0, #0 - bne _081CB12E - movs r0, #8 - bl sub_081C7364 - movs r0, #0 - b _081CB134 -_081CB104: - movs r0, #0 - bl sub_081C7F54 - adds r0, r5, #0 - bl sub_081CBAF0 - movs r0, #0 - b _081CB134 -_081CB114: - bl sub_081C7FC8 - cmp r0, #0 - bne _081CB12E - adds r0, r5, #0 - bl sub_081CBB80 - cmp r0, #0 - bne _081CB12E - bl sub_081C73A8 - cmp r0, #0 - beq _081CB132 -_081CB12E: - movs r0, #2 - b _081CB134 -_081CB132: - movs r0, #4 -_081CB134: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CB0B0 - - thumb_func_start sub_081CB13C -sub_081CB13C: @ 0x081CB13C - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #6 - bl GetSubstructPtr - adds r4, r0, #0 - cmp r5, #4 - bhi _081CB1D4 - lsls r0, r5, #2 - ldr r1, _081CB158 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081CB158: .4byte _081CB15C -_081CB15C: @ jump table - .4byte _081CB170 @ case 0 - .4byte _081CB190 @ case 1 - .4byte _081CB1A8 @ case 2 - .4byte _081CB1B4 @ case 3 - .4byte _081CB1BE @ case 4 -_081CB170: - bl GetMatchCallListTopIndex - bl sub_081CA888 - adds r5, r0, #0 - cmp r5, #0 - beq _081CB1D4 - movs r0, #5 - bl sub_080A306C - strh r5, [r4, #0x16] - adds r0, r4, #0 - bl sub_081CBB74 - movs r0, #0 - b _081CB1D6 -_081CB190: - adds r0, r4, #0 - bl sub_081CBB80 - cmp r0, #0 - bne _081CB1D0 - movs r0, #0x16 - ldrsh r1, [r4, r0] - adds r0, r4, #0 - bl sub_081CB640 - movs r0, #0 - b _081CB1D6 -_081CB1A8: - movs r1, #0x16 - ldrsh r0, [r4, r1] - bl sub_081C7F54 - movs r0, #0 - b _081CB1D6 -_081CB1B4: - adds r0, r4, #0 - bl sub_081CBAF0 - movs r0, #0 - b _081CB1D6 -_081CB1BE: - bl sub_081C7FC8 - cmp r0, #0 - bne _081CB1D0 - adds r0, r4, #0 - bl sub_081CBB80 - cmp r0, #0 - beq _081CB1D4 -_081CB1D0: - movs r0, #2 - b _081CB1D6 -_081CB1D4: - movs r0, #4 -_081CB1D6: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_081CB13C - - thumb_func_start sub_081CB1DC -sub_081CB1DC: @ 0x081CB1DC - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #6 - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #1 - beq _081CB210 - cmp r4, #1 - bgt _081CB1F6 - cmp r4, #0 - beq _081CB1FC - b _081CB240 -_081CB1F6: - cmp r4, #2 - beq _081CB232 - b _081CB240 -_081CB1FC: - movs r0, #5 - bl sub_080A306C - adds r0, r5, #0 - bl sub_081CBB74 - bl sub_081C7F98 - movs r0, #0 - b _081CB242 -_081CB210: - bl sub_081C7FC8 - cmp r0, #0 - bne _081CB23C - adds r0, r5, #0 - bl sub_081CBB80 - cmp r0, #0 - bne _081CB23C - movs r0, #6 - bl sub_081C7364 - adds r0, r5, #0 - bl sub_081CB530 - movs r0, #0 - b _081CB242 -_081CB232: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081CB240 -_081CB23C: - movs r0, #2 - b _081CB242 -_081CB240: - movs r0, #4 -_081CB242: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_081CB1DC - - thumb_func_start sub_081CB248 -sub_081CB248: @ 0x081CB248 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #6 - bl GetSubstructPtr - adds r4, r0, #0 - cmp r5, #4 - bhi _081CB2E0 - lsls r0, r5, #2 - ldr r1, _081CB264 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081CB264: .4byte _081CB268 -_081CB268: @ jump table - .4byte _081CB27C @ case 0 - .4byte _081CB29C @ case 1 - .4byte _081CB2B4 @ case 2 - .4byte _081CB2C0 @ case 3 - .4byte _081CB2CA @ case 4 -_081CB27C: - bl GetMatchCallListTopIndex - bl sub_081CA8CC - adds r5, r0, #0 - cmp r5, #0 - beq _081CB2E0 - movs r0, #5 - bl sub_080A306C - strh r5, [r4, #0x16] - adds r0, r4, #0 - bl sub_081CBB74 - movs r0, #0 - b _081CB2E2 -_081CB29C: - adds r0, r4, #0 - bl sub_081CBB80 - cmp r0, #0 - bne _081CB2DC - movs r0, #0x16 - ldrsh r1, [r4, r0] - adds r0, r4, #0 - bl sub_081CB640 - movs r0, #0 - b _081CB2E2 -_081CB2B4: - movs r1, #0x16 - ldrsh r0, [r4, r1] - bl sub_081C7F54 - movs r0, #0 - b _081CB2E2 -_081CB2C0: - adds r0, r4, #0 - bl sub_081CBAF0 - movs r0, #0 - b _081CB2E2 -_081CB2CA: - bl sub_081C7FC8 - cmp r0, #0 - bne _081CB2DC - adds r0, r4, #0 - bl sub_081CBB80 - cmp r0, #0 - beq _081CB2E0 -_081CB2DC: - movs r0, #2 - b _081CB2E2 -_081CB2E0: - movs r0, #4 -_081CB2E2: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_081CB248 - - thumb_func_start sub_081CB2E8 -sub_081CB2E8: @ 0x081CB2E8 - push {lr} - cmp r0, #0 - beq _081CB2F4 - cmp r0, #1 - beq _081CB30E - b _081CB326 -_081CB2F4: - movs r0, #5 - bl sub_080A306C - movs r0, #0 - bl sub_081CB3A8 - movs r0, #0 - bl sub_081C7280 - bl sub_081C7060 - movs r0, #0 - b _081CB328 -_081CB30E: - bl sub_081C72F4 - cmp r0, #0 - bne _081CB31E - bl MainMenuLoopedTaskIsBusy - cmp r0, #0 - beq _081CB322 -_081CB31E: - movs r0, #2 - b _081CB328 -_081CB322: - bl sub_081C7784 -_081CB326: - movs r0, #4 -_081CB328: - pop {r1} - bx r1 - thumb_func_end sub_081CB2E8 - - thumb_func_start sub_081CB32C -sub_081CB32C: @ 0x081CB32C - push {lr} - sub sp, #0x18 - bl sub_081CA640 - str r0, [sp] - bl sub_081CA5E4 - mov r1, sp - movs r2, #0 - strh r0, [r1, #4] - movs r0, #4 - strb r0, [r1, #8] - mov r0, sp - strh r2, [r0, #6] - movs r0, #0xe - strb r0, [r1, #9] - movs r0, #0xf - strb r0, [r1, #0xa] - movs r0, #1 - strb r0, [r1, #0xb] - movs r0, #8 - strb r0, [r1, #0xc] - movs r0, #3 - strb r0, [r1, #0xd] - ldr r0, _081CB37C - str r0, [sp, #0x10] - ldr r0, _081CB380 - str r0, [sp, #0x14] - ldr r0, _081CB384 - movs r2, #2 - bl sub_081C797C - ldr r0, _081CB388 - movs r1, #7 - bl CreateTask - add sp, #0x18 - pop {r0} - bx r0 - .align 2, 0 -_081CB37C: .4byte DoHitAnimHealthboxEffect -_081CB380: .4byte sub_081CB45C -_081CB384: .4byte gUnknown_85F4134 -_081CB388: .4byte sub_081CB3D4 - thumb_func_end sub_081CB32C - - thumb_func_start sub_081CB38C -sub_081CB38C: @ 0x081CB38C - push {lr} - bl sub_081C79DC - ldr r0, _081CB3A4 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask - pop {r0} - bx r0 - .align 2, 0 -_081CB3A4: .4byte sub_081CB3D4 - thumb_func_end sub_081CB38C - - thumb_func_start sub_081CB3A8 -sub_081CB3A8: @ 0x081CB3A8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _081CB3CC - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xff - beq _081CB3C6 - ldr r1, _081CB3D0 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - adds r0, r0, r1 - strh r4, [r0, #0x26] -_081CB3C6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081CB3CC: .4byte sub_081CB3D4 -_081CB3D0: .4byte gUnknown_3005B60 - thumb_func_end sub_081CB3A8 - - thumb_func_start sub_081CB3D4 -sub_081CB3D4: @ 0x081CB3D4 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _081CB440 - adds r2, r1, r0 - movs r1, #0x1e - ldrsh r0, [r2, r1] - cmp r0, #0 - beq _081CB438 - ldrh r0, [r2] - adds r0, #4 - movs r1, #0x7f - ands r0, r1 - strh r0, [r2] - ldr r1, _081CB444 - movs r3, #0 - ldrsh r0, [r2, r3] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - strh r0, [r2, #2] - ldr r0, _081CB448 - adds r1, r0, #0 - adds r1, #0x20 - movs r3, #2 - ldrsh r2, [r2, r3] - str r2, [sp] - ldr r4, _081CB44C - str r4, [sp, #4] - movs r2, #0x10 - movs r3, #0x10 - bl sub_081C717C - ldr r0, _081CB450 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081CB438 - ldr r1, _081CB454 - ldr r2, _081CB458 - adds r0, r4, #0 - bl CpuSet -_081CB438: - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081CB440: .4byte gUnknown_3005B68 -_081CB444: .4byte gUnknown_82FA8CC -_081CB448: .4byte gUnknown_85F40C0 -_081CB44C: .4byte gUnknown_2037454 -_081CB450: .4byte gUnknown_2037C74 -_081CB454: .4byte gUnknown_2037854 -_081CB458: .4byte 0x04000008 - thumb_func_end sub_081CB3D4 - - thumb_func_start sub_081CB45C -sub_081CB45C: @ 0x081CB45C - push {r4, r5, r6, lr} - adds r5, r1, #0 - adds r4, r2, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl GetWindowAttribute - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBgTilemapBuffer - adds r6, r0, #0 - lsls r4, r4, #7 - adds r4, #0x3a - adds r6, r6, r4 - adds r0, r5, #0 - bl sub_081CA668 - cmp r0, #0 - beq _081CB4A0 - movs r1, #0xa0 - lsls r1, r1, #7 - adds r0, r1, #0 - strh r0, [r6] - adds r1, r6, #0 - adds r1, #0x40 - ldr r2, _081CB49C - adds r0, r2, #0 - strh r0, [r1] - b _081CB4AC - .align 2, 0 -_081CB49C: .4byte 0x00005001 -_081CB4A0: - ldr r0, _081CB4B4 - adds r1, r0, #0 - strh r1, [r6] - adds r0, r6, #0 - adds r0, #0x40 - strh r1, [r0] -_081CB4AC: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081CB4B4: .4byte 0x00005002 - thumb_func_end sub_081CB45C - - thumb_func_start sub_081CB4B8 -sub_081CB4B8: @ 0x081CB4B8 - push {r4, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl GetWindowAttribute - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl GetBgTilemapBuffer - lsls r4, r4, #7 - adds r4, #0x3a - adds r0, r0, r4 - ldr r2, _081CB4E4 - adds r1, r2, #0 - strh r1, [r0] - adds r0, #0x40 - strh r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081CB4E4: .4byte 0x00005002 - thumb_func_end sub_081CB4B8 - - thumb_func_start sub_081CB4E8 -sub_081CB4E8: @ 0x081CB4E8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _081CB528 - bl AddWindow - strh r0, [r4, #0x10] - ldr r0, _081CB52C - bl AddWindow - strh r0, [r4, #0x12] - ldrb r0, [r4, #0x10] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldrb r0, [r4, #0x10] - bl PutWindowTilemap - ldrb r0, [r4, #0x12] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldrb r0, [r4, #0x12] - bl PutWindowTilemap - ldrb r0, [r4, #0x10] - movs r1, #1 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081CB528: .4byte gUnknown_85F4178 -_081CB52C: .4byte gUnknown_85F4180 - thumb_func_end sub_081CB4E8 - - thumb_func_start sub_081CB530 -sub_081CB530: @ 0x081CB530 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x12] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldrh r0, [r4, #0x12] - bl sub_081CB564 - ldrh r0, [r4, #0x12] - bl sub_081CB57C - ldrh r0, [r4, #0x12] - bl sub_081CB5A8 - ldrh r0, [r4, #0x12] - bl sub_081CB5C0 - ldrb r0, [r4, #0x12] - movs r1, #2 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081CB530 - - thumb_func_start sub_081CB564 -sub_081CB564: @ 0x081CB564 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _081CB578 - movs r2, #0 - bl sub_081CB5F8 - pop {r0} - bx r0 - .align 2, 0 -_081CB578: .4byte gUnknown_85CB6AE - thumb_func_end sub_081CB564 - - thumb_func_start sub_081CB57C -sub_081CB57C: @ 0x081CB57C - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - bl sub_081CA5E4 - adds r1, r0, #0 - mov r0, sp - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - adds r0, r4, #0 - mov r1, sp - movs r2, #1 - bl sub_081CB5F8 - add sp, #4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081CB57C - - thumb_func_start sub_081CB5A8 -sub_081CB5A8: @ 0x081CB5A8 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _081CB5BC - movs r2, #2 - bl sub_081CB5F8 - pop {r0} - bx r0 - .align 2, 0 -_081CB5BC: .4byte gUnknown_85CB6B8 - thumb_func_end sub_081CB5A8 - - thumb_func_start sub_081CB5C0 -sub_081CB5C0: @ 0x081CB5C0 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r0, #9 - bl GetGameStat - adds r1, r0, #0 - ldr r0, _081CB5F4 - cmp r1, r0 - ble _081CB5D8 - adds r1, r0, #0 -_081CB5D8: - mov r0, sp - movs r2, #0 - movs r3, #5 - bl sub_080089D8 - adds r0, r4, #0 - mov r1, sp - movs r2, #3 - bl sub_081CB5F8 - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081CB5F4: .4byte 0x0001869F - thumb_func_end sub_081CB5C0 - - thumb_func_start sub_081CB5F8 -sub_081CB5F8: @ 0x081CB5F8 - push {r4, r5, r6, lr} - sub sp, #0xc - adds r5, r0, #0 - adds r6, r1, #0 - adds r4, r2, #0 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - movs r2, #1 - rsbs r2, r2, #0 - movs r0, #1 - bl sub_08005DAC - movs r3, #0x54 - subs r3, r3, r0 - lsls r4, r4, #4 - adds r4, #2 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - adds r0, r5, #0 - movs r1, #1 - adds r2, r6, #0 - bl AddTextPrinterParameterized - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_081CB5F8 - - thumb_func_start sub_081CB640 -sub_081CB640: @ 0x081CB640 - push {r4, r5, lr} - sub sp, #0x1c - adds r5, r0, #0 - adds r4, r1, #0 - bl GetSelectedMatchCall - adds r0, r0, r4 - bl sub_081CA650 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0xd5 - beq _081CB664 - add r0, sp, #0xc - movs r2, #0 - bl GetMapName - b _081CB66C -_081CB664: - ldr r1, _081CB6A8 - add r0, sp, #0xc - bl StringCopy -_081CB66C: - movs r2, #1 - rsbs r2, r2, #0 - movs r0, #1 - add r1, sp, #0xc - bl sub_08005DAC - movs r4, #0x54 - subs r4, r4, r0 - ldrb r0, [r5, #0x10] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldrb r0, [r5, #0x10] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r1, #2 - str r1, [sp] - movs r1, #0 - str r1, [sp, #4] - str r1, [sp, #8] - movs r1, #1 - add r2, sp, #0xc - adds r3, r4, #0 - bl AddTextPrinterParameterized - add sp, #0x1c - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081CB6A8: .4byte gUnknown_85CB808 - thumb_func_end sub_081CB640 - - thumb_func_start sub_081CB6AC -sub_081CB6AC: @ 0x081CB6AC - push {r4, r5, r6, lr} - sub sp, #0xc - adds r5, r0, #0 - ldrb r0, [r5, #0x12] - movs r1, #0x11 - bl FillWindowPixelBuffer - movs r4, #0 - movs r6, #0x80 - lsls r6, r6, #0x12 - b _081CB6E8 -_081CB6C2: - ldrb r0, [r5, #0x12] - ldr r2, _081CB70C - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r2, [r1] - lsrs r1, r6, #0x18 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - movs r3, #0x14 - bl AddTextPrinterParameterized - movs r0, #0x80 - lsls r0, r0, #0x15 - adds r6, r6, r0 - adds r4, #1 -_081CB6E8: - cmp r4, #2 - bhi _081CB6FA - adds r0, r4, #0 - bl sub_081CA7D0 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #3 - bne _081CB6C2 -_081CB6FA: - ldrb r0, [r5, #0x12] - movs r1, #2 - bl CopyWindowToVram - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081CB70C: .4byte gUnknown_85F4188 - thumb_func_end sub_081CB6AC - - thumb_func_start sub_081CB710 -sub_081CB710: @ 0x081CB710 - push {r4, lr} - adds r4, r0, #0 - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081CB722 - movs r0, #1 - b _081CB734 -_081CB722: - bl sub_081CA7C0 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl sub_081CBA44 - movs r0, #0 -_081CB734: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CB710 - - thumb_func_start sub_081CB73C -sub_081CB73C: @ 0x081CB73C - push {r4, lr} - adds r4, r0, #0 - bl sub_081CBA84 - adds r0, r4, #0 - bl sub_081CB530 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081CB73C - - thumb_func_start sub_081CB750 -sub_081CB750: @ 0x081CB750 - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CB750 - - thumb_func_start sub_081CB760 -sub_081CB760: @ 0x081CB760 - push {r4, lr} - adds r4, r0, #0 - bl sub_081CBA84 - ldrb r0, [r4, #0x12] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldrb r0, [r4, #0x12] - movs r1, #2 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081CB760 - - thumb_func_start sub_081CB780 -sub_081CB780: @ 0x081CB780 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _081CB7A0 - bl AddWindow - strh r0, [r4, #0x14] - ldrh r0, [r4, #0x14] - movs r1, #1 - movs r2, #4 - bl sub_08196D78 - bl sub_081C7300 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081CB7A0: .4byte gUnknown_85F41A8 - thumb_func_end sub_081CB780 - - thumb_func_start sub_081CB7A4 -sub_081CB7A4: @ 0x081CB7A4 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x14] - movs r1, #1 - movs r2, #4 - bl sub_08196D78 - ldrh r0, [r4, #0x14] - movs r1, #1 - movs r2, #4 - bl sub_08196DB8 - ldrb r0, [r4, #0x14] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldrb r0, [r4, #0x14] - bl PutWindowTilemap - ldrb r0, [r4, #0x14] - movs r1, #3 - bl CopyWindowToVram - bl PauseSpinningPokenavSprite - movs r2, #0 - movs r1, #0x18 - strh r1, [r0, #0x20] - movs r1, #0x70 - strh r1, [r0, #0x22] - strh r2, [r0, #0x26] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081CB7A4 - - thumb_func_start sub_081CB7E8 -sub_081CB7E8: @ 0x081CB7E8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x14] - movs r1, #1 - movs r2, #0x40 - bl LoadUserWindowBorderGfx - ldrb r0, [r4, #0x14] - movs r1, #1 - movs r2, #4 - bl DrawTextBorderOuter - ldrb r0, [r4, #0x14] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldrb r0, [r4, #0x14] - bl PutWindowTilemap - ldrb r0, [r4, #0x14] - movs r1, #3 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081CB7E8 - - thumb_func_start OpponentHandlePaletteFade -OpponentHandlePaletteFade: @ 0x081CB81C - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end OpponentHandlePaletteFade - - thumb_func_start sub_081CB82C -sub_081CB82C: @ 0x081CB82C - push {lr} - sub sp, #0xc - ldrb r0, [r0, #0x14] - ldr r2, _081CB850 - movs r1, #2 - str r1, [sp] - movs r1, #1 - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - movs r3, #0x20 - bl AddTextPrinterParameterized - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_081CB850: .4byte gUnknown_85F4194 - thumb_func_end sub_081CB82C - - thumb_func_start sub_081CB854 -sub_081CB854: @ 0x081CB854 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004630 - ldrb r0, [r4, #0x14] - bl sub_080046A8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081CB854 - - thumb_func_start sub_081CB86C -sub_081CB86C: @ 0x081CB86C - push {lr} - sub sp, #0xc - ldrb r0, [r0, #0x14] - ldr r2, _081CB890 - movs r1, #2 - str r1, [sp] - movs r1, #1 - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - movs r3, #0x20 - bl AddTextPrinterParameterized - add sp, #0xc - pop {r0} - bx r0 - .align 2, 0 -_081CB890: .4byte gUnknown_85CB7A8 - thumb_func_end sub_081CB86C - - thumb_func_start sub_081CB894 -sub_081CB894: @ 0x081CB894 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004630 - ldrb r0, [r4, #0x14] - bl sub_080046A8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081CB894 - - thumb_func_start sub_081CB8AC -sub_081CB8AC: @ 0x081CB8AC - push {r4, r5, lr} - sub sp, #0xc - adds r4, r0, #0 - bl GetSelectedMatchCall - adds r1, r4, #0 - adds r1, #0xf - bl sub_081CA71C - adds r5, r0, #0 - bl GetPlayerTextSpeedDelay - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r2, [r4, #0x14] - movs r1, #2 - str r1, [sp] - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - adds r0, r2, #0 - movs r1, #1 - adds r2, r5, #0 - movs r3, #0x20 - bl AddTextPrinterParameterized - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_081CB8AC - - thumb_func_start sub_081CB8E8 -sub_081CB8E8: @ 0x081CB8E8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _081CB904 - ldrh r1, [r0, #0x2c] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081CB90C - ldr r0, _081CB908 - ldrb r1, [r0] - movs r2, #1 - orrs r1, r2 - strb r1, [r0] - b _081CB918 - .align 2, 0 -_081CB904: .4byte gUnknown_3002360 -_081CB908: .4byte gUnknown_30030B4 -_081CB90C: - ldr r2, _081CB92C - ldrb r1, [r2] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_081CB918: - bl sub_08004630 - ldrb r0, [r4, #0x14] - bl sub_080046A8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081CB92C: .4byte gUnknown_30030B4 - thumb_func_end sub_081CB8E8 - - thumb_func_start sub_081CB930 -sub_081CB930: @ 0x081CB930 - push {lr} - sub sp, #8 - bl ResumeSpinningPokenavSprite - movs r0, #0x20 - str r0, [sp] - movs r0, #0x14 - str r0, [sp, #4] - movs r0, #1 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, #1 - bl CopyBgTilemapBufferToVram - add sp, #8 - pop {r0} - bx r0 - thumb_func_end sub_081CB930 - - thumb_func_start sub_081CB958 -sub_081CB958: @ 0x081CB958 - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CB958 - - thumb_func_start sub_081CB968 -sub_081CB968: @ 0x081CB968 - push {r4, r5, r6, lr} - sub sp, #8 - movs r0, #6 - bl GetSubstructPtr - adds r6, r0, #0 - movs r5, #0 - ldr r4, _081CB9EC -_081CB978: - adds r0, r4, #0 - bl LoadCompressedSpriteSheet - adds r4, #8 - adds r5, #1 - cmp r5, #0 - beq _081CB978 - ldr r0, _081CB9F0 - bl Pokenav_AllocAndLoadPalettes - movs r0, #0 - str r0, [r6, #0x1c] - ldr r1, _081CB9F4 - adds r0, r6, r1 - str r0, [sp] - ldr r1, _081CB9F8 - ldr r0, [sp, #4] - ands r0, r1 - movs r1, #0x80 - lsls r1, r1, #4 - orrs r0, r1 - ldr r1, _081CB9FC - ands r0, r1 - movs r1, #0x80 - lsls r1, r1, #0xc - orrs r0, r1 - str r0, [sp, #4] - mov r0, sp - bl LoadSpriteSheet - ldr r2, _081CBA00 - adds r1, r6, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0xb - ldr r2, _081CBA04 - adds r0, r0, r2 - str r0, [r1] - movs r0, #0xd - bl AllocSpritePalette - lsls r0, r0, #0x18 - lsrs r0, r0, #0x14 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r0, r1 - strh r0, [r6, #0x1a] - bl sub_081CBAC4 - str r0, [r6, #0x20] - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081CB9EC: .4byte gUnknown_85F41B0 -_081CB9F0: .4byte gUnknown_85F41B8 -_081CB9F4: .4byte 0x00001828 -_081CB9F8: .4byte 0xFFFF0000 -_081CB9FC: .4byte 0x0000FFFF -_081CBA00: .4byte 0x00001824 -_081CBA04: .4byte 0x06010000 - thumb_func_end sub_081CB968 - - thumb_func_start sub_081CBA08 -sub_081CBA08: @ 0x081CBA08 - push {r4, lr} - movs r0, #6 - bl GetSubstructPtr - adds r4, r0, #0 - ldr r0, [r4, #0x1c] - cmp r0, #0 - beq _081CBA1C - bl DestroySprite -_081CBA1C: - ldr r0, [r4, #0x20] - cmp r0, #0 - beq _081CBA26 - bl DestroySprite -_081CBA26: - movs r0, #8 - bl FreeSpriteTilesByTag - movs r0, #7 - bl FreeSpriteTilesByTag - movs r0, #0xc - bl FreeSpritePaletteByTag - movs r0, #0xd - bl FreeSpritePaletteByTag - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081CBA08 - - thumb_func_start sub_081CBA44 -sub_081CBA44: @ 0x081CBA44 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r0, [r4, #0x1c] - cmp r0, #0 - bne _081CBA74 - ldr r0, _081CBA7C - movs r1, #8 - movs r2, #0x50 - movs r3, #5 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _081CBA80 - adds r1, r1, r0 - str r1, [r4, #0x1c] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_081CBA98 -_081CBA74: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081CBA7C: .4byte gUnknown_85F41D0 -_081CBA80: .4byte gUnknown_20205AC - thumb_func_end sub_081CBA44 - - thumb_func_start sub_081CBA84 -sub_081CBA84: @ 0x081CBA84 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x1c] - bl DestroySprite - movs r0, #0 - str r0, [r4, #0x1c] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081CBA84 - - thumb_func_start sub_081CBA98 -sub_081CBA98: @ 0x081CBA98 - ldr r0, [r0, #0x1c] - lsls r1, r1, #4 - strh r1, [r0, #0x26] - bx lr - thumb_func_end sub_081CBA98 - - thumb_func_start sub_081CBAA0 -sub_081CBAA0: @ 0x081CBAA0 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x2e] - adds r0, #1 - strh r0, [r2, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - ble _081CBAC0 - movs r0, #0 - strh r0, [r2, #0x2e] - ldrh r0, [r2, #0x24] - adds r0, #1 - movs r1, #7 - ands r0, r1 - strh r0, [r2, #0x24] -_081CBAC0: - pop {r0} - bx r0 - thumb_func_end sub_081CBAA0 - - thumb_func_start sub_081CBAC4 -sub_081CBAC4: @ 0x081CBAC4 - push {lr} - ldr r0, _081CBAE8 - movs r1, #0x2c - movs r2, #0x68 - movs r3, #6 - bl CreateSprite - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _081CBAEC - adds r0, r0, r1 - pop {r1} - bx r1 - .align 2, 0 -_081CBAE8: .4byte gUnknown_85F41F0 -_081CBAEC: .4byte gUnknown_20205AC - thumb_func_end sub_081CBAC4 - - thumb_func_start sub_081CBAF0 -sub_081CBAF0: @ 0x081CBAF0 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - bl GetSelectedMatchCall - bl sub_081CA6B0 - cmp r0, #0 - blt _081CBB54 - lsls r4, r0, #3 - ldr r0, _081CBB5C - adds r0, r4, r0 - ldr r1, _081CBB60 - adds r5, r7, r1 - adds r1, r5, #0 - movs r2, #0 - bl DecompressPicFromTable - ldr r0, _081CBB64 - adds r4, r4, r0 - ldr r0, [r4] - ldr r1, _081CBB68 - adds r6, r7, r1 - adds r1, r6, #0 - bl LZ77UnCompWram - ldr r1, _081CBB6C - adds r0, r7, r1 - ldr r1, [r0] - movs r2, #0x80 - lsls r2, r2, #4 - adds r0, r5, #0 - movs r3, #1 - bl RequestDma3Copy - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldrh r1, [r7, #0x1a] - adds r0, r6, #0 - movs r2, #0x20 - bl LoadPalette - ldr r1, [r7, #0x20] - movs r0, #0 - strh r0, [r1, #0x2e] - ldr r0, [r7, #0x20] - strh r4, [r0, #0x3c] - ldr r1, [r7, #0x20] - ldr r0, _081CBB70 - str r0, [r1, #0x1c] -_081CBB54: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081CBB5C: .4byte gUnknown_82D8EE4 -_081CBB60: .4byte 0x00001828 -_081CBB64: .4byte gUnknown_82D91CC -_081CBB68: .4byte 0x00002028 -_081CBB6C: .4byte 0x00001824 -_081CBB70: .4byte sub_081CBB94 - thumb_func_end sub_081CBAF0 - - thumb_func_start sub_081CBB74 -sub_081CBB74: @ 0x081CBB74 - ldr r1, [r0, #0x20] - ldr r0, _081CBB7C - str r0, [r1, #0x1c] - bx lr - .align 2, 0 -_081CBB7C: .4byte sub_081CBBF8 - thumb_func_end sub_081CBB74 - - thumb_func_start sub_081CBB80 -sub_081CBB80: @ 0x081CBB80 - ldr r0, [r0, #0x20] - ldr r1, [r0, #0x1c] - ldr r0, _081CBB90 - eors r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - bx lr - .align 2, 0 -_081CBB90: .4byte sub_08007140 - thumb_func_end sub_081CBB80 - - thumb_func_start sub_081CBB94 -sub_081CBB94: @ 0x081CBB94 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _081CBBA6 - cmp r0, #1 - beq _081CBBD8 - b _081CBBEC -_081CBBA6: - movs r1, #0x3c - ldrsh r0, [r4, r1] - bl CheckForSpaceForDma3Request - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _081CBBEC - ldr r0, _081CBBD4 - strh r0, [r4, #0x24] - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - b _081CBBEC - .align 2, 0 -_081CBBD4: .4byte 0x0000FFB0 -_081CBBD8: - ldrh r0, [r4, #0x24] - adds r0, #8 - strh r0, [r4, #0x24] - lsls r0, r0, #0x10 - cmp r0, #0 - blt _081CBBEC - movs r0, #0 - strh r0, [r4, #0x24] - ldr r0, _081CBBF4 - str r0, [r4, #0x1c] -_081CBBEC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081CBBF4: .4byte sub_08007140 - thumb_func_end sub_081CBB94 - - thumb_func_start sub_081CBBF8 -sub_081CBBF8: @ 0x081CBBF8 - push {lr} - adds r3, r0, #0 - ldrh r0, [r3, #0x24] - subs r0, #8 - strh r0, [r3, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x50 - rsbs r1, r1, #0 - cmp r0, r1 - bgt _081CBC1E - adds r2, r3, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _081CBC24 - str r0, [r3, #0x1c] -_081CBC1E: - pop {r0} - bx r0 - .align 2, 0 -_081CBC24: .4byte sub_08007140 - thumb_func_end sub_081CBBF8 - - thumb_func_start sub_081CBC28 -sub_081CBC28: @ 0x081CBC28 - push {r4, lr} - movs r0, #3 - movs r1, #0x14 - bl AllocSubstruct - adds r4, r0, #0 - cmp r4, #0 - beq _081CBC44 - ldr r1, _081CBC48 - movs r0, #0x10 - bl AllocSubstruct - cmp r0, #0 - bne _081CBC4C -_081CBC44: - movs r0, #0 - b _081CBC6E - .align 2, 0 -_081CBC48: .4byte 0x00000884 -_081CBC4C: - ldr r0, _081CBC60 - ldrb r0, [r0, #0x14] - bl sub_08124674 - str r0, [r4, #0xc] - cmp r0, #0 - bne _081CBC68 - ldr r0, _081CBC64 - b _081CBC6A - .align 2, 0 -_081CBC60: .4byte gUnknown_2036FB8 -_081CBC64: .4byte sub_081CBCBC -_081CBC68: - ldr r0, _081CBC74 -_081CBC6A: - str r0, [r4, #0x10] - movs r0, #1 -_081CBC6E: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081CBC74: .4byte sub_081CBD08 - thumb_func_end sub_081CBC28 - - thumb_func_start sub_081CBC78 -sub_081CBC78: @ 0x081CBC78 - push {lr} - bl sub_08124664 - ldr r1, _081CBCA4 - ldr r3, [r1] - movs r1, #1 - ands r1, r0 - lsls r1, r1, #3 - ldrb r2, [r3, #0x15] - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x15] - movs r0, #0x10 - bl FreePokenavSubstruct - movs r0, #3 - bl FreePokenavSubstruct - pop {r0} - bx r0 - .align 2, 0 -_081CBCA4: .4byte gUnknown_3005AF0 - thumb_func_end sub_081CBC78 - - thumb_func_start sub_081CBCA8 -sub_081CBCA8: @ 0x081CBCA8 - push {lr} - movs r0, #3 - bl GetSubstructPtr - ldr r1, [r0, #0x10] - bl _call_via_r1 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CBCA8 - - thumb_func_start sub_081CBCBC -sub_081CBCBC: @ 0x081CBCBC - push {r4, lr} - adds r4, r0, #0 - bl sub_081230B8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - beq _081CBCE0 - cmp r0, #4 - bgt _081CBCD6 - cmp r0, #3 - beq _081CBCDC - b _081CBD00 -_081CBCD6: - cmp r0, #5 - beq _081CBCF2 - b _081CBD00 -_081CBCDC: - movs r0, #1 - b _081CBD02 -_081CBCE0: - bl sub_08124664 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081CBCEE - movs r0, #3 - b _081CBD02 -_081CBCEE: - movs r0, #2 - b _081CBD02 -_081CBCF2: - ldr r0, _081CBCFC - str r0, [r4, #0x10] - movs r0, #4 - b _081CBD02 - .align 2, 0 -_081CBCFC: .4byte sub_081CBD30 -_081CBD00: - movs r0, #0 -_081CBD02: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081CBCBC - - thumb_func_start sub_081CBD08 -sub_081CBD08: @ 0x081CBD08 - push {lr} - adds r2, r0, #0 - ldr r0, _081CBD1C - ldrh r1, [r0, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _081CBD20 - movs r0, #0 - b _081CBD26 - .align 2, 0 -_081CBD1C: .4byte gUnknown_3002360 -_081CBD20: - ldr r0, _081CBD2C - str r0, [r2, #0x10] - movs r0, #4 -_081CBD26: - pop {r1} - bx r1 - .align 2, 0 -_081CBD2C: .4byte sub_081CBD30 - thumb_func_end sub_081CBD08 - - thumb_func_start sub_081CBD30 -sub_081CBD30: @ 0x081CBD30 - ldr r0, _081CBD34 - bx lr - .align 2, 0 -_081CBD34: .4byte 0x000186A1 - thumb_func_end sub_081CBD30 - - thumb_func_start sub_081CBD38 -sub_081CBD38: @ 0x081CBD38 - push {lr} - movs r0, #3 - bl GetSubstructPtr - ldr r0, [r0, #0xc] - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CBD38 - - thumb_func_start sub_081CBD48 -sub_081CBD48: @ 0x081CBD48 - push {r4, lr} - ldr r1, _081CBD6C - movs r0, #4 - bl AllocSubstruct - adds r4, r0, #0 - cmp r4, #0 - beq _081CBD78 - ldr r0, _081CBD70 - movs r1, #1 - bl CreateLoopedTask - str r0, [r4, #4] - ldr r0, _081CBD74 - str r0, [r4] - movs r0, #1 - b _081CBD7A - .align 2, 0 -_081CBD6C: .4byte 0x00001948 -_081CBD70: .4byte sub_081CBE48 -_081CBD74: .4byte sub_081CBE10 -_081CBD78: - movs r0, #0 -_081CBD7A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081CBD48 - - thumb_func_start sub_081CBD80 -sub_081CBD80: @ 0x081CBD80 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #4 - bl GetSubstructPtr - adds r5, r0, #0 - ldr r0, _081CBDA8 - lsls r4, r4, #2 - adds r4, r4, r0 - ldr r0, [r4] - movs r1, #1 - bl CreateLoopedTask - str r0, [r5, #4] - ldr r0, _081CBDAC - str r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081CBDA8: .4byte gUnknown_85F4D08 -_081CBDAC: .4byte sub_081CBE10 - thumb_func_end sub_081CBD80 - - thumb_func_start PlayerHandleOneReturnValue -PlayerHandleOneReturnValue: @ 0x081CBDB0 - push {lr} - movs r0, #4 - bl GetSubstructPtr - ldr r0, [r0] - bl _call_via_r0 - pop {r1} - thumb_func_end PlayerHandleOneReturnValue - - thumb_func_start sub_081CBDC0 -sub_081CBDC0: @ 0x081CBDC0 - bx r1 - .align 2, 0 - thumb_func_end sub_081CBDC0 - - thumb_func_start Cb_PlaceMon -Cb_PlaceMon: @ 0x081CBDC4 - push {r4, lr} - movs r0, #4 - bl GetSubstructPtr - adds r4, r0, #0 - bl FreeRegionMapIconResources - bl sub_081CC140 - ldrb r0, [r4, #8] - bl RemoveWindow - movs r0, #0x10 - bl FreePokenavSubstruct - movs r0, #4 - bl FreePokenavSubstruct - bl SetPokenavVBlankCallback - movs r0, #0 - bl SetBgMode - pop {r4} - pop {r0} - bx r0 - thumb_func_end Cb_PlaceMon - - thumb_func_start sub_081CBDF8 -sub_081CBDF8: @ 0x081CBDF8 - push {lr} - bl TransferPlttBuffer - bl LoadOam - bl ProcessSpriteCopyRequests - bl UpdateRegionMapVideoRegs - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081CBDF8 - - thumb_func_start sub_081CBE10 -sub_081CBE10: @ 0x081CBE10 - push {lr} - movs r0, #4 - bl GetSubstructPtr - ldr r0, [r0, #4] - bl IsLoopedTaskActive - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CBE10 - - thumb_func_start sub_081CBE24 -sub_081CBE24: @ 0x081CBE24 - push {lr} - bl sub_081CBD38 - cmp r0, #0 - bne _081CBE40 - ldr r0, _081CBE3C - ldr r0, [r0] - ldrb r0, [r0, #0x15] - lsrs r0, r0, #3 - movs r1, #1 - ands r0, r1 - b _081CBE42 - .align 2, 0 -_081CBE3C: .4byte gUnknown_3005AF0 -_081CBE40: - movs r0, #0 -_081CBE42: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CBE24 - - thumb_func_start sub_081CBE48 -sub_081CBE48: @ 0x081CBE48 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #4 - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #7 - bls _081CBE5A - b _081CBF92 -_081CBE5A: - lsls r0, r4, #2 - ldr r1, _081CBE64 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081CBE64: .4byte _081CBE68 -_081CBE68: @ jump table - .4byte _081CBE88 @ case 0 - .4byte _081CBED8 @ case 1 - .4byte _081CBF0A @ case 2 - .4byte _081CBF12 @ case 3 - .4byte _081CBF22 @ case 4 - .4byte _081CBF36 @ case 5 - .4byte _081CBF58 @ case 6 - .4byte _081CBF7E @ case 7 -_081CBE88: - movs r0, #0 - bl sub_081C6DC0 - movs r0, #1 - bl HideBg - movs r0, #2 - bl HideBg - movs r0, #3 - bl HideBg - movs r0, #1 - bl SetBgMode - ldr r4, _081CBED4 - adds r0, r4, #0 - movs r1, #2 - bl InitBgTemplates - movs r0, #0x10 - bl GetSubstructPtr - adds r5, r0, #0 - adds r4, #4 - bl sub_081CBE24 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08122D04 - bl InitMoveRelearnerWindows -_081CBED0: - movs r0, #0 - b _081CBF94 - .align 2, 0 -_081CBED4: .4byte gUnknown_85F4CFC -_081CBED8: - bl sub_08122DBC - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081CBF8E - bl sub_081CBD38 - cmp r0, #0 - bne _081CBF00 - movs r0, #4 - movs r1, #9 - bl CreateRegionMapPlayerIcon - movs r0, #5 - movs r1, #0xa - bl CreateRegionMapCursor - bl sub_08124558 - b _081CBED0 -_081CBF00: - movs r0, #0 - movs r1, #6 - bl sub_0812303C - b _081CBED0 -_081CBF0A: - bl sub_081CC450 -_081CBF0E: - movs r0, #1 - b _081CBF94 -_081CBF12: - bl sub_081CC464 - cmp r0, #0 - bne _081CBF8E - adds r0, r5, #0 - bl sub_081CC170 - b _081CBF0E -_081CBF22: - bl sub_081CC250 - cmp r0, #0 - bne _081CBF8E - adds r0, r5, #0 - bl sub_081CC260 - bl sub_081C7300 - b _081CBED0 -_081CBF36: - adds r0, r5, #0 - bl sub_081CC38C - cmp r0, #0 - bne _081CBF8E - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - ldr r0, _081CBF54 - bl sub_081C6DC0 - b _081CBED0 - .align 2, 0 -_081CBF54: .4byte sub_081CBDF8 -_081CBF58: - bl sub_081CBE24 - lsls r0, r0, #0x18 - movs r4, #5 - cmp r0, #0 - bne _081CBF66 - movs r4, #4 -_081CBF66: - adds r0, r4, #0 - bl LoadLeftHeaderGfxForIndex - adds r0, r4, #0 - movs r1, #1 - movs r2, #1 - bl sub_081C7748 - movs r0, #1 - bl sub_081C7280 - b _081CBED0 -_081CBF7E: - bl sub_081C72F4 - cmp r0, #0 - bne _081CBF8E - bl sub_081C77B8 - cmp r0, #0 - beq _081CBF0E -_081CBF8E: - movs r0, #2 - b _081CBF94 -_081CBF92: - movs r0, #4 -_081CBF94: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CBE48 - - thumb_func_start sub_081CBF9C -sub_081CBF9C: @ 0x081CBF9C - push {r4, lr} - adds r4, r0, #0 - movs r0, #4 - bl GetSubstructPtr - cmp r4, #0 - beq _081CBFB0 - cmp r4, #1 - beq _081CBFB8 - b _081CBFC4 -_081CBFB0: - bl sub_081CC260 - movs r0, #0 - b _081CBFC6 -_081CBFB8: - bl sub_081CC38C - cmp r0, #0 - beq _081CBFC4 - movs r0, #2 - b _081CBFC6 -_081CBFC4: - movs r0, #4 -_081CBFC6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081CBF9C - - thumb_func_start sub_081CBFCC -sub_081CBFCC: @ 0x081CBFCC - push {lr} - cmp r0, #1 - beq _081CBFF6 - cmp r0, #1 - bgt _081CBFDC - cmp r0, #0 - beq _081CBFE2 - b _081CC024 -_081CBFDC: - cmp r0, #2 - beq _081CC012 - b _081CC024 -_081CBFE2: - movs r0, #5 - bl sub_080A306C - movs r0, #0 - bl sub_081CC39C - bl sub_08123424 - movs r0, #0 - b _081CC026 -_081CBFF6: - bl sub_08123520 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081CC01A - bl sub_081CC3C8 - cmp r0, #0 - bne _081CC01A - movs r0, #1 - bl sub_081C7364 - movs r0, #0 - b _081CC026 -_081CC012: - bl sub_081C73A8 - cmp r0, #0 - beq _081CC01E -_081CC01A: - movs r0, #2 - b _081CC026 -_081CC01E: - movs r0, #4 - bl sub_081C75D4 -_081CC024: - movs r0, #4 -_081CC026: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CBFCC - - thumb_func_start sub_081CC02C -sub_081CC02C: @ 0x081CC02C - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #4 - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #1 - beq _081CC060 - cmp r4, #1 - bgt _081CC046 - cmp r4, #0 - beq _081CC050 - b _081CC0A6 -_081CC046: - cmp r4, #2 - beq _081CC078 - cmp r4, #3 - beq _081CC094 - b _081CC0A6 -_081CC050: - movs r0, #5 - bl sub_080A306C - adds r0, r5, #0 - bl sub_081CC260 - movs r0, #0 - b _081CC0A8 -_081CC060: - adds r0, r5, #0 - bl sub_081CC38C - cmp r0, #0 - bne _081CC09C - movs r0, #1 - bl sub_081CC39C - bl sub_08123424 - movs r0, #0 - b _081CC0A8 -_081CC078: - bl sub_08123520 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081CC09C - bl sub_081CC3C8 - cmp r0, #0 - bne _081CC09C - movs r0, #2 - bl sub_081C7364 - movs r0, #0 - b _081CC0A8 -_081CC094: - bl sub_081C73A8 - cmp r0, #0 - beq _081CC0A0 -_081CC09C: - movs r0, #2 - b _081CC0A8 -_081CC0A0: - movs r0, #5 - bl sub_081C75D4 -_081CC0A6: - movs r0, #4 -_081CC0A8: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CC02C - - thumb_func_start sub_081CC0B0 -sub_081CC0B0: @ 0x081CC0B0 - push {lr} - cmp r0, #1 - beq _081CC0D6 - cmp r0, #1 - bgt _081CC0C0 - cmp r0, #0 - beq _081CC0C6 - b _081CC10C -_081CC0C0: - cmp r0, #2 - beq _081CC0EA - b _081CC10C -_081CC0C6: - movs r0, #5 - bl sub_080A306C - movs r0, #0 - bl sub_081C7280 - movs r0, #0 - b _081CC10E -_081CC0D6: - bl sub_081C72F4 - cmp r0, #0 - bne _081CC0F2 - bl sub_081C7784 - bl sub_081C7060 - movs r0, #0 - b _081CC10E -_081CC0EA: - bl MainMenuLoopedTaskIsBusy - cmp r0, #0 - beq _081CC0F6 -_081CC0F2: - movs r0, #2 - b _081CC10E -_081CC0F6: - movs r0, #1 - bl HideBg - movs r0, #2 - bl HideBg - movs r0, #3 - bl HideBg - movs r0, #0 - b _081CC10E -_081CC10C: - movs r0, #4 -_081CC10E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CC0B0 - - thumb_func_start InitMoveRelearnerWindows -InitMoveRelearnerWindows: @ 0x081CC114 - push {r4, r5, lr} - movs r5, #0 - ldr r4, _081CC138 -_081CC11A: - adds r0, r4, #0 - bl LoadCompressedSpriteSheet - adds r4, #8 - adds r5, #1 - cmp r5, #0 - beq _081CC11A - ldr r0, _081CC13C - bl Pokenav_AllocAndLoadPalettes - bl sub_081CC598 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081CC138: .4byte gUnknown_85F4D1C -_081CC13C: .4byte gUnknown_85F4D24 - thumb_func_end InitMoveRelearnerWindows - - thumb_func_start sub_081CC140 -sub_081CC140: @ 0x081CC140 - push {r4, r5, lr} - movs r0, #4 - bl GetSubstructPtr - adds r4, r0, #0 - movs r0, #6 - bl FreeSpriteTilesByTag - movs r0, #0xb - bl FreeSpritePaletteByTag - adds r5, r4, #0 - adds r5, #0xc - movs r4, #2 -_081CC15C: - ldm r5!, {r0} - bl DestroySprite - subs r4, #1 - cmp r4, #0 - bge _081CC15C - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081CC140 - - thumb_func_start sub_081CC170 -sub_081CC170: @ 0x081CC170 - push {r4, r5, lr} - sub sp, #8 - adds r5, r0, #0 - movs r0, #1 - movs r1, #0 - movs r2, #0x40 - movs r3, #1 - bl sub_08199A88 - movs r0, #1 - movs r1, #0x11 - movs r2, #0x41 - movs r3, #1 - bl sub_08199A88 - add r1, sp, #4 - movs r2, #0x82 - lsls r2, r2, #5 - adds r0, r2, #0 - strh r0, [r1] - adds r4, r5, #0 - adds r4, #0x18 - ldr r2, _081CC21C - adds r0, r1, #0 - adds r1, r4, #0 - bl CpuSet - movs r0, #1 - adds r1, r4, #0 - bl SetBgTilemapBuffer - ldr r0, _081CC220 - bl AddWindow - movs r4, #0 - strh r0, [r5, #8] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x42 - movs r2, #0x40 - bl LoadUserWindowBorderGfx_ - ldrb r0, [r5, #8] - movs r1, #0x42 - movs r2, #4 - bl DrawTextBorderOuter - ldr r1, _081CC224 - str r4, [sp] - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - ldrb r0, [r5, #8] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldrb r0, [r5, #8] - bl PutWindowTilemap - ldrb r0, [r5, #8] - movs r1, #3 - bl CopyWindowToVram - ldr r0, _081CC228 - movs r1, #0x10 - movs r2, #0x20 - bl ClearBottomWindow - ldr r0, _081CC22C - movs r1, #0x30 - movs r2, #0x20 - bl ClearBottomWindow - bl sub_08124664 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081CC234 - ldr r1, _081CC230 - movs r0, #1 - movs r2, #0 - bl ChangeBgY - b _081CC23E - .align 2, 0 -_081CC21C: .4byte 0x01000400 -_081CC220: .4byte gUnknown_85F4D34 -_081CC224: .4byte gUnknown_85F4248 -_081CC228: .4byte gUnknown_85F4208 -_081CC22C: .4byte gUnknown_85F4228 -_081CC230: .4byte 0xFFFFA000 -_081CC234: - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY -_081CC23E: - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_081CC170 - - thumb_func_start sub_081CC250 -sub_081CC250: @ 0x081CC250 - push {lr} - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CC250 - - thumb_func_start sub_081CC260 -sub_081CC260: @ 0x081CC260 - push {r4, r5, r6, lr} - sub sp, #0xc - adds r5, r0, #0 - movs r0, #0x10 - bl GetSubstructPtr - adds r6, r0, #0 - ldrb r0, [r6, #2] - cmp r0, #4 - bls _081CC276 - b _081CC380 -_081CC276: - lsls r0, r0, #2 - ldr r1, _081CC280 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081CC280: .4byte _081CC284 -_081CC284: @ jump table - .4byte _081CC35C @ case 0 - .4byte _081CC31C @ case 1 - .4byte _081CC298 @ case 2 - .4byte _081CC2D8 @ case 3 - .4byte _081CC31C @ case 4 -_081CC298: - ldrb r0, [r5, #8] - movs r4, #2 - str r4, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0xc - bl PutWindowRectTilemap - ldrb r0, [r5, #8] - adds r2, r6, #4 - str r4, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - ldrh r1, [r6] - ldrb r2, [r6, #3] - adds r0, r5, #0 - bl sub_081CC4B0 - ldrb r0, [r5, #8] - movs r1, #3 - bl CopyWindowToVram - movs r0, #0 - bl sub_081CC6E4 - b _081CC380 -_081CC2D8: - ldrb r0, [r5, #8] - movs r4, #2 - str r4, [sp] - movs r1, #0 - movs r2, #0 - movs r3, #0xc - bl PutWindowRectTilemap - ldrb r0, [r5, #8] - adds r2, r6, #4 - str r4, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - ldr r1, _081CC318 - movs r0, #0xc - str r0, [sp] - movs r0, #0xb - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #1 - movs r2, #0x11 - movs r3, #6 - bl FillBgTilemapBufferRect - b _081CC34C - .align 2, 0 -_081CC318: .4byte 0x00001041 -_081CC31C: - ldrb r0, [r5, #8] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldrb r0, [r5, #8] - bl PutWindowTilemap - ldrb r0, [r5, #8] - adds r2, r6, #4 - movs r1, #2 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - ldrh r1, [r6] - ldrb r2, [r6, #3] - adds r0, r5, #0 - bl sub_081CC528 -_081CC34C: - ldrb r0, [r5, #8] - movs r1, #3 - bl CopyWindowToVram - movs r0, #1 - bl sub_081CC6E4 - b _081CC380 -_081CC35C: - ldr r1, _081CC388 - movs r0, #0xc - str r0, [sp] - movs r0, #0xd - str r0, [sp, #4] - movs r0, #0x11 - str r0, [sp, #8] - movs r0, #1 - movs r2, #0x11 - movs r3, #4 - bl FillBgTilemapBufferRect - movs r0, #1 - bl CopyBgTilemapBufferToVram - movs r0, #1 - bl sub_081CC6E4 -_081CC380: - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081CC388: .4byte 0x00001041 - thumb_func_end sub_081CC260 - - thumb_func_start sub_081CC38C -sub_081CC38C: @ 0x081CC38C - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CC38C - - thumb_func_start sub_081CC39C -sub_081CC39C: @ 0x081CC39C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _081CC3C0 - movs r1, #3 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _081CC3C4 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - strh r4, [r1, #8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081CC3C0: .4byte sub_081CC3DC -_081CC3C4: .4byte gUnknown_3005B60 - thumb_func_end sub_081CC39C - - thumb_func_start sub_081CC3C8 -sub_081CC3C8: @ 0x081CC3C8 - push {lr} - ldr r0, _081CC3D8 - bl FuncIsActiveTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_081CC3D8: .4byte sub_081CC3DC - thumb_func_end sub_081CC3C8 - - thumb_func_start sub_081CC3DC -sub_081CC3DC: @ 0x081CC3DC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, r4, #0 - ldr r1, _081CC41C - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #8 - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _081CC420 - movs r1, #0x90 - lsls r1, r1, #3 - movs r0, #1 - movs r2, #1 - bl ChangeBgY - cmp r0, #0 - blt _081CC416 - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - adds r0, r4, #0 - bl DestroyTask -_081CC416: - bl sub_081CC6B8 - b _081CC444 - .align 2, 0 -_081CC41C: .4byte gUnknown_3005B60 -_081CC420: - movs r1, #0x90 - lsls r1, r1, #3 - movs r0, #1 - movs r2, #2 - bl ChangeBgY - ldr r1, _081CC44C - cmp r0, r1 - bgt _081CC440 - movs r0, #1 - movs r2, #0 - bl ChangeBgY - adds r0, r5, #0 - bl DestroyTask -_081CC440: - bl sub_081CC6B8 -_081CC444: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081CC44C: .4byte 0xFFFFA000 - thumb_func_end sub_081CC3DC - - thumb_func_start sub_081CC450 -sub_081CC450: @ 0x081CC450 - push {lr} - ldr r0, _081CC460 - movs r1, #1 - bl CreateLoopedTask - pop {r0} - bx r0 - .align 2, 0 -_081CC460: .4byte sub_081CC474 - thumb_func_end sub_081CC450 - - thumb_func_start sub_081CC464 -sub_081CC464: @ 0x081CC464 - push {lr} - ldr r0, _081CC470 - bl FuncIsActiveLoopedTask - pop {r1} - bx r1 - .align 2, 0 -_081CC470: .4byte sub_081CC474 - thumb_func_end sub_081CC464 - - thumb_func_start sub_081CC474 -sub_081CC474: @ 0x081CC474 - push {r4, lr} - adds r4, r0, #0 - movs r0, #4 - bl GetSubstructPtr - adds r2, r0, #0 - cmp r4, #0x15 - ble _081CC488 - movs r0, #4 - b _081CC4A2 -_081CC488: - ldr r0, _081CC4A8 - lsls r1, r4, #3 - adds r0, #4 - adds r1, r1, r0 - ldr r0, [r1] - movs r1, #0xc8 - muls r1, r4, r1 - ldr r3, _081CC4AC - adds r1, r1, r3 - adds r1, r2, r1 - bl LZ77UnCompWram - movs r0, #1 -_081CC4A2: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081CC4A8: .4byte gUnknown_85F4D3C -_081CC4AC: .4byte 0x00000818 - thumb_func_end sub_081CC474 - - thumb_func_start sub_081CC4B0 -sub_081CC4B0: @ 0x081CC4B0 - push {r4, r5, r6, lr} - sub sp, #8 - adds r6, r0, #0 - adds r3, r1, #0 - movs r4, #0 - ldr r0, _081CC51C - ldrh r1, [r0] - adds r5, r0, #0 - cmp r1, r3 - bne _081CC4CA - ldrh r0, [r5, #2] - cmp r0, r2 - beq _081CC4E0 -_081CC4CA: - adds r4, #1 - cmp r4, #0x15 - bgt _081CC4E0 - lsls r0, r4, #3 - adds r1, r0, r5 - ldrh r0, [r1] - cmp r0, r3 - bne _081CC4CA - ldrh r0, [r1, #2] - cmp r0, r2 - bne _081CC4CA -_081CC4E0: - cmp r4, #0x16 - beq _081CC514 - ldr r1, _081CC520 - movs r0, #0xc - str r0, [sp] - movs r0, #0xb - str r0, [sp, #4] - movs r0, #1 - movs r2, #0x11 - movs r3, #6 - bl FillBgTilemapBufferRect_Palette0 - movs r0, #0xc8 - adds r1, r4, #0 - muls r1, r0, r1 - ldr r0, _081CC524 - adds r1, r1, r0 - adds r1, r6, r1 - movs r0, #0xa - str r0, [sp] - str r0, [sp, #4] - movs r0, #1 - movs r2, #0x12 - movs r3, #6 - bl CopyToBgTilemapBufferRect -_081CC514: - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081CC51C: .4byte gUnknown_85F4D3C -_081CC520: .4byte 0x00001041 -_081CC524: .4byte 0x00000818 - thumb_func_end sub_081CC4B0 - - thumb_func_start sub_081CC528 -sub_081CC528: @ 0x081CC528 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0xc - mov sb, r0 - movs r5, #0 - ldr r6, _081CC544 - movs r4, #0x90 - lsls r4, r4, #0x15 - lsls r1, r1, #0x18 - mov r8, r1 - lsls r7, r2, #0x18 - b _081CC574 - .align 2, 0 -_081CC544: .4byte gUnknown_2021C40 -_081CC548: - adds r0, r6, #0 - movs r2, #0 - movs r3, #0xc - bl StringCopyPadded - mov r1, sb - ldrb r0, [r1, #8] - lsrs r1, r4, #0x18 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - adds r2, r6, #0 - movs r3, #0 - bl AddTextPrinterParameterized - movs r0, #0x80 - lsls r0, r0, #0x15 - adds r4, r4, r0 - adds r5, #1 -_081CC574: - lsls r2, r5, #0x18 - lsrs r2, r2, #0x18 - mov r1, r8 - lsrs r0, r1, #0x18 - lsrs r1, r7, #0x18 - bl GetLandmarkName - adds r1, r0, #0 - cmp r1, #0 - bne _081CC548 - add sp, #0xc - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081CC528 - - thumb_func_start sub_081CC598 -sub_081CC598: @ 0x081CC598 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r0, #4 - bl GetSubstructPtr - adds r4, r0, #0 - bl sub_08124664 - lsls r0, r0, #0x18 - movs r2, #0x84 - cmp r0, #0 - bne _081CC5B4 - movs r2, #0xe4 -_081CC5B4: - movs r5, #0 - lsls r7, r2, #0x10 - adds r4, #0xc - mov r8, r4 - movs r6, #0x98 - lsls r6, r6, #0x10 -_081CC5C0: - asrs r1, r6, #0x10 - ldr r0, _081CC624 - asrs r2, r7, #0x10 - movs r3, #8 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - ldr r0, _081CC628 - adds r2, r2, r0 - movs r0, #0 - strh r0, [r2, #0x2e] - lsls r4, r5, #2 - strh r4, [r2, #0x30] - ldrh r3, [r2, #4] - lsls r1, r3, #0x16 - lsrs r0, r1, #0x16 - adds r1, r0, #0 - strh r0, [r2, #0x32] - movs r0, #0x96 - strh r0, [r2, #0x34] - strh r4, [r2, #0x36] - adds r1, r1, r4 - ldr r4, _081CC62C - adds r0, r4, #0 - ands r1, r0 - ldr r4, _081CC630 - adds r0, r4, #0 - ands r3, r0 - orrs r3, r1 - strh r3, [r2, #4] - mov r0, r8 - adds r0, #4 - mov r8, r0 - subs r0, #4 - stm r0!, {r2} - movs r4, #0x80 - lsls r4, r4, #0xe - adds r6, r6, r4 - adds r5, #1 - cmp r5, #2 - ble _081CC5C0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081CC624: .4byte gUnknown_85F4DF4 -_081CC628: .4byte gUnknown_20205AC -_081CC62C: .4byte 0x000003FF -_081CC630: .4byte 0xFFFFFC00 - thumb_func_end sub_081CC598 - - thumb_func_start sub_081CC634 -sub_081CC634: @ 0x081CC634 - push {r4, r5, lr} - adds r3, r0, #0 - ldrh r0, [r3, #0x34] - movs r1, #0x34 - ldrsh r4, [r3, r1] - cmp r4, #0 - beq _081CC646 - subs r0, #1 - b _081CC6AE -_081CC646: - ldrh r0, [r3, #0x2e] - adds r0, #1 - strh r0, [r3, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xb - ble _081CC656 - strh r4, [r3, #0x2e] -_081CC656: - ldrh r0, [r3, #0x30] - adds r0, #1 - strh r0, [r3, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3c - ble _081CC666 - strh r4, [r3, #0x30] -_081CC666: - ldrh r5, [r3, #0x30] - ldrh r2, [r3, #0x32] - adds r1, r5, r2 - ldr r2, _081CC694 - adds r0, r2, #0 - ands r1, r0 - ldrh r2, [r3, #4] - ldr r0, _081CC698 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, #4] - ldrh r1, [r3, #0x38] - movs r2, #0x38 - ldrsh r0, [r3, r2] - cmp r0, #3 - bgt _081CC69C - movs r2, #0x2e - ldrsh r0, [r3, r2] - cmp r0, #0 - bne _081CC6B0 - adds r0, r1, #1 - strh r0, [r3, #0x38] - b _081CC6AC - .align 2, 0 -_081CC694: .4byte 0x000003FF -_081CC698: .4byte 0xFFFFFC00 -_081CC69C: - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x36 - ldrsh r1, [r3, r2] - cmp r0, r1 - bne _081CC6B0 - strh r4, [r3, #0x38] - strh r4, [r3, #0x2e] -_081CC6AC: - movs r0, #0x78 -_081CC6AE: - strh r0, [r3, #0x34] -_081CC6B0: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081CC634 - - thumb_func_start sub_081CC6B8 -sub_081CC6B8: @ 0x081CC6B8 - push {r4, lr} - movs r0, #4 - bl GetSubstructPtr - adds r4, r0, #0 - movs r0, #1 - bl GetBgY - asrs r0, r0, #8 - movs r1, #0x84 - subs r1, r1, r0 - adds r4, #0xc - movs r2, #2 -_081CC6D2: - ldm r4!, {r0} - strh r1, [r0, #0x22] - subs r2, #1 - cmp r2, #0 - bge _081CC6D2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081CC6B8 - - thumb_func_start sub_081CC6E4 -sub_081CC6E4: @ 0x081CC6E4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #4 - bl GetSubstructPtr - movs r1, #1 - ands r4, r1 - lsls r5, r4, #2 - movs r6, #5 - rsbs r6, r6, #0 - adds r4, r0, #0 - adds r4, #0xc - movs r3, #2 -_081CC6FE: - ldm r4!, {r0} - adds r0, #0x3e - ldrb r2, [r0] - adds r1, r6, #0 - ands r1, r2 - orrs r1, r5 - strb r1, [r0] - subs r3, #1 - cmp r3, #0 - bge _081CC6FE - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_081CC6E4 - - thumb_func_start sub_081CC718 -sub_081CC718: @ 0x081CC718 - push {r4, lr} - ldr r1, _081CC748 - movs r0, #0xb - bl AllocSubstruct - adds r4, r0, #0 - cmp r4, #0 - beq _081CC75C - ldr r1, _081CC74C - adds r0, r4, r1 - bl sub_081D151C - bl sub_081CD0D0 - ldr r1, _081CC750 - movs r0, #0x14 - strh r0, [r1] - ldr r0, _081CC754 - adds r1, r4, r0 - ldr r0, _081CC758 - str r0, [r1] - movs r0, #1 - b _081CC75E - .align 2, 0 -_081CC748: .4byte 0x0000678C -_081CC74C: .4byte 0x00006428 -_081CC750: .4byte gUnknown_3002350 -_081CC754: .4byte 0x00006304 -_081CC758: .4byte sub_081CC7CC -_081CC75C: - movs r0, #0 -_081CC75E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081CC718 - - thumb_func_start sub_081CC764 -sub_081CC764: @ 0x081CC764 - push {r4, lr} - ldr r1, _081CC794 - movs r0, #0xb - bl AllocSubstruct - adds r4, r0, #0 - cmp r4, #0 - beq _081CC7A8 - ldr r1, _081CC798 - adds r0, r4, r1 - bl sub_081D151C - bl sub_081CD158 - ldr r1, _081CC79C - movs r0, #0x14 - strh r0, [r1] - ldr r0, _081CC7A0 - adds r1, r4, r0 - ldr r0, _081CC7A4 - str r0, [r1] - movs r0, #1 - b _081CC7AA - .align 2, 0 -_081CC794: .4byte 0x0000678C -_081CC798: .4byte 0x00006428 -_081CC79C: .4byte gUnknown_3002350 -_081CC7A0: .4byte 0x00006304 -_081CC7A4: .4byte sub_081CC7CC -_081CC7A8: - movs r0, #0 -_081CC7AA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081CC764 - - thumb_func_start sub_081CC7B0 -sub_081CC7B0: @ 0x081CC7B0 - push {lr} - movs r0, #0xb - bl GetSubstructPtr - ldr r2, _081CC7C8 - adds r1, r0, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {r1} - bx r1 - .align 2, 0 -_081CC7C8: .4byte 0x00006304 - thumb_func_end sub_081CC7B0 - - thumb_func_start sub_081CC7CC -sub_081CC7CC: @ 0x081CC7CC - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x12 - bl GetSubstructPtr - adds r5, r0, #0 - adds r0, r4, #0 - bl sub_081CC924 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _081CC840 - ldr r0, _081CC824 - ldrh r1, [r0, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _081CC810 - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _081CC840 - movs r1, #0xc6 - lsls r1, r1, #7 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _081CC830 - ldrh r1, [r5, #2] - ldrh r0, [r5] - subs r0, #1 - cmp r1, r0 - bne _081CC840 -_081CC810: - movs r0, #5 - bl sub_080A306C - ldr r0, _081CC828 - adds r1, r4, r0 - ldr r0, _081CC82C - str r0, [r1] - movs r2, #2 - b _081CC840 - .align 2, 0 -_081CC824: .4byte gUnknown_3002360 -_081CC828: .4byte 0x00006304 -_081CC82C: .4byte sub_081CC8DC -_081CC830: - movs r0, #5 - bl sub_080A306C - movs r2, #5 - ldr r0, _081CC848 - adds r1, r4, r0 - ldr r0, _081CC84C - str r0, [r1] -_081CC840: - adds r0, r2, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081CC848: .4byte 0x00006304 -_081CC84C: .4byte sub_081CC850 - thumb_func_end sub_081CC7CC - - thumb_func_start sub_081CC850 -sub_081CC850: @ 0x081CC850 - push {r4, r5, r6, lr} - sub sp, #4 - adds r6, r0, #0 - movs r4, #0 - bl sub_081200C4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081CC8CA - bl sub_081CE648 - ldr r1, _081CC8A8 - adds r5, r6, r1 - movs r1, #0 - ldrsb r1, [r5, r1] - ldr r2, _081CC8AC - adds r4, r6, r2 - adds r1, r4, r1 - strb r0, [r1] - movs r0, #0x12 - bl GetSubstructPtr - ldrh r1, [r0, #2] - lsls r1, r1, #2 - adds r0, r0, r1 - ldrb r2, [r0, #4] - ldrb r3, [r0, #5] - movs r0, #0 - ldrsb r0, [r5, r0] - adds r4, r4, r0 - ldrb r1, [r4] - mov r0, sp - strb r1, [r0] - cmp r2, #0xe - bne _081CC8B4 - movs r0, #0x64 - muls r0, r3, r0 - ldr r1, _081CC8B0 - adds r0, r0, r1 - movs r1, #8 - mov r2, sp - bl SetMonData - b _081CC8C0 - .align 2, 0 -_081CC8A8: .4byte 0x00006786 -_081CC8AC: .4byte 0x00006783 -_081CC8B0: .4byte gUnknown_2024190 -_081CC8B4: - adds r0, r2, #0 - adds r1, r3, #0 - movs r2, #8 - mov r3, sp - bl SetBoxMonDataAt -_081CC8C0: - ldr r0, _081CC8D4 - adds r1, r6, r0 - ldr r0, _081CC8D8 - str r0, [r1] - movs r4, #6 -_081CC8CA: - adds r0, r4, #0 - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_081CC8D4: .4byte 0x00006304 -_081CC8D8: .4byte sub_081CC7CC - thumb_func_end sub_081CC850 - - thumb_func_start sub_081CC8DC -sub_081CC8DC: @ 0x081CC8DC - push {lr} - movs r1, #0xc6 - lsls r1, r1, #7 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _081CC8F4 - ldr r0, _081CC8F0 - b _081CC8F6 - .align 2, 0 -_081CC8F0: .4byte 0x000186AA -_081CC8F4: - ldr r0, _081CC8FC -_081CC8F6: - pop {r1} - bx r1 - .align 2, 0 -_081CC8FC: .4byte 0x000186A2 - thumb_func_end sub_081CC8DC - - thumb_func_start sub_081CC900 -sub_081CC900: @ 0x081CC900 - push {lr} - movs r0, #0xb - bl GetSubstructPtr - movs r1, #0xc6 - lsls r1, r1, #7 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _081CC91A - movs r0, #0x12 - bl FreePokenavSubstruct -_081CC91A: - movs r0, #0xb - bl FreePokenavSubstruct - pop {r0} - bx r0 - thumb_func_end sub_081CC900 - - thumb_func_start sub_081CC924 -sub_081CC924: @ 0x081CC924 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x12 - bl GetSubstructPtr - adds r2, r0, #0 - movs r3, #0 - ldr r0, _081CC95C - ldrh r1, [r0, #0x2c] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _081CC960 - movs r1, #0xc6 - lsls r1, r1, #7 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _081CC950 - ldrh r0, [r2, #2] - cmp r0, #0 - beq _081CC98E -_081CC950: - movs r0, #5 - bl sub_080A306C - movs r0, #1 - b _081CC986 - .align 2, 0 -_081CC95C: .4byte gUnknown_3002360 -_081CC960: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _081CC98E - movs r1, #0xc6 - lsls r1, r1, #7 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _081CC97E - ldrh r1, [r2, #2] - ldrh r0, [r2] - subs r0, #1 - cmp r1, r0 - bge _081CC98E -_081CC97E: - movs r0, #5 - bl sub_080A306C - movs r0, #0 -_081CC986: - bl sub_081CC998 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 -_081CC98E: - adds r0, r3, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CC924 - - thumb_func_start sub_081CC998 -sub_081CC998: @ 0x081CC998 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r0, #0xb - bl GetSubstructPtr - adds r4, r0, #0 - movs r0, #0x12 - bl GetSubstructPtr - adds r5, r0, #0 - mov r0, r8 - cmp r0, #0 - beq _081CC9C4 - ldr r1, _081CC9C0 - adds r0, r4, r1 - b _081CC9C8 - .align 2, 0 -_081CC9C0: .4byte 0x00006788 -_081CC9C4: - ldr r2, _081CCA08 - adds r0, r4, r2 -_081CC9C8: - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r7, r0, #0 - ldr r1, _081CCA0C - adds r0, r4, r1 - ldr r2, _081CCA10 - adds r1, r4, r2 - movs r2, #0 - ldrsb r2, [r1, r2] - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #2 - ldr r3, _081CCA14 - adds r1, r1, r3 - adds r1, r4, r1 - lsls r2, r7, #2 - adds r2, r2, r7 - lsls r2, r2, #2 - adds r2, r2, r3 - adds r2, r4, r2 - bl sub_081D15CC - ldrh r6, [r5, #2] - bl sub_081CD4BC - cmp r0, #0 - beq _081CCA18 - ldrh r1, [r5] - b _081CCA1C - .align 2, 0 -_081CCA08: .4byte 0x00006787 -_081CCA0C: .4byte 0x00006428 -_081CCA10: .4byte 0x00006786 -_081CCA14: .4byte 0x0000643C -_081CCA18: - ldrh r1, [r5] - subs r1, #1 -_081CCA1C: - eors r1, r6 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - adds r6, r0, #0 - mov r0, r8 - cmp r0, #0 - beq _081CCA72 - ldr r1, _081CCA60 - adds r2, r4, r1 - ldrb r0, [r2] - adds r1, #1 - adds r3, r4, r1 - strb r0, [r3] - ldr r0, _081CCA64 - adds r1, r4, r0 - ldrb r0, [r1] - strb r0, [r2] - strb r7, [r1] - ldrb r1, [r3] - ldr r2, _081CCA68 - adds r0, r4, r2 - strb r1, [r0] - ldrh r0, [r5, #2] - cmp r0, #0 - bne _081CCA52 - ldrh r0, [r5] -_081CCA52: - subs r1, r0, #1 - strh r1, [r5, #2] - lsls r0, r1, #0x10 - cmp r0, #0 - beq _081CCA6C - subs r1, #1 - b _081CCAC4 - .align 2, 0 -_081CCA60: .4byte 0x00006787 -_081CCA64: .4byte 0x00006786 -_081CCA68: .4byte 0x00006789 -_081CCA6C: - ldrh r0, [r5] - subs r1, r0, #1 - b _081CCAC4 -_081CCA72: - ldr r0, _081CCAA0 - adds r2, r4, r0 - ldrb r0, [r2] - ldr r1, _081CCAA4 - adds r3, r4, r1 - strb r0, [r3] - ldr r0, _081CCAA8 - adds r1, r4, r0 - ldrb r0, [r1] - strb r0, [r2] - strb r7, [r1] - ldrb r1, [r3] - ldr r2, _081CCAAC - adds r0, r4, r2 - strb r1, [r0] - ldrh r1, [r5, #2] - ldrh r0, [r5] - subs r0, #1 - cmp r1, r0 - bge _081CCAB0 - adds r0, r1, #1 - b _081CCAB2 - .align 2, 0 -_081CCAA0: .4byte 0x00006788 -_081CCAA4: .4byte 0x00006787 -_081CCAA8: .4byte 0x00006786 -_081CCAAC: .4byte 0x00006789 -_081CCAB0: - movs r0, #0 -_081CCAB2: - strh r0, [r5, #2] - ldrh r1, [r5, #2] - ldrh r0, [r5] - subs r0, #1 - cmp r1, r0 - bge _081CCAC2 - adds r1, #1 - b _081CCAC4 -_081CCAC2: - movs r1, #0 -_081CCAC4: - ldr r2, _081CCAD8 - adds r0, r4, r2 - strh r1, [r0] - ldrh r4, [r5, #2] - bl sub_081CD4BC - cmp r0, #0 - beq _081CCADC - ldrh r1, [r5] - b _081CCAE0 - .align 2, 0 -_081CCAD8: .4byte 0x00006302 -_081CCADC: - ldrh r1, [r5] - subs r1, #1 -_081CCAE0: - eors r1, r4 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - cmp r6, #0 - bne _081CCAF0 - movs r0, #3 - b _081CCAFA -_081CCAF0: - cmp r0, #0 - beq _081CCAF8 - movs r0, #1 - b _081CCAFA -_081CCAF8: - movs r0, #4 -_081CCAFA: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_081CC998 - - thumb_func_start sub_081CCB04 -sub_081CCB04: @ 0x081CCB04 - push {r4, lr} - movs r0, #0xb - bl GetSubstructPtr - adds r4, r0, #0 - movs r0, #0x12 - bl GetSubstructPtr - adds r2, r0, #0 - ldr r1, _081CCB2C - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, #9 - bls _081CCB22 - b _081CCC70 -_081CCB22: - lsls r0, r0, #2 - ldr r1, _081CCB30 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081CCB2C: .4byte 0x0000678A -_081CCB30: .4byte _081CCB34 -_081CCB34: @ jump table - .4byte _081CCB5C @ case 0 - .4byte _081CCB68 @ case 1 - .4byte _081CCB74 @ case 2 - .4byte _081CCB80 @ case 3 - .4byte _081CCBD0 @ case 4 - .4byte _081CCBE8 @ case 5 - .4byte _081CCC00 @ case 6 - .4byte _081CCC18 @ case 7 - .4byte _081CCC30 @ case 8 - .4byte _081CCC48 @ case 9 -_081CCB5C: - movs r1, #2 - ldrsh r0, [r2, r1] - movs r1, #0 - bl sub_081CCF84 - b _081CCC70 -_081CCB68: - movs r1, #2 - ldrsh r0, [r2, r1] - movs r1, #0 - bl sub_081CD17C - b _081CCC70 -_081CCB74: - movs r1, #2 - ldrsh r0, [r2, r1] - movs r1, #0 - bl sub_081CD2F8 - b _081CCC70 -_081CCB80: - ldrh r0, [r2] - cmp r0, #1 - bne _081CCBA8 - ldr r2, _081CCBA4 - adds r0, r4, r2 - movs r1, #0 - strb r1, [r0] - adds r2, #1 - adds r0, r4, r2 - strb r1, [r0] - adds r2, #1 - adds r0, r4, r2 - strb r1, [r0] - adds r2, #2 - adds r0, r4, r2 - strb r1, [r0] - movs r0, #1 - b _081CCC7C - .align 2, 0 -_081CCBA4: .4byte 0x00006786 -_081CCBA8: - ldr r0, _081CCBC4 - adds r1, r4, r0 - movs r0, #0 - strb r0, [r1] - ldr r2, _081CCBC8 - adds r1, r4, r2 - movs r0, #1 - strb r0, [r1] - ldr r0, _081CCBCC - adds r1, r4, r0 - movs r0, #2 - strb r0, [r1] - b _081CCC70 - .align 2, 0 -_081CCBC4: .4byte 0x00006786 -_081CCBC8: .4byte 0x00006787 -_081CCBCC: .4byte 0x00006788 -_081CCBD0: - ldrh r0, [r2, #2] - adds r0, #1 - ldrh r2, [r2] - cmp r0, r2 - blt _081CCBDC - movs r0, #0 -_081CCBDC: - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #1 - bl sub_081CCF84 - b _081CCC70 -_081CCBE8: - ldrh r0, [r2, #2] - adds r0, #1 - ldrh r2, [r2] - cmp r0, r2 - blt _081CCBF4 - movs r0, #0 -_081CCBF4: - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #1 - bl sub_081CD17C - b _081CCC70 -_081CCC00: - ldrh r0, [r2, #2] - adds r0, #1 - ldrh r2, [r2] - cmp r0, r2 - blt _081CCC0C - movs r0, #0 -_081CCC0C: - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #1 - bl sub_081CD2F8 - b _081CCC70 -_081CCC18: - ldrh r0, [r2, #2] - subs r0, #1 - cmp r0, #0 - bge _081CCC24 - ldrh r0, [r2] - subs r0, #1 -_081CCC24: - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #2 - bl sub_081CCF84 - b _081CCC70 -_081CCC30: - ldrh r0, [r2, #2] - subs r0, #1 - cmp r0, #0 - bge _081CCC3C - ldrh r0, [r2] - subs r0, #1 -_081CCC3C: - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #2 - bl sub_081CD17C - b _081CCC70 -_081CCC48: - ldrh r0, [r2, #2] - subs r0, #1 - cmp r0, #0 - bge _081CCC54 - ldrh r0, [r2] - subs r0, #1 -_081CCC54: - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #2 - bl sub_081CD2F8 - ldr r2, _081CCC6C - adds r1, r4, r2 - movs r0, #0 - strb r0, [r1] - movs r0, #1 - b _081CCC7C - .align 2, 0 -_081CCC6C: .4byte 0x0000678A -_081CCC70: - ldr r0, _081CCC84 - adds r1, r4, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #0 -_081CCC7C: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081CCC84: .4byte 0x0000678A - thumb_func_end sub_081CCB04 - - thumb_func_start sub_081CCC88 -sub_081CCC88: @ 0x081CCC88 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, r4, #0 - movs r0, #0xb - bl GetSubstructPtr - adds r1, r0, #0 - cmp r4, #1 - beq _081CCCC8 - cmp r4, #1 - bgt _081CCCA6 - cmp r4, #0 - beq _081CCCAC - b _081CCD04 -_081CCCA6: - cmp r5, #2 - beq _081CCCE4 - b _081CCD04 -_081CCCAC: - ldr r2, _081CCCC0 - adds r0, r1, r2 - movs r2, #0 - ldrsh r0, [r0, r2] - ldr r2, _081CCCC4 - adds r1, r1, r2 - ldrb r1, [r1] - bl sub_081CCF84 - b _081CCD04 - .align 2, 0 -_081CCCC0: .4byte 0x00006302 -_081CCCC4: .4byte 0x00006789 -_081CCCC8: - ldr r2, _081CCCDC - adds r0, r1, r2 - movs r2, #0 - ldrsh r0, [r0, r2] - ldr r2, _081CCCE0 - adds r1, r1, r2 - ldrb r1, [r1] - bl sub_081CD17C - b _081CCD04 - .align 2, 0 -_081CCCDC: .4byte 0x00006302 -_081CCCE0: .4byte 0x00006789 -_081CCCE4: - ldr r2, _081CCCFC - adds r0, r1, r2 - movs r2, #0 - ldrsh r0, [r0, r2] - ldr r2, _081CCD00 - adds r1, r1, r2 - ldrb r1, [r1] - bl sub_081CD2F8 - movs r0, #1 - b _081CCD06 - .align 2, 0 -_081CCCFC: .4byte 0x00006302 -_081CCD00: .4byte 0x00006789 -_081CCD04: - movs r0, #0 -_081CCD06: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_081CCC88 - - thumb_func_start sub_081CCD0C -sub_081CCD0C: @ 0x081CCD0C - push {r4, lr} - adds r4, r0, #0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - b _081CCD24 -_081CCD16: - strb r3, [r4] - adds r1, #1 - adds r4, #1 - lsls r0, r2, #0x10 - ldr r2, _081CCD60 - adds r0, r0, r2 - lsrs r2, r0, #0x10 -_081CCD24: - ldrb r3, [r1] - adds r0, r3, #0 - cmp r0, #0xff - bne _081CCD16 - adds r1, r2, #0 - lsls r0, r1, #0x10 - ldr r2, _081CCD60 - adds r0, r0, r2 - lsrs r2, r0, #0x10 - lsls r1, r1, #0x10 - cmp r1, #0 - ble _081CCD52 - movs r3, #0 -_081CCD3E: - strb r3, [r4] - adds r4, #1 - adds r1, r2, #0 - lsls r0, r1, #0x10 - ldr r2, _081CCD60 - adds r0, r0, r2 - lsrs r2, r0, #0x10 - lsls r1, r1, #0x10 - cmp r1, #0 - bgt _081CCD3E -_081CCD52: - movs r0, #0xff - strb r0, [r4] - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081CCD60: .4byte 0xFFFF0000 - thumb_func_end sub_081CCD0C - - thumb_func_start sub_081CCD64 -sub_081CCD64: @ 0x081CCD64 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r5, r0, #0 - adds r4, r1, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sl, r2 - movs r0, #0x12 - bl GetSubstructPtr - lsls r4, r4, #2 - adds r0, r0, r4 - ldrb r4, [r0, #4] - mov r8, r4 - ldrb r6, [r0, #5] - mov sb, r6 - movs r0, #0xfc - strb r0, [r5] - adds r5, #1 - movs r0, #4 - strb r0, [r5] - adds r5, #1 - movs r0, #8 - strb r0, [r5] - adds r5, #1 - movs r0, #0 - strb r0, [r5] - adds r5, #1 - movs r0, #9 - strb r0, [r5] - adds r5, #1 - adds r0, r4, #0 - adds r1, r6, #0 - movs r2, #0x2d - movs r3, #0 - bl GetBoxOrPartyMonData - cmp r0, #0 - beq _081CCDD0 - ldr r1, _081CCDCC - adds r0, r5, #0 - movs r2, #0 - movs r3, #0xc - bl StringCopyPadded - b _081CCF6C - .align 2, 0 -_081CCDCC: .4byte gUnknown_85C8C62 -_081CCDD0: - adds r0, r4, #0 - adds r1, r6, #0 - movs r2, #2 - adds r3, r5, #0 - bl GetBoxOrPartyMonData - adds r0, r5, #0 - bl StringGetEnd10 - adds r0, r4, #0 - adds r1, r6, #0 - movs r2, #0xb - movs r3, #0 - bl GetBoxOrPartyMonData - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - cmp r4, #0xe - bne _081CCE20 - movs r0, #0x64 - adds r4, r6, #0 - muls r4, r0, r4 - ldr r0, _081CCE1C - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x38 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - adds r0, r4, #0 - bl GetMonGender - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - b _081CCE3E - .align 2, 0 -_081CCE1C: .4byte gUnknown_2024190 -_081CCE20: - mov r0, r8 - mov r1, sb - bl GetBoxedMonPtr - adds r4, r0, #0 - bl GetBoxMonGender - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r0, r4, #0 - bl GetLevelFromBoxMonExp - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 -_081CCE3E: - cmp r7, #0x1d - beq _081CCE46 - cmp r7, #0x20 - bne _081CCE5C -_081CCE46: - lsls r1, r7, #1 - adds r1, r1, r7 - lsls r1, r1, #1 - ldr r0, _081CCE64 - adds r1, r1, r0 - adds r0, r5, #0 - bl StringCompare - cmp r0, #0 - bne _081CCE5C - movs r6, #0xff -_081CCE5C: - adds r3, r5, #0 - movs r4, #0 - b _081CCE70 - .align 2, 0 -_081CCE64: .4byte gUnknown_82EA31C -_081CCE68: - adds r3, #1 - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_081CCE70: - ldrb r0, [r3] - cmp r0, #0xff - bne _081CCE68 - adds r1, r4, #0 - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r1, #4 - bhi _081CCE94 - movs r2, #0 -_081CCE84: - strb r2, [r3] - adds r3, #1 - adds r1, r4, #0 - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r1, #4 - bls _081CCE84 -_081CCE94: - movs r0, #0 - strb r0, [r3] - adds r3, #1 - cmp r6, #0 - beq _081CCEA4 - cmp r6, #0xfe - beq _081CCECA - b _081CCEEE -_081CCEA4: - movs r1, #0xfc - strb r1, [r3] - adds r3, #1 - movs r0, #1 - strb r0, [r3] - adds r3, #1 - movs r0, #4 - strb r0, [r3] - adds r3, #1 - strb r1, [r3] - adds r3, #1 - movs r0, #3 - strb r0, [r3] - adds r3, #1 - movs r0, #5 - strb r0, [r3] - adds r3, #1 - movs r0, #0xb5 - b _081CCEEE -_081CCECA: - movs r1, #0xfc - strb r1, [r3] - adds r3, #1 - movs r0, #1 - strb r0, [r3] - adds r3, #1 - movs r0, #6 - strb r0, [r3] - adds r3, #1 - strb r1, [r3] - adds r3, #1 - movs r0, #3 - strb r0, [r3] - adds r3, #1 - movs r0, #7 - strb r0, [r3] - adds r3, #1 - movs r0, #0xb6 -_081CCEEE: - strb r0, [r3] - adds r3, #1 - movs r0, #0xfc - strb r0, [r3] - adds r3, #1 - movs r0, #4 - strb r0, [r3] - adds r3, #1 - movs r0, #8 - strb r0, [r3] - adds r3, #1 - movs r5, #0 - strb r5, [r3] - adds r3, #1 - movs r0, #9 - strb r0, [r3] - adds r3, #1 - movs r0, #0xba - strb r0, [r3] - adds r3, #1 - movs r0, #0xf9 - strb r0, [r3] - adds r3, #1 - movs r0, #5 - strb r0, [r3] - adds r3, #1 - adds r4, r3, #0 - adds r0, r4, #0 - mov r1, r8 - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - adds r3, r0, #0 - subs r4, r3, r4 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - strb r5, [r3] - adds r3, #1 - mov r0, sl - cmp r0, #0 - bne _081CCF66 - movs r0, #3 - subs r0, r0, r4 - lsls r0, r0, #0x10 - ldr r1, _081CCF7C - adds r0, r0, r1 - lsrs r4, r0, #0x10 - ldr r0, _081CCF80 - cmp r4, r0 - beq _081CCF66 - movs r2, #0 - adds r1, r0, #0 -_081CCF58: - strb r2, [r3] - adds r3, #1 - subs r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, r1 - bne _081CCF58 -_081CCF66: - movs r0, #0xff - strb r0, [r3] - adds r0, r3, #0 -_081CCF6C: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081CCF7C: .4byte 0xFFFF0000 -_081CCF80: .4byte 0x0000FFFF - thumb_func_end sub_081CCD64 - - thumb_func_start sub_081CCF84 -sub_081CCF84: @ 0x081CCF84 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - movs r0, #0xb - bl GetSubstructPtr - adds r5, r0, #0 - movs r0, #0x12 - bl GetSubstructPtr - adds r7, r0, #0 - mov r1, r8 - lsls r0, r1, #0x10 - asrs r4, r0, #0x10 - bl sub_081CD4BC - cmp r0, #0 - beq _081CCFBA - ldrh r2, [r7] - cmp r4, r2 - bne _081CCFC2 - b _081CD060 -_081CCFBA: - ldrh r0, [r7] - subs r0, #1 - cmp r4, r0 - beq _081CD060 -_081CCFC2: - lsls r0, r6, #6 - ldr r1, _081CD024 - adds r0, r0, r1 - adds r0, r5, r0 - mov r2, r8 - lsls r4, r2, #0x10 - lsrs r1, r4, #0x10 - movs r2, #0 - bl sub_081CCD64 - asrs r4, r4, #0xe - adds r4, r7, r4 - ldrb r3, [r4, #4] - lsls r0, r6, #1 - adds r0, r0, r6 - lsls r4, r0, #3 - ldr r1, _081CD028 - adds r0, r5, r1 - adds r0, r0, r4 - movs r2, #0 - movs r1, #0xfc - strb r1, [r0] - ldr r1, _081CD02C - adds r0, r5, r1 - adds r0, r0, r4 - movs r1, #4 - strb r1, [r0] - ldr r1, _081CD030 - adds r0, r5, r1 - adds r0, r0, r4 - movs r1, #8 - strb r1, [r0] - ldr r1, _081CD034 - adds r0, r5, r1 - adds r0, r0, r4 - strb r2, [r0] - ldr r2, _081CD038 - adds r0, r5, r2 - adds r0, r0, r4 - movs r1, #9 - strb r1, [r0] - cmp r3, #0xe - bne _081CD044 - adds r0, r4, r5 - ldr r1, _081CD03C - adds r0, r0, r1 - ldr r1, _081CD040 - b _081CD054 - .align 2, 0 -_081CD024: .4byte 0x00006368 -_081CD028: .4byte 0x00006320 -_081CD02C: .4byte 0x00006321 -_081CD030: .4byte 0x00006322 -_081CD034: .4byte 0x00006323 -_081CD038: .4byte 0x00006324 -_081CD03C: .4byte 0x00006325 -_081CD040: .4byte gUnknown_85CB7C6 -_081CD044: - adds r4, r4, r5 - ldr r2, _081CD05C - adds r4, r4, r2 - adds r0, r3, #0 - bl GetBoxNamePtr - adds r1, r0, #0 - adds r0, r4, #0 -_081CD054: - movs r2, #8 - bl sub_081CCD0C - b _081CD0BC - .align 2, 0 -_081CD05C: .4byte 0x00006325 -_081CD060: - movs r1, #0 - lsls r4, r6, #6 - lsls r0, r6, #1 - mov r8, r0 - adds r3, r4, #0 - ldr r0, _081CD0C8 - adds r2, r5, r0 - movs r7, #0 -_081CD070: - adds r0, r1, r3 - adds r0, r2, r0 - strb r7, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0xb - bls _081CD070 - adds r1, r1, r4 - ldr r2, _081CD0C8 - adds r0, r5, r2 - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] - movs r1, #0 - mov r2, r8 - adds r0, r2, r6 - lsls r3, r0, #3 - ldr r0, _081CD0CC - adds r2, r5, r0 - movs r4, #0 -_081CD09A: - adds r0, r1, r3 - adds r0, r2, r0 - strb r4, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #7 - bls _081CD09A - mov r2, r8 - adds r0, r2, r6 - lsls r0, r0, #3 - adds r0, r1, r0 - ldr r2, _081CD0CC - adds r1, r5, r2 - adds r1, r1, r0 - movs r0, #0xff - strb r0, [r1] -_081CD0BC: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081CD0C8: .4byte 0x00006368 -_081CD0CC: .4byte 0x00006320 - thumb_func_end sub_081CCF84 - - thumb_func_start sub_081CD0D0 -sub_081CD0D0: @ 0x081CD0D0 - push {r4, r5, r6, r7, lr} - movs r0, #0xb - bl GetSubstructPtr - adds r7, r0, #0 - ldr r1, _081CD0F4 - movs r0, #0x12 - bl AllocSubstruct - adds r6, r0, #0 - movs r0, #0xc6 - lsls r0, r0, #7 - adds r1, r7, r0 - movs r0, #0 - strb r0, [r1] - movs r4, #0 - movs r5, #0 - b _081CD124 - .align 2, 0 -_081CD0F4: .4byte 0x000006AC -_081CD0F8: - movs r0, #0x64 - muls r0, r4, r0 - ldr r1, _081CD150 - adds r0, r0, r1 - movs r1, #0x2d - bl GetMonData - adds r2, r0, #0 - cmp r2, #0 - bne _081CD11E - lsls r1, r5, #2 - adds r1, r6, r1 - movs r0, #0xe - strb r0, [r1, #4] - strb r4, [r1, #5] - strh r2, [r1, #6] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_081CD11E: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_081CD124: - bl sub_0806B004 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r4, r0 - blo _081CD0F8 - lsls r0, r5, #2 - adds r0, r6, r0 - movs r1, #0 - strb r1, [r0, #4] - strb r1, [r0, #5] - movs r2, #0 - strh r1, [r0, #6] - strh r1, [r6, #2] - adds r0, r5, #1 - strh r0, [r6] - ldr r1, _081CD154 - adds r0, r7, r1 - strb r2, [r0] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081CD150: .4byte gUnknown_2024190 -_081CD154: .4byte 0x0000678A - thumb_func_end sub_081CD0D0 - - thumb_func_start sub_081CD158 -sub_081CD158: @ 0x081CD158 - push {lr} - movs r0, #0xb - bl GetSubstructPtr - movs r1, #0xc6 - lsls r1, r1, #7 - adds r2, r0, r1 - movs r3, #0 - movs r1, #1 - strb r1, [r2] - ldr r1, _081CD178 - adds r0, r0, r1 - strb r3, [r0] - pop {r0} - bx r0 - .align 2, 0 -_081CD178: .4byte 0x0000678A - thumb_func_end sub_081CD158 - - thumb_func_start sub_081CD17C -sub_081CD17C: @ 0x081CD17C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sb, r1 - movs r0, #0xb - bl GetSubstructPtr - mov r8, r0 - movs r0, #0x12 - bl GetSubstructPtr - adds r4, r0, #0 - lsls r0, r6, #0x10 - asrs r5, r0, #0x10 - bl sub_081CD4BC - cmp r0, #0 - beq _081CD1B2 - ldrh r0, [r4] - cmp r5, r0 - bne _081CD1BA - b _081CD2A8 -_081CD1B2: - ldrh r0, [r4] - subs r0, #1 - cmp r5, r0 - beq _081CD2A8 -_081CD1BA: - lsls r0, r6, #0x10 - asrs r0, r0, #0xe - adds r0, r4, r0 - ldrb r6, [r0, #4] - ldrb r7, [r0, #5] - adds r0, r6, #0 - adds r1, r7, #0 - movs r2, #0x16 - movs r3, #0 - bl GetBoxOrPartyMonData - mov r1, sb - lsls r5, r1, #2 - adds r4, r5, r1 - ldr r1, _081CD25C - add r1, r8 - adds r1, r1, r4 - strb r0, [r1] - adds r0, r6, #0 - adds r1, r7, #0 - movs r2, #0x2f - movs r3, #0 - bl GetBoxOrPartyMonData - ldr r1, _081CD260 - add r1, r8 - adds r1, r1, r4 - strb r0, [r1] - adds r0, r6, #0 - adds r1, r7, #0 - movs r2, #0x21 - movs r3, #0 - bl GetBoxOrPartyMonData - ldr r1, _081CD264 - add r1, r8 - adds r1, r1, r4 - strb r0, [r1] - adds r0, r6, #0 - adds r1, r7, #0 - movs r2, #0x18 - movs r3, #0 - bl GetBoxOrPartyMonData - ldr r1, _081CD268 - add r1, r8 - adds r1, r1, r4 - strb r0, [r1] - adds r0, r6, #0 - adds r1, r7, #0 - movs r2, #0x17 - movs r3, #0 - bl GetBoxOrPartyMonData - ldr r1, _081CD26C - add r1, r8 - adds r1, r1, r4 - strb r0, [r1] - movs r0, #0xcf - lsls r0, r0, #7 - add r0, r8 - mov r2, sb - adds r4, r0, r2 - adds r0, r6, #0 - adds r1, r7, #0 - movs r2, #0x30 - movs r3, #0 - bl GetBoxOrPartyMonData - cmp r0, #0xff - beq _081CD270 - adds r0, r6, #0 - adds r1, r7, #0 - movs r2, #0x30 - movs r3, #0 - bl GetBoxOrPartyMonData - movs r1, #0x1d - bl __udivsi3 - b _081CD272 - .align 2, 0 -_081CD25C: .4byte 0x00006428 -_081CD260: .4byte 0x00006429 -_081CD264: .4byte 0x0000642A -_081CD268: .4byte 0x0000642B -_081CD26C: .4byte 0x0000642C -_081CD270: - movs r0, #9 -_081CD272: - strb r0, [r4] - adds r0, r6, #0 - adds r1, r7, #0 - movs r2, #8 - movs r3, #0 - bl GetBoxOrPartyMonData - ldr r1, _081CD2A0 - add r1, r8 - add r1, sb - strb r0, [r1] - mov r0, sb - adds r1, r5, r0 - ldr r2, _081CD2A4 - adds r0, r1, r2 - add r0, r8 - lsls r1, r1, #2 - adds r2, #0x14 - adds r1, r1, r2 - add r1, r8 - bl sub_081D1D70 - b _081CD2E0 - .align 2, 0 -_081CD2A0: .4byte 0x00006783 -_081CD2A4: .4byte 0x00006428 -_081CD2A8: - movs r2, #0 - mov r0, sb - lsls r5, r0, #2 - add r5, sb - ldr r4, _081CD2EC - add r4, r8 - lsls r3, r5, #2 - mov sb, r2 - ldr r7, _081CD2F0 - movs r6, #0x9b -_081CD2BC: - adds r0, r2, r5 - adds r0, r4, r0 - mov r1, sb - strb r1, [r0] - lsls r0, r2, #2 - adds r0, r0, r3 - add r0, r8 - adds r1, r0, r7 - strh r6, [r1] - ldr r1, _081CD2F4 - adds r0, r0, r1 - movs r1, #0x5b - strh r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #4 - bls _081CD2BC -_081CD2E0: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081CD2EC: .4byte 0x00006428 -_081CD2F0: .4byte 0x0000643C -_081CD2F4: .4byte 0x0000643E - thumb_func_end sub_081CD17C - - thumb_func_start sub_081CD2F8 -sub_081CD2F8: @ 0x081CD2F8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sb, r1 - movs r0, #0xb - bl GetSubstructPtr - adds r7, r0, #0 - movs r0, #0x12 - bl GetSubstructPtr - adds r4, r0, #0 - lsls r0, r6, #0x10 - asrs r5, r0, #0x10 - bl sub_081CD4BC - cmp r0, #0 - beq _081CD32C - ldrh r0, [r4] - b _081CD330 -_081CD32C: - ldrh r0, [r4] - subs r0, #1 -_081CD330: - cmp r5, r0 - beq _081CD39E - lsls r0, r6, #0x10 - asrs r0, r0, #0xe - adds r0, r4, r0 - ldrb r5, [r0, #4] - ldrb r6, [r0, #5] - adds r0, r5, #0 - adds r1, r6, #0 - movs r2, #0x41 - movs r3, #0 - bl GetBoxOrPartyMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r5, #0 - adds r1, r6, #0 - movs r2, #1 - movs r3, #0 - bl GetBoxOrPartyMonData - mov r8, r0 - adds r0, r5, #0 - adds r1, r6, #0 - movs r2, #0 - movs r3, #0 - bl GetBoxOrPartyMonData - adds r5, r0, #0 - lsls r0, r4, #3 - ldr r1, _081CD3AC - adds r0, r0, r1 - mov r2, sb - lsls r1, r2, #0xd - movs r2, #0xc0 - lsls r2, r2, #2 - adds r1, r1, r2 - adds r1, r7, r1 - movs r2, #1 - str r2, [sp] - adds r2, r4, #0 - adds r3, r5, #0 - bl sub_080344AC - adds r0, r4, #0 - mov r1, r8 - adds r2, r5, #0 - bl GetMonSpritePalFromSpeciesAndPersonality - mov r2, sb - lsls r1, r2, #7 - adds r1, r7, r1 - bl LZ77UnCompWram -_081CD39E: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081CD3AC: .4byte gUnknown_82DDA1C - thumb_func_end sub_081CD2F8 - - thumb_func_start sub_081CD3B0 -sub_081CD3B0: @ 0x081CD3B0 - push {lr} - movs r0, #0x12 - bl GetSubstructPtr - ldrh r0, [r0] - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CD3B0 - - thumb_func_start sub_081CD3C0 -sub_081CD3C0: @ 0x081CD3C0 - push {lr} - movs r0, #0x12 - bl GetSubstructPtr - ldrh r0, [r0, #2] - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CD3C0 - - thumb_func_start sub_081CD3D0 -sub_081CD3D0: @ 0x081CD3D0 - push {lr} - movs r0, #0xb - bl GetSubstructPtr - ldr r1, _081CD3E0 - adds r0, r0, r1 - pop {r1} - bx r1 - .align 2, 0 -_081CD3E0: .4byte 0x00006428 - thumb_func_end sub_081CD3D0 - - thumb_func_start sub_081CD3E4 -sub_081CD3E4: @ 0x081CD3E4 - push {lr} - movs r0, #0xb - bl GetSubstructPtr - ldr r1, _081CD3F8 - adds r0, r0, r1 - ldrb r0, [r0] - pop {r1} - bx r1 - .align 2, 0 -_081CD3F8: .4byte 0x00006786 - thumb_func_end sub_081CD3E4 - - thumb_func_start sub_081CD3FC -sub_081CD3FC: @ 0x081CD3FC - push {lr} - movs r0, #0xb - bl GetSubstructPtr - ldr r1, _081CD410 - adds r0, r0, r1 - ldrb r0, [r0] - pop {r1} - bx r1 - .align 2, 0 -_081CD410: .4byte 0x00006302 - thumb_func_end sub_081CD3FC - - thumb_func_start sub_081CD414 -sub_081CD414: @ 0x081CD414 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0xb - bl GetSubstructPtr - lsls r4, r4, #0xd - movs r1, #0xc0 - lsls r1, r1, #2 - adds r4, r4, r1 - adds r0, r0, r4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CD414 - - thumb_func_start sub_081CD434 -sub_081CD434: @ 0x081CD434 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0xb - bl GetSubstructPtr - lsls r4, r4, #7 - adds r0, r0, r4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081CD434 - - thumb_func_start sub_081CD44C -sub_081CD44C: @ 0x081CD44C - push {lr} - movs r0, #0xb - bl GetSubstructPtr - ldr r1, _081CD460 - adds r0, r0, r1 - ldrb r0, [r0] - pop {r1} - bx r1 - .align 2, 0 -_081CD460: .4byte 0x00006789 - thumb_func_end sub_081CD44C - - thumb_func_start sub_081CD464 -sub_081CD464: @ 0x081CD464 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0xb - bl GetSubstructPtr - lsls r4, r4, #6 - ldr r1, _081CD480 - adds r4, r4, r1 - adds r0, r0, r4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081CD480: .4byte 0x00006368 - thumb_func_end sub_081CD464 - - thumb_func_start sub_081CD484 -sub_081CD484: @ 0x081CD484 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0xb - bl GetSubstructPtr - lsls r1, r4, #1 - adds r1, r1, r4 - lsls r1, r1, #3 - ldr r2, _081CD4A4 - adds r1, r1, r2 - adds r0, r0, r1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081CD4A4: .4byte 0x00006320 - thumb_func_end sub_081CD484 - - thumb_func_start sub_081CD4A8 -sub_081CD4A8: @ 0x081CD4A8 - push {lr} - movs r0, #0x12 - bl GetSubstructPtr - ldrh r1, [r0, #2] - lsls r1, r1, #2 - adds r0, r0, r1 - ldrh r0, [r0, #6] - pop {r1} - bx r1 - thumb_func_end sub_081CD4A8 - - thumb_func_start sub_081CD4BC -sub_081CD4BC: @ 0x081CD4BC - push {lr} - movs r0, #0xb - bl GetSubstructPtr - movs r1, #0xc6 - lsls r1, r1, #7 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #1 - beq _081CD4D4 - movs r0, #0 - b _081CD4D6 -_081CD4D4: - movs r0, #1 -_081CD4D6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CD4BC - - thumb_func_start sub_081CD4DC -sub_081CD4DC: @ 0x081CD4DC - push {lr} - movs r0, #0xb - bl GetSubstructPtr - adds r2, r0, #0 - movs r1, #0xc6 - lsls r1, r1, #7 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #1 - beq _081CD4F6 - movs r0, #0 - b _081CD506 -_081CD4F6: - ldr r3, _081CD50C - adds r0, r2, r3 - movs r1, #0 - ldrsb r1, [r0, r1] - subs r3, #3 - adds r0, r2, r3 - adds r0, r0, r1 - ldrb r0, [r0] -_081CD506: - pop {r1} - bx r1 - .align 2, 0 -_081CD50C: .4byte 0x00006786 - thumb_func_end sub_081CD4DC - - thumb_func_start sub_081CD510 -sub_081CD510: @ 0x081CD510 - push {lr} - movs r0, #0xb - bl GetSubstructPtr - ldr r2, _081CD530 - adds r1, r0, r2 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - subs r2, #6 - adds r0, r0, r2 - adds r0, r0, r1 - ldrb r0, [r0] - pop {r1} - bx r1 - .align 2, 0 -_081CD530: .4byte 0x00006786 - thumb_func_end sub_081CD510 - - thumb_func_start sub_081CD534 -sub_081CD534: @ 0x081CD534 - push {r4, lr} - ldr r1, _081CD56C - movs r0, #0xc - bl AllocSubstruct - adds r4, r0, #0 - cmp r4, #0 - beq _081CD584 - ldr r0, _081CD570 - adds r1, r4, r0 - movs r0, #0xff - strb r0, [r1] - ldr r0, _081CD574 - movs r1, #1 - bl CreateLoopedTask - str r0, [r4] - ldr r0, _081CD578 - adds r1, r4, r0 - ldr r0, _081CD57C - str r0, [r1] - ldr r0, _081CD580 - adds r1, r4, r0 - movs r0, #0 - strb r0, [r1] - movs r0, #1 - b _081CD586 - .align 2, 0 -_081CD56C: .4byte 0x000038AC -_081CD570: .4byte 0x00001816 -_081CD574: .4byte sub_081CD5F4 -_081CD578: .4byte 0x00001810 -_081CD57C: .4byte sub_081CD5E0 -_081CD580: .4byte 0x00002908 -_081CD584: - movs r0, #0 -_081CD586: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081CD534 - - thumb_func_start sub_081CD58C -sub_081CD58C: @ 0x081CD58C - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0xc - bl GetSubstructPtr - adds r5, r0, #0 - ldr r0, _081CD5B8 - lsls r4, r4, #2 - adds r4, r4, r0 - ldr r0, [r4] - movs r1, #1 - bl CreateLoopedTask - str r0, [r5] - ldr r0, _081CD5BC - adds r5, r5, r0 - ldr r0, _081CD5C0 - str r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081CD5B8: .4byte gUnknown_85F5990 -_081CD5BC: .4byte 0x00001810 -_081CD5C0: .4byte sub_081CD5E0 - thumb_func_end sub_081CD58C - - thumb_func_start sub_081CD5C4 -sub_081CD5C4: @ 0x081CD5C4 - push {lr} - movs r0, #0xc - bl GetSubstructPtr - ldr r1, _081CD5DC - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r1} - thumb_func_end sub_081CD5C4 - - thumb_func_start sub_081CD5D8 -sub_081CD5D8: @ 0x081CD5D8 - bx r1 - .align 2, 0 -_081CD5DC: .4byte 0x00001810 - thumb_func_end sub_081CD5D8 - - thumb_func_start sub_081CD5E0 -sub_081CD5E0: @ 0x081CD5E0 - push {lr} - movs r0, #0xc - bl GetSubstructPtr - ldr r0, [r0] - bl IsLoopedTaskActive - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CD5E0 - - thumb_func_start sub_081CD5F4 -sub_081CD5F4: @ 0x081CD5F4 - push {r4, r5, r6, lr} - sub sp, #0xc - adds r4, r0, #0 - movs r0, #0xc - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #0x14 - bls _081CD608 - b _081CDA24 -_081CD608: - lsls r0, r4, #2 - ldr r1, _081CD614 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081CD614: .4byte _081CD618 -_081CD618: @ jump table - .4byte _081CD66C @ case 0 - .4byte _081CD678 @ case 1 - .4byte _081CD6F4 @ case 2 - .4byte _081CD718 @ case 3 - .4byte _081CD790 @ case 4 - .4byte _081CD7D4 @ case 5 - .4byte _081CD810 @ case 6 - .4byte _081CD878 @ case 7 - .4byte _081CD880 @ case 8 - .4byte _081CD886 @ case 9 - .4byte _081CD896 @ case 10 - .4byte _081CD8A6 @ case 11 - .4byte _081CD8B6 @ case 12 - .4byte _081CD8CC @ case 13 - .4byte _081CD928 @ case 14 - .4byte _081CD94C @ case 15 - .4byte _081CD978 @ case 16 - .4byte _081CD99C @ case 17 - .4byte _081CD9AA @ case 18 - .4byte _081CD9BA @ case 19 - .4byte _081CD9C2 @ case 20 -_081CD66C: - bl sub_081CCB04 - cmp r0, #1 - beq _081CD676 - b _081CDA20 -_081CD676: - b _081CD710 -_081CD678: - ldr r0, _081CD6E0 - movs r1, #3 - bl InitBgTemplates - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - ldr r1, _081CD6E4 - movs r0, #0 - bl SetGpuReg - ldr r1, _081CD6E8 - movs r0, #0x50 - bl SetGpuReg - ldr r1, _081CD6EC - movs r0, #0x52 - bl SetGpuReg - ldr r1, _081CD6F0 - movs r0, #0 - str r0, [sp] - movs r0, #3 - b _081CD708 - .align 2, 0 -_081CD6E0: .4byte gUnknown_85F5964 -_081CD6E4: .4byte 0x00007940 -_081CD6E8: .4byte 0x00000844 -_081CD6EC: .4byte 0x0000040B -_081CD6F0: .4byte gUnknown_85F4E6C -_081CD6F4: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _081CD702 - b _081CDA20 -_081CD702: - ldr r1, _081CD714 - str r0, [sp] - movs r0, #2 -_081CD708: - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram -_081CD710: - movs r0, #0 - b _081CDA26 - .align 2, 0 -_081CD714: .4byte gUnknown_85F57EC -_081CD718: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081CD724 - b _081CDA20 -_081CD724: - ldr r0, _081CD778 - adds r4, r5, #4 - adds r1, r4, #0 - bl LZ77UnCompVram - movs r0, #3 - adds r1, r4, #0 - bl SetBgTilemapBuffer - bl sub_081CD4BC - cmp r0, #1 - bne _081CD752 - ldr r1, _081CD77C - movs r0, #9 - str r0, [sp] - movs r0, #4 - str r0, [sp, #4] - movs r0, #3 - movs r2, #0 - movs r3, #5 - bl CopyToBgTilemapBufferRect -_081CD752: - movs r0, #3 - bl CopyBgTilemapBufferToVram - ldr r0, _081CD780 - movs r1, #0x10 - movs r2, #0x20 - bl ClearBottomWindow - ldr r0, _081CD784 - movs r1, #0xf0 - movs r2, #0x20 - bl ClearBottomWindow - ldr r0, _081CD788 - adds r1, r5, r0 - ldr r0, _081CD78C - strh r0, [r1] - b _081CD710 - .align 2, 0 -_081CD778: .4byte gUnknown_85F5600 -_081CD77C: .4byte gUnknown_85F58FC -_081CD780: .4byte gUnknown_85F4E0C -_081CD784: .4byte gUnknown_85F4E4C -_081CD788: .4byte 0x00001814 -_081CD78C: .4byte 0x0000FFB0 -_081CD790: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081CD79C - b _081CDA20 -_081CD79C: - ldr r0, _081CD7C8 - ldr r1, _081CD7CC - adds r4, r5, r1 - adds r1, r4, #0 - bl LZ77UnCompVram - movs r0, #2 - adds r1, r4, #0 - bl SetBgTilemapBuffer - movs r0, #2 - bl CopyBgTilemapBufferToVram - ldr r0, _081CD7D0 - movs r1, #0x30 - movs r2, #0x20 - bl ClearBottomWindow - movs r0, #2 - bl sub_081D1824 - b _081CD710 - .align 2, 0 -_081CD7C8: .4byte gUnknown_85F5800 -_081CD7CC: .4byte 0x00001004 -_081CD7D0: .4byte gUnknown_85F4E2C -_081CD7D4: - movs r0, #1 - movs r1, #0 - movs r2, #0 - movs r3, #1 - bl sub_08199A88 - movs r0, #1 - movs r1, #0x11 - movs r2, #1 - movs r3, #1 - bl sub_08199A88 - movs r0, #0 - str r0, [sp, #8] - ldr r2, _081CD808 - adds r4, r5, r2 - ldr r2, _081CD80C - add r0, sp, #8 - adds r1, r4, #0 - bl CpuSet - movs r0, #1 - adds r1, r4, #0 - bl SetBgTilemapBuffer - b _081CD710 - .align 2, 0 -_081CD808: .4byte 0x00000804 -_081CD80C: .4byte 0x05000200 -_081CD810: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081CD81C - b _081CDA20 -_081CD81C: - ldr r0, _081CD85C - bl AddWindow - movs r2, #0xc1 - lsls r2, r2, #5 - adds r1, r5, r2 - strb r0, [r1] - bl sub_081CD4BC - cmp r0, #1 - bne _081CD856 - ldr r0, _081CD860 - bl AddWindow - ldr r2, _081CD864 - adds r1, r5, r2 - strb r0, [r1] - ldr r0, _081CD868 - bl AddWindow - ldr r2, _081CD86C - adds r1, r5, r2 - strb r0, [r1] - ldr r0, _081CD870 - bl AddWindow - ldr r2, _081CD874 - adds r1, r5, r2 - strb r0, [r1] -_081CD856: - bl sub_08004480 - b _081CD710 - .align 2, 0 -_081CD85C: .4byte gUnknown_85F5970 -_081CD860: .4byte gUnknown_85F5978 -_081CD864: .4byte 0x00001821 -_081CD868: .4byte gUnknown_85F5980 -_081CD86C: .4byte 0x00001822 -_081CD870: .4byte gUnknown_85F5988 -_081CD874: .4byte 0x00001823 -_081CD878: - movs r0, #0 - bl sub_081CE464 - b _081CD710 -_081CD880: - bl sub_081CE118 - b _081CD710 -_081CD886: - bl sub_081CD4BC - cmp r0, #1 - beq _081CD890 - b _081CD710 -_081CD890: - bl sub_081CE068 - b _081CD710 -_081CD896: - bl sub_081CD3E4 - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #8 - lsrs r1, r1, #0x10 - movs r0, #0 - b _081CD8C4 -_081CD8A6: - bl sub_081CD3E4 - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #8 - lsrs r1, r1, #0x10 - movs r0, #1 - b _081CD8C4 -_081CD8B6: - bl sub_081CD3E4 - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #8 - lsrs r1, r1, #0x10 - movs r0, #2 -_081CD8C4: - movs r2, #1 - bl GiveMailToMon - b _081CD710 -_081CD8CC: - bl sub_081CD3E4 - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #8 - lsrs r1, r1, #0x10 - movs r0, #3 - movs r2, #1 - bl GiveMailToMon - cmp r0, #1 - beq _081CD8E6 - b _081CDA20 -_081CD8E6: - movs r1, #0xc1 - lsls r1, r1, #5 - adds r0, r5, r1 - ldrb r0, [r0] - bl PutWindowTilemap - bl sub_081CD4BC - cmp r0, #1 - beq _081CD8FC - b _081CD710 -_081CD8FC: - ldr r2, _081CD91C - adds r0, r5, r2 - ldrb r0, [r0] - bl PutWindowTilemap - ldr r1, _081CD920 - adds r0, r5, r1 - ldrb r0, [r0] - bl PutWindowTilemap - ldr r2, _081CD924 - adds r0, r5, r2 - ldrb r0, [r0] - bl PutWindowTilemap - b _081CD710 - .align 2, 0 -_081CD91C: .4byte 0x00001821 -_081CD920: .4byte 0x00001822 -_081CD924: .4byte 0x00001823 -_081CD928: - movs r0, #1 - bl ShowBg - movs r0, #2 - bl HideBg - movs r0, #3 - bl ShowBg - bl sub_081CD4BC - cmp r0, #1 - beq _081CD944 - b _081CD710 -_081CD944: - movs r0, #4 - bl sub_081C7364 - b _081CD710 -_081CD94C: - movs r0, #1 - bl sub_081C7280 - bl sub_081CD4BC - cmp r0, #0 - beq _081CD95C - b _081CD710 -_081CD95C: - movs r0, #6 - bl LoadLeftHeaderGfxForIndex - movs r0, #1 - movs r1, #1 - movs r2, #0 - bl sub_081C7748 - movs r0, #6 - movs r1, #1 - movs r2, #0 - bl sub_081C7748 - b _081CD710 -_081CD978: - bl sub_081C72F4 - cmp r0, #0 - bne _081CDA20 - bl sub_081CD4BC - cmp r0, #0 - bne _081CD990 - bl sub_081C77B8 - cmp r0, #0 - bne _081CDA20 -_081CD990: - ldr r0, _081CD998 - bl sub_081C6DC0 - b _081CD710 - .align 2, 0 -_081CD998: .4byte sub_081CE578 -_081CD99C: - bl sub_081CE5C4 - bl sub_081CD3D0 - bl sub_081D16F4 - b _081CD710 -_081CD9AA: - bl sub_081CD3D0 - bl sub_081D1704 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081CDA20 - b _081CD710 -_081CD9BA: - movs r0, #1 - bl sub_081CE5A8 - b _081CD710 -_081CD9C2: - bl sub_081CD3D0 - ldr r2, _081CDA14 - adds r1, r5, r2 - bl sub_081D27A8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081CDA20 - ldr r0, _081CDA18 - adds r6, r5, r0 - adds r0, r6, #0 - bl sub_081D2A94 - bl sub_081CD4BC - cmp r0, #1 - beq _081CD9F8 - bl sub_081CD3C0 - adds r4, r0, #0 - bl sub_081CD3B0 - lsls r4, r4, #0x10 - lsls r0, r0, #0x10 - cmp r4, r0 - beq _081CDA24 -_081CD9F8: - ldr r1, _081CDA1C - adds r0, r5, r1 - ldrb r4, [r0] - bl sub_081CD510 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_081D2AB0 - b _081CDA24 - .align 2, 0 -_081CDA14: .4byte 0x00001814 -_081CDA18: .4byte 0x000028E0 -_081CDA1C: .4byte 0x00001816 -_081CDA20: - movs r0, #2 - b _081CDA26 -_081CDA24: - movs r0, #4 -_081CDA26: - add sp, #0xc - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CD5F4 - - thumb_func_start sub_081CDA30 -sub_081CDA30: @ 0x081CDA30 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0xc - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #1 - beq _081CDA68 - cmp r4, #1 - bgt _081CDA4A - cmp r4, #0 - beq _081CDA54 - b _081CDAD4 -_081CDA4A: - cmp r4, #2 - beq _081CDA88 - cmp r4, #3 - beq _081CDA9E - b _081CDAD4 -_081CDA54: - bl sub_081CE5FC - ldr r1, _081CDA64 - adds r0, r5, r1 - bl sub_081D2B50 - movs r0, #1 - b _081CDAD6 - .align 2, 0 -_081CDA64: .4byte 0x000028E0 -_081CDA68: - bl sub_081CD3D0 - ldr r2, _081CDA84 - adds r1, r5, r2 - bl sub_081D27D4 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081CDAAE - movs r0, #0 - bl sub_081CE5A8 - movs r0, #1 - b _081CDAD6 - .align 2, 0 -_081CDA84: .4byte 0x00001814 -_081CDA88: - movs r0, #0 - bl sub_081C7280 - bl sub_081CD4BC - cmp r0, #0 - bne _081CDA9A - bl sub_081C7060 -_081CDA9A: - movs r0, #0 - b _081CDAD6 -_081CDA9E: - bl sub_081C72F4 - cmp r0, #0 - bne _081CDAAE - bl MainMenuLoopedTaskIsBusy - cmp r0, #0 - beq _081CDAB2 -_081CDAAE: - movs r0, #2 - b _081CDAD6 -_081CDAB2: - ldr r1, _081CDAD0 - adds r0, r5, r1 - bl sub_081D2B7C - movs r0, #1 - bl HideBg - movs r0, #2 - bl HideBg - movs r0, #3 - bl HideBg - movs r0, #1 - b _081CDAD6 - .align 2, 0 -_081CDAD0: .4byte 0x000028E0 -_081CDAD4: - movs r0, #4 -_081CDAD6: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_081CDA30 - - thumb_func_start sub_081CDADC -sub_081CDADC: @ 0x081CDADC - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #0xc - bl GetSubstructPtr - adds r6, r0, #0 - bl sub_081CD3D0 - adds r2, r0, #0 - cmp r4, #9 - bls _081CDAF4 - b _081CDC30 -_081CDAF4: - lsls r0, r4, #2 - ldr r1, _081CDB00 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081CDB00: .4byte _081CDB04 -_081CDB04: @ jump table - .4byte _081CDB2C @ case 0 - .4byte _081CDB30 @ case 1 - .4byte _081CDB3A @ case 2 - .4byte _081CDB50 @ case 3 - .4byte _081CDB58 @ case 4 - .4byte _081CDB78 @ case 5 - .4byte _081CDB88 @ case 6 - .4byte _081CDB98 @ case 7 - .4byte _081CDBAE @ case 8 - .4byte _081CDBC8 @ case 9 -_081CDB2C: - movs r0, #0 - b _081CDB32 -_081CDB30: - movs r0, #1 -_081CDB32: - bl sub_081CCC88 -_081CDB36: - movs r0, #1 - b _081CDC32 -_081CDB3A: - movs r0, #2 - bl sub_081CCC88 - ldr r1, _081CDB4C - adds r0, r6, r1 - bl sub_081D2B50 - b _081CDB36 - .align 2, 0 -_081CDB4C: .4byte 0x000028E0 -_081CDB50: - adds r0, r2, #0 - bl sub_081D16BC - b _081CDB36 -_081CDB58: - ldr r1, _081CDB74 - adds r0, r6, r1 - bl sub_081D2780 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081CDC2C - bl sub_081CD3E4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_081CE464 - b _081CDB36 - .align 2, 0 -_081CDB74: .4byte 0x00001814 -_081CDB78: - bl sub_081CD3E4 - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #8 - lsrs r1, r1, #0x10 - movs r0, #0 - b _081CDBA6 -_081CDB88: - bl sub_081CD3E4 - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #8 - lsrs r1, r1, #0x10 - movs r0, #1 - b _081CDBA6 -_081CDB98: - bl sub_081CD3E4 - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #8 - lsrs r1, r1, #0x10 - movs r0, #2 -_081CDBA6: - movs r2, #0 - bl GiveMailToMon - b _081CDB36 -_081CDBAE: - bl sub_081CD3E4 - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #8 - lsrs r1, r1, #0x10 - movs r0, #3 - movs r2, #0 - bl GiveMailToMon - cmp r0, #1 - beq _081CDB36 - b _081CDC2C -_081CDBC8: - bl sub_081CD3D0 - adds r2, r0, #0 - ldr r0, _081CDC20 - adds r1, r6, r0 - adds r0, r2, #0 - bl sub_081D27A8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081CDC2C - ldr r1, _081CDC24 - adds r0, r6, r1 - bl sub_081D2A94 - bl sub_081CD4BC - cmp r0, #1 - beq _081CDC00 - bl sub_081CD3C0 - adds r4, r0, #0 - bl sub_081CD3B0 - lsls r4, r4, #0x10 - lsls r0, r0, #0x10 - cmp r4, r0 - beq _081CDB36 -_081CDC00: - ldr r0, _081CDC24 - adds r5, r6, r0 - ldr r1, _081CDC28 - adds r0, r6, r1 - ldrb r4, [r0] - bl sub_081CD510 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_081D2AB0 - b _081CDB36 - .align 2, 0 -_081CDC20: .4byte 0x00001814 -_081CDC24: .4byte 0x000028E0 -_081CDC28: .4byte 0x00001816 -_081CDC2C: - movs r0, #2 - b _081CDC32 -_081CDC30: - movs r0, #4 -_081CDC32: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_081CDADC - - thumb_func_start sub_081CDC38 -sub_081CDC38: @ 0x081CDC38 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0xc - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #8 - bhi _081CDD3C - lsls r0, r4, #2 - ldr r1, _081CDC54 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081CDC54: .4byte _081CDC58 -_081CDC58: @ jump table - .4byte _081CDC7C @ case 0 - .4byte _081CDC80 @ case 1 - .4byte _081CDC84 @ case 2 - .4byte _081CDC8E @ case 3 - .4byte _081CDC9E @ case 4 - .4byte _081CDCAE @ case 5 - .4byte _081CDCBE @ case 6 - .4byte _081CDCD6 @ case 7 - .4byte _081CDCF2 @ case 8 -_081CDC7C: - movs r0, #0 - b _081CDC86 -_081CDC80: - movs r0, #1 - b _081CDC86 -_081CDC84: - movs r0, #2 -_081CDC86: - bl sub_081CCC88 - movs r0, #1 - b _081CDD3E -_081CDC8E: - bl sub_081CD3E4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_081CE464 - movs r0, #1 - b _081CDD3E -_081CDC9E: - bl sub_081CD3E4 - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #8 - lsrs r1, r1, #0x10 - movs r0, #0 - b _081CDCCC -_081CDCAE: - bl sub_081CD3E4 - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #8 - lsrs r1, r1, #0x10 - movs r0, #1 - b _081CDCCC -_081CDCBE: - bl sub_081CD3E4 - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #8 - lsrs r1, r1, #0x10 - movs r0, #2 -_081CDCCC: - movs r2, #0 - bl GiveMailToMon - movs r0, #1 - b _081CDD3E -_081CDCD6: - bl sub_081CD3E4 - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #8 - lsrs r1, r1, #0x10 - movs r0, #3 - movs r2, #0 - bl GiveMailToMon - cmp r0, #1 - bne _081CDD38 - movs r0, #1 - b _081CDD3E -_081CDCF2: - bl sub_081CD3D0 - ldr r2, _081CDD2C - adds r1, r5, r2 - bl sub_081D27A8 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081CDD38 - ldr r0, _081CDD30 - adds r4, r5, r0 - adds r0, r4, #0 - bl sub_081D2A94 - ldr r1, _081CDD34 - adds r0, r5, r1 - ldrb r5, [r0] - bl sub_081CD510 - adds r2, r0, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_081D2AB0 - movs r0, #1 - b _081CDD3E - .align 2, 0 -_081CDD2C: .4byte 0x00001814 -_081CDD30: .4byte 0x000028E0 -_081CDD34: .4byte 0x00001816 -_081CDD38: - movs r0, #2 - b _081CDD3E -_081CDD3C: - movs r0, #4 -_081CDD3E: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_081CDC38 - - thumb_func_start sub_081CDD44 -sub_081CDD44: @ 0x081CDD44 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0xc - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #7 - bhi _081CDE12 - lsls r0, r4, #2 - ldr r1, _081CDD60 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081CDD60: .4byte _081CDD64 -_081CDD64: @ jump table - .4byte _081CDD84 @ case 0 - .4byte _081CDD88 @ case 1 - .4byte _081CDD92 @ case 2 - .4byte _081CDDA8 @ case 3 - .4byte _081CDDC0 @ case 4 - .4byte _081CDDD0 @ case 5 - .4byte _081CDDE0 @ case 6 - .4byte _081CDDF6 @ case 7 -_081CDD84: - movs r0, #0 - b _081CDD8A -_081CDD88: - movs r0, #1 -_081CDD8A: - bl sub_081CCC88 -_081CDD8E: - movs r0, #1 - b _081CDE14 -_081CDD92: - movs r0, #2 - bl sub_081CCC88 - ldr r1, _081CDDA4 - adds r0, r5, r1 - bl sub_081D2B50 - b _081CDD8E - .align 2, 0 -_081CDDA4: .4byte 0x000028E0 -_081CDDA8: - bl sub_081CD3D0 - ldr r2, _081CDDBC - adds r1, r5, r2 - bl sub_081D27D4 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081CDD8E - b _081CDE0E - .align 2, 0 -_081CDDBC: .4byte 0x00001814 -_081CDDC0: - bl sub_081CD3E4 - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #8 - lsrs r1, r1, #0x10 - movs r0, #0 - b _081CDDEE -_081CDDD0: - bl sub_081CD3E4 - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #8 - lsrs r1, r1, #0x10 - movs r0, #1 - b _081CDDEE -_081CDDE0: - bl sub_081CD3E4 - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #8 - lsrs r1, r1, #0x10 - movs r0, #2 -_081CDDEE: - movs r2, #0 - bl GiveMailToMon - b _081CDD8E -_081CDDF6: - bl sub_081CD3E4 - adds r1, r0, #0 - lsls r1, r1, #0x18 - asrs r1, r1, #8 - lsrs r1, r1, #0x10 - movs r0, #3 - movs r2, #0 - bl GiveMailToMon - cmp r0, #1 - beq _081CDD8E -_081CDE0E: - movs r0, #2 - b _081CDE14 -_081CDE12: - movs r0, #4 -_081CDE14: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CDD44 - - thumb_func_start sub_081CDE1C -sub_081CDE1C: @ 0x081CDE1C - push {lr} - cmp r0, #1 - beq _081CDE46 - cmp r0, #1 - bgt _081CDE2C - cmp r0, #0 - beq _081CDE32 - b _081CDE5A -_081CDE2C: - cmp r0, #2 - beq _081CDE4E - b _081CDE5A -_081CDE32: - bl sub_081CD4DC - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0xb0 - movs r2, #0x20 - bl sub_0811FFC4 -_081CDE42: - movs r0, #1 - b _081CDE5C -_081CDE46: - movs r0, #5 - bl sub_081C7364 - b _081CDE42 -_081CDE4E: - bl sub_081C73A8 - cmp r0, #1 - bne _081CDE42 - movs r0, #2 - b _081CDE5C -_081CDE5A: - movs r0, #4 -_081CDE5C: - pop {r1} - bx r1 - thumb_func_end sub_081CDE1C - - thumb_func_start sub_081CDE60 -sub_081CDE60: @ 0x081CDE60 - push {lr} - cmp r0, #1 - beq _081CDE7E - cmp r0, #1 - bgt _081CDE70 - cmp r0, #0 - beq _081CDE76 - b _081CDE92 -_081CDE70: - cmp r0, #2 - beq _081CDE86 - b _081CDE92 -_081CDE76: - bl sub_08120018 -_081CDE7A: - movs r0, #1 - b _081CDE94 -_081CDE7E: - movs r0, #4 - bl sub_081C7364 - b _081CDE7A -_081CDE86: - bl sub_081C73A8 - cmp r0, #1 - bne _081CDE7A - movs r0, #2 - b _081CDE94 -_081CDE92: - movs r0, #4 -_081CDE94: - pop {r1} - bx r1 - thumb_func_end sub_081CDE60 - - thumb_func_start sub_081CDE98 -sub_081CDE98: @ 0x081CDE98 - push {lr} - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r2, #1 - movs r3, #4 - bl sub_080089D8 - ldr r1, _081CDEB0 - bl StringCopy - pop {r1} - bx r1 - .align 2, 0 -_081CDEB0: .4byte gUnknown_85CB7CE - thumb_func_end sub_081CDE98 - - thumb_func_start GiveMailToMon -GiveMailToMon: @ 0x081CDEB4 - push {r4, r5, r6, r7, lr} - sub sp, #0x1c - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r4, r2, #0x18 - movs r0, #0xc - bl GetSubstructPtr - adds r6, r0, #0 - cmp r7, #1 - beq _081CDF10 - cmp r7, #1 - bgt _081CDEDA - cmp r7, #0 - beq _081CDEE4 - b _081CE05C -_081CDEDA: - cmp r7, #2 - beq _081CDF52 - cmp r7, #3 - beq _081CDFD4 - b _081CE05C -_081CDEE4: - movs r1, #0xc1 - lsls r1, r1, #5 - adds r0, r6, r1 - ldrb r0, [r0] - movs r1, #0 - bl FillWindowPixelBuffer - bl sub_081CD4BC - cmp r0, #1 - beq _081CDEFC - b _081CE05C -_081CDEFC: - ldr r1, _081CDF0C - adds r0, r6, r1 - ldrb r0, [r0] - movs r1, #0 - bl FillWindowPixelBuffer - b _081CE05C - .align 2, 0 -_081CDF0C: .4byte 0x00001821 -_081CDF10: - bl sub_081CD3C0 - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - bl sub_081CD3B0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - subs r0, #1 - cmp r4, r0 - bne _081CDF32 - bl sub_081CD4BC - cmp r0, #1 - beq _081CDF32 - b _081CE05C -_081CDF32: - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - bl sub_081CD464 - adds r2, r0, #0 - movs r1, #0xc1 - lsls r1, r1, #5 - adds r0, r6, r1 - ldrb r0, [r0] - movs r1, #2 - str r1, [sp] - movs r1, #0 - str r1, [sp, #4] - str r1, [sp, #8] - movs r1, #1 - b _081CDFC4 -_081CDF52: - bl sub_081CD4BC - cmp r0, #1 - beq _081CDF5C - b _081CE05C -_081CDF5C: - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - bl sub_081CD484 - adds r2, r0, #0 - movs r1, #0xc1 - lsls r1, r1, #5 - adds r0, r6, r1 - ldrb r0, [r0] - movs r1, #0x12 - str r1, [sp] - movs r5, #0 - str r5, [sp, #4] - str r5, [sp, #8] - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - add r1, sp, #0xc - movs r0, #0xfc - strb r0, [r1] - movs r0, #4 - strb r0, [r1, #1] - movs r0, #8 - strb r0, [r1, #2] - adds r0, r1, #0 - strb r5, [r0, #3] - movs r0, #9 - strb r0, [r1, #4] - mov r4, sp - adds r4, #0x11 - bl sub_081CD4A8 - adds r1, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r4, #0 - bl sub_081CDE98 - ldr r4, _081CDFCC - adds r0, r4, #0 - add r1, sp, #0xc - bl StringExpandPlaceholders - ldr r1, _081CDFD0 - adds r0, r6, r1 - ldrb r0, [r0] - str r7, [sp] - str r5, [sp, #4] - str r5, [sp, #8] - movs r1, #1 - adds r2, r4, #0 -_081CDFC4: - movs r3, #0 - bl AddTextPrinterParameterized - b _081CE05C - .align 2, 0 -_081CDFCC: .4byte gUnknown_2021C7C -_081CDFD0: .4byte 0x00001821 -_081CDFD4: - ldr r1, _081CDFE4 - adds r0, r6, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _081CDFE8 - cmp r0, #1 - beq _081CE024 - b _081CE05C - .align 2, 0 -_081CDFE4: .4byte 0x00002908 -_081CDFE8: - cmp r4, #0 - beq _081CDFFC - movs r1, #0xc1 - lsls r1, r1, #5 - adds r0, r6, r1 - ldrb r0, [r0] - movs r1, #3 - bl CopyWindowToVram - b _081CE00A -_081CDFFC: - movs r1, #0xc1 - lsls r1, r1, #5 - adds r0, r6, r1 - ldrb r0, [r0] - movs r1, #2 - bl CopyWindowToVram -_081CE00A: - bl sub_081CD4BC - cmp r0, #1 - bne _081CE048 - ldr r0, _081CE020 - adds r1, r6, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _081CE05C - .align 2, 0 -_081CE020: .4byte 0x00002908 -_081CE024: - cmp r4, #0 - beq _081CE03C - ldr r1, _081CE038 - adds r0, r6, r1 - ldrb r0, [r0] - movs r1, #3 - bl CopyWindowToVram - b _081CE048 - .align 2, 0 -_081CE038: .4byte 0x00001821 -_081CE03C: - ldr r1, _081CE054 - adds r0, r6, r1 - ldrb r0, [r0] - movs r1, #2 - bl CopyWindowToVram -_081CE048: - ldr r0, _081CE058 - adds r1, r6, r0 - movs r0, #0 - strb r0, [r1] - movs r0, #1 - b _081CE05E - .align 2, 0 -_081CE054: .4byte 0x00001821 -_081CE058: .4byte 0x00002908 -_081CE05C: - movs r0, #0 -_081CE05E: - add sp, #0x1c - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GiveMailToMon - - thumb_func_start sub_081CE068 -sub_081CE068: @ 0x081CE068 - push {r4, lr} - movs r0, #0xc - bl GetSubstructPtr - adds r4, r0, #0 - ldr r1, _081CE090 - adds r0, r4, r1 - ldrb r0, [r0] - movs r1, #3 - bl CopyWindowToVram - ldr r0, _081CE094 - adds r4, r4, r0 - ldrb r0, [r4] - movs r1, #3 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081CE090: .4byte 0x00001822 -_081CE094: .4byte 0x00001823 - thumb_func_end sub_081CE068 - - thumb_func_start sub_081CE098 -sub_081CE098: @ 0x081CE098 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x2e - ldrsh r4, [r5, r0] - bl sub_081CD3C0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r4, r0 - bne _081CE0B6 - adds r0, r5, #0 - movs r1, #0 - bl StartSpriteAnim - b _081CE0BE -_081CE0B6: - adds r0, r5, #0 - movs r1, #1 - bl StartSpriteAnim -_081CE0BE: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_081CE098 - - thumb_func_start sub_081CE0C4 -sub_081CE0C4: @ 0x081CE0C4 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_081CD3C0 - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - bl sub_081CD3B0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - subs r0, #1 - cmp r4, r0 - bne _081CE0E4 - movs r0, #0x65 - b _081CE0E6 -_081CE0E4: - movs r0, #0x66 -_081CE0E6: - bl IndexOfSpritePaletteTag - lsls r0, r0, #4 - ldrb r2, [r5, #5] - movs r1, #0xf - ands r1, r2 - orrs r1, r0 - strb r1, [r5, #5] - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_081CE0C4 - - thumb_func_start sub_081CE0FC -sub_081CE0FC: @ 0x081CE0FC - push {r4, lr} - adds r4, r0, #0 - bl sub_081CD4DC - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl StartSpriteAnim - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081CE0FC - - thumb_func_start sub_081CE118 -sub_081CE118: @ 0x081CE118 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x58 - movs r0, #0xc - bl GetSubstructPtr - adds r6, r0, #0 - add r4, sp, #0x20 - add r5, sp, #0x38 - mov r0, sp - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_081D284C - bl sub_081CD4BC - adds r7, r4, #0 - mov sl, r5 - cmp r0, #1 - bne _081CE1AC - ldr r1, _081CE198 - adds r0, r6, r1 - movs r2, #0x6a - strh r2, [r0] - ldr r3, _081CE19C - adds r1, r6, r3 - strh r2, [r1] - bl sub_0811FE2C - bl sub_0811FFB0 - ldr r2, _081CE1A0 - movs r0, #0x69 - movs r1, #0x69 - bl sub_081204B4 - ldrb r1, [r0, #5] - movs r2, #0xc - orrs r1, r2 - strb r1, [r0, #5] - movs r1, #0xc0 - strh r1, [r0, #0x20] - movs r1, #0x20 - strh r1, [r0, #0x22] - ldr r1, _081CE1A4 - str r1, [r0, #0x1c] - ldr r2, _081CE1A8 - adds r1, r6, r2 - str r0, [r1] - movs r0, #0x69 - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - bl sub_081C7150 - add r3, sp, #0x50 - mov r8, r3 - b _081CE2FA - .align 2, 0 -_081CE198: .4byte 0x00001824 -_081CE19C: .4byte 0x00001826 -_081CE1A0: .4byte gUnknown_85F5944 -_081CE1A4: .4byte sub_081CE0FC -_081CE1A8: .4byte 0x000028DC -_081CE1AC: - mov r0, sp - bl LoadSpriteSheets - mov r0, sl - bl Pokenav_AllocAndLoadPalettes - movs r4, #0 - add r0, sp, #0x50 - mov r8, r0 - b _081CE21C -_081CE1C0: - lsls r2, r4, #2 - adds r2, r2, r4 - lsls r2, r2, #0x12 - movs r1, #0x80 - lsls r1, r1, #0xc - adds r2, r2, r1 - asrs r2, r2, #0x10 - adds r0, r7, #0 - movs r1, #0xe2 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0x40 - beq _081CE20C - ldr r2, _081CE200 - adds r0, r6, r2 - adds r0, r0, r4 - strb r3, [r0] - ldr r2, _081CE204 - lsls r0, r3, #4 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r1, r0, r2 - strh r4, [r1, #0x2e] - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, _081CE208 - str r1, [r0] - b _081CE216 - .align 2, 0 -_081CE200: .4byte 0x00001806 -_081CE204: .4byte gUnknown_20205AC -_081CE208: .4byte sub_081CE098 -_081CE20C: - ldr r3, _081CE274 - adds r0, r6, r3 - adds r0, r0, r4 - movs r1, #0xff - strb r1, [r0] -_081CE216: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_081CE21C: - bl sub_081CD3B0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - subs r0, #1 - cmp r4, r0 - blt _081CE1C0 - movs r0, #0x67 - strh r0, [r7] - ldr r0, _081CE278 - str r0, [r7, #0x14] - cmp r4, #5 - bhi _081CE290 - ldr r0, _081CE274 - adds r5, r6, r0 - ldr r1, _081CE27C - mov sb, r1 -_081CE23E: - lsls r2, r4, #2 - adds r2, r2, r4 - lsls r2, r2, #0x12 - movs r3, #0x80 - lsls r3, r3, #0xc - adds r2, r2, r3 - asrs r2, r2, #0x10 - adds r0, r7, #0 - movs r1, #0xe6 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0x40 - beq _081CE280 - adds r0, r5, r4 - strb r3, [r0] - lsls r1, r3, #4 - adds r1, r1, r3 - lsls r1, r1, #2 - add r1, sb - ldrb r2, [r1, #3] - movs r0, #0x3f - ands r0, r2 - strb r0, [r1, #3] - b _081CE286 - .align 2, 0 -_081CE274: .4byte 0x00001806 -_081CE278: .4byte sub_08007140 -_081CE27C: .4byte gUnknown_20205AC -_081CE280: - adds r1, r5, r4 - movs r0, #0xff - strb r0, [r1] -_081CE286: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #5 - bls _081CE23E -_081CE290: - movs r0, #0x66 - strh r0, [r7] - ldr r0, _081CE2E4 - str r0, [r7, #0x14] - lsls r2, r4, #2 - adds r2, r2, r4 - lsls r2, r2, #0x12 - movs r0, #0x80 - lsls r0, r0, #0xc - adds r2, r2, r0 - asrs r2, r2, #0x10 - adds r0, r7, #0 - movs r1, #0xde - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0x40 - beq _081CE2F0 - ldr r1, _081CE2E8 - adds r0, r6, r1 - adds r0, r0, r4 - strb r3, [r0] - ldr r0, _081CE2EC - lsls r2, r3, #4 - adds r2, r2, r3 - lsls r2, r2, #2 - adds r2, r2, r0 - ldrb r3, [r2, #1] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - movs r3, #0x40 - orrs r0, r3 - strb r0, [r2, #1] - ldrb r0, [r2, #3] - ands r1, r0 - movs r0, #0x80 - orrs r1, r0 - strb r1, [r2, #3] - b _081CE2FA - .align 2, 0 -_081CE2E4: .4byte sub_081CE0C4 -_081CE2E8: .4byte 0x00001806 -_081CE2EC: .4byte gUnknown_20205AC -_081CE2F0: - ldr r2, _081CE324 - adds r0, r6, r2 - adds r0, r0, r4 - movs r1, #0xff - strb r1, [r0] -_081CE2FA: - mov r0, r8 - mov r1, sl - bl sub_081D28E0 - mov r0, r8 - bl LoadSpriteSheet - movs r0, #0 - mov r3, sl - str r0, [r3, #8] - mov r0, sl - bl Pokenav_AllocAndLoadPalettes - add sp, #0x58 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081CE324: .4byte 0x00001806 - thumb_func_end sub_081CE118 - - thumb_func_start sub_081CE328 -sub_081CE328: @ 0x081CE328 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_081CD4BC - cmp r0, #1 - bne _081CE35C - ldr r1, _081CE358 - adds r0, r5, r1 - ldr r0, [r0] - bl DestroySprite - movs r0, #0x6a - bl FreeSpriteTilesByTag - movs r0, #0x69 - bl FreeSpriteTilesByTag - movs r0, #0x6a - bl FreeSpritePaletteByTag - movs r0, #0x69 - bl FreeSpritePaletteByTag - b _081CE39C - .align 2, 0 -_081CE358: .4byte 0x000028DC -_081CE35C: - movs r4, #0 -_081CE35E: - ldr r1, _081CE3C8 - adds r0, r5, r1 - adds r0, r0, r4 - ldrb r1, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _081CE3CC - adds r0, r0, r1 - bl DestroySprite - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #6 - bls _081CE35E - movs r0, #0x65 - bl FreeSpriteTilesByTag - movs r0, #0x66 - bl FreeSpriteTilesByTag - movs r0, #0x67 - bl FreeSpriteTilesByTag - movs r0, #0x65 - bl FreeSpritePaletteByTag - movs r0, #0x66 - bl FreeSpritePaletteByTag -_081CE39C: - ldr r0, _081CE3D0 - adds r1, r5, r0 - ldrb r0, [r1] - cmp r0, #0xff - beq _081CE3C2 - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _081CE3CC - adds r0, r0, r1 - bl DestroySprite - movs r0, #0x64 - bl FreeSpriteTilesByTag - movs r0, #0x64 - bl FreeSpritePaletteByTag -_081CE3C2: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081CE3C8: .4byte 0x00001806 -_081CE3CC: .4byte gUnknown_20205AC -_081CE3D0: .4byte 0x00001816 - thumb_func_end sub_081CE328 - - thumb_func_start sub_081CE3D4 -sub_081CE3D4: @ 0x081CE3D4 - push {r4, lr} - movs r0, #0xc - bl GetSubstructPtr - adds r4, r0, #0 - movs r1, #0xc1 - lsls r1, r1, #5 - adds r0, r4, r1 - ldrb r0, [r0] - bl RemoveWindow - bl sub_081CD4BC - cmp r0, #1 - bne _081CE420 - ldr r1, _081CE414 - adds r0, r4, r1 - ldrb r0, [r0] - bl RemoveWindow - ldr r1, _081CE418 - adds r0, r4, r1 - ldrb r0, [r0] - bl RemoveWindow - ldr r1, _081CE41C - adds r0, r4, r1 - ldrb r0, [r0] - bl RemoveWindow - b _081CE424 - .align 2, 0 -_081CE414: .4byte 0x00001821 -_081CE418: .4byte 0x00001822 -_081CE41C: .4byte 0x00001823 -_081CE420: - bl sub_081C7784 -_081CE424: - movs r1, #0x8a - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - adds r0, r4, #0 - bl sub_081CE328 - bl sub_081CE59C - movs r0, #0xc - bl FreePokenavSubstruct - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081CE3D4 - - thumb_func_start sub_081CE444 -sub_081CE444: @ 0x081CE444 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0xc - bl GetSubstructPtr - ldr r1, _081CE460 - adds r0, r0, r1 - ldrh r0, [r0] - adds r0, #0x26 - strh r0, [r4, #0x20] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081CE460: .4byte 0x00001814 - thumb_func_end sub_081CE444 - - thumb_func_start sub_081CE464 -sub_081CE464: @ 0x081CE464 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x28 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r0, #0xc - bl GetSubstructPtr - mov r8, r0 - ldr r7, _081CE4E4 - add r7, r8 - ldrb r0, [r7] - cmp r0, #0xff - bne _081CE530 - add r5, sp, #0x18 - add r4, sp, #0x20 - adds r0, r5, #0 - mov r1, sp - adds r2, r4, #0 - bl sub_081D2800 - adds r0, r6, #0 - bl sub_081CD414 - str r0, [sp, #0x18] - adds r0, r6, #0 - bl sub_081CD434 - str r0, [sp, #0x20] - adds r0, r4, #0 - bl LoadSpritePalette - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _081CE4E8 - add r4, r8 - strh r0, [r4] - adds r0, r5, #0 - bl LoadSpriteSheet - ldr r5, _081CE4EC - add r5, r8 - strh r0, [r5] - mov r0, sp - movs r1, #0x26 - movs r2, #0x68 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strb r0, [r7] - cmp r0, #0x40 - bne _081CE4F0 - movs r0, #0x64 - bl FreeSpriteTilesByTag - movs r0, #0x64 - bl FreeSpritePaletteByTag - movs r0, #0xff - strb r0, [r7] - b _081CE55A - .align 2, 0 -_081CE4E4: .4byte 0x00001816 -_081CE4E8: .4byte 0x00001818 -_081CE4EC: .4byte 0x0000181A -_081CE4F0: - strb r0, [r7] - ldr r2, _081CE520 - ldrb r1, [r7] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, _081CE524 - str r1, [r0] - ldr r1, _081CE528 - add r1, r8 - ldrh r0, [r5] - lsls r0, r0, #5 - ldr r2, _081CE52C - adds r0, r0, r2 - str r0, [r1] - ldrh r0, [r4] - lsls r0, r0, #4 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r0, r1 - strh r0, [r4] - b _081CE55A - .align 2, 0 -_081CE520: .4byte gUnknown_20205AC -_081CE524: .4byte sub_081CE444 -_081CE528: .4byte 0x0000181C -_081CE52C: .4byte 0x06010000 -_081CE530: - adds r0, r6, #0 - bl sub_081CD414 - ldr r1, _081CE568 - add r1, r8 - ldr r2, [r1] - ldr r1, _081CE56C - str r0, [r1] - str r2, [r1, #4] - ldr r0, _081CE570 - str r0, [r1, #8] - ldr r0, [r1, #8] - adds r0, r6, #0 - bl sub_081CD434 - ldr r1, _081CE574 - add r1, r8 - ldrh r1, [r1] - movs r2, #0x20 - bl LoadPalette -_081CE55A: - add sp, #0x28 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081CE568: .4byte 0x0000181C -_081CE56C: .4byte 0x040000D4 -_081CE570: .4byte 0x80000400 -_081CE574: .4byte 0x00001818 - thumb_func_end sub_081CE464 - - thumb_func_start sub_081CE578 -sub_081CE578: @ 0x081CE578 - push {r4, lr} - bl sub_081CD3D0 - adds r4, r0, #0 - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - adds r0, r4, #0 - bl sub_081D1750 - bl ScanlineEffect_InitHBlankDmaTransfer - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081CE578 - - thumb_func_start sub_081CE59C -sub_081CE59C: @ 0x081CE59C - push {lr} - bl SetPokenavVBlankCallback - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081CE59C - - thumb_func_start sub_081CE5A8 -sub_081CE5A8: @ 0x081CE5A8 - push {lr} - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081CE5B8 - movs r0, #2 - bl ShowBg - b _081CE5BE -_081CE5B8: - movs r0, #2 - bl HideBg -_081CE5BE: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081CE5A8 - - thumb_func_start sub_081CE5C4 -sub_081CE5C4: @ 0x081CE5C4 - push {r4, lr} - bl sub_081CD3D0 - adds r4, r0, #0 - bl sub_081CD3E4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081CE5F8 - strb r0, [r1] - adds r1, r4, #0 - adds r1, #0x50 - lsls r2, r0, #2 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, #0x14 - adds r2, r4, r2 - adds r0, r4, #0 - bl sub_081D15CC - adds r0, r4, #0 - bl sub_081D16BC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081CE5F8: .4byte gUnknown_30012B0 - thumb_func_end sub_081CE5C4 - - thumb_func_start sub_081CE5FC -sub_081CE5FC: @ 0x081CE5FC - push {r4, r5, lr} - bl sub_081CD3D0 - adds r5, r0, #0 - bl sub_081CD4BC - cmp r0, #0 - bne _081CE624 - bl sub_081CD3C0 - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - bl sub_081CD3B0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - subs r0, #1 - cmp r4, r0 - beq _081CE640 -_081CE624: - bl sub_081CD3E4 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, #0x14 - adds r1, r5, r1 - adds r2, r5, #0 - adds r2, #0x50 - adds r0, r5, #0 - bl sub_081D15CC -_081CE640: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081CE5FC - - thumb_func_start sub_081CE648 -sub_081CE648: @ 0x081CE648 - push {r4, lr} - movs r0, #0xc - bl GetSubstructPtr - adds r4, r0, #0 - bl sub_081CD4BC - cmp r0, #1 - beq _081CE65E - movs r0, #0 - b _081CE664 -_081CE65E: - ldr r1, _081CE66C - adds r0, r4, r1 - ldrb r0, [r0] -_081CE664: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081CE66C: .4byte 0x00001828 - thumb_func_end sub_081CE648 - - thumb_func_start sub_081CE670 -sub_081CE670: @ 0x081CE670 - push {r4, lr} - movs r0, #7 - movs r1, #0x24 - bl AllocSubstruct - adds r4, r0, #0 - cmp r4, #0 - beq _081CE6C4 - ldr r1, _081CE6B4 - movs r0, #0x12 - bl AllocSubstruct - str r0, [r4, #0x20] - cmp r0, #0 - beq _081CE6C4 - ldr r0, _081CE6B8 - str r0, [r4] - ldr r0, _081CE6BC - movs r1, #1 - bl CreateLoopedTask - str r0, [r4, #4] - movs r0, #0 - str r0, [r4, #0x18] - bl sub_081C6E6C - ldr r1, _081CE6C0 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r4, #0x14] - movs r0, #1 - b _081CE6C6 - .align 2, 0 -_081CE6B4: .4byte 0x000006AC -_081CE6B8: .4byte sub_081CE744 -_081CE6BC: .4byte sub_081CE850 -_081CE6C0: .4byte gUnknown_85F59AC -_081CE6C4: - movs r0, #0 -_081CE6C6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081CE670 - - thumb_func_start sub_081CE6CC -sub_081CE6CC: @ 0x081CE6CC - push {r4, lr} - movs r0, #7 - movs r1, #0x24 - bl AllocSubstruct - adds r4, r0, #0 - cmp r4, #0 - beq _081CE708 - movs r0, #0x12 - bl GetSubstructPtr - str r0, [r4, #0x20] - ldr r0, _081CE700 - str r0, [r4] - movs r0, #1 - str r0, [r4, #0x18] - bl sub_081C6E6C - ldr r1, _081CE704 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r4, #0x14] - movs r0, #1 - b _081CE70A - .align 2, 0 -_081CE700: .4byte sub_081CE764 -_081CE704: .4byte gUnknown_85F59AC -_081CE708: - movs r0, #0 -_081CE70A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081CE6CC - - thumb_func_start sub_081CE710 -sub_081CE710: @ 0x081CE710 - push {lr} - movs r0, #7 - bl GetSubstructPtr - ldr r1, [r0] - bl _call_via_r1 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CE710 - - thumb_func_start sub_081CE724 -sub_081CE724: @ 0x081CE724 - push {lr} - movs r0, #7 - bl GetSubstructPtr - ldr r0, [r0, #0x1c] - cmp r0, #0 - bne _081CE738 - movs r0, #0x12 - bl FreePokenavSubstruct -_081CE738: - movs r0, #7 - bl FreePokenavSubstruct - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081CE724 - - thumb_func_start sub_081CE744 -sub_081CE744: @ 0x081CE744 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #4] - bl IsLoopedTaskActive - cmp r0, #0 - bne _081CE756 - ldr r0, _081CE760 - str r0, [r4] -_081CE756: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081CE760: .4byte sub_081CE764 - thumb_func_end sub_081CE744 - - thumb_func_start sub_081CE764 -sub_081CE764: @ 0x081CE764 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r2, _081CE778 - ldrh r1, [r2, #0x30] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _081CE77C - movs r0, #1 - b _081CE7DA - .align 2, 0 -_081CE778: .4byte gUnknown_3002360 -_081CE77C: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _081CE788 - movs r0, #2 - b _081CE7DA -_081CE788: - ldrh r1, [r2, #0x2e] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _081CE796 - movs r0, #3 - b _081CE7DA -_081CE796: - movs r0, #0x10 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0 - beq _081CE7A6 - movs r0, #4 - b _081CE7DA -_081CE7A6: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081CE7BC - str r2, [r4, #0x1c] - ldr r0, _081CE7B8 - str r0, [r4] - movs r0, #5 - b _081CE7DA - .align 2, 0 -_081CE7B8: .4byte sub_081CE7E4 -_081CE7BC: - movs r5, #1 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - bne _081CE7CA - movs r0, #0 - b _081CE7DA -_081CE7CA: - bl GetSelectedMatchCall - ldr r1, [r4, #0x20] - strh r0, [r1, #2] - str r5, [r4, #0x1c] - ldr r0, _081CE7E0 - str r0, [r4] - movs r0, #6 -_081CE7DA: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081CE7E0: .4byte sub_081CE7EC - thumb_func_end sub_081CE764 - - thumb_func_start sub_081CE7E4 -sub_081CE7E4: @ 0x081CE7E4 - ldr r0, _081CE7E8 - bx lr - .align 2, 0 -_081CE7E8: .4byte 0x000186A3 - thumb_func_end sub_081CE7E4 - - thumb_func_start sub_081CE7EC -sub_081CE7EC: @ 0x081CE7EC - ldr r0, _081CE7F0 - bx lr - .align 2, 0 -_081CE7F0: .4byte 0x000186A9 - thumb_func_end sub_081CE7EC - - thumb_func_start sub_081CE7F4 -sub_081CE7F4: @ 0x081CE7F4 - push {lr} - movs r0, #7 - bl GetSubstructPtr - ldr r0, [r0, #0x18] - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CE7F4 - - thumb_func_start sub_081CE804 -sub_081CE804: @ 0x081CE804 - push {lr} - movs r0, #7 - bl GetSubstructPtr - ldr r0, [r0, #0x20] - adds r0, #4 - pop {r1} - bx r1 - thumb_func_end sub_081CE804 - - thumb_func_start sub_081CE814 -sub_081CE814: @ 0x081CE814 - push {lr} - movs r0, #7 - bl GetSubstructPtr - ldr r0, [r0, #0x20] - ldrh r0, [r0] - pop {r1} - bx r1 - thumb_func_end sub_081CE814 - - thumb_func_start sub_081CE824 -sub_081CE824: @ 0x081CE824 - push {r4, lr} - movs r0, #7 - bl GetSubstructPtr - adds r4, r0, #0 - bl GetSelectedMatchCall - ldr r1, [r4, #0x20] - lsls r0, r0, #2 - adds r1, r1, r0 - ldrh r0, [r1, #6] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081CE824 - - thumb_func_start sub_081CE840 -sub_081CE840: @ 0x081CE840 - push {lr} - movs r0, #7 - bl GetSubstructPtr - ldr r0, [r0, #0x20] - ldrh r0, [r0, #2] - pop {r1} - bx r1 - thumb_func_end sub_081CE840 - - thumb_func_start sub_081CE850 -sub_081CE850: @ 0x081CE850 - push {lr} - ldr r2, _081CE864 - lsls r1, r0, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {r1} - bx r1 - .align 2, 0 -_081CE864: .4byte gUnknown_85F59C0 - thumb_func_end sub_081CE850 - - thumb_func_start sub_081CE868 -sub_081CE868: @ 0x081CE868 - push {r4, r5, r6, lr} - sub sp, #4 - movs r0, #7 - bl GetSubstructPtr - adds r6, r0, #0 - ldr r0, [r6, #0x20] - movs r1, #0 - strh r1, [r0] - ldr r0, [r6, #0x20] - strh r1, [r0, #2] - ldr r1, _081CE8E8 - ldr r0, [sp] - ands r0, r1 - movs r1, #0xe - orrs r0, r1 - str r0, [sp] - movs r5, #0 -_081CE88C: - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _081CE8EC - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #5 - bl GetMonData - cmp r0, #0 - beq _081CE8DE - adds r0, r4, #0 - movs r1, #6 - bl GetMonData - cmp r0, #0 - bne _081CE8D8 - lsls r1, r5, #0x18 - lsrs r1, r1, #0x10 - ldr r2, _081CE8F0 - ldr r0, [sp] - ands r0, r2 - orrs r0, r1 - str r0, [sp] - ldr r1, [r6, #0x14] - adds r0, r4, #0 - bl GetMonData - lsls r0, r0, #0x10 - ldr r2, _081CE8F4 - ldr r1, [sp] - ands r1, r2 - orrs r1, r0 - str r1, [sp] - adds r0, r6, #0 - mov r1, sp - bl sub_081CE9F8 -_081CE8D8: - adds r5, #1 - cmp r5, #5 - ble _081CE88C -_081CE8DE: - movs r0, #1 - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_081CE8E8: .4byte 0xFFFFFF00 -_081CE8EC: .4byte gUnknown_2024190 -_081CE8F0: .4byte 0xFFFF00FF -_081CE8F4: .4byte 0x0000FFFF - thumb_func_end sub_081CE868 - - thumb_func_start sub_081CE8F8 -sub_081CE8F8: @ 0x081CE8F8 - push {lr} - movs r0, #7 - bl GetSubstructPtr - movs r1, #0 - str r1, [r0, #0x10] - str r1, [r0, #0xc] - movs r0, #1 - pop {r1} - bx r1 - thumb_func_end sub_081CE8F8 - - thumb_func_start sub_081CE90C -sub_081CE90C: @ 0x081CE90C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - movs r0, #7 - bl GetSubstructPtr - adds r6, r0, #0 - ldr r5, [r6, #0xc] - ldr r4, [r6, #0x10] - movs r0, #0 - mov r8, r0 - cmp r5, #0xd - bgt _081CE99C -_081CE928: - cmp r4, #0x1d - bgt _081CE994 - lsls r0, r5, #0x18 - lsrs r7, r0, #0x18 -_081CE930: - adds r0, r5, #0 - adds r1, r4, #0 - bl CheckBoxMonSanityAt - cmp r0, #0 - beq _081CE96E - ldr r1, _081CE984 - ldr r0, [sp] - ands r0, r1 - orrs r0, r7 - lsls r1, r4, #0x18 - lsrs r1, r1, #0x18 - lsls r3, r1, #8 - ldr r2, _081CE988 - ands r0, r2 - orrs r0, r3 - str r0, [sp] - ldr r2, [r6, #0x14] - adds r0, r7, #0 - bl GetBoxMonDataAt - lsls r0, r0, #0x10 - ldr r2, _081CE98C - ldr r1, [sp] - ands r1, r2 - orrs r1, r0 - str r1, [sp] - adds r0, r6, #0 - mov r1, sp - bl sub_081CE9F8 -_081CE96E: - movs r0, #1 - add r8, r0 - adds r4, #1 - mov r0, r8 - cmp r0, #0xe - ble _081CE990 - str r5, [r6, #0xc] - str r4, [r6, #0x10] - movs r0, #3 - b _081CE99E - .align 2, 0 -_081CE984: .4byte 0xFFFFFF00 -_081CE988: .4byte 0xFFFF00FF -_081CE98C: .4byte 0x0000FFFF -_081CE990: - cmp r4, #0x1d - ble _081CE930 -_081CE994: - movs r4, #0 - adds r5, #1 - cmp r5, #0xd - ble _081CE928 -_081CE99C: - movs r0, #1 -_081CE99E: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CE90C - - thumb_func_start sub_081CE9AC -sub_081CE9AC: @ 0x081CE9AC - push {r4, r5, r6, lr} - movs r0, #7 - bl GetSubstructPtr - adds r5, r0, #0 - ldr r0, [r5, #0x20] - ldrh r6, [r0] - ldrh r4, [r0, #6] - movs r1, #1 - strh r1, [r0, #6] - movs r3, #1 - cmp r3, r6 - bge _081CE9EC -_081CE9C6: - ldr r2, [r5, #0x20] - lsls r0, r3, #2 - adds r1, r2, r0 - ldrh r0, [r1, #6] - cmp r0, r4 - bne _081CE9E0 - subs r0, r3, #1 - lsls r0, r0, #2 - adds r0, r2, r0 - ldrh r0, [r0, #6] - strh r0, [r1, #6] - adds r0, r3, #1 - b _081CE9E6 -_081CE9E0: - adds r4, r0, #0 - adds r0, r3, #1 - strh r0, [r1, #6] -_081CE9E6: - adds r3, r0, #0 - cmp r3, r6 - blt _081CE9C6 -_081CE9EC: - movs r0, #1 - str r0, [r5, #0x18] - movs r0, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_081CE9AC - - thumb_func_start sub_081CE9F8 -sub_081CE9F8: @ 0x081CE9F8 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r7, r1, #0 - movs r1, #0 - ldr r0, [r5, #0x20] - ldrh r2, [r0] - lsrs r3, r2, #1 - cmp r2, r3 - beq _081CEA28 - adds r6, r0, #0 - ldrh r4, [r7, #2] -_081CEA0E: - lsls r0, r3, #2 - adds r0, r6, r0 - ldrh r0, [r0, #6] - cmp r4, r0 - bls _081CEA1C - adds r2, r3, #0 - b _081CEA1E -_081CEA1C: - adds r1, r3, #1 -_081CEA1E: - subs r0, r2, r1 - lsrs r0, r0, #1 - adds r3, r1, r0 - cmp r2, r3 - bne _081CEA0E -_081CEA28: - ldr r0, [r5, #0x20] - ldrh r2, [r0] - lsls r6, r3, #2 - cmp r2, r3 - bls _081CEA4C - lsls r0, r2, #2 - subs r4, r0, #4 -_081CEA36: - ldr r0, [r5, #0x20] - lsls r1, r2, #2 - adds r0, #4 - adds r1, r0, r1 - adds r0, r0, r4 - ldr r0, [r0] - str r0, [r1] - subs r4, #4 - subs r2, #1 - cmp r2, r3 - bhi _081CEA36 -_081CEA4C: - ldr r0, [r5, #0x20] - adds r0, #4 - adds r0, r0, r6 - ldr r1, [r7] - str r1, [r0] - ldr r1, [r5, #0x20] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_081CE9F8 - - thumb_func_start sub_081CEA64 -sub_081CEA64: @ 0x081CEA64 - push {r4, lr} - movs r1, #0x81 - lsls r1, r1, #4 - movs r0, #8 - bl AllocSubstruct - adds r4, r0, #0 - cmp r4, #0 - beq _081CEA94 - ldr r0, _081CEA8C - movs r1, #1 - bl CreateLoopedTask - str r0, [r4, #4] - ldr r0, _081CEA90 - str r0, [r4] - movs r0, #0 - str r0, [r4, #0xc] - movs r0, #1 - b _081CEA96 - .align 2, 0 -_081CEA8C: .4byte sub_081CEB4C -_081CEA90: .4byte sub_081CEB18 -_081CEA94: - movs r0, #0 -_081CEA96: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081CEA64 - - thumb_func_start sub_081CEA9C -sub_081CEA9C: @ 0x081CEA9C - push {r4, lr} - movs r1, #0x81 - lsls r1, r1, #4 - movs r0, #8 - bl AllocSubstruct - adds r4, r0, #0 - cmp r4, #0 - beq _081CEACC - ldr r0, _081CEAC4 - movs r1, #1 - bl CreateLoopedTask - str r0, [r4, #4] - ldr r0, _081CEAC8 - str r0, [r4] - movs r0, #1 - str r0, [r4, #0xc] - b _081CEACE - .align 2, 0 -_081CEAC4: .4byte sub_081CEB4C -_081CEAC8: .4byte sub_081CEB18 -_081CEACC: - movs r0, #0 -_081CEACE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081CEA9C - - thumb_func_start sub_081CEAD4 -sub_081CEAD4: @ 0x081CEAD4 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #8 - bl GetSubstructPtr - adds r5, r0, #0 - ldr r0, _081CEAFC - lsls r4, r4, #2 - adds r4, r4, r0 - ldr r0, [r4] - movs r1, #1 - bl CreateLoopedTask - str r0, [r5, #4] - ldr r0, _081CEB00 - str r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081CEAFC: .4byte gUnknown_85F5BA4 -_081CEB00: .4byte sub_081CEB18 - thumb_func_end sub_081CEAD4 - - thumb_func_start sub_081CEB04 -sub_081CEB04: @ 0x081CEB04 - push {lr} - movs r0, #8 - bl GetSubstructPtr - ldr r0, [r0] - bl _call_via_r0 - pop {r1} - thumb_func_end sub_081CEB04 - - thumb_func_start sub_081CEB14 -sub_081CEB14: @ 0x081CEB14 - bx r1 - .align 2, 0 - thumb_func_end sub_081CEB14 - - thumb_func_start sub_081CEB18 -sub_081CEB18: @ 0x081CEB18 - push {lr} - movs r0, #8 - bl GetSubstructPtr - ldr r0, [r0, #4] - bl IsLoopedTaskActive - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CEB18 - - thumb_func_start sub_081CEB2C -sub_081CEB2C: @ 0x081CEB2C - push {r4, lr} - movs r0, #8 - bl GetSubstructPtr - adds r4, r0, #0 - bl sub_081C79DC - ldrb r0, [r4, #8] - bl RemoveWindow - movs r0, #8 - bl FreePokenavSubstruct - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081CEB2C - - thumb_func_start sub_081CEB4C -sub_081CEB4C: @ 0x081CEB4C - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - movs r0, #8 - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #5 - bls _081CEB60 - b _081CECA2 -_081CEB60: - lsls r0, r4, #2 - ldr r1, _081CEB6C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081CEB6C: .4byte _081CEB70 -_081CEB70: @ jump table - .4byte _081CEB88 @ case 0 - .4byte _081CEBE0 @ case 1 - .4byte _081CEBF4 @ case 2 - .4byte _081CEC14 @ case 3 - .4byte _081CEC2A @ case 4 - .4byte _081CEC8E @ case 5 -_081CEB88: - ldr r0, _081CEBD0 - movs r1, #2 - bl InitBgTemplates - ldr r1, _081CEBD4 - movs r0, #0 - str r0, [sp] - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - adds r1, r5, #0 - adds r1, #0x10 - movs r0, #1 - bl SetBgTilemapBuffer - ldr r1, _081CEBD8 - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - movs r0, #1 - bl CopyBgTilemapBufferToVram - ldr r0, _081CEBDC - movs r1, #0x10 - movs r2, #0x20 - bl ClearBottomWindow - movs r0, #1 - bl CopyBgTilemapBufferToVram -_081CEBCC: - movs r0, #0 - b _081CECA4 - .align 2, 0 -_081CEBD0: .4byte gUnknown_85F5B9C -_081CEBD4: .4byte gUnknown_85F59F0 -_081CEBD8: .4byte gUnknown_85F5AB8 -_081CEBDC: .4byte gUnknown_85F59D0 -_081CEBE0: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081CEC9E - bl sub_081CE7F4 - cmp r0, #0 - beq _081CEC9E - b _081CEBCC -_081CEBF4: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081CEC9E - ldr r0, _081CEC10 - movs r1, #0x20 - movs r2, #0x20 - bl ClearBottomWindow - bl sub_081CEF4C - b _081CEBCC - .align 2, 0 -_081CEC10: .4byte gUnknown_85F5B7C -_081CEC14: - bl sub_081C79CC - cmp r0, #0 - bne _081CEC9E - adds r0, r5, #0 - bl sub_081CEEBC - movs r0, #3 - bl sub_081C7364 - b _081CEBCC -_081CEC2A: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081CEC9E - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl HideBg - ldr r0, [r5, #0xc] - cmp r0, #0 - bne _081CEC86 - bl sub_081C6E6C - adds r4, r0, #0 - adds r4, #8 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl LoadLeftHeaderGfxForIndex - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_081C7748 - movs r0, #1 - movs r1, #1 - movs r2, #0 - bl sub_081C7748 -_081CEC86: - movs r0, #1 - bl sub_081C7280 - b _081CEBCC -_081CEC8E: - bl sub_081C72F4 - cmp r0, #0 - bne _081CEC9E - bl sub_081C77B8 - cmp r0, #0 - beq _081CECA2 -_081CEC9E: - movs r0, #2 - b _081CECA4 -_081CECA2: - movs r0, #4 -_081CECA4: - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_081CEB4C - - thumb_func_start sub_081CECAC -sub_081CECAC: @ 0x081CECAC - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #8 - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #1 - beq _081CECEC - cmp r4, #1 - bgt _081CECC6 - cmp r4, #0 - beq _081CECD0 - b _081CED0C -_081CECC6: - cmp r4, #2 - beq _081CECF4 - cmp r4, #3 - beq _081CECFE - b _081CED0C -_081CECD0: - movs r0, #5 - bl sub_080A306C - bl MatchCall_MoveCursorUp - cmp r0, #1 - beq _081CECE8 - cmp r0, #1 - bgt _081CECFA - cmp r0, #0 - bne _081CECFA - b _081CED0C -_081CECE8: - movs r0, #7 - b _081CED0E -_081CECEC: - bl MatchCall_GetMessage_Type2 - cmp r0, #0 - bne _081CED08 -_081CECF4: - adds r0, r5, #0 - bl sub_081CEEE8 -_081CECFA: - movs r0, #0 - b _081CED0E -_081CECFE: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081CED0C -_081CED08: - movs r0, #2 - b _081CED0E -_081CED0C: - movs r0, #4 -_081CED0E: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_081CECAC - - thumb_func_start sub_081CED14 -sub_081CED14: @ 0x081CED14 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #8 - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #1 - beq _081CED54 - cmp r4, #1 - bgt _081CED2E - cmp r4, #0 - beq _081CED38 - b _081CED74 -_081CED2E: - cmp r4, #2 - beq _081CED5C - cmp r4, #3 - beq _081CED66 - b _081CED74 -_081CED38: - movs r0, #5 - bl sub_080A306C - bl MatchCall_MoveCursorDown - cmp r0, #1 - beq _081CED50 - cmp r0, #1 - bgt _081CED62 - cmp r0, #0 - bne _081CED62 - b _081CED74 -_081CED50: - movs r0, #7 - b _081CED76 -_081CED54: - bl MatchCall_GetMessage_Type2 - cmp r0, #0 - bne _081CED70 -_081CED5C: - adds r0, r5, #0 - bl sub_081CEEE8 -_081CED62: - movs r0, #0 - b _081CED76 -_081CED66: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081CED74 -_081CED70: - movs r0, #2 - b _081CED76 -_081CED74: - movs r0, #4 -_081CED76: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_081CED14 - - thumb_func_start sub_081CED7C -sub_081CED7C: @ 0x081CED7C - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #8 - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #1 - beq _081CEDBC - cmp r4, #1 - bgt _081CED96 - cmp r4, #0 - beq _081CEDA0 - b _081CEDDC -_081CED96: - cmp r4, #2 - beq _081CEDC4 - cmp r4, #3 - beq _081CEDCE - b _081CEDDC -_081CEDA0: - movs r0, #5 - bl sub_080A306C - bl MatchCall_PageUp - cmp r0, #1 - beq _081CEDB8 - cmp r0, #1 - bgt _081CEDCA - cmp r0, #0 - bne _081CEDCA - b _081CEDDC -_081CEDB8: - movs r0, #7 - b _081CEDDE -_081CEDBC: - bl MatchCall_GetMessage_Type2 - cmp r0, #0 - bne _081CEDD8 -_081CEDC4: - adds r0, r5, #0 - bl sub_081CEEE8 -_081CEDCA: - movs r0, #0 - b _081CEDDE -_081CEDCE: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081CEDDC -_081CEDD8: - movs r0, #2 - b _081CEDDE -_081CEDDC: - movs r0, #4 -_081CEDDE: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_081CED7C - - thumb_func_start sub_081CEDE4 -sub_081CEDE4: @ 0x081CEDE4 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #8 - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #1 - beq _081CEE24 - cmp r4, #1 - bgt _081CEDFE - cmp r4, #0 - beq _081CEE08 - b _081CEE44 -_081CEDFE: - cmp r4, #2 - beq _081CEE2C - cmp r4, #3 - beq _081CEE36 - b _081CEE44 -_081CEE08: - movs r0, #5 - bl sub_080A306C - bl MatchCall_PageDown - cmp r0, #1 - beq _081CEE20 - cmp r0, #1 - bgt _081CEE32 - cmp r0, #0 - bne _081CEE32 - b _081CEE44 -_081CEE20: - movs r0, #7 - b _081CEE46 -_081CEE24: - bl MatchCall_GetMessage_Type2 - cmp r0, #0 - bne _081CEE40 -_081CEE2C: - adds r0, r5, #0 - bl sub_081CEEE8 -_081CEE32: - movs r0, #0 - b _081CEE46 -_081CEE36: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081CEE44 -_081CEE40: - movs r0, #2 - b _081CEE46 -_081CEE44: - movs r0, #4 -_081CEE46: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_081CEDE4 - - thumb_func_start sub_081CEE4C -sub_081CEE4C: @ 0x081CEE4C - push {lr} - cmp r0, #0 - beq _081CEE58 - cmp r0, #1 - beq _081CEE6C - b _081CEE84 -_081CEE58: - movs r0, #5 - bl sub_080A306C - movs r0, #0 - bl sub_081C7280 - bl sub_081C7060 - movs r0, #0 - b _081CEE86 -_081CEE6C: - bl sub_081C72F4 - cmp r0, #0 - bne _081CEE7C - bl MainMenuLoopedTaskIsBusy - cmp r0, #0 - beq _081CEE80 -_081CEE7C: - movs r0, #2 - b _081CEE86 -_081CEE80: - bl sub_081C7784 -_081CEE84: - movs r0, #4 -_081CEE86: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CEE4C - - thumb_func_start CB2_MoveRelearnerMain -CB2_MoveRelearnerMain: @ 0x081CEE8C - push {lr} - cmp r0, #0 - beq _081CEE98 - cmp r0, #1 - beq _081CEEA8 - b _081CEEB4 -_081CEE98: - movs r0, #5 - bl sub_080A306C - movs r0, #0 - bl sub_081C7280 - movs r0, #0 - b _081CEEB6 -_081CEEA8: - bl sub_081C72F4 - cmp r0, #0 - beq _081CEEB4 - movs r0, #2 - b _081CEEB6 -_081CEEB4: - movs r0, #4 -_081CEEB6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CB2_MoveRelearnerMain - - thumb_func_start sub_081CEEBC -sub_081CEEBC: @ 0x081CEEBC - push {r4, lr} - adds r4, r0, #0 - ldr r0, _081CEEE4 - bl AddWindow - strh r0, [r4, #8] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl PutWindowTilemap - ldrb r0, [r4, #8] - movs r1, #1 - bl CopyWindowToVram - adds r0, r4, #0 - bl sub_081CEEE8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081CEEE4: .4byte gUnknown_85F5BC0 - thumb_func_end sub_081CEEBC - - thumb_func_start sub_081CEEE8 -sub_081CEEE8: @ 0x081CEEE8 - push {r4, r5, r6, lr} - sub sp, #0xc - adds r6, r0, #0 - bl sub_081CE824 - adds r5, r0, #0 - bl DynamicPlaceholderTextUtil_Reset - ldr r4, _081CEF40 - movs r0, #0 - adds r1, r4, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - ldr r4, _081CEF44 - ldr r1, _081CEF48 - adds r0, r4, #0 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - ldrb r0, [r6, #8] - movs r1, #2 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - adds r2, r4, #0 - movs r3, #0 - bl AddTextPrinterParameterized - ldrb r0, [r6, #8] - movs r1, #2 - bl CopyWindowToVram - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081CEF40: .4byte gUnknown_2021C40 -_081CEF44: .4byte gUnknown_2021C54 -_081CEF48: .4byte gUnknown_85CB81B - thumb_func_end sub_081CEEE8 - - thumb_func_start sub_081CEF4C -sub_081CEF4C: @ 0x081CEF4C - push {r4, lr} - sub sp, #0x18 - bl sub_081CE804 - str r0, [sp] - bl sub_081CE814 - mov r1, sp - movs r4, #0 - strh r0, [r1, #4] - movs r0, #4 - strb r0, [r1, #8] - bl sub_081CE840 - mov r1, sp - strh r0, [r1, #6] - movs r0, #0xe - strb r0, [r1, #9] - movs r0, #0xf - strb r0, [r1, #0xa] - movs r0, #1 - strb r0, [r1, #0xb] - movs r0, #8 - strb r0, [r1, #0xc] - movs r0, #2 - strb r0, [r1, #0xd] - ldr r0, _081CEF98 - str r0, [sp, #0x10] - str r4, [sp, #0x14] - ldr r0, _081CEF9C - movs r2, #0 - bl sub_081C797C - add sp, #0x18 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081CEF98: .4byte sub_081CEFA0 -_081CEF9C: .4byte gUnknown_85F5BA0 - thumb_func_end sub_081CEF4C - - thumb_func_start sub_081CEFA0 -sub_081CEFA0: @ 0x081CEFA0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - mov r8, r1 - bl DynamicPlaceholderTextUtil_Reset - ldrb r0, [r4] - cmp r0, #0xe - bne _081CEFE8 - ldrb r1, [r4, #1] - movs r0, #0x64 - adds r4, r1, #0 - muls r4, r0, r4 - ldr r0, _081CEFE0 - adds r4, r4, r0 - adds r0, r4, #0 - bl GetMonGender - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - adds r0, r4, #0 - bl GetLevelFromMonExp - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r2, _081CEFE4 - adds r0, r4, #0 - movs r1, #2 - bl GetMonData - b _081CF00E - .align 2, 0 -_081CEFE0: .4byte gUnknown_2024190 -_081CEFE4: .4byte gUnknown_2021C68 -_081CEFE8: - ldrb r0, [r4] - ldrb r1, [r4, #1] - bl GetBoxedMonPtr - adds r4, r0, #0 - bl GetBoxMonGender - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - adds r0, r4, #0 - bl GetLevelFromBoxMonExp - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r2, _081CF060 - adds r0, r4, #0 - movs r1, #2 - bl sub_0806A1B4 -_081CF00E: - ldr r4, _081CF060 - adds r0, r4, #0 - bl StringGetEnd10 - ldr r6, _081CF064 - adds r0, r6, #0 - adds r1, r4, #0 - movs r2, #0 - movs r3, #5 - bl StringCopyPadded - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - ldr r5, _081CF068 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - movs r3, #3 - bl StringCopyPadded - movs r0, #0 - adds r1, r6, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - movs r0, #1 - adds r1, r5, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - cmp r7, #0xfe - beq _081CF070 - cmp r7, #0xfe - bgt _081CF078 - cmp r7, #0 - bne _081CF078 - ldr r1, _081CF06C - b _081CF07A - .align 2, 0 -_081CF060: .4byte gUnknown_2021C68 -_081CF064: .4byte gUnknown_2021C40 -_081CF068: .4byte gUnknown_2021C54 -_081CF06C: .4byte gUnknown_85CB7D6 -_081CF070: - ldr r1, _081CF074 - b _081CF07A - .align 2, 0 -_081CF074: .4byte gUnknown_85CB7EA -_081CF078: - ldr r1, _081CF08C -_081CF07A: - mov r0, r8 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081CF08C: .4byte gUnknown_85CB7FE - thumb_func_end sub_081CEFA0 - - thumb_func_start sub_081CF090 -sub_081CF090: @ 0x081CF090 - push {r4, lr} - movs r0, #9 - movs r1, #0x20 - bl AllocSubstruct - adds r4, r0, #0 - cmp r4, #0 - beq _081CF0D0 - ldr r1, _081CF0C4 - movs r0, #0x12 - bl AllocSubstruct - str r0, [r4, #0x1c] - cmp r0, #0 - beq _081CF0D0 - ldr r0, _081CF0C8 - str r0, [r4] - ldr r0, _081CF0CC - movs r1, #1 - bl CreateLoopedTask - str r0, [r4, #4] - movs r0, #0 - str r0, [r4, #0x14] - movs r0, #1 - b _081CF0D2 - .align 2, 0 -_081CF0C4: .4byte 0x000006AC -_081CF0C8: .4byte sub_081CF13C -_081CF0CC: .4byte sub_081CF248 -_081CF0D0: - movs r0, #0 -_081CF0D2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081CF090 - - thumb_func_start sub_081CF0D8 -sub_081CF0D8: @ 0x081CF0D8 - push {r4, lr} - movs r0, #9 - movs r1, #0x20 - bl AllocSubstruct - adds r4, r0, #0 - cmp r4, #0 - beq _081CF100 - movs r0, #0x12 - bl GetSubstructPtr - str r0, [r4, #0x1c] - ldr r0, _081CF0FC - str r0, [r4] - movs r0, #1 - str r0, [r4, #0x14] - b _081CF102 - .align 2, 0 -_081CF0FC: .4byte sub_081CF15C -_081CF100: - movs r0, #0 -_081CF102: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081CF0D8 - - thumb_func_start sub_081CF108 -sub_081CF108: @ 0x081CF108 - push {lr} - movs r0, #9 - bl GetSubstructPtr - ldr r1, [r0] - bl _call_via_r1 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CF108 - - thumb_func_start sub_081CF11C -sub_081CF11C: @ 0x081CF11C - push {lr} - movs r0, #9 - bl GetSubstructPtr - ldr r0, [r0, #0x18] - cmp r0, #0 - bne _081CF130 - movs r0, #0x12 - bl FreePokenavSubstruct -_081CF130: - movs r0, #9 - bl FreePokenavSubstruct - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081CF11C - - thumb_func_start sub_081CF13C -sub_081CF13C: @ 0x081CF13C - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #4] - bl IsLoopedTaskActive - cmp r0, #0 - bne _081CF14E - ldr r0, _081CF158 - str r0, [r4] -_081CF14E: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081CF158: .4byte sub_081CF15C - thumb_func_end sub_081CF13C - - thumb_func_start sub_081CF15C -sub_081CF15C: @ 0x081CF15C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r2, _081CF170 - ldrh r1, [r2, #0x30] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _081CF174 - movs r0, #1 - b _081CF1D2 - .align 2, 0 -_081CF170: .4byte gUnknown_3002360 -_081CF174: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _081CF180 - movs r0, #2 - b _081CF1D2 -_081CF180: - ldrh r1, [r2, #0x2e] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _081CF18E - movs r0, #3 - b _081CF1D2 -_081CF18E: - movs r0, #0x10 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0 - beq _081CF19E - movs r0, #4 - b _081CF1D2 -_081CF19E: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081CF1B4 - str r2, [r4, #0x18] - ldr r0, _081CF1B0 - str r0, [r4] - movs r0, #5 - b _081CF1D2 - .align 2, 0 -_081CF1B0: .4byte sub_081CF1DC -_081CF1B4: - movs r5, #1 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - bne _081CF1C2 - movs r0, #0 - b _081CF1D2 -_081CF1C2: - bl GetSelectedMatchCall - ldr r1, [r4, #0x1c] - strh r0, [r1, #2] - str r5, [r4, #0x18] - ldr r0, _081CF1D8 - str r0, [r4] - movs r0, #6 -_081CF1D2: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081CF1D8: .4byte sub_081CF1E4 - thumb_func_end sub_081CF15C - - thumb_func_start sub_081CF1DC -sub_081CF1DC: @ 0x081CF1DC - ldr r0, _081CF1E0 - bx lr - .align 2, 0 -_081CF1E0: .4byte 0x000186A5 - thumb_func_end sub_081CF1DC - - thumb_func_start sub_081CF1E4 -sub_081CF1E4: @ 0x081CF1E4 - ldr r0, _081CF1E8 - bx lr - .align 2, 0 -_081CF1E8: .4byte 0x000186AD - thumb_func_end sub_081CF1E4 - - thumb_func_start sub_081CF1EC -sub_081CF1EC: @ 0x081CF1EC - push {lr} - movs r0, #9 - bl GetSubstructPtr - ldr r0, [r0, #0x14] - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CF1EC - - thumb_func_start sub_081CF1FC -sub_081CF1FC: @ 0x081CF1FC - push {lr} - movs r0, #9 - bl GetSubstructPtr - ldr r0, [r0, #0x1c] - adds r0, #4 - pop {r1} - bx r1 - thumb_func_end sub_081CF1FC - - thumb_func_start sub_081CF20C -sub_081CF20C: @ 0x081CF20C - push {lr} - movs r0, #9 - bl GetSubstructPtr - ldr r0, [r0, #0x1c] - ldrh r0, [r0] - pop {r1} - bx r1 - thumb_func_end sub_081CF20C - - thumb_func_start sub_081CF21C -sub_081CF21C: @ 0x081CF21C - push {r4, lr} - movs r0, #9 - bl GetSubstructPtr - adds r4, r0, #0 - bl GetSelectedMatchCall - ldr r1, [r4, #0x1c] - lsls r0, r0, #2 - adds r1, r1, r0 - ldrh r0, [r1, #6] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081CF21C - - thumb_func_start sub_081CF238 -sub_081CF238: @ 0x081CF238 - push {lr} - movs r0, #9 - bl GetSubstructPtr - ldr r0, [r0, #0x1c] - ldrh r0, [r0, #2] - pop {r1} - bx r1 - thumb_func_end sub_081CF238 - - thumb_func_start sub_081CF248 -sub_081CF248: @ 0x081CF248 - push {lr} - ldr r2, _081CF25C - lsls r1, r0, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {r1} - bx r1 - .align 2, 0 -_081CF25C: .4byte gUnknown_85F5BC8 - thumb_func_end sub_081CF248 - - thumb_func_start sub_081CF260 -sub_081CF260: @ 0x081CF260 - push {r4, r5, r6, lr} - sub sp, #4 - movs r0, #9 - bl GetSubstructPtr - adds r6, r0, #0 - ldr r0, [r6, #0x1c] - movs r1, #0 - strh r1, [r0] - ldr r0, [r6, #0x1c] - strh r1, [r0, #2] - ldr r1, _081CF2F0 - ldr r0, [sp] - ands r0, r1 - movs r1, #0xe - orrs r0, r1 - str r0, [sp] - movs r5, #0 -_081CF284: - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _081CF2F4 - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #5 - bl GetMonData - cmp r0, #0 - beq _081CF2E4 - adds r0, r4, #0 - movs r1, #6 - bl GetMonData - cmp r0, #0 - bne _081CF2DE - adds r0, r4, #0 - movs r1, #4 - bl GetMonData - cmp r0, #0 - bne _081CF2DE - adds r0, r4, #0 - movs r1, #0x52 - bl GetMonData - adds r3, r0, #0 - cmp r3, #0 - beq _081CF2DE - lsls r1, r5, #0x18 - lsrs r1, r1, #0x10 - ldr r2, _081CF2F8 - ldr r0, [sp] - ands r0, r2 - orrs r0, r1 - lsls r2, r3, #0x10 - ldr r1, _081CF2FC - ands r0, r1 - orrs r0, r2 - str r0, [sp] - adds r0, r6, #0 - mov r1, sp - bl sub_081CF3C0 -_081CF2DE: - adds r5, #1 - cmp r5, #5 - ble _081CF284 -_081CF2E4: - movs r0, #1 - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_081CF2F0: .4byte 0xFFFFFF00 -_081CF2F4: .4byte gUnknown_2024190 -_081CF2F8: .4byte 0xFFFF00FF -_081CF2FC: .4byte 0x0000FFFF - thumb_func_end sub_081CF260 - - thumb_func_start sub_081CF300 -sub_081CF300: @ 0x081CF300 - push {lr} - movs r0, #9 - bl GetSubstructPtr - movs r1, #0 - str r1, [r0, #0x10] - str r1, [r0, #0xc] - movs r0, #1 - pop {r1} - bx r1 - thumb_func_end sub_081CF300 - - thumb_func_start sub_081CF314 -sub_081CF314: @ 0x081CF314 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - movs r0, #9 - bl GetSubstructPtr - mov r8, r0 - ldr r7, [r0, #0xc] - ldr r6, [r0, #0x10] - movs r0, #0 - mov sb, r0 - cmp r7, #0xd - bgt _081CF3A8 - b _081CF39C -_081CF334: - adds r0, r7, #0 - adds r1, r6, #0 - bl CheckBoxMonSanityAt - cmp r0, #0 - beq _081CF37A - lsls r0, r7, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r6, #0x18 - lsrs r4, r0, #0x18 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x52 - bl GetBoxMonDataAt - adds r3, r0, #0 - cmp r3, #0 - beq _081CF37A - ldr r1, _081CF390 - ldr r0, [sp] - ands r0, r1 - orrs r0, r5 - lsls r2, r4, #8 - ldr r1, _081CF394 - ands r0, r1 - orrs r0, r2 - lsls r2, r3, #0x10 - ldr r1, _081CF398 - ands r0, r1 - orrs r0, r2 - str r0, [sp] - mov r0, r8 - mov r1, sp - bl sub_081CF3C0 -_081CF37A: - movs r1, #1 - add sb, r1 - adds r6, #1 - mov r0, sb - cmp r0, #0xe - ble _081CF39C - mov r1, r8 - str r7, [r1, #0xc] - str r6, [r1, #0x10] - movs r0, #3 - b _081CF3B0 - .align 2, 0 -_081CF390: .4byte 0xFFFFFF00 -_081CF394: .4byte 0xFFFF00FF -_081CF398: .4byte 0x0000FFFF -_081CF39C: - cmp r6, #0x1d - ble _081CF334 - movs r6, #0 - adds r7, #1 - cmp r7, #0xd - ble _081CF39C -_081CF3A8: - movs r0, #1 - mov r1, r8 - str r0, [r1, #0x14] - movs r0, #4 -_081CF3B0: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CF314 - - thumb_func_start sub_081CF3C0 -sub_081CF3C0: @ 0x081CF3C0 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r7, r1, #0 - movs r1, #0 - ldr r0, [r5, #0x1c] - ldrh r2, [r0] - lsrs r3, r2, #1 - cmp r2, r3 - beq _081CF3F0 - adds r6, r0, #0 - ldrh r4, [r7, #2] -_081CF3D6: - lsls r0, r3, #2 - adds r0, r6, r0 - ldrh r0, [r0, #6] - cmp r4, r0 - bls _081CF3E4 - adds r2, r3, #0 - b _081CF3E6 -_081CF3E4: - adds r1, r3, #1 -_081CF3E6: - subs r0, r2, r1 - lsrs r0, r0, #1 - adds r3, r1, r0 - cmp r2, r3 - bne _081CF3D6 -_081CF3F0: - ldr r0, [r5, #0x1c] - ldrh r2, [r0] - lsls r6, r3, #2 - cmp r2, r3 - bls _081CF414 - lsls r0, r2, #2 - subs r4, r0, #4 -_081CF3FE: - ldr r0, [r5, #0x1c] - lsls r1, r2, #2 - adds r0, #4 - adds r1, r0, r1 - adds r0, r0, r4 - ldr r0, [r0] - str r0, [r1] - subs r4, #4 - subs r2, #1 - cmp r2, r3 - bhi _081CF3FE -_081CF414: - ldr r0, [r5, #0x1c] - adds r0, #4 - adds r0, r0, r6 - ldr r1, [r7] - str r1, [r0] - ldr r1, [r5, #0x1c] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_081CF3C0 - - thumb_func_start sub_081CF42C -sub_081CF42C: @ 0x081CF42C - push {r4, r5, r6, lr} - movs r5, #0 -_081CF430: - movs r0, #0x64 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r0, _081CF48C - adds r4, r1, r0 - adds r0, r4, #0 - movs r1, #5 - bl GetMonData - cmp r0, #0 - beq _081CF45E - adds r0, r4, #0 - movs r1, #6 - bl GetMonData - cmp r0, #0 - bne _081CF45E - adds r0, r4, #0 - movs r1, #0x53 - bl GetMonData - cmp r0, #0 - bne _081CF486 -_081CF45E: - adds r5, #1 - cmp r5, #5 - ble _081CF430 - movs r5, #0 -_081CF466: - movs r4, #0 - lsls r6, r5, #0x18 -_081CF46A: - adds r0, r5, #0 - adds r1, r4, #0 - bl CheckBoxMonSanityAt - cmp r0, #0 - beq _081CF490 - lsls r1, r4, #0x18 - lsrs r1, r1, #0x18 - lsrs r0, r6, #0x18 - movs r2, #0x53 - bl GetBoxMonDataAt - cmp r0, #0 - beq _081CF490 -_081CF486: - movs r0, #1 - b _081CF49E - .align 2, 0 -_081CF48C: .4byte gUnknown_2024190 -_081CF490: - adds r4, #1 - cmp r4, #0x1d - ble _081CF46A - adds r5, #1 - cmp r5, #0xd - ble _081CF466 - movs r0, #0 -_081CF49E: - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_081CF42C - - thumb_func_start sub_081CF4A4 -sub_081CF4A4: @ 0x081CF4A4 - push {r4, lr} - movs r1, #0x81 - lsls r1, r1, #4 - movs r0, #0xa - bl AllocSubstruct - adds r4, r0, #0 - cmp r4, #0 - beq _081CF4D4 - ldr r0, _081CF4CC - movs r1, #1 - bl CreateLoopedTask - str r0, [r4, #4] - ldr r0, _081CF4D0 - str r0, [r4] - movs r0, #0 - str r0, [r4, #0xc] - movs r0, #1 - b _081CF4D6 - .align 2, 0 -_081CF4CC: .4byte sub_081CF58C -_081CF4D0: .4byte sub_081CF558 -_081CF4D4: - movs r0, #0 -_081CF4D6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081CF4A4 - - thumb_func_start sub_081CF4DC -sub_081CF4DC: @ 0x081CF4DC - push {r4, lr} - movs r1, #0x81 - lsls r1, r1, #4 - movs r0, #0xa - bl AllocSubstruct - adds r4, r0, #0 - cmp r4, #0 - beq _081CF50C - ldr r0, _081CF504 - movs r1, #1 - bl CreateLoopedTask - str r0, [r4, #4] - ldr r0, _081CF508 - str r0, [r4] - movs r0, #1 - str r0, [r4, #0xc] - b _081CF50E - .align 2, 0 -_081CF504: .4byte sub_081CF58C -_081CF508: .4byte sub_081CF558 -_081CF50C: - movs r0, #0 -_081CF50E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081CF4DC - - thumb_func_start sub_081CF514 -sub_081CF514: @ 0x081CF514 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0xa - bl GetSubstructPtr - adds r5, r0, #0 - ldr r0, _081CF53C - lsls r4, r4, #2 - adds r4, r4, r0 - ldr r0, [r4] - movs r1, #1 - bl CreateLoopedTask - str r0, [r5, #4] - ldr r0, _081CF540 - str r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081CF53C: .4byte gUnknown_85F5DA8 -_081CF540: .4byte sub_081CF558 - thumb_func_end sub_081CF514 - - thumb_func_start sub_081CF544 -sub_081CF544: @ 0x081CF544 - push {lr} - movs r0, #0xa - bl GetSubstructPtr - ldr r0, [r0] - bl _call_via_r0 - pop {r1} - thumb_func_end sub_081CF544 - - thumb_func_start sub_081CF554 -sub_081CF554: @ 0x081CF554 - bx r1 - .align 2, 0 - thumb_func_end sub_081CF554 - - thumb_func_start sub_081CF558 -sub_081CF558: @ 0x081CF558 - push {lr} - movs r0, #0xa - bl GetSubstructPtr - ldr r0, [r0, #4] - bl IsLoopedTaskActive - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CF558 - - thumb_func_start sub_081CF56C -sub_081CF56C: @ 0x081CF56C - push {r4, lr} - movs r0, #0xa - bl GetSubstructPtr - adds r4, r0, #0 - bl sub_081C79DC - ldrb r0, [r4, #8] - bl RemoveWindow - movs r0, #0xa - bl FreePokenavSubstruct - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081CF56C - - thumb_func_start sub_081CF58C -sub_081CF58C: @ 0x081CF58C - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - movs r0, #0xa - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #5 - bls _081CF5A0 - b _081CF6C6 -_081CF5A0: - lsls r0, r4, #2 - ldr r1, _081CF5AC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081CF5AC: .4byte _081CF5B0 -_081CF5B0: @ jump table - .4byte _081CF5C8 @ case 0 - .4byte _081CF61C @ case 1 - .4byte _081CF64A @ case 2 - .4byte _081CF668 @ case 3 - .4byte _081CF678 @ case 4 - .4byte _081CF6B2 @ case 5 -_081CF5C8: - ldr r0, _081CF60C - movs r1, #2 - bl InitBgTemplates - ldr r1, _081CF610 - movs r0, #0 - str r0, [sp] - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - adds r1, r5, #0 - adds r1, #0x10 - movs r0, #1 - bl SetBgTilemapBuffer - ldr r1, _081CF614 - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - ldr r0, _081CF618 - movs r1, #0x10 - movs r2, #0x20 - bl ClearBottomWindow - movs r0, #1 - bl CopyBgTilemapBufferToVram -_081CF606: - movs r0, #0 - b _081CF6C8 - .align 2, 0 -_081CF60C: .4byte gUnknown_85F5DA0 -_081CF610: .4byte gUnknown_85F5BF4 -_081CF614: .4byte gUnknown_85F5CBC -_081CF618: .4byte gUnknown_85F5BD4 -_081CF61C: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081CF6C2 - bl sub_081CF1EC - cmp r0, #0 - beq _081CF6C2 - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #1 - bl ShowBg - b _081CF606 -_081CF64A: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081CF6C2 - ldr r0, _081CF664 - movs r1, #0x20 - movs r2, #0x20 - bl ClearBottomWindow - bl sub_081CF9A4 - b _081CF606 - .align 2, 0 -_081CF664: .4byte gUnknown_85F5D80 -_081CF668: - bl sub_081C79CC - cmp r0, #0 - bne _081CF6C2 - adds r0, r5, #0 - bl sub_081CF8E0 - b _081CF606 -_081CF678: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081CF6C2 - movs r0, #2 - bl ShowBg - movs r0, #3 - bl HideBg - movs r0, #9 - bl sub_081C7364 - movs r0, #1 - bl sub_081C7280 - ldr r0, [r5, #0xc] - cmp r0, #0 - bne _081CF606 - movs r0, #2 - bl LoadLeftHeaderGfxForIndex - movs r0, #2 - movs r1, #1 - movs r2, #0 - bl sub_081C7748 - b _081CF606 -_081CF6B2: - bl sub_081C72F4 - cmp r0, #0 - bne _081CF6C2 - bl sub_081C77B8 - cmp r0, #0 - beq _081CF6C6 -_081CF6C2: - movs r0, #2 - b _081CF6C8 -_081CF6C6: - movs r0, #4 -_081CF6C8: - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_081CF58C - - thumb_func_start sub_081CF6D0 -sub_081CF6D0: @ 0x081CF6D0 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0xa - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #1 - beq _081CF710 - cmp r4, #1 - bgt _081CF6EA - cmp r4, #0 - beq _081CF6F4 - b _081CF730 -_081CF6EA: - cmp r4, #2 - beq _081CF718 - cmp r4, #3 - beq _081CF722 - b _081CF730 -_081CF6F4: - movs r0, #5 - bl sub_080A306C - bl MatchCall_MoveCursorUp - cmp r0, #1 - beq _081CF70C - cmp r0, #1 - bgt _081CF71E - cmp r0, #0 - bne _081CF71E - b _081CF730 -_081CF70C: - movs r0, #7 - b _081CF732 -_081CF710: - bl MatchCall_GetMessage_Type2 - cmp r0, #0 - bne _081CF72C -_081CF718: - adds r0, r5, #0 - bl sub_081CF95C -_081CF71E: - movs r0, #0 - b _081CF732 -_081CF722: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081CF730 -_081CF72C: - movs r0, #2 - b _081CF732 -_081CF730: - movs r0, #4 -_081CF732: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_081CF6D0 - - thumb_func_start sub_081CF738 -sub_081CF738: @ 0x081CF738 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0xa - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #1 - beq _081CF778 - cmp r4, #1 - bgt _081CF752 - cmp r4, #0 - beq _081CF75C - b _081CF798 -_081CF752: - cmp r4, #2 - beq _081CF780 - cmp r4, #3 - beq _081CF78A - b _081CF798 -_081CF75C: - movs r0, #5 - bl sub_080A306C - bl MatchCall_MoveCursorDown - cmp r0, #1 - beq _081CF774 - cmp r0, #1 - bgt _081CF786 - cmp r0, #0 - bne _081CF786 - b _081CF798 -_081CF774: - movs r0, #7 - b _081CF79A -_081CF778: - bl MatchCall_GetMessage_Type2 - cmp r0, #0 - bne _081CF794 -_081CF780: - adds r0, r5, #0 - bl sub_081CF95C -_081CF786: - movs r0, #0 - b _081CF79A -_081CF78A: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081CF798 -_081CF794: - movs r0, #2 - b _081CF79A -_081CF798: - movs r0, #4 -_081CF79A: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_081CF738 - - thumb_func_start sub_081CF7A0 -sub_081CF7A0: @ 0x081CF7A0 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0xa - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #1 - beq _081CF7E0 - cmp r4, #1 - bgt _081CF7BA - cmp r4, #0 - beq _081CF7C4 - b _081CF800 -_081CF7BA: - cmp r4, #2 - beq _081CF7E8 - cmp r4, #3 - beq _081CF7F2 - b _081CF800 -_081CF7C4: - movs r0, #5 - bl sub_080A306C - bl MatchCall_PageUp - cmp r0, #1 - beq _081CF7DC - cmp r0, #1 - bgt _081CF7EE - cmp r0, #0 - bne _081CF7EE - b _081CF800 -_081CF7DC: - movs r0, #7 - b _081CF802 -_081CF7E0: - bl MatchCall_GetMessage_Type2 - cmp r0, #0 - bne _081CF7FC -_081CF7E8: - adds r0, r5, #0 - bl sub_081CF95C -_081CF7EE: - movs r0, #0 - b _081CF802 -_081CF7F2: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081CF800 -_081CF7FC: - movs r0, #2 - b _081CF802 -_081CF800: - movs r0, #4 -_081CF802: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_081CF7A0 - - thumb_func_start sub_081CF808 -sub_081CF808: @ 0x081CF808 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0xa - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #1 - beq _081CF848 - cmp r4, #1 - bgt _081CF822 - cmp r4, #0 - beq _081CF82C - b _081CF868 -_081CF822: - cmp r4, #2 - beq _081CF850 - cmp r4, #3 - beq _081CF85A - b _081CF868 -_081CF82C: - movs r0, #5 - bl sub_080A306C - bl MatchCall_PageDown - cmp r0, #1 - beq _081CF844 - cmp r0, #1 - bgt _081CF856 - cmp r0, #0 - bne _081CF856 - b _081CF868 -_081CF844: - movs r0, #7 - b _081CF86A -_081CF848: - bl MatchCall_GetMessage_Type2 - cmp r0, #0 - bne _081CF864 -_081CF850: - adds r0, r5, #0 - bl sub_081CF95C -_081CF856: - movs r0, #0 - b _081CF86A -_081CF85A: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081CF868 -_081CF864: - movs r0, #2 - b _081CF86A -_081CF868: - movs r0, #4 -_081CF86A: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_081CF808 - - thumb_func_start sub_081CF870 -sub_081CF870: @ 0x081CF870 - push {lr} - cmp r0, #0 - beq _081CF87C - cmp r0, #1 - beq _081CF890 - b _081CF8A8 -_081CF87C: - movs r0, #5 - bl sub_080A306C - movs r0, #0 - bl sub_081C7280 - bl sub_081C7060 - movs r0, #0 - b _081CF8AA -_081CF890: - bl sub_081C72F4 - cmp r0, #0 - bne _081CF8A0 - bl MainMenuLoopedTaskIsBusy - cmp r0, #0 - beq _081CF8A4 -_081CF8A0: - movs r0, #2 - b _081CF8AA -_081CF8A4: - bl sub_081C7784 -_081CF8A8: - movs r0, #4 -_081CF8AA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CF870 - - thumb_func_start sub_081CF8B0 -sub_081CF8B0: @ 0x081CF8B0 - push {lr} - cmp r0, #0 - beq _081CF8BC - cmp r0, #1 - beq _081CF8CC - b _081CF8D8 -_081CF8BC: - movs r0, #5 - bl sub_080A306C - movs r0, #0 - bl sub_081C7280 - movs r0, #0 - b _081CF8DA -_081CF8CC: - bl sub_081C72F4 - cmp r0, #0 - beq _081CF8D8 - movs r0, #2 - b _081CF8DA -_081CF8D8: - movs r0, #4 -_081CF8DA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CF8B0 - - thumb_func_start sub_081CF8E0 -sub_081CF8E0: @ 0x081CF8E0 - push {r4, r5, r6, lr} - sub sp, #0xc - adds r5, r0, #0 - ldr r0, _081CF94C - bl AddWindow - movs r6, #0 - strh r0, [r5, #8] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl PutWindowTilemap - bl sub_081CF20C - adds r1, r0, #0 - ldr r4, _081CF950 - adds r0, r4, #0 - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - bl DynamicPlaceholderTextUtil_Reset - movs r0, #0 - adds r1, r4, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - ldr r4, _081CF954 - ldr r1, _081CF958 - adds r0, r4, #0 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - ldrb r0, [r5, #8] - movs r1, #2 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - str r6, [sp, #8] - movs r1, #1 - adds r2, r4, #0 - movs r3, #0 - bl AddTextPrinterParameterized - ldrb r0, [r5, #8] - movs r1, #1 - bl CopyWindowToVram - adds r0, r5, #0 - bl sub_081CF95C - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081CF94C: .4byte gUnknown_85F5DC4 -_081CF950: .4byte gUnknown_2021C40 -_081CF954: .4byte gUnknown_2021C54 -_081CF958: .4byte gUnknown_85F5DCC - thumb_func_end sub_081CF8E0 - - thumb_func_start sub_081CF95C -sub_081CF95C: @ 0x081CF95C - push {r4, r5, lr} - sub sp, #0xc - adds r5, r0, #0 - bl GetSelectedMatchCall - adds r1, r0, #0 - ldr r4, _081CF9A0 - adds r1, #1 - adds r0, r4, #0 - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - ldrb r0, [r5, #8] - movs r1, #2 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - adds r2, r4, #0 - movs r3, #0 - bl AddTextPrinterParameterized - ldrb r0, [r5, #8] - movs r1, #2 - bl CopyWindowToVram - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081CF9A0: .4byte gUnknown_2021C40 - thumb_func_end sub_081CF95C - - thumb_func_start sub_081CF9A4 -sub_081CF9A4: @ 0x081CF9A4 - push {r4, lr} - sub sp, #0x18 - bl sub_081CF1FC - str r0, [sp] - bl sub_081CF20C - mov r1, sp - movs r4, #0 - strh r0, [r1, #4] - movs r0, #4 - strb r0, [r1, #8] - bl sub_081CF238 - mov r1, sp - strh r0, [r1, #6] - movs r0, #0xe - strb r0, [r1, #9] - movs r0, #0x10 - strb r0, [r1, #0xa] - movs r0, #1 - strb r0, [r1, #0xb] - movs r0, #8 - strb r0, [r1, #0xc] - movs r0, #2 - strb r0, [r1, #0xd] - ldr r0, _081CF9F0 - str r0, [sp, #0x10] - str r4, [sp, #0x14] - ldr r0, _081CF9F4 - movs r2, #0 - bl sub_081C797C - add sp, #0x18 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081CF9F0: .4byte sub_081CF9F8 -_081CF9F4: .4byte gUnknown_85F5DA4 - thumb_func_end sub_081CF9A4 - - thumb_func_start sub_081CF9F8 -sub_081CF9F8: @ 0x081CF9F8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov sb, r1 - adds r7, r0, #0 - bl DynamicPlaceholderTextUtil_Reset - ldrb r0, [r7] - cmp r0, #0xe - bne _081CFA44 - ldrb r1, [r7, #1] - movs r0, #0x64 - adds r4, r1, #0 - muls r4, r0, r4 - ldr r0, _081CFA3C - adds r4, r4, r0 - adds r0, r4, #0 - bl GetMonGender - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r0, r4, #0 - bl GetLevelFromMonExp - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r2, _081CFA40 - adds r0, r4, #0 - movs r1, #2 - bl GetMonData - b _081CFA6A - .align 2, 0 -_081CFA3C: .4byte gUnknown_2024190 -_081CFA40: .4byte gUnknown_2021C68 -_081CFA44: - ldrb r0, [r7] - ldrb r1, [r7, #1] - bl GetBoxedMonPtr - adds r4, r0, #0 - bl GetBoxMonGender - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r0, r4, #0 - bl GetLevelFromBoxMonExp - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r2, _081CFAD0 - adds r0, r4, #0 - movs r1, #2 - bl sub_0806A1B4 -_081CFA6A: - ldr r4, _081CFAD0 - adds r0, r4, #0 - bl StringGetEnd10 - ldr r0, _081CFAD4 - mov r8, r0 - adds r1, r4, #0 - movs r2, #0 - movs r3, #5 - bl StringCopyPadded - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - ldr r5, _081CFAD8 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - movs r3, #3 - bl StringCopyPadded - ldrh r1, [r7, #2] - adds r0, r4, #0 - movs r2, #1 - movs r3, #2 - bl sub_080089D8 - movs r0, #0 - mov r1, r8 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - movs r0, #1 - adds r1, r5, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - movs r0, #2 - adds r1, r4, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - cmp r6, #0xfe - beq _081CFAE0 - cmp r6, #0xfe - bgt _081CFAE8 - cmp r6, #0 - bne _081CFAE8 - ldr r1, _081CFADC - b _081CFAEA - .align 2, 0 -_081CFAD0: .4byte gUnknown_2021C68 -_081CFAD4: .4byte gUnknown_2021C40 -_081CFAD8: .4byte gUnknown_2021C54 -_081CFADC: .4byte gUnknown_85F5DD3 -_081CFAE0: - ldr r1, _081CFAE4 - b _081CFAEA - .align 2, 0 -_081CFAE4: .4byte gUnknown_85F5DEB -_081CFAE8: - ldr r1, _081CFAFC -_081CFAEA: - mov r0, sb - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081CFAFC: .4byte gUnknown_85F5E03 - thumb_func_end sub_081CF9F8 - - thumb_func_start sub_081CFB00 -sub_081CFB00: @ 0x081CFB00 - push {r4, lr} - movs r0, #0xd - movs r1, #0x9c - bl AllocSubstruct - adds r4, r0, #0 - cmp r4, #0 - beq _081CFB48 - movs r0, #0x12 - bl GetSubstructPtr - str r0, [r4, #8] - cmp r0, #0 - beq _081CFB48 - adds r0, r4, #0 - bl sub_081CFEC4 - adds r1, r4, #0 - adds r1, #0x98 - ldr r0, _081CFB3C - str r0, [r1] - ldr r1, _081CFB40 - movs r0, #3 - strh r0, [r1] - ldr r1, _081CFB44 - movs r0, #0xa - strh r0, [r1] - movs r0, #1 - b _081CFB4A - .align 2, 0 -_081CFB3C: .4byte sub_081CFB74 -_081CFB40: .4byte gUnknown_300279C -_081CFB44: .4byte gUnknown_3002350 -_081CFB48: - movs r0, #0 -_081CFB4A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081CFB00 - - thumb_func_start sub_081CFB50 -sub_081CFB50: @ 0x081CFB50 - push {lr} - movs r0, #0xd - bl GetSubstructPtr - adds r1, r0, #0 - adds r1, #0x98 - ldr r1, [r1] - bl _call_via_r1 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CFB50 - - thumb_func_start sub_081CFB68 -sub_081CFB68: @ 0x081CFB68 - push {lr} - movs r0, #0xd - bl FreePokenavSubstruct - pop {r0} - bx r0 - thumb_func_end sub_081CFB68 - - thumb_func_start sub_081CFB74 -sub_081CFB74: @ 0x081CFB74 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _081CFB90 - ldrh r1, [r2, #0x30] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _081CFB94 - ldr r3, [r4, #8] - ldrh r0, [r3, #2] - cmp r0, #0 - beq _081CFB94 - subs r0, #1 - b _081CFBAC - .align 2, 0 -_081CFB90: .4byte gUnknown_3002360 -_081CFB94: - ldrh r1, [r2, #0x30] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _081CFBBC - ldr r3, [r4, #8] - ldrh r1, [r3, #2] - ldrh r0, [r3] - subs r0, #1 - cmp r1, r0 - bge _081CFBBC - adds r0, r1, #1 -_081CFBAC: - movs r1, #0 - strh r0, [r3, #2] - strh r1, [r4, #0xc] - adds r0, r4, #0 - bl sub_081CFEC4 - movs r0, #1 - b _081CFBEE -_081CFBBC: - ldrh r2, [r2, #0x2e] - movs r0, #1 - ands r0, r2 - cmp r0, #0 - beq _081CFBD8 - adds r1, r4, #0 - adds r1, #0x98 - ldr r0, _081CFBD4 - str r0, [r1] - movs r0, #2 - b _081CFBEE - .align 2, 0 -_081CFBD4: .4byte sub_081CFBF8 -_081CFBD8: - movs r0, #2 - ands r0, r2 - cmp r0, #0 - bne _081CFBE4 - movs r0, #0 - b _081CFBEE -_081CFBE4: - adds r1, r4, #0 - adds r1, #0x98 - ldr r0, _081CFBF4 - str r0, [r1] - movs r0, #5 -_081CFBEE: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081CFBF4: .4byte sub_081CFC84 - thumb_func_end sub_081CFB74 - - thumb_func_start sub_081CFBF8 -sub_081CFBF8: @ 0x081CFBF8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _081CFC58 - ldrh r1, [r0, #0x30] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _081CFC12 - adds r0, r4, #0 - bl sub_081CFC8C - cmp r0, #0 - bne _081CFC54 -_081CFC12: - ldr r0, _081CFC58 - ldrh r1, [r0, #0x30] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _081CFC28 - adds r0, r4, #0 - bl sub_081CFCCC - cmp r0, #0 - bne _081CFC54 -_081CFC28: - ldr r0, _081CFC58 - ldrh r1, [r0, #0x30] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _081CFC3E - adds r0, r4, #0 - bl sub_081CFD14 - cmp r0, #0 - bne _081CFC54 -_081CFC3E: - ldr r0, _081CFC58 - ldrh r1, [r0, #0x30] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _081CFC5C - adds r0, r4, #0 - bl sub_081CFD38 - cmp r0, #0 - beq _081CFC5C -_081CFC54: - movs r0, #3 - b _081CFC7A - .align 2, 0 -_081CFC58: .4byte gUnknown_3002360 -_081CFC5C: - ldr r0, _081CFC6C - ldrh r1, [r0, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _081CFC70 - movs r0, #0 - b _081CFC7A - .align 2, 0 -_081CFC6C: .4byte gUnknown_3002360 -_081CFC70: - adds r1, r4, #0 - adds r1, #0x98 - ldr r0, _081CFC80 - str r0, [r1] - movs r0, #4 -_081CFC7A: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081CFC80: .4byte sub_081CFB74 - thumb_func_end sub_081CFBF8 - - thumb_func_start sub_081CFC84 -sub_081CFC84: @ 0x081CFC84 - ldr r0, _081CFC88 - bx lr - .align 2, 0 -_081CFC88: .4byte 0x000186AE - thumb_func_end sub_081CFC84 - - thumb_func_start sub_081CFC8C -sub_081CFC8C: @ 0x081CFC8C - push {r4, lr} - adds r1, r0, #0 - ldrh r0, [r1, #0xc] - adds r2, r0, #0 - cmp r2, #0x18 - bhi _081CFCA0 - cmp r2, #8 - bls _081CFCC2 - subs r0, #9 - b _081CFCBC -_081CFCA0: - ldrh r3, [r1, #0x10] - adds r2, r3, #0 - cmp r2, #0 - beq _081CFCC2 - ldrh r0, [r1, #0xc] - subs r0, #0x1b - ldrh r4, [r1, #0xe] - adds r0, r0, r4 - strh r0, [r1, #0xc] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r2 - blo _081CFCBE - subs r0, r3, #1 -_081CFCBC: - strh r0, [r1, #0xc] -_081CFCBE: - movs r0, #1 - b _081CFCC4 -_081CFCC2: - movs r0, #0 -_081CFCC4: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CFC8C - - thumb_func_start sub_081CFCCC -sub_081CFCCC: @ 0x081CFCCC - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0xc] - adds r1, r0, #0 - cmp r1, #0x18 - bhi _081CFD0C - ldrh r3, [r2, #0xe] - cmp r1, r3 - bhs _081CFCF0 - adds r0, #9 - strh r0, [r2, #0xc] - ldrh r1, [r2, #0x10] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r1 - blo _081CFD08 - subs r0, r1, #1 - b _081CFD06 -_081CFCF0: - ldrh r0, [r2, #0x12] - cmp r0, #0 - beq _081CFD0C - ldrh r1, [r2, #0xc] - ldrh r0, [r2, #0xe] - subs r0, r1, r0 - ldrh r1, [r2, #0x12] - cmp r0, r1 - blt _081CFD04 - subs r0, r1, #1 -_081CFD04: - adds r0, #0x1b -_081CFD06: - strh r0, [r2, #0xc] -_081CFD08: - movs r0, #1 - b _081CFD0E -_081CFD0C: - movs r0, #0 -_081CFD0E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CFCCC - - thumb_func_start sub_081CFD14 -sub_081CFD14: @ 0x081CFD14 - push {r4, r5, lr} - adds r5, r0, #0 - ldrh r4, [r5, #0xc] - adds r0, r4, #0 - movs r1, #9 - bl __umodsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _081CFD2C - movs r0, #0 - b _081CFD32 -_081CFD2C: - subs r0, r4, #1 - strh r0, [r5, #0xc] - movs r0, #1 -_081CFD32: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_081CFD14 - - thumb_func_start sub_081CFD38 -sub_081CFD38: @ 0x081CFD38 - push {r4, r5, lr} - adds r5, r0, #0 - ldrh r4, [r5, #0xc] - adds r0, r4, #0 - movs r1, #9 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #7 - bgt _081CFD6C - cmp r4, #0x1a - bhi _081CFD5C - ldrh r0, [r5, #0x10] - subs r0, #1 - cmp r4, r0 - bge _081CFD6C - b _081CFD64 -_081CFD5C: - ldrh r0, [r5, #0x12] - subs r0, #1 - cmp r1, r0 - bge _081CFD6C -_081CFD64: - adds r0, r4, #1 - strh r0, [r5, #0xc] - movs r0, #1 - b _081CFD6E -_081CFD6C: - movs r0, #0 -_081CFD6E: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_081CFD38 - - thumb_func_start sub_081CFD74 -sub_081CFD74: @ 0x081CFD74 - push {lr} - movs r0, #0xd - bl GetSubstructPtr - ldr r0, [r0, #8] - ldrh r0, [r0, #2] - pop {r1} - bx r1 - thumb_func_end sub_081CFD74 - - thumb_func_start sub_081CFD84 -sub_081CFD84: @ 0x081CFD84 - push {lr} - movs r0, #0xd - bl GetSubstructPtr - ldr r0, [r0, #8] - ldrh r0, [r0] - pop {r1} - bx r1 - thumb_func_end sub_081CFD84 - - thumb_func_start GetCurrMonInfo1 -GetCurrMonInfo1: @ 0x081CFD94 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r7, r1, #0 - adds r6, r2, #0 - movs r0, #0xd - bl GetSubstructPtr - ldr r1, [r0, #8] - ldrh r0, [r1, #2] - lsls r0, r0, #2 - adds r0, #4 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0xe - bne _081CFDE0 - ldrb r1, [r1, #1] - movs r0, #0x64 - adds r4, r1, #0 - muls r4, r0, r4 - ldr r0, _081CFDDC - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #2 - adds r2, r5, #0 - bl GetMonData - adds r0, r4, #0 - bl GetLevelFromMonExp - strb r0, [r7] - adds r0, r4, #0 - bl GetMonGender - strb r0, [r6] - b _081CFE02 - .align 2, 0 -_081CFDDC: .4byte gUnknown_2024190 -_081CFDE0: - ldrb r0, [r1] - ldrb r1, [r1, #1] - bl GetBoxedMonPtr - adds r4, r0, #0 - bl GetBoxMonGender - strb r0, [r6] - adds r0, r4, #0 - bl GetLevelFromBoxMonExp - strb r0, [r7] - adds r0, r4, #0 - movs r1, #2 - adds r2, r5, #0 - bl sub_0806A1B4 -_081CFE02: - adds r0, r5, #0 - bl StringGetEnd10 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end GetCurrMonInfo1 - - thumb_func_start GetCurrMonInfo2 -GetCurrMonInfo2: @ 0x081CFE10 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r6, r1, #0 - adds r7, r2, #0 - movs r0, #0xd - bl GetSubstructPtr - ldr r1, [r0, #8] - ldrh r0, [r1, #2] - lsls r0, r0, #2 - adds r0, #4 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0xe - bne _081CFE5C - ldrb r1, [r1, #1] - movs r0, #0x64 - adds r4, r1, #0 - muls r4, r0, r4 - ldr r0, _081CFE58 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0xb - bl GetMonData - strh r0, [r5] - adds r0, r4, #0 - movs r1, #0 - bl GetMonData - str r0, [r6] - adds r0, r4, #0 - movs r1, #1 - bl GetMonData - b _081CFE80 - .align 2, 0 -_081CFE58: .4byte gUnknown_2024190 -_081CFE5C: - ldrb r0, [r1] - ldrb r1, [r1, #1] - bl GetBoxedMonPtr - adds r4, r0, #0 - movs r1, #0xb - bl sub_0806A1B4 - strh r0, [r5] - adds r0, r4, #0 - movs r1, #0 - bl sub_0806A1B4 - str r0, [r6] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806A1B4 -_081CFE80: - str r0, [r7] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end GetCurrMonInfo2 - - thumb_func_start GetCurrMonRibbonCount -GetCurrMonRibbonCount: @ 0x081CFE88 - push {lr} - movs r0, #0xd - bl GetSubstructPtr - ldr r1, [r0, #8] - ldrh r0, [r1, #2] - lsls r0, r0, #2 - adds r0, #4 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0xe - beq _081CFEAA - ldrb r1, [r1, #1] - movs r2, #0x52 - bl GetBoxMonDataAt - b _081CFEBA -_081CFEAA: - ldrb r1, [r1, #1] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081CFEC0 - adds r0, r0, r1 - movs r1, #0x52 - bl GetMonData -_081CFEBA: - pop {r1} - bx r1 - .align 2, 0 -_081CFEC0: .4byte gUnknown_2024190 - thumb_func_end GetCurrMonRibbonCount - - thumb_func_start sub_081CFEC4 -sub_081CFEC4: @ 0x081CFEC4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r5, r0, #0 - ldr r0, [r5, #8] - ldrh r1, [r0, #2] - lsls r1, r1, #2 - adds r1, #4 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, #0xe - bne _081CFEF8 - ldrb r1, [r1, #1] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081CFEF4 - adds r0, r0, r1 - movs r1, #0x53 - bl GetMonData - b _081CFF02 - .align 2, 0 -_081CFEF4: .4byte gUnknown_2024190 -_081CFEF8: - ldrb r0, [r1] - ldrb r1, [r1, #1] - movs r2, #0x53 - bl GetBoxMonDataAt -_081CFF02: - mov ip, r0 - movs r0, #0 - strh r0, [r5, #0x10] - strh r0, [r5, #0x12] - movs r6, #0 - ldr r0, _081CFF58 - mov sb, r0 - mov sl, sb -_081CFF12: - lsls r2, r6, #2 - mov r3, sb - adds r1, r2, r3 - movs r0, #1 - ldrb r3, [r1] - lsls r0, r3 - subs r4, r0, #1 - mov r0, ip - ands r4, r0 - ldrb r0, [r1, #3] - adds r7, r2, #0 - cmp r0, #0 - bne _081CFF5C - movs r3, #0 - adds r6, #1 - mov r8, r6 - cmp r3, r4 - bge _081CFF86 - adds r6, r5, #0 - adds r6, #0x14 - mov r1, sl - adds r0, r7, r1 - ldrb r2, [r0, #2] -_081CFF40: - ldrh r0, [r5, #0x10] - adds r1, r0, #1 - strh r1, [r5, #0x10] - lsls r0, r0, #0x10 - lsrs r0, r0, #0xe - adds r0, r6, r0 - adds r1, r2, r3 - str r1, [r0] - adds r3, #1 - cmp r3, r4 - blt _081CFF40 - b _081CFF86 - .align 2, 0 -_081CFF58: .4byte gUnknown_85F5E14 -_081CFF5C: - movs r3, #0 - adds r6, #1 - mov r8, r6 - cmp r3, r4 - bge _081CFF86 - adds r6, r5, #0 - adds r6, #0x78 - mov r1, sl - adds r0, r7, r1 - ldrb r2, [r0, #2] -_081CFF70: - ldrh r0, [r5, #0x12] - adds r1, r0, #1 - strh r1, [r5, #0x12] - lsls r0, r0, #0x10 - lsrs r0, r0, #0xe - adds r0, r6, r0 - adds r1, r2, r3 - str r1, [r0] - adds r3, #1 - cmp r3, r4 - blt _081CFF70 -_081CFF86: - mov r3, sb - adds r0, r7, r3 - mov r1, ip - ldrb r0, [r0] - lsrs r1, r0 - mov ip, r1 - mov r6, r8 - cmp r6, #0x10 - bls _081CFF12 - ldrh r0, [r5, #0x10] - cmp r0, #0 - beq _081CFFB0 - subs r0, #1 - movs r1, #9 - bl __divsi3 - lsls r1, r0, #3 - adds r1, r1, r0 - movs r0, #0 - strh r1, [r5, #0xe] - b _081CFFB4 -_081CFFB0: - strh r0, [r5, #0xe] - movs r0, #0x1b -_081CFFB4: - strh r0, [r5, #0xc] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_081CFEC4 - - thumb_func_start sub_081CFFC4 -sub_081CFFC4: @ 0x081CFFC4 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0xd - bl GetSubstructPtr - ldrh r1, [r0, #0x10] - str r1, [r4] - adds r0, #0x14 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CFFC4 - - thumb_func_start sub_081CFFDC -sub_081CFFDC: @ 0x081CFFDC - push {r4, lr} - adds r4, r0, #0 - movs r0, #0xd - bl GetSubstructPtr - ldrh r1, [r0, #0x12] - str r1, [r4] - adds r0, #0x78 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CFFDC - - thumb_func_start sub_081CFFF4 -sub_081CFFF4: @ 0x081CFFF4 - push {lr} - movs r0, #0xd - bl GetSubstructPtr - ldrh r0, [r0, #0xc] - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081CFFF4 - - thumb_func_start sub_081D0004 -sub_081D0004: @ 0x081D0004 - push {lr} - movs r0, #0xd - bl GetSubstructPtr - adds r1, r0, #0 - ldrh r0, [r1, #0xc] - cmp r0, #0x18 - ble _081D001C - subs r0, #0x1b - lsls r0, r0, #2 - adds r1, #0x78 - b _081D0020 -_081D001C: - lsls r0, r0, #2 - adds r1, #0x14 -_081D0020: - adds r1, r1, r0 - ldr r0, [r1] - pop {r1} - bx r1 - thumb_func_end sub_081D0004 - - thumb_func_start sub_081D0028 -sub_081D0028: @ 0x081D0028 - push {r4, lr} - ldr r1, _081D004C - movs r0, #0xe - bl AllocSubstruct - adds r4, r0, #0 - cmp r4, #0 - beq _081D0058 - ldr r0, _081D0050 - movs r1, #1 - bl CreateLoopedTask - str r0, [r4, #4] - ldr r0, _081D0054 - str r0, [r4] - movs r0, #1 - b _081D005A - .align 2, 0 -_081D004C: .4byte 0x0000101C -_081D0050: .4byte sub_081D011C -_081D0054: .4byte sub_081D0108 -_081D0058: - movs r0, #0 -_081D005A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081D0028 - - thumb_func_start sub_081D0060 -sub_081D0060: @ 0x081D0060 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0xe - bl GetSubstructPtr - adds r5, r0, #0 - ldr r0, _081D0088 - lsls r4, r4, #2 - adds r4, r4, r0 - ldr r0, [r4] - movs r1, #1 - bl CreateLoopedTask - str r0, [r5, #4] - ldr r0, _081D008C - str r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081D0088: .4byte gUnknown_85F721C -_081D008C: .4byte sub_081D0108 - thumb_func_end sub_081D0060 - - thumb_func_start sub_081D0090 -sub_081D0090: @ 0x081D0090 - push {lr} - movs r0, #0xe - bl GetSubstructPtr - ldr r0, [r0] - bl _call_via_r0 - pop {r1} - thumb_func_end sub_081D0090 - - thumb_func_start sub_081D00A0 -sub_081D00A0: @ 0x081D00A0 - bx r1 - .align 2, 0 - thumb_func_end sub_081D00A0 - - thumb_func_start sub_081D00A4 -sub_081D00A4: @ 0x081D00A4 - push {r4, lr} - movs r0, #0xe - bl GetSubstructPtr - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - bl RemoveWindow - ldrb r0, [r4, #8] - bl RemoveWindow - ldrb r0, [r4, #0xc] - bl RemoveWindow - ldrb r0, [r4, #0xe] - bl RemoveWindow - adds r0, r4, #0 - bl sub_081D0894 - movs r0, #9 - bl FreeSpriteTilesByTag - movs r0, #0xf - bl FreeSpritePaletteByTag - movs r0, #0x10 - bl FreeSpritePaletteByTag - movs r0, #0x11 - bl FreeSpritePaletteByTag - movs r0, #0x12 - bl FreeSpritePaletteByTag - movs r0, #0x13 - bl FreeSpritePaletteByTag - ldr r0, [r4, #0x14] - bl FreeSpriteOamMatrix - ldr r0, [r4, #0x14] - bl DestroySprite - movs r0, #0xe - bl FreePokenavSubstruct - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081D00A4 - - thumb_func_start sub_081D0108 -sub_081D0108: @ 0x081D0108 - push {lr} - movs r0, #0xe - bl GetSubstructPtr - ldr r0, [r0, #4] - bl IsLoopedTaskActive - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081D0108 - - thumb_func_start sub_081D011C -sub_081D011C: @ 0x081D011C - push {r4, r5, lr} - sub sp, #8 - adds r4, r0, #0 - movs r0, #0xe - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #9 - bls _081D0130 - b _081D02F8 -_081D0130: - lsls r0, r4, #2 - ldr r1, _081D013C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081D013C: .4byte _081D0140 -_081D0140: @ jump table - .4byte _081D0168 @ case 0 - .4byte _081D01B4 @ case 1 - .4byte _081D0224 @ case 2 - .4byte _081D0238 @ case 3 - .4byte _081D024C @ case 4 - .4byte _081D0260 @ case 5 - .4byte _081D0274 @ case 6 - .4byte _081D0288 @ case 7 - .4byte _081D0298 @ case 8 - .4byte _081D02EC @ case 9 -_081D0168: - ldr r0, _081D01A4 - movs r1, #2 - bl InitBgTemplates - ldr r1, _081D01A8 - movs r0, #0 - str r0, [sp] - movs r0, #2 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - adds r1, r5, #0 - adds r1, #0x1c - movs r0, #2 - bl SetBgTilemapBuffer - ldr r1, _081D01AC - movs r0, #2 - movs r2, #0 - movs r3, #0 - bl CopyToBgTilemapBuffer - ldr r0, _081D01B0 - movs r1, #0x10 - movs r2, #0x20 - bl ClearBottomWindow - b _081D026A - .align 2, 0 -_081D01A4: .4byte gUnknown_85F7214 -_081D01A8: .4byte gUnknown_85F64AC -_081D01AC: .4byte gUnknown_85F65A8 -_081D01B0: .4byte gUnknown_85F648C -_081D01B4: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - beq _081D01C2 - b _081D02F4 -_081D01C2: - movs r0, #1 - movs r1, #0 - movs r2, #0 - movs r3, #1 - bl sub_08199A88 - ldr r1, _081D0214 - str r4, [sp] - movs r0, #1 - movs r2, #0 - movs r3, #1 - bl decompress_and_copy_tile_data_to_vram - ldr r0, _081D0218 - adds r1, r5, r0 - movs r0, #1 - bl SetBgTilemapBuffer - movs r0, #0x20 - str r0, [sp] - movs r0, #0x14 - str r0, [sp, #4] - movs r0, #1 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - ldr r0, _081D021C - movs r1, #0x20 - movs r2, #0xa0 - bl ClearBottomWindow - ldr r0, _081D0220 - movs r1, #0xa0 - movs r2, #0x20 - bl ClearBottomWindow - movs r0, #1 - b _081D026C - .align 2, 0 -_081D0214: .4byte gUnknown_85F6734 -_081D0218: .4byte 0x0000081C -_081D021C: .4byte gUnknown_85F6674 -_081D0220: .4byte gUnknown_85F6714 -_081D0224: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081D02F4 - adds r0, r5, #0 - bl sub_081D0510 - movs r0, #0 - b _081D02FA -_081D0238: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081D02F4 - adds r0, r5, #0 - bl sub_081D067C - movs r0, #0 - b _081D02FA -_081D024C: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081D02F4 - adds r0, r5, #0 - bl sub_081D076C - movs r0, #0 - b _081D02FA -_081D0260: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081D02F4 -_081D026A: - movs r0, #2 -_081D026C: - bl CopyBgTilemapBufferToVram - movs r0, #0 - b _081D02FA -_081D0274: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081D02F4 - adds r0, r5, #0 - bl sub_081D0864 - movs r0, #1 - b _081D02FA -_081D0288: - adds r0, r5, #0 - bl sub_081D09F4 - movs r0, #0xa - bl sub_081C7364 - movs r0, #0 - b _081D02FA -_081D0298: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081D02F4 - adds r0, r5, #0 - bl sub_081D0B18 - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #2 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl HideBg - movs r0, #1 - bl sub_081C7280 - movs r0, #0 - b _081D02FA -_081D02EC: - bl sub_081C72F4 - cmp r0, #0 - beq _081D02F8 -_081D02F4: - movs r0, #2 - b _081D02FA -_081D02F8: - movs r0, #4 -_081D02FA: - add sp, #8 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081D011C - - thumb_func_start sub_081D0304 -sub_081D0304: @ 0x081D0304 - push {lr} - cmp r0, #0 - beq _081D0310 - cmp r0, #1 - beq _081D0320 - b _081D032C -_081D0310: - movs r0, #5 - bl sub_080A306C - movs r0, #0 - bl sub_081C7280 - movs r0, #0 - b _081D032E -_081D0320: - bl sub_081C72F4 - cmp r0, #0 - beq _081D032C - movs r0, #2 - b _081D032E -_081D032C: - movs r0, #4 -_081D032E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081D0304 - - thumb_func_start sub_081D0334 -sub_081D0334: @ 0x081D0334 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0xe - bl GetSubstructPtr - adds r4, r0, #0 - cmp r5, #6 - bhi _081D03D4 - lsls r0, r5, #2 - ldr r1, _081D0350 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081D0350: .4byte _081D0354 -_081D0354: @ jump table - .4byte _081D0370 @ case 0 - .4byte _081D0380 @ case 1 - .4byte _081D0394 @ case 2 - .4byte _081D039E @ case 3 - .4byte _081D03A8 @ case 4 - .4byte _081D03B2 @ case 5 - .4byte _081D03C6 @ case 6 -_081D0370: - movs r0, #5 - bl sub_080A306C - adds r0, r4, #0 - bl sub_081D08F4 - movs r0, #0 - b _081D03D6 -_081D0380: - adds r0, r4, #0 - bl sub_081D0950 - cmp r0, #0 - bne _081D03D0 - adds r0, r4, #0 - bl sub_081D06A0 - movs r0, #1 - b _081D03D6 -_081D0394: - adds r0, r4, #0 - bl sub_081D09F4 - movs r0, #1 - b _081D03D6 -_081D039E: - adds r0, r4, #0 - bl sub_081D081C - movs r0, #1 - b _081D03D6 -_081D03A8: - adds r0, r4, #0 - bl sub_081D0534 - movs r0, #1 - b _081D03D6 -_081D03B2: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081D03D0 - adds r0, r4, #0 - bl sub_081D0918 - movs r0, #0 - b _081D03D6 -_081D03C6: - adds r0, r4, #0 - bl sub_081D0950 - cmp r0, #0 - beq _081D03D4 -_081D03D0: - movs r0, #2 - b _081D03D6 -_081D03D4: - movs r0, #4 -_081D03D6: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_081D0334 - - thumb_func_start sub_081D03DC -sub_081D03DC: @ 0x081D03DC - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0xe - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #1 - beq _081D040C - cmp r4, #1 - bgt _081D03F6 - cmp r4, #0 - beq _081D03FC - b _081D0434 -_081D03F6: - cmp r4, #2 - beq _081D0426 - b _081D0434 -_081D03FC: - movs r0, #5 - bl sub_080A306C - adds r0, r5, #0 - bl sub_081D0B64 - movs r0, #0 - b _081D0436 -_081D040C: - adds r0, r5, #0 - bl sub_081D0C40 - cmp r0, #0 - bne _081D0430 - adds r0, r5, #0 - bl sub_081D05AC - movs r0, #0xb - bl sub_081C7364 - movs r0, #0 - b _081D0436 -_081D0426: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D0434 -_081D0430: - movs r0, #2 - b _081D0436 -_081D0434: - movs r0, #4 -_081D0436: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_081D03DC - - thumb_func_start sub_081D043C -sub_081D043C: @ 0x081D043C - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0xe - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #1 - beq _081D0470 - cmp r4, #1 - bgt _081D0456 - cmp r4, #0 - beq _081D0460 - b _081D04A6 -_081D0456: - cmp r4, #2 - beq _081D0484 - cmp r4, #3 - beq _081D0498 - b _081D04A6 -_081D0460: - movs r0, #5 - bl sub_080A306C - adds r0, r5, #0 - bl sub_081D0C1C - movs r0, #0 - b _081D04A8 -_081D0470: - adds r0, r5, #0 - bl sub_081D0C40 - cmp r0, #0 - bne _081D04A2 - adds r0, r5, #0 - bl sub_081D0B64 - movs r0, #0 - b _081D04A8 -_081D0484: - adds r0, r5, #0 - bl sub_081D0C40 - cmp r0, #0 - bne _081D04A2 - adds r0, r5, #0 - bl sub_081D05AC - movs r0, #0 - b _081D04A8 -_081D0498: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D04A6 -_081D04A2: - movs r0, #2 - b _081D04A8 -_081D04A6: - movs r0, #4 -_081D04A8: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081D043C - - thumb_func_start sub_081D04B0 -sub_081D04B0: @ 0x081D04B0 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0xe - bl GetSubstructPtr - adds r5, r0, #0 - cmp r4, #1 - beq _081D04E0 - cmp r4, #1 - bgt _081D04CA - cmp r4, #0 - beq _081D04D0 - b _081D0508 -_081D04CA: - cmp r4, #2 - beq _081D04FA - b _081D0508 -_081D04D0: - movs r0, #5 - bl sub_080A306C - adds r0, r5, #0 - bl sub_081D0C1C - movs r0, #0 - b _081D050A -_081D04E0: - adds r0, r5, #0 - bl sub_081D0C40 - cmp r0, #0 - bne _081D0504 - adds r0, r5, #0 - bl sub_081D0534 - movs r0, #0xa - bl sub_081C7364 - movs r0, #0 - b _081D050A -_081D04FA: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D0508 -_081D0504: - movs r0, #2 - b _081D050A -_081D0508: - movs r0, #4 -_081D050A: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_081D04B0 - - thumb_func_start sub_081D0510 -sub_081D0510: @ 0x081D0510 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _081D0530 - bl AddWindow - strh r0, [r4, #0xa] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl PutWindowTilemap - adds r0, r4, #0 - bl sub_081D0534 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D0530: .4byte gUnknown_85F7234 - thumb_func_end sub_081D0510 - - thumb_func_start sub_081D0534 -sub_081D0534: @ 0x081D0534 - push {r4, r5, lr} - sub sp, #0x10 - adds r5, r0, #0 - ldr r1, _081D059C - add r0, sp, #0xc - movs r2, #3 - bl memcpy - ldr r4, _081D05A0 - bl GetCurrMonRibbonCount - adds r1, r0, #0 - adds r0, r4, #0 - movs r2, #0 - movs r3, #2 - bl sub_080089D8 - bl DynamicPlaceholderTextUtil_Reset - movs r0, #0 - adds r1, r4, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - ldr r4, _081D05A4 - ldr r1, _081D05A8 - adds r0, r4, #0 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - ldrb r0, [r5, #0xa] - movs r1, #0x44 - bl FillWindowPixelBuffer - ldrb r0, [r5, #0xa] - add r1, sp, #0xc - str r1, [sp] - movs r1, #1 - rsbs r1, r1, #0 - str r1, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r2, #0 - movs r3, #2 - bl AddTextPrinterParameterized3 - ldrb r0, [r5, #0xa] - movs r1, #2 - bl CopyWindowToVram - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081D059C: .4byte gUnknown_85F723C -_081D05A0: .4byte gUnknown_2021C40 -_081D05A4: .4byte gUnknown_2021C7C -_081D05A8: .4byte gUnknown_85CB821 - thumb_func_end sub_081D0534 - - thumb_func_start sub_081D05AC -sub_081D05AC: @ 0x081D05AC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x10 - adds r7, r0, #0 - bl sub_081D0004 - adds r5, r0, #0 - ldr r1, _081D0608 - add r0, sp, #0xc - movs r2, #3 - bl memcpy - ldrb r0, [r7, #0xa] - movs r1, #0x44 - bl FillWindowPixelBuffer - cmp r5, #0x18 - bhi _081D0610 - lsls r1, r5, #3 - ldr r0, _081D060C - adds r6, r1, r0 - movs r5, #0x80 - lsls r5, r5, #0x12 - movs r4, #1 -_081D05DE: - ldrb r0, [r7, #0xa] - lsrs r3, r5, #0x18 - add r1, sp, #0xc - str r1, [sp] - movs r1, #1 - rsbs r1, r1, #0 - str r1, [sp, #4] - ldm r6!, {r1} - str r1, [sp, #8] - movs r1, #1 - movs r2, #0 - bl AddTextPrinterParameterized3 - movs r0, #0x80 - lsls r0, r0, #0x15 - adds r5, r5, r0 - subs r4, #1 - cmp r4, #0 - bge _081D05DE - b _081D065A - .align 2, 0 -_081D0608: .4byte gUnknown_85F723C -_081D060C: .4byte gUnknown_85F5F60 -_081D0610: - ldr r0, _081D0670 - ldr r0, [r0] - adds r0, r0, r5 - ldr r1, _081D0674 - adds r0, r0, r1 - ldrb r5, [r0] - cmp r5, #0 - beq _081D0662 - subs r5, #1 - movs r4, #0 - ldr r0, _081D0678 - mov r8, r0 - movs r6, #0x80 - lsls r6, r6, #0x12 -_081D062C: - ldrb r0, [r7, #0xa] - lsrs r3, r6, #0x18 - add r1, sp, #0xc - str r1, [sp] - movs r1, #1 - rsbs r1, r1, #0 - str r1, [sp, #4] - lsls r1, r4, #2 - lsls r2, r5, #3 - adds r1, r1, r2 - add r1, r8 - ldr r1, [r1] - str r1, [sp, #8] - movs r1, #1 - movs r2, #0 - bl AddTextPrinterParameterized3 - movs r0, #0x80 - lsls r0, r0, #0x15 - adds r6, r6, r0 - adds r4, #1 - cmp r4, #1 - ble _081D062C -_081D065A: - ldrb r0, [r7, #0xa] - movs r1, #2 - bl CopyWindowToVram -_081D0662: - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D0670: .4byte gUnknown_3005AEC -_081D0674: .4byte 0x0000318F -_081D0678: .4byte gUnknown_85F628C - thumb_func_end sub_081D05AC - - thumb_func_start sub_081D067C -sub_081D067C: @ 0x081D067C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _081D069C - bl AddWindow - strh r0, [r4, #8] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl PutWindowTilemap - adds r0, r4, #0 - bl sub_081D06A0 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D069C: .4byte gUnknown_85F7240 - thumb_func_end sub_081D067C - - thumb_func_start sub_081D06A0 -sub_081D06A0: @ 0x081D06A0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x10 - adds r7, r0, #0 - ldr r4, _081D070C - movs r0, #0xd - add r0, sp - mov r8, r0 - adds r0, r4, #0 - add r1, sp, #0xc - mov r2, r8 - bl GetCurrMonInfo1 - ldr r6, _081D0710 - adds r0, r6, #0 - adds r1, r4, #0 - movs r2, #0 - movs r3, #5 - bl StringCopyPadded - add r0, sp, #0xc - ldrb r1, [r0] - adds r0, r4, #0 - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - ldr r5, _081D0714 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - movs r3, #3 - bl StringCopyPadded - bl DynamicPlaceholderTextUtil_Reset - movs r0, #0 - adds r1, r6, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - movs r0, #1 - adds r1, r5, #0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - mov r1, r8 - ldrb r0, [r1] - cmp r0, #0 - beq _081D071C - cmp r0, #0xfe - beq _081D0724 - ldr r1, _081D0718 - b _081D0726 - .align 2, 0 -_081D070C: .4byte gUnknown_2021C68 -_081D0710: .4byte gUnknown_2021C40 -_081D0714: .4byte gUnknown_2021C54 -_081D0718: .4byte gUnknown_85CB7FE -_081D071C: - ldr r1, _081D0720 - b _081D0726 - .align 2, 0 -_081D0720: .4byte gUnknown_85CB7D6 -_081D0724: - ldr r1, _081D0764 -_081D0726: - ldr r4, _081D0768 - adds r0, r4, #0 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - ldrb r0, [r7, #8] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldrb r0, [r7, #8] - movs r1, #2 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - adds r2, r4, #0 - movs r3, #0 - bl AddTextPrinterParameterized - ldrb r0, [r7, #8] - movs r1, #2 - bl CopyWindowToVram - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D0764: .4byte gUnknown_85CB7EA -_081D0768: .4byte gUnknown_2021C7C - thumb_func_end sub_081D06A0 - - thumb_func_start sub_081D076C -sub_081D076C: @ 0x081D076C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _081D07B4 - adds r0, r4, #0 - bl AddWindow - strh r0, [r5, #0xc] - adds r4, #8 - adds r0, r4, #0 - bl AddWindow - strh r0, [r5, #0xe] - ldrb r0, [r5, #0xc] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldrb r0, [r5, #0xe] - movs r1, #0x11 - bl FillWindowPixelBuffer - ldrb r0, [r5, #0xc] - bl PutWindowTilemap - ldrb r0, [r5, #0xe] - bl PutWindowTilemap - ldrh r0, [r5, #0xe] - bl DisplayItemMessageInBattlePyramid - adds r0, r5, #0 - bl sub_081D081C - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081D07B4: .4byte gUnknown_85F7248 - thumb_func_end sub_081D076C - - thumb_func_start DisplayItemMessageInBattlePyramid -DisplayItemMessageInBattlePyramid: @ 0x081D07B8 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0xc - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r6, _081D0818 - movs r0, #0 - mov r8, r0 - movs r0, #0xba - strb r0, [r6] - adds r5, r6, #1 - bl sub_081CFD84 - adds r1, r0, #0 - adds r0, r5, #0 - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - movs r0, #2 - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - mov r0, r8 - str r0, [sp, #8] - adds r0, r4, #0 - movs r1, #1 - adds r2, r6, #0 - movs r3, #0 - bl AddTextPrinterParameterized - adds r0, r4, #0 - movs r1, #2 - bl CopyWindowToVram - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081D0818: .4byte gUnknown_2021C40 - thumb_func_end DisplayItemMessageInBattlePyramid - - thumb_func_start sub_081D081C -sub_081D081C: @ 0x081D081C - push {r4, r5, lr} - sub sp, #0xc - adds r5, r0, #0 - bl sub_081CFD74 - adds r1, r0, #0 - adds r1, #1 - ldr r4, _081D0860 - adds r0, r4, #0 - movs r2, #1 - movs r3, #3 - bl sub_080089D8 - ldrb r0, [r5, #0xc] - movs r1, #2 - str r1, [sp] - movs r1, #0xff - str r1, [sp, #4] - movs r1, #0 - str r1, [sp, #8] - movs r1, #1 - adds r2, r4, #0 - movs r3, #0 - bl AddTextPrinterParameterized - ldrb r0, [r5, #0xc] - movs r1, #2 - bl CopyWindowToVram - add sp, #0xc - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081D0860: .4byte gUnknown_2021C40 - thumb_func_end sub_081D081C - - thumb_func_start sub_081D0864 -sub_081D0864: @ 0x081D0864 - push {r4, lr} - sub sp, #0xc - adds r4, r0, #0 - add r1, sp, #4 - add r2, sp, #8 - mov r0, sp - bl GetCurrMonInfo2 - bl ResetAllPicSprites - movs r0, #0x28 - movs r1, #0x68 - bl sub_081D08A0 - strh r0, [r4, #0x10] - movs r0, #0xf - movs r1, #0 - bl sub_081C7150 - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081D0864 - - thumb_func_start sub_081D0894 -sub_081D0894: @ 0x081D0894 - push {lr} - ldrh r0, [r0, #0x10] - bl FreeAndDestroyMonPicSprite - pop {r0} - bx r0 - thumb_func_end sub_081D0894 - - thumb_func_start sub_081D08A0 -sub_081D08A0: @ 0x081D08A0 - push {lr} - sub sp, #0x1c - add r1, sp, #0x14 - add r2, sp, #0x18 - add r0, sp, #0x10 - bl GetCurrMonInfo2 - add r0, sp, #0x10 - ldrh r0, [r0] - ldr r1, [sp, #0x18] - ldr r2, [sp, #0x14] - movs r3, #0x28 - str r3, [sp] - movs r3, #0x68 - str r3, [sp, #4] - movs r3, #0xf - str r3, [sp, #8] - ldr r3, _081D08EC - str r3, [sp, #0xc] - movs r3, #1 - bl CreateMonPicSprite_HandleDeoxys - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _081D08F0 - lsls r2, r0, #4 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r1 - ldrb r3, [r2, #5] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r3 - strb r1, [r2, #5] - add sp, #0x1c - pop {r1} - bx r1 - .align 2, 0 -_081D08EC: .4byte 0x0000FFFF -_081D08F0: .4byte gUnknown_20205AC - thumb_func_end sub_081D08A0 - - thumb_func_start sub_081D08F4 -sub_081D08F4: @ 0x081D08F4 - push {lr} - ldrh r1, [r0, #0x10] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _081D0914 - adds r0, r0, r1 - movs r2, #0x20 - rsbs r2, r2, #0 - movs r1, #0x28 - movs r3, #6 - bl sub_081D0974 - pop {r0} - bx r0 - .align 2, 0 -_081D0914: .4byte gUnknown_20205AC - thumb_func_end sub_081D08F4 - - thumb_func_start sub_081D0918 -sub_081D0918: @ 0x081D0918 - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x10] - bl FreeAndDestroyMonPicSprite - movs r5, #0x20 - rsbs r5, r5, #0 - adds r0, r5, #0 - movs r1, #0x68 - bl sub_081D08A0 - strh r0, [r4, #0x10] - ldrh r1, [r4, #0x10] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _081D094C - adds r0, r0, r1 - adds r1, r5, #0 - movs r2, #0x28 - movs r3, #6 - bl sub_081D0974 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081D094C: .4byte gUnknown_20205AC - thumb_func_end sub_081D0918 - - thumb_func_start sub_081D0950 -sub_081D0950: @ 0x081D0950 - ldr r2, _081D096C - ldrh r1, [r0, #0x10] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _081D0970 - eors r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - bx lr - .align 2, 0 -_081D096C: .4byte gUnknown_20205AC -_081D0970: .4byte sub_08007140 - thumb_func_end sub_081D0950 - - thumb_func_start sub_081D0974 -sub_081D0974: @ 0x081D0974 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r2, #0 - adds r5, r3, #0 - subs r0, r6, r1 - strh r1, [r4, #0x20] - lsls r1, r1, #4 - strh r1, [r4, #0x2e] - lsls r0, r0, #4 - adds r1, r5, #0 - bl __udivsi3 - strh r0, [r4, #0x30] - strh r5, [r4, #0x32] - strh r6, [r4, #0x34] - ldr r0, _081D099C - str r0, [r4, #0x1c] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081D099C: .4byte sub_081D09A0 - thumb_func_end sub_081D0974 - - thumb_func_start sub_081D09A0 -sub_081D09A0: @ 0x081D09A0 - push {lr} - adds r2, r0, #0 - ldrh r1, [r2, #0x32] - movs r3, #0x32 - ldrsh r0, [r2, r3] - cmp r0, #0 - beq _081D09E4 - subs r0, r1, #1 - strh r0, [r2, #0x32] - ldrh r0, [r2, #0x30] - ldrh r1, [r2, #0x2e] - adds r0, r0, r1 - strh r0, [r2, #0x2e] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - strh r0, [r2, #0x20] - movs r1, #0x20 - rsbs r1, r1, #0 - cmp r0, r1 - bgt _081D09D6 - adds r0, r2, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - b _081D09EC -_081D09D6: - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - b _081D09EC -_081D09E4: - ldrh r0, [r2, #0x34] - strh r0, [r2, #0x20] - ldr r0, _081D09F0 - str r0, [r2, #0x1c] -_081D09EC: - pop {r0} - bx r0 - .align 2, 0 -_081D09F0: .4byte sub_08007140 - thumb_func_end sub_081D09A0 - - thumb_func_start sub_081D09F4 -sub_081D09F4: @ 0x081D09F4 - push {r4, r5, r6, lr} - bl sub_081D0A6C - ldr r5, _081D0A64 - adds r0, r5, #0 - bl sub_081CFFC4 - adds r6, r0, #0 - ldr r2, _081D0A68 - movs r1, #0 - str r1, [r2] - ldr r0, [r5] - cmp r1, r0 - bhs _081D0A26 - adds r4, r2, #0 -_081D0A12: - ldr r0, [r4] - ldm r6!, {r1} - bl sub_081D0A8C - ldr r1, [r4] - adds r1, #1 - str r1, [r4] - ldr r0, [r5] - cmp r1, r0 - blo _081D0A12 -_081D0A26: - ldr r4, _081D0A64 - adds r0, r4, #0 - bl sub_081CFFDC - adds r6, r0, #0 - ldr r2, _081D0A68 - movs r1, #0 - str r1, [r2] - ldr r0, [r4] - cmp r1, r0 - bhs _081D0A56 - adds r4, r2, #0 -_081D0A3E: - ldr r0, [r4] - adds r0, #0x1b - ldm r6!, {r1} - bl sub_081D0A8C - ldr r1, [r4] - adds r1, #1 - str r1, [r4] - ldr r0, _081D0A64 - ldr r0, [r0] - cmp r1, r0 - blo _081D0A3E -_081D0A56: - movs r0, #1 - bl CopyBgTilemapBufferToVram - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081D0A64: .4byte gUnknown_30012B4 -_081D0A68: .4byte gUnknown_30012B8 - thumb_func_end sub_081D09F4 - - thumb_func_start sub_081D0A6C -sub_081D0A6C: @ 0x081D0A6C - push {lr} - sub sp, #8 - movs r0, #0x20 - str r0, [sp] - movs r0, #0x14 - str r0, [sp, #4] - movs r0, #1 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl FillBgTilemapBufferRect_Palette0 - add sp, #8 - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081D0A6C - - thumb_func_start sub_081D0A8C -sub_081D0A8C: @ 0x081D0A8C - push {r4, r5, r6, lr} - sub sp, #0x10 - adds r4, r0, #0 - adds r6, r1, #0 - movs r1, #9 - bl __umodsi3 - adds r5, r0, #0 - lsls r5, r5, #1 - adds r5, #0xb - adds r0, r4, #0 - movs r1, #9 - bl __udivsi3 - adds r4, r0, #0 - lsls r4, r4, #1 - adds r4, #4 - add r0, sp, #8 - adds r1, r6, #0 - bl sub_081D0AD8 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #2 - str r0, [sp] - str r0, [sp, #4] - movs r0, #1 - add r1, sp, #8 - adds r2, r5, #0 - adds r3, r4, #0 - bl CopyToBgTilemapBufferRect - add sp, #0x10 - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_081D0A8C - - thumb_func_start sub_081D0AD8 -sub_081D0AD8: @ 0x081D0AD8 - push {r4, r5, lr} - ldr r2, _081D0B14 - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r3, [r1, #2] - adds r3, #2 - lsls r3, r3, #0x10 - ldrh r1, [r1] - lsls r1, r1, #1 - adds r1, #1 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsrs r3, r3, #4 - adds r2, r1, #0 - orrs r2, r3 - strh r2, [r0] - movs r5, #0x80 - lsls r5, r5, #3 - adds r4, r5, #0 - orrs r2, r4 - strh r2, [r0, #2] - adds r1, #1 - orrs r1, r3 - strh r1, [r0, #4] - orrs r1, r4 - strh r1, [r0, #6] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081D0B14: .4byte gUnknown_85F7258 - thumb_func_end sub_081D0AD8 - - thumb_func_start sub_081D0B18 -sub_081D0B18: @ 0x081D0B18 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _081D0B54 - bl LoadCompressedSpriteSheet - ldr r0, _081D0B58 - bl Pokenav_AllocAndLoadPalettes - ldr r0, _081D0B5C - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _081D0B60 - adds r1, r1, r0 - str r1, [r4, #0x14] - adds r1, #0x3e - ldrb r0, [r1] - movs r2, #4 - orrs r0, r2 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D0B54: .4byte gUnknown_85F72D8 -_081D0B58: .4byte gUnknown_85F72E0 -_081D0B5C: .4byte gUnknown_85F7364 -_081D0B60: .4byte gUnknown_20205AC - thumb_func_end sub_081D0B18 - - thumb_func_start sub_081D0B64 -sub_081D0B64: @ 0x081D0B64 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r6, r0, #0 - bl sub_081CFFF4 - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r4, #0 - movs r1, #9 - bl __modsi3 - adds r5, r0, #0 - lsls r5, r5, #4 - adds r5, #0x60 - adds r0, r4, #0 - movs r1, #9 - bl __divsi3 - lsls r0, r0, #4 - adds r0, #0x28 - ldr r1, [r6, #0x14] - movs r2, #0 - mov r8, r2 - strh r5, [r1, #0x20] - ldr r1, [r6, #0x14] - strh r0, [r1, #0x22] - bl sub_081D0004 - adds r4, r0, #0 - movs r0, #9 - bl GetSpriteTileStartByTag - ldr r3, [r6, #0x14] - ldr r1, _081D0C0C - lsls r4, r4, #2 - adds r4, r4, r1 - ldrh r1, [r4] - lsls r1, r1, #4 - adds r0, r0, r1 - ldr r2, _081D0C10 - adds r1, r2, #0 - ands r0, r1 - ldrh r2, [r3, #4] - ldr r1, _081D0C14 - ands r1, r2 - orrs r1, r0 - strh r1, [r3, #4] - ldrh r0, [r4, #2] - adds r0, #0xf - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl IndexOfSpritePaletteTag - ldr r3, [r6, #0x14] - lsls r0, r0, #4 - ldrb r2, [r3, #5] - movs r1, #0xf - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #5] - ldr r0, [r6, #0x14] - movs r1, #1 - bl StartSpriteAffineAnim - ldr r1, [r6, #0x14] - adds r1, #0x3e - ldrb r2, [r1] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r0, [r6, #0x14] - mov r1, r8 - strh r1, [r0, #0x2e] - ldr r1, [r6, #0x14] - ldr r0, _081D0C18 - str r0, [r1, #0x1c] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081D0C0C: .4byte gUnknown_85F7258 -_081D0C10: .4byte 0x000003FF -_081D0C14: .4byte 0xFFFFFC00 -_081D0C18: .4byte sub_081D0C54 - thumb_func_end sub_081D0B64 - - thumb_func_start sub_081D0C1C -sub_081D0C1C: @ 0x081D0C1C - push {r4, lr} - adds r4, r0, #0 - ldr r1, [r4, #0x14] - movs r0, #1 - strh r0, [r1, #0x2e] - ldr r0, [r4, #0x14] - movs r1, #2 - bl StartSpriteAffineAnim - ldr r1, [r4, #0x14] - ldr r0, _081D0C3C - str r0, [r1, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D0C3C: .4byte sub_081D0C54 - thumb_func_end sub_081D0C1C - - thumb_func_start sub_081D0C40 -sub_081D0C40: @ 0x081D0C40 - ldr r0, [r0, #0x14] - ldr r1, [r0, #0x1c] - ldr r0, _081D0C50 - eors r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - bx lr - .align 2, 0 -_081D0C50: .4byte sub_08007140 - thumb_func_end sub_081D0C40 - - thumb_func_start sub_081D0C54 -sub_081D0C54: @ 0x081D0C54 - push {lr} - adds r3, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _081D0C86 - movs r0, #0x3e - adds r0, r0, r3 - mov ip, r0 - movs r0, #1 - ldrh r1, [r3, #0x2e] - ands r1, r0 - lsls r1, r1, #2 - mov r0, ip - ldrb r2, [r0] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - ldr r0, _081D0C8C - str r0, [r3, #0x1c] -_081D0C86: - pop {r0} - bx r0 - .align 2, 0 -_081D0C8C: .4byte sub_08007140 - thumb_func_end sub_081D0C54 - - thumb_func_start MatchCallGetFunctionIndex -MatchCallGetFunctionIndex: @ 0x081D0C90 - push {lr} - ldrb r0, [r0] - cmp r0, #5 - bhi _081D0CC0 - lsls r0, r0, #2 - ldr r1, _081D0CA4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081D0CA4: .4byte _081D0CA8 -_081D0CA8: @ jump table - .4byte _081D0CC0 @ case 0 - .4byte _081D0CC4 @ case 1 - .4byte _081D0CC8 @ case 2 - .4byte _081D0CD0 @ case 3 - .4byte _081D0CCC @ case 4 - .4byte _081D0CC4 @ case 5 -_081D0CC0: - movs r0, #0 - b _081D0CD2 -_081D0CC4: - movs r0, #1 - b _081D0CD2 -_081D0CC8: - movs r0, #2 - b _081D0CD2 -_081D0CCC: - movs r0, #3 - b _081D0CD2 -_081D0CD0: - movs r0, #4 -_081D0CD2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MatchCallGetFunctionIndex - - thumb_func_start GetTrainerIdxByRematchIdx -GetTrainerIdxByRematchIdx: @ 0x081D0CD8 - ldr r1, _081D0CE4 - lsls r0, r0, #4 - adds r0, r0, r1 - ldrh r0, [r0] - bx lr - .align 2, 0 -_081D0CE4: .4byte gUnknown_852AD40 - thumb_func_end GetTrainerIdxByRematchIdx - - thumb_func_start GetRematchIdxByTrainerIdx -GetRematchIdxByTrainerIdx: @ 0x081D0CE8 - push {lr} - adds r3, r0, #0 - movs r1, #0 - ldr r2, _081D0CFC -_081D0CF0: - ldrh r0, [r2] - cmp r0, r3 - bne _081D0D00 - adds r0, r1, #0 - b _081D0D0C - .align 2, 0 -_081D0CFC: .4byte gUnknown_852AD40 -_081D0D00: - adds r2, #0x10 - adds r1, #1 - cmp r1, #0x4d - ble _081D0CF0 - movs r0, #1 - rsbs r0, r0, #0 -_081D0D0C: - pop {r1} - bx r1 - thumb_func_end GetRematchIdxByTrainerIdx - - thumb_func_start MatchCallFlagGetByIndex -MatchCallFlagGetByIndex: @ 0x081D0D10 - push {r4, lr} - cmp r0, #0x14 - bhi _081D0D3C - ldr r1, _081D0D34 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r4, [r0] - adds r0, r4, #0 - bl MatchCallGetFunctionIndex - ldr r1, _081D0D38 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - b _081D0D3E - .align 2, 0 -_081D0D34: .4byte gUnknown_85F79B4 -_081D0D38: .4byte gUnknown_85F7A08 -_081D0D3C: - movs r0, #0 -_081D0D3E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end MatchCallFlagGetByIndex - - thumb_func_start sub_081D0D44 -sub_081D0D44: @ 0x081D0D44 - push {lr} - adds r2, r0, #0 - ldrh r1, [r2, #2] - ldr r0, _081D0D5C - cmp r1, r0 - beq _081D0D60 - adds r0, r1, #0 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _081D0D62 - .align 2, 0 -_081D0D5C: .4byte 0x0000FFFF -_081D0D60: - movs r0, #1 -_081D0D62: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081D0D44 - - thumb_func_start sub_081D0D68 -sub_081D0D68: @ 0x081D0D68 - push {lr} - adds r2, r0, #0 - ldrh r1, [r2, #2] - ldr r0, _081D0D80 - cmp r1, r0 - beq _081D0D84 - adds r0, r1, #0 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _081D0D86 - .align 2, 0 -_081D0D80: .4byte 0x0000FFFF -_081D0D84: - movs r0, #1 -_081D0D86: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081D0D68 - - thumb_func_start sub_081D0D8C -sub_081D0D8C: @ 0x081D0D8C - push {lr} - adds r2, r0, #0 - ldrh r1, [r2, #2] - ldr r0, _081D0DA4 - cmp r1, r0 - beq _081D0DA8 - adds r0, r1, #0 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _081D0DAA - .align 2, 0 -_081D0DA4: .4byte 0x0000FFFF -_081D0DA8: - movs r0, #1 -_081D0DAA: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081D0D8C - - thumb_func_start MatchCallGetFlag_Type4 -MatchCallGetFlag_Type4: @ 0x081D0DB0 - push {lr} - adds r2, r0, #0 - ldr r0, _081D0DC4 - ldr r1, [r0] - ldrb r0, [r2, #1] - ldrb r1, [r1, #8] - cmp r0, r1 - beq _081D0DC8 - movs r0, #0 - b _081D0DE2 - .align 2, 0 -_081D0DC4: .4byte gUnknown_3005AF0 -_081D0DC8: - ldrh r1, [r2, #2] - ldr r0, _081D0DDC - cmp r1, r0 - beq _081D0DE0 - adds r0, r1, #0 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _081D0DE2 - .align 2, 0 -_081D0DDC: .4byte 0x0000FFFF -_081D0DE0: - movs r0, #1 -_081D0DE2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MatchCallGetFlag_Type4 - - thumb_func_start MatchCallGetFlag_Type3 -MatchCallGetFlag_Type3: @ 0x081D0DE8 - push {lr} - ldrh r0, [r0, #2] - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - thumb_func_end MatchCallGetFlag_Type3 - - thumb_func_start MatchCallMapSecGetByIndex -MatchCallMapSecGetByIndex: @ 0x081D0DF8 - push {r4, lr} - cmp r0, #0x14 - bhi _081D0E28 - ldr r1, _081D0E20 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r4, [r0] - adds r0, r4, #0 - bl MatchCallGetFunctionIndex - ldr r1, _081D0E24 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - b _081D0E2A - .align 2, 0 -_081D0E20: .4byte gUnknown_85F79B4 -_081D0E24: .4byte gUnknown_85F7A1C -_081D0E28: - movs r0, #0 -_081D0E2A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end MatchCallMapSecGetByIndex - - thumb_func_start sub_081D0E30 -sub_081D0E30: @ 0x081D0E30 - ldrb r0, [r0, #1] - bx lr - thumb_func_end sub_081D0E30 - - thumb_func_start sub_081D0E34 -sub_081D0E34: @ 0x081D0E34 - ldrb r0, [r0, #1] - bx lr - thumb_func_end sub_081D0E34 - - thumb_func_start sub_081D0E38 -sub_081D0E38: @ 0x081D0E38 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - movs r6, #0 - ldr r7, _081D0E44 - b _081D0E4A - .align 2, 0 -_081D0E44: .4byte 0x0000FFFF -_081D0E48: - adds r6, #1 -_081D0E4A: - ldr r0, [r5, #0x10] - lsls r4, r6, #2 - adds r1, r4, r0 - ldrh r0, [r1] - cmp r0, r7 - beq _081D0E60 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081D0E48 -_081D0E60: - ldr r0, [r5, #0x10] - adds r0, r4, r0 - ldrb r0, [r0, #2] - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_081D0E38 - - thumb_func_start sub_081D0E6C -sub_081D0E6C: @ 0x081D0E6C - movs r0, #0xd5 - bx lr - thumb_func_end sub_081D0E6C - - thumb_func_start sub_081D0E70 -sub_081D0E70: @ 0x081D0E70 - movs r0, #0xd5 - bx lr - thumb_func_end sub_081D0E70 - - thumb_func_start MatchCall_IsRematchable -MatchCall_IsRematchable: @ 0x081D0E74 - push {r4, lr} - cmp r0, #0x14 - bhi _081D0EA0 - ldr r1, _081D0E98 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r4, [r0] - adds r0, r4, #0 - bl MatchCallGetFunctionIndex - ldr r1, _081D0E9C - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - b _081D0EA2 - .align 2, 0 -_081D0E98: .4byte gUnknown_85F79B4 -_081D0E9C: .4byte gUnknown_85F7A30 -_081D0EA0: - movs r0, #0 -_081D0EA2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end MatchCall_IsRematchable - - thumb_func_start sub_081D0EA8 -sub_081D0EA8: @ 0x081D0EA8 - movs r0, #0 - bx lr - thumb_func_end sub_081D0EA8 - - thumb_func_start MatchCall_IsRematchable_Type1 -MatchCall_IsRematchable_Type1: @ 0x081D0EAC - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #4] - cmp r0, #0x48 - bhi _081D0ED4 - ldr r0, _081D0ECC - ldr r0, [r0] - ldr r2, _081D0ED0 - adds r0, r0, r2 - ldrh r1, [r1, #4] - adds r0, r0, r1 - ldrb r1, [r0] - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - b _081D0ED6 - .align 2, 0 -_081D0ECC: .4byte gUnknown_3005AEC -_081D0ED0: .4byte 0x000009CA -_081D0ED4: - movs r0, #0 -_081D0ED6: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end MatchCall_IsRematchable_Type1 - - thumb_func_start MatchCall_IsRematchable_Type2 -MatchCall_IsRematchable_Type2: @ 0x081D0EDC - ldr r1, _081D0EF4 - ldr r1, [r1] - ldr r2, _081D0EF8 - adds r1, r1, r2 - ldrh r0, [r0, #4] - adds r1, r1, r0 - ldrb r1, [r1] - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - bx lr - .align 2, 0 -_081D0EF4: .4byte gUnknown_3005AEC -_081D0EF8: .4byte 0x000009CA - thumb_func_end MatchCall_IsRematchable_Type2 - - thumb_func_start sub_081D0EFC -sub_081D0EFC: @ 0x081D0EFC - movs r0, #0 - bx lr - thumb_func_end sub_081D0EFC - - thumb_func_start sub_081D0F00 -sub_081D0F00: @ 0x081D0F00 - movs r0, #0 - bx lr - thumb_func_end sub_081D0F00 - - thumb_func_start sub_081D0F04 -sub_081D0F04: @ 0x081D0F04 - push {r4, r5, lr} - adds r5, r0, #0 - cmp r5, #0x14 - bhi _081D0F4E - ldr r1, _081D0F34 - lsls r0, r5, #2 - adds r0, r0, r1 - ldr r4, [r0] - adds r0, r4, #0 - bl MatchCallGetFunctionIndex - adds r2, r0, #0 - ldr r1, _081D0F38 - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - cmp r0, #0 - beq _081D0F3C -_081D0F2E: - movs r0, #1 - b _081D0F50 - .align 2, 0 -_081D0F34: .4byte gUnknown_85F79B4 -_081D0F38: .4byte gUnknown_85F7A44 -_081D0F3C: - movs r2, #0 - ldr r1, _081D0F58 -_081D0F40: - ldrh r0, [r1] - cmp r0, r5 - beq _081D0F2E - adds r1, #0x18 - adds r2, #1 - cmp r2, #3 - bls _081D0F40 -_081D0F4E: - movs r0, #0 -_081D0F50: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081D0F58: .4byte gUnknown_85F7A94 - thumb_func_end sub_081D0F04 - - thumb_func_start sub_081D0F5C -sub_081D0F5C: @ 0x081D0F5C - movs r0, #0 - bx lr - thumb_func_end sub_081D0F5C - - thumb_func_start sub_081D0F60 -sub_081D0F60: @ 0x081D0F60 - movs r0, #1 - bx lr - thumb_func_end sub_081D0F60 - - thumb_func_start sub_081D0F64 -sub_081D0F64: @ 0x081D0F64 - movs r0, #1 - bx lr - thumb_func_end sub_081D0F64 - - thumb_func_start sub_081D0F68 -sub_081D0F68: @ 0x081D0F68 - movs r0, #0 - bx lr - thumb_func_end sub_081D0F68 - - thumb_func_start sub_081D0F6C -sub_081D0F6C: @ 0x081D0F6C - movs r0, #0 - bx lr - thumb_func_end sub_081D0F6C - - thumb_func_start MatchCall_GetRematchTableIdx -MatchCall_GetRematchTableIdx: @ 0x081D0F70 - push {r4, lr} - cmp r0, #0x14 - bhi _081D0F9C - ldr r1, _081D0F94 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r4, [r0] - adds r0, r4, #0 - bl MatchCallGetFunctionIndex - ldr r1, _081D0F98 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - b _081D0F9E - .align 2, 0 -_081D0F94: .4byte gUnknown_85F79B4 -_081D0F98: .4byte gUnknown_85F7A58 -_081D0F9C: - movs r0, #0x4e -_081D0F9E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end MatchCall_GetRematchTableIdx - - thumb_func_start sub_081D0FA4 -sub_081D0FA4: @ 0x081D0FA4 - movs r0, #0x4e - bx lr - thumb_func_end sub_081D0FA4 - - thumb_func_start sub_081D0FA8 -sub_081D0FA8: @ 0x081D0FA8 - ldrh r0, [r0, #4] - bx lr - thumb_func_end sub_081D0FA8 - - thumb_func_start sub_081D0FAC -sub_081D0FAC: @ 0x081D0FAC - ldrh r0, [r0, #4] - bx lr - thumb_func_end sub_081D0FAC - - thumb_func_start sub_081D0FB0 -sub_081D0FB0: @ 0x081D0FB0 - movs r0, #0x4e - bx lr - thumb_func_end sub_081D0FB0 - - thumb_func_start sub_081D0FB4 -sub_081D0FB4: @ 0x081D0FB4 - movs r0, #0x4e - bx lr - thumb_func_end sub_081D0FB4 - - thumb_func_start MatchCall_GetMessage -MatchCall_GetMessage: @ 0x081D0FB8 - push {r4, r5, lr} - adds r5, r1, #0 - cmp r0, #0x14 - bhi _081D0FDE - ldr r1, _081D0FE4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r4, [r0] - adds r0, r4, #0 - bl MatchCallGetFunctionIndex - ldr r1, _081D0FE8 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r2, [r0] - adds r0, r4, #0 - adds r1, r5, #0 - bl _call_via_r2 -_081D0FDE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081D0FE4: .4byte gUnknown_85F79B4 -_081D0FE8: .4byte gUnknown_85F7A6C - thumb_func_end MatchCall_GetMessage - - thumb_func_start MatchCall_GetMessage_Type0 -MatchCall_GetMessage_Type0: @ 0x081D0FEC - push {lr} - ldr r0, [r0, #0xc] - bl sub_081D103C - pop {r0} - bx r0 - thumb_func_end MatchCall_GetMessage_Type0 - - thumb_func_start MatchCall_GetMessage_Type1 -MatchCall_GetMessage_Type1: @ 0x081D0FF8 - push {lr} - adds r3, r0, #0 - adds r2, r1, #0 - ldrb r0, [r3] - cmp r0, #5 - beq _081D100C - ldr r0, [r3, #0x10] - bl sub_081D103C - b _081D1014 -_081D100C: - ldr r0, [r3, #0x10] - ldrh r1, [r3, #4] - bl sub_081D109C -_081D1014: - pop {r0} - bx r0 - thumb_func_end MatchCall_GetMessage_Type1 - - thumb_func_start sub_081D1018 -sub_081D1018: @ 0x081D1018 - push {lr} - ldr r0, [r0, #0xc] - bl sub_081D103C - pop {r0} - bx r0 - thumb_func_end sub_081D1018 - - thumb_func_start MatchCall_GetMessage_Type4 -MatchCall_GetMessage_Type4: @ 0x081D1024 - push {lr} - ldr r0, [r0, #0xc] - bl sub_081D103C - pop {r0} - bx r0 - thumb_func_end MatchCall_GetMessage_Type4 - - thumb_func_start MatchCall_GetMessage_Type3 -MatchCall_GetMessage_Type3: @ 0x081D1030 - push {lr} - adds r0, r1, #0 - bl sub_08196C74 - pop {r0} - bx r0 - thumb_func_end MatchCall_GetMessage_Type3 - - thumb_func_start sub_081D103C -sub_081D103C: @ 0x081D103C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - mov r8, r1 - movs r5, #0 - ldr r7, _081D1050 - adds r4, r6, #0 - b _081D1058 - .align 2, 0 -_081D1050: .4byte 0x0000FFFF -_081D1054: - adds r4, #8 - adds r5, #1 -_081D1058: - ldr r0, [r4] - cmp r0, #0 - beq _081D106E - ldrh r0, [r4, #4] - cmp r0, r7 - beq _081D1054 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081D1054 -_081D106E: - cmp r5, #0 - beq _081D1074 - subs r5, #1 -_081D1074: - lsls r0, r5, #3 - adds r4, r0, r6 - ldrh r1, [r4, #6] - ldr r0, _081D1098 - cmp r1, r0 - beq _081D1086 - adds r0, r1, #0 - bl FlagSet -_081D1086: - ldr r1, [r4] - mov r0, r8 - bl StringExpandPlaceholders - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D1098: .4byte 0x0000FFFF - thumb_func_end sub_081D103C - - thumb_func_start sub_081D109C -sub_081D109C: @ 0x081D109C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r6, r0, #0 - mov sl, r2 - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - movs r5, #0 - ldr r0, [r6] - cmp r0, #0 - beq _081D10E6 - ldrh r0, [r6, #4] - ldr r1, _081D1114 - cmp r0, r1 - beq _081D1124 - ldr r0, _081D1118 - mov sb, r0 - mov r8, r1 - adds r4, r6, #0 -_081D10C6: - ldrh r0, [r4, #4] - cmp r0, sb - beq _081D10D6 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D10E6 -_081D10D6: - adds r4, #8 - adds r5, #1 - ldr r0, [r4] - cmp r0, #0 - beq _081D10E6 - ldrh r0, [r4, #4] - cmp r0, r8 - bne _081D10C6 -_081D10E6: - lsls r0, r5, #3 - adds r0, r0, r6 - ldrh r1, [r0, #4] - ldr r0, _081D1114 - cmp r1, r0 - beq _081D1124 - cmp r5, #0 - beq _081D10F8 - subs r5, #1 -_081D10F8: - lsls r0, r5, #3 - adds r4, r0, r6 - ldrh r1, [r4, #6] - ldr r0, _081D1118 - cmp r1, r0 - beq _081D110A - adds r0, r1, #0 - bl FlagSet -_081D110A: - ldr r1, [r4] - mov r0, sl - bl StringExpandPlaceholders - b _081D115C - .align 2, 0 -_081D1114: .4byte 0x0000FFFE -_081D1118: .4byte 0x0000FFFF -_081D111C: - adds r5, #2 - b _081D1150 -_081D1120: - adds r5, #3 - b _081D1150 -_081D1124: - ldr r0, _081D116C - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D1150 - ldr r0, _081D1170 - ldr r0, [r0] - ldr r1, _081D1174 - adds r0, r0, r1 - adds r0, r0, r7 - ldrb r0, [r0] - cmp r0, #0 - bne _081D111C - adds r0, r7, #0 - bl CountBattledRematchTeams - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bhi _081D1120 - adds r5, #1 -_081D1150: - lsls r0, r5, #3 - adds r0, r0, r6 - ldr r1, [r0] - mov r0, sl - bl StringExpandPlaceholders -_081D115C: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D116C: .4byte 0x00000864 -_081D1170: .4byte gUnknown_3005AEC -_081D1174: .4byte 0x000009CA - thumb_func_end sub_081D109C - - thumb_func_start sub_081D1178 -sub_081D1178: @ 0x081D1178 - push {r4, r5, r6, lr} - adds r5, r1, #0 - adds r6, r2, #0 - cmp r0, #0x14 - bhi _081D11A2 - ldr r1, _081D11A8 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r4, [r0] - adds r0, r4, #0 - bl MatchCallGetFunctionIndex - ldr r1, _081D11AC - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r3, [r0] - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl _call_via_r3 -_081D11A2: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081D11A8: .4byte gUnknown_85F79B4 -_081D11AC: .4byte gUnknown_85F7A80 - thumb_func_end sub_081D1178 - - thumb_func_start sub_081D11B0 -sub_081D11B0: @ 0x081D11B0 - ldr r3, [r0, #4] - str r3, [r1] - ldr r0, [r0, #8] - str r0, [r2] - bx lr - .align 2, 0 - thumb_func_end sub_081D11B0 - - thumb_func_start MatchCall_GetNameAndDesc_Type1 -MatchCall_GetNameAndDesc_Type1: @ 0x081D11BC - push {r4, r5, lr} - adds r5, r1, #0 - adds r4, r0, #0 - ldr r0, [r4, #0xc] - cmp r0, #0 - bne _081D11D0 - ldrh r0, [r4, #4] - bl MatchCall_GetNameAndDescByRematchIdx - b _081D11D2 -_081D11D0: - str r0, [r2] -_081D11D2: - ldr r0, [r4, #8] - str r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end MatchCall_GetNameAndDesc_Type1 - - thumb_func_start MatchCall_GetNameAndDesc_Type2 -MatchCall_GetNameAndDesc_Type2: @ 0x081D11DC - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrh r0, [r4, #4] - bl MatchCall_GetNameAndDescByRematchIdx - ldr r0, [r4, #8] - str r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end MatchCall_GetNameAndDesc_Type2 - - thumb_func_start sub_081D11F4 -sub_081D11F4: @ 0x081D11F4 - ldr r3, [r0, #4] - str r3, [r1] - ldr r0, [r0, #8] - str r0, [r2] - bx lr - .align 2, 0 - thumb_func_end sub_081D11F4 - - thumb_func_start sub_081D1200 -sub_081D1200: @ 0x081D1200 - ldr r3, [r0, #4] - str r3, [r1] - ldr r0, [r0, #8] - str r0, [r2] - bx lr - .align 2, 0 - thumb_func_end sub_081D1200 - - thumb_func_start MatchCall_GetNameAndDescByRematchIdx -MatchCall_GetNameAndDescByRematchIdx: @ 0x081D120C - push {r4, r5, lr} - adds r4, r1, #0 - adds r5, r2, #0 - bl GetTrainerIdxByRematchIdx - lsls r0, r0, #5 - ldr r1, _081D1234 - adds r0, r0, r1 - ldrb r2, [r0, #1] - movs r1, #0xb - muls r1, r2, r1 - ldr r2, _081D1238 - adds r1, r1, r2 - str r1, [r4] - adds r0, #4 - str r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081D1234: .4byte gUnknown_82E383C -_081D1238: .4byte gUnknown_82E3564 - thumb_func_end MatchCall_GetNameAndDescByRematchIdx - - thumb_func_start sub_081D123C -sub_081D123C: @ 0x081D123C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - movs r5, #0 - ldr r2, _081D12B4 - movs r0, #8 - adds r0, r0, r2 - mov sb, r0 -_081D1250: - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r0, r6 - bne _081D12B8 - adds r4, r5, #1 - lsls r1, r1, #2 - mov r8, r1 - cmp r4, #3 - bhi _081D12A4 - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r0, r6 - bne _081D12A4 - ldr r7, _081D12B4 -_081D1278: - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r1, r7, #4 - adds r0, r0, r1 - ldrh r0, [r0] - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D12A4 - adds r5, r4, #0 - adds r4, r5, #1 - cmp r4, #3 - bhi _081D12A4 - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r7 - ldrh r0, [r0] - cmp r0, r6 - beq _081D1278 -_081D12A4: - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #3 - add r0, r8 - add r0, sb - ldr r0, [r0] - b _081D12C0 - .align 2, 0 -_081D12B4: .4byte gUnknown_85F7A94 -_081D12B8: - adds r5, #1 - cmp r5, #3 - bls _081D1250 - movs r0, #0 -_081D12C0: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_081D123C - - thumb_func_start sub_081D12CC -sub_081D12CC: @ 0x081D12CC - push {lr} - adds r3, r0, #0 - movs r2, #0 - ldr r1, _081D12E0 -_081D12D4: - ldrh r0, [r1] - cmp r0, r3 - bne _081D12E4 - ldrh r0, [r1, #2] - b _081D12F0 - .align 2, 0 -_081D12E0: .4byte gUnknown_85F7A94 -_081D12E4: - adds r1, #0x18 - adds r2, #1 - cmp r2, #3 - bls _081D12D4 - movs r0, #1 - rsbs r0, r0, #0 -_081D12F0: - pop {r1} - bx r1 - thumb_func_end sub_081D12CC - - thumb_func_start sub_081D12F4 -sub_081D12F4: @ 0x081D12F4 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 -_081D12FA: - adds r0, r4, #0 - bl MatchCall_GetRematchTableIdx - cmp r0, #0x4e - beq _081D130C - cmp r0, r5 - bne _081D130C - movs r0, #1 - b _081D1314 -_081D130C: - adds r4, #1 - cmp r4, #0x14 - ble _081D12FA - movs r0, #0 -_081D1314: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081D12F4 - - thumb_func_start SetMatchCallRegisteredFlag -SetMatchCallRegisteredFlag: @ 0x081D131C - push {lr} - ldr r0, _081D133C - ldrh r0, [r0] - bl GetRematchIdxByTrainerIdx - cmp r0, #0 - blt _081D1338 - movs r1, #0xae - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl FlagSet -_081D1338: - pop {r0} - bx r0 - .align 2, 0 -_081D133C: .4byte gUnknown_2037280 - thumb_func_end SetMatchCallRegisteredFlag - - thumb_func_start sub_081D1340 -sub_081D1340: @ 0x081D1340 - push {r4, lr} - lsls r0, r0, #0x18 - ldr r4, _081D1358 - lsrs r0, r0, #0x15 - adds r0, #8 - bl sub_08000BC8 - str r0, [r4] - cmp r0, #0 - bne _081D135C - movs r0, #0 - b _081D1376 - .align 2, 0 -_081D1358: .4byte gUnknown_203CC18 -_081D135C: - movs r2, #0 - ldr r4, _081D137C - movs r3, #0xff -_081D1362: - adds r0, r2, r4 - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #2 - bls _081D1362 - movs r0, #1 -_081D1376: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081D137C: .4byte gUnknown_203CC14 - thumb_func_end sub_081D1340 - - thumb_func_start UpdateWorldOfMastersAndPutItOnTheAir -UpdateWorldOfMastersAndPutItOnTheAir: @ 0x081D1380 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r0, _081D13AC - adds r4, r1, r0 - ldrb r0, [r4] - cmp r0, #0xff - bne _081D13A4 - lsls r0, r1, #3 - ldr r1, _081D13B0 - adds r0, r0, r1 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, #0 - bl SetStandardWindowBorderStyle -_081D13A4: - ldrb r0, [r4] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081D13AC: .4byte gUnknown_203CC14 -_081D13B0: .4byte gUnknown_85F7AF4 - thumb_func_end UpdateWorldOfMastersAndPutItOnTheAir - - thumb_func_start sub_081D13B4 -sub_081D13B4: @ 0x081D13B4 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081D13E0 - adds r4, r4, r0 - ldrb r0, [r4] - movs r1, #0 - bl sub_08198134 - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - bl RemoveWindow - movs r0, #0xff - strb r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D13E0: .4byte gUnknown_203CC14 - thumb_func_end sub_081D13B4 - - thumb_func_start sub_081D13E4 -sub_081D13E4: @ 0x081D13E4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081D13F0 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_081D13F0: .4byte gUnknown_203CC14 - thumb_func_end sub_081D13E4 - - thumb_func_start sub_081D13F4 -sub_081D13F4: @ 0x081D13F4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r7, r0, #0 - movs r3, #0 - ldr r0, _081D14A8 - mov r8, r0 - ldr r1, _081D14AC - mov sb, r1 - ldr r6, _081D14B0 - ldr r0, _081D14B4 - mov sl, r0 - ldrb r1, [r7, #5] - cmp r3, r1 - bhs _081D1440 - mov ip, r8 - ldr r5, _081D14B8 - ldr r4, _081D14BC -_081D141C: - mov r0, ip - ldr r2, [r0] - lsls r0, r3, #3 - adds r2, r0, r2 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r5] - adds r1, r1, r0 - adds r1, #0x12 - str r1, [r2] - str r3, [r2, #4] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldrb r1, [r7, #5] - cmp r3, r1 - blo _081D141C -_081D1440: - mov r0, r8 - ldr r2, [r0] - lsls r0, r3, #3 - adds r0, r0, r2 - mov r1, sb - str r1, [r0] - movs r1, #2 - rsbs r1, r1, #0 - str r1, [r0, #4] - str r2, [r6] - ldrb r0, [r7, #5] - adds r0, #1 - movs r4, #0 - movs r5, #0 - strh r0, [r6, #0xc] - mov r1, sl - ldrb r0, [r1, #1] - strb r0, [r6, #0x10] - strb r4, [r6, #0x11] - movs r0, #1 - movs r1, #0 - bl GetFontAttribute - strb r0, [r6, #0x12] - strb r4, [r6, #0x13] - movs r0, #8 - strh r0, [r6, #0xe] - movs r0, #0x2a - strb r0, [r6, #0x14] - movs r0, #0x31 - strb r0, [r6, #0x15] - ldr r0, _081D14C0 - str r0, [r6, #4] - str r5, [r6, #8] - movs r0, #1 - strb r0, [r6, #0x17] - movs r0, #0 - strb r0, [r6, #0x16] - ldrh r1, [r7, #2] - ldrh r2, [r7] - adds r0, r6, #0 - bl ListMenuInit - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081D14A8: .4byte gUnknown_203CC18 -_081D14AC: .4byte gUnknown_85C93C8 -_081D14B0: .4byte gUnknown_3006050 -_081D14B4: .4byte gUnknown_203CC14 -_081D14B8: .4byte gUnknown_3005AEC -_081D14BC: .4byte 0x00002CB8 -_081D14C0: .4byte sub_081D14C4 - thumb_func_end sub_081D13F4 - - thumb_func_start sub_081D14C4 -sub_081D14C4: @ 0x081D14C4 - push {lr} - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #1 - beq _081D14D4 - movs r0, #5 - bl sub_080A306C -_081D14D4: - pop {r0} - bx r0 - thumb_func_end sub_081D14C4 - - thumb_func_start sub_081D14D8 -sub_081D14D8: @ 0x081D14D8 - push {r4, lr} - sub sp, #0x10 - adds r4, r0, #0 - ldrb r0, [r4, #5] - ldrb r1, [r4, #4] - subs r0, r0, r1 - adds r0, #1 - str r0, [sp] - movs r0, #0x6e - str r0, [sp, #4] - str r0, [sp, #8] - adds r0, r4, #2 - str r0, [sp, #0xc] - movs r0, #2 - movs r1, #0xc8 - movs r2, #0xc - movs r3, #0x94 - bl AddScrollIndicatorArrowPairParameterized - strb r0, [r4, #9] - add sp, #0x10 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081D14D8 - - thumb_func_start sub_081D1508 -sub_081D1508: @ 0x081D1508 - push {lr} - ldr r0, _081D1518 - ldr r0, [r0] - bl Free - pop {r0} - bx r0 - .align 2, 0 -_081D1518: .4byte gUnknown_203CC18 - thumb_func_end sub_081D1508 - - thumb_func_start sub_081D151C -sub_081D151C: @ 0x081D151C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r3, r0, #0 - movs r6, #0 - movs r7, #0 -_081D152E: - movs r2, #0 - lsls r5, r6, #2 - adds r0, r6, #1 - mov sl, r0 - adds r4, r5, #0 -_081D1538: - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r4, r0 - adds r0, r3, r0 - adds r1, r0, #0 - adds r1, #0x64 - strh r7, [r1] - adds r0, #0x66 - strh r7, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #9 - bls _081D1538 - movs r2, #0 - mov sb, r2 - str r5, [sp] - movs r1, #0x9b - mov r8, r1 - movs r4, #0x5b - mov ip, r4 -_081D1564: - lsls r0, r2, #2 - adds r0, r0, r2 - adds r1, r6, r0 - adds r1, r3, r1 - mov r4, sb - strb r4, [r1] - lsls r0, r0, #2 - ldr r1, [sp] - adds r0, r1, r0 - adds r0, r3, r0 - mov r4, r8 - strh r4, [r0, #0x14] - mov r1, ip - strh r1, [r0, #0x16] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #3 - bls _081D1564 - adds r1, r3, r5 - movs r2, #0x96 - lsls r2, r2, #1 - adds r0, r1, r2 - strh r7, [r0] - movs r4, #0x97 - lsls r4, r4, #1 - adds r0, r1, r4 - strh r7, [r0] - mov r1, sl - lsls r0, r1, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #4 - bls _081D152E - movs r2, #0xd5 - lsls r2, r2, #2 - adds r0, r3, r2 - movs r1, #0 - strb r1, [r0] - ldr r4, _081D15C8 - adds r0, r3, r4 - strh r1, [r0] - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D15C8: .4byte 0x00000352 - thumb_func_end sub_081D151C - - thumb_func_start sub_081D15CC -sub_081D15CC: @ 0x081D15CC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - mov r8, r0 - str r1, [sp] - mov sb, r2 - movs r7, #0 -_081D15E0: - lsls r4, r7, #2 - ldr r1, [sp] - adds r0, r4, r1 - ldrh r1, [r0] - lsls r5, r1, #8 - mov r2, sb - adds r0, r4, r2 - ldrh r0, [r0] - subs r0, r0, r1 - lsls r0, r0, #8 - movs r1, #0xa - bl __divsi3 - adds r6, r0, #0 - movs r3, #0 - adds r7, #1 - mov sl, r7 - mov ip, r4 -_081D1604: - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #2 - add r0, ip - add r0, r8 - asrs r2, r5, #8 - asrs r1, r5, #7 - movs r7, #1 - ands r1, r7 - adds r2, r2, r1 - adds r0, #0x64 - strh r2, [r0] - adds r5, r5, r6 - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #8 - bls _081D1604 - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r4, r0 - add r0, r8 - mov r1, sb - adds r2, r4, r1 - ldrh r1, [r2] - adds r0, #0x64 - strh r1, [r0] - ldr r7, [sp] - adds r0, r4, r7 - ldrh r1, [r0, #2] - lsls r5, r1, #8 - ldrh r0, [r2, #2] - subs r0, r0, r1 - lsls r0, r0, #8 - movs r1, #0xa - bl __divsi3 - adds r6, r0, #0 - movs r3, #0 - str r4, [sp, #4] - movs r0, #1 - mov ip, r0 -_081D165A: - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #2 - ldr r1, [sp, #4] - adds r0, r1, r0 - add r0, r8 - asrs r2, r5, #8 - asrs r1, r5, #7 - mov r7, ip - ands r1, r7 - adds r2, r2, r1 - adds r0, #0x66 - strh r2, [r0] - adds r5, r5, r6 - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #8 - bls _081D165A - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r4, r0 - add r0, r8 - mov r2, sb - adds r1, r4, r2 - ldrh r1, [r1, #2] - adds r0, #0x66 - strh r1, [r0] - mov r7, sl - lsls r0, r7, #0x10 - lsrs r7, r0, #0x10 - cmp r7, #4 - bls _081D15E0 - ldr r1, _081D16B8 - add r1, r8 - movs r0, #0 - strh r0, [r1] - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D16B8: .4byte 0x00000352 - thumb_func_end sub_081D15CC - - thumb_func_start sub_081D16BC -sub_081D16BC: @ 0x081D16BC - push {r4, lr} - adds r1, r0, #0 - ldr r0, _081D16D0 - adds r4, r1, r0 - ldrh r0, [r4] - cmp r0, #9 - bls _081D16D4 - movs r0, #0 - b _081D16EE - .align 2, 0 -_081D16D0: .4byte 0x00000352 -_081D16D4: - adds r0, r1, #0 - bl sub_081D1878 - ldrh r1, [r4] - adds r1, #1 - strh r1, [r4] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0xa - eors r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f -_081D16EE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081D16BC - - thumb_func_start sub_081D16F4 -sub_081D16F4: @ 0x081D16F4 - ldr r1, _081D1700 - adds r0, r0, r1 - movs r1, #0 - strb r1, [r0] - bx lr - .align 2, 0 -_081D1700: .4byte 0x00000355 - thumb_func_end sub_081D16F4 - - thumb_func_start sub_081D1704 -sub_081D1704: @ 0x081D1704 - push {r4, r5, lr} - sub sp, #0xc - ldr r1, _081D1718 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, #0 - beq _081D171C - cmp r0, #1 - beq _081D172A - b _081D1742 - .align 2, 0 -_081D1718: .4byte 0x00000355 -_081D171C: - bl ScanlineEffect_Clear - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - movs r0, #1 - b _081D1744 -_081D172A: - mov r0, sp - ldr r1, _081D174C - ldm r1!, {r2, r3, r5} - stm r0!, {r2, r3, r5} - ldr r0, [sp] - ldr r1, [sp, #4] - ldr r2, [sp, #8] - bl ScanlineEffect_SetParams - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] -_081D1742: - movs r0, #0 -_081D1744: - add sp, #0xc - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081D174C: .4byte gUnknown_85F7B0C - thumb_func_end sub_081D1704 - - thumb_func_start sub_081D1750 -sub_081D1750: @ 0x081D1750 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - adds r6, r0, #0 - movs r1, #0xd5 - lsls r1, r1, #2 - adds r0, r6, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _081D1806 - adds r0, r6, #0 - bl sub_081D1AEC - adds r0, r6, #0 - bl MatchCallGetMapSec_Type2 - movs r7, #0 - ldr r5, _081D1818 - mov ip, r5 - movs r0, #0xf0 - lsls r0, r0, #3 - add r0, ip - mov sb, r0 - movs r1, #0xa0 - lsls r1, r1, #1 - adds r1, r6, r1 - str r1, [sp] - ldr r5, _081D181C - mov r8, r5 - movs r0, #0xa1 - lsls r0, r0, #1 - adds r0, r6, r0 - str r0, [sp, #4] - movs r1, #0x92 - lsls r1, r1, #2 - adds r1, r6, r1 - str r1, [sp, #8] - ldr r5, _081D1820 - adds r5, r5, r6 - mov sl, r5 -_081D17A6: - adds r2, r7, #0 - adds r2, #0x37 - lsls r3, r2, #2 - mov r0, sb - adds r0, r3, r0 - str r0, [sp, #0xc] - add r3, ip - lsls r4, r7, #2 - ldr r1, [sp] - adds r0, r1, r4 - ldrh r0, [r0] - lsls r0, r0, #8 - ldr r5, [sp, #4] - adds r1, r5, r4 - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r3] - mov r1, r8 - ands r0, r1 - ldr r5, [sp, #0xc] - strh r0, [r5] - lsls r2, r2, #1 - adds r2, #1 - lsls r2, r2, #1 - mov r0, sb - adds r3, r2, r0 - add r2, ip - ldr r1, [sp, #8] - adds r0, r1, r4 - ldrh r0, [r0] - lsls r0, r0, #8 - add r4, sl - ldrh r1, [r4] - orrs r0, r1 - strh r0, [r2] - mov r5, r8 - ands r0, r5 - strh r0, [r3] - adds r0, r7, #1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - cmp r7, #0x41 - bls _081D17A6 - movs r0, #0xd5 - lsls r0, r0, #2 - adds r1, r6, r0 - movs r0, #0 - strb r0, [r1] -_081D1806: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D1818: .4byte gUnknown_20388C8 -_081D181C: .4byte 0x0000FFFF -_081D1820: .4byte 0x0000024A - thumb_func_end sub_081D1750 - - thumb_func_start sub_081D1824 -sub_081D1824: @ 0x081D1824 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #3 - bls _081D1830 - movs r1, #0 -_081D1830: - movs r0, #1 - lsls r0, r1 - movs r5, #0x1f - bics r5, r0 - movs r0, #0x40 - movs r1, #0xf0 - bl SetGpuReg - movs r0, #0x42 - movs r1, #0x9b - bl SetGpuReg - ldr r4, _081D1870 - movs r0, #0x44 - adds r1, r4, #0 - bl SetGpuReg - movs r0, #0x46 - adds r1, r4, #0 - bl SetGpuReg - ldr r1, _081D1874 - movs r0, #0x48 - bl SetGpuReg - movs r0, #0x4a - adds r1, r5, #0 - bl SetGpuReg - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081D1870: .4byte 0x00003879 -_081D1874: .4byte 0x00003F3F - thumb_func_end sub_081D1824 - - thumb_func_start sub_081D1878 -sub_081D1878: @ 0x081D1878 - push {r4, r5, r6, r7, lr} - mov ip, r0 - movs r4, #0 - movs r7, #0x96 - lsls r7, r7, #1 - add r7, ip - ldr r6, _081D18BC - add r6, ip - mov r5, ip - adds r5, #0x64 -_081D188C: - lsls r2, r4, #2 - adds r3, r7, r2 - ldrh r1, [r6] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, r2, r0 - adds r2, r5, r2 - ldr r0, [r2] - str r0, [r3] - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #4 - bls _081D188C - movs r1, #0xd5 - lsls r1, r1, #2 - add r1, ip - movs r0, #1 - strb r0, [r1] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D18BC: .4byte 0x00000352 - thumb_func_end sub_081D1878 - - thumb_func_start sub_081D18C0 -sub_081D18C0: @ 0x081D18C0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - str r0, [sp] - adds r6, r1, #0 - adds r5, r2, #0 - str r3, [sp, #4] - ldr r0, [sp, #0x38] - ldr r7, [sp, #0x3c] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - movs r0, #0 - str r0, [sp, #0xc] - ldrh r0, [r5, #2] - ldrh r1, [r3, #2] - cmp r0, r1 - bhs _081D18FA - adds r2, r0, #0 - mov sl, r2 - ldrh r0, [r3, #2] - ldrh r1, [r5] - lsls r4, r1, #0xa - ldrh r3, [r3] - str r3, [sp, #8] - b _081D190E -_081D18FA: - ldrh r0, [r5, #2] - ldr r1, [sp, #4] - ldrh r1, [r1, #2] - mov sl, r1 - ldr r2, [sp, #4] - ldrh r1, [r2] - lsls r4, r1, #0xa - ldrh r3, [r5] - str r3, [sp, #8] - mov r2, sl -_081D190E: - subs r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - cmp r0, #0 - beq _081D1926 - subs r0, r3, r1 - lsls r0, r0, #0xa - mov r1, r8 - bl __divsi3 - str r0, [sp, #0xc] -_081D1926: - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - cmp r7, #0 - bne _081D1970 - mov r0, sl - subs r0, #0x38 - lsls r0, r0, #2 - adds r6, r6, r0 - movs r5, #0 - mov r3, sb - lsls r3, r3, #1 - mov ip, r3 - ldr r0, [sp, #8] - add r0, sb - str r0, [sp, #0x10] - cmp r7, r8 - bhs _081D19FE - movs r7, #1 -_081D1950: - adds r2, r3, r6 - asrs r1, r4, #0xa - asrs r0, r4, #9 - ands r0, r7 - adds r1, r1, r0 - add r1, sb - strh r1, [r2] - ldr r1, [sp, #0xc] - adds r4, r4, r1 - adds r6, #4 - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, r8 - blo _081D1950 - b _081D19FE -_081D1970: - ldr r2, [sp, #0xc] - cmp r2, #0 - ble _081D1A08 - mov r0, sl - subs r0, #0x38 - lsls r0, r0, #2 - adds r7, r7, r0 - movs r5, #0 - mov r3, sb - lsls r3, r3, #1 - mov ip, r3 - ldr r0, [sp, #8] - add r0, sb - str r0, [sp, #0x10] - cmp r5, r8 - bhs _081D19C2 - ldr r0, _081D1A04 - cmp r4, r0 - bgt _081D19C2 - mov r1, ip - str r1, [sp, #0x14] -_081D199A: - ldr r3, [sp, #0x14] - adds r2, r3, r7 - asrs r1, r4, #0xa - asrs r0, r4, #9 - movs r3, #1 - ands r0, r3 - adds r1, r1, r0 - add r1, sb - strh r1, [r2] - ldr r0, [sp, #0xc] - adds r4, r4, r0 - adds r7, #4 - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, r8 - bhs _081D19C2 - ldr r1, _081D1A04 - cmp r4, r1 - ble _081D199A -_081D19C2: - mov r2, sl - adds r1, r2, r5 - ldr r3, [sp] - movs r2, #0xd4 - lsls r2, r2, #2 - adds r0, r3, r2 - strh r1, [r0] - ldrh r0, [r0] - subs r0, #0x38 - lsls r0, r0, #2 - adds r6, r6, r0 - cmp r5, r8 - bhs _081D19FE - mov r3, ip - movs r7, #1 -_081D19E0: - adds r2, r3, r6 - asrs r1, r4, #0xa - asrs r0, r4, #9 - ands r0, r7 - adds r1, r1, r0 - add r1, sb - strh r1, [r2] - ldr r0, [sp, #0xc] - adds r4, r4, r0 - adds r6, #4 - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, r8 - blo _081D19E0 -_081D19FE: - subs r0, r6, #4 - b _081D1AD4 - .align 2, 0 -_081D1A04: .4byte 0x00026BFF -_081D1A08: - ldr r1, [sp, #0xc] - cmp r1, #0 - bge _081D1AAC - mov r0, sl - subs r0, #0x38 - lsls r0, r0, #2 - adds r6, r6, r0 - movs r5, #0 - mov r2, sb - lsls r2, r2, #1 - mov ip, r2 - ldr r3, [sp, #8] - add r3, sb - str r3, [sp, #0x10] - cmp r5, r8 - bhs _081D1A66 - adds r3, r2, r6 - asrs r1, r4, #0xa - asrs r0, r4, #9 - movs r2, #1 - ands r0, r2 - adds r1, r1, r0 - add r1, sb - strh r1, [r3] - b _081D1A5C -_081D1A3A: - ldr r0, [sp, #0xc] - adds r4, r4, r0 - adds r6, #4 - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, r8 - bhs _081D1A66 - mov r1, ip - adds r3, r1, r6 - asrs r2, r4, #0xa - asrs r0, r4, #9 - movs r1, #1 - ands r0, r1 - adds r2, r2, r0 - add r2, sb - strh r2, [r3] -_081D1A5C: - ldr r0, _081D1AA8 - cmp r4, r0 - bgt _081D1A3A - movs r0, #0x9b - strh r0, [r3] -_081D1A66: - mov r2, sl - adds r1, r2, r5 - ldr r3, [sp] - movs r2, #0xd4 - lsls r2, r2, #2 - adds r0, r3, r2 - strh r1, [r0] - ldrh r0, [r0] - subs r0, #0x38 - lsls r0, r0, #2 - adds r7, r7, r0 - cmp r5, r8 - bhs _081D1AA2 - mov r3, ip - movs r6, #1 -_081D1A84: - adds r2, r3, r7 - asrs r1, r4, #0xa - asrs r0, r4, #9 - ands r0, r6 - adds r1, r1, r0 - add r1, sb - strh r1, [r2] - ldr r0, [sp, #0xc] - adds r4, r4, r0 - adds r7, #4 - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, r8 - blo _081D1A84 -_081D1AA2: - subs r0, r7, #4 - b _081D1AD4 - .align 2, 0 -_081D1AA8: .4byte 0x00026BFF -_081D1AAC: - ldr r1, [sp] - movs r2, #0xd4 - lsls r2, r2, #2 - adds r0, r1, r2 - mov r3, sl - strh r3, [r0] - mov r0, sl - subs r0, #0x38 - lsls r0, r0, #2 - adds r6, r6, r0 - adds r7, r7, r0 - ldrh r0, [r5] - adds r0, #1 - strh r0, [r6, #2] - ldr r1, [sp, #4] - ldrh r0, [r1] - strh r0, [r7] - movs r0, #0x9b - strh r0, [r7, #2] - b _081D1ADC -_081D1AD4: - add r0, ip - mov r2, sp - ldrh r2, [r2, #0x10] - strh r2, [r0] -_081D1ADC: - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_081D18C0 - - thumb_func_start sub_081D1AEC -sub_081D1AEC: @ 0x081D1AEC - push {r4, r5, r6, r7, lr} - sub sp, #8 - adds r4, r0, #0 - movs r0, #0x97 - lsls r0, r0, #1 - adds r2, r4, r0 - movs r3, #0x99 - lsls r3, r3, #1 - adds r1, r4, r3 - ldrh r0, [r2] - ldrh r3, [r1] - cmp r0, r3 - bhs _081D1B28 - adds r7, r0, #0 - movs r0, #0xa0 - lsls r0, r0, #1 - adds r1, r4, r0 - movs r3, #0x96 - lsls r3, r3, #1 - adds r2, r4, r3 - subs r0, #0x10 - adds r3, r4, r0 - movs r0, #1 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - adds r0, r4, #0 - bl sub_081D18C0 - b _081D1B48 -_081D1B28: - ldrh r7, [r1] - movs r2, #0xa0 - lsls r2, r2, #1 - adds r1, r4, r2 - movs r3, #0x98 - lsls r3, r3, #1 - adds r2, r4, r3 - movs r0, #0x96 - lsls r0, r0, #1 - adds r3, r4, r0 - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - adds r0, r4, #0 - bl sub_081D18C0 -_081D1B48: - movs r1, #0xa0 - lsls r1, r1, #1 - adds r5, r4, r1 - movs r3, #0x98 - lsls r3, r3, #1 - adds r2, r4, r3 - movs r0, #0x9a - lsls r0, r0, #1 - adds r6, r4, r0 - movs r0, #1 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - adds r0, r4, #0 - adds r1, r5, #0 - adds r3, r6, #0 - bl sub_081D18C0 - movs r2, #0 - movs r1, #0x9b - lsls r1, r1, #1 - adds r0, r4, r1 - movs r3, #0x9d - lsls r3, r3, #1 - adds r1, r4, r3 - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - bhi _081D1B84 - movs r2, #1 -_081D1B84: - movs r0, #0x9c - lsls r0, r0, #1 - adds r3, r4, r0 - str r2, [sp] - movs r1, #0x92 - lsls r1, r1, #2 - adds r0, r4, r1 - str r0, [sp, #4] - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_081D18C0 - movs r2, #0x38 - cmp r2, r7 - bhs _081D1BC6 - adds r6, r5, #0 - movs r3, #0 - movs r0, #0xa1 - lsls r0, r0, #1 - adds r5, r4, r0 -_081D1BAE: - adds r0, r2, #0 - subs r0, #0x38 - lsls r0, r0, #2 - adds r1, r6, r0 - strh r3, [r1] - adds r0, r5, r0 - strh r3, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, r7 - blo _081D1BAE -_081D1BC6: - movs r1, #0x97 - lsls r1, r1, #1 - adds r0, r4, r1 - ldrh r2, [r0] - movs r3, #0xd4 - lsls r3, r3, #2 - adds r0, r4, r3 - ldrh r1, [r0] - cmp r2, r1 - bhi _081D1BFA - movs r1, #0xa0 - lsls r1, r1, #1 - adds r3, r4, r1 - movs r5, #0x9b - adds r1, r0, #0 -_081D1BE4: - adds r0, r2, #0 - subs r0, #0x38 - lsls r0, r0, #2 - adds r0, r3, r0 - strh r5, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldrh r0, [r1] - cmp r2, r0 - bls _081D1BE4 -_081D1BFA: - movs r2, #0x9b - lsls r2, r2, #1 - adds r1, r4, r2 - movs r3, #0xd4 - lsls r3, r3, #2 - adds r0, r4, r3 - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - bhs _081D1C10 - adds r0, r1, #0 -_081D1C10: - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0x79 - bhi _081D1C40 - movs r0, #0xa0 - lsls r0, r0, #1 - adds r5, r4, r0 - movs r3, #0 - movs r1, #0xa1 - lsls r1, r1, #1 - adds r4, r4, r1 -_081D1C28: - adds r0, r2, #0 - subs r0, #0x38 - lsls r0, r0, #2 - adds r1, r5, r0 - strh r3, [r1] - adds r0, r4, r0 - strh r3, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0x79 - bls _081D1C28 -_081D1C40: - add sp, #8 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_081D1AEC - - thumb_func_start MatchCallGetMapSec_Type2 -MatchCallGetMapSec_Type2: @ 0x081D1C48 - push {r4, r5, r6, r7, lr} - sub sp, #8 - adds r4, r0, #0 - movs r0, #0x97 - lsls r0, r0, #1 - adds r2, r4, r0 - movs r3, #0x9f - lsls r3, r3, #1 - adds r1, r4, r3 - ldrh r0, [r2] - ldrh r3, [r1] - cmp r0, r3 - bhs _081D1C84 - adds r7, r0, #0 - movs r0, #0x92 - lsls r0, r0, #2 - adds r1, r4, r0 - movs r3, #0x96 - lsls r3, r3, #1 - adds r2, r4, r3 - movs r0, #0x9e - lsls r0, r0, #1 - adds r3, r4, r0 - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - adds r0, r4, #0 - bl sub_081D18C0 - b _081D1CA6 -_081D1C84: - ldrh r7, [r1] - movs r2, #0x92 - lsls r2, r2, #2 - adds r1, r4, r2 - movs r3, #0x9e - lsls r3, r3, #1 - adds r2, r4, r3 - movs r0, #0x96 - lsls r0, r0, #1 - adds r3, r4, r0 - movs r0, #1 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - adds r0, r4, #0 - bl sub_081D18C0 -_081D1CA6: - movs r1, #0x92 - lsls r1, r1, #2 - adds r5, r4, r1 - movs r3, #0x9e - lsls r3, r3, #1 - adds r2, r4, r3 - movs r0, #0x9c - lsls r0, r0, #1 - adds r3, r4, r0 - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_081D18C0 - movs r2, #0x38 - cmp r2, r7 - bhs _081D1CEC - adds r6, r5, #0 - movs r3, #0 - ldr r1, _081D1D6C - adds r5, r4, r1 -_081D1CD4: - adds r0, r2, #0 - subs r0, #0x38 - lsls r0, r0, #2 - adds r1, r6, r0 - strh r3, [r1] - adds r0, r5, r0 - strh r3, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, r7 - blo _081D1CD4 -_081D1CEC: - movs r2, #0x97 - lsls r2, r2, #1 - adds r0, r4, r2 - ldrh r2, [r0] - movs r3, #0xd4 - lsls r3, r3, #2 - adds r0, r4, r3 - ldrh r1, [r0] - cmp r2, r1 - bhi _081D1D1E - ldr r1, _081D1D6C - adds r3, r4, r1 - movs r5, #0x9b - adds r1, r0, #0 -_081D1D08: - adds r0, r2, #0 - subs r0, #0x38 - lsls r0, r0, #2 - adds r0, r3, r0 - strh r5, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldrh r0, [r1] - cmp r2, r0 - bls _081D1D08 -_081D1D1E: - movs r1, #0x9d - lsls r1, r1, #1 - adds r0, r4, r1 - ldrh r0, [r0] - adds r1, r0, #1 - movs r2, #0xd4 - lsls r2, r2, #2 - adds r0, r4, r2 - ldrh r0, [r0] - cmp r0, r1 - bge _081D1D36 - adds r0, r1, #0 -_081D1D36: - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0x79 - bhi _081D1D62 - movs r3, #0x92 - lsls r3, r3, #2 - adds r5, r4, r3 - movs r3, #0 - ldr r0, _081D1D6C - adds r4, r4, r0 -_081D1D4A: - adds r0, r2, #0 - subs r0, #0x38 - lsls r0, r0, #2 - adds r1, r5, r0 - strh r3, [r1] - adds r0, r4, r0 - strh r3, [r0] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0x79 - bls _081D1D4A -_081D1D62: - add sp, #8 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D1D6C: .4byte 0x0000024A - thumb_func_end MatchCallGetMapSec_Type2 - - thumb_func_start sub_081D1D70 -sub_081D1D70: @ 0x081D1D70 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r6, r0, #0 - mov r8, r1 - ldr r1, _081D1E38 - ldrb r0, [r6] - adds r0, r0, r1 - ldrb r2, [r0] - adds r6, #1 - movs r0, #0x9b - mov r3, r8 - strh r0, [r3] - movs r0, #0x5b - subs r0, r0, r2 - strh r0, [r3, #2] - movs r7, #0x40 - movs r0, #0 - mov ip, r0 - movs r2, #1 - mov sb, r2 - ldr r3, _081D1E3C - mov sl, r3 -_081D1DA2: - adds r0, r7, #0 - adds r0, #0x33 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - mov r1, ip - lsls r0, r1, #0x18 - movs r2, #0xff - lsls r2, r2, #0x18 - adds r0, r0, r2 - lsrs r3, r0, #0x18 - mov ip, r3 - cmp r0, #0 - bge _081D1DC0 - movs r0, #4 - mov ip, r0 -_081D1DC0: - mov r1, ip - lsls r0, r1, #0x18 - asrs r4, r0, #0x18 - cmp r4, #2 - bne _081D1DD0 - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 -_081D1DD0: - ldrb r0, [r6] - ldr r2, _081D1E38 - adds r0, r0, r2 - ldrb r2, [r0] - adds r6, #1 - lsls r0, r4, #2 - mov r1, r8 - adds r3, r0, r1 - adds r0, r7, #0 - adds r0, #0x40 - lsls r0, r0, #1 - add r0, sl - movs r1, #0 - ldrsh r0, [r0, r1] - muls r0, r2, r0 - asrs r5, r0, #8 - adds r0, r5, #0 - adds r0, #0x9b - strh r0, [r3] - lsls r0, r7, #1 - add r0, sl - movs r1, #0 - ldrsh r0, [r0, r1] - adds r1, r2, #0 - muls r1, r0, r1 - asrs r1, r1, #8 - movs r0, #0x5b - subs r0, r0, r1 - strh r0, [r3, #2] - cmp r4, #2 - bgt _081D1E1C - cmp r2, #0x20 - bne _081D1E16 - cmp r4, #2 - beq _081D1E1C -_081D1E16: - adds r0, r5, #0 - adds r0, #0x9c - strh r0, [r3] -_081D1E1C: - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - cmp r0, #4 - bls _081D1DA2 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D1E38: .4byte gUnknown_85F7B18 -_081D1E3C: .4byte gUnknown_82FA8CC - thumb_func_end sub_081D1D70 - - thumb_func_start sub_081D1E40 -sub_081D1E40: @ 0x081D1E40 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _081D1E90 - bl InitWindows - bl sub_08004480 - movs r0, #0 - movs r1, #1 - movs r2, #0xe0 - bl LoadUserWindowBorderGfx - ldr r0, _081D1E94 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - movs r4, #0 -_081D1E66: - adds r0, r4, #0 - movs r1, #0x11 - bl FillWindowPixelBuffer - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #4 - bls _081D1E66 - cmp r5, #0 - bne _081D1E98 - movs r0, #0 - bl PutWindowTilemap - movs r0, #0 - movs r1, #0 - movs r2, #1 - movs r3, #0xe - bl DrawStdFrameWithCustomTileAndPalette - b _081D1EAA - .align 2, 0 -_081D1E90: .4byte gUnknown_85F7C18 -_081D1E94: .4byte gUnknown_85D7B04 -_081D1E98: - movs r0, #1 - bl PutWindowTilemap - movs r0, #1 - movs r1, #0 - movs r2, #1 - movs r3, #0xe - bl DrawStdFrameWithCustomTileAndPalette -_081D1EAA: - movs r0, #2 - bl PutWindowTilemap - movs r0, #3 - bl PutWindowTilemap - movs r0, #2 - movs r1, #0 - movs r2, #1 - movs r3, #0xe - bl DrawStdFrameWithCustomTileAndPalette - movs r0, #3 - movs r1, #0 - movs r2, #1 - movs r3, #0xe - bl DrawStdFrameWithCustomTileAndPalette - bl sub_081D1EE0 - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081D1E40 - - thumb_func_start sub_081D1EE0 -sub_081D1EE0: @ 0x081D1EE0 - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - sub sp, #0xc - ldr r2, _081D1FB8 - movs r0, #2 - mov sb, r0 - str r0, [sp] - movs r5, #0xff - str r5, [sp, #4] - movs r4, #0 - str r4, [sp, #8] - movs r0, #0 - movs r1, #1 - movs r3, #0x30 - bl AddTextPrinterParameterized - ldr r0, _081D1FBC - mov sl, r0 - movs r0, #0x1a - mov r8, r0 - str r0, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #0 - movs r1, #1 - mov r2, sl - movs r3, #0 - bl AddTextPrinterParameterized - ldr r2, _081D1FC0 - mov r0, r8 - str r0, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #0 - movs r1, #1 - movs r3, #0x50 - bl AddTextPrinterParameterized - ldr r2, _081D1FC4 - movs r6, #0x2a - str r6, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #0 - movs r1, #1 - movs r3, #8 - bl AddTextPrinterParameterized - ldr r2, _081D1FC8 - str r6, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #0 - movs r1, #1 - movs r3, #0x48 - bl AddTextPrinterParameterized - ldr r2, _081D1FCC - mov r0, sb - str r0, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r3, #0x2c - bl AddTextPrinterParameterized - mov r0, r8 - str r0, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #1 - movs r1, #1 - mov r2, sl - movs r3, #0 - bl AddTextPrinterParameterized - ldr r2, _081D1FD0 - str r6, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - ldr r2, _081D1FD4 - str r6, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r3, #0x50 - bl AddTextPrinterParameterized - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081D1FB8: .4byte gUnknown_85F7C50 -_081D1FBC: .4byte gUnknown_85F7C5F -_081D1FC0: .4byte gUnknown_85F7C68 -_081D1FC4: .4byte gUnknown_85F7C64 -_081D1FC8: .4byte gUnknown_85F7C6E -_081D1FCC: .4byte gUnknown_85F7C57 -_081D1FD0: .4byte gUnknown_85F7C75 -_081D1FD4: .4byte gUnknown_85F7C7A - thumb_func_end sub_081D1EE0 - - thumb_func_start LoadMoveRelearnerMovesList -LoadMoveRelearnerMovesList: @ 0x081D1FD8 - push {r4, r5, r6, r7, lr} - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - ldr r3, _081D1FF8 - adds r2, r3, #0 - ldr r1, _081D1FFC - ldm r1!, {r5, r6, r7} - stm r2!, {r5, r6, r7} - ldm r1!, {r5, r6, r7} - stm r2!, {r5, r6, r7} - strh r4, [r3, #0xc] - str r0, [r3] - cmp r4, #5 - bhi _081D2000 - strh r4, [r3, #0xe] - b _081D2004 - .align 2, 0 -_081D1FF8: .4byte gUnknown_3006050 -_081D1FFC: .4byte gUnknown_85F7C80 -_081D2000: - movs r0, #6 - strh r0, [r3, #0xe] -_081D2004: - ldrb r0, [r3, #0xe] - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end LoadMoveRelearnerMovesList - - thumb_func_start sub_081D200C -sub_081D200C: @ 0x081D200C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x14 - adds r7, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #1 - beq _081D2024 - movs r0, #5 - bl sub_080A306C -_081D2024: - movs r6, #0x20 - str r6, [sp] - movs r4, #0x10 - str r4, [sp, #4] - movs r0, #0 - movs r1, #0x11 - movs r2, #0x20 - movs r3, #0x1a - bl sub_08003A34 - movs r5, #0x18 - str r5, [sp] - str r4, [sp, #4] - movs r0, #0 - movs r1, #0x11 - movs r2, #0x78 - movs r3, #0x1a - bl sub_08003A34 - str r4, [sp] - str r4, [sp, #4] - movs r0, #0 - movs r1, #0x11 - movs r2, #0x20 - movs r3, #0x2a - bl sub_08003A34 - str r5, [sp] - str r4, [sp, #4] - movs r0, #0 - movs r1, #0x11 - movs r2, #0x78 - movs r3, #0x2a - bl sub_08003A34 - movs r5, #0x90 - str r5, [sp] - str r6, [sp, #4] - movs r0, #0 - movs r1, #0x11 - movs r2, #0 - movs r3, #0x42 - bl sub_08003A34 - movs r0, #0x28 - str r0, [sp] - str r4, [sp, #4] - movs r0, #1 - movs r1, #0x11 - movs r2, #0x20 - movs r3, #0x1a - bl sub_08003A34 - str r5, [sp] - str r6, [sp, #4] - movs r0, #1 - movs r1, #0x11 - movs r2, #0 - movs r3, #0x42 - bl sub_08003A34 - movs r0, #2 - rsbs r0, r0, #0 - cmp r7, r0 - bne _081D20B8 - movs r0, #0 - movs r1, #2 - bl CopyWindowToVram - movs r0, #1 - movs r1, #2 - bl CopyWindowToVram - b _081D21E4 -_081D20B8: - ldr r1, _081D20F4 - lsls r4, r7, #1 - adds r0, r4, r7 - lsls r0, r0, #2 - adds r5, r0, r1 - ldrb r0, [r5, #2] - lsls r2, r0, #2 - adds r2, r2, r0 - ldr r0, _081D20F8 - adds r2, r2, r0 - movs r0, #0x1a - str r0, [sp] - movs r0, #0xff - str r0, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - movs r1, #1 - movs r3, #0x20 - bl AddTextPrinterParameterized - ldrb r0, [r5, #1] - adds r6, r4, #0 - cmp r0, #1 - bhi _081D2100 - ldr r1, _081D20FC - add r0, sp, #0xc - bl StringCopy - b _081D210C - .align 2, 0 -_081D20F4: .4byte gUnknown_82ED220 -_081D20F8: .4byte gUnknown_82EBC88 -_081D20FC: .4byte gUnknown_85C9406 -_081D2100: - ldrb r1, [r5, #1] - add r0, sp, #0xc - movs r2, #0 - movs r3, #3 - bl sub_080089D8 -_081D210C: - movs r0, #0x1a - str r0, [sp] - movs r5, #0xff - str r5, [sp, #4] - movs r4, #0 - str r4, [sp, #8] - movs r0, #0 - movs r1, #1 - add r2, sp, #0xc - movs r3, #0x78 - bl AddTextPrinterParameterized - ldr r1, _081D215C - adds r0, r6, r7 - lsls r0, r0, #2 - adds r6, r0, r1 - ldrb r1, [r6, #4] - add r0, sp, #0xc - movs r2, #0 - movs r3, #2 - bl sub_080089D8 - movs r0, #0x2a - str r0, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #0 - movs r1, #1 - add r2, sp, #0xc - movs r3, #0x20 - bl AddTextPrinterParameterized - ldrb r0, [r6, #3] - cmp r0, #0 - bne _081D2164 - ldr r1, _081D2160 - add r0, sp, #0xc - bl StringCopy - b _081D2170 - .align 2, 0 -_081D215C: .4byte gUnknown_82ED220 -_081D2160: .4byte gUnknown_85C9406 -_081D2164: - ldrb r1, [r6, #3] - add r0, sp, #0xc - movs r2, #0 - movs r3, #3 - bl sub_080089D8 -_081D2170: - movs r0, #0x2a - str r0, [sp] - movs r0, #0xff - mov r8, r0 - str r0, [sp, #4] - movs r5, #0 - str r5, [sp, #8] - movs r0, #0 - movs r1, #1 - add r2, sp, #0xc - movs r3, #0x78 - bl AddTextPrinterParameterized - lsls r4, r7, #3 - subs r2, r4, r7 - lsls r2, r2, #3 - ldr r0, _081D21F8 - adds r2, r2, r0 - movs r6, #0x42 - str r6, [sp] - str r5, [sp, #4] - str r5, [sp, #8] - movs r0, #0 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized - ldr r1, _081D21FC - ldr r0, _081D2200 - adds r4, r4, r0 - ldrb r0, [r4, #1] - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1b - adds r0, r0, r1 - ldr r2, [r0] - movs r0, #0x1a - str r0, [sp] - mov r0, r8 - str r0, [sp, #4] - str r5, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r3, #0x20 - bl AddTextPrinterParameterized - ldr r1, _081D2204 - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r2, [r0] - str r6, [sp] - str r5, [sp, #4] - str r5, [sp, #8] - movs r0, #1 - movs r1, #1 - movs r3, #0 - bl AddTextPrinterParameterized -_081D21E4: - adds r0, r7, #0 - bl MoveRelearnerShowHideHearts - add sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D21F8: .4byte gUnknown_85E7FFC -_081D21FC: .4byte gUnknown_8560CAC -_081D2200: .4byte gUnknown_8565FCC -_081D2204: .4byte gUnknown_8560BB4 - thumb_func_end sub_081D200C - - thumb_func_start MoveRelearnerPrintText -MoveRelearnerPrintText: @ 0x081D2208 - push {r4, lr} - sub sp, #0x10 - adds r4, r0, #0 - movs r0, #3 - movs r1, #0x11 - bl FillWindowPixelBuffer - ldr r2, _081D224C - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - bl GetPlayerTextSpeedDelay - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - movs r0, #0 - str r0, [sp] - movs r0, #2 - str r0, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - movs r0, #3 - str r0, [sp, #0xc] - movs r1, #1 - adds r2, r4, #0 - bl AddTextPrinterParameterized2 - add sp, #0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D224C: .4byte gUnknown_30030B4 - thumb_func_end MoveRelearnerPrintText - - thumb_func_start MoveRelearnerRunTextPrinters -MoveRelearnerRunTextPrinters: @ 0x081D2250 - push {lr} - bl sub_08004630 - movs r0, #3 - bl sub_080046A8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r1} - bx r1 - thumb_func_end MoveRelearnerRunTextPrinters - - thumb_func_start MoveRelearnerCreateYesNoMenu -MoveRelearnerCreateYesNoMenu: @ 0x081D2264 - push {lr} - ldr r0, _081D2278 - movs r1, #1 - movs r2, #1 - movs r3, #0xe - bl sub_08198D44 - pop {r0} - bx r0 - .align 2, 0 -_081D2278: .4byte gUnknown_85F7C48 - thumb_func_end MoveRelearnerCreateYesNoMenu - - thumb_func_start GetBoxOrPartyMonData -GetBoxOrPartyMonData: @ 0x081D227C - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - cmp r0, #0xe - bne _081D22BC - cmp r2, #2 - beq _081D2292 - cmp r2, #7 - bne _081D22A8 -_081D2292: - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081D22A4 - adds r0, r0, r1 - adds r1, r2, #0 - adds r2, r3, #0 - bl GetMonData - b _081D22DE - .align 2, 0 -_081D22A4: .4byte gUnknown_2024190 -_081D22A8: - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081D22B8 - adds r0, r0, r1 - adds r1, r2, #0 - bl GetMonData - b _081D22DE - .align 2, 0 -_081D22B8: .4byte gUnknown_2024190 -_081D22BC: - cmp r2, #2 - beq _081D22C4 - cmp r2, #7 - bne _081D22D2 -_081D22C4: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl GetAndCopyBoxMonDataAt - b _081D22DE -_081D22D2: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl GetBoxMonDataAt -_081D22DE: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetBoxOrPartyMonData - - thumb_func_start sub_081D22E4 -sub_081D22E4: @ 0x081D22E4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r6, r2, #0x10 - movs r0, #0xfc - strb r0, [r5] - adds r5, #1 - movs r0, #4 - strb r0, [r5] - adds r5, #1 - movs r0, #8 - strb r0, [r5] - adds r5, #1 - movs r0, #0 - strb r0, [r5] - adds r5, #1 - movs r0, #9 - strb r0, [r5] - adds r5, #1 - adds r0, r4, #0 - adds r1, r6, #0 - movs r2, #0x2d - movs r3, #0 - bl GetBoxOrPartyMonData - cmp r0, #0 - beq _081D2334 - ldr r1, _081D2330 - adds r0, r5, #0 - movs r2, #0 - movs r3, #0xc - bl StringCopyPadded - b _081D24A2 - .align 2, 0 -_081D2330: .4byte gUnknown_85C8C62 -_081D2334: - adds r0, r4, #0 - adds r1, r6, #0 - movs r2, #2 - adds r3, r5, #0 - bl GetBoxOrPartyMonData - adds r0, r5, #0 - bl StringGetEnd10 - adds r0, r4, #0 - adds r1, r6, #0 - movs r2, #0xb - movs r3, #0 - bl GetBoxOrPartyMonData - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - cmp r4, #0xe - bne _081D2384 - movs r0, #0x64 - adds r4, r6, #0 - muls r4, r0, r4 - ldr r0, _081D2380 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0x38 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - adds r0, r4, #0 - bl GetMonGender - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - b _081D23A6 - .align 2, 0 -_081D2380: .4byte gUnknown_2024190 -_081D2384: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r6, #0x18 - lsrs r1, r1, #0x18 - bl GetBoxedMonPtr - adds r4, r0, #0 - bl GetBoxMonGender - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r0, r4, #0 - bl GetLevelFromBoxMonExp - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 -_081D23A6: - cmp r7, #0x1d - beq _081D23AE - cmp r7, #0x20 - bne _081D23C4 -_081D23AE: - lsls r1, r7, #1 - adds r1, r1, r7 - lsls r1, r1, #1 - ldr r0, _081D23CC - adds r1, r1, r0 - adds r0, r5, #0 - bl StringCompare - cmp r0, #0 - bne _081D23C4 - movs r6, #0xff -_081D23C4: - adds r3, r5, #0 - movs r2, #0 - b _081D23D8 - .align 2, 0 -_081D23CC: .4byte gUnknown_82EA31C -_081D23D0: - adds r3, #1 - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 -_081D23D8: - ldrb r0, [r3] - cmp r0, #0xff - bne _081D23D0 - adds r1, r2, #0 - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r1, #4 - bhi _081D23FC - movs r4, #0 -_081D23EC: - strb r4, [r3] - adds r3, #1 - adds r1, r2, #0 - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r1, #4 - bls _081D23EC -_081D23FC: - movs r0, #0 - strb r0, [r3] - adds r3, #1 - cmp r6, #0 - beq _081D240C - cmp r6, #0xfe - beq _081D2432 - b _081D2456 -_081D240C: - movs r1, #0xfc - strb r1, [r3] - adds r3, #1 - movs r0, #1 - strb r0, [r3] - adds r3, #1 - movs r0, #4 - strb r0, [r3] - adds r3, #1 - strb r1, [r3] - adds r3, #1 - movs r0, #3 - strb r0, [r3] - adds r3, #1 - movs r0, #5 - strb r0, [r3] - adds r3, #1 - movs r0, #0xb5 - b _081D2456 -_081D2432: - movs r1, #0xfc - strb r1, [r3] - adds r3, #1 - movs r0, #1 - strb r0, [r3] - adds r3, #1 - movs r0, #6 - strb r0, [r3] - adds r3, #1 - strb r1, [r3] - adds r3, #1 - movs r0, #3 - strb r0, [r3] - adds r3, #1 - movs r0, #7 - strb r0, [r3] - adds r3, #1 - movs r0, #0xb6 -_081D2456: - strb r0, [r3] - adds r3, #1 - movs r0, #0xfc - strb r0, [r3] - adds r3, #1 - movs r0, #4 - strb r0, [r3] - adds r3, #1 - movs r0, #8 - strb r0, [r3] - adds r3, #1 - movs r4, #0 - strb r4, [r3] - adds r3, #1 - movs r0, #9 - strb r0, [r3] - adds r3, #1 - movs r0, #0xba - strb r0, [r3] - adds r3, #1 - movs r0, #0xf9 - strb r0, [r3] - adds r3, #1 - movs r0, #5 - strb r0, [r3] - adds r3, #1 - adds r0, r3, #0 - mov r1, r8 - movs r2, #0 - movs r3, #3 - bl sub_080089D8 - adds r3, r0, #0 - strb r4, [r3] - adds r3, #1 - movs r0, #0xff - strb r0, [r3] - adds r0, r3, #0 -_081D24A2: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_081D22E4 - - thumb_func_start sub_081D24AC -sub_081D24AC: @ 0x081D24AC - push {r4, lr} - adds r4, r0, #0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - b _081D24C4 -_081D24B6: - strb r3, [r4] - adds r1, #1 - adds r4, #1 - lsls r0, r2, #0x10 - ldr r2, _081D2500 - adds r0, r0, r2 - lsrs r2, r0, #0x10 -_081D24C4: - ldrb r3, [r1] - adds r0, r3, #0 - cmp r0, #0xff - bne _081D24B6 - adds r1, r2, #0 - lsls r0, r1, #0x10 - ldr r2, _081D2500 - adds r0, r0, r2 - lsrs r2, r0, #0x10 - lsls r1, r1, #0x10 - cmp r1, #0 - ble _081D24F2 - movs r3, #0 -_081D24DE: - strb r3, [r4] - adds r4, #1 - adds r1, r2, #0 - lsls r0, r1, #0x10 - ldr r2, _081D2500 - adds r0, r0, r2 - lsrs r2, r0, #0x10 - lsls r1, r1, #0x10 - cmp r1, #0 - bgt _081D24DE -_081D24F2: - movs r0, #0xff - strb r0, [r4] - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081D2500: .4byte 0xFFFF0000 - thumb_func_end sub_081D24AC - - thumb_func_start sub_081D2504 -sub_081D2504: @ 0x081D2504 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r6, r1, #0 - ldr r0, [sp, #0x14] - ldr r1, [sp, #0x18] - ldr r4, [sp, #0x1c] - lsls r2, r2, #0x10 - lsrs r7, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r0, r1, #0x10 - lsls r4, r4, #0x18 - cmp r4, #0 - bne _081D252C - subs r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 -_081D252C: - cmp r2, r0 - beq _081D2572 - adds r0, r6, #0 - adds r1, r7, #0 - adds r2, r3, #0 - bl sub_081D22E4 - movs r0, #0xfc - strb r0, [r5] - movs r0, #4 - strb r0, [r5, #1] - movs r0, #8 - strb r0, [r5, #2] - movs r0, #0 - strb r0, [r5, #3] - movs r0, #9 - strb r0, [r5, #4] - cmp r7, #0xe - bne _081D255C - adds r0, r5, #5 - ldr r1, _081D2558 - b _081D256A - .align 2, 0 -_081D2558: .4byte gUnknown_85CB7C6 -_081D255C: - adds r4, r5, #5 - lsls r0, r7, #0x18 - lsrs r0, r0, #0x18 - bl GetBoxNamePtr - adds r1, r0, #0 - adds r0, r4, #0 -_081D256A: - movs r2, #8 - bl sub_081D24AC - b _081D25A2 -_081D2572: - movs r1, #0 - movs r2, #0 -_081D2576: - adds r0, r6, r1 - strb r2, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0xb - bls _081D2576 - adds r1, r6, r1 - movs r0, #0xff - strb r0, [r1] - movs r1, #0 - movs r2, #0 -_081D258E: - adds r0, r5, r1 - strb r2, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #7 - bls _081D258E - adds r1, r5, r1 - movs r0, #0xff - strb r0, [r1] -_081D25A2: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_081D2504 - - thumb_func_start sub_081D25A8 -sub_081D25A8: @ 0x081D25A8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov r8, r0 - mov sl, r1 - ldr r0, [sp, #0x20] - ldr r1, [sp, #0x24] - ldr r4, [sp, #0x28] - ldr r5, [sp, #0x2c] - lsls r2, r2, #0x10 - lsrs r7, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r6, r3, #0x10 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sb, r1 - lsls r4, r4, #0x10 - lsrs r0, r4, #0x10 - lsls r5, r5, #0x18 - cmp r5, #0 - bne _081D25E0 - subs r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 -_081D25E0: - cmp r2, r0 - beq _081D268C - adds r0, r7, #0 - adds r1, r6, #0 - movs r2, #0x16 - movs r3, #0 - bl GetBoxOrPartyMonData - mov r1, sb - lsls r5, r1, #2 - adds r4, r5, r1 - mov r2, r8 - adds r1, r2, r4 - strb r0, [r1] - adds r0, r7, #0 - adds r1, r6, #0 - movs r2, #0x2f - movs r3, #0 - bl GetBoxOrPartyMonData - mov r1, r8 - adds r1, #1 - adds r1, r1, r4 - strb r0, [r1] - adds r0, r7, #0 - adds r1, r6, #0 - movs r2, #0x21 - movs r3, #0 - bl GetBoxOrPartyMonData - mov r1, r8 - adds r1, #2 - adds r1, r1, r4 - strb r0, [r1] - adds r0, r7, #0 - adds r1, r6, #0 - movs r2, #0x18 - movs r3, #0 - bl GetBoxOrPartyMonData - mov r1, r8 - adds r1, #3 - adds r1, r1, r4 - strb r0, [r1] - adds r0, r7, #0 - adds r1, r6, #0 - movs r2, #0x17 - movs r3, #0 - bl GetBoxOrPartyMonData - mov r1, r8 - adds r1, #4 - adds r1, r1, r4 - strb r0, [r1] - mov r4, sl - add r4, sb - adds r0, r7, #0 - adds r1, r6, #0 - movs r2, #0x30 - movs r3, #0 - bl GetBoxOrPartyMonData - cmp r0, #0xff - beq _081D2674 - adds r0, r7, #0 - adds r1, r6, #0 - movs r2, #0x30 - movs r3, #0 - bl GetBoxOrPartyMonData - movs r1, #0x1d - bl __udivsi3 - b _081D2676 -_081D2674: - movs r0, #9 -_081D2676: - strb r0, [r4] - mov r0, sb - adds r1, r5, r0 - mov r2, r8 - adds r0, r2, r1 - lsls r1, r1, #2 - adds r1, #0x14 - add r1, r8 - bl sub_081D1D70 - b _081D26B6 -_081D268C: - movs r2, #0 - mov r0, sb - lsls r5, r0, #2 - adds r1, r5, r0 - movs r6, #0 - lsls r3, r1, #2 - movs r5, #0x9b - movs r4, #0x5b -_081D269C: - adds r0, r2, r1 - add r0, r8 - strb r6, [r0] - lsls r0, r2, #2 - adds r0, r0, r3 - add r0, r8 - strh r5, [r0, #0x14] - strh r4, [r0, #0x16] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #4 - bls _081D269C -_081D26B6: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_081D25A8 - - thumb_func_start sub_081D26C4 -sub_081D26C4: @ 0x081D26C4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - mov r8, r0 - mov sb, r1 - ldr r0, [sp, #0x20] - ldr r1, [sp, #0x24] - ldr r4, [sp, #0x28] - lsls r2, r2, #0x10 - lsrs r7, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r5, r3, #0x10 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r0, r1, #0x10 - lsls r4, r4, #0x18 - cmp r4, #0 - bne _081D26F4 - subs r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 -_081D26F4: - cmp r2, r0 - beq _081D274A - adds r0, r7, #0 - adds r1, r5, #0 - movs r2, #0x41 - movs r3, #0 - bl GetBoxOrPartyMonData - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r7, #0 - adds r1, r5, #0 - movs r2, #1 - movs r3, #0 - bl GetBoxOrPartyMonData - adds r6, r0, #0 - adds r0, r7, #0 - adds r1, r5, #0 - movs r2, #0 - movs r3, #0 - bl GetBoxOrPartyMonData - adds r5, r0, #0 - lsls r0, r4, #3 - ldr r1, _081D2758 - adds r0, r0, r1 - movs r1, #1 - str r1, [sp] - mov r1, r8 - adds r2, r4, #0 - adds r3, r5, #0 - bl sub_080344AC - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r5, #0 - bl GetMonSpritePalFromSpeciesAndPersonality - mov r1, sb - bl LZ77UnCompWram -_081D274A: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D2758: .4byte gUnknown_82DDA1C - thumb_func_end sub_081D26C4 - - thumb_func_start sub_081D275C -sub_081D275C: @ 0x081D275C - push {lr} - adds r1, r0, #0 - ldrh r0, [r1] - adds r0, #0x18 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - ble _081D2770 - movs r0, #0 - strh r0, [r1] -_081D2770: - movs r0, #0 - ldrsh r1, [r1, r0] - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081D275C - - thumb_func_start sub_081D2780 -sub_081D2780: @ 0x081D2780 - push {lr} - adds r1, r0, #0 - ldrh r0, [r1] - subs r0, #0x18 - strh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x50 - rsbs r2, r2, #0 - cmp r0, r2 - bge _081D2798 - strh r2, [r1] -_081D2798: - movs r0, #0 - ldrsh r1, [r1, r0] - eors r1, r2 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - pop {r1} - bx r1 - thumb_func_end sub_081D2780 - - thumb_func_start sub_081D27A8 -sub_081D27A8: @ 0x081D27A8 - push {r4, r5, lr} - adds r5, r1, #0 - bl sub_081D16BC - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - bl sub_081D275C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - cmp r4, #0 - bne _081D27CA - cmp r0, #0 - beq _081D27CC -_081D27CA: - movs r1, #1 -_081D27CC: - adds r0, r1, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_081D27A8 - - thumb_func_start sub_081D27D4 -sub_081D27D4: @ 0x081D27D4 - push {r4, r5, lr} - adds r5, r1, #0 - bl sub_081D16BC - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r5, #0 - bl sub_081D2780 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0 - cmp r4, #0 - bne _081D27F6 - cmp r0, #0 - beq _081D27F8 -_081D27F6: - movs r1, #1 -_081D27F8: - adds r0, r1, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_081D27D4 - - thumb_func_start sub_081D2800 -sub_081D2800: @ 0x081D2800 - push {r4, r5, r6, r7, lr} - sub sp, #0x20 - ldr r3, _081D2840 - ldr r4, [r3] - ldr r5, [r3, #4] - str r4, [sp, #0x18] - str r5, [sp, #0x1c] - mov r4, sp - ldr r3, _081D2844 - ldm r3!, {r5, r6, r7} - stm r4!, {r5, r6, r7} - ldm r3!, {r5, r6, r7} - stm r4!, {r5, r6, r7} - ldr r3, _081D2848 - ldr r4, [r3, #4] - ldr r3, [r3] - ldr r5, [sp, #0x18] - ldr r6, [sp, #0x1c] - str r5, [r0] - str r6, [r0, #4] - mov r0, sp - ldm r0!, {r5, r6, r7} - stm r1!, {r5, r6, r7} - ldm r0!, {r5, r6, r7} - stm r1!, {r5, r6, r7} - str r3, [r2] - str r4, [r2, #4] - add sp, #0x20 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D2840: .4byte gUnknown_85FA898 -_081D2844: .4byte gUnknown_85FA8A0 -_081D2848: .4byte gUnknown_85FA8B8 - thumb_func_end sub_081D2800 - - thumb_func_start sub_081D284C -sub_081D284C: @ 0x081D284C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x50 - adds r5, r0, #0 - mov ip, r1 - mov r8, r2 - mov r1, sp - ldr r0, _081D28D4 - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - ldm r0!, {r2, r6, r7} - stm r1!, {r2, r6, r7} - ldm r0!, {r3, r4} - stm r1!, {r3, r4} - add r3, sp, #0x20 - adds r1, r3, #0 - ldr r0, _081D28D8 - ldm r0!, {r2, r6, r7} - stm r1!, {r2, r6, r7} - ldm r0!, {r4, r6, r7} - stm r1!, {r4, r6, r7} - add r2, sp, #0x38 - adds r1, r2, #0 - ldr r0, _081D28DC - ldm r0!, {r4, r6, r7} - stm r1!, {r4, r6, r7} - ldm r0!, {r4, r6, r7} - stm r1!, {r4, r6, r7} - movs r4, #0 -_081D2888: - lsls r0, r4, #3 - add r0, sp - ldr r1, [r0, #4] - ldr r0, [r0] - stm r5!, {r0, r1} - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _081D2888 - mov r1, ip - adds r0, r2, #0 - ldm r0!, {r2, r4, r5} - stm r1!, {r2, r4, r5} - ldm r0!, {r2, r6, r7} - stm r1!, {r2, r6, r7} - movs r4, #0 -_081D28AA: - lsls r0, r4, #3 - adds r0, r3, r0 - ldr r1, [r0, #4] - ldr r0, [r0] - mov r5, r8 - adds r5, #8 - mov r8, r5 - subs r5, #8 - stm r5!, {r0, r1} - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #2 - bls _081D28AA - add sp, #0x50 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D28D4: .4byte gUnknown_85FA8C0 -_081D28D8: .4byte gUnknown_85FA8E0 -_081D28DC: .4byte gUnknown_85FA8F8 - thumb_func_end sub_081D284C - - thumb_func_start sub_081D28E0 -sub_081D28E0: @ 0x081D28E0 - push {r4, r5, lr} - ldr r2, _081D28FC - ldr r4, [r2] - ldr r5, [r2, #4] - ldr r2, _081D2900 - ldr r3, [r2, #4] - ldr r2, [r2] - str r4, [r0] - str r5, [r0, #4] - str r2, [r1] - str r3, [r1, #4] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081D28FC: .4byte gUnknown_85FA910 -_081D2900: .4byte gUnknown_85FA918 - thumb_func_end sub_081D28E0 - - thumb_func_start sub_081D2904 -sub_081D2904: @ 0x081D2904 - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0x30] - adds r0, #1 - strh r0, [r1, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3c - ble _081D2920 - movs r0, #0 - strh r0, [r1, #0x30] - adds r0, r1, #0 - bl sub_081D2A38 -_081D2920: - pop {r0} - bx r0 - thumb_func_end sub_081D2904 - - thumb_func_start sub_081D2924 -sub_081D2924: @ 0x081D2924 - push {lr} - adds r2, r0, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _081D293C - movs r0, #0 - strh r0, [r2, #0x30] - ldr r0, _081D2940 - str r0, [r2, #0x1c] -_081D293C: - pop {r0} - bx r0 - .align 2, 0 -_081D2940: .4byte sub_081D2904 - thumb_func_end sub_081D2924 - - thumb_func_start sub_081D2944 -sub_081D2944: @ 0x081D2944 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x36 - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _081D2988 - adds r3, r1, r0 - cmp r3, #0 - beq _081D2990 - ldrh r1, [r3, #0x24] - ldrh r2, [r3, #0x20] - adds r1, r1, r2 - ldr r2, _081D298C - movs r5, #0x2e - ldrsh r0, [r4, r5] - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0] - adds r0, r0, r1 - strh r0, [r4, #0x20] - ldrh r1, [r3, #0x26] - ldrh r3, [r3, #0x22] - adds r1, r1, r3 - movs r3, #0x2e - ldrsh r0, [r4, r3] - lsls r0, r0, #2 - adds r2, #2 - adds r0, r0, r2 - ldrh r0, [r0] - adds r0, r0, r1 - b _081D29AE - .align 2, 0 -_081D2988: .4byte gUnknown_20205AC -_081D298C: .4byte gUnknown_85FA97C -_081D2990: - ldr r1, _081D29B8 - movs r5, #0x2e - ldrsh r0, [r4, r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0] - adds r0, #0x28 - strh r0, [r4, #0x20] - movs r2, #0x2e - ldrsh r0, [r4, r2] - lsls r0, r0, #2 - adds r1, #2 - adds r0, r0, r1 - ldrh r0, [r0] - adds r0, #0x68 -_081D29AE: - strh r0, [r4, #0x22] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081D29B8: .4byte gUnknown_85FA97C - thumb_func_end sub_081D2944 - - thumb_func_start sub_081D29BC -sub_081D29BC: @ 0x081D29BC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r2 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - movs r5, #0 -_081D29CE: - lsls r0, r5, #2 - mov r1, r8 - adds r4, r0, r1 - ldr r0, [r4] - cmp r0, #0 - beq _081D2A20 - strh r5, [r0, #0x2e] - ldr r1, [r4] - lsls r0, r5, #4 - adds r0, #1 - strh r0, [r1, #0x30] - ldr r0, [r4] - strh r6, [r0, #0x32] - ldr r0, [r4] - strh r5, [r0, #0x34] - cmp r7, #0 - beq _081D29F4 - cmp r6, #9 - beq _081D2A00 -_081D29F4: - ldr r1, [r4] - ldr r0, _081D29FC - str r0, [r1, #0x1c] - b _081D2A20 - .align 2, 0 -_081D29FC: .4byte sub_081D2B94 -_081D2A00: - ldr r0, [r4] - bl sub_081D2944 - ldr r0, [r4] - bl sub_081D2C18 - ldr r2, [r4] - ldr r0, _081D2A34 - str r0, [r2, #0x1c] - adds r2, #0x3e - ldrb r0, [r2] - movs r3, #5 - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r0, r1 - strb r0, [r2] -_081D2A20: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #9 - bls _081D29CE - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D2A34: .4byte sub_081D2924 - thumb_func_end sub_081D29BC - - thumb_func_start sub_081D2A38 -sub_081D2A38: @ 0x081D2A38 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x38] - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - movs r3, #0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - adds r0, #1 - cmp r3, r0 - bge _081D2A84 - ldr r5, _081D2A8C - movs r7, #0x1c - adds r7, r7, r5 - mov ip, r7 - ldr r6, _081D2A90 -_081D2A58: - lsls r1, r2, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r2, r1, r5 - movs r7, #0x2e - ldrsh r0, [r2, r7] - lsls r0, r0, #4 - adds r0, #1 - strh r0, [r2, #0x30] - add r1, ip - str r6, [r1] - ldrh r0, [r2, #0x38] - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - movs r1, #0x32 - ldrsh r0, [r4, r1] - adds r0, #1 - cmp r3, r0 - blt _081D2A58 -_081D2A84: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D2A8C: .4byte gUnknown_20205AC -_081D2A90: .4byte sub_081D2B94 - thumb_func_end sub_081D2A38 - - thumb_func_start sub_081D2A94 -sub_081D2A94: @ 0x081D2A94 - push {lr} - adds r2, r0, #0 - movs r1, #0 - movs r3, #0 -_081D2A9C: - lsls r0, r1, #2 - adds r0, r0, r2 - str r3, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #9 - bls _081D2A9C - pop {r0} - bx r0 - thumb_func_end sub_081D2A94 - - thumb_func_start sub_081D2AB0 -sub_081D2AB0: @ 0x081D2AB0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov r8, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sl, r1 - lsls r2, r2, #0x18 - movs r0, #0 - mov sb, r0 - lsrs r7, r2, #0x18 - movs r5, #0 - adds r0, r7, #1 - cmp sb, r0 - bge _081D2B2E -_081D2AD2: - ldr r0, _081D2B18 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - adds r6, r3, #0 - cmp r3, #0x40 - beq _081D2B2E - lsls r0, r5, #2 - mov r1, r8 - adds r4, r0, r1 - lsls r0, r3, #4 - adds r0, r0, r3 - lsls r0, r0, #2 - ldr r1, _081D2B1C - adds r0, r0, r1 - str r0, [r4] - adds r0, #0x3e - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r4] - mov r1, sl - strh r1, [r0, #0x36] - cmp r5, #0 - beq _081D2B20 - subs r0, r4, #4 - ldr r0, [r0] - strh r3, [r0, #0x38] - b _081D2B22 - .align 2, 0 -_081D2B18: .4byte gUnknown_85FA964 -_081D2B1C: .4byte gUnknown_20205AC -_081D2B20: - mov sb, r6 -_081D2B22: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r7, #1 - cmp r5, r0 - blt _081D2AD2 -_081D2B2E: - lsls r0, r7, #2 - add r0, r8 - ldr r0, [r0] - mov r1, sb - strh r1, [r0, #0x38] - adds r0, r7, #0 - movs r1, #1 - mov r2, r8 - bl sub_081D29BC - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_081D2AB0 - - thumb_func_start sub_081D2B50 -sub_081D2B50: @ 0x081D2B50 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r5, #0 -_081D2B56: - cmp r5, #9 - bhi _081D2B74 - lsls r0, r5, #2 - adds r4, r0, r6 - ldr r0, [r4] - cmp r0, #0 - beq _081D2B74 - bl DestroySprite - movs r0, #0 - str r0, [r4] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - b _081D2B56 -_081D2B74: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081D2B50 - - thumb_func_start sub_081D2B7C -sub_081D2B7C: @ 0x081D2B7C - push {lr} - bl sub_081D2B50 - movs r0, #0x68 - bl FreeSpriteTilesByTag - movs r0, #0x68 - bl FreeSpritePaletteByTag - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081D2B7C - - thumb_func_start sub_081D2B94 -sub_081D2B94: @ 0x081D2B94 - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x30] - movs r2, #0x30 - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _081D2BC2 - subs r0, r1, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _081D2C0C - adds r0, r4, #0 - movs r1, #0 - bl SeekSpriteAnim - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_081D2BC2: - adds r0, r4, #0 - bl sub_081D2944 - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _081D2C0C - adds r2, r4, #0 - adds r2, #0x3e - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x34 - ldrsh r1, [r4, r0] - movs r2, #0x32 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _081D2C08 - cmp r1, #9 - bne _081D2C00 - adds r0, r4, #0 - bl sub_081D2C18 - ldr r0, _081D2BFC - b _081D2C0A - .align 2, 0 -_081D2BFC: .4byte sub_081D2924 -_081D2C00: - ldr r0, _081D2C04 - b _081D2C0A - .align 2, 0 -_081D2C04: .4byte sub_081D2904 -_081D2C08: - ldr r0, _081D2C14 -_081D2C0A: - str r0, [r4, #0x1c] -_081D2C0C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D2C14: .4byte sub_08007140 - thumb_func_end sub_081D2B94 - - thumb_func_start sub_081D2C18 -sub_081D2C18: @ 0x081D2C18 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldrh r0, [r6, #0x38] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r5, #0 - movs r2, #0x32 - ldrsh r0, [r6, r2] - adds r0, #1 - cmp r5, r0 - bge _081D2C66 - movs r0, #5 - rsbs r0, r0, #0 - adds r7, r0, #0 -_081D2C34: - lsls r4, r1, #4 - adds r4, r4, r1 - lsls r4, r4, #2 - ldr r0, _081D2C6C - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0 - bl SeekSpriteAnim - adds r1, r4, #0 - adds r1, #0x3e - ldrb r0, [r1] - ands r0, r7 - strb r0, [r1] - ldrh r0, [r4, #0x38] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - movs r2, #0x32 - ldrsh r0, [r6, r2] - adds r0, #1 - cmp r5, r0 - blt _081D2C34 -_081D2C66: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D2C6C: .4byte gUnknown_20205AC - thumb_func_end sub_081D2C18 - - thumb_func_start DrawLevelUpWindowPg1 -DrawLevelUpWindowPg1: @ 0x081D2C70 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x2c - mov r8, r0 - adds r6, r1, #0 - adds r5, r2, #0 - adds r4, r3, #0 - ldr r3, [sp, #0x4c] - ldr r0, [sp, #0x50] - mov sb, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r1, sb - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sb, r1 - mov r0, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r1, r4, #4 - orrs r1, r4 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r3, [sp, #0x28] - bl FillWindowPixelBuffer - add r2, sp, #0xc - ldrh r0, [r5] - ldrh r1, [r6] - subs r0, r0, r1 - strh r0, [r2] - ldrh r0, [r5, #2] - ldrh r1, [r6, #2] - subs r0, r0, r1 - strh r0, [r2, #2] - ldrh r0, [r5, #4] - ldrh r1, [r6, #4] - subs r0, r0, r1 - strh r0, [r2, #4] - ldrh r0, [r5, #8] - ldrh r1, [r6, #8] - subs r0, r0, r1 - strh r0, [r2, #6] - ldrh r0, [r5, #0xa] - ldrh r1, [r6, #0xa] - subs r0, r0, r1 - strh r0, [r2, #8] - ldrh r0, [r5, #6] - ldrh r1, [r6, #6] - subs r0, r0, r1 - strh r0, [r2, #0xa] - add r0, sp, #0x24 - strb r4, [r0] - ldr r3, [sp, #0x28] - strb r3, [r0, #1] - mov r1, sb - strb r1, [r0, #2] - movs r7, #0 - mov sl, r0 - movs r0, #1 - rsbs r0, r0, #0 - mov sb, r0 - add r6, sp, #0x18 -_081D2CFA: - lsls r0, r7, #4 - subs r0, r0, r7 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - mov r1, sl - str r1, [sp] - mov r0, sb - str r0, [sp, #4] - ldr r1, _081D2DA8 - lsls r0, r7, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp, #8] - mov r0, r8 - movs r1, #1 - movs r2, #0 - adds r3, r5, #0 - bl AddTextPrinterParameterized3 - lsls r0, r7, #1 - mov r4, sp - adds r4, r4, r0 - adds r4, #0xc - movs r1, #0 - ldrsh r0, [r4, r1] - ldr r1, _081D2DAC - cmp r0, #0 - blt _081D2D34 - ldr r1, _081D2DB0 -_081D2D34: - adds r0, r6, #0 - bl StringCopy - mov r0, sl - str r0, [sp] - mov r1, sb - str r1, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - movs r1, #1 - movs r2, #0x36 - adds r3, r5, #0 - bl AddTextPrinterParameterized3 - movs r0, #0 - ldrsh r1, [r4, r0] - adds r0, r1, #0 - cmp r1, #0 - bge _081D2D5C - rsbs r0, r1, #0 -_081D2D5C: - movs r4, #8 - cmp r0, #9 - bgt _081D2D64 - movs r4, #0x10 -_081D2D64: - cmp r1, #0 - bge _081D2D6A - rsbs r1, r1, #0 -_081D2D6A: - adds r0, r6, #0 - movs r2, #0 - movs r3, #2 - bl sub_080089D8 - adds r2, r4, #0 - adds r2, #0x36 - mov r1, sl - str r1, [sp] - mov r0, sb - str r0, [sp, #4] - str r6, [sp, #8] - mov r0, r8 - movs r1, #1 - adds r3, r5, #0 - bl AddTextPrinterParameterized3 - adds r0, r7, #1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - cmp r7, #5 - bls _081D2CFA - add sp, #0x2c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D2DA8: .4byte gUnknown_85FA9CC -_081D2DAC: .4byte gUnknown_85FA9C7 -_081D2DB0: .4byte gUnknown_85FA9C4 - thumb_func_end DrawLevelUpWindowPg1 - - thumb_func_start DrawLevelUpWindowPg2 -DrawLevelUpWindowPg2: @ 0x081D2DB4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x2c - mov r8, r0 - adds r5, r1, #0 - adds r4, r2, #0 - adds r6, r3, #0 - ldr r2, [sp, #0x4c] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r1, r4, #4 - orrs r1, r4 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r2, [sp, #0x28] - bl FillWindowPixelBuffer - add r1, sp, #0xc - ldrh r0, [r5] - strh r0, [r1] - ldrh r0, [r5, #2] - strh r0, [r1, #2] - ldrh r0, [r5, #4] - strh r0, [r1, #4] - ldrh r0, [r5, #8] - strh r0, [r1, #6] - ldrh r0, [r5, #0xa] - strh r0, [r1, #8] - ldrh r0, [r5, #6] - strh r0, [r1, #0xa] - add r0, sp, #0x24 - strb r4, [r0] - strb r6, [r0, #1] - ldr r2, [sp, #0x28] - strb r2, [r0, #2] - movs r6, #0 - add r1, sp, #0x18 - mov sb, r1 - mov r7, r8 - mov sl, r0 - movs r2, #1 - rsbs r2, r2, #0 - mov r8, r2 -_081D2E1E: - lsls r1, r6, #1 - mov r0, sp - adds r0, r0, r1 - adds r0, #0xc - movs r2, #0 - ldrsh r0, [r0, r2] - movs r5, #3 - cmp r0, #0x63 - bgt _081D2E38 - movs r5, #1 - cmp r0, #9 - ble _081D2E38 - movs r5, #2 -_081D2E38: - mov r0, sp - adds r0, r0, r1 - adds r0, #0xc - movs r2, #0 - ldrsh r1, [r0, r2] - mov r0, sb - movs r2, #0 - adds r3, r5, #0 - bl sub_080089D8 - movs r4, #3 - subs r4, r4, r5 - lsls r4, r4, #0x13 - lsrs r4, r4, #0x10 - lsls r5, r6, #4 - subs r5, r5, r6 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - mov r0, sl - str r0, [sp] - mov r1, r8 - str r1, [sp, #4] - ldr r1, _081D2EB4 - lsls r0, r6, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp, #8] - adds r0, r7, #0 - movs r1, #1 - movs r2, #0 - adds r3, r5, #0 - bl AddTextPrinterParameterized3 - adds r4, #0x36 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r2, sl - str r2, [sp] - mov r0, r8 - str r0, [sp, #4] - mov r1, sb - str r1, [sp, #8] - adds r0, r7, #0 - movs r1, #1 - adds r2, r4, #0 - adds r3, r5, #0 - bl AddTextPrinterParameterized3 - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #5 - bls _081D2E1E - add sp, #0x2c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D2EB4: .4byte gUnknown_85FA9CC - thumb_func_end DrawLevelUpWindowPg2 - - thumb_func_start GetMonLevelUpWindowStats -GetMonLevelUpWindowStats: @ 0x081D2EB8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r1, #0x3a - bl GetMonData - strh r0, [r5] - adds r0, r4, #0 - movs r1, #0x3b - bl GetMonData - strh r0, [r5, #2] - adds r0, r4, #0 - movs r1, #0x3c - bl GetMonData - strh r0, [r5, #4] - adds r0, r4, #0 - movs r1, #0x3d - bl GetMonData - strh r0, [r5, #6] - adds r0, r4, #0 - movs r1, #0x3e - bl GetMonData - strh r0, [r5, #8] - adds r0, r4, #0 - movs r1, #0x3f - bl GetMonData - strh r0, [r5, #0xa] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end GetMonLevelUpWindowStats - - thumb_func_start sub_081D2F00 -sub_081D2F00: @ 0x081D2F00 - push {lr} - ldr r0, _081D2F20 - ldr r0, [r0] - ldr r1, _081D2F24 - adds r0, r0, r1 - ldrb r1, [r0] - adds r2, r1, #1 - adds r0, r2, #0 - asrs r0, r0, #8 - lsls r0, r0, #8 - subs r0, r2, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - .align 2, 0 -_081D2F20: .4byte gUnknown_3005AEC -_081D2F24: .4byte 0x00003D6D - thumb_func_end sub_081D2F00 - - thumb_func_start Struct_Unk81D38FC_ValidateChecksum -Struct_Unk81D38FC_ValidateChecksum: @ 0x081D2F28 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #0x9b - lsls r5, r5, #2 - adds r1, r5, #0 - bl CalcByteArraySum - adds r4, r4, r5 - ldr r1, [r4] - cmp r0, r1 - bne _081D2F42 - movs r0, #1 - b _081D2F44 -_081D2F42: - movs r0, #0 -_081D2F44: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end Struct_Unk81D38FC_ValidateChecksum - - thumb_func_start sub_081D2F4C -sub_081D2F4C: @ 0x081D2F4C - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - ldrb r5, [r7] - subs r0, r5, #1 - cmp r0, #7 - bhi _081D2F94 - movs r6, #0 - cmp r6, r5 - bhs _081D2F78 - adds r4, r7, #0 - adds r4, #8 -_081D2F62: - adds r0, r4, #0 - bl Struct_Unk81D38FC_ValidateChecksum - cmp r0, #0 - beq _081D2F94 - movs r0, #0x9c - lsls r0, r0, #2 - adds r4, r4, r0 - adds r6, #1 - cmp r6, r5 - blo _081D2F62 -_081D2F78: - adds r0, r7, #0 - adds r0, #8 - lsls r1, r5, #2 - adds r1, r1, r5 - lsls r1, r1, #3 - subs r1, r1, r5 - lsls r1, r1, #4 - bl CalcByteArraySum - ldr r1, [r7, #4] - cmp r0, r1 - bne _081D2F94 - movs r0, #1 - b _081D2F96 -_081D2F94: - movs r0, #0 -_081D2F96: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_081D2F4C - - thumb_func_start TrainerHill_VerifyChecksum -TrainerHill_VerifyChecksum: @ 0x081D2F9C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4] - subs r0, #1 - cmp r0, #7 - bhi _081D2FBE - adds r0, r4, #0 - adds r0, #8 - movs r1, #0xec - lsls r1, r1, #4 - bl CalcByteArraySum - ldr r1, [r4, #4] - cmp r0, r1 - bne _081D2FBE - movs r0, #1 - b _081D2FC0 -_081D2FBE: - movs r0, #0 -_081D2FC0: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end TrainerHill_VerifyChecksum - - thumb_func_start sub_081D2FC8 -sub_081D2FC8: @ 0x081D2FC8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov r8, r0 - mov sb, r1 - ldrh r0, [r0, #2] - cmp r0, #0 - beq _081D2FEA - ldr r0, _081D3080 - ldr r2, _081D3084 - movs r1, #0xe1 - movs r3, #1 - bl AGBAssert -_081D2FEA: - mov r1, r8 - ldrb r0, [r1, #1] - cmp r0, #0 - beq _081D2FFE - ldr r0, _081D3080 - ldr r2, _081D3088 - movs r1, #0xe2 - movs r3, #1 - bl AGBAssert -_081D2FFE: - movs r2, #0x80 - lsls r2, r2, #5 - mov r0, sb - movs r1, #0 - bl memset - mov r1, r8 - ldrb r0, [r1] - mov r1, sb - strb r0, [r1] - bl sub_081D2F00 - mov r1, sb - strb r0, [r1, #1] - mov r1, r8 - ldrb r0, [r1] - adds r0, #1 - asrs r0, r0, #1 - mov r1, sb - strb r0, [r1, #2] - movs r5, #0 - adds r1, #8 - str r1, [sp] - mov r0, r8 - ldrb r0, [r0] - cmp r5, r0 - bge _081D30C6 - mov r7, r8 - adds r7, #0xc - mov r6, r8 - movs r1, #0xa8 - lsls r1, r1, #1 - add r1, r8 - mov sl, r1 -_081D3042: - movs r0, #1 - ands r0, r5 - cmp r0, #0 - bne _081D308C - lsrs r0, r5, #0x1f - adds r0, r5, r0 - asrs r0, r0, #1 - lsls r4, r0, #4 - subs r4, r4, r0 - lsls r4, r4, #2 - subs r4, r4, r0 - lsls r4, r4, #4 - add r4, sb - ldrb r0, [r6, #8] - strb r0, [r4, #8] - movs r1, #0xa5 - lsls r1, r1, #2 - adds r0, r4, r1 - mov r1, sl - movs r2, #0x92 - lsls r2, r2, #1 - bl memcpy - adds r4, #0xc - adds r0, r4, #0 - adds r1, r7, #0 - movs r2, #0xa2 - lsls r2, r2, #1 - bl memcpy - b _081D30B2 - .align 2, 0 -_081D3080: .4byte gUnknown_85FAEF4 -_081D3084: .4byte gUnknown_85FAF04 -_081D3088: .4byte gUnknown_85FAF18 -_081D308C: - lsrs r1, r5, #0x1f - adds r1, r5, r1 - asrs r1, r1, #1 - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #2 - subs r0, r0, r1 - lsls r0, r0, #4 - add r0, sb - ldrb r1, [r6, #8] - strb r1, [r0, #9] - movs r1, #0xa8 - lsls r1, r1, #1 - adds r0, r0, r1 - adds r1, r7, #0 - movs r2, #0xa2 - lsls r2, r2, #1 - bl memcpy -_081D30B2: - movs r0, #0x9c - lsls r0, r0, #2 - adds r7, r7, r0 - adds r6, r6, r0 - add sl, r0 - adds r5, #1 - mov r1, r8 - ldrb r1, [r1] - cmp r5, r1 - blt _081D3042 -_081D30C6: - movs r0, #1 - ands r0, r5 - cmp r0, #0 - beq _081D30FC - lsrs r2, r5, #0x1f - adds r2, r5, r2 - asrs r2, r2, #1 - lsls r0, r2, #4 - subs r0, r0, r2 - lsls r0, r0, #2 - subs r0, r0, r2 - lsls r0, r0, #4 - add r0, sb - movs r1, #0xa8 - lsls r1, r1, #1 - adds r0, r0, r1 - ldr r3, _081D3118 - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #4 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r3 - movs r2, #0xa2 - lsls r2, r2, #1 - bl memcpy -_081D30FC: - movs r1, #0xec - lsls r1, r1, #4 - ldr r0, [sp] - bl CalcByteArraySum - mov r1, sb - str r0, [r1, #4] - movs r0, #0x1e - bl TryWriteSpecialSaveSection - cmp r0, #1 - bne _081D311C - movs r0, #1 - b _081D311E - .align 2, 0 -_081D3118: .4byte gUnknown_85FA9E4 -_081D311C: - movs r0, #0 -_081D311E: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081D2FC8 - - thumb_func_start sub_081D3130 -sub_081D3130: @ 0x081D3130 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x80 - lsls r0, r0, #5 - bl AllocZeroed - adds r5, r0, #0 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_081D2FC8 - adds r4, r0, #0 - adds r0, r5, #0 - bl Free - adds r0, r4, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081D3130 - - thumb_func_start TryReadTrainerHill_r -TryReadTrainerHill_r: @ 0x081D3158 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - movs r0, #0x1e - bl TryReadSpecialSaveSection - cmp r0, #1 - bne _081D3184 - ldr r2, _081D3180 - adds r0, r5, #0 - adds r1, r4, #0 - bl memcpy - adds r0, r5, #0 - bl TrainerHill_VerifyChecksum - cmp r0, #0 - beq _081D3184 - movs r0, #1 - b _081D3186 - .align 2, 0 -_081D3180: .4byte 0x00000EC8 -_081D3184: - movs r0, #0 -_081D3186: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end TryReadTrainerHill_r - - thumb_func_start TryReadTrainerHill -TryReadTrainerHill: @ 0x081D318C - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x80 - lsls r0, r0, #5 - bl AllocZeroed - adds r5, r0, #0 - adds r0, r4, #0 - adds r1, r5, #0 - bl TryReadTrainerHill_r - adds r4, r0, #0 - adds r0, r5, #0 - bl Free - adds r0, r4, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end TryReadTrainerHill - - thumb_func_start ReadTrainerHillAndValidate -ReadTrainerHillAndValidate: @ 0x081D31B4 - push {r4, r5, lr} - movs r0, #0x80 - lsls r0, r0, #5 - bl AllocZeroed - adds r4, r0, #0 - bl TryReadTrainerHill - adds r5, r0, #0 - adds r0, r4, #0 - bl Free - adds r0, r5, #0 - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end ReadTrainerHillAndValidate - - thumb_func_start unref_sub_81D3B54 -unref_sub_81D3B54: @ 0x081D31D4 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r6, r0, #0 - adds r5, r1, #0 - bl sub_081D3820 - movs r7, #2 - ldr r4, _081D3214 -_081D31E4: - bl sub_081D37F0 - ldr r0, _081D3218 - ldrh r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081D31F6 - strb r7, [r4] -_081D31F6: - movs r0, #1 - adds r1, r6, #0 - adds r2, r5, #0 - movs r3, #0 - bl sub_081D33F0 - adds r1, r0, #0 - ldr r0, _081D321C - strh r1, [r0] - movs r0, #0x13 - ands r0, r1 - cmp r0, #0x10 - bne _081D3220 - movs r4, #0 - b _081D3242 - .align 2, 0 -_081D3214: .4byte gUnknown_30031E4 -_081D3218: .4byte gUnknown_30012DA -_081D321C: .4byte gUnknown_30012DC -_081D3220: - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _081D322C - movs r4, #1 - b _081D3242 -_081D322C: - movs r0, #4 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - bne _081D3240 - strb r0, [r4] - bl VBlankIntrWait - b _081D31E4 -_081D3240: - movs r4, #2 -_081D3242: - movs r0, #0 - str r0, [sp] - ldr r1, _081D3260 - ldr r2, _081D3264 - mov r0, sp - bl CpuSet - bl sub_081D3874 - adds r0, r4, #0 - add sp, #4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081D3260: .4byte gUnknown_30012C0 -_081D3264: .4byte 0x05000006 - thumb_func_end unref_sub_81D3B54 - - thumb_func_start unref_sub_81D3BE8 -unref_sub_81D3BE8: @ 0x081D3268 - push {r4, r5, r6, lr} - sub sp, #4 - adds r5, r0, #0 - bl sub_081D3820 - movs r6, #2 - ldr r4, _081D32A8 -_081D3276: - bl sub_081D37F0 - ldr r0, _081D32AC - ldrh r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081D3288 - strb r6, [r4] -_081D3288: - movs r0, #0 - movs r1, #0 - movs r2, #0 - adds r3, r5, #0 - bl sub_081D33F0 - adds r1, r0, #0 - ldr r0, _081D32B0 - strh r1, [r0] - movs r0, #0x13 - ands r0, r1 - cmp r0, #0x10 - bne _081D32B4 - movs r4, #0 - b _081D32D6 - .align 2, 0 -_081D32A8: .4byte gUnknown_30031E4 -_081D32AC: .4byte gUnknown_30012DA -_081D32B0: .4byte gUnknown_30012DC -_081D32B4: - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _081D32C0 - movs r4, #1 - b _081D32D6 -_081D32C0: - movs r0, #4 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - bne _081D32D4 - strb r0, [r4] - bl VBlankIntrWait - b _081D3276 -_081D32D4: - movs r4, #2 -_081D32D6: - movs r0, #0 - str r0, [sp] - ldr r1, _081D32F4 - ldr r2, _081D32F8 - mov r0, sp - bl CpuSet - bl sub_081D3874 - adds r0, r4, #0 - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_081D32F4: .4byte gUnknown_30012C0 -_081D32F8: .4byte 0x05000006 - thumb_func_end unref_sub_81D3BE8 - - thumb_func_start sub_081D32FC -sub_081D32FC: @ 0x081D32FC - push {r4, lr} - ldr r4, _081D3328 - movs r3, #0 - strh r3, [r4] - ldr r2, _081D332C - ldrh r1, [r2] - ldr r0, _081D3330 - ands r0, r1 - strh r0, [r2] - movs r0, #1 - strh r0, [r4] - ldr r0, _081D3334 - strh r3, [r0] - subs r0, #0x1a - strh r3, [r0] - ldr r1, _081D3338 - movs r0, #0xc0 - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D3328: .4byte 0x04000208 -_081D332C: .4byte 0x04000200 -_081D3330: .4byte 0x0000FF3F -_081D3334: .4byte 0x04000128 -_081D3338: .4byte 0x04000202 - thumb_func_end sub_081D32FC - - thumb_func_start sub_081D333C -sub_081D333C: @ 0x081D333C - push {r4, r5, r6, r7, lr} - sub sp, #4 - ldr r5, _081D3394 - movs r4, #0 - strh r4, [r5] - ldr r3, _081D3398 - ldrh r1, [r3] - ldr r0, _081D339C - ands r0, r1 - strh r0, [r3] - movs r6, #1 - strh r6, [r5] - ldr r0, _081D33A0 - strh r4, [r0] - ldr r2, _081D33A4 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r1, #0 - strh r0, [r2] - ldrh r0, [r2] - ldr r7, _081D33A8 - adds r1, r7, #0 - orrs r0, r1 - strh r0, [r2] - strh r4, [r5] - ldrh r0, [r3] - movs r1, #0x80 - orrs r0, r1 - strh r0, [r3] - strh r6, [r5] - ldr r1, _081D33AC - ldrb r0, [r1, #1] - cmp r0, #0 - bne _081D338A - str r0, [sp] - ldr r2, _081D33B0 - mov r0, sp - bl CpuSet -_081D338A: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D3394: .4byte 0x04000208 -_081D3398: .4byte 0x04000200 -_081D339C: .4byte 0x0000FF3F -_081D33A0: .4byte 0x04000134 -_081D33A4: .4byte 0x04000128 -_081D33A8: .4byte 0x00004003 -_081D33AC: .4byte gUnknown_30012C0 -_081D33B0: .4byte 0x05000006 - thumb_func_end sub_081D333C - - thumb_func_start sub_081D33B4 -sub_081D33B4: @ 0x081D33B4 - ldr r0, _081D33DC - movs r3, #0 - strh r3, [r0] - ldr r2, _081D33E0 - movs r1, #0xa0 - lsls r1, r1, #7 - adds r0, r1, #0 - strh r0, [r2] - ldrh r0, [r2] - movs r1, #8 - orrs r0, r1 - strh r0, [r2] - ldr r0, _081D33E4 - strb r3, [r0] - ldr r0, _081D33E8 - strh r3, [r0] - ldr r1, _081D33EC - movs r0, #0 - str r0, [r1] - bx lr - .align 2, 0 -_081D33DC: .4byte 0x04000134 -_081D33E0: .4byte 0x04000128 -_081D33E4: .4byte gUnknown_30031E4 -_081D33E8: .4byte gUnknown_30012DE -_081D33EC: .4byte gUnknown_30012E0 - thumb_func_end sub_081D33B4 - - thumb_func_start sub_081D33F0 -sub_081D33F0: @ 0x081D33F0 - push {r4, r5, r6, lr} - adds r4, r1, #0 - adds r5, r2, #0 - adds r6, r3, #0 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _081D3410 - ldrb r0, [r0, #1] - cmp r0, #6 - bls _081D3406 - b _081D354C -_081D3406: - lsls r0, r0, #2 - ldr r1, _081D3414 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081D3410: .4byte gUnknown_30012C0 -_081D3414: .4byte _081D3418 -_081D3418: @ jump table - .4byte _081D3434 @ case 0 - .4byte _081D3448 @ case 1 - .4byte _081D3468 @ case 2 - .4byte _081D347C @ case 3 - .4byte _081D34F4 @ case 4 - .4byte _081D3504 @ case 5 - .4byte _081D353C @ case 6 -_081D3434: - bl sub_081D333C - ldr r1, _081D3444 - movs r0, #1 - strb r0, [r1, #2] - strb r0, [r1, #1] - b _081D354C - .align 2, 0 -_081D3444: .4byte gUnknown_30012C0 -_081D3448: - adds r0, r2, #0 - bl sub_081D3568 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _081D3458 - bl sub_081D37BC -_081D3458: - ldr r0, _081D3464 - ldrb r0, [r0] - cmp r0, #2 - beq _081D3462 - b _081D354C -_081D3462: - b _081D3484 - .align 2, 0 -_081D3464: .4byte gUnknown_30031E4 -_081D3468: - bl sub_081D33B4 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_081D359C - ldr r1, _081D3490 - movs r0, #3 - strb r0, [r1, #1] -_081D347C: - ldr r0, _081D3494 - ldrb r0, [r0] - cmp r0, #2 - bne _081D3498 -_081D3484: - ldr r1, _081D3490 - strb r0, [r1, #4] - movs r0, #6 - strb r0, [r1, #1] - b _081D354C - .align 2, 0 -_081D3490: .4byte gUnknown_30012C0 -_081D3494: .4byte gUnknown_30031E4 -_081D3498: - ldr r2, _081D34D8 - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - ldr r1, _081D34DC - ldr r0, [r1] - adds r3, r0, #1 - str r3, [r1] - ldr r1, _081D34E0 - ldrb r0, [r1] - cmp r0, #0 - bne _081D34BC - cmp r3, #0x3c - bls _081D34BC - movs r0, #1 - strb r0, [r1, #4] - movs r0, #6 - strb r0, [r1, #1] -_081D34BC: - ldr r4, _081D34E0 - ldrb r0, [r4, #2] - cmp r0, #2 - beq _081D354C - ldrb r0, [r4] - cmp r0, #0 - beq _081D34E4 - ldrh r0, [r2] - cmp r0, #2 - bls _081D34E4 - bl sub_081D37BC - movs r0, #2 - b _081D354A - .align 2, 0 -_081D34D8: .4byte gUnknown_30012DE -_081D34DC: .4byte gUnknown_30012E0 -_081D34E0: .4byte gUnknown_30012C0 -_081D34E4: - bl sub_081D37BC - ldr r1, _081D34F0 - movs r0, #2 - strb r0, [r1, #2] - b _081D354C - .align 2, 0 -_081D34F0: .4byte gUnknown_30012C0 -_081D34F4: - bl sub_081D333C - ldr r1, _081D3500 - movs r0, #5 - strb r0, [r1, #1] - b _081D354C - .align 2, 0 -_081D3500: .4byte gUnknown_30012C0 -_081D3504: - ldr r0, _081D3534 - ldrb r0, [r0] - cmp r0, #1 - bne _081D3518 - ldr r0, _081D3538 - ldrh r0, [r0] - cmp r0, #2 - bls _081D3518 - bl sub_081D37BC -_081D3518: - ldr r1, _081D3538 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x3c - bls _081D354C - ldr r0, _081D3534 - movs r1, #1 - strb r1, [r0, #4] - movs r1, #6 - strb r1, [r0, #1] - b _081D354C - .align 2, 0 -_081D3534: .4byte gUnknown_30012C0 -_081D3538: .4byte gUnknown_30012DE -_081D353C: - ldr r4, _081D3564 - ldrb r0, [r4, #2] - cmp r0, #0 - beq _081D354C - bl sub_081D32FC - movs r0, #0 -_081D354A: - strb r0, [r4, #2] -_081D354C: - ldr r2, _081D3564 - ldrb r0, [r2, #2] - ldrb r1, [r2, #4] - lsls r1, r1, #2 - orrs r0, r1 - ldrb r1, [r2, #3] - lsls r1, r1, #4 - orrs r0, r1 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_081D3564: .4byte gUnknown_30012C0 - thumb_func_end sub_081D33F0 - - thumb_func_start sub_081D3568 -sub_081D3568: @ 0x081D3568 - push {lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r0, _081D3584 - ldr r0, [r0] - movs r1, #0xc - ands r0, r1 - cmp r0, #8 - bne _081D358C - cmp r2, #0 - beq _081D358C - ldr r1, _081D3588 - movs r0, #1 - b _081D3590 - .align 2, 0 -_081D3584: .4byte 0x04000128 -_081D3588: .4byte gUnknown_30012C0 -_081D358C: - ldr r1, _081D3598 - movs r0, #0 -_081D3590: - strb r0, [r1] - pop {r1} - bx r1 - .align 2, 0 -_081D3598: .4byte gUnknown_30012C0 - thumb_func_end sub_081D3568 - - thumb_func_start sub_081D359C -sub_081D359C: @ 0x081D359C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r3, _081D35C8 - ldrb r0, [r3] - cmp r0, #0 - beq _081D35D4 - ldr r2, _081D35CC - ldrh r0, [r2] - movs r1, #1 - orrs r0, r1 - strh r0, [r2] - str r5, [r3, #8] - ldr r0, _081D35D0 - str r4, [r0] - lsrs r0, r4, #2 - adds r0, #1 - str r0, [r3, #0x10] - bl sub_081D35E8 - b _081D35DC - .align 2, 0 -_081D35C8: .4byte gUnknown_30012C0 -_081D35CC: .4byte 0x04000128 -_081D35D0: .4byte 0x04000120 -_081D35D4: - ldr r1, _081D35E4 - ldrh r0, [r1] - strh r0, [r1] - str r2, [r3, #8] -_081D35DC: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081D35E4: .4byte 0x04000128 - thumb_func_end sub_081D359C - - thumb_func_start sub_081D35E8 -sub_081D35E8: @ 0x081D35E8 - ldr r1, _081D360C - ldr r2, _081D3610 - adds r0, r2, #0 - strh r0, [r1] - ldr r0, _081D3614 - movs r2, #0x40 - strh r2, [r0] - ldr r3, _081D3618 - movs r0, #0 - strh r0, [r3] - adds r1, #0xf4 - ldrh r0, [r1] - orrs r0, r2 - strh r0, [r1] - movs r0, #1 - strh r0, [r3] - bx lr - .align 2, 0 -_081D360C: .4byte 0x0400010C -_081D3610: .4byte 0x0000FDA7 -_081D3614: .4byte 0x0400010E -_081D3618: .4byte 0x04000208 - thumb_func_end sub_081D35E8 - - thumb_func_start sub_081D361C -sub_081D361C: @ 0x081D361C - push {lr} - bl sub_081D37CC - bl sub_081D37BC - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081D361C - - thumb_func_start sub_081D362C -sub_081D362C: @ 0x081D362C - push {r4, r5, r6, lr} - sub sp, #8 - ldr r2, _081D3644 - ldrb r0, [r2, #1] - adds r3, r2, #0 - cmp r0, #3 - beq _081D36B4 - cmp r0, #3 - bgt _081D3648 - cmp r0, #1 - beq _081D3650 - b _081D37AA - .align 2, 0 -_081D3644: .4byte gUnknown_30012C0 -_081D3648: - cmp r0, #5 - bne _081D364E - b _081D377C -_081D364E: - b _081D37AA -_081D3650: - ldr r1, _081D3680 - ldr r2, _081D3684 - adds r0, r2, #0 - strh r0, [r1] - ldr r0, _081D3688 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, #4] - movs r1, #0 - movs r2, #0 - movs r4, #0 - ldr r6, _081D3684 - ldr r5, _081D368C -_081D366C: - lsls r0, r1, #1 - add r0, sp - ldrh r0, [r0] - cmp r0, r6 - bne _081D3690 - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - b _081D369A - .align 2, 0 -_081D3680: .4byte 0x0400012A -_081D3684: .4byte 0x0000CCD0 -_081D3688: .4byte 0x04000120 -_081D368C: .4byte 0x0000FFFF -_081D3690: - cmp r0, r5 - beq _081D369A - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_081D369A: - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #3 - bls _081D366C - cmp r2, #2 - beq _081D36AA - b _081D37AA -_081D36AA: - cmp r4, #0 - beq _081D36B0 - b _081D37AA -_081D36B0: - strb r2, [r3, #1] - b _081D37AA -_081D36B4: - ldr r0, _081D36F0 - ldr r4, [r0] - ldr r0, [r2, #0xc] - cmp r0, #0 - bne _081D36CA - ldrb r0, [r2] - cmp r0, #0 - bne _081D36CA - lsrs r0, r4, #2 - adds r0, #1 - str r0, [r2, #0x10] -_081D36CA: - ldrb r0, [r3] - cmp r0, #1 - bne _081D3700 - ldr r1, [r3, #0xc] - ldr r0, [r3, #0x10] - cmp r1, r0 - bge _081D36F4 - ldr r2, _081D36F0 - ldr r0, [r3, #8] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r2] - ldr r0, [r3, #0x14] - ldr r1, [r1] - adds r0, r0, r1 - str r0, [r3, #0x14] - b _081D373A - .align 2, 0 -_081D36F0: .4byte 0x04000120 -_081D36F4: - ldr r1, _081D36FC - ldr r0, [r3, #0x14] - b _081D3738 - .align 2, 0 -_081D36FC: .4byte 0x04000120 -_081D3700: - ldr r1, [r3, #0xc] - cmp r1, #0 - ble _081D3720 - ldr r0, [r3, #0x10] - adds r0, #1 - cmp r1, r0 - bge _081D3720 - ldr r0, [r3, #8] - lsls r1, r1, #2 - adds r1, r1, r0 - subs r1, #4 - str r4, [r1] - ldr r0, [r3, #0x14] - adds r0, r0, r4 - str r0, [r3, #0x14] - b _081D3734 -_081D3720: - ldr r0, [r3, #0xc] - cmp r0, #0 - beq _081D3734 - ldr r0, [r3, #0x14] - cmp r0, r4 - bne _081D3730 - movs r0, #1 - b _081D3732 -_081D3730: - movs r0, #2 -_081D3732: - strb r0, [r3, #3] -_081D3734: - ldr r1, _081D375C - movs r0, #0 -_081D3738: - str r0, [r1] -_081D373A: - ldr r1, [r3, #0xc] - adds r1, #1 - str r1, [r3, #0xc] - ldr r0, [r3, #0x10] - adds r0, #2 - cmp r1, r0 - bge _081D376A - ldrb r0, [r3] - cmp r0, #0 - beq _081D3764 - ldr r0, _081D3760 - ldrh r1, [r0] - movs r2, #0x80 - orrs r1, r2 - strh r1, [r0] - b _081D37AA - .align 2, 0 -_081D375C: .4byte gUnknown_30012E0 -_081D3760: .4byte 0x0400010E -_081D3764: - bl sub_081D37BC - b _081D37AA -_081D376A: - movs r0, #0 - movs r1, #4 - strb r1, [r3, #1] - ldr r1, _081D3778 - strh r0, [r1] - b _081D37AA - .align 2, 0 -_081D3778: .4byte gUnknown_30012DE -_081D377C: - ldrb r3, [r2] - cmp r3, #0 - bne _081D3788 - ldr r1, _081D37B4 - ldrb r0, [r2, #3] - strh r0, [r1] -_081D3788: - ldr r0, _081D37B8 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, #4] - mov r0, sp - ldrh r1, [r0, #2] - subs r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bhi _081D37AA - cmp r3, #1 - bne _081D37A6 - strb r1, [r2, #3] -_081D37A6: - movs r0, #6 - strb r0, [r2, #1] -_081D37AA: - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081D37B4: .4byte 0x0400012A -_081D37B8: .4byte 0x04000120 - thumb_func_end sub_081D362C - - thumb_func_start sub_081D37BC -sub_081D37BC: @ 0x081D37BC - ldr r0, _081D37C8 - ldrh r1, [r0] - movs r2, #0x80 - orrs r1, r2 - strh r1, [r0] - bx lr - .align 2, 0 -_081D37C8: .4byte 0x04000128 - thumb_func_end sub_081D37BC - - thumb_func_start sub_081D37CC -sub_081D37CC: @ 0x081D37CC - ldr r2, _081D37E0 - ldrh r1, [r2] - ldr r0, _081D37E4 - ands r0, r1 - strh r0, [r2] - ldr r1, _081D37E8 - ldr r2, _081D37EC - adds r0, r2, #0 - strh r0, [r1] - bx lr - .align 2, 0 -_081D37E0: .4byte 0x0400010E -_081D37E4: .4byte 0x0000FF7F -_081D37E8: .4byte 0x0400010C -_081D37EC: .4byte 0x0000FDA7 - thumb_func_end sub_081D37CC - - thumb_func_start sub_081D37F0 -sub_081D37F0: @ 0x081D37F0 - push {r4, lr} - ldr r0, _081D3810 - ldrh r0, [r0] - ldr r2, _081D3814 - adds r1, r2, #0 - eors r1, r0 - ldr r4, _081D3818 - ldr r3, _081D381C - ldrh r2, [r3] - adds r0, r1, #0 - bics r0, r2 - strh r0, [r4] - strh r1, [r3] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D3810: .4byte 0x04000130 -_081D3814: .4byte 0x000003FF -_081D3818: .4byte gUnknown_30012DA -_081D381C: .4byte gUnknown_30012D8 - thumb_func_end sub_081D37F0 - - thumb_func_start sub_081D3820 -sub_081D3820: @ 0x081D3820 - ldr r1, _081D384C - ldr r0, _081D3850 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _081D3854 - ldr r0, _081D3858 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _081D385C - ldr r0, _081D3860 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _081D3864 - ldr r0, _081D3868 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _081D386C - ldr r0, _081D3870 - ldrh r0, [r0] - strh r0, [r1] - bx lr - .align 2, 0 -_081D384C: .4byte gUnknown_30012E4 -_081D3850: .4byte 0x04000208 -_081D3854: .4byte gUnknown_30012E6 -_081D3858: .4byte 0x04000200 -_081D385C: .4byte gUnknown_30012E8 -_081D3860: .4byte 0x0400010E -_081D3864: .4byte gUnknown_30012EA -_081D3868: .4byte 0x04000128 -_081D386C: .4byte gUnknown_30012EC -_081D3870: .4byte 0x04000134 - thumb_func_end sub_081D3820 - - thumb_func_start sub_081D3874 -sub_081D3874: @ 0x081D3874 - ldr r1, _081D38A0 - ldr r0, _081D38A4 - ldrh r0, [r0] - strh r0, [r1] - subs r1, #8 - ldr r0, _081D38A8 - ldrh r0, [r0] - strh r0, [r1] - subs r1, #0xf2 - ldr r0, _081D38AC - ldrh r0, [r0] - strh r0, [r1] - adds r1, #0x1a - ldr r0, _081D38B0 - ldrh r0, [r0] - strh r0, [r1] - adds r1, #0xc - ldr r0, _081D38B4 - ldrh r0, [r0] - strh r0, [r1] - bx lr - .align 2, 0 -_081D38A0: .4byte 0x04000208 -_081D38A4: .4byte gUnknown_30012E4 -_081D38A8: .4byte gUnknown_30012E6 -_081D38AC: .4byte gUnknown_30012E8 -_081D38B0: .4byte gUnknown_30012EA -_081D38B4: .4byte gUnknown_30012EC - thumb_func_end sub_081D3874 - - thumb_func_start sub_081D38B8 -sub_081D38B8: @ 0x081D38B8 - push {lr} - sub sp, #4 - movs r0, #0 - str r0, [sp] - ldr r1, _081D38D0 - ldr r2, _081D38D4 - mov r0, sp - bl CpuSet - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_081D38D0: .4byte gUnknown_30012C0 -_081D38D4: .4byte 0x05000006 - thumb_func_end sub_081D38B8 - - thumb_func_start GetMewEventObjectId -GetMewEventObjectId: @ 0x081D38D8 - push {lr} - sub sp, #4 - ldr r0, _081D38F8 - ldr r0, [r0] - ldrb r1, [r0, #5] - ldrb r2, [r0, #4] - movs r0, #1 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - mov r0, sp - ldrb r0, [r0] - add sp, #4 - pop {r1} - bx r1 - .align 2, 0 -_081D38F8: .4byte gUnknown_3005AEC - thumb_func_end GetMewEventObjectId - - thumb_func_start GetMewMoveDirection -GetMewMoveDirection: @ 0x081D38FC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - bl GetMewEventObjectId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r2, _081D39A0 - adds r5, r1, r2 - ldr r4, _081D39A4 - ldr r3, _081D39A8 - ldrb r1, [r3, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0, #0x14] - ldrh r1, [r5, #0x10] - subs r0, r0, r1 - strh r0, [r4] - ldr r4, _081D39AC - ldrb r1, [r3, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0, #0x16] - ldrh r1, [r5, #0x12] - subs r0, r0, r1 - strh r0, [r4] - movs r0, #0 - mov r8, r0 - ldr r2, _081D39B0 - movs r1, #0 -_081D394A: - mov r3, r8 - adds r0, r3, r2 - strb r1, [r0] - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - cmp r0, #3 - bls _081D394A - ldr r2, _081D39A0 - ldr r0, _081D39A8 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, r0, r2 - movs r4, #0x14 - ldrsh r1, [r2, r4] - movs r6, #0x10 - ldrsh r0, [r2, r6] - cmp r1, r0 - bne _081D3984 - movs r0, #0x16 - ldrsh r1, [r2, r0] - movs r3, #0x12 - ldrsh r0, [r2, r3] - cmp r1, r0 - beq _081D39D6 -_081D3984: - ldr r0, _081D39B4 - bl VarGet - lsls r0, r0, #0x10 - movs r1, #0xe0 - lsls r1, r1, #0xb - ands r1, r0 - cmp r1, #0 - bne _081D39B8 - ldrb r1, [r5, #1] - movs r0, #0x21 - rsbs r0, r0, #0 - ands r0, r1 - b _081D39BE - .align 2, 0 -_081D39A0: .4byte gUnknown_2036FF0 -_081D39A4: .4byte gUnknown_30012F0 -_081D39A8: .4byte gUnknown_2037230 -_081D39AC: .4byte gUnknown_30012F2 -_081D39B0: .4byte gUnknown_30012F4 -_081D39B4: .4byte 0x0000403A -_081D39B8: - ldrb r0, [r5, #1] - movs r1, #0x20 - orrs r0, r1 -_081D39BE: - strb r0, [r5, #1] - ldr r0, _081D39DC - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #9 - bl __umodsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _081D39E0 -_081D39D6: - movs r0, #0 - b _081D3E96 - .align 2, 0 -_081D39DC: .4byte 0x0000403A -_081D39E0: - movs r4, #0 - mov r8, r4 - ldr r6, _081D3A30 - mov sl, r6 -_081D39E8: - ldr r3, _081D3A34 - ldrb r1, [r3, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - mov r1, sl - adds r4, r0, r1 - mov r2, r8 - lsls r1, r2, #2 - ldr r6, _081D3A38 - adds r0, r1, r6 - movs r6, #0x14 - ldrsh r2, [r4, r6] - movs r6, #0 - ldrsh r0, [r0, r6] - ldr r6, _081D3A30 - mov sb, r6 - mov ip, r3 - adds r7, r1, #0 - cmp r2, r0 - beq _081D3A14 - b _081D3B1E -_081D3A14: - movs r3, #0 - ldr r1, _081D3A3C - adds r0, r7, r1 - movs r2, #0x16 - ldrsh r1, [r4, r2] - movs r4, #0 - ldrsh r2, [r0, r4] - cmp r1, r2 - bge _081D3A40 - movs r6, #0x12 - ldrsh r0, [r5, r6] - cmp r0, r2 - bgt _081D3A4A - b _081D3B1E - .align 2, 0 -_081D3A30: .4byte gUnknown_2036FF0 -_081D3A34: .4byte gUnknown_2037230 -_081D3A38: .4byte gUnknown_85FAF28 -_081D3A3C: .4byte gUnknown_85FAF2A -_081D3A40: - movs r1, #0x12 - ldrsh r0, [r5, r1] - cmp r0, r2 - blt _081D3A4A - movs r3, #1 -_081D3A4A: - cmp r3, #0 - bne _081D3B1E - ldr r0, _081D3A8C - movs r2, #0 - ldrsh r0, [r0, r2] - cmp r0, #0 - ble _081D3A90 - movs r3, #0x10 - ldrsh r2, [r5, r3] - adds r2, #1 - mov r4, ip - ldrb r1, [r4, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sb - movs r6, #0x14 - ldrsh r0, [r0, r6] - cmp r2, r0 - bne _081D3AC6 - ldrh r0, [r5, #0x10] - adds r0, #1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x12 - ldrsh r1, [r5, r2] - bl CanMewWalkToCoords - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D3AC6 -_081D3A88: - movs r0, #4 - b _081D3E96 - .align 2, 0 -_081D3A8C: .4byte gUnknown_30012F0 -_081D3A90: - cmp r0, #0 - bge _081D3AC6 - movs r3, #0x10 - ldrsh r2, [r5, r3] - subs r2, #1 - mov r4, ip - ldrb r1, [r4, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sb - movs r6, #0x14 - ldrsh r0, [r0, r6] - cmp r2, r0 - bne _081D3AC6 - ldrh r0, [r5, #0x10] - subs r0, #1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x12 - ldrsh r1, [r5, r2] - bl CanMewWalkToCoords - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D3AC6 - b _081D3C2A -_081D3AC6: - ldr r0, _081D3B00 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sl - movs r3, #0x10 - ldrsh r1, [r5, r3] - movs r4, #0x14 - ldrsh r0, [r0, r4] - cmp r1, r0 - bne _081D3B1E - ldr r0, _081D3B04 - movs r6, #0 - ldrsh r0, [r0, r6] - cmp r0, #0 - ble _081D3B08 - adds r0, r1, #0 - ldrh r1, [r5, #0x12] - subs r1, #1 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl CanMewWalkToCoords - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D3B1E -_081D3AFC: - movs r0, #2 - b _081D3E96 - .align 2, 0 -_081D3B00: .4byte gUnknown_2037230 -_081D3B04: .4byte gUnknown_30012F2 -_081D3B08: - movs r2, #0x10 - ldrsh r0, [r5, r2] - ldrh r1, [r5, #0x12] - adds r1, #1 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl CanMewWalkToCoords - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081D3BB8 -_081D3B1E: - ldr r2, _081D3B60 - ldrb r1, [r2, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - mov r3, sl - adds r4, r0, r3 - ldr r6, _081D3B64 - ldr r1, _081D3B68 - adds r0, r7, r1 - movs r3, #0x16 - ldrsh r1, [r4, r3] - movs r3, #0 - ldrsh r0, [r0, r3] - ldr r3, _081D3B6C - mov sb, r3 - mov ip, r2 - cmp r1, r0 - beq _081D3B46 - b _081D3C50 -_081D3B46: - movs r3, #0 - adds r0, r7, r6 - movs r6, #0x14 - ldrsh r1, [r4, r6] - movs r4, #0 - ldrsh r2, [r0, r4] - cmp r1, r2 - bge _081D3B70 - movs r6, #0x10 - ldrsh r0, [r5, r6] - cmp r0, r2 - bgt _081D3B7A - b _081D3C50 - .align 2, 0 -_081D3B60: .4byte gUnknown_2037230 -_081D3B64: .4byte gUnknown_85FAF28 -_081D3B68: .4byte gUnknown_85FAF2A -_081D3B6C: .4byte gUnknown_2036FF0 -_081D3B70: - movs r1, #0x10 - ldrsh r0, [r5, r1] - cmp r0, r2 - blt _081D3B7A - movs r3, #1 -_081D3B7A: - cmp r3, #0 - bne _081D3C50 - ldr r0, _081D3BBC - movs r2, #0 - ldrsh r0, [r0, r2] - cmp r0, #0 - ble _081D3BC0 - movs r3, #0x12 - ldrsh r2, [r5, r3] - adds r2, #1 - mov r4, ip - ldrb r1, [r4, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sb - movs r6, #0x16 - ldrsh r0, [r0, r6] - cmp r2, r0 - bne _081D3BF6 - movs r1, #0x10 - ldrsh r0, [r5, r1] - ldrh r1, [r5, #0x12] - adds r1, #1 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl CanMewWalkToCoords - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D3BF6 -_081D3BB8: - movs r0, #1 - b _081D3E96 - .align 2, 0 -_081D3BBC: .4byte gUnknown_30012F2 -_081D3BC0: - cmp r0, #0 - bge _081D3BF6 - movs r3, #0x12 - ldrsh r2, [r5, r3] - subs r2, #1 - mov r4, ip - ldrb r1, [r4, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sb - movs r6, #0x16 - ldrsh r0, [r0, r6] - cmp r2, r0 - bne _081D3BF6 - movs r1, #0x10 - ldrsh r0, [r5, r1] - ldrh r1, [r5, #0x12] - subs r1, #1 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl CanMewWalkToCoords - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D3BF6 - b _081D3AFC -_081D3BF6: - ldr r0, _081D3C30 - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, sl - movs r2, #0x12 - ldrsh r1, [r5, r2] - movs r3, #0x16 - ldrsh r0, [r0, r3] - cmp r1, r0 - bne _081D3C50 - ldr r0, _081D3C34 - movs r4, #0 - ldrsh r0, [r0, r4] - cmp r0, #0 - ble _081D3C38 - ldrh r0, [r5, #0x10] - subs r0, #1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - bl CanMewWalkToCoords - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D3C50 -_081D3C2A: - movs r0, #3 - b _081D3E96 - .align 2, 0 -_081D3C30: .4byte gUnknown_2037230 -_081D3C34: .4byte gUnknown_30012F0 -_081D3C38: - ldrh r0, [r5, #0x10] - adds r0, #1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x12 - ldrsh r1, [r5, r2] - bl CanMewWalkToCoords - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D3C50 - b _081D3A88 -_081D3C50: - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - cmp r0, #3 - bhi _081D3C60 - b _081D39E8 -_081D3C60: - adds r0, r5, #0 - movs r1, #0 - bl sub_081D4294 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D3C9C - adds r0, r5, #0 - movs r1, #1 - bl sub_081D42D8 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D3C84 - movs r0, #2 - bl sub_081D43A4 - b _081D3E92 -_081D3C84: - adds r0, r5, #0 - movs r1, #1 - bl sub_081D4360 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081D3C94 - b _081D3AFC -_081D3C94: - movs r0, #2 - bl sub_081D43A4 - b _081D3E92 -_081D3C9C: - adds r0, r5, #0 - movs r1, #0 - bl sub_081D431C - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D3CD8 - adds r0, r5, #0 - movs r1, #1 - bl sub_081D42D8 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D3CC0 - movs r0, #2 - bl sub_081D43A4 - b _081D3E92 -_081D3CC0: - adds r0, r5, #0 - movs r1, #1 - bl sub_081D4360 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081D3CD0 - b _081D3BB8 -_081D3CD0: - movs r0, #2 - bl sub_081D43A4 - b _081D3E92 -_081D3CD8: - adds r0, r5, #0 - movs r1, #0 - bl sub_081D42D8 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D3D14 - adds r0, r5, #0 - movs r1, #1 - bl sub_081D4294 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D3CFC - movs r0, #2 - bl sub_081D43A4 - b _081D3E92 -_081D3CFC: - adds r0, r5, #0 - movs r1, #1 - bl sub_081D431C - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081D3D0C - b _081D3A88 -_081D3D0C: - movs r0, #2 - bl sub_081D43A4 - b _081D3E92 -_081D3D14: - adds r0, r5, #0 - movs r1, #0 - bl sub_081D4360 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D3D50 - adds r0, r5, #0 - movs r1, #1 - bl sub_081D4294 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D3D38 - movs r0, #2 - bl sub_081D43A4 - b _081D3E92 -_081D3D38: - adds r0, r5, #0 - movs r1, #1 - bl sub_081D431C - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081D3D48 - b _081D3C2A -_081D3D48: - movs r0, #2 - bl sub_081D43A4 - b _081D3E92 -_081D3D50: - ldr r0, _081D3EA4 - movs r3, #0 - ldrsh r0, [r0, r3] - cmp r0, #0 - bne _081D3DEE - ldr r2, _081D3EA8 - ldr r0, _081D3EAC - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r4, #0x12 - ldrsh r1, [r0, r4] - ldrh r2, [r5, #0x12] - movs r6, #0x12 - ldrsh r0, [r5, r6] - cmp r1, r0 - ble _081D3D8C - movs r1, #0x10 - ldrsh r0, [r5, r1] - subs r1, r2, #1 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl CanMewWalkToCoords - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D3D8C - b _081D3AFC -_081D3D8C: - ldr r2, _081D3EA8 - ldr r0, _081D3EAC - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r2, #0x12 - ldrsh r1, [r0, r2] - ldrh r2, [r5, #0x12] - movs r3, #0x12 - ldrsh r0, [r5, r3] - cmp r1, r0 - bge _081D3DBE - movs r4, #0x10 - ldrsh r0, [r5, r4] - adds r1, r2, #1 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl CanMewWalkToCoords - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D3DBE - b _081D3BB8 -_081D3DBE: - movs r6, #0x10 - ldrsh r0, [r5, r6] - ldrh r1, [r5, #0x12] - subs r1, #1 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl CanMewWalkToCoords - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D3DD6 - b _081D3AFC -_081D3DD6: - movs r1, #0x10 - ldrsh r0, [r5, r1] - ldrh r1, [r5, #0x12] - adds r1, #1 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl CanMewWalkToCoords - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D3DEE - b _081D3BB8 -_081D3DEE: - ldr r0, _081D3EB0 - movs r2, #0 - ldrsh r0, [r0, r2] - cmp r0, #0 - bne _081D3E8C - ldr r2, _081D3EA8 - ldr r0, _081D3EAC - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r3, #0x10 - ldrsh r1, [r0, r3] - ldrh r2, [r5, #0x10] - movs r4, #0x10 - ldrsh r0, [r5, r4] - cmp r1, r0 - ble _081D3E2A - subs r0, r2, #1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r6, #0x12 - ldrsh r1, [r5, r6] - bl CanMewWalkToCoords - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D3E2A - b _081D3C2A -_081D3E2A: - ldr r2, _081D3EA8 - ldr r0, _081D3EAC - ldrb r1, [r0, #5] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r2, #0x10 - ldrsh r1, [r0, r2] - ldrh r2, [r5, #0x10] - movs r3, #0x10 - ldrsh r0, [r5, r3] - cmp r1, r0 - bge _081D3E5C - adds r0, r2, #1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r4, #0x12 - ldrsh r1, [r5, r4] - bl CanMewWalkToCoords - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D3E5C - b _081D3A88 -_081D3E5C: - ldrh r0, [r5, #0x10] - adds r0, #1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r6, #0x12 - ldrsh r1, [r5, r6] - bl CanMewWalkToCoords - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D3E74 - b _081D3A88 -_081D3E74: - ldrh r0, [r5, #0x10] - subs r0, #1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x12 - ldrsh r1, [r5, r2] - bl CanMewWalkToCoords - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D3E8C - b _081D3C2A -_081D3E8C: - movs r0, #0 - bl sub_081D3F10 -_081D3E92: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_081D3E96: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081D3EA4: .4byte gUnknown_30012F2 -_081D3EA8: .4byte gUnknown_2036FF0 -_081D3EAC: .4byte gUnknown_2037230 -_081D3EB0: .4byte gUnknown_30012F0 - thumb_func_end GetMewMoveDirection - - thumb_func_start CanMewWalkToCoords -CanMewWalkToCoords: @ 0x081D3EB4 - push {r4, lr} - lsls r0, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - ldr r3, _081D3EE8 - ldr r1, _081D3EEC - ldrb r2, [r1, #5] - lsls r1, r2, #3 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r2, r1, r3 - movs r3, #0x10 - ldrsh r1, [r2, r3] - lsrs r3, r0, #0x10 - asrs r0, r0, #0x10 - cmp r1, r0 - bne _081D3EF0 - movs r0, #0x12 - ldrsh r1, [r2, r0] - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - cmp r1, r0 - bne _081D3EF0 - movs r0, #0 - b _081D3F08 - .align 2, 0 -_081D3EE8: .4byte gUnknown_2036FF0 -_081D3EEC: .4byte gUnknown_2037230 -_081D3EF0: - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - lsls r1, r4, #0x10 - asrs r1, r1, #0x10 - bl MapGridGetMetatileBehaviorAt - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl MetatileBehavior_IsPokeGrass - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 -_081D3F08: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end CanMewWalkToCoords - - thumb_func_start sub_081D3F10 -sub_081D3F10: @ 0x081D3F10 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r5, #0 - bl GetMewEventObjectId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _081D3FEC - adds r4, r1, r0 - movs r1, #0 - ldr r3, _081D3FF0 - movs r2, #0 -_081D3F30: - adds r0, r1, r3 - strb r2, [r0] - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #3 - bls _081D3F30 - movs r1, #0x10 - ldrsh r0, [r4, r1] - ldrh r1, [r4, #0x12] - subs r1, #1 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl CanMewWalkToCoords - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081D3F68 - cmp r6, #2 - beq _081D3F68 - ldr r0, _081D3FF0 - adds r0, r5, r0 - movs r1, #2 - strb r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_081D3F68: - ldrh r0, [r4, #0x10] - adds r0, #1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x12 - ldrsh r1, [r4, r2] - bl CanMewWalkToCoords - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081D3F92 - cmp r6, #4 - beq _081D3F92 - ldr r0, _081D3FF0 - adds r0, r5, r0 - movs r1, #4 - strb r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_081D3F92: - movs r1, #0x10 - ldrsh r0, [r4, r1] - ldrh r1, [r4, #0x12] - adds r1, #1 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl CanMewWalkToCoords - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #1 - bne _081D3FBA - cmp r6, #1 - beq _081D3FBA - ldr r0, _081D3FF0 - adds r0, r5, r0 - strb r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_081D3FBA: - ldrh r0, [r4, #0x10] - subs r0, #1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x12 - ldrsh r1, [r4, r2] - bl CanMewWalkToCoords - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081D3FE4 - cmp r6, #3 - beq _081D3FE4 - ldr r0, _081D3FF0 - adds r0, r5, r0 - movs r1, #3 - strb r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_081D3FE4: - cmp r5, #1 - bhi _081D3FF4 - ldr r0, _081D3FF0 - b _081D4008 - .align 2, 0 -_081D3FEC: .4byte gUnknown_2036FF0 -_081D3FF0: .4byte gUnknown_30012F4 -_081D3FF4: - ldr r4, _081D4010 - ldr r0, _081D4014 - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r5, #0 - bl __modsi3 - adds r0, r0, r4 -_081D4008: - ldrb r0, [r0] - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_081D4010: .4byte gUnknown_30012F4 -_081D4014: .4byte 0x0000403A - thumb_func_end sub_081D3F10 - - thumb_func_start UpdateFarawayIslandStepCounter -UpdateFarawayIslandStepCounter: @ 0x081D4018 - push {r4, lr} - ldr r4, _081D4048 - adds r0, r4, #0 - bl VarGet - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, _081D404C - ldr r0, [r0] - ldrh r1, [r0, #4] - ldr r0, _081D4050 - cmp r1, r0 - bne _081D4060 - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, _081D4054 - cmp r2, r0 - bls _081D4058 - adds r0, r4, #0 - movs r1, #0 - bl VarSet - b _081D4060 - .align 2, 0 -_081D4048: .4byte 0x0000403A -_081D404C: .4byte gUnknown_3005AEC -_081D4050: .4byte 0x0000391A -_081D4054: .4byte 0x0000270E -_081D4058: - adds r0, r4, #0 - adds r1, r2, #0 - bl VarSet -_081D4060: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end UpdateFarawayIslandStepCounter - - thumb_func_start EventObjectIsFarawayIslandMew -EventObjectIsFarawayIslandMew: @ 0x081D4068 - push {lr} - adds r2, r0, #0 - ldr r0, _081D4084 - ldr r0, [r0] - ldrh r1, [r0, #4] - ldr r0, _081D4088 - cmp r1, r0 - bne _081D408C - ldrb r0, [r2, #5] - cmp r0, #0xe5 - bne _081D408C - movs r0, #1 - b _081D408E - .align 2, 0 -_081D4084: .4byte gUnknown_3005AEC -_081D4088: .4byte 0x0000391A -_081D408C: - movs r0, #0 -_081D408E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end EventObjectIsFarawayIslandMew - - thumb_func_start IsMewPlayingHideAndSeek -IsMewPlayingHideAndSeek: @ 0x081D4094 - push {lr} - ldr r0, _081D40C4 - ldr r0, [r0] - ldrh r1, [r0, #4] - ldr r0, _081D40C8 - cmp r1, r0 - bne _081D40D0 - movs r0, #0xe5 - lsls r0, r0, #1 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081D40D0 - ldr r0, _081D40CC - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _081D40D0 - movs r0, #1 - b _081D40D2 - .align 2, 0 -_081D40C4: .4byte gUnknown_3005AEC -_081D40C8: .4byte 0x0000391A -_081D40CC: .4byte 0x000002CE -_081D40D0: - movs r0, #0 -_081D40D2: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end IsMewPlayingHideAndSeek - - thumb_func_start sub_081D40D8 -sub_081D40D8: @ 0x081D40D8 - push {r4, lr} - ldr r4, _081D4100 - adds r0, r4, #0 - bl VarGet - lsls r0, r0, #0x10 - ldr r1, _081D4104 - cmp r0, r1 - beq _081D4108 - adds r0, r4, #0 - bl VarGet - lsls r0, r0, #0x10 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r1, r0 - cmp r1, #0 - bne _081D4108 - movs r0, #1 - b _081D410A - .align 2, 0 -_081D4100: .4byte 0x0000403A -_081D4104: .4byte 0xFFFF0000 -_081D4108: - movs r0, #0 -_081D410A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081D40D8 - - thumb_func_start sub_081D4110 -sub_081D4110: @ 0x081D4110 - push {r4, r5, r6, lr} - sub sp, #4 - bl GetMewEventObjectId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _081D416C - adds r5, r1, r0 - ldrb r1, [r5, #1] - movs r0, #0x21 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r5, #1] - ldr r0, _081D4170 - ldrh r4, [r0] - cmp r4, #1 - bne _081D4178 - ldrb r0, [r5, #3] - movs r1, #4 - orrs r0, r1 - strb r0, [r5, #3] - ldr r3, _081D4174 - ldrb r1, [r5, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x42 - ldrb r2, [r0] - movs r1, #0x3f - ands r1, r2 - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r5, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r0, #0x43 - strb r4, [r0] - b _081D4244 - .align 2, 0 -_081D416C: .4byte gUnknown_2036FF0 -_081D4170: .4byte gUnknown_2037280 -_081D4174: .4byte gUnknown_20205AC -_081D4178: - ldr r0, _081D424C - ldr r1, _081D4250 - bl VarSet - ldrb r0, [r5, #3] - movs r1, #4 - orrs r0, r1 - strb r0, [r5, #3] - ldr r6, _081D4254 - ldrb r1, [r5, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x42 - ldrb r2, [r0] - movs r1, #0x3f - ands r1, r2 - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0] - ldr r0, _081D4258 - ldrh r0, [r0] - cmp r0, #2 - beq _081D41BA - ldrb r0, [r5, #4] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - adds r1, #0x43 - movs r0, #1 - strb r0, [r1] -_081D41BA: - ldr r4, _081D425C - adds r0, r4, #0 - bl LoadSpritePalette - ldrh r0, [r4, #4] - bl IndexOfSpritePaletteTag - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl UpdateSpritePaletteWithWeather - ldrh r1, [r5, #0x10] - mov r0, sp - strh r1, [r0] - ldrh r0, [r5, #0x12] - mov r4, sp - adds r4, #2 - strh r0, [r4] - mov r0, sp - adds r1, r4, #0 - movs r2, #8 - movs r3, #8 - bl sub_08092A50 - ldr r0, _081D4260 - ldr r0, [r0, #0x3c] - mov r1, sp - movs r2, #0 - ldrsh r1, [r1, r2] - movs r3, #0 - ldrsh r2, [r4, r3] - ldrb r4, [r5, #4] - lsls r3, r4, #4 - adds r3, r3, r4 - lsls r3, r3, #2 - adds r3, r3, r6 - adds r3, #0x43 - ldrb r3, [r3] - subs r3, #1 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - bl CreateSpriteAtEnd - ldr r1, _081D4264 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - beq _081D4244 - ldrb r0, [r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r6 - adds r3, r1, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r2, #2 - orrs r0, r2 - strb r0, [r3] - ldrb r2, [r1, #5] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - movs r2, #8 - orrs r0, r2 - strb r0, [r1, #5] - ldr r0, _081D4268 - str r0, [r1, #0x1c] -_081D4244: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081D424C: .4byte 0x0000403A -_081D4250: .4byte 0x0000FFFF -_081D4254: .4byte gUnknown_20205AC -_081D4258: .4byte gUnknown_2037294 -_081D425C: .4byte gUnknown_84E4E1C -_081D4260: .4byte gUnknown_84DDE4C -_081D4264: .4byte gUnknown_203CC1C -_081D4268: .4byte sub_08007140 - thumb_func_end sub_081D4110 - - thumb_func_start sub_081D426C -sub_081D426C: @ 0x081D426C - push {lr} - ldr r1, _081D428C - ldrb r0, [r1] - cmp r0, #0x40 - beq _081D4286 - adds r1, r0, #0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _081D4290 - adds r0, r0, r1 - bl DestroySprite -_081D4286: - pop {r0} - bx r0 - .align 2, 0 -_081D428C: .4byte gUnknown_203CC1C -_081D4290: .4byte gUnknown_20205AC - thumb_func_end sub_081D426C - - thumb_func_start sub_081D4294 -sub_081D4294: @ 0x081D4294 - push {r4, lr} - adds r2, r0, #0 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - ldr r0, _081D42C8 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - ble _081D42D0 - movs r1, #0x10 - ldrsh r0, [r2, r1] - ldrh r1, [r2, #0x12] - subs r1, #1 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl CanMewWalkToCoords - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D42D0 - ldr r0, _081D42CC - adds r0, r4, r0 - movs r1, #2 - strb r1, [r0] - movs r0, #1 - b _081D42D2 - .align 2, 0 -_081D42C8: .4byte gUnknown_30012F2 -_081D42CC: .4byte gUnknown_30012F4 -_081D42D0: - movs r0, #0 -_081D42D2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081D4294 - - thumb_func_start sub_081D42D8 -sub_081D42D8: @ 0x081D42D8 - push {r4, lr} - adds r2, r0, #0 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - ldr r0, _081D430C - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bge _081D4314 - ldrh r0, [r2, #0x10] - adds r0, #1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r3, #0x12 - ldrsh r1, [r2, r3] - bl CanMewWalkToCoords - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D4314 - ldr r0, _081D4310 - adds r0, r4, r0 - movs r1, #4 - strb r1, [r0] - movs r0, #1 - b _081D4316 - .align 2, 0 -_081D430C: .4byte gUnknown_30012F0 -_081D4310: .4byte gUnknown_30012F4 -_081D4314: - movs r0, #0 -_081D4316: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081D42D8 - - thumb_func_start sub_081D431C -sub_081D431C: @ 0x081D431C - push {r4, lr} - adds r2, r0, #0 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - ldr r0, _081D4350 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bge _081D4358 - movs r1, #0x10 - ldrsh r0, [r2, r1] - ldrh r1, [r2, #0x12] - adds r1, #1 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl CanMewWalkToCoords - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D4358 - ldr r0, _081D4354 - adds r0, r4, r0 - movs r1, #1 - strb r1, [r0] - movs r0, #1 - b _081D435A - .align 2, 0 -_081D4350: .4byte gUnknown_30012F2 -_081D4354: .4byte gUnknown_30012F4 -_081D4358: - movs r0, #0 -_081D435A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081D431C - - thumb_func_start sub_081D4360 -sub_081D4360: @ 0x081D4360 - push {r4, lr} - adds r2, r0, #0 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - ldr r0, _081D4394 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - ble _081D439C - ldrh r0, [r2, #0x10] - subs r0, #1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r3, #0x12 - ldrsh r1, [r2, r3] - bl CanMewWalkToCoords - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D439C - ldr r0, _081D4398 - adds r0, r4, r0 - movs r1, #3 - strb r1, [r0] - movs r0, #1 - b _081D439E - .align 2, 0 -_081D4394: .4byte gUnknown_30012F0 -_081D4398: .4byte gUnknown_30012F4 -_081D439C: - movs r0, #0 -_081D439E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081D4360 - - thumb_func_start sub_081D43A4 -sub_081D43A4: @ 0x081D43A4 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r5, _081D43C8 - ldr r0, _081D43CC - bl VarGet - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r4, #0 - bl __modsi3 - adds r0, r0, r5 - ldrb r0, [r0] - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081D43C8: .4byte gUnknown_30012F4 -_081D43CC: .4byte 0x0000403A - thumb_func_end sub_081D43A4 - - thumb_func_start sub_081D43D0 -sub_081D43D0: @ 0x081D43D0 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #4 - adds r5, r0, #0 - adds r6, r1, #0 - mov r8, r2 - mov r1, sp - ldr r4, _081D4424 - ldrh r0, [r4] - strh r0, [r1] - movs r0, #0 - strh r0, [r4] - ldr r1, _081D4428 - ldr r0, _081D442C - str r0, [r1, #4] - ldr r0, _081D4430 - str r0, [r1, #8] - bl sub_081D3820 - bl sub_081D38B8 - ldr r2, _081D4434 - ldrh r0, [r2] - movs r1, #4 - orrs r0, r1 - strh r0, [r2] - mov r0, sp - ldrh r0, [r0] - strh r0, [r4] - movs r0, #0 - strh r0, [r5] - str r6, [r5, #4] - mov r0, r8 - str r0, [r5, #8] - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081D4424: .4byte 0x04000208 -_081D4428: .4byte gUnknown_30027B0 -_081D442C: .4byte sub_081D362C -_081D4430: .4byte sub_081D361C -_081D4434: .4byte 0x04000200 - thumb_func_end sub_081D43D0 - - thumb_func_start sub_081D4438 -sub_081D4438: @ 0x081D4438 - push {r4, lr} - sub sp, #4 - mov r1, sp - ldr r4, _081D4464 - ldrh r0, [r4] - strh r0, [r1] - movs r0, #0 - strh r0, [r4] - bl sub_081D38B8 - bl sub_081D3874 - bl RestoreSerialTimer3IntrHandlers - mov r0, sp - ldrh r0, [r0] - strh r0, [r4] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D4464: .4byte 0x04000208 - thumb_func_end sub_081D4438 - - thumb_func_start sub_081D4468 -sub_081D4468: @ 0x081D4468 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #0 - ldr r1, [r4, #4] - ldr r2, [r4, #8] - movs r0, #1 - movs r3, #0 - bl sub_081D33F0 - adds r1, r0, #0 - strh r1, [r4] - movs r0, #0x13 - ands r0, r1 - cmp r0, #0x10 - bne _081D4488 - movs r5, #1 -_081D4488: - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _081D4492 - movs r5, #2 -_081D4492: - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _081D449C - movs r5, #3 -_081D449C: - ldr r1, _081D44AC - movs r0, #0 - strb r0, [r1] - adds r0, r5, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081D44AC: .4byte gUnknown_30031E4 - thumb_func_end sub_081D4468 - - thumb_func_start sub_081D44B0 -sub_081D44B0: @ 0x081D44B0 - push {lr} - ldr r0, _081D44D4 - movs r2, #0x80 - lsls r2, r2, #6 - movs r1, #0 - bl memset - ldr r1, _081D44D8 - ldr r2, _081D44DC - adds r0, r2, #0 - strh r0, [r1] - bl OpenLink - movs r0, #1 - bl sub_0800AE0C - pop {r0} - bx r0 - .align 2, 0 -_081D44D4: .4byte gUnknown_201C000 -_081D44D8: .4byte gUnknown_202267E -_081D44DC: .4byte 0x00005503 - thumb_func_end sub_081D44B0 - - thumb_func_start sub_081D44E0 -sub_081D44E0: @ 0x081D44E0 - push {lr} - sub sp, #0xc - mov r1, sp - ldr r2, _081D4524 - ldrh r0, [r2] - strh r0, [r1] - movs r0, #0 - strh r0, [r2] - ldr r0, _081D4528 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [sp, #4] - str r1, [sp, #8] - mov r0, sp - ldrh r0, [r0] - strh r0, [r2] - add r2, sp, #4 - ldrh r1, [r2] - ldr r0, _081D452C - cmp r1, r0 - bne _081D4538 - ldrh r1, [r2, #2] - ldr r0, _081D4530 - cmp r1, r0 - bne _081D4538 - ldrh r1, [r2, #4] - ldr r0, _081D4534 - cmp r1, r0 - bne _081D4538 - ldrh r0, [r2, #6] - cmp r0, r1 - bne _081D4538 - movs r0, #1 - b _081D453A - .align 2, 0 -_081D4524: .4byte 0x04000208 -_081D4528: .4byte gUnknown_3003214 -_081D452C: .4byte 0x0000B9A0 -_081D4530: .4byte 0x0000CCD0 -_081D4534: .4byte 0x0000FFFF -_081D4538: - movs r0, #0 -_081D453A: - add sp, #0xc - pop {r1} - bx r1 - thumb_func_end sub_081D44E0 - - thumb_func_start sub_081D4540 -sub_081D4540: @ 0x081D4540 - push {lr} - bl IsLinkMaster - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D455C - bl GetLinkPlayerCount_2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _081D455C - movs r0, #1 - b _081D455E -_081D455C: - movs r0, #0 -_081D455E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081D4540 - - thumb_func_start sub_081D4564 -sub_081D4564: @ 0x081D4564 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4] - subs r0, #3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bhi _081D4588 - bl sub_0800AE18 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D4588 - movs r0, #0 - strb r0, [r4] - movs r0, #3 - b _081D468E -_081D4588: - ldrb r0, [r4] - cmp r0, #5 - bls _081D4590 - b _081D468C -_081D4590: - lsls r0, r0, #2 - ldr r1, _081D459C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081D459C: .4byte _081D45A0 -_081D45A0: @ jump table - .4byte _081D45B8 @ case 0 - .4byte _081D45D4 @ case 1 - .4byte _081D45EC @ case 2 - .4byte _081D4620 @ case 3 - .4byte _081D466C @ case 4 - .4byte _081D4678 @ case 5 -_081D45B8: - bl IsLinkMaster - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D4608 - bl GetLinkPlayerCount_2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _081D4608 - movs r0, #1 - strb r0, [r4] - b _081D468C -_081D45D4: - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #5 - bls _081D468C - movs r0, #0 - strh r0, [r5] - movs r0, #2 - strb r0, [r4] - b _081D468C -_081D45EC: - bl GetLinkPlayerCount_2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _081D4608 - movs r0, #0x49 - bl sub_080A306C - bl CheckShouldAdvanceLinkState - movs r0, #0 - strh r0, [r5] - b _081D4666 -_081D4608: - ldr r0, _081D461C - ldrh r1, [r0, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081D468C - movs r0, #0 - strb r0, [r4] - movs r0, #1 - b _081D468E - .align 2, 0 -_081D461C: .4byte gUnknown_3002360 -_081D4620: - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x1e - bls _081D4636 - movs r0, #0 - strb r0, [r4] - movs r0, #5 - b _081D468E -_081D4636: - bl IsLinkConnectionEstablished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D468C - ldr r0, _081D465C - ldrb r0, [r0] - cmp r0, #0 - beq _081D4666 - bl IsLinkPlayerDataExchangeComplete - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D4660 - movs r0, #0 - strb r0, [r4] - movs r0, #2 - b _081D468E - .align 2, 0 -_081D465C: .4byte gUnknown_30031C4 -_081D4660: - movs r0, #4 - strb r0, [r4] - b _081D468C -_081D4666: - movs r0, #3 - strb r0, [r4] - b _081D468C -_081D466C: - movs r0, #0 - bl sub_0800A7B8 - movs r0, #5 - strb r0, [r4] - b _081D468C -_081D4678: - ldr r0, _081D4688 - ldrb r0, [r0] - cmp r0, #0 - bne _081D468C - strb r0, [r4] - movs r0, #4 - b _081D468E - .align 2, 0 -_081D4688: .4byte gUnknown_30031C4 -_081D468C: - movs r0, #0 -_081D468E: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_081D4564 - - thumb_func_start sub_081D4694 -sub_081D4694: @ 0x081D4694 - push {r4, lr} - ldr r0, _081D46D4 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _081D46D8 - adds r4, r4, r0 - movs r0, #0 - strb r0, [r4, #8] - strb r0, [r4, #9] - strb r0, [r4, #0xa] - strb r0, [r4, #0xb] - strb r0, [r4, #0xc] - strb r0, [r4, #0xd] - movs r1, #0 - strh r0, [r4] - strh r0, [r4, #2] - strh r0, [r4, #4] - strh r0, [r4, #6] - strb r1, [r4, #0xe] - movs r0, #0x40 - bl AllocZeroed - str r0, [r4, #0x10] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D46D4: .4byte sub_081D4704 -_081D46D8: .4byte gUnknown_3005B68 - thumb_func_end sub_081D4694 - - thumb_func_start sub_081D46DC -sub_081D46DC: @ 0x081D46DC - movs r1, #0 - strh r1, [r0] - bx lr - .align 2, 0 - thumb_func_end sub_081D46DC - - thumb_func_start sub_081D46E4 -sub_081D46E4: @ 0x081D46E4 - push {lr} - adds r2, r0, #0 - lsls r1, r1, #0x10 - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - lsls r0, r0, #0x10 - cmp r0, r1 - bhi _081D46FA - movs r0, #0 - b _081D4700 -_081D46FA: - movs r0, #0 - strh r0, [r2] - movs r0, #1 -_081D4700: - pop {r1} - bx r1 - thumb_func_end sub_081D46E4 - - thumb_func_start sub_081D4704 -sub_081D4704: @ 0x081D4704 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _081D4728 - adds r4, r0, r1 - ldrb r0, [r4, #8] - cmp r0, #0x1a - bls _081D471C - b _081D4B0A -_081D471C: - lsls r0, r0, #2 - ldr r1, _081D472C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081D4728: .4byte gUnknown_3005B68 -_081D472C: .4byte _081D4730 -_081D4730: @ jump table - .4byte _081D479C @ case 0 - .4byte _081D47B8 @ case 1 - .4byte _081D47C8 @ case 2 - .4byte _081D47DC @ case 3 - .4byte _081D47EC @ case 4 - .4byte _081D4818 @ case 5 - .4byte _081D4850 @ case 6 - .4byte _081D48CC @ case 7 - .4byte _081D48E8 @ case 8 - .4byte _081D4910 @ case 9 - .4byte _081D492C @ case 10 - .4byte _081D495C @ case 11 - .4byte _081D4972 @ case 12 - .4byte _081D4988 @ case 13 - .4byte _081D49EA @ case 14 - .4byte _081D4A10 @ case 15 - .4byte _081D4A28 @ case 16 - .4byte _081D4A46 @ case 17 - .4byte _081D4A72 @ case 18 - .4byte _081D4A98 @ case 19 - .4byte _081D4AC8 @ case 20 - .4byte _081D4AD4 @ case 21 - .4byte _081D4AE0 @ case 22 - .4byte _081D4AB0 @ case 23 - .4byte _081D4B0A @ case 24 - .4byte _081D4B0A @ case 25 - .4byte _081D4AF8 @ case 26 -_081D479C: - adds r0, r4, #0 - adds r0, #9 - ldr r1, _081D47B4 - bl MG_PrintTextOnWindow1AndWaitButton - cmp r0, #0 - bne _081D47AC - b _081D4B0A -_081D47AC: - movs r0, #1 - strb r0, [r4, #8] - b _081D4B0A - .align 2, 0 -_081D47B4: .4byte gUnknown_85CCEEC -_081D47B8: - bl sub_081D44B0 - adds r0, r4, #0 - bl sub_081D46DC - movs r0, #2 - strb r0, [r4, #8] - b _081D4B0A -_081D47C8: - adds r0, r4, #0 - movs r1, #0xa - bl sub_081D46E4 - cmp r0, #0 - bne _081D47D6 - b _081D4B0A -_081D47D6: - movs r0, #3 - strb r0, [r4, #8] - b _081D4B0A -_081D47DC: - bl sub_081D4540 - cmp r0, #0 - beq _081D47E6 - b _081D497C -_081D47E6: - bl CloseLink - b _081D48DC -_081D47EC: - adds r0, r4, #0 - adds r0, #9 - ldr r1, _081D4810 - bl MG_PrintTextOnWindow1AndWaitButton - cmp r0, #0 - bne _081D47FC - b _081D4B0A -_081D47FC: - ldr r0, _081D4814 - bl AddTextPrinterToWindow1 - adds r0, r4, #0 - bl sub_081D46DC - movs r0, #5 - strb r0, [r4, #8] - b _081D4B0A - .align 2, 0 -_081D4810: .4byte gUnknown_85CCF0B -_081D4814: .4byte gUnknown_85CCF2A -_081D4818: - adds r0, r4, #0 - movs r1, #0x5a - bl sub_081D46E4 - cmp r0, #0 - beq _081D482E - bl sub_081D44B0 - movs r0, #6 - strb r0, [r4, #8] - b _081D4B0A -_081D482E: - ldr r0, _081D484C - ldrh r1, [r0, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _081D483C - b _081D4B0A -_081D483C: - adds r0, r4, #0 - bl sub_081D46DC - movs r0, #5 - bl sub_080A306C - b _081D49DA - .align 2, 0 -_081D484C: .4byte gUnknown_3002360 -_081D4850: - ldr r0, _081D4870 - ldrh r1, [r0, #0x2e] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _081D4874 - movs r0, #5 - bl sub_080A306C - bl CloseLink - adds r0, r4, #0 - bl sub_081D46DC - b _081D49DA - .align 2, 0 -_081D4870: .4byte gUnknown_3002360 -_081D4874: - bl GetLinkPlayerCount_2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _081D4890 - adds r0, r4, #0 - bl sub_081D46DC - bl CloseLink - movs r0, #7 - strb r0, [r4, #8] - b _081D4B0A -_081D4890: - bl sub_081D44E0 - cmp r0, #0 - beq _081D48AE - movs r0, #5 - bl sub_080A306C - bl CloseLink - adds r0, r4, #0 - bl sub_081D46DC - movs r0, #8 - strb r0, [r4, #8] - b _081D4B0A -_081D48AE: - adds r0, r4, #0 - movs r1, #0xa - bl sub_081D46E4 - cmp r0, #0 - bne _081D48BC - b _081D4B0A -_081D48BC: - bl CloseLink - bl sub_081D44B0 - adds r0, r4, #0 - bl sub_081D46DC - b _081D4B0A -_081D48CC: - adds r0, r4, #0 - adds r0, #9 - ldr r1, _081D48E4 - bl MG_PrintTextOnWindow1AndWaitButton - cmp r0, #0 - bne _081D48DC - b _081D4B0A -_081D48DC: - movs r0, #4 - strb r0, [r4, #8] - b _081D4B0A - .align 2, 0 -_081D48E4: .4byte gUnknown_85CCF72 -_081D48E8: - ldr r0, _081D4900 - bl AddTextPrinterToWindow1 - ldr r0, _081D4904 - ldr r1, _081D4908 - ldr r2, _081D490C - subs r1, r1, r2 - bl sub_081D43D0 - movs r0, #9 - strb r0, [r4, #8] - b _081D4B0A - .align 2, 0 -_081D4900: .4byte gUnknown_85CCFAD -_081D4904: .4byte gUnknown_3006110 -_081D4908: .4byte gUnknown_8912454 -_081D490C: .4byte gUnknown_890F374 -_081D4910: - ldr r0, _081D4928 - bl sub_081D4468 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081D4920 - b _081D4B0A -_081D4920: - movs r0, #0xa - strb r0, [r4, #8] - b _081D4B0A - .align 2, 0 -_081D4928: .4byte gUnknown_3006110 -_081D492C: - ldr r0, _081D4954 - bl sub_081D4438 - ldrb r0, [r4, #0xe] - cmp r0, #3 - bne _081D493A - b _081D4A40 -_081D493A: - cmp r0, #1 - beq _081D4940 - b _081D4AEE -_081D4940: - adds r0, r4, #0 - bl sub_081D46DC - ldr r0, _081D4958 - bl AddTextPrinterToWindow1 - movs r0, #0xb - strb r0, [r4, #8] - b _081D4B0A - .align 2, 0 -_081D4954: .4byte gUnknown_3006110 -_081D4958: .4byte gUnknown_85CD036 -_081D495C: - movs r1, #0xd2 - lsls r1, r1, #2 - adds r0, r4, #0 - bl sub_081D46E4 - cmp r0, #0 - bne _081D496C - b _081D4B0A -_081D496C: - movs r0, #0xc - strb r0, [r4, #8] - b _081D4B0A -_081D4972: - bl sub_081D44B0 - ldr r0, _081D4984 - bl AddTextPrinterToWindow1 -_081D497C: - movs r0, #0xd - strb r0, [r4, #8] - b _081D4B0A - .align 2, 0 -_081D4984: .4byte gUnknown_85CCFF2 -_081D4988: - adds r0, r4, #0 - adds r0, #9 - adds r1, r4, #0 - bl sub_081D4564 - cmp r0, #5 - bls _081D4998 - b _081D4B0A -_081D4998: - lsls r0, r0, #2 - ldr r1, _081D49A4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081D49A4: .4byte _081D49A8 -_081D49A8: @ jump table - .4byte _081D4B0A @ case 0 - .4byte _081D49D0 @ case 1 - .4byte _081D49C0 @ case 2 - .4byte _081D49F4 @ case 3 - .4byte _081D49F4 @ case 4 - .4byte _081D49E0 @ case 5 -_081D49C0: - ldr r0, _081D49CC - bl AddTextPrinterToWindow1 - movs r0, #0xe - strb r0, [r4, #8] - b _081D4B0A - .align 2, 0 -_081D49CC: .4byte gUnknown_85CCFAD -_081D49D0: - movs r0, #5 - bl sub_080A306C - bl CloseLink -_081D49DA: - movs r0, #0x17 - strb r0, [r4, #8] - b _081D4B0A -_081D49E0: - bl CloseLink - movs r0, #0x15 - strb r0, [r4, #8] - b _081D4B0A -_081D49EA: - bl sub_0800AE18 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D49FA -_081D49F4: - bl CloseLink - b _081D4A40 -_081D49FA: - bl GetBlockReceivedStatus - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081D4A06 - b _081D4B0A -_081D4A06: - bl ResetBlockReceivedFlags - movs r0, #0xf - strb r0, [r4, #8] - b _081D4B0A -_081D4A10: - ldr r0, _081D4A24 - bl sub_081D2F4C - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xe] - bl sub_0800A7B8 - movs r0, #0x10 - strb r0, [r4, #8] - b _081D4B0A - .align 2, 0 -_081D4A24: .4byte gUnknown_201C000 -_081D4A28: - ldr r0, _081D4A3C - ldrb r0, [r0] - cmp r0, #0 - bne _081D4B0A - ldrb r0, [r4, #0xe] - cmp r0, #1 - bne _081D4A40 - movs r0, #0x11 - strb r0, [r4, #8] - b _081D4B0A - .align 2, 0 -_081D4A3C: .4byte gUnknown_30031C4 -_081D4A40: - movs r0, #0x14 - strb r0, [r4, #8] - b _081D4B0A -_081D4A46: - ldr r0, _081D4A64 - bl sub_081D3130 - cmp r0, #0 - beq _081D4A6C - ldr r0, _081D4A68 - bl AddTextPrinterToWindow1 - adds r0, r4, #0 - bl sub_081D46DC - movs r0, #0x12 - strb r0, [r4, #8] - b _081D4B0A - .align 2, 0 -_081D4A64: .4byte gUnknown_201C000 -_081D4A68: .4byte gUnknown_85CD010 -_081D4A6C: - movs r0, #0x16 - strb r0, [r4, #8] - b _081D4B0A -_081D4A72: - adds r0, r4, #0 - movs r1, #0x78 - bl sub_081D46E4 - cmp r0, #0 - beq _081D4B0A - ldr r0, _081D4A94 - bl AddTextPrinterToWindow1 - movs r0, #0xb9 - lsls r0, r0, #1 - bl PlayFanfare - movs r0, #0x13 - strb r0, [r4, #8] - b _081D4B0A - .align 2, 0 -_081D4A94: .4byte gUnknown_85CD01D -_081D4A98: - bl IsFanfareTaskInactive - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D4B0A - ldr r0, _081D4AAC - ldrh r1, [r0, #0x2e] - movs r0, #3 - ands r0, r1 - b _081D4ABA - .align 2, 0 -_081D4AAC: .4byte gUnknown_3002360 -_081D4AB0: - adds r0, r4, #0 - adds r0, #9 - ldr r1, _081D4AC4 - bl MG_PrintTextOnWindow1AndWaitButton -_081D4ABA: - cmp r0, #0 - beq _081D4B0A - movs r0, #0x1a - strb r0, [r4, #8] - b _081D4B0A - .align 2, 0 -_081D4AC4: .4byte gUnknown_85CCF81 -_081D4AC8: - adds r0, r4, #0 - adds r0, #9 - ldr r1, _081D4AD0 - b _081D4AE6 - .align 2, 0 -_081D4AD0: .4byte gUnknown_85CCFB9 -_081D4AD4: - adds r0, r4, #0 - adds r0, #9 - ldr r1, _081D4ADC - b _081D4AE6 - .align 2, 0 -_081D4ADC: .4byte gUnknown_85CCFD5 -_081D4AE0: - adds r0, r4, #0 - adds r0, #9 - ldr r1, _081D4AF4 -_081D4AE6: - bl MG_PrintTextOnWindow1AndWaitButton - cmp r0, #0 - beq _081D4B0A -_081D4AEE: - movs r0, #0 - strb r0, [r4, #8] - b _081D4B0A - .align 2, 0 -_081D4AF4: .4byte gUnknown_85CD043 -_081D4AF8: - ldr r0, [r4, #0x10] - bl Free - adds r0, r5, #0 - bl DestroyTask - ldr r0, _081D4B10 - bl SetMainCallback2 -_081D4B0A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081D4B10: .4byte MainCB_FreeAllBuffersAndReturnToInitTitleScreen - thumb_func_end sub_081D4704 - - thumb_func_start sub_081D4B14 -sub_081D4B14: @ 0x081D4B14 - push {lr} - bl SetUpDataStruct - ldr r1, _081D4B34 - ldr r0, _081D4B38 - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - bl sub_081D4D64 - pop {r0} - bx r0 - .align 2, 0 -_081D4B34: .4byte gUnknown_85FB91C -_081D4B38: .4byte gUnknown_2037280 - thumb_func_end sub_081D4B14 - - thumb_func_start sub_081D4B3C -sub_081D4B3C: @ 0x081D4B3C - push {r4, lr} - ldr r4, _081D4B70 - ldr r1, [r4] - ldr r3, _081D4B74 - adds r1, r1, r3 - ldrb r2, [r1] - movs r0, #0x7f - ands r0, r2 - strb r0, [r1] - ldr r1, [r4] - adds r1, r1, r3 - ldrb r2, [r1] - movs r0, #0x80 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r0, _081D4B78 - ldr r0, [r0] - ldr r1, _081D4B7C - adds r0, r0, r1 - movs r1, #0 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D4B70: .4byte gUnknown_3005AF0 -_081D4B74: .4byte 0x00000EF9 -_081D4B78: .4byte gUnknown_3005AEC -_081D4B7C: .4byte 0x00003D68 - thumb_func_end sub_081D4B3C - - thumb_func_start GetFloorId -GetFloorId: @ 0x081D4B80 - ldr r0, _081D4B8C - ldrb r0, [r0, #0x12] - adds r0, #0x61 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bx lr - .align 2, 0 -_081D4B8C: .4byte gUnknown_2036FB8 - thumb_func_end GetFloorId - - thumb_func_start GetTrainerHillOpponentClass -GetTrainerHillOpponentClass: @ 0x081D4B90 - lsls r0, r0, #0x18 - movs r1, #0xff - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - ldr r2, _081D4BAC - ldr r1, _081D4BB0 - ldr r1, [r1] - adds r1, #0x10 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, r0, r2 - ldrb r0, [r0] - bx lr - .align 2, 0 -_081D4BAC: .4byte gUnknown_82EFF52 -_081D4BB0: .4byte gUnknown_203CC24 - thumb_func_end GetTrainerHillOpponentClass - - thumb_func_start ScrCmd_showmonpic -ScrCmd_showmonpic: @ 0x081D4BB4 - push {r4, lr} - adds r4, r0, #0 - lsls r1, r1, #0x18 - movs r0, #0xff - lsls r0, r0, #0x18 - adds r1, r1, r0 - movs r3, #0 - ldr r0, _081D4BE0 - ldr r0, [r0] - lsrs r1, r1, #0x15 - adds r2, r1, r0 -_081D4BCA: - adds r1, r4, r3 - ldrb r0, [r2] - strb r0, [r1] - adds r2, #1 - adds r3, #1 - cmp r3, #7 - ble _081D4BCA - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D4BE0: .4byte gUnknown_203CC24 - thumb_func_end ScrCmd_showmonpic - - thumb_func_start GetTrainerHillTrainerFrontSpriteId -GetTrainerHillTrainerFrontSpriteId: @ 0x081D4BE4 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - bl SetUpDataStruct - subs r4, #1 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081D4C28 - ldr r3, [r0] - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #4 - adds r1, r1, r4 - lsls r1, r1, #2 - ldrb r2, [r3] - lsls r0, r2, #4 - subs r0, r0, r2 - lsls r0, r0, #2 - subs r0, r0, r2 - lsls r0, r0, #4 - adds r1, r1, r0 - adds r3, r3, r1 - ldrb r4, [r3, #0x18] - bl sub_081D4D64 - ldr r0, _081D4C2C - adds r4, r4, r0 - ldrb r0, [r4] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081D4C28: .4byte gUnknown_203CC20 -_081D4C2C: .4byte gUnknown_82EFF00 - thumb_func_end GetTrainerHillTrainerFrontSpriteId - - thumb_func_start sub_081D4C30 -sub_081D4C30: @ 0x081D4C30 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - bl SetUpDataStruct - ldr r4, _081D4CE0 - movs r0, #0x14 - bl AllocZeroed - str r0, [r4] - movs r6, #0 - ldr r0, _081D4CE4 - mov sl, r0 -_081D4C4E: - movs r5, #0 - lsls r1, r6, #2 - mov r8, r1 - adds r0, r6, #1 - mov sb, r0 - adds r0, r1, r6 - lsls r0, r0, #4 - adds r0, r0, r6 - lsls r0, r0, #2 - mov ip, r0 - lsls r7, r6, #3 -_081D4C64: - ldr r1, _081D4CE0 - ldr r4, [r1] - adds r0, r5, r7 - adds r4, r4, r0 - mov r0, sl - ldr r2, [r0] - mov r1, ip - adds r3, r5, r1 - ldrb r1, [r2] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #2 - subs r0, r0, r1 - lsls r0, r0, #4 - adds r3, r3, r0 - adds r2, #0x10 - adds r2, r2, r3 - ldrb r0, [r2] - strb r0, [r4] - adds r5, #1 - cmp r5, #7 - ble _081D4C64 - ldr r0, _081D4CE0 - ldr r4, [r0] - adds r4, #0x10 - adds r4, r4, r6 - mov r1, sl - ldr r3, [r1] - mov r0, r8 - adds r1, r0, r6 - lsls r1, r1, #4 - adds r1, r1, r6 - lsls r1, r1, #2 - ldrb r2, [r3] - lsls r0, r2, #4 - subs r0, r0, r2 - lsls r0, r0, #2 - subs r0, r0, r2 - lsls r0, r0, #4 - adds r1, r1, r0 - adds r3, r3, r1 - ldrb r0, [r3, #0x18] - strb r0, [r4] - mov r6, sb - cmp r6, #1 - ble _081D4C4E - ldr r1, _081D4CE8 - ldr r0, [r1] - ldr r1, _081D4CEC - adds r0, r0, r1 - bl sub_080008DC - bl sub_081D4D64 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D4CE0: .4byte gUnknown_203CC24 -_081D4CE4: .4byte gUnknown_203CC20 -_081D4CE8: .4byte gUnknown_3005AEC -_081D4CEC: .4byte 0x00003D64 - thumb_func_end sub_081D4C30 - - thumb_func_start sub_081D4CF0 -sub_081D4CF0: @ 0x081D4CF0 - push {r4, lr} - ldr r4, _081D4D08 - ldr r0, [r4] - cmp r0, #0 - beq _081D4D02 - bl Free - movs r0, #0 - str r0, [r4] -_081D4D02: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D4D08: .4byte gUnknown_203CC24 - thumb_func_end sub_081D4CF0 - - thumb_func_start SetUpDataStruct -SetUpDataStruct: @ 0x081D4D0C - push {r4, lr} - ldr r4, _081D4D38 - ldr r0, [r4] - cmp r0, #0 - bne _081D4D54 - ldr r0, _081D4D3C - bl AllocZeroed - str r0, [r4] - ldr r1, _081D4D40 - ldrb r1, [r1, #0x12] - adds r1, #0x61 - strb r1, [r0] - bl ReadTrainerHillAndValidate - cmp r0, #1 - bne _081D4D44 - ldr r0, [r4] - adds r0, #4 - bl TryReadTrainerHill - b _081D4D54 - .align 2, 0 -_081D4D38: .4byte gUnknown_203CC20 -_081D4D3C: .4byte 0x00000ECC -_081D4D40: .4byte gUnknown_2036FB8 -_081D4D44: - ldr r0, _081D4D5C - ldr r1, [r4] - adds r1, #4 - ldr r2, _081D4D60 - bl CpuSet - bl sub_081D5360 -_081D4D54: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D4D5C: .4byte gUnknown_85FAF38 -_081D4D60: .4byte 0x040003B2 - thumb_func_end SetUpDataStruct - - thumb_func_start sub_081D4D64 -sub_081D4D64: @ 0x081D4D64 - push {r4, lr} - ldr r4, _081D4D7C - ldr r0, [r4] - cmp r0, #0 - beq _081D4D76 - bl Free - movs r0, #0 - str r0, [r4] -_081D4D76: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D4D7C: .4byte gUnknown_203CC20 - thumb_func_end sub_081D4D64 - - thumb_func_start CopyTrainerHillTrainerText -CopyTrainerHillTrainerText: @ 0x081D4D80 - push {r4, r5, r6, lr} - adds r4, r1, #0 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r6, r5, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - bl SetUpDataStruct - bl GetFloorId - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - subs r4, #1 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - cmp r5, #3 - beq _081D4DE4 - cmp r5, #3 - bgt _081D4DAE - cmp r5, #2 - beq _081D4DB8 - b _081D4E60 -_081D4DAE: - cmp r6, #4 - beq _081D4E10 - cmp r6, #5 - beq _081D4E3C - b _081D4E60 -_081D4DB8: - ldr r1, _081D4DE0 - lsls r0, r2, #4 - subs r0, r0, r2 - lsls r0, r0, #2 - subs r0, r0, r2 - lsls r0, r0, #4 - adds r0, #0xc - ldr r1, [r1] - adds r1, r1, r0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - adds r0, #0x10 - bl FrontierSpeechToString - b _081D4E60 - .align 2, 0 -_081D4DE0: .4byte gUnknown_203CC20 -_081D4DE4: - ldr r1, _081D4E0C - lsls r0, r2, #4 - subs r0, r0, r2 - lsls r0, r0, #2 - subs r0, r0, r2 - lsls r0, r0, #4 - adds r0, #0xc - ldr r1, [r1] - adds r1, r1, r0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - adds r0, #0x1c - bl FrontierSpeechToString - b _081D4E60 - .align 2, 0 -_081D4E0C: .4byte gUnknown_203CC20 -_081D4E10: - ldr r1, _081D4E38 - lsls r0, r2, #4 - subs r0, r0, r2 - lsls r0, r0, #2 - subs r0, r0, r2 - lsls r0, r0, #4 - adds r0, #0xc - ldr r1, [r1] - adds r1, r1, r0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - adds r0, #0x28 - bl FrontierSpeechToString - b _081D4E60 - .align 2, 0 -_081D4E38: .4byte gUnknown_203CC20 -_081D4E3C: - ldr r1, _081D4E6C - lsls r0, r2, #4 - subs r0, r0, r2 - lsls r0, r0, #2 - subs r0, r0, r2 - lsls r0, r0, #4 - adds r0, #0xc - ldr r1, [r1] - adds r1, r1, r0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #4 - adds r0, r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - adds r0, #0x34 - bl FrontierSpeechToString -_081D4E60: - bl sub_081D4D64 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081D4E6C: .4byte gUnknown_203CC20 - thumb_func_end CopyTrainerHillTrainerText - - thumb_func_start TrainerHillStartChallenge -TrainerHillStartChallenge: @ 0x081D4E70 - push {r4, r5, r6, lr} - bl sub_081D5360 - bl ReadTrainerHillAndValidate - cmp r0, #0 - bne _081D4E98 - ldr r3, _081D4E90 - ldr r1, [r3] - ldr r0, _081D4E94 - adds r1, r1, r0 - ldrb r0, [r1] - movs r2, #0x20 - orrs r0, r2 - b _081D4EA8 - .align 2, 0 -_081D4E90: .4byte gUnknown_3005AEC -_081D4E94: .4byte 0x00003D6E -_081D4E98: - ldr r3, _081D4F14 - ldr r1, [r3] - ldr r0, _081D4F18 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #0x21 - rsbs r0, r0, #0 - ands r0, r2 -_081D4EA8: - strb r0, [r1] - adds r6, r3, #0 - ldr r0, [r6] - ldr r1, _081D4F1C - adds r0, r0, r1 - movs r5, #0 - strb r5, [r0] - ldr r0, [r6] - ldr r4, _081D4F20 - adds r0, r0, r4 - bl sub_080008DC - ldr r1, [r6] - adds r4, r1, r4 - str r5, [r4] - ldr r3, _081D4F18 - adds r1, r1, r3 - ldrb r2, [r1] - movs r0, #5 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r6] - adds r1, r1, r3 - ldrb r2, [r1] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r6] - adds r1, r1, r3 - ldrb r2, [r1] - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r0, _081D4F24 - ldr r0, [r0] - movs r1, #0xee - lsls r1, r1, #4 - adds r0, r0, r1 - strb r5, [r0] - ldr r0, _081D4F28 - strb r5, [r0] - ldr r1, [r6] - adds r1, r1, r3 - ldrb r2, [r1] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081D4F14: .4byte gUnknown_3005AEC -_081D4F18: .4byte 0x00003D6E -_081D4F1C: .4byte 0x00003D6C -_081D4F20: .4byte 0x00003D64 -_081D4F24: .4byte gUnknown_3005AF0 -_081D4F28: .4byte gUnknown_2023FDE - thumb_func_end TrainerHillStartChallenge - - thumb_func_start sub_081D4F2C -sub_081D4F2C: @ 0x081D4F2C - push {lr} - bl sub_080008E8 - ldr r3, _081D4F6C - movs r0, #0 - strh r0, [r3] - ldr r0, _081D4F70 - ldr r0, [r0] - ldr r1, _081D4F74 - adds r2, r0, r1 - ldrb r1, [r2] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _081D4F4E - movs r0, #1 - strh r0, [r3] -_081D4F4E: - ldrb r1, [r2] - movs r0, #3 - ands r0, r1 - cmp r0, #3 - bne _081D4F5E - ldrh r0, [r3] - adds r0, #1 - strh r0, [r3] -_081D4F5E: - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - pop {r0} - bx r0 - .align 2, 0 -_081D4F6C: .4byte gUnknown_2037290 -_081D4F70: .4byte gUnknown_3005AEC -_081D4F74: .4byte 0x00003D6E - thumb_func_end sub_081D4F2C - - thumb_func_start sub_081D4F78 -sub_081D4F78: @ 0x081D4F78 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - bl AllocOamMatrix - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, _081D4FB0 - ldr r0, [r0] - ldrb r0, [r0, #6] - cmp r0, #4 - bne _081D4FA6 - ldr r0, _081D4FB4 - mov r8, r0 - ldr r0, [r0] - ldr r7, _081D4FB8 - adds r0, r0, r7 - ldrb r0, [r0] - movs r6, #1 - adds r4, r6, #0 - ands r4, r0 - cmp r4, #0 - beq _081D4FC0 -_081D4FA6: - ldr r1, _081D4FBC - movs r0, #2 - strh r0, [r1] - b _081D5014 - .align 2, 0 -_081D4FB0: .4byte gUnknown_203CC20 -_081D4FB4: .4byte gUnknown_3005AEC -_081D4FB8: .4byte 0x00003D6E -_081D4FBC: .4byte gUnknown_2037290 -_081D4FC0: - adds r0, r5, #0 - movs r1, #1 - bl AddBagItem - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081D5010 - ldr r1, _081D5000 - adds r0, r5, #0 - bl sub_080D5EC8 - mov r0, r8 - ldr r1, [r0] - adds r1, r1, r7 - ldrb r0, [r1] - movs r2, #1 - orrs r0, r2 - strb r0, [r1] - ldr r0, _081D5004 - ldr r1, [r0] - ldr r0, _081D5008 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #0x80 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r0, _081D500C - strh r4, [r0] - b _081D5014 - .align 2, 0 -_081D5000: .4byte gUnknown_2021C54 -_081D5004: .4byte gUnknown_3005AF0 -_081D5008: .4byte 0x00000EF9 -_081D500C: .4byte gUnknown_2037290 -_081D5010: - ldr r0, _081D5020 - strh r6, [r0] -_081D5014: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D5020: .4byte gUnknown_2037290 - thumb_func_end sub_081D4F78 - - thumb_func_start sub_081D5024 -sub_081D5024: @ 0x081D5024 - push {r4, r5, lr} - ldr r5, _081D5044 - ldr r2, [r5] - ldr r1, _081D5048 - adds r0, r2, r1 - ldrb r1, [r0] - movs r3, #2 - adds r0, r3, #0 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - beq _081D5050 - ldr r0, _081D504C - strh r3, [r0] - b _081D5086 - .align 2, 0 -_081D5044: .4byte gUnknown_3005AEC -_081D5048: .4byte 0x00003D6E -_081D504C: .4byte gUnknown_2037290 -_081D5050: - ldr r3, _081D5074 - adds r0, r2, r3 - bl sub_081D56E8 - ldr r2, [r5] - ldr r3, _081D5078 - adds r1, r2, r3 - ldr r1, [r1] - cmp r0, r1 - bls _081D5080 - adds r3, #4 - adds r0, r2, r3 - bl sub_081D56EC - ldr r0, _081D507C - strh r4, [r0] - b _081D5086 - .align 2, 0 -_081D5074: .4byte 0x00003D68 -_081D5078: .4byte 0x00003D64 -_081D507C: .4byte gUnknown_2037290 -_081D5080: - ldr r1, _081D509C - movs r0, #1 - strh r0, [r1] -_081D5086: - ldr r0, _081D50A0 - ldr r1, [r0] - ldr r0, _081D50A4 - adds r1, r1, r0 - ldrb r0, [r1] - movs r2, #2 - orrs r0, r2 - strb r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081D509C: .4byte gUnknown_2037290 -_081D50A0: .4byte gUnknown_3005AEC -_081D50A4: .4byte 0x00003D6E - thumb_func_end sub_081D5024 - - thumb_func_start TrainerHillResumeTimer -TrainerHillResumeTimer: @ 0x081D50A8 - push {lr} - ldr r0, _081D50D0 - ldr r2, [r0] - ldr r1, _081D50D4 - adds r0, r2, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _081D50E6 - ldr r0, _081D50D8 - adds r2, r2, r0 - ldr r1, [r2] - ldr r0, _081D50DC - cmp r1, r0 - bls _081D50E0 - adds r0, #1 - str r0, [r2] - b _081D50E6 - .align 2, 0 -_081D50D0: .4byte gUnknown_3005AEC -_081D50D4: .4byte 0x00003D6E -_081D50D8: .4byte 0x00003D64 -_081D50DC: .4byte 0x00034BBE -_081D50E0: - adds r0, r2, #0 - bl sub_080008DC -_081D50E6: - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end TrainerHillResumeTimer - - thumb_func_start TrainerHillSetPlayerLost -TrainerHillSetPlayerLost: @ 0x081D50EC - ldr r0, _081D5100 - ldr r1, [r0] - ldr r0, _081D5104 - adds r1, r1, r0 - ldrb r0, [r1] - movs r2, #8 - orrs r0, r2 - strb r0, [r1] - bx lr - .align 2, 0 -_081D5100: .4byte gUnknown_3005AEC -_081D5104: .4byte 0x00003D6E - thumb_func_end TrainerHillSetPlayerLost - - thumb_func_start TrainerHillGetChallengeStatus -TrainerHillGetChallengeStatus: @ 0x081D5108 - push {lr} - ldr r0, _081D512C - ldr r0, [r0] - ldr r1, _081D5130 - adds r2, r0, r1 - ldrb r1, [r2] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _081D5138 - movs r0, #9 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldr r1, _081D5134 - movs r0, #0 - b _081D5158 - .align 2, 0 -_081D512C: .4byte gUnknown_3005AEC -_081D5130: .4byte 0x00003D6E -_081D5134: .4byte gUnknown_2037290 -_081D5138: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _081D5154 - movs r0, #0x11 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldr r1, _081D5150 - movs r0, #1 - b _081D5158 - .align 2, 0 -_081D5150: .4byte gUnknown_2037290 -_081D5154: - ldr r1, _081D5160 - movs r0, #2 -_081D5158: - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_081D5160: .4byte gUnknown_2037290 - thumb_func_end TrainerHillGetChallengeStatus - - thumb_func_start sub_081D5164 -sub_081D5164: @ 0x081D5164 - push {r4, r5, r6, r7, lr} - ldr r0, _081D51D8 - ldr r0, [r0] - ldr r1, _081D51DC - adds r0, r0, r1 - ldr r7, [r0] - ldr r0, _081D51E0 - cmp r7, r0 - ble _081D5178 - ldr r7, _081D51E4 -_081D5178: - movs r4, #0xe1 - lsls r4, r4, #4 - adds r0, r7, #0 - adds r1, r4, #0 - bl __divsi3 - adds r6, r0, #0 - adds r0, r7, #0 - adds r1, r4, #0 - bl __modsi3 - adds r7, r0, #0 - movs r1, #0x3c - bl __divsi3 - adds r5, r0, #0 - adds r0, r7, #0 - movs r1, #0x3c - bl __modsi3 - adds r7, r0, #0 - movs r0, #0xa8 - muls r0, r7, r0 - movs r1, #0x64 - bl __divsi3 - adds r4, r0, #0 - ldr r0, _081D51E8 - adds r1, r6, #0 - movs r2, #1 - movs r3, #2 - bl sub_080089D8 - ldr r0, _081D51EC - adds r1, r5, #0 - movs r2, #1 - movs r3, #2 - bl sub_080089D8 - ldr r0, _081D51F0 - adds r1, r4, #0 - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D51D8: .4byte gUnknown_3005AEC -_081D51DC: .4byte 0x00003D64 -_081D51E0: .4byte 0x00034BBE -_081D51E4: .4byte 0x00034BBF -_081D51E8: .4byte gUnknown_2021C40 -_081D51EC: .4byte gUnknown_2021C54 -_081D51F0: .4byte gUnknown_2021C68 - thumb_func_end sub_081D5164 - - thumb_func_start sub_081D51F4 -sub_081D51F4: @ 0x081D51F4 - push {lr} - bl SetUpDataStruct - ldr r0, _081D5218 - ldr r1, [r0] - ldrb r0, [r1, #6] - cmp r0, #4 - beq _081D5224 - ldr r0, _081D521C - ldrb r1, [r1, #6] - movs r2, #0 - movs r3, #1 - bl sub_080089D8 - ldr r1, _081D5220 - movs r0, #0 - b _081D5228 - .align 2, 0 -_081D5218: .4byte gUnknown_203CC20 -_081D521C: .4byte gUnknown_2021C40 -_081D5220: .4byte gUnknown_2037290 -_081D5224: - ldr r1, _081D5234 - movs r0, #1 -_081D5228: - strh r0, [r1] - bl sub_081D4D64 - pop {r0} - bx r0 - .align 2, 0 -_081D5234: .4byte gUnknown_2037290 - thumb_func_end sub_081D51F4 - - thumb_func_start sub_081D5238 -sub_081D5238: @ 0x081D5238 - push {r4, lr} - bl SetUpDataStruct - ldr r0, _081D5260 - ldrh r1, [r0, #0x12] - movs r0, #0xcf - lsls r0, r0, #1 - cmp r1, r0 - bne _081D526C - ldr r0, _081D5264 - bl VarGet - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - bne _081D526C - ldr r0, _081D5268 - strh r1, [r0] - b _081D52E2 - .align 2, 0 -_081D5260: .4byte gUnknown_2036FB8 -_081D5264: .4byte 0x000040D6 -_081D5268: .4byte gUnknown_2037290 -_081D526C: - ldr r4, _081D52C4 - ldr r3, [r4] - ldr r0, _081D52C8 - adds r2, r3, r0 - ldr r0, _081D52CC - ldr r1, [r0] - ldrb r0, [r2] - ldrb r1, [r1, #5] - cmp r0, r1 - bne _081D5296 - ldr r1, _081D52D0 - adds r0, r3, r1 - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _081D52DC - bl ReadTrainerHillAndValidate - cmp r0, #0 - bne _081D52DC -_081D5296: - ldr r1, [r4] - ldr r0, _081D52D0 - adds r1, r1, r0 - ldrb r0, [r1] - movs r2, #0x10 - orrs r0, r2 - strb r0, [r1] - ldr r1, _081D52D4 - movs r0, #1 - strh r0, [r1] - ldr r0, _081D52D8 - ldrh r1, [r0, #0x12] - movs r0, #0xcf - lsls r0, r0, #1 - cmp r1, r0 - bne _081D52E2 - ldr r0, [r4] - movs r1, #9 - strh r1, [r0] - movs r1, #6 - strh r1, [r0, #2] - b _081D52E2 - .align 2, 0 -_081D52C4: .4byte gUnknown_3005AEC -_081D52C8: .4byte 0x00003D6D -_081D52CC: .4byte gUnknown_203CC20 -_081D52D0: .4byte 0x00003D6E -_081D52D4: .4byte gUnknown_2037290 -_081D52D8: .4byte gUnknown_2036FB8 -_081D52DC: - ldr r1, _081D52EC - movs r0, #0 - strh r0, [r1] -_081D52E2: - bl sub_081D4D64 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D52EC: .4byte gUnknown_2037290 - thumb_func_end sub_081D5238 - - thumb_func_start sub_081D52F0 -sub_081D52F0: @ 0x081D52F0 - push {lr} - ldr r0, _081D5320 - bl VarGet - lsls r0, r0, #0x10 - cmp r0, #0 - beq _081D531A - ldr r0, _081D5324 - ldr r0, [r0] - ldr r1, _081D5328 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _081D531A - bl GetCurrentTrainerHillMapId - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081D532C -_081D531A: - movs r0, #0 - b _081D532E - .align 2, 0 -_081D5320: .4byte 0x000040D6 -_081D5324: .4byte gUnknown_3005AEC -_081D5328: .4byte 0x00003D6E -_081D532C: - movs r0, #1 -_081D532E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081D52F0 - - thumb_func_start sub_081D5334 -sub_081D5334: @ 0x081D5334 - push {lr} - bl sub_081D52F0 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _081D534C - ldr r0, _081D5348 - strh r1, [r0] - b _081D5352 - .align 2, 0 -_081D5348: .4byte gUnknown_2037290 -_081D534C: - ldr r1, _081D5358 - movs r0, #1 - strh r0, [r1] -_081D5352: - pop {r0} - bx r0 - .align 2, 0 -_081D5358: .4byte gUnknown_2037290 - thumb_func_end sub_081D5334 - - thumb_func_start sub_081D535C -sub_081D535C: @ 0x081D535C - bx lr - .align 2, 0 - thumb_func_end sub_081D535C - - thumb_func_start sub_081D5360 -sub_081D5360: @ 0x081D5360 - push {r4, lr} - ldr r4, _081D53AC - ldr r0, [r4] - ldr r1, _081D53B0 - adds r2, r0, r1 - ldr r0, _081D53B4 - ldr r0, [r0] - ldrb r1, [r0, #5] - ldrb r0, [r2] - cmp r0, r1 - beq _081D53A6 - strb r1, [r2] - ldr r0, [r4] - ldr r1, _081D53B8 - adds r0, r0, r1 - ldr r1, _081D53BC - bl sub_081D56EC - ldr r1, [r4] - ldr r0, _081D53C0 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] - ldr r0, _081D53C4 - ldr r1, [r0] - ldr r0, _081D53C8 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #0x80 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r1] -_081D53A6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D53AC: .4byte gUnknown_3005AEC -_081D53B0: .4byte 0x00003D6D -_081D53B4: .4byte gUnknown_203CC20 -_081D53B8: .4byte 0x00003D68 -_081D53BC: .4byte 0x00034BBF -_081D53C0: .4byte 0x00003D6E -_081D53C4: .4byte gUnknown_3005AF0 -_081D53C8: .4byte 0x00000EF9 - thumb_func_end sub_081D5360 - - thumb_func_start sub_081D53CC -sub_081D53CC: @ 0x081D53CC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - ldr r1, _081D5560 - add r0, sp, #0xc - movs r2, #0xa - bl memcpy - bl SetUpDataStruct - movs r0, #0xd8 - str r0, [sp] - movs r0, #0x90 - str r0, [sp, #4] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_08003A34 - bl sub_081D5360 - ldr r7, _081D5564 - str r7, [sp] - movs r0, #0 - str r0, [sp, #4] - ldr r0, _081D5568 - str r0, [sp, #8] - movs r0, #0 - movs r1, #1 - movs r2, #0x44 - movs r3, #0 - bl AddTextPrinterParameterized3 - str r7, [sp] - movs r1, #0 - str r1, [sp, #4] - ldr r0, _081D556C - str r0, [sp, #8] - movs r0, #0 - movs r1, #1 - movs r2, #0 - movs r3, #0x78 - bl AddTextPrinterParameterized3 - ldr r0, _081D5570 - ldr r0, [r0] - ldrb r0, [r0, #6] - str r0, [sp, #0x18] - ldr r0, _081D5574 - ldr r0, [r0] - ldr r2, _081D5578 - adds r0, r0, r2 - bl sub_081D56E8 - adds r4, r0, #0 - movs r5, #0xe1 - lsls r5, r5, #4 - adds r1, r5, #0 - bl __divsi3 - adds r6, r0, #0 - adds r0, r4, #0 - adds r1, r5, #0 - bl __modsi3 - adds r4, r0, #0 - movs r1, #0x3c - bl __divsi3 - adds r5, r0, #0 - adds r0, r4, #0 - movs r1, #0x3c - bl __modsi3 - movs r1, #0xa8 - muls r0, r1, r0 - movs r1, #0x64 - bl __divsi3 - adds r4, r0, #0 - ldr r0, _081D557C - adds r1, r6, #0 - movs r2, #1 - movs r3, #2 - bl sub_080089D8 - ldr r0, _081D5580 - adds r1, r5, #0 - movs r2, #1 - movs r3, #2 - bl sub_080089D8 - ldr r0, _081D5584 - adds r1, r4, #0 - movs r2, #2 - movs r3, #2 - bl sub_080089D8 - ldr r4, _081D5588 - ldr r1, _081D558C - adds r0, r4, #0 - bl StringExpandPlaceholders - str r7, [sp] - movs r0, #0 - str r0, [sp, #4] - str r4, [sp, #8] - movs r1, #1 - movs r2, #0x30 - movs r3, #0x84 - bl AddTextPrinterParameterized3 - ldr r0, _081D5590 - ldr r0, [r0] - ldr r1, _081D5594 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081D54C8 - b _081D5648 -_081D54C8: - movs r4, #0 - ldr r2, [sp, #0x18] - cmp r4, r2 - blt _081D54D2 - b _081D56C2 -_081D54D2: - movs r0, #0x1a - adds r3, r4, #0 - muls r3, r0, r3 - adds r3, #0xe - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - ldr r6, _081D5564 - str r6, [sp] - movs r0, #0 - str r0, [sp, #4] - ldr r1, _081D5598 - lsls r0, r4, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp, #8] - movs r0, #0 - movs r1, #1 - movs r2, #0xc - bl AddTextPrinterParameterized3 - ldr r0, _081D5574 - ldr r0, [r0] - ldr r1, _081D5578 - adds r0, r0, r1 - bl sub_081D56E8 - ldr r1, _081D559C - cmp r0, r1 - bne _081D55A0 - movs r5, #0 - lsls r2, r4, #1 - mov r8, r2 - add r0, sp, #0x10 - mov sb, r0 - adds r4, #1 - mov sl, r4 - adds r7, r6, #0 - movs r6, #0 -_081D551E: - mov r1, r8 - adds r0, r1, r5 - movs r1, #0xd - adds r4, r0, #0 - muls r4, r1, r4 - adds r4, #0xe - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r7, [sp] - str r6, [sp, #4] - add r2, sp, #0xc - str r2, [sp, #8] - movs r0, #0 - movs r1, #1 - movs r2, #0x24 - adds r3, r4, #0 - bl AddTextPrinterParameterized3 - str r7, [sp] - str r6, [sp, #4] - mov r0, sb - str r0, [sp, #8] - movs r0, #0 - movs r1, #1 - movs r2, #0x90 - adds r3, r4, #0 - bl AddTextPrinterParameterized3 - adds r5, #1 - cmp r5, #1 - ble _081D551E - b _081D562C - .align 2, 0 -_081D5560: .4byte gUnknown_85FB960 -_081D5564: .4byte gUnknown_85FB8E0 -_081D5568: .4byte gUnknown_85FB8E3 -_081D556C: .4byte gUnknown_85FB8EA -_081D5570: .4byte gUnknown_203CC20 -_081D5574: .4byte gUnknown_3005AEC -_081D5578: .4byte 0x00003D68 -_081D557C: .4byte gUnknown_2021C40 -_081D5580: .4byte gUnknown_2021C54 -_081D5584: .4byte gUnknown_2021C68 -_081D5588: .4byte gUnknown_2021C7C -_081D558C: .4byte gUnknown_85FB8F1 -_081D5590: .4byte gUnknown_3005AF0 -_081D5594: .4byte 0x00000EF9 -_081D5598: .4byte gUnknown_85FB90C -_081D559C: .4byte 0x00034BBF -_081D55A0: - movs r5, #0 - lsls r1, r4, #1 - mov r8, r1 - lsls r0, r4, #4 - adds r2, r4, #1 - mov sl, r2 - movs r7, #4 - movs r6, #0 - subs r0, r0, r4 - lsls r0, r0, #2 - subs r0, r0, r4 - lsls r0, r0, #4 - mov sb, r0 - adds r0, #0xc - str r0, [sp, #0x1c] -_081D55BE: - ldr r1, _081D5638 - ldr r0, [r1] - mov r2, sb - adds r1, r6, r2 - adds r0, r0, r1 - ldrb r0, [r0, #0x18] - ldr r1, _081D563C - adds r0, r0, r1 - ldrb r2, [r0] - mov r0, r8 - adds r1, r0, r5 - movs r0, #0xd - adds r4, r1, #0 - muls r4, r0, r4 - adds r4, #0xe - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _081D5640 - str r1, [sp] - movs r0, #0 - str r0, [sp, #4] - movs r0, #0xb - muls r0, r2, r0 - ldr r1, _081D5644 - adds r0, r0, r1 - str r0, [sp, #8] - movs r0, #0 - movs r1, #1 - movs r2, #0x24 - adds r3, r4, #0 - bl AddTextPrinterParameterized3 - ldr r1, _081D5640 - str r1, [sp] - movs r2, #0 - str r2, [sp, #4] - ldr r1, _081D5638 - ldr r0, [r1] - ldr r2, [sp, #0x1c] - adds r0, r0, r2 - adds r0, r0, r7 - str r0, [sp, #8] - movs r0, #0 - movs r1, #1 - movs r2, #0x90 - adds r3, r4, #0 - bl AddTextPrinterParameterized3 - movs r0, #0xa2 - lsls r0, r0, #1 - adds r7, r7, r0 - adds r6, r6, r0 - adds r5, #1 - cmp r5, #1 - ble _081D55BE -_081D562C: - mov r4, sl - ldr r1, [sp, #0x18] - cmp r4, r1 - bge _081D5636 - b _081D54D2 -_081D5636: - b _081D56C2 - .align 2, 0 -_081D5638: .4byte gUnknown_203CC20 -_081D563C: .4byte gUnknown_82EFF52 -_081D5640: .4byte gUnknown_85FB8E0 -_081D5644: .4byte gUnknown_82E3564 -_081D5648: - movs r4, #0 - add r2, sp, #0x10 - mov sb, r2 - movs r6, #0 -_081D5650: - movs r0, #0x1a - adds r3, r4, #0 - muls r3, r0, r3 - adds r3, #0xe - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - str r7, [sp] - str r6, [sp, #4] - ldr r1, _081D56E4 - lsls r0, r4, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp, #8] - movs r0, #0 - movs r1, #1 - movs r2, #0xc - bl AddTextPrinterParameterized3 - movs r5, #0 - lsls r0, r4, #1 - mov r8, r0 - adds r4, #1 - mov sl, r4 -_081D567E: - mov r1, r8 - adds r0, r1, r5 - movs r1, #0xd - adds r4, r0, #0 - muls r4, r1, r4 - adds r4, #0xe - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r7, [sp] - str r6, [sp, #4] - add r2, sp, #0xc - str r2, [sp, #8] - movs r0, #0 - movs r1, #1 - movs r2, #0x24 - adds r3, r4, #0 - bl AddTextPrinterParameterized3 - str r7, [sp] - str r6, [sp, #4] - mov r0, sb - str r0, [sp, #8] - movs r0, #0 - movs r1, #1 - movs r2, #0x90 - adds r3, r4, #0 - bl AddTextPrinterParameterized3 - adds r5, #1 - cmp r5, #1 - ble _081D567E - mov r4, sl - cmp r4, #1 - ble _081D5650 -_081D56C2: - movs r0, #0 - bl PutWindowTilemap - movs r0, #0 - movs r1, #3 - bl CopyWindowToVram - bl sub_081D4D64 - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D56E4: .4byte gUnknown_85FB90C - thumb_func_end sub_081D53CC - - thumb_func_start sub_081D56E8 -sub_081D56E8: @ 0x081D56E8 - ldr r0, [r0] - bx lr - thumb_func_end sub_081D56E8 - - thumb_func_start sub_081D56EC -sub_081D56EC: @ 0x081D56EC - str r1, [r0] - bx lr - thumb_func_end sub_081D56EC - - thumb_func_start sub_081D56F0 -sub_081D56F0: @ 0x081D56F0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - ldr r0, _081D5818 - ldr r0, [r0] - movs r1, #0xc7 - lsls r1, r1, #4 - adds r1, r0, r1 - str r1, [sp, #4] - bl sub_081D5840 - cmp r0, #0 - beq _081D5806 - bl SetUpDataStruct - movs r7, #0 - ldr r4, _081D581C - ldr r3, _081D5820 - ldr r0, _081D5824 - adds r2, r0, #0 -_081D571E: - ldr r1, [r4] - lsls r0, r7, #1 - adds r1, r1, r3 - adds r1, r1, r0 - ldrh r0, [r1] - orrs r0, r2 - strh r0, [r1] - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #1 - bls _081D571E - movs r0, #0 - str r0, [sp] - ldr r0, _081D5818 - ldr r1, [r0] - movs r2, #0xc7 - lsls r2, r2, #4 - adds r1, r1, r2 - ldr r2, _081D5828 - mov r0, sp - bl CpuSet - bl GetFloorId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - movs r7, #0 - ldr r3, _081D582C - mov sl, r3 -_081D575C: - lsls r4, r7, #1 - mov r8, r4 - adds r5, r4, r7 - lsls r5, r5, #3 - ldr r0, [sp, #4] - adds r5, r5, r0 - adds r1, r5, #0 - ldr r0, _081D5830 - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - adds r6, r7, #1 - strb r6, [r5] - mov r0, sl - ldr r1, [r0] - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #4 - adds r0, r0, r7 - lsls r0, r0, #2 - mov r2, sb - lsls r4, r2, #4 - subs r4, r4, r2 - lsls r4, r4, #2 - subs r4, r4, r2 - lsls r4, r4, #4 - adds r0, r0, r4 - adds r1, r1, r0 - ldrb r0, [r1, #0x18] - bl FacilityClassToGraphicsId - strb r0, [r5, #1] - mov r0, sl - ldr r3, [r0] - adds r0, r7, r4 - movs r2, #0xee - lsls r2, r2, #2 - adds r1, r3, r2 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #0xf - ands r0, r2 - strh r0, [r5, #4] - ldrb r0, [r1] - lsrs r0, r0, #4 - movs r1, #0xf - ands r0, r1 - adds r0, #5 - strh r0, [r5, #6] - lsls r1, r7, #0x1a - lsrs r1, r1, #0x18 - adds r3, r3, r4 - ldr r2, _081D5834 - adds r3, r3, r2 - ldrb r0, [r3] - asrs r0, r1 - movs r3, #0xf - ands r0, r3 - adds r0, #7 - strb r0, [r5, #9] - mov r2, sl - ldr r0, [r2] - adds r0, r0, r4 - ldr r3, _081D5838 - adds r0, r0, r3 - ldrb r0, [r0] - asrs r0, r1 - movs r1, #0xf - ands r0, r1 - strh r0, [r5, #0xe] - ldr r0, _081D583C - str r0, [r5, #0x10] - ldr r0, _081D581C - ldr r0, [r0] - ldr r4, _081D5820 - adds r0, r0, r4 - add r0, r8 - strh r6, [r0] - lsls r6, r6, #0x18 - lsrs r7, r6, #0x18 - cmp r7, #1 - bls _081D575C - bl sub_081D4D64 -_081D5806: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D5818: .4byte gUnknown_3005AEC -_081D581C: .4byte gUnknown_3005AF0 -_081D5820: .4byte 0x00000CB4 -_081D5824: .4byte 0x0000FFFF -_081D5828: .4byte 0x05000180 -_081D582C: .4byte gUnknown_203CC20 -_081D5830: .4byte gUnknown_85FB96C -_081D5834: .4byte 0x000003BA -_081D5838: .4byte 0x000003BB -_081D583C: .4byte gUnknown_8276D0C - thumb_func_end sub_081D56F0 - - thumb_func_start sub_081D5840 -sub_081D5840: @ 0x081D5840 - push {r4, r5, lr} - sub sp, #4 - movs r5, #1 - bl SetUpDataStruct - ldr r4, _081D589C - ldr r3, [r4] - ldr r0, _081D58A0 - adds r2, r3, r0 - ldr r0, _081D58A4 - ldr r1, [r0] - ldrb r0, [r2] - ldrb r1, [r1, #5] - cmp r0, r1 - bne _081D5874 - ldr r1, _081D58A8 - adds r0, r3, r1 - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _081D588E - bl ReadTrainerHillAndValidate - cmp r0, #0 - bne _081D588E -_081D5874: - movs r0, #0 - str r0, [sp] - ldr r1, [r4] - movs r0, #0xc7 - lsls r0, r0, #4 - adds r1, r1, r0 - ldr r2, _081D58AC - mov r0, sp - bl CpuSet - bl ClearAllEventObjects - movs r5, #0 -_081D588E: - bl sub_081D4D64 - adds r0, r5, #0 - add sp, #4 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081D589C: .4byte gUnknown_3005AEC -_081D58A0: .4byte 0x00003D6D -_081D58A4: .4byte gUnknown_203CC20 -_081D58A8: .4byte 0x00003D6E -_081D58AC: .4byte 0x05000180 - thumb_func_end sub_081D5840 - - thumb_func_start sub_081D58B0 -sub_081D58B0: @ 0x081D58B0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r4, _081D5908 - ldr r4, [r4] - mov ip, r4 - lsls r4, r2, #1 - lsls r5, r0, #4 - subs r5, r5, r0 - lsls r5, r5, #2 - subs r5, r5, r0 - lsls r5, r5, #4 - adds r4, r4, r5 - movs r0, #0xe6 - lsls r0, r0, #2 - add r0, ip - adds r0, r0, r4 - ldrh r0, [r0] - movs r4, #0xf - subs r4, r4, r1 - asrs r0, r4 - movs r4, #1 - ands r0, r4 - muls r2, r3, r2 - adds r2, r2, r1 - adds r2, r2, r5 - movs r1, #0xa6 - lsls r1, r1, #2 - add r1, ip - adds r1, r1, r2 - ldrb r1, [r1] - movs r2, #0x80 - lsls r2, r2, #2 - adds r3, r2, #0 - movs r2, #0xc0 - lsls r2, r2, #6 - lsls r0, r0, #0xa - orrs r0, r2 - orrs r1, r3 - orrs r0, r1 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_081D5908: .4byte gUnknown_203CC20 - thumb_func_end sub_081D58B0 - - thumb_func_start sub_081D590C -sub_081D590C: @ 0x081D590C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r4, r0, #0 - bl GetCurrentTrainerHillMapId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - cmp r0, #6 - bne _081D592A - bl InitMapFromSavedGame - b _081D59FC -_081D592A: - bl SetUpDataStruct - ldr r0, _081D5964 - ldr r3, [r0] - ldr r0, _081D5968 - adds r2, r3, r0 - ldr r0, _081D596C - ldr r1, [r0] - ldrb r0, [r2] - ldrb r1, [r1, #5] - cmp r0, r1 - bne _081D5958 - ldr r1, _081D5970 - adds r0, r3, r1 - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _081D5974 - bl ReadTrainerHillAndValidate - cmp r0, #0 - bne _081D5974 -_081D5958: - bl sub_080989C8 - bl sub_081D4D64 - b _081D59FC - .align 2, 0 -_081D5964: .4byte gUnknown_3005AEC -_081D5968: .4byte 0x00003D6D -_081D596C: .4byte gUnknown_203CC20 -_081D5970: .4byte 0x00003D6E -_081D5974: - mov r0, sb - cmp r0, #5 - bne _081D5984 - bl InitMapFromSavedGame - bl sub_081D4D64 - b _081D59FC -_081D5984: - bl GetFloorId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldr r0, _081D5A08 - ldr r0, [r0] - ldr r2, [r0, #0xc] - ldr r1, _081D5A0C - str r4, [r1, #8] - movs r0, #0x1f - str r0, [r1] - movs r0, #0x23 - str r0, [r1, #4] - movs r1, #0xe0 - lsls r1, r1, #1 - adds r3, r4, r1 - movs r6, #4 -_081D59A8: - adds r4, r2, #0 - adds r4, #0x20 - adds r1, r3, #0 - movs r5, #0xf -_081D59B0: - ldrh r0, [r2] - strh r0, [r1] - adds r2, #2 - adds r1, #2 - subs r5, #1 - cmp r5, #0 - bge _081D59B0 - adds r3, #0x3e - adds r2, r4, #0 - subs r6, #1 - cmp r6, #0 - bge _081D59A8 - movs r6, #0 -_081D59CA: - movs r5, #0 - movs r0, #0x3e - adds r0, r0, r3 - mov r8, r0 - adds r7, r6, #1 - adds r4, r3, #0 -_081D59D6: - mov r0, sb - adds r1, r5, #0 - adds r2, r6, #0 - movs r3, #0x10 - bl sub_081D58B0 - strh r0, [r4] - adds r4, #2 - adds r5, #1 - cmp r5, #0xf - ble _081D59D6 - mov r3, r8 - adds r6, r7, #0 - cmp r6, #0xf - ble _081D59CA - bl sub_080989C8 - bl sub_081D4D64 -_081D59FC: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D5A08: .4byte gUnknown_2036FB8 -_081D5A0C: .4byte gUnknown_3005B20 - thumb_func_end sub_081D590C - - thumb_func_start InTrainerHill -InTrainerHill: @ 0x081D5A10 - push {lr} - ldr r1, _081D5A30 - ldr r2, _081D5A34 - adds r0, r2, #0 - ldrh r1, [r1, #0x12] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0 - cmp r0, #3 - bhi _081D5A28 - movs r1, #1 -_081D5A28: - adds r0, r1, #0 - pop {r1} - bx r1 - .align 2, 0 -_081D5A30: .4byte gUnknown_2036FB8 -_081D5A34: .4byte 0xFFFFFE61 - thumb_func_end InTrainerHill - - thumb_func_start GetCurrentTrainerHillMapId -GetCurrentTrainerHillMapId: @ 0x081D5A38 - push {lr} - ldr r0, _081D5A48 - ldrh r2, [r0, #0x12] - ldr r0, _081D5A4C - cmp r2, r0 - bne _081D5A50 - movs r1, #1 - b _081D5A94 - .align 2, 0 -_081D5A48: .4byte gUnknown_2036FB8 -_081D5A4C: .4byte 0x0000019F -_081D5A50: - movs r0, #0xd0 - lsls r0, r0, #1 - cmp r2, r0 - bne _081D5A5C - movs r1, #2 - b _081D5A94 -_081D5A5C: - ldr r0, _081D5A68 - cmp r2, r0 - bne _081D5A6C - movs r1, #3 - b _081D5A94 - .align 2, 0 -_081D5A68: .4byte 0x000001A1 -_081D5A6C: - movs r0, #0xd1 - lsls r0, r0, #1 - cmp r2, r0 - bne _081D5A78 - movs r1, #4 - b _081D5A94 -_081D5A78: - ldr r0, _081D5A84 - cmp r2, r0 - bne _081D5A88 - movs r1, #5 - b _081D5A94 - .align 2, 0 -_081D5A84: .4byte 0x000001A3 -_081D5A88: - movs r0, #0xcf - lsls r0, r0, #1 - movs r1, #0 - cmp r2, r0 - bne _081D5A94 - movs r1, #6 -_081D5A94: - adds r0, r1, #0 - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetCurrentTrainerHillMapId - - thumb_func_start sub_081D5A9C -sub_081D5A9C: @ 0x081D5A9C - push {lr} - ldr r0, _081D5AB4 - ldrh r1, [r0, #0x12] - ldr r0, _081D5AB8 - movs r2, #0 - cmp r1, r0 - bne _081D5AAC - movs r2, #1 -_081D5AAC: - adds r0, r2, #0 - pop {r1} - bx r1 - .align 2, 0 -_081D5AB4: .4byte gUnknown_2036FB8 -_081D5AB8: .4byte 0x000001A3 - thumb_func_end sub_081D5A9C - - thumb_func_start sub_081D5ABC -sub_081D5ABC: @ 0x081D5ABC - push {lr} - movs r0, #0x1a - movs r1, #0x40 - bl Overworld_GetMapHeaderByGroupAndId - ldr r0, [r0, #4] - ldr r0, [r0, #8] - adds r0, #8 - pop {r1} - bx r1 - thumb_func_end sub_081D5ABC - - thumb_func_start sub_081D5AD0 -sub_081D5AD0: @ 0x081D5AD0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081D5AE8 - ldr r0, _081D5AE4 - ldr r0, [r0, #4] - ldr r0, [r0, #8] - adds r0, #8 - b _081D5B12 - .align 2, 0 -_081D5AE4: .4byte gUnknown_2036FB8 -_081D5AE8: - bl sub_081D5E30 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - movs r1, #0xff - lsls r1, r1, #0x18 - adds r0, r0, r1 - lsrs r0, r0, #0x18 - cmp r0, #3 - bls _081D5AFE - movs r2, #4 -_081D5AFE: - ldr r1, _081D5B18 - subs r0, r2, #1 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x1a - bl Overworld_GetMapHeaderByGroupAndId - ldr r0, [r0, #4] - ldr r0, [r0, #8] -_081D5B12: - pop {r1} - bx r1 - .align 2, 0 -_081D5B18: .4byte gUnknown_85FB984 - thumb_func_end sub_081D5AD0 - - thumb_func_start sub_081D5B1C -sub_081D5B1C: @ 0x081D5B1C - lsls r0, r0, #0x18 - ldr r1, _081D5B30 - ldr r1, [r1] - lsrs r0, r0, #0x17 - adds r1, r1, r0 - ldr r0, _081D5B34 - adds r1, r1, r0 - ldrh r0, [r1] - bx lr - .align 2, 0 -_081D5B30: .4byte gUnknown_3005AF0 -_081D5B34: .4byte 0x00000CB2 - thumb_func_end sub_081D5B1C - - thumb_func_start GetHillTrainerFlag -GetHillTrainerFlag: @ 0x081D5B38 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - bl GetFloorId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - ldr r2, _081D5B78 - lsls r1, r4, #3 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r1, r1, r2 - adds r0, #0xff - ldrb r1, [r1, #8] - adds r0, r0, r1 - lsls r0, r0, #0x18 - ldr r1, _081D5B7C - ldr r1, [r1] - movs r2, #0xee - lsls r2, r2, #4 - adds r1, r1, r2 - ldr r2, _081D5B80 - lsrs r0, r0, #0x16 - adds r0, r0, r2 - ldr r0, [r0] - ldrb r1, [r1] - ands r0, r1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081D5B78: .4byte gUnknown_2036FF0 -_081D5B7C: .4byte gUnknown_3005AF0 -_081D5B80: .4byte gUnknown_82FACB4 - thumb_func_end GetHillTrainerFlag - - thumb_func_start SetHillTrainerFlag -SetHillTrainerFlag: @ 0x081D5B84 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - bl GetFloorId - lsls r0, r0, #0x19 - lsrs r4, r0, #0x18 - movs r3, #0 - ldr r0, _081D5BCC - mov r8, r0 - ldr r6, _081D5BD0 - ldr r1, _081D5BD4 - mov ip, r1 - adds r5, r6, #0 -_081D5BA0: - ldr r2, [r5] - lsls r0, r3, #1 - ldr r7, _081D5BD8 - adds r1, r2, r7 - adds r1, r1, r0 - ldrh r0, [r1] - mov r1, r8 - ldrh r1, [r1] - cmp r0, r1 - bne _081D5BDC - movs r7, #0xee - lsls r7, r7, #4 - adds r2, r2, r7 - adds r0, r4, r3 - lsls r0, r0, #2 - add r0, ip - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - b _081D5BE6 - .align 2, 0 -_081D5BCC: .4byte gUnknown_203886A -_081D5BD0: .4byte gUnknown_3005AF0 -_081D5BD4: .4byte gUnknown_82FACB4 -_081D5BD8: .4byte 0x00000CB4 -_081D5BDC: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #1 - bls _081D5BA0 -_081D5BE6: - ldr r0, _081D5C24 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - beq _081D5C3E - movs r3, #0 - ldr r5, _081D5C28 - ldr r0, _081D5C2C - mov r8, r0 -_081D5BFC: - ldr r2, [r6] - lsls r0, r3, #1 - ldr r7, _081D5C30 - adds r1, r2, r7 - adds r1, r1, r0 - ldrh r0, [r1] - ldrh r1, [r5] - cmp r0, r1 - bne _081D5C34 - movs r7, #0xee - lsls r7, r7, #4 - adds r2, r2, r7 - adds r0, r4, r3 - lsls r0, r0, #2 - add r0, r8 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - b _081D5C3E - .align 2, 0 -_081D5C24: .4byte gUnknown_2022C90 -_081D5C28: .4byte gUnknown_203886C -_081D5C2C: .4byte gUnknown_82FACB4 -_081D5C30: .4byte 0x00000CB4 -_081D5C34: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #1 - bls _081D5BFC -_081D5C3E: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end SetHillTrainerFlag - - thumb_func_start sub_081D5C48 -sub_081D5C48: @ 0x081D5C48 - ldr r0, _081D5C4C - bx lr - .align 2, 0 -_081D5C4C: .4byte gUnknown_8276D0C - thumb_func_end sub_081D5C48 - - thumb_func_start sub_081D5C50 -sub_081D5C50: @ 0x081D5C50 - push {lr} - ldr r0, _081D5C64 - ldrh r1, [r0] - movs r0, #5 - bl CopyTrainerHillTrainerText - bl sub_08097C40 - pop {r0} - bx r0 - .align 2, 0 -_081D5C64: .4byte gUnknown_2037292 - thumb_func_end sub_081D5C50 - - thumb_func_start sub_081D5C68 -sub_081D5C68: @ 0x081D5C68 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sb, r1 - subs r1, r0, #1 - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bhi _081D5D06 - lsls r0, r1, #0x18 - lsrs r6, r0, #0x18 - bl SetUpDataStruct - bl GetHighestLevelInPlayerParty - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - bl GetFloorId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - mov r5, sb - adds r0, r5, #3 - cmp r5, r0 - bge _081D5D02 - ldr r1, _081D5D14 - lsls r0, r6, #1 - adds r0, r0, r6 - adds r7, r0, r1 -_081D5CB2: - ldrb r2, [r7] - movs r0, #0x64 - adds r4, r5, #0 - muls r4, r0, r4 - ldr r0, _081D5D18 - adds r4, r4, r0 - mov r1, r8 - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #2 - subs r0, r0, r1 - lsls r0, r0, #4 - adds r0, #0xc - ldr r3, _081D5D1C - ldr r1, [r3] - adds r1, r1, r0 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #4 - adds r0, r0, r6 - lsls r0, r0, #2 - adds r0, #4 - adds r1, r1, r0 - movs r0, #0x2c - muls r0, r2, r0 - adds r0, #0x3c - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_08067D80 - adds r0, r4, #0 - mov r1, sl - bl sub_081D5DCC - adds r5, #1 - adds r7, #1 - mov r0, sb - adds r0, #3 - cmp r5, r0 - blt _081D5CB2 -_081D5D02: - bl sub_081D4D64 -_081D5D06: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D5D14: .4byte gUnknown_85FB994 -_081D5D18: .4byte gUnknown_20243E8 -_081D5D1C: .4byte gUnknown_203CC20 - thumb_func_end sub_081D5C68 - - thumb_func_start FillHillTrainerParty -FillHillTrainerParty: @ 0x081D5D20 - push {lr} - bl ZeroEnemyPartyMons - ldr r0, _081D5D34 - ldrh r0, [r0] - movs r1, #0 - bl sub_081D5C68 - pop {r0} - bx r0 - .align 2, 0 -_081D5D34: .4byte gUnknown_203886A - thumb_func_end FillHillTrainerParty - - thumb_func_start FillHillTrainersParties -FillHillTrainersParties: @ 0x081D5D38 - push {lr} - bl ZeroEnemyPartyMons - ldr r0, _081D5D58 - ldrh r0, [r0] - movs r1, #0 - bl sub_081D5C68 - ldr r0, _081D5D5C - ldrh r0, [r0] - movs r1, #3 - bl sub_081D5C68 - pop {r0} - bx r0 - .align 2, 0 -_081D5D58: .4byte gUnknown_203886A -_081D5D5C: .4byte gUnknown_203886C - thumb_func_end FillHillTrainersParties - - thumb_func_start sub_081D5D60 -sub_081D5D60: @ 0x081D5D60 - movs r0, #7 - bx lr - thumb_func_end sub_081D5D60 - - thumb_func_start sub_081D5D64 -sub_081D5D64: @ 0x081D5D64 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - bl SetUpDataStruct - subs r4, #1 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081D5DB0 - ldr r3, [r0] - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #4 - adds r1, r1, r4 - lsls r1, r1, #2 - ldrb r2, [r3] - lsls r0, r2, #4 - subs r0, r0, r2 - lsls r0, r0, #2 - subs r0, r0, r2 - lsls r0, r0, #4 - adds r1, r1, r0 - adds r3, r3, r1 - ldrb r4, [r3, #0x18] - bl sub_081D4D64 - movs r2, #0 - ldr r0, _081D5DB4 - adds r4, r4, r0 - ldrb r3, [r4] - ldr r1, _081D5DB8 -_081D5DA4: - ldrb r0, [r1] - cmp r0, r3 - bne _081D5DBC - ldrb r0, [r1, #1] - b _081D5DC6 - .align 2, 0 -_081D5DB0: .4byte gUnknown_203CC20 -_081D5DB4: .4byte gUnknown_82EFF52 -_081D5DB8: .4byte gUnknown_85FB6A0 -_081D5DBC: - adds r1, #4 - adds r2, #1 - cmp r2, #0x35 - bls _081D5DA4 - movs r0, #0 -_081D5DC6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081D5D64 - - thumb_func_start sub_081D5DCC -sub_081D5DCC: @ 0x081D5DCC - push {r4, r5, lr} - sub sp, #8 - adds r4, r0, #0 - mov r0, sp - strb r1, [r0] - adds r0, r4, #0 - movs r1, #0xb - movs r2, #0 - bl GetMonData - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r5, _081D5E28 - mov r1, sp - ldrb r2, [r1] - lsls r2, r2, #2 - ldr r3, _081D5E2C - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldrb r1, [r1, #0x13] - movs r0, #0xca - lsls r0, r0, #1 - muls r0, r1, r0 - adds r2, r2, r0 - adds r2, r2, r5 - ldr r0, [r2] - str r0, [sp, #4] - add r2, sp, #4 - adds r0, r4, #0 - movs r1, #0x19 - bl SetMonData - adds r0, r4, #0 - movs r1, #0x38 - mov r2, sp - bl SetMonData - adds r0, r4, #0 - bl CalculateMonStats - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081D5E28: .4byte gUnknown_82F00B4 -_081D5E2C: .4byte gUnknown_82F0D54 - thumb_func_end sub_081D5DCC - - thumb_func_start sub_081D5E30 -sub_081D5E30: @ 0x081D5E30 - push {r4, lr} - bl SetUpDataStruct - ldr r0, _081D5E48 - ldr r0, [r0] - ldrb r4, [r0, #6] - bl sub_081D4D64 - adds r0, r4, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081D5E48: .4byte gUnknown_203CC20 - thumb_func_end sub_081D5E30 - - thumb_func_start sub_081D5E4C -sub_081D5E4C: @ 0x081D5E4C - ldr r0, _081D5E5C - ldr r0, [r0] - movs r1, #0xee - lsls r1, r1, #4 - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] - bx lr - .align 2, 0 -_081D5E5C: .4byte gUnknown_3005AF0 - thumb_func_end sub_081D5E4C - - thumb_func_start sub_081D5E60 -sub_081D5E60: @ 0x081D5E60 - push {lr} - bl sub_081D5ED4 - cmp r0, #1 - bne _081D5E74 - ldr r0, _081D5E78 - movs r1, #0x70 - movs r2, #0x20 - bl LoadPalette -_081D5E74: - pop {r0} - bx r0 - .align 2, 0 -_081D5E78: .4byte gUnknown_85FB8C0 - thumb_func_end sub_081D5E60 - - thumb_func_start sub_081D5E7C -sub_081D5E7C: @ 0x081D5E7C - ldr r1, _081D5E90 - ldr r0, _081D5E94 - ldr r0, [r0] - ldr r2, _081D5E98 - adds r0, r0, r2 - ldrb r0, [r0] - lsrs r0, r0, #7 - strh r0, [r1] - bx lr - .align 2, 0 -_081D5E90: .4byte gUnknown_2037290 -_081D5E94: .4byte gUnknown_3005AF0 -_081D5E98: .4byte 0x00000EF9 - thumb_func_end sub_081D5E7C - - thumb_func_start sub_081D5E9C -sub_081D5E9C: @ 0x081D5E9C - ldr r0, _081D5EB0 - ldr r1, [r0] - ldr r0, _081D5EB4 - adds r1, r1, r0 - ldrb r0, [r1] - movs r2, #0x80 - orrs r0, r2 - strb r0, [r1] - bx lr - .align 2, 0 -_081D5EB0: .4byte gUnknown_3005AF0 -_081D5EB4: .4byte 0x00000EF9 - thumb_func_end sub_081D5E9C - - thumb_func_start sub_081D5EB8 -sub_081D5EB8: @ 0x081D5EB8 - ldr r0, _081D5ECC - ldr r1, [r0] - ldr r0, _081D5ED0 - adds r1, r1, r0 - ldrb r2, [r1] - movs r0, #0x7f - ands r0, r2 - strb r0, [r1] - bx lr - .align 2, 0 -_081D5ECC: .4byte gUnknown_3005AF0 -_081D5ED0: .4byte 0x00000EF9 - thumb_func_end sub_081D5EB8 - - thumb_func_start sub_081D5ED4 -sub_081D5ED4: @ 0x081D5ED4 - push {lr} - bl sub_081D52F0 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D5F00 - bl GetCurrentTrainerHillMapId - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #6 - beq _081D5F00 - bl sub_081D5238 - ldr r0, _081D5EFC - ldrh r0, [r0] - cmp r0, #0 - beq _081D5F00 - movs r0, #1 - b _081D5F02 - .align 2, 0 -_081D5EFC: .4byte gUnknown_2037290 -_081D5F00: - movs r0, #0 -_081D5F02: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081D5ED4 - - thumb_func_start sub_081D5F08 -sub_081D5F08: @ 0x081D5F08 - push {lr} - ldr r0, _081D5F24 - ldr r0, [r0] - ldr r1, _081D5F28 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _081D5F30 - ldr r1, _081D5F2C - movs r0, #0 - b _081D5F34 - .align 2, 0 -_081D5F24: .4byte gUnknown_3005AEC -_081D5F28: .4byte 0x00003D6E -_081D5F2C: .4byte gUnknown_2037290 -_081D5F30: - ldr r1, _081D5F3C - movs r0, #1 -_081D5F34: - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_081D5F3C: .4byte gUnknown_2037290 - thumb_func_end sub_081D5F08 - - thumb_func_start sub_081D5F40 -sub_081D5F40: @ 0x081D5F40 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - movs r3, #0 - movs r4, #0 - ldr r0, _081D5F94 - ldr r6, [r0] - movs r5, #0x1f -_081D5F50: - lsls r1, r4, #4 - subs r1, r1, r4 - lsls r1, r1, #2 - subs r1, r1, r4 - lsls r1, r1, #4 - adds r1, r6, r1 - ldrb r2, [r1, #0xc] - adds r0, r5, #0 - ands r0, r2 - eors r3, r0 - ldrb r1, [r1, #0xd] - adds r0, r5, #0 - ands r0, r1 - eors r3, r0 - lsls r0, r3, #0x18 - lsrs r3, r0, #0x18 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _081D5F50 - movs r1, #5 - cmp r7, #0 - beq _081D5F82 - movs r1, #0xa -_081D5F82: - adds r0, r3, #0 - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - adds r0, r3, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081D5F94: .4byte gUnknown_203CC20 - thumb_func_end sub_081D5F40 - - thumb_func_start AllocOamMatrix -AllocOamMatrix: @ 0x081D5F98 - push {r4, lr} - movs r3, #0 - movs r2, #0 - ldr r0, _081D5FF0 - ldr r4, [r0] -_081D5FA2: - lsls r0, r2, #4 - subs r0, r0, r2 - lsls r0, r0, #2 - subs r0, r0, r2 - lsls r0, r0, #4 - adds r0, r4, r0 - ldrb r1, [r0, #0xc] - adds r1, r3, r1 - ldrb r0, [r0, #0xd] - adds r3, r1, r0 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #3 - bls _081D5FA2 - adds r0, r3, #0 - cmp r0, #0 - bge _081D5FC8 - adds r0, #0xff -_081D5FC8: - asrs r4, r0, #8 - lsrs r0, r0, #0x1f - adds r0, r4, r0 - asrs r0, r0, #1 - lsls r0, r0, #1 - subs r4, r4, r0 - ldr r0, _081D5FF4 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D5FF8 - ldr r0, _081D5FF0 - ldr r0, [r0] - ldrb r0, [r0, #4] - cmp r0, #8 - bne _081D5FF8 - movs r0, #1 - b _081D5FFA - .align 2, 0 -_081D5FF0: .4byte gUnknown_203CC20 -_081D5FF4: .4byte 0x00000864 -_081D5FF8: - movs r0, #0 -_081D5FFA: - bl sub_081D5F40 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _081D6050 - lsls r0, r4, #2 - adds r0, r0, r1 - ldr r1, [r0] - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r4, [r0] - ldr r0, _081D6054 - ldr r0, [r0] - ldr r1, _081D6058 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0xe1 - lsls r1, r1, #4 - bl __divsi3 - movs r1, #0 - cmp r0, #0xb - ble _081D6042 - movs r1, #1 - cmp r0, #0xc - ble _081D6042 - movs r1, #2 - cmp r0, #0xd - ble _081D6042 - movs r1, #3 - cmp r0, #0xf - ble _081D6042 - movs r1, #5 - cmp r0, #0x11 - bgt _081D6042 - movs r1, #4 -_081D6042: - lsls r0, r1, #1 - adds r0, r0, r4 - ldrh r0, [r0] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081D6050: .4byte gUnknown_85FB8B8 -_081D6054: .4byte gUnknown_3005AEC -_081D6058: .4byte 0x00003D64 - thumb_func_end AllocOamMatrix - - thumb_func_start DoRayquazaScene -DoRayquazaScene: @ 0x081D605C - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r4, r0, #0 - adds r5, r1, #0 - mov r8, r2 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r6, _081D609C - ldr r0, _081D60A0 - bl AllocZeroed - str r0, [r6] - ldr r1, _081D60A4 - adds r0, r0, r1 - strb r4, [r0] - ldr r0, [r6] - mov r1, r8 - str r1, [r0] - ldr r1, _081D60A8 - adds r0, r0, r1 - strb r5, [r0] - ldr r0, _081D60AC - bl SetMainCallback2 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081D609C: .4byte gUnknown_203CC2C -_081D60A0: .4byte 0x00002018 -_081D60A4: .4byte 0x00002006 -_081D60A8: .4byte 0x00002007 -_081D60AC: .4byte CB2_InitRayquazaScene - thumb_func_end DoRayquazaScene - - thumb_func_start CB2_InitRayquazaScene -CB2_InitRayquazaScene: @ 0x081D60B0 - push {lr} - bl SetVBlankHBlankCallbacksToNull - bl sub_08199640 - bl ScanlineEffect_Stop - bl FreeAllSpritePalettes - bl ResetPaletteFade - bl ResetSpriteData - bl ResetTasks - movs r0, #0 - movs r1, #0xf0 - movs r2, #0x20 - bl FillPalette - ldr r1, _081D60FC - ldr r0, _081D6100 - ldr r0, [r0] - ldr r2, _081D6104 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0 - bl CreateTask - ldr r0, _081D6108 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_081D60FC: .4byte gUnknown_85FB99C -_081D6100: .4byte gUnknown_203CC2C -_081D6104: .4byte 0x00002006 -_081D6108: .4byte sub_081D610C - thumb_func_end CB2_InitRayquazaScene - - thumb_func_start sub_081D610C -sub_081D610C: @ 0x081D610C - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081D610C - - thumb_func_start VBlankCB_RayquazaScene -VBlankCB_RayquazaScene: @ 0x081D6128 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end VBlankCB_RayquazaScene - - thumb_func_start Task_EndAfterFadeScreen -Task_EndAfterFadeScreen: @ 0x081D613C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, _081D6174 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081D616C - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r4, _081D6178 - ldr r0, [r4] - ldr r0, [r0] - bl SetMainCallback2 - ldr r0, [r4] - bl Free - adds r0, r5, #0 - bl DestroyTask -_081D616C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081D6174: .4byte gUnknown_2037C74 -_081D6178: .4byte gUnknown_203CC2C - thumb_func_end Task_EndAfterFadeScreen - - thumb_func_start Task_SetNextAnim -Task_SetNextAnim: @ 0x081D617C - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - adds r6, r3, #0 - ldr r0, _081D61B0 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _081D61EE - ldr r2, _081D61B4 - ldr r1, [r2] - ldr r4, _081D61B8 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, #1 - bne _081D61C4 - ldr r0, _081D61BC - lsls r1, r3, #2 - adds r1, r1, r3 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081D61C0 - b _081D61EC - .align 2, 0 -_081D61B0: .4byte gUnknown_2037C74 -_081D61B4: .4byte gUnknown_203CC2C -_081D61B8: .4byte 0x00002007 -_081D61BC: .4byte gUnknown_3005B60 -_081D61C0: .4byte Task_EndAfterFadeScreen -_081D61C4: - ldr r4, _081D61F4 - adds r1, r1, r4 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r2, [r2] - ldr r1, _081D61F8 - adds r0, r2, r1 - strh r5, [r0] - ldr r0, _081D61FC - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r3, _081D6200 - adds r2, r2, r4 - ldrb r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r3 - ldr r0, [r0] -_081D61EC: - str r0, [r1] -_081D61EE: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081D61F4: .4byte 0x00002006 -_081D61F8: .4byte 0x00002004 -_081D61FC: .4byte gUnknown_3005B60 -_081D6200: .4byte gUnknown_85FB99C - thumb_func_end Task_SetNextAnim - - thumb_func_start sub_081D6204 -sub_081D6204: @ 0x081D6204 - push {lr} - movs r0, #0x48 - movs r1, #0x3f - bl SetGpuReg - movs r0, #0x4a - movs r1, #0 - bl SetGpuReg - movs r0, #0x40 - movs r1, #0xf0 - bl SetGpuReg - ldr r1, _081D6234 - movs r0, #0x44 - bl SetGpuReg - ldr r0, _081D6238 - movs r1, #0 - strh r1, [r0] - ldr r0, _081D623C - strh r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_081D6234: .4byte 0x00001888 -_081D6238: .4byte gUnknown_20373B4 -_081D623C: .4byte gUnknown_20377B4 - thumb_func_end sub_081D6204 - - thumb_func_start sub_081D6240 -sub_081D6240: @ 0x081D6240 - push {lr} - movs r0, #0x48 - movs r1, #0x3f - bl SetGpuReg - movs r0, #0x4a - movs r1, #0x3f - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081D6240 - - thumb_func_start Task_HandleDuoFightPre -Task_HandleDuoFightPre: @ 0x081D6258 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r4, r0, #0 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _081D6288 - adds r5, r0, r1 - bl sub_081D6E48 - ldr r0, _081D628C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081D62BA - movs r0, #0 - ldrsh r1, [r5, r0] - cmp r1, #0x40 - bne _081D6290 - bl sub_081D6D74 - b _081D62B4 - .align 2, 0 -_081D6288: .4byte gUnknown_3005B68 -_081D628C: .4byte gUnknown_2037C74 -_081D6290: - cmp r1, #0x90 - bne _081D629A - bl sub_081D6DBC - b _081D62B4 -_081D629A: - cmp r1, #0x94 - beq _081D62B0 - movs r0, #0xa4 - lsls r0, r0, #1 - cmp r1, r0 - bne _081D62B4 - adds r0, r4, #0 - movs r1, #0 - bl DuoFightEnd - b _081D62BA -_081D62B0: - bl sub_081D6E04 -_081D62B4: - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] -_081D62BA: - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end Task_HandleDuoFightPre - - thumb_func_start sub_081D62C0 -sub_081D62C0: @ 0x081D62C0 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - ldr r0, _081D6348 - mov r8, r0 - movs r1, #0x58 - movs r2, #0x48 - movs r3, #3 - bl CreateSprite - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r6, _081D634C - lsls r4, r5, #4 - adds r4, r4, r5 - lsls r4, r4, #2 - adds r0, r6, #0 - adds r0, #0x1c - adds r0, r4, r0 - ldr r1, _081D6350 - str r1, [r0] - adds r0, r6, #0 - adds r0, #0x2e - adds r4, r4, r0 - mov r0, r8 - movs r1, #0x38 - movs r2, #0x68 - movs r3, #3 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - ldr r0, _081D6354 - movs r1, #0x4b - movs r2, #0x65 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #2] - ldr r0, _081D6358 - movs r1, #0x6d - movs r2, #0x72 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #4] - movs r0, #0 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #1 - bl StartSpriteAnim - adds r0, r5, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_081D6348: .4byte gUnknown_85FBA28 -_081D634C: .4byte gUnknown_20205AC -_081D6350: .4byte sub_081D635C -_081D6354: .4byte gUnknown_85FBA4C -_081D6358: .4byte gUnknown_85FBA70 - thumb_func_end sub_081D62C0 - - thumb_func_start sub_081D635C -sub_081D635C: @ 0x081D635C - push {r4, lr} - adds r3, r0, #0 - movs r0, #0x2e - adds r0, r0, r3 - mov ip, r0 - ldrh r0, [r0, #0xa] - adds r0, #1 - movs r1, #0x1f - ands r0, r1 - mov r1, ip - strh r0, [r1, #0xa] - cmp r0, #0 - bne _081D63C0 - ldrh r1, [r3, #0x20] - movs r2, #0x20 - ldrsh r0, [r3, r2] - cmp r0, #0x48 - beq _081D63C0 - subs r0, r1, #1 - strh r0, [r3, #0x20] - ldr r2, _081D63D4 - movs r4, #0x2e - ldrsh r1, [r3, r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x20] - subs r1, #1 - strh r1, [r0, #0x20] - mov r0, ip - movs r4, #2 - ldrsh r1, [r0, r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x20] - subs r1, #1 - strh r1, [r0, #0x20] - mov r0, ip - movs r4, #4 - ldrsh r1, [r0, r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x20] - subs r1, #1 - strh r1, [r0, #0x20] -_081D63C0: - adds r0, r3, #0 - adds r0, #0x2b - ldrb r3, [r0] - cmp r3, #1 - beq _081D6420 - cmp r3, #1 - bgt _081D63D8 - cmp r3, #0 - beq _081D63E2 - b _081D64A4 - .align 2, 0 -_081D63D4: .4byte gUnknown_20205AC -_081D63D8: - cmp r3, #2 - beq _081D6460 - cmp r3, #3 - beq _081D6420 - b _081D64A4 -_081D63E2: - ldr r2, _081D641C - mov r0, ip - movs r4, #2 - ldrsh r1, [r0, r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r3, [r0, #0x24] - mov r0, ip - movs r4, #2 - ldrsh r1, [r0, r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r3, [r0, #0x26] - mov r0, ip - movs r4, #4 - ldrsh r1, [r0, r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r3, [r0, #0x24] - mov r0, ip - movs r4, #4 - ldrsh r1, [r0, r4] - b _081D649A - .align 2, 0 -_081D641C: .4byte gUnknown_20205AC -_081D6420: - ldr r2, _081D6458 - mov r0, ip - movs r3, #2 - ldrsh r1, [r0, r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, _081D645C - strh r1, [r0, #0x24] - mov r4, ip - movs r0, #2 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r3, #0 - strh r3, [r0, #0x26] - movs r0, #4 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #1 - rsbs r1, r1, #0 - b _081D6494 - .align 2, 0 -_081D6458: .4byte gUnknown_20205AC -_081D645C: .4byte 0x0000FFFF -_081D6460: - ldr r2, _081D64AC - mov r3, ip - movs r4, #2 - ldrsh r1, [r3, r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, _081D64B0 - strh r1, [r0, #0x24] - movs r0, #2 - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r3, #1 - strh r3, [r0, #0x26] - mov r4, ip - movs r0, #4 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, _081D64B4 -_081D6494: - strh r1, [r0, #0x24] - movs r0, #4 - ldrsh r1, [r4, r0] -_081D649A: - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r3, [r0, #0x26] -_081D64A4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D64AC: .4byte gUnknown_20205AC -_081D64B0: .4byte 0x0000FFFF -_081D64B4: .4byte 0x0000FFFE - thumb_func_end sub_081D635C - - thumb_func_start sub_081D64B8 -sub_081D64B8: @ 0x081D64B8 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - ldr r5, _081D6648 - adds r0, r5, #0 - movs r1, #0x88 - movs r2, #0x60 - movs r3, #1 - bl CreateSprite - mov r8, r0 - mov r0, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r6, _081D664C - lsls r4, r0, #4 - add r4, r8 - lsls r4, r4, #2 - adds r0, r6, #0 - adds r0, #0x1c - adds r0, r4, r0 - ldr r1, _081D6650 - str r1, [r0] - adds r0, r6, #0 - adds r0, #0x2e - adds r4, r4, r0 - adds r0, r5, #0 - movs r1, #0xa8 - movs r2, #0x60 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #8 - strh r0, [r4] - adds r0, r5, #0 - movs r1, #0x88 - movs r2, #0x70 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4] - orrs r0, r1 - strh r0, [r4] - adds r0, r5, #0 - movs r1, #0xa8 - movs r2, #0x70 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #8 - strh r0, [r4, #2] - adds r0, r5, #0 - movs r1, #0x88 - movs r2, #0x80 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #2] - orrs r0, r1 - strh r0, [r4, #2] - adds r0, r5, #0 - movs r1, #0xa8 - movs r2, #0x80 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #8 - strh r0, [r4, #4] - adds r0, r5, #0 - movs r1, #0x68 - movs r2, #0x80 - movs r3, #2 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #4] - orrs r0, r1 - strh r0, [r4, #4] - adds r0, r5, #0 - movs r1, #0x88 - movs r2, #0x80 - movs r3, #2 - bl CreateSprite - lsls r0, r0, #8 - strh r0, [r4, #6] - adds r0, r5, #0 - movs r1, #0xb8 - movs r2, #0x80 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #6] - orrs r0, r1 - strh r0, [r4, #6] - ldr r0, _081D6654 - movs r1, #0xd0 - movs r2, #0x84 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #8 - strh r0, [r4, #8] - ldr r0, _081D6658 - movs r1, #0xc8 - movs r2, #0x78 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #8] - orrs r0, r1 - strh r0, [r4, #8] - ldrh r1, [r4] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #1 - bl StartSpriteAnim - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #2 - bl StartSpriteAnim - ldrh r1, [r4, #2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #3 - bl StartSpriteAnim - ldrb r1, [r4, #2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #4 - bl StartSpriteAnim - ldrh r1, [r4, #4] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #5 - bl StartSpriteAnim - ldrb r1, [r4, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #6 - bl StartSpriteAnim - ldrh r1, [r4, #6] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #7 - bl StartSpriteAnim - ldrb r1, [r4, #6] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #8 - bl StartSpriteAnim - mov r0, r8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_081D6648: .4byte gUnknown_85FBB18 -_081D664C: .4byte gUnknown_20205AC -_081D6650: .4byte sub_081D665C -_081D6654: .4byte gUnknown_85FBB48 -_081D6658: .4byte gUnknown_85FBB60 - thumb_func_end sub_081D64B8 - - thumb_func_start sub_081D665C -sub_081D665C: @ 0x081D665C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r3, r4, #0 - adds r3, #0x2e - ldrh r0, [r3, #0xa] - adds r0, #1 - movs r1, #0x1f - ands r0, r1 - strh r0, [r3, #0xa] - ldr r7, _081D676C - cmp r0, #0 - bne _081D674A - ldrh r1, [r4, #0x20] - movs r2, #0x20 - ldrsh r0, [r4, r2] - cmp r0, #0x98 - beq _081D674A - adds r0, r1, #1 - strh r0, [r4, #0x20] - ldrh r1, [r4, #0x2e] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrh r1, [r0, #0x20] - adds r1, #1 - strh r1, [r0, #0x20] - ldrh r0, [r4, #0x2e] - movs r2, #0xff - adds r1, r2, #0 - ands r1, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrh r1, [r0, #0x20] - adds r1, #1 - strh r1, [r0, #0x20] - ldrh r1, [r3, #2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrh r1, [r0, #0x20] - adds r1, #1 - strh r1, [r0, #0x20] - ldrh r0, [r3, #2] - adds r1, r2, #0 - ands r1, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrh r1, [r0, #0x20] - adds r1, #1 - strh r1, [r0, #0x20] - ldrh r1, [r3, #4] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrh r1, [r0, #0x20] - adds r1, #1 - strh r1, [r0, #0x20] - ldrh r0, [r3, #4] - adds r1, r2, #0 - ands r1, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrh r1, [r0, #0x20] - adds r1, #1 - strh r1, [r0, #0x20] - ldrh r1, [r3, #6] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrh r1, [r0, #0x20] - adds r1, #1 - strh r1, [r0, #0x20] - ldrh r0, [r3, #6] - adds r1, r2, #0 - ands r1, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrh r1, [r0, #0x20] - adds r1, #1 - strh r1, [r0, #0x20] - ldrh r1, [r3, #8] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrh r1, [r0, #0x20] - adds r1, #1 - strh r1, [r0, #0x20] - ldrh r0, [r3, #8] - ands r2, r0 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrh r1, [r0, #0x20] - adds r1, #1 - strh r1, [r0, #0x20] -_081D674A: - adds r6, r7, #0 - movs r5, #0xff - ldrb r1, [r3, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x2b - ldrb r2, [r0] - cmp r2, #1 - beq _081D681C - cmp r2, #1 - bgt _081D6770 - cmp r2, #0 - beq _081D677C - b _081D6904 - .align 2, 0 -_081D676C: .4byte gUnknown_20205AC -_081D6770: - cmp r2, #2 - bne _081D6776 - b _081D68A4 -_081D6776: - cmp r2, #3 - beq _081D681C - b _081D6904 -_081D677C: - strh r2, [r4, #0x26] - ldrh r1, [r3] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - strh r2, [r0, #0x26] - ldrh r0, [r3] - adds r1, r5, #0 - ands r1, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - strh r2, [r0, #0x26] - ldrh r1, [r3, #2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - strh r2, [r0, #0x26] - ldrh r0, [r3, #2] - adds r1, r5, #0 - ands r1, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - strh r2, [r0, #0x26] - ldrh r1, [r3, #4] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - strh r2, [r0, #0x26] - ldrh r0, [r3, #4] - adds r1, r5, #0 - ands r1, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - strh r2, [r0, #0x26] - ldrh r1, [r3, #6] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - strh r2, [r0, #0x26] - ldrh r0, [r3, #6] - adds r1, r5, #0 - ands r1, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - strh r2, [r0, #0x26] - ldrh r1, [r3, #8] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - strh r2, [r0, #0x26] - ldrh r1, [r3, #8] - ands r1, r5 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - b _081D6902 -_081D681C: - movs r2, #1 - strh r2, [r4, #0x26] - ldrh r1, [r3] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r2, [r0, #0x26] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r2, [r0, #0x26] - ldrh r1, [r3, #2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r2, [r0, #0x26] - ldrb r1, [r3, #2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r2, [r0, #0x26] - ldrh r1, [r3, #4] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r2, [r0, #0x26] - ldrb r1, [r3, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r2, [r0, #0x26] - ldrh r1, [r3, #6] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r2, [r0, #0x26] - ldrb r1, [r3, #6] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r2, [r0, #0x26] - ldrh r1, [r3, #8] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r2, [r0, #0x26] - ldrb r1, [r3, #8] - b _081D68FA -_081D68A4: - strh r2, [r4, #0x26] - ldrh r1, [r3] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r2, [r0, #0x26] - ldrh r0, [r3] - adds r1, r5, #0 - ands r1, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r2, [r0, #0x26] - ldrh r1, [r3, #2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r2, [r0, #0x26] - ldrh r0, [r3, #2] - adds r1, r5, #0 - ands r1, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r2, [r0, #0x26] - ldrh r1, [r3, #4] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r2, [r0, #0x26] - ldrh r1, [r3, #8] - ands r1, r5 -_081D68FA: - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 -_081D6902: - strh r2, [r0, #0x26] -_081D6904: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081D665C - - thumb_func_start VBlankCB_DuoFight -VBlankCB_DuoFight: @ 0x081D690C - push {lr} - bl VBlankCB_RayquazaScene - bl ScanlineEffect_InitHBlankDmaTransfer - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end VBlankCB_DuoFight - - thumb_func_start sub_081D691C -sub_081D691C: @ 0x081D691C - push {r4, lr} - bl ResetVramOamAndBgCntRegs - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _081D6998 - movs r0, #0 - movs r2, #3 - bl InitBgsFromTemplates - ldr r4, _081D699C - ldr r1, [r4] - adds r1, #4 - movs r0, #0 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, _081D69A0 - adds r1, r1, r0 - movs r0, #1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, _081D69A4 - adds r1, r1, r0 - movs r0, #2 - bl SetBgTilemapBuffer - bl ResetAllBgsCoordinates - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D6998: .4byte gUnknown_85FBB84 -_081D699C: .4byte gUnknown_203CC2C -_081D69A0: .4byte 0x00000804 -_081D69A4: .4byte 0x00001004 - thumb_func_end sub_081D691C - - thumb_func_start sub_081D69A8 -sub_081D69A8: @ 0x081D69A8 - push {r4, lr} - sub sp, #4 - bl reset_temp_tile_data_buffers - ldr r1, _081D6A30 - movs r0, #0 - str r0, [sp] - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram -_081D69BE: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081D69BE - ldr r0, _081D6A34 - ldr r4, _081D6A38 - ldr r1, [r4] - adds r1, #4 - bl sub_08034370 - ldr r0, _081D6A3C - ldr r1, [r4] - ldr r2, _081D6A40 - adds r1, r1, r2 - bl sub_08034370 - ldr r0, _081D6A44 - ldr r1, [r4] - ldr r2, _081D6A48 - adds r1, r1, r2 - bl sub_08034370 - ldr r0, _081D6A4C - movs r1, #0 - movs r2, #0x40 - bl LoadCompressedPalette - ldr r0, _081D6A50 - bl LoadCompressedSpriteSheet - ldr r0, _081D6A54 - bl LoadCompressedSpriteSheet - ldr r0, _081D6A58 - bl LoadCompressedSpriteSheet - ldr r0, _081D6A5C - bl LoadCompressedSpriteSheet - ldr r0, _081D6A60 - bl LoadCompressedSpriteSheet - ldr r0, _081D6A64 - bl LoadCompressedSpriteSheet - ldr r0, _081D6A68 - bl LoadCompressedSpritePalette - ldr r0, _081D6A6C - bl LoadCompressedSpritePalette - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D6A30: .4byte gUnknown_8DA3668 -_081D6A34: .4byte gUnknown_8DA3C30 -_081D6A38: .4byte gUnknown_203CC2C -_081D6A3C: .4byte gUnknown_8DA3ACC -_081D6A40: .4byte 0x00000804 -_081D6A44: .4byte gUnknown_8DA3D30 -_081D6A48: .4byte 0x00001004 -_081D6A4C: .4byte gUnknown_8DA3A90 -_081D6A50: .4byte gUnknown_85FBBC0 -_081D6A54: .4byte gUnknown_85FBBF4 -_081D6A58: .4byte gUnknown_85FBC20 -_081D6A5C: .4byte gUnknown_85FBCD0 -_081D6A60: .4byte gUnknown_85FBD10 -_081D6A64: .4byte gUnknown_85FBD30 -_081D6A68: .4byte gUnknown_85FBBC8 -_081D6A6C: .4byte gUnknown_85FBCD8 - thumb_func_end sub_081D69A8 - - thumb_func_start Task_DuoFightAnim -Task_DuoFightAnim: @ 0x081D6A70 - push {r4, r5, r6, r7, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r6, r1, #3 - ldr r7, _081D6AE8 - adds r5, r6, r7 - bl ScanlineEffect_Clear - bl sub_081D691C - bl sub_081D69A8 - movs r4, #0 - str r4, [sp, #4] - ldr r1, _081D6AEC - ldr r2, _081D6AF0 - add r0, sp, #4 - bl CpuFastSet - ldr r2, _081D6AF4 - ldr r0, [r2] - ldr r1, [r2, #4] - ldr r2, [r2, #8] - bl ScanlineEffect_SetParams - strh r4, [r5] - ldr r0, _081D6AF8 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #2] - ldr r0, _081D6AFC - ldr r0, [r0] - ldr r1, _081D6B00 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _081D6B08 - bl sub_081D62C0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #4] - bl sub_081D64B8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #6] - adds r0, r7, #0 - subs r0, #8 - adds r0, r6, r0 - ldr r1, _081D6B04 - str r1, [r0] - b _081D6B2A - .align 2, 0 -_081D6AE8: .4byte gUnknown_3005B68 -_081D6AEC: .4byte gUnknown_20388C8 -_081D6AF0: .4byte 0x010003C0 -_081D6AF4: .4byte gUnknown_85FBB78 -_081D6AF8: .4byte sub_081D6B64 -_081D6AFC: .4byte gUnknown_203CC2C -_081D6B00: .4byte 0x00002006 -_081D6B04: .4byte Task_HandleDuoFightPre -_081D6B08: - bl sub_081D6FA0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #4] - bl sub_081D71F8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #6] - adds r0, r7, #0 - subs r0, #8 - adds r0, r6, r0 - ldr r1, _081D6B5C - str r1, [r0] - bl StopMapMusic -_081D6B2A: - movs r4, #1 - rsbs r4, r4, #0 - adds r0, r4, #0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - movs r0, #0 - str r0, [sp] - adds r0, r4, #0 - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - ldr r0, _081D6B60 - bl SetVBlankCallback - movs r0, #0x53 - bl sub_080A306C - add sp, #8 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D6B5C: .4byte Task_HandleDuoFight -_081D6B60: .4byte VBlankCB_DuoFight - thumb_func_end Task_DuoFightAnim - - thumb_func_start sub_081D6B64 -sub_081D6B64: @ 0x081D6B64 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _081D6B9C - adds r3, r1, r0 - movs r1, #0x18 - ldr r7, _081D6BA0 - ldr r4, _081D6BA4 - movs r0, #0xf0 - lsls r0, r0, #3 - adds r5, r4, r0 -_081D6B80: - lsls r0, r1, #0x10 - asrs r1, r0, #0x10 - adds r6, r0, #0 - cmp r1, #0x2f - bgt _081D6BA8 - lsls r1, r1, #1 - adds r2, r1, r4 - ldrh r0, [r3] - lsrs r0, r0, #8 - strh r0, [r2] - adds r1, r1, r5 - ldrh r0, [r3] - b _081D6C06 - .align 2, 0 -_081D6B9C: .4byte gUnknown_3005B68 -_081D6BA0: .4byte gUnknown_203CC2C -_081D6BA4: .4byte gUnknown_20388C8 -_081D6BA8: - cmp r1, #0x3f - bgt _081D6BBC - lsls r1, r1, #1 - adds r2, r1, r4 - ldrh r0, [r3, #2] - lsrs r0, r0, #8 - strh r0, [r2] - adds r1, r1, r5 - ldrh r0, [r3, #2] - b _081D6C06 -_081D6BBC: - cmp r1, #0x4b - bgt _081D6BD0 - lsls r1, r1, #1 - adds r2, r1, r4 - ldrh r0, [r3, #4] - lsrs r0, r0, #8 - strh r0, [r2] - adds r1, r1, r5 - ldrh r0, [r3, #4] - b _081D6C06 -_081D6BD0: - cmp r1, #0x53 - bgt _081D6BE4 - lsls r1, r1, #1 - adds r2, r1, r4 - ldrh r0, [r3, #6] - lsrs r0, r0, #8 - strh r0, [r2] - adds r1, r1, r5 - ldrh r0, [r3, #6] - b _081D6C06 -_081D6BE4: - cmp r1, #0x57 - bgt _081D6BF8 - lsls r1, r1, #1 - adds r2, r1, r4 - ldrh r0, [r3, #8] - lsrs r0, r0, #8 - strh r0, [r2] - adds r1, r1, r5 - ldrh r0, [r3, #8] - b _081D6C06 -_081D6BF8: - lsls r1, r1, #1 - adds r2, r1, r4 - ldrh r0, [r3, #0xa] - lsrs r0, r0, #8 - strh r0, [r2] - adds r1, r1, r5 - ldrh r0, [r3, #0xa] -_081D6C06: - lsrs r0, r0, #8 - strh r0, [r1] - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r6, r1 - lsrs r1, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x5b - ble _081D6B80 - ldr r0, [r7] - ldr r1, _081D6C5C - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _081D6C60 - movs r1, #0xe0 - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r1, [r3] - adds r0, r0, r1 - strh r0, [r3] - movs r1, #0xc0 - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r1, [r3, #2] - adds r0, r0, r1 - strh r0, [r3, #2] - movs r1, #0xa0 - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r1, [r3, #4] - adds r0, r0, r1 - strh r0, [r3, #4] - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r1, [r3, #6] - adds r0, r0, r1 - strh r0, [r3, #6] - ldrh r0, [r3, #8] - adds r0, #0xc0 - b _081D6C9A - .align 2, 0 -_081D6C5C: .4byte 0x00002006 -_081D6C60: - movs r1, #0xc0 - lsls r1, r1, #2 - adds r0, r1, #0 - ldrh r1, [r3] - adds r0, r0, r1 - strh r0, [r3] - movs r1, #0xa0 - lsls r1, r1, #2 - adds r0, r1, #0 - ldrh r1, [r3, #2] - adds r0, r0, r1 - strh r0, [r3, #2] - movs r1, #0x80 - lsls r1, r1, #2 - adds r0, r1, #0 - ldrh r1, [r3, #4] - adds r0, r0, r1 - strh r0, [r3, #4] - movs r1, #0xc0 - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r1, [r3, #6] - adds r0, r0, r1 - strh r0, [r3, #6] - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r1, [r3, #8] - adds r0, r0, r1 -_081D6C9A: - strh r0, [r3, #8] - ldrh r0, [r3, #0xa] - adds r0, #0x80 - strh r0, [r3, #0xa] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_081D6B64 - - thumb_func_start Task_HandleDuoFight -Task_HandleDuoFight: @ 0x081D6CA8 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r7, _081D6CE0 - adds r4, r0, r7 - bl sub_081D6E48 - ldr r0, _081D6CE4 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - bne _081D6D6A - movs r0, #0 - ldrsh r1, [r4, r0] - cmp r1, #0x20 - beq _081D6CD8 - cmp r1, #0x70 - bne _081D6CE8 -_081D6CD8: - bl sub_081D6D74 - b _081D6D64 - .align 2, 0 -_081D6CE0: .4byte gUnknown_3005B68 -_081D6CE4: .4byte gUnknown_2037C74 -_081D6CE8: - cmp r1, #0xd8 - bne _081D6CF2 - bl sub_081D6DBC - b _081D6D64 -_081D6CF2: - cmp r1, #0xdc - bne _081D6CFC - bl sub_081D6E04 - b _081D6D64 -_081D6CFC: - movs r0, #0xbe - lsls r0, r0, #1 - cmp r1, r0 - beq _081D6D14 - adds r0, #0x20 - cmp r1, r0 - bne _081D6D64 - adds r0, r5, #0 - movs r1, #2 - bl DuoFightEnd - b _081D6D6A -_081D6D14: - movs r1, #0x91 - lsls r1, r1, #2 - movs r0, #0x50 - bl SetGpuReg - adds r2, r7, #0 - subs r2, #8 - movs r0, #2 - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldr r1, _081D6D70 - str r1, [r0] - movs r0, #2 - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - strh r6, [r0, #8] - movs r0, #2 - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrh r1, [r4, #4] - strh r1, [r0, #0xc] - movs r0, #2 - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrh r1, [r4, #6] - strh r1, [r0, #0xe] - bl ScanlineEffect_Stop -_081D6D64: - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] -_081D6D6A: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D6D70: .4byte sub_081D6E68 - thumb_func_end Task_HandleDuoFight - - thumb_func_start sub_081D6D74 -sub_081D6D74: @ 0x081D6D74 - push {r4, lr} - sub sp, #0xc - movs r0, #0x57 - bl sub_080A306C - ldr r0, _081D6DB0 - ldr r1, _081D6DB4 - str r1, [sp] - movs r4, #0 - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl sub_080A250C - ldr r0, _081D6DB8 - str r4, [sp] - str r4, [sp, #4] - movs r1, #1 - str r1, [sp, #8] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl sub_080A250C - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D6DB0: .4byte 0x00007FFF -_081D6DB4: .4byte 0x0000FFFF -_081D6DB8: .4byte 0xFFFF0000 - thumb_func_end sub_081D6D74 - - thumb_func_start sub_081D6DBC -sub_081D6DBC: @ 0x081D6DBC - push {r4, lr} - sub sp, #0xc - movs r0, #0x57 - bl sub_080A306C - ldr r0, _081D6DF8 - ldr r1, _081D6DFC - str r1, [sp] - movs r4, #0 - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #0 - movs r2, #0x10 - movs r3, #0x10 - bl sub_080A250C - ldr r0, _081D6E00 - str r4, [sp] - str r4, [sp, #4] - movs r1, #1 - str r1, [sp, #8] - movs r1, #0 - movs r2, #0x10 - movs r3, #0x10 - bl sub_080A250C - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D6DF8: .4byte 0x00007FFF -_081D6DFC: .4byte 0x0000FFFF -_081D6E00: .4byte 0xFFFF0000 - thumb_func_end sub_081D6DBC - - thumb_func_start sub_081D6E04 -sub_081D6E04: @ 0x081D6E04 - push {r4, lr} - sub sp, #0xc - ldr r0, _081D6E3C - ldr r1, _081D6E40 - str r1, [sp] - movs r4, #0 - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #4 - movs r2, #0x10 - movs r3, #0 - bl sub_080A250C - ldr r0, _081D6E44 - str r4, [sp] - str r4, [sp, #4] - movs r1, #1 - str r1, [sp, #8] - movs r1, #4 - movs r2, #0x10 - movs r3, #0 - bl sub_080A250C - add sp, #0xc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D6E3C: .4byte 0x00007FFF -_081D6E40: .4byte 0x0000FFFF -_081D6E44: .4byte 0xFFFF0000 - thumb_func_end sub_081D6E04 - - thumb_func_start sub_081D6E48 -sub_081D6E48: @ 0x081D6E48 - push {lr} - movs r1, #0x80 - lsls r1, r1, #3 - movs r0, #2 - movs r2, #1 - bl ChangeBgX - movs r1, #0x80 - lsls r1, r1, #4 - movs r0, #2 - movs r2, #2 - bl ChangeBgY - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081D6E48 - - thumb_func_start sub_081D6E68 -sub_081D6E68: @ 0x081D6E68 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _081D6EE8 - adds r5, r1, r0 - movs r0, #4 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _081D6EEC - adds r0, r0, r4 - bl sub_081D719C - movs r0, #6 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl sub_081D7650 - movs r0, #1 - bl GetBgY - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r0, #1 - bl GetBgY - cmp r0, #0 - beq _081D6EB6 - movs r0, #0x80 - lsls r0, r0, #8 - cmp r4, r0 - bls _081D6EC2 -_081D6EB6: - movs r1, #0x80 - lsls r1, r1, #3 - movs r0, #1 - movs r2, #2 - bl ChangeBgY -_081D6EC2: - ldrh r2, [r5] - movs r1, #0 - ldrsh r0, [r5, r1] - cmp r0, #0x10 - beq _081D6EE2 - adds r2, #1 - strh r2, [r5] - lsls r1, r2, #8 - movs r0, #0x10 - subs r0, r0, r2 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg -_081D6EE2: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081D6EE8: .4byte gUnknown_3005B68 -_081D6EEC: .4byte gUnknown_20205AC - thumb_func_end sub_081D6E68 - - thumb_func_start DuoFightEnd -DuoFightEnd: @ 0x081D6EF0 - push {r4, r5, lr} - sub sp, #4 - adds r5, r0, #0 - adds r4, r1, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0x54 - bl sub_080A306C - movs r0, #1 - rsbs r0, r0, #0 - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - movs r1, #0 - str r1, [sp] - adds r1, r4, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _081D6F34 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081D6F38 - str r1, [r0] - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081D6F34: .4byte gUnknown_3005B60 -_081D6F38: .4byte Task_DuoFightEnd - thumb_func_end DuoFightEnd - - thumb_func_start Task_DuoFightEnd -Task_DuoFightEnd: @ 0x081D6F3C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r6, r1, #3 - ldr r7, _081D6F94 - adds r5, r6, r7 - bl sub_081D6E48 - ldr r0, _081D6F98 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _081D6F8E - ldrb r0, [r5, #2] - bl DestroyTask - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r0, #0 - bl SetVBlankCallback - bl ScanlineEffect_Stop - bl ResetSpriteData - bl FreeAllSpritePalettes - strh r4, [r5] - adds r0, r7, #0 - subs r0, #8 - adds r0, r6, r0 - ldr r1, _081D6F9C - str r1, [r0] -_081D6F8E: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D6F94: .4byte gUnknown_3005B68 -_081D6F98: .4byte gUnknown_2037C74 -_081D6F9C: .4byte Task_SetNextAnim - thumb_func_end Task_DuoFightEnd - - thumb_func_start sub_081D6FA0 -sub_081D6FA0: @ 0x081D6FA0 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - ldr r0, _081D7028 - mov r8, r0 - movs r1, #0x62 - movs r2, #0x48 - movs r3, #3 - bl CreateSprite - adds r5, r0, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r6, _081D702C - lsls r4, r5, #4 - adds r4, r4, r5 - lsls r4, r4, #2 - adds r0, r6, #0 - adds r0, #0x1c - adds r0, r4, r0 - ldr r1, _081D7030 - str r1, [r0] - adds r0, r6, #0 - adds r0, #0x2e - adds r4, r4, r0 - mov r0, r8 - movs r1, #0x42 - movs r2, #0x68 - movs r3, #3 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4] - ldr r0, _081D7034 - movs r1, #0x55 - movs r2, #0x65 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #2] - ldr r0, _081D7038 - movs r1, #0x77 - movs r2, #0x72 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #4] - movs r0, #0 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #1 - bl StartSpriteAnim - adds r0, r5, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_081D7028: .4byte gUnknown_85FBBD0 -_081D702C: .4byte gUnknown_20205AC -_081D7030: .4byte sub_081D703C -_081D7034: .4byte gUnknown_85FBBFC -_081D7038: .4byte gUnknown_85FBC28 - thumb_func_end sub_081D6FA0 - - thumb_func_start sub_081D703C -sub_081D703C: @ 0x081D703C - push {r4, lr} - adds r3, r0, #0 - movs r0, #0x2e - adds r0, r0, r3 - mov ip, r0 - ldrh r0, [r0, #0xa] - adds r0, #1 - movs r1, #0xf - ands r0, r1 - mov r1, ip - strh r0, [r1, #0xa] - movs r1, #7 - ands r1, r0 - cmp r1, #0 - bne _081D70A4 - ldrh r1, [r3, #0x20] - movs r2, #0x20 - ldrsh r0, [r3, r2] - cmp r0, #0x48 - beq _081D70A4 - subs r0, r1, #1 - strh r0, [r3, #0x20] - ldr r2, _081D70B8 - movs r4, #0x2e - ldrsh r1, [r3, r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x20] - subs r1, #1 - strh r1, [r0, #0x20] - mov r0, ip - movs r4, #2 - ldrsh r1, [r0, r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x20] - subs r1, #1 - strh r1, [r0, #0x20] - mov r0, ip - movs r4, #4 - ldrsh r1, [r0, r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x20] - subs r1, #1 - strh r1, [r0, #0x20] -_081D70A4: - adds r0, r3, #0 - adds r0, #0x2b - ldrb r3, [r0] - cmp r3, #1 - beq _081D7104 - cmp r3, #1 - bgt _081D70BC - cmp r3, #0 - beq _081D70C6 - b _081D7188 - .align 2, 0 -_081D70B8: .4byte gUnknown_20205AC -_081D70BC: - cmp r3, #2 - beq _081D7144 - cmp r3, #3 - beq _081D7104 - b _081D7188 -_081D70C6: - ldr r2, _081D7100 - mov r0, ip - movs r4, #2 - ldrsh r1, [r0, r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r3, [r0, #0x24] - mov r0, ip - movs r4, #2 - ldrsh r1, [r0, r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r3, [r0, #0x26] - mov r0, ip - movs r4, #4 - ldrsh r1, [r0, r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r3, [r0, #0x24] - mov r0, ip - movs r4, #4 - ldrsh r1, [r0, r4] - b _081D717E - .align 2, 0 -_081D7100: .4byte gUnknown_20205AC -_081D7104: - ldr r2, _081D713C - mov r0, ip - movs r3, #2 - ldrsh r1, [r0, r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, _081D7140 - strh r1, [r0, #0x24] - mov r4, ip - movs r0, #2 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r3, #0 - strh r3, [r0, #0x26] - movs r0, #4 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #1 - rsbs r1, r1, #0 - b _081D7178 - .align 2, 0 -_081D713C: .4byte gUnknown_20205AC -_081D7140: .4byte 0x0000FFFF -_081D7144: - ldr r2, _081D7190 - mov r3, ip - movs r4, #2 - ldrsh r1, [r3, r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, _081D7194 - strh r1, [r0, #0x24] - movs r0, #2 - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r3, #1 - strh r3, [r0, #0x26] - mov r4, ip - movs r0, #4 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, _081D7198 -_081D7178: - strh r1, [r0, #0x24] - movs r0, #4 - ldrsh r1, [r4, r0] -_081D717E: - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r3, [r0, #0x26] -_081D7188: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D7190: .4byte gUnknown_20205AC -_081D7194: .4byte 0x0000FFFF -_081D7198: .4byte 0x0000FFFE - thumb_func_end sub_081D703C - - thumb_func_start sub_081D719C -sub_081D719C: @ 0x081D719C - push {r4, lr} - adds r1, r0, #0 - adds r3, r1, #0 - adds r3, #0x2e - ldrh r2, [r1, #0x22] - movs r4, #0x22 - ldrsh r0, [r1, r4] - cmp r0, #0xa0 - bgt _081D71EC - adds r0, r2, #0 - adds r0, #8 - strh r0, [r1, #0x22] - ldr r2, _081D71F4 - movs r0, #0x2e - ldrsh r1, [r1, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x22] - adds r1, #8 - strh r1, [r0, #0x22] - movs r4, #2 - ldrsh r1, [r3, r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x22] - adds r1, #8 - strh r1, [r0, #0x22] - movs r0, #4 - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x22] - adds r1, #8 - strh r1, [r0, #0x22] -_081D71EC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D71F4: .4byte gUnknown_20205AC - thumb_func_end sub_081D719C - - thumb_func_start sub_081D71F8 -sub_081D71F8: @ 0x081D71F8 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - ldr r5, _081D7388 - adds r0, r5, #0 - movs r1, #0x7e - movs r2, #0x60 - movs r3, #1 - bl CreateSprite - mov r8, r0 - mov r0, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r6, _081D738C - lsls r4, r0, #4 - add r4, r8 - lsls r4, r4, #2 - adds r0, r6, #0 - adds r0, #0x1c - adds r0, r4, r0 - ldr r1, _081D7390 - str r1, [r0] - adds r0, r6, #0 - adds r0, #0x2e - adds r4, r4, r0 - adds r0, r5, #0 - movs r1, #0x9e - movs r2, #0x60 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #8 - strh r0, [r4] - adds r0, r5, #0 - movs r1, #0x7e - movs r2, #0x70 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4] - orrs r0, r1 - strh r0, [r4] - adds r0, r5, #0 - movs r1, #0x9e - movs r2, #0x70 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #8 - strh r0, [r4, #2] - adds r0, r5, #0 - movs r1, #0x7e - movs r2, #0x80 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #2] - orrs r0, r1 - strh r0, [r4, #2] - adds r0, r5, #0 - movs r1, #0x9e - movs r2, #0x80 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #8 - strh r0, [r4, #4] - adds r0, r5, #0 - movs r1, #0x5e - movs r2, #0x80 - movs r3, #2 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #4] - orrs r0, r1 - strh r0, [r4, #4] - adds r0, r5, #0 - movs r1, #0x7e - movs r2, #0x80 - movs r3, #2 - bl CreateSprite - lsls r0, r0, #8 - strh r0, [r4, #6] - adds r0, r5, #0 - movs r1, #0xae - movs r2, #0x80 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #6] - orrs r0, r1 - strh r0, [r4, #6] - ldr r0, _081D7394 - movs r1, #0xc6 - movs r2, #0x84 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #8 - strh r0, [r4, #8] - ldr r0, _081D7398 - movs r1, #0xbe - movs r2, #0x78 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrh r1, [r4, #8] - orrs r0, r1 - strh r0, [r4, #8] - ldrh r1, [r4] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #1 - bl StartSpriteAnim - ldrb r1, [r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #2 - bl StartSpriteAnim - ldrh r1, [r4, #2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #3 - bl StartSpriteAnim - ldrb r1, [r4, #2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #4 - bl StartSpriteAnim - ldrh r1, [r4, #4] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #5 - bl StartSpriteAnim - ldrb r1, [r4, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #6 - bl StartSpriteAnim - ldrh r1, [r4, #6] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #7 - bl StartSpriteAnim - ldrb r1, [r4, #6] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - movs r1, #8 - bl StartSpriteAnim - mov r0, r8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_081D7388: .4byte gUnknown_85FBCE0 -_081D738C: .4byte gUnknown_20205AC -_081D7390: .4byte sub_081D739C -_081D7394: .4byte gUnknown_85FBD18 -_081D7398: .4byte gUnknown_85FBD38 - thumb_func_end sub_081D71F8 - - thumb_func_start sub_081D739C -sub_081D739C: @ 0x081D739C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r3, r4, #0 - adds r3, #0x2e - ldrh r0, [r3, #0xa] - adds r0, #1 - movs r1, #0xf - ands r0, r1 - strh r0, [r3, #0xa] - movs r1, #7 - ands r1, r0 - ldr r7, _081D74B0 - cmp r1, #0 - bne _081D748E - ldrh r1, [r4, #0x20] - movs r2, #0x20 - ldrsh r0, [r4, r2] - cmp r0, #0x98 - beq _081D748E - adds r0, r1, #1 - strh r0, [r4, #0x20] - ldrh r1, [r4, #0x2e] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrh r1, [r0, #0x20] - adds r1, #1 - strh r1, [r0, #0x20] - ldrh r0, [r4, #0x2e] - movs r2, #0xff - adds r1, r2, #0 - ands r1, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrh r1, [r0, #0x20] - adds r1, #1 - strh r1, [r0, #0x20] - ldrh r1, [r3, #2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrh r1, [r0, #0x20] - adds r1, #1 - strh r1, [r0, #0x20] - ldrh r0, [r3, #2] - adds r1, r2, #0 - ands r1, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrh r1, [r0, #0x20] - adds r1, #1 - strh r1, [r0, #0x20] - ldrh r1, [r3, #4] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrh r1, [r0, #0x20] - adds r1, #1 - strh r1, [r0, #0x20] - ldrh r0, [r3, #4] - adds r1, r2, #0 - ands r1, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrh r1, [r0, #0x20] - adds r1, #1 - strh r1, [r0, #0x20] - ldrh r1, [r3, #6] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrh r1, [r0, #0x20] - adds r1, #1 - strh r1, [r0, #0x20] - ldrh r0, [r3, #6] - adds r1, r2, #0 - ands r1, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrh r1, [r0, #0x20] - adds r1, #1 - strh r1, [r0, #0x20] - ldrh r1, [r3, #8] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrh r1, [r0, #0x20] - adds r1, #1 - strh r1, [r0, #0x20] - ldrh r0, [r3, #8] - ands r2, r0 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r7 - ldrh r1, [r0, #0x20] - adds r1, #1 - strh r1, [r0, #0x20] -_081D748E: - adds r6, r7, #0 - movs r5, #0xff - ldrb r1, [r3, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - adds r0, #0x2b - ldrb r2, [r0] - cmp r2, #1 - beq _081D7560 - cmp r2, #1 - bgt _081D74B4 - cmp r2, #0 - beq _081D74C0 - b _081D7648 - .align 2, 0 -_081D74B0: .4byte gUnknown_20205AC -_081D74B4: - cmp r2, #2 - bne _081D74BA - b _081D75E8 -_081D74BA: - cmp r2, #3 - beq _081D7560 - b _081D7648 -_081D74C0: - strh r2, [r4, #0x26] - ldrh r1, [r3] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - strh r2, [r0, #0x26] - ldrh r0, [r3] - adds r1, r5, #0 - ands r1, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - strh r2, [r0, #0x26] - ldrh r1, [r3, #2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - strh r2, [r0, #0x26] - ldrh r0, [r3, #2] - adds r1, r5, #0 - ands r1, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - strh r2, [r0, #0x26] - ldrh r1, [r3, #4] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - strh r2, [r0, #0x26] - ldrh r0, [r3, #4] - adds r1, r5, #0 - ands r1, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - strh r2, [r0, #0x26] - ldrh r1, [r3, #6] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - strh r2, [r0, #0x26] - ldrh r0, [r3, #6] - adds r1, r5, #0 - ands r1, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - strh r2, [r0, #0x26] - ldrh r1, [r3, #8] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - strh r2, [r0, #0x26] - ldrh r1, [r3, #8] - ands r1, r5 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - b _081D7646 -_081D7560: - movs r2, #1 - strh r2, [r4, #0x26] - ldrh r1, [r3] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r2, [r0, #0x26] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r2, [r0, #0x26] - ldrh r1, [r3, #2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r2, [r0, #0x26] - ldrb r1, [r3, #2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r2, [r0, #0x26] - ldrh r1, [r3, #4] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r2, [r0, #0x26] - ldrb r1, [r3, #4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r2, [r0, #0x26] - ldrh r1, [r3, #6] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r2, [r0, #0x26] - ldrb r1, [r3, #6] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r2, [r0, #0x26] - ldrh r1, [r3, #8] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r2, [r0, #0x26] - ldrb r1, [r3, #8] - b _081D763E -_081D75E8: - strh r2, [r4, #0x26] - ldrh r1, [r3] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r2, [r0, #0x26] - ldrh r0, [r3] - adds r1, r5, #0 - ands r1, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r2, [r0, #0x26] - ldrh r1, [r3, #2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r2, [r0, #0x26] - ldrh r0, [r3, #2] - adds r1, r5, #0 - ands r1, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r2, [r0, #0x26] - ldrh r1, [r3, #4] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - strh r2, [r0, #0x26] - ldrh r1, [r3, #8] - ands r1, r5 -_081D763E: - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 -_081D7646: - strh r2, [r0, #0x26] -_081D7648: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081D739C - - thumb_func_start sub_081D7650 -sub_081D7650: @ 0x081D7650 - push {lr} - adds r2, r0, #0 - movs r0, #0x2e - adds r0, r0, r2 - mov ip, r0 - ldrh r1, [r2, #0x22] - movs r3, #0x22 - ldrsh r0, [r2, r3] - cmp r0, #0xa0 - bgt _081D7744 - adds r0, r1, #0 - adds r0, #8 - strh r0, [r2, #0x22] - ldr r3, _081D7748 - ldrh r1, [r2, #0x2e] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r0, #0x22] - adds r1, #8 - strh r1, [r0, #0x22] - ldrh r0, [r2, #0x2e] - movs r2, #0xff - adds r1, r2, #0 - ands r1, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r0, #0x22] - adds r1, #8 - strh r1, [r0, #0x22] - mov r0, ip - ldrh r1, [r0, #2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r0, #0x22] - adds r1, #8 - strh r1, [r0, #0x22] - mov r1, ip - ldrh r0, [r1, #2] - adds r1, r2, #0 - ands r1, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r0, #0x22] - adds r1, #8 - strh r1, [r0, #0x22] - mov r0, ip - ldrh r1, [r0, #4] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r0, #0x22] - adds r1, #8 - strh r1, [r0, #0x22] - mov r1, ip - ldrh r0, [r1, #4] - adds r1, r2, #0 - ands r1, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r0, #0x22] - adds r1, #8 - strh r1, [r0, #0x22] - mov r0, ip - ldrh r1, [r0, #6] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r0, #0x22] - adds r1, #8 - strh r1, [r0, #0x22] - mov r1, ip - ldrh r0, [r1, #6] - adds r1, r2, #0 - ands r1, r0 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r0, #0x22] - adds r1, #8 - strh r1, [r0, #0x22] - mov r0, ip - ldrh r1, [r0, #8] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r0, #0x22] - adds r1, #8 - strh r1, [r0, #0x22] - mov r1, ip - ldrh r0, [r1, #8] - ands r2, r0 - lsls r0, r2, #4 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r0, #0x22] - adds r1, #8 - strh r1, [r0, #0x22] -_081D7744: - pop {r0} - bx r0 - .align 2, 0 -_081D7748: .4byte gUnknown_20205AC - thumb_func_end sub_081D7650 - - thumb_func_start MoveSelectionDisplayPpString -MoveSelectionDisplayPpString: @ 0x081D774C - push {r4, lr} - bl ResetVramOamAndBgCntRegs - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _081D77C8 - movs r0, #1 - movs r2, #3 - bl InitBgsFromTemplates - ldr r4, _081D77CC - ldr r1, [r4] - adds r1, #4 - movs r0, #0 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, _081D77D0 - adds r1, r1, r0 - movs r0, #1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, _081D77D4 - adds r1, r1, r0 - movs r0, #2 - bl SetBgTilemapBuffer - bl ResetAllBgsCoordinates - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D77C8: .4byte gUnknown_85FBD50 -_081D77CC: .4byte gUnknown_203CC2C -_081D77D0: .4byte 0x00000804 -_081D77D4: .4byte 0x00001004 - thumb_func_end MoveSelectionDisplayPpString - - thumb_func_start sub_081D77D8 -sub_081D77D8: @ 0x081D77D8 - push {r4, lr} - sub sp, #4 - bl reset_temp_tile_data_buffers - ldr r1, _081D7858 - movs r4, #0 - str r4, [sp] - movs r0, #0 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, _081D785C - str r4, [sp] - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, _081D7860 - str r4, [sp] - movs r0, #2 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram -_081D780C: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081D780C - ldr r0, _081D7864 - ldr r4, _081D7868 - ldr r1, [r4] - adds r1, #4 - bl sub_08034370 - ldr r0, _081D786C - ldr r1, [r4] - ldr r2, _081D7870 - adds r1, r1, r2 - bl sub_08034370 - ldr r0, _081D7874 - ldr r1, [r4] - ldr r2, _081D7878 - adds r1, r1, r2 - bl sub_08034370 - ldr r0, _081D787C - movs r1, #0 - movs r2, #0x40 - bl LoadCompressedPalette - ldr r0, _081D7880 - bl LoadCompressedSpriteSheet - ldr r0, _081D7884 - bl LoadCompressedSpritePalette - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D7858: .4byte gUnknown_8DA3668 -_081D785C: .4byte gUnknown_8DA5218 -_081D7860: .4byte gUnknown_8DA3F3C -_081D7864: .4byte gUnknown_8DA3C30 -_081D7868: .4byte gUnknown_203CC2C -_081D786C: .4byte gUnknown_8DA6360 -_081D7870: .4byte 0x00000804 -_081D7874: .4byte gUnknown_8DA5094 -_081D7878: .4byte 0x00001004 -_081D787C: .4byte gUnknown_8DA5050 -_081D7880: .4byte gUnknown_85FBD8C -_081D7884: .4byte gUnknown_85FBD94 - thumb_func_end sub_081D77D8 - - thumb_func_start Task_RayTakesFlightAnim -Task_RayTakesFlightAnim: @ 0x081D7888 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r5, _081D78E8 - adds r6, r4, r5 - movs r0, #0xe8 - lsls r0, r0, #1 - bl PlayNewMapMusic - bl MoveSelectionDisplayPpString - bl sub_081D77D8 - movs r1, #0x94 - lsls r1, r1, #2 - movs r0, #0x50 - bl SetGpuReg - ldr r1, _081D78EC - movs r0, #0x52 - bl SetGpuReg - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - ldr r0, _081D78F0 - bl SetVBlankCallback - ldr r0, _081D78F4 - movs r1, #0 - bl CreateTask - movs r0, #0 - strh r0, [r6] - strh r0, [r6, #2] - subs r5, #8 - adds r4, r4, r5 - ldr r0, _081D78F8 - str r0, [r4] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081D78E8: .4byte gUnknown_3005B68 -_081D78EC: .4byte 0x00000808 -_081D78F0: .4byte VBlankCB_RayquazaScene -_081D78F4: .4byte sub_081D7AE0 -_081D78F8: .4byte Task_HandleRayTakesFlight - thumb_func_end Task_RayTakesFlightAnim - - thumb_func_start Task_HandleRayTakesFlight -Task_HandleRayTakesFlight: @ 0x081D78FC - push {r4, r5, r6, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _081D7920 - adds r4, r0, r1 - movs r0, #0 - ldrsh r5, [r4, r0] - cmp r5, #1 - beq _081D7966 - cmp r5, #1 - bgt _081D7924 - cmp r5, #0 - beq _081D7930 - b _081D7A96 - .align 2, 0 -_081D7920: .4byte gUnknown_3005B68 -_081D7924: - cmp r5, #2 - beq _081D79E0 - cmp r5, #3 - bne _081D792E - b _081D7A60 -_081D792E: - b _081D7A96 -_081D7930: - ldrh r1, [r4, #2] - movs r2, #2 - ldrsh r0, [r4, r2] - cmp r0, #8 - bne _081D7960 - movs r0, #1 - rsbs r0, r0, #0 - str r5, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - strh r5, [r4, #4] - movs r0, #0x1e - strh r0, [r4, #6] - strh r5, [r4, #8] - movs r0, #7 - strh r0, [r4, #0xa] - strh r5, [r4, #2] - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - b _081D7A96 -_081D7960: - adds r0, r1, #1 - strh r0, [r4, #2] - b _081D7A96 -_081D7966: - ldrh r1, [r4, #6] - ldrh r3, [r4, #4] - adds r0, r1, r3 - strh r0, [r4, #4] - ldrh r2, [r4, #0xa] - ldrh r3, [r4, #8] - adds r0, r2, r3 - strh r0, [r4, #8] - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, #3 - ble _081D7982 - subs r0, r1, #3 - strh r0, [r4, #6] -_081D7982: - lsls r0, r2, #0x10 - cmp r0, #0 - beq _081D798C - subs r0, r2, #1 - strh r0, [r4, #0xa] -_081D798C: - movs r1, #4 - ldrsh r0, [r4, r1] - cmp r0, #0xff - ble _081D79B4 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r2, #0 - strh r0, [r4, #4] - movs r1, #0 - strh r1, [r4, #6] - movs r0, #0xc - strh r0, [r4, #0xc] - movs r3, #1 - rsbs r3, r3, #0 - adds r0, r3, #0 - strh r0, [r4, #0xe] - strh r1, [r4, #2] - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] -_081D79B4: - movs r1, #0xf0 - lsls r1, r1, #7 - movs r2, #0xc0 - lsls r2, r2, #5 - ldrh r0, [r4, #8] - adds r0, #0x20 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - str r0, [sp] - movs r3, #4 - ldrsh r0, [r4, r3] - str r0, [sp, #4] - movs r3, #4 - ldrsh r0, [r4, r3] - str r0, [sp, #8] - movs r0, #0 - str r0, [sp, #0xc] - movs r0, #2 - movs r3, #0x78 - bl SetBgAffine - b _081D7A96 -_081D79E0: - ldrh r0, [r4, #2] - adds r0, #1 - strh r0, [r4, #2] - movs r1, #0xf0 - lsls r1, r1, #7 - movs r2, #0xc0 - lsls r2, r2, #5 - ldrh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x12 - adds r0, #0x20 - ldrh r3, [r4, #8] - adds r0, r0, r3 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - str r0, [sp] - movs r3, #4 - ldrsh r0, [r4, r3] - str r0, [sp, #4] - movs r3, #4 - ldrsh r0, [r4, r3] - str r0, [sp, #8] - movs r5, #0 - str r5, [sp, #0xc] - movs r0, #2 - movs r3, #0x78 - bl SetBgAffine - ldrh r0, [r4, #0xe] - ldrh r1, [r4, #0xc] - adds r0, r0, r1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - cmp r1, #0xc - beq _081D7A30 - movs r0, #0xc - rsbs r0, r0, #0 - cmp r1, r0 - bne _081D7A96 -_081D7A30: - movs r2, #0xe - ldrsh r0, [r4, r2] - rsbs r0, r0, #0 - strh r0, [r4, #0xe] - movs r3, #2 - ldrsh r1, [r4, r3] - ldr r0, _081D7A5C - cmp r1, r0 - ble _081D7A96 - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - movs r0, #1 - rsbs r0, r0, #0 - str r5, [sp] - movs r1, #6 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - b _081D7A96 - .align 2, 0 -_081D7A5C: .4byte 0x00000127 -_081D7A60: - ldrh r0, [r4, #4] - adds r0, #0x10 - strh r0, [r4, #4] - movs r1, #0xf0 - lsls r1, r1, #7 - movs r2, #0xc0 - lsls r2, r2, #5 - ldrh r0, [r4, #8] - adds r0, #0x20 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - str r0, [sp] - movs r3, #4 - ldrsh r0, [r4, r3] - str r0, [sp, #4] - movs r3, #4 - ldrsh r0, [r4, r3] - str r0, [sp, #8] - movs r0, #0 - str r0, [sp, #0xc] - movs r0, #2 - movs r3, #0x78 - bl SetBgAffine - adds r0, r6, #0 - bl Task_RayTakesFlightEnd -_081D7A96: - add sp, #0x10 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Task_HandleRayTakesFlight - - thumb_func_start Task_RayTakesFlightEnd -Task_RayTakesFlightEnd: @ 0x081D7AA0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _081D7AD4 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081D7ACE - movs r0, #0 - bl SetVBlankCallback - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r0, _081D7AD8 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081D7ADC - str r0, [r1] -_081D7ACE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D7AD4: .4byte gUnknown_2037C74 -_081D7AD8: .4byte gUnknown_3005B60 -_081D7ADC: .4byte Task_SetNextAnim - thumb_func_end Task_RayTakesFlightEnd - - thumb_func_start sub_081D7AE0 -sub_081D7AE0: @ 0x081D7AE0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _081D7B7C - adds r4, r0, r1 - ldrh r1, [r4, #2] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _081D7B90 - ldr r0, _081D7B80 - ldr r3, _081D7B84 - movs r1, #0 - ldrsh r2, [r4, r1] - lsls r2, r2, #1 - adds r1, r2, r3 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - lsls r1, r1, #0x12 - movs r6, #0xf0 - lsls r6, r6, #0xf - adds r1, r1, r6 - asrs r1, r1, #0x10 - adds r3, #1 - adds r2, r2, r3 - ldrb r2, [r2] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - lsls r2, r2, #0x12 - movs r3, #0xa0 - lsls r3, r3, #0xf - adds r2, r2, r3 - asrs r2, r2, #0x10 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081D7B88 - lsls r3, r0, #4 - adds r3, r3, r0 - lsls r3, r3, #2 - adds r3, r3, r1 - movs r0, #0 - ldrsb r0, [r4, r0] - strh r0, [r3, #0x2e] - ldrb r2, [r3, #1] - movs r1, #0xd - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - movs r2, #4 - orrs r0, r2 - movs r2, #3 - orrs r0, r2 - strb r0, [r3, #1] - ldrb r0, [r3, #5] - ands r1, r0 - movs r0, #8 - orrs r1, r0 - strb r1, [r3, #5] - adds r0, r3, #0 - bl InitSpriteAffineAnim - ldrh r1, [r4] - movs r6, #0 - ldrsh r0, [r4, r6] - cmp r0, #9 - bne _081D7B8C - adds r0, r5, #0 - bl DestroyTask - b _081D7B96 - .align 2, 0 -_081D7B7C: .4byte gUnknown_3005B68 -_081D7B80: .4byte gUnknown_85FBD9C -_081D7B84: .4byte gUnknown_85FBDB4 -_081D7B88: .4byte gUnknown_20205AC -_081D7B8C: - adds r0, r1, #1 - strh r0, [r4] -_081D7B90: - ldrh r0, [r4, #2] - adds r0, #1 - strh r0, [r4, #2] -_081D7B96: - pop {r4, r5, r6} - pop {r0} - bx r0 - thumb_func_end sub_081D7AE0 - - thumb_func_start sub_081D7B9C -sub_081D7B9C: @ 0x081D7B9C - push {lr} - adds r2, r0, #0 - movs r1, #0x30 - ldrsh r0, [r2, r1] - cmp r0, #0 - bne _081D7BAC - strh r0, [r2, #0x24] - b _081D7BD6 -_081D7BAC: - ldr r1, _081D7BE8 - movs r3, #0x2e - ldrsh r0, [r2, r3] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r3, [r2, #0x24] - adds r0, r0, r3 - strh r0, [r2, #0x24] - movs r3, #0x2e - ldrsh r0, [r2, r3] - lsls r0, r0, #1 - adds r1, #1 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r2, #0x26] - adds r0, r0, r1 -_081D7BD6: - strh r0, [r2, #0x26] - ldrh r0, [r2, #0x30] - adds r0, #1 - movs r1, #0xf - ands r0, r1 - strh r0, [r2, #0x30] - pop {r0} - bx r0 - .align 2, 0 -_081D7BE8: .4byte gUnknown_85FBDB4 - thumb_func_end sub_081D7B9C - - thumb_func_start sub_081D7BEC -sub_081D7BEC: @ 0x081D7BEC - push {r4, lr} - bl ResetVramOamAndBgCntRegs - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _081D7C80 - movs r0, #0 - movs r2, #4 - bl InitBgsFromTemplates - ldr r4, _081D7C84 - ldr r1, [r4] - adds r1, #4 - movs r0, #0 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, _081D7C88 - adds r1, r1, r0 - movs r0, #1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, _081D7C8C - adds r1, r1, r0 - movs r0, #2 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, _081D7C90 - adds r1, r1, r0 - movs r0, #3 - bl SetBgTilemapBuffer - bl ResetAllBgsCoordinates - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #3 - bl schedule_bg_copy_tilemap_to_vram - movs r1, #0x82 - lsls r1, r1, #5 - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D7C80: .4byte gUnknown_85FBDC8 -_081D7C84: .4byte gUnknown_203CC2C -_081D7C88: .4byte 0x00000804 -_081D7C8C: .4byte 0x00001004 -_081D7C90: .4byte 0x00001804 - thumb_func_end sub_081D7BEC - - thumb_func_start sub_081D7C94 -sub_081D7C94: @ 0x081D7C94 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - bl reset_temp_tile_data_buffers - ldr r1, _081D7D40 - movs r4, #0 - str r4, [sp] - movs r0, #0 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, _081D7D44 - str r4, [sp] - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - add r7, sp, #8 -_081D7CBC: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - bne _081D7CBC - ldr r0, _081D7D48 - ldr r5, _081D7D4C - ldr r1, [r5] - adds r1, #4 - bl sub_08034370 - ldr r0, _081D7D50 - ldr r1, [r5] - ldr r4, _081D7D54 - adds r1, r1, r4 - bl sub_08034370 - str r6, [sp, #4] - ldr r1, [r5] - ldr r0, _081D7D58 - adds r1, r1, r0 - ldr r2, _081D7D5C - add r0, sp, #4 - bl CpuFastSet - ldr r1, [r5] - adds r4, r1, r4 - ldr r0, _081D7D60 - adds r1, r1, r0 - movs r2, #0x80 - lsls r2, r2, #2 - adds r0, r4, #0 - bl CpuFastSet - str r6, [sp, #8] - ldr r1, [r5] - ldr r0, _081D7D64 - adds r1, r1, r0 - ldr r2, _081D7D68 - adds r0, r7, #0 - bl CpuFastSet - ldr r0, _081D7D6C - movs r1, #0 - movs r2, #0x40 - bl LoadCompressedPalette - ldr r0, _081D7D70 - ldr r1, _081D7D74 - strh r1, [r0] - ldr r0, _081D7D78 - strh r1, [r0] - ldr r0, _081D7D7C - bl LoadCompressedSpriteSheet - ldr r0, _081D7D80 - bl LoadCompressedSpriteSheet - ldr r0, _081D7D84 - bl LoadCompressedSpritePalette - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D7D40: .4byte gUnknown_8DA77D0 -_081D7D44: .4byte gUnknown_8DA6C64 -_081D7D48: .4byte gUnknown_8DA7D54 -_081D7D4C: .4byte gUnknown_203CC2C -_081D7D50: .4byte gUnknown_8DA7A2C -_081D7D54: .4byte 0x00001804 -_081D7D58: .4byte 0x00001004 -_081D7D5C: .4byte 0x01000200 -_081D7D60: .4byte 0x00000804 -_081D7D64: .4byte 0x00000904 -_081D7D68: .4byte 0x010000D0 -_081D7D6C: .4byte gUnknown_8DA79EC -_081D7D70: .4byte gUnknown_20373B4 -_081D7D74: .4byte 0x00007FFF -_081D7D78: .4byte gUnknown_20377B4 -_081D7D7C: .4byte gUnknown_85FBDF8 -_081D7D80: .4byte gUnknown_85FBE00 -_081D7D84: .4byte gUnknown_85FBE08 - thumb_func_end sub_081D7C94 - - thumb_func_start sub_081D7D88 -sub_081D7D88: @ 0x081D7D88 - push {r4, r5, lr} - movs r0, #6 - bl GetGpuReg - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - adds r1, r2, #0 - subs r1, #0x18 - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x6f - bhi _081D7DC8 - ldr r0, _081D7DB8 - ldr r0, [r0] - ldr r3, _081D7DBC - adds r0, r0, r3 - movs r3, #0 - ldrsh r0, [r0, r3] - cmp r1, r0 - bgt _081D7DC8 - ldr r1, _081D7DC0 - ldr r3, _081D7DC4 - b _081D7DCE - .align 2, 0 -_081D7DB8: .4byte gUnknown_203CC2C -_081D7DBC: .4byte 0x00002008 -_081D7DC0: .4byte 0x04000052 -_081D7DC4: .4byte 0x00000D08 -_081D7DC8: - ldr r1, _081D7DF4 - movs r3, #0x80 - lsls r3, r3, #5 -_081D7DCE: - adds r0, r3, #0 - strh r0, [r1] - cmp r2, #0 - bne _081D7E1C - ldr r0, _081D7DF8 - ldr r1, [r0] - ldr r2, _081D7DFC - adds r3, r1, r2 - ldrh r4, [r3] - movs r1, #0 - ldrsh r2, [r3, r1] - ldr r1, _081D7E00 - adds r5, r0, #0 - cmp r2, r1 - bgt _081D7E10 - cmp r2, #0x27 - bgt _081D7E04 - adds r0, r4, #4 - b _081D7E0E - .align 2, 0 -_081D7DF4: .4byte 0x04000052 -_081D7DF8: .4byte gUnknown_203CC2C -_081D7DFC: .4byte 0x00002008 -_081D7E00: .4byte 0x00001FFF -_081D7E04: - cmp r2, #0x4f - bgt _081D7E0C - adds r0, r4, #2 - b _081D7E0E -_081D7E0C: - adds r0, r4, #1 -_081D7E0E: - strh r0, [r3] -_081D7E10: - ldr r1, [r5] - ldr r2, _081D7E24 - adds r1, r1, r2 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_081D7E1C: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081D7E24: .4byte 0x0000200A - thumb_func_end sub_081D7D88 - - thumb_func_start Task_RayDescendsAnim -Task_RayDescendsAnim: @ 0x081D7E28 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r6, _081D7E9C - adds r5, r4, r6 - bl sub_081D7BEC - bl sub_081D7C94 - ldr r1, _081D7EA0 - movs r0, #0x50 - bl SetGpuRegBits - movs r0, #0x80 - lsls r0, r0, #5 - mov r8, r0 - movs r0, #0x52 - mov r1, r8 - bl SetGpuReg - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - ldr r0, _081D7EA4 - bl SetVBlankCallback - ldr r0, _081D7EA8 - ldr r0, [r0] - ldr r1, _081D7EAC - adds r2, r0, r1 - movs r1, #0 - strh r1, [r2] - ldr r2, _081D7EB0 - adds r0, r0, r2 - strh r1, [r0] - strh r1, [r5] - strh r1, [r5, #2] - strh r1, [r5, #4] - strh r1, [r5, #6] - mov r0, r8 - strh r0, [r5, #8] - subs r6, #8 - adds r4, r4, r6 - ldr r0, _081D7EB4 - str r0, [r4] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081D7E9C: .4byte gUnknown_3005B68 -_081D7EA0: .4byte 0x00001E41 -_081D7EA4: .4byte VBlankCB_RayquazaScene -_081D7EA8: .4byte gUnknown_203CC2C -_081D7EAC: .4byte 0x00002008 -_081D7EB0: .4byte 0x0000200A -_081D7EB4: .4byte Task_HandleRayDescends - thumb_func_end Task_RayDescendsAnim - - thumb_func_start Task_HandleRayDescends -Task_HandleRayDescends: @ 0x081D7EB8 - push {r4, r5, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - ldr r1, _081D7EDC - adds r5, r0, r1 - movs r1, #0 - ldrsh r0, [r5, r1] - cmp r0, #4 - bhi _081D7FB0 - lsls r0, r0, #2 - ldr r1, _081D7EE0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081D7EDC: .4byte gUnknown_3005B68 -_081D7EE0: .4byte _081D7EE4 -_081D7EE4: @ jump table - .4byte _081D7EF8 @ case 0 - .4byte _081D7F18 @ case 1 - .4byte _081D7F56 @ case 2 - .4byte _081D7F76 @ case 3 - .4byte _081D7F92 @ case 4 -_081D7EF8: - ldrh r1, [r5, #2] - movs r2, #2 - ldrsh r0, [r5, r2] - cmp r0, #8 - bne _081D7F70 - movs r0, #1 - rsbs r0, r0, #0 - movs r4, #0 - str r4, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - strh r4, [r5, #2] - b _081D7F8A -_081D7F18: - ldr r0, _081D7F48 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _081D7FB0 - ldrh r2, [r5, #2] - movs r3, #2 - ldrsh r0, [r5, r3] - cmp r0, #0xa - bne _081D7F50 - strh r1, [r5, #2] - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - ldr r0, _081D7F4C - bl SetHBlankCallback - movs r0, #3 - bl EnableInterrupts - b _081D7FB0 - .align 2, 0 -_081D7F48: .4byte gUnknown_2037C74 -_081D7F4C: .4byte sub_081D7D88 -_081D7F50: - adds r0, r2, #1 - strh r0, [r5, #2] - b _081D7FB0 -_081D7F56: - ldrh r1, [r5, #2] - movs r2, #2 - ldrsh r0, [r5, r2] - cmp r0, #0x50 - bne _081D7F70 - movs r0, #0 - strh r0, [r5, #2] - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - bl sub_081D8008 - b _081D7FB0 -_081D7F70: - adds r0, r1, #1 - strh r0, [r5, #2] - b _081D7FB0 -_081D7F76: - ldrh r0, [r5, #2] - adds r0, #1 - strh r0, [r5, #2] - lsls r0, r0, #0x10 - movs r1, #0xb8 - lsls r1, r1, #0x11 - cmp r0, r1 - bne _081D7FB0 - movs r0, #0 - strh r0, [r5, #2] -_081D7F8A: - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - b _081D7FB0 -_081D7F92: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _081D7FB8 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081D7FBC - str r1, [r0] -_081D7FB0: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081D7FB8: .4byte gUnknown_3005B60 -_081D7FBC: .4byte sub_081D7FC0 - thumb_func_end Task_HandleRayDescends - - thumb_func_start sub_081D7FC0 -sub_081D7FC0: @ 0x081D7FC0 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, _081D7FFC - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081D7FF4 - movs r0, #0 - bl SetVBlankCallback - movs r0, #0 - bl SetHBlankCallback - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r0, _081D8000 - lsls r1, r4, #2 - adds r1, r1, r4 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081D8004 - str r0, [r1] -_081D7FF4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D7FFC: .4byte gUnknown_2037C74 -_081D8000: .4byte gUnknown_3005B60 -_081D8004: .4byte Task_SetNextAnim - thumb_func_end sub_081D7FC0 - - thumb_func_start sub_081D8008 -sub_081D8008: @ 0x081D8008 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - ldr r0, _081D8078 - movs r1, #0xa0 - movs r2, #0 - movs r3, #0 - bl CreateSprite - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - lsls r5, r6, #4 - adds r5, r5, r6 - lsls r5, r5, #2 - ldr r4, _081D807C - adds r0, r5, r4 - mov r8, r0 - ldr r0, _081D8080 - movs r2, #0x30 - rsbs r2, r2, #0 - movs r1, #0xb8 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, r8 - strh r0, [r1] - adds r3, r4, #0 - subs r3, #0x2e - subs r4, #0x12 - adds r4, r5, r4 - ldr r0, _081D8084 - str r0, [r4] - adds r5, r5, r3 - ldrb r0, [r5, #5] - movs r2, #0xc - orrs r0, r2 - strb r0, [r5, #5] - movs r4, #0 - ldrsh r1, [r1, r4] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0, #5] - orrs r1, r2 - strb r1, [r0, #5] - adds r0, r6, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_081D8078: .4byte gUnknown_85FBE10 -_081D807C: .4byte gUnknown_20205DA -_081D8080: .4byte gUnknown_85FBE28 -_081D8084: .4byte sub_081D8088 - thumb_func_end sub_081D8008 - - thumb_func_start sub_081D8088 -sub_081D8088: @ 0x081D8088 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r5, #0 - adds r4, #0x2e - movs r0, #4 - ldrsh r1, [r4, r0] - cmp r1, #0 - bne _081D80A0 - movs r0, #0xc - strh r0, [r4, #6] - movs r0, #8 - b _081D80FE -_081D80A0: - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - bne _081D80B0 - movs r0, #9 - strh r0, [r4, #6] - movs r0, #7 - b _081D80FE -_081D80B0: - movs r0, #0x86 - lsls r0, r0, #1 - cmp r1, r0 - bne _081D80C0 - movs r0, #8 - strh r0, [r4, #6] - movs r0, #6 - b _081D80FE -_081D80C0: - movs r0, #0x8c - lsls r0, r0, #1 - cmp r1, r0 - bne _081D80D0 - movs r0, #7 - strh r0, [r4, #6] - movs r0, #5 - b _081D80FE -_081D80D0: - movs r0, #0x92 - lsls r0, r0, #1 - cmp r1, r0 - bne _081D80E0 - movs r0, #6 - strh r0, [r4, #6] - movs r0, #4 - b _081D80FE -_081D80E0: - movs r0, #0x98 - lsls r0, r0, #1 - cmp r1, r0 - bne _081D80F0 - movs r0, #5 - strh r0, [r4, #6] - movs r0, #3 - b _081D80FE -_081D80F0: - movs r0, #0xa0 - lsls r0, r0, #1 - cmp r1, r0 - bne _081D8100 - movs r0, #4 - strh r0, [r4, #6] - movs r0, #2 -_081D80FE: - strh r0, [r4, #8] -_081D8100: - movs r1, #4 - ldrsh r0, [r4, r1] - movs r2, #6 - ldrsh r1, [r4, r2] - bl __modsi3 - cmp r0, #0 - bne _081D812A - ldrh r0, [r5, #0x24] - subs r0, #1 - strh r0, [r5, #0x24] - ldr r2, _081D8160 - movs r0, #0 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x24] - subs r1, #1 - strh r1, [r0, #0x24] -_081D812A: - movs r1, #4 - ldrsh r0, [r4, r1] - movs r2, #8 - ldrsh r1, [r4, r2] - bl __modsi3 - cmp r0, #0 - bne _081D8154 - ldrh r0, [r5, #0x26] - adds r0, #1 - strh r0, [r5, #0x26] - ldr r2, _081D8160 - movs r0, #0 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x26] - adds r1, #1 - strh r1, [r0, #0x26] -_081D8154: - ldrh r0, [r4, #4] - adds r0, #1 - strh r0, [r4, #4] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081D8160: .4byte gUnknown_20205AC - thumb_func_end sub_081D8088 - - thumb_func_start sub_081D8164 -sub_081D8164: @ 0x081D8164 - push {r4, lr} - bl ResetVramOamAndBgCntRegs - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _081D81F8 - movs r0, #0 - movs r2, #4 - bl InitBgsFromTemplates - ldr r4, _081D81FC - ldr r1, [r4] - adds r1, #4 - movs r0, #0 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, _081D8200 - adds r1, r1, r0 - movs r0, #1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, _081D8204 - adds r1, r1, r0 - movs r0, #2 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, _081D8208 - adds r1, r1, r0 - movs r0, #3 - bl SetBgTilemapBuffer - bl ResetAllBgsCoordinates - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #3 - bl schedule_bg_copy_tilemap_to_vram - movs r1, #0xc1 - lsls r1, r1, #6 - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #3 - bl ShowBg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D81F8: .4byte gUnknown_85FBE40 -_081D81FC: .4byte gUnknown_203CC2C -_081D8200: .4byte 0x00000804 -_081D8204: .4byte 0x00001004 -_081D8208: .4byte 0x00001804 - thumb_func_end sub_081D8164 - - thumb_func_start sub_081D820C -sub_081D820C: @ 0x081D820C - push {r4, lr} - sub sp, #4 - bl reset_temp_tile_data_buffers - ldr r1, _081D828C - movs r4, #0 - str r4, [sp] - movs r0, #1 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, _081D8290 - str r4, [sp] - movs r0, #2 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, _081D8294 - str r4, [sp] - movs r0, #3 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram -_081D8240: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081D8240 - ldr r0, _081D8298 - ldr r4, _081D829C - ldr r1, [r4] - adds r1, #4 - bl sub_08034370 - ldr r0, _081D82A0 - ldr r1, [r4] - ldr r2, _081D82A4 - adds r1, r1, r2 - bl sub_08034370 - ldr r0, _081D82A8 - ldr r1, [r4] - ldr r2, _081D82AC - adds r1, r1, r2 - bl sub_08034370 - ldr r0, _081D82B0 - ldr r1, [r4] - ldr r2, _081D82B4 - adds r1, r1, r2 - bl sub_08034370 - ldr r0, _081D82B8 - movs r1, #0 - movs r2, #0x80 - bl LoadCompressedPalette - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D828C: .4byte gUnknown_8DA8364 -_081D8290: .4byte gUnknown_8DA8154 -_081D8294: .4byte gUnknown_8DA7ED8 -_081D8298: .4byte gUnknown_8DA9014 -_081D829C: .4byte gUnknown_203CC2C -_081D82A0: .4byte gUnknown_8DA8DE8 -_081D82A4: .4byte 0x00000804 -_081D82A8: .4byte gUnknown_8DA825C -_081D82AC: .4byte 0x00001004 -_081D82B0: .4byte gUnknown_8DA8014 -_081D82B4: .4byte 0x00001804 -_081D82B8: .4byte gUnknown_8DA912C - thumb_func_end sub_081D820C - - thumb_func_start Task_RayChargesAnim -Task_RayChargesAnim: @ 0x081D82BC - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r5, _081D830C - adds r6, r4, r5 - bl sub_081D8164 - bl sub_081D820C - bl sub_081D6204 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - ldr r0, _081D8310 - bl SetVBlankCallback - movs r0, #0 - strh r0, [r6] - strh r0, [r6, #2] - ldr r0, _081D8314 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r6, #4] - subs r5, #8 - adds r4, r4, r5 - ldr r0, _081D8318 - str r0, [r4] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081D830C: .4byte gUnknown_3005B68 -_081D8310: .4byte VBlankCB_RayquazaScene -_081D8314: .4byte sub_081D8414 -_081D8318: .4byte Task_HandleRayCharges - thumb_func_end Task_RayChargesAnim - - thumb_func_start Task_HandleRayCharges -Task_HandleRayCharges: @ 0x081D831C - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r1, _081D836C - adds r4, r0, r1 - bl sub_081D84F0 - ldrh r1, [r4, #6] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _081D8352 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #1 - bgt _081D8352 - movs r2, #2 - ldrsh r0, [r4, r2] - cmp r0, #0x59 - bgt _081D8352 - movs r0, #0x67 - bl sub_080A306C -_081D8352: - ldrh r0, [r4, #6] - adds r0, #1 - strh r0, [r4, #6] - movs r0, #0 - ldrsh r5, [r4, r0] - cmp r5, #1 - beq _081D8398 - cmp r5, #1 - bgt _081D8370 - cmp r5, #0 - beq _081D837A - b _081D8402 - .align 2, 0 -_081D836C: .4byte gUnknown_3005B68 -_081D8370: - cmp r5, #2 - beq _081D83C8 - cmp r5, #3 - beq _081D83E4 - b _081D8402 -_081D837A: - ldrh r1, [r4, #2] - movs r2, #2 - ldrsh r0, [r4, r2] - cmp r0, #8 - bne _081D83DE - movs r0, #1 - rsbs r0, r0, #0 - str r5, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - strh r5, [r4, #2] - b _081D83D6 -_081D8398: - ldrh r1, [r4, #2] - movs r2, #2 - ldrsh r0, [r4, r2] - cmp r0, #0x7f - bne _081D83DE - movs r0, #0 - strh r0, [r4, #2] - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - ldr r2, _081D83C0 - movs r0, #4 - ldrsh r1, [r4, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldr r1, _081D83C4 - b _081D8400 - .align 2, 0 -_081D83C0: .4byte gUnknown_3005B60 -_081D83C4: .4byte sub_081D8468 -_081D83C8: - ldrh r1, [r4, #2] - movs r2, #2 - ldrsh r0, [r4, r2] - cmp r0, #0xc - bne _081D83DE - movs r0, #0 - strh r0, [r4, #2] -_081D83D6: - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - b _081D8402 -_081D83DE: - adds r0, r1, #1 - strh r0, [r4, #2] - b _081D8402 -_081D83E4: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldr r1, _081D840C - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, _081D8410 -_081D8400: - str r1, [r0] -_081D8402: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081D840C: .4byte gUnknown_3005B60 -_081D8410: .4byte Task_RayChargesEnd - thumb_func_end Task_HandleRayCharges - - thumb_func_start sub_081D8414 -sub_081D8414: @ 0x081D8414 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _081D8464 - adds r5, r1, r0 - ldrh r1, [r5, #0x1e] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _081D8458 - bl Random - movs r4, #7 - adds r1, r4, #0 - ands r1, r0 - subs r1, #4 - lsls r1, r1, #8 - movs r0, #1 - movs r2, #0 - bl ChangeBgX - bl Random - ands r4, r0 - subs r4, #4 - lsls r4, r4, #8 - movs r0, #1 - adds r1, r4, #0 - movs r2, #0 - bl ChangeBgY -_081D8458: - ldrh r0, [r5, #0x1e] - adds r0, #1 - strh r0, [r5, #0x1e] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081D8464: .4byte gUnknown_3005B68 - thumb_func_end sub_081D8414 - - thumb_func_start sub_081D8468 -sub_081D8468: @ 0x081D8468 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _081D84A8 - adds r4, r1, r0 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _081D84AC - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #1 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - movs r0, #0xa - strh r0, [r4, #2] - movs r1, #1 - rsbs r1, r1, #0 - adds r0, r1, #0 - b _081D84E6 - .align 2, 0 -_081D84A8: .4byte gUnknown_3005B68 -_081D84AC: - cmp r0, #1 - bne _081D84E8 - movs r0, #2 - ldrsh r1, [r4, r0] - lsls r1, r1, #8 - movs r0, #1 - movs r2, #2 - bl ChangeBgX - movs r0, #2 - ldrsh r1, [r4, r0] - lsls r1, r1, #8 - movs r0, #1 - movs r2, #1 - bl ChangeBgY - ldrh r0, [r4, #4] - ldrh r1, [r4, #2] - adds r0, r0, r1 - strh r0, [r4, #2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0xa - rsbs r1, r1, #0 - cmp r0, r1 - bne _081D84E8 - movs r1, #4 - ldrsh r0, [r4, r1] - rsbs r0, r0, #0 -_081D84E6: - strh r0, [r4, #4] -_081D84E8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081D8468 - - thumb_func_start sub_081D84F0 -sub_081D84F0: @ 0x081D84F0 - push {r4, lr} - movs r4, #0x80 - lsls r4, r4, #3 - movs r0, #2 - adds r1, r4, #0 - movs r2, #2 - bl ChangeBgX - movs r0, #2 - adds r1, r4, #0 - movs r2, #1 - bl ChangeBgY - movs r4, #0x80 - lsls r4, r4, #4 - movs r0, #0 - adds r1, r4, #0 - movs r2, #2 - bl ChangeBgX - movs r0, #0 - adds r1, r4, #0 - movs r2, #1 - bl ChangeBgY - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081D84F0 - - thumb_func_start Task_RayChargesEnd -Task_RayChargesEnd: @ 0x081D8528 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r5, r1, #3 - ldr r6, _081D8568 - adds r4, r5, r6 - bl sub_081D84F0 - ldr r0, _081D856C - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081D8562 - movs r0, #0 - bl SetVBlankCallback - bl sub_081D6240 - ldrb r0, [r4, #4] - bl DestroyTask - adds r0, r6, #0 - subs r0, #8 - adds r0, r5, r0 - ldr r1, _081D8570 - str r1, [r0] -_081D8562: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081D8568: .4byte gUnknown_3005B68 -_081D856C: .4byte gUnknown_2037C74 -_081D8570: .4byte Task_SetNextAnim - thumb_func_end Task_RayChargesEnd - - thumb_func_start sub_081D8574 -sub_081D8574: @ 0x081D8574 - push {r4, lr} - bl ResetVramOamAndBgCntRegs - movs r0, #0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _081D85F0 - movs r0, #1 - movs r2, #3 - bl InitBgsFromTemplates - ldr r4, _081D85F4 - ldr r1, [r4] - adds r1, #4 - movs r0, #0 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, _081D85F8 - adds r1, r1, r0 - movs r0, #1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, _081D85FC - adds r1, r1, r0 - movs r0, #2 - bl SetBgTilemapBuffer - bl ResetAllBgsCoordinates - movs r0, #0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, #2 - bl schedule_bg_copy_tilemap_to_vram - movs r1, #0xc1 - lsls r1, r1, #6 - movs r0, #0 - bl SetGpuReg - movs r0, #0 - bl ShowBg - movs r0, #1 - bl ShowBg - movs r0, #2 - bl ShowBg - movs r0, #0x50 - movs r1, #0 - bl SetGpuReg - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D85F0: .4byte gUnknown_85FC004 -_081D85F4: .4byte gUnknown_203CC2C -_081D85F8: .4byte 0x00000804 -_081D85FC: .4byte 0x00001004 - thumb_func_end sub_081D8574 - - thumb_func_start sub_081D8600 -sub_081D8600: @ 0x081D8600 - push {r4, lr} - sub sp, #4 - bl reset_temp_tile_data_buffers - ldr r1, _081D86A4 - movs r4, #0 - str r4, [sp] - movs r0, #2 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, _081D86A8 - str r4, [sp] - movs r0, #0 - movs r2, #0 - movs r3, #0 - bl decompress_and_copy_tile_data_to_vram -_081D8626: - bl free_temp_tile_data_buffers_if_possible - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081D8626 - ldr r0, _081D86AC - ldr r4, _081D86B0 - ldr r1, [r4] - ldr r2, _081D86B4 - adds r1, r1, r2 - bl sub_08034370 - ldr r0, _081D86B8 - ldr r1, [r4] - adds r1, #4 - bl sub_08034370 - ldr r0, _081D86BC - ldr r1, [r4] - ldr r2, _081D86C0 - adds r1, r1, r2 - bl sub_08034370 - ldr r0, _081D86C4 - movs r1, #0 - movs r2, #0x60 - bl LoadCompressedPalette - ldr r0, _081D86C8 - bl LoadCompressedSpriteSheet - ldr r0, _081D86CC - bl LoadCompressedSpriteSheet - ldr r0, _081D86D0 - bl LoadCompressedSpriteSheet - ldr r0, _081D86D4 - bl LoadCompressedSpriteSheet - ldr r0, _081D86D8 - bl LoadCompressedSpriteSheet - ldr r0, _081D86DC - bl LoadCompressedSpriteSheet - ldr r0, _081D86E0 - bl LoadCompressedSpritePalette - ldr r0, _081D86E4 - bl LoadCompressedSpritePalette - ldr r0, _081D86E8 - bl LoadCompressedSpritePalette - ldr r0, _081D86EC - bl LoadCompressedSpritePalette - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D86A4: .4byte gUnknown_8DAADCC -_081D86A8: .4byte gUnknown_8DAAB5C -_081D86AC: .4byte gUnknown_8DAB0FC -_081D86B0: .4byte gUnknown_203CC2C -_081D86B4: .4byte 0x00000804 -_081D86B8: .4byte gUnknown_8DAAEC4 -_081D86BC: .4byte gUnknown_8DAB240 -_081D86C0: .4byte 0x00001004 -_081D86C4: .4byte gUnknown_8DAB294 -_081D86C8: .4byte gUnknown_85FBF24 -_081D86CC: .4byte gUnknown_85FBF2C -_081D86D0: .4byte gUnknown_85FBF34 -_081D86D4: .4byte gUnknown_85FBF3C -_081D86D8: .4byte gUnknown_85FBF44 -_081D86DC: .4byte gUnknown_85FBF4C -_081D86E0: .4byte gUnknown_85FBF54 -_081D86E4: .4byte gUnknown_85FBF5C -_081D86E8: .4byte gUnknown_85FBF64 -_081D86EC: .4byte gUnknown_85FBF6C - thumb_func_end sub_081D8600 - - thumb_func_start Task_RayChasesAwayAnim -Task_RayChasesAwayAnim: @ 0x081D86F0 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r5, _081D87A4 - adds r6, r4, r5 - bl sub_081D8574 - bl sub_081D8600 - bl sub_081D6204 - movs r1, #0x80 - lsls r1, r1, #3 - movs r0, #0 - bl ClearGpuRegBits - ldr r1, _081D87A8 - movs r0, #0x50 - bl SetGpuReg - ldr r1, _081D87AC - movs r0, #0x52 - bl SetGpuReg - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0x10 - movs r2, #0 - bl BlendPalettes - ldr r0, _081D87B0 - bl SetVBlankCallback - movs r0, #0 - strh r0, [r6] - strh r0, [r6, #2] - subs r5, #8 - adds r4, r4, r5 - ldr r0, _081D87B4 - str r0, [r4] - ldr r0, _081D87B8 - movs r1, #0 - bl CreateTask - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r6, #4] - movs r0, #4 - ldrsh r1, [r6, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r2, #0 - strh r2, [r0, #8] - movs r0, #4 - ldrsh r1, [r6, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - strh r2, [r0, #0xa] - movs r0, #4 - ldrsh r1, [r6, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - strh r2, [r0, #0xc] - movs r0, #4 - ldrsh r1, [r6, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - movs r2, #1 - strh r2, [r0, #0xe] - movs r0, #4 - ldrsh r1, [r6, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r5 - strh r2, [r0, #0x10] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081D87A4: .4byte gUnknown_3005B68 -_081D87A8: .4byte 0x00000241 -_081D87AC: .4byte 0x00000E09 -_081D87B0: .4byte VBlankCB_RayquazaScene -_081D87B4: .4byte Task_HandleRayChasesAway -_081D87B8: .4byte sub_081D88EC - thumb_func_end Task_RayChasesAwayAnim - - thumb_func_start Task_HandleRayChasesAway -Task_HandleRayChasesAway: @ 0x081D87BC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r7, r0, #3 - ldr r0, _081D87E8 - mov r8, r0 - adds r4, r7, r0 - movs r1, #0 - ldrsh r5, [r4, r1] - cmp r5, #1 - beq _081D881A - cmp r5, #1 - bgt _081D87EC - cmp r5, #0 - beq _081D87F6 - b _081D88DC - .align 2, 0 -_081D87E8: .4byte gUnknown_3005B68 -_081D87EC: - cmp r5, #2 - beq _081D885A - cmp r5, #3 - beq _081D88C0 - b _081D88DC -_081D87F6: - ldrh r1, [r4, #2] - movs r2, #2 - ldrsh r0, [r4, r2] - cmp r0, #8 - bne _081D8854 - adds r0, r6, #0 - bl sub_081D89E4 - movs r0, #1 - rsbs r0, r0, #0 - str r5, [sp] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl BeginNormalPaletteFade - strh r5, [r4, #2] - b _081D886C -_081D881A: - ldr r2, _081D884C - movs r0, #0xa - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #0x1c - adds r0, r0, r2 - ldr r1, [r0] - ldr r0, _081D8850 - cmp r1, r0 - bne _081D88DC - ldrh r1, [r4, #2] - movs r2, #2 - ldrsh r0, [r4, r2] - cmp r0, #0x40 - bne _081D8854 - adds r0, r6, #0 - bl sub_081D8E10 - adds r0, r6, #0 - bl sub_081D8D14 - b _081D8868 - .align 2, 0 -_081D884C: .4byte gUnknown_20205AC -_081D8850: .4byte sub_081D911C -_081D8854: - adds r0, r1, #1 - strh r0, [r4, #2] - b _081D88DC -_081D885A: - ldrh r2, [r4, #2] - movs r0, #2 - ldrsh r1, [r4, r0] - movs r0, #0xe0 - lsls r0, r0, #1 - cmp r1, r0 - bne _081D8874 -_081D8868: - movs r0, #0 - strh r0, [r4, #2] -_081D886C: - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - b _081D88DC -_081D8874: - adds r0, r2, #1 - strh r0, [r4, #2] - movs r1, #2 - ldrsh r0, [r4, r1] - movs r1, #0x90 - bl __modsi3 - lsls r0, r0, #0x10 - asrs r4, r0, #0x10 - cmp r4, #0 - bne _081D88DC - ldr r0, _081D88B4 - ldr r1, _081D88B8 - str r1, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl sub_080A250C - ldr r0, _081D88BC - str r4, [sp] - str r4, [sp, #4] - movs r1, #1 - str r1, [sp, #8] - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl sub_080A250C - b _081D88DC - .align 2, 0 -_081D88B4: .4byte 0x0000FFFE -_081D88B8: .4byte 0x0000FFFF -_081D88BC: .4byte 0xFFFF0000 -_081D88C0: - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #0 - str r1, [sp] - movs r1, #4 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - mov r0, r8 - subs r0, #8 - adds r0, r7, r0 - ldr r1, _081D88E8 - str r1, [r0] -_081D88DC: - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D88E8: .4byte Task_RayChasesAwayEnd - thumb_func_end Task_HandleRayChasesAway - - thumb_func_start sub_081D88EC -sub_081D88EC: @ 0x081D88EC - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _081D896C - adds r4, r1, r0 - ldrh r1, [r4] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _081D8960 - ldrh r1, [r4, #2] - adds r1, #0xe - lsls r1, r1, #8 - movs r2, #0xf8 - lsls r2, r2, #5 - adds r0, r2, #0 - ands r1, r0 - ldrh r0, [r4, #4] - adds r0, #9 - movs r2, #0xf - ands r0, r2 - orrs r1, r0 - movs r0, #0x52 - bl SetGpuReg - ldrh r1, [r4, #2] - ldrh r0, [r4, #6] - subs r1, r1, r0 - strh r1, [r4, #2] - ldrh r0, [r4, #8] - ldrh r2, [r4, #4] - adds r0, r0, r2 - strh r0, [r4, #4] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r0, #3 - rsbs r0, r0, #0 - cmp r1, r0 - beq _081D8944 - cmp r1, #0 - bne _081D894C -_081D8944: - movs r1, #6 - ldrsh r0, [r4, r1] - rsbs r0, r0, #0 - strh r0, [r4, #6] -_081D894C: - movs r2, #4 - ldrsh r0, [r4, r2] - cmp r0, #3 - beq _081D8958 - cmp r0, #0 - bne _081D8960 -_081D8958: - movs r1, #8 - ldrsh r0, [r4, r1] - rsbs r0, r0, #0 - strh r0, [r4, #8] -_081D8960: - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D896C: .4byte gUnknown_3005B68 - thumb_func_end sub_081D88EC - - thumb_func_start Task_RayChasesAwayEnd -Task_RayChasesAwayEnd: @ 0x081D8970 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r6, r1, #3 - ldr r7, _081D89CC - adds r4, r6, r7 - ldr r0, _081D89D0 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _081D89DC - bl StopMapMusic - movs r1, #2 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _081D89B4 - movs r0, #0 - bl SetVBlankCallback - bl sub_081D6240 - bl ResetSpriteData - bl FreeAllSpritePalettes - ldrb r0, [r4, #4] - bl DestroyTask -_081D89B4: - ldrh r1, [r4, #2] - movs r2, #2 - ldrsh r0, [r4, r2] - cmp r0, #0x20 - bne _081D89D8 - strh r5, [r4, #2] - adds r0, r7, #0 - subs r0, #8 - adds r0, r6, r0 - ldr r1, _081D89D4 - str r1, [r0] - b _081D89DC - .align 2, 0 -_081D89CC: .4byte gUnknown_3005B68 -_081D89D0: .4byte gUnknown_2037C74 -_081D89D4: .4byte Task_SetNextAnim -_081D89D8: - adds r0, r1, #1 - strh r0, [r4, #2] -_081D89DC: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end Task_RayChasesAwayEnd - - thumb_func_start sub_081D89E4 -sub_081D89E4: @ 0x081D89E4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #3 - ldr r0, _081D8B94 - adds r4, r4, r0 - ldr r0, _081D8B98 - movs r1, #0x40 - movs r2, #0x78 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #6] - movs r0, #6 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _081D8B9C - mov sl, r1 - adds r7, r0, r1 - ldr r0, _081D8BA0 - movs r1, #0x10 - movs r2, #0x82 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r7] - movs r2, #0x2e - rsbs r2, r2, #0 - add r2, sl - mov r8, r2 - movs r1, #6 - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - add r1, r8 - ldrb r2, [r1, #5] - movs r6, #0xd - rsbs r6, r6, #0 - adds r0, r6, #0 - ands r0, r2 - movs r2, #4 - mov sb, r2 - mov r2, sb - orrs r0, r2 - strb r0, [r1, #5] - movs r1, #0 - ldrsh r0, [r7, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - add r1, r8 - ldrb r2, [r1, #5] - adds r0, r6, #0 - ands r0, r2 - mov r2, sb - orrs r0, r2 - strb r0, [r1, #5] - ldr r5, _081D8BA4 - adds r0, r5, #0 - movs r1, #0xa0 - movs r2, #0x80 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #8] - movs r0, #8 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - mov r1, sl - adds r7, r0, r1 - adds r0, r5, #0 - movs r1, #0xc0 - movs r2, #0x80 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r7] - adds r0, r5, #0 - movs r1, #0xe0 - movs r2, #0x80 - movs r3, #1 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r7, #2] - movs r2, #8 - ldrsh r0, [r4, r2] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - add r1, r8 - ldrb r2, [r1, #5] - adds r0, r6, #0 - ands r0, r2 - mov r2, sb - orrs r0, r2 - strb r0, [r1, #5] - movs r1, #0 - ldrsh r0, [r7, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - add r1, r8 - ldrb r2, [r1, #5] - adds r0, r6, #0 - ands r0, r2 - mov r2, sb - orrs r0, r2 - strb r0, [r1, #5] - movs r1, #2 - ldrsh r0, [r7, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - add r1, r8 - ldrb r2, [r1, #5] - adds r0, r6, #0 - ands r0, r2 - mov r2, sb - orrs r0, r2 - strb r0, [r1, #5] - movs r0, #0 - ldrsh r1, [r7, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - movs r1, #1 - bl StartSpriteAnim - movs r2, #2 - ldrsh r1, [r7, r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - movs r1, #2 - bl StartSpriteAnim - ldr r0, _081D8BA8 - movs r2, #0x41 - rsbs r2, r2, #0 - movs r1, #0x78 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0xa] - movs r0, #0xa - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - mov r1, sl - adds r7, r0, r1 - ldr r0, _081D8BAC - movs r2, #0x71 - rsbs r2, r2, #0 - movs r1, #0x78 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r7] - movs r2, #0xa - ldrsh r0, [r4, r2] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - add r1, r8 - ldrb r2, [r1, #5] - adds r0, r6, #0 - ands r0, r2 - mov r2, sb - orrs r0, r2 - strb r0, [r1, #5] - movs r0, #0 - ldrsh r1, [r7, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - ldrb r1, [r0, #5] - ands r6, r1 - orrs r6, r2 - strb r6, [r0, #5] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D8B94: .4byte gUnknown_3005B68 -_081D8B98: .4byte gUnknown_85FBF74 -_081D8B9C: .4byte gUnknown_20205DA -_081D8BA0: .4byte gUnknown_85FBF8C -_081D8BA4: .4byte gUnknown_85FBFA4 -_081D8BA8: .4byte gUnknown_85FBFBC -_081D8BAC: .4byte gUnknown_85FBFD4 - thumb_func_end sub_081D89E4 - - thumb_func_start sub_081D8BB0 -sub_081D8BB0: @ 0x081D8BB0 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r0, #2 - adds r2, r2, r0 - lsls r2, r2, #3 - ldr r0, _081D8C68 - adds r2, r2, r0 - ldr r3, _081D8C6C - movs r0, #6 - ldrsh r1, [r2, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - movs r1, #0x1c - adds r1, r1, r3 - mov r8, r1 - add r0, r8 - ldr r6, _081D8C70 - str r6, [r0] - movs r0, #6 - ldrsh r1, [r2, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r4, #0 - strh r4, [r0, #0x36] - movs r0, #6 - ldrsh r1, [r2, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r4, [r0, #0x38] - movs r0, #6 - ldrsh r1, [r2, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r5, #4 - strh r5, [r0, #0x3a] - movs r0, #6 - ldrsh r1, [r2, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r4, [r0, #0x3c] - movs r0, #8 - ldrsh r1, [r2, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - str r6, [r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r4, [r0, #0x36] - movs r0, #8 - ldrsh r1, [r2, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r4, [r0, #0x38] - movs r0, #8 - ldrsh r1, [r2, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r5, [r0, #0x3a] - movs r0, #8 - ldrsh r1, [r2, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r1, #1 - strh r1, [r0, #0x3c] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081D8C68: .4byte gUnknown_3005B68 -_081D8C6C: .4byte gUnknown_20205AC -_081D8C70: .4byte sub_081D8C74 - thumb_func_end sub_081D8BB0 - - thumb_func_start sub_081D8C74 -sub_081D8C74: @ 0x081D8C74 - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x36] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _081D8D08 - movs r1, #0x3c - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _081D8CAC - ldrh r0, [r4, #0x20] - ldrh r3, [r4, #0x3a] - subs r0, r0, r3 - strh r0, [r4, #0x20] - ldr r2, _081D8CA8 - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x20] - subs r1, r1, r3 - b _081D8CDA - .align 2, 0 -_081D8CA8: .4byte gUnknown_20205AC -_081D8CAC: - ldrh r2, [r4, #0x3a] - ldrh r1, [r4, #0x20] - adds r0, r2, r1 - strh r0, [r4, #0x20] - ldr r3, _081D8D00 - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r0, #0x20] - adds r2, r2, r1 - strh r2, [r0, #0x20] - movs r2, #0x30 - ldrsh r1, [r4, r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r4, #0x3a] - ldrh r2, [r0, #0x20] - adds r1, r1, r2 -_081D8CDA: - strh r1, [r0, #0x20] - ldrh r1, [r4, #0x38] - adds r1, #1 - movs r2, #0 - strh r1, [r4, #0x38] - ldrh r0, [r4, #0x3a] - subs r0, r0, r1 - strh r0, [r4, #0x3a] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #3 - bne _081D8D08 - strh r2, [r4, #0x36] - strh r2, [r4, #0x38] - strh r2, [r4, #0x3a] - ldr r0, _081D8D04 - str r0, [r4, #0x1c] - b _081D8D0E - .align 2, 0 -_081D8D00: .4byte gUnknown_20205AC -_081D8D04: .4byte sub_08007140 -_081D8D08: - ldrh r0, [r4, #0x36] - adds r0, #1 - strh r0, [r4, #0x36] -_081D8D0E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_081D8C74 - - thumb_func_start sub_081D8D14 -sub_081D8D14: @ 0x081D8D14 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r2, r0, #2 - adds r2, r2, r0 - lsls r2, r2, #3 - ldr r0, _081D8D50 - adds r2, r2, r0 - ldr r3, _081D8D54 - movs r0, #6 - ldrsh r1, [r2, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r3, #0 - adds r1, #0x1c - adds r0, r0, r1 - ldr r1, _081D8D58 - str r1, [r0] - movs r0, #6 - ldrsh r1, [r2, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - movs r1, #1 - bl StartSpriteAnim - pop {r0} - bx r0 - .align 2, 0 -_081D8D50: .4byte gUnknown_3005B68 -_081D8D54: .4byte gUnknown_20205AC -_081D8D58: .4byte sub_081D8D5C - thumb_func_end sub_081D8D14 - - thumb_func_start sub_081D8D5C -sub_081D8D5C: @ 0x081D8D5C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x2b - ldrb r0, [r0] - cmp r0, #1 - beq _081D8DC4 - cmp r0, #1 - bgt _081D8D72 - cmp r0, #0 - beq _081D8D7C - b _081D8E00 -_081D8D72: - cmp r0, #2 - beq _081D8D7C - cmp r0, #3 - beq _081D8DC4 - b _081D8E00 -_081D8D7C: - adds r0, r4, #0 - adds r0, #0x2c - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1a - movs r1, #0xc - bl __umodsi3 - lsls r0, r0, #0x18 - ldr r2, _081D8DC0 - cmp r0, #0 - bne _081D8DAC - ldrh r0, [r4, #0x20] - subs r0, #2 - strh r0, [r4, #0x20] - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x20] - subs r1, #2 - strh r1, [r0, #0x20] -_081D8DAC: - movs r1, #0x2e - ldrsh r0, [r4, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #0 - strh r0, [r1, #0x26] - b _081D8E00 - .align 2, 0 -_081D8DC0: .4byte gUnknown_20205AC -_081D8DC4: - ldr r2, _081D8E08 - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, _081D8E0C - strh r1, [r0, #0x26] - adds r0, r4, #0 - adds r0, #0x2c - ldrb r1, [r0] - lsls r1, r1, #0x1a - lsrs r1, r1, #0x1a - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _081D8E00 - ldrh r0, [r4, #0x22] - adds r0, #1 - strh r0, [r4, #0x22] - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0, #0x22] - adds r1, #1 - strh r1, [r0, #0x22] -_081D8E00: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D8E08: .4byte gUnknown_20205AC -_081D8E0C: .4byte 0x0000FFFE - thumb_func_end sub_081D8D5C - - thumb_func_start sub_081D8E10 -sub_081D8E10: @ 0x081D8E10 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _081D8E58 - adds r1, r1, r0 - movs r0, #8 - ldrsh r1, [r1, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r2, _081D8E5C - adds r4, r0, r2 - subs r2, #0x12 - adds r0, r0, r2 - ldr r3, _081D8E60 - str r3, [r0] - movs r0, #0 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - str r3, [r0] - movs r0, #2 - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - str r3, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D8E58: .4byte gUnknown_3005B68 -_081D8E5C: .4byte gUnknown_20205DA -_081D8E60: .4byte sub_081D8E64 - thumb_func_end sub_081D8E10 - - thumb_func_start sub_081D8E64 -sub_081D8E64: @ 0x081D8E64 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - ldrh r1, [r7, #0x36] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _081D8E8C - ldrh r1, [r7, #0x24] - movs r2, #0x24 - ldrsh r0, [r7, r2] - cmp r0, #1 - bne _081D8E88 - ldr r0, _081D8E84 - b _081D8E8A - .align 2, 0 -_081D8E84: .4byte 0x0000FFFF -_081D8E88: - movs r0, #1 -_081D8E8A: - strh r0, [r7, #0x24] -_081D8E8C: - movs r1, #0x38 - ldrsh r0, [r7, r1] - cmp r0, #0x80 - bne _081D8F0A - ldr r2, _081D8F2C - mov r8, r2 - mov r0, r8 - movs r1, #0x98 - movs r2, #0x84 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r7, #0x3c] - ldr r5, _081D8F30 - movs r1, #0x3c - ldrsh r0, [r7, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldrb r2, [r1, #5] - movs r4, #0xd - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r2 - movs r6, #4 - orrs r0, r6 - strb r0, [r1, #5] - mov r0, r8 - movs r1, #0xe0 - movs r2, #0x84 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r7, #0x3c] - movs r2, #0x3c - ldrsh r1, [r7, r2] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r1, [r0, #5] - ands r4, r1 - orrs r4, r6 - strb r4, [r0, #5] - movs r0, #0x3c - ldrsh r1, [r7, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x3f - ldrb r1, [r0] - movs r2, #1 - orrs r1, r2 - strb r1, [r0] - ldrh r0, [r7, #0x38] - adds r0, #1 - strh r0, [r7, #0x38] -_081D8F0A: - ldrh r1, [r7, #0x38] - movs r2, #0x38 - ldrsh r0, [r7, r2] - cmp r0, #0x7f - ble _081D8F34 - movs r1, #0x26 - ldrsh r0, [r7, r1] - cmp r0, #0x20 - beq _081D8F38 - ldrh r0, [r7, #0x3a] - adds r0, #1 - strh r0, [r7, #0x3a] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - strh r0, [r7, #0x26] - b _081D8F38 - .align 2, 0 -_081D8F2C: .4byte gUnknown_85FBFEC -_081D8F30: .4byte gUnknown_20205AC -_081D8F34: - adds r0, r1, #1 - strh r0, [r7, #0x38] -_081D8F38: - ldrh r0, [r7, #0x36] - movs r1, #0x3f - ands r0, r1 - cmp r0, #0 - bne _081D8F48 - movs r0, #0xa5 - bl sub_080A306C -_081D8F48: - ldrh r0, [r7, #0x36] - adds r0, #1 - strh r0, [r7, #0x36] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_081D8E64 - - thumb_func_start sub_081D8F58 -sub_081D8F58: @ 0x081D8F58 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x3c - ldrsh r1, [r4, r0] - cmp r1, #0x40 - bgt _081D8FC8 - ldrh r0, [r4, #0x26] - adds r0, #2 - strh r0, [r4, #0x26] - ldr r5, _081D8FC0 - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrh r1, [r0, #0x26] - adds r1, #2 - strh r1, [r0, #0x26] - movs r1, #0x3c - ldrsh r0, [r4, r1] - cmp r0, #0x40 - beq _081D8F88 - b _081D90DA -_081D8F88: - movs r3, #0x30 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_081D91A4 - movs r2, #5 - strh r2, [r4, #0x36] - ldr r0, _081D8FC4 - strh r0, [r4, #0x38] - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #3 - strh r1, [r0, #0x36] - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - strh r2, [r0, #0x38] - b _081D90DA - .align 2, 0 -_081D8FC0: .4byte gUnknown_20205AC -_081D8FC4: .4byte 0x0000FFFF -_081D8FC8: - cmp r1, #0x6f - bgt _081D8FFA - adds r0, r4, #0 - bl sub_081D911C - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _081D8FE0 - movs r0, #0x68 - bl sub_080A306C -_081D8FE0: - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #3 - rsbs r0, r0, #0 - cmp r1, r0 - bne _081D90DA - adds r0, r4, #0 - movs r1, #2 - movs r2, #0x30 - movs r3, #0x10 - bl sub_081D91A4 - b _081D90DA -_081D8FFA: - cmp r1, #0x70 - bne _081D9028 - ldr r2, _081D9024 - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #7 - strh r1, [r0, #0x36] - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #3 - strh r1, [r0, #0x38] - b _081D902E - .align 2, 0 -_081D9024: .4byte gUnknown_20205AC -_081D9028: - ldr r0, _081D9038 - cmp r1, r0 - bgt _081D903C -_081D902E: - adds r0, r4, #0 - bl sub_081D911C - b _081D90DA - .align 2, 0 -_081D9038: .4byte 0x00000147 -_081D903C: - movs r0, #0xa4 - lsls r0, r0, #1 - cmp r1, r0 - bne _081D9088 - adds r0, r4, #0 - bl sub_081D911C - adds r0, r4, #0 - movs r1, #3 - movs r2, #0x30 - movs r3, #0x10 - bl sub_081D91A4 - movs r3, #1 - strh r3, [r4, #0x24] - ldr r2, _081D9080 - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r3, [r0, #0x24] - movs r0, #0xcb - lsls r0, r0, #1 - movs r1, #0 - bl PlayCry1 - ldr r0, _081D9084 - movs r1, #0 - bl CreateTask - b _081D90DA - .align 2, 0 -_081D9080: .4byte gUnknown_20205AC -_081D9084: .4byte sub_081D91F0 -_081D9088: - movs r0, #0xb0 - lsls r0, r0, #1 - cmp r1, r0 - beq _081D90CC - adds r0, #0x18 - cmp r1, r0 - bne _081D90DA - movs r3, #0 - strh r3, [r4, #0x24] - ldr r2, _081D90C4 - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - strh r3, [r0, #0x24] - adds r0, r4, #0 - bl sub_081D911C - adds r0, r4, #0 - movs r1, #2 - movs r2, #0x30 - movs r3, #0x10 - bl sub_081D91A4 - ldr r0, _081D90C8 - str r0, [r4, #0x1c] - b _081D910E - .align 2, 0 -_081D90C4: .4byte gUnknown_20205AC -_081D90C8: .4byte sub_081D911C -_081D90CC: - ldr r0, _081D9114 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_081D8BB0 -_081D90DA: - ldrh r2, [r4, #0x3c] - movs r0, #0x3c - ldrsh r1, [r4, r0] - movs r0, #0xa4 - lsls r0, r0, #1 - cmp r1, r0 - ble _081D9108 - movs r0, #1 - ands r0, r2 - cmp r0, #0 - bne _081D9108 - movs r1, #0x24 - ldrsh r2, [r4, r1] - rsbs r2, r2, #0 - strh r2, [r4, #0x24] - ldr r3, _081D9118 - movs r0, #0x2e - ldrsh r1, [r4, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r2, [r0, #0x24] -_081D9108: - ldrh r0, [r4, #0x3c] - adds r0, #1 - strh r0, [r4, #0x3c] -_081D910E: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081D9114: .4byte Task_HandleRayChasesAway -_081D9118: .4byte gUnknown_20205AC - thumb_func_end sub_081D8F58 - - thumb_func_start sub_081D911C -sub_081D911C: @ 0x081D911C - push {r4, r5, r6, r7, lr} - adds r3, r0, #0 - movs r0, #0x2e - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r5, _081D917C - adds r4, r0, r5 - ldrh r1, [r3, #0x3a] - ldrh r0, [r4, #0x36] - ands r0, r1 - cmp r0, #0 - bne _081D9198 - ldrh r2, [r3, #0x36] - ldrh r1, [r3, #0x26] - adds r0, r2, r1 - strh r0, [r3, #0x26] - movs r7, #0x2e - ldrsh r1, [r3, r7] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrh r1, [r0, #0x26] - adds r2, r2, r1 - strh r2, [r0, #0x26] - ldrh r0, [r3, #0x38] - ldrh r2, [r3, #0x36] - adds r0, r0, r2 - strh r0, [r3, #0x36] - lsls r0, r0, #0x10 - asrs r5, r0, #0x10 - ldrh r6, [r4, #0x38] - movs r7, #0x38 - ldrsh r2, [r4, r7] - cmp r5, r2 - bge _081D9172 - movs r0, #0x36 - ldrsh r1, [r3, r0] - adds r0, r2, #0 - cmn r1, r0 - bgt _081D9198 -_081D9172: - cmp r5, r2 - ble _081D9180 - strh r6, [r3, #0x36] - b _081D9190 - .align 2, 0 -_081D917C: .4byte gUnknown_20205AC -_081D9180: - movs r0, #0x36 - ldrsh r1, [r3, r0] - movs r2, #0x38 - ldrsh r0, [r4, r2] - cmn r1, r0 - bge _081D9190 - rsbs r0, r6, #0 - strh r0, [r3, #0x36] -_081D9190: - movs r7, #0x38 - ldrsh r0, [r3, r7] - rsbs r0, r0, #0 - strh r0, [r3, #0x38] -_081D9198: - ldrh r0, [r3, #0x3a] - adds r0, #1 - strh r0, [r3, #0x3a] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_081D911C - - thumb_func_start sub_081D91A4 -sub_081D91A4: @ 0x081D91A4 - push {r4, r5, lr} - adds r5, r1, #0 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - movs r4, #0x2e - ldrsh r1, [r0, r4] - lsls r4, r1, #4 - adds r4, r4, r1 - lsls r4, r4, #2 - ldr r1, _081D91EC - adds r4, r4, r1 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - ldrh r1, [r0, #0x20] - adds r2, r2, r1 - strh r2, [r4, #0x20] - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - ldrh r1, [r0, #0x22] - adds r3, r3, r1 - strh r3, [r4, #0x22] - ldrh r1, [r0, #0x24] - strh r1, [r4, #0x24] - ldrh r1, [r0, #0x26] - strh r1, [r4, #0x26] - adds r1, r5, #0 - bl StartSpriteAnim - adds r0, r4, #0 - adds r1, r5, #0 - bl StartSpriteAnim - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081D91EC: .4byte gUnknown_20205AC - thumb_func_end sub_081D91A4 - - thumb_func_start sub_081D91F0 -sub_081D91F0: @ 0x081D91F0 - push {r4, r5, lr} - sub sp, #0x10 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #3 - ldr r1, _081D9214 - adds r4, r0, r1 - movs r0, #0 - ldrsh r1, [r4, r0] - cmp r1, #1 - beq _081D9248 - cmp r1, #1 - bgt _081D9218 - cmp r1, #0 - beq _081D921E - b _081D92F0 - .align 2, 0 -_081D9214: .4byte gUnknown_3005B68 -_081D9218: - cmp r1, #2 - beq _081D92E0 - b _081D92F0 -_081D921E: - movs r2, #0x80 - lsls r2, r2, #7 - movs r0, #0x40 - str r0, [sp] - adds r0, #0xc0 - str r0, [sp, #4] - str r0, [sp, #8] - str r1, [sp, #0xc] - movs r0, #2 - adds r1, r2, #0 - movs r3, #0x78 - bl SetBgAffine - movs r1, #0x80 - lsls r1, r1, #3 - movs r0, #0 - bl SetGpuRegBits - movs r0, #0x10 - strh r0, [r4, #8] - b _081D925E -_081D9248: - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #8 - bne _081D9256 - movs r0, #0x12 - bl sub_080A306C -_081D9256: - movs r3, #4 - ldrsh r0, [r4, r3] - cmp r0, #2 - bne _081D9266 -_081D925E: - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - b _081D92F0 -_081D9266: - ldrh r5, [r4, #8] - ldrh r1, [r4, #2] - adds r0, r5, r1 - strh r0, [r4, #2] - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - movs r3, #6 - ldrsh r0, [r4, r3] - movs r1, #3 - bl __modsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _081D9290 - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - cmp r0, #4 - beq _081D9290 - subs r0, r5, #2 - strh r0, [r4, #8] -_081D9290: - ldrh r0, [r4, #6] - adds r0, #1 - strh r0, [r4, #6] - movs r2, #0x80 - lsls r2, r2, #7 - movs r0, #0x40 - str r0, [sp] - ldrh r0, [r4, #2] - movs r3, #0x80 - lsls r3, r3, #1 - adds r1, r3, #0 - subs r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - str r0, [sp, #4] - ldrh r0, [r4, #2] - subs r1, r1, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - str r1, [sp, #8] - movs r5, #0 - str r5, [sp, #0xc] - movs r0, #2 - adds r1, r2, #0 - movs r3, #0x78 - bl SetBgAffine - movs r1, #2 - ldrsh r0, [r4, r1] - cmp r0, #0xff - ble _081D92F0 - strh r5, [r4, #2] - strh r5, [r4, #6] - strh r5, [r4, #0xa] - movs r0, #0x10 - strh r0, [r4, #8] - ldrh r0, [r4, #4] - adds r0, #1 - strh r0, [r4, #4] - b _081D92F0 -_081D92E0: - movs r1, #0x80 - lsls r1, r1, #3 - movs r0, #0 - bl ClearGpuRegBits - adds r0, r5, #0 - bl DestroyTask -_081D92F0: - add sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 - thumb_func_end sub_081D91F0 - - thumb_func_start TryBufferWaldaPhrase -TryBufferWaldaPhrase: @ 0x081D92F8 - push {r4, lr} - bl IsWaldaPhraseEmpty - cmp r0, #0 - bne _081D9318 - ldr r4, _081D9314 - bl sub_080D1DE8 - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCopy - movs r0, #1 - b _081D931A - .align 2, 0 -_081D9314: .4byte gUnknown_2021C40 -_081D9318: - movs r0, #0 -_081D931A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end TryBufferWaldaPhrase - - thumb_func_start DoWaldaNamingScreen -DoWaldaNamingScreen: @ 0x081D9320 - push {r4, lr} - sub sp, #8 - ldr r4, _081D9350 - bl sub_080D1DE8 - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCopy - movs r0, #0 - str r0, [sp] - ldr r0, _081D9354 - str r0, [sp, #4] - movs r0, #4 - adds r1, r4, #0 - movs r2, #0 - movs r3, #0 - bl DoNamingScreen - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D9350: .4byte gUnknown_2021C54 -_081D9354: .4byte CB2_HandleGivenWaldaPhrase - thumb_func_end DoWaldaNamingScreen - - thumb_func_start CB2_HandleGivenWaldaPhrase -CB2_HandleGivenWaldaPhrase: @ 0x081D9358 - push {r4, r5, lr} - ldr r4, _081D9378 - ldr r5, _081D937C - adds r0, r5, #0 - bl GetWaldaPhraseInputCase - strh r0, [r4] - ldrh r0, [r4] - cmp r0, #1 - beq _081D93A4 - cmp r0, #1 - bgt _081D9380 - cmp r0, #0 - beq _081D939E - b _081D93A4 - .align 2, 0 -_081D9378: .4byte gUnknown_2037280 -_081D937C: .4byte gUnknown_2021C54 -_081D9380: - cmp r0, #2 - bne _081D93A4 - bl IsWaldaPhraseEmpty - cmp r0, #0 - beq _081D9398 - ldr r0, _081D9394 - bl SetWaldaPhrase - b _081D93A4 - .align 2, 0 -_081D9394: .4byte gUnknown_85FC010 -_081D9398: - movs r0, #1 - strh r0, [r4] - b _081D93A4 -_081D939E: - adds r0, r5, #0 - bl SetWaldaPhrase -_081D93A4: - ldr r4, _081D93C4 - bl sub_080D1DE8 - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCopy - ldr r1, _081D93C8 - ldr r0, _081D93CC - str r0, [r1] - ldr r0, _081D93D0 - bl SetMainCallback2 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081D93C4: .4byte gUnknown_2021C40 -_081D93C8: .4byte gUnknown_3005B0C -_081D93CC: .4byte FieldCallback_ReturnToEventScript2 -_081D93D0: .4byte sub_08085A30 - thumb_func_end CB2_HandleGivenWaldaPhrase - - thumb_func_start GetWaldaPhraseInputCase -GetWaldaPhraseInputCase: @ 0x081D93D4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4] - cmp r0, #0xff - bne _081D93E2 - movs r0, #2 - b _081D93F8 -_081D93E2: - bl sub_080D1DE8 - adds r1, r0, #0 - adds r0, r4, #0 - bl StringCompare - cmp r0, #0 - beq _081D93F6 - movs r0, #0 - b _081D93F8 -_081D93F6: - movs r0, #1 -_081D93F8: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetWaldaPhraseInputCase - - thumb_func_start TryGetWallpaperWithWaldaPhrase -TryGetWallpaperWithWaldaPhrase: @ 0x081D9400 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x10 - ldr r0, _081D9474 - ldr r0, [r0] - adds r0, #0xa - bl GetTrainerId - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - ldr r0, _081D9478 - mov r8, r0 - bl sub_080D1DE8 - mov r7, sp - adds r7, #0xa - add r6, sp, #0xc - mov r5, sp - adds r5, #0xd - str r4, [sp] - str r0, [sp, #4] - add r0, sp, #8 - adds r1, r7, #0 - adds r2, r6, #0 - adds r3, r5, #0 - bl sub_081D947C - mov r1, r8 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _081D945A - ldrb r0, [r5] - bl SetWaldaWallpaperPatternId - ldrb r0, [r6] - bl SetWaldaWallpaperIconId - add r0, sp, #8 - ldrh r0, [r0] - ldrh r1, [r7] - bl SetWaldaWallpaperColors -_081D945A: - mov r1, r8 - ldrh r0, [r1] - bl SetWaldaWallpaperLockedOrUnlocked - mov r1, r8 - ldrb r0, [r1] - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081D9474: .4byte gUnknown_3005AF0 -_081D9478: .4byte gUnknown_2037290 - thumb_func_end TryGetWallpaperWithWaldaPhrase - - thumb_func_start sub_081D947C -sub_081D947C: @ 0x081D947C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x2c - str r0, [sp, #0x1c] - str r1, [sp, #0x20] - str r2, [sp, #0x24] - str r3, [sp, #0x28] - ldr r0, [sp, #0x4c] - ldr r6, [sp, #0x50] - lsls r5, r0, #0x10 - lsrs r0, r5, #0x10 - mov sl, r0 - adds r0, r6, #0 - bl StringLength - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xc - bne _081D9562 - movs r4, #0 - add r7, sp, #0x10 - lsrs r5, r5, #0x18 - mov sb, r5 - adds r2, r7, #0 -_081D94B2: - adds r1, r2, r4 - adds r0, r6, r4 - ldrb r0, [r0] - subs r0, #1 - strb r0, [r1] - adds r4, #1 - cmp r4, #0xb - ble _081D94B2 - movs r6, #2 - movs r5, #0 - movs r1, #6 - mov r8, r1 - movs r4, #0xb -_081D94CC: - mov r0, r8 - str r0, [sp] - add r0, sp, #4 - adds r1, r7, #0 - adds r2, r5, #0 - adds r3, r6, #0 - bl sub_081D9640 - adds r6, #8 - adds r5, #6 - subs r4, #1 - cmp r4, #0 - bge _081D94CC - add r0, sp, #4 - movs r1, #9 - movs r2, #0x15 - bl sub_081D9574 - add r0, sp, #4 - ldrb r0, [r0, #8] - movs r2, #0xf - ands r2, r0 - add r0, sp, #4 - movs r1, #8 - bl sub_081D9574 - add r0, sp, #4 - ldrb r2, [r0, #8] - lsrs r2, r2, #4 - movs r1, #8 - bl sub_081D95C0 - add r0, sp, #4 - ldrb r2, [r0, #6] - adds r1, r0, #0 - ldrb r0, [r0] - ldrb r1, [r1, #2] - eors r0, r1 - add r1, sp, #4 - ldrb r4, [r1, #4] - eors r0, r4 - mov r1, sb - eors r0, r1 - cmp r2, r0 - bne _081D9562 - add r0, sp, #4 - ldrb r3, [r0, #7] - adds r2, r0, #0 - ldrb r1, [r0, #1] - ldrb r0, [r2, #3] - eors r1, r0 - adds r0, r2, #0 - ldrb r2, [r0, #5] - eors r1, r2 - movs r0, #0xff - mov r5, sl - ands r0, r5 - eors r1, r0 - cmp r3, r1 - bne _081D9562 - add r0, sp, #4 - ldrh r0, [r0] - ldr r1, [sp, #0x1c] - strh r0, [r1] - mov r0, sp - adds r0, #6 - ldrh r0, [r0] - ldr r5, [sp, #0x20] - strh r0, [r5] - ldr r0, [sp, #0x24] - strb r4, [r0] - ldr r1, [sp, #0x28] - strb r2, [r1] - movs r0, #1 - b _081D9564 -_081D9562: - movs r0, #0 -_081D9564: - add sp, #0x2c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - thumb_func_end sub_081D947C - - thumb_func_start sub_081D9574 -sub_081D9574: @ 0x081D9574 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - mov ip, r1 - subs r3, r2, #1 - cmp r2, #0 - beq _081D95BA -_081D9580: - ldrb r1, [r7] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x1f - mov r2, ip - subs r2, #1 - subs r5, r3, #1 - cmp r2, #0 - blt _081D95B0 - movs r6, #0x80 - adds r3, r2, r7 -_081D9598: - ldrb r1, [r3] - adds r0, r6, #0 - ands r0, r1 - lsls r0, r0, #0x18 - lsls r1, r1, #1 - orrs r4, r1 - strb r4, [r3] - lsrs r4, r0, #0x1f - subs r3, #1 - subs r2, #1 - cmp r2, #0 - bge _081D9598 -_081D95B0: - adds r3, r5, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r3, r0 - bne _081D9580 -_081D95BA: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_081D9574 - - thumb_func_start sub_081D95C0 -sub_081D95C0: @ 0x081D95C0 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r5, r1, #0 - lsls r2, r2, #0x18 - lsrs r3, r2, #0x18 - lsls r0, r3, #4 - orrs r3, r0 - lsls r0, r3, #0x18 - lsrs r3, r0, #0x18 - movs r4, #0 - cmp r4, r5 - bhs _081D95E8 -_081D95D8: - adds r2, r6, r4 - ldrb r1, [r2] - adds r0, r3, #0 - eors r0, r1 - strb r0, [r2] - adds r4, #1 - cmp r4, r5 - blo _081D95D8 -_081D95E8: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081D95C0 - - thumb_func_start sub_081D95F0 -sub_081D95F0: @ 0x081D95F0 - push {lr} - lsrs r3, r1, #3 - movs r2, #7 - ands r2, r1 - movs r1, #0x80 - asrs r1, r2 - adds r0, r0, r3 - ldrb r0, [r0] - ands r0, r1 - cmp r0, #0 - beq _081D9608 - movs r0, #1 -_081D9608: - pop {r1} - bx r1 - thumb_func_end sub_081D95F0 - - thumb_func_start sub_081D960C -sub_081D960C: @ 0x081D960C - lsrs r3, r1, #3 - movs r2, #7 - ands r2, r1 - movs r1, #0x80 - asrs r1, r2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r0, r3 - ldrb r2, [r0] - orrs r1, r2 - strb r1, [r0] - bx lr - thumb_func_end sub_081D960C - - thumb_func_start sub_081D9624 -sub_081D9624: @ 0x081D9624 - lsrs r3, r1, #3 - movs r2, #7 - ands r2, r1 - movs r1, #0x80 - asrs r1, r2 - mvns r1, r1 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r0, r3 - ldrb r2, [r0] - ands r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 - thumb_func_end sub_081D9624 - - thumb_func_start sub_081D9640 -sub_081D9640: @ 0x081D9640 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - mov sb, r1 - adds r1, r2, #0 - mov r8, r3 - ldr r7, [sp, #0x1c] - movs r5, #0 - cmp r5, r7 - bhs _081D9684 - adds r4, r1, #0 -_081D965A: - mov r0, r8 - adds r1, r0, r5 - mov r0, sb - bl sub_081D95F0 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D9674 - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_081D960C - b _081D967C -_081D9674: - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_081D9624 -_081D967C: - adds r4, #1 - adds r5, #1 - cmp r5, r7 - blo _081D965A -_081D9684: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - thumb_func_end sub_081D9640 - - thumb_func_start sub_081D9690 -sub_081D9690: @ 0x081D9690 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _081D96B4 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #3 - adds r0, r0, r1 - movs r1, #0x1a - ldrsh r0, [r0, r1] - cmp r0, #4 - bhi _081D9750 - lsls r0, r0, #2 - ldr r1, _081D96B8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081D96B4: .4byte gUnknown_3005B60 -_081D96B8: .4byte _081D96BC -_081D96BC: @ jump table - .4byte _081D96D0 @ case 0 - .4byte _081D96F0 @ case 1 - .4byte _081D9710 @ case 2 - .4byte _081D9730 @ case 3 - .4byte _081D9750 @ case 4 -_081D96D0: - ldr r4, _081D96E4 - ldr r0, _081D96E8 - ldrb r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081D96EC - adds r0, r0, r1 - movs r1, #0x32 - b _081D9760 - .align 2, 0 -_081D96E4: .4byte gUnknown_2039BD1 -_081D96E8: .4byte gUnknown_2039BC4 -_081D96EC: .4byte gUnknown_2024190 -_081D96F0: - ldr r4, _081D9704 - ldr r0, _081D9708 - ldrb r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081D970C - adds r0, r0, r1 - movs r1, #0x33 - b _081D9760 - .align 2, 0 -_081D9704: .4byte gUnknown_2039BD1 -_081D9708: .4byte gUnknown_2039BC4 -_081D970C: .4byte gUnknown_2024190 -_081D9710: - ldr r4, _081D9724 - ldr r0, _081D9728 - ldrb r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081D972C - adds r0, r0, r1 - movs r1, #0x34 - b _081D9760 - .align 2, 0 -_081D9724: .4byte gUnknown_2039BD1 -_081D9728: .4byte gUnknown_2039BC4 -_081D972C: .4byte gUnknown_2024190 -_081D9730: - ldr r4, _081D9744 - ldr r0, _081D9748 - ldrb r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081D974C - adds r0, r0, r1 - movs r1, #0x35 - b _081D9760 - .align 2, 0 -_081D9744: .4byte gUnknown_2039BD1 -_081D9748: .4byte gUnknown_2039BC4 -_081D974C: .4byte gUnknown_2024190 -_081D9750: - ldr r4, _081D97A0 - ldr r0, _081D97A4 - ldrb r1, [r0] - movs r0, #0x64 - muls r0, r1, r0 - ldr r1, _081D97A8 - adds r0, r0, r1 - movs r1, #0x36 -_081D9760: - bl GetMonData - strb r0, [r4] - ldr r5, _081D97AC - ldr r4, _081D97B0 - ldrb r0, [r4] - lsls r0, r0, #6 - adds r0, r0, r5 - ldr r1, _081D97A0 - ldrb r1, [r1] - adds r0, #0x2c - strb r1, [r0] - ldr r0, _081D97B4 - bl FlagGet - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - rsbs r0, r0, #0 - lsrs r0, r0, #0x1f - ldrb r1, [r4] - lsls r1, r1, #6 - adds r1, r1, r5 - adds r1, #0x2d - strb r0, [r1] - ldr r1, _081D97B8 - ldr r2, _081D97BC - adds r0, r6, #0 - bl SetTaskFuncWithFollowupFunc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081D97A0: .4byte gUnknown_2039BD1 -_081D97A4: .4byte gUnknown_2039BC4 -_081D97A8: .4byte gUnknown_2024190 -_081D97AC: .4byte gUnknown_2039AA0 -_081D97B0: .4byte gUnknown_2039BC5 -_081D97B4: .4byte 0x00000864 -_081D97B8: .4byte sub_081D9A0C -_081D97BC: .4byte sub_081D97C0 - thumb_func_end sub_081D9690 - - thumb_func_start sub_081D97C0 -sub_081D97C0: @ 0x081D97C0 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081D97D4 - ldr r2, _081D97D8 - bl SetTaskFuncWithFollowupFunc - pop {r0} - bx r0 - .align 2, 0 -_081D97D4: .4byte sub_081D9AD4 -_081D97D8: .4byte sub_081D97DC - thumb_func_end sub_081D97C0 - - thumb_func_start sub_081D97DC -sub_081D97DC: @ 0x081D97DC - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081D97F0 - ldr r2, _081D97F4 - bl SetTaskFuncWithFollowupFunc - pop {r0} - bx r0 - .align 2, 0 -_081D97F0: .4byte sub_081D9B78 -_081D97F4: .4byte sub_081D97F8 - thumb_func_end sub_081D97DC - - thumb_func_start sub_081D97F8 -sub_081D97F8: @ 0x081D97F8 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _081D980C - ldr r2, _081D9810 - bl SetTaskFuncWithFollowupFunc - pop {r0} - bx r0 - .align 2, 0 -_081D980C: .4byte sub_081D9C48 -_081D9810: .4byte sub_081D9814 - thumb_func_end sub_081D97F8 - - thumb_func_start sub_081D9814 -sub_081D9814: @ 0x081D9814 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - movs r0, #0 - str r0, [sp] - str r0, [sp, #4] - movs r3, #0 - ldr r5, _081D9894 - mov r8, r5 - ldr r0, _081D9898 - mov ip, r0 - add r1, sp, #4 - mov sb, r1 - ldrb r4, [r5] - cmp r3, r4 - bhs _081D985E - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r4, r0, #3 - ldr r7, _081D989C -_081D9844: - mov r0, sp - adds r2, r0, r3 - adds r1, r3, #1 - lsls r0, r1, #1 - adds r0, r0, r4 - adds r0, r0, r7 - ldrh r0, [r0] - strb r0, [r2] - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - ldrb r1, [r5] - cmp r3, r1 - blo _081D9844 -_081D985E: - movs r3, #0 - mov r4, r8 - ldrb r0, [r4] - cmp r3, r0 - bhs _081D9882 - adds r4, r0, #0 - mov r2, sp -_081D986C: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, r4 - bhs _081D9882 - mov r7, sp - adds r1, r7, r3 - ldrb r0, [r2] - ldrb r1, [r1] - cmp r0, r1 - beq _081D986C -_081D9882: - mov r0, r8 - ldrb r0, [r0] - cmp r3, r0 - bne _081D98A0 - movs r0, #0 - mov r1, ip - strh r0, [r1] - b _081D98A6 - .align 2, 0 -_081D9894: .4byte gUnknown_2039BD0 -_081D9898: .4byte gUnknown_2037280 -_081D989C: .4byte gUnknown_3005B68 -_081D98A0: - movs r0, #1 - mov r4, ip - strh r0, [r4] -_081D98A6: - movs r3, #0 - mov r7, r8 - mov r0, r8 - ldrb r0, [r0] - cmp r3, r0 - bhs _081D98D6 - mov r4, sb - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r2, r0, #3 - ldr r5, _081D9934 -_081D98BC: - adds r1, r4, r3 - adds r0, r3, #5 - lsls r0, r0, #1 - adds r0, r0, r2 - adds r0, r0, r5 - ldrh r0, [r0] - strb r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldrb r1, [r7] - cmp r3, r1 - blo _081D98BC -_081D98D6: - mov r4, r8 - ldrb r0, [r4] - cmp r0, #4 - beq _081D9964 - bl GetMultiplayerId - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081D9964 - ldr r0, _081D9938 - adds r1, r0, #0 - adds r1, #0x2c - ldrb r2, [r1] - movs r3, #1 - ldrb r1, [r4] - adds r5, r0, #0 - cmp r3, r1 - bhs _081D9918 - adds r4, r5, #0 - mov r7, r8 - ldrb r1, [r7] -_081D9900: - lsls r0, r3, #6 - adds r0, r0, r4 - adds r0, #0x2c - ldrb r7, [r0] - cmp r2, r7 - bhs _081D990E - ldrb r2, [r0] -_081D990E: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, r1 - blo _081D9900 -_081D9918: - cmp r2, #0 - beq _081D9922 - subs r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 -_081D9922: - movs r4, #1 - movs r3, #0 - mov r0, r8 - ldrb r0, [r0] - cmp r3, r0 - bhs _081D9958 - adds r0, r5, #0 - b _081D994E - .align 2, 0 -_081D9934: .4byte gUnknown_3005B68 -_081D9938: .4byte gUnknown_2039AA0 -_081D993C: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - mov r1, r8 - ldrb r1, [r1] - cmp r3, r1 - bhs _081D9958 - lsls r0, r3, #6 - adds r0, r0, r5 -_081D994E: - adds r0, #0x2d - ldrb r0, [r0] - cmp r0, #0 - bne _081D993C - movs r4, #0 -_081D9958: - mov r0, sp - ldrb r0, [r0] - adds r1, r2, #0 - adds r2, r4, #0 - bl sub_080DA460 -_081D9964: - mov r0, sb - bl sub_080F8F64 - ldr r1, _081D9984 - strb r0, [r1] - ldr r0, _081D9988 - ldrb r0, [r0] - cmp r0, #3 - bhi _081D9994 - ldr r1, _081D998C - ldr r2, _081D9990 - adds r0, r6, #0 - bl SetTaskFuncWithFollowupFunc - b _081D99A2 - .align 2, 0 -_081D9984: .4byte gUnknown_2039BCB -_081D9988: .4byte gUnknown_2039BD0 -_081D998C: .4byte sub_081D9D18 -_081D9990: .4byte sub_081D99B8 -_081D9994: - ldr r0, _081D99B0 - lsls r1, r6, #2 - adds r1, r1, r6 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _081D99B4 - str r0, [r1] -_081D99A2: - add sp, #8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D99B0: .4byte gUnknown_3005B60 -_081D99B4: .4byte sub_081D99B8 - thumb_func_end sub_081D9814 - - thumb_func_start sub_081D99B8 -sub_081D99B8: @ 0x081D99B8 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r0, _081D99D8 - ldrb r0, [r0] - bl sub_080DA800 - ldr r1, _081D99DC - ldr r2, _081D99E0 - adds r0, r4, #0 - bl SetTaskFuncWithFollowupFunc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D99D8: .4byte gUnknown_2039BCC -_081D99DC: .4byte sub_080FD794 -_081D99E0: .4byte sub_081D99E4 - thumb_func_end sub_081D99B8 - - thumb_func_start sub_081D99E4 -sub_081D99E4: @ 0x081D99E4 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - movs r0, #0 - bl SortContestants - ldr r1, _081D9A04 - ldr r2, _081D9A08 - adds r0, r4, #0 - bl SetTaskFuncWithFollowupFunc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081D9A04: .4byte sub_080FD824 -_081D9A08: .4byte ReceiveOldManData - thumb_func_end sub_081D99E4 - - thumb_func_start sub_081D9A0C -sub_081D9A0C: @ 0x081D9A0C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r7, r5, #2 - adds r0, r7, r5 - lsls r4, r0, #3 - ldr r6, _081D9A48 - adds r0, r4, r6 - adds r0, #0x18 - bl sub_080FCEE0 - cmp r0, #0 - beq _081D9ABE - adds r0, r6, #0 - subs r0, #8 - adds r4, r4, r0 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _081D9A4C - cmp r0, #1 - beq _081D9A7C - movs r0, #0 - strh r0, [r4, #8] - strh r0, [r4, #0x20] - adds r0, r5, #0 - bl SwitchTaskToFollowupFunc - b _081D9ABE - .align 2, 0 -_081D9A48: .4byte gUnknown_3005B68 -_081D9A4C: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D9ABE - ldr r0, _081D9A74 - ldrb r0, [r0] - lsls r0, r0, #6 - ldr r1, _081D9A78 - adds r0, r0, r1 - movs r1, #0x40 - bl sub_080FCD64 - cmp r0, #1 - bne _081D9ABE - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _081D9ABE - .align 2, 0 -_081D9A74: .4byte gUnknown_2039BC5 -_081D9A78: .4byte gUnknown_2039AA0 -_081D9A7C: - bl sub_080FCDCC - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D9ABE - movs r4, #0 - ldr r0, _081D9A90 - adds r6, r7, #0 - b _081D9AAA - .align 2, 0 -_081D9A90: .4byte gUnknown_2039BD0 -_081D9A94: - lsls r0, r4, #6 - ldr r1, _081D9AC4 - adds r0, r0, r1 - lsls r1, r4, #8 - ldr r2, _081D9AC8 - adds r1, r1, r2 - movs r2, #0x40 - bl memcpy - adds r4, #1 - ldr r0, _081D9ACC -_081D9AAA: - ldrb r0, [r0] - cmp r4, r0 - blt _081D9A94 - ldr r0, _081D9AD0 - adds r1, r6, r5 - lsls r1, r1, #3 - adds r1, r1, r0 - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] -_081D9ABE: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D9AC4: .4byte gUnknown_2039AA0 -_081D9AC8: .4byte gUnknown_202207C -_081D9ACC: .4byte gUnknown_2039BD0 -_081D9AD0: .4byte gUnknown_3005B60 - thumb_func_end sub_081D9A0C - - thumb_func_start sub_081D9AD4 -sub_081D9AD4: @ 0x081D9AD4 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r5, r0, #3 - ldr r6, _081D9B10 - adds r0, r5, r6 - adds r0, #0x18 - bl sub_080FCEE0 - cmp r0, #0 - beq _081D9B64 - adds r0, r6, #0 - subs r0, #8 - adds r5, r5, r0 - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _081D9B14 - cmp r0, #1 - beq _081D9B3C - movs r0, #0 - strh r0, [r5, #8] - strh r0, [r5, #0x20] - adds r0, r4, #0 - bl SwitchTaskToFollowupFunc - b _081D9B64 - .align 2, 0 -_081D9B10: .4byte gUnknown_3005B68 -_081D9B14: - bl GetMultiplayerId - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081D9B5E - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D9B64 - ldr r0, _081D9B38 - movs r1, #4 - bl sub_080FCD64 - cmp r0, #1 - bne _081D9B64 - b _081D9B5E - .align 2, 0 -_081D9B38: .4byte gUnknown_3005AE0 -_081D9B3C: - movs r0, #0 - bl sub_080FCDA0 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D9B64 - ldr r0, _081D9B6C - ldr r4, _081D9B70 - adds r1, r4, #0 - movs r2, #4 - bl memcpy - ldr r0, _081D9B74 - adds r1, r4, #0 - movs r2, #4 - bl memcpy -_081D9B5E: - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] -_081D9B64: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081D9B6C: .4byte gUnknown_3005AE0 -_081D9B70: .4byte gUnknown_202207C -_081D9B74: .4byte gUnknown_3005E18 - thumb_func_end sub_081D9AD4 - - thumb_func_start sub_081D9B78 -sub_081D9B78: @ 0x081D9B78 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - mov sb, r0 - adds r0, r0, r6 - lsls r5, r0, #3 - ldr r1, _081D9BC4 - mov r8, r1 - adds r0, r5, r1 - adds r0, #0x18 - bl sub_080FCEE0 - cmp r0, #0 - beq _081D9C2E - movs r0, #8 - rsbs r0, r0, #0 - add r0, r8 - mov sl, r0 - adds r4, r5, r0 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _081D9BC8 - cmp r0, #1 - beq _081D9BEA - movs r0, #0 - strh r0, [r4, #8] - strh r0, [r4, #0x20] - adds r0, r6, #0 - bl SwitchTaskToFollowupFunc - b _081D9C2E - .align 2, 0 -_081D9BC4: .4byte gUnknown_3005B68 -_081D9BC8: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D9C2E - add r0, sp, #8 - movs r1, #0x6e - strh r1, [r0] - movs r1, #2 - bl sub_080FCD64 - cmp r0, #1 - bne _081D9C2E - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _081D9C2E -_081D9BEA: - bl sub_080FCDCC - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D9C2E - movs r1, #0 - ldr r7, _081D9C40 - ldrb r0, [r7] - cmp r1, r0 - bge _081D9C20 - mov r0, r8 - adds r0, #0xa - adds r3, r5, r0 - ldr r4, _081D9C44 - mov r2, sp - movs r5, #0x80 - lsls r5, r5, #1 -_081D9C0C: - ldrh r0, [r4] - strh r0, [r2] - strh r0, [r3] - adds r3, #2 - adds r4, r4, r5 - adds r2, #2 - adds r1, #1 - ldrb r0, [r7] - cmp r1, r0 - blt _081D9C0C -_081D9C20: - mov r0, sb - adds r1, r0, r6 - lsls r1, r1, #3 - add r1, sl - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] -_081D9C2E: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D9C40: .4byte gUnknown_2039BD0 -_081D9C44: .4byte gUnknown_202207C - thumb_func_end sub_081D9B78 - - thumb_func_start sub_081D9C48 -sub_081D9C48: @ 0x081D9C48 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r0, r6, #2 - mov sb, r0 - adds r0, r0, r6 - lsls r5, r0, #3 - ldr r1, _081D9C94 - mov r8, r1 - adds r0, r5, r1 - adds r0, #0x18 - bl sub_080FCEE0 - cmp r0, #0 - beq _081D9CFE - movs r0, #8 - rsbs r0, r0, #0 - add r0, r8 - mov sl, r0 - adds r4, r5, r0 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _081D9C98 - cmp r0, #1 - beq _081D9CBA - movs r0, #0 - strh r0, [r4, #8] - strh r0, [r4, #0x20] - adds r0, r6, #0 - bl SwitchTaskToFollowupFunc - b _081D9CFE - .align 2, 0 -_081D9C94: .4byte gUnknown_3005B68 -_081D9C98: - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D9CFE - ldrh r1, [r4, #0x1a] - add r0, sp, #8 - strh r1, [r0] - movs r1, #2 - bl sub_080FCD64 - cmp r0, #1 - bne _081D9CFE - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _081D9CFE -_081D9CBA: - bl sub_080FCDCC - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D9CFE - movs r1, #0 - ldr r7, _081D9D10 - ldrb r0, [r7] - cmp r1, r0 - bge _081D9CF0 - mov r0, r8 - adds r0, #2 - adds r3, r5, r0 - ldr r4, _081D9D14 - mov r2, sp - movs r5, #0x80 - lsls r5, r5, #1 -_081D9CDC: - ldrh r0, [r4] - strh r0, [r2] - strh r0, [r3] - adds r3, #2 - adds r4, r4, r5 - adds r2, #2 - adds r1, #1 - ldrb r0, [r7] - cmp r1, r0 - blt _081D9CDC -_081D9CF0: - mov r0, sb - adds r1, r0, r6 - lsls r1, r1, #3 - add r1, sl - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] -_081D9CFE: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_081D9D10: .4byte gUnknown_2039BD0 -_081D9D14: .4byte gUnknown_202207C - thumb_func_end sub_081D9C48 - - thumb_func_start sub_081D9D18 -sub_081D9D18: @ 0x081D9D18 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r4, r0, #3 - ldr r6, _081D9D54 - adds r0, r4, r6 - adds r0, #0x18 - bl sub_080FCEE0 - cmp r0, #0 - beq _081D9DB8 - adds r0, r6, #0 - subs r0, #8 - adds r4, r4, r0 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _081D9D58 - cmp r0, #1 - beq _081D9D90 - movs r0, #0 - strh r0, [r4, #8] - strh r0, [r4, #0x20] - adds r0, r5, #0 - bl SwitchTaskToFollowupFunc - b _081D9DB8 - .align 2, 0 -_081D9D54: .4byte gUnknown_3005B68 -_081D9D58: - bl GetMultiplayerId - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081D9DB2 - bl IsLinkTaskFinished - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D9DB8 - ldr r0, _081D9D88 - ldrb r2, [r0] - lsls r0, r2, #6 - ldr r1, _081D9D8C - adds r0, r0, r1 - movs r1, #4 - subs r1, r1, r2 - lsls r1, r1, #0x16 - lsrs r1, r1, #0x10 - bl sub_080FCD64 - cmp r0, #1 - bne _081D9DB8 - b _081D9DB2 - .align 2, 0 -_081D9D88: .4byte gUnknown_2039BD0 -_081D9D8C: .4byte gUnknown_2039AA0 -_081D9D90: - movs r0, #0 - bl sub_080FCDA0 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D9DB8 - ldr r0, _081D9DC0 - ldrb r3, [r0] - lsls r0, r3, #6 - ldr r1, _081D9DC4 - adds r0, r0, r1 - ldr r1, _081D9DC8 - movs r2, #4 - subs r2, r2, r3 - lsls r2, r2, #6 - bl memcpy -_081D9DB2: - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_081D9DB8: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_081D9DC0: .4byte gUnknown_2039BD0 -_081D9DC4: .4byte gUnknown_2039AA0 -_081D9DC8: .4byte gUnknown_202207C - thumb_func_end sub_081D9D18 - - thumb_func_start UpdateGymLeaderRematch -UpdateGymLeaderRematch: @ 0x081D9DCC - push {lr} - ldr r0, _081D9E08 - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D9E1A - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x64 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x1e - bhi _081D9E1A - movs r0, #0x5b - bl FlagGet - lsls r0, r0, #0x18 - cmp r0, #0 - beq _081D9E10 - ldr r0, _081D9E0C - movs r1, #8 - movs r2, #5 - bl UpdateGymLeaderRematchFromArray - b _081D9E1A - .align 2, 0 -_081D9E08: .4byte 0x00000864 -_081D9E0C: .4byte gUnknown_85FC01C -_081D9E10: - ldr r0, _081D9E20 - movs r1, #7 - movs r2, #1 - bl UpdateGymLeaderRematchFromArray -_081D9E1A: - pop {r0} - bx r0 - .align 2, 0 -_081D9E20: .4byte gUnknown_85FC02C - thumb_func_end UpdateGymLeaderRematch - - thumb_func_start UpdateGymLeaderRematchFromArray -UpdateGymLeaderRematchFromArray: @ 0x081D9E24 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - mov sb, r0 - adds r7, r1, #0 - mov sl, r2 - movs r6, #0 - movs r0, #5 - mov r8, r0 - movs r5, #0 - cmp r5, r7 - bhs _081D9E6C - mov r4, sb -_081D9E44: - ldr r0, _081D9EF8 - ldr r0, [r0] - ldrh r1, [r4] - ldr r2, _081D9EFC - adds r0, r0, r2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _081D9E64 - adds r0, r1, #0 - bl GetRematchIndex - cmp r8, r0 - ble _081D9E62 - mov r8, r0 -_081D9E62: - adds r6, #1 -_081D9E64: - adds r4, #2 - adds r5, #1 - cmp r5, r7 - blo _081D9E44 -_081D9E6C: - cmp r6, #0 - beq _081D9F0A - cmp r8, sl - bhi _081D9F0A - movs r6, #0 - movs r5, #0 - cmp r5, r7 - bhs _081D9EA4 - mov r4, sb -_081D9E7E: - ldr r0, _081D9EF8 - ldr r0, [r0] - ldrh r1, [r4] - ldr r2, _081D9EFC - adds r0, r0, r2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _081D9E9C - adds r0, r1, #0 - bl GetRematchIndex - cmp r0, r8 - bne _081D9E9C - adds r6, #1 -_081D9E9C: - adds r4, #2 - adds r5, #1 - cmp r5, r7 - blo _081D9E7E -_081D9EA4: - cmp r6, #0 - beq _081D9F0A - bl Random - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r6, #0 - bl __modsi3 - adds r6, r0, #0 - movs r5, #0 - cmp r5, r7 - bhs _081D9F0A - ldr r2, _081D9EF8 - ldr r3, _081D9EFC - mov r4, sb -_081D9EC4: - ldr r0, [r2] - ldrh r1, [r4] - adds r0, r0, r3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _081D9F02 - adds r0, r1, #0 - str r2, [sp] - str r3, [sp, #4] - bl GetRematchIndex - ldr r2, [sp] - ldr r3, [sp, #4] - cmp r0, r8 - bne _081D9F02 - cmp r6, #0 - bne _081D9F00 - ldr r0, [r2] - adds r0, r0, r3 - ldrh r4, [r4] - adds r0, r0, r4 - mov r1, r8 - strb r1, [r0] - b _081D9F0A - .align 2, 0 -_081D9EF8: .4byte gUnknown_3005AEC -_081D9EFC: .4byte 0x000009CA -_081D9F00: - subs r6, #1 -_081D9F02: - adds r4, #2 - adds r5, #1 - cmp r5, r7 - blo _081D9EC4 -_081D9F0A: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end UpdateGymLeaderRematchFromArray - - thumb_func_start GetRematchIndex -GetRematchIndex: @ 0x081D9F1C - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r4, #0 - ldr r6, _081D9F3C -_081D9F24: - lsls r0, r4, #1 - lsls r1, r5, #4 - adds r0, r0, r1 - adds r0, r0, r6 - ldrh r0, [r0] - bl HasTrainerBeenFought - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081D9F40 - adds r0, r4, #0 - b _081D9F48 - .align 2, 0 -_081D9F3C: .4byte gUnknown_852AD40 -_081D9F40: - adds r4, #1 - cmp r4, #4 - ble _081D9F24 - movs r0, #5 -_081D9F48: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end GetRematchIndex - - thumb_func_start StopCry -StopCry: @ 0x081D9F50 - push {lr} - sub sp, #8 - add r1, sp, #4 - mov r0, sp - bl sub_0814A018 - ldr r0, _081D9F88 - ldr r1, [sp, #4] - bl LZ77UnCompVram - ldr r0, _081D9F8C - ldr r1, [sp] - bl LZ77UnCompVram - ldr r0, _081D9F90 - movs r1, #0xf0 - movs r2, #0x20 - bl LoadPalette - ldr r0, _081D9F94 - bl LoadCompressedSpriteSheet - ldr r0, _081D9F98 - bl LoadSpritePalette - add sp, #8 - pop {r0} - bx r0 - .align 2, 0 -_081D9F88: .4byte gUnknown_85FC03C -_081D9F8C: .4byte gUnknown_85FC218 -_081D9F90: .4byte gUnknown_85FC824 -_081D9F94: .4byte gUnknown_85FCA0C -_081D9F98: .4byte gUnknown_85FCA14 - thumb_func_end StopCry - - thumb_func_start sub_081D9F9C -sub_081D9F9C: @ 0x081D9F9C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r5, r0, #0 - adds r6, r1, #0 - ldr r0, [sp, #0x24] - ldr r1, [sp, #0x28] - ldr r4, [sp, #0x2c] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov sl, r3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sb, r1 - lsls r4, r4, #0x18 - lsrs r7, r4, #0x18 - ldr r0, _081D9FF4 - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - lsls r6, r6, #0x10 - asrs r6, r6, #0x10 - adds r1, r5, #0 - adds r2, r6, #0 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r7, #1 - beq _081DA020 - cmp r7, #1 - bgt _081D9FF8 - cmp r7, #0 - beq _081DA008 - b _081D9FFC - .align 2, 0 -_081D9FF4: .4byte gUnknown_85FCA40 -_081D9FF8: - cmp r7, #2 - beq _081DA034 -_081D9FFC: - ldr r6, _081DA004 - lsls r3, r5, #4 - b _081DA048 - .align 2, 0 -_081DA004: .4byte gUnknown_20205AC -_081DA008: - ldr r2, _081DA01C - lsls r3, r5, #4 - adds r0, r3, r5 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0x78 - strh r1, [r0, #0x2e] - movs r1, #0x2d - b _081DA044 - .align 2, 0 -_081DA01C: .4byte gUnknown_20205AC -_081DA020: - ldr r2, _081DA030 - lsls r3, r5, #4 - adds r0, r3, r5 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0x59 - b _081DA040 - .align 2, 0 -_081DA030: .4byte gUnknown_20205AC -_081DA034: - ldr r2, _081DA090 - lsls r3, r5, #4 - adds r0, r3, r5 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0x97 -_081DA040: - strh r1, [r0, #0x2e] - movs r1, #0x61 -_081DA044: - strh r1, [r0, #0x30] - adds r6, r2, #0 -_081DA048: - adds r4, r3, r5 - lsls r4, r4, #2 - adds r0, r4, r6 - mov r2, r8 - lsls r1, r2, #0x18 - asrs r1, r1, #0x18 - movs r2, #0 - strh r1, [r0, #0x32] - mov r3, sb - lsls r1, r3, #0x18 - asrs r1, r1, #0x18 - strh r1, [r0, #0x34] - mov r1, sp - ldrh r1, [r1] - strh r1, [r0, #0x3a] - mov r3, sl - strh r3, [r0, #0x3c] - strh r2, [r0, #0x36] - strh r2, [r0, #0x38] - adds r1, r7, #0 - bl StartSpriteAnim - adds r0, r6, #0 - adds r0, #0x1c - adds r4, r4, r0 - ldr r0, _081DA094 - str r0, [r4] - adds r0, r5, #0 - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081DA090: .4byte gUnknown_20205AC -_081DA094: .4byte sub_081DA098 - thumb_func_end sub_081D9F9C - - thumb_func_start sub_081DA098 -sub_081DA098: @ 0x081DA098 - push {r4, r5, lr} - adds r3, r0, #0 - adds r2, r3, #0 - adds r2, #0x2e - movs r0, #0x20 - ldrsh r1, [r3, r0] - movs r4, #0x2e - ldrsh r0, [r3, r4] - cmp r1, r0 - bne _081DA0C4 - movs r5, #0x22 - ldrsh r1, [r3, r5] - movs r4, #2 - ldrsh r0, [r2, r4] - cmp r1, r0 - bne _081DA0C4 - ldr r0, _081DA0C0 - str r0, [r3, #0x1c] - b _081DA104 - .align 2, 0 -_081DA0C0: .4byte sub_08007140 -_081DA0C4: - ldrh r4, [r2, #8] - movs r5, #8 - ldrsh r1, [r2, r5] - movs r5, #0xc - ldrsh r0, [r2, r5] - cmp r1, r0 - bne _081DA0E0 - ldrh r0, [r2, #4] - ldrh r1, [r3, #0x20] - adds r0, r0, r1 - movs r1, #0 - strh r0, [r3, #0x20] - strh r1, [r2, #8] - b _081DA0E4 -_081DA0E0: - adds r0, r4, #1 - strh r0, [r2, #8] -_081DA0E4: - ldrh r4, [r2, #0xa] - movs r5, #0xa - ldrsh r1, [r2, r5] - movs r5, #0xe - ldrsh r0, [r2, r5] - cmp r1, r0 - bne _081DA100 - ldrh r0, [r2, #6] - ldrh r1, [r3, #0x22] - adds r0, r0, r1 - movs r1, #0 - strh r0, [r3, #0x22] - strh r1, [r2, #0xa] - b _081DA104 -_081DA100: - adds r0, r4, #1 - strh r0, [r2, #0xa] -_081DA104: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_end sub_081DA098 - - thumb_func_start sub_081DA10C -sub_081DA10C: @ 0x081DA10C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - adds r6, r0, #0 - mov r8, r1 - ldr r0, [sp, #0x2c] - ldr r1, [sp, #0x30] - ldr r4, [sp, #0x34] - ldr r5, [sp, #0x38] - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - str r2, [sp] - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - str r3, [sp, #4] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sl, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sb, r1 - lsls r4, r4, #0x10 - lsrs r7, r4, #0x10 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - ldr r0, _081DA170 - lsls r6, r6, #0x10 - asrs r6, r6, #0x10 - mov r1, r8 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - mov r8, r1 - adds r1, r6, #0 - mov r2, r8 - movs r3, #0 - bl CreateSprite - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r5, #1 - beq _081DA19C - cmp r5, #1 - bgt _081DA174 - cmp r5, #0 - beq _081DA184 - b _081DA178 - .align 2, 0 -_081DA170: .4byte gUnknown_85FCA40 -_081DA174: - cmp r5, #2 - beq _081DA1B0 -_081DA178: - ldr r2, _081DA180 - lsls r3, r6, #4 - b _081DA1C2 - .align 2, 0 -_081DA180: .4byte gUnknown_20205AC -_081DA184: - ldr r2, _081DA198 - lsls r3, r6, #4 - adds r0, r3, r6 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0x78 - strh r1, [r0, #0x2e] - movs r1, #0x2d - b _081DA1C0 - .align 2, 0 -_081DA198: .4byte gUnknown_20205AC -_081DA19C: - ldr r2, _081DA1AC - lsls r3, r6, #4 - adds r0, r3, r6 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0x59 - b _081DA1BC - .align 2, 0 -_081DA1AC: .4byte gUnknown_20205AC -_081DA1B0: - ldr r2, _081DA204 - lsls r3, r6, #4 - adds r0, r3, r6 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r1, #0x97 -_081DA1BC: - strh r1, [r0, #0x2e] - movs r1, #0x61 -_081DA1C0: - strh r1, [r0, #0x30] -_081DA1C2: - adds r4, r3, r6 - lsls r4, r4, #2 - adds r0, r4, r2 - mov r3, sp - ldrh r3, [r3] - strh r3, [r0, #0x32] - mov r1, sp - ldrh r1, [r1, #4] - strh r1, [r0, #0x34] - mov r3, sl - strh r3, [r0, #0x36] - mov r1, sb - strh r1, [r0, #0x38] - strh r7, [r0, #0x3a] - adds r1, r5, #0 - str r2, [sp, #8] - bl StartSpriteAnim - ldr r2, [sp, #8] - adds r0, r2, #0 - adds r0, #0x1c - adds r4, r4, r0 - ldr r0, _081DA208 - str r0, [r4] - adds r0, r6, #0 - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_081DA204: .4byte gUnknown_20205AC -_081DA208: .4byte sub_081DA20C - thumb_func_end sub_081DA10C - - thumb_func_start sub_081DA20C -sub_081DA20C: @ 0x081DA20C - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x32] - bl Sin2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x36 - ldrsh r1, [r4, r2] - muls r0, r1, r0 - asrs r0, r0, #0xc - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x32] - bl Cos2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r3, #0x36 - ldrsh r1, [r4, r3] - muls r0, r1, r0 - asrs r0, r0, #0xc - strh r0, [r4, #0x26] - movs r1, #0x32 - ldrsh r0, [r4, r1] - movs r2, #0x34 - ldrsh r1, [r4, r2] - adds r0, r0, r1 - movs r1, #0xb4 - lsls r1, r1, #1 - bl __modsi3 - strh r0, [r4, #0x32] - ldrh r2, [r4, #0x36] - movs r3, #0x36 - ldrsh r1, [r4, r3] - movs r3, #0x38 - ldrsh r0, [r4, r3] - cmp r1, r0 - beq _081DA262 - ldrh r0, [r4, #0x3a] - adds r0, r2, r0 - strh r0, [r4, #0x36] - b _081DA266 -_081DA262: - ldr r0, _081DA26C - str r0, [r4, #0x1c] -_081DA266: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081DA26C: .4byte sub_08007140 - thumb_func_end sub_081DA20C - - thumb_func_start sub_081DA270 -sub_081DA270: @ 0x081DA270 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _081DA2BC - adds r0, r4, #0 - bl FreeSpriteTilesByTag - adds r0, r4, #0 - bl FreeSpritePaletteByTag - movs r0, #0x10 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _081DA2C0 - adds r0, r0, r4 - bl DestroySprite - movs r0, #0x12 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - movs r0, #0x14 - ldrsh r1, [r5, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - bl DestroySprite - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081DA2BC: .4byte 0x00002E90 -_081DA2C0: .4byte gUnknown_20205AC - thumb_func_end sub_081DA270 - - thumb_func_start sub_081DA2C4 -sub_081DA2C4: @ 0x081DA2C4 - push {r4, r5, lr} - adds r3, r0, #0 - ldr r2, _081DA30C - movs r0, #0x10 - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r5, r2, #0 - adds r5, #0x1c - adds r0, r0, r5 - ldr r4, [r0] - ldr r0, _081DA310 - cmp r4, r0 - bne _081DA314 - movs r0, #0x12 - ldrsh r1, [r3, r0] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r2, [r0] - cmp r2, r4 - bne _081DA314 - movs r1, #0x14 - ldrsh r0, [r3, r1] - lsls r1, r0, #4 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r5 - ldr r0, [r1] - cmp r0, r2 - bne _081DA314 - movs r0, #1 - b _081DA316 - .align 2, 0 -_081DA30C: .4byte gUnknown_20205AC -_081DA310: .4byte sub_08007140 -_081DA314: - movs r0, #0 -_081DA316: - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_081DA2C4 - - thumb_func_start sub_081DA31C -sub_081DA31C: @ 0x081DA31C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _081DA370 - bl StopCry - ldr r1, _081DA36C - movs r0, #0x50 - bl SetGpuReg - movs r1, #0x80 - lsls r1, r1, #5 - movs r0, #0x52 - bl SetGpuReg - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgX - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl ChangeBgY - movs r1, #0xa0 - lsls r1, r1, #3 - movs r0, #0 - movs r2, #2 - bl ChangeBgY - movs r0, #0 - strh r0, [r4, #0xa] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - movs r0, #1 - b _081DA396 - .align 2, 0 -_081DA36C: .4byte 0x00003F41 -_081DA370: - movs r1, #0x80 - lsls r1, r1, #6 - movs r0, #0 - bl ClearGpuRegBits - movs r1, #0x80 - lsls r1, r1, #7 - movs r0, #0 - bl ClearGpuRegBits - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #0 - bl ClearGpuRegBits - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - movs r0, #0 -_081DA396: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_081DA31C - - thumb_func_start sub_081DA39C -sub_081DA39C: @ 0x081DA39C - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - movs r1, #0xc - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _081DA3B4 - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #0 - bl SetGpuRegBits -_081DA3B4: - ldrh r1, [r4, #0xc] - movs r2, #0xc - ldrsh r0, [r4, r2] - cmp r0, #0x10 - bne _081DA3E8 - ldrh r1, [r4, #0xe] - movs r2, #0xe - ldrsh r0, [r4, r2] - cmp r0, #0x1f - bne _081DA3E2 - movs r1, #1 - rsbs r1, r1, #0 - movs r0, #0 - str r0, [sp] - adds r0, r1, #0 - movs r2, #0 - movs r3, #0x10 - bl BeginNormalPaletteFade - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] - b _081DA400 -_081DA3E2: - adds r0, r1, #1 - strh r0, [r4, #0xe] - b _081DA400 -_081DA3E8: - adds r0, r1, #1 - strh r0, [r4, #0xc] - ldrh r1, [r4, #0xc] - movs r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #8 - orrs r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r0, #0x52 - bl SetGpuReg -_081DA400: - movs r0, #0 - add sp, #4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081DA39C - - thumb_func_start sub_081DA40C -sub_081DA40C: @ 0x081DA40C - push {r4, lr} - adds r4, r0, #0 - bl sub_081DA2C4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _081DA422 - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_081DA422: - movs r0, #0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081DA40C - - thumb_func_start sub_081DA42C -sub_081DA42C: @ 0x081DA42C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _081DA45C - ldr r2, _081DA460 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_081DA43E: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081DA43E - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081DA45C: .4byte gUnknown_85FCA58 -_081DA460: .4byte gUnknown_3005B60 - thumb_func_end sub_081DA42C - - thumb_func_start sub_081DA464 -sub_081DA464: @ 0x081DA464 - push {r4, r5, r6, lr} - sub sp, #0xc - adds r6, r0, #0 - movs r1, #0x33 - rsbs r1, r1, #0 - movs r0, #0 - str r0, [sp] - movs r5, #2 - str r5, [sp, #4] - str r0, [sp, #8] - movs r0, #0x78 - movs r2, #0 - movs r3, #0 - bl sub_081D9F9C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r6, #0x10] - movs r0, #7 - rsbs r0, r0, #0 - str r5, [sp] - movs r4, #2 - rsbs r4, r4, #0 - str r4, [sp, #4] - movs r1, #1 - str r1, [sp, #8] - movs r1, #0xc1 - movs r2, #0 - movs r3, #0 - bl sub_081D9F9C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r6, #0x12] - str r4, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #0xf7 - movs r1, #0xc1 - movs r2, #0 - movs r3, #0 - bl sub_081D9F9C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r6, #0x14] - ldrh r0, [r6, #8] - adds r0, #1 - strh r0, [r6, #8] - movs r0, #0 - add sp, #0xc - pop {r4, r5, r6} - pop {r1} - bx r1 - thumb_func_end sub_081DA464 - - thumb_func_start sub_081DA4D0 -sub_081DA4D0: @ 0x081DA4D0 - push {lr} - adds r2, r0, #0 - ldr r0, _081DA4FC - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081DA4F4 - adds r0, r2, #0 - bl sub_081DA270 - ldr r0, _081DA500 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_081DA4F4: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_081DA4FC: .4byte gUnknown_2037C74 -_081DA500: .4byte sub_081DA42C - thumb_func_end sub_081DA4D0 - - thumb_func_start sub_081DA504 -sub_081DA504: @ 0x081DA504 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _081DA534 - ldr r2, _081DA538 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_081DA516: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081DA516 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081DA534: .4byte gUnknown_85FCA6C -_081DA538: .4byte gUnknown_3005B60 - thumb_func_end sub_081DA504 - - thumb_func_start sub_081DA53C -sub_081DA53C: @ 0x081DA53C - push {r4, r5, lr} - sub sp, #0xc - adds r5, r0, #0 - movs r0, #0 - str r0, [sp] - movs r4, #4 - rsbs r4, r4, #0 - str r4, [sp, #4] - str r0, [sp, #8] - movs r0, #0x78 - movs r1, #0xc5 - movs r2, #0 - movs r3, #0 - bl sub_081D9F9C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x10] - str r4, [sp] - movs r4, #2 - str r4, [sp, #4] - movs r0, #1 - str r0, [sp, #8] - movs r0, #0xf1 - movs r1, #0x3b - movs r2, #0 - movs r3, #1 - bl sub_081D9F9C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x12] - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #4 - str r1, [sp] - str r4, [sp, #4] - str r4, [sp, #8] - movs r1, #0x3b - movs r2, #0 - movs r3, #1 - bl sub_081D9F9C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r5, #0x14] - ldrh r0, [r5, #8] - adds r0, #1 - strh r0, [r5, #8] - movs r0, #0 - add sp, #0xc - pop {r4, r5} - pop {r1} - bx r1 - thumb_func_end sub_081DA53C - - thumb_func_start sub_081DA5A8 -sub_081DA5A8: @ 0x081DA5A8 - push {lr} - adds r2, r0, #0 - ldr r0, _081DA5D4 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081DA5CC - adds r0, r2, #0 - bl sub_081DA270 - ldr r0, _081DA5D8 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_081DA5CC: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_081DA5D4: .4byte gUnknown_2037C74 -_081DA5D8: .4byte sub_081DA504 - thumb_func_end sub_081DA5A8 - - thumb_func_start sub_081DA5DC -sub_081DA5DC: @ 0x081DA5DC - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _081DA60C - ldr r2, _081DA610 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_081DA5EE: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081DA5EE - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081DA60C: .4byte gUnknown_85FCA80 -_081DA610: .4byte gUnknown_3005B60 - thumb_func_end sub_081DA5DC - - thumb_func_start sub_081DA614 -sub_081DA614: @ 0x081DA614 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0x10 - mov r8, r0 - movs r6, #0x80 - str r6, [sp] - movs r4, #0 - str r4, [sp, #4] - movs r5, #4 - rsbs r5, r5, #0 - str r5, [sp, #8] - str r4, [sp, #0xc] - movs r0, #0x78 - movs r1, #0x2d - movs r2, #0xc - movs r3, #4 - bl sub_081DA10C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, r8 - strh r0, [r1, #0x10] - str r6, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #1 - str r0, [sp, #0xc] - movs r0, #0x59 - movs r1, #0x61 - movs r2, #0xfc - movs r3, #4 - bl sub_081DA10C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, r8 - strh r0, [r1, #0x12] - str r6, [sp] - str r4, [sp, #4] - str r5, [sp, #8] - movs r0, #2 - str r0, [sp, #0xc] - movs r0, #0x97 - movs r1, #0x61 - movs r2, #0x84 - movs r3, #4 - bl sub_081DA10C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, r8 - strh r0, [r1, #0x14] - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - movs r0, #0 - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081DA614 - - thumb_func_start sub_081DA694 -sub_081DA694: @ 0x081DA694 - push {lr} - adds r2, r0, #0 - ldr r0, _081DA6C0 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081DA6B8 - adds r0, r2, #0 - bl sub_081DA270 - ldr r0, _081DA6C4 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_081DA6B8: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_081DA6C0: .4byte gUnknown_2037C74 -_081DA6C4: .4byte sub_081DA5DC - thumb_func_end sub_081DA694 - - thumb_func_start sub_081DA6C8 -sub_081DA6C8: @ 0x081DA6C8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _081DA6F8 - ldr r2, _081DA6FC - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_081DA6DA: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081DA6DA - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081DA6F8: .4byte gUnknown_85FCA94 -_081DA6FC: .4byte gUnknown_3005B60 - thumb_func_end sub_081DA6C8 - - thumb_func_start sub_081DA700 -sub_081DA700: @ 0x081DA700 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0x10 - mov r8, r0 - movs r2, #0x8e - lsls r2, r2, #1 - movs r6, #0x83 - str r6, [sp] - movs r5, #0x23 - str r5, [sp, #4] - movs r4, #3 - rsbs r4, r4, #0 - str r4, [sp, #8] - movs r0, #0 - str r0, [sp, #0xc] - movs r0, #0x78 - movs r1, #0x50 - movs r3, #8 - bl sub_081DA10C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, r8 - strh r0, [r1, #0x10] - str r6, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #1 - str r0, [sp, #0xc] - movs r0, #0x78 - movs r1, #0x50 - movs r2, #0x2c - movs r3, #8 - bl sub_081DA10C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, r8 - strh r0, [r1, #0x12] - str r6, [sp] - str r5, [sp, #4] - str r4, [sp, #8] - movs r0, #2 - str r0, [sp, #0xc] - movs r0, #0x79 - movs r1, #0x50 - movs r2, #0xa4 - movs r3, #8 - bl sub_081DA10C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, r8 - strh r0, [r1, #0x14] - ldrh r0, [r1, #8] - adds r0, #1 - strh r0, [r1, #8] - movs r0, #0 - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081DA700 - - thumb_func_start sub_081DA784 -sub_081DA784: @ 0x081DA784 - push {lr} - adds r2, r0, #0 - ldr r0, _081DA7B0 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081DA7A8 - adds r0, r2, #0 - bl sub_081DA270 - ldr r0, _081DA7B4 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_081DA7A8: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_081DA7B0: .4byte gUnknown_2037C74 -_081DA7B4: .4byte sub_081DA6C8 - thumb_func_end sub_081DA784 - - thumb_func_start sub_081DA7B8 -sub_081DA7B8: @ 0x081DA7B8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _081DA7E8 - ldr r2, _081DA7EC - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_081DA7CA: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081DA7CA - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081DA7E8: .4byte gUnknown_85FCAA8 -_081DA7EC: .4byte gUnknown_3005B60 - thumb_func_end sub_081DA7B8 - - thumb_func_start sub_081DA7F0 -sub_081DA7F0: @ 0x081DA7F0 - push {r4, lr} - sub sp, #0xc - adds r4, r0, #0 - movs r0, #0xa - ldrsh r2, [r4, r0] - cmp r2, #0 - bne _081DA81C - movs r1, #0x33 - rsbs r1, r1, #0 - str r2, [sp] - movs r0, #4 - str r0, [sp, #4] - str r2, [sp, #8] - movs r0, #0x78 - movs r2, #0 - movs r3, #0 - bl sub_081D9F9C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x10] - b _081DA86A -_081DA81C: - cmp r2, #0x10 - bne _081DA842 - movs r0, #7 - rsbs r0, r0, #0 - movs r1, #4 - str r1, [sp] - subs r1, #8 - str r1, [sp, #4] - movs r1, #1 - str r1, [sp, #8] - movs r1, #0xc1 - movs r2, #0 - movs r3, #0 - bl sub_081D9F9C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x12] - b _081DA86A -_081DA842: - cmp r2, #0x20 - bne _081DA86A - movs r0, #4 - rsbs r0, r0, #0 - str r0, [sp] - str r0, [sp, #4] - movs r0, #2 - str r0, [sp, #8] - movs r0, #0xf7 - movs r1, #0xc1 - movs r2, #0 - movs r3, #0 - bl sub_081D9F9C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x14] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_081DA86A: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - movs r0, #0 - add sp, #0xc - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081DA7F0 - - thumb_func_start sub_081DA87C -sub_081DA87C: @ 0x081DA87C - push {lr} - adds r2, r0, #0 - ldr r0, _081DA8A8 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081DA8A0 - adds r0, r2, #0 - bl sub_081DA270 - ldr r0, _081DA8AC - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_081DA8A0: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_081DA8A8: .4byte gUnknown_2037C74 -_081DA8AC: .4byte sub_081DA7B8 - thumb_func_end sub_081DA87C - - thumb_func_start sub_081DA8B0 -sub_081DA8B0: @ 0x081DA8B0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _081DA8E0 - ldr r2, _081DA8E4 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_081DA8C2: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081DA8C2 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081DA8E0: .4byte gUnknown_85FCABC -_081DA8E4: .4byte gUnknown_3005B60 - thumb_func_end sub_081DA8B0 - - thumb_func_start sub_081DA8E8 -sub_081DA8E8: @ 0x081DA8E8 - push {r4, lr} - sub sp, #0xc - adds r4, r0, #0 - movs r0, #0xa - ldrsh r1, [r4, r0] - cmp r1, #0 - bne _081DA914 - str r1, [sp] - movs r0, #8 - rsbs r0, r0, #0 - str r0, [sp, #4] - str r1, [sp, #8] - movs r0, #0x78 - movs r1, #0xc5 - movs r2, #0 - movs r3, #0 - bl sub_081D9F9C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x10] - b _081DA962 -_081DA914: - cmp r1, #0x10 - bne _081DA938 - movs r0, #8 - rsbs r0, r0, #0 - str r0, [sp] - movs r0, #1 - str r0, [sp, #4] - str r0, [sp, #8] - movs r0, #0xf1 - movs r1, #0x4e - movs r2, #0 - movs r3, #0 - bl sub_081D9F9C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x12] - b _081DA962 -_081DA938: - cmp r1, #0x20 - bne _081DA962 - movs r0, #1 - rsbs r0, r0, #0 - movs r1, #8 - str r1, [sp] - movs r1, #1 - str r1, [sp, #4] - movs r1, #2 - str r1, [sp, #8] - movs r1, #0x4e - movs r2, #0 - movs r3, #0 - bl sub_081D9F9C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x14] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_081DA962: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - movs r0, #0 - add sp, #0xc - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081DA8E8 - - thumb_func_start sub_081DA974 -sub_081DA974: @ 0x081DA974 - push {lr} - adds r2, r0, #0 - ldr r0, _081DA9A0 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081DA998 - adds r0, r2, #0 - bl sub_081DA270 - ldr r0, _081DA9A4 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_081DA998: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_081DA9A0: .4byte gUnknown_2037C74 -_081DA9A4: .4byte sub_081DA8B0 - thumb_func_end sub_081DA974 - - thumb_func_start sub_081DA9A8 -sub_081DA9A8: @ 0x081DA9A8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _081DA9D8 - ldr r2, _081DA9DC - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_081DA9BA: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081DA9BA - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081DA9D8: .4byte gUnknown_85FCAD0 -_081DA9DC: .4byte gUnknown_3005B60 - thumb_func_end sub_081DA9A8 - - thumb_func_start sub_081DA9E0 -sub_081DA9E0: @ 0x081DA9E0 - push {r4, lr} - sub sp, #0x10 - adds r4, r0, #0 - movs r0, #0xa - ldrsh r1, [r4, r0] - cmp r1, #0 - bne _081DAA0E - movs r0, #0x80 - str r0, [sp] - str r1, [sp, #4] - subs r0, #0x84 - str r0, [sp, #8] - str r1, [sp, #0xc] - movs r0, #0x78 - movs r1, #0x2d - movs r2, #0xc - movs r3, #4 - bl sub_081DA10C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x10] - b _081DAA62 -_081DAA0E: - cmp r1, #0x10 - bne _081DAA36 - movs r0, #0x80 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - subs r0, #4 - str r0, [sp, #8] - movs r0, #1 - str r0, [sp, #0xc] - movs r0, #0x59 - movs r1, #0x61 - movs r2, #0xfc - movs r3, #4 - bl sub_081DA10C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x12] - b _081DAA62 -_081DAA36: - cmp r1, #0x20 - bne _081DAA62 - movs r0, #0x80 - str r0, [sp] - movs r0, #0 - str r0, [sp, #4] - subs r0, #4 - str r0, [sp, #8] - movs r0, #2 - str r0, [sp, #0xc] - movs r0, #0x97 - movs r1, #0x61 - movs r2, #0x84 - movs r3, #4 - bl sub_081DA10C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x14] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_081DAA62: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - movs r0, #0 - add sp, #0x10 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081DA9E0 - - thumb_func_start sub_081DAA74 -sub_081DAA74: @ 0x081DAA74 - push {lr} - adds r2, r0, #0 - ldr r0, _081DAAA0 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081DAA98 - adds r0, r2, #0 - bl sub_081DA270 - ldr r0, _081DAAA4 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_081DAA98: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_081DAAA0: .4byte gUnknown_2037C74 -_081DAAA4: .4byte sub_081DA9A8 - thumb_func_end sub_081DAA74 - - thumb_func_start sub_081DAAA8 -sub_081DAAA8: @ 0x081DAAA8 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r5, _081DAAD8 - ldr r2, _081DAADC - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r4, r1, r2 -_081DAABA: - movs r1, #8 - ldrsh r0, [r4, r1] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _081DAABA - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_081DAAD8: .4byte gUnknown_85FCAE4 -_081DAADC: .4byte gUnknown_3005B60 - thumb_func_end sub_081DAAA8 - - thumb_func_start sub_081DAAE0 -sub_081DAAE0: @ 0x081DAAE0 - push {r4, lr} - sub sp, #0x10 - adds r4, r0, #0 - movs r0, #0xa - ldrsh r1, [r4, r0] - cmp r1, #0 - bne _081DAB12 - movs r2, #0x8e - lsls r2, r2, #1 - movs r0, #0x83 - str r0, [sp] - movs r0, #0x23 - str r0, [sp, #4] - subs r0, #0x26 - str r0, [sp, #8] - str r1, [sp, #0xc] - movs r0, #0x78 - movs r1, #0x50 - movs r3, #8 - bl sub_081DA10C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x10] - b _081DAB66 -_081DAB12: - cmp r1, #0x10 - bne _081DAB3A - movs r0, #0x83 - str r0, [sp] - movs r0, #0x23 - str r0, [sp, #4] - subs r0, #0x26 - str r0, [sp, #8] - movs r0, #1 - str r0, [sp, #0xc] - movs r0, #0x78 - movs r1, #0x50 - movs r2, #0x2c - movs r3, #8 - bl sub_081DA10C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x12] - b _081DAB66 -_081DAB3A: - cmp r1, #0x20 - bne _081DAB66 - movs r0, #0x83 - str r0, [sp] - movs r0, #0x23 - str r0, [sp, #4] - subs r0, #0x26 - str r0, [sp, #8] - movs r0, #2 - str r0, [sp, #0xc] - movs r0, #0x79 - movs r1, #0x50 - movs r2, #0xa4 - movs r3, #8 - bl sub_081DA10C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r4, #0x14] - ldrh r0, [r4, #8] - adds r0, #1 - strh r0, [r4, #8] -_081DAB66: - ldrh r0, [r4, #0xa] - adds r0, #1 - strh r0, [r4, #0xa] - movs r0, #0 - add sp, #0x10 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_081DAAE0 - - thumb_func_start sub_081DAB78 -sub_081DAB78: @ 0x081DAB78 - push {lr} - adds r2, r0, #0 - ldr r0, _081DABA4 - ldrb r1, [r0, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _081DAB9C - adds r0, r2, #0 - bl sub_081DA270 - ldr r0, _081DABA8 - bl FindTaskIdByFunc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl DestroyTask -_081DAB9C: - movs r0, #0 - pop {r1} - bx r1 - .align 2, 0 -_081DABA4: .4byte gUnknown_2037C74 -_081DABA8: .4byte sub_081DAAA8 - thumb_func_end sub_081DAB78 diff --git a/asm/rom_8034C54.s b/asm/rom_8034C54.s new file mode 100644 index 0000000..4858ea4 --- /dev/null +++ b/asm/rom_8034C54.s @@ -0,0 +1,1355 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_08034AAC +sub_08034AAC: @ 0x08034AAC + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r5, _08034ACC + ldr r0, [r5] + cmp r0, #0 + beq _08034ABC + bl sub_08034B20 +_08034ABC: + movs r0, #8 + bl Alloc + str r0, [r5] + cmp r0, #0 + bne _08034AD0 + movs r0, #0 + b _08034B18 + .align 2, 0 +_08034ACC: .4byte 0x02022AC4 +_08034AD0: + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + bl Alloc + ldr r1, [r5] + str r0, [r1, #4] + cmp r0, #0 + bne _08034AEC + adds r0, r1, #0 + bl Free + movs r0, #0 + b _08034B18 +_08034AEC: + str r4, [r1] + movs r3, #0 + cmp r3, r4 + bhs _08034B16 + movs r7, #0 + movs r6, #0xff + movs r2, #0 +_08034AFA: + ldr r0, [r5] + ldr r0, [r0, #4] + adds r0, r2, r0 + strb r7, [r0] + ldr r0, [r5] + ldr r1, [r0, #4] + adds r1, r2, r1 + ldrb r0, [r1, #1] + orrs r0, r6 + strb r0, [r1, #1] + adds r2, #0x1c + adds r3, #1 + cmp r3, r4 + blo _08034AFA +_08034B16: + movs r0, #1 +_08034B18: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08034AAC + + thumb_func_start sub_08034B20 +sub_08034B20: @ 0x08034B20 + push {r4, r5, lr} + ldr r2, _08034B68 + ldr r1, [r2] + cmp r1, #0 + beq _08034B60 + ldr r0, [r1, #4] + cmp r0, #0 + beq _08034B54 + movs r4, #0 + ldr r0, [r1] + cmp r4, r0 + bhs _08034B4A + adds r5, r2, #0 +_08034B3A: + adds r0, r4, #0 + bl sub_08035234 + adds r4, #1 + ldr r0, [r5] + ldr r0, [r0] + cmp r4, r0 + blo _08034B3A +_08034B4A: + ldr r0, _08034B68 + ldr r0, [r0] + ldr r0, [r0, #4] + bl Free +_08034B54: + ldr r4, _08034B68 + ldr r0, [r4] + bl Free + movs r0, #0 + str r0, [r4] +_08034B60: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08034B68: .4byte 0x02022AC4 + thumb_func_end sub_08034B20 + + thumb_func_start sub_08034B6C +sub_08034B6C: @ 0x08034B6C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + mov r8, r0 + mov sl, r1 + adds r5, r2, #0 + ldr r6, _08034BE4 + ldr r0, [r6] + cmp r0, #0 + beq _08034C2C + ldr r1, [r0, #4] + mov r0, r8 + lsls r2, r0, #3 + subs r0, r2, r0 + lsls r4, r0, #2 + adds r1, r4, r1 + ldrb r0, [r1] + mov sb, r2 + cmp r0, #0 + bne _08034C2C + ldrb r0, [r5, #1] + bl sub_08035370 + ldr r1, [r6] + ldr r1, [r1, #4] + adds r1, r4, r1 + strb r0, [r1, #1] + ldr r0, [r6] + ldr r0, [r0, #4] + adds r0, r4, r0 + ldrb r0, [r0, #1] + cmp r0, #0xff + beq _08034C2C + ldr r0, [r5, #8] + ldrh r0, [r0, #6] + bl GetSpriteTileStartByTag + ldr r2, [r6] + ldr r1, [r2, #4] + adds r1, r4, r1 + strh r0, [r1, #0xa] + ldr r0, [r2, #4] + adds r0, r4, r0 + ldrh r1, [r0, #0xa] + ldr r7, _08034BE8 + lsrs r0, r7, #0x10 + cmp r1, r0 + bne _08034C38 + ldr r2, [r5, #8] + ldrh r0, [r2, #4] + adds r1, r2, #0 + cmp r0, #0 + beq _08034BEC + adds r0, r1, #0 + bl LoadSpriteSheet + b _08034C0C + .align 2, 0 +_08034BE4: .4byte 0x02022AC4 +_08034BE8: .4byte 0xFFFF0000 +_08034BEC: + ldr r0, [r2] + ldr r1, [r2, #4] + str r0, [sp] + str r1, [sp, #4] + ldr r0, [r2] + bl GetDecompressedDataSize + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, [sp, #4] + ands r1, r7 + orrs r1, r0 + str r1, [sp, #4] + mov r0, sp + bl LoadCompressedSpriteSheet +_08034C0C: + ldr r1, [r6] + ldr r1, [r1, #4] + adds r1, r4, r1 + strh r0, [r1, #0xa] + ldr r0, _08034C30 + ldr r0, [r0] + ldr r1, [r0, #4] + mov r2, sb + mov r3, r8 + subs r0, r2, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r1, [r0, #0xa] + ldr r0, _08034C34 + cmp r1, r0 + bne _08034C38 +_08034C2C: + movs r0, #0 + b _08034D40 + .align 2, 0 +_08034C30: .4byte 0x02022AC4 +_08034C34: .4byte 0x0000FFFF +_08034C38: + ldr r0, [r5, #0xc] + ldrh r0, [r0, #4] + bl IndexOfSpritePaletteTag + ldr r6, _08034D50 + ldr r1, [r6] + ldr r1, [r1, #4] + mov r4, sb + mov r3, r8 + subs r2, r4, r3 + lsls r4, r2, #2 + adds r1, r4, r1 + strb r0, [r1, #4] + ldr r0, [r6] + ldr r0, [r0, #4] + adds r0, r4, r0 + ldrb r0, [r0, #4] + cmp r0, #0xff + bne _08034C6C + ldr r0, [r5, #0xc] + bl LoadSpritePalette + ldr r1, [r6] + ldr r1, [r1, #4] + adds r1, r4, r1 + strb r0, [r1, #4] +_08034C6C: + ldr r0, [r6] + ldr r1, [r0, #4] + adds r1, r4, r1 + ldrb r0, [r5] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + strb r0, [r1, #2] + ldr r0, [r6] + ldr r0, [r0, #4] + adds r0, r4, r0 + ldrb r1, [r5, #1] + strb r1, [r0, #3] + ldr r2, [r6] + ldr r0, [r2, #4] + adds r0, r4, r0 + ldrh r1, [r5, #4] + strh r1, [r0, #0xc] + ldr r0, [r2, #4] + adds r0, r4, r0 + ldrh r1, [r5, #6] + strh r1, [r0, #0xe] + ldr r1, [r2, #4] + adds r1, r4, r1 + ldrb r0, [r5] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1e + strb r0, [r1, #6] + ldr r0, [r6] + ldr r1, [r0, #4] + adds r1, r4, r1 + ldrb r0, [r5] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + strb r0, [r1, #5] + ldr r0, [r6] + ldr r1, [r0, #4] + adds r1, r4, r1 + ldrb r0, [r5] + lsrs r0, r0, #6 + strb r0, [r1, #7] + ldr r0, [r6] + ldr r0, [r0, #4] + adds r0, r4, r0 + ldrb r1, [r5, #2] + strb r1, [r0, #8] + ldrb r1, [r5] + lsls r0, r1, #0x1c + lsrs r0, r0, #0x1e + lsls r1, r1, #0x1a + lsrs r1, r1, #0x1e + bl sub_08035450 + ldr r1, [r6] + ldr r1, [r1, #4] + adds r1, r4, r1 + strb r0, [r1, #9] + ldr r2, [r6] + ldr r0, [r2, #4] + adds r0, r4, r0 + ldr r1, [r5, #8] + ldrh r1, [r1, #6] + strh r1, [r0, #0x10] + ldr r0, [r2, #4] + adds r0, r4, r0 + ldr r1, [r5, #0xc] + ldrh r1, [r1, #4] + strh r1, [r0, #0x12] + ldr r0, [r2, #4] + adds r0, r4, r0 + movs r1, #1 + strb r1, [r0] + ldr r0, [r6] + ldr r0, [r0, #4] + adds r0, r4, r0 + str r1, [r0, #0x14] + movs r3, #1 + ldrb r0, [r5, #1] + cmp r3, r0 + bhs _08034D22 +_08034D0A: + ldr r0, [r6] + ldr r2, [r0, #4] + adds r2, r4, r2 + ldr r1, [r2, #0x14] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + str r0, [r2, #0x14] + adds r3, #1 + ldrb r2, [r5, #1] + cmp r3, r2 + blo _08034D0A +_08034D22: + ldr r0, _08034D50 + ldr r0, [r0] + mov r3, sb + mov r4, r8 + subs r1, r3, r4 + lsls r1, r1, #2 + ldr r0, [r0, #4] + adds r0, r0, r1 + bl sub_08034D54 + mov r0, r8 + mov r1, sl + bl sub_08034E9C + movs r0, #1 +_08034D40: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08034D50: .4byte 0x02022AC4 + thumb_func_end sub_08034B6C + + thumb_func_start sub_08034D54 +sub_08034D54: @ 0x08034D54 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r4, r0, #0 + ldrb r5, [r4, #1] + movs r0, #0xc + ldrsh r7, [r4, r0] + ldrb r0, [r4, #3] + adds r0, #1 + mov r8, r0 + mov r1, sp + movs r0, #0 + strh r0, [r1] + lsls r1, r5, #3 + ldr r2, _08034E84 + mov sb, r2 + add r1, sb + mov r0, r8 + lsls r2, r0, #2 + movs r0, #0x80 + lsls r0, r0, #0x11 + orrs r2, r0 + mov r0, sp + bl CpuSet + movs r6, #0 + ldrb r5, [r4, #1] + cmp r6, r8 + bhs _08034E26 + movs r1, #0x3f + mov sl, r1 + movs r2, #0xd + rsbs r2, r2, #0 + mov sb, r2 +_08034D9E: + lsls r0, r5, #3 + ldr r1, _08034E88 + adds r3, r0, r1 + ldrh r1, [r4, #0xe] + adds r0, r3, #0 + adds r0, #0x38 + strb r1, [r0] + ldr r2, _08034E8C + adds r0, r2, #0 + adds r1, r7, #0 + ands r1, r0 + ldrh r2, [r3, #0x3a] + ldr r0, _08034E90 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #0x3a] + ldrb r1, [r4, #6] + movs r0, #0x39 + adds r0, r0, r3 + mov ip, r0 + lsls r1, r1, #6 + ldrb r2, [r0] + mov r0, sl + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrb r1, [r4, #5] + movs r2, #0x3b + adds r2, r2, r3 + mov ip, r2 + lsls r1, r1, #6 + ldrb r2, [r2] + mov r0, sl + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrh r0, [r4, #0xa] + ldr r1, _08034E94 + ands r1, r0 + ldrh r2, [r3, #0x3c] + ldr r0, _08034E98 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #0x3c] + adds r3, #0x3d + movs r0, #3 + ldrb r1, [r4, #7] + ands r1, r0 + lsls r1, r1, #2 + ldrb r2, [r3] + mov r0, sb + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrb r2, [r4, #4] + lsls r2, r2, #4 + movs r1, #0xf + ands r0, r1 + orrs r0, r2 + strb r0, [r3] + ldrb r0, [r4, #8] + adds r7, r7, r0 + adds r6, #1 + adds r5, #1 + cmp r6, r8 + blo _08034D9E +_08034E26: + subs r5, #1 + ldr r0, _08034E88 + lsls r3, r5, #3 + adds r3, r3, r0 + movs r2, #0xc + ldrsh r1, [r4, r2] + ldrb r0, [r4, #8] + subs r1, r1, r0 + ldr r2, _08034E8C + adds r0, r2, #0 + ands r1, r0 + ldrh r2, [r3, #0x3a] + ldr r0, _08034E90 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #0x3a] + adds r2, r3, #0 + adds r2, #0x39 + ldrb r1, [r2] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4, #9] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #1 + ldrh r4, [r4, #0xa] + adds r1, r1, r4 + ldr r2, _08034E94 + adds r0, r2, #0 + ands r1, r0 + ldrh r2, [r3, #0x3c] + ldr r0, _08034E98 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #0x3c] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08034E84: .4byte 0x03002398 +_08034E88: .4byte 0x03002360 +_08034E8C: .4byte 0x000001FF +_08034E90: .4byte 0xFFFFFE00 +_08034E94: .4byte 0x000003FF +_08034E98: .4byte 0xFFFFFC00 + thumb_func_end sub_08034D54 + + thumb_func_start sub_08034E9C +sub_08034E9C: @ 0x08034E9C + push {r4, r5, r6, lr} + adds r3, r0, #0 + adds r4, r1, #0 + ldr r0, _08034ECC + ldr r1, [r0] + adds r6, r0, #0 + cmp r1, #0 + beq _08034F00 + ldr r2, [r1, #4] + lsls r1, r3, #3 + subs r0, r1, r3 + lsls r0, r0, #2 + adds r2, r0, r2 + ldrb r0, [r2] + adds r5, r1, #0 + cmp r0, #0 + beq _08034F00 + str r4, [r2, #0x18] + cmp r4, #0 + bge _08034ED0 + movs r2, #1 + rsbs r4, r4, #0 + b _08034ED2 + .align 2, 0 +_08034ECC: .4byte 0x02022AC4 +_08034ED0: + movs r2, #0 +_08034ED2: + ldr r0, [r6] + ldr r1, [r0, #4] + subs r0, r5, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r3, [r0, #2] + cmp r3, #1 + beq _08034EF2 + cmp r3, #1 + ble _08034EEA + cmp r3, #2 + beq _08034EFA +_08034EEA: + adds r1, r4, #0 + bl sub_08034F08 + b _08034F00 +_08034EF2: + adds r1, r4, #0 + bl sub_08034FBC + b _08034F00 +_08034EFA: + adds r1, r4, #0 + bl sub_08035118 +_08034F00: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08034E9C + + thumb_func_start sub_08034F08 +sub_08034F08: @ 0x08034F08 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov r8, r0 + mov sb, r1 + str r2, [sp] + ldr r5, [r0, #0x14] + ldrb r7, [r0, #1] + ldr r0, _08034F8C + mov sl, r0 + cmp r5, #0 + beq _08034F72 + lsls r0, r7, #3 + adds r0, #0x3c + mov r1, sl + adds r6, r0, r1 +_08034F2E: + mov r0, sb + adds r1, r5, #0 + bl __udivsi3 + adds r4, r0, #0 + adds r0, r4, #0 + muls r0, r5, r0 + mov r2, sb + subs r2, r2, r0 + mov sb, r2 + adds r0, r5, #0 + movs r1, #0xa + bl __udivsi3 + adds r5, r0, #0 + mov r1, r8 + ldrb r0, [r1, #9] + adds r1, r4, #0 + muls r1, r0, r1 + mov r2, r8 + ldrh r2, [r2, #0xa] + adds r1, r1, r2 + ldr r2, _08034F90 + adds r0, r2, #0 + ands r1, r0 + ldrh r0, [r6] + ldr r2, _08034F94 + ands r0, r2 + orrs r0, r1 + strh r0, [r6] + adds r6, #8 + adds r7, #1 + cmp r5, #0 + bne _08034F2E +_08034F72: + ldr r0, [sp] + cmp r0, #0 + beq _08034F98 + lsls r0, r7, #3 + add r0, sl + adds r0, #0x39 + ldrb r2, [r0] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + b _08034FAC + .align 2, 0 +_08034F8C: .4byte 0x03002360 +_08034F90: .4byte 0x000003FF +_08034F94: .4byte 0xFFFFFC00 +_08034F98: + lsls r2, r7, #3 + add r2, sl + adds r2, #0x39 + ldrb r1, [r2] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2] +_08034FAC: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08034F08 + + thumb_func_start sub_08034FBC +sub_08034FBC: @ 0x08034FBC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r6, r0, #0 + mov r8, r1 + str r2, [sp] + ldr r5, [r6, #0x14] + ldr r3, _08035064 + ldrb r0, [r6, #1] + str r0, [r3] + ldr r2, _08035068 + movs r0, #0 + str r0, [r2] + ldr r1, _0803506C + subs r0, #1 + str r0, [r1] + adds r7, r3, #0 + mov sl, r1 + ldr r0, _08035070 + mov sb, r0 + cmp r5, #0 + beq _080350A4 +_08034FEE: + mov r0, r8 + adds r1, r5, #0 + bl __udivsi3 + adds r4, r0, #0 + adds r0, r4, #0 + muls r0, r5, r0 + mov r1, r8 + subs r1, r1, r0 + mov r8, r1 + adds r0, r5, #0 + movs r1, #0xa + bl __udivsi3 + adds r5, r0, #0 + cmp r4, #0 + bne _08035020 + mov r2, sl + ldr r1, [r2] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _08035020 + cmp r5, #0 + bne _0803507C +_08035020: + ldr r2, [r7] + lsls r2, r2, #3 + add r2, sb + ldrb r0, [r6, #9] + adds r3, r4, #0 + muls r3, r0, r3 + ldrh r4, [r6, #0xa] + adds r3, r3, r4 + ldr r1, _08035074 + adds r0, r1, #0 + ands r3, r0 + ldrh r0, [r2, #0x3c] + ldr r4, _08035078 + adds r1, r4, #0 + ands r0, r1 + orrs r0, r3 + strh r0, [r2, #0x3c] + adds r2, #0x39 + ldrb r0, [r2] + movs r1, #4 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r2] + mov r2, sl + ldr r1, [r2] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _08035092 + ldr r4, _08035068 + ldr r0, [r4] + str r0, [r2] + b _08035092 + .align 2, 0 +_08035064: .4byte 0x03000DD4 +_08035068: .4byte 0x03000DD8 +_0803506C: .4byte 0x03000DDC +_08035070: .4byte 0x03002360 +_08035074: .4byte 0x000003FF +_08035078: .4byte 0xFFFFFC00 +_0803507C: + ldr r0, [r7] + lsls r0, r0, #3 + add r0, sb + adds r0, #0x39 + ldrb r1, [r0] + movs r2, #4 + rsbs r2, r2, #0 + ands r1, r2 + movs r2, #2 + orrs r1, r2 + strb r1, [r0] +_08035092: + ldr r0, [r7] + adds r0, #1 + str r0, [r7] + ldr r4, _080350E4 + ldr r0, [r4] + adds r0, #1 + str r0, [r4] + cmp r5, #0 + bne _08034FEE +_080350A4: + ldr r0, [sp] + cmp r0, #0 + beq _080350F0 + ldr r1, [r7] + lsls r1, r1, #3 + add r1, sb + adds r1, #0x39 + ldrb r2, [r1] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r3, [r7] + lsls r3, r3, #3 + add r3, sb + movs r1, #0xc + ldrsh r2, [r6, r1] + mov r4, sl + ldr r0, [r4] + subs r0, #1 + ldrb r1, [r6, #8] + muls r0, r1, r0 + adds r2, r2, r0 + ldr r1, _080350E8 + adds r0, r1, #0 + ands r2, r0 + ldrh r1, [r3, #0x3a] + ldr r0, _080350EC + ands r0, r1 + orrs r0, r2 + strh r0, [r3, #0x3a] + b _08035106 + .align 2, 0 +_080350E4: .4byte 0x03000DD8 +_080350E8: .4byte 0x000001FF +_080350EC: .4byte 0xFFFFFE00 +_080350F0: + ldr r0, [r7] + lsls r0, r0, #3 + add r0, sb + adds r0, #0x39 + ldrb r2, [r0] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #2 + orrs r1, r2 + strb r1, [r0] +_08035106: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08034FBC + + thumb_func_start sub_08035118 +sub_08035118: @ 0x08035118 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + mov r8, r0 + mov sl, r1 + str r2, [sp] + ldr r5, [r0, #0x14] + ldrb r3, [r0, #1] + movs r0, #0 + str r0, [sp, #4] + mov sb, r0 + cmp r5, #0 + beq _080351B2 +_08035138: + lsls r0, r3, #3 + adds r1, r0, #0 + adds r1, #0x39 + ldr r2, _080351FC + adds r7, r1, r2 + adds r0, #0x3c + adds r6, r0, r2 +_08035146: + mov r0, sl + adds r1, r5, #0 + str r3, [sp, #8] + bl __udivsi3 + adds r4, r0, #0 + adds r0, r4, #0 + muls r0, r5, r0 + mov r1, sl + subs r1, r1, r0 + mov sl, r1 + adds r0, r5, #0 + movs r1, #0xa + bl __udivsi3 + adds r5, r0, #0 + ldr r3, [sp, #8] + cmp r4, #0 + bne _08035176 + ldr r2, [sp, #4] + cmp r2, #0 + bne _08035176 + cmp r5, #0 + bne _08035138 +_08035176: + movs r0, #1 + str r0, [sp, #4] + mov r1, r8 + ldrb r0, [r1, #9] + adds r2, r4, #0 + muls r2, r0, r2 + ldrh r4, [r1, #0xa] + adds r2, r2, r4 + ldr r1, _08035200 + adds r0, r1, #0 + ands r2, r0 + ldrh r0, [r6] + ldr r4, _08035204 + adds r1, r4, #0 + ands r0, r1 + orrs r0, r2 + strh r0, [r6] + ldrb r0, [r7] + movs r2, #4 + rsbs r2, r2, #0 + adds r1, r2, #0 + ands r0, r1 + strb r0, [r7] + adds r7, #8 + adds r6, #8 + adds r3, #1 + movs r4, #1 + add sb, r4 + cmp r5, #0 + bne _08035146 +_080351B2: + mov r0, r8 + ldrb r0, [r0, #3] + cmp sb, r0 + bge _080351E2 + ldr r1, _080351FC + movs r5, #4 + rsbs r5, r5, #0 + movs r4, #2 + lsls r0, r3, #3 + adds r0, #0x39 + adds r2, r0, r1 +_080351C8: + ldrb r1, [r2] + adds r0, r5, #0 + ands r0, r1 + orrs r0, r4 + strb r0, [r2] + adds r2, #8 + adds r3, #1 + movs r1, #1 + add sb, r1 + mov r0, r8 + ldrb r0, [r0, #3] + cmp sb, r0 + blt _080351C8 +_080351E2: + ldr r1, [sp] + cmp r1, #0 + beq _08035208 + lsls r0, r3, #3 + ldr r2, _080351FC + adds r0, r0, r2 + adds r0, #0x39 + ldrb r2, [r0] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + b _0803521E + .align 2, 0 +_080351FC: .4byte 0x03002360 +_08035200: .4byte 0x000003FF +_08035204: .4byte 0xFFFFFC00 +_08035208: + lsls r2, r3, #3 + ldr r4, _08035230 + adds r2, r2, r4 + adds r2, #0x39 + ldrb r1, [r2] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2] +_0803521E: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08035230: .4byte 0x03002360 + thumb_func_end sub_08035118 + + thumb_func_start sub_08035234 +sub_08035234: @ 0x08035234 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r0, _080352CC + ldr r0, [r0] + cmp r0, #0 + beq _080352C6 + ldr r2, [r0, #4] + lsls r1, r4, #3 + subs r0, r1, r4 + lsls r0, r0, #2 + adds r2, r0, r2 + ldrb r0, [r2] + adds r5, r1, #0 + cmp r0, #0 + beq _080352C6 + ldrb r3, [r2, #3] + adds r0, r3, #1 + ldrb r2, [r2, #1] + cmp r0, #0 + beq _0803527E + ldr r1, _080352D0 + movs r7, #4 + rsbs r7, r7, #0 + movs r6, #2 + adds r3, r0, #0 + lsls r0, r2, #3 + adds r0, #0x39 + adds r2, r0, r1 +_0803526C: + ldrb r1, [r2] + adds r0, r7, #0 + ands r0, r1 + orrs r0, r6 + strb r0, [r2] + subs r3, #1 + adds r2, #8 + cmp r3, #0 + bne _0803526C +_0803527E: + adds r0, r4, #0 + bl SharesTileWithAnyActive + cmp r0, #0 + bne _0803529A + ldr r0, _080352CC + ldr r0, [r0] + ldr r1, [r0, #4] + subs r0, r5, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0, #0x10] + bl FreeSpriteTilesByTag +_0803529A: + adds r0, r4, #0 + bl SharesPalWithAnyActive + cmp r0, #0 + bne _080352B6 + ldr r0, _080352CC + ldr r0, [r0] + ldr r1, [r0, #4] + subs r0, r5, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0, #0x12] + bl FreeSpritePaletteByTag +_080352B6: + ldr r0, _080352CC + ldr r0, [r0] + ldr r1, [r0, #4] + subs r0, r5, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] +_080352C6: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080352CC: .4byte 0x02022AC4 +_080352D0: .4byte 0x03002360 + thumb_func_end sub_08035234 + + thumb_func_start sub_080352D4 +sub_080352D4: @ 0x080352D4 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r0, _08035328 + ldr r1, [r0] + adds r7, r0, #0 + cmp r1, #0 + beq _08035364 + ldr r2, [r1, #4] + lsls r1, r4, #3 + subs r0, r1, r4 + lsls r0, r0, #2 + adds r2, r0, r2 + ldrb r0, [r2] + adds r6, r1, #0 + cmp r0, #0 + beq _08035364 + ldrb r3, [r2, #3] + adds r1, r3, #1 + ldrb r0, [r2, #1] + cmp r5, #0 + beq _08035330 + cmp r1, #0 + beq _08035364 + ldr r1, _0803532C + movs r5, #4 + rsbs r5, r5, #0 + movs r4, #2 + adds r3, #1 + lsls r0, r0, #3 + adds r0, #0x39 + adds r2, r0, r1 +_08035314: + ldrb r1, [r2] + adds r0, r5, #0 + ands r0, r1 + orrs r0, r4 + strb r0, [r2] + subs r3, #1 + adds r2, #8 + cmp r3, #0 + bne _08035314 + b _08035364 + .align 2, 0 +_08035328: .4byte 0x02022AC4 +_0803532C: .4byte 0x03002360 +_08035330: + cmp r1, #0 + beq _08035352 + ldr r1, _0803536C + movs r5, #4 + rsbs r5, r5, #0 + adds r3, #1 + lsls r0, r0, #3 + adds r0, #0x39 + adds r2, r0, r1 +_08035342: + ldrb r1, [r2] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r2] + subs r3, #1 + adds r2, #8 + cmp r3, #0 + bne _08035342 +_08035352: + ldr r0, [r7] + ldr r1, [r0, #4] + subs r0, r6, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0, #0x18] + adds r0, r4, #0 + bl sub_08034E9C +_08035364: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0803536C: .4byte 0x03002360 + thumb_func_end sub_080352D4 + + thumb_func_start sub_08035370 +sub_08035370: @ 0x08035370 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r5, #0x40 + movs r3, #0 + ldr r0, _0803539C + ldr r0, [r0] + ldr r2, [r0] + cmp r3, r2 + bhs _080353B2 + ldr r1, [r0, #4] +_08035386: + ldrb r0, [r1] + cmp r0, #0 + bne _080353A0 + ldrb r0, [r1, #1] + cmp r0, #0xff + beq _080353AA + ldrb r0, [r1, #3] + cmp r0, r4 + bhi _080353AA + ldrb r0, [r1, #1] + b _080353C2 + .align 2, 0 +_0803539C: .4byte 0x02022AC4 +_080353A0: + adds r0, r5, #1 + ldrb r5, [r1, #3] + adds r0, r0, r5 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_080353AA: + adds r1, #0x1c + adds r3, #1 + cmp r3, r2 + blo _08035386 +_080353B2: + adds r0, r5, r4 + adds r0, #1 + cmp r0, #0x80 + bgt _080353C0 + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + b _080353C2 +_080353C0: + movs r0, #0xff +_080353C2: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_08035370 + + thumb_func_start SharesTileWithAnyActive +SharesTileWithAnyActive: @ 0x080353C8 + push {r4, r5, r6, lr} + adds r3, r0, #0 + movs r2, #0 + ldr r0, _080353F8 + ldr r0, [r0] + ldr r4, [r0] + cmp r2, r4 + bhs _08035404 + ldr r1, [r0, #4] + lsls r0, r3, #3 + subs r0, r0, r3 + lsls r0, r0, #2 + adds r5, r0, r1 +_080353E2: + ldrb r0, [r1] + cmp r0, #0 + beq _080353FC + cmp r2, r3 + beq _080353FC + ldrh r0, [r1, #0x10] + ldrh r6, [r5, #0x10] + cmp r0, r6 + bne _080353FC + movs r0, #1 + b _08035406 + .align 2, 0 +_080353F8: .4byte 0x02022AC4 +_080353FC: + adds r1, #0x1c + adds r2, #1 + cmp r2, r4 + blo _080353E2 +_08035404: + movs r0, #0 +_08035406: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end SharesTileWithAnyActive + + thumb_func_start SharesPalWithAnyActive +SharesPalWithAnyActive: @ 0x0803540C + push {r4, r5, r6, lr} + adds r3, r0, #0 + movs r2, #0 + ldr r0, _0803543C + ldr r0, [r0] + ldr r4, [r0] + cmp r2, r4 + bhs _08035448 + ldr r1, [r0, #4] + lsls r0, r3, #3 + subs r0, r0, r3 + lsls r0, r0, #2 + adds r5, r0, r1 +_08035426: + ldrb r0, [r1] + cmp r0, #0 + beq _08035440 + cmp r2, r3 + beq _08035440 + ldrh r0, [r1, #0x12] + ldrh r6, [r5, #0x12] + cmp r0, r6 + bne _08035440 + movs r0, #1 + b _0803544A + .align 2, 0 +_0803543C: .4byte 0x02022AC4 +_08035440: + adds r1, #0x1c + adds r2, #1 + cmp r2, r4 + blo _08035426 +_08035448: + movs r0, #0 +_0803544A: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end SharesPalWithAnyActive + + thumb_func_start sub_08035450 +sub_08035450: @ 0x08035450 + ldr r2, _0803545C + lsls r0, r0, #2 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + bx lr + .align 2, 0 +_0803545C: .4byte 0x082D2A58 + thumb_func_end sub_08035450 + + thumb_func_start sub_08035460 +sub_08035460: @ 0x08035460 + push {lr} + bl ResetSpriteData + ldr r0, _08035494 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08035498 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + ldr r0, _0803549C + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_08035494: .4byte 0x082EBAE0 +_08035498: .4byte 0x020205AC +_0803549C: .4byte 0x080354A1 + thumb_func_end sub_08035460 + + thumb_func_start sub_080354A0 +sub_080354A0: @ 0x080354A0 + push {lr} + bl AnimateSprites + bl BuildOamBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080354A0 + diff --git a/asm/rom_81520A8.s b/asm/rom_81520A8.s new file mode 100644 index 0000000..8a5d438 --- /dev/null +++ b/asm/rom_81520A8.s @@ -0,0 +1,784 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_08152084 +sub_08152084: @ 0x08152084 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov sl, r0 + ldr r0, [sp, #0x24] + ldr r4, [sp, #0x28] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sb, r1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp] + lsls r3, r3, #0x18 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r8, r4 + movs r0, #0 + lsrs r4, r3, #0x18 + cmp r0, r8 + bhs _081520FE +_081520B6: + ldr r2, [sp] + movs r3, #0 + adds r6, r4, #1 + adds r0, #1 + mov ip, r0 + cmp r3, r7 + bhs _081520E8 + lsls r5, r4, #6 +_081520C6: + lsls r0, r2, #1 + adds r0, r0, r5 + add r0, sl + mov r1, sb + strh r1, [r0] + adds r1, r2, #1 + adds r0, r1, #0 + asrs r0, r0, #5 + lsls r0, r0, #5 + subs r0, r1, r0 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, r7 + blo _081520C6 +_081520E8: + adds r0, r6, #0 + asrs r0, r0, #5 + lsls r0, r0, #5 + subs r0, r6, r0 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + mov r1, ip + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r8 + blo _081520B6 +_081520FE: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08152084 + + thumb_func_start sub_08152110 +sub_08152110: @ 0x08152110 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov sl, r0 + ldr r0, [sp, #0x24] + ldr r4, [sp, #0x28] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp] + lsls r3, r3, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov ip, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov sb, r4 + movs r0, #0 + adds r5, r1, #0 + lsrs r4, r3, #0x18 + cmp r0, sb + bhs _0815218A +_08152140: + ldr r2, [sp] + movs r3, #0 + adds r7, r4, #1 + adds r0, #1 + mov r8, r0 + cmp r3, ip + bhs _08152174 + lsls r6, r4, #6 +_08152150: + lsls r0, r2, #1 + adds r0, r0, r6 + add r0, sl + ldrh r1, [r5] + strh r1, [r0] + adds r5, #2 + adds r1, r2, #1 + adds r0, r1, #0 + asrs r0, r0, #5 + lsls r0, r0, #5 + subs r0, r1, r0 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, ip + blo _08152150 +_08152174: + adds r0, r7, #0 + asrs r0, r0, #5 + lsls r0, r0, #5 + subs r0, r7, r0 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + mov r1, r8 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, sb + blo _08152140 +_0815218A: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08152110 + + thumb_func_start sub_0815219C +sub_0815219C: @ 0x0815219C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r5, #0 + cmp r4, #0 + beq _081521DA + cmp r4, #0x40 + bls _081521B2 + movs r4, #0x40 +_081521B2: + ldr r6, _081521E0 + movs r0, #8 + bl AllocZeroed + str r0, [r6] + cmp r0, #0 + beq _081521DA + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #4 + bl AllocZeroed + ldr r1, [r6] + str r0, [r1, #4] + cmp r0, #0 + bne _081521E4 + adds r0, r1, #0 + bl Free + str r5, [r6] +_081521DA: + movs r0, #0 + b _08152220 + .align 2, 0 +_081521E0: .4byte 0x0203A884 +_081521E4: + strb r4, [r1] + cmp r5, r4 + bhs _0815221E + adds r3, r6, #0 + ldr r0, _0815222C + mov ip, r0 + movs r2, #4 + mov r8, r2 +_081521F4: + ldr r0, [r3] + ldr r2, [r0, #4] + lsls r1, r5, #1 + adds r1, r1, r5 + lsls r1, r1, #4 + adds r2, r1, r2 + mov r0, ip + ldm r0!, {r6, r7} + stm r2!, {r6, r7} + ldr r0, [r3] + ldr r0, [r0, #4] + adds r1, r1, r0 + ldrb r0, [r1, #0x19] + mov r2, r8 + orrs r0, r2 + strb r0, [r1, #0x19] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, r4 + blo _081521F4 +_0815221E: + movs r0, #1 +_08152220: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0815222C: .4byte 0x082BF2F8 + thumb_func_end sub_0815219C + + thumb_func_start sub_08152230 +sub_08152230: @ 0x08152230 + push {r4, r5, r6, r7, lr} + movs r3, #0 + ldr r0, _08152244 + ldr r2, [r0] + adds r5, r0, #0 + cmp r2, #0 + bne _08152248 + movs r0, #0 + b _081522A0 + .align 2, 0 +_08152244: .4byte 0x0203A884 +_08152248: + ldrb r2, [r2] + cmp r3, r2 + bhs _0815226E + ldr r0, _081522A8 + mov ip, r0 + ldr r4, _081522AC + adds r2, r5, #0 +_08152256: + lsls r1, r3, #3 + add r1, ip + adds r0, r4, #0 + ldm r0!, {r6, r7} + stm r1!, {r6, r7} + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r0, [r2] + ldrb r0, [r0] + cmp r3, r0 + blo _08152256 +_0815226E: + ldr r1, [r5] + ldrb r0, [r1] + lsls r2, r0, #1 + adds r2, r2, r0 + ldr r0, [r1, #4] + lsls r2, r2, #4 + movs r1, #0 + bl memset + ldr r0, [r5] + ldr r0, [r0, #4] + bl Free + ldr r0, [r5] + movs r4, #0 + str r4, [r0, #4] + movs r1, #0 + movs r2, #8 + bl memset + ldr r0, [r5] + bl Free + str r4, [r5] + movs r0, #1 +_081522A0: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081522A8: .4byte 0x03002598 +_081522AC: .4byte 0x082BF2F8 + thumb_func_end sub_08152230 + + thumb_func_start sub_081522B0 +sub_081522B0: @ 0x081522B0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r6, #0 + ldr r0, _081522CC + ldr r1, [r0] + adds r3, r0, #0 + cmp r1, #0 + beq _081522C8 + ldr r0, [r1, #4] + cmp r0, #0 + bne _081522D0 +_081522C8: + movs r0, #0 + b _081523AE + .align 2, 0 +_081522CC: .4byte 0x0203A884 +_081522D0: + ldrb r1, [r1] + cmp r6, r1 + bhs _081523AC + adds r7, r3, #0 + movs r0, #3 + mov r8, r0 +_081522DC: + ldr r0, [r7] + ldr r1, [r0, #4] + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r5, r0, #4 + adds r2, r5, r1 + ldrb r1, [r2, #0x19] + movs r0, #3 + ands r0, r1 + cmp r0, #3 + bne _0815239E + ldr r1, [r2, #0x2c] + cmp r1, #0 + beq _081522FE + adds r0, r2, #0 + bl _call_via_r1 +_081522FE: + ldr r0, [r7] + ldr r0, [r0, #4] + adds r2, r5, r0 + ldrb r1, [r2, #0x19] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08152324 + lsls r0, r6, #3 + ldr r1, _0815231C + adds r0, r0, r1 + ldr r1, _08152320 + ldm r1!, {r2, r3} + stm r0!, {r2, r3} + b _0815239C + .align 2, 0 +_0815231C: .4byte 0x03002598 +_08152320: .4byte 0x082BF2F8 +_08152324: + ldrb r0, [r2, #0xe] + ldrb r4, [r2, #0xa] + adds r0, r0, r4 + strb r0, [r2] + ldr r4, [r7] + ldr r3, [r4, #4] + adds r3, r5, r3 + movs r0, #8 + ldrsh r2, [r3, r0] + movs r1, #0xc + ldrsh r0, [r3, r1] + adds r2, r2, r0 + ldr r1, _081523B8 + adds r0, r1, #0 + ands r2, r0 + ldrh r0, [r3, #2] + ldr r1, _081523BC + mov ip, r1 + mov r1, ip + ands r0, r1 + orrs r0, r2 + strh r0, [r3, #2] + ldr r3, [r4, #4] + adds r3, r5, r3 + ldrb r0, [r3, #0x19] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1e + mov r2, r8 + ands r0, r2 + lsls r0, r0, #2 + ldrb r1, [r3, #5] + movs r4, #0xd + rsbs r4, r4, #0 + adds r2, r4, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #5] + ldr r4, [r7] + ldr r2, [r4, #4] + adds r2, r5, r2 + ldrh r3, [r2, #0x14] + ldr r1, _081523C0 + adds r0, r1, #0 + adds r1, r3, #0 + ands r1, r0 + mov ip, r1 + ldrh r0, [r2, #4] + ldr r3, _081523C4 + adds r1, r3, #0 + ands r0, r1 + mov r1, ip + orrs r0, r1 + strh r0, [r2, #4] + lsls r1, r6, #3 + ldr r2, _081523C8 + ldr r0, [r4, #4] + adds r1, r1, r2 + adds r0, r5, r0 + ldm r0!, {r2, r3} + stm r1!, {r2, r3} +_0815239C: + ldr r3, _081523CC +_0815239E: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, [r3] + ldrb r0, [r0] + cmp r6, r0 + blo _081522DC +_081523AC: + movs r0, #1 +_081523AE: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081523B8: .4byte 0x000001FF +_081523BC: .4byte 0xFFFFFE00 +_081523C0: .4byte 0x000003FF +_081523C4: .4byte 0xFFFFFC00 +_081523C8: .4byte 0x03002598 +_081523CC: .4byte 0x0203A884 + thumb_func_end sub_081522B0 + + thumb_func_start sub_081523D0 +sub_081523D0: @ 0x081523D0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + cmp r4, #0 + beq _0815240C + ldrh r0, [r4, #0x10] + bl GetSpriteTileStartByTag + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, _08152408 + cmp r5, r0 + beq _0815240C + strb r6, [r4, #0x18] + ldrb r0, [r4, #1] + lsrs r0, r0, #6 + ldrb r1, [r4, #3] + lsrs r1, r1, #6 + bl sub_08035450 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + muls r0, r6, r0 + adds r0, r5, r0 + strh r0, [r4, #0x14] + movs r0, #1 + b _0815240E + .align 2, 0 +_08152408: .4byte 0x0000FFFF +_0815240C: + movs r0, #0 +_0815240E: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_081523D0 + + thumb_func_start sub_08152414 +sub_08152414: @ 0x08152414 + push {r4, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _08152444 + ldr r0, [r0] + cmp r0, #0 + beq _08152448 + ldrb r1, [r0] + cmp r2, r1 + bhs _08152448 + ldr r1, [r0, #4] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #4 + adds r3, r0, r1 + ldrb r1, [r3, #0x19] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08152448 + str r4, [r3, #0x2c] + adds r0, r2, #0 + b _0815244A + .align 2, 0 +_08152444: .4byte 0x0203A884 +_08152448: + movs r0, #0xff +_0815244A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_08152414 + + thumb_func_start sub_08152450 +sub_08152450: @ 0x08152450 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + lsls r2, r2, #0x10 + lsrs r5, r2, #0x10 + ldr r0, _08152488 + ldr r0, [r0] + cmp r0, #0 + beq _08152484 + ldrb r1, [r0] + cmp r3, r1 + bhs _08152484 + ldr r1, [r0, #4] + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #4 + adds r2, r0, r1 + ldrb r1, [r2, #0x19] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08152484 + cmp r4, #7 + bls _0815248C +_08152484: + movs r0, #0xff + b _08152498 + .align 2, 0 +_08152488: .4byte 0x0203A884 +_0815248C: + lsls r1, r4, #1 + adds r0, r2, #0 + adds r0, #0x1a + adds r0, r0, r1 + strh r5, [r0] + adds r0, r3, #0 +_08152498: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08152450 + + thumb_func_start sub_081524A0 +sub_081524A0: @ 0x081524A0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + mov sb, r0 + ldr r0, [sp, #0x30] + ldr r4, [sp, #0x34] + ldr r5, [sp, #0x38] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp] + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + mov r8, r2 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + str r3, [sp, #4] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #8] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r4, [sp, #0xc] + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + mov sl, r5 + movs r5, #0 + ldr r0, _081524EC + ldr r0, [r0] + cmp r0, #0 + beq _0815253A + mov r1, sb + cmp r1, #0 + bne _0815250C + b _0815253A + .align 2, 0 +_081524EC: .4byte 0x0203A884 +_081524F0: + adds r5, r2, #0 + adds r0, r5, #0 + movs r1, #0 + movs r2, #0x30 + bl memset + strb r4, [r5, #0x16] + ldrb r0, [r5, #0x19] + movs r1, #1 + orrs r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r5, #0x19] + b _08152536 +_0815250C: + movs r4, #0 + ldrb r1, [r0] + cmp r5, r1 + bhs _08152536 + ldr r6, [r0, #4] + adds r3, r1, #0 + movs r7, #1 +_0815251A: + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #4 + adds r2, r0, r6 + ldrb r1, [r2, #0x19] + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0 + beq _081524F0 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r3 + blo _0815251A +_08152536: + cmp r5, #0 + bne _0815253E +_0815253A: + movs r0, #0xff + b _0815259C +_0815253E: + adds r1, r5, #0 + mov r0, sb + ldm r0!, {r2, r3} + stm r1!, {r2, r3} + mov r0, sp + ldrh r0, [r0] + strh r0, [r5, #0x10] + mov r1, r8 + strh r1, [r5, #0x12] + mov r2, sp + ldrh r2, [r2, #4] + strh r2, [r5, #8] + mov r3, sp + ldrh r3, [r3, #8] + strh r3, [r5, #0xa] + mov r0, r8 + bl IndexOfSpritePaletteTag + lsls r0, r0, #4 + ldrb r1, [r5, #5] + movs r4, #0xf + ands r4, r1 + orrs r4, r0 + strb r4, [r5, #5] + mov r0, sl + cmp r0, #3 + bhi _08152592 + movs r1, #3 + ands r1, r0 + lsls r3, r1, #3 + ldrb r2, [r5, #0x19] + movs r0, #0x19 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r3 + strb r0, [r5, #0x19] + lsls r1, r1, #2 + movs r0, #0xd + rsbs r0, r0, #0 + ands r4, r0 + orrs r4, r1 + strb r4, [r5, #5] +_08152592: + adds r0, r5, #0 + ldr r1, [sp, #0xc] + bl sub_081523D0 + ldrb r0, [r5, #0x16] +_0815259C: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_081524A0 + + thumb_func_start sub_081525AC +sub_081525AC: @ 0x081525AC + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r6, _081525D4 + ldr r0, [r6] + cmp r0, #0 + beq _081525CE + ldr r1, [r0, #4] + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r4, r0, #4 + adds r2, r4, r1 + ldrb r1, [r2, #0x19] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _081525D8 +_081525CE: + movs r0, #0xff + b _08152618 + .align 2, 0 +_081525D4: .4byte 0x0203A884 +_081525D8: + adds r0, r2, #0 + movs r1, #0 + movs r2, #0x30 + bl memset + ldr r0, [r6] + ldr r0, [r0, #4] + adds r0, r4, r0 + movs r1, #0xa0 + strb r1, [r0] + ldr r3, [r6] + ldr r2, [r3, #4] + adds r2, r4, r2 + ldrh r1, [r2, #2] + ldr r0, _08152620 + ands r0, r1 + movs r1, #0xf0 + orrs r0, r1 + strh r0, [r2, #2] + ldr r1, [r3, #4] + adds r1, r4, r1 + ldrb r0, [r1, #0x19] + movs r2, #4 + orrs r0, r2 + strb r0, [r1, #0x19] + lsls r1, r5, #3 + ldr r0, _08152624 + adds r1, r1, r0 + ldr r0, _08152628 + ldm r0!, {r2, r3} + stm r1!, {r2, r3} + adds r0, r5, #0 +_08152618: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08152620: .4byte 0xFFFFFE00 +_08152624: .4byte 0x03002598 +_08152628: .4byte 0x082BF2F8 + thumb_func_end sub_081525AC + diff --git a/asm/rotating_gate.s b/asm/rotating_gate.s new file mode 100644 index 0000000..231bbd5 --- /dev/null +++ b/asm/rotating_gate.s @@ -0,0 +1,1197 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start GetCurrentMapRotatingGatePuzzleType +GetCurrentMapRotatingGatePuzzleType: @ 0x080FC058 + push {lr} + ldr r0, _080FC06C + ldr r0, [r0] + ldrh r1, [r0, #4] + movs r0, #0x86 + lsls r0, r0, #1 + cmp r1, r0 + bne _080FC070 + movs r0, #1 + b _080FC082 + .align 2, 0 +_080FC06C: .4byte 0x03005AEC +_080FC070: + ldr r0, _080FC07C + cmp r1, r0 + beq _080FC080 + movs r0, #0 + b _080FC082 + .align 2, 0 +_080FC07C: .4byte 0x0000081D +_080FC080: + movs r0, #2 +_080FC082: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetCurrentMapRotatingGatePuzzleType + + thumb_func_start RotatingGate_ResetAllGateOrientations +RotatingGate_ResetAllGateOrientations: @ 0x080FC088 + push {r4, r5, r6, lr} + movs r0, #0x80 + lsls r0, r0, #7 + bl GetVarPointer + adds r5, r0, #0 + movs r3, #0 + ldr r4, _080FC0BC + ldrb r0, [r4] + cmp r3, r0 + bge _080FC0B4 + ldr r6, _080FC0C0 +_080FC0A0: + adds r2, r5, r3 + ldr r1, [r6] + lsls r0, r3, #3 + adds r0, r0, r1 + ldrb r0, [r0, #5] + strb r0, [r2] + adds r3, #1 + ldrb r0, [r4] + cmp r3, r0 + blt _080FC0A0 +_080FC0B4: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080FC0BC: .4byte 0x02039D14 +_080FC0C0: .4byte 0x02039D10 + thumb_func_end RotatingGate_ResetAllGateOrientations + + thumb_func_start RotatingGate_GetGateOrientation +RotatingGate_GetGateOrientation: @ 0x080FC0C4 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0x80 + lsls r0, r0, #7 + bl GetVarPointer + adds r0, r0, r4 + ldrb r0, [r0] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end RotatingGate_GetGateOrientation + + thumb_func_start RotatingGate_SetGateOrientation +RotatingGate_SetGateOrientation: @ 0x080FC0E0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r0, #0x80 + lsls r0, r0, #7 + bl GetVarPointer + adds r0, r0, r4 + strb r5, [r0] + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end RotatingGate_SetGateOrientation + + thumb_func_start RotatingGate_RotateInDirection +RotatingGate_RotateInDirection: @ 0x080FC100 + push {r4, r5, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r5, #0 + bl RotatingGate_GetGateOrientation + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r4, #1 + bne _080FC124 + cmp r1, #0 + beq _080FC120 + subs r0, r1, #1 + lsls r0, r0, #0x18 + b _080FC12E +_080FC120: + movs r1, #3 + b _080FC130 +_080FC124: + adds r1, #1 + lsls r1, r1, #0x18 + movs r0, #0xc0 + lsls r0, r0, #0x12 + ands r0, r1 +_080FC12E: + lsrs r1, r0, #0x18 +_080FC130: + adds r0, r5, #0 + bl RotatingGate_SetGateOrientation + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end RotatingGate_RotateInDirection + + thumb_func_start RotatingGate_LoadPuzzleConfig +RotatingGate_LoadPuzzleConfig: @ 0x080FC13C + push {lr} + bl GetCurrentMapRotatingGatePuzzleType + cmp r0, #1 + beq _080FC150 + cmp r0, #1 + ble _080FC184 + cmp r0, #2 + beq _080FC168 + b _080FC184 +_080FC150: + ldr r1, _080FC15C + ldr r0, _080FC160 + str r0, [r1] + ldr r1, _080FC164 + movs r0, #8 + b _080FC172 + .align 2, 0 +_080FC15C: .4byte 0x02039D10 +_080FC160: .4byte 0x0856A494 +_080FC164: .4byte 0x02039D14 +_080FC168: + ldr r1, _080FC188 + ldr r0, _080FC18C + str r0, [r1] + ldr r1, _080FC190 + movs r0, #0xb +_080FC172: + strb r0, [r1] + movs r1, #0 + ldr r3, _080FC194 + movs r2, #0x40 +_080FC17A: + adds r0, r1, r3 + strb r2, [r0] + adds r1, #1 + cmp r1, #0xa + bls _080FC17A +_080FC184: + pop {r0} + bx r0 + .align 2, 0 +_080FC188: .4byte 0x02039D10 +_080FC18C: .4byte 0x0856A4D4 +_080FC190: .4byte 0x02039D14 +_080FC194: .4byte 0x02039D04 + thumb_func_end RotatingGate_LoadPuzzleConfig + + thumb_func_start RotatingGate_CreateGatesWithinViewport +RotatingGate_CreateGatesWithinViewport: @ 0x080FC198 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sl, r1 + ldr r0, _080FC25C + ldr r2, [r0] + ldrh r1, [r2] + subs r0, r1, #2 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + adds r1, #0x11 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sb, r1 + ldrh r1, [r2, #2] + subs r0, r1, #2 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + adds r1, #0xe + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r8, r1 + movs r5, #0 + ldr r0, _080FC260 + ldrb r0, [r0] + cmp r5, r0 + bhs _080FC24A + lsls r0, r2, #0x10 + asrs r7, r0, #0x10 + lsls r0, r3, #0x10 + asrs r6, r0, #0x10 +_080FC1E6: + ldr r0, _080FC264 + ldr r0, [r0] + lsls r1, r5, #3 + adds r1, r1, r0 + ldrh r0, [r1] + adds r0, #7 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldrh r0, [r1, #2] + adds r0, #7 + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + cmp r7, r1 + bgt _080FC23C + mov r3, r8 + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + cmp r0, r1 + blt _080FC23C + lsls r0, r2, #0x10 + asrs r1, r0, #0x10 + cmp r6, r1 + bgt _080FC23C + mov r2, sb + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + cmp r0, r1 + blt _080FC23C + ldr r0, _080FC268 + adds r4, r5, r0 + ldrb r0, [r4] + cmp r0, #0x40 + bne _080FC23C + ldr r3, [sp] + lsls r1, r3, #0x10 + mov r0, sl + lsls r2, r0, #0x10 + adds r0, r5, #0 + asrs r1, r1, #0x10 + asrs r2, r2, #0x10 + bl RotatingGate_CreateGate + strb r0, [r4] +_080FC23C: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _080FC260 + ldrb r0, [r0] + cmp r5, r0 + blo _080FC1E6 +_080FC24A: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080FC25C: .4byte 0x03005AEC +_080FC260: .4byte 0x02039D14 +_080FC264: .4byte 0x02039D10 +_080FC268: .4byte 0x02039D04 + thumb_func_end RotatingGate_CreateGatesWithinViewport + + thumb_func_start RotatingGate_CreateGate +RotatingGate_CreateGate: @ 0x080FC26C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x18 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + mov r8, r2 + ldr r0, _080FC29C + lsls r1, r6, #3 + ldr r0, [r0] + adds r4, r0, r1 + ldrb r0, [r4, #4] + cmp r0, #0 + beq _080FC294 + cmp r0, #4 + bne _080FC2A4 +_080FC294: + mov r1, sp + ldr r0, _080FC2A0 + b _080FC2A8 + .align 2, 0 +_080FC29C: .4byte 0x02039D10 +_080FC2A0: .4byte 0x0856DBC4 +_080FC2A4: + mov r1, sp + ldr r0, _080FC33C +_080FC2A8: + 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, #4] + movs r3, #0x98 + lsls r3, r3, #5 + adds r1, r3, #0 + adds r0, r0, r1 + strh r0, [r2] + mov r0, sp + movs r1, #0 + movs r2, #0 + movs r3, #0x94 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x40 + beq _080FC344 + ldrh r0, [r4] + adds r0, #7 + ldrh r1, [r4, #2] + adds r1, #7 + lsls r4, r5, #4 + adds r4, r4, r5 + lsls r4, r4, #2 + ldr r2, _080FC340 + adds r4, r4, r2 + strh r6, [r4, #0x2e] + movs r2, #0x3e + adds r2, r2, r4 + mov ip, r2 + ldrb r2, [r2] + movs r3, #2 + orrs r2, r3 + mov r3, ip + strb r2, [r3] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r2, r7, #0x10 + asrs r2, r2, #0x10 + adds r0, r0, r2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + mov r3, r8 + lsls r2, r3, #0x10 + asrs r2, r2, #0x10 + adds r1, r1, r2 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r2, r4, #0 + adds r2, #0x20 + adds r3, r4, #0 + adds r3, #0x22 + bl sub_08092960 + adds r0, r4, #0 + bl RotatingGate_HideGatesOutsideViewport + adds r0, r6, #0 + bl RotatingGate_GetGateOrientation + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAffineAnim + adds r0, r5, #0 + b _080FC346 + .align 2, 0 +_080FC33C: .4byte 0x0856DBAC +_080FC340: .4byte 0x020205AC +_080FC344: + movs r0, #0x40 +_080FC346: + add sp, #0x18 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end RotatingGate_CreateGate + + thumb_func_start SpriteCallback_RotatingGate +SpriteCallback_RotatingGate: @ 0x080FC354 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldrh r0, [r6, #0x30] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldrh r0, [r6, #0x32] + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r7, r4, #0 + adds r0, r6, #0 + bl RotatingGate_HideGatesOutsideViewport + cmp r5, #1 + bne _080FC39A + adds r0, r4, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl GetPlayerSpeed + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + beq _080FC38A + adds r0, r4, #0 + adds r0, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_080FC38A: + movs r0, #0x30 + bl PlaySE + adds r0, r6, #0 + adds r1, r4, #0 + bl StartSpriteAffineAnim + b _080FC3C8 +_080FC39A: + cmp r5, #2 + bne _080FC3C8 + adds r0, r7, #0 + adds r0, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl GetPlayerSpeed + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + beq _080FC3BA + adds r0, r4, #0 + adds r0, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_080FC3BA: + movs r0, #0x30 + bl PlaySE + adds r0, r6, #0 + adds r1, r4, #0 + bl StartSpriteAffineAnim +_080FC3C8: + movs r0, #0 + strh r0, [r6, #0x30] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SpriteCallback_RotatingGate + + thumb_func_start RotatingGate_HideGatesOutsideViewport +RotatingGate_HideGatesOutsideViewport: @ 0x080FC3D4 + push {r4, r5, r6, lr} + mov ip, r0 + mov r4, ip + adds r4, #0x3e + ldrb r0, [r4] + movs r5, #5 + rsbs r5, r5, #0 + ands r5, r0 + strb r5, [r4] + mov r0, ip + ldrh r1, [r0, #0x24] + ldrh r2, [r0, #0x20] + adds r1, r1, r2 + adds r0, #0x28 + movs r2, #0 + ldrsb r2, [r0, r2] + ldr r0, _080FC468 + adds r2, r2, r1 + ldrh r0, [r0] + adds r2, r2, r0 + lsls r2, r2, #0x10 + mov r3, ip + ldrh r1, [r3, #0x26] + ldrh r0, [r3, #0x22] + adds r1, r1, r0 + mov r0, ip + adds r0, #0x29 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldr r3, _080FC46C + adds r0, r0, r1 + ldrh r3, [r3] + adds r0, r0, r3 + lsls r0, r0, #0x10 + movs r3, #0x80 + lsls r3, r3, #0xf + adds r1, r2, r3 + lsrs r1, r1, #0x10 + lsrs r6, r0, #0x10 + adds r0, r0, r3 + lsrs r3, r0, #0x10 + asrs r2, r2, #0x10 + cmp r2, #0xff + bgt _080FC43A + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x10 + rsbs r1, r1, #0 + cmp r0, r1 + bge _080FC442 +_080FC43A: + movs r1, #4 + adds r0, r5, #0 + orrs r0, r1 + strb r0, [r4] +_080FC442: + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xaf + bgt _080FC456 + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x10 + rsbs r1, r1, #0 + cmp r0, r1 + bge _080FC462 +_080FC456: + mov r0, ip + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_080FC462: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080FC468: .4byte 0x02021B38 +_080FC46C: .4byte 0x02021B3A + thumb_func_end RotatingGate_HideGatesOutsideViewport + + thumb_func_start LoadRotatingGatePics +LoadRotatingGatePics: @ 0x080FC470 + push {lr} + ldr r0, _080FC47C + bl LoadSpriteSheets + pop {r0} + bx r0 + .align 2, 0 +_080FC47C: .4byte 0x0856D93C + thumb_func_end LoadRotatingGatePics + + thumb_func_start RotatingGate_DestroyGatesOutsideViewport +RotatingGate_DestroyGatesOutsideViewport: @ 0x080FC480 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _080FC4B4 + ldr r2, [r0] + ldrh r1, [r2] + subs r0, r1, #2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 + adds r1, #0x11 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sb, r1 + ldrh r1, [r2, #2] + subs r0, r1, #2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + adds r1, #0xe + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + movs r6, #0 + b _080FC526 + .align 2, 0 +_080FC4B4: .4byte 0x03005AEC +_080FC4B8: + ldr r0, _080FC53C + ldr r0, [r0] + lsls r1, r6, #3 + adds r1, r1, r0 + ldrh r0, [r1] + adds r0, #7 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldrh r0, [r1, #2] + adds r0, #7 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldr r0, _080FC540 + adds r0, r6, r0 + ldrb r0, [r0] + cmp r0, #0x40 + beq _080FC524 + lsls r0, r2, #0x10 + mov r2, sl + lsls r1, r2, #0x10 + asrs r2, r0, #0x10 + cmp r0, r1 + blt _080FC504 + mov r1, sb + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r2, r0 + bgt _080FC504 + lsls r0, r3, #0x10 + mov r2, r8 + lsls r1, r2, #0x10 + asrs r2, r0, #0x10 + cmp r0, r1 + blt _080FC504 + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + cmp r2, r0 + ble _080FC524 +_080FC504: + ldr r0, _080FC540 + adds r5, r6, r0 + ldrb r0, [r5] + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _080FC544 + adds r4, r4, r0 + adds r0, r4, #0 + bl FreeSpriteOamMatrix + adds r0, r4, #0 + bl DestroySprite + movs r0, #0x40 + strb r0, [r5] +_080FC524: + adds r6, #1 +_080FC526: + ldr r0, _080FC548 + ldrb r0, [r0] + cmp r6, r0 + blt _080FC4B8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080FC53C: .4byte 0x02039D10 +_080FC540: .4byte 0x02039D04 +_080FC544: .4byte 0x020205AC +_080FC548: .4byte 0x02039D14 + thumb_func_end RotatingGate_DestroyGatesOutsideViewport + + thumb_func_start RotatingGate_CanRotate +RotatingGate_CanRotate: @ 0x080FC54C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r1, #1 + bne _080FC56C + ldr r0, _080FC568 + mov sl, r0 + b _080FC578 + .align 2, 0 +_080FC568: .4byte 0x0856DC3C +_080FC56C: + cmp r1, #2 + beq _080FC574 +_080FC570: + movs r0, #0 + b _080FC608 +_080FC574: + ldr r1, _080FC618 + mov sl, r1 +_080FC578: + adds r0, r4, #0 + bl RotatingGate_GetGateOrientation + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + ldr r0, _080FC61C + ldr r1, [r0] + lsls r0, r4, #3 + adds r0, r0, r1 + ldrb r2, [r0, #4] + ldrh r1, [r0] + adds r1, #7 + ldrh r0, [r0, #2] + adds r0, #7 + movs r3, #0 + lsls r2, r2, #3 + str r2, [sp, #4] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + mov sb, r1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov r8, r0 +_080FC5A8: + movs r6, #0 + ldr r2, [sp] + adds r7, r2, r3 + lsls r0, r3, #1 + adds r5, r7, #0 + ldr r1, [sp, #4] + adds r0, r0, r1 + ldr r2, _080FC620 + adds r4, r0, r2 +_080FC5BA: + adds r0, r5, #0 + cmp r5, #0 + bge _080FC5C2 + adds r0, r7, #3 +_080FC5C2: + asrs r0, r0, #2 + lsls r0, r0, #2 + subs r0, r5, r0 + lsls r0, r0, #1 + adds r0, r0, r6 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldrb r0, [r4] + cmp r0, #0 + beq _080FC5F8 + lsls r1, r1, #2 + add r1, sl + movs r0, #0 + ldrsb r0, [r1, r0] + add r0, sb + ldrb r1, [r1, #1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + add r1, r8 + str r3, [sp, #8] + bl MapGridIsImpassableAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, [sp, #8] + cmp r0, #1 + beq _080FC570 +_080FC5F8: + adds r4, #1 + adds r6, #1 + cmp r6, #1 + ble _080FC5BA + adds r3, #1 + cmp r3, #3 + ble _080FC5A8 + movs r0, #1 +_080FC608: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080FC618: .4byte 0x0856DC1C +_080FC61C: .4byte 0x02039D10 +_080FC620: .4byte 0x0856DC5C + thumb_func_end RotatingGate_CanRotate + + thumb_func_start RotatingGate_HasArm +RotatingGate_HasArm: @ 0x080FC624 + push {r4, r5, r6, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r0, #0 + lsls r4, r4, #0x18 + lsrs r5, r4, #0x18 + lsrs r4, r4, #0x19 + movs r0, #1 + ands r5, r0 + adds r0, r6, #0 + bl RotatingGate_GetGateOrientation + subs r4, r4, r0 + adds r1, r4, #4 + adds r0, r1, #0 + cmp r1, #0 + bge _080FC64A + adds r0, r4, #7 +_080FC64A: + asrs r0, r0, #2 + lsls r0, r0, #2 + subs r0, r1, r0 + ldr r1, _080FC670 + ldr r2, [r1] + lsls r1, r6, #3 + adds r1, r1, r2 + ldrb r1, [r1, #4] + ldr r2, _080FC674 + lsls r0, r0, #0x18 + asrs r0, r0, #0x17 + adds r0, r0, r5 + lsls r1, r1, #3 + adds r0, r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080FC670: .4byte 0x02039D10 +_080FC674: .4byte 0x0856DC5C + thumb_func_end RotatingGate_HasArm + + thumb_func_start RotatingGate_TriggerRotationAnimation +RotatingGate_TriggerRotationAnimation: @ 0x080FC678 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r0, _080FC6A4 + adds r2, r3, r0 + ldrb r0, [r2] + cmp r0, #0x40 + beq _080FC69C + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _080FC6A8 + adds r4, r4, r0 + strh r1, [r4, #0x30] + adds r0, r3, #0 + bl RotatingGate_GetGateOrientation + strh r0, [r4, #0x32] +_080FC69C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FC6A4: .4byte 0x02039D04 +_080FC6A8: .4byte 0x020205AC + thumb_func_end RotatingGate_TriggerRotationAnimation + + thumb_func_start RotatingGate_GetRotationInfo +RotatingGate_GetRotationInfo: @ 0x080FC6AC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r3, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + cmp r0, #2 + bne _080FC6C8 + ldr r3, _080FC6C4 + b _080FC6EA + .align 2, 0 +_080FC6C4: .4byte 0x0856DBDC +_080FC6C8: + cmp r0, #1 + bne _080FC6D4 + ldr r3, _080FC6D0 + b _080FC6EA + .align 2, 0 +_080FC6D0: .4byte 0x0856DBEC +_080FC6D4: + cmp r0, #3 + bne _080FC6E0 + ldr r3, _080FC6DC + b _080FC6EA + .align 2, 0 +_080FC6DC: .4byte 0x0856DBFC +_080FC6E0: + cmp r3, #4 + beq _080FC6E8 + movs r0, #0xff + b _080FC6F8 +_080FC6E8: + ldr r3, _080FC6FC +_080FC6EA: + lsls r0, r2, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + asrs r0, r0, #0xe + adds r0, r0, r1 + adds r0, r3, r0 + ldrb r0, [r0] +_080FC6F8: + pop {r1} + bx r1 + .align 2, 0 +_080FC6FC: .4byte 0x0856DC0C + thumb_func_end RotatingGate_GetRotationInfo + + thumb_func_start RotatingGate_InitPuzzle +RotatingGate_InitPuzzle: @ 0x080FC700 + push {lr} + bl GetCurrentMapRotatingGatePuzzleType + cmp r0, #0 + beq _080FC712 + bl RotatingGate_LoadPuzzleConfig + bl RotatingGate_ResetAllGateOrientations +_080FC712: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RotatingGate_InitPuzzle + + thumb_func_start RotatingGatePuzzleCameraUpdate +RotatingGatePuzzleCameraUpdate: @ 0x080FC718 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + bl GetCurrentMapRotatingGatePuzzleType + cmp r0, #0 + beq _080FC73A + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + lsls r1, r5, #0x10 + asrs r1, r1, #0x10 + bl RotatingGate_CreateGatesWithinViewport + bl RotatingGate_DestroyGatesOutsideViewport +_080FC73A: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end RotatingGatePuzzleCameraUpdate + + thumb_func_start RotatingGate_InitPuzzleAndGraphics +RotatingGate_InitPuzzleAndGraphics: @ 0x080FC740 + push {lr} + bl GetCurrentMapRotatingGatePuzzleType + cmp r0, #0 + beq _080FC75A + bl LoadRotatingGatePics + bl RotatingGate_LoadPuzzleConfig + movs r0, #0 + movs r1, #0 + bl RotatingGate_CreateGatesWithinViewport +_080FC75A: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RotatingGate_InitPuzzleAndGraphics + + thumb_func_start CheckForRotatingGatePuzzleCollision +CheckForRotatingGatePuzzleCollision: @ 0x080FC760 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + mov r8, r2 + bl GetCurrentMapRotatingGatePuzzleType + cmp r0, #0 + bne _080FC794 + b _080FC832 +_080FC782: + adds r0, r4, #0 + adds r1, r5, #0 + bl RotatingGate_TriggerRotationAnimation + adds r0, r4, #0 + adds r1, r5, #0 + bl RotatingGate_RotateInDirection + b _080FC832 +_080FC794: + movs r6, #0 + ldr r0, _080FC820 + ldrb r0, [r0] + cmp r6, r0 + bge _080FC832 + lsls r0, r4, #0x10 + asrs r7, r0, #0x10 +_080FC7A2: + ldr r0, _080FC824 + ldr r1, [r0] + lsls r0, r6, #3 + adds r0, r0, r1 + ldrh r1, [r0] + adds r1, #7 + ldrh r0, [r0, #2] + adds r0, #7 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + lsls r1, r1, #0x10 + asrs r4, r1, #0x10 + subs r0, r4, #2 + cmp r0, r7 + bgt _080FC828 + adds r0, r4, #1 + cmp r7, r0 + bgt _080FC828 + lsls r0, r2, #0x10 + asrs r3, r0, #0x10 + subs r1, r3, #2 + mov r2, r8 + lsls r0, r2, #0x10 + asrs r2, r0, #0x10 + cmp r1, r2 + bgt _080FC828 + adds r0, r3, #1 + cmp r2, r0 + bgt _080FC828 + subs r1, r7, r4 + adds r1, #2 + subs r2, r2, r3 + adds r2, #2 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + mov r0, sb + bl RotatingGate_GetRotationInfo + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _080FC828 + lsrs r5, r0, #4 + movs r1, #0xf + ands r1, r0 + lsls r0, r6, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl RotatingGate_HasArm + cmp r0, #0 + beq _080FC828 + adds r0, r4, #0 + adds r1, r5, #0 + bl RotatingGate_CanRotate + cmp r0, #0 + bne _080FC782 + movs r0, #1 + b _080FC834 + .align 2, 0 +_080FC820: .4byte 0x02039D14 +_080FC824: .4byte 0x02039D10 +_080FC828: + adds r6, #1 + ldr r0, _080FC840 + ldrb r0, [r0] + cmp r6, r0 + blt _080FC7A2 +_080FC832: + movs r0, #0 +_080FC834: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080FC840: .4byte 0x02039D14 + thumb_func_end CheckForRotatingGatePuzzleCollision + + thumb_func_start CheckForRotatingGatePuzzleCollisionWithoutAnimation +CheckForRotatingGatePuzzleCollisionWithoutAnimation: @ 0x080FC844 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + mov r8, r2 + bl GetCurrentMapRotatingGatePuzzleType + cmp r0, #0 + bne _080FC86A + b _080FC8FA +_080FC866: + movs r0, #1 + b _080FC8FC +_080FC86A: + movs r6, #0 + ldr r0, _080FC908 + ldrb r0, [r0] + cmp r6, r0 + bge _080FC8FA + lsls r0, r4, #0x10 + asrs r7, r0, #0x10 +_080FC878: + ldr r0, _080FC90C + ldr r1, [r0] + lsls r0, r6, #3 + adds r0, r0, r1 + ldrh r1, [r0] + adds r1, #7 + ldrh r0, [r0, #2] + adds r0, #7 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + lsls r1, r1, #0x10 + asrs r4, r1, #0x10 + subs r0, r4, #2 + cmp r0, r7 + bgt _080FC8F0 + adds r0, r4, #1 + cmp r7, r0 + bgt _080FC8F0 + lsls r0, r2, #0x10 + asrs r3, r0, #0x10 + subs r1, r3, #2 + mov r2, r8 + lsls r0, r2, #0x10 + asrs r2, r0, #0x10 + cmp r1, r2 + bgt _080FC8F0 + adds r0, r3, #1 + cmp r2, r0 + bgt _080FC8F0 + subs r1, r7, r4 + adds r1, #2 + subs r2, r2, r3 + adds r2, #2 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + mov r0, sb + bl RotatingGate_GetRotationInfo + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _080FC8F0 + lsrs r5, r0, #4 + movs r1, #0xf + ands r1, r0 + lsls r0, r6, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl RotatingGate_HasArm + cmp r0, #0 + beq _080FC8F0 + adds r0, r4, #0 + adds r1, r5, #0 + bl RotatingGate_CanRotate + cmp r0, #0 + beq _080FC866 +_080FC8F0: + adds r6, #1 + ldr r0, _080FC908 + ldrb r0, [r0] + cmp r6, r0 + blt _080FC878 +_080FC8FA: + movs r0, #0 +_080FC8FC: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080FC908: .4byte 0x02039D14 +_080FC90C: .4byte 0x02039D10 + thumb_func_end CheckForRotatingGatePuzzleCollisionWithoutAnimation + diff --git a/asm/roulette.s b/asm/roulette.s new file mode 100644 index 0000000..73a1e37 --- /dev/null +++ b/asm/roulette.s @@ -0,0 +1,10119 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_08140300 +sub_08140300: @ 0x08140300 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + ldr r0, _08140328 + ldr r0, [r0] + adds r1, r0, #0 + adds r1, #0xb8 + ldrb r0, [r1] + cmp r0, #0 + beq _08140322 + adds r0, r1, #0 + bl task_tutorial_controls_fadein +_08140322: + pop {r0} + bx r0 + .align 2, 0 +_08140328: .4byte 0x0203A854 + thumb_func_end sub_08140300 + + thumb_func_start sub_0814032C +sub_0814032C: @ 0x0814032C + push {r4, lr} + sub sp, #4 + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + bl sub_081428DC + ldr r4, _081403A0 + ldr r0, [r4] + ldrh r0, [r0, #0x26] + movs r2, #0x80 + lsls r2, r2, #2 + adds r1, r2, #0 + subs r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x14 + bl SetGpuReg + ldr r1, [r4] + ldrb r0, [r1, #1] + cmp r0, #0 + beq _08140368 + ldrh r1, [r1, #0x34] + movs r0, #0x52 + bl SetGpuReg +_08140368: + ldr r2, [r4] + movs r3, #0x2a + ldrsh r0, [r2, r3] + cmp r0, #0 + beq _08140388 + ldr r1, _081403A4 + ldr r3, _081403A8 + adds r0, r2, r3 + str r0, [r1] + ldr r0, _081403AC + str r0, [r1, #4] + ldr r0, _081403B0 + str r0, [r1, #8] + ldr r0, [r1, #8] + movs r0, #0 + strh r0, [r2, #0x2a] +_08140388: + ldr r0, [r4] + movs r2, #0x28 + ldrsh r1, [r0, r2] + cmp r1, #1 + beq _081403B4 + cmp r1, #1 + ble _0814043C + cmp r1, #2 + beq _081403EC + cmp r1, #0xff + beq _08140410 + b _0814043C + .align 2, 0 +_081403A0: .4byte 0x0203A854 +_081403A4: .4byte 0x040000D4 +_081403A8: .4byte 0x0000133C +_081403AC: .4byte 0x060021C0 +_081403B0: .4byte 0x800001A0 +_081403B4: + movs r0, #0 + movs r1, #1 + movs r2, #0 + bl SetBgAttribute + movs r0, #0 + bl ShowBg + ldr r1, _081403E0 + ldr r2, [r4] + movs r3, #0xcf + lsls r3, r3, #2 + adds r0, r2, r3 + str r0, [r1] + ldr r0, _081403E4 + str r0, [r1, #4] + ldr r0, _081403E8 + str r0, [r1, #8] + ldr r0, [r1, #8] + movs r0, #2 + strh r0, [r2, #0x28] + b _0814043C + .align 2, 0 +_081403E0: .4byte 0x040000D4 +_081403E4: .4byte 0x0600F9C0 +_081403E8: .4byte 0x800001A0 +_081403EC: + ldr r1, _08140404 + movs r2, #0xcf + lsls r2, r2, #2 + adds r0, r0, r2 + str r0, [r1] + ldr r0, _08140408 + str r0, [r1, #4] + ldr r0, _0814040C + str r0, [r1, #8] + ldr r0, [r1, #8] + b _0814043C + .align 2, 0 +_08140404: .4byte 0x040000D4 +_08140408: .4byte 0x0600F9C0 +_0814040C: .4byte 0x800001A0 +_08140410: + movs r0, #0 + movs r1, #1 + movs r2, #2 + bl SetBgAttribute + movs r0, #0 + bl ShowBg + mov r1, sp + movs r0, #0 + strh r0, [r1] + ldr r1, _08140444 + mov r3, sp + str r3, [r1] + ldr r0, _08140448 + str r0, [r1, #4] + ldr r0, _0814044C + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r1, [r4] + movs r0, #0 + strh r0, [r1, #0x28] +_0814043C: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08140444: .4byte 0x040000D4 +_08140448: .4byte 0x0600F9C0 +_0814044C: .4byte 0x810001A0 + thumb_func_end sub_0814032C + + thumb_func_start sub_08140450 +sub_08140450: @ 0x08140450 + push {r4, r5, lr} + sub sp, #4 + movs r5, #0 + str r5, [sp] + ldr r4, _081404C0 + movs r0, #0xe6 + lsls r0, r0, #6 + bl AllocZeroed + str r0, [r4] + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _081404C4 + movs r0, #1 + movs r2, #3 + bl InitBgsFromTemplates + ldr r1, [r4] + movs r0, #0xbe + lsls r0, r0, #1 + adds r1, r1, r0 + movs r0, #0 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r2, _081404C8 + adds r1, r1, r2 + movs r0, #1 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, _081404CC + adds r1, r1, r0 + movs r0, #2 + bl SetBgTilemapBuffer + ldr r0, _081404D0 + bl InitWindows + bl sub_08196DF4 + ldr r0, _081404D4 + strb r5, [r0] + ldr r0, _081404D8 + mov r1, sp + bl malloc_and_decompress + ldr r1, [r4] + ldr r2, _081404DC + adds r1, r1, r2 + str r0, [r1] + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081404C0: .4byte 0x0203A854 +_081404C4: .4byte 0x08595CEC +_081404C8: .4byte 0x0000117C +_081404CC: .4byte 0x0000317C +_081404D0: .4byte 0x08595CF8 +_081404D4: .4byte 0x0203A858 +_081404D8: .4byte 0x085959A8 +_081404DC: .4byte 0x0000397C + thumb_func_end sub_08140450 + + thumb_func_start sub_081404E0 +sub_081404E0: @ 0x081404E0 + push {r4, r5, lr} + ldr r5, _08140530 + ldr r0, [r5] + ldr r4, _08140534 + adds r0, r0, r4 + ldr r0, [r0] + bl Free + ldr r0, [r5] + adds r0, r0, r4 + movs r4, #0 + str r4, [r0] + bl FreeAllWindowBuffers + movs r0, #0 + bl UnsetBgTilemapBuffer + movs r0, #1 + bl UnsetBgTilemapBuffer + movs r0, #2 + bl UnsetBgTilemapBuffer + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r0, [r5] + movs r2, #0xe6 + lsls r2, r2, #6 + movs r1, #0 + bl memset + ldr r0, [r5] + bl Free + str r4, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08140530: .4byte 0x0203A854 +_08140534: .4byte 0x0000397C + thumb_func_end sub_081404E0 + + thumb_func_start sub_08140538 +sub_08140538: @ 0x08140538 + push {r4, r5, r6, lr} + sub sp, #8 + ldr r1, _081405CC + mov r0, sp + movs r2, #6 + bl memcpy + ldr r5, _081405D0 + ldr r3, [r5] + ldr r4, _081405D4 + ldrb r0, [r4] + movs r1, #1 + ands r1, r0 + ldrb r2, [r3, #4] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #4] + ldrh r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08140572 + ldr r0, [r5] + ldrb r1, [r0, #4] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0, #4] +_08140572: + ldr r1, [r5] + ldr r2, _081405D8 + ldrb r0, [r1, #4] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x19 + adds r0, r0, r2 + ldrb r0, [r0, #3] + adds r1, #0x22 + strb r0, [r1] + ldr r1, [r5] + ldrb r0, [r1, #4] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x19 + adds r0, r0, r2 + ldrb r0, [r0, #4] + adds r1, #0x23 + strb r0, [r1] + ldr r2, [r5] + ldr r3, _081405DC + ldrb r1, [r2, #4] + lsls r0, r1, #0x1e + lsrs r0, r0, #0x1e + lsrs r1, r1, #7 + lsls r1, r1, #1 + adds r0, r0, r1 + adds r0, r0, r3 + ldrb r0, [r0] + strb r0, [r2, #0x19] + ldr r2, [r5] + ldrb r1, [r2, #0x1a] + movs r0, #0xf + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r2, #0x1a] + ldr r0, [r5] + ldrb r0, [r0, #0x19] + cmp r0, #1 + bne _081405E8 + ldr r4, _081405E0 + ldr r3, _081405E4 + mov r0, sp + ldrh r2, [r0] + b _081405F0 + .align 2, 0 +_081405CC: .4byte 0x08595FCC +_081405D0: .4byte 0x0203A854 +_081405D4: .4byte 0x02037280 +_081405D8: .4byte 0x08595EF4 +_081405DC: .4byte 0x08595EF0 +_081405E0: .4byte 0x020373B4 +_081405E4: .4byte 0x020377B4 +_081405E8: + ldr r4, _0814065C + ldr r3, _08140660 + mov r0, sp + ldrh r2, [r0, #2] +_081405F0: + adds r0, r3, #0 + adds r0, #0xa2 + strh r2, [r0] + ldr r1, _08140664 + adds r0, r1, #0 + ands r0, r2 + strh r0, [r3] + ands r0, r1 + adds r2, r4, #0 + adds r2, #0xa2 + strh r0, [r2] + ands r0, r1 + strh r0, [r4] + ldr r0, _08140668 + ldr r0, [r0] + adds r0, #0xb8 + bl sub_08151654 + movs r4, #0 +_08140616: + ldr r5, _08140668 + ldr r0, [r5] + adds r0, #0xb8 + lsls r2, r4, #3 + ldr r1, _0814066C + adds r2, r2, r1 + adds r1, r4, #0 + bl sub_08151668 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xc + bls _08140616 + movs r4, #0 +_08140634: + movs r0, #0x64 + muls r0, r4, r0 + ldr r1, _08140670 + adds r0, r0, r1 + movs r1, #0x41 + bl GetMonData + adds r1, r0, #0 + movs r0, #0x98 + lsls r0, r0, #1 + cmp r1, r0 + beq _08140674 + adds r0, #2 + cmp r1, r0 + bne _0814067E + ldr r0, [r5] + ldrb r1, [r0, #2] + movs r2, #1 + b _0814067A + .align 2, 0 +_0814065C: .4byte 0x020373B4 +_08140660: .4byte 0x020377B4 +_08140664: .4byte 0x0000FFFF +_08140668: .4byte 0x0203A854 +_0814066C: .4byte 0x08595F34 +_08140670: .4byte 0x02024190 +_08140674: + ldr r0, [r5] + ldrb r1, [r0, #2] + movs r2, #2 +_0814067A: + orrs r1, r2 + strb r1, [r0, #2] +_0814067E: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #5 + bls _08140634 + bl RtcCalcLocalTime + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_08140538 + + thumb_func_start sub_08140694 +sub_08140694: @ 0x08140694 + push {r4, r5, lr} + sub sp, #0xc + ldr r0, _081406B4 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #8 + bls _081406A8 + b _081408C0 +_081406A8: + lsls r0, r0, #2 + ldr r1, _081406B8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081406B4: .4byte 0x03002360 +_081406B8: .4byte 0x081406BC +_081406BC: @ jump table + .4byte _081406E0 @ case 0 + .4byte _081406F8 @ case 1 + .4byte _08140718 @ case 2 + .4byte _0814072A @ case 3 + .4byte _08140764 @ case 4 + .4byte _08140788 @ case 5 + .4byte _081407A8 @ case 6 + .4byte _08140818 @ case 7 + .4byte _08140842 @ case 8 +_081406E0: + movs r0, #0 + bl SetVBlankCallback + bl ScanlineEffect_Stop + bl SetVBlankHBlankCallbacksToNull + bl ResetVramOamAndBgCntRegs + bl ResetAllBgsCoordinates + b _081408C0 +_081406F8: + bl sub_08140450 + bl DeactivateAllTextPrinters + movs r1, #0x90 + lsls r1, r1, #6 + movs r0, #0x50 + bl SetGpuReg + ldr r1, _08140714 + movs r0, #0x52 + bl SetGpuReg + b _081408C0 + .align 2, 0 +_08140714: .4byte 0x0000060A +_08140718: + bl ResetPaletteFade + bl ResetSpriteData + bl ResetTasks + bl reset_temp_tile_data_buffers + b _081408C0 +_0814072A: + ldr r0, _08140758 + movs r2, #0xe0 + lsls r2, r2, #1 + movs r1, #0 + bl LoadPalette + ldr r1, _0814075C + movs r4, #0 + str r4, [sp] + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, _08140760 + str r4, [sp] + movs r0, #2 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + b _081408C0 + .align 2, 0 +_08140758: .4byte 0x085957A8 +_0814075C: .4byte 0x08DBC590 +_08140760: .4byte 0x08DBCCBC +_08140764: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08140770 + b _081408CE +_08140770: + bl sub_08140538 + ldr r1, _08140784 + movs r0, #2 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + b _081408C0 + .align 2, 0 +_08140784: .4byte 0x08595B4C +_08140788: + movs r0, #0 + bl sub_08142CD8 + bl sub_08143A94 + bl sub_081439E8 + bl sub_081433E0 + bl sub_08142D9C + bl sub_08143048 + bl sub_081432B0 + b _081408C0 +_081407A8: + bl AnimateSprites + bl BuildOamBuffer + bl GetCoins + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl sub_081435E0 + movs r0, #6 + bl sub_081437F8 + movs r0, #0 + bl sub_0814379C + movs r0, #0 + bl sub_081425C4 + ldr r4, _08140808 + ldrb r0, [r4] + movs r1, #0 + bl ClearStdWindowAndFrame + ldrb r0, [r4] + ldr r2, _0814080C + movs r1, #2 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r5, #0 + str r5, [sp, #8] + movs r1, #1 + movs r3, #2 + bl AddTextPrinterParameterized + ldrb r0, [r4] + movs r1, #3 + bl CopyWindowToVram + ldr r1, _08140810 + movs r2, #0x3c + rsbs r2, r2, #0 + adds r0, r2, #0 + strh r0, [r1] + ldr r0, _08140814 + strh r5, [r0] + b _081408C0 + .align 2, 0 +_08140808: .4byte 0x0203A858 +_0814080C: .4byte 0x08262D3F +_08140810: .4byte 0x02021B38 +_08140814: .4byte 0x02021B3A +_08140818: + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #1 + bl CopyBgTilemapBufferToVram + movs r0, #2 + bl CopyBgTilemapBufferToVram + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + b _081408C0 +_08140842: + movs r0, #1 + bl EnableInterrupts + ldr r0, _081408A8 + bl SetVBlankCallback + movs r0, #1 + str r0, [sp] + movs r0, #0xff + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginHardwarePaletteFade + ldr r0, _081408AC + movs r1, #0 + bl CreateTask + ldr r5, _081408B0 + ldr r1, [r5] + adds r1, #0xa4 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081408B4 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + adds r4, r4, r1 + movs r0, #6 + strh r0, [r4, #0x14] + bl GetCoins + strh r0, [r4, #0x22] + bl GetCoins + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl AlertTVThatPlayerPlayedRoulette + ldr r0, _081408B8 + movs r1, #1 + bl CreateTask + ldr r1, [r5] + adds r1, #0xa5 + strb r0, [r1] + ldr r0, _081408BC + bl SetMainCallback2 + b _081408CE + .align 2, 0 +_081408A8: .4byte 0x0814032D +_081408AC: .4byte 0x08140971 +_081408B0: .4byte 0x0203A854 +_081408B4: .4byte 0x03005B60 +_081408B8: .4byte 0x081408DD +_081408BC: .4byte 0x08140301 +_081408C0: + ldr r1, _081408D8 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_081408CE: + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081408D8: .4byte 0x03002360 + thumb_func_end sub_08140694 + + thumb_func_start sub_081408DC +sub_081408DC: @ 0x081408DC + push {r4, r5, r6, lr} + ldr r3, _0814096C + ldr r0, [r3] + adds r0, #0x21 + ldrb r2, [r0] + adds r1, r2, #1 + strb r1, [r0] + ldr r1, [r3] + adds r0, r1, #0 + adds r0, #0x23 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r6, r3, #0 + ldrb r0, [r0] + cmp r2, r0 + bne _08140922 + adds r1, #0x21 + movs r0, #0 + strb r0, [r1] + ldr r2, [r6] + adds r3, r2, #0 + adds r3, #0x22 + ldrb r1, [r3] + ldrh r0, [r2, #0x24] + subs r0, r0, r1 + strh r0, [r2, #0x24] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _08140922 + ldrb r1, [r3] + movs r3, #0xb4 + lsls r3, r3, #1 + adds r0, r3, #0 + subs r0, r0, r1 + strh r0, [r2, #0x24] +_08140922: + adds r4, r6, #0 + ldr r0, [r4] + ldrh r0, [r0, #0x24] + bl Sin2 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, [r4] + ldrh r0, [r0, #0x24] + bl Cos2 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _08140946 + adds r0, #0xf +_08140946: + lsls r0, r0, #0xc + lsrs r5, r0, #0x10 + ldr r3, [r6] + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _08140956 + adds r0, #0xf +_08140956: + asrs r0, r0, #4 + strh r0, [r3, #0x32] + strh r0, [r3, #0x2c] + strh r5, [r3, #0x2e] + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + rsbs r0, r0, #0 + strh r0, [r3, #0x30] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0814096C: .4byte 0x0203A854 + thumb_func_end sub_081408DC + + thumb_func_start sub_08140970 +sub_08140970: @ 0x08140970 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl UpdatePaletteFade + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _081409C6 + movs r1, #0x90 + lsls r1, r1, #6 + movs r0, #0x50 + bl SetGpuReg + ldr r1, _081409CC + movs r0, #0x52 + bl SetGpuReg + ldr r1, _081409D0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r5, [r0, #0x14] + adds r0, r4, #0 + bl sub_081420BC + bl sub_08142138 + bl sub_08143B0C + movs r0, #0 + bl sub_081425C4 + movs r0, #6 + bl sub_081437F8 + ldr r1, _081409D4 + ldr r2, _081409D8 + adds r0, r4, #0 + movs r3, #3 + bl sub_08142044 +_081409C6: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081409CC: .4byte 0x00000808 +_081409D0: .4byte 0x03005B60 +_081409D4: .4byte 0x08140A31 +_081409D8: .4byte 0x0000FFFF + thumb_func_end sub_08140970 + + thumb_func_start sub_081409DC +sub_081409DC: @ 0x081409DC + push {r4, r5, lr} + sub sp, #0xc + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl DisplayYesNoMenuDefaultYes + ldr r5, _08140A24 + ldrb r0, [r5] + movs r1, #0 + bl ClearStdWindowAndFrame + ldrb r0, [r5] + ldr r2, _08140A28 + movs r1, #2 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + movs r3, #2 + bl AddTextPrinterParameterized + ldrb r0, [r5] + movs r1, #3 + bl CopyWindowToVram + ldr r1, _08140A2C + adds r0, r4, #0 + bl DoYesNoFuncWithChoice + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08140A24: .4byte 0x0203A858 +_08140A28: .4byte 0x08262DA3 +_08140A2C: .4byte 0x08595FC4 + thumb_func_end sub_081409DC + + thumb_func_start sub_08140A30 +sub_08140A30: @ 0x08140A30 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + movs r1, #1 + bl DrawStdWindowFrame + ldr r1, _08140A54 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08140A58 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08140A54: .4byte 0x03005B60 +_08140A58: .4byte 0x08140C99 + thumb_func_end sub_08140A30 + + thumb_func_start sub_08140A5C +sub_08140A5C: @ 0x08140A5C + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _08140A7C + ldr r0, [r0] + adds r0, #0xa5 + ldrb r0, [r0] + bl DestroyTask + adds r0, r4, #0 + bl sub_08141EAC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08140A7C: .4byte 0x0203A854 + thumb_func_end sub_08140A5C + + thumb_func_start sub_08140A80 +sub_08140A80: @ 0x08140A80 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xf + bls _08140A92 + b _08140BB0 +_08140A92: + lsls r0, r4, #2 + ldr r1, _08140A9C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08140A9C: .4byte 0x08140AA0 +_08140AA0: @ jump table + .4byte _08140AE0 @ case 0 + .4byte _08140B04 @ case 1 + .4byte _08140B04 @ case 2 + .4byte _08140B04 @ case 3 + .4byte _08140B04 @ case 4 + .4byte _08140B58 @ case 5 + .4byte _08140BB0 @ case 6 + .4byte _08140BB0 @ case 7 + .4byte _08140BB0 @ case 8 + .4byte _08140BB0 @ case 9 + .4byte _08140B58 @ case 10 + .4byte _08140BB0 @ case 11 + .4byte _08140BB0 @ case 12 + .4byte _08140BB0 @ case 13 + .4byte _08140BB0 @ case 14 + .4byte _08140B58 @ case 15 +_08140AE0: + ldr r0, _08140B00 + ldr r0, [r0] + movs r1, #0xbe + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #0x10 + str r1, [sp] + movs r1, #0xd + str r1, [sp, #4] + movs r1, #0 + movs r2, #0xe + movs r3, #7 + bl sub_08151FE4 + b _08140C16 + .align 2, 0 +_08140B00: .4byte 0x0203A854 +_08140B04: + lsls r0, r4, #1 + adds r0, r0, r4 + adds r0, #0xe + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r5, _08140B4C + ldr r0, [r5] + movs r4, #0xbe + lsls r4, r4, #1 + adds r0, r0, r4 + movs r1, #0x10 + str r1, [sp] + movs r6, #0xd + str r6, [sp, #4] + movs r1, #0 + movs r2, #0xe + movs r3, #7 + bl sub_08151FE4 + ldr r0, [r5] + adds r4, r0, r4 + ldr r1, _08140B50 + adds r0, r0, r1 + ldr r1, [r0] + ldr r0, _08140B54 + adds r1, r1, r0 + movs r0, #3 + str r0, [sp] + str r6, [sp, #4] + adds r0, r4, #0 + mov r2, r8 + movs r3, #7 + bl sub_08152034 + b _08140C16 + .align 2, 0 +_08140B4C: .4byte 0x0203A854 +_08140B50: .4byte 0x0000397C +_08140B54: .4byte 0x00000232 +_08140B58: + subs r0, r4, #1 + movs r1, #5 + bl __divsi3 + lsls r1, r0, #1 + adds r1, r1, r0 + adds r1, #0xa + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + ldr r5, _08140BA8 + ldr r0, [r5] + movs r4, #0xbe + lsls r4, r4, #1 + adds r0, r0, r4 + movs r6, #0x10 + str r6, [sp] + movs r1, #0xd + str r1, [sp, #4] + movs r1, #0 + movs r2, #0xe + movs r3, #7 + bl sub_08151FE4 + ldr r0, [r5] + adds r4, r0, r4 + ldr r1, _08140BAC + adds r0, r0, r1 + ldr r1, [r0] + movs r0, #0xa0 + lsls r0, r0, #2 + adds r1, r1, r0 + str r6, [sp] + movs r0, #3 + str r0, [sp, #4] + adds r0, r4, #0 + movs r2, #0xe + adds r3, r7, #0 + bl sub_08152034 + b _08140C16 + .align 2, 0 +_08140BA8: .4byte 0x0203A854 +_08140BAC: .4byte 0x0000397C +_08140BB0: + adds r0, r4, #0 + movs r1, #5 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #1 + adds r1, r1, r0 + adds r1, #0xe + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + subs r0, r4, #1 + movs r1, #5 + bl __divsi3 + lsls r1, r0, #1 + adds r1, r1, r0 + adds r1, #7 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + ldr r5, _08140C24 + ldr r0, [r5] + movs r4, #0xbe + lsls r4, r4, #1 + adds r0, r0, r4 + movs r1, #0x10 + str r1, [sp] + movs r1, #0xd + str r1, [sp, #4] + movs r1, #0 + movs r2, #0xe + movs r3, #7 + bl sub_08151FE4 + ldr r0, [r5] + adds r4, r0, r4 + ldr r1, _08140C28 + adds r0, r0, r1 + ldr r1, [r0] + movs r0, #0x88 + lsls r0, r0, #2 + adds r1, r1, r0 + movs r0, #3 + str r0, [sp] + str r0, [sp, #4] + adds r0, r4, #0 + mov r2, r8 + adds r3, r7, #0 + bl sub_08152034 +_08140C16: + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08140C24: .4byte 0x0203A854 +_08140C28: .4byte 0x0000397C + thumb_func_end sub_08140A80 + + thumb_func_start sub_08140C2C +sub_08140C2C: @ 0x08140C2C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08140C50 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + adds r4, r4, r1 + ldrb r0, [r4, #0x10] + bl sub_0814379C + ldrb r0, [r4, #0x10] + bl sub_08140A80 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08140C50: .4byte 0x03005B60 + thumb_func_end sub_08140C2C + + thumb_func_start sub_08140C54 +sub_08140C54: @ 0x08140C54 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _08140C8C + ldr r2, [r5] + movs r6, #0 + movs r1, #1 + strh r1, [r2, #0x28] + ldr r1, _08140C90 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + adds r4, r4, r1 + ldrb r0, [r4, #0x10] + bl sub_08140A80 + ldr r0, [r5] + adds r0, #0x23 + movs r1, #2 + strb r1, [r0] + ldr r0, [r5] + adds r0, #0x21 + strb r6, [r0] + ldr r0, _08140C94 + str r0, [r4] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08140C8C: .4byte 0x0203A854 +_08140C90: .4byte 0x03005B60 +_08140C94: .4byte 0x08141109 + thumb_func_end sub_08140C54 + + thumb_func_start sub_08140C98 +sub_08140C98: @ 0x08140C98 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _08140CEC + ldr r0, [r1] + ldr r2, [r0, #8] + movs r0, #0x20 + ands r0, r2 + cmp r0, #0 + beq _08140CF8 + movs r3, #0xb + ldr r5, _08140CF0 + adds r0, r5, #0 + adds r0, #0xe4 + ldr r0, [r0] + ands r2, r0 + ldr r0, _08140CF4 + mov ip, r0 + lsls r7, r6, #2 + cmp r2, #0 + beq _08140D36 + adds r4, r1, #0 + adds r5, #8 +_08140CC6: + lsls r0, r3, #0x10 + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r0, r1 + lsrs r3, r0, #0x10 + asrs r2, r0, #0x10 + cmp r2, #0xd + bgt _08140D36 + ldr r1, [r4] + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r1, #8] + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _08140CC6 + b _08140D36 + .align 2, 0 +_08140CEC: .4byte 0x0203A854 +_08140CF0: .4byte 0x08595D00 +_08140CF4: .4byte 0x03005B60 +_08140CF8: + movs r3, #6 + ldr r5, _08140D64 + adds r0, r5, #0 + adds r0, #0x80 + ldr r0, [r0] + ands r2, r0 + ldr r0, _08140D68 + mov ip, r0 + lsls r7, r6, #2 + cmp r2, #0 + beq _08140D36 + adds r4, r1, #0 + adds r5, #8 +_08140D12: + lsls r0, r3, #0x10 + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r0, r1 + lsrs r3, r0, #0x10 + asrs r2, r0, #0x10 + cmp r2, #9 + bgt _08140D36 + ldr r1, [r4] + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r1, #8] + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _08140D12 +_08140D36: + adds r4, r7, r6 + lsls r4, r4, #3 + add r4, ip + movs r5, #0 + strh r3, [r4, #0x10] + adds r0, r6, #0 + bl sub_081420BC + ldrb r0, [r4, #0x10] + bl sub_081425C4 + ldrb r0, [r4, #0x10] + bl sub_0814379C + ldrb r0, [r4, #0x10] + bl sub_0814234C + strh r5, [r4, #0xa] + ldr r0, _08140D6C + str r0, [r4] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08140D64: .4byte 0x08595D00 +_08140D68: .4byte 0x03005B60 +_08140D6C: .4byte 0x08140C55 + thumb_func_end sub_08140C98 + + thumb_func_start sub_08140D70 +sub_08140D70: @ 0x08140D70 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + movs r6, #0 + movs r7, #0 + ldr r1, _08140DB8 + mov r0, sp + movs r2, #4 + bl memcpy + ldrb r0, [r4] + mov r8, r0 + cmp r5, #0 + blt _08140DE4 + cmp r5, #1 + bgt _08140DBC + movs r1, #0 + ldrsh r0, [r4, r1] + movs r1, #5 + bl __modsi3 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r2, #0xf0 + lsls r2, r2, #0x14 + adds r1, r0, r2 + lsrs r7, r1, #0x18 + cmp r0, #0 + bne _08140DE4 + movs r6, #5 + b _08140DE4 + .align 2, 0 +_08140DB8: .4byte 0x08595FD2 +_08140DBC: + cmp r5, #3 + bgt _08140DE4 + movs r1, #0 + ldrsh r0, [r4, r1] + movs r1, #5 + bl __divsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + movs r2, #0x80 + lsls r2, r2, #0x13 + adds r0, r1, r2 + lsrs r7, r0, #0x18 + cmp r1, #0 + bne _08140DE4 + movs r6, #1 +_08140DE4: + mov r1, sp + adds r0, r1, r5 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r2, [r4] + adds r0, r0, r2 + strh r0, [r4] + lsls r1, r6, #0x18 + asrs r3, r1, #0x18 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r2, r7, #0x18 + cmp r0, r3 + bge _08140E06 + asrs r0, r2, #0x18 + strh r0, [r4] +_08140E06: + movs r0, #0 + ldrsh r1, [r4, r0] + asrs r0, r2, #0x18 + cmp r1, r0 + ble _08140E12 + strh r3, [r4] +_08140E12: + mov r1, r8 + lsls r0, r1, #0x18 + movs r2, #0 + ldrsh r1, [r4, r2] + asrs r0, r0, #0x18 + cmp r1, r0 + bne _08140E24 + movs r0, #0 + b _08140E26 +_08140E24: + movs r0, #1 +_08140E26: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08140D70 + + thumb_func_start sub_08140E34 +sub_08140E34: @ 0x08140E34 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r0, #0 + mov sb, r0 + movs r5, #0 + ldr r4, _08141010 + ldrh r1, [r4, #0x2e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08140E70 + movs r5, #1 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + ldr r1, _08141014 + adds r0, r0, r1 + adds r0, #8 + movs r1, #0 + bl sub_08140D70 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08140E70 + b _08141002 +_08140E70: + ldrh r1, [r4, #0x2e] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08140E96 + movs r5, #1 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + ldr r1, _08141014 + adds r0, r0, r1 + adds r0, #8 + movs r1, #1 + bl sub_08140D70 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08140E96 + b _08141002 +_08140E96: + ldrh r1, [r4, #0x2e] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08140EBC + movs r5, #1 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + ldr r1, _08141014 + adds r0, r0, r1 + adds r0, #8 + movs r1, #2 + bl sub_08140D70 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08140EBC + b _08141002 +_08140EBC: + ldrh r1, [r4, #0x2e] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08140EE2 + movs r5, #1 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + ldr r1, _08141014 + adds r0, r0, r1 + adds r0, #8 + movs r1, #3 + bl sub_08140D70 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08140EE2 + b _08141002 +_08140EE2: + cmp r5, #0 + bne _08140EE8 + b _08141002 +_08140EE8: + ldr r0, _08141018 + lsls r6, r7, #2 + adds r4, r6, r7 + lsls r4, r4, #3 + adds r4, r4, r0 + ldrb r0, [r4, #0x10] + bl sub_081425C4 + adds r0, r7, #0 + bl sub_08140C2C + mov r1, sb + strh r1, [r4, #0xa] + movs r0, #5 + bl PlaySE + ldr r5, _0814101C + ldr r0, [r5] + adds r0, #0xb8 + ldr r1, _08141020 + bl sub_08151A78 + ldr r5, [r5] + movs r2, #0xb8 + lsls r2, r2, #1 + adds r3, r5, r2 + ldrb r2, [r3] + movs r1, #0x7f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3] + movs r0, #0xb2 + lsls r0, r0, #1 + adds r3, r5, r0 + ldrb r2, [r3] + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3] + movs r0, #0xac + lsls r0, r0, #1 + adds r2, r5, r0 + ldrb r0, [r2] + ands r1, r0 + strb r1, [r2] + ldrb r0, [r4, #0x10] + bl sub_0814234C + movs r4, #0 + mov sb, r6 + ldr r1, _08141024 + mov ip, r1 + movs r2, #8 + add r2, ip + mov sl, r2 +_08140F54: + ldr r0, _0814101C + ldr r5, [r0] + adds r0, r4, #0 + adds r0, #0x29 + adds r6, r5, #0 + adds r6, #0x3c + adds r0, r6, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + mov r1, ip + adds r3, r0, r1 + adds r2, r3, #0 + adds r2, #0x40 + add r0, sl + ldr r0, [r0] + ldr r0, [r0] + ldrh r1, [r0] + ldrh r2, [r2] + adds r1, r1, r2 + ldr r2, _08141028 + mov r8, r2 + mov r0, r8 + ands r1, r0 + ldrh r2, [r3, #4] + ldr r0, _0814102C + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #4] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _08140F54 + ldr r0, _08141018 + mov r2, sb + adds r1, r2, r7 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r3, [r1, #0x10] + subs r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #3 + bhi _08141002 + ldr r2, _08141030 + movs r0, #0x10 + ldrsh r1, [r1, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #8 + adds r0, r0, r2 + ldr r1, [r5, #8] + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _08141002 + subs r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + adds r0, #0x29 + adds r0, r6, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08141024 + adds r3, r0, r1 + adds r2, r3, #0 + adds r2, #0x40 + adds r1, #8 + adds r0, r0, r1 + ldr r0, [r0] + ldr r0, [r0] + ldrh r1, [r0, #4] + ldrh r2, [r2] + adds r1, r1, r2 + mov r2, r8 + ands r1, r2 + ldrh r2, [r3, #4] + ldr r0, _0814102C + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #4] +_08141002: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08141010: .4byte 0x03002360 +_08141014: .4byte 0x03005B68 +_08141018: .4byte 0x03005B60 +_0814101C: .4byte 0x0203A854 +_08141020: .4byte 0x0000FFFF +_08141024: .4byte 0x020205AC +_08141028: .4byte 0x000003FF +_0814102C: .4byte 0xFFFFFC00 +_08141030: .4byte 0x08595D00 + thumb_func_end sub_08140E34 + + thumb_func_start sub_08141034 +sub_08141034: @ 0x08141034 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl sub_080EF7A8 + ldr r0, _08141054 + ldr r1, [r0] + movs r0, #0xff + strh r0, [r1, #0x28] + ldrb r2, [r1, #0x19] + cmp r2, #1 + bne _08141058 + adds r0, r1, #0 + adds r0, #0x23 + strb r2, [r0] + b _0814105E + .align 2, 0 +_08141054: .4byte 0x0203A854 +_08141058: + adds r1, #0x23 + movs r0, #0 + strb r0, [r1] +_0814105E: + ldr r0, _08141080 + ldr r0, [r0] + adds r0, #0x21 + movs r1, #0 + strb r1, [r0] + ldr r1, _08141084 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0x20 + strh r1, [r0, #0xa] + ldr r1, _08141088 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08141080: .4byte 0x0203A854 +_08141084: .4byte 0x03005B60 +_08141088: .4byte 0x081411C5 + thumb_func_end sub_08141034 + + thumb_func_start sub_0814108C +sub_0814108C: @ 0x0814108C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _081410FC + ldr r2, [r4] + ldrb r1, [r2, #0x1a] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + adds r2, #0x1b + adds r2, r2, r1 + ldr r3, _08141100 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r5, r1, r3 + ldrh r0, [r5, #0x10] + strb r0, [r2] + ldr r1, [r4] + ldrb r0, [r1, #0x1a] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + adds r1, #0x1b + adds r1, r1, r0 + ldrb r0, [r1] + bl sub_08142820 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0xc] + ldr r1, [r4] + ldrb r0, [r1, #0x1a] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + adds r1, #0x1b + adds r1, r1, r0 + ldrb r0, [r1] + bl sub_0814379C + ldr r0, [r4] + ldrb r1, [r0, #0x19] + ldrh r0, [r5, #0x22] + subs r0, r0, r1 + strh r0, [r5, #0x22] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _081410EC + movs r0, #0 + strh r0, [r5, #0x22] +_081410EC: + ldrh r0, [r5, #0x22] + bl sub_081435E0 + ldr r0, _08141104 + str r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081410FC: .4byte 0x0203A854 +_08141100: .4byte 0x03005B60 +_08141104: .4byte 0x08141035 + thumb_func_end sub_0814108C + + thumb_func_start sub_08141108 +sub_08141108: @ 0x08141108 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r5, #0 + bl sub_08140E34 + ldr r1, _08141130 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0x1e + beq _0814113E + cmp r0, #0x1e + bgt _08141134 + cmp r0, #0 + beq _0814113A + b _08141152 + .align 2, 0 +_08141130: .4byte 0x03005B60 +_08141134: + cmp r0, #0x3b + beq _0814114C + b _08141152 +_0814113A: + ldrb r0, [r4, #0x10] + b _08141140 +_0814113E: + movs r0, #0 +_08141140: + bl sub_08140A80 + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + b _08141162 +_0814114C: + movs r0, #0 + strh r0, [r4, #0xa] + b _08141162 +_08141152: + ldr r0, _081411A0 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #0xa] + adds r0, #1 + strh r0, [r1, #0xa] +_08141162: + ldr r0, _081411A4 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081411BA + ldr r0, _081411A8 + ldr r3, [r0] + ldr r2, _081411AC + ldr r1, _081411A0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r0, #0x10 + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #8 + adds r0, r0, r2 + ldr r1, [r3, #8] + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _081411B0 + movs r0, #0x16 + bl PlaySE + b _081411BA + .align 2, 0 +_081411A0: .4byte 0x03005B60 +_081411A4: .4byte 0x03002360 +_081411A8: .4byte 0x0203A854 +_081411AC: .4byte 0x08595D00 +_081411B0: + movs r0, #0x5f + bl m4aSongNumStart + ldr r0, _081411C0 + str r0, [r4] +_081411BA: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081411C0: .4byte 0x0814108D + thumb_func_end sub_08141108 + + thumb_func_start sub_081411C4 +sub_081411C4: @ 0x081411C4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0814121C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 + ldrh r0, [r4, #0xa] + subs r1, r0, #1 + strh r1, [r4, #0xa] + lsls r0, r0, #0x10 + cmp r0, #0 + ble _08141230 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + ble _081411F0 + ldr r1, _08141220 + ldrh r0, [r1] + adds r0, #2 + strh r0, [r1] +_081411F0: + ldr r0, _08141224 + ldr r1, [r0] + ldrh r0, [r1, #0x26] + adds r0, #4 + strh r0, [r1, #0x26] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x68 + bne _08141248 + ldr r2, _08141228 + adds r0, r1, #0 + adds r0, #0x55 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, _0814122C + str r1, [r0] + b _08141248 + .align 2, 0 +_0814121C: .4byte 0x03005B60 +_08141220: .4byte 0x02021B38 +_08141224: .4byte 0x0203A854 +_08141228: .4byte 0x020205AC +_0814122C: .4byte 0x08007141 +_08141230: + movs r0, #1 + movs r1, #0xff + bl sub_08142F3C + movs r0, #1 + movs r1, #0xff + bl sub_08143104 + ldr r0, _08141250 + str r0, [r4] + movs r0, #0 + strh r0, [r4, #0xa] +_08141248: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08141250: .4byte 0x0814140D + thumb_func_end sub_081411C4 + + thumb_func_start sub_08141254 +sub_08141254: @ 0x08141254 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, _08141270 + ldr r3, [r0] + ldrb r2, [r3, #2] + adds r5, r0, #0 + cmp r2, #2 + bgt _08141274 + cmp r2, #1 + bge _0814127A + b _08141348 + .align 2, 0 +_08141270: .4byte 0x0203A854 +_08141274: + cmp r2, #3 + beq _081412DC + b _08141348 +_0814127A: + ldr r0, _081412A4 + ldrb r0, [r0, #2] + subs r0, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + bhi _081412AC + cmp r4, #0xb + bls _08141294 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0814135E +_08141294: + ldr r0, _081412A8 + ldrb r1, [r3, #4] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x19 + adds r1, r1, r0 + ldrb r0, [r1, #2] + lsrs r0, r0, #1 + b _08141402 + .align 2, 0 +_081412A4: .4byte 0x03005A50 +_081412A8: .4byte 0x08595EF4 +_081412AC: + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _081412C8 + ldr r0, _081412C4 + ldrb r1, [r3, #4] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x19 + adds r1, r1, r0 + ldrb r0, [r1, #2] + lsrs r0, r0, #1 + b _08141402 + .align 2, 0 +_081412C4: .4byte 0x08595EF4 +_081412C8: + ldr r0, _081412D8 + ldrb r1, [r3, #4] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x19 + adds r1, r1, r0 + ldrb r0, [r1, #2] + b _08141402 + .align 2, 0 +_081412D8: .4byte 0x08595EF4 +_081412DC: + ldr r0, _08141308 + ldrb r0, [r0, #2] + subs r0, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #6 + bhi _08141310 + cmp r4, #5 + bls _081412F6 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0814135E +_081412F6: + ldr r0, _0814130C + ldrb r1, [r3, #4] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x19 + adds r1, r1, r0 + ldrb r0, [r1, #2] + lsrs r0, r0, #1 + b _08141402 + .align 2, 0 +_08141308: .4byte 0x03005A50 +_0814130C: .4byte 0x08595EF4 +_08141310: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08141330 + cmp r4, #6 + bls _08141330 + ldr r0, _0814132C + ldrb r1, [r3, #4] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x19 + adds r1, r1, r0 + ldrb r0, [r1, #2] + lsrs r0, r0, #2 + b _08141402 + .align 2, 0 +_0814132C: .4byte 0x08595EF4 +_08141330: + ldr r1, _08141344 + ldr r0, [r5] + ldrb r0, [r0, #4] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x19 + adds r0, r0, r1 + ldrb r0, [r0, #2] + lsrs r0, r0, #1 + b _08141402 + .align 2, 0 +_08141344: .4byte 0x08595EF4 +_08141348: + ldr r0, _08141364 + ldrb r0, [r0, #2] + subs r0, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + bhi _08141380 + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _08141368 +_0814135E: + movs r0, #1 + b _08141402 + .align 2, 0 +_08141364: .4byte 0x03005A50 +_08141368: + ldr r1, _0814137C + ldr r0, [r5] + ldrb r0, [r0, #4] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x19 + adds r0, r0, r1 + ldrb r0, [r0, #2] + lsrs r0, r0, #1 + b _08141402 + .align 2, 0 +_0814137C: .4byte 0x08595EF4 +_08141380: + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _081413B8 + cmp r4, #0xc + bls _081413A4 + ldr r1, _081413A0 + ldr r0, [r5] + ldrb r0, [r0, #4] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x19 + adds r0, r0, r1 + ldrb r0, [r0, #2] + lsrs r0, r0, #1 + b _08141402 + .align 2, 0 +_081413A0: .4byte 0x08595EF4 +_081413A4: + ldr r1, _081413B4 + ldr r0, [r5] + ldrb r0, [r0, #4] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x19 + adds r0, r0, r1 + ldrb r0, [r0, #2] + b _08141402 + .align 2, 0 +_081413B4: .4byte 0x08595EF4 +_081413B8: + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + beq _081413F0 + cmp r4, #0xc + bls _081413DC + ldr r1, _081413D8 + ldr r0, [r5] + ldrb r0, [r0, #4] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x19 + adds r0, r0, r1 + ldrb r0, [r0, #2] + b _08141402 + .align 2, 0 +_081413D8: .4byte 0x08595EF4 +_081413DC: + ldr r1, _081413EC + ldr r0, [r5] + ldrb r0, [r0, #4] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x19 + adds r0, r0, r1 + ldrb r0, [r0, #1] + b _08141402 + .align 2, 0 +_081413EC: .4byte 0x08595EF4 +_081413F0: + ldr r1, _08141408 + ldr r0, [r5] + ldrb r0, [r0, #4] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x19 + adds r0, r0, r1 + ldrb r0, [r0, #1] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x18 +_08141402: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08141408: .4byte 0x08595EF4 + thumb_func_end sub_08141254 + + thumb_func_start sub_0814140C +sub_0814140C: @ 0x0814140C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + movs r4, #0 + ldr r1, _08141498 + mov r0, sp + movs r2, #8 + bl memcpy + bl Random + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + adds r0, r7, #0 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r3, _0814149C + ldr r0, [r3] + ldr r2, _081414A0 + mov r5, sl + lsls r1, r5, #2 + add r1, sl + lsls r1, r1, #3 + adds r1, r1, r2 + ldrh r2, [r1, #0x14] + adds r0, #0x7c + strb r2, [r0] + ldr r0, [r3] + adds r2, r0, #0 + adds r2, #0x7f + strb r4, [r2] + subs r2, #1 + strb r4, [r2] + adds r0, #0x7d + strb r4, [r0] + ldrh r0, [r1, #0x18] + adds r1, r7, #0 + bl sub_08141254 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r1, r4, #0x18 + adds r0, r7, #0 + bl __modsi3 + lsrs r4, r4, #0x19 + subs r0, r0, r4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _081414A4 + ldrb r0, [r0, #2] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r5, #1 + cmp r0, #0xc + bgt _08141490 + movs r5, #0 +_08141490: + cmp r6, #0x4f + bhi _081414A8 + lsls r0, r5, #0x19 + b _081414B2 + .align 2, 0 +_08141498: .4byte 0x08595FD6 +_0814149C: .4byte 0x0203A854 +_081414A0: .4byte 0x03005B60 +_081414A4: .4byte 0x03005A50 +_081414A8: + lsls r1, r5, #0x18 + asrs r1, r1, #0x18 + movs r0, #1 + subs r0, r0, r1 + lsls r0, r0, #0x19 +_081414B2: + lsrs r5, r0, #0x18 + ldr r0, _081415F8 + ldr r6, [r0] + ldrb r0, [r6, #4] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x19 + ldr r1, _081415FC + adds r0, r0, r1 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + ldrh r0, [r0, #0x1a] + adds r4, r4, r0 + adds r0, r6, #0 + adds r0, #0x80 + strh r4, [r0] + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + adds r0, r4, #0 + bl __floatsisf + cmp r4, #0 + bge _081414E4 + ldr r1, _08141600 + bl __addsf3 +_081414E4: + ldr r1, _08141604 + bl __divsf3 + bl __fixunssfsi + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + lsls r0, r4, #1 + adds r0, r0, r4 + movs r2, #0x82 + adds r2, r2, r6 + mov r8, r2 + strh r0, [r2] + adds r0, r6, #0 + adds r0, #0x84 + strh r4, [r0] + adds r0, #2 + strh r4, [r0] + movs r0, #0x88 + adds r0, r0, r6 + mov sb, r0 + movs r0, #1 + ands r0, r7 + lsls r1, r5, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + lsls r0, r0, #1 + add r0, sp + movs r1, #0 + ldrsh r4, [r0, r1] + adds r0, r4, #0 + bl __floatsisf + cmp r4, #0 + bge _08141530 + ldr r1, _08141600 + bl __addsf3 +_08141530: + mov r2, sb + str r0, [r2] + adds r7, r6, #0 + adds r7, #0x8c + ldrb r0, [r6, #4] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x19 + ldr r5, _081415FC + adds r0, r0, r5 + movs r1, #0x18 + ldrsh r4, [r0, r1] + adds r0, r4, #0 + bl __floatsisf + adds r5, r0, #0 + cmp r4, #0 + bge _0814155A + ldr r1, _08141600 + bl __addsf3 + adds r5, r0, #0 +_0814155A: + str r5, [r7] + adds r7, r6, #0 + adds r7, #0x90 + ldr r1, _08141608 + adds r0, r5, #0 + bl __mulsf3 + adds r1, r5, #0 + bl __subsf3 + adds r5, r0, #0 + mov r2, r8 + movs r0, #0 + ldrsh r4, [r2, r0] + adds r0, r4, #0 + bl __floatsisf + adds r2, r0, #0 + cmp r4, #0 + bge _0814158A + ldr r1, _08141600 + bl __addsf3 + adds r2, r0, #0 +_0814158A: + adds r0, r5, #0 + adds r1, r2, #0 + bl __divsf3 + str r0, [r7] + adds r1, r6, #0 + adds r1, #0x94 + ldr r0, _0814160C + str r0, [r1] + adds r1, #8 + ldr r0, _08141610 + str r0, [r1] + adds r5, r6, #0 + adds r5, #0x98 + mov r1, r8 + movs r2, #0 + ldrsh r4, [r1, r2] + adds r0, r4, #0 + bl __floatsisf + adds r2, r0, #0 + cmp r4, #0 + bge _081415C0 + ldr r1, _08141600 + bl __addsf3 + adds r2, r0, #0 +_081415C0: + ldr r0, _08141614 + adds r1, r2, #0 + bl __divsf3 + bl __negsf2 + str r0, [r5] + adds r1, r6, #0 + adds r1, #0xa0 + ldr r0, _08141618 + str r0, [r1] + ldr r1, _0814161C + mov r5, sl + lsls r0, r5, #2 + add r0, sl + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08141620 + str r1, [r0] + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081415F8: .4byte 0x0203A854 +_081415FC: .4byte 0x08595EF4 +_08141600: .4byte 0x47800000 +_08141604: .4byte 0x40A00000 +_08141608: .4byte 0x3F000000 +_0814160C: .4byte 0x42880000 +_08141610: .4byte 0x00000000 +_08141614: .4byte 0x41000000 +_08141618: .4byte 0x42100000 +_0814161C: .4byte 0x03005B60 +_08141620: .4byte 0x08141625 + thumb_func_end sub_0814140C + + thumb_func_start sub_08141624 +sub_08141624: @ 0x08141624 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _08141688 + ldr r3, [r4] + ldrb r1, [r3, #3] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r3, #3] + ldr r3, [r4] + adds r2, r3, #0 + adds r2, #0x7c + adds r1, r3, #0 + adds r1, #0x3c + ldrb r2, [r2] + adds r1, r1, r2 + ldrb r2, [r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + ldr r2, _0814168C + adds r1, r1, r2 + str r1, [r3, #0x38] + ldr r2, _08141690 + str r2, [r1, #0x1c] + ldr r1, _08141694 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + adds r4, r4, r1 + ldrh r1, [r4, #0x14] + adds r1, #1 + strh r1, [r4, #0x14] + ldrh r0, [r4, #0x18] + adds r0, #1 + strh r0, [r4, #0x18] + movs r0, #6 + subs r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_081437F8 + movs r0, #0x5c + bl m4aSongNumStart + ldr r0, _08141698 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08141688: .4byte 0x0203A854 +_0814168C: .4byte 0x020205AC +_08141690: .4byte 0x08144779 +_08141694: .4byte 0x03005B60 +_08141698: .4byte 0x0814169D + thumb_func_end sub_08141624 + + thumb_func_start sub_0814169C +sub_0814169C: @ 0x0814169C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r6, _081416D8 + ldr r3, [r6] + adds r0, r3, #0 + adds r0, #0x7d + ldrb r0, [r0] + cmp r0, #0 + beq _0814178E + ldrb r1, [r3, #3] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _081416DC + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0814178E + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3, #3] + ldr r2, [r6] + ldrb r1, [r2, #3] + movs r0, #0x21 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #3] + b _0814178E + .align 2, 0 +_081416D8: .4byte 0x0203A854 +_081416DC: + ldr r2, _08141750 + lsls r1, r4, #2 + adds r0, r1, r4 + lsls r0, r0, #3 + adds r5, r0, r2 + movs r2, #0xa + ldrsh r0, [r5, r2] + adds r7, r1, #0 + cmp r0, #0 + bne _08141728 + adds r0, r3, #0 + adds r0, #0x7e + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08142198 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, [r6] + ldrb r1, [r2, #0x1a] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + adds r2, #0x1b + adds r2, r2, r1 + ldrb r1, [r2] + bl sub_081422B0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x12] + cmp r0, #1 + bne _08141728 + ldr r0, [r6] + adds r0, #0xb8 + movs r1, #0x80 + lsls r1, r1, #5 + bl sub_08151A24 +_08141728: + ldr r0, _08141750 + adds r1, r7, r4 + lsls r1, r1, #3 + adds r4, r1, r0 + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0x3c + bgt _08141758 + ldr r0, _08141754 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08141748 + movs r0, #0x3c + strh r0, [r4, #0xa] +_08141748: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + b _0814178E + .align 2, 0 +_08141750: .4byte 0x03005B60 +_08141754: .4byte 0x03002360 +_08141758: + ldr r0, _08141794 + ldr r1, [r0] + ldrb r0, [r1, #0x1a] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + adds r1, #0x1b + adds r1, r1, r0 + ldrb r0, [r1] + bl sub_081425C4 + ldrh r1, [r4, #0x20] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0 + bl sub_08142F3C + ldrb r1, [r4, #0x14] + subs r1, #1 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0 + bl sub_08143104 + movs r0, #0x20 + strh r0, [r4, #0xa] + ldr r0, _08141798 + str r0, [r4] +_0814178E: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08141794: .4byte 0x0203A854 +_08141798: .4byte 0x0814179D + thumb_func_end sub_0814169C + + thumb_func_start sub_0814179C +sub_0814179C: @ 0x0814179C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _081417F4 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrh r0, [r4, #0xa] + subs r1, r0, #1 + strh r1, [r4, #0xa] + lsls r0, r0, #0x10 + cmp r0, #0 + ble _08141808 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + ble _081417C8 + ldr r1, _081417F8 + ldrh r0, [r1] + subs r0, #2 + strh r0, [r1] +_081417C8: + ldr r0, _081417FC + ldr r1, [r0] + ldrh r0, [r1, #0x26] + subs r0, #4 + strh r0, [r1, #0x26] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x68 + bne _08141830 + ldr r2, _08141800 + adds r0, r1, #0 + adds r0, #0x55 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, _08141804 + str r1, [r0] + b _08141830 + .align 2, 0 +_081417F4: .4byte 0x03005B60 +_081417F8: .4byte 0x02021B38 +_081417FC: .4byte 0x0203A854 +_08141800: .4byte 0x020205AC +_08141804: .4byte 0x081439D9 +_08141808: + ldrh r0, [r4, #0x20] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_0814321C + movs r1, #0x12 + ldrsh r0, [r4, r1] + cmp r0, #1 + bne _0814181E + movs r0, #0x79 + b _08141820 +_0814181E: + movs r0, #0x3d +_08141820: + strh r0, [r4, #0xa] + ldr r0, _08141838 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _0814183C + str r0, [r1] +_08141830: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08141838: .4byte 0x03005B60 +_0814183C: .4byte 0x08141841 + thumb_func_end sub_0814179C + + thumb_func_start sub_08141840 +sub_08141840: @ 0x08141840 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _08141890 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r4, r0, r1 + ldrh r0, [r4, #0xa] + subs r1, r0, #1 + strh r1, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _081418B0 + movs r0, #0xa + ldrsh r1, [r4, r0] + adds r0, r1, #0 + cmp r1, #0 + bge _0814186A + adds r0, #0xf +_0814186A: + asrs r0, r0, #4 + lsls r0, r0, #4 + subs r0, r1, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + beq _08141894 + cmp r0, #8 + bne _081418BC + movs r0, #0 + movs r1, #0xff + bl sub_08142F3C + movs r0, #0 + movs r1, #0xff + bl sub_08143104 + b _081418BC + .align 2, 0 +_08141890: .4byte 0x03005B60 +_08141894: + ldrh r1, [r4, #0x20] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0 + bl sub_08142F3C + ldrb r1, [r4, #0x14] + subs r1, #1 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0 + bl sub_08143104 + b _081418BC +_081418B0: + ldr r1, _081418C4 + adds r0, r2, #0 + movs r2, #0x1e + movs r3, #0 + bl sub_08142044 +_081418BC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081418C4: .4byte 0x08141965 + thumb_func_end sub_08141840 + + thumb_func_start sub_081418C8 +sub_081418C8: @ 0x081418C8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _08141920 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #0x12 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0814192C + cmp r0, #0 + blt _0814192C + cmp r0, #2 + bgt _0814192C + bl IsFanfareTaskInactive + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08141950 + movs r0, #0x1d + bl GetGameStat + ldrh r1, [r4, #0x1e] + adds r1, #1 + strh r1, [r4, #0x1e] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r0, r1 + bhs _08141910 + movs r0, #0x1e + ldrsh r1, [r4, r0] + movs r0, #0x1d + bl SetGameStat +_08141910: + ldr r1, _08141924 + ldr r2, _08141928 + adds r0, r5, #0 + movs r3, #3 + bl sub_08142044 + b _08141950 + .align 2, 0 +_08141920: .4byte 0x03005B60 +_08141924: .4byte 0x08141AE1 +_08141928: .4byte 0x0000FFFF +_0814192C: + bl IsSEPlaying + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _08141950 + ldr r1, _08141958 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r2, [r0, #0x1e] + ldr r1, _0814195C + ldr r2, _08141960 + adds r0, r5, #0 + movs r3, #3 + bl sub_08142044 +_08141950: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08141958: .4byte 0x03005B60 +_0814195C: .4byte 0x08141B89 +_08141960: .4byte 0x0000FFFF + thumb_func_end sub_081418C8 + + thumb_func_start sub_08141964 +sub_08141964: @ 0x08141964 + push {r4, r5, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _081419A4 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #0x12 + ldrsh r1, [r0, r2] + cmp r1, #0 + beq _081419F0 + cmp r1, #0 + blt _081419F0 + cmp r1, #2 + bgt _081419F0 + movs r1, #0xc + ldrsh r0, [r0, r1] + cmp r0, #0xc + bne _081419B4 + ldr r0, _081419A8 + bl PlayFanfare + ldr r4, _081419AC + ldrb r0, [r4] + movs r1, #0 + bl ClearStdWindowAndFrame + ldrb r0, [r4] + ldr r2, _081419B0 + b _081419CA + .align 2, 0 +_081419A4: .4byte 0x03005B60 +_081419A8: .4byte 0x00000185 +_081419AC: .4byte 0x0203A858 +_081419B0: .4byte 0x08262D6C +_081419B4: + movs r0, #0xc3 + lsls r0, r0, #1 + bl PlayFanfare + ldr r4, _081419E8 + ldrb r0, [r4] + movs r1, #0 + bl ClearStdWindowAndFrame + ldrb r0, [r4] + ldr r2, _081419EC +_081419CA: + movs r1, #2 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + movs r3, #2 + bl AddTextPrinterParameterized + ldrb r0, [r4] + movs r1, #3 + bl CopyWindowToVram + b _08141A20 + .align 2, 0 +_081419E8: .4byte 0x0203A858 +_081419EC: .4byte 0x08262D66 +_081419F0: + movs r0, #0x20 + bl m4aSongNumStart + ldr r4, _08141A3C + ldrb r0, [r4] + movs r1, #0 + bl ClearStdWindowAndFrame + ldrb r0, [r4] + ldr r2, _08141A40 + movs r1, #2 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + movs r3, #2 + bl AddTextPrinterParameterized + ldrb r0, [r4] + movs r1, #3 + bl CopyWindowToVram +_08141A20: + ldr r1, _08141A44 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #0xa] + ldr r1, _08141A48 + str r1, [r0] + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08141A3C: .4byte 0x0203A858 +_08141A40: .4byte 0x08262D74 +_08141A44: .4byte 0x03005B60 +_08141A48: .4byte 0x081418C9 + thumb_func_end sub_08141964 + + thumb_func_start sub_08141A4C +sub_08141A4C: @ 0x08141A4C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _08141A70 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r0, #0x16 + ldrsh r5, [r4, r0] + cmp r5, #0 + beq _08141A74 + cmp r5, #3 + beq _08141AA4 + ldrh r0, [r4, #0x16] + adds r0, #1 + b _08141AAC + .align 2, 0 +_08141A70: .4byte 0x03005B60 +_08141A74: + ldrh r0, [r4, #0x22] + adds r0, #1 + strh r0, [r4, #0x22] + movs r0, #0x15 + bl m4aSongNumStart + ldrh r0, [r4, #0x22] + bl sub_081435E0 + movs r2, #0x22 + ldrsh r1, [r4, r2] + ldr r0, _08141A94 + cmp r1, r0 + ble _08141A98 + strh r5, [r4, #0xa] + b _08141AAE + .align 2, 0 +_08141A94: .4byte 0x0000270E +_08141A98: + ldrh r0, [r4, #0xa] + subs r0, #1 + strh r0, [r4, #0xa] + ldrh r0, [r4, #0x16] + adds r0, #1 + b _08141AAC +_08141AA4: + movs r0, #0x15 + bl m4aSongNumStop + movs r0, #0 +_08141AAC: + strh r0, [r4, #0x16] +_08141AAE: + ldr r0, _08141AD4 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r2, #0xa + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _08141ACC + ldr r1, _08141AD8 + ldr r2, _08141ADC + adds r0, r6, #0 + movs r3, #3 + bl sub_08142044 +_08141ACC: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08141AD4: .4byte 0x03005B60 +_08141AD8: .4byte 0x08141B89 +_08141ADC: .4byte 0x0000FFFF + thumb_func_end sub_08141A4C + + thumb_func_start sub_08141AE0 +sub_08141AE0: @ 0x08141AE0 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _08141B6C + ldr r1, _08141B70 + mov sb, r1 + ldr r1, [r1] + ldrb r2, [r1, #0x19] + ldr r1, _08141B74 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + adds r4, r4, r1 + movs r1, #0xc + ldrsh r0, [r4, r1] + adds r1, r2, #0 + muls r1, r0, r1 + adds r0, r3, #0 + movs r2, #0 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r2, _08141B78 + mov r8, r2 + ldr r1, _08141B7C + mov r0, r8 + bl StringExpandPlaceholders + ldr r5, _08141B80 + ldrb r0, [r5] + movs r1, #0 + bl ClearStdWindowAndFrame + ldrb r0, [r5] + movs r1, #2 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r6, #0 + str r6, [sp, #8] + movs r1, #1 + mov r2, r8 + movs r3, #2 + bl AddTextPrinterParameterized + ldrb r0, [r5] + movs r1, #3 + bl CopyWindowToVram + mov r1, sb + ldr r0, [r1] + ldrb r1, [r0, #0x19] + movs r2, #0xc + ldrsh r0, [r4, r2] + muls r0, r1, r0 + strh r0, [r4, #0xa] + strh r6, [r4, #0x16] + ldr r0, _08141B84 + str r0, [r4] + add sp, #0xc + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08141B6C: .4byte 0x02021C40 +_08141B70: .4byte 0x0203A854 +_08141B74: .4byte 0x03005B60 +_08141B78: .4byte 0x02021C7C +_08141B7C: .4byte 0x08262D79 +_08141B80: .4byte 0x0203A858 +_08141B84: .4byte 0x08141A4D + thumb_func_end sub_08141AE0 + + thumb_func_start sub_08141B88 +sub_08141B88: @ 0x08141B88 + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r5, _08141C08 + ldr r0, [r5] + adds r0, #0xb8 + ldr r1, _08141C0C + bl sub_08151A78 + ldr r6, [r5] + movs r0, #0xb8 + lsls r0, r0, #1 + adds r3, r6, r0 + ldrb r2, [r3] + movs r1, #0x7f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3] + movs r0, #0xb2 + lsls r0, r0, #1 + adds r3, r6, r0 + ldrb r2, [r3] + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3] + movs r0, #0xac + lsls r0, r0, #1 + adds r2, r6, r0 + ldrb r0, [r2] + ands r1, r0 + strb r1, [r2] + ldr r6, _08141C10 + ldr r2, [r5] + ldr r5, _08141C14 + ldr r0, _08141C18 + lsls r3, r4, #2 + adds r3, r3, r4 + lsls r3, r3, #3 + adds r3, r3, r0 + movs r0, #0x20 + ldrsh r1, [r3, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r0, [r0] + adds r2, r2, r0 + adds r2, #0x43 + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + ldr r0, _08141C1C + str r0, [r3] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08141C08: .4byte 0x0203A854 +_08141C0C: .4byte 0x0000FFFF +_08141C10: .4byte 0x020205AC +_08141C14: .4byte 0x08595D00 +_08141C18: .4byte 0x03005B60 +_08141C1C: .4byte 0x08141C21 + thumb_func_end sub_08141B88 + + thumb_func_start sub_08141C20 +sub_08141C20: @ 0x08141C20 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r5, #0 + ldr r1, _08141D00 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #0 + strh r5, [r0, #0x10] + ldr r4, _08141D04 + ldr r1, [r4] + ldrb r0, [r1, #0x1a] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + adds r1, #0x1b + adds r1, r1, r0 + strb r2, [r1] + movs r0, #0 + bl sub_081425C4 + ldr r3, _08141D08 + ldr r0, [r4] + adds r0, #0x6c + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + adds r7, r3, #0 + movs r0, #8 + adds r0, r0, r7 + mov ip, r0 + ldr r1, _08141D0C + mov r8, r1 +_08141C78: + ldr r0, _08141D04 + ldr r4, [r0] + adds r0, r4, r5 + adds r0, #0x65 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r3, r0, r7 + adds r2, r3, #0 + adds r2, #0x40 + add r0, ip + ldr r0, [r0] + ldr r0, [r0] + ldrh r1, [r0] + ldrh r2, [r2] + adds r1, r1, r2 + ldr r2, _08141D10 + adds r0, r2, #0 + ands r1, r0 + ldrh r2, [r3, #4] + mov r0, r8 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #4] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #3 + bls _08141C78 + ldr r0, _08141D00 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r2, r1, r0 + movs r1, #0x22 + ldrsh r0, [r2, r1] + ldrb r4, [r4, #0x19] + cmp r0, r4 + blt _08141D84 + movs r1, #0x14 + ldrsh r0, [r2, r1] + cmp r0, #6 + bne _08141D20 + ldr r4, _08141D14 + ldrb r0, [r4] + movs r1, #0 + bl ClearStdWindowAndFrame + ldrb r0, [r4] + ldr r2, _08141D18 + movs r1, #2 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + movs r3, #2 + bl AddTextPrinterParameterized + ldrb r0, [r4] + movs r1, #3 + bl CopyWindowToVram + ldr r1, _08141D1C + b _08141D56 + .align 2, 0 +_08141D00: .4byte 0x03005B60 +_08141D04: .4byte 0x0203A854 +_08141D08: .4byte 0x020205AC +_08141D0C: .4byte 0xFFFFFC00 +_08141D10: .4byte 0x000003FF +_08141D14: .4byte 0x0203A858 +_08141D18: .4byte 0x08262DB0 +_08141D1C: .4byte 0x08141DD5 +_08141D20: + movs r0, #0x22 + ldrsh r1, [r2, r0] + ldr r0, _08141D64 + cmp r1, r0 + bne _08141D78 + ldr r4, _08141D68 + ldrb r0, [r4] + movs r1, #0 + bl ClearStdWindowAndFrame + ldrb r0, [r4] + ldr r2, _08141D6C + movs r1, #2 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + movs r3, #2 + bl AddTextPrinterParameterized + ldrb r0, [r4] + movs r1, #3 + bl CopyWindowToVram + ldr r1, _08141D70 +_08141D56: + ldr r2, _08141D74 + adds r0, r6, #0 + movs r3, #3 + bl sub_08142044 + b _08141DBA + .align 2, 0 +_08141D64: .4byte 0x0000270F +_08141D68: .4byte 0x0203A858 +_08141D6C: .4byte 0x08262DD5 +_08141D70: .4byte 0x081409DD +_08141D74: .4byte 0x0000FFFF +_08141D78: + ldr r0, _08141D80 + str r0, [r2] + b _08141DBA + .align 2, 0 +_08141D80: .4byte 0x081409DD +_08141D84: + ldr r4, _08141DC8 + ldrb r0, [r4] + movs r1, #0 + bl ClearStdWindowAndFrame + ldrb r0, [r4] + ldr r2, _08141DCC + movs r1, #2 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + movs r3, #2 + bl AddTextPrinterParameterized + ldrb r0, [r4] + movs r1, #3 + bl CopyWindowToVram + ldr r1, _08141DD0 + adds r0, r6, #0 + movs r2, #0x3c + movs r3, #3 + bl sub_08142044 +_08141DBA: + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08141DC8: .4byte 0x0203A858 +_08141DCC: .4byte 0x08262D96 +_08141DD0: .4byte 0x08140A5D + thumb_func_end sub_08141C20 + + thumb_func_start dp01t_12_3_battle_menu +dp01t_12_3_battle_menu: @ 0x08141DD4 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r4, #0 + ldr r1, _08141E7C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r4, [r0, #0x14] + adds r0, r5, #0 + bl sub_081420BC + bl sub_08142138 + bl sub_08143B0C + movs r0, #0 + bl sub_081425C4 + movs r0, #6 + bl sub_081437F8 + ldr r7, _08141E80 + ldr r3, _08141E84 + movs r6, #5 + rsbs r6, r6, #0 +_08141E0C: + ldr r0, [r3] + adds r0, r0, r4 + adds r0, #0x43 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r7 + adds r1, #0x3e + ldrb r2, [r1] + adds r0, r6, #0 + ands r0, r2 + strb r0, [r1] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xb + bls _08141E0C + ldr r1, _08141E7C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r2, r0, r1 + movs r0, #0x22 + ldrsh r1, [r2, r0] + ldr r0, _08141E88 + cmp r1, r0 + bne _08141E9C + ldr r4, _08141E8C + ldrb r0, [r4] + movs r1, #0 + bl ClearStdWindowAndFrame + ldrb r0, [r4] + ldr r2, _08141E90 + movs r1, #2 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + movs r3, #2 + bl AddTextPrinterParameterized + ldrb r0, [r4] + movs r1, #3 + bl CopyWindowToVram + ldr r1, _08141E94 + ldr r2, _08141E98 + adds r0, r5, #0 + movs r3, #3 + bl sub_08142044 + b _08141EA0 + .align 2, 0 +_08141E7C: .4byte 0x03005B60 +_08141E80: .4byte 0x020205AC +_08141E84: .4byte 0x0203A854 +_08141E88: .4byte 0x0000270F +_08141E8C: .4byte 0x0203A858 +_08141E90: .4byte 0x08262DD5 +_08141E94: .4byte 0x081409DD +_08141E98: .4byte 0x0000FFFF +_08141E9C: + ldr r0, _08141EA8 + str r0, [r2] +_08141EA0: + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08141EA8: .4byte 0x081409DD + thumb_func_end dp01t_12_3_battle_menu + + thumb_func_start sub_08141EAC +sub_08141EAC: @ 0x08141EAC + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r4, _08141EF0 + ldr r0, [r4] + adds r0, #0xb8 + ldr r1, _08141EF4 + bl sub_08151A78 + ldr r0, [r4] + adds r0, #0xb8 + bl sub_08151654 + ldr r1, _08141EF8 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r0, [r0, #0x22] + bl SetCoins + bl GetCoins + ldr r1, [r4] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r1, #0x19] + cmp r0, r1 + bhs _08141F00 + ldr r1, _08141EFC + movs r0, #1 + b _08141F04 + .align 2, 0 +_08141EF0: .4byte 0x0203A854 +_08141EF4: .4byte 0x0000FFFF +_08141EF8: .4byte 0x03005B60 +_08141EFC: .4byte 0x02037280 +_08141F00: + ldr r1, _08141F38 + movs r0, #0 +_08141F04: + strh r0, [r1] + bl GetCoins + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl AlertTVOfNewCoinTotal + movs r0, #0 + str r0, [sp] + movs r0, #0xff + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginHardwarePaletteFade + ldr r1, _08141F3C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08141F40 + str r1, [r0] + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08141F38: .4byte 0x02037280 +_08141F3C: .4byte 0x03005B60 +_08141F40: .4byte 0x08141F45 + thumb_func_end sub_08141EAC + + thumb_func_start sub_08141F44 +sub_08141F44: @ 0x08141F44 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + bl UpdatePaletteFade + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _08141FA6 + movs r0, #0 + bl SetVBlankCallback + ldr r1, _08141FAC + ldr r0, _08141FB0 + strh r4, [r0] + strh r4, [r1] + bl ResetVramOamAndBgCntRegs + bl ResetAllBgsCoordinates + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + bl FreeAllSpritePalettes + bl ResetPaletteFade + bl ResetSpriteData + bl sub_081404E0 + ldr r1, _08141FB4 + ldr r0, _08141FB8 + str r0, [r1] + ldr r0, _08141FBC + bl SetMainCallback2 + adds r0, r5, #0 + bl DestroyTask +_08141FA6: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08141FAC: .4byte 0x02021B38 +_08141FB0: .4byte 0x02021B3A +_08141FB4: .4byte 0x03005B0C +_08141FB8: .4byte 0x080AEA65 +_08141FBC: .4byte 0x08085A31 + thumb_func_end sub_08141F44 + + thumb_func_start sub_08141FC0 +sub_08141FC0: @ 0x08141FC0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08142034 + ldr r3, [r1] + adds r0, r3, #0 + adds r0, #0xa8 + ldrh r0, [r0] + adds r5, r1, #0 + cmp r0, #0 + beq _08141FE6 + ldr r0, _08142038 + adds r2, r3, #0 + adds r2, #0xaa + ldrh r1, [r0, #0x2e] + ldrh r0, [r2] + ands r0, r1 + cmp r0, #0 + beq _0814201A +_08141FE6: + ldr r1, _0814203C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + adds r1, r3, #0 + adds r1, #0xac + ldr r1, [r1] + str r1, [r0] + adds r0, r3, #0 + adds r0, #0xaa + ldrh r0, [r0] + cmp r0, #0 + beq _08142008 + movs r0, #5 + bl PlaySE +_08142008: + ldr r2, [r5] + adds r0, r2, #0 + adds r0, #0xac + movs r1, #0 + str r1, [r0] + subs r0, #2 + strh r1, [r0] + subs r0, #2 + strh r1, [r0] +_0814201A: + ldr r0, [r5] + adds r1, r0, #0 + adds r1, #0xa8 + ldrh r2, [r1] + ldr r0, _08142040 + cmp r2, r0 + beq _0814202C + subs r0, r2, #1 + strh r0, [r1] +_0814202C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08142034: .4byte 0x0203A854 +_08142038: .4byte 0x03002360 +_0814203C: .4byte 0x03005B60 +_08142040: .4byte 0x0000FFFF + thumb_func_end sub_08141FC0 + + thumb_func_start sub_08142044 +sub_08142044: @ 0x08142044 + push {r4, r5, r6, r7, lr} + adds r5, r1, #0 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r2, r2, #0x10 + lsrs r4, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r7, r3, #0x10 + ldr r2, _08142094 + ldr r0, [r2] + mov ip, r0 + mov r3, ip + adds r3, #0xb4 + ldr r1, _08142098 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r3] + adds r3, r1, #0 + cmp r5, #0 + bne _08142074 + adds r5, r0, #0 +_08142074: + mov r0, ip + adds r0, #0xac + str r5, [r0] + subs r0, #4 + strh r4, [r0] + ldr r0, _0814209C + cmp r4, r0 + bne _081420A0 + cmp r7, #0 + bne _081420A0 + mov r1, ip + adds r1, #0xaa + ldrh r0, [r1] + orrs r4, r0 + strh r4, [r1] + b _081420A6 + .align 2, 0 +_08142094: .4byte 0x0203A854 +_08142098: .4byte 0x03005B60 +_0814209C: .4byte 0x0000FFFF +_081420A0: + ldr r0, [r2] + adds r0, #0xaa + strh r7, [r0] +_081420A6: + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r3 + ldr r1, _081420B8 + str r1, [r0] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081420B8: .4byte 0x08141FC1 + thumb_func_end sub_08142044 + + thumb_func_start sub_081420BC +sub_081420BC: @ 0x081420BC + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r4, #0 + ldr r3, _08142130 + ldr r0, [r3] + strb r4, [r0] + ldr r2, [r3] + ldrb r1, [r2, #3] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #3] + ldr r2, [r3] + ldrb r1, [r2, #3] + movs r0, #0x21 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #3] + ldr r2, [r3] + ldrb r1, [r2, #3] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #3] + ldr r2, [r3] + ldrb r1, [r2, #3] + movs r0, #0x20 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #3] + ldr r6, _08142134 + adds r2, r3, #0 + movs r1, #0 +_081420FE: + ldr r0, [r2] + adds r0, #0x1b + adds r0, r0, r4 + strb r1, [r0] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #5 + bls _081420FE + ldr r2, [r3] + ldrb r1, [r2, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x1a] + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r6 + movs r1, #0 + strh r1, [r0, #0xa] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08142130: .4byte 0x0203A854 +_08142134: .4byte 0x03005B60 + thumb_func_end sub_081420BC + + thumb_func_start sub_08142138 +sub_08142138: @ 0x08142138 + push {lr} + ldr r2, _08142194 + ldr r1, [r2] + movs r0, #0 + str r0, [r1, #8] + movs r1, #0 + movs r3, #0 +_08142146: + ldr r0, [r2] + adds r0, #0xc + adds r0, r0, r1 + strb r3, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #5 + bls _08142146 + movs r1, #0 + ldr r3, _08142194 + movs r2, #0 +_0814215E: + ldr r0, [r3] + adds r0, #0x12 + adds r0, r0, r1 + strb r2, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #3 + bls _0814215E + movs r1, #0 + ldr r3, _08142194 + movs r2, #0 +_08142176: + ldr r0, [r3] + adds r0, #0x16 + adds r0, r0, r1 + strb r2, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #2 + bls _08142176 + movs r0, #1 + movs r1, #0xff + bl sub_08143104 + pop {r0} + bx r0 + .align 2, 0 +_08142194: .4byte 0x0203A854 + thumb_func_end sub_08142138 + + thumb_func_start sub_08142198 +sub_08142198: @ 0x08142198 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x1c + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + mov r1, sp + ldr r0, _081421CC + ldm r0!, {r2, r3, r6} + stm r1!, {r2, r3, r6} + ldr r0, [r0] + str r0, [r1] + add r2, sp, #0x10 + adds r1, r2, #0 + ldr r0, _081421D0 + ldm r0!, {r3, r6, r7} + stm r1!, {r3, r6, r7} + mov r8, r2 + cmp r5, #0xb + bls _081421D4 + movs r0, #0 + b _08142290 + .align 2, 0 +_081421CC: .4byte 0x08595FE0 +_081421D0: .4byte 0x08595FF0 +_081421D4: + ldr r6, _081422A0 + ldr r3, [r6] + ldr r1, _081422A4 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r7, #0x14 + ldrsh r1, [r0, r7] + adds r3, r3, r1 + ldr r4, _081422A8 + lsls r5, r5, #3 + adds r2, r5, r4 + ldrb r1, [r2, #2] + strb r1, [r3, #0xb] + ldrb r1, [r2, #2] + strh r1, [r0, #0x20] + ldr r2, [r6] + adds r0, r4, #4 + adds r0, r5, r0 + ldr r1, [r2, #8] + ldr r0, [r0] + orrs r1, r0 + str r1, [r2, #8] + movs r3, #0 + mov sb, r4 + mov ip, r5 + adds r5, r0, #0 +_0814220C: + lsls r0, r3, #2 + mov r1, sp + adds r4, r1, r0 + ldr r0, [r4] + ands r0, r5 + cmp r0, #0 + beq _08142226 + ldr r1, [r6] + adds r1, #0x12 + adds r1, r1, r3 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_08142226: + ldr r2, [r6] + adds r0, r2, #0 + adds r0, #0x12 + adds r0, r0, r3 + ldrb r0, [r0] + cmp r0, #2 + bls _0814223C + ldr r0, [r2, #8] + ldr r1, [r4] + orrs r0, r1 + str r0, [r2, #8] +_0814223C: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #3 + bls _0814220C + movs r6, #0 + ldr r0, _081422AC + add r0, ip + ldr r7, [r0] + ldr r4, _081422A0 + mov r5, r8 +_08142252: + lsls r0, r6, #2 + adds r2, r5, r0 + ldr r0, [r2] + ands r0, r7 + cmp r0, #0 + beq _0814226A + ldr r1, [r4] + adds r1, #0x16 + adds r1, r1, r6 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0814226A: + ldr r3, [r4] + adds r0, r3, #0 + adds r0, #0x16 + adds r0, r0, r6 + ldrb r0, [r0] + cmp r0, #3 + bls _08142280 + ldr r0, [r3, #8] + ldr r1, [r2] + orrs r0, r1 + str r0, [r3, #8] +_08142280: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #2 + bls _08142252 + mov r0, ip + add r0, sb + ldrb r0, [r0, #2] +_08142290: + add sp, #0x1c + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081422A0: .4byte 0x0203A854 +_081422A4: .4byte 0x03005B60 +_081422A8: .4byte 0x08595E90 +_081422AC: .4byte 0x08595E94 + thumb_func_end sub_08142198 + + thumb_func_start sub_081422B0 +sub_081422B0: @ 0x081422B0 + push {lr} + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r2, r1, #0x18 + lsrs r3, r0, #0x18 + movs r1, #0xff + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + cmp r0, #0x12 + bhi _08142344 + cmp r2, #0xf + bhi _08142340 + lsls r0, r2, #2 + ldr r1, _081422D4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081422D4: .4byte 0x081422D8 +_081422D8: @ jump table + .4byte _08142318 @ case 0 + .4byte _0814231C @ case 1 + .4byte _0814231C @ case 2 + .4byte _0814231C @ case 3 + .4byte _0814231C @ case 4 + .4byte _08142330 @ case 5 + .4byte _08142340 @ case 6 + .4byte _08142340 @ case 7 + .4byte _08142340 @ case 8 + .4byte _08142340 @ case 9 + .4byte _08142330 @ case 10 + .4byte _08142340 @ case 11 + .4byte _08142340 @ case 12 + .4byte _08142340 @ case 13 + .4byte _08142340 @ case 14 + .4byte _08142330 @ case 15 +_08142318: + movs r0, #3 + b _08142346 +_0814231C: + adds r0, r2, #5 + cmp r3, r0 + beq _0814233C + adds r0, #5 + cmp r3, r0 + beq _0814233C + adds r0, #5 + cmp r3, r0 + bne _08142344 + b _0814233C +_08142330: + adds r0, r2, #1 + cmp r3, r0 + blt _08142344 + adds r0, r2, #4 + cmp r3, r0 + bgt _08142344 +_0814233C: + movs r0, #1 + b _08142346 +_08142340: + cmp r3, r2 + beq _0814233C +_08142344: + movs r0, #0 +_08142346: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081422B0 + + thumb_func_start sub_0814234C +sub_0814234C: @ 0x0814234C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r0, #0 + str r0, [sp, #0x18] + cmp r7, #0xa + beq _08142372 + cmp r7, #0xa + bgt _0814236E + cmp r7, #5 + beq _08142372 + b _081423D4 +_0814236E: + cmp r7, #0xf + bne _081423D4 +_08142372: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r2, r7, #5 + ldr r1, _081423C8 + mov ip, r1 + cmp r4, r2 + bge _081423B0 + ldr r0, [r1] + ldr r3, _081423CC + ldr r5, [r0, #8] + adds r6, r3, #0 + adds r6, #8 +_0814238C: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r1, r0, #2 + adds r0, r1, r6 + ldr r0, [r0] + ands r0, r5 + cmp r0, #0 + bne _081423A6 + adds r0, r1, r3 + ldrh r0, [r0, #0x10] + ldr r1, [sp, #0x18] + orrs r1, r0 + str r1, [sp, #0x18] +_081423A6: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r2 + blt _0814238C +_081423B0: + mov r2, ip + ldr r0, [r2] + adds r0, #0xb8 + ldr r1, _081423D0 + ldr r3, [sp, #0x18] + ands r3, r1 + str r3, [sp, #0x18] + adds r1, r3, #0 + bl sub_08151A24 + b _081425AA + .align 2, 0 +_081423C8: .4byte 0x0203A854 +_081423CC: .4byte 0x08595D00 +_081423D0: .4byte 0x0000DFFF +_081423D4: + mov r0, sp + ldr r1, _08142424 + ldm r1!, {r2, r4, r5} + stm r0!, {r2, r4, r5} + ldm r1!, {r3, r4, r5} + stm r0!, {r3, r4, r5} + subs r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + mov sb, r1 + cmp r0, #3 + bhi _081423F2 + movs r2, #3 + mov sb, r2 +_081423F2: + adds r0, r7, #0 + movs r1, #5 + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #8 + ldr r3, _08142428 + adds r0, r0, r3 + lsrs r0, r0, #0x10 + mov r8, r0 + adds r0, r7, #0 + movs r1, #5 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + beq _08142458 + cmp r0, #2 + bgt _08142430 + cmp r0, #1 + beq _08142444 + ldr r4, _0814242C + mov ip, r4 + b _0814249C + .align 2, 0 +_08142424: .4byte 0x08595F9C +_08142428: .4byte 0xFFFF0000 +_0814242C: .4byte 0x0203A854 +_08142430: + cmp r0, #3 + beq _0814246C + cmp r0, #4 + beq _08142480 + ldr r5, _08142440 + mov ip, r5 + b _0814249C + .align 2, 0 +_08142440: .4byte 0x0203A854 +_08142444: + ldr r3, _08142450 + ldr r2, _08142454 + ldr r0, [r2] + adds r0, #0x43 + b _08142488 + .align 2, 0 +_08142450: .4byte 0x020205AC +_08142454: .4byte 0x0203A854 +_08142458: + ldr r3, _08142464 + ldr r2, _08142468 + ldr r0, [r2] + adds r0, #0x44 + b _08142488 + .align 2, 0 +_08142464: .4byte 0x020205AC +_08142468: .4byte 0x0203A854 +_0814246C: + ldr r3, _08142478 + ldr r2, _0814247C + ldr r0, [r2] + adds r0, #0x45 + b _08142488 + .align 2, 0 +_08142478: .4byte 0x020205AC +_0814247C: .4byte 0x0203A854 +_08142480: + ldr r3, _081424EC + ldr r2, _081424F0 + ldr r0, [r2] + adds r0, #0x46 +_08142488: + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0, #5] + lsrs r0, r0, #4 + lsls r0, r0, #4 + mov r8, r0 + mov ip, r2 +_0814249C: + mov r0, sb + cmp r0, #1 + bne _081424F8 + mov r1, ip + ldr r4, [r1] + ldr r1, _081424F4 + lsls r2, r7, #2 + adds r0, r2, r7 + lsls r0, r0, #2 + adds r1, #8 + adds r0, r0, r1 + ldr r1, [r4, #8] + ldr r0, [r0] + ands r1, r0 + str r2, [sp, #0x1c] + cmp r1, #0 + bne _081425AA + adds r0, r7, #0 + movs r1, #5 + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r1, r0, #1 + lsls r1, r1, #3 + mov r3, sp + adds r2, r3, r1 + ldrh r1, [r2, #2] + add r1, r8 + strh r1, [r2, #2] + adds r1, r4, #0 + adds r1, #0xb8 + lsls r0, r0, #3 + subs r0, #8 + adds r2, r3, r0 + adds r0, r1, #0 + movs r1, #0xd + bl sub_08151668 + b _0814258C + .align 2, 0 +_081424EC: .4byte 0x020205AC +_081424F0: .4byte 0x0203A854 +_081424F4: .4byte 0x08595D00 +_081424F8: + movs r4, #0 + lsls r5, r7, #2 + str r5, [sp, #0x1c] + ldr r0, _081425BC + mov sl, r0 +_08142502: + lsls r0, r4, #2 + adds r0, r0, r4 + adds r0, r7, r0 + adds r0, #5 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + mov r1, ip + ldr r5, [r1] + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r6, r0, #2 + mov r0, sl + adds r0, #8 + adds r0, r6, r0 + ldr r1, [r5, #8] + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _08142578 + adds r0, r3, #0 + movs r1, #5 + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r1, r0, #1 + lsls r1, r1, #3 + mov r3, sp + adds r2, r3, r1 + ldrh r1, [r2, #2] + add r1, r8 + strh r1, [r2, #2] + adds r3, r5, #0 + adds r3, #0xb8 + adds r1, r4, #0 + adds r1, #0xd + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r0, #3 + subs r0, #8 + mov r5, sp + adds r2, r5, r0 + adds r0, r3, #0 + bl sub_08151668 + mov r0, sb + cmp r0, #3 + bne _0814256A + mov r1, sl + adds r0, r6, r1 + ldrh r0, [r0, #0x10] + str r0, [sp, #0x18] +_0814256A: + mov r0, sb + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldr r2, _081425C0 + mov ip, r2 +_08142578: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #2 + bls _08142502 + mov r3, sb + cmp r3, #2 + beq _0814258C + movs r4, #0 + str r4, [sp, #0x18] +_0814258C: + ldr r0, _081425C0 + ldr r0, [r0] + adds r0, #0xb8 + ldr r2, _081425BC + ldr r5, [sp, #0x1c] + adds r1, r5, r7 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r1, [r1, #0x10] + ldr r2, [sp, #0x18] + orrs r2, r1 + str r2, [sp, #0x18] + adds r1, r2, #0 + bl sub_08151A24 +_081425AA: + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081425BC: .4byte 0x08595D00 +_081425C0: .4byte 0x0203A854 + thumb_func_end sub_0814234C + + thumb_func_start sub_081425C4 +sub_081425C4: @ 0x081425C4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x2c + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r4, _08142610 + ldr r1, [r4] + movs r0, #1 + strh r0, [r1, #0x2a] + movs r0, #0 + movs r1, #0 + bl sub_08142F3C + ldr r1, [r4] + ldr r2, _08142614 + adds r0, r1, r2 + ldr r2, _08142618 + adds r1, r1, r2 + ldr r1, [r1] + movs r2, #0x10 + str r2, [sp] + movs r2, #0xd + str r2, [sp, #4] + movs r2, #0xe + movs r3, #7 + bl sub_08152034 + cmp r5, #0xf + bhi _081426C4 + lsls r0, r5, #2 + ldr r1, _0814261C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08142610: .4byte 0x0203A854 +_08142614: .4byte 0x0000117C +_08142618: .4byte 0x0000397C +_0814261C: .4byte 0x08142620 +_08142620: @ jump table + .4byte _08142800 @ case 0 + .4byte _08142660 @ case 1 + .4byte _08142660 @ case 2 + .4byte _08142660 @ case 3 + .4byte _08142660 @ case 4 + .4byte _08142694 @ case 5 + .4byte _081426C4 @ case 6 + .4byte _081426C4 @ case 7 + .4byte _081426C4 @ case 8 + .4byte _081426C4 @ case 9 + .4byte _08142694 @ case 10 + .4byte _081426C4 @ case 11 + .4byte _081426C4 @ case 12 + .4byte _081426C4 @ case 13 + .4byte _081426C4 @ case 14 + .4byte _08142694 @ case 15 +_08142660: + movs r0, #4 + str r0, [sp, #0x18] + add r1, sp, #8 + movs r0, #0 + strb r0, [r1] + adds r0, r1, #0 + ldrb r0, [r0] + cmp r0, #3 + bhi _081426CC + add r4, sp, #0x10 + adds r3, r1, #0 +_08142676: + ldrb r2, [r3] + adds r2, r2, r4 + ldrb r1, [r3] + lsls r0, r1, #2 + adds r0, r0, r1 + adds r0, r5, r0 + strb r0, [r2] + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + ldrb r0, [r3] + ldr r1, [sp, #0x18] + cmp r0, r1 + blo _08142676 + b _081426CC +_08142694: + movs r2, #5 + str r2, [sp, #0x18] + add r1, sp, #8 + movs r0, #0 + strb r0, [r1] + adds r0, r1, #0 + ldrb r0, [r0] + cmp r0, #4 + bhi _081426CC + add r3, sp, #0x10 + adds r2, r1, #0 +_081426AA: + ldrb r1, [r2] + adds r1, r1, r3 + ldrb r0, [r2] + adds r0, r5, r0 + strb r0, [r1] + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + ldrb r0, [r2] + ldr r1, [sp, #0x18] + cmp r0, r1 + blo _081426AA + b _081426CC +_081426C4: + movs r2, #1 + str r2, [sp, #0x18] + add r0, sp, #0x10 + strb r5, [r0] +_081426CC: + add r1, sp, #8 + movs r0, #0 + strb r0, [r1] + adds r0, r1, #0 + ldrb r0, [r0] + ldr r1, [sp, #0x18] + cmp r0, r1 + blo _081426DE + b _08142800 +_081426DE: + mov r2, sp + adds r2, #0xe + str r2, [sp, #0x1c] + add r0, sp, #0x10 + mov sl, r0 + add r1, sp, #8 + mov sb, r1 + subs r2, #4 + str r2, [sp, #0x20] +_081426F0: + mov r1, sb + ldrb r0, [r1] + add r0, sl + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r2, _08142810 + adds r0, r0, r2 + ldrb r0, [r0, #6] + ldr r1, [sp, #0x1c] + strb r0, [r1] + mov r2, sb + ldrb r0, [r2] + add r0, sl + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08142810 + adds r0, r0, r1 + ldrb r0, [r0, #3] + ldr r2, [sp, #0x20] + strh r0, [r2] + mov r7, sp + adds r7, #9 + movs r0, #0 + strb r0, [r7] + ldrb r0, [r7] + cmp r0, #2 + bhi _081427EE + add r6, sp, #0xc + mov r8, r2 + ldr r0, [sp, #0x1c] + mov ip, r0 + ldr r1, _08142814 + str r1, [sp, #0x28] +_0814273A: + mov r2, sb + ldrb r0, [r2] + add r0, sl + ldrb r0, [r0] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08142810 + adds r1, r1, r0 + str r7, [sp, #0x24] + ldrb r0, [r7] + ldrb r1, [r1, #4] + adds r0, r0, r1 + lsls r0, r0, #5 + strh r0, [r6] + ldr r1, [sp, #0x28] + ldr r4, [r1] + mov r2, r8 + ldrh r0, [r2] + ldrh r2, [r6] + adds r2, r2, r0 + lsls r2, r2, #1 + ldr r0, _08142818 + adds r5, r4, r0 + adds r2, r5, r2 + mov r1, ip + ldrb r0, [r1] + ldrb r1, [r7] + adds r1, r1, r0 + ldr r0, _0814281C + adds r4, r4, r0 + ldr r3, [r4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r0, r0, r3 + movs r1, #0xd0 + lsls r1, r1, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2] + mov r2, r8 + ldrh r0, [r2] + ldrh r2, [r6] + adds r2, r2, r0 + adds r2, #1 + lsls r2, r2, #1 + adds r2, r5, r2 + mov r1, ip + ldrb r0, [r1] + ldrb r1, [r7] + adds r1, r1, r0 + ldr r3, [r4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r0, r0, r3 + movs r1, #0xd1 + lsls r1, r1, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2] + mov r2, r8 + ldrh r1, [r2] + ldrh r0, [r6] + adds r0, r0, r1 + adds r0, #2 + lsls r0, r0, #1 + adds r5, r5, r0 + mov r1, ip + ldrb r0, [r1] + ldrb r1, [r7] + adds r1, r1, r0 + ldr r2, [r4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + movs r2, #0xd2 + lsls r2, r2, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r5] + ldrb r0, [r7] + adds r0, #1 + strb r0, [r7] + ldr r1, [sp, #0x24] + ldrb r0, [r1] + cmp r0, #2 + bls _0814273A +_081427EE: + mov r2, sb + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + ldrb r0, [r2] + ldr r1, [sp, #0x18] + cmp r0, r1 + bhs _08142800 + b _081426F0 +_08142800: + add sp, #0x2c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08142810: .4byte 0x08595D00 +_08142814: .4byte 0x0203A854 +_08142818: .4byte 0x0000117C +_0814281C: .4byte 0x0000397C + thumb_func_end sub_081425C4 + + thumb_func_start sub_08142820 +sub_08142820: @ 0x08142820 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08142858 + mov r0, sp + movs r2, #5 + bl memcpy + cmp r4, #0x13 + bls _08142838 + movs r4, #0 +_08142838: + ldr r3, _0814285C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r2, r0, #2 + adds r0, r2, r3 + ldrb r0, [r0, #1] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #4 + beq _0814288C + cmp r0, #4 + bgt _08142860 + cmp r0, #3 + beq _08142866 + b _081428D0 + .align 2, 0 +_08142858: .4byte 0x08595FFC +_0814285C: .4byte 0x08595D00 +_08142860: + cmp r0, #0xc + beq _081428B0 + b _081428D0 +_08142866: + adds r0, r4, #0 + movs r1, #5 + bl __udivsi3 + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _08142888 + ldr r0, [r0] + adds r0, #0x16 + adds r1, r0, r4 + ldrb r0, [r1] + cmp r0, #3 + bhi _081428D0 + ldrb r0, [r1] + adds r0, #1 + b _081428A4 + .align 2, 0 +_08142888: .4byte 0x0203A854 +_0814288C: + subs r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _081428AC + ldr r0, [r0] + adds r0, #0x12 + adds r1, r0, r4 + ldrb r0, [r1] + cmp r0, #2 + bhi _081428D0 + ldrb r0, [r1] + adds r0, #2 +_081428A4: + add r0, sp + ldrb r0, [r0] + b _081428D2 + .align 2, 0 +_081428AC: .4byte 0x0203A854 +_081428B0: + ldr r0, _081428CC + ldr r1, [r0] + adds r0, r3, #0 + adds r0, #8 + adds r0, r2, r0 + ldr r1, [r1, #8] + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _081428D0 + mov r0, sp + ldrb r0, [r0, #4] + b _081428D2 + .align 2, 0 +_081428CC: .4byte 0x0203A854 +_081428D0: + movs r0, #0 +_081428D2: + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08142820 + + thumb_func_start sub_081428DC +sub_081428DC: @ 0x081428DC + push {r4, r5, r6, lr} + ldr r4, _0814297C + ldr r0, [r4] + ldrh r1, [r0, #0x2c] + movs r0, #0x20 + bl SetGpuReg + ldr r0, [r4] + ldrh r1, [r0, #0x2e] + movs r0, #0x22 + bl SetGpuReg + ldr r0, [r4] + ldrh r1, [r0, #0x30] + movs r0, #0x24 + bl SetGpuReg + ldr r0, [r4] + ldrh r1, [r0, #0x32] + movs r0, #0x26 + bl SetGpuReg + ldr r3, [r4] + movs r0, #0x2e + ldrsh r1, [r3, r0] + ldr r0, _08142980 + movs r4, #0 + ldrsh r2, [r0, r4] + adds r2, #0x50 + adds r0, r1, #0 + muls r0, r2, r0 + movs r4, #0xe8 + lsls r4, r4, #7 + subs r4, r4, r0 + movs r6, #0x2c + ldrsh r5, [r3, r6] + ldr r0, _08142984 + movs r6, #0 + ldrsh r1, [r0, r6] + adds r1, #0x74 + adds r0, r5, #0 + muls r0, r1, r0 + subs r4, r4, r0 + movs r5, #0x32 + ldrsh r0, [r3, r5] + muls r0, r2, r0 + movs r5, #0xa8 + lsls r5, r5, #7 + subs r5, r5, r0 + movs r6, #0x30 + ldrsh r0, [r3, r6] + muls r0, r1, r0 + subs r5, r5, r0 + lsls r1, r4, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x28 + bl SetGpuReg + ldr r6, _08142988 + ands r4, r6 + lsrs r4, r4, #0x10 + movs r0, #0x2a + adds r1, r4, #0 + bl SetGpuReg + lsls r1, r5, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x2c + bl SetGpuReg + ands r5, r6 + lsrs r5, r5, #0x10 + movs r0, #0x2e + adds r1, r5, #0 + bl SetGpuReg + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0814297C: .4byte 0x0203A854 +_08142980: .4byte 0x02021B3A +_08142984: .4byte 0x02021B38 +_08142988: .4byte 0x0FFF0000 + thumb_func_end sub_081428DC + + thumb_func_start sub_0814298C +sub_0814298C: @ 0x0814298C + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl DisplayYesNoMenuDefaultYes + ldr r1, _081429A8 + adds r0, r4, #0 + bl DoYesNoFuncWithChoice + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081429A8: .4byte 0x08595FBC + thumb_func_end sub_0814298C + + thumb_func_start sub_081429AC +sub_081429AC: @ 0x081429AC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _081429D8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081429D0 + movs r0, #0 + bl SetVBlankCallback + ldr r0, _081429DC + bl SetMainCallback2 + adds r0, r4, #0 + bl DestroyTask +_081429D0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081429D8: .4byte 0x02037C74 +_081429DC: .4byte 0x08140695 + thumb_func_end sub_081429AC + + thumb_func_start sub_081429E0 +sub_081429E0: @ 0x081429E0 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + movs r1, #1 + bl DrawStdWindowFrame + bl HideCoinsWindow + bl FreeAllWindowBuffers + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r2, _08142A38 + ldrb r1, [r2, #8] + lsls r1, r1, #0x1a + lsrs r1, r1, #0x1a + ldrb r3, [r2, #4] + movs r0, #0x40 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #4] + bl UpdatePaletteFade + ldr r1, _08142A3C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08142A40 + str r1, [r0] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08142A38: .4byte 0x02037C74 +_08142A3C: .4byte 0x03005B60 +_08142A40: .4byte 0x081429AD + thumb_func_end sub_081429E0 + + thumb_func_start sub_08142A44 +sub_08142A44: @ 0x08142A44 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + movs r1, #0 + bl DrawStdWindowFrame + bl HideCoinsWindow + bl ScriptContext2_Disable + adds r0, r4, #0 + bl DestroyTask + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08142A44 + + thumb_func_start sub_08142A68 +sub_08142A68: @ 0x08142A68 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08142AAC + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #8] + adds r1, #1 + strh r1, [r0, #8] + ldr r0, _08142AB0 + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _08142AA6 + ldr r1, _08142AB4 + movs r0, #1 + strh r0, [r1] + bl HideCoinsWindow + movs r0, #0 + movs r1, #1 + bl DrawStdWindowFrame + bl ScriptContext2_Disable + adds r0, r4, #0 + bl DestroyTask +_08142AA6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08142AAC: .4byte 0x03005B60 +_08142AB0: .4byte 0x03002360 +_08142AB4: .4byte 0x02037280 + thumb_func_end sub_08142A68 + + thumb_func_start sub_08142AB8 +sub_08142AB8: @ 0x08142AB8 + push {r4, r5, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _08142B30 + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _08142B28 + ldr r2, _08142B34 + ldr r0, _08142B38 + ldrh r1, [r0] + movs r0, #1 + ands r0, r1 + lsrs r1, r1, #7 + lsls r1, r1, #1 + adds r0, r0, r1 + adds r0, r0, r2 + ldrb r1, [r0] + ldr r0, _08142B3C + movs r2, #2 + movs r3, #1 + bl ConvertIntToDecimalStringN + ldr r4, _08142B40 + ldr r1, _08142B44 + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #0 + movs r1, #0 + bl ClearStdWindowAndFrame + movs r0, #2 + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + movs r1, #1 + adds r2, r4, #0 + movs r3, #2 + bl AddTextPrinterParameterized + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + ldr r1, _08142B48 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08142B4C + str r1, [r0] +_08142B28: + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08142B30: .4byte 0x03002360 +_08142B34: .4byte 0x08595EF0 +_08142B38: .4byte 0x02037280 +_08142B3C: .4byte 0x02021C40 +_08142B40: .4byte 0x02021C7C +_08142B44: .4byte 0x08262CF3 +_08142B48: .4byte 0x03005B60 +_08142B4C: .4byte 0x0814298D + thumb_func_end sub_08142AB8 + + thumb_func_start Task_Roulette_0 +Task_Roulette_0: @ 0x08142B50 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _08142BD8 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r6, r0, r1 + movs r1, #0x22 + ldrsh r0, [r6, r1] + bl PrintCoinsString + ldr r2, _08142BDC + ldr r7, _08142BE0 + ldrh r1, [r7] + movs r0, #1 + mov r8, r0 + ands r0, r1 + lsrs r1, r1, #7 + lsls r1, r1, #1 + adds r0, r0, r1 + adds r0, r0, r2 + ldrb r4, [r0] + ldr r0, _08142BE4 + adds r1, r4, #0 + movs r2, #2 + movs r3, #1 + bl ConvertIntToDecimalStringN + movs r1, #0x22 + ldrsh r0, [r6, r1] + cmp r0, r4 + blt _08142C40 + ldrh r1, [r7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08142BF0 + mov r0, r8 + ands r0, r1 + cmp r0, #0 + beq _08142BF0 + movs r0, #0 + movs r1, #0 + bl ClearStdWindowAndFrame + ldr r2, _08142BE8 + movs r0, #2 + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + movs r1, #1 + movs r3, #2 + bl AddTextPrinterParameterized + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + ldr r0, _08142BEC + str r0, [r6] + b _08142C7A + .align 2, 0 +_08142BD8: .4byte 0x03005B60 +_08142BDC: .4byte 0x08595EF0 +_08142BE0: .4byte 0x02037280 +_08142BE4: .4byte 0x02021C40 +_08142BE8: .4byte 0x08262D23 +_08142BEC: .4byte 0x08142AB9 +_08142BF0: + ldr r4, _08142C30 + ldr r1, _08142C34 + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #0 + movs r1, #0 + bl ClearStdWindowAndFrame + movs r0, #2 + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + movs r1, #1 + adds r2, r4, #0 + movs r3, #2 + bl AddTextPrinterParameterized + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + ldr r1, _08142C38 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08142C3C + str r1, [r0] + b _08142C7A + .align 2, 0 +_08142C30: .4byte 0x02021C7C +_08142C34: .4byte 0x08262CF3 +_08142C38: .4byte 0x03005B60 +_08142C3C: .4byte 0x0814298D +_08142C40: + ldr r5, _08142C88 + ldr r1, _08142C8C + adds r0, r5, #0 + bl StringExpandPlaceholders + movs r0, #0 + movs r1, #0 + bl ClearStdWindowAndFrame + movs r0, #2 + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r4, #0 + str r4, [sp, #8] + movs r0, #0 + movs r1, #1 + adds r2, r5, #0 + movs r3, #2 + bl AddTextPrinterParameterized + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + ldr r0, _08142C90 + str r0, [r6] + strh r4, [r6, #0x22] + strh r4, [r6, #8] +_08142C7A: + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08142C88: .4byte 0x02021C7C +_08142C8C: .4byte 0x08262D18 +_08142C90: .4byte 0x08142A69 + thumb_func_end Task_Roulette_0 + + thumb_func_start PlayRoulette +PlayRoulette: @ 0x08142C94 + push {r4, lr} + bl ScriptContext2_Enable + bl GetCoins + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + movs r2, #1 + bl ShowCoinsWindow + ldr r0, _08142CD0 + movs r1, #0 + bl CreateTask + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl GetCoins + ldr r2, _08142CD4 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r0, [r1, #0x22] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08142CD0: .4byte 0x08142B51 +_08142CD4: .4byte 0x03005B60 + thumb_func_end PlayRoulette + + thumb_func_start sub_08142CD8 +sub_08142CD8: @ 0x08142CD8 + push {lr} + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08142D10 + bl FreeAllSpritePalettes + ldr r0, _08142D00 + bl LoadSpritePalettes + ldr r0, _08142D04 + bl LoadCompressedSpriteSheet + ldr r0, _08142D08 + bl LoadCompressedSpriteSheet + ldr r0, _08142D0C + bl LoadCompressedSpriteSheet + b _08142D26 + .align 2, 0 +_08142D00: .4byte 0x08596F38 +_08142D04: .4byte 0x08597418 +_08142D08: .4byte 0x0859752C +_08142D0C: .4byte 0x085975F4 +_08142D10: + movs r0, #0xe + bl FreeSpriteTilesByTag + movs r0, #0xd + bl FreeSpriteTilesByTag + movs r0, #0xc + bl FreeSpriteTilesByTag + bl FreeAllSpritePalettes +_08142D26: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08142CD8 + + thumb_func_start sub_08142D2C +sub_08142D2C: @ 0x08142D2C + push {r4, r5, r6, lr} + adds r4, r1, #0 + adds r6, r2, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, [r0, #4] + ldrb r3, [r1] + movs r1, #0x74 + movs r2, #0x50 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + ldr r0, _08142D90 + lsls r1, r5, #4 + adds r1, r1, r5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r0, [r6] + strh r0, [r1, #0x2e] + strh r4, [r1, #0x30] + adds r3, r1, #0 + adds r3, #0x3e + ldrb r0, [r3] + movs r2, #2 + orrs r0, r2 + strb r0, [r3] + adds r1, #0x2c + ldrb r0, [r1] + movs r2, #0x40 + orrs r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r1] + ldrh r2, [r6] + adds r0, r2, #0 + adds r0, #0x1e + strh r0, [r6] + lsls r0, r0, #0x10 + ldr r1, _08142D94 + cmp r0, r1 + bls _08142D88 + ldr r1, _08142D98 + adds r0, r2, r1 + strh r0, [r6] +_08142D88: + adds r0, r5, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08142D90: .4byte 0x020205AC +_08142D94: .4byte 0x01670000 +_08142D98: .4byte 0xFFFFFEB6 + thumb_func_end sub_08142D2C + + thumb_func_start sub_08142D9C +sub_08142D9C: @ 0x08142D9C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + ldr r4, _08142EE8 + ldr r0, [r4] + ldr r5, _08142EEC + adds r1, r5, #0 + bl LZ77UnCompWram + str r5, [sp] + mov r6, sp + ldrh r1, [r4, #6] + lsls r1, r1, #0x10 + ldrh r0, [r4, #4] + orrs r0, r1 + str r0, [sp, #4] + mov r0, sp + bl LoadSpriteSheet + ldr r4, _08142EF0 + ldr r0, [r4] + adds r1, r5, #0 + bl LZ77UnCompWram + str r5, [sp] + ldrh r0, [r4, #4] + strh r0, [r6, #4] + ldrh r0, [r4, #6] + strh r0, [r6, #6] + mov r0, sp + bl LoadSpriteSheet + movs r6, #0 + ldr r0, _08142EF4 + mov r8, r0 +_08142DE4: + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r0, r0, #0x1b + lsrs r4, r0, #0x18 + movs r5, #0 + lsls r7, r6, #2 +_08142DF0: + lsls r1, r5, #1 + adds r1, r1, r5 + lsls r1, r1, #3 + ldr r0, _08142EF8 + adds r0, r1, r0 + adds r1, #0x94 + adds r2, r4, #0 + adds r2, #0x5c + movs r3, #0x1e + bl CreateSprite + ldr r1, _08142EFC + ldr r1, [r1] + adds r2, r5, #0 + adds r2, #0x1d + adds r2, r7, r2 + adds r1, #0x3c + adds r1, r1, r2 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + adds r0, #0x2c + ldrb r1, [r0] + movs r2, #0x40 + orrs r1, r2 + strb r1, [r0] + adds r0, r4, #0 + adds r0, #0x18 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x47 + bls _08142E3A + movs r4, #0 +_08142E3A: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #3 + bls _08142DF0 + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #2 + bls _08142DE4 + movs r6, #0 + ldr r4, _08142EF4 +_08142E52: + lsls r1, r6, #1 + adds r1, r1, r6 + lsls r1, r1, #3 + ldr r0, _08142F00 + adds r0, r1, r0 + adds r1, #0x94 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r2, #0x46 + movs r3, #0x1e + bl CreateSprite + ldr r1, _08142EFC + ldr r1, [r1] + adds r1, r1, r6 + adds r1, #0x65 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x2c + ldrb r1, [r0] + movs r2, #0x40 + orrs r1, r2 + strb r1, [r0] + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #3 + bls _08142E52 + movs r6, #0 + ldr r4, _08142EF4 +_08142E98: + lsls r2, r6, #1 + adds r2, r2, r6 + lsls r2, r2, #3 + ldr r0, _08142F04 + adds r0, r2, r0 + adds r2, #0x5c + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + movs r1, #0x7e + movs r3, #0x1e + bl CreateSprite + ldr r1, _08142EFC + ldr r1, [r1] + adds r1, r1, r6 + adds r1, #0x69 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x2c + ldrb r1, [r0] + movs r2, #0x40 + orrs r1, r2 + strb r1, [r0] + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #2 + bls _08142E98 + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08142EE8: .4byte 0x0859703C +_08142EEC: .4byte 0x0201C000 +_08142EF0: .4byte 0x08597044 +_08142EF4: .4byte 0x020205AC +_08142EF8: .4byte 0x08597164 +_08142EFC: .4byte 0x0203A854 +_08142F00: .4byte 0x085970BC +_08142F04: .4byte 0x0859711C + thumb_func_end sub_08142D9C + + thumb_func_start unref_sub_8142E3C +unref_sub_8142E3C: @ 0x08142F08 + push {r4, lr} + movs r4, #0 +_08142F0C: + ldr r0, _08142F34 + ldr r0, [r0] + adds r0, r0, r4 + adds r0, #0x59 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08142F38 + adds r0, r0, r1 + bl DestroySprite + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xb + bls _08142F0C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08142F34: .4byte 0x0203A854 +_08142F38: .4byte 0x020205AC + thumb_func_end unref_sub_8142E3C + + thumb_func_start sub_08142F3C +sub_08142F3C: @ 0x08142F3C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov ip, r1 + cmp r0, #0 + beq _08142F8C + cmp r0, #1 + bne _08143032 + movs r4, #0 + ldr r5, _08142F84 + ldr r3, _08142F88 + movs r2, #4 +_08142F5E: + ldr r0, [r3] + adds r0, r0, r4 + adds r0, #0x59 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x12 + bls _08142F5E + b _08143032 + .align 2, 0 +_08142F84: .4byte 0x020205AC +_08142F88: .4byte 0x0203A854 +_08142F8C: + movs r4, #0 + ldr r0, _08142FD4 + mov sb, r0 + ldr r7, _08142FD8 + adds r1, r7, #4 + mov r8, r1 + ldr r5, _08142FDC + movs r6, #5 + rsbs r6, r6, #0 +_08142F9E: + mov r0, sb + ldr r2, [r0] + lsls r3, r4, #3 + mov r1, r8 + adds r0, r3, r1 + ldr r1, [r2, #8] + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _08142FE0 + adds r0, r3, r7 + ldrb r0, [r0, #2] + cmp r0, ip + beq _08142FE0 + adds r0, r2, r4 + adds r0, #0x59 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + b _08142FF8 + .align 2, 0 +_08142FD4: .4byte 0x0203A854 +_08142FD8: .4byte 0x08595E90 +_08142FDC: .4byte 0x020205AC +_08142FE0: + adds r0, r2, r4 + adds r0, #0x59 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + adds r1, #0x3e + ldrb r2, [r1] + adds r0, r6, #0 + ands r0, r2 + strb r0, [r1] +_08142FF8: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xb + bls _08142F9E + cmp r4, #0x12 + bhi _08143032 + ldr r6, _08143040 + ldr r3, _08143044 + movs r5, #5 + rsbs r5, r5, #0 +_0814300E: + ldr r0, [r3] + adds r0, r0, r4 + adds r0, #0x59 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + adds r1, #0x3e + ldrb r2, [r1] + adds r0, r5, #0 + ands r0, r2 + strb r0, [r1] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x12 + bls _0814300E +_08143032: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08143040: .4byte 0x020205AC +_08143044: .4byte 0x0203A854 + thumb_func_end sub_08142F3C + + thumb_func_start sub_08143048 +sub_08143048: @ 0x08143048 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r5, #0 + ldr r6, _081430F4 + ldr r4, _081430F8 + movs r0, #4 + mov r8, r0 +_08143058: + ldr r0, _081430FC + movs r1, #0x74 + movs r2, #0x14 + movs r3, #0xa + bl CreateSprite + ldr r1, [r6] + adds r3, r5, #0 + adds r3, #0x31 + adds r1, #0x3c + adds r1, r1, r3 + strb r0, [r1] + ldr r0, [r6] + adds r0, #0x3c + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r1, [r0] + mov r2, r8 + orrs r1, r2 + strb r1, [r0] + ldr r2, [r6] + adds r2, #0x3c + adds r2, r2, r3 + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #1 + strh r1, [r0, #0x2e] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _08143100 + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r1, [r0, #5] + movs r7, #0xd + rsbs r7, r7, #0 + adds r2, r7, #0 + ands r1, r2 + mov r2, r8 + orrs r1, r2 + strb r1, [r0, #5] + ldr r0, [r6] + adds r0, #0x3c + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #8 + bl StartSpriteAnim + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #5 + bls _08143058 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081430F4: .4byte 0x0203A854 +_081430F8: .4byte 0x020205AC +_081430FC: .4byte 0x085974DC +_08143100: .4byte 0x081439D9 + thumb_func_end sub_08143048 + + thumb_func_start sub_08143104 +sub_08143104: @ 0x08143104 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sb, r1 + movs r6, #0 + cmp r0, #0 + beq _08143150 + ldr r4, _08143148 + ldr r3, _0814314C + movs r2, #4 +_08143122: + ldr r0, [r3] + adds r0, r0, r6 + adds r0, #0x6d + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #5 + bls _08143122 + b _0814320E + .align 2, 0 +_08143148: .4byte 0x020205AC +_0814314C: .4byte 0x0203A854 +_08143150: + ldr r0, _08143190 + mov r8, r0 + ldr r7, _08143194 + ldr r0, _08143198 + mov ip, r0 + movs r0, #5 + rsbs r0, r0, #0 + mov sl, r0 +_08143160: + mov r0, r8 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0xc + adds r0, r0, r6 + ldrb r0, [r0] + cmp r0, #0 + beq _08143174 + cmp r6, sb + bne _0814319C +_08143174: + adds r0, r1, r6 + adds r0, #0x6d + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + b _08143204 + .align 2, 0 +_08143190: .4byte 0x0203A854 +_08143194: .4byte 0x020205AC +_08143198: .4byte 0x08595D00 +_0814319C: + adds r5, r6, #0 + adds r5, #0x31 + adds r0, r1, #0 + adds r0, #0x3c + adds r0, r0, r5 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r7 + adds r1, #0x3e + ldrb r2, [r1] + mov r0, sl + ands r0, r2 + strb r0, [r1] + mov r0, r8 + ldr r3, [r0] + adds r4, r3, #0 + adds r4, #0x3c + adds r4, r4, r5 + ldrb r0, [r4] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r7 + adds r3, #0xc + adds r3, r3, r6 + ldrb r1, [r3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, ip + ldrb r0, [r0, #3] + adds r0, #1 + lsls r0, r0, #3 + adds r0, #4 + strh r0, [r2, #0x20] + ldrb r0, [r4] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r7 + ldrb r1, [r3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, ip + ldrb r0, [r0, #4] + adds r0, #1 + lsls r0, r0, #3 + adds r0, #3 + strh r0, [r2, #0x22] +_08143204: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #5 + bls _08143160 +_0814320E: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08143104 + + thumb_func_start sub_0814321C +sub_0814321C: @ 0x0814321C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _0814324C + ldr r2, _08143244 + ldr r0, _08143248 + ldr r0, [r0] + adds r0, #0x6c + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + b _0814329C + .align 2, 0 +_08143244: .4byte 0x020205AC +_08143248: .4byte 0x0203A854 +_0814324C: + ldr r4, _081432A4 + ldr r3, _081432A8 + ldr r0, [r3] + adds r0, #0x6c + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + ldr r3, [r3] + adds r3, #0x6c + ldrb r0, [r3] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldr r0, _081432AC + lsls r2, r5, #2 + adds r2, r2, r5 + lsls r2, r2, #2 + adds r2, r2, r0 + ldrb r0, [r2, #3] + adds r0, #2 + lsls r0, r0, #3 + strh r0, [r1, #0x20] + ldrb r0, [r3] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r0, [r2, #4] + adds r0, #2 + lsls r0, r0, #3 + strh r0, [r1, #0x22] +_0814329C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081432A4: .4byte 0x020205AC +_081432A8: .4byte 0x0203A854 +_081432AC: .4byte 0x08595D00 + thumb_func_end sub_0814321C + + thumb_func_start sub_081432B0 +sub_081432B0: @ 0x081432B0 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + ldr r4, _08143338 + ldr r0, [r4] + ldr r5, _0814333C + adds r1, r5, #0 + bl LZ77UnCompWram + str r5, [sp, #4] + add r0, sp, #4 + ldrh r2, [r4, #6] + lsls r2, r2, #0x10 + ldrh r1, [r4, #4] + orrs r1, r2 + str r1, [r0, #4] + bl LoadSpriteSheet + movs r1, #0xf + mov r0, sp + strh r1, [r0] + movs r0, #0 + ldr r7, _08143340 +_081432DC: + movs r4, #0 + adds r6, r0, #1 + lsls r5, r0, #2 +_081432E2: + adds r1, r5, r4 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + ldr r1, _08143344 + adds r0, r0, r1 + movs r1, #0x28 + mov r2, sp + bl sub_08142D2C + ldr r1, _08143348 + ldr r1, [r1] + adds r2, r4, #7 + adds r2, r5, r2 + adds r1, #0x3c + adds r1, r1, r2 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r7 + adds r1, #0x2c + ldrb r0, [r1] + movs r2, #0x40 + orrs r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r1] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _081432E2 + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bls _081432DC + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08143338: .4byte 0x08596FD0 +_0814333C: .4byte 0x0201C000 +_08143340: .4byte 0x020205AC +_08143344: .4byte 0x085971C4 +_08143348: .4byte 0x0203A854 + thumb_func_end sub_081432B0 + + thumb_func_start sub_0814334C +sub_0814334C: @ 0x0814334C + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r0, _081433D0 + ldr r1, [r0] + ldrh r0, [r6, #0x2e] + ldrh r1, [r1, #0x24] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + asrs r1, r0, #0x10 + ldr r0, _081433D4 + cmp r1, r0 + ble _0814336E + ldr r2, _081433D8 + adds r0, r1, r2 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_0814336E: + adds r0, r4, #0 + bl Sin2 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r4, #0 + bl Cos2 + lsls r2, r5, #0x10 + asrs r2, r2, #0x10 + movs r3, #0x30 + ldrsh r1, [r6, r3] + muls r1, r2, r1 + asrs r1, r1, #0xc + strh r1, [r6, #0x24] + lsls r0, r0, #0x10 + asrs r4, r0, #0x10 + rsbs r1, r4, #0 + movs r3, #0x30 + ldrsh r0, [r6, r3] + muls r0, r1, r0 + asrs r0, r0, #0xc + strh r0, [r6, #0x26] + ldrb r0, [r6, #3] + lsls r0, r0, #0x1a + lsrs r3, r0, #0x1b + cmp r2, #0 + bge _081433A8 + adds r2, #0xf +_081433A8: + lsls r0, r2, #0xc + lsrs r5, r0, #0x10 + ldr r1, _081433DC + lsls r0, r3, #3 + adds r1, r0, r1 + adds r0, r4, #0 + cmp r0, #0 + bge _081433BA + adds r0, #0xf +_081433BA: + asrs r0, r0, #4 + strh r0, [r1, #6] + strh r0, [r1] + strh r5, [r1, #2] + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + rsbs r0, r0, #0 + strh r0, [r1, #4] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081433D0: .4byte 0x0203A854 +_081433D4: .4byte 0x00000167 +_081433D8: .4byte 0xFFFFFE98 +_081433DC: .4byte 0x02021B3C + thumb_func_end sub_0814334C + + thumb_func_start sub_081433E0 +sub_081433E0: @ 0x081433E0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + movs r5, #0 + ldr r7, _081435B4 + mov r6, sp +_081433EE: + ldr r0, _081435B8 + lsls r4, r5, #3 + adds r4, r4, r0 + ldr r0, [r4] + adds r1, r7, #0 + bl LZ77UnCompWram + str r7, [sp] + ldrh r2, [r4, #4] + ldr r0, _081435BC + ldr r1, [r6, #4] + ands r1, r0 + orrs r1, r2 + str r1, [r6, #4] + ldrh r2, [r4, #6] + lsls r2, r2, #0x10 + ldr r0, _081435C0 + ands r0, r1 + orrs r0, r2 + str r0, [r6, #4] + mov r0, sp + bl LoadSpriteSheet + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #4 + bls _081433EE + ldr r0, _081435C4 + movs r1, #0xd0 + movs r2, #0x10 + movs r3, #4 + bl CreateSprite + ldr r3, _081435C8 + ldr r1, [r3] + adds r1, #0x50 + strb r0, [r1] + ldr r4, _081435CC + ldr r0, [r3] + adds r0, #0x50 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x2c + ldrb r1, [r0] + movs r2, #0x40 + orrs r1, r2 + strb r1, [r0] + movs r5, #0 + adds r7, r3, #0 +_08143458: + lsls r1, r5, #0x13 + movs r0, #0xc4 + lsls r0, r0, #0x10 + adds r1, r1, r0 + asrs r1, r1, #0x10 + ldr r0, _081435D0 + movs r2, #0x18 + movs r3, #0 + bl CreateSprite + ldr r1, [r7] + adds r3, r5, #0 + adds r3, #0x15 + adds r1, #0x3c + adds r1, r1, r3 + strb r0, [r1] + ldr r0, [r7] + adds r0, #0x3c + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + ldr r0, [r7] + adds r0, #0x3c + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x2c + ldrb r1, [r0] + movs r6, #0x40 + orrs r1, r6 + strb r1, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #3 + bls _08143458 + ldr r0, _081435D4 + movs r1, #0x78 + movs r2, #0x44 + movs r3, #4 + bl CreateSprite + ldr r2, _081435C8 + ldr r1, [r2] + adds r1, #0x55 + strb r0, [r1] + ldr r3, _081435CC + ldr r0, [r2] + adds r0, #0x55 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x2c + ldrb r1, [r0] + orrs r1, r6 + strb r1, [r0] + movs r5, #0 + adds r4, r2, #0 + adds r7, r3, #0 +_081434E8: + lsls r1, r5, #0x14 + movs r2, #0xc0 + lsls r2, r2, #0x10 + adds r1, r1, r2 + asrs r1, r1, #0x10 + ldr r0, _081435D8 + movs r2, #0x24 + movs r3, #4 + bl CreateSprite + ldr r1, [r4] + adds r2, r5, #0 + adds r2, #0x1a + adds r1, #0x3c + adds r1, r1, r2 + strb r0, [r1] + ldr r0, [r4] + adds r0, #0x3c + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + adds r0, #0x3e + ldrb r1, [r0] + movs r3, #4 + mov r8, r3 + mov r3, r8 + orrs r1, r3 + strb r1, [r0] + ldr r0, [r4] + adds r0, #0x3c + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + adds r0, #0x2c + ldrb r1, [r0] + movs r6, #0x40 + orrs r1, r6 + strb r1, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #2 + bls _081434E8 + ldr r0, _081435DC + movs r1, #0x98 + movs r2, #0x60 + movs r3, #9 + bl CreateSprite + ldr r3, _081435C8 + ldr r1, [r3] + adds r1, #0x6c + strb r0, [r1] + ldr r4, _081435CC + ldr r0, [r3] + adds r0, #0x6c + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r2, [r1, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + mov r2, r8 + orrs r0, r2 + strb r0, [r1, #5] + ldr r0, [r3] + adds r0, #0x6c + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x2c + ldrb r1, [r0] + orrs r1, r6 + strb r1, [r0] + ldr r0, [r3] + adds r0, #0x6c + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081435B4: .4byte 0x0201C000 +_081435B8: .4byte 0x08597304 +_081435BC: .4byte 0xFFFF0000 +_081435C0: .4byte 0x0000FFFF +_081435C4: .4byte 0x08597398 +_081435C8: .4byte 0x0203A854 +_081435CC: .4byte 0x020205AC +_081435D0: .4byte 0x085973B0 +_081435D4: .4byte 0x085973C8 +_081435D8: .4byte 0x085973E0 +_081435DC: .4byte 0x085973F8 + thumb_func_end sub_081433E0 + + thumb_func_start sub_081435E0 +sub_081435E0: @ 0x081435E0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + movs r0, #0xfa + lsls r0, r0, #2 + mov r8, r0 + movs r4, #0 + movs r6, #0 + ldr r1, _081436CC + mov sb, r1 + ldr r0, _081436D0 + mov sl, r0 +_08143600: + adds r0, r7, #0 + mov r1, r8 + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _081436D0 + ldr r0, [r1] + adds r3, r6, #0 + adds r3, #0x15 + adds r0, #0x3c + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _081436CC + adds r0, r0, r1 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + cmp r5, #0 + bne _0814363A + cmp r4, #0 + bne _0814363A + cmp r6, #3 + bne _08143698 +_0814363A: + mov r4, sl + ldr r0, [r4] + adds r0, #0x3c + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sb + adds r0, #0x3e + ldrb r1, [r0] + movs r4, #5 + rsbs r4, r4, #0 + adds r2, r4, #0 + ands r1, r2 + strb r1, [r0] + mov r1, sl + ldr r0, [r1] + adds r0, #0x3c + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + mov r4, sb + adds r3, r0, r4 + adds r4, r3, #0 + adds r4, #0x40 + ldr r1, _081436D4 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r5, #2 + adds r0, r0, r1 + ldrh r2, [r0] + ldrh r4, [r4] + adds r2, r2, r4 + ldr r4, _081436D8 + adds r0, r4, #0 + ands r2, r0 + ldrh r0, [r3, #4] + ldr r4, _081436DC + adds r1, r4, #0 + ands r0, r1 + orrs r0, r2 + strh r0, [r3, #4] + movs r4, #1 +_08143698: + adds r0, r7, #0 + mov r1, r8 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + mov r0, r8 + movs r1, #0xa + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #3 + bls _08143600 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081436CC: .4byte 0x020205AC +_081436D0: .4byte 0x0203A854 +_081436D4: .4byte 0x020205B4 +_081436D8: .4byte 0x000003FF +_081436DC: .4byte 0xFFFFFC00 + thumb_func_end sub_081435E0 + + thumb_func_start sub_081436E0 +sub_081436E0: @ 0x081436E0 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08143718 + mov r0, sp + movs r2, #5 + bl memcpy + cmp r4, #0x13 + bls _081436F8 + movs r4, #0 +_081436F8: + ldr r3, _0814371C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r2, r0, #2 + adds r0, r2, r3 + ldrb r0, [r0, #1] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #4 + beq _0814374C + cmp r0, #4 + bgt _08143720 + cmp r0, #3 + beq _08143726 + b _08143790 + .align 2, 0 +_08143718: .4byte 0x085976B8 +_0814371C: .4byte 0x08595D00 +_08143720: + cmp r0, #0xc + beq _08143770 + b _08143790 +_08143726: + adds r0, r4, #0 + movs r1, #5 + bl __udivsi3 + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _08143748 + ldr r0, [r0] + adds r0, #0x16 + adds r1, r0, r4 + ldrb r0, [r1] + cmp r0, #3 + bhi _08143790 + ldrb r0, [r1] + adds r0, #1 + b _08143764 + .align 2, 0 +_08143748: .4byte 0x0203A854 +_0814374C: + subs r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0814376C + ldr r0, [r0] + adds r0, #0x12 + adds r1, r0, r4 + ldrb r0, [r1] + cmp r0, #2 + bhi _08143790 + ldrb r0, [r1] + adds r0, #2 +_08143764: + add r0, sp + ldrb r0, [r0] + b _08143792 + .align 2, 0 +_0814376C: .4byte 0x0203A854 +_08143770: + ldr r0, _0814378C + ldr r1, [r0] + adds r0, r3, #0 + adds r0, #8 + adds r0, r2, r0 + ldr r1, [r1, #8] + ldr r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _08143790 + mov r0, sp + ldrb r0, [r0, #4] + b _08143792 + .align 2, 0 +_0814378C: .4byte 0x0203A854 +_08143790: + movs r0, #0 +_08143792: + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081436E0 + + thumb_func_start sub_0814379C +sub_0814379C: @ 0x0814379C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081437E8 + ldr r1, [r1] + adds r1, #0x55 + ldrb r2, [r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + ldr r2, _081437EC + adds r4, r1, r2 + bl sub_081436E0 + adds r3, r4, #0 + adds r3, #0x2b + strb r0, [r3] + adds r2, r4, #0 + adds r2, #0x40 + ldr r1, [r4, #8] + ldrb r0, [r3] + ldr r1, [r1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r1, [r0] + ldrh r2, [r2] + adds r1, r1, r2 + ldr r2, _081437F0 + adds r0, r2, #0 + ands r1, r0 + ldrh r2, [r4, #4] + ldr r0, _081437F4 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, #4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081437E8: .4byte 0x0203A854 +_081437EC: .4byte 0x020205AC +_081437F0: .4byte 0x000003FF +_081437F4: .4byte 0xFFFFFC00 + thumb_func_end sub_0814379C + + thumb_func_start sub_081437F8 +sub_081437F8: @ 0x081437F8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + movs r6, #0 + ldr r1, _08143824 + ldr r0, [r1] + ldrb r0, [r0, #0x19] + adds r5, r1, #0 + cmp r0, #1 + bne _08143812 + movs r6, #2 +_08143812: + cmp r2, #6 + bls _08143818 + b _08143974 +_08143818: + lsls r0, r2, #2 + ldr r1, _08143828 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08143824: .4byte 0x0203A854 +_08143828: .4byte 0x0814382C +_0814382C: @ jump table + .4byte _08143974 @ case 0 + .4byte _08143930 @ case 1 + .4byte _08143908 @ case 2 + .4byte _081438FC @ case 3 + .4byte _081438D4 @ case 4 + .4byte _081438C8 @ case 5 + .4byte _08143848 @ case 6 +_08143848: + movs r4, #0 + ldr r5, _081438B8 + ldr r6, _081438BC + movs r0, #5 + rsbs r0, r0, #0 + mov ip, r0 + adds r7, r5, #0 + adds r7, #8 + ldr r2, _081438C0 + mov r8, r2 +_0814385C: + ldr r0, [r6] + adds r3, r4, #0 + adds r3, #0x1a + adds r0, #0x3c + adds r0, r0, r3 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + adds r1, #0x3e + ldrb r2, [r1] + mov r0, ip + ands r0, r2 + strb r0, [r1] + ldr r0, [r6] + adds r0, #0x3c + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r3, r0, r5 + adds r2, r3, #0 + adds r2, #0x40 + adds r0, r0, r7 + ldr r0, [r0] + ldr r0, [r0] + ldrh r1, [r0] + ldrh r2, [r2] + adds r1, r1, r2 + ldr r2, _081438C4 + adds r0, r2, #0 + ands r1, r0 + ldrh r2, [r3, #4] + mov r0, r8 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #4] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #2 + bls _0814385C + b _081439C0 + .align 2, 0 +_081438B8: .4byte 0x020205AC +_081438BC: .4byte 0x0203A854 +_081438C0: .4byte 0xFFFFFC00 +_081438C4: .4byte 0x000003FF +_081438C8: + ldr r2, _081438D0 + ldr r0, [r5] + adds r0, #0x58 + b _08143936 + .align 2, 0 +_081438D0: .4byte 0x020205AC +_081438D4: + ldr r2, _081438F8 + ldr r0, [r5] + adds r0, #0x58 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r3, r0, r2 + adds r4, r3, #0 + adds r4, #0x40 + adds r2, #8 + adds r0, r0, r2 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r6, #2 + adds r0, r0, r1 + ldrh r1, [r0, #8] + b _08143952 + .align 2, 0 +_081438F8: .4byte 0x020205AC +_081438FC: + ldr r2, _08143904 + ldr r0, [r5] + adds r0, #0x57 + b _08143936 + .align 2, 0 +_08143904: .4byte 0x020205AC +_08143908: + ldr r2, _0814392C + ldr r0, [r5] + adds r0, #0x57 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r3, r0, r2 + adds r4, r3, #0 + adds r4, #0x40 + adds r2, #8 + adds r0, r0, r2 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r6, #2 + adds r0, r0, r1 + ldrh r1, [r0, #8] + b _08143952 + .align 2, 0 +_0814392C: .4byte 0x020205AC +_08143930: + ldr r2, _08143968 + ldr r0, [r5] + adds r0, #0x56 +_08143936: + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r3, r0, r2 + adds r4, r3, #0 + adds r4, #0x40 + adds r2, #8 + adds r0, r0, r2 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r6, #2 + adds r0, r0, r1 + ldrh r1, [r0, #4] +_08143952: + ldrh r4, [r4] + adds r1, r1, r4 + ldr r2, _0814396C + adds r0, r2, #0 + ands r1, r0 + ldrh r2, [r3, #4] + ldr r0, _08143970 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #4] + b _081439C0 + .align 2, 0 +_08143968: .4byte 0x020205AC +_0814396C: .4byte 0x000003FF +_08143970: .4byte 0xFFFFFC00 +_08143974: + movs r4, #0 + lsls r7, r6, #2 + ldr r6, _081439CC + movs r0, #8 + adds r0, r0, r6 + mov ip, r0 + ldr r2, _081439D0 + mov r8, r2 +_08143984: + ldr r0, [r5] + adds r0, r0, r4 + adds r0, #0x56 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r3, r0, r6 + adds r2, r3, #0 + adds r2, #0x40 + add r0, ip + ldr r0, [r0] + ldr r0, [r0] + adds r0, r7, r0 + ldrh r1, [r0, #8] + ldrh r2, [r2] + adds r1, r1, r2 + ldr r2, _081439D4 + adds r0, r2, #0 + ands r1, r0 + ldrh r2, [r3, #4] + mov r0, r8 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #4] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #2 + bls _08143984 +_081439C0: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081439CC: .4byte 0x020205AC +_081439D0: .4byte 0xFFFFFC00 +_081439D4: .4byte 0x000003FF + thumb_func_end sub_081437F8 + + thumb_func_start sub_081439D8 +sub_081439D8: @ 0x081439D8 + ldr r1, _081439E4 + ldr r1, [r1] + ldrh r1, [r1, #0x26] + strh r1, [r0, #0x24] + bx lr + .align 2, 0 +_081439E4: .4byte 0x0203A854 + thumb_func_end sub_081439D8 + + thumb_func_start sub_081439E8 +sub_081439E8: @ 0x081439E8 + push {r4, r5, lr} + sub sp, #8 + ldr r4, _08143A54 + ldr r0, [r4] + ldr r5, _08143A58 + adds r1, r5, #0 + bl LZ77UnCompWram + str r5, [sp] + ldrh r1, [r4, #6] + lsls r1, r1, #0x10 + ldrh r0, [r4, #4] + orrs r0, r1 + str r0, [sp, #4] + mov r0, sp + bl LoadSpriteSheet + ldr r0, _08143A5C + movs r1, #0x74 + movs r2, #0x50 + movs r3, #0x51 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08143A60 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r0, _08143A64 + ldr r0, [r0] + ldrh r0, [r0, #0x24] + movs r2, #0 + strh r0, [r1, #0x2e] + strh r2, [r1, #0x30] + adds r3, r1, #0 + adds r3, #0x2c + ldrb r0, [r3] + movs r2, #0x40 + orrs r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r3] + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #2 + orrs r0, r2 + strb r0, [r1] + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08143A54: .4byte 0x085974FC +_08143A58: .4byte 0x0201C000 +_08143A5C: .4byte 0x08597504 +_08143A60: .4byte 0x020205AC +_08143A64: .4byte 0x0203A854 + thumb_func_end sub_081439E8 + + thumb_func_start sub_08143A68 +sub_08143A68: @ 0x08143A68 + ldrb r0, [r0, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + ldr r1, _08143A8C + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08143A90 + ldr r2, [r1] + ldrh r1, [r2, #0x2c] + strh r1, [r0, #6] + ldrh r1, [r2, #0x2c] + strh r1, [r0] + ldrh r1, [r2, #0x2e] + strh r1, [r0, #2] + ldrh r1, [r2, #0x30] + strh r1, [r0, #4] + bx lr + .align 2, 0 +_08143A8C: .4byte 0x02021B3C +_08143A90: .4byte 0x0203A854 + thumb_func_end sub_08143A68 + + thumb_func_start sub_08143A94 +sub_08143A94: @ 0x08143A94 + push {r4, r5, r6, lr} + movs r4, #0 + ldr r5, _08143B00 + ldr r6, _08143B04 +_08143A9C: + movs r3, #0x39 + subs r3, r3, r4 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r0, _08143B08 + movs r1, #0x74 + movs r2, #0x50 + bl CreateSprite + ldr r1, [r5] + adds r1, #0x3c + adds r1, r1, r4 + strb r0, [r1] + ldr r0, [r5] + adds r0, #0x3c + adds r1, r0, r4 + ldrb r0, [r1] + cmp r0, #0x40 + beq _08143AF0 + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + ldr r0, [r5] + adds r0, #0x3c + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #2 + orrs r1, r2 + strb r1, [r0] +_08143AF0: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #5 + bls _08143A9C + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08143B00: .4byte 0x0203A854 +_08143B04: .4byte 0x020205AC +_08143B08: .4byte 0x085974DC + thumb_func_end sub_08143A94 + + thumb_func_start sub_08143B0C +sub_08143B0C: @ 0x08143B0C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _08143B88 + ldr r0, [r0] + adds r0, #0x3c + ldrb r5, [r0] + movs r6, #0 + ldr r7, _08143B8C + movs r0, #0x1c + adds r0, r0, r7 + mov sl, r0 + movs r1, #0x2e + adds r1, r1, r7 + mov sb, r1 + mov r8, r6 +_08143B30: + lsls r4, r5, #4 + adds r4, r4, r5 + lsls r4, r4, #2 + adds r0, r4, r7 + adds r3, r0, #0 + adds r3, #0x3e + ldrb r1, [r3] + movs r2, #4 + orrs r1, r2 + strb r1, [r3] + mov r1, sl + adds r2, r4, r1 + ldr r1, _08143B90 + str r1, [r2] + movs r1, #0 + bl StartSpriteAnim + movs r1, #0 + adds r2, r5, #1 + adds r3, r6, #1 +_08143B58: + lsls r0, r1, #1 + adds r0, r0, r4 + add r0, sb + mov r5, r8 + strh r5, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #7 + bls _08143B58 + lsls r0, r2, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r3, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #5 + bls _08143B30 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08143B88: .4byte 0x0203A854 +_08143B8C: .4byte 0x020205AC +_08143B90: .4byte 0x08007141 + thumb_func_end sub_08143B0C + + thumb_func_start sub_08143B94 +sub_08143B94: @ 0x08143B94 + push {r4, r5, lr} + adds r3, r0, #0 + ldr r0, _08143BC4 + ldr r0, [r0] + ldrh r4, [r0, #0x24] + movs r2, #0x24 + ldrsh r1, [r0, r2] + ldrh r2, [r3, #0x34] + movs r5, #0x34 + ldrsh r0, [r3, r5] + cmp r1, r0 + ble _08143BD0 + movs r1, #0xb4 + lsls r1, r1, #1 + adds r0, r2, r1 + subs r2, r0, r4 + strh r2, [r3, #0x3a] + lsls r1, r2, #0x10 + ldr r0, _08143BC8 + cmp r1, r0 + ble _08143BD4 + ldr r5, _08143BCC + adds r0, r2, r5 + b _08143BD2 + .align 2, 0 +_08143BC4: .4byte 0x0203A854 +_08143BC8: .4byte 0x01670000 +_08143BCC: .4byte 0xFFFFFE98 +_08143BD0: + subs r0, r2, r4 +_08143BD2: + strh r0, [r3, #0x3a] +_08143BD4: + movs r1, #0x3a + ldrsh r0, [r3, r1] + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08143B94 + + thumb_func_start sub_08143BE0 +sub_08143BE0: @ 0x08143BE0 + push {r4, r5, lr} + bl sub_08143B94 + ldr r5, _08143C0C + ldr r4, [r5] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + bl __floatsisf + ldr r1, _08143C10 + bl __divsf3 + bl __fixunssfsi + adds r4, #0x7e + strb r0, [r4] + ldr r0, [r5] + adds r0, #0x7e + ldrb r0, [r0] + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08143C0C: .4byte 0x0203A854 +_08143C10: .4byte 0x41F00000 + thumb_func_end sub_08143BE0 + + thumb_func_start sub_08143C14 +sub_08143C14: @ 0x08143C14 + push {r4, lr} + adds r4, r0, #0 + bl sub_08143B94 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x1e + bl __modsi3 + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + cmp r1, #0xe + bne _08143C34 + movs r0, #0 + strh r0, [r4, #0x32] + b _08143C4A +_08143C34: + cmp r1, #0xd + bgt _08143C3C + movs r0, #0xe + b _08143C3E +_08143C3C: + movs r0, #0x2b +_08143C3E: + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 +_08143C4A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_08143C14 + + thumb_func_start sub_08143C50 +sub_08143C50: @ 0x08143C50 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + ldr r5, _08143C98 + ldr r6, [r5] + adds r4, r6, #0 + adds r4, #0x8c + adds r1, r6, #0 + adds r1, #0x90 + ldr r0, [r4] + ldr r1, [r1] + bl __addsf3 + adds r1, r0, #0 + str r1, [r4] + subs r4, #4 + ldr r0, [r4] + bl __addsf3 + adds r6, r0, #0 + str r6, [r4] + ldr r0, _08143C9C + mov r8, r0 + adds r0, r6, #0 + mov r1, r8 + bl __gesf2 + cmp r0, #0 + blt _08143CA0 + adds r0, r6, #0 + mov r1, r8 + bl __subsf3 + b _08143CB4 + .align 2, 0 +_08143C98: .4byte 0x0203A854 +_08143C9C: .4byte 0x43B40000 +_08143CA0: + ldr r1, _08143D4C + adds r0, r6, #0 + bl __ltsf2 + cmp r0, #0 + bge _08143CB6 + adds r0, r6, #0 + mov r1, r8 + bl __addsf3 +_08143CB4: + str r0, [r4] +_08143CB6: + ldr r5, [r5] + adds r0, r5, #0 + adds r0, #0x88 + ldr r0, [r0] + bl __fixsfsi + strh r0, [r7, #0x34] + adds r4, r5, #0 + adds r4, #0x98 + adds r1, r5, #0 + adds r1, #0x9c + ldr r0, [r4] + ldr r1, [r1] + bl __addsf3 + adds r1, r0, #0 + str r1, [r4] + subs r4, #4 + ldr r0, [r4] + bl __addsf3 + str r0, [r4] + bl __fixsfsi + strh r0, [r7, #0x36] + ldrh r0, [r7, #0x34] + bl Sin2 + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldrh r0, [r7, #0x34] + bl Cos2 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + movs r2, #0x36 + ldrsh r1, [r7, r2] + muls r1, r4, r1 + asrs r1, r1, #0xc + strh r1, [r7, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + rsbs r0, r0, #0 + movs r2, #0x36 + ldrsh r1, [r7, r2] + muls r0, r1, r0 + asrs r0, r0, #0xc + strh r0, [r7, #0x26] + bl IsSEPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08143D40 + ldr r0, _08143D50 + ldr r4, _08143D54 + ldrh r2, [r7, #0x24] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r1, r4, #0 + bl m4aMPlayPanpotControl + ldr r0, _08143D58 + ldrh r2, [r7, #0x24] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r1, r4, #0 + bl m4aMPlayPanpotControl +_08143D40: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08143D4C: .4byte 0x00000000 +_08143D50: .4byte 0x03007510 +_08143D54: .4byte 0x0000FFFF +_08143D58: .4byte 0x03007550 + thumb_func_end sub_08143C50 + + thumb_func_start sub_08143D5C +sub_08143D5C: @ 0x08143D5C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _08143DB8 + ldr r1, [r0] + ldrh r0, [r5, #0x3a] + ldrh r1, [r1, #0x24] + adds r2, r0, r1 + strh r2, [r5, #0x34] + lsls r1, r2, #0x10 + ldr r0, _08143DBC + cmp r1, r0 + ble _08143D7A + ldr r1, _08143DC0 + adds r0, r2, r1 + strh r0, [r5, #0x34] +_08143D7A: + ldrh r0, [r5, #0x34] + bl Sin2 + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldrh r0, [r5, #0x34] + bl Cos2 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + movs r2, #0x36 + ldrsh r1, [r5, r2] + muls r1, r4, r1 + asrs r1, r1, #0xc + strh r1, [r5, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + rsbs r0, r0, #0 + movs r2, #0x36 + ldrsh r1, [r5, r2] + muls r0, r1, r0 + ldr r1, _08143DC4 + asrs r0, r0, #0xc + ldrh r1, [r1] + adds r0, r0, r1 + strh r0, [r5, #0x26] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08143DB8: .4byte 0x0203A854 +_08143DBC: .4byte 0x01670000 +_08143DC0: .4byte 0xFFFFFE98 +_08143DC4: .4byte 0x02021B3A + thumb_func_end sub_08143D5C + + thumb_func_start sub_08143DC8 +sub_08143DC8: @ 0x08143DC8 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + bl sub_08143C50 + ldrh r0, [r5, #0x32] + adds r0, #1 + strh r0, [r5, #0x32] + ldrh r0, [r5, #0x36] + adds r0, #0x84 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xd4 + bls _08143DEE + adds r2, r5, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + b _08143DFA +_08143DEE: + adds r2, r5, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 +_08143DFA: + strb r0, [r2] + movs r1, #0x32 + ldrsh r0, [r5, r1] + cmp r0, #0x1d + ble _08143EC4 + movs r1, #0x2e + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _08143E38 + ldr r7, _08143E30 + ldr r6, [r7] + adds r4, r6, #0 + adds r4, #0x94 + adds r0, r6, #0 + adds r0, #0xa0 + ldr r0, [r0] + ldr r1, _08143E34 + bl __subsf3 + adds r1, r0, #0 + ldr r0, [r4] + bl __lesf2 + cmp r0, #0 + bgt _08143EC4 + b _08143E58 + .align 2, 0 +_08143E30: .4byte 0x0203A854 +_08143E34: .4byte 0x40000000 +_08143E38: + ldr r7, _08143ECC + ldr r6, [r7] + adds r4, r6, #0 + adds r4, #0x94 + adds r0, r6, #0 + adds r0, #0xa0 + ldr r0, [r0] + ldr r1, _08143ED0 + bl __subsf3 + adds r1, r0, #0 + ldr r0, [r4] + bl __gesf2 + cmp r0, #0 + blt _08143EC4 +_08143E58: + adds r1, r6, #0 + adds r1, #0x7d + movs r0, #0xff + strb r0, [r1] + ldr r2, [r7] + ldrb r1, [r2, #3] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #3] + adds r0, r5, #0 + adds r0, #0x2b + ldrb r1, [r0] + adds r1, #3 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl StartSpriteAnim + adds r0, r5, #0 + bl sub_08143BE0 + movs r0, #0x1e + strh r0, [r5, #0x36] + adds r0, r5, #0 + bl sub_08143B94 + movs r1, #0x3a + ldrsh r0, [r5, r1] + movs r1, #0x1e + bl __divsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r1, r1, #1 + adds r1, #0xf + strh r1, [r5, #0x3a] + ldr r0, _08143ED4 + str r0, [r5, #0x1c] + movs r0, #0x47 + bl m4aSongNumStartOrChange + ldr r3, [r7] + adds r2, r3, #0 + adds r2, #0x9c + adds r1, r3, #0 + adds r1, #0x98 + ldr r0, _08143ED8 + str r0, [r1] + str r0, [r2] + subs r1, #0xc + ldr r0, _08143EDC + str r0, [r1] +_08143EC4: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08143ECC: .4byte 0x0203A854 +_08143ED0: .4byte 0x40000000 +_08143ED4: .4byte 0x08143D5D +_08143ED8: .4byte 0x00000000 +_08143EDC: .4byte 0xBF800000 + thumb_func_end sub_08143DC8 + + thumb_func_start sub_08143EE0 +sub_08143EE0: @ 0x08143EE0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r7, r0, #0 + bl sub_08143C50 + movs r1, #0x34 + ldrsh r0, [r7, r1] + cmp r0, #0 + beq _08143EFE + cmp r0, #0xb4 + beq _08143F68 + b _0814404C +_08143EFE: + movs r1, #0x2e + ldrsh r0, [r7, r1] + cmp r0, #1 + bne _08143F08 + b _0814404C +_08143F08: + movs r1, #0x3c + ldrsh r0, [r7, r1] + bl __floatsisf + mov sb, r0 + ldr r0, _08143F60 + mov sl, r0 + ldr r1, _08143F64 + mov r8, r1 + ldr r0, [r1] + ldrb r4, [r0, #4] + lsls r4, r4, #0x1e + lsrs r0, r4, #0x19 + add r0, sl + ldrb r0, [r0, #1] + bl __floatsisf + adds r1, r0, #0 + mov r0, sb + bl __mulsf3 + adds r6, r0, #0 + lsrs r0, r4, #0x19 + add r0, sl + ldrb r0, [r0, #2] + subs r0, #1 + bl __floatsisf + adds r1, r0, #0 + adds r0, r6, #0 + bl __addsf3 + adds r5, r0, #0 + lsrs r4, r4, #0x19 + add r4, sl + ldrh r0, [r4, #0xc] + bl __floatsisf + adds r1, r0, #0 + mov r0, sb + bl __divsf3 + b _08143FC8 + .align 2, 0 +_08143F60: .4byte 0x08595EF4 +_08143F64: .4byte 0x0203A854 +_08143F68: + movs r1, #0x2e + ldrsh r0, [r7, r1] + cmp r0, #0 + beq _0814404C + movs r1, #0x3c + ldrsh r0, [r7, r1] + bl __floatsisf + mov sb, r0 + ldr r0, _0814405C + mov sl, r0 + ldr r1, _08144060 + mov r8, r1 + ldr r0, [r1] + ldrb r4, [r0, #4] + lsls r4, r4, #0x1e + lsrs r0, r4, #0x19 + add r0, sl + ldrb r0, [r0, #1] + bl __floatsisf + adds r1, r0, #0 + mov r0, sb + bl __mulsf3 + adds r6, r0, #0 + lsrs r0, r4, #0x19 + add r0, sl + ldrb r0, [r0, #2] + subs r0, #1 + bl __floatsisf + adds r1, r0, #0 + adds r0, r6, #0 + bl __addsf3 + adds r5, r0, #0 + lsrs r4, r4, #0x19 + add r4, sl + ldrh r0, [r4, #0xc] + bl __floatsisf + adds r1, r0, #0 + mov r0, sb + bl __divsf3 + bl __negsf2 +_08143FC8: + adds r2, r0, #0 + mov r0, r8 + ldr r6, [r0] + adds r1, r6, #0 + adds r1, #0xa0 + adds r0, r6, #0 + adds r0, #0x94 + ldr r0, [r0] + str r0, [r1] + adds r0, r6, #0 + adds r0, #0x98 + str r2, [r0] + movs r0, #0x9c + adds r0, r0, r6 + mov r8, r0 + adds r0, r2, #0 + adds r1, r2, #0 + bl __addsf3 + adds r1, r5, #0 + bl __divsf3 + adds r4, r0, #0 + adds r0, r5, #0 + adds r1, r5, #0 + bl __mulsf3 + adds r1, r0, #0 + ldr r0, _08144064 + bl __divsf3 + adds r1, r0, #0 + adds r0, r4, #0 + bl __addsf3 + bl __negsf2 + mov r1, r8 + str r0, [r1] + adds r1, r6, #0 + adds r1, #0x8c + ldr r0, _08144068 + str r0, [r1] + adds r2, r7, #0 + adds r2, #0x2c + ldrb r1, [r2] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r0, r7, #0 + adds r0, #0x2a + movs r2, #0 + strb r2, [r0] + adds r3, r7, #0 + adds r3, #0x3f + ldrb r0, [r3] + movs r1, #4 + orrs r0, r1 + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r3] + ldr r0, _0814406C + str r0, [r7, #0x1c] + strh r2, [r7, #0x32] +_0814404C: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0814405C: .4byte 0x08595EF4 +_08144060: .4byte 0x0203A854 +_08144064: .4byte 0x40000000 +_08144068: .4byte 0x00000000 +_0814406C: .4byte 0x08143DC9 + thumb_func_end sub_08143EE0 + + thumb_func_start sub_08144070 +sub_08144070: @ 0x08144070 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0x32 + ldrsh r0, [r5, r1] + bl __floatsisf + adds r4, r0, #0 + ldr r1, _08144110 + bl __mulsf3 + adds r1, r4, #0 + bl __mulsf3 + bl __fixsfsi + adds r1, r0, #0 + subs r1, #0x2d + strh r1, [r5, #0x26] + ldrh r0, [r5, #0x32] + adds r0, #1 + strh r0, [r5, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1d + ble _0814410A + lsls r0, r1, #0x10 + cmp r0, #0 + blt _0814410A + ldr r4, _08144114 + ldr r0, [r4] + adds r0, #0x7d + movs r1, #0xff + strb r1, [r0] + ldr r2, [r4] + ldrb r1, [r2, #3] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #3] + adds r0, r5, #0 + adds r0, #0x2b + ldrb r1, [r0] + adds r1, #3 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl StartSpriteAnim + adds r0, r5, #0 + bl sub_08143BE0 + movs r0, #0x1e + strh r0, [r5, #0x36] + adds r0, r5, #0 + bl sub_08143B94 + movs r1, #0x3a + ldrsh r0, [r5, r1] + movs r1, #0x1e + bl __divsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r1, r1, #1 + adds r1, #0xf + strh r1, [r5, #0x3a] + ldr r0, _08144118 + str r0, [r5, #0x1c] + movs r0, #0x47 + bl m4aSongNumStartOrChange + ldr r2, [r4] + ldrb r0, [r2, #3] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2, #3] +_0814410A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08144110: .4byte 0x3D4CCCCD +_08144114: .4byte 0x0203A854 +_08144118: .4byte 0x08143D5D + thumb_func_end sub_08144070 + + thumb_func_start sub_0814411C +sub_0814411C: @ 0x0814411C + push {r4, lr} + adds r3, r0, #0 + ldrh r0, [r3, #0x32] + adds r1, r0, #1 + strh r1, [r3, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x2c + bgt _08144164 + ldrh r4, [r3, #0x26] + subs r0, r4, #1 + strh r0, [r3, #0x26] + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x2d + bne _081441EA + ldr r2, _0814415C + ldr r0, _08144160 + ldr r0, [r0] + adds r0, #0x73 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x2b + ldrb r0, [r0] + cmp r0, #1 + bne _081441EA + strh r4, [r3, #0x26] + b _081441EA + .align 2, 0 +_0814415C: .4byte 0x020205AC +_08144160: .4byte 0x0203A854 +_08144164: + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x3c + ldrsh r1, [r3, r2] + cmp r0, r1 + bge _081441B0 + ldr r2, _081441A0 + ldr r0, _081441A4 + ldr r0, [r0] + adds r0, #0x73 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r2 + adds r0, r1, #0 + adds r0, #0x2c + ldrb r0, [r0] + lsls r0, r0, #0x1a + cmp r0, #0 + bne _081441EA + adds r0, r1, #0 + adds r0, #0x2b + ldrb r0, [r0] + cmp r0, #1 + bne _081441A8 + ldrh r0, [r3, #0x26] + adds r0, #1 + strh r0, [r3, #0x26] + b _081441EA + .align 2, 0 +_081441A0: .4byte 0x020205AC +_081441A4: .4byte 0x0203A854 +_081441A8: + ldrh r0, [r3, #0x26] + subs r0, #1 + strh r0, [r3, #0x26] + b _081441EA +_081441B0: + adds r2, r3, #0 + adds r2, #0x2c + ldrb r1, [r2] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r1, r3, #0 + adds r1, #0x2a + movs r2, #0 + movs r0, #1 + strb r0, [r1] + movs r0, #0x3f + adds r0, r0, r3 + mov ip, r0 + ldrb r0, [r0] + movs r1, #4 + orrs r0, r1 + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + mov r1, ip + strb r0, [r1] + strh r2, [r3, #0x32] + ldr r0, _081441F0 + str r0, [r3, #0x1c] + movs r0, #0x3d + bl m4aSongNumStart +_081441EA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081441F0: .4byte 0x08144071 + thumb_func_end sub_0814411C + + thumb_func_start sub_081441F4 +sub_081441F4: @ 0x081441F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08143C50 + movs r0, #0x34 + ldrsh r1, [r4, r0] + cmp r1, #0x5a + beq _0814420E + movs r0, #0x87 + lsls r0, r0, #1 + cmp r1, r0 + beq _08144218 + b _08144228 +_0814420E: + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _08144228 + b _08144220 +_08144218: + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _08144228 +_08144220: + ldr r0, _08144230 + str r0, [r4, #0x1c] + movs r0, #0 + strh r0, [r4, #0x32] +_08144228: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08144230: .4byte 0x0814411D + thumb_func_end sub_081441F4 + + thumb_func_start sub_08144234 +sub_08144234: @ 0x08144234 + push {r4, lr} + adds r4, r0, #0 + bl sub_08143C50 + ldr r0, _08144258 + ldr r0, [r0] + ldrb r0, [r0, #3] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1b + cmp r0, #0 + beq _0814424E + cmp r0, #1 + beq _08144260 +_0814424E: + adds r0, r4, #0 + bl sub_081447A8 + ldr r0, _0814425C + b _08144268 + .align 2, 0 +_08144258: .4byte 0x0203A854 +_0814425C: .4byte 0x08143EE1 +_08144260: + adds r0, r4, #0 + bl sub_08144984 + ldr r0, _08144270 +_08144268: + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08144270: .4byte 0x081441F5 + thumb_func_end sub_08144234 + + thumb_func_start prev_quest_read_x24_hm_usage +prev_quest_read_x24_hm_usage: @ 0x08144274 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08143C50 + ldrh r0, [r5, #0x32] + subs r0, #1 + strh r0, [r5, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xf + bne _0814429A + ldr r0, _08144304 + ldr r4, [r0] + adds r4, #0x98 + ldr r0, [r4] + ldr r1, _08144308 + bl __mulsf3 + str r0, [r4] +_0814429A: + movs r1, #0x32 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _08144328 + movs r1, #0x2e + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _08144310 + ldr r2, _08144304 + ldr r0, [r2] + adds r0, #0x7d + movs r1, #0xff + strb r1, [r0] + ldr r2, [r2] + ldrb r1, [r2, #3] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #3] + adds r0, r5, #0 + adds r0, #0x2b + ldrb r1, [r0] + adds r1, #3 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl StartSpriteAnim + adds r0, r5, #0 + bl sub_08143BE0 + movs r0, #0x1e + strh r0, [r5, #0x36] + adds r0, r5, #0 + bl sub_08143B94 + movs r1, #0x3a + ldrsh r0, [r5, r1] + movs r1, #0x1e + bl __divsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r1, r1, #1 + adds r1, #0xf + strh r1, [r5, #0x3a] + ldr r0, _0814430C + str r0, [r5, #0x1c] + movs r0, #0x47 + bl m4aSongNumStartOrChange + b _08144328 + .align 2, 0 +_08144304: .4byte 0x0203A854 +_08144308: .4byte 0xBF800000 +_0814430C: .4byte 0x08143D5D +_08144310: + adds r0, r5, #0 + adds r0, #0x2c + ldrb r1, [r0] + movs r2, #0x40 + orrs r1, r2 + strb r1, [r0] + movs r0, #0x38 + bl m4aSongNumStart + adds r0, r5, #0 + bl sub_08144AF0 +_08144328: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end prev_quest_read_x24_hm_usage + + thumb_func_start sub_08144330 +sub_08144330: @ 0x08144330 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + bl sub_08143C50 + movs r0, #0 + strh r0, [r6, #0x32] + adds r0, r6, #0 + bl sub_08143BE0 + ldr r1, _081443BC + ldr r4, _081443C0 + ldr r2, [r4] + adds r0, r2, #0 + adds r0, #0x7e + ldrb r0, [r0] + lsls r0, r0, #3 + adds r1, #4 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, [r2, #8] + ands r0, r1 + cmp r0, #0 + bne _081443C8 + adds r1, r2, #0 + adds r1, #0x7d + movs r0, #0xff + strb r0, [r1] + ldr r2, [r4] + ldrb r1, [r2, #3] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #3] + adds r0, r6, #0 + adds r0, #0x2b + ldrb r1, [r0] + adds r1, #3 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r6, #0 + bl StartSpriteAnim + adds r0, r6, #0 + bl sub_08143BE0 + movs r0, #0x1e + strh r0, [r6, #0x36] + adds r0, r6, #0 + bl sub_08143B94 + movs r1, #0x3a + ldrsh r0, [r6, r1] + movs r1, #0x1e + bl __divsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r1, r1, #1 + adds r1, #0xf + strh r1, [r6, #0x3a] + ldr r0, _081443C4 + str r0, [r6, #0x1c] + movs r0, #0x47 + bl m4aSongNumStartOrChange + b _081444C4 + .align 2, 0 +_081443BC: .4byte 0x08595E90 +_081443C0: .4byte 0x0203A854 +_081443C4: .4byte 0x08143D5D +_081443C8: + movs r0, #0x38 + bl m4aSongNumStart + bl Random + movs r1, #1 + mov r8, r1 + ands r1, r0 + mov r8, r1 + cmp r1, #0 + beq _0814440C + ldr r4, [r4] + adds r1, r4, #0 + adds r1, #0x8c + ldr r0, _08144404 + str r0, [r1] + adds r0, r4, #0 + adds r0, #0x7e + ldrb r0, [r0] + adds r0, #1 + movs r1, #0xc + bl __modsi3 + lsls r1, r0, #0x18 + lsrs r2, r1, #0x18 + adds r1, r4, #0 + adds r1, #0x7f + strb r0, [r1] + ldr r5, _08144408 + b _08144444 + .align 2, 0 +_08144404: .4byte 0x00000000 +_08144408: .4byte 0x08595EF4 +_0814440C: + ldr r7, [r4] + adds r4, r7, #0 + adds r4, #0x8c + ldr r5, _0814446C + ldrb r0, [r7, #4] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x19 + adds r1, r5, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r1, #0 + bl __addsf3 + str r0, [r4] + adds r0, r7, #0 + adds r0, #0x7e + ldrb r4, [r0] + adds r0, r4, #0 + adds r0, #0xb + movs r1, #0xc + bl __modsi3 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r0, r7, #0 + adds r0, #0x7f + strb r4, [r0] +_08144444: + ldr r0, _08144470 + lsls r1, r2, #3 + adds r0, #4 + adds r1, r1, r0 + ldr r2, _08144474 + ldr r3, [r2] + ldr r1, [r1] + ldr r0, [r3, #8] + ands r1, r0 + cmp r1, #0 + beq _08144478 + movs r0, #1 + strh r0, [r6, #0x2e] + ldrb r0, [r3, #4] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x19 + adds r0, r0, r5 + ldrb r0, [r0, #2] + strh r0, [r6, #0x32] + b _081444B4 + .align 2, 0 +_0814446C: .4byte 0x08595EF4 +_08144470: .4byte 0x08595E90 +_08144474: .4byte 0x0203A854 +_08144478: + strh r1, [r6, #0x2e] + ldrb r1, [r3, #4] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _08144490 + lsls r0, r1, #0x1e + lsrs r0, r0, #0x19 + adds r0, r0, r5 + ldrb r0, [r0, #1] + strh r0, [r6, #0x32] + b _081444B4 +_08144490: + lsls r0, r1, #0x1e + lsrs r0, r0, #0x19 + adds r0, r0, r5 + ldrb r0, [r0, #2] + strh r0, [r6, #0x32] + mov r0, r8 + cmp r0, #0 + beq _081444AC + adds r1, r3, #0 + adds r1, #0x8c + ldr r0, _081444A8 + b _081444B2 + .align 2, 0 +_081444A8: .4byte 0x3F000000 +_081444AC: + adds r1, r3, #0 + adds r1, #0x8c + ldr r0, _081444D0 +_081444B2: + str r0, [r1] +_081444B4: + ldr r0, [r2] + adds r0, #0x98 + ldr r1, _081444D4 + str r1, [r0] + ldr r0, _081444D8 + str r0, [r6, #0x1c] + movs r0, #5 + strh r0, [r6, #0x30] +_081444C4: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081444D0: .4byte 0xBFC00000 +_081444D4: .4byte 0x3DAE147B +_081444D8: .4byte 0x08144275 + thumb_func_end sub_08144330 + + thumb_func_start sub_081444DC +sub_081444DC: @ 0x081444DC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + bl sub_08143C50 + ldr r4, _08144570 + ldr r0, [r4] + adds r0, #0x8c + ldr r0, [r0] + ldr r1, _08144574 + bl __gtsf2 + cmp r0, #0 + bgt _081445C6 + adds r0, r6, #0 + bl sub_08143BE0 + adds r0, r6, #0 + bl sub_08143C14 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08144588 + ldr r2, [r4] + adds r1, r2, #0 + adds r1, #0x90 + ldr r0, _08144578 + str r0, [r1] + movs r0, #0x8c + adds r0, r0, r2 + mov r8, r0 + ldr r1, _0814457C + mov sb, r1 + ldrb r0, [r2, #4] + lsls r7, r0, #0x1e + lsrs r0, r7, #0x19 + add r0, sb + movs r4, #3 + ldrsb r4, [r0, r4] + adds r0, r4, #0 + bl __floatsisf + adds r5, r0, #0 + cmp r4, #0 + bge _08144542 + ldr r1, _08144580 + bl __addsf3 + adds r5, r0, #0 +_08144542: + lsrs r0, r7, #0x19 + add r0, sb + ldrb r0, [r0, #4] + adds r0, #1 + bl __floatsisf + adds r1, r0, #0 + adds r0, r5, #0 + bl __divsf3 + adds r1, r0, #0 + mov r2, r8 + ldr r0, [r2] + bl __subsf3 + mov r1, r8 + str r0, [r1] + movs r0, #4 + strh r0, [r6, #0x30] + ldr r0, _08144584 + str r0, [r6, #0x1c] + b _081445C6 + .align 2, 0 +_08144570: .4byte 0x0203A854 +_08144574: .4byte 0x3F000000 +_08144578: .4byte 0x00000000 +_0814457C: .4byte 0x08595EF4 +_08144580: .4byte 0x43800000 +_08144584: .4byte 0x08144331 +_08144588: + ldr r4, [r4] + adds r7, r4, #0 + adds r7, #0x90 + ldr r0, [r7] + ldr r6, _081445D4 + adds r1, r6, #0 + bl __nesf2 + cmp r0, #0 + beq _081445C6 + adds r5, r4, #0 + adds r5, #0x8c + ldr r0, [r5] + adds r1, r6, #0 + bl __ltsf2 + cmp r0, #0 + bge _081445C6 + str r6, [r7] + str r6, [r5] + adds r4, #0x98 + ldr r0, [r4] + bl __extendsfdf2 + ldr r2, _081445D8 + ldr r3, _081445DC + bl __divdf3 + bl __truncdfsf2 + str r0, [r4] +_081445C6: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081445D4: .4byte 0x00000000 +_081445D8: .4byte 0x3FF33333 +_081445DC: .4byte 0x33333333 + thumb_func_end sub_081444DC + + thumb_func_start sub_081445E0 +sub_081445E0: @ 0x081445E0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + bl sub_08143C50 + ldr r0, _08144690 + ldr r5, [r0] + adds r0, r5, #0 + adds r0, #0x94 + ldr r0, [r0] + ldr r1, _08144694 + bl __gtsf2 + cmp r0, #0 + bgt _08144684 + movs r0, #0x98 + adds r0, r0, r5 + mov r8, r0 + adds r7, r5, #0 + adds r7, #0x86 + movs r1, #0 + ldrsh r4, [r7, r1] + adds r0, r4, #0 + bl __floatsisf + adds r2, r0, #0 + cmp r4, #0 + bge _08144622 + ldr r1, _08144698 + bl __addsf3 + adds r2, r0, #0 +_08144622: + ldr r0, _0814469C + adds r1, r2, #0 + bl __divsf3 + bl __negsf2 + mov r1, r8 + str r0, [r1] + movs r0, #0x90 + adds r0, r0, r5 + mov r8, r0 + adds r5, #0x8c + movs r1, #0 + ldrsh r4, [r7, r1] + adds r0, r4, #0 + bl __floatsisf + adds r2, r0, #0 + cmp r4, #0 + bge _08144652 + ldr r1, _08144698 + bl __addsf3 + adds r2, r0, #0 +_08144652: + ldr r0, [r5] + adds r1, r2, #0 + bl __divsf3 + bl __negsf2 + mov r1, r8 + str r0, [r1] + adds r1, r6, #0 + adds r1, #0x2a + movs r0, #2 + strb r0, [r1] + adds r2, r6, #0 + adds r2, #0x3f + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r2] + movs r0, #3 + strh r0, [r6, #0x30] + ldr r0, _081446A0 + str r0, [r6, #0x1c] +_08144684: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08144690: .4byte 0x0203A854 +_08144694: .4byte 0x42200000 +_08144698: .4byte 0x47800000 +_0814469C: .4byte 0x40800000 +_081446A0: .4byte 0x081444DD + thumb_func_end sub_081445E0 + + thumb_func_start sub_081446A4 +sub_081446A4: @ 0x081446A4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + bl sub_08143C50 + ldr r4, _08144760 + ldr r0, [r4] + adds r0, #0x94 + ldr r0, [r0] + ldr r1, _08144764 + bl __gtsf2 + cmp r0, #0 + bgt _08144756 + movs r0, #0x5d + bl m4aSongNumStartOrChange + ldr r5, [r4] + movs r0, #0x98 + adds r0, r0, r5 + mov r8, r0 + adds r7, r5, #0 + adds r7, #0x84 + movs r1, #0 + ldrsh r4, [r7, r1] + adds r0, r4, #0 + bl __floatsisf + adds r2, r0, #0 + cmp r4, #0 + bge _081446EC + ldr r1, _08144768 + bl __addsf3 + adds r2, r0, #0 +_081446EC: + ldr r0, _0814476C + adds r1, r2, #0 + bl __divsf3 + bl __negsf2 + mov r1, r8 + str r0, [r1] + movs r0, #0x90 + adds r0, r0, r5 + mov r8, r0 + adds r0, r5, #0 + adds r0, #0x8c + ldr r1, [r0] + ldr r0, _08144770 + bl __subsf3 + adds r5, r0, #0 + movs r1, #0 + ldrsh r4, [r7, r1] + adds r0, r4, #0 + bl __floatsisf + adds r2, r0, #0 + cmp r4, #0 + bge _08144728 + ldr r1, _08144768 + bl __addsf3 + adds r2, r0, #0 +_08144728: + adds r0, r5, #0 + adds r1, r2, #0 + bl __divsf3 + mov r1, r8 + str r0, [r1] + adds r1, r6, #0 + adds r1, #0x2a + movs r0, #1 + strb r0, [r1] + adds r2, r6, #0 + adds r2, #0x3f + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r2] + movs r0, #2 + strh r0, [r6, #0x30] + ldr r0, _08144774 + str r0, [r6, #0x1c] +_08144756: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08144760: .4byte 0x0203A854 +_08144764: .4byte 0x42700000 +_08144768: .4byte 0x47800000 +_0814476C: .4byte 0x41A00000 +_08144770: .4byte 0x3F800000 +_08144774: .4byte 0x081445E1 + thumb_func_end sub_081446A4 + + thumb_func_start sub_08144778 +sub_08144778: @ 0x08144778 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #1 + strh r0, [r4, #0x30] + strh r1, [r4, #0x32] + adds r0, r4, #0 + bl sub_08143C50 + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldr r0, _081447A4 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081447A4: .4byte 0x081446A5 + thumb_func_end sub_08144778 + + thumb_func_start sub_081447A8 +sub_081447A8: @ 0x081447A8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + mov r8, r0 + ldr r1, _08144968 + mov r0, sp + movs r2, #8 + bl memcpy + mov r1, r8 + ldrh r0, [r1, #0x3c] + subs r0, #2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + ldr r5, _0814496C + ldr r0, _08144970 + movs r2, #0xc + rsbs r2, r2, #0 + movs r1, #0x24 + movs r3, #0x32 + bl CreateSprite + ldr r1, [r5] + adds r1, #0x73 + strb r0, [r1] + ldr r4, _08144974 + mov r3, r8 + movs r0, #0x2e + ldrsh r2, [r3, r0] + lsls r2, r2, #2 + mov r1, sp + adds r0, r1, r2 + movs r3, #0 + ldrsh r1, [r0, r3] + mov r0, sp + adds r0, #2 + adds r0, r0, r2 + movs r3, #0 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + movs r3, #0x3b + bl CreateSprite + ldr r1, [r5] + adds r1, #0x74 + strb r0, [r1] + adds r4, #0x18 + adds r0, r4, #0 + movs r1, #0x24 + movs r2, #0x8c + movs r3, #0x33 + bl CreateSprite + ldr r1, [r5] + adds r1, #0x75 + strb r0, [r1] + ldr r3, _08144978 + ldr r0, [r5] + adds r0, #0x75 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r2, [r0, #1] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #4 + orrs r1, r2 + strb r1, [r0, #1] + movs r7, #0 + adds r6, r3, #0 + ldr r0, _0814497C + mov ip, r0 + mov sl, r5 +_08144848: + ldr r0, [r5] + adds r3, r7, #0 + adds r3, #0x37 + adds r0, #0x3c + adds r0, r0, r3 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + adds r1, #0x3e + ldrb r2, [r1] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r0, [r5] + adds r0, #0x3c + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + ldr r0, [r5] + adds r0, #0x3c + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x2c + ldrb r1, [r0] + movs r2, #0x40 + orrs r1, r2 + strb r1, [r0] + ldr r0, [r5] + adds r0, #0x3c + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x2c + ldrb r1, [r0] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0] + ldr r4, [r5] + adds r2, r4, #0 + adds r2, #0x3c + adds r2, r2, r3 + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r1, r4, #0 + adds r1, #0x73 + ldrb r1, [r1] + strh r1, [r0, #0x36] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r1, r4, #0 + adds r1, #0x74 + ldrb r1, [r1] + strh r1, [r0, #0x38] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r1, r4, #0 + adds r1, #0x75 + ldrb r1, [r1] + strh r1, [r0, #0x3a] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + mov r1, sb + strh r1, [r0, #0x32] + ldrb r0, [r2] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r6 + mov r0, r8 + movs r1, #0x3c + ldrsh r3, [r0, r1] + ldrb r1, [r4, #4] + lsls r1, r1, #0x1e + lsrs r0, r1, #0x19 + add r0, ip + ldrb r0, [r0, #1] + muls r3, r0, r3 + lsrs r1, r1, #0x19 + add r1, ip + ldrb r0, [r1, #2] + ldr r1, _08144980 + adds r0, r0, r1 + adds r3, r3, r0 + strh r3, [r2, #0x34] + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r2, _08144978 + cmp r7, #2 + bls _08144848 + mov r3, sl + ldr r0, [r3] + adds r0, #0x74 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #2 + orrs r1, r2 + strb r1, [r0] + ldr r0, [r3] + mov r1, r8 + str r1, [r0, #0x38] + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08144968: .4byte 0x085976BE +_0814496C: .4byte 0x0203A854 +_08144970: .4byte 0x085975AC +_08144974: .4byte 0x08597670 +_08144978: .4byte 0x020205AC +_0814497C: .4byte 0x08595EF4 +_08144980: .4byte 0x0000FFFF + thumb_func_end sub_081447A8 + + thumb_func_start sub_08144984 +sub_08144984: @ 0x08144984 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #8 + adds r7, r0, #0 + movs r0, #0 + mov r8, r0 + ldr r1, _08144AD8 + mov r0, sp + movs r2, #8 + bl memcpy + ldrh r0, [r7, #0x3c] + subs r0, #2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + ldr r0, _08144ADC + movs r1, #0x2e + ldrsh r2, [r7, r1] + lsls r2, r2, #2 + mov r3, sp + adds r1, r3, r2 + movs r3, #0 + ldrsh r1, [r1, r3] + mov r4, sp + adds r4, #2 + adds r2, r4, r2 + movs r3, #0 + ldrsh r2, [r2, r3] + movs r3, #0x32 + bl CreateSprite + ldr r5, _08144AE0 + ldr r1, [r5] + adds r1, #0x73 + strb r0, [r1] + ldr r0, [r5] + adds r0, #0x73 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r6, _08144AE4 + adds r0, r0, r6 + ldrh r1, [r7, #0x2e] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl StartSpriteAnim + ldr r0, _08144AE8 + movs r1, #0x2e + ldrsh r2, [r7, r1] + lsls r2, r2, #2 + mov r3, sp + adds r1, r3, r2 + movs r3, #0 + ldrsh r1, [r1, r3] + adds r4, r4, r2 + movs r3, #0 + ldrsh r2, [r4, r3] + movs r3, #0x33 + bl CreateSprite + ldr r1, [r5] + adds r1, #0x74 + strb r0, [r1] + ldr r0, [r5] + adds r0, #0x74 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x2c + ldrb r1, [r0] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0] + ldr r0, [r5] + adds r0, #0x74 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r0, #0x2c + ldrb r1, [r0] + movs r2, #0x40 + orrs r1, r2 + strb r1, [r0] + mov r0, sb + lsls r2, r0, #0x10 + asrs r2, r2, #0x10 + ldr r3, _08144AEC + ldr r0, [r5] + ldrb r1, [r0, #4] + lsls r1, r1, #0x1e + lsrs r0, r1, #0x19 + adds r0, r0, r3 + ldrb r0, [r0, #1] + muls r2, r0, r2 + lsrs r1, r1, #0x19 + adds r1, r1, r3 + ldrh r0, [r1, #0x10] + adds r0, #0x2d + adds r2, r2, r0 + strh r2, [r7, #0x3c] +_08144A5E: + ldr r0, _08144AE0 + ldr r4, [r0] + mov r1, r8 + adds r2, r4, r1 + adds r2, #0x73 + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r1, r4, #0 + adds r1, #0x73 + ldrb r1, [r1] + strh r1, [r0, #0x36] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + adds r3, r4, #0 + adds r3, #0x74 + ldrb r1, [r3] + strh r1, [r0, #0x38] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r1, [r3] + strh r1, [r0, #0x3a] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + mov r3, sb + strh r3, [r0, #0x32] + ldrb r0, [r2] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrh r0, [r7, #0x3c] + subs r0, #0x2d + strh r0, [r1, #0x34] + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + cmp r0, #1 + bls _08144A5E + str r7, [r4, #0x38] + add sp, #8 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08144AD8: .4byte 0x085976C6 +_08144ADC: .4byte 0x085975C4 +_08144AE0: .4byte 0x0203A854 +_08144AE4: .4byte 0x020205AC +_08144AE8: .4byte 0x085976A0 +_08144AEC: .4byte 0x08595EF4 + thumb_func_end sub_08144984 + + thumb_func_start sub_08144AF0 +sub_08144AF0: @ 0x08144AF0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + adds r7, r0, #0 + movs r0, #0 + mov sb, r0 + movs r1, #5 + mov r8, r1 + str r0, [sp, #0xc] + mov r0, sp + movs r1, #0 + movs r2, #0xa + bl memset + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x10] + ldr r3, _08144BDC + ldr r0, [r3] + adds r0, #0x7d + movs r5, #1 + strb r5, [r0] + ldr r2, [r3] + ldrb r0, [r2, #3] + movs r1, #0x20 + orrs r0, r1 + strb r0, [r2, #3] + ldr r2, [r3] + ldrb r1, [r2, #3] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #3] + ldr r0, [r3] + adds r0, #0x7e + movs r1, #0xff + strb r1, [r0] + ldr r6, [r3] + adds r4, r6, #0 + adds r4, #0x88 + movs r1, #0x34 + ldrsh r0, [r7, r1] + bl __floatsisf + str r0, [r4] + adds r1, r6, #0 + adds r1, #0x98 + ldr r0, _08144BE0 + str r0, [r1] + adds r2, r6, #0 + adds r2, #0x8c + ldr r1, _08144BE4 + ldrb r0, [r6, #4] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x19 + adds r1, #0x1c + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r2] + ldrb r0, [r6, #4] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r1, r1, #1 + adds r1, #0x21 + ldrb r0, [r6, #3] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1b + subs r5, r5, r0 + lsls r0, r5, #4 + subs r0, r0, r5 + adds r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r5, sb + movs r0, #0x34 + ldrsh r2, [r7, r0] +_08144B96: + cmp r1, r2 + bge _08144BA2 + adds r0, r1, #0 + adds r0, #0x5a + cmp r2, r0 + ble _08144C04 +_08144BA2: + cmp r5, #3 + beq _08144BE8 + adds r0, r1, #0 + adds r0, #0x5a + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #3 + bls _08144B96 +_08144BB8: + ldr r0, _08144BDC + ldr r0, [r0] + ldrb r1, [r0, #3] + movs r0, #0x1f + ands r0, r1 + cmp r0, #0 + beq _08144C30 + movs r1, #0x2e + ldrsh r0, [r7, r1] + cmp r0, #0 + beq _08144C24 + movs r0, #0x98 + lsls r0, r0, #1 + movs r1, #0x3f + rsbs r1, r1, #0 + bl PlayCry1 + b _08144C3C + .align 2, 0 +_08144BDC: .4byte 0x0203A854 +_08144BE0: .4byte 0x00000000 +_08144BE4: .4byte 0x08595EF4 +_08144BE8: + movs r0, #1 + strh r0, [r7, #0x2e] + ldr r0, _08144C00 + ldr r2, [r0] + ldrb r1, [r2, #3] + movs r0, #0x20 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #3] + b _08144BB8 + .align 2, 0 +_08144C00: .4byte 0x0203A854 +_08144C04: + lsrs r0, r5, #1 + strh r0, [r7, #0x2e] + ldr r0, _08144C20 + ldr r3, [r0] + movs r1, #1 + ands r1, r5 + ldrb r2, [r3, #3] + movs r0, #0x20 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #3] + b _08144BB8 + .align 2, 0 +_08144C20: .4byte 0x0203A854 +_08144C24: + movs r0, #0x98 + lsls r0, r0, #1 + movs r1, #0x3f + bl PlayCry1 + b _08144C3C +_08144C30: + movs r0, #0x99 + lsls r0, r0, #1 + movs r1, #0x3f + rsbs r1, r1, #0 + bl PlayCry1 +_08144C3C: + movs r0, #2 + mov sl, r0 + ldr r4, _08144C70 + ldr r5, [r4] + adds r0, r5, #0 + adds r0, #0x7f + ldrb r0, [r0] + adds r0, #2 + movs r1, #0xc + bl __modsi3 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldrb r1, [r5, #3] + movs r0, #0x1f + ands r0, r1 + cmp r0, #1 + bne _08144C74 + ldrb r1, [r5, #4] + movs r0, #3 + ands r0, r1 + cmp r0, #1 + bne _08144C74 + mov r0, r8 + adds r0, #6 + b _08144C78 + .align 2, 0 +_08144C70: .4byte 0x0203A854 +_08144C74: + mov r0, r8 + add r0, sl +_08144C78: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + mov r5, sl + cmp r5, r8 + bhs _08144CE4 + ldr r1, _08144D0C + mov sl, r1 +_08144C88: + ldr r3, [r4] + lsls r0, r6, #3 + ldr r1, _08144D10 + adds r0, r0, r1 + ldr r1, [r3, #8] + ldr r2, [r0] + ands r1, r2 + cmp r1, #0 + bne _08144CCE + mov r0, sb + adds r1, r0, #1 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sb, r1 + add r0, sp + strb r5, [r0] + ldr r0, [sp, #0xc] + cmp r0, #0 + bne _08144CCE + ldrb r1, [r3, #0x1a] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + adds r0, r3, #0 + adds r0, #0x1b + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sl + ldr r0, [r0] + ands r2, r0 + cmp r2, #0 + beq _08144CCE + str r5, [sp, #0xc] +_08144CCE: + adds r0, r6, #1 + movs r1, #0xc + bl __modsi3 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, r8 + blo _08144C88 +_08144CE4: + ldr r0, [r4] + ldrb r1, [r0, #3] + lsls r1, r1, #0x1b + lsrs r1, r1, #0x1b + adds r1, #1 + ldrb r0, [r0, #2] + ands r1, r0 + cmp r1, #0 + beq _08144D14 + ldr r1, [sp, #0xc] + cmp r1, #0 + beq _08144D14 + movs r0, #0xff + ldr r1, [sp, #0x10] + ands r0, r1 + cmp r0, #0xbf + bhi _08144D14 + mov r0, sp + ldrh r0, [r0, #0xc] + b _08144D20 + .align 2, 0 +_08144D0C: .4byte 0x08595D0C +_08144D10: .4byte 0x08595E94 +_08144D14: + ldr r0, [sp, #0x10] + mov r1, sb + bl __modsi3 + add r0, sp + ldrb r0, [r0] +_08144D20: + strh r0, [r7, #0x3c] + ldr r1, _08144D38 + str r1, [r7, #0x1c] + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08144D38: .4byte 0x08144235 + thumb_func_end sub_08144AF0 + + thumb_func_start sub_08144D3C +sub_08144D3C: @ 0x08144D3C + push {r4, lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x30] + adds r1, r0, #1 + strh r1, [r2, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r3, #0x34 + ldrsh r1, [r2, r3] + cmp r0, r1 + blt _08144D8C + ldrh r0, [r2, #0x20] + subs r0, #2 + strh r0, [r2, #0x20] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x10 + rsbs r1, r1, #0 + cmp r0, r1 + bge _08144D8C + ldr r4, _08144D94 + ldr r3, [r4] + ldrb r1, [r3, #3] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08144D78 + movs r0, #0x40 + orrs r0, r1 + strb r0, [r3, #3] +_08144D78: + adds r0, r2, #0 + bl DestroySprite + ldr r1, [r4] + movs r0, #0 + strb r0, [r1, #1] + ldr r1, [r4] + ldr r0, _08144D98 + ldrh r0, [r0] + strh r0, [r1, #0x34] +_08144D8C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08144D94: .4byte 0x0203A854 +_08144D98: .4byte 0x085976CE + thumb_func_end sub_08144D3C + + thumb_func_start sub_08144D9C +sub_08144D9C: @ 0x08144D9C + push {r4, lr} + sub sp, #0x18 + adds r4, r0, #0 + ldr r1, _08144E18 + mov r0, sp + movs r2, #0x18 + bl memcpy + ldrh r0, [r4, #0x30] + adds r2, r0, #1 + strh r2, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r3, #0x34 + ldrsh r1, [r4, r3] + cmp r0, r1 + bge _08144E20 + movs r0, #1 + ands r2, r0 + cmp r2, #0 + beq _08144DFA + ldr r3, _08144E1C + movs r0, #0x3c + ldrsh r2, [r4, r0] + lsls r2, r2, #1 + movs r1, #0x32 + ldrsh r0, [r4, r1] + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + lsls r0, r0, #3 + adds r2, r2, r0 + mov r1, sp + adds r0, r1, r2 + ldrh r0, [r0] + strh r0, [r3] + movs r3, #0x3c + ldrsh r2, [r4, r3] + adds r1, r2, #1 + adds r0, r1, #0 + cmp r1, #0 + bge _08144DF2 + adds r0, r2, #4 +_08144DF2: + asrs r0, r0, #2 + lsls r0, r0, #2 + subs r0, r1, r0 + strh r0, [r4, #0x3c] +_08144DFA: + adds r3, r4, #0 + adds r3, #0x3e + ldrb r2, [r3] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _08144E4A + .align 2, 0 +_08144E18: .4byte 0x085976E2 +_08144E1C: .4byte 0x02021B3A +_08144E20: + ldr r1, _08144E54 + movs r0, #0 + strh r0, [r1] + ldr r2, _08144E58 + ldr r0, _08144E5C + ldr r0, [r0] + adds r0, #0x73 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x2c + ldrb r2, [r0] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + adds r0, r4, #0 + bl DestroySprite +_08144E4A: + add sp, #0x18 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08144E54: .4byte 0x02021B3A +_08144E58: .4byte 0x020205AC +_08144E5C: .4byte 0x0203A854 + thumb_func_end sub_08144D9C + + thumb_func_start sub_08144E60 +sub_08144E60: @ 0x08144E60 + push {r4, r5, lr} + adds r5, r0, #0 + ldrh r0, [r5, #0x30] + adds r0, #1 + strh r0, [r5, #0x30] + movs r1, #0x30 + ldrsh r0, [r5, r1] + bl __floatsisf + adds r4, r0, #0 + ldr r1, _08144F10 + bl __mulsf3 + adds r1, r4, #0 + bl __mulsf3 + bl __fixsfsi + strh r0, [r5, #0x26] + ldr r0, _08144F14 + ldr r3, [r0] + ldr r2, _08144F18 + ldrb r0, [r3, #1] + subs r0, #1 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r3, #0x34] + ldrb r0, [r3, #1] + cmp r0, #0x12 + bhi _08144EA8 + adds r0, #1 + strb r0, [r3, #1] +_08144EA8: + movs r1, #0x30 + ldrsh r0, [r5, r1] + cmp r0, #0x3c + ble _08144F0A + movs r0, #0 + strh r0, [r5, #0x30] + ldr r3, _08144F1C + str r3, [r5, #0x1c] + ldr r2, _08144F20 + movs r0, #0x3a + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, r2, #0 + adds r4, #0x1c + adds r0, r0, r4 + str r3, [r0] + movs r0, #0x3a + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, _08144F24 + strh r1, [r0, #0x30] + movs r0, #0x38 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + movs r0, #0x38 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _08144F28 + str r1, [r0] + movs r0, #0xd6 + bl m4aSongNumStart +_08144F0A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08144F10: .4byte 0x3D1FBE77 +_08144F14: .4byte 0x0203A854 +_08144F18: .4byte 0x085976CE +_08144F1C: .4byte 0x08144D3D +_08144F20: .4byte 0x020205AC +_08144F24: .4byte 0x0000FFFE +_08144F28: .4byte 0x08144D9D + thumb_func_end sub_08144E60 + + thumb_func_start sub_08144F2C +sub_08144F2C: @ 0x08144F2C + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x3c + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08144FB0 + ldr r0, _08144F58 + ldr r3, [r0] + ldr r1, [r3, #0x38] + movs r2, #0x2e + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _08144F60 + movs r0, #0x34 + ldrsh r2, [r1, r0] + ldr r1, _08144F5C + ldrb r0, [r3, #4] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x19 + adds r0, r0, r1 + ldrh r0, [r0, #8] + b _08144F72 + .align 2, 0 +_08144F58: .4byte 0x0203A854 +_08144F5C: .4byte 0x08595EF4 +_08144F60: + movs r0, #0x34 + ldrsh r2, [r1, r0] + ldr r1, _08144FA4 + ldrb r0, [r3, #4] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x19 + adds r0, r0, r1 + ldrh r0, [r0, #8] + adds r0, #0xb4 +_08144F72: + cmp r2, r0 + bne _08145048 + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldrh r0, [r4, #0x3c] + adds r0, #1 + strh r0, [r4, #0x3c] + movs r0, #0x2b + bl m4aSongNumStart + ldr r2, _08144FA8 + ldr r1, [r2] + movs r0, #1 + strb r0, [r1, #1] + ldr r1, [r2] + ldr r0, _08144FAC + ldrh r0, [r0] + strh r0, [r1, #0x34] + b _08145048 + .align 2, 0 +_08144FA4: .4byte 0x08595EF4 +_08144FA8: .4byte 0x0203A854 +_08144FAC: .4byte 0x085976CE +_08144FB0: + ldr r5, _08144FF0 + ldr r3, [r5] + ldr r2, _08144FF4 + ldrb r0, [r3, #1] + subs r0, #1 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r3, #0x34] + ldrb r0, [r3, #1] + cmp r0, #0x12 + bhi _08144FD2 + adds r0, #1 + strb r0, [r3, #1] +_08144FD2: + ldr r3, [r5] + ldr r1, [r3, #0x38] + movs r2, #0x2e + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _08144FFC + movs r0, #0x34 + ldrsh r2, [r1, r0] + ldr r1, _08144FF8 + ldrb r0, [r3, #4] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x19 + adds r0, r0, r1 + ldrh r0, [r0, #0xa] + b _0814500E + .align 2, 0 +_08144FF0: .4byte 0x0203A854 +_08144FF4: .4byte 0x085976CE +_08144FF8: .4byte 0x08595EF4 +_08144FFC: + movs r0, #0x34 + ldrsh r2, [r1, r0] + ldr r1, _08145050 + ldrb r0, [r3, #4] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x19 + adds r0, r0, r1 + ldrh r0, [r0, #0xa] + adds r0, #0xb4 +_0814500E: + cmp r2, r0 + bne _08145048 + ldr r2, _08145054 + movs r0, #0x36 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r2, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _08145058 + str r1, [r0] + movs r0, #0x36 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + ldr r0, _0814505C + str r0, [r4, #0x1c] + movs r0, #0 + strh r0, [r4, #0x3c] +_08145048: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08145050: .4byte 0x08595EF4 +_08145054: .4byte 0x020205AC +_08145058: .4byte 0x08144E61 +_0814505C: .4byte 0x08007141 + thumb_func_end sub_08144F2C + + thumb_func_start sub_08145060 +sub_08145060: @ 0x08145060 + adds r0, #0x3e + ldrb r3, [r0] + lsls r1, r3, #0x1d + lsrs r1, r1, #0x1f + movs r2, #1 + eors r2, r1 + lsls r2, r2, #2 + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 + thumb_func_end sub_08145060 + + thumb_func_start sub_0814507C +sub_0814507C: @ 0x0814507C + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r2, [r4, #0x22] + movs r0, #0x22 + ldrsh r1, [r4, r0] + movs r0, #0x10 + rsbs r0, r0, #0 + cmp r1, r0 + ble _08145094 + subs r0, r2, #1 + strh r0, [r4, #0x22] + b _081450E8 +_08145094: + ldr r0, _081450F0 + str r0, [r4, #0x1c] + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + subs r2, #0x12 + ldrb r0, [r2] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x5e + bl m4aSongNumStop + adds r0, r4, #0 + bl DestroySprite + ldr r5, _081450F4 + ldr r4, _081450F8 + ldr r0, [r4] + adds r0, #0x74 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r0, [r0, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + ldr r0, [r4] + adds r0, #0x74 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + bl DestroySprite +_081450E8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081450F0: .4byte 0x08007141 +_081450F4: .4byte 0x020205AC +_081450F8: .4byte 0x0203A854 + thumb_func_end sub_0814507C + + thumb_func_start sub_081450FC +sub_081450FC: @ 0x081450FC + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x30] + movs r2, #0x30 + ldrsh r0, [r4, r2] + cmp r0, #0 + blt _08145126 + subs r1, #1 + strh r1, [r4, #0x30] + ldrh r0, [r4, #0x22] + subs r0, #1 + strh r0, [r4, #0x22] + lsls r1, r1, #0x10 + cmp r1, #0 + bne _08145192 + adds r0, r4, #0 + adds r0, #0x2b + ldrb r0, [r0] + cmp r0, #1 + bne _08145192 + b _0814514C +_08145126: + ldrh r1, [r4, #0x34] + movs r2, #0x34 + ldrsh r0, [r4, r2] + cmp r0, #0 + blt _0814515C + subs r0, r1, #1 + strh r0, [r4, #0x34] + adds r0, r4, #0 + adds r0, #0x2c + ldrb r1, [r0] + movs r0, #0x3f + ands r0, r1 + cmp r0, #0 + bne _08145192 + adds r0, r4, #0 + adds r0, #0x2b + ldrb r0, [r0] + cmp r0, #1 + bne _08145154 +_0814514C: + ldrh r0, [r4, #0x26] + adds r0, #1 + strh r0, [r4, #0x26] + b _08145192 +_08145154: + ldrh r0, [r4, #0x26] + subs r0, #1 + strh r0, [r4, #0x26] + b _08145192 +_0814515C: + movs r0, #0x2b + bl m4aSongNumStart + ldr r0, _08145198 + ldr r0, [r0] + ldr r0, [r0, #0x38] + ldrh r1, [r0, #0x2e] + adds r1, #4 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim + ldr r0, _0814519C + str r0, [r4, #0x1c] + ldr r2, _081451A0 + movs r0, #0x3a + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x2c + ldrb r2, [r0] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0] +_08145192: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08145198: .4byte 0x0203A854 +_0814519C: .4byte 0x0814507D +_081451A0: .4byte 0x020205AC + thumb_func_end sub_081450FC + + thumb_func_start sub_081451A4 +sub_081451A4: @ 0x081451A4 + push {r4, r5, lr} + sub sp, #0x14 + adds r4, r0, #0 + ldr r1, _08145220 + mov r0, sp + movs r2, #2 + bl memcpy + add r5, sp, #4 + ldr r1, _08145224 + adds r0, r5, #0 + movs r2, #0x10 + bl memcpy + ldrh r0, [r4, #0x30] + subs r1, r0, #1 + strh r1, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + ble _08145238 + ldr r0, _08145228 + ldr r0, [r0] + ldr r0, [r0, #0x38] + movs r1, #0x2e + ldrsh r0, [r0, r1] + add r0, sp + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #1 + ldrh r2, [r4, #0x20] + adds r0, r0, r2 + strh r0, [r4, #0x20] + bl IsSEPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081452D4 + movs r1, #0x20 + ldrsh r0, [r4, r1] + movs r4, #0x74 + subs r4, r4, r0 + lsrs r0, r4, #0x1f + adds r4, r4, r0 + asrs r4, r4, #1 + rsbs r4, r4, #0 + ldr r0, _0814522C + ldr r5, _08145230 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + adds r1, r5, #0 + adds r2, r4, #0 + bl m4aMPlayPanpotControl + ldr r0, _08145234 + adds r1, r5, #0 + adds r2, r4, #0 + bl m4aMPlayPanpotControl + b _081452D4 + .align 2, 0 +_08145220: .4byte 0x085976FA +_08145224: .4byte 0x085976FC +_08145228: .4byte 0x0203A854 +_0814522C: .4byte 0x03007510 +_08145230: .4byte 0x0000FFFF +_08145234: .4byte 0x03007550 +_08145238: + lsls r0, r1, #0x10 + cmp r0, #0 + blt _08145288 + ldr r0, _08145284 + ldr r0, [r0] + ldr r0, [r0, #0x38] + movs r2, #0x2e + ldrsh r0, [r0, r2] + add r0, sp + movs r2, #0 + ldrsb r2, [r0, r2] + movs r1, #0x30 + ldrsh r0, [r4, r1] + movs r1, #7 + subs r0, r1, r0 + lsls r0, r0, #1 + adds r0, r5, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + muls r0, r2, r0 + ldrh r2, [r4, #0x20] + adds r0, r0, r2 + strh r0, [r4, #0x20] + movs r2, #0x30 + ldrsh r0, [r4, r2] + subs r1, r1, r0 + lsls r1, r1, #1 + mov r0, sp + adds r0, #5 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x22] + adds r0, r0, r1 + strh r0, [r4, #0x22] + b _081452D4 + .align 2, 0 +_08145284: .4byte 0x0203A854 +_08145288: + movs r0, #0x5e + bl m4aSongNumStartOrChange + ldr r0, _081452A8 + ldr r0, [r0] + ldr r0, [r0, #0x38] + movs r2, #0x2e + ldrsh r0, [r0, r2] + cmp r0, #0 + bne _081452AC + movs r0, #0x98 + lsls r0, r0, #1 + movs r1, #0x3f + bl PlayCry1 + b _081452B8 + .align 2, 0 +_081452A8: .4byte 0x0203A854 +_081452AC: + movs r0, #0x98 + lsls r0, r0, #1 + movs r1, #0x3f + rsbs r1, r1, #0 + bl PlayCry1 +_081452B8: + ldr r0, _081452DC + ldr r0, [r0] + ldr r0, [r0, #0x38] + ldrh r1, [r0, #0x2e] + adds r1, #2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim + movs r0, #0x2d + strh r0, [r4, #0x30] + ldr r0, _081452E0 + str r0, [r4, #0x1c] +_081452D4: + add sp, #0x14 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081452DC: .4byte 0x0203A854 +_081452E0: .4byte 0x081450FD + thumb_func_end sub_081451A4 + + thumb_func_start sub_081452E4 +sub_081452E4: @ 0x081452E4 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + ldr r1, _08145344 + mov r0, sp + movs r2, #2 + bl memcpy + ldrh r0, [r4, #0x30] + subs r1, r0, #1 + strh r1, [r4, #0x30] + lsls r0, r0, #0x10 + cmp r0, #0 + blt _08145350 + ldr r0, _08145348 + ldr r0, [r0] + ldr r0, [r0, #0x38] + movs r1, #0x2e + ldrsh r0, [r0, r1] + add r0, sp + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #1 + ldrh r2, [r4, #0x20] + adds r0, r0, r2 + strh r0, [r4, #0x20] + ldr r1, _0814534C + movs r2, #0x3a + ldrsh r0, [r4, r2] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r1 + adds r2, #0x3e + ldrb r3, [r2] + lsls r0, r3, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + b _08145354 + .align 2, 0 +_08145344: .4byte 0x085976FA +_08145348: .4byte 0x0203A854 +_0814534C: .4byte 0x020205AC +_08145350: + ldr r0, _0814535C + str r0, [r4, #0x1c] +_08145354: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814535C: .4byte 0x08145061 + thumb_func_end sub_081452E4 + + thumb_func_start sub_08145360 +sub_08145360: @ 0x08145360 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0814539C + ldr r3, [r0] + ldr r1, [r3, #0x38] + movs r2, #0x2e + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _081453A8 + movs r0, #0x34 + ldrsh r2, [r1, r0] + ldr r1, _081453A0 + ldrb r0, [r3, #4] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x19 + adds r0, r0, r1 + ldrh r0, [r0, #0x12] + adds r0, #0x5a + cmp r2, r0 + bne _0814540A + ldr r2, _081453A4 + movs r0, #0x3a + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r3, #0x34 + b _081453D2 + .align 2, 0 +_0814539C: .4byte 0x0203A854 +_081453A0: .4byte 0x08595EF4 +_081453A4: .4byte 0x020205AC +_081453A8: + movs r0, #0x34 + ldrsh r2, [r1, r0] + ldr r1, _08145410 + ldrb r0, [r3, #4] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x19 + adds r0, r0, r1 + ldrh r0, [r0, #0x14] + movs r1, #0x87 + lsls r1, r1, #1 + adds r0, r0, r1 + cmp r2, r0 + bne _0814540A + ldr r2, _08145414 + movs r0, #0x3a + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r3, #0x2e +_081453D2: + strh r3, [r0, #0x30] + movs r0, #0x36 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r3, [r0, #0x30] + movs r0, #0x3a + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, _08145418 + str r1, [r0] + movs r0, #0x36 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, _0814541C + str r1, [r0] + movs r0, #0x2b + bl m4aSongNumStart +_0814540A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08145410: .4byte 0x08595EF4 +_08145414: .4byte 0x020205AC +_08145418: .4byte 0x081452E5 +_0814541C: .4byte 0x081451A5 + thumb_func_end sub_08145360 + diff --git a/asm/roulette_util.s b/asm/roulette_util.s new file mode 100644 index 0000000..a5d824d --- /dev/null +++ b/asm/roulette_util.s @@ -0,0 +1,1465 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_08151638 +sub_08151638: @ 0x08151638 + push {lr} + adds r2, r0, #0 + ldr r1, _08151650 + ldr r0, _0815164C + asrs r3, r2, #0x1f + bl __divdi3 + pop {r1} + bx r1 + .align 2, 0 +_0815164C: .4byte 0x00010000 +_08151650: .4byte 0x00000000 + thumb_func_end sub_08151638 + + thumb_func_start sub_08151654 +sub_08151654: @ 0x08151654 + push {lr} + movs r1, #0 + strb r1, [r0] + strh r1, [r0, #2] + adds r0, #4 + movs r2, #0xc0 + bl memset + pop {r0} + bx r0 + thumb_func_end sub_08151654 + + thumb_func_start sub_08151668 +sub_08151668: @ 0x08151668 + push {r4, r5, r6, r7, lr} + adds r3, r0, #0 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + cmp r6, #0xf + bhi _08151684 + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r5, r3, r0 + ldrb r7, [r5, #4] + lsrs r0, r7, #7 + cmp r0, #0 + beq _08151688 +_08151684: + movs r0, #0xff + b _081516E6 +_08151688: + ldrh r0, [r2] + movs r4, #0 + strh r0, [r5, #8] + ldrh r0, [r2, #2] + strh r0, [r5, #0xa] + ldrb r0, [r2, #4] + strb r0, [r5, #0xc] + ldrb r0, [r2, #5] + strb r0, [r5, #0xd] + ldrb r0, [r2, #6] + strb r0, [r5, #0xe] + ldrb r3, [r2, #7] + lsls r0, r3, #0x1b + lsrs r0, r0, #0x1b + ldrb r2, [r5, #0xf] + movs r1, #0x20 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + movs r0, #0x60 + ands r0, r3 + movs r2, #0x61 + rsbs r2, r2, #0 + ands r1, r2 + orrs r1, r0 + lsls r3, r3, #0x18 + asrs r3, r3, #0x1f + lsls r3, r3, #7 + movs r0, #0x7f + ands r1, r0 + orrs r1, r3 + strb r1, [r5, #0xf] + subs r0, #0xff + ands r0, r7 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r5, #4] + strb r4, [r5, #6] + strb r4, [r5, #5] + lsls r1, r1, #0x18 + cmp r1, #0 + bge _081516E0 + movs r0, #0xff + b _081516E2 +_081516E0: + movs r0, #1 +_081516E2: + strb r0, [r5, #7] + adds r0, r6, #0 +_081516E6: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_08151668 + + thumb_func_start sub_081516EC +sub_081516EC: @ 0x081516EC + push {r4, lr} + adds r2, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r4, r1, #0 + cmp r4, #0xf + bhi _08151718 + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r1, r2, r0 + ldrb r0, [r1, #4] + lsrs r0, r0, #7 + cmp r0, #0 + beq _08151718 + adds r0, r1, #4 + movs r1, #0 + movs r2, #0xc + bl memset + adds r0, r4, #0 + b _0815171A +_08151718: + movs r0, #0xff +_0815171A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081516EC + + thumb_func_start sub_08151720 +sub_08151720: @ 0x08151720 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r5, r0, #0 + movs r0, #0 + mov ip, r0 + ldrb r1, [r5, #8] + cmp ip, r1 + blo _08151738 + b _081518D0 +_08151738: + movs r7, #0x1f + ldr r0, _08151768 + mov sl, r0 + movs r1, #0x7d + rsbs r1, r1, #0 + mov sb, r1 + movs r0, #0x1f + mov r8, r0 +_08151748: + ldrh r0, [r5, #6] + add r0, ip + lsls r0, r0, #1 + ldr r1, _0815176C + adds r3, r0, r1 + ldr r1, _08151770 + adds r6, r0, r1 + ldrb r0, [r5] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x19 + cmp r0, #1 + beq _08151774 + cmp r0, #2 + beq _081517D2 + b _081518BE + .align 2, 0 +_08151768: .4byte 0xFFFFFC1F +_0815176C: .4byte 0x020377B4 +_08151770: .4byte 0x020373B4 +_08151774: + ldr r0, [r3] + lsls r2, r0, #0x1b + lsrs r0, r2, #0x1b + movs r1, #3 + ldrsb r1, [r5, r1] + adds r0, r0, r1 + cmp r0, #0x1f + bhi _08151796 + lsrs r0, r2, #0x1b + adds r0, r0, r1 + ands r0, r7 + ldrb r2, [r3] + movs r1, #0x20 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3] +_08151796: + ldr r0, [r3] + lsls r2, r0, #0x16 + lsrs r0, r2, #0x1b + movs r1, #3 + ldrsb r1, [r5, r1] + adds r0, r0, r1 + cmp r0, #0x1f + bhi _081517BA + lsrs r0, r2, #0x1b + adds r0, r0, r1 + mov r1, r8 + ands r0, r1 + lsls r0, r0, #5 + ldrh r2, [r3] + mov r1, sl + ands r1, r2 + orrs r1, r0 + strh r1, [r3] +_081517BA: + ldr r0, [r3] + lsls r2, r0, #0x11 + lsrs r0, r2, #0x1b + movs r1, #3 + ldrsb r1, [r5, r1] + adds r0, r0, r1 + cmp r0, #0x1f + bls _081517CC + b _081518BE +_081517CC: + lsrs r0, r2, #0x1b + adds r0, r0, r1 + b _081518B0 +_081517D2: + movs r0, #3 + ldrsb r0, [r5, r0] + cmp r0, #0 + bge _08151844 + ldr r0, [r3] + lsls r4, r0, #0x1b + lsrs r1, r4, #0x1b + movs r2, #3 + ldrsb r2, [r5, r2] + adds r1, r1, r2 + ldr r0, [r6] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1b + cmp r1, r0 + blt _08151802 + lsrs r0, r4, #0x1b + adds r0, r0, r2 + ands r0, r7 + ldrb r2, [r3] + movs r1, #0x20 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3] +_08151802: + ldr r0, [r3] + lsls r4, r0, #0x16 + lsrs r1, r4, #0x1b + movs r2, #3 + ldrsb r2, [r5, r2] + adds r1, r1, r2 + ldr r0, [r6] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x1b + cmp r1, r0 + blt _0815182C + lsrs r0, r4, #0x1b + adds r0, r0, r2 + mov r1, r8 + ands r0, r1 + lsls r0, r0, #5 + ldrh r2, [r3] + mov r1, sl + ands r1, r2 + orrs r1, r0 + strh r1, [r3] +_0815182C: + ldr r0, [r3] + lsls r4, r0, #0x11 + lsrs r1, r4, #0x1b + movs r2, #3 + ldrsb r2, [r5, r2] + adds r1, r1, r2 + ldr r0, [r6] + lsls r0, r0, #0x11 + lsrs r0, r0, #0x1b + cmp r1, r0 + blt _081518BE + b _081518AC +_08151844: + ldr r0, [r3] + lsls r4, r0, #0x1b + lsrs r1, r4, #0x1b + movs r2, #3 + ldrsb r2, [r5, r2] + adds r1, r1, r2 + ldr r0, [r6] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1b + cmp r1, r0 + bgt _0815186C + lsrs r0, r4, #0x1b + adds r0, r0, r2 + ands r0, r7 + ldrb r2, [r3] + movs r1, #0x20 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3] +_0815186C: + ldr r0, [r3] + lsls r4, r0, #0x16 + lsrs r1, r4, #0x1b + movs r2, #3 + ldrsb r2, [r5, r2] + adds r1, r1, r2 + ldr r0, [r6] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x1b + cmp r1, r0 + bgt _08151896 + lsrs r0, r4, #0x1b + adds r0, r0, r2 + mov r1, r8 + ands r0, r1 + lsls r0, r0, #5 + ldrh r2, [r3] + mov r1, sl + ands r1, r2 + orrs r1, r0 + strh r1, [r3] +_08151896: + ldr r0, [r3] + lsls r4, r0, #0x11 + lsrs r1, r4, #0x1b + movs r2, #3 + ldrsb r2, [r5, r2] + adds r1, r1, r2 + ldr r0, [r6] + lsls r0, r0, #0x11 + lsrs r0, r0, #0x1b + cmp r1, r0 + bgt _081518BE +_081518AC: + lsrs r0, r4, #0x1b + adds r0, r0, r2 +_081518B0: + ands r0, r7 + lsls r0, r0, #2 + ldrb r2, [r3, #1] + mov r1, sb + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #1] +_081518BE: + mov r0, ip + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov ip, r0 + ldrb r0, [r5, #8] + cmp ip, r0 + bhs _081518D0 + b _08151748 +_081518D0: + ldrb r1, [r5, #2] + adds r0, r1, #1 + strb r0, [r5, #2] + ldrb r0, [r5, #0xb] + lsls r0, r0, #0x1b + lsls r1, r1, #0x18 + asrs r0, r0, #3 + cmp r1, r0 + beq _081518E6 + movs r0, #0 + b _0815191A +_081518E6: + movs r0, #0 + strb r0, [r5, #2] + movs r0, #3 + ldrsb r0, [r5, r0] + rsbs r0, r0, #0 + strb r0, [r5, #3] + ldrb r2, [r5] + movs r1, #0x7f + movs r0, #0x7f + ands r0, r2 + cmp r0, #1 + bne _08151906 + lsls r0, r2, #0x19 + lsrs r0, r0, #0x19 + adds r0, #1 + b _0815190C +_08151906: + lsls r0, r2, #0x19 + lsrs r0, r0, #0x19 + subs r0, #1 +_0815190C: + ands r0, r1 + movs r1, #0x80 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r5] + movs r0, #1 +_0815191A: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_08151720 + + thumb_func_start sub_08151928 +sub_08151928: @ 0x08151928 + push {r4, r5, lr} + adds r3, r0, #0 + movs r2, #0 + ldrb r0, [r3] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x19 + cmp r0, #1 + beq _0815193E + cmp r0, #2 + beq _0815196C + b _081519A6 +_0815193E: + ldrb r0, [r3, #8] + cmp r2, r0 + bhs _0815195E + ldr r4, _08151968 +_08151946: + ldrh r0, [r3, #6] + adds r0, r0, r2 + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r1, [r3, #4] + strh r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldrb r0, [r3, #8] + cmp r2, r0 + blo _08151946 +_0815195E: + ldrb r2, [r3] + lsls r1, r2, #0x19 + lsrs r1, r1, #0x19 + adds r1, #1 + b _08151998 + .align 2, 0 +_08151968: .4byte 0x020377B4 +_0815196C: + ldrb r0, [r3, #8] + cmp r2, r0 + bhs _08151990 + ldr r5, _081519B0 + ldr r4, _081519B4 +_08151976: + ldrh r0, [r3, #6] + adds r0, r0, r2 + lsls r0, r0, #1 + adds r1, r0, r5 + adds r0, r0, r4 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldrb r0, [r3, #8] + cmp r2, r0 + blo _08151976 +_08151990: + ldrb r2, [r3] + lsls r1, r2, #0x19 + lsrs r1, r1, #0x19 + subs r1, #1 +_08151998: + movs r0, #0x7f + ands r1, r0 + movs r0, #0x80 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_081519A6: + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081519B0: .4byte 0x020377B4 +_081519B4: .4byte 0x020373B4 + thumb_func_end sub_08151928 + + thumb_func_start task_tutorial_controls_fadein +task_tutorial_controls_fadein: @ 0x081519B8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r5, #0 + ldrb r0, [r4] + cmp r0, #0 + beq _08151A1C +_081519C4: + ldrh r0, [r4, #2] + asrs r0, r5 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08151A12 + lsls r1, r5, #1 + adds r0, r1, r5 + lsls r3, r0, #2 + adds r2, r4, r3 + ldrb r0, [r2, #5] + subs r0, #1 + strb r0, [r2, #5] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r1, #0 + cmp r0, #0xff + bne _08151A12 + ldrh r0, [r2, #8] + movs r2, #0x80 + lsls r2, r2, #8 + adds r1, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _08151A00 + adds r0, r3, #4 + adds r0, r4, r0 + bl sub_08151720 + b _08151A08 +_08151A00: + adds r0, r3, #4 + adds r0, r4, r0 + bl sub_08151928 +_08151A08: + adds r0, r6, r5 + lsls r0, r0, #2 + adds r0, r4, r0 + ldrb r1, [r0, #0xd] + strb r1, [r0, #5] +_08151A12: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0xf + bls _081519C4 +_08151A1C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end task_tutorial_controls_fadein + + thumb_func_start sub_08151A24 +sub_08151A24: @ 0x08151A24 + push {r4, r5, r6, r7, lr} + adds r3, r0, #0 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + movs r4, #0 + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + movs r5, #1 + movs r7, #0x80 + rsbs r7, r7, #0 +_08151A3A: + adds r0, r6, #0 + asrs r0, r4 + ands r0, r5 + cmp r0, #0 + beq _08151A68 + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r2, r3, r0 + ldrb r0, [r2, #4] + lsrs r0, r0, #7 + cmp r0, #0 + beq _08151A68 + adds r0, r5, #0 + lsls r0, r4 + ldrh r1, [r3, #2] + orrs r0, r1 + strh r0, [r3, #2] + ldrb r1, [r2, #4] + adds r0, r7, #0 + ands r0, r1 + orrs r0, r5 + strb r0, [r2, #4] +_08151A68: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xf + bls _08151A3A + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08151A24 + + thumb_func_start sub_08151A78 +sub_08151A78: @ 0x08151A78 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r6, r0, #0 + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + movs r5, #0 + movs r3, #1 +_08151A86: + ldrh r0, [r6, #2] + asrs r0, r5 + ands r0, r3 + cmp r0, #0 + beq _08151AEE + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r4, r6, r0 + ldrb r0, [r4, #4] + lsrs r0, r0, #7 + cmp r0, #0 + beq _08151AEE + adds r0, r7, #0 + asrs r0, r5 + ands r0, r3 + cmp r0, #0 + beq _08151AEE + ldrh r1, [r4, #0xa] + lsls r1, r1, #1 + ldr r0, _08151AE4 + adds r0, r1, r0 + ldr r2, _08151AE8 + adds r1, r1, r2 + ldrb r2, [r4, #0xc] + lsls r2, r2, #1 + str r3, [sp] + bl memcpy + ldrb r0, [r4, #4] + movs r2, #0x80 + rsbs r2, r2, #0 + adds r1, r2, #0 + ands r0, r1 + strb r0, [r4, #4] + movs r0, #0 + strb r0, [r4, #6] + strb r0, [r4, #5] + ldrb r0, [r4, #0xf] + lsls r0, r0, #0x18 + ldr r3, [sp] + cmp r0, #0 + bge _08151AEC + movs r0, #0xff + strb r0, [r4, #7] + b _08151AEE + .align 2, 0 +_08151AE4: .4byte 0x020377B4 +_08151AE8: .4byte 0x020373B4 +_08151AEC: + strb r3, [r4, #7] +_08151AEE: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0xf + bls _08151A86 + ldr r0, _08151B04 + cmp r7, r0 + bne _08151B08 + movs r0, #0 + strb r0, [r6] + b _08151B0C + .align 2, 0 +_08151B04: .4byte 0x0000FFFF +_08151B08: + ldrh r0, [r6, #2] + bics r0, r7 +_08151B0C: + strh r0, [r6, #2] + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08151A78 + + thumb_func_start InitPulseBlend +InitPulseBlend: @ 0x08151B18 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + strh r4, [r5] + adds r0, r5, #4 + movs r1, #0 + movs r2, #0xc0 + bl memset +_08151B2A: + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r5, r0 + strb r4, [r0, #4] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xf + bls _08151B2A + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end InitPulseBlend + + thumb_func_start InitPulseBlendPaletteSettings +InitPulseBlendPaletteSettings: @ 0x08151B44 + push {r4, r5, lr} + adds r2, r0, #0 + adds r5, r1, #0 + movs r3, #0 + movs r4, #0 + ldrb r0, [r2, #5] + lsrs r0, r0, #7 + cmp r0, #0 + bne _08151B5A + adds r4, r2, #4 + b _08151B78 +_08151B5A: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0xf + bhi _08151B78 + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r1, r0, #2 + adds r0, r2, r1 + ldrb r0, [r0, #5] + lsrs r0, r0, #7 + cmp r0, #0 + bne _08151B5A + adds r0, r1, #4 + adds r4, r2, r0 +_08151B78: + cmp r4, #0 + beq _08151BA6 + ldrb r1, [r4, #1] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #1] + movs r0, #0 + strb r0, [r4, #2] + strb r0, [r4, #3] + adds r1, r4, #4 + adds r0, r5, #0 + ldm r0!, {r2, r4} + stm r1!, {r2, r4} + adds r0, r3, #0 + b _08151BA8 +_08151BA6: + movs r0, #0xff +_08151BA8: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end InitPulseBlendPaletteSettings + + thumb_func_start ClearPulseBlendPalettesSettings +ClearPulseBlendPalettesSettings: @ 0x08151BB0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #1] + movs r2, #0x40 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _08151BF2 + ldrb r1, [r4, #0xb] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _08151BF2 + ldrh r2, [r4, #6] + ldrb r0, [r4, #8] + adds r0, r2, r0 + cmp r2, r0 + bge _08151BF2 + ldr r5, _08151C24 + ldr r3, _08151C28 +_08151BD8: + lsls r0, r2, #1 + adds r1, r0, r5 + adds r0, r0, r3 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldrh r0, [r4, #6] + ldrb r1, [r4, #8] + adds r0, r0, r1 + cmp r2, r0 + blt _08151BD8 +_08151BF2: + adds r0, r4, #4 + movs r1, #0 + movs r2, #8 + bl memset + ldrb r1, [r4, #1] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + subs r1, #0x10 + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + movs r1, #0x7f + ands r0, r1 + strb r0, [r4, #1] + movs r0, #0 + strb r0, [r4, #3] + strb r0, [r4, #2] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08151C24: .4byte 0x020377B4 +_08151C28: .4byte 0x020373B4 + thumb_func_end ClearPulseBlendPalettesSettings + + thumb_func_start UnloadUsedPulseBlendPalettes +UnloadUsedPulseBlendPalettes: @ 0x08151C2C + push {r4, r5, r6, lr} + adds r6, r0, #0 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + lsls r2, r2, #0x18 + movs r5, #0 + cmp r2, #0 + bne _08151C50 + movs r1, #0xf + ands r1, r4 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, #4 + adds r0, r6, r0 + bl ClearPulseBlendPalettesSettings + b _08151C7C +_08151C50: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _08151C70 + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r1, r0, #2 + adds r0, r6, r1 + ldrb r0, [r0, #5] + lsrs r0, r0, #7 + cmp r0, #0 + beq _08151C70 + adds r0, r1, #4 + adds r0, r6, r0 + bl ClearPulseBlendPalettesSettings +_08151C70: + lsrs r4, r4, #1 + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0xf + bls _08151C50 +_08151C7C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end UnloadUsedPulseBlendPalettes + + thumb_func_start MarkUsedPulseBlendPalettes +MarkUsedPulseBlendPalettes: @ 0x08151C84 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + lsls r2, r2, #0x18 + movs r3, #0 + cmp r2, #0 + bne _08151CB8 + movs r0, #0xf + adds r3, r0, #0 + ands r3, r4 + lsls r1, r3, #1 + adds r1, r1, r3 + lsls r1, r1, #2 + adds r1, r5, r1 + ldrb r2, [r1, #5] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #5] + movs r0, #1 + lsls r0, r3 + ldrh r1, [r5] + orrs r0, r1 + strh r0, [r5] + b _08151CFC +_08151CB8: + movs r6, #1 + movs r7, #0x41 + rsbs r7, r7, #0 +_08151CBE: + adds r0, r4, #0 + ands r0, r6 + cmp r0, #0 + beq _08151CDC + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r2, r5, r0 + ldrb r1, [r2, #5] + lsrs r0, r1, #7 + cmp r0, #0 + beq _08151CDC + lsls r0, r1, #0x19 + cmp r0, #0 + blt _08151CE2 +_08151CDC: + lsls r0, r4, #0x11 + lsrs r4, r0, #0x10 + b _08151CF2 +_08151CE2: + adds r0, r7, #0 + ands r0, r1 + strb r0, [r2, #5] + adds r0, r6, #0 + lsls r0, r3 + ldrh r1, [r5] + orrs r0, r1 + strh r0, [r5] +_08151CF2: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0xf + bls _08151CBE +_08151CFC: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end MarkUsedPulseBlendPalettes + + thumb_func_start UnmarkUsedPulseBlendPalettes +UnmarkUsedPulseBlendPalettes: @ 0x08151D04 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov r8, r0 + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + lsls r2, r2, #0x18 + movs r0, #0 + mov ip, r0 + cmp r2, #0 + bne _08151D8C + movs r1, #0xf + ands r1, r7 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, #4 + mov r1, r8 + adds r3, r1, r0 + ldrb r1, [r3, #1] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0x80 + bne _08151E16 + ldrb r1, [r3, #0xb] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08151D6A + ldrh r2, [r3, #6] + ldrb r0, [r3, #8] + adds r0, r2, r0 + cmp r2, r0 + bge _08151D6A + ldr r5, _08151D84 + ldr r4, _08151D88 +_08151D50: + lsls r0, r2, #1 + adds r1, r0, r5 + adds r0, r0, r4 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldrh r0, [r3, #6] + ldrb r1, [r3, #8] + adds r0, r0, r1 + cmp r2, r0 + blt _08151D50 +_08151D6A: + ldrb r0, [r3, #1] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r3, #1] + movs r1, #1 + mov r2, ip + lsls r1, r2 + mov r2, r8 + ldrh r0, [r2] + bics r0, r1 + strh r0, [r2] + b _08151E16 + .align 2, 0 +_08151D84: .4byte 0x020377B4 +_08151D88: .4byte 0x020373B4 +_08151D8C: + movs r0, #1 + mov sb, r0 + movs r1, #0x40 + mov sl, r1 +_08151D94: + mov r2, ip + lsls r0, r2, #1 + add r0, ip + lsls r0, r0, #2 + adds r0, #4 + mov r1, r8 + adds r3, r1, r0 + adds r0, r7, #0 + mov r2, sb + ands r0, r2 + cmp r0, #0 + beq _08151DB6 + ldrb r1, [r3, #1] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0x80 + beq _08151DC0 +_08151DB6: + lsls r0, r7, #0x11 + lsrs r7, r0, #0x10 + mov r5, ip + adds r5, #1 + b _08151E0C +_08151DC0: + ldrb r1, [r3, #0xb] + mov r0, sl + ands r0, r1 + mov r5, ip + adds r5, #1 + cmp r0, #0 + beq _08151DF6 + ldrh r2, [r3, #6] + ldrb r0, [r3, #8] + adds r0, r2, r0 + cmp r2, r0 + bge _08151DF6 + ldr r6, _08151E24 + ldr r4, _08151E28 +_08151DDC: + lsls r0, r2, #1 + adds r1, r0, r6 + adds r0, r0, r4 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldrh r0, [r3, #6] + ldrb r1, [r3, #8] + adds r0, r0, r1 + cmp r2, r0 + blt _08151DDC +_08151DF6: + ldrb r1, [r3, #1] + mov r0, sl + orrs r0, r1 + strb r0, [r3, #1] + mov r1, sb + mov r0, ip + lsls r1, r0 + mov r2, r8 + ldrh r0, [r2] + bics r0, r1 + strh r0, [r2] +_08151E0C: + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + mov ip, r0 + cmp r0, #0xf + bls _08151D94 +_08151E16: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08151E24: .4byte 0x020377B4 +_08151E28: .4byte 0x020373B4 + thumb_func_end UnmarkUsedPulseBlendPalettes + + thumb_func_start UpdatePulseBlend +UpdatePulseBlend: @ 0x08151E2C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + str r0, [sp] + movs r0, #0 + mov sl, r0 + ldr r1, [sp] + ldrh r0, [r1] + cmp r0, #0 + bne _08151E48 + b _08151FD2 +_08151E48: + movs r2, #0xf + mov sb, r2 + movs r3, #0x10 + rsbs r3, r3, #0 + mov r8, r3 + movs r7, #1 +_08151E54: + mov r5, sl + lsls r0, r5, #1 + add r0, sl + lsls r0, r0, #2 + adds r0, #4 + ldr r1, [sp] + adds r4, r1, r0 + ldrb r2, [r4, #1] + movs r3, #0xc0 + ands r3, r2 + cmp r3, #0x80 + beq _08151E6E + b _08151FC2 +_08151E6E: + ldr r0, _08151EBC + ldrb r1, [r0, #7] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08151E84 + ldrb r0, [r4, #0xb] + ands r3, r0 + cmp r3, #0 + beq _08151E84 + b _08151FC2 +_08151E84: + ldrb r0, [r4, #2] + subs r0, #1 + strb r0, [r4, #2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _08151E94 + b _08151FC2 +_08151E94: + ldrb r0, [r4, #9] + strb r0, [r4, #2] + ldrh r0, [r4, #6] + ldrb r1, [r4, #8] + lsls r2, r2, #0x1c + lsrs r2, r2, #0x1c + ldrh r3, [r4, #4] + bl BlendPalette + ldrb r5, [r4, #0xb] + lsls r0, r5, #0x1a + asrs r0, r0, #0x1e + cmp r0, #1 + beq _08151EF2 + cmp r0, #1 + bgt _08151EC0 + cmp r0, #0 + beq _08151EC6 + b _08151FAC + .align 2, 0 +_08151EBC: .4byte 0x02037C74 +_08151EC0: + cmp r0, #2 + beq _08151F6E + b _08151FAC +_08151EC6: + ldrb r2, [r4, #1] + lsls r1, r2, #0x1c + lsrs r0, r1, #0x1c + adds r0, #1 + mov r3, sb + ands r0, r3 + mov r6, r8 + adds r3, r6, #0 + ands r3, r2 + orrs r3, r0 + strb r3, [r4, #1] + lsrs r1, r1, #0x1c + lsls r0, r5, #0x1c + asrs r0, r0, #0x1c + cmp r1, r0 + bne _08151FAC + ldrb r0, [r4, #3] + adds r0, #1 + strb r0, [r4, #3] + ands r3, r6 + strb r3, [r4, #1] + b _08151FAC +_08151EF2: + ldrb r3, [r4, #1] + movs r0, #0x10 + ands r0, r3 + cmp r0, #0 + beq _08151F30 + lsls r0, r3, #0x1c + lsrs r0, r0, #0x1c + subs r0, #1 + mov r5, sb + ands r0, r5 + mov r2, r8 + ands r2, r3 + orrs r2, r0 + strb r2, [r4, #1] + cmp r0, #0 + bne _08151FAC + ldrb r0, [r4, #3] + adds r0, #1 + strb r0, [r4, #3] + lsls r0, r2, #0x1b + lsrs r0, r0, #0x1f + eors r0, r7 + ands r0, r7 + lsls r0, r0, #4 + movs r3, #0x11 + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r2, r1 + orrs r2, r0 + strb r2, [r4, #1] + b _08151FAC +_08151F30: + lsls r0, r5, #0x1c + asrs r0, r0, #0x1c + subs r0, #1 + mov r5, sb + ands r0, r5 + lsls r2, r3, #0x1c + lsrs r1, r2, #0x1c + adds r1, #1 + ands r1, r5 + mov r5, r8 + ands r3, r5 + orrs r3, r1 + strb r3, [r4, #1] + lsrs r2, r2, #0x1c + cmp r2, r0 + bne _08151FAC + ldrb r0, [r4, #3] + adds r0, #1 + strb r0, [r4, #3] + lsls r0, r3, #0x1b + lsrs r0, r0, #0x1f + eors r0, r7 + ands r0, r7 + lsls r0, r0, #4 + movs r2, #0x11 + rsbs r2, r2, #0 + adds r1, r2, #0 + ands r3, r1 + orrs r3, r0 + strb r3, [r4, #1] + b _08151FAC +_08151F6E: + ldrb r2, [r4, #1] + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + beq _08151F7E + mov r0, r8 + ands r0, r2 + b _08151F8C +_08151F7E: + lsls r1, r5, #0x1c + asrs r1, r1, #0x1c + mov r3, sb + ands r1, r3 + mov r0, r8 + ands r0, r2 + orrs r0, r1 +_08151F8C: + strb r0, [r4, #1] + ldrb r2, [r4, #1] + lsls r0, r2, #0x1b + lsrs r0, r0, #0x1f + eors r0, r7 + ands r0, r7 + lsls r0, r0, #4 + movs r5, #0x11 + rsbs r5, r5, #0 + adds r1, r5, #0 + ands r2, r1 + orrs r2, r0 + strb r2, [r4, #1] + ldrb r0, [r4, #3] + adds r0, #1 + strb r0, [r4, #3] +_08151FAC: + ldrb r1, [r4, #0xa] + cmp r1, #0xff + beq _08151FC2 + ldrb r0, [r4, #3] + cmp r0, r1 + bne _08151FC2 + ldrb r1, [r4] + ldr r0, [sp] + movs r2, #0 + bl UnmarkUsedPulseBlendPalettes +_08151FC2: + mov r0, sl + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + cmp r0, #0xf + bhi _08151FD2 + b _08151E54 +_08151FD2: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end UpdatePulseBlend + + thumb_func_start sub_08151FE4 +sub_08151FE4: @ 0x08151FE4 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldr r0, [sp, #0x14] + ldr r4, [sp, #0x18] + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r1, #0 + lsrs r3, r3, #0x13 + adds r3, r3, r2 + lsls r3, r3, #1 + adds r6, r6, r3 + cmp r1, r4 + bhs _0815202E +_0815200C: + lsls r0, r1, #6 + adds r2, r6, r0 + movs r0, #0 + adds r3, r1, #1 + cmp r0, r5 + bhs _08152026 +_08152018: + strh r7, [r2] + adds r2, #2 + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r5 + blo _08152018 +_08152026: + lsls r0, r3, #0x18 + lsrs r1, r0, #0x18 + cmp r1, r4 + blo _0815200C +_0815202E: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08151FE4 + + thumb_func_start sub_08152034 +sub_08152034: @ 0x08152034 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + ldr r0, [sp, #0x14] + ldr r4, [sp, #0x18] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r6, r4, #0x18 + movs r4, #0 + lsrs r3, r3, #0x13 + adds r3, r3, r2 + lsls r3, r3, #1 + adds r7, r7, r3 + cmp r4, r6 + bhs _0815207E +_08152058: + lsls r0, r4, #6 + adds r2, r7, r0 + movs r3, #0 + adds r4, #1 + cmp r3, r5 + bhs _08152076 +_08152064: + ldrh r0, [r1] + strh r0, [r2] + adds r1, #2 + adds r2, #2 + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, r5 + blo _08152064 +_08152076: + lsls r0, r4, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r6 + blo _08152058 +_0815207E: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08152034 + diff --git a/asm/rtc.s b/asm/rtc.s new file mode 100644 index 0000000..a93bf24 --- /dev/null +++ b/asm/rtc.s @@ -0,0 +1,822 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start RtcDisableInterrupts +RtcDisableInterrupts: @ 0x0802ED30 + ldr r2, _0802ED40 + ldr r1, _0802ED44 + ldrh r0, [r1] + strh r0, [r2] + movs r0, #0 + strh r0, [r1] + bx lr + .align 2, 0 +_0802ED40: .4byte 0x03000DCE +_0802ED44: .4byte 0x04000208 + thumb_func_end RtcDisableInterrupts + + thumb_func_start RtcRestoreInterrupts +RtcRestoreInterrupts: @ 0x0802ED48 + ldr r0, _0802ED54 + ldr r1, _0802ED58 + ldrh r1, [r1] + strh r1, [r0] + bx lr + .align 2, 0 +_0802ED54: .4byte 0x04000208 +_0802ED58: .4byte 0x03000DCE + thumb_func_end RtcRestoreInterrupts + + thumb_func_start ConvertBcdToBinary +ConvertBcdToBinary: @ 0x0802ED5C + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x9f + bhi _0802ED6E + movs r3, #0xf + ands r3, r2 + cmp r3, #9 + bls _0802ED72 +_0802ED6E: + movs r0, #0xff + b _0802ED80 +_0802ED72: + lsrs r1, r0, #0x1c + movs r0, #0xf + ands r1, r0 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r0, r0, r3 +_0802ED80: + pop {r1} + bx r1 + thumb_func_end ConvertBcdToBinary + + thumb_func_start IsLeapYear +IsLeapYear: @ 0x0802ED84 + push {r4, lr} + adds r4, r0, #0 + movs r0, #3 + ands r0, r4 + cmp r0, #0 + bne _0802ED9C + adds r0, r4, #0 + movs r1, #0x64 + bl __umodsi3 + cmp r0, #0 + bne _0802EDAA +_0802ED9C: + movs r1, #0xc8 + lsls r1, r1, #1 + adds r0, r4, #0 + bl __umodsi3 + cmp r0, #0 + bne _0802EDAE +_0802EDAA: + movs r0, #1 + b _0802EDB0 +_0802EDAE: + movs r0, #0 +_0802EDB0: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsLeapYear + + thumb_func_start ConvertDateToDayCount +ConvertDateToDayCount: @ 0x0802EDB8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + movs r5, #0 + subs r4, r7, #1 + cmp r4, #0 + blt _0802EDF6 +_0802EDD4: + ldr r1, _0802EE3C + adds r0, r5, r1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r4, #0 + bl IsLeapYear + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0802EDF0 + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_0802EDF0: + subs r4, #1 + cmp r4, #0 + bge _0802EDD4 +_0802EDF6: + subs r0, r6, #1 + cmp r0, #0 + ble _0802EE0E + ldr r1, _0802EE40 + adds r4, r0, #0 +_0802EE00: + ldm r1!, {r0} + adds r0, r5, r0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + subs r4, #1 + cmp r4, #0 + bne _0802EE00 +_0802EE0E: + cmp r6, #2 + bls _0802EE26 + adds r0, r7, #0 + bl IsLeapYear + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0802EE26 + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_0802EE26: + mov r1, r8 + adds r0, r5, r1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r5, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0802EE3C: .4byte 0x0000016D +_0802EE40: .4byte 0x082D2558 + thumb_func_end ConvertDateToDayCount + + thumb_func_start RtcGetDayCount +RtcGetDayCount: @ 0x0802EE44 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r0, [r6] + bl ConvertBcdToBinary + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldrb r0, [r6, #1] + bl ConvertBcdToBinary + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldrb r0, [r6, #2] + bl ConvertBcdToBinary + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r5, #0 + adds r1, r4, #0 + bl ConvertDateToDayCount + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end RtcGetDayCount + + thumb_func_start RtcInit +RtcInit: @ 0x0802EE80 + push {r4, r5, lr} + ldr r5, _0802EEAC + movs r0, #0 + strh r0, [r5] + bl RtcDisableInterrupts + bl SiiRtcUnprotect + bl SiiRtcProbe + ldr r4, _0802EEB0 + strb r0, [r4] + bl RtcRestoreInterrupts + ldrb r4, [r4] + movs r0, #0xf + ands r0, r4 + cmp r0, #1 + beq _0802EEB4 + movs r0, #1 + strh r0, [r5] + b _0802EED2 + .align 2, 0 +_0802EEAC: .4byte 0x03000DB8 +_0802EEB0: .4byte 0x03000DCC +_0802EEB4: + movs r0, #0xf0 + ands r0, r4 + cmp r0, #0 + beq _0802EEBE + movs r0, #2 +_0802EEBE: + strh r0, [r5] + ldr r4, _0802EED8 + adds r0, r4, #0 + bl RtcGetRawInfo + adds r0, r4, #0 + bl RtcCheckInfo + ldr r1, _0802EEDC + strh r0, [r1] +_0802EED2: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0802EED8: .4byte 0x03000DC0 +_0802EEDC: .4byte 0x03000DB8 + thumb_func_end RtcInit + + thumb_func_start RtcGetErrorStatus +RtcGetErrorStatus: @ 0x0802EEE0 + ldr r0, _0802EEE8 + ldrh r0, [r0] + bx lr + .align 2, 0 +_0802EEE8: .4byte 0x03000DB8 + thumb_func_end RtcGetErrorStatus + + thumb_func_start RtcGetInfo +RtcGetInfo: @ 0x0802EEEC + push {r4, lr} + adds r2, r0, #0 + ldr r0, _0802EF08 + ldrh r1, [r0] + movs r0, #0xff + lsls r0, r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0802EF10 + adds r1, r2, #0 + ldr r0, _0802EF0C + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + b _0802EF16 + .align 2, 0 +_0802EF08: .4byte 0x03000DB8 +_0802EF0C: .4byte 0x082D254C +_0802EF10: + adds r0, r2, #0 + bl RtcGetRawInfo +_0802EF16: + pop {r4} + pop {r0} + bx r0 + thumb_func_end RtcGetInfo + + thumb_func_start RtcGetDateTime +RtcGetDateTime: @ 0x0802EF1C + push {r4, lr} + adds r4, r0, #0 + bl RtcDisableInterrupts + adds r0, r4, #0 + bl SiiRtcGetDateTime + bl RtcRestoreInterrupts + pop {r4} + pop {r0} + bx r0 + thumb_func_end RtcGetDateTime + + thumb_func_start RtcGetStatus +RtcGetStatus: @ 0x0802EF34 + push {r4, lr} + adds r4, r0, #0 + bl RtcDisableInterrupts + adds r0, r4, #0 + bl SiiRtcGetStatus + bl RtcRestoreInterrupts + pop {r4} + pop {r0} + bx r0 + thumb_func_end RtcGetStatus + + thumb_func_start RtcGetRawInfo +RtcGetRawInfo: @ 0x0802EF4C + push {r4, lr} + adds r4, r0, #0 + bl RtcGetStatus + adds r0, r4, #0 + bl RtcGetDateTime + pop {r4} + pop {r0} + bx r0 + thumb_func_end RtcGetRawInfo + + thumb_func_start RtcCheckInfo +RtcCheckInfo: @ 0x0802EF60 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + ldrb r1, [r7, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + rsbs r0, r0, #0 + asrs r4, r0, #0x1f + movs r0, #0x20 + ands r4, r0 + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _0802EF86 + movs r0, #0x10 + orrs r4, r0 +_0802EF86: + ldrb r0, [r7] + bl ConvertBcdToBinary + mov r8, r0 + cmp r0, #0xff + bne _0802EF9A + movs r0, #0x40 + orrs r4, r0 + lsls r0, r4, #0x10 + lsrs r4, r0, #0x10 +_0802EF9A: + ldrb r0, [r7, #1] + bl ConvertBcdToBinary + adds r6, r0, #0 + cmp r6, #0xff + beq _0802EFAE + cmp r6, #0 + beq _0802EFAE + cmp r6, #0xc + ble _0802EFB6 +_0802EFAE: + movs r0, #0x80 + orrs r4, r0 + lsls r0, r4, #0x10 + lsrs r4, r0, #0x10 +_0802EFB6: + ldrb r0, [r7, #2] + bl ConvertBcdToBinary + adds r5, r0, #0 + cmp r5, #0xff + bne _0802EFCE + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r1, #0 + orrs r4, r0 + lsls r0, r4, #0x10 + lsrs r4, r0, #0x10 +_0802EFCE: + cmp r6, #2 + bne _0802EFE8 + mov r0, r8 + bl IsLeapYear + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0802EFE4 + ldr r1, [r1, #4] + adds r0, r0, r1 + b _0802EFF2 + .align 2, 0 +_0802EFE4: .4byte 0x082D2558 +_0802EFE8: + ldr r0, _0802F058 + subs r1, r6, #1 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] +_0802EFF2: + cmp r5, r0 + ble _0802F002 + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r1, #0 + orrs r4, r0 + lsls r0, r4, #0x10 + lsrs r4, r0, #0x10 +_0802F002: + ldrb r0, [r7, #4] + bl ConvertBcdToBinary + adds r5, r0, #0 + cmp r5, #0x18 + ble _0802F01A + movs r1, #0x80 + lsls r1, r1, #2 + adds r0, r1, #0 + orrs r4, r0 + lsls r0, r4, #0x10 + lsrs r4, r0, #0x10 +_0802F01A: + ldrb r0, [r7, #5] + bl ConvertBcdToBinary + adds r5, r0, #0 + cmp r5, #0x3c + ble _0802F032 + movs r1, #0x80 + lsls r1, r1, #3 + adds r0, r1, #0 + orrs r4, r0 + lsls r0, r4, #0x10 + lsrs r4, r0, #0x10 +_0802F032: + ldrb r0, [r7, #6] + bl ConvertBcdToBinary + adds r5, r0, #0 + cmp r5, #0x3c + ble _0802F04A + movs r1, #0x80 + lsls r1, r1, #4 + adds r0, r1, #0 + orrs r4, r0 + lsls r0, r4, #0x10 + lsrs r4, r0, #0x10 +_0802F04A: + adds r0, r4, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0802F058: .4byte 0x082D2558 + thumb_func_end RtcCheckInfo + + thumb_func_start RtcReset +RtcReset: @ 0x0802F05C + push {lr} + bl RtcDisableInterrupts + bl SiiRtcReset + bl RtcRestoreInterrupts + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RtcReset + + thumb_func_start FormatDecimalTime +FormatDecimalTime: @ 0x0802F070 + push {r4, r5, r6, lr} + adds r5, r2, #0 + adds r6, r3, #0 + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + movs r4, #0xf0 + strb r4, [r0] + adds r0, #1 + adds r1, r5, #0 + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + strb r4, [r0] + adds r0, #1 + adds r1, r6, #0 + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + movs r1, #0xff + strb r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end FormatDecimalTime + + thumb_func_start FormatHexTime +FormatHexTime: @ 0x0802F0A8 + push {r4, r5, r6, lr} + adds r5, r2, #0 + adds r6, r3, #0 + movs r2, #2 + movs r3, #2 + bl ConvertIntToHexStringN + movs r4, #0xf0 + strb r4, [r0] + adds r0, #1 + adds r1, r5, #0 + movs r2, #2 + movs r3, #2 + bl ConvertIntToHexStringN + strb r4, [r0] + adds r0, #1 + adds r1, r6, #0 + movs r2, #2 + movs r3, #2 + bl ConvertIntToHexStringN + movs r1, #0xff + strb r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end FormatHexTime + + thumb_func_start FormatHexRtcTime +FormatHexRtcTime: @ 0x0802F0E0 + push {lr} + ldr r3, _0802F0F4 + ldrb r1, [r3, #4] + ldrb r2, [r3, #5] + ldrb r3, [r3, #6] + bl FormatHexTime + pop {r0} + bx r0 + .align 2, 0 +_0802F0F4: .4byte 0x03000DC0 + thumb_func_end FormatHexRtcTime + + thumb_func_start FormatDecimalDate +FormatDecimalDate: @ 0x0802F0F8 + push {r4, r5, r6, lr} + adds r5, r2, #0 + adds r6, r3, #0 + movs r2, #2 + movs r3, #4 + bl ConvertIntToDecimalStringN + movs r4, #0xae + strb r4, [r0] + adds r0, #1 + adds r1, r5, #0 + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + strb r4, [r0] + adds r0, #1 + adds r1, r6, #0 + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + movs r1, #0xff + strb r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end FormatDecimalDate + + thumb_func_start FormatHexDate +FormatHexDate: @ 0x0802F130 + push {r4, r5, r6, lr} + adds r5, r2, #0 + adds r6, r3, #0 + movs r2, #2 + movs r3, #4 + bl ConvertIntToHexStringN + movs r4, #0xae + strb r4, [r0] + adds r0, #1 + adds r1, r5, #0 + movs r2, #2 + movs r3, #2 + bl ConvertIntToHexStringN + strb r4, [r0] + adds r0, #1 + adds r1, r6, #0 + movs r2, #2 + movs r3, #2 + bl ConvertIntToHexStringN + movs r1, #0xff + strb r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end FormatHexDate + + thumb_func_start RtcCalcTimeDifference +RtcCalcTimeDifference: @ 0x0802F168 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r7, r1, #0 + adds r6, r2, #0 + bl RtcGetDayCount + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldrb r0, [r5, #6] + bl ConvertBcdToBinary + ldrb r1, [r6, #4] + subs r0, r0, r1 + strb r0, [r7, #4] + ldrb r0, [r5, #5] + bl ConvertBcdToBinary + ldrb r1, [r6, #3] + subs r0, r0, r1 + strb r0, [r7, #3] + ldrb r0, [r5, #4] + bl ConvertBcdToBinary + ldrb r1, [r6, #2] + subs r0, r0, r1 + strb r0, [r7, #2] + ldrh r0, [r6] + subs r4, r4, r0 + strh r4, [r7] + ldrb r1, [r7, #4] + movs r0, #4 + ldrsb r0, [r7, r0] + cmp r0, #0 + bge _0802F1BA + adds r0, r1, #0 + adds r0, #0x3c + strb r0, [r7, #4] + ldrb r0, [r7, #3] + subs r0, #1 + strb r0, [r7, #3] +_0802F1BA: + ldrb r1, [r7, #3] + movs r0, #3 + ldrsb r0, [r7, r0] + cmp r0, #0 + bge _0802F1D0 + adds r0, r1, #0 + adds r0, #0x3c + strb r0, [r7, #3] + ldrb r0, [r7, #2] + subs r0, #1 + strb r0, [r7, #2] +_0802F1D0: + ldrb r1, [r7, #2] + movs r0, #2 + ldrsb r0, [r7, r0] + cmp r0, #0 + bge _0802F1E6 + adds r0, r1, #0 + adds r0, #0x18 + strb r0, [r7, #2] + ldrh r0, [r7] + subs r0, #1 + strh r0, [r7] +_0802F1E6: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end RtcCalcTimeDifference + + thumb_func_start RtcCalcLocalTime +RtcCalcLocalTime: @ 0x0802F1EC + push {r4, lr} + ldr r4, _0802F20C + adds r0, r4, #0 + bl RtcGetInfo + ldr r1, _0802F210 + ldr r0, _0802F214 + ldr r2, [r0] + adds r2, #0x98 + adds r0, r4, #0 + bl RtcCalcTimeDifference + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802F20C: .4byte 0x03000DC0 +_0802F210: .4byte 0x03005A50 +_0802F214: .4byte 0x03005AF0 + thumb_func_end RtcCalcLocalTime + + thumb_func_start RtcInitLocalTimeOffset +RtcInitLocalTimeOffset: @ 0x0802F218 + push {lr} + adds r3, r0, #0 + adds r2, r1, #0 + movs r0, #0 + adds r1, r3, #0 + movs r3, #0 + bl RtcCalcLocalTimeOffset + pop {r0} + bx r0 + thumb_func_end RtcInitLocalTimeOffset + + thumb_func_start RtcCalcLocalTimeOffset +RtcCalcLocalTimeOffset: @ 0x0802F22C + push {r4, r5, lr} + ldr r4, _0802F254 + strh r0, [r4] + strb r1, [r4, #2] + strb r2, [r4, #3] + strb r3, [r4, #4] + ldr r5, _0802F258 + adds r0, r5, #0 + bl RtcGetInfo + ldr r0, _0802F25C + ldr r1, [r0] + adds r1, #0x98 + adds r0, r5, #0 + adds r2, r4, #0 + bl RtcCalcTimeDifference + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0802F254: .4byte 0x03005A50 +_0802F258: .4byte 0x03000DC0 +_0802F25C: .4byte 0x03005AF0 + thumb_func_end RtcCalcLocalTimeOffset + + thumb_func_start CalcTimeDifference +CalcTimeDifference: @ 0x0802F260 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r3, [r2, #4] + ldrb r0, [r1, #4] + subs r5, r3, r0 + strb r5, [r4, #4] + ldrb r3, [r2, #3] + ldrb r0, [r1, #3] + subs r6, r3, r0 + strb r6, [r4, #3] + ldrb r0, [r2, #2] + ldrb r3, [r1, #2] + subs r0, r0, r3 + strb r0, [r4, #2] + ldrh r0, [r2] + ldrh r1, [r1] + subs r0, r0, r1 + strh r0, [r4] + lsls r0, r5, #0x18 + cmp r0, #0 + bge _0802F294 + adds r0, r5, #0 + adds r0, #0x3c + strb r0, [r4, #4] + subs r0, r6, #1 + strb r0, [r4, #3] +_0802F294: + ldrb r1, [r4, #3] + movs r0, #3 + ldrsb r0, [r4, r0] + cmp r0, #0 + bge _0802F2AA + adds r0, r1, #0 + adds r0, #0x3c + strb r0, [r4, #3] + ldrb r0, [r4, #2] + subs r0, #1 + strb r0, [r4, #2] +_0802F2AA: + ldrb r1, [r4, #2] + movs r0, #2 + ldrsb r0, [r4, r0] + cmp r0, #0 + bge _0802F2C0 + adds r0, r1, #0 + adds r0, #0x18 + strb r0, [r4, #2] + ldrh r0, [r4] + subs r0, #1 + strh r0, [r4] +_0802F2C0: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CalcTimeDifference + + thumb_func_start RtcGetMinuteCount +RtcGetMinuteCount: @ 0x0802F2C8 + push {r4, lr} + ldr r4, _0802F2FC + adds r0, r4, #0 + bl RtcGetInfo + adds r0, r4, #0 + bl RtcGetDayCount + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #5 + ldrb r2, [r4, #4] + lsls r1, r2, #4 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r0, r0, r1 + ldrb r4, [r4, #5] + adds r0, r0, r4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0802F2FC: .4byte 0x03000DC0 + thumb_func_end RtcGetMinuteCount + + thumb_func_start RtcGetLocalDayCount +RtcGetLocalDayCount: @ 0x0802F300 + push {lr} + ldr r0, _0802F310 + bl RtcGetDayCount + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 +_0802F310: .4byte 0x03000DC0 + thumb_func_end RtcGetLocalDayCount + diff --git a/asm/safari_zone.s b/asm/safari_zone.s new file mode 100644 index 0000000..8834b88 --- /dev/null +++ b/asm/safari_zone.s @@ -0,0 +1,578 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start GetSafariZoneFlag +GetSafariZoneFlag: @ 0x080FC910 + push {lr} + ldr r0, _080FC920 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_080FC920: .4byte 0x0000088C + thumb_func_end GetSafariZoneFlag + + thumb_func_start ResetSafariZoneFlag +ResetSafariZoneFlag: @ 0x080FC924 + push {lr} + ldr r0, _080FC930 + bl FlagSet + pop {r0} + bx r0 + .align 2, 0 +_080FC930: .4byte 0x0000088C + thumb_func_end ResetSafariZoneFlag + + thumb_func_start SafariZoneRetirePrompt +SafariZoneRetirePrompt: @ 0x080FC934 + push {lr} + ldr r0, _080FC940 + bl FlagClear + pop {r0} + bx r0 + .align 2, 0 +_080FC940: .4byte 0x0000088C + thumb_func_end SafariZoneRetirePrompt + + thumb_func_start EnterSafariMode +EnterSafariMode: @ 0x080FC944 + push {lr} + movs r0, #0x11 + bl IncrementGameStat + bl ResetSafariZoneFlag + bl ClearAllPokeblockFeeders + ldr r1, _080FC974 + movs r0, #0x1e + strb r0, [r1] + ldr r1, _080FC978 + movs r2, #0xfa + lsls r2, r2, #1 + adds r0, r2, #0 + strh r0, [r1] + ldr r0, _080FC97C + movs r1, #0 + strb r1, [r0] + ldr r0, _080FC980 + strb r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_080FC974: .4byte 0x02039D18 +_080FC978: .4byte 0x02039D1A +_080FC97C: .4byte 0x02039D1C +_080FC980: .4byte 0x02039D1D + thumb_func_end EnterSafariMode + + thumb_func_start ExitSafariMode +ExitSafariMode: @ 0x080FC984 + push {lr} + ldr r0, _080FC9AC + ldrb r0, [r0] + ldr r1, _080FC9B0 + ldrb r1, [r1] + bl sub_080EEF6C + bl SafariZoneRetirePrompt + bl ClearAllPokeblockFeeders + ldr r1, _080FC9B4 + movs r0, #0 + strb r0, [r1] + ldr r1, _080FC9B8 + movs r0, #0 + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080FC9AC: .4byte 0x02039D1C +_080FC9B0: .4byte 0x02039D1D +_080FC9B4: .4byte 0x02039D18 +_080FC9B8: .4byte 0x02039D1A + thumb_func_end ExitSafariMode + + thumb_func_start SafariZoneTakeStep +SafariZoneTakeStep: @ 0x080FC9BC + push {lr} + bl GetSafariZoneFlag + cmp r0, #0 + beq _080FC9D8 + bl DecrementFeederStepCounters + ldr r1, _080FC9DC + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080FC9E0 +_080FC9D8: + movs r0, #0 + b _080FC9E8 + .align 2, 0 +_080FC9DC: .4byte 0x02039D1A +_080FC9E0: + ldr r0, _080FC9EC + bl ScriptContext1_SetupScript + movs r0, #1 +_080FC9E8: + pop {r1} + bx r1 + .align 2, 0 +_080FC9EC: .4byte 0x082623E8 + thumb_func_end SafariZoneTakeStep + + thumb_func_start SetSafariZoneFlag +SetSafariZoneFlag: @ 0x080FC9F0 + push {lr} + ldr r0, _080FC9FC + bl ScriptContext1_SetupScript + pop {r0} + bx r0 + .align 2, 0 +_080FC9FC: .4byte 0x082623CD + thumb_func_end SetSafariZoneFlag + + thumb_func_start CB2_EndSafariBattle +CB2_EndSafariBattle: @ 0x080FCA00 + push {lr} + ldr r1, _080FCA30 + ldr r0, _080FCA34 + ldrb r0, [r0, #0x1f] + ldrb r2, [r1] + adds r0, r0, r2 + strb r0, [r1] + ldr r2, _080FCA38 + ldrb r0, [r2] + cmp r0, #7 + bne _080FCA1E + ldr r1, _080FCA3C + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_080FCA1E: + ldr r0, _080FCA40 + ldrb r0, [r0] + cmp r0, #0 + beq _080FCA48 + ldr r0, _080FCA44 + bl SetMainCallback2 + b _080FCA8C + .align 2, 0 +_080FCA30: .4byte 0x02039D1D +_080FCA34: .4byte 0x03005A70 +_080FCA38: .4byte 0x02023FDE +_080FCA3C: .4byte 0x02039D1C +_080FCA40: .4byte 0x02039D18 +_080FCA44: .4byte 0x08085A31 +_080FCA48: + ldrb r0, [r2] + cmp r0, #8 + bne _080FCA78 + ldr r0, _080FCA68 + bl ScriptContext2_RunNewScript + bl WarpIntoMap + ldr r1, _080FCA6C + ldr r0, _080FCA70 + str r0, [r1] + ldr r0, _080FCA74 + bl SetMainCallback2 + b _080FCA8C + .align 2, 0 +_080FCA68: .4byte 0x082623AA +_080FCA6C: .4byte 0x03005B0C +_080FCA70: .4byte 0x080AEFED +_080FCA74: .4byte 0x08085935 +_080FCA78: + cmp r0, #7 + bne _080FCA8C + ldr r0, _080FCA90 + bl ScriptContext1_SetupScript + bl ScriptContext1_Stop + ldr r0, _080FCA94 + bl SetMainCallback2 +_080FCA8C: + pop {r0} + bx r0 + .align 2, 0 +_080FCA90: .4byte 0x082623F9 +_080FCA94: .4byte 0x08085B35 + thumb_func_end CB2_EndSafariBattle + + thumb_func_start ClearPokeblockFeeder +ClearPokeblockFeeder: @ 0x080FCA98 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x14 + ldr r1, _080FCAB0 + adds r0, r0, r1 + movs r1, #0 + movs r2, #0x10 + bl memset + pop {r0} + bx r0 + .align 2, 0 +_080FCAB0: .4byte 0x02039D20 + thumb_func_end ClearPokeblockFeeder + + thumb_func_start ClearAllPokeblockFeeders +ClearAllPokeblockFeeders: @ 0x080FCAB4 + push {lr} + ldr r0, _080FCAC4 + movs r1, #0 + movs r2, #0xa0 + bl memset + pop {r0} + bx r0 + .align 2, 0 +_080FCAC4: .4byte 0x02039D20 + thumb_func_end ClearAllPokeblockFeeders + + thumb_func_start GetPokeblockFeederInFront +GetPokeblockFeederInFront: @ 0x080FCAC8 + push {r4, r5, lr} + sub sp, #4 + mov r4, sp + adds r4, #2 + mov r0, sp + adds r1, r4, #0 + bl GetXYCoordsOneStepInFrontOfPlayer + movs r5, #0 +_080FCADA: + ldr r0, _080FCB20 + ldr r2, [r0] + ldr r1, _080FCB24 + lsls r0, r5, #4 + adds r3, r0, r1 + movs r1, #5 + ldrsb r1, [r2, r1] + movs r0, #4 + ldrsb r0, [r3, r0] + cmp r1, r0 + bne _080FCB34 + mov r0, sp + movs r2, #0 + ldrsh r1, [r3, r2] + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r1, r0 + bne _080FCB34 + movs r0, #2 + ldrsh r1, [r3, r0] + movs r2, #0 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080FCB34 + ldr r0, _080FCB28 + strh r5, [r0] + ldr r1, _080FCB2C + ldrb r0, [r3, #8] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + ldr r0, _080FCB30 + bl StringCopy + b _080FCB46 + .align 2, 0 +_080FCB20: .4byte 0x03005AEC +_080FCB24: .4byte 0x02039D20 +_080FCB28: .4byte 0x02037290 +_080FCB2C: .4byte 0x08592078 +_080FCB30: .4byte 0x02021C40 +_080FCB34: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #9 + bls _080FCADA + ldr r1, _080FCB50 + ldr r2, _080FCB54 + adds r0, r2, #0 + strh r0, [r1] +_080FCB46: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FCB50: .4byte 0x02037290 +_080FCB54: .4byte 0x0000FFFF + thumb_func_end GetPokeblockFeederInFront + + thumb_func_start GetPokeblockFeederWithinRange +GetPokeblockFeederWithinRange: @ 0x080FCB58 + push {r4, r5, r6, r7, lr} + sub sp, #4 + mov r4, sp + adds r4, #2 + mov r0, sp + adds r1, r4, #0 + bl PlayerGetDestCoords + movs r5, #0 + adds r6, r4, #0 + ldr r0, _080FCBC8 + ldr r7, [r0] + mov r4, sp + ldr r0, _080FCBCC + mov ip, r0 +_080FCB76: + lsls r0, r5, #4 + mov r1, ip + adds r3, r0, r1 + movs r1, #5 + ldrsb r1, [r7, r1] + movs r0, #4 + ldrsb r0, [r3, r0] + cmp r1, r0 + bne _080FCBD4 + ldrh r0, [r4] + ldrh r1, [r3] + subs r0, r0, r1 + strh r0, [r4] + adds r2, r6, #0 + ldrh r0, [r2] + ldrh r1, [r3, #2] + subs r0, r0, r1 + strh r0, [r2] + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #0 + bge _080FCBA6 + rsbs r0, r0, #0 + strh r0, [r4] +_080FCBA6: + movs r1, #0 + ldrsh r0, [r2, r1] + cmp r0, #0 + bge _080FCBB2 + rsbs r0, r0, #0 + strh r0, [r2] +_080FCBB2: + movs r2, #0 + ldrsh r0, [r4, r2] + movs r2, #0 + ldrsh r1, [r6, r2] + adds r0, r0, r1 + cmp r0, #5 + bgt _080FCBD4 + ldr r0, _080FCBD0 + strh r5, [r0] + b _080FCBE6 + .align 2, 0 +_080FCBC8: .4byte 0x03005AEC +_080FCBCC: .4byte 0x02039D20 +_080FCBD0: .4byte 0x02037290 +_080FCBD4: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #9 + bls _080FCB76 + ldr r1, _080FCBF0 + ldr r2, _080FCBF4 + adds r0, r2, #0 + strh r0, [r1] +_080FCBE6: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080FCBF0: .4byte 0x02037290 +_080FCBF4: .4byte 0x0000FFFF + thumb_func_end GetPokeblockFeederWithinRange + + thumb_func_start SafariZoneGetPokeblockInFront +SafariZoneGetPokeblockInFront: @ 0x080FCBF8 + push {lr} + bl GetPokeblockFeederInFront + ldr r2, _080FCC14 + ldrh r1, [r2] + ldr r0, _080FCC18 + cmp r1, r0 + beq _080FCC20 + adds r0, r1, #0 + lsls r0, r0, #4 + ldr r1, _080FCC1C + adds r0, r0, r1 + b _080FCC22 + .align 2, 0 +_080FCC14: .4byte 0x02037290 +_080FCC18: .4byte 0x0000FFFF +_080FCC1C: .4byte 0x02039D28 +_080FCC20: + movs r0, #0 +_080FCC22: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SafariZoneGetPokeblockInFront + + thumb_func_start SafariZoneGetActivePokeblock +SafariZoneGetActivePokeblock: @ 0x080FCC28 + push {lr} + bl GetPokeblockFeederWithinRange + ldr r2, _080FCC44 + ldrh r1, [r2] + ldr r0, _080FCC48 + cmp r1, r0 + beq _080FCC50 + adds r0, r1, #0 + lsls r0, r0, #4 + ldr r1, _080FCC4C + adds r0, r0, r1 + b _080FCC52 + .align 2, 0 +_080FCC44: .4byte 0x02037290 +_080FCC48: .4byte 0x0000FFFF +_080FCC4C: .4byte 0x02039D28 +_080FCC50: + movs r0, #0 +_080FCC52: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SafariZoneGetActivePokeblock + + thumb_func_start SafariZoneActivatePokeblockFeeder +SafariZoneActivatePokeblockFeeder: @ 0x080FCC58 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r1, #0 + ldr r2, _080FCCCC + mov r6, sp + adds r6, #2 + movs r0, #8 + adds r0, r0, r2 + mov sb, r0 + ldr r7, _080FCCD0 +_080FCC78: + lsls r5, r1, #4 + adds r4, r5, r2 + movs r0, #4 + ldrsb r0, [r4, r0] + cmp r0, #0 + bne _080FCCD8 + movs r3, #0 + ldrsh r0, [r4, r3] + cmp r0, #0 + bne _080FCCD8 + movs r3, #2 + ldrsh r0, [r4, r3] + cmp r0, #0 + bne _080FCCD8 + mov r0, sp + adds r1, r6, #0 + bl GetXYCoordsOneStepInFrontOfPlayer + ldr r0, [r7] + ldrb r0, [r0, #5] + strb r0, [r4, #4] + mov r0, sb + adds r2, r5, r0 + ldr r0, [r7] + mov r3, r8 + lsls r1, r3, #3 + ldr r3, _080FCCD4 + adds r0, r0, r3 + adds r0, r0, r1 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [r2] + str r1, [r2, #4] + movs r0, #0x64 + strb r0, [r4, #5] + mov r0, sp + ldrh r0, [r0] + strh r0, [r4] + ldrh r0, [r6] + strh r0, [r4, #2] + b _080FCCE2 + .align 2, 0 +_080FCCCC: .4byte 0x02039D20 +_080FCCD0: .4byte 0x03005AEC +_080FCCD4: .4byte 0x00000848 +_080FCCD8: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #9 + bls _080FCC78 +_080FCCE2: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end SafariZoneActivatePokeblockFeeder + + thumb_func_start DecrementFeederStepCounters +DecrementFeederStepCounters: @ 0x080FCCF0 + push {r4, r5, lr} + movs r4, #0 + ldr r5, _080FCD20 +_080FCCF6: + lsls r0, r4, #4 + adds r1, r0, r5 + ldrb r0, [r1, #5] + cmp r0, #0 + beq _080FCD10 + subs r0, #1 + strb r0, [r1, #5] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080FCD10 + adds r0, r4, #0 + bl ClearPokeblockFeeder +_080FCD10: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #9 + bls _080FCCF6 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080FCD20: .4byte 0x02039D20 + thumb_func_end DecrementFeederStepCounters + + thumb_func_start GetInFrontFeederPokeblockAndSteps +GetInFrontFeederPokeblockAndSteps: @ 0x080FCD24 + push {lr} + bl GetPokeblockFeederInFront + ldr r3, _080FCD4C + ldrh r1, [r3] + ldr r0, _080FCD50 + cmp r1, r0 + beq _080FCD5C + ldr r0, _080FCD54 + ldr r2, _080FCD58 + lsls r1, r1, #4 + adds r1, r1, r2 + ldrb r1, [r1, #5] + movs r2, #2 + movs r3, #3 + bl ConvertIntToDecimalStringN + movs r0, #1 + b _080FCD5E + .align 2, 0 +_080FCD4C: .4byte 0x02037290 +_080FCD50: .4byte 0x0000FFFF +_080FCD54: .4byte 0x02021C54 +_080FCD58: .4byte 0x02039D20 +_080FCD5C: + movs r0, #0 +_080FCD5E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetInFrontFeederPokeblockAndSteps + diff --git a/asm/save.s b/asm/save.s new file mode 100644 index 0000000..2d84b87 --- /dev/null +++ b/asm/save.s @@ -0,0 +1,2162 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ClearSaveData +ClearSaveData: @ 0x0815262C + push {r4, r5, lr} + movs r4, #0 + ldr r5, _08152658 +_08152632: + ldr r1, [r5] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + adds r0, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, [r5] + bl _call_via_r1 + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0xf + bls _08152632 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08152658: .4byte 0x03007600 + thumb_func_end ClearSaveData + + thumb_func_start Save_ResetSaveCounters +Save_ResetSaveCounters: @ 0x0815265C + ldr r0, _0815266C + movs r1, #0 + str r1, [r0] + ldr r0, _08152670 + strh r1, [r0] + ldr r0, _08152674 + str r1, [r0] + bx lr + .align 2, 0 +_0815266C: .4byte 0x03005F40 +_08152670: .4byte 0x03005F30 +_08152674: .4byte 0x03005F3C + thumb_func_end Save_ResetSaveCounters + + thumb_func_start SetDamagedSectorBits +SetDamagedSectorBits: @ 0x08152678 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + movs r4, #0 + cmp r0, #1 + beq _081526AC + cmp r0, #1 + bgt _08152692 + cmp r0, #0 + beq _08152698 + b _081526D0 +_08152692: + cmp r0, #2 + beq _081526C0 + b _081526D0 +_08152698: + ldr r2, _081526A8 + movs r1, #1 + lsls r1, r3 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + b _081526D0 + .align 2, 0 +_081526A8: .4byte 0x03005F3C +_081526AC: + ldr r2, _081526BC + adds r1, r0, #0 + lsls r1, r3 + ldr r0, [r2] + bics r0, r1 + str r0, [r2] + b _081526D0 + .align 2, 0 +_081526BC: .4byte 0x03005F3C +_081526C0: + ldr r0, _081526D8 + movs r1, #1 + lsls r1, r3 + ldr r0, [r0] + ands r0, r1 + cmp r0, #0 + beq _081526D0 + movs r4, #1 +_081526D0: + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081526D8: .4byte 0x03005F3C + thumb_func_end SetDamagedSectorBits + + thumb_func_start save_write_to_flash +save_write_to_flash: @ 0x081526DC + push {r4, r5, r6, r7, lr} + adds r7, r1, #0 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r1, _08152700 + ldr r0, _08152704 + str r0, [r1] + ldr r0, _08152708 + cmp r2, r0 + beq _0815270C + adds r0, r2, #0 + adds r1, r7, #0 + bl HandleWriteSector + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + b _0815275E + .align 2, 0 +_08152700: .4byte 0x03005F44 +_08152704: .4byte 0x0203A888 +_08152708: .4byte 0x0000FFFF +_0815270C: + ldr r1, _08152768 + ldr r5, _0815276C + ldrh r0, [r5] + strh r0, [r1] + ldr r1, _08152770 + ldr r6, _08152774 + ldr r4, [r6] + str r4, [r1] + adds r0, #1 + strh r0, [r5] + ldrh r0, [r5] + movs r1, #0xe + bl __umodsi3 + strh r0, [r5] + adds r4, #1 + str r4, [r6] + movs r5, #1 + movs r4, #0 +_08152732: + adds r0, r4, #0 + adds r1, r7, #0 + bl HandleWriteSector + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0xd + bls _08152732 + ldr r0, _08152778 + ldr r0, [r0] + cmp r0, #0 + beq _0815275E + movs r5, #0xff + ldr r1, _0815276C + ldr r0, _08152768 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _08152774 + ldr r0, _08152770 + ldr r0, [r0] + str r0, [r1] +_0815275E: + adds r0, r5, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08152768: .4byte 0x03005F38 +_0815276C: .4byte 0x03005F30 +_08152770: .4byte 0x03005F34 +_08152774: .4byte 0x03005F40 +_08152778: .4byte 0x03005F3C + thumb_func_end save_write_to_flash + + thumb_func_start HandleWriteSector +HandleWriteSector: @ 0x0815277C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r4, r1, #0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r0, _08152848 + ldrh r0, [r0] + adds r0, r6, r0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r5, #0 + movs r1, #0xe + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r2, _0815284C + ldr r1, [r2] + movs r0, #1 + ands r1, r0 + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #1 + adds r0, r5, r0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r0, r6, #3 + adds r0, r0, r4 + ldr r1, [r0] + mov sl, r1 + ldrh r4, [r0, #4] + movs r3, #0 + mov sb, r2 + ldr r2, _08152850 + mov ip, r2 + mov r8, ip + movs r2, #0 + ldr r1, _08152854 +_081527CE: + mov r7, r8 + ldr r0, [r7] + adds r0, r0, r3 + strb r2, [r0] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, r1 + bls _081527CE + mov r0, ip + ldr r1, [r0] + ldr r2, _08152858 + adds r0, r1, r2 + strh r6, [r0] + ldr r3, _0815285C + adds r2, r1, r3 + ldr r0, _08152860 + str r0, [r2] + ldr r6, _08152864 + adds r1, r1, r6 + mov r7, sb + ldr r0, [r7] + str r0, [r1] + movs r3, #0 + lsls r5, r5, #0x18 + cmp r3, r4 + bhs _0815281C + mov r2, ip +_08152806: + ldr r1, [r2] + adds r1, r1, r3 + mov r6, sl + adds r0, r6, r3 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, r4 + blo _08152806 +_0815281C: + mov r0, sl + adds r1, r4, #0 + bl CalculateChecksum + ldr r1, _08152850 + ldr r1, [r1] + ldr r7, _08152868 + adds r2, r1, r7 + strh r0, [r2] + lsrs r0, r5, #0x18 + bl TryWriteSector + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08152848: .4byte 0x03005F30 +_0815284C: .4byte 0x03005F40 +_08152850: .4byte 0x03005F44 +_08152854: .4byte 0x00000FFF +_08152858: .4byte 0x00000FF4 +_0815285C: .4byte 0x00000FF8 +_08152860: .4byte 0x08012025 +_08152864: .4byte 0x00000FFC +_08152868: .4byte 0x00000FF6 + thumb_func_end HandleWriteSector + + thumb_func_start HandleWriteSectorNBytes +HandleWriteSectorNBytes: @ 0x0815286C + push {r4, r5, r6, r7, lr} + adds r5, r1, #0 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldr r4, _081528D0 + movs r3, #0 + movs r6, #0 + ldr r1, _081528D4 +_08152880: + adds r0, r4, r3 + strb r6, [r0] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, r1 + bls _08152880 + ldr r0, _081528D8 + adds r1, r4, r0 + ldr r0, _081528DC + str r0, [r1] + movs r3, #0 + cmp r3, r2 + bhs _081528AE +_0815289C: + adds r1, r4, r3 + adds r0, r5, r3 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, r2 + blo _0815289C +_081528AE: + adds r0, r5, #0 + adds r1, r2, #0 + bl CalculateChecksum + ldr r2, _081528E0 + adds r1, r4, r2 + strh r0, [r1] + adds r0, r7, #0 + adds r1, r4, #0 + bl TryWriteSector + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081528D0: .4byte 0x0203A888 +_081528D4: .4byte 0x00000FFF +_081528D8: .4byte 0x00000FF8 +_081528DC: .4byte 0x08012025 +_081528E0: .4byte 0x00000FF4 + thumb_func_end HandleWriteSectorNBytes + + thumb_func_start TryWriteSector +TryWriteSector: @ 0x081528E4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl ProgramFlashSectorAndVerify + cmp r0, #0 + bne _08152900 + movs r0, #1 + adds r1, r4, #0 + bl SetDamagedSectorBits + movs r0, #1 + b _0815290A +_08152900: + movs r0, #0 + adds r1, r4, #0 + bl SetDamagedSectorBits + movs r0, #0xff +_0815290A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end TryWriteSector + + thumb_func_start RestoreSaveBackupVarsAndIncrement +RestoreSaveBackupVarsAndIncrement: @ 0x08152910 + push {r4, r5, r6, lr} + ldr r1, _0815294C + ldr r0, _08152950 + str r0, [r1] + ldr r1, _08152954 + ldr r5, _08152958 + ldrh r0, [r5] + strh r0, [r1] + ldr r1, _0815295C + ldr r6, _08152960 + ldr r4, [r6] + str r4, [r1] + adds r0, #1 + strh r0, [r5] + ldrh r0, [r5] + movs r1, #0xe + bl __umodsi3 + strh r0, [r5] + adds r4, #1 + str r4, [r6] + ldr r1, _08152964 + movs r0, #0 + strh r0, [r1] + ldr r1, _08152968 + movs r0, #0 + str r0, [r1] + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0815294C: .4byte 0x03005F44 +_08152950: .4byte 0x0203A888 +_08152954: .4byte 0x03005F38 +_08152958: .4byte 0x03005F30 +_0815295C: .4byte 0x03005F34 +_08152960: .4byte 0x03005F40 +_08152964: .4byte 0x03005F48 +_08152968: .4byte 0x03005F3C + thumb_func_end RestoreSaveBackupVarsAndIncrement + + thumb_func_start RestoreSaveBackupVars +RestoreSaveBackupVars: @ 0x0815296C + ldr r1, _08152990 + ldr r0, _08152994 + str r0, [r1] + ldr r1, _08152998 + ldr r0, _0815299C + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _081529A0 + ldr r0, _081529A4 + ldr r0, [r0] + str r0, [r1] + ldr r1, _081529A8 + movs r0, #0 + strh r0, [r1] + ldr r1, _081529AC + movs r0, #0 + str r0, [r1] + bx lr + .align 2, 0 +_08152990: .4byte 0x03005F44 +_08152994: .4byte 0x0203A888 +_08152998: .4byte 0x03005F38 +_0815299C: .4byte 0x03005F30 +_081529A0: .4byte 0x03005F34 +_081529A4: .4byte 0x03005F40 +_081529A8: .4byte 0x03005F48 +_081529AC: .4byte 0x03005F3C + thumb_func_end RestoreSaveBackupVars + + thumb_func_start sub_081529B0 +sub_081529B0: @ 0x081529B0 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _081529EC + ldrh r2, [r4] + subs r0, #1 + cmp r2, r0 + bge _08152A04 + movs r5, #1 + adds r0, r2, #0 + bl HandleWriteSector + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + ldr r0, _081529F0 + ldr r0, [r0] + cmp r0, #0 + beq _08152A06 + movs r5, #0xff + ldr r1, _081529F4 + ldr r0, _081529F8 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _081529FC + ldr r0, _08152A00 + ldr r0, [r0] + str r0, [r1] + b _08152A06 + .align 2, 0 +_081529EC: .4byte 0x03005F48 +_081529F0: .4byte 0x03005F3C +_081529F4: .4byte 0x03005F30 +_081529F8: .4byte 0x03005F38 +_081529FC: .4byte 0x03005F40 +_08152A00: .4byte 0x03005F34 +_08152A04: + movs r5, #0xff +_08152A06: + adds r0, r5, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081529B0 + + thumb_func_start sub_08152A10 +sub_08152A10: @ 0x08152A10 + push {r4, lr} + lsls r0, r0, #0x10 + movs r4, #1 + ldr r2, _08152A44 + adds r0, r0, r2 + lsrs r0, r0, #0x10 + bl ClearSaveData_2 + ldr r0, _08152A48 + ldr r0, [r0] + cmp r0, #0 + beq _08152A3A + movs r4, #0xff + ldr r1, _08152A4C + ldr r0, _08152A50 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _08152A54 + ldr r0, _08152A58 + ldr r0, [r0] + str r0, [r1] +_08152A3A: + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08152A44: .4byte 0xFFFF0000 +_08152A48: .4byte 0x03005F3C +_08152A4C: .4byte 0x03005F30 +_08152A50: .4byte 0x03005F38 +_08152A54: .4byte 0x03005F40 +_08152A58: .4byte 0x03005F34 + thumb_func_end sub_08152A10 + + thumb_func_start ClearSaveData_2 +ClearSaveData_2: @ 0x08152A5C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r4, r1, #0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r0, _08152B28 + ldrh r0, [r0] + adds r0, r6, r0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r5, #0 + movs r1, #0xe + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r2, _08152B2C + ldr r1, [r2] + movs r0, #1 + ands r1, r0 + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #1 + adds r0, r5, r0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r0, r6, #3 + adds r0, r0, r4 + ldr r1, [r0] + mov sl, r1 + ldrh r3, [r0, #4] + movs r4, #0 + mov sb, r2 + ldr r2, _08152B30 + mov ip, r2 + mov r8, ip + movs r2, #0 + ldr r1, _08152B34 +_08152AAE: + mov r7, r8 + ldr r0, [r7] + adds r0, r0, r4 + strb r2, [r0] + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, r1 + bls _08152AAE + mov r0, ip + ldr r1, [r0] + ldr r2, _08152B38 + adds r0, r1, r2 + strh r6, [r0] + ldr r6, _08152B3C + adds r2, r1, r6 + ldr r0, _08152B40 + str r0, [r2] + ldr r7, _08152B44 + adds r1, r1, r7 + mov r2, sb + ldr r0, [r2] + str r0, [r1] + movs r4, #0 + lsls r6, r5, #0x18 + mov r8, r6 + cmp r4, r3 + bhs _08152AFE + mov r2, ip +_08152AE8: + ldr r1, [r2] + adds r1, r1, r4 + mov r7, sl + adds r0, r7, r4 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, r3 + blo _08152AE8 +_08152AFE: + mov r0, sl + adds r1, r3, #0 + bl CalculateChecksum + ldr r1, _08152B30 + ldr r1, [r1] + ldr r2, _08152B48 + adds r1, r1, r2 + strh r0, [r1] + ldr r0, _08152B4C + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + movs r6, #1 + movs r4, #0 + ldr r7, _08152B50 + mov sb, r7 + ldr r7, _08152B54 + b _08152B5E + .align 2, 0 +_08152B28: .4byte 0x03005F30 +_08152B2C: .4byte 0x03005F40 +_08152B30: .4byte 0x03005F44 +_08152B34: .4byte 0x00000FFF +_08152B38: .4byte 0x00000FF4 +_08152B3C: .4byte 0x00000FF8 +_08152B40: .4byte 0x08012025 +_08152B44: .4byte 0x00000FFC +_08152B48: .4byte 0x00000FF6 +_08152B4C: .4byte 0x03007600 +_08152B50: .4byte 0x00000FF7 +_08152B54: .4byte 0x030075F4 +_08152B58: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_08152B5E: + cmp r4, sb + bhi _08152B7C + ldr r0, _08152B88 + ldr r0, [r0] + adds r0, r0, r4 + ldrb r2, [r0] + ldr r3, [r7] + adds r0, r5, #0 + adds r1, r4, #0 + bl _call_via_r3 + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08152B58 + movs r6, #0xff +_08152B7C: + cmp r6, #0xff + bne _08152B8C + mov r0, r8 + lsrs r1, r0, #0x18 + b _08152BE4 + .align 2, 0 +_08152B88: .4byte 0x03005F44 +_08152B8C: + movs r6, #1 + movs r4, #0 + ldr r1, _08152B98 + mov sb, r1 + ldr r7, _08152B9C + b _08152BA6 + .align 2, 0 +_08152B98: .4byte 0x030075F4 +_08152B9C: .4byte 0x00000FF9 +_08152BA0: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_08152BA6: + cmp r4, #6 + bhi _08152BC8 + adds r1, r4, r7 + ldr r0, _08152BDC + ldr r0, [r0] + adds r0, r4, r0 + adds r0, r0, r7 + ldrb r2, [r0] + mov r0, sb + ldr r3, [r0] + adds r0, r5, #0 + bl _call_via_r3 + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08152BA0 + movs r6, #0xff +_08152BC8: + cmp r6, #0xff + beq _08152BE0 + mov r2, r8 + lsrs r1, r2, #0x18 + movs r0, #1 + bl SetDamagedSectorBits + movs r0, #1 + b _08152BEC + .align 2, 0 +_08152BDC: .4byte 0x03005F44 +_08152BE0: + mov r6, r8 + lsrs r1, r6, #0x18 +_08152BE4: + movs r0, #0 + bl SetDamagedSectorBits + movs r0, #0xff +_08152BEC: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ClearSaveData_2 + + thumb_func_start sub_08152BFC +sub_08152BFC: @ 0x08152BFC + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + ldr r6, _08152C58 + lsrs r0, r0, #0x10 + ldrh r1, [r6] + adds r0, r0, r1 + subs r0, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r4, #0 + movs r1, #0xe + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r5, _08152C5C + ldr r1, [r5] + movs r0, #1 + ands r1, r0 + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #1 + adds r0, r4, r0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r3, _08152C60 + ldr r1, _08152C64 + ldr r0, _08152C68 + ldr r0, [r0] + adds r0, r0, r1 + ldrb r2, [r0] + ldr r3, [r3] + adds r0, r4, #0 + bl _call_via_r3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08152C6C + lsls r1, r4, #0x18 + lsrs r1, r1, #0x18 + movs r0, #1 + bl SetDamagedSectorBits + movs r0, #1 + b _08152C84 + .align 2, 0 +_08152C58: .4byte 0x03005F30 +_08152C5C: .4byte 0x03005F40 +_08152C60: .4byte 0x030075F4 +_08152C64: .4byte 0x00000FF8 +_08152C68: .4byte 0x03005F44 +_08152C6C: + lsls r1, r4, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0 + bl SetDamagedSectorBits + ldr r0, _08152C8C + ldrh r0, [r0] + strh r0, [r6] + ldr r0, _08152C90 + ldr r0, [r0] + str r0, [r5] + movs r0, #0xff +_08152C84: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08152C8C: .4byte 0x03005F38 +_08152C90: .4byte 0x03005F34 + thumb_func_end sub_08152BFC + + thumb_func_start sub_08152C94 +sub_08152C94: @ 0x08152C94 + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + ldr r6, _08152CE8 + lsrs r0, r0, #0x10 + ldrh r1, [r6] + adds r0, r0, r1 + subs r0, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r4, #0 + movs r1, #0xe + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r5, _08152CEC + ldr r1, [r5] + movs r0, #1 + ands r1, r0 + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #1 + adds r0, r4, r0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, _08152CF0 + ldr r1, _08152CF4 + ldr r3, [r0] + adds r0, r4, #0 + movs r2, #0x25 + bl _call_via_r3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08152CF8 + lsls r1, r4, #0x18 + lsrs r1, r1, #0x18 + movs r0, #1 + bl SetDamagedSectorBits + movs r0, #1 + b _08152D10 + .align 2, 0 +_08152CE8: .4byte 0x03005F30 +_08152CEC: .4byte 0x03005F40 +_08152CF0: .4byte 0x030075F4 +_08152CF4: .4byte 0x00000FF8 +_08152CF8: + lsls r1, r4, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0 + bl SetDamagedSectorBits + ldr r0, _08152D18 + ldrh r0, [r0] + strh r0, [r6] + ldr r0, _08152D1C + ldr r0, [r0] + str r0, [r5] + movs r0, #0xff +_08152D10: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08152D18: .4byte 0x03005F38 +_08152D1C: .4byte 0x03005F34 + thumb_func_end sub_08152C94 + + thumb_func_start sub_08152D20 +sub_08152D20: @ 0x08152D20 + push {r4, r5, r6, lr} + adds r6, r1, #0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r1, _08152D38 + ldr r0, _08152D3C + str r0, [r1] + ldr r0, _08152D40 + cmp r4, r0 + beq _08152D44 + movs r5, #0xff + b _08152D56 + .align 2, 0 +_08152D38: .4byte 0x03005F44 +_08152D3C: .4byte 0x0203A888 +_08152D40: .4byte 0x0000FFFF +_08152D44: + adds r0, r6, #0 + bl GetSaveValidStatus + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08152D60 +_08152D56: + adds r0, r5, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08152D20 + + thumb_func_start sub_08152D60 +sub_08152D60: @ 0x08152D60 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r1 + ldr r0, _08152DFC + ldr r1, [r0] + movs r0, #1 + ands r1, r0 + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #0x11 + lsrs r7, r0, #0x10 + movs r5, #0 + ldr r6, _08152E00 +_08152D7C: + adds r0, r5, r7 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, [r6] + bl DoReadFlashWholeSection + ldr r0, [r6] + ldr r1, _08152E04 + adds r0, r0, r1 + ldrh r1, [r0] + cmp r1, #0 + bne _08152D98 + ldr r0, _08152E08 + strh r5, [r0] +_08152D98: + ldr r0, [r6] + lsls r1, r1, #3 + mov r2, r8 + adds r4, r1, r2 + ldrh r1, [r4, #4] + bl CalculateChecksum + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldr r2, [r6] + ldr r1, _08152E0C + adds r0, r2, r1 + ldr r1, [r0] + ldr r0, _08152E10 + adds r5, #1 + cmp r1, r0 + bne _08152DE8 + ldr r1, _08152E14 + adds r0, r2, r1 + ldrh r0, [r0] + cmp r0, r3 + bne _08152DE8 + movs r2, #0 + ldrh r0, [r4, #4] + cmp r2, r0 + bhs _08152DE8 + adds r3, r4, #0 + ldr r4, _08152E00 +_08152DD0: + ldr r1, [r3] + adds r1, r1, r2 + ldr r0, [r4] + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldrh r1, [r3, #4] + cmp r2, r1 + blo _08152DD0 +_08152DE8: + lsls r0, r5, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0xd + bls _08152D7C + movs r0, #1 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08152DFC: .4byte 0x03005F40 +_08152E00: .4byte 0x03005F44 +_08152E04: .4byte 0x00000FF4 +_08152E08: .4byte 0x03005F30 +_08152E0C: .4byte 0x00000FF8 +_08152E10: .4byte 0x08012025 +_08152E14: .4byte 0x00000FF6 + thumb_func_end sub_08152D60 + + thumb_func_start GetSaveValidStatus +GetSaveValidStatus: @ 0x08152E18 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov sl, r0 + movs r0, #0 + mov r8, r0 + mov sb, r0 + movs r6, #0 + movs r5, #0 + movs r4, #0 + ldr r7, _08152EA4 +_08152E34: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + ldr r1, [r7] + bl DoReadFlashWholeSection + ldr r2, [r7] + ldr r1, _08152EA8 + adds r0, r2, r1 + ldr r1, [r0] + ldr r0, _08152EAC + cmp r1, r0 + bne _08152E84 + movs r5, #1 + ldr r3, _08152EB0 + adds r0, r2, r3 + ldrh r0, [r0] + lsls r0, r0, #3 + add r0, sl + ldrh r1, [r0, #4] + adds r0, r2, #0 + bl CalculateChecksum + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r1, [r7] + ldr r3, _08152EB4 + adds r0, r1, r3 + ldrh r0, [r0] + cmp r0, r2 + bne _08152E84 + ldr r2, _08152EB8 + adds r0, r1, r2 + ldr r0, [r0] + mov r8, r0 + subs r3, #2 + adds r1, r1, r3 + adds r0, r5, #0 + ldrh r1, [r1] + lsls r0, r1 + orrs r6, r0 +_08152E84: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0xd + bls _08152E34 + cmp r5, #0 + beq _08152EC0 + ldr r0, _08152EBC + movs r1, #0xff + str r1, [sp] + cmp r6, r0 + bne _08152EC4 + movs r2, #1 + str r2, [sp] + b _08152EC4 + .align 2, 0 +_08152EA4: .4byte 0x03005F44 +_08152EA8: .4byte 0x00000FF8 +_08152EAC: .4byte 0x08012025 +_08152EB0: .4byte 0x00000FF4 +_08152EB4: .4byte 0x00000FF6 +_08152EB8: .4byte 0x00000FFC +_08152EBC: .4byte 0x00003FFF +_08152EC0: + movs r3, #0 + str r3, [sp] +_08152EC4: + movs r6, #0 + movs r5, #0 + movs r4, #0 + ldr r7, _08152F3C +_08152ECC: + adds r0, r4, #0 + adds r0, #0xe + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, [r7] + bl DoReadFlashWholeSection + ldr r2, [r7] + ldr r1, _08152F40 + adds r0, r2, r1 + ldr r1, [r0] + ldr r0, _08152F44 + cmp r1, r0 + bne _08152F20 + movs r5, #1 + ldr r3, _08152F48 + adds r0, r2, r3 + ldrh r0, [r0] + lsls r0, r0, #3 + add r0, sl + ldrh r1, [r0, #4] + adds r0, r2, #0 + bl CalculateChecksum + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r1, [r7] + ldr r3, _08152F4C + adds r0, r1, r3 + ldrh r0, [r0] + cmp r0, r2 + bne _08152F20 + ldr r2, _08152F50 + adds r0, r1, r2 + ldr r0, [r0] + mov sb, r0 + subs r3, #2 + adds r1, r1, r3 + adds r0, r5, #0 + ldrh r1, [r1] + lsls r0, r1 + orrs r6, r0 +_08152F20: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0xd + bls _08152ECC + cmp r5, #0 + beq _08152F58 + ldr r0, _08152F54 + movs r1, #0xff + cmp r6, r0 + bne _08152F5A + movs r1, #1 + b _08152F5A + .align 2, 0 +_08152F3C: .4byte 0x03005F44 +_08152F40: .4byte 0x00000FF8 +_08152F44: .4byte 0x08012025 +_08152F48: .4byte 0x00000FF4 +_08152F4C: .4byte 0x00000FF6 +_08152F50: .4byte 0x00000FFC +_08152F54: .4byte 0x00003FFF +_08152F58: + movs r1, #0 +_08152F5A: + ldr r0, [sp] + cmp r0, #1 + bne _08152FCC + cmp r1, #1 + bne _08152FBC + movs r0, #1 + rsbs r0, r0, #0 + cmp r8, r0 + bne _08152F72 + mov r1, sb + cmp r1, #0 + beq _08152F7C +_08152F72: + mov r2, r8 + cmp r2, #0 + bne _08152FA0 + cmp sb, r0 + bne _08152FA0 +_08152F7C: + mov r1, r8 + adds r1, #1 + mov r0, sb + adds r0, #1 + cmp r1, r0 + bhs _08152F94 + ldr r0, _08152F90 + mov r3, sb + b _08152FB4 + .align 2, 0 +_08152F90: .4byte 0x03005F40 +_08152F94: + ldr r0, _08152F9C + mov r1, r8 + str r1, [r0] + b _08152FE4 + .align 2, 0 +_08152F9C: .4byte 0x03005F40 +_08152FA0: + cmp r8, sb + bhs _08152FB0 + ldr r0, _08152FAC + mov r2, sb + str r2, [r0] + b _08152FE4 + .align 2, 0 +_08152FAC: .4byte 0x03005F40 +_08152FB0: + ldr r0, _08152FB8 + mov r3, r8 +_08152FB4: + str r3, [r0] + b _08152FE4 + .align 2, 0 +_08152FB8: .4byte 0x03005F40 +_08152FBC: + ldr r0, _08152FC8 + mov r2, r8 + str r2, [r0] + cmp r1, #0xff + beq _08152FDC + b _08152FE4 + .align 2, 0 +_08152FC8: .4byte 0x03005F40 +_08152FCC: + cmp r1, #1 + bne _08152FE8 + ldr r0, _08152FE0 + mov r3, sb + str r3, [r0] + ldr r0, [sp] + cmp r0, #0xff + bne _08152FE4 +_08152FDC: + movs r0, #0xff + b _08153014 + .align 2, 0 +_08152FE0: .4byte 0x03005F40 +_08152FE4: + movs r0, #1 + b _08153014 +_08152FE8: + ldr r2, [sp] + cmp r2, #0 + bne _08153008 + cmp r1, #0 + bne _08153008 + ldr r0, _08153000 + str r1, [r0] + ldr r0, _08153004 + strh r1, [r0] + movs r0, #0 + b _08153014 + .align 2, 0 +_08153000: .4byte 0x03005F40 +_08153004: .4byte 0x03005F30 +_08153008: + ldr r0, _08153024 + movs r1, #0 + str r1, [r0] + ldr r0, _08153028 + strh r1, [r0] + movs r0, #2 +_08153014: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08153024: .4byte 0x03005F40 +_08153028: .4byte 0x03005F30 + thumb_func_end GetSaveValidStatus + + thumb_func_start sub_0815302C +sub_0815302C: @ 0x0815302C + push {r4, r5, r6, lr} + adds r6, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r2, #0x10 + lsrs r4, r2, #0x10 + ldr r5, _08153080 + adds r1, r5, #0 + bl DoReadFlashWholeSection + ldr r1, _08153084 + adds r0, r5, r1 + ldr r1, [r0] + ldr r0, _08153088 + cmp r1, r0 + bne _08153094 + adds r0, r5, #0 + adds r1, r4, #0 + bl CalculateChecksum + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r2, _0815308C + adds r1, r5, r2 + ldrh r1, [r1] + cmp r1, r0 + bne _08153090 + movs r2, #0 + cmp r2, r4 + bhs _0815307A +_08153068: + adds r1, r6, r2 + adds r0, r5, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, r4 + blo _08153068 +_0815307A: + movs r0, #1 + b _08153096 + .align 2, 0 +_08153080: .4byte 0x0203A888 +_08153084: .4byte 0x00000FF8 +_08153088: .4byte 0x08012025 +_0815308C: .4byte 0x00000FF4 +_08153090: + movs r0, #2 + b _08153096 +_08153094: + movs r0, #0 +_08153096: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_0815302C + + thumb_func_start DoReadFlashWholeSection +DoReadFlashWholeSection: @ 0x0815309C + push {lr} + adds r2, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r3, #0x80 + lsls r3, r3, #5 + movs r1, #0 + bl ReadFlash + movs r0, #1 + pop {r1} + bx r1 + thumb_func_end DoReadFlashWholeSection + + thumb_func_start CalculateChecksum +CalculateChecksum: @ 0x081530B4 + push {r4, lr} + adds r4, r0, #0 + lsls r1, r1, #0x10 + movs r2, #0 + movs r3, #0 + lsrs r1, r1, #0x12 + cmp r2, r1 + bhs _081530D2 +_081530C4: + ldm r4!, {r0} + adds r2, r2, r0 + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, r1 + blo _081530C4 +_081530D2: + lsrs r0, r2, #0x10 + adds r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r4} + pop {r1} + bx r1 + thumb_func_end CalculateChecksum + + thumb_func_start UpdateSaveAddresses +UpdateSaveAddresses: @ 0x081530E0 + push {r4, r5, lr} + ldr r3, _08153140 + ldr r0, _08153144 + ldr r2, _08153148 + ldrh r1, [r2] + ldr r0, [r0] + adds r0, r0, r1 + str r0, [r3] + ldrh r0, [r2, #2] + strh r0, [r3, #4] + ldr r5, _0815314C + adds r3, #8 + adds r2, #4 + movs r4, #3 +_081530FC: + ldrh r0, [r2] + ldr r1, [r5] + adds r1, r1, r0 + str r1, [r3] + ldrh r0, [r2, #2] + strh r0, [r3, #4] + adds r3, #8 + adds r2, #4 + subs r4, #1 + cmp r4, #0 + bge _081530FC + movs r4, #5 + ldr r1, _08153140 + ldr r5, _08153150 + ldr r0, _08153148 + adds r3, r1, #0 + adds r3, #0x28 + adds r2, r0, #0 + adds r2, #0x14 +_08153122: + ldrh r0, [r2] + ldr r1, [r5] + adds r1, r1, r0 + str r1, [r3] + ldrh r0, [r2, #2] + strh r0, [r3, #4] + adds r3, #8 + adds r2, #4 + adds r4, #1 + cmp r4, #0xd + ble _08153122 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08153140: .4byte 0x03005F60 +_08153144: .4byte 0x03005AF0 +_08153148: .4byte 0x085ACA08 +_0815314C: .4byte 0x03005AEC +_08153150: .4byte 0x03005AF4 + thumb_func_end UpdateSaveAddresses + + thumb_func_start HandleSavingData +HandleSavingData: @ 0x08153154 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08153174 + ldr r6, [r1] + movs r0, #0 + str r0, [r1] + bl UpdateSaveAddresses + cmp r4, #5 + bhi _081531FC + lsls r0, r4, #2 + ldr r1, _08153178 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08153174: .4byte 0x0203CC28 +_08153178: .4byte 0x0815317C +_0815317C: @ jump table + .4byte _081531FC @ case 0 + .4byte _08153214 @ case 1 + .4byte _08153214 @ case 2 + .4byte _081531AA @ case 3 + .4byte _08153234 @ case 4 + .4byte _08153194 @ case 5 +_08153194: + movs r4, #0x1c + ldr r5, _081531E8 +_08153198: + ldr r1, [r5] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x1f + bls _08153198 +_081531AA: + movs r0, #0xa + bl GetGameStat + ldr r1, _081531EC + cmp r0, r1 + bhi _081531BC + movs r0, #0xa + bl IncrementGameStat +_081531BC: + bl SaveSerializedGame + ldr r0, _081531F0 + ldr r1, _081531F4 + bl save_write_to_flash + ldr r4, _081531F8 + movs r5, #0xf8 + lsls r5, r5, #4 + movs r0, #0x1c + adds r1, r4, #0 + adds r2, r5, #0 + bl HandleWriteSectorNBytes + adds r4, r4, r5 + movs r0, #0x1d + adds r1, r4, #0 + adds r2, r5, #0 + bl HandleWriteSectorNBytes + b _08153256 + .align 2, 0 +_081531E8: .4byte 0x03007600 +_081531EC: .4byte 0x000003E6 +_081531F0: .4byte 0x0000FFFF +_081531F4: .4byte 0x03005F60 +_081531F8: .4byte 0x0201C000 +_081531FC: + bl SaveSerializedGame + ldr r0, _0815320C + ldr r1, _08153210 + bl save_write_to_flash + b _08153256 + .align 2, 0 +_0815320C: .4byte 0x0000FFFF +_08153210: .4byte 0x03005F60 +_08153214: + bl SaveSerializedGame + movs r4, #0 +_0815321A: + adds r0, r4, #0 + ldr r1, _08153230 + bl save_write_to_flash + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #4 + bls _0815321A + b _08153256 + .align 2, 0 +_08153230: .4byte 0x03005F60 +_08153234: + movs r4, #0x1c + ldr r5, _08153264 +_08153238: + ldr r1, [r5] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x1f + bls _08153238 + bl SaveSerializedGame + ldr r0, _08153268 + ldr r1, _0815326C + bl save_write_to_flash +_08153256: + ldr r0, _08153270 + str r6, [r0] + movs r0, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08153264: .4byte 0x03007600 +_08153268: .4byte 0x0000FFFF +_0815326C: .4byte 0x03005F60 +_08153270: .4byte 0x0203CC28 + thumb_func_end HandleSavingData + + thumb_func_start TrySavingData +TrySavingData: @ 0x08153274 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _081532A0 + ldr r4, [r0] + cmp r4, #1 + bne _08153296 + adds r0, r5, #0 + bl HandleSavingData + ldr r0, _081532A4 + ldr r0, [r0] + cmp r0, #0 + beq _081532AC + adds r0, r5, #0 + bl DoSaveFailedScreen +_08153296: + ldr r1, _081532A8 + movs r0, #0xff + strh r0, [r1] + movs r0, #0xff + b _081532B2 + .align 2, 0 +_081532A0: .4byte 0x03005AE8 +_081532A4: .4byte 0x03005F3C +_081532A8: .4byte 0x03005FD4 +_081532AC: + ldr r0, _081532B8 + strh r4, [r0] + movs r0, #1 +_081532B2: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081532B8: .4byte 0x03005FD4 + thumb_func_end TrySavingData + + thumb_func_start sub_081532BC +sub_081532BC: @ 0x081532BC + push {lr} + ldr r0, _081532D8 + ldr r0, [r0] + cmp r0, #1 + bne _081532E0 + bl UpdateSaveAddresses + bl SaveSerializedGame + ldr r0, _081532DC + bl RestoreSaveBackupVarsAndIncrement + movs r0, #0 + b _081532E2 + .align 2, 0 +_081532D8: .4byte 0x03005AE8 +_081532DC: .4byte 0x03005F60 +_081532E0: + movs r0, #1 +_081532E2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081532BC + + thumb_func_start sub_081532E8 +sub_081532E8: @ 0x081532E8 + push {r4, lr} + ldr r1, _0815330C + movs r0, #0xe + bl sub_081529B0 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _08153310 + ldr r0, [r0] + cmp r0, #0 + beq _08153304 + movs r0, #0 + bl DoSaveFailedScreen +_08153304: + cmp r4, #0xff + beq _08153314 + movs r0, #0 + b _08153316 + .align 2, 0 +_0815330C: .4byte 0x03005F60 +_08153310: .4byte 0x03005F3C +_08153314: + movs r0, #1 +_08153316: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081532E8 + + thumb_func_start sub_0815331C +sub_0815331C: @ 0x0815331C + push {lr} + ldr r1, _0815333C + movs r0, #0xe + bl sub_08152A10 + ldr r0, _08153340 + ldr r0, [r0] + cmp r0, #0 + beq _08153334 + movs r0, #0 + bl DoSaveFailedScreen +_08153334: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0815333C: .4byte 0x03005F60 +_08153340: .4byte 0x03005F3C + thumb_func_end sub_0815331C + + thumb_func_start sub_08153344 +sub_08153344: @ 0x08153344 + push {lr} + ldr r1, _08153364 + movs r0, #0xe + bl sub_08152BFC + ldr r0, _08153368 + ldr r0, [r0] + cmp r0, #0 + beq _0815335C + movs r0, #0 + bl DoSaveFailedScreen +_0815335C: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_08153364: .4byte 0x03005F60 +_08153368: .4byte 0x03005F3C + thumb_func_end sub_08153344 + + thumb_func_start FullSaveGame +FullSaveGame: @ 0x0815336C + push {r4, lr} + ldr r0, _0815339C + ldr r0, [r0] + cmp r0, #1 + bne _081533A8 + bl UpdateSaveAddresses + bl SaveSerializedGame + ldr r4, _081533A0 + adds r0, r4, #0 + bl RestoreSaveBackupVars + ldr r0, _081533A4 + ldrh r0, [r0] + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r4, #0 + bl sub_08152A10 + movs r0, #0 + b _081533AA + .align 2, 0 +_0815339C: .4byte 0x03005AE8 +_081533A0: .4byte 0x03005F60 +_081533A4: .4byte 0x03005F48 +_081533A8: + movs r0, #1 +_081533AA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end FullSaveGame + + thumb_func_start CheckSaveFile +CheckSaveFile: @ 0x081533B0 + push {r4, r5, r6, lr} + movs r6, #0 + ldr r0, _081533DC + ldrh r1, [r0] + adds r1, #1 + strh r1, [r0] + lsls r0, r1, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #4 + bhi _081533E4 + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _081533E0 + adds r1, r4, #0 + bl sub_08152A10 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08152C94 + b _081533EE + .align 2, 0 +_081533DC: .4byte 0x03005F48 +_081533E0: .4byte 0x03005F60 +_081533E4: + ldr r1, _08153404 + adds r0, r5, #0 + bl sub_08152C94 + movs r6, #1 +_081533EE: + ldr r0, _08153408 + ldr r0, [r0] + cmp r0, #0 + beq _081533FC + movs r0, #1 + bl DoSaveFailedScreen +_081533FC: + adds r0, r6, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08153404: .4byte 0x03005F60 +_08153408: .4byte 0x03005F3C + thumb_func_end CheckSaveFile + + thumb_func_start Save_LoadGameData +Save_LoadGameData: @ 0x0815340C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _08153424 + ldr r0, [r0] + cmp r0, #1 + beq _0815342C + ldr r1, _08153428 + movs r0, #4 + strh r0, [r1] + movs r0, #0xff + b _0815348C + .align 2, 0 +_08153424: .4byte 0x03005AE8 +_08153428: .4byte 0x03005F50 +_0815342C: + bl UpdateSaveAddresses + cmp r4, #0 + beq _08153438 + cmp r4, #3 + beq _08153464 +_08153438: + ldr r0, _08153454 + ldr r1, _08153458 + bl sub_08152D20 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl LoadSerializedGame + ldr r0, _0815345C + strh r4, [r0] + ldr r1, _08153460 + movs r0, #0 + str r0, [r1] + b _0815348A + .align 2, 0 +_08153454: .4byte 0x0000FFFF +_08153458: .4byte 0x03005F60 +_0815345C: .4byte 0x03005F50 +_08153460: .4byte 0x03005F54 +_08153464: + ldr r5, _08153494 + movs r6, #0xf8 + lsls r6, r6, #4 + movs r0, #0x1c + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_0815302C + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #1 + bne _0815348A + adds r1, r5, r6 + movs r0, #0x1d + adds r2, r6, #0 + bl sub_0815302C + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_0815348A: + adds r0, r4, #0 +_0815348C: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08153494: .4byte 0x0201C000 + thumb_func_end Save_LoadGameData + + thumb_func_start sub_08153498 +sub_08153498: @ 0x08153498 + push {r4, r5, r6, r7, lr} + ldr r5, _081534AC + ldr r0, _081534B0 + str r0, [r5] + adds r7, r0, #0 + ldr r0, _081534B4 + ldr r4, [r0] + cmp r4, #1 + beq _081534C8 + b _08153504 + .align 2, 0 +_081534AC: .4byte 0x03005F44 +_081534B0: .4byte 0x0203A888 +_081534B4: .4byte 0x03005AE8 +_081534B8: + ldrb r1, [r7, #0xa] + ldrb r0, [r7, #0xb] + adds r1, r1, r0 + ldrb r0, [r7, #0xc] + adds r1, r1, r0 + ldrb r0, [r7, #0xd] + adds r0, r0, r1 + b _08153506 +_081534C8: + bl UpdateSaveAddresses + ldr r0, _0815350C + bl GetSaveValidStatus + ldr r0, _08153510 + ldr r1, [r0] + ands r1, r4 + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #0x11 + lsrs r6, r0, #0x10 + movs r4, #0 +_081534E2: + adds r0, r4, r6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, [r5] + bl DoReadFlashWholeSection + ldr r0, [r5] + ldr r1, _08153514 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0 + beq _081534B8 + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0xd + bls _081534E2 +_08153504: + movs r0, #0 +_08153506: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0815350C: .4byte 0x03005F60 +_08153510: .4byte 0x03005F40 +_08153514: .4byte 0x00000FF4 + thumb_func_end sub_08153498 + + thumb_func_start TryReadSpecialSaveSection +TryReadSpecialSaveSection: @ 0x08153518 + push {r4, r5, r6, lr} + adds r6, r1, #0 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r2, #0xe2 + lsls r2, r2, #0x18 + adds r0, r0, r2 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _08153544 + ldr r4, _08153548 + movs r3, #0x80 + lsls r3, r3, #5 + adds r0, r1, #0 + movs r1, #0 + adds r2, r4, #0 + bl ReadFlash + ldr r1, [r4] + ldr r0, _0815354C + cmp r1, r0 + beq _08153550 +_08153544: + movs r0, #0xff + b _08153566 + .align 2, 0 +_08153548: .4byte 0x0203A888 +_0815354C: .4byte 0x0000B39D +_08153550: + movs r3, #0 + ldr r5, _0815356C + adds r2, r4, #4 +_08153556: + adds r0, r6, r3 + adds r1, r2, r3 + ldrb r1, [r1] + strb r1, [r0] + adds r3, #1 + cmp r3, r5 + ble _08153556 + movs r0, #1 +_08153566: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0815356C: .4byte 0x00000FFB + thumb_func_end TryReadSpecialSaveSection + + thumb_func_start TryWriteSpecialSaveSection +TryWriteSpecialSaveSection: @ 0x08153570 + push {r4, r5, r6, r7, lr} + adds r5, r1, #0 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r1, #0xe2 + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _081535BC + ldr r7, _081535B0 + ldr r0, _081535B4 + adds r3, r7, #0 + stm r3!, {r0} + movs r2, #0 + ldr r4, _081535B8 +_08153590: + adds r0, r3, r2 + adds r1, r5, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, r4 + ble _08153590 + adds r0, r6, #0 + adds r1, r7, #0 + bl ProgramFlashSectorAndVerify + cmp r0, #0 + bne _081535BC + movs r0, #1 + b _081535BE + .align 2, 0 +_081535B0: .4byte 0x0203A888 +_081535B4: .4byte 0x0000B39D +_081535B8: .4byte 0x00000FFB +_081535BC: + movs r0, #0xff +_081535BE: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end TryWriteSpecialSaveSection + + thumb_func_start sub_081535C4 +sub_081535C4: @ 0x081535C4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _081535E8 + adds r4, r0, r1 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #0xb + bls _081535DE + b _081536FE +_081535DE: + lsls r0, r0, #2 + ldr r1, _081535EC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081535E8: .4byte 0x03005B68 +_081535EC: .4byte 0x081535F0 +_081535F0: @ jump table + .4byte _08153620 @ case 0 + .4byte _08153630 @ case 1 + .4byte _0815363A @ case 2 + .4byte _08153656 @ case 3 + .4byte _08153668 @ case 4 + .4byte _0815367E @ case 5 + .4byte _08153694 @ case 6 + .4byte _0815369E @ case 7 + .4byte _081536B4 @ case 8 + .4byte _081536C8 @ case 9 + .4byte _081536D2 @ case 10 + .4byte _081536E4 @ case 11 +_08153620: + ldr r0, _0815362C + movs r1, #1 + strb r1, [r0] + movs r0, #1 + strh r0, [r4] + b _081536FE + .align 2, 0 +_0815362C: .4byte 0x030027A0 +_08153630: + bl sub_0800A8D4 + movs r0, #2 + strh r0, [r4] + b _081536FE +_0815363A: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081536FE + movs r1, #4 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08153650 + bl save_serialize_map +_08153650: + movs r0, #3 + strh r0, [r4] + b _081536FE +_08153656: + movs r1, #4 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08153662 + bl SetContinueGameWarpStatusToDynamicWarp +_08153662: + bl sub_081532BC + b _0815368E +_08153668: + ldrh r0, [r4, #2] + adds r0, #1 + strh r0, [r4, #2] + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + cmp r1, #5 + bne _081536FE + movs r0, #0 + strh r0, [r4, #2] + strh r1, [r4] + b _081536FE +_0815367E: + bl sub_081532E8 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0815368E + movs r0, #6 + strh r0, [r4] + b _081536FE +_0815368E: + movs r0, #4 + strh r0, [r4] + b _081536FE +_08153694: + bl sub_0815331C + movs r0, #7 + strh r0, [r4] + b _081536FE +_0815369E: + movs r1, #4 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _081536AA + bl ClearContinueGameWarpStatus +_081536AA: + bl sub_0800A8D4 + movs r0, #8 + strh r0, [r4] + b _081536FE +_081536B4: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081536FE + bl sub_08153344 + movs r0, #9 + strh r0, [r4] + b _081536FE +_081536C8: + bl sub_0800A8D4 + movs r0, #0xa + strh r0, [r4] + b _081536FE +_081536D2: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081536FE + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + b _081536FE +_081536E4: + ldrh r0, [r4, #2] + adds r0, #1 + strh r0, [r4, #2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #5 + ble _081536FE + ldr r1, _08153704 + movs r0, #0 + strb r0, [r1] + adds r0, r2, #0 + bl DestroyTask +_081536FE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08153704: .4byte 0x030027A0 + thumb_func_end sub_081535C4 + diff --git a/asm/save_failed_screen.s b/asm/save_failed_screen.s new file mode 100644 index 0000000..69db478 --- /dev/null +++ b/asm/save_failed_screen.s @@ -0,0 +1,778 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start SaveFailedScreenTextPrint +SaveFailedScreenTextPrint: @ 0x08178DFC + push {r4, r5, lr} + sub sp, #0x18 + adds r5, r0, #0 + adds r4, r1, #0 + adds r3, r2, #0 + lsls r3, r3, #0x18 + add r0, sp, #0x14 + movs r2, #0 + strb r2, [r0] + adds r1, r0, #0 + movs r0, #0xf + strb r0, [r1, #1] + movs r0, #3 + strb r0, [r1, #2] + ldr r0, _08178E44 + ldrb r0, [r0] + lsls r4, r4, #0x1b + lsrs r4, r4, #0x18 + lsrs r3, r3, #0x15 + adds r3, #2 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r2, [sp] + str r2, [sp, #4] + str r1, [sp, #8] + str r2, [sp, #0xc] + str r5, [sp, #0x10] + movs r1, #1 + adds r2, r4, #0 + bl AddTextPrinterParameterized4 + add sp, #0x18 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08178E44: .4byte 0x0203B9DA + thumb_func_end SaveFailedScreenTextPrint + + thumb_func_start DoSaveFailedScreen +DoSaveFailedScreen: @ 0x08178E48 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _08178E70 + bl SetMainCallback2 + ldr r0, _08178E74 + strh r4, [r0] + ldr r1, _08178E78 + movs r2, #0 + movs r0, #0 + strh r0, [r1] + strh r0, [r1, #2] + ldr r0, _08178E7C + strb r2, [r0] + strb r2, [r0, #1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08178E70: .4byte 0x08178E95 +_08178E74: .4byte 0x0203B9C8 +_08178E78: .4byte 0x0203B9CA +_08178E7C: .4byte 0x0203B9DA + thumb_func_end DoSaveFailedScreen + + thumb_func_start sub_08178E80 +sub_08178E80: @ 0x08178E80 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08178E80 + + thumb_func_start CB2_SaveFailedScreen +CB2_SaveFailedScreen: @ 0x08178E94 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + ldr r0, _081790AC + movs r1, #0x87 + lsls r1, r1, #3 + adds r7, r0, r1 + ldrb r0, [r7] + cmp r0, #0 + beq _08178EB0 + cmp r0, #1 + bne _08178EB0 + b _08179114 +_08178EB0: + movs r0, #0 + bl SetVBlankCallback + movs r0, #0 + movs r1, #0 + bl SetGpuReg + movs r0, #0xe + movs r1, #0 + bl SetGpuReg + movs r0, #0xc + movs r1, #0 + bl SetGpuReg + movs r0, #0xa + movs r1, #0 + bl SetGpuReg + movs r0, #8 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1c + movs r1, #0 + bl SetGpuReg + movs r0, #0x1e + movs r1, #0 + bl SetGpuReg + movs r0, #0x18 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1a + movs r1, #0 + bl SetGpuReg + movs r0, #0x14 + movs r1, #0 + bl SetGpuReg + movs r0, #0x16 + movs r1, #0 + bl SetGpuReg + movs r0, #0x10 + movs r1, #0 + bl SetGpuReg + movs r0, #0x12 + movs r1, #0 + bl SetGpuReg + add r1, sp, #4 + movs r0, #0 + strh r0, [r1] + ldr r2, _081790B0 + str r1, [r2] + movs r1, #0xc0 + lsls r1, r1, #0x13 + str r1, [r2, #4] + ldr r0, _081790B4 + str r0, [r2, #8] + ldr r0, [r2, #8] + movs r3, #0 + mov r8, r3 + str r3, [sp, #8] + add r4, sp, #8 + str r4, [r2] + movs r0, #0xe0 + lsls r0, r0, #0x13 + str r0, [r2, #4] + ldr r0, _081790B8 + str r0, [r2, #8] + ldr r0, [r2, #8] + add r0, sp, #4 + mov r3, r8 + strh r3, [r0] + str r0, [r2] + movs r0, #0xa0 + lsls r0, r0, #0x13 + str r0, [r2, #4] + ldr r0, _081790BC + str r0, [r2, #8] + ldr r0, [r2, #8] + ldr r0, _081790C0 + bl LZ77UnCompVram + ldr r0, _081790C4 + ldr r1, _081790C8 + bl LZ77UnCompVram + ldr r0, _081790CC + ldr r1, _081790D0 + bl LZ77UnCompVram + ldr r0, _081790D4 + ldr r1, _081790D8 + bl LZ77UnCompVram + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _081790DC + movs r0, #0 + movs r2, #3 + bl InitBgsFromTemplates + ldr r5, _081790E0 + movs r0, #0 + adds r1, r5, #0 + bl SetBgTilemapBuffer + mov r0, r8 + str r0, [sp, #8] + ldr r2, _081790E4 + adds r0, r4, #0 + adds r1, r5, #0 + bl CpuSet + ldr r1, _081790E8 + movs r2, #0x90 + lsls r2, r2, #1 + movs r6, #0x85 + lsls r6, r6, #2 + movs r0, #0 + adds r3, r6, #0 + bl LoadBgTiles + ldr r0, _081790EC + bl InitWindows + ldr r0, _081790F0 + bl AddWindowWithoutTileMap + ldr r4, _081790F4 + strb r0, [r4] + ldrb r0, [r4] + movs r1, #0x80 + lsls r1, r1, #4 + adds r2, r5, r1 + movs r1, #7 + bl SetWindowAttribute + ldr r0, _081790F8 + bl AddWindowWithoutTileMap + strb r0, [r4, #1] + ldrb r0, [r4, #1] + movs r3, #0xe8 + lsls r3, r3, #5 + adds r5, r5, r3 + movs r1, #7 + adds r2, r5, #0 + bl SetWindowAttribute + bl DeactivateAllTextPrinters + bl ResetSpriteData + bl ResetTasks + bl ResetPaletteFade + ldr r0, _081790FC + movs r1, #0 + movs r2, #0x40 + bl LoadPalette + ldr r0, _08179100 + movs r1, #0x80 + lsls r1, r1, #1 + movs r2, #0x20 + bl LoadPalette + ldr r0, _08179104 + movs r1, #0xe0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _08179108 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + ldrb r0, [r4] + movs r1, #0 + adds r2, r6, #0 + movs r3, #0xe + bl DrawStdFrameWithCustomTileAndPalette + ldrb r0, [r4, #1] + movs r1, #0 + adds r2, r6, #0 + movs r3, #0xe + bl DrawStdFrameWithCustomTileAndPalette + ldrb r0, [r4, #1] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldrb r0, [r4] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldrb r0, [r4, #1] + movs r1, #2 + bl CopyWindowToVram + ldrb r0, [r4] + movs r1, #1 + bl CopyWindowToVram + ldr r0, _0817910C + movs r1, #1 + movs r2, #0 + bl SaveFailedScreenTextPrint + movs r0, #1 + rsbs r0, r0, #0 + mov r1, r8 + str r1, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + movs r0, #1 + bl EnableInterrupts + ldr r0, _08179110 + bl SetVBlankCallback + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg + ldrb r0, [r7] + adds r0, #1 + strb r0, [r7] + b _0817912A + .align 2, 0 +_081790AC: .4byte 0x03002360 +_081790B0: .4byte 0x040000D4 +_081790B4: .4byte 0x8100C000 +_081790B8: .4byte 0x85000100 +_081790BC: .4byte 0x81000200 +_081790C0: .4byte 0x0858FC14 +_081790C4: .4byte 0x0858F890 +_081790C8: .4byte 0x06007000 +_081790CC: .4byte 0x0858FA1C +_081790D0: .4byte 0x06007800 +_081790D4: .4byte 0x085CD284 +_081790D8: .4byte 0x06010020 +_081790DC: .4byte 0x085CD228 +_081790E0: .4byte 0x0201E000 +_081790E4: .4byte 0x05000200 +_081790E8: .4byte 0x084E6CE0 +_081790EC: .4byte 0x085CD234 +_081790F0: .4byte 0x085CD23C +_081790F4: .4byte 0x0203B9DA +_081790F8: .4byte 0x085CD244 +_081790FC: .4byte 0x0858F810 +_08179100: .4byte 0x085CD264 +_08179104: .4byte 0x084E8360 +_08179108: .4byte 0x085D7B04 +_0817910C: .4byte 0x085CBD6B +_08179110: .4byte 0x08178E81 +_08179114: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0817912A + ldr r0, _08179138 + bl SetMainCallback2 + ldr r0, _0817913C + bl SetVBlankCallback +_0817912A: + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08179138: .4byte 0x08179141 +_0817913C: .4byte 0x0817930D + thumb_func_end CB2_SaveFailedScreen + + thumb_func_start CB2_WipeSave +CB2_WipeSave: @ 0x08179140 + push {r4, r5, r6, lr} + movs r5, #0 + ldr r0, _081791B8 + movs r1, #1 + strh r1, [r0] + ldr r1, _081791BC + ldr r0, [r1] + cmp r0, #0 + beq _081791A4 + adds r6, r1, #0 +_08179154: + ldr r0, [r6] + bl WipeSectors + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08179200 + ldr r4, _081791C0 + ldrb r0, [r4] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r0, _081791C4 + movs r1, #1 + movs r2, #0 + bl SaveFailedScreenTextPrint + ldr r0, _081791C8 + ldrb r0, [r0] + bl HandleSavingData + ldr r0, [r6] + cmp r0, #0 + beq _08179194 + ldrb r0, [r4] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r0, _081791CC + movs r1, #1 + movs r2, #0 + bl SaveFailedScreenTextPrint +_08179194: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, [r6] + cmp r0, #0 + beq _081791A4 + cmp r5, #2 + bls _08179154 +_081791A4: + cmp r5, #3 + bne _081791D4 + ldr r0, _081791C0 + ldrb r0, [r0] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r0, _081791D0 + b _081791E8 + .align 2, 0 +_081791B8: .4byte 0x0203B9CA +_081791BC: .4byte 0x03005F3C +_081791C0: .4byte 0x0203B9DA +_081791C4: .4byte 0x085CBE20 +_081791C8: .4byte 0x0203B9C8 +_081791CC: .4byte 0x085CBD6B +_081791D0: .4byte 0x085CBDB2 +_081791D4: + ldr r0, _081791F4 + ldrb r0, [r0] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r0, _081791F8 + ldr r0, [r0] + cmp r0, #0 + bne _08179228 + ldr r0, _081791FC +_081791E8: + movs r1, #1 + movs r2, #0 + bl SaveFailedScreenTextPrint + b _08179232 + .align 2, 0 +_081791F4: .4byte 0x0203B9DA +_081791F8: .4byte 0x03005F54 +_081791FC: .4byte 0x085CBE50 +_08179200: + ldr r0, _0817921C + ldrb r0, [r0] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r0, _08179220 + movs r1, #1 + movs r2, #0 + bl SaveFailedScreenTextPrint + ldr r0, _08179224 + bl SetMainCallback2 + b _08179238 + .align 2, 0 +_0817921C: .4byte 0x0203B9DA +_08179220: .4byte 0x085CBDB2 +_08179224: .4byte 0x08179249 +_08179228: + ldr r0, _08179240 + movs r1, #1 + movs r2, #0 + bl SaveFailedScreenTextPrint +_08179232: + ldr r0, _08179244 + bl SetMainCallback2 +_08179238: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08179240: .4byte 0x085CBE90 +_08179244: .4byte 0x08179299 + thumb_func_end CB2_WipeSave + + thumb_func_start CB2_GameplayCannotBeContinued +CB2_GameplayCannotBeContinued: @ 0x08179248 + push {lr} + ldr r1, _08179280 + movs r0, #0 + strh r0, [r1] + ldr r0, _08179284 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0817927C + ldr r0, _08179288 + ldrb r0, [r0] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r0, _0817928C + movs r1, #1 + movs r2, #0 + bl SaveFailedScreenTextPrint + ldr r0, _08179290 + bl SetVBlankCallback + ldr r0, _08179294 + bl SetMainCallback2 +_0817927C: + pop {r0} + bx r0 + .align 2, 0 +_08179280: .4byte 0x0203B9CA +_08179284: .4byte 0x03002360 +_08179288: .4byte 0x0203B9DA +_0817928C: .4byte 0x085CBDF7 +_08179290: .4byte 0x08178E81 +_08179294: .4byte 0x08179299 + thumb_func_end CB2_GameplayCannotBeContinued + + thumb_func_start CB2_FadeAndReturnToTitleScreen +CB2_FadeAndReturnToTitleScreen: @ 0x08179298 + push {lr} + sub sp, #4 + ldr r0, _081792D0 + movs r2, #0 + strh r2, [r0] + ldr r0, _081792D4 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _081792C8 + movs r0, #1 + rsbs r0, r0, #0 + str r2, [sp] + movs r1, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _081792D8 + bl SetVBlankCallback + ldr r0, _081792DC + bl SetMainCallback2 +_081792C8: + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_081792D0: .4byte 0x0203B9CA +_081792D4: .4byte 0x03002360 +_081792D8: .4byte 0x08178E81 +_081792DC: .4byte 0x081792E1 + thumb_func_end CB2_FadeAndReturnToTitleScreen + + thumb_func_start CB2_ReturnToTitleScreen +CB2_ReturnToTitleScreen: @ 0x081792E0 + push {r4, r5, lr} + bl UpdatePaletteFade + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _08179306 + ldr r5, _081792FC + ldr r0, [r5] + cmp r0, #0 + bne _08179300 + bl DoSoftReset + b _08179306 + .align 2, 0 +_081792FC: .4byte 0x03005F54 +_08179300: + bl SetMainCallback2 + str r4, [r5] +_08179306: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end CB2_ReturnToTitleScreen + + thumb_func_start VBlankCB_UpdateClockGraphics +VBlankCB_UpdateClockGraphics: @ 0x0817930C + push {r4, r5, lr} + ldr r5, _0817937C + ldr r0, [r5, #0x24] + lsrs r4, r0, #3 + movs r0, #7 + ands r4, r0 + ldr r0, _08179380 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [r5, #0x38] + str r1, [r5, #0x3c] + ldrh r1, [r5, #0x3a] + ldr r0, _08179384 + ands r0, r1 + movs r1, #0x70 + orrs r0, r1 + strh r0, [r5, #0x3a] + adds r1, r5, #0 + adds r1, #0x38 + movs r0, #0x48 + strb r0, [r1] + ldr r0, _08179388 + ldrh r0, [r0] + cmp r0, #0 + beq _08179394 + ldr r3, _0817938C + lsls r2, r4, #1 + adds r2, r2, r4 + adds r0, r2, r3 + ldrb r4, [r0] + ldrh r1, [r5, #0x3c] + ldr r0, _08179390 + ands r0, r1 + orrs r0, r4 + strh r0, [r5, #0x3c] + adds r0, r3, #2 + adds r0, r2, r0 + ldrb r1, [r0] + lsls r1, r1, #4 + adds r3, #1 + adds r2, r2, r3 + ldrb r0, [r2] + lsls r0, r0, #3 + orrs r1, r0 + adds r3, r5, #0 + adds r3, #0x3b + movs r0, #0x1f + ands r1, r0 + lsls r1, r1, #1 + ldrb r2, [r3] + movs r0, #0x3f + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _081793A0 + .align 2, 0 +_0817937C: .4byte 0x03002360 +_08179380: .4byte 0x085CD220 +_08179384: .4byte 0xFFFFFE00 +_08179388: .4byte 0x0203B9CA +_0817938C: .4byte 0x085CD24C +_08179390: .4byte 0xFFFFFC00 +_08179394: + ldrh r0, [r5, #0x3c] + ldr r1, _081793C0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strh r1, [r5, #0x3c] +_081793A0: + ldr r0, _081793C4 + movs r1, #0xe0 + lsls r1, r1, #0x13 + movs r2, #1 + bl CpuFastSet + ldr r1, _081793C8 + ldrh r0, [r1, #2] + cmp r0, #0 + beq _081793B8 + subs r0, #1 + strh r0, [r1, #2] +_081793B8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081793C0: .4byte 0xFFFFFC00 +_081793C4: .4byte 0x03002398 +_081793C8: .4byte 0x0203B9CA + thumb_func_end VBlankCB_UpdateClockGraphics + + thumb_func_start VerifySectorWipe +VerifySectorWipe: @ 0x081793CC + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _081793F0 + movs r3, #0x80 + lsls r3, r3, #5 + movs r1, #0 + adds r2, r4, #0 + bl ReadFlash + movs r1, #0 + ldr r2, _081793F4 +_081793E4: + ldr r0, [r4] + cmp r0, #0 + beq _081793F8 + movs r0, #1 + b _08179406 + .align 2, 0 +_081793F0: .4byte 0x0203A888 +_081793F4: .4byte 0x000003FF +_081793F8: + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + adds r4, #4 + cmp r1, r2 + bls _081793E4 + movs r0, #0 +_08179406: + pop {r4} + pop {r1} + bx r1 + thumb_func_end VerifySectorWipe + + thumb_func_start WipeSector +WipeSector: @ 0x0817940C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + movs r0, #0 + ldr r1, _0817945C + mov r8, r1 + ldr r7, _08179460 +_0817941E: + movs r4, #0 + adds r5, r0, #1 +_08179422: + ldr r3, [r7] + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #0 + bl _call_via_r3 + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, r8 + bls _08179422 + adds r0, r6, #0 + bl VerifySectorWipe + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + cmp r1, #0 + beq _0817944E + cmp r0, #0x81 + bls _0817941E +_0817944E: + adds r0, r1, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0817945C: .4byte 0x00000FFF +_08179460: .4byte 0x030075F4 + thumb_func_end WipeSector + + thumb_func_start WipeSectors +WipeSectors: @ 0x08179464 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r6, #0 +_0817946A: + movs r4, #1 + lsls r4, r6 + adds r0, r5, #0 + ands r0, r4 + cmp r0, #0 + beq _08179484 + adds r0, r6, #0 + bl WipeSector + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08179484 + bics r5, r4 +_08179484: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #0x1f + bls _0817946A + cmp r5, #0 + beq _08179496 + movs r0, #1 + b _08179498 +_08179496: + movs r0, #0 +_08179498: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end WipeSectors + diff --git a/asm/save_location.s b/asm/save_location.s new file mode 100644 index 0000000..6243976 --- /dev/null +++ b/asm/save_location.s @@ -0,0 +1,216 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start IsCurMapInLocationList +IsCurMapInLocationList: @ 0x081AF95C + push {r4, lr} + adds r2, r0, #0 + ldr r0, _081AF98C + ldr r0, [r0] + movs r1, #4 + ldrsb r1, [r0, r1] + lsls r1, r1, #8 + ldrb r0, [r0, #5] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldrh r0, [r2] + ldr r1, _081AF990 + cmp r0, r1 + beq _081AF99C + adds r4, r1, #0 + adds r1, r2, #0 +_081AF982: + ldrh r0, [r1] + cmp r0, r3 + bne _081AF994 + movs r0, #1 + b _081AF99E + .align 2, 0 +_081AF98C: .4byte 0x03005AEC +_081AF990: .4byte 0x0000FFFF +_081AF994: + adds r1, #2 + ldrh r0, [r1] + cmp r0, r4 + bne _081AF982 +_081AF99C: + movs r0, #0 +_081AF99E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end IsCurMapInLocationList + + thumb_func_start IsCurMapPokeCenter +IsCurMapPokeCenter: @ 0x081AF9A4 + push {lr} + ldr r0, _081AF9B0 + bl IsCurMapInLocationList + pop {r1} + bx r1 + .align 2, 0 +_081AF9B0: .4byte 0x085DFC74 + thumb_func_end IsCurMapPokeCenter + + thumb_func_start IsCurMapReloadLocation +IsCurMapReloadLocation: @ 0x081AF9B4 + push {lr} + ldr r0, _081AF9C0 + bl IsCurMapInLocationList + pop {r1} + bx r1 + .align 2, 0 +_081AF9C0: .4byte 0x085DFCC2 + thumb_func_end IsCurMapReloadLocation + + thumb_func_start sub_081AF9C4 +sub_081AF9C4: @ 0x081AF9C4 + push {lr} + ldr r0, _081AF9D0 + bl IsCurMapInLocationList + pop {r1} + bx r1 + .align 2, 0 +_081AF9D0: .4byte 0x085DFCC6 + thumb_func_end sub_081AF9C4 + + thumb_func_start TrySetPokeCenterWarpStatus +TrySetPokeCenterWarpStatus: @ 0x081AF9D4 + push {lr} + bl IsCurMapPokeCenter + cmp r0, #0 + bne _081AF9F0 + ldr r0, _081AF9EC + ldr r2, [r0] + ldrb r1, [r2, #9] + movs r0, #0xfd + ands r0, r1 + b _081AF9FA + .align 2, 0 +_081AF9EC: .4byte 0x03005AF0 +_081AF9F0: + ldr r0, _081AFA00 + ldr r2, [r0] + ldrb r1, [r2, #9] + movs r0, #2 + orrs r0, r1 +_081AF9FA: + strb r0, [r2, #9] + pop {r0} + bx r0 + .align 2, 0 +_081AFA00: .4byte 0x03005AF0 + thumb_func_end TrySetPokeCenterWarpStatus + + thumb_func_start TrySetReloadWarpStatus +TrySetReloadWarpStatus: @ 0x081AFA04 + push {lr} + bl IsCurMapReloadLocation + cmp r0, #0 + bne _081AFA20 + ldr r0, _081AFA1C + ldr r2, [r0] + ldrb r1, [r2, #9] + movs r0, #0xfb + ands r0, r1 + b _081AFA2A + .align 2, 0 +_081AFA1C: .4byte 0x03005AF0 +_081AFA20: + ldr r0, _081AFA30 + ldr r2, [r0] + ldrb r1, [r2, #9] + movs r0, #4 + orrs r0, r1 +_081AFA2A: + strb r0, [r2, #9] + pop {r0} + bx r0 + .align 2, 0 +_081AFA30: .4byte 0x03005AF0 + thumb_func_end TrySetReloadWarpStatus + + thumb_func_start sub_081AFA34 +sub_081AFA34: @ 0x081AFA34 + push {lr} + bl sub_081AF9C4 + cmp r0, #0 + bne _081AFA50 + ldr r0, _081AFA4C + ldr r2, [r0] + ldrb r1, [r2, #9] + movs r0, #0xf7 + ands r0, r1 + b _081AFA5A + .align 2, 0 +_081AFA4C: .4byte 0x03005AF0 +_081AFA50: + ldr r0, _081AFA60 + ldr r2, [r0] + ldrb r1, [r2, #9] + movs r0, #8 + orrs r0, r1 +_081AFA5A: + strb r0, [r2, #9] + pop {r0} + bx r0 + .align 2, 0 +_081AFA60: .4byte 0x03005AF0 + thumb_func_end sub_081AFA34 + + thumb_func_start TrySetMapSaveWarpStatus +TrySetMapSaveWarpStatus: @ 0x081AFA64 + push {lr} + bl TrySetPokeCenterWarpStatus + bl TrySetReloadWarpStatus + bl sub_081AFA34 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end TrySetMapSaveWarpStatus + + thumb_func_start sub_081AFA78 +sub_081AFA78: @ 0x081AFA78 + ldr r0, _081AFAA4 + ldr r2, [r0] + adds r2, #0xa8 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #8 + orrs r0, r1 + movs r1, #1 + orrs r0, r1 + movs r1, #2 + orrs r0, r1 + movs r1, #4 + orrs r0, r1 + movs r1, #0x10 + orrs r0, r1 + movs r1, #0x20 + orrs r0, r1 + movs r1, #8 + orrs r0, r1 + str r0, [r2] + bx lr + .align 2, 0 +_081AFAA4: .4byte 0x03005AF0 + thumb_func_end sub_081AFA78 + + thumb_func_start sub_081AFAA8 +sub_081AFAA8: @ 0x081AFAA8 + ldr r0, _081AFAB8 + ldr r2, [r0] + ldrb r1, [r2, #9] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #9] + bx lr + .align 2, 0 +_081AFAB8: .4byte 0x03005AF0 + thumb_func_end sub_081AFAA8 + diff --git a/asm/scanline_effect.s b/asm/scanline_effect.s new file mode 100644 index 0000000..3d29480 --- /dev/null +++ b/asm/scanline_effect.s @@ -0,0 +1,2387 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ScanlineEffect_Stop +ScanlineEffect_Stop: @ 0x080B9710 + push {r4, lr} + ldr r4, _080B9740 + movs r0, #0 + strb r0, [r4, #0x15] + ldr r1, _080B9744 + ldrh r2, [r1, #0xa] + ldr r0, _080B9748 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r2, [r1, #0xa] + ldr r0, _080B974C + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + ldrb r0, [r4, #0x18] + cmp r0, #0xff + beq _080B973A + bl DestroyTask + movs r0, #0xff + strb r0, [r4, #0x18] +_080B973A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B9740: .4byte 0x020397C8 +_080B9744: .4byte 0x040000B0 +_080B9748: .4byte 0x0000C5FF +_080B974C: .4byte 0x00007FFF + thumb_func_end ScanlineEffect_Stop + + thumb_func_start ScanlineEffect_Clear +ScanlineEffect_Clear: @ 0x080B9750 + push {r4, lr} + sub sp, #4 + mov r0, sp + movs r4, #0 + strh r4, [r0] + ldr r1, _080B9784 + ldr r2, _080B9788 + bl CpuSet + ldr r0, _080B978C + movs r1, #0 + str r1, [r0] + str r1, [r0, #4] + str r1, [r0, #8] + str r1, [r0, #0xc] + strb r4, [r0, #0x14] + strb r4, [r0, #0x15] + strb r4, [r0, #0x16] + strb r4, [r0, #0x17] + movs r1, #0xff + strb r1, [r0, #0x18] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B9784: .4byte 0x020388C8 +_080B9788: .4byte 0x01000780 +_080B978C: .4byte 0x020397C8 + thumb_func_end ScanlineEffect_Clear + + thumb_func_start ScanlineEffect_SetParams +ScanlineEffect_SetParams: @ 0x080B9790 + push {lr} + sub sp, #0xc + str r0, [sp] + str r1, [sp, #4] + str r2, [sp, #8] + ldr r0, _080B97B4 + cmp r1, r0 + bne _080B97C4 + ldr r0, _080B97B8 + ldr r1, _080B97BC + str r1, [r0] + movs r2, #0xf0 + lsls r2, r2, #3 + adds r1, r1, r2 + str r1, [r0, #4] + ldr r1, _080B97C0 + b _080B97D4 + .align 2, 0 +_080B97B4: .4byte 0xA2600001 +_080B97B8: .4byte 0x020397C8 +_080B97BC: .4byte 0x020388CA +_080B97C0: .4byte 0x080B988D +_080B97C4: + ldr r0, _080B97F4 + ldr r1, _080B97F8 + str r1, [r0] + movs r2, #0xf0 + lsls r2, r2, #3 + adds r1, r1, r2 + str r1, [r0, #4] + ldr r1, _080B97FC +_080B97D4: + str r1, [r0, #0x10] + adds r1, r0, #0 + ldr r0, [sp, #4] + str r0, [r1, #0xc] + ldr r0, [sp] + str r0, [r1, #8] + mov r0, sp + ldrb r0, [r0, #8] + strb r0, [r1, #0x15] + mov r0, sp + ldrb r0, [r0, #9] + strb r0, [r1, #0x16] + strb r0, [r1, #0x17] + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_080B97F4: .4byte 0x020397C8 +_080B97F8: .4byte 0x020388CC +_080B97FC: .4byte 0x080B98AD + thumb_func_end ScanlineEffect_SetParams + + thumb_func_start ScanlineEffect_InitHBlankDmaTransfer +ScanlineEffect_InitHBlankDmaTransfer: @ 0x080B9800 + push {r4, lr} + ldr r4, _080B9830 + ldrb r0, [r4, #0x15] + cmp r0, #0 + beq _080B987A + cmp r0, #3 + bne _080B9844 + movs r0, #0 + strb r0, [r4, #0x15] + ldr r1, _080B9834 + ldrh r2, [r1, #0xa] + ldr r0, _080B9838 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r2, [r1, #0xa] + ldr r0, _080B983C + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + ldr r1, _080B9840 + movs r0, #1 + strb r0, [r1] + b _080B987A + .align 2, 0 +_080B9830: .4byte 0x020397C8 +_080B9834: .4byte 0x040000B0 +_080B9838: .4byte 0x0000C5FF +_080B983C: .4byte 0x00007FFF +_080B9840: .4byte 0x020397E4 +_080B9844: + ldr r1, _080B9880 + ldrh r2, [r1, #0xa] + ldr r0, _080B9884 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r2, [r1, #0xa] + ldr r0, _080B9888 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r0, [r0] + str r0, [r1] + ldr r0, [r4, #8] + str r0, [r1, #4] + ldr r0, [r4, #0xc] + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r0, [r4, #0x10] + bl _call_via_r0 + ldrb r0, [r4, #0x14] + movs r1, #1 + eors r0, r1 + strb r0, [r4, #0x14] +_080B987A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B9880: .4byte 0x040000B0 +_080B9884: .4byte 0x0000C5FF +_080B9888: .4byte 0x00007FFF + thumb_func_end ScanlineEffect_InitHBlankDmaTransfer + + thumb_func_start CopyValue16Bit +CopyValue16Bit: @ 0x080B988C + ldr r0, _080B98A4 + ldr r2, [r0, #8] + ldrb r1, [r0, #0x14] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #7 + ldr r1, _080B98A8 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2] + bx lr + .align 2, 0 +_080B98A4: .4byte 0x020397C8 +_080B98A8: .4byte 0x020388C8 + thumb_func_end CopyValue16Bit + + thumb_func_start CopyValue32Bit +CopyValue32Bit: @ 0x080B98AC + ldr r0, _080B98C4 + ldr r2, [r0, #8] + ldrb r1, [r0, #0x14] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #7 + ldr r1, _080B98C8 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r2] + bx lr + .align 2, 0 +_080B98C4: .4byte 0x020397C8 +_080B98C8: .4byte 0x020388C8 + thumb_func_end CopyValue32Bit + + thumb_func_start TaskFunc_UpdateWavePerFrame +TaskFunc_UpdateWavePerFrame: @ 0x080B98CC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov ip, r0 + movs r6, #0 + ldr r0, _080B98F4 + ldrb r0, [r0] + cmp r0, #0 + beq _080B98FC + mov r0, ip + bl DestroyTask + ldr r1, _080B98F8 + movs r0, #0xff + strb r0, [r1, #0x18] + b _080B9A7C + .align 2, 0 +_080B98F4: .4byte 0x020397E4 +_080B98F8: .4byte 0x020397C8 +_080B98FC: + ldr r1, _080B9928 + mov r0, ip + lsls r2, r0, #2 + adds r0, r2, r0 + lsls r0, r0, #3 + adds r3, r0, r1 + movs r4, #0x16 + ldrsh r0, [r3, r4] + mov sl, r1 + mov sb, r2 + cmp r0, #0 + beq _080B99A8 + movs r1, #0x14 + ldrsh r0, [r3, r1] + cmp r0, #0xe + bhi _080B99A8 + lsls r0, r0, #2 + ldr r1, _080B992C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B9928: .4byte 0x03005B60 +_080B992C: .4byte 0x080B9930 +_080B9930: @ jump table + .4byte _080B996C @ case 0 + .4byte _080B99A8 @ case 1 + .4byte _080B9974 @ case 2 + .4byte _080B99A8 @ case 3 + .4byte _080B997C @ case 4 + .4byte _080B99A8 @ case 5 + .4byte _080B9984 @ case 6 + .4byte _080B99A8 @ case 7 + .4byte _080B998C @ case 8 + .4byte _080B99A8 @ case 9 + .4byte _080B9994 @ case 10 + .4byte _080B99A8 @ case 11 + .4byte _080B999C @ case 12 + .4byte _080B99A8 @ case 13 + .4byte _080B99A4 @ case 14 +_080B996C: + ldr r0, _080B9970 + b _080B99A6 + .align 2, 0 +_080B9970: .4byte 0x02022AC8 +_080B9974: + ldr r0, _080B9978 + b _080B99A6 + .align 2, 0 +_080B9978: .4byte 0x02022ACA +_080B997C: + ldr r0, _080B9980 + b _080B99A6 + .align 2, 0 +_080B9980: .4byte 0x02022ACC +_080B9984: + ldr r0, _080B9988 + b _080B99A6 + .align 2, 0 +_080B9988: .4byte 0x02022ACE +_080B998C: + ldr r0, _080B9990 + b _080B99A6 + .align 2, 0 +_080B9990: .4byte 0x02022AD0 +_080B9994: + ldr r0, _080B9998 + b _080B99A6 + .align 2, 0 +_080B9998: .4byte 0x02022AD2 +_080B999C: + ldr r0, _080B99A0 + b _080B99A6 + .align 2, 0 +_080B99A0: .4byte 0x02022AD4 +_080B99A4: + ldr r0, _080B9A08 +_080B99A6: + ldrh r6, [r0] +_080B99A8: + mov r0, sb + add r0, ip + lsls r0, r0, #3 + mov r2, sl + adds r1, r0, r2 + ldrh r2, [r1, #0x10] + movs r3, #0x10 + ldrsh r0, [r1, r3] + cmp r0, #0 + beq _080B9A14 + subs r0, r2, #1 + strh r0, [r1, #0x10] + movs r4, #0xe + ldrsh r0, [r1, r4] + movs r3, #0xa0 + lsls r3, r3, #1 + adds r2, r0, r3 + movs r4, #8 + ldrsh r3, [r1, r4] + movs r4, #0xa + ldrsh r0, [r1, r4] + cmp r3, r0 + bge _080B9A7C + ldr r5, _080B9A0C + ldr r0, _080B9A10 + mov r8, r0 + adds r7, r1, #0 + lsls r0, r2, #1 + adds r4, r0, r5 +_080B99E2: + lsls r2, r3, #1 + mov r0, r8 + ldrb r1, [r0, #0x14] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #7 + adds r2, r2, r0 + adds r2, r2, r5 + ldrh r0, [r4] + adds r0, r0, r6 + strh r0, [r2] + adds r4, #2 + adds r3, #1 + movs r1, #0xa + ldrsh r0, [r7, r1] + cmp r3, r0 + blt _080B99E2 + b _080B9A7C + .align 2, 0 +_080B9A08: .4byte 0x02022AD6 +_080B9A0C: .4byte 0x020388C8 +_080B9A10: .4byte 0x020397C8 +_080B9A14: + ldrh r0, [r1, #0x12] + strh r0, [r1, #0x10] + movs r2, #0xe + ldrsh r0, [r1, r2] + movs r3, #0xa0 + lsls r3, r3, #1 + adds r2, r0, r3 + movs r4, #8 + ldrsh r3, [r1, r4] + movs r4, #0xa + ldrsh r0, [r1, r4] + cmp r3, r0 + bge _080B9A5C + ldr r5, _080B9A8C + adds r7, r1, #0 + lsls r0, r2, #1 + adds r4, r0, r5 + ldr r0, _080B9A90 + mov r8, r0 +_080B9A3A: + lsls r2, r3, #1 + mov r0, r8 + ldrb r1, [r0, #0x14] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #7 + adds r2, r2, r0 + adds r2, r2, r5 + ldrh r0, [r4] + adds r0, r0, r6 + strh r0, [r2] + adds r4, #2 + adds r3, #1 + movs r1, #0xa + ldrsh r0, [r7, r1] + cmp r3, r0 + blt _080B9A3A +_080B9A5C: + mov r0, sb + add r0, ip + lsls r0, r0, #3 + mov r3, sl + adds r2, r0, r3 + ldrh r0, [r2, #0xe] + adds r0, #1 + strh r0, [r2, #0xe] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r4, #0xc + ldrsh r1, [r2, r4] + cmp r0, r1 + bne _080B9A7C + movs r0, #0 + strh r0, [r2, #0xe] +_080B9A7C: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080B9A8C: .4byte 0x020388C8 +_080B9A90: .4byte 0x020397C8 + thumb_func_end TaskFunc_UpdateWavePerFrame + + thumb_func_start GenerateWave +GenerateWave: @ 0x080B9A94 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r4, r2, #0x18 + movs r1, #0 + movs r2, #0 + ldr r0, _080B9AD8 + mov ip, r0 +_080B9AA8: + lsls r0, r1, #1 + adds r3, r0, r6 + lsls r0, r2, #1 + add r0, ip + movs r7, #0 + ldrsh r0, [r0, r7] + muls r0, r4, r0 + cmp r0, #0 + bge _080B9ABC + adds r0, #0xff +_080B9ABC: + asrs r0, r0, #8 + strh r0, [r3] + adds r0, r2, r5 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0xff + bls _080B9AA8 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080B9AD8: .4byte 0x082FA8CC + thumb_func_end GenerateWave + + thumb_func_start ScanlineEffect_InitWave +ScanlineEffect_InitWave: @ 0x080B9ADC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + adds r5, r0, #0 + str r1, [sp, #0x10] + ldr r0, [sp, #0x40] + mov r8, r0 + ldr r1, [sp, #0x44] + mov sb, r1 + ldr r0, [sp, #0x48] + mov sl, r0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r1, [sp, #0x10] + lsls r1, r1, #0x18 + str r1, [sp, #0x14] + lsrs r0, r1, #0x18 + str r0, [sp, #0xc] + lsls r1, r2, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp, #0x18] + lsls r2, r3, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x1c] + mov r1, r8 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + mov r3, sb + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov sb, r3 + mov r0, sl + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + bl ScanlineEffect_Clear + ldr r0, _080B9BE8 + add r0, sb + str r0, [sp] + ldr r0, _080B9BEC + str r0, [sp, #4] + mov r1, sp + movs r0, #1 + strb r0, [r1, #8] + mov r0, sp + movs r1, #0 + strb r1, [r0, #9] + ldr r0, [sp] + ldr r1, [sp, #4] + ldr r2, [sp, #8] + bl ScanlineEffect_SetParams + ldr r0, _080B9BF0 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _080B9BF4 + lsls r4, r7, #2 + adds r4, r4, r7 + lsls r4, r4, #3 + adds r4, r4, r0 + strh r5, [r4, #8] + mov r3, sp + ldrh r3, [r3, #0xc] + strh r3, [r4, #0xa] + movs r0, #0x80 + lsls r0, r0, #1 + ldr r1, [sp, #0x18] + bl __divsi3 + strh r0, [r4, #0xc] + movs r0, #0 + strh r0, [r4, #0xe] + mov r1, r8 + strh r1, [r4, #0x10] + strh r1, [r4, #0x12] + mov r3, sb + strh r3, [r4, #0x14] + mov r0, sl + strh r0, [r4, #0x16] + ldr r0, _080B9BF8 + strb r7, [r0, #0x18] + ldr r0, _080B9BFC + movs r1, #0 + strb r1, [r0] + ldr r4, _080B9C00 + ldr r3, [sp, #0xc] + subs r6, r3, r5 + lsls r3, r6, #0x18 + lsrs r3, r3, #0x18 + adds r0, r4, #0 + ldr r1, [sp, #0x18] + ldr r2, [sp, #0x1c] + bl GenerateWave + ldr r0, [sp, #0xc] + cmp r5, r0 + bge _080B9BD6 + ldr r1, _080B9C04 + adds r2, r4, r1 + lsls r1, r5, #1 + movs r3, #0xf0 + lsls r3, r3, #3 + adds r0, r1, r3 + adds r3, r0, r2 + adds r1, r1, r2 + adds r2, r4, #0 + adds r5, r6, #0 +_080B9BC2: + ldrh r0, [r2] + strh r0, [r1] + ldrh r0, [r2] + strh r0, [r3] + adds r2, #2 + adds r3, #2 + adds r1, #2 + subs r5, #1 + cmp r5, #0 + bne _080B9BC2 +_080B9BD6: + adds r0, r7, #0 + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080B9BE8: .4byte 0x04000010 +_080B9BEC: .4byte 0xA2600001 +_080B9BF0: .4byte 0x080B98CD +_080B9BF4: .4byte 0x03005B60 +_080B9BF8: .4byte 0x020397C8 +_080B9BFC: .4byte 0x020397E4 +_080B9C00: .4byte 0x02038B48 +_080B9C04: .4byte 0xFFFFFD80 + thumb_func_end ScanlineEffect_InitWave + + thumb_func_start BattleScene_ProcessInput +BattleScene_ProcessInput: @ 0x080B9C08 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BattleScene_ProcessInput + + thumb_func_start BattleStyle_ProcessInput +BattleStyle_ProcessInput: @ 0x080B9C20 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BattleStyle_ProcessInput + + thumb_func_start CB2_InitOptionMenu +CB2_InitOptionMenu: @ 0x080B9C34 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + ldr r1, _080B9C58 + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, r1, #0 + cmp r0, #0xb + bhi _080B9C90 + lsls r0, r0, #2 + ldr r1, _080B9C5C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B9C58: .4byte 0x03002360 +_080B9C5C: .4byte 0x080B9C60 +_080B9C60: @ jump table + .4byte _080B9C90 @ case 0 + .4byte _080B9CA4 @ case 1 + .4byte _080B9DF4 @ case 2 + .4byte _080B9E14 @ case 3 + .4byte _080B9E38 @ case 4 + .4byte _080B9E70 @ case 5 + .4byte _080B9E80 @ case 6 + .4byte _080B9E98 @ case 7 + .4byte _080B9EA0 @ case 8 + .4byte _080B9EB8 @ case 9 + .4byte _080B9ECC @ case 10 + .4byte _080B9F64 @ case 11 +_080B9C90: + movs r0, #0 + bl SetVBlankCallback + ldr r1, _080B9CA0 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _080B9F4C + .align 2, 0 +_080B9CA0: .4byte 0x03002360 +_080B9CA4: + movs r3, #0xc0 + lsls r3, r3, #0x13 + movs r4, #0xc0 + lsls r4, r4, #9 + add r1, sp, #8 + mov r8, r1 + add r2, sp, #4 + movs r6, #0 + ldr r1, _080B9DE4 + movs r5, #0x80 + lsls r5, r5, #5 + ldr r7, _080B9DE8 + movs r0, #0x81 + lsls r0, r0, #0x18 + mov ip, r0 +_080B9CC2: + strh r6, [r2] + add r0, sp, #4 + str r0, [r1] + str r3, [r1, #4] + str r7, [r1, #8] + ldr r0, [r1, #8] + adds r3, r3, r5 + subs r4, r4, r5 + cmp r4, r5 + bhi _080B9CC2 + strh r6, [r2] + add r2, sp, #4 + str r2, [r1] + str r3, [r1, #4] + lsrs r0, r4, #1 + mov r2, ip + orrs r0, r2 + str r0, [r1, #8] + ldr r0, [r1, #8] + movs r0, #0xe0 + lsls r0, r0, #0x13 + movs r3, #0x80 + lsls r3, r3, #3 + movs r4, #0 + str r4, [sp, #8] + ldr r2, _080B9DE4 + mov r1, r8 + str r1, [r2] + str r0, [r2, #4] + lsrs r0, r3, #2 + movs r1, #0x85 + lsls r1, r1, #0x18 + orrs r0, r1 + str r0, [r2, #8] + ldr r0, [r2, #8] + movs r1, #0xa0 + lsls r1, r1, #0x13 + add r0, sp, #4 + strh r4, [r0] + str r0, [r2] + str r1, [r2, #4] + lsrs r3, r3, #1 + movs r0, #0x81 + lsls r0, r0, #0x18 + orrs r3, r0 + str r3, [r2, #8] + ldr r0, [r2, #8] + movs r0, #0 + movs r1, #0 + bl SetGpuReg + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _080B9DEC + movs r0, #0 + movs r2, #2 + bl InitBgsFromTemplates + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + ldr r0, _080B9DF0 + bl InitWindows + bl DeactivateAllTextPrinters + movs r0, #0x40 + movs r1, #0 + bl SetGpuReg + movs r0, #0x44 + movs r1, #0 + bl SetGpuReg + movs r0, #0x48 + movs r1, #1 + bl SetGpuReg + movs r0, #0x4a + movs r1, #0x23 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0xc1 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #4 + bl SetGpuReg + movs r1, #0xc1 + lsls r1, r1, #6 + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + b _080B9F44 + .align 2, 0 +_080B9DE4: .4byte 0x040000D4 +_080B9DE8: .4byte 0x81000800 +_080B9DEC: .4byte 0x08537414 +_080B9DF0: .4byte 0x085373FC +_080B9DF4: + bl ResetPaletteFade + bl ScanlineEffect_Stop + bl ResetTasks + bl ResetSpriteData + ldr r1, _080B9E10 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _080B9F4C + .align 2, 0 +_080B9E10: .4byte 0x03002360 +_080B9E14: + ldr r0, _080B9E34 + ldr r0, [r0] + ldrb r0, [r0, #0x14] + lsrs r0, r0, #3 + bl GetWindowFrameTilesPal + ldr r1, [r0] + movs r2, #0x90 + lsls r2, r2, #1 + movs r3, #0xd1 + lsls r3, r3, #1 + movs r0, #1 + bl LoadBgTiles + b _080B9F44 + .align 2, 0 +_080B9E34: .4byte 0x03005AF0 +_080B9E38: + ldr r0, _080B9E64 + movs r1, #0 + movs r2, #2 + bl LoadPalette + ldr r0, _080B9E68 + ldr r0, [r0] + ldrb r0, [r0, #0x14] + lsrs r0, r0, #3 + bl GetWindowFrameTilesPal + ldr r0, [r0, #4] + movs r1, #0x70 + movs r2, #0x20 + bl LoadPalette + ldr r1, _080B9E6C + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _080B9F4C + .align 2, 0 +_080B9E64: .4byte 0x0853741C +_080B9E68: .4byte 0x03005AF0 +_080B9E6C: .4byte 0x03002360 +_080B9E70: + ldr r0, _080B9E7C + movs r1, #0x10 + movs r2, #0x20 + bl LoadPalette + b _080B9F44 + .align 2, 0 +_080B9E7C: .4byte 0x085372B0 +_080B9E80: + movs r0, #0 + bl PutWindowTilemap + bl DrawTextOption + ldr r1, _080B9E94 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _080B9F4C + .align 2, 0 +_080B9E94: .4byte 0x03002360 +_080B9E98: + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r2, r0 + b _080B9F4C +_080B9EA0: + movs r0, #1 + bl PutWindowTilemap + bl sub_080BA834 + ldr r1, _080B9EC8 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_080B9EB8: + bl sub_080BA890 + ldr r1, _080B9EC8 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _080B9F4C + .align 2, 0 +_080B9EC8: .4byte 0x03002360 +_080B9ECC: + ldr r0, _080B9F54 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080B9F58 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + adds r4, r4, r1 + movs r0, #0 + strh r0, [r4, #8] + ldr r0, _080B9F5C + ldr r2, [r0] + ldrb r0, [r2, #0x14] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1d + strh r0, [r4, #0xa] + ldrb r1, [r2, #0x15] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1f + strh r1, [r4, #0xc] + ldrb r1, [r2, #0x15] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1f + strh r1, [r4, #0xe] + ldrb r1, [r2, #0x15] + lsls r1, r1, #0x1f + lsrs r1, r1, #0x1f + strh r1, [r4, #0x10] + ldrb r1, [r2, #0x13] + strh r1, [r4, #0x12] + ldrb r1, [r2, #0x14] + lsrs r1, r1, #3 + strh r1, [r4, #0x14] + bl BattleScene_DrawChoices + ldrb r0, [r4, #0xc] + bl Sound_DrawChoices + ldrb r0, [r4, #0xe] + bl TextSpeed_ProcessInput + ldrb r0, [r4, #0x10] + bl TextSpeed_DrawChoices + ldrb r0, [r4, #0x12] + bl sub_080BA780 + ldrb r0, [r4, #0x14] + bl FrameType_DrawChoices + ldrb r0, [r4, #8] + bl HighlightOptionMenuItem + movs r0, #1 + movs r1, #3 + bl CopyWindowToVram +_080B9F44: + ldr r1, _080B9F60 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 +_080B9F4C: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080B9F80 + .align 2, 0 +_080B9F54: .4byte 0x080B9F95 +_080B9F58: .4byte 0x03005B60 +_080B9F5C: .4byte 0x03005AF0 +_080B9F60: .4byte 0x03002360 +_080B9F64: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r0, _080B9F8C + bl SetVBlankCallback + ldr r0, _080B9F90 + bl SetMainCallback2 +_080B9F80: + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080B9F8C: .4byte 0x080B9C21 +_080B9F90: .4byte 0x080B9C09 + thumb_func_end CB2_InitOptionMenu + + thumb_func_start Task_OptionMenuFadeIn +Task_OptionMenuFadeIn: @ 0x080B9F94 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _080B9FB8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080B9FB4 + ldr r0, _080B9FBC + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080B9FC0 + str r0, [r1] +_080B9FB4: + pop {r0} + bx r0 + .align 2, 0 +_080B9FB8: .4byte 0x02037C74 +_080B9FBC: .4byte 0x03005B60 +_080B9FC0: .4byte 0x080B9FC5 + thumb_func_end Task_OptionMenuFadeIn + + thumb_func_start Task_OptionMenuProcessInput +Task_OptionMenuProcessInput: @ 0x080B9FC4 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080B9FEC + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080B9FF4 + ldr r0, _080B9FF0 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r2, #8 + ldrsh r0, [r1, r2] + cmp r0, #6 + beq _080B9FEA + b _080BA1B2 +_080B9FEA: + b _080BA006 + .align 2, 0 +_080B9FEC: .4byte 0x03002360 +_080B9FF0: .4byte 0x03005B60 +_080B9FF4: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080BA014 + ldr r0, _080BA00C + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 +_080BA006: + ldr r0, _080BA010 + str r0, [r1] + b _080BA1B2 + .align 2, 0 +_080BA00C: .4byte 0x03005B60 +_080BA010: .4byte 0x080BA1BD +_080BA014: + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #0 + beq _080BA044 + ldr r1, _080BA03C + lsls r2, r4, #2 + adds r0, r2, r4 + lsls r0, r0, #3 + adds r3, r0, r1 + ldrh r5, [r3, #8] + movs r6, #8 + ldrsh r0, [r3, r6] + adds r7, r1, #0 + cmp r0, #0 + ble _080BA040 + subs r0, r5, #1 + b _080BA064 + .align 2, 0 +_080BA03C: .4byte 0x03005B60 +_080BA040: + movs r0, #6 + b _080BA064 +_080BA044: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080BA07C + ldr r1, _080BA068 + lsls r2, r4, #2 + adds r0, r2, r4 + lsls r0, r0, #3 + adds r3, r0, r1 + ldrh r5, [r3, #8] + movs r7, #8 + ldrsh r0, [r3, r7] + adds r7, r1, #0 + cmp r0, #5 + bgt _080BA06C + adds r0, r5, #1 +_080BA064: + strh r0, [r3, #8] + b _080BA06E + .align 2, 0 +_080BA068: .4byte 0x03005B60 +_080BA06C: + strh r6, [r3, #8] +_080BA06E: + adds r0, r2, r4 + lsls r0, r0, #3 + adds r0, r0, r7 + ldrb r0, [r0, #8] + bl HighlightOptionMenuItem + b _080BA1B2 +_080BA07C: + ldr r0, _080BA09C + lsls r2, r4, #2 + adds r1, r2, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r3, #8 + ldrsh r1, [r1, r3] + adds r7, r0, #0 + cmp r1, #5 + bls _080BA092 + b _080BA1B2 +_080BA092: + lsls r0, r1, #2 + ldr r1, _080BA0A0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BA09C: .4byte 0x03005B60 +_080BA0A0: .4byte 0x080BA0A4 +_080BA0A4: @ jump table + .4byte _080BA0BC @ case 0 + .4byte _080BA0E2 @ case 1 + .4byte _080BA108 @ case 2 + .4byte _080BA12E @ case 3 + .4byte _080BA154 @ case 4 + .4byte _080BA17A @ case 5 +_080BA0BC: + adds r4, r2, r4 + lsls r4, r4, #3 + adds r4, r4, r7 + ldrb r5, [r4, #0xa] + adds r0, r5, #0 + bl ButtonMode_ProcessInput + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + strh r0, [r4, #0xa] + movs r6, #0xa + ldrsh r0, [r4, r6] + cmp r5, r0 + beq _080BA19E + adds r0, r1, #0 + bl BattleScene_DrawChoices + b _080BA19E +_080BA0E2: + adds r4, r2, r4 + lsls r4, r4, #3 + adds r4, r4, r7 + ldrb r5, [r4, #0xc] + adds r0, r5, #0 + bl BattleStyle_DrawChoices + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + strh r0, [r4, #0xc] + movs r7, #0xc + ldrsh r0, [r4, r7] + cmp r5, r0 + beq _080BA19E + adds r0, r1, #0 + bl Sound_DrawChoices + b _080BA19E +_080BA108: + adds r4, r2, r4 + lsls r4, r4, #3 + adds r4, r4, r7 + ldrb r5, [r4, #0xe] + adds r0, r5, #0 + bl DrawOptionMenuTexts + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + strh r0, [r4, #0xe] + movs r2, #0xe + ldrsh r0, [r4, r2] + cmp r5, r0 + beq _080BA19E + adds r0, r1, #0 + bl TextSpeed_ProcessInput + b _080BA19E +_080BA12E: + adds r4, r2, r4 + lsls r4, r4, #3 + adds r4, r4, r7 + ldrb r5, [r4, #0x10] + adds r0, r5, #0 + bl Sound_ProcessInput + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + strh r0, [r4, #0x10] + movs r3, #0x10 + ldrsh r0, [r4, r3] + cmp r5, r0 + beq _080BA19E + adds r0, r1, #0 + bl TextSpeed_DrawChoices + b _080BA19E +_080BA154: + adds r4, r2, r4 + lsls r4, r4, #3 + adds r4, r4, r7 + ldrb r5, [r4, #0x12] + adds r0, r5, #0 + bl ButtonMode_DrawChoices + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + strh r0, [r4, #0x12] + movs r6, #0x12 + ldrsh r0, [r4, r6] + cmp r5, r0 + beq _080BA19E + adds r0, r1, #0 + bl sub_080BA780 + b _080BA19E +_080BA17A: + adds r4, r2, r4 + lsls r4, r4, #3 + adds r4, r4, r7 + ldrb r5, [r4, #0x14] + adds r0, r5, #0 + bl FrameType_ProcessInput + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + strh r0, [r4, #0x14] + movs r7, #0x14 + ldrsh r0, [r4, r7] + cmp r5, r0 + beq _080BA19E + adds r0, r1, #0 + bl FrameType_DrawChoices +_080BA19E: + ldr r1, _080BA1B8 + ldrb r0, [r1] + cmp r0, #0 + beq _080BA1B2 + movs r0, #0 + strb r0, [r1] + movs r0, #1 + movs r1, #2 + bl CopyWindowToVram +_080BA1B2: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080BA1B8: .4byte 0x020397E8 + thumb_func_end Task_OptionMenuProcessInput + + thumb_func_start Task_OptionMenuSave +Task_OptionMenuSave: @ 0x080BA1BC + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r6, _080BA254 + ldr r3, [r6] + ldr r1, _080BA258 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + adds r4, r4, r1 + movs r0, #7 + ldrb r1, [r4, #0xa] + ands r1, r0 + ldrb r2, [r3, #0x14] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x14] + ldr r3, [r6] + movs r5, #1 + ldrb r1, [r4, #0xc] + ands r1, r5 + lsls r1, r1, #2 + ldrb r2, [r3, #0x15] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x15] + ldr r3, [r6] + ldrb r1, [r4, #0xe] + ands r1, r5 + lsls r1, r1, #1 + ldrb r2, [r3, #0x15] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x15] + ldr r3, [r6] + ldrb r1, [r4, #0x10] + ands r1, r5 + ldrb r2, [r3, #0x15] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x15] + ldr r1, [r6] + ldrh r0, [r4, #0x12] + movs r5, #0 + strb r0, [r1, #0x13] + ldr r3, [r6] + ldrb r1, [r4, #0x14] + lsls r1, r1, #3 + ldrb r2, [r3, #0x14] + movs r0, #7 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x14] + movs r0, #1 + rsbs r0, r0, #0 + str r5, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _080BA25C + str r0, [r4] + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080BA254: .4byte 0x03005AF0 +_080BA258: .4byte 0x03005B60 +_080BA25C: .4byte 0x080BA261 + thumb_func_end Task_OptionMenuSave + + thumb_func_start Task_OptionMenuFadeOut +Task_OptionMenuFadeOut: @ 0x080BA260 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _080BA288 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080BA284 + adds r0, r2, #0 + bl DestroyTask + bl FreeAllWindowBuffers + ldr r0, _080BA28C + ldr r0, [r0, #8] + bl SetMainCallback2 +_080BA284: + pop {r0} + bx r0 + .align 2, 0 +_080BA288: .4byte 0x02037C74 +_080BA28C: .4byte 0x03002360 + thumb_func_end Task_OptionMenuFadeOut + + thumb_func_start HighlightOptionMenuItem +HighlightOptionMenuItem: @ 0x080BA290 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r1, #0x87 + lsls r1, r1, #5 + movs r0, #0x40 + bl SetGpuReg + lsls r4, r4, #4 + adds r1, r4, #0 + adds r1, #0x28 + lsls r1, r1, #8 + adds r4, #0x38 + orrs r1, r4 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x44 + bl SetGpuReg + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end HighlightOptionMenuItem + + thumb_func_start DrawOptionMenuChoice +DrawOptionMenuChoice: @ 0x080BA2C0 + push {r4, r5, r6, lr} + sub sp, #0x1c + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r2, #0 + ldrb r1, [r4] + adds r0, r1, #0 + cmp r0, #0xff + beq _080BA2F8 +_080BA2DC: + mov r0, sp + adds r0, r0, r2 + adds r0, #0xc + strb r1, [r0] + adds r4, #1 + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldrb r1, [r4] + adds r0, r1, #0 + cmp r0, #0xff + beq _080BA2F8 + cmp r2, #0xe + bls _080BA2DC +_080BA2F8: + cmp r3, #0 + beq _080BA306 + add r1, sp, #0xc + movs r0, #4 + strb r0, [r1, #2] + movs r0, #5 + strb r0, [r1, #5] +_080BA306: + mov r1, sp + adds r1, r1, r2 + adds r1, #0xc + movs r0, #0xff + strb r0, [r1] + adds r0, r5, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + movs r0, #1 + movs r1, #1 + add r2, sp, #0xc + adds r3, r6, #0 + bl AddTextPrinterParameterized + add sp, #0x1c + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end DrawOptionMenuChoice + + thumb_func_start ButtonMode_ProcessInput +ButtonMode_ProcessInput: @ 0x080BA334 + push {lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r2, _080BA354 + ldrh r1, [r2, #0x2e] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080BA360 + cmp r3, #1 + bhi _080BA358 + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + b _080BA35A + .align 2, 0 +_080BA354: .4byte 0x03002360 +_080BA358: + movs r3, #0 +_080BA35A: + ldr r1, _080BA378 + movs r0, #1 + strb r0, [r1] +_080BA360: + ldrh r1, [r2, #0x2e] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080BA384 + cmp r3, #0 + beq _080BA37C + subs r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + b _080BA37E + .align 2, 0 +_080BA378: .4byte 0x020397E8 +_080BA37C: + movs r3, #2 +_080BA37E: + ldr r1, _080BA38C + movs r0, #1 + strb r0, [r1] +_080BA384: + adds r0, r3, #0 + pop {r1} + bx r1 + .align 2, 0 +_080BA38C: .4byte 0x020397E8 + thumb_func_end ButtonMode_ProcessInput + + thumb_func_start BattleScene_DrawChoices +BattleScene_DrawChoices: @ 0x080BA390 + push {lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, sp + movs r2, #0 + strb r2, [r1] + strb r2, [r1, #1] + strb r2, [r1, #2] + adds r1, r1, r0 + movs r0, #1 + strb r0, [r1] + ldr r0, _080BA3D8 + mov r1, sp + ldrb r3, [r1] + movs r1, #0x68 + bl DrawOptionMenuChoice + ldr r0, _080BA3DC + mov r1, sp + ldrb r3, [r1, #1] + movs r1, #0x88 + movs r2, #0 + bl DrawOptionMenuChoice + ldr r0, _080BA3E0 + mov r1, sp + ldrb r3, [r1, #2] + movs r1, #0xa8 + movs r2, #0 + bl DrawOptionMenuChoice + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_080BA3D8: .4byte 0x0853736C +_080BA3DC: .4byte 0x08537376 +_080BA3E0: .4byte 0x08537380 + thumb_func_end BattleScene_DrawChoices + + thumb_func_start BattleStyle_DrawChoices +BattleStyle_DrawChoices: @ 0x080BA3E4 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _080BA404 + ldrh r1, [r0, #0x2e] + movs r0, #0x30 + ands r0, r1 + cmp r0, #0 + beq _080BA3FE + movs r1, #1 + eors r2, r1 + ldr r0, _080BA408 + strb r1, [r0] +_080BA3FE: + adds r0, r2, #0 + pop {r1} + bx r1 + .align 2, 0 +_080BA404: .4byte 0x03002360 +_080BA408: .4byte 0x020397E8 + thumb_func_end BattleStyle_DrawChoices + + thumb_func_start Sound_DrawChoices +Sound_DrawChoices: @ 0x080BA40C + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, sp + movs r2, #0 + strb r2, [r1] + strb r2, [r1, #1] + adds r1, r1, r0 + movs r0, #1 + strb r0, [r1] + ldr r4, _080BA460 + movs r1, #1 + bl GetFontAttribute + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r0, sp + ldrb r3, [r0] + adds r0, r4, #0 + movs r1, #0x68 + bl DrawOptionMenuChoice + ldr r4, _080BA464 + movs r0, #1 + movs r1, #1 + bl GetFontAttribute + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r0, sp + ldrb r3, [r0, #1] + adds r0, r4, #0 + movs r1, #0xa8 + bl DrawOptionMenuChoice + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BA460: .4byte 0x0853738A +_080BA464: .4byte 0x08537393 + thumb_func_end Sound_DrawChoices + + thumb_func_start DrawOptionMenuTexts +DrawOptionMenuTexts: @ 0x080BA468 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _080BA488 + ldrh r1, [r0, #0x2e] + movs r0, #0x30 + ands r0, r1 + cmp r0, #0 + beq _080BA482 + movs r1, #1 + eors r2, r1 + ldr r0, _080BA48C + strb r1, [r0] +_080BA482: + adds r0, r2, #0 + pop {r1} + bx r1 + .align 2, 0 +_080BA488: .4byte 0x03002360 +_080BA48C: .4byte 0x020397E8 + thumb_func_end DrawOptionMenuTexts + + thumb_func_start TextSpeed_ProcessInput +TextSpeed_ProcessInput: @ 0x080BA490 + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, sp + movs r2, #0 + strb r2, [r1] + strb r2, [r1, #1] + adds r1, r1, r0 + movs r0, #1 + strb r0, [r1] + ldr r4, _080BA4E4 + movs r1, #1 + bl GetFontAttribute + adds r2, r0, #0 + lsls r2, r2, #0x19 + lsrs r2, r2, #0x18 + mov r0, sp + ldrb r3, [r0] + adds r0, r4, #0 + movs r1, #0x68 + bl DrawOptionMenuChoice + ldr r4, _080BA4E8 + movs r0, #1 + movs r1, #1 + bl GetFontAttribute + adds r2, r0, #0 + lsls r2, r2, #0x19 + lsrs r2, r2, #0x18 + mov r0, sp + ldrb r3, [r0, #1] + adds r0, r4, #0 + movs r1, #0xa0 + bl DrawOptionMenuChoice + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BA4E4: .4byte 0x0853739D +_080BA4E8: .4byte 0x085373A8 + thumb_func_end TextSpeed_ProcessInput + + thumb_func_start Sound_ProcessInput +Sound_ProcessInput: @ 0x080BA4EC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _080BA514 + ldrh r1, [r0, #0x2e] + movs r0, #0x30 + ands r0, r1 + cmp r0, #0 + beq _080BA50C + movs r4, #1 + eors r5, r4 + adds r0, r5, #0 + bl SetPokemonCryStereo + ldr r0, _080BA518 + strb r4, [r0] +_080BA50C: + adds r0, r5, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080BA514: .4byte 0x03002360 +_080BA518: .4byte 0x020397E8 + thumb_func_end Sound_ProcessInput + + thumb_func_start TextSpeed_DrawChoices +TextSpeed_DrawChoices: @ 0x080BA51C + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, sp + movs r2, #0 + strb r2, [r1] + strb r2, [r1, #1] + adds r1, r1, r0 + movs r0, #1 + strb r0, [r1] + ldr r4, _080BA57C + movs r1, #1 + bl GetFontAttribute + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r0, #1 + adds r2, r2, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r0, sp + ldrb r3, [r0] + adds r0, r4, #0 + movs r1, #0x68 + bl DrawOptionMenuChoice + ldr r4, _080BA580 + movs r0, #1 + movs r1, #1 + bl GetFontAttribute + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r0, #1 + adds r2, r2, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r0, sp + ldrb r3, [r0, #1] + adds r0, r4, #0 + movs r1, #0xa0 + bl DrawOptionMenuChoice + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BA57C: .4byte 0x085373B3 +_080BA580: .4byte 0x085373BE + thumb_func_end TextSpeed_DrawChoices + + thumb_func_start FrameType_ProcessInput +FrameType_ProcessInput: @ 0x080BA584 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080BA5A4 + ldrh r1, [r0, #0x2e] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080BA5D6 + cmp r4, #0x12 + bhi _080BA5A8 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + b _080BA5AA + .align 2, 0 +_080BA5A4: .4byte 0x03002360 +_080BA5A8: + movs r4, #0 +_080BA5AA: + adds r0, r4, #0 + bl GetWindowFrameTilesPal + ldr r1, [r0] + movs r2, #0x90 + lsls r2, r2, #1 + movs r3, #0xd1 + lsls r3, r3, #1 + movs r0, #1 + bl LoadBgTiles + adds r0, r4, #0 + bl GetWindowFrameTilesPal + ldr r0, [r0, #4] + movs r1, #0x70 + movs r2, #0x20 + bl LoadPalette + ldr r1, _080BA5F0 + movs r0, #1 + strb r0, [r1] +_080BA5D6: + ldr r0, _080BA5F4 + ldrh r1, [r0, #0x2e] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080BA626 + cmp r4, #0 + beq _080BA5F8 + subs r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + b _080BA5FA + .align 2, 0 +_080BA5F0: .4byte 0x020397E8 +_080BA5F4: .4byte 0x03002360 +_080BA5F8: + movs r4, #0x13 +_080BA5FA: + adds r0, r4, #0 + bl GetWindowFrameTilesPal + ldr r1, [r0] + movs r2, #0x90 + lsls r2, r2, #1 + movs r3, #0xd1 + lsls r3, r3, #1 + movs r0, #1 + bl LoadBgTiles + adds r0, r4, #0 + bl GetWindowFrameTilesPal + ldr r0, [r0, #4] + movs r1, #0x70 + movs r2, #0x20 + bl LoadPalette + ldr r1, _080BA630 + movs r0, #1 + strb r0, [r1] +_080BA626: + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080BA630: .4byte 0x020397E8 + thumb_func_end FrameType_ProcessInput + + thumb_func_start FrameType_DrawChoices +FrameType_DrawChoices: @ 0x080BA634 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + lsls r0, r0, #0x18 + movs r1, #0x80 + lsls r1, r1, #0x11 + adds r0, r0, r1 + lsrs r7, r0, #0x18 + movs r5, #0 + ldr r1, _080BA6A8 + ldrb r0, [r1] + ldr r2, _080BA6AC + mov r8, r2 + cmp r0, #0xff + beq _080BA672 + adds r2, r1, #0 +_080BA656: + mov r0, sp + adds r1, r0, r5 + adds r0, r5, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r5, r2 + ldrb r0, [r0] + cmp r0, #0xff + beq _080BA672 + cmp r5, #5 + bls _080BA656 +_080BA672: + adds r0, r7, #0 + movs r1, #0xa + bl __udivsi3 + adds r2, r0, #0 + lsls r0, r2, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + beq _080BA6B0 + mov r0, sp + adds r1, r0, r5 + adds r0, r2, #0 + adds r0, #0xa1 + strb r0, [r1] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + mov r1, sp + adds r4, r1, r5 + adds r0, r7, #0 + movs r1, #0xa + bl __umodsi3 + adds r0, #0xa1 + strb r0, [r4] + b _080BA6CC + .align 2, 0 +_080BA6A8: .4byte 0x085373D3 +_080BA6AC: .4byte 0x085373C9 +_080BA6B0: + mov r2, sp + adds r4, r2, r5 + adds r0, r7, #0 + movs r1, #0xa + bl __umodsi3 + adds r0, #0xa1 + strb r0, [r4] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + mov r1, sp + adds r0, r1, r5 + strb r6, [r0] +_080BA6CC: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + mov r2, sp + adds r1, r2, r5 + movs r0, #0xff + strb r0, [r1] + movs r0, #1 + movs r1, #1 + bl GetFontAttribute + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r0, #2 + adds r2, r2, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r0, r8 + movs r1, #0x68 + movs r3, #0 + bl DrawOptionMenuChoice + movs r0, #1 + movs r1, #1 + bl GetFontAttribute + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r0, #2 + adds r2, r2, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r0, sp + movs r1, #0x80 + movs r3, #1 + bl DrawOptionMenuChoice + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end FrameType_DrawChoices + + thumb_func_start ButtonMode_DrawChoices +ButtonMode_DrawChoices: @ 0x080BA724 + push {lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r2, _080BA744 + ldrh r1, [r2, #0x2e] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080BA750 + cmp r3, #1 + bhi _080BA748 + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + b _080BA74A + .align 2, 0 +_080BA744: .4byte 0x03002360 +_080BA748: + movs r3, #0 +_080BA74A: + ldr r1, _080BA768 + movs r0, #1 + strb r0, [r1] +_080BA750: + ldrh r1, [r2, #0x2e] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080BA774 + cmp r3, #0 + beq _080BA76C + subs r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + b _080BA76E + .align 2, 0 +_080BA768: .4byte 0x020397E8 +_080BA76C: + movs r3, #2 +_080BA76E: + ldr r1, _080BA77C + movs r0, #1 + strb r0, [r1] +_080BA774: + adds r0, r3, #0 + pop {r1} + bx r1 + .align 2, 0 +_080BA77C: .4byte 0x020397E8 + thumb_func_end ButtonMode_DrawChoices + + thumb_func_start sub_080BA780 +sub_080BA780: @ 0x080BA780 + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, sp + movs r2, #0 + strb r2, [r1] + strb r2, [r1, #1] + strb r2, [r1, #2] + adds r1, r1, r0 + movs r0, #1 + strb r0, [r1] + ldr r4, _080BA7F4 + movs r1, #1 + bl GetFontAttribute + adds r2, r0, #0 + lsls r2, r2, #0x1a + lsrs r2, r2, #0x18 + mov r0, sp + ldrb r3, [r0] + adds r0, r4, #0 + movs r1, #0x68 + bl DrawOptionMenuChoice + ldr r4, _080BA7F8 + movs r0, #1 + movs r1, #1 + bl GetFontAttribute + adds r2, r0, #0 + lsls r2, r2, #0x1a + lsrs r2, r2, #0x18 + mov r0, sp + ldrb r3, [r0, #1] + adds r0, r4, #0 + movs r1, #0x90 + bl DrawOptionMenuChoice + ldr r4, _080BA7FC + movs r0, #1 + movs r1, #1 + bl GetFontAttribute + adds r2, r0, #0 + lsls r2, r2, #0x1a + lsrs r2, r2, #0x18 + mov r0, sp + ldrb r3, [r0, #2] + adds r0, r4, #0 + movs r1, #0xa8 + bl DrawOptionMenuChoice + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BA7F4: .4byte 0x085373DA +_080BA7F8: .4byte 0x085373E5 +_080BA7FC: .4byte 0x085373EE + thumb_func_end sub_080BA780 + + thumb_func_start DrawTextOption +DrawTextOption: @ 0x080BA800 + push {lr} + sub sp, #0xc + movs r0, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r2, _080BA830 + movs r0, #2 + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + movs r1, #1 + movs r3, #8 + bl AddTextPrinterParameterized + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_080BA830: .4byte 0x08537310 + thumb_func_end DrawTextOption + + thumb_func_start sub_080BA834 +sub_080BA834: @ 0x080BA834 + push {r4, lr} + sub sp, #0xc + movs r0, #1 + movs r1, #0x11 + bl FillWindowPixelBuffer + movs r4, #0 +_080BA842: + movs r0, #1 + movs r1, #1 + bl GetFontAttribute + adds r1, r4, #0 + muls r1, r0, r1 + adds r1, #2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _080BA88C + lsls r0, r4, #2 + adds r0, r0, r2 + ldr r2, [r0] + str r1, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r3, #8 + bl AddTextPrinterParameterized + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #6 + bls _080BA842 + movs r0, #1 + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BA88C: .4byte 0x08537350 + thumb_func_end sub_080BA834 + + thumb_func_start sub_080BA890 +sub_080BA890: @ 0x080BA890 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + movs r4, #1 + str r4, [sp] + str r4, [sp, #4] + movs r5, #7 + str r5, [sp, #8] + movs r0, #1 + movs r1, #0xd1 + lsls r1, r1, #1 + movs r2, #1 + movs r3, #0 + bl FillBgTilemapBufferRect + movs r0, #0x1b + mov r8, r0 + str r0, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #1 + ldr r1, _080BA9FC + movs r2, #2 + movs r3, #0 + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #1 + movs r1, #0xd2 + lsls r1, r1, #1 + movs r2, #0x1c + movs r3, #0 + bl FillBgTilemapBufferRect + str r4, [sp] + movs r6, #2 + str r6, [sp, #4] + str r5, [sp, #8] + movs r0, #1 + ldr r1, _080BAA00 + movs r2, #1 + movs r3, #1 + bl FillBgTilemapBufferRect + str r4, [sp] + str r6, [sp, #4] + str r5, [sp, #8] + movs r0, #1 + ldr r1, _080BAA04 + movs r2, #0x1c + movs r3, #1 + bl FillBgTilemapBufferRect + movs r7, #0xd4 + lsls r7, r7, #1 + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #1 + adds r1, r7, #0 + movs r2, #1 + movs r3, #3 + bl FillBgTilemapBufferRect + ldr r0, _080BAA08 + mov sl, r0 + mov r0, r8 + str r0, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #1 + mov r1, sl + movs r2, #2 + movs r3, #3 + bl FillBgTilemapBufferRect + movs r0, #0xd5 + lsls r0, r0, #1 + mov sb, r0 + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #1 + mov r1, sb + movs r2, #0x1c + movs r3, #3 + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #1 + movs r1, #0xd1 + lsls r1, r1, #1 + movs r2, #1 + movs r3, #4 + bl FillBgTilemapBufferRect + movs r0, #0x1a + mov r8, r0 + str r0, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #1 + ldr r1, _080BA9FC + movs r2, #2 + movs r3, #4 + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #1 + movs r1, #0xd2 + lsls r1, r1, #1 + movs r2, #0x1c + movs r3, #4 + bl FillBgTilemapBufferRect + str r4, [sp] + movs r6, #0x12 + str r6, [sp, #4] + str r5, [sp, #8] + movs r0, #1 + ldr r1, _080BAA00 + movs r2, #1 + movs r3, #5 + bl FillBgTilemapBufferRect + str r4, [sp] + str r6, [sp, #4] + str r5, [sp, #8] + movs r0, #1 + ldr r1, _080BAA04 + movs r2, #0x1c + movs r3, #5 + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #1 + adds r1, r7, #0 + movs r2, #1 + movs r3, #0x13 + bl FillBgTilemapBufferRect + mov r0, r8 + str r0, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #1 + mov r1, sl + movs r2, #2 + movs r3, #0x13 + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #1 + mov r1, sb + movs r2, #0x1c + movs r3, #0x13 + bl FillBgTilemapBufferRect + movs r0, #1 + bl CopyBgTilemapBufferToVram + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080BA9FC: .4byte 0x000001A3 +_080BAA00: .4byte 0x000001A5 +_080BAA04: .4byte 0x000001A7 +_080BAA08: .4byte 0x000001A9 + thumb_func_end sub_080BA890 + diff --git a/asm/scrcmd.s b/asm/scrcmd.s new file mode 100644 index 0000000..a1f13d5 --- /dev/null +++ b/asm/scrcmd.s @@ -0,0 +1,5836 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ScrCmd_nop +ScrCmd_nop: @ 0x08098C54 + movs r0, #0 + bx lr + thumb_func_end ScrCmd_nop + + thumb_func_start ScrCmd_nop1 +ScrCmd_nop1: @ 0x08098C58 + movs r0, #0 + bx lr + thumb_func_end ScrCmd_nop1 + + thumb_func_start ScrCmd_end +ScrCmd_end: @ 0x08098C5C + push {lr} + bl StopScript + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end ScrCmd_end + + thumb_func_start ScrCmd_gotonative +ScrCmd_gotonative: @ 0x08098C68 + push {r4, lr} + adds r4, r0, #0 + bl ScriptReadWord + adds r1, r0, #0 + adds r0, r4, #0 + bl SetupNativeScript + movs r0, #1 + pop {r4} + pop {r1} + bx r1 + thumb_func_end ScrCmd_gotonative + + thumb_func_start ScrCmd_special +ScrCmd_special: @ 0x08098C80 + push {lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + ldr r1, _08098C9C + lsrs r0, r0, #0xe + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + thumb_func_end ScrCmd_special + + thumb_func_start ScrCmd_showelevmenu +ScrCmd_showelevmenu: @ 0x08098C94 + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_08098C9C: .4byte 0x081DAF8C + thumb_func_end ScrCmd_showelevmenu + + thumb_func_start ScrCmd_specialvar +ScrCmd_specialvar: @ 0x08098CA0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetVarPointer + adds r6, r0, #0 + ldr r4, _08098CD0 + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0xe + adds r0, r0, r4 + ldr r0, [r0] + bl _call_via_r0 + strh r0, [r6] + thumb_func_end ScrCmd_specialvar + + thumb_func_start ScrCmd_cmdDA +ScrCmd_cmdDA: @ 0x08098CC8 + movs r0, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08098CD0: .4byte 0x081DAF8C + thumb_func_end ScrCmd_cmdDA + + thumb_func_start ScrCmd_callnative +ScrCmd_callnative: @ 0x08098CD4 + push {lr} + bl ScriptReadWord + bl _call_via_r0 + movs r0, #0 + thumb_func_end ScrCmd_callnative + + thumb_func_start sub_08098CE0 +sub_08098CE0: @ 0x08098CE0 + pop {r1} + bx r1 + thumb_func_end sub_08098CE0 + + thumb_func_start ScrCmd_waitstate +ScrCmd_waitstate: @ 0x08098CE4 + push {lr} + bl ScriptContext1_Stop + movs r0, #1 + pop {r1} + bx r1 + thumb_func_end ScrCmd_waitstate + + thumb_func_start ScrCmd_goto +ScrCmd_goto: @ 0x08098CF0 + push {r4, lr} + adds r4, r0, #0 + bl ScriptReadWord + adds r1, r0, #0 + adds r0, r4, #0 + bl ScriptJump + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end ScrCmd_goto + + thumb_func_start ScrCmd_return +ScrCmd_return: @ 0x08098D08 + push {lr} + bl ScriptReturn + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end ScrCmd_return + + thumb_func_start ScrCmd_call +ScrCmd_call: @ 0x08098D14 + push {r4, lr} + adds r4, r0, #0 + bl ScriptReadWord + adds r1, r0, #0 + adds r0, r4, #0 + bl ScriptCall + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end ScrCmd_call + + thumb_func_start ScrCmd_goto_if +ScrCmd_goto_if: @ 0x08098D2C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #8] + ldrb r4, [r0] + adds r0, #1 + str r0, [r5, #8] + adds r0, r5, #0 + bl ScriptReadWord + adds r2, r0, #0 + ldr r1, _08098D64 + lsls r0, r4, #1 + adds r0, r0, r4 + ldrb r3, [r5, #2] + adds r0, r0, r3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + bne _08098D5A + adds r0, r5, #0 + adds r1, r2, #0 + bl ScriptJump +_08098D5A: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08098D64: .4byte 0x084E8904 + thumb_func_end ScrCmd_goto_if + + thumb_func_start ScrCmd_call_if +ScrCmd_call_if: @ 0x08098D68 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #8] + ldrb r4, [r0] + adds r0, #1 + str r0, [r5, #8] + adds r0, r5, #0 + bl ScriptReadWord + adds r2, r0, #0 + ldr r1, _08098DA0 + lsls r0, r4, #1 + adds r0, r0, r4 + ldrb r3, [r5, #2] + adds r0, r0, r3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + bne _08098D96 + adds r0, r5, #0 + adds r1, r2, #0 + bl ScriptCall +_08098D96: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08098DA0: .4byte 0x084E8904 + thumb_func_end ScrCmd_call_if + + thumb_func_start ScrCmd_setvaddress +ScrCmd_setvaddress: @ 0x08098DA4 + push {r4, lr} + ldr r4, [r0, #8] + subs r4, #1 + bl ScriptReadWord + ldr r1, _08098DBC + subs r0, r0, r4 + str r0, [r1] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08098DBC: .4byte 0x02037264 + thumb_func_end ScrCmd_setvaddress + + thumb_func_start ScrCmd_vgoto +ScrCmd_vgoto: @ 0x08098DC0 + push {r4, lr} + adds r4, r0, #0 + bl ScriptReadWord + adds r1, r0, #0 + ldr r0, _08098DE0 + ldr r0, [r0] + subs r1, r1, r0 + adds r0, r4, #0 + bl ScriptJump + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08098DE0: .4byte 0x02037264 + thumb_func_end ScrCmd_vgoto + + thumb_func_start ScrCmd_vcall +ScrCmd_vcall: @ 0x08098DE4 + push {r4, lr} + adds r4, r0, #0 + bl ScriptReadWord + adds r1, r0, #0 + ldr r0, _08098E04 + ldr r0, [r0] + subs r1, r1, r0 + adds r0, r4, #0 + bl ScriptCall + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08098E04: .4byte 0x02037264 + thumb_func_end ScrCmd_vcall + + thumb_func_start ScrCmd_vgoto_if +ScrCmd_vgoto_if: @ 0x08098E08 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #8] + ldrb r4, [r0] + adds r0, #1 + str r0, [r5, #8] + adds r0, r5, #0 + bl ScriptReadWord + ldr r1, _08098E44 + ldr r1, [r1] + subs r2, r0, r1 + ldr r1, _08098E48 + lsls r0, r4, #1 + adds r0, r0, r4 + ldrb r3, [r5, #2] + adds r0, r0, r3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + bne _08098E3A + adds r0, r5, #0 + adds r1, r2, #0 + bl ScriptJump +_08098E3A: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08098E44: .4byte 0x02037264 +_08098E48: .4byte 0x084E8904 + thumb_func_end ScrCmd_vgoto_if + + thumb_func_start ScrCmd_vcall_if +ScrCmd_vcall_if: @ 0x08098E4C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #8] + ldrb r4, [r0] + adds r0, #1 + str r0, [r5, #8] + adds r0, r5, #0 + bl ScriptReadWord + ldr r1, _08098E88 + ldr r1, [r1] + subs r2, r0, r1 + ldr r1, _08098E8C + lsls r0, r4, #1 + adds r0, r0, r4 + ldrb r3, [r5, #2] + adds r0, r0, r3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + bne _08098E7E + adds r0, r5, #0 + adds r1, r2, #0 + bl ScriptCall +_08098E7E: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08098E88: .4byte 0x02037264 +_08098E8C: .4byte 0x084E8904 + thumb_func_end ScrCmd_vcall_if + + thumb_func_start ScrCmd_gotostd +ScrCmd_gotostd: @ 0x08098E90 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #8] + ldrb r1, [r0] + adds r0, #1 + str r0, [r2, #8] + lsls r1, r1, #2 + ldr r0, _08098EB8 + adds r1, r1, r0 + ldr r0, _08098EBC + cmp r1, r0 + bhs _08098EB0 + ldr r1, [r1] + adds r0, r2, #0 + bl ScriptJump +_08098EB0: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_08098EB8: .4byte 0x081DB7BC +_08098EBC: .4byte 0x081DB7E8 + thumb_func_end ScrCmd_gotostd + + thumb_func_start ScrCmd_callstd +ScrCmd_callstd: @ 0x08098EC0 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #8] + ldrb r1, [r0] + adds r0, #1 + str r0, [r2, #8] + lsls r1, r1, #2 + ldr r0, _08098EE8 + adds r1, r1, r0 + ldr r0, _08098EEC + cmp r1, r0 + bhs _08098EE0 + ldr r1, [r1] + adds r0, r2, #0 + bl ScriptCall +_08098EE0: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_08098EE8: .4byte 0x081DB7BC +_08098EEC: .4byte 0x081DB7E8 + thumb_func_end ScrCmd_callstd + + thumb_func_start ScrCmd_gotostd_if +ScrCmd_gotostd_if: @ 0x08098EF0 + push {r4, lr} + adds r3, r0, #0 + ldr r0, [r3, #8] + ldrb r2, [r0] + adds r0, #1 + str r0, [r3, #8] + ldrb r4, [r0] + adds r0, #1 + str r0, [r3, #8] + ldr r1, _08098F30 + lsls r0, r2, #1 + adds r0, r0, r2 + ldrb r2, [r3, #2] + adds r0, r0, r2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + bne _08098F28 + lsls r0, r4, #2 + ldr r1, _08098F34 + adds r1, r0, r1 + ldr r0, _08098F38 + cmp r1, r0 + bhs _08098F28 + ldr r1, [r1] + adds r0, r3, #0 + bl ScriptJump +_08098F28: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08098F30: .4byte 0x084E8904 +_08098F34: .4byte 0x081DB7BC +_08098F38: .4byte 0x081DB7E8 + thumb_func_end ScrCmd_gotostd_if + + thumb_func_start ScrCmd_callstd_if +ScrCmd_callstd_if: @ 0x08098F3C + push {r4, lr} + adds r3, r0, #0 + ldr r0, [r3, #8] + ldrb r2, [r0] + adds r0, #1 + str r0, [r3, #8] + ldrb r4, [r0] + adds r0, #1 + str r0, [r3, #8] + ldr r1, _08098F7C + lsls r0, r2, #1 + adds r0, r0, r2 + ldrb r2, [r3, #2] + adds r0, r0, r2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + bne _08098F74 + lsls r0, r4, #2 + ldr r1, _08098F80 + adds r1, r0, r1 + ldr r0, _08098F84 + cmp r1, r0 + bhs _08098F74 + ldr r1, [r1] + adds r0, r3, #0 + bl ScriptCall +_08098F74: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08098F7C: .4byte 0x084E8904 +_08098F80: .4byte 0x081DB7BC +_08098F84: .4byte 0x081DB7E8 + thumb_func_end ScrCmd_callstd_if + + thumb_func_start ScrCmd_returnram +ScrCmd_returnram: @ 0x08098F88 + push {lr} + ldr r1, _08098F98 + ldr r1, [r1] + bl ScriptJump + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_08098F98: .4byte 0x02037260 + thumb_func_end ScrCmd_returnram + + thumb_func_start ScrCmd_killscript +ScrCmd_killscript: @ 0x08098F9C + push {r4, lr} + adds r4, r0, #0 + bl ClearRamScript + adds r0, r4, #0 + bl StopScript + movs r0, #1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_killscript + + thumb_func_start ScrCmd_setmysteryeventstatus +ScrCmd_setmysteryeventstatus: @ 0x08098FB4 + push {lr} + ldr r1, [r0, #8] + ldrb r2, [r1] + adds r1, #1 + str r1, [r0, #8] + adds r0, r2, #0 + bl SetMysteryEventScriptStatus + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_setmysteryeventstatus + + thumb_func_start ScrCmd_loadword +ScrCmd_loadword: @ 0x08098FCC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #8] + ldrb r5, [r0] + adds r0, #1 + str r0, [r4, #8] + adds r0, r4, #0 + bl ScriptReadWord + lsls r5, r5, #2 + adds r4, #0x64 + adds r4, r4, r5 + str r0, [r4] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_loadword + + thumb_func_start ScrCmd_loadbytefromaddr +ScrCmd_loadbytefromaddr: @ 0x08098FF0 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #8] + ldrb r5, [r0] + adds r0, #1 + str r0, [r4, #8] + adds r0, r4, #0 + bl ScriptReadWord + lsls r5, r5, #2 + adds r4, #0x64 + adds r4, r4, r5 + ldrb r0, [r0] + str r0, [r4] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end ScrCmd_loadbytefromaddr + + thumb_func_start ScrCmd_writebytetoaddr +ScrCmd_writebytetoaddr: @ 0x08099014 + push {r4, lr} + ldr r1, [r0, #8] + ldrb r4, [r1] + adds r1, #1 + str r1, [r0, #8] + bl ScriptReadWord + strb r4, [r0] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end ScrCmd_writebytetoaddr + + thumb_func_start ScrCmd_loadbyte +ScrCmd_loadbyte: @ 0x0809902C + ldr r1, [r0, #8] + ldrb r3, [r1] + adds r1, #1 + str r1, [r0, #8] + lsls r3, r3, #2 + adds r2, r0, #0 + adds r2, #0x64 + adds r2, r2, r3 + ldrb r3, [r1] + str r3, [r2] + adds r1, #1 + str r1, [r0, #8] + movs r0, #0 + bx lr + thumb_func_end ScrCmd_loadbyte + + thumb_func_start ScrCmd_setptrbyte +ScrCmd_setptrbyte: @ 0x08099048 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #8] + ldrb r5, [r0] + adds r0, #1 + str r0, [r4, #8] + adds r0, r4, #0 + bl ScriptReadWord + lsls r5, r5, #2 + adds r4, #0x64 + adds r4, r4, r5 + ldr r1, [r4] + strb r1, [r0] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end ScrCmd_setptrbyte + + thumb_func_start ScrCmd_copylocal +ScrCmd_copylocal: @ 0x0809906C + ldr r1, [r0, #8] + ldrb r3, [r1] + adds r1, #1 + str r1, [r0, #8] + ldrb r2, [r1] + adds r1, #1 + str r1, [r0, #8] + lsls r3, r3, #2 + adds r0, #0x64 + adds r3, r0, r3 + lsls r2, r2, #2 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r3] + movs r0, #0 + bx lr + thumb_func_end ScrCmd_copylocal + + thumb_func_start ScrCmd_copybyte +ScrCmd_copybyte: @ 0x0809908C + push {r4, r5, lr} + adds r4, r0, #0 + bl ScriptReadWord + adds r5, r0, #0 + adds r0, r4, #0 + bl ScriptReadWord + ldrb r0, [r0] + strb r0, [r5] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end ScrCmd_copybyte + + thumb_func_start ScrCmd_setvar +ScrCmd_setvar: @ 0x080990A8 + push {r4, r5, lr} + adds r5, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetVarPointer + adds r4, r0, #0 + adds r0, r5, #0 + bl ScriptReadHalfword + strh r0, [r4] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_setvar + + thumb_func_start ScrCmd_copyvar +ScrCmd_copyvar: @ 0x080990CC + push {r4, r5, lr} + adds r4, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetVarPointer + adds r5, r0, #0 + adds r0, r4, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetVarPointer + ldrh r0, [r0] + strh r0, [r5] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end ScrCmd_copyvar + + thumb_func_start ScrCmd_setorcopyvar +ScrCmd_setorcopyvar: @ 0x080990F8 + push {r4, r5, lr} + adds r4, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetVarPointer + adds r5, r0, #0 + adds r0, r4, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + strh r0, [r5] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_setorcopyvar + + thumb_func_start compare_012 +compare_012: @ 0x08099124 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + cmp r0, r1 + bhs _08099136 + movs r0, #0 + b _08099140 +_08099136: + cmp r0, r1 + beq _0809913E + movs r0, #2 + b _08099140 +_0809913E: + movs r0, #1 +_08099140: + pop {r1} + bx r1 + thumb_func_end compare_012 + + thumb_func_start ScrCmd_compare_local_to_local +ScrCmd_compare_local_to_local: @ 0x08099144 + push {r4, lr} + adds r4, r0, #0 + ldr r2, [r4, #8] + ldrb r0, [r2] + lsls r0, r0, #2 + adds r3, r4, #0 + adds r3, #0x64 + adds r0, r3, r0 + ldrb r0, [r0] + adds r2, #1 + str r2, [r4, #8] + ldrb r1, [r2] + lsls r1, r1, #2 + adds r3, r3, r1 + ldrb r1, [r3] + adds r2, #1 + str r2, [r4, #8] + bl compare_012 + strb r0, [r4, #2] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end ScrCmd_compare_local_to_local + + thumb_func_start ScrCmd_compare_local_to_value +ScrCmd_compare_local_to_value: @ 0x08099174 + push {r4, lr} + adds r4, r0, #0 + ldr r2, [r4, #8] + ldrb r1, [r2] + lsls r1, r1, #2 + adds r0, #0x64 + adds r0, r0, r1 + ldrb r0, [r0] + adds r2, #1 + str r2, [r4, #8] + ldrb r1, [r2] + adds r2, #1 + str r2, [r4, #8] + bl compare_012 + strb r0, [r4, #2] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end ScrCmd_compare_local_to_value + + thumb_func_start ScrCmd_compare_local_to_addr +ScrCmd_compare_local_to_addr: @ 0x0809919C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, [r4, #8] + ldrb r1, [r2] + lsls r1, r1, #2 + adds r0, #0x64 + adds r0, r0, r1 + ldrb r5, [r0] + adds r2, #1 + str r2, [r4, #8] + adds r0, r4, #0 + bl ScriptReadWord + ldrb r1, [r0] + adds r0, r5, #0 + bl compare_012 + strb r0, [r4, #2] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end ScrCmd_compare_local_to_addr + + thumb_func_start ScrCmd_compare_addr_to_local +ScrCmd_compare_addr_to_local: @ 0x080991C8 + push {r4, lr} + adds r4, r0, #0 + bl ScriptReadWord + ldrb r0, [r0] + ldr r3, [r4, #8] + ldrb r2, [r3] + lsls r2, r2, #2 + adds r1, r4, #0 + adds r1, #0x64 + adds r1, r1, r2 + ldrb r1, [r1] + adds r3, #1 + str r3, [r4, #8] + bl compare_012 + strb r0, [r4, #2] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_compare_addr_to_local + + thumb_func_start ScrCmd_compare_addr_to_value +ScrCmd_compare_addr_to_value: @ 0x080991F4 + push {r4, lr} + adds r4, r0, #0 + bl ScriptReadWord + ldrb r0, [r0] + ldr r2, [r4, #8] + ldrb r1, [r2] + adds r2, #1 + str r2, [r4, #8] + bl compare_012 + strb r0, [r4, #2] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end ScrCmd_compare_addr_to_value + + thumb_func_start ScrCmd_compare_addr_to_addr +ScrCmd_compare_addr_to_addr: @ 0x08099214 + push {r4, r5, lr} + adds r4, r0, #0 + bl ScriptReadWord + ldrb r5, [r0] + adds r0, r4, #0 + bl ScriptReadWord + ldrb r1, [r0] + adds r0, r5, #0 + bl compare_012 + strb r0, [r4, #2] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_compare_addr_to_addr + + thumb_func_start ScrCmd_compare_var_to_value +ScrCmd_compare_var_to_value: @ 0x08099238 + push {r4, r5, lr} + adds r4, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetVarPointer + ldrh r5, [r0] + adds r0, r4, #0 + bl ScriptReadHalfword + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r5, #0 + bl compare_012 + strb r0, [r4, #2] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_compare_var_to_value + + thumb_func_start ScrCmd_compare_var_to_var +ScrCmd_compare_var_to_var: @ 0x08099268 + push {r4, r5, lr} + adds r4, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetVarPointer + adds r5, r0, #0 + adds r0, r4, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetVarPointer + ldrh r2, [r5] + ldrh r1, [r0] + adds r0, r2, #0 + bl compare_012 + strb r0, [r4, #2] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end ScrCmd_compare_var_to_var + + thumb_func_start ScrCmd_addvar +ScrCmd_addvar: @ 0x0809929C + push {r4, r5, lr} + adds r5, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetVarPointer + adds r4, r0, #0 + adds r0, r5, #0 + bl ScriptReadHalfword + ldrh r1, [r4] + adds r0, r0, r1 + strh r0, [r4] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_addvar + + thumb_func_start ScrCmd_subvar +ScrCmd_subvar: @ 0x080992C4 + push {r4, r5, lr} + adds r4, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetVarPointer + adds r5, r0, #0 + adds r0, r4, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + ldrh r1, [r5] + subs r1, r1, r0 + strh r1, [r5] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_subvar + + thumb_func_start ScrCmd_random +ScrCmd_random: @ 0x080992F4 + push {r4, r5, lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r5, _08099324 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r4, #0 + bl __umodsi3 + strh r0, [r5] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08099324: .4byte 0x02037290 + thumb_func_end ScrCmd_random + + thumb_func_start ScrCmd_giveitem +ScrCmd_giveitem: @ 0x08099328 + push {r4, r5, lr} + adds r5, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r1, r0, #0 + ldr r5, _08099368 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl AddBagItem + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08099368: .4byte 0x02037290 + thumb_func_end ScrCmd_giveitem + + thumb_func_start ScrCmd_takeitem +ScrCmd_takeitem: @ 0x0809936C + push {r4, r5, lr} + adds r5, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r1, r0, #0 + ldr r5, _080993AC + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl RemoveBagItem + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080993AC: .4byte 0x02037290 + thumb_func_end ScrCmd_takeitem + + thumb_func_start ScrCmd_checkitemspace +ScrCmd_checkitemspace: @ 0x080993B0 + push {r4, r5, lr} + adds r5, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r1, r0, #0 + ldr r5, _080993F0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl CheckBagHasSpace + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080993F0: .4byte 0x02037290 + thumb_func_end ScrCmd_checkitemspace + + thumb_func_start ScrCmd_checkitem +ScrCmd_checkitem: @ 0x080993F4 + push {r4, r5, lr} + adds r5, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r1, r0, #0 + ldr r5, _08099434 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl CheckBagHasItem + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08099434: .4byte 0x02037290 + thumb_func_end ScrCmd_checkitem + + thumb_func_start ScrCmd_checkitemtype +ScrCmd_checkitemtype: @ 0x08099438 + push {r4, lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _08099460 + bl GetPocketByItemId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08099460: .4byte 0x02037290 + thumb_func_end ScrCmd_checkitemtype + + thumb_func_start ScrCmd_givepcitem +ScrCmd_givepcitem: @ 0x08099464 + push {r4, r5, lr} + adds r5, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r5, _080994A4 + adds r0, r4, #0 + bl AddPCItem + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080994A4: .4byte 0x02037290 + thumb_func_end ScrCmd_givepcitem + + thumb_func_start ScrCmd_checkpcitem +ScrCmd_checkpcitem: @ 0x080994A8 + push {r4, r5, lr} + adds r5, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r5, _080994E8 + adds r0, r4, #0 + bl CheckPCHasItem + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080994E8: .4byte 0x02037290 + thumb_func_end ScrCmd_checkpcitem + + thumb_func_start ScrCmd_givedecoration +ScrCmd_givedecoration: @ 0x080994EC + push {r4, lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + ldr r4, _08099514 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DecorationAdd + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08099514: .4byte 0x02037290 + thumb_func_end ScrCmd_givedecoration + + thumb_func_start ScrCmd_takedecoration +ScrCmd_takedecoration: @ 0x08099518 + push {r4, lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + ldr r4, _08099540 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DecorationRemove + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r4] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08099540: .4byte 0x02037290 + thumb_func_end ScrCmd_takedecoration + + thumb_func_start ScrCmd_checkdecorspace +ScrCmd_checkdecorspace: @ 0x08099544 + push {r4, lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + ldr r4, _0809956C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DecorationCheckSpace + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809956C: .4byte 0x02037290 + thumb_func_end ScrCmd_checkdecorspace + + thumb_func_start ScrCmd_checkdecor +ScrCmd_checkdecor: @ 0x08099570 + push {r4, lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + ldr r4, _08099598 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl CheckHasDecoration + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08099598: .4byte 0x02037290 + thumb_func_end ScrCmd_checkdecor + + thumb_func_start ScrCmd_setflag +ScrCmd_setflag: @ 0x0809959C + push {lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl FlagSet + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end ScrCmd_setflag + + thumb_func_start ScrCmd_clearflag +ScrCmd_clearflag: @ 0x080995B0 + push {lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl FlagClear + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end ScrCmd_clearflag + + thumb_func_start ScrCmd_checkflag +ScrCmd_checkflag: @ 0x080995C4 + push {r4, lr} + adds r4, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl FlagGet + strb r0, [r4, #2] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_checkflag + + thumb_func_start ScrCmd_incrementgamestat +ScrCmd_incrementgamestat: @ 0x080995E0 + push {lr} + ldr r1, [r0, #8] + ldrb r2, [r1] + adds r1, #1 + str r1, [r0, #8] + adds r0, r2, #0 + bl IncrementGameStat + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_incrementgamestat + + thumb_func_start ScrCmd_animateflash +ScrCmd_animateflash: @ 0x080995F8 + push {lr} + ldr r1, [r0, #8] + ldrb r2, [r1] + adds r1, #1 + str r1, [r0, #8] + adds r0, r2, #0 + bl sub_080AF998 + bl ScriptContext1_Stop + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_animateflash + + thumb_func_start ScrCmd_setflashradius +ScrCmd_setflashradius: @ 0x08099614 + push {lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl Overworld_SetFlashLevel + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end ScrCmd_setflashradius + + thumb_func_start IsPaletteNotActive +IsPaletteNotActive: @ 0x08099630 + push {lr} + ldr r0, _08099644 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08099648 + movs r0, #0 + b _0809964A + .align 2, 0 +_08099644: .4byte 0x02037C74 +_08099648: + movs r0, #1 +_0809964A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsPaletteNotActive + + thumb_func_start ScrCmd_fadescreen +ScrCmd_fadescreen: @ 0x08099650 + push {r4, lr} + adds r4, r0, #0 + ldr r1, [r4, #8] + ldrb r0, [r1] + adds r1, #1 + str r1, [r4, #8] + movs r1, #0 + bl FadeScreen + ldr r1, _08099674 + adds r0, r4, #0 + bl SetupNativeScript + movs r0, #1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08099674: .4byte 0x08099631 + thumb_func_end ScrCmd_fadescreen + + thumb_func_start ScrCmd_fadescreenspeed +ScrCmd_fadescreenspeed: @ 0x08099678 + push {r4, lr} + adds r4, r0, #0 + ldr r2, [r4, #8] + ldrb r0, [r2] + adds r2, #1 + str r2, [r4, #8] + ldrb r1, [r2] + adds r2, #1 + str r2, [r4, #8] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + bl FadeScreen + ldr r1, _080996A4 + adds r0, r4, #0 + bl SetupNativeScript + movs r0, #1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080996A4: .4byte 0x08099631 + thumb_func_end ScrCmd_fadescreenspeed + + thumb_func_start ScrCmd_fadescreenswapbuffers +ScrCmd_fadescreenswapbuffers: @ 0x080996A8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #8] + ldrb r4, [r0] + adds r0, #1 + str r0, [r5, #8] + cmp r4, #1 + beq _080996C6 + cmp r4, #1 + bgt _080996C2 + cmp r4, #0 + beq _080996E8 + b _080996C6 +_080996C2: + cmp r4, #2 + beq _080996E8 +_080996C6: + ldr r0, _080996DC + ldr r1, _080996E0 + ldr r2, _080996E4 + bl CpuSet + adds r0, r4, #0 + movs r1, #0 + bl FadeScreen + b _080996FA + .align 2, 0 +_080996DC: .4byte 0x020373B4 +_080996E0: .4byte 0x02037C88 +_080996E4: .4byte 0x04000100 +_080996E8: + ldr r0, _0809970C + ldr r1, _08099710 + ldr r2, _08099714 + bl CpuSet + adds r0, r4, #0 + movs r1, #0 + bl FadeScreen +_080996FA: + ldr r1, _08099718 + adds r0, r5, #0 + bl SetupNativeScript + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0809970C: .4byte 0x02037C88 +_08099710: .4byte 0x020373B4 +_08099714: .4byte 0x04000100 +_08099718: .4byte 0x08099631 + thumb_func_end ScrCmd_fadescreenswapbuffers + + thumb_func_start RunPauseTimer +RunPauseTimer: @ 0x0809971C + push {lr} + ldr r1, _08099730 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08099734 + movs r0, #0 + b _08099736 + .align 2, 0 +_08099730: .4byte 0x02037268 +_08099734: + movs r0, #1 +_08099736: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end RunPauseTimer + + thumb_func_start ScrCmd_delay +ScrCmd_delay: @ 0x0809973C + push {r4, lr} + adds r4, r0, #0 + bl ScriptReadHalfword + ldr r1, _08099758 + strh r0, [r1] + ldr r1, _0809975C + adds r0, r4, #0 + bl SetupNativeScript + movs r0, #1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08099758: .4byte 0x02037268 +_0809975C: .4byte 0x0809971D + thumb_func_end ScrCmd_delay + + thumb_func_start ScrCmd_initclock +ScrCmd_initclock: @ 0x08099760 + push {r4, r5, lr} + adds r5, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl RtcInitLocalTimeOffset + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end ScrCmd_initclock + + thumb_func_start ScrCmd_dotimebasedevents +ScrCmd_dotimebasedevents: @ 0x08099798 + push {lr} + bl DoTimeBasedEvents + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end ScrCmd_dotimebasedevents + + thumb_func_start ScrCmd_gettime +ScrCmd_gettime: @ 0x080997A4 + push {lr} + bl RtcCalcLocalTime + ldr r2, _080997CC + ldr r1, _080997D0 + movs r0, #2 + ldrsb r0, [r1, r0] + strh r0, [r2] + ldr r2, _080997D4 + movs r0, #3 + ldrsb r0, [r1, r0] + strh r0, [r2] + ldr r2, _080997D8 + movs r0, #4 + ldrsb r0, [r1, r0] + strh r0, [r2] + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_080997CC: .4byte 0x02037278 +_080997D0: .4byte 0x03005A50 +_080997D4: .4byte 0x0203727A +_080997D8: .4byte 0x0203727C + thumb_func_end ScrCmd_gettime + + thumb_func_start ScrCmd_setweather +ScrCmd_setweather: @ 0x080997DC + push {lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl SetSav1Weather + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end ScrCmd_setweather + + thumb_func_start ScrCmd_doweather +ScrCmd_doweather: @ 0x080997F8 + push {lr} + bl SetSav1WeatherFromCurrMapHeader + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end ScrCmd_doweather + + thumb_func_start ScrCmd_resetweather +ScrCmd_resetweather: @ 0x08099804 + push {lr} + bl DoCurrentWeather + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end ScrCmd_resetweather + + thumb_func_start ScrCmd_setstepcallback +ScrCmd_setstepcallback: @ 0x08099810 + push {lr} + ldr r1, [r0, #8] + ldrb r2, [r1] + adds r1, #1 + str r1, [r0, #8] + adds r0, r2, #0 + bl ActivatePerStepCallback + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_setstepcallback + + thumb_func_start ScrCmd_setmaplayoutindex +ScrCmd_setmaplayoutindex: @ 0x08099828 + push {lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl SetCurrentMapLayout + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end ScrCmd_setmaplayoutindex + + thumb_func_start ScrCmd_warp +ScrCmd_warp: @ 0x08099844 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #4 + adds r5, r0, #0 + ldr r0, [r5, #8] + ldrb r1, [r0] + mov sb, r1 + adds r0, #1 + str r0, [r5, #8] + ldrb r1, [r0] + mov r8, r1 + adds r1, r0, #1 + str r1, [r5, #8] + ldrb r6, [r0, #1] + adds r1, #1 + str r1, [r5, #8] + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + mov r1, sb + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov sb, r1 + mov r1, r8 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov r8, r1 + lsls r6, r6, #0x18 + asrs r6, r6, #0x18 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + str r0, [sp] + mov r0, sb + adds r2, r6, #0 + adds r3, r4, #0 + bl SetWarpDestination + bl DoWarp + bl ResetInitialPlayerAvatarState + movs r0, #1 + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_warp + + thumb_func_start ScrCmd_warpsilent +ScrCmd_warpsilent: @ 0x080998CC + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #4 + adds r5, r0, #0 + ldr r0, [r5, #8] + ldrb r1, [r0] + mov sb, r1 + adds r0, #1 + str r0, [r5, #8] + ldrb r1, [r0] + mov r8, r1 + adds r1, r0, #1 + str r1, [r5, #8] + ldrb r6, [r0, #1] + adds r1, #1 + str r1, [r5, #8] + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + mov r1, sb + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov sb, r1 + mov r1, r8 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov r8, r1 + lsls r6, r6, #0x18 + asrs r6, r6, #0x18 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + str r0, [sp] + mov r0, sb + adds r2, r6, #0 + adds r3, r4, #0 + bl SetWarpDestination + bl DoDiveWarp + bl ResetInitialPlayerAvatarState + movs r0, #1 + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_warpsilent + + thumb_func_start ScrCmd_warpdoor +ScrCmd_warpdoor: @ 0x08099954 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #4 + adds r5, r0, #0 + ldr r0, [r5, #8] + ldrb r1, [r0] + mov sb, r1 + adds r0, #1 + str r0, [r5, #8] + ldrb r1, [r0] + mov r8, r1 + adds r1, r0, #1 + str r1, [r5, #8] + ldrb r6, [r0, #1] + adds r1, #1 + str r1, [r5, #8] + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + mov r1, sb + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov sb, r1 + mov r1, r8 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov r8, r1 + lsls r6, r6, #0x18 + asrs r6, r6, #0x18 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + str r0, [sp] + mov r0, sb + adds r2, r6, #0 + adds r3, r4, #0 + bl SetWarpDestination + bl DoDoorWarp + bl ResetInitialPlayerAvatarState + movs r0, #1 + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_warpdoor + + thumb_func_start ScrCmd_warphole +ScrCmd_warphole: @ 0x080999DC + push {r4, r5, r6, lr} + sub sp, #8 + ldr r1, [r0, #8] + ldrb r6, [r1] + adds r1, #1 + str r1, [r0, #8] + ldrb r5, [r1] + adds r1, #1 + str r1, [r0, #8] + mov r4, sp + adds r4, #6 + add r0, sp, #4 + adds r1, r4, #0 + bl PlayerGetDestCoords + cmp r6, #0xff + bne _08099A1A + cmp r5, #0xff + bne _08099A1A + add r0, sp, #4 + ldrh r0, [r0] + subs r0, #7 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrh r1, [r4] + subs r1, #7 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl SetWarpDestinationToFixedHoleWarp + b _08099A3E +_08099A1A: + lsls r0, r6, #0x18 + asrs r0, r0, #0x18 + lsls r1, r5, #0x18 + asrs r1, r1, #0x18 + movs r2, #1 + rsbs r2, r2, #0 + add r3, sp, #4 + ldrb r3, [r3] + subs r3, #7 + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + ldrb r4, [r4] + subs r4, #7 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + str r4, [sp] + bl SetWarpDestination +_08099A3E: + bl DoFallWarp + bl ResetInitialPlayerAvatarState + movs r0, #1 + add sp, #8 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end ScrCmd_warphole + + thumb_func_start ScrCmd_warpteleport +ScrCmd_warpteleport: @ 0x08099A50 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #4 + adds r5, r0, #0 + ldr r0, [r5, #8] + ldrb r1, [r0] + mov sb, r1 + adds r0, #1 + str r0, [r5, #8] + ldrb r1, [r0] + mov r8, r1 + adds r1, r0, #1 + str r1, [r5, #8] + ldrb r6, [r0, #1] + adds r1, #1 + str r1, [r5, #8] + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + mov r1, sb + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov sb, r1 + mov r1, r8 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov r8, r1 + lsls r6, r6, #0x18 + asrs r6, r6, #0x18 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + str r0, [sp] + mov r0, sb + adds r2, r6, #0 + adds r3, r4, #0 + bl SetWarpDestination + bl sub_080AF144 + bl ResetInitialPlayerAvatarState + movs r0, #1 + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_warpteleport + + thumb_func_start ScrCmd_warpD7 +ScrCmd_warpD7: @ 0x08099AD8 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #4 + adds r5, r0, #0 + ldr r0, [r5, #8] + ldrb r1, [r0] + mov sb, r1 + adds r0, #1 + str r0, [r5, #8] + ldrb r1, [r0] + mov r8, r1 + adds r1, r0, #1 + str r1, [r5, #8] + ldrb r6, [r0, #1] + adds r1, #1 + str r1, [r5, #8] + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + mov r1, sb + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov sb, r1 + mov r1, r8 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov r8, r1 + lsls r6, r6, #0x18 + asrs r6, r6, #0x18 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + str r0, [sp] + mov r0, sb + adds r2, r6, #0 + adds r3, r4, #0 + bl SetWarpDestination + bl sub_080AF178 + bl ResetInitialPlayerAvatarState + movs r0, #1 + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_warpD7 + + thumb_func_start ScrCmd_setwarp +ScrCmd_setwarp: @ 0x08099B60 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #4 + adds r5, r0, #0 + ldr r0, [r5, #8] + ldrb r1, [r0] + mov sb, r1 + adds r0, #1 + str r0, [r5, #8] + ldrb r1, [r0] + mov r8, r1 + adds r1, r0, #1 + str r1, [r5, #8] + ldrb r6, [r0, #1] + adds r1, #1 + str r1, [r5, #8] + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + mov r1, sb + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov sb, r1 + mov r1, r8 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov r8, r1 + lsls r6, r6, #0x18 + asrs r6, r6, #0x18 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + str r0, [sp] + mov r0, sb + adds r2, r6, #0 + adds r3, r4, #0 + bl SetWarpDestination + movs r0, #0 + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_setwarp + + thumb_func_start ScrCmd_setdynamicwarp +ScrCmd_setdynamicwarp: @ 0x08099BE0 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #8 + adds r5, r0, #0 + ldr r0, [r5, #8] + ldrb r1, [r0] + mov sb, r1 + adds r0, #1 + str r0, [r5, #8] + ldrb r1, [r0] + mov r8, r1 + adds r1, r0, #1 + str r1, [r5, #8] + ldrb r6, [r0, #1] + adds r1, #1 + str r1, [r5, #8] + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + mov r1, sb + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov sb, r1 + mov r1, r8 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov r8, r1 + lsls r6, r6, #0x18 + asrs r6, r6, #0x18 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + str r4, [sp] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + str r0, [sp, #4] + movs r0, #0 + mov r1, sb + mov r2, r8 + adds r3, r6, #0 + bl SetDynamicWarpWithCoords + movs r0, #0 + add sp, #8 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_setdynamicwarp + + thumb_func_start ScrCmd_setdivewarp +ScrCmd_setdivewarp: @ 0x08099C64 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #4 + adds r5, r0, #0 + ldr r0, [r5, #8] + ldrb r1, [r0] + mov sb, r1 + adds r0, #1 + str r0, [r5, #8] + ldrb r1, [r0] + mov r8, r1 + adds r1, r0, #1 + str r1, [r5, #8] + ldrb r6, [r0, #1] + adds r1, #1 + str r1, [r5, #8] + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + mov r1, sb + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov sb, r1 + mov r1, r8 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov r8, r1 + lsls r6, r6, #0x18 + asrs r6, r6, #0x18 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + str r0, [sp] + mov r0, sb + adds r2, r6, #0 + adds r3, r4, #0 + bl SetFixedDiveWarp + movs r0, #0 + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_setdivewarp + + thumb_func_start ScrCmd_setholewarp +ScrCmd_setholewarp: @ 0x08099CE4 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #4 + adds r5, r0, #0 + ldr r0, [r5, #8] + ldrb r1, [r0] + mov sb, r1 + adds r0, #1 + str r0, [r5, #8] + ldrb r1, [r0] + mov r8, r1 + adds r1, r0, #1 + str r1, [r5, #8] + ldrb r6, [r0, #1] + adds r1, #1 + str r1, [r5, #8] + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + mov r1, sb + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov sb, r1 + mov r1, r8 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov r8, r1 + lsls r6, r6, #0x18 + asrs r6, r6, #0x18 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + str r0, [sp] + mov r0, sb + adds r2, r6, #0 + adds r3, r4, #0 + bl SetFixedHoleWarp + movs r0, #0 + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_setholewarp + + thumb_func_start ScrCmd_setescapewarp +ScrCmd_setescapewarp: @ 0x08099D64 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #4 + adds r5, r0, #0 + ldr r0, [r5, #8] + ldrb r1, [r0] + mov sb, r1 + adds r0, #1 + str r0, [r5, #8] + ldrb r1, [r0] + mov r8, r1 + adds r1, r0, #1 + str r1, [r5, #8] + ldrb r6, [r0, #1] + adds r1, #1 + str r1, [r5, #8] + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + mov r1, sb + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov sb, r1 + mov r1, r8 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov r8, r1 + lsls r6, r6, #0x18 + asrs r6, r6, #0x18 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + str r0, [sp] + mov r0, sb + adds r2, r6, #0 + adds r3, r4, #0 + bl SetEscapeWarp + movs r0, #0 + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_setescapewarp + + thumb_func_start ScrCmd_getplayerxy +ScrCmd_getplayerxy: @ 0x08099DE4 + push {r4, r5, lr} + adds r4, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetVarPointer + adds r5, r0, #0 + adds r0, r4, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetVarPointer + ldr r2, _08099E1C + ldr r1, [r2] + ldrh r1, [r1] + strh r1, [r5] + ldr r1, [r2] + ldrh r1, [r1, #2] + strh r1, [r0] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08099E1C: .4byte 0x03005AEC + thumb_func_end ScrCmd_getplayerxy + + thumb_func_start ScrCmd_getpartysize +ScrCmd_getpartysize: @ 0x08099E20 + push {r4, lr} + ldr r4, _08099E38 + bl CalculatePlayerPartyCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08099E38: .4byte 0x02037290 + thumb_func_end ScrCmd_getpartysize + + thumb_func_start ScrCmd_playse +ScrCmd_playse: @ 0x08099E3C + push {lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl PlaySE + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end ScrCmd_playse + + thumb_func_start WaitForSoundEffectFinish +WaitForSoundEffectFinish: @ 0x08099E50 + push {lr} + bl IsSEPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08099E60 + movs r0, #0 + b _08099E62 +_08099E60: + movs r0, #1 +_08099E62: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end WaitForSoundEffectFinish + + thumb_func_start ScrCmd_waitse +ScrCmd_waitse: @ 0x08099E68 + push {lr} + ldr r1, _08099E78 + bl SetupNativeScript + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 +_08099E78: .4byte 0x08099E51 + thumb_func_end ScrCmd_waitse + + thumb_func_start ScrCmd_playfanfare +ScrCmd_playfanfare: @ 0x08099E7C + push {lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl PlayFanfare + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end ScrCmd_playfanfare + + thumb_func_start WaitForFanfareFinish +WaitForFanfareFinish: @ 0x08099E90 + push {lr} + bl IsFanfareTaskInactive + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end WaitForFanfareFinish + + thumb_func_start ScrCmd_waitfanfare +ScrCmd_waitfanfare: @ 0x08099EA0 + push {lr} + ldr r1, _08099EB0 + bl SetupNativeScript + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 +_08099EB0: .4byte 0x08099E91 + thumb_func_end ScrCmd_waitfanfare + + thumb_func_start ScrCmd_playbgm +ScrCmd_playbgm: @ 0x08099EB4 + push {r4, r5, lr} + adds r4, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + adds r5, r2, #0 + ldr r0, [r4, #8] + ldrb r1, [r0] + adds r0, #1 + str r0, [r4, #8] + cmp r1, #1 + bne _08099ED4 + adds r0, r2, #0 + bl Overworld_SetSavedMusic +_08099ED4: + adds r0, r5, #0 + bl PlayNewMapMusic + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_playbgm + + thumb_func_start ScrCmd_savebgm +ScrCmd_savebgm: @ 0x08099EE4 + push {lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl Overworld_SetSavedMusic + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end ScrCmd_savebgm + + thumb_func_start ScrCmd_fadedefaultbgm +ScrCmd_fadedefaultbgm: @ 0x08099EF8 + push {lr} + bl Overworld_ChangeMusicToDefault + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end ScrCmd_fadedefaultbgm + + thumb_func_start ScrCmd_fadenewbgm +ScrCmd_fadenewbgm: @ 0x08099F04 + push {lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl Overworld_ChangeMusicTo + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end ScrCmd_fadenewbgm + + thumb_func_start ScrCmd_fadeoutbgm +ScrCmd_fadeoutbgm: @ 0x08099F18 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #8] + ldrb r1, [r0] + adds r0, #1 + str r0, [r4, #8] + cmp r1, #0 + beq _08099F32 + lsls r0, r1, #0x1a + lsrs r0, r0, #0x18 + bl FadeInBGM + b _08099F38 +_08099F32: + movs r0, #4 + bl FadeInBGM +_08099F38: + ldr r1, _08099F48 + adds r0, r4, #0 + bl SetupNativeScript + movs r0, #1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08099F48: .4byte 0x080A2AC9 + thumb_func_end ScrCmd_fadeoutbgm + + thumb_func_start ScrCmd_fadeinbgm +ScrCmd_fadeinbgm: @ 0x08099F4C + push {lr} + ldr r1, [r0, #8] + ldrb r2, [r1] + adds r1, #1 + str r1, [r0, #8] + cmp r2, #0 + beq _08099F64 + lsls r0, r2, #0x1a + lsrs r0, r0, #0x18 + bl FadeOutBGM + b _08099F6A +_08099F64: + movs r0, #4 + bl FadeOutBGM +_08099F6A: + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end ScrCmd_fadeinbgm + + thumb_func_start ScrCmd_applymovement +ScrCmd_applymovement: @ 0x08099F70 + push {r4, r5, lr} + adds r5, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + bl ScriptReadWord + adds r3, r0, #0 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08099FAC + ldr r2, [r1] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + bl ScriptMovement_StartObjectMovementScript + ldr r0, _08099FB0 + strh r4, [r0] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08099FAC: .4byte 0x03005AEC +_08099FB0: .4byte 0x0203726A + thumb_func_end ScrCmd_applymovement + + thumb_func_start ScrCmd_applymovement_at +ScrCmd_applymovement_at: @ 0x08099FB4 + push {r4, r5, lr} + adds r5, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + bl ScriptReadWord + adds r3, r0, #0 + ldr r0, [r5, #8] + ldrb r2, [r0] + adds r0, #1 + str r0, [r5, #8] + ldrb r1, [r0] + adds r0, #1 + str r0, [r5, #8] + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl ScriptMovement_StartObjectMovementScript + ldr r0, _08099FF4 + strh r4, [r0] + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08099FF4: .4byte 0x0203726A + thumb_func_end ScrCmd_applymovement_at + + thumb_func_start WaitForMovementFinish +WaitForMovementFinish: @ 0x08099FF8 + push {lr} + ldr r0, _0809A014 + ldrb r0, [r0] + ldr r1, _0809A018 + ldrb r1, [r1] + ldr r2, _0809A01C + ldrb r2, [r2] + bl ScriptMovement_IsObjectMovementFinished + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0809A014: .4byte 0x0203726A +_0809A018: .4byte 0x0203726E +_0809A01C: .4byte 0x0203726C + thumb_func_end WaitForMovementFinish + + thumb_func_start ScrCmd_waitmovement +ScrCmd_waitmovement: @ 0x0809A020 + push {r4, lr} + adds r4, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + beq _0809A03C + ldr r0, _0809A060 + strh r1, [r0] +_0809A03C: + ldr r1, _0809A064 + ldr r0, _0809A068 + ldr r2, [r0] + movs r0, #4 + ldrsb r0, [r2, r0] + strh r0, [r1] + ldr r1, _0809A06C + movs r0, #5 + ldrsb r0, [r2, r0] + strh r0, [r1] + ldr r1, _0809A070 + adds r0, r4, #0 + bl SetupNativeScript + movs r0, #1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809A060: .4byte 0x0203726A +_0809A064: .4byte 0x0203726C +_0809A068: .4byte 0x03005AEC +_0809A06C: .4byte 0x0203726E +_0809A070: .4byte 0x08099FF9 + thumb_func_end ScrCmd_waitmovement + + thumb_func_start ScrCmd_waitmovement_at +ScrCmd_waitmovement_at: @ 0x0809A074 + push {r4, lr} + adds r4, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + beq _0809A090 + ldr r0, _0809A0B8 + strh r1, [r0] +_0809A090: + ldr r0, [r4, #8] + ldrb r2, [r0] + adds r0, #1 + str r0, [r4, #8] + ldrb r1, [r0] + adds r0, #1 + str r0, [r4, #8] + ldr r0, _0809A0BC + strh r2, [r0] + ldr r0, _0809A0C0 + strh r1, [r0] + ldr r1, _0809A0C4 + adds r0, r4, #0 + bl SetupNativeScript + movs r0, #1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809A0B8: .4byte 0x0203726A +_0809A0BC: .4byte 0x0203726C +_0809A0C0: .4byte 0x0203726E +_0809A0C4: .4byte 0x08099FF9 + thumb_func_end ScrCmd_waitmovement_at + + thumb_func_start ScrCmd_removeobject +ScrCmd_removeobject: @ 0x0809A0C8 + push {lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0809A0EC + ldr r2, [r1] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + bl RemoveEventObjectByLocalIdAndMap + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0809A0EC: .4byte 0x03005AEC + thumb_func_end ScrCmd_removeobject + + thumb_func_start ScrCmd_removeobject_at +ScrCmd_removeobject_at: @ 0x0809A0F0 + push {r4, lr} + adds r4, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + ldr r3, [r4, #8] + ldrb r2, [r3] + adds r3, #1 + str r3, [r4, #8] + ldrb r1, [r3] + adds r3, #1 + str r3, [r4, #8] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl RemoveEventObjectByLocalIdAndMap + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_removeobject_at + + thumb_func_start ScrCmd_addobject +ScrCmd_addobject: @ 0x0809A120 + push {lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0809A144 + ldr r2, [r1] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + bl TrySpawnEventObject + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0809A144: .4byte 0x03005AEC + thumb_func_end ScrCmd_addobject + + thumb_func_start ScrCmd_addobject_at +ScrCmd_addobject_at: @ 0x0809A148 + push {r4, lr} + adds r4, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + ldr r3, [r4, #8] + ldrb r2, [r3] + adds r3, #1 + str r3, [r4, #8] + ldrb r1, [r3] + adds r3, #1 + str r3, [r4, #8] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl TrySpawnEventObject + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_addobject_at + + thumb_func_start ScrCmd_setobjectxy +ScrCmd_setobjectxy: @ 0x0809A178 + push {r4, r5, r6, lr} + sub sp, #4 + adds r6, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + adds r0, r6, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r6, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r1, _0809A1DC + ldr r2, [r1] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + str r0, [sp] + adds r0, r5, #0 + adds r3, r4, #0 + bl TryMoveEventObjectToMapCoords + movs r0, #0 + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0809A1DC: .4byte 0x03005AEC + thumb_func_end ScrCmd_setobjectxy + + thumb_func_start ScrCmd_setobjectxyperm +ScrCmd_setobjectxyperm: @ 0x0809A1E0 + push {r4, r5, r6, lr} + adds r6, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + adds r0, r6, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r6, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r2, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl Overworld_SetEventObjTemplateCoords + movs r0, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_setobjectxyperm + + thumb_func_start ScrCmd_moveobjectoffscreen +ScrCmd_moveobjectoffscreen: @ 0x0809A238 + push {lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0809A25C + ldr r2, [r1] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + bl TryOverrideEventObjectTemplateCoords + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0809A25C: .4byte 0x03005AEC + thumb_func_end ScrCmd_moveobjectoffscreen + + thumb_func_start ScrCmd_showobject_at +ScrCmd_showobject_at: @ 0x0809A260 + push {r4, lr} + adds r4, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + ldr r3, [r4, #8] + ldrb r2, [r3] + adds r3, #1 + str r3, [r4, #8] + ldrb r1, [r3] + adds r3, #1 + str r3, [r4, #8] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r3, #0 + bl npc_by_local_id_and_map_set_field_1_bit_x20 + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end ScrCmd_showobject_at + + thumb_func_start ScrCmd_hideobject_at +ScrCmd_hideobject_at: @ 0x0809A290 + push {r4, lr} + adds r4, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + ldr r3, [r4, #8] + ldrb r2, [r3] + adds r3, #1 + str r3, [r4, #8] + ldrb r1, [r3] + adds r3, #1 + str r3, [r4, #8] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r3, #1 + bl npc_by_local_id_and_map_set_field_1_bit_x20 + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end ScrCmd_hideobject_at + + thumb_func_start ScrCmd_setobjectpriority +ScrCmd_setobjectpriority: @ 0x0809A2C0 + push {r4, r5, lr} + adds r5, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + ldr r3, [r5, #8] + ldrb r2, [r3] + adds r3, #1 + str r3, [r5, #8] + ldrb r1, [r3] + adds r4, r3, #1 + str r4, [r5, #8] + ldrb r3, [r3, #1] + adds r4, #1 + str r4, [r5, #8] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r3, #0x53 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + bl sub_0808E0FC + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_setobjectpriority + + thumb_func_start ScrCmd_resetobjectpriority +ScrCmd_resetobjectpriority: @ 0x0809A2FC + push {r4, lr} + adds r4, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + ldr r3, [r4, #8] + ldrb r2, [r3] + adds r3, #1 + str r3, [r4, #8] + ldrb r1, [r3] + adds r3, #1 + str r3, [r4, #8] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_0808E154 + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_resetobjectpriority + + thumb_func_start ScrCmd_faceplayer +ScrCmd_faceplayer: @ 0x0809A32C + push {r4, lr} + ldr r2, _0809A35C + ldr r0, _0809A360 + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, r0, r2 + ldrb r0, [r4] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _0809A354 + bl GetPlayerFacingDirection + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectFaceOppositeDirection +_0809A354: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809A35C: .4byte 0x02036FF0 +_0809A360: .4byte 0x03005B50 + thumb_func_end ScrCmd_faceplayer + + thumb_func_start ScrCmd_turnobject +ScrCmd_turnobject: @ 0x0809A364 + push {r4, lr} + adds r4, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + ldr r1, [r4, #8] + ldrb r3, [r1] + adds r1, #1 + str r1, [r4, #8] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0809A394 + ldr r2, [r1] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + bl EventObjectTurnByLocalIdAndMap + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809A394: .4byte 0x03005AEC + thumb_func_end ScrCmd_turnobject + + thumb_func_start ScrCmd_setobjectmovementtype +ScrCmd_setobjectmovementtype: @ 0x0809A398 + push {r4, lr} + adds r4, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + ldr r2, [r4, #8] + ldrb r1, [r2] + adds r2, #1 + str r2, [r4, #8] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl Overworld_SetEventObjTemplateMovementType + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end ScrCmd_setobjectmovementtype + + thumb_func_start ScrCmd_createvobject +ScrCmd_createvobject: @ 0x0809A3C0 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #8 + adds r5, r0, #0 + ldr r0, [r5, #8] + ldrb r1, [r0] + mov r8, r1 + adds r0, #1 + str r0, [r5, #8] + ldrb r6, [r0] + adds r0, #1 + str r0, [r5, #8] + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r3, r0, #0 + ldr r0, [r5, #8] + ldrb r2, [r0] + adds r0, #1 + str r0, [r5, #8] + ldrb r1, [r0] + adds r0, #1 + str r0, [r5, #8] + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + str r2, [sp] + str r1, [sp, #4] + mov r0, r8 + adds r1, r6, #0 + adds r2, r4, #0 + bl sprite_new + movs r0, #0 + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end ScrCmd_createvobject + + thumb_func_start ScrCmd_turnvobject +ScrCmd_turnvobject: @ 0x0809A430 + push {lr} + ldr r2, [r0, #8] + ldrb r3, [r2] + adds r2, #1 + str r2, [r0, #8] + ldrb r1, [r2] + adds r2, #1 + str r2, [r0, #8] + adds r0, r3, #0 + bl sub_080974E8 + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end ScrCmd_turnvobject + + thumb_func_start ScrCmd_lockall +ScrCmd_lockall: @ 0x0809A44C + push {r4, lr} + adds r4, r0, #0 + bl IsUpdateLinkStateCBActive + cmp r0, #0 + bne _0809A46C + bl ScriptFreezeEventObjects + ldr r1, _0809A468 + adds r0, r4, #0 + bl SetupNativeScript + movs r0, #1 + b _0809A46E + .align 2, 0 +_0809A468: .4byte 0x08097D4D +_0809A46C: + movs r0, #0 +_0809A46E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end ScrCmd_lockall + + thumb_func_start ScrCmd_lock +ScrCmd_lock: @ 0x0809A474 + push {r4, lr} + adds r4, r0, #0 + bl IsUpdateLinkStateCBActive + cmp r0, #0 + beq _0809A484 + movs r0, #0 + b _0809A4C2 +_0809A484: + ldr r2, _0809A4A8 + ldr r0, _0809A4AC + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _0809A4B4 + bl LockSelectedEventObject + ldr r1, _0809A4B0 + adds r0, r4, #0 + bl SetupNativeScript + b _0809A4C0 + .align 2, 0 +_0809A4A8: .4byte 0x02036FF0 +_0809A4AC: .4byte 0x03005B50 +_0809A4B0: .4byte 0x08097E05 +_0809A4B4: + bl ScriptFreezeEventObjects + ldr r1, _0809A4C8 + adds r0, r4, #0 + bl SetupNativeScript +_0809A4C0: + movs r0, #1 +_0809A4C2: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809A4C8: .4byte 0x08097D4D + thumb_func_end ScrCmd_lock + + thumb_func_start ScrCmd_releaseall +ScrCmd_releaseall: @ 0x0809A4CC + push {lr} + bl HideFieldMessageBox + movs r0, #0xff + movs r1, #0 + movs r2, #0 + bl GetEventObjectIdByLocalIdAndMap + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0809A500 + adds r0, r0, r1 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + bl sub_080D2C2C + bl UnfreezeEventObjects + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0809A500: .4byte 0x02036FF0 + thumb_func_end ScrCmd_releaseall + + thumb_func_start ScrCmd_release +ScrCmd_release: @ 0x0809A504 + push {r4, lr} + bl HideFieldMessageBox + ldr r4, _0809A554 + ldr r0, _0809A558 + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r4 + ldrb r0, [r1] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _0809A526 + adds r0, r1, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 +_0809A526: + movs r0, #0xff + movs r1, #0 + movs r2, #0 + bl GetEventObjectIdByLocalIdAndMap + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + bl sub_080D2C2C + bl UnfreezeEventObjects + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809A554: .4byte 0x02036FF0 +_0809A558: .4byte 0x03005B50 + thumb_func_end ScrCmd_release + + thumb_func_start ScrCmd_message +ScrCmd_message: @ 0x0809A55C + push {r4, lr} + adds r4, r0, #0 + bl ScriptReadWord + cmp r0, #0 + bne _0809A56A + ldr r0, [r4, #0x64] +_0809A56A: + bl ShowFieldMessage + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_message + + thumb_func_start ScrCmd_pokenavcall +ScrCmd_pokenavcall: @ 0x0809A578 + push {r4, lr} + adds r4, r0, #0 + bl ScriptReadWord + cmp r0, #0 + bne _0809A586 + ldr r0, [r4, #0x64] +_0809A586: + bl sub_08097BC0 + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_pokenavcall + + thumb_func_start ScrCmd_messageautoscroll +ScrCmd_messageautoscroll: @ 0x0809A594 + push {r4, lr} + adds r4, r0, #0 + bl ScriptReadWord + adds r3, r0, #0 + cmp r3, #0 + bne _0809A5A4 + ldr r3, [r4, #0x64] +_0809A5A4: + ldr r2, _0809A5C0 + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r3, #0 + bl ShowFieldAutoScrollMessage + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809A5C0: .4byte 0x030030B4 + thumb_func_end ScrCmd_messageautoscroll + + thumb_func_start ScrCmd_cmdDB +ScrCmd_cmdDB: @ 0x0809A5C4 + push {r4, r5, lr} + sub sp, #0xc + adds r5, r0, #0 + bl ScriptReadWord + adds r4, r0, #0 + cmp r4, #0 + bne _0809A5D6 + ldr r4, [r5, #0x64] +_0809A5D6: + bl sub_08196F98 + movs r0, #0 + movs r1, #1 + bl ClearDialogWindowAndFrame + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + movs r1, #1 + adds r2, r4, #0 + movs r3, #0 + bl AddTextPrinterParameterized + movs r0, #0 + add sp, #0xc + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end ScrCmd_cmdDB + + thumb_func_start ScrCmd_waitmessage +ScrCmd_waitmessage: @ 0x0809A600 + push {lr} + ldr r1, _0809A610 + bl SetupNativeScript + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 +_0809A610: .4byte 0x08097CC5 + thumb_func_end ScrCmd_waitmessage + + thumb_func_start ScrCmd_closemessage +ScrCmd_closemessage: @ 0x0809A614 + push {lr} + bl HideFieldMessageBox + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end ScrCmd_closemessage + + thumb_func_start WaitForAorBPress +WaitForAorBPress: @ 0x0809A620 + push {lr} + ldr r0, _0809A63C + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0809A640 + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0809A640 + movs r0, #0 + b _0809A642 + .align 2, 0 +_0809A63C: .4byte 0x03002360 +_0809A640: + movs r0, #1 +_0809A642: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end WaitForAorBPress + + thumb_func_start ScrCmd_waitbuttonpress +ScrCmd_waitbuttonpress: @ 0x0809A648 + push {lr} + ldr r1, _0809A658 + bl SetupNativeScript + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 +_0809A658: .4byte 0x0809A621 + thumb_func_end ScrCmd_waitbuttonpress + + thumb_func_start ScrCmd_yesnobox +ScrCmd_yesnobox: @ 0x0809A65C + push {lr} + ldr r2, [r0, #8] + ldrb r3, [r2] + adds r2, #1 + str r2, [r0, #8] + ldrb r1, [r2] + adds r2, #1 + str r2, [r0, #8] + adds r0, r3, #0 + bl ScriptMenu_YesNo + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0809A67E + movs r0, #0 + b _0809A684 +_0809A67E: + bl ScriptContext1_Stop + movs r0, #1 +_0809A684: + pop {r1} + bx r1 + thumb_func_end ScrCmd_yesnobox + + thumb_func_start ScrCmd_multichoice +ScrCmd_multichoice: @ 0x0809A688 + push {r4, r5, lr} + ldr r2, [r0, #8] + ldrb r5, [r2] + adds r2, #1 + str r2, [r0, #8] + ldrb r1, [r2] + adds r3, r2, #1 + str r3, [r0, #8] + ldrb r2, [r2, #1] + adds r4, r3, #1 + str r4, [r0, #8] + ldrb r3, [r3, #1] + adds r4, #1 + str r4, [r0, #8] + adds r0, r5, #0 + bl ScriptMenu_Multichoice + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0809A6B6 + movs r0, #0 + b _0809A6BC +_0809A6B6: + bl ScriptContext1_Stop + movs r0, #1 +_0809A6BC: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_multichoice + + thumb_func_start ScrCmd_multichoicedefault +ScrCmd_multichoicedefault: @ 0x0809A6C4 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #4 + ldr r2, [r0, #8] + ldrb r1, [r2] + mov r8, r1 + adds r2, #1 + str r2, [r0, #8] + ldrb r1, [r2] + adds r3, r2, #1 + str r3, [r0, #8] + ldrb r2, [r2, #1] + adds r5, r3, #1 + str r5, [r0, #8] + ldrb r6, [r3, #1] + adds r4, r5, #1 + str r4, [r0, #8] + ldrb r3, [r5, #1] + adds r4, #1 + str r4, [r0, #8] + str r6, [sp] + mov r0, r8 + bl ScriptMenu_MultichoiceWithDefault + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0809A702 + movs r0, #0 + b _0809A708 +_0809A702: + bl ScriptContext1_Stop + movs r0, #1 +_0809A708: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end ScrCmd_multichoicedefault + + thumb_func_start ScrCmd_erasebox +ScrCmd_erasebox: @ 0x0809A714 + movs r0, #0 + bx lr + thumb_func_end ScrCmd_erasebox + + thumb_func_start ScrCmd_multichoicegrid +ScrCmd_multichoicegrid: @ 0x0809A718 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #4 + ldr r2, [r0, #8] + ldrb r1, [r2] + mov r8, r1 + adds r2, #1 + str r2, [r0, #8] + ldrb r1, [r2] + adds r3, r2, #1 + str r3, [r0, #8] + ldrb r2, [r2, #1] + adds r5, r3, #1 + str r5, [r0, #8] + ldrb r6, [r3, #1] + adds r4, r5, #1 + str r4, [r0, #8] + ldrb r3, [r5, #1] + adds r4, #1 + str r4, [r0, #8] + str r6, [sp] + mov r0, r8 + bl sp106_CreateStartMenu + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0809A756 + movs r0, #0 + b _0809A75C +_0809A756: + bl ScriptContext1_Stop + movs r0, #1 +_0809A75C: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end ScrCmd_multichoicegrid + + thumb_func_start ScrCmd_drawboxtext +ScrCmd_drawboxtext: @ 0x0809A768 + ldr r1, [r0, #8] + adds r1, #4 + str r1, [r0, #8] + movs r0, #0 + bx lr + .align 2, 0 + thumb_func_end ScrCmd_drawboxtext + + thumb_func_start ScrCmd_mossdeepgym2 +ScrCmd_mossdeepgym2: @ 0x0809A774 + ldr r1, [r0, #8] + adds r1, #4 + str r1, [r0, #8] + movs r0, #0 + bx lr + .align 2, 0 + thumb_func_end ScrCmd_mossdeepgym2 + + thumb_func_start ScrCmd_showmonpic +ScrCmd_showmonpic: @ 0x0809A780 + push {r4, lr} + adds r4, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r3, [r4, #8] + ldrb r1, [r3] + adds r3, #1 + str r3, [r4, #8] + ldrb r2, [r3] + adds r3, #1 + str r3, [r4, #8] + bl ScriptMenu_ShowPokemonPic + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_showmonpic + + thumb_func_start ScrCmd_hidemonpic +ScrCmd_hidemonpic: @ 0x0809A7B0 + push {r4, lr} + adds r4, r0, #0 + bl ScriptMenu_GetPicboxWaitFunc + adds r1, r0, #0 + cmp r1, #0 + beq _0809A7C8 + adds r0, r4, #0 + bl SetupNativeScript + movs r0, #1 + b _0809A7CA +_0809A7C8: + movs r0, #0 +_0809A7CA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end ScrCmd_hidemonpic + + thumb_func_start ScrCmd_showcontestwinner +ScrCmd_showcontestwinner: @ 0x0809A7D0 + push {lr} + ldr r1, [r0, #8] + ldrb r2, [r1] + adds r1, #1 + str r1, [r0, #8] + cmp r2, #0 + beq _0809A7E4 + adds r0, r2, #0 + bl sub_0812FDE0 +_0809A7E4: + bl ShowContestWinner + bl ScriptContext1_Stop + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_showcontestwinner + + thumb_func_start ScrCmd_braillemessage +ScrCmd_braillemessage: @ 0x0809A7F4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + bl ScriptReadWord + adds r1, r0, #0 + ldrb r0, [r1] + mov sb, r0 + ldrb r0, [r1, #1] + mov sl, r0 + ldrb r4, [r1, #2] + ldrb r5, [r1, #3] + ldrb r0, [r1, #4] + mov r8, r0 + ldrb r6, [r1, #5] + ldr r7, _0809A8DC + adds r1, #6 + adds r0, r7, #0 + bl StringExpandPlaceholders + mov r2, sb + adds r2, #1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r3, sl + adds r3, #1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r1, sb + subs r4, r4, r1 + subs r4, #1 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r0, sl + subs r5, r5, r0 + subs r5, #1 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + mov r0, r8 + subs r0, r0, r1 + mov r8, r0 + movs r1, #1 + rsbs r1, r1, #0 + add r8, r1 + mov r0, r8 + lsls r0, r0, #0x1b + lsrs r0, r0, #0x18 + mov r8, r0 + mov r1, sl + subs r6, r6, r1 + subs r6, #1 + lsls r6, r6, #0x1b + lsrs r6, r6, #0x18 + str r4, [sp] + str r5, [sp, #4] + movs r0, #0xf + str r0, [sp, #8] + movs r0, #1 + str r0, [sp, #0xc] + add r0, sp, #0x10 + movs r1, #0 + bl CreateWindowTemplate + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + str r0, [sp, #0x18] + str r1, [sp, #0x1c] + ldr r4, _0809A8E0 + add r0, sp, #0x18 + bl AddWindow + strb r0, [r4] + ldrb r0, [r4] + movs r1, #0x85 + lsls r1, r1, #2 + movs r2, #0xe0 + bl LoadUserWindowBorderGfx + ldrb r0, [r4] + movs r1, #0 + bl ClearStdWindowAndFrame + ldrb r0, [r4] + bl PutWindowTilemap + ldrb r0, [r4] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldrb r0, [r4] + str r6, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #6 + adds r2, r7, #0 + mov r3, r8 + bl AddTextPrinterParameterized + ldrb r0, [r4] + movs r1, #3 + bl CopyWindowToVram + movs r0, #0 + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0809A8DC: .4byte 0x02021C7C +_0809A8E0: .4byte 0x03000F30 + thumb_func_end ScrCmd_braillemessage + + thumb_func_start ScrCmd_mossdeepgym4 +ScrCmd_mossdeepgym4: @ 0x0809A8E4 + push {lr} + bl ScrCmd_bufferitemnameplural + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end ScrCmd_mossdeepgym4 + + thumb_func_start ScrCmd_vmessage +ScrCmd_vmessage: @ 0x0809A8F0 + push {lr} + bl ScriptReadWord + ldr r1, _0809A908 + ldr r1, [r1] + subs r0, r0, r1 + bl ShowFieldMessage + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0809A908: .4byte 0x02037264 + thumb_func_end ScrCmd_vmessage + + thumb_func_start ScrCmd_buffermovename +ScrCmd_buffermovename: @ 0x0809A90C + push {r4, lr} + ldr r1, [r0, #8] + ldrb r4, [r1] + adds r1, #1 + str r1, [r0, #8] + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _0809A948 + lsls r4, r4, #2 + adds r4, r4, r1 + ldr r2, [r4] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + ldr r0, _0809A94C + adds r1, r1, r0 + adds r0, r2, #0 + bl StringCopy + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809A948: .4byte 0x084E8918 +_0809A94C: .4byte 0x082EA31C + thumb_func_end ScrCmd_buffermovename + + thumb_func_start ScrCmd_bufferleadmonspeciesname +ScrCmd_bufferleadmonspeciesname: @ 0x0809A950 + push {r4, lr} + ldr r1, [r0, #8] + ldrb r2, [r1] + adds r1, #1 + str r1, [r0, #8] + ldr r0, _0809A994 + lsls r2, r2, #2 + adds r2, r2, r0 + ldr r4, [r2] + bl GetLeadMonIndex + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x64 + muls r0, r1, r0 + ldr r1, _0809A998 + adds r0, r0, r1 + movs r1, #0xb + movs r2, #0 + bl GetMonData + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + ldr r0, _0809A99C + adds r1, r1, r0 + adds r0, r4, #0 + bl StringCopy + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809A994: .4byte 0x084E8918 +_0809A998: .4byte 0x02024190 +_0809A99C: .4byte 0x082EA31C + thumb_func_end ScrCmd_bufferleadmonspeciesname + + thumb_func_start ScrCmd_bufferpartymonnick +ScrCmd_bufferpartymonnick: @ 0x0809A9A0 + push {r4, lr} + ldr r1, [r0, #8] + ldrb r4, [r1] + adds r1, #1 + str r1, [r0, #8] + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + muls r0, r1, r0 + ldr r1, _0809A9E0 + adds r0, r0, r1 + ldr r1, _0809A9E4 + lsls r4, r4, #2 + adds r4, r4, r1 + ldr r4, [r4] + movs r1, #2 + adds r2, r4, #0 + bl GetMonData + adds r0, r4, #0 + bl StringGetEnd10 + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809A9E0: .4byte 0x02024190 +_0809A9E4: .4byte 0x084E8918 + thumb_func_end ScrCmd_bufferpartymonnick + + thumb_func_start ScrCmd_bufferitemname +ScrCmd_bufferitemname: @ 0x0809A9E8 + push {r4, lr} + ldr r1, [r0, #8] + ldrb r4, [r1] + adds r1, #1 + str r1, [r0, #8] + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _0809AA18 + lsls r4, r4, #2 + adds r4, r4, r1 + ldr r1, [r4] + bl CopyItemName + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809AA18: .4byte 0x084E8918 + thumb_func_end ScrCmd_bufferitemname + + thumb_func_start ScrCmd_bufferspeciesname +ScrCmd_bufferspeciesname: @ 0x0809AA1C + push {r4, lr} + ldr r1, [r0, #8] + ldrb r4, [r1] + adds r1, #1 + str r1, [r0, #8] + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _0809AA58 + lsls r4, r4, #2 + adds r4, r4, r1 + ldr r2, [r4] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _0809AA5C + adds r1, r1, r0 + adds r0, r2, #0 + bl StringCopy + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809AA58: .4byte 0x084E8918 +_0809AA5C: .4byte 0x08580CD1 + thumb_func_end ScrCmd_bufferspeciesname + + thumb_func_start ScrCmd_bufferdecorationname +ScrCmd_bufferdecorationname: @ 0x0809AA60 + push {r4, lr} + ldr r1, [r0, #8] + ldrb r4, [r1] + adds r1, #1 + str r1, [r0, #8] + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r1, r0, #0 + lsls r1, r1, #0x10 + ldr r0, _0809AA94 + lsls r4, r4, #2 + adds r4, r4, r0 + ldr r0, [r4] + lsrs r1, r1, #0xd + ldr r2, _0809AA98 + adds r1, r1, r2 + bl StringCopy + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809AA94: .4byte 0x084E8918 +_0809AA98: .4byte 0x082EACC4 + thumb_func_end ScrCmd_bufferdecorationname + + thumb_func_start ScrCmd_buffernumberstring +ScrCmd_buffernumberstring: @ 0x0809AA9C + push {r4, r5, lr} + ldr r1, [r0, #8] + ldrb r5, [r1] + adds r1, #1 + str r1, [r0, #8] + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r4, #0 + bl CountDigits + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r0, _0809AADC + lsls r5, r5, #2 + adds r5, r5, r0 + ldr r0, [r5] + adds r1, r4, #0 + movs r2, #0 + bl ConvertIntToDecimalStringN + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0809AADC: .4byte 0x084E8918 + thumb_func_end ScrCmd_buffernumberstring + + thumb_func_start ScrCmd_bufferstdstring +ScrCmd_bufferstdstring: @ 0x0809AAE0 + push {r4, lr} + ldr r1, [r0, #8] + ldrb r4, [r1] + adds r1, #1 + str r1, [r0, #8] + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x10 + ldr r1, _0809AB18 + lsls r4, r4, #2 + adds r4, r4, r1 + ldr r2, [r4] + ldr r1, _0809AB1C + lsrs r0, r0, #0xe + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r2, #0 + bl StringCopy + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809AB18: .4byte 0x084E8918 +_0809AB1C: .4byte 0x085645A0 + thumb_func_end ScrCmd_bufferstdstring + + thumb_func_start ScrCmd_bufferstring +ScrCmd_bufferstring: @ 0x0809AB20 + push {r4, lr} + ldr r1, [r0, #8] + ldrb r4, [r1] + adds r1, #1 + str r1, [r0, #8] + bl ScriptReadWord + adds r1, r0, #0 + ldr r0, _0809AB44 + lsls r4, r4, #2 + adds r4, r4, r0 + ldr r0, [r4] + bl StringCopy + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809AB44: .4byte 0x084E8918 + thumb_func_end ScrCmd_bufferstring + + thumb_func_start ScrCmd_vloadword +ScrCmd_vloadword: @ 0x0809AB48 + push {lr} + bl ScriptReadWord + adds r1, r0, #0 + ldr r0, _0809AB64 + ldr r0, [r0] + subs r1, r1, r0 + ldr r0, _0809AB68 + bl StringExpandPlaceholders + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0809AB64: .4byte 0x02037264 +_0809AB68: .4byte 0x02021C7C + thumb_func_end ScrCmd_vloadword + + thumb_func_start ScrCmd_vbufferstring +ScrCmd_vbufferstring: @ 0x0809AB6C + push {r4, lr} + ldr r1, [r0, #8] + ldrb r4, [r1] + adds r1, #1 + str r1, [r0, #8] + bl ScriptReadWord + adds r1, r0, #0 + ldr r0, _0809AB98 + ldr r0, [r0] + subs r1, r1, r0 + ldr r0, _0809AB9C + lsls r4, r4, #2 + adds r4, r4, r0 + ldr r0, [r4] + bl StringCopy + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809AB98: .4byte 0x02037264 +_0809AB9C: .4byte 0x084E8918 + thumb_func_end ScrCmd_vbufferstring + + thumb_func_start ScrCmd_bufferboxname +ScrCmd_bufferboxname: @ 0x0809ABA0 + push {r4, lr} + ldr r1, [r0, #8] + ldrb r4, [r1] + adds r1, #1 + str r1, [r0, #8] + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + ldr r1, _0809ABD8 + lsls r4, r4, #2 + adds r4, r4, r1 + ldr r4, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetBoxNamePtr + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCopy + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809ABD8: .4byte 0x084E8918 + thumb_func_end ScrCmd_bufferboxname + + thumb_func_start ScrCmd_givemon +ScrCmd_givemon: @ 0x0809ABDC + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #8 + adds r4, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r6, r0, #0 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + ldr r0, [r4, #8] + ldrb r1, [r0] + mov sb, r1 + adds r0, #1 + str r0, [r4, #8] + adds r0, r4, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + adds r0, r4, #0 + bl ScriptReadWord + mov r8, r0 + adds r0, r4, #0 + bl ScriptReadWord + ldr r1, [r4, #8] + ldrb r2, [r1] + adds r1, #1 + str r1, [r4, #8] + ldr r4, _0809AC58 + str r0, [sp] + str r2, [sp, #4] + adds r0, r6, #0 + mov r1, sb + adds r2, r5, #0 + mov r3, r8 + bl ScriptGiveMon + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + movs r0, #0 + add sp, #8 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0809AC58: .4byte 0x02037290 + thumb_func_end ScrCmd_givemon + + thumb_func_start ScrCmd_giveegg +ScrCmd_giveegg: @ 0x0809AC5C + push {r4, lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _0809AC84 + bl ScriptGiveEgg + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809AC84: .4byte 0x02037290 + thumb_func_end ScrCmd_giveegg + + thumb_func_start ScrCmd_setmonmove +ScrCmd_setmonmove: @ 0x0809AC88 + push {r4, r5, lr} + ldr r1, [r0, #8] + ldrb r5, [r1] + adds r1, #1 + str r1, [r0, #8] + ldrb r4, [r1] + adds r1, #1 + str r1, [r0, #8] + bl ScriptReadHalfword + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r5, #0 + adds r2, r4, #0 + bl ScriptSetMonMoveSlot + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_setmonmove + + thumb_func_start ScrCmd_checkpartymove +ScrCmd_checkpartymove: @ 0x0809ACB4 + push {r4, r5, r6, r7, lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + ldr r1, _0809ACC8 + movs r0, #6 + strh r0, [r1] + movs r6, #0 + b _0809AD02 + .align 2, 0 +_0809ACC8: .4byte 0x02037290 +_0809ACCC: + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + bne _0809ACFC + adds r0, r4, #0 + adds r1, r7, #0 + bl MonKnowsMove + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809ACFC + ldr r0, _0809ACF4 + strh r6, [r0] + ldr r0, _0809ACF8 + strh r5, [r0] + b _0809AD22 + .align 2, 0 +_0809ACF4: .4byte 0x02037290 +_0809ACF8: .4byte 0x02037280 +_0809ACFC: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_0809AD02: + cmp r6, #5 + bhi _0809AD22 + movs r0, #0x64 + adds r1, r6, #0 + muls r1, r0, r1 + ldr r0, _0809AD2C + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0 + bne _0809ACCC +_0809AD22: + movs r0, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0809AD2C: .4byte 0x02024190 + thumb_func_end ScrCmd_checkpartymove + + thumb_func_start ScrCmd_givemoney +ScrCmd_givemoney: @ 0x0809AD30 + push {r4, lr} + adds r4, r0, #0 + bl ScriptReadWord + adds r2, r0, #0 + ldr r0, [r4, #8] + ldrb r1, [r0] + adds r0, #1 + str r0, [r4, #8] + cmp r1, #0 + bne _0809AD56 + ldr r0, _0809AD60 + ldr r0, [r0] + movs r1, #0x92 + lsls r1, r1, #3 + adds r0, r0, r1 + adds r1, r2, #0 + bl AddMoney +_0809AD56: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809AD60: .4byte 0x03005AEC + thumb_func_end ScrCmd_givemoney + + thumb_func_start ScrCmd_takemoney +ScrCmd_takemoney: @ 0x0809AD64 + push {r4, lr} + adds r4, r0, #0 + bl ScriptReadWord + adds r2, r0, #0 + ldr r0, [r4, #8] + ldrb r1, [r0] + adds r0, #1 + str r0, [r4, #8] + cmp r1, #0 + bne _0809AD8A + ldr r0, _0809AD94 + ldr r0, [r0] + movs r1, #0x92 + lsls r1, r1, #3 + adds r0, r0, r1 + adds r1, r2, #0 + bl RemoveMoney +_0809AD8A: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809AD94: .4byte 0x03005AEC + thumb_func_end ScrCmd_takemoney + + thumb_func_start ScrCmd_checkmoney +ScrCmd_checkmoney: @ 0x0809AD98 + push {r4, lr} + adds r4, r0, #0 + bl ScriptReadWord + adds r2, r0, #0 + ldr r0, [r4, #8] + ldrb r1, [r0] + adds r0, #1 + str r0, [r4, #8] + cmp r1, #0 + bne _0809ADC6 + ldr r4, _0809ADD0 + ldr r0, _0809ADD4 + ldr r0, [r0] + movs r1, #0x92 + lsls r1, r1, #3 + adds r0, r0, r1 + adds r1, r2, #0 + bl IsEnoughMoney + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] +_0809ADC6: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809ADD0: .4byte 0x02037290 +_0809ADD4: .4byte 0x03005AEC + thumb_func_end ScrCmd_checkmoney + + thumb_func_start ScrCmd_showmoneybox +ScrCmd_showmoneybox: @ 0x0809ADD8 + push {r4, r5, lr} + ldr r1, [r0, #8] + ldrb r5, [r1] + adds r1, #1 + str r1, [r0, #8] + ldrb r4, [r1] + adds r2, r1, #1 + str r2, [r0, #8] + ldrb r1, [r1, #1] + adds r2, #1 + str r2, [r0, #8] + cmp r1, #0 + bne _0809AE08 + ldr r0, _0809AE10 + ldr r0, [r0] + movs r1, #0x92 + lsls r1, r1, #3 + adds r0, r0, r1 + bl GetMoney + adds r1, r5, #0 + adds r2, r4, #0 + bl DrawMoneyBox +_0809AE08: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0809AE10: .4byte 0x03005AEC + thumb_func_end ScrCmd_showmoneybox + + thumb_func_start ScrCmd_hidemoneybox +ScrCmd_hidemoneybox: @ 0x0809AE14 + push {lr} + bl HideMoneyBox + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end ScrCmd_hidemoneybox + + thumb_func_start ScrCmd_updatemoneybox +ScrCmd_updatemoneybox: @ 0x0809AE20 + push {lr} + ldr r1, [r0, #8] + adds r1, #1 + adds r2, r1, #1 + str r2, [r0, #8] + ldrb r1, [r1, #1] + adds r2, #1 + str r2, [r0, #8] + cmp r1, #0 + bne _0809AE46 + ldr r0, _0809AE4C + ldr r0, [r0] + movs r1, #0x92 + lsls r1, r1, #3 + adds r0, r0, r1 + bl GetMoney + bl ChangeAmountInMoneyBox +_0809AE46: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0809AE4C: .4byte 0x03005AEC + thumb_func_end ScrCmd_updatemoneybox + + thumb_func_start ScrCmd_showcoinsbox +ScrCmd_showcoinsbox: @ 0x0809AE50 + push {r4, r5, lr} + ldr r1, [r0, #8] + ldrb r5, [r1] + adds r1, #1 + str r1, [r0, #8] + ldrb r4, [r1] + adds r1, #1 + str r1, [r0, #8] + bl GetCoins + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r5, #0 + adds r2, r4, #0 + bl ShowCoinsWindow + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end ScrCmd_showcoinsbox + + thumb_func_start ScrCmd_hidecoinsbox +ScrCmd_hidecoinsbox: @ 0x0809AE78 + push {lr} + ldr r1, [r0, #8] + adds r1, #2 + str r1, [r0, #8] + bl HideCoinsWindow + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_hidecoinsbox + + thumb_func_start ScrCmd_updatecoinsbox +ScrCmd_updatecoinsbox: @ 0x0809AE8C + push {lr} + ldr r1, [r0, #8] + adds r1, #2 + str r1, [r0, #8] + bl GetCoins + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl PrintCoinsString + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_updatecoinsbox + + thumb_func_start ScrCmd_trainerbattle +ScrCmd_trainerbattle: @ 0x0809AEA8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #8] + bl BattleSetup_ConfigureTrainerBattle + str r0, [r4, #8] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end ScrCmd_trainerbattle + + thumb_func_start ScrCmd_dotrainerbattle +ScrCmd_dotrainerbattle: @ 0x0809AEBC + push {lr} + bl BattleSetup_StartTrainerBattle + movs r0, #1 + pop {r1} + bx r1 + thumb_func_end ScrCmd_dotrainerbattle + + thumb_func_start ScrCmd_gotobeatenscript +ScrCmd_gotobeatenscript: @ 0x0809AEC8 + push {r4, lr} + adds r4, r0, #0 + bl BattleSetup_GetScriptAddrAfterBattle + str r0, [r4, #8] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_gotobeatenscript + + thumb_func_start ScrCmd_gotopostbattlescript +ScrCmd_gotopostbattlescript: @ 0x0809AEDC + push {r4, lr} + adds r4, r0, #0 + bl BattleSetup_GetTrainerPostBattleScript + str r0, [r4, #8] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_gotopostbattlescript + + thumb_func_start ScrCmd_checktrainerflag +ScrCmd_checktrainerflag: @ 0x0809AEF0 + push {r4, lr} + adds r4, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl HasTrainerBeenFought + strb r0, [r4, #2] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_checktrainerflag + + thumb_func_start ScrCmd_settrainerflag +ScrCmd_settrainerflag: @ 0x0809AF14 + push {lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl ClearTrainerFlag + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end ScrCmd_settrainerflag + + thumb_func_start ScrCmd_cleartrainerflag +ScrCmd_cleartrainerflag: @ 0x0809AF30 + push {lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl SetTrainerFlag + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end ScrCmd_cleartrainerflag + + thumb_func_start ScrCmd_setwildbattle +ScrCmd_setwildbattle: @ 0x0809AF4C + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl ScriptReadHalfword + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + ldr r0, [r4, #8] + ldrb r6, [r0] + adds r0, #1 + str r0, [r4, #8] + adds r0, r4, #0 + bl ScriptReadHalfword + adds r2, r0, #0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + adds r0, r5, #0 + adds r1, r6, #0 + bl CreateScriptedWildMon + movs r0, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_setwildbattle + + thumb_func_start ScrCmd_dowildbattle +ScrCmd_dowildbattle: @ 0x0809AF80 + push {lr} + bl BattleSetup_StartScriptedWildBattle + bl ScriptContext1_Stop + movs r0, #1 + pop {r1} + bx r1 + thumb_func_end ScrCmd_dowildbattle + + thumb_func_start ScrCmd_pokemart +ScrCmd_pokemart: @ 0x0809AF90 + push {lr} + bl ScriptReadWord + bl CreatePokemartMenu + bl ScriptContext1_Stop + movs r0, #1 + pop {r1} + bx r1 + thumb_func_end ScrCmd_pokemart + + thumb_func_start ScrCmd_pokemartdecoration +ScrCmd_pokemartdecoration: @ 0x0809AFA4 + push {lr} + bl ScriptReadWord + bl CreateDecorationShop1Menu + bl ScriptContext1_Stop + movs r0, #1 + pop {r1} + bx r1 + thumb_func_end ScrCmd_pokemartdecoration + + thumb_func_start ScrCmd_pokemartdecoration2 +ScrCmd_pokemartdecoration2: @ 0x0809AFB8 + push {lr} + bl ScriptReadWord + bl CreateDecorationShop2Menu + bl ScriptContext1_Stop + movs r0, #1 + pop {r1} + bx r1 + thumb_func_end ScrCmd_pokemartdecoration2 + + thumb_func_start ScrCmd_playslotmachine +ScrCmd_playslotmachine: @ 0x0809AFCC + push {lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0809AFF0 + bl PlaySlotMachine + bl ScriptContext1_Stop + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 +_0809AFF0: .4byte 0x08085B35 + thumb_func_end ScrCmd_playslotmachine + + thumb_func_start ScrCmd_setberrytree +ScrCmd_setberrytree: @ 0x0809AFF4 + push {r4, r5, lr} + ldr r1, [r0, #8] + ldrb r5, [r1] + adds r1, #1 + str r1, [r0, #8] + ldrb r3, [r1] + adds r2, r1, #1 + str r2, [r0, #8] + ldrb r4, [r1, #1] + adds r2, #1 + str r2, [r0, #8] + cmp r3, #0 + bne _0809B01C + adds r0, r5, #0 + movs r1, #0 + adds r2, r4, #0 + movs r3, #0 + bl PlantBerryTree + b _0809B028 +_0809B01C: + adds r0, r5, #0 + adds r1, r3, #0 + adds r2, r4, #0 + movs r3, #0 + bl PlantBerryTree +_0809B028: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end ScrCmd_setberrytree + + thumb_func_start ScrCmd_getpricereduction +ScrCmd_getpricereduction: @ 0x0809B030 + push {r4, lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + ldr r4, _0809B058 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetPriceReduction + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809B058: .4byte 0x02037290 + thumb_func_end ScrCmd_getpricereduction + + thumb_func_start ScrCmd_showcontestresults +ScrCmd_showcontestresults: @ 0x0809B05C + push {lr} + bl sub_081B90A4 + bl ScriptContext1_Stop + movs r0, #1 + pop {r1} + bx r1 + thumb_func_end ScrCmd_showcontestresults + + thumb_func_start ScrCmd_startcontest +ScrCmd_startcontest: @ 0x0809B06C + push {lr} + bl sub_080F8C90 + bl ScriptContext1_Stop + movs r0, #1 + pop {r1} + bx r1 + thumb_func_end ScrCmd_startcontest + + thumb_func_start ScrCmd_choosecontestmon +ScrCmd_choosecontestmon: @ 0x0809B07C + push {lr} + bl sub_080F8D08 + bl ScriptContext1_Stop + movs r0, #1 + pop {r1} + bx r1 + thumb_func_end ScrCmd_choosecontestmon + + thumb_func_start ScrCmd_contestlinktransfer +ScrCmd_contestlinktransfer: @ 0x0809B08C + push {lr} + ldr r0, _0809B0A0 + ldrb r0, [r0] + bl sub_080F8D48 + bl ScriptContext1_Stop + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 +_0809B0A0: .4byte 0x02039BCC + thumb_func_end ScrCmd_contestlinktransfer + + thumb_func_start ScrCmd_dofieldeffect +ScrCmd_dofieldeffect: @ 0x0809B0A4 + push {lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _0809B0C8 + strh r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl FieldEffectStart + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0809B0C8: .4byte 0x02037270 + thumb_func_end ScrCmd_dofieldeffect + + thumb_func_start ScrCmd_setfieldeffectarg +ScrCmd_setfieldeffectarg: @ 0x0809B0CC + push {r4, lr} + ldr r1, [r0, #8] + ldrb r4, [r1] + adds r1, #1 + str r1, [r0, #8] + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + ldr r1, _0809B0F8 + lsls r4, r4, #2 + adds r4, r4, r1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + str r0, [r4] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809B0F8: .4byte 0x020388A8 + thumb_func_end ScrCmd_setfieldeffectarg + + thumb_func_start WaitForFieldEffectFinish +WaitForFieldEffectFinish: @ 0x0809B0FC + push {lr} + ldr r0, _0809B110 + ldrb r0, [r0] + bl FieldEffectActiveListContains + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809B114 + movs r0, #0 + b _0809B116 + .align 2, 0 +_0809B110: .4byte 0x02037270 +_0809B114: + movs r0, #1 +_0809B116: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end WaitForFieldEffectFinish + + thumb_func_start ScrCmd_waitfieldeffect +ScrCmd_waitfieldeffect: @ 0x0809B11C + push {r4, lr} + adds r4, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + ldr r1, _0809B140 + strh r0, [r1] + ldr r1, _0809B144 + adds r0, r4, #0 + bl SetupNativeScript + movs r0, #1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809B140: .4byte 0x02037270 +_0809B144: .4byte 0x0809B0FD + thumb_func_end ScrCmd_waitfieldeffect + + thumb_func_start ScrCmd_setrespawn +ScrCmd_setrespawn: @ 0x0809B148 + push {lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl SetLastHealLocationWarp + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end ScrCmd_setrespawn + + thumb_func_start ScrCmd_checkplayergender +ScrCmd_checkplayergender: @ 0x0809B164 + ldr r1, _0809B174 + ldr r0, _0809B178 + ldr r0, [r0] + ldrb r0, [r0, #8] + strh r0, [r1] + movs r0, #0 + bx lr + .align 2, 0 +_0809B174: .4byte 0x02037290 +_0809B178: .4byte 0x03005AF0 + thumb_func_end ScrCmd_checkplayergender + + thumb_func_start ScrCmd_playmoncry +ScrCmd_playmoncry: @ 0x0809B17C + push {r4, r5, lr} + adds r5, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl PlayCry5 + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end ScrCmd_playmoncry + + thumb_func_start ScrCmd_waitdooranim +ScrCmd_waitdooranim: @ 0x0809B1B4 + push {lr} + ldr r1, _0809B1C4 + bl SetupNativeScript + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 +_0809B1C4: .4byte 0x080A2F41 + thumb_func_end ScrCmd_waitdooranim + + thumb_func_start ScrCmd_setmetatile +ScrCmd_setmetatile: @ 0x0809B1C8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r0, r4, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r4, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + adds r0, r4, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x10 + adds r1, r6, #7 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + adds r1, r5, #7 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + cmp r0, #0 + bne _0809B22C + adds r0, r6, #0 + adds r1, r5, #0 + adds r2, r7, #0 + bl MapGridSetMetatileIdAt + b _0809B23E +_0809B22C: + movs r1, #0xc0 + lsls r1, r1, #4 + adds r0, r1, #0 + adds r2, r7, #0 + orrs r2, r0 + adds r0, r6, #0 + adds r1, r5, #0 + bl MapGridSetMetatileIdAt +_0809B23E: + movs r0, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_setmetatile + + thumb_func_start ScrCmd_opendoor +ScrCmd_opendoor: @ 0x0809B248 + push {r4, r5, lr} + adds r4, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + adds r0, r4, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + adds r5, #7 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + movs r0, #0xe0 + lsls r0, r0, #0xb + adds r4, r4, r0 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl GetDoorSoundEffect + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl PlaySE + adds r0, r5, #0 + adds r1, r4, #0 + bl FieldAnimateDoorOpen + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_opendoor + + thumb_func_start ScrCmd_closedoor +ScrCmd_closedoor: @ 0x0809B2A0 + push {r4, r5, lr} + adds r5, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r1, r0, #0 + lsls r1, r1, #0x10 + adds r4, #7 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + movs r0, #0xe0 + lsls r0, r0, #0xb + adds r1, r1, r0 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl FieldAnimateDoorClose + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end ScrCmd_closedoor + + thumb_func_start IsDoorAnimationStopped +IsDoorAnimationStopped: @ 0x0809B2E4 + push {lr} + bl FieldIsDoorAnimationRunning + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809B2F4 + movs r0, #0 + b _0809B2F6 +_0809B2F4: + movs r0, #1 +_0809B2F6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsDoorAnimationStopped + + thumb_func_start ScrCmd_waitmoncry +ScrCmd_waitmoncry: @ 0x0809B2FC + push {lr} + ldr r1, _0809B30C + bl SetupNativeScript + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 +_0809B30C: .4byte 0x0809B2E5 + thumb_func_end ScrCmd_waitmoncry + + thumb_func_start ScrCmd_setdooropen +ScrCmd_setdooropen: @ 0x0809B310 + push {r4, r5, lr} + adds r5, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r1, r0, #0 + lsls r1, r1, #0x10 + adds r4, #7 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + movs r0, #0xe0 + lsls r0, r0, #0xb + adds r1, r1, r0 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl FieldSetDoorOpened + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end ScrCmd_setdooropen + + thumb_func_start ScrCmd_setdoorclosed +ScrCmd_setdoorclosed: @ 0x0809B354 + push {r4, r5, lr} + adds r5, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r1, r0, #0 + lsls r1, r1, #0x10 + adds r4, #7 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + movs r0, #0xe0 + lsls r0, r0, #0xb + adds r1, r1, r0 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl FieldSetDoorClosed + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end ScrCmd_setdoorclosed + + thumb_func_start ScrCmd_addelevmenuitem +ScrCmd_addelevmenuitem: @ 0x0809B398 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #8] + adds r0, #1 + str r0, [r4, #8] + adds r0, r4, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r0, r4, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r0, r4, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end ScrCmd_addelevmenuitem + + thumb_func_start ScrCmd_drawbox +ScrCmd_drawbox: @ 0x0809B3D4 + movs r0, #0 + bx lr + thumb_func_end ScrCmd_drawbox + + thumb_func_start ScrCmd_checkcoins +ScrCmd_checkcoins: @ 0x0809B3D8 + push {r4, lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GetVarPointer + adds r4, r0, #0 + bl GetCoins + strh r0, [r4] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_checkcoins + + thumb_func_start ScrCmd_givecoins +ScrCmd_givecoins: @ 0x0809B3F8 + push {lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl GiveCoins + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809B420 + ldr r1, _0809B41C + movs r0, #0 + b _0809B424 + .align 2, 0 +_0809B41C: .4byte 0x02037290 +_0809B420: + ldr r1, _0809B42C + movs r0, #1 +_0809B424: + strh r0, [r1] + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0809B42C: .4byte 0x02037290 + thumb_func_end ScrCmd_givecoins + + thumb_func_start ScrCmd_takecoins +ScrCmd_takecoins: @ 0x0809B430 + push {lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl TakeCoins + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809B458 + ldr r1, _0809B454 + movs r0, #0 + b _0809B45C + .align 2, 0 +_0809B454: .4byte 0x02037290 +_0809B458: + ldr r1, _0809B464 + movs r0, #1 +_0809B45C: + strh r0, [r1] + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0809B464: .4byte 0x02037290 + thumb_func_end ScrCmd_takecoins + + thumb_func_start ScrCmd_mossdeepgym1 +ScrCmd_mossdeepgym1: @ 0x0809B468 + push {lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl MossdeepGym_MoveEvents + ldr r1, _0809B488 + strh r0, [r1] + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0809B488: .4byte 0x0203726A + thumb_func_end ScrCmd_mossdeepgym1 + + thumb_func_start sub_0809B48C +sub_0809B48C: @ 0x0809B48C + push {lr} + bl MossdeepGym_TurnEvents + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end sub_0809B48C + + thumb_func_start ScrCmd_mossdeepgym3 +ScrCmd_mossdeepgym3: @ 0x0809B498 + push {lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl InitMossdeepGymTiles + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end ScrCmd_mossdeepgym3 + + thumb_func_start ScrCmd_buffercontesttype +ScrCmd_buffercontesttype: @ 0x0809B4B4 + push {lr} + bl FinishMossdeepGymTiles + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end ScrCmd_buffercontesttype + + thumb_func_start ScrCmd_cmdD8 +ScrCmd_cmdD8: @ 0x0809B4C0 + push {lr} + bl GetCurrentApproachingTrainerEventObjectId + ldr r1, _0809B4D0 + strb r0, [r1] + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0809B4D0: .4byte 0x03005B50 + thumb_func_end ScrCmd_cmdD8 + + thumb_func_start ScrCmd_cmdD9 +ScrCmd_cmdD9: @ 0x0809B4D4 + push {r4, lr} + adds r4, r0, #0 + bl IsUpdateLinkStateCBActive + cmp r0, #0 + beq _0809B4E4 + movs r0, #0 + b _0809B508 +_0809B4E4: + ldr r2, _0809B510 + ldr r0, _0809B514 + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _0809B506 + bl sub_08097FB8 + ldr r1, _0809B518 + adds r0, r4, #0 + bl SetupNativeScript +_0809B506: + movs r0, #1 +_0809B508: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809B510: .4byte 0x02036FF0 +_0809B514: .4byte 0x03005B50 +_0809B518: .4byte 0x080980BD + thumb_func_end ScrCmd_cmdD9 + + thumb_func_start ScrCmd_setmonobedient +ScrCmd_setmonobedient: @ 0x0809B51C + push {lr} + sub sp, #4 + movs r2, #1 + mov r1, sp + strb r2, [r1] + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + muls r0, r1, r0 + ldr r1, _0809B550 + adds r0, r0, r1 + movs r1, #0x50 + mov r2, sp + bl SetMonData + movs r0, #0 + add sp, #4 + pop {r1} + bx r1 + .align 2, 0 +_0809B550: .4byte 0x02024190 + thumb_func_end ScrCmd_setmonobedient + + thumb_func_start ScrCmd_checkmonobedience +ScrCmd_checkmonobedience: @ 0x0809B554 + push {r4, lr} + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _0809B584 + movs r1, #0x64 + muls r0, r1, r0 + ldr r1, _0809B588 + adds r0, r0, r1 + movs r1, #0x50 + movs r2, #0 + bl GetMonData + strh r0, [r4] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809B584: .4byte 0x02037290 +_0809B588: .4byte 0x02024190 + thumb_func_end ScrCmd_checkmonobedience + + thumb_func_start ScrCmd_gotoram +ScrCmd_gotoram: @ 0x0809B58C + push {r4, lr} + adds r4, r0, #0 + bl GetSavedRamScriptIfValid + adds r2, r0, #0 + cmp r2, #0 + beq _0809B5A8 + ldr r1, _0809B5B0 + ldr r0, [r4, #8] + str r0, [r1] + adds r0, r4, #0 + adds r1, r2, #0 + bl ScriptJump +_0809B5A8: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809B5B0: .4byte 0x02037260 + thumb_func_end ScrCmd_gotoram + + thumb_func_start ScrCmd_warpD1 +ScrCmd_warpD1: @ 0x0809B5B4 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #4 + adds r5, r0, #0 + ldr r0, [r5, #8] + ldrb r1, [r0] + mov sb, r1 + adds r0, #1 + str r0, [r5, #8] + ldrb r1, [r0] + mov r8, r1 + adds r1, r0, #1 + str r1, [r5, #8] + ldrb r6, [r0, #1] + adds r1, #1 + str r1, [r5, #8] + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + mov r1, sb + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov sb, r1 + mov r1, r8 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov r8, r1 + lsls r6, r6, #0x18 + asrs r6, r6, #0x18 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + str r0, [sp] + mov r0, sb + adds r2, r6, #0 + adds r3, r4, #0 + bl SetWarpDestination + bl GetPlayerFacingDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_0808C9E4 + bl sub_080AFB40 + bl ResetInitialPlayerAvatarState + movs r0, #1 + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_warpD1 + + thumb_func_start ScrCmd_setmonmetlocation +ScrCmd_setmonmetlocation: @ 0x0809B648 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldr r0, [r4, #8] + ldrb r2, [r0] + mov r1, sp + strb r2, [r1] + adds r0, #1 + str r0, [r4, #8] + cmp r3, #5 + bhi _0809B67E + movs r0, #0x64 + muls r0, r3, r0 + ldr r1, _0809B688 + adds r0, r0, r1 + movs r1, #0x23 + mov r2, sp + bl SetMonData +_0809B67E: + movs r0, #0 + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809B688: .4byte 0x02024190 + thumb_func_end ScrCmd_setmonmetlocation + + thumb_func_start ScrCmd_bufferitemnameplural +ScrCmd_bufferitemnameplural: @ 0x0809B68C + push {r4, lr} + ldr r4, _0809B6A4 + ldrb r0, [r4] + movs r1, #1 + bl DrawStdWindowFrame + ldrb r0, [r4] + bl RemoveWindow + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809B6A4: .4byte 0x03000F30 + thumb_func_end ScrCmd_bufferitemnameplural + + thumb_func_start ScrCmd_buffertrainerclassname +ScrCmd_buffertrainerclassname: @ 0x0809B6A8 + push {r4, lr} + ldr r1, [r0, #8] + ldrb r4, [r1] + adds r1, #1 + str r1, [r0, #8] + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _0809B6E0 + lsls r4, r4, #2 + adds r4, r4, r1 + ldr r4, [r4] + bl GetTrainerClassNameFromId + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCopy + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809B6E0: .4byte 0x084E8918 + thumb_func_end ScrCmd_buffertrainerclassname + + thumb_func_start ScrCmd_buffertrainername +ScrCmd_buffertrainername: @ 0x0809B6E4 + push {r4, lr} + ldr r1, [r0, #8] + ldrb r4, [r1] + adds r1, #1 + str r1, [r0, #8] + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _0809B71C + lsls r4, r4, #2 + adds r4, r4, r1 + ldr r4, [r4] + bl sub_0806EB38 + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCopy + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809B71C: .4byte 0x084E8918 + thumb_func_end ScrCmd_buffertrainername + + thumb_func_start sub_0809B720 +sub_0809B720: @ 0x0809B720 + ldr r1, _0809B728 + strh r0, [r1] + bx lr + .align 2, 0 +_0809B728: .4byte 0x0203726A + thumb_func_end sub_0809B720 + + thumb_func_start ScrCmd_warpE0 +ScrCmd_warpE0: @ 0x0809B72C + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #4 + adds r5, r0, #0 + ldr r0, [r5, #8] + ldrb r1, [r0] + mov sb, r1 + adds r0, #1 + str r0, [r5, #8] + ldrb r1, [r0] + mov r8, r1 + adds r1, r0, #1 + str r1, [r5, #8] + ldrb r6, [r0, #1] + adds r1, #1 + str r1, [r5, #8] + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + bl ScriptReadHalfword + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl VarGet + mov r1, sb + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov sb, r1 + mov r1, r8 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov r8, r1 + lsls r6, r6, #0x18 + asrs r6, r6, #0x18 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + str r0, [sp] + mov r0, sb + adds r2, r6, #0 + adds r3, r4, #0 + bl SetWarpDestination + bl sub_080AF098 + bl ResetInitialPlayerAvatarState + movs r0, #1 + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrCmd_warpE0 + diff --git a/asm/script.s b/asm/script.s new file mode 100644 index 0000000..d30af4a --- /dev/null +++ b/asm/script.s @@ -0,0 +1,911 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start InitScriptContext +InitScriptContext: @ 0x08098640 + push {lr} + adds r3, r0, #0 + movs r0, #0 + strb r0, [r3, #1] + str r0, [r3, #8] + strb r0, [r3] + str r0, [r3, #4] + str r1, [r3, #0x5c] + str r2, [r3, #0x60] + movs r2, #0 + movs r1, #3 + adds r0, r3, #0 + adds r0, #0x70 +_0809865A: + str r2, [r0] + subs r0, #4 + subs r1, #1 + cmp r1, #0 + bge _0809865A + adds r1, r3, #0 + adds r1, #0xc + movs r2, #0 + adds r0, r3, #0 + adds r0, #0x58 +_0809866E: + str r2, [r0] + subs r0, #4 + cmp r0, r1 + bge _0809866E + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end InitScriptContext + + thumb_func_start SetupBytecodeScript +SetupBytecodeScript: @ 0x0809867C + str r1, [r0, #8] + movs r1, #1 + strb r1, [r0, #1] + movs r0, #1 + bx lr + .align 2, 0 + thumb_func_end SetupBytecodeScript + + thumb_func_start SetupNativeScript +SetupNativeScript: @ 0x08098688 + movs r2, #2 + strb r2, [r0, #1] + str r1, [r0, #4] + bx lr + thumb_func_end SetupNativeScript + + thumb_func_start StopScript +StopScript: @ 0x08098690 + movs r1, #0 + strb r1, [r0, #1] + str r1, [r0, #8] + bx lr + thumb_func_end StopScript + + thumb_func_start RunScriptCommand +RunScriptCommand: @ 0x08098698 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + bne _080986A6 +_080986A2: + movs r0, #0 + b _08098718 +_080986A6: + ldrb r0, [r4, #1] + cmp r0, #1 + beq _080986DE + cmp r0, #1 + bgt _080986B6 + cmp r0, #0 + beq _080986A2 + b _08098716 +_080986B6: + cmp r0, #2 + bne _08098716 + ldr r0, [r4, #4] + cmp r0, #0 + beq _080986DA + bl _call_via_r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08098716 + strb r0, [r4, #1] + b _08098716 +_080986D0: + strb r2, [r4, #1] + b _080986A2 +_080986D4: + movs r0, #0 + strb r0, [r4, #1] + b _08098718 +_080986DA: + movs r0, #1 + strb r0, [r4, #1] +_080986DE: + ldr r2, [r4, #8] + cmp r2, #0 + beq _080986D0 + ldr r0, _080986F0 + ldr r0, [r0] + cmp r2, r0 + bne _080986F4 +_080986EC: + svc #2 + b _080986EC + .align 2, 0 +_080986F0: .4byte 0x084E8900 +_080986F4: + ldrb r1, [r2] + adds r0, r2, #1 + str r0, [r4, #8] + lsls r1, r1, #2 + ldr r0, [r4, #0x5c] + adds r1, r0, r1 + ldr r0, [r4, #0x60] + cmp r1, r0 + bhs _080986D4 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080986DE +_08098716: + movs r0, #1 +_08098718: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end RunScriptCommand + + thumb_func_start ScriptPush +ScriptPush: @ 0x08098720 + push {lr} + adds r2, r0, #0 + adds r3, r1, #0 + ldrb r1, [r2] + adds r0, r1, #1 + cmp r0, #0x13 + bgt _08098742 + lsls r0, r1, #2 + adds r1, r2, #0 + adds r1, #0xc + adds r1, r1, r0 + str r3, [r1] + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0 + b _08098744 +_08098742: + movs r0, #1 +_08098744: + pop {r1} + bx r1 + thumb_func_end ScriptPush + + thumb_func_start ScriptPop +ScriptPop: @ 0x08098748 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2] + cmp r0, #0 + beq _08098764 + subs r0, #1 + strb r0, [r2] + ldrb r1, [r2] + lsls r1, r1, #2 + adds r0, r2, #0 + adds r0, #0xc + adds r0, r0, r1 + ldr r0, [r0] + b _08098766 +_08098764: + movs r0, #0 +_08098766: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScriptPop + + thumb_func_start ScriptJump +ScriptJump: @ 0x0809876C + str r1, [r0, #8] + bx lr + thumb_func_end ScriptJump + + thumb_func_start ScriptCall +ScriptCall: @ 0x08098770 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, [r4, #8] + bl ScriptPush + str r5, [r4, #8] + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end ScriptCall + + thumb_func_start ScriptReturn +ScriptReturn: @ 0x08098784 + push {r4, lr} + adds r4, r0, #0 + bl ScriptPop + str r0, [r4, #8] + pop {r4} + pop {r0} + bx r0 + thumb_func_end ScriptReturn + + thumb_func_start ScriptReadHalfword +ScriptReadHalfword: @ 0x08098794 + adds r3, r0, #0 + ldr r2, [r3, #8] + ldrb r0, [r2] + adds r2, #1 + str r2, [r3, #8] + ldrb r1, [r2] + lsls r1, r1, #8 + orrs r0, r1 + adds r2, #1 + str r2, [r3, #8] + bx lr + .align 2, 0 + thumb_func_end ScriptReadHalfword + + thumb_func_start ScriptReadWord +ScriptReadWord: @ 0x080987AC + push {r4, r5, r6, lr} + adds r3, r0, #0 + ldr r0, [r3, #8] + ldrb r6, [r0] + adds r0, #1 + str r0, [r3, #8] + ldrb r5, [r0] + adds r2, r0, #1 + str r2, [r3, #8] + ldrb r4, [r0, #1] + adds r1, r2, #1 + str r1, [r3, #8] + ldrb r0, [r2, #1] + adds r1, #1 + str r1, [r3, #8] + lsls r0, r0, #8 + adds r0, r0, r4 + lsls r0, r0, #8 + adds r0, r0, r5 + lsls r0, r0, #8 + adds r0, r0, r6 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end ScriptReadWord + + thumb_func_start ScriptContext2_Enable +ScriptContext2_Enable: @ 0x080987DC + ldr r1, _080987E4 + movs r0, #1 + strb r0, [r1] + bx lr + .align 2, 0 +_080987E4: .4byte 0x03000F2C + thumb_func_end ScriptContext2_Enable + + thumb_func_start ScriptContext2_Disable +ScriptContext2_Disable: @ 0x080987E8 + ldr r1, _080987F0 + movs r0, #0 + strb r0, [r1] + bx lr + .align 2, 0 +_080987F0: .4byte 0x03000F2C + thumb_func_end ScriptContext2_Disable + + thumb_func_start ScriptContext2_IsEnabled +ScriptContext2_IsEnabled: @ 0x080987F4 + ldr r0, _080987FC + ldrb r0, [r0] + bx lr + .align 2, 0 +_080987FC: .4byte 0x03000F2C + thumb_func_end ScriptContext2_IsEnabled + + thumb_func_start ScriptContext1_IsScriptSetUp +ScriptContext1_IsScriptSetUp: @ 0x08098800 + push {lr} + ldr r0, _08098810 + ldrb r0, [r0] + cmp r0, #0 + beq _08098814 + movs r0, #0 + b _08098816 + .align 2, 0 +_08098810: .4byte 0x03000E38 +_08098814: + movs r0, #1 +_08098816: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScriptContext1_IsScriptSetUp + + thumb_func_start ScriptContext1_Init +ScriptContext1_Init: @ 0x0809881C + push {lr} + ldr r0, _08098834 + ldr r1, _08098838 + ldr r2, _0809883C + bl InitScriptContext + ldr r1, _08098840 + movs r0, #2 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08098834: .4byte 0x03000E40 +_08098838: .4byte 0x081DABAC +_0809883C: .4byte 0x081DAF30 +_08098840: .4byte 0x03000E38 + thumb_func_end ScriptContext1_Init + + thumb_func_start ScriptContext2_RunScript +ScriptContext2_RunScript: @ 0x08098844 + push {r4, lr} + ldr r4, _08098868 + ldrb r0, [r4] + cmp r0, #2 + beq _08098878 + cmp r0, #1 + beq _08098878 + bl ScriptContext2_Enable + ldr r0, _0809886C + bl RunScriptCommand + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08098870 + movs r0, #1 + b _0809887A + .align 2, 0 +_08098868: .4byte 0x03000E38 +_0809886C: .4byte 0x03000E40 +_08098870: + movs r0, #2 + strb r0, [r4] + bl ScriptContext2_Disable +_08098878: + movs r0, #0 +_0809887A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end ScriptContext2_RunScript + + thumb_func_start ScriptContext1_SetupScript +ScriptContext1_SetupScript: @ 0x08098880 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080988A8 + ldr r1, _080988AC + ldr r2, _080988B0 + adds r0, r4, #0 + bl InitScriptContext + adds r0, r4, #0 + adds r1, r5, #0 + bl SetupBytecodeScript + bl ScriptContext2_Enable + ldr r1, _080988B4 + movs r0, #0 + strb r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080988A8: .4byte 0x03000E40 +_080988AC: .4byte 0x081DABAC +_080988B0: .4byte 0x081DAF30 +_080988B4: .4byte 0x03000E38 + thumb_func_end ScriptContext1_SetupScript + + thumb_func_start ScriptContext1_Stop +ScriptContext1_Stop: @ 0x080988B8 + ldr r1, _080988C0 + movs r0, #1 + strb r0, [r1] + bx lr + .align 2, 0 +_080988C0: .4byte 0x03000E38 + thumb_func_end ScriptContext1_Stop + + thumb_func_start EnableBothScriptContexts +EnableBothScriptContexts: @ 0x080988C4 + push {lr} + ldr r1, _080988D4 + movs r0, #0 + strb r0, [r1] + bl ScriptContext2_Enable + pop {r0} + bx r0 + .align 2, 0 +_080988D4: .4byte 0x03000E38 + thumb_func_end EnableBothScriptContexts + + thumb_func_start ScriptContext2_RunNewScript +ScriptContext2_RunNewScript: @ 0x080988D8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08098904 + ldr r1, _08098908 + ldr r2, _0809890C + adds r0, r4, #0 + bl InitScriptContext + adds r0, r4, #0 + adds r1, r5, #0 + bl SetupBytecodeScript +_080988F0: + ldr r0, _08098904 + bl RunScriptCommand + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080988F0 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08098904: .4byte 0x03000EB8 +_08098908: .4byte 0x081DABAC +_0809890C: .4byte 0x081DAF30 + thumb_func_end ScriptContext2_RunNewScript + + thumb_func_start MapHeaderGetScriptTable +MapHeaderGetScriptTable: @ 0x08098910 + push {lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r0, _08098928 + ldr r2, [r0, #8] + cmp r2, #0 + beq _08098924 +_0809891E: + ldrb r0, [r2] + cmp r0, #0 + bne _0809892C +_08098924: + movs r0, #0 + b _0809894A + .align 2, 0 +_08098928: .4byte 0x02036FB8 +_0809892C: + cmp r0, r1 + beq _08098934 + adds r2, #5 + b _0809891E +_08098934: + adds r2, #1 + ldrb r0, [r2] + ldrb r1, [r2, #1] + lsls r1, r1, #8 + adds r0, r0, r1 + ldrb r1, [r2, #2] + lsls r1, r1, #0x10 + adds r0, r0, r1 + ldrb r1, [r2, #3] + lsls r1, r1, #0x18 + adds r0, r0, r1 +_0809894A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end MapHeaderGetScriptTable + + thumb_func_start MapHeaderRunScriptType +MapHeaderRunScriptType: @ 0x08098950 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl MapHeaderGetScriptTable + cmp r0, #0 + beq _08098962 + bl ScriptContext2_RunNewScript +_08098962: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end MapHeaderRunScriptType + + thumb_func_start MapHeaderCheckScriptTable +MapHeaderCheckScriptTable: @ 0x08098968 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl MapHeaderGetScriptTable + adds r6, r0, #0 + cmp r6, #0 + beq _08098984 +_08098978: + ldrb r1, [r6] + ldrb r0, [r6, #1] + lsls r0, r0, #8 + orrs r1, r0 + cmp r1, #0 + bne _08098988 +_08098984: + movs r0, #0 + b _080989C2 +_08098988: + adds r6, #2 + ldrb r5, [r6] + ldrb r0, [r6, #1] + lsls r0, r0, #8 + orrs r5, r0 + adds r6, #2 + adds r0, r1, #0 + bl VarGet + adds r4, r0, #0 + adds r0, r5, #0 + bl VarGet + lsls r4, r4, #0x10 + lsls r0, r0, #0x10 + cmp r4, r0 + beq _080989AE + adds r6, #4 + b _08098978 +_080989AE: + ldrb r0, [r6] + ldrb r1, [r6, #1] + lsls r1, r1, #8 + adds r0, r0, r1 + ldrb r1, [r6, #2] + lsls r1, r1, #0x10 + adds r0, r0, r1 + ldrb r1, [r6, #3] + lsls r1, r1, #0x18 + adds r0, r0, r1 +_080989C2: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end MapHeaderCheckScriptTable + + thumb_func_start RunOnLoadMapScript +RunOnLoadMapScript: @ 0x080989C8 + push {lr} + movs r0, #1 + bl MapHeaderRunScriptType + pop {r0} + bx r0 + thumb_func_end RunOnLoadMapScript + + thumb_func_start RunOnTransitionMapScript +RunOnTransitionMapScript: @ 0x080989D4 + push {lr} + movs r0, #3 + bl MapHeaderRunScriptType + pop {r0} + bx r0 + thumb_func_end RunOnTransitionMapScript + + thumb_func_start RunOnResumeMapScript +RunOnResumeMapScript: @ 0x080989E0 + push {lr} + movs r0, #5 + bl MapHeaderRunScriptType + pop {r0} + bx r0 + thumb_func_end RunOnResumeMapScript + + thumb_func_start RunOnReturnToFieldMapScript +RunOnReturnToFieldMapScript: @ 0x080989EC + push {lr} + movs r0, #7 + bl MapHeaderRunScriptType + pop {r0} + bx r0 + thumb_func_end RunOnReturnToFieldMapScript + + thumb_func_start RunOnDiveWarpMapScript +RunOnDiveWarpMapScript: @ 0x080989F8 + push {lr} + movs r0, #6 + bl MapHeaderRunScriptType + pop {r0} + bx r0 + thumb_func_end RunOnDiveWarpMapScript + + thumb_func_start TryRunOnFrameMapScript +TryRunOnFrameMapScript: @ 0x08098A04 + push {lr} + movs r0, #2 + bl MapHeaderCheckScriptTable + cmp r0, #0 + beq _08098A18 + bl ScriptContext1_SetupScript + movs r0, #1 + b _08098A1A +_08098A18: + movs r0, #0 +_08098A1A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TryRunOnFrameMapScript + + thumb_func_start TryRunOnWarpIntoMapScript +TryRunOnWarpIntoMapScript: @ 0x08098A20 + push {lr} + movs r0, #4 + bl MapHeaderCheckScriptTable + cmp r0, #0 + beq _08098A30 + bl ScriptContext2_RunNewScript +_08098A30: + pop {r0} + bx r0 + thumb_func_end TryRunOnWarpIntoMapScript + + thumb_func_start CalculateRamScriptChecksum +CalculateRamScriptChecksum: @ 0x08098A34 + push {lr} + ldr r0, _08098A50 + ldr r0, [r0] + ldr r1, _08098A54 + adds r0, r0, r1 + movs r1, #0xfa + lsls r1, r1, #2 + bl CalcCRC16WithTable + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 +_08098A50: .4byte 0x03005AEC +_08098A54: .4byte 0x0000372C + thumb_func_end CalculateRamScriptChecksum + + thumb_func_start ClearRamScript +ClearRamScript: @ 0x08098A58 + push {lr} + sub sp, #4 + movs r0, #0 + str r0, [sp] + ldr r0, _08098A78 + ldr r1, [r0] + ldr r0, _08098A7C + adds r1, r1, r0 + ldr r2, _08098A80 + mov r0, sp + bl CpuSet + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_08098A78: .4byte 0x03005AEC +_08098A7C: .4byte 0x00003728 +_08098A80: .4byte 0x050000FB + thumb_func_end ClearRamScript + + thumb_func_start InitRamScript +InitRamScript: @ 0x08098A84 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + str r0, [sp] + ldr r0, [sp, #0x24] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r8, r1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sb, r2 + lsls r3, r3, #0x18 + lsrs r7, r3, #0x18 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _08098AE8 + mov sl, r0 + ldr r5, [r0] + ldr r1, _08098AEC + adds r4, r5, r1 + bl ClearRamScript + ldr r0, _08098AF0 + cmp r8, r0 + bhi _08098AFC + movs r0, #0x33 + strb r0, [r4] + mov r2, sb + strb r2, [r4, #1] + strb r7, [r4, #2] + strb r6, [r4, #3] + ldr r1, _08098AF4 + adds r0, r5, r1 + ldr r1, [sp] + mov r2, r8 + bl memcpy + bl CalculateRamScriptChecksum + mov r2, sl + ldr r1, [r2] + ldr r2, _08098AF8 + adds r1, r1, r2 + str r0, [r1] + movs r0, #1 + b _08098AFE + .align 2, 0 +_08098AE8: .4byte 0x03005AEC +_08098AEC: .4byte 0x0000372C +_08098AF0: .4byte 0x000003E3 +_08098AF4: .4byte 0x00003730 +_08098AF8: .4byte 0x00003728 +_08098AFC: + movs r0, #0 +_08098AFE: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end InitRamScript + + thumb_func_start GetRamScript +GetRamScript: @ 0x08098B10 + push {r4, r5, r6, r7, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r6, _08098B60 + ldr r5, [r6] + ldr r0, _08098B64 + adds r2, r5, r0 + ldr r7, _08098B68 + movs r0, #0 + str r0, [r7] + ldrb r0, [r2] + cmp r0, #0x33 + bne _08098B78 + ldrb r1, [r2, #1] + movs r0, #4 + ldrsb r0, [r5, r0] + cmp r1, r0 + bne _08098B78 + ldrb r1, [r2, #2] + movs r0, #5 + ldrsb r0, [r5, r0] + cmp r1, r0 + bne _08098B78 + ldrb r0, [r2, #3] + cmp r0, r3 + bne _08098B78 + bl CalculateRamScriptChecksum + ldr r1, [r6] + ldr r2, _08098B6C + adds r1, r1, r2 + ldr r1, [r1] + cmp r0, r1 + bne _08098B74 + str r4, [r7] + ldr r1, _08098B70 + adds r0, r5, r1 + b _08098B7A + .align 2, 0 +_08098B60: .4byte 0x03005AEC +_08098B64: .4byte 0x0000372C +_08098B68: .4byte 0x02037260 +_08098B6C: .4byte 0x00003728 +_08098B70: .4byte 0x00003730 +_08098B74: + bl ClearRamScript +_08098B78: + adds r0, r4, #0 +_08098B7A: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end GetRamScript + + thumb_func_start ValidateSavedRamScript +ValidateSavedRamScript: @ 0x08098B80 + push {r4, lr} + ldr r4, _08098BB8 + ldr r0, [r4] + ldr r2, _08098BBC + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, #0x33 + bne _08098BC4 + ldrb r0, [r1, #1] + cmp r0, #0xff + bne _08098BC4 + ldrb r0, [r1, #2] + cmp r0, #0xff + bne _08098BC4 + ldrb r0, [r1, #3] + cmp r0, #0xff + bne _08098BC4 + bl CalculateRamScriptChecksum + ldr r1, [r4] + ldr r2, _08098BC0 + adds r1, r1, r2 + ldr r1, [r1] + cmp r0, r1 + bne _08098BC4 + movs r0, #1 + b _08098BC6 + .align 2, 0 +_08098BB8: .4byte 0x03005AEC +_08098BBC: .4byte 0x0000372C +_08098BC0: .4byte 0x00003728 +_08098BC4: + movs r0, #0 +_08098BC6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end ValidateSavedRamScript + + thumb_func_start GetSavedRamScriptIfValid +GetSavedRamScriptIfValid: @ 0x08098BCC + push {r4, r5, r6, lr} + ldr r6, _08098C0C + ldr r5, [r6] + ldr r0, _08098C10 + adds r4, r5, r0 + bl ValidateReceivedWonderCard + cmp r0, #0 + beq _08098C20 + ldrb r0, [r4] + cmp r0, #0x33 + bne _08098C20 + ldrb r0, [r4, #1] + cmp r0, #0xff + bne _08098C20 + ldrb r0, [r4, #2] + cmp r0, #0xff + bne _08098C20 + ldrb r0, [r4, #3] + cmp r0, #0xff + bne _08098C20 + bl CalculateRamScriptChecksum + ldr r1, [r6] + ldr r2, _08098C14 + adds r1, r1, r2 + ldr r1, [r1] + cmp r0, r1 + bne _08098C1C + ldr r1, _08098C18 + adds r0, r5, r1 + b _08098C22 + .align 2, 0 +_08098C0C: .4byte 0x03005AEC +_08098C10: .4byte 0x0000372C +_08098C14: .4byte 0x00003728 +_08098C18: .4byte 0x00003730 +_08098C1C: + bl ClearRamScript +_08098C20: + movs r0, #0 +_08098C22: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end GetSavedRamScriptIfValid + + thumb_func_start InitRamScript_NoEventObject +InitRamScript_NoEventObject: @ 0x08098C28 + push {lr} + sub sp, #4 + adds r2, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, _08098C50 + cmp r1, r0 + bls _08098C3A + adds r1, r0, #0 +_08098C3A: + movs r0, #0xff + str r0, [sp] + adds r0, r2, #0 + movs r2, #0xff + movs r3, #0xff + bl InitRamScript + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_08098C50: .4byte 0x000003E3 + thumb_func_end InitRamScript_NoEventObject + diff --git a/asm/script_menu.s b/asm/script_menu.s new file mode 100644 index 0000000..3a26f40 --- /dev/null +++ b/asm/script_menu.s @@ -0,0 +1,1969 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ScriptMenu_Multichoice +ScriptMenu_Multichoice: @ 0x080E12C8 + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r4, r3, #0x18 + ldr r0, _080E1304 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080E130C + ldr r0, _080E1308 + movs r1, #0xff + strh r1, [r0] + movs r0, #0 + str r0, [sp] + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r5, #0 + adds r3, r4, #0 + bl DrawMultichoiceMenu + movs r0, #1 + b _080E130E + .align 2, 0 +_080E1304: .4byte 0x080E1569 +_080E1308: .4byte 0x02037290 +_080E130C: + movs r0, #0 +_080E130E: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScriptMenu_Multichoice + + thumb_func_start ScriptMenu_MultichoiceWithDefault +ScriptMenu_MultichoiceWithDefault: @ 0x080E1318 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + ldr r4, [sp, #0x1c] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r5, r3, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _080E1360 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080E1368 + ldr r1, _080E1364 + movs r0, #0xff + strh r0, [r1] + str r4, [sp] + mov r0, r8 + adds r1, r7, #0 + adds r2, r6, #0 + adds r3, r5, #0 + bl DrawMultichoiceMenu + movs r0, #1 + b _080E136A + .align 2, 0 +_080E1360: .4byte 0x080E1569 +_080E1364: .4byte 0x02037290 +_080E1368: + movs r0, #0 +_080E136A: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScriptMenu_MultichoiceWithDefault + + thumb_func_start sub_080E1378 +sub_080E1378: @ 0x080E1378 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #0 + b _080E13AC +_080E1380: + cmp r1, #0xfd + bne _080E13A4 + adds r4, #1 + ldrb r0, [r4] + cmp r0, #1 + bne _080E13AC + ldr r0, _080E13A0 + ldr r0, [r0] + bl StringLength + adds r0, r5, r0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r4, #1 + b _080E13AC + .align 2, 0 +_080E13A0: .4byte 0x03005AF0 +_080E13A4: + adds r4, #1 + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_080E13AC: + ldrb r1, [r4] + adds r0, r1, #0 + cmp r0, #0xff + bne _080E1380 + adds r0, r5, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_080E1378 + + thumb_func_start ScrSpecial_CreatePCMenu +ScrSpecial_CreatePCMenu: @ 0x080E13BC + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + lsls r4, r1, #0x18 + lsrs r4, r4, #0x18 + ldr r0, [r7] + bl sub_080E1378 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r5, #1 + cmp r5, r4 + bhs _080E13F2 +_080E13D4: + lsls r0, r5, #3 + adds r0, r0, r7 + ldr r0, [r0] + bl sub_080E1378 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r6, r0 + bhs _080E13E8 + adds r6, r0, #0 +_080E13E8: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, r4 + blo _080E13D4 +_080E13F2: + adds r0, r6, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScrSpecial_CreatePCMenu + + thumb_func_start DrawMultichoiceMenu +DrawMultichoiceMenu: @ 0x080E13FC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + adds r4, r0, #0 + adds r5, r1, #0 + mov sb, r2 + mov sl, r3 + ldr r0, [sp, #0x34] + mov r8, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sb, r2 + mov r0, sl + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + mov r2, r8 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + ldr r1, _080E14C8 + mov r2, sb + lsls r0, r2, #3 + adds r0, r0, r1 + ldrb r6, [r0, #4] + ldr r7, [r0] + adds r0, r7, #0 + adds r1, r6, #0 + bl ScrSpecial_CreatePCMenu + adds r2, r0, #0 + lsls r2, r2, #0x18 + movs r0, #0x80 + lsls r0, r0, #0x11 + adds r2, r2, r0 + lsrs r2, r2, #0x18 + lsls r3, r6, #0x19 + lsrs r3, r3, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl CreateWindowFromRect + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #0 + bl SetStandardWindowBorderStyle + movs r0, #1 + movs r1, #0 + bl GetFontAttribute + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r5, #0x10 + str r5, [sp] + str r6, [sp, #4] + str r7, [sp, #8] + movs r0, #0 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + adds r0, r4, #0 + movs r1, #1 + movs r3, #2 + bl sub_081988CC + str r5, [sp] + str r6, [sp, #4] + mov r2, r8 + str r2, [sp, #8] + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl sub_081984B0 + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + mov r0, sl + adds r1, r6, #0 + adds r2, r4, #0 + mov r3, sb + bl sub_080E14CC + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E14C8: .4byte 0x08564218 + thumb_func_end DrawMultichoiceMenu + + thumb_func_start sub_080E14CC +sub_080E14CC: @ 0x080E14CC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sb, r2 + lsls r3, r3, #0x18 + lsrs r4, r3, #0x18 + ldr r1, _080E152C + movs r0, #2 + strb r0, [r1] + movs r2, #0 + ldr r6, _080E1530 + ldr r5, _080E1534 + movs r3, #0xc +_080E14F6: + adds r0, r2, r5 + ldrb r0, [r0] + cmp r0, r4 + bne _080E1500 + strb r3, [r1] +_080E1500: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #5 + bls _080E14F6 + adds r0, r6, #0 + movs r1, #0x50 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _080E1538 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r1, r0, r1 + mov r0, r8 + strh r0, [r1, #0x10] + cmp r7, #3 + bls _080E153C + movs r0, #1 + b _080E153E + .align 2, 0 +_080E152C: .4byte 0x02039C30 +_080E1530: .4byte 0x080E1569 +_080E1534: .4byte 0x08564618 +_080E1538: .4byte 0x03005B60 +_080E153C: + movs r0, #0 +_080E153E: + strh r0, [r1, #0x12] + ldr r1, _080E1564 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r0, r0, r1 + mov r1, sb + strh r1, [r0, #0x14] + strh r4, [r0, #0x16] + adds r0, r4, #0 + bl sub_080E1F88 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E1564: .4byte 0x03005B60 + thumb_func_end sub_080E14CC + + thumb_func_start Task_HandleMultichoiceInput +Task_HandleMultichoiceInput: @ 0x080E1568 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _080E1594 + adds r5, r0, r1 + ldr r0, _080E1598 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080E160C + ldr r1, _080E159C + ldrb r0, [r1] + cmp r0, #0 + beq _080E15A0 + subs r0, #1 + strb r0, [r1] + b _080E160C + .align 2, 0 +_080E1594: .4byte 0x03005B68 +_080E1598: .4byte 0x02037C74 +_080E159C: .4byte 0x02039C30 +_080E15A0: + movs r1, #0xa + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _080E15AE + bl Menu_ProcessInputNoWrap + b _080E15B2 +_080E15AE: + bl Menu_ProcessInput +_080E15B2: + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080E15F0 + ldrh r1, [r0, #0x2e] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0 + beq _080E15C8 + ldrb r0, [r5, #0xe] + bl sub_080E1F88 +_080E15C8: + lsls r0, r4, #0x18 + asrs r1, r0, #0x18 + movs r0, #2 + rsbs r0, r0, #0 + cmp r1, r0 + beq _080E160C + adds r0, #1 + cmp r1, r0 + bne _080E15F8 + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _080E160C + movs r0, #5 + bl PlaySE + ldr r1, _080E15F4 + movs r0, #0x7f + strh r0, [r1] + b _080E15FC + .align 2, 0 +_080E15F0: .4byte 0x03002360 +_080E15F4: .4byte 0x02037290 +_080E15F8: + ldr r0, _080E1614 + strh r1, [r0] +_080E15FC: + ldrb r0, [r5, #0xc] + bl ClearToTransparentAndRemoveWindow + adds r0, r6, #0 + bl DestroyTask + bl EnableBothScriptContexts +_080E160C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080E1614: .4byte 0x02037290 + thumb_func_end Task_HandleMultichoiceInput + + thumb_func_start ScriptMenu_YesNo +ScriptMenu_YesNo: @ 0x080E1618 + push {r4, lr} + ldr r4, _080E1640 + adds r0, r4, #0 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080E1648 + ldr r1, _080E1644 + movs r0, #0xff + strh r0, [r1] + bl DisplayYesNoMenuDefaultYes + adds r0, r4, #0 + movs r1, #0x50 + bl CreateTask + movs r0, #1 + b _080E164A + .align 2, 0 +_080E1640: .4byte 0x080E166D +_080E1644: .4byte 0x02037290 +_080E1648: + movs r0, #0 +_080E164A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end ScriptMenu_YesNo + + thumb_func_start IsScriptActive +IsScriptActive: @ 0x080E1650 + push {lr} + ldr r0, _080E1660 + ldrh r0, [r0] + cmp r0, #0xff + beq _080E1664 + movs r0, #1 + b _080E1666 + .align 2, 0 +_080E1660: .4byte 0x02037290 +_080E1664: + movs r0, #0 +_080E1666: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsScriptActive + + thumb_func_start Task_HandleYesNoInput +Task_HandleYesNoInput: @ 0x080E166C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _080E168C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r1, r0, r1 + ldrh r2, [r1, #0xc] + movs r3, #0xc + ldrsh r0, [r1, r3] + cmp r0, #4 + bgt _080E1690 + adds r0, r2, #1 + strh r0, [r1, #0xc] + b _080E16D4 + .align 2, 0 +_080E168C: .4byte 0x03005B60 +_080E1690: + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _080E16B4 + cmp r1, r0 + bgt _080E16AC + subs r0, #1 + cmp r1, r0 + beq _080E16D4 + b _080E16CA +_080E16AC: + cmp r1, #0 + beq _080E16C4 + cmp r1, #1 + bne _080E16CA +_080E16B4: + movs r0, #5 + bl PlaySE + ldr r1, _080E16C0 + movs r0, #0 + b _080E16C8 + .align 2, 0 +_080E16C0: .4byte 0x02037290 +_080E16C4: + ldr r1, _080E16DC + movs r0, #1 +_080E16C8: + strh r0, [r1] +_080E16CA: + adds r0, r4, #0 + bl DestroyTask + bl EnableBothScriptContexts +_080E16D4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E16DC: .4byte 0x02037290 + thumb_func_end Task_HandleYesNoInput + + thumb_func_start sp106_CreateStartMenu +sp106_CreateStartMenu: @ 0x080E16E0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + ldr r4, [sp, #0x3c] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x14] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp, #0x18] + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov sl, r3 + lsls r4, r4, #0x18 + lsrs r7, r4, #0x18 + ldr r0, _080E17C8 + mov sb, r0 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080E17D8 + ldr r1, _080E17CC + movs r0, #0xff + strh r0, [r1] + ldr r1, _080E17D0 + lsls r0, r5, #3 + adds r0, r0, r1 + ldr r1, [r0] + mov r8, r1 + ldrb r5, [r0, #4] + mov r0, r8 + adds r1, r5, #0 + bl ScrSpecial_CreatePCMenu + adds r4, r0, #0 + adds r4, #2 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + adds r1, r7, #0 + bl __udivsi3 + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov r0, sb + movs r1, #0x50 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080E17D4 + lsls r5, r0, #2 + adds r5, r5, r0 + lsls r5, r5, #3 + adds r5, r5, r1 + movs r0, #0 + mov sb, r0 + mov r1, sl + strh r1, [r5, #0x10] + adds r2, r4, #0 + muls r2, r7, r2 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r6, #0x19 + lsrs r3, r3, #0x18 + ldr r0, [sp, #0x14] + ldr r1, [sp, #0x18] + bl CreateWindowFromRect + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x14] + movs r1, #0 + bl SetStandardWindowBorderStyle + ldrb r0, [r5, #0x14] + lsls r4, r4, #0x1b + lsrs r4, r4, #0x18 + str r4, [sp] + movs r1, #0x10 + str r1, [sp, #4] + str r7, [sp, #8] + str r6, [sp, #0xc] + mov r1, r8 + str r1, [sp, #0x10] + movs r1, #1 + movs r2, #8 + movs r3, #2 + bl sub_08198DA4 + ldrb r0, [r5, #0x14] + str r4, [sp] + str r7, [sp, #4] + str r6, [sp, #8] + mov r1, sb + str r1, [sp, #0xc] + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl sub_081990E4 + ldrb r0, [r5, #0x14] + movs r1, #3 + bl CopyWindowToVram + movs r0, #1 + b _080E17DA + .align 2, 0 +_080E17C8: .4byte 0x080E17ED +_080E17CC: .4byte 0x02037290 +_080E17D0: .4byte 0x08564218 +_080E17D4: .4byte 0x03005B60 +_080E17D8: + movs r0, #0 +_080E17DA: + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sp106_CreateStartMenu + + thumb_func_start Task_HandleMultichoiceGridInput +Task_HandleMultichoiceGridInput: @ 0x080E17EC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _080E1828 + adds r5, r0, r1 + bl Menu_ProcessInputGridLayout + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + movs r0, #2 + rsbs r0, r0, #0 + cmp r1, r0 + beq _080E1844 + adds r0, #1 + cmp r1, r0 + bne _080E1830 + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _080E1844 + movs r0, #5 + bl PlaySE + ldr r1, _080E182C + movs r0, #0x7f + strh r0, [r1] + b _080E1834 + .align 2, 0 +_080E1828: .4byte 0x03005B68 +_080E182C: .4byte 0x02037290 +_080E1830: + ldr r0, _080E184C + strh r1, [r0] +_080E1834: + ldrb r0, [r5, #0xc] + bl ClearToTransparentAndRemoveWindow + adds r0, r4, #0 + bl DestroyTask + bl EnableBothScriptContexts +_080E1844: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080E184C: .4byte 0x02037290 + thumb_func_end Task_HandleMultichoiceGridInput + + thumb_func_start sub_080E1850 +sub_080E1850: @ 0x080E1850 + push {lr} + ldr r0, _080E1870 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080E1878 + ldr r1, _080E1874 + movs r0, #0xff + strh r0, [r1] + bl CreatePCMenu + movs r0, #1 + b _080E187A + .align 2, 0 +_080E1870: .4byte 0x080E1569 +_080E1874: .4byte 0x02037290 +_080E1878: + movs r0, #0 +_080E187A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080E1850 + + thumb_func_start CreatePCMenu +CreatePCMenu: @ 0x080E1880 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + movs r0, #1 + movs r1, #0 + bl GetFontAttribute + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r0, #1 + movs r1, #1 + bl GetFontAttribute + ldr r0, _080E18BC + bl sub_080E1378 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, _080E18C0 + bl sub_080E1378 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r4, r0 + bls _080E18C4 + lsls r0, r4, #0x18 + lsrs r4, r0, #0x18 + b _080E18C6 + .align 2, 0 +_080E18BC: .4byte 0x085CACFE +_080E18C0: .4byte 0x085CACEC +_080E18C4: + movs r4, #8 +_080E18C6: + ldr r0, _080E1924 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + beq _080E1930 + movs r0, #4 + mov r8, r0 + adds r2, r4, #4 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r0, #0 + movs r1, #0 + movs r3, #8 + bl CreateWindowFromRect + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r0, r6, #0 + movs r1, #0 + bl SetStandardWindowBorderStyle + ldr r2, _080E1928 + movs r0, #0x22 + str r0, [sp] + movs r5, #0xff + str r5, [sp, #4] + movs r4, #0 + str r4, [sp, #8] + adds r0, r6, #0 + movs r1, #1 + adds r3, r7, #0 + bl AddTextPrinterParameterized + ldr r2, _080E192C + movs r0, #0x32 + str r0, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + adds r0, r6, #0 + movs r1, #1 + adds r3, r7, #0 + bl AddTextPrinterParameterized + b _080E1966 + .align 2, 0 +_080E1924: .4byte 0x00000864 +_080E1928: .4byte 0x085CAD06 +_080E192C: .4byte 0x085CAD0D +_080E1930: + movs r0, #3 + mov r8, r0 + adds r2, r4, #4 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r0, #0 + movs r1, #0 + movs r3, #6 + bl CreateWindowFromRect + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r0, r6, #0 + movs r1, #0 + bl SetStandardWindowBorderStyle + ldr r2, _080E1990 + movs r0, #0x22 + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + str r5, [sp, #8] + adds r0, r6, #0 + movs r1, #1 + adds r3, r7, #0 + bl AddTextPrinterParameterized +_080E1966: + ldr r0, _080E1994 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _080E199C + ldr r2, _080E1998 + movs r0, #2 + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + adds r0, r6, #0 + movs r1, #1 + adds r3, r7, #0 + bl AddTextPrinterParameterized + b _080E19B2 + .align 2, 0 +_080E1990: .4byte 0x085CAD0D +_080E1994: .4byte 0x000008AB +_080E1998: .4byte 0x085CACF5 +_080E199C: + ldr r2, _080E1A00 + movs r0, #2 + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + str r1, [sp, #8] + adds r0, r6, #0 + movs r1, #1 + adds r3, r7, #0 + bl AddTextPrinterParameterized +_080E19B2: + ldr r4, _080E1A04 + ldr r1, _080E1A08 + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r7, #0 + movs r3, #0x12 + bl PrintPlayerNameOnWindow + movs r0, #0x10 + str r0, [sp] + mov r0, r8 + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + adds r0, r6, #0 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl sub_081984B0 + adds r0, r6, #0 + movs r1, #3 + bl CopyWindowToVram + movs r0, #0 + mov r1, r8 + adds r2, r6, #0 + movs r3, #1 + bl sub_080E14CC + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E1A00: .4byte 0x085CACEC +_080E1A04: .4byte 0x02021C7C +_080E1A08: .4byte 0x085CACFE + thumb_func_end CreatePCMenu + + thumb_func_start ScriptMenu_DisplayPCStartupPrompt +ScriptMenu_DisplayPCStartupPrompt: @ 0x080E1A0C + push {lr} + sub sp, #0x10 + movs r0, #0 + movs r1, #1 + bl sub_08197650 + ldr r2, _080E1A3C + movs r0, #0 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + movs r0, #3 + str r0, [sp, #0xc] + movs r0, #0 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized2 + add sp, #0x10 + pop {r0} + bx r0 + .align 2, 0 +_080E1A3C: .4byte 0x082436CD + thumb_func_end ScriptMenu_DisplayPCStartupPrompt + + thumb_func_start display_text_and_get_width_internal +display_text_and_get_width_internal: @ 0x080E1A40 + push {lr} + ldr r0, _080E1A60 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080E1A68 + ldr r1, _080E1A64 + movs r0, #0xff + strh r0, [r1] + bl sub_080E1A70 + movs r0, #1 + b _080E1A6A + .align 2, 0 +_080E1A60: .4byte 0x080E1569 +_080E1A64: .4byte 0x02037290 +_080E1A68: + movs r0, #0 +_080E1A6A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end display_text_and_get_width_internal + + thumb_func_start sub_080E1A70 +sub_080E1A70: @ 0x080E1A70 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0xc + movs r6, #0 + movs r5, #0 + movs r4, #0 + ldr r3, _080E1C94 + movs r2, #0xff +_080E1A84: + adds r0, r4, r3 + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #6 + bls _080E1A84 + movs r0, #1 + movs r1, #0 + bl GetFontAttribute + ldr r0, _080E1C98 + ldrh r1, [r0] + cmp r1, #0 + bne _080E1ACE + movs r6, #6 + ldr r4, _080E1C94 + adds r0, r5, r4 + strb r1, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r0, #0xe8 + lsls r0, r0, #1 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #1 + bne _080E1ACE + adds r0, r5, r4 + strb r1, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_080E1ACE: + ldr r0, _080E1C9C + movs r1, #1 + bl CheckBagHasItem + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080E1B30 + ldr r0, _080E1CA0 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080E1B30 + ldr r2, _080E1C98 + ldrh r0, [r2] + cmp r0, #0 + bne _080E1B04 + movs r6, #7 + ldr r0, _080E1C94 + adds r0, r5, r0 + movs r1, #2 + strb r1, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_080E1B04: + ldrh r0, [r2] + cmp r0, #1 + bne _080E1B30 + movs r4, #0xd7 + lsls r4, r4, #1 + adds r0, r4, #0 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080E1B30 + movs r6, #7 + ldr r0, _080E1C94 + adds r0, r5, r0 + movs r1, #2 + strb r1, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r4, #0 + bl FlagSet +_080E1B30: + movs r0, #0xb9 + lsls r0, r0, #1 + movs r1, #1 + bl CheckBagHasItem + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080E1B90 + movs r0, #0x8e + lsls r0, r0, #4 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080E1B90 + ldr r2, _080E1C98 + ldrh r0, [r2] + cmp r0, #0 + bne _080E1B68 + ldr r0, _080E1C94 + adds r0, r5, r0 + movs r1, #3 + strb r1, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_080E1B68: + ldrh r0, [r2] + cmp r0, #1 + bne _080E1B90 + ldr r4, _080E1CA4 + adds r0, r4, #0 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080E1B90 + ldr r0, _080E1C94 + adds r0, r5, r0 + movs r1, #3 + strb r1, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r4, #0 + bl FlagSet +_080E1B90: + ldr r0, _080E1CA8 + movs r1, #1 + bl CheckBagHasItem + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080E1BF0 + ldr r0, _080E1CAC + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080E1BF0 + ldr r2, _080E1C98 + ldrh r0, [r2] + cmp r0, #0 + bne _080E1BC6 + movs r6, #8 + ldr r0, _080E1C94 + adds r0, r5, r0 + movs r1, #4 + strb r1, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_080E1BC6: + ldrh r0, [r2] + cmp r0, #1 + bne _080E1BF0 + ldr r4, _080E1CB0 + adds r0, r4, #0 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080E1BF0 + movs r6, #8 + ldr r0, _080E1C94 + adds r0, r5, r0 + movs r1, #4 + strb r1, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r4, #0 + bl FlagSet +_080E1BF0: + movs r0, #0xbc + lsls r0, r0, #1 + movs r1, #1 + bl CheckBagHasItem + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080E1C54 + ldr r0, _080E1CB4 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080E1C54 + ldr r2, _080E1C98 + ldrh r0, [r2] + cmp r0, #0 + bne _080E1C28 + movs r6, #8 + ldr r0, _080E1C94 + adds r0, r5, r0 + movs r1, #5 + strb r1, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_080E1C28: + ldrh r0, [r2] + cmp r0, #1 + bne _080E1C54 + movs r4, #0xd8 + lsls r4, r4, #1 + adds r0, r4, #0 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080E1C54 + movs r6, #8 + ldr r0, _080E1C94 + adds r0, r5, r0 + movs r1, #5 + strb r1, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r4, #0 + bl FlagSet +_080E1C54: + ldr r0, _080E1C94 + adds r0, r5, r0 + movs r1, #6 + strb r1, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _080E1C98 + ldrh r0, [r0] + cmp r0, #0 + bne _080E1C7C + movs r0, #0xe8 + lsls r0, r0, #1 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080E1C7C + movs r6, #9 +_080E1C7C: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r7, r5, #0 + cmp r7, #7 + bne _080E1CB8 + ldr r1, _080E1C98 + movs r0, #0xb + strh r0, [r1] + bl sub_0813A164 + b _080E1D54 + .align 2, 0 +_080E1C94: .4byte 0x03001124 +_080E1C98: .4byte 0x02037280 +_080E1C9C: .4byte 0x00000113 +_080E1CA0: .4byte 0x000008B3 +_080E1CA4: .4byte 0x000001DB +_080E1CA8: .4byte 0x00000173 +_080E1CAC: .4byte 0x000008D5 +_080E1CB0: .4byte 0x000001AF +_080E1CB4: .4byte 0x000008D6 +_080E1CB8: + movs r0, #0x1c + subs r0, r0, r6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #6 + subs r1, r1, r7 + lsls r1, r1, #0x19 + lsrs r1, r1, #0x18 + lsls r3, r7, #0x19 + lsrs r3, r3, #0x18 + adds r2, r6, #0 + bl CreateWindowFromRect + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r0, r6, #0 + movs r1, #0 + bl SetStandardWindowBorderStyle + movs r5, #0 + movs r4, #0 + subs r0, r7, #1 + mov r8, r0 + ldr r1, _080E1D64 + mov sb, r1 +_080E1CEA: + ldr r0, _080E1D68 + adds r1, r4, r0 + ldrb r0, [r1] + cmp r0, #0xff + beq _080E1D1C + lsls r0, r0, #2 + add r0, sb + ldr r2, [r0] + lsls r0, r5, #4 + adds r0, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + adds r0, r6, #0 + movs r1, #1 + movs r3, #8 + bl AddTextPrinterParameterized + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_080E1D1C: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #6 + bls _080E1CEA + movs r0, #0x10 + str r0, [sp] + str r7, [sp, #4] + mov r1, r8 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #8] + adds r0, r6, #0 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl sub_081984B0 + adds r0, r6, #0 + movs r1, #3 + bl CopyWindowToVram + movs r0, #0 + adds r1, r7, #0 + adds r2, r6, #0 + movs r3, #8 + bl sub_080E14CC +_080E1D54: + add sp, #0xc + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E1D64: .4byte 0x08564620 +_080E1D68: .4byte 0x03001124 + thumb_func_end sub_080E1A70 + + thumb_func_start sub_080E1D6C +sub_080E1D6C: @ 0x080E1D6C + push {lr} + ldr r2, _080E1D84 + ldrh r0, [r2] + cmp r0, #0x7f + beq _080E1D80 + ldr r0, _080E1D88 + ldrh r1, [r2] + adds r1, r1, r0 + ldrb r0, [r1] + strh r0, [r2] +_080E1D80: + pop {r0} + bx r0 + .align 2, 0 +_080E1D84: .4byte 0x02037290 +_080E1D88: .4byte 0x03001124 + thumb_func_end sub_080E1D6C + + thumb_func_start Task_PokemonPicWindow +Task_PokemonPicWindow: @ 0x080E1D8C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080E1DB0 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _080E1DEC + cmp r0, #1 + bgt _080E1DB4 + cmp r0, #0 + beq _080E1DD2 + b _080E1DEC + .align 2, 0 +_080E1DB0: .4byte 0x03005B60 +_080E1DB4: + cmp r0, #2 + beq _080E1DBE + cmp r0, #3 + beq _080E1DE0 + b _080E1DEC +_080E1DBE: + movs r0, #0xc + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080E1DDC + adds r0, r0, r1 + ldrb r1, [r4, #0xc] + bl FreeResourcesAndDestroySprite +_080E1DD2: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _080E1DEC + .align 2, 0 +_080E1DDC: .4byte 0x020205AC +_080E1DE0: + ldrb r0, [r4, #0x12] + bl ClearToTransparentAndRemoveWindow + adds r0, r5, #0 + bl DestroyTask +_080E1DEC: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Task_PokemonPicWindow + + thumb_func_start ScriptMenu_ShowPokemonPic +ScriptMenu_ShowPokemonPic: @ 0x080E1DF4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + ldr r4, _080E1E9C + adds r0, r4, #0 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080E1EAC + lsls r1, r7, #0x13 + movs r0, #0xa0 + lsls r0, r0, #0xe + adds r1, r1, r0 + asrs r1, r1, #0x10 + lsls r2, r6, #0x13 + adds r2, r2, r0 + asrs r2, r2, #0x10 + mov r0, r8 + movs r3, #0 + bl CreateMonSprite_PicBox + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + adds r0, r4, #0 + movs r1, #0x50 + bl CreateTask + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r7, #0 + adds r1, r6, #0 + movs r2, #8 + movs r3, #8 + bl CreateWindowFromRect + ldr r1, _080E1EA0 + lsls r3, r4, #2 + adds r3, r3, r4 + lsls r3, r3, #3 + adds r3, r3, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + strh r0, [r3, #0x12] + strh r1, [r3, #8] + mov r0, r8 + strh r0, [r3, #0xa] + strh r5, [r3, #0xc] + ldr r4, _080E1EA4 + lsls r1, r5, #4 + adds r1, r1, r5 + lsls r1, r1, #2 + adds r0, r4, #0 + adds r0, #0x1c + adds r0, r1, r0 + ldr r2, _080E1EA8 + str r2, [r0] + adds r1, r1, r4 + ldrb r2, [r1, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #5] + ldrb r0, [r3, #0x12] + movs r1, #1 + bl SetStandardWindowBorderStyle + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #1 + b _080E1EAE + .align 2, 0 +_080E1E9C: .4byte 0x080E1D8D +_080E1EA0: .4byte 0x03005B60 +_080E1EA4: .4byte 0x020205AC +_080E1EA8: .4byte 0x08007141 +_080E1EAC: + movs r0, #0 +_080E1EAE: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end ScriptMenu_ShowPokemonPic + + thumb_func_start ScriptMenu_GetPicboxWaitFunc +ScriptMenu_GetPicboxWaitFunc: @ 0x080E1EB8 + push {lr} + ldr r0, _080E1EDC + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xff + beq _080E1EE8 + ldr r0, _080E1EE0 + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + ldr r0, _080E1EE4 + b _080E1EEA + .align 2, 0 +_080E1EDC: .4byte 0x080E1D8D +_080E1EE0: .4byte 0x03005B60 +_080E1EE4: .4byte 0x080E1EF1 +_080E1EE8: + movs r0, #0 +_080E1EEA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScriptMenu_GetPicboxWaitFunc + + thumb_func_start IsPicboxClosed +IsPicboxClosed: @ 0x080E1EF0 + push {lr} + ldr r0, _080E1F04 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _080E1F08 + movs r0, #0 + b _080E1F0A + .align 2, 0 +_080E1F04: .4byte 0x080E1D8D +_080E1F08: + movs r0, #1 +_080E1F0A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsPicboxClosed + + thumb_func_start CreateWindowFromRect +CreateWindowFromRect: @ 0x080E1F10 + push {r4, r5, lr} + sub sp, #0x20 + adds r4, r0, #0 + adds r5, r1, #0 + lsls r4, r4, #0x18 + lsls r5, r5, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #0x80 + lsls r0, r0, #0x11 + adds r4, r4, r0 + lsrs r4, r4, #0x18 + adds r5, r5, r0 + lsrs r5, r5, #0x18 + str r2, [sp] + str r3, [sp, #4] + movs r0, #0xf + str r0, [sp, #8] + movs r0, #0x5c + str r0, [sp, #0xc] + add r0, sp, #0x10 + movs r1, #0 + adds r2, r4, #0 + adds r3, r5, #0 + bl CreateWindowTemplate + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + str r0, [sp, #0x18] + str r1, [sp, #0x1c] + add r0, sp, #0x18 + bl AddWindow + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl PutWindowTilemap + adds r0, r4, #0 + add sp, #0x20 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end CreateWindowFromRect + + thumb_func_start ClearToTransparentAndRemoveWindow +ClearToTransparentAndRemoveWindow: @ 0x080E1F6C + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #1 + bl ClearStdWindowAndFrameToTransparent + adds r0, r4, #0 + bl RemoveWindow + pop {r4} + pop {r0} + bx r0 + thumb_func_end ClearToTransparentAndRemoveWindow + + thumb_func_start sub_080E1F88 +sub_080E1F88: @ 0x080E1F88 + push {r4, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, #0x4a + cmp r0, #5 + bhi _080E2064 + lsls r0, r0, #2 + ldr r1, _080E1FA0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E1FA0: .4byte 0x080E1FA4 +_080E1FA4: @ jump table + .4byte _080E2034 @ case 0 + .4byte _080E1FFC @ case 1 + .4byte _080E1FCC @ case 2 + .4byte _080E1FBC @ case 3 + .4byte _080E1FDC @ case 4 + .4byte _080E1FEC @ case 5 +_080E1FBC: + movs r0, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r4, _080E1FC8 + b _080E2006 + .align 2, 0 +_080E1FC8: .4byte 0x0856464C +_080E1FCC: + movs r0, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r4, _080E1FD8 + b _080E2006 + .align 2, 0 +_080E1FD8: .4byte 0x0856463C +_080E1FDC: + movs r0, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r4, _080E1FE8 + b _080E2006 + .align 2, 0 +_080E1FE8: .4byte 0x0856465C +_080E1FEC: + movs r0, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r4, _080E1FF8 + b _080E2006 + .align 2, 0 +_080E1FF8: .4byte 0x0856466C +_080E1FFC: + movs r0, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r4, _080E2030 +_080E2006: + bl Menu_GetCursorPos + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r0, r0, r4 + ldr r2, [r0] + movs r0, #0 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + movs r0, #3 + str r0, [sp, #0xc] + movs r0, #0 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized2 + b _080E2064 + .align 2, 0 +_080E2030: .4byte 0x0856468C +_080E2034: + movs r0, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r4, _080E206C + bl Menu_GetCursorPos + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r0, r0, r4 + ldr r2, [r0] + movs r0, #0 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + movs r0, #3 + str r0, [sp, #0xc] + movs r0, #0 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized2 +_080E2064: + add sp, #0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E206C: .4byte 0x08564680 + thumb_func_end sub_080E1F88 + + thumb_func_start convert_pixel_width_to_tile_width +convert_pixel_width_to_tile_width: @ 0x080E2070 + push {lr} + ldr r0, _080E2090 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080E2098 + ldr r1, _080E2094 + movs r0, #0xff + strh r0, [r1] + bl CreateStartMenu + movs r0, #1 + b _080E209A + .align 2, 0 +_080E2090: .4byte 0x080E1569 +_080E2094: .4byte 0x02037290 +_080E2098: + movs r0, #0 +_080E209A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end convert_pixel_width_to_tile_width + + thumb_func_start CreateStartMenu +CreateStartMenu: @ 0x080E20A0 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + sub sp, #0xc + movs r0, #1 + movs r1, #0 + bl GetFontAttribute + adds r5, r0, #0 + adds r5, #1 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r0, #1 + movs r1, #1 + bl GetFontAttribute + movs r0, #8 + mov sl, r0 + movs r0, #0x10 + mov sb, r0 + movs r0, #0x16 + movs r1, #0 + movs r2, #6 + movs r3, #0x10 + bl CreateWindowFromRect + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #0 + bl SetStandardWindowBorderStyle + ldr r2, _080E21D8 + movs r0, #2 + str r0, [sp] + movs r0, #0xff + mov r8, r0 + str r0, [sp, #4] + movs r6, #0 + str r6, [sp, #8] + adds r0, r4, #0 + movs r1, #1 + adds r3, r5, #0 + bl AddTextPrinterParameterized + ldr r2, _080E21DC + movs r0, #0x12 + str r0, [sp] + mov r0, r8 + str r0, [sp, #4] + str r6, [sp, #8] + adds r0, r4, #0 + movs r1, #1 + adds r3, r5, #0 + bl AddTextPrinterParameterized + ldr r2, _080E21E0 + movs r0, #0x22 + str r0, [sp] + mov r0, r8 + str r0, [sp, #4] + str r6, [sp, #8] + adds r0, r4, #0 + movs r1, #1 + adds r3, r5, #0 + bl AddTextPrinterParameterized + ldr r2, _080E21E4 + movs r0, #0x32 + str r0, [sp] + mov r0, r8 + str r0, [sp, #4] + str r6, [sp, #8] + adds r0, r4, #0 + movs r1, #1 + adds r3, r5, #0 + bl AddTextPrinterParameterized + ldr r0, _080E21E8 + ldr r2, [r0] + movs r0, #0x42 + str r0, [sp] + mov r0, r8 + str r0, [sp, #4] + str r6, [sp, #8] + adds r0, r4, #0 + movs r1, #1 + adds r3, r5, #0 + bl AddTextPrinterParameterized + ldr r2, _080E21EC + movs r0, #0x52 + str r0, [sp] + mov r0, r8 + str r0, [sp, #4] + str r6, [sp, #8] + adds r0, r4, #0 + movs r1, #1 + adds r3, r5, #0 + bl AddTextPrinterParameterized + ldr r2, _080E21F0 + movs r0, #0x62 + str r0, [sp] + mov r0, r8 + str r0, [sp, #4] + str r6, [sp, #8] + adds r0, r4, #0 + movs r1, #1 + adds r3, r5, #0 + bl AddTextPrinterParameterized + ldr r2, _080E21F4 + movs r0, #0x72 + str r0, [sp] + mov r0, r8 + str r0, [sp, #4] + str r6, [sp, #8] + adds r0, r4, #0 + movs r1, #1 + adds r3, r5, #0 + bl AddTextPrinterParameterized + mov r0, sb + str r0, [sp] + mov r0, sl + str r0, [sp, #4] + str r6, [sp, #8] + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl sub_081984B0 + movs r0, #0 + movs r1, #8 + adds r2, r4, #0 + movs r3, #0x56 + bl sub_080E21F8 + adds r0, r4, #0 + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080E21D8: .4byte 0x085CADAE +_080E21DC: .4byte 0x085CADB2 +_080E21E0: .4byte 0x085CADB7 +_080E21E4: .4byte 0x085CADBB +_080E21E8: .4byte 0x03005AF0 +_080E21EC: .4byte 0x085CADC6 +_080E21F0: .4byte 0x085CADCB +_080E21F4: .4byte 0x085CADD0 + thumb_func_end CreateStartMenu + + thumb_func_start sub_080E21F8 +sub_080E21F8: @ 0x080E21F8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r2, #0 + adds r6, r3, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + ldr r1, _080E2238 + movs r0, #2 + strb r0, [r1] + ldr r0, _080E223C + movs r1, #0x50 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080E2240 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r0, #0 + strh r4, [r1, #0x10] + strh r0, [r1, #0x12] + strh r5, [r1, #0x14] + strh r6, [r1, #0x16] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080E2238: .4byte 0x02039C30 +_080E223C: .4byte 0x080E1569 +_080E2240: .4byte 0x03005B60 + thumb_func_end sub_080E21F8 + diff --git a/asm/script_movement.s b/asm/script_movement.s new file mode 100644 index 0000000..199f274 --- /dev/null +++ b/asm/script_movement.s @@ -0,0 +1,598 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ScriptMovement_StartObjectMovementScript +ScriptMovement_StartObjectMovementScript: @ 0x080D2B88 + push {r4, lr} + sub sp, #4 + adds r4, r3, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D2BAA + movs r0, #1 + b _080D2BD2 +_080D2BAA: + ldr r0, _080D2BDC + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080D2BBC + movs r0, #0x32 + bl sub_080D2C4C +_080D2BBC: + bl sub_080D2C94 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, sp + ldrb r1, [r1] + adds r2, r4, #0 + bl sub_080D2CA8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_080D2BD2: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080D2BDC: .4byte 0x080D2F01 + thumb_func_end ScriptMovement_StartObjectMovementScript + + thumb_func_start ScriptMovement_IsObjectMovementFinished +ScriptMovement_IsObjectMovementFinished: @ 0x080D2BE0 + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080D2C22 + bl sub_080D2C94 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + mov r0, sp + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080D2D14 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x10 + beq _080D2C22 + adds r0, r4, #0 + bl sub_080D2E24 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _080D2C24 +_080D2C22: + movs r0, #1 +_080D2C24: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end ScriptMovement_IsObjectMovementFinished + + thumb_func_start sub_080D2C2C +sub_080D2C2C: @ 0x080D2C2C + push {r4, lr} + bl sub_080D2C94 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xff + beq _080D2C46 + adds r0, r4, #0 + bl UnfreezeObjects + adds r0, r4, #0 + bl DestroyTask +_080D2C46: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_080D2C2C + + thumb_func_start sub_080D2C4C +sub_080D2C4C: @ 0x080D2C4C + push {r4, r5, lr} + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, _080D2C88 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #1 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r3, r1, #3 + ldr r5, _080D2C8C + ldr r0, _080D2C90 + adds r4, r0, #0 +_080D2C6C: + lsls r0, r2, #1 + adds r0, r0, r3 + adds r0, r0, r5 + ldrh r1, [r0] + orrs r1, r4 + strh r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xf + bls _080D2C6C + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D2C88: .4byte 0x080D2F01 +_080D2C8C: .4byte 0x03005B68 +_080D2C90: .4byte 0x0000FFFF + thumb_func_end sub_080D2C4C + + thumb_func_start sub_080D2C94 +sub_080D2C94: @ 0x080D2C94 + push {lr} + ldr r0, _080D2CA4 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_080D2CA4: .4byte 0x080D2F01 + thumb_func_end sub_080D2C94 + + thumb_func_start sub_080D2CA8 +sub_080D2CA8: @ 0x080D2CA8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov sb, r2 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r7, r5, #0 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + mov r8, r6 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_080D2D14 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x10 + beq _080D2CE4 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080D2E24 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D2D04 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r6, #0 + b _080D2CFA +_080D2CE4: + adds r0, r7, #0 + movs r1, #0xff + bl sub_080D2D14 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x10 + beq _080D2D04 + adds r0, r7, #0 + adds r1, r4, #0 + mov r2, r8 +_080D2CFA: + mov r3, sb + bl sub_080D2E7C + movs r0, #0 + b _080D2D06 +_080D2D04: + movs r0, #1 +_080D2D06: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080D2CA8 + + thumb_func_start sub_080D2D14 +sub_080D2D14: @ 0x080D2D14 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080D2D38 + adds r1, r1, r0 + adds r1, #2 + movs r2, #0 +_080D2D2C: + ldrb r0, [r1] + cmp r0, r3 + bne _080D2D3C + adds r0, r2, #0 + b _080D2D4A + .align 2, 0 +_080D2D38: .4byte 0x03005B68 +_080D2D3C: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r1, #1 + cmp r2, #0xf + bls _080D2D2C + movs r0, #0x10 +_080D2D4A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080D2D14 + + thumb_func_start sub_080D2D50 +sub_080D2D50: @ 0x080D2D50 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080D2D80 + adds r1, r1, r0 + adds r1, #2 + str r1, [r2] + movs r0, #0 + cmp r0, r3 + bhs _080D2D7C +_080D2D6E: + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, #1 + cmp r0, r3 + blo _080D2D6E + str r1, [r2] +_080D2D7C: + pop {r0} + bx r0 + .align 2, 0 +_080D2D80: .4byte 0x03005B68 + thumb_func_end sub_080D2D50 + + thumb_func_start sub_080D2D84 +sub_080D2D84: @ 0x080D2D84 + push {r4, lr} + sub sp, #4 + adds r4, r2, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r2, sp + bl sub_080D2D50 + ldr r0, [sp] + strb r4, [r0] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_080D2D84 + + thumb_func_start sub_080D2DA8 +sub_080D2DA8: @ 0x080D2DA8 + push {r4, lr} + sub sp, #4 + adds r4, r2, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r2, sp + bl sub_080D2D50 + ldr r0, [sp] + ldrb r0, [r0] + strb r0, [r4] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080D2DA8 + + thumb_func_start sub_080D2DCC +sub_080D2DCC: @ 0x080D2DCC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + ldr r2, _080D2DF4 + lsrs r1, r1, #0x16 + adds r1, r1, r2 + ldr r2, [r1] + mvns r2, r2 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldr r3, _080D2DF8 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r3 + ldrh r0, [r1, #8] + ands r2, r0 + strh r2, [r1, #8] + bx lr + .align 2, 0 +_080D2DF4: .4byte 0x082FACB4 +_080D2DF8: .4byte 0x03005B60 + thumb_func_end sub_080D2DCC + + thumb_func_start sub_080D2DFC +sub_080D2DFC: @ 0x080D2DFC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + ldr r3, _080D2E1C + lsls r2, r0, #2 + adds r2, r2, r0 + lsls r2, r2, #3 + adds r2, r2, r3 + ldr r0, _080D2E20 + lsrs r1, r1, #0x16 + adds r1, r1, r0 + ldr r0, [r1] + ldrh r1, [r2, #8] + orrs r0, r1 + strh r0, [r2, #8] + bx lr + .align 2, 0 +_080D2E1C: .4byte 0x03005B60 +_080D2E20: .4byte 0x082FACB4 + thumb_func_end sub_080D2DFC + + thumb_func_start sub_080D2E24 +sub_080D2E24: @ 0x080D2E24 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + ldr r3, _080D2E4C + lsls r2, r0, #2 + adds r2, r2, r0 + lsls r2, r2, #3 + adds r2, r2, r3 + ldr r0, _080D2E50 + lsrs r1, r1, #0x16 + adds r1, r1, r0 + ldr r0, [r1] + ldrh r1, [r2, #8] + ands r0, r1 + cmp r0, #0 + bne _080D2E54 + movs r0, #0 + b _080D2E56 + .align 2, 0 +_080D2E4C: .4byte 0x03005B60 +_080D2E50: .4byte 0x082FACB4 +_080D2E54: + movs r0, #1 +_080D2E56: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080D2E24 + + thumb_func_start npc_obj_offscreen_culling_and_flag_update +npc_obj_offscreen_culling_and_flag_update: @ 0x080D2E5C + lsls r0, r0, #0x18 + ldr r2, _080D2E68 + lsrs r0, r0, #0x16 + adds r0, r0, r2 + str r1, [r0] + bx lr + .align 2, 0 +_080D2E68: .4byte 0x02039A30 + thumb_func_end npc_obj_offscreen_culling_and_flag_update + + thumb_func_start sub_080D2E6C +sub_080D2E6C: @ 0x080D2E6C + lsls r0, r0, #0x18 + ldr r1, _080D2E78 + lsrs r0, r0, #0x16 + adds r0, r0, r1 + ldr r0, [r0] + bx lr + .align 2, 0 +_080D2E78: .4byte 0x02039A30 + thumb_func_end sub_080D2E6C + + thumb_func_start sub_080D2E7C +sub_080D2E7C: @ 0x080D2E7C + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r5, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + mov r8, r3 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080D2DCC + adds r0, r4, #0 + mov r1, r8 + bl npc_obj_offscreen_culling_and_flag_update + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r6, #0 + bl sub_080D2D84 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080D2E7C + + thumb_func_start UnfreezeObjects +UnfreezeObjects: @ 0x080D2EBC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080D2EF8 + adds r1, r1, r0 + adds r4, r1, #2 + movs r5, #0 +_080D2ED0: + ldrb r0, [r4] + cmp r0, #0xff + beq _080D2EE6 + adds r1, r0, #0 + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080D2EFC + adds r0, r0, r1 + bl UnfreezeEventObject +_080D2EE6: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r4, #1 + cmp r5, #0xf + bls _080D2ED0 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080D2EF8: .4byte 0x03005B68 +_080D2EFC: .4byte 0x02036FF0 + thumb_func_end UnfreezeObjects + + thumb_func_start sub_080D2F00 +sub_080D2F00: @ 0x080D2F00 + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r5, #0 + mov r6, sp +_080D2F0C: + adds r0, r7, #0 + adds r1, r5, #0 + mov r2, sp + bl sub_080D2DA8 + ldrb r0, [r6] + cmp r0, #0xff + beq _080D2F30 + adds r4, r0, #0 + adds r0, r5, #0 + bl sub_080D2E6C + adds r3, r0, #0 + adds r0, r7, #0 + adds r1, r5, #0 + adds r2, r4, #0 + bl sub_080D2F44 +_080D2F30: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0xf + bls _080D2F0C + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080D2F00 + + thumb_func_start sub_080D2F44 +sub_080D2F44: @ 0x080D2F44 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r3, #0 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + mov r8, r6 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r1, _080D2F94 + adds r4, r0, r1 + adds r0, r4, #0 + bl EventObjectIsHeldMovementActive + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D2F7C + adds r0, r4, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080D2FAE +_080D2F7C: + ldrb r1, [r5] + cmp r1, #0xfe + bne _080D2F98 + adds r0, r7, #0 + adds r1, r6, #0 + bl sub_080D2DFC + adds r0, r4, #0 + bl FreezeEventObject + b _080D2FAE + .align 2, 0 +_080D2F94: .4byte 0x02036FF0 +_080D2F98: + adds r0, r4, #0 + bl EventObjectSetHeldMovement + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080D2FAE + adds r5, #1 + mov r0, r8 + adds r1, r5, #0 + bl npc_obj_offscreen_culling_and_flag_update +_080D2FAE: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_080D2F44 + diff --git a/asm/script_pokemon_util_80F87D8.s b/asm/script_pokemon_util_80F87D8.s new file mode 100644 index 0000000..80a8b66 --- /dev/null +++ b/asm/script_pokemon_util_80F87D8.s @@ -0,0 +1,1798 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start SetContestTrainerGfxIds +SetContestTrainerGfxIds: @ 0x080F9068 + push {r4, lr} + ldr r0, _080F9098 + ldr r2, [r0] + ldr r1, _080F909C + ldrb r3, [r1, #0x15] + ldr r4, _080F90A0 + adds r0, r2, r4 + strh r3, [r0] + adds r0, r1, #0 + adds r0, #0x55 + ldrb r3, [r0] + adds r4, #2 + adds r0, r2, r4 + strh r3, [r0] + adds r1, #0x95 + ldrb r0, [r1] + movs r1, #0x9e + lsls r1, r1, #5 + adds r2, r2, r1 + strh r0, [r2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F9098: .4byte 0x03005AEC +_080F909C: .4byte 0x02039AA0 +_080F90A0: .4byte 0x000013BC + thumb_func_end SetContestTrainerGfxIds + + thumb_func_start sub_080F90A4 +sub_080F90A4: @ 0x080F90A4 + push {lr} + ldr r0, _080F90BC + ldrb r0, [r0] + adds r1, r0, #0 + cmp r0, #1 + beq _080F90CA + cmp r0, #1 + bgt _080F90C0 + cmp r0, #0 + beq _080F90C6 + b _080F90D2 + .align 2, 0 +_080F90BC: .4byte 0x02037282 +_080F90C0: + cmp r1, #2 + beq _080F90CE + b _080F90D2 +_080F90C6: + movs r1, #3 + b _080F90D4 +_080F90CA: + movs r1, #4 + b _080F90D4 +_080F90CE: + movs r1, #5 + b _080F90D4 +_080F90D2: + movs r1, #0x64 +_080F90D4: + ldr r0, _080F90DC + strh r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_080F90DC: .4byte 0x02037280 + thumb_func_end sub_080F90A4 + + thumb_func_start sub_080F90E0 +sub_080F90E0: @ 0x080F90E0 + push {lr} + bl sub_080F8AF4 + bl sub_080F8B18 + bl sub_080F8CBC + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080F90E0 + + thumb_func_start sub_080F90F4 +sub_080F90F4: @ 0x080F90F4 + push {lr} + ldr r0, _080F9108 + ldrh r0, [r0] + cmp r0, #4 + bhi _080F9134 + lsls r0, r0, #2 + ldr r1, _080F910C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F9108: .4byte 0x02039BCC +_080F910C: .4byte 0x080F9110 +_080F9110: @ jump table + .4byte _080F9124 @ case 0 + .4byte _080F9128 @ case 1 + .4byte _080F912C @ case 2 + .4byte _080F9130 @ case 3 + .4byte _080F9134 @ case 4 +_080F9124: + movs r1, #8 + b _080F9136 +_080F9128: + movs r1, #9 + b _080F9136 +_080F912C: + movs r1, #0xa + b _080F9136 +_080F9130: + movs r1, #0xb + b _080F9136 +_080F9134: + movs r1, #0xc +_080F9136: + ldr r0, _080F9150 + ldr r0, [r0] + lsls r1, r1, #5 + adds r0, r0, r1 + ldr r1, _080F9154 + adds r0, r0, r1 + ldrh r1, [r0] + cmp r1, #0 + bne _080F915C + ldr r0, _080F9158 + strh r1, [r0] + b _080F9162 + .align 2, 0 +_080F9150: .4byte 0x03005AEC +_080F9154: .4byte 0x00002E98 +_080F9158: .4byte 0x02037280 +_080F915C: + ldr r1, _080F9168 + movs r0, #1 + strh r0, [r1] +_080F9162: + pop {r0} + bx r0 + .align 2, 0 +_080F9168: .4byte 0x02037280 + thumb_func_end sub_080F90F4 + + thumb_func_start sub_080F916C +sub_080F916C: @ 0x080F916C + push {lr} + movs r0, #0xff + bl sub_080DE4B0 + pop {r0} + bx r0 + thumb_func_end sub_080F916C + + thumb_func_start sub_080F9178 +sub_080F9178: @ 0x080F9178 + push {lr} + ldr r0, _080F91A8 + ldr r1, _080F91AC + ldrb r2, [r1] + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, #0 + bne _080F91C0 + ldr r0, _080F91B0 + ldrh r0, [r0] + cmp r0, #3 + bne _080F91C0 + ldr r1, _080F91B4 + lsls r0, r2, #1 + adds r0, r0, r1 + movs r2, #0 + ldrsh r1, [r0, r2] + ldr r0, _080F91B8 + cmp r1, r0 + ble _080F91C0 + ldr r1, _080F91BC + movs r0, #1 + b _080F91C4 + .align 2, 0 +_080F91A8: .4byte 0x02039BC0 +_080F91AC: .4byte 0x02039BC5 +_080F91B0: .4byte 0x02039BCE +_080F91B4: .4byte 0x02039BA8 +_080F91B8: .4byte 0x0000031F +_080F91BC: .4byte 0x02037280 +_080F91C0: + ldr r1, _080F91CC + movs r0, #0 +_080F91C4: + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080F91CC: .4byte 0x02037280 + thumb_func_end sub_080F9178 + + thumb_func_start CountPlayerContestPaintings +CountPlayerContestPaintings: @ 0x080F91D0 + push {lr} + movs r3, #0 + ldr r0, _080F91F8 + ldr r0, [r0] + ldr r2, _080F91FC + adds r1, r0, r2 + movs r2, #4 +_080F91DE: + ldrh r0, [r1] + cmp r0, #0 + beq _080F91EA + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 +_080F91EA: + adds r1, #0x20 + subs r2, #1 + cmp r2, #0 + bge _080F91DE + adds r0, r3, #0 + pop {r1} + bx r1 + .align 2, 0 +_080F91F8: .4byte 0x03005AEC +_080F91FC: .4byte 0x00002F98 + thumb_func_end CountPlayerContestPaintings + + thumb_func_start sub_080F9200 +sub_080F9200: @ 0x080F9200 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + ldr r0, _080F932C + mov ip, r0 + ldr r1, _080F9330 + mov r8, r1 + ldr r2, _080F9334 + mov sl, r2 + ldr r4, _080F9338 + mov sb, r4 + mov r2, ip + mov r1, sp + movs r6, #3 +_080F9222: + ldrh r0, [r2] + strh r0, [r1] + adds r2, #2 + adds r1, #2 + subs r6, #1 + cmp r6, #0 + bge _080F9222 + movs r6, #0 +_080F9232: + movs r1, #3 + cmp r1, r6 + ble _080F925C +_080F9238: + subs r4, r1, #1 + 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 _080F9256 + strh r5, [r2] + strh r0, [r3] +_080F9256: + adds r1, r4, #0 + cmp r1, r6 + bgt _080F9238 +_080F925C: + adds r6, #1 + cmp r6, #2 + ble _080F9232 + mov r2, r8 + ldrh r0, [r2] + lsls r0, r0, #1 + add r0, sp + ldrh r0, [r0] + movs r2, #0 + movs r7, #0 + movs r6, #0 + lsls r0, r0, #0x10 + asrs r4, r0, #0x10 + adds r3, r0, #0 + mov r1, sp +_080F927A: + movs r5, #0 + ldrsh r0, [r1, r5] + cmp r0, r4 + bne _080F9296 + lsls r0, r2, #0x18 + movs r2, #0x80 + lsls r2, r2, #0x11 + adds r0, r0, r2 + lsrs r2, r0, #0x18 + mov r5, r8 + ldrh r5, [r5] + cmp r6, r5 + bne _080F9296 + adds r7, r2, #0 +_080F9296: + adds r1, #2 + adds r6, #1 + cmp r6, #3 + ble _080F927A + movs r6, #0 + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + asrs r1, r3, #0x10 + lsls r2, r2, #0x18 + mov r8, r2 + cmp r0, r1 + beq _080F92C4 + adds r2, r1, #0 + mov r1, sp +_080F92B4: + adds r1, #2 + adds r6, #1 + cmp r6, #3 + bgt _080F92C4 + movs r4, #0 + ldrsh r0, [r1, r4] + cmp r0, r2 + bne _080F92B4 +_080F92C4: + lsls r0, r6, #0x18 + lsrs r5, r0, #0x18 + adds r2, r7, #0 + movs r6, #0 + asrs r0, r3, #0x10 + str r0, [sp, #8] + mov r1, ip + movs r4, #0 + ldrsh r0, [r1, r4] + ldr r1, [sp, #8] + cmp r1, r0 + bne _080F92E6 + cmp r7, #1 + beq _080F92FE +_080F92E0: + subs r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 +_080F92E6: + adds r6, #1 + cmp r6, #3 + bgt _080F92FE + lsls r0, r6, #1 + add r0, ip + asrs r1, r3, #0x10 + movs r4, #0 + ldrsh r0, [r0, r4] + cmp r1, r0 + bne _080F92E6 + cmp r2, #1 + bne _080F92E0 +_080F92FE: + lsls r4, r6, #6 + mov r0, sb + adds r1, r4, r0 + mov r0, sl + bl StringCopy + ldr r0, _080F933C + mov r1, sb + adds r1, #0xb + adds r4, r4, r1 + adds r1, r4, #0 + bl StringCopy + mov r1, r8 + asrs r0, r1, #0x18 + cmp r0, #1 + beq _080F9324 + cmp r7, r0 + bne _080F9340 +_080F9324: + ldr r0, _080F9330 + strh r5, [r0] + b _080F9346 + .align 2, 0 +_080F932C: .4byte 0x02039BA0 +_080F9330: .4byte 0x02037284 +_080F9334: .4byte 0x02021C40 +_080F9338: .4byte 0x02039AA2 +_080F933C: .4byte 0x02021C54 +_080F9340: + ldr r1, _080F9358 + adds r0, r5, #4 + strh r0, [r1] +_080F9346: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F9358: .4byte 0x02037284 + thumb_func_end sub_080F9200 + + thumb_func_start ShowContestWinnerCleanup +ShowContestWinnerCleanup: @ 0x080F935C + push {lr} + ldr r0, _080F9368 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080F9368: .4byte 0x08085B35 + thumb_func_end ShowContestWinnerCleanup + + thumb_func_start ShowContestWinner +ShowContestWinner: @ 0x080F936C + push {lr} + ldr r0, _080F9380 + bl SetMainCallback2 + ldr r1, _080F9384 + ldr r0, _080F9388 + str r0, [r1, #8] + pop {r0} + bx r0 + .align 2, 0 +_080F9380: .4byte 0x0812FE25 +_080F9384: .4byte 0x03002360 +_080F9388: .4byte 0x080F935D + thumb_func_end ShowContestWinner + + thumb_func_start sub_080F938C +sub_080F938C: @ 0x080F938C + push {r4, r5, lr} + ldr r0, _080F93C0 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080F940C + movs r3, #0 + ldr r0, _080F93C4 + adds r4, r0, #0 + ldr r5, _080F93C8 + ldrb r0, [r4] + cmp r3, r0 + bge _080F93E0 + adds r2, r5, #0 + ldr r1, _080F93CC +_080F93AC: + ldrb r0, [r1] + subs r0, #1 + cmp r0, #1 + bhi _080F93D4 + ldrb r0, [r1, #0x13] + cmp r0, #0 + bne _080F93D0 + movs r0, #0xeb + b _080F93D2 + .align 2, 0 +_080F93C0: .4byte 0x02039BCA +_080F93C4: .4byte 0x02039BD0 +_080F93C8: .4byte 0x02039AA0 +_080F93CC: .4byte 0x020226A0 +_080F93D0: + movs r0, #0xec +_080F93D2: + strb r0, [r2, #0x15] +_080F93D4: + adds r2, #0x40 + adds r1, #0x1c + adds r3, #1 + ldrb r0, [r4] + cmp r3, r0 + blt _080F93AC +_080F93E0: + ldr r0, _080F9414 + ldrb r1, [r5, #0x15] + bl VarSet + ldr r0, _080F9418 + adds r1, r5, #0 + adds r1, #0x55 + ldrb r1, [r1] + bl VarSet + ldr r0, _080F941C + adds r1, r5, #0 + adds r1, #0x95 + ldrb r1, [r1] + bl VarSet + ldr r0, _080F9420 + adds r1, r5, #0 + adds r1, #0xd5 + ldrb r1, [r1] + bl VarSet +_080F940C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080F9414: .4byte 0x00004010 +_080F9418: .4byte 0x00004011 +_080F941C: .4byte 0x00004012 +_080F9420: .4byte 0x00004013 + thumb_func_end sub_080F938C + + thumb_func_start sub_080F9424 +sub_080F9424: @ 0x080F9424 + push {r4, r5, r6, r7, lr} + ldr r1, _080F9498 + movs r0, #0xc + strb r0, [r1] + ldr r0, _080F949C + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080F94FE + movs r5, #0 + ldr r0, _080F94A0 + ldrb r0, [r0] + cmp r5, r0 + bge _080F94FE + movs r7, #0 + movs r6, #0x60 + movs r4, #0xb0 + lsls r4, r4, #0x11 +_080F944A: + ldr r0, _080F94A4 + adds r0, r5, r0 + ldrb r0, [r0] + ldr r1, _080F94A8 + ldr r2, [r1] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + bl GetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080F94AC + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r0, [r1, #4] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080F94B0 + adds r1, r1, r0 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r6 + strb r0, [r1, #5] + ldr r0, _080F94B4 + adds r1, r7, r0 + ldrb r0, [r1] + subs r0, #1 + cmp r0, #1 + bhi _080F94C8 + ldrb r0, [r1, #0x13] + cmp r0, #0 + bne _080F94BC + lsrs r1, r4, #0x10 + ldr r0, _080F94B8 + b _080F94D2 + .align 2, 0 +_080F9498: .4byte 0x030030BC +_080F949C: .4byte 0x02039BCA +_080F94A0: .4byte 0x02039BD0 +_080F94A4: .4byte 0x085694CC +_080F94A8: .4byte 0x03005AEC +_080F94AC: .4byte 0x02036FF0 +_080F94B0: .4byte 0x020205AC +_080F94B4: .4byte 0x020226A0 +_080F94B8: .4byte 0x08471E6C +_080F94BC: + lsrs r1, r4, #0x10 + ldr r0, _080F94C4 + b _080F94D2 + .align 2, 0 +_080F94C4: .4byte 0x0847D90C +_080F94C8: + ldrb r0, [r1, #0x13] + cmp r0, #0 + bne _080F94E0 + lsrs r1, r4, #0x10 + ldr r0, _080F94DC +_080F94D2: + movs r2, #0x20 + bl LoadPalette + b _080F94EA + .align 2, 0 +_080F94DC: .4byte 0x08470C4C +_080F94E0: + lsrs r1, r4, #0x10 + ldr r0, _080F9504 + movs r2, #0x20 + bl LoadPalette +_080F94EA: + movs r0, #0x80 + lsls r0, r0, #0xd + adds r4, r4, r0 + adds r7, #0x1c + adds r6, #0x10 + adds r5, #1 + ldr r0, _080F9508 + ldrb r0, [r0] + cmp r5, r0 + blt _080F944A +_080F94FE: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F9504: .4byte 0x0847C6CC +_080F9508: .4byte 0x02039BD0 + thumb_func_end sub_080F9424 + + thumb_func_start GiveMonArtistRibbon +GiveMonArtistRibbon: @ 0x080F950C + push {r4, r5, r6, lr} + sub sp, #4 + ldr r6, _080F958C + ldrb r0, [r6] + movs r5, #0x64 + muls r0, r5, r0 + ldr r4, _080F9590 + adds r0, r0, r4 + movs r1, #0x46 + bl GetMonData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, sp + strb r0, [r1] + cmp r0, #0 + bne _080F95A8 + ldr r0, _080F9594 + ldr r1, _080F9598 + ldrb r2, [r1] + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, #0 + bne _080F95A8 + ldr r0, _080F959C + ldrh r0, [r0] + cmp r0, #3 + bne _080F95A8 + ldr r1, _080F95A0 + lsls r0, r2, #1 + adds r0, r0, r1 + movs r2, #0 + ldrsh r1, [r0, r2] + ldr r0, _080F95A4 + cmp r1, r0 + ble _080F95A8 + movs r1, #1 + mov r0, sp + strb r1, [r0] + ldrb r0, [r6] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #0x46 + mov r2, sp + bl SetMonData + ldrb r0, [r6] + muls r0, r5, r0 + adds r0, r0, r4 + bl GetRibbonCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bls _080F9586 + ldrb r0, [r6] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #0x46 + bl sub_080EEFFC +_080F9586: + movs r0, #1 + b _080F95AA + .align 2, 0 +_080F958C: .4byte 0x02039BC4 +_080F9590: .4byte 0x02024190 +_080F9594: .4byte 0x02039BC0 +_080F9598: .4byte 0x02039BC5 +_080F959C: .4byte 0x02039BCE +_080F95A0: .4byte 0x02039BA8 +_080F95A4: .4byte 0x0000031F +_080F95A8: + movs r0, #0 +_080F95AA: + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GiveMonArtistRibbon + + thumb_func_start sub_080F95B4 +sub_080F95B4: @ 0x080F95B4 + movs r0, #0 + bx lr + thumb_func_end sub_080F95B4 + + thumb_func_start ShowContestEntryMonPic +ShowContestEntryMonPic: @ 0x080F95B8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r7, _080F9638 + adds r0, r7, #0 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _080F95D4 + b _080F972C +_080F95D4: + bl AllocateMonSpritesGfx + movs r0, #0xa + mov sb, r0 + movs r1, #3 + mov sl, r1 + ldr r2, _080F963C + ldr r4, _080F9640 + ldrh r1, [r4] + lsls r1, r1, #6 + adds r0, r1, r2 + ldrh r6, [r0] + adds r0, r2, #0 + adds r0, #0x38 + adds r0, r1, r0 + ldr r5, [r0] + adds r2, #0x3c + adds r1, r1, r2 + ldr r1, [r1] + mov r8, r1 + adds r0, r7, #0 + movs r1, #0x50 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r1, _080F9644 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0, #8] + strh r6, [r0, #0xa] + ldr r1, _080F9648 + ldrh r0, [r4] + ldrb r1, [r1] + cmp r0, r1 + bne _080F9654 + lsls r0, r6, #3 + ldr r1, _080F964C + adds r0, r0, r1 + ldr r1, _080F9650 + ldr r1, [r1] + ldr r1, [r1, #8] + adds r2, r6, #0 + adds r3, r5, #0 + bl HandleLoadSpecialPokePic_2 + b _080F9668 + .align 2, 0 +_080F9638: .4byte 0x080F9779 +_080F963C: .4byte 0x02039AA0 +_080F9640: .4byte 0x02037284 +_080F9644: .4byte 0x03005B60 +_080F9648: .4byte 0x02039BC5 +_080F964C: .4byte 0x082DDA1C +_080F9650: .4byte 0x02024178 +_080F9654: + lsls r0, r6, #3 + ldr r1, _080F96D4 + adds r0, r0, r1 + ldr r1, _080F96D8 + ldr r1, [r1] + ldr r1, [r1, #8] + adds r2, r6, #0 + adds r3, r5, #0 + bl HandleLoadSpecialPokePic_DontHandleDeoxys +_080F9668: + adds r0, r6, #0 + mov r1, r8 + adds r2, r5, #0 + bl GetMonSpritePalStructFromOtIdPersonality + adds r4, r0, #0 + bl LoadCompressedSpritePalette + adds r0, r6, #0 + movs r1, #1 + bl SetMultiuseSpriteTemplateToPokemon + ldr r0, _080F96DC + ldrh r1, [r4, #4] + strh r1, [r0, #2] + mov r1, sb + adds r1, #1 + lsls r1, r1, #0x13 + movs r2, #0x80 + lsls r2, r2, #0xe + adds r1, r1, r2 + asrs r1, r1, #0x10 + mov r3, sl + lsls r2, r3, #0x13 + movs r3, #0xa0 + lsls r3, r3, #0xe + adds r2, r2, r3 + asrs r2, r2, #0x10 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _080F96E0 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080F96E8 + movs r0, #4 + ands r0, r1 + lsls r4, r5, #4 + cmp r0, #0 + bne _080F96FC + adds r0, r4, r5 + lsls r0, r0, #2 + ldr r1, _080F96E4 + adds r0, r0, r1 + adds r1, r6, #0 + movs r2, #0 + movs r3, #0 + bl DoMonFrontSpriteAnimation + b _080F96FC + .align 2, 0 +_080F96D4: .4byte 0x082DDA1C +_080F96D8: .4byte 0x02024178 +_080F96DC: .4byte 0x02024640 +_080F96E0: .4byte 0x02039BCA +_080F96E4: .4byte 0x020205AC +_080F96E8: + lsls r4, r5, #4 + adds r0, r4, r5 + lsls r0, r0, #2 + ldr r1, _080F973C + adds r0, r0, r1 + adds r1, r6, #0 + movs r2, #0 + movs r3, #0 + bl DoMonFrontSpriteAnimation +_080F96FC: + ldr r1, _080F9740 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r5, [r0, #0xc] + mov r1, sb + strh r1, [r0, #0xe] + mov r2, sl + strh r2, [r0, #0x10] + ldr r3, _080F973C + adds r1, r4, r5 + lsls r1, r1, #2 + adds r0, r3, #0 + adds r0, #0x1c + adds r0, r1, r0 + ldr r2, _080F9744 + str r2, [r0] + adds r1, r1, r3 + ldrb r2, [r1, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #5] +_080F972C: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F973C: .4byte 0x020205AC +_080F9740: .4byte 0x03005B60 +_080F9744: .4byte 0x08007141 + thumb_func_end ShowContestEntryMonPic + + thumb_func_start sub_080F9748 +sub_080F9748: @ 0x080F9748 + push {lr} + ldr r0, _080F9770 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xff + beq _080F976C + ldr r0, _080F9774 + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + bl FreeMonSpritesGfx +_080F976C: + pop {r0} + bx r0 + .align 2, 0 +_080F9770: .4byte 0x080F9779 +_080F9774: .4byte 0x03005B60 + thumb_func_end sub_080F9748 + + thumb_func_start sub_080F9778 +sub_080F9778: @ 0x080F9778 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _080F979C + adds r5, r0, r1 + movs r2, #8 + ldrsh r0, [r5, r2] + adds r2, r1, #0 + cmp r0, #4 + bhi _080F9828 + lsls r0, r0, #2 + ldr r1, _080F97A0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F979C: .4byte 0x03005B60 +_080F97A0: .4byte 0x080F97A4 +_080F97A4: @ jump table + .4byte _080F9808 @ case 0 + .4byte _080F97B8 @ case 1 + .4byte _080F9828 @ case 2 + .4byte _080F97D2 @ case 3 + .4byte _080F9814 @ case 4 +_080F97B8: + movs r0, #0xa + movs r1, #3 + movs r2, #8 + movs r3, #8 + bl CreateWindowFromRect + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x12] + movs r1, #1 + bl SetStandardWindowBorderStyle + b _080F9808 +_080F97D2: + movs r0, #0xc + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080F9810 + adds r4, r0, r1 + ldrb r0, [r4, #5] + lsrs r0, r0, #4 + bl GetSpritePaletteTagByPaletteNum + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl FreeSpritePaletteByTag + ldrb r0, [r4, #1] + lsls r0, r0, #0x1e + cmp r0, #0 + beq _080F9802 + ldrb r0, [r4, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix +_080F9802: + adds r0, r4, #0 + bl DestroySprite +_080F9808: + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + b _080F9828 + .align 2, 0 +_080F9810: .4byte 0x020205AC +_080F9814: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrb r0, [r0, #0x12] + bl ClearToTransparentAndRemoveWindow + adds r0, r4, #0 + bl DestroyTask +_080F9828: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080F9778 + + thumb_func_start ScriptGetMultiplayerId +ScriptGetMultiplayerId: @ 0x080F9830 + push {r4, lr} + ldr r0, _080F985C + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080F9868 + ldr r0, _080F9860 + ldrb r0, [r0] + cmp r0, #4 + bne _080F9868 + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _080F9868 + ldr r4, _080F9864 + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + b _080F986E + .align 2, 0 +_080F985C: .4byte 0x02039BCA +_080F9860: .4byte 0x02039BD0 +_080F9864: .4byte 0x02037290 +_080F9868: + ldr r1, _080F9874 + movs r0, #4 + strh r0, [r1] +_080F986E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F9874: .4byte 0x02037290 + thumb_func_end ScriptGetMultiplayerId + + thumb_func_start ScriptRandom +ScriptRandom: @ 0x080F9878 + push {r4, lr} + ldr r0, _080F989C + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080F98B0 + ldr r2, _080F98A0 + ldr r1, [r2] + ldr r0, _080F98A4 + muls r0, r1, r0 + ldr r1, _080F98A8 + adds r0, r0, r1 + str r0, [r2] + lsrs r0, r0, #0x10 + ldr r4, _080F98AC + b _080F98BA + .align 2, 0 +_080F989C: .4byte 0x02039BCA +_080F98A0: .4byte 0x03005E18 +_080F98A4: .4byte 0x41C64E6D +_080F98A8: .4byte 0x00006073 +_080F98AC: .4byte 0x02037290 +_080F98B0: + ldr r4, _080F98C8 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_080F98BA: + ldrh r1, [r4] + bl __umodsi3 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F98C8: .4byte 0x02037290 + thumb_func_end ScriptRandom + + thumb_func_start sub_080F98CC +sub_080F98CC: @ 0x080F98CC + ldr r2, _080F98E0 + ldr r1, [r2] + ldr r0, _080F98E4 + muls r0, r1, r0 + ldr r1, _080F98E8 + adds r0, r0, r1 + str r0, [r2] + lsrs r0, r0, #0x10 + bx lr + .align 2, 0 +_080F98E0: .4byte 0x03005E18 +_080F98E4: .4byte 0x41C64E6D +_080F98E8: .4byte 0x00006073 + thumb_func_end sub_080F98CC + + thumb_func_start sub_080F98EC +sub_080F98EC: @ 0x080F98EC + push {lr} + ldr r0, _080F9900 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _080F9904 + movs r0, #0 + b _080F990E + .align 2, 0 +_080F9900: .4byte 0x02039BCA +_080F9904: + ldr r0, _080F9914 + movs r1, #5 + bl CreateTask + movs r0, #1 +_080F990E: + pop {r1} + bx r1 + .align 2, 0 +_080F9914: .4byte 0x080F9919 + thumb_func_end sub_080F98EC + + thumb_func_start sub_080F9918 +sub_080F9918: @ 0x080F9918 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _080F994C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _080F9950 + cmp r0, #1 + beq _080F995E + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080F9964 + bl EnableBothScriptContexts + adds r0, r5, #0 + bl DestroyTask + b _080F9964 + .align 2, 0 +_080F994C: .4byte 0x03005B60 +_080F9950: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080F9964 + bl sub_0800A8D4 +_080F995E: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080F9964: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080F9918 + + thumb_func_start sub_080F996C +sub_080F996C: @ 0x080F996C + push {lr} + ldr r0, _080F9994 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080F998E + ldr r0, _080F9998 + ldrb r0, [r0] + cmp r0, #0 + beq _080F998E + bl LoadWirelessStatusIndicatorSpriteGfx + movs r0, #8 + movs r1, #8 + bl CreateWirelessStatusIndicatorSprite +_080F998E: + pop {r0} + bx r0 + .align 2, 0 +_080F9994: .4byte 0x02039BCA +_080F9998: .4byte 0x030031C4 + thumb_func_end sub_080F996C + + thumb_func_start sub_080F999C +sub_080F999C: @ 0x080F999C + push {lr} + ldr r0, _080F99BC + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080F99B6 + ldr r0, _080F99C0 + ldrb r0, [r0] + cmp r0, #0 + beq _080F99B6 + bl DestroyWirelessStatusIndicatorSprite +_080F99B6: + pop {r0} + bx r0 + .align 2, 0 +_080F99BC: .4byte 0x02039BCA +_080F99C0: .4byte 0x030031C4 + thumb_func_end sub_080F999C + + thumb_func_start sub_080F99C4 +sub_080F99C4: @ 0x080F99C4 + push {lr} + ldr r0, _080F99D8 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _080F99DC + movs r0, #0 + b _080F99DE + .align 2, 0 +_080F99D8: .4byte 0x02039BCA +_080F99DC: + movs r0, #1 +_080F99DE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080F99C4 + + thumb_func_start sub_080F99E4 +sub_080F99E4: @ 0x080F99E4 + ldr r1, _080F99EC + movs r0, #0 + strb r0, [r1] + bx lr + .align 2, 0 +_080F99EC: .4byte 0x02039BCA + thumb_func_end sub_080F99E4 + + thumb_func_start sub_080F99F0 +sub_080F99F0: @ 0x080F99F0 + push {lr} + ldr r0, _080F9A04 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _080F9A08 + movs r0, #0 + b _080F9A0A + .align 2, 0 +_080F9A04: .4byte 0x02039BCA +_080F9A08: + movs r0, #1 +_080F9A0A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080F99F0 + + thumb_func_start HealPlayerParty +HealPlayerParty: @ 0x080F9A10 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + movs r0, #0 + mov r8, r0 + ldr r0, _080F9ACC + ldrb r0, [r0] + cmp r8, r0 + bhs _080F9ABC + ldr r1, _080F9AD0 + mov sl, r1 + mov r6, sp +_080F9A2E: + movs r0, #0x64 + mov r4, r8 + muls r4, r0, r4 + add r4, sl + adds r0, r4, #0 + movs r1, #0x3a + bl GetMonData + lsls r1, r0, #0x10 + strb r0, [r6] + lsrs r1, r1, #0x18 + strb r1, [r6, #1] + adds r0, r4, #0 + movs r1, #0x39 + mov r2, sp + bl SetMonData + adds r0, r4, #0 + movs r1, #0x15 + bl GetMonData + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r5, #0 + movs r1, #1 + add r1, r8 + mov sb, r1 +_080F9A64: + adds r1, r5, #0 + adds r1, #0xd + adds r0, r4, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + 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, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #3 + bls _080F9A64 + movs r0, #0 + strb r0, [r6] + strb r0, [r6, #1] + strb r0, [r6, #2] + strb r0, [r6, #3] + movs r1, #0x64 + mov r0, r8 + muls r0, r1, r0 + add r0, sl + movs r1, #0x37 + mov r2, sp + bl SetMonData + mov r1, sb + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r0, _080F9ACC + ldrb r0, [r0] + cmp r8, r0 + blo _080F9A2E +_080F9ABC: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F9ACC: .4byte 0x0202418D +_080F9AD0: .4byte 0x02024190 + thumb_func_end HealPlayerParty + + thumb_func_start ScriptGiveMon +ScriptGiveMon: @ 0x080F9AD4 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0x78 + adds r5, r0, #0 + adds r3, r1, #0 + adds r4, r2, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r4, r4, #0x10 + lsrs r0, r4, #0x10 + mov r8, r0 + add r6, sp, #0x14 + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + 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, r4, #0x18 + strb r4, [r0, #1] + adds r0, r6, #0 + movs r1, #0xc + add r2, sp, #0x10 + bl SetMonData + adds r0, r6, #0 + bl GiveMonToPlayer + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r5, #0 + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r4, #1 + bgt _080F9B48 + cmp r4, #0 + blt _080F9B48 + adds r0, r5, #0 + movs r1, #2 + bl GetSetPokedexFlag + adds r0, r5, #0 + movs r1, #3 + bl GetSetPokedexFlag +_080F9B48: + adds r0, r4, #0 + add sp, #0x78 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ScriptGiveMon + + thumb_func_start ScriptGiveEgg +ScriptGiveEgg: @ 0x080F9B58 + push {lr} + sub sp, #0x68 + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r0, sp + movs r2, #1 + bl CreateEgg + add r2, sp, #0x64 + movs r0, #1 + strb r0, [r2] + mov r0, sp + movs r1, #0x2d + bl SetMonData + mov r0, sp + bl GiveMonToPlayer + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #0x68 + pop {r1} + bx r1 + thumb_func_end ScriptGiveEgg + + thumb_func_start HasEnoughMonsForDoubleBattle +HasEnoughMonsForDoubleBattle: @ 0x080F9B88 + push {lr} + bl GetMonsStateToDoubles + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #1 + beq _080F9BA4 + cmp r1, #1 + bgt _080F9BA0 + cmp r1, #0 + beq _080F9BA4 + b _080F9BA8 +_080F9BA0: + cmp r1, #2 + bne _080F9BA8 +_080F9BA4: + ldr r0, _080F9BAC + strh r1, [r0] +_080F9BA8: + pop {r0} + bx r0 + .align 2, 0 +_080F9BAC: .4byte 0x02037290 + thumb_func_end HasEnoughMonsForDoubleBattle + + thumb_func_start CheckPartyMonHasHeldItem +CheckPartyMonHasHeldItem: @ 0x080F9BB0 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + movs r5, #0 + movs r7, #0xce + lsls r7, r7, #1 +_080F9BBC: + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _080F9BEC + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + beq _080F9BF0 + cmp r0, r7 + beq _080F9BF0 + adds r0, r4, #0 + movs r1, #0xc + bl GetMonData + cmp r0, r6 + bne _080F9BF0 + movs r0, #1 + b _080F9BF8 + .align 2, 0 +_080F9BEC: .4byte 0x02024190 +_080F9BF0: + adds r5, #1 + cmp r5, #5 + ble _080F9BBC + movs r0, #0 +_080F9BF8: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CheckPartyMonHasHeldItem + + thumb_func_start sub_080F9C00 +sub_080F9C00: @ 0x080F9C00 + push {r4, lr} + movs r0, #0xaf + bl CheckPartyMonHasHeldItem + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r4, r0, #0 + cmp r4, #1 + bne _080F9C22 + movs r0, #0xaf + bl ItemIdToBerryType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080F9C2C + bl GetBerryNameByBerryType +_080F9C22: + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F9C2C: .4byte 0x02021C40 + thumb_func_end sub_080F9C00 + + thumb_func_start CreateScriptedWildMon +CreateScriptedWildMon: @ 0x080F9C30 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x14 + adds r4, r0, #0 + adds r5, r1, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r7, r2, #0x10 + lsrs r6, r7, #0x10 + bl ZeroEnemyPartyMons + ldr r0, _080F9C8C + mov r8, r0 + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + mov r0, r8 + adds r1, r4, #0 + adds r2, r5, #0 + movs r3, #0x20 + bl CreateMon + cmp r6, #0 + beq _080F9C7E + add r0, sp, #0x10 + strb r6, [r0] + adds r1, r0, #0 + lsrs r0, r7, #0x18 + strb r0, [r1, #1] + mov r0, r8 + movs r1, #0xc + add r2, sp, #0x10 + bl SetMonData +_080F9C7E: + add sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F9C8C: .4byte 0x020243E8 + thumb_func_end CreateScriptedWildMon + + thumb_func_start ScriptSetMonMoveSlot +ScriptSetMonMoveSlot: @ 0x080F9C90 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + cmp r3, #6 + bls _080F9CAC + ldr r0, _080F9CC0 + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 +_080F9CAC: + movs r0, #0x64 + muls r0, r3, r0 + ldr r1, _080F9CC4 + adds r0, r0, r1 + adds r1, r4, #0 + bl SetMonMoveSlot + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F9CC0: .4byte 0x0202418D +_080F9CC4: .4byte 0x02024190 + thumb_func_end ScriptSetMonMoveSlot + + thumb_func_start ChooseHalfPartyForBattle +ChooseHalfPartyForBattle: @ 0x080F9CC8 + push {lr} + ldr r0, _080F9CE4 + ldr r1, _080F9CE8 + str r1, [r0, #8] + ldr r0, _080F9CEC + movs r1, #9 + bl VarSet + movs r0, #0 + bl InitChooseHalfPartyForBattle + pop {r0} + bx r0 + .align 2, 0 +_080F9CE4: .4byte 0x03002360 +_080F9CE8: .4byte 0x080F9CF1 +_080F9CEC: .4byte 0x000040CF + thumb_func_end ChooseHalfPartyForBattle + + thumb_func_start CB2_ReturnFromChooseHalfParty +CB2_ReturnFromChooseHalfParty: @ 0x080F9CF0 + push {lr} + ldr r0, _080F9D00 + ldrb r1, [r0] + cmp r1, #0 + bne _080F9D08 + ldr r0, _080F9D04 + strh r1, [r0] + b _080F9D0E + .align 2, 0 +_080F9D00: .4byte 0x0203CBC4 +_080F9D04: .4byte 0x02037290 +_080F9D08: + ldr r1, _080F9D18 + movs r0, #1 + strh r0, [r1] +_080F9D0E: + ldr r0, _080F9D1C + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080F9D18: .4byte 0x02037290 +_080F9D1C: .4byte 0x08085B35 + thumb_func_end CB2_ReturnFromChooseHalfParty + + thumb_func_start sub_080F9D20 +sub_080F9D20: @ 0x080F9D20 + push {lr} + ldr r1, _080F9D3C + ldr r0, _080F9D40 + str r0, [r1, #8] + ldr r0, _080F9D44 + ldrb r0, [r0] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl InitChooseHalfPartyForBattle + pop {r0} + bx r0 + .align 2, 0 +_080F9D3C: .4byte 0x03002360 +_080F9D40: .4byte 0x080F9D49 +_080F9D44: .4byte 0x02037280 + thumb_func_end sub_080F9D20 + + thumb_func_start sub_080F9D48 +sub_080F9D48: @ 0x080F9D48 + push {lr} + ldr r0, _080F9D58 + ldrb r1, [r0] + cmp r1, #0 + bne _080F9D60 + ldr r0, _080F9D5C + strh r1, [r0] + b _080F9D66 + .align 2, 0 +_080F9D58: .4byte 0x0203CBC4 +_080F9D5C: .4byte 0x02037290 +_080F9D60: + ldr r1, _080F9D70 + movs r0, #1 + strh r0, [r1] +_080F9D66: + ldr r0, _080F9D74 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080F9D70: .4byte 0x02037290 +_080F9D74: .4byte 0x08085B35 + thumb_func_end sub_080F9D48 + + thumb_func_start ReducePlayerPartyToSelectedMons +ReducePlayerPartyToSelectedMons: @ 0x080F9D78 + push {r4, r5, r6, r7, lr} + sub sp, #0x198 + add r0, sp, #0x190 + movs r1, #0 + str r1, [r0] + ldr r2, _080F9DE8 + mov r1, sp + bl CpuSet + movs r5, #0 + movs r7, #0x64 + ldr r6, _080F9DEC + mov r4, sp +_080F9D92: + ldr r0, _080F9DF0 + adds r1, r5, r0 + ldrb r0, [r1] + cmp r0, #0 + beq _080F9DAC + subs r0, #1 + adds r1, r0, #0 + muls r1, r7, r1 + adds r1, r1, r6 + adds r0, r4, #0 + movs r2, #0x64 + bl memcpy +_080F9DAC: + adds r4, #0x64 + adds r5, #1 + cmp r5, #3 + ble _080F9D92 + add r0, sp, #0x194 + movs r1, #0 + str r1, [r0] + ldr r4, _080F9DEC + ldr r2, _080F9DF4 + adds r1, r4, #0 + bl CpuSet + mov r5, sp + add r6, sp, #0x12c +_080F9DC8: + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0x64 + bl memcpy + adds r5, #0x64 + adds r4, #0x64 + cmp r5, r6 + ble _080F9DC8 + bl CalculatePlayerPartyCount + add sp, #0x198 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F9DE8: .4byte 0x05000064 +_080F9DEC: .4byte 0x02024190 +_080F9DF0: .4byte 0x0203CBC4 +_080F9DF4: .4byte 0x05000096 + thumb_func_end ReducePlayerPartyToSelectedMons + diff --git a/asm/secret_base.s b/asm/secret_base.s new file mode 100644 index 0000000..a853324 --- /dev/null +++ b/asm/secret_base.s @@ -0,0 +1,6108 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ClearSecretBase +ClearSecretBase: @ 0x080E977C + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + movs r0, #0 + str r0, [sp] + ldr r2, _080E97B0 + mov r0, sp + adds r1, r4, #0 + bl CpuFastSet + movs r2, #0 + adds r4, #2 + movs r3, #0xff +_080E9796: + adds r0, r4, r2 + ldrb r1, [r0] + orrs r1, r3 + strb r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #6 + bls _080E9796 + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E97B0: .4byte 0x01000028 + thumb_func_end ClearSecretBase + + thumb_func_start ClearSecretBases +ClearSecretBases: @ 0x080E97B4 + push {r4, r5, lr} + movs r4, #0 + ldr r5, _080E97DC +_080E97BA: + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #5 + ldr r0, _080E97E0 + adds r1, r1, r0 + ldr r0, [r5] + adds r0, r0, r1 + bl ClearSecretBase + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x13 + bls _080E97BA + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080E97DC: .4byte 0x03005AEC +_080E97E0: .4byte 0x00001A9C + thumb_func_end ClearSecretBases + + thumb_func_start SetCurSecretBaseId +SetCurSecretBaseId: @ 0x080E97E4 + ldr r0, _080E97F0 + ldr r1, _080E97F4 + ldrh r1, [r1] + strb r1, [r0] + bx lr + .align 2, 0 +_080E97F0: .4byte 0x02039CE8 +_080E97F4: .4byte 0x02037280 + thumb_func_end SetCurSecretBaseId + + thumb_func_start TrySetCurSecretBaseIndex +TrySetCurSecretBaseIndex: @ 0x080E97F8 + push {r4, lr} + ldr r0, _080E9808 + movs r1, #0 + strh r1, [r0] + movs r3, #0 + adds r4, r0, #0 + b _080E9812 + .align 2, 0 +_080E9808: .4byte 0x02037290 +_080E980C: + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 +_080E9812: + cmp r3, #0x13 + bhi _080E983C + ldr r2, _080E9844 + ldr r0, _080E9848 + ldr r1, [r0] + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #5 + adds r1, r1, r0 + ldr r0, _080E984C + adds r1, r1, r0 + ldrb r0, [r2] + ldrb r1, [r1] + cmp r0, r1 + bne _080E980C + movs r0, #1 + strh r0, [r4] + ldr r0, _080E9850 + adds r1, r3, #0 + bl VarSet +_080E983C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E9844: .4byte 0x02039CE8 +_080E9848: .4byte 0x03005AEC +_080E984C: .4byte 0x00001A9C +_080E9850: .4byte 0x00004054 + thumb_func_end TrySetCurSecretBaseIndex + + thumb_func_start CheckPlayerHasSecretBase +CheckPlayerHasSecretBase: @ 0x080E9854 + push {lr} + ldr r0, _080E986C + ldr r0, [r0] + ldr r1, _080E9870 + adds r0, r0, r1 + ldrb r1, [r0] + cmp r1, #0 + beq _080E9878 + ldr r1, _080E9874 + movs r0, #1 + strh r0, [r1] + b _080E987C + .align 2, 0 +_080E986C: .4byte 0x03005AEC +_080E9870: .4byte 0x00001A9C +_080E9874: .4byte 0x02037290 +_080E9878: + ldr r0, _080E9880 + strh r1, [r0] +_080E987C: + pop {r0} + bx r0 + .align 2, 0 +_080E9880: .4byte 0x02037290 + thumb_func_end CheckPlayerHasSecretBase + + thumb_func_start GetSecretBaseTypeInFrontOfPlayer_ +GetSecretBaseTypeInFrontOfPlayer_: @ 0x080E9884 + push {r4, lr} + sub sp, #4 + mov r4, sp + adds r4, #2 + 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, _080E98BC + adds r0, r2, #0 + ands r1, r0 + adds r0, r1, #0 + subs r0, #0x90 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bhi _080E98C0 + movs r0, #1 + b _080E991A + .align 2, 0 +_080E98BC: .4byte 0x00000FFF +_080E98C0: + adds r0, r1, #0 + subs r0, #0x92 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bhi _080E98D0 + movs r0, #2 + b _080E991A +_080E98D0: + adds r0, r1, #0 + subs r0, #0x9a + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bhi _080E98E0 + movs r0, #3 + b _080E991A +_080E98E0: + adds r0, r1, #0 + subs r0, #0x94 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bhi _080E98F0 + movs r0, #4 + b _080E991A +_080E98F0: + adds r0, r1, #0 + subs r0, #0x96 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bls _080E9904 + cmp r1, #0x9c + beq _080E9904 + cmp r1, #0x9d + bne _080E9908 +_080E9904: + movs r0, #5 + b _080E991A +_080E9908: + adds r0, r1, #0 + subs r0, #0x98 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bls _080E9918 + movs r0, #0 + b _080E991A +_080E9918: + movs r0, #6 +_080E991A: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetSecretBaseTypeInFrontOfPlayer_ + + thumb_func_start GetSecretBaseTypeInFrontOfPlayer +GetSecretBaseTypeInFrontOfPlayer: @ 0x080E9924 + push {r4, lr} + ldr r4, _080E9938 + bl GetSecretBaseTypeInFrontOfPlayer_ + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E9938: .4byte 0x02037286 + thumb_func_end GetSecretBaseTypeInFrontOfPlayer + + thumb_func_start FindMetatileIdMapCoords +FindMetatileIdMapCoords: @ 0x080E993C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + str r0, [sp] + str r1, [sp, #4] + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + mov sl, r2 + ldr r0, _080E99A0 + ldr r0, [r0] + mov r8, r0 + movs r0, #0 + mov ip, r0 + mov r1, r8 + ldr r0, [r1, #4] + cmp ip, r0 + bge _080E99C8 + ldr r4, [r1] +_080E9966: + movs r2, #0 + mov r0, ip + lsls r7, r0, #0x10 + cmp r2, r4 + bge _080E99B4 + asrs r0, r7, #0x10 + adds r6, r0, #0 + muls r6, r4, r6 + mov r1, r8 + ldr r5, [r1, #0xc] + ldr r0, _080E99A4 + mov sb, r0 +_080E997E: + lsls r0, r2, #0x10 + asrs r3, r0, #0x10 + adds r0, r6, r3 + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r1, [r0] + mov r0, sb + ands r0, r1 + cmp r0, sl + bne _080E99A8 + ldr r1, [sp] + strh r2, [r1] + mov r0, ip + ldr r2, [sp, #4] + strh r0, [r2] + b _080E99C8 + .align 2, 0 +_080E99A0: .4byte 0x02036FB8 +_080E99A4: .4byte 0x000003FF +_080E99A8: + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, r4 + blt _080E997E +_080E99B4: + movs r2, #0x80 + lsls r2, r2, #9 + adds r1, r7, r2 + lsrs r0, r1, #0x10 + mov ip, r0 + asrs r1, r1, #0x10 + mov r2, r8 + ldr r0, [r2, #4] + cmp r1, r0 + blt _080E9966 +_080E99C8: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end FindMetatileIdMapCoords + + thumb_func_start ToggleSecretBaseEntranceMetatile +ToggleSecretBaseEntranceMetatile: @ 0x080E99D8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + mov r4, sp + adds r4, #2 + 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 ip, r4 + lsls r0, r0, #0x10 + asrs r3, r0, #0x10 + ldr r1, _080E9A24 + mov r8, r1 + adds r7, r0, #0 + mov r4, sp + mov r6, ip +_080E9A0C: + ldr r0, _080E9A24 + lsls r1, r5, #2 + adds r2, r1, r0 + ldrh r0, [r2] + cmp r0, r3 + bne _080E9A28 + movs r3, #0 + ldrsh r0, [r4, r3] + movs r5, #0 + ldrsh r1, [r6, r5] + ldrh r3, [r2, #2] + b _080E9A50 + .align 2, 0 +_080E9A24: .4byte 0x08568A78 +_080E9A28: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #6 + bls _080E9A0C + movs r5, #0 + mov r4, sp + mov r6, ip +_080E9A38: + lsls r0, r5, #2 + mov r1, r8 + adds r3, r0, r1 + ldrh r1, [r3, #2] + asrs r0, r7, #0x10 + cmp r1, r0 + bne _080E9A6A + movs r2, #0 + ldrsh r0, [r4, r2] + movs r5, #0 + ldrsh r1, [r6, r5] + ldrh r3, [r3] +_080E9A50: + movs r5, #0xc0 + lsls r5, 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 _080E9A74 +_080E9A6A: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #6 + bls _080E9A38 +_080E9A74: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end ToggleSecretBaseEntranceMetatile + + thumb_func_start GetNameLength +GetNameLength: @ 0x080E9A80 + push {lr} + adds r2, r0, #0 + movs r1, #0 +_080E9A86: + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #0xff + bne _080E9A92 + adds r0, r1, #0 + b _080E9A9E +_080E9A92: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #6 + bls _080E9A86 + movs r0, #7 +_080E9A9E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetNameLength + + thumb_func_start SetPlayerSecretBase +SetPlayerSecretBase: @ 0x080E9AA4 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + ldr r2, _080E9B40 + ldr r0, [r2] + ldr r1, _080E9B44 + ldrb r1, [r1] + ldr r3, _080E9B48 + adds r0, r0, r3 + strb r1, [r0] + movs r3, #0 + ldr r5, _080E9B4C + ldr r4, _080E9B50 +_080E9ABE: + ldr r1, [r2] + adds r1, r1, r5 + adds r1, r1, r3 + ldr r0, [r4] + adds r0, #0xa + adds r0, r0, r3 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #3 + bls _080E9ABE + ldr r0, _080E9B54 + movs r1, #0 + bl VarSet + ldr r6, _080E9B40 + ldr r4, [r6] + ldr r0, _080E9B58 + adds r4, r4, r0 + ldr r1, _080E9B50 + mov r8, r1 + ldr r5, [r1] + adds r0, r5, #0 + bl GetNameLength + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl StringCopyN + ldr r3, [r6] + mov r1, r8 + ldr r0, [r1] + ldrb r0, [r0, #8] + ldr r1, _080E9B5C + adds r3, r3, r1 + movs r4, #1 + adds r1, r4, #0 + ands r1, r0 + lsls r1, r1, #4 + ldrb r2, [r3] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldr r0, [r6] + ldr r3, _080E9B60 + adds r0, r0, r3 + strb r4, [r0] + ldr r0, _080E9B64 + ldr r1, _080E9B68 + ldrb r1, [r1, #0x14] + bl VarSet + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080E9B40: .4byte 0x03005AEC +_080E9B44: .4byte 0x02039CE8 +_080E9B48: .4byte 0x00001A9C +_080E9B4C: .4byte 0x00001AA5 +_080E9B50: .4byte 0x03005AF0 +_080E9B54: .4byte 0x00004054 +_080E9B58: .4byte 0x00001A9E +_080E9B5C: .4byte 0x00001A9D +_080E9B60: .4byte 0x00001AA9 +_080E9B64: .4byte 0x00004026 +_080E9B68: .4byte 0x02036FB8 + thumb_func_end SetPlayerSecretBase + + thumb_func_start SetOccupiedSecretBaseEntranceMetatiles +SetOccupiedSecretBaseEntranceMetatiles: @ 0x080E9B6C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov r8, r0 + movs r5, #0 + b _080E9C16 +_080E9B7A: + mov r0, r8 + ldr r1, [r0, #0x10] + lsls r2, r5, #1 + adds r0, r2, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #5] + adds r6, r1, #0 + adds r1, r5, #1 + mov sb, r1 + cmp r0, #8 + bne _080E9C0E + movs r4, #0 + ldr r7, _080E9BEC +_080E9B96: + ldr r1, [r7] + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #5 + adds r1, r1, r0 + ldr r0, _080E9BF0 + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r2, r5 + lsls r0, r0, #2 + adds r3, r0, r6 + ldr r0, [r3, #8] + cmp r1, r0 + bne _080E9C04 + ldrh r5, [r3] + adds r5, #7 + ldrh r4, [r3, #2] + adds r4, #7 + lsls r5, r5, #0x10 + asrs r0, r5, #0x10 + lsls r4, r4, #0x10 + asrs r1, r4, #0x10 + bl MapGridGetMetatileIdAt + movs r3, #0 + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + ldr r6, _080E9BF4 +_080E9BCE: + lsls r0, r3, #2 + adds r2, r0, r6 + ldrh r0, [r2] + cmp r0, r1 + bne _080E9BF8 + ldrh r0, [r2, #2] + movs r1, #0xc0 + lsls r1, r1, #4 + adds r2, r1, #0 + orrs r2, r0 + asrs r0, r5, #0x10 + asrs r1, r4, #0x10 + bl MapGridSetMetatileIdAt + b _080E9C0E + .align 2, 0 +_080E9BEC: .4byte 0x03005AEC +_080E9BF0: .4byte 0x00001A9C +_080E9BF4: .4byte 0x08568A78 +_080E9BF8: + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #6 + bls _080E9BCE + b _080E9C0E +_080E9C04: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x13 + bls _080E9B96 +_080E9C0E: + mov r1, sb + lsls r0, r1, #0x10 + lsrs r5, r0, #0x10 + mov r0, r8 +_080E9C16: + ldrb r0, [r0, #3] + cmp r5, r0 + blo _080E9B7A + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end SetOccupiedSecretBaseEntranceMetatiles + + thumb_func_start SetSecretBaseWarpDestination +SetSecretBaseWarpDestination: @ 0x080E9C28 + push {lr} + ldr r0, _080E9C54 + ldrb r0, [r0] + movs r1, #0xa + bl __udivsi3 + ldr r2, _080E9C58 + lsls r0, r0, #0x1a + asrs r0, r0, #0x18 + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, #1 + adds r0, r0, r2 + movs r2, #0 + ldrsb r2, [r0, r2] + movs r0, #0x19 + bl SetWarpDestinationToMapWarp + pop {r0} + bx r0 + .align 2, 0 +_080E9C54: .4byte 0x02039CE8 +_080E9C58: .4byte 0x08568A94 + thumb_func_end SetSecretBaseWarpDestination + + thumb_func_start Task_EnterSecretBase +Task_EnterSecretBase: @ 0x080E9C5C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _080E9C7C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r2, r0, r1 + movs r1, #8 + ldrsh r0, [r2, r1] + cmp r0, #0 + beq _080E9C80 + cmp r0, #1 + beq _080E9C98 + b _080E9CD6 + .align 2, 0 +_080E9C7C: .4byte 0x03005B60 +_080E9C80: + ldr r0, _080E9C94 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080E9CD6 + movs r0, #1 + strh r0, [r2, #8] + b _080E9CD6 + .align 2, 0 +_080E9C94: .4byte 0x02037C74 +_080E9C98: + ldr r0, _080E9CDC + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _080E9CE0 + ldr r2, [r1] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #5 + adds r2, r2, r1 + ldr r0, _080E9CE4 + adds r2, r2, r0 + ldrb r0, [r2] + cmp r0, #0xfe + bhi _080E9CBC + adds r0, #1 + strb r0, [r2] +_080E9CBC: + bl SetSecretBaseWarpDestination + bl WarpIntoMap + ldr r0, _080E9CE8 + ldr r1, _080E9CEC + str r1, [r0] + ldr r0, _080E9CF0 + bl SetMainCallback2 + adds r0, r4, #0 + bl DestroyTask +_080E9CD6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E9CDC: .4byte 0x00004054 +_080E9CE0: .4byte 0x03005AEC +_080E9CE4: .4byte 0x00001AAC +_080E9CE8: .4byte 0x03005B0C +_080E9CEC: .4byte 0x080AEA65 +_080E9CF0: .4byte 0x08085935 + thumb_func_end Task_EnterSecretBase + + thumb_func_start EnterSecretBase +EnterSecretBase: @ 0x080E9CF4 + push {lr} + ldr r0, _080E9D20 + movs r1, #0 + bl CreateTask + movs r0, #1 + movs r1, #0 + bl FadeScreen + ldr r0, _080E9D24 + ldr r0, [r0] + movs r1, #4 + ldrsb r1, [r0, r1] + movs r2, #5 + ldrsb r2, [r0, r2] + movs r3, #1 + rsbs r3, r3, #0 + movs r0, #0 + bl SetDynamicWarp + pop {r0} + bx r0 + .align 2, 0 +_080E9D20: .4byte 0x080E9C5D +_080E9D24: .4byte 0x03005AEC + thumb_func_end EnterSecretBase + + thumb_func_start SecretBaseMapPopupEnabled +SecretBaseMapPopupEnabled: @ 0x080E9D28 + push {lr} + ldr r0, _080E9D44 + ldrb r0, [r0, #0x17] + cmp r0, #9 + bne _080E9D4C + ldr r0, _080E9D48 + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080E9D4C + movs r0, #0 + b _080E9D4E + .align 2, 0 +_080E9D44: .4byte 0x02036FB8 +_080E9D48: .4byte 0x00004097 +_080E9D4C: + movs r0, #1 +_080E9D4E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SecretBaseMapPopupEnabled + + thumb_func_start EnterNewlyCreatedSecretBase_WaitFadeIn +EnterNewlyCreatedSecretBase_WaitFadeIn: @ 0x080E9D54 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080E9D8C + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080E9D90 + adds r0, r0, r1 + movs r1, #2 + bl EventObjectTurn + bl IsWeatherNotFadingIn + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080E9D84 + bl EnableBothScriptContexts + adds r0, r4, #0 + bl DestroyTask +_080E9D84: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E9D8C: .4byte 0x02037230 +_080E9D90: .4byte 0x02036FF0 + thumb_func_end EnterNewlyCreatedSecretBase_WaitFadeIn + + thumb_func_start EnterNewlyCreatedSecretBase_StartFadeIn +EnterNewlyCreatedSecretBase_StartFadeIn: @ 0x080E9D94 + push {r4, lr} + sub sp, #4 + bl ScriptContext2_Enable + bl HideMapNamePopUpWindow + mov r4, sp + adds r4, #2 + movs r2, #0x88 + lsls r2, r2, #2 + mov r0, sp + adds r1, r4, #0 + bl FindMetatileIdMapCoords + mov r1, sp + mov r0, sp + ldrh r0, [r0] + adds r0, #7 + strh r0, [r1] + ldrh r0, [r4] + adds r0, #7 + strh r0, [r4] + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0 + ldrsh r1, [r4, r2] + movs r2, #0xe2 + lsls r2, r2, #4 + bl MapGridSetMetatileIdAt + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0 + ldrsh r1, [r4, r2] + bl CurrentMapDrawMetatileAt + bl pal_fill_black + ldr r0, _080E9DF4 + movs r1, #0 + bl CreateTask + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E9DF4: .4byte 0x080E9D55 + thumb_func_end EnterNewlyCreatedSecretBase_StartFadeIn + + thumb_func_start Task_EnterNewlyCreatedSecretBase +Task_EnterNewlyCreatedSecretBase: @ 0x080E9DF8 + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _080E9E68 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080E9E60 + ldr r0, _080E9E6C + ldrb r0, [r0] + movs r1, #0xa + bl __udivsi3 + ldr r1, _080E9E70 + ldr r1, [r1] + movs r5, #4 + ldrsb r5, [r1, r5] + ldrb r1, [r1, #5] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r2, #1 + rsbs r2, r2, #0 + ldr r4, _080E9E74 + lsls r0, r0, #0x1a + asrs r0, r0, #0x18 + adds r3, r0, #2 + adds r3, r3, r4 + ldrb r3, [r3] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + adds r0, #3 + adds r0, r0, r4 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + str r0, [sp] + adds r0, r5, #0 + bl SetWarpDestination + bl WarpIntoMap + ldr r1, _080E9E78 + ldr r0, _080E9E7C + str r0, [r1] + ldr r0, _080E9E80 + bl SetMainCallback2 + adds r0, r6, #0 + bl DestroyTask +_080E9E60: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080E9E68: .4byte 0x02037C74 +_080E9E6C: .4byte 0x02039CE8 +_080E9E70: .4byte 0x03005AEC +_080E9E74: .4byte 0x08568A94 +_080E9E78: .4byte 0x03005B0C +_080E9E7C: .4byte 0x080E9D95 +_080E9E80: .4byte 0x08085935 + thumb_func_end Task_EnterNewlyCreatedSecretBase + + thumb_func_start EnterNewlyCreatedSecretBase +EnterNewlyCreatedSecretBase: @ 0x080E9E84 + push {lr} + ldr r0, _080E9E9C + movs r1, #0 + bl CreateTask + movs r0, #1 + movs r1, #0 + bl FadeScreen + pop {r0} + bx r0 + .align 2, 0 +_080E9E9C: .4byte 0x080E9DF9 + thumb_func_end EnterNewlyCreatedSecretBase + + thumb_func_start CurMapIsSecretBase +CurMapIsSecretBase: @ 0x080E9EA0 + push {lr} + ldr r0, _080E9EB8 + ldr r1, [r0] + movs r0, #4 + ldrsb r0, [r1, r0] + cmp r0, #0x19 + bne _080E9EBC + ldrb r0, [r1, #5] + cmp r0, #0x17 + bhi _080E9EBC + movs r0, #1 + b _080E9EBE + .align 2, 0 +_080E9EB8: .4byte 0x03005AEC +_080E9EBC: + movs r0, #0 +_080E9EBE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CurMapIsSecretBase + + thumb_func_start InitSecretBaseAppearance +InitSecretBaseAppearance: @ 0x080E9EC4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + bl CurMapIsSecretBase + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080E9FBC + ldr r0, _080E9F74 + bl VarGet + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r1, _080E9F78 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #5 + ldr r2, _080E9F7C + adds r0, r0, r2 + ldr r1, [r1] + adds r1, r1, r0 + adds r7, r1, #0 + adds r7, #0x12 + adds r6, r1, #0 + adds r6, #0x22 + movs r1, #0 + mov r0, sp + strh r1, [r0] + mov r4, sp + ldr r0, _080E9F80 + mov r8, r0 +_080E9F0C: + ldrh r1, [r4] + adds r2, r7, r1 + ldrb r0, [r2] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x77 + bhi _080E9F40 + ldrb r3, [r2] + lsls r0, r3, #3 + subs r0, r0, r3 + lsls r0, r0, #2 + add r0, r8 + ldrb r0, [r0, #0xc] + cmp r0, #4 + beq _080E9F40 + adds r0, r6, r1 + ldrb r2, [r0] + lsrs r0, r2, #4 + adds r0, #7 + movs r1, #0xf + ands r1, r2 + adds r1, #7 + adds r2, r3, #0 + bl ShowDecorationOnMap +_080E9F40: + ldrh r0, [r4] + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + strh r0, [r4] + cmp r0, #0xf + bls _080E9F0C + cmp r5, #0 + beq _080E9F88 + mov r4, sp + adds r4, #2 + movs r2, #0x88 + lsls r2, r2, #2 + mov r0, sp + adds r1, r4, #0 + bl FindMetatileIdMapCoords + mov r0, sp + ldrh r0, [r0] + adds r0, #7 + ldrh r1, [r4] + adds r1, #7 + ldr r2, _080E9F84 + bl MapGridSetMetatileIdAt + b _080E9FBC + .align 2, 0 +_080E9F74: .4byte 0x00004054 +_080E9F78: .4byte 0x03005AEC +_080E9F7C: .4byte 0x00001A9C +_080E9F80: .4byte 0x08580CD0 +_080E9F84: .4byte 0x00000E21 +_080E9F88: + mov r2, sb + cmp r2, #1 + bne _080E9FBC + ldr r0, _080E9FCC + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bne _080E9FBC + mov r4, sp + adds r4, #2 + movs r2, #0x88 + lsls r2, r2, #2 + mov r0, sp + adds r1, r4, #0 + bl FindMetatileIdMapCoords + mov r0, sp + ldrh r0, [r0] + adds r0, #7 + ldrh r1, [r4] + adds r1, #7 + ldr r2, _080E9FD0 + bl MapGridSetMetatileIdAt +_080E9FBC: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E9FCC: .4byte 0x00004089 +_080E9FD0: .4byte 0x00000E0A + thumb_func_end InitSecretBaseAppearance + + thumb_func_start InitSecretBaseDecorationSprites +InitSecretBaseDecorationSprites: @ 0x080E9FD4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + bl CurMapIsSecretBase + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080EA00C + ldr r0, _080EA000 + ldr r0, [r0] + ldr r1, _080EA004 + adds r1, r0, r1 + str r1, [sp, #4] + ldr r2, _080EA008 + adds r2, r0, r2 + str r2, [sp, #8] + movs r3, #0xc + str r3, [sp, #0x10] + b _080EA034 + .align 2, 0 +_080EA000: .4byte 0x03005AEC +_080EA004: .4byte 0x0000271C +_080EA008: .4byte 0x00002728 +_080EA00C: + ldr r0, _080EA038 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r2, _080EA03C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #5 + ldr r4, _080EA040 + adds r1, r1, r4 + ldr r0, [r2] + adds r0, r0, r1 + adds r1, r0, #0 + adds r1, #0x12 + str r1, [sp, #4] + adds r0, #0x22 + str r0, [sp, #8] + movs r2, #0x10 + str r2, [sp, #0x10] +_080EA034: + movs r6, #0 + b _080EA1FA + .align 2, 0 +_080EA038: .4byte 0x00004054 +_080EA03C: .4byte 0x03005AEC +_080EA040: .4byte 0x00001A9C +_080EA044: + ldr r4, [sp, #4] + adds r0, r4, r6 + ldrb r1, [r0] + mov sl, r0 + adds r0, r6, #1 + str r0, [sp, #0x14] + cmp r1, #0 + bne _080EA056 + b _080EA1F4 +_080EA056: + mov r1, sl + ldrb r0, [r1] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + ldr r2, _080EA1B0 + adds r1, r1, r2 + ldrb r0, [r1, #0xc] + ldrb r1, [r1, #0xe] + str r1, [sp, #0xc] + cmp r0, #4 + beq _080EA070 + b _080EA1F4 +_080EA070: + movs r5, #0 + ldr r0, _080EA1B4 + ldr r3, [r0, #4] + ldrb r4, [r3] + mov sb, r0 + cmp r5, r4 + bhs _080EA0AE + ldr r0, [r3, #4] + ldrh r2, [r0, #0x14] + ldr r1, _080EA1B8 + ldrh r0, [r1] + adds r0, #0xae + adds r7, r1, #0 + cmp r2, r0 + beq _080EA0AE + adds r2, r4, #0 +_080EA090: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, r2 + bhs _080EA0AE + ldr r1, [r3, #4] + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #0x14] + ldrh r0, [r7] + adds r0, #0xae + cmp r1, r0 + bne _080EA090 +_080EA0AE: + mov r3, sb + ldr r0, [r3, #4] + ldrb r0, [r0] + cmp r5, r0 + bne _080EA0BA + b _080EA1F4 +_080EA0BA: + ldr r4, _080EA1BC + mov r8, r4 + ldr r0, [sp, #8] + adds r1, r0, r6 + ldrb r0, [r1] + lsrs r0, r0, #4 + strh r0, [r4] + ldr r7, _080EA1C0 + ldrb r1, [r1] + movs r0, #0xf + ands r0, r1 + strh r0, [r7] + ldrh r0, [r4] + adds r0, #7 + ldrh r1, [r7] + adds r1, #7 + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl MetatileBehavior_HoldsSmallDecoration + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080EA0FE + adds r0, r4, #0 + bl MetatileBehavior_HoldsLargeDecoration + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080EA1F4 +_080EA0FE: + ldr r6, _080EA1C4 + mov r1, sb + ldr r0, [r1, #4] + ldr r1, [r0, #4] + lsls r4, r5, #1 + adds r4, r4, r5 + lsls r4, r4, #3 + adds r1, r4, r1 + ldr r2, _080EA1C8 + adds r0, r2, #0 + ldrb r1, [r1, #1] + adds r0, r0, r1 + strh r0, [r6] + ldrh r0, [r6] + mov r3, sl + ldrb r2, [r3] + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + ldr r2, _080EA1CC + adds r1, r1, r2 + ldr r1, [r1] + ldrh r1, [r1] + bl VarSet + mov r3, sb + ldr r0, [r3, #4] + ldr r0, [r0, #4] + adds r4, r4, r0 + ldrb r0, [r4] + strh r0, [r6] + ldr r0, _080EA1B8 + ldrh r0, [r0] + adds r0, #0xae + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl FlagClear + ldrb r0, [r6] + ldr r5, _080EA1D0 + ldr r2, [r5] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + bl TrySpawnEventObject + ldrb r0, [r6] + ldr r2, [r5] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + mov r4, r8 + movs r3, #0 + ldrsh r4, [r4, r3] + mov r8, r4 + movs r4, #0 + ldrsh r7, [r7, r4] + str r7, [sp] + mov r3, r8 + bl TryMoveEventObjectToMapCoords + ldrb r0, [r6] + ldr r2, [r5] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + bl TryOverrideEventObjectTemplateCoords + bl CurMapIsSecretBase + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080EA1EC + ldr r0, _080EA1D4 + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080EA1EC + ldr r0, [sp, #0xc] + cmp r0, #6 + bne _080EA1D8 + ldrb r0, [r6] + ldr r2, [r5] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + movs r3, #6 + bl OverrideSecretBaseDecorationSpriteScript + b _080EA1EC + .align 2, 0 +_080EA1B0: .4byte 0x08580CD0 +_080EA1B4: .4byte 0x02036FB8 +_080EA1B8: .4byte 0x02037280 +_080EA1BC: .4byte 0x02037284 +_080EA1C0: .4byte 0x02037286 +_080EA1C4: .4byte 0x02037290 +_080EA1C8: .4byte 0x00003F20 +_080EA1CC: .4byte 0x08580CE8 +_080EA1D0: .4byte 0x03005AEC +_080EA1D4: .4byte 0x00004054 +_080EA1D8: + ldr r1, [sp, #0xc] + cmp r1, #7 + bne _080EA1EC + ldrb r0, [r6] + ldr r2, [r5] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + movs r3, #7 + bl OverrideSecretBaseDecorationSpriteScript +_080EA1EC: + ldr r1, _080EA214 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_080EA1F4: + ldr r2, [sp, #0x14] + lsls r0, r2, #0x18 + lsrs r6, r0, #0x18 +_080EA1FA: + ldr r3, [sp, #0x10] + cmp r6, r3 + bhs _080EA202 + b _080EA044 +_080EA202: + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080EA214: .4byte 0x02037280 + thumb_func_end InitSecretBaseDecorationSprites + + thumb_func_start HideSecretBaseDecorationSprites +HideSecretBaseDecorationSprites: @ 0x080EA218 + push {r4, r5, r6, lr} + movs r5, #0 + ldr r1, _080EA26C + ldr r0, [r1, #4] + ldrb r0, [r0] + cmp r5, r0 + bhs _080EA264 + adds r6, r1, #0 +_080EA228: + ldr r0, [r6, #4] + ldr r1, [r0, #4] + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r1, r0, r1 + ldrh r4, [r1, #0x14] + adds r0, r4, #0 + subs r0, #0xae + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xd + bhi _080EA256 + ldrb r0, [r1] + ldr r1, _080EA270 + ldr r2, [r1] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + bl RemoveEventObjectByLocalIdAndMap + adds r0, r4, #0 + bl FlagSet +_080EA256: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, [r6, #4] + ldrb r0, [r0] + cmp r5, r0 + blo _080EA228 +_080EA264: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080EA26C: .4byte 0x02036FB8 +_080EA270: .4byte 0x03005AEC + thumb_func_end HideSecretBaseDecorationSprites + + thumb_func_start SetSecretBaseOwnerGfxId +SetSecretBaseOwnerGfxId: @ 0x080EA274 + push {r4, r5, lr} + ldr r5, _080EA29C + ldr r4, _080EA2A0 + ldr r0, _080EA2A4 + bl VarGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetSecretBaseOwnerType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r4 + ldrb r1, [r0] + adds r0, r5, #0 + bl VarSet + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080EA29C: .4byte 0x0000401F +_080EA2A0: .4byte 0x08568B0C +_080EA2A4: .4byte 0x00004054 + thumb_func_end SetSecretBaseOwnerGfxId + + thumb_func_start SetCurSecretBaseIdFromPosition +SetCurSecretBaseIdFromPosition: @ 0x080EA2A8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + movs r3, #0 + ldrb r0, [r4, #3] + cmp r3, r0 + bge _080EA300 + ldr r6, _080EA2EC +_080EA2B8: + lsls r3, r3, #0x10 + asrs r1, r3, #0x10 + ldr r2, [r4, #0x10] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, r0, r2 + ldrb r0, [r2, #5] + cmp r0, #8 + bne _080EA2F0 + movs r0, #0 + ldrsh r1, [r5, r0] + ldrh r0, [r2] + adds r0, #7 + cmp r1, r0 + bne _080EA2F0 + movs r0, #2 + ldrsh r1, [r5, r0] + ldrh r0, [r2, #2] + adds r0, #7 + cmp r1, r0 + bne _080EA2F0 + ldr r0, [r2, #8] + strb r0, [r6] + b _080EA300 + .align 2, 0 +_080EA2EC: .4byte 0x02039CE8 +_080EA2F0: + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r3, r1 + lsrs r3, r0, #0x10 + asrs r0, r0, #0x10 + ldrb r1, [r4, #3] + cmp r0, r1 + blt _080EA2B8 +_080EA300: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetCurSecretBaseIdFromPosition + + thumb_func_start WarpIntoSecretBase +WarpIntoSecretBase: @ 0x080EA308 + push {lr} + bl SetCurSecretBaseIdFromPosition + bl TrySetCurSecretBaseIndex + ldr r0, _080EA31C + bl ScriptContext1_SetupScript + pop {r0} + bx r0 + .align 2, 0 +_080EA31C: .4byte 0x08245C66 + thumb_func_end WarpIntoSecretBase + + thumb_func_start TrySetCurSecretBase +TrySetCurSecretBase: @ 0x080EA320 + push {lr} + bl SetCurSecretBaseId + bl TrySetCurSecretBaseIndex + ldr r0, _080EA338 + ldrh r0, [r0] + cmp r0, #1 + beq _080EA33C + movs r0, #1 + b _080EA33E + .align 2, 0 +_080EA338: .4byte 0x02037290 +_080EA33C: + movs r0, #0 +_080EA33E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TrySetCurSecretBase + + thumb_func_start Task_WarpOutOfSecretBase +Task_WarpOutOfSecretBase: @ 0x080EA344 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _080EA368 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _080EA37C + cmp r0, #1 + bgt _080EA36C + cmp r0, #0 + beq _080EA372 + b _080EA3B4 + .align 2, 0 +_080EA368: .4byte 0x03005B60 +_080EA36C: + cmp r0, #2 + beq _080EA394 + b _080EA3B4 +_080EA372: + bl ScriptContext2_Enable + movs r0, #1 + strh r0, [r4, #8] + b _080EA3B4 +_080EA37C: + ldr r0, _080EA390 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080EA3B4 + movs r0, #2 + strh r0, [r4, #8] + b _080EA3B4 + .align 2, 0 +_080EA390: .4byte 0x02037C74 +_080EA394: + movs r0, #0x7e + bl SetWarpDestinationToDynamicWarp + bl WarpIntoMap + ldr r0, _080EA3BC + ldr r1, _080EA3C0 + str r1, [r0] + ldr r0, _080EA3C4 + bl SetMainCallback2 + bl ScriptContext2_Disable + adds r0, r5, #0 + bl DestroyTask +_080EA3B4: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080EA3BC: .4byte 0x03005B0C +_080EA3C0: .4byte 0x080AEC95 +_080EA3C4: .4byte 0x08085935 + thumb_func_end Task_WarpOutOfSecretBase + + thumb_func_start WarpOutOfSecretBase +WarpOutOfSecretBase: @ 0x080EA3C8 + push {lr} + ldr r0, _080EA3E0 + movs r1, #0 + bl CreateTask + movs r0, #1 + movs r1, #0 + bl FadeScreen + pop {r0} + bx r0 + .align 2, 0 +_080EA3E0: .4byte 0x080EA345 + thumb_func_end WarpOutOfSecretBase + + thumb_func_start IsCurSecretBaseOwnedByAnotherPlayer +IsCurSecretBaseOwnedByAnotherPlayer: @ 0x080EA3E4 + push {lr} + ldr r0, _080EA400 + ldr r0, [r0] + ldr r1, _080EA404 + adds r0, r0, r1 + ldr r1, _080EA408 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _080EA410 + ldr r1, _080EA40C + movs r0, #1 + b _080EA414 + .align 2, 0 +_080EA400: .4byte 0x03005AEC +_080EA404: .4byte 0x00001A9C +_080EA408: .4byte 0x02039CE8 +_080EA40C: .4byte 0x02037290 +_080EA410: + ldr r1, _080EA41C + movs r0, #0 +_080EA414: + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080EA41C: .4byte 0x02037290 + thumb_func_end IsCurSecretBaseOwnedByAnotherPlayer + + thumb_func_start GetSecretBaseMapName +GetSecretBaseMapName: @ 0x080EA420 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, _080EA460 + lsls r4, r1, #2 + adds r4, r4, r1 + lsls r4, r4, #5 + ldr r0, [r0] + adds r4, r4, r0 + ldr r0, _080EA464 + adds r4, r4, r0 + adds r0, r4, #0 + bl GetNameLength + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r5, #0 + adds r1, r4, #0 + bl StringCopyN + movs r1, #0xff + strb r1, [r0] + ldr r1, _080EA468 + adds r0, r5, #0 + bl StringAppend + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080EA460: .4byte 0x03005AEC +_080EA464: .4byte 0x00001A9E +_080EA468: .4byte 0x085CA654 + thumb_func_end GetSecretBaseMapName + + thumb_func_start RegistryMenu_OnCursorMove +RegistryMenu_OnCursorMove: @ 0x080EA46C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080EA488 + bl VarGet + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl GetSecretBaseMapName + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080EA488: .4byte 0x00004054 + thumb_func_end RegistryMenu_OnCursorMove + + thumb_func_start DeleteRegistry_Yes +DeleteRegistry_Yes: @ 0x080EA48C + push {r4, r5, lr} + ldr r0, _080EA4C8 + bl VarGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080EA4CC + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #5 + ldr r0, [r1] + adds r4, r4, r0 + ldr r0, _080EA4D0 + adds r4, r4, r0 + ldr r5, _080EA4D4 + adds r0, r4, #0 + bl GetNameLength + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + 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 +_080EA4C8: .4byte 0x00004054 +_080EA4CC: .4byte 0x03005AEC +_080EA4D0: .4byte 0x00001A9E +_080EA4D4: .4byte 0x02021C40 + thumb_func_end DeleteRegistry_Yes + + thumb_func_start IsSecretBaseRegistered +IsSecretBaseRegistered: @ 0x080EA4D8 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080EA4FC + ldr r2, [r1] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #5 + adds r2, r2, r1 + ldr r0, _080EA500 + adds r2, r2, r0 + ldrb r0, [r2] + lsrs r0, r0, #6 + cmp r0, #0 + bne _080EA504 + movs r0, #0 + b _080EA506 + .align 2, 0 +_080EA4FC: .4byte 0x03005AEC +_080EA500: .4byte 0x00001A9D +_080EA504: + movs r0, #1 +_080EA506: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsSecretBaseRegistered + + thumb_func_start GetAverageEVs +GetAverageEVs: @ 0x080EA50C + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0x1a + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + movs r1, #0x1b + bl GetMonData + adds r4, r4, r0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + movs r1, #0x1c + bl GetMonData + adds r4, r4, r0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + movs r1, #0x1d + bl GetMonData + adds r4, r4, r0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + movs r1, #0x1e + bl GetMonData + adds r4, r4, r0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + movs r1, #0x1f + bl GetMonData + adds r4, r4, r0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r4, #0 + movs r1, #6 + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end GetAverageEVs + + thumb_func_start SetPlayerSecretBaseParty +SetPlayerSecretBaseParty: @ 0x080EA574 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x24 + movs r0, #0 + mov sl, r0 + ldr r0, _080EA6D0 + ldr r1, [r0] + ldr r2, _080EA6D4 + adds r2, r1, r2 + str r2, [sp] + ldr r3, _080EA6D8 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, #0 + bne _080EA59A + b _080EA6C0 +_080EA59A: + movs r6, #0 + ldr r7, _080EA6DC + adds r7, r1, r7 + str r7, [sp, #0x14] + ldr r0, _080EA6E0 + adds r0, r1, r0 + str r0, [sp, #0xc] + ldr r2, _080EA6E4 + adds r2, r1, r2 + str r2, [sp, #0x10] + adds r3, #0x94 + adds r3, r1, r3 + str r3, [sp, #0x18] + ldr r7, _080EA6E8 + adds r7, r1, r7 + str r7, [sp, #0x1c] + mov sb, r6 +_080EA5BC: + movs r4, #0 + lsls r5, r6, #2 + lsls r3, r6, #1 + ldr r0, _080EA6EC + mov r8, r0 + adds r1, r6, #1 + str r1, [sp, #4] + adds r2, r5, #0 + ldr r1, [sp, #0x14] +_080EA5CE: + adds r0, r2, r4 + lsls r0, r0, #1 + adds r0, r1, r0 + mov r7, sb + strh r7, [r0] + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #3 + bls _080EA5CE + ldr r1, [sp, #0xc] + adds r0, r1, r3 + mov r2, sb + strh r2, [r0] + ldr r7, [sp, #0x10] + adds r0, r7, r3 + strh r2, [r0] + ldr r1, [sp, #0x18] + adds r0, r1, r6 + mov r2, sb + strb r2, [r0] + ldr r3, [sp] + adds r0, r3, r5 + mov r7, sb + str r7, [r0] + ldr r1, [sp, #0x1c] + adds r0, r1, r6 + strb r7, [r0] + movs r2, #0x64 + adds r5, r6, #0 + muls r5, r2, r5 + mov r3, r8 + adds r4, r5, r3 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _080EA6B4 + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + bne _080EA6B4 + movs r4, #0 + mov r7, sl + lsls r7, r7, #2 + mov r8, r7 + mov r0, sl + lsls r7, r0, #1 + adds r0, #1 + str r0, [sp, #8] + ldr r2, _080EA6EC +_080EA63A: + adds r1, r4, #0 + adds r1, #0xd + adds r0, r5, r2 + str r2, [sp, #0x20] + bl GetMonData + mov r3, r8 + adds r1, r3, r4 + lsls r1, r1, #1 + ldr r3, [sp, #0x14] + adds r1, r3, r1 + strh r0, [r1] + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r2, [sp, #0x20] + cmp r4, #3 + bls _080EA63A + movs r0, #0x64 + adds r4, r6, #0 + muls r4, r0, r4 + ldr r0, _080EA6EC + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + ldr r2, [sp, #0xc] + adds r1, r2, r7 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0xc + bl GetMonData + ldr r3, [sp, #0x10] + adds r1, r3, r7 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0x38 + bl GetMonData + ldr r1, [sp, #0x18] + add r1, sl + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl GetMonData + ldr r1, [sp] + add r1, r8 + str r0, [r1] + adds r0, r4, #0 + bl GetAverageEVs + ldr r1, [sp, #0x1c] + add r1, sl + strb r0, [r1] + ldr r7, [sp, #8] + lsls r0, r7, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 +_080EA6B4: + ldr r1, [sp, #4] + lsls r0, r1, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #5 + bhi _080EA6C0 + b _080EA5BC +_080EA6C0: + add sp, #0x24 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080EA6D0: .4byte 0x03005AEC +_080EA6D4: .4byte 0x00001AD0 +_080EA6D8: .4byte 0x00001A9C +_080EA6DC: .4byte 0x00001AE8 +_080EA6E0: .4byte 0x00001B18 +_080EA6E4: .4byte 0x00001B24 +_080EA6E8: .4byte 0x00001B36 +_080EA6EC: .4byte 0x02024190 + thumb_func_end SetPlayerSecretBaseParty + + thumb_func_start ClearAndLeaveSecretBase +ClearAndLeaveSecretBase: @ 0x080EA6F0 + push {r4, r5, r6, lr} + ldr r5, _080EA714 + ldr r0, [r5] + ldr r4, _080EA718 + adds r1, r0, r4 + ldrh r6, [r1] + ldr r1, _080EA71C + adds r0, r0, r1 + bl ClearSecretBase + ldr r0, [r5] + adds r0, r0, r4 + strh r6, [r0] + bl WarpOutOfSecretBase + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080EA714: .4byte 0x03005AEC +_080EA718: .4byte 0x00001AAA +_080EA71C: .4byte 0x00001A9C + thumb_func_end ClearAndLeaveSecretBase + + thumb_func_start MoveOutOfSecretBase +MoveOutOfSecretBase: @ 0x080EA720 + push {lr} + movs r0, #0x14 + bl IncrementGameStat + bl ClearAndLeaveSecretBase + pop {r0} + bx r0 + thumb_func_end MoveOutOfSecretBase + + thumb_func_start ClosePlayerSecretBaseEntrance +ClosePlayerSecretBaseEntrance: @ 0x080EA730 + push {r4, r5, r6, r7, lr} + ldr r0, _080EA73C + ldr r4, [r0, #4] + movs r6, #0 + b _080EA7C2 + .align 2, 0 +_080EA73C: .4byte 0x02036FB8 +_080EA740: + ldr r2, [r4, #0x10] + lsls r1, r6, #1 + adds r0, r1, r6 + lsls r0, r0, #2 + adds r2, r0, r2 + ldrb r0, [r2, #5] + adds r7, r1, #0 + cmp r0, #8 + bne _080EA7BC + ldr r0, _080EA790 + ldr r0, [r0] + ldr r1, _080EA794 + adds r0, r0, r1 + ldrb r1, [r0] + ldr r0, [r2, #8] + cmp r1, r0 + bne _080EA7BC + ldrh r0, [r2] + adds r0, #7 + ldrh r1, [r2, #2] + adds r1, #7 + bl MapGridGetMetatileIdAt + movs r1, #0 + ldr r5, _080EA798 + lsls r0, r0, #0x10 + asrs r2, r0, #0x10 +_080EA776: + lsls r0, r1, #2 + adds r3, r0, r5 + ldrh r0, [r3, #2] + cmp r0, r2 + beq _080EA79C + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #6 + bls _080EA776 +_080EA78A: + bl DrawWholeMapView + b _080EA7C8 + .align 2, 0 +_080EA790: .4byte 0x03005AEC +_080EA794: .4byte 0x00001A9C +_080EA798: .4byte 0x08568A78 +_080EA79C: + ldr r0, [r4, #0x10] + adds r1, r7, r6 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r0, [r1] + adds r0, #7 + ldrh r1, [r1, #2] + adds r1, #7 + ldrh r3, [r3] + movs r4, #0xc0 + lsls r4, r4, #4 + adds r2, r4, #0 + orrs r2, r3 + bl MapGridSetMetatileIdAt + b _080EA78A +_080EA7BC: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 +_080EA7C2: + ldrb r0, [r4, #3] + cmp r6, r0 + blo _080EA740 +_080EA7C8: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ClosePlayerSecretBaseEntrance + + thumb_func_start MoveOutOfSecretBaseFromOutside +MoveOutOfSecretBaseFromOutside: @ 0x080EA7D0 + push {r4, r5, r6, lr} + bl ClosePlayerSecretBaseEntrance + movs r0, #0x14 + bl IncrementGameStat + ldr r5, _080EA7FC + ldr r0, [r5] + ldr r4, _080EA800 + adds r1, r0, r4 + ldrh r6, [r1] + ldr r1, _080EA804 + adds r0, r0, r1 + bl ClearSecretBase + ldr r0, [r5] + adds r0, r0, r4 + strh r6, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080EA7FC: .4byte 0x03005AEC +_080EA800: .4byte 0x00001AAA +_080EA804: .4byte 0x00001A9C + thumb_func_end MoveOutOfSecretBaseFromOutside + + thumb_func_start GetNumRegisteredSecretBases +GetNumRegisteredSecretBases: @ 0x080EA808 + push {r4, r5, lr} + movs r5, #0 + movs r4, #1 +_080EA80E: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl IsSecretBaseRegistered + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080EA824 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_080EA824: + lsls r0, r4, #0x10 + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r0, r1 + lsrs r4, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x13 + ble _080EA80E + adds r0, r5, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end GetNumRegisteredSecretBases + + thumb_func_start GetCurSecretBaseRegistrationValidity +GetCurSecretBaseRegistrationValidity: @ 0x080EA83C + push {lr} + ldr r0, _080EA85C + bl VarGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl IsSecretBaseRegistered + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #1 + bne _080EA864 + ldr r0, _080EA860 + strh r1, [r0] + b _080EA882 + .align 2, 0 +_080EA85C: .4byte 0x00004054 +_080EA860: .4byte 0x02037290 +_080EA864: + bl GetNumRegisteredSecretBases + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #9 + bls _080EA87C + ldr r1, _080EA878 + movs r0, #2 + b _080EA880 + .align 2, 0 +_080EA878: .4byte 0x02037290 +_080EA87C: + ldr r1, _080EA888 + movs r0, #0 +_080EA880: + strh r0, [r1] +_080EA882: + pop {r0} + bx r0 + .align 2, 0 +_080EA888: .4byte 0x02037290 + thumb_func_end GetCurSecretBaseRegistrationValidity + + thumb_func_start ToggleCurSecretBaseRegistry +ToggleCurSecretBaseRegistry: @ 0x080EA88C + push {lr} + ldr r0, _080EA8C8 + bl VarGet + ldr r1, _080EA8CC + ldr r2, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #5 + adds r2, r2, r1 + ldr r0, _080EA8D0 + adds r2, r2, r0 + ldrb r3, [r2] + lsrs r1, r3, #6 + movs r0, #1 + eors r1, r0 + lsls r1, r1, #6 + movs r0, #0x3f + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x86 + lsls r0, r0, #1 + bl FlagSet + pop {r0} + bx r0 + .align 2, 0 +_080EA8C8: .4byte 0x00004054 +_080EA8CC: .4byte 0x03005AEC +_080EA8D0: .4byte 0x00001A9D + thumb_func_end ToggleCurSecretBaseRegistry + + thumb_func_start ShowSecretBaseDecorationMenu +ShowSecretBaseDecorationMenu: @ 0x080EA8D4 + push {lr} + ldr r0, _080EA8E4 + movs r1, #0 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080EA8E4: .4byte 0x08126AA1 + thumb_func_end ShowSecretBaseDecorationMenu + + thumb_func_start ShowSecretBaseRegistryMenu +ShowSecretBaseRegistryMenu: @ 0x080EA8E8 + push {lr} + ldr r0, _080EA8F8 + movs r1, #0 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080EA8F8: .4byte 0x080EA8FD + thumb_func_end ShowSecretBaseRegistryMenu + + thumb_func_start Task_ShowSecretBaseRegistryMenu +Task_ShowSecretBaseRegistryMenu: @ 0x080EA8FC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r7, r0, #3 + ldr r0, _080EA960 + mov r8, r0 + adds r5, r7, r0 + bl ScriptContext2_Enable + bl GetNumRegisteredSecretBases + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5] + cmp r0, #0 + beq _080EA970 + movs r0, #0 + strh r0, [r5, #2] + strh r0, [r5, #4] + movs r0, #0 + movs r1, #0 + bl DrawDialogueFrame + ldr r4, _080EA964 + movs r0, #0x84 + lsls r0, r0, #1 + bl AllocZeroed + str r0, [r4] + ldr r0, _080EA968 + bl AddWindow + strh r0, [r5, #0xc] + adds r0, r6, #0 + bl BuildRegistryMenuItems + adds r0, r6, #0 + bl FinalizeRegistryMenu + mov r0, r8 + subs r0, #8 + adds r0, r7, r0 + ldr r1, _080EA96C + str r1, [r0] + b _080EA97A + .align 2, 0 +_080EA960: .4byte 0x03005B68 +_080EA964: .4byte 0x02039CEC +_080EA968: .4byte 0x08568B18 +_080EA96C: .4byte 0x080EAAF1 +_080EA970: + ldr r1, _080EA984 + ldr r2, _080EA988 + adds r0, r6, #0 + bl DisplayItemMessageOnField +_080EA97A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080EA984: .4byte 0x085CA688 +_080EA988: .4byte 0x080EAE19 + thumb_func_end Task_ShowSecretBaseRegistryMenu + + thumb_func_start BuildRegistryMenuItems +BuildRegistryMenuItems: @ 0x080EA98C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080EAA0C + adds r7, r1, r0 + movs r6, #0 + movs r5, #1 + ldr r0, _080EAA10 + mov r8, r0 +_080EA9A8: + adds r0, r5, #0 + bl IsSecretBaseRegistered + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080EA9DC + lsls r4, r6, #4 + adds r4, #0x58 + mov r1, r8 + ldr r0, [r1] + adds r0, r0, r4 + adds r1, r5, #0 + bl GetSecretBaseMapName + mov r3, r8 + ldr r0, [r3] + lsls r2, r6, #3 + adds r1, r0, r2 + adds r4, r0, r4 + str r4, [r1] + adds r0, #4 + adds r0, r0, r2 + str r5, [r0] + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_080EA9DC: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x13 + bls _080EA9A8 + ldr r4, _080EAA10 + ldr r1, [r4] + lsls r3, r6, #3 + adds r2, r1, r3 + ldr r0, _080EAA14 + str r0, [r2] + adds r1, #4 + adds r1, r1, r3 + movs r0, #2 + rsbs r0, r0, #0 + str r0, [r1] + adds r2, r6, #1 + strh r2, [r7] + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + bgt _080EAA18 + strh r2, [r7, #6] + b _080EAA1C + .align 2, 0 +_080EAA0C: .4byte 0x03005B68 +_080EAA10: .4byte 0x02039CEC +_080EAA14: .4byte 0x085C93C4 +_080EAA18: + movs r0, #8 + strh r0, [r7, #6] +_080EAA1C: + ldr r2, _080EAA44 + adds r1, r2, #0 + ldr r0, _080EAA48 + ldm r0!, {r3, r5, r6} + stm r1!, {r3, r5, r6} + ldm r0!, {r3, r5, r6} + stm r1!, {r3, r5, r6} + ldrh r0, [r7, #0xc] + strb r0, [r2, #0x10] + ldrh r0, [r7] + strh r0, [r2, #0xc] + ldr r0, [r4] + str r0, [r2] + ldrh r0, [r7, #6] + strh r0, [r2, #0xe] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080EAA44: .4byte 0x03006050 +_080EAA48: .4byte 0x08568B28 + thumb_func_end BuildRegistryMenuItems + + thumb_func_start sub_080EAA4C +sub_080EAA4C: @ 0x080EAA4C + push {lr} + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #1 + beq _080EAA5C + movs r0, #5 + bl PlaySE +_080EAA5C: + pop {r0} + bx r0 + thumb_func_end sub_080EAA4C + + thumb_func_start FinalizeRegistryMenu +FinalizeRegistryMenu: @ 0x080EAA60 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + ldr r0, _080EAA9C + adds r4, r4, r0 + ldrb r0, [r4, #0xc] + movs r1, #0 + bl SetStandardWindowBorderStyle + ldr r0, _080EAAA0 + ldrh r1, [r4, #4] + ldrh r2, [r4, #2] + bl ListMenuInit + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0xa] + adds r0, r5, #0 + bl AddRegistryMenuScrollArrows + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080EAA9C: .4byte 0x03005B68 +_080EAAA0: .4byte 0x03006050 + thumb_func_end FinalizeRegistryMenu + + thumb_func_start AddRegistryMenuScrollArrows +AddRegistryMenuScrollArrows: @ 0x080EAAA4 + push {r4, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _080EAAE8 + adds r4, r4, r0 + movs r1, #0 + ldrsh r0, [r4, r1] + movs r2, #6 + ldrsh r1, [r4, r2] + subs r0, r0, r1 + str r0, [sp] + ldr r0, _080EAAEC + str r0, [sp, #4] + str r0, [sp, #8] + adds r0, r4, #4 + str r0, [sp, #0xc] + movs r0, #2 + movs r1, #0xbc + movs r2, #0xc + movs r3, #0x94 + bl AddScrollIndicatorArrowPairParameterized + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x10] + add sp, #0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EAAE8: .4byte 0x03005B68 +_080EAAEC: .4byte 0x000013F8 + thumb_func_end AddRegistryMenuScrollArrows + + thumb_func_start HandleRegistryMenuInput +HandleRegistryMenuInput: @ 0x080EAAF0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _080EAB24 + adds r4, r0, r1 + ldrb r0, [r4, #0xa] + bl ListMenu_ProcessInput + adds r5, r0, #0 + ldrb r0, [r4, #0xa] + adds r1, r4, #4 + adds r2, r4, #2 + bl ListMenuGetScrollAndRow + movs r0, #2 + rsbs r0, r0, #0 + cmp r5, r0 + beq _080EAB28 + adds r0, #1 + cmp r5, r0 + bne _080EAB6C + b _080EAB7A + .align 2, 0 +_080EAB24: .4byte 0x03005B68 +_080EAB28: + movs r0, #5 + bl PlaySE + ldrb r0, [r4, #0xa] + movs r1, #0 + movs r2, #0 + bl DestroyListMenuTask + ldrb r0, [r4, #0x10] + bl RemoveScrollIndicatorArrowPair + ldrb r0, [r4, #0xc] + movs r1, #0 + bl DrawStdWindowFrame + ldrb r0, [r4, #0xc] + bl ClearWindowTilemap + ldrb r0, [r4, #0xc] + bl RemoveWindow + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + ldr r0, _080EAB68 + ldr r0, [r0] + bl Free + adds r0, r6, #0 + bl GoToSecretBasePCMainMenu + b _080EAB7A + .align 2, 0 +_080EAB68: .4byte 0x02039CEC +_080EAB6C: + movs r0, #5 + bl PlaySE + strh r5, [r4, #8] + adds r0, r6, #0 + bl ShowRegistryMenuActions +_080EAB7A: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end HandleRegistryMenuInput + + thumb_func_start ShowRegistryMenuActions +ShowRegistryMenuActions: @ 0x080EAB80 + push {r4, r5, r6, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r6, _080EABE8 + adds r5, r4, r6 + ldrb r0, [r5, #0x10] + bl RemoveScrollIndicatorArrowPair + ldr r0, _080EABEC + bl AddWindow + strh r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl SetStandardWindowBorderStyle + ldrb r0, [r5, #0xe] + ldr r1, _080EABF0 + str r1, [sp] + movs r1, #1 + movs r2, #0x10 + movs r3, #2 + bl sub_08198964 + ldrb r0, [r5, #0xe] + movs r1, #0x10 + str r1, [sp] + movs r1, #2 + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl sub_081984B0 + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + subs r6, #8 + adds r4, r4, r6 + ldr r0, _080EABF4 + str r0, [r4] + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080EABE8: .4byte 0x03005B68 +_080EABEC: .4byte 0x08568B20 +_080EABF0: .4byte 0x08568AF4 +_080EABF4: .4byte 0x080EABF9 + thumb_func_end ShowRegistryMenuActions + + thumb_func_start HandleRegistryMenuActionsInput +HandleRegistryMenuActionsInput: @ 0x080EABF8 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r6, r5, #0 + bl Menu_ProcessInputNoWrap + lsls r0, r0, #0x18 + asrs r4, r0, #0x18 + movs r0, #2 + rsbs r0, r0, #0 + cmp r4, r0 + beq _080EAC3A + adds r0, #1 + cmp r4, r0 + bne _080EAC24 + movs r0, #5 + bl PlaySE + adds r0, r5, #0 + bl ReturnToMainRegistryMenu + b _080EAC3A +_080EAC24: + movs r0, #5 + bl PlaySE + ldr r0, _080EAC40 + lsls r1, r4, #3 + adds r0, #4 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r6, #0 + bl _call_via_r1 +_080EAC3A: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080EAC40: .4byte 0x08568AF4 + thumb_func_end HandleRegistryMenuActionsInput + + thumb_func_start ShowRegistryMenuDeleteConfirmation +ShowRegistryMenuDeleteConfirmation: @ 0x080EAC44 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + ldr r0, _080EACA0 + adds r4, r4, r0 + ldrb r0, [r4, #0xc] + movs r1, #0 + bl DrawStdWindowFrame + ldrb r0, [r4, #0xe] + movs r1, #0 + bl DrawStdWindowFrame + ldrb r0, [r4, #0xc] + bl ClearWindowTilemap + ldrb r0, [r4, #0xe] + bl ClearWindowTilemap + ldrb r0, [r4, #0xe] + bl RemoveWindow + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + ldr r0, _080EACA4 + ldrb r1, [r4, #8] + bl GetSecretBaseMapName + ldr r4, _080EACA8 + ldr r1, _080EACAC + adds r0, r4, #0 + bl StringExpandPlaceholders + ldr r2, _080EACB0 + adds r0, r5, #0 + adds r1, r4, #0 + bl DisplayItemMessageOnField + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080EACA0: .4byte 0x03005B68 +_080EACA4: .4byte 0x02021C40 +_080EACA8: .4byte 0x02021C7C +_080EACAC: .4byte 0x085CA658 +_080EACB0: .4byte 0x080EACB5 + thumb_func_end ShowRegistryMenuDeleteConfirmation + + thumb_func_start ShowRegistryMenuDeleteYesNo +ShowRegistryMenuDeleteYesNo: @ 0x080EACB4 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl DisplayYesNoMenuDefaultYes + ldr r1, _080EACD0 + adds r0, r4, #0 + bl DoYesNoFuncWithChoice + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EACD0: .4byte 0x08568B04 + thumb_func_end ShowRegistryMenuDeleteYesNo + + thumb_func_start DeleteRegistry_Yes_Callback +DeleteRegistry_Yes_Callback: @ 0x080EACD4 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r4, #2 + adds r5, r5, r4 + lsls r5, r5, #3 + ldr r0, _080EAD58 + mov r8, r0 + adds r6, r5, r0 + movs r0, #0 + movs r1, #0 + bl DrawDialogueFrame + ldrb r0, [r6, #0xa] + adds r1, r6, #4 + mov sb, r1 + adds r1, r6, #2 + mov sl, r1 + mov r1, sb + mov r2, sl + bl DestroyListMenuTask + ldr r0, _080EAD5C + ldr r2, [r0] + movs r0, #8 + ldrsh r1, [r6, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #5 + adds r2, r2, r0 + ldr r1, _080EAD60 + adds r2, r2, r1 + ldrb r1, [r2] + movs r0, #0x3f + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl BuildRegistryMenuItems + ldrb r2, [r6, #6] + ldrb r3, [r6] + mov r0, sb + mov r1, sl + bl sub_08122268 + adds r0, r4, #0 + bl FinalizeRegistryMenu + movs r0, #8 + rsbs r0, r0, #0 + add r8, r0 + add r5, r8 + ldr r0, _080EAD64 + str r0, [r5] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080EAD58: .4byte 0x03005B68 +_080EAD5C: .4byte 0x03005AEC +_080EAD60: .4byte 0x00001A9D +_080EAD64: .4byte 0x080EAAF1 + thumb_func_end DeleteRegistry_Yes_Callback + + thumb_func_start sub_080EAD68 +sub_080EAD68: @ 0x080EAD68 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080EAD7C + ldr r2, _080EAD80 + bl DisplayItemMessageOnField + pop {r0} + bx r0 + .align 2, 0 +_080EAD7C: .4byte 0x085CA676 +_080EAD80: .4byte 0x080EACD5 + thumb_func_end sub_080EAD68 + + thumb_func_start DeleteRegistry_No +DeleteRegistry_No: @ 0x080EAD84 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + ldr r0, _080EADCC + mov r8, r0 + adds r6, r4, r0 + movs r0, #0 + movs r1, #0 + bl DrawDialogueFrame + ldrb r0, [r6, #0xa] + adds r1, r6, #4 + adds r6, #2 + adds r2, r6, #0 + bl DestroyListMenuTask + adds r0, r5, #0 + bl FinalizeRegistryMenu + movs r0, #8 + rsbs r0, r0, #0 + add r8, r0 + add r4, r8 + ldr r0, _080EADD0 + str r0, [r4] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080EADCC: .4byte 0x03005B68 +_080EADD0: .4byte 0x080EAAF1 + thumb_func_end DeleteRegistry_No + + thumb_func_start ReturnToMainRegistryMenu +ReturnToMainRegistryMenu: @ 0x080EADD4 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r6, _080EAE10 + adds r5, r4, r6 + bl AddRegistryMenuScrollArrows + ldrb r0, [r5, #0xe] + movs r1, #0 + bl DrawStdWindowFrame + ldrb r0, [r5, #0xe] + bl ClearWindowTilemap + ldrb r0, [r5, #0xe] + bl RemoveWindow + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + subs r6, #8 + adds r4, r4, r6 + ldr r0, _080EAE14 + str r0, [r4] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080EAE10: .4byte 0x03005B68 +_080EAE14: .4byte 0x080EAAF1 + thumb_func_end ReturnToMainRegistryMenu + + thumb_func_start GoToSecretBasePCMainMenu +GoToSecretBasePCMainMenu: @ 0x080EAE18 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080EAE34 + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080EAE3C + ldr r0, _080EAE38 + bl ScriptContext1_SetupScript + b _080EAE42 + .align 2, 0 +_080EAE34: .4byte 0x00004054 +_080EAE38: .4byte 0x0821D3D7 +_080EAE3C: + ldr r0, _080EAE50 + bl ScriptContext1_SetupScript +_080EAE42: + adds r0, r4, #0 + bl DestroyTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EAE50: .4byte 0x0821D4D8 + thumb_func_end GoToSecretBasePCMainMenu + + thumb_func_start GetSecretBaseOwnerType +GetSecretBaseOwnerType: @ 0x080EAE54 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080EAE8C + ldr r4, [r1] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #5 + adds r4, r4, r1 + ldr r1, _080EAE90 + adds r0, r4, r1 + ldrb r0, [r0] + movs r1, #5 + bl __umodsi3 + ldr r1, _080EAE94 + adds r4, r4, r1 + ldrb r2, [r4] + lsls r2, r2, #0x1b + lsrs r2, r2, #0x1f + lsls r1, r2, #2 + adds r1, r1, r2 + adds r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080EAE8C: .4byte 0x03005AEC +_080EAE90: .4byte 0x00001AA5 +_080EAE94: .4byte 0x00001A9D + thumb_func_end GetSecretBaseOwnerType + + thumb_func_start GetSecretBaseTrainerLoseText +GetSecretBaseTrainerLoseText: @ 0x080EAE98 + push {lr} + ldr r0, _080EAEB8 + bl VarGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetSecretBaseOwnerType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + cmp r0, #0 + bne _080EAEC0 + ldr r0, _080EAEBC + b _080EAF22 + .align 2, 0 +_080EAEB8: .4byte 0x00004054 +_080EAEBC: .4byte 0x0824516F +_080EAEC0: + cmp r0, #1 + bne _080EAECC + ldr r0, _080EAEC8 + b _080EAF22 + .align 2, 0 +_080EAEC8: .4byte 0x08245374 +_080EAECC: + cmp r0, #2 + bne _080EAED8 + ldr r0, _080EAED4 + b _080EAF22 + .align 2, 0 +_080EAED4: .4byte 0x08245550 +_080EAED8: + cmp r0, #3 + bne _080EAEE4 + ldr r0, _080EAEE0 + b _080EAF22 + .align 2, 0 +_080EAEE0: .4byte 0x0824573E +_080EAEE4: + cmp r0, #4 + bne _080EAEF0 + ldr r0, _080EAEEC + b _080EAF22 + .align 2, 0 +_080EAEEC: .4byte 0x082458F4 +_080EAEF0: + cmp r0, #5 + bne _080EAEFC + ldr r0, _080EAEF8 + b _080EAF22 + .align 2, 0 +_080EAEF8: .4byte 0x0824526D +_080EAEFC: + cmp r0, #6 + bne _080EAF08 + ldr r0, _080EAF04 + b _080EAF22 + .align 2, 0 +_080EAF04: .4byte 0x08245455 +_080EAF08: + cmp r0, #7 + bne _080EAF14 + ldr r0, _080EAF10 + b _080EAF22 + .align 2, 0 +_080EAF10: .4byte 0x0824565C +_080EAF14: + cmp r1, #8 + beq _080EAF20 + ldr r0, _080EAF1C + b _080EAF22 + .align 2, 0 +_080EAF1C: .4byte 0x08245A06 +_080EAF20: + ldr r0, _080EAF28 +_080EAF22: + pop {r1} + bx r1 + .align 2, 0 +_080EAF28: .4byte 0x08245819 + thumb_func_end GetSecretBaseTrainerLoseText + + thumb_func_start PrepSecretBaseBattleFlags +PrepSecretBaseBattleFlags: @ 0x080EAF2C + push {lr} + movs r0, #1 + bl sub_0813BB14 + ldr r1, _080EAF48 + movs r2, #0x80 + lsls r2, r2, #3 + adds r0, r2, #0 + strh r0, [r1] + ldr r1, _080EAF4C + ldr r0, _080EAF50 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080EAF48: .4byte 0x0203886A +_080EAF4C: .4byte 0x02022C90 +_080EAF50: .4byte 0x08000008 + thumb_func_end PrepSecretBaseBattleFlags + + thumb_func_start sub_080EAF54 +sub_080EAF54: @ 0x080EAF54 + push {lr} + ldr r0, _080EAF8C + bl VarGet + ldr r1, _080EAF90 + ldr r3, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #5 + adds r3, r3, r1 + ldr r0, _080EAF94 + ldrb r0, [r0] + ldr r1, _080EAF98 + adds r3, r3, r1 + movs r1, #1 + ands r1, r0 + lsls r1, r1, #5 + ldrb r2, [r3] + movs r0, #0x21 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + pop {r0} + bx r0 + .align 2, 0 +_080EAF8C: .4byte 0x00004054 +_080EAF90: .4byte 0x03005AEC +_080EAF94: .4byte 0x02037290 +_080EAF98: .4byte 0x00001A9D + thumb_func_end sub_080EAF54 + + thumb_func_start GetSecretBaseOwnerInteractionState +GetSecretBaseOwnerInteractionState: @ 0x080EAF9C + push {r4, r5, r6, r7, lr} + ldr r0, _080EB014 + bl VarGet + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, _080EB018 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080EAFE2 + movs r3, #0 + ldr r7, _080EB01C + ldr r4, _080EB020 + movs r6, #0x21 + rsbs r6, r6, #0 +_080EAFBE: + ldr r1, [r7] + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #5 + adds r1, r1, r0 + adds r1, r1, r4 + ldrb r2, [r1] + adds r0, r6, #0 + ands r0, r2 + strb r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0x13 + bls _080EAFBE + ldr r0, _080EB018 + bl FlagSet +_080EAFE2: + ldr r4, _080EB024 + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + bl GetSecretBaseOwnerType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + ldr r2, _080EB028 + ldr r0, _080EB01C + ldr r1, [r0] + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #5 + adds r1, r1, r0 + ldr r0, _080EB020 + adds r1, r1, r0 + ldrb r0, [r1] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1f + strh r0, [r2] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080EB014: .4byte 0x00004054 +_080EB018: .4byte 0x00000922 +_080EB01C: .4byte 0x03005AEC +_080EB020: .4byte 0x00001A9D +_080EB024: .4byte 0x02037280 +_080EB028: .4byte 0x02037290 + thumb_func_end GetSecretBaseOwnerInteractionState + + thumb_func_start SecretBasePerStepCallback +SecretBasePerStepCallback: @ 0x080EB02C + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080EB050 + adds r5, r1, r0 + movs r1, #2 + ldrsh r0, [r5, r1] + cmp r0, #1 + beq _080EB090 + cmp r0, #1 + bgt _080EB054 + cmp r0, #0 + beq _080EB05C + b _080EB468 + .align 2, 0 +_080EB050: .4byte 0x03005B68 +_080EB054: + cmp r0, #2 + bne _080EB05A + b _080EB458 +_080EB05A: + b _080EB468 +_080EB05C: + ldr r0, _080EB074 + bl VarGet + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + beq _080EB07C + ldr r1, _080EB078 + movs r0, #1 + strb r0, [r1] + b _080EB080 + .align 2, 0 +_080EB074: .4byte 0x00004054 +_080EB078: .4byte 0x02039CE9 +_080EB07C: + ldr r0, _080EB08C + strb r1, [r0] +_080EB080: + adds r0, r5, #4 + adds r1, r5, #6 + bl PlayerGetDestCoords + b _080EB464 + .align 2, 0 +_080EB08C: .4byte 0x02039CE9 +_080EB090: + mov r4, sp + adds r4, #2 + mov r0, sp + adds r1, r4, #0 + bl PlayerGetDestCoords + mov r0, sp + ldrh r2, [r0] + movs r3, #0 + ldrsh r1, [r0, r3] + movs r3, #4 + ldrsh r0, [r5, r3] + adds r6, r4, #0 + cmp r1, r0 + bne _080EB0BC + movs r0, #0 + ldrsh r1, [r6, r0] + movs r3, #6 + ldrsh r0, [r5, r3] + cmp r1, r0 + bne _080EB0BC + b _080EB468 +_080EB0BC: + strh r2, [r5, #4] + ldrh r0, [r6] + strh r0, [r5, #6] + ldr r4, _080EB124 + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + adds r1, #1 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl VarSet + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0 + ldrsh r1, [r6, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + mov r0, sp + movs r3, #0 + ldrsh r0, [r0, r3] + movs r2, #0 + ldrsh r1, [r6, r2] + bl MapGridGetMetatileIdAt + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r0, #0x8d + lsls r0, r0, #2 + cmp r4, r0 + beq _080EB10A + adds r0, #8 + cmp r4, r0 + bne _080EB130 +_080EB10A: + ldr r0, _080EB128 + ldrb r0, [r0] + cmp r0, #1 + beq _080EB114 + b _080EB468 +_080EB114: + ldr r4, _080EB12C + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r0, #0x20 + b _080EB442 + .align 2, 0 +_080EB124: .4byte 0x000040EC +_080EB128: .4byte 0x02039CE9 +_080EB12C: .4byte 0x000040EF +_080EB130: + ldr r3, _080EB17C + adds r0, r4, r3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #2 + bls _080EB162 + movs r0, #0xb0 + lsls r0, r0, #2 + cmp r4, r0 + beq _080EB162 + adds r0, #1 + cmp r4, r0 + beq _080EB162 + adds r0, #1 + cmp r4, r0 + beq _080EB162 + adds r0, #6 + cmp r4, r0 + beq _080EB162 + adds r0, #1 + cmp r4, r0 + beq _080EB162 + adds r0, #1 + cmp r4, r0 + bne _080EB188 +_080EB162: + ldr r0, _080EB180 + ldrb r0, [r0] + cmp r0, #1 + beq _080EB16C + b _080EB468 +_080EB16C: + ldr r4, _080EB184 + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r0, #1 + b _080EB442 + .align 2, 0 +_080EB17C: .4byte 0xFFFFFD48 +_080EB180: .4byte 0x02039CE9 +_080EB184: .4byte 0x000040EE +_080EB188: + ldr r0, _080EB1B8 + cmp r4, r0 + beq _080EB1A0 + adds r0, #8 + cmp r4, r0 + beq _080EB1A0 + adds r0, #0x10 + cmp r4, r0 + beq _080EB1A0 + adds r0, #8 + cmp r4, r0 + bne _080EB1C4 +_080EB1A0: + ldr r0, _080EB1BC + ldrb r0, [r0] + cmp r0, #1 + beq _080EB1AA + b _080EB468 +_080EB1AA: + ldr r4, _080EB1C0 + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r0, #4 + b _080EB442 + .align 2, 0 +_080EB1B8: .4byte 0x00000239 +_080EB1BC: .4byte 0x02039CE9 +_080EB1C0: .4byte 0x000040EE +_080EB1C4: + cmp r5, #0x34 + bne _080EB1CE + ldr r0, _080EB204 + cmp r4, r0 + beq _080EB1E6 +_080EB1CE: + cmp r5, #0x35 + bne _080EB214 + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0 + ldrsh r1, [r6, r2] + bl MapGridGetMetatileIdAt + ldr r1, _080EB208 + cmp r0, r1 + bne _080EB214 +_080EB1E6: + ldr r0, _080EB20C + ldrb r0, [r0] + cmp r0, #1 + beq _080EB1F0 + b _080EB468 +_080EB1F0: + ldr r4, _080EB210 + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + b _080EB442 + .align 2, 0 +_080EB204: .4byte 0x0000026D +_080EB208: .4byte 0x0000026A +_080EB20C: .4byte 0x02039CE9 +_080EB210: .4byte 0x000040EF +_080EB214: + cmp r5, #0xc1 + bne _080EB260 + ldr r0, _080EB254 + cmp r4, r0 + bne _080EB260 + ldr r0, _080EB258 + ldrb r0, [r0] + cmp r0, #1 + beq _080EB228 + b _080EB468 +_080EB228: + ldr r4, _080EB25C + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r2, #0x80 + lsls r2, r2, #5 + adds r0, r2, #0 + eors r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl VarSet + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r3, #0x80 + lsls r3, r3, #6 + adds r0, r3, #0 + b _080EB442 + .align 2, 0 +_080EB254: .4byte 0x0000023D +_080EB258: .4byte 0x02039CE9 +_080EB25C: .4byte 0x000040EF +_080EB260: + cmp r5, #0x47 + bne _080EB2B0 + ldr r0, _080EB2A4 + cmp r4, r0 + bne _080EB2B0 + ldr r0, _080EB2A8 + ldrb r0, [r0] + cmp r0, #1 + beq _080EB274 + b _080EB468 +_080EB274: + ldr r4, _080EB2AC + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r2, #0x80 + lsls r2, r2, #5 + adds r0, r2, #0 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl VarSet + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r3, #0x80 + lsls r3, r3, #6 + adds r0, r3, #0 + eors r1, r0 + b _080EB444 + .align 2, 0 +_080EB2A4: .4byte 0x0000023E +_080EB2A8: .4byte 0x02039CE9 +_080EB2AC: .4byte 0x000040EF +_080EB2B0: + adds r0, r5, #0 + bl MetatileBehavior_IsSecretBaseGlitterMat + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080EB2E0 + ldr r0, _080EB2D8 + ldrb r0, [r0] + cmp r0, #1 + beq _080EB2C8 + b _080EB468 +_080EB2C8: + ldr r4, _080EB2DC + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r0, #0x80 + b _080EB442 + .align 2, 0 +_080EB2D8: .4byte 0x02039CE9 +_080EB2DC: .4byte 0x000040EF +_080EB2E0: + adds r0, r5, #0 + bl MetatileBehavior_IsSecretBaseBalloon + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080EB374 + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0 + ldrsh r1, [r6, r2] + bl MapGridGetMetatileIdAt + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov r1, sp + movs r3, #0 + ldrsh r1, [r1, r3] + movs r3, #0 + ldrsh r2, [r6, r3] + bl PopSecretBaseBalloon + ldr r0, _080EB340 + ldrb r0, [r0] + cmp r0, #1 + beq _080EB318 + b _080EB468 +_080EB318: + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0 + ldrsh r1, [r6, r2] + bl MapGridGetMetatileIdAt + adds r1, r0, #0 + movs r0, #0xce + lsls r0, r0, #2 + cmp r1, r0 + beq _080EB354 + cmp r1, r0 + bgt _080EB344 + movs r0, #0x8a + lsls r0, r0, #2 + cmp r1, r0 + beq _080EB35C + b _080EB468 + .align 2, 0 +_080EB340: .4byte 0x02039CE9 +_080EB344: + movs r0, #0xcf + lsls r0, r0, #2 + cmp r1, r0 + beq _080EB354 + adds r0, #4 + cmp r1, r0 + beq _080EB354 + b _080EB468 +_080EB354: + ldr r4, _080EB358 + b _080EB438 + .align 2, 0 +_080EB358: .4byte 0x000040EE +_080EB35C: + ldr r4, _080EB370 + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r3, #0x80 + lsls r3, r3, #1 + adds r0, r3, #0 + b _080EB442 + .align 2, 0 +_080EB370: .4byte 0x000040EE +_080EB374: + adds r0, r5, #0 + bl MetatileBehavior_IsSecretBaseBreakableDoor + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080EB3C0 + ldr r0, _080EB3B8 + ldrb r0, [r0] + cmp r0, #1 + bne _080EB3A6 + ldr r4, _080EB3BC + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r2, #0x80 + lsls r2, r2, #3 + adds r0, r2, #0 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl VarSet +_080EB3A6: + mov r0, sp + movs r3, #0 + ldrsh r0, [r0, r3] + movs r2, #0 + ldrsh r1, [r6, r2] + bl ShatterSecretBaseBreakableDoor + b _080EB468 + .align 2, 0 +_080EB3B8: .4byte 0x02039CE9 +_080EB3BC: .4byte 0x000040EF +_080EB3C0: + adds r0, r5, #0 + bl MetatileBehavior_IsSecretBaseSoundMat + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080EB3F0 + ldr r0, _080EB3E8 + ldrb r0, [r0] + cmp r0, #1 + bne _080EB468 + ldr r4, _080EB3EC + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r3, #0x80 + lsls r3, r3, #8 + adds r0, r3, #0 + b _080EB442 + .align 2, 0 +_080EB3E8: .4byte 0x02039CE9 +_080EB3EC: .4byte 0x000040EE +_080EB3F0: + adds r0, r5, #0 + bl MetatileBehavior_IsSecretBaseJumpMat + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080EB420 + ldr r0, _080EB418 + ldrb r0, [r0] + cmp r0, #1 + bne _080EB468 + ldr r4, _080EB41C + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r2, #0x80 + lsls r2, r2, #7 + adds r0, r2, #0 + b _080EB442 + .align 2, 0 +_080EB418: .4byte 0x02039CE9 +_080EB41C: .4byte 0x000040EF +_080EB420: + adds r0, r5, #0 + bl MetatileBehavior_IsSecretBaseSpinMat + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080EB468 + ldr r0, _080EB450 + ldrb r0, [r0] + cmp r0, #1 + bne _080EB468 + ldr r4, _080EB454 +_080EB438: + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r0, #2 +_080EB442: + orrs r1, r0 +_080EB444: + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl VarSet + b _080EB468 + .align 2, 0 +_080EB450: .4byte 0x02039CE9 +_080EB454: .4byte 0x000040EF +_080EB458: + ldrb r0, [r5, #8] + bl FieldEffectActiveListContains + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080EB468 +_080EB464: + movs r0, #1 + strh r0, [r5, #2] +_080EB468: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end SecretBasePerStepCallback + + thumb_func_start sub_080EB470 +sub_080EB470: @ 0x080EB470 + push {r4, r5, r6, lr} + adds r3, r0, #0 + adds r4, r2, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r6, _080EB4BC + ldr r0, [r6] + lsls r2, r3, #2 + adds r2, r2, r3 + lsls r5, r2, #5 + adds r0, r0, r5 + ldr r2, _080EB4C0 + adds r0, r0, r2 + movs r2, #0xa0 + bl memcpy + ldr r2, [r6] + adds r2, r2, r5 + ldr r0, _080EB4C4 + adds r2, r2, r0 + ldrb r1, [r2] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2] + subs r4, #1 + cmp r4, #1 + bhi _080EB4B6 + ldr r0, [r6] + adds r0, r0, r5 + ldr r1, _080EB4C8 + adds r0, r0, r1 + movs r1, #1 + strb r1, [r0] +_080EB4B6: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080EB4BC: .4byte 0x03005AEC +_080EB4C0: .4byte 0x00001A9C +_080EB4C4: .4byte 0x00001A9D +_080EB4C8: .4byte 0x00001AA9 + thumb_func_end sub_080EB470 + + thumb_func_start SecretBasesHaveSameTrainerId +SecretBasesHaveSameTrainerId: @ 0x080EB4CC + push {r4, lr} + movs r2, #0 + adds r4, r0, #0 + adds r4, #9 + adds r3, r1, #0 + adds r3, #9 +_080EB4D8: + adds r0, r4, r2 + adds r1, r3, r2 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _080EB4E8 + movs r0, #0 + b _080EB4F4 +_080EB4E8: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #3 + bls _080EB4D8 + movs r0, #1 +_080EB4F4: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SecretBasesHaveSameTrainerId + + thumb_func_start SecretBasesHaveSameTrainerName +SecretBasesHaveSameTrainerName: @ 0x080EB4FC + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + movs r3, #0 + ldrb r0, [r6, #2] + cmp r0, #0xff + bne _080EB510 + ldrb r0, [r5, #2] + cmp r0, #0xff + beq _080EB53E +_080EB510: + adds r2, r6, #2 + adds r0, r2, r3 + adds r4, r5, #2 + adds r1, r4, r3 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _080EB524 + movs r0, #0 + b _080EB540 +_080EB524: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #6 + bhi _080EB53E + adds r0, r2, r3 + ldrb r0, [r0] + cmp r0, #0xff + bne _080EB510 + adds r0, r4, r3 + ldrb r0, [r0] + cmp r0, #0xff + bne _080EB510 +_080EB53E: + movs r0, #1 +_080EB540: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SecretBasesHaveSameTrainerName + + thumb_func_start SecretBasesBelongToSamePlayer +SecretBasesBelongToSamePlayer: @ 0x080EB548 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r2, [r4, #1] + movs r0, #0x10 + adds r1, r0, #0 + ands r1, r2 + ldrb r2, [r5, #1] + ands r0, r2 + cmp r1, r0 + bne _080EB57E + adds r0, r4, #0 + adds r1, r5, #0 + bl SecretBasesHaveSameTrainerId + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080EB57E + adds r0, r4, #0 + adds r1, r5, #0 + bl SecretBasesHaveSameTrainerName + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080EB57E + movs r0, #1 + b _080EB580 +_080EB57E: + movs r0, #0 +_080EB580: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SecretBasesBelongToSamePlayer + + thumb_func_start GetSecretBaseIndexFromId +GetSecretBaseIndexFromId: @ 0x080EB588 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + movs r1, #0 + ldr r0, _080EB5B0 + ldr r2, [r0] + ldr r4, _080EB5B4 +_080EB596: + lsls r0, r1, #0x10 + asrs r1, r0, #0x10 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #5 + adds r0, r2, r0 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, r3 + bne _080EB5B8 + adds r0, r1, #0 + b _080EB5C8 + .align 2, 0 +_080EB5B0: .4byte 0x03005AEC +_080EB5B4: .4byte 0x00001A9C +_080EB5B8: + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x13 + ble _080EB596 + movs r0, #1 + rsbs r0, r0, #0 +_080EB5C8: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetSecretBaseIndexFromId + + thumb_func_start FindAvailableSecretBaseIndex +FindAvailableSecretBaseIndex: @ 0x080EB5D0 + push {r4, lr} + movs r2, #1 + ldr r0, _080EB5F4 + ldr r3, [r0] + ldr r4, _080EB5F8 +_080EB5DA: + lsls r0, r2, #0x10 + asrs r1, r0, #0x10 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #5 + adds r0, r3, r0 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0 + bne _080EB5FC + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + b _080EB60A + .align 2, 0 +_080EB5F4: .4byte 0x03005AEC +_080EB5F8: .4byte 0x00001A9C +_080EB5FC: + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x13 + ble _080EB5DA + movs r0, #0 +_080EB60A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end FindAvailableSecretBaseIndex + + thumb_func_start sub_080EB610 +sub_080EB610: @ 0x080EB610 + push {r4, lr} + movs r3, #1 + ldr r0, _080EB63C + ldr r4, [r0] +_080EB618: + lsls r2, r3, #0x10 + asrs r1, r2, #0x10 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #5 + adds r0, r4, r0 + ldr r1, _080EB640 + adds r0, r0, r1 + ldrb r1, [r0] + lsrs r0, r1, #6 + cmp r0, #0 + bne _080EB644 + lsls r0, r1, #0x1c + cmp r0, #0 + bne _080EB644 + lsls r0, r3, #0x18 + lsrs r0, r0, #0x18 + b _080EB654 + .align 2, 0 +_080EB63C: .4byte 0x03005AEC +_080EB640: .4byte 0x00001A9D +_080EB644: + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r2, r1 + lsrs r3, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x13 + ble _080EB618 + movs r0, #0 +_080EB654: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080EB610 + + thumb_func_start sub_080EB65C +sub_080EB65C: @ 0x080EB65C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + ldrb r0, [r5] + cmp r0, #0 + beq _080EB6DE + ldrb r0, [r5] + bl GetSecretBaseIndexFromId + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + asrs r2, r0, #0x10 + cmp r2, #0 + beq _080EB6DE + movs r0, #1 + rsbs r0, r0, #0 + cmp r2, r0 + beq _080EB6B8 + ldr r0, _080EB6B0 + ldr r1, [r0] + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #5 + adds r1, r1, r0 + ldr r0, _080EB6B4 + adds r1, r1, r0 + ldrb r1, [r1] + lsls r0, r1, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #1 + beq _080EB6DE + lsrs r0, r1, #6 + cmp r0, #2 + bne _080EB6AA + ldrb r1, [r5, #1] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _080EB6DE +_080EB6AA: + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + b _080EB6D0 + .align 2, 0 +_080EB6B0: .4byte 0x03005AEC +_080EB6B4: .4byte 0x00001A9D +_080EB6B8: + bl FindAvailableSecretBaseIndex + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _080EB6D0 + bl sub_080EB610 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + beq _080EB6DE +_080EB6D0: + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_080EB470 + adds r0, r4, #0 + b _080EB6E0 +_080EB6DE: + movs r0, #0 +_080EB6E0: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080EB65C + + thumb_func_start SortSecretBasesByRegistryStatus +SortSecretBasesByRegistryStatus: @ 0x080EB6E8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0xa0 + ldr r0, _080EB790 + ldr r0, [r0] + ldr r1, _080EB794 + adds r7, r0, r1 + movs r2, #1 +_080EB6FC: + adds r1, r2, #1 + lsls r0, r1, #0x18 + lsrs r5, r0, #0x18 + mov sb, r1 + cmp r5, #0x13 + bhi _080EB778 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #5 + adds r6, r0, r7 + movs r0, #0xc0 + mov r8, r0 +_080EB714: + ldrb r0, [r6, #1] + mov r3, r8 + ands r3, r0 + cmp r3, #0 + bne _080EB732 + lsls r2, r5, #2 + adds r0, r2, r5 + lsls r0, r0, #5 + adds r0, r0, r7 + ldrb r1, [r0, #1] + mov r0, r8 + ands r0, r1 + adds r4, r2, #0 + cmp r0, #0x40 + beq _080EB74A +_080EB732: + cmp r3, #0x80 + bne _080EB76E + lsls r2, r5, #2 + adds r0, r2, r5 + lsls r0, r0, #5 + adds r0, r0, r7 + ldrb r1, [r0, #1] + mov r0, r8 + ands r0, r1 + adds r4, r2, #0 + cmp r0, #0x80 + beq _080EB76E +_080EB74A: + mov r0, sp + adds r1, r6, #0 + movs r2, #0xa0 + bl memcpy + adds r4, r4, r5 + lsls r4, r4, #5 + adds r4, r4, r7 + 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 +_080EB76E: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x13 + bls _080EB714 +_080EB778: + mov r1, sb + lsls r0, r1, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x12 + bls _080EB6FC + add sp, #0xa0 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080EB790: .4byte 0x03005AEC +_080EB794: .4byte 0x00001A9C + thumb_func_end SortSecretBasesByRegistryStatus + + thumb_func_start sub_080EB798 +sub_080EB798: @ 0x080EB798 + push {r4, r5, r6, lr} + adds r5, r0, #0 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + movs r4, #1 +_080EB7A2: + ldr r0, [r5] + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #5 + adds r2, r1, r0 + ldrb r0, [r2, #1] + lsrs r0, r0, #6 + cmp r0, r6 + bne _080EB7BC + ldr r1, [r5, #4] + adds r0, r2, #0 + bl sub_080EB65C +_080EB7BC: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x13 + bls _080EB7A2 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_080EB798 + + thumb_func_start SecretBaseBelongsToPlayer +SecretBaseBelongsToPlayer: @ 0x080EB7CC + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5] + cmp r0, #0 + beq _080EB7E8 + ldrb r0, [r5, #1] + lsls r0, r0, #0x1b + ldr r1, _080EB7EC + ldr r3, [r1] + lsrs r0, r0, #0x1f + adds r6, r1, #0 + ldrb r1, [r3, #8] + cmp r0, r1 + beq _080EB7F0 +_080EB7E8: + movs r0, #0 + b _080EB846 + .align 2, 0 +_080EB7EC: .4byte 0x03005AF0 +_080EB7F0: + movs r2, #0 + adds r4, r5, #0 + adds r4, #9 + adds r3, #0xa +_080EB7F8: + adds r0, r4, r2 + adds r1, r3, r2 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bne _080EB7E8 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #3 + bls _080EB7F8 + movs r2, #0 + ldrb r0, [r5, #2] + cmp r0, #0xff + bne _080EB81A + ldr r0, [r6] + b _080EB83E +_080EB81A: + adds r3, r5, #2 + adds r0, r3, r2 + ldr r4, [r6] + adds r1, r4, r2 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bne _080EB7E8 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #6 + bhi _080EB844 + adds r0, r3, r2 + ldrb r0, [r0] + cmp r0, #0xff + bne _080EB81A + adds r0, r4, r2 +_080EB83E: + ldrb r0, [r0] + cmp r0, #0xff + bne _080EB81A +_080EB844: + movs r0, #1 +_080EB846: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end SecretBaseBelongsToPlayer + + thumb_func_start DeleteFirstOldBaseFromPlayerInRecordMixingFriendsRecords +DeleteFirstOldBaseFromPlayerInRecordMixingFriendsRecords: @ 0x080EB84C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sl, r0 + mov sb, r1 + mov r8, r2 + movs r5, #0 + movs r6, #0 +_080EB860: + movs r0, #1 + ands r0, r5 + cmp r0, #0 + bne _080EB88A + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #5 + mov r1, sl + adds r4, r1, r0 + adds r0, r4, #0 + bl SecretBaseBelongsToPlayer + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080EB88A + adds r0, r4, #0 + bl ClearSecretBase + movs r0, #1 + orrs r5, r0 +_080EB88A: + movs r7, #2 + movs r0, #2 + ands r0, r5 + cmp r0, #0 + bne _080EB8B8 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #5 + mov r1, sb + adds r4, r1, r0 + adds r0, r4, #0 + bl SecretBaseBelongsToPlayer + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080EB8B8 + adds r0, r4, #0 + bl ClearSecretBase + orrs r5, r7 + lsls r0, r5, #0x18 + lsrs r5, r0, #0x18 +_080EB8B8: + movs r7, #4 + movs r0, #4 + ands r0, r5 + cmp r0, #0 + bne _080EB8E6 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #5 + mov r1, r8 + adds r4, r1, r0 + adds r0, r4, #0 + bl SecretBaseBelongsToPlayer + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080EB8E6 + adds r0, r4, #0 + bl ClearSecretBase + orrs r5, r7 + lsls r0, r5, #0x18 + lsrs r5, r0, #0x18 +_080EB8E6: + cmp r5, #7 + beq _080EB8F4 + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0x13 + bls _080EB860 +_080EB8F4: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end DeleteFirstOldBaseFromPlayerInRecordMixingFriendsRecords + + thumb_func_start sub_080EB904 +sub_080EB904: @ 0x080EB904 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + mov r8, r1 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + movs r5, #0 +_080EB914: + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #5 + mov r1, r8 + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, #0 + beq _080EB96E + adds r0, r6, #0 + adds r1, r4, #0 + bl SecretBasesBelongToSamePlayer + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080EB96E + cmp r7, #0 + bne _080EB940 + adds r0, r4, #0 + bl ClearSecretBase + b _080EB978 +_080EB940: + ldrh r0, [r6, #0xe] + ldrh r3, [r4, #0xe] + cmp r0, r3 + bls _080EB950 + adds r0, r4, #0 + bl ClearSecretBase + b _080EB978 +_080EB950: + ldrb r0, [r6, #1] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + ldrb r1, [r4, #1] + movs r3, #0x10 + rsbs r3, r3, #0 + adds r2, r3, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #1] + adds r0, r6, #0 + bl ClearSecretBase + movs r0, #1 + b _080EB97A +_080EB96E: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x13 + bls _080EB914 +_080EB978: + movs r0, #0 +_080EB97A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_080EB904 + + thumb_func_start sub_080EB984 +sub_080EB984: @ 0x080EB984 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov sb, r0 + adds r7, r1, #0 + mov r8, r2 + adds r6, r3, #0 + movs r5, #1 +_080EB996: + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #5 + mov r1, sb + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, #0 + beq _080EB9E8 + ldrb r1, [r4, #1] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0x40 + bne _080EB9BE + movs r2, #0x10 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #1] +_080EB9BE: + adds r0, r4, #0 + adds r1, r7, #0 + adds r2, r5, #0 + bl sub_080EB904 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080EB9E8 + adds r0, r4, #0 + mov r1, r8 + adds r2, r5, #0 + bl sub_080EB904 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080EB9E8 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r5, #0 + bl sub_080EB904 +_080EB9E8: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x13 + bls _080EB996 + movs r5, #0 +_080EB9F4: + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #5 + adds r4, r0, r7 + ldrb r0, [r4] + cmp r0, #0 + beq _080EBA28 + ldrb r0, [r4, #1] + movs r2, #0x21 + rsbs r2, r2, #0 + adds r1, r2, #0 + ands r0, r1 + strb r0, [r4, #1] + adds r0, r4, #0 + mov r1, r8 + adds r2, r5, #0 + bl sub_080EB904 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080EBA28 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r5, #0 + bl sub_080EB904 +_080EBA28: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x13 + bls _080EB9F4 + movs r5, #0 + movs r0, #0x21 + rsbs r0, r0, #0 + adds r7, r0, #0 +_080EBA3A: + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r4, r0, #5 + mov r2, r8 + adds r1, r4, r2 + ldrb r0, [r1] + cmp r0, #0 + beq _080EBA5A + ldrb r0, [r1, #1] + ands r0, r7 + strb r0, [r1, #1] + adds r0, r1, #0 + adds r1, r6, #0 + adds r2, r5, #0 + bl sub_080EB904 +_080EBA5A: + adds r1, r4, r6 + ldrb r0, [r1] + cmp r0, #0 + beq _080EBA68 + ldrb r0, [r1, #1] + ands r0, r7 + strb r0, [r1, #1] +_080EBA68: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x13 + bls _080EBA3A + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080EB984 + + thumb_func_start sub_080EBA80 +sub_080EBA80: @ 0x080EBA80 + push {r4, lr} + adds r4, r0, #0 + adds r2, r1, #0 + ldrb r1, [r4, #1] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _080EBA9E + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_080EB65C + adds r0, r4, #0 + bl ClearSecretBase +_080EBA9E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_080EBA80 + + thumb_func_start sub_080EBAA4 +sub_080EBAA4: @ 0x080EBAA4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r6, #0 +_080EBAAA: + lsls r4, r6, #2 + adds r4, r4, r6 + lsls r4, r4, #5 + ldr r0, [r5] + adds r0, r0, r4 + ldr r1, [r5, #4] + bl sub_080EBA80 + ldr r0, [r5, #8] + adds r0, r0, r4 + ldr r1, [r5, #0xc] + bl sub_080EBA80 + ldr r0, [r5, #0x10] + adds r0, r0, r4 + ldr r1, [r5, #0x14] + bl sub_080EBA80 + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #0x13 + bls _080EBAAA + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080EBAA4 + + thumb_func_start sub_080EBAE0 +sub_080EBAE0: @ 0x080EBAE0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r0, [r4] + ldr r1, [r4, #8] + ldr r2, [r4, #0x10] + bl DeleteFirstOldBaseFromPlayerInRecordMixingFriendsRecords + ldr r0, _080EBB5C + ldr r0, [r0] + ldr r1, _080EBB60 + adds r0, r0, r1 + ldr r1, [r4] + ldr r2, [r4, #8] + ldr r3, [r4, #0x10] + bl sub_080EB984 + adds r0, r4, #0 + bl sub_080EBAA4 + ldr r0, [r4] + ldr r1, [r4, #4] + bl sub_080EB65C + ldr r0, [r4, #8] + ldr r1, [r4, #0xc] + bl sub_080EB65C + ldr r0, [r4, #0x10] + ldr r1, [r4, #0x14] + bl sub_080EB65C + adds r0, r4, #0 + movs r1, #1 + bl sub_080EB798 + adds r6, r4, #0 + adds r6, #8 + adds r0, r6, #0 + movs r1, #1 + bl sub_080EB798 + adds r5, r4, #0 + adds r5, #0x10 + adds r0, r5, #0 + movs r1, #1 + bl sub_080EB798 + adds r0, r4, #0 + movs r1, #0 + bl sub_080EB798 + adds r0, r6, #0 + movs r1, #0 + bl sub_080EB798 + adds r0, r5, #0 + movs r1, #0 + bl sub_080EB798 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080EBB5C: .4byte 0x03005AEC +_080EBB60: .4byte 0x00001A9C + thumb_func_end sub_080EBAE0 + + thumb_func_start ReceiveSecretBasesData +ReceiveSecretBasesData: @ 0x080EBB64 + push {r4, r5, r6, r7, lr} + sub sp, #0x18 + adds r6, r0, #0 + adds r5, r1, #0 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + movs r0, #0x60 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080EBB7E + b _080EBD0C +_080EBB7E: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + beq _080EBB90 + cmp r0, #3 + beq _080EBBAC + b _080EBBBA +_080EBB90: + lsls r4, r5, #1 + adds r0, r6, r4 + movs r1, #0 + adds r2, r5, #0 + bl memset + adds r4, r4, r5 + adds r4, r6, r4 + adds r0, r4, #0 + movs r1, #0 + adds r2, r5, #0 + bl memset + b _080EBBBA +_080EBBAC: + lsls r0, r5, #1 + adds r0, r0, r5 + adds r0, r6, r0 + movs r1, #0 + adds r2, r5, #0 + bl memset +_080EBBBA: + cmp r7, #1 + beq _080EBC00 + cmp r7, #1 + bgt _080EBBC8 + cmp r7, #0 + beq _080EBBD2 + b _080EBC76 +_080EBBC8: + cmp r7, #2 + beq _080EBC30 + cmp r7, #3 + beq _080EBC58 + b _080EBC76 +_080EBBD2: + adds r0, r6, r5 + str r0, [sp] + ldr r3, _080EBBFC + movs r4, #0xff + ldrb r0, [r3, #0x1c] + str r0, [sp, #4] + lsls r1, r5, #1 + adds r0, r6, r1 + str r0, [sp, #8] + ldrh r2, [r3, #0x38] + adds r0, r4, #0 + ands r0, r2 + str r0, [sp, #0xc] + adds r1, r1, r5 + adds r1, r6, r1 + str r1, [sp, #0x10] + adds r3, #0x54 + ldrh r0, [r3] + ands r4, r0 + str r4, [sp, #0x14] + b _080EBC76 + .align 2, 0 +_080EBBFC: .4byte 0x020226A0 +_080EBC00: + lsls r2, r5, #1 + adds r0, r6, r2 + str r0, [sp] + ldr r4, _080EBC2C + ldrh r3, [r4, #0x38] + movs r1, #0xff + adds r0, r1, #0 + ands r0, r3 + str r0, [sp, #4] + adds r2, r2, r5 + adds r2, r6, r2 + str r2, [sp, #8] + adds r0, r4, #0 + adds r0, #0x54 + ldrh r2, [r0] + adds r0, r1, #0 + ands r0, r2 + str r0, [sp, #0xc] + str r6, [sp, #0x10] + ldrh r0, [r4] + b _080EBC72 + .align 2, 0 +_080EBC2C: .4byte 0x020226A0 +_080EBC30: + lsls r0, r5, #1 + adds r0, r0, r5 + adds r0, r6, r0 + str r0, [sp] + ldr r1, _080EBC54 + adds r0, r1, #0 + adds r0, #0x54 + ldrb r0, [r0] + str r0, [sp, #4] + str r6, [sp, #8] + ldrb r0, [r1] + str r0, [sp, #0xc] + adds r0, r6, r5 + str r0, [sp, #0x10] + ldrb r0, [r1, #0x1c] + str r0, [sp, #0x14] + b _080EBC76 + .align 2, 0 +_080EBC54: .4byte 0x020226A0 +_080EBC58: + str r6, [sp] + ldr r2, _080EBD14 + ldrb r0, [r2] + str r0, [sp, #4] + adds r0, r6, r5 + str r0, [sp, #8] + movs r1, #0xff + ldrb r0, [r2, #0x1c] + str r0, [sp, #0xc] + lsls r0, r5, #1 + adds r0, r6, r0 + str r0, [sp, #0x10] + ldrh r0, [r2, #0x38] +_080EBC72: + ands r1, r0 + str r1, [sp, #0x14] +_080EBC76: + mov r0, sp + bl sub_080EBAE0 + movs r3, #1 + ldr r6, _080EBD18 + movs r7, #0x10 + rsbs r7, r7, #0 +_080EBC84: + ldr r0, [r6] + lsls r1, r3, #2 + adds r1, r1, r3 + lsls r4, r1, #5 + adds r0, r0, r4 + ldr r5, _080EBD1C + adds r2, r0, r5 + ldrb r1, [r2] + lsls r0, r1, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #1 + bne _080EBCB4 + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2] + ldr r1, [r6] + adds r1, r1, r4 + adds r1, r1, r5 + ldrb r2, [r1] + adds r0, r7, #0 + ands r0, r2 + strb r0, [r1] +_080EBCB4: + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0x13 + bls _080EBC84 + bl SortSecretBasesByRegistryStatus + movs r3, #1 + ldr r7, _080EBD18 + adds r6, r7, #0 + adds r4, r5, #0 + movs r5, #0x3f +_080EBCCC: + ldr r0, [r6] + lsls r1, r3, #2 + adds r1, r1, r3 + lsls r1, r1, #5 + adds r0, r0, r1 + adds r2, r0, r4 + ldrb r1, [r2] + lsrs r0, r1, #6 + cmp r0, #2 + bne _080EBCE6 + adds r0, r5, #0 + ands r0, r1 + strb r0, [r2] +_080EBCE6: + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0x13 + bls _080EBCCC + ldr r1, [r7] + ldr r2, _080EBD20 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080EBD0C + ldr r0, _080EBD24 + adds r2, r1, r0 + ldrh r1, [r2] + ldr r0, _080EBD28 + cmp r1, r0 + beq _080EBD0C + adds r0, r1, #1 + strh r0, [r2] +_080EBD0C: + add sp, #0x18 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080EBD14: .4byte 0x020226A0 +_080EBD18: .4byte 0x03005AEC +_080EBD1C: .4byte 0x00001A9D +_080EBD20: .4byte 0x00001A9C +_080EBD24: .4byte 0x00001AAA +_080EBD28: .4byte 0x0000FFFF + thumb_func_end ReceiveSecretBasesData + + thumb_func_start ClearJapaneseSecretBases +ClearJapaneseSecretBases: @ 0x080EBD2C + push {r4, r5, lr} + movs r5, #0 + adds r4, r0, #0 +_080EBD32: + ldrb r0, [r4, #0xd] + cmp r0, #1 + beq _080EBD3E + adds r0, r4, #0 + bl ClearSecretBase +_080EBD3E: + adds r4, #0xa0 + adds r5, #1 + cmp r5, #0x13 + bls _080EBD32 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end ClearJapaneseSecretBases + + thumb_func_start sub_080EBD4C +sub_080EBD4C: @ 0x080EBD4C + push {lr} + ldr r0, _080EBD84 + movs r1, #0 + bl VarSet + ldr r0, _080EBD88 + movs r1, #0 + bl VarSet + ldr r0, _080EBD8C + movs r1, #0 + bl VarSet + ldr r0, _080EBD90 + movs r1, #0 + bl VarSet + ldr r0, _080EBD94 + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080EBD9C + ldr r0, _080EBD98 + movs r1, #1 + bl VarSet + b _080EBDA4 + .align 2, 0 +_080EBD84: .4byte 0x000040EC +_080EBD88: .4byte 0x000040ED +_080EBD8C: .4byte 0x000040EE +_080EBD90: .4byte 0x000040EF +_080EBD94: .4byte 0x00004054 +_080EBD98: .4byte 0x000040F0 +_080EBD9C: + ldr r0, _080EBDB0 + movs r1, #0 + bl VarSet +_080EBDA4: + ldr r1, _080EBDB4 + movs r0, #0 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080EBDB0: .4byte 0x000040F0 +_080EBDB4: .4byte 0x02039CE9 + thumb_func_end sub_080EBD4C + + thumb_func_start sub_080EBDB8 +sub_080EBDB8: @ 0x080EBDB8 + push {r4, r5, r6, lr} + ldr r5, _080EBE18 + adds r0, r5, #0 + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080EBE12 + ldr r6, _080EBE1C + ldrb r0, [r6] + cmp r0, #1 + bne _080EBE12 + bl CurMapIsSecretBase + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _080EBE12 + adds r0, r5, #0 + movs r1, #0 + bl VarSet + strb r4, [r6] + bl sub_080EF588 + ldr r0, _080EBE20 + movs r1, #0 + bl VarSet + ldr r0, _080EBE24 + movs r1, #0 + bl VarSet + ldr r0, _080EBE28 + movs r1, #0 + bl VarSet + ldr r0, _080EBE2C + movs r1, #0 + bl VarSet + adds r0, r5, #0 + movs r1, #0 + bl VarSet +_080EBE12: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080EBE18: .4byte 0x000040F0 +_080EBE1C: .4byte 0x02039CE9 +_080EBE20: .4byte 0x000040EC +_080EBE24: .4byte 0x000040ED +_080EBE28: .4byte 0x000040EE +_080EBE2C: .4byte 0x000040EF + thumb_func_end sub_080EBDB8 + + thumb_func_start sub_080EBE30 +sub_080EBE30: @ 0x080EBE30 + push {r4, lr} + ldr r0, _080EBE60 + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080EBE5A + ldr r4, _080EBE64 + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r2, #0x80 + lsls r2, r2, #4 + adds r0, r2, #0 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl VarSet +_080EBE5A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EBE60: .4byte 0x00004054 +_080EBE64: .4byte 0x000040EF + thumb_func_end sub_080EBE30 + + thumb_func_start sub_080EBE68 +sub_080EBE68: @ 0x080EBE68 + push {r4, lr} + ldr r0, _080EBE98 + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080EBE92 + ldr r4, _080EBE9C + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r2, #0x80 + lsls r2, r2, #3 + adds r0, r2, #0 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl VarSet +_080EBE92: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EBE98: .4byte 0x00004054 +_080EBE9C: .4byte 0x000040EE + thumb_func_end sub_080EBE68 + + thumb_func_start sub_080EBEA0 +sub_080EBEA0: @ 0x080EBEA0 + push {r4, r5, lr} + ldr r0, _080EBEF4 + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080EBEEC + ldr r5, _080EBEF8 + adds r0, r5, #0 + bl VarGet + ldr r1, _080EBEFC + ands r1, r0 + adds r0, r5, #0 + bl VarSet + ldr r4, _080EBF00 + adds r0, r4, #0 + bl VarGet + ldr r1, _080EBF04 + ands r1, r0 + adds r0, r4, #0 + bl VarSet + adds r0, r5, #0 + bl VarGet + adds r1, r0, #0 + movs r2, #0x80 + lsls r2, r2, #6 + adds r0, r2, #0 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r5, #0 + bl VarSet +_080EBEEC: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080EBEF4: .4byte 0x00004054 +_080EBEF8: .4byte 0x000040EE +_080EBEFC: .4byte 0x0000C7FF +_080EBF00: .4byte 0x000040EF +_080EBF04: .4byte 0x0000FFFE + thumb_func_end sub_080EBEA0 + + thumb_func_start sub_080EBF08 +sub_080EBF08: @ 0x080EBF08 + push {r4, r5, lr} + ldr r0, _080EBF5C + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080EBF54 + ldr r5, _080EBF60 + adds r0, r5, #0 + bl VarGet + ldr r1, _080EBF64 + ands r1, r0 + adds r0, r5, #0 + bl VarSet + ldr r4, _080EBF68 + adds r0, r4, #0 + bl VarGet + ldr r1, _080EBF6C + ands r1, r0 + adds r0, r4, #0 + bl VarSet + adds r0, r5, #0 + bl VarGet + adds r1, r0, #0 + movs r2, #0x80 + lsls r2, r2, #4 + adds r0, r2, #0 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r5, #0 + bl VarSet +_080EBF54: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080EBF5C: .4byte 0x00004054 +_080EBF60: .4byte 0x000040EE +_080EBF64: .4byte 0x0000C7FF +_080EBF68: .4byte 0x000040EF +_080EBF6C: .4byte 0x0000FFFE + thumb_func_end sub_080EBF08 + + thumb_func_start CopyCurSecretBaseOwnerName_StrVar1 +CopyCurSecretBaseOwnerName_StrVar1: @ 0x080EBF70 + push {r4, r5, lr} + ldr r0, _080EBFC4 + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080EBFBC + ldr r5, _080EBFC8 + adds r0, r5, #0 + bl VarGet + ldr r1, _080EBFCC + ands r1, r0 + adds r0, r5, #0 + bl VarSet + ldr r4, _080EBFD0 + adds r0, r4, #0 + bl VarGet + ldr r1, _080EBFD4 + ands r1, r0 + adds r0, r4, #0 + bl VarSet + adds r0, r5, #0 + bl VarGet + adds r1, r0, #0 + movs r2, #0x80 + lsls r2, r2, #5 + adds r0, r2, #0 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r5, #0 + bl VarSet +_080EBFBC: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080EBFC4: .4byte 0x00004054 +_080EBFC8: .4byte 0x000040EE +_080EBFCC: .4byte 0x0000C7FF +_080EBFD0: .4byte 0x000040EF +_080EBFD4: .4byte 0x0000FFFE + thumb_func_end CopyCurSecretBaseOwnerName_StrVar1 + + thumb_func_start GetSecretBaseName +GetSecretBaseName: @ 0x080EBFD8 + push {r4, lr} + ldr r0, _080EC028 + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080EC020 + ldr r4, _080EC02C + adds r0, r4, #0 + bl VarGet + ldr r1, _080EC030 + ands r1, r0 + adds r0, r4, #0 + bl VarSet + adds r4, #1 + adds r0, r4, #0 + bl VarGet + ldr r1, _080EC034 + ands r1, r0 + adds r0, r4, #0 + bl VarSet + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r0, #1 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl VarSet +_080EC020: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EC028: .4byte 0x00004054 +_080EC02C: .4byte 0x000040EE +_080EC030: .4byte 0x0000C7FF +_080EC034: .4byte 0x0000FFFE + thumb_func_end GetSecretBaseName + + thumb_func_start SetSecretBaseSecretsTvFlags_Poster +SetSecretBaseSecretsTvFlags_Poster: @ 0x080EC038 + push {r4, lr} + sub sp, #4 + mov r4, sp + adds r4, #2 + 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 + ldr r1, _080EC068 + adds r0, r0, r1 + cmp r0, #0x18 + bhi _080EC0FC + lsls r0, r0, #2 + ldr r1, _080EC06C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EC068: .4byte 0xFFFFFCE4 +_080EC06C: .4byte 0x080EC070 +_080EC070: @ jump table + .4byte _080EC0D4 @ case 0 + .4byte _080EC0D4 @ case 1 + .4byte _080EC0D4 @ case 2 + .4byte _080EC0D4 @ case 3 + .4byte _080EC0FC @ case 4 + .4byte _080EC0FC @ case 5 + .4byte _080EC0FC @ case 6 + .4byte _080EC0FC @ case 7 + .4byte _080EC0D4 @ case 8 + .4byte _080EC0D4 @ case 9 + .4byte _080EC0D4 @ case 10 + .4byte _080EC0D4 @ case 11 + .4byte _080EC0FC @ case 12 + .4byte _080EC0FC @ case 13 + .4byte _080EC0FC @ case 14 + .4byte _080EC0FC @ case 15 + .4byte _080EC0D4 @ case 16 + .4byte _080EC0D4 @ case 17 + .4byte _080EC0FC @ case 18 + .4byte _080EC0FC @ case 19 + .4byte _080EC0D4 @ case 20 + .4byte _080EC0D4 @ case 21 + .4byte _080EC0D4 @ case 22 + .4byte _080EC0D4 @ case 23 + .4byte _080EC0D4 @ case 24 +_080EC0D4: + ldr r0, _080EC104 + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080EC0FC + ldr r4, _080EC108 + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r2, #0x80 + lsls r2, r2, #7 + adds r0, r2, #0 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl VarSet +_080EC0FC: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EC104: .4byte 0x00004054 +_080EC108: .4byte 0x000040EE + thumb_func_end SetSecretBaseSecretsTvFlags_Poster + + thumb_func_start SetSecretBaseSecretsTvFlags_MiscFurnature +SetSecretBaseSecretsTvFlags_MiscFurnature: @ 0x080EC10C + push {r4, lr} + sub sp, #4 + mov r4, sp + adds r4, #2 + 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 + ldr r1, _080EC140 + adds r0, r0, r1 + cmp r0, #0xcf + bls _080EC134 + b _080EC570 +_080EC134: + lsls r0, r0, #2 + ldr r1, _080EC144 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EC140: .4byte 0xFFFFFDD4 +_080EC144: .4byte 0x080EC148 +_080EC148: @ jump table + .4byte _080EC4D0 @ case 0 + .4byte _080EC51C @ case 1 + .4byte _080EC51C @ case 2 + .4byte _080EC51C @ case 3 + .4byte _080EC570 @ case 4 + .4byte _080EC570 @ case 5 + .4byte _080EC570 @ case 6 + .4byte _080EC4D0 @ case 7 + .4byte _080EC570 @ case 8 + .4byte _080EC570 @ case 9 + .4byte _080EC570 @ case 10 + .4byte _080EC570 @ case 11 + .4byte _080EC570 @ case 12 + .4byte _080EC570 @ case 13 + .4byte _080EC570 @ case 14 + .4byte _080EC570 @ case 15 + .4byte _080EC570 @ case 16 + .4byte _080EC570 @ case 17 + .4byte _080EC570 @ case 18 + .4byte _080EC570 @ case 19 + .4byte _080EC570 @ case 20 + .4byte _080EC570 @ case 21 + .4byte _080EC570 @ case 22 + .4byte _080EC570 @ case 23 + .4byte _080EC570 @ case 24 + .4byte _080EC570 @ case 25 + .4byte _080EC570 @ case 26 + .4byte _080EC570 @ case 27 + .4byte _080EC570 @ case 28 + .4byte _080EC570 @ case 29 + .4byte _080EC570 @ case 30 + .4byte _080EC570 @ case 31 + .4byte _080EC570 @ case 32 + .4byte _080EC570 @ case 33 + .4byte _080EC570 @ case 34 + .4byte _080EC570 @ case 35 + .4byte _080EC570 @ case 36 + .4byte _080EC570 @ case 37 + .4byte _080EC570 @ case 38 + .4byte _080EC570 @ case 39 + .4byte _080EC570 @ case 40 + .4byte _080EC570 @ case 41 + .4byte _080EC570 @ case 42 + .4byte _080EC570 @ case 43 + .4byte _080EC570 @ case 44 + .4byte _080EC570 @ case 45 + .4byte _080EC570 @ case 46 + .4byte _080EC570 @ case 47 + .4byte _080EC570 @ case 48 + .4byte _080EC570 @ case 49 + .4byte _080EC570 @ case 50 + .4byte _080EC570 @ case 51 + .4byte _080EC570 @ case 52 + .4byte _080EC570 @ case 53 + .4byte _080EC570 @ case 54 + .4byte _080EC570 @ case 55 + .4byte _080EC570 @ case 56 + .4byte _080EC570 @ case 57 + .4byte _080EC570 @ case 58 + .4byte _080EC570 @ case 59 + .4byte _080EC570 @ case 60 + .4byte _080EC570 @ case 61 + .4byte _080EC570 @ case 62 + .4byte _080EC570 @ case 63 + .4byte _080EC570 @ case 64 + .4byte _080EC570 @ case 65 + .4byte _080EC570 @ case 66 + .4byte _080EC570 @ case 67 + .4byte _080EC570 @ case 68 + .4byte _080EC570 @ case 69 + .4byte _080EC570 @ case 70 + .4byte _080EC570 @ case 71 + .4byte _080EC570 @ case 72 + .4byte _080EC570 @ case 73 + .4byte _080EC570 @ case 74 + .4byte _080EC570 @ case 75 + .4byte _080EC570 @ case 76 + .4byte _080EC570 @ case 77 + .4byte _080EC570 @ case 78 + .4byte _080EC570 @ case 79 + .4byte _080EC570 @ case 80 + .4byte _080EC570 @ case 81 + .4byte _080EC570 @ case 82 + .4byte _080EC570 @ case 83 + .4byte _080EC570 @ case 84 + .4byte _080EC570 @ case 85 + .4byte _080EC570 @ case 86 + .4byte _080EC570 @ case 87 + .4byte _080EC570 @ case 88 + .4byte _080EC570 @ case 89 + .4byte _080EC570 @ case 90 + .4byte _080EC54C @ case 91 + .4byte _080EC4F4 @ case 92 + .4byte _080EC4F4 @ case 93 + .4byte _080EC488 @ case 94 + .4byte _080EC488 @ case 95 + .4byte _080EC570 @ case 96 + .4byte _080EC570 @ case 97 + .4byte _080EC570 @ case 98 + .4byte _080EC54C @ case 99 + .4byte _080EC570 @ case 100 + .4byte _080EC570 @ case 101 + .4byte _080EC570 @ case 102 + .4byte _080EC570 @ case 103 + .4byte _080EC570 @ case 104 + .4byte _080EC570 @ case 105 + .4byte _080EC570 @ case 106 + .4byte _080EC570 @ case 107 + .4byte _080EC54C @ case 108 + .4byte _080EC54C @ case 109 + .4byte _080EC54C @ case 110 + .4byte _080EC54C @ case 111 + .4byte _080EC54C @ case 112 + .4byte _080EC54C @ case 113 + .4byte _080EC54C @ case 114 + .4byte _080EC54C @ case 115 + .4byte _080EC570 @ case 116 + .4byte _080EC570 @ case 117 + .4byte _080EC570 @ case 118 + .4byte _080EC570 @ case 119 + .4byte _080EC570 @ case 120 + .4byte _080EC570 @ case 121 + .4byte _080EC570 @ case 122 + .4byte _080EC570 @ case 123 + .4byte _080EC570 @ case 124 + .4byte _080EC570 @ case 125 + .4byte _080EC570 @ case 126 + .4byte _080EC54C @ case 127 + .4byte _080EC570 @ case 128 + .4byte _080EC570 @ case 129 + .4byte _080EC570 @ case 130 + .4byte _080EC570 @ case 131 + .4byte _080EC54C @ case 132 + .4byte _080EC54C @ case 133 + .4byte _080EC54C @ case 134 + .4byte _080EC570 @ case 135 + .4byte _080EC54C @ case 136 + .4byte _080EC54C @ case 137 + .4byte _080EC54C @ case 138 + .4byte _080EC54C @ case 139 + .4byte _080EC570 @ case 140 + .4byte _080EC570 @ case 141 + .4byte _080EC570 @ case 142 + .4byte _080EC570 @ case 143 + .4byte _080EC570 @ case 144 + .4byte _080EC570 @ case 145 + .4byte _080EC570 @ case 146 + .4byte _080EC570 @ case 147 + .4byte _080EC570 @ case 148 + .4byte _080EC570 @ case 149 + .4byte _080EC570 @ case 150 + .4byte _080EC570 @ case 151 + .4byte _080EC570 @ case 152 + .4byte _080EC570 @ case 153 + .4byte _080EC570 @ case 154 + .4byte _080EC570 @ case 155 + .4byte _080EC570 @ case 156 + .4byte _080EC570 @ case 157 + .4byte _080EC570 @ case 158 + .4byte _080EC54C @ case 159 + .4byte _080EC54C @ case 160 + .4byte _080EC54C @ case 161 + .4byte _080EC54C @ case 162 + .4byte _080EC54C @ case 163 + .4byte _080EC570 @ case 164 + .4byte _080EC570 @ case 165 + .4byte _080EC570 @ case 166 + .4byte _080EC570 @ case 167 + .4byte _080EC570 @ case 168 + .4byte _080EC570 @ case 169 + .4byte _080EC570 @ case 170 + .4byte _080EC570 @ case 171 + .4byte _080EC4AC @ case 172 + .4byte _080EC4AC @ case 173 + .4byte _080EC4AC @ case 174 + .4byte _080EC4AC @ case 175 + .4byte _080EC4AC @ case 176 + .4byte _080EC4AC @ case 177 + .4byte _080EC570 @ case 178 + .4byte _080EC570 @ case 179 + .4byte _080EC570 @ case 180 + .4byte _080EC570 @ case 181 + .4byte _080EC570 @ case 182 + .4byte _080EC570 @ case 183 + .4byte _080EC570 @ case 184 + .4byte _080EC570 @ case 185 + .4byte _080EC570 @ case 186 + .4byte _080EC570 @ case 187 + .4byte _080EC4AC @ case 188 + .4byte _080EC4AC @ case 189 + .4byte _080EC4AC @ case 190 + .4byte _080EC4AC @ case 191 + .4byte _080EC4AC @ case 192 + .4byte _080EC4AC @ case 193 + .4byte _080EC4AC @ case 194 + .4byte _080EC4AC @ case 195 + .4byte _080EC570 @ case 196 + .4byte _080EC570 @ case 197 + .4byte _080EC570 @ case 198 + .4byte _080EC570 @ case 199 + .4byte _080EC570 @ case 200 + .4byte _080EC570 @ case 201 + .4byte _080EC570 @ case 202 + .4byte _080EC570 @ case 203 + .4byte _080EC4AC @ case 204 + .4byte _080EC4AC @ case 205 + .4byte _080EC4AC @ case 206 + .4byte _080EC4AC @ case 207 +_080EC488: + ldr r0, _080EC4A4 + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080EC570 + ldr r4, _080EC4A8 + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r0, #0x40 + b _080EC534 + .align 2, 0 +_080EC4A4: .4byte 0x00004054 +_080EC4A8: .4byte 0x000040EE +_080EC4AC: + ldr r0, _080EC4C8 + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080EC570 + ldr r4, _080EC4CC + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r0, #8 + b _080EC534 + .align 2, 0 +_080EC4C8: .4byte 0x00004054 +_080EC4CC: .4byte 0x000040EE +_080EC4D0: + ldr r0, _080EC4EC + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080EC570 + ldr r4, _080EC4F0 + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r0, #0x40 + b _080EC534 + .align 2, 0 +_080EC4EC: .4byte 0x00004054 +_080EC4F0: .4byte 0x000040EF +_080EC4F4: + ldr r0, _080EC514 + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080EC570 + ldr r4, _080EC518 + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r2, #0 + b _080EC534 + .align 2, 0 +_080EC514: .4byte 0x00004054 +_080EC518: .4byte 0x000040EF +_080EC51C: + ldr r0, _080EC544 + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080EC570 + ldr r4, _080EC548 + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r0, #0x10 +_080EC534: + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl VarSet + b _080EC570 + .align 2, 0 +_080EC544: .4byte 0x00004054 +_080EC548: .4byte 0x000040EF +_080EC54C: + ldr r0, _080EC578 + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080EC570 + ldr r4, _080EC57C + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl VarSet +_080EC570: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EC578: .4byte 0x00004054 +_080EC57C: .4byte 0x000040EF + thumb_func_end SetSecretBaseSecretsTvFlags_MiscFurnature + + thumb_func_start SetSecretBaseSecretsTvFlags_LargeDecorationSpot +SetSecretBaseSecretsTvFlags_LargeDecorationSpot: @ 0x080EC580 + push {r4, lr} + sub sp, #4 + mov r4, sp + adds r4, #2 + 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 + ldr r1, _080EC5B4 + adds r0, r0, r1 + cmp r0, #0x35 + bls _080EC5A8 + b _080EC6B8 +_080EC5A8: + lsls r0, r0, #2 + ldr r1, _080EC5B8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EC5B4: .4byte 0xFFFFFD6F +_080EC5B8: .4byte 0x080EC5BC +_080EC5BC: @ jump table + .4byte _080EC694 @ case 0 + .4byte _080EC6B8 @ case 1 + .4byte _080EC6B8 @ case 2 + .4byte _080EC694 @ case 3 + .4byte _080EC6B8 @ case 4 + .4byte _080EC6B8 @ case 5 + .4byte _080EC694 @ case 6 + .4byte _080EC6B8 @ case 7 + .4byte _080EC6B8 @ case 8 + .4byte _080EC6B8 @ case 9 + .4byte _080EC6B8 @ case 10 + .4byte _080EC6B8 @ case 11 + .4byte _080EC6B8 @ case 12 + .4byte _080EC6B8 @ case 13 + .4byte _080EC6B8 @ case 14 + .4byte _080EC6B8 @ case 15 + .4byte _080EC694 @ case 16 + .4byte _080EC6B8 @ case 17 + .4byte _080EC6B8 @ case 18 + .4byte _080EC6B8 @ case 19 + .4byte _080EC694 @ case 20 + .4byte _080EC6B8 @ case 21 + .4byte _080EC6B8 @ case 22 + .4byte _080EC6B8 @ case 23 + .4byte _080EC694 @ case 24 + .4byte _080EC6B8 @ case 25 + .4byte _080EC6B8 @ case 26 + .4byte _080EC6B8 @ case 27 + .4byte _080EC694 @ case 28 + .4byte _080EC6B8 @ case 29 + .4byte _080EC6B8 @ case 30 + .4byte _080EC6B8 @ case 31 + .4byte _080EC6B8 @ case 32 + .4byte _080EC6B8 @ case 33 + .4byte _080EC6B8 @ case 34 + .4byte _080EC6B8 @ case 35 + .4byte _080EC6B8 @ case 36 + .4byte _080EC6B8 @ case 37 + .4byte _080EC6B8 @ case 38 + .4byte _080EC6B8 @ case 39 + .4byte _080EC6B8 @ case 40 + .4byte _080EC6B8 @ case 41 + .4byte _080EC694 @ case 42 + .4byte _080EC6B8 @ case 43 + .4byte _080EC6B8 @ case 44 + .4byte _080EC694 @ case 45 + .4byte _080EC6B8 @ case 46 + .4byte _080EC6B8 @ case 47 + .4byte _080EC6B8 @ case 48 + .4byte _080EC6B8 @ case 49 + .4byte _080EC694 @ case 50 + .4byte _080EC6B8 @ case 51 + .4byte _080EC6B8 @ case 52 + .4byte _080EC694 @ case 53 +_080EC694: + ldr r0, _080EC6C0 + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080EC6B8 + ldr r4, _080EC6C4 + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl VarSet +_080EC6B8: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EC6C0: .4byte 0x00004054 +_080EC6C4: .4byte 0x000040EF + thumb_func_end SetSecretBaseSecretsTvFlags_LargeDecorationSpot + + thumb_func_start SetSecretBaseSecretsTvFlags_SmallDecorationSpot +SetSecretBaseSecretsTvFlags_SmallDecorationSpot: @ 0x080EC6C8 + push {r4, lr} + sub sp, #4 + mov r4, sp + adds r4, #2 + 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 + ldr r1, _080EC6FC + adds r0, r0, r1 + cmp r0, #0xa2 + bls _080EC6F0 + b _080ECA0C +_080EC6F0: + lsls r0, r0, #2 + ldr r1, _080EC700 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EC6FC: .4byte 0xFFFFFDDB +_080EC700: .4byte 0x080EC704 +_080EC704: @ jump table + .4byte _080EC9E8 @ case 0 + .4byte _080EC9E8 @ case 1 + .4byte _080EC9E8 @ case 2 + .4byte _080ECA0C @ case 3 + .4byte _080ECA0C @ case 4 + .4byte _080ECA0C @ case 5 + .4byte _080ECA0C @ case 6 + .4byte _080ECA0C @ case 7 + .4byte _080ECA0C @ case 8 + .4byte _080ECA0C @ case 9 + .4byte _080ECA0C @ case 10 + .4byte _080ECA0C @ case 11 + .4byte _080ECA0C @ case 12 + .4byte _080ECA0C @ case 13 + .4byte _080ECA0C @ case 14 + .4byte _080ECA0C @ case 15 + .4byte _080ECA0C @ case 16 + .4byte _080ECA0C @ case 17 + .4byte _080ECA0C @ case 18 + .4byte _080ECA0C @ case 19 + .4byte _080ECA0C @ case 20 + .4byte _080ECA0C @ case 21 + .4byte _080ECA0C @ case 22 + .4byte _080ECA0C @ case 23 + .4byte _080ECA0C @ case 24 + .4byte _080ECA0C @ case 25 + .4byte _080ECA0C @ case 26 + .4byte _080ECA0C @ case 27 + .4byte _080ECA0C @ case 28 + .4byte _080ECA0C @ case 29 + .4byte _080ECA0C @ case 30 + .4byte _080ECA0C @ case 31 + .4byte _080ECA0C @ case 32 + .4byte _080ECA0C @ case 33 + .4byte _080ECA0C @ case 34 + .4byte _080ECA0C @ case 35 + .4byte _080ECA0C @ case 36 + .4byte _080ECA0C @ case 37 + .4byte _080ECA0C @ case 38 + .4byte _080ECA0C @ case 39 + .4byte _080ECA0C @ case 40 + .4byte _080ECA0C @ case 41 + .4byte _080ECA0C @ case 42 + .4byte _080ECA0C @ case 43 + .4byte _080ECA0C @ case 44 + .4byte _080ECA0C @ case 45 + .4byte _080ECA0C @ case 46 + .4byte _080ECA0C @ case 47 + .4byte _080ECA0C @ case 48 + .4byte _080ECA0C @ case 49 + .4byte _080ECA0C @ case 50 + .4byte _080ECA0C @ case 51 + .4byte _080ECA0C @ case 52 + .4byte _080ECA0C @ case 53 + .4byte _080ECA0C @ case 54 + .4byte _080ECA0C @ case 55 + .4byte _080ECA0C @ case 56 + .4byte _080ECA0C @ case 57 + .4byte _080ECA0C @ case 58 + .4byte _080ECA0C @ case 59 + .4byte _080ECA0C @ case 60 + .4byte _080ECA0C @ case 61 + .4byte _080ECA0C @ case 62 + .4byte _080ECA0C @ case 63 + .4byte _080ECA0C @ case 64 + .4byte _080ECA0C @ case 65 + .4byte _080ECA0C @ case 66 + .4byte _080ECA0C @ case 67 + .4byte _080ECA0C @ case 68 + .4byte _080ECA0C @ case 69 + .4byte _080ECA0C @ case 70 + .4byte _080ECA0C @ case 71 + .4byte _080ECA0C @ case 72 + .4byte _080ECA0C @ case 73 + .4byte _080ECA0C @ case 74 + .4byte _080ECA0C @ case 75 + .4byte _080ECA0C @ case 76 + .4byte _080ECA0C @ case 77 + .4byte _080ECA0C @ case 78 + .4byte _080ECA0C @ case 79 + .4byte _080ECA0C @ case 80 + .4byte _080ECA0C @ case 81 + .4byte _080ECA0C @ case 82 + .4byte _080ECA0C @ case 83 + .4byte _080ECA0C @ case 84 + .4byte _080ECA0C @ case 85 + .4byte _080ECA0C @ case 86 + .4byte _080ECA0C @ case 87 + .4byte _080ECA0C @ case 88 + .4byte _080ECA0C @ case 89 + .4byte _080ECA0C @ case 90 + .4byte _080EC9B4 @ case 91 + .4byte _080EC9B4 @ case 92 + .4byte _080ECA0C @ case 93 + .4byte _080ECA0C @ case 94 + .4byte _080ECA0C @ case 95 + .4byte _080ECA0C @ case 96 + .4byte _080ECA0C @ case 97 + .4byte _080ECA0C @ case 98 + .4byte _080ECA0C @ case 99 + .4byte _080ECA0C @ case 100 + .4byte _080ECA0C @ case 101 + .4byte _080ECA0C @ case 102 + .4byte _080ECA0C @ case 103 + .4byte _080ECA0C @ case 104 + .4byte _080ECA0C @ case 105 + .4byte _080ECA0C @ case 106 + .4byte _080EC990 @ case 107 + .4byte _080ECA0C @ case 108 + .4byte _080EC990 @ case 109 + .4byte _080EC990 @ case 110 + .4byte _080ECA0C @ case 111 + .4byte _080EC990 @ case 112 + .4byte _080EC990 @ case 113 + .4byte _080ECA0C @ case 114 + .4byte _080ECA0C @ case 115 + .4byte _080ECA0C @ case 116 + .4byte _080ECA0C @ case 117 + .4byte _080ECA0C @ case 118 + .4byte _080ECA0C @ case 119 + .4byte _080ECA0C @ case 120 + .4byte _080ECA0C @ case 121 + .4byte _080ECA0C @ case 122 + .4byte _080EC990 @ case 123 + .4byte _080ECA0C @ case 124 + .4byte _080EC990 @ case 125 + .4byte _080EC990 @ case 126 + .4byte _080EC990 @ case 127 + .4byte _080ECA0C @ case 128 + .4byte _080EC990 @ case 129 + .4byte _080EC990 @ case 130 + .4byte _080EC990 @ case 131 + .4byte _080ECA0C @ case 132 + .4byte _080EC990 @ case 133 + .4byte _080ECA0C @ case 134 + .4byte _080EC990 @ case 135 + .4byte _080ECA0C @ case 136 + .4byte _080EC990 @ case 137 + .4byte _080EC990 @ case 138 + .4byte _080ECA0C @ case 139 + .4byte _080ECA0C @ case 140 + .4byte _080ECA0C @ case 141 + .4byte _080ECA0C @ case 142 + .4byte _080ECA0C @ case 143 + .4byte _080ECA0C @ case 144 + .4byte _080ECA0C @ case 145 + .4byte _080ECA0C @ case 146 + .4byte _080ECA0C @ case 147 + .4byte _080ECA0C @ case 148 + .4byte _080ECA0C @ case 149 + .4byte _080ECA0C @ case 150 + .4byte _080EC990 @ case 151 + .4byte _080EC990 @ case 152 + .4byte _080ECA0C @ case 153 + .4byte _080EC990 @ case 154 + .4byte _080ECA0C @ case 155 + .4byte _080ECA0C @ case 156 + .4byte _080ECA0C @ case 157 + .4byte _080ECA0C @ case 158 + .4byte _080EC990 @ case 159 + .4byte _080EC990 @ case 160 + .4byte _080ECA0C @ case 161 + .4byte _080EC990 @ case 162 +_080EC990: + ldr r0, _080EC9AC + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080ECA0C + ldr r4, _080EC9B0 + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r0, #8 + b _080EC9D0 + .align 2, 0 +_080EC9AC: .4byte 0x00004054 +_080EC9B0: .4byte 0x000040EF +_080EC9B4: + ldr r0, _080EC9E0 + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080ECA0C + ldr r4, _080EC9E4 + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r2, #0 +_080EC9D0: + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl VarSet + b _080ECA0C + .align 2, 0 +_080EC9E0: .4byte 0x00004054 +_080EC9E4: .4byte 0x000040EF +_080EC9E8: + ldr r0, _080ECA14 + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080ECA0C + ldr r4, _080ECA18 + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r0, #0x10 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl VarSet +_080ECA0C: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ECA14: .4byte 0x00004054 +_080ECA18: .4byte 0x000040EF + thumb_func_end SetSecretBaseSecretsTvFlags_SmallDecorationSpot + + thumb_func_start SetSecretBaseSecretsTvFlags_SandOrnament +SetSecretBaseSecretsTvFlags_SandOrnament: @ 0x080ECA1C + push {r4, lr} + sub sp, #4 + mov r4, sp + adds r4, #2 + 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, _080ECA74 + cmp r1, r0 + bgt _080ECA6C + subs r0, #1 + cmp r1, r0 + blt _080ECA6C + ldr r0, _080ECA78 + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080ECA6C + ldr r4, _080ECA7C + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + movs r0, #4 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl VarSet +_080ECA6C: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ECA74: .4byte 0x0000028E +_080ECA78: .4byte 0x00004054 +_080ECA7C: .4byte 0x000040EF + thumb_func_end SetSecretBaseSecretsTvFlags_SandOrnament + diff --git a/asm/shop.s b/asm/shop.s new file mode 100644 index 0000000..f777c38 --- /dev/null +++ b/asm/shop.s @@ -0,0 +1,3010 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start CB2_BuyMenu +CB2_BuyMenu: @ 0x080DEFF0 + push {r4, r5, r6, lr} + sub sp, #0xc + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl ScriptContext2_Enable + ldr r5, _080DF018 + strb r4, [r5, #0xf] + cmp r4, #0 + bne _080DF024 + ldr r0, _080DF01C + bl AddWindow + strb r0, [r5, #0xe] + ldr r0, _080DF020 + str r0, [r5, #4] + movs r6, #3 + b _080DF032 + .align 2, 0 +_080DF018: .4byte 0x02039C00 +_080DF01C: .4byte 0x085629BC +_080DF020: .4byte 0x08562994 +_080DF024: + ldr r0, _080DF088 + bl AddWindow + strb r0, [r5, #0xe] + ldr r0, _080DF08C + str r0, [r5, #4] + movs r6, #2 +_080DF032: + ldr r4, _080DF090 + ldrb r0, [r4, #0xe] + movs r1, #0 + bl SetStandardWindowBorderStyle + ldrb r0, [r4, #0xe] + movs r5, #0x10 + str r5, [sp] + str r6, [sp, #4] + ldr r1, [r4, #4] + str r1, [sp, #8] + movs r1, #1 + movs r2, #8 + movs r3, #2 + bl PrintTextArray + ldrb r0, [r4, #0xe] + str r5, [sp] + str r6, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl sub_081984B0 + ldrb r0, [r4, #0xe] + bl PutWindowTilemap + ldrb r0, [r4, #0xe] + movs r1, #1 + bl CopyWindowToVram + ldr r0, _080DF094 + movs r1, #8 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #0xc + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080DF088: .4byte 0x085629C4 +_080DF08C: .4byte 0x085629AC +_080DF090: .4byte 0x02039C00 +_080DF094: .4byte 0x080DF0D5 + thumb_func_end CB2_BuyMenu + + thumb_func_start SetShopMenuCallback +SetShopMenuCallback: @ 0x080DF098 + ldr r1, _080DF0A0 + str r0, [r1] + bx lr + .align 2, 0 +_080DF0A0: .4byte 0x02039C00 + thumb_func_end SetShopMenuCallback + + thumb_func_start SetShopItemsForSale +SetShopItemsForSale: @ 0x080DF0A4 + push {lr} + adds r1, r0, #0 + movs r2, #0 + ldr r3, _080DF0D0 + str r1, [r3, #8] + strh r2, [r3, #0xc] + ldrh r0, [r1] + cmp r0, #0 + beq _080DF0CC +_080DF0B6: + ldrh r0, [r3, #0xc] + adds r0, #1 + strh r0, [r3, #0xc] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0 + bne _080DF0B6 +_080DF0CC: + pop {r0} + bx r0 + .align 2, 0 +_080DF0D0: .4byte 0x02039C00 + thumb_func_end SetShopItemsForSale + + thumb_func_start Task_ShopMenu +Task_ShopMenu: @ 0x080DF0D4 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r5, r4, #0 + bl Menu_ProcessInputNoWrap + lsls r0, r0, #0x18 + asrs r2, r0, #0x18 + movs r0, #2 + rsbs r0, r0, #0 + cmp r2, r0 + beq _080DF110 + adds r0, #1 + cmp r2, r0 + bne _080DF100 + movs r0, #5 + bl PlaySE + adds r0, r4, #0 + bl Task_HandleShopMenuQuit + b _080DF110 +_080DF100: + ldr r0, _080DF118 + ldr r1, [r0, #4] + lsls r0, r2, #3 + adds r0, r0, r1 + ldr r1, [r0, #4] + adds r0, r5, #0 + bl _call_via_r1 +_080DF110: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080DF118: .4byte 0x02039C00 + thumb_func_end Task_ShopMenu + + thumb_func_start Task_HandleShopMenuBuy +Task_HandleShopMenuBuy: @ 0x080DF11C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r2, _080DF14C + adds r4, r1, r2 + ldr r3, _080DF150 + lsrs r0, r3, #0x10 + strh r0, [r4, #0x10] + strh r3, [r4, #0x12] + subs r2, #8 + adds r1, r1, r2 + ldr r0, _080DF154 + str r0, [r1] + movs r0, #1 + movs r1, #0 + bl FadeScreen + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DF14C: .4byte 0x03005B68 +_080DF150: .4byte 0x080DF2E1 +_080DF154: .4byte 0x080DF1F1 + thumb_func_end Task_HandleShopMenuBuy + + thumb_func_start Task_HandleShopMenuSell +Task_HandleShopMenuSell: @ 0x080DF158 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r2, _080DF188 + adds r4, r1, r2 + ldr r3, _080DF18C + lsrs r0, r3, #0x10 + strh r0, [r4, #0x10] + strh r3, [r4, #0x12] + subs r2, #8 + adds r1, r1, r2 + ldr r0, _080DF190 + str r0, [r1] + movs r0, #1 + movs r1, #0 + bl FadeScreen + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DF188: .4byte 0x03005B68 +_080DF18C: .4byte 0x081AA979 +_080DF190: .4byte 0x080DF1F1 + thumb_func_end Task_HandleShopMenuSell + + thumb_func_start CB2_ExitSellMenu +CB2_ExitSellMenu: @ 0x080DF194 + push {lr} + ldr r0, _080DF1A8 + ldr r1, _080DF1AC + str r1, [r0] + ldr r0, _080DF1B0 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080DF1A8: .4byte 0x03005B0C +_080DF1AC: .4byte 0x080DF22D +_080DF1B0: .4byte 0x08085A31 + thumb_func_end CB2_ExitSellMenu + + thumb_func_start Task_HandleShopMenuQuit +Task_HandleShopMenuQuit: @ 0x080DF1B4 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r5, _080DF1EC + ldrb r0, [r5, #0xe] + movs r1, #2 + bl ClearStdWindowAndFrameToTransparent + ldrb r0, [r5, #0xe] + bl RemoveWindow + bl SaveRecordedItemPurchasesForTVShow + bl ScriptContext2_Disable + adds r0, r4, #0 + bl DestroyTask + ldr r5, [r5] + cmp r5, #0 + beq _080DF1E4 + bl _call_via_r5 +_080DF1E4: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080DF1EC: .4byte 0x02039C00 + thumb_func_end Task_HandleShopMenuQuit + + thumb_func_start Task_GoToBuyOrSellMenu +Task_GoToBuyOrSellMenu: @ 0x080DF1F0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _080DF224 + adds r4, r0, r1 + ldr r0, _080DF228 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080DF21E + adds r0, r2, #0 + bl DestroyTask + ldrh r0, [r4, #0x10] + lsls r0, r0, #0x10 + ldrh r1, [r4, #0x12] + orrs r0, r1 + bl SetMainCallback2 +_080DF21E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DF224: .4byte 0x03005B68 +_080DF228: .4byte 0x02037C74 + thumb_func_end Task_GoToBuyOrSellMenu + + thumb_func_start MapPostLoadHook_ReturnToShopMenu +MapPostLoadHook_ReturnToShopMenu: @ 0x080DF22C + push {lr} + bl pal_fill_black + ldr r0, _080DF240 + movs r1, #8 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080DF240: .4byte 0x080DF245 + thumb_func_end MapPostLoadHook_ReturnToShopMenu + + thumb_func_start Task_ReturnToShopMenu +Task_ReturnToShopMenu: @ 0x080DF244 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r5, r4, #0 + bl IsWeatherNotFadingIn + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080DF282 + ldr r0, _080DF26C + ldrb r0, [r0, #0xf] + cmp r0, #2 + bne _080DF278 + ldr r1, _080DF270 + ldr r2, _080DF274 + adds r0, r4, #0 + bl DisplayItemMessageOnField + b _080DF282 + .align 2, 0 +_080DF26C: .4byte 0x02039C00 +_080DF270: .4byte 0x085C9A15 +_080DF274: .4byte 0x080DF291 +_080DF278: + ldr r1, _080DF288 + ldr r2, _080DF28C + adds r0, r5, #0 + bl DisplayItemMessageOnField +_080DF282: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080DF288: .4byte 0x085C99F5 +_080DF28C: .4byte 0x080DF291 + thumb_func_end Task_ReturnToShopMenu + + thumb_func_start ShowShopMenuAfterExitingBuyOrSellMenu +ShowShopMenuAfterExitingBuyOrSellMenu: @ 0x080DF290 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _080DF2AC + ldrb r0, [r0, #0xf] + bl CB2_BuyMenu + adds r0, r4, #0 + bl DestroyTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DF2AC: .4byte 0x02039C00 + thumb_func_end ShowShopMenuAfterExitingBuyOrSellMenu + + thumb_func_start BuyMenuPrintPriceInList +BuyMenuPrintPriceInList: @ 0x080DF2B0 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl do_scheduled_bg_tilemap_copies_to_vram + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BuyMenuPrintPriceInList + + thumb_func_start VBlankCB_BuyMenu +VBlankCB_BuyMenu: @ 0x080DF2CC + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end VBlankCB_BuyMenu + + thumb_func_start CB2_InitBuyMenu +CB2_InitBuyMenu: @ 0x080DF2E0 + push {r4, r5, lr} + sub sp, #0xc + ldr r0, _080DF354 + movs r1, #0x87 + lsls r1, r1, #3 + adds r5, r0, r1 + ldrb r4, [r5] + cmp r4, #0 + beq _080DF36C + cmp r4, #1 + bne _080DF2F8 + b _080DF430 +_080DF2F8: + bl BuyMenuDrawGraphics + bl BuyMenuAddScrollIndicatorArrows + ldr r0, _080DF358 + movs r1, #8 + bl CreateTask + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _080DF35C + movs r1, #0 + movs r2, #0 + bl ListMenuInit + ldr r2, _080DF360 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r5, #0 + strh r0, [r1, #0x16] + movs r4, #1 + rsbs r4, r4, #0 + adds r0, r4, #0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + str r5, [sp] + adds r0, r4, #0 + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r0, _080DF364 + bl SetVBlankCallback + ldr r0, _080DF368 + bl SetMainCallback2 + b _080DF440 + .align 2, 0 +_080DF354: .4byte 0x03002360 +_080DF358: .4byte 0x080E000D +_080DF35C: .4byte 0x03006050 +_080DF360: .4byte 0x03005B60 +_080DF364: .4byte 0x080DF2CD +_080DF368: .4byte 0x080DF2B1 +_080DF36C: + bl SetVBlankHBlankCallbacksToNull + str r4, [sp, #8] + movs r1, #0xe0 + lsls r1, r1, #0x13 + ldr r2, _080DF418 + add r0, sp, #8 + bl CpuFastSet + bl ScanlineEffect_Stop + bl reset_temp_tile_data_buffers + bl FreeAllSpritePalettes + bl ResetPaletteFade + bl ResetSpriteData + bl ResetTasks + bl clear_scheduled_bg_copies_to_vram + ldr r4, _080DF41C + ldr r0, _080DF420 + bl AllocZeroed + str r0, [r4] + ldr r1, _080DF424 + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] + ldr r0, [r4] + ldr r1, _080DF428 + adds r0, r0, r1 + movs r1, #1 + rsbs r1, r1, #0 + strb r1, [r0] + ldr r0, [r4] + ldr r1, _080DF42C + adds r0, r0, r1 + movs r1, #1 + rsbs r1, r1, #0 + strb r1, [r0] + bl BuyMenuBuildListMenuTemplate + bl BuyMenuInitBgs + movs r4, #0x20 + str r4, [sp] + str r4, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + str r4, [sp] + str r4, [sp, #4] + movs r0, #1 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + str r4, [sp] + str r4, [sp, #4] + movs r0, #2 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + str r4, [sp] + str r4, [sp, #4] + movs r0, #3 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + bl BuyMenuInitWindows + bl BuyMenuDecompressBgGraphics + b _080DF43A + .align 2, 0 +_080DF418: .4byte 0x01000100 +_080DF41C: .4byte 0x02039C10 +_080DF420: .4byte 0x000020B0 +_080DF424: .4byte 0x0000200B +_080DF428: .4byte 0x0000200D +_080DF42C: .4byte 0x0000200E +_080DF430: + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080DF440 +_080DF43A: + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] +_080DF440: + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end CB2_InitBuyMenu + + thumb_func_start BuyMenuFreeMemory +BuyMenuFreeMemory: @ 0x080DF448 + push {lr} + ldr r0, _080DF46C + ldr r0, [r0] + bl Free + ldr r0, _080DF470 + ldr r0, [r0] + bl Free + ldr r0, _080DF474 + ldr r0, [r0] + bl Free + bl FreeAllWindowBuffers + pop {r0} + bx r0 + .align 2, 0 +_080DF46C: .4byte 0x02039C10 +_080DF470: .4byte 0x02039C14 +_080DF474: .4byte 0x02039C18 + thumb_func_end BuyMenuFreeMemory + + thumb_func_start BuyMenuBuildListMenuTemplate +BuyMenuBuildListMenuTemplate: @ 0x080DF478 + push {r4, r5, r6, r7, lr} + ldr r7, _080DF518 + ldr r4, _080DF51C + ldrh r0, [r4, #0xc] + adds r0, #1 + lsls r0, r0, #3 + bl Alloc + str r0, [r7] + ldr r5, _080DF520 + ldrh r0, [r4, #0xc] + adds r0, #1 + movs r1, #0xb + muls r0, r1, r0 + bl Alloc + str r0, [r5] + movs r6, #0 + ldrh r0, [r4, #0xc] + cmp r6, r0 + bhs _080DF4CA +_080DF4A2: + lsls r1, r6, #3 + ldr r0, [r7] + adds r0, r0, r1 + ldr r2, [r4, #8] + lsls r1, r6, #1 + adds r1, r1, r2 + ldrh r1, [r1] + movs r2, #0xb + adds r3, r6, #0 + muls r3, r2, r3 + ldr r2, [r5] + adds r2, r2, r3 + bl BuyMenuSetListEntry + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldrh r2, [r4, #0xc] + cmp r6, r2 + blo _080DF4A2 +_080DF4CA: + ldr r5, _080DF520 + movs r0, #0xb + adds r4, r6, #0 + muls r4, r0, r4 + ldr r0, [r5] + adds r0, r0, r4 + ldr r1, _080DF524 + bl StringCopy + ldr r2, _080DF518 + ldr r0, [r2] + lsls r1, r6, #3 + adds r1, r1, r0 + ldr r0, [r5] + adds r0, r0, r4 + str r0, [r1] + movs r0, #2 + rsbs r0, r0, #0 + str r0, [r1, #4] + ldr r3, _080DF528 + adds r1, r3, #0 + ldr r0, _080DF52C + ldm r0!, {r4, r5, r6} + stm r1!, {r4, r5, r6} + ldm r0!, {r4, r5, r6} + stm r1!, {r4, r5, r6} + ldr r0, [r2] + str r0, [r3] + ldr r0, _080DF51C + ldrh r0, [r0, #0xc] + adds r1, r0, #1 + strh r1, [r3, #0xc] + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #8 + bls _080DF530 + movs r0, #8 + strh r0, [r3, #0xe] + b _080DF532 + .align 2, 0 +_080DF518: .4byte 0x02039C14 +_080DF51C: .4byte 0x02039C00 +_080DF520: .4byte 0x02039C18 +_080DF524: .4byte 0x085C93C8 +_080DF528: .4byte 0x03006050 +_080DF52C: .4byte 0x085629CC +_080DF530: + strh r1, [r3, #0xe] +_080DF532: + ldr r0, _080DF548 + ldr r0, [r0] + ldr r1, _080DF54C + ldrh r1, [r1, #0xe] + ldr r2, _080DF550 + adds r0, r0, r2 + strh r1, [r0] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DF548: .4byte 0x02039C10 +_080DF54C: .4byte 0x03006050 +_080DF550: .4byte 0x00002004 + thumb_func_end BuyMenuBuildListMenuTemplate + + thumb_func_start BuyMenuSetListEntry +BuyMenuSetListEntry: @ 0x080DF554 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r2, #0 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + ldr r0, _080DF570 + ldrb r0, [r0, #0xf] + cmp r0, #0 + bne _080DF574 + adds r0, r4, #0 + adds r1, r5, #0 + bl CopyItemName + b _080DF584 + .align 2, 0 +_080DF570: .4byte 0x02039C00 +_080DF574: + lsls r1, r4, #3 + subs r1, r1, r4 + lsls r1, r1, #2 + ldr r0, _080DF590 + adds r1, r1, r0 + adds r0, r5, #0 + bl StringCopy +_080DF584: + str r5, [r6] + str r4, [r6, #4] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080DF590: .4byte 0x08580CD1 + thumb_func_end BuyMenuSetListEntry + + thumb_func_start BuyMenuPrintItemDescriptionAndShowItemIcon +BuyMenuPrintItemDescriptionAndShowItemIcon: @ 0x080DF594 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + adds r7, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #1 + beq _080DF5AC + movs r0, #5 + bl PlaySE +_080DF5AC: + movs r0, #2 + rsbs r0, r0, #0 + cmp r7, r0 + beq _080DF5D0 + lsls r4, r7, #0x10 + lsrs r0, r4, #0x10 + ldr r1, _080DF5C8 + ldr r1, [r1] + ldr r2, _080DF5CC + adds r1, r1, r2 + ldrb r1, [r1] + bl BuyMenuAddItemIcon + b _080DF5E2 + .align 2, 0 +_080DF5C8: .4byte 0x02039C10 +_080DF5CC: .4byte 0x0000200C +_080DF5D0: + ldr r0, _080DF620 + ldr r1, _080DF624 + ldr r1, [r1] + ldr r2, _080DF628 + adds r1, r1, r2 + ldrb r1, [r1] + bl BuyMenuAddItemIcon + lsls r4, r7, #0x10 +_080DF5E2: + lsrs r4, r4, #0x10 + mov r8, r4 + ldr r6, _080DF624 + ldr r0, [r6] + ldr r5, _080DF628 + adds r0, r0, r5 + ldrb r0, [r0] + movs r4, #1 + adds r1, r4, #0 + eors r1, r0 + mov r0, r8 + bl BuyMenuRemoveItemIcon + ldr r1, [r6] + adds r1, r1, r5 + ldrb r0, [r1] + eors r0, r4 + strb r0, [r1] + movs r0, #2 + rsbs r0, r0, #0 + cmp r7, r0 + beq _080DF644 + ldr r0, _080DF62C + ldrb r0, [r0, #0xf] + cmp r0, #0 + bne _080DF630 + mov r0, r8 + bl ItemId_GetHoldEffect + adds r4, r0, #0 + b _080DF646 + .align 2, 0 +_080DF620: .4byte 0x0000FFFF +_080DF624: .4byte 0x02039C10 +_080DF628: .4byte 0x0000200C +_080DF62C: .4byte 0x02039C00 +_080DF630: + ldr r1, _080DF640 + lsls r0, r7, #3 + subs r0, r0, r7 + lsls r0, r0, #2 + adds r1, #0x14 + adds r0, r0, r1 + ldr r4, [r0] + b _080DF646 + .align 2, 0 +_080DF640: .4byte 0x08580CD0 +_080DF644: + ldr r4, _080DF66C +_080DF646: + movs r0, #2 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + movs r0, #2 + adds r1, r4, #0 + movs r2, #0 + movs r3, #2 + bl BuyMenuPrint + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DF66C: .4byte 0x085C98E0 + thumb_func_end BuyMenuPrintItemDescriptionAndShowItemIcon + + thumb_func_start CreateShopMenu +CreateShopMenu: @ 0x080DF670 + push {r4, r5, r6, r7, lr} + sub sp, #8 + adds r3, r1, #0 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + movs r0, #2 + rsbs r0, r0, #0 + cmp r3, r0 + beq _080DF6F4 + ldr r0, _080DF6B8 + ldrb r0, [r0, #0xf] + cmp r0, #0 + bne _080DF6C0 + ldr r5, _080DF6BC + lsls r0, r3, #0x10 + lsrs r0, r0, #0x10 + bl sub_080D6CD4 + adds r4, r0, #0 + movs r0, #1 + bl GetPriceReduction + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + asrs r4, r0 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #1 + movs r3, #5 + bl ConvertIntToDecimalStringN + b _080DF6D6 + .align 2, 0 +_080DF6B8: .4byte 0x02039C00 +_080DF6BC: .4byte 0x02021C40 +_080DF6C0: + ldr r0, _080DF6FC + ldr r2, _080DF700 + lsls r1, r3, #3 + subs r1, r1, r3 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrh r1, [r1, #0x10] + movs r2, #1 + movs r3, #5 + bl ConvertIntToDecimalStringN +_080DF6D6: + ldr r4, _080DF704 + ldr r1, _080DF708 + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #0xff + str r0, [sp] + movs r0, #1 + str r0, [sp, #4] + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #0x48 + adds r3, r7, #0 + bl BuyMenuPrint +_080DF6F4: + add sp, #8 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DF6FC: .4byte 0x02021C40 +_080DF700: .4byte 0x08580CD0 +_080DF704: .4byte 0x02021C7C +_080DF708: .4byte 0x085C9A9D + thumb_func_end CreateShopMenu + + thumb_func_start BuyMenuAddScrollIndicatorArrows +BuyMenuAddScrollIndicatorArrows: @ 0x080DF70C + push {r4, r5, lr} + sub sp, #0x10 + ldr r5, _080DF754 + ldr r2, [r5] + ldr r4, _080DF758 + adds r0, r2, r4 + ldrb r0, [r0] + cmp r0, #0xff + bne _080DF74A + ldr r0, _080DF75C + ldrh r1, [r0, #0xc] + adds r0, r1, #1 + cmp r0, #8 + ble _080DF74A + subs r0, r1, #7 + str r0, [sp] + ldr r0, _080DF760 + str r0, [sp, #4] + str r0, [sp, #8] + ldr r1, _080DF764 + adds r0, r2, r1 + str r0, [sp, #0xc] + movs r0, #2 + movs r1, #0xac + movs r2, #0xc + movs r3, #0x94 + bl AddScrollIndicatorArrowPairParameterized + ldr r1, [r5] + adds r1, r1, r4 + strb r0, [r1] +_080DF74A: + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080DF754: .4byte 0x02039C10 +_080DF758: .4byte 0x0000200B +_080DF75C: .4byte 0x02039C00 +_080DF760: .4byte 0x00000834 +_080DF764: .4byte 0x00002008 + thumb_func_end BuyMenuAddScrollIndicatorArrows + + thumb_func_start BuyMenuRemoveScrollIndicatorArrows +BuyMenuRemoveScrollIndicatorArrows: @ 0x080DF768 + push {r4, lr} + ldr r4, _080DF78C + ldr r0, [r4] + ldr r2, _080DF790 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, #0xff + beq _080DF786 + bl RemoveScrollIndicatorArrowPair + ldr r0, [r4] + ldr r1, _080DF790 + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] +_080DF786: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DF78C: .4byte 0x02039C10 +_080DF790: .4byte 0x0000200B + thumb_func_end BuyMenuRemoveScrollIndicatorArrows + + thumb_func_start BuyMenuPrintCursor +BuyMenuPrintCursor: @ 0x080DF794 + push {r4, lr} + sub sp, #8 + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl ListMenuGetYCoordForPrintingArrowCursor + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r1, _080DF7C4 + movs r0, #0 + str r0, [sp] + str r4, [sp, #4] + movs r0, #1 + movs r2, #0 + bl BuyMenuPrint + add sp, #8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DF7C4: .4byte 0x085C9421 + thumb_func_end BuyMenuPrintCursor + + thumb_func_start BuyMenuAddItemIcon +BuyMenuAddItemIcon: @ 0x080DF7C8 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + ldr r0, _080DF81C + ldr r4, _080DF820 + adds r1, r3, r4 + ldr r0, [r0] + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, #0xff + bne _080DF854 + ldr r0, _080DF824 + ldrb r0, [r0, #0xf] + cmp r0, #0 + beq _080DF7F2 + ldr r0, _080DF828 + cmp r2, r0 + bne _080DF834 +_080DF7F2: + ldr r0, _080DF82C + adds r1, r3, r0 + adds r0, r1, #0 + bl AddItemIconSprite + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x40 + beq _080DF854 + strb r2, [r4] + ldr r1, _080DF830 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + movs r1, #0x18 + strh r1, [r0, #0x24] + movs r1, #0x58 + strh r1, [r0, #0x26] + b _080DF854 + .align 2, 0 +_080DF81C: .4byte 0x02039C10 +_080DF820: .4byte 0x0000200D +_080DF824: .4byte 0x02039C00 +_080DF828: .4byte 0x0000FFFF +_080DF82C: .4byte 0x0000083E +_080DF830: .4byte 0x020205AC +_080DF834: + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080DF85C + adds r1, r3, r2 + str r1, [sp] + str r1, [sp, #4] + movs r1, #0x14 + movs r2, #0x54 + movs r3, #1 + bl AddDecorationIconObject + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x40 + beq _080DF854 + strb r2, [r4] +_080DF854: + add sp, #8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DF85C: .4byte 0x0000083E + thumb_func_end BuyMenuAddItemIcon + + thumb_func_start BuyMenuRemoveItemIcon +BuyMenuRemoveItemIcon: @ 0x080DF860 + push {r4, r5, lr} + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + ldr r0, _080DF8A0 + ldr r2, _080DF8A4 + adds r1, r4, r2 + ldr r0, [r0] + adds r5, r0, r1 + ldrb r0, [r5] + cmp r0, #0xff + beq _080DF89A + ldr r0, _080DF8A8 + adds r4, r4, r0 + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl FreeSpritePaletteByTag + ldrb r1, [r5] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080DF8AC + adds r0, r0, r1 + bl DestroySprite + movs r0, #0xff + strb r0, [r5] +_080DF89A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080DF8A0: .4byte 0x02039C10 +_080DF8A4: .4byte 0x0000200D +_080DF8A8: .4byte 0x0000083E +_080DF8AC: .4byte 0x020205AC + thumb_func_end BuyMenuRemoveItemIcon + + thumb_func_start BuyMenuInitBgs +BuyMenuInitBgs: @ 0x080DF8B0 + push {r4, lr} + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _080DF960 + movs r0, #0 + movs r2, #4 + bl InitBgsFromTemplates + ldr r4, _080DF964 + ldr r1, [r4] + movs r0, #0x80 + lsls r0, r0, #4 + adds r1, r1, r0 + movs r0, #1 + bl SetBgTilemapBuffer + ldr r1, [r4] + movs r0, #0xc0 + lsls r0, r0, #5 + adds r1, r1, r0 + movs r0, #2 + bl SetBgTilemapBuffer + ldr r1, [r4] + movs r0, #0x80 + lsls r0, r0, #5 + adds r1, r1, r0 + movs r0, #3 + bl SetBgTilemapBuffer + movs r0, #0x10 + movs r1, #0 + bl SetGpuReg + movs r0, #0x12 + movs r1, #0 + bl SetGpuReg + movs r0, #0x14 + movs r1, #0 + bl SetGpuReg + movs r0, #0x16 + movs r1, #0 + bl SetGpuReg + movs r0, #0x18 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1a + movs r1, #0 + bl SetGpuReg + movs r0, #0x1c + movs r1, #0 + bl SetGpuReg + movs r0, #0x1e + movs r1, #0 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DF960: .4byte 0x085629E4 +_080DF964: .4byte 0x02039C10 + thumb_func_end BuyMenuInitBgs + + thumb_func_start BuyMenuDecompressBgGraphics +BuyMenuDecompressBgGraphics: @ 0x080DF968 + push {lr} + sub sp, #4 + ldr r1, _080DF998 + movs r2, #0xe8 + lsls r2, r2, #2 + ldr r3, _080DF99C + movs r0, #0 + str r0, [sp] + movs r0, #1 + bl decompress_and_copy_tile_data_to_vram + ldr r0, _080DF9A0 + ldr r1, _080DF9A4 + ldr r1, [r1] + bl LZDecompressVram + ldr r0, _080DF9A8 + movs r1, #0xc0 + movs r2, #0x20 + bl LoadCompressedPalette + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_080DF998: .4byte 0x08D9B1B4 +_080DF99C: .4byte 0x000003E3 +_080DF9A0: .4byte 0x08D9B2E8 +_080DF9A4: .4byte 0x02039C10 +_080DF9A8: .4byte 0x08D9B2C0 + thumb_func_end BuyMenuDecompressBgGraphics + + thumb_func_start BuyMenuInitWindows +BuyMenuInitWindows: @ 0x080DF9AC + push {lr} + ldr r0, _080DF9E4 + bl InitWindows + bl DeactivateAllTextPrinters + movs r0, #0 + movs r1, #1 + movs r2, #0xd0 + bl LoadUserWindowBorderGfx + movs r0, #0 + movs r1, #0xa + movs r2, #0xe0 + bl LoadMessageBoxGfx + movs r0, #0 + bl PutWindowTilemap + movs r0, #1 + bl PutWindowTilemap + movs r0, #2 + bl PutWindowTilemap + pop {r0} + bx r0 + .align 2, 0 +_080DF9E4: .4byte 0x085629F4 + thumb_func_end BuyMenuInitWindows + + thumb_func_start BuyMenuPrint +BuyMenuPrint: @ 0x080DF9E8 + push {r4, r5, r6, lr} + sub sp, #0x14 + ldr r6, [sp, #0x24] + ldr r5, [sp, #0x28] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r4, #0 + str r4, [sp] + str r4, [sp, #4] + lsls r4, r5, #1 + adds r4, r4, r5 + ldr r5, _080DFA28 + adds r4, r4, r5 + str r4, [sp, #8] + lsls r6, r6, #0x18 + asrs r6, r6, #0x18 + str r6, [sp, #0xc] + str r1, [sp, #0x10] + movs r1, #1 + bl AddTextPrinterParameterized4 + add sp, #0x14 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080DFA28: .4byte 0x08562A34 + thumb_func_end BuyMenuPrint + + thumb_func_start BuyMenuDisplayMessage +BuyMenuDisplayMessage: @ 0x080DFA2C + push {r4, r5, r6, lr} + sub sp, #0x10 + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl GetPlayerTextSpeedDelay + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + str r1, [sp] + str r0, [sp, #4] + str r5, [sp, #8] + str r6, [sp, #0xc] + adds r0, r4, #0 + movs r1, #5 + movs r2, #0xa + movs r3, #0xe + bl DisplayMessageAndContinueTask + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + add sp, #0x10 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BuyMenuDisplayMessage + + thumb_func_start BuyMenuDrawGraphics +BuyMenuDrawGraphics: @ 0x080DFA68 + push {lr} + bl BuyMenuDrawMapGraphics + bl BuyMenuCopyMenuBgToBg1TilemapBuffer + movs r0, #0x13 + movs r1, #0xb + bl AddMoneyLabelObject + ldr r0, _080DFAB0 + ldr r0, [r0] + movs r1, #0x92 + lsls r1, r1, #3 + adds r0, r0, r1 + bl GetMoney + adds r3, r0, #0 + movs r0, #0 + movs r1, #1 + movs r2, #0xd + bl PrintMoneyAmount + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + movs r0, #3 + bl schedule_bg_copy_tilemap_to_vram + pop {r0} + bx r0 + .align 2, 0 +_080DFAB0: .4byte 0x03005AEC + thumb_func_end BuyMenuDrawGraphics + + thumb_func_start BuyMenuDrawMapGraphics +BuyMenuDrawMapGraphics: @ 0x080DFAB4 + push {lr} + bl BuyMenuCollectEventObjectData + bl BuyMenuDrawEventObjects + bl BuyMenuDrawMapBg + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BuyMenuDrawMapGraphics + + thumb_func_start BuyMenuDrawMapBg +BuyMenuDrawMapBg: @ 0x080DFAC8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r0, _080DFB48 + ldr r0, [r0] + mov sb, r0 + mov r4, sp + adds r4, #2 + mov r0, sp + adds r1, r4, #0 + bl GetXYCoordsOneStepInFrontOfPlayer + mov r1, sp + mov r0, sp + ldrh r0, [r0] + subs r0, #4 + strh r0, [r1] + ldrh r0, [r4] + subs r0, #4 + strh r0, [r4] + movs r1, #0 + mov sl, r4 +_080DFAFA: + movs r4, #0 + lsls r7, r1, #0x10 + asrs r0, r7, #0x10 + mov r8, r0 +_080DFB02: + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + lsls r4, r4, #0x10 + asrs r5, r4, #0x10 + adds r0, r0, r5 + mov r2, sl + movs r3, #0 + ldrsh r1, [r2, r3] + add r1, r8 + bl MapGridGetMetatileIdAt + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r0, r5, #0 + mov r1, r8 + bl BuyMenuCheckForOverlapWithMenuBg + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080DFB4C + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + adds r0, r0, r5 + mov r2, sl + movs r3, #0 + ldrsh r1, [r2, r3] + add r1, r8 + bl MapGridGetMetatileLayerTypeAt + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + b _080DFB4E + .align 2, 0 +_080DFB48: .4byte 0x02036FB8 +_080DFB4C: + movs r5, #1 +_080DFB4E: + ldr r0, _080DFB6C + cmp r6, r0 + bhi _080DFB70 + asrs r0, r4, #0x10 + mov r2, sb + ldr r1, [r2, #0x10] + lsls r3, r6, #4 + ldr r2, [r1, #0xc] + adds r2, r2, r3 + asrs r1, r7, #0x10 + adds r3, r5, #0 + bl BuyMenuDrawMapMetatile + b _080DFB88 + .align 2, 0 +_080DFB6C: .4byte 0x000001FF +_080DFB70: + asrs r0, r4, #0x10 + mov r3, sb + ldr r2, [r3, #0x14] + ldr r3, _080DFBB0 + adds r1, r6, r3 + lsls r1, r1, #4 + ldr r2, [r2, #0xc] + adds r2, r2, r1 + asrs r1, r7, #0x10 + adds r3, r5, #0 + bl BuyMenuDrawMapMetatile +_080DFB88: + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r4, r1 + lsrs r4, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xe + ble _080DFB02 + adds r0, r7, r1 + lsrs r1, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #9 + ble _080DFAFA + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DFBB0: .4byte 0xFFFFFE00 + thumb_func_end BuyMenuDrawMapBg + + thumb_func_start BuyMenuDrawMapMetatile +BuyMenuDrawMapMetatile: @ 0x080DFBB4 + push {r4, r5, r6, r7, lr} + adds r7, r2, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r2, r3, #0 + lsls r0, r0, #0x11 + lsrs r5, r0, #0x10 + lsls r1, r1, #0x16 + lsrs r1, r1, #0x10 + cmp r3, #1 + beq _080DFC04 + cmp r3, #1 + bgt _080DFBD4 + cmp r3, #0 + beq _080DFBDA + b _080DFC6C +_080DFBD4: + cmp r2, #2 + beq _080DFC3C + b _080DFC6C +_080DFBDA: + ldr r6, _080DFC00 + ldr r0, [r6] + movs r2, #0xc0 + lsls r2, r2, #5 + adds r0, r0, r2 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + lsls r4, r1, #0x10 + asrs r4, r4, #0x10 + adds r1, r5, #0 + adds r2, r4, #0 + adds r3, r7, #0 + bl BuyMenuDrawMapMetatileLayer + ldr r0, [r6] + movs r1, #0x80 + lsls r1, r1, #4 + b _080DFC26 + .align 2, 0 +_080DFC00: .4byte 0x02039C10 +_080DFC04: + ldr r6, _080DFC38 + ldr r0, [r6] + movs r2, #0x80 + lsls r2, r2, #5 + adds r0, r0, r2 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + lsls r4, r1, #0x10 + asrs r4, r4, #0x10 + adds r1, r5, #0 + adds r2, r4, #0 + adds r3, r7, #0 + bl BuyMenuDrawMapMetatileLayer + ldr r0, [r6] + movs r1, #0xc0 + lsls r1, r1, #5 +_080DFC26: + adds r0, r0, r1 + adds r3, r7, #0 + adds r3, #8 + adds r1, r5, #0 + adds r2, r4, #0 + bl BuyMenuDrawMapMetatileLayer + b _080DFC6C + .align 2, 0 +_080DFC38: .4byte 0x02039C10 +_080DFC3C: + ldr r6, _080DFC74 + ldr r0, [r6] + movs r2, #0x80 + lsls r2, r2, #5 + adds r0, r0, r2 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + lsls r4, r1, #0x10 + asrs r4, r4, #0x10 + adds r1, r5, #0 + adds r2, r4, #0 + adds r3, r7, #0 + bl BuyMenuDrawMapMetatileLayer + ldr r0, [r6] + movs r1, #0x80 + lsls r1, r1, #4 + adds r0, r0, r1 + adds r3, r7, #0 + adds r3, #8 + adds r1, r5, #0 + adds r2, r4, #0 + bl BuyMenuDrawMapMetatileLayer +_080DFC6C: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DFC74: .4byte 0x02039C10 + thumb_func_end BuyMenuDrawMapMetatile + + thumb_func_start BuyMenuDrawMapMetatileLayer +BuyMenuDrawMapMetatileLayer: @ 0x080DFC78 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r1, r1, r2 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r3] + strh r0, [r1] + ldrh r0, [r3, #2] + strh r0, [r1, #2] + adds r2, r1, #0 + adds r2, #0x40 + ldrh r0, [r3, #4] + strh r0, [r2] + adds r1, #0x42 + ldrh r0, [r3, #6] + strh r0, [r1] + bx lr + .align 2, 0 + thumb_func_end BuyMenuDrawMapMetatileLayer + + thumb_func_start BuyMenuCollectEventObjectData +BuyMenuCollectEventObjectData: @ 0x080DFCA0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + movs r0, #0 + mov r8, r0 + mov r4, sp + adds r4, #2 + mov r0, sp + adds r1, r4, #0 + bl GetXYCoordsOneStepInFrontOfPlayer + movs r7, #0 + ldr r5, _080DFD94 + ldr r3, _080DFD98 + movs r2, #0x10 +_080DFCC4: + ldr r1, [r5] + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #1 + adds r1, r1, r3 + adds r1, r1, r0 + strh r2, [r1] + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #0xf + bls _080DFCC4 + movs r7, #0 + str r4, [sp, #8] + ldr r1, _080DFD94 + mov sb, r1 + mov r2, sp + str r2, [sp, #4] +_080DFCE8: + movs r3, #0 + adds r4, r7, #1 + str r4, [sp, #0xc] +_080DFCEE: + ldr r1, _080DFD9C + adds r0, r3, r1 + ldr r2, [sp, #4] + ldrh r2, [r2] + adds r0, r0, r2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldr r4, _080DFDA0 + adds r1, r7, r4 + ldr r2, [sp, #8] + ldrh r2, [r2] + adds r1, r1, r2 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + str r3, [sp, #0x10] + bl GetEventObjectIdByXY + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r3, [sp, #0x10] + cmp r6, #0x10 + beq _080DFE06 + mov r4, sb + ldr r1, [r4] + mov r0, r8 + lsls r4, r0, #2 + adds r0, r4, r0 + lsls r5, r0, #1 + ldr r2, _080DFD98 + adds r0, r1, r2 + adds r0, r0, r5 + movs r2, #0 + mov sl, r2 + strh r6, [r0] + ldr r2, _080DFDA4 + adds r0, r1, r2 + adds r0, r0, r5 + strh r3, [r0] + ldr r0, _080DFDA8 + adds r1, r1, r0 + adds r1, r1, r5 + strh r7, [r1] + ldr r1, [sp, #4] + movs r2, #0 + ldrsh r0, [r1, r2] + subs r1, r3, #4 + adds r0, r0, r1 + ldr r1, [sp, #8] + movs r2, #0 + ldrsh r1, [r1, r2] + mov ip, r1 + subs r1, r7, #2 + add r1, ip + str r3, [sp, #0x10] + bl MapGridGetMetatileLayerTypeAt + mov r1, sb + ldr r2, [r1] + ldr r1, _080DFDAC + adds r1, r1, r2 + mov ip, r1 + add ip, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, ip + strh r0, [r1] + ldr r1, _080DFDB0 + lsls r0, r6, #3 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + ldr r3, [sp, #0x10] + cmp r0, #2 + beq _080DFDC8 + cmp r0, #2 + bgt _080DFDB4 + cmp r0, #1 + beq _080DFDBA + b _080DFDE8 + .align 2, 0 +_080DFD94: .4byte 0x02039C10 +_080DFD98: .4byte 0x00002010 +_080DFD9C: .4byte 0x0000FFFC +_080DFDA0: .4byte 0x0000FFFE +_080DFDA4: .4byte 0x00002012 +_080DFDA8: .4byte 0x00002014 +_080DFDAC: .4byte 0x00002018 +_080DFDB0: .4byte 0x02036FF0 +_080DFDB4: + cmp r0, #3 + beq _080DFDD8 + b _080DFDE8 +_080DFDBA: + ldr r4, _080DFDC4 + adds r0, r2, r4 + adds r0, r0, r5 + mov r1, sl + b _080DFDFA + .align 2, 0 +_080DFDC4: .4byte 0x00002016 +_080DFDC8: + ldr r4, _080DFDD4 + adds r0, r2, r4 + adds r0, r0, r5 + movs r1, #1 + b _080DFDFA + .align 2, 0 +_080DFDD4: .4byte 0x00002016 +_080DFDD8: + ldr r1, _080DFDE4 + adds r0, r2, r1 + adds r0, r0, r5 + movs r1, #2 + b _080DFDFA + .align 2, 0 +_080DFDE4: .4byte 0x00002016 +_080DFDE8: + mov r2, sb + ldr r0, [r2] + mov r2, r8 + adds r1, r4, r2 + lsls r1, r1, #1 + ldr r4, _080DFE30 + adds r0, r0, r4 + adds r0, r0, r1 + movs r1, #3 +_080DFDFA: + strh r1, [r0] + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 +_080DFE06: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #6 + bhi _080DFE12 + b _080DFCEE +_080DFE12: + ldr r1, [sp, #0xc] + lsls r0, r1, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #4 + bhi _080DFE1E + b _080DFCE8 +_080DFE1E: + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DFE30: .4byte 0x00002016 + thumb_func_end BuyMenuCollectEventObjectData + + thumb_func_start BuyMenuDrawEventObjects +BuyMenuDrawEventObjects: @ 0x080DFE34 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + movs r7, #0 + ldr r0, _080DFF38 + mov r8, r0 + ldr r1, _080DFF3C + mov sl, r1 + ldr r2, _080DFF40 + mov sb, r2 +_080DFE4E: + mov r3, r8 + ldr r0, [r3] + lsls r1, r7, #2 + adds r1, r1, r7 + lsls r5, r1, #1 + ldr r4, _080DFF44 + adds r0, r0, r4 + adds r1, r0, r5 + movs r2, #0 + ldrsh r0, [r1, r2] + cmp r0, #0x10 + beq _080DFF1C + adds r1, r0, #0 + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sl + ldrb r0, [r0, #5] + bl GetEventObjectGraphicsInfo + mov r4, r8 + ldr r3, [r4] + ldr r2, _080DFF44 + adds r1, r3, r2 + adds r1, r1, r5 + movs r4, #0 + ldrsh r2, [r1, r4] + lsls r1, r2, #3 + adds r1, r1, r2 + lsls r1, r1, #2 + add r1, sl + ldrb r4, [r1, #5] + ldr r2, _080DFF48 + adds r1, r3, r2 + adds r1, r1, r5 + ldrh r2, [r1] + lsls r2, r2, #4 + adds r2, #8 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + ldr r1, _080DFF4C + adds r3, r3, r1 + adds r3, r3, r5 + ldrh r3, [r3] + lsls r3, r3, #4 + movs r1, #0xa + ldrsh r0, [r0, r1] + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + subs r0, #0x30 + subs r3, r3, r0 + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + movs r0, #2 + str r0, [sp] + adds r0, r4, #0 + ldr r1, _080DFF50 + bl AddPseudoEventObject + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r6, r4, #0 + ldr r2, _080DFF44 + adds r1, r5, r2 + mov r3, r8 + ldr r0, [r3] + adds r0, r0, r1 + bl BuyMenuCheckIfEventObjectOverlapsMenuBg + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080DFF04 + lsls r2, r4, #4 + adds r2, r2, r4 + lsls r2, r2, #2 + add r2, sb + adds r2, #0x42 + ldrb r0, [r2] + movs r4, #0x40 + rsbs r4, r4, #0 + adds r1, r4, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + movs r1, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2] +_080DFF04: + lsls r0, r6, #4 + adds r0, r0, r6 + lsls r0, r0, #2 + add r0, sb + mov r2, r8 + ldr r1, [r2] + ldr r3, _080DFF54 + adds r1, r1, r3 + adds r1, r1, r5 + ldrb r1, [r1] + bl StartSpriteAnim +_080DFF1C: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #0xf + bls _080DFE4E + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080DFF38: .4byte 0x02039C10 +_080DFF3C: .4byte 0x02036FF0 +_080DFF40: .4byte 0x020205AC +_080DFF44: .4byte 0x00002010 +_080DFF48: .4byte 0x00002012 +_080DFF4C: .4byte 0x00002014 +_080DFF50: .4byte 0x08007141 +_080DFF54: .4byte 0x00002016 + thumb_func_end BuyMenuDrawEventObjects + + thumb_func_start BuyMenuCheckIfEventObjectOverlapsMenuBg +BuyMenuCheckIfEventObjectOverlapsMenuBg: @ 0x080DFF58 + push {r4, lr} + adds r4, r0, #0 + movs r1, #2 + ldrsh r0, [r4, r1] + movs r2, #4 + ldrsh r1, [r4, r2] + adds r1, #2 + bl BuyMenuCheckForOverlapWithMenuBg + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080DFF7C + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _080DFF7C + movs r0, #1 + b _080DFF7E +_080DFF7C: + movs r0, #0 +_080DFF7E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end BuyMenuCheckIfEventObjectOverlapsMenuBg + + thumb_func_start BuyMenuCopyMenuBgToBg1TilemapBuffer +BuyMenuCopyMenuBgToBg1TilemapBuffer: @ 0x080DFF84 + push {r4, r5, r6, lr} + ldr r0, _080DFFC0 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #4 + adds r4, r0, r1 + adds r3, r0, #0 + movs r1, #0 + ldr r0, _080DFFC4 + adds r6, r0, #0 + ldr r5, _080DFFC8 +_080DFF9A: + lsls r0, r1, #0x10 + asrs r2, r0, #0x10 + lsls r1, r2, #1 + adds r0, r1, r3 + ldrh r0, [r0] + cmp r0, #0 + beq _080DFFAE + adds r1, r1, r4 + adds r0, r0, r6 + strh r0, [r1] +_080DFFAE: + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, r5 + ble _080DFF9A + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080DFFC0: .4byte 0x02039C10 +_080DFFC4: .4byte 0x0000C3E3 +_080DFFC8: .4byte 0x000003FF + thumb_func_end BuyMenuCopyMenuBgToBg1TilemapBuffer + + thumb_func_start BuyMenuCheckForOverlapWithMenuBg +BuyMenuCheckForOverlapWithMenuBg: @ 0x080DFFCC + push {lr} + ldr r2, _080E0000 + ldr r2, [r2] + lsls r0, r0, #1 + lsls r1, r1, #6 + adds r1, r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r1] + cmp r0, #0 + bne _080E0004 + adds r0, r1, #0 + adds r0, #0x40 + ldrh r0, [r0] + cmp r0, #0 + bne _080E0004 + ldrh r0, [r1, #2] + cmp r0, #0 + bne _080E0004 + adds r0, r1, #0 + adds r0, #0x42 + ldrh r0, [r0] + cmp r0, #0 + bne _080E0004 + movs r0, #1 + b _080E0006 + .align 2, 0 +_080E0000: .4byte 0x02039C10 +_080E0004: + movs r0, #0 +_080E0006: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end BuyMenuCheckForOverlapWithMenuBg + + thumb_func_start Task_BuyMenu +Task_BuyMenu: @ 0x080E000C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _080E0058 + adds r4, r0, r1 + ldr r0, _080E005C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080E002E + b _080E01DA +_080E002E: + ldrb r0, [r4, #0xe] + bl ListMenu_ProcessInput + adds r5, r0, #0 + ldrb r0, [r4, #0xe] + ldr r7, _080E0060 + ldr r2, [r7] + ldr r3, _080E0064 + adds r1, r2, r3 + subs r3, #2 + adds r2, r2, r3 + bl ListMenuGetScrollAndRow + movs r0, #2 + rsbs r0, r0, #0 + cmp r5, r0 + beq _080E0068 + adds r0, #1 + cmp r5, r0 + bne _080E0076 + b _080E01DA + .align 2, 0 +_080E0058: .4byte 0x03005B68 +_080E005C: .4byte 0x02037C74 +_080E0060: .4byte 0x02039C10 +_080E0064: .4byte 0x00002008 +_080E0068: + movs r0, #5 + bl PlaySE + adds r0, r6, #0 + bl ExitBuyMenu + b _080E01DA +_080E0076: + movs r0, #5 + bl PlaySE + strh r5, [r4, #0xa] + movs r0, #2 + bl ClearWindowTilemap + bl BuyMenuRemoveScrollIndicatorArrows + ldrb r0, [r4, #0xe] + movs r1, #2 + bl BuyMenuPrintCursor + ldr r0, _080E00C0 + ldrb r0, [r0, #0xf] + cmp r0, #0 + bne _080E00C4 + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + bl sub_080D6CD4 + adds r4, r0, #0 + movs r0, #1 + bl GetPriceReduction + ldr r1, [r7] + movs r2, #0x80 + lsls r2, r2, #6 + adds r1, r1, r2 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + asrs r4, r0 + str r4, [r1] + b _080E00DA + .align 2, 0 +_080E00C0: .4byte 0x02039C00 +_080E00C4: + ldr r1, [r7] + movs r3, #0x80 + lsls r3, r3, #6 + adds r1, r1, r3 + ldr r2, _080E0104 + lsls r0, r5, #3 + subs r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0, #0x10] + str r0, [r1] +_080E00DA: + ldr r0, _080E0108 + ldr r0, [r0] + movs r1, #0x92 + lsls r1, r1, #3 + adds r0, r0, r1 + ldr r2, _080E010C + mov r8, r2 + ldr r1, [r2] + movs r7, #0x80 + lsls r7, r7, #6 + adds r1, r1, r7 + ldr r1, [r1] + bl IsEnoughMoney + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080E0118 + ldr r1, _080E0110 + ldr r2, _080E0114 + b _080E0170 + .align 2, 0 +_080E0104: .4byte 0x08580CD0 +_080E0108: .4byte 0x03005AEC +_080E010C: .4byte 0x02039C10 +_080E0110: .4byte 0x085C99B8 +_080E0114: .4byte 0x080E05ED +_080E0118: + ldr r4, _080E0158 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080E0180 + lsls r0, r5, #0x10 + lsrs r5, r0, #0x10 + ldr r1, _080E015C + adds r0, r5, #0 + bl CopyItemName + adds r0, r5, #0 + bl ItemId_GetImportance + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bne _080E016C + ldr r4, _080E0160 + adds r0, r5, #0 + bl ItemIdToBattleMoveId + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0xd + ldr r0, _080E0164 + adds r1, r1, r0 + adds r0, r4, #0 + bl StringCopy + ldr r1, _080E0168 + b _080E016E + .align 2, 0 +_080E0158: .4byte 0x02039C00 +_080E015C: .4byte 0x02021C40 +_080E0160: .4byte 0x02021C54 +_080E0164: .4byte 0x082EACC4 +_080E0168: .4byte 0x085C9903 +_080E016C: + ldr r1, _080E0178 +_080E016E: + ldr r2, _080E017C +_080E0170: + adds r0, r6, #0 + bl BuyMenuDisplayMessage + b _080E01DA + .align 2, 0 +_080E0178: .4byte 0x085C98EC +_080E017C: .4byte 0x080E01F1 +_080E0180: + ldr r0, _080E01B4 + lsls r1, r5, #3 + subs r1, r1, r5 + lsls r1, r1, #2 + ldr r2, _080E01B8 + adds r1, r1, r2 + bl StringCopy + ldr r0, _080E01BC + mov r3, r8 + ldr r1, [r3] + adds r1, r1, r7 + ldr r1, [r1] + movs r2, #0 + movs r3, #6 + bl ConvertIntToDecimalStringN + ldrb r0, [r4, #0xf] + cmp r0, #1 + bne _080E01C8 + ldr r0, _080E01C0 + ldr r1, _080E01C4 + bl StringExpandPlaceholders + b _080E01D0 + .align 2, 0 +_080E01B4: .4byte 0x02021C40 +_080E01B8: .4byte 0x08580CD1 +_080E01BC: .4byte 0x02021C54 +_080E01C0: .4byte 0x02021C7C +_080E01C4: .4byte 0x085C9936 +_080E01C8: + ldr r0, _080E01E4 + ldr r1, _080E01E8 + bl StringExpandPlaceholders +_080E01D0: + ldr r1, _080E01E4 + ldr r2, _080E01EC + adds r0, r6, #0 + bl BuyMenuDisplayMessage +_080E01DA: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E01E4: .4byte 0x02021C7C +_080E01E8: .4byte 0x085C994B +_080E01EC: .4byte 0x080E03F9 + thumb_func_end Task_BuyMenu + + thumb_func_start Task_BuyHowManyDialogueInit +Task_BuyHowManyDialogueInit: @ 0x080E01F0 + push {r4, r5, r6, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r5, r6, #2 + adds r5, r5, r6 + lsls r5, r5, #3 + ldr r0, _080E0290 + adds r5, r5, r0 + ldrh r0, [r5, #0xa] + bl CountTotalItemQuantityInBag + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + movs r0, #3 + movs r1, #0 + movs r2, #1 + movs r3, #0xd + bl DrawStdFrameWithCustomTileAndPalette + ldr r0, _080E0294 + adds r1, r4, #0 + movs r2, #1 + movs r3, #4 + bl ConvertIntToDecimalStringN + ldr r4, _080E0298 + ldr r1, _080E029C + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + movs r0, #3 + adds r1, r4, #0 + movs r2, #0 + movs r3, #2 + bl BuyMenuPrint + movs r0, #1 + strh r0, [r5, #2] + movs r0, #4 + movs r1, #0 + movs r2, #1 + movs r3, #0xd + bl DrawStdFrameWithCustomTileAndPalette + adds r0, r6, #0 + bl BuyMenuPrintItemQuantityAndPrice + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + ldr r0, _080E02A0 + ldr r0, [r0] + movs r1, #0x92 + lsls r1, r1, #3 + adds r0, r0, r1 + bl GetMoney + ldr r1, _080E02A4 + ldr r4, [r1] + movs r2, #0x80 + lsls r2, r2, #6 + adds r1, r4, r2 + ldr r1, [r1] + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0x63 + bls _080E02AC + ldr r0, _080E02A8 + adds r1, r4, r0 + movs r0, #0x63 + strb r0, [r1] + b _080E02B2 + .align 2, 0 +_080E0290: .4byte 0x03005B68 +_080E0294: .4byte 0x02021C40 +_080E0298: .4byte 0x02021C7C +_080E029C: .4byte 0x085C98D5 +_080E02A0: .4byte 0x03005AEC +_080E02A4: .4byte 0x02039C10 +_080E02A8: .4byte 0x0000200A +_080E02AC: + ldr r2, _080E02C8 + adds r0, r4, r2 + strb r1, [r0] +_080E02B2: + ldr r0, _080E02CC + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080E02D0 + str r0, [r1] + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080E02C8: .4byte 0x0000200A +_080E02CC: .4byte 0x03005B60 +_080E02D0: .4byte 0x080E02D5 + thumb_func_end Task_BuyHowManyDialogueInit + + thumb_func_start Task_BuyHowManyDialogueHandleInput +Task_BuyHowManyDialogueHandleInput: @ 0x080E02D4 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r4, r6, #0 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _080E0330 + adds r5, r0, r1 + adds r0, r5, #2 + ldr r7, _080E0334 + ldr r1, [r7] + ldr r2, _080E0338 + adds r1, r1, r2 + ldrb r1, [r1] + bl AdjustQuantityAccordingToDPadInput + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080E033C + ldrh r0, [r5, #0xa] + bl sub_080D6CD4 + adds r4, r0, #0 + movs r0, #1 + bl GetPriceReduction + ldr r1, [r7] + movs r2, #0x80 + lsls r2, r2, #6 + adds r1, r1, r2 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + asrs r4, r0 + movs r2, #2 + ldrsh r0, [r5, r2] + muls r0, r4, r0 + str r0, [r1] + adds r0, r6, #0 + bl BuyMenuPrintItemQuantityAndPrice + b _080E03F0 + .align 2, 0 +_080E0330: .4byte 0x03005B68 +_080E0334: .4byte 0x02039C10 +_080E0338: .4byte 0x0000200A +_080E033C: + ldr r0, _080E03A8 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080E03C0 + movs r0, #5 + bl PlaySE + movs r0, #4 + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + movs r0, #3 + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + movs r0, #4 + bl ClearWindowTilemap + movs r0, #3 + bl ClearWindowTilemap + movs r0, #1 + bl PutWindowTilemap + ldrh r0, [r5, #0xa] + ldr r1, _080E03AC + bl CopyItemName + ldr r0, _080E03B0 + movs r2, #2 + ldrsh r1, [r5, r2] + movs r2, #0 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r0, _080E03B4 + ldr r1, [r7] + movs r2, #0x80 + lsls r2, r2, #6 + adds r1, r1, r2 + ldr r1, [r1] + movs r2, #0 + movs r3, #6 + bl ConvertIntToDecimalStringN + ldr r1, _080E03B8 + ldr r2, _080E03BC + adds r0, r6, #0 + bl BuyMenuDisplayMessage + b _080E03F0 + .align 2, 0 +_080E03A8: .4byte 0x03002360 +_080E03AC: .4byte 0x02021C40 +_080E03B0: .4byte 0x02021C54 +_080E03B4: .4byte 0x02021C68 +_080E03B8: .4byte 0x085C991F +_080E03BC: .4byte 0x080E03F9 +_080E03C0: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080E03F0 + movs r0, #5 + bl PlaySE + movs r0, #4 + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + movs r0, #3 + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + movs r0, #4 + bl ClearWindowTilemap + movs r0, #3 + bl ClearWindowTilemap + adds r0, r4, #0 + bl BuyMenuReturnToItemList +_080E03F0: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Task_BuyHowManyDialogueHandleInput + + thumb_func_start BuyMenuConfirmPurchase +BuyMenuConfirmPurchase: @ 0x080E03F8 + push {lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080E0420 + movs r2, #0 + str r2, [sp] + movs r2, #1 + str r2, [sp, #4] + movs r2, #0xd + str r2, [sp, #8] + ldr r2, _080E0424 + str r2, [sp, #0xc] + movs r2, #1 + movs r3, #0 + bl CreateYesNoMenuWithCallbacks + add sp, #0x10 + pop {r0} + bx r0 + .align 2, 0 +_080E0420: .4byte 0x08562A2C +_080E0424: .4byte 0x0856298C + thumb_func_end BuyMenuConfirmPurchase + + thumb_func_start BuyMenuTryMakePurchase +BuyMenuTryMakePurchase: @ 0x080E0428 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r7, r5, #0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080E046C + adds r4, r0, r1 + movs r0, #1 + bl PutWindowTilemap + ldr r6, _080E0470 + ldrb r0, [r6, #0xf] + cmp r0, #0 + bne _080E048C + ldrh r0, [r4, #0xa] + ldrh r1, [r4, #2] + bl AddBagItem + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080E047C + ldr r1, _080E0474 + ldr r2, _080E0478 + adds r0, r5, #0 + bl BuyMenuDisplayMessage + adds r0, r5, #0 + bl RecordItemPurchase + b _080E04C6 + .align 2, 0 +_080E046C: .4byte 0x03005B68 +_080E0470: .4byte 0x02039C00 +_080E0474: .4byte 0x085C9962 +_080E0478: .4byte 0x080E04D5 +_080E047C: + ldr r1, _080E0484 + ldr r2, _080E0488 + b _080E04AC + .align 2, 0 +_080E0484: .4byte 0x085C99C8 +_080E0488: .4byte 0x080E05ED +_080E048C: + ldrb r0, [r4, #0xa] + bl DecorationAdd + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080E04BC + ldrb r0, [r6, #0xf] + cmp r0, #1 + bne _080E04A8 + ldr r1, _080E04A4 + b _080E04AA + .align 2, 0 +_080E04A4: .4byte 0x085C9976 +_080E04A8: + ldr r1, _080E04B4 +_080E04AA: + ldr r2, _080E04B8 +_080E04AC: + adds r0, r5, #0 + bl BuyMenuDisplayMessage + b _080E04C6 + .align 2, 0 +_080E04B4: .4byte 0x085C9998 +_080E04B8: .4byte 0x080E04D5 +_080E04BC: + ldr r1, _080E04CC + ldr r2, _080E04D0 + adds r0, r7, #0 + bl BuyMenuDisplayMessage +_080E04C6: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E04CC: .4byte 0x085C99DE +_080E04D0: .4byte 0x080E05ED + thumb_func_end BuyMenuTryMakePurchase + + thumb_func_start BuyMenuSubtractMoney +BuyMenuSubtractMoney: @ 0x080E04D4 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r0, #0x26 + bl IncrementGameStat + ldr r5, _080E0528 + ldr r0, [r5] + movs r4, #0x92 + lsls r4, r4, #3 + adds r0, r0, r4 + ldr r1, _080E052C + ldr r1, [r1] + movs r2, #0x80 + lsls r2, r2, #6 + adds r1, r1, r2 + ldr r1, [r1] + bl RemoveMoney + movs r0, #0x5f + bl PlaySE + ldr r0, [r5] + adds r0, r0, r4 + bl GetMoney + adds r1, r0, #0 + movs r0, #0 + movs r2, #0 + bl PrintMoneyAmountInMoneyBox + ldr r0, _080E0530 + ldrb r0, [r0, #0xf] + cmp r0, #0 + bne _080E053C + ldr r0, _080E0534 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080E0538 + b _080E0548 + .align 2, 0 +_080E0528: .4byte 0x03005AEC +_080E052C: .4byte 0x02039C10 +_080E0530: .4byte 0x02039C00 +_080E0534: .4byte 0x03005B60 +_080E0538: .4byte 0x080E0559 +_080E053C: + ldr r0, _080E0550 + lsls r1, r6, #2 + adds r1, r1, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _080E0554 +_080E0548: + str r0, [r1] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080E0550: .4byte 0x03005B60 +_080E0554: .4byte 0x080E05C5 + thumb_func_end BuyMenuSubtractMoney + + thumb_func_start Task_ReturnToItemListAfterItemPurchase +Task_ReturnToItemListAfterItemPurchase: @ 0x080E0558 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _080E05A8 + adds r5, r0, r1 + ldr r0, _080E05AC + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _080E05BE + movs r0, #5 + bl PlaySE + movs r1, #0xa + ldrsh r0, [r5, r1] + cmp r0, #4 + bne _080E05B8 + movs r1, #2 + ldrsh r0, [r5, r1] + cmp r0, #9 + ble _080E05B8 + movs r0, #0xc + movs r1, #1 + bl AddBagItem + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080E05B8 + ldr r1, _080E05B0 + ldr r2, _080E05B4 + adds r0, r4, #0 + bl BuyMenuDisplayMessage + b _080E05BE + .align 2, 0 +_080E05A8: .4byte 0x03005B68 +_080E05AC: .4byte 0x03002360 +_080E05B0: .4byte 0x085C9A2D +_080E05B4: .4byte 0x080E05ED +_080E05B8: + adds r0, r4, #0 + bl BuyMenuReturnToItemList +_080E05BE: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end Task_ReturnToItemListAfterItemPurchase + + thumb_func_start Task_ReturnToItemListAfterDecorationPurchase +Task_ReturnToItemListAfterDecorationPurchase: @ 0x080E05C4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080E05E8 + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _080E05E2 + movs r0, #5 + bl PlaySE + adds r0, r4, #0 + bl BuyMenuReturnToItemList +_080E05E2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E05E8: .4byte 0x03002360 + thumb_func_end Task_ReturnToItemListAfterDecorationPurchase + + thumb_func_start BuyMenuReturnToItemList +BuyMenuReturnToItemList: @ 0x080E05EC + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r5, _080E0630 + adds r6, r4, r5 + movs r0, #5 + movs r1, #0 + bl ClearDialogWindowAndFrameToTransparent + ldrb r0, [r6, #0xe] + movs r1, #1 + bl BuyMenuPrintCursor + movs r0, #1 + bl PutWindowTilemap + movs r0, #2 + bl PutWindowTilemap + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + bl BuyMenuAddScrollIndicatorArrows + subs r5, #8 + adds r4, r4, r5 + ldr r0, _080E0634 + str r0, [r4] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080E0630: .4byte 0x03005B68 +_080E0634: .4byte 0x080E000D + thumb_func_end BuyMenuReturnToItemList + + thumb_func_start BuyMenuPrintItemQuantityAndPrice +BuyMenuPrintItemQuantityAndPrice: @ 0x080E0638 + push {r4, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _080E06A0 + adds r4, r4, r0 + movs r0, #4 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r0, _080E06A4 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r0, r1 + ldr r3, [r0] + movs r0, #0xff + str r0, [sp] + movs r0, #4 + movs r1, #0x20 + movs r2, #2 + bl PrintMoneyAmountInMoneyBoxWithBorder + ldr r0, _080E06A8 + movs r2, #2 + ldrsh r1, [r4, r2] + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r4, _080E06AC + ldr r1, _080E06B0 + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + movs r0, #4 + adds r1, r4, #0 + movs r2, #0 + movs r3, #2 + bl BuyMenuPrint + add sp, #8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E06A0: .4byte 0x03005B68 +_080E06A4: .4byte 0x02039C10 +_080E06A8: .4byte 0x02021C40 +_080E06AC: .4byte 0x02021C7C +_080E06B0: .4byte 0x085C943C + thumb_func_end BuyMenuPrintItemQuantityAndPrice + + thumb_func_start ExitBuyMenu +ExitBuyMenu: @ 0x080E06B4 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _080E06EC + ldr r0, _080E06F0 + str r0, [r1] + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _080E06F4 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _080E06F8 + str r1, [r0] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E06EC: .4byte 0x03005B0C +_080E06F0: .4byte 0x080DF22D +_080E06F4: .4byte 0x03005B60 +_080E06F8: .4byte 0x080E06FD + thumb_func_end ExitBuyMenu + + thumb_func_start Task_ExitBuyMenu +Task_ExitBuyMenu: @ 0x080E06FC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080E0728 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080E0722 + bl RemoveMoneyLabelObject + bl BuyMenuFreeMemory + ldr r0, _080E072C + bl SetMainCallback2 + adds r0, r4, #0 + bl DestroyTask +_080E0722: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E0728: .4byte 0x02037C74 +_080E072C: .4byte 0x08085A31 + thumb_func_end Task_ExitBuyMenu + + thumb_func_start ClearItemPurchases +ClearItemPurchases: @ 0x080E0730 + push {lr} + ldr r0, _080E0748 + movs r1, #0 + strb r1, [r0] + ldr r0, _080E074C + movs r1, #0 + movs r2, #0xc + bl memset + pop {r0} + bx r0 + .align 2, 0 +_080E0748: .4byte 0x02039C1C +_080E074C: .4byte 0x02039C20 + thumb_func_end ClearItemPurchases + + thumb_func_start RecordItemPurchase +RecordItemPurchase: @ 0x080E0750 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080E078C + adds r4, r1, r0 + movs r3, #0 + ldr r5, _080E0790 + adds r6, r5, #0 +_080E0766: + lsls r0, r3, #2 + adds r2, r0, r6 + ldrh r1, [r2] + movs r7, #0xa + ldrsh r0, [r4, r7] + cmp r1, r0 + bne _080E079C + ldrh r0, [r2, #2] + cmp r0, #0 + beq _080E079C + adds r1, r0, #0 + movs r3, #2 + ldrsh r0, [r4, r3] + adds r0, r1, r0 + cmp r0, #0xff + ble _080E0794 + movs r0, #0xff + strh r0, [r2, #2] + b _080E07C6 + .align 2, 0 +_080E078C: .4byte 0x03005B68 +_080E0790: .4byte 0x02039C20 +_080E0794: + ldrh r0, [r4, #2] + adds r0, r1, r0 + strh r0, [r2, #2] + b _080E07C6 +_080E079C: + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #2 + bls _080E0766 + ldr r2, _080E07CC + ldrb r0, [r2] + cmp r0, #2 + bhi _080E07C6 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrh r1, [r4, #0xa] + strh r1, [r0] + ldrb r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r5 + ldrh r1, [r4, #2] + strh r1, [r0, #2] + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] +_080E07C6: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080E07CC: .4byte 0x02039C1C + thumb_func_end RecordItemPurchase + + thumb_func_start CreatePokemartMenu +CreatePokemartMenu: @ 0x080E07D0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + bl CB2_BuyMenu + adds r0, r4, #0 + bl SetShopItemsForSale + bl ClearItemPurchases + ldr r0, _080E07F0 + bl SetShopMenuCallback + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E07F0: .4byte 0x080988C5 + thumb_func_end CreatePokemartMenu + + thumb_func_start CreateDecorationShop1Menu +CreateDecorationShop1Menu: @ 0x080E07F4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + bl CB2_BuyMenu + adds r0, r4, #0 + bl SetShopItemsForSale + ldr r0, _080E0810 + bl SetShopMenuCallback + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E0810: .4byte 0x080988C5 + thumb_func_end CreateDecorationShop1Menu + + thumb_func_start CreateDecorationShop2Menu +CreateDecorationShop2Menu: @ 0x080E0814 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + bl CB2_BuyMenu + adds r0, r4, #0 + bl SetShopItemsForSale + ldr r0, _080E0830 + bl SetShopMenuCallback + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E0830: .4byte 0x080988C5 + thumb_func_end CreateDecorationShop2Menu + diff --git a/asm/siirtc.s b/asm/siirtc.s index fe8d64b..07504eb 100644 --- a/asm/siirtc.s +++ b/asm/siirtc.s @@ -1,13 +1,13 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - .text - .syntax unified +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified thumb_func_start SiiRtcUnprotect SiiRtcUnprotect: @ 0x082906D8 push {r7, lr} mov r7, sp - bl sub_08290F78 + bl EnableGpioPortRead ldr r0, _082906EC movs r1, #0 strb r1, [r0] @@ -15,14 +15,14 @@ SiiRtcUnprotect: @ 0x082906D8 pop {r0} bx r0 .align 2, 0 -_082906EC: .4byte gUnknown_3001A76 +_082906EC: .4byte 0x03001A76 thumb_func_end SiiRtcUnprotect thumb_func_start SiiRtcProtect SiiRtcProtect: @ 0x082906F0 push {r7, lr} mov r7, sp - bl sub_08290F8C + bl DisableGpioPortRead ldr r0, _08290704 movs r1, #1 strb r1, [r0] @@ -30,7 +30,7 @@ SiiRtcProtect: @ 0x082906F0 pop {r0} bx r0 .align 2, 0 -_08290704: .4byte gUnknown_3001A76 +_08290704: .4byte 0x03001A76 thumb_func_end SiiRtcProtect thumb_func_start SiiRtcProbe @@ -160,7 +160,7 @@ SiiRtcReset: @ 0x082907E0 movs r0, #0 b _0829085C .align 2, 0 -_082907F4: .4byte gUnknown_3001A76 +_082907F4: .4byte 0x03001A76 _082907F8: ldr r0, _08290850 movs r1, #1 @@ -175,7 +175,7 @@ _082907F8: movs r1, #7 strh r1, [r0] movs r0, #0x60 - bl sub_08290DA8 + bl WriteCommand ldr r0, _08290854 movs r1, #1 strh r1, [r0] @@ -205,7 +205,7 @@ _082907F8: adds r0, r1, #0 b _0829085C .align 2, 0 -_08290850: .4byte gUnknown_3001A76 +_08290850: .4byte 0x03001A76 _08290854: .4byte 0x080000C4 _08290858: .4byte 0x080000C6 _0829085C: @@ -228,7 +228,7 @@ SiiRtcGetStatus: @ 0x08290864 movs r0, #0 b _08290928 .align 2, 0 -_08290878: .4byte gUnknown_3001A76 +_08290878: .4byte 0x03001A76 _0829087C: ldr r0, _0829091C movs r1, #1 @@ -243,11 +243,11 @@ _0829087C: movs r1, #7 strh r1, [r0] movs r0, #0x63 - bl sub_08290DA8 + bl WriteCommand ldr r0, _08290924 movs r1, #5 strh r1, [r0] - bl sub_08290EEC + bl ReadData adds r1, r7, #4 strb r0, [r1] ldr r0, [r7] @@ -309,7 +309,7 @@ _0829087C: movs r0, #1 b _08290928 .align 2, 0 -_0829091C: .4byte gUnknown_3001A76 +_0829091C: .4byte 0x03001A76 _08290920: .4byte 0x080000C4 _08290924: .4byte 0x080000C6 _08290928: @@ -332,7 +332,7 @@ SiiRtcSetStatus: @ 0x08290930 movs r0, #0 b _082909D0 .align 2, 0 -_08290944: .4byte gUnknown_3001A76 +_08290944: .4byte 0x03001A76 _08290948: ldr r0, _082909C4 movs r1, #1 @@ -377,11 +377,11 @@ _08290948: movs r1, #7 strh r1, [r0] movs r0, #0x62 - bl sub_08290DA8 + bl WriteCommand adds r0, r7, #4 ldrb r1, [r0] adds r0, r1, #0 - bl sub_08290E4C + bl WriteData ldr r0, _082909C8 movs r1, #1 strh r1, [r0] @@ -394,7 +394,7 @@ _08290948: movs r0, #1 b _082909D0 .align 2, 0 -_082909C4: .4byte gUnknown_3001A76 +_082909C4: .4byte 0x03001A76 _082909C8: .4byte 0x080000C4 _082909CC: .4byte 0x080000C6 _082909D0: @@ -417,7 +417,7 @@ SiiRtcGetDateTime: @ 0x082909D8 movs r0, #0 b _08290A80 .align 2, 0 -_082909EC: .4byte gUnknown_3001A76 +_082909EC: .4byte 0x03001A76 _082909F0: ldr r0, _08290A24 movs r1, #1 @@ -432,7 +432,7 @@ _082909F0: movs r1, #7 strh r1, [r0] movs r0, #0x65 - bl sub_08290DA8 + bl WriteCommand ldr r0, _08290A2C movs r1, #5 strh r1, [r0] @@ -446,11 +446,11 @@ _08290A1A: bls _08290A30 b _08290A4E .align 2, 0 -_08290A24: .4byte gUnknown_3001A76 +_08290A24: .4byte 0x03001A76 _08290A28: .4byte 0x080000C4 _08290A2C: .4byte 0x080000C6 _08290A30: - bl sub_08290EEC + bl ReadData adds r1, r7, #4 ldrb r2, [r1] ldr r3, [r7] @@ -488,7 +488,7 @@ _08290A4E: b _08290A80 .align 2, 0 _08290A78: .4byte 0x080000C4 -_08290A7C: .4byte gUnknown_3001A76 +_08290A7C: .4byte 0x03001A76 _08290A80: add sp, #8 pop {r7} @@ -509,7 +509,7 @@ SiiRtcSetDateTime: @ 0x08290A88 movs r0, #0 b _08290B1C .align 2, 0 -_08290A9C: .4byte gUnknown_3001A76 +_08290A9C: .4byte 0x03001A76 _08290AA0: ldr r0, _08290AD0 movs r1, #1 @@ -524,7 +524,7 @@ _08290AA0: movs r1, #7 strh r1, [r0] movs r0, #0x64 - bl sub_08290DA8 + bl WriteCommand adds r0, r7, #4 movs r1, #0 strb r1, [r0] @@ -535,7 +535,7 @@ _08290AC4: bls _08290ADC b _08290AFC .align 2, 0 -_08290AD0: .4byte gUnknown_3001A76 +_08290AD0: .4byte 0x03001A76 _08290AD4: .4byte 0x080000C4 _08290AD8: .4byte 0x080000C6 _08290ADC: @@ -545,7 +545,7 @@ _08290ADC: adds r0, r1, r2 ldrb r1, [r0] adds r0, r1, #0 - bl sub_08290E4C + bl WriteData adds r1, r7, #4 adds r0, r7, #4 adds r1, r7, #4 @@ -568,7 +568,7 @@ _08290AFC: b _08290B1C .align 2, 0 _08290B14: .4byte 0x080000C4 -_08290B18: .4byte gUnknown_3001A76 +_08290B18: .4byte 0x03001A76 _08290B1C: add sp, #8 pop {r7} @@ -589,7 +589,7 @@ SiiRtcGetTime: @ 0x08290B24 movs r0, #0 b _08290BD0 .align 2, 0 -_08290B38: .4byte gUnknown_3001A76 +_08290B38: .4byte 0x03001A76 _08290B3C: ldr r0, _08290B70 movs r1, #1 @@ -604,7 +604,7 @@ _08290B3C: movs r1, #7 strh r1, [r0] movs r0, #0x67 - bl sub_08290DA8 + bl WriteCommand ldr r0, _08290B78 movs r1, #5 strh r1, [r0] @@ -618,11 +618,11 @@ _08290B66: bls _08290B7C b _08290B9C .align 2, 0 -_08290B70: .4byte gUnknown_3001A76 +_08290B70: .4byte 0x03001A76 _08290B74: .4byte 0x080000C4 _08290B78: .4byte 0x080000C6 _08290B7C: - bl sub_08290EEC + bl ReadData adds r1, r7, #4 ldrb r2, [r1] ldr r3, [r7] @@ -661,7 +661,7 @@ _08290B9C: b _08290BD0 .align 2, 0 _08290BC8: .4byte 0x080000C4 -_08290BCC: .4byte gUnknown_3001A76 +_08290BCC: .4byte 0x03001A76 _08290BD0: add sp, #8 pop {r7} @@ -682,7 +682,7 @@ SiiRtcSetTime: @ 0x08290BD8 movs r0, #0 b _08290C6C .align 2, 0 -_08290BEC: .4byte gUnknown_3001A76 +_08290BEC: .4byte 0x03001A76 _08290BF0: ldr r0, _08290C20 movs r1, #1 @@ -697,7 +697,7 @@ _08290BF0: movs r1, #7 strh r1, [r0] movs r0, #0x66 - bl sub_08290DA8 + bl WriteCommand adds r0, r7, #4 movs r1, #0 strb r1, [r0] @@ -708,7 +708,7 @@ _08290C14: bls _08290C2C b _08290C4E .align 2, 0 -_08290C20: .4byte gUnknown_3001A76 +_08290C20: .4byte 0x03001A76 _08290C24: .4byte 0x080000C4 _08290C28: .4byte 0x080000C6 _08290C2C: @@ -719,7 +719,7 @@ _08290C2C: adds r1, r0, #4 ldrb r2, [r1] adds r0, r2, #0 - bl sub_08290E4C + bl WriteData adds r1, r7, #4 adds r0, r7, #4 adds r1, r7, #4 @@ -742,7 +742,7 @@ _08290C4E: b _08290C6C .align 2, 0 _08290C64: .4byte 0x080000C4 -_08290C68: .4byte gUnknown_3001A76 +_08290C68: .4byte 0x03001A76 _08290C6C: add sp, #8 pop {r7} @@ -763,7 +763,7 @@ SiiRtcSetAlarm: @ 0x08290C74 movs r0, #0 b _08290DA0 .align 2, 0 -_08290C88: .4byte gUnknown_3001A76 +_08290C88: .4byte 0x03001A76 _08290C8C: ldr r0, _08290CF4 movs r1, #1 @@ -817,7 +817,7 @@ _08290C8C: strb r1, [r0] b _08290D16 .align 2, 0 -_08290CF4: .4byte gUnknown_3001A76 +_08290CF4: .4byte 0x03001A76 _08290CF8: adds r0, r7, #0 adds r0, #8 @@ -857,7 +857,7 @@ _08290D16: movs r1, #7 strh r1, [r0] movs r0, #0x68 - bl sub_08290DA8 + bl WriteCommand adds r0, r7, #4 movs r1, #0 strb r1, [r0] @@ -878,7 +878,7 @@ _08290D60: adds r0, r0, r2 ldrb r1, [r0] adds r0, r1, #0 - bl sub_08290E4C + bl WriteData adds r1, r7, #4 adds r0, r7, #4 adds r1, r7, #4 @@ -901,7 +901,7 @@ _08290D82: b _08290DA0 .align 2, 0 _08290D98: .4byte 0x080000C4 -_08290D9C: .4byte gUnknown_3001A76 +_08290D9C: .4byte 0x03001A76 _08290DA0: add sp, #0xc pop {r4, r7} @@ -909,8 +909,8 @@ _08290DA0: bx r1 thumb_func_end SiiRtcSetAlarm - thumb_func_start sub_08290DA8 -sub_08290DA8: @ 0x08290DA8 + thumb_func_start WriteCommand +WriteCommand: @ 0x08290DA8 push {r4, r5, r7, lr} sub sp, #4 mov r7, sp @@ -996,10 +996,10 @@ _08290E44: pop {r4, r5, r7} pop {r1} bx r1 - thumb_func_end sub_08290DA8 + thumb_func_end WriteCommand - thumb_func_start sub_08290E4C -sub_08290E4C: @ 0x08290E4C + thumb_func_start WriteData +WriteData: @ 0x08290E4C push {r4, r7, lr} sub sp, #4 mov r7, sp @@ -1083,10 +1083,10 @@ _08290EE4: pop {r4, r7} pop {r1} bx r1 - thumb_func_end sub_08290E4C + thumb_func_end WriteData - thumb_func_start sub_08290EEC -sub_08290EEC: @ 0x08290EEC + thumb_func_start ReadData +ReadData: @ 0x08290EEC push {r7, lr} sub sp, #4 mov r7, sp @@ -1160,10 +1160,10 @@ _08290F70: pop {r7} pop {r1} bx r1 - thumb_func_end sub_08290EEC + thumb_func_end ReadData - thumb_func_start sub_08290F78 -sub_08290F78: @ 0x08290F78 + thumb_func_start EnableGpioPortRead +EnableGpioPortRead: @ 0x08290F78 push {r7, lr} mov r7, sp ldr r0, _08290F88 @@ -1174,10 +1174,10 @@ sub_08290F78: @ 0x08290F78 bx r0 .align 2, 0 _08290F88: .4byte 0x080000C8 - thumb_func_end sub_08290F78 + thumb_func_end EnableGpioPortRead - thumb_func_start sub_08290F8C -sub_08290F8C: @ 0x08290F8C + thumb_func_start DisableGpioPortRead +DisableGpioPortRead: @ 0x08290F8C push {r7, lr} mov r7, sp ldr r0, _08290F9C @@ -1188,4 +1188,5 @@ sub_08290F8C: @ 0x08290F8C bx r0 .align 2, 0 _08290F9C: .4byte 0x080000C8 - thumb_func_end sub_08290F8C + thumb_func_end DisableGpioPortRead + diff --git a/asm/slot_machine.s b/asm/slot_machine.s new file mode 100644 index 0000000..f1e9b6b --- /dev/null +++ b/asm/slot_machine.s @@ -0,0 +1,11825 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start Task_FadeToSlotMachine +Task_FadeToSlotMachine: @ 0x0812A4EC + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _0812A50C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r0, #8 + ldrsh r1, [r4, r0] + cmp r1, #0 + beq _0812A510 + cmp r1, #1 + beq _0812A528 + b _0812A540 + .align 2, 0 +_0812A50C: .4byte 0x03005B60 +_0812A510: + movs r0, #1 + rsbs r0, r0, #0 + str r1, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _0812A540 +_0812A528: + ldr r0, _0812A548 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0812A540 + ldr r0, _0812A54C + bl SetMainCallback2 + adds r0, r5, #0 + bl DestroyTask +_0812A540: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0812A548: .4byte 0x02037C74 +_0812A54C: .4byte 0x0812A599 + thumb_func_end Task_FadeToSlotMachine + + thumb_func_start PlaySlotMachine +PlaySlotMachine: @ 0x0812A550 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r5, _0812A58C + movs r0, #0x68 + bl AllocZeroed + str r0, [r5] + adds r0, r4, #0 + adds r1, r6, #0 + bl PlaySlotMachine_Internal + ldr r0, _0812A590 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0812A594 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r0, #0 + strh r0, [r1, #8] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0812A58C: .4byte 0x0203A800 +_0812A590: .4byte 0x0812A4ED +_0812A594: .4byte 0x03005B60 + thumb_func_end PlaySlotMachine + + thumb_func_start CB2_SlotMachineSetup +CB2_SlotMachineSetup: @ 0x0812A598 + push {lr} + sub sp, #4 + ldr r0, _0812A5B4 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0xb + bhi _0812A676 + lsls r0, r0, #2 + ldr r1, _0812A5B8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0812A5B4: .4byte 0x03002360 +_0812A5B8: .4byte 0x0812A5BC +_0812A5BC: @ jump table + .4byte _0812A5EC @ case 0 + .4byte _0812A5F6 @ case 1 + .4byte _0812A5FC @ case 2 + .4byte _0812A606 @ case 3 + .4byte _0812A60C @ case 4 + .4byte _0812A612 @ case 5 + .4byte _0812A618 @ case 6 + .4byte _0812A61E @ case 7 + .4byte _0812A648 @ case 8 + .4byte _0812A64E @ case 9 + .4byte _0812A654 @ case 10 + .4byte _0812A670 @ case 11 +_0812A5EC: + bl SlotMachineSetup_0_0 + bl SlotMachineSetup_0_1 + b _0812A65C +_0812A5F6: + bl SlotMachineSetup_1_0 + b _0812A65C +_0812A5FC: + bl SlotMachineSetup_2_0 + bl SlotMachineSetup_2_1 + b _0812A65C +_0812A606: + bl SlotMachineSetup_3_0 + b _0812A65C +_0812A60C: + bl SlotMachineSetup_4_0 + b _0812A65C +_0812A612: + bl SlotMachineSetup_5_0 + b _0812A65C +_0812A618: + bl SlotMachineSetup_6_0 + b _0812A65C +_0812A61E: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg + b _0812A65C +_0812A648: + bl SlotMachineSetup_8_0 + b _0812A65C +_0812A64E: + bl SlotMachineSetup_9_0 + b _0812A65C +_0812A654: + bl SlotMachineSetup_10_0 + bl SlotMachineSetupGameplayTasks +_0812A65C: + ldr r1, _0812A66C + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0812A676 + .align 2, 0 +_0812A66C: .4byte 0x03002360 +_0812A670: + ldr r0, _0812A67C + bl SetMainCallback2 +_0812A676: + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_0812A67C: .4byte 0x0812A681 + thumb_func_end CB2_SlotMachineSetup + + thumb_func_start CB2_SlotMachineLoop +CB2_SlotMachineLoop: @ 0x0812A680 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CB2_SlotMachineLoop + + thumb_func_start SlotMachine_VBlankCallback +SlotMachine_VBlankCallback: @ 0x0812A698 + push {r4, lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + ldr r4, _0812A6E0 + ldr r0, [r4] + adds r0, #0x58 + ldrh r1, [r0] + movs r0, #0x40 + bl SetGpuReg + ldr r0, [r4] + adds r0, #0x5a + ldrh r1, [r0] + movs r0, #0x44 + bl SetGpuReg + ldr r0, [r4] + adds r0, #0x5c + ldrh r1, [r0] + movs r0, #0x48 + bl SetGpuReg + ldr r0, [r4] + adds r0, #0x5e + ldrh r1, [r0] + movs r0, #0x4a + bl SetGpuReg + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812A6E0: .4byte 0x0203A800 + thumb_func_end SlotMachine_VBlankCallback + + thumb_func_start PlaySlotMachine_Internal +PlaySlotMachine_Internal: @ 0x0812A6E4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _0812A718 + movs r1, #0xff + bl CreateTask + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + ldr r1, _0812A71C + adds r0, r0, r1 + strh r4, [r0, #8] + adds r0, #0xa + adds r1, r5, #0 + bl StoreWordInTwoHalfwords + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0812A718: .4byte 0x0812A75D +_0812A71C: .4byte 0x03005B60 + thumb_func_end PlaySlotMachine_Internal + + thumb_func_start sub_0812A720 +sub_0812A720: @ 0x0812A720 + push {lr} + ldr r0, _0812A750 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r0, #2 + adds r2, r2, r0 + lsls r2, r2, #3 + ldr r0, _0812A754 + adds r2, r2, r0 + ldr r3, _0812A758 + ldr r1, [r3] + ldrh r0, [r2, #8] + strb r0, [r1, #1] + adds r2, #0xa + ldr r1, [r3] + adds r1, #0x64 + adds r0, r2, #0 + bl LoadWordFromTwoHalfwords + pop {r0} + bx r0 + .align 2, 0 +_0812A750: .4byte 0x0812A75D +_0812A754: .4byte 0x03005B60 +_0812A758: .4byte 0x0203A800 + thumb_func_end sub_0812A720 + + thumb_func_start SlotMachineDummyTask +SlotMachineDummyTask: @ 0x0812A75C + bx lr + .align 2, 0 + thumb_func_end SlotMachineDummyTask + + thumb_func_start SlotMachineSetup_0_0 +SlotMachineSetup_0_0: @ 0x0812A760 + push {lr} + sub sp, #4 + movs r0, #0 + bl SetVBlankCallback + movs r0, #0 + bl SetHBlankCallback + movs r0, #0 + str r0, [sp] + movs r1, #0xc0 + lsls r1, r1, #0x13 + ldr r2, _0812A7A0 + mov r0, sp + bl CpuSet + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _0812A7A4 + movs r0, #0 + movs r2, #4 + bl InitBgsFromTemplates + ldr r0, _0812A7A8 + bl InitWindows + bl DeactivateAllTextPrinters + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_0812A7A0: .4byte 0x05006000 +_0812A7A4: .4byte 0x085843A8 +_0812A7A8: .4byte 0x085843B8 + thumb_func_end SlotMachineSetup_0_0 + + thumb_func_start SlotMachineSetup_6_0 +SlotMachineSetup_6_0: @ 0x0812A7AC + push {lr} + ldr r0, _0812A7C8 + bl SetVBlankCallback + movs r0, #1 + bl EnableInterrupts + movs r1, #0xc1 + lsls r1, r1, #6 + movs r0, #0 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 +_0812A7C8: .4byte 0x0812A699 + thumb_func_end SlotMachineSetup_6_0 + + thumb_func_start SlotMachineSetup_1_0 +SlotMachineSetup_1_0: @ 0x0812A7CC + push {r4, r5, r6, r7, lr} + sub sp, #4 + movs r2, #0xc0 + lsls r2, r2, #0x13 + movs r3, #0x80 + lsls r3, r3, #9 + mov r4, sp + movs r6, #0 + ldr r1, _0812A818 + movs r5, #0x80 + lsls r5, r5, #5 + ldr r7, _0812A81C + movs r0, #0x81 + lsls r0, r0, #0x18 + mov ip, r0 +_0812A7EA: + strh r6, [r4] + mov r0, sp + str r0, [r1] + str r2, [r1, #4] + str r7, [r1, #8] + ldr r0, [r1, #8] + adds r2, r2, r5 + subs r3, r3, r5 + cmp r3, r5 + bhi _0812A7EA + strh r6, [r4] + mov r0, sp + str r0, [r1] + str r2, [r1, #4] + lsrs r0, r3, #1 + mov r2, ip + orrs r0, r2 + str r0, [r1, #8] + ldr r0, [r1, #8] + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0812A818: .4byte 0x040000D4 +_0812A81C: .4byte 0x81000800 + thumb_func_end SlotMachineSetup_1_0 + + thumb_func_start SlotMachineSetup_2_0 +SlotMachineSetup_2_0: @ 0x0812A820 + sub sp, #4 + movs r2, #0xe0 + lsls r2, r2, #0x13 + mov r1, sp + movs r0, #0 + strh r0, [r1] + ldr r0, _0812A83C + str r1, [r0] + str r2, [r0, #4] + ldr r1, _0812A840 + str r1, [r0, #8] + ldr r0, [r0, #8] + add sp, #4 + bx lr + .align 2, 0 +_0812A83C: .4byte 0x040000D4 +_0812A840: .4byte 0x81000200 + thumb_func_end SlotMachineSetup_2_0 + + thumb_func_start SlotMachineSetup_2_1 +SlotMachineSetup_2_1: @ 0x0812A844 + push {lr} + movs r0, #8 + movs r1, #0 + bl SetGpuReg + movs r0, #0xa + movs r1, #0 + bl SetGpuReg + movs r0, #0xc + movs r1, #0 + bl SetGpuReg + movs r0, #0xe + movs r1, #0 + bl SetGpuReg + movs r0, #0x10 + movs r1, #0 + bl SetGpuReg + movs r0, #0x12 + movs r1, #0 + bl SetGpuReg + movs r0, #0x14 + movs r1, #0 + bl SetGpuReg + movs r0, #0x16 + movs r1, #0 + bl SetGpuReg + movs r0, #0x18 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1a + movs r1, #0 + bl SetGpuReg + movs r0, #0x1c + movs r1, #0 + bl SetGpuReg + movs r0, #0x1e + movs r1, #0 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0x3f + bl SetGpuReg + movs r0, #0x4a + movs r1, #0x3f + bl SetGpuReg + ldr r1, _0812A8CC + movs r0, #0x50 + bl SetGpuReg + ldr r1, _0812A8D0 + movs r0, #0x52 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 +_0812A8CC: .4byte 0x00001048 +_0812A8D0: .4byte 0x00000809 + thumb_func_end SlotMachineSetup_2_1 + + thumb_func_start SlotMachineSetup_0_1 +SlotMachineSetup_0_1: @ 0x0812A8D4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + bl sub_0812A720 + ldr r5, _0812A9B4 + ldr r0, [r5] + movs r4, #0 + strb r4, [r0] + ldr r0, [r5] + strb r4, [r0, #2] + bl Random + ldr r2, [r5] + movs r1, #1 + ands r1, r0 + strb r1, [r2, #3] + ldr r0, [r5] + strb r4, [r0, #4] + ldr r0, [r5] + movs r1, #0 + strh r4, [r0, #8] + strb r1, [r0, #0xa] + ldr r0, [r5] + strb r1, [r0, #0xb] + bl GetCoins + ldr r2, [r5] + strh r0, [r2, #0xc] + strh r4, [r2, #0xe] + strh r4, [r2, #0x10] + strh r4, [r2, #0x12] + strh r4, [r2, #0x18] + movs r0, #8 + strh r0, [r2, #0x1a] + adds r1, r2, #0 + adds r1, #0x58 + movs r0, #0xf0 + strh r0, [r1] + adds r1, #2 + movs r0, #0xa0 + strh r0, [r1] + adds r0, r2, #0 + adds r0, #0x5c + movs r1, #0x3f + strh r1, [r0] + adds r0, #2 + strh r1, [r0] + bl GetCurrentMapMusic + ldr r1, [r5] + adds r1, #0x60 + strh r0, [r1] + movs r7, #0 + ldr r0, _0812A9B8 + mov r8, r0 +_0812A944: + ldr r0, _0812A9B4 + ldr r4, [r0] + lsls r6, r7, #1 + adds r0, r4, #0 + adds r0, #0x22 + adds r0, r0, r6 + movs r1, #0 + strh r1, [r0] + adds r5, r4, #0 + adds r5, #0x28 + adds r5, r5, r6 + ldrb r0, [r4, #3] + lsls r0, r0, #1 + lsls r1, r7, #2 + adds r0, r0, r1 + add r0, r8 + movs r1, #0 + ldrsh r0, [r0, r1] + movs r1, #0x15 + bl __modsi3 + strh r0, [r5] + adds r4, #0x1c + adds r4, r4, r6 + movs r2, #0 + ldrsh r0, [r5, r2] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #3 + movs r2, #0xfc + lsls r2, r2, #1 + adds r0, r2, #0 + subs r0, r0, r1 + strh r0, [r4] + movs r1, #0 + ldrsh r0, [r4, r1] + adds r1, r2, #0 + bl __modsi3 + strh r0, [r4] + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #2 + bls _0812A944 + bl GetCoins + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl AlertTVThatPlayerPlayedSlotMachine + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0812A9B4: .4byte 0x0203A800 +_0812A9B8: .4byte 0x08584638 + thumb_func_end SlotMachineSetup_0_1 + + thumb_func_start SlotMachineSetup_3_0 +SlotMachineSetup_3_0: @ 0x0812A9BC + push {lr} + bl ResetPaletteFade + bl ResetSpriteData + ldr r1, _0812A9D8 + movs r0, #0x80 + strb r0, [r1] + bl FreeAllSpritePalettes + bl ResetTasks + pop {r0} + bx r0 + .align 2, 0 +_0812A9D8: .4byte 0x02021AB4 + thumb_func_end SlotMachineSetup_3_0 + + thumb_func_start SlotMachineSetup_4_0 +SlotMachineSetup_4_0: @ 0x0812A9DC + push {r4, r5, lr} + ldr r4, _0812AA30 + movs r0, #8 + bl Alloc + str r0, [r4] + ldr r4, _0812AA34 + movs r0, #0xe + bl AllocZeroed + str r0, [r4] + ldr r5, _0812AA38 + movs r0, #8 + bl AllocZeroed + str r0, [r5] + ldr r1, [r4] + ldr r2, _0812AA3C + adds r0, r2, #0 + strh r0, [r1] + ldr r1, [r4] + ldr r2, _0812AA40 + adds r0, r2, #0 + strh r0, [r1, #2] + ldr r2, _0812AA44 + adds r0, r2, #0 + strh r0, [r1, #4] + ldr r2, _0812AA48 + adds r0, r2, #0 + strh r0, [r1, #6] + ldr r2, _0812AA4C + adds r0, r2, #0 + strh r0, [r1, #8] + ldr r2, _0812AA50 + adds r0, r2, #0 + strh r0, [r1, #0xa] + ldr r2, _0812AA54 + adds r0, r2, #0 + strh r0, [r1, #0xc] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0812AA30: .4byte 0x0203A798 +_0812AA34: .4byte 0x0203A79C +_0812AA38: .4byte 0x0203A7A8 +_0812AA3C: .4byte 0x00002051 +_0812AA40: .4byte 0x00002851 +_0812AA44: .4byte 0x00002061 +_0812AA48: .4byte 0x00002861 +_0812AA4C: .4byte 0x000020BE +_0812AA50: .4byte 0x000028BE +_0812AA54: .4byte 0x000020BF + thumb_func_end SlotMachineSetup_4_0 + + thumb_func_start SlotMachineSetup_5_0 +SlotMachineSetup_5_0: @ 0x0812AA58 + push {lr} + bl sub_0812F918 + bl sub_0812F968 + bl sub_0812F7F4 + movs r1, #0x80 + lsls r1, r1, #2 + movs r0, #0 + movs r2, #0xf0 + bl LoadMessageBoxGfx + movs r1, #0x85 + lsls r1, r1, #2 + movs r0, #0 + movs r2, #0xe0 + bl LoadUserWindowBorderGfx + movs r0, #0 + bl PutWindowTilemap + pop {r0} + bx r0 + thumb_func_end SlotMachineSetup_5_0 + + thumb_func_start SlotMachineSetup_10_0 +SlotMachineSetup_10_0: @ 0x0812AA88 + push {lr} + bl sub_0812E0F4 + bl sub_0812E1D8 + bl sub_0812CF04 + bl sub_0812E310 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SlotMachineSetup_10_0 + + thumb_func_start SlotMachineSetupGameplayTasks +SlotMachineSetupGameplayTasks: @ 0x0812AAA0 + push {lr} + bl GameplayTask_PikaPower + bl GameplayTask_StopSlotReel + bl sub_0812DEA4 + bl GameplayTasks_Slots + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SlotMachineSetupGameplayTasks + + thumb_func_start GameplayTasks_Slots +GameplayTasks_Slots: @ 0x0812AAB8 + push {r4, lr} + ldr r4, _0812AAD4 + adds r0, r4, #0 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl _call_via_r4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812AAD4: .4byte 0x0812AAD9 + thumb_func_end GameplayTasks_Slots + + thumb_func_start RunSlotActions +RunSlotActions: @ 0x0812AAD8 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r6, _0812AB08 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r4, r1, #3 + ldr r5, _0812AB0C +_0812AAE8: + ldr r0, _0812AB10 + ldr r0, [r0] + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r1, [r0] + adds r0, r4, r5 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0812AAE8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0812AB08: .4byte 0x085843D4 +_0812AB0C: .4byte 0x03005B60 +_0812AB10: .4byte 0x0203A800 + thumb_func_end RunSlotActions + + thumb_func_start SlotAction_UnfadeScreen +SlotAction_UnfadeScreen: @ 0x0812AB14 + push {r4, lr} + sub sp, #4 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r4, _0812AB44 + ldr r0, [r4] + ldrb r0, [r0, #2] + bl sub_0812D3C4 + ldr r1, [r4] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0 + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0812AB44: .4byte 0x0203A800 + thumb_func_end SlotAction_UnfadeScreen + + thumb_func_start SlotAction_WaitForUnfade +SlotAction_WaitForUnfade: @ 0x0812AB48 + push {lr} + ldr r0, _0812AB68 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0812AB60 + ldr r0, _0812AB6C + ldr r1, [r0] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0812AB60: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0812AB68: .4byte 0x02037C74 +_0812AB6C: .4byte 0x0203A800 + thumb_func_end SlotAction_WaitForUnfade + + thumb_func_start SlotAction_SetSlotMachineVars +SlotAction_SetSlotMachineVars: @ 0x0812AB70 + push {lr} + ldr r3, _0812AB9C + ldr r1, [r3] + movs r0, #0 + strh r0, [r1, #0xe] + strh r0, [r1, #0x12] + strh r0, [r1, #0x18] + ldrb r2, [r1, #4] + movs r0, #0xc0 + ands r0, r2 + strb r0, [r1, #4] + ldr r1, [r3] + movs r0, #4 + strb r0, [r1] + ldr r3, [r3] + movs r1, #0xc + ldrsh r0, [r3, r1] + cmp r0, #0 + bgt _0812ABA0 + movs r0, #0x19 + strb r0, [r3] + b _0812ABB0 + .align 2, 0 +_0812AB9C: .4byte 0x0203A800 +_0812ABA0: + ldrb r0, [r3, #0xa] + cmp r0, #0 + beq _0812ABB0 + movs r0, #3 + strb r0, [r3] + movs r0, #4 + bl sub_0812DEF4 +_0812ABB0: + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SlotAction_SetSlotMachineVars + + thumb_func_start SlotAction3 +SlotAction3: @ 0x0812ABB8 + push {lr} + bl sub_0812E064 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0812ABCC + ldr r0, _0812ABD4 + ldr r1, [r0] + movs r0, #4 + strb r0, [r1] +_0812ABCC: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0812ABD4: .4byte 0x0203A800 + thumb_func_end SlotAction3 + + thumb_func_start SlotAction4 +SlotAction4: @ 0x0812ABD8 + push {lr} + movs r0, #0 + bl sub_0812DEF4 + ldr r2, _0812AC00 + ldr r1, [r2] + movs r0, #5 + strb r0, [r1] + ldr r2, [r2] + movs r0, #0xc + ldrsh r1, [r2, r0] + ldr r0, _0812AC04 + cmp r1, r0 + ble _0812ABF8 + movs r0, #0x17 + strb r0, [r2] +_0812ABF8: + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 +_0812AC00: .4byte 0x0203A800 +_0812AC04: .4byte 0x0000270E + thumb_func_end SlotAction4 + + thumb_func_start SlotAction_AwaitPlayerInput +SlotAction_AwaitPlayerInput: @ 0x0812AC08 + push {r4, r5, lr} + ldr r0, _0812AC24 + ldrh r1, [r0, #0x2e] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0812AC2C + movs r0, #0 + bl OpenInfoBox + ldr r0, _0812AC28 + ldr r1, [r0] + movs r0, #8 + b _0812ACF2 + .align 2, 0 +_0812AC24: .4byte 0x03002360 +_0812AC28: .4byte 0x0203A800 +_0812AC2C: + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0812AC92 + ldr r0, _0812AC88 + ldr r2, [r0] + movs r1, #0xc + ldrsh r0, [r2, r1] + subs r0, #3 + movs r3, #0x12 + ldrsh r1, [r2, r3] + adds r0, r0, r1 + cmp r0, #0 + blt _0812AC8C + ldrh r4, [r2, #0x12] + adds r0, r1, #0 + cmp r0, #2 + bgt _0812AC6A +_0812AC52: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl LoadBetTiles + lsls r0, r4, #0x10 + movs r2, #0x80 + lsls r2, r2, #9 + adds r0, r0, r2 + lsrs r4, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + ble _0812AC52 +_0812AC6A: + ldr r0, _0812AC88 + ldr r1, [r0] + ldrh r0, [r1, #0xc] + subs r0, #3 + ldrh r3, [r1, #0x12] + adds r0, r0, r3 + strh r0, [r1, #0xc] + movs r0, #3 + strh r0, [r1, #0x12] + movs r0, #9 + strb r0, [r1] + movs r0, #0x5f + bl PlaySE + b _0812ACF4 + .align 2, 0 +_0812AC88: .4byte 0x0203A800 +_0812AC8C: + movs r0, #6 + strb r0, [r2] + b _0812ACF4 +_0812AC92: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0812ACC2 + ldr r4, _0812ACFC + ldr r0, [r4] + movs r1, #0xc + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _0812ACC2 + movs r0, #0x5f + bl PlaySE + ldr r0, [r4] + ldrb r0, [r0, #0x12] + bl LoadBetTiles + ldr r1, [r4] + ldrh r0, [r1, #0xc] + subs r0, #1 + strh r0, [r1, #0xc] + ldrh r0, [r1, #0x12] + adds r0, #1 + strh r0, [r1, #0x12] +_0812ACC2: + ldr r0, _0812ACFC + ldr r3, [r0] + movs r1, #0x12 + ldrsh r2, [r3, r1] + ldr r4, _0812AD00 + adds r5, r0, #0 + cmp r2, #2 + bgt _0812ACE0 + cmp r2, #0 + beq _0812ACE4 + ldrh r1, [r4, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0812ACE4 +_0812ACE0: + movs r0, #9 + strb r0, [r3] +_0812ACE4: + ldrh r1, [r4, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0812ACF4 + ldr r1, [r5] + movs r0, #0x15 +_0812ACF2: + strb r0, [r1] +_0812ACF4: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0812ACFC: .4byte 0x0203A800 +_0812AD00: .4byte 0x03002360 + thumb_func_end SlotAction_AwaitPlayerInput + + thumb_func_start SlotAction_PrintYouDontHaveThreeCoins +SlotAction_PrintYouDontHaveThreeCoins: @ 0x0812AD04 + push {lr} + sub sp, #0xc + movs r0, #0 + movs r1, #0 + bl ClearDialogWindowAndFrame + ldr r2, _0812AD3C + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + ldr r0, _0812AD40 + ldr r1, [r0] + movs r0, #7 + strb r0, [r1] + movs r0, #0 + add sp, #0xc + pop {r1} + bx r1 + .align 2, 0 +_0812AD3C: .4byte 0x08588641 +_0812AD40: .4byte 0x0203A800 + thumb_func_end SlotAction_PrintYouDontHaveThreeCoins + + thumb_func_start SlotAction_ExitMessage_9999Coins +SlotAction_ExitMessage_9999Coins: @ 0x0812AD44 + push {lr} + ldr r0, _0812AD68 + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _0812AD62 + movs r0, #0 + movs r1, #1 + bl DrawDialogueFrame + ldr r0, _0812AD6C + ldr r1, [r0] + movs r0, #5 + strb r0, [r1] +_0812AD62: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0812AD68: .4byte 0x03002360 +_0812AD6C: .4byte 0x0203A800 + thumb_func_end SlotAction_ExitMessage_9999Coins + + thumb_func_start SlotAction_GivingInformation +SlotAction_GivingInformation: @ 0x0812AD70 + push {lr} + bl IsInfoBoxClosed + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0812AD84 + ldr r0, _0812AD8C + ldr r1, [r0] + movs r0, #5 + strb r0, [r1] +_0812AD84: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0812AD8C: .4byte 0x0203A800 + thumb_func_end SlotAction_GivingInformation + + thumb_func_start SlotAction9 +SlotAction9: @ 0x0812AD90 + push {r4, lr} + adds r4, r0, #0 + bl DrawLuckyFlags + bl sub_0812DFEC + movs r0, #0 + bl ReelTasks_SetUnkTaskData + movs r0, #1 + bl ReelTasks_SetUnkTaskData + movs r0, #2 + bl ReelTasks_SetUnkTaskData + bl sub_080EF784 + movs r0, #0 + strh r0, [r4, #8] + ldr r4, _0812ADD0 + ldr r0, [r4] + ldrb r1, [r0, #4] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0812ADD4 + bl BeginReeltime + ldr r1, [r4] + movs r0, #0xa + b _0812ADDE + .align 2, 0 +_0812ADD0: .4byte 0x0203A800 +_0812ADD4: + movs r0, #1 + bl sub_0812DEF4 + ldr r1, [r4] + movs r0, #0xb +_0812ADDE: + strb r0, [r1] + ldr r4, _0812AE00 + ldr r0, [r4] + movs r1, #8 + strh r1, [r0, #0x1a] + ldrb r0, [r0, #0xa] + cmp r0, #0 + beq _0812ADF6 + bl SlowReelSpeed + ldr r1, [r4] + strh r0, [r1, #0x1a] +_0812ADF6: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0812AE00: .4byte 0x0203A800 + thumb_func_end SlotAction9 + + thumb_func_start SlotAction10 +SlotAction10: @ 0x0812AE04 + push {lr} + bl IsFinalTask_RunReelTimeActions + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0812AE28 + movs r0, #1 + bl sub_0812DEF4 + ldr r3, _0812AE30 + ldr r2, [r3] + ldrb r1, [r2, #4] + movs r0, #0xdf + ands r0, r1 + strb r0, [r2, #4] + ldr r1, [r3] + movs r0, #0xb + strb r0, [r1] +_0812AE28: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0812AE30: .4byte 0x0203A800 + thumb_func_end SlotAction10 + + thumb_func_start SlotAction_SetLuckySpins +SlotAction_SetLuckySpins: @ 0x0812AE34 + push {lr} + ldrh r1, [r0, #8] + adds r1, #1 + strh r1, [r0, #8] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #0x1d + ble _0812AE50 + bl SetLuckySpins + ldr r0, _0812AE58 + ldr r1, [r0] + movs r0, #0xc + strb r0, [r1] +_0812AE50: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0812AE58: .4byte 0x0203A800 + thumb_func_end SlotAction_SetLuckySpins + + thumb_func_start SlotAction_AwaitReelStop +SlotAction_AwaitReelStop: @ 0x0812AE5C + push {r4, lr} + ldr r0, _0812AE90 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0812AE88 + movs r0, #0x18 + bl PlaySE + ldr r4, _0812AE94 + ldr r0, [r4] + ldrb r0, [r0, #0x18] + bl sub_0812BEEC + ldr r0, [r4] + ldrb r0, [r0, #0x18] + bl sub_0812CD50 + ldr r1, [r4] + movs r0, #0xd + strb r0, [r1] +_0812AE88: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0812AE90: .4byte 0x03002360 +_0812AE94: .4byte 0x0203A800 + thumb_func_end SlotAction_AwaitReelStop + + thumb_func_start SlotAction_WaitForAllReelsToStop +SlotAction_WaitForAllReelsToStop: @ 0x0812AE98 + push {r4, lr} + ldr r4, _0812AEC8 + ldr r0, [r4] + ldrb r0, [r0, #0x18] + bl IsSlotReelMoving + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0812AECC + ldr r1, [r4] + ldrh r0, [r1, #0x18] + adds r0, #1 + strh r0, [r1, #0x18] + movs r0, #0xc + strb r0, [r1] + ldr r1, [r4] + movs r2, #0x18 + ldrsh r0, [r1, r2] + cmp r0, #2 + ble _0812AEC4 + movs r0, #0xe + strb r0, [r1] +_0812AEC4: + movs r0, #1 + b _0812AECE + .align 2, 0 +_0812AEC8: .4byte 0x0203A800 +_0812AECC: + movs r0, #0 +_0812AECE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end SlotAction_WaitForAllReelsToStop + + thumb_func_start SlotAction_CheckMatches +SlotAction_CheckMatches: @ 0x0812AED4 + push {r4, lr} + ldr r4, _0812AF40 + ldr r2, [r4] + ldrb r1, [r2, #4] + movs r0, #0xc0 + ands r0, r1 + strb r0, [r2, #4] + bl CheckMatch + ldr r1, [r4] + ldrb r0, [r1, #0xa] + cmp r0, #0 + beq _0812AEFA + subs r0, #1 + strb r0, [r1, #0xa] + ldr r1, [r4] + ldrb r0, [r1, #0xb] + adds r0, #1 + strb r0, [r1, #0xb] +_0812AEFA: + ldr r1, [r4] + ldrh r0, [r1, #8] + cmp r0, #0 + beq _0812AFDC + movs r0, #0xf + strb r0, [r1] + bl AwardPayout + bl sub_0812D0C0 + ldr r2, [r4] + ldrh r0, [r2, #0x10] + ldrh r1, [r2, #0xe] + subs r0, r0, r1 + strh r0, [r2, #0x10] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _0812AF22 + movs r0, #0 + strh r0, [r2, #0x10] +_0812AF22: + ldr r0, [r4] + ldrh r1, [r0, #8] + movs r0, #0xc0 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0812AF48 + ldr r0, _0812AF44 + bl PlayFanfare + movs r0, #6 + bl sub_0812DEF4 + b _0812AF72 + .align 2, 0 +_0812AF40: .4byte 0x0203A800 +_0812AF44: .4byte 0x00000185 +_0812AF48: + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0812AF64 + ldr r0, _0812AF60 + bl PlayFanfare + movs r0, #5 + bl sub_0812DEF4 + b _0812AF72 + .align 2, 0 +_0812AF60: .4byte 0x00000185 +_0812AF64: + movs r0, #0xc3 + lsls r0, r0, #1 + bl PlayFanfare + movs r0, #2 + bl sub_0812DEF4 +_0812AF72: + ldr r2, _0812AFD8 + ldr r3, [r2] + ldrh r1, [r3, #8] + movs r0, #0xe0 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0812AFB6 + ldrb r1, [r3, #4] + movs r0, #0x3f + ands r0, r1 + movs r4, #0 + strb r0, [r3, #4] + ldr r3, [r2] + ldrh r1, [r3, #8] + movs r0, #0xc0 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0812AFB6 + strb r4, [r3, #0xa] + ldr r0, [r2] + strb r4, [r0, #0xb] + ldr r0, [r2] + strb r4, [r0, #3] + ldr r3, [r2] + ldrh r1, [r3, #8] + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0812AFB6 + movs r0, #1 + strb r0, [r3, #3] +_0812AFB6: + ldr r3, [r2] + ldrh r1, [r3, #8] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0812AFFE + ldrb r0, [r3, #2] + cmp r0, #0xf + bhi _0812AFFE + adds r0, #1 + strb r0, [r3, #2] + ldr r0, [r2] + ldrb r0, [r0, #2] + bl DisplayPikaPower + b _0812AFFE + .align 2, 0 +_0812AFD8: .4byte 0x0203A800 +_0812AFDC: + movs r0, #3 + bl sub_0812DEF4 + ldr r1, [r4] + movs r0, #0x14 + strb r0, [r1] + ldr r1, [r4] + ldrh r0, [r1, #0x12] + ldrh r2, [r1, #0x10] + adds r0, r0, r2 + strh r0, [r1, #0x10] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldr r2, _0812B008 + cmp r0, r2 + ble _0812AFFE + strh r2, [r1, #0x10] +_0812AFFE: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0812B008: .4byte 0x0000270F + thumb_func_end SlotAction_CheckMatches + + thumb_func_start SlotAction_WaitForPayoutToBeAwarded +SlotAction_WaitForPayoutToBeAwarded: @ 0x0812B00C + push {lr} + bl IsFinalTask_RunAwardPayoutActions + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0812B020 + ldr r0, _0812B028 + ldr r1, [r0] + movs r0, #0x10 + strb r0, [r1] +_0812B020: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0812B028: .4byte 0x0203A800 + thumb_func_end SlotAction_WaitForPayoutToBeAwarded + + thumb_func_start SlotAction_EndOfRoll +SlotAction_EndOfRoll: @ 0x0812B02C + push {r4, lr} + bl sub_0812D0F0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0812B098 + ldr r4, _0812B0A0 + ldr r1, [r4] + movs r0, #0x13 + strb r0, [r1] + ldr r0, [r4] + ldrh r1, [r0, #8] + movs r0, #0xc0 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0812B054 + movs r0, #0x1c + bl IncrementGameStat +_0812B054: + ldr r2, [r4] + ldrh r1, [r2, #8] + movs r3, #4 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _0812B06A + movs r0, #0 + strh r0, [r2, #0x18] + movs r0, #9 + strb r0, [r2] +_0812B06A: + ldr r2, [r4] + ldrh r1, [r2, #8] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0812B07A + movs r0, #0x11 + strb r0, [r2] +_0812B07A: + ldr r1, [r4] + ldrb r0, [r1, #0xa] + cmp r0, #0 + beq _0812B098 + ldrh r1, [r1, #8] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _0812B098 + movs r0, #4 + bl sub_0812DEF4 + ldr r1, [r4] + movs r0, #0x12 + strb r0, [r1] +_0812B098: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0812B0A0: .4byte 0x0203A800 + thumb_func_end SlotAction_EndOfRoll + + thumb_func_start SlotAction_MatchedPower +SlotAction_MatchedPower: @ 0x0812B0A4 + push {r4, lr} + bl sub_0812D21C + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0812B0DC + ldr r4, _0812B0E4 + ldr r1, [r4] + movs r0, #0x13 + strb r0, [r1] + ldr r2, [r4] + ldrh r1, [r2, #8] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0812B0DC + movs r0, #9 + strb r0, [r2] + ldr r0, [r4] + ldrb r0, [r0, #0xa] + cmp r0, #0 + beq _0812B0DC + movs r0, #4 + bl sub_0812DEF4 + ldr r1, [r4] + movs r0, #0x12 + strb r0, [r1] +_0812B0DC: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0812B0E4: .4byte 0x0203A800 + thumb_func_end SlotAction_MatchedPower + + thumb_func_start SlotAction18 +SlotAction18: @ 0x0812B0E8 + push {lr} + bl sub_0812E064 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0812B10C + ldr r2, _0812B114 + ldr r1, [r2] + movs r0, #0x13 + strb r0, [r1] + ldr r2, [r2] + ldrh r1, [r2, #8] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0812B10C + movs r0, #9 + strb r0, [r2] +_0812B10C: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0812B114: .4byte 0x0203A800 + thumb_func_end SlotAction18 + + thumb_func_start SlotAction_Loop +SlotAction_Loop: @ 0x0812B118 + push {lr} + movs r0, #0 + bl sub_0812CEC8 + movs r0, #1 + bl sub_0812CEC8 + movs r0, #2 + bl sub_0812CEC8 + ldr r0, _0812B13C + ldr r1, [r0] + movs r0, #2 + strb r0, [r1] + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0812B13C: .4byte 0x0203A800 + thumb_func_end SlotAction_Loop + + thumb_func_start SlotAction_NoMatches +SlotAction_NoMatches: @ 0x0812B140 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0xa] + adds r0, #1 + strh r0, [r1, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x40 + ble _0812B15E + movs r0, #0 + strh r0, [r1, #0xa] + ldr r0, _0812B164 + ldr r1, [r0] + movs r0, #0x13 + strb r0, [r1] +_0812B15E: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0812B164: .4byte 0x0203A800 + thumb_func_end SlotAction_NoMatches + + thumb_func_start SlotAction_PrintQuitTheGame +SlotAction_PrintQuitTheGame: @ 0x0812B168 + push {lr} + sub sp, #0xc + movs r0, #0 + movs r1, #0 + bl ClearDialogWindowAndFrame + ldr r2, _0812B1B8 + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + movs r2, #0x85 + lsls r2, r2, #2 + movs r3, #0xca + lsls r3, r3, #1 + movs r0, #0xe + str r0, [sp] + movs r0, #0xf + str r0, [sp, #4] + movs r0, #0x15 + movs r1, #7 + bl CreateYesNoMenuParameterized + ldr r0, _0812B1BC + ldr r1, [r0] + movs r0, #0x16 + strb r0, [r1] + movs r0, #0 + add sp, #0xc + pop {r1} + bx r1 + .align 2, 0 +_0812B1B8: .4byte 0x08588606 +_0812B1BC: .4byte 0x0203A800 + thumb_func_end SlotAction_PrintQuitTheGame + + thumb_func_start SlotAction_SeeIfPlayerQuits +SlotAction_SeeIfPlayerQuits: @ 0x0812B1C0 + push {lr} + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + bne _0812B1FC + movs r0, #0 + movs r1, #1 + bl DrawDialogueFrame + movs r0, #0 + bl sub_0812CEC8 + movs r0, #1 + bl sub_0812CEC8 + movs r0, #2 + bl sub_0812CEC8 + ldr r0, _0812B1F8 + ldr r1, [r0] + ldrh r0, [r1, #0x12] + ldrh r2, [r1, #0xc] + adds r0, r0, r2 + strh r0, [r1, #0xc] + movs r0, #0x1b + b _0812B216 + .align 2, 0 +_0812B1F8: .4byte 0x0203A800 +_0812B1FC: + cmp r1, #1 + beq _0812B208 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _0812B218 +_0812B208: + movs r0, #0 + movs r1, #1 + bl DrawDialogueFrame + ldr r0, _0812B220 + ldr r1, [r0] + movs r0, #5 +_0812B216: + strb r0, [r1] +_0812B218: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0812B220: .4byte 0x0203A800 + thumb_func_end SlotAction_SeeIfPlayerQuits + + thumb_func_start SlotAction_PrintMessage_9999Coins +SlotAction_PrintMessage_9999Coins: @ 0x0812B224 + push {lr} + sub sp, #0xc + movs r0, #0 + movs r1, #0 + bl ClearDialogWindowAndFrame + ldr r2, _0812B25C + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + ldr r0, _0812B260 + ldr r1, [r0] + movs r0, #0x18 + strb r0, [r1] + movs r0, #0 + add sp, #0xc + pop {r1} + bx r1 + .align 2, 0 +_0812B25C: .4byte 0x08588612 +_0812B260: .4byte 0x0203A800 + thumb_func_end SlotAction_PrintMessage_9999Coins + + thumb_func_start SlotAction_ExitYouDontHaveThreeCoinsMessage +SlotAction_ExitYouDontHaveThreeCoinsMessage: @ 0x0812B264 + push {lr} + ldr r0, _0812B288 + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _0812B282 + movs r0, #0 + movs r1, #1 + bl DrawDialogueFrame + ldr r0, _0812B28C + ldr r1, [r0] + movs r0, #5 + strb r0, [r1] +_0812B282: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0812B288: .4byte 0x03002360 +_0812B28C: .4byte 0x0203A800 + thumb_func_end SlotAction_ExitYouDontHaveThreeCoinsMessage + + thumb_func_start SlotAction_PrintMessage_NoMoreCoins +SlotAction_PrintMessage_NoMoreCoins: @ 0x0812B290 + push {lr} + sub sp, #0xc + movs r0, #0 + movs r1, #0 + bl ClearDialogWindowAndFrame + ldr r2, _0812B2C8 + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + ldr r0, _0812B2CC + ldr r1, [r0] + movs r0, #0x1a + strb r0, [r1] + movs r0, #0 + add sp, #0xc + pop {r1} + bx r1 + .align 2, 0 +_0812B2C8: .4byte 0x08588627 +_0812B2CC: .4byte 0x0203A800 + thumb_func_end SlotAction_PrintMessage_NoMoreCoins + + thumb_func_start SlotAction_ExitMessage_NoMoreCoins +SlotAction_ExitMessage_NoMoreCoins: @ 0x0812B2D0 + push {lr} + ldr r0, _0812B2F4 + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _0812B2EE + movs r0, #0 + movs r1, #1 + bl DrawDialogueFrame + ldr r0, _0812B2F8 + ldr r1, [r0] + movs r0, #0x1b + strb r0, [r1] +_0812B2EE: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0812B2F4: .4byte 0x03002360 +_0812B2F8: .4byte 0x0203A800 + thumb_func_end SlotAction_ExitMessage_NoMoreCoins + + thumb_func_start SlotAction_EndGame +SlotAction_EndGame: @ 0x0812B2FC + push {r4, lr} + sub sp, #4 + ldr r4, _0812B338 + ldr r0, [r4] + ldrh r0, [r0, #0xc] + bl SetCoins + bl GetCoins + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl AlertTVOfNewCoinTotal + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, [r4] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0 + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0812B338: .4byte 0x0203A800 + thumb_func_end SlotAction_EndGame + + thumb_func_start SlotAction_FreeDataStructures +SlotAction_FreeDataStructures: @ 0x0812B33C + push {r4, r5, r6, lr} + ldr r0, _0812B488 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + beq _0812B350 + b _0812B480 +_0812B350: + ldr r6, _0812B48C + ldr r0, [r6] + ldr r0, [r0, #0x64] + bl SetMainCallback2 + ldr r4, _0812B490 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0812B494 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0812B498 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0812B49C + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0812B4A0 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0812B4A4 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0812B4A8 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0812B4AC + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0812B4B0 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0812B4B4 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0812B4B8 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0812B4BC + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0812B4C0 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0812B4C4 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0812B4C8 + ldr r0, [r4] + cmp r0, #0 + beq _0812B3F4 + bl Free + str r5, [r4] +_0812B3F4: + ldr r4, _0812B4CC + ldr r0, [r4] + cmp r0, #0 + beq _0812B402 + bl Free + str r5, [r4] +_0812B402: + ldr r4, _0812B4D0 + ldr r0, [r4] + cmp r0, #0 + beq _0812B410 + bl Free + str r5, [r4] +_0812B410: + ldr r4, _0812B4D4 + ldr r0, [r4] + cmp r0, #0 + beq _0812B41E + bl Free + str r5, [r4] +_0812B41E: + ldr r4, _0812B4D8 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0812B4DC + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0812B4E0 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0812B4E4 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0812B4E8 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0812B4EC + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0812B4F0 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0812B4F4 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _0812B4F8 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r0, [r6] + bl Free + str r5, [r6] +_0812B480: + movs r0, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0812B488: .4byte 0x02037C74 +_0812B48C: .4byte 0x0203A800 +_0812B490: .4byte 0x0203A7C0 +_0812B494: .4byte 0x0203A7C4 +_0812B498: .4byte 0x0203A7C8 +_0812B49C: .4byte 0x0203A7CC +_0812B4A0: .4byte 0x0203A7D0 +_0812B4A4: .4byte 0x0203A7D4 +_0812B4A8: .4byte 0x0203A7D8 +_0812B4AC: .4byte 0x0203A7DC +_0812B4B0: .4byte 0x0203A7E0 +_0812B4B4: .4byte 0x0203A7E4 +_0812B4B8: .4byte 0x0203A7E8 +_0812B4BC: .4byte 0x0203A7EC +_0812B4C0: .4byte 0x0203A7F0 +_0812B4C4: .4byte 0x0203A7F4 +_0812B4C8: .4byte 0x0203A7B0 +_0812B4CC: .4byte 0x0203A7B4 +_0812B4D0: .4byte 0x0203A7B8 +_0812B4D4: .4byte 0x0203A7BC +_0812B4D8: .4byte 0x0203A794 +_0812B4DC: .4byte 0x0203A798 +_0812B4E0: .4byte 0x0203A79C +_0812B4E4: .4byte 0x0203A7A0 +_0812B4E8: .4byte 0x0203A7A4 +_0812B4EC: .4byte 0x0203A7A8 +_0812B4F0: .4byte 0x0203A7AC +_0812B4F4: .4byte 0x0203A7F8 +_0812B4F8: .4byte 0x0203A7FC + thumb_func_end SlotAction_FreeDataStructures + + thumb_func_start DrawLuckyFlags +DrawLuckyFlags: @ 0x0812B4FC + push {r4, lr} + ldr r4, _0812B560 + ldr r1, [r4] + ldrb r0, [r1, #0xa] + cmp r0, #0 + bne _0812B55A + ldrb r1, [r1, #4] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0 + bne _0812B55A + bl IsThisRoundLucky + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0812B53C + bl AttemptsAtLuckyFlags_Top3 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #3 + beq _0812B53C + ldr r2, [r4] + ldr r1, _0812B564 + lsls r0, r3, #1 + adds r0, r0, r1 + ldrb r1, [r0] + ldrb r0, [r2, #4] + orrs r0, r1 + strb r0, [r2, #4] + cmp r3, #1 + bne _0812B55A +_0812B53C: + bl AttemptsAtLuckyFlags_NotTop3 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #5 + beq _0812B55A + ldr r0, _0812B560 + ldr r2, [r0] + ldr r1, _0812B568 + lsls r0, r3, #1 + adds r0, r0, r1 + ldrb r1, [r0] + ldrb r0, [r2, #4] + orrs r0, r1 + strb r0, [r2, #4] +_0812B55A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812B560: .4byte 0x0203A800 +_0812B564: .4byte 0x08584782 +_0812B568: .4byte 0x08584788 + thumb_func_end DrawLuckyFlags + + thumb_func_start SetLuckySpins +SetLuckySpins: @ 0x0812B56C + push {lr} + ldr r2, _0812B588 + ldr r1, [r2] + movs r0, #0 + strb r0, [r1, #6] + ldr r2, [r2] + ldrb r0, [r2, #4] + cmp r0, #0 + beq _0812B582 + movs r0, #1 + strb r0, [r2, #6] +_0812B582: + pop {r0} + bx r0 + .align 2, 0 +_0812B588: .4byte 0x0203A800 + thumb_func_end SetLuckySpins + + thumb_func_start GetBiasTag +GetBiasTag: @ 0x0812B58C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r2, #0 + movs r3, #1 + ldr r4, _0812B5A8 +_0812B598: + adds r0, r1, #0 + ands r0, r3 + cmp r0, #0 + beq _0812B5AC + adds r0, r2, r4 + ldrb r0, [r0] + b _0812B5BA + .align 2, 0 +_0812B5A8: .4byte 0x0858477A +_0812B5AC: + lsrs r1, r1, #1 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #7 + bls _0812B598 + movs r0, #0 +_0812B5BA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetBiasTag + + thumb_func_start IsThisRoundLucky +IsThisRoundLucky: @ 0x0812B5C0 + push {r4, lr} + bl Random + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _0812B5EC + ldr r1, _0812B5F0 + ldr r1, [r1] + movs r3, #0x12 + ldrsh r2, [r1, r3] + ldrb r3, [r1, #1] + lsls r1, r3, #1 + adds r1, r1, r3 + subs r1, #1 + adds r2, r2, r1 + adds r2, r2, r4 + ldrb r1, [r2] + cmp r1, r0 + bhi _0812B5F4 + movs r0, #0 + b _0812B5F6 + .align 2, 0 +_0812B5EC: .4byte 0x08584644 +_0812B5F0: .4byte 0x0203A800 +_0812B5F4: + movs r0, #1 +_0812B5F6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end IsThisRoundLucky + + thumb_func_start AttemptsAtLuckyFlags_Top3 +AttemptsAtLuckyFlags_Top3: @ 0x0812B5FC + push {r4, r5, r6, lr} + movs r5, #0 + ldr r6, _0812B63C +_0812B602: + bl Random + movs r2, #0xff + ldr r1, _0812B640 + ldr r3, [r1] + lsls r1, r5, #0x10 + asrs r4, r1, #0x10 + lsls r1, r4, #1 + adds r1, r1, r4 + lsls r1, r1, #1 + ldrb r3, [r3, #1] + adds r1, r1, r3 + adds r1, r1, r6 + ldrb r1, [r1] + ands r2, r0 + cmp r1, r2 + bgt _0812B630 + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + ble _0812B602 +_0812B630: + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0812B63C: .4byte 0x08584656 +_0812B640: .4byte 0x0203A800 + thumb_func_end AttemptsAtLuckyFlags_Top3 + + thumb_func_start AttemptsAtLuckyFlags_NotTop3 +AttemptsAtLuckyFlags_NotTop3: @ 0x0812B644 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r6, #0 + ldr r0, _0812B688 + mov r8, r0 + movs r7, #0x80 + lsls r7, r7, #0x11 +_0812B654: + bl Random + movs r5, #0xff + ands r5, r0 + ldr r0, _0812B68C + ldr r4, [r0] + lsls r2, r6, #0x10 + asrs r1, r2, #0x10 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + ldrb r3, [r4, #1] + adds r0, r0, r3 + add r0, r8 + ldrb r3, [r0] + cmp r1, #0 + bne _0812B690 + ldrb r0, [r4, #3] + cmp r0, #1 + bne _0812B690 + adds r3, #0xa + asrs r0, r7, #0x10 + cmp r3, r0 + ble _0812B6AE + adds r3, r0, #0 + b _0812B6AE + .align 2, 0 +_0812B688: .4byte 0x08584668 +_0812B68C: .4byte 0x0203A800 +_0812B690: + asrs r0, r2, #0x10 + cmp r0, #4 + bne _0812B6AE + ldr r0, _0812B6D4 + ldr r0, [r0] + ldrb r0, [r0, #3] + cmp r0, #1 + bne _0812B6AE + lsls r0, r3, #0x10 + ldr r1, _0812B6D8 + adds r0, r0, r1 + lsrs r3, r0, #0x10 + cmp r0, #0 + bge _0812B6AE + movs r3, #0 +_0812B6AE: + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + cmp r0, r5 + bgt _0812B6C4 + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r2, r3 + lsrs r6, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _0812B654 +_0812B6C4: + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0812B6D4: .4byte 0x0203A800 +_0812B6D8: .4byte 0xFFF60000 + thumb_func_end AttemptsAtLuckyFlags_NotTop3 + + thumb_func_start GetReelTimeProbability +GetReelTimeProbability: @ 0x0812B6DC + push {lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r0, _0812B6F0 + ldr r2, [r0] + ldrb r0, [r2, #3] + cmp r0, #0 + beq _0812B6F8 + ldr r0, _0812B6F4 + b _0812B6FA + .align 2, 0 +_0812B6F0: .4byte 0x0203A800 +_0812B6F4: .4byte 0x085846EC +_0812B6F8: + ldr r0, _0812B70C +_0812B6FA: + lsls r1, r3, #4 + adds r1, r1, r3 + ldrb r2, [r2, #2] + adds r1, r1, r2 + adds r1, r1, r0 + ldrb r0, [r1] + pop {r1} + bx r1 + .align 2, 0 +_0812B70C: .4byte 0x08584686 + thumb_func_end GetReelTimeProbability + + thumb_func_start GetReeltimeDraw +GetReeltimeDraw: @ 0x0812B710 + push {r4, r5, r6, lr} + ldr r0, _0812B734 + ldr r1, [r0] + movs r0, #0 + strb r0, [r1, #5] + bl Random + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #0 + bl GetReelTimeProbability + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + blo _0812B764 + movs r6, #5 + b _0812B73E + .align 2, 0 +_0812B734: .4byte 0x0203A800 +_0812B738: + subs r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 +_0812B73E: + lsls r0, r6, #0x10 + asrs r5, r0, #0x10 + cmp r5, #0 + ble _0812B75E + bl Random + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + bl GetReelTimeProbability + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + bhs _0812B738 +_0812B75E: + ldr r0, _0812B76C + ldr r0, [r0] + strb r6, [r0, #5] +_0812B764: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0812B76C: .4byte 0x0203A800 + thumb_func_end GetReeltimeDraw + + thumb_func_start SkipToReeltimeAction14 +SkipToReeltimeAction14: @ 0x0812B770 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + bl Random + movs r1, #0xff + ands r1, r0 + ldr r0, _0812B790 + lsls r4, r4, #1 + adds r4, r4, r0 + ldrh r4, [r4] + cmp r1, r4 + blo _0812B794 + movs r0, #0 + b _0812B796 + .align 2, 0 +_0812B790: .4byte 0x08584752 +_0812B794: + movs r0, #1 +_0812B796: + pop {r4} + pop {r1} + bx r1 + thumb_func_end SkipToReeltimeAction14 + + thumb_func_start SlowReelSpeed +SlowReelSpeed: @ 0x0812B79C + push {r4, r5, lr} + movs r4, #0 + ldr r0, _0812B7B4 + ldr r0, [r0] + movs r2, #0x10 + ldrsh r1, [r0, r2] + ldr r0, _0812B7B8 + cmp r1, r0 + ble _0812B7BC + movs r4, #4 + b _0812B7D2 + .align 2, 0 +_0812B7B4: .4byte 0x0203A800 +_0812B7B8: .4byte 0x0000012B +_0812B7BC: + cmp r1, #0xf9 + ble _0812B7C4 + movs r4, #3 + b _0812B7D2 +_0812B7C4: + cmp r1, #0xc7 + ble _0812B7CC + movs r4, #2 + b _0812B7D2 +_0812B7CC: + cmp r1, #0x95 + ble _0812B7D2 + movs r4, #1 +_0812B7D2: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r5, _0812B7F4 + lsls r4, r4, #2 + adds r0, r4, r5 + ldrb r0, [r0] + cmp r1, r0 + bhs _0812B7F8 + movs r0, #4 + b _0812B832 + .align 2, 0 +_0812B7F4: .4byte 0x0858475C +_0812B7F8: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x18 + adds r2, r5, #2 + adds r2, r4, r2 + ldr r3, _0812B828 + ldr r1, _0812B82C + ldr r1, [r1] + ldrb r1, [r1, #0xb] + lsls r1, r1, #1 + adds r1, r1, r3 + ldrb r1, [r1] + ldrb r2, [r2] + adds r1, r1, r2 + lsls r1, r1, #0x18 + cmp r0, r1 + blo _0812B830 + movs r0, #8 + b _0812B832 + .align 2, 0 +_0812B828: .4byte 0x08584770 +_0812B82C: .4byte 0x0203A800 +_0812B830: + movs r0, #2 +_0812B832: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end SlowReelSpeed + + thumb_func_start CheckMatch +CheckMatch: @ 0x0812B838 + push {r4, lr} + ldr r4, _0812B868 + ldr r1, [r4] + movs r0, #0 + strh r0, [r1, #8] + bl CheckMatch_CenterRow + ldr r0, [r4] + movs r1, #0x12 + ldrsh r0, [r0, r1] + cmp r0, #1 + ble _0812B854 + bl CheckMatch_TopAndBottom +_0812B854: + ldr r0, [r4] + movs r1, #0x12 + ldrsh r0, [r0, r1] + cmp r0, #2 + ble _0812B862 + bl CheckMatch_Diagonals +_0812B862: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812B868: .4byte 0x0203A800 + thumb_func_end CheckMatch + + thumb_func_start CheckMatch_CenterRow +CheckMatch_CenterRow: @ 0x0812B86C + push {r4, r5, lr} + movs r0, #0 + movs r1, #2 + bl GetNearbyTag_Quantized + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r0, #1 + movs r1, #2 + bl GetNearbyTag_Quantized + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #2 + movs r1, #2 + bl GetNearbyTag_Quantized + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r5, #0 + adds r1, r4, #0 + bl GetMatchFromSymbolsInRow + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #9 + beq _0812B8CC + ldr r0, _0812B8D4 + ldr r2, [r0] + ldr r0, _0812B8D8 + lsls r1, r1, #1 + adds r0, r1, r0 + ldrh r0, [r0] + ldrh r3, [r2, #0xe] + adds r0, r0, r3 + strh r0, [r2, #0xe] + ldr r0, _0812B8DC + adds r1, r1, r0 + ldrh r0, [r2, #8] + ldrh r1, [r1] + orrs r0, r1 + strh r0, [r2, #8] + movs r0, #0 + bl sub_0812CF44 +_0812B8CC: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0812B8D4: .4byte 0x0203A800 +_0812B8D8: .4byte 0x085847AC +_0812B8DC: .4byte 0x0858479A + thumb_func_end CheckMatch_CenterRow + + thumb_func_start CheckMatch_TopAndBottom +CheckMatch_TopAndBottom: @ 0x0812B8E0 + push {r4, r5, lr} + movs r0, #0 + movs r1, #1 + bl GetNearbyTag_Quantized + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r0, #1 + movs r1, #1 + bl GetNearbyTag_Quantized + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #2 + movs r1, #1 + bl GetNearbyTag_Quantized + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r0, r5, #0 + adds r1, r4, #0 + bl GetMatchFromSymbolsInRow + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #9 + beq _0812B940 + cmp r1, #0 + bne _0812B91C + movs r1, #1 +_0812B91C: + ldr r0, _0812B9A4 + ldr r2, [r0] + ldr r0, _0812B9A8 + lsls r1, r1, #1 + adds r0, r1, r0 + ldrh r0, [r0] + ldrh r3, [r2, #0xe] + adds r0, r0, r3 + strh r0, [r2, #0xe] + ldr r0, _0812B9AC + adds r1, r1, r0 + ldrh r0, [r2, #8] + ldrh r1, [r1] + orrs r0, r1 + strh r0, [r2, #8] + movs r0, #1 + bl sub_0812CF44 +_0812B940: + movs r0, #0 + movs r1, #3 + bl GetNearbyTag_Quantized + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r0, #1 + movs r1, #3 + bl GetNearbyTag_Quantized + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #2 + movs r1, #3 + bl GetNearbyTag_Quantized + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r0, r5, #0 + adds r1, r4, #0 + bl GetMatchFromSymbolsInRow + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #9 + beq _0812B99E + cmp r1, #0 + bne _0812B97A + movs r1, #1 +_0812B97A: + ldr r0, _0812B9A4 + ldr r2, [r0] + ldr r0, _0812B9A8 + lsls r1, r1, #1 + adds r0, r1, r0 + ldrh r0, [r0] + ldrh r3, [r2, #0xe] + adds r0, r0, r3 + strh r0, [r2, #0xe] + ldr r0, _0812B9AC + adds r1, r1, r0 + ldrh r0, [r2, #8] + ldrh r1, [r1] + orrs r0, r1 + strh r0, [r2, #8] + movs r0, #2 + bl sub_0812CF44 +_0812B99E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0812B9A4: .4byte 0x0203A800 +_0812B9A8: .4byte 0x085847AC +_0812B9AC: .4byte 0x0858479A + thumb_func_end CheckMatch_TopAndBottom + + thumb_func_start CheckMatch_Diagonals +CheckMatch_Diagonals: @ 0x0812B9B0 + push {r4, r5, lr} + movs r0, #0 + movs r1, #1 + bl GetNearbyTag_Quantized + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r0, #1 + movs r1, #2 + bl GetNearbyTag_Quantized + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #2 + movs r1, #3 + bl GetNearbyTag_Quantized + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r0, r5, #0 + adds r1, r4, #0 + bl GetMatchFromSymbolsInRow + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #9 + beq _0812BA0E + cmp r1, #0 + beq _0812BA08 + ldr r0, _0812BA70 + ldr r2, [r0] + ldr r0, _0812BA74 + lsls r1, r1, #1 + adds r0, r1, r0 + ldrh r0, [r0] + ldrh r3, [r2, #0xe] + adds r0, r0, r3 + strh r0, [r2, #0xe] + ldr r0, _0812BA78 + adds r1, r1, r0 + ldrh r0, [r2, #8] + ldrh r1, [r1] + orrs r0, r1 + strh r0, [r2, #8] +_0812BA08: + movs r0, #3 + bl sub_0812CF44 +_0812BA0E: + movs r0, #0 + movs r1, #3 + bl GetNearbyTag_Quantized + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r0, #1 + movs r1, #2 + bl GetNearbyTag_Quantized + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #2 + movs r1, #1 + bl GetNearbyTag_Quantized + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r0, r5, #0 + adds r1, r4, #0 + bl GetMatchFromSymbolsInRow + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #9 + beq _0812BA6A + cmp r1, #0 + beq _0812BA64 + ldr r0, _0812BA70 + ldr r2, [r0] + ldr r0, _0812BA74 + lsls r1, r1, #1 + adds r0, r1, r0 + ldrh r0, [r0] + ldrh r3, [r2, #0xe] + adds r0, r0, r3 + strh r0, [r2, #0xe] + ldr r0, _0812BA78 + adds r1, r1, r0 + ldrh r0, [r2, #8] + ldrh r1, [r1] + orrs r0, r1 + strh r0, [r2, #8] +_0812BA64: + movs r0, #4 + bl sub_0812CF44 +_0812BA6A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0812BA70: .4byte 0x0203A800 +_0812BA74: .4byte 0x085847AC +_0812BA78: .4byte 0x0858479A + thumb_func_end CheckMatch_Diagonals + + thumb_func_start GetMatchFromSymbolsInRow +GetMatchFromSymbolsInRow: @ 0x0812BA7C + push {lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + cmp r3, r1 + bne _0812BAA0 + cmp r3, r2 + bne _0812BAA0 + ldr r0, _0812BA9C + adds r0, r3, r0 + ldrb r0, [r0] + b _0812BAC6 + .align 2, 0 +_0812BA9C: .4byte 0x08584792 +_0812BAA0: + cmp r3, #0 + bne _0812BAAC + cmp r1, #0 + bne _0812BAAC + cmp r2, #1 + beq _0812BAB8 +_0812BAAC: + cmp r3, #1 + bne _0812BABC + cmp r1, #1 + bne _0812BABC + cmp r2, #0 + bne _0812BABC +_0812BAB8: + movs r0, #6 + b _0812BAC6 +_0812BABC: + cmp r3, #4 + beq _0812BAC4 + movs r0, #9 + b _0812BAC6 +_0812BAC4: + movs r0, #0 +_0812BAC6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetMatchFromSymbolsInRow + + thumb_func_start AwardPayout +AwardPayout: @ 0x0812BACC + push {r4, lr} + ldr r4, _0812BAE8 + adds r0, r4, #0 + movs r1, #4 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl _call_via_r4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812BAE8: .4byte 0x0812BB0D + thumb_func_end AwardPayout + + thumb_func_start IsFinalTask_RunAwardPayoutActions +IsFinalTask_RunAwardPayoutActions: @ 0x0812BAEC + push {lr} + ldr r0, _0812BB00 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _0812BB04 + movs r0, #0 + b _0812BB06 + .align 2, 0 +_0812BB00: .4byte 0x0812BB0D +_0812BB04: + movs r0, #1 +_0812BB06: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsFinalTask_RunAwardPayoutActions + + thumb_func_start RunAwardPayoutActions +RunAwardPayoutActions: @ 0x0812BB0C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _0812BB3C + ldr r2, _0812BB40 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_0812BB1E: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0812BB1E + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0812BB3C: .4byte 0x08584448 +_0812BB40: .4byte 0x03005B60 + thumb_func_end RunAwardPayoutActions + + thumb_func_start AwardPayoutAction0 +AwardPayoutAction0: @ 0x0812BB44 + push {r4, lr} + adds r4, r0, #0 + bl sub_0812CF7C + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0812BB70 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + ldr r0, _0812BB6C + ldr r0, [r0] + movs r1, #0xe + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _0812BB70 + movs r0, #2 + strh r0, [r4, #8] + movs r0, #1 + b _0812BB72 + .align 2, 0 +_0812BB6C: .4byte 0x0203A800 +_0812BB70: + movs r0, #0 +_0812BB72: + pop {r4} + pop {r1} + bx r1 + thumb_func_end AwardPayoutAction0 + + thumb_func_start AwardPayoutAction_GivePayoutToPlayer +AwardPayoutAction_GivePayoutToPlayer: @ 0x0812BB78 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0xa] + subs r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0812BBCC + bl IsFanfareTaskInactive + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0812BB9E + movs r0, #0x15 + bl PlaySE +_0812BB9E: + ldr r0, _0812BC20 + ldr r2, [r0] + ldrh r0, [r2, #0xe] + subs r0, #1 + strh r0, [r2, #0xe] + ldrh r3, [r2, #0xc] + movs r0, #0xc + ldrsh r1, [r2, r0] + ldr r0, _0812BC24 + cmp r1, r0 + bgt _0812BBB8 + adds r0, r3, #1 + strh r0, [r2, #0xc] +_0812BBB8: + movs r0, #8 + strh r0, [r4, #0xa] + ldr r0, _0812BC28 + ldrh r1, [r0, #0x2c] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0812BBCC + movs r0, #4 + strh r0, [r4, #0xa] +_0812BBCC: + bl IsFanfareTaskInactive + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0812BC06 + ldr r0, _0812BC28 + ldrh r1, [r0, #0x2e] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0812BC06 + movs r0, #0x15 + bl PlaySE + ldr r1, _0812BC20 + ldr r2, [r1] + ldrh r0, [r2, #0xe] + ldrh r3, [r2, #0xc] + adds r0, r0, r3 + strh r0, [r2, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldr r3, _0812BC2C + cmp r0, r3 + ble _0812BC00 + strh r3, [r2, #0xc] +_0812BC00: + ldr r1, [r1] + movs r0, #0 + strh r0, [r1, #0xe] +_0812BC06: + ldr r0, _0812BC20 + ldr r0, [r0] + movs r1, #0xe + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _0812BC18 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_0812BC18: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0812BC20: .4byte 0x0203A800 +_0812BC24: .4byte 0x0000270E +_0812BC28: .4byte 0x03002360 +_0812BC2C: .4byte 0x0000270F + thumb_func_end AwardPayoutAction_GivePayoutToPlayer + + thumb_func_start AwardPayoutAction_FreeTask +AwardPayoutAction_FreeTask: @ 0x0812BC30 + push {lr} + bl sub_0812CFC8 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0812BC4A + ldr r0, _0812BC50 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_0812BC4A: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0812BC50: .4byte 0x0812BB0D + thumb_func_end AwardPayoutAction_FreeTask + + thumb_func_start GetNearbyTag_Quantized +GetNearbyTag_Quantized: @ 0x0812BC54 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r4, r0, #0 + ldr r0, _0812BCA0 + ldr r0, [r0] + lsls r2, r4, #1 + adds r0, #0x28 + adds r0, r0, r2 + movs r2, #0 + ldrsh r0, [r0, r2] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r0, r0, r1 + movs r1, #0x15 + bl __modsi3 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _0812BC86 + adds r0, #0x15 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 +_0812BC86: + ldr r2, _0812BCA4 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0812BCA0: .4byte 0x0203A800 +_0812BCA4: .4byte 0x085845F2 + thumb_func_end GetNearbyTag_Quantized + + thumb_func_start GetNearbyTag +GetNearbyTag: @ 0x0812BCA8 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r4, r0, #0 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + movs r6, #0 + ldr r0, _0812BCF0 + ldr r0, [r0] + lsls r1, r4, #1 + adds r0, #0x1c + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + movs r1, #0x18 + bl __modsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0812BCD2 + ldr r6, _0812BCF4 +_0812BCD2: + lsls r1, r5, #0x10 + asrs r1, r1, #0x10 + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + adds r1, r1, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r0, r4, #0 + bl GetNearbyTag_Quantized + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0812BCF0: .4byte 0x0203A800 +_0812BCF4: .4byte 0x0000FFFF + thumb_func_end GetNearbyTag + + thumb_func_start GetNearbyReelTimeTag +GetNearbyReelTimeTag: @ 0x0812BCF8 + push {lr} + ldr r1, _0812BD30 + ldr r1, [r1] + movs r2, #0x16 + ldrsh r1, [r1, r2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r1, r0 + adds r0, r1, #0 + movs r1, #6 + bl __modsi3 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _0812BD20 + adds r0, #6 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 +_0812BD20: + ldr r0, _0812BD34 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r1, r1, r0 + ldrb r0, [r1] + pop {r1} + bx r1 + .align 2, 0 +_0812BD30: .4byte 0x0203A800 +_0812BD34: .4byte 0x08584631 + thumb_func_end GetNearbyReelTimeTag + + thumb_func_start AdvanceSlotReel +AdvanceSlotReel: @ 0x0812BD38 + push {r4, r5, r6, lr} + adds r5, r0, #0 + lsls r5, r5, #0x18 + ldr r0, _0812BD7C + ldr r6, [r0] + lsrs r5, r5, #0x17 + adds r4, r6, #0 + adds r4, #0x1c + adds r4, r4, r5 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldrh r0, [r4] + adds r1, r1, r0 + strh r1, [r4] + movs r1, #0 + ldrsh r0, [r4, r1] + movs r1, #0xfc + lsls r1, r1, #1 + bl __modsi3 + strh r0, [r4] + adds r6, #0x28 + adds r6, r6, r5 + movs r1, #0 + ldrsh r0, [r4, r1] + movs r1, #0x18 + bl __divsi3 + movs r1, #0x15 + subs r1, r1, r0 + strh r1, [r6] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0812BD7C: .4byte 0x0203A800 + thumb_func_end AdvanceSlotReel + + thumb_func_start AdvanceSlotReelToNextTag +AdvanceSlotReelToNextTag: @ 0x0812BD80 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + ldr r7, _0812BDE0 + ldr r0, [r7] + lsls r6, r5, #1 + adds r0, #0x1c + adds r0, r0, r6 + movs r1, #0 + ldrsh r0, [r0, r1] + movs r1, #0x18 + bl __modsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r2, r0, #0x10 + asrs r1, r2, #0x10 + cmp r1, #0 + beq _0812BDD4 + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + cmp r1, r0 + bge _0812BDB6 + lsrs r4, r2, #0x10 +_0812BDB6: + lsls r1, r4, #0x10 + asrs r1, r1, #0x10 + adds r0, r5, #0 + bl AdvanceSlotReel + ldr r0, [r7] + adds r0, #0x1c + adds r0, r0, r6 + movs r1, #0 + ldrsh r0, [r0, r1] + movs r1, #0x18 + bl __modsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_0812BDD4: + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0812BDE0: .4byte 0x0203A800 + thumb_func_end AdvanceSlotReelToNextTag + + thumb_func_start AdvanceReeltimeReel +AdvanceReeltimeReel: @ 0x0812BDE4 + push {r4, lr} + ldr r1, _0812BE18 + ldr r4, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrh r1, [r4, #0x14] + adds r0, 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, #6 + subs r1, r1, r0 + strh r1, [r4, #0x16] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812BE18: .4byte 0x0203A800 + thumb_func_end AdvanceReeltimeReel + + thumb_func_start AdvanceReeltimeReelToNextTag +AdvanceReeltimeReelToNextTag: @ 0x0812BE1C + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r5, _0812BE68 + ldr r0, [r5] + movs r1, #0x14 + ldrsh r0, [r0, r1] + movs r1, #0x14 + bl __modsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r2, r0, #0x10 + asrs r1, r2, #0x10 + cmp r1, #0 + beq _0812BE5E + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + cmp r1, r0 + bge _0812BE46 + lsrs r4, r2, #0x10 +_0812BE46: + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + bl AdvanceReeltimeReel + ldr r0, [r5] + movs r1, #0x14 + ldrsh r0, [r0, r1] + movs r1, #0x14 + bl __modsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_0812BE5E: + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0812BE68: .4byte 0x0203A800 + thumb_func_end AdvanceReeltimeReelToNextTag + + thumb_func_start GameplayTask_StopSlotReel +GameplayTask_StopSlotReel: @ 0x0812BE6C + push {r4, r5, r6, lr} + movs r4, #0 + ldr r5, _0812BEA8 + ldr r6, _0812BEAC +_0812BE74: + adds r0, r5, #0 + movs r1, #2 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r6 + strh r4, [r1, #0x26] + ldr r1, _0812BEB0 + ldr r1, [r1] + adds r1, #0x3a + adds r1, r1, r4 + strb r0, [r1] + bl _call_via_r5 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #2 + bls _0812BE74 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0812BEA8: .4byte 0x0812BF3D +_0812BEAC: .4byte 0x03005B60 +_0812BEB0: .4byte 0x0203A800 + thumb_func_end GameplayTask_StopSlotReel + + thumb_func_start ReelTasks_SetUnkTaskData +ReelTasks_SetUnkTaskData: @ 0x0812BEB4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _0812BEE4 + ldr r1, _0812BEE8 + ldr r2, [r1] + adds r2, #0x3a + adds r2, r2, r0 + ldrb r1, [r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r4 + movs r3, #1 + strh r3, [r0, #8] + ldrb r1, [r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r4 + strh r3, [r0, #0x24] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812BEE4: .4byte 0x03005B60 +_0812BEE8: .4byte 0x0203A800 + thumb_func_end ReelTasks_SetUnkTaskData + + thumb_func_start sub_0812BEEC +sub_0812BEEC: @ 0x0812BEEC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0812BF0C + ldr r1, _0812BF10 + ldr r1, [r1] + adds r1, #0x3a + adds r1, r1, r0 + ldrb r1, [r1] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r1, #2 + strh r1, [r0, #8] + bx lr + .align 2, 0 +_0812BF0C: .4byte 0x03005B60 +_0812BF10: .4byte 0x0203A800 + thumb_func_end sub_0812BEEC + + thumb_func_start IsSlotReelMoving +IsSlotReelMoving: @ 0x0812BF14 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0812BF34 + ldr r1, _0812BF38 + ldr r1, [r1] + adds r1, #0x3a + adds r1, r1, r0 + ldrb r1, [r1] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrh r0, [r0, #0x24] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bx lr + .align 2, 0 +_0812BF34: .4byte 0x03005B60 +_0812BF38: .4byte 0x0203A800 + thumb_func_end IsSlotReelMoving + + thumb_func_start RunSlotReelActions +RunSlotReelActions: @ 0x0812BF3C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _0812BF6C + ldr r2, _0812BF70 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_0812BF4E: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0812BF4E + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0812BF6C: .4byte 0x08584454 +_0812BF70: .4byte 0x03005B60 + thumb_func_end RunSlotReelActions + + thumb_func_start SlotReelAction_StayStill +SlotReelAction_StayStill: @ 0x0812BF74 + movs r0, #0 + bx lr + thumb_func_end SlotReelAction_StayStill + + thumb_func_start SlotReelAction_Spin +SlotReelAction_Spin: @ 0x0812BF78 + push {lr} + ldrh r0, [r0, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0812BF94 + ldr r1, [r1] + movs r2, #0x1a + ldrsh r1, [r1, r2] + bl AdvanceSlotReel + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0812BF94: .4byte 0x0203A800 + thumb_func_end SlotReelAction_Spin + + thumb_func_start SlotReelAction_DecideWhereToStop +SlotReelAction_DecideWhereToStop: @ 0x0812BF98 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #8] + adds r0, #1 + movs r2, #0 + strh r0, [r4, #8] + ldr r0, _0812C020 + ldr r3, [r0] + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r1, r1, #1 + adds r0, r3, #0 + adds r0, #0x34 + adds r0, r0, r1 + strh r2, [r0] + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r1, r1, #1 + adds r0, r3, #0 + adds r0, #0x2e + adds r0, r0, r1 + strh r2, [r0] + ldrb r0, [r3, #0xa] + cmp r0, #0 + bne _0812C004 + ldrb r0, [r3, #4] + cmp r0, #0 + beq _0812BFEC + ldrb r0, [r3, #6] + cmp r0, #0 + beq _0812BFEC + ldr r1, _0812C024 + movs r2, #0x26 + ldrsh r0, [r4, r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0812C004 +_0812BFEC: + ldr r0, _0812C020 + ldr r1, [r0] + movs r0, #0 + strb r0, [r1, #6] + ldr r1, _0812C028 + movs r2, #0x26 + ldrsh r0, [r4, r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 +_0812C004: + ldr r0, _0812C020 + ldr r1, [r0] + movs r2, #0x26 + ldrsh r0, [r4, r2] + lsls r0, r0, #1 + adds r1, #0x2e + adds r1, r1, r0 + ldrh r0, [r1] + strh r0, [r4, #0xa] + movs r0, #1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0812C020: .4byte 0x0203A800 +_0812C024: .4byte 0x08584468 +_0812C028: .4byte 0x08584474 + thumb_func_end SlotReelAction_DecideWhereToStop + + thumb_func_start SlotReelAction_MoveToStop +SlotReelAction_MoveToStop: @ 0x0812C02C + push {r4, r5, r6, r7, lr} + sub sp, #0xc + adds r4, r0, #0 + ldr r1, _0812C070 + mov r0, sp + movs r2, #0xa + bl memcpy + ldr r7, _0812C074 + ldr r5, [r7] + movs r1, #0x26 + ldrsh r0, [r4, r1] + lsls r6, r0, #1 + adds r0, r5, #0 + adds r0, #0x1c + adds r0, r0, r6 + movs r2, #0 + ldrsh r0, [r0, r2] + movs r1, #0x18 + bl __modsi3 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r0, #0 + beq _0812C078 + ldrh r0, [r4, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r6, #0x1a + ldrsh r1, [r5, r6] + bl AdvanceSlotReelToNextTag + b _0812C0B0 + .align 2, 0 +_0812C070: .4byte 0x08584480 +_0812C074: .4byte 0x0203A800 +_0812C078: + adds r0, r5, #0 + adds r0, #0x2e + adds r1, r0, r6 + ldrh r3, [r1] + movs r6, #0 + ldrsh r0, [r1, r6] + cmp r0, #0 + beq _0812C0B4 + subs r0, r3, #1 + strh r0, [r1] + ldrh r0, [r4, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0x1a + ldrsh r1, [r5, r2] + bl AdvanceSlotReel + ldr r1, [r7] + movs r6, #0x26 + ldrsh r0, [r4, r6] + lsls r0, r0, #1 + adds r1, #0x1c + adds r1, r1, r0 + movs r2, #0 + ldrsh r0, [r1, r2] + movs r1, #0x18 + bl __modsi3 +_0812C0B0: + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 +_0812C0B4: + cmp r2, #0 + bne _0812C0E2 + ldr r0, _0812C0EC + ldr r1, [r0] + movs r6, #0x26 + ldrsh r0, [r4, r6] + lsls r0, r0, #1 + adds r1, #0x2e + adds r1, r1, r0 + movs r0, #0 + ldrsh r1, [r1, r0] + cmp r1, #0 + bne _0812C0E2 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r2, #0xa + ldrsh r0, [r4, r2] + lsls r0, r0, #1 + add r0, sp + ldrh r0, [r0] + strh r0, [r4, #0xa] + strh r1, [r4, #0xc] +_0812C0E2: + movs r0, #0 + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0812C0EC: .4byte 0x0203A800 + thumb_func_end SlotReelAction_MoveToStop + + thumb_func_start SlotReelAction_OscillatingStop +SlotReelAction_OscillatingStop: @ 0x0812C0F0 + push {r4, lr} + adds r2, r0, #0 + ldr r4, _0812C144 + ldr r1, [r4] + movs r3, #0x26 + ldrsh r0, [r2, r3] + lsls r0, r0, #1 + adds r1, #0x22 + adds r1, r1, r0 + ldrh r0, [r2, #0xa] + strh r0, [r1] + ldrh r0, [r2, #0xa] + rsbs r3, r0, #0 + strh r3, [r2, #0xa] + ldrh r0, [r2, #0xc] + adds r0, #1 + strh r0, [r2, #0xc] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0812C120 + lsls r0, r3, #0x10 + asrs r0, r0, #0x11 + strh r0, [r2, #0xa] +_0812C120: + movs r0, #0xa + ldrsh r3, [r2, r0] + cmp r3, #0 + bne _0812C13A + strh r3, [r2, #8] + strh r3, [r2, #0x24] + ldr r1, [r4] + movs r4, #0x26 + ldrsh r0, [r2, r4] + lsls r0, r0, #1 + adds r1, #0x22 + adds r1, r1, r0 + strh r3, [r1] +_0812C13A: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0812C144: .4byte 0x0203A800 + thumb_func_end SlotReelAction_OscillatingStop + + thumb_func_start DecideReelTurns_BiasTag_Reel1 +DecideReelTurns_BiasTag_Reel1: @ 0x0812C148 + push {r4, r5, lr} + ldr r4, _0812C18C + ldr r0, [r4] + ldrb r0, [r0, #4] + bl GetBiasTag + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + adds r5, r3, #0 + ldr r4, [r4] + ldrb r1, [r4, #4] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0 + beq _0812C16A + movs r5, #0 + movs r3, #1 +_0812C16A: + ldr r1, _0812C190 + movs r2, #0x12 + ldrsh r0, [r4, r2] + subs r0, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r2, [r0] + adds r0, r5, #0 + adds r1, r3, #0 + bl _call_via_r2 + thumb_func_end DecideReelTurns_BiasTag_Reel1 + + thumb_func_start nullsub_68 +nullsub_68: @ 0x0812C180 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0812C18C: .4byte 0x0203A800 +_0812C190: .4byte 0x0858448C + thumb_func_end nullsub_68 + + thumb_func_start AreTagsAtPosition_Reel1 +AreTagsAtPosition_Reel1: @ 0x0812C194 + push {r4, r5, lr} + adds r3, r0, #0 + adds r4, r1, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + movs r0, #0 + adds r1, r3, #0 + bl GetNearbyTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + cmp r0, r4 + beq _0812C1BC + cmp r0, r5 + bne _0812C1CC +_0812C1BC: + ldr r0, _0812C1C8 + ldr r0, [r0] + strb r1, [r0, #7] + movs r0, #1 + b _0812C1CE + .align 2, 0 +_0812C1C8: .4byte 0x0203A800 +_0812C1CC: + movs r0, #0 +_0812C1CE: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end AreTagsAtPosition_Reel1 + + thumb_func_start AreCherriesOnScreen_Reel1 +AreCherriesOnScreen_Reel1: @ 0x0812C1D4 + push {r4, lr} + movs r1, #1 + lsls r0, r0, #0x10 + asrs r4, r0, #0x10 + subs r1, r1, r4 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #0 + bl GetNearbyTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + beq _0812C21C + movs r1, #2 + subs r1, r1, r4 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #0 + bl GetNearbyTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + beq _0812C21C + movs r1, #3 + subs r1, r1, r4 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #0 + bl GetNearbyTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bne _0812C220 +_0812C21C: + movs r0, #1 + b _0812C222 +_0812C220: + movs r0, #0 +_0812C222: + pop {r4} + pop {r1} + bx r1 + thumb_func_end AreCherriesOnScreen_Reel1 + + thumb_func_start IsBiasTowardsCherryOr7s +IsBiasTowardsCherryOr7s: @ 0x0812C228 + push {lr} + ldr r0, _0812C23C + ldr r0, [r0] + ldrb r1, [r0, #4] + movs r0, #0xc2 + ands r0, r1 + cmp r0, #0 + bne _0812C240 + movs r0, #0 + b _0812C242 + .align 2, 0 +_0812C23C: .4byte 0x0203A800 +_0812C240: + movs r0, #1 +_0812C242: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsBiasTowardsCherryOr7s + + thumb_func_start DecideReelTurns_BiasTag_Reel1_Bet1 +DecideReelTurns_BiasTag_Reel1_Bet1: @ 0x0812C248 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + movs r5, #0 + movs r0, #2 + mov r8, r0 +_0812C25C: + lsls r0, r5, #0x10 + asrs r4, r0, #0x10 + mov r1, r8 + subs r0, r1, r4 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r7, #0 + adds r2, r6, #0 + bl AreTagsAtPosition_Reel1 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0812C288 + ldr r0, _0812C284 + ldr r1, [r0] + movs r0, #2 + strh r0, [r1, #0x34] + strh r5, [r1, #0x2e] + movs r0, #1 + b _0812C296 + .align 2, 0 +_0812C284: .4byte 0x0203A800 +_0812C288: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _0812C25C + movs r0, #0 +_0812C296: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end DecideReelTurns_BiasTag_Reel1_Bet1 + + thumb_func_start DecideReelTurns_BiasTag_Reel1_Bet2or3 +DecideReelTurns_BiasTag_Reel1_Bet2or3: @ 0x0812C2A0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + bl IsBiasTowardsCherryOr7s + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _0812C2CE + movs r0, #0 + bl AreCherriesOnScreen_Reel1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0812C304 +_0812C2CE: + movs r7, #1 + movs r6, #0 +_0812C2D2: + lsls r0, r7, #0x10 + asrs r4, r0, #0x10 + adds r0, r4, #0 + mov r1, sb + mov r2, r8 + bl AreTagsAtPosition_Reel1 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0812C2F8 + ldr r0, _0812C2F4 + ldr r0, [r0] + strh r7, [r0, #0x34] + strh r6, [r0, #0x2e] + movs r0, #1 + b _0812C3A0 + .align 2, 0 +_0812C2F4: .4byte 0x0203A800 +_0812C2F8: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + ble _0812C2D2 +_0812C304: + movs r7, #1 + adds r6, r5, #0 + ldr r0, _0812C358 + mov sl, r0 +_0812C30C: + lsls r5, r7, #0x10 + cmp r6, #0 + bne _0812C31E + asrs r0, r5, #0x10 + bl AreCherriesOnScreen_Reel1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0812C390 +_0812C31E: + movs r0, #1 + asrs r4, r5, #0x10 + subs r0, r0, r4 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov r1, sb + mov r2, r8 + bl AreTagsAtPosition_Reel1 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0812C390 + cmp r4, #1 + bne _0812C35C + cmp r6, #0 + bne _0812C34A + movs r0, #3 + bl AreCherriesOnScreen_Reel1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0812C35C +_0812C34A: + mov r0, sl + ldr r1, [r0] + movs r0, #3 + strh r0, [r1, #0x34] + strh r0, [r1, #0x2e] + movs r0, #1 + b _0812C3A0 + .align 2, 0 +_0812C358: .4byte 0x0203A800 +_0812C35C: + asrs r0, r5, #0x10 + cmp r0, #3 + bgt _0812C384 + adds r4, r0, #1 + cmp r6, #0 + bne _0812C376 + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + bl AreCherriesOnScreen_Reel1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0812C384 +_0812C376: + mov r0, sl + ldr r1, [r0] + movs r0, #2 + strh r0, [r1, #0x34] + strh r4, [r1, #0x2e] + movs r0, #1 + b _0812C3A0 +_0812C384: + mov r0, sl + ldr r1, [r0] + movs r0, #1 + strh r0, [r1, #0x34] + strh r7, [r1, #0x2e] + b _0812C3A0 +_0812C390: + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r5, r1 + lsrs r7, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _0812C30C + movs r0, #0 +_0812C3A0: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end DecideReelTurns_BiasTag_Reel1_Bet2or3 + + thumb_func_start DecideReelTurns_BiasTag_Reel2 +DecideReelTurns_BiasTag_Reel2: @ 0x0812C3B0 + push {lr} + ldr r1, _0812C3D0 + ldr r0, _0812C3D4 + ldr r0, [r0] + movs r2, #0x12 + ldrsh r0, [r0, r2] + subs r0, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + thumb_func_end DecideReelTurns_BiasTag_Reel2 + + thumb_func_start nullsub_69 +nullsub_69: @ 0x0812C3C8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_0812C3D0: .4byte 0x08584498 +_0812C3D4: .4byte 0x0203A800 + thumb_func_end nullsub_69 + + thumb_func_start DecideReelTurns_BiasTag_Reel2_Bet1or2 +DecideReelTurns_BiasTag_Reel2_Bet1or2: @ 0x0812C3D8 + push {r4, r5, r6, r7, lr} + ldr r0, _0812C40C + ldr r0, [r0] + movs r5, #0 + ldrh r7, [r0, #0x34] + movs r1, #0x34 + ldrsh r6, [r0, r1] +_0812C3E6: + lsls r0, r5, #0x10 + asrs r4, r0, #0x10 + subs r1, r6, r4 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #1 + bl GetNearbyTag + ldr r1, _0812C40C + ldr r1, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r2, [r1, #7] + cmp r0, r2 + bne _0812C410 + strh r7, [r1, #0x36] + strh r5, [r1, #0x30] + movs r0, #1 + b _0812C41E + .align 2, 0 +_0812C40C: .4byte 0x0203A800 +_0812C410: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _0812C3E6 + movs r0, #0 +_0812C41E: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end DecideReelTurns_BiasTag_Reel2_Bet1or2 + + thumb_func_start DecideReelTurns_BiasTag_Reel2_Bet3 +DecideReelTurns_BiasTag_Reel2_Bet3: @ 0x0812C424 + push {r4, r5, r6, lr} + bl DecideReelTurns_BiasTag_Reel2_Bet1or2 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0812C486 + ldr r0, _0812C478 + ldr r1, [r0] + movs r2, #0x34 + ldrsh r0, [r1, r2] + cmp r0, #2 + beq _0812C482 + movs r2, #0x30 + ldrsh r0, [r1, r2] + cmp r0, #1 + ble _0812C482 + cmp r0, #4 + beq _0812C482 + movs r5, #0 + movs r6, #2 +_0812C44C: + lsls r0, r5, #0x10 + asrs r4, r0, #0x10 + subs r1, r6, r4 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #1 + bl GetNearbyTag + ldr r1, _0812C478 + ldr r1, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r2, [r1, #7] + cmp r0, r2 + beq _0812C47C + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _0812C44C + b _0812C482 + .align 2, 0 +_0812C478: .4byte 0x0203A800 +_0812C47C: + movs r0, #2 + strh r0, [r1, #0x36] + strh r5, [r1, #0x30] +_0812C482: + movs r0, #1 + b _0812C4C2 +_0812C486: + ldr r0, _0812C4C8 + ldr r0, [r0] + movs r1, #0x34 + ldrsh r0, [r0, r1] + cmp r0, #2 + beq _0812C4C0 + movs r5, #0 + movs r6, #2 +_0812C496: + lsls r0, r5, #0x10 + asrs r4, r0, #0x10 + subs r1, r6, r4 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #1 + bl GetNearbyTag + ldr r1, _0812C4C8 + ldr r1, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r2, [r1, #7] + cmp r0, r2 + beq _0812C47C + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _0812C496 +_0812C4C0: + movs r0, #0 +_0812C4C2: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0812C4C8: .4byte 0x0203A800 + thumb_func_end DecideReelTurns_BiasTag_Reel2_Bet3 + + thumb_func_start DecideReelTurns_BiasTag_Reel3 +DecideReelTurns_BiasTag_Reel3: @ 0x0812C4CC + push {r4, lr} + ldr r2, _0812C508 + ldr r0, [r2] + ldrb r3, [r0, #7] + adds r4, r3, #0 + ldrb r1, [r0, #4] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0812C4E8 + movs r3, #0 + cmp r4, #0 + bne _0812C4E8 + movs r3, #1 +_0812C4E8: + ldr r1, _0812C50C + ldr r0, [r2] + movs r2, #0x12 + ldrsh r0, [r0, r2] + subs r0, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r3, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0812C508: .4byte 0x0203A800 +_0812C50C: .4byte 0x085844A4 + thumb_func_end DecideReelTurns_BiasTag_Reel3 + + thumb_func_start DecideReelTurns_BiasTag_Reel3_Bet1or2 +DecideReelTurns_BiasTag_Reel3_Bet1or2: @ 0x0812C510 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _0812C550 + ldr r0, [r0] + movs r5, #0 + ldrh r1, [r0, #0x36] + mov r8, r1 + movs r1, #0x36 + ldrsh r6, [r0, r1] +_0812C528: + lsls r0, r5, #0x10 + asrs r4, r0, #0x10 + subs r1, r6, r4 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #2 + bl GetNearbyTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r7 + bne _0812C554 + ldr r0, _0812C550 + ldr r0, [r0] + mov r1, r8 + strh r1, [r0, #0x38] + strh r5, [r0, #0x32] + movs r0, #1 + b _0812C562 + .align 2, 0 +_0812C550: .4byte 0x0203A800 +_0812C554: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _0812C528 + movs r0, #0 +_0812C562: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end DecideReelTurns_BiasTag_Reel3_Bet1or2 + + thumb_func_start DecideReelTurns_BiasTag_Reel3_Bet3 +DecideReelTurns_BiasTag_Reel3_Bet3: @ 0x0812C56C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _0812C594 + ldr r0, [r0] + movs r2, #0x34 + ldrsh r1, [r0, r2] + movs r2, #0x36 + ldrsh r0, [r0, r2] + cmp r1, r0 + bne _0812C5AC + adds r0, r6, #0 + bl DecideReelTurns_BiasTag_Reel3_Bet1or2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0812C5E2 + .align 2, 0 +_0812C594: .4byte 0x0203A800 +_0812C598: + ldr r0, _0812C5A8 + ldr r0, [r0] + strh r5, [r0, #0x32] + mov r1, r8 + strh r1, [r0, #0x38] + movs r0, #1 + b _0812C5E2 + .align 2, 0 +_0812C5A8: .4byte 0x0203A800 +_0812C5AC: + movs r2, #1 + mov r8, r2 + cmp r1, #1 + bne _0812C5B8 + movs r0, #3 + mov r8, r0 +_0812C5B8: + movs r5, #0 + mov r7, r8 +_0812C5BC: + lsls r0, r5, #0x10 + asrs r4, r0, #0x10 + subs r1, r7, r4 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #2 + bl GetNearbyTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r6 + beq _0812C598 + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _0812C5BC + movs r0, #0 +_0812C5E2: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end DecideReelTurns_BiasTag_Reel3_Bet3 + + thumb_func_start DecideReelTurns_NoBiasTag_Reel1 +DecideReelTurns_NoBiasTag_Reel1: @ 0x0812C5EC + push {r4, r5, lr} + movs r5, #0 + b _0812C5F8 +_0812C5F2: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_0812C5F8: + lsls r0, r5, #0x10 + asrs r4, r0, #0x10 + adds r0, r4, #0 + bl AreCherriesOnScreen_Reel1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0812C5F2 + ldr r0, _0812C614 + ldr r0, [r0] + strh r5, [r0, #0x2e] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0812C614: .4byte 0x0203A800 + thumb_func_end DecideReelTurns_NoBiasTag_Reel1 + + thumb_func_start IsBiasTag777_SwitchColor +IsBiasTag777_SwitchColor: @ 0x0812C618 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1] + cmp r0, #0 + bne _0812C626 + movs r0, #1 + b _0812C630 +_0812C626: + cmp r0, #1 + beq _0812C62E + movs r0, #0 + b _0812C634 +_0812C62E: + movs r0, #0 +_0812C630: + strb r0, [r1] + movs r0, #1 +_0812C634: + pop {r1} + bx r1 + thumb_func_end IsBiasTag777_SwitchColor + + thumb_func_start DecideReelTurns_NoBiasTag_Reel2 +DecideReelTurns_NoBiasTag_Reel2: @ 0x0812C638 + push {lr} + ldr r1, _0812C654 + ldr r0, _0812C658 + ldr r0, [r0] + movs r2, #0x12 + ldrsh r0, [r0, r2] + subs r0, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + thumb_func_end DecideReelTurns_NoBiasTag_Reel2 + + thumb_func_start sub_0812C650 +sub_0812C650: @ 0x0812C650 + pop {r0} + bx r0 + .align 2, 0 +_0812C654: .4byte 0x085844B0 +_0812C658: .4byte 0x0203A800 + thumb_func_end sub_0812C650 + + thumb_func_start DecideReelTurns_NoBiasTag_Reel2_Bet1 +DecideReelTurns_NoBiasTag_Reel2_Bet1: @ 0x0812C65C + push {r4, r5, r6, r7, lr} + sub sp, #4 + ldr r0, _0812C6C4 + ldr r2, [r0] + movs r1, #0x34 + ldrsh r0, [r2, r1] + cmp r0, #0 + beq _0812C6D4 + ldrb r1, [r2, #4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0812C6D4 + ldrh r0, [r2, #0x2e] + movs r1, #2 + subs r1, r1, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #0 + bl GetNearbyTag + mov r1, sp + strb r0, [r1] + mov r0, sp + bl IsBiasTag777_SwitchColor + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0812C6D4 + movs r5, #0 + mov r6, sp + movs r7, #2 +_0812C69C: + lsls r0, r5, #0x10 + asrs r4, r0, #0x10 + subs r1, r7, r4 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #1 + bl GetNearbyTag + ldrb r1, [r6] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r1, r0 + bne _0812C6C8 + ldr r0, _0812C6C4 + ldr r1, [r0] + movs r0, #2 + strh r0, [r1, #0x36] + strh r5, [r1, #0x30] + b _0812C6D4 + .align 2, 0 +_0812C6C4: .4byte 0x0203A800 +_0812C6C8: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _0812C69C +_0812C6D4: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end DecideReelTurns_NoBiasTag_Reel2_Bet1 + + thumb_func_start DecideReelTurns_NoBiasTag_Reel2_Bet2 +DecideReelTurns_NoBiasTag_Reel2_Bet2: @ 0x0812C6DC + push {r4, r5, r6, r7, lr} + sub sp, #4 + ldr r4, _0812C744 + ldr r2, [r4] + ldrh r3, [r2, #0x34] + movs r1, #0x34 + ldrsh r0, [r2, r1] + cmp r0, #0 + beq _0812C754 + ldrb r1, [r2, #4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0812C754 + ldrh r1, [r2, #0x2e] + subs r1, r3, r1 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #0 + bl GetNearbyTag + mov r1, sp + strb r0, [r1] + mov r0, sp + bl IsBiasTag777_SwitchColor + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0812C754 + movs r5, #0 + mov r7, sp + adds r6, r4, #0 +_0812C71C: + ldr r0, [r6] + ldrh r1, [r0, #0x34] + lsls r0, r5, #0x10 + asrs r4, r0, #0x10 + subs r1, r1, r4 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #1 + bl GetNearbyTag + ldrb r1, [r7] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r1, r0 + bne _0812C748 + ldr r0, [r6] + ldrh r1, [r0, #0x34] + strh r1, [r0, #0x36] + strh r5, [r0, #0x30] + b _0812C754 + .align 2, 0 +_0812C744: .4byte 0x0203A800 +_0812C748: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _0812C71C +_0812C754: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end DecideReelTurns_NoBiasTag_Reel2_Bet2 + + thumb_func_start DecideReelTurns_NoBiasTag_Reel2_Bet3 +DecideReelTurns_NoBiasTag_Reel2_Bet3: @ 0x0812C75C + push {r4, r5, r6, r7, lr} + sub sp, #4 + ldr r6, _0812C784 + ldr r2, [r6] + ldrh r4, [r2, #0x34] + movs r0, #0x34 + ldrsh r3, [r2, r0] + cmp r3, #0 + beq _0812C85A + ldrb r1, [r2, #4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0812C85A + cmp r3, #2 + bne _0812C7A6 + bl DecideReelTurns_NoBiasTag_Reel2_Bet2 + b _0812C85A + .align 2, 0 +_0812C784: .4byte 0x0203A800 +_0812C788: + ldr r0, _0812C794 + ldr r0, [r0] + movs r1, #0 + strh r5, [r0, #0x36] + strh r1, [r0, #0x30] + b _0812C85A + .align 2, 0 +_0812C794: .4byte 0x0203A800 +_0812C798: + movs r0, #2 + strh r0, [r1, #0x36] + adds r0, r4, #1 + strh r0, [r1, #0x30] + b _0812C85A +_0812C7A2: + movs r0, #3 + b _0812C834 +_0812C7A6: + ldrh r1, [r2, #0x2e] + subs r1, r4, r1 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #0 + bl GetNearbyTag + mov r1, sp + strb r0, [r1] + mov r0, sp + bl IsBiasTag777_SwitchColor + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0812C85A + movs r5, #2 + ldr r0, [r6] + movs r1, #0x34 + ldrsh r0, [r0, r1] + cmp r0, #3 + bne _0812C7D2 + movs r5, #3 +_0812C7D2: + movs r6, #0 + mov r7, sp +_0812C7D6: + lsls r0, r5, #0x10 + asrs r4, r0, #0x10 + movs r0, #1 + adds r1, r4, #0 + bl GetNearbyTag + ldrb r1, [r7] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r1, r0 + beq _0812C788 + lsls r1, r6, #0x10 + movs r2, #0x80 + lsls r2, r2, #9 + adds r1, r1, r2 + subs r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsrs r6, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #1 + ble _0812C7D6 + movs r5, #1 + mov r7, sp + ldr r6, _0812C83C +_0812C808: + ldr r0, [r6] + ldrh r1, [r0, #0x34] + lsls r0, r5, #0x10 + asrs r4, r0, #0x10 + subs r1, r1, r4 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #1 + bl GetNearbyTag + ldrb r1, [r7] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r1, r0 + bne _0812C84E + ldr r1, [r6] + movs r2, #0x34 + ldrsh r0, [r1, r2] + cmp r0, #1 + bne _0812C840 + cmp r4, #2 + ble _0812C798 +_0812C834: + strh r0, [r1, #0x36] + strh r5, [r1, #0x30] + b _0812C85A + .align 2, 0 +_0812C83C: .4byte 0x0203A800 +_0812C840: + cmp r4, #2 + ble _0812C7A2 + movs r0, #2 + strh r0, [r1, #0x36] + subs r0, r4, #1 + strh r0, [r1, #0x30] + b _0812C85A +_0812C84E: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _0812C808 +_0812C85A: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end DecideReelTurns_NoBiasTag_Reel2_Bet3 + + thumb_func_start AreTagsMixed77 +AreTagsMixed77: @ 0x0812C864 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r2, r1, #0 + cmp r0, #0 + bne _0812C878 + cmp r1, #1 + beq _0812C880 +_0812C878: + cmp r0, #1 + bne _0812C884 + cmp r2, #0 + bne _0812C884 +_0812C880: + movs r0, #1 + b _0812C886 +_0812C884: + movs r0, #0 +_0812C886: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end AreTagsMixed77 + + thumb_func_start AreTagsMixed777 +AreTagsMixed777: @ 0x0812C88C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + cmp r0, #0 + bne _0812C8A6 + cmp r1, #1 + bne _0812C8A6 + cmp r2, #0 + beq _0812C8B2 +_0812C8A6: + cmp r0, #1 + bne _0812C8B6 + cmp r1, #0 + bne _0812C8B6 + cmp r2, #1 + bne _0812C8B6 +_0812C8B2: + movs r0, #1 + b _0812C8B8 +_0812C8B6: + movs r0, #0 +_0812C8B8: + pop {r1} + bx r1 + thumb_func_end AreTagsMixed777 + + thumb_func_start TagsDontMatchOrHaveAny7s +TagsDontMatchOrHaveAny7s: @ 0x0812C8BC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + cmp r0, #0 + bne _0812C8D6 + cmp r1, #1 + bne _0812C8D6 + cmp r2, #0 + beq _0812C902 +_0812C8D6: + cmp r0, #1 + bne _0812C8E2 + cmp r1, #0 + bne _0812C8E2 + cmp r2, #1 + beq _0812C902 +_0812C8E2: + cmp r0, #0 + bne _0812C8EE + cmp r1, #0 + bne _0812C8EE + cmp r2, #1 + beq _0812C902 +_0812C8EE: + cmp r0, #1 + bne _0812C8FA + cmp r1, #1 + bne _0812C8FA + cmp r2, #0 + beq _0812C902 +_0812C8FA: + cmp r0, r1 + bne _0812C906 + cmp r0, r2 + bne _0812C906 +_0812C902: + movs r0, #0 + b _0812C908 +_0812C906: + movs r0, #1 +_0812C908: + pop {r1} + bx r1 + thumb_func_end TagsDontMatchOrHaveAny7s + + thumb_func_start DecideReelTurns_NoBiasTag_Reel3 +DecideReelTurns_NoBiasTag_Reel3: @ 0x0812C90C + push {lr} + ldr r1, _0812C928 + ldr r0, _0812C92C + ldr r0, [r0] + movs r2, #0x12 + ldrsh r0, [r0, r2] + subs r0, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + thumb_func_end DecideReelTurns_NoBiasTag_Reel3 + + thumb_func_start sub_0812C924 +sub_0812C924: @ 0x0812C924 + pop {r0} + bx r0 + .align 2, 0 +_0812C928: .4byte 0x085844BC +_0812C92C: .4byte 0x0203A800 + thumb_func_end sub_0812C924 + + thumb_func_start DecideReelTurns_NoBiasTag_Reel3_Bet1 +DecideReelTurns_NoBiasTag_Reel3_Bet1: @ 0x0812C930 + push {r4, r5, r6, r7, lr} + movs r6, #0 + ldr r7, _0812C96C + ldr r0, [r7] + ldrh r1, [r0, #0x2e] + movs r4, #2 + subs r1, r4, r1 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #0 + bl GetNearbyTag + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, [r7] + ldrh r0, [r0, #0x30] + subs r4, r4, r0 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + movs r0, #1 + adds r1, r4, #0 + bl GetNearbyTag + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r5, r1 + bne _0812C9A4 + movs r4, #2 + b _0812C97A + .align 2, 0 +_0812C96C: .4byte 0x0203A800 +_0812C970: + lsls r0, r6, #0x10 + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r0, r1 + lsrs r6, r0, #0x10 +_0812C97A: + lsls r1, r6, #0x10 + asrs r1, r1, #0x10 + subs r1, r4, r1 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #2 + bl GetNearbyTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r5, r0 + beq _0812C970 + cmp r5, #0 + bne _0812C99A + cmp r0, #1 + beq _0812C970 +_0812C99A: + cmp r5, #1 + bne _0812CA06 + cmp r0, #0 + beq _0812C970 + b _0812CA06 +_0812C9A4: + adds r0, r5, #0 + bl AreTagsMixed77 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0812CA06 + ldr r0, [r7] + ldrb r1, [r0, #4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0812C9E2 + movs r7, #2 +_0812C9BE: + lsls r0, r6, #0x10 + asrs r4, r0, #0x10 + subs r1, r7, r4 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #2 + bl GetNearbyTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r5, r0 + beq _0812CA06 + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _0812C9BE +_0812C9E2: + movs r6, #0 + movs r7, #2 + b _0812C9EE +_0812C9E8: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 +_0812C9EE: + lsls r0, r6, #0x10 + asrs r4, r0, #0x10 + subs r1, r7, r4 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #2 + bl GetNearbyTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r5, r0 + beq _0812C9E8 +_0812CA06: + ldr r0, _0812CA14 + ldr r0, [r0] + strh r6, [r0, #0x32] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0812CA14: .4byte 0x0203A800 + thumb_func_end DecideReelTurns_NoBiasTag_Reel3_Bet1 + + thumb_func_start DecideReelTurns_NoBiasTag_Reel3_Bet2 +DecideReelTurns_NoBiasTag_Reel3_Bet2: @ 0x0812CA18 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + movs r0, #0 + str r0, [sp] + ldr r4, _0812CA84 + ldr r2, [r4] + movs r5, #0x36 + ldrsh r1, [r2, r5] + cmp r1, #0 + beq _0812CAB4 + ldrh r3, [r2, #0x34] + movs r5, #0x34 + ldrsh r0, [r2, r5] + cmp r0, r1 + bne _0812CAB4 + ldrb r1, [r2, #4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0812CAB4 + ldrh r1, [r2, #0x2e] + subs r1, r3, r1 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #0 + bl GetNearbyTag + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, [r4] + ldrh r1, [r0, #0x36] + ldrh r0, [r0, #0x30] + subs r1, r1, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #1 + bl GetNearbyTag + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r0, r7, #0 + adds r1, r6, #0 + bl AreTagsMixed77 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0812CAB4 + movs r5, #0 + b _0812CA8E + .align 2, 0 +_0812CA84: .4byte 0x0203A800 +_0812CA88: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_0812CA8E: + lsls r6, r5, #0x10 + asrs r5, r6, #0x10 + cmp r5, #4 + bgt _0812CAB4 + ldr r0, _0812CB48 + ldr r0, [r0] + ldrh r1, [r0, #0x36] + subs r1, r1, r5 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #2 + bl GetNearbyTag + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r7, r4 + bne _0812CA88 + lsrs r6, r6, #0x10 + str r6, [sp] +_0812CAB4: + ldr r0, _0812CB48 + mov sb, r0 +_0812CAB8: + movs r5, #1 + movs r1, #0 + mov r8, r1 + ldr r2, [sp] + lsls r2, r2, #0x10 + mov sl, r2 +_0812CAC4: + mov r1, sb + ldr r0, [r1] + ldrh r1, [r0, #0x2e] + lsls r5, r5, #0x10 + asrs r4, r5, #0x10 + subs r1, r4, r1 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #0 + bl GetNearbyTag + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + mov r2, sb + ldr r0, [r2] + ldrh r1, [r0, #0x30] + subs r1, r4, r1 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #1 + bl GetNearbyTag + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + mov r1, sl + asrs r0, r1, #0x10 + subs r4, r4, r0 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + movs r0, #2 + adds r1, r4, #0 + bl GetNearbyTag + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + bl TagsDontMatchOrHaveAny7s + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0812CB4C + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + bl AreTagsMixed777 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0812CB38 + mov r2, sb + ldr r0, [r2] + ldrb r1, [r0, #4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0812CB4C +_0812CB38: + mov r5, r8 + lsls r0, r5, #0x10 + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + mov r8, r0 + b _0812CB5A + .align 2, 0 +_0812CB48: .4byte 0x0203A800 +_0812CB4C: + movs r2, #0x80 + lsls r2, r2, #9 + adds r0, r5, r2 + lsrs r5, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + ble _0812CAC4 +_0812CB5A: + mov r5, r8 + cmp r5, #0 + beq _0812CB70 + ldr r1, [sp] + lsls r0, r1, #0x10 + movs r2, #0x80 + lsls r2, r2, #9 + adds r0, r0, r2 + lsrs r0, r0, #0x10 + str r0, [sp] + b _0812CAB8 +_0812CB70: + ldr r0, _0812CB8C + ldr r0, [r0] + mov r5, sp + ldrh r5, [r5] + strh r5, [r0, #0x32] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0812CB8C: .4byte 0x0203A800 + thumb_func_end DecideReelTurns_NoBiasTag_Reel3_Bet2 + + thumb_func_start DecideReelTurns_NoBiasTag_Reel3_Bet3 +DecideReelTurns_NoBiasTag_Reel3_Bet3: @ 0x0812CB90 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + bl DecideReelTurns_NoBiasTag_Reel3_Bet2 + ldr r4, _0812CC34 + ldr r2, [r4] + movs r0, #0x36 + ldrsh r1, [r2, r0] + cmp r1, #0 + beq _0812CC44 + ldrh r3, [r2, #0x34] + movs r5, #0x34 + ldrsh r0, [r2, r5] + cmp r0, r1 + beq _0812CC44 + ldrb r1, [r2, #4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0812CC44 + ldrh r1, [r2, #0x2e] + subs r1, r3, r1 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #0 + bl GetNearbyTag + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, [r4] + ldrh r1, [r0, #0x36] + ldrh r0, [r0, #0x30] + subs r1, r1, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #1 + bl GetNearbyTag + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r6, #0 + adds r1, r5, #0 + bl AreTagsMixed77 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0812CC44 + movs r1, #1 + ldr r0, [r4] + movs r2, #0x34 + ldrsh r0, [r0, r2] + cmp r0, #1 + bne _0812CBFE + movs r1, #3 +_0812CBFE: + movs r3, #0 + lsls r1, r1, #0x10 + mov r8, r1 + adds r7, r4, #0 +_0812CC06: + ldr r0, [r7] + ldrh r2, [r0, #0x32] + lsls r0, r3, #0x10 + asrs r5, r0, #0x10 + adds r2, r5, r2 + mov r0, r8 + asrs r1, r0, #0x10 + subs r1, r1, r2 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #2 + bl GetNearbyTag + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r6, r4 + bne _0812CC38 + ldr r1, [r7] + ldrh r0, [r1, #0x32] + adds r0, r5, r0 + strh r0, [r1, #0x32] + b _0812CC44 + .align 2, 0 +_0812CC34: .4byte 0x0203A800 +_0812CC38: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _0812CC06 +_0812CC44: + ldr r7, _0812CCC0 +_0812CC46: + ldr r0, [r7] + ldrh r0, [r0, #0x2e] + movs r1, #1 + subs r1, r1, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #0 + bl GetNearbyTag + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, [r7] + ldrh r0, [r0, #0x30] + movs r1, #2 + subs r1, r1, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #1 + bl GetNearbyTag + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, [r7] + ldrh r0, [r0, #0x32] + movs r1, #3 + subs r1, r1, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #2 + bl GetNearbyTag + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r6, #0 + adds r1, r5, #0 + adds r2, r4, #0 + bl TagsDontMatchOrHaveAny7s + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0812CCC4 + adds r0, r6, #0 + adds r1, r5, #0 + adds r2, r4, #0 + bl AreTagsMixed777 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0812CCB4 + ldr r0, [r7] + ldrb r1, [r0, #4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0812CCC4 +_0812CCB4: + ldr r1, [r7] + ldrh r0, [r1, #0x32] + adds r0, #1 + strh r0, [r1, #0x32] + b _0812CC46 + .align 2, 0 +_0812CCC0: .4byte 0x0203A800 +_0812CCC4: + ldr r7, _0812CD40 +_0812CCC6: + ldr r0, [r7] + ldrh r0, [r0, #0x2e] + movs r1, #3 + subs r1, r1, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #0 + bl GetNearbyTag + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, [r7] + ldrh r0, [r0, #0x30] + movs r1, #2 + subs r1, r1, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #1 + bl GetNearbyTag + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, [r7] + ldrh r0, [r0, #0x32] + movs r1, #1 + subs r1, r1, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #2 + bl GetNearbyTag + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r6, #0 + adds r1, r5, #0 + adds r2, r4, #0 + bl TagsDontMatchOrHaveAny7s + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0812CD44 + adds r0, r6, #0 + adds r1, r5, #0 + adds r2, r4, #0 + bl AreTagsMixed777 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0812CD34 + ldr r0, [r7] + ldrb r1, [r0, #4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0812CD44 +_0812CD34: + ldr r1, [r7] + ldrh r0, [r1, #0x32] + adds r0, #1 + strh r0, [r1, #0x32] + b _0812CCC6 + .align 2, 0 +_0812CD40: .4byte 0x0203A800 +_0812CD44: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end DecideReelTurns_NoBiasTag_Reel3_Bet3 + + thumb_func_start sub_0812CD50 +sub_0812CD50: @ 0x0812CD50 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r5, _0812CD7C + adds r0, r5, #0 + movs r1, #5 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0812CD80 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #0x26] + bl _call_via_r5 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0812CD7C: .4byte 0x0812CD85 +_0812CD80: .4byte 0x03005B60 + thumb_func_end sub_0812CD50 + + thumb_func_start sub_0812CD84 +sub_0812CD84: @ 0x0812CD84 + push {r4, lr} + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r3, _0812CDAC + ldr r2, _0812CDB0 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r4, #8 + ldrsh r2, [r0, r4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {r4} + thumb_func_end sub_0812CD84 + + thumb_func_start sub_0812CDA8 +sub_0812CDA8: @ 0x0812CDA8 + pop {r0} + bx r0 + .align 2, 0 +_0812CDAC: .4byte 0x085844C8 +_0812CDB0: .4byte 0x03005B60 + thumb_func_end sub_0812CDA8 + + thumb_func_start sub_0812CDB4 +sub_0812CDB4: @ 0x0812CDB4 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + ldr r1, _0812CDE4 + movs r2, #0x26 + ldrsh r0, [r4, r2] + lsls r0, r0, #1 + adds r0, 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_0812FA9C + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812CDE4: .4byte 0x085844D4 + thumb_func_end sub_0812CDB4 + + thumb_func_start sub_0812CDE8 +sub_0812CDE8: @ 0x0812CDE8 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0xa] + adds r0, #1 + strh r0, [r1, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xb + ble _0812CE00 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] +_0812CE00: + pop {r0} + bx r0 + thumb_func_end sub_0812CDE8 + + thumb_func_start sub_0812CE04 +sub_0812CE04: @ 0x0812CE04 + push {r4, lr} + sub sp, #4 + lsls r4, r1, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _0812CE38 + movs r2, #0x26 + ldrsh r0, [r0, r2] + lsls r0, r0, #1 + adds r0, 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_0812FA9C + adds r0, r4, #0 + bl DestroyTask + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812CE38: .4byte 0x085844D4 + thumb_func_end sub_0812CE04 + + thumb_func_start LoadLitTile +LoadLitTile: @ 0x0812CE3C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0812CE5C + lsls r1, r0, #2 + adds r1, r1, r2 + ldr r2, [r1] + ldr r1, _0812CE60 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r2, #0 + movs r2, #2 + bl LoadPalette + pop {r0} + bx r0 + .align 2, 0 +_0812CE5C: .4byte 0x0858550C +_0812CE60: .4byte 0x08585534 + thumb_func_end LoadLitTile + + thumb_func_start sub_0812CE64 +sub_0812CE64: @ 0x0812CE64 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0812CE84 + lsls r1, r0, #2 + adds r1, r1, r2 + ldr r2, [r1] + ldr r1, _0812CE88 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r2, #0 + movs r2, #2 + bl LoadPalette + pop {r0} + bx r0 + .align 2, 0 +_0812CE84: .4byte 0x08585520 +_0812CE88: .4byte 0x08585534 + thumb_func_end sub_0812CE64 + + thumb_func_start LoadBetTiles +LoadBetTiles: @ 0x0812CE8C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r4, #0 + ldr r0, _0812CEC0 + adds r0, r1, r0 + ldrb r0, [r0] + cmp r4, r0 + bhs _0812CEB8 + ldr r7, _0812CEC4 + adds r6, r0, #0 + lsls r5, r1, #1 +_0812CEA4: + adds r0, r4, r5 + adds r0, r0, r7 + ldrb r0, [r0] + bl LoadLitTile + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r6 + blo _0812CEA4 +_0812CEB8: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0812CEC0: .4byte 0x0858553F +_0812CEC4: .4byte 0x08585539 + thumb_func_end LoadBetTiles + + thumb_func_start sub_0812CEC8 +sub_0812CEC8: @ 0x0812CEC8 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r4, #0 + ldr r0, _0812CEFC + adds r0, r1, r0 + ldrb r0, [r0] + cmp r4, r0 + bhs _0812CEF4 + ldr r7, _0812CF00 + adds r6, r0, #0 + lsls r5, r1, #1 +_0812CEE0: + adds r0, r4, r5 + adds r0, r0, r7 + ldrb r0, [r0] + bl sub_0812CE64 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r6 + blo _0812CEE0 +_0812CEF4: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0812CEFC: .4byte 0x0858553F +_0812CF00: .4byte 0x08585539 + thumb_func_end sub_0812CEC8 + + thumb_func_start sub_0812CF04 +sub_0812CF04: @ 0x0812CF04 + push {r4, r5, lr} + movs r4, #0 + ldr r5, _0812CF38 +_0812CF0A: + ldr r0, _0812CF3C + bl CreateInvisibleSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + strh r4, [r1, #0x2e] + ldr r1, _0812CF40 + ldr r1, [r1] + adds r1, #0x44 + adds r1, r1, r4 + strb r0, [r1] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #4 + bls _0812CF0A + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0812CF38: .4byte 0x020205AC +_0812CF3C: .4byte 0x0812D035 +_0812CF40: .4byte 0x0203A800 + thumb_func_end sub_0812CF04 + + thumb_func_start sub_0812CF44 +sub_0812CF44: @ 0x0812CF44 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0812CF74 + ldr r1, [r1] + adds r1, #0x44 + adds r1, r1, r0 + ldrb r1, [r1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0812CF78 + adds r0, r0, r1 + movs r2, #0 + movs r1, #1 + strh r1, [r0, #0x30] + movs r1, #4 + strh r1, [r0, #0x32] + strh r2, [r0, #0x34] + strh r2, [r0, #0x36] + movs r1, #2 + strh r1, [r0, #0x38] + strh r2, [r0, #0x3c] + bx lr + .align 2, 0 +_0812CF74: .4byte 0x0203A800 +_0812CF78: .4byte 0x020205AC + thumb_func_end sub_0812CF44 + + thumb_func_start sub_0812CF7C +sub_0812CF7C: @ 0x0812CF7C + push {r4, r5, lr} + movs r2, #0 + ldr r0, _0812CFAC + ldr r0, [r0] + adds r3, r0, #0 + adds r3, #0x44 + ldr r4, _0812CFB0 +_0812CF8A: + adds r0, r3, r2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r4 + movs r5, #0x30 + ldrsh r0, [r1, r5] + cmp r0, #0 + beq _0812CFB4 + movs r5, #0x32 + ldrsh r0, [r1, r5] + cmp r0, #0 + beq _0812CFB4 + movs r0, #0 + b _0812CFC0 + .align 2, 0 +_0812CFAC: .4byte 0x0203A800 +_0812CFB0: .4byte 0x020205AC +_0812CFB4: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #4 + bls _0812CF8A + movs r0, #1 +_0812CFC0: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0812CF7C + + thumb_func_start sub_0812CFC8 +sub_0812CFC8: @ 0x0812CFC8 + push {r4, lr} + movs r4, #0 +_0812CFCC: + ldr r0, _0812CFE4 + ldr r0, [r0] + adds r0, #0x44 + adds r0, r0, r4 + ldrb r0, [r0] + bl sub_0812CFFC + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0812CFE8 + movs r0, #0 + b _0812CFF4 + .align 2, 0 +_0812CFE4: .4byte 0x0203A800 +_0812CFE8: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #4 + bls _0812CFCC + movs r0, #1 +_0812CFF4: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0812CFC8 + + thumb_func_start sub_0812CFFC +sub_0812CFFC: @ 0x0812CFFC + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _0812D018 + adds r1, r1, r0 + movs r2, #0x30 + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _0812D01C + movs r0, #1 + b _0812D02E + .align 2, 0 +_0812D018: .4byte 0x020205AC +_0812D01C: + ldrh r2, [r1, #0x3c] + movs r3, #0x3c + ldrsh r0, [r1, r3] + cmp r0, #0 + beq _0812D02A + movs r0, #0 + strh r0, [r1, #0x30] +_0812D02A: + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 +_0812D02E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0812CFFC + + thumb_func_start sub_0812D034 +sub_0812D034: @ 0x0812D034 + push {r4, r5, r6, r7, lr} + adds r2, r0, #0 + movs r1, #0x30 + ldrsh r0, [r2, r1] + cmp r0, #0 + beq _0812D0B6 + ldrh r0, [r2, #0x34] + subs r0, #1 + strh r0, [r2, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0812D09E + movs r0, #0 + strh r0, [r2, #0x3c] + movs r6, #1 + strh r6, [r2, #0x34] + ldrh r1, [r2, #0x38] + ldrh r3, [r2, #0x36] + adds r0, r1, r3 + strh r0, [r2, #0x36] + movs r4, #4 + ldrh r5, [r2, #0x32] + movs r7, #0x32 + ldrsh r3, [r2, r7] + cmp r3, #0 + beq _0812D070 + movs r4, #8 +_0812D070: + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bgt _0812D088 + strh r6, [r2, #0x3c] + rsbs r0, r1, #0 + strh r0, [r2, #0x38] + cmp r3, #0 + beq _0812D09E + subs r0, r5, #1 + strh r0, [r2, #0x32] + b _0812D090 +_0812D088: + cmp r0, r4 + blt _0812D090 + rsbs r0, r1, #0 + strh r0, [r2, #0x38] +_0812D090: + movs r1, #0x32 + ldrsh r0, [r2, r1] + cmp r0, #0 + beq _0812D09E + ldrh r0, [r2, #0x34] + lsls r0, r0, #1 + strh r0, [r2, #0x34] +_0812D09E: + ldr r1, _0812D0BC + movs r3, #0x2e + ldrsh r0, [r2, r3] + adds r0, r0, r1 + ldrb r0, [r0] + ldrh r3, [r2, #0x36] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r1, r3, #0 + adds r2, r3, #0 + bl MultiplyPaletteRGBComponents +_0812D0B6: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0812D0BC: .4byte 0x08585534 + thumb_func_end sub_0812D034 + + thumb_func_start sub_0812D0C0 +sub_0812D0C0: @ 0x0812D0C0 + push {r4, lr} + ldr r4, _0812D0E8 + adds r0, r4, #0 + movs r1, #6 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0812D0EC + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r2, #1 + strh r2, [r1, #0xe] + bl _call_via_r4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812D0E8: .4byte 0x0812D139 +_0812D0EC: .4byte 0x03005B60 + thumb_func_end sub_0812D0C0 + + thumb_func_start sub_0812D0F0 +sub_0812D0F0: @ 0x0812D0F0 + push {lr} + ldr r0, _0812D114 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _0812D118 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0xc + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _0812D11C + movs r0, #0 + b _0812D130 + .align 2, 0 +_0812D114: .4byte 0x0812D139 +_0812D118: .4byte 0x03005B60 +_0812D11C: + adds r0, r2, #0 + bl DestroyTask + ldr r0, _0812D134 + ldr r0, [r0] + movs r1, #0x10 + movs r2, #0x20 + bl LoadPalette + movs r0, #1 +_0812D130: + pop {r1} + bx r1 + .align 2, 0 +_0812D134: .4byte 0x085855B0 + thumb_func_end sub_0812D0F0 + + thumb_func_start sub_0812D138 +sub_0812D138: @ 0x0812D138 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _0812D190 + adds r2, r1, r0 + ldrh r0, [r2, #0xa] + subs r0, #1 + strh r0, [r2, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0812D176 + movs r0, #4 + strh r0, [r2, #0xa] + ldrh r1, [r2, #0xe] + ldrh r3, [r2, #0xc] + adds r0, r1, r3 + strh r0, [r2, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + beq _0812D172 + cmp r0, #2 + bne _0812D176 +_0812D172: + rsbs r0, r1, #0 + strh r0, [r2, #0xe] +_0812D176: + ldr r0, _0812D194 + movs r3, #0xc + ldrsh r1, [r2, r3] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + movs r1, #0x10 + movs r2, #0x20 + bl LoadPalette + pop {r0} + bx r0 + .align 2, 0 +_0812D190: .4byte 0x03005B60 +_0812D194: .4byte 0x085855A4 + thumb_func_end sub_0812D138 + + thumb_func_start GameplayTask_PikaPower +GameplayTask_PikaPower: @ 0x0812D198 + push {lr} + ldr r0, _0812D1B0 + movs r1, #8 + bl CreateTask + ldr r1, _0812D1B4 + ldr r1, [r1] + adds r1, #0x3e + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0812D1B0: .4byte 0x0812D241 +_0812D1B4: .4byte 0x0203A800 + thumb_func_end GameplayTask_PikaPower + + thumb_func_start DisplayPikaPower +DisplayPikaPower: @ 0x0812D1B8 + push {r4, lr} + ldr r0, _0812D1E4 + ldr r0, [r0] + adds r0, #0x3e + ldrb r0, [r0] + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _0812D1E8 + adds r4, r4, r0 + adds r0, r4, #0 + bl ClearTaskDataFields_2orHigher + movs r1, #1 + strh r1, [r4, #8] + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + strh r1, [r4, #0x26] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812D1E4: .4byte 0x0203A800 +_0812D1E8: .4byte 0x03005B60 + thumb_func_end DisplayPikaPower + + thumb_func_start sub_0812D1EC +sub_0812D1EC: @ 0x0812D1EC + push {r4, lr} + ldr r0, _0812D214 + ldr r0, [r0] + adds r0, #0x3e + ldrb r0, [r0] + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _0812D218 + adds r4, r4, r0 + adds r0, r4, #0 + bl ClearTaskDataFields_2orHigher + movs r0, #3 + strh r0, [r4, #8] + movs r0, #1 + strh r0, [r4, #0x26] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812D214: .4byte 0x0203A800 +_0812D218: .4byte 0x03005B60 + thumb_func_end sub_0812D1EC + + thumb_func_start sub_0812D21C +sub_0812D21C: @ 0x0812D21C + ldr r2, _0812D238 + ldr r0, _0812D23C + ldr r0, [r0] + adds r0, #0x3e + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrh r0, [r0, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bx lr + .align 2, 0 +_0812D238: .4byte 0x03005B60 +_0812D23C: .4byte 0x0203A800 + thumb_func_end sub_0812D21C + + thumb_func_start RunInfoBoxActions +RunInfoBoxActions: @ 0x0812D240 + push {lr} + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r3, _0812D268 + ldr r2, _0812D26C + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r2, #8 + ldrsh r1, [r0, r2] + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_0812D268: .4byte 0x085844DC +_0812D26C: .4byte 0x03005B60 + thumb_func_end RunInfoBoxActions + + thumb_func_start sub_0812D270 +sub_0812D270: @ 0x0812D270 + bx lr + .align 2, 0 + thumb_func_end sub_0812D270 + + thumb_func_start sub_0812D274 +sub_0812D274: @ 0x0812D274 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0xa] + lsls r0, r0, #0x13 + movs r1, #0xa0 + lsls r1, r1, #0xd + adds r0, r0, r1 + asrs r0, r0, #0x10 + movs r1, #0x14 + bl sub_0812EF10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0xc] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0812D274 + + thumb_func_start sub_0812D29C +sub_0812D29C: @ 0x0812D29C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _0812D2D0 + movs r0, #0xc + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0x3c + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _0812D30C + ldrh r1, [r4, #0xa] + adds r0, r1, #2 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + movs r3, #0 + movs r2, #0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #1 + bne _0812D2D4 + movs r3, #1 + movs r2, #1 + b _0812D2DC + .align 2, 0 +_0812D2D0: .4byte 0x020205AC +_0812D2D4: + cmp r1, #0x10 + bne _0812D2DC + movs r3, #2 + movs r2, #2 +_0812D2DC: + ldr r0, _0812D314 + ldr r0, [r0] + lsls r1, r2, #1 + adds r1, r1, r0 + ldr r2, _0812D318 + lsls r0, r3, #2 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r1] + lsls r3, r5, #0x10 + movs r0, #0x80 + lsls r0, r0, #0xf + adds r3, r3, r0 + lsrs r3, r3, #0x10 + movs r0, #2 + movs r2, #2 + bl LoadBgTilemap + ldrb r0, [r4, #0xc] + bl sub_0812EF7C + movs r0, #0 + strh r0, [r4, #8] + strh r0, [r4, #0x26] +_0812D30C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0812D314: .4byte 0x0203A798 +_0812D318: .4byte 0x085844EC + thumb_func_end sub_0812D29C + + thumb_func_start sub_0812D31C +sub_0812D31C: @ 0x0812D31C + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0xa] + adds r0, r1, #2 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + movs r3, #0 + movs r2, #3 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #1 + bne _0812D33A + movs r3, #1 + movs r2, #1 + b _0812D342 +_0812D33A: + cmp r1, #0x10 + bne _0812D342 + movs r3, #2 + movs r2, #2 +_0812D342: + movs r1, #0xc + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0812D376 + ldr r0, _0812D39C + ldr r0, [r0] + lsls r1, r2, #1 + adds r1, r1, r0 + ldr r0, _0812D3A0 + lsls r2, r3, #2 + adds r0, #2 + adds r2, r2, r0 + ldrh r0, [r2] + strh r0, [r1] + lsls r3, r5, #0x10 + movs r0, #0x80 + lsls r0, r0, #0xf + adds r3, r3, r0 + lsrs r3, r3, #0x10 + movs r0, #2 + movs r2, #2 + bl LoadBgTilemap + ldrh r0, [r4, #0xa] + subs r0, #1 + strh r0, [r4, #0xa] +_0812D376: + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x13 + ble _0812D388 + movs r0, #0 + strh r0, [r4, #0xc] +_0812D388: + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0812D394 + strh r0, [r4, #8] + strh r0, [r4, #0x26] +_0812D394: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0812D39C: .4byte 0x0203A798 +_0812D3A0: .4byte 0x085844EC + thumb_func_end sub_0812D31C + + thumb_func_start ClearTaskDataFields_2orHigher +ClearTaskDataFields_2orHigher: @ 0x0812D3A4 + push {lr} + movs r1, #2 + adds r2, r0, #0 + adds r2, #8 + movs r3, #0 +_0812D3AE: + lsls r0, r1, #1 + adds r0, r2, r0 + strh r3, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xf + bls _0812D3AE + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ClearTaskDataFields_2orHigher + + thumb_func_start sub_0812D3C4 +sub_0812D3C4: @ 0x0812D3C4 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r4, #3 + movs r5, #0 + cmp r5, r6 + bge _0812D42E + ldr r7, _0812D3E8 +_0812D3D4: + movs r3, #0 + movs r1, #0 + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bne _0812D3EC + movs r3, #1 + movs r1, #1 + b _0812D3F4 + .align 2, 0 +_0812D3E8: .4byte 0x085844EC +_0812D3EC: + cmp r0, #0xf + bne _0812D3F4 + movs r3, #2 + movs r1, #2 +_0812D3F4: + ldr r0, _0812D448 + ldr r0, [r0] + lsls r1, r1, #1 + adds r1, r1, r0 + lsls r0, r3, #2 + adds r0, r0, r7 + ldrh r0, [r0] + strh r0, [r1] + lsls r3, r4, #0x10 + asrs r4, r3, #0x10 + movs r0, #0x80 + lsls r0, r0, #0xf + adds r3, r3, r0 + lsrs r3, r3, #0x10 + movs r0, #2 + movs r2, #2 + bl LoadBgTilemap + lsls r0, r5, #0x10 + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r0, r1 + adds r4, #1 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsrs r5, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, r6 + blt _0812D3D4 +_0812D42E: + lsls r2, r5, #0x10 + asrs r0, r2, #0x10 + cmp r0, #0xf + bgt _0812D494 + ldr r7, _0812D44C +_0812D438: + movs r3, #0 + movs r1, #3 + asrs r0, r2, #0x10 + cmp r0, #0 + bne _0812D450 + movs r3, #1 + movs r1, #1 + b _0812D458 + .align 2, 0 +_0812D448: .4byte 0x0203A798 +_0812D44C: .4byte 0x085844EE +_0812D450: + cmp r0, #0xf + bne _0812D458 + movs r3, #2 + movs r1, #2 +_0812D458: + ldr r0, _0812D4B0 + ldr r0, [r0] + lsls r1, r1, #1 + adds r1, r1, r0 + lsls r0, r3, #2 + adds r0, r0, r7 + ldrh r0, [r0] + strh r0, [r1] + lsls r3, r4, #0x10 + asrs r4, r3, #0x10 + movs r0, #0x80 + lsls r0, r0, #0xf + adds r3, r3, r0 + lsrs r3, r3, #0x10 + movs r0, #2 + movs r2, #2 + bl LoadBgTilemap + lsls r0, r5, #0x10 + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r0, r1 + lsrs r5, r0, #0x10 + adds r4, #1 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r2, r5, #0x10 + asrs r0, r2, #0x10 + cmp r0, #0xf + ble _0812D438 +_0812D494: + ldr r2, _0812D4B4 + ldr r0, _0812D4B8 + ldr r0, [r0] + adds r0, #0x3e + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + strh r6, [r0, #0xa] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0812D4B0: .4byte 0x0203A798 +_0812D4B4: .4byte 0x03005B60 +_0812D4B8: .4byte 0x0203A800 + thumb_func_end sub_0812D3C4 + + thumb_func_start BeginReeltime +BeginReeltime: @ 0x0812D4BC + push {r4, lr} + ldr r4, _0812D4D8 + adds r0, r4, #0 + movs r1, #7 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl _call_via_r4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812D4D8: .4byte 0x0812D4FD + thumb_func_end BeginReeltime + + thumb_func_start IsFinalTask_RunReelTimeActions +IsFinalTask_RunReelTimeActions: @ 0x0812D4DC + push {lr} + ldr r0, _0812D4F0 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _0812D4F4 + movs r0, #0 + b _0812D4F6 + .align 2, 0 +_0812D4F0: .4byte 0x0812D4FD +_0812D4F4: + movs r0, #1 +_0812D4F6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsFinalTask_RunReelTimeActions + + thumb_func_start RunReeltimeActions +RunReeltimeActions: @ 0x0812D4FC + push {lr} + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r3, _0812D524 + ldr r2, _0812D528 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r2, #8 + ldrsh r1, [r0, r2] + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_0812D524: .4byte 0x085844F8 +_0812D528: .4byte 0x03005B60 + thumb_func_end RunReeltimeActions + + thumb_func_start ReeltimeAction0 +ReeltimeAction0: @ 0x0812D52C + push {lr} + ldr r3, _0812D598 + ldr r1, [r3] + movs r2, #0 + strb r2, [r1, #0xa] + ldr r1, [r3] + strh r2, [r1, #0x14] + strh r2, [r1, #0x16] + ldrh r1, [r0, #8] + adds r1, #1 + strh r1, [r0, #8] + strh r2, [r0, #0xa] + movs r1, #0x1e + strh r1, [r0, #0xc] + movs r1, #0xa0 + lsls r1, r1, #3 + strh r1, [r0, #0x10] + ldr r0, _0812D59C + strh r2, [r0] + ldr r0, _0812D5A0 + strh r2, [r0] + movs r0, #0x14 + movs r1, #0 + bl SetGpuReg + movs r0, #0x16 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1e + movs r1, #0 + bl sub_0812DC18 + bl sub_0812E484 + bl sub_0812E34C + bl sub_0812E660 + bl sub_0812E71C + bl sub_0812E7DC + bl GetReeltimeDraw + bl StopMapMusic + movs r0, #0xc4 + lsls r0, r0, #1 + bl PlayNewMapMusic + pop {r0} + bx r0 + .align 2, 0 +_0812D598: .4byte 0x0203A800 +_0812D59C: .4byte 0x02021B38 +_0812D5A0: .4byte 0x02021B3A + thumb_func_end ReeltimeAction0 + + thumb_func_start ReeltimeAction1 +ReeltimeAction1: @ 0x0812D5A4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _0812D614 + ldrh r0, [r1] + subs r0, #8 + strh r0, [r1] + ldrh r1, [r4, #0xa] + adds r1, #8 + strh r1, [r4, #0xa] + movs r2, #0xa + ldrsh r0, [r4, r2] + adds r0, #0xf0 + movs r2, #0xff + ands r0, r2 + lsrs r5, r0, #3 + ldr r0, _0812D618 + ands r1, r0 + movs r0, #0x14 + bl SetGpuReg + adds r2, r5, #0 + movs r1, #0xc + ldrsh r0, [r4, r1] + cmp r2, r0 + beq _0812D5F2 + movs r1, #0xe + ldrsh r0, [r4, r1] + cmp r0, #0x12 + bgt _0812D5F2 + strh r5, [r4, #0xc] + ldrh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x13 + strh r0, [r4, #0xe] + movs r0, #0xe + ldrsh r1, [r4, r0] + adds r0, r2, #0 + bl sub_0812DC18 +_0812D5F2: + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0xc7 + ble _0812D604 + ldrh r0, [r4, #8] + adds r0, #1 + movs r1, #0 + strh r0, [r4, #8] + strh r1, [r4, #0xe] +_0812D604: + ldrh r0, [r4, #0x10] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + bl AdvanceReeltimeReel + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0812D614: .4byte 0x02021B38 +_0812D618: .4byte 0x000001FF + thumb_func_end ReeltimeAction1 + + thumb_func_start ReeltimeAction2 +ReeltimeAction2: @ 0x0812D61C + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x10] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + bl AdvanceReeltimeReel + ldrh r0, [r4, #0x12] + adds r0, #1 + strh r0, [r4, #0x12] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x3b + ble _0812D646 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + bl CreateReelTimeSprites1 + bl CreateReelTimeSprite2 +_0812D646: + pop {r4} + pop {r0} + bx r0 + thumb_func_end ReeltimeAction2 + + thumb_func_start ReeltimeAction3 +ReeltimeAction3: @ 0x0812D64C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x14 + adds r7, r0, #0 + ldr r1, _0812D6E8 + mov r0, sp + movs r2, #4 + bl memcpy + add r0, sp, #4 + mov r8, r0 + ldr r1, _0812D6EC + movs r2, #8 + bl memcpy + add r6, sp, #0xc + ldr r1, _0812D6F0 + adds r0, r6, #0 + movs r2, #8 + bl memcpy + ldrh r0, [r7, #0x10] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + bl AdvanceReeltimeReel + ldrh r0, [r7, #0x10] + subs r0, #4 + strh r0, [r7, #0x10] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + movs r5, #4 + subs r5, r5, r0 + lsls r4, r5, #1 + add r8, r4 + mov r1, r8 + movs r2, #0 + ldrsh r0, [r1, r2] + bl sub_0812EA54 + adds r6, r6, r4 + movs r1, #0 + ldrsh r0, [r6, r1] + bl sub_0812EBBC + ldr r0, _0812D6F4 + ldr r0, [r0] + adds r0, #0x3f + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0812D6F8 + adds r0, 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, r1, #1 + cmp r0, r1 + bgt _0812D6DC + ldrh r0, [r7, #8] + adds r0, #1 + strh r0, [r7, #8] + strh r1, [r7, #0x10] + movs r0, #0 + strh r0, [r7, #0x12] +_0812D6DC: + add sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0812D6E8: .4byte 0x08584544 +_0812D6EC: .4byte 0x08584548 +_0812D6F0: .4byte 0x08584550 +_0812D6F4: .4byte 0x0203A800 +_0812D6F8: .4byte 0x020205AC + thumb_func_end ReeltimeAction3 + + thumb_func_start ReeltimeAction4 +ReeltimeAction4: @ 0x0812D6FC + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x10] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + bl AdvanceReeltimeReel + ldrh r0, [r4, #0x12] + adds r0, #1 + strh r0, [r4, #0x12] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x4f + ble _0812D740 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + strh r0, [r4, #0x12] + movs r0, #2 + bl sub_0812EBBC + ldr r0, _0812D748 + ldr r0, [r0] + adds r0, #0x3f + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0812D74C + adds r0, r0, r1 + movs r1, #3 + bl StartSpriteAnimIfDifferent +_0812D740: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812D748: .4byte 0x0203A800 +_0812D74C: .4byte 0x020205AC + thumb_func_end ReeltimeAction4 + + thumb_func_start ReeltimeAction5 +ReeltimeAction5: @ 0x0812D750 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x10] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + bl AdvanceReeltimeReel + ldrb r0, [r4, #0x10] + adds r0, #0x80 + strh r0, [r4, #0x10] + ldrh r0, [r4, #0x12] + adds r0, #1 + strh r0, [r4, #0x12] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x4f + ble _0812D77C + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + strh r0, [r4, #0x12] +_0812D77C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ReeltimeAction5 + + thumb_func_start ReeltimeAction6 +ReeltimeAction6: @ 0x0812D784 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x10] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + bl AdvanceReeltimeReel + ldrb r0, [r4, #0x10] + adds r0, #0x40 + strh r0, [r4, #0x10] + ldrh r0, [r4, #0x12] + adds r0, #1 + strh r0, [r4, #0x12] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x27 + ble _0812D7EC + movs r0, #0 + strh r0, [r4, #0x12] + ldr r0, _0812D7C4 + ldr r1, [r0] + ldrb r0, [r1, #5] + cmp r0, #0 + beq _0812D7C8 + ldrb r1, [r1, #0xa] + movs r2, #0x14 + ldrsh r0, [r4, r2] + cmp r1, r0 + bgt _0812D7E6 + ldrh r0, [r4, #8] + adds r0, #1 + b _0812D7E4 + .align 2, 0 +_0812D7C4: .4byte 0x0203A800 +_0812D7C8: + movs r1, #0x14 + ldrsh r0, [r4, r1] + cmp r0, #3 + ble _0812D7D6 + ldrh r0, [r4, #8] + adds r0, #1 + b _0812D7E4 +_0812D7D6: + ldrh r0, [r4, #0x14] + bl SkipToReeltimeAction14 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0812D7E6 + movs r0, #0xe +_0812D7E4: + strh r0, [r4, #8] +_0812D7E6: + ldrh r0, [r4, #0x14] + adds r0, #1 + strh r0, [r4, #0x14] +_0812D7EC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ReeltimeAction6 + + thumb_func_start ReelTimeAction_LandOnOutcome +ReelTimeAction_LandOnOutcome: @ 0x0812D7F4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r6, _0812D81C + ldr r0, [r6] + movs r1, #0x14 + ldrsh r0, [r0, r1] + movs r1, #0x14 + bl __modsi3 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r0, #0 + beq _0812D820 + ldrh r0, [r4, #0x10] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + bl AdvanceReeltimeReelToNextTag + b _0812D848 + .align 2, 0 +_0812D81C: .4byte 0x0203A800 +_0812D820: + movs r0, #1 + bl GetNearbyReelTimeTag + ldr r1, [r6] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1, #5] + cmp r0, r1 + beq _0812D852 + ldrh r0, [r4, #0x10] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + bl AdvanceReeltimeReel + ldr r0, [r6] + movs r1, #0x14 + ldrsh r0, [r0, r1] + movs r1, #0x14 + bl __modsi3 +_0812D848: + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldrb r0, [r4, #0x10] + adds r0, #0x40 + strh r0, [r4, #0x10] +_0812D852: + lsls r0, r5, #0x10 + asrs r5, r0, #0x10 + cmp r5, #0 + bne _0812D876 + movs r0, #1 + bl GetNearbyReelTimeTag + ldr r1, _0812D87C + ldr r1, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1, #5] + cmp r0, r1 + bne _0812D876 + strh r5, [r4, #0x10] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_0812D876: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0812D87C: .4byte 0x0203A800 + thumb_func_end ReelTimeAction_LandOnOutcome + + thumb_func_start ReeltimeAction8 +ReeltimeAction8: @ 0x0812D880 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x10] + adds r0, #1 + movs r6, #0 + strh r0, [r4, #0x10] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x3b + ble _0812D924 + bl StopMapMusic + bl sub_0812EA8C + bl sub_0812EBDC + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + ldr r5, _0812D8D4 + ldr r1, [r5] + ldrb r0, [r1, #5] + cmp r0, #0 + bne _0812D8E0 + movs r0, #0xa0 + strh r0, [r4, #0x10] + adds r0, r1, #0 + adds r0, #0x3f + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0812D8D8 + adds r0, r0, r1 + movs r1, #5 + bl StartSpriteAnimIfDifferent + ldr r0, _0812D8DC + bl PlayFanfare + b _0812D924 + .align 2, 0 +_0812D8D4: .4byte 0x0203A800 +_0812D8D8: .4byte 0x020205AC +_0812D8DC: .4byte 0x00000187 +_0812D8E0: + movs r0, #0xc0 + strh r0, [r4, #0x10] + adds r0, r1, #0 + adds r0, #0x3f + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _0812D92C + adds r0, r0, r4 + movs r1, #4 + bl StartSpriteAnimIfDifferent + ldr r0, [r5] + adds r0, #0x3f + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x2b + strb r6, [r0] + ldr r0, [r5] + ldrb r0, [r0, #2] + cmp r0, #0 + beq _0812D91C + bl sub_0812D1EC + ldr r0, [r5] + strb r6, [r0, #2] +_0812D91C: + movs r0, #0xc3 + lsls r0, r0, #1 + bl PlayFanfare +_0812D924: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0812D92C: .4byte 0x020205AC + thumb_func_end ReeltimeAction8 + + thumb_func_start ReeltimeAction9 +ReeltimeAction9: @ 0x0812D930 + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x10] + movs r2, #0x10 + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _0812D948 + subs r0, r1, #1 + strh r0, [r4, #0x10] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0812D958 +_0812D948: + bl sub_0812D21C + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0812D958 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_0812D958: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ReeltimeAction9 + + thumb_func_start ReeltimeAction10 +ReeltimeAction10: @ 0x0812D960 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _0812D9A0 + ldrh r0, [r1] + subs r0, #8 + strh r0, [r1] + ldrh r1, [r4, #0xa] + adds r1, #8 + strh r1, [r4, #0xa] + ldrh r0, [r4, #0xe] + adds r0, #8 + strh r0, [r4, #0xe] + movs r2, #0xa + ldrsh r0, [r4, r2] + subs r0, #8 + movs r2, #0xff + ands r0, r2 + lsrs r5, r0, #3 + ldr r0, _0812D9A4 + ands r1, r0 + movs r0, #0x14 + bl SetGpuReg + ldrh r0, [r4, #0xe] + lsls r0, r0, #0x10 + asrs r0, r0, #0x13 + cmp r0, #0x19 + bgt _0812D9A8 + adds r0, r5, #0 + bl sub_0812DC60 + b _0812D9AE + .align 2, 0 +_0812D9A0: .4byte 0x02021B38 +_0812D9A4: .4byte 0x000001FF +_0812D9A8: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_0812D9AE: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end ReeltimeAction10 + + thumb_func_start ReeltimeAction11 +ReeltimeAction11: @ 0x0812D9B4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r4, _0812DA08 + ldr r0, [r4] + movs r6, #0 + strb r6, [r0, #0xb] + ldr r1, [r4] + ldrb r0, [r1, #5] + strb r0, [r1, #0xa] + ldr r0, _0812DA0C + strh r6, [r0] + movs r0, #0x14 + movs r1, #0 + bl SetGpuReg + ldr r1, [r4] + movs r0, #8 + strh r0, [r1, #0x1a] + bl sub_0812E3F8 + bl sub_0812E83C + bl sub_0812E8D4 + ldr r0, [r4] + adds r0, #0x60 + ldrh r0, [r0] + bl PlayNewMapMusic + ldr r0, [r4] + ldrb r0, [r0, #0xa] + cmp r0, #0 + bne _0812DA14 + ldr r0, _0812DA10 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + b _0812DA2A + .align 2, 0 +_0812DA08: .4byte 0x0203A800 +_0812DA0C: .4byte 0x02021B38 +_0812DA10: .4byte 0x0812D4FD +_0812DA14: + movs r0, #4 + bl sub_0812DEF4 + bl SlowReelSpeed + strh r0, [r5, #0xa] + strh r6, [r5, #0xc] + strh r6, [r5, #0xe] + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] +_0812DA2A: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end ReeltimeAction11 + + thumb_func_start ReeltimeAction12 +ReeltimeAction12: @ 0x0812DA30 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _0812DA4C + ldr r5, [r0] + movs r0, #0x1a + ldrsh r1, [r5, r0] + movs r2, #0xa + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _0812DA50 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _0812DA76 + .align 2, 0 +_0812DA4C: .4byte 0x0203A800 +_0812DA50: + movs r1, #0x1c + ldrsh r0, [r5, r1] + movs r1, #0x18 + bl __modsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0812DA76 + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _0812DA76 + ldrh r0, [r5, #0x1a] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + strh r0, [r5, #0x1a] +_0812DA76: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end ReeltimeAction12 + + thumb_func_start ReeltimeAction13 +ReeltimeAction13: @ 0x0812DA7C + push {lr} + bl sub_0812E064 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0812DA96 + ldr r0, _0812DA9C + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_0812DA96: + pop {r0} + bx r0 + .align 2, 0 +_0812DA9C: .4byte 0x0812D4FD + thumb_func_end ReeltimeAction13 + + thumb_func_start ReeltimeAction14 +ReeltimeAction14: @ 0x0812DAA0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0812E83C + bl sub_0812EA8C + bl sub_0812EBDC + bl sub_0812EC30 + ldr r5, _0812DB08 + ldr r3, _0812DB0C + ldr r0, [r3] + adds r0, #0x4e + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + ldr r0, [r3] + adds r0, #0x3f + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #5 + bl StartSpriteAnimIfDifferent + ldrh r0, [r4, #8] + adds r0, #1 + movs r1, #0 + strh r0, [r4, #8] + movs r0, #4 + strh r0, [r4, #0x10] + strh r1, [r4, #0x12] + bl StopMapMusic + ldr r0, _0812DB10 + bl PlayFanfare + movs r0, #0xb2 + bl PlaySE + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0812DB08: .4byte 0x020205AC +_0812DB0C: .4byte 0x0203A800 +_0812DB10: .4byte 0x00000187 + thumb_func_end ReeltimeAction14 + + thumb_func_start ReeltimeAction15 +ReeltimeAction15: @ 0x0812DB14 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _0812DB90 + ldrh r0, [r4, #0x10] + strh r0, [r1] + ldrh r1, [r4, #0x10] + movs r0, #0x16 + bl SetGpuReg + ldrh r1, [r4, #0x12] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0812DB36 + ldrh r0, [r4, #0x10] + rsbs r0, r0, #0 + strh r0, [r4, #0x10] +_0812DB36: + ldrh r0, [r4, #0x12] + adds r0, #1 + strh r0, [r4, #0x12] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0812DB4C + ldrh r0, [r4, #0x10] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + strh r0, [r4, #0x10] +_0812DB4C: + movs r0, #0x10 + ldrsh r5, [r4, r0] + cmp r5, #0 + bne _0812DB8A + bl sub_0812EC80 + bl sub_0812ECA4 + bl sub_0812E5B8 + bl sub_0812EDD0 + ldr r2, _0812DB94 + ldr r0, _0812DB98 + ldr r0, [r0] + adds r0, #0x4e + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + strh r5, [r4, #0x12] +_0812DB8A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0812DB90: .4byte 0x02021B3A +_0812DB94: .4byte 0x020205AC +_0812DB98: .4byte 0x0203A800 + thumb_func_end ReeltimeAction15 + + thumb_func_start ReeltimeAction16 +ReeltimeAction16: @ 0x0812DB9C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0812DBC8 + movs r0, #0 + strh r0, [r1] + movs r0, #0x16 + movs r1, #0 + bl SetGpuReg + bl sub_0812EEB8 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0812DBC2 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + bl sub_0812EEDC +_0812DBC2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812DBC8: .4byte 0x02021B3A + thumb_func_end ReeltimeAction16 + + thumb_func_start ReeltimeAction17 +ReeltimeAction17: @ 0x0812DBCC + push {lr} + ldr r1, _0812DC0C + movs r0, #0 + strh r0, [r1] + movs r0, #0x14 + movs r1, #0 + bl SetGpuReg + ldr r0, _0812DC10 + ldr r0, [r0] + adds r0, #0x60 + ldrh r0, [r0] + bl PlayNewMapMusic + bl sub_0812E3F8 + bl sub_0812E908 + bl sub_0812E8D4 + bl sub_0812ED9C + ldr r0, _0812DC14 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + pop {r0} + bx r0 + .align 2, 0 +_0812DC0C: .4byte 0x02021B38 +_0812DC10: .4byte 0x0203A800 +_0812DC14: .4byte 0x0812D4FD + thumb_func_end ReeltimeAction17 + + thumb_func_start sub_0812DC18 +sub_0812DC18: @ 0x0812DC18 + push {r4, r5, r6, lr} + movs r2, #4 + lsls r1, r1, #0x10 + asrs r6, r1, #0x10 + lsls r0, r0, #0x10 + asrs r5, r0, #0x10 +_0812DC24: + lsls r4, r2, #0x10 + asrs r4, r4, #0x10 + subs r0, r4, #4 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r6, r1 + lsls r1, r1, #1 + ldr r0, _0812DC5C + adds r1, r1, r0 + lsls r3, r4, #5 + adds r3, r5, r3 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + movs r0, #1 + movs r2, #2 + bl LoadBgTilemap + adds r4, #1 + lsls r4, r4, #0x10 + lsrs r2, r4, #0x10 + asrs r4, r4, #0x10 + cmp r4, #0xe + ble _0812DC24 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0812DC5C: .4byte 0x08587F9C + thumb_func_end sub_0812DC18 + + thumb_func_start sub_0812DC60 +sub_0812DC60: @ 0x0812DC60 + push {r4, r5, lr} + movs r4, #4 + lsls r0, r0, #0x10 + asrs r5, r0, #0x10 +_0812DC68: + lsls r3, r4, #5 + adds r3, r5, r3 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + movs r0, #1 + ldr r1, _0812DC8C + movs r2, #2 + bl LoadBgTilemap + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xe + bls _0812DC68 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0812DC8C: .4byte 0x08588604 + thumb_func_end sub_0812DC60 + + thumb_func_start OpenInfoBox +OpenInfoBox: @ 0x0812DC90 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r5, _0812DCBC + adds r0, r5, #0 + movs r1, #1 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0812DCC0 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + strh r4, [r1, #0xa] + bl _call_via_r5 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0812DCBC: .4byte 0x0812DCE5 +_0812DCC0: .4byte 0x03005B60 + thumb_func_end OpenInfoBox + + thumb_func_start IsInfoBoxClosed +IsInfoBoxClosed: @ 0x0812DCC4 + push {lr} + ldr r0, _0812DCD8 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _0812DCDC + movs r0, #0 + b _0812DCDE + .align 2, 0 +_0812DCD8: .4byte 0x0812DCE5 +_0812DCDC: + movs r0, #1 +_0812DCDE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsInfoBoxClosed + + thumb_func_start sub_0812DCE4 +sub_0812DCE4: @ 0x0812DCE4 + push {lr} + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r3, _0812DD0C + ldr r2, _0812DD10 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r2, #8 + ldrsh r1, [r0, r2] + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_0812DD0C: .4byte 0x08584558 +_0812DD10: .4byte 0x03005B60 + thumb_func_end sub_0812DCE4 + + thumb_func_start InfoBox_FadeIn +InfoBox_FadeIn: @ 0x0812DD14 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end InfoBox_FadeIn + + thumb_func_start InfoBox_WaitForFade +InfoBox_WaitForFade: @ 0x0812DD38 + push {lr} + adds r2, r0, #0 + ldr r0, _0812DD54 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0812DD4E + ldrh r0, [r2, #8] + adds r0, #1 + strh r0, [r2, #8] +_0812DD4E: + pop {r0} + bx r0 + .align 2, 0 +_0812DD54: .4byte 0x02037C74 + thumb_func_end InfoBox_WaitForFade + + thumb_func_start InfoBox_8104B80 +InfoBox_8104B80: @ 0x0812DD58 + push {r4, lr} + adds r4, r0, #0 + bl sub_0812DFEC + bl sub_0812FB18 + ldr r0, _0812DD84 + bl AddWindow + movs r0, #1 + bl PutWindowTilemap + movs r0, #1 + movs r1, #0 + bl FillWindowPixelBuffer + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812DD84: .4byte 0x085843C8 + thumb_func_end InfoBox_8104B80 + + thumb_func_start InfoBox_AddText +InfoBox_AddText: @ 0x0812DD88 + push {r4, r5, lr} + sub sp, #0xc + adds r5, r0, #0 + ldr r0, _0812DDCC + str r0, [sp] + movs r4, #0 + str r4, [sp, #4] + ldr r0, _0812DDD0 + str r0, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 + movs r0, #1 + movs r1, #3 + bl CopyWindowToVram + movs r0, #1 + rsbs r0, r0, #0 + str r4, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0812DDCC: .4byte 0x085843D0 +_0812DDD0: .4byte 0x08588651 + thumb_func_end InfoBox_AddText + + thumb_func_start InfoBox_AwaitPlayerInput +InfoBox_AwaitPlayerInput: @ 0x0812DDD4 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + ldr r0, _0812DE20 + ldrh r1, [r0, #0x2e] + movs r0, #6 + ands r0, r1 + cmp r0, #0 + beq _0812DE18 + movs r0, #1 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #1 + bl ClearWindowTilemap + movs r0, #1 + movs r1, #1 + bl CopyWindowToVram + movs r0, #1 + bl RemoveWindow + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_0812DE18: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812DE20: .4byte 0x03002360 + thumb_func_end InfoBox_AwaitPlayerInput + + thumb_func_start InfoBox_812DE14 +InfoBox_812DE14: @ 0x0812DE24 + push {r4, lr} + adds r4, r0, #0 + bl sub_0812F978 + movs r0, #3 + bl ShowBg + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end InfoBox_812DE14 + + thumb_func_start InfoBox_812DE30 +InfoBox_812DE30: @ 0x0812DE40 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + bl sub_0812DEF4 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end InfoBox_812DE30 + + thumb_func_start InfoBox_8104BFC +InfoBox_8104BFC: @ 0x0812DE58 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + ldr r0, _0812DE88 + ldr r0, [r0] + ldrb r0, [r0, #2] + bl sub_0812D3C4 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812DE88: .4byte 0x0203A800 + thumb_func_end InfoBox_8104BFC + + thumb_func_start InfoBox_FreeTask +InfoBox_FreeTask: @ 0x0812DE8C + push {lr} + ldr r0, _0812DEA0 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + pop {r0} + bx r0 + .align 2, 0 +_0812DEA0: .4byte 0x0812DCE5 + thumb_func_end InfoBox_FreeTask + + thumb_func_start sub_0812DEA4 +sub_0812DEA4: @ 0x0812DEA4 + push {lr} + ldr r0, _0812DEE4 + movs r1, #3 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r0, _0812DEE8 + ldr r0, [r0] + adds r0, #0x3d + strb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + ldr r1, _0812DEEC + adds r0, r0, r1 + ldr r1, _0812DEF0 + strh r1, [r0, #0xa] + movs r1, #4 + adds r2, r0, #0 + adds r2, #8 + movs r3, #0x40 +_0812DED0: + lsls r0, r1, #1 + adds r0, r2, r0 + strh r3, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xf + bls _0812DED0 + pop {r0} + bx r0 + .align 2, 0 +_0812DEE4: .4byte 0x0812E0C1 +_0812DEE8: .4byte 0x0203A800 +_0812DEEC: .4byte 0x03005B60 +_0812DEF0: .4byte 0x0000FFFF + thumb_func_end sub_0812DEA4 + + thumb_func_start sub_0812DEF4 +sub_0812DEF4: @ 0x0812DEF4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl sub_0812DFEC + ldr r0, _0812DF6C + ldr r0, [r0] + adds r0, #0x3d + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + ldr r1, _0812DF70 + adds r7, r0, r1 + strh r4, [r7, #0xa] + movs r6, #0 + ldr r1, _0812DF74 + lsls r5, r4, #2 + adds r0, r5, r1 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #0xff + beq _0812DF62 + mov r8, r1 +_0812DF2A: + mov r0, r8 + adds r4, r5, r0 + ldr r0, [r4] + lsls r2, r6, #2 + adds r2, r2, r0 + ldrb r0, [r2] + ldrb r1, [r2, #1] + movs r3, #2 + ldrsh r2, [r2, r3] + bl sub_0812EFA8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r2, r6, #4 + lsls r2, r2, #1 + adds r1, r7, #0 + adds r1, #8 + adds r1, r1, r2 + strh r0, [r1] + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, [r4] + lsls r0, r6, #2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0xff + bne _0812DF2A +_0812DF62: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0812DF6C: .4byte 0x0203A800 +_0812DF70: .4byte 0x03005B60 +_0812DF74: .4byte 0x08584988 + thumb_func_end sub_0812DEF4 + + thumb_func_start sub_0812DF78 +sub_0812DF78: @ 0x0812DF78 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + mov r8, r1 + ldr r4, [sp, #0x1c] + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _0812DFCC + ldr r0, [r0] + adds r0, #0x3d + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + ldr r1, _0812DFD0 + adds r0, r0, r1 + mov ip, r0 + movs r5, #4 + lsls r4, r4, #0x10 + asrs r6, r4, #0x10 + lsls r2, r2, #0x10 + lsls r3, r3, #0x10 +_0812DFA6: + lsls r0, r5, #1 + mov r1, ip + adds r1, #8 + adds r4, r1, r0 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #0x40 + bne _0812DFD4 + str r6, [sp] + adds r0, r7, #0 + mov r1, r8 + asrs r2, r2, #0x10 + asrs r3, r3, #0x10 + bl sub_0812EFEC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4] + b _0812DFDE + .align 2, 0 +_0812DFCC: .4byte 0x0203A800 +_0812DFD0: .4byte 0x03005B60 +_0812DFD4: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0xf + bls _0812DFA6 +_0812DFDE: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0812DF78 + + thumb_func_start sub_0812DFEC +sub_0812DFEC: @ 0x0812DFEC + push {r4, r5, r6, lr} + ldr r0, _0812E050 + ldr r0, [r0] + adds r0, #0x3d + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + ldr r1, _0812E054 + adds r4, r0, r1 + ldrh r1, [r4, #0xa] + ldr r0, _0812E058 + cmp r1, r0 + beq _0812E018 + ldr r0, _0812E05C + movs r2, #0xa + ldrsh r1, [r4, r2] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl _call_via_r0 +_0812E018: + movs r5, #4 + adds r6, r4, #0 + adds r6, #8 +_0812E01E: + lsls r0, r5, #1 + adds r4, r6, r0 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #0x40 + beq _0812E03E + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0812E060 + adds r0, r0, r1 + bl DestroySprite + movs r0, #0x40 + strh r0, [r4] +_0812E03E: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0xf + bls _0812E01E + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0812E050: .4byte 0x0203A800 +_0812E054: .4byte 0x03005B60 +_0812E058: .4byte 0x0000FFFF +_0812E05C: .4byte 0x085849A4 +_0812E060: .4byte 0x020205AC + thumb_func_end sub_0812DFEC + + thumb_func_start sub_0812E064 +sub_0812E064: @ 0x0812E064 + push {r4, r5, lr} + ldr r0, _0812E0A0 + ldr r0, [r0] + adds r0, #0x3d + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + ldr r1, _0812E0A4 + adds r0, r0, r1 + movs r2, #4 + adds r3, r0, #0 + adds r3, #8 + ldr r4, _0812E0A8 +_0812E080: + lsls r0, r2, #1 + adds r1, r3, r0 + movs r5, #0 + ldrsh r0, [r1, r5] + cmp r0, #0x40 + beq _0812E0AC + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + movs r5, #0x3c + ldrsh r0, [r1, r5] + cmp r0, #0 + beq _0812E0AC + movs r0, #0 + b _0812E0B8 + .align 2, 0 +_0812E0A0: .4byte 0x0203A800 +_0812E0A4: .4byte 0x03005B60 +_0812E0A8: .4byte 0x020205AC +_0812E0AC: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xf + bls _0812E080 + movs r0, #1 +_0812E0B8: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0812E064 + + thumb_func_start sub_0812E0C0 +sub_0812E0C0: @ 0x0812E0C0 + push {lr} + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r3, _0812E0E8 + ldr r2, _0812E0EC + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r2, #8 + ldrsh r1, [r0, r2] + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_0812E0E8: .4byte 0x08584594 +_0812E0EC: .4byte 0x03005B60 + thumb_func_end sub_0812E0C0 + + thumb_func_start sub_0812E0F0 +sub_0812E0F0: @ 0x0812E0F0 + bx lr + .align 2, 0 + thumb_func_end sub_0812E0F0 + + thumb_func_start sub_0812E0F4 +sub_0812E0F4: @ 0x0812E0F4 + push {r4, r5, r6, r7, lr} + movs r6, #0 + movs r0, #0x30 +_0812E0FA: + movs r4, #0 + lsls r5, r0, #0x10 + lsls r7, r6, #0x10 +_0812E100: + ldr r0, _0812E158 + asrs r1, r5, #0x10 + movs r2, #0 + movs r3, #0xe + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _0812E15C + adds r1, r1, r0 + ldrb r0, [r1, #5] + movs r2, #0xc + orrs r0, r2 + strb r0, [r1, #5] + strh r6, [r1, #0x2e] + strh r4, [r1, #0x30] + ldr r0, _0812E160 + strh r0, [r1, #0x34] + lsls r0, r4, #0x10 + movs r1, #0xc0 + lsls r1, r1, #0xd + adds r0, r0, r1 + lsrs r4, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x77 + ble _0812E100 + movs r2, #0x80 + lsls r2, r2, #9 + adds r1, r7, r2 + movs r2, #0xa0 + lsls r2, r2, #0xe + adds r0, r5, r2 + lsrs r0, r0, #0x10 + lsrs r6, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #2 + ble _0812E0FA + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0812E158: .4byte 0x08584C64 +_0812E15C: .4byte 0x020205AC +_0812E160: .4byte 0x0000FFFF + thumb_func_end sub_0812E0F4 + + thumb_func_start sub_0812E164 +sub_0812E164: @ 0x0812E164 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0812E1D4 + ldr r4, [r0] + movs r1, #0x2e + ldrsh r0, [r5, r1] + lsls r0, r0, #1 + adds r1, r4, #0 + adds r1, #0x1c + adds r1, r1, r0 + ldrh r0, [r5, #0x30] + ldrh r1, [r1] + adds r0, r0, r1 + strh r0, [r5, #0x32] + movs r2, #0x32 + ldrsh r0, [r5, r2] + movs r1, #0x78 + bl __modsi3 + strh r0, [r5, #0x32] + movs r2, #0x2e + ldrsh r1, [r5, r2] + lsls r1, r1, #1 + adds r4, #0x22 + adds r4, r4, r1 + ldrh r1, [r4] + adds r1, #0x1c + adds r0, r0, r1 + strh r0, [r5, #0x22] + ldrh r4, [r5, #0x2e] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r1, #0x32 + ldrsh r0, [r5, r1] + movs r1, #0x18 + bl __divsi3 + adds r1, r0, #0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r0, r4, #0 + bl GetNearbyTag_Quantized + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + 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 +_0812E1D4: .4byte 0x0203A800 + thumb_func_end sub_0812E164 + + thumb_func_start sub_0812E1D8 +sub_0812E1D8: @ 0x0812E1D8 + push {r4, r5, r6, lr} + movs r4, #0xcb + movs r5, #1 + ldr r6, _0812E23C +_0812E1E0: + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + adds r0, r4, #0 + movs r1, #0x17 + movs r2, #0 + adds r3, r5, #0 + bl sub_0812E240 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #0x11 + subs r4, #7 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsrs r5, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, r6 + ble _0812E1E0 + movs r4, #0xeb + movs r5, #1 + ldr r6, _0812E23C +_0812E20E: + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + adds r0, r4, #0 + movs r1, #0x17 + movs r2, #1 + adds r3, r5, #0 + bl sub_0812E240 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #0x11 + subs r4, #7 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsrs r5, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, r6 + ble _0812E20E + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0812E23C: .4byte 0x0000270F + thumb_func_end sub_0812E1D8 + + thumb_func_start sub_0812E240 +sub_0812E240: @ 0x0812E240 + push {r4, r5, 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, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r0, _0812E2AC + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + lsls r6, r6, #0x10 + asrs r6, r6, #0x10 + adds r1, r5, #0 + adds r2, r6, #0 + movs r3, #0xd + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r0, _0812E2B0 + adds r2, r2, r0 + ldrb r1, [r2, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2, #5] + mov r0, r8 + strh r0, [r2, #0x2e] + strh r4, [r2, #0x30] + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #1 + strh r0, [r2, #0x32] + ldr r0, _0812E2B4 + strh r0, [r2, #0x34] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0812E2AC: .4byte 0x08584C7C +_0812E2B0: .4byte 0x020205AC +_0812E2B4: .4byte 0x0000FFFF + thumb_func_end sub_0812E240 + + thumb_func_start sub_0812E2B8 +sub_0812E2B8: @ 0x0812E2B8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0812E30C + ldr r1, [r0] + ldrh r2, [r1, #0xc] + movs r3, #0x2e + ldrsh r0, [r4, r3] + cmp r0, #0 + beq _0812E2CC + ldrh r2, [r1, #0xe] +_0812E2CC: + movs r1, #0x34 + ldrsh r0, [r4, r1] + cmp r0, r2 + beq _0812E306 + strh r2, [r4, #0x34] + ldrh r1, [r4, #0x32] + adds r0, r2, #0 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldrh r1, [r4, #0x30] + adds r0, r2, #0 + bl __udivsi3 + lsls r0, r0, #0x10 + movs r3, #0xe0 + lsls r3, r3, #0xb + adds r0, r0, r3 + lsrs r2, r0, #0x10 + adds r0, r2, #0 + bl GetSpriteTileStartByTag + adds r1, r4, #0 + adds r1, #0x40 + strh r0, [r1] + adds r0, r4, #0 + bl SetSpriteSheetFrameTileNum +_0812E306: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812E30C: .4byte 0x0203A800 + thumb_func_end sub_0812E2B8 + + thumb_func_start sub_0812E310 +sub_0812E310: @ 0x0812E310 + push {lr} + ldr r0, _0812E340 + movs r1, #0x58 + movs r2, #0x48 + movs r3, #0xf + bl CreateSprite + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _0812E344 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #5] + movs r2, #0xc + orrs r1, r2 + strb r1, [r0, #5] + ldr r1, _0812E348 + bl SetSubspriteTables + pop {r0} + bx r0 + .align 2, 0 +_0812E340: .4byte 0x08584C94 +_0812E344: .4byte 0x020205AC +_0812E348: .4byte 0x08584F44 + thumb_func_end sub_0812E310 + + thumb_func_start sub_0812E34C +sub_0812E34C: @ 0x0812E34C + push {r4, r5, lr} + sub sp, #0x18 + ldr r4, _0812E3E4 + ldr r0, [r4] + cmp r0, #0 + bne _0812E360 + movs r0, #0x28 + bl AllocZeroed + str r0, [r4] +_0812E360: + ldr r2, [r4] + ldr r0, _0812E3E8 + ldr r1, [r0] + str r1, [r2] + movs r3, #0x80 + lsls r3, r3, #4 + strh r3, [r2, #4] + adds r0, r1, r3 + str r0, [r2, #8] + strh r3, [r2, #0xc] + movs r4, #0x80 + lsls r4, r4, #5 + adds r0, r1, r4 + str r0, [r2, #0x10] + strh r3, [r2, #0x14] + movs r5, #0xc0 + lsls r5, r5, #5 + adds r0, r1, r5 + str r0, [r2, #0x18] + strh r3, [r2, #0x1c] + movs r0, #0x80 + lsls r0, r0, #6 + adds r1, r1, r0 + str r1, [r2, #0x20] + strh r3, [r2, #0x24] + mov r1, sp + ldr r0, _0812E3EC + ldm r0!, {r3, r4, r5} + stm r1!, {r3, r4, r5} + ldm r0!, {r3, r4, r5} + stm r1!, {r3, r4, r5} + str r2, [sp, #0xc] + movs r1, #0x8c + lsls r1, r1, #1 + mov r0, sp + movs r2, #0x50 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0812E3F0 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r1 + ldrb r3, [r2, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r3 + movs r3, #4 + orrs r1, r3 + strb r1, [r2, #5] + adds r2, #0x3e + ldrb r1, [r2] + movs r3, #2 + orrs r1, r3 + strb r1, [r2] + ldr r1, _0812E3F4 + ldr r1, [r1] + adds r1, #0x3f + strb r0, [r1] + add sp, #0x18 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0812E3E4: .4byte 0x0203A7B0 +_0812E3E8: .4byte 0x0203A7A4 +_0812E3EC: .4byte 0x08584CAC +_0812E3F0: .4byte 0x020205AC +_0812E3F4: .4byte 0x0203A800 + thumb_func_end sub_0812E34C + + thumb_func_start sub_0812E3F8 +sub_0812E3F8: @ 0x0812E3F8 + push {r4, lr} + ldr r0, _0812E428 + ldr r0, [r0] + adds r0, #0x3f + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0812E42C + adds r0, r0, r1 + bl DestroySprite + ldr r4, _0812E430 + ldr r0, [r4] + cmp r0, #0 + beq _0812E420 + bl Free + movs r0, #0 + str r0, [r4] +_0812E420: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812E428: .4byte 0x0203A800 +_0812E42C: .4byte 0x020205AC +_0812E430: .4byte 0x0203A7B0 + thumb_func_end sub_0812E3F8 + + thumb_func_start sub_0812E434 +sub_0812E434: @ 0x0812E434 + 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, #4 + bne _0812E47A + movs r0, #8 + strh r0, [r2, #0x24] + strh r0, [r2, #0x26] + adds r0, r2, #0 + adds r0, #0x2b + ldrb r0, [r0] + cmp r0, #0 + beq _0812E468 + adds r0, r2, #0 + adds r0, #0x2c + ldrb r1, [r0] + movs r0, #0x3f + ands r0, r1 + cmp r0, #0 + bne _0812E476 + b _0812E47A +_0812E468: + adds r0, r2, #0 + adds r0, #0x2c + ldrb r1, [r0] + movs r0, #0x3f + ands r0, r1 + cmp r0, #0 + bne _0812E47A +_0812E476: + ldr r0, _0812E480 + strh r0, [r2, #0x26] +_0812E47A: + pop {r0} + bx r0 + .align 2, 0 +_0812E480: .4byte 0x0000FFF8 + thumb_func_end sub_0812E434 + + thumb_func_start sub_0812E484 +sub_0812E484: @ 0x0812E484 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + ldr r4, _0812E594 + ldr r0, [r4] + cmp r0, #0 + bne _0812E4A0 + movs r0, #8 + bl AllocZeroed + str r0, [r4] +_0812E4A0: + ldr r2, [r4] + ldr r0, _0812E598 + mov sl, r0 + ldr r0, [r0] + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r0, r1 + str r0, [r2] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r2, #4] + mov r1, sp + ldr r0, _0812E59C + ldm r0!, {r3, r4, r5} + stm r1!, {r3, r4, r5} + ldm r0!, {r3, r4, r7} + stm r1!, {r3, r4, r7} + str r2, [sp, #0xc] + mov r0, sp + movs r1, #0xb8 + lsls r1, r1, #1 + movs r2, #0x34 + movs r3, #7 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + ldr r5, _0812E5A0 + mov sb, r5 + adds r2, r0, r5 + ldrb r1, [r2, #5] + movs r7, #0xd + rsbs r7, r7, #0 + mov r8, r7 + mov r0, r8 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #5] + adds r1, r2, #0 + adds r1, #0x3e + ldrb r0, [r1] + movs r6, #2 + orrs r0, r6 + strb r0, [r1] + ldr r1, _0812E5A4 + adds r0, r2, #0 + bl SetSubspriteTables + ldr r5, _0812E5A8 + ldr r0, [r5] + adds r0, #0x49 + strb r4, [r0] + ldr r4, _0812E5AC + ldr r0, [r4] + cmp r0, #0 + bne _0812E520 + movs r0, #8 + bl AllocZeroed + str r0, [r4] +_0812E520: + ldr r2, [r4] + mov r3, sl + ldr r0, [r3] + movs r4, #0xac + lsls r4, r4, #6 + adds r0, r0, r4 + str r0, [r2] + movs r0, #0xa0 + lsls r0, r0, #3 + strh r0, [r2, #4] + mov r1, sp + ldr r0, _0812E5B0 + ldm r0!, {r3, r4, r7} + stm r1!, {r3, r4, r7} + ldm r0!, {r3, r4, r7} + stm r1!, {r3, r4, r7} + str r2, [sp, #0xc] + mov r0, sp + movs r1, #0xb8 + lsls r1, r1, #1 + movs r2, #0x54 + movs r3, #7 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + mov r7, sb + adds r2, r0, r7 + ldrb r1, [r2, #5] + mov r0, r8 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #5] + adds r1, r2, #0 + adds r1, #0x3e + ldrb r0, [r1] + orrs r0, r6 + strb r0, [r1] + ldr r1, _0812E5B4 + adds r0, r2, #0 + bl SetSubspriteTables + ldr r0, [r5] + adds r0, #0x4a + strb r4, [r0] + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0812E594: .4byte 0x0203A7B4 +_0812E598: .4byte 0x0203A7A4 +_0812E59C: .4byte 0x08584CC4 +_0812E5A0: .4byte 0x020205AC +_0812E5A4: .4byte 0x08584F64 +_0812E5A8: .4byte 0x0203A800 +_0812E5AC: .4byte 0x0203A7B8 +_0812E5B0: .4byte 0x08584CDC +_0812E5B4: .4byte 0x08584F78 + thumb_func_end sub_0812E484 + + thumb_func_start sub_0812E5B8 +sub_0812E5B8: @ 0x0812E5B8 + push {r4, r5, lr} + sub sp, #0x18 + ldr r4, _0812E644 + ldr r0, [r4] + cmp r0, #0 + bne _0812E5CC + movs r0, #8 + bl AllocZeroed + str r0, [r4] +_0812E5CC: + ldr r2, [r4] + ldr r0, _0812E648 + ldr r0, [r0] + movs r1, #0xc0 + lsls r1, r1, #6 + adds r0, r0, r1 + str r0, [r2] + movs r0, #0xc0 + lsls r0, r0, #3 + strh r0, [r2, #4] + mov r1, sp + ldr r0, _0812E64C + ldm r0!, {r3, r4, r5} + stm r1!, {r3, r4, r5} + ldm r0!, {r3, r4, r5} + stm r1!, {r3, r4, r5} + str r2, [sp, #0xc] + ldr r0, _0812E650 + ldrh r0, [r0] + movs r1, #0xa8 + subs r1, r1, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + mov r0, sp + movs r2, #0x50 + movs r3, #7 + bl CreateSprite + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + ldr r1, _0812E654 + adds r0, r0, r1 + ldrb r2, [r0, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #4 + orrs r1, r2 + strb r1, [r0, #5] + adds r3, r0, #0 + adds r3, #0x3e + ldrb r1, [r3] + movs r2, #2 + orrs r1, r2 + strb r1, [r3] + ldr r1, _0812E658 + bl SetSubspriteTables + ldr r0, _0812E65C + ldr r0, [r0] + adds r0, #0x42 + strb r4, [r0] + add sp, #0x18 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0812E644: .4byte 0x0203A7BC +_0812E648: .4byte 0x0203A7A4 +_0812E64C: .4byte 0x08584CF4 +_0812E650: .4byte 0x02021B38 +_0812E654: .4byte 0x020205AC +_0812E658: .4byte 0x08584F94 +_0812E65C: .4byte 0x0203A800 + thumb_func_end sub_0812E5B8 + + thumb_func_start sub_0812E660 +sub_0812E660: @ 0x0812E660 + push {r4, r5, r6, lr} + movs r4, #0 + movs r5, #0 +_0812E666: + ldr r0, _0812E6C8 + movs r1, #0xb8 + lsls r1, r1, #1 + movs r2, #0 + movs r3, #0xa + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r3, r0, #4 + adds r3, r3, r0 + lsls r3, r3, #2 + ldr r1, _0812E6CC + adds r3, r3, r1 + ldrb r2, [r3, #5] + movs r6, #0xd + rsbs r6, r6, #0 + adds r1, r6, #0 + ands r2, r1 + movs r1, #4 + orrs r2, r1 + strb r2, [r3, #5] + movs r1, #0x3e + adds r1, r1, r3 + mov ip, r1 + ldrb r1, [r1] + movs r2, #2 + orrs r1, r2 + mov r2, ip + strb r1, [r2] + strh r5, [r3, #0x3c] + ldr r1, _0812E6D0 + ldr r1, [r1] + adds r1, #0x4b + adds r1, r1, r4 + strb r0, [r1] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r5, #0x10 + movs r6, #0xa0 + lsls r6, r6, #0xd + adds r0, r0, r6 + lsrs r5, r0, #0x10 + cmp r4, #2 + bls _0812E666 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0812E6C8: .4byte 0x08584D0C +_0812E6CC: .4byte 0x020205AC +_0812E6D0: .4byte 0x0203A800 + thumb_func_end sub_0812E660 + + thumb_func_start sub_0812E6D4 +sub_0812E6D4: @ 0x0812E6D4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0812E718 + ldr r1, [r0] + ldrh r0, [r4, #0x3c] + ldrh r1, [r1, #0x14] + adds r0, r0, r1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x28 + bl __modsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r0, #0 + adds r1, #0x3b + strh r1, [r4, #0x22] + movs r1, #0x14 + bl __divsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + bl GetNearbyReelTimeTag + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnimIfDifferent + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812E718: .4byte 0x0203A800 + thumb_func_end sub_0812E6D4 + + thumb_func_start sub_0812E71C +sub_0812E71C: @ 0x0812E71C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + movs r1, #0xb8 + lsls r1, r1, #1 + ldr r0, _0812E7CC + movs r2, #0x64 + movs r3, #9 + bl CreateSprite + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + ldr r7, _0812E7D0 + adds r2, r0, r7 + adds r1, r2, #0 + adds r1, #0x3e + ldrb r0, [r1] + movs r3, #2 + mov sl, r3 + mov r3, sl + orrs r0, r3 + strb r0, [r1] + ldrb r1, [r2, #5] + movs r5, #0xd + rsbs r5, r5, #0 + adds r0, r5, #0 + ands r0, r1 + movs r1, #4 + mov r8, r1 + mov r3, r8 + orrs r0, r3 + strb r0, [r2, #5] + ldr r0, _0812E7D4 + mov sb, r0 + adds r0, r2, #0 + mov r1, sb + bl SetSubspriteTables + ldr r6, _0812E7D8 + ldr r0, [r6] + adds r0, #0x4e + strb r4, [r0] + movs r1, #0x90 + lsls r1, r1, #1 + ldr r0, _0812E7CC + movs r2, #0x68 + movs r3, #4 + bl CreateSprite + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r2, r0, r7 + adds r1, r2, #0 + adds r1, #0x3e + ldrb r0, [r1] + mov r3, sl + orrs r0, r3 + strb r0, [r1] + ldrb r0, [r2, #5] + ands r5, r0 + mov r0, r8 + orrs r5, r0 + strb r5, [r2, #5] + adds r0, r2, #0 + mov r1, sb + bl SetSubspriteTables + ldr r0, [r6] + adds r0, #0x4f + strb r4, [r0] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0812E7CC: .4byte 0x08584D24 +_0812E7D0: .4byte 0x020205AC +_0812E7D4: .4byte 0x08584FAC +_0812E7D8: .4byte 0x0203A800 + thumb_func_end sub_0812E71C + + thumb_func_start sub_0812E7DC +sub_0812E7DC: @ 0x0812E7DC + push {r4, lr} + ldr r0, _0812E82C + movs r1, #0xb8 + lsls r1, r1, #1 + movs r2, #0x4c + movs r3, #0xb + bl CreateSprite + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + ldr r1, _0812E830 + adds r0, r0, r1 + adds r3, r0, #0 + adds r3, #0x3e + ldrb r1, [r3] + movs r2, #2 + orrs r1, r2 + strb r1, [r3] + ldrb r2, [r0, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #4 + orrs r1, r2 + strb r1, [r0, #5] + ldr r1, _0812E834 + bl SetSubspriteTables + ldr r0, _0812E838 + ldr r0, [r0] + adds r0, #0x40 + strb r4, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812E82C: .4byte 0x08584D3C +_0812E830: .4byte 0x020205AC +_0812E834: .4byte 0x08584FC0 +_0812E838: .4byte 0x0203A800 + thumb_func_end sub_0812E7DC + + thumb_func_start sub_0812E83C +sub_0812E83C: @ 0x0812E83C + push {r4, lr} + ldr r0, _0812E8C4 + ldr r0, [r0] + adds r0, #0x40 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0812E8C8 + adds r0, r0, r1 + bl DestroySprite + movs r4, #0 +_0812E856: + ldr r0, _0812E8C4 + ldr r0, [r0] + adds r0, #0x49 + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0812E8C8 + adds r0, r0, r1 + bl DestroySprite + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #1 + bls _0812E856 + ldr r4, _0812E8CC + ldr r0, [r4] + cmp r0, #0 + beq _0812E888 + bl Free + movs r0, #0 + str r0, [r4] +_0812E888: + ldr r4, _0812E8D0 + ldr r0, [r4] + cmp r0, #0 + beq _0812E898 + bl Free + movs r0, #0 + str r0, [r4] +_0812E898: + movs r4, #0 +_0812E89A: + ldr r0, _0812E8C4 + ldr r0, [r0] + adds r0, #0x4b + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0812E8C8 + adds r0, r0, r1 + bl DestroySprite + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #2 + bls _0812E89A + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812E8C4: .4byte 0x0203A800 +_0812E8C8: .4byte 0x020205AC +_0812E8CC: .4byte 0x0203A7B4 +_0812E8D0: .4byte 0x0203A7B8 + thumb_func_end sub_0812E83C + + thumb_func_start sub_0812E8D4 +sub_0812E8D4: @ 0x0812E8D4 + push {r4, lr} + movs r4, #0 +_0812E8D8: + ldr r0, _0812E900 + ldr r0, [r0] + adds r0, #0x4e + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0812E904 + adds r0, r0, r1 + bl DestroySprite + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #1 + bls _0812E8D8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812E900: .4byte 0x0203A800 +_0812E904: .4byte 0x020205AC + thumb_func_end sub_0812E8D4 + + thumb_func_start sub_0812E908 +sub_0812E908: @ 0x0812E908 + push {r4, lr} + ldr r0, _0812E938 + ldr r0, [r0] + adds r0, #0x42 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0812E93C + adds r0, r0, r1 + bl DestroySprite + ldr r4, _0812E940 + ldr r0, [r4] + cmp r0, #0 + beq _0812E930 + bl Free + movs r0, #0 + str r0, [r4] +_0812E930: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812E938: .4byte 0x0203A800 +_0812E93C: .4byte 0x020205AC +_0812E940: .4byte 0x0203A7BC + thumb_func_end sub_0812E908 + + thumb_func_start CreateReelTimeSprites1 +CreateReelTimeSprites1: @ 0x0812E944 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + ldr r0, _0812E9E8 + mov sl, r0 + movs r1, #0x98 + movs r2, #0x20 + movs r3, #5 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r2, _0812E9EC + mov sb, r2 + adds r3, r1, r2 + ldrb r2, [r3, #5] + movs r4, #0xd + rsbs r4, r4, #0 + adds r1, r4, #0 + ands r1, r2 + movs r2, #4 + mov r8, r2 + mov r2, r8 + orrs r1, r2 + strb r1, [r3, #5] + adds r5, r3, #0 + adds r5, #0x3f + ldrb r1, [r5] + movs r2, #1 + orrs r1, r2 + strb r1, [r5] + ldr r6, _0812E9F0 + ldr r1, [r6] + adds r1, #0x50 + strb r0, [r1] + movs r0, #8 + strh r0, [r3, #0x2e] + ldr r0, _0812E9F4 + strh r0, [r3, #0x30] + movs r0, #1 + rsbs r0, r0, #0 + strh r0, [r3, #0x32] + movs r5, #0x20 + strh r5, [r3, #0x3c] + mov r0, sl + movs r1, #0xb8 + movs r2, #0x20 + movs r3, #5 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + mov r2, sb + adds r3, r1, r2 + ldrb r1, [r3, #5] + ands r4, r1 + mov r1, r8 + orrs r4, r1 + strb r4, [r3, #5] + ldr r1, [r6] + adds r1, #0x51 + strb r0, [r1] + movs r0, #1 + strh r0, [r3, #0x30] + subs r0, #2 + strh r0, [r3, #0x32] + strh r5, [r3, #0x3c] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0812E9E8: .4byte 0x08584D54 +_0812E9EC: .4byte 0x020205AC +_0812E9F0: .4byte 0x0203A800 +_0812E9F4: .4byte 0x0000FFFF + thumb_func_end CreateReelTimeSprites1 + + thumb_func_start sub_0812E9F8 +sub_0812E9F8: @ 0x0812E9F8 + push {r4, lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x2e] + movs r1, #0x2e + ldrsh r4, [r2, r1] + cmp r4, #0 + beq _0812EA1C + subs r0, #1 + movs r1, #0 + strh r0, [r2, #0x2e] + strh r1, [r2, #0x24] + strh r1, [r2, #0x26] + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + b _0812EA4E +_0812EA1C: + adds r3, r2, #0 + adds r3, #0x3e + ldrb r1, [r3] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3] + ldrh r0, [r2, #0x30] + ldrh r1, [r2, #0x24] + adds r0, r0, r1 + strh r0, [r2, #0x24] + ldrh r0, [r2, #0x32] + ldrh r1, [r2, #0x26] + adds r0, r0, r1 + strh r0, [r2, #0x26] + ldrh r0, [r2, #0x34] + adds r0, #1 + strh r0, [r2, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + ble _0812EA4E + ldrh r0, [r2, #0x3c] + strh r0, [r2, #0x2e] + strh r4, [r2, #0x34] +_0812EA4E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0812E9F8 + + thumb_func_start sub_0812EA54 +sub_0812EA54: @ 0x0812EA54 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _0812EA84 + ldr r1, _0812EA88 + ldr r3, [r1] + adds r1, r3, #0 + adds r1, #0x50 + ldrb r2, [r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r4 + strh r0, [r1, #0x3c] + adds r3, #0x51 + ldrb r2, [r3] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r4 + strh r0, [r1, #0x3c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812EA84: .4byte 0x020205AC +_0812EA88: .4byte 0x0203A800 + thumb_func_end sub_0812EA54 + + thumb_func_start sub_0812EA8C +sub_0812EA8C: @ 0x0812EA8C + push {r4, lr} + movs r4, #0 +_0812EA90: + ldr r0, _0812EAB8 + ldr r0, [r0] + adds r0, #0x50 + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0812EABC + adds r0, r0, r1 + bl DestroySprite + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #1 + bls _0812EA90 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812EAB8: .4byte 0x0203A800 +_0812EABC: .4byte 0x020205AC + thumb_func_end sub_0812EA8C + + thumb_func_start CreateReelTimeSprite2 +CreateReelTimeSprite2: @ 0x0812EAC0 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + ldr r0, _0812EB4C + mov r8, r0 + movs r1, #0x48 + movs r2, #0x50 + movs r3, #3 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0812EB50 + mov sb, r1 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + add r2, sb + ldrb r3, [r2, #5] + movs r4, #0xd + rsbs r4, r4, #0 + adds r1, r4, #0 + ands r1, r3 + movs r6, #4 + orrs r1, r6 + strb r1, [r2, #5] + movs r3, #0 + movs r1, #1 + strh r1, [r2, #0x2e] + strh r3, [r2, #0x38] + movs r1, #0x10 + strh r1, [r2, #0x3a] + movs r1, #8 + strh r1, [r2, #0x3c] + ldr r5, _0812EB54 + ldr r1, [r5] + adds r1, #0x52 + strb r0, [r1] + mov r0, r8 + movs r1, #0x68 + movs r2, #0x50 + movs r3, #3 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + add r1, sb + ldrb r2, [r1, #5] + ands r4, r2 + orrs r4, r6 + strb r4, [r1, #5] + adds r1, #0x3f + ldrb r2, [r1] + movs r3, #1 + orrs r2, r3 + strb r2, [r1] + ldr r1, [r5] + adds r1, #0x53 + strb r0, [r1] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0812EB4C: .4byte 0x08584D6C +_0812EB50: .4byte 0x020205AC +_0812EB54: .4byte 0x0203A800 + thumb_func_end CreateReelTimeSprite2 + + thumb_func_start sub_0812EB58 +sub_0812EB58: @ 0x0812EB58 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + ldr r1, _0812EBB4 + mov r0, sp + movs r2, #2 + bl memcpy + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0812EBAA + ldrh r0, [r4, #0x3a] + subs r0, #1 + strh r0, [r4, #0x3a] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _0812EBAA + movs r0, #7 + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #4 + ldr r2, _0812EBB8 + adds r0, r0, r2 + lsrs r0, r0, #0x10 + 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, #1 + movs r1, #1 + ands r0, r1 + strh r0, [r4, #0x38] + ldrh r0, [r4, #0x3c] + strh r0, [r4, #0x3a] +_0812EBAA: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812EBB4: .4byte 0x08584598 +_0812EBB8: .4byte 0x01030000 + thumb_func_end sub_0812EB58 + + thumb_func_start sub_0812EBBC +sub_0812EBBC: @ 0x0812EBBC + ldr r3, _0812EBD4 + ldr r1, _0812EBD8 + ldr r1, [r1] + adds r1, #0x52 + ldrb r2, [r1] + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r3 + strh r0, [r1, #0x3c] + bx lr + .align 2, 0 +_0812EBD4: .4byte 0x020205AC +_0812EBD8: .4byte 0x0203A800 + thumb_func_end sub_0812EBBC + + thumb_func_start sub_0812EBDC +sub_0812EBDC: @ 0x0812EBDC + push {r4, lr} + movs r0, #7 + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #4 + ldr r1, _0812EC24 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl MultiplyInvertedPaletteRGBComponents + movs r4, #0 +_0812EBFA: + ldr r0, _0812EC28 + ldr r0, [r0] + adds r0, #0x52 + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0812EC2C + adds r0, r0, r1 + bl DestroySprite + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #1 + bls _0812EBFA + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812EC24: .4byte 0x01030000 +_0812EC28: .4byte 0x0203A800 +_0812EC2C: .4byte 0x020205AC + thumb_func_end sub_0812EBDC + + thumb_func_start sub_0812EC30 +sub_0812EC30: @ 0x0812EC30 + push {lr} + ldr r0, _0812EC68 + movs r1, #0xa8 + movs r2, #0x50 + movs r3, #6 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0812EC6C + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r3, [r1, #5] + movs r2, #0xd + rsbs r2, r2, #0 + ands r2, r3 + movs r3, #4 + orrs r2, r3 + strb r2, [r1, #5] + ldr r1, _0812EC70 + ldr r1, [r1] + adds r1, #0x41 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0812EC68: .4byte 0x08584D84 +_0812EC6C: .4byte 0x020205AC +_0812EC70: .4byte 0x0203A800 + thumb_func_end sub_0812EC30 + + thumb_func_start sub_0812EC74 +sub_0812EC74: @ 0x0812EC74 + ldr r1, _0812EC7C + ldrh r1, [r1] + strh r1, [r0, #0x26] + bx lr + .align 2, 0 +_0812EC7C: .4byte 0x02021B3A + thumb_func_end sub_0812EC74 + + thumb_func_start sub_0812EC80 +sub_0812EC80: @ 0x0812EC80 + push {lr} + ldr r0, _0812EC9C + ldr r0, [r0] + adds r0, #0x41 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0812ECA0 + adds r0, r0, r1 + bl DestroySprite + pop {r0} + bx r0 + .align 2, 0 +_0812EC9C: .4byte 0x0203A800 +_0812ECA0: .4byte 0x020205AC + thumb_func_end sub_0812EC80 + + thumb_func_start sub_0812ECA4 +sub_0812ECA4: @ 0x0812ECA4 + push {r4, r5, lr} + sub sp, #8 + ldr r1, _0812ED1C + mov r0, sp + movs r2, #8 + bl memcpy + movs r4, #0 +_0812ECB4: + ldr r0, _0812ED20 + ldrh r0, [r0] + movs r1, #0x50 + subs r1, r1, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldr r0, _0812ED24 + movs r2, #0x44 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r3, r0, #4 + adds r3, r3, r0 + lsls r3, r3, #2 + ldr r1, _0812ED28 + adds r3, r3, r1 + ldrb r2, [r3, #5] + movs r5, #0xd + rsbs r5, r5, #0 + adds r1, r5, #0 + ands r2, r1 + movs r1, #4 + orrs r2, r1 + strb r2, [r3, #5] + movs r1, #0x3e + adds r1, r1, r3 + mov ip, r1 + ldrb r1, [r1] + movs r2, #2 + orrs r1, r2 + mov r2, ip + strb r1, [r2] + lsls r1, r4, #1 + add r1, sp + ldrh r1, [r1] + strh r1, [r3, #0x2e] + ldr r1, _0812ED2C + ldr r1, [r1] + adds r1, #0x54 + adds r1, r1, r4 + strb r0, [r1] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _0812ECB4 + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0812ED1C: .4byte 0x0858459A +_0812ED20: .4byte 0x02021B38 +_0812ED24: .4byte 0x08584D9C +_0812ED28: .4byte 0x020205AC +_0812ED2C: .4byte 0x0203A800 + thumb_func_end sub_0812ECA4 + + thumb_func_start sub_0812ED30 +sub_0812ED30: @ 0x0812ED30 + push {r4, r5, lr} + adds r5, r0, #0 + ldrh r0, [r5, #0x2e] + subs r0, #2 + 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, #6 + 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 _0812ED6A + movs r0, #2 + strb r0, [r1] +_0812ED6A: + ldrh r0, [r5, #0x30] + adds r0, #1 + strh r0, [r5, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xf + ble _0812ED94 + adds r3, r5, #0 + adds r3, #0x3f + ldrb r2, [r3] + lsls r0, r2, #0x1f + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + movs r0, #0 + strh r0, [r5, #0x30] +_0812ED94: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0812ED30 + + thumb_func_start sub_0812ED9C +sub_0812ED9C: @ 0x0812ED9C + push {r4, lr} + movs r4, #0 +_0812EDA0: + ldr r0, _0812EDC8 + ldr r0, [r0] + adds r0, #0x54 + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0812EDCC + adds r0, r0, r1 + bl DestroySprite + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _0812EDA0 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812EDC8: .4byte 0x0203A800 +_0812EDCC: .4byte 0x020205AC + thumb_func_end sub_0812ED9C + + thumb_func_start sub_0812EDD0 +sub_0812EDD0: @ 0x0812EDD0 + push {r4, lr} + ldr r0, _0812EE18 + movs r1, #0xa8 + movs r2, #0x3c + movs r3, #8 + bl CreateSprite + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + ldr r1, _0812EE1C + adds r0, r0, r1 + ldrb r2, [r0, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #4 + orrs r1, r2 + strb r1, [r0, #5] + ldrb r1, [r0, #1] + movs r2, #3 + orrs r1, r2 + strb r1, [r0, #1] + bl InitSpriteAffineAnim + ldr r0, _0812EE20 + ldr r0, [r0] + adds r0, #0x43 + strb r4, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812EE18: .4byte 0x08584DB4 +_0812EE1C: .4byte 0x020205AC +_0812EE20: .4byte 0x0203A800 + thumb_func_end sub_0812EDD0 + + thumb_func_start sub_0812EE24 +sub_0812EE24: @ 0x0812EE24 + push {lr} + adds r3, r0, #0 + ldrh r2, [r3, #0x2e] + movs r1, #0x2e + ldrsh r0, [r3, r1] + cmp r0, #0 + bne _0812EE46 + adds r0, r3, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0812EEA0 + adds r0, r2, #1 + strh r0, [r3, #0x2e] + b _0812EEA0 +_0812EE46: + cmp r0, #1 + bne _0812EE82 + movs r0, #0x3e + adds r0, r0, r3 + mov ip, r0 + ldrb r2, [r0] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrh r0, [r3, #0x32] + adds r0, #1 + strh r0, [r3, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x17 + ble _0812EEA0 + ldrh r0, [r3, #0x2e] + adds r0, #1 + strh r0, [r3, #0x2e] + movs r0, #0 + strh r0, [r3, #0x32] + b _0812EEA0 +_0812EE82: + adds r2, r3, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r3, #0x32] + adds r0, #1 + strh r0, [r3, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xf + ble _0812EEA0 + movs r0, #1 + strh r0, [r3, #0x3c] +_0812EEA0: + ldrh r0, [r3, #0x30] + movs r1, #0xff + ands r1, r0 + adds r1, #0x10 + strh r1, [r3, #0x30] + lsrs r1, r1, #8 + ldrh r0, [r3, #0x26] + subs r0, r0, r1 + strh r0, [r3, #0x26] + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0812EE24 + + thumb_func_start sub_0812EEB8 +sub_0812EEB8: @ 0x0812EEB8 + ldr r2, _0812EED4 + ldr r0, _0812EED8 + ldr r0, [r0] + adds r0, #0x43 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0, #0x3c] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bx lr + .align 2, 0 +_0812EED4: .4byte 0x020205AC +_0812EED8: .4byte 0x0203A800 + thumb_func_end sub_0812EEB8 + + thumb_func_start sub_0812EEDC +sub_0812EEDC: @ 0x0812EEDC + push {r4, lr} + ldr r0, _0812EF08 + ldr r0, [r0] + adds r0, #0x43 + ldrb r0, [r0] + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _0812EF0C + adds r4, r4, r0 + ldrb r0, [r4, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + adds r0, r4, #0 + bl DestroySprite + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812EF08: .4byte 0x0203A800 +_0812EF0C: .4byte 0x020205AC + thumb_func_end sub_0812EEDC + + thumb_func_start sub_0812EF10 +sub_0812EF10: @ 0x0812EF10 + push {r4, lr} + adds r3, r0, #0 + adds r2, r1, #0 + ldr r0, _0812EF5C + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r1, r3, #0 + movs r3, #0xc + bl CreateSprite + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + ldr r1, _0812EF60 + adds r0, r0, r1 + ldrb r2, [r0, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #8 + orrs r1, r2 + strb r1, [r0, #5] + ldrb r1, [r0, #1] + movs r2, #3 + orrs r1, r2 + strb r1, [r0, #1] + bl InitSpriteAffineAnim + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0812EF5C: .4byte 0x08584F1C +_0812EF60: .4byte 0x020205AC + thumb_func_end sub_0812EF10 + + thumb_func_start sub_0812EF64 +sub_0812EF64: @ 0x0812EF64 + push {lr} + adds r2, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0812EF78 + movs r0, #1 + strh r0, [r2, #0x3c] +_0812EF78: + pop {r0} + bx r0 + thumb_func_end sub_0812EF64 + + thumb_func_start sub_0812EF7C +sub_0812EF7C: @ 0x0812EF7C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _0812EFA4 + adds r4, r4, r0 + ldrb r0, [r4, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + adds r0, r4, #0 + bl DestroySprite + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812EFA4: .4byte 0x020205AC + thumb_func_end sub_0812EF7C + + thumb_func_start sub_0812EFA8 +sub_0812EFA8: @ 0x0812EFA8 + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + ldr r3, _0812EFE4 + lsrs r1, r1, #0x16 + adds r3, r1, r3 + ldr r5, [r3] + ldr r3, _0812EFE8 + adds r4, r1, r3 + movs r6, #0 + ldrsh r4, [r4, r6] + adds r3, #2 + adds r1, r1, r3 + movs r6, #0 + ldrsh r3, [r1, r6] + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + str r2, [sp] + adds r1, r5, #0 + adds r2, r4, #0 + bl sub_0812EFEC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0812EFE4: .4byte 0x0858484C +_0812EFE8: .4byte 0x085847BE + thumb_func_end sub_0812EFA8 + + thumb_func_start sub_0812EFEC +sub_0812EFEC: @ 0x0812EFEC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x18 + adds r4, r0, #0 + mov r8, r1 + adds r1, r2, #0 + adds r2, r3, #0 + ldr r5, [sp, #0x34] + lsls r4, r4, #0x18 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + mov sb, r5 + ldr r0, _0812F078 + lsrs r4, r4, #0x16 + adds r0, r4, r0 + mov r3, sp + ldr r0, [r0] + ldm r0!, {r5, r6, r7} + stm r3!, {r5, r6, r7} + ldm r0!, {r5, r6, r7} + stm r3!, {r5, r6, r7} + ldr r0, _0812F07C + adds r0, r4, r0 + ldr r0, [r0] + str r0, [sp, #0xc] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + mov r0, sp + movs r3, #0x10 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r7, r0, #0 + lsls r0, r7, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + ldr r1, _0812F080 + adds r2, r0, r1 + ldrb r0, [r2, #5] + movs r1, #0xc + orrs r0, r1 + strb r0, [r2, #5] + mov r0, r8 + str r0, [r2, #0x1c] + mov r5, sb + strh r5, [r2, #0x3a] + movs r0, #1 + strh r0, [r2, #0x3c] + ldr r0, _0812F084 + adds r4, r4, r0 + ldr r1, [r4] + cmp r1, #0 + beq _0812F066 + adds r0, r2, #0 + bl SetSubspriteTables +_0812F066: + adds r0, r7, #0 + add sp, #0x18 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0812F078: .4byte 0x085851E8 +_0812F07C: .4byte 0x03001188 +_0812F080: .4byte 0x020205AC +_0812F084: .4byte 0x08585250 + thumb_func_end sub_0812EFEC + + thumb_func_start sub_0812F088 +sub_0812F088: @ 0x0812F088 + movs r1, #0 + strh r1, [r0, #0x3c] + bx lr + .align 2, 0 + thumb_func_end sub_0812F088 + + thumb_func_start sub_0812F090 +sub_0812F090: @ 0x0812F090 + push {r4, r5, lr} + sub sp, #0x10 + adds r4, r0, #0 + ldr r1, _0812F10C + mov r0, sp + movs r2, #8 + bl memcpy + add r5, sp, #8 + ldr r1, _0812F110 + adds r0, r5, #0 + movs r2, #8 + bl memcpy + ldrh r0, [r4, #0x30] + adds r1, r0, #1 + strh r1, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xf + ble _0812F0D6 + adds r3, r4, #0 + adds r3, #0x42 + ldrb r2, [r3] + lsls r0, r2, #0x1a + lsrs r0, r0, #0x1a + movs r1, #1 + eors r1, r0 + movs r0, #0x40 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + movs r0, #0 + strh r0, [r4, #0x30] +_0812F0D6: + 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 _0812F102 + movs r1, #0x3a + ldrsh r0, [r4, r1] + lsls r0, r0, #1 + add r0, sp + ldrh r0, [r0] + strh r0, [r4, #0x24] + movs r1, #0x3a + ldrsh r0, [r4, r1] + lsls r0, r0, #1 + adds r0, r5, r0 + ldrh r0, [r0] + strh r0, [r4, #0x26] +_0812F102: + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0812F10C: .4byte 0x085845A2 +_0812F110: .4byte 0x085845AA + thumb_func_end sub_0812F090 + + thumb_func_start sub_0812F114 +sub_0812F114: @ 0x0812F114 + push {lr} + adds r3, r0, #0 + adds r3, #0x3f + ldrb r1, [r3] + movs r2, #1 + orrs r1, r2 + strb r1, [r3] + bl sub_0812F090 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0812F114 + + thumb_func_start sub_0812F12C +sub_0812F12C: @ 0x0812F12C + push {lr} + adds r3, r0, #0 + adds r3, #0x3f + ldrb r1, [r3] + movs r2, #2 + orrs r1, r2 + strb r1, [r3] + bl sub_0812F090 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0812F12C + + thumb_func_start sub_0812F144 +sub_0812F144: @ 0x0812F144 + push {lr} + adds r3, r0, #0 + adds r3, #0x3f + ldrb r1, [r3] + movs r2, #1 + orrs r1, r2 + movs r2, #2 + orrs r1, r2 + strb r1, [r3] + bl sub_0812F090 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0812F144 + + thumb_func_start sub_0812F160 +sub_0812F160: @ 0x0812F160 + push {lr} + adds r2, r0, #0 + movs r1, #0x2e + ldrsh r0, [r2, r1] + cmp r0, #1 + beq _0812F194 + cmp r0, #1 + bgt _0812F176 + cmp r0, #0 + beq _0812F180 + b _0812F1C4 +_0812F176: + cmp r0, #2 + beq _0812F1A4 + cmp r0, #3 + beq _0812F1C0 + b _0812F1C4 +_0812F180: + ldrh r0, [r2, #0x20] + adds r0, #4 + strh r0, [r2, #0x20] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xcf + ble _0812F1C4 + movs r0, #0xd0 + strh r0, [r2, #0x20] + b _0812F1B2 +_0812F194: + ldrh r0, [r2, #0x30] + adds r0, #1 + strh r0, [r2, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x5a + ble _0812F1C4 + b _0812F1B2 +_0812F1A4: + ldrh r0, [r2, #0x20] + adds r0, #4 + strh r0, [r2, #0x20] + lsls r0, r0, #0x10 + ldr r1, _0812F1BC + cmp r0, r1 + ble _0812F1C4 +_0812F1B2: + ldrh r0, [r2, #0x2e] + adds r0, #1 + strh r0, [r2, #0x2e] + b _0812F1C4 + .align 2, 0 +_0812F1BC: .4byte 0x010F0000 +_0812F1C0: + movs r0, #0 + strh r0, [r2, #0x3c] +_0812F1C4: + pop {r0} + bx r0 + thumb_func_end sub_0812F160 + + thumb_func_start sub_0812F1C8 +sub_0812F1C8: @ 0x0812F1C8 + push {lr} + adds r1, r0, #0 + movs r2, #0x2e + ldrsh r0, [r1, r2] + cmp r0, #1 + beq _0812F1FC + cmp r0, #1 + bgt _0812F1DE + cmp r0, #0 + beq _0812F1E8 + b _0812F226 +_0812F1DE: + cmp r0, #2 + beq _0812F20C + cmp r0, #3 + beq _0812F222 + b _0812F226 +_0812F1E8: + ldrh r0, [r1, #0x20] + subs r0, #4 + strh r0, [r1, #0x20] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xd0 + bgt _0812F226 + movs r0, #0xd0 + strh r0, [r1, #0x20] + b _0812F21A +_0812F1FC: + ldrh r0, [r1, #0x30] + adds r0, #1 + strh r0, [r1, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x5a + ble _0812F226 + b _0812F21A +_0812F20C: + ldrh r0, [r1, #0x20] + subs r0, #4 + strh r0, [r1, #0x20] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x90 + bgt _0812F226 +_0812F21A: + ldrh r0, [r1, #0x2e] + adds r0, #1 + strh r0, [r1, #0x2e] + b _0812F226 +_0812F222: + movs r0, #0 + strh r0, [r1, #0x3c] +_0812F226: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0812F1C8 + + thumb_func_start sub_0812F22C +sub_0812F22C: @ 0x0812F22C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #5 + bhi _0812F2D6 + lsls r0, r0, #2 + ldr r1, _0812F244 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0812F244: .4byte 0x0812F248 +_0812F248: @ jump table + .4byte _0812F260 @ case 0 + .4byte _0812F278 @ case 1 + .4byte _0812F298 @ case 2 + .4byte _0812F2AC @ case 3 + .4byte _0812F2BC @ case 4 + .4byte _0812F2D2 @ case 5 +_0812F260: + ldr r0, _0812F294 + ldr r0, [r0] + ldrb r1, [r0, #0xa] + subs r1, #1 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] +_0812F278: + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + ble _0812F2D6 + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + movs r0, #0 + strh r0, [r4, #0x30] + b _0812F2D6 + .align 2, 0 +_0812F294: .4byte 0x0203A800 +_0812F298: + ldrh r0, [r4, #0x20] + adds r0, #4 + strh r0, [r4, #0x20] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xcf + ble _0812F2D6 + movs r0, #0xd0 + strh r0, [r4, #0x20] + b _0812F2CA +_0812F2AC: + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x5a + ble _0812F2D6 + b _0812F2CA +_0812F2BC: + ldrh r0, [r4, #0x20] + adds r0, #4 + strh r0, [r4, #0x20] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xf7 + ble _0812F2D6 +_0812F2CA: + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + b _0812F2D6 +_0812F2D2: + movs r0, #0 + strh r0, [r4, #0x3c] +_0812F2D6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_0812F22C + + thumb_func_start sub_0812F2DC +sub_0812F2DC: @ 0x0812F2DC + push {lr} + adds r3, r0, #0 + movs r1, #0x2e + ldrsh r0, [r3, r1] + cmp r0, #1 + beq _0812F30A + cmp r0, #1 + bgt _0812F2F2 + cmp r0, #0 + beq _0812F2F8 + b _0812F378 +_0812F2F2: + cmp r0, #2 + beq _0812F328 + b _0812F378 +_0812F2F8: + 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, #1 + strh r0, [r3, #0x2e] +_0812F30A: + ldrh r0, [r3, #0x22] + adds r0, #8 + strh r0, [r3, #0x22] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x6f + ble _0812F378 + movs r0, #0x70 + strh r0, [r3, #0x22] + movs r0, #0x10 + strh r0, [r3, #0x30] + ldrh r0, [r3, #0x2e] + adds r0, #1 + strh r0, [r3, #0x2e] + b _0812F378 +_0812F328: + movs r0, #0x32 + ldrsh r2, [r3, r0] + cmp r2, #0 + bne _0812F36E + ldrh r0, [r3, #0x22] + ldrh r1, [r3, #0x30] + subs r0, r0, r1 + strh r0, [r3, #0x22] + rsbs r1, r1, #0 + strh r1, [r3, #0x30] + ldrh r0, [r3, #0x34] + adds r0, #1 + strh r0, [r3, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _0812F36E + lsls r0, r1, #0x10 + asrs r0, r0, #0x12 + strh r0, [r3, #0x30] + strh r2, [r3, #0x34] + adds r1, r0, #0 + cmp r1, #0 + bne _0812F36E + ldrh r0, [r3, #0x2e] + adds r0, #1 + strh r0, [r3, #0x2e] + strh r1, [r3, #0x3c] + adds r2, r3, #0 + adds r2, #0x2c + ldrb r1, [r2] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_0812F36E: + ldrh r0, [r3, #0x32] + adds r0, #1 + movs r1, #7 + ands r0, r1 + strh r0, [r3, #0x32] +_0812F378: + pop {r0} + bx r0 + thumb_func_end sub_0812F2DC + + thumb_func_start sub_0812F37C +sub_0812F37C: @ 0x0812F37C + push {lr} + adds r1, r0, #0 + movs r2, #0x2e + ldrsh r0, [r1, r2] + cmp r0, #0 + beq _0812F38E + cmp r0, #1 + beq _0812F3A4 + b _0812F3C0 +_0812F38E: + ldrh r0, [r1, #0x30] + adds r0, #1 + strh r0, [r1, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #8 + ble _0812F3C0 + ldrh r0, [r1, #0x2e] + adds r0, #1 + strh r0, [r1, #0x2e] + b _0812F3C0 +_0812F3A4: + ldrh r0, [r1, #0x22] + adds r0, #2 + strh r0, [r1, #0x22] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x2f + ble _0812F3C0 + movs r0, #0x30 + strh r0, [r1, #0x22] + ldrh r0, [r1, #0x2e] + adds r0, #1 + strh r0, [r1, #0x2e] + movs r0, #0 + strh r0, [r1, #0x3c] +_0812F3C0: + pop {r0} + bx r0 + thumb_func_end sub_0812F37C + + thumb_func_start sub_0812F3C4 +sub_0812F3C4: @ 0x0812F3C4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0812F3D6 + cmp r0, #1 + beq _0812F426 + b _0812F478 +_0812F3D6: + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x20 + ble _0812F478 + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + movs r0, #5 + strh r0, [r4, #0x30] + ldrb r0, [r4, #1] + movs r1, #0x10 + orrs r0, r1 + strb r0, [r4, #1] + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAnim + ldrh r0, [r4, #0x30] + lsls r1, r0, #4 + orrs r1, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x10 + movs r0, #0x4c + bl SetGpuReg + b _0812F478 +_0812F426: + ldrh r1, [r4, #0x32] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + ldrh r0, [r4, #0x30] + subs r0, r0, r1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _0812F43C + movs r0, #0 + strh r0, [r4, #0x30] +_0812F43C: + ldrh r0, [r4, #0x30] + lsls r1, r0, #4 + orrs r1, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x10 + movs r0, #0x4c + bl SetGpuReg + 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 _0812F478 + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + strh r1, [r4, #0x3c] + ldrb r1, [r4, #1] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #1] + adds r0, r4, #0 + movs r1, #0 + bl StartSpriteAnim +_0812F478: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0812F3C4 + + thumb_func_start sub_0812F480 +sub_0812F480: @ 0x0812F480 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0x30 + ldrsh r0, [r5, r1] + cmp r0, #2 + bgt _0812F4D0 + ldr r1, _0812F4CC + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r4, [r0] + movs r0, #6 + bl IndexOfSpritePaletteTag + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #4 + movs r0, #0x80 + lsls r0, r0, #0x11 + adds r1, r1, r0 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + movs r2, #0x20 + bl LoadPalette + ldrh r0, [r5, #0x32] + adds r0, #1 + strh r0, [r5, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + ble _0812F50C + ldrh r0, [r5, #0x30] + adds r0, #1 + strh r0, [r5, #0x30] + movs r0, #0 + strh r0, [r5, #0x32] + b _0812F50C + .align 2, 0 +_0812F4CC: .4byte 0x08585614 +_0812F4D0: + ldr r1, _0812F520 + movs r2, #0x30 + ldrsh r0, [r5, r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r4, [r0] + movs r0, #6 + bl IndexOfSpritePaletteTag + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #4 + movs r0, #0x80 + lsls r0, r0, #0x11 + adds r1, r1, r0 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + movs r2, #0x20 + bl LoadPalette + ldrh r0, [r5, #0x32] + adds r0, #1 + movs r1, #0 + strh r0, [r5, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x18 + ble _0812F50C + strh r1, [r5, #0x30] + strh r1, [r5, #0x32] +_0812F50C: + adds r0, r5, #0 + movs r1, #1 + bl StartSpriteAnimIfDifferent + movs r0, #0 + strh r0, [r5, #0x3c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0812F520: .4byte 0x08585614 + thumb_func_end sub_0812F480 + + thumb_func_start sub_0812F524 +sub_0812F524: @ 0x0812F524 + push {r4, r5, r6, lr} + sub sp, #0x30 + adds r4, r0, #0 + ldr r1, _0812F560 + mov r0, sp + movs r2, #0x10 + bl memcpy + add r6, sp, #0x10 + ldr r1, _0812F564 + adds r0, r6, #0 + movs r2, #0x10 + bl memcpy + add r5, sp, #0x20 + ldr r1, _0812F568 + adds r0, r5, #0 + movs r2, #0x10 + bl memcpy + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _0812F59C + cmp r0, #1 + bgt _0812F56C + cmp r0, #0 + beq _0812F572 + b _0812F5E8 + .align 2, 0 +_0812F560: .4byte 0x085845B2 +_0812F564: .4byte 0x085845C2 +_0812F568: .4byte 0x085845D2 +_0812F56C: + cmp r0, #2 + beq _0812F5B0 + b _0812F5E8 +_0812F572: + movs r2, #0x3a + ldrsh r0, [r4, r2] + lsls r0, r0, #1 + add r0, sp + ldrh r0, [r0] + strh r0, [r4, #0x24] + movs r1, #0x3a + ldrsh r0, [r4, r1] + lsls r0, r0, #1 + adds r0, r6, r0 + ldrh r0, [r0] + strh r0, [r4, #0x26] + movs r2, #0x3a + ldrsh r0, [r4, r2] + lsls r0, r0, #1 + adds r0, r5, r0 + ldrh r0, [r0] + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] +_0812F59C: + ldrh r0, [r4, #0x30] + subs r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0812F5E8 + b _0812F5E2 +_0812F5B0: + ldrh r0, [r4, #0x24] + movs r2, #0x24 + ldrsh r1, [r4, r2] + cmp r1, #0 + ble _0812F5BE + subs r0, #4 + b _0812F5C4 +_0812F5BE: + cmp r1, #0 + bge _0812F5C6 + adds r0, #4 +_0812F5C4: + strh r0, [r4, #0x24] +_0812F5C6: + ldrh r0, [r4, #0x26] + movs r2, #0x26 + ldrsh r1, [r4, r2] + cmp r1, #0 + ble _0812F5D4 + subs r0, #4 + b _0812F5DA +_0812F5D4: + cmp r1, #0 + bge _0812F5DC + adds r0, #4 +_0812F5DA: + strh r0, [r4, #0x26] +_0812F5DC: + ldr r0, [r4, #0x24] + cmp r0, #0 + bne _0812F5E8 +_0812F5E2: + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] +_0812F5E8: + add sp, #0x30 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_0812F524 + + thumb_func_start sub_0812F5F0 +sub_0812F5F0: @ 0x0812F5F0 + push {r4, lr} + sub sp, #0x10 + adds r4, r0, #0 + ldr r1, _0812F654 + mov r0, sp + movs r2, #0x10 + bl memcpy + ldrh r1, [r4, #0x2e] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _0812F612 + adds r0, r1, #1 + strh r0, [r4, #0x2e] + movs r0, #0xc + strh r0, [r4, #0x30] +_0812F612: + movs r1, #0x3a + ldrsh r0, [r4, r1] + lsls r0, 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, 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 _0812F64C + subs r0, r1, #1 + strh r0, [r4, #0x30] +_0812F64C: + add sp, #0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812F654: .4byte 0x085845E2 + thumb_func_end sub_0812F5F0 + + thumb_func_start sub_0812F658 +sub_0812F658: @ 0x0812F658 + push {r4, r5, r6, lr} + sub sp, #4 + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + cmp r0, #1 + beq _0812F6A4 + cmp r0, #1 + bgt _0812F670 + cmp r0, #0 + beq _0812F67A + b _0812F77C +_0812F670: + cmp r0, #2 + beq _0812F6F0 + cmp r0, #3 + beq _0812F72C + b _0812F77C +_0812F67A: + ldr r0, _0812F6E8 + ldr r2, [r0] + adds r1, r2, #0 + adds r1, #0x5c + movs r0, #0x2f + strh r0, [r1] + adds r1, #2 + movs r0, #0x3f + strh r0, [r1] + subs r1, #4 + ldr r0, _0812F6EC + strh r0, [r1] + adds r2, r5, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] +_0812F6A4: + ldrh r0, [r5, #0x30] + adds r2, r0, #2 + strh r2, [r5, #0x30] + adds r0, #0xb2 + strh r0, [r5, #0x32] + movs r1, #0xf0 + subs r1, r1, r2 + strh r1, [r5, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xd0 + ble _0812F6C0 + movs r0, #0xd0 + strh r0, [r5, #0x32] +_0812F6C0: + movs r1, #0x34 + ldrsh r0, [r5, r1] + cmp r0, #0xcf + bgt _0812F6CC + movs r0, #0xd0 + strh r0, [r5, #0x34] +_0812F6CC: + ldr r0, _0812F6E8 + ldr r2, [r0] + ldrh r0, [r5, #0x32] + lsls r0, 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 _0812F77C + b _0812F76E + .align 2, 0 +_0812F6E8: .4byte 0x0203A800 +_0812F6EC: .4byte 0x00002088 +_0812F6F0: + ldr r6, _0812F784 + ldr r0, [r6] + movs r1, #0x12 + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _0812F77C + ldr r1, _0812F788 + movs r4, #0 + str r4, [sp] + movs r0, #5 + movs r2, #0xd0 + movs r3, #0x74 + bl sub_0812DF78 + ldr r2, [r6] + adds r1, r2, #0 + adds r1, #0x58 + ldr r0, _0812F78C + strh r0, [r1] + adds r1, #2 + movs r0, #0xd1 + lsls r0, r0, #7 + strh r0, [r1] + adds r1, #2 + movs r0, #0x2f + strh r0, [r1] + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] + strh r4, [r5, #0x30] +_0812F72C: + ldrh r0, [r5, #0x30] + adds r2, r0, #2 + strh r2, [r5, #0x30] + adds r0, #0xc2 + strh r0, [r5, #0x32] + movs r1, #0xe0 + subs r1, r1, r2 + strh r1, [r5, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xd0 + ble _0812F748 + movs r0, #0xd0 + strh r0, [r5, #0x32] +_0812F748: + movs r1, #0x34 + ldrsh r0, [r5, r1] + cmp r0, #0xcf + bgt _0812F754 + movs r0, #0xd0 + strh r0, [r5, #0x34] +_0812F754: + ldr r0, _0812F784 + ldr r2, [r0] + ldrh r0, [r5, #0x32] + lsls r0, 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 _0812F77C +_0812F76E: + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] + adds r1, r2, #0 + adds r1, #0x5c + movs r0, #0x3f + strh r0, [r1] +_0812F77C: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0812F784: .4byte 0x0203A800 +_0812F788: .4byte 0x08007141 +_0812F78C: .4byte 0x0000C0E0 + thumb_func_end sub_0812F658 + + thumb_func_start sub_0812F790 +sub_0812F790: @ 0x0812F790 + bx lr + .align 2, 0 + thumb_func_end sub_0812F790 + + thumb_func_start sub_0812F794 +sub_0812F794: @ 0x0812F794 + push {lr} + movs r0, #0x4c + movs r1, #0 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0812F794 + + thumb_func_start sub_0812F7A4 +sub_0812F7A4: @ 0x0812F7A4 + push {r4, lr} + ldr r0, _0812F7CC + ldr r4, [r0] + movs r0, #6 + bl IndexOfSpritePaletteTag + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #4 + movs r0, #0x80 + lsls r0, r0, #0x11 + adds r1, r1, r0 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + movs r2, #0x20 + bl LoadPalette + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812F7CC: .4byte 0x08585624 + thumb_func_end sub_0812F7A4 + + thumb_func_start sub_0812F7D0 +sub_0812F7D0: @ 0x0812F7D0 + ldr r0, _0812F7F0 + ldr r2, [r0] + adds r1, r2, #0 + adds r1, #0x58 + movs r0, #0xf0 + strh r0, [r1] + adds r1, #2 + movs r0, #0xa0 + strh r0, [r1] + adds r0, r2, #0 + adds r0, #0x5c + movs r1, #0x3f + strh r1, [r0] + adds r0, #2 + strh r1, [r0] + bx lr + .align 2, 0 +_0812F7F0: .4byte 0x0203A800 + thumb_func_end sub_0812F7D0 + + thumb_func_start sub_0812F7F4 +sub_0812F7F4: @ 0x0812F7F4 + push {r4, r5, r6, lr} + bl sub_0812F8B0 + ldr r4, _0812F894 + movs r0, #0xc8 + lsls r0, r0, #6 + bl Alloc + adds r1, r0, #0 + str r1, [r4] + ldr r0, _0812F898 + bl LZDecompressVram + ldr r4, _0812F89C + movs r0, #0xd8 + lsls r0, r0, #6 + bl Alloc + adds r1, r0, #0 + str r1, [r4] + ldr r0, _0812F8A0 + bl LZDecompressVram + ldr r4, _0812F8A4 + movs r0, #0xb0 + bl AllocZeroed + str r0, [r4] + movs r3, #0 + ldr r5, _0812F8A8 + adds r6, r4, #0 +_0812F832: + ldr r2, [r4] + lsls r1, r3, #3 + adds r2, r1, r2 + adds r1, r1, r5 + ldr r0, [r1] + str r0, [r2] + ldrh r0, [r1, #4] + strh r0, [r2, #4] + ldrh r0, [r1, #6] + strh r0, [r2, #6] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0x15 + bls _0812F832 + ldr r3, [r6] + adds r2, r3, #0 + adds r2, #0x88 + ldr r0, _0812F894 + ldr r1, [r0] + movs r4, #0xa0 + lsls r4, r4, #4 + adds r0, r1, r4 + str r0, [r2] + adds r2, #8 + movs r4, #0xa0 + lsls r4, r4, #5 + adds r0, r1, r4 + str r0, [r2] + adds r2, #8 + movs r4, #0xb0 + lsls r4, r4, #5 + adds r0, r1, r4 + str r0, [r2] + adds r0, r3, #0 + adds r0, #0xa0 + movs r2, #0xc8 + lsls r2, r2, #5 + adds r1, r1, r2 + str r1, [r0] + adds r0, r3, #0 + bl LoadSpriteSheets + ldr r0, _0812F8AC + bl LoadSpritePalettes + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0812F894: .4byte 0x0203A7A0 +_0812F898: .4byte 0x08585690 +_0812F89C: .4byte 0x0203A7A4 +_0812F8A0: .4byte 0x08585DF8 +_0812F8A4: .4byte 0x0203A7FC +_0812F8A8: .4byte 0x085852B8 +_0812F8AC: .4byte 0x08585648 + thumb_func_end sub_0812F7F4 + + thumb_func_start sub_0812F8B0 +sub_0812F8B0: @ 0x0812F8B0 + push {r4, r5, r6, lr} + ldr r5, _0812F90C + movs r0, #8 + bl AllocZeroed + str r0, [r5] + ldr r4, _0812F910 + movs r0, #0x80 + lsls r0, r0, #6 + bl AllocZeroed + str r0, [r4] + adds r3, r0, #0 + movs r1, #0 + adds r6, r4, #0 + ldr r0, _0812F914 + ldr r4, [r0] +_0812F8D2: + movs r2, #0 + adds r1, #1 +_0812F8D6: + adds r0, r4, r2 + ldrb r0, [r0] + strb r0, [r3] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r3, #1 + cmp r2, #0x1f + bls _0812F8D6 + lsls r0, r1, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x3f + bls _0812F8D2 + ldr r0, [r5] + ldr r1, [r6] + str r1, [r0] + movs r1, #0x80 + lsls r1, r1, #4 + strh r1, [r0, #4] + movs r1, #0x11 + strh r1, [r0, #6] + bl LoadSpriteSheet + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0812F90C: .4byte 0x0203A7F8 +_0812F910: .4byte 0x0203A7AC +_0812F914: .4byte 0x08585368 + thumb_func_end sub_0812F8B0 + + thumb_func_start sub_0812F918 +sub_0812F918: @ 0x0812F918 + push {r4, lr} + ldr r4, _0812F958 + movs r0, #0x80 + lsls r0, r0, #6 + bl Alloc + adds r1, r0, #0 + str r1, [r4] + ldr r0, _0812F95C + bl LZDecompressVram + ldr r1, [r4] + movs r2, #0xe9 + lsls r2, r2, #5 + movs r0, #2 + movs r3, #0 + bl LoadBgTiles + ldr r0, _0812F960 + movs r1, #0 + movs r2, #0xa0 + bl LoadPalette + ldr r0, _0812F964 + movs r1, #0xd0 + movs r2, #0x20 + bl LoadPalette + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812F958: .4byte 0x0203A794 +_0812F95C: .4byte 0x08586F4C +_0812F960: .4byte 0x0858544C +_0812F964: .4byte 0x08585628 + thumb_func_end sub_0812F918 + + thumb_func_start sub_0812F968 +sub_0812F968: @ 0x0812F968 + push {lr} + bl sub_0812F978 + bl LoadSlotMachineWheelOverlay + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0812F968 + + thumb_func_start sub_0812F978 +sub_0812F978: @ 0x0812F978 + push {r4, lr} + movs r4, #0 +_0812F97C: + lsls r1, r4, #4 + subs r1, r1, r4 + lsls r1, r1, #2 + ldr r0, _0812F9A0 + adds r1, r1, r0 + lsls r3, r4, #5 + movs r0, #2 + movs r2, #0x3c + bl LoadBgTilemap + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x13 + bls _0812F97C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812F9A0: .4byte 0x08587AEC + thumb_func_end sub_0812F978 + + thumb_func_start LoadSlotMachineWheelOverlay +LoadSlotMachineWheelOverlay: @ 0x0812F9A4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + movs r1, #4 + ldr r0, _0812FA98 + mov r8, r0 +_0812F9B2: + movs r0, #0 + lsls r1, r1, #0x10 + mov sb, r1 +_0812F9B8: + mov r2, r8 + ldr r1, [r2] + mov r2, sb + asrs r6, r2, #0x10 + lsls r4, r0, #0x10 + asrs r4, r4, #0x10 + adds r5, r6, r4 + adds r3, r5, #0 + adds r3, #0xa0 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + movs r0, #3 + movs r2, #2 + bl LoadBgTilemap + mov r0, r8 + ldr r1, [r0] + adds r1, #2 + movs r2, #0xd0 + lsls r2, r2, #1 + adds r3, r5, r2 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + movs r0, #3 + movs r2, #2 + bl LoadBgTilemap + mov r0, r8 + ldr r1, [r0] + adds r1, #4 + adds r3, r5, #0 + adds r3, #0xc0 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + movs r0, #3 + movs r2, #2 + bl LoadBgTilemap + mov r2, r8 + ldr r1, [r2] + adds r1, #6 + movs r0, #0xc0 + lsls r0, r0, #1 + adds r7, r0, #0 + adds r3, r5, r7 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + movs r0, #3 + movs r2, #2 + bl LoadBgTilemap + adds r4, #1 + lsls r4, r4, #0x10 + lsrs r0, r4, #0x10 + asrs r4, r4, #0x10 + cmp r4, #3 + ble _0812F9B8 + mov r2, r8 + ldr r1, [r2] + adds r1, #8 + adds r3, r6, #0 + adds r3, #0xc0 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + movs r0, #3 + movs r2, #2 + bl LoadBgTilemap + mov r0, r8 + ldr r1, [r0] + adds r1, #0xa + adds r3, r6, r7 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + movs r0, #3 + movs r2, #2 + bl LoadBgTilemap + movs r0, #7 +_0812FA56: + mov r2, r8 + ldr r1, [r2] + adds r1, #0xc + lsls r4, r0, #0x10 + asrs r4, r4, #0x10 + lsls r3, r4, #5 + mov r0, sb + asrs r5, r0, #0x10 + adds r3, r5, r3 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + movs r0, #3 + movs r2, #2 + bl LoadBgTilemap + adds r4, #1 + lsls r4, r4, #0x10 + lsrs r0, r4, #0x10 + asrs r4, r4, #0x10 + cmp r4, #0xb + ble _0812FA56 + adds r0, r5, #5 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x11 + ble _0812F9B2 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0812FA98: .4byte 0x0203A79C + thumb_func_end LoadSlotMachineWheelOverlay + + thumb_func_start sub_0812FA9C +sub_0812FA9C: @ 0x0812FA9C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r5, [sp, #0x10] + ldr r6, _0812FB0C + ldr r0, [r6] + strh r1, [r0] + ldr r1, [r6] + strh r2, [r1, #2] + strh r3, [r1, #4] + strh r5, [r1, #6] + lsls r4, r4, #0x10 + asrs r5, r4, #0x10 + movs r0, #0xf0 + lsls r0, r0, #0x11 + adds r4, r4, r0 + lsrs r4, r4, #0x10 + movs r0, #2 + movs r2, #2 + adds r3, r4, #0 + bl LoadBgTilemap + ldr r1, [r6] + adds r1, #2 + ldr r0, _0812FB10 + adds r3, r5, r0 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + movs r0, #2 + movs r2, #2 + bl LoadBgTilemap + ldr r1, [r6] + adds r1, #4 + movs r0, #0x80 + lsls r0, r0, #2 + adds r3, r5, r0 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + movs r0, #2 + movs r2, #2 + bl LoadBgTilemap + ldr r1, [r6] + adds r1, #6 + ldr r0, _0812FB14 + adds r5, r5, r0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + movs r0, #2 + movs r2, #2 + adds r3, r5, #0 + bl LoadBgTilemap + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0812FB0C: .4byte 0x0203A7A8 +_0812FB10: .4byte 0x000001E1 +_0812FB14: .4byte 0x00000201 + thumb_func_end sub_0812FA9C + + thumb_func_start sub_0812FB18 +sub_0812FB18: @ 0x0812FB18 + push {r4, lr} + movs r4, #0 +_0812FB1C: + lsls r1, r4, #4 + subs r1, r1, r4 + lsls r1, r1, #2 + ldr r0, _0812FB48 + adds r1, r1, r0 + lsls r3, r4, #5 + movs r0, #2 + movs r2, #0x3c + bl LoadBgTilemap + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x13 + bls _0812FB1C + movs r0, #3 + bl HideBg + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812FB48: .4byte 0x08588154 + thumb_func_end sub_0812FB18 + + thumb_func_start SlotMachineSetup_9_0 +SlotMachineSetup_9_0: @ 0x0812FB4C + ldr r1, _0812FBC0 + ldr r0, _0812FBC4 + ldr r0, [r0] + str r0, [r1] + ldr r0, _0812FBC8 + ldr r0, [r0] + str r0, [r1, #4] + ldr r0, _0812FBCC + ldr r0, [r0] + str r0, [r1, #8] + ldr r0, _0812FBD0 + ldr r0, [r0] + str r0, [r1, #0xc] + ldr r0, _0812FBD4 + ldr r0, [r0] + str r0, [r1, #0x10] + ldr r0, _0812FBD8 + ldr r0, [r0] + str r0, [r1, #0x14] + ldr r0, _0812FBDC + ldr r0, [r0] + str r0, [r1, #0x18] + ldr r0, _0812FBE0 + ldr r0, [r0] + str r0, [r1, #0x1c] + ldr r0, _0812FBE4 + ldr r0, [r0] + str r0, [r1, #0x20] + ldr r0, _0812FBE8 + ldr r0, [r0] + str r0, [r1, #0x24] + ldr r0, _0812FBEC + ldr r0, [r0] + str r0, [r1, #0x28] + str r0, [r1, #0x2c] + str r0, [r1, #0x30] + str r0, [r1, #0x34] + ldr r0, _0812FBF0 + ldr r0, [r0] + str r0, [r1, #0x38] + str r0, [r1, #0x3c] + str r0, [r1, #0x40] + str r0, [r1, #0x44] + str r0, [r1, #0x48] + ldr r0, _0812FBF4 + ldr r0, [r0] + str r0, [r1, #0x4c] + str r0, [r1, #0x50] + str r0, [r1, #0x54] + ldr r0, _0812FBF8 + ldr r0, [r0] + str r0, [r1, #0x58] + str r0, [r1, #0x5c] + str r0, [r1, #0x60] + movs r0, #0 + str r0, [r1, #0x64] + bx lr + .align 2, 0 +_0812FBC0: .4byte 0x03001188 +_0812FBC4: .4byte 0x0203A7C0 +_0812FBC8: .4byte 0x0203A7C4 +_0812FBCC: .4byte 0x0203A7C8 +_0812FBD0: .4byte 0x0203A7D0 +_0812FBD4: .4byte 0x0203A7D4 +_0812FBD8: .4byte 0x0203A7E4 +_0812FBDC: .4byte 0x0203A7E8 +_0812FBE0: .4byte 0x0203A7EC +_0812FBE4: .4byte 0x0203A7F0 +_0812FBE8: .4byte 0x0203A7F4 +_0812FBEC: .4byte 0x0203A7CC +_0812FBF0: .4byte 0x0203A7D8 +_0812FBF4: .4byte 0x0203A7DC +_0812FBF8: .4byte 0x0203A7E0 + thumb_func_end SlotMachineSetup_9_0 + + thumb_func_start SlotMachineSetup_8_0 +SlotMachineSetup_8_0: @ 0x0812FBFC + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + ldr r4, _0812FDA4 + movs r0, #8 + bl AllocZeroed + str r0, [r4] + ldr r6, _0812FDA8 + ldr r1, [r6] + str r1, [r0] + movs r5, #0xc0 + lsls r5, r5, #3 + strh r5, [r0, #4] + ldr r4, _0812FDAC + movs r0, #8 + bl AllocZeroed + str r0, [r4] + ldr r1, [r6] + adds r1, r1, r5 + str r1, [r0] + movs r1, #0x80 + lsls r1, r1, #2 + mov r8, r1 + mov r2, r8 + strh r2, [r0, #4] + ldr r4, _0812FDB0 + movs r0, #8 + bl AllocZeroed + str r0, [r4] + ldr r1, [r6] + movs r3, #0x80 + lsls r3, r3, #4 + adds r1, r1, r3 + str r1, [r0] + mov r4, r8 + strh r4, [r0, #4] + ldr r4, _0812FDB4 + movs r0, #8 + bl AllocZeroed + str r0, [r4] + ldr r1, [r6] + movs r2, #0xa0 + lsls r2, r2, #4 + adds r1, r1, r2 + str r1, [r0] + mov r3, r8 + strh r3, [r0, #4] + ldr r4, _0812FDB8 + movs r0, #8 + bl AllocZeroed + str r0, [r4] + ldr r1, [r6] + movs r4, #0xc0 + lsls r4, r4, #4 + adds r1, r1, r4 + str r1, [r0] + movs r5, #0xc0 + lsls r5, r5, #2 + strh r5, [r0, #4] + ldr r4, _0812FDBC + movs r0, #8 + bl AllocZeroed + str r0, [r4] + ldr r1, [r6] + movs r2, #0x80 + lsls r2, r2, #5 + adds r1, r1, r2 + str r1, [r0] + movs r1, #0x80 + lsls r1, r1, #3 + strh r1, [r0, #4] + ldr r4, _0812FDC0 + movs r0, #8 + bl AllocZeroed + str r0, [r4] + ldr r1, [r6] + movs r3, #0xa0 + lsls r3, r3, #5 + adds r1, r1, r3 + str r1, [r0] + mov r4, r8 + strh r4, [r0, #4] + ldr r4, _0812FDC4 + movs r0, #8 + bl AllocZeroed + str r0, [r4] + ldr r1, [r6] + movs r2, #0xb0 + lsls r2, r2, #5 + adds r1, r1, r2 + str r1, [r0] + strh r5, [r0, #4] + ldr r4, _0812FDC8 + movs r0, #8 + bl AllocZeroed + str r0, [r4] + ldr r1, [r6] + movs r3, #0xc8 + lsls r3, r3, #5 + adds r1, r1, r3 + str r1, [r0] + strh r5, [r0, #4] + ldr r4, _0812FDCC + movs r0, #0x10 + bl AllocZeroed + str r0, [r4] + ldr r1, [r6] + movs r4, #0xe0 + lsls r4, r4, #5 + adds r2, r1, r4 + str r2, [r0] + mov r2, r8 + strh r2, [r0, #4] + movs r3, #0xf0 + lsls r3, r3, #5 + adds r1, r1, r3 + str r1, [r0, #8] + strh r2, [r0, #0xc] + ldr r4, _0812FDD0 + movs r0, #8 + bl AllocZeroed + str r0, [r4] + ldr r1, [r6] + movs r4, #0x80 + lsls r4, r4, #6 + adds r1, r1, r4 + str r1, [r0] + movs r1, #0xa0 + lsls r1, r1, #2 + strh r1, [r0, #4] + ldr r4, _0812FDD4 + movs r0, #0x28 + bl AllocZeroed + str r0, [r4] + ldr r2, [r6] + movs r3, #0x8a + lsls r3, r3, #6 + adds r1, r2, r3 + str r1, [r0] + movs r3, #0x80 + strh r3, [r0, #4] + movs r4, #0x8c + lsls r4, r4, #6 + adds r1, r2, r4 + str r1, [r0, #8] + strh r3, [r0, #0xc] + adds r4, #0x80 + adds r1, r2, r4 + str r1, [r0, #0x10] + strh r3, [r0, #0x14] + adds r4, #0x80 + adds r1, r2, r4 + str r1, [r0, #0x18] + strh r3, [r0, #0x1c] + movs r1, #0x92 + lsls r1, r1, #6 + adds r2, r2, r1 + str r2, [r0, #0x20] + strh r3, [r0, #0x24] + ldr r4, _0812FDD8 + movs r0, #0x10 + bl AllocZeroed + str r0, [r4] + ldr r2, [r6] + movs r3, #0x98 + lsls r3, r3, #6 + adds r1, r2, r3 + str r1, [r0] + movs r1, #0x90 + lsls r1, r1, #3 + strh r1, [r0, #4] + movs r4, #0xaa + lsls r4, r4, #6 + adds r2, r2, r4 + str r2, [r0, #8] + strh r1, [r0, #0xc] + ldr r4, _0812FDDC + movs r0, #0x10 + bl AllocZeroed + str r0, [r4] + ldr r2, [r6] + movs r3, #0xbc + lsls r3, r3, #6 + adds r1, r2, r3 + str r1, [r0] + movs r1, #0xc0 + lsls r1, r1, #1 + strh r1, [r0, #4] + movs r4, #0xc2 + lsls r4, r4, #6 + adds r2, r2, r4 + str r2, [r0, #8] + strh r1, [r0, #0xc] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0812FDA4: .4byte 0x0203A7C0 +_0812FDA8: .4byte 0x0203A7A0 +_0812FDAC: .4byte 0x0203A7C4 +_0812FDB0: .4byte 0x0203A7C8 +_0812FDB4: .4byte 0x0203A7CC +_0812FDB8: .4byte 0x0203A7D0 +_0812FDBC: .4byte 0x0203A7D4 +_0812FDC0: .4byte 0x0203A7D8 +_0812FDC4: .4byte 0x0203A7DC +_0812FDC8: .4byte 0x0203A7E0 +_0812FDCC: .4byte 0x0203A7E4 +_0812FDD0: .4byte 0x0203A7E8 +_0812FDD4: .4byte 0x0203A7EC +_0812FDD8: .4byte 0x0203A7F0 +_0812FDDC: .4byte 0x0203A7F4 + thumb_func_end SlotMachineSetup_8_0 + diff --git a/asm/smokescreen.s b/asm/smokescreen.s new file mode 100644 index 0000000..2de33c6 --- /dev/null +++ b/asm/smokescreen.s @@ -0,0 +1,222 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_08074C24 +sub_08074C24: @ 0x08074C24 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r4, r2, #0x18 + ldr r5, _08074D5C + ldrh r0, [r5, #6] + bl GetSpriteTileStartByTag + lsls r0, r0, #0x10 + ldr r1, _08074D60 + cmp r0, r1 + bne _08074C56 + adds r0, r5, #0 + bl LoadCompressedSpriteSheetUsingHeap + ldr r0, _08074D64 + bl LoadCompressedSpritePaletteUsingHeap +_08074C56: + ldr r0, _08074D68 + bl CreateInvisibleSpriteWithCallback + mov r8, r0 + mov r0, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r5, r0, #4 + add r5, r8 + lsls r5, r5, #2 + ldr r0, _08074D6C + adds r5, r5, r0 + strh r4, [r5, #0x30] + ldr r0, _08074D70 + mov sb, r0 + lsls r6, r6, #0x10 + asrs r0, r6, #0x10 + mov sl, r0 + ldr r0, _08074D74 + adds r6, r6, r0 + asrs r6, r6, #0x10 + lsls r4, r7, #0x10 + asrs r7, r4, #0x10 + adds r4, r4, r0 + asrs r4, r4, #0x10 + mov r0, sb + adds r1, r6, #0 + adds r2, r4, #0 + movs r3, #2 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08074D6C + adds r1, r1, r0 + mov r0, r8 + strh r0, [r1, #0x2e] + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] + adds r0, r1, #0 + bl AnimateSprite + mov r0, sb + mov r1, sl + adds r2, r4, #0 + movs r3, #2 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _08074D6C + adds r4, r4, r0 + mov r0, r8 + strh r0, [r4, #0x2e] + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAnim + adds r0, r4, #0 + bl AnimateSprite + mov r0, sb + adds r1, r6, #0 + adds r2, r7, #0 + movs r3, #2 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _08074D6C + adds r4, r4, r0 + mov r0, r8 + strh r0, [r4, #0x2e] + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] + adds r0, r4, #0 + movs r1, #2 + bl StartSpriteAnim + adds r0, r4, #0 + bl AnimateSprite + mov r0, sb + mov r1, sl + adds r2, r7, #0 + movs r3, #2 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _08074D6C + adds r4, r4, r0 + mov r0, r8 + strh r0, [r4, #0x2e] + ldrh r0, [r5, #0x2e] + adds r0, #1 + strh r0, [r5, #0x2e] + adds r0, r4, #0 + movs r1, #3 + bl StartSpriteAnim + adds r0, r4, #0 + bl AnimateSprite + mov r0, r8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08074D5C: .4byte 0x082ECFA8 +_08074D60: .4byte 0xFFFF0000 +_08074D64: .4byte 0x082ECFB0 +_08074D68: .4byte 0x08074D79 +_08074D6C: .4byte 0x020205AC +_08074D70: .4byte 0x082ED010 +_08074D74: .4byte 0xFFF00000 + thumb_func_end sub_08074C24 + + thumb_func_start sub_08074D78 +sub_08074D78: @ 0x08074D78 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08074DB0 + ldr r0, _08074DA4 + ldrh r0, [r0, #6] + bl FreeSpriteTilesByTag + ldr r0, _08074DA8 + ldrh r0, [r0, #4] + bl FreeSpritePaletteByTag + movs r1, #0x30 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08074DAC + adds r0, r4, #0 + bl DestroySprite + b _08074DB0 + .align 2, 0 +_08074DA4: .4byte 0x082ECFA8 +_08074DA8: .4byte 0x082ECFB0 +_08074DAC: + ldr r0, _08074DB8 + str r0, [r4, #0x1c] +_08074DB0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08074DB8: .4byte 0x08007141 + thumb_func_end sub_08074D78 + + thumb_func_start sub_08074DBC +sub_08074DBC: @ 0x08074DBC + push {lr} + adds r3, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08074DE6 + ldr r2, _08074DEC + movs r0, #0x2e + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x2e] + subs r1, #1 + strh r1, [r0, #0x2e] + adds r0, r3, #0 + bl DestroySprite +_08074DE6: + pop {r0} + bx r0 + .align 2, 0 +_08074DEC: .4byte 0x020205AC + thumb_func_end sub_08074DBC + diff --git a/asm/sound.s b/asm/sound.s new file mode 100644 index 0000000..fc657ca --- /dev/null +++ b/asm/sound.s @@ -0,0 +1,1524 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start InitMapMusic +InitMapMusic: @ 0x080A269C + push {lr} + ldr r1, _080A26AC + movs r0, #0 + strb r0, [r1] + bl ResetMapMusic + pop {r0} + bx r0 + .align 2, 0 +_080A26AC: .4byte 0x03005B58 + thumb_func_end InitMapMusic + + thumb_func_start MapMusicMain +MapMusicMain: @ 0x080A26B0 + push {r4, r5, lr} + ldr r0, _080A26C8 + ldrb r1, [r0] + adds r2, r0, #0 + cmp r1, #7 + bhi _080A2792 + lsls r0, r1, #2 + ldr r1, _080A26CC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080A26C8: .4byte 0x03000F4C +_080A26CC: .4byte 0x080A26D0 +_080A26D0: @ jump table + .4byte _080A2792 @ case 0 + .4byte _080A26F0 @ case 1 + .4byte _080A2792 @ case 2 + .4byte _080A2792 @ case 3 + .4byte _080A2792 @ case 4 + .4byte _080A2704 @ case 5 + .4byte _080A2724 @ case 6 + .4byte _080A2760 @ case 7 +_080A26F0: + movs r0, #2 + strb r0, [r2] + ldr r0, _080A2700 + ldrh r0, [r0] + bl PlayBGM + b _080A2792 + .align 2, 0 +_080A2700: .4byte 0x03000F48 +_080A2704: + bl IsBGMStopped + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A2792 + ldr r0, _080A271C + movs r1, #0 + strh r1, [r0] + ldr r0, _080A2720 + strb r1, [r0] + b _080A2792 + .align 2, 0 +_080A271C: .4byte 0x03000F4A +_080A2720: .4byte 0x03000F4C +_080A2724: + bl IsBGMStopped + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A2792 + bl IsFanfareTaskInactive + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A2792 + ldr r2, _080A2754 + ldr r1, _080A2758 + ldrh r0, [r1] + strh r0, [r2] + movs r0, #0 + strh r0, [r1] + ldr r1, _080A275C + movs r0, #2 + strb r0, [r1] + ldrh r0, [r2] + bl PlayBGM + b _080A2792 + .align 2, 0 +_080A2754: .4byte 0x03000F48 +_080A2758: .4byte 0x03000F4A +_080A275C: .4byte 0x03000F4C +_080A2760: + bl IsBGMStopped + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A2792 + bl IsFanfareTaskInactive + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A2792 + ldr r4, _080A2798 + ldrh r0, [r4] + ldr r5, _080A279C + ldrb r1, [r5] + bl FadeInNewBGM + ldr r1, _080A27A0 + ldrh r0, [r4] + strh r0, [r1] + movs r2, #0 + strh r2, [r4] + ldr r1, _080A27A4 + movs r0, #2 + strb r0, [r1] + strb r2, [r5] +_080A2792: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A2798: .4byte 0x03000F4A +_080A279C: .4byte 0x03000F4D +_080A27A0: .4byte 0x03000F48 +_080A27A4: .4byte 0x03000F4C + thumb_func_end MapMusicMain + + thumb_func_start ResetMapMusic +ResetMapMusic: @ 0x080A27A8 + ldr r0, _080A27BC + movs r1, #0 + strh r1, [r0] + ldr r0, _080A27C0 + strh r1, [r0] + ldr r0, _080A27C4 + strb r1, [r0] + ldr r0, _080A27C8 + strb r1, [r0] + bx lr + .align 2, 0 +_080A27BC: .4byte 0x03000F48 +_080A27C0: .4byte 0x03000F4A +_080A27C4: .4byte 0x03000F4C +_080A27C8: .4byte 0x03000F4D + thumb_func_end ResetMapMusic + + thumb_func_start GetCurrentMapMusic +GetCurrentMapMusic: @ 0x080A27CC + ldr r0, _080A27D4 + ldrh r0, [r0] + bx lr + .align 2, 0 +_080A27D4: .4byte 0x03000F48 + thumb_func_end GetCurrentMapMusic + + thumb_func_start PlayNewMapMusic +PlayNewMapMusic: @ 0x080A27D8 + ldr r1, _080A27EC + strh r0, [r1] + ldr r1, _080A27F0 + movs r0, #0 + strh r0, [r1] + ldr r1, _080A27F4 + movs r0, #1 + strb r0, [r1] + bx lr + .align 2, 0 +_080A27EC: .4byte 0x03000F48 +_080A27F0: .4byte 0x03000F4A +_080A27F4: .4byte 0x03000F4C + thumb_func_end PlayNewMapMusic + + thumb_func_start StopMapMusic +StopMapMusic: @ 0x080A27F8 + ldr r0, _080A280C + movs r1, #0 + strh r1, [r0] + ldr r0, _080A2810 + strh r1, [r0] + ldr r1, _080A2814 + movs r0, #1 + strb r0, [r1] + bx lr + .align 2, 0 +_080A280C: .4byte 0x03000F48 +_080A2810: .4byte 0x03000F4A +_080A2814: .4byte 0x03000F4C + thumb_func_end StopMapMusic + + thumb_func_start FadeOutMapMusic +FadeOutMapMusic: @ 0x080A2818 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl IsNotWaitingForBGMStop + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A282E + adds r0, r4, #0 + bl FadeOutBGMTemporarily +_080A282E: + ldr r0, _080A2844 + movs r1, #0 + strh r1, [r0] + ldr r0, _080A2848 + strh r1, [r0] + ldr r1, _080A284C + movs r0, #5 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A2844: .4byte 0x03000F48 +_080A2848: .4byte 0x03000F4A +_080A284C: .4byte 0x03000F4C + thumb_func_end FadeOutMapMusic + + thumb_func_start FadeOutAndPlayNewMapMusic +FadeOutAndPlayNewMapMusic: @ 0x080A2850 + push {r4, lr} + adds r4, r0, #0 + adds r0, r1, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl FadeOutMapMusic + ldr r1, _080A2878 + movs r0, #0 + strh r0, [r1] + ldr r0, _080A287C + strh r4, [r0] + ldr r1, _080A2880 + movs r0, #6 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A2878: .4byte 0x03000F48 +_080A287C: .4byte 0x03000F4A +_080A2880: .4byte 0x03000F4C + thumb_func_end FadeOutAndPlayNewMapMusic + + thumb_func_start FadeOutAndFadeInNewMapMusic +FadeOutAndFadeInNewMapMusic: @ 0x080A2884 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, r1, #0 + adds r5, r2, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + bl FadeOutMapMusic + ldr r1, _080A28B8 + movs r0, #0 + strh r0, [r1] + ldr r0, _080A28BC + strh r4, [r0] + ldr r1, _080A28C0 + movs r0, #7 + strb r0, [r1] + ldr r0, _080A28C4 + strb r5, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A28B8: .4byte 0x03000F48 +_080A28BC: .4byte 0x03000F4A +_080A28C0: .4byte 0x03000F4C +_080A28C4: .4byte 0x03000F4D + thumb_func_end FadeOutAndFadeInNewMapMusic + + thumb_func_start FadeInNewMapMusic +FadeInNewMapMusic: @ 0x080A28C8 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl FadeInNewBGM + ldr r0, _080A28F4 + strh r4, [r0] + ldr r0, _080A28F8 + movs r2, #0 + strh r2, [r0] + ldr r1, _080A28FC + movs r0, #2 + strb r0, [r1] + ldr r0, _080A2900 + strb r2, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A28F4: .4byte 0x03000F48 +_080A28F8: .4byte 0x03000F4A +_080A28FC: .4byte 0x03000F4C +_080A2900: .4byte 0x03000F4D + thumb_func_end FadeInNewMapMusic + + thumb_func_start IsNotWaitingForBGMStop +IsNotWaitingForBGMStop: @ 0x080A2904 + push {lr} + ldr r0, _080A291C + ldrb r0, [r0] + cmp r0, #6 + beq _080A2920 + cmp r0, #5 + beq _080A2920 + cmp r0, #7 + beq _080A2920 + movs r0, #1 + b _080A2922 + .align 2, 0 +_080A291C: .4byte 0x03000F4C +_080A2920: + movs r0, #0 +_080A2922: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsNotWaitingForBGMStop + + thumb_func_start PlayFanfareByFanfareNum +PlayFanfareByFanfareNum: @ 0x080A2928 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _080A2950 + bl m4aMPlayStop + ldr r0, _080A2954 + lsls r4, r4, #2 + adds r4, r4, r0 + ldrh r0, [r4] + ldr r2, _080A2958 + ldrh r1, [r4, #2] + strh r1, [r2] + bl m4aSongNumStart + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A2950: .4byte 0x030074D0 +_080A2954: .4byte 0x084FCFC8 +_080A2958: .4byte 0x03000F4E + thumb_func_end PlayFanfareByFanfareNum + + thumb_func_start WaitFanfare +WaitFanfare: @ 0x080A295C + push {lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r2, _080A2974 + ldrh r0, [r2] + cmp r0, #0 + beq _080A2978 + subs r0, #1 + strh r0, [r2] + movs r0, #0 + b _080A2990 + .align 2, 0 +_080A2974: .4byte 0x03000F4E +_080A2978: + cmp r1, #0 + bne _080A2988 + ldr r0, _080A2984 + bl m4aMPlayContinue + b _080A298E + .align 2, 0 +_080A2984: .4byte 0x030074D0 +_080A2988: + movs r0, #0 + bl m4aSongNumStart +_080A298E: + movs r0, #1 +_080A2990: + pop {r1} + bx r1 + thumb_func_end WaitFanfare + + thumb_func_start StopFanfareByFanfareNum +StopFanfareByFanfareNum: @ 0x080A2994 + push {lr} + lsls r0, r0, #0x18 + ldr r1, _080A29A8 + lsrs r0, r0, #0x16 + adds r0, r0, r1 + ldrh r0, [r0] + bl m4aSongNumStop + pop {r0} + bx r0 + .align 2, 0 +_080A29A8: .4byte 0x084FCFC8 + thumb_func_end StopFanfareByFanfareNum + + thumb_func_start PlayFanfare +PlayFanfare: @ 0x080A29AC + push {lr} + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + movs r1, #0 + ldr r2, _080A29CC +_080A29B6: + ldrh r0, [r2] + cmp r0, r3 + bne _080A29D0 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + bl PlayFanfareByFanfareNum + bl CreateFanfareTask + b _080A29E2 + .align 2, 0 +_080A29CC: .4byte 0x084FCFC8 +_080A29D0: + adds r2, #4 + adds r1, #1 + cmp r1, #0x11 + bls _080A29B6 + movs r0, #0 + bl PlayFanfareByFanfareNum + bl CreateFanfareTask +_080A29E2: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlayFanfare + + thumb_func_start IsFanfareTaskInactive +IsFanfareTaskInactive: @ 0x080A29E8 + push {lr} + ldr r0, _080A29FC + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080A2A00 + movs r0, #1 + b _080A2A02 + .align 2, 0 +_080A29FC: .4byte 0x080A2A09 +_080A2A00: + movs r0, #0 +_080A2A02: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsFanfareTaskInactive + + thumb_func_start Task_Fanfare +Task_Fanfare: @ 0x080A2A08 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _080A2A1C + ldrh r0, [r1] + cmp r0, #0 + beq _080A2A20 + subs r0, #1 + strh r0, [r1] + b _080A2A2C + .align 2, 0 +_080A2A1C: .4byte 0x03000F4E +_080A2A20: + ldr r0, _080A2A34 + bl m4aMPlayContinue + adds r0, r4, #0 + bl DestroyTask +_080A2A2C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A2A34: .4byte 0x030074D0 + thumb_func_end Task_Fanfare + + thumb_func_start CreateFanfareTask +CreateFanfareTask: @ 0x080A2A38 + push {r4, lr} + ldr r4, _080A2A58 + adds r0, r4, #0 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080A2A52 + adds r0, r4, #0 + movs r1, #0x50 + bl CreateTask +_080A2A52: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A2A58: .4byte 0x080A2A09 + thumb_func_end CreateFanfareTask + + thumb_func_start FadeInNewBGM +FadeInNewBGM: @ 0x080A2A5C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + ldr r0, _080A2AA4 + ldrb r0, [r0] + cmp r0, #0 + beq _080A2A70 + movs r5, #0 +_080A2A70: + ldr r6, _080A2AA8 + cmp r5, r6 + bne _080A2A78 + movs r5, #0 +_080A2A78: + adds r0, r5, #0 + bl m4aSongNumStart + ldr r4, _080A2AAC + adds r0, r4, #0 + bl m4aMPlayImmInit + adds r0, r4, #0 + adds r1, r6, #0 + movs r2, #0 + bl m4aMPlayVolumeControl + adds r0, r5, #0 + bl m4aSongNumStop + adds r0, r4, #0 + adds r1, r7, #0 + bl m4aMPlayFadeIn + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A2AA4: .4byte 0x03005B58 +_080A2AA8: .4byte 0x0000FFFF +_080A2AAC: .4byte 0x030074D0 + thumb_func_end FadeInNewBGM + + thumb_func_start FadeInBGM +FadeInBGM: @ 0x080A2AB0 + push {lr} + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, _080A2AC4 + bl m4aMPlayFadeOutTemporarily + pop {r0} + bx r0 + .align 2, 0 +_080A2AC4: .4byte 0x030074D0 + thumb_func_end FadeInBGM + + thumb_func_start IsBGMPausedOrStopped +IsBGMPausedOrStopped: @ 0x080A2AC8 + push {lr} + ldr r0, _080A2AE0 + ldr r1, [r0, #4] + cmp r1, #0 + blt _080A2AE8 + ldr r0, _080A2AE4 + ands r1, r0 + cmp r1, #0 + beq _080A2AE8 + movs r0, #0 + b _080A2AEA + .align 2, 0 +_080A2AE0: .4byte 0x030074D0 +_080A2AE4: .4byte 0x0000FFFF +_080A2AE8: + movs r0, #1 +_080A2AEA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsBGMPausedOrStopped + + thumb_func_start FadeOutBGM +FadeOutBGM: @ 0x080A2AF0 + push {lr} + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, _080A2B04 + bl m4aMPlayFadeIn + pop {r0} + bx r0 + .align 2, 0 +_080A2B04: .4byte 0x030074D0 + thumb_func_end FadeOutBGM + + thumb_func_start FadeOutBGMTemporarily +FadeOutBGMTemporarily: @ 0x080A2B08 + push {lr} + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, _080A2B1C + bl m4aMPlayFadeOut + pop {r0} + bx r0 + .align 2, 0 +_080A2B1C: .4byte 0x030074D0 + thumb_func_end FadeOutBGMTemporarily + + thumb_func_start IsBGMStopped +IsBGMStopped: @ 0x080A2B20 + push {lr} + ldr r0, _080A2B30 + ldrh r0, [r0, #4] + cmp r0, #0 + beq _080A2B34 + movs r0, #0 + b _080A2B36 + .align 2, 0 +_080A2B30: .4byte 0x030074D0 +_080A2B34: + movs r0, #1 +_080A2B36: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsBGMStopped + + thumb_func_start PlayCry1 +PlayCry1: @ 0x080A2B3C + push {r4, r5, lr} + sub sp, #4 + adds r5, r0, #0 + adds r4, r1, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _080A2B7C + ldr r1, _080A2B80 + movs r2, #0x55 + bl m4aMPlayVolumeControl + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + movs r0, #0 + str r0, [sp] + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x78 + movs r3, #0xa + bl PlayCryInternal + ldr r1, _080A2B84 + movs r0, #2 + strb r0, [r1] + bl RestoreBGMVolumeAfterPokemonCry + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A2B7C: .4byte 0x030074D0 +_080A2B80: .4byte 0x0000FFFF +_080A2B84: .4byte 0x0203808C + thumb_func_end PlayCry1 + + thumb_func_start PlayCry2 +PlayCry2: @ 0x080A2B88 + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + movs r4, #0 + str r4, [sp] + bl PlayCryInternal + add sp, #4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end PlayCry2 + + thumb_func_start PlayCry3 +PlayCry3: @ 0x080A2BAC + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r4, r2, #0x18 + cmp r4, #1 + bne _080A2BD2 + lsls r1, r5, #0x18 + asrs r1, r1, #0x18 + str r4, [sp] + adds r0, r6, #0 + movs r2, #0x78 + movs r3, #0xa + bl PlayCryInternal + b _080A2BF6 +_080A2BD2: + ldr r0, _080A2C00 + ldr r1, _080A2C04 + movs r2, #0x55 + bl m4aMPlayVolumeControl + lsls r1, r5, #0x18 + asrs r1, r1, #0x18 + str r4, [sp] + adds r0, r6, #0 + movs r2, #0x78 + movs r3, #0xa + bl PlayCryInternal + ldr r1, _080A2C08 + movs r0, #2 + strb r0, [r1] + bl RestoreBGMVolumeAfterPokemonCry +_080A2BF6: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080A2C00: .4byte 0x030074D0 +_080A2C04: .4byte 0x0000FFFF +_080A2C08: .4byte 0x0203808C + thumb_func_end PlayCry3 + + thumb_func_start PlayCry4 +PlayCry4: @ 0x080A2C0C + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r6, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r5, r1, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r4, r2, #0 + cmp r2, #1 + bne _080A2C36 + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + str r2, [sp] + movs r2, #0x78 + movs r3, #0xa + bl PlayCryInternal + b _080A2C5C +_080A2C36: + ldr r0, _080A2C64 + ldr r0, [r0] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _080A2C4C + ldr r0, _080A2C68 + ldr r1, _080A2C6C + movs r2, #0x55 + bl m4aMPlayVolumeControl +_080A2C4C: + lsls r1, r5, #0x18 + asrs r1, r1, #0x18 + str r4, [sp] + adds r0, r6, #0 + movs r2, #0x78 + movs r3, #0xa + bl PlayCryInternal +_080A2C5C: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080A2C64: .4byte 0x02022C90 +_080A2C68: .4byte 0x030074D0 +_080A2C6C: .4byte 0x0000FFFF + thumb_func_end PlayCry4 + + thumb_func_start PlayCry6 +PlayCry6: @ 0x080A2C70 + push {r4, r5, r6, lr} + sub sp, #4 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r4, r2, #0x18 + cmp r4, #1 + bne _080A2C96 + lsls r1, r5, #0x18 + asrs r1, r1, #0x18 + str r4, [sp] + adds r0, r6, #0 + movs r2, #0x78 + movs r3, #0xa + bl PlayCryInternal + b _080A2CB6 +_080A2C96: + ldr r0, _080A2CC0 + ldr r1, _080A2CC4 + movs r2, #0x55 + bl m4aMPlayVolumeControl + lsls r1, r5, #0x18 + asrs r1, r1, #0x18 + str r4, [sp] + adds r0, r6, #0 + movs r2, #0x78 + movs r3, #0xa + bl PlayCryInternal + ldr r1, _080A2CC8 + movs r0, #2 + strb r0, [r1] +_080A2CB6: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080A2CC0: .4byte 0x030074D0 +_080A2CC4: .4byte 0x0000FFFF +_080A2CC8: .4byte 0x0203808C + thumb_func_end PlayCry6 + + thumb_func_start PlayCry5 +PlayCry5: @ 0x080A2CCC + push {r4, r5, lr} + sub sp, #4 + adds r5, r0, #0 + adds r4, r1, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _080A2D08 + ldr r1, _080A2D0C + movs r2, #0x55 + bl m4aMPlayVolumeControl + str r4, [sp] + adds r0, r5, #0 + movs r1, #0 + movs r2, #0x78 + movs r3, #0xa + bl PlayCryInternal + ldr r1, _080A2D10 + movs r0, #2 + strb r0, [r1] + bl RestoreBGMVolumeAfterPokemonCry + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A2D08: .4byte 0x030074D0 +_080A2D0C: .4byte 0x0000FFFF +_080A2D10: .4byte 0x0203808C + thumb_func_end PlayCry5 + + thumb_func_start PlayCryInternal +PlayCryInternal: @ 0x080A2D14 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r4, [sp, #0x24] + lsls r0, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sl, r1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r3, [sp] + lsls r4, r4, #0x18 + lsrs r1, r4, #0x18 + ldr r3, _080A2D5C + adds r0, r0, r3 + lsrs r7, r0, #0x10 + movs r6, #0x8c + movs r0, #0 + mov sb, r0 + movs r5, #0 + movs r4, #0xf0 + lsls r4, r4, #6 + mov r8, r5 + cmp r1, #0xc + bhi _080A2E2A + lsls r0, r1, #2 + ldr r1, _080A2D60 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080A2D5C: .4byte 0xFFFF0000 +_080A2D60: .4byte 0x080A2D64 +_080A2D64: @ jump table + .4byte _080A2E2A @ case 0 + .4byte _080A2D98 @ case 1 + .4byte _080A2D9E @ case 2 + .4byte _080A2DAC @ case 3 + .4byte _080A2DC0 @ case 4 + .4byte _080A2DD8 @ case 5 + .4byte _080A2DE4 @ case 6 + .4byte _080A2DF4 @ case 7 + .4byte _080A2DFE @ case 8 + .4byte _080A2E08 @ case 9 + .4byte _080A2E18 @ case 10 + .4byte _080A2E28 @ case 11 + .4byte _080A2E24 @ case 12 +_080A2D98: + movs r6, #0x14 + movs r5, #0xe1 + b _080A2E2A +_080A2D9E: + movs r5, #0xe1 + ldr r4, _080A2DA8 + movs r1, #0x14 + b _080A2DCC + .align 2, 0 +_080A2DA8: .4byte 0x00003CF0 +_080A2DAC: + movs r6, #0x32 + movs r5, #0xc8 + ldr r4, _080A2DBC + movs r3, #0x14 + mov r8, r3 + movs r2, #0x5a + b _080A2E2A + .align 2, 0 +_080A2DBC: .4byte 0x00003DB8 +_080A2DC0: + movs r6, #0x19 + movs r0, #1 + mov sb, r0 + movs r5, #0x64 + ldr r4, _080A2DD4 + movs r1, #0xc0 +_080A2DCC: + mov r8, r1 + movs r2, #0x5a + b _080A2E2A + .align 2, 0 +_080A2DD4: .4byte 0x00003CF0 +_080A2DD8: + movs r5, #0xc8 + ldr r4, _080A2DE0 + b _080A2E2A + .align 2, 0 +_080A2DE0: .4byte 0x00003868 +_080A2DE4: + movs r5, #0xdc + ldr r4, _080A2DF0 + movs r3, #0xc0 + mov r8, r3 + movs r2, #0x46 + b _080A2E2A + .align 2, 0 +_080A2DF0: .4byte 0x00003CC3 +_080A2DF4: + movs r6, #0xa + movs r5, #0x64 + movs r4, #0xe8 + lsls r4, r4, #6 + b _080A2E2A +_080A2DFE: + movs r6, #0x3c + movs r5, #0xe1 + movs r4, #0xf4 + lsls r4, r4, #6 + b _080A2E2A +_080A2E08: + movs r6, #0xf + movs r0, #1 + mov sb, r0 + movs r5, #0x7d + ldr r4, _080A2E14 + b _080A2E2A + .align 2, 0 +_080A2E14: .4byte 0x00003B60 +_080A2E18: + movs r6, #0x64 + movs r5, #0xe1 + ldr r4, _080A2E20 + b _080A2E2A + .align 2, 0 +_080A2E20: .4byte 0x00003B60 +_080A2E24: + movs r6, #0x14 + movs r5, #0xe1 +_080A2E28: + ldr r4, _080A2E84 +_080A2E2A: + adds r0, r2, #0 + bl SetPokemonCryVolume + mov r1, sl + lsls r0, r1, #0x18 + asrs r0, r0, #0x18 + bl SetPokemonCryPanpot + adds r0, r4, #0 + bl SetPokemonCryPitch + adds r0, r6, #0 + bl SetPokemonCryLength + movs r0, #0 + bl SetPokemonCryProgress + adds r0, r5, #0 + bl SetPokemonCryRelease + mov r3, r8 + lsls r0, r3, #0x18 + asrs r0, r0, #0x18 + bl SetPokemonCryChorus + ldr r0, [sp] + bl SetPokemonCryPriority + adds r0, r7, #0 + bl SpeciesToCryId + adds r7, r0, #0 + movs r1, #0x7f + ands r1, r7 + lsrs r0, r7, #7 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r2, r0, #0 + cmp r0, #1 + beq _080A2EB8 + cmp r0, #1 + bgt _080A2E88 + cmp r0, #0 + beq _080A2E92 + b _080A2F26 + .align 2, 0 +_080A2E84: .4byte 0x00003A98 +_080A2E88: + cmp r2, #2 + beq _080A2EDC + cmp r2, #3 + beq _080A2F00 + b _080A2F26 +_080A2E92: + mov r0, sb + cmp r0, #0 + beq _080A2EA8 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080A2EA4 + b _080A2F1C + .align 2, 0 +_080A2EA4: .4byte 0x08626A44 +_080A2EA8: + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080A2EB4 + b _080A2F1C + .align 2, 0 +_080A2EB4: .4byte 0x08625814 +_080A2EB8: + mov r3, sb + cmp r3, #0 + beq _080A2ECC + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080A2EC8 + b _080A2F1C + .align 2, 0 +_080A2EC8: .4byte 0x08627044 +_080A2ECC: + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080A2ED8 + b _080A2F1C + .align 2, 0 +_080A2ED8: .4byte 0x08625E14 +_080A2EDC: + mov r0, sb + cmp r0, #0 + beq _080A2EF0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080A2EEC + b _080A2F1C + .align 2, 0 +_080A2EEC: .4byte 0x08627644 +_080A2EF0: + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080A2EFC + b _080A2F1C + .align 2, 0 +_080A2EFC: .4byte 0x08626414 +_080A2F00: + mov r3, sb + cmp r3, #0 + beq _080A2F14 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080A2F10 + b _080A2F1C + .align 2, 0 +_080A2F10: .4byte 0x08627C44 +_080A2F14: + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080A2F38 +_080A2F1C: + adds r0, r0, r1 + bl SetPokemonCryTone + ldr r1, _080A2F3C + str r0, [r1] +_080A2F26: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A2F38: .4byte 0x08626A14 +_080A2F3C: .4byte 0x02038088 + thumb_func_end PlayCryInternal + + thumb_func_start IsCryFinished +IsCryFinished: @ 0x080A2F40 + push {lr} + ldr r0, _080A2F58 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080A2F5C + bl ClearPokemonCrySongs + movs r0, #1 + b _080A2F5E + .align 2, 0 +_080A2F58: .4byte 0x080A2FD5 +_080A2F5C: + movs r0, #0 +_080A2F5E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsCryFinished + + thumb_func_start StopCryAndClearCrySongs +StopCryAndClearCrySongs: @ 0x080A2F64 + push {lr} + ldr r0, _080A2F78 + ldr r0, [r0] + bl m4aMPlayStop + bl ClearPokemonCrySongs + pop {r0} + bx r0 + .align 2, 0 +_080A2F78: .4byte 0x02038088 + thumb_func_end StopCryAndClearCrySongs + + thumb_func_start StopCry +StopCry: @ 0x080A2F7C + push {lr} + ldr r0, _080A2F8C + ldr r0, [r0] + bl m4aMPlayStop + pop {r0} + bx r0 + .align 2, 0 +_080A2F8C: .4byte 0x02038088 + thumb_func_end StopCry + + thumb_func_start IsCryPlayingOrClearCrySongs +IsCryPlayingOrClearCrySongs: @ 0x080A2F90 + push {lr} + ldr r0, _080A2FA8 + ldr r0, [r0] + bl IsPokemonCryPlaying + cmp r0, #0 + bne _080A2FAC + bl ClearPokemonCrySongs + movs r0, #0 + b _080A2FAE + .align 2, 0 +_080A2FA8: .4byte 0x02038088 +_080A2FAC: + movs r0, #1 +_080A2FAE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsCryPlayingOrClearCrySongs + + thumb_func_start IsCryPlaying +IsCryPlaying: @ 0x080A2FB4 + push {lr} + ldr r0, _080A2FC8 + ldr r0, [r0] + bl IsPokemonCryPlaying + cmp r0, #0 + bne _080A2FCC + movs r0, #0 + b _080A2FCE + .align 2, 0 +_080A2FC8: .4byte 0x02038088 +_080A2FCC: + movs r0, #1 +_080A2FCE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsCryPlaying + + thumb_func_start Task_DuckBGMForPokemonCry +Task_DuckBGMForPokemonCry: @ 0x080A2FD4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _080A2FE8 + ldrb r0, [r1] + cmp r0, #0 + beq _080A2FEC + subs r0, #1 + strb r0, [r1] + b _080A300A + .align 2, 0 +_080A2FE8: .4byte 0x0203808C +_080A2FEC: + ldr r0, _080A3010 + ldr r0, [r0] + bl IsPokemonCryPlaying + cmp r0, #0 + bne _080A300A + ldr r0, _080A3014 + ldr r1, _080A3018 + movs r2, #0x80 + lsls r2, r2, #1 + bl m4aMPlayVolumeControl + adds r0, r4, #0 + bl DestroyTask +_080A300A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A3010: .4byte 0x02038088 +_080A3014: .4byte 0x030074D0 +_080A3018: .4byte 0x0000FFFF + thumb_func_end Task_DuckBGMForPokemonCry + + thumb_func_start RestoreBGMVolumeAfterPokemonCry +RestoreBGMVolumeAfterPokemonCry: @ 0x080A301C + push {r4, lr} + ldr r4, _080A303C + adds r0, r4, #0 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080A3036 + adds r0, r4, #0 + movs r1, #0x50 + bl CreateTask +_080A3036: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A303C: .4byte 0x080A2FD5 + thumb_func_end RestoreBGMVolumeAfterPokemonCry + + thumb_func_start PlayBGM +PlayBGM: @ 0x080A3040 + push {lr} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r0, _080A3064 + ldrb r0, [r0] + cmp r0, #0 + beq _080A3050 + movs r1, #0 +_080A3050: + ldr r0, _080A3068 + cmp r1, r0 + bne _080A3058 + movs r1, #0 +_080A3058: + adds r0, r1, #0 + bl m4aSongNumStart + pop {r0} + bx r0 + .align 2, 0 +_080A3064: .4byte 0x03005B58 +_080A3068: .4byte 0x0000FFFF + thumb_func_end PlayBGM + + thumb_func_start PlaySE +PlaySE: @ 0x080A306C + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl m4aSongNumStart + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PlaySE + + thumb_func_start PlaySE12WithPanning +PlaySE12WithPanning: @ 0x080A307C + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r4, r1, #0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl m4aSongNumStart + ldr r6, _080A30C4 + adds r0, r6, #0 + bl m4aMPlayImmInit + ldr r0, _080A30C8 + mov r8, r0 + bl m4aMPlayImmInit + ldr r5, _080A30CC + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + adds r0, r6, #0 + adds r1, r5, #0 + adds r2, r4, #0 + bl m4aMPlayPanpotControl + mov r0, r8 + adds r1, r5, #0 + adds r2, r4, #0 + bl m4aMPlayPanpotControl + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080A30C4: .4byte 0x03007510 +_080A30C8: .4byte 0x03007550 +_080A30CC: .4byte 0x0000FFFF + thumb_func_end PlaySE12WithPanning + + thumb_func_start PlaySE1WithPanning +PlaySE1WithPanning: @ 0x080A30D0 + push {r4, r5, lr} + adds r4, r1, #0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl m4aSongNumStart + ldr r5, _080A30FC + adds r0, r5, #0 + bl m4aMPlayImmInit + ldr r1, _080A3100 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + adds r0, r5, #0 + adds r2, r4, #0 + bl m4aMPlayPanpotControl + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A30FC: .4byte 0x03007510 +_080A3100: .4byte 0x0000FFFF + thumb_func_end PlaySE1WithPanning + + thumb_func_start PlaySE2WithPanning +PlaySE2WithPanning: @ 0x080A3104 + push {r4, r5, lr} + adds r4, r1, #0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl m4aSongNumStart + ldr r5, _080A3130 + adds r0, r5, #0 + bl m4aMPlayImmInit + ldr r1, _080A3134 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + adds r0, r5, #0 + adds r2, r4, #0 + bl m4aMPlayPanpotControl + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A3130: .4byte 0x03007550 +_080A3134: .4byte 0x0000FFFF + thumb_func_end PlaySE2WithPanning + + thumb_func_start SE12PanpotControl +SE12PanpotControl: @ 0x080A3138 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _080A315C + ldr r5, _080A3160 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + adds r1, r5, #0 + adds r2, r4, #0 + bl m4aMPlayPanpotControl + ldr r0, _080A3164 + adds r1, r5, #0 + adds r2, r4, #0 + bl m4aMPlayPanpotControl + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A315C: .4byte 0x03007510 +_080A3160: .4byte 0x0000FFFF +_080A3164: .4byte 0x03007550 + thumb_func_end SE12PanpotControl + + thumb_func_start IsSEPlaying +IsSEPlaying: @ 0x080A3168 + push {lr} + ldr r0, _080A3198 + ldr r1, [r0, #4] + movs r2, #0x80 + lsls r2, r2, #0x18 + adds r3, r0, #0 + cmp r1, #0 + bge _080A3182 + ldr r0, _080A319C + ldr r0, [r0, #4] + ands r0, r2 + cmp r0, #0 + bne _080A3194 +_080A3182: + ldr r1, _080A31A0 + ldrh r0, [r3, #4] + cmp r0, #0 + bne _080A31A4 + ldr r0, _080A319C + ldr r0, [r0, #4] + ands r0, r1 + cmp r0, #0 + bne _080A31A4 +_080A3194: + movs r0, #0 + b _080A31A6 + .align 2, 0 +_080A3198: .4byte 0x03007510 +_080A319C: .4byte 0x03007550 +_080A31A0: .4byte 0x0000FFFF +_080A31A4: + movs r0, #1 +_080A31A6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsSEPlaying + + thumb_func_start IsBGMPlaying +IsBGMPlaying: @ 0x080A31AC + push {lr} + ldr r0, _080A31C4 + ldr r1, [r0, #4] + cmp r1, #0 + blt _080A31CC + ldr r0, _080A31C8 + ands r1, r0 + cmp r1, #0 + beq _080A31CC + movs r0, #1 + b _080A31CE + .align 2, 0 +_080A31C4: .4byte 0x030074D0 +_080A31C8: .4byte 0x0000FFFF +_080A31CC: + movs r0, #0 +_080A31CE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsBGMPlaying + + thumb_func_start IsSpecialSEPlaying +IsSpecialSEPlaying: @ 0x080A31D4 + push {lr} + ldr r0, _080A31EC + ldr r1, [r0, #4] + cmp r1, #0 + blt _080A31F4 + ldr r0, _080A31F0 + ands r1, r0 + cmp r1, #0 + beq _080A31F4 + movs r0, #1 + b _080A31F6 + .align 2, 0 +_080A31EC: .4byte 0x030075A0 +_080A31F0: .4byte 0x0000FFFF +_080A31F4: + movs r0, #0 +_080A31F6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsSpecialSEPlaying + diff --git a/asm/sprite.s b/asm/sprite.s new file mode 100644 index 0000000..92f71d7 --- /dev/null +++ b/asm/sprite.s @@ -0,0 +1,4644 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ResetSpriteData +ResetSpriteData: @ 0x0800668C + push {r4, lr} + movs r0, #0 + movs r1, #0x80 + bl ResetOamRange + bl ResetAllSprites + bl ClearSpriteCopyRequests + bl ResetAffineAnimData + bl FreeSpriteTileRanges + ldr r1, _080066C8 + movs r0, #0x40 + strb r0, [r1] + ldr r0, _080066CC + movs r4, #0 + strh r4, [r0] + movs r0, #0 + bl AllocSpriteTiles + ldr r0, _080066D0 + strh r4, [r0] + ldr r0, _080066D4 + strh r4, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080066C8: .4byte 0x02021AB4 +_080066CC: .4byte 0x02021AB6 +_080066D0: .4byte 0x02021B38 +_080066D4: .4byte 0x02021B3A + thumb_func_end ResetSpriteData + + thumb_func_start AnimateSprites +AnimateSprites: @ 0x080066D8 + push {r4, r5, r6, r7, lr} + movs r6, #0 + movs r7, #1 +_080066DE: + lsls r0, r6, #4 + adds r0, r0, r6 + lsls r0, r0, #2 + ldr r1, _08006720 + adds r4, r0, r1 + adds r5, r4, #0 + adds r5, #0x3e + ldrb r1, [r5] + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0 + beq _0800670E + ldr r1, [r4, #0x1c] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r1, [r5] + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0 + beq _0800670E + adds r0, r4, #0 + bl AnimateSprite +_0800670E: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0x3f + bls _080066DE + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08006720: .4byte 0x020205AC + thumb_func_end AnimateSprites + + thumb_func_start BuildOamBuffer +BuildOamBuffer: @ 0x08006724 + push {r4, r5, lr} + bl UpdateOamCoords + bl BuildSpritePriorities + bl SortSprites + ldr r5, _08006764 + ldr r0, _08006768 + adds r5, r5, r0 + ldrb r0, [r5] + lsls r4, r0, #0x1f + lsrs r4, r4, #0x1f + movs r1, #1 + orrs r0, r1 + strb r0, [r5] + bl AddSpritesToOamBuffer + bl CopyMatricesToOamBuffer + movs r2, #1 + ldrb r1, [r5] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r1 + orrs r4, r0 + strb r4, [r5] + ldr r0, _0800676C + strb r2, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08006764: .4byte 0x03002360 +_08006768: .4byte 0x00000439 +_0800676C: .4byte 0x020217B0 + thumb_func_end BuildOamBuffer + + thumb_func_start UpdateOamCoords +UpdateOamCoords: @ 0x08006770 + push {r4, r5, r6, r7, lr} + movs r4, #0 + ldr r7, _080067DC + ldr r0, _080067E0 + adds r5, r0, #0 + ldr r6, _080067E4 +_0800677C: + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r3, r0, r7 + adds r0, r3, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r0, #5 + ands r0, r1 + cmp r0, #1 + bne _08006822 + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080067F0 + movs r2, #0x20 + ldrsh r1, [r3, r2] + movs r2, #0x24 + ldrsh r0, [r3, r2] + adds r1, r1, r0 + adds r0, r3, #0 + adds r0, #0x28 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r1, r1, r0 + ldr r0, _080067E8 + movs r2, #0 + ldrsh r0, [r0, r2] + adds r1, r1, r0 + ands r1, r5 + ldrh r2, [r3, #2] + adds r0, r6, #0 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #2] + ldrh r1, [r3, #0x26] + ldrh r0, [r3, #0x22] + adds r1, r1, r0 + adds r0, r3, #0 + adds r0, #0x29 + ldrb r0, [r0] + ldr r2, _080067EC + adds r0, r0, r1 + ldrb r2, [r2] + adds r0, r0, r2 + b _08006820 + .align 2, 0 +_080067DC: .4byte 0x020205AC +_080067E0: .4byte 0x000001FF +_080067E4: .4byte 0xFFFFFE00 +_080067E8: .4byte 0x02021B38 +_080067EC: .4byte 0x02021B3A +_080067F0: + movs r2, #0x20 + ldrsh r1, [r3, r2] + movs r2, #0x24 + ldrsh r0, [r3, r2] + adds r1, r1, r0 + adds r0, r3, #0 + adds r0, #0x28 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r1, r1, r0 + ands r1, r5 + ldrh r2, [r3, #2] + adds r0, r6, #0 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #2] + ldrh r1, [r3, #0x26] + ldrh r0, [r3, #0x22] + adds r1, r1, r0 + adds r0, r3, #0 + adds r0, #0x29 + ldrb r0, [r0] + adds r0, r0, r1 +_08006820: + strb r0, [r3] +_08006822: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x3f + bls _0800677C + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end UpdateOamCoords + + thumb_func_start BuildSpritePriorities +BuildSpritePriorities: @ 0x08006834 + push {r4, lr} + movs r2, #0 + ldr r4, _0800686C + ldr r3, _08006870 +_0800683C: + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r1, r0, #0 + adds r1, #0x43 + ldrb r1, [r1] + ldrb r0, [r0, #5] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1e + lsls r0, r0, #8 + orrs r1, r0 + lsls r0, r2, #1 + adds r0, r0, r3 + strh r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0x3f + bls _0800683C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800686C: .4byte 0x020205AC +_08006870: .4byte 0x020216F0 + thumb_func_end BuildSpritePriorities + + thumb_func_start SortSprites +SortSprites: @ 0x08006874 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + movs r0, #1 + mov ip, r0 + ldr r1, _0800693C + mov sl, r1 + ldr r3, _08006940 + mov sb, r3 + ldr r6, _08006944 + mov r8, r6 +_08006890: + mov r5, ip + mov r0, ip + subs r0, #1 + add r0, sl + ldrb r2, [r0] + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r7, _08006948 + adds r3, r0, r7 + mov r0, ip + add r0, sl + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, r0, r7 + lsls r2, r2, #1 + ldr r0, _0800694C + adds r2, r2, r0 + ldrh r2, [r2] + str r2, [sp] + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r6, [r1] + ldrb r1, [r3] + ldrb r2, [r4] + adds r0, r1, #0 + cmp r0, #0x9f + ble _080068D2 + add r0, sb + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 +_080068D2: + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x9f + ble _080068E0 + add r0, sb + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 +_080068E0: + ldr r0, [r3] + mov r7, r8 + ands r0, r7 + cmp r0, r8 + bne _08006904 + ldrb r0, [r3, #1] + lsrs r0, r0, #6 + cmp r0, #0 + beq _080068F6 + cmp r0, #2 + bne _08006904 +_080068F6: + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x80 + ble _08006904 + add r0, sb + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 +_08006904: + ldr r0, [r4] + mov r3, r8 + ands r0, r3 + cmp r0, r8 + bne _08006928 + ldrb r0, [r4, #1] + lsrs r0, r0, #6 + cmp r0, #0 + beq _0800691A + cmp r0, #2 + bne _08006928 +_0800691A: + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x80 + ble _08006928 + add r0, sb + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 +_08006928: + movs r7, #1 + add ip, r7 + cmp r5, #0 + beq _08006A0E + ldr r0, [sp] + cmp r0, r6 + bhi _08006950 + cmp r0, r6 + bne _08006A0E + b _08006A06 + .align 2, 0 +_0800693C: .4byte 0x02021770 +_08006940: .4byte 0xFFFFFF00 +_08006944: .4byte 0xC0000300 +_08006948: .4byte 0x020205AC +_0800694C: .4byte 0x020216F0 +_08006950: + mov r1, sl + adds r3, r5, r1 + ldrb r4, [r3] + subs r2, r5, #1 + adds r1, r2, r1 + ldrb r0, [r1] + strb r0, [r3] + strb r4, [r1] + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + subs r0, r5, #1 + add r0, sl + ldrb r2, [r0] + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r6, _08006A2C + adds r3, r0, r6 + mov r7, sl + adds r0, r5, r7 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, r0, r6 + lsls r2, r2, #1 + ldr r0, _08006A30 + adds r2, r2, r0 + ldrh r2, [r2] + str r2, [sp] + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r6, [r1] + ldrb r1, [r3] + ldrb r2, [r4] + adds r0, r1, #0 + cmp r0, #0x9f + ble _080069A2 + add r0, sb + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 +_080069A2: + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x9f + ble _080069B0 + add r0, sb + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 +_080069B0: + ldr r0, [r3] + mov r7, r8 + ands r0, r7 + cmp r0, r8 + bne _080069D4 + ldrb r0, [r3, #1] + lsrs r0, r0, #6 + cmp r0, #0 + beq _080069C6 + cmp r0, #2 + bne _080069D4 +_080069C6: + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x80 + ble _080069D4 + add r0, sb + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 +_080069D4: + ldr r0, [r4] + mov r3, r8 + ands r0, r3 + cmp r0, r8 + bne _080069F8 + ldrb r0, [r4, #1] + lsrs r0, r0, #6 + cmp r0, #0 + beq _080069EA + cmp r0, #2 + bne _080069F8 +_080069EA: + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x80 + ble _080069F8 + add r0, sb + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 +_080069F8: + cmp r5, #0 + beq _08006A0E + ldr r7, [sp] + cmp r7, r6 + bhi _08006950 + cmp r7, r6 + bne _08006A0E +_08006A06: + lsls r1, r1, #0x10 + lsls r0, r2, #0x10 + cmp r1, r0 + blt _08006950 +_08006A0E: + mov r1, ip + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + mov ip, r0 + cmp r0, #0x3f + bhi _08006A1C + b _08006890 +_08006A1C: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08006A2C: .4byte 0x020205AC +_08006A30: .4byte 0x020216F0 + thumb_func_end SortSprites + + thumb_func_start CopyMatricesToOamBuffer +CopyMatricesToOamBuffer: @ 0x08006A34 + push {r4, r5, r6, lr} + movs r4, #0 + ldr r5, _08006A78 + ldr r6, _08006A7C +_08006A3C: + lsls r2, r4, #2 + lsls r1, r4, #5 + adds r1, r1, r5 + lsls r3, r4, #3 + adds r3, r3, r6 + ldrh r0, [r3] + strh r0, [r1, #0x3e] + adds r0, r2, #1 + lsls r0, r0, #3 + adds r0, r0, r5 + ldrh r1, [r3, #2] + strh r1, [r0, #0x3e] + adds r0, r2, #2 + lsls r0, r0, #3 + adds r0, r0, r5 + ldrh r1, [r3, #4] + strh r1, [r0, #0x3e] + adds r2, #3 + lsls r2, r2, #3 + adds r2, r2, r5 + ldrh r0, [r3, #6] + strh r0, [r2, #0x3e] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x1f + bls _08006A3C + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08006A78: .4byte 0x03002360 +_08006A7C: .4byte 0x02021B3C + thumb_func_end CopyMatricesToOamBuffer + + thumb_func_start AddSpritesToOamBuffer +AddSpritesToOamBuffer: @ 0x08006A80 + push {r4, r5, r6, lr} + sub sp, #4 + movs r4, #0 + mov r0, sp + strb r4, [r0] +_08006A8A: + ldr r0, _08006AF8 + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08006AFC + adds r2, r0, r1 + adds r0, r2, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r0, #5 + ands r0, r1 + cmp r0, #1 + bne _08006AB6 + adds r0, r2, #0 + mov r1, sp + bl AddSpriteToOamBuffer + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08006AF0 +_08006AB6: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x3f + bls _08006A8A + mov r0, sp + ldr r4, _08006B00 + ldrb r0, [r0] + ldrb r1, [r4] + cmp r0, r1 + bhs _08006AF0 + mov r1, sp + ldr r5, _08006B04 + ldr r0, _08006B08 + ldr r2, [r0] + ldr r3, [r0, #4] +_08006AD6: + ldrb r0, [r1] + lsls r0, r0, #3 + adds r0, r0, r5 + str r2, [r0] + str r3, [r0, #4] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r6, [r4] + cmp r0, r6 + blo _08006AD6 +_08006AF0: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08006AF8: .4byte 0x02021770 +_08006AFC: .4byte 0x020205AC +_08006B00: .4byte 0x02021AB4 +_08006B04: .4byte 0x03002398 +_08006B08: .4byte 0x082BF2F8 + thumb_func_end AddSpritesToOamBuffer + + thumb_func_start CreateSprite +CreateSprite: @ 0x08006B0C + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r7, r0, #0 + lsls r3, r3, #0x18 + lsrs r4, r3, #0x18 + movs r3, #0 + ldr r0, _08006B48 + mov ip, r0 + lsls r5, r1, #0x10 + lsls r6, r2, #0x10 +_08006B20: + lsls r0, r3, #4 + adds r0, r0, r3 + lsls r0, r0, #2 + add r0, ip + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1f + cmp r0, #0 + bne _08006B4C + str r4, [sp] + adds r0, r3, #0 + adds r1, r7, #0 + asrs r2, r5, #0x10 + asrs r3, r6, #0x10 + bl CreateSpriteAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _08006B58 + .align 2, 0 +_08006B48: .4byte 0x020205AC +_08006B4C: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0x3f + bls _08006B20 + movs r0, #0x40 +_08006B58: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end CreateSprite + + thumb_func_start CreateSpriteAtEnd +CreateSpriteAtEnd: @ 0x08006B60 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r7, r0, #0 + lsls r3, r3, #0x18 + lsrs r6, r3, #0x18 + movs r3, #0x3f + ldr r0, _08006BAC + mov r8, r0 + movs r0, #1 + rsbs r0, r0, #0 + mov ip, r0 + lsls r4, r1, #0x10 + lsls r5, r2, #0x10 +_08006B7E: + lsls r0, r3, #0x10 + asrs r1, r0, #0x10 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1f + cmp r0, #0 + bne _08006BB0 + lsls r0, r3, #0x18 + lsrs r0, r0, #0x18 + str r6, [sp] + adds r1, r7, #0 + asrs r2, r4, #0x10 + asrs r3, r5, #0x10 + bl CreateSpriteAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _08006BBE + .align 2, 0 +_08006BAC: .4byte 0x020205AC +_08006BB0: + subs r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, ip + bgt _08006B7E + movs r0, #0x40 +_08006BBE: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CreateSpriteAtEnd + + thumb_func_start CreateInvisibleSprite +CreateInvisibleSprite: @ 0x08006BCC + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r0, _08006C04 + movs r1, #0 + movs r2, #0 + movs r3, #0x1f + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x40 + beq _08006C0C + ldr r4, _08006C08 + lsls r1, r5, #4 + adds r1, r1, r5 + lsls r1, r1, #2 + adds r2, r1, r4 + adds r2, #0x3e + ldrb r0, [r2] + movs r3, #4 + orrs r0, r3 + strb r0, [r2] + adds r4, #0x1c + adds r1, r1, r4 + str r6, [r1] + adds r0, r5, #0 + b _08006C0E + .align 2, 0 +_08006C04: .4byte 0x082BF314 +_08006C08: .4byte 0x020205AC +_08006C0C: + movs r0, #0x40 +_08006C0E: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end CreateInvisibleSprite + + thumb_func_start CreateSpriteAt +CreateSpriteAt: @ 0x08006C14 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov r8, r1 + adds r5, r2, #0 + adds r6, r3, #0 + ldr r4, [sp, #0x20] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r0, #4 + add r0, sl + lsls r0, r0, #2 + ldr r1, _08006CD8 + adds r7, r0, r1 + adds r0, r7, #0 + bl ResetSprite + adds r2, r7, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x3f + adds r0, r0, r7 + mov sb, r0 + ldrb r0, [r0] + movs r1, #4 + orrs r0, r1 + movs r1, #8 + orrs r0, r1 + movs r1, #0x40 + orrs r0, r1 + mov r1, sb + strb r0, [r1] + adds r0, r7, #0 + adds r0, #0x43 + strb r4, [r0] + mov r1, r8 + ldr r0, [r1, #4] + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [r7] + str r1, [r7, #4] + mov r1, r8 + ldr r0, [r1, #8] + str r0, [r7, #8] + ldr r0, [r1, #0x10] + str r0, [r7, #0x10] + str r1, [r7, #0x14] + ldr r0, [r1, #0x14] + str r0, [r7, #0x1c] + strh r5, [r7, #0x20] + strh r6, [r7, #0x22] + ldrb r3, [r7, #1] + lsrs r1, r3, #6 + ldrb r2, [r7, #3] + lsrs r2, r2, #6 + lsls r3, r3, #0x1e + lsrs r3, r3, #0x1e + adds r0, r7, #0 + bl CalcCenterToCornerVec + mov r0, r8 + ldrh r1, [r0] + ldr r4, _08006CDC + lsrs r0, r4, #0x10 + cmp r1, r0 + bne _08006D10 + mov r1, r8 + ldr r0, [r1, #0xc] + str r0, [r7, #0xc] + ldrh r0, [r0, #4] + lsrs r0, r0, #5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl AllocSpriteTiles + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + asrs r0, r0, #0x10 + asrs r1, r4, #0x10 + cmp r0, r1 + bne _08006CE0 + adds r0, r7, #0 + bl ResetSprite + movs r0, #0x40 + b _08006D58 + .align 2, 0 +_08006CD8: .4byte 0x020205AC +_08006CDC: .4byte 0xFFFF0000 +_08006CE0: + ldr r1, _08006D08 + adds r0, r1, #0 + ands r2, r0 + ldrh r1, [r7, #4] + ldr r0, _08006D0C + ands r0, r1 + orrs r0, r2 + strh r0, [r7, #4] + mov r0, sb + ldrb r1, [r0] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + mov r1, sb + strb r0, [r1] + adds r1, r7, #0 + adds r1, #0x40 + movs r0, #0 + strh r0, [r1] + b _08006D24 + .align 2, 0 +_08006D08: .4byte 0x000003FF +_08006D0C: .4byte 0xFFFFFC00 +_08006D10: + mov r1, r8 + ldrh r0, [r1] + bl GetSpriteTileStartByTag + adds r1, r7, #0 + adds r1, #0x40 + strh r0, [r1] + adds r0, r7, #0 + bl SetSpriteSheetFrameTileNum +_08006D24: + ldrb r0, [r7, #1] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08006D38 + adds r0, r7, #0 + bl InitSpriteAffineAnim +_08006D38: + mov r0, r8 + ldrh r1, [r0, #2] + ldr r0, _08006D68 + cmp r1, r0 + beq _08006D56 + mov r1, r8 + ldrh r0, [r1, #2] + bl IndexOfSpritePaletteTag + lsls r0, r0, #4 + ldrb r2, [r7, #5] + movs r1, #0xf + ands r1, r2 + orrs r1, r0 + strb r1, [r7, #5] +_08006D56: + mov r0, sl +_08006D58: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08006D68: .4byte 0x0000FFFF + thumb_func_end CreateSpriteAt + + thumb_func_start CreateSpriteAndAnimate +CreateSpriteAndAnimate: @ 0x08006D6C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov sl, r0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov sb, r3 + movs r3, #0 + ldr r5, _08006DDC + lsls r1, r1, #0x10 + mov ip, r1 + lsls r2, r2, #0x10 + mov r8, r2 +_08006D8C: + lsls r0, r3, #4 + adds r0, r0, r3 + lsls r6, r0, #2 + adds r4, r6, r5 + adds r7, r4, #0 + adds r7, #0x3e + ldrb r0, [r7] + lsls r0, r0, #0x1f + cmp r0, #0 + bne _08006DE4 + mov r0, sb + str r0, [sp] + adds r0, r3, #0 + mov r1, sl + mov r3, ip + asrs r2, r3, #0x10 + mov r5, r8 + asrs r3, r5, #0x10 + bl CreateSpriteAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + cmp r5, #0x40 + beq _08006DEE + ldr r1, _08006DE0 + adds r0, r6, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r7] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _08006DD8 + adds r0, r4, #0 + bl AnimateSprite +_08006DD8: + adds r0, r5, #0 + b _08006DF0 + .align 2, 0 +_08006DDC: .4byte 0x020205AC +_08006DE0: .4byte 0x020205C8 +_08006DE4: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0x3f + bls _08006D8C +_08006DEE: + movs r0, #0x40 +_08006DF0: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end CreateSpriteAndAnimate + + thumb_func_start DestroySprite +DestroySprite: @ 0x08006E00 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08006E5C + adds r0, r5, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08006E56 + ldr r0, [r5, #0xc] + ldrh r2, [r0, #4] + lsrs r2, r2, #5 + ldrh r0, [r5, #4] + lsls r0, r0, #0x16 + lsrs r1, r0, #0x16 + adds r4, r1, r2 + adds r3, r1, #0 + cmp r3, r4 + bhs _08006E56 + ldr r0, _08006E64 + mov ip, r0 + movs r6, #7 + movs r7, #1 +_08006E3A: + lsrs r2, r3, #3 + add r2, ip + adds r0, r3, #0 + ands r0, r6 + adds r1, r7, #0 + lsls r1, r0 + ldrb r0, [r2] + bics r0, r1 + strb r0, [r2] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, r4 + blo _08006E3A +_08006E56: + adds r0, r5, #0 + bl ResetSprite +_08006E5C: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08006E64: .4byte 0x02021AB8 + thumb_func_end DestroySprite + + thumb_func_start ResetOamRange +ResetOamRange: @ 0x08006E68 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + lsrs r3, r0, #0x18 + cmp r3, r4 + bhs _08006E90 + ldr r6, _08006E98 + ldr r5, _08006E9C +_08006E7A: + lsls r0, r3, #3 + adds r0, r0, r6 + ldr r1, [r5] + ldr r2, [r5, #4] + str r1, [r0] + str r2, [r0, #4] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, r4 + blo _08006E7A +_08006E90: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08006E98: .4byte 0x03002398 +_08006E9C: .4byte 0x082BF2F8 + thumb_func_end ResetOamRange + + thumb_func_start LoadOam +LoadOam: @ 0x08006EA0 + push {lr} + ldr r2, _08006EC4 + ldr r1, _08006EC8 + adds r0, r2, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08006EC0 + adds r0, r2, #0 + adds r0, #0x38 + movs r1, #0xe0 + lsls r1, r1, #0x13 + ldr r2, _08006ECC + bl CpuSet +_08006EC0: + pop {r0} + bx r0 + .align 2, 0 +_08006EC4: .4byte 0x03002360 +_08006EC8: .4byte 0x00000439 +_08006ECC: .4byte 0x04000100 + thumb_func_end LoadOam + + thumb_func_start ClearSpriteCopyRequests +ClearSpriteCopyRequests: @ 0x08006ED0 + push {r4, r5, lr} + ldr r0, _08006F04 + movs r1, #0 + strb r1, [r0] + ldr r0, _08006F08 + strb r1, [r0] + movs r2, #0 + ldr r4, _08006F0C + movs r3, #0 + adds r5, r4, #4 +_08006EE4: + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r1, r0, r4 + str r3, [r1] + adds r0, r0, r5 + str r3, [r0] + strh r3, [r1, #8] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x3f + bls _08006EE4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08006F04: .4byte 0x020217B0 +_08006F08: .4byte 0x020217B1 +_08006F0C: .4byte 0x020217B4 + thumb_func_end ClearSpriteCopyRequests + + thumb_func_start ResetOamMatrices +ResetOamMatrices: @ 0x08006F10 + push {r4, lr} + movs r1, #0 + ldr r4, _08006F38 + movs r3, #0 + movs r2, #0x80 + lsls r2, r2, #1 +_08006F1C: + lsls r0, r1, #3 + adds r0, r0, r4 + strh r2, [r0] + strh r3, [r0, #2] + strh r3, [r0, #4] + strh r2, [r0, #6] + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x1f + bls _08006F1C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08006F38: .4byte 0x02021B3C + thumb_func_end ResetOamMatrices + + thumb_func_start SetOamMatrix +SetOamMatrix: @ 0x08006F3C + push {r4, r5, lr} + ldr r5, [sp, #0xc] + lsls r0, r0, #0x18 + ldr r4, _08006F58 + lsrs r0, r0, #0x15 + adds r0, r0, r4 + strh r1, [r0] + strh r2, [r0, #2] + strh r3, [r0, #4] + strh r5, [r0, #6] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08006F58: .4byte 0x02021B3C + thumb_func_end SetOamMatrix + + thumb_func_start ResetSprite +ResetSprite: @ 0x08006F5C + push {lr} + ldr r1, _08006F6C + movs r2, #0x44 + bl memcpy + pop {r0} + bx r0 + .align 2, 0 +_08006F6C: .4byte 0x082BF2B4 + thumb_func_end ResetSprite + + thumb_func_start CalcCenterToCornerVec +CalcCenterToCornerVec: @ 0x08006F70 + push {r4, r5, r6, lr} + adds r6, r0, #0 + lsls r1, r1, #0x18 + lsls r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r4, _08006FB0 + lsrs r2, r2, #0x17 + lsrs r1, r1, #0x15 + adds r2, r2, r1 + adds r0, r2, r4 + ldrb r5, [r0] + adds r4, #1 + adds r2, r2, r4 + ldrb r1, [r2] + movs r0, #2 + ands r3, r0 + cmp r3, #0 + beq _08006F9E + lsls r0, r5, #0x19 + lsrs r5, r0, #0x18 + lsls r0, r1, #0x19 + lsrs r1, r0, #0x18 +_08006F9E: + adds r0, r6, #0 + adds r0, #0x28 + strb r5, [r0] + adds r0, #1 + strb r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08006FB0: .4byte 0x082BF299 + thumb_func_end CalcCenterToCornerVec + + thumb_func_start AllocSpriteTiles +AllocSpriteTiles: @ 0x08006FB4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0 + bne _0800700A + ldr r0, _08006FF8 + ldrh r3, [r0] + ldr r0, _08006FFC + cmp r3, r0 + bhi _08006FF2 + ldr r7, _08007000 + movs r6, #7 + adds r4, r0, #0 + movs r5, #1 +_08006FD6: + lsrs r2, r3, #3 + adds r2, r2, r7 + adds r0, r3, #0 + ands r0, r6 + adds r1, r5, #0 + lsls r1, r0 + ldrb r0, [r2] + bics r0, r1 + strb r0, [r2] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, r4 + bls _08006FD6 +_08006FF2: + movs r0, #0 + b _080070BC + .align 2, 0 +_08006FF8: .4byte 0x02021AB6 +_08006FFC: .4byte 0x000003FF +_08007000: .4byte 0x02021AB8 +_08007004: + movs r0, #1 + rsbs r0, r0, #0 + b _080070BC +_0800700A: + ldr r0, _080070C8 + ldrh r3, [r0] + ldr r0, _080070CC + mov sb, r0 + movs r7, #7 + movs r6, #1 +_08007016: + lsrs r0, r3, #3 + add r0, sb + ldrb r1, [r0] + adds r0, r3, #0 + ands r0, r7 + asrs r1, r0 + ands r1, r6 + cmp r1, #0 + beq _0800704A + movs r5, #0x80 + lsls r5, r5, #3 + ldr r2, _080070CC +_0800702E: + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, r5 + beq _08007004 + lsrs r0, r0, #0x13 + adds r0, r0, r2 + ldrb r1, [r0] + adds r0, r3, #0 + ands r0, r7 + asrs r1, r0 + ands r1, r6 + cmp r1, #0 + bne _0800702E +_0800704A: + mov r8, r3 + movs r2, #1 + cmp r2, r4 + beq _08007084 + movs r1, #0x80 + lsls r1, r1, #3 + mov ip, r1 + ldr r5, _080070CC +_0800705A: + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, ip + beq _08007004 + lsrs r0, r0, #0x13 + adds r0, r0, r5 + ldrb r1, [r0] + adds r0, r3, #0 + ands r0, r7 + asrs r1, r0 + ands r1, r6 + cmp r1, #0 + bne _08007080 + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, r4 + bne _0800705A +_08007080: + cmp r2, r4 + bne _08007016 +_08007084: + mov r1, r8 + lsls r0, r1, #0x10 + lsrs r3, r0, #0x10 + asrs r1, r0, #0x10 + adds r1, r4, r1 + adds r6, r0, #0 + cmp r3, r1 + bge _080070BA + ldr r0, _080070CC + mov r8, r0 + movs r7, #7 + adds r4, r1, #0 + movs r5, #1 +_0800709E: + lsrs r2, r3, #3 + add r2, r8 + adds r1, r3, #0 + ands r1, r7 + adds r0, r5, #0 + lsls r0, r1 + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, r4 + blt _0800709E +_080070BA: + asrs r0, r6, #0x10 +_080070BC: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080070C8: .4byte 0x02021AB6 +_080070CC: .4byte 0x02021AB8 + thumb_func_end AllocSpriteTiles + + thumb_func_start SpriteTileAllocBitmapOp +SpriteTileAllocBitmapOp: @ 0x080070D0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsrs r0, r0, #0x13 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + adds r6, r3, #0 + movs r0, #7 + ands r2, r0 + adds r4, r2, #0 + movs r5, #0 + cmp r1, #0 + bne _08007108 + movs r0, #1 + lsls r0, r2 + mvns r0, r0 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _08007104 + adds r0, r3, r0 + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + b _08007134 + .align 2, 0 +_08007104: .4byte 0x02021AB8 +_08007108: + cmp r1, #1 + bne _08007124 + lsls r1, r2 + lsls r0, r1, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _08007120 + adds r0, r3, r0 + ldrb r1, [r0] + orrs r2, r1 + strb r2, [r0] + b _08007134 + .align 2, 0 +_08007120: .4byte 0x02021AB8 +_08007124: + movs r0, #0x80 + lsls r0, r0, #0x11 + lsls r0, r4 + lsrs r5, r0, #0x18 + ldr r0, _0800713C + adds r0, r6, r0 + ldrb r0, [r0] + ands r5, r0 +_08007134: + adds r0, r5, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0800713C: .4byte 0x02021AB8 + thumb_func_end SpriteTileAllocBitmapOp + + thumb_func_start SpriteCallbackDummy +SpriteCallbackDummy: @ 0x08007140 + bx lr + .align 2, 0 + thumb_func_end SpriteCallbackDummy + + thumb_func_start ProcessSpriteCopyRequests +ProcessSpriteCopyRequests: @ 0x08007144 + push {r4, r5, r6, r7, lr} + ldr r0, _08007194 + ldrb r0, [r0] + cmp r0, #0 + beq _0800718C + movs r4, #0 + ldr r1, _08007198 + ldrb r0, [r1] + cmp r0, #0 + beq _08007186 + ldr r6, _0800719C + adds r7, r6, #4 + adds r5, r1, #0 +_0800715E: + lsls r1, r4, #1 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r2, r1, r6 + ldr r0, [r2] + adds r1, r1, r7 + ldr r1, [r1] + ldrh r2, [r2, #8] + lsrs r2, r2, #1 + bl CpuSet + ldrb r1, [r5] + subs r1, #1 + strb r1, [r5] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + cmp r1, #0 + bne _0800715E +_08007186: + ldr r1, _08007194 + movs r0, #0 + strb r0, [r1] +_0800718C: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08007194: .4byte 0x020217B0 +_08007198: .4byte 0x020217B1 +_0800719C: .4byte 0x020217B4 + thumb_func_end ProcessSpriteCopyRequests + + thumb_func_start RequestSpriteFrameImageCopy +RequestSpriteFrameImageCopy: @ 0x080071A0 + push {r4, r5, r6, lr} + adds r5, r2, #0 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + ldr r4, _080071F8 + ldrb r0, [r4] + cmp r0, #0x3f + bhi _080071F0 + ldr r3, _080071FC + adds r1, r0, #0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + lsls r2, r2, #3 + adds r2, r2, r5 + ldr r1, [r2] + str r1, [r0] + ldrb r0, [r4] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r0, r3, #4 + adds r1, r1, r0 + lsls r0, r6, #5 + ldr r5, _08007200 + adds r0, r0, r5 + str r0, [r1] + ldrb r1, [r4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r2, #4] + strh r1, [r0, #8] + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] +_080071F0: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080071F8: .4byte 0x020217B1 +_080071FC: .4byte 0x020217B4 +_08007200: .4byte 0x06010000 + thumb_func_end RequestSpriteFrameImageCopy + + thumb_func_start RequestSpriteCopy +RequestSpriteCopy: @ 0x08007204 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r2, r2, #0x10 + lsrs r6, r2, #0x10 + ldr r3, _0800724C + ldrb r0, [r3] + cmp r0, #0x3f + bhi _08007244 + ldr r2, _08007250 + adds r1, r0, #0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + str r4, [r0] + ldrb r1, [r3] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r2, #4 + adds r0, r0, r1 + str r5, [r0] + ldrb r1, [r3] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r6, [r0, #8] + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] +_08007244: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0800724C: .4byte 0x020217B1 +_08007250: .4byte 0x020217B4 + thumb_func_end RequestSpriteCopy + + thumb_func_start CopyFromSprites +CopyFromSprites: @ 0x08007254 + push {r4, lr} + adds r1, r0, #0 + ldr r3, _08007274 + movs r2, #0 + ldr r4, _08007278 +_0800725E: + ldrb r0, [r3] + strb r0, [r1] + adds r1, #1 + adds r3, #1 + adds r2, #1 + cmp r2, r4 + bls _0800725E + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08007274: .4byte 0x020205AC +_08007278: .4byte 0x000010FF + thumb_func_end CopyFromSprites + + thumb_func_start CopyToSprites +CopyToSprites: @ 0x0800727C + push {r4, lr} + adds r1, r0, #0 + ldr r3, _0800729C + movs r2, #0 + ldr r4, _080072A0 +_08007286: + ldrb r0, [r1] + strb r0, [r3] + adds r1, #1 + adds r3, #1 + adds r2, #1 + cmp r2, r4 + bls _08007286 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800729C: .4byte 0x020205AC +_080072A0: .4byte 0x000010FF + thumb_func_end CopyToSprites + + thumb_func_start ResetAllSprites +ResetAllSprites: @ 0x080072A4 + push {r4, r5, lr} + movs r4, #0 +_080072A8: + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + ldr r5, _080072D8 + adds r0, r0, r5 + bl ResetSprite + ldr r0, _080072DC + adds r0, r4, r0 + strb r4, [r0] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x3f + bls _080072A8 + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r5 + bl ResetSprite + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080072D8: .4byte 0x020205AC +_080072DC: .4byte 0x02021770 + thumb_func_end ResetAllSprites + + thumb_func_start FreeSpriteTiles +FreeSpriteTiles: @ 0x080072E0 + push {lr} + ldr r2, [r0, #0x14] + ldrh r1, [r2] + ldr r0, _080072F8 + cmp r1, r0 + beq _080072F2 + adds r0, r1, #0 + bl FreeSpriteTilesByTag +_080072F2: + pop {r0} + bx r0 + .align 2, 0 +_080072F8: .4byte 0x0000FFFF + thumb_func_end FreeSpriteTiles + + thumb_func_start FreeSpritePalette +FreeSpritePalette: @ 0x080072FC + push {lr} + ldr r0, [r0, #0x14] + ldrh r0, [r0, #2] + bl FreeSpritePaletteByTag + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end FreeSpritePalette + + thumb_func_start FreeSpriteOamMatrix +FreeSpriteOamMatrix: @ 0x0800730C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #1] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08007332 + ldrb r0, [r4, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + ldrb r1, [r4, #1] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #1] +_08007332: + pop {r4} + pop {r0} + bx r0 + thumb_func_end FreeSpriteOamMatrix + + thumb_func_start DestroySpriteAndFreeResources +DestroySpriteAndFreeResources: @ 0x08007338 + push {r4, lr} + adds r4, r0, #0 + bl FreeSpriteTiles + adds r0, r4, #0 + bl FreeSpritePalette + adds r0, r4, #0 + bl FreeSpriteOamMatrix + adds r0, r4, #0 + bl DestroySprite + pop {r4} + pop {r0} + bx r0 + thumb_func_end DestroySpriteAndFreeResources + + thumb_func_start AnimateSprite +AnimateSprite: @ 0x08007358 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _08007394 + adds r5, r4, #0 + adds r5, #0x3f + ldrb r1, [r5] + movs r0, #4 + ands r0, r1 + adds r0, r0, r2 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldr r0, _08007398 + ldrb r0, [r0] + cmp r0, #0 + bne _0800738E + ldr r0, _0800739C + ldrb r1, [r5] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1f + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0800738E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08007394: .4byte 0x082BF32C +_08007398: .4byte 0x02021C3C +_0800739C: .4byte 0x082BF334 + thumb_func_end AnimateSprite + + thumb_func_start BeginAnim +BeginAnim: @ 0x080073A0 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + adds r3, r4, #0 + adds r3, #0x2b + movs r2, #0 + strb r2, [r3] + adds r5, r4, #0 + adds r5, #0x3f + ldrb r1, [r5] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r5] + adds r0, r4, #0 + adds r0, #0x2d + strb r2, [r0] + adds r2, r4, #0 + adds r2, #0x2a + ldrb r1, [r2] + ldr r0, [r4, #8] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r3] + ldr r1, [r1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0] + mov sb, r0 + lsls r0, r0, #0x10 + mov r8, r0 + asrs r1, r0, #0x10 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _08007484 + ldrb r1, [r5] + subs r0, #4 + ands r0, r1 + strb r0, [r5] + ldrb r1, [r2] + ldr r0, [r4, #8] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r3] + ldr r1, [r1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + lsls r1, r0, #0xa + lsrs r3, r1, #0x1a + lsls r1, r0, #9 + lsrs r7, r1, #0x1f + lsls r0, r0, #8 + lsrs r6, r0, #0x1f + cmp r3, #0 + beq _0800741C + subs r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 +_0800741C: + adds r2, r4, #0 + adds r2, #0x2c + movs r0, #0x3f + ands r3, r0 + ldrb r1, [r2] + subs r0, #0x7f + ands r0, r1 + orrs r0, r3 + strb r0, [r2] + ldrb r0, [r4, #1] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08007446 + adds r0, r4, #0 + adds r1, r7, #0 + adds r2, r6, #0 + bl SetSpriteOamFlipBits +_08007446: + ldrb r1, [r5] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08007474 + adds r0, r4, #0 + adds r0, #0x40 + ldrh r1, [r0] + add r1, sb + ldr r2, _0800746C + adds r0, r2, #0 + ands r1, r0 + ldrh r2, [r4, #4] + ldr r0, _08007470 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, #4] + b _08007484 + .align 2, 0 +_0800746C: .4byte 0x000003FF +_08007470: .4byte 0xFFFFFC00 +_08007474: + mov r1, r8 + lsrs r0, r1, #0x10 + ldrh r1, [r4, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x16 + ldr r2, [r4, #0xc] + bl RequestSpriteFrameImageCopy +_08007484: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end BeginAnim + + thumb_func_start ContinueAnim +ContinueAnim: @ 0x08007490 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x2c + ldrb r1, [r0] + movs r0, #0x3f + ands r0, r1 + cmp r0, #0 + beq _080074E0 + adds r0, r4, #0 + bl DecrementAnimDelayCounter + adds r0, r4, #0 + adds r0, #0x2a + ldrb r1, [r0] + ldr r0, [r4, #8] + lsls r1, r1, #2 + adds r1, r1, r0 + adds r0, r4, #0 + adds r0, #0x2b + ldrb r0, [r0] + ldr r1, [r1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + lsls r1, r0, #9 + lsrs r3, r1, #0x1f + lsls r0, r0, #8 + lsrs r2, r0, #0x1f + ldrb r0, [r4, #1] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08007526 + adds r0, r4, #0 + adds r1, r3, #0 + bl SetSpriteOamFlipBits + b _08007526 +_080074E0: + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08007526 + adds r2, r4, #0 + adds r2, #0x2b + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x2a + ldrb r0, [r0] + ldr r1, [r4, #8] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r2] + ldr r0, [r0] + lsls r1, r1, #2 + adds r1, r1, r0 + movs r2, #3 + movs r3, #0 + ldrsh r0, [r1, r3] + cmp r0, #0 + bge _08007516 + adds r0, #3 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 +_08007516: + ldr r0, _0800752C + lsls r1, r2, #0x10 + asrs r1, r1, #0xe + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08007526: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800752C: .4byte 0x082BF33C + thumb_func_end ContinueAnim + + thumb_func_start AnimCmd_frame +AnimCmd_frame: @ 0x08007530 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + adds r0, #0x2a + ldrb r1, [r0] + ldr r0, [r4, #8] + lsls r1, r1, #2 + adds r1, r1, r0 + adds r0, r4, #0 + adds r0, #0x2b + ldrb r0, [r0] + ldr r1, [r1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r7, [r0] + mov r8, r7 + ldr r0, [r0] + lsls r1, r0, #0xa + lsrs r3, r1, #0x1a + lsls r1, r0, #9 + lsrs r6, r1, #0x1f + lsls r0, r0, #8 + lsrs r5, r0, #0x1f + cmp r3, #0 + beq _0800756A + subs r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 +_0800756A: + adds r2, r4, #0 + adds r2, #0x2c + movs r0, #0x3f + ands r3, r0 + ldrb r1, [r2] + subs r0, #0x7f + ands r0, r1 + orrs r0, r3 + strb r0, [r2] + ldrb r0, [r4, #1] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08007594 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r5, #0 + bl SetSpriteOamFlipBits +_08007594: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080075C4 + adds r0, r4, #0 + adds r0, #0x40 + ldrh r1, [r0] + adds r1, r1, r7 + ldr r2, _080075BC + adds r0, r2, #0 + ands r1, r0 + ldrh r2, [r4, #4] + ldr r0, _080075C0 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, #4] + b _080075D2 + .align 2, 0 +_080075BC: .4byte 0x000003FF +_080075C0: .4byte 0xFFFFFC00 +_080075C4: + mov r0, r8 + ldrh r1, [r4, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x16 + ldr r2, [r4, #0xc] + bl RequestSpriteFrameImageCopy +_080075D2: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end AnimCmd_frame + + thumb_func_start AnimCmd_end +AnimCmd_end: @ 0x080075DC + adds r2, r0, #0 + adds r2, #0x2b + ldrb r1, [r2] + subs r1, #1 + strb r1, [r2] + adds r0, #0x3f + ldrb r1, [r0] + movs r2, #0x10 + orrs r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 + thumb_func_end AnimCmd_end + + thumb_func_start AnimCmd_jump +AnimCmd_jump: @ 0x080075F4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + adds r3, r4, #0 + adds r3, #0x2a + ldrb r1, [r3] + ldr r0, [r4, #8] + lsls r1, r1, #2 + adds r1, r1, r0 + adds r2, r4, #0 + adds r2, #0x2b + ldrb r0, [r2] + ldr r1, [r1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + lsls r0, r0, #0xa + lsrs r0, r0, #0x1a + strb r0, [r2] + ldrb r0, [r3] + ldr r1, [r4, #8] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r2] + ldr r0, [r0] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r7, [r1] + mov r8, r7 + ldr r0, [r1] + lsls r1, r0, #0xa + lsrs r3, r1, #0x1a + lsls r1, r0, #9 + lsrs r6, r1, #0x1f + lsls r0, r0, #8 + lsrs r5, r0, #0x1f + cmp r3, #0 + beq _08007648 + subs r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 +_08007648: + adds r2, r4, #0 + adds r2, #0x2c + movs r0, #0x3f + ands r3, r0 + ldrb r1, [r2] + subs r0, #0x7f + ands r0, r1 + orrs r0, r3 + strb r0, [r2] + ldrb r0, [r4, #1] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08007672 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r5, #0 + bl SetSpriteOamFlipBits +_08007672: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080076A4 + adds r0, r4, #0 + adds r0, #0x40 + ldrh r1, [r0] + adds r1, r1, r7 + ldr r2, _0800769C + adds r0, r2, #0 + ands r1, r0 + ldrh r2, [r4, #4] + ldr r0, _080076A0 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, #4] + b _080076B2 + .align 2, 0 +_0800769C: .4byte 0x000003FF +_080076A0: .4byte 0xFFFFFC00 +_080076A4: + mov r0, r8 + ldrh r1, [r4, #4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x16 + ldr r2, [r4, #0xc] + bl RequestSpriteFrameImageCopy +_080076B2: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end AnimCmd_jump + + thumb_func_start AnimCmd_loop +AnimCmd_loop: @ 0x080076BC + push {lr} + adds r1, r0, #0 + adds r0, #0x2d + ldrb r0, [r0] + cmp r0, #0 + beq _080076D0 + adds r0, r1, #0 + bl ContinueAnimLoop + b _080076D6 +_080076D0: + adds r0, r1, #0 + bl BeginAnimLoop +_080076D6: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AnimCmd_loop + + thumb_func_start BeginAnimLoop +BeginAnimLoop: @ 0x080076DC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x2a + ldrb r1, [r0] + ldr r0, [r4, #8] + lsls r1, r1, #2 + adds r1, r1, r0 + adds r0, r4, #0 + adds r0, #0x2b + ldrb r0, [r0] + ldr r1, [r1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + lsls r0, r0, #0xa + lsrs r0, r0, #0x1a + adds r1, r4, #0 + adds r1, #0x2d + strb r0, [r1] + adds r0, r4, #0 + bl JumpToTopOfAnimLoop + adds r0, r4, #0 + bl ContinueAnim + pop {r4} + pop {r0} + bx r0 + thumb_func_end BeginAnimLoop + + thumb_func_start ContinueAnimLoop +ContinueAnimLoop: @ 0x08007714 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x2d + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl JumpToTopOfAnimLoop + adds r0, r4, #0 + bl ContinueAnim + pop {r4} + pop {r0} + bx r0 + thumb_func_end ContinueAnimLoop + + thumb_func_start JumpToTopOfAnimLoop +JumpToTopOfAnimLoop: @ 0x08007734 + push {r4, r5, r6, r7, lr} + mov ip, r0 + adds r0, #0x2d + ldrb r0, [r0] + cmp r0, #0 + beq _080077A0 + mov r3, ip + adds r3, #0x2b + ldrb r0, [r3] + subs r0, #1 + strb r0, [r3] + mov r5, ip + adds r5, #0x2a + ldrb r1, [r5] + mov r2, ip + ldr r0, [r2, #8] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r3] + ldr r1, [r1] + lsls r0, r0, #2 + adds r0, r0, r1 + subs r0, #4 + movs r7, #0 + ldrsh r0, [r0, r7] + movs r1, #3 + rsbs r1, r1, #0 + adds r4, r3, #0 + cmp r0, r1 + beq _0800779A + adds r6, r1, #0 + adds r2, r4, #0 +_08007774: + ldrb r0, [r2] + cmp r0, #0 + beq _0800779A + subs r0, #1 + strb r0, [r3] + ldrb r1, [r5] + mov r7, ip + ldr r0, [r7, #8] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r2] + ldr r1, [r1] + lsls r0, r0, #2 + adds r0, r0, r1 + subs r0, #4 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, r6 + bne _08007774 +_0800779A: + ldrb r0, [r4] + subs r0, #1 + strb r0, [r4] +_080077A0: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end JumpToTopOfAnimLoop + + thumb_func_start BeginAffineAnim +BeginAffineAnim: @ 0x080077A8 + push {r4, r5, r6, r7, lr} + sub sp, #8 + adds r6, r0, #0 + ldrb r0, [r6, #1] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0800782A + ldr r0, [r6, #0x10] + ldr r0, [r0] + movs r2, #0 + ldrsh r1, [r0, r2] + ldr r0, _08007834 + cmp r1, r0 + beq _0800782A + adds r0, r6, #0 + bl GetSpriteMatrixNum + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl AffineAnimStateRestartAnim + mov r5, sp + adds r0, r4, #0 + adds r1, r6, #0 + mov r2, sp + bl GetAffineAnimFrame + adds r7, r6, #0 + adds r7, #0x3f + ldrb r1, [r7] + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x21 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r7] + adds r0, r4, #0 + mov r1, sp + bl ApplyAffineAnimFrame + ldr r1, _08007838 + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r5, #5] + strb r1, [r0, #2] + ldrb r1, [r7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0800782A + movs r0, #0x3a + ldrsh r1, [r6, r0] + movs r0, #0x3c + ldrsh r2, [r6, r0] + adds r0, r6, #0 + bl obj_update_pos2 +_0800782A: + add sp, #8 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08007834: .4byte 0x00007FFF +_08007838: .4byte 0x03000B70 + thumb_func_end BeginAffineAnim + + thumb_func_start ContinueAffineAnim +ContinueAffineAnim: @ 0x0800783C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #1] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _080078DE + adds r0, r4, #0 + bl GetSpriteMatrixNum + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r5, r2, #0 + ldr r1, _08007874 + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r3, r0, r1 + ldrb r0, [r3, #2] + cmp r0, #0 + beq _08007878 + adds r0, r2, #0 + adds r1, r4, #0 + bl AffineAnimDelay + b _080078C2 + .align 2, 0 +_08007874: .4byte 0x03000B70 +_08007878: + adds r0, r4, #0 + adds r0, #0x2c + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080078DE + ldrb r0, [r3, #1] + adds r0, #1 + strb r0, [r3, #1] + ldrb r0, [r3] + ldr r1, [r4, #0x10] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r3, #1] + ldr r0, [r0] + lsls r1, r1, #3 + adds r1, r1, r0 + movs r2, #3 + movs r0, #0 + ldrsh r1, [r1, r0] + ldr r0, _080078E4 + cmp r1, r0 + ble _080078B0 + ldr r2, _080078E8 + adds r0, r1, r2 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 +_080078B0: + ldr r0, _080078EC + lsls r1, r2, #0x10 + asrs r1, r1, #0xe + adds r1, r1, r0 + ldr r2, [r1] + adds r0, r5, #0 + adds r1, r4, #0 + bl _call_via_r2 +_080078C2: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080078DE + movs r0, #0x3a + ldrsh r1, [r4, r0] + movs r0, #0x3c + ldrsh r2, [r4, r0] + adds r0, r4, #0 + bl obj_update_pos2 +_080078DE: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080078E4: .4byte 0x00007FFC +_080078E8: .4byte 0xFFFF8003 +_080078EC: .4byte 0x082BF34C + thumb_func_end ContinueAffineAnim + + thumb_func_start AffineAnimDelay +AffineAnimDelay: @ 0x080078F0 + push {r4, r5, lr} + sub sp, #8 + adds r5, r1, #0 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r5, #0 + adds r1, r4, #0 + bl DecrementAffineAnimDelayCounter + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0800791A + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sp + bl GetAffineAnimFrame + adds r0, r4, #0 + mov r1, sp + bl ApplyAffineAnimFrameRelativeAndUpdateMatrix +_0800791A: + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end AffineAnimDelay + + thumb_func_start AffineAnimCmd_loop +AffineAnimCmd_loop: @ 0x08007924 + push {lr} + adds r3, r1, #0 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _08007948 + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #3] + cmp r0, #0 + beq _0800794C + adds r0, r2, #0 + adds r1, r3, #0 + bl ContinueAffineAnimLoop + b _08007954 + .align 2, 0 +_08007948: .4byte 0x03000B70 +_0800794C: + adds r0, r2, #0 + adds r1, r3, #0 + bl BeginAffineAnimLoop +_08007954: + pop {r0} + bx r0 + thumb_func_end AffineAnimCmd_loop + + thumb_func_start BeginAffineAnimLoop +BeginAffineAnimLoop: @ 0x08007958 + push {r4, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08007990 + lsls r3, r0, #1 + adds r3, r3, r0 + lsls r3, r3, #2 + adds r3, r3, r1 + ldrb r2, [r3] + ldr r1, [r4, #0x10] + lsls r2, r2, #2 + adds r2, r2, r1 + ldrb r1, [r3, #1] + ldr r2, [r2] + lsls r1, r1, #3 + adds r1, r1, r2 + ldrh r1, [r1, #2] + strb r1, [r3, #3] + adds r1, r4, #0 + bl JumpToTopOfAffineAnimLoop + adds r0, r4, #0 + bl ContinueAffineAnim + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08007990: .4byte 0x03000B70 + thumb_func_end BeginAffineAnimLoop + + thumb_func_start ContinueAffineAnimLoop +ContinueAffineAnimLoop: @ 0x08007994 + push {r4, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080079C0 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r2, [r1, #3] + subs r2, #1 + strb r2, [r1, #3] + adds r1, r4, #0 + bl JumpToTopOfAffineAnimLoop + adds r0, r4, #0 + bl ContinueAffineAnim + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080079C0: .4byte 0x03000B70 + thumb_func_end ContinueAffineAnimLoop + + thumb_func_start JumpToTopOfAffineAnimLoop +JumpToTopOfAffineAnimLoop: @ 0x080079C4 + push {r4, r5, r6, r7, lr} + mov ip, r1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _080079E8 + lsls r3, r5, #1 + adds r0, r3, r5 + lsls r0, r0, #2 + adds r2, r0, r1 + ldrb r0, [r2, #3] + adds r6, r1, #0 + cmp r0, #0 + beq _08007A24 + ldrb r0, [r2, #1] + subs r0, #1 + strb r0, [r2, #1] + adds r4, r3, #0 + b _080079F4 + .align 2, 0 +_080079E8: .4byte 0x03000B70 +_080079EC: + cmp r2, #0 + beq _08007A18 + subs r0, r2, #1 + strb r0, [r3, #1] +_080079F4: + adds r0, r4, r5 + lsls r0, r0, #2 + adds r3, r0, r6 + ldrb r0, [r3] + mov r2, ip + ldr r1, [r2, #0x10] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r2, [r3, #1] + ldr r1, [r0] + lsls r0, r2, #3 + adds r0, r0, r1 + subs r0, #8 + movs r7, #0 + ldrsh r1, [r0, r7] + ldr r0, _08007A2C + cmp r1, r0 + bne _080079EC +_08007A18: + adds r1, r4, r5 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrb r0, [r1, #1] + subs r0, #1 + strb r0, [r1, #1] +_08007A24: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08007A2C: .4byte 0x00007FFD + thumb_func_end JumpToTopOfAffineAnimLoop + + thumb_func_start AffineAnimCmd_jump +AffineAnimCmd_jump: @ 0x08007A30 + push {r4, r5, r6, lr} + sub sp, #8 + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _08007A78 + lsls r4, r5, #1 + adds r4, r4, r5 + lsls r4, r4, #2 + adds r4, r4, r0 + ldrb r2, [r4] + ldr r0, [r1, #0x10] + lsls r2, r2, #2 + adds r2, r2, r0 + ldrb r0, [r4, #1] + ldr r2, [r2] + lsls r0, r0, #3 + adds r0, r0, r2 + ldrh r0, [r0, #2] + strb r0, [r4, #1] + mov r6, sp + adds r0, r5, #0 + mov r2, sp + bl GetAffineAnimFrame + adds r0, r5, #0 + mov r1, sp + bl ApplyAffineAnimFrame + ldrb r0, [r6, #5] + strb r0, [r4, #2] + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08007A78: .4byte 0x03000B70 + thumb_func_end AffineAnimCmd_jump + + thumb_func_start AffineAnimCmd_end +AffineAnimCmd_end: @ 0x08007A7C + push {lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0 + movs r3, #0 + str r2, [sp] + str r3, [sp, #4] + adds r1, #0x3f + ldrb r2, [r1] + movs r3, #0x20 + orrs r2, r3 + strb r2, [r1] + ldr r2, _08007AB4 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r2, [r1, #1] + subs r2, #1 + strb r2, [r1, #1] + mov r1, sp + bl ApplyAffineAnimFrameRelativeAndUpdateMatrix + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 +_08007AB4: .4byte 0x03000B70 + thumb_func_end AffineAnimCmd_end + + thumb_func_start AffineAnimCmd_frame +AffineAnimCmd_frame: @ 0x08007AB8 + push {r4, r5, lr} + sub sp, #8 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r5, sp + adds r0, r4, #0 + mov r2, sp + bl GetAffineAnimFrame + adds r0, r4, #0 + mov r1, sp + bl ApplyAffineAnimFrame + ldr r1, _08007AEC + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r5, #5] + strb r1, [r0, #2] + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08007AEC: .4byte 0x03000B70 + thumb_func_end AffineAnimCmd_frame + + thumb_func_start CopyOamMatrix +CopyOamMatrix: @ 0x08007AF0 + lsls r0, r0, #0x18 + ldr r2, _08007B0C + lsrs r0, r0, #0x15 + adds r0, r0, r2 + ldrh r2, [r1] + strh r2, [r0] + ldrh r2, [r1, #2] + strh r2, [r0, #2] + ldrh r2, [r1, #4] + strh r2, [r0, #4] + ldrh r1, [r1, #6] + strh r1, [r0, #6] + bx lr + .align 2, 0 +_08007B0C: .4byte 0x02021B3C + thumb_func_end CopyOamMatrix + + thumb_func_start GetSpriteMatrixNum +GetSpriteMatrixNum: @ 0x08007B10 + push {lr} + adds r2, r0, #0 + movs r3, #0 + ldrb r0, [r2, #1] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08007B2A + ldrb r0, [r2, #3] + lsls r0, r0, #0x1a + lsrs r3, r0, #0x1b +_08007B2A: + adds r0, r3, #0 + pop {r1} + bx r1 + thumb_func_end GetSpriteMatrixNum + + thumb_func_start sub_08007B30 +sub_08007B30: @ 0x08007B30 + strh r1, [r0, #0x3a] + strh r2, [r0, #0x3c] + adds r0, #0x3f + ldrb r1, [r0] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0] + bx lr + thumb_func_end sub_08007B30 + + thumb_func_start sub_08007B40 +sub_08007B40: @ 0x08007B40 + push {r4, r5, lr} + adds r3, r0, #0 + adds r5, r2, #0 + subs r0, r1, r3 + cmp r0, #0 + bge _08007B52 + rsbs r0, r0, #0 + asrs r4, r0, #9 + b _08007B56 +_08007B52: + asrs r0, r0, #9 + rsbs r4, r0, #0 +_08007B56: + adds r0, r5, #0 + muls r0, r1, r0 + adds r1, r3, #0 + bl __udivsi3 + adds r0, r0, r4 + subs r0, r5, r0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08007B40 + + thumb_func_start obj_update_pos2 +obj_update_pos2: @ 0x08007B6C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + adds r6, r1, #0 + mov r8, r2 + ldrb r1, [r5, #3] + lsls r0, r1, #0x1a + lsrs r7, r0, #0x1b + movs r0, #0x80 + lsls r0, r0, #4 + mov sb, r0 + cmp r6, sb + beq _08007BBA + ldr r2, _08007C00 + lsrs r1, r1, #6 + lsls r1, r1, #3 + ldrb r0, [r5, #1] + lsrs r0, r0, #6 + lsls r0, r0, #5 + adds r1, r1, r0 + adds r1, r1, r2 + ldr r0, [r1] + lsls r4, r0, #8 + lsls r0, r0, #0x10 + ldr r2, _08007C04 + lsls r1, r7, #3 + adds r1, r1, r2 + movs r2, #0 + ldrsh r1, [r1, r2] + bl __divsi3 + adds r1, r0, #0 + adds r0, r4, #0 + adds r2, r6, #0 + bl sub_08007B40 + strh r0, [r5, #0x24] +_08007BBA: + cmp r8, sb + beq _08007BF2 + ldr r2, _08007C00 + ldrb r1, [r5, #3] + lsrs r1, r1, #6 + lsls r1, r1, #3 + ldrb r0, [r5, #1] + lsrs r0, r0, #6 + lsls r0, r0, #5 + adds r1, r1, r0 + adds r2, #4 + adds r1, r1, r2 + ldr r0, [r1] + lsls r4, r0, #8 + lsls r0, r0, #0x10 + ldr r2, _08007C04 + lsls r1, r7, #3 + adds r1, r1, r2 + movs r2, #6 + ldrsh r1, [r1, r2] + bl __divsi3 + adds r1, r0, #0 + adds r0, r4, #0 + mov r2, r8 + bl sub_08007B40 + strh r0, [r5, #0x26] +_08007BF2: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08007C00: .4byte 0x082BF35C +_08007C04: .4byte 0x02021B3C + thumb_func_end obj_update_pos2 + + thumb_func_start SetSpriteOamFlipBits +SetSpriteOamFlipBits: @ 0x08007C08 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r6, [r0, #3] + lsls r3, r6, #0x1a + lsrs r3, r3, #0x1b + movs r4, #7 + ands r3, r4 + lsls r3, r3, #1 + subs r4, #0x46 + mov r8, r4 + mov r5, r8 + ands r5, r6 + orrs r5, r3 + strb r5, [r0, #3] + lsls r4, r5, #0x1a + lsrs r4, r4, #0x1b + movs r6, #0x3f + adds r6, r6, r0 + mov ip, r6 + ldrb r3, [r6] + lsls r3, r3, #0x1f + lsrs r3, r3, #0x1f + eors r1, r3 + movs r6, #1 + ands r1, r6 + lsls r1, r1, #3 + orrs r4, r1 + lsls r4, r4, #1 + mov r3, r8 + ands r3, r5 + orrs r3, r4 + strb r3, [r0, #3] + lsls r4, r3, #0x1a + lsrs r4, r4, #0x1b + mov r5, ip + ldrb r1, [r5] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1f + eors r2, r1 + ands r2, r6 + lsls r2, r2, #4 + orrs r4, r2 + lsls r4, r4, #1 + mov r6, r8 + ands r3, r6 + orrs r3, r4 + strb r3, [r0, #3] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetSpriteOamFlipBits + + thumb_func_start AffineAnimStateRestartAnim +AffineAnimStateRestartAnim: @ 0x08007C7C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08007C94 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #0 + strb r0, [r1, #1] + strb r0, [r1, #2] + strb r0, [r1, #3] + bx lr + .align 2, 0 +_08007C94: .4byte 0x03000B70 + thumb_func_end AffineAnimStateRestartAnim + + thumb_func_start AffineAnimStateStartAnim +AffineAnimStateStartAnim: @ 0x08007C98 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _08007CBC + lsls r2, r0, #1 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r3 + movs r3, #0 + strb r1, [r2] + strb r3, [r2, #1] + strb r3, [r2, #2] + strb r3, [r2, #3] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r2, #4] + strh r0, [r2, #6] + strh r3, [r2, #8] + bx lr + .align 2, 0 +_08007CBC: .4byte 0x03000B70 + thumb_func_end AffineAnimStateStartAnim + + thumb_func_start AffineAnimStateReset +AffineAnimStateReset: @ 0x08007CC0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08007CE4 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #0 + strb r0, [r1] + strb r0, [r1, #1] + strb r0, [r1, #2] + strb r0, [r1, #3] + movs r2, #0x80 + lsls r2, r2, #1 + strh r2, [r1, #4] + strh r2, [r1, #6] + strh r0, [r1, #8] + bx lr + .align 2, 0 +_08007CE4: .4byte 0x03000B70 + thumb_func_end AffineAnimStateReset + + thumb_func_start ApplyAffineAnimFrameAbsolute +ApplyAffineAnimFrameAbsolute: @ 0x08007CE8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _08007D08 + lsls r2, r0, #1 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r3 + ldrh r0, [r1] + strh r0, [r2, #4] + ldrh r0, [r1, #2] + strh r0, [r2, #6] + ldrb r0, [r1, #4] + lsls r0, r0, #8 + strh r0, [r2, #8] + bx lr + .align 2, 0 +_08007D08: .4byte 0x03000B70 + thumb_func_end ApplyAffineAnimFrameAbsolute + + thumb_func_start DecrementAnimDelayCounter +DecrementAnimDelayCounter: @ 0x08007D0C + push {lr} + adds r3, r0, #0 + adds r3, #0x2c + ldrb r2, [r3] + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + bne _08007D30 + lsls r0, r2, #0x1a + lsrs r0, r0, #0x1a + subs r0, #1 + movs r1, #0x3f + ands r0, r1 + movs r1, #0x40 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3] +_08007D30: + pop {r0} + bx r0 + thumb_func_end DecrementAnimDelayCounter + + thumb_func_start DecrementAffineAnimDelayCounter +DecrementAffineAnimDelayCounter: @ 0x08007D34 + push {lr} + lsls r1, r1, #0x18 + lsrs r2, r1, #0x18 + adds r3, r0, #0 + adds r3, #0x2c + ldrb r1, [r3] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08007D58 + ldr r0, _08007D60 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #2] + subs r0, #1 + strb r0, [r1, #2] +_08007D58: + ldrb r0, [r3] + lsrs r0, r0, #7 + pop {r1} + bx r1 + .align 2, 0 +_08007D60: .4byte 0x03000B70 + thumb_func_end DecrementAffineAnimDelayCounter + + thumb_func_start ApplyAffineAnimFrameRelativeAndUpdateMatrix +ApplyAffineAnimFrameRelativeAndUpdateMatrix: @ 0x08007D64 + push {r4, r5, r6, lr} + sub sp, #0x10 + adds r5, r0, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _08007DEC + lsls r4, r5, #1 + adds r4, r4, r5 + lsls r4, r4, #2 + adds r4, r4, r0 + ldrh r0, [r1] + ldrh r2, [r4, #4] + adds r0, r0, r2 + strh r0, [r4, #4] + ldrh r0, [r1, #2] + ldrh r2, [r4, #6] + adds r0, r0, r2 + strh r0, [r4, #6] + ldrb r0, [r1, #4] + lsls r0, r0, #8 + ldrh r1, [r4, #8] + adds r0, r0, r1 + ldr r2, _08007DF0 + adds r1, r2, #0 + ands r0, r1 + strh r0, [r4, #8] + movs r1, #4 + ldrsh r0, [r4, r1] + bl ConvertScaleParam + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r6, _08007DF4 + ldr r1, [sp] + ands r1, r6 + orrs r1, r0 + str r1, [sp] + movs r2, #6 + ldrsh r0, [r4, r2] + bl ConvertScaleParam + lsls r0, r0, #0x10 + ldr r2, _08007DF8 + ldr r1, [sp] + ands r1, r2 + orrs r1, r0 + str r1, [sp] + ldrh r1, [r4, #8] + ldr r0, [sp, #4] + ands r0, r6 + orrs r0, r1 + str r0, [sp, #4] + add r4, sp, #8 + mov r0, sp + adds r1, r4, #0 + movs r2, #1 + movs r3, #2 + bl ObjAffineSet + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyOamMatrix + add sp, #0x10 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08007DEC: .4byte 0x03000B70 +_08007DF0: .4byte 0xFFFFFF00 +_08007DF4: .4byte 0xFFFF0000 +_08007DF8: .4byte 0x0000FFFF + thumb_func_end ApplyAffineAnimFrameRelativeAndUpdateMatrix + + thumb_func_start ConvertScaleParam +ConvertScaleParam: @ 0x08007DFC + push {lr} + adds r1, r0, #0 + movs r0, #0x80 + lsls r0, r0, #9 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl __divsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + pop {r1} + bx r1 + thumb_func_end ConvertScaleParam + + thumb_func_start GetAffineAnimFrame +GetAffineAnimFrame: @ 0x08007E14 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _08007E7C + lsls r4, r0, #1 + adds r4, r4, r0 + lsls r4, r4, #2 + adds r4, r4, r3 + ldrb r3, [r4] + ldr r0, [r1, #0x10] + lsls r3, r3, #2 + adds r3, r3, r0 + ldrb r0, [r4, #1] + ldr r3, [r3] + lsls r0, r0, #3 + adds r0, r0, r3 + ldrh r0, [r0] + strh r0, [r2] + ldrb r3, [r4] + ldr r0, [r1, #0x10] + lsls r3, r3, #2 + adds r3, r3, r0 + ldrb r0, [r4, #1] + ldr r3, [r3] + lsls r0, r0, #3 + adds r0, r0, r3 + ldrh r0, [r0, #2] + strh r0, [r2, #2] + ldrb r3, [r4] + ldr r0, [r1, #0x10] + lsls r3, r3, #2 + adds r3, r3, r0 + ldrb r0, [r4, #1] + ldr r3, [r3] + lsls r0, r0, #3 + adds r0, r0, r3 + ldrb r0, [r0, #4] + strb r0, [r2, #4] + ldrb r3, [r4] + ldr r0, [r1, #0x10] + lsls r3, r3, #2 + adds r3, r3, r0 + ldrb r0, [r4, #1] + ldr r1, [r3] + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r0, [r0, #5] + strb r0, [r2, #5] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08007E7C: .4byte 0x03000B70 + thumb_func_end GetAffineAnimFrame + + thumb_func_start ApplyAffineAnimFrame +ApplyAffineAnimFrame: @ 0x08007E80 + push {r4, lr} + sub sp, #8 + adds r2, r1, #0 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #0 + movs r1, #0 + str r0, [sp] + str r1, [sp, #4] + ldrb r0, [r2, #5] + cmp r0, #0 + beq _08007EA6 + subs r0, #1 + strb r0, [r2, #5] + adds r0, r4, #0 + adds r1, r2, #0 + bl ApplyAffineAnimFrameRelativeAndUpdateMatrix + b _08007EB6 +_08007EA6: + adds r0, r4, #0 + adds r1, r2, #0 + bl ApplyAffineAnimFrameAbsolute + adds r0, r4, #0 + mov r1, sp + bl ApplyAffineAnimFrameRelativeAndUpdateMatrix +_08007EB6: + add sp, #8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ApplyAffineAnimFrame + + thumb_func_start StartSpriteAnim +StartSpriteAnim: @ 0x08007EC0 + adds r2, r0, #0 + adds r2, #0x2a + strb r1, [r2] + adds r0, #0x3f + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + movs r2, #0x11 + rsbs r2, r2, #0 + ands r1, r2 + strb r1, [r0] + bx lr + thumb_func_end StartSpriteAnim + + thumb_func_start StartSpriteAnimIfDifferent +StartSpriteAnimIfDifferent: @ 0x08007ED8 + push {lr} + adds r2, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, #0x2a + ldrb r0, [r0] + cmp r0, r1 + beq _08007EEE + adds r0, r2, #0 + bl StartSpriteAnim +_08007EEE: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end StartSpriteAnimIfDifferent + + thumb_func_start SeekSpriteAnim +SeekSpriteAnim: @ 0x08007EF4 + push {r4, r5, r6, r7, lr} + adds r3, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r4, r3, #0 + adds r4, #0x2c + ldrb r0, [r4] + lsls r0, r0, #0x19 + lsrs r6, r0, #0x1f + subs r1, #1 + adds r0, r3, #0 + adds r0, #0x2b + strb r1, [r0] + ldrb r1, [r4] + movs r7, #0x40 + rsbs r7, r7, #0 + adds r0, r7, #0 + ands r0, r1 + strb r0, [r4] + adds r2, r3, #0 + adds r2, #0x3f + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r2] + ldrb r1, [r4] + movs r5, #0x41 + rsbs r5, r5, #0 + adds r0, r5, #0 + ands r0, r1 + strb r0, [r4] + adds r0, r3, #0 + bl ContinueAnim + ldrb r2, [r4] + movs r0, #0x3f + ands r0, r2 + cmp r0, #0 + beq _08007F5C + lsls r0, r2, #0x1a + lsrs r0, r0, #0x1a + adds r0, #1 + movs r1, #0x3f + ands r0, r1 + adds r1, r7, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r4] +_08007F5C: + lsls r2, r6, #6 + ldrb r1, [r4] + adds r0, r5, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SeekSpriteAnim + + thumb_func_start StartSpriteAffineAnim +StartSpriteAffineAnim: @ 0x08007F70 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r4, r1, #0x18 + lsrs r4, r4, #0x18 + bl GetSpriteMatrixNum + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r4, #0 + bl AffineAnimStateStartAnim + adds r5, #0x3f + ldrb r0, [r5] + movs r1, #8 + orrs r0, r1 + movs r1, #0x21 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end StartSpriteAffineAnim + + thumb_func_start StartSpriteAffineAnimIfDifferent +StartSpriteAffineAnimIfDifferent: @ 0x08007F9C + push {r4, r5, lr} + adds r5, r0, #0 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + bl GetSpriteMatrixNum + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08007FCC + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r0, [r1] + cmp r0, r4 + beq _08007FC4 + adds r0, r5, #0 + adds r1, r4, #0 + bl StartSpriteAffineAnim +_08007FC4: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08007FCC: .4byte 0x03000B70 + thumb_func_end StartSpriteAffineAnimIfDifferent + + thumb_func_start ChangeSpriteAffineAnim +ChangeSpriteAffineAnim: @ 0x08007FD0 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r4, r1, #0x18 + lsrs r4, r4, #0x18 + bl GetSpriteMatrixNum + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08008004 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + strb r4, [r1] + adds r5, #0x3f + ldrb r0, [r5] + movs r1, #8 + orrs r0, r1 + movs r1, #0x21 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08008004: .4byte 0x03000B70 + thumb_func_end ChangeSpriteAffineAnim + + thumb_func_start ChangeSpriteAffineAnimIfDifferent +ChangeSpriteAffineAnimIfDifferent: @ 0x08008008 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + bl GetSpriteMatrixNum + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08008038 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r0, [r1] + cmp r0, r4 + beq _08008030 + adds r0, r5, #0 + adds r1, r4, #0 + bl ChangeSpriteAffineAnim +_08008030: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08008038: .4byte 0x03000B70 + thumb_func_end ChangeSpriteAffineAnimIfDifferent + + thumb_func_start SetSpriteSheetFrameTileNum +SetSpriteSheetFrameTileNum: @ 0x0800803C + push {lr} + adds r3, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08008088 + adds r0, r3, #0 + adds r0, #0x2a + ldrb r1, [r0] + ldr r0, [r3, #8] + lsls r1, r1, #2 + adds r1, r1, r0 + adds r0, r3, #0 + adds r0, #0x2b + ldrb r0, [r0] + ldr r1, [r1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r2, [r0] + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bge _08008070 + movs r2, #0 +_08008070: + adds r0, r3, #0 + adds r0, #0x40 + ldrh r1, [r0] + adds r1, r1, r2 + ldr r2, _0800808C + adds r0, r2, #0 + ands r1, r0 + ldrh r2, [r3, #4] + ldr r0, _08008090 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #4] +_08008088: + pop {r0} + bx r0 + .align 2, 0 +_0800808C: .4byte 0x000003FF +_08008090: .4byte 0xFFFFFC00 + thumb_func_end SetSpriteSheetFrameTileNum + + thumb_func_start ResetAffineAnimData +ResetAffineAnimData: @ 0x08008094 + push {r4, lr} + ldr r1, _080080C0 + movs r0, #0 + strb r0, [r1] + ldr r1, _080080C4 + movs r0, #0 + str r0, [r1] + bl ResetOamMatrices + movs r4, #0 +_080080A8: + adds r0, r4, #0 + bl AffineAnimStateReset + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x1f + bls _080080A8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080080C0: .4byte 0x02021C3C +_080080C4: .4byte 0x030030B8 + thumb_func_end ResetAffineAnimData + + thumb_func_start AllocOamMatrix +AllocOamMatrix: @ 0x080080C8 + push {r4, lr} + movs r2, #0 + movs r1, #1 + ldr r0, _080080E8 + ldr r4, [r0] + adds r3, r0, #0 +_080080D4: + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + bne _080080EC + ldr r0, [r3] + orrs r0, r1 + str r0, [r3] + adds r0, r2, #0 + b _080080FA + .align 2, 0 +_080080E8: .4byte 0x030030B8 +_080080EC: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r1, r1, #1 + cmp r2, #0x1f + bls _080080D4 + movs r0, #0xff +_080080FA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end AllocOamMatrix + + thumb_func_start FreeOamMatrix +FreeOamMatrix: @ 0x08008100 + push {lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + movs r0, #0 + movs r1, #1 + ldr r3, _0800813C + cmp r0, r2 + bhs _0800811E +_08008112: + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #1 + cmp r0, r2 + blo _08008112 +_0800811E: + ldr r0, [r3] + bics r0, r1 + str r0, [r3] + movs r1, #0x80 + lsls r1, r1, #1 + str r1, [sp] + adds r0, r2, #0 + movs r2, #0 + movs r3, #0 + bl SetOamMatrix + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_0800813C: .4byte 0x030030B8 + thumb_func_end FreeOamMatrix + + thumb_func_start InitSpriteAffineAnim +InitSpriteAffineAnim: @ 0x08008140 + push {r4, r5, lr} + adds r4, r0, #0 + bl AllocOamMatrix + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0xff + beq _08008188 + ldrb r3, [r4, #1] + lsrs r1, r3, #6 + ldrb r2, [r4, #3] + lsrs r2, r2, #6 + lsls r3, r3, #0x1e + lsrs r3, r3, #0x1e + adds r0, r4, #0 + bl CalcCenterToCornerVec + movs r0, #0x1f + adds r1, r5, #0 + ands r1, r0 + lsls r1, r1, #1 + ldrb r2, [r4, #3] + movs r0, #0x3f + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #3] + adds r2, r4, #0 + adds r2, #0x3f + ldrb r0, [r2] + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + bl AffineAnimStateReset +_08008188: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end InitSpriteAffineAnim + + thumb_func_start SetOamMatrixRotationScaling +SetOamMatrixRotationScaling: @ 0x08008190 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0x10 + adds r6, r0, #0 + adds r0, r1, #0 + adds r4, r2, #0 + adds r5, r3, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + bl ConvertScaleParam + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _08008208 + mov r8, r1 + ldr r1, [sp] + mov r2, r8 + ands r1, r2 + orrs r1, r0 + str r1, [sp] + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + adds r0, r4, #0 + bl ConvertScaleParam + lsls r0, r0, #0x10 + ldr r2, _0800820C + ldr r1, [sp] + ands r1, r2 + orrs r1, r0 + str r1, [sp] + ldr r0, [sp, #4] + mov r1, r8 + ands r0, r1 + orrs r0, r5 + str r0, [sp, #4] + add r4, sp, #8 + mov r0, sp + adds r1, r4, #0 + movs r2, #1 + movs r3, #2 + bl ObjAffineSet + adds r0, r6, #0 + adds r1, r4, #0 + bl CopyOamMatrix + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08008208: .4byte 0xFFFF0000 +_0800820C: .4byte 0x0000FFFF + thumb_func_end SetOamMatrixRotationScaling + + thumb_func_start LoadSpriteSheet +LoadSpriteSheet: @ 0x08008210 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrh r0, [r5, #4] + lsrs r0, r0, #5 + bl AllocSpriteTiles + lsls r4, r0, #0x10 + asrs r6, r4, #0x10 + cmp r6, #0 + blt _0800824C + ldrh r0, [r5, #6] + lsrs r4, r4, #0x10 + ldrh r2, [r5, #4] + lsrs r2, r2, #5 + adds r1, r4, #0 + bl AllocSpriteTileRange + ldr r0, [r5] + lsls r1, r6, #5 + ldr r2, _08008248 + adds r1, r1, r2 + ldrh r2, [r5, #4] + lsrs r2, r2, #1 + bl CpuSet + adds r0, r4, #0 + b _0800824E + .align 2, 0 +_08008248: .4byte 0x06010000 +_0800824C: + movs r0, #0 +_0800824E: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end LoadSpriteSheet + + thumb_func_start LoadSpriteSheets +LoadSpriteSheets: @ 0x08008254 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + ldr r0, [r5] + cmp r0, #0 + beq _08008278 +_08008260: + lsls r0, r4, #3 + adds r0, r5, r0 + bl LoadSpriteSheet + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #3 + adds r0, r0, r5 + ldr r0, [r0] + cmp r0, #0 + bne _08008260 +_08008278: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LoadSpriteSheets + + thumb_func_start FreeSpriteTilesByTag +FreeSpriteTilesByTag: @ 0x08008280 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl IndexOfSpriteTileTag + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xff + beq _080082DE + ldr r0, _080082E8 + lsls r1, r4, #2 + adds r2, r1, r0 + adds r0, #2 + adds r1, r1, r0 + ldrh r0, [r1] + ldrh r3, [r2] + adds r0, r3, r0 + ldr r1, _080082EC + mov r8, r1 + lsls r5, r4, #1 + cmp r3, r0 + bge _080082D6 + ldr r1, _080082F0 + mov ip, r1 + movs r6, #7 + movs r7, #1 + adds r4, r0, #0 +_080082BA: + lsrs r2, r3, #3 + add r2, ip + adds r0, r3, #0 + ands r0, r6 + adds r1, r7, #0 + lsls r1, r0 + ldrb r0, [r2] + bics r0, r1 + strb r0, [r2] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, r4 + blt _080082BA +_080082D6: + mov r0, r8 + adds r1, r5, r0 + ldr r0, _080082F4 + strh r0, [r1] +_080082DE: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080082E8: .4byte 0x03000A70 +_080082EC: .4byte 0x030009F0 +_080082F0: .4byte 0x02021AB8 +_080082F4: .4byte 0x0000FFFF + thumb_func_end FreeSpriteTilesByTag + + thumb_func_start FreeSpriteTileRanges +FreeSpriteTileRanges: @ 0x080082F8 + push {r4, r5, r6, r7, lr} + movs r2, #0 + ldr r7, _0800832C + ldr r0, _08008330 + adds r6, r0, #0 + ldr r4, _08008334 + movs r3, #0 + adds r5, r4, #2 +_08008308: + lsls r1, r2, #1 + adds r1, r1, r7 + ldrh r0, [r1] + orrs r0, r6 + strh r0, [r1] + lsls r1, r2, #2 + adds r0, r1, r4 + strh r3, [r0] + adds r1, r1, r5 + strh r3, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x3f + bls _08008308 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800832C: .4byte 0x030009F0 +_08008330: .4byte 0x0000FFFF +_08008334: .4byte 0x03000A70 + thumb_func_end FreeSpriteTileRanges + + thumb_func_start GetSpriteTileStartByTag +GetSpriteTileStartByTag: @ 0x08008338 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl IndexOfSpriteTileTag + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xff + beq _08008358 + ldr r0, _08008354 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r0, [r1] + b _0800835A + .align 2, 0 +_08008354: .4byte 0x03000A70 +_08008358: + ldr r0, _08008360 +_0800835A: + pop {r1} + bx r1 + .align 2, 0 +_08008360: .4byte 0x0000FFFF + thumb_func_end GetSpriteTileStartByTag + + thumb_func_start IndexOfSpriteTileTag +IndexOfSpriteTileTag: @ 0x08008364 + push {lr} + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + movs r1, #0 + ldr r3, _0800837C +_0800836E: + lsls r0, r1, #1 + adds r0, r0, r3 + ldrh r0, [r0] + cmp r0, r2 + bne _08008380 + adds r0, r1, #0 + b _0800838C + .align 2, 0 +_0800837C: .4byte 0x030009F0 +_08008380: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x3f + bls _0800836E + movs r0, #0xff +_0800838C: + pop {r1} + bx r1 + thumb_func_end IndexOfSpriteTileTag + + thumb_func_start GetSpriteTileTagByTileStart +GetSpriteTileTagByTileStart: @ 0x08008390 + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + movs r2, #0 + ldr r6, _080083B8 + ldr r5, _080083BC + ldr r4, _080083C0 +_0800839E: + lsls r0, r2, #1 + adds r1, r0, r6 + ldrh r0, [r1] + cmp r0, r5 + beq _080083C4 + lsls r0, r2, #2 + adds r0, r0, r4 + ldrh r0, [r0] + cmp r0, r3 + bne _080083C4 + ldrh r0, [r1] + b _080083D0 + .align 2, 0 +_080083B8: .4byte 0x030009F0 +_080083BC: .4byte 0x0000FFFF +_080083C0: .4byte 0x03000A70 +_080083C4: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x3f + bls _0800839E + ldr r0, _080083D8 +_080083D0: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080083D8: .4byte 0x0000FFFF + thumb_func_end GetSpriteTileTagByTileStart + + thumb_func_start AllocSpriteTileRange +AllocSpriteTileRange: @ 0x080083DC + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + ldr r0, _08008418 + bl IndexOfSpriteTileTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0800841C + lsls r1, r0, #1 + adds r1, r1, r2 + strh r4, [r1] + ldr r1, _08008420 + lsls r0, r0, #2 + adds r2, r0, r1 + strh r5, [r2] + adds r1, #2 + adds r0, r0, r1 + strh r6, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08008418: .4byte 0x0000FFFF +_0800841C: .4byte 0x030009F0 +_08008420: .4byte 0x03000A70 + thumb_func_end AllocSpriteTileRange + + thumb_func_start FreeAllSpritePalettes +FreeAllSpritePalettes: @ 0x08008424 + push {r4, lr} + ldr r1, _08008450 + movs r0, #0 + strb r0, [r1] + movs r2, #0 + ldr r4, _08008454 + ldr r0, _08008458 + adds r3, r0, #0 +_08008434: + lsls r0, r2, #1 + adds r0, r0, r4 + ldrh r1, [r0] + orrs r1, r3 + strh r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xf + bls _08008434 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08008450: .4byte 0x030030BC +_08008454: .4byte 0x03000CF0 +_08008458: .4byte 0x0000FFFF + thumb_func_end FreeAllSpritePalettes + + thumb_func_start LoadSpritePalette +LoadSpritePalette: @ 0x0800845C + push {r4, r5, lr} + adds r5, r0, #0 + ldrh r0, [r5, #4] + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xff + beq _08008472 + adds r0, r4, #0 + b _080084A2 +_08008472: + ldr r0, _08008498 + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xff + beq _080084A0 + ldr r1, _0800849C + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r1, [r5, #4] + strh r1, [r0] + ldr r0, [r5] + lsls r1, r4, #4 + bl DoLoadSpritePalette + adds r0, r4, #0 + b _080084A2 + .align 2, 0 +_08008498: .4byte 0x0000FFFF +_0800849C: .4byte 0x03000CF0 +_080084A0: + movs r0, #0xff +_080084A2: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end LoadSpritePalette + + thumb_func_start LoadSpritePalettes +LoadSpritePalettes: @ 0x080084A8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + b _080084B6 +_080084B0: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_080084B6: + lsls r0, r4, #3 + adds r1, r0, r5 + ldr r0, [r1] + cmp r0, #0 + beq _080084CE + adds r0, r1, #0 + bl LoadSpritePalette + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080084B0 +_080084CE: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end LoadSpritePalettes + + thumb_func_start DoLoadSpritePalette +DoLoadSpritePalette: @ 0x080084D4 + push {lr} + lsls r1, r1, #0x10 + movs r2, #0x80 + lsls r2, r2, #0x11 + adds r1, r1, r2 + lsrs r1, r1, #0x10 + movs r2, #0x20 + bl LoadPalette + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end DoLoadSpritePalette + + thumb_func_start AllocSpritePalette +AllocSpritePalette: @ 0x080084EC + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, _0800850C + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xff + beq _08008514 + ldr r1, _08008510 + lsls r0, r2, #1 + adds r0, r0, r1 + strh r4, [r0] + adds r0, r2, #0 + b _08008516 + .align 2, 0 +_0800850C: .4byte 0x0000FFFF +_08008510: .4byte 0x03000CF0 +_08008514: + movs r0, #0xff +_08008516: + pop {r4} + pop {r1} + bx r1 + thumb_func_end AllocSpritePalette + + thumb_func_start IndexOfSpritePaletteTag +IndexOfSpritePaletteTag: @ 0x0800851C + push {lr} + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _0800853C + ldrb r1, [r0] + cmp r1, #0xf + bhi _0800854E + ldr r3, _08008540 +_0800852C: + lsls r0, r1, #1 + adds r0, r0, r3 + ldrh r0, [r0] + cmp r0, r2 + bne _08008544 + adds r0, r1, #0 + b _08008550 + .align 2, 0 +_0800853C: .4byte 0x030030BC +_08008540: .4byte 0x03000CF0 +_08008544: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xf + bls _0800852C +_0800854E: + movs r0, #0xff +_08008550: + pop {r1} + bx r1 + thumb_func_end IndexOfSpritePaletteTag + + thumb_func_start GetSpritePaletteTagByPaletteNum +GetSpritePaletteTagByPaletteNum: @ 0x08008554 + lsls r0, r0, #0x18 + ldr r1, _08008560 + lsrs r0, r0, #0x17 + adds r0, r0, r1 + ldrh r0, [r0] + bx lr + .align 2, 0 +_08008560: .4byte 0x03000CF0 + thumb_func_end GetSpritePaletteTagByPaletteNum + + thumb_func_start FreeSpritePaletteByTag +FreeSpritePaletteByTag: @ 0x08008564 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xff + beq _08008580 + ldr r0, _08008584 + lsls r1, r1, #1 + adds r1, r1, r0 + ldr r0, _08008588 + strh r0, [r1] +_08008580: + pop {r0} + bx r0 + .align 2, 0 +_08008584: .4byte 0x03000CF0 +_08008588: .4byte 0x0000FFFF + thumb_func_end FreeSpritePaletteByTag + + thumb_func_start SetSubspriteTables +SetSubspriteTables: @ 0x0800858C + str r1, [r0, #0x18] + adds r0, #0x42 + movs r1, #0x40 + strb r1, [r0] + bx lr + .align 2, 0 + thumb_func_end SetSubspriteTables + + thumb_func_start AddSpriteToOamBuffer +AddSpriteToOamBuffer: @ 0x08008598 + push {r4, lr} + adds r4, r0, #0 + adds r3, r1, #0 + ldr r1, _080085AC + ldrb r0, [r3] + ldrb r1, [r1] + cmp r0, r1 + blo _080085B0 + movs r0, #1 + b _080085F8 + .align 2, 0 +_080085AC: .4byte 0x02021AB4 +_080085B0: + ldr r0, [r4, #0x18] + cmp r0, #0 + beq _080085C4 + adds r0, r4, #0 + adds r0, #0x42 + ldrb r1, [r0] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0 + bne _080085E4 +_080085C4: + ldr r0, _080085E0 + ldrb r2, [r3] + lsls r2, r2, #3 + adds r0, #0x38 + adds r2, r2, r0 + ldr r0, [r4] + ldr r1, [r4, #4] + str r0, [r2] + str r1, [r2, #4] + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + movs r0, #0 + b _080085F8 + .align 2, 0 +_080085E0: .4byte 0x03002360 +_080085E4: + ldrb r1, [r3] + lsls r1, r1, #3 + ldr r0, _08008600 + adds r1, r1, r0 + adds r0, r4, #0 + adds r2, r3, #0 + bl AddSubspritesToOamBuffer + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_080085F8: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08008600: .4byte 0x03002398 + thumb_func_end AddSpriteToOamBuffer + + thumb_func_start AddSubspritesToOamBuffer +AddSubspritesToOamBuffer: @ 0x08008604 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + adds r3, r0, #0 + str r1, [sp] + mov r8, r2 + ldr r0, _08008624 + ldrb r1, [r2] + ldrb r0, [r0] + cmp r1, r0 + blo _08008628 +_08008620: + movs r0, #1 + b _080087FE + .align 2, 0 +_08008624: .4byte 0x02021AB4 +_08008628: + adds r0, r3, #0 + adds r0, #0x42 + ldrb r1, [r0] + lsls r1, r1, #0x1a + lsrs r1, r1, #0x17 + ldr r2, [r3, #0x18] + adds r7, r2, r1 + mov ip, r3 + str r0, [sp, #0x18] + cmp r7, #0 + beq _08008644 + ldr r0, [r7, #4] + cmp r0, #0 + bne _0800865A +_08008644: + mov r2, ip + ldr r0, [r2] + ldr r1, [r2, #4] + ldr r2, [sp] + str r0, [r2] + str r1, [r2, #4] + mov r1, r8 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080087FC +_0800865A: + mov r2, ip + ldrh r0, [r2, #4] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + str r0, [sp, #4] + ldrb r0, [r7] + str r0, [sp, #0xc] + ldrb r0, [r2, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + asrs r1, r0, #3 + str r1, [sp, #0x10] + movs r1, #1 + ldr r2, [sp, #0x10] + ands r2, r1 + str r2, [sp, #0x10] + asrs r0, r0, #4 + mov sl, r0 + ands r0, r1 + mov sl, r0 + mov r1, ip + ldrh r0, [r1, #2] + lsls r0, r0, #0x17 + lsrs r0, r0, #0x17 + adds r1, #0x28 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + mov r1, ip + ldrb r0, [r1] + adds r1, #0x29 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #8] + movs r0, #0 + mov sb, r0 + ldr r1, [sp, #0xc] + cmp sb, r1 + blo _080086B8 + b _080087FC +_080086B8: + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + str r0, [sp, #0x14] +_080086BE: + mov r2, r8 + ldrb r0, [r2] + ldr r1, _08008810 + ldrb r1, [r1] + cmp r0, r1 + bhs _08008620 + ldr r0, [r7, #4] + mov r2, sb + lsls r6, r2, #2 + adds r2, r6, r0 + movs r0, #0 + ldrsb r0, [r2, r0] + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r0, #1 + ldrsb r0, [r2, r0] + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, [sp, #0x10] + cmp r0, #0 + beq _08008714 + ldr r0, [r2] + lsls r1, r0, #0xc + lsrs r1, r1, #0x1e + lsls r1, r1, #2 + lsls r0, r0, #0xe + lsrs r0, r0, #0x1e + lsls r0, r0, #4 + adds r1, r1, r0 + ldr r0, _08008814 + adds r1, r1, r0 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + mvns r0, r4 + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_08008714: + mov r1, sl + cmp r1, #0 + beq _08008746 + ldr r0, [r2] + lsls r1, r0, #0xc + lsrs r1, r1, #0x1e + lsls r1, r1, #2 + lsls r0, r0, #0xe + lsrs r0, r0, #0x1e + lsls r0, r0, #4 + adds r1, r1, r0 + ldr r2, _08008814 + adds r1, r1, r2 + ldrb r1, [r1, #1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + mvns r0, r5 + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_08008746: + mov r1, sb + lsls r0, r1, #3 + ldr r2, [sp] + adds r3, r0, r2 + mov r2, ip + ldr r0, [r2] + ldr r1, [r2, #4] + str r0, [r3] + str r1, [r3, #4] + ldr r0, [r7, #4] + adds r0, r6, r0 + ldr r1, [r0] + lsls r1, r1, #0xe + lsrs r1, r1, #0x1e + lsls r1, r1, #6 + ldrb r2, [r3, #1] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #1] + ldr r0, [r7, #4] + adds r0, r6, r0 + ldr r1, [r0] + lsls r1, r1, #0xc + lsrs r1, r1, #0x1e + lsls r1, r1, #6 + ldrb r2, [r3, #3] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #3] + lsls r1, r4, #0x10 + asrs r1, r1, #0x10 + ldr r0, [sp, #0x14] + adds r1, r0, r1 + ldr r2, _08008818 + adds r0, r2, #0 + ands r1, r0 + ldrh r2, [r3, #2] + ldr r0, _0800881C + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #2] + ldr r1, [sp, #8] + adds r0, r1, r5 + strb r0, [r3] + ldr r0, [r7, #4] + adds r0, r6, r0 + ldr r1, [r0] + lsls r1, r1, #2 + lsrs r1, r1, #0x16 + ldr r2, [sp, #4] + adds r1, r2, r1 + ldr r2, _08008820 + adds r0, r2, #0 + ands r1, r0 + ldrh r2, [r3, #4] + ldr r0, _08008824 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #4] + ldr r0, [sp, #0x18] + ldrb r1, [r0] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0x80 + beq _080087E2 + ldr r0, [r7, #4] + adds r0, r6, r0 + ldr r1, [r0] + lsrs r1, r1, #0x1e + lsls r1, r1, #2 + ldrb r2, [r3, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #5] +_080087E2: + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + mov r1, r8 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r2, [sp, #0xc] + cmp sb, r2 + bhs _080087FC + b _080086BE +_080087FC: + movs r0, #0 +_080087FE: + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08008810: .4byte 0x02021AB4 +_08008814: .4byte 0x082BF3BC +_08008818: .4byte 0x000001FF +_0800881C: .4byte 0xFFFFFE00 +_08008820: .4byte 0x000003FF +_08008824: .4byte 0xFFFFFC00 + thumb_func_end AddSubspritesToOamBuffer + diff --git a/asm/start_menu.s b/asm/start_menu.s new file mode 100644 index 0000000..6927aa7 --- /dev/null +++ b/asm/start_menu.s @@ -0,0 +1,2697 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start SetDexPokemonPokenavFlags +SetDexPokemonPokenavFlags: @ 0x0809ECF4 + push {lr} + ldr r0, _0809ED10 + bl FlagSet + movs r0, #0x86 + lsls r0, r0, #4 + bl FlagSet + ldr r0, _0809ED14 + bl FlagSet + pop {r0} + bx r0 + .align 2, 0 +_0809ED10: .4byte 0x00000861 +_0809ED14: .4byte 0x00000862 + thumb_func_end SetDexPokemonPokenavFlags + + thumb_func_start BuildStartMenuActions +BuildStartMenuActions: @ 0x0809ED18 + push {lr} + ldr r0, _0809ED30 + movs r1, #0 + strb r1, [r0] + bl IsUpdateLinkStateCBActive + cmp r0, #1 + bne _0809ED34 + bl BuildLinkModeStartMenu + b _0809ED84 + .align 2, 0 +_0809ED30: .4byte 0x020372AF +_0809ED34: + bl InUnionRoom + cmp r0, #1 + bne _0809ED42 + bl BuildUnionRoomStartMenu + b _0809ED84 +_0809ED42: + bl GetSafariZoneFlag + cmp r0, #1 + bne _0809ED50 + bl BuildSafariZoneStartMenu + b _0809ED84 +_0809ED50: + bl InBattlePike + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809ED60 + bl BuildBattlePikeStartMenu + b _0809ED84 +_0809ED60: + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809ED70 + bl BuildBattlePyramidStartMenu + b _0809ED84 +_0809ED70: + bl InMultiBattleRoom + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809ED80 + bl BuildMultiBattleRoomStartMenu + b _0809ED84 +_0809ED80: + bl BuildNormalStartMenu +_0809ED84: + pop {r0} + bx r0 + thumb_func_end BuildStartMenuActions + + thumb_func_start AddStartMenuAction +AddStartMenuAction: @ 0x0809ED88 + push {lr} + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r0, _0809ED9C + ldr r1, _0809EDA0 + bl AppendToList + pop {r0} + bx r0 + .align 2, 0 +_0809ED9C: .4byte 0x020372B0 +_0809EDA0: .4byte 0x020372AF + thumb_func_end AddStartMenuAction + + thumb_func_start BuildNormalStartMenu +BuildNormalStartMenu: @ 0x0809EDA4 + push {lr} + ldr r0, _0809EE08 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809EDBA + movs r0, #0 + bl AddStartMenuAction +_0809EDBA: + movs r0, #0x86 + lsls r0, r0, #4 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809EDD0 + movs r0, #1 + bl AddStartMenuAction +_0809EDD0: + movs r0, #2 + bl AddStartMenuAction + ldr r0, _0809EE0C + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809EDEA + movs r0, #3 + bl AddStartMenuAction +_0809EDEA: + movs r0, #4 + bl AddStartMenuAction + movs r0, #5 + bl AddStartMenuAction + movs r0, #6 + bl AddStartMenuAction + movs r0, #7 + bl AddStartMenuAction + pop {r0} + bx r0 + .align 2, 0 +_0809EE08: .4byte 0x00000861 +_0809EE0C: .4byte 0x00000862 + thumb_func_end BuildNormalStartMenu + + thumb_func_start BuildSafariZoneStartMenu +BuildSafariZoneStartMenu: @ 0x0809EE10 + push {lr} + movs r0, #8 + bl AddStartMenuAction + movs r0, #0 + bl AddStartMenuAction + movs r0, #1 + bl AddStartMenuAction + movs r0, #2 + bl AddStartMenuAction + movs r0, #4 + bl AddStartMenuAction + movs r0, #6 + bl AddStartMenuAction + movs r0, #7 + bl AddStartMenuAction + pop {r0} + bx r0 + thumb_func_end BuildSafariZoneStartMenu + + thumb_func_start BuildLinkModeStartMenu +BuildLinkModeStartMenu: @ 0x0809EE40 + push {lr} + movs r0, #1 + bl AddStartMenuAction + movs r0, #2 + bl AddStartMenuAction + ldr r0, _0809EE78 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809EE62 + movs r0, #3 + bl AddStartMenuAction +_0809EE62: + movs r0, #9 + bl AddStartMenuAction + movs r0, #6 + bl AddStartMenuAction + movs r0, #7 + bl AddStartMenuAction + pop {r0} + bx r0 + .align 2, 0 +_0809EE78: .4byte 0x00000862 + thumb_func_end BuildLinkModeStartMenu + + thumb_func_start BuildUnionRoomStartMenu +BuildUnionRoomStartMenu: @ 0x0809EE7C + push {lr} + movs r0, #1 + bl AddStartMenuAction + movs r0, #2 + bl AddStartMenuAction + ldr r0, _0809EEB4 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809EE9E + movs r0, #3 + bl AddStartMenuAction +_0809EE9E: + movs r0, #4 + bl AddStartMenuAction + movs r0, #6 + bl AddStartMenuAction + movs r0, #7 + bl AddStartMenuAction + pop {r0} + bx r0 + .align 2, 0 +_0809EEB4: .4byte 0x00000862 + thumb_func_end BuildUnionRoomStartMenu + + thumb_func_start BuildBattlePikeStartMenu +BuildBattlePikeStartMenu: @ 0x0809EEB8 + push {lr} + movs r0, #0 + bl AddStartMenuAction + movs r0, #1 + bl AddStartMenuAction + movs r0, #4 + bl AddStartMenuAction + movs r0, #6 + bl AddStartMenuAction + movs r0, #7 + bl AddStartMenuAction + pop {r0} + bx r0 + thumb_func_end BuildBattlePikeStartMenu + + thumb_func_start BuildBattlePyramidStartMenu +BuildBattlePyramidStartMenu: @ 0x0809EEDC + push {lr} + movs r0, #1 + bl AddStartMenuAction + movs r0, #0xc + bl AddStartMenuAction + movs r0, #4 + bl AddStartMenuAction + movs r0, #0xa + bl AddStartMenuAction + movs r0, #0xb + bl AddStartMenuAction + movs r0, #6 + bl AddStartMenuAction + movs r0, #7 + bl AddStartMenuAction + pop {r0} + bx r0 + thumb_func_end BuildBattlePyramidStartMenu + + thumb_func_start BuildMultiBattleRoomStartMenu +BuildMultiBattleRoomStartMenu: @ 0x0809EF0C + push {lr} + movs r0, #1 + bl AddStartMenuAction + movs r0, #4 + bl AddStartMenuAction + movs r0, #6 + bl AddStartMenuAction + movs r0, #7 + bl AddStartMenuAction + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end BuildMultiBattleRoomStartMenu + + thumb_func_start ShowSafariBallsWindow +ShowSafariBallsWindow: @ 0x0809EF2C + push {r4, r5, lr} + sub sp, #0xc + ldr r4, _0809EF88 + ldr r0, _0809EF8C + bl AddWindow + strb r0, [r4] + ldrb r0, [r4] + bl PutWindowTilemap + ldrb r0, [r4] + movs r1, #0 + bl ClearStdWindowAndFrame + ldr r0, _0809EF90 + ldr r1, _0809EF94 + ldrb r1, [r1] + movs r2, #1 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r5, _0809EF98 + ldr r1, _0809EF9C + adds r0, r5, #0 + bl StringExpandPlaceholders + ldrb r0, [r4] + movs r1, #2 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + adds r2, r5, #0 + movs r3, #0 + bl AddTextPrinterParameterized + ldrb r0, [r4] + movs r1, #2 + bl CopyWindowToVram + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0809EF88: .4byte 0x020372AC +_0809EF8C: .4byte 0x084E8B94 +_0809EF90: .4byte 0x02021C40 +_0809EF94: .4byte 0x02039D18 +_0809EF98: .4byte 0x02021C7C +_0809EF9C: .4byte 0x084E8B84 + thumb_func_end ShowSafariBallsWindow + + thumb_func_start ShowPyramidFloorWindow +ShowPyramidFloorWindow: @ 0x0809EFA0 + push {r4, r5, lr} + sub sp, #0xc + ldr r0, _0809EFB8 + ldr r0, [r0] + ldr r1, _0809EFBC + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #7 + bne _0809EFC8 + ldr r4, _0809EFC0 + ldr r0, _0809EFC4 + b _0809EFCC + .align 2, 0 +_0809EFB8: .4byte 0x03005AF0 +_0809EFBC: .4byte 0x00000CB2 +_0809EFC0: .4byte 0x020372AD +_0809EFC4: .4byte 0x084E8C24 +_0809EFC8: + ldr r4, _0809F02C + ldr r0, _0809F030 +_0809EFCC: + bl AddWindow + strb r0, [r4] + ldr r4, _0809F02C + ldrb r0, [r4] + bl PutWindowTilemap + ldrb r0, [r4] + movs r1, #0 + bl ClearStdWindowAndFrame + ldr r0, _0809F034 + ldr r2, _0809F038 + ldr r1, _0809F03C + ldr r1, [r1] + ldr r3, _0809F040 + adds r1, r1, r3 + ldrh r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl StringCopy + ldr r5, _0809F044 + ldr r1, _0809F048 + adds r0, r5, #0 + bl StringExpandPlaceholders + ldrb r0, [r4] + movs r1, #2 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + adds r2, r5, #0 + movs r3, #0 + bl AddTextPrinterParameterized + ldrb r0, [r4] + movs r1, #2 + bl CopyWindowToVram + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0809F02C: .4byte 0x020372AD +_0809F030: .4byte 0x084E8C1C +_0809F034: .4byte 0x02021C40 +_0809F038: .4byte 0x084E8BFC +_0809F03C: .4byte 0x03005AF0 +_0809F040: .4byte 0x00000CB2 +_0809F044: .4byte 0x02021C7C +_0809F048: .4byte 0x084E8B9C + thumb_func_end ShowPyramidFloorWindow + + thumb_func_start RemoveExtraStartMenuWindows +RemoveExtraStartMenuWindows: @ 0x0809F04C + push {r4, lr} + bl GetSafariZoneFlag + cmp r0, #0 + beq _0809F06E + ldr r4, _0809F090 + ldrb r0, [r4] + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + ldrb r0, [r4] + movs r1, #2 + bl CopyWindowToVram + ldrb r0, [r4] + bl RemoveWindow +_0809F06E: + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809F088 + ldr r4, _0809F094 + ldrb r0, [r4] + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + ldrb r0, [r4] + bl RemoveWindow +_0809F088: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809F090: .4byte 0x020372AC +_0809F094: .4byte 0x020372AD + thumb_func_end RemoveExtraStartMenuWindows + + thumb_func_start PrintStartMenuActions +PrintStartMenuActions: @ 0x0809F098 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + mov r8, r0 + adds r6, r1, #0 + ldrb r2, [r0] + ldr r0, _0809F0F0 + mov sb, r0 + ldr r1, _0809F0F4 + mov sl, r1 +_0809F0B2: + ldr r0, _0809F0F8 + lsls r2, r2, #0x18 + asrs r4, r2, #0x18 + adds r5, r4, r0 + ldrb r0, [r5] + lsls r3, r0, #3 + mov r0, sb + adds r0, #4 + adds r0, r3, r0 + ldr r1, [r0] + ldr r0, _0809F0FC + adds r7, r2, #0 + cmp r1, r0 + bne _0809F100 + bl GetStartMenuWindowId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r5] + lsls r1, r1, #3 + add r1, sb + ldr r1, [r1] + lsls r3, r4, #4 + adds r3, #0xa + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + movs r2, #8 + bl PrintPlayerNameOnWindow + b _0809F130 + .align 2, 0 +_0809F0F0: .4byte 0x084E8C2C +_0809F0F4: .4byte 0x02021C7C +_0809F0F8: .4byte 0x020372B0 +_0809F0FC: .4byte 0x0809F565 +_0809F100: + mov r1, sb + adds r0, r3, r1 + ldr r1, [r0] + mov r0, sl + bl StringExpandPlaceholders + bl GetStartMenuWindowId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r4, #4 + adds r1, #0xa + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + mov r2, sl + movs r3, #8 + bl AddTextPrinterParameterized +_0809F130: + movs r0, #0x80 + lsls r0, r0, #0x11 + adds r1, r7, r0 + lsrs r2, r1, #0x18 + asrs r1, r1, #0x18 + ldr r0, _0809F150 + ldrb r0, [r0] + cmp r1, r0 + bge _0809F154 + subs r6, #1 + cmp r6, #0 + bne _0809F0B2 + mov r1, r8 + strb r2, [r1] + movs r0, #0 + b _0809F15A + .align 2, 0 +_0809F150: .4byte 0x020372AF +_0809F154: + mov r0, r8 + strb r2, [r0] + movs r0, #1 +_0809F15A: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end PrintStartMenuActions + + thumb_func_start InitStartMenuStep +InitStartMenuStep: @ 0x0809F16C + push {r4, lr} + sub sp, #0xc + ldr r0, _0809F188 + movs r1, #0 + ldrsb r1, [r0, r1] + adds r2, r0, #0 + cmp r1, #5 + bhi _0809F264 + lsls r0, r1, #2 + ldr r1, _0809F18C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809F188: .4byte 0x020372B9 +_0809F18C: .4byte 0x0809F190 +_0809F190: @ jump table + .4byte _0809F1A8 @ case 0 + .4byte _0809F1B0 @ case 1 + .4byte _0809F1BC @ case 2 + .4byte _0809F1E4 @ case 3 + .4byte _0809F208 @ case 4 + .4byte _0809F224 @ case 5 +_0809F1A8: + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + b _0809F264 +_0809F1B0: + bl BuildStartMenuActions + ldr r1, _0809F1B8 + b _0809F218 + .align 2, 0 +_0809F1B8: .4byte 0x020372B9 +_0809F1BC: + bl sub_08196F98 + ldr r0, _0809F1DC + ldrb r0, [r0] + bl sub_081977C8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl ClearStdWindowAndFrame + ldr r1, _0809F1E0 + movs r0, #0 + strb r0, [r1, #1] + b _0809F218 + .align 2, 0 +_0809F1DC: .4byte 0x020372AF +_0809F1E0: .4byte 0x020372B9 +_0809F1E4: + bl GetSafariZoneFlag + cmp r0, #0 + beq _0809F1F0 + bl ShowSafariBallsWindow +_0809F1F0: + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809F1FE + bl ShowPyramidFloorWindow +_0809F1FE: + ldr r1, _0809F204 + b _0809F218 + .align 2, 0 +_0809F204: .4byte 0x020372B9 +_0809F208: + ldr r4, _0809F220 + adds r0, r4, #0 + movs r1, #2 + bl PrintStartMenuActions + cmp r0, #0 + beq _0809F264 + subs r1, r4, #1 +_0809F218: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0809F264 + .align 2, 0 +_0809F220: .4byte 0x020372BA +_0809F224: + bl GetStartMenuWindowId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x10 + str r1, [sp] + ldr r1, _0809F25C + ldrb r1, [r1] + str r1, [sp, #4] + ldr r4, _0809F260 + ldrb r1, [r4] + str r1, [sp, #8] + movs r1, #1 + movs r2, #0 + movs r3, #0xa + bl sub_081984B0 + strb r0, [r4] + bl GetStartMenuWindowId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + bl CopyWindowToVram + movs r0, #1 + b _0809F266 + .align 2, 0 +_0809F25C: .4byte 0x020372AF +_0809F260: .4byte 0x020372AE +_0809F264: + movs r0, #0 +_0809F266: + add sp, #0xc + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end InitStartMenuStep + + thumb_func_start InitStartMenu +InitStartMenu: @ 0x0809F270 + push {lr} + ldr r1, _0809F288 + movs r0, #0 + strb r0, [r1] + strb r0, [r1, #1] +_0809F27A: + bl InitStartMenuStep + cmp r0, #0 + beq _0809F27A + pop {r0} + bx r0 + .align 2, 0 +_0809F288: .4byte 0x020372B9 + thumb_func_end InitStartMenu + + thumb_func_start StartMenuTask +StartMenuTask: @ 0x0809F28C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl InitStartMenuStep + cmp r0, #1 + bne _0809F2A0 + adds r0, r4, #0 + bl SwitchTaskToFollowupFunc +_0809F2A0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end StartMenuTask + + thumb_func_start CreateStartMenuTask +CreateStartMenuTask: @ 0x0809F2A8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r1, _0809F2D0 + movs r0, #0 + strb r0, [r1] + strb r0, [r1, #1] + ldr r4, _0809F2D4 + adds r0, r4, #0 + movs r1, #0x50 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r4, #0 + adds r2, r5, #0 + bl SetTaskFuncWithFollowupFunc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0809F2D0: .4byte 0x020372B9 +_0809F2D4: .4byte 0x0809F28D + thumb_func_end CreateStartMenuTask + + thumb_func_start sub_0809F2D8 +sub_0809F2D8: @ 0x0809F2D8 + push {lr} + bl InitStartMenuStep + cmp r0, #0 + beq _0809F2EA + bl sub_080AEF84 + movs r0, #1 + b _0809F2EC +_0809F2EA: + movs r0, #0 +_0809F2EC: + pop {r1} + bx r1 + thumb_func_end sub_0809F2D8 + + thumb_func_start sub_0809F2F0 +sub_0809F2F0: @ 0x0809F2F0 + ldr r1, _0809F300 + movs r0, #0 + strb r0, [r1] + strb r0, [r1, #1] + ldr r1, _0809F304 + ldr r0, _0809F308 + str r0, [r1] + bx lr + .align 2, 0 +_0809F300: .4byte 0x020372B9 +_0809F304: .4byte 0x03005B10 +_0809F308: .4byte 0x0809F2D9 + thumb_func_end sub_0809F2F0 + + thumb_func_start sub_0809F30C +sub_0809F30C: @ 0x0809F30C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _0809F32C + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0809F330 + cmp r0, #1 + beq _0809F354 + b _0809F36A + .align 2, 0 +_0809F32C: .4byte 0x03005B60 +_0809F330: + bl InUnionRoom + cmp r0, #1 + bne _0809F33C + bl var_800D_set_xB +_0809F33C: + ldr r1, _0809F34C + ldr r0, _0809F350 + str r0, [r1] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _0809F36A + .align 2, 0 +_0809F34C: .4byte 0x03005B54 +_0809F350: .4byte 0x0809F39D +_0809F354: + ldr r0, _0809F370 + ldr r0, [r0] + bl _call_via_r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0809F36A + adds r0, r5, #0 + bl DestroyTask +_0809F36A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0809F370: .4byte 0x03005B54 + thumb_func_end sub_0809F30C + + thumb_func_start ShowStartMenu +ShowStartMenu: @ 0x0809F374 + push {lr} + bl IsUpdateLinkStateCBActive + cmp r0, #0 + bne _0809F38A + bl FreezeEventObjects + bl sub_0808B1C8 + bl sub_0808B658 +_0809F38A: + ldr r0, _0809F398 + bl CreateStartMenuTask + bl ScriptContext2_Enable + pop {r0} + bx r0 + .align 2, 0 +_0809F398: .4byte 0x0809F30D + thumb_func_end ShowStartMenu + + thumb_func_start HandleStartMenuInput +HandleStartMenuInput: @ 0x0809F39C + push {r4, lr} + ldr r4, _0809F448 + ldrh r1, [r4, #0x2e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0809F3BC + movs r0, #5 + bl PlaySE + movs r0, #1 + rsbs r0, r0, #0 + bl Menu_MoveCursor + ldr r1, _0809F44C + strb r0, [r1] +_0809F3BC: + ldrh r1, [r4, #0x2e] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809F3D6 + movs r0, #5 + bl PlaySE + movs r0, #1 + bl Menu_MoveCursor + ldr r1, _0809F44C + strb r0, [r1] +_0809F3D6: + ldrh r1, [r4, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0809F470 + movs r0, #5 + bl PlaySE + ldr r1, _0809F450 + ldr r2, _0809F454 + ldr r0, _0809F44C + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #3 + adds r1, #4 + adds r0, r0, r1 + ldr r1, [r0] + ldr r0, _0809F458 + cmp r1, r0 + bne _0809F40C + movs r0, #0 + bl GetNationalPokedexCount + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0809F478 +_0809F40C: + ldr r3, _0809F45C + ldr r1, _0809F450 + ldr r2, _0809F454 + ldr r0, _0809F44C + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #3 + adds r1, #4 + adds r0, r0, r1 + ldr r1, [r0] + str r1, [r3] + ldr r0, _0809F460 + cmp r1, r0 + beq _0809F478 + ldr r0, _0809F464 + cmp r1, r0 + beq _0809F478 + ldr r0, _0809F468 + cmp r1, r0 + beq _0809F478 + ldr r0, _0809F46C + cmp r1, r0 + beq _0809F478 + movs r0, #1 + movs r1, #0 + bl FadeScreen + b _0809F478 + .align 2, 0 +_0809F448: .4byte 0x03002360 +_0809F44C: .4byte 0x020372AE +_0809F450: .4byte 0x084E8C2C +_0809F454: .4byte 0x020372B0 +_0809F458: .4byte 0x0809F48D +_0809F45C: .4byte 0x03005B54 +_0809F460: .4byte 0x0809F5D5 +_0809F464: .4byte 0x0809F63D +_0809F468: .4byte 0x0809F64D +_0809F46C: .4byte 0x0809F699 +_0809F470: + movs r0, #0xa + ands r0, r1 + cmp r0, #0 + bne _0809F47C +_0809F478: + movs r0, #0 + b _0809F486 +_0809F47C: + bl RemoveExtraStartMenuWindows + bl HideStartMenu + movs r0, #1 +_0809F486: + pop {r4} + pop {r1} + bx r1 + thumb_func_end HandleStartMenuInput + + thumb_func_start StartMenuPokedexCallback +StartMenuPokedexCallback: @ 0x0809F48C + push {lr} + ldr r0, _0809F4A0 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809F4A4 + movs r0, #0 + b _0809F4BE + .align 2, 0 +_0809F4A0: .4byte 0x02037C74 +_0809F4A4: + movs r0, #0x29 + bl IncrementGameStat + bl PlayRainStoppingSoundEffect + bl RemoveExtraStartMenuWindows + bl CleanupOverworldWindowsAndTilemaps + ldr r0, _0809F4C4 + bl SetMainCallback2 + movs r0, #1 +_0809F4BE: + pop {r1} + bx r1 + .align 2, 0 +_0809F4C4: .4byte 0x080BAC71 + thumb_func_end StartMenuPokedexCallback + + thumb_func_start StartMenuPokemonCallback +StartMenuPokemonCallback: @ 0x0809F4C8 + push {lr} + ldr r0, _0809F4DC + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809F4E0 + movs r0, #0 + b _0809F4F4 + .align 2, 0 +_0809F4DC: .4byte 0x02037C74 +_0809F4E0: + bl PlayRainStoppingSoundEffect + bl RemoveExtraStartMenuWindows + bl CleanupOverworldWindowsAndTilemaps + ldr r0, _0809F4F8 + bl SetMainCallback2 + movs r0, #1 +_0809F4F4: + pop {r1} + bx r1 + .align 2, 0 +_0809F4F8: .4byte 0x081B7BD5 + thumb_func_end StartMenuPokemonCallback + + thumb_func_start StartMenuBagCallback +StartMenuBagCallback: @ 0x0809F4FC + push {lr} + ldr r0, _0809F510 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809F514 + movs r0, #0 + b _0809F528 + .align 2, 0 +_0809F510: .4byte 0x02037C74 +_0809F514: + bl PlayRainStoppingSoundEffect + bl RemoveExtraStartMenuWindows + bl CleanupOverworldWindowsAndTilemaps + ldr r0, _0809F52C + bl SetMainCallback2 + movs r0, #1 +_0809F528: + pop {r1} + bx r1 + .align 2, 0 +_0809F52C: .4byte 0x081AA915 + thumb_func_end StartMenuBagCallback + + thumb_func_start StartMenuPokeNavCallback +StartMenuPokeNavCallback: @ 0x0809F530 + push {lr} + ldr r0, _0809F544 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809F548 + movs r0, #0 + b _0809F55C + .align 2, 0 +_0809F544: .4byte 0x02037C74 +_0809F548: + bl PlayRainStoppingSoundEffect + bl RemoveExtraStartMenuWindows + bl CleanupOverworldWindowsAndTilemaps + ldr r0, _0809F560 + bl SetMainCallback2 + movs r0, #1 +_0809F55C: + pop {r1} + bx r1 + .align 2, 0 +_0809F560: .4byte 0x081C6A11 + thumb_func_end StartMenuPokeNavCallback + + thumb_func_start StartMenuPlayerNameCallback +StartMenuPlayerNameCallback: @ 0x0809F564 + push {lr} + ldr r0, _0809F598 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0809F5CC + bl PlayRainStoppingSoundEffect + bl RemoveExtraStartMenuWindows + bl CleanupOverworldWindowsAndTilemaps + bl IsUpdateLinkStateCBActive + cmp r0, #0 + bne _0809F58E + bl InUnionRoom + cmp r0, #0 + beq _0809F5A0 +_0809F58E: + ldr r0, _0809F59C + bl ShowPlayerTrainerCard + b _0809F5C2 + .align 2, 0 +_0809F598: .4byte 0x02037C74 +_0809F59C: .4byte 0x08085AFD +_0809F5A0: + ldr r0, _0809F5B4 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809F5BC + ldr r0, _0809F5B8 + bl ShowFrontierPass + b _0809F5C2 + .align 2, 0 +_0809F5B4: .4byte 0x000008D2 +_0809F5B8: .4byte 0x08085AFD +_0809F5BC: + ldr r0, _0809F5C8 + bl ShowPlayerTrainerCard +_0809F5C2: + movs r0, #1 + b _0809F5CE + .align 2, 0 +_0809F5C8: .4byte 0x08085AFD +_0809F5CC: + movs r0, #0 +_0809F5CE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end StartMenuPlayerNameCallback + + thumb_func_start StartMenuSaveCallback +StartMenuSaveCallback: @ 0x0809F5D4 + push {lr} + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809F5E4 + bl RemoveExtraStartMenuWindows +_0809F5E4: + ldr r1, _0809F5F0 + ldr r0, _0809F5F4 + str r0, [r1] + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0809F5F0: .4byte 0x03005B54 +_0809F5F4: .4byte 0x0809F701 + thumb_func_end StartMenuSaveCallback + + thumb_func_start StartMenuOptionCallback +StartMenuOptionCallback: @ 0x0809F5F8 + push {lr} + ldr r0, _0809F60C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809F610 + movs r0, #0 + b _0809F62A + .align 2, 0 +_0809F60C: .4byte 0x02037C74 +_0809F610: + bl PlayRainStoppingSoundEffect + bl RemoveExtraStartMenuWindows + bl CleanupOverworldWindowsAndTilemaps + ldr r0, _0809F630 + bl SetMainCallback2 + ldr r1, _0809F634 + ldr r0, _0809F638 + str r0, [r1, #8] + movs r0, #1 +_0809F62A: + pop {r1} + bx r1 + .align 2, 0 +_0809F630: .4byte 0x080B9C35 +_0809F634: .4byte 0x03002360 +_0809F638: .4byte 0x08085AFD + thumb_func_end StartMenuOptionCallback + + thumb_func_start StartMenuExitCallback +StartMenuExitCallback: @ 0x0809F63C + push {lr} + bl RemoveExtraStartMenuWindows + bl HideStartMenu + movs r0, #1 + pop {r1} + bx r1 + thumb_func_end StartMenuExitCallback + + thumb_func_start StartMenuSafariZoneRetireCallback +StartMenuSafariZoneRetireCallback: @ 0x0809F64C + push {lr} + bl RemoveExtraStartMenuWindows + bl HideStartMenu + bl SetSafariZoneFlag + movs r0, #1 + pop {r1} + bx r1 + thumb_func_end StartMenuSafariZoneRetireCallback + + thumb_func_start StartMenuLinkModePlayerNameCallback +StartMenuLinkModePlayerNameCallback: @ 0x0809F660 + push {lr} + ldr r0, _0809F674 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809F678 + movs r0, #0 + b _0809F68C + .align 2, 0 +_0809F674: .4byte 0x02037C74 +_0809F678: + bl PlayRainStoppingSoundEffect + bl CleanupOverworldWindowsAndTilemaps + ldr r0, _0809F690 + ldrb r0, [r0] + ldr r1, _0809F694 + bl ShowTrainerCardInLink + movs r0, #1 +_0809F68C: + pop {r1} + bx r1 + .align 2, 0 +_0809F690: .4byte 0x03005B14 +_0809F694: .4byte 0x08085AFD + thumb_func_end StartMenuLinkModePlayerNameCallback + + thumb_func_start StartMenuBattlePyramidRetireCallback +StartMenuBattlePyramidRetireCallback: @ 0x0809F698 + ldr r1, _0809F6A4 + ldr r0, _0809F6A8 + str r0, [r1] + movs r0, #0 + bx lr + .align 2, 0 +_0809F6A4: .4byte 0x03005B54 +_0809F6A8: .4byte 0x0809F775 + thumb_func_end StartMenuBattlePyramidRetireCallback + + thumb_func_start sub_0809F6AC +sub_0809F6AC: @ 0x0809F6AC + push {lr} + movs r0, #0 + movs r1, #0 + bl ClearDialogWindowAndFrameToTransparent + bl ScriptUnfreezeEventObjects + ldr r0, _0809F6C8 + bl CreateStartMenuTask + bl ScriptContext2_Enable + pop {r0} + bx r0 + .align 2, 0 +_0809F6C8: .4byte 0x0809F30D + thumb_func_end sub_0809F6AC + + thumb_func_start StartMenuBattlePyramidBagCallback +StartMenuBattlePyramidBagCallback: @ 0x0809F6CC + push {lr} + ldr r0, _0809F6E0 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809F6E4 + movs r0, #0 + b _0809F6F8 + .align 2, 0 +_0809F6E0: .4byte 0x02037C74 +_0809F6E4: + bl PlayRainStoppingSoundEffect + bl RemoveExtraStartMenuWindows + bl CleanupOverworldWindowsAndTilemaps + ldr r0, _0809F6FC + bl SetMainCallback2 + movs r0, #1 +_0809F6F8: + pop {r1} + bx r1 + .align 2, 0 +_0809F6FC: .4byte 0x081C4705 + thumb_func_end StartMenuBattlePyramidBagCallback + + thumb_func_start SaveStartCallback +SaveStartCallback: @ 0x0809F700 + push {lr} + bl InitSave + ldr r1, _0809F714 + ldr r0, _0809F718 + str r0, [r1] + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0809F714: .4byte 0x03005B54 +_0809F718: .4byte 0x0809F71D + thumb_func_end SaveStartCallback + + thumb_func_start SaveCallback +SaveCallback: @ 0x0809F71C + push {lr} + bl RunSaveCallback + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0809F754 + cmp r0, #1 + ble _0809F76C + cmp r0, #2 + beq _0809F738 + cmp r0, #3 + beq _0809F754 + b _0809F76C +_0809F738: + movs r0, #0 + movs r1, #0 + bl ClearDialogWindowAndFrameToTransparent + bl InitStartMenu + ldr r1, _0809F74C + ldr r0, _0809F750 + str r0, [r1] + b _0809F76C + .align 2, 0 +_0809F74C: .4byte 0x03005B54 +_0809F750: .4byte 0x0809F39D +_0809F754: + movs r0, #0 + movs r1, #1 + bl ClearDialogWindowAndFrameToTransparent + bl ScriptUnfreezeEventObjects + bl ScriptContext2_Disable + bl SoftResetInBattlePyramid + movs r0, #1 + b _0809F76E +_0809F76C: + movs r0, #0 +_0809F76E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SaveCallback + + thumb_func_start BattlePyramidRetireStartCallback +BattlePyramidRetireStartCallback: @ 0x0809F774 + push {lr} + bl InitBattlePyramidRetire + ldr r1, _0809F788 + ldr r0, _0809F78C + str r0, [r1] + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0809F788: .4byte 0x03005B54 +_0809F78C: .4byte 0x0809F7AD + thumb_func_end BattlePyramidRetireStartCallback + + thumb_func_start BattlePyramidRetireReturnCallback +BattlePyramidRetireReturnCallback: @ 0x0809F790 + push {lr} + bl InitStartMenu + ldr r1, _0809F7A4 + ldr r0, _0809F7A8 + str r0, [r1] + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0809F7A4: .4byte 0x03005B54 +_0809F7A8: .4byte 0x0809F39D + thumb_func_end BattlePyramidRetireReturnCallback + + thumb_func_start BattlePyramidRetireCallback +BattlePyramidRetireCallback: @ 0x0809F7AC + push {lr} + bl RunSaveCallback + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0809F7C4 + cmp r0, #1 + ble _0809F7F8 + cmp r0, #2 + beq _0809F7D8 + b _0809F7F8 +_0809F7C4: + bl RemoveExtraStartMenuWindows + ldr r1, _0809F7D0 + ldr r0, _0809F7D4 + str r0, [r1] + b _0809F7F8 + .align 2, 0 +_0809F7D0: .4byte 0x03005B54 +_0809F7D4: .4byte 0x0809F791 +_0809F7D8: + movs r0, #0 + movs r1, #1 + bl ClearDialogWindowAndFrameToTransparent + bl ScriptUnfreezeEventObjects + bl ScriptContext2_Disable + ldr r0, _0809F7F4 + bl ScriptContext1_SetupScript + movs r0, #1 + b _0809F7FA + .align 2, 0 +_0809F7F4: .4byte 0x0822D751 +_0809F7F8: + movs r0, #0 +_0809F7FA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end BattlePyramidRetireCallback + + thumb_func_start InitSave +InitSave: @ 0x0809F800 + push {lr} + bl save_serialize_map + ldr r1, _0809F818 + ldr r0, _0809F81C + str r0, [r1] + ldr r1, _0809F820 + movs r0, #0 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0809F818: .4byte 0x020372BC +_0809F81C: .4byte 0x0809F979 +_0809F820: .4byte 0x020372C1 + thumb_func_end InitSave + + thumb_func_start RunSaveCallback +RunSaveCallback: @ 0x0809F824 + push {lr} + bl RunTextPrintersAndIsPrinter0Active + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + beq _0809F850 + ldr r1, _0809F848 + movs r0, #0 + strb r0, [r1] + ldr r0, _0809F84C + ldr r0, [r0] + bl _call_via_r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0809F852 + .align 2, 0 +_0809F848: .4byte 0x020372C1 +_0809F84C: .4byte 0x020372BC +_0809F850: + movs r0, #0 +_0809F852: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end RunSaveCallback + + thumb_func_start SaveGame +SaveGame: @ 0x0809F858 + push {lr} + bl InitSave + ldr r0, _0809F86C + movs r1, #0x50 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_0809F86C: .4byte 0x0809F8A9 + thumb_func_end SaveGame + + thumb_func_start ShowSaveMessage +ShowSaveMessage: @ 0x0809F870 + push {r4, lr} + adds r2, r0, #0 + adds r4, r1, #0 + ldr r0, _0809F89C + adds r1, r2, #0 + bl StringExpandPlaceholders + movs r0, #0 + movs r1, #1 + bl sub_08197650 + movs r0, #1 + bl AddTextPrinterForMessage_2 + ldr r1, _0809F8A0 + movs r0, #1 + strb r0, [r1] + ldr r0, _0809F8A4 + str r4, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809F89C: .4byte 0x02021C7C +_0809F8A0: .4byte 0x020372C1 +_0809F8A4: .4byte 0x020372BC + thumb_func_end ShowSaveMessage + + thumb_func_start SaveGameTask +SaveGameTask: @ 0x0809F8A8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl RunSaveCallback + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #1 + beq _0809F8D4 + cmp r1, #1 + bgt _0809F8C4 + cmp r1, #0 + beq _0809F8E2 + b _0809F8D8 +_0809F8C4: + cmp r1, #3 + bgt _0809F8D8 + ldr r1, _0809F8D0 + movs r0, #0 + strh r0, [r1] + b _0809F8D8 + .align 2, 0 +_0809F8D0: .4byte 0x02037290 +_0809F8D4: + ldr r0, _0809F8E8 + strh r1, [r0] +_0809F8D8: + adds r0, r4, #0 + bl DestroyTask + bl EnableBothScriptContexts +_0809F8E2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809F8E8: .4byte 0x02037290 + thumb_func_end SaveGameTask + + thumb_func_start sub_0809F8EC +sub_0809F8EC: @ 0x0809F8EC + push {lr} + movs r0, #0 + movs r1, #1 + bl DrawDialogueFrame + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0809F8EC + + thumb_func_start HideSaveInfoWindow +HideSaveInfoWindow: @ 0x0809F8FC + push {lr} + bl RemoveSaveInfoWindow + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end HideSaveInfoWindow + + thumb_func_start SaveStartTimer +SaveStartTimer: @ 0x0809F908 + ldr r1, _0809F910 + movs r0, #0x3c + strb r0, [r1] + bx lr + .align 2, 0 +_0809F910: .4byte 0x020372C0 + thumb_func_end SaveStartTimer + + thumb_func_start SaveSuccesTimer +SaveSuccesTimer: @ 0x0809F914 + push {lr} + ldr r1, _0809F934 + ldrb r0, [r1] + subs r2, r0, #1 + strb r2, [r1] + ldr r0, _0809F938 + ldrh r1, [r0, #0x2c] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0809F93C + lsls r0, r2, #0x18 + cmp r0, #0 + beq _0809F942 + movs r0, #0 + b _0809F944 + .align 2, 0 +_0809F934: .4byte 0x020372C0 +_0809F938: .4byte 0x03002360 +_0809F93C: + movs r0, #5 + bl PlaySE +_0809F942: + movs r0, #1 +_0809F944: + pop {r1} + bx r1 + thumb_func_end SaveSuccesTimer + + thumb_func_start SaveErrorTimer +SaveErrorTimer: @ 0x0809F948 + push {lr} + ldr r1, _0809F964 + ldrb r0, [r1] + cmp r0, #0 + bne _0809F96C + ldr r0, _0809F968 + ldrh r1, [r0, #0x2c] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0809F970 + movs r0, #1 + b _0809F972 + .align 2, 0 +_0809F964: .4byte 0x020372C0 +_0809F968: .4byte 0x03002360 +_0809F96C: + subs r0, #1 + strb r0, [r1] +_0809F970: + movs r0, #0 +_0809F972: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SaveErrorTimer + + thumb_func_start SaveConfirmSaveCallback +SaveConfirmSaveCallback: @ 0x0809F978 + push {lr} + bl GetStartMenuWindowId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl DrawStdWindowFrame + bl RemoveMapNamePopUpWindow + bl ShowSaveInfoWindow + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809F9AC + ldr r0, _0809F9A4 + ldr r1, _0809F9A8 + bl ShowSaveMessage + b _0809F9B4 + .align 2, 0 +_0809F9A4: .4byte 0x0822D762 +_0809F9A8: .4byte 0x0809F9C5 +_0809F9AC: + ldr r0, _0809F9BC + ldr r1, _0809F9C0 + bl ShowSaveMessage +_0809F9B4: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0809F9BC: .4byte 0x08276F58 +_0809F9C0: .4byte 0x0809F9C5 + thumb_func_end SaveConfirmSaveCallback + + thumb_func_start SaveConfirmOverwriteCallback +SaveConfirmOverwriteCallback: @ 0x0809F9C4 + push {lr} + bl DisplayYesNoMenuDefaultYes + ldr r1, _0809F9D8 + ldr r0, _0809F9DC + str r0, [r1] + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0809F9D8: .4byte 0x020372BC +_0809F9DC: .4byte 0x0809F9E1 + thumb_func_end SaveConfirmOverwriteCallback + + thumb_func_start SaveConfirmInputCallback +SaveConfirmInputCallback: @ 0x0809F9E0 + push {lr} + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _0809FA02 + cmp r1, #0 + bgt _0809F9FC + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0809FA40 + b _0809FA4C +_0809F9FC: + cmp r1, #1 + beq _0809FA40 + b _0809FA4C +_0809FA02: + ldr r0, _0809FA20 + ldrh r0, [r0] + cmp r0, #0 + beq _0809FA0E + cmp r0, #2 + bne _0809FA16 +_0809FA0E: + ldr r0, _0809FA24 + ldrb r0, [r0] + cmp r0, #0 + bne _0809FA30 +_0809FA16: + ldr r1, _0809FA28 + ldr r0, _0809FA2C + str r0, [r1] + b _0809FA4C + .align 2, 0 +_0809FA20: .4byte 0x03005F50 +_0809FA24: .4byte 0x02031F74 +_0809FA28: .4byte 0x020372BC +_0809FA2C: .4byte 0x0809FA55 +_0809FA30: + ldr r1, _0809FA38 + ldr r0, _0809FA3C + str r0, [r1] + b _0809FA4C + .align 2, 0 +_0809FA38: .4byte 0x020372BC +_0809FA3C: .4byte 0x0809FB0D +_0809FA40: + bl HideSaveInfoWindow + bl sub_0809F8EC + movs r0, #2 + b _0809FA4E +_0809FA4C: + movs r0, #0 +_0809FA4E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SaveConfirmInputCallback + + thumb_func_start SaveFileExistsCallback +SaveFileExistsCallback: @ 0x0809FA54 + push {lr} + ldr r0, _0809FA68 + ldrb r0, [r0] + cmp r0, #1 + bne _0809FA74 + ldr r0, _0809FA6C + ldr r1, _0809FA70 + bl ShowSaveMessage + b _0809FA7C + .align 2, 0 +_0809FA68: .4byte 0x02031F74 +_0809FA6C: .4byte 0x08276FD3 +_0809FA70: .4byte 0x0809FA8D +_0809FA74: + ldr r0, _0809FA84 + ldr r1, _0809FA88 + bl ShowSaveMessage +_0809FA7C: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0809FA84: .4byte 0x08276F77 +_0809FA88: .4byte 0x0809FAA9 + thumb_func_end SaveFileExistsCallback + + thumb_func_start BattlePyramidRetireYesNoCallback +BattlePyramidRetireYesNoCallback: @ 0x0809FA8C + push {lr} + movs r0, #1 + bl DisplayYesNoMenuWithDefault + ldr r1, _0809FAA0 + ldr r0, _0809FAA4 + str r0, [r1] + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0809FAA0: .4byte 0x020372BC +_0809FAA4: .4byte 0x0809FAC5 + thumb_func_end BattlePyramidRetireYesNoCallback + + thumb_func_start SaveYesNoCallback +SaveYesNoCallback: @ 0x0809FAA8 + push {lr} + bl DisplayYesNoMenuDefaultYes + ldr r1, _0809FABC + ldr r0, _0809FAC0 + str r0, [r1] + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0809FABC: .4byte 0x020372BC +_0809FAC0: .4byte 0x0809FAC5 + thumb_func_end SaveYesNoCallback + + thumb_func_start SaveOverwriteInputCallback +SaveOverwriteInputCallback: @ 0x0809FAC4 + push {lr} + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _0809FAE6 + cmp r1, #0 + bgt _0809FAE0 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0809FAF8 + b _0809FB04 +_0809FAE0: + cmp r1, #1 + beq _0809FAF8 + b _0809FB04 +_0809FAE6: + ldr r1, _0809FAF0 + ldr r0, _0809FAF4 + str r0, [r1] + b _0809FB04 + .align 2, 0 +_0809FAF0: .4byte 0x020372BC +_0809FAF4: .4byte 0x0809FB0D +_0809FAF8: + bl HideSaveInfoWindow + bl sub_0809F8EC + movs r0, #2 + b _0809FB06 +_0809FB04: + movs r0, #0 +_0809FB06: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SaveOverwriteInputCallback + + thumb_func_start SaveSavingMessageCallback +SaveSavingMessageCallback: @ 0x0809FB0C + push {lr} + ldr r0, _0809FB1C + ldr r1, _0809FB20 + bl ShowSaveMessage + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0809FB1C: .4byte 0x08276F97 +_0809FB20: .4byte 0x0809FB25 + thumb_func_end SaveSavingMessageCallback + + thumb_func_start SaveDoSaveCallback +SaveDoSaveCallback: @ 0x0809FB24 + push {r4, lr} + movs r0, #0 + bl IncrementGameStat + bl sub_081A9C08 + ldr r4, _0809FB48 + ldrb r0, [r4] + cmp r0, #1 + bne _0809FB4C + movs r0, #4 + bl TrySavingData + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r0, #0 + strb r0, [r4] + b _0809FB56 + .align 2, 0 +_0809FB48: .4byte 0x02031F74 +_0809FB4C: + movs r0, #0 + bl TrySavingData + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 +_0809FB56: + cmp r1, #1 + bne _0809FB6C + ldr r0, _0809FB64 + ldr r1, _0809FB68 + bl ShowSaveMessage + b _0809FB74 + .align 2, 0 +_0809FB64: .4byte 0x08276FBB +_0809FB68: .4byte 0x0809FB89 +_0809FB6C: + ldr r0, _0809FB80 + ldr r1, _0809FB84 + bl ShowSaveMessage +_0809FB74: + bl SaveStartTimer + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809FB80: .4byte 0x08277048 +_0809FB84: .4byte 0x0809FBD5 + thumb_func_end SaveDoSaveCallback + + thumb_func_start SaveSuccessCallback +SaveSuccessCallback: @ 0x0809FB88 + push {lr} + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0809FBA2 + movs r0, #0x37 + bl PlaySE + ldr r1, _0809FBA8 + ldr r0, _0809FBAC + str r0, [r1] +_0809FBA2: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0809FBA8: .4byte 0x020372BC +_0809FBAC: .4byte 0x0809FBB1 + thumb_func_end SaveSuccessCallback + + thumb_func_start SaveReturnSuccessCallback +SaveReturnSuccessCallback: @ 0x0809FBB0 + push {lr} + bl IsSEPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809FBCE + bl SaveSuccesTimer + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809FBCE + bl HideSaveInfoWindow + movs r0, #1 + b _0809FBD0 +_0809FBCE: + movs r0, #0 +_0809FBD0: + pop {r1} + bx r1 + thumb_func_end SaveReturnSuccessCallback + + thumb_func_start SaveErrorCallback +SaveErrorCallback: @ 0x0809FBD4 + push {lr} + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0809FBEE + movs r0, #0x16 + bl PlaySE + ldr r1, _0809FBF4 + ldr r0, _0809FBF8 + str r0, [r1] +_0809FBEE: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0809FBF4: .4byte 0x020372BC +_0809FBF8: .4byte 0x0809FBFD + thumb_func_end SaveErrorCallback + + thumb_func_start SaveReturnErrorCallback +SaveReturnErrorCallback: @ 0x0809FBFC + push {lr} + bl SaveErrorTimer + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809FC10 + bl HideSaveInfoWindow + movs r0, #3 + b _0809FC12 +_0809FC10: + movs r0, #0 +_0809FC12: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end SaveReturnErrorCallback + + thumb_func_start InitBattlePyramidRetire +InitBattlePyramidRetire: @ 0x0809FC18 + ldr r1, _0809FC28 + ldr r0, _0809FC2C + str r0, [r1] + ldr r1, _0809FC30 + movs r0, #0 + strb r0, [r1] + bx lr + .align 2, 0 +_0809FC28: .4byte 0x020372BC +_0809FC2C: .4byte 0x0809FC35 +_0809FC30: .4byte 0x020372C1 + thumb_func_end InitBattlePyramidRetire + + thumb_func_start BattlePyramidConfirmRetireCallback +BattlePyramidConfirmRetireCallback: @ 0x0809FC34 + push {lr} + bl GetStartMenuWindowId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl DrawStdWindowFrame + bl RemoveMapNamePopUpWindow + ldr r0, _0809FC58 + ldr r1, _0809FC5C + bl ShowSaveMessage + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0809FC58: .4byte 0x0822D78F +_0809FC5C: .4byte 0x0809FC61 + thumb_func_end BattlePyramidConfirmRetireCallback + + thumb_func_start SaveConfirmOverwriteDefaultNoCallback +SaveConfirmOverwriteDefaultNoCallback: @ 0x0809FC60 + push {lr} + movs r0, #1 + bl DisplayYesNoMenuWithDefault + ldr r1, _0809FC74 + ldr r0, _0809FC78 + str r0, [r1] + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_0809FC74: .4byte 0x020372BC +_0809FC78: .4byte 0x0809FC7D + thumb_func_end SaveConfirmOverwriteDefaultNoCallback + + thumb_func_start BattlePyramidRetireInputCallback +BattlePyramidRetireInputCallback: @ 0x0809FC7C + push {lr} + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _0809FC9E + cmp r1, #0 + bgt _0809FC98 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0809FCA2 + b _0809FCAA +_0809FC98: + cmp r1, #1 + beq _0809FCA2 + b _0809FCAA +_0809FC9E: + movs r0, #2 + b _0809FCAC +_0809FCA2: + bl sub_0809F8EC + movs r0, #1 + b _0809FCAC +_0809FCAA: + movs r0, #0 +_0809FCAC: + pop {r1} + bx r1 + thumb_func_end BattlePyramidRetireInputCallback + + thumb_func_start sub_0809FCB0 +sub_0809FCB0: @ 0x0809FCB0 + push {lr} + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0809FCB0 + + thumb_func_start sub_0809FCBC +sub_0809FCBC: @ 0x0809FCBC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + mov r8, r0 + ldrb r0, [r0] + cmp r0, #4 + bls _0809FCCE + b _0809FDD4 +_0809FCCE: + lsls r0, r0, #2 + ldr r1, _0809FCD8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809FCD8: .4byte 0x0809FCDC +_0809FCDC: @ jump table + .4byte _0809FCF0 @ case 0 + .4byte _0809FD68 @ case 1 + .4byte _0809FD7A @ case 2 + .4byte _0809FDAC @ case 3 + .4byte _0809FDD0 @ case 4 +_0809FCF0: + movs r0, #0 + movs r1, #0 + bl SetGpuReg + movs r0, #0 + bl SetVBlankCallback + bl ScanlineEffect_Stop + movs r2, #0xa0 + lsls r2, r2, #0x13 + mov r1, sp + movs r0, #0 + strh r0, [r1] + ldr r1, _0809FD5C + mov r0, sp + str r0, [r1] + str r2, [r1, #4] + ldr r0, _0809FD60 + str r0, [r1, #8] + ldr r0, [r1, #8] + movs r2, #0xc0 + lsls r2, r2, #0x13 + movs r3, #0xc0 + lsls r3, r3, #9 + mov r4, sp + movs r6, #0 + movs r5, #0x80 + lsls r5, r5, #5 + ldr r7, _0809FD64 + movs r0, #0x81 + lsls r0, r0, #0x18 + mov ip, r0 +_0809FD32: + strh r6, [r4] + mov r0, sp + str r0, [r1] + str r2, [r1, #4] + str r7, [r1, #8] + ldr r0, [r1, #8] + adds r2, r2, r5 + subs r3, r3, r5 + cmp r3, r5 + bhi _0809FD32 + strh r6, [r4] + mov r0, sp + str r0, [r1] + str r2, [r1, #4] + lsrs r0, r3, #1 + mov r2, ip + orrs r0, r2 + str r0, [r1, #8] + ldr r0, [r1, #8] + b _0809FDD4 + .align 2, 0 +_0809FD5C: .4byte 0x040000D4 +_0809FD60: .4byte 0x81000200 +_0809FD64: .4byte 0x81000800 +_0809FD68: + bl ResetSpriteData + bl ResetTasks + bl ResetPaletteFade + bl ScanlineEffect_Clear + b _0809FDD4 +_0809FD7A: + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _0809FDA4 + movs r0, #0 + movs r2, #1 + bl InitBgsFromTemplates + ldr r0, _0809FDA8 + bl InitWindows + movs r0, #0 + movs r1, #8 + movs r2, #0xe0 + bl LoadUserWindowBorderGfx_ + movs r0, #0xf0 + bl Menu_LoadStdPalAt + b _0809FDD4 + .align 2, 0 +_0809FDA4: .4byte 0x084E8C94 +_0809FDA8: .4byte 0x084E8C98 +_0809FDAC: + movs r0, #0 + bl ShowBg + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + ldr r0, _0809FDCC + bl SetVBlankCallback + movs r0, #1 + bl EnableInterrupts + b _0809FDD4 + .align 2, 0 +_0809FDCC: .4byte 0x0809FCB1 +_0809FDD0: + movs r0, #1 + b _0809FDDE +_0809FDD4: + mov r1, r8 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0 +_0809FDDE: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0809FCBC + + thumb_func_start sub_0809FDEC +sub_0809FDEC: @ 0x0809FDEC + push {lr} + ldr r0, _0809FE0C + bl sub_0809FCBC + cmp r0, #0 + beq _0809FE06 + ldr r0, _0809FE10 + movs r1, #0x50 + bl CreateTask + ldr r0, _0809FE14 + bl SetMainCallback2 +_0809FE06: + pop {r0} + bx r0 + .align 2, 0 +_0809FE0C: .4byte 0x03002798 +_0809FE10: .4byte 0x0809FE29 +_0809FE14: .4byte 0x0809FE19 + thumb_func_end sub_0809FDEC + + thumb_func_start sub_0809FE18 +sub_0809FE18: @ 0x0809FE18 + push {lr} + bl RunTasks + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0809FE18 + + thumb_func_start sub_0809FE28 +sub_0809FE28: @ 0x0809FE28 + push {r4, r5, r6, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _0809FE5C + adds r5, r0, r1 + ldr r0, _0809FE60 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809FE48 + b _0809FF80 +_0809FE48: + movs r1, #0 + ldrsh r0, [r5, r1] + cmp r0, #6 + bls _0809FE52 + b _0809FF80 +_0809FE52: + lsls r0, r0, #2 + ldr r1, _0809FE64 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809FE5C: .4byte 0x03005B68 +_0809FE60: .4byte 0x02037C74 +_0809FE64: .4byte 0x0809FE68 +_0809FE68: @ jump table + .4byte _0809FE84 @ case 0 + .4byte _0809FF08 @ case 1 + .4byte _0809FF14 @ case 2 + .4byte _0809FF34 @ case 3 + .4byte _0809FF48 @ case 4 + .4byte _0809FF60 @ case 5 + .4byte _0809FF70 @ case 6 +_0809FE84: + movs r0, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r2, _0809FEEC + movs r4, #0 + str r4, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r6, #1 + str r6, [sp, #8] + movs r0, #3 + str r0, [sp, #0xc] + movs r0, #0 + movs r1, #1 + movs r3, #0xff + bl AddTextPrinterParameterized2 + movs r0, #0 + movs r1, #8 + movs r2, #0xe + bl DrawTextBorderOuter + movs r0, #0 + bl PutWindowTilemap + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + movs r0, #1 + rsbs r0, r0, #0 + str r4, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r0, _0809FEF0 + ldrb r0, [r0] + cmp r0, #0 + beq _0809FEF8 + bl InUnionRoom + cmp r0, #0 + beq _0809FEF8 + bl sub_08009C40 + cmp r0, #0 + beq _0809FEF4 + strh r6, [r5] + b _0809FF80 + .align 2, 0 +_0809FEEC: .4byte 0x08277071 +_0809FEF0: .4byte 0x0300319C +_0809FEF4: + movs r0, #5 + b _0809FF7E +_0809FEF8: + ldr r0, _0809FF04 + movs r1, #1 + strb r1, [r0] + movs r0, #1 + b _0809FF7E + .align 2, 0 +_0809FF04: .4byte 0x030027A0 +_0809FF08: + bl SetContinueGameWarpStatusToDynamicWarp + bl FullSaveGame + movs r0, #2 + b _0809FF7E +_0809FF14: + bl CheckSaveFile + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809FF80 + bl ClearContinueGameWarpStatus + movs r0, #3 + strh r0, [r5] + ldr r1, _0809FF30 + movs r0, #0 + strb r0, [r1] + b _0809FF80 + .align 2, 0 +_0809FF30: .4byte 0x030027A0 +_0809FF34: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + movs r0, #4 + b _0809FF7E +_0809FF48: + bl FreeAllWindowBuffers + ldr r0, _0809FF5C + ldr r0, [r0, #8] + bl SetMainCallback2 + adds r0, r4, #0 + bl DestroyTask + b _0809FF80 + .align 2, 0 +_0809FF5C: .4byte 0x03002360 +_0809FF60: + ldr r0, _0809FF6C + movs r1, #5 + bl CreateTask + movs r0, #6 + b _0809FF7E + .align 2, 0 +_0809FF6C: .4byte 0x081535C5 +_0809FF70: + ldr r0, _0809FF88 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809FF80 + movs r0, #3 +_0809FF7E: + strh r0, [r5] +_0809FF80: + add sp, #0x10 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0809FF88: .4byte 0x081535C5 + thumb_func_end sub_0809FE28 + + thumb_func_start ShowSaveInfoWindow +ShowSaveInfoWindow: @ 0x0809FF8C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + ldr r0, _080A00F4 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [sp, #0xc] + str r1, [sp, #0x10] + ldr r0, _080A00F8 + mov sl, r0 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809FFC4 + add r0, sp, #0xc + ldrb r1, [r0, #4] + subs r1, #2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _080A00FC + ldr r0, [sp, #0x10] + ands r0, r2 + orrs r0, r1 + str r0, [sp, #0x10] +_0809FFC4: + ldr r6, _080A0100 + add r0, sp, #0xc + bl AddWindow + strb r0, [r6] + ldrb r0, [r6] + movs r1, #0 + bl ClearStdWindowAndFrame + ldr r1, _080A0104 + ldr r0, [r1] + ldrb r0, [r0, #8] + movs r1, #4 + mov sb, r1 + cmp r0, #0 + bne _0809FFE8 + movs r0, #8 + mov sb, r0 +_0809FFE8: + movs r4, #2 + ldr r5, _080A0108 + movs r0, #3 + adds r1, r5, #0 + movs r2, #6 + bl sub_08199FDC + ldrb r0, [r6] + str r4, [sp] + movs r7, #0xff + str r7, [sp, #4] + movs r1, #0 + mov r8, r1 + str r1, [sp, #8] + movs r1, #1 + adds r2, r5, #0 + movs r3, #0 + bl AddTextPrinterParameterized + movs r4, #0x10 + ldrb r0, [r6] + ldr r2, _080A010C + str r4, [sp] + str r7, [sp, #4] + mov r1, r8 + str r1, [sp, #8] + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + movs r0, #0 + adds r1, r5, #0 + mov r2, sb + bl sub_08199FDC + movs r0, #0xff + strb r0, [r5, #0xb] + ldrb r0, [r6] + adds r1, r5, #0 + movs r2, #0x48 + movs r3, #0x10 + bl PrintPlayerNameOnWindow + movs r4, #0x1e + ldrb r0, [r6] + ldr r2, _080A0110 + str r4, [sp] + str r7, [sp, #4] + mov r1, r8 + str r1, [sp, #8] + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + movs r0, #4 + adds r1, r5, #0 + mov r2, sb + bl sub_08199FDC + ldrb r0, [r6] + str r4, [sp] + str r7, [sp, #4] + mov r1, r8 + str r1, [sp, #8] + movs r1, #1 + adds r2, r5, #0 + movs r3, #0x48 + bl AddTextPrinterParameterized + movs r4, #0x2c + mov r0, sl + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080A00B6 + ldrb r0, [r6] + ldr r2, _080A0114 + str r4, [sp] + str r7, [sp, #4] + mov r1, r8 + str r1, [sp, #8] + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + movs r0, #1 + adds r1, r5, #0 + mov r2, sb + bl sub_08199FDC + ldrb r0, [r6] + str r4, [sp] + str r7, [sp, #4] + mov r1, r8 + str r1, [sp, #8] + movs r1, #1 + adds r2, r5, #0 + movs r3, #0x48 + bl AddTextPrinterParameterized + movs r4, #0x3a +_080A00B6: + ldrb r0, [r6] + ldr r2, _080A0118 + str r4, [sp] + str r7, [sp, #4] + mov r1, r8 + str r1, [sp, #8] + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + movs r0, #2 + adds r1, r5, #0 + mov r2, sb + bl sub_08199FDC + ldr r1, _080A0104 + ldr r0, [r1] + ldrh r0, [r0, #0xe] + cmp r0, #0x63 + bls _080A011C + ldrb r0, [r6] + str r4, [sp] + str r7, [sp, #4] + mov r1, r8 + str r1, [sp, #8] + movs r1, #1 + adds r2, r5, #0 + movs r3, #0x40 + bl AddTextPrinterParameterized + b _080A0130 + .align 2, 0 +_080A00F4: .4byte 0x084E8CA8 +_080A00F8: .4byte 0x00000861 +_080A00FC: .4byte 0xFFFFFF00 +_080A0100: .4byte 0x020372C2 +_080A0104: .4byte 0x03005AF0 +_080A0108: .4byte 0x02021C7C +_080A010C: .4byte 0x084E8CB0 +_080A0110: .4byte 0x084E8CB7 +_080A0114: .4byte 0x084E8CC0 +_080A0118: .4byte 0x084E8CC8 +_080A011C: + ldrb r0, [r6] + str r4, [sp] + str r7, [sp, #4] + mov r1, r8 + str r1, [sp, #8] + movs r1, #1 + adds r2, r5, #0 + movs r3, #0x48 + bl AddTextPrinterParameterized +_080A0130: + ldr r0, _080A014C + ldrb r0, [r0] + movs r1, #2 + bl CopyWindowToVram + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A014C: .4byte 0x020372C2 + thumb_func_end ShowSaveInfoWindow + + thumb_func_start RemoveSaveInfoWindow +RemoveSaveInfoWindow: @ 0x080A0150 + push {r4, lr} + ldr r4, _080A0168 + ldrb r0, [r4] + movs r1, #0 + bl DrawStdWindowFrame + ldrb r0, [r4] + bl RemoveWindow + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A0168: .4byte 0x020372C2 + thumb_func_end RemoveSaveInfoWindow + + thumb_func_start sub_080A016C +sub_080A016C: @ 0x080A016C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080A0190 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A0188 + adds r0, r4, #0 + bl DestroyTask + bl EnableBothScriptContexts +_080A0188: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A0190: .4byte 0x081535C5 + thumb_func_end sub_080A016C + + thumb_func_start sub_080A0194 +sub_080A0194: @ 0x080A0194 + push {r4, r5, lr} + ldr r0, _080A01D0 + movs r1, #5 + bl CreateTask + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r5, _080A01D4 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r1, #1 + strh r1, [r0, #0xc] + ldr r0, _080A01D8 + movs r1, #6 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r5 + strh r4, [r1, #0xa] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A01D0: .4byte 0x081535C5 +_080A01D4: .4byte 0x03005B60 +_080A01D8: .4byte 0x080A016D + thumb_func_end sub_080A0194 + + thumb_func_start HideStartMenuWindow +HideStartMenuWindow: @ 0x080A01DC + push {lr} + bl GetStartMenuWindowId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + bl DrawStdWindowFrame + bl RemoveMapNamePopUpWindow + bl ScriptUnfreezeEventObjects + bl ScriptContext2_Disable + pop {r0} + bx r0 + thumb_func_end HideStartMenuWindow + + thumb_func_start HideStartMenu +HideStartMenu: @ 0x080A01FC + push {lr} + movs r0, #5 + bl PlaySE + bl HideStartMenuWindow + pop {r0} + bx r0 + thumb_func_end HideStartMenu + + thumb_func_start AppendToList +AppendToList: @ 0x080A020C + ldrb r3, [r1] + adds r0, r0, r3 + strb r2, [r0] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + bx lr + .align 2, 0 + thumb_func_end AppendToList + diff --git a/asm/starter_choose.s b/asm/starter_choose.s new file mode 100644 index 0000000..67b58a1 --- /dev/null +++ b/asm/starter_choose.s @@ -0,0 +1,1132 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start GetStarterPokemon +GetStarterPokemon: @ 0x08133E94 + push {lr} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #3 + bls _08133EA0 + movs r1, #0 +_08133EA0: + ldr r0, _08133EAC + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + pop {r1} + bx r1 + .align 2, 0 +_08133EAC: .4byte 0x08590C08 + thumb_func_end GetStarterPokemon + + thumb_func_start VblankCB_StarterChoose +VblankCB_StarterChoose: @ 0x08133EB0 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end VblankCB_StarterChoose + + thumb_func_start CB2_ChooseStarter +CB2_ChooseStarter: @ 0x08133EC4 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + sub sp, #0xc + movs r0, #0 + bl SetVBlankCallback + movs r0, #0 + movs r1, #0 + bl SetGpuReg + movs r0, #0xe + movs r1, #0 + bl SetGpuReg + movs r0, #0xc + movs r1, #0 + bl SetGpuReg + movs r0, #0xa + movs r1, #0 + bl SetGpuReg + movs r0, #8 + movs r1, #0 + bl SetGpuReg + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + add r1, sp, #4 + movs r0, #0 + strh r0, [r1] + ldr r2, _08134138 + str r1, [r2] + movs r1, #0xc0 + lsls r1, r1, #0x13 + str r1, [r2, #4] + ldr r0, _0813413C + str r0, [r2, #8] + ldr r0, [r2, #8] + movs r0, #0 + mov sb, r0 + str r0, [sp, #8] + add r0, sp, #8 + str r0, [r2] + movs r0, #0xe0 + lsls r0, r0, #0x13 + str r0, [r2, #4] + ldr r0, _08134140 + str r0, [r2, #8] + ldr r0, [r2, #8] + add r0, sp, #4 + mov r3, sb + strh r3, [r0] + str r0, [r2] + movs r0, #0xa0 + lsls r0, r0, #0x13 + str r0, [r2, #4] + ldr r0, _08134144 + str r0, [r2, #8] + ldr r0, [r2, #8] + ldr r0, _08134148 + bl LZ77UnCompVram + ldr r0, _0813414C + ldr r1, _08134150 + bl LZ77UnCompVram + ldr r0, _08134154 + ldr r1, _08134158 + bl LZ77UnCompVram + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _0813415C + movs r0, #0 + movs r2, #3 + bl InitBgsFromTemplates + ldr r0, _08134160 + bl InitWindows + bl DeactivateAllTextPrinters + movs r1, #0xa6 + lsls r1, r1, #2 + movs r0, #0 + movs r2, #0xd0 + bl LoadUserWindowBorderGfx + bl clear_scheduled_bg_copies_to_vram + bl ScanlineEffect_Stop + bl ResetTasks + bl ResetSpriteData + bl ResetPaletteFade + bl FreeAllSpritePalettes + bl ResetAllPicSprites + bl GetOverworldTextboxPalettePtr + movs r1, #0xe0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _08134164 + movs r1, #0 + movs r2, #0x40 + bl LoadPalette + ldr r0, _08134168 + bl LoadCompressedSpriteSheet + ldr r0, _0813416C + bl LoadCompressedSpriteSheet + ldr r0, _08134170 + bl LoadSpritePalettes + movs r0, #1 + rsbs r0, r0, #0 + mov r1, sb + str r1, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + movs r0, #1 + bl EnableInterrupts + ldr r0, _08134174 + bl SetVBlankCallback + ldr r0, _08134178 + bl SetMainCallback2 + movs r0, #0x48 + movs r1, #0x3f + bl SetGpuReg + movs r0, #0x4a + movs r1, #0x1f + bl SetGpuReg + movs r0, #0x40 + movs r1, #0 + bl SetGpuReg + movs r0, #0x44 + movs r1, #0 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0xfe + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #7 + bl SetGpuReg + movs r1, #0xc1 + lsls r1, r1, #6 + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg + ldr r0, _0813417C + movs r1, #0 + bl CreateTask + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _08134180 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r3, #1 + mov sl, r3 + mov r1, sl + strh r1, [r0, #8] + ldr r0, _08134184 + movs r1, #0x78 + movs r2, #0x38 + movs r3, #2 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _08134188 + mov r8, r3 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + add r1, r8 + strh r4, [r1, #0x2e] + ldr r6, _0813418C + ldr r5, _08134190 + ldrb r1, [r5] + ldrb r2, [r5, #1] + adds r0, r6, #0 + movs r3, #2 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + add r1, r8 + strh r4, [r1, #0x2e] + mov r0, sb + strh r0, [r1, #0x30] + ldrb r1, [r5, #2] + ldrb r2, [r5, #3] + adds r0, r6, #0 + movs r3, #2 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + add r1, r8 + strh r4, [r1, #0x2e] + mov r3, sl + strh r3, [r1, #0x30] + ldrb r1, [r5, #4] + ldrb r2, [r5, #5] + adds r0, r6, #0 + movs r3, #2 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + add r1, r8 + strh r4, [r1, #0x2e] + movs r0, #2 + strh r0, [r1, #0x30] + ldr r1, _08134194 + movs r0, #0xff + strh r0, [r1] + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08134138: .4byte 0x040000D4 +_0813413C: .4byte 0x8100C000 +_08134140: .4byte 0x85000100 +_08134144: .4byte 0x81000200 +_08134148: .4byte 0x0858FC14 +_0813414C: .4byte 0x0858F890 +_08134150: .4byte 0x06003000 +_08134154: .4byte 0x0858FA1C +_08134158: .4byte 0x06003800 +_0813415C: .4byte 0x08590C10 +_08134160: .4byte 0x08590BDC +_08134164: .4byte 0x0858F810 +_08134168: .4byte 0x08590CE8 +_0813416C: .4byte 0x08590CF8 +_08134170: .4byte 0x08590D08 +_08134174: .4byte 0x08133EB1 +_08134178: .4byte 0x08134199 +_0813417C: .4byte 0x081341B5 +_08134180: .4byte 0x03005B60 +_08134184: .4byte 0x08590D20 +_08134188: .4byte 0x020205AC +_0813418C: .4byte 0x08590D38 +_08134190: .4byte 0x08590BFC +_08134194: .4byte 0x030011F8 + thumb_func_end CB2_ChooseStarter + + thumb_func_start MainCallback2_StarterChoose +MainCallback2_StarterChoose: @ 0x08134198 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl do_scheduled_bg_tilemap_copies_to_vram + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end MainCallback2_StarterChoose + + thumb_func_start Task_StarterChoose1 +Task_StarterChoose1: @ 0x081341B4 + push {r4, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08134208 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + adds r4, r4, r1 + ldrb r0, [r4, #8] + bl CreateStarterPokemonLabel + movs r2, #0xa6 + lsls r2, r2, #2 + movs r0, #0 + movs r1, #0 + movs r3, #0xd + bl DrawStdFrameWithCustomTileAndPalette + ldr r2, _0813420C + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + movs r0, #0 + bl PutWindowTilemap + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + ldr r0, _08134210 + str r0, [r4] + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08134208: .4byte 0x03005B60 +_0813420C: .4byte 0x085C9363 +_08134210: .4byte 0x08134215 + thumb_func_end Task_StarterChoose1 + + thumb_func_start Task_StarterChoose2 +Task_StarterChoose2: @ 0x08134214 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r2, _08134290 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r6, r0, r2 + ldrh r7, [r6, #8] + ldrb r4, [r6, #8] + ldr r1, _08134294 + ldrh r3, [r1, #0x2e] + movs r0, #1 + ands r0, r3 + cmp r0, #0 + beq _081342B0 + bl sub_0813464C + ldr r0, _08134298 + ldr r1, _0813429C + lsls r2, r4, #1 + adds r3, r2, r1 + ldrb r5, [r3] + adds r1, #1 + adds r2, r2, r1 + ldrb r4, [r2] + adds r1, r5, #0 + adds r2, r4, #0 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r6, #0xc] + ldrh r0, [r6, #8] + bl GetStarterPokemon + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r5, #0 + adds r2, r4, #0 + bl CreatePokemonFrontSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _081342A0 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r2, r4, #0 + adds r2, #0x10 + adds r2, r1, r2 + ldr r3, _081342A4 + str r3, [r2] + adds r4, #0x1c + adds r1, r1, r4 + ldr r2, _081342A8 + str r2, [r1] + strh r0, [r6, #0xa] + ldr r0, _081342AC + str r0, [r6] + b _081342EC + .align 2, 0 +_08134290: .4byte 0x03005B60 +_08134294: .4byte 0x03002360 +_08134298: .4byte 0x08590D50 +_0813429C: .4byte 0x08590BFC +_081342A0: .4byte 0x020205AC +_081342A4: .4byte 0x08590CE0 +_081342A8: .4byte 0x081347BD +_081342AC: .4byte 0x081342F9 +_081342B0: + movs r0, #0x20 + ands r0, r3 + cmp r0, #0 + beq _081342CC + cmp r4, #0 + beq _081342CC + subs r0, r7, #1 + strh r0, [r6, #8] + ldr r0, _081342C8 + str r0, [r6] + b _081342EC + .align 2, 0 +_081342C8: .4byte 0x08134689 +_081342CC: + ldrh r1, [r1, #0x2e] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _081342EC + cmp r4, #1 + bhi _081342EC + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrh r1, [r0, #8] + adds r1, #1 + strh r1, [r0, #8] + ldr r1, _081342F4 + str r1, [r0] +_081342EC: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081342F4: .4byte 0x08134689 + thumb_func_end Task_StarterChoose2 + + thumb_func_start Task_StarterChoose3 +Task_StarterChoose3: @ 0x081342F8 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _0813433C + ldr r2, _08134340 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r2, r1, r2 + movs r0, #0xc + ldrsh r1, [r2, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r3 + adds r0, r1, #0 + adds r0, #0x3f + ldrb r0, [r0] + lsls r0, r0, #0x1a + cmp r0, #0 + bge _08134336 + movs r3, #0x20 + ldrsh r0, [r1, r3] + cmp r0, #0x78 + bne _08134336 + movs r3, #0x22 + ldrsh r0, [r1, r3] + cmp r0, #0x40 + bne _08134336 + ldr r0, _08134344 + str r0, [r2] +_08134336: + pop {r0} + bx r0 + .align 2, 0 +_0813433C: .4byte 0x020205AC +_08134340: .4byte 0x03005B60 +_08134344: .4byte 0x08134349 + thumb_func_end Task_StarterChoose3 + + thumb_func_start Task_StarterChoose4 +Task_StarterChoose4: @ 0x08134348 + push {r4, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081343A8 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + adds r4, r4, r1 + ldrh r0, [r4, #8] + bl GetStarterPokemon + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0 + bl PlayCry1 + movs r0, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r2, _081343AC + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + ldr r0, _081343B0 + movs r2, #0xa6 + lsls r2, r2, #2 + movs r1, #1 + movs r3, #0xd + bl sub_08198D44 + ldr r0, _081343B4 + str r0, [r4] + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081343A8: .4byte 0x03005B60 +_081343AC: .4byte 0x085C9386 +_081343B0: .4byte 0x08590BEC +_081343B4: .4byte 0x081343B9 + thumb_func_end Task_StarterChoose4 + + thumb_func_start Task_StarterChoose5 +Task_StarterChoose5: @ 0x081343B8 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _081343DE + cmp r1, #0 + bgt _081343D8 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _08134408 + b _08134452 +_081343D8: + cmp r1, #1 + beq _08134408 + b _08134452 +_081343DE: + ldr r2, _081343FC + ldr r1, _08134400 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r0, [r0, #8] + strh r0, [r2] + bl ResetAllPicSprites + ldr r0, _08134404 + ldr r0, [r0, #8] + bl SetMainCallback2 + b _08134452 + .align 2, 0 +_081343FC: .4byte 0x02037290 +_08134400: .4byte 0x03005B60 +_08134404: .4byte 0x03002360 +_08134408: + movs r0, #5 + bl PlaySE + ldr r0, _08134458 + lsls r5, r4, #2 + adds r5, r5, r4 + lsls r5, r5, #3 + adds r5, r5, r0 + ldrb r4, [r5, #0xa] + ldr r6, _0813445C + lsls r0, r4, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r0, [r0, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + adds r0, r4, #0 + bl FreeAndDestroyMonPicSprite + ldrb r0, [r5, #0xc] + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + adds r4, r4, r6 + ldrb r0, [r4, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + adds r0, r4, #0 + bl DestroySprite + ldr r0, _08134460 + str r0, [r5] +_08134452: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08134458: .4byte 0x03005B60 +_0813445C: .4byte 0x020205AC +_08134460: .4byte 0x08134465 + thumb_func_end Task_StarterChoose5 + + thumb_func_start Task_StarterChoose6 +Task_StarterChoose6: @ 0x08134464 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08134478 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r0, _0813447C + str r0, [r1] + bx lr + .align 2, 0 +_08134478: .4byte 0x03005B60 +_0813447C: .4byte 0x081341B5 + thumb_func_end Task_StarterChoose6 + + thumb_func_start CreateStarterPokemonLabel +CreateStarterPokemonLabel: @ 0x08134480 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x30 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r0, r6, #0 + bl GetStarterPokemon + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + adds r0, r7, #0 + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl sub_080BFB68 + adds r2, r0, #0 + movs r3, #0 + movs r5, #0 + ldrb r0, [r2] + add r1, sp, #0x18 + mov sl, r1 + mov r1, sp + adds r1, #0x24 + str r1, [sp, #0x2c] + cmp r0, #0 + beq _081344E2 +_081344BE: + mov r1, sp + adds r1, r1, r5 + adds r1, #0xc + adds r0, r2, r3 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r0, #0 + beq _081344E2 + cmp r3, #4 + bls _081344BE +_081344E2: + movs r3, #0 + ldr r2, _0813462C + mov r8, r2 + lsls r4, r7, #1 + ldr r0, _08134630 + mov sb, r0 + lsls r6, r6, #1 + mov ip, r6 + ldr r2, _08134634 +_081344F4: + mov r1, sp + adds r1, r1, r5 + adds r1, #0xc + adds r0, r3, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r3, #4 + bls _081344F4 + mov r1, sp + adds r1, r1, r5 + adds r1, #0xc + movs r0, #0xff + strb r0, [r1] + movs r3, #0 + movs r5, #0 + adds r0, r4, r7 + lsls r0, r0, #1 + add r0, r8 + ldrb r0, [r0] + cmp r0, #0xff + beq _08134558 + mov r6, r8 + mov r8, sl +_0813452E: + mov r1, r8 + adds r2, r1, r5 + adds r1, r4, r7 + lsls r1, r1, #1 + adds r0, r3, r1 + adds r0, r0, r6 + ldrb r0, [r0] + strb r0, [r2] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r1, r3, r1 + adds r1, r1, r6 + ldrb r0, [r1] + cmp r0, #0xff + beq _08134558 + cmp r3, #9 + bls _0813452E +_08134558: + mov r2, sl + adds r1, r2, r5 + movs r0, #0xff + strb r0, [r1] + mov r2, sb + ldr r0, [r2] + ldr r1, [r2, #4] + str r0, [sp, #0x24] + str r1, [sp, #0x28] + ldr r0, _08134638 + add r0, ip + mov sb, r0 + ldrb r0, [r0] + lsls r0, r0, #8 + ldr r1, _0813463C + ldr r2, [sp, #0x24] + ands r2, r1 + orrs r2, r0 + str r2, [sp, #0x24] + ldr r1, _08134638 + adds r1, #1 + mov r8, r1 + add r8, ip + mov r0, r8 + ldrb r1, [r0] + lsls r1, r1, #0x10 + ldr r0, _08134640 + ands r0, r2 + orrs r0, r1 + str r0, [sp, #0x24] + ldr r0, [sp, #0x2c] + bl AddWindow + ldr r4, _08134644 + strh r0, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl FillWindowPixelBuffer + ldrb r0, [r4] + ldr r6, _08134648 + str r6, [sp] + movs r5, #0 + str r5, [sp, #4] + add r1, sp, #0xc + str r1, [sp, #8] + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 + ldrb r0, [r4] + str r6, [sp] + str r5, [sp, #4] + mov r2, sl + str r2, [sp, #8] + movs r1, #1 + movs r2, #0 + movs r3, #0x12 + bl AddTextPrinterParameterized3 + ldrb r0, [r4] + bl PutWindowTilemap + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + mov r0, sb + ldrb r1, [r0] + lsls r0, r1, #0x1b + movs r2, #0xfc + lsls r2, r2, #0x18 + adds r0, r0, r2 + adds r1, #9 + lsls r1, r1, #3 + adds r1, #4 + lsls r1, r1, #0x18 + mov r2, r8 + ldrb r4, [r2] + lsls r5, r4, #0x1b + lsrs r5, r5, #0x18 + adds r4, #4 + lsls r4, r4, #0x1b + lsrs r4, r4, #0x18 + lsrs r1, r1, #8 + orrs r1, r0 + lsrs r1, r1, #0x10 + movs r0, #0x40 + bl SetGpuReg + lsls r5, r5, #8 + orrs r5, r4 + movs r0, #0x44 + adds r1, r5, #0 + bl SetGpuReg + add sp, #0x30 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0813462C: .4byte 0x082EA31C +_08134630: .4byte 0x08590BF4 +_08134634: .4byte 0x085C9393 +_08134638: .4byte 0x08590C02 +_0813463C: .4byte 0xFFFF00FF +_08134640: .4byte 0xFF00FFFF +_08134644: .4byte 0x030011F8 +_08134648: .4byte 0x08590C1C + thumb_func_end CreateStarterPokemonLabel + + thumb_func_start sub_0813464C +sub_0813464C: @ 0x0813464C + push {r4, lr} + ldr r4, _08134684 + ldrb r0, [r4] + movs r1, #0 + bl FillWindowPixelBuffer + ldrb r0, [r4] + bl ClearWindowTilemap + ldrb r0, [r4] + bl RemoveWindow + movs r0, #0xff + strh r0, [r4] + movs r0, #0x40 + movs r1, #0 + bl SetGpuReg + movs r0, #0x44 + movs r1, #0 + bl SetGpuReg + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08134684: .4byte 0x030011F8 + thumb_func_end sub_0813464C + + thumb_func_start Task_MoveStarterChooseCursor +Task_MoveStarterChooseCursor: @ 0x08134688 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl sub_0813464C + ldr r1, _081346A8 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _081346AC + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081346A8: .4byte 0x03005B60 +_081346AC: .4byte 0x081346B1 + thumb_func_end Task_MoveStarterChooseCursor + + thumb_func_start sub_081346B0 +sub_081346B0: @ 0x081346B0 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081346D0 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + adds r4, r4, r1 + ldrb r0, [r4, #8] + bl CreateStarterPokemonLabel + ldr r0, _081346D4 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081346D0: .4byte 0x03005B60 +_081346D4: .4byte 0x08134215 + thumb_func_end sub_081346B0 + + thumb_func_start CreatePokemonFrontSprite +CreatePokemonFrontSprite: @ 0x081346D8 + push {lr} + sub sp, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r1, [sp] + str r2, [sp, #4] + movs r1, #0xe + str r1, [sp, #8] + ldr r1, _0813471C + str r1, [sp, #0xc] + movs r1, #8 + movs r2, #0 + movs r3, #1 + bl CreatePicSprite2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08134720 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r1 + ldrb r3, [r2, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r3 + strb r1, [r2, #5] + add sp, #0x10 + pop {r1} + bx r1 + .align 2, 0 +_0813471C: .4byte 0x0000FFFF +_08134720: .4byte 0x020205AC + thumb_func_end CreatePokemonFrontSprite + + thumb_func_start sub_08134724 +sub_08134724: @ 0x08134724 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0813477C + ldr r3, _08134780 + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r3 + movs r1, #8 + ldrsh r0, [r0, r1] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + strh r0, [r4, #0x20] + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r3 + movs r1, #8 + ldrsh r0, [r0, r1] + lsls r0, r0, #1 + adds r2, #1 + adds r0, r0, r2 + ldrb r0, [r0] + strh r0, [r4, #0x22] + movs r1, #0x30 + ldrsh r0, [r4, r1] + movs r1, #8 + bl Sin + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x30] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x30] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813477C: .4byte 0x08590C38 +_08134780: .4byte 0x03005B60 + thumb_func_end sub_08134724 + + thumb_func_start sub_08134784 +sub_08134784: @ 0x08134784 + push {lr} + adds r3, r0, #0 + ldr r2, _081347AC + movs r0, #0x2e + ldrsh r1, [r3, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r2, #8 + ldrsh r1, [r0, r2] + movs r2, #0x30 + ldrsh r0, [r3, r2] + cmp r1, r0 + bne _081347B0 + adds r0, r3, #0 + movs r1, #1 + bl StartSpriteAnimIfDifferent + b _081347B8 + .align 2, 0 +_081347AC: .4byte 0x03005B60 +_081347B0: + adds r0, r3, #0 + movs r1, #0 + bl StartSpriteAnimIfDifferent +_081347B8: + pop {r0} + bx r0 + thumb_func_end sub_08134784 + + thumb_func_start StarterPokemonSpriteCallback +StarterPokemonSpriteCallback: @ 0x081347BC + push {lr} + adds r1, r0, #0 + ldrh r2, [r1, #0x20] + movs r3, #0x20 + ldrsh r0, [r1, r3] + cmp r0, #0x78 + ble _081347CE + subs r0, r2, #4 + strh r0, [r1, #0x20] +_081347CE: + ldrh r2, [r1, #0x20] + movs r3, #0x20 + ldrsh r0, [r1, r3] + cmp r0, #0x77 + bgt _081347DC + adds r0, r2, #4 + strh r0, [r1, #0x20] +_081347DC: + ldrh r2, [r1, #0x22] + movs r3, #0x22 + ldrsh r0, [r1, r3] + cmp r0, #0x40 + ble _081347EA + subs r0, r2, #2 + strh r0, [r1, #0x22] +_081347EA: + ldrh r2, [r1, #0x22] + movs r3, #0x22 + ldrsh r0, [r1, r3] + cmp r0, #0x3f + bgt _081347F8 + adds r0, r2, #2 + strh r0, [r1, #0x22] +_081347F8: + pop {r0} + bx r0 + thumb_func_end StarterPokemonSpriteCallback + diff --git a/asm/string_util.s b/asm/string_util.s new file mode 100644 index 0000000..a44421a --- /dev/null +++ b/asm/string_util.s @@ -0,0 +1,1149 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start StringCopy10 +StringCopy10: @ 0x08008828 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #5 + movs r3, #0 +_08008830: + adds r2, r4, r3 + adds r0, r1, r3 + ldrb r0, [r0] + strb r0, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08008844 + adds r0, r2, #0 + b _08008854 +_08008844: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, r5 + blo _08008830 + adds r0, r4, r3 + movs r1, #0xff + strb r1, [r0] +_08008854: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end StringCopy10 + + thumb_func_start StringGetEnd10 +StringGetEnd10: @ 0x0800885C + push {r4, lr} + adds r3, r0, #0 + movs r4, #5 + movs r2, #0 +_08008864: + adds r1, r3, r2 + ldrb r0, [r1] + cmp r0, #0xff + bne _08008870 + adds r0, r1, #0 + b _08008880 +_08008870: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, r4 + blo _08008864 + adds r0, r3, r2 + movs r1, #0xff + strb r1, [r0] +_08008880: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end StringGetEnd10 + + thumb_func_start StringCopy7 +StringCopy7: @ 0x08008888 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #5 + movs r3, #0 +_08008890: + adds r2, r4, r3 + adds r0, r1, r3 + ldrb r0, [r0] + strb r0, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080088A4 + adds r0, r2, #0 + b _080088B0 +_080088A4: + adds r3, #1 + cmp r3, r5 + blt _08008890 + adds r0, r4, r3 + movs r1, #0xff + strb r1, [r0] +_080088B0: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end StringCopy7 + + thumb_func_start StringCopy +StringCopy: @ 0x080088B8 + push {lr} + adds r3, r0, #0 + b _080088C4 +_080088BE: + strb r2, [r3] + adds r3, #1 + adds r1, #1 +_080088C4: + ldrb r2, [r1] + adds r0, r2, #0 + cmp r0, #0xff + bne _080088BE + movs r0, #0xff + strb r0, [r3] + adds r0, r3, #0 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end StringCopy + + thumb_func_start StringAppend +StringAppend: @ 0x080088D8 + push {lr} + adds r2, r0, #0 + b _080088E0 +_080088DE: + adds r2, #1 +_080088E0: + ldrb r0, [r2] + cmp r0, #0xff + bne _080088DE + adds r0, r2, #0 + bl StringCopy + pop {r1} + bx r1 + thumb_func_end StringAppend + + thumb_func_start StringCopyN +StringCopyN: @ 0x080088F0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + movs r3, #0 + adds r0, r5, #0 + cmp r3, r0 + bhs _08008916 + adds r2, r0, #0 +_08008904: + adds r1, r4, r3 + adds r0, r6, r3 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, r2 + blo _08008904 +_08008916: + adds r0, r4, r5 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end StringCopyN + + thumb_func_start StringAppendN +StringAppendN: @ 0x08008920 + push {lr} + adds r3, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + b _0800892C +_0800892A: + adds r3, #1 +_0800892C: + ldrb r0, [r3] + cmp r0, #0xff + bne _0800892A + adds r0, r3, #0 + bl StringCopyN + pop {r1} + bx r1 + thumb_func_end StringAppendN + + thumb_func_start StringLength +StringLength: @ 0x0800893C + push {lr} + adds r2, r0, #0 + movs r1, #0 + ldrb r0, [r2] + cmp r0, #0xff + beq _08008956 +_08008948: + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #0xff + bne _08008948 +_08008956: + adds r0, r1, #0 + pop {r1} + bx r1 + thumb_func_end StringLength + + thumb_func_start StringCompare +StringCompare: @ 0x0800895C + push {lr} + adds r2, r0, #0 + b _0800896E +_08008962: + cmp r0, #0xff + bne _0800896A + movs r0, #0 + b _0800897C +_0800896A: + adds r2, #1 + adds r1, #1 +_0800896E: + ldrb r0, [r2] + ldrb r3, [r1] + cmp r0, r3 + beq _08008962 + ldrb r0, [r2] + ldrb r1, [r1] + subs r0, r0, r1 +_0800897C: + pop {r1} + bx r1 + thumb_func_end StringCompare + + thumb_func_start StringCompareN +StringCompareN: @ 0x08008980 + push {r4, lr} + adds r3, r0, #0 + b _08008998 +_08008986: + cmp r0, #0xff + beq _08008994 + adds r3, #1 + adds r1, #1 + subs r2, #1 + cmp r2, #0 + bne _08008998 +_08008994: + movs r0, #0 + b _080089A6 +_08008998: + ldrb r0, [r3] + ldrb r4, [r1] + cmp r0, r4 + beq _08008986 + ldrb r0, [r3] + ldrb r1, [r1] + subs r0, r0, r1 +_080089A6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end StringCompareN + + thumb_func_start IsStringLengthAtLeast +IsStringLengthAtLeast: @ 0x080089AC + push {lr} + adds r3, r0, #0 + movs r2, #0 + cmp r2, r1 + bge _080089D0 +_080089B6: + adds r0, r3, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080089C6 + cmp r0, #0xff + beq _080089C6 + movs r0, #1 + b _080089D2 +_080089C6: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, r1 + blt _080089B6 +_080089D0: + movs r0, #0 +_080089D2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsStringLengthAtLeast + + thumb_func_start ConvertIntToDecimalStringN +ConvertIntToDecimalStringN: @ 0x080089D8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + adds r6, r1, #0 + lsls r3, r3, #0x18 + ldr r0, _08008A28 + lsrs r3, r3, #0x16 + subs r3, #4 + adds r3, r3, r0 + ldr r0, [r3] + movs r7, #0 + cmp r2, #1 + bne _080089F6 + movs r7, #2 +_080089F6: + cmp r2, #2 + bne _080089FC + movs r7, #1 +_080089FC: + adds r5, r0, #0 + cmp r5, #0 + ble _08008A68 + ldr r0, _08008A2C + mov r8, r0 +_08008A06: + adds r0, r6, #0 + adds r1, r5, #0 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + adds r0, r5, #0 + muls r0, r2, r0 + subs r1, r6, r0 + cmp r7, #1 + bne _08008A30 + adds r3, r4, #0 + adds r4, #1 + cmp r2, #9 + bls _08008A42 + b _08008A4A + .align 2, 0 +_08008A28: .4byte 0x082BF44C +_08008A2C: .4byte 0x082BF43C +_08008A30: + cmp r2, #0 + bne _08008A38 + cmp r5, #1 + bne _08008A50 +_08008A38: + movs r7, #1 + adds r3, r4, #0 + adds r4, #1 + cmp r2, #9 + bhi _08008A4A +_08008A42: + mov r6, r8 + adds r0, r2, r6 + ldrb r0, [r0] + b _08008A4C +_08008A4A: + movs r0, #0xac +_08008A4C: + strb r0, [r3] + b _08008A58 +_08008A50: + cmp r7, #2 + bne _08008A58 + strb r2, [r4] + adds r4, #1 +_08008A58: + adds r6, r1, #0 + adds r0, r5, #0 + movs r1, #0xa + bl __divsi3 + adds r5, r0, #0 + cmp r5, #0 + bgt _08008A06 +_08008A68: + movs r0, #0xff + strb r0, [r4] + adds r0, r4, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end ConvertIntToDecimalStringN + + thumb_func_start ConvertUIntToDecimalStringN +ConvertUIntToDecimalStringN: @ 0x08008A78 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + adds r6, r1, #0 + lsls r3, r3, #0x18 + ldr r0, _08008AC8 + lsrs r3, r3, #0x16 + subs r3, #4 + adds r3, r3, r0 + ldr r0, [r3] + movs r7, #0 + cmp r2, #1 + bne _08008A96 + movs r7, #2 +_08008A96: + cmp r2, #2 + bne _08008A9C + movs r7, #1 +_08008A9C: + adds r5, r0, #0 + cmp r5, #0 + ble _08008B08 + ldr r0, _08008ACC + mov r8, r0 +_08008AA6: + adds r0, r6, #0 + adds r1, r5, #0 + bl __udivsi3 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + adds r0, r5, #0 + muls r0, r2, r0 + subs r1, r6, r0 + cmp r7, #1 + bne _08008AD0 + adds r3, r4, #0 + adds r4, #1 + cmp r2, #9 + bls _08008AE2 + b _08008AEA + .align 2, 0 +_08008AC8: .4byte 0x082BF44C +_08008ACC: .4byte 0x082BF43C +_08008AD0: + cmp r2, #0 + bne _08008AD8 + cmp r5, #1 + bne _08008AF0 +_08008AD8: + movs r7, #1 + adds r3, r4, #0 + adds r4, #1 + cmp r2, #9 + bhi _08008AEA +_08008AE2: + mov r6, r8 + adds r0, r2, r6 + ldrb r0, [r0] + b _08008AEC +_08008AEA: + movs r0, #0xac +_08008AEC: + strb r0, [r3] + b _08008AF8 +_08008AF0: + cmp r7, #2 + bne _08008AF8 + strb r2, [r4] + adds r4, #1 +_08008AF8: + adds r6, r1, #0 + adds r0, r5, #0 + movs r1, #0xa + bl __divsi3 + adds r5, r0, #0 + cmp r5, #0 + bgt _08008AA6 +_08008B08: + movs r0, #0xff + strb r0, [r4] + adds r0, r4, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end ConvertUIntToDecimalStringN + + thumb_func_start ConvertIntToHexStringN +ConvertIntToHexStringN: @ 0x08008B18 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r6, r0, #0 + adds r7, r1, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r1, #1 + movs r0, #1 + cmp r1, r3 + bhs _08008B3C +_08008B30: + lsls r1, r1, #4 + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r3 + blo _08008B30 +_08008B3C: + movs r3, #0 + cmp r2, #1 + bne _08008B44 + movs r3, #2 +_08008B44: + cmp r2, #2 + bne _08008B4A + movs r3, #1 +_08008B4A: + adds r5, r1, #0 + cmp r5, #0 + ble _08008BB8 + ldr r0, _08008B7C + mov r8, r0 +_08008B54: + adds r0, r7, #0 + adds r1, r5, #0 + str r3, [sp] + bl __divsi3 + adds r4, r0, #0 + adds r0, r7, #0 + adds r1, r5, #0 + bl __modsi3 + adds r1, r0, #0 + ldr r3, [sp] + cmp r3, #1 + bne _08008B80 + adds r2, r6, #0 + adds r6, #1 + cmp r4, #0xf + bls _08008B92 + b _08008B9A + .align 2, 0 +_08008B7C: .4byte 0x082BF43C +_08008B80: + cmp r4, #0 + bne _08008B88 + cmp r5, #1 + bne _08008BA0 +_08008B88: + movs r3, #1 + adds r2, r6, #0 + adds r6, #1 + cmp r4, #0xf + bhi _08008B9A +_08008B92: + mov r7, r8 + adds r0, r4, r7 + ldrb r0, [r0] + b _08008B9C +_08008B9A: + movs r0, #0xac +_08008B9C: + strb r0, [r2] + b _08008BA8 +_08008BA0: + cmp r3, #2 + bne _08008BA8 + strb r4, [r6] + adds r6, #1 +_08008BA8: + adds r7, r1, #0 + adds r0, r5, #0 + cmp r5, #0 + bge _08008BB2 + adds r0, #0xf +_08008BB2: + asrs r5, r0, #4 + cmp r5, #0 + bgt _08008B54 +_08008BB8: + movs r0, #0xff + strb r0, [r6] + adds r0, r6, #0 + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ConvertIntToHexStringN + + thumb_func_start StringExpandPlaceholders +StringExpandPlaceholders: @ 0x08008BCC + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 +_08008BD2: + ldrb r2, [r5] + adds r5, #1 + adds r0, r2, #0 + subs r0, #0xfa + cmp r0, #5 + bhi _08008CA6 + lsls r0, r0, #2 + ldr r1, _08008BE8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08008BE8: .4byte 0x08008BEC +_08008BEC: @ jump table + .4byte _08008CA6 @ case 0 + .4byte _08008CA6 @ case 1 + .4byte _08008C18 @ case 2 + .4byte _08008C04 @ case 3 + .4byte _08008CA6 @ case 4 + .4byte _08008CAC @ case 5 +_08008C04: + ldrb r0, [r5] + adds r5, #1 + bl GetExpandedPlaceholder + adds r1, r0, #0 + adds r0, r4, #0 + bl StringExpandPlaceholders + adds r4, r0, #0 + b _08008BD2 +_08008C18: + strb r2, [r4] + adds r4, #1 + ldrb r2, [r5] + adds r5, #1 + strb r2, [r4] + adds r4, #1 + subs r0, r2, #4 + cmp r0, #0x14 + bhi _08008C9C + lsls r0, r0, #2 + ldr r1, _08008C34 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08008C34: .4byte 0x08008C38 +_08008C38: @ jump table + .4byte _08008C8C @ case 0 + .4byte _08008C9C @ case 1 + .4byte _08008C9C @ case 2 + .4byte _08008BD2 @ case 3 + .4byte _08008C9C @ case 4 + .4byte _08008BD2 @ case 5 + .4byte _08008C9C @ case 6 + .4byte _08008C94 @ case 7 + .4byte _08008C9C @ case 8 + .4byte _08008C9C @ case 9 + .4byte _08008C9C @ case 10 + .4byte _08008BD2 @ case 11 + .4byte _08008C9C @ case 12 + .4byte _08008C9C @ case 13 + .4byte _08008C9C @ case 14 + .4byte _08008C9C @ case 15 + .4byte _08008C9C @ case 16 + .4byte _08008BD2 @ case 17 + .4byte _08008BD2 @ case 18 + .4byte _08008BD2 @ case 19 + .4byte _08008BD2 @ case 20 +_08008C8C: + ldrb r0, [r5] + strb r0, [r4] + adds r5, #1 + adds r4, #1 +_08008C94: + ldrb r0, [r5] + strb r0, [r4] + adds r5, #1 + adds r4, #1 +_08008C9C: + ldrb r0, [r5] + strb r0, [r4] + adds r5, #1 + adds r4, #1 + b _08008BD2 +_08008CA6: + strb r2, [r4] + adds r4, #1 + b _08008BD2 +_08008CAC: + movs r0, #0xff + strb r0, [r4] + adds r0, r4, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end StringExpandPlaceholders + + thumb_func_start StringBraille +StringBraille: @ 0x08008CB8 + push {r4, r5, r6, lr} + sub sp, #0xc + adds r5, r0, #0 + adds r6, r1, #0 + ldr r1, _08008CF0 + mov r0, sp + movs r2, #4 + bl memcpy + add r4, sp, #4 + ldr r1, _08008CF4 + adds r0, r4, #0 + movs r2, #5 + bl memcpy + adds r0, r5, #0 + mov r1, sp +_08008CDA: + bl StringCopy + adds r5, r0, #0 +_08008CE0: + ldrb r0, [r6] + adds r6, #1 + cmp r0, #0xfe + beq _08008CF8 + cmp r0, #0xff + bne _08008CFE + b _08008D0A + .align 2, 0 +_08008CF0: .4byte 0x082BF474 +_08008CF4: .4byte 0x082BF478 +_08008CF8: + adds r0, r5, #0 + adds r1, r4, #0 + b _08008CDA +_08008CFE: + strb r0, [r5] + adds r5, #1 + adds r0, #0x40 + strb r0, [r5] + adds r5, #1 + b _08008CE0 +_08008D0A: + strb r0, [r5] + adds r0, r5, #0 + add sp, #0xc + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end StringBraille + + thumb_func_start ExpandPlaceholder_UnknownStringVar +ExpandPlaceholder_UnknownStringVar: @ 0x08008D18 + ldr r0, _08008D1C + bx lr + .align 2, 0 +_08008D1C: .4byte 0x02022064 + thumb_func_end ExpandPlaceholder_UnknownStringVar + + thumb_func_start ExpandPlaceholder_PlayerName +ExpandPlaceholder_PlayerName: @ 0x08008D20 + ldr r0, _08008D28 + ldr r0, [r0] + bx lr + .align 2, 0 +_08008D28: .4byte 0x03005AF0 + thumb_func_end ExpandPlaceholder_PlayerName + + thumb_func_start ExpandPlaceholder_StringVar1 +ExpandPlaceholder_StringVar1: @ 0x08008D2C + ldr r0, _08008D30 + bx lr + .align 2, 0 +_08008D30: .4byte 0x02021C40 + thumb_func_end ExpandPlaceholder_StringVar1 + + thumb_func_start ExpandPlaceholder_StringVar2 +ExpandPlaceholder_StringVar2: @ 0x08008D34 + ldr r0, _08008D38 + bx lr + .align 2, 0 +_08008D38: .4byte 0x02021C54 + thumb_func_end ExpandPlaceholder_StringVar2 + + thumb_func_start ExpandPlaceholder_StringVar3 +ExpandPlaceholder_StringVar3: @ 0x08008D3C + ldr r0, _08008D40 + bx lr + .align 2, 0 +_08008D40: .4byte 0x02021C68 + thumb_func_end ExpandPlaceholder_StringVar3 + + thumb_func_start ExpandPlaceholder_KunChan +ExpandPlaceholder_KunChan: @ 0x08008D44 + push {lr} + ldr r0, _08008D54 + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #0 + beq _08008D5C + ldr r0, _08008D58 + b _08008D5E + .align 2, 0 +_08008D54: .4byte 0x03005AF0 +_08008D58: .4byte 0x085C8C28 +_08008D5C: + ldr r0, _08008D64 +_08008D5E: + pop {r1} + bx r1 + .align 2, 0 +_08008D64: .4byte 0x085C8C25 + thumb_func_end ExpandPlaceholder_KunChan + + thumb_func_start ExpandPlaceholder_RivalName +ExpandPlaceholder_RivalName: @ 0x08008D68 + push {lr} + ldr r0, _08008D78 + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #0 + beq _08008D80 + ldr r0, _08008D7C + b _08008D82 + .align 2, 0 +_08008D78: .4byte 0x03005AF0 +_08008D7C: .4byte 0x085C8C5A +_08008D80: + ldr r0, _08008D88 +_08008D82: + pop {r1} + bx r1 + .align 2, 0 +_08008D88: .4byte 0x085C8C5E + thumb_func_end ExpandPlaceholder_RivalName + + thumb_func_start ExpandPlaceholder_Version +ExpandPlaceholder_Version: @ 0x08008D8C + ldr r0, _08008D90 + bx lr + .align 2, 0 +_08008D90: .4byte 0x085C8C36 + thumb_func_end ExpandPlaceholder_Version + + thumb_func_start ExpandPlaceholder_Aqua +ExpandPlaceholder_Aqua: @ 0x08008D94 + ldr r0, _08008D98 + bx lr + .align 2, 0 +_08008D98: .4byte 0x085C8C3C + thumb_func_end ExpandPlaceholder_Aqua + + thumb_func_start ExpandPlaceholder_Magma +ExpandPlaceholder_Magma: @ 0x08008D9C + ldr r0, _08008DA0 + bx lr + .align 2, 0 +_08008DA0: .4byte 0x085C8C40 + thumb_func_end ExpandPlaceholder_Magma + + thumb_func_start ExpandPlaceholder_Archie +ExpandPlaceholder_Archie: @ 0x08008DA4 + ldr r0, _08008DA8 + bx lr + .align 2, 0 +_08008DA8: .4byte 0x085C8C44 + thumb_func_end ExpandPlaceholder_Archie + + thumb_func_start ExpandPlaceholder_Maxie +ExpandPlaceholder_Maxie: @ 0x08008DAC + ldr r0, _08008DB0 + bx lr + .align 2, 0 +_08008DB0: .4byte 0x085C8C49 + thumb_func_end ExpandPlaceholder_Maxie + + thumb_func_start ExpandPlaceholder_Kyogre +ExpandPlaceholder_Kyogre: @ 0x08008DB4 + ldr r0, _08008DB8 + bx lr + .align 2, 0 +_08008DB8: .4byte 0x085C8C4E + thumb_func_end ExpandPlaceholder_Kyogre + + thumb_func_start ExpandPlaceholder_Groudon +ExpandPlaceholder_Groudon: @ 0x08008DBC + ldr r0, _08008DC0 + bx lr + .align 2, 0 +_08008DC0: .4byte 0x085C8C54 + thumb_func_end ExpandPlaceholder_Groudon + + thumb_func_start GetExpandedPlaceholder +GetExpandedPlaceholder: @ 0x08008DC4 + push {lr} + cmp r0, #0xd + bhi _08008DDC + ldr r1, _08008DD8 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + b _08008DDE + .align 2, 0 +_08008DD8: .4byte 0x082BF480 +_08008DDC: + ldr r0, _08008DE4 +_08008DDE: + pop {r1} + bx r1 + .align 2, 0 +_08008DE4: .4byte 0x085C8C24 + thumb_func_end GetExpandedPlaceholder + + thumb_func_start StringFill +StringFill: @ 0x08008DE8 + push {lr} + adds r3, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + movs r0, #0 + cmp r0, r2 + bhs _08008E08 +_08008DFA: + strb r1, [r3] + adds r3, #1 + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r2 + blo _08008DFA +_08008E08: + movs r0, #0xff + strb r0, [r3] + adds r0, r3, #0 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end StringFill + + thumb_func_start StringCopyPadded +StringCopyPadded: @ 0x08008E14 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + b _08008E34 +_08008E24: + strb r1, [r4] + adds r5, #1 + adds r4, #1 + cmp r3, #0 + beq _08008E34 + subs r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 +_08008E34: + ldrb r1, [r5] + adds r0, r1, #0 + cmp r0, #0xff + bne _08008E24 + subs r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldr r0, _08008E64 + cmp r3, r0 + beq _08008E58 + adds r1, r0, #0 +_08008E4A: + strb r2, [r4] + adds r4, #1 + subs r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, r1 + bne _08008E4A +_08008E58: + movs r0, #0xff + strb r0, [r4] + adds r0, r4, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08008E64: .4byte 0x0000FFFF + thumb_func_end StringCopyPadded + + thumb_func_start StringFillWithTerminator +StringFillWithTerminator: @ 0x08008E68 + push {lr} + lsls r2, r1, #0x10 + lsrs r2, r2, #0x10 + movs r1, #0xff + bl StringFill + pop {r1} + bx r1 + thumb_func_end StringFillWithTerminator + + thumb_func_start StringCopyN_Multibyte +StringCopyN_Multibyte: @ 0x08008E78 + push {r4, r5, lr} + adds r4, r0, #0 + adds r3, r1, #0 + subs r2, #1 + movs r5, #1 + rsbs r5, r5, #0 + b _08008E9E +_08008E86: + strb r0, [r4] + adds r3, #1 + adds r4, #1 + subs r0, r3, #1 + ldrb r0, [r0] + cmp r0, #0xf9 + bne _08008E9C + ldrb r0, [r3] + strb r0, [r4] + adds r3, #1 + adds r4, #1 +_08008E9C: + subs r2, #1 +_08008E9E: + cmp r2, r5 + beq _08008EAA + ldrb r0, [r3] + adds r1, r0, #0 + cmp r1, #0xff + bne _08008E86 +_08008EAA: + movs r0, #0xff + strb r0, [r4] + adds r0, r4, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end StringCopyN_Multibyte + + thumb_func_start StringLength_Multibyte +StringLength_Multibyte: @ 0x08008EB8 + push {lr} + adds r2, r0, #0 + movs r3, #0 + b _08008ECA +_08008EC0: + cmp r1, #0xf9 + bne _08008EC6 + adds r2, #1 +_08008EC6: + adds r2, #1 + adds r3, #1 +_08008ECA: + ldrb r1, [r2] + adds r0, r1, #0 + cmp r0, #0xff + bne _08008EC0 + adds r0, r3, #0 + pop {r1} + bx r1 + thumb_func_end StringLength_Multibyte + + thumb_func_start WriteColorChangeControlCode +WriteColorChangeControlCode: @ 0x08008ED8 + push {lr} + adds r3, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r0, #0xfc + strb r0, [r3] + adds r3, #1 + cmp r1, #1 + beq _08008EFA + cmp r1, #1 + blo _08008EF4 + cmp r1, #2 + beq _08008F00 + b _08008F04 +_08008EF4: + movs r0, #1 + strb r0, [r3] + b _08008F02 +_08008EFA: + movs r0, #3 + strb r0, [r3] + b _08008F02 +_08008F00: + strb r1, [r3] +_08008F02: + adds r3, #1 +_08008F04: + strb r2, [r3] + adds r3, #1 + movs r0, #0xff + strb r0, [r3] + adds r0, r3, #0 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end WriteColorChangeControlCode + + thumb_func_start IsStringJapanese +IsStringJapanese: @ 0x08008F14 + push {lr} + adds r2, r0, #0 + b _08008F2A +_08008F1A: + adds r0, r1, #0 + cmp r0, #0xa0 + bhi _08008F28 + cmp r0, #0 + beq _08008F28 + movs r0, #1 + b _08008F34 +_08008F28: + adds r2, #1 +_08008F2A: + ldrb r1, [r2] + adds r0, r1, #0 + cmp r0, #0xff + bne _08008F1A + movs r0, #0 +_08008F34: + pop {r1} + bx r1 + thumb_func_end IsStringJapanese + + thumb_func_start sub_08008F38 +sub_08008F38: @ 0x08008F38 + push {r4, lr} + adds r3, r0, #0 + adds r4, r1, #0 + movs r1, #0 + b _08008F54 +_08008F42: + adds r0, r2, #0 + cmp r0, #0xa0 + bhi _08008F50 + cmp r0, #0 + beq _08008F50 + movs r0, #1 + b _08008F62 +_08008F50: + adds r3, #1 + adds r1, #1 +_08008F54: + ldrb r2, [r3] + adds r0, r2, #0 + cmp r0, #0xff + beq _08008F60 + cmp r1, r4 + blt _08008F42 +_08008F60: + movs r0, #0 +_08008F62: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_08008F38 + diff --git a/asm/task.s b/asm/task.s new file mode 100644 index 0000000..ddc726a --- /dev/null +++ b/asm/task.s @@ -0,0 +1,539 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ResetTasks +ResetTasks: @ 0x080A8818 + push {r4, r5, r6, r7, lr} + movs r4, #0 + ldr r6, _080A886C + adds r7, r6, #0 + adds r7, #8 +_080A8822: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r2, r0, r6 + movs r1, #0 + strb r1, [r2, #4] + ldr r1, _080A8870 + str r1, [r2] + strb r4, [r2, #5] + adds r4, #1 + strb r4, [r2, #6] + movs r1, #1 + rsbs r1, r1, #0 + adds r5, r1, #0 + movs r1, #0xff + strb r1, [r2, #7] + adds r0, r0, r7 + movs r1, #0 + movs r2, #0x20 + bl memset + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + cmp r4, #0xf + bls _080A8822 + ldr r0, _080A886C + movs r1, #0xfe + strb r1, [r0, #5] + ldr r1, _080A8874 + adds r0, r0, r1 + ldrb r1, [r0] + orrs r1, r5 + strb r1, [r0] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A886C: .4byte 0x03005B60 +_080A8870: .4byte 0x080A8A41 +_080A8874: .4byte 0x0000025E + thumb_func_end ResetTasks + + thumb_func_start CreateTask +CreateTask: @ 0x080A8878 + push {r4, r5, r6, r7, lr} + adds r2, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r6, #0 + ldr r7, _080A88B4 +_080A8884: + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r5, r0, #3 + adds r4, r5, r7 + ldrb r0, [r4, #4] + cmp r0, #0 + bne _080A88B8 + str r2, [r4] + strb r1, [r4, #7] + adds r0, r6, #0 + bl InsertTask + adds r0, r7, #0 + adds r0, #8 + adds r0, r5, r0 + movs r1, #0 + movs r2, #0x20 + bl memset + movs r0, #1 + strb r0, [r4, #4] + adds r0, r6, #0 + b _080A88C4 + .align 2, 0 +_080A88B4: .4byte 0x03005B60 +_080A88B8: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0xf + bls _080A8884 + movs r0, #0 +_080A88C4: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CreateTask + + thumb_func_start InsertTask +InsertTask: @ 0x080A88CC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl FindFirstActiveTask + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x10 + bne _080A88FC + ldr r1, _080A88F8 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0xfe + strb r1, [r0, #5] + movs r1, #0xff + strb r1, [r0, #6] + b _080A8958 + .align 2, 0 +_080A88F8: .4byte 0x03005B60 +_080A88FC: + ldr r6, _080A8938 + lsls r0, r4, #2 + mov ip, r0 + mov r8, r6 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r2, r0, r6 +_080A890A: + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r5, r0, #3 + mov r7, r8 + adds r3, r5, r7 + ldrb r0, [r2, #7] + ldrb r7, [r3, #7] + cmp r0, r7 + bhs _080A893C + ldrb r0, [r3, #5] + strb r0, [r2, #5] + strb r1, [r2, #6] + ldrb r0, [r3, #5] + cmp r0, #0xfe + beq _080A8934 + adds r1, r0, #0 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + add r0, r8 + strb r4, [r0, #6] +_080A8934: + strb r4, [r3, #5] + b _080A8958 + .align 2, 0 +_080A8938: .4byte 0x03005B60 +_080A893C: + ldrb r0, [r3, #6] + cmp r0, #0xff + beq _080A8946 + adds r1, r0, #0 + b _080A890A +_080A8946: + mov r2, ip + adds r0, r2, r4 + lsls r0, r0, #3 + adds r0, r0, r6 + strb r1, [r0, #5] + adds r2, r5, r6 + ldrb r1, [r2, #6] + strb r1, [r0, #6] + strb r4, [r2, #6] +_080A8958: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end InsertTask + + thumb_func_start DestroyTask +DestroyTask: @ 0x080A8964 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _080A8998 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r2, r1, r4 + ldrb r0, [r2, #4] + cmp r0, #0 + beq _080A89CE + movs r0, #0 + strb r0, [r2, #4] + ldrb r3, [r2, #5] + cmp r3, #0xfe + bne _080A899C + ldrb r0, [r2, #6] + cmp r0, #0xff + beq _080A89CE + adds r1, r0, #0 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r4 + strb r3, [r0, #5] + b _080A89CE + .align 2, 0 +_080A8998: .4byte 0x03005B60 +_080A899C: + ldrb r3, [r2, #6] + adds r0, r3, #0 + cmp r0, #0xff + bne _080A89B4 + ldrb r0, [r2, #5] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r4 + movs r0, #0xff + strb r0, [r1, #6] + b _080A89CE +_080A89B4: + ldrb r1, [r2, #5] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r4 + strb r3, [r0, #6] + ldrb r1, [r2, #6] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r4 + ldrb r1, [r2, #5] + strb r1, [r0, #5] +_080A89CE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end DestroyTask + + thumb_func_start RunTasks +RunTasks: @ 0x080A89D4 + push {r4, r5, lr} + bl FindFirstActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + beq _080A89F8 + ldr r5, _080A8A00 +_080A89E4: + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + adds r4, r4, r5 + ldr r1, [r4] + bl _call_via_r1 + ldrb r0, [r4, #6] + cmp r0, #0xff + bne _080A89E4 +_080A89F8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A8A00: .4byte 0x03005B60 + thumb_func_end RunTasks + + thumb_func_start FindFirstActiveTask +FindFirstActiveTask: @ 0x080A8A04 + push {lr} + movs r2, #0 + ldr r0, _080A8A3C + ldrb r1, [r0, #4] + adds r3, r0, #0 + cmp r1, #1 + bne _080A8A18 + ldrb r0, [r3, #5] + cmp r0, #0xfe + beq _080A8A36 +_080A8A18: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xf + bhi _080A8A36 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r1, r0, r3 + ldrb r0, [r1, #4] + cmp r0, #1 + bne _080A8A18 + ldrb r0, [r1, #5] + cmp r0, #0xfe + bne _080A8A18 +_080A8A36: + adds r0, r2, #0 + pop {r1} + bx r1 + .align 2, 0 +_080A8A3C: .4byte 0x03005B60 + thumb_func_end FindFirstActiveTask + + thumb_func_start TaskDummy +TaskDummy: @ 0x080A8A40 + bx lr + .align 2, 0 + thumb_func_end TaskDummy + + thumb_func_start SetTaskFuncWithFollowupFunc +SetTaskFuncWithFollowupFunc: @ 0x080A8A44 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _080A8A74 + lsls r3, r0, #2 + adds r3, r3, r0 + lsls r3, r3, #3 + adds r0, r3, #0 + adds r0, #0x1c + adds r4, r5, #0 + adds r4, #8 + adds r0, r0, r4 + strh r2, [r0] + adds r0, r3, #0 + adds r0, #0x1e + adds r0, r0, r4 + lsrs r2, r2, #0x10 + strh r2, [r0] + adds r3, r3, r5 + str r1, [r3] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A8A74: .4byte 0x03005B60 + thumb_func_end SetTaskFuncWithFollowupFunc + + thumb_func_start SwitchTaskToFollowupFunc +SwitchTaskToFollowupFunc: @ 0x080A8A78 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _080A8AA8 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r3 + adds r0, r1, #0 + adds r0, #0x1c + adds r3, #8 + adds r0, r0, r3 + ldrh r2, [r0] + adds r1, #0x1e + adds r1, r1, r3 + movs r3, #0 + ldrsh r0, [r1, r3] + lsls r0, r0, #0x10 + orrs r2, r0 + str r2, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A8AA8: .4byte 0x03005B60 + thumb_func_end SwitchTaskToFollowupFunc + + thumb_func_start FuncIsActiveTask +FuncIsActiveTask: @ 0x080A8AAC + push {r4, lr} + adds r3, r0, #0 + movs r2, #0 + ldr r4, _080A8ACC +_080A8AB4: + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r1, r0, r4 + ldrb r0, [r1, #4] + cmp r0, #1 + bne _080A8AD0 + ldr r0, [r1] + cmp r0, r3 + bne _080A8AD0 + movs r0, #1 + b _080A8ADC + .align 2, 0 +_080A8ACC: .4byte 0x03005B60 +_080A8AD0: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xf + bls _080A8AB4 + movs r0, #0 +_080A8ADC: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end FuncIsActiveTask + + thumb_func_start FindTaskIdByFunc +FindTaskIdByFunc: @ 0x080A8AE4 + push {lr} + adds r3, r0, #0 + movs r2, #0 + ldr r1, _080A8B00 +_080A8AEC: + ldrb r0, [r1, #4] + cmp r0, #1 + bne _080A8B04 + ldr r0, [r1] + cmp r0, r3 + bne _080A8B04 + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + b _080A8B0E + .align 2, 0 +_080A8B00: .4byte 0x03005B60 +_080A8B04: + adds r1, #0x28 + adds r2, #1 + cmp r2, #0xf + ble _080A8AEC + movs r0, #0xff +_080A8B0E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end FindTaskIdByFunc + + thumb_func_start GetTaskCount +GetTaskCount: @ 0x080A8B14 + push {lr} + movs r2, #0 + movs r1, #0 + ldr r3, _080A8B40 +_080A8B1C: + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r3 + ldrb r0, [r0, #4] + cmp r0, #1 + bne _080A8B30 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 +_080A8B30: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xf + bls _080A8B1C + adds r0, r2, #0 + pop {r1} + bx r1 + .align 2, 0 +_080A8B40: .4byte 0x03005B60 + thumb_func_end GetTaskCount + + thumb_func_start SetWordTaskArg +SetWordTaskArg: @ 0x080A8B44 + push {r4, r5, lr} + adds r5, r2, #0 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + cmp r3, #0xe + bhi _080A8B72 + ldr r2, _080A8B78 + lsls r0, r3, #1 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r0, r0, r1 + adds r2, #8 + adds r0, r0, r2 + strh r5, [r0] + adds r0, r3, #1 + lsls r0, r0, #1 + adds r0, r0, r1 + adds r0, r0, r2 + lsrs r1, r5, #0x10 + strh r1, [r0] +_080A8B72: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A8B78: .4byte 0x03005B60 + thumb_func_end SetWordTaskArg + + thumb_func_start GetWordTaskArg +GetWordTaskArg: @ 0x080A8B7C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0xe + bls _080A8B8E + movs r0, #0 + b _080A8BB0 +_080A8B8E: + ldr r3, _080A8BB8 + lsls r0, r1, #1 + lsls r2, r4, #2 + adds r2, r2, r4 + lsls r2, r2, #3 + adds r0, r0, r2 + adds r3, #8 + adds r0, r0, r3 + ldrh r0, [r0] + adds r1, #1 + lsls r1, r1, #1 + adds r1, r1, r2 + adds r1, r1, r3 + movs r2, #0 + ldrsh r1, [r1, r2] + lsls r1, r1, #0x10 + orrs r0, r1 +_080A8BB0: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080A8BB8: .4byte 0x03005B60 + thumb_func_end GetWordTaskArg + diff --git a/asm/text.s b/asm/text.s new file mode 100644 index 0000000..9a9a5d6 --- /dev/null +++ b/asm/text.s @@ -0,0 +1,4565 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start SetFontsPointer +SetFontsPointer: @ 0x08004474 + ldr r1, _0800447C + str r0, [r1] + bx lr + .align 2, 0 +_0800447C: .4byte 0x03003020 + thumb_func_end SetFontsPointer + + thumb_func_start DeactivateAllTextPrinters +DeactivateAllTextPrinters: @ 0x08004480 + push {lr} + ldr r1, _08004498 + movs r2, #0 + movs r3, #0xf8 + lsls r3, r3, #2 + adds r0, r1, r3 +_0800448C: + strb r2, [r0, #0x1b] + subs r0, #0x20 + cmp r0, r1 + bge _0800448C + pop {r0} + bx r0 + .align 2, 0 +_08004498: .4byte 0x020201AC + thumb_func_end DeactivateAllTextPrinters + + thumb_func_start AddTextPrinterParameterized +AddTextPrinterParameterized: @ 0x0800449C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x10 + ldr r4, [sp, #0x28] + ldr r5, [sp, #0x2c] + ldr r7, [sp, #0x30] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + mov r8, r5 + str r2, [sp] + mov r2, sp + strb r0, [r2, #4] + mov r0, sp + strb r1, [r0, #5] + strb r3, [r0, #6] + strb r4, [r0, #7] + strb r3, [r0, #8] + strb r4, [r0, #9] + ldr r0, _08004544 + ldr r0, [r0] + lsls r3, r1, #1 + adds r3, r3, r1 + lsls r3, r3, #2 + adds r3, r3, r0 + ldrb r0, [r3, #6] + strb r0, [r2, #0xa] + mov r1, sp + ldrb r0, [r3, #7] + strb r0, [r1, #0xb] + mov r5, sp + ldrb r1, [r3, #8] + lsls r1, r1, #0x1c + movs r6, #0xf + lsrs r1, r1, #0x1c + ldrb r4, [r5, #0xc] + movs r2, #0x10 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r4 + orrs r0, r1 + strb r0, [r5, #0xc] + mov r4, sp + ldrb r1, [r3, #8] + lsrs r1, r1, #4 + lsls r1, r1, #4 + ands r0, r6 + orrs r0, r1 + strb r0, [r4, #0xc] + ldrb r0, [r3, #9] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + adds r1, r6, #0 + ands r1, r0 + ldrb r0, [r4, #0xd] + ands r2, r0 + orrs r2, r1 + strb r2, [r4, #0xd] + mov r1, sp + ldrb r0, [r3, #9] + lsrs r0, r0, #4 + lsls r0, r0, #4 + ands r2, r6 + orrs r2, r0 + strb r2, [r1, #0xd] + mov r0, sp + mov r1, r8 + adds r2, r7, #0 + bl AddTextPrinter + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08004544: .4byte 0x03003020 + thumb_func_end AddTextPrinterParameterized + + thumb_func_start AddTextPrinter +AddTextPrinter: @ 0x08004548 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + mov ip, r2 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + ldr r0, _08004560 + ldr r0, [r0] + cmp r0, #0 + bne _08004564 + movs r0, #0 + b _0800461E + .align 2, 0 +_08004560: .4byte 0x03003020 +_08004564: + ldr r0, _080045CC + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0x1b] + strb r2, [r0, #0x1c] + strb r5, [r0, #0x1d] + strb r2, [r0, #0x1e] + strb r2, [r0, #0x1f] + adds r4, r0, #0 + movs r1, #6 + adds r0, #0x1a +_0800457A: + strb r2, [r0] + subs r0, #1 + subs r1, #1 + cmp r1, #0 + bge _0800457A + adds r1, r4, #0 + adds r0, r6, #0 + ldm r0!, {r2, r3, r7} + stm r1!, {r2, r3, r7} + ldr r0, [r0] + str r0, [r1] + mov r0, ip + str r0, [r4, #0x10] + ldrb r0, [r6, #0xc] + lsrs r0, r0, #4 + ldrb r2, [r6, #0xd] + lsls r1, r2, #0x1c + lsrs r1, r1, #0x1c + lsrs r2, r2, #4 + bl GenerateFontHalfRowLookupTable + cmp r5, #0xff + beq _080045D4 + cmp r5, #0 + beq _080045D4 + ldrb r0, [r4, #0x1d] + subs r0, #1 + strb r0, [r4, #0x1d] + ldr r0, _080045D0 + ldrb r1, [r6, #4] + lsls r1, r1, #5 + adds r1, r1, r0 + adds r0, r4, #0 + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldm r0!, {r2, r3, r7} + stm r1!, {r2, r3, r7} + ldm r0!, {r4, r7} + stm r1!, {r4, r7} + b _08004616 + .align 2, 0 +_080045CC: .4byte 0x0202018C +_080045D0: .4byte 0x020201AC +_080045D4: + ldr r1, _080045E0 + movs r0, #0 + strb r0, [r1, #0x1d] + movs r4, #0 + ldr r7, _080045E4 + b _080045EE + .align 2, 0 +_080045E0: .4byte 0x0202018C +_080045E4: .4byte 0x000003FF +_080045E8: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_080045EE: + cmp r4, r7 + bhi _080045FC + ldr r0, _08004624 + bl RenderFont + cmp r0, #1 + bne _080045E8 +_080045FC: + cmp r5, #0xff + beq _0800460A + ldr r0, _08004624 + ldrb r0, [r0, #4] + movs r1, #2 + bl CopyWindowToVram +_0800460A: + ldr r0, _08004628 + ldrb r1, [r6, #4] + lsls r1, r1, #5 + adds r1, r1, r0 + movs r0, #0 + strb r0, [r1, #0x1b] +_08004616: + ldr r1, _0800462C + movs r0, #0 + strb r0, [r1] + movs r0, #1 +_0800461E: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08004624: .4byte 0x0202018C +_08004628: .4byte 0x020201AC +_0800462C: .4byte 0x03003024 + thumb_func_end AddTextPrinter + + thumb_func_start RunTextPrinters +RunTextPrinters: @ 0x08004630 + push {r4, r5, r6, r7, lr} + ldr r0, _08004660 + ldrb r0, [r0] + cmp r0, #0 + bne _080046A0 + movs r6, #0 + movs r7, #0x1f +_0800463E: + ldr r0, _08004664 + adds r5, r6, r0 + ldrb r0, [r5, #0x1b] + cmp r0, #0 + beq _08004698 + adds r0, r5, #0 + bl RenderFont + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #1 + beq _08004694 + cmp r4, #1 + bgt _08004668 + cmp r4, #0 + beq _0800466E + b _08004698 + .align 2, 0 +_08004660: .4byte 0x03003024 +_08004664: .4byte 0x020201AC +_08004668: + cmp r4, #3 + beq _08004676 + b _08004698 +_0800466E: + ldrb r0, [r5, #4] + movs r1, #2 + bl CopyWindowToVram +_08004676: + ldr r1, _08004690 + adds r0, r1, #0 + adds r0, #0x10 + adds r0, r6, r0 + ldr r2, [r0] + cmp r2, #0 + beq _08004698 + adds r0, r6, r1 + adds r1, r4, #0 + bl _call_via_r2 + b _08004698 + .align 2, 0 +_08004690: .4byte 0x020201AC +_08004694: + movs r0, #0 + strb r0, [r5, #0x1b] +_08004698: + adds r6, #0x20 + subs r7, #1 + cmp r7, #0 + bge _0800463E +_080046A0: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end RunTextPrinters + + thumb_func_start IsTextPrinterActive +IsTextPrinterActive: @ 0x080046A8 + lsls r0, r0, #0x18 + ldr r1, _080046B4 + lsrs r0, r0, #0x13 + adds r0, r0, r1 + ldrb r0, [r0, #0x1b] + bx lr + .align 2, 0 +_080046B4: .4byte 0x020201AC + thumb_func_end IsTextPrinterActive + + thumb_func_start RenderFont +RenderFont: @ 0x080046B8 + push {r4, lr} + adds r4, r0, #0 +_080046BC: + ldrb r1, [r4, #5] + ldr r0, _080046E0 + ldr r2, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #2 + beq _080046BC + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080046E0: .4byte 0x03003020 + thumb_func_end RenderFont + + thumb_func_start GenerateFontHalfRowLookupTable +GenerateFontHalfRowLookupTable: @ 0x080046E4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r1, [sp] + str r0, [sp, #4] + str r2, [sp, #8] + ldr r3, _08004788 + strh r1, [r3] + ldr r1, _0800478C + strh r0, [r1] + ldr r0, _08004790 + strh r2, [r0] + movs r0, #0 + mov ip, r0 + movs r1, #0 +_08004714: + movs r2, #0 + lsls r0, r1, #2 + adds r1, #1 + mov sl, r1 + add r0, sp + mov r8, r0 +_08004720: + movs r1, #0 + lsls r0, r2, #2 + adds r2, #1 + mov sb, r2 + add r0, sp + str r0, [sp, #0xc] +_0800472C: + lsls r0, r1, #2 + adds r6, r1, #1 + mov r1, sp + adds r4, r1, r0 + mov r5, sp + mov r7, ip + lsls r0, r7, #1 + ldr r1, _08004794 + adds r2, r0, r1 + movs r3, #2 +_08004740: + ldm r5!, {r1} + lsls r1, r1, #0xc + ldr r0, [r4] + lsls r0, r0, #8 + orrs r1, r0 + ldr r7, [sp, #0xc] + ldr r0, [r7] + lsls r0, r0, #4 + orrs r1, r0 + mov r7, r8 + ldr r0, [r7] + orrs r0, r1 + strh r0, [r2] + adds r2, #2 + movs r0, #1 + add ip, r0 + subs r3, #1 + cmp r3, #0 + bge _08004740 + adds r1, r6, #0 + cmp r1, #2 + ble _0800472C + mov r2, sb + cmp r2, #2 + ble _08004720 + mov r1, sl + cmp r1, #2 + ble _08004714 + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08004788: .4byte 0x030009EA +_0800478C: .4byte 0x030009EC +_08004790: .4byte 0x030009EE +_08004794: .4byte 0x03000948 + thumb_func_end GenerateFontHalfRowLookupTable + + thumb_func_start SaveTextColors +SaveTextColors: @ 0x08004798 + ldr r3, _080047AC + ldrh r3, [r3] + strb r3, [r1] + ldr r1, _080047B0 + ldrh r1, [r1] + strb r1, [r0] + ldr r0, _080047B4 + ldrh r0, [r0] + strb r0, [r2] + bx lr + .align 2, 0 +_080047AC: .4byte 0x030009EA +_080047B0: .4byte 0x030009EC +_080047B4: .4byte 0x030009EE + thumb_func_end SaveTextColors + + thumb_func_start RestoreTextColors +RestoreTextColors: @ 0x080047B8 + push {lr} + ldrb r0, [r0] + ldrb r1, [r1] + ldrb r2, [r2] + bl GenerateFontHalfRowLookupTable + pop {r0} + bx r0 + thumb_func_end RestoreTextColors + + thumb_func_start DecompressGlyphTile +DecompressGlyphTile: @ 0x080047C8 + push {r4, r5, lr} + adds r2, r0, #0 + movs r3, #0 + ldr r5, _080047E0 + ldr r4, _080047E4 +_080047D2: + lsls r0, r3, #0x1f + cmp r0, #0 + beq _080047E8 + ldrb r0, [r2] + adds r2, #2 + b _080047EC + .align 2, 0 +_080047E0: .4byte 0x03000948 +_080047E4: .4byte 0x0829BEB8 +_080047E8: + ldrh r0, [r2] + lsrs r0, r0, #8 +_080047EC: + adds r0, r0, r4 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r0, [r0] + strh r0, [r1] + adds r1, #2 + adds r3, #1 + cmp r3, #0xf + ble _080047D2 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end DecompressGlyphTile + + thumb_func_start GetLastTextColor +GetLastTextColor: @ 0x08004808 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + cmp r0, #1 + beq _0800483C + cmp r0, #1 + bgt _0800481E + cmp r0, #0 + beq _08004824 + b _08004848 +_0800481E: + cmp r1, #2 + beq _08004830 + b _08004848 +_08004824: + ldr r0, _0800482C + ldrb r0, [r0] + b _0800484A + .align 2, 0 +_0800482C: .4byte 0x030009EC +_08004830: + ldr r0, _08004838 + ldrb r0, [r0] + b _0800484A + .align 2, 0 +_08004838: .4byte 0x030009EA +_0800483C: + ldr r0, _08004844 + ldrb r0, [r0] + b _0800484A + .align 2, 0 +_08004844: .4byte 0x030009EE +_08004848: + movs r0, #0 +_0800484A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetLastTextColor + + thumb_func_start CopyGlyphToWindow +CopyGlyphToWindow: @ 0x08004850 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x6c + adds r6, r0, #0 + ldr r0, _080048C0 + mov sb, r0 + ldrb r1, [r6, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + mov r1, sb + adds r2, r0, r1 + ldrb r0, [r2, #3] + lsls r0, r0, #3 + ldrb r1, [r6, #8] + subs r1, r0, r1 + ldr r3, _080048C4 + mov r8, r3 + mov r0, r8 + adds r0, #0x80 + ldrb r7, [r0] + cmp r1, r7 + bge _08004886 + adds r7, r1, #0 +_08004886: + ldrb r0, [r2, #4] + lsls r0, r0, #3 + ldrb r4, [r6, #9] + subs r0, r0, r4 + adds r1, r3, #0 + adds r1, #0x81 + ldrb r1, [r1] + mov sl, r1 + adds r5, r4, #0 + cmp r0, sl + bge _0800489E + mov sl, r0 +_0800489E: + movs r1, #0 + cmp r7, #8 + ble _080048A6 + movs r1, #1 +_080048A6: + mov r0, sl + cmp r0, #8 + ble _080048B0 + movs r0, #2 + orrs r1, r0 +_080048B0: + cmp r1, #1 + beq _08004970 + cmp r1, #1 + bgt _080048C8 + cmp r1, #0 + beq _080048D6 + b _08004E38 + .align 2, 0 +_080048C0: .4byte 0x02020004 +_080048C4: .4byte 0x03003030 +_080048C8: + cmp r1, #2 + bne _080048CE + b _08004AA4 +_080048CE: + cmp r1, #3 + bne _080048D4 + b _08004BDC +_080048D4: + b _08004E38 +_080048D6: + adds r2, r3, #0 + movs r1, #0 + adds r0, r5, #0 + cmp r1, sl + blt _080048E2 + b _08004E38 +_080048E2: + ldm r2!, {r3} + str r3, [sp] + movs r5, #0 + ldrb r4, [r6, #8] + str r2, [sp, #0x28] + adds r1, #1 + str r1, [sp, #0x20] + adds r1, r0, #1 + str r1, [sp, #0x24] + cmp r5, r7 + bge _08004960 + ldr r2, _0800496C + mov ip, r2 + asrs r3, r0, #3 + mov sb, r3 + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1b + mov r8, r0 +_08004906: + ldrb r0, [r6, #4] + lsls r3, r0, #1 + adds r3, r3, r0 + lsls r3, r3, #2 + mov r1, ip + adds r1, #8 + adds r1, r3, r1 + asrs r2, r4, #1 + movs r0, #3 + ands r2, r0 + ldr r1, [r1] + adds r1, r1, r2 + asrs r0, r4, #3 + lsls r0, r0, #5 + adds r1, r1, r0 + add r3, ip + ldrb r0, [r3, #3] + mov r2, sb + muls r2, r0, r2 + adds r0, r2, #0 + lsls r0, r0, #5 + adds r1, r1, r0 + mov r0, r8 + adds r3, r1, r0 + lsls r0, r5, #2 + ldr r2, [sp] + lsrs r2, r0 + movs r0, #0xf + ands r2, r0 + cmp r2, #0 + beq _08004958 + movs r0, #1 + ands r0, r4 + lsls r0, r0, #2 + lsls r2, r0 + movs r1, #0xf0 + asrs r1, r0 + ldrb r0, [r3] + ands r1, r0 + orrs r2, r1 + strb r2, [r3] +_08004958: + adds r5, #1 + adds r4, #1 + cmp r5, r7 + blt _08004906 +_08004960: + ldr r2, [sp, #0x28] + ldr r1, [sp, #0x20] + ldr r0, [sp, #0x24] + cmp r1, sl + blt _080048E2 + b _08004E38 + .align 2, 0 +_0800496C: .4byte 0x02020004 +_08004970: + movs r2, #0 + adds r1, r5, #0 + cmp r2, sl + bge _080049FA +_08004978: + ldm r3!, {r0} + mov sb, r0 + movs r5, #0 + ldrb r4, [r6, #8] + lsls r0, r1, #0x1d + str r3, [sp, #0x38] + adds r2, #1 + str r2, [sp, #0x30] + adds r2, r1, #1 + str r2, [sp, #0x34] + asrs r1, r1, #3 + mov ip, r1 + lsrs r0, r0, #0x1b + mov r8, r0 +_08004994: + ldrb r0, [r6, #4] + lsls r3, r0, #1 + adds r3, r3, r0 + lsls r3, r3, #2 + ldr r1, _08004A9C + adds r1, #8 + adds r1, r3, r1 + asrs r2, r4, #1 + movs r0, #3 + ands r2, r0 + ldr r1, [r1] + adds r1, r1, r2 + asrs r0, r4, #3 + lsls r0, r0, #5 + adds r1, r1, r0 + ldr r0, _08004A9C + adds r3, r3, r0 + ldrb r0, [r3, #3] + mov r2, ip + muls r2, r0, r2 + adds r0, r2, #0 + lsls r0, r0, #5 + adds r1, r1, r0 + mov r0, r8 + adds r3, r1, r0 + lsls r0, r5, #2 + mov r2, sb + lsrs r2, r0 + movs r0, #0xf + ands r2, r0 + cmp r2, #0 + beq _080049E8 + movs r0, #1 + ands r0, r4 + lsls r0, r0, #2 + lsls r2, r0 + movs r1, #0xf0 + asrs r1, r0 + ldrb r0, [r3] + ands r1, r0 + orrs r2, r1 + strb r2, [r3] +_080049E8: + adds r5, #1 + adds r4, #1 + cmp r5, #7 + ble _08004994 + ldr r3, [sp, #0x38] + ldr r2, [sp, #0x30] + ldr r1, [sp, #0x34] + cmp r2, sl + blt _08004978 +_080049FA: + ldr r3, _08004AA0 + movs r2, #0 + ldrb r1, [r6, #9] + cmp r2, sl + blt _08004A06 + b _08004E38 +_08004A06: + subs r7, #8 + str r7, [sp, #0x64] + str r7, [sp, #4] +_08004A0C: + ldm r3!, {r0} + mov ip, r0 + movs r5, #0 + ldrb r0, [r6, #8] + adds r4, r0, #0 + adds r4, #8 + str r3, [sp, #0x50] + adds r2, #1 + str r2, [sp, #0x48] + adds r2, r1, #1 + str r2, [sp, #0x4c] + ldr r3, [sp, #4] + cmp r5, r3 + bge _08004A90 + ldr r7, _08004A9C + asrs r0, r1, #3 + mov sb, r0 + lsls r0, r1, #0x1d + lsrs r0, r0, #0x1b + mov r8, r0 +_08004A34: + ldrb r0, [r6, #4] + lsls r3, r0, #1 + adds r3, r3, r0 + lsls r3, r3, #2 + adds r1, r7, #0 + adds r1, #8 + adds r1, r3, r1 + asrs r2, r4, #1 + movs r0, #3 + ands r2, r0 + ldr r1, [r1] + adds r1, r1, r2 + asrs r0, r4, #3 + lsls r0, r0, #5 + adds r1, r1, r0 + adds r3, r3, r7 + ldrb r0, [r3, #3] + mov r2, sb + muls r2, r0, r2 + adds r0, r2, #0 + lsls r0, r0, #5 + adds r1, r1, r0 + mov r0, r8 + adds r3, r1, r0 + lsls r0, r5, #2 + mov r2, ip + lsrs r2, r0 + movs r0, #0xf + ands r2, r0 + cmp r2, #0 + beq _08004A86 + movs r0, #1 + ands r0, r4 + lsls r0, r0, #2 + lsls r2, r0 + movs r1, #0xf0 + asrs r1, r0 + ldrb r0, [r3] + ands r1, r0 + orrs r2, r1 + strb r2, [r3] +_08004A86: + adds r5, #1 + adds r4, #1 + ldr r1, [sp, #0x64] + cmp r5, r1 + blt _08004A34 +_08004A90: + ldr r3, [sp, #0x50] + ldr r2, [sp, #0x48] + ldr r1, [sp, #0x4c] + cmp r2, sl + blt _08004A0C + b _08004E38 + .align 2, 0 +_08004A9C: .4byte 0x02020004 +_08004AA0: .4byte 0x03003050 +_08004AA4: + adds r1, r3, #0 + movs r2, #0 + adds r0, r5, #0 + mov r3, sl + subs r3, #8 + str r3, [sp, #0x68] +_08004AB0: + ldm r1!, {r3} + mov sl, r3 + movs r5, #0 + ldrb r4, [r6, #8] + str r1, [sp, #0x60] + adds r2, #1 + str r2, [sp, #0x58] + adds r1, r0, #1 + str r1, [sp, #0x5c] + cmp r5, r7 + bge _08004B2E + ldr r2, _08004BD4 + mov ip, r2 + asrs r3, r0, #3 + mov sb, r3 + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1b + mov r8, r0 +_08004AD4: + ldrb r0, [r6, #4] + lsls r3, r0, #1 + adds r3, r3, r0 + lsls r3, r3, #2 + mov r1, ip + adds r1, #8 + adds r1, r3, r1 + asrs r2, r4, #1 + movs r0, #3 + ands r2, r0 + ldr r1, [r1] + adds r1, r1, r2 + asrs r0, r4, #3 + lsls r0, r0, #5 + adds r1, r1, r0 + add r3, ip + ldrb r0, [r3, #3] + mov r2, sb + muls r2, r0, r2 + adds r0, r2, #0 + lsls r0, r0, #5 + adds r1, r1, r0 + mov r0, r8 + adds r3, r1, r0 + lsls r0, r5, #2 + mov r2, sl + lsrs r2, r0 + movs r0, #0xf + ands r2, r0 + cmp r2, #0 + beq _08004B26 + movs r0, #1 + ands r0, r4 + lsls r0, r0, #2 + lsls r2, r0 + movs r1, #0xf0 + asrs r1, r0 + ldrb r0, [r3] + ands r1, r0 + orrs r2, r1 + strb r2, [r3] +_08004B26: + adds r5, #1 + adds r4, #1 + cmp r5, r7 + blt _08004AD4 +_08004B2E: + ldr r1, [sp, #0x60] + ldr r2, [sp, #0x58] + ldr r0, [sp, #0x5c] + cmp r2, #7 + ble _08004AB0 + ldr r2, _08004BD8 + movs r1, #0 + ldrb r0, [r6, #9] + adds r0, #8 + ldr r3, [sp, #0x68] + cmp r1, r3 + blt _08004B48 + b _08004E38 +_08004B48: + ldm r2!, {r3} + mov sl, r3 + movs r5, #0 + ldrb r4, [r6, #8] + str r2, [sp, #0x1c] + adds r1, #1 + str r1, [sp, #0x14] + adds r1, r0, #1 + str r1, [sp, #0x18] + cmp r5, r7 + bge _08004BC6 + ldr r2, _08004BD4 + mov ip, r2 + asrs r3, r0, #3 + mov sb, r3 + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1b + mov r8, r0 +_08004B6C: + ldrb r0, [r6, #4] + lsls r3, r0, #1 + adds r3, r3, r0 + lsls r3, r3, #2 + mov r1, ip + adds r1, #8 + adds r1, r3, r1 + asrs r2, r4, #1 + movs r0, #3 + ands r2, r0 + ldr r1, [r1] + adds r1, r1, r2 + asrs r0, r4, #3 + lsls r0, r0, #5 + adds r1, r1, r0 + add r3, ip + ldrb r0, [r3, #3] + mov r2, sb + muls r2, r0, r2 + adds r0, r2, #0 + lsls r0, r0, #5 + adds r1, r1, r0 + mov r0, r8 + adds r3, r1, r0 + lsls r0, r5, #2 + mov r2, sl + lsrs r2, r0 + movs r0, #0xf + ands r2, r0 + cmp r2, #0 + beq _08004BBE + movs r0, #1 + ands r0, r4 + lsls r0, r0, #2 + lsls r2, r0 + movs r1, #0xf0 + asrs r1, r0 + ldrb r0, [r3] + ands r1, r0 + orrs r2, r1 + strb r2, [r3] +_08004BBE: + adds r5, #1 + adds r4, #1 + cmp r5, r7 + blt _08004B6C +_08004BC6: + ldr r2, [sp, #0x1c] + ldr r1, [sp, #0x14] + ldr r0, [sp, #0x18] + ldr r3, [sp, #0x68] + cmp r1, r3 + blt _08004B48 + b _08004E38 + .align 2, 0 +_08004BD4: .4byte 0x02020004 +_08004BD8: .4byte 0x03003070 +_08004BDC: + mov r2, r8 + movs r3, #0 + adds r1, r4, #0 + subs r7, #8 + str r7, [sp, #0x64] + mov r0, sl + subs r0, #8 + str r0, [sp, #0x68] +_08004BEC: + ldm r2!, {r0} + mov sb, r0 + movs r5, #0 + ldrb r4, [r6, #8] + lsls r0, r1, #0x1d + str r2, [sp, #0x2c] + adds r3, #1 + mov sl, r3 + adds r2, r1, #1 + mov ip, r2 + asrs r1, r1, #3 + mov r8, r1 + lsrs r7, r0, #0x1b +_08004C06: + ldrb r0, [r6, #4] + lsls r3, r0, #1 + adds r3, r3, r0 + lsls r3, r3, #2 + ldr r1, _08004D0C + adds r1, #8 + adds r1, r3, r1 + asrs r2, r4, #1 + movs r0, #3 + ands r2, r0 + ldr r1, [r1] + adds r1, r1, r2 + asrs r0, r4, #3 + lsls r0, r0, #5 + adds r1, r1, r0 + ldr r0, _08004D0C + adds r3, r3, r0 + ldrb r0, [r3, #3] + mov r2, r8 + muls r2, r0, r2 + adds r0, r2, #0 + lsls r0, r0, #5 + adds r1, r1, r0 + adds r3, r1, r7 + lsls r0, r5, #2 + mov r2, sb + lsrs r2, r0 + movs r0, #0xf + ands r2, r0 + cmp r2, #0 + beq _08004C58 + movs r0, #1 + ands r0, r4 + lsls r0, r0, #2 + lsls r2, r0 + movs r1, #0xf0 + asrs r1, r0 + ldrb r0, [r3] + ands r1, r0 + orrs r2, r1 + strb r2, [r3] +_08004C58: + adds r5, #1 + adds r4, #1 + cmp r5, #7 + ble _08004C06 + ldr r2, [sp, #0x2c] + mov r3, sl + mov r1, ip + cmp r3, #7 + ble _08004BEC + ldr r3, _08004D10 + movs r2, #0 + ldrb r1, [r6, #9] + ldr r0, [sp, #0x64] + mov ip, r0 +_08004C74: + ldm r3!, {r0} + mov sl, r0 + movs r5, #0 + ldrb r0, [r6, #8] + adds r4, r0, #0 + adds r4, #8 + str r3, [sp, #0x44] + adds r2, #1 + str r2, [sp, #0x3c] + adds r2, r1, #1 + str r2, [sp, #0x40] + cmp r5, ip + bge _08004CF4 + ldr r7, _08004D0C + asrs r3, r1, #3 + mov sb, r3 + lsls r0, r1, #0x1d + lsrs r0, r0, #0x1b + mov r8, r0 +_08004C9A: + ldrb r0, [r6, #4] + lsls r3, r0, #1 + adds r3, r3, r0 + lsls r3, r3, #2 + adds r1, r7, #0 + adds r1, #8 + adds r1, r3, r1 + asrs r2, r4, #1 + movs r0, #3 + ands r2, r0 + ldr r1, [r1] + adds r1, r1, r2 + asrs r0, r4, #3 + lsls r0, r0, #5 + adds r1, r1, r0 + adds r3, r3, r7 + ldrb r0, [r3, #3] + mov r2, sb + muls r2, r0, r2 + adds r0, r2, #0 + lsls r0, r0, #5 + adds r1, r1, r0 + mov r0, r8 + adds r3, r1, r0 + lsls r0, r5, #2 + mov r2, sl + lsrs r2, r0 + movs r0, #0xf + ands r2, r0 + cmp r2, #0 + beq _08004CEC + movs r0, #1 + ands r0, r4 + lsls r0, r0, #2 + lsls r2, r0 + movs r1, #0xf0 + asrs r1, r0 + ldrb r0, [r3] + ands r1, r0 + orrs r2, r1 + strb r2, [r3] +_08004CEC: + adds r5, #1 + adds r4, #1 + cmp r5, ip + blt _08004C9A +_08004CF4: + ldr r3, [sp, #0x44] + ldr r2, [sp, #0x3c] + ldr r1, [sp, #0x40] + cmp r2, #7 + ble _08004C74 + ldr r3, _08004D14 + movs r2, #0 + ldrb r0, [r6, #9] + adds r1, r0, #0 + adds r1, #8 + b _08004D92 + .align 2, 0 +_08004D0C: .4byte 0x02020004 +_08004D10: .4byte 0x03003050 +_08004D14: .4byte 0x03003070 +_08004D18: + ldm r3!, {r0} + mov sb, r0 + movs r5, #0 + ldrb r4, [r6, #8] + lsls r0, r1, #0x1d + str r3, [sp, #0x54] + adds r2, #1 + mov sl, r2 + adds r2, r1, #1 + mov ip, r2 + asrs r1, r1, #3 + mov r8, r1 + lsrs r7, r0, #0x1b +_08004D32: + ldrb r0, [r6, #4] + lsls r3, r0, #1 + adds r3, r3, r0 + lsls r3, r3, #2 + ldr r1, _08004E48 + adds r1, #8 + adds r1, r3, r1 + asrs r2, r4, #1 + movs r0, #3 + ands r2, r0 + ldr r1, [r1] + adds r1, r1, r2 + asrs r0, r4, #3 + lsls r0, r0, #5 + adds r1, r1, r0 + ldr r0, _08004E48 + adds r3, r3, r0 + ldrb r0, [r3, #3] + mov r2, r8 + muls r2, r0, r2 + adds r0, r2, #0 + lsls r0, r0, #5 + adds r1, r1, r0 + adds r3, r1, r7 + lsls r0, r5, #2 + mov r2, sb + lsrs r2, r0 + movs r0, #0xf + ands r2, r0 + cmp r2, #0 + beq _08004D84 + movs r0, #1 + ands r0, r4 + lsls r0, r0, #2 + lsls r2, r0 + movs r1, #0xf0 + asrs r1, r0 + ldrb r0, [r3] + ands r1, r0 + orrs r2, r1 + strb r2, [r3] +_08004D84: + adds r5, #1 + adds r4, #1 + cmp r5, #7 + ble _08004D32 + ldr r3, [sp, #0x54] + mov r2, sl + mov r1, ip +_08004D92: + ldr r0, [sp, #0x68] + cmp r2, r0 + blt _08004D18 + ldr r3, _08004E4C + movs r2, #0 + ldrb r0, [r6, #9] + adds r1, r0, #0 + adds r1, #8 + ldr r0, [sp, #0x68] + cmp r2, r0 + bge _08004E38 + ldr r0, [sp, #0x64] + mov sl, r0 +_08004DAC: + ldm r3!, {r0} + mov ip, r0 + movs r5, #0 + ldrb r0, [r6, #8] + adds r4, r0, #0 + adds r4, #8 + str r3, [sp, #0x10] + adds r2, #1 + str r2, [sp, #8] + adds r2, r1, #1 + str r2, [sp, #0xc] + cmp r5, sl + bge _08004E2C + ldr r7, _08004E48 + asrs r3, r1, #3 + mov sb, r3 + lsls r0, r1, #0x1d + lsrs r0, r0, #0x1b + mov r8, r0 +_08004DD2: + ldrb r0, [r6, #4] + lsls r3, r0, #1 + adds r3, r3, r0 + lsls r3, r3, #2 + adds r1, r7, #0 + adds r1, #8 + adds r1, r3, r1 + asrs r2, r4, #1 + movs r0, #3 + ands r2, r0 + ldr r1, [r1] + adds r1, r1, r2 + asrs r0, r4, #3 + lsls r0, r0, #5 + adds r1, r1, r0 + adds r3, r3, r7 + ldrb r0, [r3, #3] + mov r2, sb + muls r2, r0, r2 + adds r0, r2, #0 + lsls r0, r0, #5 + adds r1, r1, r0 + mov r0, r8 + adds r3, r1, r0 + lsls r0, r5, #2 + mov r2, ip + lsrs r2, r0 + movs r0, #0xf + ands r2, r0 + cmp r2, #0 + beq _08004E24 + movs r0, #1 + ands r0, r4 + lsls r0, r0, #2 + lsls r2, r0 + movs r1, #0xf0 + asrs r1, r0 + ldrb r0, [r3] + ands r1, r0 + orrs r2, r1 + strb r2, [r3] +_08004E24: + adds r5, #1 + adds r4, #1 + cmp r5, sl + blt _08004DD2 +_08004E2C: + ldr r3, [sp, #0x10] + ldr r2, [sp, #8] + ldr r1, [sp, #0xc] + ldr r0, [sp, #0x68] + cmp r2, r0 + blt _08004DAC +_08004E38: + add sp, #0x6c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08004E48: .4byte 0x02020004 +_08004E4C: .4byte 0x03003090 + thumb_func_end CopyGlyphToWindow + + thumb_func_start ClearTextSpan +ClearTextSpan: @ 0x08004E50 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x40 + str r0, [sp] + ldr r0, [sp, #0x60] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp, #4] + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + str r2, [sp, #8] + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + subs r1, r3, r1 + ldr r5, _08004EC4 + adds r0, r5, #0 + adds r0, #0x80 + ldrb r7, [r0] + adds r2, r5, #0 + cmp r1, r7 + bge _08004E86 + adds r7, r1, #0 +_08004E86: + ldr r1, [sp, #8] + subs r0, r4, r1 + adds r1, r2, #0 + adds r1, #0x81 + ldrb r1, [r1] + str r1, [sp, #0xc] + cmp r0, r1 + bge _08004E98 + str r0, [sp, #0xc] +_08004E98: + movs r1, #0 + movs r0, #7 + ands r0, r3 + adds r0, r3, r0 + lsrs r0, r0, #3 + str r0, [sp, #0x10] + cmp r7, #8 + ble _08004EAA + movs r1, #1 +_08004EAA: + ldr r3, [sp, #0xc] + cmp r3, #8 + ble _08004EB4 + movs r0, #2 + orrs r1, r0 +_08004EB4: + cmp r1, #1 + beq _08004F54 + cmp r1, #1 + bgt _08004EC8 + cmp r1, #0 + beq _08004ED6 + b _0800533C + .align 2, 0 +_08004EC4: .4byte 0x03003030 +_08004EC8: + cmp r1, #2 + bne _08004ECE + b _08005058 +_08004ECE: + cmp r1, #3 + bne _08004ED4 + b _08005158 +_08004ED4: + b _0800533C +_08004ED6: + adds r1, r2, #0 + movs r0, #0 + ldr r2, [sp, #8] + ldr r3, [sp, #0xc] + cmp r0, r3 + blt _08004EE4 + b _0800533C +_08004EE4: + ldm r1!, {r3} + mov r8, r3 + movs r5, #0 + ldr r3, [sp, #4] + str r1, [sp, #0x28] + adds r0, #1 + mov sb, r0 + adds r0, r2, #1 + mov sl, r0 + cmp r5, r7 + bge _08004F46 + asrs r0, r2, #3 + ldr r1, [sp, #0x10] + muls r0, r1, r0 + lsls r0, r0, #5 + mov ip, r0 + lsls r0, r2, #0x1d + lsrs r6, r0, #0x1b +_08004F08: + asrs r1, r3, #1 + movs r0, #3 + ands r1, r0 + ldr r2, [sp] + adds r1, r2, r1 + asrs r0, r3, #3 + lsls r0, r0, #5 + adds r1, r1, r0 + add r1, ip + adds r4, r1, r6 + lsls r0, r5, #2 + mov r2, r8 + lsrs r2, r0 + movs r0, #0xf + ands r2, r0 + cmp r2, #0 + beq _08004F3E + movs r0, #1 + ands r0, r3 + lsls r0, r0, #2 + lsls r2, r0 + movs r1, #0xf0 + asrs r1, r0 + ldrb r0, [r4] + ands r1, r0 + orrs r2, r1 + strb r2, [r4] +_08004F3E: + adds r5, #1 + adds r3, #1 + cmp r5, r7 + blt _08004F08 +_08004F46: + ldr r1, [sp, #0x28] + mov r0, sb + mov r2, sl + ldr r3, [sp, #0xc] + cmp r0, r3 + blt _08004EE4 + b _0800533C +_08004F54: + adds r5, r2, #0 + movs r4, #0 + ldr r2, [sp, #8] + ldr r0, [sp, #0xc] + cmp r4, r0 + bge _08004FCA +_08004F60: + ldm r5!, {r1} + mov r8, r1 + movs r6, #0 + ldr r3, [sp, #4] + asrs r0, r2, #3 + lsls r1, r2, #0x1d + str r5, [sp, #0x2c] + adds r4, #1 + mov sb, r4 + adds r2, #1 + mov sl, r2 + ldr r2, [sp, #0x10] + muls r0, r2, r0 + lsls r0, r0, #5 + mov ip, r0 + lsrs r5, r1, #0x1b +_08004F80: + asrs r1, r3, #1 + movs r0, #3 + ands r1, r0 + ldr r0, [sp] + adds r1, r0, r1 + asrs r0, r3, #3 + lsls r0, r0, #5 + adds r1, r1, r0 + add r1, ip + adds r4, r1, r5 + lsls r0, r6, #2 + mov r2, r8 + lsrs r2, r0 + movs r0, #0xf + ands r2, r0 + cmp r2, #0 + beq _08004FB6 + movs r0, #1 + ands r0, r3 + lsls r0, r0, #2 + lsls r2, r0 + movs r1, #0xf0 + asrs r1, r0 + ldrb r0, [r4] + ands r1, r0 + orrs r2, r1 + strb r2, [r4] +_08004FB6: + adds r6, #1 + adds r3, #1 + cmp r6, #7 + ble _08004F80 + ldr r5, [sp, #0x2c] + mov r4, sb + mov r2, sl + ldr r1, [sp, #0xc] + cmp r4, r1 + blt _08004F60 +_08004FCA: + ldr r1, _08005054 + movs r0, #0 + ldr r2, [sp, #8] + ldr r3, [sp, #0xc] + cmp r0, r3 + blt _08004FD8 + b _0800533C +_08004FD8: + subs r7, #8 + str r7, [sp, #0x18] + str r7, [sp, #0x14] +_08004FDE: + ldm r1!, {r3} + mov r8, r3 + movs r5, #0 + ldr r3, [sp, #4] + adds r3, #8 + mov ip, r1 + adds r0, #1 + mov sb, r0 + adds r0, r2, #1 + mov sl, r0 + ldr r1, [sp, #0x14] + cmp r5, r1 + bge _08005044 + asrs r0, r2, #3 + ldr r1, [sp, #0x10] + muls r0, r1, r0 + lsls r7, r0, #5 + lsls r0, r2, #0x1d + lsrs r6, r0, #0x1b +_08005004: + asrs r1, r3, #1 + movs r0, #3 + ands r1, r0 + ldr r2, [sp] + adds r1, r2, r1 + asrs r0, r3, #3 + lsls r0, r0, #5 + adds r1, r1, r0 + adds r1, r1, r7 + adds r4, r1, r6 + lsls r0, r5, #2 + mov r2, r8 + lsrs r2, r0 + movs r0, #0xf + ands r2, r0 + cmp r2, #0 + beq _0800503A + movs r0, #1 + ands r0, r3 + lsls r0, r0, #2 + lsls r2, r0 + movs r1, #0xf0 + asrs r1, r0 + ldrb r0, [r4] + ands r1, r0 + orrs r2, r1 + strb r2, [r4] +_0800503A: + adds r5, #1 + adds r3, #1 + ldr r0, [sp, #0x18] + cmp r5, r0 + blt _08005004 +_08005044: + mov r1, ip + mov r0, sb + mov r2, sl + ldr r3, [sp, #0xc] + cmp r0, r3 + blt _08004FDE + b _0800533C + .align 2, 0 +_08005054: .4byte 0x03003050 +_08005058: + adds r0, r2, #0 + movs r1, #0 + ldr r2, [sp, #8] + adds r3, r2, #0 + adds r3, #8 + str r3, [sp, #0x1c] + ldr r3, [sp, #0xc] + subs r3, #8 + str r3, [sp, #0x20] +_0800506A: + ldm r0!, {r3} + mov r8, r3 + movs r5, #0 + ldr r3, [sp, #4] + str r0, [sp, #0x34] + adds r1, #1 + mov sb, r1 + adds r0, r2, #1 + mov sl, r0 + cmp r5, r7 + bge _080050CC + asrs r0, r2, #3 + ldr r1, [sp, #0x10] + muls r0, r1, r0 + lsls r0, r0, #5 + mov ip, r0 + lsls r0, r2, #0x1d + lsrs r6, r0, #0x1b +_0800508E: + asrs r1, r3, #1 + movs r0, #3 + ands r1, r0 + ldr r2, [sp] + adds r1, r2, r1 + asrs r0, r3, #3 + lsls r0, r0, #5 + adds r1, r1, r0 + add r1, ip + adds r4, r1, r6 + lsls r0, r5, #2 + mov r2, r8 + lsrs r2, r0 + movs r0, #0xf + ands r2, r0 + cmp r2, #0 + beq _080050C4 + movs r0, #1 + ands r0, r3 + lsls r0, r0, #2 + lsls r2, r0 + movs r1, #0xf0 + asrs r1, r0 + ldrb r0, [r4] + ands r1, r0 + orrs r2, r1 + strb r2, [r4] +_080050C4: + adds r5, #1 + adds r3, #1 + cmp r5, r7 + blt _0800508E +_080050CC: + ldr r0, [sp, #0x34] + mov r1, sb + mov r2, sl + cmp r1, #7 + ble _0800506A + ldr r2, _08005154 + movs r0, #0 + ldr r1, [sp, #0x1c] + ldr r3, [sp, #0x20] + cmp r0, r3 + blt _080050E4 + b _0800533C +_080050E4: + ldm r2!, {r3} + mov r8, r3 + movs r5, #0 + ldr r3, [sp, #4] + str r2, [sp, #0x38] + adds r0, #1 + mov sb, r0 + adds r0, r1, #1 + mov sl, r0 + cmp r5, r7 + bge _08005146 + asrs r0, r1, #3 + ldr r2, [sp, #0x10] + muls r0, r2, r0 + lsls r0, r0, #5 + mov ip, r0 + lsls r0, r1, #0x1d + lsrs r6, r0, #0x1b +_08005108: + asrs r1, r3, #1 + movs r0, #3 + ands r1, r0 + ldr r0, [sp] + adds r1, r0, r1 + asrs r0, r3, #3 + lsls r0, r0, #5 + adds r1, r1, r0 + add r1, ip + adds r4, r1, r6 + lsls r0, r5, #2 + mov r2, r8 + lsrs r2, r0 + movs r0, #0xf + ands r2, r0 + cmp r2, #0 + beq _0800513E + movs r0, #1 + ands r0, r3 + lsls r0, r0, #2 + lsls r2, r0 + movs r1, #0xf0 + asrs r1, r0 + ldrb r0, [r4] + ands r1, r0 + orrs r2, r1 + strb r2, [r4] +_0800513E: + adds r5, #1 + adds r3, #1 + cmp r5, r7 + blt _08005108 +_08005146: + ldr r2, [sp, #0x38] + mov r0, sb + mov r1, sl + ldr r3, [sp, #0x20] + cmp r0, r3 + blt _080050E4 + b _0800533C + .align 2, 0 +_08005154: .4byte 0x03003070 +_08005158: + movs r2, #0 + ldr r4, [sp, #8] + ldr r0, [sp, #4] + adds r0, #8 + str r0, [sp, #0x3c] + subs r7, #8 + str r7, [sp, #0x18] + adds r1, r4, #0 + adds r1, #8 + str r1, [sp, #0x1c] + ldr r3, [sp, #0xc] + subs r3, #8 + str r3, [sp, #0x20] +_08005172: + ldm r5!, {r0} + mov r8, r0 + movs r6, #0 + ldr r3, [sp, #4] + asrs r0, r4, #3 + lsls r1, r4, #0x1d + mov sl, r5 + adds r2, #1 + mov ip, r2 + adds r4, #1 + mov sb, r4 + ldr r2, [sp, #0x10] + muls r0, r2, r0 + lsls r7, r0, #5 + lsrs r5, r1, #0x1b +_08005190: + asrs r1, r3, #1 + movs r0, #3 + ands r1, r0 + ldr r0, [sp] + adds r1, r0, r1 + asrs r0, r3, #3 + lsls r0, r0, #5 + adds r1, r1, r0 + adds r1, r1, r7 + adds r4, r1, r5 + lsls r0, r6, #2 + mov r2, r8 + lsrs r2, r0 + movs r0, #0xf + ands r2, r0 + cmp r2, #0 + beq _080051C6 + movs r0, #1 + ands r0, r3 + lsls r0, r0, #2 + lsls r2, r0 + movs r1, #0xf0 + asrs r1, r0 + ldrb r0, [r4] + ands r1, r0 + orrs r2, r1 + strb r2, [r4] +_080051C6: + adds r6, #1 + adds r3, #1 + cmp r6, #7 + ble _08005190 + mov r5, sl + mov r2, ip + mov r4, sb + cmp r2, #7 + ble _08005172 + ldr r1, _0800534C + movs r0, #0 + ldr r2, [sp, #8] + ldr r3, [sp, #0x18] + mov ip, r3 +_080051E2: + ldm r1!, {r3} + mov r8, r3 + movs r5, #0 + ldr r3, [sp, #0x3c] + str r1, [sp, #0x24] + adds r0, #1 + mov sb, r0 + adds r0, r2, #1 + mov sl, r0 + cmp r5, ip + bge _08005242 + asrs r0, r2, #3 + ldr r1, [sp, #0x10] + muls r0, r1, r0 + lsls r7, r0, #5 + lsls r0, r2, #0x1d + lsrs r6, r0, #0x1b +_08005204: + asrs r1, r3, #1 + movs r0, #3 + ands r1, r0 + ldr r2, [sp] + adds r1, r2, r1 + asrs r0, r3, #3 + lsls r0, r0, #5 + adds r1, r1, r0 + adds r1, r1, r7 + adds r4, r1, r6 + lsls r0, r5, #2 + mov r2, r8 + lsrs r2, r0 + movs r0, #0xf + ands r2, r0 + cmp r2, #0 + beq _0800523A + movs r0, #1 + ands r0, r3 + lsls r0, r0, #2 + lsls r2, r0 + movs r1, #0xf0 + asrs r1, r0 + ldrb r0, [r4] + ands r1, r0 + orrs r2, r1 + strb r2, [r4] +_0800523A: + adds r5, #1 + adds r3, #1 + cmp r5, ip + blt _08005204 +_08005242: + ldr r1, [sp, #0x24] + mov r0, sb + mov r2, sl + cmp r0, #7 + ble _080051E2 + ldr r6, _08005350 + movs r4, #0 + ldr r2, [sp, #0x1c] + ldr r3, [sp, #0x20] + cmp r4, r3 + bge _080052C0 +_08005258: + ldm r6!, {r0} + mov r8, r0 + movs r5, #0 + ldr r3, [sp, #4] + asrs r0, r2, #3 + lsls r1, r2, #0x1d + mov ip, r6 + adds r4, #1 + mov sb, r4 + adds r2, #1 + mov sl, r2 + ldr r2, [sp, #0x10] + muls r0, r2, r0 + lsls r7, r0, #5 + lsrs r6, r1, #0x1b +_08005276: + asrs r1, r3, #1 + movs r0, #3 + ands r1, r0 + ldr r0, [sp] + adds r1, r0, r1 + asrs r0, r3, #3 + lsls r0, r0, #5 + adds r1, r1, r0 + adds r1, r1, r7 + adds r4, r1, r6 + lsls r0, r5, #2 + mov r2, r8 + lsrs r2, r0 + movs r0, #0xf + ands r2, r0 + cmp r2, #0 + beq _080052AC + movs r0, #1 + ands r0, r3 + lsls r0, r0, #2 + lsls r2, r0 + movs r1, #0xf0 + asrs r1, r0 + ldrb r0, [r4] + ands r1, r0 + orrs r2, r1 + strb r2, [r4] +_080052AC: + adds r5, #1 + adds r3, #1 + cmp r5, #7 + ble _08005276 + mov r6, ip + mov r4, sb + mov r2, sl + ldr r1, [sp, #0x20] + cmp r4, r1 + blt _08005258 +_080052C0: + ldr r2, _08005354 + movs r0, #0 + ldr r1, [sp, #0x1c] + ldr r3, [sp, #0x20] + cmp r0, r3 + bge _0800533C + ldr r3, [sp, #0x18] + mov ip, r3 +_080052D0: + ldm r2!, {r3} + mov r8, r3 + movs r5, #0 + ldr r3, [sp, #0x3c] + str r2, [sp, #0x30] + adds r0, #1 + mov sb, r0 + adds r0, r1, #1 + mov sl, r0 + cmp r5, ip + bge _08005330 + asrs r0, r1, #3 + ldr r2, [sp, #0x10] + muls r0, r2, r0 + lsls r7, r0, #5 + lsls r0, r1, #0x1d + lsrs r6, r0, #0x1b +_080052F2: + asrs r1, r3, #1 + movs r0, #3 + ands r1, r0 + ldr r0, [sp] + adds r1, r0, r1 + asrs r0, r3, #3 + lsls r0, r0, #5 + adds r1, r1, r0 + adds r1, r1, r7 + adds r4, r1, r6 + lsls r0, r5, #2 + mov r2, r8 + lsrs r2, r0 + movs r0, #0xf + ands r2, r0 + cmp r2, #0 + beq _08005328 + movs r0, #1 + ands r0, r3 + lsls r0, r0, #2 + lsls r2, r0 + movs r1, #0xf0 + asrs r1, r0 + ldrb r0, [r4] + ands r1, r0 + orrs r2, r1 + strb r2, [r4] +_08005328: + adds r5, #1 + adds r3, #1 + cmp r5, ip + blt _080052F2 +_08005330: + ldr r2, [sp, #0x30] + mov r0, sb + mov r1, sl + ldr r3, [sp, #0x20] + cmp r0, r3 + blt _080052D0 +_0800533C: + add sp, #0x40 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800534C: .4byte 0x03003050 +_08005350: .4byte 0x03003070 +_08005354: .4byte 0x03003090 + thumb_func_end ClearTextSpan + + thumb_func_start Font0Func +Font0Func: @ 0x08005358 + push {lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x14 + ldrb r1, [r3, #1] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0800537C + ldrb r1, [r2, #0x14] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x14] + ldrb r0, [r3, #1] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r3, #1] +_0800537C: + adds r0, r2, #0 + bl RenderText + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end Font0Func + + thumb_func_start Font1Func +Font1Func: @ 0x0800538C + push {lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x14 + ldrb r1, [r3, #1] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080053B4 + ldrb r1, [r2, #0x14] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x14] + ldrb r0, [r3, #1] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r3, #1] +_080053B4: + adds r0, r2, #0 + bl RenderText + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end Font1Func + + thumb_func_start Font2Func +Font2Func: @ 0x080053C4 + push {lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x14 + ldrb r1, [r3, #1] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080053EC + ldrb r1, [r2, #0x14] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #0x14] + ldrb r0, [r3, #1] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r3, #1] +_080053EC: + adds r0, r2, #0 + bl RenderText + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end Font2Func + + thumb_func_start Font3Func +Font3Func: @ 0x080053FC + push {lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x14 + ldrb r1, [r3, #1] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08005424 + ldrb r1, [r2, #0x14] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2, #0x14] + ldrb r0, [r3, #1] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r3, #1] +_08005424: + adds r0, r2, #0 + bl RenderText + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end Font3Func + + thumb_func_start Font4Func +Font4Func: @ 0x08005434 + push {lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x14 + ldrb r1, [r3, #1] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0800545C + ldrb r1, [r2, #0x14] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #0x14] + ldrb r0, [r3, #1] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r3, #1] +_0800545C: + adds r0, r2, #0 + bl RenderText + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end Font4Func + + thumb_func_start Font5Func +Font5Func: @ 0x0800546C + push {lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x14 + ldrb r1, [r3, #1] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08005494 + ldrb r1, [r2, #0x14] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2, #0x14] + ldrb r0, [r3, #1] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r3, #1] +_08005494: + adds r0, r2, #0 + bl RenderText + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end Font5Func + + thumb_func_start TextPrinterInitDownArrowCounters +TextPrinterInitDownArrowCounters: @ 0x080054A4 + push {lr} + adds r2, r0, #0 + adds r2, #0x14 + ldr r0, _080054BC + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080054C0 + movs r0, #0 + strb r0, [r2, #2] + b _080054D0 + .align 2, 0 +_080054BC: .4byte 0x030030B4 +_080054C0: + ldrb r0, [r2, #1] + movs r1, #0x61 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #0x20 + rsbs r0, r0, #0 + ands r1, r0 + strb r1, [r2, #1] +_080054D0: + pop {r0} + bx r0 + thumb_func_end TextPrinterInitDownArrowCounters + + thumb_func_start TextPrinterDrawDownArrow +TextPrinterDrawDownArrow: @ 0x080054D4 + push {r4, r5, r6, r7, lr} + sub sp, #0x18 + adds r5, r0, #0 + adds r6, r5, #0 + adds r6, #0x14 + ldr r7, _08005508 + ldrb r1, [r7] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _0800559A + ldrb r2, [r6, #1] + movs r0, #0x1f + ands r0, r2 + cmp r0, #0 + beq _0800550C + ldr r0, [r5, #0x14] + lsls r0, r0, #0x13 + lsrs r0, r0, #0x1b + subs r0, #1 + movs r1, #0x1f + ands r0, r1 + movs r1, #0x20 + rsbs r1, r1, #0 + b _08005594 + .align 2, 0 +_08005508: .4byte 0x030030B4 +_0800550C: + ldrb r0, [r5, #4] + ldrb r2, [r5, #0xd] + lsls r2, r2, #0x1c + lsrs r1, r2, #4 + orrs r1, r2 + lsrs r1, r1, #0x18 + ldrb r2, [r5, #8] + ldrb r3, [r5, #9] + movs r4, #8 + str r4, [sp] + movs r4, #0x10 + str r4, [sp, #4] + bl FillWindowPixelRect + ldr r0, [r7] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1f + cmp r0, #0 + beq _08005536 + cmp r0, #1 + beq _08005540 +_08005536: + ldr r7, _0800553C + b _08005542 + .align 2, 0 +_0800553C: .4byte 0x0829BFB8 +_08005540: + ldr r7, _080055A4 +_08005542: + ldrb r0, [r5, #4] + ldr r2, _080055A8 + ldr r1, [r6] + lsls r1, r1, #0x11 + lsrs r1, r1, #0x1e + adds r1, r1, r2 + ldrb r3, [r1] + movs r4, #8 + str r4, [sp] + movs r2, #0x10 + str r2, [sp, #4] + ldrb r1, [r5, #8] + str r1, [sp, #8] + ldrb r1, [r5, #9] + str r1, [sp, #0xc] + str r4, [sp, #0x10] + str r2, [sp, #0x14] + adds r1, r7, #0 + movs r2, #0 + bl BlitBitmapRectToWindow + ldrb r0, [r5, #4] + movs r1, #2 + bl CopyWindowToVram + ldrb r0, [r6, #1] + movs r1, #0x20 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #8 + orrs r1, r0 + strb r1, [r6, #1] + ldr r0, [r6] + lsls r0, r0, #0x11 + lsrs r0, r0, #0x1e + adds r0, #1 + movs r2, #3 + ands r0, r2 + lsls r0, r0, #5 + movs r2, #0x61 + rsbs r2, r2, #0 +_08005594: + ands r1, r2 + orrs r1, r0 + strb r1, [r6, #1] +_0800559A: + add sp, #0x18 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080055A4: .4byte 0x0829C078 +_080055A8: .4byte 0x0829C638 + thumb_func_end TextPrinterDrawDownArrow + + thumb_func_start TextPrinterClearDownArrow +TextPrinterClearDownArrow: @ 0x080055AC + push {r4, r5, lr} + sub sp, #8 + adds r5, r0, #0 + ldrb r0, [r5, #4] + ldrb r2, [r5, #0xd] + lsls r2, r2, #0x1c + lsrs r1, r2, #4 + orrs r1, r2 + lsrs r1, r1, #0x18 + ldrb r2, [r5, #8] + ldrb r3, [r5, #9] + movs r4, #8 + str r4, [sp] + movs r4, #0x10 + str r4, [sp, #4] + bl FillWindowPixelRect + ldrb r0, [r5, #4] + movs r1, #2 + bl CopyWindowToVram + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end TextPrinterClearDownArrow + + thumb_func_start TextPrinterWaitAutoMode +TextPrinterWaitAutoMode: @ 0x080055E0 + push {lr} + adds r1, r0, #0 + adds r1, #0x14 + ldrb r0, [r1, #2] + cmp r0, #0x31 + beq _080055F4 + adds r0, #1 + strb r0, [r1, #2] + movs r0, #0 + b _080055F6 +_080055F4: + movs r0, #1 +_080055F6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TextPrinterWaitAutoMode + + thumb_func_start TextPrinterWaitWithDownArrow +TextPrinterWaitWithDownArrow: @ 0x080055FC + push {r4, lr} + adds r2, r0, #0 + movs r4, #0 + ldr r0, _0800561C + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08005620 + adds r0, r2, #0 + bl TextPrinterWaitAutoMode + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + b _0800563A + .align 2, 0 +_0800561C: .4byte 0x030030B4 +_08005620: + adds r0, r2, #0 + bl TextPrinterDrawDownArrow + ldr r0, _08005644 + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _0800563A + movs r4, #1 + movs r0, #5 + bl PlaySE +_0800563A: + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08005644: .4byte 0x03002360 + thumb_func_end TextPrinterWaitWithDownArrow + + thumb_func_start TextPrinterWait +TextPrinterWait: @ 0x08005648 + push {r4, lr} + adds r2, r0, #0 + movs r4, #0 + ldr r0, _08005668 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0800566C + adds r0, r2, #0 + bl TextPrinterWaitAutoMode + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + b _08005680 + .align 2, 0 +_08005668: .4byte 0x030030B4 +_0800566C: + ldr r0, _08005688 + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _08005680 + movs r4, #1 + movs r0, #5 + bl PlaySE +_08005680: + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08005688: .4byte 0x03002360 + thumb_func_end TextPrinterWait + + thumb_func_start DrawDownArrow +DrawDownArrow: @ 0x0800568C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + ldr r4, [sp, #0x38] + ldr r5, [sp, #0x3c] + mov sb, r5 + ldr r5, [sp, #0x40] + mov sl, r5 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r8, r1 + lsls r2, r2, #0x10 + lsrs r7, r2, #0x10 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r1, sb + ldrb r0, [r1] + cmp r0, #0 + beq _080056C6 + subs r0, #1 + strb r0, [r1] + b _08005746 +_080056C6: + lsls r1, r3, #4 + orrs r1, r3 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #8 + str r0, [sp] + movs r0, #0x10 + str r0, [sp, #4] + adds r0, r5, #0 + mov r2, r8 + adds r3, r7, #0 + bl FillWindowPixelRect + cmp r4, #0 + bne _08005746 + ldr r0, _080056F8 + ldr r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1f + cmp r0, #0 + beq _080056F4 + cmp r0, #1 + beq _08005700 +_080056F4: + ldr r6, _080056FC + b _08005702 + .align 2, 0 +_080056F8: .4byte 0x030030B4 +_080056FC: .4byte 0x0829BFB8 +_08005700: + ldr r6, _08005758 +_08005702: + ldr r2, _0800575C + mov r0, sl + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + adds r0, r0, r2 + ldrb r3, [r0] + movs r4, #8 + str r4, [sp] + movs r1, #0x10 + str r1, [sp, #4] + mov r0, r8 + str r0, [sp, #8] + subs r0, r7, #2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0xc] + str r4, [sp, #0x10] + str r1, [sp, #0x14] + adds r0, r5, #0 + adds r1, r6, #0 + movs r2, #0 + bl BlitBitmapRectToWindow + adds r0, r5, #0 + movs r1, #2 + bl CopyWindowToVram + mov r1, sb + strb r4, [r1] + mov r5, sl + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] +_08005746: + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08005758: .4byte 0x0829C078 +_0800575C: .4byte 0x0829C638 + thumb_func_end DrawDownArrow + + thumb_func_start RenderText +RenderText: @ 0x08005760 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r4, r6, #0 + adds r4, #0x14 + ldrb r0, [r6, #0x1c] + cmp r0, #6 + bls _08005770 + b _08005C40 +_08005770: + lsls r0, r0, #2 + ldr r1, _0800577C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0800577C: .4byte 0x08005780 +_08005780: @ jump table + .4byte _0800579C @ case 0 + .4byte _08005B50 @ case 1 + .4byte _08005B62 @ case 2 + .4byte _08005B8C @ case 3 + .4byte _08005BC4 @ case 4 + .4byte _08005C1C @ case 5 + .4byte _08005C2E @ case 6 +_0800579C: + ldr r2, _080057F0 + ldrh r1, [r2, #0x2c] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _080057B6 + ldrb r1, [r4] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080057B6 + movs r0, #0 + strb r0, [r6, #0x1e] +_080057B6: + ldrb r1, [r6, #0x1e] + cmp r1, #0 + beq _080057F8 + ldrb r0, [r6, #0x1d] + cmp r0, #0 + beq _080057F8 + subs r0, r1, #1 + strb r0, [r6, #0x1e] + ldr r0, _080057F4 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080057D4 + b _08005A96 +_080057D4: + ldrh r1, [r2, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _080057E0 + b _08005A96 +_080057E0: + ldrb r0, [r4] + movs r1, #0x10 + orrs r0, r1 + strb r0, [r4] + movs r0, #0 + strb r0, [r6, #0x1e] + b _08005A96 + .align 2, 0 +_080057F0: .4byte 0x03002360 +_080057F4: .4byte 0x030030B4 +_080057F8: + ldr r0, _08005818 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + bne _08005820 + ldr r0, _0800581C + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08005820 + movs r0, #3 + b _08005822 + .align 2, 0 +_08005818: .4byte 0x02022C90 +_0800581C: .4byte 0x030030B4 +_08005820: + ldrb r0, [r6, #0x1d] +_08005822: + strb r0, [r6, #0x1e] + ldr r0, [r6] + ldrb r3, [r0] + adds r0, #1 + str r0, [r6] + adds r0, r3, #0 + subs r0, #0xf8 + cmp r0, #7 + bls _08005836 + b _08005AD4 +_08005836: + lsls r0, r0, #2 + ldr r1, _08005840 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08005840: .4byte 0x08005844 +_08005844: @ jump table + .4byte _08005AAC @ case 0 + .4byte _08005A9A @ case 1 + .4byte _08005A8C @ case 2 + .4byte _08005A88 @ case 3 + .4byte _08005888 @ case 4 + .4byte _08005A80 @ case 5 + .4byte _08005864 @ case 6 + .4byte _08005C40 @ case 7 +_08005864: + ldrb r0, [r6, #6] + strb r0, [r6, #8] + ldrb r1, [r6, #5] + ldr r0, _08005884 + ldr r2, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r6, #0xb] + ldrb r0, [r0, #5] + adds r1, r1, r0 + ldrb r0, [r6, #9] + adds r0, r0, r1 + b _08005A62 + .align 2, 0 +_08005884: .4byte 0x03003020 +_08005888: + ldr r0, [r6] + ldrb r3, [r0] + adds r0, #1 + str r0, [r6] + subs r0, r3, #1 + cmp r0, #0x17 + bls _08005898 + b _08005AD4 +_08005898: + lsls r0, r0, #2 + ldr r1, _080058A4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080058A4: .4byte 0x080058A8 +_080058A8: @ jump table + .4byte _08005908 @ case 0 + .4byte _0800592A @ case 1 + .4byte _0800594E @ case 2 + .4byte _08005968 @ case 3 + .4byte _08005A80 @ case 4 + .4byte _080059B6 @ case 5 + .4byte _080059B2 @ case 6 + .4byte _080059CC @ case 7 + .4byte _080059DC @ case 8 + .4byte _080059F8 @ case 9 + .4byte _080059FC @ case 10 + .4byte _08005A9A @ case 11 + .4byte _08005A30 @ case 12 + .4byte _08005A3C @ case 13 + .4byte _08005A4C @ case 14 + .4byte _08005A16 @ case 15 + .4byte _08005A80 @ case 16 + .4byte _08005A80 @ case 17 + .4byte _08005A80 @ case 18 + .4byte _08005A80 @ case 19 + .4byte _080059B2 @ case 20 + .4byte _080059B2 @ case 21 + .4byte _08005A66 @ case 22 + .4byte _08005A74 @ case 23 +_08005908: + ldr r2, [r6] + ldrb r1, [r2] + lsls r1, r1, #4 + ldrb r3, [r6, #0xc] + movs r0, #0xf + ands r0, r3 + orrs r0, r1 + strb r0, [r6, #0xc] + adds r2, #1 + str r2, [r6] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1c + ldrb r2, [r6, #0xd] + lsls r1, r2, #0x1c + lsrs r1, r1, #0x1c + lsrs r2, r2, #4 + b _080059AE +_0800592A: + ldr r1, [r6] + ldrb r2, [r1] + movs r0, #0xf + ands r0, r2 + ldrb r3, [r6, #0xd] + movs r2, #0x10 + rsbs r2, r2, #0 + ands r2, r3 + orrs r2, r0 + strb r2, [r6, #0xd] + adds r1, #1 + str r1, [r6] + ldrb r0, [r6, #0xc] + lsrs r0, r0, #4 + lsls r1, r2, #0x1c + lsrs r1, r1, #0x1c + lsrs r2, r2, #4 + b _080059AE +_0800594E: + ldr r1, [r6] + ldrb r0, [r1] + lsls r0, r0, #4 + ldrb r3, [r6, #0xd] + movs r2, #0xf + ands r2, r3 + orrs r2, r0 + strb r2, [r6, #0xd] + adds r1, #1 + str r1, [r6] + ldrb r0, [r6, #0xc] + lsrs r0, r0, #4 + b _080059A6 +_08005968: + ldr r3, [r6] + ldrb r1, [r3] + lsls r1, r1, #4 + ldrb r4, [r6, #0xc] + movs r2, #0xf + adds r0, r2, #0 + ands r0, r4 + orrs r0, r1 + strb r0, [r6, #0xc] + adds r5, r3, #1 + str r5, [r6] + ldrb r3, [r3, #1] + adds r1, r2, #0 + ands r1, r3 + ldrb r4, [r6, #0xd] + movs r3, #0x10 + rsbs r3, r3, #0 + ands r3, r4 + orrs r3, r1 + strb r3, [r6, #0xd] + adds r4, r5, #1 + str r4, [r6] + ldrb r1, [r5, #1] + lsls r1, r1, #4 + ands r2, r3 + orrs r2, r1 + strb r2, [r6, #0xd] + adds r4, #1 + str r4, [r6] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1c +_080059A6: + lsls r1, r2, #0x1c + lsrs r1, r1, #0x1c + lsls r2, r2, #0x18 + lsrs r2, r2, #0x1c +_080059AE: + bl GenerateFontHalfRowLookupTable +_080059B2: + movs r0, #2 + b _08005C42 +_080059B6: + ldr r0, [r6] + ldrb r0, [r0] + movs r1, #0xf + ands r1, r0 + ldrb r2, [r4] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4] + b _08005A80 +_080059CC: + ldr r0, [r6] + ldrb r1, [r0] + strb r1, [r6, #0x1e] + adds r0, #1 + str r0, [r6] + movs r0, #6 + strb r0, [r6, #0x1c] + b _080059B2 +_080059DC: + movs r0, #1 + strb r0, [r6, #0x1c] + ldr r0, _080059F4 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08005A96 + movs r0, #0 + strb r0, [r4, #2] + b _08005A96 + .align 2, 0 +_080059F4: .4byte 0x030030B4 +_080059F8: + movs r0, #5 + b _08005C2A +_080059FC: + ldr r0, [r6] + ldrb r3, [r0] + adds r1, r0, #1 + str r1, [r6] + ldrb r0, [r0, #1] + lsls r0, r0, #8 + orrs r3, r0 + adds r1, #1 + str r1, [r6] + adds r0, r3, #0 + bl PlayBGM + b _080059B2 +_08005A16: + ldr r0, [r6] + ldrb r3, [r0] + adds r1, r0, #1 + str r1, [r6] + ldrb r0, [r0, #1] + lsls r0, r0, #8 + orrs r3, r0 + adds r1, #1 + str r1, [r6] + adds r0, r3, #0 + bl PlaySE + b _080059B2 +_08005A30: + ldr r1, [r6] + ldrb r0, [r1] + ldrb r2, [r6, #6] + adds r0, r0, r2 + strb r0, [r6, #8] + b _08005A46 +_08005A3C: + ldr r1, [r6] + ldrb r0, [r1] + ldrb r2, [r6, #7] + adds r0, r0, r2 + strb r0, [r6, #9] +_08005A46: + adds r1, #1 + str r1, [r6] + b _080059B2 +_08005A4C: + ldrb r0, [r6, #4] + ldrb r2, [r6, #0xd] + lsls r2, r2, #0x1c + lsrs r1, r2, #4 + orrs r1, r2 + lsrs r1, r1, #0x18 + bl FillWindowPixelBuffer + ldrb r0, [r6, #6] + strb r0, [r6, #8] + ldrb r0, [r6, #7] +_08005A62: + strb r0, [r6, #9] + b _080059B2 +_08005A66: + ldr r0, _08005A70 + bl m4aMPlayStop + b _080059B2 + .align 2, 0 +_08005A70: .4byte 0x030074D0 +_08005A74: + ldr r0, _08005A7C + bl m4aMPlayContinue + b _080059B2 + .align 2, 0 +_08005A7C: .4byte 0x030074D0 +_08005A80: + ldr r0, [r6] + adds r0, #1 + str r0, [r6] + b _080059B2 +_08005A88: + movs r0, #2 + b _08005A8E +_08005A8C: + movs r0, #3 +_08005A8E: + strb r0, [r6, #0x1c] + adds r0, r6, #0 + bl TextPrinterInitDownArrowCounters +_08005A96: + movs r0, #3 + b _08005C42 +_08005A9A: + ldr r0, [r6] + ldrb r3, [r0] + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + orrs r3, r1 + adds r0, #1 + str r0, [r6] + b _08005AD4 +_08005AAC: + ldr r0, [r6] + ldrb r3, [r0] + adds r0, #1 + str r0, [r6] + ldrb r0, [r6, #4] + adds r1, r3, #0 + ldrb r2, [r6, #8] + ldrb r3, [r6, #9] + bl DrawKeypadIcon + ldr r1, _08005AD0 + adds r1, #0x80 + strb r0, [r1] + ldrb r1, [r6, #0xa] + adds r0, r0, r1 + ldrb r2, [r6, #8] + adds r0, r0, r2 + b _08005B46 + .align 2, 0 +_08005AD0: .4byte 0x03003030 +_08005AD4: + ldr r0, [r4] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #5 + bhi _08005B32 + lsls r0, r0, #2 + ldr r1, _08005AE8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08005AE8: .4byte 0x08005AEC +_08005AEC: @ jump table + .4byte _08005B04 @ case 0 + .4byte _08005B0C @ case 1 + .4byte _08005B14 @ case 2 + .4byte _08005B1C @ case 3 + .4byte _08005B24 @ case 4 + .4byte _08005B2C @ case 5 +_08005B04: + adds r0, r3, #0 + bl DecompressGlyphFont9 + b _08005B32 +_08005B0C: + adds r0, r3, #0 + bl sub_08006304 + b _08005B32 +_08005B14: + adds r0, r3, #0 + bl sub_08006354 + b _08005B32 +_08005B1C: + adds r0, r3, #0 + bl sub_08006418 + b _08005B32 +_08005B24: + adds r0, r3, #0 + bl sub_080064B8 + b _08005B32 +_08005B2C: + adds r0, r3, #0 + bl sub_0800657C +_08005B32: + adds r0, r6, #0 + bl CopyGlyphToWindow + ldr r0, _08005B4C + adds r0, #0x80 + ldrb r1, [r6, #0xa] + ldrb r0, [r0] + adds r1, r1, r0 + ldrb r0, [r6, #8] + adds r0, r0, r1 +_08005B46: + strb r0, [r6, #8] + movs r0, #0 + b _08005C42 + .align 2, 0 +_08005B4C: .4byte 0x03003030 +_08005B50: + adds r0, r6, #0 + bl TextPrinterWait + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08005A96 + movs r0, #0 + strb r0, [r6, #0x1c] + b _08005A96 +_08005B62: + adds r0, r6, #0 + bl TextPrinterWaitWithDownArrow + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08005A96 + ldrb r0, [r6, #4] + ldrb r2, [r6, #0xd] + lsls r2, r2, #0x1c + lsrs r1, r2, #4 + orrs r1, r2 + lsrs r1, r1, #0x18 + bl FillWindowPixelBuffer + ldrb r0, [r6, #6] + movs r1, #0 + strb r0, [r6, #8] + ldrb r0, [r6, #7] + strb r0, [r6, #9] + strb r1, [r6, #0x1c] + b _08005A96 +_08005B8C: + adds r0, r6, #0 + bl TextPrinterWaitWithDownArrow + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08005B9A + b _08005A96 +_08005B9A: + adds r0, r6, #0 + bl TextPrinterClearDownArrow + ldrb r1, [r6, #5] + ldr r0, _08005BC0 + ldr r2, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r6, #0xb] + ldrb r0, [r0, #5] + adds r1, r1, r0 + strb r1, [r6, #0x1f] + ldrb r0, [r6, #6] + strb r0, [r6, #8] + movs r0, #4 + strb r0, [r6, #0x1c] + b _08005A96 + .align 2, 0 +_08005BC0: .4byte 0x03003020 +_08005BC4: + ldrb r0, [r6, #0x1f] + cmp r0, #0 + beq _08005C18 + bl GetPlayerTextSpeed + ldr r1, _08005BF0 + adds r0, r0, r1 + ldrb r4, [r0] + ldrb r2, [r6, #0x1f] + cmp r2, r4 + bge _08005BF4 + ldrb r0, [r6, #4] + ldrb r1, [r6, #0xd] + lsls r1, r1, #0x1c + lsrs r3, r1, #4 + orrs r3, r1 + lsrs r3, r3, #0x18 + movs r1, #0 + bl ScrollWindow + movs r0, #0 + b _08005C0C + .align 2, 0 +_08005BF0: .4byte 0x0829C63C +_08005BF4: + ldrb r0, [r6, #4] + ldrb r1, [r6, #0xd] + lsls r1, r1, #0x1c + lsrs r3, r1, #4 + orrs r3, r1 + lsrs r3, r3, #0x18 + movs r1, #0 + adds r2, r4, #0 + bl ScrollWindow + ldrb r0, [r6, #0x1f] + subs r0, r0, r4 +_08005C0C: + strb r0, [r6, #0x1f] + ldrb r0, [r6, #4] + movs r1, #2 + bl CopyWindowToVram + b _08005A96 +_08005C18: + strb r0, [r6, #0x1c] + b _08005A96 +_08005C1C: + bl IsSEPlaying + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _08005C2A + b _08005A96 +_08005C2A: + strb r0, [r6, #0x1c] + b _08005A96 +_08005C2E: + ldrb r0, [r6, #0x1e] + adds r1, r0, #0 + cmp r1, #0 + beq _08005C3C + subs r0, #1 + strb r0, [r6, #0x1e] + b _08005A96 +_08005C3C: + strb r1, [r6, #0x1c] + b _08005A96 +_08005C40: + movs r0, #1 +_08005C42: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end RenderText + + thumb_func_start GetStringWidthFixedWidthFont +GetStringWidthFixedWidthFont: @ 0x08005C48 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + movs r2, #0 + mov r1, sp + adds r1, #7 +_08005C60: + strb r2, [r1] + subs r1, #1 + cmp r1, sp + bge _08005C60 + movs r5, #0 + movs r6, #0 + adds r4, r0, #0 + movs r2, #0 +_08005C70: + adds r0, r4, r2 + ldrb r3, [r0] + adds r2, #1 + adds r0, r3, #0 + subs r0, #0xf7 + cmp r0, #8 + bhi _08005D3E + lsls r0, r0, #2 + ldr r1, _08005C88 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08005C88: .4byte 0x08005C8C +_08005C8C: @ jump table + .4byte _08005D38 @ case 0 + .4byte _08005D3C @ case 1 + .4byte _08005D3C @ case 2 + .4byte _08005D44 @ case 3 + .4byte _08005D44 @ case 4 + .4byte _08005CC0 @ case 5 + .4byte _08005D38 @ case 6 + .4byte _08005CB0 @ case 7 + .4byte _08005CB0 @ case 8 +_08005CB0: + mov r1, sp + adds r0, r1, r6 + strb r5, [r0] + movs r5, #0 + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + b _08005D44 +_08005CC0: + adds r0, r4, r2 + ldrb r0, [r0] + adds r2, #1 + subs r0, #1 + cmp r0, #0x15 + bhi _08005D44 + lsls r0, r0, #2 + ldr r1, _08005CD8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08005CD8: .4byte 0x08005CDC +_08005CDC: @ jump table + .4byte _08005D38 @ case 0 + .4byte _08005D38 @ case 1 + .4byte _08005D38 @ case 2 + .4byte _08005D34 @ case 3 + .4byte _08005D38 @ case 4 + .4byte _08005D38 @ case 5 + .4byte _08005D44 @ case 6 + .4byte _08005D38 @ case 7 + .4byte _08005D44 @ case 8 + .4byte _08005D44 @ case 9 + .4byte _08005D36 @ case 10 + .4byte _08005D38 @ case 11 + .4byte _08005D38 @ case 12 + .4byte _08005D38 @ case 13 + .4byte _08005D44 @ case 14 + .4byte _08005D36 @ case 15 + .4byte _08005D38 @ case 16 + .4byte _08005D38 @ case 17 + .4byte _08005D38 @ case 18 + .4byte _08005D38 @ case 19 + .4byte _08005D44 @ case 20 + .4byte _08005D44 @ case 21 +_08005D34: + adds r2, #1 +_08005D36: + adds r2, #1 +_08005D38: + adds r2, #1 + b _08005D44 +_08005D3C: + adds r2, #1 +_08005D3E: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_08005D44: + cmp r3, #0xff + bne _08005C70 + movs r5, #0 + movs r2, #0 +_08005D4C: + mov r1, sp + adds r0, r1, r2 + ldrb r1, [r0] + cmp r5, r1 + bhs _08005D58 + ldrb r5, [r0] +_08005D58: + adds r2, #1 + cmp r2, #7 + ble _08005D4C + adds r0, r7, #0 + movs r1, #0 + bl GetFontAttribute + add r0, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + muls r0, r5, r0 + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetStringWidthFixedWidthFont + + thumb_func_start GetFontWidthFunc +GetFontWidthFunc: @ 0x08005D7C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r3, #0 + ldr r0, _08005D94 + adds r2, r0, #4 + adds r1, r0, #0 +_08005D8A: + ldr r0, [r1] + cmp r4, r0 + bne _08005D98 + ldr r0, [r2] + b _08005DA4 + .align 2, 0 +_08005D94: .4byte 0x0829C640 +_08005D98: + adds r2, #8 + adds r1, #8 + adds r3, #1 + cmp r3, #5 + bls _08005D8A + movs r0, #0 +_08005DA4: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetFontWidthFunc + + thumb_func_start GetStringWidth +GetStringWidth: @ 0x08005DAC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r7, r0, #0 + lsls r2, r2, #0x10 + lsrs r5, r2, #0x10 + bl GetFontWidthFunc + adds r6, r0, #0 + cmp r6, #0 + bne _08005DD0 +_08005DCC: + movs r0, #0 + b _08005F6C +_08005DD0: + lsls r0, r5, #0x10 + asrs r2, r0, #0x10 + movs r1, #1 + rsbs r1, r1, #0 + mov sl, r0 + cmp r2, r1 + bne _08005DEC + adds r0, r7, #0 + movs r1, #2 + bl GetFontAttribute + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + b _08005DEE +_08005DEC: + adds r7, r2, #0 +_08005DEE: + movs r0, #0 + mov sb, r0 + mov r8, r0 + movs r5, #0 + b _08005F5A +_08005DF8: + ldrb r1, [r4] + adds r0, r1, #0 + subs r0, #0xf7 + cmp r0, #7 + bls _08005E04 + b _08005F4E +_08005E04: + lsls r0, r0, #2 + ldr r1, _08005E10 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08005E10: .4byte 0x08005E14 +_08005E14: @ jump table + .4byte _08005E6E @ case 0 + .4byte _08005F40 @ case 1 + .4byte _08005F40 @ case 2 + .4byte _08005F58 @ case 3 + .4byte _08005F58 @ case 4 + .4byte _08005E9A @ case 5 + .4byte _08005E42 @ case 6 + .4byte _08005E34 @ case 7 +_08005E34: + cmp r8, sb + bhi _08005E3A + b _08005F58 +_08005E3A: + mov sb, r8 + movs r2, #0 + mov r8, r2 + b _08005F58 +_08005E42: + adds r4, #1 + ldrb r0, [r4] + cmp r0, #3 + beq _08005E64 + cmp r0, #3 + bgt _08005E54 + cmp r0, #2 + beq _08005E5A + b _08005DCC +_08005E54: + cmp r0, #4 + beq _08005E6C + b _08005DCC +_08005E5A: + ldr r5, _08005E60 + b _08005E6E + .align 2, 0 +_08005E60: .4byte 0x02021C40 +_08005E64: + ldr r5, _08005E68 + b _08005E6E + .align 2, 0 +_08005E68: .4byte 0x02021C54 +_08005E6C: + ldr r5, _08005E80 +_08005E6E: + cmp r5, #0 + bne _08005E90 + adds r4, #1 + ldrb r0, [r4] + bl DynamicPlaceholderTextUtil_GetPlaceholderPtr + adds r5, r0, #0 + b _08005E90 + .align 2, 0 +_08005E80: .4byte 0x02021C68 +_08005E84: + ldrb r0, [r5] + bl _call_via_r6 + adds r0, r0, r7 + add r8, r0 + adds r5, #1 +_08005E90: + ldrb r0, [r5] + cmp r0, #0xff + bne _08005E84 + movs r5, #0 + b _08005F58 +_08005E9A: + adds r4, #1 + ldrb r0, [r4] + subs r0, #1 + cmp r0, #0x15 + bhi _08005F58 + lsls r0, r0, #2 + ldr r1, _08005EB0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08005EB0: .4byte 0x08005EB4 +_08005EB4: @ jump table + .4byte _08005F3C @ case 0 + .4byte _08005F3C @ case 1 + .4byte _08005F3C @ case 2 + .4byte _08005F0C @ case 3 + .4byte _08005F3C @ case 4 + .4byte _08005F12 @ case 5 + .4byte _08005F58 @ case 6 + .4byte _08005F3C @ case 7 + .4byte _08005F58 @ case 8 + .4byte _08005F58 @ case 9 + .4byte _08005F0E @ case 10 + .4byte _08005F3C @ case 11 + .4byte _08005F3C @ case 12 + .4byte _08005F3C @ case 13 + .4byte _08005F58 @ case 14 + .4byte _08005F0E @ case 15 + .4byte _08005F3C @ case 16 + .4byte _08005F3C @ case 17 + .4byte _08005F3C @ case 18 + .4byte _08005F3C @ case 19 + .4byte _08005F58 @ case 20 + .4byte _08005F58 @ case 21 +_08005F0C: + adds r4, #1 +_08005F0E: + adds r4, #1 + b _08005F3C +_08005F12: + adds r4, #1 + ldrb r0, [r4] + bl GetFontWidthFunc + adds r6, r0, #0 + cmp r6, #0 + bne _08005F22 + b _08005DCC +_08005F22: + mov r0, sl + asrs r1, r0, #0x10 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _08005F58 + ldrb r0, [r4] + movs r1, #2 + bl GetFontAttribute + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + b _08005F58 +_08005F3C: + adds r4, #1 + b _08005F58 +_08005F40: + adds r4, #1 + ldrb r0, [r4] + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + orrs r0, r1 + b _08005F50 +_08005F4E: + adds r0, r1, #0 +_08005F50: + bl _call_via_r6 + adds r0, r0, r7 + add r8, r0 +_08005F58: + adds r4, #1 +_08005F5A: + ldrb r0, [r4] + cmp r0, #0xff + beq _08005F62 + b _08005DF8 +_08005F62: + cmp r8, sb + bhi _08005F6A + mov r0, sb + b _08005F6C +_08005F6A: + mov r0, r8 +_08005F6C: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetStringWidth + + thumb_func_start RenderTextFont9 +RenderTextFont9: @ 0x08005F7C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + mov sb, r0 + adds r6, r2, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp, #4] + mov r4, sp + adds r4, #1 + mov r5, sp + adds r5, #2 + mov r0, sp + adds r1, r4, #0 + adds r2, r5, #0 + bl SaveTextColors + movs r0, #1 + str r0, [sp, #8] + movs r0, #0 + str r0, [sp, #0xc] + movs r0, #3 + mov sl, r0 + movs r0, #1 + movs r1, #0 + movs r2, #3 + bl GenerateFontHalfRowLookupTable + adds r7, r6, #0 + movs r6, #0 +_08005FBE: + adds r0, r7, r6 + ldrb r0, [r0] + mov r8, r0 + adds r6, #1 + subs r0, #0xf7 + cmp r0, #8 + bhi _080060BA + lsls r0, r0, #2 + ldr r1, _08005FD8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08005FD8: .4byte 0x08005FDC +_08005FDC: @ jump table + .4byte _080060B2 @ case 0 + .4byte _080060B2 @ case 1 + .4byte _080060B2 @ case 2 + .4byte _080060F2 @ case 3 + .4byte _080060F2 @ case 4 + .4byte _08006000 @ case 5 + .4byte _080060B2 @ case 6 + .4byte _080060F2 @ case 7 + .4byte _080060F2 @ case 8 +_08006000: + adds r0, r7, r6 + ldrb r0, [r0] + adds r6, #1 + subs r0, #1 + cmp r0, #0x15 + bhi _080060F2 + lsls r0, r0, #2 + ldr r1, _08006018 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08006018: .4byte 0x0800601C +_0800601C: @ jump table + .4byte _08006086 @ case 0 + .4byte _08006090 @ case 1 + .4byte _08006098 @ case 2 + .4byte _08006074 @ case 3 + .4byte _080060B2 @ case 4 + .4byte _080060AC @ case 5 + .4byte _080060F2 @ case 6 + .4byte _080060B2 @ case 7 + .4byte _080060F2 @ case 8 + .4byte _080060F2 @ case 9 + .4byte _080060B6 @ case 10 + .4byte _080060B2 @ case 11 + .4byte _080060B2 @ case 12 + .4byte _080060B2 @ case 13 + .4byte _080060F2 @ case 14 + .4byte _080060B6 @ case 15 + .4byte _080060B2 @ case 16 + .4byte _080060B2 @ case 17 + .4byte _080060B2 @ case 18 + .4byte _080060B2 @ case 19 + .4byte _080060F2 @ case 20 + .4byte _080060F2 @ case 21 +_08006074: + adds r0, r7, r6 + ldrb r0, [r0] + str r0, [sp, #8] + adds r6, #1 + adds r0, r7, r6 + ldrb r0, [r0] + str r0, [sp, #0xc] + adds r6, #1 + b _08006098 +_08006086: + adds r0, r7, r6 + ldrb r0, [r0] + str r0, [sp, #8] + adds r6, #1 + b _080060A2 +_08006090: + adds r0, r7, r6 + ldrb r0, [r0] + str r0, [sp, #0xc] + b _0800609E +_08006098: + adds r0, r7, r6 + ldrb r0, [r0] + mov sl, r0 +_0800609E: + adds r6, #1 + ldr r0, [sp, #8] +_080060A2: + ldr r1, [sp, #0xc] + mov r2, sl + bl GenerateFontHalfRowLookupTable + b _080060F2 +_080060AC: + adds r0, r7, r6 + ldrb r0, [r0] + str r0, [sp, #4] +_080060B2: + adds r6, #1 + b _080060F2 +_080060B6: + adds r6, #1 + b _080060B2 +_080060BA: + ldr r0, [sp, #4] + cmp r0, #1 + beq _080060CC + cmp r0, #7 + bne _080060CC + mov r0, r8 + bl sub_08006640 + b _080060D2 +_080060CC: + mov r0, r8 + bl sub_08006304 +_080060D2: + ldr r4, _0800611C + ldr r5, _08006120 + adds r0, r4, #0 + mov r1, sb + adds r2, r5, #0 + bl CpuSet + adds r4, #0x40 + mov r1, sb + adds r1, #0x20 + adds r0, r4, #0 + adds r2, r5, #0 + bl CpuSet + movs r0, #0x40 + add sb, r0 +_080060F2: + mov r0, r8 + cmp r0, #0xff + beq _080060FA + b _08005FBE +_080060FA: + mov r0, sp + mov r1, sp + adds r1, #1 + mov r2, sp + adds r2, #2 + bl RestoreTextColors + movs r0, #1 + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0800611C: .4byte 0x03003030 +_08006120: .4byte 0x04000008 + thumb_func_end RenderTextFont9 + + thumb_func_start DrawKeypadIcon +DrawKeypadIcon: @ 0x08006124 + push {r4, r5, lr} + sub sp, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + ldr r4, _0800616C + lsrs r1, r1, #0x16 + adds r1, r1, r4 + ldrh r5, [r1] + lsls r5, r5, #5 + ldr r4, _08006170 + adds r5, r5, r4 + movs r4, #0x80 + str r4, [sp] + str r4, [sp, #4] + str r2, [sp, #8] + str r3, [sp, #0xc] + ldrb r4, [r1, #2] + str r4, [sp, #0x10] + ldrb r1, [r1, #3] + str r1, [sp, #0x14] + adds r1, r5, #0 + movs r2, #0 + movs r3, #0 + bl BlitBitmapRectToWindow + adds r0, r4, #0 + add sp, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0800616C: .4byte 0x0829C670 +_08006170: .4byte 0x0829C6A4 + thumb_func_end DrawKeypadIcon + + thumb_func_start GetKeypadIconTileOffset +GetKeypadIconTileOffset: @ 0x08006174 + lsls r0, r0, #0x18 + ldr r1, _08006180 + lsrs r0, r0, #0x16 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08006180: .4byte 0x0829C670 + thumb_func_end GetKeypadIconTileOffset + + thumb_func_start GetKeypadIconWidth +GetKeypadIconWidth: @ 0x08006184 + lsls r0, r0, #0x18 + ldr r1, _08006190 + lsrs r0, r0, #0x16 + adds r0, r0, r1 + ldrb r0, [r0, #2] + bx lr + .align 2, 0 +_08006190: .4byte 0x0829C670 + thumb_func_end GetKeypadIconWidth + + thumb_func_start GetKeypadIconHeight +GetKeypadIconHeight: @ 0x08006194 + lsls r0, r0, #0x18 + ldr r1, _080061A0 + lsrs r0, r0, #0x16 + adds r0, r0, r1 + ldrb r0, [r0, #3] + bx lr + .align 2, 0 +_080061A0: .4byte 0x0829C670 + thumb_func_end GetKeypadIconHeight + + thumb_func_start SetDefaultFontsPointer +SetDefaultFontsPointer: @ 0x080061A4 + push {lr} + ldr r0, _080061B0 + bl SetFontsPointer + pop {r0} + bx r0 + .align 2, 0 +_080061B0: .4byte 0x0829CEA4 + thumb_func_end SetDefaultFontsPointer + + thumb_func_start GetFontAttribute +GetFontAttribute: @ 0x080061B4 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0 + cmp r1, #7 + bhi _08006292 + lsls r0, r1, #2 + ldr r1, _080061D0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080061D0: .4byte 0x080061D4 +_080061D4: @ jump table + .4byte _080061F4 @ case 0 + .4byte _08006208 @ case 1 + .4byte _0800621C @ case 2 + .4byte _08006230 @ case 3 + .4byte _08006244 @ case 4 + .4byte _08006258 @ case 5 + .4byte _0800626C @ case 6 + .4byte _08006284 @ case 7 +_080061F4: + ldr r1, _08006204 + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #4] + b _08006292 + .align 2, 0 +_08006204: .4byte 0x0829CEA4 +_08006208: + ldr r1, _08006218 + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #5] + b _08006292 + .align 2, 0 +_08006218: .4byte 0x0829CEA4 +_0800621C: + ldr r1, _0800622C + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #6] + b _08006292 + .align 2, 0 +_0800622C: .4byte 0x0829CEA4 +_08006230: + ldr r1, _08006240 + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #7] + b _08006292 + .align 2, 0 +_08006240: .4byte 0x0829CEA4 +_08006244: + ldr r0, _08006254 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #8] + b _08006278 + .align 2, 0 +_08006254: .4byte 0x0829CEA4 +_08006258: + ldr r0, _08006268 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #8] + b _08006290 + .align 2, 0 +_08006268: .4byte 0x0829CEA4 +_0800626C: + ldr r0, _08006280 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #9] +_08006278: + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + b _08006292 + .align 2, 0 +_08006280: .4byte 0x0829CEA4 +_08006284: + ldr r0, _08006298 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #9] +_08006290: + lsrs r0, r0, #4 +_08006292: + pop {r1} + bx r1 + .align 2, 0 +_08006298: .4byte 0x0829CEA4 + thumb_func_end GetFontAttribute + + thumb_func_start GetMenuCursorDimensionByFont +GetMenuCursorDimensionByFont: @ 0x0800629C + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _080062B0 + lsrs r0, r0, #0x17 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + bx lr + .align 2, 0 +_080062B0: .4byte 0x0829CF04 + thumb_func_end GetMenuCursorDimensionByFont + + thumb_func_start DecompressGlyphFont9 +DecompressGlyphFont9: @ 0x080062B4 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x14 + lsls r4, r4, #9 + movs r1, #0xf0 + lsls r1, r1, #0xc + ands r1, r0 + lsrs r1, r1, #0xc + ldr r0, _080062F8 + adds r1, r1, r0 + adds r4, r4, r1 + ldr r5, _080062FC + adds r0, r4, #0 + adds r1, r5, #0 + bl DecompressGlyphTile + movs r0, #0x80 + lsls r0, r0, #1 + adds r4, r4, r0 + adds r1, r5, #0 + adds r1, #0x40 + adds r0, r4, #0 + bl DecompressGlyphTile + adds r1, r5, #0 + adds r1, #0x80 + movs r0, #8 + strb r0, [r1] + adds r5, #0x81 + movs r0, #0xc + strb r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080062F8: .4byte 0x0829CF14 +_080062FC: .4byte 0x03003030 + thumb_func_end DecompressGlyphFont9 + + thumb_func_start sub_08006300 +sub_08006300: @ 0x08006300 + movs r0, #8 + bx lr + thumb_func_end sub_08006300 + + thumb_func_start sub_08006304 +sub_08006304: @ 0x08006304 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x14 + lsls r4, r4, #9 + movs r1, #0xf0 + lsls r1, r1, #0xc + ands r1, r0 + lsrs r1, r1, #0xc + ldr r0, _08006348 + adds r1, r1, r0 + adds r4, r4, r1 + ldr r5, _0800634C + adds r0, r4, #0 + adds r1, r5, #0 + bl DecompressGlyphTile + movs r0, #0x80 + lsls r0, r0, #1 + adds r4, r4, r0 + adds r1, r5, #0 + adds r1, #0x40 + adds r0, r4, #0 + bl DecompressGlyphTile + adds r1, r5, #0 + adds r1, #0x80 + movs r0, #8 + strb r0, [r1] + adds r5, #0x81 + movs r0, #0x10 + strb r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08006348: .4byte 0x082A0F14 +_0800634C: .4byte 0x03003030 + thumb_func_end sub_08006304 + + thumb_func_start sub_08006350 +sub_08006350: @ 0x08006350 + movs r0, #8 + bx lr + thumb_func_end sub_08006350 + + thumb_func_start sub_08006354 +sub_08006354: @ 0x08006354 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #0 + bne _08006390 + movs r0, #2 + bl GetLastTextColor + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + ldr r3, _0800638C + lsls r2, r0, #4 + orrs r2, r0 + adds r7, r3, #0 + adds r7, #0x80 + movs r6, #0xa + adds r5, r3, #0 + adds r5, #0x81 + movs r4, #0xc +_0800637C: + adds r0, r1, r3 + strb r2, [r0] + strb r6, [r7] + strb r4, [r5] + adds r1, #1 + cmp r1, #0x7f + ble _0800637C + b _080063E6 + .align 2, 0 +_0800638C: .4byte 0x03003030 +_08006390: + lsrs r2, r0, #0x13 + lsls r2, r2, #9 + movs r0, #7 + ands r0, r6 + lsls r0, r0, #5 + ldr r1, _080063EC + adds r0, r0, r1 + adds r4, r2, r0 + ldr r5, _080063F0 + adds r0, r4, #0 + adds r1, r5, #0 + bl DecompressGlyphTile + adds r0, r4, #0 + adds r0, #0x10 + adds r1, r5, #0 + adds r1, #0x20 + bl DecompressGlyphTile + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r4, r1 + adds r1, r5, #0 + adds r1, #0x40 + bl DecompressGlyphTile + movs r1, #0x88 + lsls r1, r1, #1 + adds r0, r4, r1 + adds r1, r5, #0 + adds r1, #0x60 + bl DecompressGlyphTile + ldr r0, _080063F4 + adds r0, r6, r0 + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x80 + strb r1, [r0] + adds r1, r5, #0 + adds r1, #0x81 + movs r0, #0xc + strb r0, [r1] +_080063E6: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080063EC: .4byte 0x082A4F14 +_080063F0: .4byte 0x03003030 +_080063F4: .4byte 0x082ACF14 + thumb_func_end sub_08006354 + + thumb_func_start sub_080063F8 +sub_080063F8: @ 0x080063F8 + push {lr} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + beq _08006410 + ldr r0, _0800640C + adds r0, r1, r0 + ldrb r0, [r0] + b _08006412 + .align 2, 0 +_0800640C: .4byte 0x082ACF14 +_08006410: + movs r0, #0xa +_08006412: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080063F8 + + thumb_func_start sub_08006418 +sub_08006418: @ 0x08006418 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + bne _08006454 + movs r0, #2 + bl GetLastTextColor + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + ldr r3, _08006450 + lsls r2, r0, #4 + orrs r2, r0 + adds r7, r3, #0 + adds r7, #0x80 + movs r6, #0xa + adds r5, r3, #0 + adds r5, #0x81 + movs r4, #0xc +_08006440: + adds r0, r1, r3 + strb r2, [r0] + strb r6, [r7] + strb r4, [r5] + adds r1, #1 + cmp r1, #0x7f + ble _08006440 + b _080064A4 + .align 2, 0 +_08006450: .4byte 0x03003030 +_08006454: + lsrs r2, r0, #0x13 + lsls r2, r2, #9 + movs r0, #7 + ands r0, r1 + lsls r0, r0, #5 + ldr r1, _080064AC + adds r0, r0, r1 + adds r5, r2, r0 + ldr r4, _080064B0 + adds r0, r5, #0 + adds r1, r4, #0 + bl DecompressGlyphTile + adds r0, r5, #0 + adds r0, #0x10 + adds r1, r4, #0 + adds r1, #0x20 + bl DecompressGlyphTile + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r5, r1 + adds r1, r4, #0 + adds r1, #0x40 + bl DecompressGlyphTile + movs r1, #0x88 + lsls r1, r1, #1 + adds r0, r5, r1 + adds r1, r4, #0 + adds r1, #0x60 + bl DecompressGlyphTile + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #0xa + strb r0, [r1] + adds r1, #1 + movs r0, #0xc + strb r0, [r1] +_080064A4: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080064AC: .4byte 0x082A4F14 +_080064B0: .4byte 0x03003030 + thumb_func_end sub_08006418 + + thumb_func_start sub_080064B4 +sub_080064B4: @ 0x080064B4 + movs r0, #0xa + bx lr + thumb_func_end sub_080064B4 + + thumb_func_start sub_080064B8 +sub_080064B8: @ 0x080064B8 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #0 + bne _080064F4 + movs r0, #2 + bl GetLastTextColor + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + ldr r3, _080064F0 + lsls r2, r0, #4 + orrs r2, r0 + adds r7, r3, #0 + adds r7, #0x80 + movs r6, #0xa + adds r5, r3, #0 + adds r5, #0x81 + movs r4, #0xc +_080064E0: + adds r0, r1, r3 + strb r2, [r0] + strb r6, [r7] + strb r4, [r5] + adds r1, #1 + cmp r1, #0x7f + ble _080064E0 + b _0800654A + .align 2, 0 +_080064F0: .4byte 0x03003030 +_080064F4: + lsrs r2, r0, #0x13 + lsls r2, r2, #9 + movs r0, #7 + ands r0, r6 + lsls r0, r0, #5 + ldr r1, _08006550 + adds r0, r0, r1 + adds r4, r2, r0 + ldr r5, _08006554 + adds r0, r4, #0 + adds r1, r5, #0 + bl DecompressGlyphTile + adds r0, r4, #0 + adds r0, #0x10 + adds r1, r5, #0 + adds r1, #0x20 + bl DecompressGlyphTile + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r4, r1 + adds r1, r5, #0 + adds r1, #0x40 + bl DecompressGlyphTile + movs r1, #0x88 + lsls r1, r1, #1 + adds r0, r4, r1 + adds r1, r5, #0 + adds r1, #0x60 + bl DecompressGlyphTile + ldr r0, _08006558 + adds r0, r6, r0 + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x80 + strb r1, [r0] + adds r1, r5, #0 + adds r1, #0x81 + movs r0, #0xc + strb r0, [r1] +_0800654A: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08006550: .4byte 0x082AD02C +_08006554: .4byte 0x03003030 +_08006558: .4byte 0x082B502C + thumb_func_end sub_080064B8 + + thumb_func_start sub_0800655C +sub_0800655C: @ 0x0800655C + push {lr} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + beq _08006574 + ldr r0, _08006570 + adds r0, r1, r0 + ldrb r0, [r0] + b _08006576 + .align 2, 0 +_08006570: .4byte 0x082B502C +_08006574: + movs r0, #0xa +_08006576: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0800655C + + thumb_func_start sub_0800657C +sub_0800657C: @ 0x0800657C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #0 + bne _080065B8 + movs r0, #2 + bl GetLastTextColor + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + ldr r3, _080065B4 + lsls r2, r0, #4 + orrs r2, r0 + adds r7, r3, #0 + adds r7, #0x80 + movs r6, #0xa + adds r5, r3, #0 + adds r5, #0x81 + movs r4, #0xc +_080065A4: + adds r0, r1, r3 + strb r2, [r0] + strb r6, [r7] + strb r4, [r5] + adds r1, #1 + cmp r1, #0x7f + ble _080065A4 + b _0800660E + .align 2, 0 +_080065B4: .4byte 0x03003030 +_080065B8: + lsrs r2, r0, #0x13 + lsls r2, r2, #9 + movs r0, #7 + ands r0, r6 + lsls r0, r0, #5 + ldr r1, _08006614 + adds r0, r0, r1 + adds r4, r2, r0 + ldr r5, _08006618 + adds r0, r4, #0 + adds r1, r5, #0 + bl DecompressGlyphTile + adds r0, r4, #0 + adds r0, #0x10 + adds r1, r5, #0 + adds r1, #0x20 + bl DecompressGlyphTile + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r4, r1 + adds r1, r5, #0 + adds r1, #0x40 + bl DecompressGlyphTile + movs r1, #0x88 + lsls r1, r1, #1 + adds r0, r4, r1 + adds r1, r5, #0 + adds r1, #0x60 + bl DecompressGlyphTile + ldr r0, _0800661C + adds r0, r6, r0 + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x80 + strb r1, [r0] + adds r1, r5, #0 + adds r1, #0x81 + movs r0, #0xc + strb r0, [r1] +_0800660E: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08006614: .4byte 0x082B5144 +_08006618: .4byte 0x03003030 +_0800661C: .4byte 0x082BD144 + thumb_func_end sub_0800657C + + thumb_func_start sub_08006620 +sub_08006620: @ 0x08006620 + push {lr} + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + beq _08006638 + ldr r0, _08006634 + adds r0, r1, r0 + ldrb r0, [r0] + b _0800663A + .align 2, 0 +_08006634: .4byte 0x082BD144 +_08006638: + movs r0, #0xa +_0800663A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08006620 + + thumb_func_start sub_08006640 +sub_08006640: @ 0x08006640 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x14 + lsls r4, r4, #9 + movs r1, #0xf0 + lsls r1, r1, #0xc + ands r1, r0 + lsrs r1, r1, #0xc + ldr r0, _08006684 + adds r1, r1, r0 + adds r4, r4, r1 + ldr r5, _08006688 + adds r0, r4, #0 + adds r1, r5, #0 + bl DecompressGlyphTile + movs r0, #0x80 + lsls r0, r0, #1 + adds r4, r4, r0 + adds r1, r5, #0 + adds r1, #0x40 + adds r0, r4, #0 + bl DecompressGlyphTile + adds r1, r5, #0 + adds r1, #0x80 + movs r0, #8 + strb r0, [r1] + adds r5, #0x81 + movs r0, #0xc + strb r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08006684: .4byte 0x082BD25C +_08006688: .4byte 0x03003030 + thumb_func_end sub_08006640 + diff --git a/asm/text_window.s b/asm/text_window.s new file mode 100644 index 0000000..e73b8c5 --- /dev/null +++ b/asm/text_window.s @@ -0,0 +1,692 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start GetWindowFrameTilesPal +GetWindowFrameTilesPal: @ 0x080980E0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x13 + bhi _080980F8 + lsls r0, r0, #3 + ldr r1, _080980F4 + adds r0, r0, r1 + b _080980FA + .align 2, 0 +_080980F4: .4byte 0x084E8860 +_080980F8: + ldr r0, _08098100 +_080980FA: + pop {r1} + bx r1 + .align 2, 0 +_08098100: .4byte 0x084E8860 + thumb_func_end GetWindowFrameTilesPal + + thumb_func_start LoadMessageBoxGfx +LoadMessageBoxGfx: @ 0x08098104 + push {r4, r5, lr} + adds r4, r1, #0 + adds r5, r2, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r1, #0 + bl GetWindowAttribute + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08098140 + movs r2, #0xe0 + lsls r2, r2, #1 + adds r3, r4, #0 + bl LoadBgTiles + bl GetOverworldTextboxPalettePtr + adds r1, r5, #0 + movs r2, #0x20 + bl LoadPalette + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08098140: .4byte 0x084E85E0 + thumb_func_end LoadMessageBoxGfx + + thumb_func_start LoadUserWindowBorderGfx_ +LoadUserWindowBorderGfx_: @ 0x08098144 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + bl LoadUserWindowBorderGfx + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end LoadUserWindowBorderGfx_ + + thumb_func_start LoadWindowGfx +LoadWindowGfx: @ 0x0809815C + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r4, r1, #0 + adds r6, r2, #0 + mov r8, r3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + mov r1, r8 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + movs r1, #0 + bl GetWindowAttribute + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _080981B0 + lsls r4, r4, #3 + adds r1, r4, r5 + ldr r1, [r1] + movs r2, #0x90 + lsls r2, r2, #1 + adds r3, r6, #0 + bl LoadBgTiles + adds r5, #4 + adds r4, r4, r5 + ldr r0, [r4] + mov r1, r8 + movs r2, #0x20 + bl LoadPalette + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080981B0: .4byte 0x084E8860 + thumb_func_end LoadWindowGfx + + thumb_func_start LoadUserWindowBorderGfx +LoadUserWindowBorderGfx: @ 0x080981B4 + push {r4, lr} + adds r4, r1, #0 + adds r3, r2, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r1, _080981DC + ldr r1, [r1] + ldrb r1, [r1, #0x14] + lsrs r1, r1, #3 + adds r2, r4, #0 + bl LoadWindowGfx + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080981DC: .4byte 0x03005AF0 + thumb_func_end LoadUserWindowBorderGfx + + thumb_func_start DrawTextBorderOuter +DrawTextBorderOuter: @ 0x080981E0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + adds r4, r0, #0 + adds r5, r1, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl GetWindowAttribute + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + adds r0, r4, #0 + movs r1, #1 + bl GetWindowAttribute + mov r8, r0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + adds r0, r4, #0 + movs r1, #2 + bl GetWindowAttribute + adds r6, r0, #0 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + adds r0, r4, #0 + movs r1, #3 + bl GetWindowAttribute + mov sb, r0 + mov r2, sb + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + mov sb, r2 + adds r0, r4, #0 + movs r1, #4 + bl GetWindowAttribute + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x10] + mov r0, r8 + subs r0, #1 + lsls r2, r0, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x14] + subs r4, r6, #1 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + mov sl, r0 + str r0, [sp] + str r0, [sp, #4] + ldr r2, [sp, #0xc] + str r2, [sp, #8] + adds r0, r7, #0 + adds r1, r5, #0 + ldr r2, [sp, #0x14] + adds r3, r4, #0 + bl FillBgTilemapBufferRect + adds r1, r5, #1 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r0, r8 + lsls r2, r0, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x18] + mov r2, sb + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x1c] + str r0, [sp] + mov r0, sl + str r0, [sp, #4] + ldr r2, [sp, #0xc] + str r2, [sp, #8] + adds r0, r7, #0 + ldr r2, [sp, #0x18] + adds r3, r4, #0 + bl FillBgTilemapBufferRect + adds r1, r5, #2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + add r8, sb + mov r0, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + mov r2, sl + str r2, [sp] + str r2, [sp, #4] + ldr r0, [sp, #0xc] + str r0, [sp, #8] + adds r0, r7, #0 + mov r2, r8 + adds r3, r4, #0 + bl FillBgTilemapBufferRect + adds r1, r5, #3 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r2, r6, #0x18 + lsrs r2, r2, #0x18 + mov sb, r2 + mov r0, sl + str r0, [sp] + ldr r2, [sp, #0x10] + lsls r4, r2, #0x18 + lsrs r4, r4, #0x18 + str r4, [sp, #4] + ldr r0, [sp, #0xc] + str r0, [sp, #8] + adds r0, r7, #0 + ldr r2, [sp, #0x14] + mov r3, sb + bl FillBgTilemapBufferRect + adds r1, r5, #5 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r2, sl + str r2, [sp] + str r4, [sp, #4] + ldr r0, [sp, #0xc] + str r0, [sp, #8] + adds r0, r7, #0 + mov r2, r8 + mov r3, sb + bl FillBgTilemapBufferRect + adds r1, r5, #6 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r2, [sp, #0x10] + adds r6, r6, r2 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov r0, sl + str r0, [sp] + str r0, [sp, #4] + ldr r2, [sp, #0xc] + str r2, [sp, #8] + adds r0, r7, #0 + ldr r2, [sp, #0x14] + adds r3, r6, #0 + bl FillBgTilemapBufferRect + adds r1, r5, #7 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, [sp, #0x1c] + str r0, [sp] + mov r2, sl + str r2, [sp, #4] + ldr r0, [sp, #0xc] + str r0, [sp, #8] + adds r0, r7, #0 + ldr r2, [sp, #0x18] + adds r3, r6, #0 + bl FillBgTilemapBufferRect + adds r5, #8 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + mov r2, sl + str r2, [sp] + str r2, [sp, #4] + ldr r0, [sp, #0xc] + str r0, [sp, #8] + adds r0, r7, #0 + adds r1, r5, #0 + mov r2, r8 + adds r3, r6, #0 + bl FillBgTilemapBufferRect + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end DrawTextBorderOuter + + thumb_func_start DrawTextBorderInner +DrawTextBorderInner: @ 0x08098368 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + adds r4, r0, #0 + mov sb, r1 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r0, sb + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sl, r2 + adds r0, r4, #0 + movs r1, #0 + bl GetWindowAttribute + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + adds r0, r4, #0 + movs r1, #1 + bl GetWindowAttribute + mov r8, r0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + adds r0, r4, #0 + movs r1, #2 + bl GetWindowAttribute + adds r6, r0, #0 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + adds r0, r4, #0 + movs r1, #3 + bl GetWindowAttribute + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + adds r0, r4, #0 + movs r1, #4 + bl GetWindowAttribute + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0xc] + mov r0, r8 + lsls r2, r0, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x10] + lsls r4, r6, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + str r0, [sp] + str r0, [sp, #4] + mov r0, sl + str r0, [sp, #8] + adds r0, r7, #0 + mov r1, sb + adds r3, r4, #0 + bl FillBgTilemapBufferRect + mov r1, sb + adds r1, #1 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r0, r8 + adds r0, #1 + lsls r2, r0, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x14] + subs r0, r5, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x18] + str r0, [sp] + movs r0, #1 + str r0, [sp, #4] + mov r0, sl + str r0, [sp, #8] + adds r0, r7, #0 + adds r3, r4, #0 + bl FillBgTilemapBufferRect + mov r1, sb + adds r1, #2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + add r8, r5 + movs r0, #1 + rsbs r0, r0, #0 + add r8, r0 + mov r0, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r0, #1 + str r0, [sp] + str r0, [sp, #4] + mov r0, sl + str r0, [sp, #8] + adds r0, r7, #0 + mov r2, r8 + adds r3, r4, #0 + bl FillBgTilemapBufferRect + mov r1, sb + adds r1, #3 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r5, r6, #1 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r0, #1 + str r0, [sp] + ldr r4, [sp, #0xc] + subs r4, #2 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r4, [sp, #4] + mov r0, sl + str r0, [sp, #8] + adds r0, r7, #0 + ldr r2, [sp, #0x10] + adds r3, r5, #0 + bl FillBgTilemapBufferRect + mov r1, sb + adds r1, #5 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #1 + str r0, [sp] + str r4, [sp, #4] + mov r0, sl + str r0, [sp, #8] + adds r0, r7, #0 + mov r2, r8 + adds r3, r5, #0 + bl FillBgTilemapBufferRect + mov r1, sb + adds r1, #6 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, [sp, #0xc] + adds r6, r6, r0 + subs r6, #1 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + movs r0, #1 + str r0, [sp] + str r0, [sp, #4] + mov r0, sl + str r0, [sp, #8] + adds r0, r7, #0 + ldr r2, [sp, #0x10] + adds r3, r6, #0 + bl FillBgTilemapBufferRect + mov r1, sb + adds r1, #7 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, [sp, #0x18] + str r0, [sp] + movs r0, #1 + str r0, [sp, #4] + mov r0, sl + str r0, [sp, #8] + adds r0, r7, #0 + ldr r2, [sp, #0x14] + adds r3, r6, #0 + bl FillBgTilemapBufferRect + movs r0, #8 + add sb, r0 + mov r0, sb + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + movs r0, #1 + str r0, [sp] + str r0, [sp, #4] + mov r0, sl + str r0, [sp, #8] + adds r0, r7, #0 + mov r1, sb + mov r2, r8 + adds r3, r6, #0 + bl FillBgTilemapBufferRect + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end DrawTextBorderInner + + thumb_func_start rbox_fill_rectangle +rbox_fill_rectangle: @ 0x08098504 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #0xc + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + adds r0, r6, #0 + movs r1, #0 + bl GetWindowAttribute + mov sb, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + adds r0, r6, #0 + movs r1, #1 + bl GetWindowAttribute + mov r8, r0 + mov r1, r8 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r8, r1 + adds r0, r6, #0 + movs r1, #2 + bl GetWindowAttribute + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + adds r0, r6, #0 + movs r1, #3 + bl GetWindowAttribute + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r6, #0 + movs r1, #4 + bl GetWindowAttribute + movs r1, #1 + rsbs r1, r1, #0 + add r8, r1 + mov r1, r8 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + subs r5, #1 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + adds r4, #2 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r4, [sp] + lsls r0, r0, #0x18 + movs r1, #0x80 + lsls r1, r1, #0x12 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + movs r0, #0x11 + str r0, [sp, #8] + mov r0, sb + movs r1, #0 + mov r2, r8 + adds r3, r5, #0 + bl FillBgTilemapBufferRect + add sp, #0xc + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end rbox_fill_rectangle + + thumb_func_start stdpal_get +stdpal_get: @ 0x080985A0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _080985DC + lsls r0, r0, #2 + ldr r1, _080985B4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080985B4: .4byte 0x080985B8 +_080985B8: @ jump table + .4byte _080985CC @ case 0 + .4byte _080985D0 @ case 1 + .4byte _080985D4 @ case 2 + .4byte _080985D8 @ case 3 + .4byte _080985DC @ case 4 +_080985CC: + movs r0, #0 + b _080985DE +_080985D0: + movs r0, #0x10 + b _080985DE +_080985D4: + movs r0, #0x20 + b _080985DE +_080985D8: + movs r0, #0x30 + b _080985DE +_080985DC: + movs r0, #0x40 +_080985DE: + lsls r0, r0, #1 + ldr r1, _080985E8 + adds r0, r0, r1 + pop {r1} + bx r1 + .align 2, 0 +_080985E8: .4byte 0x084E87A0 + thumb_func_end stdpal_get + + thumb_func_start GetOverworldTextboxPalettePtr +GetOverworldTextboxPalettePtr: @ 0x080985EC + ldr r0, _080985F0 + bx lr + .align 2, 0 +_080985F0: .4byte 0x084E8840 + thumb_func_end GetOverworldTextboxPalettePtr + + thumb_func_start sub_080985F4 +sub_080985F4: @ 0x080985F4 + push {r4, r5, lr} + adds r3, r1, #0 + adds r4, r2, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r2, _08098638 + ldr r5, _0809863C + ldr r1, [r5] + ldrb r1, [r1, #0x14] + lsrs r1, r1, #3 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r1, [r1] + movs r2, #0x90 + lsls r2, r2, #1 + bl LoadBgTiles + ldr r0, [r5] + ldrb r0, [r0, #0x14] + lsrs r0, r0, #3 + bl GetWindowFrameTilesPal + ldr r0, [r0, #4] + adds r1, r4, #0 + movs r2, #0x20 + bl LoadPalette + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08098638: .4byte 0x084E8860 +_0809863C: .4byte 0x03005AF0 + thumb_func_end sub_080985F4 + diff --git a/asm/tileset_anims.s b/asm/tileset_anims.s new file mode 100644 index 0000000..5cbdbc5 --- /dev/null +++ b/asm/tileset_anims.s @@ -0,0 +1,2104 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ResetTilesetAnimBuffer +ResetTilesetAnimBuffer: @ 0x080A021C + push {lr} + sub sp, #4 + ldr r1, _080A023C + movs r0, #0 + strb r0, [r1] + movs r0, #0 + str r0, [sp] + ldr r1, _080A0240 + ldr r2, _080A0244 + mov r0, sp + bl CpuSet + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_080A023C: .4byte 0x03000F34 +_080A0240: .4byte 0x020372C4 +_080A0244: .4byte 0x0500003C + thumb_func_end ResetTilesetAnimBuffer + + thumb_func_start AppendTilesetAnimToBuffer +AppendTilesetAnimToBuffer: @ 0x080A0248 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r2, r2, #0x10 + lsrs r6, r2, #0x10 + ldr r3, _080A0290 + ldrb r0, [r3] + cmp r0, #0x13 + bhi _080A0288 + ldr r2, _080A0294 + adds r1, r0, #0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + str r4, [r0] + ldrb r1, [r3] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r2, #4 + adds r0, r0, r1 + str r5, [r0] + ldrb r1, [r3] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r6, [r0, #8] + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] +_080A0288: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080A0290: .4byte 0x03000F34 +_080A0294: .4byte 0x020372C4 + thumb_func_end AppendTilesetAnimToBuffer + + thumb_func_start TransferTilesetAnimsBuffer +TransferTilesetAnimsBuffer: @ 0x080A0298 + push {r4, r5, r6, lr} + movs r3, #0 + ldr r4, _080A02D4 + adds r6, r4, #0 + ldrb r0, [r4] + cmp r3, r0 + bge _080A02CA + ldr r2, _080A02D8 + ldr r1, _080A02DC + movs r5, #0x80 + lsls r5, r5, #0x18 +_080A02AE: + ldr r0, [r1] + str r0, [r2] + ldr r0, [r1, #4] + str r0, [r2, #4] + ldrh r0, [r1, #8] + lsrs r0, r0, #1 + orrs r0, r5 + str r0, [r2, #8] + ldr r0, [r2, #8] + adds r1, #0xc + adds r3, #1 + ldrb r0, [r4] + cmp r3, r0 + blt _080A02AE +_080A02CA: + movs r0, #0 + strb r0, [r6] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080A02D4: .4byte 0x03000F34 +_080A02D8: .4byte 0x040000D4 +_080A02DC: .4byte 0x020372C4 + thumb_func_end TransferTilesetAnimsBuffer + + thumb_func_start InitTilesetAnimations +InitTilesetAnimations: @ 0x080A02E0 + push {lr} + bl ResetTilesetAnimBuffer + bl _InitPrimaryTilesetAnimation + bl _InitSecondaryTilesetAnimation + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end InitTilesetAnimations + + thumb_func_start InitSecondaryTilesetAnimation +InitSecondaryTilesetAnimation: @ 0x080A02F4 + push {lr} + bl _InitSecondaryTilesetAnimation + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end InitSecondaryTilesetAnimation + + thumb_func_start UpdateTilesetAnimations +UpdateTilesetAnimations: @ 0x080A0300 + push {r4, lr} + bl ResetTilesetAnimBuffer + ldr r2, _080A0358 + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + ldr r1, _080A035C + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrh r1, [r1] + cmp r0, r1 + blo _080A031E + movs r0, #0 + strh r0, [r2] +_080A031E: + ldr r4, _080A0360 + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + ldr r1, _080A0364 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrh r1, [r1] + cmp r0, r1 + blo _080A0336 + movs r0, #0 + strh r0, [r4] +_080A0336: + ldr r0, _080A0368 + ldr r1, [r0] + cmp r1, #0 + beq _080A0344 + ldrh r0, [r2] + bl _call_via_r1 +_080A0344: + ldr r0, _080A036C + ldr r1, [r0] + cmp r1, #0 + beq _080A0352 + ldrh r0, [r4] + bl _call_via_r1 +_080A0352: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A0358: .4byte 0x03000F36 +_080A035C: .4byte 0x03000F38 +_080A0360: .4byte 0x03000F3A +_080A0364: .4byte 0x03000F3C +_080A0368: .4byte 0x03000F40 +_080A036C: .4byte 0x03000F44 + thumb_func_end UpdateTilesetAnimations + + thumb_func_start _InitPrimaryTilesetAnimation +_InitPrimaryTilesetAnimation: @ 0x080A0370 + push {lr} + ldr r0, _080A039C + movs r1, #0 + strh r1, [r0] + ldr r0, _080A03A0 + strh r1, [r0] + ldr r1, _080A03A4 + movs r0, #0 + str r0, [r1] + ldr r0, _080A03A8 + ldr r0, [r0] + ldr r0, [r0, #0x10] + cmp r0, #0 + beq _080A0396 + ldr r0, [r0, #0x14] + cmp r0, #0 + beq _080A0396 + bl _call_via_r0 +_080A0396: + pop {r0} + bx r0 + .align 2, 0 +_080A039C: .4byte 0x03000F36 +_080A03A0: .4byte 0x03000F38 +_080A03A4: .4byte 0x03000F40 +_080A03A8: .4byte 0x02036FB8 + thumb_func_end _InitPrimaryTilesetAnimation + + thumb_func_start _InitSecondaryTilesetAnimation +_InitSecondaryTilesetAnimation: @ 0x080A03AC + push {lr} + ldr r0, _080A03D8 + movs r1, #0 + strh r1, [r0] + ldr r0, _080A03DC + strh r1, [r0] + ldr r1, _080A03E0 + movs r0, #0 + str r0, [r1] + ldr r0, _080A03E4 + ldr r0, [r0] + ldr r0, [r0, #0x14] + cmp r0, #0 + beq _080A03D2 + ldr r0, [r0, #0x14] + cmp r0, #0 + beq _080A03D2 + bl _call_via_r0 +_080A03D2: + pop {r0} + bx r0 + .align 2, 0 +_080A03D8: .4byte 0x03000F3A +_080A03DC: .4byte 0x03000F3C +_080A03E0: .4byte 0x03000F44 +_080A03E4: .4byte 0x02036FB8 + thumb_func_end _InitSecondaryTilesetAnimation + + thumb_func_start InitTilesetAnim_General +InitTilesetAnim_General: @ 0x080A03E8 + ldr r1, _080A0400 + movs r0, #0 + strh r0, [r1] + ldr r1, _080A0404 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r2, #0 + strh r0, [r1] + ldr r1, _080A0408 + ldr r0, _080A040C + str r0, [r1] + bx lr + .align 2, 0 +_080A0400: .4byte 0x03000F36 +_080A0404: .4byte 0x03000F38 +_080A0408: .4byte 0x03000F40 +_080A040C: .4byte 0x080A0439 + thumb_func_end InitTilesetAnim_General + + thumb_func_start InitTilesetAnim_Building +InitTilesetAnim_Building: @ 0x080A0410 + ldr r1, _080A0428 + movs r0, #0 + strh r0, [r1] + ldr r1, _080A042C + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r2, #0 + strh r0, [r1] + ldr r1, _080A0430 + ldr r0, _080A0434 + str r0, [r1] + bx lr + .align 2, 0 +_080A0428: .4byte 0x03000F36 +_080A042C: .4byte 0x03000F38 +_080A0430: .4byte 0x03000F40 +_080A0434: .4byte 0x080A047D + thumb_func_end InitTilesetAnim_Building + + thumb_func_start TilesetAnim_General +TilesetAnim_General: @ 0x080A0438 + push {r4, r5, lr} + lsls r5, r0, #0x10 + movs r0, #0xf0 + lsls r0, r0, #0xc + ands r0, r5 + lsrs r4, r0, #0x10 + cmp r4, #0 + bne _080A044E + lsrs r0, r5, #0x14 + bl QueueAnimTiles_General_Flower +_080A044E: + cmp r4, #1 + bne _080A0458 + lsrs r0, r5, #0x14 + bl QueueAnimTiles_General_Water +_080A0458: + cmp r4, #2 + bne _080A0462 + lsrs r0, r5, #0x14 + bl QueueAnimTiles_General_SandWaterEdge +_080A0462: + cmp r4, #3 + bne _080A046C + lsrs r0, r5, #0x14 + bl QueueAnimTiles_General_Waterfall +_080A046C: + cmp r4, #4 + bne _080A0476 + lsrs r0, r5, #0x14 + bl QueueAnimTiles_General_LandWaterEdge +_080A0476: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end TilesetAnim_General + + thumb_func_start TilesetAnim_Building +TilesetAnim_Building: @ 0x080A047C + push {lr} + lsls r1, r0, #0x10 + movs r0, #0xe0 + lsls r0, r0, #0xb + ands r0, r1 + cmp r0, #0 + bne _080A0490 + lsrs r0, r1, #0x13 + bl QueueAnimTiles_Building_TVTurnedOn +_080A0490: + pop {r0} + bx r0 + thumb_func_end TilesetAnim_Building + + thumb_func_start QueueAnimTiles_General_Flower +QueueAnimTiles_General_Flower: @ 0x080A0494 + push {lr} + lsls r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r0 + ldr r0, _080A04B4 + lsrs r1, r1, #0xe + adds r1, r1, r0 + ldr r0, [r1] + ldr r1, _080A04B8 + movs r2, #0x80 + bl AppendTilesetAnimToBuffer + pop {r0} + bx r0 + .align 2, 0 +_080A04B4: .4byte 0x084E8E70 +_080A04B8: .4byte 0x06003F80 + thumb_func_end QueueAnimTiles_General_Flower + + thumb_func_start QueueAnimTiles_General_Water +QueueAnimTiles_General_Water: @ 0x080A04BC + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #7 + ands r0, r1 + ldr r1, _080A04DC + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _080A04E0 + movs r2, #0xf0 + lsls r2, r2, #2 + bl AppendTilesetAnimToBuffer + pop {r0} + bx r0 + .align 2, 0 +_080A04DC: .4byte 0x084EAC80 +_080A04E0: .4byte 0x06003600 + thumb_func_end QueueAnimTiles_General_Water + + thumb_func_start QueueAnimTiles_General_SandWaterEdge +QueueAnimTiles_General_SandWaterEdge: @ 0x080A04E4 + push {lr} + lsls r0, r0, #0x10 + movs r1, #0xe0 + lsls r1, r1, #0xb + ands r1, r0 + ldr r0, _080A0504 + lsrs r1, r1, #0xe + adds r1, r1, r0 + ldr r0, [r1] + ldr r1, _080A0508 + movs r2, #0xa0 + lsls r2, r2, #1 + bl AppendTilesetAnimToBuffer + pop {r0} + bx r0 + .align 2, 0 +_080A0504: .4byte 0x084EB560 +_080A0508: .4byte 0x06003A00 + thumb_func_end QueueAnimTiles_General_SandWaterEdge + + thumb_func_start QueueAnimTiles_General_Waterfall +QueueAnimTiles_General_Waterfall: @ 0x080A050C + push {lr} + lsls r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r0 + ldr r0, _080A052C + lsrs r1, r1, #0xe + adds r1, r1, r0 + ldr r0, [r1] + ldr r1, _080A0530 + movs r2, #0xc0 + bl AppendTilesetAnimToBuffer + pop {r0} + bx r0 + .align 2, 0 +_080A052C: .4byte 0x084EB880 +_080A0530: .4byte 0x06003E00 + thumb_func_end QueueAnimTiles_General_Waterfall + + thumb_func_start InitTilesetAnim_Fallarbor +InitTilesetAnim_Fallarbor: @ 0x080A0534 + ldr r1, _080A054C + movs r0, #0 + strh r0, [r1] + ldr r1, _080A0550 + ldr r0, _080A0554 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _080A0558 + movs r0, #0 + str r0, [r1] + bx lr + .align 2, 0 +_080A054C: .4byte 0x03000F3A +_080A0550: .4byte 0x03000F3C +_080A0554: .4byte 0x03000F38 +_080A0558: .4byte 0x03000F44 + thumb_func_end InitTilesetAnim_Fallarbor + + thumb_func_start InitTilesetAnim_BattleFrontierOutsideEast +InitTilesetAnim_BattleFrontierOutsideEast: @ 0x080A055C + ldr r1, _080A0574 + movs r0, #0 + strh r0, [r1] + ldr r1, _080A0578 + ldr r0, _080A057C + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _080A0580 + ldr r0, _080A0584 + str r0, [r1] + bx lr + .align 2, 0 +_080A0574: .4byte 0x03000F3A +_080A0578: .4byte 0x03000F3C +_080A057C: .4byte 0x03000F38 +_080A0580: .4byte 0x03000F44 +_080A0584: .4byte 0x080A0905 + thumb_func_end InitTilesetAnim_BattleFrontierOutsideEast + + thumb_func_start InitTilesetAnim_BattleFrontierOutsideWest +InitTilesetAnim_BattleFrontierOutsideWest: @ 0x080A0588 + ldr r1, _080A05A0 + movs r0, #0 + strh r0, [r1] + ldr r1, _080A05A4 + ldr r0, _080A05A8 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _080A05AC + ldr r0, _080A05B0 + str r0, [r1] + bx lr + .align 2, 0 +_080A05A0: .4byte 0x03000F3A +_080A05A4: .4byte 0x03000F3C +_080A05A8: .4byte 0x03000F38 +_080A05AC: .4byte 0x03000F44 +_080A05B0: .4byte 0x080A0981 + thumb_func_end InitTilesetAnim_BattleFrontierOutsideWest + + thumb_func_start InitTilesetAnim_BattlePyramid +InitTilesetAnim_BattlePyramid: @ 0x080A05B4 + ldr r1, _080A05CC + movs r0, #0 + strh r0, [r1] + ldr r1, _080A05D0 + ldr r0, _080A05D4 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _080A05D8 + ldr r0, _080A05DC + str r0, [r1] + bx lr + .align 2, 0 +_080A05CC: .4byte 0x03000F3A +_080A05D0: .4byte 0x03000F3C +_080A05D4: .4byte 0x03000F38 +_080A05D8: .4byte 0x03000F44 +_080A05DC: .4byte 0x080A0999 + thumb_func_end InitTilesetAnim_BattlePyramid + + thumb_func_start InitTilesetAnim_Mauville +InitTilesetAnim_Mauville: @ 0x080A05E0 + ldr r1, _080A05F8 + ldr r0, _080A05FC + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _080A0600 + ldr r0, _080A0604 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _080A0608 + ldr r0, _080A060C + str r0, [r1] + bx lr + .align 2, 0 +_080A05F8: .4byte 0x03000F3A +_080A05FC: .4byte 0x03000F36 +_080A0600: .4byte 0x03000F3C +_080A0604: .4byte 0x03000F38 +_080A0608: .4byte 0x03000F44 +_080A060C: .4byte 0x080A09B1 + thumb_func_end InitTilesetAnim_Mauville + + thumb_func_start InitTilesetAnim_BikeShop +InitTilesetAnim_BikeShop: @ 0x080A0610 + ldr r1, _080A0628 + movs r0, #0 + strh r0, [r1] + ldr r1, _080A062C + ldr r0, _080A0630 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _080A0634 + ldr r0, _080A0638 + str r0, [r1] + bx lr + .align 2, 0 +_080A0628: .4byte 0x03000F3A +_080A062C: .4byte 0x03000F3C +_080A0630: .4byte 0x03000F38 +_080A0634: .4byte 0x03000F44 +_080A0638: .4byte 0x080A0A25 + thumb_func_end InitTilesetAnim_BikeShop + + thumb_func_start InitTilesetAnim_Fortree +InitTilesetAnim_Fortree: @ 0x080A063C + ldr r1, _080A0654 + movs r0, #0 + strh r0, [r1] + ldr r1, _080A0658 + ldr r0, _080A065C + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _080A0660 + movs r0, #0 + str r0, [r1] + bx lr + .align 2, 0 +_080A0654: .4byte 0x03000F3A +_080A0658: .4byte 0x03000F3C +_080A065C: .4byte 0x03000F38 +_080A0660: .4byte 0x03000F44 + thumb_func_end InitTilesetAnim_Fortree + + thumb_func_start InitTilesetAnim_Lilycove +InitTilesetAnim_Lilycove: @ 0x080A0664 + ldr r1, _080A067C + movs r0, #0 + strh r0, [r1] + ldr r1, _080A0680 + ldr r0, _080A0684 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _080A0688 + movs r0, #0 + str r0, [r1] + bx lr + .align 2, 0 +_080A067C: .4byte 0x03000F3A +_080A0680: .4byte 0x03000F3C +_080A0684: .4byte 0x03000F38 +_080A0688: .4byte 0x03000F44 + thumb_func_end InitTilesetAnim_Lilycove + + thumb_func_start InitTilesetAnim_Mossdeep +InitTilesetAnim_Mossdeep: @ 0x080A068C + ldr r1, _080A06A4 + movs r0, #0 + strh r0, [r1] + ldr r1, _080A06A8 + ldr r0, _080A06AC + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _080A06B0 + movs r0, #0 + str r0, [r1] + bx lr + .align 2, 0 +_080A06A4: .4byte 0x03000F3A +_080A06A8: .4byte 0x03000F3C +_080A06AC: .4byte 0x03000F38 +_080A06B0: .4byte 0x03000F44 + thumb_func_end InitTilesetAnim_Mossdeep + + thumb_func_start InitTilesetAnim_Petalburg +InitTilesetAnim_Petalburg: @ 0x080A06B4 + ldr r1, _080A06CC + movs r0, #0 + strh r0, [r1] + ldr r1, _080A06D0 + ldr r0, _080A06D4 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _080A06D8 + movs r0, #0 + str r0, [r1] + bx lr + .align 2, 0 +_080A06CC: .4byte 0x03000F3A +_080A06D0: .4byte 0x03000F3C +_080A06D4: .4byte 0x03000F38 +_080A06D8: .4byte 0x03000F44 + thumb_func_end InitTilesetAnim_Petalburg + + thumb_func_start InitTilesetAnim_Cave +InitTilesetAnim_Cave: @ 0x080A06DC + ldr r1, _080A06F4 + movs r0, #0 + strh r0, [r1] + ldr r1, _080A06F8 + ldr r0, _080A06FC + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _080A0700 + ldr r0, _080A0704 + str r0, [r1] + bx lr + .align 2, 0 +_080A06F4: .4byte 0x03000F3A +_080A06F8: .4byte 0x03000F3C +_080A06FC: .4byte 0x03000F38 +_080A0700: .4byte 0x03000F44 +_080A0704: .4byte 0x080A0A51 + thumb_func_end InitTilesetAnim_Cave + + thumb_func_start InitTilesetAnim_Pacifidlog +InitTilesetAnim_Pacifidlog: @ 0x080A0708 + ldr r1, _080A0720 + ldr r0, _080A0724 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _080A0728 + ldr r0, _080A072C + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _080A0730 + ldr r0, _080A0734 + str r0, [r1] + bx lr + .align 2, 0 +_080A0720: .4byte 0x03000F3A +_080A0724: .4byte 0x03000F36 +_080A0728: .4byte 0x03000F3C +_080A072C: .4byte 0x03000F38 +_080A0730: .4byte 0x03000F44 +_080A0734: .4byte 0x080A0AC5 + thumb_func_end InitTilesetAnim_Pacifidlog + + thumb_func_start InitTilesetAnim_Dewford +InitTilesetAnim_Dewford: @ 0x080A0738 + ldr r1, _080A0750 + movs r0, #0 + strh r0, [r1] + ldr r1, _080A0754 + ldr r0, _080A0758 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _080A075C + ldr r0, _080A0760 + str r0, [r1] + bx lr + .align 2, 0 +_080A0750: .4byte 0x03000F3A +_080A0754: .4byte 0x03000F3C +_080A0758: .4byte 0x03000F38 +_080A075C: .4byte 0x03000F44 +_080A0760: .4byte 0x080A0AF5 + thumb_func_end InitTilesetAnim_Dewford + + thumb_func_start InitTilesetAnim_EverGrande +InitTilesetAnim_EverGrande: @ 0x080A0764 + ldr r1, _080A077C + movs r0, #0 + strh r0, [r1] + ldr r1, _080A0780 + ldr r0, _080A0784 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _080A0788 + ldr r0, _080A078C + str r0, [r1] + bx lr + .align 2, 0 +_080A077C: .4byte 0x03000F3A +_080A0780: .4byte 0x03000F3C +_080A0784: .4byte 0x03000F38 +_080A0788: .4byte 0x03000F44 +_080A078C: .4byte 0x080A0B45 + thumb_func_end InitTilesetAnim_EverGrande + + thumb_func_start InitTilesetAnim_Lavaridge +InitTilesetAnim_Lavaridge: @ 0x080A0790 + ldr r1, _080A07A8 + movs r0, #0 + strh r0, [r1] + ldr r1, _080A07AC + ldr r0, _080A07B0 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _080A07B4 + ldr r0, _080A07B8 + str r0, [r1] + bx lr + .align 2, 0 +_080A07A8: .4byte 0x03000F3A +_080A07AC: .4byte 0x03000F3C +_080A07B0: .4byte 0x03000F38 +_080A07B4: .4byte 0x03000F44 +_080A07B8: .4byte 0x080A0B5D + thumb_func_end InitTilesetAnim_Lavaridge + + thumb_func_start InitTilesetAnim_EliteFour +InitTilesetAnim_EliteFour: @ 0x080A07BC + ldr r1, _080A07D0 + movs r0, #0 + strh r0, [r1] + ldr r1, _080A07D4 + movs r0, #0x80 + strh r0, [r1] + ldr r1, _080A07D8 + ldr r0, _080A07DC + str r0, [r1] + bx lr + .align 2, 0 +_080A07D0: .4byte 0x03000F3A +_080A07D4: .4byte 0x03000F3C +_080A07D8: .4byte 0x03000F44 +_080A07DC: .4byte 0x080A0B0D + thumb_func_end InitTilesetAnim_EliteFour + + thumb_func_start InitTilesetAnim_SootopolisGym +InitTilesetAnim_SootopolisGym: @ 0x080A07E0 + ldr r1, _080A07F4 + movs r0, #0 + strh r0, [r1] + ldr r1, _080A07F8 + movs r0, #0xf0 + strh r0, [r1] + ldr r1, _080A07FC + ldr r0, _080A0800 + str r0, [r1] + bx lr + .align 2, 0 +_080A07F4: .4byte 0x03000F3A +_080A07F8: .4byte 0x03000F3C +_080A07FC: .4byte 0x03000F44 +_080A0800: .4byte 0x080A0EA1 + thumb_func_end InitTilesetAnim_SootopolisGym + + thumb_func_start InitTilesetAnim_MauvilleGym +InitTilesetAnim_MauvilleGym: @ 0x080A0804 + ldr r1, _080A081C + movs r0, #0 + strh r0, [r1] + ldr r1, _080A0820 + ldr r0, _080A0824 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _080A0828 + ldr r0, _080A082C + str r0, [r1] + bx lr + .align 2, 0 +_080A081C: .4byte 0x03000F3A +_080A0820: .4byte 0x03000F3C +_080A0824: .4byte 0x03000F38 +_080A0828: .4byte 0x03000F44 +_080A082C: .4byte 0x080A0B29 + thumb_func_end InitTilesetAnim_MauvilleGym + + thumb_func_start InitTilesetAnim_Underwater +InitTilesetAnim_Underwater: @ 0x080A0830 + ldr r1, _080A0844 + movs r0, #0 + strh r0, [r1] + ldr r1, _080A0848 + movs r0, #0x80 + strh r0, [r1] + ldr r1, _080A084C + ldr r0, _080A0850 + str r0, [r1] + bx lr + .align 2, 0 +_080A0844: .4byte 0x03000F3A +_080A0848: .4byte 0x03000F3C +_080A084C: .4byte 0x03000F44 +_080A0850: .4byte 0x080A0EB9 + thumb_func_end InitTilesetAnim_Underwater + + thumb_func_start InitTilesetAnim_Rustboro +InitTilesetAnim_Rustboro: @ 0x080A0854 + ldr r1, _080A086C + movs r0, #0 + strh r0, [r1] + ldr r1, _080A0870 + ldr r0, _080A0874 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _080A0878 + ldr r0, _080A087C + str r0, [r1] + bx lr + .align 2, 0 +_080A086C: .4byte 0x03000F3A +_080A0870: .4byte 0x03000F3C +_080A0874: .4byte 0x03000F38 +_080A0878: .4byte 0x03000F44 +_080A087C: .4byte 0x080A0E89 + thumb_func_end InitTilesetAnim_Rustboro + + thumb_func_start InitTilesetAnim_Slateport +InitTilesetAnim_Slateport: @ 0x080A0880 + ldr r1, _080A0898 + movs r0, #0 + strh r0, [r1] + ldr r1, _080A089C + ldr r0, _080A08A0 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _080A08A4 + ldr r0, _080A08A8 + str r0, [r1] + bx lr + .align 2, 0 +_080A0898: .4byte 0x03000F3A +_080A089C: .4byte 0x03000F3C +_080A08A0: .4byte 0x03000F38 +_080A08A4: .4byte 0x03000F44 +_080A08A8: .4byte 0x080A0EE5 + thumb_func_end InitTilesetAnim_Slateport + + thumb_func_start InitTilesetAnim_Sootopolis +InitTilesetAnim_Sootopolis: @ 0x080A08AC + ldr r1, _080A08C4 + movs r0, #0 + strh r0, [r1] + ldr r1, _080A08C8 + ldr r0, _080A08CC + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _080A08D0 + ldr r0, _080A08D4 + str r0, [r1] + bx lr + .align 2, 0 +_080A08C4: .4byte 0x03000F3A +_080A08C8: .4byte 0x03000F3C +_080A08CC: .4byte 0x03000F38 +_080A08D0: .4byte 0x03000F44 +_080A08D4: .4byte 0x080A0EFD + thumb_func_end InitTilesetAnim_Sootopolis + + thumb_func_start InitTilesetAnim_BattleDome +InitTilesetAnim_BattleDome: @ 0x080A08D8 + ldr r1, _080A08F0 + movs r0, #0 + strh r0, [r1] + ldr r1, _080A08F4 + ldr r0, _080A08F8 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _080A08FC + ldr r0, _080A0900 + str r0, [r1] + bx lr + .align 2, 0 +_080A08F0: .4byte 0x03000F3A +_080A08F4: .4byte 0x03000F3C +_080A08F8: .4byte 0x03000F38 +_080A08FC: .4byte 0x03000F44 +_080A0900: .4byte 0x080A0F21 + thumb_func_end InitTilesetAnim_BattleDome + + thumb_func_start TilesetAnim_Rustboro +TilesetAnim_Rustboro: @ 0x080A0904 + push {r4, r5, r6, lr} + lsls r5, r0, #0x10 + movs r0, #0xe0 + lsls r0, r0, #0xb + ands r0, r5 + lsrs r6, r0, #0x10 + cmp r6, #0 + bne _080A0924 + lsrs r4, r5, #0x13 + adds r0, r4, #0 + movs r1, #0 + bl QueueAnimTiles_Rustboro_WindyWater + adds r0, r4, #0 + bl QueueAnimTiles_Rustboro_Fountain +_080A0924: + cmp r6, #1 + bne _080A0930 + lsrs r0, r5, #0x13 + movs r1, #1 + bl QueueAnimTiles_Rustboro_WindyWater +_080A0930: + cmp r6, #2 + bne _080A093C + lsrs r0, r5, #0x13 + movs r1, #2 + bl QueueAnimTiles_Rustboro_WindyWater +_080A093C: + cmp r6, #3 + bne _080A0948 + lsrs r0, r5, #0x13 + movs r1, #3 + bl QueueAnimTiles_Rustboro_WindyWater +_080A0948: + cmp r6, #4 + bne _080A0954 + lsrs r0, r5, #0x13 + movs r1, #4 + bl QueueAnimTiles_Rustboro_WindyWater +_080A0954: + cmp r6, #5 + bne _080A0960 + lsrs r0, r5, #0x13 + movs r1, #5 + bl QueueAnimTiles_Rustboro_WindyWater +_080A0960: + cmp r6, #6 + bne _080A096C + lsrs r0, r5, #0x13 + movs r1, #6 + bl QueueAnimTiles_Rustboro_WindyWater +_080A096C: + cmp r6, #7 + bne _080A0978 + lsrs r0, r5, #0x13 + movs r1, #7 + bl QueueAnimTiles_Rustboro_WindyWater +_080A0978: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end TilesetAnim_Rustboro + + thumb_func_start TilesetAnim_Dewford +TilesetAnim_Dewford: @ 0x080A0980 + push {lr} + lsls r1, r0, #0x10 + movs r0, #0xe0 + lsls r0, r0, #0xb + ands r0, r1 + cmp r0, #0 + bne _080A0994 + lsrs r0, r1, #0x13 + bl QueueAnimTiles_Dewford_Flag +_080A0994: + pop {r0} + bx r0 + thumb_func_end TilesetAnim_Dewford + + thumb_func_start TilesetAnim_Slateport +TilesetAnim_Slateport: @ 0x080A0998 + push {lr} + lsls r1, r0, #0x10 + movs r0, #0xf0 + lsls r0, r0, #0xc + ands r0, r1 + cmp r0, #0 + bne _080A09AC + lsrs r0, r1, #0x14 + bl QueueAnimTiles_Slateport_Balloons +_080A09AC: + pop {r0} + bx r0 + thumb_func_end TilesetAnim_Slateport + + thumb_func_start TilesetAnim_Mauville +TilesetAnim_Mauville: @ 0x080A09B0 + push {r4, r5, lr} + lsls r4, r0, #0x10 + movs r0, #0xe0 + lsls r0, r0, #0xb + ands r0, r4 + lsrs r5, r0, #0x10 + cmp r5, #0 + bne _080A09C8 + lsrs r0, r4, #0x13 + movs r1, #0 + bl QueueAnimTiles_Mauville_Flowers +_080A09C8: + cmp r5, #1 + bne _080A09D4 + lsrs r0, r4, #0x13 + movs r1, #1 + bl QueueAnimTiles_Mauville_Flowers +_080A09D4: + cmp r5, #2 + bne _080A09E0 + lsrs r0, r4, #0x13 + movs r1, #2 + bl QueueAnimTiles_Mauville_Flowers +_080A09E0: + cmp r5, #3 + bne _080A09EC + lsrs r0, r4, #0x13 + movs r1, #3 + bl QueueAnimTiles_Mauville_Flowers +_080A09EC: + cmp r5, #4 + bne _080A09F8 + lsrs r0, r4, #0x13 + movs r1, #4 + bl QueueAnimTiles_Mauville_Flowers +_080A09F8: + cmp r5, #5 + bne _080A0A04 + lsrs r0, r4, #0x13 + movs r1, #5 + bl QueueAnimTiles_Mauville_Flowers +_080A0A04: + cmp r5, #6 + bne _080A0A10 + lsrs r0, r4, #0x13 + movs r1, #6 + bl QueueAnimTiles_Mauville_Flowers +_080A0A10: + cmp r5, #7 + bne _080A0A1C + lsrs r0, r4, #0x13 + movs r1, #7 + bl QueueAnimTiles_Mauville_Flowers +_080A0A1C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end TilesetAnim_Mauville + + thumb_func_start TilesetAnim_Lavaridge +TilesetAnim_Lavaridge: @ 0x080A0A24 + push {r4, r5, lr} + lsls r4, r0, #0x10 + movs r0, #0xf0 + lsls r0, r0, #0xc + ands r0, r4 + lsrs r5, r0, #0x10 + cmp r5, #0 + bne _080A0A3E + lsrs r0, r4, #0x14 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl QueueAnimTiles_Lavaridge_Steam +_080A0A3E: + cmp r5, #1 + bne _080A0A48 + lsrs r0, r4, #0x14 + bl QueueAnimTiles_Lavaridge_Lava +_080A0A48: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end TilesetAnim_Lavaridge + + thumb_func_start TilesetAnim_EverGrande +TilesetAnim_EverGrande: @ 0x080A0A50 + push {r4, r5, lr} + lsls r4, r0, #0x10 + movs r0, #0xe0 + lsls r0, r0, #0xb + ands r0, r4 + lsrs r5, r0, #0x10 + cmp r5, #0 + bne _080A0A68 + lsrs r0, r4, #0x13 + movs r1, #0 + bl QueueAnimTiles_EverGrande_Flowers +_080A0A68: + cmp r5, #1 + bne _080A0A74 + lsrs r0, r4, #0x13 + movs r1, #1 + bl QueueAnimTiles_EverGrande_Flowers +_080A0A74: + cmp r5, #2 + bne _080A0A80 + lsrs r0, r4, #0x13 + movs r1, #2 + bl QueueAnimTiles_EverGrande_Flowers +_080A0A80: + cmp r5, #3 + bne _080A0A8C + lsrs r0, r4, #0x13 + movs r1, #3 + bl QueueAnimTiles_EverGrande_Flowers +_080A0A8C: + cmp r5, #4 + bne _080A0A98 + lsrs r0, r4, #0x13 + movs r1, #4 + bl QueueAnimTiles_EverGrande_Flowers +_080A0A98: + cmp r5, #5 + bne _080A0AA4 + lsrs r0, r4, #0x13 + movs r1, #5 + bl QueueAnimTiles_EverGrande_Flowers +_080A0AA4: + cmp r5, #6 + bne _080A0AB0 + lsrs r0, r4, #0x13 + movs r1, #6 + bl QueueAnimTiles_EverGrande_Flowers +_080A0AB0: + cmp r5, #7 + bne _080A0ABC + lsrs r0, r4, #0x13 + movs r1, #7 + bl QueueAnimTiles_EverGrande_Flowers +_080A0ABC: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end TilesetAnim_EverGrande + + thumb_func_start TilesetAnim_Pacifidlog +TilesetAnim_Pacifidlog: @ 0x080A0AC4 + push {r4, r5, lr} + lsls r4, r0, #0x10 + movs r0, #0xf0 + lsls r0, r0, #0xc + ands r0, r4 + lsrs r5, r0, #0x10 + cmp r5, #0 + bne _080A0ADE + lsrs r0, r4, #0x14 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl QueueAnimTiles_Pacifidlog_LogBridges +_080A0ADE: + cmp r5, #1 + bne _080A0AEC + lsrs r0, r4, #0x14 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl QueueAnimTiles_Pacifidlog_WaterCurrents +_080A0AEC: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end TilesetAnim_Pacifidlog + + thumb_func_start TilesetAnim_Sootopolis +TilesetAnim_Sootopolis: @ 0x080A0AF4 + push {lr} + lsls r1, r0, #0x10 + movs r0, #0xf0 + lsls r0, r0, #0xc + ands r0, r1 + cmp r0, #0 + bne _080A0B08 + lsrs r0, r1, #0x14 + bl QueueAnimTiles_Sootopolis_StormyWater +_080A0B08: + pop {r0} + bx r0 + thumb_func_end TilesetAnim_Sootopolis + + thumb_func_start TilesetAnim_Underwater +TilesetAnim_Underwater: @ 0x080A0B0C + push {lr} + lsls r1, r0, #0x10 + movs r0, #0xf0 + lsls r0, r0, #0xc + ands r0, r1 + cmp r0, #0 + bne _080A0B24 + lsrs r0, r1, #0x14 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl QueueAnimTiles_Underwater_Seaweed +_080A0B24: + pop {r0} + bx r0 + thumb_func_end TilesetAnim_Underwater + + thumb_func_start TilesetAnim_Cave +TilesetAnim_Cave: @ 0x080A0B28 + push {lr} + lsls r1, r0, #0x10 + movs r0, #0xf0 + lsls r0, r0, #0xc + ands r0, r1 + lsrs r0, r0, #0x10 + cmp r0, #1 + bne _080A0B3E + lsrs r0, r1, #0x14 + bl QueueAnimTiles_Cave_Lava +_080A0B3E: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end TilesetAnim_Cave + + thumb_func_start TilesetAnim_BattleFrontierOutsideWest +TilesetAnim_BattleFrontierOutsideWest: @ 0x080A0B44 + push {lr} + lsls r1, r0, #0x10 + movs r0, #0xe0 + lsls r0, r0, #0xb + ands r0, r1 + cmp r0, #0 + bne _080A0B58 + lsrs r0, r1, #0x13 + bl QueueAnimTiles_BattleFrontierOutsideWest_Flag +_080A0B58: + pop {r0} + bx r0 + thumb_func_end TilesetAnim_BattleFrontierOutsideWest + + thumb_func_start TilesetAnim_BattleFrontierOutsideEast +TilesetAnim_BattleFrontierOutsideEast: @ 0x080A0B5C + push {lr} + lsls r1, r0, #0x10 + movs r0, #0xe0 + lsls r0, r0, #0xb + ands r0, r1 + cmp r0, #0 + bne _080A0B70 + lsrs r0, r1, #0x13 + bl QueueAnimTiles_BattleFrontierOutsideEast_Flag +_080A0B70: + pop {r0} + bx r0 + thumb_func_end TilesetAnim_BattleFrontierOutsideEast + + thumb_func_start QueueAnimTiles_General_LandWaterEdge +QueueAnimTiles_General_LandWaterEdge: @ 0x080A0B74 + push {lr} + lsls r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r0 + ldr r0, _080A0B94 + lsrs r1, r1, #0xe + adds r1, r1, r0 + ldr r0, [r1] + ldr r1, _080A0B98 + movs r2, #0xa0 + lsls r2, r2, #1 + bl AppendTilesetAnimToBuffer + pop {r0} + bx r0 + .align 2, 0 +_080A0B94: .4byte 0x084EBD90 +_080A0B98: .4byte 0x06003C00 + thumb_func_end QueueAnimTiles_General_LandWaterEdge + + thumb_func_start QueueAnimTiles_Lavaridge_Steam +QueueAnimTiles_Lavaridge_Steam: @ 0x080A0B9C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #3 + ands r0, r4 + ldr r5, _080A0BD8 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r0, [r0] + ldr r1, _080A0BDC + movs r2, #0x80 + bl AppendTilesetAnimToBuffer + adds r1, r4, #2 + adds r0, r1, #0 + asrs r0, r0, #2 + lsls r0, r0, #2 + subs r0, r1, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r0, r0, r5 + ldr r0, [r0] + ldr r1, _080A0BE0 + movs r2, #0x80 + bl AppendTilesetAnimToBuffer + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080A0BD8: .4byte 0x084EBFA0 +_080A0BDC: .4byte 0x06006400 +_080A0BE0: .4byte 0x06006480 + thumb_func_end QueueAnimTiles_Lavaridge_Steam + + thumb_func_start QueueAnimTiles_Pacifidlog_LogBridges +QueueAnimTiles_Pacifidlog_LogBridges: @ 0x080A0BE4 + push {lr} + lsls r0, r0, #0x18 + movs r1, #0xc0 + lsls r1, r1, #0x12 + ands r1, r0 + ldr r0, _080A0C04 + lsrs r1, r1, #0x16 + adds r1, r1, r0 + ldr r0, [r1] + ldr r1, _080A0C08 + movs r2, #0xf0 + lsls r2, r2, #2 + bl AppendTilesetAnimToBuffer + pop {r0} + bx r0 + .align 2, 0 +_080A0C04: .4byte 0x084ECAF0 +_080A0C08: .4byte 0x06007A00 + thumb_func_end QueueAnimTiles_Pacifidlog_LogBridges + + thumb_func_start QueueAnimTiles_Underwater_Seaweed +QueueAnimTiles_Underwater_Seaweed: @ 0x080A0C0C + push {lr} + lsls r0, r0, #0x18 + movs r1, #0xc0 + lsls r1, r1, #0x12 + ands r1, r0 + ldr r0, _080A0C2C + lsrs r1, r1, #0x16 + adds r1, r1, r0 + ldr r0, [r1] + ldr r1, _080A0C30 + movs r2, #0x80 + bl AppendTilesetAnimToBuffer + pop {r0} + bx r0 + .align 2, 0 +_080A0C2C: .4byte 0x084ECD00 +_080A0C30: .4byte 0x06007E00 + thumb_func_end QueueAnimTiles_Underwater_Seaweed + + thumb_func_start QueueAnimTiles_Pacifidlog_WaterCurrents +QueueAnimTiles_Pacifidlog_WaterCurrents: @ 0x080A0C34 + push {lr} + lsls r0, r0, #0x18 + movs r1, #0xe0 + lsls r1, r1, #0x13 + ands r1, r0 + ldr r0, _080A0C54 + lsrs r1, r1, #0x16 + adds r1, r1, r0 + ldr r0, [r1] + ldr r1, _080A0C58 + movs r2, #0x80 + lsls r2, r2, #1 + bl AppendTilesetAnimToBuffer + pop {r0} + bx r0 + .align 2, 0 +_080A0C54: .4byte 0x084ED510 +_080A0C58: .4byte 0x06007E00 + thumb_func_end QueueAnimTiles_Pacifidlog_WaterCurrents + + thumb_func_start QueueAnimTiles_Mauville_Flowers +QueueAnimTiles_Mauville_Flowers: @ 0x080A0C5C + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + subs r0, r5, r6 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0xb + bhi _080A0CB8 + adds r0, r5, #0 + movs r1, #0xc + bl __umodsi3 + adds r4, r0, #0 + lsls r4, r4, #0x10 + ldr r0, _080A0CA8 + lsrs r4, r4, #0xe + adds r0, r4, r0 + ldr r0, [r0] + ldr r1, _080A0CAC + lsls r5, r6, #2 + adds r1, r5, r1 + ldr r1, [r1] + movs r2, #0x80 + bl AppendTilesetAnimToBuffer + ldr r0, _080A0CB0 + adds r4, r4, r0 + ldr r0, [r4] + ldr r1, _080A0CB4 + adds r5, r5, r1 + ldr r1, [r5] + movs r2, #0x80 + bl AppendTilesetAnimToBuffer + b _080A0CE4 + .align 2, 0 +_080A0CA8: .4byte 0x084EDA90 +_080A0CAC: .4byte 0x084EDA50 +_080A0CB0: .4byte 0x084EDAC0 +_080A0CB4: .4byte 0x084EDA70 +_080A0CB8: + movs r0, #3 + ands r5, r0 + ldr r0, _080A0CEC + lsls r5, r5, #2 + adds r0, r5, r0 + ldr r0, [r0] + ldr r1, _080A0CF0 + lsls r4, r6, #2 + adds r1, r4, r1 + ldr r1, [r1] + movs r2, #0x80 + bl AppendTilesetAnimToBuffer + ldr r0, _080A0CF4 + adds r5, r5, r0 + ldr r0, [r5] + ldr r1, _080A0CF8 + adds r4, r4, r1 + ldr r1, [r4] + movs r2, #0x80 + bl AppendTilesetAnimToBuffer +_080A0CE4: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080A0CEC: .4byte 0x084EDAF0 +_080A0CF0: .4byte 0x084EDA50 +_080A0CF4: .4byte 0x084EDB00 +_080A0CF8: .4byte 0x084EDA70 + thumb_func_end QueueAnimTiles_Mauville_Flowers + + thumb_func_start QueueAnimTiles_Rustboro_WindyWater +QueueAnimTiles_Rustboro_WindyWater: @ 0x080A0CFC + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + subs r0, r0, r3 + lsls r0, r0, #0x10 + movs r1, #0xe0 + lsls r1, r1, #0xb + ands r1, r0 + ldr r0, _080A0D30 + lsrs r1, r1, #0xe + adds r1, r1, r0 + ldr r2, [r1] + cmp r2, #0 + beq _080A0D2C + ldr r0, _080A0D34 + lsls r1, r3, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + movs r2, #0x80 + bl AppendTilesetAnimToBuffer +_080A0D2C: + pop {r0} + bx r0 + .align 2, 0 +_080A0D30: .4byte 0x084EDF30 +_080A0D34: .4byte 0x084EDF10 + thumb_func_end QueueAnimTiles_Rustboro_WindyWater + + thumb_func_start QueueAnimTiles_Rustboro_Fountain +QueueAnimTiles_Rustboro_Fountain: @ 0x080A0D38 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + ands r0, r1 + ldr r1, _080A0D58 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _080A0D5C + movs r2, #0x80 + bl AppendTilesetAnimToBuffer + pop {r0} + bx r0 + .align 2, 0 +_080A0D58: .4byte 0x084EE070 +_080A0D5C: .4byte 0x06007800 + thumb_func_end QueueAnimTiles_Rustboro_Fountain + + thumb_func_start QueueAnimTiles_Lavaridge_Lava +QueueAnimTiles_Lavaridge_Lava: @ 0x080A0D60 + push {lr} + lsls r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r0 + ldr r0, _080A0D80 + lsrs r1, r1, #0xe + adds r1, r1, r0 + ldr r0, [r1] + ldr r1, _080A0D84 + movs r2, #0x80 + bl AppendTilesetAnimToBuffer + pop {r0} + bx r0 + .align 2, 0 +_080A0D80: .4byte 0x084EE498 +_080A0D84: .4byte 0x06005400 + thumb_func_end QueueAnimTiles_Lavaridge_Lava + + thumb_func_start QueueAnimTiles_EverGrande_Flowers +QueueAnimTiles_EverGrande_Flowers: @ 0x080A0D88 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + subs r0, r0, r1 + lsls r0, r0, #0x10 + movs r2, #0xe0 + lsls r2, r2, #0xb + ands r2, r0 + ldr r0, _080A0DB8 + lsrs r2, r2, #0xe + adds r2, r2, r0 + ldr r0, [r2] + ldr r2, _080A0DBC + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + movs r2, #0x80 + bl AppendTilesetAnimToBuffer + pop {r0} + bx r0 + .align 2, 0 +_080A0DB8: .4byte 0x084EE8E8 +_080A0DBC: .4byte 0x084EE8C8 + thumb_func_end QueueAnimTiles_EverGrande_Flowers + + thumb_func_start QueueAnimTiles_Cave_Lava +QueueAnimTiles_Cave_Lava: @ 0x080A0DC0 + push {lr} + lsls r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r0 + ldr r0, _080A0DE0 + lsrs r1, r1, #0xe + adds r1, r1, r0 + ldr r0, [r1] + ldr r1, _080A0DE4 + movs r2, #0x80 + bl AppendTilesetAnimToBuffer + pop {r0} + bx r0 + .align 2, 0 +_080A0DE0: .4byte 0x084EE498 +_080A0DE4: .4byte 0x06007400 + thumb_func_end QueueAnimTiles_Cave_Lava + + thumb_func_start QueueAnimTiles_Dewford_Flag +QueueAnimTiles_Dewford_Flag: @ 0x080A0DE8 + push {lr} + lsls r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r0 + ldr r0, _080A0E08 + lsrs r1, r1, #0xe + adds r1, r1, r0 + ldr r0, [r1] + ldr r1, _080A0E0C + movs r2, #0xc0 + bl AppendTilesetAnimToBuffer + pop {r0} + bx r0 + .align 2, 0 +_080A0E08: .4byte 0x084EEC08 +_080A0E0C: .4byte 0x06005540 + thumb_func_end QueueAnimTiles_Dewford_Flag + + thumb_func_start QueueAnimTiles_BattleFrontierOutsideWest_Flag +QueueAnimTiles_BattleFrontierOutsideWest_Flag: @ 0x080A0E10 + push {lr} + lsls r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r0 + ldr r0, _080A0E30 + lsrs r1, r1, #0xe + adds r1, r1, r0 + ldr r0, [r1] + ldr r1, _080A0E34 + movs r2, #0xc0 + bl AppendTilesetAnimToBuffer + pop {r0} + bx r0 + .align 2, 0 +_080A0E30: .4byte 0x084EEF18 +_080A0E34: .4byte 0x06005B40 + thumb_func_end QueueAnimTiles_BattleFrontierOutsideWest_Flag + + thumb_func_start QueueAnimTiles_BattleFrontierOutsideEast_Flag +QueueAnimTiles_BattleFrontierOutsideEast_Flag: @ 0x080A0E38 + push {lr} + lsls r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r0 + ldr r0, _080A0E58 + lsrs r1, r1, #0xe + adds r1, r1, r0 + ldr r0, [r1] + ldr r1, _080A0E5C + movs r2, #0xc0 + bl AppendTilesetAnimToBuffer + pop {r0} + bx r0 + .align 2, 0 +_080A0E58: .4byte 0x084EF228 +_080A0E5C: .4byte 0x06005B40 + thumb_func_end QueueAnimTiles_BattleFrontierOutsideEast_Flag + + thumb_func_start QueueAnimTiles_Slateport_Balloons +QueueAnimTiles_Slateport_Balloons: @ 0x080A0E60 + push {lr} + lsls r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r0 + ldr r0, _080A0E80 + lsrs r1, r1, #0xe + adds r1, r1, r0 + ldr r0, [r1] + ldr r1, _080A0E84 + movs r2, #0x80 + bl AppendTilesetAnimToBuffer + pop {r0} + bx r0 + .align 2, 0 +_080A0E80: .4byte 0x084EF438 +_080A0E84: .4byte 0x06005C00 + thumb_func_end QueueAnimTiles_Slateport_Balloons + + thumb_func_start TilesetAnim_MauvilleGym +TilesetAnim_MauvilleGym: @ 0x080A0E88 + push {lr} + lsls r2, r0, #0x10 + lsrs r0, r2, #0x10 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _080A0E9C + lsrs r0, r2, #0x11 + bl QueueAnimTiles_MauvilleGym_ElectricGates +_080A0E9C: + pop {r0} + bx r0 + thumb_func_end TilesetAnim_MauvilleGym + + thumb_func_start TilesetAnim_SootopolisGym +TilesetAnim_SootopolisGym: @ 0x080A0EA0 + push {lr} + lsls r1, r0, #0x10 + movs r0, #0xe0 + lsls r0, r0, #0xb + ands r0, r1 + cmp r0, #0 + bne _080A0EB4 + lsrs r0, r1, #0x13 + bl QueueAnimTiles_SootopolisGym_Waterfalls +_080A0EB4: + pop {r0} + bx r0 + thumb_func_end TilesetAnim_SootopolisGym + + thumb_func_start TilesetAnim_EliteFour +TilesetAnim_EliteFour: @ 0x080A0EB8 + push {r4, r5, lr} + lsls r4, r0, #0x10 + lsrs r0, r4, #0x10 + adds r5, r0, #0 + movs r0, #0x3f + ands r0, r5 + cmp r0, #1 + bne _080A0ECE + lsrs r0, r4, #0x16 + bl QueueAnimTiles_EliteFour_GroundLights +_080A0ECE: + movs r0, #7 + ands r0, r5 + cmp r0, #1 + bne _080A0EDC + lsrs r0, r4, #0x13 + bl QueueAnimTiles_EliteFour_WallLights +_080A0EDC: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end TilesetAnim_EliteFour + + thumb_func_start TilesetAnim_BikeShop +TilesetAnim_BikeShop: @ 0x080A0EE4 + push {lr} + lsls r1, r0, #0x10 + movs r0, #0xc0 + lsls r0, r0, #0xa + ands r0, r1 + cmp r0, #0 + bne _080A0EF8 + lsrs r0, r1, #0x12 + bl QueueAnimTiles_BikeShop_BlinkingLights +_080A0EF8: + pop {r0} + bx r0 + thumb_func_end TilesetAnim_BikeShop + + thumb_func_start TilesetAnim_BattlePyramid +TilesetAnim_BattlePyramid: @ 0x080A0EFC + push {r4, lr} + lsls r4, r0, #0x10 + movs r0, #0xe0 + lsls r0, r0, #0xb + ands r0, r4 + cmp r0, #0 + bne _080A0F18 + lsrs r4, r4, #0x13 + adds r0, r4, #0 + bl QueueAnimTiles_BattlePyramid_Torch + adds r0, r4, #0 + bl QueueAnimTiles_BattlePyramid_StatueShadow +_080A0F18: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end TilesetAnim_BattlePyramid + + thumb_func_start TilesetAnim_BattleDome +TilesetAnim_BattleDome: @ 0x080A0F20 + push {lr} + lsls r1, r0, #0x10 + movs r0, #0xc0 + lsls r0, r0, #0xa + ands r0, r1 + cmp r0, #0 + bne _080A0F34 + lsrs r0, r1, #0x12 + bl BlendAnimPalette_BattleDome_FloorLights +_080A0F34: + pop {r0} + bx r0 + thumb_func_end TilesetAnim_BattleDome + + thumb_func_start TilesetAnim_BattleDome2 +TilesetAnim_BattleDome2: @ 0x080A0F38 + push {lr} + lsls r1, r0, #0x10 + movs r0, #0xc0 + lsls r0, r0, #0xa + ands r0, r1 + cmp r0, #0 + bne _080A0F4C + lsrs r0, r1, #0x12 + bl BlendAnimPalette_BattleDome_FloorLightsNoBlend +_080A0F4C: + pop {r0} + bx r0 + thumb_func_end TilesetAnim_BattleDome2 + + thumb_func_start QueueAnimTiles_Building_TVTurnedOn +QueueAnimTiles_Building_TVTurnedOn: @ 0x080A0F50 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + ands r0, r1 + ldr r1, _080A0F70 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _080A0F74 + movs r2, #0x80 + bl AppendTilesetAnimToBuffer + pop {r0} + bx r0 + .align 2, 0 +_080A0F70: .4byte 0x084EF548 +_080A0F74: .4byte 0x06003E00 + thumb_func_end QueueAnimTiles_Building_TVTurnedOn + + thumb_func_start QueueAnimTiles_SootopolisGym_Waterfalls +QueueAnimTiles_SootopolisGym_Waterfalls: @ 0x080A0F78 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + adds r4, r0, #0 + lsls r4, r4, #0x10 + ldr r0, _080A0FB0 + lsrs r4, r4, #0xe + adds r0, r4, r0 + ldr r0, [r0] + ldr r1, _080A0FB4 + movs r2, #0xc0 + lsls r2, r2, #1 + bl AppendTilesetAnimToBuffer + ldr r0, _080A0FB8 + adds r4, r4, r0 + ldr r0, [r4] + ldr r1, _080A0FBC + movs r2, #0xa0 + lsls r2, r2, #2 + bl AppendTilesetAnimToBuffer + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A0FB0: .4byte 0x084F0150 +_080A0FB4: .4byte 0x06007E00 +_080A0FB8: .4byte 0x084F015C +_080A0FBC: .4byte 0x06007A00 + thumb_func_end QueueAnimTiles_SootopolisGym_Waterfalls + + thumb_func_start QueueAnimTiles_EliteFour_WallLights +QueueAnimTiles_EliteFour_WallLights: @ 0x080A0FC0 + push {lr} + lsls r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r0 + ldr r0, _080A0FE0 + lsrs r1, r1, #0xe + adds r1, r1, r0 + ldr r0, [r1] + ldr r1, _080A0FE4 + movs r2, #0x20 + bl AppendTilesetAnimToBuffer + pop {r0} + bx r0 + .align 2, 0 +_080A0FE0: .4byte 0x084F0308 +_080A0FE4: .4byte 0x06007F00 + thumb_func_end QueueAnimTiles_EliteFour_WallLights + + thumb_func_start QueueAnimTiles_EliteFour_GroundLights +QueueAnimTiles_EliteFour_GroundLights: @ 0x080A0FE8 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + ands r0, r1 + ldr r1, _080A1008 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _080A100C + movs r2, #0x80 + bl AppendTilesetAnimToBuffer + pop {r0} + bx r0 + .align 2, 0 +_080A1008: .4byte 0x084F0318 +_080A100C: .4byte 0x06007C00 + thumb_func_end QueueAnimTiles_EliteFour_GroundLights + + thumb_func_start QueueAnimTiles_MauvilleGym_ElectricGates +QueueAnimTiles_MauvilleGym_ElectricGates: @ 0x080A1010 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + ands r0, r1 + ldr r1, _080A1030 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _080A1034 + movs r2, #0x80 + lsls r2, r2, #2 + bl AppendTilesetAnimToBuffer + pop {r0} + bx r0 + .align 2, 0 +_080A1030: .4byte 0x084F0740 +_080A1034: .4byte 0x06005200 + thumb_func_end QueueAnimTiles_MauvilleGym_ElectricGates + + thumb_func_start QueueAnimTiles_BikeShop_BlinkingLights +QueueAnimTiles_BikeShop_BlinkingLights: @ 0x080A1038 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + ands r0, r1 + ldr r1, _080A1058 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _080A105C + movs r2, #0x90 + lsls r2, r2, #1 + bl AppendTilesetAnimToBuffer + pop {r0} + bx r0 + .align 2, 0 +_080A1058: .4byte 0x084F09A8 +_080A105C: .4byte 0x06007E00 + thumb_func_end QueueAnimTiles_BikeShop_BlinkingLights + + thumb_func_start QueueAnimTiles_Sootopolis_StormyWater +QueueAnimTiles_Sootopolis_StormyWater: @ 0x080A1060 + push {lr} + lsls r0, r0, #0x10 + movs r1, #0xe0 + lsls r1, r1, #0xb + ands r1, r0 + ldr r0, _080A1080 + lsrs r1, r1, #0xe + adds r1, r1, r0 + ldr r0, [r1] + ldr r1, _080A1084 + movs r2, #0xc0 + lsls r2, r2, #4 + bl AppendTilesetAnimToBuffer + pop {r0} + bx r0 + .align 2, 0 +_080A1080: .4byte 0x084F89D0 +_080A1084: .4byte 0x06005E00 + thumb_func_end QueueAnimTiles_Sootopolis_StormyWater + + thumb_func_start QueueAnimTiles_BattlePyramid_Torch +QueueAnimTiles_BattlePyramid_Torch: @ 0x080A1088 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + lsls r0, r0, #0x10 + ldr r1, _080A10AC + lsrs r0, r0, #0xe + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _080A10B0 + movs r2, #0x80 + lsls r2, r2, #1 + bl AppendTilesetAnimToBuffer + pop {r0} + bx r0 + .align 2, 0 +_080A10AC: .4byte 0x084FCF70 +_080A10B0: .4byte 0x060052E0 + thumb_func_end QueueAnimTiles_BattlePyramid_Torch + + thumb_func_start QueueAnimTiles_BattlePyramid_StatueShadow +QueueAnimTiles_BattlePyramid_StatueShadow: @ 0x080A10B4 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + lsls r0, r0, #0x10 + ldr r1, _080A10D8 + lsrs r0, r0, #0xe + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _080A10DC + movs r2, #0x80 + lsls r2, r2, #1 + bl AppendTilesetAnimToBuffer + pop {r0} + bx r0 + .align 2, 0 +_080A10D8: .4byte 0x084FCF7C +_080A10DC: .4byte 0x060050E0 + thumb_func_end QueueAnimTiles_BattlePyramid_StatueShadow + + thumb_func_start BlendAnimPalette_BattleDome_FloorLights +BlendAnimPalette_BattleDome_FloorLights: @ 0x080A10E0 + push {lr} + lsls r0, r0, #0x10 + ldr r2, _080A1130 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r0 + lsrs r1, r1, #0xe + adds r1, r1, r2 + ldr r0, [r1] + ldr r1, _080A1134 + movs r2, #0x10 + bl CpuSet + ldr r0, _080A1138 + ldrh r2, [r0, #4] + lsls r2, r2, #0x15 + lsrs r2, r2, #0x1b + ldrh r3, [r0, #6] + lsls r3, r3, #0x11 + lsrs r3, r3, #0x11 + movs r0, #0x80 + movs r1, #0x10 + bl BlendPalette + ldr r0, _080A113C + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _080A112A + ldr r1, _080A1140 + ldr r0, _080A1144 + str r0, [r1] + ldr r1, _080A1148 + movs r0, #0x20 + strh r0, [r1] +_080A112A: + pop {r0} + bx r0 + .align 2, 0 +_080A1130: .4byte 0x084FCF88 +_080A1134: .4byte 0x020374B4 +_080A1138: .4byte 0x02037C74 +_080A113C: .4byte 0x08149EBD +_080A1140: .4byte 0x03000F44 +_080A1144: .4byte 0x080A0F39 +_080A1148: .4byte 0x03000F3C + thumb_func_end BlendAnimPalette_BattleDome_FloorLights + + thumb_func_start BlendAnimPalette_BattleDome_FloorLightsNoBlend +BlendAnimPalette_BattleDome_FloorLightsNoBlend: @ 0x080A114C + push {lr} + lsls r0, r0, #0x10 + ldr r2, _080A11A4 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r0 + lsrs r1, r1, #0xe + adds r1, r1, r2 + ldr r0, [r1] + ldr r1, _080A11A8 + movs r2, #0x10 + bl CpuSet + ldr r0, _080A11AC + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080A119E + ldr r0, _080A11B0 + ldrh r2, [r0, #4] + lsls r2, r2, #0x15 + lsrs r2, r2, #0x1b + ldrh r3, [r0, #6] + lsls r3, r3, #0x11 + lsrs r3, r3, #0x11 + movs r0, #0x80 + movs r1, #0x10 + bl BlendPalette + ldr r1, _080A11B4 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + bne _080A119E + ldr r0, _080A11B8 + str r1, [r0] +_080A119E: + pop {r0} + bx r0 + .align 2, 0 +_080A11A4: .4byte 0x084FCF88 +_080A11A8: .4byte 0x020374B4 +_080A11AC: .4byte 0x08149EBD +_080A11B0: .4byte 0x02037C74 +_080A11B4: .4byte 0x03000F3C +_080A11B8: .4byte 0x03000F44 + thumb_func_end BlendAnimPalette_BattleDome_FloorLightsNoBlend + diff --git a/asm/time_events.s b/asm/time_events.s new file mode 100644 index 0000000..fa25260 --- /dev/null +++ b/asm/time_events.s @@ -0,0 +1,240 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start GetMirageRnd +GetMirageRnd: @ 0x08137900 + push {r4, lr} + ldr r0, _08137924 + bl VarGet + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r0, _08137928 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r4, r4, #0x10 + orrs r4, r0 + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08137924: .4byte 0x00004024 +_08137928: .4byte 0x00004025 + thumb_func_end GetMirageRnd + + thumb_func_start SetMirageRnd +SetMirageRnd: @ 0x0813792C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0813794C + lsrs r1, r4, #0x10 + bl VarSet + ldr r0, _08137950 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r1, r4, #0 + bl VarSet + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813794C: .4byte 0x00004024 +_08137950: .4byte 0x00004025 + thumb_func_end SetMirageRnd + + thumb_func_start InitMirageRnd +InitMirageRnd: @ 0x08137954 + push {r4, lr} + bl Random + adds r4, r0, #0 + bl Random + lsls r4, r4, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + orrs r4, r0 + adds r0, r4, #0 + bl SetMirageRnd + pop {r4} + pop {r0} + bx r0 + thumb_func_end InitMirageRnd + + thumb_func_start UpdateMirageRnd +UpdateMirageRnd: @ 0x08137974 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + bl GetMirageRnd + adds r1, r0, #0 + cmp r4, #0 + beq _08137998 + ldr r3, _081379A4 + ldr r2, _081379A8 +_08137988: + adds r0, r1, #0 + muls r0, r3, r0 + adds r1, r0, r2 + subs r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0 + bne _08137988 +_08137998: + adds r0, r1, #0 + bl SetMirageRnd + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081379A4: .4byte 0x41C64E6D +_081379A8: .4byte 0x00003039 + thumb_func_end UpdateMirageRnd + + thumb_func_start IsMirageIslandPresent +IsMirageIslandPresent: @ 0x081379AC + push {r4, r5, r6, lr} + bl GetMirageRnd + lsrs r6, r0, #0x10 + movs r5, #0 +_081379B6: + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _081379E0 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _081379E8 + adds r0, r4, #0 + movs r1, #0 + bl GetMonData + ldr r1, _081379E4 + ands r1, r0 + cmp r1, r6 + bne _081379E8 + movs r0, #1 + b _081379F0 + .align 2, 0 +_081379E0: .4byte 0x02024190 +_081379E4: .4byte 0x0000FFFF +_081379E8: + adds r5, #1 + cmp r5, #5 + ble _081379B6 + movs r0, #0 +_081379F0: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsMirageIslandPresent + + thumb_func_start UpdateShoalTideFlag +UpdateShoalTideFlag: @ 0x081379F8 + push {lr} + bl GetLastUsedWarpMapType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl IsMapTypeOutdoors + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08137A3E + bl RtcCalcLocalTime + ldr r1, _08137A2C + ldr r0, _08137A30 + ldrb r0, [r0, #2] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _08137A38 + ldr r0, _08137A34 + bl FlagSet + b _08137A3E + .align 2, 0 +_08137A2C: .4byte 0x08592590 +_08137A30: .4byte 0x03005A50 +_08137A34: .4byte 0x0000089A +_08137A38: + ldr r0, _08137A44 + bl FlagClear +_08137A3E: + pop {r0} + bx r0 + .align 2, 0 +_08137A44: .4byte 0x0000089A + thumb_func_end UpdateShoalTideFlag + + thumb_func_start Task_WaitWeather +Task_WaitWeather: @ 0x08137A48 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl IsWeatherChangeComplete + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08137A62 + bl EnableBothScriptContexts + adds r0, r4, #0 + bl DestroyTask +_08137A62: + pop {r4} + pop {r0} + bx r0 + thumb_func_end Task_WaitWeather + + thumb_func_start WaitWeather +WaitWeather: @ 0x08137A68 + push {lr} + ldr r0, _08137A78 + movs r1, #0x50 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_08137A78: .4byte 0x08137A49 + thumb_func_end WaitWeather + + thumb_func_start InitBirchState +InitBirchState: @ 0x08137A7C + push {lr} + ldr r0, _08137A8C + bl GetVarPointer + movs r1, #0 + strh r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_08137A8C: .4byte 0x00004049 + thumb_func_end InitBirchState + + thumb_func_start UpdateBirchState +UpdateBirchState: @ 0x08137A90 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r0, _08137AB8 + bl GetVarPointer + adds r5, r0, #0 + ldrh r0, [r5] + adds r4, r4, r0 + strh r4, [r5] + ldrh r0, [r5] + movs r1, #7 + bl __umodsi3 + strh r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08137AB8: .4byte 0x00004049 + thumb_func_end UpdateBirchState + diff --git a/asm/title_screen.s b/asm/title_screen.s new file mode 100644 index 0000000..281111e --- /dev/null +++ b/asm/title_screen.s @@ -0,0 +1,1434 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start SpriteCB_VersionBannerLeft +SpriteCB_VersionBannerLeft: @ 0x080A9CD4 + push {lr} + adds r3, r0, #0 + ldr r2, _080A9D00 + movs r0, #0x30 + ldrsh r1, [r3, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r1, #0xa + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _080A9D04 + ldrb r0, [r3, #1] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r3, #1] + movs r0, #0x30 + strh r0, [r3, #0x22] + b _080A9D32 + .align 2, 0 +_080A9D00: .4byte 0x03005B60 +_080A9D04: + ldrh r1, [r3, #0x22] + movs r2, #0x22 + ldrsh r0, [r3, r2] + cmp r0, #0x30 + beq _080A9D12 + adds r0, r1, #1 + strh r0, [r3, #0x22] +_080A9D12: + ldrh r1, [r3, #0x2e] + movs r2, #0x2e + ldrsh r0, [r3, r2] + cmp r0, #0 + beq _080A9D20 + subs r0, r1, #1 + strh r0, [r3, #0x2e] +_080A9D20: + ldr r0, _080A9D38 + movs r2, #0x2e + ldrsh r1, [r3, r2] + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r1, [r1] + movs r0, #0x52 + bl SetGpuReg +_080A9D32: + pop {r0} + bx r0 + .align 2, 0 +_080A9D38: .4byte 0x0851AC0C + thumb_func_end SpriteCB_VersionBannerLeft + + thumb_func_start SpriteCB_VersionBannerRight +SpriteCB_VersionBannerRight: @ 0x080A9D3C + push {lr} + adds r3, r0, #0 + ldr r2, _080A9D64 + movs r0, #0x30 + ldrsh r1, [r3, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r1, #0xa + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _080A9D68 + ldrb r0, [r3, #1] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r3, #1] + movs r0, #0x30 + b _080A9D74 + .align 2, 0 +_080A9D64: .4byte 0x03005B60 +_080A9D68: + ldrh r1, [r3, #0x22] + movs r2, #0x22 + ldrsh r0, [r3, r2] + cmp r0, #0x30 + beq _080A9D76 + adds r0, r1, #1 +_080A9D74: + strh r0, [r3, #0x22] +_080A9D76: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SpriteCB_VersionBannerRight + + thumb_func_start SpriteCB_PressStartCopyrightBanner +SpriteCB_PressStartCopyrightBanner: @ 0x080A9D7C + push {lr} + adds r2, r0, #0 + movs r1, #0x2e + ldrsh r0, [r2, r1] + cmp r0, #1 + bne _080A9DA4 + ldrh r0, [r2, #0x30] + adds r0, #1 + strh r0, [r2, #0x30] + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + bne _080A9DA4 + adds r0, r2, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + b _080A9DB0 +_080A9DA4: + adds r2, #0x3e + ldrb r1, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_080A9DB0: + pop {r0} + bx r0 + thumb_func_end SpriteCB_PressStartCopyrightBanner + + thumb_func_start CreatePressStartBanner +CreatePressStartBanner: @ 0x080A9DB4 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + ldr r2, _080A9E04 + adds r0, r0, r2 + lsrs r0, r0, #0x10 + movs r6, #0 + lsls r7, r1, #0x10 +_080A9DC2: + lsls r5, r0, #0x10 + asrs r5, r5, #0x10 + ldr r0, _080A9E08 + adds r1, r5, #0 + asrs r2, r7, #0x10 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _080A9E0C + adds r4, r4, r0 + adds r0, r4, #0 + adds r1, r6, #0 + bl StartSpriteAnim + movs r0, #1 + strh r0, [r4, #0x2e] + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r5, #0x20 + lsls r5, r5, #0x10 + lsrs r0, r5, #0x10 + cmp r6, #4 + bls _080A9DC2 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080A9E04: .4byte 0xFFC00000 +_080A9E08: .4byte 0x0851AD74 +_080A9E0C: .4byte 0x020205AC + thumb_func_end CreatePressStartBanner + + thumb_func_start CreateCopyrightBanner +CreateCopyrightBanner: @ 0x080A9E10 + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + ldr r2, _080A9E60 + adds r0, r0, r2 + lsrs r0, r0, #0x10 + movs r5, #0 + lsls r6, r1, #0x10 +_080A9E1E: + lsls r4, r0, #0x10 + asrs r4, r4, #0x10 + ldr r0, _080A9E64 + adds r1, r4, #0 + asrs r2, r6, #0x10 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r0, _080A9E68 + adds r2, r2, r0 + adds r1, r5, #5 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r2, #0 + bl StartSpriteAnim + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r4, #0x20 + lsls r4, r4, #0x10 + lsrs r0, r4, #0x10 + cmp r5, #4 + bls _080A9E1E + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080A9E60: .4byte 0xFFC00000 +_080A9E64: .4byte 0x0851AD74 +_080A9E68: .4byte 0x020205AC + thumb_func_end CreateCopyrightBanner + + thumb_func_start SpriteCB_PokemonLogoShine +SpriteCB_PokemonLogoShine: @ 0x080A9E6C + push {r4, lr} + adds r3, r0, #0 + ldrh r2, [r3, #0x20] + movs r0, #0x20 + ldrsh r1, [r3, r0] + ldr r0, _080A9EA4 + cmp r1, r0 + bgt _080A9F04 + movs r4, #0x2e + ldrsh r0, [r3, r4] + adds r4, r2, #0 + cmp r0, #0 + beq _080A9EF8 + cmp r1, #0x77 + bgt _080A9EA8 + ldrh r1, [r3, #0x30] + movs r2, #0x30 + ldrsh r0, [r3, r2] + cmp r0, #0x1e + bgt _080A9EC0 + adds r1, #1 + strh r1, [r3, #0x30] + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1e + bgt _080A9EC0 + adds r0, r1, #1 + b _080A9EBE + .align 2, 0 +_080A9EA4: .4byte 0x0000010F +_080A9EA8: + ldrh r1, [r3, #0x30] + movs r4, #0x30 + ldrsh r0, [r3, r4] + cmp r0, #0 + beq _080A9EC0 + subs r0, r1, #1 + strh r0, [r3, #0x30] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080A9EC0 + subs r0, r1, #2 +_080A9EBE: + strh r0, [r3, #0x30] +_080A9EC0: + ldrh r1, [r3, #0x30] + movs r0, #0x1f + ands r0, r1 + lsls r2, r0, #0xa + lsls r1, r0, #5 + adds r2, r2, r1 + orrs r2, r0 + movs r1, #0x20 + ldrsh r0, [r3, r1] + ldrh r4, [r3, #0x20] + cmp r0, #0x84 + beq _080A9EE4 + cmp r0, #0x88 + beq _080A9EE4 + cmp r0, #0x8c + beq _080A9EE4 + cmp r0, #0x90 + bne _080A9EF4 +_080A9EE4: + ldr r1, _080A9EEC + ldr r0, _080A9EF0 + strh r0, [r1] + b _080A9EF8 + .align 2, 0 +_080A9EEC: .4byte 0x020377B4 +_080A9EF0: .4byte 0x000033F8 +_080A9EF4: + ldr r0, _080A9F00 + strh r2, [r0] +_080A9EF8: + adds r0, r4, #4 + strh r0, [r3, #0x20] + b _080A9F10 + .align 2, 0 +_080A9F00: .4byte 0x020377B4 +_080A9F04: + ldr r1, _080A9F18 + movs r0, #0 + strh r0, [r1] + adds r0, r3, #0 + bl DestroySprite +_080A9F10: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A9F18: .4byte 0x020377B4 + thumb_func_end SpriteCB_PokemonLogoShine + + thumb_func_start SpriteCB_PokemonLogoShine2 +SpriteCB_PokemonLogoShine2: @ 0x080A9F1C + push {lr} + adds r2, r0, #0 + ldrh r3, [r2, #0x20] + movs r0, #0x20 + ldrsh r1, [r2, r0] + ldr r0, _080A9F34 + cmp r1, r0 + bgt _080A9F38 + adds r0, r3, #0 + adds r0, #8 + strh r0, [r2, #0x20] + b _080A9F3E + .align 2, 0 +_080A9F34: .4byte 0x0000010F +_080A9F38: + adds r0, r2, #0 + bl DestroySprite +_080A9F3E: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SpriteCB_PokemonLogoShine2 + + thumb_func_start StartPokemonLogoShine +StartPokemonLogoShine: @ 0x080A9F44 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #1 + beq _080A9F98 + cmp r5, #1 + bgt _080A9F60 + cmp r5, #0 + beq _080A9F64 + b _080AA02E +_080A9F60: + cmp r5, #2 + bne _080AA02E +_080A9F64: + ldr r0, _080A9F90 + movs r1, #0 + movs r2, #0x44 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _080A9F94 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r2, [r0, #1] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #8 + orrs r1, r2 + strb r1, [r0, #1] + strh r5, [r0, #0x2e] + b _080AA02E + .align 2, 0 +_080A9F90: .4byte 0x0851ADC0 +_080A9F94: .4byte 0x020205AC +_080A9F98: + ldr r0, _080AA03C + mov sb, r0 + movs r1, #0 + movs r2, #0x44 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r6, _080AA040 + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrb r2, [r1, #1] + movs r4, #0xd + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r2 + movs r2, #8 + mov r8, r2 + mov r2, r8 + orrs r0, r2 + strb r0, [r1, #1] + strh r5, [r1, #0x2e] + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + mov r0, sb + movs r1, #0 + movs r2, #0x44 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r5, r6, #0 + adds r5, #0x1c + adds r0, r1, r5 + ldr r2, _080AA044 + mov sl, r2 + str r2, [r0] + adds r1, r1, r6 + ldrb r2, [r1, #1] + adds r0, r4, #0 + ands r0, r2 + mov r2, r8 + orrs r0, r2 + strb r0, [r1, #1] + movs r1, #0x50 + rsbs r1, r1, #0 + mov r0, sb + movs r2, #0x44 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r5, r0, r5 + mov r1, sl + str r1, [r5] + adds r0, r0, r6 + ldrb r1, [r0, #1] + ands r4, r1 + mov r2, r8 + orrs r4, r2 + strb r4, [r0, #1] +_080AA02E: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080AA03C: .4byte 0x0851ADC0 +_080AA040: .4byte 0x020205AC +_080AA044: .4byte 0x080A9F1D + thumb_func_end StartPokemonLogoShine + + thumb_func_start CB2_GoToClearSaveDataScreen +CB2_GoToClearSaveDataScreen: @ 0x080AA048 + push {lr} + bl ScanlineEffect_InitHBlankDmaTransfer + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + ldr r0, _080AA068 + ldrh r1, [r0] + movs r0, #0x16 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 +_080AA068: .4byte 0x02022ACE + thumb_func_end CB2_GoToClearSaveDataScreen + + thumb_func_start CB2_InitTitleScreen +CB2_InitTitleScreen: @ 0x080AA06C + push {r4, r5, lr} + sub sp, #0x14 + ldr r0, _080AA088 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #5 + bhi _080AA0A8 + lsls r0, r0, #2 + ldr r1, _080AA08C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AA088: .4byte 0x03002360 +_080AA08C: .4byte 0x080AA090 +_080AA090: @ jump table + .4byte _080AA0A8 @ case 0 + .4byte _080AA18C @ case 1 + .4byte _080AA26C @ case 2 + .4byte _080AA2B4 @ case 3 + .4byte _080AA2E8 @ case 4 + .4byte _080AA3C4 @ case 5 +_080AA0A8: + movs r0, #0 + bl SetVBlankCallback + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + movs r1, #0xa0 + lsls r1, r1, #0x13 + ldr r2, _080AA170 + adds r0, r2, #0 + strh r0, [r1] + movs r0, #0 + movs r1, #0 + bl SetGpuReg + movs r0, #0xc + movs r1, #0 + bl SetGpuReg + movs r0, #0xa + movs r1, #0 + bl SetGpuReg + movs r0, #8 + movs r1, #0 + bl SetGpuReg + movs r0, #0x18 + movs r1, #0 + bl SetGpuReg + movs r0, #0x1a + movs r1, #0 + bl SetGpuReg + movs r0, #0x14 + movs r1, #0 + bl SetGpuReg + movs r0, #0x16 + movs r1, #0 + bl SetGpuReg + movs r0, #0x10 + movs r1, #0 + bl SetGpuReg + movs r0, #0x12 + movs r1, #0 + bl SetGpuReg + add r1, sp, #0xc + movs r0, #0 + strh r0, [r1] + ldr r1, _080AA174 + add r0, sp, #0xc + str r0, [r1] + movs r0, #0xc0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _080AA178 + str r0, [r1, #8] + ldr r0, [r1, #8] + movs r2, #0 + str r2, [sp, #0x10] + add r0, sp, #0x10 + str r0, [r1] + movs r0, #0xe0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _080AA17C + str r0, [r1, #8] + ldr r0, [r1, #8] + add r0, sp, #0xc + strh r2, [r0] + str r0, [r1] + ldr r0, _080AA180 + str r0, [r1, #4] + ldr r0, _080AA184 + str r0, [r1, #8] + ldr r0, [r1, #8] + bl ResetPaletteFade + ldr r0, _080AA188 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + movs r1, #1 + strb r1, [r0] + b _080AA3F2 + .align 2, 0 +_080AA170: .4byte 0x00007FFF +_080AA174: .4byte 0x040000D4 +_080AA178: .4byte 0x8100C000 +_080AA17C: .4byte 0x85000100 +_080AA180: .4byte 0x05000002 +_080AA184: .4byte 0x810001FF +_080AA188: .4byte 0x03002360 +_080AA18C: + ldr r0, _080AA224 + movs r1, #0xc0 + lsls r1, r1, #0x13 + bl LZ77UnCompVram + ldr r0, _080AA228 + ldr r1, _080AA22C + bl LZ77UnCompVram + ldr r4, _080AA230 + movs r5, #0x90 + lsls r5, r5, #1 + adds r0, r4, #0 + movs r1, #0 + adds r2, r5, #0 + bl LoadPalette + ldr r0, _080AA234 + ldr r1, _080AA238 + bl LZ77UnCompVram + ldr r0, _080AA23C + ldr r1, _080AA240 + bl LZ77UnCompVram + adds r0, r4, #0 + adds r0, #0xa0 + movs r1, #0xe0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _080AA244 + ldr r1, _080AA248 + bl LZ77UnCompVram + ldr r0, _080AA24C + ldr r1, _080AA250 + bl LZ77UnCompVram + bl ScanlineEffect_Stop + bl ResetTasks + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r1, _080AA254 + movs r0, #9 + strb r0, [r1] + ldr r0, _080AA258 + bl LoadCompressedSpriteSheet + ldr r0, _080AA25C + bl LoadCompressedSpriteSheet + ldr r0, _080AA260 + bl LoadCompressedSpriteSheet + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r4, #0 + adds r2, r5, #0 + bl LoadPalette + ldr r0, _080AA264 + bl LoadSpritePalette + ldr r0, _080AA268 + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r0, r2 + movs r1, #2 + strb r1, [r0] + b _080AA3F2 + .align 2, 0 +_080AA224: .4byte 0x08517C18 +_080AA228: .4byte 0x08517AA0 +_080AA22C: .4byte 0x06004800 +_080AA230: .4byte 0x08517B58 +_080AA234: .4byte 0x08519AB4 +_080AA238: .4byte 0x06008000 +_080AA23C: .4byte 0x0851A298 +_080AA240: .4byte 0x0600D000 +_080AA244: .4byte 0x0851A6E8 +_080AA248: .4byte 0x0600C000 +_080AA24C: .4byte 0x0851A9CC +_080AA250: .4byte 0x0600D800 +_080AA254: .4byte 0x030030BC +_080AA258: .4byte 0x0851ACE4 +_080AA25C: .4byte 0x0851AD8C +_080AA260: .4byte 0x0851ADD8 +_080AA264: .4byte 0x0851AD9C +_080AA268: .4byte 0x03002360 +_080AA26C: + ldr r0, _080AA2A4 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080AA2A8 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r2, #0 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1, #8] + strh r2, [r1, #0xa] + ldr r0, _080AA2AC + strh r0, [r1, #0xc] + subs r0, #0x10 + strh r0, [r1, #0xe] + ldr r0, _080AA2B0 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + movs r1, #3 + strb r1, [r0] + b _080AA3F2 + .align 2, 0 +_080AA2A4: .4byte 0x080AA419 +_080AA2A8: .4byte 0x03005B60 +_080AA2AC: .4byte 0x0000FFF0 +_080AA2B0: .4byte 0x03002360 +_080AA2B4: + movs r0, #1 + rsbs r0, r0, #0 + ldr r1, _080AA2DC + str r1, [sp] + movs r1, #1 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r0, _080AA2E0 + bl SetVBlankCallback + ldr r0, _080AA2E4 + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r0, r2 + movs r1, #4 + strb r1, [r0] + b _080AA3F2 + .align 2, 0 +_080AA2DC: .4byte 0x0000FFFF +_080AA2E0: .4byte 0x080AA049 +_080AA2E4: .4byte 0x03002360 +_080AA2E8: + movs r2, #0x80 + lsls r2, r2, #1 + movs r0, #0x78 + movs r1, #0x50 + movs r3, #0 + bl PanFadeAndZoomScreen + movs r1, #0xf0 + lsls r1, r1, #8 + movs r0, #0x28 + bl SetGpuReg + ldr r4, _080AA3A0 + movs r0, #0x2a + adds r1, r4, #0 + bl SetGpuReg + movs r1, #0xe0 + lsls r1, r1, #8 + movs r0, #0x2c + bl SetGpuReg + movs r0, #0x2e + adds r1, r4, #0 + bl SetGpuReg + movs r0, #0x40 + movs r1, #0 + bl SetGpuReg + movs r0, #0x44 + movs r1, #0 + bl SetGpuReg + movs r0, #0x42 + movs r1, #0 + bl SetGpuReg + movs r0, #0x46 + movs r1, #0 + bl SetGpuReg + ldr r1, _080AA3A4 + movs r0, #0x48 + bl SetGpuReg + ldr r1, _080AA3A8 + movs r0, #0x4a + bl SetGpuReg + movs r0, #0x50 + movs r1, #0x84 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0xc + bl SetGpuReg + ldr r1, _080AA3AC + movs r0, #8 + bl SetGpuReg + ldr r1, _080AA3B0 + movs r0, #0xa + bl SetGpuReg + ldr r1, _080AA3B4 + movs r0, #0xc + bl SetGpuReg + movs r0, #1 + bl EnableInterrupts + ldr r1, _080AA3B8 + movs r0, #0 + bl SetGpuReg + ldr r0, _080AA3BC + bl m4aSongNumStart + ldr r0, _080AA3C0 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + movs r1, #5 + strb r1, [r0] + b _080AA3F2 + .align 2, 0 +_080AA3A0: .4byte 0x0000FFFF +_080AA3A4: .4byte 0x00001F1F +_080AA3A8: .4byte 0x00003F1F +_080AA3AC: .4byte 0x00001A0B +_080AA3B0: .4byte 0x00001B0E +_080AA3B4: .4byte 0x00004981 +_080AA3B8: .4byte 0x0000B441 +_080AA3BC: .4byte 0x0000019D +_080AA3C0: .4byte 0x03002360 +_080AA3C4: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _080AA3F2 + movs r0, #0 + bl StartPokemonLogoShine + str r4, [sp] + movs r0, #4 + str r0, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + movs r0, #0 + movs r1, #0xa0 + movs r2, #4 + movs r3, #4 + bl ScanlineEffect_InitWave + ldr r0, _080AA3FC + bl SetMainCallback2 +_080AA3F2: + add sp, #0x14 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080AA3FC: .4byte 0x080AA401 + thumb_func_end CB2_InitTitleScreen + + thumb_func_start CB2_GoToCopyrightScreen +CB2_GoToCopyrightScreen: @ 0x080AA400 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CB2_GoToCopyrightScreen + + thumb_func_start Task_TitleScreenPhase1 +Task_TitleScreenPhase1: @ 0x080AA418 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _080AA46C + ldrh r1, [r0, #0x2e] + movs r0, #0xf + ands r0, r1 + ldr r5, _080AA470 + cmp r0, #0 + bne _080AA43E + lsls r0, r6, #2 + adds r1, r0, r6 + lsls r1, r1, #3 + adds r1, r1, r5 + movs r2, #0xa + ldrsh r1, [r1, r2] + adds r4, r0, #0 + cmp r1, #0 + beq _080AA450 +_080AA43E: + lsls r3, r6, #2 + adds r0, r3, r6 + lsls r0, r0, #3 + adds r0, r0, r5 + movs r2, #0 + movs r1, #1 + strh r1, [r0, #0xa] + strh r2, [r0, #8] + adds r4, r3, #0 +_080AA450: + adds r0, r4, r6 + lsls r0, r0, #3 + adds r7, r0, r5 + movs r1, #8 + ldrsh r0, [r7, r1] + cmp r0, #0 + beq _080AA494 + ldrh r0, [r7, #8] + cmp r0, #0xb0 + bne _080AA474 + movs r0, #1 + bl StartPokemonLogoShine + b _080AA47E + .align 2, 0 +_080AA46C: .4byte 0x03002360 +_080AA470: .4byte 0x03005B60 +_080AA474: + cmp r0, #0x40 + bne _080AA47E + movs r0, #2 + bl StartPokemonLogoShine +_080AA47E: + ldr r0, _080AA490 + adds r1, r4, r6 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + b _080AA50A + .align 2, 0 +_080AA490: .4byte 0x03005B60 +_080AA494: + ldr r1, _080AA510 + movs r0, #0 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0 + bl SetGpuReg + movs r0, #0x4a + movs r1, #0 + bl SetGpuReg + ldr r1, _080AA514 + movs r0, #0x50 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0x10 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + ldr r0, _080AA518 + movs r4, #0x10 + rsbs r4, r4, #0 + movs r1, #0xa2 + adds r2, r4, #0 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _080AA51C + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + movs r0, #0x40 + strh r0, [r1, #0x2e] + strh r6, [r1, #0x30] + ldr r0, _080AA520 + movs r1, #0xd2 + adds r2, r4, #0 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + strh r6, [r1, #0x30] + movs r0, #0x90 + strh r0, [r7, #8] + ldr r0, _080AA524 + str r0, [r7] +_080AA50A: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080AA510: .4byte 0x00001441 +_080AA514: .4byte 0x00003F50 +_080AA518: .4byte 0x0851ACB4 +_080AA51C: .4byte 0x020205AC +_080AA520: .4byte 0x0851ACCC +_080AA524: .4byte 0x080AA529 + thumb_func_end Task_TitleScreenPhase1 + + thumb_func_start Task_TitleScreenPhase2 +Task_TitleScreenPhase2: @ 0x080AA528 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080AA578 + ldrh r1, [r0, #0x2e] + movs r0, #0xf + ands r0, r1 + ldr r2, _080AA57C + cmp r0, #0 + bne _080AA54E + lsls r0, r4, #2 + adds r1, r0, r4 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r3, #0xa + ldrsh r1, [r1, r3] + adds r6, r0, #0 + cmp r1, #0 + beq _080AA560 +_080AA54E: + lsls r3, r4, #2 + adds r0, r3, r4 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r2, #0 + movs r1, #1 + strh r1, [r0, #0xa] + strh r2, [r0, #8] + adds r6, r3, #0 +_080AA560: + ldr r1, _080AA57C + adds r0, r6, r4 + lsls r0, r0, #3 + adds r5, r0, r1 + ldrh r0, [r5, #8] + movs r1, #8 + ldrsh r7, [r5, r1] + cmp r7, #0 + beq _080AA580 + subs r0, #1 + strh r0, [r5, #8] + b _080AA5BA + .align 2, 0 +_080AA578: .4byte 0x03002360 +_080AA57C: .4byte 0x03005B60 +_080AA580: + movs r0, #1 + strh r0, [r5, #0xa] + ldr r1, _080AA63C + movs r0, #0x50 + bl SetGpuReg + ldr r1, _080AA640 + movs r0, #0x52 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + ldr r1, _080AA644 + movs r0, #0 + bl SetGpuReg + movs r0, #0x80 + movs r1, #0x6c + bl CreatePressStartBanner + movs r0, #0x80 + movs r1, #0x94 + bl CreateCopyrightBanner + strh r7, [r5, #0x10] + ldr r0, _080AA648 + str r0, [r5] +_080AA5BA: + ldr r2, _080AA64C + adds r0, r6, r4 + lsls r0, r0, #3 + adds r3, r0, r2 + ldrh r1, [r3, #8] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _080AA5DA + ldrh r1, [r3, #0xc] + movs r5, #0xc + ldrsh r0, [r3, r5] + cmp r0, #0 + beq _080AA5DA + adds r0, r1, #1 + strh r0, [r3, #0xc] +_080AA5DA: + adds r0, r6, r4 + lsls r0, r0, #3 + adds r3, r0, r2 + ldrh r1, [r3, #8] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080AA5F8 + ldrh r1, [r3, #0xe] + movs r5, #0xe + ldrsh r0, [r3, r5] + cmp r0, #0 + beq _080AA5F8 + adds r0, r1, #1 + strh r0, [r3, #0xe] +_080AA5F8: + adds r4, r6, r4 + lsls r4, r4, #3 + adds r4, r4, r2 + movs r0, #0xc + ldrsh r1, [r4, r0] + lsls r5, r1, #8 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x10 + movs r0, #0x28 + bl SetGpuReg + lsrs r1, r5, #0x10 + movs r0, #0x2a + bl SetGpuReg + movs r3, #0xe + ldrsh r1, [r4, r3] + lsls r5, r1, #8 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x10 + movs r0, #0x2c + bl SetGpuReg + lsrs r1, r5, #0x10 + movs r0, #0x2e + bl SetGpuReg + movs r0, #0xf + strh r0, [r4, #0x12] + movs r0, #6 + strh r0, [r4, #0x14] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080AA63C: .4byte 0x00002142 +_080AA640: .4byte 0x00000F06 +_080AA644: .4byte 0x00001741 +_080AA648: .4byte 0x080AA651 +_080AA64C: .4byte 0x03005B60 + thumb_func_end Task_TitleScreenPhase2 + + thumb_func_start Task_TitleScreenPhase3 +Task_TitleScreenPhase3: @ 0x080AA650 + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r2, _080AA690 + ldrh r1, [r2, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080AA670 + movs r0, #8 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0 + beq _080AA69C +_080AA670: + movs r0, #4 + bl FadeOutBGMTemporarily + movs r0, #1 + rsbs r0, r0, #0 + ldr r1, _080AA694 + str r1, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _080AA698 + bl SetMainCallback2 + b _080AA794 + .align 2, 0 +_080AA690: .4byte 0x03002360 +_080AA694: .4byte 0x0000FFFF +_080AA698: .4byte 0x080AA7B5 +_080AA69C: + ldrh r1, [r2, #0x2c] + movs r0, #0x46 + ands r0, r1 + cmp r0, #0x46 + bne _080AA6B4 + ldr r0, _080AA6B0 + bl SetMainCallback2 + b _080AA794 + .align 2, 0 +_080AA6B0: .4byte 0x080AA7ED +_080AA6B4: + movs r0, #0x26 + ands r0, r1 + cmp r0, #0x26 + bne _080AA6E8 + bl CanResetRTC + cmp r0, #1 + bne _080AA6E8 + movs r0, #4 + bl FadeOutBGMTemporarily + movs r0, #1 + rsbs r0, r0, #0 + str r4, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _080AA6E4 + bl SetMainCallback2 + b _080AA794 + .align 2, 0 +_080AA6E4: .4byte 0x080AA809 +_080AA6E8: + ldr r0, _080AA714 + ldrh r1, [r0, #0x2c] + movs r0, #6 + ands r0, r1 + cmp r0, #6 + bne _080AA71C + movs r0, #4 + bl FadeOutBGMTemporarily + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _080AA718 + bl SetMainCallback2 + b _080AA794 + .align 2, 0 +_080AA714: .4byte 0x03002360 +_080AA718: .4byte 0x080AA825 +_080AA71C: + movs r0, #0x28 + movs r1, #0 + bl SetGpuReg + movs r0, #0x2a + movs r1, #0 + bl SetGpuReg + movs r0, #0x2c + movs r1, #0 + bl SetGpuReg + movs r0, #0x2e + movs r1, #0 + bl SetGpuReg + ldr r1, _080AA79C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r3, r0, r1 + ldrh r0, [r3, #8] + adds r0, #1 + strh r0, [r3, #8] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _080AA76E + ldrh r0, [r3, #0x10] + adds r0, #1 + strh r0, [r3, #0x10] + ldr r2, _080AA7A0 + movs r1, #0x10 + ldrsh r0, [r3, r1] + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + strh r0, [r2] + ldr r1, _080AA7A4 + movs r0, #0 + strh r0, [r1] +_080AA76E: + ldrb r0, [r3, #8] + bl UpdateLegendaryMarkingColor + ldr r0, _080AA7A8 + ldr r1, _080AA7AC + ldrh r0, [r0, #4] + cmp r0, #0 + bne _080AA794 + movs r0, #1 + rsbs r0, r0, #0 + str r1, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _080AA7B0 + bl SetMainCallback2 +_080AA794: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080AA79C: .4byte 0x03005B60 +_080AA7A0: .4byte 0x02022ACE +_080AA7A4: .4byte 0x02022ACC +_080AA7A8: .4byte 0x030074D0 +_080AA7AC: .4byte 0x0000FFFF +_080AA7B0: .4byte 0x080AA7D1 + thumb_func_end Task_TitleScreenPhase3 + + thumb_func_start CB2_GoToMainMenu +CB2_GoToMainMenu: @ 0x080AA7B4 + push {lr} + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AA7C6 + ldr r0, _080AA7CC + bl SetMainCallback2 +_080AA7C6: + pop {r0} + bx r0 + .align 2, 0 +_080AA7CC: .4byte 0x0802F341 + thumb_func_end CB2_GoToMainMenu + + thumb_func_start CB2_GoToResetRtcScreen +CB2_GoToResetRtcScreen: @ 0x080AA7D0 + push {lr} + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AA7E2 + ldr r0, _080AA7E8 + bl SetMainCallback2 +_080AA7E2: + pop {r0} + bx r0 + .align 2, 0 +_080AA7E8: .4byte 0x0816CCF1 + thumb_func_end CB2_GoToResetRtcScreen + + thumb_func_start sub_080AA7EC +sub_080AA7EC: @ 0x080AA7EC + push {lr} + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AA7FE + ldr r0, _080AA804 + bl SetMainCallback2 +_080AA7FE: + pop {r0} + bx r0 + .align 2, 0 +_080AA804: .4byte 0x0817AB81 + thumb_func_end sub_080AA7EC + + thumb_func_start sub_080AA808 +sub_080AA808: @ 0x080AA808 + push {lr} + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AA81A + ldr r0, _080AA820 + bl SetMainCallback2 +_080AA81A: + pop {r0} + bx r0 + .align 2, 0 +_080AA820: .4byte 0x0809E861 + thumb_func_end sub_080AA808 + + thumb_func_start CB2_GoToBerryFixScreen +CB2_GoToBerryFixScreen: @ 0x080AA824 + push {lr} + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AA83A + bl m4aMPlayAllStop + ldr r0, _080AA840 + bl SetMainCallback2 +_080AA83A: + pop {r0} + bx r0 + .align 2, 0 +_080AA840: .4byte 0x081BF021 + thumb_func_end CB2_GoToBerryFixScreen + + thumb_func_start UpdateLegendaryMarkingColor +UpdateLegendaryMarkingColor: @ 0x080AA844 + push {lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _080AA898 + adds r0, r1, #0 + movs r1, #0x80 + bl Cos + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r2, r0, #0 + adds r2, #0x80 + lsls r0, r2, #5 + subs r0, r0, r2 + cmp r0, #0 + bge _080AA86E + adds r0, #0xff +_080AA86E: + asrs r0, r0, #8 + movs r3, #0x1f + subs r1, r3, r0 + movs r0, #0x16 + muls r0, r2, r0 + cmp r0, #0 + bge _080AA87E + adds r0, #0xff +_080AA87E: + asrs r0, r0, #8 + subs r0, r3, r0 + lsls r0, r0, #5 + orrs r1, r0 + movs r0, #0xc0 + lsls r0, r0, #6 + orrs r1, r0 + mov r0, sp + strh r1, [r0] + movs r1, #0xef + movs r2, #2 + bl LoadPalette +_080AA898: + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end UpdateLegendaryMarkingColor + diff --git a/asm/trade.s b/asm/trade.s new file mode 100644 index 0000000..97320c3 --- /dev/null +++ b/asm/trade.s @@ -0,0 +1,15875 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_08076B78 +sub_08076B78: @ 0x08076B78 + push {r4, lr} + adds r4, r0, #0 + adds r3, r1, #0 + ldr r0, _08076B98 + ldrb r0, [r0] + cmp r0, #0x1d + beq _08076B9C + lsls r2, r3, #0x10 + lsrs r2, r2, #0x10 + movs r0, #0 + adds r1, r4, #0 + bl SendBlock + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _08076BAA + .align 2, 0 +_08076B98: .4byte 0x020228E0 +_08076B9C: + ldr r0, _08076BB0 + ldrb r0, [r0] + movs r1, #0x54 + adds r2, r4, #0 + bl rfu_NI_setSendData + movs r0, #1 +_08076BAA: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08076BB0: .4byte 0x030041E0 + thumb_func_end sub_08076B78 + + thumb_func_start sub_08076BB4 +sub_08076BB4: @ 0x08076BB4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_0800A09C + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08076BB4 + + thumb_func_start sub_08076BC4 +sub_08076BC4: @ 0x08076BC4 + push {r4, lr} + ldr r0, _08076BE8 + ldrb r0, [r0] + cmp r0, #0x1d + bne _08076BF8 + ldr r4, _08076BEC + ldr r0, _08076BF0 + ldrb r0, [r0] + bl sub_0800E340 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r0, [r0] + ldrh r0, [r0] + cmp r0, #0 + bne _08076BF4 + movs r0, #1 + b _08076C00 + .align 2, 0 +_08076BE8: .4byte 0x020228E0 +_08076BEC: .4byte 0x03007620 +_08076BF0: .4byte 0x030041E0 +_08076BF4: + movs r0, #0 + b _08076C00 +_08076BF8: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_08076C00: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08076BC4 + + thumb_func_start _GetBlockReceivedStatus +_GetBlockReceivedStatus: @ 0x08076C08 + push {lr} + bl GetBlockReceivedStatus + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end _GetBlockReceivedStatus + + thumb_func_start sub_08076C18 +sub_08076C18: @ 0x08076C18 + push {lr} + bl sub_08076C68 + cmp r0, #0 + beq _08076C34 + ldr r0, _08076C30 + ldrb r1, [r0] + movs r0, #0xc + bl rfu_clearSlot + b _08076C38 + .align 2, 0 +_08076C30: .4byte 0x030041E0 +_08076C34: + bl ResetBlockReceivedFlags +_08076C38: + pop {r0} + bx r0 + thumb_func_end sub_08076C18 + + thumb_func_start sub_08076C3C +sub_08076C3C: @ 0x08076C3C + push {r4, lr} + adds r4, r0, #0 + bl sub_08076C68 + cmp r0, #0 + beq _08076C58 + ldr r0, _08076C54 + ldrb r1, [r0] + movs r0, #0xc + bl rfu_clearSlot + b _08076C60 + .align 2, 0 +_08076C54: .4byte 0x030041E0 +_08076C58: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl ResetBlockReceivedFlag +_08076C60: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08076C3C + + thumb_func_start sub_08076C68 +sub_08076C68: @ 0x08076C68 + push {lr} + ldr r0, _08076C80 + ldrb r0, [r0] + cmp r0, #0 + beq _08076C88 + ldr r0, _08076C84 + ldrb r0, [r0] + cmp r0, #0x1d + bne _08076C88 + movs r0, #1 + b _08076C8A + .align 2, 0 +_08076C80: .4byte 0x0300319C +_08076C84: .4byte 0x020228E0 +_08076C88: + movs r0, #0 +_08076C8A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08076C68 + + thumb_func_start sub_08076C90 +sub_08076C90: @ 0x08076C90 + push {lr} + bl sub_0800A8D4 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08076C90 + + thumb_func_start _IsLinkTaskFinished +_IsLinkTaskFinished: @ 0x08076C9C + push {lr} + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end _IsLinkTaskFinished + + thumb_func_start sub_08076CAC +sub_08076CAC: @ 0x08076CAC + push {r4, r5, lr} + sub sp, #0xc + bl ResetSpriteData + bl FreeAllSpritePalettes + bl ResetTasks + bl ResetPaletteFade + ldr r2, _08076D9C + ldrb r0, [r2, #8] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #8] + ldr r0, _08076DA0 + bl SetVBlankCallback + ldr r4, _08076DA4 + adds r0, r4, #0 + movs r1, #0xf0 + movs r2, #0x14 + bl LoadPalette + adds r0, r4, #0 + movs r1, #0xd0 + movs r2, #0x14 + bl LoadPalette + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _08076DA8 + movs r0, #0 + movs r2, #4 + bl InitBgsFromTemplates + ldr r0, _08076DAC + ldr r1, [r0] + movs r0, #0x8f + lsls r0, r0, #4 + adds r1, r1, r0 + movs r0, #1 + bl SetBgTilemapBuffer + ldr r0, _08076DB0 + bl InitWindows + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08076D94 + bl DeactivateAllTextPrinters + movs r5, #0 +_08076D18: + lsls r4, r5, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl ClearWindowTilemap + adds r0, r4, #0 + movs r1, #0 + bl FillWindowPixelBuffer + adds r5, #1 + cmp r5, #0x11 + bls _08076D18 + movs r0, #0x1e + str r0, [sp] + movs r0, #0x14 + str r0, [sp, #4] + movs r0, #0xf + str r0, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect + movs r0, #0 + movs r1, #0x14 + movs r2, #0xc0 + bl LoadUserWindowBorderGfx_ + movs r0, #2 + movs r1, #1 + movs r2, #0xe0 + bl LoadUserWindowBorderGfx + bl LoadMonIconPalettes + ldr r2, _08076DAC + ldr r0, [r2] + adds r0, #0x69 + movs r1, #0 + strb r1, [r0] + ldr r0, [r2] + adds r0, #0x6f + strb r1, [r0] + ldr r0, [r2] + adds r0, #0x70 + strb r1, [r0] + ldr r0, [r2] + adds r0, #0x74 + strb r1, [r0] + ldr r0, [r2] + adds r0, #0x75 + strb r1, [r0] + ldr r0, [r2] + adds r0, #0x7a + strb r1, [r0] + ldr r0, [r2] + adds r0, #0x7b + strb r1, [r0] + ldr r0, [r2] + adds r0, #0xa8 + strb r1, [r0] +_08076D94: + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08076D9C: .4byte 0x02037C74 +_08076DA0: .4byte 0x08077AE5 +_08076DA4: .4byte 0x085D7B04 +_08076DA8: .4byte 0x08300C04 +_08076DAC: .4byte 0x02031F3C +_08076DB0: .4byte 0x08300C14 + thumb_func_end sub_08076CAC + + thumb_func_start sub_08076DB4 +sub_08076DB4: @ 0x08076DB4 + push {lr} + ldr r0, _08076DCC + bl SetMainCallback2 + ldr r0, _08076DD0 + movs r1, #0 + str r1, [r0] + ldr r0, _08076DD4 + strb r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_08076DCC: .4byte 0x08076DD9 +_08076DD0: .4byte 0x03002360 +_08076DD4: .4byte 0x0202418E + thumb_func_end sub_08076DB4 + + thumb_func_start sub_08076DD8 +sub_08076DD8: @ 0x08076DD8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x28 + ldr r1, _08076DFC + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r1, r2 + ldrb r0, [r0] + adds r3, r1, #0 + cmp r0, #0x16 + bls _08076DF2 + b _0807752A +_08076DF2: + lsls r0, r0, #2 + ldr r1, _08076E00 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08076DFC: .4byte 0x03002360 +_08076E00: .4byte 0x08076E04 +_08076E04: @ jump table + .4byte _08076E60 @ case 0 + .4byte _08076EAC @ case 1 + .4byte _08076F68 @ case 2 + .4byte _08076F94 @ case 3 + .4byte _08076FF0 @ case 4 + .4byte _08077050 @ case 5 + .4byte _08077090 @ case 6 + .4byte _080770B0 @ case 7 + .4byte _080771F0 @ case 8 + .4byte _08077218 @ case 9 + .4byte _0807723C @ case 10 + .4byte _080772C4 @ case 11 + .4byte _080772D2 @ case 12 + .4byte _08077378 @ case 13 + .4byte _08077424 @ case 14 + .4byte _08077464 @ case 15 + .4byte _0807747E @ case 16 + .4byte _0807748C @ case 17 + .4byte _080774A0 @ case 18 + .4byte _080774C0 @ case 19 + .4byte _080774E0 @ case 20 + .4byte _080774F4 @ case 21 + .4byte _08077514 @ case 22 +_08076E60: + ldr r4, _08076E98 + ldr r0, _08076E9C + bl AllocZeroed + str r0, [r4] + bl sub_08076CAC + ldr r4, _08076EA0 + movs r0, #0xd0 + lsls r0, r0, #4 + bl AllocZeroed + str r0, [r4] + movs r6, #0 + ldr r2, _08076EA4 +_08076E7E: + lsls r1, r6, #8 + ldr r0, [r4] + adds r0, r0, r1 + stm r2!, {r0} + adds r6, #1 + cmp r6, #0xc + ble _08076E7E + ldr r1, _08076EA8 + movs r3, #0x87 + lsls r3, r3, #3 + adds r1, r1, r3 + b _08077506 + .align 2, 0 +_08076E98: .4byte 0x02031F3C +_08076E9C: .4byte 0x000010F0 +_08076EA0: .4byte 0x02031E28 +_08076EA4: .4byte 0x02031E2C +_08076EA8: .4byte 0x03002360 +_08076EAC: + ldr r2, _08076F14 + ldrb r1, [r2, #8] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #8] + movs r6, #0 + movs r4, #0 +_08076EBA: + movs r0, #0x64 + muls r0, r6, r0 + ldr r1, _08076F18 + adds r0, r0, r1 + str r4, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + str r4, [sp, #0xc] + movs r1, #0 + movs r2, #0 + movs r3, #0x20 + bl CreateMon + adds r6, #1 + cmp r6, #5 + ble _08076EBA + movs r0, #0 + bl sub_08079BD4 + movs r0, #0 + bl ShowBg + ldr r0, _08076F1C + ldrb r2, [r0] + cmp r2, #0 + bne _08076F54 + ldr r1, _08076F20 + ldr r4, _08076F24 + adds r0, r4, #0 + strh r0, [r1] + ldr r0, _08076F28 + ldr r0, [r0] + adds r0, #0xa8 + strb r2, [r0] + ldr r0, _08076F2C + ldrb r0, [r0] + cmp r0, #0 + beq _08076F30 + bl sub_0800AF5C + bl OpenLink + bl sub_08011690 + b _0807752A + .align 2, 0 +_08076F14: .4byte 0x02037C74 +_08076F18: .4byte 0x020243E8 +_08076F1C: .4byte 0x030031C4 +_08076F20: .4byte 0x0202267E +_08076F24: .4byte 0x00001122 +_08076F28: .4byte 0x02031F3C +_08076F2C: .4byte 0x0300319C +_08076F30: + bl OpenLink + ldr r0, _08076F4C + movs r7, #0x87 + lsls r7, r7, #3 + adds r0, r0, r7 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + ldr r0, _08076F50 + movs r1, #1 + bl CreateTask + b _0807752A + .align 2, 0 +_08076F4C: .4byte 0x03002360 +_08076F50: .4byte 0x080B3189 +_08076F54: + ldr r0, _08076F64 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + movs r1, #4 + strb r1, [r0] + b _0807752A + .align 2, 0 +_08076F64: .4byte 0x03002360 +_08076F68: + ldr r2, _08076F90 + ldr r1, [r2] + adds r1, #0xa8 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r0, [r2] + adds r1, r0, #0 + adds r1, #0xa8 + ldrb r0, [r1] + cmp r0, #0xb + bhi _08076F82 + b _0807752A +_08076F82: + movs r0, #0 + strb r0, [r1] + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r3, r2 + b _08077506 + .align 2, 0 +_08076F90: .4byte 0x02031F3C +_08076F94: + bl GetLinkPlayerCount_2 + adds r4, r0, #0 + bl GetSavedPlayerCount + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + bhs _08076FA8 + b _0807752A +_08076FA8: + bl IsLinkMaster + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08076FE0 + ldr r0, _08076FD8 + ldr r1, [r0] + adds r1, #0xa8 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1e + bhi _08076FC8 + b _0807752A +_08076FC8: + bl CheckShouldAdvanceLinkState + ldr r1, _08076FDC + movs r3, #0x87 + lsls r3, r3, #3 + adds r1, r1, r3 + b _08077506 + .align 2, 0 +_08076FD8: .4byte 0x02031F3C +_08076FDC: .4byte 0x03002360 +_08076FE0: + ldr r1, _08076FEC + movs r4, #0x87 + lsls r4, r4, #3 + adds r1, r1, r4 + b _08077506 + .align 2, 0 +_08076FEC: .4byte 0x03002360 +_08076FF0: + ldr r0, _08077040 + ldrb r0, [r0] + cmp r0, #1 + beq _08076FFA + b _0807752A +_08076FFA: + bl IsLinkPlayerDataExchangeComplete + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08077008 + b _0807752A +_08077008: + bl sub_080116BC + bl CalculatePlayerPartyCount + ldr r1, _08077044 + movs r7, #0x87 + lsls r7, r7, #3 + adds r1, r1, r7 + ldrb r0, [r1] + adds r0, #1 + movs r2, #0 + strb r0, [r1] + ldr r0, _08077048 + ldr r0, [r0] + adds r0, #0xa8 + strb r2, [r0] + ldr r0, _0807704C + ldrb r0, [r0] + cmp r0, #0 + bne _08077032 + b _0807752A +_08077032: + movs r0, #1 + bl sub_0800FF8C + bl sub_0800A8D4 + b _0807752A + .align 2, 0 +_08077040: .4byte 0x030031C4 +_08077044: .4byte 0x03002360 +_08077048: .4byte 0x02031F3C +_0807704C: .4byte 0x0300319C +_08077050: + ldr r0, _08077080 + ldrb r0, [r0] + cmp r0, #0 + beq _08077088 + bl sub_08010000 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08077064 + b _0807752A +_08077064: + ldr r1, _08077084 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + bl LoadWirelessStatusIndicatorSpriteGfx + movs r0, #0 + movs r1, #0 + bl CreateWirelessStatusIndicatorSprite + b _0807752A + .align 2, 0 +_08077080: .4byte 0x0300319C +_08077084: .4byte 0x03002360 +_08077088: + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r3, r2 + b _08077506 +_08077090: + bl shedinja_maker_maybe + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807709C + b _0807752A +_0807709C: + bl sub_0807A028 + ldr r1, _080770AC + movs r3, #0x87 + lsls r3, r3, #3 + adds r1, r1, r3 + b _08077506 + .align 2, 0 +_080770AC: .4byte 0x03002360 +_080770B0: + bl CalculateEnemyPartyCount + movs r0, #0 + movs r1, #0 + bl SetGpuReg + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + ldr r2, _080771CC + ldr r0, [r2] + ldr r1, _080771D0 + ldrb r1, [r1] + adds r0, #0x36 + strb r1, [r0] + ldr r0, [r2] + ldr r1, _080771D4 + ldrb r1, [r1] + adds r0, #0x37 + strb r1, [r0] + movs r6, #0 + ldr r0, [r2] + adds r0, #0x36 + ldrb r0, [r0] + cmp r6, r0 + bge _08077148 + mov r8, r2 + ldr r7, _080771D8 +_080770EA: + movs r0, #0x64 + adds r4, r6, #0 + muls r4, r0, r4 + ldr r0, _080771DC + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + adds r0, r4, #0 + movs r1, #0 + bl GetMonData + ldrb r2, [r7] + lsls r2, r2, #0x13 + movs r4, #0xe0 + lsls r4, r4, #0xc + adds r2, r2, r4 + asrs r2, r2, #0x10 + ldrb r3, [r7, #1] + lsls r3, r3, #0x13 + ldr r1, _080771E0 + adds r3, r3, r1 + asrs r3, r3, #0x10 + movs r1, #1 + str r1, [sp] + str r0, [sp, #4] + str r1, [sp, #8] + adds r0, r5, #0 + ldr r1, _080771E4 + bl CreateMonIcon + mov r2, r8 + ldr r1, [r2] + adds r1, #0x28 + adds r1, r1, r6 + strb r0, [r1] + adds r7, #2 + adds r6, #1 + ldr r0, [r2] + adds r0, #0x36 + ldrb r0, [r0] + cmp r6, r0 + blt _080770EA +_08077148: + movs r6, #0 + ldr r1, _080771CC + ldr r0, [r1] + adds r0, #0x37 + ldrb r0, [r0] + cmp r6, r0 + bge _080771C0 + ldr r0, _080771D8 + mov r8, r1 + adds r7, r0, #0 + adds r7, #0xc +_0807715E: + movs r0, #0x64 + adds r4, r6, #0 + muls r4, r0, r4 + ldr r0, _080771E8 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x41 + movs r2, #0 + bl GetMonData + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + adds r0, r4, #0 + movs r1, #0 + bl GetMonData + ldrb r2, [r7] + lsls r2, r2, #0x13 + movs r3, #0xe0 + lsls r3, r3, #0xc + adds r2, r2, r3 + asrs r2, r2, #0x10 + ldrb r3, [r7, #1] + lsls r3, r3, #0x13 + ldr r4, _080771E0 + adds r3, r3, r4 + asrs r3, r3, #0x10 + movs r1, #1 + str r1, [sp] + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + adds r0, r5, #0 + ldr r1, _080771E4 + bl CreateMonIcon + mov r2, r8 + ldr r1, [r2] + adds r1, #0x2e + adds r1, r1, r6 + strb r0, [r1] + adds r7, #2 + adds r6, #1 + ldr r0, [r2] + adds r0, #0x37 + ldrb r0, [r0] + cmp r6, r0 + blt _0807715E +_080771C0: + ldr r1, _080771EC + movs r3, #0x87 + lsls r3, r3, #3 + adds r1, r1, r3 + b _08077506 + .align 2, 0 +_080771CC: .4byte 0x02031F3C +_080771D0: .4byte 0x0202418D +_080771D4: .4byte 0x0202418E +_080771D8: .4byte 0x08300A1C +_080771DC: .4byte 0x02024190 +_080771E0: .4byte 0xFFF40000 +_080771E4: .4byte 0x080D28B5 +_080771E8: .4byte 0x020243E8 +_080771EC: .4byte 0x03002360 +_080771F0: + bl LoadHeldItemIcons + ldr r0, _08077210 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0x36 + adds r1, #0x28 + movs r2, #0 + bl sub_081B59EC + ldr r1, _08077214 + movs r4, #0x87 + lsls r4, r4, #3 + adds r1, r1, r4 + b _08077506 + .align 2, 0 +_08077210: .4byte 0x02031F3C +_08077214: .4byte 0x03002360 +_08077218: + ldr r0, _08077234 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0x36 + adds r1, #0x28 + movs r2, #1 + bl sub_081B59EC + ldr r1, _08077238 + movs r7, #0x87 + lsls r7, r7, #3 + adds r1, r1, r7 + b _08077506 + .align 2, 0 +_08077234: .4byte 0x02031F3C +_08077238: .4byte 0x03002360 +_0807723C: + ldr r0, _080772A8 + ldr r0, [r0] + ldr r6, _080772AC + ldr r1, [r6] + ldr r5, _080772B0 + str r5, [sp] + movs r2, #0 + movs r3, #0 + bl sub_080C66A4 + bl GetMultiplayerId + lsls r0, r0, #0x18 + movs r1, #0x80 + lsls r1, r1, #0x11 + eors r1, r0 + lsrs r1, r1, #0x18 + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080772B4 + adds r0, r0, r1 + ldr r1, [r6, #0xc] + str r5, [sp] + movs r2, #0 + movs r3, #0 + bl sub_080C66A4 + ldr r4, _080772B8 + ldr r0, [r4] + ldr r1, [r6, #0x18] + str r5, [sp] + movs r2, #0 + movs r3, #0 + bl sub_080C66A4 + ldr r0, [r4, #4] + ldr r1, [r6, #0x1c] + movs r2, #0x18 + bl sub_08079D3C + ldr r1, _080772BC + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + movs r2, #0 + strb r0, [r1] + ldr r0, _080772C0 + ldr r0, [r0] + adds r0, #0xa8 + strb r2, [r0] + b _0807752A + .align 2, 0 +_080772A8: .4byte 0x03005AF0 +_080772AC: .4byte 0x02031E2C +_080772B0: .4byte 0x0201C000 +_080772B4: .4byte 0x020226A8 +_080772B8: .4byte 0x08300AFC +_080772BC: .4byte 0x03002360 +_080772C0: .4byte 0x02031F3C +_080772C4: + bl sub_08079C28 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080772D0 + b _0807752A +_080772D0: + b _080774FE +_080772D2: + ldr r0, _0807736C + ldr r0, [r0] + bl StringLength + lsls r0, r0, #0x10 + lsrs r0, r0, #0xe + movs r1, #0x4c + subs r1, r1, r0 + movs r6, #0 + add r5, sp, #0x10 + lsls r4, r1, #0x10 +_080772E8: + add r1, sp, #0x10 + ldr r0, _08077370 + ldm r0!, {r2, r3, r7} + stm r1!, {r2, r3, r7} + ldm r0!, {r2, r3, r7} + stm r1!, {r2, r3, r7} + ldrh r0, [r5] + adds r0, r0, r6 + strh r0, [r5] + asrs r1, r4, #0x10 + add r0, sp, #0x10 + movs r2, #8 + movs r3, #1 + bl CreateSprite + movs r3, #0x80 + lsls r3, r3, #0xe + adds r4, r4, r3 + adds r6, #1 + cmp r6, #2 + ble _080772E8 + bl GetMultiplayerId + adds r1, r0, #0 + movs r0, #1 + eors r1, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08077374 + adds r0, r0, r1 + bl StringLength + lsls r0, r0, #0x10 + lsrs r0, r0, #0xe + movs r1, #0xc4 + subs r1, r1, r0 + movs r6, #0 + add r5, sp, #0x10 + lsls r4, r1, #0x10 +_0807733C: + add r1, sp, #0x10 + ldr r0, _08077370 + ldm r0!, {r2, r3, r7} + stm r1!, {r2, r3, r7} + ldm r0!, {r2, r3, r7} + stm r1!, {r2, r3, r7} + adds r0, r6, #3 + ldrh r7, [r5] + adds r0, r0, r7 + strh r0, [r5] + asrs r1, r4, #0x10 + add r0, sp, #0x10 + movs r2, #8 + movs r3, #1 + bl CreateSprite + movs r0, #0x80 + lsls r0, r0, #0xe + adds r4, r4, r0 + adds r6, #1 + cmp r6, #2 + ble _0807733C + b _080774FE + .align 2, 0 +_0807736C: .4byte 0x03005AF0 +_08077370: .4byte 0x083008A4 +_08077374: .4byte 0x020226A8 +_08077378: + add r1, sp, #0x10 + ldr r0, _08077410 + ldm r0!, {r3, r4, r7} + stm r1!, {r3, r4, r7} + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + add r1, sp, #0x10 + adds r0, r1, #0 + ldrh r0, [r0] + adds r0, #6 + strh r0, [r1] + adds r0, r1, #0 + movs r1, #0xe0 + movs r2, #0x98 + movs r3, #1 + bl CreateSprite + movs r6, #0 + add r4, sp, #0x10 + movs r5, #0xc0 + lsls r5, r5, #0xd +_080773A2: + add r1, sp, #0x10 + ldr r0, _08077410 + ldm r0!, {r2, r3, r7} + stm r1!, {r2, r3, r7} + ldm r0!, {r2, r3, r7} + stm r1!, {r2, r3, r7} + adds r0, r6, #7 + ldrh r7, [r4] + adds r0, r0, r7 + strh r0, [r4] + asrs r1, r5, #0x10 + add r0, sp, #0x10 + movs r2, #0x96 + movs r3, #1 + bl CreateSprite + movs r0, #0x80 + lsls r0, r0, #0xe + adds r5, r5, r0 + adds r6, #1 + cmp r6, #5 + ble _080773A2 + ldr r0, _08077414 + ldr r2, _08077418 + ldrb r1, [r2] + lsls r1, r1, #0x13 + movs r3, #0x80 + lsls r3, r3, #0xe + adds r1, r1, r3 + asrs r1, r1, #0x10 + ldrb r2, [r2, #1] + lsls r2, r2, #3 + movs r3, #2 + bl CreateSprite + ldr r2, _0807741C + ldr r1, [r2] + adds r1, #0x34 + movs r3, #0 + strb r0, [r1] + ldr r0, [r2] + adds r0, #0x35 + strb r3, [r0] + ldr r1, _08077420 + movs r4, #0x87 + lsls r4, r4, #3 + adds r1, r1, r4 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0 + bl rbox_fill_rectangle + b _0807752A + .align 2, 0 +_08077410: .4byte 0x083008A4 +_08077414: .4byte 0x0830088C +_08077418: .4byte 0x08300A1C +_0807741C: .4byte 0x02031F3C +_08077420: .4byte 0x03002360 +_08077424: + movs r0, #0 + bl sub_08079D98 + movs r0, #0 + bl sub_08079690 + ldr r2, _08077458 + ldr r0, [r2] + movs r1, #0 + strb r1, [r0] + ldr r0, [r2] + strb r1, [r0, #1] + bl sub_08077D50 + ldr r1, _0807745C + movs r7, #0x87 + lsls r7, r7, #3 + adds r1, r1, r7 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r0, _08077460 + bl PlayBGM + b _0807752A + .align 2, 0 +_08077458: .4byte 0x02031F3C +_0807745C: .4byte 0x03002360 +_08077460: .4byte 0x000001B3 +_08077464: + movs r0, #1 + bl sub_08079D98 + movs r0, #1 + bl sub_08079690 + ldr r1, _08077488 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0807747E: + movs r0, #0 + bl sub_08077C80 + b _080774FE + .align 2, 0 +_08077488: .4byte 0x03002360 +_0807748C: + movs r0, #1 + bl sub_08077C80 + ldr r1, _0807749C + movs r3, #0x87 + lsls r3, r3, #3 + adds r1, r1, r3 + b _08077506 + .align 2, 0 +_0807749C: .4byte 0x03002360 +_080774A0: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r1, _080774BC + movs r4, #0x87 + lsls r4, r4, #3 + adds r1, r1, r4 + b _08077506 + .align 2, 0 +_080774BC: .4byte 0x03002360 +_080774C0: + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #2 + bl sub_08077C80 + ldr r1, _080774DC + movs r7, #0x87 + lsls r7, r7, #3 + adds r1, r1, r7 + b _08077506 + .align 2, 0 +_080774DC: .4byte 0x03002360 +_080774E0: + movs r0, #0 + bl sub_08079EE0 + ldr r1, _080774F0 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _08077506 + .align 2, 0 +_080774F0: .4byte 0x03002360 +_080774F4: + movs r0, #1 + bl sub_08079EE0 + bl sub_08079FB4 +_080774FE: + ldr r1, _08077510 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 +_08077506: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0807752A + .align 2, 0 +_08077510: .4byte 0x03002360 +_08077514: + ldr r0, _0807754C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0807752A + ldr r0, _08077550 + str r0, [r3] + ldr r0, _08077554 + bl SetMainCallback2 +_0807752A: + bl RunTextPrinters + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + add sp, #0x28 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0807754C: .4byte 0x02037C74 +_08077550: .4byte 0x08078619 +_08077554: .4byte 0x08077C25 + thumb_func_end sub_08076DD8 + + thumb_func_start sub_08077558 +sub_08077558: @ 0x08077558 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x24 + ldr r1, _0807757C + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, r1, #0 + cmp r0, #0x16 + bls _08077572 + b _08077ABE +_08077572: + lsls r0, r0, #2 + ldr r1, _08077580 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807757C: .4byte 0x03002360 +_08077580: .4byte 0x08077584 +_08077584: @ jump table + .4byte _080775E0 @ case 0 + .4byte _080775F4 @ case 1 + .4byte _080775FC @ case 2 + .4byte _08077604 @ case 3 + .4byte _0807760C @ case 4 + .4byte _08077620 @ case 5 + .4byte _08077648 @ case 6 + .4byte _08077650 @ case 7 + .4byte _08077788 @ case 8 + .4byte _080777B0 @ case 9 + .4byte _080777D4 @ case 10 + .4byte _0807785C @ case 11 + .4byte _08077878 @ case 12 + .4byte _08077928 @ case 13 + .4byte _08077ABE @ case 14 + .4byte _08077ABE @ case 15 + .4byte _080779F4 @ case 16 + .4byte _08077A08 @ case 17 + .4byte _08077A30 @ case 18 + .4byte _08077A6C @ case 19 + .4byte _08077A8C @ case 20 + .4byte _08077A94 @ case 21 + .4byte _08077AAC @ case 22 +_080775E0: + bl sub_08076CAC + ldr r1, _080775F0 + movs r3, #0x87 + lsls r3, r3, #3 + adds r1, r1, r3 + b _08077AA0 + .align 2, 0 +_080775F0: .4byte 0x03002360 +_080775F4: + movs r4, #0x87 + lsls r4, r4, #3 + adds r1, r2, r4 + b _0807782E +_080775FC: + movs r5, #0x87 + lsls r5, r5, #3 + adds r1, r2, r5 + b _08077AA0 +_08077604: + movs r7, #0x87 + lsls r7, r7, #3 + adds r1, r2, r7 + b _08077AA0 +_0807760C: + bl CalculatePlayerPartyCount + ldr r1, _0807761C + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _08077AA0 + .align 2, 0 +_0807761C: .4byte 0x03002360 +_08077620: + ldr r0, _08077640 + ldrb r0, [r0] + cmp r0, #0 + beq _08077634 + bl LoadWirelessStatusIndicatorSpriteGfx + movs r0, #0 + movs r1, #0 + bl CreateWirelessStatusIndicatorSprite +_08077634: + ldr r1, _08077644 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _08077AA0 + .align 2, 0 +_08077640: .4byte 0x0300319C +_08077644: .4byte 0x03002360 +_08077648: + movs r3, #0x87 + lsls r3, r3, #3 + adds r1, r2, r3 + b _08077AA0 +_08077650: + bl CalculateEnemyPartyCount + ldr r4, _08077768 + ldr r0, [r4] + ldr r1, _0807776C + ldrb r1, [r1] + adds r0, #0x36 + strb r1, [r0] + ldr r0, [r4] + ldr r1, _08077770 + ldrb r1, [r1] + adds r0, #0x37 + strb r1, [r0] + movs r0, #0 + bl ClearWindowTilemap + movs r0, #0 + bl sub_08079690 + movs r0, #1 + bl sub_08079690 + movs r6, #0 + ldr r0, [r4] + adds r0, #0x36 + ldrb r0, [r0] + cmp r6, r0 + bge _080776EC + mov r8, r4 + ldr r7, _08077774 +_0807768C: + movs r0, #0x64 + adds r4, r6, #0 + muls r4, r0, r4 + ldr r0, _08077778 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x41 + movs r2, #0 + bl GetMonData + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + adds r0, r4, #0 + movs r1, #0 + bl GetMonData + ldrb r2, [r7] + lsls r2, r2, #0x13 + movs r4, #0xe0 + lsls r4, r4, #0xc + adds r2, r2, r4 + asrs r2, r2, #0x10 + ldrb r3, [r7, #1] + lsls r3, r3, #0x13 + ldr r1, _0807777C + adds r3, r3, r1 + asrs r3, r3, #0x10 + movs r1, #1 + str r1, [sp] + str r0, [sp, #4] + str r1, [sp, #8] + adds r0, r5, #0 + ldr r1, _08077780 + bl CreateMonIcon + mov r2, r8 + ldr r1, [r2] + adds r1, #0x28 + adds r1, r1, r6 + strb r0, [r1] + adds r7, #2 + adds r6, #1 + ldr r0, [r2] + adds r0, #0x36 + ldrb r0, [r0] + cmp r6, r0 + blt _0807768C +_080776EC: + movs r6, #0 + ldr r1, _08077768 + ldr r0, [r1] + adds r0, #0x37 + ldrb r0, [r0] + cmp r6, r0 + blt _080776FC + b _08077A98 +_080776FC: + ldr r0, _08077774 + mov r8, r1 + adds r7, r0, #0 + adds r7, #0xc +_08077704: + movs r0, #0x64 + adds r4, r6, #0 + muls r4, r0, r4 + ldr r0, _08077784 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x41 + movs r2, #0 + bl GetMonData + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + adds r0, r4, #0 + movs r1, #0 + bl GetMonData + ldrb r2, [r7] + lsls r2, r2, #0x13 + movs r3, #0xe0 + lsls r3, r3, #0xc + adds r2, r2, r3 + asrs r2, r2, #0x10 + ldrb r3, [r7, #1] + lsls r3, r3, #0x13 + ldr r4, _0807777C + adds r3, r3, r4 + asrs r3, r3, #0x10 + movs r1, #1 + str r1, [sp] + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + adds r0, r5, #0 + ldr r1, _08077780 + bl CreateMonIcon + mov r5, r8 + ldr r1, [r5] + adds r1, #0x2e + adds r1, r1, r6 + strb r0, [r1] + adds r7, #2 + adds r6, #1 + ldr r0, [r5] + adds r0, #0x37 + ldrb r0, [r0] + cmp r6, r0 + blt _08077704 + b _08077A98 + .align 2, 0 +_08077768: .4byte 0x02031F3C +_0807776C: .4byte 0x0202418D +_08077770: .4byte 0x0202418E +_08077774: .4byte 0x08300A1C +_08077778: .4byte 0x02024190 +_0807777C: .4byte 0xFFF40000 +_08077780: .4byte 0x080D28B5 +_08077784: .4byte 0x020243E8 +_08077788: + bl LoadHeldItemIcons + ldr r0, _080777A8 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0x36 + adds r1, #0x28 + movs r2, #0 + bl sub_081B59EC + ldr r1, _080777AC + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _08077AA0 + .align 2, 0 +_080777A8: .4byte 0x02031F3C +_080777AC: .4byte 0x03002360 +_080777B0: + ldr r0, _080777CC + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0x36 + adds r1, #0x28 + movs r2, #1 + bl sub_081B59EC + ldr r1, _080777D0 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _08077AA0 + .align 2, 0 +_080777CC: .4byte 0x02031F3C +_080777D0: .4byte 0x03002360 +_080777D4: + ldr r0, _08077840 + ldr r0, [r0] + ldr r6, _08077844 + ldr r1, [r6] + ldr r5, _08077848 + str r5, [sp] + movs r2, #0 + movs r3, #0 + bl sub_080C66A4 + bl GetMultiplayerId + lsls r0, r0, #0x18 + movs r1, #0x80 + lsls r1, r1, #0x11 + eors r1, r0 + lsrs r1, r1, #0x18 + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0807784C + adds r0, r0, r1 + ldr r1, [r6, #0xc] + str r5, [sp] + movs r2, #0 + movs r3, #0 + bl sub_080C66A4 + ldr r4, _08077850 + ldr r0, [r4] + ldr r1, [r6, #0x18] + str r5, [sp] + movs r2, #0 + movs r3, #0 + bl sub_080C66A4 + ldr r0, [r4, #4] + ldr r1, [r6, #0x1c] + movs r2, #0x18 + bl sub_08079D3C + ldr r1, _08077854 + movs r3, #0x87 + lsls r3, r3, #3 + adds r1, r1, r3 +_0807782E: + ldrb r0, [r1] + adds r0, #1 + movs r2, #0 + strb r0, [r1] + ldr r0, _08077858 + ldr r0, [r0] + adds r0, #0xa8 + strb r2, [r0] + b _08077ABE + .align 2, 0 +_08077840: .4byte 0x03005AF0 +_08077844: .4byte 0x02031E2C +_08077848: .4byte 0x0201C000 +_0807784C: .4byte 0x020226A8 +_08077850: .4byte 0x08300AFC +_08077854: .4byte 0x03002360 +_08077858: .4byte 0x02031F3C +_0807785C: + bl sub_08079C28 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08077868 + b _08077ABE +_08077868: + ldr r1, _08077874 + movs r4, #0x87 + lsls r4, r4, #3 + adds r1, r1, r4 + b _08077AA0 + .align 2, 0 +_08077874: .4byte 0x03002360 +_08077878: + ldr r0, _08077918 + ldr r0, [r0] + bl StringLength + lsls r0, r0, #0x10 + lsrs r0, r0, #0xe + movs r1, #0x4c + subs r1, r1, r0 + movs r6, #0 + add r5, sp, #0xc + lsls r4, r1, #0x10 +_0807788E: + add r1, sp, #0xc + ldr r0, _0807791C + ldm r0!, {r2, r3, r7} + stm r1!, {r2, r3, r7} + ldm r0!, {r2, r3, r7} + stm r1!, {r2, r3, r7} + ldrh r0, [r5] + adds r0, r0, r6 + strh r0, [r5] + asrs r1, r4, #0x10 + add r0, sp, #0xc + movs r2, #8 + movs r3, #1 + bl CreateSprite + movs r7, #0x80 + lsls r7, r7, #0xe + adds r4, r4, r7 + adds r6, #1 + cmp r6, #2 + ble _0807788E + bl GetMultiplayerId + adds r1, r0, #0 + movs r0, #1 + eors r1, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08077920 + adds r0, r0, r1 + bl StringLength + lsls r0, r0, #0x10 + lsrs r0, r0, #0xe + movs r1, #0xc4 + subs r1, r1, r0 + movs r6, #0 + add r5, sp, #0xc + lsls r4, r1, #0x10 +_080778E2: + add r1, sp, #0xc + ldr r0, _0807791C + ldm r0!, {r2, r3, r7} + stm r1!, {r2, r3, r7} + ldm r0!, {r2, r3, r7} + stm r1!, {r2, r3, r7} + adds r0, r6, #3 + ldrh r1, [r5] + adds r0, r0, r1 + strh r0, [r5] + asrs r1, r4, #0x10 + add r0, sp, #0xc + movs r2, #8 + movs r3, #1 + bl CreateSprite + movs r2, #0x80 + lsls r2, r2, #0xe + adds r4, r4, r2 + adds r6, #1 + cmp r6, #2 + ble _080778E2 + ldr r1, _08077924 + movs r3, #0x87 + lsls r3, r3, #3 + adds r1, r1, r3 + b _08077AA0 + .align 2, 0 +_08077918: .4byte 0x03005AF0 +_0807791C: .4byte 0x083008A4 +_08077920: .4byte 0x020226A8 +_08077924: .4byte 0x03002360 +_08077928: + add r1, sp, #0xc + ldr r0, _08077994 + ldm r0!, {r4, r5, r7} + stm r1!, {r4, r5, r7} + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + add r1, sp, #0xc + adds r0, r1, #0 + ldrh r0, [r0] + adds r0, #6 + strh r0, [r1] + adds r0, r1, #0 + movs r1, #0xe0 + movs r2, #0x98 + movs r3, #1 + bl CreateSprite + movs r6, #0 + add r4, sp, #0xc + movs r5, #0xc0 + lsls r5, r5, #0xd +_08077952: + add r1, sp, #0xc + ldr r0, _08077994 + ldm r0!, {r2, r3, r7} + stm r1!, {r2, r3, r7} + ldm r0!, {r2, r3, r7} + stm r1!, {r2, r3, r7} + adds r0, r6, #7 + ldrh r7, [r4] + adds r0, r0, r7 + strh r0, [r4] + asrs r1, r5, #0x10 + add r0, sp, #0xc + movs r2, #0x96 + movs r3, #1 + bl CreateSprite + movs r0, #0x80 + lsls r0, r0, #0xe + adds r5, r5, r0 + adds r6, #1 + cmp r6, #5 + ble _08077952 + ldr r0, _08077998 + ldr r1, [r0] + adds r2, r1, #0 + adds r2, #0x35 + ldrb r1, [r2] + adds r4, r0, #0 + cmp r1, #5 + bhi _080779A0 + ldr r0, _0807799C + ldrb r0, [r0] + b _080779A6 + .align 2, 0 +_08077994: .4byte 0x083008A4 +_08077998: .4byte 0x02031F3C +_0807799C: .4byte 0x0203CBEC +_080779A0: + ldr r0, _080779E4 + ldrb r0, [r0] + adds r0, #6 +_080779A6: + strb r0, [r2] + ldr r0, _080779E8 + ldr r3, _080779EC + ldr r1, [r4] + adds r1, #0x35 + ldrb r2, [r1] + lsls r2, r2, #1 + adds r1, r2, r3 + ldrb r1, [r1] + lsls r1, r1, #0x13 + movs r5, #0x80 + lsls r5, r5, #0xe + adds r1, r1, r5 + asrs r1, r1, #0x10 + adds r3, #1 + adds r2, r2, r3 + ldrb r2, [r2] + lsls r2, r2, #3 + movs r3, #2 + bl CreateSprite + ldr r1, [r4] + adds r1, #0x34 + strb r0, [r1] + ldr r0, _080779F0 + movs r7, #0x87 + lsls r7, r7, #3 + adds r0, r0, r7 + movs r1, #0x10 + strb r1, [r0] + b _08077ABE + .align 2, 0 +_080779E4: .4byte 0x0203CBEC +_080779E8: .4byte 0x0830088C +_080779EC: .4byte 0x08300A1C +_080779F0: .4byte 0x03002360 +_080779F4: + movs r0, #0 + bl sub_08077C80 + ldr r1, _08077A04 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _08077AA0 + .align 2, 0 +_08077A04: .4byte 0x03002360 +_08077A08: + movs r0, #1 + bl sub_08077C80 + ldr r2, _08077A28 + ldr r0, [r2] + movs r1, #0 + strb r1, [r0] + ldr r0, [r2] + strb r1, [r0, #1] + bl sub_08077D50 + ldr r1, _08077A2C + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _08077AA0 + .align 2, 0 +_08077A28: .4byte 0x02031F3C +_08077A2C: .4byte 0x03002360 +_08077A30: + ldr r2, _08077A64 + ldrb r1, [r2, #8] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #8] + movs r4, #1 + rsbs r4, r4, #0 + adds r0, r4, #0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + movs r0, #0 + str r0, [sp] + adds r0, r4, #0 + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r1, _08077A68 + movs r3, #0x87 + lsls r3, r3, #3 + adds r1, r1, r3 + b _08077AA0 + .align 2, 0 +_08077A64: .4byte 0x02037C74 +_08077A68: .4byte 0x03002360 +_08077A6C: + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #2 + bl sub_08077C80 + ldr r1, _08077A88 + movs r4, #0x87 + lsls r4, r4, #3 + adds r1, r1, r4 + b _08077AA0 + .align 2, 0 +_08077A88: .4byte 0x03002360 +_08077A8C: + movs r5, #0x87 + lsls r5, r5, #3 + adds r1, r2, r5 + b _08077AA0 +_08077A94: + bl sub_08079FB4 +_08077A98: + ldr r1, _08077AA8 + movs r7, #0x87 + lsls r7, r7, #3 + adds r1, r1, r7 +_08077AA0: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _08077ABE + .align 2, 0 +_08077AA8: .4byte 0x03002360 +_08077AAC: + ldr r0, _08077ADC + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08077ABE + ldr r0, _08077AE0 + bl SetMainCallback2 +_08077ABE: + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + add sp, #0x24 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08077ADC: .4byte 0x02037C74 +_08077AE0: .4byte 0x08077C25 + thumb_func_end sub_08077558 + + thumb_func_start sub_08077AE4 +sub_08077AE4: @ 0x08077AE4 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08077AE4 + + thumb_func_start sub_08077AF8 +sub_08077AF8: @ 0x08077AF8 + push {r4, lr} + sub sp, #4 + ldr r4, _08077B30 + ldr r1, [r4] + adds r1, #0xa8 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xf + bls _08077B28 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, [r4] + adds r0, #0x6f + movs r1, #0xa + strb r1, [r0] +_08077B28: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08077B30: .4byte 0x02031F3C + thumb_func_end sub_08077AF8 + + thumb_func_start sub_08077B34 +sub_08077B34: @ 0x08077B34 + push {r4, lr} + ldr r0, _08077B6C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08077B8A + ldr r1, _08077B70 + ldr r4, _08077B74 + ldr r2, [r4] + adds r0, r2, #0 + adds r0, #0x35 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r2, #0 + adds r0, #0x7e + ldrb r0, [r0] + strb r0, [r1, #1] + ldr r0, _08077B78 + ldrb r0, [r0] + cmp r0, #0 + beq _08077B7C + adds r1, r2, #0 + adds r1, #0x6f + movs r0, #0x10 + strb r0, [r1] + b _08077B8A + .align 2, 0 +_08077B6C: .4byte 0x02037C74 +_08077B70: .4byte 0x02031F38 +_08077B74: .4byte 0x02031F3C +_08077B78: .4byte 0x0300319C +_08077B7C: + movs r0, #0x20 + bl sub_0800A7B8 + ldr r0, [r4] + adds r0, #0x6f + movs r1, #0xd + strb r1, [r0] +_08077B8A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08077B34 + + thumb_func_start sub_08077B90 +sub_08077B90: @ 0x08077B90 + push {r4, r5, lr} + ldr r5, _08077BD0 + ldr r0, _08077BD4 + str r0, [r5, #8] + ldr r0, _08077BD8 + ldrb r0, [r0] + cmp r0, #0 + beq _08077BE8 + bl sub_08010000 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08077C0C + ldr r0, _08077BDC + ldr r0, [r0] + bl Free + bl FreeAllWindowBuffers + ldr r0, _08077BE0 + ldr r0, [r0] + bl Free + movs r0, #0 + str r0, [r5] + bl DestroyWirelessStatusIndicatorSprite + ldr r0, _08077BE4 + bl SetMainCallback2 + b _08077C0C + .align 2, 0 +_08077BD0: .4byte 0x03002360 +_08077BD4: .4byte 0x08076DB5 +_08077BD8: .4byte 0x0300319C +_08077BDC: .4byte 0x02031E28 +_08077BE0: .4byte 0x02031F3C +_08077BE4: .4byte 0x0807A8AD +_08077BE8: + ldr r0, _08077C14 + ldrb r4, [r0] + cmp r4, #0 + bne _08077C0C + ldr r0, _08077C18 + ldr r0, [r0] + bl Free + bl FreeAllWindowBuffers + ldr r0, _08077C1C + ldr r0, [r0] + bl Free + str r4, [r5] + ldr r0, _08077C20 + bl SetMainCallback2 +_08077C0C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08077C14: .4byte 0x030031C4 +_08077C18: .4byte 0x02031E28 +_08077C1C: .4byte 0x02031F3C +_08077C20: .4byte 0x0807A8AD + thumb_func_end sub_08077B90 + + thumb_func_start sub_08077C24 +sub_08077C24: @ 0x08077C24 + push {r4, lr} + bl sub_08078FC0 + bl sub_08079AFC + movs r0, #0 + bl sub_080790C8 + movs r0, #1 + bl sub_080790C8 + ldr r4, _08077C7C + ldr r2, [r4] + ldrb r1, [r2] + adds r0, r1, #1 + strb r0, [r2] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0x18 + bl SetGpuReg + ldr r2, [r4] + ldrb r1, [r2, #1] + adds r0, r1, #0 + adds r0, #0xff + strb r0, [r2, #1] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0x1c + bl SetGpuReg + bl RunTextPrintersAndIsPrinter0Active + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08077C7C: .4byte 0x02031F3C + thumb_func_end sub_08077C24 + + thumb_func_start sub_08077C80 +sub_08077C80: @ 0x08077C80 + push {r4, r5, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #1 + beq _08077CEC + cmp r4, #1 + bgt _08077C96 + cmp r4, #0 + beq _08077C9C + b _08077D46 +_08077C96: + cmp r4, #2 + beq _08077D14 + b _08077D46 +_08077C9C: + ldr r0, _08077CDC + movs r1, #0 + movs r2, #0x60 + bl LoadPalette + ldr r1, _08077CE0 + movs r2, #0x94 + lsls r2, r2, #5 + movs r0, #1 + movs r3, #0 + bl LoadBgTiles + ldr r1, _08077CE4 + movs r0, #0x20 + str r0, [sp] + movs r0, #0x14 + str r0, [sp, #4] + str r4, [sp, #8] + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBufferRect_ChangePalette + ldr r1, _08077CE8 + movs r2, #0x80 + lsls r2, r2, #4 + movs r0, #2 + movs r3, #0 + bl LoadBgTilemap + b _08077D46 + .align 2, 0 +_08077CDC: .4byte 0x082FD0CC +_08077CE0: .4byte 0x082FD14C +_08077CE4: .4byte 0x082FE3CC +_08077CE8: .4byte 0x082FEFC8 +_08077CEC: + ldr r1, _08077D10 + movs r2, #0x80 + lsls r2, r2, #4 + movs r0, #3 + movs r3, #0 + bl LoadBgTilemap + movs r0, #0 + bl sub_0807987C + movs r0, #1 + bl sub_0807987C + movs r0, #1 + bl CopyBgTilemapBufferToVram + b _08077D46 + .align 2, 0 +_08077D10: .4byte 0x082FF7C8 +_08077D14: + movs r5, #0x80 + lsls r5, r5, #0x15 + movs r4, #3 +_08077D1A: + lsrs r0, r5, #0x18 + movs r1, #0 + bl SetGpuReg + movs r0, #0x80 + lsls r0, r0, #0x12 + adds r5, r5, r0 + subs r4, #1 + cmp r4, #0 + bge _08077D1A + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg +_08077D46: + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08077C80 + + thumb_func_start sub_08077D50 +sub_08077D50: @ 0x08077D50 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + movs r3, #0 + ldr r5, _08077DA0 + mov r8, r5 + ldr r0, _08077DA4 + mov ip, r0 + movs r1, #5 + rsbs r1, r1, #0 + mov sb, r1 + movs r4, #6 + movs r7, #1 + movs r6, #0 +_08077D6E: + mov r1, r8 + ldr r0, [r1] + adds r1, r0, #0 + adds r1, #0x36 + ldrb r1, [r1] + cmp r3, r1 + bge _08077DA8 + adds r0, #0x28 + adds r0, r0, r3 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + add r1, ip + adds r1, #0x3e + ldrb r2, [r1] + mov r0, sb + ands r0, r2 + strb r0, [r1] + ldr r0, [r5] + adds r0, #0x38 + adds r0, r0, r3 + strb r7, [r0] + b _08077DAE + .align 2, 0 +_08077DA0: .4byte 0x02031F3C +_08077DA4: .4byte 0x020205AC +_08077DA8: + adds r0, #0x38 + adds r0, r0, r3 + strb r6, [r0] +_08077DAE: + mov r1, r8 + ldr r0, [r1] + adds r1, r0, #0 + adds r1, #0x37 + ldrb r1, [r1] + cmp r3, r1 + bge _08077DDE + adds r0, #0x2e + adds r0, r0, r3 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + add r1, ip + adds r1, #0x3e + ldrb r2, [r1] + mov r0, sb + ands r0, r2 + strb r0, [r1] + ldr r0, [r5] + adds r0, #0x38 + adds r0, r0, r4 + strb r7, [r0] + b _08077DE4 +_08077DDE: + adds r0, #0x38 + adds r0, r0, r4 + strb r6, [r0] +_08077DE4: + adds r4, #1 + adds r3, #1 + cmp r3, #5 + ble _08077D6E + ldr r0, [r5] + adds r0, #0x44 + movs r1, #1 + strb r1, [r0] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08077D50 + + thumb_func_start Trade_Memcpy +Trade_Memcpy: @ 0x08077E00 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + movs r3, #0 + cmp r3, r2 + bhs _08077E1A +_08077E0C: + adds r0, r5, r3 + adds r1, r4, r3 + ldrb r1, [r1] + strb r1, [r0] + adds r3, #1 + cmp r3, r2 + blo _08077E0C +_08077E1A: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end Trade_Memcpy + + thumb_func_start shedinja_maker_maybe +shedinja_maker_maybe: @ 0x08077E20 + push {r4, r5, lr} + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _08077E44 + ldr r0, [r0] + adds r0, #0x69 + ldrb r0, [r0] + cmp r0, #0x15 + bls _08077E38 + b _08078112 +_08077E38: + lsls r0, r0, #2 + ldr r1, _08077E48 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08077E44: .4byte 0x02031F3C +_08077E48: .4byte 0x08077E4C +_08077E4C: @ jump table + .4byte _08077EA4 @ case 0 + .4byte _08077ED0 @ case 1 + .4byte _080780EC @ case 2 + .4byte _08077EFC @ case 3 + .4byte _08077F10 @ case 4 + .4byte _08077F44 @ case 5 + .4byte _080780EC @ case 6 + .4byte _08077F60 @ case 7 + .4byte _08077F74 @ case 8 + .4byte _08077FA8 @ case 9 + .4byte _080780EC @ case 10 + .4byte _08077FC4 @ case 11 + .4byte _08077FD8 @ case 12 + .4byte _0807800C @ case 13 + .4byte _080780EC @ case 14 + .4byte _08078034 @ case 15 + .4byte _08078048 @ case 16 + .4byte _0807807C @ case 17 + .4byte _080780EC @ case 18 + .4byte _080780A4 @ case 19 + .4byte _080780B8 @ case 20 + .4byte _080780E8 @ case 21 +_08077EA4: + ldr r0, _08077EC4 + ldr r1, _08077EC8 + movs r2, #0xc8 + bl Trade_Memcpy + ldr r3, _08077ECC + ldr r1, [r3] + adds r1, #0x69 + ldrb r0, [r1] + adds r0, #1 + movs r2, #0 + strb r0, [r1] + ldr r0, [r3] + adds r0, #0xa8 + strb r2, [r0] + b _08078112 + .align 2, 0 +_08077EC4: .4byte 0x0202257C +_08077EC8: .4byte 0x02024190 +_08077ECC: .4byte 0x02031F3C +_08077ED0: + bl sub_08076BC4 + cmp r0, #0 + bne _08077EDA + b _08078112 +_08077EDA: + bl _GetBlockReceivedStatus + cmp r0, #0 + bne _08077EEC + ldr r0, _08077EE8 + ldr r1, [r0] + b _0807810A + .align 2, 0 +_08077EE8: .4byte 0x02031F3C +_08077EEC: + bl sub_08076C18 + ldr r0, _08077EF8 + ldr r1, [r0] + b _0807810A + .align 2, 0 +_08077EF8: .4byte 0x02031F3C +_08077EFC: + cmp r5, #0 + bne _08077F06 + movs r0, #1 + bl sub_08076BB4 +_08077F06: + ldr r0, _08077F0C + ldr r1, [r0] + b _0807810A + .align 2, 0 +_08077F0C: .4byte 0x02031F3C +_08077F10: + bl _GetBlockReceivedStatus + cmp r0, #3 + beq _08077F1A + b _08078112 +_08077F1A: + ldr r0, _08077F38 + movs r2, #1 + adds r1, r5, #0 + eors r1, r2 + lsls r1, r1, #8 + ldr r2, _08077F3C + adds r1, r1, r2 + movs r2, #0xc8 + bl Trade_Memcpy + bl sub_08076C18 + ldr r0, _08077F40 + ldr r1, [r0] + b _0807810A + .align 2, 0 +_08077F38: .4byte 0x020243E8 +_08077F3C: .4byte 0x0202207C +_08077F40: .4byte 0x02031F3C +_08077F44: + ldr r0, _08077F54 + ldr r1, _08077F58 + movs r2, #0xc8 + bl Trade_Memcpy + ldr r0, _08077F5C + ldr r1, [r0] + b _0807810A + .align 2, 0 +_08077F54: .4byte 0x0202257C +_08077F58: .4byte 0x02024258 +_08077F5C: .4byte 0x02031F3C +_08077F60: + cmp r5, #0 + bne _08077F6A + movs r0, #1 + bl sub_08076BB4 +_08077F6A: + ldr r0, _08077F70 + ldr r1, [r0] + b _0807810A + .align 2, 0 +_08077F70: .4byte 0x02031F3C +_08077F74: + bl _GetBlockReceivedStatus + cmp r0, #3 + beq _08077F7E + b _08078112 +_08077F7E: + ldr r0, _08077F9C + movs r2, #1 + adds r1, r5, #0 + eors r1, r2 + lsls r1, r1, #8 + ldr r2, _08077FA0 + adds r1, r1, r2 + movs r2, #0xc8 + bl Trade_Memcpy + bl sub_08076C18 + ldr r0, _08077FA4 + ldr r1, [r0] + b _0807810A + .align 2, 0 +_08077F9C: .4byte 0x020244B0 +_08077FA0: .4byte 0x0202207C +_08077FA4: .4byte 0x02031F3C +_08077FA8: + ldr r0, _08077FB8 + ldr r1, _08077FBC + movs r2, #0xc8 + bl Trade_Memcpy + ldr r0, _08077FC0 + ldr r1, [r0] + b _0807810A + .align 2, 0 +_08077FB8: .4byte 0x0202257C +_08077FBC: .4byte 0x02024320 +_08077FC0: .4byte 0x02031F3C +_08077FC4: + cmp r5, #0 + bne _08077FCE + movs r0, #1 + bl sub_08076BB4 +_08077FCE: + ldr r0, _08077FD4 + ldr r1, [r0] + b _0807810A + .align 2, 0 +_08077FD4: .4byte 0x02031F3C +_08077FD8: + bl _GetBlockReceivedStatus + cmp r0, #3 + beq _08077FE2 + b _08078112 +_08077FE2: + ldr r0, _08078000 + movs r2, #1 + adds r1, r5, #0 + eors r1, r2 + lsls r1, r1, #8 + ldr r2, _08078004 + adds r1, r1, r2 + movs r2, #0xc8 + bl Trade_Memcpy + bl sub_08076C18 + ldr r0, _08078008 + ldr r1, [r0] + b _0807810A + .align 2, 0 +_08078000: .4byte 0x02024578 +_08078004: .4byte 0x0202207C +_08078008: .4byte 0x02031F3C +_0807800C: + ldr r0, _08078024 + ldr r1, _08078028 + ldr r1, [r1] + ldr r2, _0807802C + adds r1, r1, r2 + movs r2, #0xdc + bl Trade_Memcpy + ldr r0, _08078030 + ldr r1, [r0] + b _0807810A + .align 2, 0 +_08078024: .4byte 0x0202257C +_08078028: .4byte 0x03005AEC +_0807802C: .4byte 0x00002BE0 +_08078030: .4byte 0x02031F3C +_08078034: + cmp r5, #0 + bne _0807803E + movs r0, #3 + bl sub_08076BB4 +_0807803E: + ldr r0, _08078044 + ldr r1, [r0] + b _0807810A + .align 2, 0 +_08078044: .4byte 0x02031F3C +_08078048: + bl _GetBlockReceivedStatus + cmp r0, #3 + bne _08078112 + ldr r0, _08078070 + movs r2, #1 + adds r1, r5, #0 + eors r1, r2 + lsls r1, r1, #8 + ldr r2, _08078074 + adds r1, r1, r2 + movs r2, #0xd8 + bl Trade_Memcpy + bl sub_08076C18 + ldr r0, _08078078 + ldr r1, [r0] + b _0807810A + .align 2, 0 +_08078070: .4byte 0x02031E60 +_08078074: .4byte 0x0202207C +_08078078: .4byte 0x02031F3C +_0807807C: + ldr r0, _08078094 + ldr r1, _08078098 + ldr r1, [r1] + ldr r2, _0807809C + adds r1, r1, r2 + movs r2, #0xb + bl Trade_Memcpy + ldr r0, _080780A0 + ldr r1, [r0] + b _0807810A + .align 2, 0 +_08078094: .4byte 0x0202257C +_08078098: .4byte 0x03005AEC +_0807809C: .4byte 0x000031A8 +_080780A0: .4byte 0x02031F3C +_080780A4: + cmp r5, #0 + bne _080780AE + movs r0, #4 + bl sub_08076BB4 +_080780AE: + ldr r0, _080780B4 + ldr r1, [r0] + b _0807810A + .align 2, 0 +_080780B4: .4byte 0x02031F3C +_080780B8: + bl _GetBlockReceivedStatus + cmp r0, #3 + bne _08078112 + ldr r4, _080780E0 + ldr r0, [r4] + adds r0, #0xa9 + movs r2, #1 + adds r1, r5, #0 + eors r1, r2 + lsls r1, r1, #8 + ldr r2, _080780E4 + adds r1, r1, r2 + movs r2, #0xb + bl Trade_Memcpy + bl sub_08076C18 + ldr r1, [r4] + b _0807810A + .align 2, 0 +_080780E0: .4byte 0x02031F3C +_080780E4: .4byte 0x0202207C +_080780E8: + movs r0, #1 + b _08078114 +_080780EC: + ldr r2, _0807811C + ldr r1, [r2] + adds r1, #0xa8 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r0, [r2] + adds r1, r0, #0 + adds r1, #0xa8 + ldrb r0, [r1] + cmp r0, #0xa + bls _08078112 + movs r0, #0 + strb r0, [r1] + ldr r1, [r2] +_0807810A: + adds r1, #0x69 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_08078112: + movs r0, #0 +_08078114: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0807811C: .4byte 0x02031F3C + thumb_func_end shedinja_maker_maybe + + thumb_func_start sub_08078120 +sub_08078120: @ 0x08078120 + push {r4, r5, r6, lr} + sub sp, #0x34 + ldr r5, _080781AC + ldr r0, [r5] + adds r0, #0x35 + ldrb r0, [r0] + movs r4, #0x64 + muls r0, r4, r0 + ldr r1, _080781B0 + adds r0, r0, r1 + movs r1, #2 + mov r2, sp + bl GetMonData + add r6, sp, #0x1c + adds r0, r6, #0 + mov r1, sp + bl StringCopy10 + ldr r0, [r5] + adds r0, #0x7e + ldrb r0, [r0] + movs r1, #6 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + muls r0, r4, r0 + ldr r1, _080781B4 + adds r0, r0, r1 + movs r1, #2 + mov r2, sp + bl GetMonData + add r4, sp, #0x28 + adds r0, r4, #0 + mov r1, sp + bl StringCopy10 + mov r0, sp + adds r1, r6, #0 + bl StringCopy + ldr r1, _080781B8 + mov r0, sp + bl StringAppend + mov r0, sp + adds r1, r4, #0 + bl StringAppend + ldr r1, _080781BC + mov r0, sp + bl StringAppend + ldr r0, [r5] + adds r0, #0x72 + ldrh r1, [r0] + lsls r1, r1, #5 + ldr r0, _080781C0 + adds r1, r1, r0 + mov r0, sp + movs r2, #0x18 + bl sub_08079D3C + add sp, #0x34 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080781AC: .4byte 0x02031F3C +_080781B0: .4byte 0x02024190 +_080781B4: .4byte 0x020243E8 +_080781B8: .4byte 0x08300AAE +_080781BC: .4byte 0x08300AB1 +_080781C0: .4byte 0x06010000 + thumb_func_end sub_08078120 + + thumb_func_start sub_080781C4 +sub_080781C4: @ 0x080781C4 + push {r4, lr} + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + movs r2, #1 + adds r0, r4, #0 + ands r0, r2 + cmp r0, #0 + beq _08078248 + ldr r0, _080781EC + ldrh r1, [r0] + ldr r0, _080781F0 + cmp r1, r0 + beq _08078228 + cmp r1, r0 + bgt _080781F8 + ldr r0, _080781F4 + cmp r1, r0 + beq _08078218 + b _08078242 + .align 2, 0 +_080781EC: .4byte 0x0202207C +_080781F0: .4byte 0x0000BBBB +_080781F4: .4byte 0x0000AABB +_080781F8: + ldr r0, _0807820C + cmp r1, r0 + beq _08078238 + ldr r0, _08078210 + cmp r1, r0 + bne _08078242 + ldr r0, _08078214 + ldr r0, [r0] + adds r0, #0x78 + b _0807823E + .align 2, 0 +_0807820C: .4byte 0x0000BBCC +_08078210: .4byte 0x0000EEAA +_08078214: .4byte 0x02031F3C +_08078218: + ldr r0, _08078224 + ldr r0, [r0] + adds r0, #0x78 + strb r2, [r0] + b _08078242 + .align 2, 0 +_08078224: .4byte 0x02031F3C +_08078228: + ldr r0, _08078234 + ldr r0, [r0] + adds r0, #0x7a + strb r2, [r0] + b _08078242 + .align 2, 0 +_08078234: .4byte 0x02031F3C +_08078238: + ldr r0, _08078270 + ldr r0, [r0] + adds r0, #0x7a +_0807823E: + movs r1, #2 + strb r1, [r0] +_08078242: + movs r0, #0 + bl sub_08076C3C +_08078248: + movs r2, #2 + adds r0, r4, #0 + ands r0, r2 + cmp r0, #0 + beq _080782DA + ldr r3, _08078274 + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r3, r1 + ldrh r1, [r0] + ldr r0, _08078278 + cmp r1, r0 + beq _080782BC + cmp r1, r0 + bgt _08078280 + ldr r0, _0807827C + cmp r1, r0 + beq _080782A0 + b _080782D4 + .align 2, 0 +_08078270: .4byte 0x02031F3C +_08078274: .4byte 0x0202207C +_08078278: .4byte 0x0000BBBB +_0807827C: .4byte 0x0000AABB +_08078280: + ldr r0, _08078294 + cmp r1, r0 + beq _080782CC + ldr r0, _08078298 + cmp r1, r0 + bne _080782D4 + ldr r0, _0807829C + ldr r0, [r0] + adds r0, #0x79 + b _080782D2 + .align 2, 0 +_08078294: .4byte 0x0000BBCC +_08078298: .4byte 0x0000EEAA +_0807829C: .4byte 0x02031F3C +_080782A0: + ldr r2, _080782B8 + ldr r1, [r2] + movs r4, #0x81 + lsls r4, r4, #1 + adds r0, r3, r4 + ldrb r0, [r0] + adds r0, #6 + adds r1, #0x7e + strb r0, [r1] + ldr r0, [r2] + adds r0, #0x79 + b _080782C2 + .align 2, 0 +_080782B8: .4byte 0x02031F3C +_080782BC: + ldr r0, _080782C8 + ldr r0, [r0] + adds r0, #0x7b +_080782C2: + movs r1, #1 + strb r1, [r0] + b _080782D4 + .align 2, 0 +_080782C8: .4byte 0x02031F3C +_080782CC: + ldr r0, _080782E0 + ldr r0, [r0] + adds r0, #0x7b +_080782D2: + strb r2, [r0] +_080782D4: + movs r0, #1 + bl sub_08076C3C +_080782DA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080782E0: .4byte 0x02031F3C + thumb_func_end sub_080781C4 + + thumb_func_start sub_080782E4 +sub_080782E4: @ 0x080782E4 + push {r4, r5, lr} + sub sp, #4 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + movs r0, #1 + ands r0, r5 + cmp r0, #0 + beq _080783C6 + ldr r2, _08078310 + ldrh r1, [r2] + ldr r0, _08078314 + cmp r1, r0 + beq _080783B0 + cmp r1, r0 + bgt _08078320 + ldr r0, _08078318 + cmp r1, r0 + beq _08078390 + ldr r0, _0807831C + cmp r1, r0 + beq _0807835C + b _080783C0 + .align 2, 0 +_08078310: .4byte 0x0202207C +_08078314: .4byte 0x0000DDEE +_08078318: .4byte 0x0000CCDD +_0807831C: .4byte 0x0000DDDD +_08078320: + ldr r0, _08078330 + cmp r1, r0 + beq _08078334 + adds r0, #0x11 + cmp r1, r0 + beq _08078358 + b _080783C0 + .align 2, 0 +_08078330: .4byte 0x0000EEBB +_08078334: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + movs r0, #4 + bl sub_08079BD4 + ldr r0, _08078354 + ldr r0, [r0] + adds r0, #0x6f + movs r1, #0xb + b _080783BE + .align 2, 0 +_08078354: .4byte 0x02031F3C +_08078358: + movs r0, #5 + b _080783B2 +_0807835C: + ldr r4, _0807838C + ldr r1, [r4] + ldrb r0, [r2, #2] + adds r0, #6 + adds r1, #0x7e + strb r0, [r1] + movs r0, #0 + bl rbox_fill_rectangle + ldr r0, [r4] + adds r0, #0x35 + ldrb r0, [r0] + bl sub_08079090 + ldr r0, [r4] + adds r0, #0x7e + ldrb r0, [r0] + bl sub_08079090 + ldr r0, [r4] + adds r0, #0x6f + movs r1, #7 + b _080783BE + .align 2, 0 +_0807838C: .4byte 0x02031F3C +_08078390: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _080783AC + ldr r0, [r0] + adds r0, #0x6f + movs r1, #0xa + b _080783BE + .align 2, 0 +_080783AC: .4byte 0x02031F3C +_080783B0: + movs r0, #1 +_080783B2: + bl sub_08079BD4 + ldr r0, _080783DC + ldr r0, [r0] + adds r0, #0x6f + movs r1, #8 +_080783BE: + strb r1, [r0] +_080783C0: + movs r0, #0 + bl sub_08076C3C +_080783C6: + movs r0, #2 + ands r0, r5 + cmp r0, #0 + beq _080783D4 + movs r0, #1 + bl sub_08076C3C +_080783D4: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080783DC: .4byte 0x02031F3C + thumb_func_end sub_080782E4 + + thumb_func_start sub_080783E0 +sub_080783E0: @ 0x080783E0 + push {r4, r5, r6, lr} + sub sp, #4 + ldr r6, _0807843C + ldr r2, [r6] + adds r1, r2, #0 + adds r1, #0x78 + ldrb r0, [r1] + cmp r0, #0 + bne _080783F4 + b _08078528 +_080783F4: + adds r0, r2, #0 + adds r0, #0x79 + ldrb r0, [r0] + cmp r0, #0 + bne _08078400 + b _08078528 +_08078400: + ldrh r1, [r1] + ldr r0, _08078440 + cmp r1, r0 + bne _08078448 + adds r1, r2, #0 + adds r1, #0x6f + movs r0, #6 + strb r0, [r1] + ldr r2, [r6] + adds r1, r2, #0 + adds r1, #0x80 + movs r4, #0 + ldr r0, _08078444 + strh r0, [r1] + adds r0, r2, #0 + adds r0, #0x35 + ldrb r1, [r0] + adds r0, #0x4d + strh r1, [r0] + movs r0, #5 + movs r1, #0 + bl sub_08079A80 + ldr r0, [r6] + adds r2, r0, #0 + adds r2, #0x79 + strb r4, [r2] + adds r0, #0x78 + strb r4, [r0] + b _08078528 + .align 2, 0 +_0807843C: .4byte 0x02031F3C +_08078440: .4byte 0x00000101 +_08078444: .4byte 0x0000DDDD +_08078448: + ldr r0, _08078490 + cmp r1, r0 + bne _08078498 + movs r0, #1 + bl sub_08079BD4 + ldr r1, [r6] + adds r2, r1, #0 + adds r2, #0x80 + movs r4, #0 + movs r3, #0 + ldr r0, _08078494 + strh r0, [r2] + adds r1, #0x82 + strh r3, [r1] + movs r0, #5 + movs r1, #0 + bl sub_08079A80 + ldr r0, [r6] + adds r1, r0, #0 + adds r1, #0x7b + strb r4, [r1] + adds r0, #0x7a + strb r4, [r0] + ldr r0, [r6] + adds r1, r0, #0 + adds r1, #0x79 + strb r4, [r1] + adds r0, #0x78 + strb r4, [r0] + ldr r0, [r6] + adds r0, #0x6f + movs r1, #8 + b _08078526 + .align 2, 0 +_08078490: .4byte 0x00000201 +_08078494: .4byte 0x0000EECC +_08078498: + movs r0, #0x81 + lsls r0, r0, #1 + cmp r1, r0 + bne _080784E4 + movs r0, #5 + bl sub_08079BD4 + ldr r1, [r6] + adds r2, r1, #0 + adds r2, #0x80 + movs r4, #0 + movs r3, #0 + ldr r0, _080784E0 + strh r0, [r2] + adds r1, #0x82 + strh r3, [r1] + movs r0, #5 + movs r1, #0 + bl sub_08079A80 + ldr r0, [r6] + adds r1, r0, #0 + adds r1, #0x7b + strb r4, [r1] + adds r0, #0x7a + strb r4, [r0] + ldr r0, [r6] + adds r1, r0, #0 + adds r1, #0x79 + strb r4, [r1] + adds r0, #0x78 + strb r4, [r0] + ldr r0, [r6] + adds r0, #0x6f + movs r1, #8 + b _08078526 + .align 2, 0 +_080784E0: .4byte 0x0000DDEE +_080784E4: + ldr r0, _080785C8 + cmp r1, r0 + bne _08078528 + adds r1, r2, #0 + adds r1, #0x80 + movs r5, #0 + movs r4, #0 + ldr r0, _080785CC + strh r0, [r1] + adds r0, r2, #0 + adds r0, #0x82 + strh r4, [r0] + movs r0, #5 + movs r1, #0 + bl sub_08079A80 + movs r0, #1 + rsbs r0, r0, #0 + str r4, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, [r6] + adds r1, r0, #0 + adds r1, #0x79 + strb r5, [r1] + adds r0, #0x78 + strb r5, [r0] + ldr r0, [r6] + adds r0, #0x6f + movs r1, #0xb +_08078526: + strb r1, [r0] +_08078528: + ldr r5, _080785D0 + ldr r3, [r5] + adds r1, r3, #0 + adds r1, #0x7a + ldrb r0, [r1] + cmp r0, #0 + beq _080785C0 + adds r0, r3, #0 + adds r0, #0x7b + ldrb r0, [r0] + cmp r0, #0 + beq _080785C0 + ldrh r1, [r1] + ldr r0, _080785D4 + cmp r1, r0 + bne _08078576 + adds r1, r3, #0 + adds r1, #0x80 + movs r4, #0 + movs r2, #0 + ldr r0, _080785D8 + strh r0, [r1] + adds r0, r3, #0 + adds r0, #0x82 + strh r2, [r0] + movs r0, #5 + movs r1, #0 + bl sub_08079A80 + ldr r0, [r5] + adds r0, #0x7a + strb r4, [r0] + ldr r0, [r5] + adds r0, #0x7b + strb r4, [r0] + ldr r0, [r5] + adds r0, #0x6f + movs r1, #9 + strb r1, [r0] +_08078576: + ldr r1, [r5] + adds r0, r1, #0 + adds r0, #0x7a + ldrb r0, [r0] + cmp r0, #2 + beq _0807858C + adds r0, r1, #0 + adds r0, #0x7b + ldrb r0, [r0] + cmp r0, #2 + bne _080785C0 +_0807858C: + movs r0, #1 + bl sub_08079BD4 + ldr r1, [r5] + adds r2, r1, #0 + adds r2, #0x80 + movs r4, #0 + movs r3, #0 + ldr r0, _080785DC + strh r0, [r2] + adds r1, #0x82 + strh r3, [r1] + movs r0, #5 + movs r1, #0 + bl sub_08079A80 + ldr r0, [r5] + adds r0, #0x7a + strb r4, [r0] + ldr r0, [r5] + adds r0, #0x7b + strb r4, [r0] + ldr r0, [r5] + adds r0, #0x6f + movs r1, #8 + strb r1, [r0] +_080785C0: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080785C8: .4byte 0x00000202 +_080785CC: .4byte 0x0000EEBB +_080785D0: .4byte 0x02031F3C +_080785D4: .4byte 0x00000101 +_080785D8: .4byte 0x0000CCDD +_080785DC: .4byte 0x0000DDEE + thumb_func_end sub_080783E0 + + thumb_func_start sub_080785E0 +sub_080785E0: @ 0x080785E0 + push {lr} + strh r1, [r0] + strh r2, [r0, #2] + movs r0, #5 + movs r1, #0 + bl sub_08079A80 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080785E0 + + thumb_func_start sub_080785F4 +sub_080785F4: @ 0x080785F4 + push {lr} + adds r3, r0, #0 + adds r2, r1, #0 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldr r0, _08078614 + ldr r0, [r0] + adds r0, #0x80 + adds r1, r3, #0 + bl sub_080785E0 + pop {r0} + bx r0 + .align 2, 0 +_08078614: .4byte 0x02031F3C + thumb_func_end sub_080785F4 + + thumb_func_start sub_08078618 +sub_08078618: @ 0x08078618 + push {r4, lr} + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl _GetBlockReceivedStatus + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _08078640 + cmp r4, #0 + bne _0807863A + movs r0, #0 + bl sub_080781C4 + b _08078640 +_0807863A: + adds r0, r4, #0 + bl sub_080782E4 +_08078640: + cmp r4, #0 + bne _08078648 + bl sub_080783E0 +_08078648: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08078618 + + thumb_func_start sub_08078650 +sub_08078650: @ 0x08078650 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r6, #0 + movs r5, #0 + ldr r2, _08078684 + ldr r3, [r2] + ldr r4, _08078688 + lsls r2, r1, #1 + adds r2, r2, r1 + lsls r2, r2, #1 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r3, #0x38 + adds r2, r2, r1 + adds r2, r2, r4 +_08078676: + ldrb r1, [r2] + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, #1 + bne _0807868C + adds r6, r1, #0 + b _08078694 + .align 2, 0 +_08078684: .4byte 0x02031F3C +_08078688: .4byte 0x083008E4 +_0807868C: + adds r2, #1 + adds r5, #1 + cmp r5, #5 + ble _08078676 +_08078694: + adds r0, r6, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_08078650 + + thumb_func_start TradeMenuMoveCursor +TradeMenuMoveCursor: @ 0x0807869C + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrb r0, [r7] + bl sub_08078650 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0xc + bne _080786F4 + ldr r5, _080786EC + ldr r0, [r5] + adds r0, #0x34 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _080786F0 + adds r0, r0, r4 + movs r1, #1 + bl StartSpriteAnim + ldr r2, [r5] + adds r2, #0x34 + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0xe8 + strh r1, [r0, #0x20] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0xa0 + strh r1, [r0, #0x22] + b _0807873C + .align 2, 0 +_080786EC: .4byte 0x02031F3C +_080786F0: .4byte 0x020205AC +_080786F4: + ldr r4, _08078750 + ldr r0, [r4] + adds r0, #0x34 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r5, _08078754 + adds r0, r0, r5 + movs r1, #0 + bl StartSpriteAnim + ldr r4, [r4] + adds r4, #0x34 + ldrb r0, [r4] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldr r2, _08078758 + lsls r3, r6, #1 + adds r0, r3, r2 + ldrb r0, [r0] + lsls r0, r0, #3 + adds r0, #0x20 + strh r0, [r1, #0x20] + ldrb r0, [r4] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + adds r2, #1 + adds r3, r3, r2 + ldrb r0, [r3] + lsls r0, r0, #3 + strh r0, [r1, #0x22] +_0807873C: + ldrb r0, [r7] + cmp r0, r6 + beq _08078748 + movs r0, #5 + bl PlaySE +_08078748: + strb r6, [r7] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08078750: .4byte 0x02031F3C +_08078754: .4byte 0x020205AC +_08078758: .4byte 0x08300A1C + thumb_func_end TradeMenuMoveCursor + + thumb_func_start sub_0807875C +sub_0807875C: @ 0x0807875C + push {r4, lr} + movs r0, #0 + bl sub_08079BD4 + ldr r4, _08078788 + ldr r0, [r4] + adds r0, #0x6f + movs r1, #0x64 + strb r1, [r0] + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08078790 + ldr r0, _0807878C + ldr r1, [r4] + adds r1, #0x35 + ldrb r1, [r1] + bl sub_080785F4 + b _08078798 + .align 2, 0 +_08078788: .4byte 0x02031F3C +_0807878C: .4byte 0x0000AABB +_08078790: + ldr r0, [r4] + adds r0, #0x78 + movs r1, #1 + strb r1, [r0] +_08078798: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0807875C + + thumb_func_start sub_080787A0 +sub_080787A0: @ 0x080787A0 + push {r4, r5, lr} + sub sp, #0xc + ldr r0, _080787C0 + ldrh r1, [r0, #0x30] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080787C8 + ldr r0, _080787C4 + ldr r0, [r0] + adds r0, #0x35 + movs r1, #0 + bl TradeMenuMoveCursor + b _08078814 + .align 2, 0 +_080787C0: .4byte 0x03002360 +_080787C4: .4byte 0x02031F3C +_080787C8: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080787E4 + ldr r0, _080787E0 + ldr r0, [r0] + adds r0, #0x35 + movs r1, #1 + bl TradeMenuMoveCursor + b _08078814 + .align 2, 0 +_080787E0: .4byte 0x02031F3C +_080787E4: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08078800 + ldr r0, _080787FC + ldr r0, [r0] + adds r0, #0x35 + movs r1, #2 + bl TradeMenuMoveCursor + b _08078814 + .align 2, 0 +_080787FC: .4byte 0x02031F3C +_08078800: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08078814 + ldr r0, _08078888 + ldr r0, [r0] + adds r0, #0x35 + movs r1, #3 + bl TradeMenuMoveCursor +_08078814: + ldr r0, _0807888C + ldrh r1, [r0, #0x2e] + movs r5, #1 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _080788EA + movs r0, #5 + bl PlaySE + ldr r4, _08078888 + ldr r0, [r4] + adds r0, #0x35 + ldrb r0, [r0] + cmp r0, #5 + bhi _08078894 + movs r0, #1 + movs r1, #1 + movs r2, #0xe + bl DrawTextBorderOuter + movs r0, #1 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r0, _08078890 + str r0, [sp] + movs r0, #1 + movs r1, #1 + movs r2, #0x10 + movs r3, #2 + bl sub_08198964 + movs r0, #0x10 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl sub_081984B0 + movs r0, #1 + bl PutWindowTilemap + movs r0, #1 + movs r1, #3 + bl CopyWindowToVram + ldr r0, [r4] + adds r0, #0x6f + movs r1, #1 + strb r1, [r0] + b _080788EA + .align 2, 0 +_08078888: .4byte 0x02031F3C +_0807888C: .4byte 0x03002360 +_08078890: .4byte 0x08300B28 +_08078894: + cmp r0, #0xb + bhi _080788B2 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, [r4] + adds r0, #0x6f + movs r1, #2 + strb r1, [r0] + b _080788EA +_080788B2: + cmp r0, #0xc + bne _080788EA + ldr r0, _080788F4 + str r5, [sp] + movs r1, #0xe + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + movs r2, #2 + movs r3, #2 + bl sub_08198C08 + ldr r0, [r4] + adds r0, #0x6f + movs r1, #4 + strb r1, [r0] + ldr r0, _080788F8 + ldr r0, [r0, #0x10] + ldr r1, [r4] + adds r1, #0x72 + ldrh r1, [r1] + lsls r1, r1, #5 + ldr r2, _080788FC + adds r1, r1, r2 + movs r2, #0x18 + bl sub_08079D3C +_080788EA: + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080788F4: .4byte 0x08300CAC +_080788F8: .4byte 0x08300AFC +_080788FC: .4byte 0x06010000 + thumb_func_end sub_080787A0 + + thumb_func_start sub_08078900 +sub_08078900: @ 0x08078900 + push {lr} + bl sub_080799AC + ldr r3, _08078948 + ldr r0, [r3] + adds r0, #0x6f + movs r1, #0 + strb r1, [r0] + ldr r2, _0807894C + ldr r0, [r3] + adds r0, #0x34 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + ldr r0, _08078950 + ldr r0, [r0, #4] + ldr r1, [r3] + adds r1, #0x72 + ldrh r1, [r1] + lsls r1, r1, #5 + ldr r2, _08078954 + adds r1, r1, r2 + movs r2, #0x18 + bl sub_08079D3C + pop {r0} + bx r0 + .align 2, 0 +_08078948: .4byte 0x02031F3C +_0807894C: .4byte 0x020205AC +_08078950: .4byte 0x08300AFC +_08078954: .4byte 0x06010000 + thumb_func_end sub_08078900 + + thumb_func_start sub_08078958 +sub_08078958: @ 0x08078958 + push {lr} + sub sp, #4 + bl Menu_ProcessInputNoWrap + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _0807897A + cmp r0, r1 + ble _08078A32 + cmp r0, #0 + beq _08078986 + cmp r0, #1 + beq _080789A4 + b _08078A32 +_0807897A: + movs r0, #5 + bl PlaySE + bl sub_08078900 + b _08078A32 +_08078986: + str r0, [sp] + adds r0, r1, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _080789A0 + ldr r0, [r0] + adds r0, #0x6f + movs r1, #2 + b _08078A30 + .align 2, 0 +_080789A0: .4byte 0x02031F3C +_080789A4: + ldr r0, _080789C4 + ldr r1, _080789C8 + ldrb r1, [r1] + ldr r2, _080789CC + ldr r2, [r2] + adds r2, #0x35 + ldrb r2, [r2] + bl sub_0807A064 + cmp r0, #5 + bhi _08078A32 + lsls r0, r0, #2 + ldr r1, _080789D0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080789C4: .4byte 0x02024190 +_080789C8: .4byte 0x0202418D +_080789CC: .4byte 0x02031F3C +_080789D0: .4byte 0x080789D4 +_080789D4: @ jump table + .4byte _080789EC @ case 0 + .4byte _08078A14 @ case 1 + .4byte _08078A1A @ case 2 + .4byte _08078A20 @ case 3 + .4byte _08078A1A @ case 4 + .4byte _08078A20 @ case 5 +_080789EC: + bl sub_0807875C + ldr r2, _08078A0C + ldr r0, _08078A10 + ldr r0, [r0] + adds r0, #0x34 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + b _08078A30 + .align 2, 0 +_08078A0C: .4byte 0x020205AC +_08078A10: .4byte 0x02031F3C +_08078A14: + movs r0, #3 + movs r1, #3 + b _08078A24 +_08078A1A: + movs r0, #3 + movs r1, #6 + b _08078A24 +_08078A20: + movs r0, #3 + movs r1, #7 +_08078A24: + bl sub_08079A80 + ldr r0, _08078A38 + ldr r0, [r0] + adds r0, #0x6f + movs r1, #8 +_08078A30: + strb r1, [r0] +_08078A32: + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_08078A38: .4byte 0x02031F3C + thumb_func_end sub_08078958 + + thumb_func_start sub_08078A3C +sub_08078A3C: @ 0x08078A3C + push {lr} + ldr r0, _08078A60 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08078A52 + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08078A5C +_08078A52: + movs r0, #5 + bl PlaySE + bl sub_08078900 +_08078A5C: + pop {r0} + bx r0 + .align 2, 0 +_08078A60: .4byte 0x03002360 + thumb_func_end sub_08078A3C + + thumb_func_start sub_08078A64 +sub_08078A64: @ 0x08078A64 + push {lr} + sub sp, #4 + ldr r0, _08078A9C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08078ACC + ldr r0, _08078AA0 + ldr r0, [r0] + adds r3, r0, #0 + adds r3, #0x35 + ldrb r2, [r3] + cmp r2, #5 + bhi _08078AAC + ldr r1, _08078AA4 + ldrb r2, [r3] + adds r0, #0x36 + ldrb r3, [r0] + subs r3, #1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r0, _08078AA8 + str r0, [sp] + movs r0, #1 + bl ShowPokemonSummaryScreen + b _08078AC8 + .align 2, 0 +_08078A9C: .4byte 0x02037C74 +_08078AA0: .4byte 0x02031F3C +_08078AA4: .4byte 0x02024190 +_08078AA8: .4byte 0x08077559 +_08078AAC: + ldr r1, _08078AD4 + subs r2, #6 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, #0x37 + ldrb r3, [r0] + subs r3, #1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r0, _08078AD8 + str r0, [sp] + movs r0, #1 + bl ShowPokemonSummaryScreen +_08078AC8: + bl FreeAllWindowBuffers +_08078ACC: + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_08078AD4: .4byte 0x020243E8 +_08078AD8: .4byte 0x08077559 + thumb_func_end sub_08078A64 + + thumb_func_start sub_08078ADC +sub_08078ADC: @ 0x08078ADC + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r6, r3, #0x18 + movs r5, #0 + movs r3, #0 + ldr r7, _08078B64 + cmp r5, r1 + bge _08078B0A +_08078AF6: + cmp r2, r3 + beq _08078B04 + adds r0, r4, r3 + ldrb r0, [r0] + adds r0, r5, r0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_08078B04: + adds r3, #1 + cmp r3, r1 + blt _08078AF6 +_08078B0A: + adds r0, r6, #0 + movs r1, #6 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r0, #0x64 + muls r0, r6, r0 + adds r7, r0, r7 + adds r0, r7, #0 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r0, #0xcd + lsls r0, r0, #1 + cmp r4, r0 + beq _08078B34 + cmp r4, #0x97 + bne _08078B40 +_08078B34: + adds r0, r7, #0 + movs r1, #0x50 + bl GetMonData + cmp r0, #0 + beq _08078B60 +_08078B40: + bl IsNationalPokedexEnabled + cmp r0, #0 + bne _08078B6C + ldr r0, _08078B68 + ldr r0, [r0] + adds r0, #0x57 + adds r0, r0, r6 + ldrb r0, [r0] + cmp r0, #0 + bne _08078B60 + adds r0, r4, #0 + bl IsSpeciesInHoennDex + cmp r0, #0 + bne _08078B6C +_08078B60: + movs r0, #2 + b _08078B74 + .align 2, 0 +_08078B64: .4byte 0x020243E8 +_08078B68: .4byte 0x02031F3C +_08078B6C: + cmp r5, #0 + beq _08078B72 + movs r5, #1 +_08078B72: + adds r0, r5, #0 +_08078B74: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08078ADC + + thumb_func_start sub_08078B7C +sub_08078B7C: @ 0x08078B7C + push {r4, r5, lr} + sub sp, #0xc + movs r2, #0 + ldr r0, _08078BD4 + ldr r1, [r0] + adds r3, r1, #0 + adds r3, #0x36 + adds r5, r0, #0 + ldrb r0, [r3] + cmp r2, r0 + bge _08078BA8 + adds r4, r1, #0 + adds r4, #0x45 +_08078B96: + mov r1, sp + adds r0, r1, r2 + adds r1, r4, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + ldrb r0, [r3] + cmp r2, r0 + blt _08078B96 +_08078BA8: + ldr r0, [r5] + adds r1, r0, #0 + adds r1, #0x36 + ldrb r1, [r1] + adds r2, r0, #0 + adds r2, #0x35 + ldrb r2, [r2] + adds r0, #0x7e + ldrb r3, [r0] + mov r0, sp + bl sub_08078ADC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08078BF0 + cmp r0, #1 + bgt _08078BD8 + cmp r0, #0 + beq _08078BDE + b _08078C14 + .align 2, 0 +_08078BD4: .4byte 0x02031F3C +_08078BD8: + cmp r0, #2 + beq _08078C08 + b _08078C14 +_08078BDE: + movs r0, #3 + movs r1, #3 + bl sub_08079A80 + ldr r0, _08078BEC + b _08078BFA + .align 2, 0 +_08078BEC: .4byte 0x0000BBCC +_08078BF0: + movs r0, #3 + movs r1, #1 + bl sub_08079A80 + ldr r0, _08078C04 +_08078BFA: + movs r1, #0 + bl sub_080785F4 + b _08078C14 + .align 2, 0 +_08078C04: .4byte 0x0000BBBB +_08078C08: + movs r0, #3 + movs r1, #8 + bl sub_08079A80 + movs r0, #1 + b _08078C16 +_08078C14: + movs r0, #0 +_08078C16: + add sp, #0xc + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08078B7C + + thumb_func_start sub_08078C20 +sub_08078C20: @ 0x08078C20 + push {lr} + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _08078C42 + cmp r1, #0 + bgt _08078C3C + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _08078C70 + b _08078C98 +_08078C3C: + cmp r1, #1 + beq _08078C70 + b _08078C98 +_08078C42: + bl sub_08078B7C + cmp r0, #0 + bne _08078C58 + ldr r0, _08078C54 + ldr r0, [r0] + adds r0, #0x6f + movs r1, #0x64 + b _08078C60 + .align 2, 0 +_08078C54: .4byte 0x02031F3C +_08078C58: + ldr r0, _08078C6C + ldr r0, [r0] + adds r0, #0x6f + movs r1, #0x11 +_08078C60: + strb r1, [r0] + movs r0, #0x11 + bl PutWindowTilemap + b _08078C98 + .align 2, 0 +_08078C6C: .4byte 0x02031F3C +_08078C70: + movs r0, #3 + movs r1, #1 + bl sub_08079A80 + bl sub_08076BC4 + cmp r0, #0 + beq _08078C88 + ldr r0, _08078C9C + movs r1, #0 + bl sub_080785F4 +_08078C88: + ldr r0, _08078CA0 + ldr r0, [r0] + adds r0, #0x6f + movs r1, #0x64 + strb r1, [r0] + movs r0, #0x11 + bl PutWindowTilemap +_08078C98: + pop {r0} + bx r0 + .align 2, 0 +_08078C9C: .4byte 0x0000BBCC +_08078CA0: .4byte 0x02031F3C + thumb_func_end sub_08078C20 + + thumb_func_start sub_08078CA4 +sub_08078CA4: @ 0x08078CA4 + push {r4, r5, r6, lr} + movs r5, #0 + ldr r0, _08078CE8 + ldr r0, [r0] + adds r0, #0x37 + ldrb r0, [r0] + subs r0, #4 + cmp r5, r0 + bge _08078CE0 + movs r6, #0xc0 + lsls r6, r6, #0x14 +_08078CBA: + lsrs r4, r6, #0x18 + adds r0, r4, #0 + bl PutWindowTilemap + adds r0, r4, #0 + movs r1, #1 + bl CopyWindowToVram + movs r0, #0x80 + lsls r0, r0, #0x11 + adds r6, r6, r0 + adds r5, #1 + ldr r0, _08078CE8 + ldr r0, [r0] + adds r0, #0x37 + ldrb r0, [r0] + subs r0, #4 + cmp r5, r0 + blt _08078CBA +_08078CE0: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08078CE8: .4byte 0x02031F3C + thumb_func_end sub_08078CA4 + + thumb_func_start sub_08078CEC +sub_08078CEC: @ 0x08078CEC + push {lr} + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _08078D0E + cmp r1, #0 + bgt _08078D08 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _08078D54 + b _08078D5E +_08078D08: + cmp r1, #1 + beq _08078D54 + b _08078D5E +_08078D0E: + movs r0, #4 + bl sub_08079BD4 + ldr r0, _08078D48 + movs r1, #0 + bl sub_080785F4 + ldr r2, _08078D4C + ldr r3, _08078D50 + ldr r0, [r3] + adds r0, #0x34 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + ldr r0, [r3] + adds r0, #0x6f + movs r1, #0x64 + strb r1, [r0] + bl sub_08078CA4 + b _08078D5E + .align 2, 0 +_08078D48: .4byte 0x0000EEAA +_08078D4C: .4byte 0x020205AC +_08078D50: .4byte 0x02031F3C +_08078D54: + movs r0, #5 + bl PlaySE + bl sub_08078900 +_08078D5E: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08078CEC + + thumb_func_start sub_08078D64 +sub_08078D64: @ 0x08078D64 + push {r4, lr} + bl GetMultiplayerId + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08078D8C + movs r0, #0 + bl rbox_fill_rectangle + ldr r4, _08078D9C + ldr r0, [r4] + adds r0, #0x35 + ldrb r0, [r0] + bl sub_08079090 + ldr r0, [r4] + adds r0, #0x7e + ldrb r0, [r0] + bl sub_08079090 +_08078D8C: + ldr r0, _08078D9C + ldr r0, [r0] + adds r0, #0x6f + movs r1, #7 + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08078D9C: .4byte 0x02031F3C + thumb_func_end sub_08078D64 + + thumb_func_start sub_08078DA0 +sub_08078DA0: @ 0x08078DA0 + push {r4, lr} + ldr r4, _08078DC4 + ldr r0, [r4] + adds r0, #0x74 + ldrh r1, [r0] + ldr r0, _08078DC8 + cmp r1, r0 + bne _08078DBC + bl sub_08078120 + ldr r0, [r4] + adds r0, #0x6f + movs r1, #0xe + strb r1, [r0] +_08078DBC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08078DC4: .4byte 0x02031F3C +_08078DC8: .4byte 0x00000505 + thumb_func_end sub_08078DA0 + + thumb_func_start Wait2SecondsAndCreateYesNoMenu +Wait2SecondsAndCreateYesNoMenu: @ 0x08078DCC + push {r4, r5, lr} + sub sp, #0xc + ldr r4, _08078E14 + ldr r1, [r4] + adds r1, #0xa8 + ldrb r0, [r1] + adds r0, #1 + movs r5, #0 + strb r0, [r1] + ldr r0, [r4] + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0x78 + bls _08078E0C + ldr r0, _08078E18 + movs r1, #1 + str r1, [sp] + movs r1, #0xe + str r1, [sp, #4] + str r5, [sp, #8] + movs r1, #1 + movs r2, #2 + movs r3, #2 + bl sub_08198C08 + ldr r0, [r4] + adds r0, #0xa8 + strb r5, [r0] + ldr r0, [r4] + adds r0, #0x6f + movs r1, #3 + strb r1, [r0] +_08078E0C: + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08078E14: .4byte 0x02031F3C +_08078E18: .4byte 0x08300CAC + thumb_func_end Wait2SecondsAndCreateYesNoMenu + + thumb_func_start sub_08078E1C +sub_08078E1C: @ 0x08078E1C + push {r4, r5, r6, lr} + ldr r0, _08078E98 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08078E90 + movs r0, #5 + bl PlaySE + movs r0, #0 + bl rbox_fill_rectangle + movs r0, #1 + bl rbox_fill_rectangle + movs r6, #0 + movs r5, #0xe0 + lsls r5, r5, #0x14 +_08078E42: + lsrs r4, r5, #0x18 + adds r0, r4, #0 + movs r1, #0 + bl FillWindowPixelBuffer + adds r0, r4, #0 + bl rbox_fill_rectangle + movs r0, #0x80 + lsls r0, r0, #0x11 + adds r5, r5, r0 + adds r6, #1 + cmp r6, #3 + ble _08078E42 + movs r0, #0 + bl sub_080799C0 + movs r0, #1 + bl sub_080799C0 + ldr r2, _08078E9C + ldr r0, [r2] + adds r0, #0x6f + movs r1, #0 + strb r1, [r0] + ldr r3, _08078EA0 + ldr r0, [r2] + adds r0, #0x34 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] +_08078E90: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08078E98: .4byte 0x03002360 +_08078E9C: .4byte 0x02031F3C +_08078EA0: .4byte 0x020205AC + thumb_func_end sub_08078E1C + + thumb_func_start sub_08078EA4 +sub_08078EA4: @ 0x08078EA4 + push {lr} + ldr r0, _08078EC0 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08078ED8 + ldr r0, _08078EC4 + ldrb r0, [r0] + cmp r0, #0 + beq _08078EC8 + bl sub_0800A8D4 + b _08078ECE + .align 2, 0 +_08078EC0: .4byte 0x02037C74 +_08078EC4: .4byte 0x0300319C +_08078EC8: + movs r0, #0xc + bl sub_0800A7B8 +_08078ECE: + ldr r0, _08078EDC + ldr r0, [r0] + adds r0, #0x6f + movs r1, #0xc + strb r1, [r0] +_08078ED8: + pop {r0} + bx r0 + .align 2, 0 +_08078EDC: .4byte 0x02031F3C + thumb_func_end sub_08078EA4 + + thumb_func_start sub_08078EE0 +sub_08078EE0: @ 0x08078EE0 + push {lr} + ldr r0, _08078F1C + ldrb r0, [r0] + cmp r0, #0 + beq _08078F2C + bl sub_08076BC4 + cmp r0, #0 + beq _08078F4E + bl sub_08079AD4 + cmp r0, #0 + bne _08078F4E + ldr r0, _08078F20 + ldr r0, [r0] + bl Free + ldr r0, _08078F24 + ldr r0, [r0] + bl Free + bl FreeAllWindowBuffers + bl DestroyWirelessStatusIndicatorSprite + ldr r0, _08078F28 + bl SetMainCallback2 + b _08078F4E + .align 2, 0 +_08078F1C: .4byte 0x0300319C +_08078F20: .4byte 0x02031E28 +_08078F24: .4byte 0x02031F3C +_08078F28: .4byte 0x08085AA9 +_08078F2C: + ldr r0, _08078F54 + ldrb r0, [r0] + cmp r0, #0 + bne _08078F4E + ldr r0, _08078F58 + ldr r0, [r0] + bl Free + ldr r0, _08078F5C + ldr r0, [r0] + bl Free + bl FreeAllWindowBuffers + ldr r0, _08078F60 + bl SetMainCallback2 +_08078F4E: + pop {r0} + bx r0 + .align 2, 0 +_08078F54: .4byte 0x030031C4 +_08078F58: .4byte 0x02031E28 +_08078F5C: .4byte 0x02031F3C +_08078F60: .4byte 0x08085AA9 + thumb_func_end sub_08078EE0 + + thumb_func_start sub_08078F64 +sub_08078F64: @ 0x08078F64 + push {lr} + movs r0, #0 + bl sub_0800FF8C + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08078F88 + bl sub_08079AD4 + cmp r0, #0 + bne _08078F88 + bl sub_0800A8D4 + ldr r0, _08078F8C + ldr r0, [r0] + adds r0, #0x6f + movs r1, #0xd + strb r1, [r0] +_08078F88: + pop {r0} + bx r0 + .align 2, 0 +_08078F8C: .4byte 0x02031F3C + thumb_func_end sub_08078F64 + + thumb_func_start sub_08078F90 +sub_08078F90: @ 0x08078F90 + push {lr} + ldr r0, _08078FB4 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08078FB0 + ldr r0, _08078FB8 + movs r1, #0 + bl sub_080785F4 + ldr r0, _08078FBC + ldr r0, [r0] + adds r0, #0x6f + movs r1, #0x64 + strb r1, [r0] +_08078FB0: + pop {r0} + bx r0 + .align 2, 0 +_08078FB4: .4byte 0x03002360 +_08078FB8: .4byte 0x0000BBCC +_08078FBC: .4byte 0x02031F3C + thumb_func_end sub_08078F90 + + thumb_func_start sub_08078FC0 +sub_08078FC0: @ 0x08078FC0 + push {lr} + ldr r0, _08078FD8 + ldr r0, [r0] + adds r0, #0x6f + ldrb r0, [r0] + cmp r0, #0x11 + bhi _0807908C + lsls r0, r0, #2 + ldr r1, _08078FDC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08078FD8: .4byte 0x02031F3C +_08078FDC: .4byte 0x08078FE0 +_08078FE0: @ jump table + .4byte _08079028 @ case 0 + .4byte _0807902E @ case 1 + .4byte _08079034 @ case 2 + .4byte _0807903A @ case 3 + .4byte _08079040 @ case 4 + .4byte _0807908C @ case 5 + .4byte _08079046 @ case 6 + .4byte _0807904C @ case 7 + .4byte _08079052 @ case 8 + .4byte _08079058 @ case 9 + .4byte _0807905E @ case 10 + .4byte _08079064 @ case 11 + .4byte _0807906A @ case 12 + .4byte _08079070 @ case 13 + .4byte _08079076 @ case 14 + .4byte _0807907C @ case 15 + .4byte _08079082 @ case 16 + .4byte _08079088 @ case 17 +_08079028: + bl sub_080787A0 + b _0807908C +_0807902E: + bl sub_08078958 + b _0807908C +_08079034: + bl sub_08078A64 + b _0807908C +_0807903A: + bl sub_08078C20 + b _0807908C +_08079040: + bl sub_08078CEC + b _0807908C +_08079046: + bl sub_08078D64 + b _0807908C +_0807904C: + bl sub_08078DA0 + b _0807908C +_08079052: + bl sub_08078E1C + b _0807908C +_08079058: + bl sub_08077AF8 + b _0807908C +_0807905E: + bl sub_08077B34 + b _0807908C +_08079064: + bl sub_08078EA4 + b _0807908C +_0807906A: + bl sub_08078EE0 + b _0807908C +_08079070: + bl sub_08077B90 + b _0807908C +_08079076: + bl Wait2SecondsAndCreateYesNoMenu + b _0807908C +_0807907C: + bl sub_08078A3C + b _0807908C +_08079082: + bl sub_08078F64 + b _0807908C +_08079088: + bl sub_08078F90 +_0807908C: + pop {r0} + bx r0 + thumb_func_end sub_08078FC0 + + thumb_func_start sub_08079090 +sub_08079090: @ 0x08079090 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + movs r1, #6 + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r3, _080790C4 + ldr r0, [r3] + adds r0, #0x74 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, #0 + bne _080790BC + movs r0, #1 + strb r0, [r1] + ldr r0, [r3] + adds r0, #0x76 + adds r0, r0, r2 + strb r4, [r0] +_080790BC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080790C4: .4byte 0x02031F3C + thumb_func_end sub_08079090 + + thumb_func_start sub_080790C8 +sub_080790C8: @ 0x080790C8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x5c + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r0, _08079114 + ldr r4, [r0] + adds r0, r4, #0 + adds r0, #0x76 + adds r0, r0, r7 + ldrb r0, [r0] + movs r1, #1 + str r1, [sp, #0x50] + cmp r0, #5 + bhi _080790F0 + movs r2, #0 + str r2, [sp, #0x50] +_080790F0: + movs r1, #6 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + adds r0, r4, #0 + adds r0, #0x74 + adds r3, r0, r7 + ldrb r0, [r3] + cmp r0, #2 + bne _0807910A + b _080792A0 +_0807910A: + cmp r0, #2 + bgt _08079118 + cmp r0, #1 + beq _08079126 + b _08079454 + .align 2, 0 +_08079114: .4byte 0x02031F3C +_08079118: + cmp r0, #3 + bne _0807911E + b _080792D8 +_0807911E: + cmp r0, #4 + bne _08079124 + b _0807941C +_08079124: + b _08079454 +_08079126: + movs r5, #0 + adds r1, r4, #0 + adds r1, #0x36 + adds r1, r1, r7 + ldr r0, [sp, #0x50] + lsls r0, r0, #1 + mov r8, r0 + lsls r6, r7, #1 + lsls r2, r7, #4 + str r2, [sp, #0x58] + movs r0, #0 + ldrb r1, [r1] + cmp r0, r1 + bhs _0807917C + ldr r0, _0807928C + mov sb, r0 + ldr r4, _08079290 + ldr r0, [sp, #0x50] + add r0, r8 + lsls r2, r0, #1 + movs r3, #4 +_08079150: + ldr r0, [r4] + adds r1, r5, r2 + adds r0, #0x28 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, sb + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r3 + strb r1, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, [r4] + adds r0, #0x36 + adds r0, r0, r7 + ldrb r0, [r0] + cmp r5, r0 + blo _08079150 +_0807917C: + movs r5, #0 + adds r0, r6, r7 + lsls r0, r0, #1 + adds r4, r0, #2 +_08079184: + lsls r0, r5, #0x18 + asrs r0, r0, #0x18 + adds r0, r0, r4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl ClearWindowTilemap + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #5 + bls _08079184 + ldr r1, _08079290 + mov sb, r1 + ldr r0, [r1] + ldr r6, [sp, #0x50] + add r6, r8 + lsls r3, r6, #1 + add sl, r3 + adds r0, #0x28 + add r0, sl + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r2, _0807928C + adds r0, r0, r2 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + mov r0, sb + ldr r4, [r0] + adds r4, #0x28 + add r4, sl + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0807928C + adds r0, r0, r1 + movs r1, #0x14 + strh r1, [r0, #0x2e] + ldrb r0, [r4] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + ldr r0, _0807928C + adds r2, r2, r0 + ldr r5, _08079294 + lsls r6, r6, #2 + adds r0, r6, r5 + ldrb r0, [r0] + adds r3, #1 + lsls r3, r3, #1 + adds r3, r3, r5 + ldrb r1, [r3] + adds r0, r0, r1 + asrs r0, r0, #1 + lsls r0, r0, #3 + adds r0, #0xe + strh r0, [r2, #0x32] + ldrb r0, [r4] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r2, _0807928C + adds r1, r1, r2 + adds r5, #1 + adds r6, r6, r5 + ldrb r0, [r6] + lsls r0, r0, #3 + subs r0, #0xc + strh r0, [r1, #0x36] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, _08079298 + bl StoreSpriteCallbackInData6 + mov r0, sb + ldr r1, [r0] + adds r1, #0x74 + adds r1, r1, r7 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + mov r1, sb + ldr r0, [r1] + adds r0, #0x28 + add r0, sl + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r2, _0807928C + adds r0, r0, r2 + bl sub_080A66B4 + ldr r1, _0807929C + ldr r0, [sp, #0x58] + subs r2, r0, r7 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r0, #0xf + str r0, [sp] + movs r0, #0x11 + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + movs r0, #1 + movs r3, #0 + bl CopyToBgTilemapBufferRect_ChangePalette + movs r0, #1 + bl CopyBgTilemapBufferToVram + movs r0, #0 + bl CopyBgTilemapBufferToVram + ldr r1, [sp, #0x50] + cmp r1, #0 + beq _08079284 + b _08079454 +_08079284: + bl sub_080799AC + b _08079454 + .align 2, 0 +_0807928C: .4byte 0x020205AC +_08079290: .4byte 0x02031F3C +_08079294: .4byte 0x08300A1C +_08079298: .4byte 0x080D28B5 +_0807929C: .4byte 0x082FEDCA +_080792A0: + ldr r2, _080792D0 + ldr r1, [sp, #0x50] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + add r0, sl + adds r1, r4, #0 + adds r1, #0x28 + adds r1, r1, r0 + ldrb r1, [r1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _080792D4 + cmp r1, r0 + beq _080792C8 + b _08079454 +_080792C8: + movs r0, #3 + strb r0, [r3] + b _08079454 + .align 2, 0 +_080792D0: .4byte 0x020205AC +_080792D4: .4byte 0x080D28B5 +_080792D8: + ldr r1, _08079404 + ldr r0, [sp, #0x50] + lsls r2, r0, #4 + subs r2, r2, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r0, #0xf + str r0, [sp] + movs r0, #0x11 + str r0, [sp, #4] + movs r0, #0 + mov sb, r0 + str r0, [sp, #8] + movs r0, #1 + movs r3, #0 + bl CopyToBgTilemapBufferRect_ChangePalette + movs r0, #1 + bl CopyBgTilemapBufferToVram + ldr r6, _08079408 + ldr r1, _0807940C + ldr r4, [r1] + ldr r2, [sp, #0x50] + lsls r3, r2, #1 + adds r3, r3, r2 + lsls r1, r3, #1 + mov r2, sl + adds r0, r2, r1 + adds r4, #0x28 + adds r4, r4, r0 + ldrb r0, [r4] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r6 + ldr r5, _08079410 + lsls r3, r3, #2 + adds r0, r3, r5 + ldrb r0, [r0] + adds r1, #1 + lsls r1, r1, #1 + adds r1, r1, r5 + ldrb r1, [r1] + adds r0, r0, r1 + asrs r0, r0, #1 + lsls r0, r0, #3 + adds r0, #0xe + strh r0, [r2, #0x20] + ldrb r0, [r4] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + adds r5, #1 + adds r3, r3, r5 + ldrb r0, [r3] + lsls r0, r0, #3 + subs r0, #0xc + strh r0, [r1, #0x22] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + mov r1, sb + strh r1, [r0, #0x24] + ldrb r1, [r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + mov r2, sb + strh r2, [r0, #0x26] + add r0, sp, #0x14 + ldr r1, [sp, #0x50] + mov r2, sl + bl sub_0807946C + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r4, r7, #1 + adds r5, r4, #0 + adds r5, #0xe + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r6, _08079414 + str r6, [sp] + mov r0, sb + str r0, [sp, #4] + add r1, sp, #0x14 + str r1, [sp, #8] + adds r0, r5, #0 + movs r1, #1 + movs r2, #0 + movs r3, #0 + bl AddTextPrinterParameterized3 + mov r2, sp + adds r2, #0x28 + str r2, [sp, #0x54] + adds r0, r2, #0 + ldr r1, [sp, #0x50] + mov r2, sl + bl sub_08079564 + adds r4, #0xf + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r6, [sp] + mov r0, sb + str r0, [sp, #4] + ldr r0, _08079418 + str r0, [sp, #8] + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + movs r3, #0 + bl AddTextPrinterParameterized3 + mov r1, sb + str r1, [sp] + str r1, [sp, #4] + str r6, [sp, #8] + str r1, [sp, #0xc] + ldr r2, [sp, #0x54] + str r2, [sp, #0x10] + adds r0, r4, #0 + movs r1, #1 + movs r2, #0x18 + movs r3, #0 + bl AddTextPrinterParameterized4 + adds r0, r5, #0 + bl PutWindowTilemap + adds r0, r5, #0 + movs r1, #3 + bl CopyWindowToVram + adds r0, r4, #0 + bl PutWindowTilemap + adds r0, r4, #0 + movs r1, #3 + bl CopyWindowToVram + ldr r0, _0807940C + ldr r1, [r0] + b _0807944A + .align 2, 0 +_08079404: .4byte 0x082FEBCC +_08079408: .4byte 0x020205AC +_0807940C: .4byte 0x02031F3C +_08079410: .4byte 0x08300A1C +_08079414: .4byte 0x08300C00 +_08079418: .4byte 0x08300A9B +_0807941C: + ldr r0, _08079464 + lsls r1, r7, #1 + adds r4, r1, r0 + ldrb r2, [r4] + adds r2, #4 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, #1 + adds r1, r1, r0 + ldrb r3, [r1] + adds r3, #1 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldrb r0, [r4] + str r0, [sp] + ldrb r0, [r1] + str r0, [sp, #4] + adds r0, r7, #0 + mov r1, sl + bl sub_08079740 + ldr r2, _08079468 + ldr r1, [r2] +_0807944A: + adds r1, #0x74 + adds r1, r1, r7 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_08079454: + add sp, #0x5c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08079464: .4byte 0x08300D40 +_08079468: .4byte 0x02031F3C + thumb_func_end sub_080790C8 + + thumb_func_start sub_0807946C +sub_0807946C: @ 0x0807946C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + adds r5, r0, #0 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + cmp r7, #0 + bne _08079494 + movs r0, #0x64 + adds r4, r6, #0 + muls r4, r0, r4 + ldr r0, _08079490 + b _0807949C + .align 2, 0 +_08079490: .4byte 0x02024190 +_08079494: + movs r0, #0x64 + adds r4, r6, #0 + muls r4, r0, r4 + ldr r0, _0807952C +_0807949C: + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #2 + mov r2, sp + bl GetMonData + adds r0, r5, #0 + mov r1, sp + bl StringCopy10 + adds r0, r4, #0 + bl GetMonGender + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + adds r0, r4, #0 + movs r1, #0x38 + bl GetMonData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldr r0, _08079530 + mov sl, r0 + ldr r4, [r0] + adds r0, r6, #0 + movs r1, #6 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r7, #1 + adds r1, r1, r7 + lsls r1, r1, #1 + adds r6, r0, r1 + adds r4, #0x51 + adds r4, r4, r6 + ldrb r0, [r4] + cmp r0, #0 + bne _080794F6 + adds r0, r5, #0 + mov r1, r8 + bl AppendGenderSymbol +_080794F6: + ldr r1, _08079534 + adds r0, r5, #0 + bl StringAppend + mov r1, sl + ldr r0, [r1] + adds r0, #0x51 + adds r0, r0, r6 + ldrb r0, [r0] + cmp r0, #0 + bne _0807953C + ldr r1, _08079538 + adds r0, r5, #0 + bl StringAppend + mov r0, sp + mov r1, sb + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + adds r0, r5, #0 + mov r1, sp + bl StringAppend + b _08079544 + .align 2, 0 +_0807952C: .4byte 0x020243E8 +_08079530: .4byte 0x02031F3C +_08079534: .4byte 0x08300AA0 +_08079538: .4byte 0x08300AA2 +_0807953C: + ldr r1, _08079560 + adds r0, r5, #0 + bl StringAppend +_08079544: + adds r0, r5, #0 + bl StringLength + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08079560: .4byte 0x08300AA5 + thumb_func_end sub_0807946C + + thumb_func_start sub_08079564 +sub_08079564: @ 0x08079564 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #8 + adds r6, r0, #0 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r0, _080795AC + ldr r1, [r0] + lsls r0, r7, #1 + adds r0, r0, r7 + lsls r0, r0, #1 + adds r0, r2, r0 + adds r1, #0x51 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0 + bne _0807961C + movs r4, #0 + movs r0, #0x64 + adds r5, r2, #0 + muls r5, r0, r5 + ldr r0, _080795B0 + mov sb, r0 + ldr r2, _080795B4 + mov r8, r2 +_0807959E: + cmp r7, #0 + bne _080795B8 + adds r1, r4, #0 + adds r1, #0xd + mov r2, sb + b _080795BE + .align 2, 0 +_080795AC: .4byte 0x02031F3C +_080795B0: .4byte 0x02024190 +_080795B4: .4byte 0x020243E8 +_080795B8: + adds r1, r4, #0 + adds r1, #0xd + mov r2, r8 +_080795BE: + adds r0, r5, r2 + movs r2, #0 + bl GetMonData + lsls r1, r4, #1 + add r1, sp + strh r0, [r1] + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #3 + bls _0807959E + ldr r1, _08079610 + adds r0, r6, #0 + bl StringCopy + movs r4, #0 +_080795E0: + lsls r0, r4, #1 + mov r2, sp + adds r1, r2, r0 + ldrh r0, [r1] + cmp r0, #0 + beq _080795FA + adds r1, r0, #0 + lsls r1, r1, #3 + ldr r0, _08079614 + adds r1, r1, r0 + adds r0, r6, #0 + bl StringAppend +_080795FA: + adds r0, r6, #0 + ldr r1, _08079618 + bl StringAppend + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #3 + bls _080795E0 + b _0807962C + .align 2, 0 +_08079610: .4byte 0x08300A8A +_08079614: .4byte 0x082EACC4 +_08079618: .4byte 0x08300A9E +_0807961C: + ldr r1, _0807963C + adds r0, r6, #0 + bl StringCopy + ldr r1, _08079640 + adds r0, r6, #0 + bl StringAppend +_0807962C: + add sp, #8 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0807963C: .4byte 0x08300A8A +_08079640: .4byte 0x08300AA9 + thumb_func_end sub_08079564 + + thumb_func_start sub_08079644 +sub_08079644: @ 0x08079644 + push {r4, lr} + sub sp, #0xc + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + adds r1, #2 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + adds r4, r4, r1 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _0807968C + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r2, [sp, #8] + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + movs r3, #0 + bl AddTextPrinterParameterized3 + adds r0, r4, #0 + bl PutWindowTilemap + adds r0, r4, #0 + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807968C: .4byte 0x08300C00 + thumb_func_end sub_08079644 + + thumb_func_start sub_08079690 +sub_08079690: @ 0x08079690 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x34 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _08079734 + mov sl, r0 + cmp r5, #0 + bne _080796AC + ldr r1, _08079738 + mov sl, r1 +_080796AC: + movs r6, #0 + ldr r1, _0807973C + ldr r0, [r1] + adds r0, #0x36 + adds r0, r0, r5 + ldrb r0, [r0] + cmp r6, r0 + bhs _08079724 + add r7, sp, #0x14 + mov r8, r1 + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #1 + mov sb, r0 +_080796C8: + movs r0, #0x64 + adds r4, r6, #0 + muls r4, r0, r4 + add r4, sl + adds r0, r4, #0 + movs r1, #2 + mov r2, sp + bl GetMonData + adds r0, r7, #0 + mov r1, sp + bl StringCopy10 + adds r0, r4, #0 + bl GetMonGender + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + mov r3, r8 + ldr r0, [r3] + mov r3, sb + adds r1, r6, r3 + adds r0, #0x51 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _08079706 + adds r0, r7, #0 + adds r1, r2, #0 + bl AppendGenderSymbol +_08079706: + adds r0, r5, #0 + adds r1, r6, #0 + adds r2, r7, #0 + bl sub_08079644 + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + mov r1, r8 + ldr r0, [r1] + adds r0, #0x36 + adds r0, r0, r5 + ldrb r0, [r0] + cmp r6, r0 + blo _080796C8 +_08079724: + add sp, #0x34 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08079734: .4byte 0x020243E8 +_08079738: .4byte 0x02024190 +_0807973C: .4byte 0x02031F3C + thumb_func_end sub_08079690 + + thumb_func_start sub_08079740 +sub_08079740: @ 0x08079740 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + ldr r4, [sp, #0x30] + ldr r5, [sp, #0x34] + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sb, r2 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r3, [sp, #0xc] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r1, _0807979C + movs r0, #6 + str r0, [sp] + movs r0, #3 + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + movs r0, #1 + adds r2, r4, #0 + adds r3, r5, #0 + bl CopyToBgTilemapBufferRect_ChangePalette + movs r0, #1 + bl CopyBgTilemapBufferToVram + cmp r7, #0 + bne _080797A4 + movs r0, #0x64 + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + ldr r1, _080797A0 + b _080797AE + .align 2, 0 +_0807979C: .4byte 0x082FFFC8 +_080797A0: .4byte 0x02024190 +_080797A4: + movs r0, #0x64 + mov r3, r8 + muls r3, r0, r3 + adds r0, r3, #0 + ldr r1, _08079824 +_080797AE: + adds r0, r0, r1 + movs r1, #0x38 + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _08079828 + mov sl, r0 + ldr r4, [r0] + lsls r0, r7, #1 + adds r0, r0, r7 + lsls r0, r0, #1 + add r0, r8 + adds r1, r4, #0 + adds r1, #0x51 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0 + bne _0807982C + adds r0, r6, #0 + movs r1, #0xa + bl __udivsi3 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, [sp, #0xc] + lsls r2, r1, #5 + cmp r5, #0 + beq _080797FE + mov r3, sb + adds r0, r3, r2 + lsls r0, r0, #1 + movs r3, #0x8f + lsls r3, r3, #4 + adds r1, r4, r3 + adds r1, r1, r0 + adds r0, r5, #0 + adds r0, #0x60 + strh r0, [r1] +_080797FE: + mov r0, sl + ldr r4, [r0] + mov r1, sb + adds r0, r1, r2 + adds r0, #1 + lsls r0, r0, #1 + movs r3, #0x8f + lsls r3, r3, #4 + adds r4, r4, r3 + adds r4, r4, r0 + adds r0, r6, #0 + movs r1, #0xa + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, #0x70 + strh r0, [r4] + b _0807986A + .align 2, 0 +_08079824: .4byte 0x020243E8 +_08079828: .4byte 0x02031F3C +_0807982C: + ldr r1, [sp, #0xc] + lsls r0, r1, #5 + mov r1, sb + adds r3, r1, r0 + adds r1, r3, #0 + subs r1, #0x20 + lsls r1, r1, #1 + movs r0, #0x8f + lsls r0, r0, #4 + adds r2, r4, r0 + adds r1, r2, r1 + adds r0, r3, #0 + subs r0, #0x21 + lsls r0, r0, #1 + adds r0, r2, r0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, r3, #0 + subs r1, #0x1f + lsls r1, r1, #1 + adds r1, r2, r1 + adds r0, r3, #0 + subs r0, #0x24 + lsls r0, r0, #1 + adds r2, r2, r0 + ldrh r2, [r2] + movs r3, #0x80 + lsls r3, r3, #3 + adds r0, r3, #0 + orrs r0, r2 + strh r0, [r1] +_0807986A: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08079740 + + thumb_func_start sub_0807987C +sub_0807987C: @ 0x0807987C + push {r4, r5, r6, r7, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r7, #0 + ldr r0, _080798D4 + ldr r0, [r0] + adds r0, #0x36 + adds r0, r0, r6 + ldrb r0, [r0] + cmp r7, r0 + bge _080798CC + lsls r0, r6, #1 + adds r0, r0, r6 + ldr r1, _080798D8 + lsls r0, r0, #2 + adds r5, r0, r1 + ldr r1, _080798DC + adds r4, r0, r1 +_080798A2: + lsls r1, r7, #0x18 + lsrs r1, r1, #0x18 + ldrb r2, [r5] + ldrb r3, [r5, #1] + ldrb r0, [r4] + str r0, [sp] + ldrb r0, [r4, #1] + str r0, [sp, #4] + adds r0, r6, #0 + bl sub_08079740 + adds r5, #2 + adds r4, #2 + adds r7, #1 + ldr r0, _080798D4 + ldr r0, [r0] + adds r0, #0x36 + adds r0, r0, r6 + ldrb r0, [r0] + cmp r7, r0 + blt _080798A2 +_080798CC: + add sp, #8 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080798D4: .4byte 0x02031F3C +_080798D8: .4byte 0x08300A36 +_080798DC: .4byte 0x08300A4E + thumb_func_end sub_0807987C + + thumb_func_start sub_080798E0 +sub_080798E0: @ 0x080798E0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov ip, r0 + movs r7, #0 + ldr r3, _080799A0 + ldr r0, [r3] + adds r0, #0x36 + add r0, ip + ldrb r0, [r0] + cmp r7, r0 + bge _08079992 + ldr r6, _080799A4 + mov sb, r3 + mov r1, ip + lsls r0, r1, #1 + add r0, ip + lsls r2, r0, #1 + mov sl, r2 + ldr r1, _080799A8 + movs r2, #0 + mov r8, r2 + lsls r0, r0, #2 + adds r5, r0, r1 +_08079918: + mov r1, sb + ldr r0, [r1] + mov r2, sl + adds r4, r7, r2 + adds r0, #0x28 + adds r0, r0, r4 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + adds r1, #0x3e + ldrb r2, [r1] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + mov r0, sb + ldr r3, [r0] + adds r2, r3, #0 + adds r2, #0x28 + adds r2, r2, r4 + ldrb r0, [r2] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrb r0, [r5] + lsls r0, r0, #3 + adds r0, #0xe + strh r0, [r1, #0x20] + ldrb r0, [r2] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrb r0, [r5, #1] + lsls r0, r0, #3 + subs r0, #0xc + strh r0, [r1, #0x22] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + mov r1, r8 + strh r1, [r0, #0x24] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + mov r2, r8 + strh r2, [r0, #0x26] + adds r5, #2 + adds r7, #1 + adds r3, #0x36 + add r3, ip + ldrb r3, [r3] + cmp r7, r3 + blt _08079918 +_08079992: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080799A0: .4byte 0x02031F3C +_080799A4: .4byte 0x020205AC +_080799A8: .4byte 0x08300A1C + thumb_func_end sub_080798E0 + + thumb_func_start sub_080799AC +sub_080799AC: @ 0x080799AC + push {lr} + movs r0, #1 + bl rbox_fill_rectangle + movs r0, #1 + bl sub_08079690 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080799AC + + thumb_func_start sub_080799C0 +sub_080799C0: @ 0x080799C0 + push {r4, r5, r6, lr} + sub sp, #0xc + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _08079A28 + lsls r2, r4, #4 + subs r2, r2, r4 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r0, #0xf + str r0, [sp] + movs r0, #0x11 + str r0, [sp, #4] + movs r6, #0 + str r6, [sp, #8] + movs r0, #1 + movs r3, #0 + bl CopyToBgTilemapBufferRect_ChangePalette + movs r0, #1 + bl CopyBgTilemapBufferToVram + adds r0, r4, #0 + bl sub_0807987C + adds r0, r4, #0 + bl sub_08079690 + adds r0, r4, #0 + bl sub_080798E0 + ldr r0, _08079A2C + ldr r0, [r0, #4] + ldr r5, _08079A30 + ldr r1, [r5] + adds r1, #0x72 + ldrh r1, [r1] + lsls r1, r1, #5 + ldr r2, _08079A34 + adds r1, r1, r2 + movs r2, #0x18 + bl sub_08079D3C + ldr r0, [r5] + adds r0, #0x74 + adds r0, r0, r4 + strb r6, [r0] + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08079A28: .4byte 0x082FEDCA +_08079A2C: .4byte 0x08300AFC +_08079A30: .4byte 0x02031F3C +_08079A34: .4byte 0x06010000 + thumb_func_end sub_080799C0 + + thumb_func_start sub_08079A38 +sub_08079A38: @ 0x08079A38 + push {lr} + sub sp, #8 + movs r0, #0x1e + str r0, [sp] + movs r0, #0x14 + str r0, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, #0 + bl CopyBgTilemapBufferToVram + add sp, #8 + pop {r0} + bx r0 + thumb_func_end sub_08079A38 + + thumb_func_start sub_08079A5C +sub_08079A5C: @ 0x08079A5C + push {lr} + sub sp, #8 + movs r0, #0x1e + str r0, [sp] + movs r0, #0x14 + str r0, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, #0 + bl CopyBgTilemapBufferToVram + add sp, #8 + pop {r0} + bx r0 + thumb_func_end sub_08079A5C + + thumb_func_start sub_08079A80 +sub_08079A80: @ 0x08079A80 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + movs r3, #0 + ldr r4, _08079AC0 + mov ip, r4 + movs r7, #0x8d + lsls r7, r7, #4 +_08079A94: + mov r1, ip + ldr r0, [r1] + lsls r1, r3, #3 + adds r2, r0, r1 + adds r0, r2, r7 + ldrb r0, [r0] + cmp r0, #0 + bne _08079AC8 + ldr r3, _08079AC4 + adds r0, r2, r3 + strh r5, [r0] + adds r3, #2 + adds r0, r2, r3 + strb r6, [r0] + ldr r0, [r4] + adds r0, r0, r1 + movs r1, #0x8d + lsls r1, r1, #4 + adds r0, r0, r1 + movs r1, #1 + strb r1, [r0] + b _08079ACE + .align 2, 0 +_08079AC0: .4byte 0x02031F3C +_08079AC4: .4byte 0x000008D2 +_08079AC8: + adds r3, #1 + cmp r3, #3 + ble _08079A94 +_08079ACE: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08079A80 + + thumb_func_start sub_08079AD4 +sub_08079AD4: @ 0x08079AD4 + push {lr} + movs r3, #0 + ldr r0, _08079AF8 + ldr r0, [r0] + movs r2, #0x8d + lsls r2, r2, #4 + adds r1, r0, r2 + movs r2, #3 +_08079AE4: + ldrb r0, [r1] + adds r3, r3, r0 + adds r1, #8 + subs r2, #1 + cmp r2, #0 + bge _08079AE4 + adds r0, r3, #0 + pop {r1} + bx r1 + .align 2, 0 +_08079AF8: .4byte 0x02031F3C + thumb_func_end sub_08079AD4 + + thumb_func_start sub_08079AFC +sub_08079AFC: @ 0x08079AFC + push {r4, r5, lr} + movs r4, #0 + ldr r3, _08079B28 +_08079B02: + ldr r0, [r3] + lsls r1, r4, #3 + adds r2, r0, r1 + movs r5, #0x8d + lsls r5, r5, #4 + adds r0, r2, r5 + ldrb r0, [r0] + adds r5, r1, #0 + cmp r0, #0 + beq _08079BC4 + ldr r0, _08079B2C + adds r1, r2, r0 + ldrh r0, [r1] + cmp r0, #0 + beq _08079B30 + subs r0, #1 + strh r0, [r1] + b _08079BC4 + .align 2, 0 +_08079B28: .4byte 0x02031F3C +_08079B2C: .4byte 0x000008D2 +_08079B30: + ldr r1, _08079B44 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #8 + bhi _08079BB2 + lsls r0, r0, #2 + ldr r1, _08079B48 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08079B44: .4byte 0x000008D4 +_08079B48: .4byte 0x08079B4C +_08079B4C: @ jump table + .4byte _08079B70 @ case 0 + .4byte _08079B84 @ case 1 + .4byte _08079B8C @ case 2 + .4byte _08079B94 @ case 3 + .4byte _08079B94 @ case 4 + .4byte _08079B94 @ case 5 + .4byte _08079B9C @ case 6 + .4byte _08079BA4 @ case 7 + .4byte _08079BAC @ case 8 +_08079B70: + ldr r0, _08079B80 + ldr r0, [r0] + adds r0, #0x80 + movs r1, #0x14 + bl sub_08076B78 + b _08079BB2 + .align 2, 0 +_08079B80: .4byte 0x02031F3C +_08079B84: + movs r0, #0 + bl sub_08079BD4 + b _08079BB2 +_08079B8C: + movs r0, #2 + bl sub_08079BD4 + b _08079BB2 +_08079B94: + movs r0, #3 + bl sub_08079BD4 + b _08079BB2 +_08079B9C: + movs r0, #6 + bl sub_08079BD4 + b _08079BB2 +_08079BA4: + movs r0, #7 + bl sub_08079BD4 + b _08079BB2 +_08079BAC: + movs r0, #8 + bl sub_08079BD4 +_08079BB2: + ldr r0, _08079BD0 + ldr r1, [r0] + adds r1, r1, r5 + movs r2, #0x8d + lsls r2, r2, #4 + adds r1, r1, r2 + movs r2, #0 + strb r2, [r1] + adds r3, r0, #0 +_08079BC4: + adds r4, #1 + cmp r4, #3 + ble _08079B02 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08079BD0: .4byte 0x02031F3C + thumb_func_end sub_08079AFC + + thumb_func_start sub_08079BD4 +sub_08079BD4: @ 0x08079BD4 + push {r4, lr} + sub sp, #0xc + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r0, _08079C24 + lsls r4, r4, #2 + adds r4, r4, r0 + ldr r2, [r4] + movs r0, #2 + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + movs r1, #1 + movs r3, #2 + bl AddTextPrinterParameterized + movs r0, #0 + movs r1, #0x14 + movs r2, #0xc + bl DrawTextBorderOuter + movs r0, #0 + bl PutWindowTilemap + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08079C24: .4byte 0x08300BDC + thumb_func_end sub_08079BD4 + + thumb_func_start sub_08079C28 +sub_08079C28: @ 0x08079C28 + push {r4, lr} + sub sp, #8 + ldr r0, _08079C78 + ldr r1, [r0] + adds r3, r1, #0 + adds r3, #0xa8 + ldrb r1, [r3] + adds r4, r0, #0 + cmp r1, #0xc + bhi _08079C64 + ldr r1, _08079C7C + ldrb r0, [r3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [sp] + ldr r0, _08079C80 + ldr r2, [sp, #4] + ands r2, r0 + movs r0, #0x80 + lsls r0, r0, #1 + orrs r2, r0 + str r2, [sp, #4] + ldrb r1, [r3] + adds r1, #0xc8 + lsls r1, r1, #0x10 + ldr r0, _08079C84 + ands r0, r2 + orrs r0, r1 + str r0, [sp, #4] +_08079C64: + ldr r0, [r4] + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0x10 + bhi _08079D30 + lsls r0, r0, #2 + ldr r1, _08079C88 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08079C78: .4byte 0x02031F3C +_08079C7C: .4byte 0x02031E2C +_08079C80: .4byte 0xFFFF0000 +_08079C84: .4byte 0x0000FFFF +_08079C88: .4byte 0x08079C8C +_08079C8C: @ jump table + .4byte _08079CD0 @ case 0 + .4byte _08079CD0 @ case 1 + .4byte _08079CD0 @ case 2 + .4byte _08079CD0 @ case 3 + .4byte _08079CD0 @ case 4 + .4byte _08079CD0 @ case 5 + .4byte _08079CD0 @ case 6 + .4byte _08079CD4 @ case 7 + .4byte _08079CEC @ case 8 + .4byte _08079CEC @ case 9 + .4byte _08079CEC @ case 10 + .4byte _08079CEC @ case 11 + .4byte _08079CEC @ case 12 + .4byte _08079CF0 @ case 13 + .4byte _08079CFC @ case 14 + .4byte _08079D08 @ case 15 + .4byte _08079D24 @ case 16 +_08079CD0: + mov r0, sp + b _08079D0A +_08079CD4: + mov r0, sp + bl LoadSpriteSheet + ldr r1, _08079CE8 + ldr r1, [r1] + adds r2, r1, #0 + adds r2, #0x72 + strh r0, [r2] + b _08079D12 + .align 2, 0 +_08079CE8: .4byte 0x02031F3C +_08079CEC: + mov r0, sp + b _08079D0A +_08079CF0: + ldr r0, _08079CF8 + bl LoadSpritePalette + b _08079D0E + .align 2, 0 +_08079CF8: .4byte 0x083008DC +_08079CFC: + ldr r0, _08079D04 + bl LoadSpritePalette + b _08079D0E + .align 2, 0 +_08079D04: .4byte 0x0830083C +_08079D08: + ldr r0, _08079D1C +_08079D0A: + bl LoadSpriteSheet +_08079D0E: + ldr r0, _08079D20 + ldr r1, [r0] +_08079D12: + adds r1, #0xa8 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _08079D30 + .align 2, 0 +_08079D1C: .4byte 0x08300834 +_08079D20: .4byte 0x02031F3C +_08079D24: + ldr r0, [r4] + adds r0, #0xa8 + movs r1, #0 + strb r1, [r0] + movs r0, #1 + b _08079D32 +_08079D30: + movs r0, #0 +_08079D32: + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08079C28 + + thumb_func_start sub_08079D3C +sub_08079D3C: @ 0x08079D3C + push {r4, r5, r6, lr} + sub sp, #0x24 + adds r5, r0, #0 + adds r6, r1, #0 + lsls r2, r2, #0x18 + lsrs r4, r2, #0x18 + add r0, sp, #4 + movs r1, #0 + adds r2, r4, #0 + bl StringFill + movs r2, #0 + cmp r2, r4 + bge _08079D7C + ldrb r1, [r5] + adds r0, r1, #0 + cmp r0, #0xff + beq _08079D7C + add r0, sp, #4 +_08079D62: + strb r1, [r0] + adds r2, #1 + cmp r2, r4 + bge _08079D7C + adds r0, r5, r2 + ldrb r1, [r0] + adds r0, r1, #0 + cmp r0, #0xff + beq _08079D7C + mov r0, sp + adds r0, r0, r2 + adds r0, #4 + b _08079D62 +_08079D7C: + ldr r0, _08079D94 + str r0, [sp] + add r0, sp, #4 + adds r1, r6, #0 + movs r2, #0 + movs r3, #0 + bl sub_080C66A4 + add sp, #0x24 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08079D94: .4byte 0x0201C000 + thumb_func_end sub_08079D3C + + thumb_func_start sub_08079D98 +sub_08079D98: @ 0x08079D98 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + cmp r0, #0 + beq _08079DB0 + cmp r0, #1 + beq _08079E44 + b _08079ED0 +_08079DB0: + movs r7, #0 + ldr r1, _08079DF0 + ldr r0, [r1] + adds r0, #0x36 + ldrb r0, [r0] + cmp r7, r0 + blt _08079DC0 + b _08079ED0 +_08079DC0: + adds r6, r1, #0 + movs r5, #0 + mov sb, r5 +_08079DC6: + movs r0, #0x64 + adds r1, r7, #0 + muls r1, r0, r1 + ldr r0, _08079DF4 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + adds r1, r0, #0 + cmp r1, #1 + bne _08079DF8 + ldr r0, [r6] + adds r0, #0x45 + adds r0, r0, r5 + mov r2, sb + strb r2, [r0] + ldr r0, [r6] + adds r0, #0x51 + adds r0, r0, r5 + b _08079E28 + .align 2, 0 +_08079DF0: .4byte 0x02031F3C +_08079DF4: .4byte 0x02024190 +_08079DF8: + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + adds r1, r0, #0 + cmp r1, #0 + bne _08079E16 + ldr r0, [r6] + adds r0, #0x45 + adds r0, r0, r5 + strb r1, [r0] + ldr r0, [r6] + adds r0, #0x51 + adds r0, r0, r5 + b _08079E28 +_08079E16: + ldr r0, [r6] + adds r0, #0x45 + adds r0, r0, r5 + movs r1, #1 + strb r1, [r0] + ldr r0, [r6] + adds r0, #0x51 + adds r0, r0, r5 + mov r1, sb +_08079E28: + strb r1, [r0] + ldr r0, _08079E40 + adds r5, #1 + adds r7, #1 + ldr r0, [r0] + adds r0, #0x36 + add r0, r8 + ldrb r0, [r0] + cmp r7, r0 + blt _08079DC6 + b _08079ED0 + .align 2, 0 +_08079E40: .4byte 0x02031F3C +_08079E44: + movs r7, #0 + ldr r1, _08079E84 + ldr r0, [r1] + adds r0, #0x37 + ldrb r0, [r0] + cmp r7, r0 + bge _08079ED0 + adds r6, r1, #0 + movs r5, #6 + movs r2, #0 + mov sb, r2 +_08079E5A: + movs r0, #0x64 + adds r1, r7, #0 + muls r1, r0, r1 + ldr r0, _08079E88 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + adds r1, r0, #0 + cmp r1, #1 + bne _08079E8C + ldr r0, [r6] + adds r0, #0x45 + adds r0, r0, r5 + mov r2, sb + strb r2, [r0] + ldr r0, [r6] + adds r0, #0x51 + adds r0, r0, r5 + b _08079EBC + .align 2, 0 +_08079E84: .4byte 0x02031F3C +_08079E88: .4byte 0x020243E8 +_08079E8C: + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + adds r1, r0, #0 + cmp r1, #0 + bne _08079EAA + ldr r0, [r6] + adds r0, #0x45 + adds r0, r0, r5 + strb r1, [r0] + ldr r0, [r6] + adds r0, #0x51 + adds r0, r0, r5 + b _08079EBC +_08079EAA: + ldr r0, [r6] + adds r0, #0x45 + adds r0, r0, r5 + movs r1, #1 + strb r1, [r0] + ldr r0, [r6] + adds r0, #0x51 + adds r0, r0, r5 + mov r1, sb +_08079EBC: + strb r1, [r0] + ldr r0, _08079EDC + adds r5, #1 + adds r7, #1 + ldr r0, [r0] + adds r0, #0x36 + add r0, r8 + ldrb r0, [r0] + cmp r7, r0 + blt _08079E5A +_08079ED0: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08079EDC: .4byte 0x02031F3C + thumb_func_end sub_08079D98 + + thumb_func_start sub_08079EE0 +sub_08079EE0: @ 0x08079EE0 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _08079EF0 + cmp r0, #1 + beq _08079F50 + b _08079FA4 +_08079EF0: + movs r6, #0 + ldr r1, _08079F48 + ldr r0, [r1] + adds r0, #0x36 + ldrb r0, [r0] + cmp r6, r0 + bhs _08079FA4 + adds r7, r1, #0 +_08079F00: + movs r0, #0x64 + adds r4, r6, #0 + muls r4, r0, r4 + ldr r0, _08079F4C + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r4, #0 + movs r1, #0x3a + bl GetMonData + adds r1, r0, #0 + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl GetHPBarLevel + ldr r1, [r7] + adds r1, #0x5d + adds r1, r1, r6 + strb r0, [r1] + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r0, [r7] + adds r0, #0x36 + ldrb r0, [r0] + cmp r6, r0 + blo _08079F00 + b _08079FA4 + .align 2, 0 +_08079F48: .4byte 0x02031F3C +_08079F4C: .4byte 0x02024190 +_08079F50: + movs r6, #0 + ldr r1, _08079FAC + ldr r0, [r1] + adds r0, #0x37 + ldrb r0, [r0] + cmp r6, r0 + bhs _08079FA4 + adds r7, r1, #0 +_08079F60: + movs r0, #0x64 + adds r4, r6, #0 + muls r4, r0, r4 + ldr r0, _08079FB0 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r4, #0 + movs r1, #0x3a + bl GetMonData + adds r1, r0, #0 + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl GetHPBarLevel + ldr r1, [r7] + adds r1, #0x63 + adds r1, r1, r6 + strb r0, [r1] + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r0, [r7] + adds r0, #0x37 + ldrb r0, [r0] + cmp r6, r0 + blo _08079F60 +_08079FA4: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08079FAC: .4byte 0x02031F3C +_08079FB0: .4byte 0x020243E8 + thumb_func_end sub_08079EE0 + + thumb_func_start sub_08079FB4 +sub_08079FB4: @ 0x08079FB4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r5, #0 +_08079FBC: + movs r4, #0 + ldr r2, _0807A020 + ldr r0, [r2] + adds r0, #0x36 + adds r0, r0, r5 + adds r1, r5, #1 + mov r8, r1 + ldrb r0, [r0] + cmp r4, r0 + bge _0807A00E + adds r6, r2, #0 + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r7, r0, #1 +_08079FD8: + ldr r2, [r6] + adds r3, r4, r7 + adds r0, r2, #0 + adds r0, #0x28 + adds r0, r0, r3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0807A024 + adds r0, r0, r1 + adds r2, #0x5d + adds r2, r2, r3 + ldrb r2, [r2] + movs r1, #4 + subs r1, r1, r2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl sub_080D2B68 + adds r4, #1 + ldr r0, [r6] + adds r0, #0x36 + adds r0, r0, r5 + ldrb r0, [r0] + cmp r4, r0 + blt _08079FD8 +_0807A00E: + mov r5, r8 + cmp r5, #1 + ble _08079FBC + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0807A020: .4byte 0x02031F3C +_0807A024: .4byte 0x020205AC + thumb_func_end sub_08079FB4 + + thumb_func_start sub_0807A028 +sub_0807A028: @ 0x0807A028 + push {r4, r5, lr} + movs r2, #0 + ldr r5, _0807A058 + ldr r4, _0807A05C + ldr r3, _0807A060 +_0807A032: + ldr r0, [r5] + adds r0, r0, r4 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, #0 + bne _0807A04C + ldr r0, [r3] + adds r0, #0xa9 + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _0807A04C + strb r0, [r1] +_0807A04C: + adds r2, #1 + cmp r2, #0xa + ble _0807A032 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0807A058: .4byte 0x03005AEC +_0807A05C: .4byte 0x000031A8 +_0807A060: .4byte 0x02031F3C + thumb_func_end sub_0807A028 + + thumb_func_start sub_0807A064 +sub_0807A064: @ 0x0807A064 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x30 + mov r8, r0 + adds r7, r1, #0 + mov sb, r2 + movs r5, #0 + cmp r5, r7 + bge _0807A09E + mov r6, sp +_0807A07C: + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + add r4, r8 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + str r0, [r6, #0x18] + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + stm r6!, {r0} + adds r5, #1 + cmp r5, r7 + blt _0807A07C +_0807A09E: + bl IsNationalPokedexEnabled + mov r1, sb + lsls r4, r1, #2 + cmp r0, #0 + bne _0807A0CC + add r0, sp, #0x18 + adds r0, r0, r4 + ldr r1, [r0] + movs r0, #0xce + lsls r0, r0, #1 + cmp r1, r0 + bne _0807A0BC + movs r0, #3 + b _0807A188 +_0807A0BC: + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + bl IsSpeciesInHoennDex + cmp r0, #0 + bne _0807A0CC + movs r0, #2 + b _0807A188 +_0807A0CC: + bl GetMultiplayerId + movs r1, #1 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _0807A10C + adds r1, r1, r0 + ldrb r0, [r1] + subs r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bls _0807A11C + ldrb r1, [r1, #0x10] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _0807A11C + add r0, sp, #0x18 + adds r0, r0, r4 + ldr r1, [r0] + movs r0, #0xce + lsls r0, r0, #1 + cmp r1, r0 + bne _0807A110 + movs r0, #5 + b _0807A188 + .align 2, 0 +_0807A10C: .4byte 0x020226A0 +_0807A110: + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + bl IsSpeciesInHoennDex + cmp r0, #0 + beq _0807A142 +_0807A11C: + mov r1, sp + adds r0, r1, r4 + ldr r1, [r0] + movs r0, #0xcd + lsls r0, r0, #1 + cmp r1, r0 + beq _0807A12E + cmp r1, #0x97 + bne _0807A146 +_0807A12E: + movs r0, #0x64 + mov r1, sb + muls r1, r0, r1 + adds r0, r1, #0 + add r0, r8 + movs r1, #0x50 + bl GetMonData + cmp r0, #0 + bne _0807A146 +_0807A142: + movs r0, #4 + b _0807A188 +_0807A146: + cmp r7, #0 + ble _0807A164 + movs r3, #0xce + lsls r3, r3, #1 + movs r2, #0 + add r1, sp, #0x18 + adds r5, r7, #0 +_0807A154: + ldr r0, [r1] + cmp r0, r3 + bne _0807A15C + str r2, [r1] +_0807A15C: + adds r1, #4 + subs r5, #1 + cmp r5, #0 + bne _0807A154 +_0807A164: + movs r2, #0 + movs r5, #0 + cmp r2, r7 + bge _0807A17E + add r1, sp, #0x18 +_0807A16E: + cmp r5, sb + beq _0807A176 + ldr r0, [r1] + adds r2, r2, r0 +_0807A176: + adds r1, #4 + adds r5, #1 + cmp r5, r7 + blt _0807A16E +_0807A17E: + cmp r2, #0 + bne _0807A186 + movs r0, #1 + b _0807A188 +_0807A186: + movs r0, #0 +_0807A188: + add sp, #0x30 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0807A064 + + thumb_func_start sub_0807A198 +sub_0807A198: @ 0x0807A198 + push {r4, r5, r6, r7, lr} + ldr r0, _0807A218 + ldrb r0, [r0] + cmp r0, #0 + beq _0807A224 + movs r4, #0 + bl GetMultiplayerId + ldr r5, _0807A21C + movs r7, #1 + eors r0, r7 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrb r1, [r1] + subs r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #2 + bls _0807A224 + subs r0, r1, #4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bhi _0807A1D2 + movs r4, #2 +_0807A1D2: + cmp r4, #0 + ble _0807A224 + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrb r1, [r1, #0x10] + movs r6, #0xf0 + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _0807A220 + cmp r4, #2 + bne _0807A224 + bl GetMultiplayerId + eors r0, r7 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldrb r1, [r1, #0x10] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + bne _0807A224 + movs r0, #2 + b _0807A226 + .align 2, 0 +_0807A218: .4byte 0x030031C4 +_0807A21C: .4byte 0x020226A0 +_0807A220: + movs r0, #1 + b _0807A226 +_0807A224: + movs r0, #0 +_0807A226: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_0807A198 + + thumb_func_start IsDeoxysOrMewUntradable +IsDeoxysOrMewUntradable: @ 0x0807A22C + push {lr} + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0xcd + lsls r0, r0, #1 + cmp r2, r0 + beq _0807A242 + cmp r2, #0x97 + bne _0807A24A +_0807A242: + cmp r1, #0 + bne _0807A24A + movs r0, #1 + b _0807A24C +_0807A24A: + movs r0, #0 +_0807A24C: + pop {r1} + bx r1 + thumb_func_end IsDeoxysOrMewUntradable + + thumb_func_start sub_0807A250 +sub_0807A250: @ 0x0807A250 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r4, [sp, #0x20] + ldr r5, [sp, #0x24] + ldr r6, [sp, #0x28] + lsls r2, r2, #0x10 + lsrs r7, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + mov r8, r3 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r2, r0, #0x17 + lsrs r2, r2, #0x1f + mov sb, r2 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x1f + lsls r0, r1, #0x17 + lsrs r0, r0, #0x1f + mov sl, r0 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x1f + lsls r1, r1, #0x12 + lsrs r1, r1, #0x1c + cmp r1, #3 + beq _0807A2A2 + cmp r2, #0 + bne _0807A29A + movs r0, #8 + b _0807A330 +_0807A29A: + cmp r0, #0 + bne _0807A2A2 + movs r0, #9 + b _0807A330 +_0807A2A2: + adds r0, r5, #0 + adds r1, r6, #0 + bl IsDeoxysOrMewUntradable + cmp r0, #0 + bne _0807A308 + movs r0, #0xce + lsls r0, r0, #1 + cmp r8, r0 + bne _0807A2BE + cmp r7, r8 + beq _0807A2DC + movs r0, #2 + b _0807A330 +_0807A2BE: + ldr r0, _0807A2D8 + lsls r1, r7, #3 + subs r1, r1, r7 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #6] + cmp r0, r4 + beq _0807A2DC + ldrb r0, [r1, #7] + cmp r0, r4 + beq _0807A2DC + movs r0, #1 + b _0807A330 + .align 2, 0 +_0807A2D8: .4byte 0x082F0D54 +_0807A2DC: + movs r0, #0xce + lsls r0, r0, #1 + cmp r7, r0 + bne _0807A2EC + cmp r7, r8 + beq _0807A2EC + movs r0, #3 + b _0807A330 +_0807A2EC: + mov r0, sb + cmp r0, #0 + bne _0807A31A + movs r0, #0xce + lsls r0, r0, #1 + cmp r7, r0 + bne _0807A2FE + movs r0, #6 + b _0807A330 +_0807A2FE: + adds r0, r7, #0 + bl IsSpeciesInHoennDex + cmp r0, #0 + bne _0807A30C +_0807A308: + movs r0, #4 + b _0807A330 +_0807A30C: + mov r0, r8 + bl IsSpeciesInHoennDex + cmp r0, #0 + bne _0807A31A + movs r0, #5 + b _0807A330 +_0807A31A: + mov r0, sl + cmp r0, #0 + bne _0807A32E + adds r0, r7, #0 + bl IsSpeciesInHoennDex + cmp r0, #0 + bne _0807A32E + movs r0, #7 + b _0807A330 +_0807A32E: + movs r0, #0 +_0807A330: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0807A250 + + thumb_func_start sub_0807A340 +sub_0807A340: @ 0x0807A340 + push {r4, r5, r6, lr} + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + adds r6, r5, #0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r0, r0, #0x17 + lsrs r4, r0, #0x1f + adds r0, r2, #0 + adds r1, r3, #0 + bl IsDeoxysOrMewUntradable + cmp r0, #0 + bne _0807A37A + cmp r4, #0 + bne _0807A37E + movs r0, #0xce + lsls r0, r0, #1 + cmp r5, r0 + bne _0807A370 + movs r0, #2 + b _0807A380 +_0807A370: + adds r0, r6, #0 + bl IsSpeciesInHoennDex + cmp r0, #0 + bne _0807A37E +_0807A37A: + movs r0, #1 + b _0807A380 +_0807A37E: + movs r0, #0 +_0807A380: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0807A340 + + thumb_func_start sub_0807A388 +sub_0807A388: @ 0x0807A388 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x18 + adds r6, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r8, r1 + movs r5, #0 + ldr r0, _0807A3D4 + ldrb r0, [r0] + cmp r5, r0 + bge _0807A3CA + mov r4, sp +_0807A3A4: + movs r0, #0x64 + muls r0, r5, r0 + adds r0, r6, r0 + movs r1, #0x41 + bl GetMonData + str r0, [r4] + movs r1, #0xce + lsls r1, r1, #1 + cmp r0, r1 + bne _0807A3BE + movs r0, #0 + str r0, [r4] +_0807A3BE: + adds r4, #4 + adds r5, #1 + ldr r0, _0807A3D4 + ldrb r0, [r0] + cmp r5, r0 + blt _0807A3A4 +_0807A3CA: + movs r7, #0 + movs r6, #1 + movs r5, #0 + ldr r4, _0807A3D8 + b _0807A3F0 + .align 2, 0 +_0807A3D4: .4byte 0x0202418D +_0807A3D8: .4byte 0x020226A0 +_0807A3DC: + ldrb r0, [r4] + subs r0, #4 + cmp r0, #1 + bhi _0807A3E8 + movs r7, #0 + b _0807A3EC +_0807A3E8: + movs r0, #1 + orrs r7, r0 +_0807A3EC: + adds r4, #0x1c + adds r5, #1 +_0807A3F0: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r5, r0 + blt _0807A3DC + movs r5, #0 + movs r4, #0 + b _0807A424 +_0807A402: + ldr r0, _0807A44C + adds r2, r4, r0 + ldrb r1, [r2, #0x10] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _0807A412 + movs r6, #0 +_0807A412: + cmp r7, #0 + beq _0807A420 + ldrb r0, [r2, #0x10] + lsrs r0, r0, #4 + cmp r0, #0 + beq _0807A420 + movs r6, #0 +_0807A420: + adds r4, #0x1c + adds r5, #1 +_0807A424: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r5, r0 + blt _0807A402 + cmp r6, #0 + bne _0807A45A + mov r1, r8 + lsls r0, r1, #2 + mov r1, sp + adds r4, r1, r0 + ldrh r0, [r4] + bl IsSpeciesInHoennDex + cmp r0, #0 + bne _0807A450 + movs r0, #2 + b _0807A48A + .align 2, 0 +_0807A44C: .4byte 0x020226A0 +_0807A450: + ldr r0, [r4] + cmp r0, #0 + bne _0807A45A + movs r0, #3 + b _0807A48A +_0807A45A: + movs r2, #0 + movs r5, #0 + ldr r0, _0807A484 + ldrb r0, [r0] + cmp r2, r0 + bge _0807A47A + adds r3, r0, #0 + mov r1, sp +_0807A46A: + cmp r8, r5 + beq _0807A472 + ldr r0, [r1] + adds r2, r2, r0 +_0807A472: + adds r1, #4 + adds r5, #1 + cmp r5, r3 + blt _0807A46A +_0807A47A: + cmp r2, #0 + beq _0807A488 + movs r0, #0 + b _0807A48A + .align 2, 0 +_0807A484: .4byte 0x0202418D +_0807A488: + movs r0, #1 +_0807A48A: + add sp, #0x18 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0807A388 + + thumb_func_start sub_0807A498 +sub_0807A498: @ 0x0807A498 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xa + bne _0807A4B4 + movs r0, #0x17 + bl PlaySE + movs r0, #0 + strh r0, [r4, #0x2e] +_0807A4B4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0807A498 + + thumb_func_start sub_0807A4BC +sub_0807A4BC: @ 0x0807A4BC + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _0807A4E6 + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xa + bne _0807A4E6 + movs r0, #0xc2 + bl PlaySE + strh r5, [r4, #0x2e] +_0807A4E6: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_0807A4BC + + thumb_func_start sub_0807A4EC +sub_0807A4EC: @ 0x0807A4EC + push {lr} + adds r2, r0, #0 + movs r0, #0x30 + ldrsh r1, [r2, r0] + cmp r1, #0 + bne _0807A522 + ldrh r0, [r2, #0x2e] + adds r0, #1 + strh r0, [r2, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xc + bne _0807A508 + strh r1, [r2, #0x2e] +_0807A508: + movs r1, #0x2e + ldrsh r0, [r2, r1] + lsls r0, r0, #1 + ldr r1, _0807A528 + adds r0, r0, r1 + ldrb r1, [r2, #5] + lsrs r1, r1, #4 + adds r1, #0x10 + lsls r1, r1, #4 + adds r1, #4 + movs r2, #2 + bl LoadPalette +_0807A522: + pop {r0} + bx r0 + .align 2, 0 +_0807A528: .4byte 0x0830D0E8 + thumb_func_end sub_0807A4EC + + thumb_func_start sub_0807A52C +sub_0807A52C: @ 0x0807A52C + push {lr} + adds r2, r0, #0 + ldrh r1, [r2, #0x2e] + adds r1, #1 + strh r1, [r2, #0x2e] + ldrh r0, [r2, #0x26] + adds r0, #1 + strh r0, [r2, #0x26] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #0xa + bne _0807A54A + adds r0, r2, #0 + bl DestroySprite +_0807A54A: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0807A52C + + thumb_func_start sub_0807A550 +sub_0807A550: @ 0x0807A550 + push {lr} + adds r2, r0, #0 + ldrh r1, [r2, #0x2e] + adds r1, #1 + strh r1, [r2, #0x2e] + ldrh r0, [r2, #0x26] + subs r0, #1 + strh r0, [r2, #0x26] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #0xa + bne _0807A56E + adds r0, r2, #0 + bl DestroySprite +_0807A56E: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0807A550 + + thumb_func_start sub_0807A574 +sub_0807A574: @ 0x0807A574 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xf + bne _0807A590 + movs r0, #0xcc + bl PlaySE + movs r0, #0 + strh r0, [r4, #0x2e] +_0807A590: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0807A574 + + thumb_func_start sub_0807A598 +sub_0807A598: @ 0x0807A598 + push {r4, r5, lr} + sub sp, #0x20 + ldr r0, _0807A624 + ldr r0, [r0] + mov ip, r0 + adds r0, #0xd4 + ldrh r1, [r0] + lsls r1, r1, #8 + adds r0, #2 + ldrh r2, [r0] + lsls r2, r2, #8 + adds r0, #6 + movs r4, #0 + ldrsh r3, [r0, r4] + adds r0, #2 + movs r5, #0 + ldrsh r0, [r0, r5] + str r0, [sp] + mov r4, ip + adds r4, #0xe8 + movs r5, #0 + ldrsh r0, [r4, r5] + str r0, [sp, #4] + movs r5, #0 + ldrsh r0, [r4, r5] + str r0, [sp, #8] + mov r0, ip + adds r0, #0xec + ldrh r0, [r0] + str r0, [sp, #0xc] + add r0, sp, #0x10 + bl DoBgAffineSet + add r0, sp, #0x10 + ldrh r1, [r0] + movs r0, #0x20 + bl SetGpuReg + add r0, sp, #0x10 + ldrh r1, [r0, #2] + movs r0, #0x22 + bl SetGpuReg + add r0, sp, #0x10 + ldrh r1, [r0, #4] + movs r0, #0x24 + bl SetGpuReg + add r0, sp, #0x10 + ldrh r1, [r0, #6] + movs r0, #0x26 + bl SetGpuReg + ldr r1, [sp, #0x18] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x28 + bl SetGpuReg + ldr r1, [sp, #0x1c] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x2c + bl SetGpuReg + add sp, #0x20 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0807A624: .4byte 0x02031F40 + thumb_func_end sub_0807A598 + + thumb_func_start sub_0807A628 +sub_0807A628: @ 0x0807A628 + push {r4, lr} + ldr r4, _0807A670 + ldr r0, [r4] + adds r0, #0xe0 + ldrh r1, [r0] + movs r0, #0x16 + bl SetGpuReg + ldr r0, [r4] + adds r0, #0xe2 + ldrh r1, [r0] + movs r0, #0x14 + bl SetGpuReg + movs r0, #0 + bl GetGpuReg + lsls r0, r0, #0x10 + movs r1, #0xe0 + lsls r1, r1, #0xb + ands r1, r0 + cmp r1, #0 + bne _0807A674 + ldr r0, [r4] + adds r0, #0xe4 + ldrh r1, [r0] + movs r0, #0x1a + bl SetGpuReg + ldr r0, [r4] + adds r0, #0xe6 + ldrh r1, [r0] + movs r0, #0x18 + bl SetGpuReg + b _0807A678 + .align 2, 0 +_0807A670: .4byte 0x02031F40 +_0807A674: + bl sub_0807A598 +_0807A678: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0807A628 + + thumb_func_start sub_0807A680 +sub_0807A680: @ 0x0807A680 + push {lr} + bl sub_0807A628 + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0807A680 + + thumb_func_start sub_0807A698 +sub_0807A698: @ 0x0807A698 + push {r4, lr} + ldr r3, _0807A6BC + ldr r1, [r3] + movs r0, #0x8a + adds r0, r0, r1 + mov ip, r0 + movs r2, #0 + movs r0, #0 + mov r4, ip + strh r0, [r4] + adds r1, #0x88 + strb r2, [r1] + ldr r0, [r3] + adds r0, #0x89 + strb r2, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807A6BC: .4byte 0x02031F40 + thumb_func_end sub_0807A698 + + thumb_func_start sub_0807A6C0 +sub_0807A6C0: @ 0x0807A6C0 + push {r4, r5, lr} + ldr r0, _0807A6E4 + ldr r2, [r0] + adds r1, r2, #0 + adds r1, #0x88 + adds r3, r2, #0 + adds r3, #0x89 + ldrb r1, [r1] + adds r5, r0, #0 + ldrb r3, [r3] + cmp r1, r3 + bne _0807A6E8 + adds r1, r2, #0 + adds r1, #0x8a + ldrh r0, [r1] + adds r0, #1 + b _0807A6EE + .align 2, 0 +_0807A6E4: .4byte 0x02031F40 +_0807A6E8: + adds r1, r2, #0 + adds r1, #0x8a + movs r0, #0 +_0807A6EE: + strh r0, [r1] + adds r4, r5, #0 + ldr r0, [r4] + adds r0, #0x8a + ldrh r1, [r0] + movs r0, #0x96 + lsls r0, r0, #1 + cmp r1, r0 + bls _0807A720 + bl CloseLink + ldr r0, _0807A734 + bl SetMainCallback2 + ldr r1, [r4] + adds r3, r1, #0 + adds r3, #0x8a + movs r2, #0 + movs r0, #0 + strh r0, [r3] + adds r1, #0x89 + strb r2, [r1] + ldr r0, [r4] + adds r0, #0x88 + strb r2, [r0] +_0807A720: + ldr r0, [r5] + adds r1, r0, #0 + adds r1, #0x88 + ldrb r1, [r1] + adds r0, #0x89 + strb r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0807A734: .4byte 0x0800AA0D + thumb_func_end sub_0807A6C0 + + thumb_func_start sub_0807A738 +sub_0807A738: @ 0x0807A738 + push {lr} + ldr r0, _0807A748 + ldrb r0, [r0] + cmp r0, #0 + bne _0807A74C + movs r0, #0 + b _0807A754 + .align 2, 0 +_0807A748: .4byte 0x030031C4 +_0807A74C: + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_0807A754: + pop {r1} + bx r1 + thumb_func_end sub_0807A738 + + thumb_func_start sub_0807A758 +sub_0807A758: @ 0x0807A758 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + movs r4, #0 + mov r8, r4 + cmp r6, #0 + bne _0807A77E + ldr r0, _0807A7A8 + ldrb r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _0807A7AC + adds r1, r1, r0 + mov r8, r1 + movs r4, #1 +_0807A77E: + cmp r6, #1 + bne _0807A79C + ldr r0, _0807A7A8 + ldrb r0, [r0, #1] + movs r1, #6 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x64 + muls r1, r0, r1 + ldr r0, _0807A7B0 + adds r1, r1, r0 + mov r8, r1 + movs r4, #3 +_0807A79C: + cmp r5, #0 + beq _0807A7B4 + cmp r5, #1 + beq _0807A83C + b _0807A892 + .align 2, 0 +_0807A7A8: .4byte 0x02031F38 +_0807A7AC: .4byte 0x02024190 +_0807A7B0: .4byte 0x020243E8 +_0807A7B4: + mov r0, r8 + movs r1, #0x41 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + mov r0, r8 + movs r1, #0 + bl GetMonData + adds r7, r0, #0 + cmp r6, #0 + bne _0807A7F0 + lsls r0, r5, #3 + ldr r1, _0807A7E8 + adds r0, r0, r1 + ldr r1, _0807A7EC + ldr r1, [r1] + ldr r1, [r1, #8] + adds r2, r5, #0 + adds r3, r7, #0 + bl HandleLoadSpecialPokePic_2 + movs r4, #0 + b _0807A80E + .align 2, 0 +_0807A7E8: .4byte 0x082DDA1C +_0807A7EC: .4byte 0x02024178 +_0807A7F0: + lsls r0, r5, #3 + ldr r1, _0807A830 + adds r0, r0, r1 + ldr r1, _0807A834 + ldr r2, [r1] + lsls r4, r6, #1 + adds r1, r4, #1 + lsls r1, r1, #2 + adds r2, #4 + adds r2, r2, r1 + ldr r1, [r2] + adds r2, r5, #0 + adds r3, r7, #0 + bl HandleLoadSpecialPokePic_DontHandleDeoxys +_0807A80E: + mov r0, r8 + bl GetMonSpritePalStruct + bl LoadCompressedSpritePalette + ldr r0, _0807A838 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0xf0 + adds r0, r0, r4 + strh r5, [r0] + lsls r0, r6, #2 + adds r1, #0x68 + adds r1, r1, r0 + str r7, [r1] + b _0807A892 + .align 2, 0 +_0807A830: .4byte 0x082DDA1C +_0807A834: .4byte 0x02024178 +_0807A838: .4byte 0x02031F40 +_0807A83C: + mov r0, r8 + bl GetMonSpritePalStruct + ldrh r0, [r0, #4] + adds r1, r4, #0 + bl SetMultiuseSpriteTemplateToPokemon + ldr r0, _0807A89C + movs r1, #0x78 + movs r2, #0x3c + movs r3, #6 + bl CreateSprite + ldr r4, _0807A8A0 + ldr r1, [r4] + adds r1, #0x8e + adds r1, r1, r6 + strb r0, [r1] + ldr r3, _0807A8A4 + ldr r0, [r4] + adds r0, #0x8e + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + ldr r0, [r4] + adds r0, #0x8e + adds r0, r0, r6 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r3, #0x1c + adds r0, r0, r3 + ldr r1, _0807A8A8 + str r1, [r0] +_0807A892: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0807A89C: .4byte 0x02024640 +_0807A8A0: .4byte 0x02031F40 +_0807A8A4: .4byte 0x020205AC +_0807A8A8: .4byte 0x08007141 + thumb_func_end sub_0807A758 + + thumb_func_start sub_0807A8AC +sub_0807A8AC: @ 0x0807A8AC + push {r4, r5, lr} + sub sp, #4 + ldr r1, _0807A8CC + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, r1, #0 + cmp r0, #0xc + bls _0807A8C2 + b _0807AB72 +_0807A8C2: + lsls r0, r0, #2 + ldr r1, _0807A8D0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807A8CC: .4byte 0x03002360 +_0807A8D0: .4byte 0x0807A8D4 +_0807A8D4: @ jump table + .4byte _0807A908 @ case 0 + .4byte _0807A9B4 @ case 1 + .4byte _0807A9F8 @ case 2 + .4byte _0807AA18 @ case 3 + .4byte _0807AA62 @ case 4 + .4byte _0807AA90 @ case 5 + .4byte _0807AAB4 @ case 6 + .4byte _0807AACC @ case 7 + .4byte _0807AAD6 @ case 8 + .4byte _0807AAF0 @ case 9 + .4byte _0807AB0C @ case 10 + .4byte _0807AB30 @ case 11 + .4byte _0807AB4C @ case 12 +_0807A908: + ldr r0, _0807A99C + ldrb r0, [r0] + cmp r0, #0 + bne _0807A91C + ldr r1, _0807A9A0 + ldr r2, _0807A9A4 + adds r0, r2, #0 + strh r0, [r1] + bl CloseLink +_0807A91C: + ldr r4, _0807A9A8 + movs r5, #0x80 + lsls r5, r5, #1 + adds r0, r5, #0 + bl AllocZeroed + str r0, [r4] + bl AllocateMonSpritesGfx + bl ResetTasks + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r0, _0807A9AC + bl SetVBlankCallback + bl sub_0807ABCC + bl sub_0807A698 + ldr r1, _0807A9B0 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + movs r2, #0 + strb r0, [r1] + ldr r1, [r4] + adds r0, r1, #0 + adds r0, #0x8c + strh r2, [r0] + adds r0, #8 + strh r2, [r0] + adds r1, #0xee + movs r0, #1 + strb r0, [r1] + ldr r3, [r4] + adds r0, r3, #0 + adds r0, #0xd4 + movs r1, #0x40 + strh r1, [r0] + adds r0, #2 + strh r1, [r0] + adds r0, #2 + strh r2, [r0] + adds r0, #2 + strh r2, [r0] + adds r1, r3, #0 + adds r1, #0xdc + movs r0, #0x78 + strh r0, [r1] + adds r1, #2 + movs r0, #0x50 + strh r0, [r1] + adds r0, r3, #0 + adds r0, #0xe8 + strh r5, [r0] + adds r0, #4 + strh r2, [r0] + b _0807AB72 + .align 2, 0 +_0807A99C: .4byte 0x030031C4 +_0807A9A0: .4byte 0x0202267E +_0807A9A4: .4byte 0x00001144 +_0807A9A8: .4byte 0x02031F40 +_0807A9AC: .4byte 0x0807A681 +_0807A9B0: .4byte 0x03002360 +_0807A9B4: + ldr r0, _0807A9E0 + ldrb r5, [r0] + cmp r5, #0 + bne _0807A9EC + ldr r4, _0807A9E4 + ldr r0, [r4] + adds r0, #0xfa + movs r1, #1 + strb r1, [r0] + bl OpenLink + ldr r1, _0807A9E8 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r0, [r4] + str r5, [r0, #0x64] + b _0807AB72 + .align 2, 0 +_0807A9E0: .4byte 0x030031C4 +_0807A9E4: .4byte 0x02031F40 +_0807A9E8: .4byte 0x03002360 +_0807A9EC: + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r2, r0 + movs r0, #4 + strb r0, [r1] + b _0807AB72 +_0807A9F8: + ldr r0, _0807AA14 + ldr r1, [r0] + ldr r0, [r1, #0x64] + adds r0, #1 + str r0, [r1, #0x64] + cmp r0, #0x3c + bhi _0807AA08 + b _0807AB72 +_0807AA08: + movs r0, #0 + str r0, [r1, #0x64] + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r2, r0 + b _0807AB40 + .align 2, 0 +_0807AA14: .4byte 0x02031F40 +_0807AA18: + bl IsLinkMaster + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807AA24 + b _0807AB38 +_0807AA24: + bl GetLinkPlayerCount_2 + adds r4, r0, #0 + bl GetSavedPlayerCount + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + blo _0807AA5C + ldr r0, _0807AA54 + ldr r1, [r0] + ldr r0, [r1, #0x64] + adds r0, #1 + str r0, [r1, #0x64] + cmp r0, #0x1e + bhi _0807AA46 + b _0807AB72 +_0807AA46: + bl CheckShouldAdvanceLinkState + ldr r1, _0807AA58 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _0807AB40 + .align 2, 0 +_0807AA54: .4byte 0x02031F40 +_0807AA58: .4byte 0x03002360 +_0807AA5C: + bl sub_0807A6C0 + b _0807AB72 +_0807AA62: + bl sub_0807A6C0 + ldr r0, _0807AA88 + ldrb r0, [r0] + cmp r0, #1 + beq _0807AA70 + b _0807AB72 +_0807AA70: + bl IsLinkPlayerDataExchangeComplete + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0807AA7E + b _0807AB72 +_0807AA7E: + ldr r1, _0807AA8C + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _0807AB40 + .align 2, 0 +_0807AA88: .4byte 0x030031C4 +_0807AA8C: .4byte 0x03002360 +_0807AA90: + ldr r2, _0807AAB0 + ldr r0, [r2] + adds r0, #0x72 + movs r1, #0 + strb r1, [r0] + ldr r0, [r2] + adds r0, #0x73 + strb r1, [r0] + ldr r0, [r2] + adds r0, #0x93 + strb r1, [r0] + movs r0, #0 + bl sub_0807A758 + b _0807AB38 + .align 2, 0 +_0807AAB0: .4byte 0x02031F40 +_0807AAB4: + movs r0, #0 + movs r1, #1 + bl sub_0807A758 + ldr r1, _0807AAC8 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _0807AB40 + .align 2, 0 +_0807AAC8: .4byte 0x03002360 +_0807AACC: + movs r0, #1 + movs r1, #0 + bl sub_0807A758 + b _0807AB38 +_0807AAD6: + movs r0, #1 + movs r1, #1 + bl sub_0807A758 + bl sub_0807ABB0 + ldr r1, _0807AAEC + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _0807AB40 + .align 2, 0 +_0807AAEC: .4byte 0x03002360 +_0807AAF0: + bl sub_0807B4CC + ldr r0, _0807AB04 + bl LoadSpriteSheet + ldr r0, _0807AB08 + bl LoadSpritePalette + b _0807AB38 + .align 2, 0 +_0807AB04: .4byte 0x0830CF5C +_0807AB08: .4byte 0x0830CF64 +_0807AB0C: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + movs r0, #0 + bl ShowBg + ldr r1, _0807AB2C + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _0807AB40 + .align 2, 0 +_0807AB2C: .4byte 0x03002360 +_0807AB30: + bl sub_0807AB9C + bl SetTradeSceneStrings +_0807AB38: + ldr r1, _0807AB48 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 +_0807AB40: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0807AB72 + .align 2, 0 +_0807AB48: .4byte 0x03002360 +_0807AB4C: + ldr r0, _0807AB90 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0807AB72 + ldr r0, _0807AB94 + ldrb r0, [r0] + cmp r0, #0 + beq _0807AB6C + bl LoadWirelessStatusIndicatorSpriteGfx + movs r0, #0 + movs r1, #0 + bl CreateWirelessStatusIndicatorSprite +_0807AB6C: + ldr r0, _0807AB98 + bl SetMainCallback2 +_0807AB72: + bl RunTasks + bl RunTextPrinters + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0807AB90: .4byte 0x02037C74 +_0807AB94: .4byte 0x0300319C +_0807AB98: .4byte 0x0807E465 + thumb_func_end sub_0807A8AC + + thumb_func_start sub_0807AB9C +sub_0807AB9C: @ 0x0807AB9C + push {lr} + movs r0, #5 + bl sub_0807B064 + movs r0, #0 + bl sub_0807B064 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0807AB9C + + thumb_func_start sub_0807ABB0 +sub_0807ABB0: @ 0x0807ABB0 + push {lr} + movs r0, #0 + movs r1, #0xff + bl FillWindowPixelBuffer + movs r0, #0 + bl PutWindowTilemap + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + pop {r0} + bx r0 + thumb_func_end sub_0807ABB0 + + thumb_func_start sub_0807ABCC +sub_0807ABCC: @ 0x0807ABCC + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + sub sp, #4 + movs r0, #0 + movs r1, #0 + bl SetGpuReg + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _0807ACB4 + movs r0, #0 + movs r2, #4 + bl InitBgsFromTemplates + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r5, #0x80 + lsls r5, r5, #4 + adds r0, r5, #0 + bl Alloc + adds r1, r0, #0 + movs r0, #0 + bl SetBgTilemapBuffer + adds r0, r5, #0 + bl Alloc + adds r1, r0, #0 + movs r0, #1 + bl SetBgTilemapBuffer + adds r0, r5, #0 + bl Alloc + adds r1, r0, #0 + movs r0, #3 + bl SetBgTilemapBuffer + bl DeactivateAllTextPrinters + movs r0, #0x8c + lsls r0, r0, #0x14 + mov sl, r0 + movs r0, #0 + mov sb, r0 + str r0, [sp] + mov r1, sl + movs r2, #0 + movs r3, #0 + bl DecompressAndLoadBgGfxUsingHeap + ldr r0, _0807ACB8 + mov r8, r0 + ldr r4, _0807ACBC + adds r1, r4, #0 + bl LZDecompressVram + movs r0, #0 + adds r1, r4, #0 + adds r2, r5, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + ldr r6, _0807ACC0 + adds r0, r6, #0 + movs r1, #0 + movs r2, #0x20 + bl LoadCompressedPalette + ldr r0, _0807ACC4 + bl InitWindows + mov r0, sb + str r0, [sp] + movs r0, #0 + mov r1, sl + movs r2, #0 + movs r3, #0 + bl DecompressAndLoadBgGfxUsingHeap + mov r0, r8 + adds r1, r4, #0 + bl LZDecompressVram + movs r0, #0 + adds r1, r4, #0 + adds r2, r5, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + adds r0, r6, #0 + movs r1, #0 + movs r2, #0x20 + bl LoadCompressedPalette + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0807ACB4: .4byte 0x0830D294 +_0807ACB8: .4byte 0x08C00530 +_0807ACBC: .4byte 0x0201C000 +_0807ACC0: .4byte 0x08C004EC +_0807ACC4: .4byte 0x0830D27C + thumb_func_end sub_0807ABCC + + thumb_func_start sub_0807ACC8 +sub_0807ACC8: @ 0x0807ACC8 + push {r4, r5, r6, lr} + sub sp, #0xc + ldr r0, _0807ACE8 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0xc + bls _0807ACDC + b _0807AE7A +_0807ACDC: + lsls r0, r0, #2 + ldr r1, _0807ACEC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807ACE8: .4byte 0x03002360 +_0807ACEC: .4byte 0x0807ACF0 +_0807ACF0: @ jump table + .4byte _0807AD24 @ case 0 + .4byte _0807AE7A @ case 1 + .4byte _0807AE7A @ case 2 + .4byte _0807AE7A @ case 3 + .4byte _0807AE7A @ case 4 + .4byte _0807ADE8 @ case 5 + .4byte _0807ADF2 @ case 6 + .4byte _0807ADFC @ case 7 + .4byte _0807AE0C @ case 8 + .4byte _0807AE2C @ case 9 + .4byte _0807AE48 @ case 10 + .4byte _0807AE50 @ case 11 + .4byte _0807AE74 @ case 12 +_0807AD24: + ldr r1, _0807ADC8 + ldr r0, _0807ADCC + ldrh r0, [r0] + movs r5, #0 + strb r0, [r1] + movs r0, #6 + strb r0, [r1, #1] + ldr r4, _0807ADD0 + ldr r0, _0807ADD4 + ldr r1, [r0] + adds r0, r4, #0 + bl StringCopy + ldr r0, _0807ADD8 + movs r1, #7 + mov r2, sp + bl GetMonData + adds r4, #0x1c + adds r0, r4, #0 + mov r1, sp + bl StringCopy + ldr r4, _0807ADDC + movs r6, #0x80 + lsls r6, r6, #1 + adds r0, r6, #0 + bl AllocZeroed + str r0, [r4] + bl AllocateMonSpritesGfx + bl ResetTasks + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r0, _0807ADE0 + bl SetVBlankCallback + bl sub_0807ABCC + ldr r0, [r4] + adds r0, #0xee + strb r5, [r0] + ldr r2, [r4] + adds r0, r2, #0 + adds r0, #0x8c + strh r5, [r0] + adds r0, #8 + strh r5, [r0] + adds r0, #0x40 + movs r1, #0x40 + strh r1, [r0] + adds r0, #2 + strh r1, [r0] + adds r0, #2 + strh r5, [r0] + adds r0, #2 + strh r5, [r0] + adds r1, r2, #0 + adds r1, #0xdc + movs r0, #0x78 + strh r0, [r1] + adds r1, #2 + movs r0, #0x50 + strh r0, [r1] + adds r0, r2, #0 + adds r0, #0xe8 + strh r6, [r0] + adds r0, #4 + strh r5, [r0] + str r5, [r2, #0x64] + ldr r0, _0807ADE4 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + movs r1, #5 + strb r1, [r0] + b _0807AE7A + .align 2, 0 +_0807ADC8: .4byte 0x02031F38 +_0807ADCC: .4byte 0x02037282 +_0807ADD0: .4byte 0x020226A8 +_0807ADD4: .4byte 0x03005AF0 +_0807ADD8: .4byte 0x020243E8 +_0807ADDC: .4byte 0x02031F40 +_0807ADE0: .4byte 0x0807A681 +_0807ADE4: .4byte 0x03002360 +_0807ADE8: + movs r0, #0 + movs r1, #0 + bl sub_0807A758 + b _0807AE60 +_0807ADF2: + movs r0, #0 + movs r1, #1 + bl sub_0807A758 + b _0807AE60 +_0807ADFC: + movs r0, #1 + movs r1, #0 + bl sub_0807A758 + movs r0, #0 + bl ShowBg + b _0807AE60 +_0807AE0C: + movs r0, #1 + movs r1, #1 + bl sub_0807A758 + movs r0, #0 + movs r1, #0xff + bl FillWindowPixelBuffer + movs r0, #0 + bl PutWindowTilemap + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + b _0807AE60 +_0807AE2C: + bl sub_0807B4CC + ldr r0, _0807AE40 + bl LoadSpriteSheet + ldr r0, _0807AE44 + bl LoadSpritePalette + b _0807AE60 + .align 2, 0 +_0807AE40: .4byte 0x0830CF5C +_0807AE44: .4byte 0x0830CF64 +_0807AE48: + movs r0, #0 + bl ShowBg + b _0807AE60 +_0807AE50: + movs r0, #5 + bl sub_0807B064 + movs r0, #0 + bl sub_0807B064 + bl SetTradeSceneStrings +_0807AE60: + ldr r1, _0807AE70 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0807AE7A + .align 2, 0 +_0807AE70: .4byte 0x03002360 +_0807AE74: + ldr r0, _0807AE98 + bl SetMainCallback2 +_0807AE7A: + bl RunTasks + bl RunTextPrinters + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0807AE98: .4byte 0x0807B045 + thumb_func_end sub_0807ACC8 + + thumb_func_start sub_0807AE9C +sub_0807AE9C: @ 0x0807AE9C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x64 + muls r1, r0, r1 + ldr r0, _0807AEF8 + adds r5, r1, r0 + adds r0, r5, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + bne _0807AEF0 + adds r0, r5, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + movs r1, #0 + movs r2, #0 + bl GetMonData + adds r5, r0, #0 + adds r0, r4, #0 + bl HoennToNationalOrder + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r4, #0 + movs r1, #2 + bl GetSetPokedexFlag + adds r0, r4, #0 + movs r1, #3 + adds r2, r5, #0 + bl HandleSetPokedexFlag +_0807AEF0: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0807AEF8: .4byte 0x02024190 + thumb_func_end sub_0807AE9C + + thumb_func_start sub_0807AEFC +sub_0807AEFC: @ 0x0807AEFC + push {lr} + bl GetMultiplayerId + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0807AEFC + + thumb_func_start sub_0807AF08 +sub_0807AF08: @ 0x0807AF08 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r5, #0x64 + mov r1, sb + muls r1, r5, r1 + ldr r0, _0807AFD4 + adds r7, r1, r0 + adds r0, r7, #0 + movs r1, #0x40 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r1, r4, #0 + muls r1, r5, r1 + ldr r0, _0807AFD8 + adds r5, r1, r0 + adds r0, r5, #0 + movs r1, #0x40 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + cmp r6, #0xff + beq _0807AF62 + ldr r0, _0807AFDC + lsls r1, r6, #3 + adds r1, r1, r6 + lsls r1, r1, #2 + ldr r2, _0807AFE0 + adds r1, r1, r2 + ldr r0, [r0] + adds r0, r0, r1 + bl ClearMailStruct +_0807AF62: + ldr r4, _0807AFE4 + ldr r0, [r4] + adds r1, r7, #0 + movs r2, #0x64 + bl memcpy + adds r0, r7, #0 + adds r1, r5, #0 + movs r2, #0x64 + bl memcpy + ldr r1, [r4] + adds r0, r5, #0 + movs r2, #0x64 + bl memcpy + movs r1, #0x46 + mov r0, sp + strb r1, [r0] + adds r0, r7, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + bne _0807AF9E + adds r0, r7, #0 + movs r1, #0x20 + mov r2, sp + bl SetMonData +_0807AF9E: + mov r0, r8 + cmp r0, #0xff + beq _0807AFB4 + lsls r1, r0, #3 + add r1, r8 + lsls r1, r1, #2 + ldr r0, _0807AFE8 + adds r1, r1, r0 + adds r0, r7, #0 + bl GiveMailToMon2 +_0807AFB4: + mov r0, sb + bl sub_0807AE9C + ldr r0, _0807AFEC + ldrb r0, [r0] + cmp r0, #0 + beq _0807AFC6 + bl sub_0807AEFC +_0807AFC6: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0807AFD4: .4byte 0x02024190 +_0807AFD8: .4byte 0x020243E8 +_0807AFDC: .4byte 0x03005AEC +_0807AFE0: .4byte 0x00002BE0 +_0807AFE4: .4byte 0x02031F40 +_0807AFE8: .4byte 0x02031E60 +_0807AFEC: .4byte 0x030031C4 + thumb_func_end sub_0807AF08 + + thumb_func_start sub_0807AFF0 +sub_0807AFF0: @ 0x0807AFF0 + push {r4, lr} + ldr r4, _0807B004 + ldr r0, [r4] + adds r0, #0x93 + ldrb r0, [r0] + cmp r0, #1 + beq _0807B008 + cmp r0, #2 + beq _0807B02E + b _0807B038 + .align 2, 0 +_0807B004: .4byte 0x02031F40 +_0807B008: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0807B02E + bl bitmask_all_link_players_but_self + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, [r4] + adds r1, #0x74 + movs r2, #0x14 + bl SendBlock + ldr r1, [r4] + adds r1, #0x93 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0807B02E: + ldr r0, _0807B040 + ldr r0, [r0] + adds r0, #0x93 + movs r1, #0 + strb r1, [r0] +_0807B038: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807B040: .4byte 0x02031F40 + thumb_func_end sub_0807AFF0 + + thumb_func_start sub_0807B044 +sub_0807B044: @ 0x0807B044 + push {lr} + bl sub_0807B600 + bl RunTasks + bl RunTextPrinters + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0807B044 + + thumb_func_start sub_0807B064 +sub_0807B064: @ 0x0807B064 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #7 + bls _0807B070 + b _0807B4A0 +_0807B070: + lsls r0, r0, #2 + ldr r1, _0807B07C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807B07C: .4byte 0x0807B080 +_0807B080: @ jump table + .4byte _0807B0A0 @ case 0 + .4byte _0807B114 @ case 1 + .4byte _0807B1BC @ case 2 + .4byte _0807B230 @ case 3 + .4byte _0807B278 @ case 4 + .4byte _0807B344 @ case 5 + .4byte _0807B35C @ case 6 + .4byte _0807B434 @ case 7 +_0807B0A0: + ldr r0, _0807B0F8 + ldr r1, [r0] + adds r2, r1, #0 + adds r2, #0xe4 + movs r0, #0 + strh r0, [r2] + adds r1, #0xe6 + movs r0, #0xb4 + strh r0, [r1] + movs r1, #0xaa + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + ldr r1, _0807B0FC + movs r0, #0xc + bl SetGpuReg + ldr r0, _0807B100 + movs r1, #0x10 + movs r2, #0x60 + bl LoadPalette + ldr r3, _0807B104 + ldr r4, _0807B108 + movs r5, #0xa1 + lsls r5, r5, #5 + ldr r1, _0807B10C + ldr r6, _0807B110 + movs r2, #0x80 + lsls r2, r2, #5 + movs r7, #0x80 + lsls r7, r7, #0x18 +_0807B0E2: + str r3, [r1] + str r4, [r1, #4] + str r6, [r1, #8] + ldr r0, [r1, #8] + adds r3, r3, r2 + adds r4, r4, r2 + subs r5, r5, r2 + cmp r5, r2 + bhi _0807B0E2 + b _0807B484 + .align 2, 0 +_0807B0F8: .4byte 0x02031F40 +_0807B0FC: .4byte 0x00005206 +_0807B100: .4byte 0x08305D24 +_0807B104: .4byte 0x08305D84 +_0807B108: .4byte 0x06004000 +_0807B10C: .4byte 0x040000D4 +_0807B110: .4byte 0x80000800 +_0807B114: + ldr r4, _0807B14C + ldr r2, [r4] + adds r1, r2, #0 + adds r1, #0xe2 + movs r0, #0 + strh r0, [r1] + adds r2, #0xe0 + movs r1, #0xae + lsls r1, r1, #1 + strh r1, [r2] + movs r0, #0x16 + bl SetGpuReg + ldr r1, _0807B150 + movs r0, #0xa + bl SetGpuReg + ldr r1, _0807B154 + movs r0, #0xc + bl SetGpuReg + ldr r0, [r4] + adds r0, #0xfa + ldrb r0, [r0] + cmp r0, #0 + beq _0807B15C + ldr r1, _0807B158 + b _0807B15E + .align 2, 0 +_0807B14C: .4byte 0x02031F40 +_0807B150: .4byte 0x00008502 +_0807B154: .4byte 0x00009206 +_0807B158: .4byte 0x0830ABE4 +_0807B15C: + ldr r1, _0807B1A8 +_0807B15E: + ldr r2, _0807B1AC + ldr r0, _0807B1B0 + str r1, [r0] + str r2, [r0, #4] + ldr r1, _0807B1B4 + str r1, [r0, #8] + ldr r0, [r0, #8] + ldr r3, _0807B1B8 + movs r4, #0xc0 + lsls r4, r4, #0x13 + movs r5, #0xa1 + lsls r5, r5, #5 + ldr r1, _0807B1B0 + ldr r6, _0807B1B4 + movs r2, #0x80 + lsls r2, r2, #5 + movs r7, #0x80 + lsls r7, r7, #0x18 +_0807B182: + str r3, [r1] + str r4, [r1, #4] + str r6, [r1, #8] + ldr r0, [r1, #8] + adds r3, r3, r2 + adds r4, r4, r2 + subs r5, r5, r2 + cmp r5, r2 + bhi _0807B182 + str r3, [r1] + str r4, [r1, #4] + lsrs r0, r5, #1 + orrs r0, r7 + str r0, [r1, #8] + ldr r0, [r1, #8] + movs r1, #0x92 + lsls r1, r1, #5 + b _0807B258 + .align 2, 0 +_0807B1A8: .4byte 0x08309BE4 +_0807B1AC: .4byte 0x06002800 +_0807B1B0: .4byte 0x040000D4 +_0807B1B4: .4byte 0x80000800 +_0807B1B8: .4byte 0x08305D84 +_0807B1BC: + ldr r0, _0807B1E8 + ldr r2, [r0] + adds r0, r2, #0 + adds r0, #0xe0 + movs r1, #0 + strh r1, [r0] + adds r0, #2 + strh r1, [r0] + adds r0, #0x18 + ldrb r0, [r0] + cmp r0, #0 + bne _0807B1F8 + ldr r1, _0807B1EC + movs r0, #0 + bl SetGpuReg + ldr r0, _0807B1F0 + ldr r1, _0807B1F4 + bl LZ77UnCompVram + movs r0, #8 + b _0807B212 + .align 2, 0 +_0807B1E8: .4byte 0x02031F40 +_0807B1EC: .4byte 0x00001241 +_0807B1F0: .4byte 0x0830BBE4 +_0807B1F4: .4byte 0x06002800 +_0807B1F8: + ldr r1, _0807B21C + movs r0, #0 + bl SetGpuReg + ldr r1, _0807B220 + ldr r2, _0807B224 + ldr r0, _0807B228 + str r1, [r0] + str r2, [r0, #4] + ldr r1, _0807B22C + str r1, [r0, #8] + ldr r0, [r0, #8] + movs r0, #1 +_0807B212: + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + b _0807B4A0 + .align 2, 0 +_0807B21C: .4byte 0x00001241 +_0807B220: .4byte 0x08302D64 +_0807B224: .4byte 0x06002800 +_0807B228: .4byte 0x040000D4 +_0807B22C: .4byte 0x80000400 +_0807B230: + ldr r0, _0807B260 + movs r1, #0x30 + movs r2, #0x20 + bl LoadPalette + ldr r0, _0807B264 + ldr r1, _0807B268 + bl LZ77UnCompVram + ldr r0, _0807B26C + ldr r1, _0807B270 + bl LZ77UnCompVram + ldr r0, _0807B274 + ldr r0, [r0] + adds r0, #0xe4 + movs r1, #0x50 + strh r1, [r0] + movs r1, #0xb2 + lsls r1, r1, #5 +_0807B258: + movs r0, #0 + bl SetGpuReg + b _0807B4A0 + .align 2, 0 +_0807B260: .4byte 0x0830C0E4 +_0807B264: .4byte 0x0830C104 +_0807B268: .4byte 0x06004000 +_0807B26C: .4byte 0x0830C794 +_0807B270: .4byte 0x06009000 +_0807B274: .4byte 0x02031F40 +_0807B278: + ldr r1, _0807B2FC + movs r0, #0 + bl SetGpuReg + ldr r1, _0807B300 + movs r0, #0xc + bl SetGpuReg + ldr r0, _0807B304 + ldr r3, [r0] + adds r1, r3, #0 + adds r1, #0xd4 + movs r2, #0 + movs r0, #0x40 + strh r0, [r1] + adds r1, #2 + movs r0, #0x5c + strh r0, [r1] + adds r1, #0x12 + movs r0, #0x20 + strh r0, [r1] + adds r1, #2 + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r1] + adds r0, r3, #0 + adds r0, #0xec + strh r2, [r0] + ldr r3, _0807B308 + ldr r4, _0807B30C + movs r5, #0xa1 + lsls r5, r5, #6 + ldr r1, _0807B310 + ldr r6, _0807B314 + movs r2, #0x80 + lsls r2, r2, #5 + movs r7, #0x80 + lsls r7, r7, #0x18 +_0807B2C4: + str r3, [r1] + str r4, [r1, #4] + str r6, [r1, #8] + ldr r0, [r1, #8] + adds r3, r3, r2 + adds r4, r4, r2 + subs r5, r5, r2 + cmp r5, r2 + bhi _0807B2C4 + str r3, [r1] + str r4, [r1, #4] + lsrs r0, r5, #1 + orrs r0, r7 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r0, _0807B304 + ldr r0, [r0] + adds r0, #0xfa + ldrb r0, [r0] + cmp r0, #0 + beq _0807B324 + ldr r1, _0807B318 + ldr r2, _0807B31C + ldr r0, _0807B310 + str r1, [r0] + str r2, [r0, #4] + ldr r1, _0807B320 + b _0807B49C + .align 2, 0 +_0807B2FC: .4byte 0x00001441 +_0807B300: .4byte 0x00001287 +_0807B304: .4byte 0x02031F40 +_0807B308: .4byte 0x083071A4 +_0807B30C: .4byte 0x06004000 +_0807B310: .4byte 0x040000D4 +_0807B314: .4byte 0x80000800 +_0807B318: .4byte 0x083099E4 +_0807B31C: .4byte 0x06009000 +_0807B320: .4byte 0x80000080 +_0807B324: + ldr r1, _0807B334 + ldr r2, _0807B338 + ldr r0, _0807B33C + str r1, [r0] + str r2, [r0, #4] + ldr r1, _0807B340 + b _0807B49C + .align 2, 0 +_0807B334: .4byte 0x08309AE4 +_0807B338: .4byte 0x06009000 +_0807B33C: .4byte 0x040000D4 +_0807B340: .4byte 0x80000080 +_0807B344: + ldr r0, _0807B358 + ldr r0, [r0] + adds r1, r0, #0 + adds r1, #0xe0 + movs r2, #0 + strh r2, [r1] + adds r0, #0xe2 + strh r2, [r0] + b _0807B4A0 + .align 2, 0 +_0807B358: .4byte 0x02031F40 +_0807B35C: + ldr r1, _0807B3EC + movs r0, #0 + bl SetGpuReg + ldr r1, _0807B3F0 + movs r0, #0xc + bl SetGpuReg + ldr r0, _0807B3F4 + ldr r3, [r0] + adds r1, r3, #0 + adds r1, #0xd4 + movs r2, #0 + movs r0, #0x40 + strh r0, [r1] + adds r1, #2 + movs r0, #0x5c + strh r0, [r1] + adds r1, #0x12 + adds r0, #0xa4 + strh r0, [r1] + adds r1, #2 + movs r0, #0x80 + strh r0, [r1] + subs r1, #0xe + movs r0, #0x78 + strh r0, [r1] + adds r1, #2 + movs r0, #0x50 + strh r0, [r1] + adds r0, r3, #0 + adds r0, #0xec + strh r2, [r0] + ldr r3, _0807B3F8 + ldr r4, _0807B3FC + movs r5, #0xa1 + lsls r5, r5, #6 + ldr r1, _0807B400 + ldr r6, _0807B404 + movs r2, #0x80 + lsls r2, r2, #5 + movs r7, #0x80 + lsls r7, r7, #0x18 +_0807B3B2: + str r3, [r1] + str r4, [r1, #4] + str r6, [r1, #8] + ldr r0, [r1, #8] + adds r3, r3, r2 + adds r4, r4, r2 + subs r5, r5, r2 + cmp r5, r2 + bhi _0807B3B2 + str r3, [r1] + str r4, [r1, #4] + lsrs r0, r5, #1 + orrs r0, r7 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r0, _0807B3F4 + ldr r0, [r0] + adds r0, #0xfa + ldrb r0, [r0] + cmp r0, #0 + beq _0807B414 + ldr r1, _0807B408 + ldr r2, _0807B40C + ldr r0, _0807B400 + str r1, [r0] + str r2, [r0, #4] + ldr r1, _0807B410 + b _0807B49C + .align 2, 0 +_0807B3EC: .4byte 0x00001441 +_0807B3F0: .4byte 0x00001287 +_0807B3F4: .4byte 0x02031F40 +_0807B3F8: .4byte 0x083071A4 +_0807B3FC: .4byte 0x06004000 +_0807B400: .4byte 0x040000D4 +_0807B404: .4byte 0x80000800 +_0807B408: .4byte 0x083099E4 +_0807B40C: .4byte 0x06009000 +_0807B410: .4byte 0x80000080 +_0807B414: + ldr r1, _0807B424 + ldr r2, _0807B428 + ldr r0, _0807B42C + str r1, [r0] + str r2, [r0, #4] + ldr r1, _0807B430 + b _0807B49C + .align 2, 0 +_0807B424: .4byte 0x08309AE4 +_0807B428: .4byte 0x06009000 +_0807B42C: .4byte 0x040000D4 +_0807B430: .4byte 0x80000080 +_0807B434: + ldr r0, _0807B4A8 + ldr r0, [r0] + adds r1, r0, #0 + adds r1, #0xe4 + movs r2, #0 + strh r2, [r1] + adds r0, #0xe6 + strh r2, [r0] + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + ldr r1, _0807B4AC + movs r0, #0xc + bl SetGpuReg + ldr r0, _0807B4B0 + movs r1, #0x10 + movs r2, #0x60 + bl LoadPalette + ldr r3, _0807B4B4 + ldr r4, _0807B4B8 + movs r5, #0xa1 + lsls r5, r5, #5 + ldr r1, _0807B4BC + ldr r6, _0807B4C0 + movs r2, #0x80 + lsls r2, r2, #5 + movs r7, #0x80 + lsls r7, r7, #0x18 +_0807B472: + str r3, [r1] + str r4, [r1, #4] + str r6, [r1, #8] + ldr r0, [r1, #8] + adds r3, r3, r2 + adds r4, r4, r2 + subs r5, r5, r2 + cmp r5, r2 + bhi _0807B472 +_0807B484: + str r3, [r1] + str r4, [r1, #4] + lsrs r0, r5, #1 + orrs r0, r7 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r1, _0807B4C4 + ldr r2, _0807B4C8 + ldr r0, _0807B4BC + str r1, [r0] + str r2, [r0, #4] + ldr r1, _0807B4C0 +_0807B49C: + str r1, [r0, #8] + ldr r0, [r0, #8] +_0807B4A0: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0807B4A8: .4byte 0x02031F40 +_0807B4AC: .4byte 0x00005206 +_0807B4B0: .4byte 0x08305D24 +_0807B4B4: .4byte 0x08305D84 +_0807B4B8: .4byte 0x06004000 +_0807B4BC: .4byte 0x040000D4 +_0807B4C0: .4byte 0x80000800 +_0807B4C4: .4byte 0x08304D04 +_0807B4C8: .4byte 0x06009000 + thumb_func_end sub_0807B064 + + thumb_func_start sub_0807B4CC +sub_0807B4CC: @ 0x0807B4CC + push {lr} + ldr r0, _0807B4F8 + bl LoadSpriteSheet + ldr r0, _0807B4FC + bl LoadSpriteSheet + ldr r0, _0807B500 + bl LoadSpriteSheet + ldr r0, _0807B504 + bl LoadSpriteSheet + ldr r0, _0807B508 + bl LoadSpritePalette + ldr r0, _0807B50C + bl LoadSpritePalette + pop {r0} + bx r0 + .align 2, 0 +_0807B4F8: .4byte 0x0830CFB4 +_0807B4FC: .4byte 0x0830D004 +_0807B500: .4byte 0x0830D038 +_0807B504: .4byte 0x0830D0B0 +_0807B508: .4byte 0x0830CFBC +_0807B50C: .4byte 0x0830CFC4 + thumb_func_end sub_0807B4CC + + thumb_func_start SetTradeSceneStrings +SetTradeSceneStrings: @ 0x0807B510 + push {r4, r5, lr} + sub sp, #0x14 + ldr r0, _0807B580 + ldr r0, [r0] + adds r0, #0xee + ldrb r0, [r0] + cmp r0, #0 + beq _0807B5A0 + bl GetMultiplayerId + lsls r0, r0, #0x18 + ldr r3, _0807B584 + movs r2, #0x80 + lsls r2, r2, #0x11 + eors r2, r0 + lsrs r2, r2, #0x18 + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + ldr r0, _0807B588 + adds r1, r1, r0 + adds r0, r3, #0 + bl StringCopy + ldr r5, _0807B58C + ldrb r0, [r5, #1] + movs r1, #6 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r4, #0x64 + muls r0, r4, r0 + ldr r1, _0807B590 + adds r0, r0, r1 + movs r1, #2 + mov r2, sp + bl GetMonData + ldr r0, _0807B594 + mov r1, sp + bl StringCopy10 + ldrb r0, [r5] + muls r0, r4, r0 + ldr r1, _0807B598 + adds r0, r0, r1 + movs r1, #2 + mov r2, sp + bl GetMonData + ldr r0, _0807B59C + mov r1, sp + bl StringCopy10 + b _0807B5DC + .align 2, 0 +_0807B580: .4byte 0x02031F40 +_0807B584: .4byte 0x02021C40 +_0807B588: .4byte 0x020226A8 +_0807B58C: .4byte 0x02031F38 +_0807B590: .4byte 0x020243E8 +_0807B594: .4byte 0x02021C68 +_0807B598: .4byte 0x02024190 +_0807B59C: .4byte 0x02021C54 +_0807B5A0: + ldr r0, _0807B5E4 + ldrh r0, [r0] + lsls r4, r0, #4 + subs r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _0807B5E8 + adds r4, r4, r0 + ldr r0, _0807B5EC + adds r1, r4, #0 + adds r1, #0x2b + bl StringCopy + ldr r0, _0807B5F0 + adds r1, r4, #0 + bl StringCopy10 + ldr r0, _0807B5F4 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0807B5F8 + adds r0, r0, r1 + movs r1, #2 + mov r2, sp + bl GetMonData + ldr r0, _0807B5FC + mov r1, sp + bl StringCopy10 +_0807B5DC: + add sp, #0x14 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0807B5E4: .4byte 0x02037280 +_0807B5E8: .4byte 0x0830D114 +_0807B5EC: .4byte 0x02021C40 +_0807B5F0: .4byte 0x02021C68 +_0807B5F4: .4byte 0x02037282 +_0807B5F8: .4byte 0x02024190 +_0807B5FC: .4byte 0x02021C54 + thumb_func_end SetTradeSceneStrings + + thumb_func_start sub_0807B600 +sub_0807B600: @ 0x0807B600 + push {lr} + ldr r0, _0807B614 + ldr r0, [r0] + adds r0, #0xfa + ldrb r0, [r0] + cmp r0, #0 + bne _0807B618 + bl sub_0807CA00 + b _0807B61C + .align 2, 0 +_0807B614: .4byte 0x02031F40 +_0807B618: + bl sub_0807B624 +_0807B61C: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + thumb_func_end sub_0807B600 + + thumb_func_start sub_0807B624 +sub_0807B624: @ 0x0807B624 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + ldr r0, _0807B648 + ldr r1, [r0] + adds r1, #0x94 + ldrh r5, [r1] + ldr r1, _0807B64C + adds r7, r0, #0 + cmp r5, r1 + bls _0807B63C + bl _0807C9EC +_0807B63C: + lsls r0, r5, #2 + ldr r1, _0807B650 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807B648: .4byte 0x02031F40 +_0807B64C: .4byte 0x0000010B +_0807B650: .4byte 0x0807B654 +_0807B654: @ jump table + .4byte _0807BA84 @ case 0 + .4byte _0807BAFC @ case 1 + .4byte _0807C9EC @ case 2 + .4byte _0807C9EC @ case 3 + .4byte _0807C9EC @ case 4 + .4byte _0807C9EC @ case 5 + .4byte _0807C9EC @ case 6 + .4byte _0807C9EC @ case 7 + .4byte _0807C9EC @ case 8 + .4byte _0807C9EC @ case 9 + .4byte _0807BB58 @ case 10 + .4byte _0807BBA0 @ case 11 + .4byte _0807BC14 @ case 12 + .4byte _0807C9EC @ case 13 + .4byte _0807BC80 @ case 14 + .4byte _0807C9EC @ case 15 + .4byte _0807C9EC @ case 16 + .4byte _0807C9EC @ case 17 + .4byte _0807C9EC @ case 18 + .4byte _0807C9EC @ case 19 + .4byte _0807BCA4 @ case 20 + .4byte _0807BCD4 @ case 21 + .4byte _0807BCE6 @ case 22 + .4byte _0807BD08 @ case 23 + .4byte _0807BD50 @ case 24 + .4byte _0807BD80 @ case 25 + .4byte _0807BDC8 @ case 26 + .4byte _0807BE18 @ case 27 + .4byte _0807BE6C @ case 28 + .4byte _0807BEF0 @ case 29 + .4byte _0807BF14 @ case 30 + .4byte _0807BF60 @ case 31 + .4byte _0807BFAC @ case 32 + .4byte _0807C008 @ case 33 + .4byte _0807C068 @ case 34 + .4byte _0807C07C @ case 35 + .4byte _0807C090 @ case 36 + .4byte _0807C0A4 @ case 37 + .4byte _0807C1CC @ case 38 + .4byte _0807C29C @ case 39 + .4byte _0807C324 @ case 40 + .4byte _0807C39C @ case 41 + .4byte _0807C3AC @ case 42 + .4byte _0807C3CC @ case 43 + .4byte _0807C41C @ case 44 + .4byte _0807C43A @ case 45 + .4byte _0807C478 @ case 46 + .4byte _0807C488 @ case 47 + .4byte _0807C500 @ case 48 + .4byte _0807C9EC @ case 49 + .4byte _0807C528 @ case 50 + .4byte _0807C568 @ case 51 + .4byte _0807C5A8 @ case 52 + .4byte _0807C9EC @ case 53 + .4byte _0807C9EC @ case 54 + .4byte _0807C9EC @ case 55 + .4byte _0807C9EC @ case 56 + .4byte _0807C9EC @ case 57 + .4byte _0807C9EC @ case 58 + .4byte _0807C9EC @ case 59 + .4byte _0807C5C8 @ case 60 + .4byte _0807C5F0 @ case 61 + .4byte _0807C60C @ case 62 + .4byte _0807C62C @ case 63 + .4byte _0807C6D4 @ case 64 + .4byte _0807C708 @ case 65 + .4byte _0807C754 @ case 66 + .4byte _0807C814 @ case 67 + .4byte _0807C88C @ case 68 + .4byte _0807C8D8 @ case 69 + .4byte _0807C8E8 @ case 70 + .4byte _0807C8EE @ case 71 + .4byte _0807C914 @ case 72 + .4byte _0807C970 @ case 73 + .4byte _0807C994 @ case 74 + .4byte _0807C9EC @ case 75 + .4byte _0807C9EC @ case 76 + .4byte _0807C9EC @ case 77 + .4byte _0807C9EC @ case 78 + .4byte _0807C9EC @ case 79 + .4byte _0807C9EC @ case 80 + .4byte _0807C9EC @ case 81 + .4byte _0807C9EC @ case 82 + .4byte _0807C9EC @ case 83 + .4byte _0807C9EC @ case 84 + .4byte _0807C9EC @ case 85 + .4byte _0807C9EC @ case 86 + .4byte _0807C9EC @ case 87 + .4byte _0807C9EC @ case 88 + .4byte _0807C9EC @ case 89 + .4byte _0807C9EC @ case 90 + .4byte _0807C9EC @ case 91 + .4byte _0807C9EC @ case 92 + .4byte _0807C9EC @ case 93 + .4byte _0807C9EC @ case 94 + .4byte _0807C9EC @ case 95 + .4byte _0807C9EC @ case 96 + .4byte _0807C9EC @ case 97 + .4byte _0807C9EC @ case 98 + .4byte _0807C9EC @ case 99 + .4byte _0807C9EC @ case 100 + .4byte _0807C9EC @ case 101 + .4byte _0807C9EC @ case 102 + .4byte _0807C9EC @ case 103 + .4byte _0807C9EC @ case 104 + .4byte _0807C9EC @ case 105 + .4byte _0807C9EC @ case 106 + .4byte _0807C9EC @ case 107 + .4byte _0807C9EC @ case 108 + .4byte _0807C9EC @ case 109 + .4byte _0807C9EC @ case 110 + .4byte _0807C9EC @ case 111 + .4byte _0807C9EC @ case 112 + .4byte _0807C9EC @ case 113 + .4byte _0807C9EC @ case 114 + .4byte _0807C9EC @ case 115 + .4byte _0807C9EC @ case 116 + .4byte _0807C9EC @ case 117 + .4byte _0807C9EC @ case 118 + .4byte _0807C9EC @ case 119 + .4byte _0807C9EC @ case 120 + .4byte _0807C9EC @ case 121 + .4byte _0807C9EC @ case 122 + .4byte _0807C9EC @ case 123 + .4byte _0807C9EC @ case 124 + .4byte _0807C9EC @ case 125 + .4byte _0807C9EC @ case 126 + .4byte _0807C9EC @ case 127 + .4byte _0807C9EC @ case 128 + .4byte _0807C9EC @ case 129 + .4byte _0807C9EC @ case 130 + .4byte _0807C9EC @ case 131 + .4byte _0807C9EC @ case 132 + .4byte _0807C9EC @ case 133 + .4byte _0807C9EC @ case 134 + .4byte _0807C9EC @ case 135 + .4byte _0807C9EC @ case 136 + .4byte _0807C9EC @ case 137 + .4byte _0807C9EC @ case 138 + .4byte _0807C9EC @ case 139 + .4byte _0807C9EC @ case 140 + .4byte _0807C9EC @ case 141 + .4byte _0807C9EC @ case 142 + .4byte _0807C9EC @ case 143 + .4byte _0807C9EC @ case 144 + .4byte _0807C9EC @ case 145 + .4byte _0807C9EC @ case 146 + .4byte _0807C9EC @ case 147 + .4byte _0807C9EC @ case 148 + .4byte _0807C9EC @ case 149 + .4byte _0807C9EC @ case 150 + .4byte _0807C9EC @ case 151 + .4byte _0807C9EC @ case 152 + .4byte _0807C9EC @ case 153 + .4byte _0807C9EC @ case 154 + .4byte _0807C9EC @ case 155 + .4byte _0807C9EC @ case 156 + .4byte _0807C9EC @ case 157 + .4byte _0807C9EC @ case 158 + .4byte _0807C9EC @ case 159 + .4byte _0807C9EC @ case 160 + .4byte _0807C9EC @ case 161 + .4byte _0807C9EC @ case 162 + .4byte _0807C9EC @ case 163 + .4byte _0807C9EC @ case 164 + .4byte _0807C9EC @ case 165 + .4byte _0807C9EC @ case 166 + .4byte _0807C850 @ case 167 + .4byte _0807C9EC @ case 168 + .4byte _0807C9EC @ case 169 + .4byte _0807C9EC @ case 170 + .4byte _0807C9EC @ case 171 + .4byte _0807C9EC @ case 172 + .4byte _0807C9EC @ case 173 + .4byte _0807C9EC @ case 174 + .4byte _0807C9EC @ case 175 + .4byte _0807C9EC @ case 176 + .4byte _0807C9EC @ case 177 + .4byte _0807C9EC @ case 178 + .4byte _0807C9EC @ case 179 + .4byte _0807C9EC @ case 180 + .4byte _0807C9EC @ case 181 + .4byte _0807C9EC @ case 182 + .4byte _0807C9EC @ case 183 + .4byte _0807C9EC @ case 184 + .4byte _0807C9EC @ case 185 + .4byte _0807C9EC @ case 186 + .4byte _0807C9EC @ case 187 + .4byte _0807C9EC @ case 188 + .4byte _0807C9EC @ case 189 + .4byte _0807C9EC @ case 190 + .4byte _0807C9EC @ case 191 + .4byte _0807C9EC @ case 192 + .4byte _0807C9EC @ case 193 + .4byte _0807C9EC @ case 194 + .4byte _0807C9EC @ case 195 + .4byte _0807C9EC @ case 196 + .4byte _0807C9EC @ case 197 + .4byte _0807C9EC @ case 198 + .4byte _0807C9EC @ case 199 + .4byte _0807BE98 @ case 200 + .4byte _0807C9EC @ case 201 + .4byte _0807C9EC @ case 202 + .4byte _0807C9EC @ case 203 + .4byte _0807C9EC @ case 204 + .4byte _0807C9EC @ case 205 + .4byte _0807C9EC @ case 206 + .4byte _0807C9EC @ case 207 + .4byte _0807C9EC @ case 208 + .4byte _0807C9EC @ case 209 + .4byte _0807C9EC @ case 210 + .4byte _0807C9EC @ case 211 + .4byte _0807C9EC @ case 212 + .4byte _0807C9EC @ case 213 + .4byte _0807C9EC @ case 214 + .4byte _0807C9EC @ case 215 + .4byte _0807C9EC @ case 216 + .4byte _0807C9EC @ case 217 + .4byte _0807C9EC @ case 218 + .4byte _0807C9EC @ case 219 + .4byte _0807C9EC @ case 220 + .4byte _0807C9EC @ case 221 + .4byte _0807C9EC @ case 222 + .4byte _0807C9EC @ case 223 + .4byte _0807C9EC @ case 224 + .4byte _0807C9EC @ case 225 + .4byte _0807C9EC @ case 226 + .4byte _0807C9EC @ case 227 + .4byte _0807C9EC @ case 228 + .4byte _0807C9EC @ case 229 + .4byte _0807C9EC @ case 230 + .4byte _0807C9EC @ case 231 + .4byte _0807C9EC @ case 232 + .4byte _0807C9EC @ case 233 + .4byte _0807C9EC @ case 234 + .4byte _0807C9EC @ case 235 + .4byte _0807C9EC @ case 236 + .4byte _0807C9EC @ case 237 + .4byte _0807C9EC @ case 238 + .4byte _0807C9EC @ case 239 + .4byte _0807C9EC @ case 240 + .4byte _0807C9EC @ case 241 + .4byte _0807C9EC @ case 242 + .4byte _0807C9EC @ case 243 + .4byte _0807C9EC @ case 244 + .4byte _0807C9EC @ case 245 + .4byte _0807C9EC @ case 246 + .4byte _0807C9EC @ case 247 + .4byte _0807C9EC @ case 248 + .4byte _0807C9EC @ case 249 + .4byte _0807C9EC @ case 250 + .4byte _0807C9EC @ case 251 + .4byte _0807C9EC @ case 252 + .4byte _0807C9EC @ case 253 + .4byte _0807C9EC @ case 254 + .4byte _0807C9EC @ case 255 + .4byte _0807C9EC @ case 256 + .4byte _0807C9EC @ case 257 + .4byte _0807C9EC @ case 258 + .4byte _0807C9EC @ case 259 + .4byte _0807C9EC @ case 260 + .4byte _0807C9EC @ case 261 + .4byte _0807C9EC @ case 262 + .4byte _0807C9EC @ case 263 + .4byte _0807C9EC @ case 264 + .4byte _0807C9EC @ case 265 + .4byte _0807C9EC @ case 266 + .4byte _0807C870 @ case 267 +_0807BA84: + ldr r3, _0807BAEC + ldr r0, [r7] + adds r0, #0x8e + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + ldr r4, [r7] + adds r2, r4, #0 + adds r2, #0x8e + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldr r1, _0807BAF0 + strh r1, [r0, #0x24] + ldrb r0, [r2] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r2, _0807BAF4 + adds r0, r4, #0 + adds r0, #0xf0 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #1] + strh r0, [r1, #0x26] + adds r1, r4, #0 + adds r1, #0x94 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + bl GetCurrentMapMusic + ldr r1, [r7] + adds r1, #0xf4 + strh r0, [r1] + ldr r0, _0807BAF8 + bl PlayNewMapMusic + bl _0807C9EC + .align 2, 0 +_0807BAEC: .4byte 0x020205AC +_0807BAF0: .4byte 0x0000FF4C +_0807BAF4: .4byte 0x082D45C8 +_0807BAF8: .4byte 0x00000179 +_0807BAFC: + ldr r5, [r7] + adds r6, r5, #0 + adds r6, #0xe6 + movs r1, #0 + ldrsh r0, [r6, r1] + cmp r0, #0 + ble _0807BB30 + ldr r2, _0807BB2C + adds r0, r5, #0 + adds r0, #0x8e + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x24] + adds r1, #3 + strh r1, [r0, #0x24] + ldrh r0, [r6] + subs r0, #3 + strh r0, [r6] + bl _0807C9EC + .align 2, 0 +_0807BB2C: .4byte 0x020205AC +_0807BB30: + ldr r2, _0807BB54 + adds r0, r5, #0 + adds r0, #0x8e + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0 + strh r1, [r0, #0x24] + strh r1, [r6] + adds r1, r5, #0 + adds r1, #0x94 + movs r0, #0xa + strh r0, [r1] + bl _0807C9EC + .align 2, 0 +_0807BB54: .4byte 0x020205AC +_0807BB58: + ldr r4, _0807BB94 + ldr r1, _0807BB98 + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0807EBE0 + ldr r4, _0807BB9C + ldr r0, [r4] + adds r2, r0, #0 + adds r2, #0xf0 + ldrh r1, [r2] + movs r0, #0xce + lsls r0, r0, #1 + cmp r1, r0 + beq _0807BB86 + adds r0, r1, #0 + movs r1, #0 + bl PlayCry1 +_0807BB86: + ldr r3, [r4] + adds r1, r3, #0 + adds r1, #0x94 + movs r2, #0 + movs r0, #0xb + bl _0807C83E + .align 2, 0 +_0807BB94: .4byte 0x02021C7C +_0807BB98: .4byte 0x0830D240 +_0807BB9C: .4byte 0x02031F40 +_0807BBA0: + ldr r1, [r7] + ldr r0, [r1, #0x64] + adds r0, #1 + str r0, [r1, #0x64] + cmp r0, #0x50 + beq _0807BBB0 + bl _0807C9EC +_0807BBB0: + adds r0, r1, #0 + adds r0, #0x8e + ldrb r0, [r0] + ldr r2, _0807BC04 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r1, [r1, #5] + lsrs r1, r1, #4 + movs r2, #2 + str r2, [sp] + movs r2, #1 + str r2, [sp, #4] + movs r2, #0x14 + str r2, [sp, #8] + ldr r2, _0807BC08 + str r2, [sp, #0xc] + movs r2, #0x78 + movs r3, #0x20 + bl sub_08076124 + ldr r1, [r7] + adds r1, #0xd2 + strb r0, [r1] + ldr r1, [r7] + adds r1, #0x94 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + ldr r4, _0807BC0C + ldr r1, _0807BC10 + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0807EBE0 + bl _0807C9EC + .align 2, 0 +_0807BC04: .4byte 0x020205AC +_0807BC08: .4byte 0x000FFFFF +_0807BC0C: .4byte 0x02021C7C +_0807BC10: .4byte 0x0830D24F +_0807BC14: + ldr r5, _0807BC70 + ldr r0, [r7] + adds r0, #0xd2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, r5, #0 + adds r4, #0x1c + adds r0, r0, r4 + ldr r1, [r0] + ldr r0, _0807BC74 + cmp r1, r0 + beq _0807BC34 + bl _0807C9EC +_0807BC34: + ldr r0, _0807BC78 + movs r1, #0x78 + movs r2, #0x20 + movs r3, #0 + bl CreateSprite + ldr r1, [r7] + adds r1, #0xd3 + strb r0, [r1] + ldr r2, [r7] + adds r0, r2, #0 + adds r0, #0xd3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _0807BC7C + str r1, [r0] + adds r2, #0xd2 + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + bl DestroySprite + ldr r1, [r7] + bl _0807C984 + .align 2, 0 +_0807BC70: .4byte 0x020205AC +_0807BC74: .4byte 0x08007141 +_0807BC78: .4byte 0x0830CF6C +_0807BC7C: .4byte 0x0807E011 +_0807BC80: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _0807BCA0 + ldr r0, [r0] + adds r0, #0x94 + movs r1, #0x14 + strh r1, [r0] + bl _0807C9EC + .align 2, 0 +_0807BCA0: .4byte 0x02031F40 +_0807BCA4: + ldr r0, _0807BCD0 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807BCB4 + bl _0807C9EC +_0807BCB4: + movs r0, #4 + bl sub_0807B064 + movs r0, #0 + movs r1, #0xff + bl FillWindowPixelBuffer + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + bl _0807C980 + .align 2, 0 +_0807BCD0: .4byte 0x02037C74 +_0807BCD4: + movs r1, #1 + rsbs r1, r1, #0 + movs r0, #0 + str r0, [sp] + adds r0, r1, #0 + movs r2, #0x10 + movs r3, #0 + bl _0807C97C +_0807BCE6: + ldr r0, _0807BD04 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807BCF6 + bl _0807C9EC +_0807BCF6: + ldr r0, [r7] + adds r0, #0x94 + movs r1, #0x17 + strh r1, [r0] + bl _0807C9EC + .align 2, 0 +_0807BD04: .4byte 0x02037C74 +_0807BD08: + ldr r4, _0807BD24 + ldr r0, [r4] + adds r2, r0, #0 + adds r2, #0xea + ldrh r1, [r2] + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + bls _0807BD28 + adds r0, r1, #0 + subs r0, #0x34 + strh r0, [r2] + b _0807BD44 + .align 2, 0 +_0807BD24: .4byte 0x02031F40 +_0807BD28: + movs r0, #1 + bl sub_0807B064 + ldr r3, [r4] + adds r1, r3, #0 + adds r1, #0xea + movs r2, #0 + movs r0, #0x80 + strh r0, [r1] + subs r1, #0x56 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + str r2, [r3, #0x64] +_0807BD44: + ldr r0, _0807BD4C + ldr r4, [r0] + bl _0807C594 + .align 2, 0 +_0807BD4C: .4byte 0x02031F40 +_0807BD50: + ldr r1, [r7] + ldr r0, [r1, #0x64] + adds r0, #1 + str r0, [r1, #0x64] + cmp r0, #0x14 + bhi _0807BD60 + bl _0807C9EC +_0807BD60: + bl sub_0807A598 + ldr r0, _0807BD7C + movs r1, #0x78 + movs r2, #0x50 + movs r3, #0 + bl CreateSprite + ldr r1, [r7] + adds r1, #0x91 + strb r0, [r1] + ldr r1, [r7] + bl _0807C984 + .align 2, 0 +_0807BD7C: .4byte 0x0830D0B8 +_0807BD80: + ldr r2, _0807BDC0 + ldr r0, [r7] + adds r0, #0x91 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r2 + adds r0, r1, #0 + adds r0, #0x3f + ldrb r0, [r0] + lsls r0, r0, #0x1b + cmp r0, #0 + blt _0807BDA0 + bl _0807C9EC +_0807BDA0: + adds r0, r1, #0 + bl DestroySprite + movs r1, #0xc8 + lsls r1, r1, #3 + movs r0, #0x50 + bl SetGpuReg + ldr r1, _0807BDC4 + movs r0, #0x52 + bl SetGpuReg + ldr r1, [r7] + bl _0807C984 + .align 2, 0 +_0807BDC0: .4byte 0x020205AC +_0807BDC4: .4byte 0x0000040C +_0807BDC8: + ldr r2, [r7] + adds r0, r2, #0 + adds r0, #0xe0 + ldrh r1, [r0] + subs r1, #1 + strh r1, [r0] + lsls r1, r1, #0x10 + movs r0, #0x9e + lsls r0, r0, #0x11 + cmp r1, r0 + bne _0807BDE8 + adds r1, r2, #0 + adds r1, #0x94 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_0807BDE8: + ldr r0, [r7] + adds r0, #0xe0 + movs r2, #0 + ldrsh r1, [r0, r2] + movs r0, #0xa4 + lsls r0, r0, #1 + cmp r1, r0 + beq _0807BDFC + bl _0807C9EC +_0807BDFC: + ldr r0, _0807BE14 + movs r1, #0x80 + movs r2, #0x41 + movs r3, #0 + bl CreateSprite + ldr r1, [r7] + adds r1, #0x92 + strb r0, [r1] + bl _0807C9EC + .align 2, 0 +_0807BE14: .4byte 0x0830D040 +_0807BE18: + ldr r0, _0807BE5C + movs r1, #0x80 + movs r2, #0x50 + movs r3, #3 + bl CreateSprite + ldr r4, _0807BE60 + ldr r1, [r4] + adds r1, #0x90 + strb r0, [r1] + ldr r0, _0807BE64 + movs r1, #0x80 + movs r2, #0x50 + movs r3, #0 + bl CreateSprite + ldr r1, [r4] + adds r1, #0x91 + strb r0, [r1] + ldr r0, [r4] + adds r0, #0x91 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0807BE68 + adds r0, r0, r1 + movs r1, #1 + bl StartSpriteAnim + ldr r1, [r4] + bl _0807C984 + .align 2, 0 +_0807BE5C: .4byte 0x0830CFCC +_0807BE60: .4byte 0x02031F40 +_0807BE64: .4byte 0x0830D00C +_0807BE68: .4byte 0x020205AC +_0807BE6C: + ldr r2, [r7] + adds r1, r2, #0 + adds r1, #0xe0 + ldrh r0, [r1] + subs r0, #2 + strh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xa6 + bne _0807BE86 + subs r1, #0x4c + movs r0, #0xc8 + strh r0, [r1] +_0807BE86: + ldr r1, _0807BE94 + movs r0, #0 + bl SetGpuReg + bl _0807C9EC + .align 2, 0 +_0807BE94: .4byte 0x00001241 +_0807BE98: + ldr r2, _0807BEEC + ldr r4, [r7] + adds r3, r4, #0 + adds r3, #0x90 + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x22] + subs r1, #2 + strh r1, [r0, #0x22] + adds r0, r4, #0 + adds r0, #0x91 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x22] + subs r1, #2 + strh r1, [r0, #0x22] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r3, #0x22 + ldrsh r1, [r0, r3] + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + blt _0807BEDE + bl _0807C9EC +_0807BEDE: + adds r1, r4, #0 + adds r1, #0x94 + movs r0, #0x1d + strh r0, [r1] + bl _0807C9EC + .align 2, 0 +_0807BEEC: .4byte 0x020205AC +_0807BEF0: + movs r1, #1 + rsbs r1, r1, #0 + movs r0, #0 + str r0, [sp] + adds r0, r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _0807BF10 + ldr r0, [r0] + adds r0, #0x94 + movs r1, #0x1e + strh r1, [r0] + bl _0807C9EC + .align 2, 0 +_0807BF10: .4byte 0x02031F40 +_0807BF14: + ldr r0, _0807BF58 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807BF24 + bl _0807C9EC +_0807BF24: + ldr r0, [r7] + adds r0, #0x90 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _0807BF5C + adds r0, r0, r4 + bl DestroySprite + ldr r0, [r7] + adds r0, #0x91 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + movs r0, #2 + bl sub_0807B064 + ldr r1, [r7] + bl _0807C984 + .align 2, 0 +_0807BF58: .4byte 0x02037C74 +_0807BF5C: .4byte 0x020205AC +_0807BF60: + movs r1, #1 + rsbs r1, r1, #0 + movs r0, #0 + str r0, [sp] + adds r0, r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r5, _0807BFA4 + adds r0, r5, #0 + movs r1, #0x6f + movs r2, #0xaa + movs r3, #0 + bl CreateSprite + ldr r4, _0807BFA8 + ldr r1, [r4] + adds r1, #0x90 + strb r0, [r1] + movs r2, #0xa + rsbs r2, r2, #0 + adds r0, r5, #0 + movs r1, #0x81 + movs r3, #0 + bl CreateSprite + ldr r1, [r4] + adds r1, #0x91 + strb r0, [r1] + ldr r1, [r4] + bl _0807C984 + .align 2, 0 +_0807BFA4: .4byte 0x0830D00C +_0807BFA8: .4byte 0x02031F40 +_0807BFAC: + ldr r0, _0807BFFC + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0807BFCA + movs r0, #0x2e + bl PlaySE + ldr r0, _0807C000 + ldr r1, [r0] + adds r1, #0x94 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_0807BFCA: + ldr r3, _0807C004 + ldr r0, _0807C000 + ldr r2, [r0] + adds r0, r2, #0 + adds r0, #0x90 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r0, #0x26] + subs r1, #3 + strh r1, [r0, #0x26] + adds r2, #0x91 + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r0, #0x26] + adds r1, #3 + strh r1, [r0, #0x26] + bl _0807C9EC + .align 2, 0 +_0807BFFC: .4byte 0x02037C74 +_0807C000: .4byte 0x02031F40 +_0807C004: .4byte 0x020205AC +_0807C008: + ldr r5, _0807C064 + ldr r4, [r7] + adds r2, r4, #0 + adds r2, #0x90 + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrh r1, [r0, #0x26] + subs r1, #3 + strh r1, [r0, #0x26] + adds r6, r4, #0 + adds r6, #0x91 + ldrb r1, [r6] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrh r1, [r0, #0x26] + adds r1, #3 + strh r1, [r0, #0x26] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r3, r0, r5 + movs r0, #0x26 + ldrsh r1, [r3, r0] + movs r0, #0x5a + rsbs r0, r0, #0 + cmp r1, r0 + ble _0807C04E + bl _0807C9EC +_0807C04E: + movs r2, #1 + strh r2, [r3, #0x30] + ldrb r1, [r6] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r2, [r0, #0x30] + adds r1, r4, #0 + bl _0807C984 + .align 2, 0 +_0807C064: .4byte 0x020205AC +_0807C068: + ldr r2, _0807C078 + movs r0, #1 + movs r1, #0x10 + bl BlendPalettes + bl _0807C980 + .align 2, 0 +_0807C078: .4byte 0x0000FFFF +_0807C07C: + ldr r2, _0807C08C + movs r0, #1 + movs r1, #0 + bl BlendPalettes + bl _0807C980 + .align 2, 0 +_0807C08C: .4byte 0x0000FFFF +_0807C090: + ldr r2, _0807C0A0 + movs r0, #1 + movs r1, #0x10 + bl BlendPalettes + bl _0807C980 + .align 2, 0 +_0807C0A0: .4byte 0x0000FFFF +_0807C0A4: + ldr r5, _0807C110 + ldr r0, [r5] + adds r0, #0xf0 + ldrh r0, [r0] + bl IsMonSpriteNotFlipped + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807C11C + ldr r4, _0807C114 + ldr r2, [r5] + adds r2, #0x8e + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x10 + adds r0, r0, r1 + ldr r1, _0807C118 + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r1, [r0, #1] + movs r2, #3 + orrs r1, r2 + strb r1, [r0, #1] + ldr r0, [r5] + adds r0, #0x8e + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0 + movs r2, #3 + movs r3, #3 + bl CalcCenterToCornerVec + ldr r0, [r5] + adds r0, #0x8e + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0 + bl StartSpriteAffineAnim + b _0807C132 + .align 2, 0 +_0807C110: .4byte 0x02031F40 +_0807C114: .4byte 0x020205AC +_0807C118: .4byte 0x0830D110 +_0807C11C: + ldr r0, [r5] + adds r0, #0x8e + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0807C1C0 + adds r0, r0, r1 + movs r1, #0 + bl StartSpriteAffineAnim +_0807C132: + ldr r5, _0807C1C4 + ldr r0, [r5] + adds r0, #0x8f + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _0807C1C0 + adds r0, r0, r4 + movs r1, #0 + bl StartSpriteAffineAnim + ldr r2, [r5] + adds r3, r2, #0 + adds r3, #0x8e + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0x3c + strh r1, [r0, #0x20] + adds r2, #0x8f + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0xb4 + strh r1, [r0, #0x20] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0xc0 + strh r1, [r0, #0x22] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _0807C1C8 + strh r1, [r0, #0x22] + ldrb r0, [r3] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + adds r1, #0x3e + ldrb r3, [r1] + movs r2, #5 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r3 + strb r0, [r1] + ldr r0, [r5] + adds r0, #0x8f + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + ldr r1, [r5] + bl _0807C984 + .align 2, 0 +_0807C1C0: .4byte 0x020205AC +_0807C1C4: .4byte 0x02031F40 +_0807C1C8: .4byte 0x0000FFE0 +_0807C1CC: + ldr r4, _0807C294 + ldr r2, [r7] + adds r3, r2, #0 + adds r3, #0x8e + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r0, #0x26] + subs r1, #3 + movs r5, #0 + strh r1, [r0, #0x26] + adds r2, #0x8f + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r0, #0x26] + adds r1, #3 + strh r1, [r0, #0x26] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r0, [r0, #0x26] + adds r0, #0xa3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #2 + bhi _0807C214 + movs r0, #0x2d + bl PlaySE +_0807C214: + ldr r2, [r7] + adds r3, r2, #0 + adds r3, #0x8e + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r6, #0x26 + ldrsh r1, [r0, r6] + movs r0, #0xde + rsbs r0, r0, #0 + cmp r1, r0 + blt _0807C234 + bl _0807C9EC +_0807C234: + adds r0, r2, #0 + adds r0, #0x90 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + strh r5, [r0, #0x30] + adds r0, r2, #0 + adds r0, #0x91 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + strh r5, [r0, #0x30] + adds r1, r2, #0 + adds r1, #0x94 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + ldr r0, [r7] + adds r0, #0x8f + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + ldr r2, _0807C298 + movs r0, #1 + movs r1, #0 + bl BlendPalettes + b _0807C9EC + .align 2, 0 +_0807C294: .4byte 0x020205AC +_0807C298: .4byte 0x0000FFFF +_0807C29C: + ldr r4, _0807C320 + ldr r2, [r7] + adds r3, r2, #0 + adds r3, #0x90 + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r0, #0x26] + subs r1, #3 + strh r1, [r0, #0x26] + adds r2, #0x91 + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r0, #0x26] + adds r1, #3 + strh r1, [r0, #0x26] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r2, #0x26 + ldrsh r1, [r0, r2] + movs r0, #0xde + rsbs r0, r0, #0 + cmp r1, r0 + ble _0807C2DE + b _0807C9EC +_0807C2DE: + movs r1, #1 + rsbs r1, r1, #0 + movs r0, #0 + str r0, [sp] + adds r0, r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, [r7] + adds r2, r1, #0 + adds r2, #0x94 + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + adds r1, #0x90 + ldrb r1, [r1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + ldr r0, [r7] + adds r0, #0x91 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + b _0807C9EC + .align 2, 0 +_0807C320: .4byte 0x020205AC +_0807C324: + ldr r0, _0807C38C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807C332 + b _0807C9EC +_0807C332: + ldr r1, [r7] + adds r1, #0x94 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + movs r0, #1 + bl sub_0807B064 + ldr r0, [r7] + adds r0, #0xe0 + movs r1, #0xa6 + strh r1, [r0] + ldr r0, _0807C390 + movs r4, #0x14 + rsbs r4, r4, #0 + movs r1, #0x80 + adds r2, r4, #0 + movs r3, #3 + bl CreateSprite + ldr r1, [r7] + adds r1, #0x90 + strb r0, [r1] + ldr r0, _0807C394 + movs r1, #0x80 + adds r2, r4, #0 + movs r3, #0 + bl CreateSprite + ldr r1, [r7] + adds r1, #0x91 + strb r0, [r1] + ldr r0, [r7] + adds r0, #0x91 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0807C398 + adds r0, r0, r1 + movs r1, #1 + bl StartSpriteAnim + b _0807C9EC + .align 2, 0 +_0807C38C: .4byte 0x02037C74 +_0807C390: .4byte 0x0830CFCC +_0807C394: .4byte 0x0830D00C +_0807C398: .4byte 0x020205AC +_0807C39C: + movs r1, #1 + rsbs r1, r1, #0 + movs r0, #0 + str r0, [sp] + adds r0, r1, #0 + movs r2, #0x10 + movs r3, #0 + b _0807C97C +_0807C3AC: + movs r1, #0x92 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + ldr r0, _0807C3C8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807C3C4 + b _0807C9EC +_0807C3C4: + b _0807C980 + .align 2, 0 +_0807C3C8: .4byte 0x02037C74 +_0807C3CC: + ldr r2, _0807C418 + ldr r4, [r7] + adds r3, r4, #0 + adds r3, #0x90 + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x26] + adds r1, #3 + strh r1, [r0, #0x26] + adds r0, r4, #0 + adds r0, #0x91 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x26] + adds r1, #3 + strh r1, [r0, #0x26] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r3, #0x26 + ldrsh r1, [r0, r3] + movs r6, #0x22 + ldrsh r0, [r0, r6] + adds r1, r1, r0 + cmp r1, #0x40 + beq _0807C412 + b _0807C9EC +_0807C412: + adds r1, r4, #0 + b _0807C984 + .align 2, 0 +_0807C418: .4byte 0x020205AC +_0807C41C: + ldr r1, [r7] + adds r5, r1, #0 + adds r5, #0xe0 + ldrh r0, [r5] + adds r0, #2 + strh r0, [r5] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r6, #0x9e + lsls r6, r6, #1 + cmp r0, r6 + bgt _0807C436 + b _0807C9EC +_0807C436: + strh r6, [r5] + b _0807C984 +_0807C43A: + ldr r0, [r7] + adds r0, #0x90 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _0807C474 + adds r0, r0, r4 + bl DestroySprite + ldr r0, [r7] + adds r0, #0x91 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + ldr r3, [r7] + adds r2, r3, #0 + adds r2, #0x94 + ldrh r0, [r2] + adds r0, #1 + movs r1, #0 + strh r0, [r2] + str r1, [r3, #0x64] + b _0807C9EC + .align 2, 0 +_0807C474: .4byte 0x020205AC +_0807C478: + ldr r1, [r7] + ldr r0, [r1, #0x64] + adds r0, #1 + str r0, [r1, #0x64] + cmp r0, #0xa + beq _0807C486 + b _0807C9EC +_0807C486: + b _0807C984 +_0807C488: + ldr r1, [r7] + adds r2, r1, #0 + adds r2, #0xe0 + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r3, #0xae + lsls r3, r3, #1 + cmp r0, r3 + ble _0807C4AA + strh r3, [r2] + adds r1, #0x94 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_0807C4AA: + ldr r2, [r7] + adds r0, r2, #0 + adds r0, #0xe0 + movs r3, #0 + ldrsh r1, [r0, r3] + movs r0, #0xa4 + lsls r0, r0, #1 + cmp r1, r0 + beq _0807C4BE + b _0807C9EC +_0807C4BE: + adds r0, r2, #0 + adds r0, #0xfa + ldrb r0, [r0] + cmp r0, #0 + bne _0807C4CA + b _0807C9EC +_0807C4CA: + ldr r0, _0807C4F4 + movs r1, #0x80 + movs r2, #0x41 + movs r3, #0 + bl CreateSprite + ldr r1, [r7] + adds r1, #0x92 + strb r0, [r1] + ldr r2, _0807C4F8 + ldr r0, [r7] + adds r0, #0x92 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, _0807C4FC + str r1, [r0] + b _0807C9EC + .align 2, 0 +_0807C4F4: .4byte 0x0830D040 +_0807C4F8: .4byte 0x020205AC +_0807C4FC: .4byte 0x0807A551 +_0807C500: + ldr r0, _0807C520 + movs r1, #0x78 + movs r2, #0x50 + movs r3, #0 + bl CreateSprite + ldr r2, _0807C524 + ldr r1, [r2] + adds r1, #0x91 + strb r0, [r1] + ldr r0, [r2] + adds r0, #0x94 + movs r1, #0x32 + strh r1, [r0] + b _0807C9EC + .align 2, 0 +_0807C520: .4byte 0x0830D0B8 +_0807C524: .4byte 0x02031F40 +_0807C528: + ldr r2, _0807C564 + ldr r0, [r7] + adds r0, #0x91 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r2 + adds r0, r1, #0 + adds r0, #0x3f + ldrb r0, [r0] + lsls r0, r0, #0x1b + cmp r0, #0 + blt _0807C546 + b _0807C9EC +_0807C546: + adds r0, r1, #0 + bl DestroySprite + movs r0, #6 + bl sub_0807B064 + ldr r1, [r7] + adds r1, #0x94 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + movs r0, #0x9f + bl PlaySE + b _0807C9EC + .align 2, 0 +_0807C564: .4byte 0x020205AC +_0807C568: + ldr r1, [r7] + adds r2, r1, #0 + adds r2, #0xea + ldrh r3, [r2] + ldr r0, _0807C580 + cmp r3, r0 + bhi _0807C584 + adds r0, r3, #0 + adds r0, #0x34 + strh r0, [r2] + b _0807C592 + .align 2, 0 +_0807C580: .4byte 0x000003FF +_0807C584: + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r2] + adds r1, #0x94 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_0807C592: + ldr r4, [r7] +_0807C594: + adds r0, r4, #0 + adds r0, #0xea + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #8 + bl __divsi3 + adds r4, #0xe8 + strh r0, [r4] + b _0807C9EC +_0807C5A8: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _0807C5C4 + ldr r0, [r0] + adds r0, #0x94 + movs r1, #0x3c + strh r1, [r0] + b _0807C9EC + .align 2, 0 +_0807C5C4: .4byte 0x02031F40 +_0807C5C8: + ldr r4, _0807C5EC + ldrb r1, [r4, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807C5D6 + b _0807C9EC +_0807C5D6: + movs r0, #5 + bl sub_0807B064 + movs r0, #7 + bl sub_0807B064 + ldrb r0, [r4, #8] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #8] + b _0807C980 + .align 2, 0 +_0807C5EC: .4byte 0x02037C74 +_0807C5F0: + ldr r2, _0807C608 + ldrb r1, [r2, #8] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #8] + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + b _0807C97C + .align 2, 0 +_0807C608: .4byte 0x02037C74 +_0807C60C: + movs r1, #0xa2 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + ldr r0, _0807C628 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807C624 + b _0807C9EC +_0807C624: + b _0807C980 + .align 2, 0 +_0807C628: .4byte 0x02037C74 +_0807C62C: + ldr r0, _0807C6C0 + movs r2, #8 + rsbs r2, r2, #0 + movs r1, #0x78 + movs r3, #0 + bl CreateSprite + ldr r5, _0807C6C4 + ldr r1, [r5] + adds r1, #0xd3 + movs r6, #0 + strb r0, [r1] + ldr r4, _0807C6C8 + ldr r2, [r5] + adds r2, #0xd3 + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0x4a + strh r1, [r0, #0x34] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _0807C6CC + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #1 + bl StartSpriteAnim + ldr r0, [r5] + adds r0, #0xd3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #2 + bl StartSpriteAffineAnim + ldr r0, [r5] + adds r0, #0xd3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r1, [r0, #5] + lsrs r1, r1, #4 + adds r1, #0x10 + movs r0, #1 + lsls r0, r1 + ldr r2, _0807C6D0 + movs r1, #0x10 + bl BlendPalettes + ldr r2, [r5] + adds r1, r2, #0 + adds r1, #0x94 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + str r6, [r2, #0x64] + b _0807C9EC + .align 2, 0 +_0807C6C0: .4byte 0x0830CF6C +_0807C6C4: .4byte 0x02031F40 +_0807C6C8: .4byte 0x020205AC +_0807C6CC: .4byte 0x0807E0E5 +_0807C6D0: .4byte 0x0000FFFF +_0807C6D4: + ldr r2, _0807C700 + ldr r0, [r7] + adds r0, #0xd3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #5] + lsrs r1, r1, #4 + adds r1, #0x10 + movs r0, #1 + lsls r0, r1 + ldr r1, _0807C704 + str r1, [sp] + movs r1, #1 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r1, [r7] + b _0807C984 + .align 2, 0 +_0807C700: .4byte 0x020205AC +_0807C704: .4byte 0x0000FFFF +_0807C708: + ldr r2, _0807C744 + ldr r3, [r7] + adds r0, r3, #0 + adds r0, #0xd3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _0807C748 + cmp r1, r0 + beq _0807C726 + b _0807C9EC +_0807C726: + adds r0, r3, #0 + adds r0, #0xf2 + ldrh r2, [r0] + lsls r0, r2, #3 + ldr r1, _0807C74C + adds r0, r0, r1 + ldr r1, _0807C750 + ldr r1, [r1] + ldr r1, [r1, #0x10] + ldr r3, [r3, #0x6c] + bl HandleLoadSpecialPokePic_2 + ldr r1, [r7] + b _0807C984 + .align 2, 0 +_0807C744: .4byte 0x020205AC +_0807C748: .4byte 0x08007141 +_0807C74C: .4byte 0x082DDA1C +_0807C750: .4byte 0x02024178 +_0807C754: + ldr r4, _0807C808 + ldr r2, [r7] + adds r6, r2, #0 + adds r6, #0x8f + ldrb r1, [r6] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r5, #0 + movs r1, #0x78 + strh r1, [r0, #0x20] + ldrb r0, [r6] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldr r3, _0807C80C + adds r2, #0xf2 + ldrh r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0, #1] + adds r0, #0x3c + strh r0, [r1, #0x22] + ldrb r1, [r6] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + strh r5, [r0, #0x24] + ldrb r1, [r6] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + strh r5, [r0, #0x26] + ldrb r1, [r6] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0 + bl StartSpriteAnim + ldr r3, [r7] + adds r0, r3, #0 + adds r0, #0x8f + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r1, [r1, #5] + lsrs r1, r1, #4 + movs r2, #2 + str r2, [sp] + movs r2, #1 + str r2, [sp, #4] + movs r2, #0x14 + str r2, [sp, #8] + ldr r2, _0807C810 + str r2, [sp, #0xc] + adds r3, #0xf2 + ldrh r2, [r3] + str r2, [sp, #0x10] + movs r2, #0x78 + movs r3, #0x54 + bl CreatePokeballSpriteToReleaseMon + ldr r0, [r7] + adds r0, #0xd3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl FreeSpriteOamMatrix + ldr r0, [r7] + adds r0, #0xd3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + ldr r1, [r7] + b _0807C984 + .align 2, 0 +_0807C808: .4byte 0x020205AC +_0807C80C: .4byte 0x082D45C8 +_0807C810: .4byte 0x000FFFFF +_0807C814: + movs r1, #0xaa + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + ldr r4, _0807C844 + ldr r1, _0807C848 + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0807EBE0 + ldr r0, _0807C84C + ldr r3, [r0] + adds r1, r3, #0 + adds r1, #0x94 + movs r2, #0 + movs r0, #0xa7 +_0807C83E: + strh r0, [r1] + str r2, [r3, #0x64] + b _0807C9EC + .align 2, 0 +_0807C844: .4byte 0x02021C7C +_0807C848: .4byte 0x0830D258 +_0807C84C: .4byte 0x02031F40 +_0807C850: + ldr r3, [r7] + ldr r0, [r3, #0x64] + adds r0, #1 + str r0, [r3, #0x64] + cmp r0, #0x3c + bhi _0807C85E + b _0807C9EC +_0807C85E: + adds r0, r3, #0 + adds r0, #0x94 + movs r2, #0 + ldr r1, _0807C86C + strh r1, [r0] + str r2, [r3, #0x64] + b _0807C9EC + .align 2, 0 +_0807C86C: .4byte 0x0000010B +_0807C870: + bl IsCryFinished + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807C87C + b _0807C9EC +_0807C87C: + ldr r0, _0807C888 + ldr r0, [r0] + adds r0, #0x94 + movs r1, #0x44 + strh r1, [r0] + b _0807C9EC + .align 2, 0 +_0807C888: .4byte 0x02031F40 +_0807C88C: + ldr r1, [r7] + ldr r0, [r1, #0x64] + adds r0, #1 + str r0, [r1, #0x64] + cmp r0, #0xa + bne _0807C89E + ldr r0, _0807C8CC + bl PlayFanfare +_0807C89E: + ldr r1, [r7] + ldr r0, [r1, #0x64] + cmp r0, #0xfa + beq _0807C8A8 + b _0807C9EC +_0807C8A8: + adds r1, #0x94 + ldrh r0, [r1] + adds r0, #1 + movs r5, #0 + strh r0, [r1] + ldr r4, _0807C8D0 + ldr r1, _0807C8D4 + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0807EBE0 + ldr r0, [r7] + str r5, [r0, #0x64] + b _0807C9EC + .align 2, 0 +_0807C8CC: .4byte 0x00000173 +_0807C8D0: .4byte 0x02021C7C +_0807C8D4: .4byte 0x0830D26A +_0807C8D8: + ldr r1, [r7] + ldr r0, [r1, #0x64] + adds r0, #1 + str r0, [r1, #0x64] + cmp r0, #0x3c + beq _0807C8E6 + b _0807C9EC +_0807C8E6: + b _0807C984 +_0807C8E8: + bl sub_0807EB84 + b _0807C980 +_0807C8EE: + ldr r2, [r7] + adds r0, r2, #0 + adds r0, #0xee + ldrb r0, [r0] + cmp r0, #0 + beq _0807C8FE + movs r0, #1 + b _0807C9EE +_0807C8FE: + ldr r0, _0807C910 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0807C9EC + adds r1, r2, #0 + b _0807C984 + .align 2, 0 +_0807C910: .4byte 0x03002360 +_0807C914: + ldr r0, _0807C958 + ldrb r0, [r0] + movs r1, #0 + bl sub_0807AF08 + ldr r1, _0807C95C + ldr r0, _0807C960 + str r0, [r1] + ldr r7, _0807C964 + ldrb r0, [r7] + movs r6, #0x64 + muls r0, r6, r0 + ldr r5, _0807C968 + adds r0, r0, r5 + movs r1, #1 + movs r2, #0 + bl GetEvolutionTargetSpecies + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0 + beq _0807C980 + ldrb r3, [r7] + adds r0, r3, #0 + muls r0, r6, r0 + adds r0, r0, r5 + ldr r1, _0807C96C + ldr r1, [r1] + adds r1, #0x8f + ldrb r2, [r1] + adds r1, r4, #0 + bl TradeEvolutionScene + b _0807C980 + .align 2, 0 +_0807C958: .4byte 0x02037282 +_0807C95C: .4byte 0x03005F28 +_0807C960: .4byte 0x0807B045 +_0807C964: .4byte 0x02031F38 +_0807C968: .4byte 0x02024190 +_0807C96C: .4byte 0x02031F40 +_0807C970: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 +_0807C97C: + bl BeginNormalPaletteFade +_0807C980: + ldr r0, _0807C990 + ldr r1, [r0] +_0807C984: + adds r1, #0x94 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _0807C9EC + .align 2, 0 +_0807C990: .4byte 0x02031F40 +_0807C994: + ldr r0, _0807C9F8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _0807C9EC + ldr r0, [r7] + adds r0, #0xf4 + ldrh r0, [r0] + bl PlayNewMapMusic + ldr r0, [r7] + cmp r0, #0 + beq _0807C9E2 + bl FreeAllWindowBuffers + movs r0, #3 + bl GetBgTilemapBuffer + bl Free + movs r0, #1 + bl GetBgTilemapBuffer + bl Free + movs r0, #0 + bl GetBgTilemapBuffer + bl Free + bl FreeMonSpritesGfx + ldr r0, [r7] + bl Free + str r4, [r7] +_0807C9E2: + ldr r0, _0807C9FC + bl SetMainCallback2 + bl sub_0807E1C4 +_0807C9EC: + movs r0, #0 +_0807C9EE: + add sp, #0x14 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0807C9F8: .4byte 0x02037C74 +_0807C9FC: .4byte 0x08085A31 + thumb_func_end sub_0807B624 + + thumb_func_start sub_0807CA00 +sub_0807CA00: @ 0x0807CA00 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + ldr r0, _0807CA24 + ldr r1, [r0] + adds r1, #0x94 + ldrh r5, [r1] + ldr r1, _0807CA28 + adds r7, r0, #0 + cmp r5, r1 + bls _0807CA18 + bl _0807DE38 +_0807CA18: + lsls r0, r5, #2 + ldr r1, _0807CA2C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807CA24: .4byte 0x02031F40 +_0807CA28: .4byte 0x0000010B +_0807CA2C: .4byte 0x0807CA30 +_0807CA30: @ jump table + .4byte _0807CE60 @ case 0 + .4byte _0807CED8 @ case 1 + .4byte _0807DE38 @ case 2 + .4byte _0807DE38 @ case 3 + .4byte _0807DE38 @ case 4 + .4byte _0807DE38 @ case 5 + .4byte _0807DE38 @ case 6 + .4byte _0807DE38 @ case 7 + .4byte _0807DE38 @ case 8 + .4byte _0807DE38 @ case 9 + .4byte _0807CF34 @ case 10 + .4byte _0807CF7C @ case 11 + .4byte _0807CFF0 @ case 12 + .4byte _0807DE38 @ case 13 + .4byte _0807D05C @ case 14 + .4byte _0807DE38 @ case 15 + .4byte _0807DE38 @ case 16 + .4byte _0807DE38 @ case 17 + .4byte _0807DE38 @ case 18 + .4byte _0807DE38 @ case 19 + .4byte _0807D080 @ case 20 + .4byte _0807D0B0 @ case 21 + .4byte _0807D0C2 @ case 22 + .4byte _0807D0E4 @ case 23 + .4byte _0807DE38 @ case 24 + .4byte _0807DE38 @ case 25 + .4byte _0807D1DC @ case 26 + .4byte _0807D1FC @ case 27 + .4byte _0807D268 @ case 28 + .4byte _0807D2EC @ case 29 + .4byte _0807D310 @ case 30 + .4byte _0807D35C @ case 31 + .4byte _0807D3A8 @ case 32 + .4byte _0807D404 @ case 33 + .4byte _0807D470 @ case 34 + .4byte _0807D484 @ case 35 + .4byte _0807D498 @ case 36 + .4byte _0807D4AC @ case 37 + .4byte _0807D5D4 @ case 38 + .4byte _0807D6A4 @ case 39 + .4byte _0807D72C @ case 40 + .4byte _0807D7CC @ case 41 + .4byte _0807D7DC @ case 42 + .4byte _0807D7FC @ case 43 + .4byte _0807DE38 @ case 44 + .4byte _0807DE38 @ case 45 + .4byte _0807D920 @ case 46 + .4byte _0807D930 @ case 47 + .4byte _0807D94E @ case 48 + .4byte _0807DE38 @ case 49 + .4byte _0807D974 @ case 50 + .4byte _0807D9B4 @ case 51 + .4byte _0807D9F4 @ case 52 + .4byte _0807DE38 @ case 53 + .4byte _0807DE38 @ case 54 + .4byte _0807DE38 @ case 55 + .4byte _0807DE38 @ case 56 + .4byte _0807DE38 @ case 57 + .4byte _0807DE38 @ case 58 + .4byte _0807DE38 @ case 59 + .4byte _0807DA14 @ case 60 + .4byte _0807DA3C @ case 61 + .4byte _0807DA58 @ case 62 + .4byte _0807DA78 @ case 63 + .4byte _0807DB20 @ case 64 + .4byte _0807DB54 @ case 65 + .4byte _0807DBA0 @ case 66 + .4byte _0807DC60 @ case 67 + .4byte _0807DCD8 @ case 68 + .4byte _0807DD24 @ case 69 + .4byte _0807DD34 @ case 70 + .4byte _0807DD3A @ case 71 + .4byte _0807DD60 @ case 72 + .4byte _0807DDBC @ case 73 + .4byte _0807DDE0 @ case 74 + .4byte _0807DE38 @ case 75 + .4byte _0807DE38 @ case 76 + .4byte _0807DE38 @ case 77 + .4byte _0807DE38 @ case 78 + .4byte _0807DE38 @ case 79 + .4byte _0807DE38 @ case 80 + .4byte _0807DE38 @ case 81 + .4byte _0807DE38 @ case 82 + .4byte _0807DE38 @ case 83 + .4byte _0807DE38 @ case 84 + .4byte _0807DE38 @ case 85 + .4byte _0807DE38 @ case 86 + .4byte _0807DE38 @ case 87 + .4byte _0807DE38 @ case 88 + .4byte _0807DE38 @ case 89 + .4byte _0807DE38 @ case 90 + .4byte _0807DE38 @ case 91 + .4byte _0807DE38 @ case 92 + .4byte _0807DE38 @ case 93 + .4byte _0807DE38 @ case 94 + .4byte _0807DE38 @ case 95 + .4byte _0807DE38 @ case 96 + .4byte _0807DE38 @ case 97 + .4byte _0807DE38 @ case 98 + .4byte _0807DE38 @ case 99 + .4byte _0807DE38 @ case 100 + .4byte _0807DE38 @ case 101 + .4byte _0807DE38 @ case 102 + .4byte _0807DE38 @ case 103 + .4byte _0807DE38 @ case 104 + .4byte _0807DE38 @ case 105 + .4byte _0807DE38 @ case 106 + .4byte _0807DE38 @ case 107 + .4byte _0807DE38 @ case 108 + .4byte _0807DE38 @ case 109 + .4byte _0807DE38 @ case 110 + .4byte _0807DE38 @ case 111 + .4byte _0807DE38 @ case 112 + .4byte _0807DE38 @ case 113 + .4byte _0807DE38 @ case 114 + .4byte _0807DE38 @ case 115 + .4byte _0807DE38 @ case 116 + .4byte _0807DE38 @ case 117 + .4byte _0807DE38 @ case 118 + .4byte _0807DE38 @ case 119 + .4byte _0807DE38 @ case 120 + .4byte _0807DE38 @ case 121 + .4byte _0807DE38 @ case 122 + .4byte _0807DE38 @ case 123 + .4byte _0807D12C @ case 124 + .4byte _0807D160 @ case 125 + .4byte _0807D1B4 @ case 126 + .4byte _0807DE38 @ case 127 + .4byte _0807DE38 @ case 128 + .4byte _0807DE38 @ case 129 + .4byte _0807DE38 @ case 130 + .4byte _0807DE38 @ case 131 + .4byte _0807DE38 @ case 132 + .4byte _0807DE38 @ case 133 + .4byte _0807DE38 @ case 134 + .4byte _0807DE38 @ case 135 + .4byte _0807DE38 @ case 136 + .4byte _0807DE38 @ case 137 + .4byte _0807DE38 @ case 138 + .4byte _0807DE38 @ case 139 + .4byte _0807DE38 @ case 140 + .4byte _0807DE38 @ case 141 + .4byte _0807DE38 @ case 142 + .4byte _0807DE38 @ case 143 + .4byte _0807D854 @ case 144 + .4byte _0807D8BC @ case 145 + .4byte _0807D8F8 @ case 146 + .4byte _0807DE38 @ case 147 + .4byte _0807DE38 @ case 148 + .4byte _0807DE38 @ case 149 + .4byte _0807DE38 @ case 150 + .4byte _0807DE38 @ case 151 + .4byte _0807DE38 @ case 152 + .4byte _0807DE38 @ case 153 + .4byte _0807DE38 @ case 154 + .4byte _0807DE38 @ case 155 + .4byte _0807DE38 @ case 156 + .4byte _0807DE38 @ case 157 + .4byte _0807DE38 @ case 158 + .4byte _0807DE38 @ case 159 + .4byte _0807DE38 @ case 160 + .4byte _0807DE38 @ case 161 + .4byte _0807DE38 @ case 162 + .4byte _0807DE38 @ case 163 + .4byte _0807DE38 @ case 164 + .4byte _0807DE38 @ case 165 + .4byte _0807DE38 @ case 166 + .4byte _0807DC9C @ case 167 + .4byte _0807DE38 @ case 168 + .4byte _0807DE38 @ case 169 + .4byte _0807DE38 @ case 170 + .4byte _0807DE38 @ case 171 + .4byte _0807DE38 @ case 172 + .4byte _0807DE38 @ case 173 + .4byte _0807DE38 @ case 174 + .4byte _0807DE38 @ case 175 + .4byte _0807DE38 @ case 176 + .4byte _0807DE38 @ case 177 + .4byte _0807DE38 @ case 178 + .4byte _0807DE38 @ case 179 + .4byte _0807DE38 @ case 180 + .4byte _0807DE38 @ case 181 + .4byte _0807DE38 @ case 182 + .4byte _0807DE38 @ case 183 + .4byte _0807DE38 @ case 184 + .4byte _0807DE38 @ case 185 + .4byte _0807DE38 @ case 186 + .4byte _0807DE38 @ case 187 + .4byte _0807DE38 @ case 188 + .4byte _0807DE38 @ case 189 + .4byte _0807DE38 @ case 190 + .4byte _0807DE38 @ case 191 + .4byte _0807DE38 @ case 192 + .4byte _0807DE38 @ case 193 + .4byte _0807DE38 @ case 194 + .4byte _0807DE38 @ case 195 + .4byte _0807DE38 @ case 196 + .4byte _0807DE38 @ case 197 + .4byte _0807DE38 @ case 198 + .4byte _0807DE38 @ case 199 + .4byte _0807D294 @ case 200 + .4byte _0807DE38 @ case 201 + .4byte _0807DE38 @ case 202 + .4byte _0807DE38 @ case 203 + .4byte _0807DE38 @ case 204 + .4byte _0807DE38 @ case 205 + .4byte _0807DE38 @ case 206 + .4byte _0807DE38 @ case 207 + .4byte _0807DE38 @ case 208 + .4byte _0807DE38 @ case 209 + .4byte _0807DE38 @ case 210 + .4byte _0807DE38 @ case 211 + .4byte _0807DE38 @ case 212 + .4byte _0807DE38 @ case 213 + .4byte _0807DE38 @ case 214 + .4byte _0807DE38 @ case 215 + .4byte _0807DE38 @ case 216 + .4byte _0807DE38 @ case 217 + .4byte _0807DE38 @ case 218 + .4byte _0807DE38 @ case 219 + .4byte _0807DE38 @ case 220 + .4byte _0807DE38 @ case 221 + .4byte _0807DE38 @ case 222 + .4byte _0807DE38 @ case 223 + .4byte _0807DE38 @ case 224 + .4byte _0807DE38 @ case 225 + .4byte _0807DE38 @ case 226 + .4byte _0807DE38 @ case 227 + .4byte _0807DE38 @ case 228 + .4byte _0807DE38 @ case 229 + .4byte _0807DE38 @ case 230 + .4byte _0807DE38 @ case 231 + .4byte _0807DE38 @ case 232 + .4byte _0807DE38 @ case 233 + .4byte _0807DE38 @ case 234 + .4byte _0807DE38 @ case 235 + .4byte _0807DE38 @ case 236 + .4byte _0807DE38 @ case 237 + .4byte _0807DE38 @ case 238 + .4byte _0807DE38 @ case 239 + .4byte _0807DE38 @ case 240 + .4byte _0807DE38 @ case 241 + .4byte _0807DE38 @ case 242 + .4byte _0807DE38 @ case 243 + .4byte _0807DE38 @ case 244 + .4byte _0807DE38 @ case 245 + .4byte _0807DE38 @ case 246 + .4byte _0807DE38 @ case 247 + .4byte _0807DE38 @ case 248 + .4byte _0807DE38 @ case 249 + .4byte _0807DE38 @ case 250 + .4byte _0807DE38 @ case 251 + .4byte _0807DE38 @ case 252 + .4byte _0807DE38 @ case 253 + .4byte _0807DE38 @ case 254 + .4byte _0807DE38 @ case 255 + .4byte _0807DE38 @ case 256 + .4byte _0807DE38 @ case 257 + .4byte _0807DE38 @ case 258 + .4byte _0807DE38 @ case 259 + .4byte _0807DE38 @ case 260 + .4byte _0807DE38 @ case 261 + .4byte _0807DE38 @ case 262 + .4byte _0807DE38 @ case 263 + .4byte _0807DE38 @ case 264 + .4byte _0807DE38 @ case 265 + .4byte _0807DE38 @ case 266 + .4byte _0807DCBC @ case 267 +_0807CE60: + ldr r3, _0807CEC8 + ldr r0, [r7] + adds r0, #0x8e + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x3e + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + ldr r4, [r7] + adds r2, r4, #0 + adds r2, #0x8e + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldr r1, _0807CECC + strh r1, [r0, #0x24] + ldrb r0, [r2] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r2, _0807CED0 + adds r0, r4, #0 + adds r0, #0xf0 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #1] + strh r0, [r1, #0x26] + adds r1, r4, #0 + adds r1, #0x94 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + bl GetCurrentMapMusic + ldr r1, [r7] + adds r1, #0xf4 + strh r0, [r1] + ldr r0, _0807CED4 + bl PlayNewMapMusic + bl _0807DE38 + .align 2, 0 +_0807CEC8: .4byte 0x020205AC +_0807CECC: .4byte 0x0000FF4C +_0807CED0: .4byte 0x082D45C8 +_0807CED4: .4byte 0x00000179 +_0807CED8: + ldr r5, [r7] + adds r6, r5, #0 + adds r6, #0xe6 + movs r1, #0 + ldrsh r0, [r6, r1] + cmp r0, #0 + ble _0807CF0C + ldr r2, _0807CF08 + adds r0, r5, #0 + adds r0, #0x8e + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x24] + adds r1, #3 + strh r1, [r0, #0x24] + ldrh r0, [r6] + subs r0, #3 + strh r0, [r6] + bl _0807DE38 + .align 2, 0 +_0807CF08: .4byte 0x020205AC +_0807CF0C: + ldr r2, _0807CF30 + adds r0, r5, #0 + adds r0, #0x8e + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0 + strh r1, [r0, #0x24] + strh r1, [r6] + adds r1, r5, #0 + adds r1, #0x94 + movs r0, #0xa + strh r0, [r1] + bl _0807DE38 + .align 2, 0 +_0807CF30: .4byte 0x020205AC +_0807CF34: + ldr r4, _0807CF70 + ldr r1, _0807CF74 + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0807EBE0 + ldr r4, _0807CF78 + ldr r0, [r4] + adds r2, r0, #0 + adds r2, #0xf0 + ldrh r1, [r2] + movs r0, #0xce + lsls r0, r0, #1 + cmp r1, r0 + beq _0807CF62 + adds r0, r1, #0 + movs r1, #0 + bl PlayCry1 +_0807CF62: + ldr r3, [r4] + adds r1, r3, #0 + adds r1, #0x94 + movs r2, #0 + movs r0, #0xb + bl _0807DC8A + .align 2, 0 +_0807CF70: .4byte 0x02021C7C +_0807CF74: .4byte 0x0830D240 +_0807CF78: .4byte 0x02031F40 +_0807CF7C: + ldr r1, [r7] + ldr r0, [r1, #0x64] + adds r0, #1 + str r0, [r1, #0x64] + cmp r0, #0x50 + beq _0807CF8C + bl _0807DE38 +_0807CF8C: + adds r0, r1, #0 + adds r0, #0x8e + ldrb r0, [r0] + ldr r2, _0807CFE0 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r1, [r1, #5] + lsrs r1, r1, #4 + movs r2, #2 + str r2, [sp] + movs r2, #1 + str r2, [sp, #4] + movs r2, #0x14 + str r2, [sp, #8] + ldr r2, _0807CFE4 + str r2, [sp, #0xc] + movs r2, #0x78 + movs r3, #0x20 + bl sub_08076124 + ldr r1, [r7] + adds r1, #0xd2 + strb r0, [r1] + ldr r1, [r7] + adds r1, #0x94 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + ldr r4, _0807CFE8 + ldr r1, _0807CFEC + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0807EBE0 + bl _0807DE38 + .align 2, 0 +_0807CFE0: .4byte 0x020205AC +_0807CFE4: .4byte 0x000FFFFF +_0807CFE8: .4byte 0x02021C7C +_0807CFEC: .4byte 0x0830D24F +_0807CFF0: + ldr r5, _0807D04C + ldr r0, [r7] + adds r0, #0xd2 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, r5, #0 + adds r4, #0x1c + adds r0, r0, r4 + ldr r1, [r0] + ldr r0, _0807D050 + cmp r1, r0 + beq _0807D010 + bl _0807DE38 +_0807D010: + ldr r0, _0807D054 + movs r1, #0x78 + movs r2, #0x20 + movs r3, #0 + bl CreateSprite + ldr r1, [r7] + adds r1, #0xd3 + strb r0, [r1] + ldr r2, [r7] + adds r0, r2, #0 + adds r0, #0xd3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _0807D058 + str r1, [r0] + adds r2, #0xd2 + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + bl DestroySprite + ldr r1, [r7] + bl _0807DDD0 + .align 2, 0 +_0807D04C: .4byte 0x020205AC +_0807D050: .4byte 0x08007141 +_0807D054: .4byte 0x0830CF6C +_0807D058: .4byte 0x0807E011 +_0807D05C: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _0807D07C + ldr r0, [r0] + adds r0, #0x94 + movs r1, #0x14 + strh r1, [r0] + bl _0807DE38 + .align 2, 0 +_0807D07C: .4byte 0x02031F40 +_0807D080: + ldr r0, _0807D0AC + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807D090 + bl _0807DE38 +_0807D090: + movs r0, #4 + bl sub_0807B064 + movs r0, #0 + movs r1, #0xff + bl FillWindowPixelBuffer + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + bl _0807DDCC + .align 2, 0 +_0807D0AC: .4byte 0x02037C74 +_0807D0B0: + movs r1, #1 + rsbs r1, r1, #0 + movs r0, #0 + str r0, [sp] + adds r0, r1, #0 + movs r2, #0x10 + movs r3, #0 + bl _0807DDC8 +_0807D0C2: + ldr r0, _0807D0E0 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807D0D2 + bl _0807DE38 +_0807D0D2: + ldr r0, [r7] + adds r0, #0x94 + movs r1, #0x17 + strh r1, [r0] + bl _0807DE38 + .align 2, 0 +_0807D0E0: .4byte 0x02037C74 +_0807D0E4: + ldr r4, _0807D100 + ldr r0, [r4] + adds r2, r0, #0 + adds r2, #0xea + ldrh r1, [r2] + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + bls _0807D104 + adds r0, r1, #0 + subs r0, #0x34 + strh r0, [r2] + b _0807D11E + .align 2, 0 +_0807D100: .4byte 0x02031F40 +_0807D104: + movs r0, #1 + bl sub_0807B064 + ldr r3, [r4] + adds r1, r3, #0 + adds r1, #0xea + movs r2, #0 + movs r0, #0x80 + strh r0, [r1] + subs r1, #0x56 + movs r0, #0x7c + strh r0, [r1] + str r2, [r3, #0x64] +_0807D11E: + ldr r0, _0807D128 + ldr r4, [r0] + bl _0807D9E0 + .align 2, 0 +_0807D128: .4byte 0x02031F40 +_0807D12C: + ldr r1, [r7] + ldr r0, [r1, #0x64] + adds r0, #1 + str r0, [r1, #0x64] + cmp r0, #0x14 + bhi _0807D13C + bl _0807DE38 +_0807D13C: + movs r0, #3 + bl sub_0807B064 + ldr r0, _0807D15C + movs r1, #0x78 + movs r2, #0x50 + movs r3, #0 + bl CreateSprite + ldr r1, [r7] + adds r1, #0x91 + strb r0, [r1] + ldr r1, [r7] + bl _0807DDD0 + .align 2, 0 +_0807D15C: .4byte 0x0830D0D0 +_0807D160: + ldr r2, _0807D1A8 + ldr r0, [r7] + adds r0, #0x91 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r2 + adds r0, r1, #0 + adds r0, #0x3f + ldrb r0, [r0] + lsls r0, r0, #0x1b + cmp r0, #0 + blt _0807D180 + bl _0807DE38 +_0807D180: + adds r0, r1, #0 + bl DestroySprite + ldr r1, _0807D1AC + movs r0, #0x50 + bl SetGpuReg + movs r1, #0x82 + lsls r1, r1, #3 + movs r0, #0x52 + bl SetGpuReg + ldr r0, _0807D1B0 + movs r1, #5 + bl CreateTask + ldr r1, [r7] + bl _0807DDD0 + .align 2, 0 +_0807D1A8: .4byte 0x020205AC +_0807D1AC: .4byte 0x00000452 +_0807D1B0: .4byte 0x0807EC49 +_0807D1B4: + ldr r0, _0807D1D4 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0807D1C4 + bl _0807DE38 +_0807D1C4: + ldr r0, _0807D1D8 + ldr r0, [r0] + adds r0, #0x94 + movs r1, #0x1a + strh r1, [r0] + bl _0807DE38 + .align 2, 0 +_0807D1D4: .4byte 0x0807EC49 +_0807D1D8: .4byte 0x02031F40 +_0807D1DC: + ldr r2, [r7] + adds r0, r2, #0 + adds r0, #0xe0 + ldrh r1, [r0] + subs r1, #1 + strh r1, [r0] + lsls r1, r1, #0x10 + movs r0, #0x9e + lsls r0, r0, #0x11 + cmp r1, r0 + beq _0807D1F6 + bl _0807DE38 +_0807D1F6: + adds r1, r2, #0 + bl _0807DDD0 +_0807D1FC: + ldr r0, _0807D254 + movs r1, #0x78 + movs r2, #0x50 + movs r3, #3 + bl CreateSprite + ldr r4, _0807D258 + ldr r1, [r4] + adds r1, #0x90 + strb r0, [r1] + ldr r5, _0807D25C + ldr r0, [r4] + adds r0, #0x90 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r5, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _0807D260 + str r1, [r0] + ldr r0, _0807D264 + movs r1, #0x78 + movs r2, #0x50 + movs r3, #0 + bl CreateSprite + ldr r1, [r4] + adds r1, #0x91 + strb r0, [r1] + ldr r0, [r4] + adds r0, #0x91 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #1 + bl StartSpriteAnim + ldr r1, [r4] + bl _0807DDD0 + .align 2, 0 +_0807D254: .4byte 0x0830CFCC +_0807D258: .4byte 0x02031F40 +_0807D25C: .4byte 0x020205AC +_0807D260: .4byte 0x0807A4BD +_0807D264: .4byte 0x0830D00C +_0807D268: + ldr r2, [r7] + adds r1, r2, #0 + adds r1, #0xe0 + ldrh r0, [r1] + subs r0, #3 + strh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xa6 + bne _0807D282 + subs r1, #0x4c + movs r0, #0xc8 + strh r0, [r1] +_0807D282: + ldr r1, _0807D290 + movs r0, #0 + bl SetGpuReg + bl _0807DE38 + .align 2, 0 +_0807D290: .4byte 0x00001241 +_0807D294: + ldr r2, _0807D2E8 + ldr r4, [r7] + adds r3, r4, #0 + adds r3, #0x90 + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x22] + subs r1, #2 + strh r1, [r0, #0x22] + adds r0, r4, #0 + adds r0, #0x91 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x22] + subs r1, #2 + strh r1, [r0, #0x22] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r2, #0x22 + ldrsh r1, [r0, r2] + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + blt _0807D2DA + bl _0807DE38 +_0807D2DA: + adds r1, r4, #0 + adds r1, #0x94 + movs r0, #0x1d + strh r0, [r1] + bl _0807DE38 + .align 2, 0 +_0807D2E8: .4byte 0x020205AC +_0807D2EC: + movs r1, #1 + rsbs r1, r1, #0 + movs r0, #0 + str r0, [sp] + adds r0, r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _0807D30C + ldr r0, [r0] + adds r0, #0x94 + movs r1, #0x1e + strh r1, [r0] + bl _0807DE38 + .align 2, 0 +_0807D30C: .4byte 0x02031F40 +_0807D310: + ldr r0, _0807D354 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807D320 + bl _0807DE38 +_0807D320: + ldr r0, [r7] + adds r0, #0x90 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _0807D358 + adds r0, r0, r4 + bl DestroySprite + ldr r0, [r7] + adds r0, #0x91 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + movs r0, #2 + bl sub_0807B064 + ldr r1, [r7] + bl _0807DDD0 + .align 2, 0 +_0807D354: .4byte 0x02037C74 +_0807D358: .4byte 0x020205AC +_0807D35C: + movs r1, #1 + rsbs r1, r1, #0 + movs r0, #0 + str r0, [sp] + adds r0, r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r5, _0807D3A0 + adds r0, r5, #0 + movs r1, #0x6f + movs r2, #0xaa + movs r3, #0 + bl CreateSprite + ldr r4, _0807D3A4 + ldr r1, [r4] + adds r1, #0x90 + strb r0, [r1] + movs r2, #0xa + rsbs r2, r2, #0 + adds r0, r5, #0 + movs r1, #0x81 + movs r3, #0 + bl CreateSprite + ldr r1, [r4] + adds r1, #0x91 + strb r0, [r1] + ldr r1, [r4] + bl _0807DDD0 + .align 2, 0 +_0807D3A0: .4byte 0x0830D00C +_0807D3A4: .4byte 0x02031F40 +_0807D3A8: + ldr r0, _0807D3F8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0807D3C6 + movs r0, #0x2e + bl PlaySE + ldr r0, _0807D3FC + ldr r1, [r0] + adds r1, #0x94 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_0807D3C6: + ldr r3, _0807D400 + ldr r0, _0807D3FC + ldr r2, [r0] + adds r0, r2, #0 + adds r0, #0x90 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r0, #0x26] + subs r1, #3 + strh r1, [r0, #0x26] + adds r2, #0x91 + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r0, #0x26] + adds r1, #3 + strh r1, [r0, #0x26] + bl _0807DE38 + .align 2, 0 +_0807D3F8: .4byte 0x02037C74 +_0807D3FC: .4byte 0x02031F40 +_0807D400: .4byte 0x020205AC +_0807D404: + ldr r5, _0807D468 + ldr r4, [r7] + adds r2, r4, #0 + adds r2, #0x90 + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrh r1, [r0, #0x26] + subs r1, #3 + strh r1, [r0, #0x26] + adds r6, r4, #0 + adds r6, #0x91 + ldrb r1, [r6] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrh r1, [r0, #0x26] + adds r1, #3 + strh r1, [r0, #0x26] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r3, r0, r5 + movs r0, #0x26 + ldrsh r1, [r3, r0] + movs r0, #0x5a + rsbs r0, r0, #0 + cmp r1, r0 + ble _0807D44A + bl _0807DE38 +_0807D44A: + movs r2, #1 + strh r2, [r3, #0x30] + ldrb r1, [r6] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + strh r2, [r0, #0x30] + adds r1, r4, #0 + adds r1, #0x94 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + ldr r0, _0807D46C + b _0807D692 + .align 2, 0 +_0807D468: .4byte 0x020205AC +_0807D46C: .4byte 0x0807ED1D +_0807D470: + ldr r2, _0807D480 + movs r0, #8 + movs r1, #0x10 + bl BlendPalettes + bl _0807DDCC + .align 2, 0 +_0807D480: .4byte 0x0000FFFF +_0807D484: + ldr r2, _0807D494 + movs r0, #8 + movs r1, #0x10 + bl BlendPalettes + bl _0807DDCC + .align 2, 0 +_0807D494: .4byte 0x0000FFFF +_0807D498: + ldr r2, _0807D4A8 + movs r0, #8 + movs r1, #0x10 + bl BlendPalettes + bl _0807DDCC + .align 2, 0 +_0807D4A8: .4byte 0x0000FFFF +_0807D4AC: + ldr r5, _0807D518 + ldr r0, [r5] + adds r0, #0xf0 + ldrh r0, [r0] + bl IsMonSpriteNotFlipped + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807D524 + ldr r4, _0807D51C + ldr r2, [r5] + adds r2, #0x8e + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x10 + adds r0, r0, r1 + ldr r1, _0807D520 + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r1, [r0, #1] + movs r2, #3 + orrs r1, r2 + strb r1, [r0, #1] + ldr r0, [r5] + adds r0, #0x8e + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0 + movs r2, #3 + movs r3, #3 + bl CalcCenterToCornerVec + ldr r0, [r5] + adds r0, #0x8e + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0 + bl StartSpriteAffineAnim + b _0807D53A + .align 2, 0 +_0807D518: .4byte 0x02031F40 +_0807D51C: .4byte 0x020205AC +_0807D520: .4byte 0x0830D110 +_0807D524: + ldr r0, [r5] + adds r0, #0x8e + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0807D5C8 + adds r0, r0, r1 + movs r1, #0 + bl StartSpriteAffineAnim +_0807D53A: + ldr r5, _0807D5CC + ldr r0, [r5] + adds r0, #0x8f + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _0807D5C8 + adds r0, r0, r4 + movs r1, #0 + bl StartSpriteAffineAnim + ldr r2, [r5] + adds r3, r2, #0 + adds r3, #0x8e + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0x28 + strh r1, [r0, #0x20] + adds r2, #0x8f + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0xc8 + strh r1, [r0, #0x20] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0xc0 + strh r1, [r0, #0x22] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, _0807D5D0 + strh r1, [r0, #0x22] + ldrb r0, [r3] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + adds r1, #0x3e + ldrb r3, [r1] + movs r2, #5 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r3 + strb r0, [r1] + ldr r0, [r5] + adds r0, #0x8f + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + ldr r1, [r5] + bl _0807DDD0 + .align 2, 0 +_0807D5C8: .4byte 0x020205AC +_0807D5CC: .4byte 0x02031F40 +_0807D5D0: .4byte 0x0000FFE0 +_0807D5D4: + ldr r4, _0807D69C + ldr r2, [r7] + adds r3, r2, #0 + adds r3, #0x8e + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r0, #0x26] + subs r1, #3 + movs r5, #0 + strh r1, [r0, #0x26] + adds r2, #0x8f + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r0, #0x26] + adds r1, #3 + strh r1, [r0, #0x26] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r0, [r0, #0x26] + adds r0, #0xa3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #2 + bhi _0807D61C + movs r0, #0x2d + bl PlaySE +_0807D61C: + ldr r2, [r7] + adds r3, r2, #0 + adds r3, #0x8e + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r6, #0x26 + ldrsh r1, [r0, r6] + movs r0, #0xde + rsbs r0, r0, #0 + cmp r1, r0 + blt _0807D63C + bl _0807DE38 +_0807D63C: + adds r0, r2, #0 + adds r0, #0x90 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + strh r5, [r0, #0x30] + adds r0, r2, #0 + adds r0, #0x91 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + strh r5, [r0, #0x30] + adds r1, r2, #0 + adds r1, #0x94 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + ldr r0, [r7] + adds r0, #0x8f + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x3e + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + ldr r0, _0807D6A0 +_0807D692: + movs r1, #5 + bl CreateTask + b _0807DE38 + .align 2, 0 +_0807D69C: .4byte 0x020205AC +_0807D6A0: .4byte 0x0807EDD5 +_0807D6A4: + ldr r4, _0807D728 + ldr r2, [r7] + adds r3, r2, #0 + adds r3, #0x90 + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r0, #0x26] + subs r1, #3 + strh r1, [r0, #0x26] + adds r2, #0x91 + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r0, #0x26] + adds r1, #3 + strh r1, [r0, #0x26] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r2, #0x26 + ldrsh r1, [r0, r2] + movs r0, #0xde + rsbs r0, r0, #0 + cmp r1, r0 + ble _0807D6E6 + b _0807DE38 +_0807D6E6: + movs r1, #1 + rsbs r1, r1, #0 + movs r0, #0 + str r0, [sp] + adds r0, r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, [r7] + adds r2, r1, #0 + adds r2, #0x94 + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + adds r1, #0x90 + ldrb r1, [r1] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + ldr r0, [r7] + adds r0, #0x91 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + b _0807DE38 + .align 2, 0 +_0807D728: .4byte 0x020205AC +_0807D72C: + ldr r0, _0807D7B8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807D73A + b _0807DE38 +_0807D73A: + ldr r1, [r7] + adds r1, #0x94 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + movs r0, #1 + bl sub_0807B064 + ldr r0, [r7] + adds r0, #0xe0 + movs r1, #0xa6 + strh r1, [r0] + movs r0, #3 + bl sub_0807B064 + ldr r0, [r7] + adds r0, #0xe4 + movs r1, #0xce + lsls r1, r1, #1 + strh r1, [r0] + ldr r0, _0807D7BC + movs r4, #0x14 + rsbs r4, r4, #0 + movs r1, #0x78 + adds r2, r4, #0 + movs r3, #3 + bl CreateSprite + ldr r1, [r7] + adds r1, #0x90 + strb r0, [r1] + ldr r5, _0807D7C0 + ldr r0, [r7] + adds r0, #0x90 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r5, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _0807D7C4 + str r1, [r0] + ldr r0, _0807D7C8 + movs r1, #0x78 + adds r2, r4, #0 + movs r3, #0 + bl CreateSprite + ldr r1, [r7] + adds r1, #0x91 + strb r0, [r1] + ldr r0, [r7] + adds r0, #0x91 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #1 + bl StartSpriteAnim + b _0807DE38 + .align 2, 0 +_0807D7B8: .4byte 0x02037C74 +_0807D7BC: .4byte 0x0830CFCC +_0807D7C0: .4byte 0x020205AC +_0807D7C4: .4byte 0x0807A4BD +_0807D7C8: .4byte 0x0830D00C +_0807D7CC: + movs r1, #1 + rsbs r1, r1, #0 + movs r0, #0 + str r0, [sp] + adds r0, r1, #0 + movs r2, #0x10 + movs r3, #0 + b _0807DDC8 +_0807D7DC: + movs r1, #0x92 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + ldr r0, _0807D7F8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807D7F4 + b _0807DE38 +_0807D7F4: + b _0807DDCC + .align 2, 0 +_0807D7F8: .4byte 0x02037C74 +_0807D7FC: + ldr r2, _0807D850 + ldr r4, [r7] + adds r3, r4, #0 + adds r3, #0x90 + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x26] + adds r1, #4 + strh r1, [r0, #0x26] + adds r0, r4, #0 + adds r0, #0x91 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x26] + adds r1, #4 + strh r1, [r0, #0x26] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r6, #0x26 + ldrsh r1, [r0, r6] + movs r2, #0x22 + ldrsh r0, [r0, r2] + adds r1, r1, r0 + cmp r1, #0x40 + beq _0807D842 + b _0807DE38 +_0807D842: + adds r0, r4, #0 + adds r0, #0x94 + movs r1, #0x90 + strh r1, [r0] + movs r0, #0 + str r0, [r4, #0x64] + b _0807DE38 + .align 2, 0 +_0807D850: .4byte 0x020205AC +_0807D854: + movs r1, #0xb2 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + ldr r4, _0807D8B0 + ldr r2, [r4] + adds r1, r2, #0 + adds r1, #0xe0 + ldrh r0, [r1] + adds r0, #3 + strh r0, [r1] + adds r1, #4 + ldrh r0, [r1] + adds r0, #3 + strh r0, [r1] + ldr r0, [r2, #0x64] + adds r0, #1 + str r0, [r2, #0x64] + cmp r0, #0xa + bne _0807D898 + ldr r0, _0807D8B4 + movs r1, #5 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0807D8B8 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r0, #1 + strh r0, [r1, #0xc] +_0807D898: + ldr r1, [r4] + adds r3, r1, #0 + adds r3, #0xe0 + movs r6, #0 + ldrsh r0, [r3, r6] + movs r2, #0x9e + lsls r2, r2, #1 + cmp r0, r2 + bgt _0807D8AC + b _0807DE38 +_0807D8AC: + strh r2, [r3] + b _0807DDD0 + .align 2, 0 +_0807D8B0: .4byte 0x02031F40 +_0807D8B4: .4byte 0x0807EC49 +_0807D8B8: .4byte 0x03005B60 +_0807D8BC: + ldr r0, [r7] + adds r0, #0x90 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _0807D8F4 + adds r0, r0, r4 + bl DestroySprite + ldr r0, [r7] + adds r0, #0x91 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + ldr r3, [r7] + adds r2, r3, #0 + adds r2, #0x94 + ldrh r0, [r2] + adds r0, #1 + movs r1, #0 + strh r0, [r2] + str r1, [r3, #0x64] + b _0807DE38 + .align 2, 0 +_0807D8F4: .4byte 0x020205AC +_0807D8F8: + ldr r0, _0807D918 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + beq _0807D908 + b _0807DE38 +_0807D908: + ldr r0, _0807D91C + ldr r2, [r0] + adds r1, r2, #0 + adds r1, #0x94 + movs r0, #0x2e + strh r0, [r1] + str r3, [r2, #0x64] + b _0807DE38 + .align 2, 0 +_0807D918: .4byte 0x0807EC49 +_0807D91C: .4byte 0x02031F40 +_0807D920: + ldr r1, [r7] + ldr r0, [r1, #0x64] + adds r0, #1 + str r0, [r1, #0x64] + cmp r0, #0xa + beq _0807D92E + b _0807DE38 +_0807D92E: + b _0807DDD0 +_0807D930: + ldr r1, [r7] + adds r5, r1, #0 + adds r5, #0xe0 + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r6, #0xae + lsls r6, r6, #1 + cmp r0, r6 + bgt _0807D94A + b _0807DE38 +_0807D94A: + strh r6, [r5] + b _0807DDD0 +_0807D94E: + ldr r0, _0807D96C + movs r1, #0x78 + movs r2, #0x50 + movs r3, #0 + bl CreateSprite + ldr r2, _0807D970 + ldr r1, [r2] + adds r1, #0x91 + strb r0, [r1] + ldr r0, [r2] + adds r0, #0x94 + movs r1, #0x32 + strh r1, [r0] + b _0807DE38 + .align 2, 0 +_0807D96C: .4byte 0x0830D0B8 +_0807D970: .4byte 0x02031F40 +_0807D974: + ldr r2, _0807D9B0 + ldr r0, [r7] + adds r0, #0x91 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r2 + adds r0, r1, #0 + adds r0, #0x3f + ldrb r0, [r0] + lsls r0, r0, #0x1b + cmp r0, #0 + blt _0807D992 + b _0807DE38 +_0807D992: + adds r0, r1, #0 + bl DestroySprite + movs r0, #6 + bl sub_0807B064 + ldr r1, [r7] + adds r1, #0x94 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + movs r0, #0x9f + bl PlaySE + b _0807DE38 + .align 2, 0 +_0807D9B0: .4byte 0x020205AC +_0807D9B4: + ldr r1, [r7] + adds r2, r1, #0 + adds r2, #0xea + ldrh r3, [r2] + ldr r0, _0807D9CC + cmp r3, r0 + bhi _0807D9D0 + adds r0, r3, #0 + adds r0, #0x34 + strh r0, [r2] + b _0807D9DE + .align 2, 0 +_0807D9CC: .4byte 0x000003FF +_0807D9D0: + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r2] + adds r1, #0x94 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_0807D9DE: + ldr r4, [r7] +_0807D9E0: + adds r0, r4, #0 + adds r0, #0xea + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #8 + bl __divsi3 + adds r4, #0xe8 + strh r0, [r4] + b _0807DE38 +_0807D9F4: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _0807DA10 + ldr r0, [r0] + adds r0, #0x94 + movs r1, #0x3c + strh r1, [r0] + b _0807DE38 + .align 2, 0 +_0807DA10: .4byte 0x02031F40 +_0807DA14: + ldr r4, _0807DA38 + ldrb r1, [r4, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807DA22 + b _0807DE38 +_0807DA22: + movs r0, #5 + bl sub_0807B064 + movs r0, #7 + bl sub_0807B064 + ldrb r0, [r4, #8] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #8] + b _0807DDCC + .align 2, 0 +_0807DA38: .4byte 0x02037C74 +_0807DA3C: + ldr r2, _0807DA54 + ldrb r1, [r2, #8] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #8] + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + b _0807DDC8 + .align 2, 0 +_0807DA54: .4byte 0x02037C74 +_0807DA58: + movs r1, #0xa2 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + ldr r0, _0807DA74 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807DA70 + b _0807DE38 +_0807DA70: + b _0807DDCC + .align 2, 0 +_0807DA74: .4byte 0x02037C74 +_0807DA78: + ldr r0, _0807DB0C + movs r2, #8 + rsbs r2, r2, #0 + movs r1, #0x78 + movs r3, #0 + bl CreateSprite + ldr r5, _0807DB10 + ldr r1, [r5] + adds r1, #0xd3 + movs r6, #0 + strb r0, [r1] + ldr r4, _0807DB14 + ldr r2, [r5] + adds r2, #0xd3 + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0x4a + strh r1, [r0, #0x34] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _0807DB18 + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #1 + bl StartSpriteAnim + ldr r0, [r5] + adds r0, #0xd3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #2 + bl StartSpriteAffineAnim + ldr r0, [r5] + adds r0, #0xd3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r1, [r0, #5] + lsrs r1, r1, #4 + adds r1, #0x10 + movs r0, #1 + lsls r0, r1 + ldr r2, _0807DB1C + movs r1, #0x10 + bl BlendPalettes + ldr r2, [r5] + adds r1, r2, #0 + adds r1, #0x94 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + str r6, [r2, #0x64] + b _0807DE38 + .align 2, 0 +_0807DB0C: .4byte 0x0830CF6C +_0807DB10: .4byte 0x02031F40 +_0807DB14: .4byte 0x020205AC +_0807DB18: .4byte 0x0807E0E5 +_0807DB1C: .4byte 0x0000FFFF +_0807DB20: + ldr r2, _0807DB4C + ldr r0, [r7] + adds r0, #0xd3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #5] + lsrs r1, r1, #4 + adds r1, #0x10 + movs r0, #1 + lsls r0, r1 + ldr r1, _0807DB50 + str r1, [sp] + movs r1, #1 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r1, [r7] + b _0807DDD0 + .align 2, 0 +_0807DB4C: .4byte 0x020205AC +_0807DB50: .4byte 0x0000FFFF +_0807DB54: + ldr r2, _0807DB90 + ldr r3, [r7] + adds r0, r3, #0 + adds r0, #0xd3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #0x1c + adds r0, r0, r2 + ldr r1, [r0] + ldr r0, _0807DB94 + cmp r1, r0 + beq _0807DB72 + b _0807DE38 +_0807DB72: + adds r0, r3, #0 + adds r0, #0xf2 + ldrh r2, [r0] + lsls r0, r2, #3 + ldr r1, _0807DB98 + adds r0, r0, r1 + ldr r1, _0807DB9C + ldr r1, [r1] + ldr r1, [r1, #0x10] + ldr r3, [r3, #0x6c] + bl HandleLoadSpecialPokePic_2 + ldr r1, [r7] + b _0807DDD0 + .align 2, 0 +_0807DB90: .4byte 0x020205AC +_0807DB94: .4byte 0x08007141 +_0807DB98: .4byte 0x082DDA1C +_0807DB9C: .4byte 0x02024178 +_0807DBA0: + ldr r4, _0807DC54 + ldr r2, [r7] + adds r6, r2, #0 + adds r6, #0x8f + ldrb r1, [r6] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r5, #0 + movs r1, #0x78 + strh r1, [r0, #0x20] + ldrb r0, [r6] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldr r3, _0807DC58 + adds r2, #0xf2 + ldrh r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0, #1] + adds r0, #0x3c + strh r0, [r1, #0x22] + ldrb r1, [r6] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + strh r5, [r0, #0x24] + ldrb r1, [r6] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + strh r5, [r0, #0x26] + ldrb r1, [r6] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0 + bl StartSpriteAnim + ldr r3, [r7] + adds r0, r3, #0 + adds r0, #0x8f + ldrb r0, [r0] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r1, [r1, #5] + lsrs r1, r1, #4 + movs r2, #2 + str r2, [sp] + movs r2, #1 + str r2, [sp, #4] + movs r2, #0x14 + str r2, [sp, #8] + ldr r2, _0807DC5C + str r2, [sp, #0xc] + adds r3, #0xf2 + ldrh r2, [r3] + str r2, [sp, #0x10] + movs r2, #0x78 + movs r3, #0x54 + bl CreatePokeballSpriteToReleaseMon + ldr r0, [r7] + adds r0, #0xd3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl FreeSpriteOamMatrix + ldr r0, [r7] + adds r0, #0xd3 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + ldr r1, [r7] + b _0807DDD0 + .align 2, 0 +_0807DC54: .4byte 0x020205AC +_0807DC58: .4byte 0x082D45C8 +_0807DC5C: .4byte 0x000FFFFF +_0807DC60: + movs r1, #0xaa + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + ldr r4, _0807DC90 + ldr r1, _0807DC94 + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0807EBE0 + ldr r0, _0807DC98 + ldr r3, [r0] + adds r1, r3, #0 + adds r1, #0x94 + movs r2, #0 + movs r0, #0xa7 +_0807DC8A: + strh r0, [r1] + str r2, [r3, #0x64] + b _0807DE38 + .align 2, 0 +_0807DC90: .4byte 0x02021C7C +_0807DC94: .4byte 0x0830D258 +_0807DC98: .4byte 0x02031F40 +_0807DC9C: + ldr r3, [r7] + ldr r0, [r3, #0x64] + adds r0, #1 + str r0, [r3, #0x64] + cmp r0, #0x3c + bhi _0807DCAA + b _0807DE38 +_0807DCAA: + adds r0, r3, #0 + adds r0, #0x94 + movs r2, #0 + ldr r1, _0807DCB8 + strh r1, [r0] + str r2, [r3, #0x64] + b _0807DE38 + .align 2, 0 +_0807DCB8: .4byte 0x0000010B +_0807DCBC: + bl IsCryFinished + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807DCC8 + b _0807DE38 +_0807DCC8: + ldr r0, _0807DCD4 + ldr r0, [r0] + adds r0, #0x94 + movs r1, #0x44 + strh r1, [r0] + b _0807DE38 + .align 2, 0 +_0807DCD4: .4byte 0x02031F40 +_0807DCD8: + ldr r1, [r7] + ldr r0, [r1, #0x64] + adds r0, #1 + str r0, [r1, #0x64] + cmp r0, #0xa + bne _0807DCEA + ldr r0, _0807DD18 + bl PlayFanfare +_0807DCEA: + ldr r1, [r7] + ldr r0, [r1, #0x64] + cmp r0, #0xfa + beq _0807DCF4 + b _0807DE38 +_0807DCF4: + adds r1, #0x94 + ldrh r0, [r1] + adds r0, #1 + movs r5, #0 + strh r0, [r1] + ldr r4, _0807DD1C + ldr r1, _0807DD20 + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0807EBE0 + ldr r0, [r7] + str r5, [r0, #0x64] + b _0807DE38 + .align 2, 0 +_0807DD18: .4byte 0x00000173 +_0807DD1C: .4byte 0x02021C7C +_0807DD20: .4byte 0x0830D26A +_0807DD24: + ldr r1, [r7] + ldr r0, [r1, #0x64] + adds r0, #1 + str r0, [r1, #0x64] + cmp r0, #0x3c + beq _0807DD32 + b _0807DE38 +_0807DD32: + b _0807DDD0 +_0807DD34: + bl sub_0807EB84 + b _0807DDCC +_0807DD3A: + ldr r2, [r7] + adds r0, r2, #0 + adds r0, #0xee + ldrb r0, [r0] + cmp r0, #0 + beq _0807DD4A + movs r0, #1 + b _0807DE3A +_0807DD4A: + ldr r0, _0807DD5C + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0807DE38 + adds r1, r2, #0 + b _0807DDD0 + .align 2, 0 +_0807DD5C: .4byte 0x03002360 +_0807DD60: + ldr r0, _0807DDA4 + ldrb r0, [r0] + movs r1, #0 + bl sub_0807AF08 + ldr r1, _0807DDA8 + ldr r0, _0807DDAC + str r0, [r1] + ldr r7, _0807DDB0 + ldrb r0, [r7] + movs r6, #0x64 + muls r0, r6, r0 + ldr r5, _0807DDB4 + adds r0, r0, r5 + movs r1, #1 + movs r2, #0 + bl GetEvolutionTargetSpecies + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0 + beq _0807DDCC + ldrb r3, [r7] + adds r0, r3, #0 + muls r0, r6, r0 + adds r0, r0, r5 + ldr r1, _0807DDB8 + ldr r1, [r1] + adds r1, #0x8f + ldrb r2, [r1] + adds r1, r4, #0 + bl TradeEvolutionScene + b _0807DDCC + .align 2, 0 +_0807DDA4: .4byte 0x02037282 +_0807DDA8: .4byte 0x03005F28 +_0807DDAC: .4byte 0x0807B045 +_0807DDB0: .4byte 0x02031F38 +_0807DDB4: .4byte 0x02024190 +_0807DDB8: .4byte 0x02031F40 +_0807DDBC: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 +_0807DDC8: + bl BeginNormalPaletteFade +_0807DDCC: + ldr r0, _0807DDDC + ldr r1, [r0] +_0807DDD0: + adds r1, #0x94 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _0807DE38 + .align 2, 0 +_0807DDDC: .4byte 0x02031F40 +_0807DDE0: + ldr r0, _0807DE44 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _0807DE38 + ldr r0, [r7] + adds r0, #0xf4 + ldrh r0, [r0] + bl PlayNewMapMusic + ldr r0, [r7] + cmp r0, #0 + beq _0807DE2E + bl FreeAllWindowBuffers + movs r0, #3 + bl GetBgTilemapBuffer + bl Free + movs r0, #1 + bl GetBgTilemapBuffer + bl Free + movs r0, #0 + bl GetBgTilemapBuffer + bl Free + bl FreeMonSpritesGfx + ldr r0, [r7] + bl Free + str r4, [r7] +_0807DE2E: + ldr r0, _0807DE48 + bl SetMainCallback2 + bl sub_0807E1C4 +_0807DE38: + movs r0, #0 +_0807DE3A: + add sp, #0x14 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0807DE44: .4byte 0x02037C74 +_0807DE48: .4byte 0x08085A31 + thumb_func_end sub_0807CA00 + + thumb_func_start c2_08053788 +c2_08053788: @ 0x0807DE4C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _0807DE68 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, #0 + beq _0807DE6C + cmp r0, #4 + beq _0807DE7C + b _0807DEEC + .align 2, 0 +_0807DE68: .4byte 0x03002360 +_0807DE6C: + movs r0, #4 + strb r0, [r1] + ldr r1, _0807DE78 + movs r0, #1 + b _0807DEEA + .align 2, 0 +_0807DE78: .4byte 0x030027A0 +_0807DE7C: + ldr r0, _0807DEB8 + ldr r1, _0807DEBC + mov r8, r1 + str r1, [r0] + ldr r7, _0807DEC0 + ldrb r0, [r7] + movs r6, #0x64 + muls r0, r6, r0 + ldr r5, _0807DEC4 + adds r0, r0, r5 + movs r1, #1 + movs r2, #0 + bl GetEvolutionTargetSpecies + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0 + beq _0807DECC + ldrb r3, [r7] + adds r0, r3, #0 + muls r0, r6, r0 + adds r0, r0, r5 + ldr r1, _0807DEC8 + ldr r1, [r1] + adds r1, #0x8f + ldrb r2, [r1] + adds r1, r4, #0 + bl TradeEvolutionScene + b _0807DEE6 + .align 2, 0 +_0807DEB8: .4byte 0x03005F28 +_0807DEBC: .4byte 0x0807E589 +_0807DEC0: .4byte 0x02031F38 +_0807DEC4: .4byte 0x02024190 +_0807DEC8: .4byte 0x02031F40 +_0807DECC: + bl sub_08076C68 + cmp r0, #0 + beq _0807DEE0 + ldr r0, _0807DEDC + bl SetMainCallback2 + b _0807DEE6 + .align 2, 0 +_0807DEDC: .4byte 0x0807EE9D +_0807DEE0: + mov r0, r8 + bl SetMainCallback2 +_0807DEE6: + ldr r1, _0807DF10 + movs r0, #0xff +_0807DEEA: + strb r0, [r1] +_0807DEEC: + bl HasLinkErrorOccurred + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807DEFA + bl RunTasks +_0807DEFA: + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0807DF10: .4byte 0x02031F38 + thumb_func_end c2_08053788 + + thumb_func_start sub_0807DF14 +sub_0807DF14: @ 0x0807DF14 + push {r4, r5, r6, lr} + bl sub_0807A738 + bl GetBlockReceivedStatus + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r6, #1 + adds r0, r5, #0 + ands r0, r6 + cmp r0, #0 + beq _0807DF52 + ldr r4, _0807DF80 + ldrh r1, [r4] + ldr r0, _0807DF84 + cmp r1, r0 + bne _0807DF3C + ldr r0, _0807DF88 + bl SetMainCallback2 +_0807DF3C: + ldrh r1, [r4] + ldr r0, _0807DF8C + cmp r1, r0 + bne _0807DF4C + ldr r0, _0807DF90 + ldr r0, [r0] + adds r0, #0x72 + strb r6, [r0] +_0807DF4C: + movs r0, #0 + bl ResetBlockReceivedFlag +_0807DF52: + movs r0, #2 + ands r0, r5 + cmp r0, #0 + beq _0807DF7A + ldr r0, _0807DF80 + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r0, r1 + ldrh r1, [r0] + ldr r0, _0807DF8C + cmp r1, r0 + bne _0807DF74 + ldr r0, _0807DF90 + ldr r0, [r0] + adds r0, #0x73 + movs r1, #1 + strb r1, [r0] +_0807DF74: + movs r0, #1 + bl ResetBlockReceivedFlag +_0807DF7A: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0807DF80: .4byte 0x0202207C +_0807DF84: .4byte 0x0000DCBA +_0807DF88: .4byte 0x0807DE4D +_0807DF8C: .4byte 0x0000ABCD +_0807DF90: .4byte 0x02031F40 + thumb_func_end sub_0807DF14 + + thumb_func_start sub_0807DF94 +sub_0807DF94: @ 0x0807DF94 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + movs r1, #0xa + bl __divsi3 + ldrh r4, [r5, #0x22] + adds r4, r4, r0 + strh r4, [r5, #0x22] + ldrh r0, [r5, #0x30] + ldrh r2, [r5, #0x38] + adds r0, r0, r2 + strh r0, [r5, #0x38] + movs r1, #0x38 + ldrsh r0, [r5, r1] + movs r1, #0xa + bl __divsi3 + strh r0, [r5, #0x20] + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + cmp r4, #0x4c + ble _0807DFE2 + movs r0, #0x4c + strh r0, [r5, #0x22] + movs r2, #0x2e + ldrsh r1, [r5, r2] + movs r2, #0x32 + ldrsh r0, [r5, r2] + muls r0, r1, r0 + rsbs r0, r0, #0 + movs r1, #0x64 + bl __divsi3 + strh r0, [r5, #0x2e] + ldrh r0, [r5, #0x34] + adds r0, #1 + strh r0, [r5, #0x34] +_0807DFE2: + movs r1, #0x20 + ldrsh r0, [r5, r1] + cmp r0, #0x78 + bne _0807DFEE + movs r0, #0 + strh r0, [r5, #0x30] +_0807DFEE: + ldrh r0, [r5, #0x36] + ldrh r2, [r5, #0x2e] + adds r0, r0, r2 + strh r0, [r5, #0x2e] + movs r1, #0x34 + ldrsh r0, [r5, r1] + cmp r0, #4 + bne _0807E006 + movs r0, #1 + strh r0, [r5, #0x3c] + ldr r0, _0807E00C + str r0, [r5, #0x1c] +_0807E006: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0807E00C: .4byte 0x08007141 + thumb_func_end sub_0807DF94 + + thumb_func_start sub_0807E010 +sub_0807E010: @ 0x0807E010 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + ldr r1, _0807E078 + movs r2, #0x2e + ldrsh r0, [r4, r2] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x26] + adds r0, r0, r1 + strh r0, [r4, #0x26] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r0, #0x16 + bne _0807E038 + movs r0, #0x38 + bl PlaySE +_0807E038: + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x2c + bne _0807E06E + movs r0, #0x8c + bl PlaySE + ldr r0, _0807E07C + str r0, [r4, #0x1c] + movs r0, #0 + strh r0, [r4, #0x2e] + ldrb r1, [r4, #5] + lsrs r1, r1, #4 + adds r1, #0x10 + movs r0, #1 + lsls r0, r1 + movs r1, #1 + rsbs r1, r1, #0 + ldr r2, _0807E080 + str r2, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade +_0807E06E: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807E078: .4byte 0x0830D2A4 +_0807E07C: .4byte 0x0807E085 +_0807E080: .4byte 0x0000FFFF + thumb_func_end sub_0807E010 + + thumb_func_start sub_0807E084 +sub_0807E084: @ 0x0807E084 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x30 + ldrsh r0, [r4, r1] + cmp r0, #0x14 + bne _0807E098 + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAffineAnim +_0807E098: + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x14 + ble _0807E0D6 + ldr r1, _0807E0DC + movs r2, #0x2e + ldrsh r0, [r4, r2] + adds r0, r0, r1 + movs r1, #0 + ldrsb r1, [r0, r1] + ldrh r0, [r4, #0x26] + subs r0, r0, r1 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x17 + bne _0807E0D6 + adds r0, r4, #0 + bl DestroySprite + ldr r0, _0807E0E0 + ldr r0, [r0] + adds r0, #0x94 + movs r1, #0xe + strh r1, [r0] +_0807E0D6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807E0DC: .4byte 0x0830D2A4 +_0807E0E0: .4byte 0x02031F40 + thumb_func_end sub_0807E084 + + thumb_func_start sub_0807E0E4 +sub_0807E0E4: @ 0x0807E0E4 + push {r4, lr} + adds r4, r0, #0 + ldrh r2, [r4, #0x32] + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0807E114 + ldrh r0, [r4, #0x22] + adds r0, #4 + strh r0, [r4, #0x22] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r3, #0x34 + ldrsh r1, [r4, r3] + cmp r0, r1 + ble _0807E164 + adds r0, r2, #1 + strh r0, [r4, #0x32] + movs r0, #0x16 + strh r0, [r4, #0x2e] + movs r0, #0x38 + bl PlaySE + b _0807E164 +_0807E114: + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0x42 + bne _0807E122 + movs r0, #0x39 + bl PlaySE +_0807E122: + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r0, #0x5c + bne _0807E130 + movs r0, #0x3a + bl PlaySE +_0807E130: + movs r3, #0x2e + ldrsh r0, [r4, r3] + cmp r0, #0x6b + bne _0807E13E + movs r0, #0x3b + bl PlaySE +_0807E13E: + ldr r1, _0807E16C + movs r2, #0x2e + ldrsh r0, [r4, r2] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r3, [r4, #0x26] + adds r0, r0, r3 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x6c + bne _0807E164 + ldr r0, _0807E170 + str r0, [r4, #0x1c] +_0807E164: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807E16C: .4byte 0x0830D2A4 +_0807E170: .4byte 0x08007141 + thumb_func_end sub_0807E0E4 + + thumb_func_start GetInGameTradeSpeciesInfo +GetInGameTradeSpeciesInfo: @ 0x0807E174 + push {r4, r5, lr} + ldr r0, _0807E1B0 + ldrh r0, [r0] + lsls r4, r0, #4 + subs r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _0807E1B4 + adds r4, r4, r0 + ldr r0, _0807E1B8 + ldrh r2, [r4, #0x38] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r5, _0807E1BC + adds r1, r1, r5 + bl StringCopy + ldr r0, _0807E1C0 + ldrh r2, [r4, #0xc] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + adds r1, r1, r5 + bl StringCopy + ldrh r0, [r4, #0x38] + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0807E1B0: .4byte 0x02037280 +_0807E1B4: .4byte 0x0830D114 +_0807E1B8: .4byte 0x02021C40 +_0807E1BC: .4byte 0x082EA31C +_0807E1C0: .4byte 0x02021C54 + thumb_func_end GetInGameTradeSpeciesInfo + + thumb_func_start sub_0807E1C4 +sub_0807E1C4: @ 0x0807E1C4 + push {r4, lr} + sub sp, #0x20 + ldr r0, _0807E20C + ldrh r0, [r0] + lsls r4, r0, #4 + subs r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _0807E210 + adds r4, r4, r0 + ldr r0, _0807E214 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _0807E218 + adds r0, r0, r1 + movs r1, #2 + mov r2, sp + bl GetMonData + ldr r0, _0807E21C + mov r1, sp + bl StringCopy10 + ldr r0, _0807E220 + ldrh r2, [r4, #0xc] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _0807E224 + adds r1, r1, r2 + bl StringCopy + add sp, #0x20 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807E20C: .4byte 0x02037280 +_0807E210: .4byte 0x0830D114 +_0807E214: .4byte 0x02037282 +_0807E218: .4byte 0x02024190 +_0807E21C: .4byte 0x02021C40 +_0807E220: .4byte 0x02021C54 +_0807E224: .4byte 0x082EA31C + thumb_func_end sub_0807E1C4 + + thumb_func_start _CreateInGameTradePokemon +_CreateInGameTradePokemon: @ 0x0807E228 + push {r4, r5, r6, r7, lr} + sub sp, #0x38 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r1, #4 + subs r2, r2, r1 + lsls r2, r2, #2 + ldr r1, _0807E384 + adds r5, r2, r1 + movs r1, #0x64 + muls r0, r1, r0 + ldr r1, _0807E388 + adds r0, r0, r1 + movs r1, #0x38 + bl GetMonData + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + add r4, sp, #0x34 + movs r0, #0xfe + strb r0, [r4] + ldr r6, _0807E38C + ldrh r1, [r5, #0xc] + movs r3, #1 + str r3, [sp] + ldr r0, [r5, #0x24] + str r0, [sp, #4] + str r3, [sp, #8] + ldr r0, [r5, #0x18] + str r0, [sp, #0xc] + adds r0, r6, #0 + movs r3, #0x20 + bl CreateMon + adds r2, r5, #0 + adds r2, #0xe + adds r0, r6, #0 + movs r1, #0x27 + bl SetMonData + adds r2, r5, #0 + adds r2, #0xf + adds r0, r6, #0 + movs r1, #0x28 + bl SetMonData + adds r2, r5, #0 + adds r2, #0x10 + adds r0, r6, #0 + movs r1, #0x29 + bl SetMonData + adds r2, r5, #0 + adds r2, #0x11 + adds r0, r6, #0 + movs r1, #0x2a + bl SetMonData + adds r2, r5, #0 + adds r2, #0x12 + adds r0, r6, #0 + movs r1, #0x2b + bl SetMonData + adds r2, r5, #0 + adds r2, #0x13 + adds r0, r6, #0 + movs r1, #0x2c + bl SetMonData + adds r0, r6, #0 + movs r1, #2 + adds r2, r5, #0 + bl SetMonData + adds r2, r5, #0 + adds r2, #0x2b + adds r0, r6, #0 + movs r1, #7 + bl SetMonData + adds r2, r5, #0 + adds r2, #0x36 + adds r0, r6, #0 + movs r1, #0x31 + bl SetMonData + adds r2, r5, #0 + adds r2, #0x14 + adds r0, r6, #0 + movs r1, #0x2e + bl SetMonData + adds r2, r5, #0 + adds r2, #0x1d + adds r0, r6, #0 + movs r1, #0x17 + bl SetMonData + adds r2, r5, #0 + adds r2, #0x1e + adds r0, r6, #0 + movs r1, #0x18 + bl SetMonData + adds r2, r5, #0 + adds r2, #0x1c + adds r0, r6, #0 + movs r1, #0x16 + bl SetMonData + adds r2, r5, #0 + adds r2, #0x1f + adds r0, r6, #0 + movs r1, #0x21 + bl SetMonData + adds r2, r5, #0 + adds r2, #0x20 + adds r0, r6, #0 + movs r1, #0x2f + bl SetMonData + adds r2, r5, #0 + adds r2, #0x37 + adds r0, r6, #0 + movs r1, #0x30 + bl SetMonData + adds r0, r6, #0 + movs r1, #0x23 + adds r2, r4, #0 + bl SetMonData + mov r4, sp + adds r4, #0x35 + movs r0, #0 + strb r0, [r4] + ldrh r0, [r5, #0x28] + cmp r0, #0 + beq _0807E3A0 + bl ItemIsMail + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0807E394 + add r0, sp, #0x10 + adds r1, r5, #0 + bl sub_0807E3B4 + ldr r0, _0807E390 + add r1, sp, #0x10 + ldm r1!, {r2, r3, r7} + stm r0!, {r2, r3, r7} + ldm r1!, {r2, r3, r7} + stm r0!, {r2, r3, r7} + ldm r1!, {r2, r3, r7} + stm r0!, {r2, r3, r7} + adds r0, r6, #0 + movs r1, #0x40 + adds r2, r4, #0 + bl SetMonData + adds r2, r5, #0 + adds r2, #0x28 + adds r0, r6, #0 + movs r1, #0xc + bl SetMonData + b _0807E3A0 + .align 2, 0 +_0807E384: .4byte 0x0830D114 +_0807E388: .4byte 0x02024190 +_0807E38C: .4byte 0x020243E8 +_0807E390: .4byte 0x02031E60 +_0807E394: + adds r2, r5, #0 + adds r2, #0x28 + adds r0, r6, #0 + movs r1, #0xc + bl SetMonData +_0807E3A0: + ldr r0, _0807E3B0 + bl CalculateMonStats + add sp, #0x38 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0807E3B0: .4byte 0x020243E8 + thumb_func_end _CreateInGameTradePokemon + + thumb_func_start sub_0807E3B4 +sub_0807E3B4: @ 0x0807E3B4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r2, _0807E408 + adds r0, r5, #0 + adds r0, #0x2a + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, r0, r2 + adds r1, r4, #0 + movs r3, #8 +_0807E3CE: + ldrh r0, [r2] + strh r0, [r1] + adds r2, #2 + adds r1, #2 + subs r3, #1 + cmp r3, #0 + bge _0807E3CE + adds r0, r4, #0 + adds r0, #0x12 + adds r1, r5, #0 + adds r1, #0x2b + bl StringCopy + ldr r1, [r5, #0x18] + lsrs r0, r1, #0x18 + strb r0, [r4, #0x1a] + lsrs r0, r1, #0x10 + strb r0, [r4, #0x1b] + lsrs r0, r1, #8 + strb r0, [r4, #0x1c] + strb r1, [r4, #0x1d] + ldrh r0, [r5, #0xc] + strh r0, [r4, #0x1e] + ldrh r0, [r5, #0x28] + strh r0, [r4, #0x20] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0807E408: .4byte 0x0830D204 + thumb_func_end sub_0807E3B4 + + thumb_func_start GetTradeSpecies +GetTradeSpecies: @ 0x0807E40C + push {r4, r5, r6, lr} + ldr r6, _0807E438 + ldrh r0, [r6] + movs r5, #0x64 + muls r0, r5, r0 + ldr r4, _0807E43C + adds r0, r0, r4 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + bne _0807E440 + ldrh r0, [r6] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #0xb + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _0807E442 + .align 2, 0 +_0807E438: .4byte 0x02037282 +_0807E43C: .4byte 0x02024190 +_0807E440: + movs r0, #0 +_0807E442: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end GetTradeSpecies + + thumb_func_start CreateInGameTradePokemon +CreateInGameTradePokemon: @ 0x0807E448 + push {lr} + ldr r0, _0807E45C + ldrb r0, [r0] + ldr r1, _0807E460 + ldrb r1, [r1] + bl _CreateInGameTradePokemon + pop {r0} + bx r0 + .align 2, 0 +_0807E45C: .4byte 0x02037282 +_0807E460: .4byte 0x02037280 + thumb_func_end CreateInGameTradePokemon + + thumb_func_start sub_0807E464 +sub_0807E464: @ 0x0807E464 + push {r4, r5, r6, lr} + bl sub_0807B600 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #1 + bne _0807E4CE + ldr r5, _0807E4F0 + ldr r0, [r5] + adds r0, #0x8e + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _0807E4F4 + adds r0, r0, r4 + bl DestroySprite + ldr r0, [r5] + adds r0, #0x8f + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl FreeSpriteOamMatrix + ldr r0, _0807E4F8 + ldrb r4, [r0] + ldrb r0, [r0, #1] + movs r1, #6 + bl __umodsi3 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl sub_0807AF08 + bl sub_08076C68 + cmp r0, #0 + bne _0807E4C8 + ldr r0, [r5] + adds r2, r0, #0 + adds r2, #0x74 + ldr r1, _0807E4FC + strh r1, [r2] + adds r0, #0x93 + strb r6, [r0] +_0807E4C8: + ldr r0, _0807E500 + bl SetMainCallback2 +_0807E4CE: + bl sub_0807AFF0 + bl sub_0807DF14 + bl RunTasks + bl RunTextPrinters + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0807E4F0: .4byte 0x02031F40 +_0807E4F4: .4byte 0x020205AC +_0807E4F8: .4byte 0x02031F38 +_0807E4FC: .4byte 0x0000ABCD +_0807E500: .4byte 0x0807E505 + thumb_func_end sub_0807E464 + + thumb_func_start sub_0807E504 +sub_0807E504: @ 0x0807E504 + push {r4, lr} + bl sub_0807A738 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl sub_08076C68 + cmp r0, #0 + beq _0807E524 + ldr r0, _0807E520 + bl SetMainCallback2 + b _0807E564 + .align 2, 0 +_0807E520: .4byte 0x0807DE4D +_0807E524: + bl sub_0807DF14 + cmp r4, #0 + bne _0807E564 + ldr r4, _0807E57C + ldr r2, [r4] + adds r0, r2, #0 + adds r0, #0x72 + ldrh r1, [r0] + ldr r0, _0807E580 + cmp r1, r0 + bne _0807E564 + adds r1, r2, #0 + adds r1, #0x74 + ldr r0, _0807E584 + strh r0, [r1] + bl bitmask_all_link_players_but_self + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, [r4] + adds r1, #0x74 + movs r2, #0x14 + bl SendBlock + ldr r0, [r4] + adds r0, #0x72 + movs r1, #2 + strb r1, [r0] + ldr r0, [r4] + adds r0, #0x73 + strb r1, [r0] +_0807E564: + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807E57C: .4byte 0x02031F40 +_0807E580: .4byte 0x00000101 +_0807E584: .4byte 0x0000DCBA + thumb_func_end sub_0807E504 + + thumb_func_start sub_0807E588 +sub_0807E588: @ 0x0807E588 + push {r4, lr} + sub sp, #4 + ldr r1, _0807E5A8 + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, r1, #0 + cmp r0, #0x65 + bls _0807E59E + b _0807EA72 +_0807E59E: + lsls r0, r0, #2 + ldr r1, _0807E5AC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807E5A8: .4byte 0x03002360 +_0807E5AC: .4byte 0x0807E5B0 +_0807E5B0: @ jump table + .4byte _0807E748 @ case 0 + .4byte _0807E764 @ case 1 + .4byte _0807E7D0 @ case 2 + .4byte _0807EA72 @ case 3 + .4byte _0807E8B0 @ case 4 + .4byte _0807E974 @ case 5 + .4byte _0807E99C @ case 6 + .4byte _0807E9B6 @ case 7 + .4byte _0807E9DC @ case 8 + .4byte _0807EA28 @ case 9 + .4byte _0807EA72 @ case 10 + .4byte _0807EA72 @ case 11 + .4byte _0807EA72 @ case 12 + .4byte _0807EA72 @ case 13 + .4byte _0807EA72 @ case 14 + .4byte _0807EA72 @ case 15 + .4byte _0807EA72 @ case 16 + .4byte _0807EA72 @ case 17 + .4byte _0807EA72 @ case 18 + .4byte _0807EA72 @ case 19 + .4byte _0807EA72 @ case 20 + .4byte _0807EA72 @ case 21 + .4byte _0807EA72 @ case 22 + .4byte _0807EA72 @ case 23 + .4byte _0807EA72 @ case 24 + .4byte _0807EA72 @ case 25 + .4byte _0807EA72 @ case 26 + .4byte _0807EA72 @ case 27 + .4byte _0807EA72 @ case 28 + .4byte _0807EA72 @ case 29 + .4byte _0807EA72 @ case 30 + .4byte _0807EA72 @ case 31 + .4byte _0807EA72 @ case 32 + .4byte _0807EA72 @ case 33 + .4byte _0807EA72 @ case 34 + .4byte _0807EA72 @ case 35 + .4byte _0807EA72 @ case 36 + .4byte _0807EA72 @ case 37 + .4byte _0807EA72 @ case 38 + .4byte _0807EA72 @ case 39 + .4byte _0807E8D4 @ case 40 + .4byte _0807E924 @ case 41 + .4byte _0807E952 @ case 42 + .4byte _0807EA72 @ case 43 + .4byte _0807EA72 @ case 44 + .4byte _0807EA72 @ case 45 + .4byte _0807EA72 @ case 46 + .4byte _0807EA72 @ case 47 + .4byte _0807EA72 @ case 48 + .4byte _0807EA72 @ case 49 + .4byte _0807E7F8 @ case 50 + .4byte _0807E854 @ case 51 + .4byte _0807E870 @ case 52 + .4byte _0807EA72 @ case 53 + .4byte _0807EA72 @ case 54 + .4byte _0807EA72 @ case 55 + .4byte _0807EA72 @ case 56 + .4byte _0807EA72 @ case 57 + .4byte _0807EA72 @ case 58 + .4byte _0807EA72 @ case 59 + .4byte _0807EA72 @ case 60 + .4byte _0807EA72 @ case 61 + .4byte _0807EA72 @ case 62 + .4byte _0807EA72 @ case 63 + .4byte _0807EA72 @ case 64 + .4byte _0807EA72 @ case 65 + .4byte _0807EA72 @ case 66 + .4byte _0807EA72 @ case 67 + .4byte _0807EA72 @ case 68 + .4byte _0807EA72 @ case 69 + .4byte _0807EA72 @ case 70 + .4byte _0807EA72 @ case 71 + .4byte _0807EA72 @ case 72 + .4byte _0807EA72 @ case 73 + .4byte _0807EA72 @ case 74 + .4byte _0807EA72 @ case 75 + .4byte _0807EA72 @ case 76 + .4byte _0807EA72 @ case 77 + .4byte _0807EA72 @ case 78 + .4byte _0807EA72 @ case 79 + .4byte _0807EA72 @ case 80 + .4byte _0807EA72 @ case 81 + .4byte _0807EA72 @ case 82 + .4byte _0807EA72 @ case 83 + .4byte _0807EA72 @ case 84 + .4byte _0807EA72 @ case 85 + .4byte _0807EA72 @ case 86 + .4byte _0807EA72 @ case 87 + .4byte _0807EA72 @ case 88 + .4byte _0807EA72 @ case 89 + .4byte _0807EA72 @ case 90 + .4byte _0807EA72 @ case 91 + .4byte _0807EA72 @ case 92 + .4byte _0807EA72 @ case 93 + .4byte _0807EA72 @ case 94 + .4byte _0807EA72 @ case 95 + .4byte _0807EA72 @ case 96 + .4byte _0807EA72 @ case 97 + .4byte _0807EA72 @ case 98 + .4byte _0807EA72 @ case 99 + .4byte _0807E77C @ case 100 + .4byte _0807E7B4 @ case 101 +_0807E748: + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r2, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r4, _0807E75C + ldr r1, _0807E760 + b _0807E7DE + .align 2, 0 +_0807E75C: .4byte 0x02021C7C +_0807E760: .4byte 0x08595430 +_0807E764: + movs r0, #0 + bl sub_08076C90 + ldr r0, _0807E778 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + movs r2, #0 + movs r1, #0x64 + b _0807E8C0 + .align 2, 0 +_0807E778: .4byte 0x03002360 +_0807E77C: + ldr r0, _0807E7AC + ldr r3, [r0] + ldr r0, [r3, #0x64] + adds r0, #1 + str r0, [r3, #0x64] + cmp r0, #0xb4 + bls _0807E798 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r2, r1 + movs r2, #0 + movs r1, #0x65 + strb r1, [r0] + str r2, [r3, #0x64] +_0807E798: + bl _IsLinkTaskFinished + cmp r0, #0 + bne _0807E7A2 + b _0807EA72 +_0807E7A2: + ldr r0, _0807E7B0 + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r0, r2 + b _0807E7C6 + .align 2, 0 +_0807E7AC: .4byte 0x02031F40 +_0807E7B0: .4byte 0x03002360 +_0807E7B4: + bl _IsLinkTaskFinished + cmp r0, #0 + bne _0807E7BE + b _0807EA72 +_0807E7BE: + ldr r0, _0807E7CC + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 +_0807E7C6: + movs r1, #2 + strb r1, [r0] + b _0807EA72 + .align 2, 0 +_0807E7CC: .4byte 0x03002360 +_0807E7D0: + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r2, r0 + movs r0, #0x32 + strb r0, [r1] + ldr r4, _0807E7F0 + ldr r1, _0807E7F4 +_0807E7DE: + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0807EBE0 + b _0807EA72 + .align 2, 0 +_0807E7F0: .4byte 0x02021C7C +_0807E7F4: .4byte 0x08277071 +_0807E7F8: + bl InUnionRoom + cmp r0, #0 + bne _0807E806 + movs r0, #0x15 + bl IncrementGameStat +_0807E806: + ldr r0, _0807E848 + ldrb r0, [r0] + cmp r0, #0 + beq _0807E82E + ldr r4, _0807E84C + bl GetMultiplayerId + movs r1, #1 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r4, #4 + adds r1, r1, r4 + ldr r1, [r1] + movs r0, #2 + bl sub_0801B4A8 +_0807E82E: + bl SetContinueGameWarpStatusToDynamicWarp + bl sub_081532BC + ldr r1, _0807E850 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, #1 + movs r2, #0 + strb r0, [r1] + b _0807E8C2 + .align 2, 0 +_0807E848: .4byte 0x0300319C +_0807E84C: .4byte 0x020226A0 +_0807E850: .4byte 0x03002360 +_0807E854: + ldr r0, _0807E86C + ldr r1, [r0] + ldr r0, [r1, #0x64] + adds r0, #1 + str r0, [r1, #0x64] + cmp r0, #5 + beq _0807E864 + b _0807EA72 +_0807E864: + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r2, r0 + b _0807EA1C + .align 2, 0 +_0807E86C: .4byte 0x02031F40 +_0807E870: + bl sub_081532E8 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _0807E894 + bl ClearContinueGameWarpStatus + ldr r0, _0807E890 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + movs r1, #4 + strb r1, [r0] + b _0807EA72 + .align 2, 0 +_0807E890: .4byte 0x03002360 +_0807E894: + ldr r0, _0807E8A8 + ldr r0, [r0] + str r1, [r0, #0x64] + ldr r0, _0807E8AC + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r0, r2 + movs r1, #0x33 + strb r1, [r0] + b _0807EA72 + .align 2, 0 +_0807E8A8: .4byte 0x02031F40 +_0807E8AC: .4byte 0x03002360 +_0807E8B0: + bl sub_0815331C + ldr r0, _0807E8CC + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + movs r2, #0 + movs r1, #0x28 +_0807E8C0: + strb r1, [r0] +_0807E8C2: + ldr r0, _0807E8D0 + ldr r0, [r0] + str r2, [r0, #0x64] + b _0807EA72 + .align 2, 0 +_0807E8CC: .4byte 0x03002360 +_0807E8D0: .4byte 0x02031F40 +_0807E8D4: + ldr r4, _0807E908 + ldr r1, [r4] + ldr r0, [r1, #0x64] + adds r0, #1 + str r0, [r1, #0x64] + cmp r0, #0x32 + bhi _0807E8E4 + b _0807EA72 +_0807E8E4: + bl GetMultiplayerId + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807E90C + bl Random + ldr r4, [r4] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x1e + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [r4, #0x64] + b _0807E912 + .align 2, 0 +_0807E908: .4byte 0x02031F40 +_0807E90C: + ldr r1, [r4] + movs r0, #0 + str r0, [r1, #0x64] +_0807E912: + ldr r0, _0807E920 + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r0, r2 + movs r1, #0x29 + strb r1, [r0] + b _0807EA72 + .align 2, 0 +_0807E920: .4byte 0x03002360 +_0807E924: + ldr r0, _0807E944 + ldr r1, [r0] + ldr r0, [r1, #0x64] + cmp r0, #0 + bne _0807E94C + movs r0, #1 + bl sub_08076C90 + ldr r0, _0807E948 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + movs r1, #0x2a + strb r1, [r0] + b _0807EA72 + .align 2, 0 +_0807E944: .4byte 0x02031F40 +_0807E948: .4byte 0x03002360 +_0807E94C: + subs r0, #1 + str r0, [r1, #0x64] + b _0807EA72 +_0807E952: + bl _IsLinkTaskFinished + cmp r0, #0 + bne _0807E95C + b _0807EA72 +_0807E95C: + bl sub_08153344 + ldr r0, _0807E970 + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r0, r2 + movs r1, #5 + strb r1, [r0] + b _0807EA72 + .align 2, 0 +_0807E970: .4byte 0x03002360 +_0807E974: + ldr r0, _0807E998 + ldr r1, [r0] + ldr r0, [r1, #0x64] + adds r0, #1 + str r0, [r1, #0x64] + cmp r0, #0x3c + bls _0807EA72 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r2, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #2 + bl sub_08076C90 + b _0807EA72 + .align 2, 0 +_0807E998: .4byte 0x02031F40 +_0807E99C: + bl _IsLinkTaskFinished + cmp r0, #0 + beq _0807EA72 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + b _0807EA14 +_0807E9B6: + ldr r0, _0807E9D4 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0807EA72 + movs r0, #3 + bl FadeOutBGMTemporarily + ldr r1, _0807E9D8 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _0807EA1C + .align 2, 0 +_0807E9D4: .4byte 0x02037C74 +_0807E9D8: .4byte 0x03002360 +_0807E9DC: + bl IsBGMStopped + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0807EA72 + ldr r0, _0807EA04 + ldrb r0, [r0] + cmp r0, #0 + beq _0807EA10 + ldr r0, _0807EA08 + ldr r1, [r0, #8] + ldr r0, _0807EA0C + cmp r1, r0 + bne _0807EA10 + movs r0, #3 + bl sub_08076C90 + b _0807EA14 + .align 2, 0 +_0807EA04: .4byte 0x0300319C +_0807EA08: .4byte 0x03002360 +_0807EA0C: .4byte 0x08076DB5 +_0807EA10: + bl sub_0800A7F8 +_0807EA14: + ldr r1, _0807EA24 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 +_0807EA1C: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0807EA72 + .align 2, 0 +_0807EA24: .4byte 0x03002360 +_0807EA28: + ldr r0, _0807EA50 + ldrb r0, [r0] + cmp r0, #0 + beq _0807EA60 + ldr r1, [r2, #8] + ldr r0, _0807EA54 + cmp r1, r0 + bne _0807EA60 + bl _IsLinkTaskFinished + cmp r0, #0 + beq _0807EA72 + ldr r0, _0807EA58 + movs r1, #0 + strb r1, [r0] + ldr r0, _0807EA5C + bl SetMainCallback2 + b _0807EA72 + .align 2, 0 +_0807EA50: .4byte 0x0300319C +_0807EA54: .4byte 0x08076DB5 +_0807EA58: .4byte 0x030027A0 +_0807EA5C: .4byte 0x0807EAA1 +_0807EA60: + ldr r0, _0807EA94 + ldrb r1, [r0] + cmp r1, #0 + bne _0807EA72 + ldr r0, _0807EA98 + strb r1, [r0] + ldr r0, _0807EA9C + bl SetMainCallback2 +_0807EA72: + bl HasLinkErrorOccurred + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807EA80 + bl RunTasks +_0807EA80: + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807EA94: .4byte 0x030031C4 +_0807EA98: .4byte 0x030027A0 +_0807EA9C: .4byte 0x0807EAA1 + thumb_func_end sub_0807E588 + + thumb_func_start c2_080543C4 +c2_080543C4: @ 0x0807EAA0 + push {r4, r5, lr} + ldr r0, _0807EB0C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _0807EAF6 + bl FreeAllWindowBuffers + movs r0, #3 + bl GetBgTilemapBuffer + bl Free + movs r0, #1 + bl GetBgTilemapBuffer + bl Free + movs r0, #0 + bl GetBgTilemapBuffer + bl Free + bl FreeMonSpritesGfx + ldr r4, _0807EB10 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r0, _0807EB14 + ldrb r0, [r0] + cmp r0, #0 + beq _0807EAEE + bl DestroyWirelessStatusIndicatorSprite +_0807EAEE: + ldr r0, _0807EB18 + ldr r0, [r0, #8] + bl SetMainCallback2 +_0807EAF6: + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0807EB0C: .4byte 0x02037C74 +_0807EB10: .4byte 0x02031F40 +_0807EB14: .4byte 0x0300319C +_0807EB18: .4byte 0x03002360 + thumb_func_end c2_080543C4 + + thumb_func_start DoInGameTradeScene +DoInGameTradeScene: @ 0x0807EB1C + push {lr} + sub sp, #4 + bl ScriptContext2_Enable + ldr r0, _0807EB44 + movs r1, #0xa + bl CreateTask + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_0807EB44: .4byte 0x0807EB49 + thumb_func_end DoInGameTradeScene + + thumb_func_start sub_0807EB48 +sub_0807EB48: @ 0x0807EB48 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0807EB74 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0807EB6C + ldr r0, _0807EB78 + bl SetMainCallback2 + ldr r1, _0807EB7C + ldr r0, _0807EB80 + str r0, [r1] + adds r0, r4, #0 + bl DestroyTask +_0807EB6C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807EB74: .4byte 0x02037C74 +_0807EB78: .4byte 0x0807ACC9 +_0807EB7C: .4byte 0x03005B0C +_0807EB80: .4byte 0x080AEA65 + thumb_func_end sub_0807EB48 + + thumb_func_start sub_0807EB84 +sub_0807EB84: @ 0x0807EB84 + push {r4, r5, lr} + movs r5, #0 + movs r4, #0 +_0807EB8A: + ldr r0, _0807EBC8 + ldrb r0, [r0, #1] + movs r1, #6 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x64 + muls r0, r1, r0 + ldr r1, _0807EBCC + adds r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x43 + bl GetMonData + adds r0, r5, r0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xb + bls _0807EB8A + cmp r5, #0 + beq _0807EBC2 + ldr r0, _0807EBD0 + bl FlagSet +_0807EBC2: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0807EBC8: .4byte 0x02031F38 +_0807EBCC: .4byte 0x020243E8 +_0807EBD0: .4byte 0x0000089B + thumb_func_end sub_0807EB84 + + thumb_func_start sub_0807EBD4 +sub_0807EBD4: @ 0x0807EBD4 + push {lr} + bl sub_0807ABCC + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0807EBD4 + + thumb_func_start sub_0807EBE0 +sub_0807EBE0: @ 0x0807EBE0 + push {r4, r5, r6, lr} + sub sp, #0x14 + adds r5, r0, #0 + adds r6, r1, #0 + adds r4, r2, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + movs r1, #0xff + bl FillWindowPixelBuffer + ldr r2, _0807EC44 + ldr r0, [r2] + adds r0, #0xf6 + movs r3, #0 + movs r1, #0xf + strb r1, [r0] + ldr r0, [r2] + adds r0, #0xf7 + movs r1, #1 + strb r1, [r0] + ldr r0, [r2] + adds r0, #0xf8 + movs r1, #6 + strb r1, [r0] + str r3, [sp] + str r3, [sp, #4] + ldr r0, [r2] + adds r0, #0xf6 + str r0, [sp, #8] + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + str r4, [sp, #0xc] + str r6, [sp, #0x10] + adds r0, r5, #0 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized4 + adds r0, r5, #0 + movs r1, #3 + bl CopyWindowToVram + add sp, #0x14 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0807EC44: .4byte 0x02031F40 + thumb_func_end sub_0807EBE0 + + thumb_func_start c3_08054588 +c3_08054588: @ 0x0807EC48 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _0807EC80 + adds r4, r0, r1 + ldr r1, _0807EC84 + movs r2, #0 + ldrsh r0, [r4, r2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r1, r0, #4 + adds r2, r1, #0 + movs r3, #4 + ldrsh r0, [r4, r3] + cmp r0, #0 + bne _0807EC8C + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + beq _0807EC94 + lsls r0, r1, #1 + ldr r1, _0807EC88 + adds r0, r0, r1 + b _0807EC96 + .align 2, 0 +_0807EC80: .4byte 0x03005B68 +_0807EC84: .4byte 0x0830D310 +_0807EC88: .4byte 0x0830BCE4 +_0807EC8C: + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + bne _0807ECA4 +_0807EC94: + ldr r0, _0807ECA0 +_0807EC96: + movs r1, #0x30 + movs r2, #0x20 + bl LoadPalette + b _0807ECB2 + .align 2, 0 +_0807ECA0: .4byte 0x0830C0E4 +_0807ECA4: + lsls r0, r2, #1 + ldr r1, _0807ED08 + adds r0, r0, r1 + movs r1, #0x30 + movs r2, #0x20 + bl LoadPalette +_0807ECB2: + ldr r0, _0807ED0C + movs r2, #0 + ldrsh r1, [r4, r2] + lsls r1, r1, #1 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0 + bne _0807ECD0 + movs r3, #2 + ldrsh r0, [r4, r3] + cmp r0, #0 + bne _0807ECD0 + movs r0, #0xc3 + bl PlaySE +_0807ECD0: + movs r0, #2 + ldrsh r2, [r4, r0] + ldr r1, _0807ED0C + movs r3, #0 + ldrsh r0, [r4, r3] + lsls r0, r0, #1 + adds r1, #1 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r2, r0 + bne _0807ED10 + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + movs r0, #0 + strh r0, [r4, #2] + movs r2, #0 + ldrsh r0, [r4, r2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0xff + bne _0807ED16 + adds r0, r5, #0 + bl DestroyTask + b _0807ED16 + .align 2, 0 +_0807ED08: .4byte 0x0830BEE4 +_0807ED0C: .4byte 0x0830D310 +_0807ED10: + ldrh r0, [r4, #2] + adds r0, #1 + strh r0, [r4, #2] +_0807ED16: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end c3_08054588 + + thumb_func_start c3_0805465C +c3_0805465C: @ 0x0807ED1C + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r0, #0 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _0807EDCC + adds r5, r0, r1 + movs r0, #0 + ldrsh r4, [r5, r0] + cmp r4, #0 + bne _0807ED6E + ldr r2, _0807EDD0 + ldr r0, [r2] + adds r3, r0, #0 + adds r3, #0xfd + movs r1, #0x78 + strb r1, [r3] + adds r0, #0xfb + strb r1, [r0] + ldr r0, [r2] + adds r0, #0xfc + strb r4, [r0] + ldr r0, [r2] + adds r0, #0xfe + movs r1, #0xa0 + strb r1, [r0] + movs r1, #0x80 + lsls r1, r1, #6 + movs r0, #0 + bl SetGpuRegBits + movs r0, #0x4a + movs r1, #0x10 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0x13 + bl SetGpuReg +_0807ED6E: + ldr r4, _0807EDD0 + ldr r0, [r4] + adds r1, r0, #0 + adds r1, #0xfd + ldrb r1, [r1] + adds r0, #0xfb + ldrb r0, [r0] + lsls r0, r0, #8 + orrs r1, r0 + movs r0, #0x40 + bl SetGpuReg + ldr r0, [r4] + adds r1, r0, #0 + adds r1, #0xfe + ldrb r1, [r1] + adds r0, #0xfc + ldrb r0, [r0] + lsls r0, r0, #8 + orrs r1, r0 + movs r0, #0x44 + bl SetGpuReg + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + ldr r1, [r4] + adds r1, #0xfb + ldrb r0, [r1] + subs r0, #5 + strb r0, [r1] + ldr r1, [r4] + adds r1, #0xfd + ldrb r0, [r1] + adds r0, #5 + strb r0, [r1] + ldr r0, [r4] + adds r0, #0xfb + ldrb r0, [r0] + cmp r0, #0x4f + bhi _0807EDC6 + adds r0, r6, #0 + bl DestroyTask +_0807EDC6: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0807EDCC: .4byte 0x03005B68 +_0807EDD0: .4byte 0x02031F40 + thumb_func_end c3_0805465C + + thumb_func_start sub_0807EDD4 +sub_0807EDD4: @ 0x0807EDD4 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r0, #0 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _0807EE78 + adds r5, r0, r1 + movs r1, #0 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _0807EE10 + ldr r2, _0807EE7C + ldr r0, [r2] + adds r0, #0xfb + movs r1, #0x50 + strb r1, [r0] + ldr r0, [r2] + adds r0, #0xfd + movs r1, #0xa0 + strb r1, [r0] + movs r0, #0x4a + movs r1, #0x10 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0x13 + bl SetGpuReg +_0807EE10: + ldr r4, _0807EE7C + ldr r0, [r4] + adds r1, r0, #0 + adds r1, #0xfd + ldrb r1, [r1] + adds r0, #0xfb + ldrb r0, [r0] + lsls r0, r0, #8 + orrs r1, r0 + movs r0, #0x40 + bl SetGpuReg + ldr r0, [r4] + adds r1, r0, #0 + adds r1, #0xfe + ldrb r1, [r1] + adds r0, #0xfc + ldrb r0, [r0] + lsls r0, r0, #8 + orrs r1, r0 + movs r0, #0x44 + bl SetGpuReg + ldr r0, [r4] + adds r0, #0xfb + ldrb r0, [r0] + cmp r0, #0x78 + beq _0807EE84 + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + ldr r1, [r4] + adds r1, #0xfb + ldrb r0, [r1] + adds r0, #5 + strb r0, [r1] + ldr r1, [r4] + adds r1, #0xfd + ldrb r0, [r1] + subs r0, #5 + strb r0, [r1] + ldr r0, [r4] + adds r0, #0xfb + ldrb r0, [r0] + cmp r0, #0x73 + bls _0807EE94 + ldr r2, _0807EE80 + movs r0, #8 + movs r1, #0 + bl BlendPalettes + b _0807EE94 + .align 2, 0 +_0807EE78: .4byte 0x03005B68 +_0807EE7C: .4byte 0x02031F40 +_0807EE80: .4byte 0x0000FFFF +_0807EE84: + movs r1, #0x80 + lsls r1, r1, #6 + movs r0, #0 + bl ClearGpuRegBits + adds r0, r6, #0 + bl DestroyTask +_0807EE94: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0807EDD4 + + thumb_func_start sub_0807EE9C +sub_0807EE9C: @ 0x0807EE9C + push {r4, r5, lr} + sub sp, #4 + ldr r1, _0807EEBC + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, r1, #0 + cmp r0, #0xc + bls _0807EEB2 + b _0807F144 +_0807EEB2: + lsls r0, r0, #2 + ldr r1, _0807EEC0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807EEBC: .4byte 0x03002360 +_0807EEC0: .4byte 0x0807EEC4 +_0807EEC4: @ jump table + .4byte _0807EEF8 @ case 0 + .4byte _0807EF20 @ case 1 + .4byte _0807EF38 @ case 2 + .4byte _0807EF88 @ case 3 + .4byte _0807EFA8 @ case 4 + .4byte _0807EFE4 @ case 5 + .4byte _0807F008 @ case 6 + .4byte _0807F058 @ case 7 + .4byte _0807F086 @ case 8 + .4byte _0807F0A4 @ case 9 + .4byte _0807F0CC @ case 10 + .4byte _0807F0FC @ case 11 + .4byte _0807F130 @ case 12 +_0807EEF8: + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r2, r0 + movs r0, #1 + strb r0, [r1] + ldr r4, _0807EF18 + ldr r1, _0807EF1C + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0807EBE0 + b _0807F144 + .align 2, 0 +_0807EF18: .4byte 0x02021C7C +_0807EF1C: .4byte 0x08595430 +_0807EF20: + movs r0, #0 + bl sub_08076C90 + ldr r0, _0807EF34 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + movs r2, #0 + movs r1, #2 + b _0807EFF4 + .align 2, 0 +_0807EF34: .4byte 0x03002360 +_0807EF38: + bl _IsLinkTaskFinished + cmp r0, #0 + bne _0807EF42 + b _0807F144 +_0807EF42: + ldr r0, _0807EF78 + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r0, r2 + movs r5, #0 + movs r1, #3 + strb r1, [r0] + ldr r4, _0807EF7C + ldr r1, _0807EF80 + adds r0, r4, #0 + bl StringExpandPlaceholders + movs r0, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0807EBE0 + movs r0, #0x15 + bl IncrementGameStat + bl sub_081532BC + ldr r0, _0807EF84 + ldr r0, [r0] + str r5, [r0, #0x64] + b _0807F144 + .align 2, 0 +_0807EF78: .4byte 0x03002360 +_0807EF7C: .4byte 0x02021C7C +_0807EF80: .4byte 0x08277071 +_0807EF84: .4byte 0x02031F40 +_0807EF88: + ldr r0, _0807EFA4 + ldr r1, [r0] + ldr r0, [r1, #0x64] + adds r0, #1 + str r0, [r1, #0x64] + cmp r0, #5 + beq _0807EF98 + b _0807F144 +_0807EF98: + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r2, r0 + movs r0, #4 + strb r0, [r1] + b _0807F144 + .align 2, 0 +_0807EFA4: .4byte 0x02031F40 +_0807EFA8: + bl sub_081532E8 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _0807EFC8 + ldr r0, _0807EFC4 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + movs r1, #5 + strb r1, [r0] + b _0807F144 + .align 2, 0 +_0807EFC4: .4byte 0x03002360 +_0807EFC8: + ldr r0, _0807EFDC + ldr r0, [r0] + str r1, [r0, #0x64] + ldr r0, _0807EFE0 + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r0, r2 + movs r1, #3 + strb r1, [r0] + b _0807F144 + .align 2, 0 +_0807EFDC: .4byte 0x02031F40 +_0807EFE0: .4byte 0x03002360 +_0807EFE4: + bl sub_0815331C + ldr r0, _0807F000 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + movs r2, #0 + movs r1, #6 +_0807EFF4: + strb r1, [r0] + ldr r0, _0807F004 + ldr r0, [r0] + str r2, [r0, #0x64] + b _0807F144 + .align 2, 0 +_0807F000: .4byte 0x03002360 +_0807F004: .4byte 0x02031F40 +_0807F008: + ldr r4, _0807F03C + ldr r1, [r4] + ldr r0, [r1, #0x64] + adds r0, #1 + str r0, [r1, #0x64] + cmp r0, #0xa + bhi _0807F018 + b _0807F144 +_0807F018: + bl GetMultiplayerId + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807F040 + bl Random + ldr r4, [r4] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x1e + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [r4, #0x64] + b _0807F046 + .align 2, 0 +_0807F03C: .4byte 0x02031F40 +_0807F040: + ldr r1, [r4] + movs r0, #0 + str r0, [r1, #0x64] +_0807F046: + ldr r0, _0807F054 + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r0, r2 + movs r1, #7 + strb r1, [r0] + b _0807F144 + .align 2, 0 +_0807F054: .4byte 0x03002360 +_0807F058: + ldr r0, _0807F078 + ldr r1, [r0] + ldr r0, [r1, #0x64] + cmp r0, #0 + bne _0807F080 + movs r0, #1 + bl sub_08076C90 + ldr r0, _0807F07C + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + movs r1, #8 + strb r1, [r0] + b _0807F144 + .align 2, 0 +_0807F078: .4byte 0x02031F40 +_0807F07C: .4byte 0x03002360 +_0807F080: + subs r0, #1 + str r0, [r1, #0x64] + b _0807F144 +_0807F086: + bl _IsLinkTaskFinished + cmp r0, #0 + beq _0807F144 + bl sub_08153344 + ldr r0, _0807F0A0 + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r0, r2 + movs r1, #9 + strb r1, [r0] + b _0807F144 + .align 2, 0 +_0807F0A0: .4byte 0x03002360 +_0807F0A4: + ldr r0, _0807F0C8 + ldr r1, [r0] + ldr r0, [r1, #0x64] + adds r0, #1 + str r0, [r1, #0x64] + cmp r0, #0x3c + bls _0807F144 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r2, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #2 + bl sub_08076C90 + b _0807F144 + .align 2, 0 +_0807F0C8: .4byte 0x02031F40 +_0807F0CC: + bl _IsLinkTaskFinished + cmp r0, #0 + beq _0807F144 + movs r0, #3 + bl FadeOutBGMTemporarily + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _0807F0F8 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + movs r1, #0xb + strb r1, [r0] + b _0807F144 + .align 2, 0 +_0807F0F8: .4byte 0x03002360 +_0807F0FC: + ldr r0, _0807F128 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0807F144 + bl IsBGMStopped + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0807F144 + movs r0, #3 + bl sub_08076C90 + ldr r0, _0807F12C + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r0, r2 + movs r1, #0xc + strb r1, [r0] + b _0807F144 + .align 2, 0 +_0807F128: .4byte 0x02037C74 +_0807F12C: .4byte 0x03002360 +_0807F130: + bl _IsLinkTaskFinished + cmp r0, #0 + beq _0807F144 + ldr r0, _0807F168 + movs r1, #0 + strb r1, [r0] + ldr r0, _0807F16C + bl SetMainCallback2 +_0807F144: + bl HasLinkErrorOccurred + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807F152 + bl RunTasks +_0807F152: + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0807F168: .4byte 0x030027A0 +_0807F16C: .4byte 0x0807EAA1 + thumb_func_end sub_0807EE9C + diff --git a/asm/trader.s b/asm/trader.s new file mode 100644 index 0000000..acd1804 --- /dev/null +++ b/asm/trader.s @@ -0,0 +1,593 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ScrSpecial_TraderMenuGiveDecoration +ScrSpecial_TraderMenuGiveDecoration: @ 0x081339EC + push {lr} + ldr r3, _08133A04 + ldr r0, [r3] + ldr r0, [r0, #0x1c] + adds r1, r0, #0 + adds r1, #0x20 + ldrb r0, [r1] + cmp r0, #0 + bne _08133A08 + movs r0, #0 + b _08133A22 + .align 2, 0 +_08133A04: .4byte 0x0202414C +_08133A08: + subs r0, #1 + strb r0, [r1] + ldr r2, _08133A28 + ldr r0, [r3] + ldr r1, [r0, #0x1c] + adds r0, r1, #0 + adds r0, #0x20 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r2] + movs r0, #1 +_08133A22: + pop {r1} + bx r1 + .align 2, 0 +_08133A28: .4byte 0x0203A804 + thumb_func_end ScrSpecial_TraderMenuGiveDecoration + + thumb_func_start TraderSetup +TraderSetup: @ 0x08133A2C + push {r4, r5, r6, lr} + ldr r0, _08133A80 + ldr r1, [r0] + ldr r0, _08133A84 + adds r5, r1, r0 + movs r2, #0 + movs r0, #2 + strb r0, [r5] + ldr r0, _08133A88 + adds r1, r1, r0 + strb r2, [r1] + movs r4, #0 + ldr r6, _08133A8C +_08133A46: + movs r0, #0xb + muls r0, r4, r0 + adds r0, #5 + adds r0, r5, r0 + lsls r1, r4, #2 + adds r1, r1, r6 + ldr r1, [r1] + bl StringCopy + adds r1, r5, #1 + adds r1, r1, r4 + ldr r0, _08133A90 + adds r0, r4, r0 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x32 + adds r0, r0, r4 + movs r1, #1 + strb r1, [r0] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _08133A46 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08133A80: .4byte 0x03005AEC +_08133A84: .4byte 0x00002E28 +_08133A88: .4byte 0x00002E59 +_08133A8C: .4byte 0x0858F7F4 +_08133A90: .4byte 0x0858F804 + thumb_func_end TraderSetup + + thumb_func_start Trader_ResetFlag +Trader_ResetFlag: @ 0x08133A94 + ldr r0, _08133AA4 + ldr r0, [r0] + ldr r1, _08133AA8 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + bx lr + .align 2, 0 +_08133AA4: .4byte 0x03005AEC +_08133AA8: .4byte 0x00002E59 + thumb_func_end Trader_ResetFlag + + thumb_func_start sub_08133AAC +sub_08133AAC: @ 0x08133AAC + push {r4, r5, r6, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _08133B0C + adds r5, r1, r0 + ldr r0, _08133B10 + ldr r0, [r0] + ldr r1, _08133B14 + adds r6, r0, r1 + ldr r0, _08133B18 + bl AddWindow + strh r0, [r5, #6] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0x85 + lsls r2, r2, #2 + movs r1, #0 + movs r3, #0xe + bl DrawStdFrameWithCustomTileAndPalette + movs r4, #0 +_08133AE0: + adds r0, r6, #1 + adds r1, r0, r4 + ldrb r0, [r1] + cmp r0, #0x78 + bls _08133B20 + ldrb r0, [r5, #6] + lsls r1, r4, #4 + adds r1, #2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + ldr r2, _08133B1C + movs r3, #8 + bl AddTextPrinterParameterized + b _08133B48 + .align 2, 0 +_08133B0C: .4byte 0x03005B68 +_08133B10: .4byte 0x03005AEC +_08133B14: .4byte 0x00002E28 +_08133B18: .4byte 0x0858F808 +_08133B1C: .4byte 0x085C93F9 +_08133B20: + ldrb r0, [r5, #6] + ldrb r1, [r1] + lsls r2, r1, #3 + subs r2, r2, r1 + lsls r2, r2, #2 + ldr r1, _08133B94 + adds r2, r2, r1 + lsls r1, r4, #4 + adds r1, #2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r1, #0 + str r1, [sp, #8] + movs r1, #1 + movs r3, #8 + bl AddTextPrinterParameterized +_08133B48: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _08133AE0 + ldrb r0, [r5, #6] + ldr r2, _08133B98 + lsls r1, r4, #4 + adds r1, #2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp] + movs r1, #0xff + str r1, [sp, #4] + movs r4, #0 + str r4, [sp, #8] + movs r1, #1 + movs r3, #8 + bl AddTextPrinterParameterized + ldrb r0, [r5, #6] + movs r1, #0x10 + str r1, [sp] + movs r1, #5 + str r1, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl sub_081984B0 + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08133B94: .4byte 0x08580CD1 +_08133B98: .4byte 0x085C93C8 + thumb_func_end sub_08133AAC + + thumb_func_start ScrSpecial_IsDecorationFull +ScrSpecial_IsDecorationFull: @ 0x08133B9C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r2, r1, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _08133BC0 + adds r4, r0, r1 + cmp r2, #0x78 + bls _08133BCC + ldr r1, _08133BC4 + ldr r2, _08133BC8 + adds r0, r2, #0 + strh r0, [r1] + b _08133BD0 + .align 2, 0 +_08133BC0: .4byte 0x03005B68 +_08133BC4: .4byte 0x02037280 +_08133BC8: .4byte 0x0000FFFF +_08133BCC: + ldr r0, _08133BFC + strh r2, [r0] +_08133BD0: + ldrb r0, [r4, #6] + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + ldrb r0, [r4, #6] + bl ClearWindowTilemap + ldrb r0, [r4, #6] + bl RemoveWindow + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + adds r0, r5, #0 + bl DestroyTask + bl EnableBothScriptContexts + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08133BFC: .4byte 0x02037280 + thumb_func_end ScrSpecial_IsDecorationFull + + thumb_func_start Task_HandleGetDecorationMenuInput +Task_HandleGetDecorationMenuInput: @ 0x08133C00 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _08133C2C + ldr r0, [r0] + ldr r1, _08133C30 + adds r5, r0, r1 + bl Menu_ProcessInput + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + asrs r1, r0, #0x18 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _08133C38 + cmp r1, r0 + bgt _08133C34 + subs r0, #1 + cmp r1, r0 + beq _08133C70 + b _08133C48 + .align 2, 0 +_08133C2C: .4byte 0x03005AEC +_08133C30: .4byte 0x00002E28 +_08133C34: + cmp r1, #4 + bne _08133C48 +_08133C38: + movs r0, #5 + bl PlaySE + adds r0, r6, #0 + movs r1, #0 + bl ScrSpecial_IsDecorationFull + b _08133C70 +_08133C48: + movs r0, #5 + bl PlaySE + ldr r0, _08133C78 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + strh r4, [r0] + ldr r0, _08133C7C + movs r1, #0xb + muls r1, r4, r1 + adds r1, #5 + adds r1, r5, r1 + bl StringCopy + adds r0, r5, #1 + adds r0, r0, r4 + ldrb r1, [r0] + adds r0, r6, #0 + bl ScrSpecial_IsDecorationFull +_08133C70: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08133C78: .4byte 0x02037282 +_08133C7C: .4byte 0x02021C40 + thumb_func_end Task_HandleGetDecorationMenuInput + + thumb_func_start ScrSpecial_GetTraderTradedFlag +ScrSpecial_GetTraderTradedFlag: @ 0x08133C80 + ldr r0, _08133C90 + ldr r0, [r0] + ldr r1, _08133C94 + ldr r2, _08133C98 + adds r0, r0, r2 + ldrb r0, [r0] + strh r0, [r1] + bx lr + .align 2, 0 +_08133C90: .4byte 0x03005AEC +_08133C94: .4byte 0x02037290 +_08133C98: .4byte 0x00002E59 + thumb_func_end ScrSpecial_GetTraderTradedFlag + + thumb_func_start ScrSpecial_DoesPlayerHaveNoDecorations +ScrSpecial_DoesPlayerHaveNoDecorations: @ 0x08133C9C + push {r4, r5, lr} + movs r4, #0 + ldr r5, _08133CB4 +_08133CA2: + adds r0, r4, #0 + bl GetNumOwnedDecorationsInCategory + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08133CB8 + movs r0, #0 + strh r0, [r5] + b _08133CC8 + .align 2, 0 +_08133CB4: .4byte 0x02037290 +_08133CB8: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #7 + bls _08133CA2 + ldr r1, _08133CD0 + movs r0, #1 + strh r0, [r1] +_08133CC8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08133CD0: .4byte 0x02037290 + thumb_func_end ScrSpecial_DoesPlayerHaveNoDecorations + + thumb_func_start sub_08133CD4 +sub_08133CD4: @ 0x08133CD4 + push {r4, r5, r6, lr} + ldr r6, _08133D2C + movs r0, #0 + strh r0, [r6] + ldr r4, _08133D30 + ldr r5, _08133D34 + ldrh r1, [r5] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r2, r0, r4 + ldr r0, _08133D38 + ldrh r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r1, [r2, #0xe] + ldrb r0, [r0, #0xe] + cmp r1, r0 + beq _08133D26 + adds r0, r1, #0 + bl GetFirstEmptyDecorSlot + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _08133D26 + ldr r0, _08133D3C + ldrh r2, [r5] + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r4 + ldrb r1, [r1, #0xe] + bl CopyDecorationCategoryName + movs r0, #1 + strh r0, [r6] +_08133D26: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08133D2C: .4byte 0x02037290 +_08133D30: .4byte 0x08580CD0 +_08133D34: .4byte 0x02037280 +_08133D38: .4byte 0x02037284 +_08133D3C: .4byte 0x02021C54 + thumb_func_end sub_08133CD4 + + thumb_func_start CreateAvailableDecorationsMenu +CreateAvailableDecorationsMenu: @ 0x08133D40 + push {lr} + ldr r0, _08133D50 + movs r1, #0 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_08133D50: .4byte 0x081271C1 + thumb_func_end CreateAvailableDecorationsMenu + + thumb_func_start sub_08133D54 +sub_08133D54: @ 0x08133D54 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + bl IsSelectedDecorInThePC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08133DB8 + ldr r5, _08133D9C + ldr r0, _08133DA0 + ldrb r1, [r0] + ldr r0, _08133DA4 + ldr r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + strh r0, [r5] + ldr r0, _08133DA8 + ldr r1, _08133DAC + ldrh r2, [r1] + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + ldr r4, _08133DB0 + adds r1, r1, r4 + bl StringCopy + ldr r0, _08133DB4 + ldrh r2, [r5] + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r4 + bl StringCopy + b _08133DC0 + .align 2, 0 +_08133D9C: .4byte 0x02037284 +_08133DA0: .4byte 0x02039E3E +_08133DA4: .4byte 0x02039E18 +_08133DA8: .4byte 0x02021C68 +_08133DAC: .4byte 0x02037280 +_08133DB0: .4byte 0x08580CD1 +_08133DB4: .4byte 0x02021C54 +_08133DB8: + ldr r1, _08133DD0 + ldr r2, _08133DD4 + adds r0, r2, #0 + strh r0, [r1] +_08133DC0: + adds r0, r6, #0 + bl DestroyTask + bl EnableBothScriptContexts + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08133DD0: .4byte 0x02037284 +_08133DD4: .4byte 0x0000FFFF + thumb_func_end sub_08133D54 + + thumb_func_start ExitTraderMenu +ExitTraderMenu: @ 0x08133DD8 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08133DF0 + movs r1, #0 + strh r1, [r2] + bl DestroyTask + bl EnableBothScriptContexts + pop {r0} + bx r0 + .align 2, 0 +_08133DF0: .4byte 0x02037284 + thumb_func_end ExitTraderMenu + + thumb_func_start ScrSpecial_TraderDoDecorationTrade +ScrSpecial_TraderDoDecorationTrade: @ 0x08133DF4 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + ldr r0, _08133E54 + ldr r6, [r0] + ldr r0, _08133E58 + adds r5, r6, r0 + ldr r1, _08133E5C + mov r8, r1 + ldrb r0, [r1] + bl DecorationRemove + ldr r0, _08133E60 + ldrb r0, [r0] + bl DecorationAdd + ldr r4, _08133E64 + ldrh r1, [r4] + movs r0, #0xb + muls r0, r1, r0 + adds r0, #5 + adds r5, r5, r0 + ldr r0, _08133E68 + ldr r1, [r0] + adds r0, r5, #0 + bl StringCopy + ldr r2, _08133E6C + adds r0, r6, r2 + ldrh r1, [r4] + adds r0, r0, r1 + mov r2, r8 + ldrh r1, [r2] + strb r1, [r0] + ldr r1, _08133E70 + adds r0, r6, r1 + ldrh r4, [r4] + adds r0, r0, r4 + movs r1, #1 + strb r1, [r0] + ldr r2, _08133E74 + adds r6, r6, r2 + strb r1, [r6] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08133E54: .4byte 0x03005AEC +_08133E58: .4byte 0x00002E28 +_08133E5C: .4byte 0x02037284 +_08133E60: .4byte 0x02037280 +_08133E64: .4byte 0x02037282 +_08133E68: .4byte 0x03005AF0 +_08133E6C: .4byte 0x00002E29 +_08133E70: .4byte 0x00002E5A +_08133E74: .4byte 0x00002E59 + thumb_func_end ScrSpecial_TraderDoDecorationTrade + + thumb_func_start ScrSpecial_TraderMenuGetDecoration +ScrSpecial_TraderMenuGetDecoration: @ 0x08133E78 + push {lr} + ldr r0, _08133E90 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_08133AAC + pop {r0} + bx r0 + .align 2, 0 +_08133E90: .4byte 0x08133C01 + thumb_func_end ScrSpecial_TraderMenuGetDecoration + diff --git a/asm/trainer_card.s b/asm/trainer_card.s new file mode 100644 index 0000000..7189f4d --- /dev/null +++ b/asm/trainer_card.s @@ -0,0 +1,5564 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start VblankCb_TrainerCard +VblankCb_TrainerCard: @ 0x080C1CBC + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + bl sub_080C41FC + ldr r0, _080C1CF0 + ldr r0, [r0] + ldrb r0, [r0, #9] + cmp r0, #0 + beq _080C1CEC + ldr r1, _080C1CF4 + ldr r0, _080C1CF8 + str r0, [r1] + movs r2, #0xf0 + lsls r2, r2, #3 + adds r0, r0, r2 + str r0, [r1, #4] + ldr r0, _080C1CFC + str r0, [r1, #8] + ldr r0, [r1, #8] +_080C1CEC: + pop {r0} + bx r0 + .align 2, 0 +_080C1CF0: .4byte 0x02039988 +_080C1CF4: .4byte 0x040000D4 +_080C1CF8: .4byte 0x020388C8 +_080C1CFC: .4byte 0x800000A0 + thumb_func_end VblankCb_TrainerCard + + thumb_func_start HblankCb_TrainerCard +HblankCb_TrainerCard: @ 0x080C1D00 + push {r4, lr} + ldr r4, _080C1D2C + ldrh r3, [r4] + movs r0, #0 + strh r0, [r4] + ldr r1, _080C1D30 + ldr r0, _080C1D34 + ldrh r2, [r0] + movs r0, #0xff + ands r0, r2 + lsls r0, r0, #1 + movs r2, #0xf0 + lsls r2, r2, #3 + adds r1, r1, r2 + adds r0, r0, r1 + ldrh r1, [r0] + ldr r0, _080C1D38 + strh r1, [r0] + strh r3, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C1D2C: .4byte 0x04000208 +_080C1D30: .4byte 0x020388C8 +_080C1D34: .4byte 0x04000006 +_080C1D38: .4byte 0x04000012 + thumb_func_end HblankCb_TrainerCard + + thumb_func_start CB2_TrainerCard +CB2_TrainerCard: @ 0x080C1D3C + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CB2_TrainerCard + + thumb_func_start CloseTrainerCard +CloseTrainerCard: @ 0x080C1D54 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r5, _080C1D84 + ldr r0, [r5] + ldr r1, _080C1D88 + adds r0, r0, r1 + ldr r0, [r0] + bl SetMainCallback2 + bl FreeAllWindowBuffers + ldr r0, [r5] + bl Free + movs r0, #0 + str r0, [r5] + adds r0, r4, #0 + bl DestroyTask + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080C1D84: .4byte 0x02039988 +_080C1D88: .4byte 0x0000051C + thumb_func_end CloseTrainerCard + + thumb_func_start sub_080C1D8C +sub_080C1D8C: @ 0x080C1D8C + push {r4, r5, r6, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _080C1DAC + ldr r0, [r1] + ldrb r0, [r0] + adds r4, r1, #0 + cmp r0, #0x10 + bls _080C1DA2 + b _080C20F6 +_080C1DA2: + lsls r0, r0, #2 + ldr r1, _080C1DB0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C1DAC: .4byte 0x02039988 +_080C1DB0: .4byte 0x080C1DB4 +_080C1DB4: @ jump table + .4byte _080C1DF8 @ case 0 + .4byte _080C1E0E @ case 1 + .4byte _080C1E1C @ case 2 + .4byte _080C1E24 @ case 3 + .4byte _080C1E38 @ case 4 + .4byte _080C1E4C @ case 5 + .4byte _080C1E60 @ case 6 + .4byte _080C1E66 @ case 7 + .4byte _080C1EC8 @ case 8 + .4byte _080C1EF4 @ case 9 + .4byte _080C1F10 @ case 10 + .4byte _080C1FC8 @ case 11 + .4byte _080C1F9C @ case 12 + .4byte _080C20D6 @ case 13 + .4byte _080C20C4 @ case 14 + .4byte _080C2058 @ case 15 + .4byte _080C2094 @ case 16 +_080C1DF8: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C1E04 + b _080C20F6 +_080C1E04: + movs r0, #1 + movs r1, #0 + bl FillWindowPixelBuffer + b _080C1F00 +_080C1E0E: + bl PrintAllOnCardPage1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C1E1A + b _080C20F6 +_080C1E1A: + b _080C1F00 +_080C1E1C: + movs r0, #1 + bl PrintHofDebutStringOnCard + b _080C1F00 +_080C1E24: + movs r0, #2 + movs r1, #0 + bl FillWindowPixelBuffer + bl sub_080C48F4 + movs r0, #2 + bl PrintHofDebutStringOnCard + b _080C1F00 +_080C1E38: + ldr r0, [r4] + ldr r1, _080C1E48 + adds r0, r0, r1 + bl sub_080C3E84 + ldr r1, [r4] + b _080C1F04 + .align 2, 0 +_080C1E48: .4byte 0x00000EE4 +_080C1E4C: + ldr r0, [r4] + ldr r2, _080C1E5C + adds r0, r0, r2 + bl sub_080C3EF4 + ldr r1, [r4] + b _080C1F04 + .align 2, 0 +_080C1E5C: .4byte 0x00000584 +_080C1E60: + bl TrainerCard_PrintStarsAndBadgesOnCard + b _080C1F00 +_080C1E66: + ldr r0, _080C1EB8 + ldrb r0, [r0] + cmp r0, #1 + bne _080C1E82 + ldr r0, _080C1EBC + ldrb r0, [r0] + cmp r0, #1 + bne _080C1E82 + bl LoadWirelessStatusIndicatorSpriteGfx + movs r0, #0xe6 + movs r1, #0x96 + bl CreateWirelessStatusIndicatorSprite +_080C1E82: + movs r6, #1 + rsbs r6, r6, #0 + ldr r4, _080C1EC0 + ldr r0, [r4] + movs r5, #0xa3 + lsls r5, r5, #3 + adds r0, r0, r5 + ldrh r2, [r0] + adds r0, r6, #0 + movs r1, #0x10 + bl BlendPalettes + ldr r0, [r4] + adds r0, r0, r5 + ldrh r0, [r0] + str r0, [sp] + adds r0, r6, #0 + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r0, _080C1EC4 + bl SetVBlankCallback + ldr r1, [r4] + b _080C1F04 + .align 2, 0 +_080C1EB8: .4byte 0x0300319C +_080C1EBC: .4byte 0x030031C4 +_080C1EC0: .4byte 0x02039988 +_080C1EC4: .4byte 0x080C1CBD +_080C1EC8: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C1ED4 + b _080C20F6 +_080C1ED4: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C1EE0 + b _080C20F6 +_080C1EE0: + movs r0, #0xfb + bl PlaySE + ldr r0, _080C1EF0 + ldr r1, [r0] + movs r0, #0xa + strb r0, [r1] + b _080C20F6 + .align 2, 0 +_080C1EF0: .4byte 0x02039988 +_080C1EF4: + bl IsSEPlaying + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C1F00 + b _080C20F6 +_080C1F00: + ldr r0, _080C1F0C + ldr r1, [r0] +_080C1F04: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080C20F6 + .align 2, 0 +_080C1F0C: .4byte 0x02039988 +_080C1F10: + ldr r0, _080C1F58 + ldrb r5, [r0] + cmp r5, #0 + bne _080C1F36 + ldr r0, [r4] + ldr r1, _080C1F5C + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _080C1F36 + bl PrintMoneyOnCard + movs r0, #1 + bl PrintHofDebutStringOnCard + ldr r0, [r4] + ldr r2, _080C1F5C + adds r0, r0, r2 + strb r5, [r0] +_080C1F36: + ldr r0, _080C1F60 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080C1F68 + bl sub_080C424C + movs r0, #0xf9 + bl PlaySE + ldr r0, _080C1F64 + ldr r1, [r0] + movs r0, #0xc + strb r0, [r1] + b _080C20F6 + .align 2, 0 +_080C1F58: .4byte 0x030031C4 +_080C1F5C: .4byte 0x00000515 +_080C1F60: .4byte 0x03002360 +_080C1F64: .4byte 0x02039988 +_080C1F68: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _080C1F72 + b _080C20F6 +_080C1F72: + ldr r0, _080C1F94 + ldrb r0, [r0] + cmp r0, #0 + beq _080C1F8C + ldr r4, _080C1F98 + ldr r0, [r4] + ldrb r0, [r0, #5] + cmp r0, #0 + beq _080C1F8C + bl InUnionRoom + cmp r0, #1 + beq _080C2040 +_080C1F8C: + movs r0, #1 + rsbs r0, r0, #0 + ldr r4, _080C1F98 + b _080C20A0 + .align 2, 0 +_080C1F94: .4byte 0x030031C4 +_080C1F98: .4byte 0x02039988 +_080C1F9C: + bl sub_080C4274 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C1FA8 + b _080C20F6 +_080C1FA8: + bl sub_08086EFC + cmp r0, #1 + bne _080C1FB2 + b _080C20F6 +_080C1FB2: + movs r0, #0xfb + bl PlaySE + ldr r0, _080C1FC4 + ldr r1, [r0] + movs r0, #0xb + strb r0, [r1] + b _080C20F6 + .align 2, 0 +_080C1FC4: .4byte 0x02039988 +_080C1FC8: + ldr r0, _080C1FFC + ldrh r1, [r0, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080C2020 + ldr r0, _080C2000 + ldrb r0, [r0] + cmp r0, #0 + beq _080C2008 + ldr r0, [r4] + ldrb r0, [r0, #5] + cmp r0, #0 + beq _080C1FEC + bl InUnionRoom + cmp r0, #1 + beq _080C2040 +_080C1FEC: + ldr r0, _080C2000 + ldrb r0, [r0] + cmp r0, #0 + beq _080C2008 + movs r0, #1 + rsbs r0, r0, #0 + ldr r4, _080C2004 + b _080C20A0 + .align 2, 0 +_080C1FFC: .4byte 0x03002360 +_080C2000: .4byte 0x030031C4 +_080C2004: .4byte 0x02039988 +_080C2008: + bl sub_080C424C + ldr r0, _080C201C + ldr r1, [r0] + movs r0, #0xd + strb r0, [r1] + movs r0, #0xf9 + bl PlaySE + b _080C20F6 + .align 2, 0 +_080C201C: .4byte 0x02039988 +_080C2020: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080C20F6 + ldr r0, _080C2048 + ldrb r0, [r0] + cmp r0, #0 + beq _080C204C + ldr r0, [r4] + ldrb r0, [r0, #5] + cmp r0, #0 + beq _080C204C + bl InUnionRoom + cmp r0, #1 + bne _080C204C +_080C2040: + ldr r1, [r4] + movs r0, #0xf + strb r0, [r1] + b _080C20F6 + .align 2, 0 +_080C2048: .4byte 0x030031C4 +_080C204C: + movs r0, #1 + rsbs r0, r0, #0 + ldr r4, _080C2054 + b _080C20A0 + .align 2, 0 +_080C2054: .4byte 0x02039988 +_080C2058: + bl sub_0800A7F8 + movs r0, #0 + movs r1, #1 + bl ClearDialogWindowAndFrame + ldr r2, _080C208C + movs r0, #2 + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + ldr r0, _080C2090 + ldr r1, [r0] + movs r0, #0x10 + strb r0, [r1] + b _080C20F6 + .align 2, 0 +_080C208C: .4byte 0x085CC3A7 +_080C2090: .4byte 0x02039988 +_080C2094: + ldr r0, _080C20C0 + ldrb r0, [r0] + cmp r0, #0 + bne _080C20F6 + movs r0, #1 + rsbs r0, r0, #0 +_080C20A0: + ldr r1, [r4] + movs r2, #0xa3 + lsls r2, r2, #3 + adds r1, r1, r2 + ldrh r1, [r1] + str r1, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, [r4] + movs r0, #0xe + strb r0, [r1] + b _080C20F6 + .align 2, 0 +_080C20C0: .4byte 0x030031C4 +_080C20C4: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C20F6 + adds r0, r5, #0 + bl CloseTrainerCard + b _080C20F6 +_080C20D6: + bl sub_080C4274 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C20F6 + bl sub_08086EFC + cmp r0, #1 + beq _080C20F6 + ldr r0, _080C2100 + ldr r1, [r0] + movs r0, #0xa + strb r0, [r1] + movs r0, #0xfb + bl PlaySE +_080C20F6: + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080C2100: .4byte 0x02039988 + thumb_func_end sub_080C1D8C + + thumb_func_start LoadCardGfx +LoadCardGfx: @ 0x080C2104 + push {lr} + ldr r0, _080C211C + ldr r1, [r0] + ldrb r0, [r1, #2] + cmp r0, #5 + bls _080C2112 + b _080C2298 +_080C2112: + lsls r0, r0, #2 + ldr r1, _080C2120 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C211C: .4byte 0x02039988 +_080C2120: .4byte 0x080C2124 +_080C2124: @ jump table + .4byte _080C213C @ case 0 + .4byte _080C2170 @ case 1 + .4byte _080C21A4 @ case 2 + .4byte _080C2204 @ case 3 + .4byte _080C2238 @ case 4 + .4byte _080C226C @ case 5 +_080C213C: + ldr r0, _080C2150 + ldr r1, [r0] + ldr r2, _080C2154 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080C2160 + ldr r0, _080C2158 + ldr r2, _080C215C + b _080C227E + .align 2, 0 +_080C2150: .4byte 0x02039988 +_080C2154: .4byte 0x00000516 +_080C2158: .4byte 0x08545BFC +_080C215C: .4byte 0x00000EE4 +_080C2160: + ldr r0, _080C2168 + ldr r2, _080C216C + b _080C227E + .align 2, 0 +_080C2168: .4byte 0x08545C94 +_080C216C: .4byte 0x00000EE4 +_080C2170: + ldr r0, _080C2184 + ldr r1, [r0] + ldr r2, _080C2188 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080C2194 + ldr r0, _080C218C + ldr r2, _080C2190 + b _080C227E + .align 2, 0 +_080C2184: .4byte 0x02039988 +_080C2188: .4byte 0x00000516 +_080C218C: .4byte 0x085456E8 +_080C2190: .4byte 0x00000A34 +_080C2194: + ldr r0, _080C219C + ldr r2, _080C21A0 + b _080C227E + .align 2, 0 +_080C219C: .4byte 0x085457C4 +_080C21A0: .4byte 0x00000A34 +_080C21A4: + ldr r0, _080C21C0 + ldr r1, [r0] + ldrb r0, [r1, #5] + cmp r0, #0 + bne _080C21DC + ldr r2, _080C21C4 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080C21CC + ldr r0, _080C21C8 + adds r2, #0x6e + b _080C227E + .align 2, 0 +_080C21C0: .4byte 0x02039988 +_080C21C4: .4byte 0x00000516 +_080C21C8: .4byte 0x08545390 +_080C21CC: + ldr r0, _080C21D4 + ldr r2, _080C21D8 + b _080C227E + .align 2, 0 +_080C21D4: .4byte 0x08545530 +_080C21D8: .4byte 0x00000584 +_080C21DC: + ldr r2, _080C21EC + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080C21F4 + ldr r0, _080C21F0 + adds r2, #0x6e + b _080C227E + .align 2, 0 +_080C21EC: .4byte 0x00000516 +_080C21F0: .4byte 0x085458F0 +_080C21F4: + ldr r0, _080C21FC + ldr r2, _080C2200 + b _080C227E + .align 2, 0 +_080C21FC: .4byte 0x08545A70 +_080C2200: .4byte 0x00000584 +_080C2204: + ldr r0, _080C2218 + ldr r1, [r0] + ldr r2, _080C221C + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080C2228 + ldr r0, _080C2220 + ldr r2, _080C2224 + b _080C227E + .align 2, 0 +_080C2218: .4byte 0x02039988 +_080C221C: .4byte 0x00000516 +_080C2220: .4byte 0x0854622C +_080C2224: .4byte 0x00001394 +_080C2228: + ldr r0, _080C2230 + ldr r2, _080C2234 + b _080C227E + .align 2, 0 +_080C2230: .4byte 0x08546474 +_080C2234: .4byte 0x00001394 +_080C2238: + ldr r0, _080C224C + ldr r1, [r0] + ldr r2, _080C2250 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080C225C + ldr r0, _080C2254 + ldr r2, _080C2258 + b _080C227E + .align 2, 0 +_080C224C: .4byte 0x02039988 +_080C2250: .4byte 0x00000516 +_080C2254: .4byte 0x0854441C +_080C2258: .4byte 0x00001994 +_080C225C: + ldr r0, _080C2264 + ldr r2, _080C2268 + b _080C227E + .align 2, 0 +_080C2264: .4byte 0x08544B5C +_080C2268: .4byte 0x00001994 +_080C226C: + ldr r0, _080C2288 + ldr r1, [r0] + ldr r2, _080C228C + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _080C22A0 + ldr r0, _080C2290 + ldr r2, _080C2294 +_080C227E: + adds r1, r1, r2 + bl LZ77UnCompWram + b _080C22A0 + .align 2, 0 +_080C2288: .4byte 0x02039988 +_080C228C: .4byte 0x00000516 +_080C2290: .4byte 0x0854521C +_080C2294: .4byte 0x00001794 +_080C2298: + movs r0, #0 + strb r0, [r1, #2] + movs r0, #1 + b _080C22AC +_080C22A0: + ldr r0, _080C22B0 + ldr r1, [r0] + ldrb r0, [r1, #2] + adds r0, #1 + strb r0, [r1, #2] + movs r0, #0 +_080C22AC: + pop {r1} + bx r1 + .align 2, 0 +_080C22B0: .4byte 0x02039988 + thumb_func_end LoadCardGfx + + thumb_func_start CB2_InitTrainerCard +CB2_InitTrainerCard: @ 0x080C22B4 + push {lr} + sub sp, #8 + ldr r1, _080C22D4 + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r1, r2 + ldrb r0, [r0] + adds r3, r1, #0 + cmp r0, #0xa + bls _080C22CA + b _080C2408 +_080C22CA: + lsls r0, r0, #2 + ldr r1, _080C22D8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C22D4: .4byte 0x03002360 +_080C22D8: .4byte 0x080C22DC +_080C22DC: @ jump table + .4byte _080C2308 @ case 0 + .4byte _080C2320 @ case 1 + .4byte _080C2348 @ case 2 + .4byte _080C2380 @ case 3 + .4byte _080C239A @ case 4 + .4byte _080C23A4 @ case 5 + .4byte _080C23B8 @ case 6 + .4byte _080C23BE @ case 7 + .4byte _080C23D0 @ case 8 + .4byte _080C23D6 @ case 9 + .4byte _080C23E8 @ case 10 +_080C2308: + bl ResetGpuRegs + bl sub_080C2A44 + ldr r1, _080C231C + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _080C23FC + .align 2, 0 +_080C231C: .4byte 0x03002360 +_080C2320: + movs r1, #0xe0 + lsls r1, r1, #0x13 + movs r0, #0 + str r0, [sp] + ldr r0, _080C2340 + mov r2, sp + str r2, [r0] + str r1, [r0, #4] + ldr r1, _080C2344 + str r1, [r0, #8] + ldr r0, [r0, #8] + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r3, r0 + b _080C23FC + .align 2, 0 +_080C2340: .4byte 0x040000D4 +_080C2344: .4byte 0x85000100 +_080C2348: + ldr r0, _080C2374 + ldr r0, [r0] + movs r1, #0xa3 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0 + bne _080C236C + movs r2, #0xa0 + lsls r2, r2, #0x13 + add r1, sp, #4 + strh r0, [r1] + ldr r0, _080C2378 + str r1, [r0] + str r2, [r0, #4] + ldr r1, _080C237C + str r1, [r0, #8] + ldr r0, [r0, #8] +_080C236C: + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r3, r2 + b _080C23FC + .align 2, 0 +_080C2374: .4byte 0x02039988 +_080C2378: .4byte 0x040000D4 +_080C237C: .4byte 0x81000200 +_080C2380: + bl ResetSpriteData + bl FreeAllSpritePalettes + bl ResetPaletteFade + ldr r1, _080C23A0 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_080C239A: + bl InitBgsAndWindows + b _080C23F4 + .align 2, 0 +_080C23A0: .4byte 0x03002360 +_080C23A4: + bl sub_080C3B0C + ldr r1, _080C23B4 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _080C23FC + .align 2, 0 +_080C23B4: .4byte 0x03002360 +_080C23B8: + bl LoadCardGfx + b _080C23EC +_080C23BE: + bl sub_080C3C6C + ldr r1, _080C23CC + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _080C23FC + .align 2, 0 +_080C23CC: .4byte 0x03002360 +_080C23D0: + bl HandleGpuRegs + b _080C23F4 +_080C23D6: + bl PrintAllVariableNumsOnCardPage2 + ldr r1, _080C23E4 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _080C23FC + .align 2, 0 +_080C23E4: .4byte 0x03002360 +_080C23E8: + bl SetCardBgsAndPals +_080C23EC: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080C240C +_080C23F4: + ldr r1, _080C2404 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 +_080C23FC: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080C240C + .align 2, 0 +_080C2404: .4byte 0x03002360 +_080C2408: + bl SetTrainerCardCb2 +_080C240C: + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CB2_InitTrainerCard + + thumb_func_start GetCappedGameStat +GetCappedGameStat: @ 0x080C2414 + push {r4, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl GetGameStat + cmp r0, r4 + bls _080C2426 + adds r0, r4, #0 +_080C2426: + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetCappedGameStat + + thumb_func_start HasAllFrontierSymbols +HasAllFrontierSymbols: @ 0x080C242C + push {r4, r5, lr} + movs r5, #0 +_080C2430: + lsls r4, r5, #1 + ldr r1, _080C2454 + adds r0, r4, r1 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C244E + ldr r1, _080C2458 + adds r0, r4, r1 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C245C +_080C244E: + movs r0, #0 + b _080C2468 + .align 2, 0 +_080C2454: .4byte 0x000008C4 +_080C2458: .4byte 0x000008C5 +_080C245C: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #6 + bls _080C2430 + movs r0, #1 +_080C2468: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end HasAllFrontierSymbols + + thumb_func_start CountPlayerTrainerStars +CountPlayerTrainerStars: @ 0x080C2470 + push {r4, lr} + movs r0, #0xa + bl GetGameStat + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f + bl HasAllHoennMons + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080C248A + adds r4, #1 +_080C248A: + bl CountPlayerContestPaintings + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bls _080C249C + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_080C249C: + bl HasAllFrontierSymbols + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C24AC + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_080C24AC: + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end CountPlayerTrainerStars + + thumb_func_start GetRubyTrainerStars +GetRubyTrainerStars: @ 0x080C24B4 + push {lr} + adds r1, r0, #0 + movs r2, #0 + ldrh r0, [r1, #6] + cmp r0, #0 + bne _080C24C6 + ldr r0, [r1, #8] + cmp r0, #0 + beq _080C24C8 +_080C24C6: + movs r2, #1 +_080C24C8: + ldrb r0, [r1, #3] + cmp r0, #0 + beq _080C24D4 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 +_080C24D4: + ldrh r0, [r1, #0x1a] + cmp r0, #0x31 + bls _080C24E0 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 +_080C24E0: + ldrb r0, [r1, #4] + cmp r0, #0 + beq _080C24EC + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 +_080C24EC: + adds r0, r2, #0 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetRubyTrainerStars + + thumb_func_start SetPlayerCardData +SetPlayerCardData: @ 0x080C24F4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + ldr r6, _080C25D4 + ldr r1, [r6] + ldrb r0, [r1, #8] + strb r0, [r5] + ldrh r0, [r1, #0xe] + strh r0, [r5, #0x10] + ldrb r0, [r1, #0x10] + strh r0, [r5, #0x12] + movs r0, #1 + bl GetGameStat + adds r4, r0, #0 + movs r0, #0xa + bl GetGameStat + cmp r0, #0 + bne _080C2526 + movs r4, #0 +_080C2526: + lsrs r0, r4, #0x10 + strh r0, [r5, #6] + lsrs r1, r4, #8 + movs r2, #0xff + ands r1, r2 + strh r1, [r5, #8] + ands r4, r2 + strh r4, [r5, #0xa] + ldr r1, _080C25D8 + cmp r0, r1 + bls _080C2544 + strh r1, [r5, #6] + movs r0, #0x3b + strh r0, [r5, #8] + strh r0, [r5, #0xa] +_080C2544: + ldr r0, _080C25DC + bl FlagGet + strb r0, [r5, #2] + bl HasAllHoennMons + strb r0, [r5, #3] + bl GetCaughtMonsCount + strh r0, [r5, #0xc] + ldr r0, [r6] + ldrb r1, [r0, #0xb] + lsls r1, r1, #8 + ldrb r0, [r0, #0xa] + orrs r0, r1 + strh r0, [r5, #0xe] + ldr r4, _080C25E0 + movs r0, #0x17 + adds r1, r4, #0 + bl GetCappedGameStat + strh r0, [r5, #0x14] + movs r0, #0x18 + adds r1, r4, #0 + bl GetCappedGameStat + strh r0, [r5, #0x16] + ldr r1, _080C25E4 + movs r0, #0x15 + bl GetCappedGameStat + strh r0, [r5, #0x20] + ldr r4, _080C25E8 + ldr r0, [r4] + movs r1, #0x92 + lsls r1, r1, #3 + adds r0, r0, r1 + bl GetMoney + str r0, [r5, #0x24] + movs r2, #0 + adds r7, r5, #0 + adds r7, #0x30 + adds r6, r5, #0 + adds r6, #0x28 + ldr r0, [r4] + ldr r1, _080C25EC + adds r3, r0, r1 +_080C25A4: + lsls r0, r2, #1 + adds r1, r6, r0 + adds r0, r3, r0 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #3 + bls _080C25A4 + ldr r0, _080C25D4 + ldr r1, [r0] + adds r0, r7, #0 + bl StringCopy + mov r0, r8 + cmp r0, #1 + beq _080C2634 + cmp r0, #1 + bgt _080C25F0 + cmp r0, #0 + beq _080C25FC + b _080C2644 + .align 2, 0 +_080C25D4: .4byte 0x03005AF0 +_080C25D8: .4byte 0x000003E7 +_080C25DC: .4byte 0x00000861 +_080C25E0: .4byte 0x0000270F +_080C25E4: .4byte 0x0000FFFF +_080C25E8: .4byte 0x03005AEC +_080C25EC: .4byte 0x00002BB0 +_080C25F0: + mov r1, r8 + cmp r1, #2 + bne _080C2644 + movs r0, #0 + strh r0, [r5, #0x18] + strh r0, [r5, #0x1a] +_080C25FC: + ldr r1, _080C262C + movs r0, #0x23 + bl GetCappedGameStat + strh r0, [r5, #0x1c] + ldr r1, _080C2630 + movs r0, #0x22 + bl GetCappedGameStat + strh r0, [r5, #0x1e] + bl CountPlayerContestPaintings + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bls _080C2620 + movs r0, #1 + strb r0, [r5, #4] +_080C2620: + adds r0, r5, #0 + bl GetRubyTrainerStars + strb r0, [r5, #1] + b _080C2644 + .align 2, 0 +_080C262C: .4byte 0x000003E7 +_080C2630: .4byte 0x0000FFFF +_080C2634: + movs r1, #0 + movs r0, #0 + strh r0, [r5, #0x18] + strh r0, [r5, #0x1a] + strh r0, [r5, #0x1c] + strh r0, [r5, #0x1e] + strb r1, [r5, #4] + strb r1, [r5, #1] +_080C2644: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetPlayerCardData + + thumb_func_start TrainerCard_GenerateCardForLinkPlayer +TrainerCard_GenerateCardForLinkPlayer: @ 0x080C2650 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r2, #0x64 + bl memset + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #2 + bl SetPlayerCardData + bl HasAllFrontierSymbols + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r4, #0 + adds r1, #0x60 + strh r0, [r1] + ldr r0, _080C26A8 + ldr r0, [r0] + ldr r2, _080C26AC + adds r0, r0, r2 + ldrh r0, [r0] + adds r2, r4, #0 + adds r2, #0x62 + strh r0, [r2] + ldrh r0, [r1] + cmp r0, #0 + beq _080C2696 + ldrb r0, [r4, #1] + adds r0, #1 + strb r0, [r4, #1] +_080C2696: + ldrb r0, [r4] + cmp r0, #1 + bne _080C26B4 + ldr r2, _080C26B0 + ldrh r0, [r4, #0xe] + movs r1, #7 + ands r0, r1 + adds r0, #8 + b _080C26BC + .align 2, 0 +_080C26A8: .4byte 0x03005AF0 +_080C26AC: .4byte 0x00000EBA +_080C26B0: .4byte 0x082FA6E2 +_080C26B4: + ldr r2, _080C26D0 + ldrh r0, [r4, #0xe] + movs r1, #7 + ands r0, r1 +_080C26BC: + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r1, [r0] + adds r0, r4, #0 + adds r0, #0x4f + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C26D0: .4byte 0x082FA6E2 + thumb_func_end TrainerCard_GenerateCardForLinkPlayer + + thumb_func_start TrainerCard_GenerateCardForPlayer +TrainerCard_GenerateCardForPlayer: @ 0x080C26D4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r2, #0x60 + bl memset + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #2 + bl SetPlayerCardData + bl HasAllFrontierSymbols + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x3a] + ldr r1, _080C2724 + ldr r1, [r1] + ldr r2, _080C2728 + adds r1, r1, r2 + ldrh r1, [r1] + strh r1, [r4, #0x3c] + cmp r0, #0 + beq _080C2710 + ldrb r0, [r4, #1] + adds r0, #1 + strb r0, [r4, #1] +_080C2710: + ldrb r0, [r4] + cmp r0, #1 + bne _080C2730 + ldr r2, _080C272C + ldrh r0, [r4, #0xe] + movs r1, #7 + ands r0, r1 + adds r0, #8 + b _080C2738 + .align 2, 0 +_080C2724: .4byte 0x03005AF0 +_080C2728: .4byte 0x00000EBA +_080C272C: .4byte 0x082FA6E2 +_080C2730: + ldr r2, _080C274C + ldrh r0, [r4, #0xe] + movs r1, #7 + ands r0, r1 +_080C2738: + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r1, [r0] + adds r0, r4, #0 + adds r0, #0x4f + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C274C: .4byte 0x082FA6E2 + thumb_func_end TrainerCard_GenerateCardForPlayer + + thumb_func_start CopyTrainerCardData +CopyTrainerCardData: @ 0x080C2750 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + lsls r4, r2, #0x18 + lsrs r4, r4, #0x18 + movs r1, #0 + movs r2, #0x64 + bl memset + adds r0, r5, #0 + adds r0, #0x38 + strb r4, [r0] + adds r0, r4, #0 + bl VersionToCardType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080C2792 + cmp r0, #1 + bgt _080C2780 + cmp r0, #0 + beq _080C2786 + b _080C27BA +_080C2780: + cmp r0, #2 + beq _080C279E + b _080C27BA +_080C2786: + adds r0, r5, #0 + adds r1, r6, #0 + movs r2, #0x60 + bl memcpy + b _080C27BA +_080C2792: + adds r0, r5, #0 + adds r1, r6, #0 + movs r2, #0x38 + bl memcpy + b _080C27BA +_080C279E: + adds r0, r5, #0 + adds r1, r6, #0 + movs r2, #0x60 + bl memcpy + movs r0, #0 + str r0, [r5, #0x3c] + ldrh r1, [r6, #0x3a] + adds r0, r5, #0 + adds r0, #0x60 + strh r1, [r0] + ldrh r1, [r6, #0x3c] + adds r0, #2 + strh r1, [r0] +_080C27BA: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end CopyTrainerCardData + + thumb_func_start SetDataFromTrainerCard +SetDataFromTrainerCard: @ 0x080C27C0 + push {r4, r5, lr} + ldr r4, _080C288C + ldr r0, [r4] + movs r1, #0 + strb r1, [r0, #0xa] + ldr r0, [r4] + strb r1, [r0, #0xb] + ldr r0, [r4] + strb r1, [r0, #0xc] + ldr r0, [r4] + strb r1, [r0, #0xd] + ldr r0, [r4] + strb r1, [r0, #0xe] + ldr r0, [r4] + strb r1, [r0, #0xf] + ldr r0, [r4] + strb r1, [r0, #0x10] + ldr r0, [r4] + adds r0, #0x11 + movs r2, #8 + bl memset + ldr r1, [r4] + ldr r2, _080C2890 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080C27FE + ldrb r0, [r1, #0xa] + adds r0, #1 + strb r0, [r1, #0xa] +_080C27FE: + ldr r1, [r4] + ldr r3, _080C2894 + adds r0, r1, r3 + ldrh r0, [r0] + cmp r0, #0 + bne _080C2816 + movs r2, #0xa5 + lsls r2, r2, #3 + adds r0, r1, r2 + ldr r0, [r0] + cmp r0, #0 + beq _080C281C +_080C2816: + ldrb r0, [r1, #0xb] + adds r0, #1 + strb r0, [r1, #0xb] +_080C281C: + ldr r2, _080C288C + ldr r1, [r2] + ldr r3, _080C2898 + adds r0, r1, r3 + ldr r0, [r0] + cmp r0, #0 + beq _080C2830 + ldrb r0, [r1, #0xc] + adds r0, #1 + strb r0, [r1, #0xc] +_080C2830: + ldr r1, [r2] + movs r3, #0xa8 + lsls r3, r3, #3 + adds r0, r1, r3 + ldrh r0, [r0] + cmp r0, #0 + beq _080C2844 + ldrb r0, [r1, #0x10] + adds r0, #1 + strb r0, [r1, #0x10] +_080C2844: + ldr r1, [r2] + movs r2, #0xa7 + lsls r2, r2, #3 + adds r0, r1, r2 + ldr r0, [r0] + cmp r0, #0 + beq _080C2858 + ldrb r0, [r1, #0xd] + adds r0, #1 + strb r0, [r1, #0xd] +_080C2858: + movs r5, #0 + ldr r4, _080C289C +_080C285C: + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C2878 + ldr r0, _080C288C + ldr r1, [r0] + adds r1, #0x11 + adds r1, r1, r5 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_080C2878: + adds r4, #1 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _080C28A0 + cmp r4, r0 + bls _080C285C + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080C288C: .4byte 0x02039988 +_080C2890: .4byte 0x00000522 +_080C2894: .4byte 0x00000526 +_080C2898: .4byte 0x00000534 +_080C289C: .4byte 0x00000867 +_080C28A0: .4byte 0x0000086E + thumb_func_end SetDataFromTrainerCard + + thumb_func_start HandleGpuRegs +HandleGpuRegs: @ 0x080C28A4 + push {lr} + movs r1, #0xc1 + lsls r1, r1, #6 + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg + movs r0, #0x50 + movs r1, #0xc1 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0x3f + bl SetGpuReg + movs r0, #0x4a + movs r1, #0x1e + bl SetGpuReg + movs r0, #0x44 + movs r1, #0xa0 + bl SetGpuReg + movs r0, #0x40 + movs r1, #0xf0 + bl SetGpuReg + ldr r0, _080C2908 + ldrb r0, [r0] + cmp r0, #0 + beq _080C290C + movs r0, #0xc7 + bl EnableInterrupts + b _080C2912 + .align 2, 0 +_080C2908: .4byte 0x030031C4 +_080C290C: + movs r0, #3 + bl EnableInterrupts +_080C2912: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end HandleGpuRegs + + thumb_func_start sub_080C2918 +sub_080C2918: @ 0x080C2918 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r0, #0x28 + movs r1, #0xa + bl __divsi3 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #4 + bgt _080C2932 + movs r2, #0 +_080C2932: + ldr r4, _080C2970 + ldr r0, [r4] + ldr r1, _080C2974 + adds r0, r0, r1 + strb r2, [r0] + ldr r0, [r4] + adds r0, r0, r1 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x54 + bl SetGpuReg + ldr r0, [r4] + ldr r1, _080C2978 + adds r0, r0, r1 + ldrh r2, [r0] + lsls r1, r2, #8 + movs r0, #0xa0 + subs r0, r0, r2 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x44 + bl SetGpuReg + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C2970: .4byte 0x02039988 +_080C2974: .4byte 0x00000514 +_080C2978: .4byte 0x00007C94 + thumb_func_end sub_080C2918 + + thumb_func_start ResetGpuRegs +ResetGpuRegs: @ 0x080C297C + push {lr} + movs r0, #0 + bl SetVBlankCallback + movs r0, #0 + bl SetHBlankCallback + movs r0, #0 + movs r1, #0 + bl SetGpuReg + movs r0, #8 + movs r1, #0 + bl SetGpuReg + movs r0, #0xa + movs r1, #0 + bl SetGpuReg + movs r0, #0xc + movs r1, #0 + bl SetGpuReg + movs r0, #0xe + movs r1, #0 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ResetGpuRegs + + thumb_func_start InitBgsAndWindows +InitBgsAndWindows: @ 0x080C29B8 + push {lr} + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _080C2A2C + movs r0, #0 + movs r2, #4 + bl InitBgsFromTemplates + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + ldr r0, _080C2A30 + bl InitWindows + bl DeactivateAllTextPrinters + bl sub_08196F98 + pop {r0} + bx r0 + .align 2, 0 +_080C2A2C: .4byte 0x08546714 +_080C2A30: .4byte 0x08546724 + thumb_func_end InitBgsAndWindows + + thumb_func_start SetTrainerCardCb2 +SetTrainerCardCb2: @ 0x080C2A34 + push {lr} + ldr r0, _080C2A40 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080C2A40: .4byte 0x080C1D3D + thumb_func_end SetTrainerCardCb2 + + thumb_func_start sub_080C2A44 +sub_080C2A44: @ 0x080C2A44 + push {lr} + bl ResetTasks + bl ScanlineEffect_Stop + ldr r0, _080C2A64 + movs r1, #0 + bl CreateTask + bl sub_080C47EC + bl SetDataFromTrainerCard + pop {r0} + bx r0 + .align 2, 0 +_080C2A64: .4byte 0x080C1D8D + thumb_func_end sub_080C2A44 + + thumb_func_start PrintAllOnCardPage1 +PrintAllOnCardPage1: @ 0x080C2A68 + push {lr} + ldr r0, _080C2A80 + ldr r1, [r0] + ldrb r0, [r1, #1] + cmp r0, #5 + bhi _080C2AC4 + lsls r0, r0, #2 + ldr r1, _080C2A84 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C2A80: .4byte 0x02039988 +_080C2A84: .4byte 0x080C2A88 +_080C2A88: @ jump table + .4byte _080C2AA0 @ case 0 + .4byte _080C2AA6 @ case 1 + .4byte _080C2AAC @ case 2 + .4byte _080C2AB2 @ case 3 + .4byte _080C2AB8 @ case 4 + .4byte _080C2ABE @ case 5 +_080C2AA0: + bl sub_080C2BA4 + b _080C2ACC +_080C2AA6: + bl PrintNameOnCard + b _080C2ACC +_080C2AAC: + bl PrintProfilePhraseOnCard + b _080C2ACC +_080C2AB2: + bl PrintPokedexOnCard + b _080C2ACC +_080C2AB8: + bl PrintMoneyOnCard + b _080C2ACC +_080C2ABE: + bl PrintString + b _080C2ACC +_080C2AC4: + movs r0, #0 + strb r0, [r1, #1] + movs r0, #1 + b _080C2AD8 +_080C2ACC: + ldr r0, _080C2ADC + ldr r1, [r0] + ldrb r0, [r1, #1] + adds r0, #1 + strb r0, [r1, #1] + movs r0, #0 +_080C2AD8: + pop {r1} + bx r1 + .align 2, 0 +_080C2ADC: .4byte 0x02039988 + thumb_func_end PrintAllOnCardPage1 + + thumb_func_start PrintStringsOnCardPage2 +PrintStringsOnCardPage2: @ 0x080C2AE0 + push {lr} + ldr r0, _080C2AF8 + ldr r1, [r0] + ldrb r0, [r1, #1] + cmp r0, #7 + bhi _080C2B5C + lsls r0, r0, #2 + ldr r1, _080C2AFC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C2AF8: .4byte 0x02039988 +_080C2AFC: .4byte 0x080C2B00 +_080C2B00: @ jump table + .4byte _080C2B20 @ case 0 + .4byte _080C2B26 @ case 1 + .4byte _080C2B2C @ case 2 + .4byte _080C2B32 @ case 3 + .4byte _080C2B38 @ case 4 + .4byte _080C2B42 @ case 5 + .4byte _080C2B4C @ case 6 + .4byte _080C2B56 @ case 7 +_080C2B20: + bl sub_080C323C + b _080C2B64 +_080C2B26: + bl PrintWinsLossesStringOnCard + b _080C2B64 +_080C2B2C: + bl PrintIdOnCard + b _080C2B64 +_080C2B32: + bl PrintBattleFacilityStringOnCard + b _080C2B64 +_080C2B38: + bl PrintBerryCrushStringOnCard + bl PrintContestStringOnCard + b _080C2B64 +_080C2B42: + bl PrintUnionStringOnCard + bl PrintPokeblockStringOnCard + b _080C2B64 +_080C2B4C: + bl TrainerCard_PrintPokemonIconsOnCard + bl sub_080C395C + b _080C2B64 +_080C2B56: + bl PrintNameOnCard2 + b _080C2B64 +_080C2B5C: + movs r0, #0 + strb r0, [r1, #1] + movs r0, #1 + b _080C2B70 +_080C2B64: + ldr r0, _080C2B74 + ldr r1, [r0] + ldrb r0, [r1, #1] + adds r0, #1 + strb r0, [r1, #1] + movs r0, #0 +_080C2B70: + pop {r1} + bx r1 + .align 2, 0 +_080C2B74: .4byte 0x02039988 + thumb_func_end PrintStringsOnCardPage2 + + thumb_func_start PrintAllVariableNumsOnCardPage2 +PrintAllVariableNumsOnCardPage2: @ 0x080C2B78 + push {lr} + bl sub_080C31FC + bl PrintHofTimeOnCard + bl PrintLinkResultsNumsOnCard + bl PrintTradesNumOnCard + bl PrintUnionNumOnCard + bl PrintBerryCrushNumOnCard + bl PrintPokeblocksNumOnCard + bl PrintContestNumOnCard + bl PrintBattleFacilityNumsOnCard + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end PrintAllVariableNumsOnCardPage2 + + thumb_func_start sub_080C2BA4 +sub_080C2BA4: @ 0x080C2BA4 + push {r4, lr} + sub sp, #0xc + ldr r0, _080C2BD4 + ldr r0, [r0] + ldr r1, _080C2BD8 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080C2BE8 + ldr r0, _080C2BDC + ldrb r1, [r0, #1] + ldr r0, _080C2BE0 + str r0, [sp] + movs r0, #1 + rsbs r0, r0, #0 + str r0, [sp, #4] + ldr r0, _080C2BE4 + str r0, [sp, #8] + movs r0, #1 + movs r2, #0x14 + movs r3, #0x1e + bl AddTextPrinterParameterized3 + b _080C2C04 + .align 2, 0 +_080C2BD4: .4byte 0x02039988 +_080C2BD8: .4byte 0x00000516 +_080C2BDC: .4byte 0x08546775 +_080C2BE0: .4byte 0x0854676C +_080C2BE4: .4byte 0x085CC31F +_080C2BE8: + ldr r0, _080C2C40 + ldrb r1, [r0, #1] + ldr r0, _080C2C44 + str r0, [sp] + movs r0, #1 + rsbs r0, r0, #0 + str r0, [sp, #4] + ldr r0, _080C2C48 + str r0, [sp, #8] + movs r0, #1 + movs r2, #0x10 + movs r3, #0x22 + bl AddTextPrinterParameterized3 +_080C2C04: + ldr r0, _080C2C40 + ldrb r1, [r0, #1] + ldr r2, _080C2C4C + ldr r0, _080C2C50 + ldr r4, [r0] + ldr r3, _080C2C54 + adds r0, r4, r3 + ldrb r0, [r0] + adds r2, r0, r2 + ldrb r2, [r2] + ldr r3, _080C2C58 + adds r0, r0, r3 + ldrb r3, [r0] + ldr r0, _080C2C44 + str r0, [sp] + movs r0, #1 + rsbs r0, r0, #0 + str r0, [sp, #4] + movs r0, #0xaa + lsls r0, r0, #3 + adds r4, r4, r0 + str r4, [sp, #8] + movs r0, #1 + bl AddTextPrinterParameterized3 + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C2C40: .4byte 0x08546775 +_080C2C44: .4byte 0x0854676C +_080C2C48: .4byte 0x085CC31F +_080C2C4C: .4byte 0x085467A0 +_080C2C50: .4byte 0x02039988 +_080C2C54: .4byte 0x00000517 +_080C2C58: .4byte 0x085467A2 + thumb_func_end sub_080C2BA4 + + thumb_func_start PrintNameOnCard +PrintNameOnCard: @ 0x080C2C5C + push {r4, r5, r6, lr} + sub sp, #0x14 + ldr r4, _080C2CB4 + ldr r0, [r4] + ldr r1, _080C2CB8 + adds r0, r0, r1 + ldrh r1, [r0] + add r0, sp, #0xc + movs r2, #2 + movs r3, #5 + bl ConvertIntToDecimalStringN + ldr r0, [r4] + ldr r1, _080C2CBC + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080C2CCC + ldr r0, _080C2CC0 + ldrb r6, [r0, #1] + ldr r5, _080C2CC4 + str r5, [sp] + movs r4, #1 + rsbs r4, r4, #0 + str r4, [sp, #4] + ldr r0, _080C2CC8 + str r0, [sp, #8] + movs r0, #1 + adds r1, r6, #0 + movs r2, #0x82 + movs r3, #0xb + bl AddTextPrinterParameterized3 + str r5, [sp] + str r4, [sp, #4] + add r0, sp, #0xc + str r0, [sp, #8] + movs r0, #1 + adds r1, r6, #0 + movs r2, #0xa6 + movs r3, #0xb + bl AddTextPrinterParameterized3 + b _080C2CFE + .align 2, 0 +_080C2CB4: .4byte 0x02039988 +_080C2CB8: .4byte 0x0000052E +_080C2CBC: .4byte 0x00000516 +_080C2CC0: .4byte 0x08546775 +_080C2CC4: .4byte 0x0854676C +_080C2CC8: .4byte 0x085CC323 +_080C2CCC: + ldr r0, _080C2D08 + ldrb r6, [r0, #1] + ldr r5, _080C2D0C + str r5, [sp] + movs r4, #1 + rsbs r4, r4, #0 + str r4, [sp, #4] + ldr r0, _080C2D10 + str r0, [sp, #8] + movs r0, #1 + adds r1, r6, #0 + movs r2, #0x73 + movs r3, #0xa + bl AddTextPrinterParameterized3 + str r5, [sp] + str r4, [sp, #4] + add r1, sp, #0xc + str r1, [sp, #8] + movs r0, #1 + adds r1, r6, #0 + movs r2, #0x99 + movs r3, #0xa + bl AddTextPrinterParameterized3 +_080C2CFE: + add sp, #0x14 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080C2D08: .4byte 0x08546775 +_080C2D0C: .4byte 0x0854676C +_080C2D10: .4byte 0x085CC323 + thumb_func_end PrintNameOnCard + + thumb_func_start PrintProfilePhraseOnCard +PrintProfilePhraseOnCard: @ 0x080C2D14 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + ldr r7, _080C2D94 + ldr r4, _080C2D98 + ldr r0, [r4] + ldr r1, _080C2D9C + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r7, #0 + movs r2, #0 + movs r3, #6 + bl ConvertIntToDecimalStringN + ldr r0, [r4] + ldr r1, _080C2DA0 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080C2DB4 + ldr r6, _080C2DA4 + ldrb r1, [r6, #1] + ldr r5, _080C2DA8 + str r5, [sp] + movs r4, #1 + rsbs r4, r4, #0 + str r4, [sp, #4] + ldr r0, _080C2DAC + str r0, [sp, #8] + movs r0, #1 + movs r2, #0x14 + movs r3, #0x38 + bl AddTextPrinterParameterized3 + adds r0, r7, #0 + bl StringLength + lsls r0, r0, #0x10 + lsrs r0, r0, #0xd + movs r1, #0x78 + rsbs r1, r1, #0 + adds r2, r1, #0 + subs r2, r2, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r6, [r6] + str r5, [sp] + str r4, [sp, #4] + str r7, [sp, #8] + movs r0, #1 + adds r1, r6, #0 + movs r3, #0x38 + bl AddTextPrinterParameterized3 + str r5, [sp] + str r4, [sp, #4] + ldr r0, _080C2DB0 + str r0, [sp, #8] + movs r0, #1 + adds r1, r6, #0 + movs r2, #0x8a + movs r3, #0x38 + bl AddTextPrinterParameterized3 + b _080C2E08 + .align 2, 0 +_080C2D94: .4byte 0x02021C7C +_080C2D98: .4byte 0x02039988 +_080C2D9C: .4byte 0x00000544 +_080C2DA0: .4byte 0x00000517 +_080C2DA4: .4byte 0x08546775 +_080C2DA8: .4byte 0x0854676C +_080C2DAC: .4byte 0x085CC329 +_080C2DB0: .4byte 0x085CC32F +_080C2DB4: + ldr r6, _080C2E10 + ldrb r1, [r6, #1] + ldr r5, _080C2E14 + str r5, [sp] + movs r4, #1 + rsbs r4, r4, #0 + str r4, [sp, #4] + ldr r0, _080C2E18 + str r0, [sp, #8] + movs r0, #1 + movs r2, #0x10 + movs r3, #0x3a + bl AddTextPrinterParameterized3 + adds r0, r7, #0 + bl StringLength + lsls r0, r0, #0x10 + lsrs r0, r0, #0xd + movs r2, #0x6c + subs r2, r2, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r6, [r6] + str r5, [sp] + str r4, [sp, #4] + str r7, [sp, #8] + movs r0, #1 + adds r1, r6, #0 + movs r3, #0x3a + bl AddTextPrinterParameterized3 + str r5, [sp] + str r4, [sp, #4] + ldr r0, _080C2E1C + str r0, [sp, #8] + movs r0, #1 + adds r1, r6, #0 + movs r2, #0x6e + movs r3, #0x3a + bl AddTextPrinterParameterized3 +_080C2E08: + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080C2E10: .4byte 0x08546775 +_080C2E14: .4byte 0x0854676C +_080C2E18: .4byte 0x085CC329 +_080C2E1C: .4byte 0x085CC32F + thumb_func_end PrintProfilePhraseOnCard + + thumb_func_start GetCaughtMonsCount +GetCaughtMonsCount: @ 0x080C2E20 + push {lr} + bl IsNationalPokedexEnabled + cmp r0, #0 + bne _080C2E32 + movs r0, #1 + bl GetHoennPokedexCount + b _080C2E38 +_080C2E32: + movs r0, #1 + bl GetNationalPokedexCount +_080C2E38: + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + thumb_func_end GetCaughtMonsCount + + thumb_func_start PrintPokedexOnCard +PrintPokedexOnCard: @ 0x080C2E40 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + ldr r0, _080C2ECC + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080C2F44 + ldr r7, _080C2ED0 + ldr r4, _080C2ED4 + ldr r0, [r4] + ldr r1, _080C2ED8 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r7, #0 + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r0, [r4] + ldr r1, _080C2EDC + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080C2EF0 + ldr r6, _080C2EE0 + ldrb r1, [r6, #1] + ldr r5, _080C2EE4 + str r5, [sp] + movs r4, #1 + rsbs r4, r4, #0 + str r4, [sp, #4] + ldr r0, _080C2EE8 + str r0, [sp, #8] + movs r0, #1 + movs r2, #0x14 + movs r3, #0x48 + bl AddTextPrinterParameterized3 + adds r0, r7, #0 + bl StringLength + lsls r0, r0, #0x10 + lsrs r0, r0, #0xd + movs r1, #0x78 + rsbs r1, r1, #0 + adds r2, r1, #0 + subs r2, r2, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r6, [r6] + str r5, [sp] + str r4, [sp, #4] + str r7, [sp, #8] + movs r0, #1 + adds r1, r6, #0 + movs r3, #0x48 + bl AddTextPrinterParameterized3 + str r5, [sp] + str r4, [sp, #4] + ldr r0, _080C2EEC + str r0, [sp, #8] + movs r0, #1 + adds r1, r6, #0 + movs r2, #0x8a + movs r3, #0x48 + bl AddTextPrinterParameterized3 + b _080C2F44 + .align 2, 0 +_080C2ECC: .4byte 0x00000861 +_080C2ED0: .4byte 0x02021C7C +_080C2ED4: .4byte 0x02039988 +_080C2ED8: .4byte 0x0000052C +_080C2EDC: .4byte 0x00000517 +_080C2EE0: .4byte 0x08546775 +_080C2EE4: .4byte 0x0854676C +_080C2EE8: .4byte 0x085CC331 +_080C2EEC: .4byte 0x085CC339 +_080C2EF0: + ldr r6, _080C2F4C + ldrb r1, [r6, #1] + ldr r5, _080C2F50 + str r5, [sp] + movs r4, #1 + rsbs r4, r4, #0 + str r4, [sp, #4] + ldr r0, _080C2F54 + str r0, [sp, #8] + movs r0, #1 + movs r2, #0x10 + movs r3, #0x4a + bl AddTextPrinterParameterized3 + adds r0, r7, #0 + bl StringLength + lsls r0, r0, #0x10 + lsrs r0, r0, #0xd + movs r2, #0x6c + subs r2, r2, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r6, [r6] + str r5, [sp] + str r4, [sp, #4] + str r7, [sp, #8] + movs r0, #1 + adds r1, r6, #0 + movs r3, #0x4a + bl AddTextPrinterParameterized3 + str r5, [sp] + str r4, [sp, #4] + ldr r0, _080C2F58 + str r0, [sp, #8] + movs r0, #1 + adds r1, r6, #0 + movs r2, #0x6e + movs r3, #0x4a + bl AddTextPrinterParameterized3 +_080C2F44: + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080C2F4C: .4byte 0x08546775 +_080C2F50: .4byte 0x0854676C +_080C2F54: .4byte 0x085CC331 +_080C2F58: .4byte 0x085CC339 + thumb_func_end PrintPokedexOnCard + + thumb_func_start PrintMoneyOnCard +PrintMoneyOnCard: @ 0x080C2F5C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + ldr r0, _080C2F84 + ldr r2, [r0] + ldrb r1, [r2, #5] + adds r6, r0, #0 + cmp r1, #0 + beq _080C2F88 + movs r1, #0xa6 + lsls r1, r1, #3 + adds r0, r2, r1 + ldrh r5, [r0] + adds r1, #2 + adds r0, r2, r1 + ldrh r0, [r0] + b _080C2F90 + .align 2, 0 +_080C2F84: .4byte 0x02039988 +_080C2F88: + ldr r0, _080C2FF0 + ldr r0, [r0] + ldrh r5, [r0, #0xe] + ldrb r0, [r0, #0x10] +_080C2F90: + mov sl, r0 + ldr r0, _080C2FF4 + cmp r5, r0 + bls _080C2F9A + adds r5, r0, #0 +_080C2F9A: + mov r2, sl + cmp r2, #0x3b + bls _080C2FA4 + movs r0, #0x3b + mov sl, r0 +_080C2FA4: + ldr r1, _080C2FF8 + ldr r0, [r6] + ldr r4, _080C2FFC + adds r0, r0, r4 + ldrb r0, [r0] + adds r1, r0, r1 + ldrb r2, [r1] + ldr r1, _080C3000 + adds r0, r0, r1 + ldrb r3, [r0] + movs r0, #0x32 + str r0, [sp] + movs r0, #0xc + str r0, [sp, #4] + movs r0, #1 + movs r1, #0 + bl FillWindowPixelRect + ldr r0, [r6] + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0 + bne _080C3010 + ldr r0, _080C3004 + ldrb r1, [r0, #1] + ldr r0, _080C3008 + str r0, [sp] + movs r0, #1 + rsbs r0, r0, #0 + str r0, [sp, #4] + ldr r0, _080C300C + str r0, [sp, #8] + movs r0, #1 + movs r2, #0x14 + movs r3, #0x58 + bl AddTextPrinterParameterized3 + b _080C302C + .align 2, 0 +_080C2FF0: .4byte 0x03005AF0 +_080C2FF4: .4byte 0x000003E7 +_080C2FF8: .4byte 0x085467AC +_080C2FFC: .4byte 0x00000517 +_080C3000: .4byte 0x085467B2 +_080C3004: .4byte 0x08546775 +_080C3008: .4byte 0x0854676C +_080C300C: .4byte 0x085CC341 +_080C3010: + ldr r0, _080C30DC + ldrb r1, [r0, #1] + ldr r0, _080C30E0 + str r0, [sp] + movs r0, #1 + rsbs r0, r0, #0 + str r0, [sp, #4] + ldr r0, _080C30E4 + str r0, [sp, #8] + movs r0, #1 + movs r2, #0x10 + movs r3, #0x5a + bl AddTextPrinterParameterized3 +_080C302C: + ldr r0, _080C30E8 + adds r1, r5, #0 + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r0, _080C30DC + ldrb r7, [r0] + ldr r1, _080C30EC + ldr r2, _080C30F0 + mov sb, r2 + ldr r0, [r2] + ldr r2, _080C30F4 + mov r8, r2 + add r0, r8 + ldrb r0, [r0] + adds r1, r0, r1 + ldrb r2, [r1] + ldr r6, _080C30F8 + adds r0, r0, r6 + ldrb r3, [r0] + ldr r0, _080C30E0 + str r0, [sp] + movs r5, #1 + rsbs r5, r5, #0 + str r5, [sp, #4] + ldr r1, _080C30E8 + str r1, [sp, #8] + movs r0, #1 + adds r1, r7, #0 + bl AddTextPrinterParameterized3 + ldr r1, _080C30FC + mov r2, sb + ldr r4, [r2] + mov r2, r8 + adds r0, r4, r2 + ldrb r0, [r0] + adds r1, r0, r1 + ldrb r2, [r1] + adds r0, r0, r6 + ldrb r3, [r0] + ldr r1, _080C3100 + ldrb r0, [r4, #7] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [sp] + str r5, [sp, #4] + ldr r0, _080C3104 + str r0, [sp, #8] + movs r0, #1 + adds r1, r7, #0 + bl AddTextPrinterParameterized3 + ldr r0, _080C30E8 + mov r1, sl + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r1, _080C3108 + mov r2, sb + ldr r0, [r2] + add r0, r8 + ldrb r0, [r0] + adds r1, r0, r1 + ldrb r2, [r1] + adds r0, r0, r6 + ldrb r3, [r0] + ldr r0, _080C30E0 + str r0, [sp] + str r5, [sp, #4] + ldr r1, _080C30E8 + str r1, [sp, #8] + movs r0, #1 + adds r1, r7, #0 + bl AddTextPrinterParameterized3 + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080C30DC: .4byte 0x08546775 +_080C30E0: .4byte 0x0854676C +_080C30E4: .4byte 0x085CC341 +_080C30E8: .4byte 0x02021C7C +_080C30EC: .4byte 0x085467AC +_080C30F0: .4byte 0x02039988 +_080C30F4: .4byte 0x00000517 +_080C30F8: .4byte 0x085467B2 +_080C30FC: .4byte 0x085467AE +_080C3100: .4byte 0x085467A4 +_080C3104: .4byte 0x085CC33C +_080C3108: .4byte 0x085467B0 + thumb_func_end PrintMoneyOnCard + + thumb_func_start PrintString +PrintString: @ 0x080C310C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + movs r0, #1 + movs r1, #0 + bl GetFontAttribute + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r7, _080C31E8 + ldr r1, [r7] + ldrb r0, [r1, #5] + cmp r0, #0 + beq _080C31DC + ldr r0, _080C31EC + mov r8, r0 + ldr r4, _080C31F0 + adds r0, r1, r4 + ldrb r0, [r0] + add r0, r8 + ldrb r3, [r0] + ldr r0, _080C31F4 + str r0, [sp] + movs r5, #1 + rsbs r5, r5, #0 + str r5, [sp, #4] + adds r0, r1, #0 + adds r0, #0x19 + str r0, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r2, #0xa + bl AddTextPrinterParameterized3 + ldr r0, [r7] + adds r0, #0x19 + bl StringLength + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r0, #1 + adds r2, r0, #0 + muls r2, r6, r2 + adds r2, #0xa + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r1, [r7] + adds r0, r1, r4 + ldrb r0, [r0] + add r0, r8 + ldrb r3, [r0] + ldr r0, _080C31F4 + str r0, [sp] + str r5, [sp, #4] + adds r1, #0x21 + str r1, [sp, #8] + movs r0, #1 + movs r1, #1 + bl AddTextPrinterParameterized3 + ldr r0, _080C31F8 + mov r8, r0 + ldr r1, [r7] + adds r0, r1, r4 + ldrb r0, [r0] + add r0, r8 + ldrb r3, [r0] + ldr r0, _080C31F4 + str r0, [sp] + str r5, [sp, #4] + adds r1, #0x29 + str r1, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r2, #0xa + bl AddTextPrinterParameterized3 + ldr r0, [r7] + adds r0, #0x29 + bl StringLength + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r0, #1 + adds r2, r0, #0 + muls r2, r6, r2 + adds r2, #0xa + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r1, [r7] + adds r4, r1, r4 + ldrb r0, [r4] + add r0, r8 + ldrb r3, [r0] + ldr r0, _080C31F4 + str r0, [sp] + str r5, [sp, #4] + adds r1, #0x31 + str r1, [sp, #8] + movs r0, #1 + movs r1, #1 + bl AddTextPrinterParameterized3 +_080C31DC: + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080C31E8: .4byte 0x02039988 +_080C31EC: .4byte 0x085467B4 +_080C31F0: .4byte 0x00000517 +_080C31F4: .4byte 0x0854676C +_080C31F8: .4byte 0x085467B6 + thumb_func_end PrintString + + thumb_func_start sub_080C31FC +sub_080C31FC: @ 0x080C31FC + push {r4, lr} + ldr r4, _080C3230 + ldr r1, [r4] + adds r0, r1, #0 + adds r0, #0x39 + movs r2, #0xaa + lsls r2, r2, #3 + adds r1, r1, r2 + bl StringCopy + ldr r4, [r4] + ldr r1, _080C3234 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _080C3228 + adds r0, r4, #0 + adds r0, #0x39 + ldr r1, _080C3238 + movs r2, #0xa + bl StringAppendN +_080C3228: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C3230: .4byte 0x02039988 +_080C3234: .4byte 0x00000516 +_080C3238: .4byte 0x085CC350 + thumb_func_end sub_080C31FC + + thumb_func_start sub_080C323C +sub_080C323C: @ 0x080C323C + push {r4, r5, lr} + sub sp, #0xc + ldr r5, _080C3270 + ldr r2, [r5] + ldr r1, _080C3274 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080C3280 + ldr r0, _080C3278 + ldrb r1, [r0, #1] + ldr r0, _080C327C + str r0, [sp] + movs r0, #1 + rsbs r0, r0, #0 + str r0, [sp, #4] + adds r0, r2, #0 + adds r0, #0x39 + str r0, [sp, #8] + movs r0, #1 + movs r2, #0x82 + movs r3, #0xa + bl AddTextPrinterParameterized3 + b _080C32B0 + .align 2, 0 +_080C3270: .4byte 0x02039988 +_080C3274: .4byte 0x00000517 +_080C3278: .4byte 0x08546775 +_080C327C: .4byte 0x0854676C +_080C3280: + adds r1, r2, #0 + adds r1, #0x39 + movs r4, #1 + rsbs r4, r4, #0 + movs r0, #1 + adds r2, r4, #0 + bl GetStringWidth + movs r2, #0xd8 + subs r2, r2, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r0, _080C32B8 + ldrb r1, [r0, #1] + ldr r0, _080C32BC + str r0, [sp] + str r4, [sp, #4] + ldr r0, [r5] + adds r0, #0x39 + str r0, [sp, #8] + movs r0, #1 + movs r3, #0xa + bl AddTextPrinterParameterized3 +_080C32B0: + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080C32B8: .4byte 0x08546775 +_080C32BC: .4byte 0x0854676C + thumb_func_end sub_080C323C + + thumb_func_start PrintHofTimeOnCard +PrintHofTimeOnCard: @ 0x080C32C0 + push {r4, lr} + ldr r4, _080C3314 + ldr r1, [r4] + ldrb r0, [r1, #0xb] + cmp r0, #0 + beq _080C330C + ldr r0, _080C3318 + ldr r2, _080C331C + adds r1, r1, r2 + ldrh r1, [r1] + movs r2, #1 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r0, _080C3320 + ldr r1, [r4] + movs r2, #0xa5 + lsls r2, r2, #3 + adds r1, r1, r2 + ldrh r1, [r1] + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r0, _080C3324 + ldr r1, [r4] + ldr r2, _080C3328 + adds r1, r1, r2 + ldrh r1, [r1] + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r0, [r4] + adds r0, #0x7f + ldr r1, _080C332C + bl StringExpandPlaceholders +_080C330C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C3314: .4byte 0x02039988 +_080C3318: .4byte 0x02021C40 +_080C331C: .4byte 0x00000526 +_080C3320: .4byte 0x02021C54 +_080C3324: .4byte 0x02021C68 +_080C3328: .4byte 0x0000052A +_080C332C: .4byte 0x085467B8 + thumb_func_end PrintHofTimeOnCard + + thumb_func_start PrintWinsLossesStringOnCard +PrintWinsLossesStringOnCard: @ 0x080C3330 + push {r4, r5, r6, lr} + sub sp, #0xc + ldr r6, _080C3384 + ldr r3, [r6] + ldrb r0, [r3, #0xb] + cmp r0, #0 + beq _080C337C + ldr r5, _080C3388 + ldrb r1, [r5, #1] + ldr r2, _080C338C + ldr r4, _080C3390 + adds r0, r3, r4 + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r2, [r0] + ldr r0, _080C3394 + str r0, [sp] + movs r4, #1 + rsbs r4, r4, #0 + str r4, [sp, #4] + ldr r0, _080C3398 + str r0, [sp, #8] + movs r0, #1 + movs r3, #0x23 + bl AddTextPrinterParameterized3 + ldrb r1, [r5] + ldr r0, _080C339C + str r0, [sp] + str r4, [sp, #4] + ldr r0, [r6] + adds r0, #0x7f + str r0, [sp, #8] + movs r0, #1 + movs r2, #0x91 + movs r3, #0x23 + bl AddTextPrinterParameterized3 +_080C337C: + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080C3384: .4byte 0x02039988 +_080C3388: .4byte 0x08546775 +_080C338C: .4byte 0x085467C1 +_080C3390: .4byte 0x00000517 +_080C3394: .4byte 0x0854676C +_080C3398: .4byte 0x085CC35A +_080C339C: .4byte 0x0854676F + thumb_func_end PrintWinsLossesStringOnCard + + thumb_func_start PrintLinkResultsNumsOnCard +PrintLinkResultsNumsOnCard: @ 0x080C33A0 + push {r4, lr} + ldr r4, _080C33F0 + ldr r1, [r4] + ldrb r0, [r1, #0xc] + cmp r0, #0 + beq _080C33EA + adds r0, r1, #0 + adds r0, #0xc5 + ldr r2, _080C33F4 + ldr r3, _080C33F8 + adds r1, r1, r3 + ldrb r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl StringCopy + ldr r1, [r4] + ldr r2, _080C33FC + adds r0, r1, r2 + ldr r3, _080C3400 + adds r1, r1, r3 + ldrh r1, [r1] + movs r2, #0 + movs r3, #4 + bl ConvertIntToDecimalStringN + ldr r1, [r4] + ldr r2, _080C3404 + adds r0, r1, r2 + ldr r3, _080C3408 + adds r1, r1, r3 + ldrh r1, [r1] + movs r2, #0 + movs r3, #4 + bl ConvertIntToDecimalStringN +_080C33EA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C33F0: .4byte 0x02039988 +_080C33F4: .4byte 0x085467C4 +_080C33F8: .4byte 0x00000516 +_080C33FC: .4byte 0x00000151 +_080C3400: .4byte 0x00000534 +_080C3404: .4byte 0x00000197 +_080C3408: .4byte 0x00000536 + thumb_func_end PrintLinkResultsNumsOnCard + + thumb_func_start PrintIdOnCard +PrintIdOnCard: @ 0x080C340C + push {r4, r5, r6, r7, lr} + sub sp, #0xc + ldr r7, _080C3494 + ldr r3, [r7] + ldrb r0, [r3, #0xc] + cmp r0, #0 + beq _080C348A + ldr r5, _080C3498 + ldrb r1, [r5, #1] + ldr r2, _080C349C + ldr r4, _080C34A0 + adds r0, r3, r4 + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r2, [r0] + ldr r6, _080C34A4 + str r6, [sp] + movs r4, #1 + rsbs r4, r4, #0 + str r4, [sp, #4] + adds r0, r3, #0 + adds r0, #0xc5 + str r0, [sp, #8] + movs r0, #1 + movs r3, #0x33 + bl AddTextPrinterParameterized3 + ldrb r5, [r5] + str r6, [sp] + str r4, [sp, #4] + ldr r0, _080C34A8 + str r0, [sp, #8] + movs r0, #1 + adds r1, r5, #0 + movs r2, #0x6e + movs r3, #0x33 + bl AddTextPrinterParameterized3 + ldr r6, _080C34AC + str r6, [sp] + str r4, [sp, #4] + ldr r0, [r7] + ldr r1, _080C34B0 + adds r0, r0, r1 + str r0, [sp, #8] + movs r0, #1 + adds r1, r5, #0 + movs r2, #0x82 + movs r3, #0x33 + bl AddTextPrinterParameterized3 + str r6, [sp] + str r4, [sp, #4] + ldr r0, [r7] + ldr r4, _080C34B4 + adds r0, r0, r4 + str r0, [sp, #8] + movs r0, #1 + adds r1, r5, #0 + movs r2, #0xb9 + movs r3, #0x33 + bl AddTextPrinterParameterized3 +_080C348A: + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080C3494: .4byte 0x02039988 +_080C3498: .4byte 0x08546775 +_080C349C: .4byte 0x085467C1 +_080C34A0: .4byte 0x00000517 +_080C34A4: .4byte 0x0854676C +_080C34A8: .4byte 0x085CC379 +_080C34AC: .4byte 0x0854676F +_080C34B0: .4byte 0x00000151 +_080C34B4: .4byte 0x00000197 + thumb_func_end PrintIdOnCard + + thumb_func_start PrintTradesNumOnCard +PrintTradesNumOnCard: @ 0x080C34B8 + push {lr} + ldr r0, _080C34DC + ldr r1, [r0] + ldrb r0, [r1, #0x10] + cmp r0, #0 + beq _080C34D8 + ldr r2, _080C34E0 + adds r0, r1, r2 + movs r2, #0xa8 + lsls r2, r2, #3 + adds r1, r1, r2 + ldrh r1, [r1] + movs r2, #1 + movs r3, #5 + bl ConvertIntToDecimalStringN +_080C34D8: + pop {r0} + bx r0 + .align 2, 0 +_080C34DC: .4byte 0x02039988 +_080C34E0: .4byte 0x00000223 + thumb_func_end PrintTradesNumOnCard + + thumb_func_start PrintBattleFacilityStringOnCard +PrintBattleFacilityStringOnCard: @ 0x080C34E4 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + ldr r7, _080C353C + ldr r3, [r7] + ldrb r0, [r3, #0x10] + cmp r0, #0 + beq _080C3574 + ldr r6, _080C3540 + ldrb r1, [r6, #1] + ldr r2, _080C3544 + ldr r4, _080C3548 + adds r0, r3, r4 + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r2, [r0] + ldr r0, _080C354C + str r0, [sp] + movs r5, #1 + rsbs r5, r5, #0 + str r5, [sp, #4] + ldr r0, _080C3550 + str r0, [sp, #8] + movs r0, #1 + movs r3, #0x43 + bl AddTextPrinterParameterized3 + ldr r2, [r7] + adds r4, r2, r4 + ldrb r0, [r4] + cmp r0, #0 + beq _080C355C + ldrb r1, [r6] + ldr r0, _080C3554 + str r0, [sp] + str r5, [sp, #4] + ldr r3, _080C3558 + adds r0, r2, r3 + str r0, [sp, #8] + movs r0, #1 + movs r2, #0xa8 + movs r3, #0x43 + bl AddTextPrinterParameterized3 + b _080C3574 + .align 2, 0 +_080C353C: .4byte 0x02039988 +_080C3540: .4byte 0x08546775 +_080C3544: .4byte 0x085467C1 +_080C3548: .4byte 0x00000517 +_080C354C: .4byte 0x0854676C +_080C3550: .4byte 0x085CC383 +_080C3554: .4byte 0x0854676F +_080C3558: .4byte 0x00000223 +_080C355C: + ldrb r1, [r6] + ldr r0, _080C357C + str r0, [sp] + str r5, [sp, #4] + ldr r3, _080C3580 + adds r0, r2, r3 + str r0, [sp, #8] + movs r0, #1 + movs r2, #0xa0 + movs r3, #0x43 + bl AddTextPrinterParameterized3 +_080C3574: + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080C357C: .4byte 0x0854676F +_080C3580: .4byte 0x00000223 + thumb_func_end PrintBattleFacilityStringOnCard + + thumb_func_start PrintUnionNumOnCard +PrintUnionNumOnCard: @ 0x080C3584 + push {lr} + ldr r0, _080C35B0 + ldr r2, [r0] + ldr r1, _080C35B4 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080C35AA + ldr r3, _080C35B8 + adds r0, r2, r3 + ldr r1, [r0] + cmp r1, #0 + beq _080C35AA + ldr r3, _080C35BC + adds r0, r2, r3 + movs r2, #1 + movs r3, #5 + bl ConvertIntToDecimalStringN +_080C35AA: + pop {r0} + bx r0 + .align 2, 0 +_080C35B0: .4byte 0x02039988 +_080C35B4: .4byte 0x00000516 +_080C35B8: .4byte 0x0000055C +_080C35BC: .4byte 0x000002AF + thumb_func_end PrintUnionNumOnCard + + thumb_func_start PrintBerryCrushStringOnCard +PrintBerryCrushStringOnCard: @ 0x080C35C0 + push {r4, r5, r6, lr} + sub sp, #0xc + ldr r6, _080C3624 + ldr r3, [r6] + ldr r1, _080C3628 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080C361C + ldr r2, _080C362C + adds r0, r3, r2 + ldr r0, [r0] + cmp r0, #0 + beq _080C361C + ldr r5, _080C3630 + ldrb r1, [r5, #1] + ldr r2, _080C3634 + ldr r4, _080C3638 + adds r0, r3, r4 + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r2, [r0] + ldr r0, _080C363C + str r0, [sp] + movs r4, #1 + rsbs r4, r4, #0 + str r4, [sp, #4] + ldr r0, _080C3640 + str r0, [sp, #8] + movs r0, #1 + movs r3, #0x63 + bl AddTextPrinterParameterized3 + ldrb r1, [r5] + ldr r0, _080C3644 + str r0, [sp] + str r4, [sp, #4] + ldr r0, [r6] + ldr r2, _080C3648 + adds r0, r0, r2 + str r0, [sp, #8] + movs r0, #1 + movs r2, #0x72 + movs r3, #0x63 + bl AddTextPrinterParameterized3 +_080C361C: + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080C3624: .4byte 0x02039988 +_080C3628: .4byte 0x00000516 +_080C362C: .4byte 0x0000055C +_080C3630: .4byte 0x08546775 +_080C3634: .4byte 0x085467C1 +_080C3638: .4byte 0x00000517 +_080C363C: .4byte 0x0854676C +_080C3640: .4byte 0x085CC39E +_080C3644: .4byte 0x0854676F +_080C3648: .4byte 0x000002AF + thumb_func_end PrintBerryCrushStringOnCard + + thumb_func_start PrintBerryCrushNumOnCard +PrintBerryCrushNumOnCard: @ 0x080C364C + push {lr} + ldr r0, _080C3678 + ldr r2, [r0] + ldr r1, _080C367C + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080C3674 + movs r3, #0xac + lsls r3, r3, #3 + adds r0, r2, r3 + ldr r1, [r0] + cmp r1, #0 + beq _080C3674 + ldr r3, _080C3680 + adds r0, r2, r3 + movs r2, #1 + movs r3, #5 + bl ConvertIntToDecimalStringN +_080C3674: + pop {r0} + bx r0 + .align 2, 0 +_080C3678: .4byte 0x02039988 +_080C367C: .4byte 0x00000516 +_080C3680: .4byte 0x0000033B + thumb_func_end PrintBerryCrushNumOnCard + + thumb_func_start PrintUnionStringOnCard +PrintUnionStringOnCard: @ 0x080C3684 + push {r4, r5, r6, lr} + sub sp, #0xc + ldr r6, _080C36EC + ldr r3, [r6] + ldr r1, _080C36F0 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080C36E2 + movs r2, #0xac + lsls r2, r2, #3 + adds r0, r3, r2 + ldr r0, [r0] + cmp r0, #0 + beq _080C36E2 + ldr r5, _080C36F4 + ldrb r1, [r5, #1] + ldr r2, _080C36F8 + ldr r4, _080C36FC + adds r0, r3, r4 + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r2, [r0] + ldr r0, _080C3700 + str r0, [sp] + movs r4, #1 + rsbs r4, r4, #0 + str r4, [sp, #4] + ldr r0, _080C3704 + str r0, [sp, #8] + movs r0, #1 + movs r3, #0x53 + bl AddTextPrinterParameterized3 + ldrb r1, [r5] + ldr r0, _080C3708 + str r0, [sp] + str r4, [sp, #4] + ldr r0, [r6] + ldr r2, _080C370C + adds r0, r0, r2 + str r0, [sp, #8] + movs r0, #1 + movs r2, #0xa0 + movs r3, #0x53 + bl AddTextPrinterParameterized3 +_080C36E2: + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080C36EC: .4byte 0x02039988 +_080C36F0: .4byte 0x00000516 +_080C36F4: .4byte 0x08546775 +_080C36F8: .4byte 0x085467C1 +_080C36FC: .4byte 0x00000517 +_080C3700: .4byte 0x0854676C +_080C3704: .4byte 0x085CC390 +_080C3708: .4byte 0x0854676F +_080C370C: .4byte 0x0000033B + thumb_func_end PrintUnionStringOnCard + + thumb_func_start PrintPokeblocksNumOnCard +PrintPokeblocksNumOnCard: @ 0x080C3710 + push {r4, lr} + ldr r4, _080C3748 + ldr r1, [r4] + ldr r2, _080C374C + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080C3742 + ldr r0, _080C3750 + adds r1, r1, r0 + ldrh r0, [r1] + cmp r0, #0 + beq _080C3742 + ldr r0, _080C3754 + ldrh r1, [r1] + movs r2, #1 + movs r3, #5 + bl ConvertIntToDecimalStringN + ldr r0, [r4] + ldr r1, _080C3758 + adds r0, r0, r1 + ldr r1, _080C375C + bl StringExpandPlaceholders +_080C3742: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C3748: .4byte 0x02039988 +_080C374C: .4byte 0x00000516 +_080C3750: .4byte 0x0000053E +_080C3754: .4byte 0x02021C40 +_080C3758: .4byte 0x00000381 +_080C375C: .4byte 0x085CC3CF + thumb_func_end PrintPokeblocksNumOnCard + + thumb_func_start PrintContestStringOnCard +PrintContestStringOnCard: @ 0x080C3760 + push {r4, r5, r6, lr} + sub sp, #0xc + ldr r6, _080C37C4 + ldr r3, [r6] + ldr r1, _080C37C8 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _080C37BC + ldr r2, _080C37CC + adds r0, r3, r2 + ldrh r0, [r0] + cmp r0, #0 + beq _080C37BC + ldr r5, _080C37D0 + ldrb r1, [r5, #1] + ldr r2, _080C37D4 + ldr r4, _080C37D8 + adds r0, r3, r4 + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r2, [r0] + ldr r0, _080C37DC + str r0, [sp] + movs r4, #1 + rsbs r4, r4, #0 + str r4, [sp, #4] + ldr r0, _080C37E0 + str r0, [sp, #8] + movs r0, #1 + movs r3, #0x53 + bl AddTextPrinterParameterized3 + ldrb r1, [r5] + ldr r0, _080C37E4 + str r0, [sp] + str r4, [sp, #4] + ldr r0, [r6] + ldr r2, _080C37E8 + adds r0, r0, r2 + str r0, [sp, #8] + movs r0, #1 + movs r2, #0xa8 + movs r3, #0x53 + bl AddTextPrinterParameterized3 +_080C37BC: + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080C37C4: .4byte 0x02039988 +_080C37C8: .4byte 0x00000516 +_080C37CC: .4byte 0x0000053E +_080C37D0: .4byte 0x08546775 +_080C37D4: .4byte 0x085467C1 +_080C37D8: .4byte 0x00000517 +_080C37DC: .4byte 0x0854676C +_080C37E0: .4byte 0x085CC3BF +_080C37E4: .4byte 0x0854676F +_080C37E8: .4byte 0x00000381 + thumb_func_end PrintContestStringOnCard + + thumb_func_start PrintContestNumOnCard +PrintContestNumOnCard: @ 0x080C37EC + push {lr} + ldr r0, _080C3818 + ldr r1, [r0] + ldr r2, _080C381C + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080C3814 + ldr r3, _080C3820 + adds r2, r1, r3 + ldrh r0, [r2] + cmp r0, #0 + beq _080C3814 + ldr r3, _080C3824 + adds r0, r1, r3 + ldrh r1, [r2] + movs r2, #1 + movs r3, #5 + bl ConvertIntToDecimalStringN +_080C3814: + pop {r0} + bx r0 + .align 2, 0 +_080C3818: .4byte 0x02039988 +_080C381C: .4byte 0x00000516 +_080C3820: .4byte 0x0000053C +_080C3824: .4byte 0x000003C7 + thumb_func_end PrintContestNumOnCard + + thumb_func_start PrintPokeblockStringOnCard +PrintPokeblockStringOnCard: @ 0x080C3828 + push {r4, r5, r6, lr} + sub sp, #0xc + ldr r6, _080C388C + ldr r3, [r6] + ldr r1, _080C3890 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _080C3884 + ldr r2, _080C3894 + adds r0, r3, r2 + ldrh r0, [r0] + cmp r0, #0 + beq _080C3884 + ldr r5, _080C3898 + ldrb r1, [r5, #1] + ldr r2, _080C389C + ldr r4, _080C38A0 + adds r0, r3, r4 + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r2, [r0] + ldr r0, _080C38A4 + str r0, [sp] + movs r4, #1 + rsbs r4, r4, #0 + str r4, [sp, #4] + ldr r0, _080C38A8 + str r0, [sp, #8] + movs r0, #1 + movs r3, #0x63 + bl AddTextPrinterParameterized3 + ldrb r1, [r5] + ldr r0, _080C38AC + str r0, [sp] + str r4, [sp, #4] + ldr r0, [r6] + ldr r2, _080C38B0 + adds r0, r0, r2 + str r0, [sp, #8] + movs r0, #1 + movs r2, #0xa8 + movs r3, #0x63 + bl AddTextPrinterParameterized3 +_080C3884: + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080C388C: .4byte 0x02039988 +_080C3890: .4byte 0x00000516 +_080C3894: .4byte 0x0000053C +_080C3898: .4byte 0x08546775 +_080C389C: .4byte 0x085467C1 +_080C38A0: .4byte 0x00000517 +_080C38A4: .4byte 0x0854676C +_080C38A8: .4byte 0x085CC3D9 +_080C38AC: .4byte 0x0854676F +_080C38B0: .4byte 0x000003C7 + thumb_func_end PrintPokeblockStringOnCard + + thumb_func_start PrintBattleFacilityNumsOnCard +PrintBattleFacilityNumsOnCard: @ 0x080C38B4 + push {r4, lr} + ldr r4, _080C38D0 + ldr r1, [r4] + ldr r2, _080C38D4 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #1 + beq _080C38D8 + cmp r0, #1 + ble _080C3946 + cmp r0, #2 + beq _080C3924 + b _080C3946 + .align 2, 0 +_080C38D0: .4byte 0x02039988 +_080C38D4: .4byte 0x00000516 +_080C38D8: + ldrb r0, [r1, #0xd] + cmp r0, #0 + beq _080C3946 + ldr r0, _080C3910 + movs r2, #0xa7 + lsls r2, r2, #3 + adds r1, r1, r2 + ldrh r1, [r1] + movs r2, #1 + movs r3, #4 + bl ConvertIntToDecimalStringN + ldr r0, _080C3914 + ldr r1, [r4] + ldr r2, _080C3918 + adds r1, r1, r2 + ldrh r1, [r1] + movs r2, #1 + movs r3, #4 + bl ConvertIntToDecimalStringN + ldr r0, [r4] + ldr r1, _080C391C + adds r0, r0, r1 + ldr r1, _080C3920 + bl StringExpandPlaceholders + b _080C3946 + .align 2, 0 +_080C3910: .4byte 0x02021C40 +_080C3914: .4byte 0x02021C54 +_080C3918: .4byte 0x0000053A +_080C391C: .4byte 0x0000040D +_080C3920: .4byte 0x085CC418 +_080C3924: + ldr r2, _080C394C + adds r1, r1, r2 + ldrh r0, [r1] + cmp r0, #0 + beq _080C3946 + ldr r0, _080C3950 + ldrh r1, [r1] + movs r2, #1 + movs r3, #5 + bl ConvertIntToDecimalStringN + ldr r0, [r4] + ldr r1, _080C3954 + adds r0, r0, r1 + ldr r1, _080C3958 + bl StringExpandPlaceholders +_080C3946: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C394C: .4byte 0x00000582 +_080C3950: .4byte 0x02021C40 +_080C3954: .4byte 0x0000040D +_080C3958: .4byte 0x085CC3F8 + thumb_func_end PrintBattleFacilityNumsOnCard + + thumb_func_start sub_080C395C +sub_080C395C: @ 0x080C395C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + ldr r7, _080C397C + ldr r3, [r7] + ldr r1, _080C3980 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, #1 + beq _080C3984 + cmp r0, #1 + ble _080C3A42 + cmp r0, #2 + beq _080C39F8 + b _080C3A42 + .align 2, 0 +_080C397C: .4byte 0x02039988 +_080C3980: .4byte 0x00000516 +_080C3984: + ldrb r0, [r3, #0xd] + cmp r0, #0 + beq _080C3A42 + ldr r5, _080C39DC + ldrb r1, [r5, #1] + ldr r2, _080C39E0 + mov r8, r2 + ldr r4, _080C39E4 + adds r0, r3, r4 + ldrb r0, [r0] + add r0, r8 + ldrb r2, [r0] + ldr r0, _080C39E8 + str r0, [sp] + movs r6, #1 + rsbs r6, r6, #0 + str r6, [sp, #4] + ldr r0, _080C39EC + str r0, [sp, #8] + movs r0, #1 + movs r3, #0x73 + bl AddTextPrinterParameterized3 + ldrb r1, [r5] + ldr r3, [r7] + adds r4, r3, r4 + ldrb r0, [r4] + add r0, r8 + ldrb r2, [r0] + adds r2, #0x50 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r0, _080C39F0 + str r0, [sp] + str r6, [sp, #4] + ldr r4, _080C39F4 + adds r3, r3, r4 + str r3, [sp, #8] + movs r0, #1 + movs r3, #0x73 + bl AddTextPrinterParameterized3 + b _080C3A42 + .align 2, 0 +_080C39DC: .4byte 0x08546775 +_080C39E0: .4byte 0x085467C1 +_080C39E4: .4byte 0x00000517 +_080C39E8: .4byte 0x0854676C +_080C39EC: .4byte 0x085CC403 +_080C39F0: .4byte 0x0854676F +_080C39F4: .4byte 0x0000040D +_080C39F8: + ldr r1, _080C3A50 + adds r0, r3, r1 + ldrh r0, [r0] + cmp r0, #0 + beq _080C3A42 + ldr r5, _080C3A54 + ldrb r1, [r5, #1] + ldr r2, _080C3A58 + ldr r4, _080C3A5C + adds r0, r3, r4 + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r2, [r0] + ldr r0, _080C3A60 + str r0, [sp] + movs r4, #1 + rsbs r4, r4, #0 + str r4, [sp, #4] + ldr r0, _080C3A64 + str r0, [sp, #8] + movs r0, #1 + movs r3, #0x73 + bl AddTextPrinterParameterized3 + ldrb r1, [r5] + ldr r0, _080C3A68 + str r0, [sp] + str r4, [sp, #4] + ldr r0, [r7] + ldr r2, _080C3A6C + adds r0, r0, r2 + str r0, [sp, #8] + movs r0, #1 + movs r2, #0xa0 + movs r3, #0x73 + bl AddTextPrinterParameterized3 +_080C3A42: + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080C3A50: .4byte 0x00000582 +_080C3A54: .4byte 0x08546775 +_080C3A58: .4byte 0x085467C1 +_080C3A5C: .4byte 0x00000517 +_080C3A60: .4byte 0x0854676C +_080C3A64: .4byte 0x085CC3EA +_080C3A68: .4byte 0x0854676F +_080C3A6C: .4byte 0x0000040D + thumb_func_end sub_080C395C + + thumb_func_start TrainerCard_PrintPokemonIconsOnCard +TrainerCard_PrintPokemonIconsOnCard: @ 0x080C3A70 + push {r4, r5, lr} + sub sp, #0x20 + ldr r1, _080C3AF8 + add r0, sp, #0x10 + movs r2, #6 + bl memcpy + add r4, sp, #0x18 + ldr r1, _080C3AFC + adds r0, r4, #0 + movs r2, #6 + bl memcpy + ldr r0, _080C3B00 + ldr r0, [r0] + ldr r1, _080C3B04 + adds r0, r0, r1 + ldrb r0, [r0] + adds r5, r4, #0 + cmp r0, #0 + bne _080C3AEE + movs r4, #0 +_080C3A9C: + ldr r0, _080C3B00 + ldr r0, [r0] + lsls r1, r4, #1 + ldr r2, _080C3B08 + adds r0, r0, r2 + adds r1, r0, r1 + ldrh r0, [r1] + cmp r0, #0 + beq _080C3AE4 + bl GetMonIconPaletteIndexFromSpecies + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r4, #0x14 + movs r2, #0xe0 + lsls r2, r2, #0x10 + adds r1, r1, r2 + lsrs r1, r1, #0x10 + adds r2, r5, r4 + ldrb r2, [r2] + adds r2, #3 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r3, #4 + str r3, [sp] + str r3, [sp, #4] + add r0, sp + adds r0, #0x10 + ldrb r0, [r0] + str r0, [sp, #8] + movs r0, #1 + str r0, [sp, #0xc] + movs r0, #3 + movs r3, #0xf + bl WriteSequenceToBgTilemapBuffer +_080C3AE4: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #5 + bls _080C3A9C +_080C3AEE: + add sp, #0x20 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080C3AF8: .4byte 0x085467D0 +_080C3AFC: .4byte 0x085467D6 +_080C3B00: .4byte 0x02039988 +_080C3B04: .4byte 0x00000516 +_080C3B08: .4byte 0x00000574 + thumb_func_end TrainerCard_PrintPokemonIconsOnCard + + thumb_func_start sub_080C3B0C +sub_080C3B0C: @ 0x080C3B0C + push {r4, r5, lr} + sub sp, #4 + ldr r0, _080C3B3C + ldr r4, _080C3B40 + ldr r1, [r4] + ldr r5, _080C3B44 + adds r1, r1, r5 + movs r2, #0x60 + bl CpuSet + ldr r4, [r4] + ldr r1, _080C3B48 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #1 + beq _080C3B4C + cmp r0, #1 + ble _080C3B84 + cmp r0, #2 + beq _080C3B64 + cmp r0, #3 + beq _080C3B7C + b _080C3B84 + .align 2, 0 +_080C3B3C: .4byte 0x085567A4 +_080C3B40: .4byte 0x02039988 +_080C3B44: .4byte 0x00000454 +_080C3B48: .4byte 0x0000056E +_080C3B4C: + ldr r2, _080C3B60 + adds r0, r4, r2 + movs r1, #0 + str r1, [sp] + movs r1, #0x60 + movs r2, #0 + movs r3, #0 + bl TintPalette_CustomTone + b _080C3B84 + .align 2, 0 +_080C3B60: .4byte 0x00000454 +_080C3B64: + adds r0, r4, r5 + movs r2, #0xfa + lsls r2, r2, #1 + movs r3, #0xa5 + lsls r3, r3, #1 + movs r1, #0x9b + lsls r1, r1, #1 + str r1, [sp] + movs r1, #0x60 + bl TintPalette_CustomTone + b _080C3B84 +_080C3B7C: + adds r0, r4, r5 + movs r1, #0x60 + bl TintPalette_SepiaTone +_080C3B84: + ldr r0, _080C3BD8 + ldr r0, [r0] + ldr r1, _080C3BDC + adds r0, r0, r1 + movs r1, #0x50 + movs r2, #0xc0 + bl LoadPalette + movs r4, #0 +_080C3B96: + ldr r0, _080C3BD8 + ldr r0, [r0] + lsls r1, r4, #1 + ldr r2, _080C3BE0 + adds r0, r0, r2 + adds r1, r0, r1 + ldrh r0, [r1] + cmp r0, #0 + beq _080C3BC4 + movs r1, #0 + bl GetMonIconTiles + adds r1, r0, #0 + lsls r3, r4, #0x14 + movs r0, #0x80 + lsls r0, r0, #0xe + adds r3, r3, r0 + lsrs r3, r3, #0x10 + movs r0, #3 + movs r2, #0x80 + lsls r2, r2, #2 + bl LoadBgTiles +_080C3BC4: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #5 + bls _080C3B96 + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080C3BD8: .4byte 0x02039988 +_080C3BDC: .4byte 0x00000454 +_080C3BE0: .4byte 0x00000574 + thumb_func_end sub_080C3B0C + + thumb_func_start PrintNameOnCard2 +PrintNameOnCard2: @ 0x080C3BE4 + push {r4, lr} + sub sp, #0x14 + ldr r1, _080C3C60 + add r0, sp, #0x10 + movs r2, #4 + bl memcpy + ldr r0, _080C3C64 + ldr r1, [r0] + ldr r2, _080C3C68 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _080C3C58 + adds r2, #0x56 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #1 + bne _080C3C58 + movs r4, #0 +_080C3C0C: + ldr r0, _080C3C64 + ldr r0, [r0] + movs r1, #0xae + lsls r1, r1, #3 + adds r0, r0, r1 + adds r0, r0, r4 + ldrb r3, [r0] + cmp r3, #0 + beq _080C3C4E + lsls r1, r4, #0x12 + movs r2, #0xa0 + lsls r2, r2, #0x11 + adds r1, r1, r2 + lsrs r1, r1, #0x10 + lsls r2, r4, #1 + adds r2, r2, r4 + adds r2, #2 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + movs r0, #2 + str r0, [sp] + str r0, [sp, #4] + subs r0, r3, #1 + add r0, sp + adds r0, #0x10 + ldrb r0, [r0] + str r0, [sp, #8] + movs r0, #1 + str r0, [sp, #0xc] + movs r0, #3 + movs r3, #2 + bl WriteSequenceToBgTilemapBuffer +_080C3C4E: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #2 + bls _080C3C0C +_080C3C58: + add sp, #0x14 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C3C60: .4byte 0x085467DC +_080C3C64: .4byte 0x02039988 +_080C3C68: .4byte 0x00000516 + thumb_func_end PrintNameOnCard2 + + thumb_func_start sub_080C3C6C +sub_080C3C6C: @ 0x080C3C6C + push {lr} + ldr r0, _080C3CB0 + movs r1, #0xb0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _080C3CB4 + movs r1, #0xc0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _080C3CB8 + movs r1, #0xd0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _080C3CBC + movs r1, #0xe0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _080C3CC0 + ldr r1, [r0] + ldr r0, _080C3CC4 + adds r1, r1, r0 + movs r2, #0x80 + lsls r2, r2, #3 + movs r0, #3 + movs r3, #0x80 + bl LoadBgTiles + pop {r0} + bx r0 + .align 2, 0 +_080C3CB0: .4byte 0x085461AC +_080C3CB4: .4byte 0x085461CC +_080C3CB8: .4byte 0x085461EC +_080C3CBC: .4byte 0x0854620C +_080C3CC0: .4byte 0x02039988 +_080C3CC4: .4byte 0x00001794 + thumb_func_end sub_080C3C6C + + thumb_func_start PrintHofDebutStringOnCard +PrintHofDebutStringOnCard: @ 0x080C3CC8 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl PutWindowTilemap + adds r0, r4, #0 + movs r1, #3 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + thumb_func_end PrintHofDebutStringOnCard + + thumb_func_start SetCardBgsAndPals +SetCardBgsAndPals: @ 0x080C3CE4 + push {r4, lr} + sub sp, #8 + ldr r0, _080C3D00 + ldr r0, [r0] + ldrb r0, [r0, #3] + cmp r0, #4 + bls _080C3CF4 + b _080C3E66 +_080C3CF4: + lsls r0, r0, #2 + ldr r1, _080C3D04 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C3D00: .4byte 0x02039988 +_080C3D04: .4byte 0x080C3D08 +_080C3D08: @ jump table + .4byte _080C3D1C @ case 0 + .4byte _080C3D34 @ case 1 + .4byte _080C3D54 @ case 2 + .4byte _080C3E0C @ case 3 + .4byte _080C3E34 @ case 4 +_080C3D1C: + ldr r0, _080C3D2C + ldr r1, [r0] + ldr r0, _080C3D30 + adds r1, r1, r0 + movs r2, #0x80 + lsls r2, r2, #3 + movs r0, #3 + b _080C3D42 + .align 2, 0 +_080C3D2C: .4byte 0x02039988 +_080C3D30: .4byte 0x00001394 +_080C3D34: + ldr r0, _080C3D4C + ldr r1, [r0] + ldr r3, _080C3D50 + adds r1, r1, r3 + movs r2, #0xc0 + lsls r2, r2, #5 + movs r0, #0 +_080C3D42: + movs r3, #0 + bl LoadBgTiles + b _080C3E6A + .align 2, 0 +_080C3D4C: .4byte 0x02039988 +_080C3D50: .4byte 0x00001994 +_080C3D54: + ldr r4, _080C3D9C + ldr r2, [r4] + ldr r1, _080C3DA0 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _080C3DB4 + ldr r1, _080C3DA4 + ldr r3, _080C3DA8 + adds r0, r2, r3 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0 + movs r2, #0x60 + bl LoadPalette + ldr r0, _080C3DAC + movs r1, #0x30 + movs r2, #0x20 + bl LoadPalette + ldr r0, [r4] + movs r1, #0xa4 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _080C3DEC + ldr r0, _080C3DB0 + movs r1, #0x10 + movs r2, #0x20 + bl LoadPalette + b _080C3DEC + .align 2, 0 +_080C3D9C: .4byte 0x02039988 +_080C3DA0: .4byte 0x00000516 +_080C3DA4: .4byte 0x08546744 +_080C3DA8: .4byte 0x00000521 +_080C3DAC: .4byte 0x0854614C +_080C3DB0: .4byte 0x0854610C +_080C3DB4: + ldr r1, _080C3DF8 + ldr r3, _080C3DFC + adds r0, r2, r3 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0 + movs r2, #0x60 + bl LoadPalette + ldr r0, _080C3E00 + movs r1, #0x30 + movs r2, #0x20 + bl LoadPalette + ldr r0, [r4] + movs r1, #0xa4 + lsls r1, r1, #3 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _080C3DEC + ldr r0, _080C3E04 + movs r1, #0x10 + movs r2, #0x20 + bl LoadPalette +_080C3DEC: + ldr r0, _080C3E08 + movs r1, #0x40 + movs r2, #0x20 + bl LoadPalette + b _080C3E6A + .align 2, 0 +_080C3DF8: .4byte 0x08546758 +_080C3DFC: .4byte 0x00000521 +_080C3E00: .4byte 0x0854616C +_080C3E04: .4byte 0x0854612C +_080C3E08: .4byte 0x0854618C +_080C3E0C: + ldr r4, _080C3E28 + ldr r1, [r4] + ldr r3, _080C3E2C + adds r1, r1, r3 + movs r0, #0 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, _080C3E30 + adds r1, r1, r0 + movs r0, #2 + bl SetBgTilemapBuffer + b _080C3E6A + .align 2, 0 +_080C3E28: .4byte 0x02039988 +_080C3E2C: .4byte 0x00003C94 +_080C3E30: .4byte 0x00005C94 +_080C3E34: + movs r4, #0x20 + str r4, [sp] + str r4, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + str r4, [sp] + str r4, [sp, #4] + movs r0, #2 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + str r4, [sp] + str r4, [sp, #4] + movs r0, #3 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 +_080C3E66: + movs r0, #1 + b _080C3E76 +_080C3E6A: + ldr r0, _080C3E80 + ldr r1, [r0] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + movs r0, #0 +_080C3E76: + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080C3E80: .4byte 0x02039988 + thumb_func_end SetCardBgsAndPals + + thumb_func_start sub_080C3E84 +sub_080C3E84: @ 0x080C3E84 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + ldr r0, _080C3EBC + ldr r0, [r0] + ldr r1, _080C3EC0 + adds r6, r0, r1 + movs r1, #0 +_080C3E92: + movs r2, #0 + lsls r5, r1, #0x10 + asrs r1, r5, #0x10 + lsls r3, r1, #5 + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r4, r0, #1 +_080C3EA0: + lsls r0, r2, #0x10 + asrs r1, r0, #0x10 + adds r2, r0, #0 + cmp r1, #0x1d + bgt _080C3EC4 + adds r0, r3, r1 + lsls r0, r0, #1 + adds r0, r0, r6 + adds r1, r4, r1 + lsls r1, r1, #1 + adds r1, r1, r7 + ldrh r1, [r1] + b _080C3ECC + .align 2, 0 +_080C3EBC: .4byte 0x02039988 +_080C3EC0: .4byte 0x00005C94 +_080C3EC4: + adds r0, r3, r1 + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r1, [r7] +_080C3ECC: + strh r1, [r0] + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r2, r1 + lsrs r2, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1f + ble _080C3EA0 + adds r0, r5, r1 + lsrs r1, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x13 + ble _080C3E92 + movs r0, #2 + bl CopyBgTilemapBufferToVram + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080C3E84 + + thumb_func_start sub_080C3EF4 +sub_080C3EF4: @ 0x080C3EF4 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + ldr r0, _080C3F2C + ldr r0, [r0] + ldr r1, _080C3F30 + adds r6, r0, r1 + movs r1, #0 +_080C3F02: + movs r2, #0 + lsls r5, r1, #0x10 + asrs r1, r5, #0x10 + lsls r3, r1, #5 + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r4, r0, #1 +_080C3F10: + lsls r0, r2, #0x10 + asrs r1, r0, #0x10 + adds r2, r0, #0 + cmp r1, #0x1d + bgt _080C3F34 + adds r0, r3, r1 + lsls r0, r0, #1 + adds r0, r0, r6 + adds r1, r4, r1 + lsls r1, r1, #1 + adds r1, r1, r7 + ldrh r1, [r1] + b _080C3F3C + .align 2, 0 +_080C3F2C: .4byte 0x02039988 +_080C3F30: .4byte 0x00003C94 +_080C3F34: + adds r0, r3, r1 + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r1, [r7] +_080C3F3C: + strh r1, [r0] + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r2, r1 + lsrs r2, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1f + ble _080C3F10 + adds r0, r5, r1 + lsrs r1, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x13 + ble _080C3F02 + movs r0, #0 + bl CopyBgTilemapBufferToVram + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080C3EF4 + + thumb_func_start TrainerCard_PrintStarsAndBadgesOnCard +TrainerCard_PrintStarsAndBadgesOnCard: @ 0x080C3F64 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + movs r0, #0xc0 + mov r8, r0 + movs r2, #3 + mov sl, r2 + ldr r2, _080C4070 + ldr r4, _080C4074 + ldr r1, [r4] + ldr r3, _080C4078 + adds r0, r1, r3 + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r3, [r0] + ldr r0, _080C407C + adds r1, r1, r0 + ldrb r0, [r1] + str r0, [sp] + movs r0, #1 + str r0, [sp, #4] + movs r0, #4 + str r0, [sp, #8] + movs r0, #3 + movs r1, #0x8f + movs r2, #0xf + bl FillBgTilemapBufferRect + ldr r0, [r4] + ldrb r0, [r0, #5] + cmp r0, #0 + bne _080C4058 + movs r2, #4 + mov sb, r2 + movs r2, #0 + movs r6, #1 +_080C3FB2: + ldr r0, _080C4074 + ldr r1, [r0] + lsls r0, r2, #0x10 + asrs r7, r0, #0x10 + adds r1, #0x11 + adds r1, r1, r7 + ldrb r0, [r1] + cmp r0, #0 + beq _080C4034 + mov r3, sb + lsls r5, r3, #0x18 + lsrs r5, r5, #0x18 + str r6, [sp] + str r6, [sp, #4] + mov r0, sl + str r0, [sp, #8] + movs r0, #3 + mov r1, r8 + adds r2, r5, #0 + movs r3, #0xf + bl FillBgTilemapBufferRect + mov r1, r8 + adds r1, #1 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r4, sb + adds r4, #1 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r6, [sp] + str r6, [sp, #4] + mov r2, sl + str r2, [sp, #8] + movs r0, #3 + adds r2, r4, #0 + movs r3, #0xf + bl FillBgTilemapBufferRect + mov r1, r8 + adds r1, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r6, [sp] + str r6, [sp, #4] + mov r3, sl + str r3, [sp, #8] + movs r0, #3 + adds r2, r5, #0 + movs r3, #0x10 + bl FillBgTilemapBufferRect + mov r1, r8 + adds r1, #0x11 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r6, [sp] + str r6, [sp, #4] + mov r0, sl + str r0, [sp, #8] + movs r0, #3 + adds r2, r4, #0 + movs r3, #0x10 + bl FillBgTilemapBufferRect +_080C4034: + adds r0, r7, #1 + lsls r0, r0, #0x10 + mov r1, r8 + adds r1, #2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r8, r1 + mov r2, sb + lsls r1, r2, #0x10 + movs r3, #0xc0 + lsls r3, r3, #0xa + adds r1, r1, r3 + lsrs r1, r1, #0x10 + mov sb, r1 + lsrs r2, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + ble _080C3FB2 +_080C4058: + movs r0, #3 + bl CopyBgTilemapBufferToVram + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080C4070: .4byte 0x085467E0 +_080C4074: .4byte 0x02039988 +_080C4078: .4byte 0x00000517 +_080C407C: .4byte 0x00000521 + thumb_func_end TrainerCard_PrintStarsAndBadgesOnCard + + thumb_func_start sub_080C4080 +sub_080C4080: @ 0x080C4080 + push {r4, r5, r6, lr} + sub sp, #0xc + ldr r6, _080C4128 + ldr r1, [r6] + ldr r2, _080C412C + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _080C4134 + ldrb r0, [r1, #0x10] + cmp r0, #0 + beq _080C40BE + movs r4, #1 + str r4, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r0, #3 + movs r1, #0x8d + movs r2, #0x1b + movs r3, #9 + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r0, #3 + movs r1, #0x9d + movs r2, #0x1b + movs r3, #0xa + bl FillBgTilemapBufferRect +_080C40BE: + ldr r0, [r6] + ldr r1, _080C4130 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #0 + beq _080C40F0 + movs r4, #1 + str r4, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r0, #3 + movs r1, #0x8d + movs r2, #0x15 + movs r3, #0xd + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r0, #3 + movs r1, #0x9d + movs r2, #0x15 + movs r3, #0xe + bl FillBgTilemapBufferRect +_080C40F0: + ldr r0, [r6] + movs r2, #0xac + lsls r2, r2, #3 + adds r0, r0, r2 + ldr r0, [r0] + cmp r0, #0 + beq _080C41EA + movs r4, #1 + str r4, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r0, #3 + movs r1, #0x8d + movs r2, #0x1b + movs r3, #0xb + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r0, #3 + movs r1, #0x9d + movs r2, #0x1b + movs r3, #0xc + bl FillBgTilemapBufferRect + b _080C41EA + .align 2, 0 +_080C4128: .4byte 0x02039988 +_080C412C: .4byte 0x00000516 +_080C4130: .4byte 0x0000055C +_080C4134: + ldrb r0, [r1, #0x10] + cmp r0, #0 + beq _080C4162 + movs r4, #1 + str r4, [sp] + str r4, [sp, #4] + movs r5, #0 + str r5, [sp, #8] + movs r0, #3 + movs r1, #0x8d + movs r2, #0x1b + movs r3, #9 + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #3 + movs r1, #0x9d + movs r2, #0x1b + movs r3, #0xa + bl FillBgTilemapBufferRect +_080C4162: + ldr r0, [r6] + ldr r1, _080C41F8 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0 + beq _080C4196 + movs r4, #1 + str r4, [sp] + str r4, [sp, #4] + movs r5, #0 + str r5, [sp, #8] + movs r0, #3 + movs r1, #0x8d + movs r2, #0x1b + movs r3, #0xd + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #3 + movs r1, #0x9d + movs r2, #0x1b + movs r3, #0xe + bl FillBgTilemapBufferRect +_080C4196: + ldr r0, [r6] + ldrb r0, [r0, #0xd] + cmp r0, #0 + beq _080C41EA + movs r4, #1 + str r4, [sp] + str r4, [sp, #4] + movs r5, #0 + str r5, [sp, #8] + movs r0, #3 + movs r1, #0x8d + movs r2, #0x11 + movs r3, #0xf + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #3 + movs r1, #0x9d + movs r2, #0x11 + movs r3, #0x10 + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #3 + movs r1, #0x8c + movs r2, #0x1b + movs r3, #0xf + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #3 + movs r1, #0x9c + movs r2, #0x1b + movs r3, #0x10 + bl FillBgTilemapBufferRect +_080C41EA: + movs r0, #3 + bl CopyBgTilemapBufferToVram + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080C41F8: .4byte 0x0000053C + thumb_func_end sub_080C4080 + + thumb_func_start sub_080C41FC +sub_080C41FC: @ 0x080C41FC + push {lr} + ldr r3, _080C4230 + ldr r1, [r3] + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3c + bls _080C422A + ldr r1, [r3] + movs r0, #0 + strb r0, [r1, #6] + ldr r2, [r3] + ldrb r0, [r2, #7] + movs r1, #1 + eors r0, r1 + strb r0, [r2, #7] + ldr r0, [r3] + ldr r1, _080C4234 + adds r0, r0, r1 + movs r1, #1 + strb r1, [r0] +_080C422A: + pop {r0} + bx r0 + .align 2, 0 +_080C4230: .4byte 0x02039988 +_080C4234: .4byte 0x00000515 + thumb_func_end sub_080C41FC + + thumb_func_start GetTrainerCardStars +GetTrainerCardStars: @ 0x080C4238 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080C4248 + movs r1, #0x64 + muls r0, r1, r0 + adds r0, r0, r2 + ldrb r0, [r0, #1] + bx lr + .align 2, 0 +_080C4248: .4byte 0x020397F8 + thumb_func_end GetTrainerCardStars + + thumb_func_start sub_080C424C +sub_080C424C: @ 0x080C424C + push {r4, lr} + ldr r4, _080C426C + adds r0, r4, #0 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl _call_via_r4 + ldr r0, _080C4270 + bl SetHBlankCallback + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C426C: .4byte 0x080C4295 +_080C4270: .4byte 0x080C1D01 + thumb_func_end sub_080C424C + + thumb_func_start sub_080C4274 +sub_080C4274: @ 0x080C4274 + push {lr} + ldr r0, _080C4288 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _080C428C + movs r0, #0 + b _080C428E + .align 2, 0 +_080C4288: .4byte 0x080C4295 +_080C428C: + movs r0, #1 +_080C428E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080C4274 + + thumb_func_start sub_080C4294 +sub_080C4294: @ 0x080C4294 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _080C42C4 + ldr r2, _080C42C8 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_080C42A6: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C42A6 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080C42C4: .4byte 0x08546788 +_080C42C8: .4byte 0x03005B60 + thumb_func_end sub_080C4294 + + thumb_func_start sub_080C42CC +sub_080C42CC: @ 0x080C42CC + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + bl HideBg + movs r0, #3 + bl HideBg + bl ScanlineEffect_Stop + bl ScanlineEffect_Clear + movs r1, #0 + ldr r0, _080C4308 + movs r2, #0 + movs r3, #0xf0 + lsls r3, r3, #3 + adds r0, r0, r3 +_080C42F0: + strh r2, [r0] + adds r0, #2 + adds r1, #1 + cmp r1, #0x9f + bls _080C42F0 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080C4308: .4byte 0x020388C8 + thumb_func_end sub_080C42CC + + thumb_func_start sub_080C430C +sub_080C430C: @ 0x080C430C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov r8, r0 + ldr r0, _080C4338 + ldr r1, [r0] + movs r0, #0 + strb r0, [r1, #9] + mov r0, r8 + ldrh r1, [r0, #0xa] + movs r2, #0xa + ldrsh r0, [r0, r2] + cmp r0, #0x4c + ble _080C433C + movs r0, #0x4d + mov r3, r8 + strh r0, [r3, #0xa] + b _080C4342 + .align 2, 0 +_080C4338: .4byte 0x02039988 +_080C433C: + adds r0, r1, #7 + mov r4, r8 + strh r0, [r4, #0xa] +_080C4342: + ldr r0, _080C442C + ldr r0, [r0] + mov r2, r8 + ldrh r1, [r2, #0xa] + ldr r3, _080C4430 + adds r0, r0, r3 + strh r1, [r0] + ldrh r0, [r2, #0xa] + bl sub_080C2918 + mov r4, r8 + movs r0, #0xa + ldrsh r7, [r4, r0] + movs r0, #0xa0 + subs r0, r0, r7 + mov sb, r0 + subs r4, r0, r7 + rsbs r0, r7, #0 + lsls r6, r0, #0x10 + movs r0, #0xa0 + lsls r0, r0, #0x10 + adds r1, r4, #0 + bl __udivsi3 + adds r5, r0, #0 + ldr r1, _080C4434 + adds r5, r5, r1 + adds r0, r5, #0 + muls r0, r4, r0 + adds r0, r6, r0 + str r0, [sp] + adds r0, r5, #0 + adds r1, r4, #0 + bl __udivsi3 + mov sl, r0 + lsls r5, r5, #1 + movs r2, #0 + cmp r2, r7 + bhs _080C43AC + ldr r3, _080C4438 +_080C4394: + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + lsls r1, r0, #1 + adds r1, r1, r3 + rsbs r2, r0, #0 + strh r2, [r1] + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, r7 + blo _080C4394 +_080C43AC: + lsls r1, r2, #0x10 + mov r3, sb + lsls r0, r3, #0x10 + asrs r3, r0, #0x10 + ldr r4, _080C442C + mov sb, r4 + ldr r4, [sp] + lsrs r7, r4, #0x10 + cmp r1, r0 + bge _080C43E4 + ldr r0, _080C4438 + mov ip, r0 + adds r4, r3, #0 +_080C43C6: + lsrs r3, r6, #0x10 + adds r6, r6, r5 + mov r2, sl + subs r5, r5, r2 + asrs r0, r1, #0x10 + lsls r1, r0, #1 + add r1, ip + strh r3, [r1] + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + lsls r1, r2, #0x10 + asrs r0, r1, #0x10 + cmp r0, r4 + blt _080C43C6 +_080C43E4: + adds r3, r7, #0 + lsls r1, r2, #0x10 + asrs r0, r1, #0x10 + cmp r0, #0x9f + bgt _080C4402 + ldr r2, _080C4438 +_080C43F0: + asrs r0, r1, #0x10 + lsls r1, r0, #1 + adds r1, r1, r2 + strh r3, [r1] + adds r0, #1 + lsls r1, r0, #0x10 + asrs r0, r1, #0x10 + cmp r0, #0x9f + ble _080C43F0 +_080C4402: + mov r3, sb + ldr r0, [r3] + movs r1, #1 + strb r1, [r0, #9] + mov r4, r8 + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0x4c + ble _080C441A + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_080C441A: + movs r0, #0 + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080C442C: .4byte 0x02039988 +_080C4430: .4byte 0x00007C94 +_080C4434: .4byte 0xFFFF0000 +_080C4438: .4byte 0x020388C8 + thumb_func_end sub_080C430C + + thumb_func_start sub_080C443C +sub_080C443C: @ 0x080C443C + push {r4, r5, lr} + sub sp, #8 + adds r5, r0, #0 + ldr r4, _080C4468 + ldr r1, [r4] + movs r0, #0 + strb r0, [r1, #9] + bl sub_08086EFC + adds r2, r4, #0 + cmp r0, #1 + beq _080C453C +_080C4454: + ldr r3, [r2] + ldrb r0, [r3, #4] + cmp r0, #4 + bhi _080C4518 + lsls r0, r0, #2 + ldr r1, _080C446C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C4468: .4byte 0x02039988 +_080C446C: .4byte 0x080C4470 +_080C4470: @ jump table + .4byte _080C4484 @ case 0 + .4byte _080C44A0 @ case 1 + .4byte _080C44C0 @ case 2 + .4byte _080C44E4 @ case 3 + .4byte _080C4502 @ case 4 +_080C4484: + movs r0, #1 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #0x20 + str r0, [sp] + str r0, [sp, #4] + movs r0, #3 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + b _080C452A +_080C44A0: + ldr r0, [r2] + ldrb r0, [r0, #8] + cmp r0, #0 + bne _080C44B4 + bl PrintStringsOnCardPage2 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C452A + b _080C453C +_080C44B4: + bl PrintAllOnCardPage1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080C452A + b _080C453C +_080C44C0: + ldr r0, _080C44D4 + ldr r1, [r0] + ldrb r0, [r1, #8] + cmp r0, #0 + bne _080C44DC + ldr r2, _080C44D8 + adds r0, r1, r2 + bl sub_080C3EF4 + b _080C452A + .align 2, 0 +_080C44D4: .4byte 0x02039988 +_080C44D8: .4byte 0x00000A34 +_080C44DC: + movs r0, #1 + bl PrintHofDebutStringOnCard + b _080C452A +_080C44E4: + ldr r0, _080C44F4 + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #0 + bne _080C44F8 + bl sub_080C4080 + b _080C452A + .align 2, 0 +_080C44F4: .4byte 0x02039988 +_080C44F8: + movs r0, #2 + movs r1, #0 + bl FillWindowPixelBuffer + b _080C452A +_080C4502: + ldr r0, _080C4514 + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #0 + beq _080C452A + bl sub_080C48F4 + b _080C452A + .align 2, 0 +_080C4514: .4byte 0x02039988 +_080C4518: + ldrh r0, [r5, #8] + adds r0, #1 + movs r1, #0 + strh r0, [r5, #8] + movs r0, #1 + strb r0, [r3, #9] + ldr r0, [r2] + strb r1, [r0, #4] + b _080C453C +_080C452A: + ldr r2, _080C4548 + ldr r1, [r2] + ldrb r0, [r1, #4] + adds r0, #1 + strb r0, [r1, #4] + ldr r0, _080C454C + ldrb r0, [r0] + cmp r0, #0 + beq _080C4454 +_080C453C: + movs r0, #0 + add sp, #8 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080C4548: .4byte 0x02039988 +_080C454C: .4byte 0x030031C4 + thumb_func_end sub_080C443C + + thumb_func_start sub_080C4550 +sub_080C4550: @ 0x080C4550 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080C45AC + ldr r1, [r4] + movs r0, #0 + strb r0, [r1, #9] + ldr r0, [r4] + ldrb r0, [r0, #8] + cmp r0, #0 + beq _080C4582 + movs r0, #2 + bl PrintHofDebutStringOnCard + ldr r0, [r4] + ldr r1, _080C45B0 + adds r0, r0, r1 + bl sub_080C3E84 + ldr r0, [r4] + ldr r1, _080C45B4 + adds r0, r0, r1 + bl sub_080C3EF4 + bl TrainerCard_PrintStarsAndBadgesOnCard +_080C4582: + movs r0, #1 + bl PrintHofDebutStringOnCard + ldr r2, [r4] + ldrb r0, [r2, #8] + movs r1, #1 + eors r0, r1 + strb r0, [r2, #8] + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + ldr r1, [r4] + movs r0, #1 + strb r0, [r1, #9] + movs r0, #0xfa + bl PlaySE + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080C45AC: .4byte 0x02039988 +_080C45B0: .4byte 0x00000EE4 +_080C45B4: .4byte 0x00000584 + thumb_func_end sub_080C4550 + + thumb_func_start sub_080C45B8 +sub_080C45B8: @ 0x080C45B8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov r8, r0 + ldr r0, _080C45E0 + ldr r0, [r0] + movs r2, #0 + strb r2, [r0, #9] + mov r0, r8 + ldrh r1, [r0, #0xa] + movs r3, #0xa + ldrsh r0, [r0, r3] + cmp r0, #5 + bgt _080C45E4 + mov r4, r8 + strh r2, [r4, #0xa] + b _080C45EA + .align 2, 0 +_080C45E0: .4byte 0x02039988 +_080C45E4: + subs r0, r1, #5 + mov r1, r8 + strh r0, [r1, #0xa] +_080C45EA: + ldr r0, _080C46D4 + ldr r0, [r0] + mov r2, r8 + ldrh r1, [r2, #0xa] + ldr r3, _080C46D8 + adds r0, r0, r3 + strh r1, [r0] + ldrh r0, [r2, #0xa] + bl sub_080C2918 + mov r4, r8 + movs r0, #0xa + ldrsh r7, [r4, r0] + movs r0, #0xa0 + subs r0, r0, r7 + mov sb, r0 + subs r4, r0, r7 + rsbs r0, r7, #0 + lsls r6, r0, #0x10 + movs r0, #0xa0 + lsls r0, r0, #0x10 + adds r1, r4, #0 + bl __udivsi3 + adds r5, r0, #0 + ldr r1, _080C46DC + adds r5, r5, r1 + adds r0, r5, #0 + muls r0, r4, r0 + adds r0, r6, r0 + str r0, [sp] + adds r0, r5, #0 + adds r1, r4, #0 + bl __udivsi3 + mov sl, r0 + lsrs r5, r5, #1 + movs r2, #0 + cmp r2, r7 + bhs _080C4654 + ldr r3, _080C46E0 +_080C463C: + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + lsls r1, r0, #1 + adds r1, r1, r3 + rsbs r2, r0, #0 + strh r2, [r1] + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, r7 + blo _080C463C +_080C4654: + lsls r1, r2, #0x10 + mov r3, sb + lsls r0, r3, #0x10 + asrs r3, r0, #0x10 + ldr r4, _080C46D4 + mov sb, r4 + ldr r4, [sp] + lsrs r7, r4, #0x10 + cmp r1, r0 + bge _080C468A + ldr r0, _080C46E0 + mov ip, r0 + adds r4, r3, #0 +_080C466E: + lsrs r3, r6, #0x10 + adds r6, r6, r5 + add r5, sl + asrs r0, r1, #0x10 + lsls r1, r0, #1 + add r1, ip + strh r3, [r1] + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + lsls r1, r2, #0x10 + asrs r0, r1, #0x10 + cmp r0, r4 + blt _080C466E +_080C468A: + adds r3, r7, #0 + lsls r1, r2, #0x10 + asrs r0, r1, #0x10 + cmp r0, #0x9f + bgt _080C46A8 + ldr r2, _080C46E0 +_080C4696: + asrs r0, r1, #0x10 + lsls r1, r0, #1 + adds r1, r1, r2 + strh r3, [r1] + adds r0, #1 + lsls r1, r0, #0x10 + asrs r0, r1, #0x10 + cmp r0, #0x9f + ble _080C4696 +_080C46A8: + mov r1, sb + ldr r0, [r1] + movs r1, #1 + strb r1, [r0, #9] + mov r2, r8 + movs r3, #0xa + ldrsh r0, [r2, r3] + cmp r0, #0 + bgt _080C46C0 + ldrh r0, [r2, #8] + adds r0, #1 + strh r0, [r2, #8] +_080C46C0: + movs r0, #0 + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080C46D4: .4byte 0x02039988 +_080C46D8: .4byte 0x00007C94 +_080C46DC: .4byte 0xFFFF0000 +_080C46E0: .4byte 0x020388C8 + thumb_func_end sub_080C45B8 + + thumb_func_start sub_080C46E4 +sub_080C46E4: @ 0x080C46E4 + push {lr} + movs r0, #1 + bl ShowBg + movs r0, #3 + bl ShowBg + movs r0, #0 + bl SetHBlankCallback + ldr r0, _080C470C + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_080C470C: .4byte 0x080C4295 + thumb_func_end sub_080C46E4 + + thumb_func_start ShowPlayerTrainerCard +ShowPlayerTrainerCard: @ 0x080C4710 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080C4738 + ldr r0, _080C473C + bl AllocZeroed + adds r1, r0, #0 + str r1, [r4] + ldr r2, _080C4740 + adds r0, r1, r2 + str r5, [r0] + ldr r0, _080C4744 + cmp r5, r0 + bne _080C474C + movs r0, #0xa3 + lsls r0, r0, #3 + adds r1, r1, r0 + ldr r0, _080C4748 + b _080C4754 + .align 2, 0 +_080C4738: .4byte 0x02039988 +_080C473C: .4byte 0x00007C98 +_080C4740: .4byte 0x0000051C +_080C4744: .4byte 0x080C5165 +_080C4748: .4byte 0x00007FFF +_080C474C: + movs r2, #0xa3 + lsls r2, r2, #3 + adds r1, r1, r2 + movs r0, #0 +_080C4754: + strh r0, [r1] + bl InUnionRoom + adds r3, r0, #0 + cmp r3, #1 + bne _080C476C + ldr r1, _080C4768 + ldr r0, [r1] + strb r3, [r0, #5] + b _080C4776 + .align 2, 0 +_080C4768: .4byte 0x02039988 +_080C476C: + ldr r2, _080C4790 + ldr r1, [r2] + movs r0, #0 + strb r0, [r1, #5] + adds r1, r2, #0 +_080C4776: + ldr r0, [r1] + movs r1, #0xa4 + lsls r1, r1, #3 + adds r0, r0, r1 + bl TrainerCard_GenerateCardForLinkPlayer + ldr r0, _080C4794 + bl SetMainCallback2 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080C4790: .4byte 0x02039988 +_080C4794: .4byte 0x080C22B5 + thumb_func_end ShowPlayerTrainerCard + + thumb_func_start ShowTrainerCardInLink +ShowTrainerCardInLink: @ 0x080C4798 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r5, _080C47D8 + ldr r0, _080C47DC + bl AllocZeroed + str r0, [r5] + ldr r2, _080C47E0 + adds r1, r0, r2 + str r6, [r1] + movs r1, #1 + strb r1, [r0, #5] + ldr r0, [r5] + movs r1, #0xa4 + lsls r1, r1, #3 + adds r0, r0, r1 + ldr r2, _080C47E4 + movs r1, #0x64 + muls r1, r4, r1 + adds r1, r1, r2 + movs r2, #0x64 + bl memcpy + ldr r0, _080C47E8 + bl SetMainCallback2 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080C47D8: .4byte 0x02039988 +_080C47DC: .4byte 0x00007C98 +_080C47E0: .4byte 0x0000051C +_080C47E4: .4byte 0x020397F8 +_080C47E8: .4byte 0x080C22B5 + thumb_func_end ShowTrainerCardInLink + + thumb_func_start sub_080C47EC +sub_080C47EC: @ 0x080C47EC + push {r4, r5, lr} + ldr r4, _080C4848 + ldr r0, [r4] + movs r1, #0 + strb r1, [r0] + ldr r2, [r4] + ldr r0, _080C484C + ldr r0, [r0] + ldrb r0, [r0, #0x12] + strb r0, [r2, #6] + ldr r0, [r4] + strb r1, [r0, #7] + ldr r0, [r4] + strb r1, [r0, #8] + ldr r0, [r4] + ldr r2, _080C4850 + adds r0, r0, r2 + strb r1, [r0] + bl GetSetCardType + ldr r1, [r4] + ldr r3, _080C4854 + adds r1, r1, r3 + strb r0, [r1] + movs r5, #0 +_080C481E: + lsls r0, r5, #3 + adds r0, #0x19 + ldr r1, [r4] + adds r0, r1, r0 + lsls r2, r5, #1 + movs r3, #0xa9 + lsls r3, r3, #3 + adds r1, r1, r3 + adds r1, r1, r2 + ldrh r1, [r1] + bl CopyEasyChatWord + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #3 + bls _080C481E + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080C4848: .4byte 0x02039988 +_080C484C: .4byte 0x03005AF0 +_080C4850: .4byte 0x00000514 +_080C4854: .4byte 0x00000516 + thumb_func_end sub_080C47EC + + thumb_func_start GetSetCardType +GetSetCardType: @ 0x080C4858 + push {lr} + ldr r0, _080C4874 + ldr r1, [r0] + cmp r1, #0 + bne _080C4884 + ldr r0, _080C4878 + ldrb r1, [r0] + subs r0, r1, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _080C487C + movs r0, #0 + b _080C48C6 + .align 2, 0 +_080C4874: .4byte 0x02039988 +_080C4878: .4byte 0x0829BDA4 +_080C487C: + cmp r1, #3 + beq _080C48C4 + movs r0, #1 + b _080C48C6 +_080C4884: + movs r2, #0xab + lsls r2, r2, #3 + adds r0, r1, r2 + ldrb r2, [r0] + subs r0, r2, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _080C48A4 + ldr r0, _080C48A0 + adds r1, r1, r0 + movs r0, #0 + strb r0, [r1] + b _080C48C6 + .align 2, 0 +_080C48A0: .4byte 0x00000517 +_080C48A4: + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + beq _080C48BC + ldr r2, _080C48B8 + adds r1, r1, r2 + movs r0, #1 + strb r0, [r1] + b _080C48C6 + .align 2, 0 +_080C48B8: .4byte 0x00000517 +_080C48BC: + ldr r0, _080C48CC + adds r1, r1, r0 + movs r0, #1 + strb r0, [r1] +_080C48C4: + movs r0, #2 +_080C48C6: + pop {r1} + bx r1 + .align 2, 0 +_080C48CC: .4byte 0x00000517 + thumb_func_end GetSetCardType + + thumb_func_start VersionToCardType +VersionToCardType: @ 0x080C48D0 + push {lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r2, #0xfc + lsls r2, r2, #0x18 + adds r0, r0, r2 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _080C48E6 + movs r0, #0 + b _080C48F0 +_080C48E6: + cmp r1, #3 + beq _080C48EE + movs r0, #1 + b _080C48F0 +_080C48EE: + movs r0, #2 +_080C48F0: + pop {r1} + bx r1 + thumb_func_end VersionToCardType + + thumb_func_start sub_080C48F4 +sub_080C48F4: @ 0x080C48F4 + push {r4, r5, r6, lr} + sub sp, #8 + bl InUnionRoom + cmp r0, #1 + bne _080C4960 + ldr r0, _080C494C + ldrb r0, [r0] + cmp r0, #1 + bne _080C4960 + ldr r5, _080C4950 + ldr r0, [r5] + ldr r1, _080C4954 + adds r0, r0, r1 + ldrb r0, [r0] + bl FacilityClassToPicIndex + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _080C4958 + ldr r1, [r5] + movs r3, #0xa4 + lsls r3, r3, #3 + adds r2, r1, r3 + ldrb r3, [r2] + lsls r3, r3, #1 + ldr r2, _080C495C + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #2 + adds r3, r3, r1 + adds r1, r3, r4 + ldrb r2, [r1] + adds r4, #1 + adds r3, r3, r4 + ldrb r3, [r3] + movs r1, #8 + str r1, [sp] + movs r1, #2 + str r1, [sp, #4] + movs r1, #1 + bl sub_0818D664 + b _080C49B0 + .align 2, 0 +_080C494C: .4byte 0x030031C4 +_080C4950: .4byte 0x02039988 +_080C4954: .4byte 0x0000056F +_080C4958: .4byte 0x08546778 +_080C495C: .4byte 0x00000517 +_080C4960: + ldr r2, _080C49B8 + ldr r6, _080C49BC + ldr r0, [r6] + movs r5, #0xa4 + lsls r5, r5, #3 + adds r1, r0, r5 + ldr r3, _080C49C0 + adds r0, r0, r3 + ldrb r0, [r0] + lsls r0, r0, #1 + ldrb r1, [r1] + adds r0, r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + bl FacilityClassToPicIndex + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r4, _080C49C4 + ldr r1, [r6] + adds r5, r1, r5 + ldrb r3, [r5] + lsls r3, r3, #1 + ldr r2, _080C49C8 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #2 + adds r3, r3, r1 + adds r1, r3, r4 + ldrb r2, [r1] + adds r4, #1 + adds r3, r3, r4 + ldrb r3, [r3] + movs r1, #8 + str r1, [sp] + movs r1, #2 + str r1, [sp, #4] + movs r1, #1 + bl sub_0818D664 +_080C49B0: + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080C49B8: .4byte 0x08546780 +_080C49BC: .4byte 0x02039988 +_080C49C0: .4byte 0x00000516 +_080C49C4: .4byte 0x08546778 +_080C49C8: .4byte 0x00000517 + thumb_func_end sub_080C48F4 + diff --git a/asm/trainer_hill.s b/asm/trainer_hill.s new file mode 100644 index 0000000..9247c0e --- /dev/null +++ b/asm/trainer_hill.s @@ -0,0 +1,2752 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start CallTrainerHillFunction +CallTrainerHillFunction: @ 0x081D4B14 + push {lr} + bl SetUpDataStruct + ldr r1, _081D4B34 + ldr r0, _081D4B38 + ldrh r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + bl FreeTrainerHillBattleStruct + pop {r0} + bx r0 + .align 2, 0 +_081D4B34: .4byte 0x085FB91C +_081D4B38: .4byte 0x02037280 + thumb_func_end CallTrainerHillFunction + + thumb_func_start ResetTrainerHillResults +ResetTrainerHillResults: @ 0x081D4B3C + push {r4, lr} + ldr r4, _081D4B70 + ldr r1, [r4] + ldr r3, _081D4B74 + adds r1, r1, r3 + ldrb r2, [r1] + movs r0, #0x7f + ands r0, r2 + strb r0, [r1] + ldr r1, [r4] + adds r1, r1, r3 + ldrb r2, [r1] + movs r0, #0x80 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r0, _081D4B78 + ldr r0, [r0] + ldr r1, _081D4B7C + adds r0, r0, r1 + movs r1, #0 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D4B70: .4byte 0x03005AF0 +_081D4B74: .4byte 0x00000EF9 +_081D4B78: .4byte 0x03005AEC +_081D4B7C: .4byte 0x00003D68 + thumb_func_end ResetTrainerHillResults + + thumb_func_start GetFloorId +GetFloorId: @ 0x081D4B80 + ldr r0, _081D4B8C + ldrb r0, [r0, #0x12] + adds r0, #0x61 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bx lr + .align 2, 0 +_081D4B8C: .4byte 0x02036FB8 + thumb_func_end GetFloorId + + thumb_func_start GetTrainerHillOpponentClass +GetTrainerHillOpponentClass: @ 0x081D4B90 + lsls r0, r0, #0x18 + movs r1, #0xff + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + ldr r2, _081D4BAC + ldr r1, _081D4BB0 + ldr r1, [r1] + adds r1, #0x10 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, r0, r2 + ldrb r0, [r0] + bx lr + .align 2, 0 +_081D4BAC: .4byte 0x082EFF52 +_081D4BB0: .4byte 0x0203CC24 + thumb_func_end GetTrainerHillOpponentClass + + thumb_func_start GetTrainerHillTrainerName +GetTrainerHillTrainerName: @ 0x081D4BB4 + push {r4, lr} + adds r4, r0, #0 + lsls r1, r1, #0x18 + movs r0, #0xff + lsls r0, r0, #0x18 + adds r1, r1, r0 + movs r3, #0 + ldr r0, _081D4BE0 + ldr r0, [r0] + lsrs r1, r1, #0x15 + adds r2, r1, r0 +_081D4BCA: + adds r1, r4, r3 + ldrb r0, [r2] + strb r0, [r1] + adds r2, #1 + adds r3, #1 + cmp r3, #7 + ble _081D4BCA + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D4BE0: .4byte 0x0203CC24 + thumb_func_end GetTrainerHillTrainerName + + thumb_func_start GetTrainerHillTrainerFrontSpriteId +GetTrainerHillTrainerFrontSpriteId: @ 0x081D4BE4 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + bl SetUpDataStruct + subs r4, #1 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081D4C28 + ldr r3, [r0] + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #4 + adds r1, r1, r4 + lsls r1, r1, #2 + ldrb r2, [r3] + lsls r0, r2, #4 + subs r0, r0, r2 + lsls r0, r0, #2 + subs r0, r0, r2 + lsls r0, r0, #4 + adds r1, r1, r0 + adds r3, r3, r1 + ldrb r4, [r3, #0x18] + bl FreeTrainerHillBattleStruct + ldr r0, _081D4C2C + adds r4, r4, r0 + ldrb r0, [r4] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081D4C28: .4byte 0x0203CC20 +_081D4C2C: .4byte 0x082EFF00 + thumb_func_end GetTrainerHillTrainerFrontSpriteId + + thumb_func_start InitTrainerHillBattleStruct +InitTrainerHillBattleStruct: @ 0x081D4C30 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + bl SetUpDataStruct + ldr r4, _081D4CE0 + movs r0, #0x14 + bl AllocZeroed + str r0, [r4] + movs r6, #0 + ldr r0, _081D4CE4 + mov sl, r0 +_081D4C4E: + movs r5, #0 + lsls r1, r6, #2 + mov r8, r1 + adds r0, r6, #1 + mov sb, r0 + adds r0, r1, r6 + lsls r0, r0, #4 + adds r0, r0, r6 + lsls r0, r0, #2 + mov ip, r0 + lsls r7, r6, #3 +_081D4C64: + ldr r1, _081D4CE0 + ldr r4, [r1] + adds r0, r5, r7 + adds r4, r4, r0 + mov r0, sl + ldr r2, [r0] + mov r1, ip + adds r3, r5, r1 + ldrb r1, [r2] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #2 + subs r0, r0, r1 + lsls r0, r0, #4 + adds r3, r3, r0 + adds r2, #0x10 + adds r2, r2, r3 + ldrb r0, [r2] + strb r0, [r4] + adds r5, #1 + cmp r5, #7 + ble _081D4C64 + ldr r0, _081D4CE0 + ldr r4, [r0] + adds r4, #0x10 + adds r4, r4, r6 + mov r1, sl + ldr r3, [r1] + mov r0, r8 + adds r1, r0, r6 + lsls r1, r1, #4 + adds r1, r1, r6 + lsls r1, r1, #2 + ldrb r2, [r3] + lsls r0, r2, #4 + subs r0, r0, r2 + lsls r0, r0, #2 + subs r0, r0, r2 + lsls r0, r0, #4 + adds r1, r1, r0 + adds r3, r3, r1 + ldrb r0, [r3, #0x18] + strb r0, [r4] + mov r6, sb + cmp r6, #1 + ble _081D4C4E + ldr r1, _081D4CE8 + ldr r0, [r1] + ldr r1, _081D4CEC + adds r0, r0, r1 + bl SetTrainerHillVBlankCounter + bl FreeTrainerHillBattleStruct + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D4CE0: .4byte 0x0203CC24 +_081D4CE4: .4byte 0x0203CC20 +_081D4CE8: .4byte 0x03005AEC +_081D4CEC: .4byte 0x00003D64 + thumb_func_end InitTrainerHillBattleStruct + + thumb_func_start FreeDataStruct +FreeDataStruct: @ 0x081D4CF0 + push {r4, lr} + ldr r4, _081D4D08 + ldr r0, [r4] + cmp r0, #0 + beq _081D4D02 + bl Free + movs r0, #0 + str r0, [r4] +_081D4D02: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D4D08: .4byte 0x0203CC24 + thumb_func_end FreeDataStruct + + thumb_func_start SetUpDataStruct +SetUpDataStruct: @ 0x081D4D0C + push {r4, lr} + ldr r4, _081D4D38 + ldr r0, [r4] + cmp r0, #0 + bne _081D4D54 + ldr r0, _081D4D3C + bl AllocZeroed + str r0, [r4] + ldr r1, _081D4D40 + ldrb r1, [r1, #0x12] + adds r1, #0x61 + strb r1, [r0] + bl ReadTrainerHillAndValidate + cmp r0, #1 + bne _081D4D44 + ldr r0, [r4] + adds r0, #4 + bl TryReadTrainerHill + b _081D4D54 + .align 2, 0 +_081D4D38: .4byte 0x0203CC20 +_081D4D3C: .4byte 0x00000ECC +_081D4D40: .4byte 0x02036FB8 +_081D4D44: + ldr r0, _081D4D5C + ldr r1, [r4] + adds r1, #4 + ldr r2, _081D4D60 + bl CpuSet + bl sub_081D5360 +_081D4D54: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D4D5C: .4byte 0x085FAF38 +_081D4D60: .4byte 0x040003B2 + thumb_func_end SetUpDataStruct + + thumb_func_start FreeTrainerHillBattleStruct +FreeTrainerHillBattleStruct: @ 0x081D4D64 + push {r4, lr} + ldr r4, _081D4D7C + ldr r0, [r4] + cmp r0, #0 + beq _081D4D76 + bl Free + movs r0, #0 + str r0, [r4] +_081D4D76: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D4D7C: .4byte 0x0203CC20 + thumb_func_end FreeTrainerHillBattleStruct + + thumb_func_start CopyTrainerHillTrainerText +CopyTrainerHillTrainerText: @ 0x081D4D80 + push {r4, r5, r6, lr} + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r6, r5, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + bl SetUpDataStruct + bl GetFloorId + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + subs r4, #1 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + cmp r5, #3 + beq _081D4DE4 + cmp r5, #3 + bgt _081D4DAE + cmp r5, #2 + beq _081D4DB8 + b _081D4E60 +_081D4DAE: + cmp r6, #4 + beq _081D4E10 + cmp r6, #5 + beq _081D4E3C + b _081D4E60 +_081D4DB8: + ldr r1, _081D4DE0 + lsls r0, r2, #4 + subs r0, r0, r2 + lsls r0, r0, #2 + subs r0, r0, r2 + lsls r0, r0, #4 + adds r0, #0xc + ldr r1, [r1] + adds r1, r1, r0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + adds r0, #0x10 + bl FrontierSpeechToString + b _081D4E60 + .align 2, 0 +_081D4DE0: .4byte 0x0203CC20 +_081D4DE4: + ldr r1, _081D4E0C + lsls r0, r2, #4 + subs r0, r0, r2 + lsls r0, r0, #2 + subs r0, r0, r2 + lsls r0, r0, #4 + adds r0, #0xc + ldr r1, [r1] + adds r1, r1, r0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + adds r0, #0x1c + bl FrontierSpeechToString + b _081D4E60 + .align 2, 0 +_081D4E0C: .4byte 0x0203CC20 +_081D4E10: + ldr r1, _081D4E38 + lsls r0, r2, #4 + subs r0, r0, r2 + lsls r0, r0, #2 + subs r0, r0, r2 + lsls r0, r0, #4 + adds r0, #0xc + ldr r1, [r1] + adds r1, r1, r0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + adds r0, #0x28 + bl FrontierSpeechToString + b _081D4E60 + .align 2, 0 +_081D4E38: .4byte 0x0203CC20 +_081D4E3C: + ldr r1, _081D4E6C + lsls r0, r2, #4 + subs r0, r0, r2 + lsls r0, r0, #2 + subs r0, r0, r2 + lsls r0, r0, #4 + adds r0, #0xc + ldr r1, [r1] + adds r1, r1, r0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #4 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + adds r0, #0x34 + bl FrontierSpeechToString +_081D4E60: + bl FreeTrainerHillBattleStruct + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081D4E6C: .4byte 0x0203CC20 + thumb_func_end CopyTrainerHillTrainerText + + thumb_func_start TrainerHillStartChallenge +TrainerHillStartChallenge: @ 0x081D4E70 + push {r4, r5, r6, lr} + bl sub_081D5360 + bl ReadTrainerHillAndValidate + cmp r0, #0 + bne _081D4E98 + ldr r3, _081D4E90 + ldr r1, [r3] + ldr r0, _081D4E94 + adds r1, r1, r0 + ldrb r0, [r1] + movs r2, #0x20 + orrs r0, r2 + b _081D4EA8 + .align 2, 0 +_081D4E90: .4byte 0x03005AEC +_081D4E94: .4byte 0x00003D6E +_081D4E98: + ldr r3, _081D4F14 + ldr r1, [r3] + ldr r0, _081D4F18 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #0x21 + rsbs r0, r0, #0 + ands r0, r2 +_081D4EA8: + strb r0, [r1] + adds r6, r3, #0 + ldr r0, [r6] + ldr r1, _081D4F1C + adds r0, r0, r1 + movs r5, #0 + strb r5, [r0] + ldr r0, [r6] + ldr r4, _081D4F20 + adds r0, r0, r4 + bl SetTrainerHillVBlankCounter + ldr r1, [r6] + adds r4, r1, r4 + str r5, [r4] + ldr r3, _081D4F18 + adds r1, r1, r3 + ldrb r2, [r1] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r6] + adds r1, r1, r3 + ldrb r2, [r1] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r6] + adds r1, r1, r3 + ldrb r2, [r1] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r0, _081D4F24 + ldr r0, [r0] + movs r1, #0xee + lsls r1, r1, #4 + adds r0, r0, r1 + strb r5, [r0] + ldr r0, _081D4F28 + strb r5, [r0] + ldr r1, [r6] + adds r1, r1, r3 + ldrb r2, [r1] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081D4F14: .4byte 0x03005AEC +_081D4F18: .4byte 0x00003D6E +_081D4F1C: .4byte 0x00003D6C +_081D4F20: .4byte 0x00003D64 +_081D4F24: .4byte 0x03005AF0 +_081D4F28: .4byte 0x02023FDE + thumb_func_end TrainerHillStartChallenge + + thumb_func_start sub_081D4F2C +sub_081D4F2C: @ 0x081D4F2C + push {lr} + bl ClearTrainerHillVBlankCounter + ldr r3, _081D4F6C + movs r0, #0 + strh r0, [r3] + ldr r0, _081D4F70 + ldr r0, [r0] + ldr r1, _081D4F74 + adds r2, r0, r1 + ldrb r1, [r2] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _081D4F4E + movs r0, #1 + strh r0, [r3] +_081D4F4E: + ldrb r1, [r2] + movs r0, #3 + ands r0, r1 + cmp r0, #3 + bne _081D4F5E + ldrh r0, [r3] + adds r0, #1 + strh r0, [r3] +_081D4F5E: + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + pop {r0} + bx r0 + .align 2, 0 +_081D4F6C: .4byte 0x02037290 +_081D4F70: .4byte 0x03005AEC +_081D4F74: .4byte 0x00003D6E + thumb_func_end sub_081D4F2C + + thumb_func_start sub_081D4F78 +sub_081D4F78: @ 0x081D4F78 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + bl sub_081D5F98 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, _081D4FB0 + ldr r0, [r0] + ldrb r0, [r0, #6] + cmp r0, #4 + bne _081D4FA6 + ldr r0, _081D4FB4 + mov r8, r0 + ldr r0, [r0] + ldr r7, _081D4FB8 + adds r0, r0, r7 + ldrb r0, [r0] + movs r6, #1 + adds r4, r6, #0 + ands r4, r0 + cmp r4, #0 + beq _081D4FC0 +_081D4FA6: + ldr r1, _081D4FBC + movs r0, #2 + strh r0, [r1] + b _081D5014 + .align 2, 0 +_081D4FB0: .4byte 0x0203CC20 +_081D4FB4: .4byte 0x03005AEC +_081D4FB8: .4byte 0x00003D6E +_081D4FBC: .4byte 0x02037290 +_081D4FC0: + adds r0, r5, #0 + movs r1, #1 + bl AddBagItem + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081D5010 + ldr r1, _081D5000 + adds r0, r5, #0 + bl CopyItemName + mov r0, r8 + ldr r1, [r0] + adds r1, r1, r7 + ldrb r0, [r1] + movs r2, #1 + orrs r0, r2 + strb r0, [r1] + ldr r0, _081D5004 + ldr r1, [r0] + ldr r0, _081D5008 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #0x80 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r0, _081D500C + strh r4, [r0] + b _081D5014 + .align 2, 0 +_081D5000: .4byte 0x02021C54 +_081D5004: .4byte 0x03005AF0 +_081D5008: .4byte 0x00000EF9 +_081D500C: .4byte 0x02037290 +_081D5010: + ldr r0, _081D5020 + strh r6, [r0] +_081D5014: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D5020: .4byte 0x02037290 + thumb_func_end sub_081D4F78 + + thumb_func_start sub_081D5024 +sub_081D5024: @ 0x081D5024 + push {r4, r5, lr} + ldr r5, _081D5044 + ldr r2, [r5] + ldr r1, _081D5048 + adds r0, r2, r1 + ldrb r1, [r0] + movs r3, #2 + adds r0, r3, #0 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + beq _081D5050 + ldr r0, _081D504C + strh r3, [r0] + b _081D5086 + .align 2, 0 +_081D5044: .4byte 0x03005AEC +_081D5048: .4byte 0x00003D6E +_081D504C: .4byte 0x02037290 +_081D5050: + ldr r3, _081D5074 + adds r0, r2, r3 + bl GetTimerValue + ldr r2, [r5] + ldr r3, _081D5078 + adds r1, r2, r3 + ldr r1, [r1] + cmp r0, r1 + bls _081D5080 + adds r3, #4 + adds r0, r2, r3 + bl SetTimerValue + ldr r0, _081D507C + strh r4, [r0] + b _081D5086 + .align 2, 0 +_081D5074: .4byte 0x00003D68 +_081D5078: .4byte 0x00003D64 +_081D507C: .4byte 0x02037290 +_081D5080: + ldr r1, _081D509C + movs r0, #1 + strh r0, [r1] +_081D5086: + ldr r0, _081D50A0 + ldr r1, [r0] + ldr r0, _081D50A4 + adds r1, r1, r0 + ldrb r0, [r1] + movs r2, #2 + orrs r0, r2 + strb r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081D509C: .4byte 0x02037290 +_081D50A0: .4byte 0x03005AEC +_081D50A4: .4byte 0x00003D6E + thumb_func_end sub_081D5024 + + thumb_func_start TrainerHillResumeTimer +TrainerHillResumeTimer: @ 0x081D50A8 + push {lr} + ldr r0, _081D50D0 + ldr r2, [r0] + ldr r1, _081D50D4 + adds r0, r2, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _081D50E6 + ldr r0, _081D50D8 + adds r2, r2, r0 + ldr r1, [r2] + ldr r0, _081D50DC + cmp r1, r0 + bls _081D50E0 + adds r0, #1 + str r0, [r2] + b _081D50E6 + .align 2, 0 +_081D50D0: .4byte 0x03005AEC +_081D50D4: .4byte 0x00003D6E +_081D50D8: .4byte 0x00003D64 +_081D50DC: .4byte 0x00034BBE +_081D50E0: + adds r0, r2, #0 + bl SetTrainerHillVBlankCounter +_081D50E6: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end TrainerHillResumeTimer + + thumb_func_start TrainerHillSetPlayerLost +TrainerHillSetPlayerLost: @ 0x081D50EC + ldr r0, _081D5100 + ldr r1, [r0] + ldr r0, _081D5104 + adds r1, r1, r0 + ldrb r0, [r1] + movs r2, #8 + orrs r0, r2 + strb r0, [r1] + bx lr + .align 2, 0 +_081D5100: .4byte 0x03005AEC +_081D5104: .4byte 0x00003D6E + thumb_func_end TrainerHillSetPlayerLost + + thumb_func_start TrainerHillGetChallengeStatus +TrainerHillGetChallengeStatus: @ 0x081D5108 + push {lr} + ldr r0, _081D512C + ldr r0, [r0] + ldr r1, _081D5130 + adds r2, r0, r1 + ldrb r1, [r2] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _081D5138 + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldr r1, _081D5134 + movs r0, #0 + b _081D5158 + .align 2, 0 +_081D512C: .4byte 0x03005AEC +_081D5130: .4byte 0x00003D6E +_081D5134: .4byte 0x02037290 +_081D5138: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _081D5154 + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldr r1, _081D5150 + movs r0, #1 + b _081D5158 + .align 2, 0 +_081D5150: .4byte 0x02037290 +_081D5154: + ldr r1, _081D5160 + movs r0, #2 +_081D5158: + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_081D5160: .4byte 0x02037290 + thumb_func_end TrainerHillGetChallengeStatus + + thumb_func_start sub_081D5164 +sub_081D5164: @ 0x081D5164 + push {r4, r5, r6, r7, lr} + ldr r0, _081D51D8 + ldr r0, [r0] + ldr r1, _081D51DC + adds r0, r0, r1 + ldr r7, [r0] + ldr r0, _081D51E0 + cmp r7, r0 + ble _081D5178 + ldr r7, _081D51E4 +_081D5178: + movs r4, #0xe1 + lsls r4, r4, #4 + adds r0, r7, #0 + adds r1, r4, #0 + bl __divsi3 + adds r6, r0, #0 + adds r0, r7, #0 + adds r1, r4, #0 + bl __modsi3 + adds r7, r0, #0 + movs r1, #0x3c + bl __divsi3 + adds r5, r0, #0 + adds r0, r7, #0 + movs r1, #0x3c + bl __modsi3 + adds r7, r0, #0 + movs r0, #0xa8 + muls r0, r7, r0 + movs r1, #0x64 + bl __divsi3 + adds r4, r0, #0 + ldr r0, _081D51E8 + adds r1, r6, #0 + movs r2, #1 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r0, _081D51EC + adds r1, r5, #0 + movs r2, #1 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r0, _081D51F0 + adds r1, r4, #0 + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D51D8: .4byte 0x03005AEC +_081D51DC: .4byte 0x00003D64 +_081D51E0: .4byte 0x00034BBE +_081D51E4: .4byte 0x00034BBF +_081D51E8: .4byte 0x02021C40 +_081D51EC: .4byte 0x02021C54 +_081D51F0: .4byte 0x02021C68 + thumb_func_end sub_081D5164 + + thumb_func_start sub_081D51F4 +sub_081D51F4: @ 0x081D51F4 + push {lr} + bl SetUpDataStruct + ldr r0, _081D5218 + ldr r1, [r0] + ldrb r0, [r1, #6] + cmp r0, #4 + beq _081D5224 + ldr r0, _081D521C + ldrb r1, [r1, #6] + movs r2, #0 + movs r3, #1 + bl ConvertIntToDecimalStringN + ldr r1, _081D5220 + movs r0, #0 + b _081D5228 + .align 2, 0 +_081D5218: .4byte 0x0203CC20 +_081D521C: .4byte 0x02021C40 +_081D5220: .4byte 0x02037290 +_081D5224: + ldr r1, _081D5234 + movs r0, #1 +_081D5228: + strh r0, [r1] + bl FreeTrainerHillBattleStruct + pop {r0} + bx r0 + .align 2, 0 +_081D5234: .4byte 0x02037290 + thumb_func_end sub_081D51F4 + + thumb_func_start sub_081D5238 +sub_081D5238: @ 0x081D5238 + push {r4, lr} + bl SetUpDataStruct + ldr r0, _081D5260 + ldrh r1, [r0, #0x12] + movs r0, #0xcf + lsls r0, r0, #1 + cmp r1, r0 + bne _081D526C + ldr r0, _081D5264 + bl VarGet + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + bne _081D526C + ldr r0, _081D5268 + strh r1, [r0] + b _081D52E2 + .align 2, 0 +_081D5260: .4byte 0x02036FB8 +_081D5264: .4byte 0x000040D6 +_081D5268: .4byte 0x02037290 +_081D526C: + ldr r4, _081D52C4 + ldr r3, [r4] + ldr r0, _081D52C8 + adds r2, r3, r0 + ldr r0, _081D52CC + ldr r1, [r0] + ldrb r0, [r2] + ldrb r1, [r1, #5] + cmp r0, r1 + bne _081D5296 + ldr r1, _081D52D0 + adds r0, r3, r1 + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _081D52DC + bl ReadTrainerHillAndValidate + cmp r0, #0 + bne _081D52DC +_081D5296: + ldr r1, [r4] + ldr r0, _081D52D0 + adds r1, r1, r0 + ldrb r0, [r1] + movs r2, #0x10 + orrs r0, r2 + strb r0, [r1] + ldr r1, _081D52D4 + movs r0, #1 + strh r0, [r1] + ldr r0, _081D52D8 + ldrh r1, [r0, #0x12] + movs r0, #0xcf + lsls r0, r0, #1 + cmp r1, r0 + bne _081D52E2 + ldr r0, [r4] + movs r1, #9 + strh r1, [r0] + movs r1, #6 + strh r1, [r0, #2] + b _081D52E2 + .align 2, 0 +_081D52C4: .4byte 0x03005AEC +_081D52C8: .4byte 0x00003D6D +_081D52CC: .4byte 0x0203CC20 +_081D52D0: .4byte 0x00003D6E +_081D52D4: .4byte 0x02037290 +_081D52D8: .4byte 0x02036FB8 +_081D52DC: + ldr r1, _081D52EC + movs r0, #0 + strh r0, [r1] +_081D52E2: + bl FreeTrainerHillBattleStruct + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D52EC: .4byte 0x02037290 + thumb_func_end sub_081D5238 + + thumb_func_start sub_081D52F0 +sub_081D52F0: @ 0x081D52F0 + push {lr} + ldr r0, _081D5320 + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + beq _081D531A + ldr r0, _081D5324 + ldr r0, [r0] + ldr r1, _081D5328 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _081D531A + bl GetCurrentTrainerHillMapId + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081D532C +_081D531A: + movs r0, #0 + b _081D532E + .align 2, 0 +_081D5320: .4byte 0x000040D6 +_081D5324: .4byte 0x03005AEC +_081D5328: .4byte 0x00003D6E +_081D532C: + movs r0, #1 +_081D532E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081D52F0 + + thumb_func_start sub_081D5334 +sub_081D5334: @ 0x081D5334 + push {lr} + bl sub_081D52F0 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _081D534C + ldr r0, _081D5348 + strh r1, [r0] + b _081D5352 + .align 2, 0 +_081D5348: .4byte 0x02037290 +_081D534C: + ldr r1, _081D5358 + movs r0, #1 + strh r0, [r1] +_081D5352: + pop {r0} + bx r0 + .align 2, 0 +_081D5358: .4byte 0x02037290 + thumb_func_end sub_081D5334 + + thumb_func_start nullsub_129 +nullsub_129: @ 0x081D535C + bx lr + .align 2, 0 + thumb_func_end nullsub_129 + + thumb_func_start sub_081D5360 +sub_081D5360: @ 0x081D5360 + push {r4, lr} + ldr r4, _081D53AC + ldr r0, [r4] + ldr r1, _081D53B0 + adds r2, r0, r1 + ldr r0, _081D53B4 + ldr r0, [r0] + ldrb r1, [r0, #5] + ldrb r0, [r2] + cmp r0, r1 + beq _081D53A6 + strb r1, [r2] + ldr r0, [r4] + ldr r1, _081D53B8 + adds r0, r0, r1 + ldr r1, _081D53BC + bl SetTimerValue + ldr r1, [r4] + ldr r0, _081D53C0 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r0, _081D53C4 + ldr r1, [r0] + ldr r0, _081D53C8 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #0x80 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] +_081D53A6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D53AC: .4byte 0x03005AEC +_081D53B0: .4byte 0x00003D6D +_081D53B4: .4byte 0x0203CC20 +_081D53B8: .4byte 0x00003D68 +_081D53BC: .4byte 0x00034BBF +_081D53C0: .4byte 0x00003D6E +_081D53C4: .4byte 0x03005AF0 +_081D53C8: .4byte 0x00000EF9 + thumb_func_end sub_081D5360 + + thumb_func_start PrintOnTrainerHillRecordsWindow +PrintOnTrainerHillRecordsWindow: @ 0x081D53CC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + ldr r1, _081D5560 + add r0, sp, #0xc + movs r2, #0xa + bl memcpy + bl SetUpDataStruct + movs r0, #0xd8 + str r0, [sp] + movs r0, #0x90 + str r0, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillWindowPixelRect + bl sub_081D5360 + ldr r7, _081D5564 + str r7, [sp] + movs r0, #0 + str r0, [sp, #4] + ldr r0, _081D5568 + str r0, [sp, #8] + movs r0, #0 + movs r1, #1 + movs r2, #0x44 + movs r3, #0 + bl AddTextPrinterParameterized3 + str r7, [sp] + movs r1, #0 + str r1, [sp, #4] + ldr r0, _081D556C + str r0, [sp, #8] + movs r0, #0 + movs r1, #1 + movs r2, #0 + movs r3, #0x78 + bl AddTextPrinterParameterized3 + ldr r0, _081D5570 + ldr r0, [r0] + ldrb r0, [r0, #6] + str r0, [sp, #0x18] + ldr r0, _081D5574 + ldr r0, [r0] + ldr r2, _081D5578 + adds r0, r0, r2 + bl GetTimerValue + adds r4, r0, #0 + movs r5, #0xe1 + lsls r5, r5, #4 + adds r1, r5, #0 + bl __divsi3 + adds r6, r0, #0 + adds r0, r4, #0 + adds r1, r5, #0 + bl __modsi3 + adds r4, r0, #0 + movs r1, #0x3c + bl __divsi3 + adds r5, r0, #0 + adds r0, r4, #0 + movs r1, #0x3c + bl __modsi3 + movs r1, #0xa8 + muls r0, r1, r0 + movs r1, #0x64 + bl __divsi3 + adds r4, r0, #0 + ldr r0, _081D557C + adds r1, r6, #0 + movs r2, #1 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r0, _081D5580 + adds r1, r5, #0 + movs r2, #1 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r0, _081D5584 + adds r1, r4, #0 + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r4, _081D5588 + ldr r1, _081D558C + adds r0, r4, #0 + bl StringExpandPlaceholders + str r7, [sp] + movs r0, #0 + str r0, [sp, #4] + str r4, [sp, #8] + movs r1, #1 + movs r2, #0x30 + movs r3, #0x84 + bl AddTextPrinterParameterized3 + ldr r0, _081D5590 + ldr r0, [r0] + ldr r1, _081D5594 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081D54C8 + b _081D5648 +_081D54C8: + movs r4, #0 + ldr r2, [sp, #0x18] + cmp r4, r2 + blt _081D54D2 + b _081D56C2 +_081D54D2: + movs r0, #0x1a + adds r3, r4, #0 + muls r3, r0, r3 + adds r3, #0xe + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r6, _081D5564 + str r6, [sp] + movs r0, #0 + str r0, [sp, #4] + ldr r1, _081D5598 + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [sp, #8] + movs r0, #0 + movs r1, #1 + movs r2, #0xc + bl AddTextPrinterParameterized3 + ldr r0, _081D5574 + ldr r0, [r0] + ldr r1, _081D5578 + adds r0, r0, r1 + bl GetTimerValue + ldr r1, _081D559C + cmp r0, r1 + bne _081D55A0 + movs r5, #0 + lsls r2, r4, #1 + mov r8, r2 + add r0, sp, #0x10 + mov sb, r0 + adds r4, #1 + mov sl, r4 + adds r7, r6, #0 + movs r6, #0 +_081D551E: + mov r1, r8 + adds r0, r1, r5 + movs r1, #0xd + adds r4, r0, #0 + muls r4, r1, r4 + adds r4, #0xe + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r7, [sp] + str r6, [sp, #4] + add r2, sp, #0xc + str r2, [sp, #8] + movs r0, #0 + movs r1, #1 + movs r2, #0x24 + adds r3, r4, #0 + bl AddTextPrinterParameterized3 + str r7, [sp] + str r6, [sp, #4] + mov r0, sb + str r0, [sp, #8] + movs r0, #0 + movs r1, #1 + movs r2, #0x90 + adds r3, r4, #0 + bl AddTextPrinterParameterized3 + adds r5, #1 + cmp r5, #1 + ble _081D551E + b _081D562C + .align 2, 0 +_081D5560: .4byte 0x085FB960 +_081D5564: .4byte 0x085FB8E0 +_081D5568: .4byte 0x085FB8E3 +_081D556C: .4byte 0x085FB8EA +_081D5570: .4byte 0x0203CC20 +_081D5574: .4byte 0x03005AEC +_081D5578: .4byte 0x00003D68 +_081D557C: .4byte 0x02021C40 +_081D5580: .4byte 0x02021C54 +_081D5584: .4byte 0x02021C68 +_081D5588: .4byte 0x02021C7C +_081D558C: .4byte 0x085FB8F1 +_081D5590: .4byte 0x03005AF0 +_081D5594: .4byte 0x00000EF9 +_081D5598: .4byte 0x085FB90C +_081D559C: .4byte 0x00034BBF +_081D55A0: + movs r5, #0 + lsls r1, r4, #1 + mov r8, r1 + lsls r0, r4, #4 + adds r2, r4, #1 + mov sl, r2 + movs r7, #4 + movs r6, #0 + subs r0, r0, r4 + lsls r0, r0, #2 + subs r0, r0, r4 + lsls r0, r0, #4 + mov sb, r0 + adds r0, #0xc + str r0, [sp, #0x1c] +_081D55BE: + ldr r1, _081D5638 + ldr r0, [r1] + mov r2, sb + adds r1, r6, r2 + adds r0, r0, r1 + ldrb r0, [r0, #0x18] + ldr r1, _081D563C + adds r0, r0, r1 + ldrb r2, [r0] + mov r0, r8 + adds r1, r0, r5 + movs r0, #0xd + adds r4, r1, #0 + muls r4, r0, r4 + adds r4, #0xe + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r1, _081D5640 + str r1, [sp] + movs r0, #0 + str r0, [sp, #4] + movs r0, #0xb + muls r0, r2, r0 + ldr r1, _081D5644 + adds r0, r0, r1 + str r0, [sp, #8] + movs r0, #0 + movs r1, #1 + movs r2, #0x24 + adds r3, r4, #0 + bl AddTextPrinterParameterized3 + ldr r1, _081D5640 + str r1, [sp] + movs r2, #0 + str r2, [sp, #4] + ldr r1, _081D5638 + ldr r0, [r1] + ldr r2, [sp, #0x1c] + adds r0, r0, r2 + adds r0, r0, r7 + str r0, [sp, #8] + movs r0, #0 + movs r1, #1 + movs r2, #0x90 + adds r3, r4, #0 + bl AddTextPrinterParameterized3 + movs r0, #0xa2 + lsls r0, r0, #1 + adds r7, r7, r0 + adds r6, r6, r0 + adds r5, #1 + cmp r5, #1 + ble _081D55BE +_081D562C: + mov r4, sl + ldr r1, [sp, #0x18] + cmp r4, r1 + bge _081D5636 + b _081D54D2 +_081D5636: + b _081D56C2 + .align 2, 0 +_081D5638: .4byte 0x0203CC20 +_081D563C: .4byte 0x082EFF52 +_081D5640: .4byte 0x085FB8E0 +_081D5644: .4byte 0x082E3564 +_081D5648: + movs r4, #0 + add r2, sp, #0x10 + mov sb, r2 + movs r6, #0 +_081D5650: + movs r0, #0x1a + adds r3, r4, #0 + muls r3, r0, r3 + adds r3, #0xe + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r7, [sp] + str r6, [sp, #4] + ldr r1, _081D56E4 + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [sp, #8] + movs r0, #0 + movs r1, #1 + movs r2, #0xc + bl AddTextPrinterParameterized3 + movs r5, #0 + lsls r0, r4, #1 + mov r8, r0 + adds r4, #1 + mov sl, r4 +_081D567E: + mov r1, r8 + adds r0, r1, r5 + movs r1, #0xd + adds r4, r0, #0 + muls r4, r1, r4 + adds r4, #0xe + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r7, [sp] + str r6, [sp, #4] + add r2, sp, #0xc + str r2, [sp, #8] + movs r0, #0 + movs r1, #1 + movs r2, #0x24 + adds r3, r4, #0 + bl AddTextPrinterParameterized3 + str r7, [sp] + str r6, [sp, #4] + mov r0, sb + str r0, [sp, #8] + movs r0, #0 + movs r1, #1 + movs r2, #0x90 + adds r3, r4, #0 + bl AddTextPrinterParameterized3 + adds r5, #1 + cmp r5, #1 + ble _081D567E + mov r4, sl + cmp r4, #1 + ble _081D5650 +_081D56C2: + movs r0, #0 + bl PutWindowTilemap + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + bl FreeTrainerHillBattleStruct + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D56E4: .4byte 0x085FB90C + thumb_func_end PrintOnTrainerHillRecordsWindow + + thumb_func_start GetTimerValue +GetTimerValue: @ 0x081D56E8 + ldr r0, [r0] + bx lr + thumb_func_end GetTimerValue + + thumb_func_start SetTimerValue +SetTimerValue: @ 0x081D56EC + str r1, [r0] + bx lr + thumb_func_end SetTimerValue + + thumb_func_start sub_081D56F0 +sub_081D56F0: @ 0x081D56F0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r0, _081D5818 + ldr r0, [r0] + movs r1, #0xc7 + lsls r1, r1, #4 + adds r1, r0, r1 + str r1, [sp, #4] + bl sub_081D5840 + cmp r0, #0 + beq _081D5806 + bl SetUpDataStruct + movs r7, #0 + ldr r4, _081D581C + ldr r3, _081D5820 + ldr r0, _081D5824 + adds r2, r0, #0 +_081D571E: + ldr r1, [r4] + lsls r0, r7, #1 + adds r1, r1, r3 + adds r1, r1, r0 + ldrh r0, [r1] + orrs r0, r2 + strh r0, [r1] + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #1 + bls _081D571E + movs r0, #0 + str r0, [sp] + ldr r0, _081D5818 + ldr r1, [r0] + movs r2, #0xc7 + lsls r2, r2, #4 + adds r1, r1, r2 + ldr r2, _081D5828 + mov r0, sp + bl CpuSet + bl GetFloorId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + movs r7, #0 + ldr r3, _081D582C + mov sl, r3 +_081D575C: + lsls r4, r7, #1 + mov r8, r4 + adds r5, r4, r7 + lsls r5, r5, #3 + ldr r0, [sp, #4] + adds r5, r5, r0 + adds r1, r5, #0 + ldr r0, _081D5830 + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + adds r6, r7, #1 + strb r6, [r5] + mov r0, sl + ldr r1, [r0] + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #4 + adds r0, r0, r7 + lsls r0, r0, #2 + mov r2, sb + lsls r4, r2, #4 + subs r4, r4, r2 + lsls r4, r4, #2 + subs r4, r4, r2 + lsls r4, r4, #4 + adds r0, r0, r4 + adds r1, r1, r0 + ldrb r0, [r1, #0x18] + bl FacilityClassToGraphicsId + strb r0, [r5, #1] + mov r0, sl + ldr r3, [r0] + adds r0, r7, r4 + movs r2, #0xee + lsls r2, r2, #2 + adds r1, r3, r2 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #0xf + ands r0, r2 + strh r0, [r5, #4] + ldrb r0, [r1] + lsrs r0, r0, #4 + movs r1, #0xf + ands r0, r1 + adds r0, #5 + strh r0, [r5, #6] + lsls r1, r7, #0x1a + lsrs r1, r1, #0x18 + adds r3, r3, r4 + ldr r2, _081D5834 + adds r3, r3, r2 + ldrb r0, [r3] + asrs r0, r1 + movs r3, #0xf + ands r0, r3 + adds r0, #7 + strb r0, [r5, #9] + mov r2, sl + ldr r0, [r2] + adds r0, r0, r4 + ldr r3, _081D5838 + adds r0, r0, r3 + ldrb r0, [r0] + asrs r0, r1 + movs r1, #0xf + ands r0, r1 + strh r0, [r5, #0xe] + ldr r0, _081D583C + str r0, [r5, #0x10] + ldr r0, _081D581C + ldr r0, [r0] + ldr r4, _081D5820 + adds r0, r0, r4 + add r0, r8 + strh r6, [r0] + lsls r6, r6, #0x18 + lsrs r7, r6, #0x18 + cmp r7, #1 + bls _081D575C + bl FreeTrainerHillBattleStruct +_081D5806: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D5818: .4byte 0x03005AEC +_081D581C: .4byte 0x03005AF0 +_081D5820: .4byte 0x00000CB4 +_081D5824: .4byte 0x0000FFFF +_081D5828: .4byte 0x05000180 +_081D582C: .4byte 0x0203CC20 +_081D5830: .4byte 0x085FB96C +_081D5834: .4byte 0x000003BA +_081D5838: .4byte 0x000003BB +_081D583C: .4byte 0x08276D0C + thumb_func_end sub_081D56F0 + + thumb_func_start sub_081D5840 +sub_081D5840: @ 0x081D5840 + push {r4, r5, lr} + sub sp, #4 + movs r5, #1 + bl SetUpDataStruct + ldr r4, _081D589C + ldr r3, [r4] + ldr r0, _081D58A0 + adds r2, r3, r0 + ldr r0, _081D58A4 + ldr r1, [r0] + ldrb r0, [r2] + ldrb r1, [r1, #5] + cmp r0, r1 + bne _081D5874 + ldr r1, _081D58A8 + adds r0, r3, r1 + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _081D588E + bl ReadTrainerHillAndValidate + cmp r0, #0 + bne _081D588E +_081D5874: + movs r0, #0 + str r0, [sp] + ldr r1, [r4] + movs r0, #0xc7 + lsls r0, r0, #4 + adds r1, r1, r0 + ldr r2, _081D58AC + mov r0, sp + bl CpuSet + bl ClearAllEventObjects + movs r5, #0 +_081D588E: + bl FreeTrainerHillBattleStruct + adds r0, r5, #0 + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081D589C: .4byte 0x03005AEC +_081D58A0: .4byte 0x00003D6D +_081D58A4: .4byte 0x0203CC20 +_081D58A8: .4byte 0x00003D6E +_081D58AC: .4byte 0x05000180 + thumb_func_end sub_081D5840 + + thumb_func_start sub_081D58B0 +sub_081D58B0: @ 0x081D58B0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _081D5908 + ldr r4, [r4] + mov ip, r4 + lsls r4, r2, #1 + lsls r5, r0, #4 + subs r5, r5, r0 + lsls r5, r5, #2 + subs r5, r5, r0 + lsls r5, r5, #4 + adds r4, r4, r5 + movs r0, #0xe6 + lsls r0, r0, #2 + add r0, ip + adds r0, r0, r4 + ldrh r0, [r0] + movs r4, #0xf + subs r4, r4, r1 + asrs r0, r4 + movs r4, #1 + ands r0, r4 + muls r2, r3, r2 + adds r2, r2, r1 + adds r2, r2, r5 + movs r1, #0xa6 + lsls r1, r1, #2 + add r1, ip + adds r1, r1, r2 + ldrb r1, [r1] + movs r2, #0x80 + lsls r2, r2, #2 + adds r3, r2, #0 + movs r2, #0xc0 + lsls r2, r2, #6 + lsls r0, r0, #0xa + orrs r0, r2 + orrs r1, r3 + orrs r0, r1 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_081D5908: .4byte 0x0203CC20 + thumb_func_end sub_081D58B0 + + thumb_func_start sub_081D590C +sub_081D590C: @ 0x081D590C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + bl GetCurrentTrainerHillMapId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + cmp r0, #6 + bne _081D592A + bl InitMapFromSavedGame + b _081D59FC +_081D592A: + bl SetUpDataStruct + ldr r0, _081D5964 + ldr r3, [r0] + ldr r0, _081D5968 + adds r2, r3, r0 + ldr r0, _081D596C + ldr r1, [r0] + ldrb r0, [r2] + ldrb r1, [r1, #5] + cmp r0, r1 + bne _081D5958 + ldr r1, _081D5970 + adds r0, r3, r1 + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _081D5974 + bl ReadTrainerHillAndValidate + cmp r0, #0 + bne _081D5974 +_081D5958: + bl RunOnLoadMapScript + bl FreeTrainerHillBattleStruct + b _081D59FC + .align 2, 0 +_081D5964: .4byte 0x03005AEC +_081D5968: .4byte 0x00003D6D +_081D596C: .4byte 0x0203CC20 +_081D5970: .4byte 0x00003D6E +_081D5974: + mov r0, sb + cmp r0, #5 + bne _081D5984 + bl InitMapFromSavedGame + bl FreeTrainerHillBattleStruct + b _081D59FC +_081D5984: + bl GetFloorId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldr r0, _081D5A08 + ldr r0, [r0] + ldr r2, [r0, #0xc] + ldr r1, _081D5A0C + str r4, [r1, #8] + movs r0, #0x1f + str r0, [r1] + movs r0, #0x23 + str r0, [r1, #4] + movs r1, #0xe0 + lsls r1, r1, #1 + adds r3, r4, r1 + movs r6, #4 +_081D59A8: + adds r4, r2, #0 + adds r4, #0x20 + adds r1, r3, #0 + movs r5, #0xf +_081D59B0: + ldrh r0, [r2] + strh r0, [r1] + adds r2, #2 + adds r1, #2 + subs r5, #1 + cmp r5, #0 + bge _081D59B0 + adds r3, #0x3e + adds r2, r4, #0 + subs r6, #1 + cmp r6, #0 + bge _081D59A8 + movs r6, #0 +_081D59CA: + movs r5, #0 + movs r0, #0x3e + adds r0, r0, r3 + mov r8, r0 + adds r7, r6, #1 + adds r4, r3, #0 +_081D59D6: + mov r0, sb + adds r1, r5, #0 + adds r2, r6, #0 + movs r3, #0x10 + bl sub_081D58B0 + strh r0, [r4] + adds r4, #2 + adds r5, #1 + cmp r5, #0xf + ble _081D59D6 + mov r3, r8 + adds r6, r7, #0 + cmp r6, #0xf + ble _081D59CA + bl RunOnLoadMapScript + bl FreeTrainerHillBattleStruct +_081D59FC: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D5A08: .4byte 0x02036FB8 +_081D5A0C: .4byte 0x03005B20 + thumb_func_end sub_081D590C + + thumb_func_start InTrainerHill +InTrainerHill: @ 0x081D5A10 + push {lr} + ldr r1, _081D5A30 + ldr r2, _081D5A34 + adds r0, r2, #0 + ldrh r1, [r1, #0x12] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0 + cmp r0, #3 + bhi _081D5A28 + movs r1, #1 +_081D5A28: + adds r0, r1, #0 + pop {r1} + bx r1 + .align 2, 0 +_081D5A30: .4byte 0x02036FB8 +_081D5A34: .4byte 0xFFFFFE61 + thumb_func_end InTrainerHill + + thumb_func_start GetCurrentTrainerHillMapId +GetCurrentTrainerHillMapId: @ 0x081D5A38 + push {lr} + ldr r0, _081D5A48 + ldrh r2, [r0, #0x12] + ldr r0, _081D5A4C + cmp r2, r0 + bne _081D5A50 + movs r1, #1 + b _081D5A94 + .align 2, 0 +_081D5A48: .4byte 0x02036FB8 +_081D5A4C: .4byte 0x0000019F +_081D5A50: + movs r0, #0xd0 + lsls r0, r0, #1 + cmp r2, r0 + bne _081D5A5C + movs r1, #2 + b _081D5A94 +_081D5A5C: + ldr r0, _081D5A68 + cmp r2, r0 + bne _081D5A6C + movs r1, #3 + b _081D5A94 + .align 2, 0 +_081D5A68: .4byte 0x000001A1 +_081D5A6C: + movs r0, #0xd1 + lsls r0, r0, #1 + cmp r2, r0 + bne _081D5A78 + movs r1, #4 + b _081D5A94 +_081D5A78: + ldr r0, _081D5A84 + cmp r2, r0 + bne _081D5A88 + movs r1, #5 + b _081D5A94 + .align 2, 0 +_081D5A84: .4byte 0x000001A3 +_081D5A88: + movs r0, #0xcf + lsls r0, r0, #1 + movs r1, #0 + cmp r2, r0 + bne _081D5A94 + movs r1, #6 +_081D5A94: + adds r0, r1, #0 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetCurrentTrainerHillMapId + + thumb_func_start sub_081D5A9C +sub_081D5A9C: @ 0x081D5A9C + push {lr} + ldr r0, _081D5AB4 + ldrh r1, [r0, #0x12] + ldr r0, _081D5AB8 + movs r2, #0 + cmp r1, r0 + bne _081D5AAC + movs r2, #1 +_081D5AAC: + adds r0, r2, #0 + pop {r1} + bx r1 + .align 2, 0 +_081D5AB4: .4byte 0x02036FB8 +_081D5AB8: .4byte 0x000001A3 + thumb_func_end sub_081D5A9C + + thumb_func_start sub_081D5ABC +sub_081D5ABC: @ 0x081D5ABC + push {lr} + movs r0, #0x1a + movs r1, #0x40 + bl Overworld_GetMapHeaderByGroupAndId + ldr r0, [r0, #4] + ldr r0, [r0, #8] + adds r0, #8 + pop {r1} + bx r1 + thumb_func_end sub_081D5ABC + + thumb_func_start sub_081D5AD0 +sub_081D5AD0: @ 0x081D5AD0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081D5AE8 + ldr r0, _081D5AE4 + ldr r0, [r0, #4] + ldr r0, [r0, #8] + adds r0, #8 + b _081D5B12 + .align 2, 0 +_081D5AE4: .4byte 0x02036FB8 +_081D5AE8: + bl sub_081D5E30 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + movs r1, #0xff + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _081D5AFE + movs r2, #4 +_081D5AFE: + ldr r1, _081D5B18 + subs r0, r2, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x1a + bl Overworld_GetMapHeaderByGroupAndId + ldr r0, [r0, #4] + ldr r0, [r0, #8] +_081D5B12: + pop {r1} + bx r1 + .align 2, 0 +_081D5B18: .4byte 0x085FB984 + thumb_func_end sub_081D5AD0 + + thumb_func_start LocalIdToHillTrainerId +LocalIdToHillTrainerId: @ 0x081D5B1C + lsls r0, r0, #0x18 + ldr r1, _081D5B30 + ldr r1, [r1] + lsrs r0, r0, #0x17 + adds r1, r1, r0 + ldr r0, _081D5B34 + adds r1, r1, r0 + ldrh r0, [r1] + bx lr + .align 2, 0 +_081D5B30: .4byte 0x03005AF0 +_081D5B34: .4byte 0x00000CB2 + thumb_func_end LocalIdToHillTrainerId + + thumb_func_start GetHillTrainerFlag +GetHillTrainerFlag: @ 0x081D5B38 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl GetFloorId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + ldr r2, _081D5B78 + lsls r1, r4, #3 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r1, r1, r2 + adds r0, #0xff + ldrb r1, [r1, #8] + adds r0, r0, r1 + lsls r0, r0, #0x18 + ldr r1, _081D5B7C + ldr r1, [r1] + movs r2, #0xee + lsls r2, r2, #4 + adds r1, r1, r2 + ldr r2, _081D5B80 + lsrs r0, r0, #0x16 + adds r0, r0, r2 + ldr r0, [r0] + ldrb r1, [r1] + ands r0, r1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081D5B78: .4byte 0x02036FF0 +_081D5B7C: .4byte 0x03005AF0 +_081D5B80: .4byte 0x082FACB4 + thumb_func_end GetHillTrainerFlag + + thumb_func_start SetHillTrainerFlag +SetHillTrainerFlag: @ 0x081D5B84 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + bl GetFloorId + lsls r0, r0, #0x19 + lsrs r4, r0, #0x18 + movs r3, #0 + ldr r0, _081D5BCC + mov r8, r0 + ldr r6, _081D5BD0 + ldr r1, _081D5BD4 + mov ip, r1 + adds r5, r6, #0 +_081D5BA0: + ldr r2, [r5] + lsls r0, r3, #1 + ldr r7, _081D5BD8 + adds r1, r2, r7 + adds r1, r1, r0 + ldrh r0, [r1] + mov r1, r8 + ldrh r1, [r1] + cmp r0, r1 + bne _081D5BDC + movs r7, #0xee + lsls r7, r7, #4 + adds r2, r2, r7 + adds r0, r4, r3 + lsls r0, r0, #2 + add r0, ip + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + b _081D5BE6 + .align 2, 0 +_081D5BCC: .4byte 0x0203886A +_081D5BD0: .4byte 0x03005AF0 +_081D5BD4: .4byte 0x082FACB4 +_081D5BD8: .4byte 0x00000CB4 +_081D5BDC: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #1 + bls _081D5BA0 +_081D5BE6: + ldr r0, _081D5C24 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + beq _081D5C3E + movs r3, #0 + ldr r5, _081D5C28 + ldr r0, _081D5C2C + mov r8, r0 +_081D5BFC: + ldr r2, [r6] + lsls r0, r3, #1 + ldr r7, _081D5C30 + adds r1, r2, r7 + adds r1, r1, r0 + ldrh r0, [r1] + ldrh r1, [r5] + cmp r0, r1 + bne _081D5C34 + movs r7, #0xee + lsls r7, r7, #4 + adds r2, r2, r7 + adds r0, r4, r3 + lsls r0, r0, #2 + add r0, r8 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + b _081D5C3E + .align 2, 0 +_081D5C24: .4byte 0x02022C90 +_081D5C28: .4byte 0x0203886C +_081D5C2C: .4byte 0x082FACB4 +_081D5C30: .4byte 0x00000CB4 +_081D5C34: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #1 + bls _081D5BFC +_081D5C3E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end SetHillTrainerFlag + + thumb_func_start GetTrainerHillTrainerScript +GetTrainerHillTrainerScript: @ 0x081D5C48 + ldr r0, _081D5C4C + bx lr + .align 2, 0 +_081D5C4C: .4byte 0x08276D0C + thumb_func_end GetTrainerHillTrainerScript + + thumb_func_start sub_081D5C50 +sub_081D5C50: @ 0x081D5C50 + push {lr} + ldr r0, _081D5C64 + ldrh r1, [r0] + movs r0, #5 + bl CopyTrainerHillTrainerText + bl sub_08097C40 + pop {r0} + bx r0 + .align 2, 0 +_081D5C64: .4byte 0x02037292 + thumb_func_end sub_081D5C50 + + thumb_func_start sub_081D5C68 +sub_081D5C68: @ 0x081D5C68 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sb, r1 + subs r1, r0, #1 + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bhi _081D5D06 + lsls r0, r1, #0x18 + lsrs r6, r0, #0x18 + bl SetUpDataStruct + bl GetHighestLevelInPlayerParty + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + bl GetFloorId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + mov r5, sb + adds r0, r5, #3 + cmp r5, r0 + bge _081D5D02 + ldr r1, _081D5D14 + lsls r0, r6, #1 + adds r0, r0, r6 + adds r7, r0, r1 +_081D5CB2: + ldrb r2, [r7] + movs r0, #0x64 + adds r4, r5, #0 + muls r4, r0, r4 + ldr r0, _081D5D18 + adds r4, r4, r0 + mov r1, r8 + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #2 + subs r0, r0, r1 + lsls r0, r0, #4 + adds r0, #0xc + ldr r3, _081D5D1C + ldr r1, [r3] + adds r1, r1, r0 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #4 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r0, #4 + adds r1, r1, r0 + movs r0, #0x2c + muls r0, r2, r0 + adds r0, #0x3c + adds r1, r1, r0 + adds r0, r4, #0 + bl CreateBattleTowerMon + adds r0, r4, #0 + mov r1, sl + bl sub_081D5DCC + adds r5, #1 + adds r7, #1 + mov r0, sb + adds r0, #3 + cmp r5, r0 + blt _081D5CB2 +_081D5D02: + bl FreeTrainerHillBattleStruct +_081D5D06: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081D5D14: .4byte 0x085FB994 +_081D5D18: .4byte 0x020243E8 +_081D5D1C: .4byte 0x0203CC20 + thumb_func_end sub_081D5C68 + + thumb_func_start FillHillTrainerParty +FillHillTrainerParty: @ 0x081D5D20 + push {lr} + bl ZeroEnemyPartyMons + ldr r0, _081D5D34 + ldrh r0, [r0] + movs r1, #0 + bl sub_081D5C68 + pop {r0} + bx r0 + .align 2, 0 +_081D5D34: .4byte 0x0203886A + thumb_func_end FillHillTrainerParty + + thumb_func_start FillHillTrainersParties +FillHillTrainersParties: @ 0x081D5D38 + push {lr} + bl ZeroEnemyPartyMons + ldr r0, _081D5D58 + ldrh r0, [r0] + movs r1, #0 + bl sub_081D5C68 + ldr r0, _081D5D5C + ldrh r0, [r0] + movs r1, #3 + bl sub_081D5C68 + pop {r0} + bx r0 + .align 2, 0 +_081D5D58: .4byte 0x0203886A +_081D5D5C: .4byte 0x0203886C + thumb_func_end FillHillTrainersParties + + thumb_func_start sub_081D5D60 +sub_081D5D60: @ 0x081D5D60 + movs r0, #7 + bx lr + thumb_func_end sub_081D5D60 + + thumb_func_start GetTrainerEncounterMusicIdInTrainerHill +GetTrainerEncounterMusicIdInTrainerHill: @ 0x081D5D64 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + bl SetUpDataStruct + subs r4, #1 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081D5DB0 + ldr r3, [r0] + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #4 + adds r1, r1, r4 + lsls r1, r1, #2 + ldrb r2, [r3] + lsls r0, r2, #4 + subs r0, r0, r2 + lsls r0, r0, #2 + subs r0, r0, r2 + lsls r0, r0, #4 + adds r1, r1, r0 + adds r3, r3, r1 + ldrb r4, [r3, #0x18] + bl FreeTrainerHillBattleStruct + movs r2, #0 + ldr r0, _081D5DB4 + adds r4, r4, r0 + ldrb r3, [r4] + ldr r1, _081D5DB8 +_081D5DA4: + ldrb r0, [r1] + cmp r0, r3 + bne _081D5DBC + ldrb r0, [r1, #1] + b _081D5DC6 + .align 2, 0 +_081D5DB0: .4byte 0x0203CC20 +_081D5DB4: .4byte 0x082EFF52 +_081D5DB8: .4byte 0x085FB6A0 +_081D5DBC: + adds r1, #4 + adds r2, #1 + cmp r2, #0x35 + bls _081D5DA4 + movs r0, #0 +_081D5DC6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetTrainerEncounterMusicIdInTrainerHill + + thumb_func_start sub_081D5DCC +sub_081D5DCC: @ 0x081D5DCC + push {r4, r5, lr} + sub sp, #8 + adds r4, r0, #0 + mov r0, sp + strb r1, [r0] + adds r0, r4, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r5, _081D5E28 + mov r1, sp + ldrb r2, [r1] + lsls r2, r2, #2 + ldr r3, _081D5E2C + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldrb r1, [r1, #0x13] + movs r0, #0xca + lsls r0, r0, #1 + muls r0, r1, r0 + adds r2, r2, r0 + adds r2, r2, r5 + ldr r0, [r2] + str r0, [sp, #4] + add r2, sp, #4 + adds r0, r4, #0 + movs r1, #0x19 + bl SetMonData + adds r0, r4, #0 + movs r1, #0x38 + mov r2, sp + bl SetMonData + adds r0, r4, #0 + bl CalculateMonStats + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081D5E28: .4byte 0x082F00B4 +_081D5E2C: .4byte 0x082F0D54 + thumb_func_end sub_081D5DCC + + thumb_func_start sub_081D5E30 +sub_081D5E30: @ 0x081D5E30 + push {r4, lr} + bl SetUpDataStruct + ldr r0, _081D5E48 + ldr r0, [r0] + ldrb r4, [r0, #6] + bl FreeTrainerHillBattleStruct + adds r0, r4, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081D5E48: .4byte 0x0203CC20 + thumb_func_end sub_081D5E30 + + thumb_func_start sub_081D5E4C +sub_081D5E4C: @ 0x081D5E4C + ldr r0, _081D5E5C + ldr r0, [r0] + movs r1, #0xee + lsls r1, r1, #4 + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] + bx lr + .align 2, 0 +_081D5E5C: .4byte 0x03005AF0 + thumb_func_end sub_081D5E4C + + thumb_func_start sub_081D5E60 +sub_081D5E60: @ 0x081D5E60 + push {lr} + bl sub_081D5ED4 + cmp r0, #1 + bne _081D5E74 + ldr r0, _081D5E78 + movs r1, #0x70 + movs r2, #0x20 + bl LoadPalette +_081D5E74: + pop {r0} + bx r0 + .align 2, 0 +_081D5E78: .4byte 0x085FB8C0 + thumb_func_end sub_081D5E60 + + thumb_func_start sub_081D5E7C +sub_081D5E7C: @ 0x081D5E7C + ldr r1, _081D5E90 + ldr r0, _081D5E94 + ldr r0, [r0] + ldr r2, _081D5E98 + adds r0, r0, r2 + ldrb r0, [r0] + lsrs r0, r0, #7 + strh r0, [r1] + bx lr + .align 2, 0 +_081D5E90: .4byte 0x02037290 +_081D5E94: .4byte 0x03005AF0 +_081D5E98: .4byte 0x00000EF9 + thumb_func_end sub_081D5E7C + + thumb_func_start sub_081D5E9C +sub_081D5E9C: @ 0x081D5E9C + ldr r0, _081D5EB0 + ldr r1, [r0] + ldr r0, _081D5EB4 + adds r1, r1, r0 + ldrb r0, [r1] + movs r2, #0x80 + orrs r0, r2 + strb r0, [r1] + bx lr + .align 2, 0 +_081D5EB0: .4byte 0x03005AF0 +_081D5EB4: .4byte 0x00000EF9 + thumb_func_end sub_081D5E9C + + thumb_func_start nullsub_2 +nullsub_2: @ 0x081D5EB8 + ldr r0, _081D5ECC + ldr r1, [r0] + ldr r0, _081D5ED0 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #0x7f + ands r0, r2 + strb r0, [r1] + bx lr + .align 2, 0 +_081D5ECC: .4byte 0x03005AF0 +_081D5ED0: .4byte 0x00000EF9 + thumb_func_end nullsub_2 + + thumb_func_start sub_081D5ED4 +sub_081D5ED4: @ 0x081D5ED4 + push {lr} + bl sub_081D52F0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D5F00 + bl GetCurrentTrainerHillMapId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #6 + beq _081D5F00 + bl sub_081D5238 + ldr r0, _081D5EFC + ldrh r0, [r0] + cmp r0, #0 + beq _081D5F00 + movs r0, #1 + b _081D5F02 + .align 2, 0 +_081D5EFC: .4byte 0x02037290 +_081D5F00: + movs r0, #0 +_081D5F02: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081D5ED4 + + thumb_func_start sub_081D5F08 +sub_081D5F08: @ 0x081D5F08 + push {lr} + ldr r0, _081D5F24 + ldr r0, [r0] + ldr r1, _081D5F28 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _081D5F30 + ldr r1, _081D5F2C + movs r0, #0 + b _081D5F34 + .align 2, 0 +_081D5F24: .4byte 0x03005AEC +_081D5F28: .4byte 0x00003D6E +_081D5F2C: .4byte 0x02037290 +_081D5F30: + ldr r1, _081D5F3C + movs r0, #1 +_081D5F34: + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_081D5F3C: .4byte 0x02037290 + thumb_func_end sub_081D5F08 + + thumb_func_start sub_081D5F40 +sub_081D5F40: @ 0x081D5F40 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + movs r3, #0 + movs r4, #0 + ldr r0, _081D5F94 + ldr r6, [r0] + movs r5, #0x1f +_081D5F50: + lsls r1, r4, #4 + subs r1, r1, r4 + lsls r1, r1, #2 + subs r1, r1, r4 + lsls r1, r1, #4 + adds r1, r6, r1 + ldrb r2, [r1, #0xc] + adds r0, r5, #0 + ands r0, r2 + eors r3, r0 + ldrb r1, [r1, #0xd] + adds r0, r5, #0 + ands r0, r1 + eors r3, r0 + lsls r0, r3, #0x18 + lsrs r3, r0, #0x18 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _081D5F50 + movs r1, #5 + cmp r7, #0 + beq _081D5F82 + movs r1, #0xa +_081D5F82: + adds r0, r3, #0 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + adds r0, r3, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081D5F94: .4byte 0x0203CC20 + thumb_func_end sub_081D5F40 + + thumb_func_start sub_081D5F98 +sub_081D5F98: @ 0x081D5F98 + push {r4, lr} + movs r3, #0 + movs r2, #0 + ldr r0, _081D5FF0 + ldr r4, [r0] +_081D5FA2: + lsls r0, r2, #4 + subs r0, r0, r2 + lsls r0, r0, #2 + subs r0, r0, r2 + lsls r0, r0, #4 + adds r0, r4, r0 + ldrb r1, [r0, #0xc] + adds r1, r3, r1 + ldrb r0, [r0, #0xd] + adds r3, r1, r0 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #3 + bls _081D5FA2 + adds r0, r3, #0 + cmp r0, #0 + bge _081D5FC8 + adds r0, #0xff +_081D5FC8: + asrs r4, r0, #8 + lsrs r0, r0, #0x1f + adds r0, r4, r0 + asrs r0, r0, #1 + lsls r0, r0, #1 + subs r4, r4, r0 + ldr r0, _081D5FF4 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D5FF8 + ldr r0, _081D5FF0 + ldr r0, [r0] + ldrb r0, [r0, #4] + cmp r0, #8 + bne _081D5FF8 + movs r0, #1 + b _081D5FFA + .align 2, 0 +_081D5FF0: .4byte 0x0203CC20 +_081D5FF4: .4byte 0x00000864 +_081D5FF8: + movs r0, #0 +_081D5FFA: + bl sub_081D5F40 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _081D6050 + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r1, [r0] + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r4, [r0] + ldr r0, _081D6054 + ldr r0, [r0] + ldr r1, _081D6058 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0xe1 + lsls r1, r1, #4 + bl __divsi3 + movs r1, #0 + cmp r0, #0xb + ble _081D6042 + movs r1, #1 + cmp r0, #0xc + ble _081D6042 + movs r1, #2 + cmp r0, #0xd + ble _081D6042 + movs r1, #3 + cmp r0, #0xf + ble _081D6042 + movs r1, #5 + cmp r0, #0x11 + bgt _081D6042 + movs r1, #4 +_081D6042: + lsls r0, r1, #1 + adds r0, r0, r4 + ldrh r0, [r0] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081D6050: .4byte 0x085FB8B8 +_081D6054: .4byte 0x03005AEC +_081D6058: .4byte 0x00003D64 + thumb_func_end sub_081D5F98 + diff --git a/asm/trainer_pokemon_sprites.s b/asm/trainer_pokemon_sprites.s new file mode 100644 index 0000000..c7f5a27 --- /dev/null +++ b/asm/trainer_pokemon_sprites.s @@ -0,0 +1,1332 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start DummyPicSpriteCallback +DummyPicSpriteCallback: @ 0x0818CCF4 + bx lr + .align 2, 0 + thumb_func_end DummyPicSpriteCallback + + thumb_func_start ResetAllPicSprites +ResetAllPicSprites: @ 0x0818CCF8 + push {r4, r5, r6, r7, lr} + ldr r4, _0818CD18 + ldr r3, _0818CD1C + movs r2, #7 +_0818CD00: + adds r1, r3, #0 + adds r0, r4, #0 + ldm r0!, {r5, r6, r7} + stm r1!, {r5, r6, r7} + adds r3, #0xc + subs r2, #1 + cmp r2, #0 + bge _0818CD00 + movs r0, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0818CD18: .4byte 0x085D3AB8 +_0818CD1C: .4byte 0x0203C9D0 + thumb_func_end ResetAllPicSprites + + thumb_func_start DecompressPic +DecompressPic: @ 0x0818CD20 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r6, r1, #0 + adds r5, r3, #0 + ldr r3, [sp, #0x18] + ldr r1, [sp, #0x1c] + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r7, r4, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r1, #0 + cmp r3, #0 + bne _0818CD94 + cmp r2, #0 + beq _0818CD60 + cmp r1, #0 + bne _0818CD54 + lsls r0, r4, #3 + ldr r1, _0818CD50 + b _0818CD68 + .align 2, 0 +_0818CD50: .4byte 0x082DDA1C +_0818CD54: + lsls r0, r4, #3 + ldr r1, _0818CD5C + b _0818CD80 + .align 2, 0 +_0818CD5C: .4byte 0x082DDA1C +_0818CD60: + cmp r0, #0 + bne _0818CD7C + lsls r0, r4, #3 + ldr r1, _0818CD78 +_0818CD68: + adds r0, r0, r1 + str r2, [sp] + adds r1, r5, #0 + adds r2, r4, #0 + adds r3, r6, #0 + bl LoadSpecialPokePic + b _0818CDBA + .align 2, 0 +_0818CD78: .4byte 0x082D6148 +_0818CD7C: + lsls r0, r4, #3 + ldr r1, _0818CD90 +_0818CD80: + adds r0, r0, r1 + str r2, [sp] + adds r1, r5, #0 + adds r2, r4, #0 + adds r3, r6, #0 + bl LoadSpecialPokePic_DontHandleDeoxys + b _0818CDBA + .align 2, 0 +_0818CD90: .4byte 0x082D6148 +_0818CD94: + cmp r2, #0 + beq _0818CDAC + lsls r0, r4, #3 + ldr r1, _0818CDA8 + adds r0, r0, r1 + adds r1, r5, #0 + adds r2, r4, #0 + bl DecompressPicFromTable + b _0818CDBA + .align 2, 0 +_0818CDA8: .4byte 0x082D8EE4 +_0818CDAC: + lsls r0, r7, #3 + ldr r1, _0818CDC4 + adds r0, r0, r1 + adds r1, r5, #0 + adds r2, r7, #0 + bl DecompressPicFromTable +_0818CDBA: + movs r0, #0 + add sp, #4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0818CDC4: .4byte 0x082D95DC + thumb_func_end DecompressPic + + thumb_func_start DecompressPic_HandleDeoxys +DecompressPic_HandleDeoxys: @ 0x0818CDC8 + push {r4, lr} + sub sp, #8 + ldr r4, [sp, #0x10] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r4, [sp] + movs r4, #0 + str r4, [sp, #4] + bl DecompressPic + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + add sp, #8 + pop {r4} + pop {r1} + bx r1 + thumb_func_end DecompressPic_HandleDeoxys + + thumb_func_start LoadPicPaletteByTagOrSlot +LoadPicPaletteByTagOrSlot: @ 0x0818CDF0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r1, #0 + mov r8, r2 + ldr r1, [sp, #0x18] + ldr r2, [sp, #0x1c] + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r6, r4, #0 + lsls r3, r3, #0x18 + lsrs r5, r3, #0x18 + mov ip, r5 + lsls r1, r1, #0x10 + lsrs r3, r1, #0x10 + adds r1, r3, #0 + lsls r2, r2, #0x18 + cmp r2, #0 + bne _0818CE54 + ldr r0, _0818CE34 + cmp r3, r0 + bne _0818CE3C + ldr r2, _0818CE38 + ldrh r1, [r2, #2] + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2, #2] + adds r0, r4, #0 + adds r1, r7, #0 + mov r2, r8 + bl GetMonSpritePalFromSpeciesAndPersonality + lsls r1, r5, #0x14 + b _0818CE70 + .align 2, 0 +_0818CE34: .4byte 0x0000FFFF +_0818CE38: .4byte 0x0203C9B8 +_0818CE3C: + ldr r0, _0818CE50 + strh r3, [r0, #2] + adds r0, r4, #0 + adds r1, r7, #0 + mov r2, r8 + bl GetMonSpritePalStructFromOtIdPersonality + bl LoadCompressedSpritePalette + b _0818CE9A + .align 2, 0 +_0818CE50: .4byte 0x0203C9B8 +_0818CE54: + ldr r0, _0818CE80 + cmp r3, r0 + bne _0818CE8C + ldr r2, _0818CE84 + ldrh r1, [r2, #2] + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2, #2] + ldr r1, _0818CE88 + lsls r0, r4, #3 + adds r0, r0, r1 + ldr r0, [r0] + mov r2, ip + lsls r1, r2, #0x14 +_0818CE70: + movs r2, #0x80 + lsls r2, r2, #0x11 + adds r1, r1, r2 + lsrs r1, r1, #0x10 + movs r2, #0x20 + bl LoadCompressedPalette + b _0818CE9A + .align 2, 0 +_0818CE80: .4byte 0x0000FFFF +_0818CE84: .4byte 0x0203C9B8 +_0818CE88: .4byte 0x082D91CC +_0818CE8C: + ldr r0, _0818CEA4 + strh r1, [r0, #2] + lsls r0, r6, #3 + ldr r1, _0818CEA8 + adds r0, r0, r1 + bl LoadCompressedSpritePalette +_0818CE9A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0818CEA4: .4byte 0x0203C9B8 +_0818CEA8: .4byte 0x082D91CC + thumb_func_end LoadPicPaletteByTagOrSlot + + thumb_func_start LoadPicPaletteBySlot +LoadPicPaletteBySlot: @ 0x0818CEAC + push {r4, r5, lr} + adds r5, r1, #0 + ldr r1, [sp, #0xc] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r3, r3, #0x18 + lsrs r4, r3, #0x18 + lsls r1, r1, #0x18 + cmp r1, #0 + bne _0818CED0 + adds r1, r5, #0 + bl GetMonSpritePalFromSpeciesAndPersonality + lsls r1, r4, #4 + movs r2, #0x20 + bl LoadCompressedPalette + b _0818CEE0 +_0818CED0: + ldr r1, _0818CEE8 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r0, [r0] + lsls r1, r4, #4 + movs r2, #0x20 + bl LoadCompressedPalette +_0818CEE0: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0818CEE8: .4byte 0x082D91CC + thumb_func_end LoadPicPaletteBySlot + + thumb_func_start AssignSpriteAnimsTable +AssignSpriteAnimsTable: @ 0x0818CEEC + push {lr} + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0818CF04 + ldr r1, _0818CEFC + ldr r0, _0818CF00 + str r0, [r1, #8] + b _0818CF0C + .align 2, 0 +_0818CEFC: .4byte 0x0203C9B8 +_0818CF00: .4byte 0x082D2F9C +_0818CF04: + ldr r0, _0818CF10 + ldr r1, _0818CF14 + ldr r1, [r1] + str r1, [r0, #8] +_0818CF0C: + pop {r0} + bx r0 + .align 2, 0 +_0818CF10: .4byte 0x0203C9B8 +_0818CF14: .4byte 0x082D8BFC + thumb_func_end AssignSpriteAnimsTable + + thumb_func_start CreatePicSprite +CreatePicSprite: @ 0x0818CF18 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x30 + str r1, [sp, #0xc] + str r2, [sp, #0x10] + ldr r1, [sp, #0x50] + ldr r2, [sp, #0x54] + ldr r4, [sp, #0x58] + ldr r5, [sp, #0x5c] + ldr r6, [sp, #0x60] + ldr r7, [sp, #0x64] + mov r8, r7 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #8] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r3, [sp, #0x14] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp, #0x18] + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + str r2, [sp, #0x1c] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r4, [sp, #0x20] + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + mov sl, r5 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov sb, r6 + mov r0, r8 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r4, #0 + ldr r1, _0818CFB0 + ldrb r0, [r1, #0xb] + cmp r0, #0 + beq _0818CF88 +_0818CF70: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #7 + bhi _0818CF88 + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #0xb] + cmp r0, #0 + bne _0818CF70 +_0818CF88: + cmp r4, #8 + beq _0818CFAC + movs r0, #0x80 + lsls r0, r0, #6 + bl Alloc + adds r7, r0, #0 + cmp r7, #0 + beq _0818CFAC + movs r0, #0x20 + bl Alloc + mov r8, r0 + cmp r0, #0 + bne _0818CFB8 + adds r0, r7, #0 + bl Free +_0818CFAC: + ldr r0, _0818CFB4 + b _0818D082 + .align 2, 0 +_0818CFB0: .4byte 0x0203C9D0 +_0818CFB4: .4byte 0x0000FFFF +_0818CFB8: + mov r1, sb + str r1, [sp] + str r5, [sp, #4] + ldr r0, [sp, #8] + ldr r1, [sp, #0x10] + ldr r2, [sp, #0x14] + adds r3, r7, #0 + bl DecompressPic + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0818CFAC + lsls r2, r4, #1 + str r2, [sp, #0x2c] + ldr r5, _0818D094 + ldr r0, _0818D098 + mov ip, r0 + ldr r1, [sp, #0x18] + lsls r1, r1, #0x10 + str r1, [sp, #0x24] + ldr r2, [sp, #0x1c] + lsls r2, r2, #0x10 + str r2, [sp, #0x28] + movs r3, #0x80 + lsls r3, r3, #4 + mov r0, r8 + adds r1, r7, #0 + adds r6, r3, #0 + movs r2, #3 +_0818CFF2: + str r1, [r0] + strh r3, [r0, #4] + adds r0, #8 + adds r1, r1, r6 + subs r2, #1 + cmp r2, #0 + bge _0818CFF2 + ldr r0, _0818D09C + strh r0, [r5] + mov r0, ip + str r0, [r5, #4] + mov r0, sb + bl AssignSpriteAnimsTable + mov r1, r8 + str r1, [r5, #0xc] + ldr r0, _0818D0A0 + str r0, [r5, #0x10] + ldr r0, _0818D0A4 + str r0, [r5, #0x14] + mov r2, sl + str r2, [sp] + mov r0, sb + str r0, [sp, #4] + ldr r0, [sp, #8] + ldr r1, [sp, #0xc] + ldr r2, [sp, #0x10] + ldr r3, [sp, #0x20] + bl LoadPicPaletteByTagOrSlot + ldr r2, [sp, #0x24] + asrs r1, r2, #0x10 + ldr r0, [sp, #0x28] + asrs r2, r0, #0x10 + adds r0, r5, #0 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r6, r2, #0 + ldr r0, _0818D09C + cmp sl, r0 + bne _0818D062 + ldr r0, _0818D0A8 + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r2, [sp, #0x20] + lsls r3, r2, #4 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #5] +_0818D062: + ldr r1, _0818D0AC + ldr r2, [sp, #0x2c] + adds r0, r2, r4 + lsls r0, r0, #2 + adds r2, r0, r1 + str r7, [r2] + adds r1, #4 + adds r0, r0, r1 + mov r7, r8 + str r7, [r0] + mov r0, sl + strh r0, [r2, #8] + strb r6, [r2, #0xa] + movs r0, #1 + strb r0, [r2, #0xb] + adds r0, r6, #0 +_0818D082: + add sp, #0x30 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0818D094: .4byte 0x0203C9B8 +_0818D098: .4byte 0x085D3AC4 +_0818D09C: .4byte 0x0000FFFF +_0818D0A0: .4byte 0x082BF310 +_0818D0A4: .4byte 0x0818CCF5 +_0818D0A8: .4byte 0x020205AC +_0818D0AC: .4byte 0x0203C9D0 + thumb_func_end CreatePicSprite + + thumb_func_start CreatePicSprite_HandleDeoxys +CreatePicSprite_HandleDeoxys: @ 0x0818D0B0 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x18 + ldr r4, [sp, #0x34] + ldr r5, [sp, #0x38] + ldr r6, [sp, #0x3c] + ldr r7, [sp, #0x40] + mov r8, r7 + ldr r7, [sp, #0x44] + mov sb, r7 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov r7, r8 + lsls r7, r7, #0x10 + lsrs r7, r7, #0x10 + mov r8, r7 + mov r7, sb + lsls r7, r7, #0x18 + lsrs r7, r7, #0x18 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + str r4, [sp] + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + str r5, [sp, #4] + str r6, [sp, #8] + mov r4, r8 + str r4, [sp, #0xc] + str r7, [sp, #0x10] + movs r4, #0 + str r4, [sp, #0x14] + bl CreatePicSprite + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + add sp, #0x18 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end CreatePicSprite_HandleDeoxys + + thumb_func_start CreatePicSprite2 +CreatePicSprite2: @ 0x0818D110 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x2c + str r1, [sp, #8] + str r2, [sp, #0xc] + ldr r1, [sp, #0x4c] + ldr r2, [sp, #0x50] + ldr r4, [sp, #0x54] + ldr r5, [sp, #0x58] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 + lsls r3, r3, #0x18 + lsrs r6, r3, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp, #0x10] + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + str r2, [sp, #0x14] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r4, [sp, #0x18] + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + str r5, [sp, #0x1c] + movs r5, #0 + ldr r1, _0818D190 + ldrb r0, [r1, #0xb] + cmp r0, #0 + beq _0818D16C +_0818D154: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #7 + bhi _0818D16C + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #0xb] + cmp r0, #0 + bne _0818D154 +_0818D16C: + cmp r5, #8 + beq _0818D1A8 + movs r0, #0x80 + lsls r0, r0, #6 + bl Alloc + adds r7, r0, #0 + cmp r7, #0 + beq _0818D1A8 + movs r0, #0x80 + ands r0, r6 + cmp r0, #0 + beq _0818D194 + movs r0, #0x7f + ands r6, r0 + movs r0, #3 + mov sb, r0 + b _0818D196 + .align 2, 0 +_0818D190: .4byte 0x0203C9D0 +_0818D194: + mov sb, r6 +_0818D196: + movs r0, #0x20 + bl Alloc + mov r8, r0 + cmp r0, #0 + bne _0818D1B0 + adds r0, r7, #0 + bl Free +_0818D1A8: + ldr r0, _0818D1AC + b _0818D2B4 + .align 2, 0 +_0818D1AC: .4byte 0x0000FFFF +_0818D1B0: + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, sl + ldr r1, [sp, #0xc] + adds r2, r6, #0 + adds r3, r7, #0 + bl DecompressPic + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0818D1A8 + lsls r1, r5, #1 + str r1, [sp, #0x28] + ldr r4, _0818D214 + mov r2, sl + lsls r2, r2, #2 + mov ip, r2 + ldr r0, [sp, #0x10] + lsls r0, r0, #0x10 + str r0, [sp, #0x20] + ldr r1, [sp, #0x14] + lsls r1, r1, #0x10 + str r1, [sp, #0x24] + movs r3, #0x80 + lsls r3, r3, #4 + mov r0, r8 + adds r1, r7, #0 + adds r6, r3, #0 + movs r2, #3 +_0818D1EC: + str r1, [r0] + strh r3, [r0, #4] + adds r0, #8 + adds r1, r1, r6 + subs r2, #1 + cmp r2, #0 + bge _0818D1EC + ldr r0, _0818D218 + strh r0, [r4] + ldr r0, _0818D21C + add r0, ip + ldr r0, [r0] + str r0, [r4, #8] + mov r2, r8 + str r2, [r4, #0xc] + mov r0, sb + cmp r0, #1 + bne _0818D224 + ldr r0, _0818D220 + b _0818D22C + .align 2, 0 +_0818D214: .4byte 0x0203C9B8 +_0818D218: .4byte 0x0000FFFF +_0818D21C: .4byte 0x082DD33C +_0818D220: .4byte 0x082D2F24 +_0818D224: + mov r1, sb + cmp r1, #0 + bne _0818D23C + ldr r0, _0818D234 +_0818D22C: + str r0, [r4, #0x10] + ldr r0, _0818D238 + str r0, [r4, #4] + b _0818D244 + .align 2, 0 +_0818D234: .4byte 0x082D2EA8 +_0818D238: .4byte 0x085D3ACC +_0818D23C: + ldr r0, _0818D2C4 + str r0, [r4, #4] + ldr r0, _0818D2C8 + str r0, [r4, #0x10] +_0818D244: + ldr r2, _0818D2CC + str r2, [r4, #0x14] + ldr r0, [sp, #0x1c] + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + mov r0, sl + ldr r1, [sp, #8] + ldr r2, [sp, #0xc] + ldr r3, [sp, #0x18] + bl LoadPicPaletteByTagOrSlot + ldr r2, [sp, #0x20] + asrs r1, r2, #0x10 + ldr r0, [sp, #0x24] + asrs r2, r0, #0x10 + adds r0, r4, #0 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r6, r2, #0 + ldr r0, _0818D2D0 + ldr r1, [sp, #0x1c] + cmp r1, r0 + bne _0818D292 + ldr r0, _0818D2D4 + lsls r1, r2, #4 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r2, [sp, #0x18] + lsls r3, r2, #4 + ldrb r2, [r1, #5] + movs r0, #0xf + ands r0, r2 + orrs r0, r3 + strb r0, [r1, #5] +_0818D292: + ldr r1, _0818D2D8 + ldr r2, [sp, #0x28] + adds r0, r2, r5 + lsls r0, r0, #2 + adds r2, r0, r1 + str r7, [r2] + adds r1, #4 + adds r0, r0, r1 + mov r1, r8 + str r1, [r0] + mov r0, sp + ldrh r0, [r0, #0x1c] + strh r0, [r2, #8] + strb r6, [r2, #0xa] + movs r0, #1 + strb r0, [r2, #0xb] + adds r0, r6, #0 +_0818D2B4: + add sp, #0x2c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0818D2C4: .4byte 0x085D3AC4 +_0818D2C8: .4byte 0x082BF310 +_0818D2CC: .4byte 0x0818CCF5 +_0818D2D0: .4byte 0x0000FFFF +_0818D2D4: .4byte 0x020205AC +_0818D2D8: .4byte 0x0203C9D0 + thumb_func_end CreatePicSprite2 + + thumb_func_start FreeAndDestroyPicSpriteInternal +FreeAndDestroyPicSpriteInternal: @ 0x0818D2DC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r2, #0 + ldr r0, _0818D314 + ldrb r1, [r0, #0xa] + adds r3, r0, #0 + cmp r1, r4 + beq _0818D30C + adds r1, r3, #0 +_0818D2F4: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #7 + bhi _0818D30C + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #0xa] + cmp r0, r4 + bne _0818D2F4 +_0818D30C: + cmp r2, #8 + bne _0818D31C + ldr r0, _0818D318 + b _0818D372 + .align 2, 0 +_0818D314: .4byte 0x0203C9D0 +_0818D318: .4byte 0x0000FFFF +_0818D31C: + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r5, r0, r3 + ldr r1, [r5] + mov r8, r1 + adds r1, r3, #4 + adds r0, r0, r1 + ldr r7, [r0] + ldrh r1, [r5, #8] + ldr r0, _0818D37C + lsls r6, r4, #4 + cmp r1, r0 + beq _0818D350 + ldr r1, _0818D380 + adds r0, r6, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #5] + lsrs r0, r0, #4 + bl GetSpritePaletteTagByPaletteNum + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl FreeSpritePaletteByTag +_0818D350: + adds r0, r6, r4 + lsls r0, r0, #2 + ldr r1, _0818D380 + adds r0, r0, r1 + bl DestroySprite + mov r0, r8 + bl Free + adds r0, r7, #0 + bl Free + adds r1, r5, #0 + ldr r0, _0818D384 + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + movs r0, #0 +_0818D372: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0818D37C: .4byte 0x0000FFFF +_0818D380: .4byte 0x020205AC +_0818D384: .4byte 0x085D3AB8 + thumb_func_end FreeAndDestroyPicSpriteInternal + + thumb_func_start sub_0818D388 +sub_0818D388: @ 0x0818D388 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + mov sb, r1 + adds r7, r2, #0 + adds r4, r3, #0 + ldr r1, [sp, #0x20] + ldr r2, [sp, #0x24] + ldr r3, [sp, #0x28] + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r6, r3, #0x18 + adds r0, r2, #0 + movs r1, #7 + bl GetWindowAttribute + adds r3, r0, #0 + movs r0, #0 + str r0, [sp] + adds r0, r5, #0 + adds r1, r7, #0 + adds r2, r4, #0 + bl DecompressPic_HandleDeoxys + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0818D3E4 + str r6, [sp] + adds r0, r5, #0 + mov r1, sb + adds r2, r7, #0 + mov r3, r8 + bl LoadPicPaletteBySlot + movs r0, #0 + b _0818D3E6 +_0818D3E4: + ldr r0, _0818D3F4 +_0818D3E6: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0818D3F4: .4byte 0x0000FFFF + thumb_func_end sub_0818D388 + + thumb_func_start sub_0818D3F8 +sub_0818D3F8: @ 0x0818D3F8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x24 + str r1, [sp, #0x18] + str r2, [sp, #0x1c] + ldr r1, [sp, #0x44] + ldr r2, [sp, #0x48] + ldr r4, [sp, #0x4c] + ldr r5, [sp, #0x50] + ldr r6, [sp, #0x54] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + lsls r3, r3, #0x18 + lsrs r7, r3, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sl, r1 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + mov r8, r2 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r4, [sp, #0x20] + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + movs r0, #0x80 + lsls r0, r0, #6 + bl Alloc + adds r4, r0, #0 + cmp r4, #0 + beq _0818D48E + str r6, [sp] + mov r0, sb + ldr r1, [sp, #0x1c] + adds r2, r7, #0 + adds r3, r4, #0 + bl DecompressPic_HandleDeoxys + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0818D48E + movs r0, #0x40 + str r0, [sp] + str r0, [sp, #4] + mov r1, sl + str r1, [sp, #8] + mov r1, r8 + str r1, [sp, #0xc] + str r0, [sp, #0x10] + str r0, [sp, #0x14] + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + movs r3, #0 + bl BlitBitmapRectToWindow + str r6, [sp] + mov r0, sb + ldr r1, [sp, #0x18] + ldr r2, [sp, #0x1c] + ldr r3, [sp, #0x20] + bl LoadPicPaletteBySlot + adds r0, r4, #0 + bl Free + movs r0, #0 + b _0818D490 +_0818D48E: + ldr r0, _0818D4A0 +_0818D490: + add sp, #0x24 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0818D4A0: .4byte 0x0000FFFF + thumb_func_end sub_0818D3F8 + + thumb_func_start CreateMonPicSprite +CreateMonPicSprite: @ 0x0818D4A4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x18 + ldr r4, [sp, #0x34] + ldr r5, [sp, #0x38] + ldr r6, [sp, #0x3c] + ldr r7, [sp, #0x40] + mov r8, r7 + ldr r7, [sp, #0x44] + mov sb, r7 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + mov r7, r8 + lsls r7, r7, #0x10 + lsrs r7, r7, #0x10 + mov r8, r7 + mov r7, sb + lsls r7, r7, #0x18 + lsrs r7, r7, #0x18 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + str r4, [sp] + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + str r5, [sp, #4] + str r6, [sp, #8] + mov r4, r8 + str r4, [sp, #0xc] + movs r4, #0 + str r4, [sp, #0x10] + str r7, [sp, #0x14] + bl CreatePicSprite + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + add sp, #0x18 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end CreateMonPicSprite + + thumb_func_start CreateMonPicSprite_HandleDeoxys +CreateMonPicSprite_HandleDeoxys: @ 0x0818D504 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x14 + ldr r4, [sp, #0x2c] + ldr r5, [sp, #0x30] + ldr r6, [sp, #0x34] + ldr r7, [sp, #0x38] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r7, r7, #0x10 + lsrs r7, r7, #0x10 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + str r4, [sp] + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + str r5, [sp, #4] + str r6, [sp, #8] + str r7, [sp, #0xc] + movs r4, #0 + str r4, [sp, #0x10] + bl CreateMonPicSprite + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + add sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end CreateMonPicSprite_HandleDeoxys + + thumb_func_start FreeAndDestroyMonPicSprite +FreeAndDestroyMonPicSprite: @ 0x0818D54C + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl FreeAndDestroyPicSpriteInternal + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end FreeAndDestroyMonPicSprite + + thumb_func_start sub_0818D560 +sub_0818D560: @ 0x0818D560 + push {r4, r5, lr} + sub sp, #0xc + ldr r4, [sp, #0x18] + ldr r5, [sp, #0x1c] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + str r4, [sp] + str r5, [sp, #4] + movs r4, #0 + str r4, [sp, #8] + bl sub_0818D388 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + add sp, #0xc + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_0818D560 + + thumb_func_start sub_0818D590 +sub_0818D590: @ 0x0818D590 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x14 + ldr r4, [sp, #0x2c] + ldr r5, [sp, #0x30] + ldr r6, [sp, #0x34] + ldr r7, [sp, #0x38] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r7, r7, #0x18 + lsrs r7, r7, #0x18 + str r4, [sp] + str r5, [sp, #4] + str r6, [sp, #8] + str r7, [sp, #0xc] + movs r4, #0 + str r4, [sp, #0x10] + bl sub_0818D3F8 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + add sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_0818D590 + + thumb_func_start CreateTrainerPicSprite +CreateTrainerPicSprite: @ 0x0818D5D8 + push {r4, r5, lr} + sub sp, #0x14 + adds r5, r1, #0 + ldr r1, [sp, #0x20] + ldr r4, [sp, #0x24] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + str r2, [sp] + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + str r3, [sp, #4] + str r1, [sp, #8] + str r4, [sp, #0xc] + movs r1, #1 + str r1, [sp, #0x10] + movs r1, #0 + movs r2, #0 + adds r3, r5, #0 + bl CreatePicSprite_HandleDeoxys + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + add sp, #0x14 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end CreateTrainerPicSprite + + thumb_func_start FreeAndDestroyTrainerPicSprite +FreeAndDestroyTrainerPicSprite: @ 0x0818D61C + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl FreeAndDestroyPicSpriteInternal + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end FreeAndDestroyTrainerPicSprite + + thumb_func_start sub_0818D630 +sub_0818D630: @ 0x0818D630 + push {r4, lr} + sub sp, #0xc + adds r4, r1, #0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r2, [sp] + str r3, [sp, #4] + movs r1, #1 + str r1, [sp, #8] + movs r1, #0 + movs r2, #0 + adds r3, r4, #0 + bl sub_0818D388 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + add sp, #0xc + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0818D630 + + thumb_func_start sub_0818D664 +sub_0818D664: @ 0x0818D664 + push {r4, r5, lr} + sub sp, #0x14 + adds r5, r1, #0 + ldr r1, [sp, #0x20] + ldr r4, [sp, #0x24] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r2, [sp] + str r3, [sp, #4] + str r1, [sp, #8] + str r4, [sp, #0xc] + movs r1, #1 + str r1, [sp, #0x10] + movs r1, #0 + movs r2, #0 + adds r3, r5, #0 + bl sub_0818D3F8 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + add sp, #0x14 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_0818D664 + + thumb_func_start PlayerGenderToFrontTrainerPicId_Debug +PlayerGenderToFrontTrainerPicId_Debug: @ 0x0818D6A8 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #1 + bne _0818D6CE + cmp r0, #0 + beq _0818D6C8 + ldr r0, _0818D6C4 + adds r0, #0x3f + ldrb r0, [r0] + b _0818D6CE + .align 2, 0 +_0818D6C4: .4byte 0x082EFF00 +_0818D6C8: + ldr r0, _0818D6D4 + adds r0, #0x3c + ldrb r0, [r0] +_0818D6CE: + pop {r1} + bx r1 + .align 2, 0 +_0818D6D4: .4byte 0x082EFF00 + thumb_func_end PlayerGenderToFrontTrainerPicId_Debug + diff --git a/asm/trainer_see.s b/asm/trainer_see.s new file mode 100644 index 0000000..5bfab74 --- /dev/null +++ b/asm/trainer_see.s @@ -0,0 +1,1713 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start CheckForTrainersWantingBattle +CheckForTrainersWantingBattle: @ 0x080B3340 + push {r4, r5, r6, r7, lr} + ldr r0, _080B33CC + movs r1, #0 + strb r1, [r0] + ldr r0, _080B33D0 + strb r1, [r0] + movs r4, #0 + ldr r6, _080B33D4 +_080B3350: + lsls r0, r4, #3 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r1, r0, r6 + ldrb r0, [r1] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _080B3390 + ldrb r0, [r1, #7] + cmp r0, #1 + beq _080B336A + cmp r0, #3 + bne _080B3390 +_080B336A: + adds r0, r4, #0 + bl CheckTrainer + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + beq _080B339A + cmp r0, #0 + beq _080B3390 + ldr r0, _080B33CC + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #1 + bhi _080B33E0 + bl GetMonsStateToDoubles_2 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B339A +_080B3390: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xf + bls _080B3350 +_080B339A: + ldr r0, _080B33CC + ldrb r4, [r0] + adds r5, r0, #0 + cmp r4, #1 + bne _080B33E0 + bl ResetTrainerOpponentIds + ldr r2, _080B33D8 + ldrb r0, [r5] + subs r0, #1 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, #4 + adds r1, r1, r2 + ldr r1, [r1] + bl ConfigureAndSetUpOneTrainerBattle + ldr r0, _080B33DC + strb r4, [r0] + movs r0, #1 + b _080B344C + .align 2, 0 +_080B33CC: .4byte 0x03005E08 +_080B33D0: .4byte 0x0203889C +_080B33D4: .4byte 0x02036FF0 +_080B33D8: .4byte 0x03005DF0 +_080B33DC: .4byte 0x03005E0C +_080B33E0: + ldrb r0, [r5] + cmp r0, #2 + bne _080B3444 + bl ResetTrainerOpponentIds + movs r4, #0 + ldrb r5, [r5] + cmp r4, r5 + bhs _080B341E + ldr r6, _080B3434 + adds r7, r6, #4 + ldr r5, _080B3438 +_080B33F8: + lsls r1, r4, #1 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r0, r1, r6 + ldrb r0, [r0] + adds r1, r1, r7 + ldr r1, [r1] + bl ConfigureTwoTrainersBattle + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + ldr r0, _080B343C + ldrb r0, [r0] + cmp r4, r0 + blo _080B33F8 +_080B341E: + bl SetUpTwoTrainersBattle + ldr r1, _080B3438 + movs r0, #0 + strb r0, [r1] + ldr r1, _080B3440 + movs r0, #1 + strb r0, [r1] + movs r0, #1 + b _080B344C + .align 2, 0 +_080B3434: .4byte 0x03005DF0 +_080B3438: .4byte 0x0203889C +_080B343C: .4byte 0x03005E08 +_080B3440: .4byte 0x03005E0C +_080B3444: + ldr r1, _080B3454 + movs r0, #0 + strb r0, [r1] + movs r0, #0 +_080B344C: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080B3454: .4byte 0x03005E0C + thumb_func_end CheckForTrainersWantingBattle + + thumb_func_start CheckTrainer +CheckTrainer: @ 0x080B3458 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r0, #1 + mov sb, r0 + bl InTrainerHill + cmp r0, #1 + bne _080B3476 + bl GetTrainerHillTrainerScript + b _080B347C +_080B3476: + adds r0, r5, #0 + bl GetEventObjectScriptPointerByEventObjectId +_080B347C: + adds r7, r0, #0 + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B3496 + adds r0, r5, #0 + bl GetBattlePyramidTrainerFlag +_080B348E: + lsls r0, r0, #0x18 +_080B3490: + cmp r0, #0 + beq _080B34AE + b _080B3538 +_080B3496: + bl InTrainerHill + cmp r0, #1 + bne _080B34A6 + adds r0, r5, #0 + bl GetHillTrainerFlag + b _080B348E +_080B34A6: + adds r0, r7, #0 + bl GetTrainerFlagFromScriptPointer + b _080B3490 +_080B34AE: + lsls r4, r5, #3 + adds r0, r4, r5 + lsls r0, r0, #2 + ldr r1, _080B352C + adds r0, r0, r1 + bl GetTrainerApproachDistance + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + mov r8, r4 + cmp r6, #0 + beq _080B3538 + ldrb r0, [r7, #1] + cmp r0, #4 + beq _080B34D4 + cmp r0, #7 + beq _080B34D4 + cmp r0, #6 + bne _080B34E2 +_080B34D4: + bl GetMonsStateToDoubles_2 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B3538 + movs r1, #2 + mov sb, r1 +_080B34E2: + ldr r2, _080B3530 + ldr r4, _080B3534 + ldrb r1, [r4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strb r5, [r0] + ldrb r1, [r4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r2, #4 + adds r0, r0, r1 + str r7, [r0] + ldrb r1, [r4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strb r6, [r0, #1] + mov r1, r8 + adds r0, r1, r5 + lsls r0, r0, #2 + ldr r1, _080B352C + adds r0, r0, r1 + subs r1, r6, #1 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl TrainerApproachPlayer + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + mov r0, sb + b _080B353A + .align 2, 0 +_080B352C: .4byte 0x02036FF0 +_080B3530: .4byte 0x03005DF0 +_080B3534: .4byte 0x03005E08 +_080B3538: + movs r0, #0 +_080B353A: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CheckTrainer + + thumb_func_start GetTrainerApproachDistance +GetTrainerApproachDistance: @ 0x080B3548 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r7, r0, #0 + mov r4, sp + adds r4, #2 + mov r0, sp + adds r1, r4, #0 + bl PlayerGetDestCoords + ldrb r0, [r7, #7] + mov r8, r4 + cmp r0, #1 + bne _080B35A8 + ldr r1, _080B35A0 + ldrb r0, [r7, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1a + subs r0, #4 + adds r0, r0, r1 + ldrb r1, [r7, #0x1d] + mov r2, sp + movs r3, #0 + ldrsh r2, [r2, r3] + movs r5, #0 + ldrsh r3, [r4, r5] + ldr r4, [r0] + adds r0, r7, #0 + bl _call_via_r4 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldrb r2, [r7, #0x18] + lsls r2, r2, #0x1c + lsrs r2, r2, #0x1c + adds r0, r7, #0 + adds r1, r6, #0 + bl CheckPathBetweenTrainerAndPlayer + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _080B35E8 + .align 2, 0 +_080B35A0: .4byte 0x0852B3D8 +_080B35A4: + adds r0, r6, #0 + b _080B35E8 +_080B35A8: + movs r5, #0 +_080B35AA: + ldr r0, _080B35F4 + lsls r4, r5, #2 + adds r4, r4, r0 + ldrb r1, [r7, #0x1d] + mov r0, sp + movs r6, #0 + ldrsh r2, [r0, r6] + mov r0, r8 + movs r6, #0 + ldrsh r3, [r0, r6] + ldr r4, [r4] + adds r0, r7, #0 + bl _call_via_r4 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + bl CheckPathBetweenTrainerAndPlayer + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B35A4 + adds r5, r4, #0 + cmp r5, #3 + bls _080B35AA + movs r0, #0 +_080B35E8: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080B35F4: .4byte 0x0852B3D8 + thumb_func_end GetTrainerApproachDistance + + thumb_func_start GetTrainerApproachDistanceSouth +GetTrainerApproachDistanceSouth: @ 0x080B35F8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + lsls r3, r3, #0x10 + lsrs r5, r3, #0x10 + movs r1, #0x10 + ldrsh r0, [r4, r1] + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + cmp r0, r2 + bne _080B3632 + lsls r0, r5, #0x10 + asrs r2, r0, #0x10 + ldrh r3, [r4, #0x12] + movs r1, #0x12 + ldrsh r0, [r4, r1] + cmp r2, r0 + ble _080B3632 + adds r1, r0, #0 + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + adds r1, r1, r0 + cmp r2, r1 + bgt _080B3632 + subs r0, r5, r3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _080B3634 +_080B3632: + movs r0, #0 +_080B3634: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetTrainerApproachDistanceSouth + + thumb_func_start GetTrainerApproachDistanceNorth +GetTrainerApproachDistanceNorth: @ 0x080B363C + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + lsls r3, r3, #0x10 + lsrs r5, r3, #0x10 + movs r1, #0x10 + ldrsh r0, [r4, r1] + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + cmp r0, r2 + bne _080B3676 + lsls r0, r5, #0x10 + asrs r2, r0, #0x10 + ldrh r3, [r4, #0x12] + movs r1, #0x12 + ldrsh r0, [r4, r1] + cmp r2, r0 + bge _080B3676 + adds r1, r0, #0 + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + subs r1, r1, r0 + cmp r2, r1 + blt _080B3676 + subs r0, r3, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _080B3678 +_080B3676: + movs r0, #0 +_080B3678: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetTrainerApproachDistanceNorth + + thumb_func_start GetTrainerApproachDistanceWest +GetTrainerApproachDistanceWest: @ 0x080B3680 + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r5, r2, #0x10 + movs r1, #0x12 + ldrsh r0, [r4, r1] + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + cmp r0, r3 + bne _080B36BA + lsls r0, r5, #0x10 + asrs r3, r0, #0x10 + ldrh r2, [r4, #0x10] + movs r1, #0x10 + ldrsh r0, [r4, r1] + cmp r3, r0 + bge _080B36BA + adds r1, r0, #0 + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + subs r1, r1, r0 + cmp r3, r1 + blt _080B36BA + subs r0, r2, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _080B36BC +_080B36BA: + movs r0, #0 +_080B36BC: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetTrainerApproachDistanceWest + + thumb_func_start GetTrainerApproachDistanceEast +GetTrainerApproachDistanceEast: @ 0x080B36C4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + lsls r2, r2, #0x10 + lsrs r5, r2, #0x10 + movs r1, #0x12 + ldrsh r0, [r4, r1] + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + cmp r0, r3 + bne _080B36FE + lsls r0, r5, #0x10 + asrs r3, r0, #0x10 + ldrh r2, [r4, #0x10] + movs r1, #0x10 + ldrsh r0, [r4, r1] + cmp r3, r0 + ble _080B36FE + adds r1, r0, #0 + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + adds r1, r1, r0 + cmp r3, r1 + bgt _080B36FE + subs r0, r5, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _080B3700 +_080B36FE: + movs r0, #0 +_080B3700: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetTrainerApproachDistanceEast + + thumb_func_start CheckPathBetweenTrainerAndPlayer +CheckPathBetweenTrainerAndPlayer: @ 0x080B3708 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + adds r6, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sb, r1 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + cmp r1, #0 + beq _080B37AE + ldrh r1, [r6, #0x10] + mov r0, sp + strh r1, [r0] + ldrh r0, [r6, #0x12] + mov r4, sp + adds r4, #2 + strh r0, [r4] + adds r0, r7, #0 + mov r1, sp + adds r2, r4, #0 + bl MoveCoords + movs r5, #0 + mov r8, r4 + mov r4, sb + subs r4, #1 + cmp r5, r4 + bge _080B3780 +_080B3746: + mov r0, sp + movs r2, #0 + ldrsh r1, [r0, r2] + mov r3, r8 + movs r0, #0 + ldrsh r2, [r3, r0] + adds r0, r6, #0 + adds r3, r7, #0 + bl GetCollisionFlagsAtCoords + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _080B376C + movs r0, #2 + rsbs r0, r0, #0 + ands r1, r0 + cmp r1, #0 + bne _080B37AE +_080B376C: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r7, #0 + mov r1, sp + mov r2, r8 + bl MoveCoords + cmp r5, r4 + blt _080B3746 +_080B3780: + ldrb r4, [r6, #0x19] + lsls r5, r4, #0x1c + lsrs r5, r5, #0x1c + lsrs r4, r4, #4 + movs r0, #0 + strb r0, [r6, #0x19] + mov r0, sp + movs r2, #0 + ldrsh r1, [r0, r2] + mov r3, r8 + movs r0, #0 + ldrsh r2, [r3, r0] + adds r0, r6, #0 + adds r3, r7, #0 + bl GetCollisionAtCoords + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + lsls r4, r4, #4 + orrs r5, r4 + strb r5, [r6, #0x19] + cmp r1, #4 + beq _080B37B2 +_080B37AE: + movs r0, #0 + b _080B37B4 +_080B37B2: + mov r0, sb +_080B37B4: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CheckPathBetweenTrainerAndPlayer + + thumb_func_start TrainerApproachPlayer +TrainerApproachPlayer: @ 0x080B37C4 + push {r4, r5, lr} + lsls r5, r1, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _080B3810 + movs r1, #0x50 + bl CreateTask + ldr r4, _080B3814 + ldr r3, _080B3818 + ldrb r2, [r3] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r4 + strb r0, [r1, #8] + ldrb r1, [r3] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r0, [r0, #8] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _080B381C + adds r1, r1, r0 + strh r5, [r1, #0xe] + ldrb r2, [r3] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r0, [r0] + strh r0, [r1, #0x16] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B3810: .4byte 0x080B3871 +_080B3814: .4byte 0x03005DF0 +_080B3818: .4byte 0x03005E08 +_080B381C: .4byte 0x03005B60 + thumb_func_end TrainerApproachPlayer + + thumb_func_start sub_080B3820 +sub_080B3820: @ 0x080B3820 + push {r4, r5, lr} + adds r2, r0, #0 + ldr r0, _080B3834 + ldrb r0, [r0] + cmp r0, #0 + bne _080B383C + ldr r0, _080B3838 + ldrb r5, [r0, #8] + b _080B3840 + .align 2, 0 +_080B3834: .4byte 0x0203889C +_080B3838: .4byte 0x03005DF0 +_080B383C: + ldr r0, _080B3864 + ldrb r5, [r0, #0x14] +_080B3840: + ldr r4, _080B3868 + adds r0, r5, #0 + adds r1, r4, #0 + bl SetTaskFuncWithFollowupFunc + ldr r1, _080B386C + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #1 + strh r1, [r0, #8] + adds r0, r5, #0 + bl _call_via_r4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B3864: .4byte 0x03005DF0 +_080B3868: .4byte 0x080B3871 +_080B386C: .4byte 0x03005B60 + thumb_func_end sub_080B3820 + + thumb_func_start Task_RunTrainerSeeFuncList +Task_RunTrainerSeeFuncList: @ 0x080B3870 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r1, _080B38A0 + adds r4, r0, r1 + movs r0, #0x16 + ldrsh r1, [r4, r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B38A4 + adds r5, r0, r1 + ldrb r0, [r5] + lsls r0, r0, #0x1f + cmp r0, #0 + bne _080B38A8 + adds r0, r6, #0 + bl SwitchTaskToFollowupFunc + b _080B38C4 + .align 2, 0 +_080B38A0: .4byte 0x03005B60 +_080B38A4: .4byte 0x02036FF0 +_080B38A8: + ldr r7, _080B38CC +_080B38AA: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r3, [r0] + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl _call_via_r3 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B38AA +_080B38C4: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080B38CC: .4byte 0x0852B3E8 + thumb_func_end Task_RunTrainerSeeFuncList + + thumb_func_start sub_080B38D0 +sub_080B38D0: @ 0x080B38D0 + movs r0, #0 + bx lr + thumb_func_end sub_080B38D0 + + thumb_func_start TrainerExclamationMark +TrainerExclamationMark: @ 0x080B38D4 + push {r4, r5, lr} + adds r5, r1, #0 + adds r4, r2, #0 + ldr r1, _080B3914 + adds r2, r1, #4 + adds r3, r1, #0 + adds r3, #8 + adds r0, r4, #0 + bl EventObjectGetLocalIdAndMap + movs r0, #0 + bl FieldEffectStart + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_08092CA0 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetHeldMovement + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080B3914: .4byte 0x020388A8 + thumb_func_end TrainerExclamationMark + + thumb_func_start WaitTrainerExclamationMark +WaitTrainerExclamationMark: @ 0x080B3918 + push {r4, r5, lr} + adds r4, r1, #0 + adds r5, r2, #0 + movs r0, #0 + bl FieldEffectActiveListContains + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B392E + movs r0, #0 + b _080B3950 +_080B392E: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + ldrb r0, [r5, #6] + subs r0, #0x39 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _080B3944 + movs r0, #6 + strh r0, [r4, #8] +_080B3944: + ldrb r0, [r5, #6] + cmp r0, #0x3f + bne _080B394E + movs r0, #8 + strh r0, [r4, #8] +_080B394E: + movs r0, #1 +_080B3950: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end WaitTrainerExclamationMark + + thumb_func_start TrainerMoveToPlayer +TrainerMoveToPlayer: @ 0x080B3958 + push {r4, r5, lr} + adds r5, r1, #0 + adds r4, r2, #0 + adds r0, r4, #0 + bl EventObjectIsMovementOverridden + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B3976 + adds r0, r4, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B39AA +_080B3976: + movs r1, #0xe + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _080B399C + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_08092CF8 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetHeldMovement + ldrh r0, [r5, #0xe] + subs r0, #1 + strh r0, [r5, #0xe] + b _080B39AA +_080B399C: + adds r0, r4, #0 + movs r1, #0x3e + bl EventObjectSetHeldMovement + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] +_080B39AA: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TrainerMoveToPlayer + + thumb_func_start PlayerFaceApproachingTrainer +PlayerFaceApproachingTrainer: @ 0x080B39B4 + push {r4, r5, r6, lr} + adds r6, r1, #0 + adds r5, r2, #0 + adds r0, r5, #0 + bl EventObjectIsMovementOverridden + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B39D2 + adds r0, r5, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B3A60 +_080B39D2: + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl GroundEffect_DeepSandTracks + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl SetTrainerMovementType + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl GroundEffect_DeepSandTracks + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + bl TryOverrideTemplateCoordsForEventObject + adds r0, r5, #0 + bl OverrideTemplateCoordsForEventObject + ldr r0, _080B3A68 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B3A6C + adds r4, r0, r1 + adds r0, r4, #0 + bl EventObjectIsMovementOverridden + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B3A2A + adds r0, r4, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B3A60 +_080B3A2A: + bl sub_0808B64C + ldr r0, _080B3A68 + ldrb r0, [r0, #5] + lsls r4, r0, #3 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _080B3A6C + adds r4, r4, r0 + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl GetOppositeDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_08092CA0 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetHeldMovement + ldrh r0, [r6, #8] + adds r0, #1 + strh r0, [r6, #8] +_080B3A60: + movs r0, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080B3A68: .4byte 0x02037230 +_080B3A6C: .4byte 0x02036FF0 + thumb_func_end PlayerFaceApproachingTrainer + + thumb_func_start WaitPlayerFaceApproachingTrainer +WaitPlayerFaceApproachingTrainer: @ 0x080B3A70 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _080B3AAC + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B3AB0 + adds r4, r0, r1 + adds r0, r4, #0 + bl EventObjectIsMovementOverridden + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B3A9C + adds r0, r4, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B3AA2 +_080B3A9C: + adds r0, r5, #0 + bl SwitchTaskToFollowupFunc +_080B3AA2: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080B3AAC: .4byte 0x02037230 +_080B3AB0: .4byte 0x02036FF0 + thumb_func_end WaitPlayerFaceApproachingTrainer + + thumb_func_start RevealDisguisedTrainer +RevealDisguisedTrainer: @ 0x080B3AB4 + push {r4, r5, lr} + adds r5, r1, #0 + adds r4, r2, #0 + adds r0, r4, #0 + bl EventObjectIsMovementOverridden + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B3AD2 + adds r0, r4, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B3AE0 +_080B3AD2: + adds r0, r4, #0 + movs r1, #0x59 + bl EventObjectSetHeldMovement + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] +_080B3AE0: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end RevealDisguisedTrainer + + thumb_func_start WaitRevealDisguisedTrainer +WaitRevealDisguisedTrainer: @ 0x080B3AE8 + push {r4, lr} + adds r4, r1, #0 + adds r0, r2, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B3AFC + movs r0, #3 + strh r0, [r4, #8] +_080B3AFC: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end WaitRevealDisguisedTrainer + + thumb_func_start RevealHiddenTrainer +RevealHiddenTrainer: @ 0x080B3B04 + push {r4, r5, lr} + adds r5, r1, #0 + adds r4, r2, #0 + adds r0, r4, #0 + bl EventObjectIsMovementOverridden + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B3B22 + adds r0, r4, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B3B30 +_080B3B22: + adds r0, r4, #0 + movs r1, #0x3e + bl EventObjectSetHeldMovement + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] +_080B3B30: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end RevealHiddenTrainer + + thumb_func_start PopOutOfAshHiddenTrainer +PopOutOfAshHiddenTrainer: @ 0x080B3B38 + push {r4, r5, lr} + adds r5, r1, #0 + adds r4, r2, #0 + adds r0, r4, #0 + bl EventObjectCheckHeldMovementStatus + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B3B7E + ldr r2, _080B3B88 + movs r1, #0x10 + ldrsh r0, [r4, r1] + str r0, [r2] + movs r1, #0x12 + ldrsh r0, [r4, r1] + str r0, [r2, #4] + ldr r3, _080B3B8C + ldrb r1, [r4, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r0, #0x43 + ldrb r0, [r0] + subs r0, #1 + str r0, [r2, #8] + movs r0, #2 + str r0, [r2, #0xc] + movs r0, #0x31 + bl FieldEffectStart + strh r0, [r5, #0x10] + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] +_080B3B7E: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080B3B88: .4byte 0x020388A8 +_080B3B8C: .4byte 0x020205AC + thumb_func_end PopOutOfAshHiddenTrainer + + thumb_func_start JumpInPlaceHiddenTrainer +JumpInPlaceHiddenTrainer: @ 0x080B3B90 + push {r4, r5, lr} + adds r5, r1, #0 + adds r4, r2, #0 + ldr r2, _080B3C00 + movs r1, #0x10 + ldrsh r0, [r5, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + adds r1, #0x2b + ldrb r0, [r1] + cmp r0, #2 + bne _080B3BF8 + ldrb r1, [r4, #3] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #3] + ldrb r0, [r4] + movs r1, #4 + orrs r0, r1 + strb r0, [r4] + ldrb r1, [r4, #4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r2, [r0, #5] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #8 + orrs r1, r2 + strb r1, [r0, #5] + adds r0, r4, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_08092E2C + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl EventObjectSetHeldMovement + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] +_080B3BF8: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080B3C00: .4byte 0x020205AC + thumb_func_end JumpInPlaceHiddenTrainer + + thumb_func_start WaitRevealHiddenTrainer +WaitRevealHiddenTrainer: @ 0x080B3C04 + push {r4, lr} + adds r4, r1, #0 + movs r0, #0x31 + bl FieldEffectActiveListContains + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B3C18 + movs r0, #3 + strh r0, [r4, #8] +_080B3C18: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end WaitRevealHiddenTrainer + + thumb_func_start sub_080B3C20 +sub_080B3C20: @ 0x080B3C20 + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _080B3CB4 + adds r4, r0, r1 + adds r0, r4, #0 + adds r0, #0xa + mov r1, sp + bl LoadWordFromTwoHalfwords + movs r1, #0x16 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080B3C52 + ldr r0, [sp] + bl EventObjectClearHeldMovement + ldrh r0, [r4, #0x16] + adds r0, #1 + strh r0, [r4, #0x16] +_080B3C52: + ldr r1, _080B3CB8 + movs r2, #8 + ldrsh r0, [r4, r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r2, [sp] + ldr r3, [r0] + adds r0, r5, #0 + adds r1, r4, #0 + bl _call_via_r3 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #3 + bne _080B3CBC + movs r0, #0x31 + bl FieldEffectActiveListContains + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B3CBC + ldr r4, [sp] + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl GroundEffect_DeepSandTracks + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl SetTrainerMovementType + ldr r4, [sp] + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl GroundEffect_DeepSandTracks + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl TryOverrideTemplateCoordsForEventObject + adds r0, r5, #0 + bl DestroyTask + b _080B3CC6 + .align 2, 0 +_080B3CB4: .4byte 0x03005B60 +_080B3CB8: .4byte 0x0852B418 +_080B3CBC: + ldr r2, [sp] + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] +_080B3CC6: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080B3C20 + + thumb_func_start sub_080B3CD0 +sub_080B3CD0: @ 0x080B3CD0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080B3CFC + movs r1, #0 + bl CreateTask + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + ldr r1, _080B3D00 + adds r0, r0, r1 + adds r0, #2 + adds r1, r4, #0 + bl StoreWordInTwoHalfwords + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B3CFC: .4byte 0x080B3C21 +_080B3D00: .4byte 0x03005B68 + thumb_func_end sub_080B3CD0 + + thumb_func_start EndTrainerApproach +EndTrainerApproach: @ 0x080B3D04 + push {lr} + ldr r0, _080B3D10 + bl sub_080B3820 + pop {r0} + bx r0 + .align 2, 0 +_080B3D10: .4byte 0x080B3D15 + thumb_func_end EndTrainerApproach + + thumb_func_start Task_DestroyTrainerApproachTask +Task_DestroyTrainerApproachTask: @ 0x080B3D14 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask + bl EnableBothScriptContexts + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end Task_DestroyTrainerApproachTask + + thumb_func_start TryPrepareSecondApproachingTrainer +TryPrepareSecondApproachingTrainer: @ 0x080B3D28 + push {lr} + ldr r0, _080B3D54 + ldrb r0, [r0] + cmp r0, #2 + bne _080B3D68 + ldr r1, _080B3D58 + ldrb r0, [r1] + cmp r0, #0 + bne _080B3D64 + adds r0, #1 + strb r0, [r1] + ldr r1, _080B3D5C + movs r0, #1 + strh r0, [r1] + bl UnfreezeEventObjects + ldr r0, _080B3D60 + ldrb r0, [r0, #0xc] + bl FreezeEventObjectsExceptOne + b _080B3D6E + .align 2, 0 +_080B3D54: .4byte 0x03005E08 +_080B3D58: .4byte 0x0203889C +_080B3D5C: .4byte 0x02037290 +_080B3D60: .4byte 0x03005DF0 +_080B3D64: + movs r0, #0 + strb r0, [r1] +_080B3D68: + ldr r1, _080B3D74 + movs r0, #0 + strh r0, [r1] +_080B3D6E: + pop {r0} + bx r0 + .align 2, 0 +_080B3D74: .4byte 0x02037290 + thumb_func_end TryPrepareSecondApproachingTrainer + + thumb_func_start FldEff_ExclamationMarkIcon +FldEff_ExclamationMarkIcon: @ 0x080B3D78 + push {lr} + ldr r0, _080B3DA8 + movs r1, #0 + movs r2, #0 + movs r3, #0x53 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x40 + beq _080B3DA0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B3DAC + adds r0, r0, r1 + movs r1, #0 + movs r2, #0 + bl SetIconSpriteData +_080B3DA0: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_080B3DA8: .4byte 0x0852B460 +_080B3DAC: .4byte 0x020205AC + thumb_func_end FldEff_ExclamationMarkIcon + + thumb_func_start FldEff_QuestionMarkIcon +FldEff_QuestionMarkIcon: @ 0x080B3DB0 + push {lr} + ldr r0, _080B3DE0 + movs r1, #0 + movs r2, #0 + movs r3, #0x52 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x40 + beq _080B3DD8 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B3DE4 + adds r0, r0, r1 + movs r1, #0x21 + movs r2, #1 + bl SetIconSpriteData +_080B3DD8: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_080B3DE0: .4byte 0x0852B460 +_080B3DE4: .4byte 0x020205AC + thumb_func_end FldEff_QuestionMarkIcon + + thumb_func_start FldEff_HeartIcon +FldEff_HeartIcon: @ 0x080B3DE8 + push {r4, lr} + ldr r0, _080B3E28 + movs r1, #0 + movs r2, #0 + movs r3, #0x52 + bl CreateSpriteAtEnd + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _080B3E1E + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _080B3E2C + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x2e + movs r2, #0 + bl SetIconSpriteData + ldrb r1, [r4, #5] + movs r0, #0xf + ands r0, r1 + movs r1, #0x20 + orrs r0, r1 + strb r0, [r4, #5] +_080B3E1E: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080B3E28: .4byte 0x0852B478 +_080B3E2C: .4byte 0x020205AC + thumb_func_end FldEff_HeartIcon + + thumb_func_start SetIconSpriteData +SetIconSpriteData: @ 0x080B3E30 + push {r4, lr} + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r4, [r0, #5] + movs r3, #0xd + rsbs r3, r3, #0 + ands r3, r4 + movs r4, #4 + orrs r3, r4 + strb r3, [r0, #5] + movs r3, #0x3e + adds r3, r3, r0 + mov ip, r3 + ldrb r3, [r3] + movs r4, #2 + orrs r3, r4 + mov r4, ip + strb r3, [r4] + ldr r4, _080B3E74 + ldr r3, [r4] + strh r3, [r0, #0x2e] + ldr r3, [r4, #4] + strh r3, [r0, #0x30] + ldr r3, [r4, #8] + strh r3, [r0, #0x32] + ldr r3, _080B3E78 + strh r3, [r0, #0x34] + strh r1, [r0, #0x3c] + adds r1, r2, #0 + bl StartSpriteAnim + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B3E74: .4byte 0x020388A8 +_080B3E78: .4byte 0x0000FFFB + thumb_func_end SetIconSpriteData + + thumb_func_start SpriteCB_TrainerIcons +SpriteCB_TrainerIcons: @ 0x080B3E7C + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + ldrh r0, [r4, #0x2e] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r4, #0x30] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrh r2, [r4, #0x32] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B3EAE + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080B3EBC +_080B3EAE: + ldrh r1, [r4, #0x3c] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl FieldEffectStop + b _080B3F0A +_080B3EBC: + ldr r2, _080B3F00 + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #4] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080B3F04 + adds r1, r1, r0 + ldrh r3, [r4, #0x34] + ldrh r0, [r4, #0x36] + adds r2, r3, r0 + strh r2, [r4, #0x36] + ldrh r0, [r1, #0x20] + strh r0, [r4, #0x20] + ldrh r0, [r1, #0x22] + subs r0, #0x10 + strh r0, [r4, #0x22] + ldrh r0, [r1, #0x24] + strh r0, [r4, #0x24] + ldrh r0, [r1, #0x26] + adds r0, r0, r2 + strh r0, [r4, #0x26] + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + cmp r2, #0 + beq _080B3F08 + adds r0, r3, #1 + strh r0, [r4, #0x34] + b _080B3F0A + .align 2, 0 +_080B3F00: .4byte 0x02036FF0 +_080B3F04: .4byte 0x020205AC +_080B3F08: + strh r2, [r4, #0x34] +_080B3F0A: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SpriteCB_TrainerIcons + + thumb_func_start GetCurrentApproachingTrainerEventObjectId +GetCurrentApproachingTrainerEventObjectId: @ 0x080B3F14 + push {lr} + ldr r0, _080B3F24 + ldrb r0, [r0] + cmp r0, #0 + beq _080B3F2C + ldr r0, _080B3F28 + ldrb r0, [r0, #0xc] + b _080B3F30 + .align 2, 0 +_080B3F24: .4byte 0x0203889C +_080B3F28: .4byte 0x03005DF0 +_080B3F2C: + ldr r0, _080B3F34 + ldrb r0, [r0] +_080B3F30: + pop {r1} + bx r1 + .align 2, 0 +_080B3F34: .4byte 0x03005DF0 + thumb_func_end GetCurrentApproachingTrainerEventObjectId + + thumb_func_start GetChosenApproachingTrainerEventObjectId +GetChosenApproachingTrainerEventObjectId: @ 0x080B3F38 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _080B3F46 + movs r0, #0 + b _080B3F58 +_080B3F46: + cmp r0, #0 + beq _080B3F54 + ldr r0, _080B3F50 + ldrb r0, [r0, #0xc] + b _080B3F58 + .align 2, 0 +_080B3F50: .4byte 0x03005DF0 +_080B3F54: + ldr r0, _080B3F5C + ldrb r0, [r0] +_080B3F58: + pop {r1} + bx r1 + .align 2, 0 +_080B3F5C: .4byte 0x03005DF0 + thumb_func_end GetChosenApproachingTrainerEventObjectId + + thumb_func_start sub_080B3F60 +sub_080B3F60: @ 0x080B3F60 + push {lr} + ldr r0, _080B3FB0 + ldrb r0, [r0] + cmp r0, #1 + bne _080B3FC8 + ldr r2, _080B3FB4 + ldr r0, _080B3FB8 + ldrh r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B3FBC + adds r0, r0, r1 + ldrb r0, [r0, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl GetOppositeDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_08092CA0 + ldr r3, _080B3FC0 + strb r0, [r3] + movs r0, #0xfe + strb r0, [r3, #1] + ldr r0, _080B3FC4 + ldr r0, [r0] + ldrb r1, [r0, #5] + ldrb r2, [r0, #4] + movs r0, #0xff + bl ScriptMovement_StartObjectMovementScript + b _080B3FF6 + .align 2, 0 +_080B3FB0: .4byte 0x03005E0C +_080B3FB4: .4byte 0x03005DF0 +_080B3FB8: .4byte 0x03005DE0 +_080B3FBC: .4byte 0x02036FF0 +_080B3FC0: .4byte 0x03005DE4 +_080B3FC4: .4byte 0x03005AEC +_080B3FC8: + ldr r0, _080B4000 + ldrb r1, [r0, #5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080B4004 + adds r0, r0, r1 + ldrb r0, [r0, #0x18] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + bl sub_08092CA0 + ldr r3, _080B4008 + strb r0, [r3] + movs r0, #0xfe + strb r0, [r3, #1] + ldr r0, _080B400C + ldr r0, [r0] + ldrb r1, [r0, #5] + ldrb r2, [r0, #4] + movs r0, #0xff + bl ScriptMovement_StartObjectMovementScript +_080B3FF6: + movs r0, #0xff + bl sub_0809B720 + pop {r0} + bx r0 + .align 2, 0 +_080B4000: .4byte 0x02037230 +_080B4004: .4byte 0x02036FF0 +_080B4008: .4byte 0x03005DE4 +_080B400C: .4byte 0x03005AEC + thumb_func_end sub_080B3F60 + diff --git a/asm/trig.s b/asm/trig.s new file mode 100644 index 0000000..daa9a23 --- /dev/null +++ b/asm/trig.s @@ -0,0 +1,94 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start Sin +Sin: @ 0x0806EFB8 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldr r2, _0806EFD0 + lsls r0, r0, #0x10 + asrs r0, r0, #0xf + adds r0, r0, r2 + movs r2, #0 + ldrsh r0, [r0, r2] + muls r0, r1, r0 + lsls r0, r0, #8 + asrs r0, r0, #0x10 + bx lr + .align 2, 0 +_0806EFD0: .4byte 0x082FA8CC + thumb_func_end Sin + + thumb_func_start Cos +Cos: @ 0x0806EFD4 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldr r2, _0806EFF0 + lsls r0, r0, #0x10 + asrs r0, r0, #0xf + adds r0, #0x80 + adds r0, r0, r2 + movs r2, #0 + ldrsh r0, [r0, r2] + muls r0, r1, r0 + lsls r0, r0, #8 + asrs r0, r0, #0x10 + bx lr + .align 2, 0 +_0806EFF0: .4byte 0x082FA8CC + thumb_func_end Cos + + thumb_func_start Sin2 +Sin2: @ 0x0806EFF4 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + adds r0, r5, #0 + movs r1, #0xb4 + bl __umodsi3 + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + movs r1, #0xb4 + bl __udivsi3 + movs r1, #1 + ands r0, r1 + ldr r1, _0806F028 + lsls r4, r4, #1 + adds r4, r4, r1 + ldrh r1, [r4] + cmp r0, #0 + bne _0806F02C + lsls r0, r1, #0x10 + b _0806F030 + .align 2, 0 +_0806F028: .4byte 0x082FAB4C +_0806F02C: + lsls r0, r1, #0x10 + rsbs r0, r0, #0 +_0806F030: + asrs r0, r0, #0x10 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end Sin2 + + thumb_func_start Cos2 +Cos2: @ 0x0806F038 + push {lr} + lsls r0, r0, #0x10 + movs r1, #0xb4 + lsls r1, r1, #0xf + adds r0, r0, r1 + lsrs r0, r0, #0x10 + bl Sin2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + pop {r1} + bx r1 + thumb_func_end Cos2 + diff --git a/asm/tv.s b/asm/tv.s new file mode 100644 index 0000000..e01ec98 --- /dev/null +++ b/asm/tv.s @@ -0,0 +1,18086 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ClearTVShowData +ClearTVShowData: @ 0x080ECA80 + push {r4, r5, r6, r7, lr} + movs r3, #0 + ldr r6, _080ECAD0 + movs r5, #0 + ldr r7, _080ECAD4 +_080ECA8A: + ldr r0, [r6] + lsls r1, r3, #3 + adds r1, r1, r3 + lsls r1, r1, #2 + adds r0, r0, r1 + ldr r2, _080ECAD8 + adds r0, r0, r2 + strb r5, [r0] + ldr r0, [r6] + adds r0, r0, r1 + adds r2, #1 + adds r0, r0, r2 + strb r5, [r0] + movs r2, #0 + adds r4, r3, #1 + adds r3, r1, #0 +_080ECAAA: + ldr r0, [r6] + adds r1, r2, r3 + adds r0, r0, r7 + adds r0, r0, r1 + strb r5, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x21 + bls _080ECAAA + lsls r0, r4, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0x18 + bls _080ECA8A + bl ClearPokemonNews + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080ECAD0: .4byte 0x03005AEC +_080ECAD4: .4byte 0x000027CE +_080ECAD8: .4byte 0x000027CC + thumb_func_end ClearTVShowData + + thumb_func_start special_0x44 +special_0x44: @ 0x080ECADC + push {r4, r5, r6, r7, lr} + movs r4, #5 + ldr r1, _080ECB50 + ldr r0, [r1] + movs r2, #0xa2 + lsls r2, r2, #6 + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080ECB10 + adds r3, r1, #0 + subs r2, #0xb4 +_080ECAF4: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x17 + bhi _080ECB10 + ldr r0, [r3] + lsls r1, r4, #3 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r0, r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _080ECAF4 +_080ECB10: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r4, #0 + bl __modsi3 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r7, r5, #0 + ldr r6, _080ECB50 +_080ECB26: + ldr r1, [r6] + lsls r0, r5, #3 + adds r0, r0, r5 + lsls r4, r0, #2 + adds r1, r1, r4 + ldr r0, _080ECB54 + adds r1, r1, r0 + ldrb r0, [r1] + bl GetTVChannelByShowType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + beq _080ECB5C + ldr r0, [r6] + adds r0, r0, r4 + ldr r1, _080ECB58 + adds r0, r0, r1 + ldrb r0, [r0] + b _080ECB6C + .align 2, 0 +_080ECB50: .4byte 0x03005AEC +_080ECB54: .4byte 0x000027CC +_080ECB58: .4byte 0x000027CD +_080ECB5C: + ldr r2, _080ECB74 + adds r0, r4, r2 + ldr r1, [r6] + adds r1, r1, r0 + ldrh r0, [r1, #0x16] + cmp r0, #0 + bne _080ECB78 + ldrb r0, [r1, #1] +_080ECB6C: + cmp r0, #1 + bne _080ECB78 + adds r0, r5, #0 + b _080ECB8C + .align 2, 0 +_080ECB74: .4byte 0x000027CC +_080ECB78: + cmp r5, #0 + bne _080ECB80 + movs r5, #0x17 + b _080ECB86 +_080ECB80: + subs r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_080ECB86: + cmp r5, r7 + bne _080ECB26 + movs r0, #0xff +_080ECB8C: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end special_0x44 + + thumb_func_start FindAnyTVShowOnTheAir +FindAnyTVShowOnTheAir: @ 0x080ECB94 + push {lr} + bl special_0x44 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xff + bne _080ECBA6 + movs r0, #0xff + b _080ECBDE +_080ECBA6: + ldr r0, _080ECBD0 + ldr r2, [r0] + ldr r3, _080ECBD4 + adds r0, r2, r3 + ldrh r0, [r0] + cmp r0, #0 + beq _080ECBDC + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r2, r0 + ldr r2, _080ECBD8 + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #0x29 + bne _080ECBDC + bl FindFirstActiveTVShowThatIsNotAMassOutbreak + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _080ECBDE + .align 2, 0 +_080ECBD0: .4byte 0x03005AEC +_080ECBD4: .4byte 0x00002B90 +_080ECBD8: .4byte 0x000027CC +_080ECBDC: + adds r0, r1, #0 +_080ECBDE: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end FindAnyTVShowOnTheAir + + thumb_func_start UpdateTVScreensOnMap +UpdateTVScreensOnMap: @ 0x080ECBE4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r0, _080ECC18 + bl FlagSet + bl CheckForBigMovieOrEmergencyNewsOnTV + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080ECC0A + cmp r0, #2 + beq _080ECC5E + ldr r0, _080ECC1C + ldr r0, [r0] + ldrh r0, [r0, #4] + cmp r0, #0xd + bne _080ECC20 +_080ECC0A: + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #3 + bl SetTVMetatilesOnMap + b _080ECC5E + .align 2, 0 +_080ECC18: .4byte 0x00000891 +_080ECC1C: .4byte 0x03005AEC +_080ECC20: + ldr r0, _080ECC64 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080ECC5E + bl FindAnyTVShowOnTheAir + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080ECC4E + bl FindAnyTVNewsOnTheAir + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080ECC4E + bl IsTVShowInSearchOfTrainersAiring + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080ECC5E +_080ECC4E: + ldr r0, _080ECC68 + bl FlagClear + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #3 + bl SetTVMetatilesOnMap +_080ECC5E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080ECC64: .4byte 0x00000892 +_080ECC68: .4byte 0x00000891 + thumb_func_end UpdateTVScreensOnMap + + thumb_func_start SetTVMetatilesOnMap +SetTVMetatilesOnMap: @ 0x080ECC6C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sb, r0 + mov sl, r1 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + movs r5, #0 + cmp r5, sl + bge _080ECCC0 + movs r1, #0xc0 + lsls r1, r1, #4 + adds r0, r1, #0 + mov r8, r2 + mov r1, r8 + orrs r1, r0 + mov r8, r1 +_080ECC92: + movs r4, #0 + adds r7, r5, #1 + cmp r4, sb + bge _080ECCBA + mov r0, r8 + lsls r6, r0, #0x10 +_080ECC9E: + adds r0, r4, #0 + adds r1, r5, #0 + bl MapGridGetMetatileBehaviorAt + cmp r0, #0x86 + bne _080ECCB4 + adds r0, r4, #0 + adds r1, r5, #0 + lsrs r2, r6, #0x10 + bl MapGridSetMetatileIdAt +_080ECCB4: + adds r4, #1 + cmp r4, sb + blt _080ECC9E +_080ECCBA: + adds r5, r7, #0 + cmp r5, sl + blt _080ECC92 +_080ECCC0: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetTVMetatilesOnMap + + thumb_func_start TurnOffTVScreen +TurnOffTVScreen: @ 0x080ECCD0 + push {lr} + ldr r1, _080ECCE8 + ldr r0, [r1] + ldr r1, [r1, #4] + movs r2, #2 + bl SetTVMetatilesOnMap + bl DrawWholeMapView + pop {r0} + bx r0 + .align 2, 0 +_080ECCE8: .4byte 0x03005B20 + thumb_func_end TurnOffTVScreen + + thumb_func_start TurnOnTVScreen +TurnOnTVScreen: @ 0x080ECCEC + push {lr} + ldr r1, _080ECD04 + ldr r0, [r1] + ldr r1, [r1, #4] + movs r2, #3 + bl SetTVMetatilesOnMap + bl DrawWholeMapView + pop {r0} + bx r0 + .align 2, 0 +_080ECD04: .4byte 0x03005B20 + thumb_func_end TurnOnTVScreen + + thumb_func_start special_0x45 +special_0x45: @ 0x080ECD08 + ldr r0, _080ECD20 + ldr r1, [r0] + ldr r0, _080ECD24 + ldrh r2, [r0] + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r1, r1, r0 + ldr r0, _080ECD28 + adds r1, r1, r0 + ldrb r0, [r1] + bx lr + .align 2, 0 +_080ECD20: .4byte 0x03005AEC +_080ECD24: .4byte 0x02037280 +_080ECD28: .4byte 0x000027CC + thumb_func_end special_0x45 + + thumb_func_start FindFirstActiveTVShowThatIsNotAMassOutbreak +FindFirstActiveTVShowThatIsNotAMassOutbreak: @ 0x080ECD2C + push {r4, lr} + movs r2, #0 + ldr r0, _080ECD58 + ldr r3, [r0] +_080ECD34: + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r1, r3, r0 + ldr r4, _080ECD5C + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, #0 + beq _080ECD60 + cmp r0, #0x29 + beq _080ECD60 + adds r4, #1 + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, #1 + bne _080ECD60 + adds r0, r2, #0 + b _080ECD6C + .align 2, 0 +_080ECD58: .4byte 0x03005AEC +_080ECD5C: .4byte 0x000027CC +_080ECD60: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x17 + bls _080ECD34 + movs r0, #0xff +_080ECD6C: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end FindFirstActiveTVShowThatIsNotAMassOutbreak + + thumb_func_start special_0x4a +special_0x4a: @ 0x080ECD74 + push {lr} + ldr r3, _080ECDA4 + ldr r2, _080ECDA8 + ldrh r1, [r2] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080ECDAC + adds r0, r0, r1 + ldr r3, [r3] + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, #0x29 + bne _080ECDB4 + ldr r1, _080ECDB0 + adds r0, r3, r1 + ldrh r0, [r0] + cmp r0, #0 + beq _080ECDB4 + bl FindFirstActiveTVShowThatIsNotAMassOutbreak + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _080ECDB6 + .align 2, 0 +_080ECDA4: .4byte 0x03005AEC +_080ECDA8: .4byte 0x02037280 +_080ECDAC: .4byte 0x000027CC +_080ECDB0: .4byte 0x00002B90 +_080ECDB4: + ldrb r0, [r2] +_080ECDB6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end special_0x4a + + thumb_func_start ResetGabbyAndTy +ResetGabbyAndTy: @ 0x080ECDBC + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + ldr r3, _080ECEA0 + ldr r2, [r3] + ldr r1, _080ECEA4 + adds r0, r2, r1 + movs r4, #0 + mov sl, r4 + movs r1, #0 + strh r1, [r0] + ldr r4, _080ECEA8 + adds r0, r2, r4 + strh r1, [r0] + adds r4, #2 + adds r0, r2, r4 + strh r1, [r0] + ldr r0, _080ECEAC + adds r1, r2, r0 + ldr r0, _080ECEB0 + strh r0, [r1] + adds r4, #6 + adds r2, r2, r4 + ldrb r1, [r2] + movs r0, #2 + rsbs r0, r0, #0 + mov sb, r0 + ands r0, r1 + strb r0, [r2] + ldr r1, [r3] + adds r1, r1, r4 + ldrb r2, [r1] + movs r0, #3 + rsbs r0, r0, #0 + mov r8, r0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r3] + adds r1, r1, r4 + ldrb r2, [r1] + movs r6, #5 + rsbs r6, r6, #0 + adds r0, r6, #0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r3] + adds r1, r1, r4 + ldrb r2, [r1] + movs r5, #9 + rsbs r5, r5, #0 + adds r0, r5, #0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r3] + adds r1, r1, r4 + ldrb r2, [r1] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r3] + adds r1, r1, r4 + ldrb r2, [r1] + movs r0, #0x1f + ands r0, r2 + strb r0, [r1] + ldr r0, [r3] + ldr r2, _080ECEB4 + adds r0, r0, r2 + ldrb r1, [r0] + mov r4, sb + ands r4, r1 + strb r4, [r0] + ldr r0, [r3] + adds r0, r0, r2 + ldrb r1, [r0] + mov r4, r8 + ands r4, r1 + strb r4, [r0] + ldr r0, [r3] + adds r0, r0, r2 + ldrb r1, [r0] + ands r6, r1 + strb r6, [r0] + ldr r0, [r3] + adds r0, r0, r2 + ldrb r1, [r0] + ands r5, r1 + strb r5, [r0] + ldr r1, [r3] + adds r1, r1, r2 + ldrb r2, [r1] + movs r0, #0xf + ands r0, r2 + strb r0, [r1] + ldr r0, [r3] + ldr r1, _080ECEB8 + adds r0, r0, r1 + mov r4, sl + strb r4, [r0] + ldr r0, [r3] + adds r1, #1 + adds r0, r0, r1 + strb r4, [r0] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080ECEA0: .4byte 0x03005AEC +_080ECEA4: .4byte 0x00002BA4 +_080ECEA8: .4byte 0x00002BA6 +_080ECEAC: .4byte 0x00002BAA +_080ECEB0: .4byte 0x0000FFFF +_080ECEB4: .4byte 0x00002BAF +_080ECEB8: .4byte 0x00002BAC + thumb_func_end ResetGabbyAndTy + + thumb_func_start GabbyAndTyBeforeInterview +GabbyAndTyBeforeInterview: @ 0x080ECEBC + push {r4, lr} + ldr r3, _080ECF24 + ldr r2, [r3] + ldr r0, _080ECF28 + mov ip, r0 + ldrh r1, [r0, #6] + ldr r4, _080ECF2C + adds r0, r2, r4 + strh r1, [r0] + mov r0, ip + ldrh r1, [r0, #0x26] + adds r4, #2 + adds r0, r2, r4 + strh r1, [r0] + mov r0, ip + ldrh r1, [r0, #0x22] + adds r4, #2 + adds r0, r2, r4 + strh r1, [r0] + ldr r0, _080ECF30 + adds r2, r2, r0 + ldrb r1, [r2] + adds r0, r1, #0 + adds r4, r3, #0 + cmp r0, #0xff + beq _080ECEF4 + adds r0, r1, #1 + strb r0, [r2] +_080ECEF4: + ldr r2, [r4] + mov r0, ip + ldrb r1, [r0, #5] + lsls r1, r1, #0x1f + ldr r0, _080ECF34 + adds r2, r2, r0 + lsrs r1, r1, #0x1f + ldrb r3, [r2] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + mov r1, ip + ldrb r0, [r1] + cmp r0, #0 + beq _080ECF38 + ldr r0, [r4] + ldr r1, _080ECF34 + adds r0, r0, r1 + ldrb r1, [r0] + movs r2, #2 + orrs r1, r2 + b _080ECF46 + .align 2, 0 +_080ECF24: .4byte 0x03005AEC +_080ECF28: .4byte 0x03005A70 +_080ECF2C: .4byte 0x00002BA4 +_080ECF30: .4byte 0x00002BAD +_080ECF34: .4byte 0x00002BAE +_080ECF38: + ldr r0, [r4] + ldr r1, _080ECF60 + adds r0, r0, r1 + ldrb r2, [r0] + movs r1, #3 + rsbs r1, r1, #0 + ands r1, r2 +_080ECF46: + strb r1, [r0] + mov r1, ip + ldrb r0, [r1, #3] + cmp r0, #0 + beq _080ECF64 + ldr r0, [r4] + ldr r1, _080ECF60 + adds r0, r0, r1 + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + b _080ECF72 + .align 2, 0 +_080ECF60: .4byte 0x00002BAE +_080ECF64: + ldr r0, [r4] + ldr r1, _080ECFAC + adds r0, r0, r1 + ldrb r2, [r0] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r2 +_080ECF72: + strb r1, [r0] + mov r0, ip + ldrb r1, [r0, #5] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _080ECFB0 + movs r1, #0 + mov r0, ip + adds r0, #0x36 + ldrb r0, [r0] + cmp r0, #0 + bne _080ECFB0 +_080ECF8C: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xa + bhi _080ECFBE + mov r0, ip + adds r0, #0x36 + adds r0, r1, r0 + ldrb r0, [r0] + cmp r0, #0 + beq _080ECF8C + ldr r0, [r4] + ldr r4, _080ECFAC + adds r0, r0, r4 + b _080ECFB6 + .align 2, 0 +_080ECFAC: .4byte 0x00002BAE +_080ECFB0: + ldr r0, [r4] + ldr r1, _080ECFDC + adds r0, r0, r1 +_080ECFB6: + ldrb r1, [r0] + movs r2, #8 + orrs r1, r2 + strb r1, [r0] +_080ECFBE: + bl TakeTVShowInSearchOfTrainersOffTheAir + ldr r0, _080ECFE0 + ldr r0, [r0] + ldr r4, _080ECFE4 + adds r0, r0, r4 + ldrh r0, [r0] + cmp r0, #0 + bne _080ECFD6 + movs r0, #1 + bl FlagSet +_080ECFD6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ECFDC: .4byte 0x00002BAE +_080ECFE0: .4byte 0x03005AEC +_080ECFE4: .4byte 0x00002BA8 + thumb_func_end GabbyAndTyBeforeInterview + + thumb_func_start GabbyAndTyAfterInterview +GabbyAndTyAfterInterview: @ 0x080ECFE8 + push {r4, r5, r6, lr} + ldr r5, _080ED074 + ldr r2, [r5] + ldr r6, _080ED078 + adds r0, r2, r6 + ldrb r1, [r0] + lsls r1, r1, #0x1f + ldr r4, _080ED07C + adds r2, r2, r4 + lsrs r1, r1, #0x1f + ldrb r3, [r2] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldr r2, [r5] + adds r0, r2, r6 + ldrb r0, [r0] + adds r2, r2, r4 + movs r1, #2 + ands r1, r0 + ldrb r3, [r2] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldr r2, [r5] + adds r0, r2, r6 + ldrb r0, [r0] + adds r2, r2, r4 + movs r1, #4 + ands r1, r0 + ldrb r3, [r2] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldr r2, [r5] + adds r0, r2, r6 + ldrb r0, [r0] + adds r2, r2, r4 + movs r1, #8 + ands r1, r0 + ldrb r3, [r2] + movs r0, #9 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldr r1, [r5] + adds r1, r1, r6 + ldrb r0, [r1] + movs r2, #0x10 + orrs r0, r2 + strb r0, [r1] + ldr r0, [r5] + ldr r1, _080ED080 + ldrb r1, [r1, #0x14] + ldr r2, _080ED084 + adds r0, r0, r2 + strb r1, [r0] + movs r0, #6 + bl IncrementGameStat + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080ED074: .4byte 0x03005AEC +_080ED078: .4byte 0x00002BAE +_080ED07C: .4byte 0x00002BAF +_080ED080: .4byte 0x02036FB8 +_080ED084: .4byte 0x00002BAC + thumb_func_end GabbyAndTyAfterInterview + + thumb_func_start TakeTVShowInSearchOfTrainersOffTheAir +TakeTVShowInSearchOfTrainersOffTheAir: @ 0x080ED088 + ldr r0, _080ED09C + ldr r1, [r0] + ldr r0, _080ED0A0 + adds r1, r1, r0 + ldrb r2, [r1] + movs r0, #0x11 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + bx lr + .align 2, 0 +_080ED09C: .4byte 0x03005AEC +_080ED0A0: .4byte 0x00002BAE + thumb_func_end TakeTVShowInSearchOfTrainersOffTheAir + + thumb_func_start GabbyAndTyGetBattleNum +GabbyAndTyGetBattleNum: @ 0x080ED0A4 + push {lr} + ldr r0, _080ED0C8 + ldr r0, [r0] + ldr r2, _080ED0CC + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, #5 + bls _080ED0C2 + ldrb r0, [r1] + movs r1, #3 + bl __umodsi3 + adds r0, #6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_080ED0C2: + pop {r1} + bx r1 + .align 2, 0 +_080ED0C8: .4byte 0x03005AEC +_080ED0CC: .4byte 0x00002BAD + thumb_func_end GabbyAndTyGetBattleNum + + thumb_func_start IsTVShowInSearchOfTrainersAiring +IsTVShowInSearchOfTrainersAiring: @ 0x080ED0D0 + ldr r0, _080ED0E0 + ldr r0, [r0] + ldr r1, _080ED0E4 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1f + bx lr + .align 2, 0 +_080ED0E0: .4byte 0x03005AEC +_080ED0E4: .4byte 0x00002BAE + thumb_func_end IsTVShowInSearchOfTrainersAiring + + thumb_func_start GabbyAndTyGetLastQuote +GabbyAndTyGetLastQuote: @ 0x080ED0E8 + push {r4, r5, lr} + ldr r5, _080ED114 + ldr r0, [r5] + ldr r2, _080ED118 + adds r1, r0, r2 + ldrh r0, [r1] + ldr r4, _080ED11C + cmp r0, r4 + beq _080ED124 + ldr r0, _080ED120 + ldrh r1, [r1] + bl CopyEasyChatWord + ldr r1, [r5] + ldr r0, _080ED118 + adds r1, r1, r0 + ldrh r2, [r1] + adds r0, r4, #0 + orrs r0, r2 + strh r0, [r1] + movs r0, #1 + b _080ED126 + .align 2, 0 +_080ED114: .4byte 0x03005AEC +_080ED118: .4byte 0x00002BAA +_080ED11C: .4byte 0x0000FFFF +_080ED120: .4byte 0x02021C40 +_080ED124: + movs r0, #0 +_080ED126: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end GabbyAndTyGetLastQuote + + thumb_func_start GabbyAndTyGetLastBattleTrivia +GabbyAndTyGetLastBattleTrivia: @ 0x080ED12C + push {lr} + ldr r0, _080ED144 + ldr r0, [r0] + ldr r1, _080ED148 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080ED14C + movs r0, #1 + b _080ED172 + .align 2, 0 +_080ED144: .4byte 0x03005AEC +_080ED148: .4byte 0x00002BAF +_080ED14C: + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080ED158 + movs r0, #2 + b _080ED172 +_080ED158: + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080ED164 + movs r0, #3 + b _080ED172 +_080ED164: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _080ED170 + movs r0, #0 + b _080ED172 +_080ED170: + movs r0, #4 +_080ED172: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GabbyAndTyGetLastBattleTrivia + + thumb_func_start GabbyAndTySetScriptVarsToEventObjectLocalIds +GabbyAndTySetScriptVarsToEventObjectLocalIds: @ 0x080ED178 + push {lr} + bl GabbyAndTyGetBattleNum + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, #1 + cmp r0, #7 + bhi _080ED250 + lsls r0, r0, #2 + ldr r1, _080ED194 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ED194: .4byte 0x080ED198 +_080ED198: @ jump table + .4byte _080ED1B8 @ case 0 + .4byte _080ED1CC @ case 1 + .4byte _080ED1E0 @ case 2 + .4byte _080ED1F4 @ case 3 + .4byte _080ED208 @ case 4 + .4byte _080ED21C @ case 5 + .4byte _080ED230 @ case 6 + .4byte _080ED244 @ case 7 +_080ED1B8: + ldr r1, _080ED1C4 + movs r0, #0xe + strh r0, [r1] + ldr r1, _080ED1C8 + movs r0, #0xd + b _080ED24E + .align 2, 0 +_080ED1C4: .4byte 0x02037280 +_080ED1C8: .4byte 0x02037282 +_080ED1CC: + ldr r1, _080ED1D8 + movs r0, #5 + strh r0, [r1] + ldr r1, _080ED1DC + movs r0, #6 + b _080ED24E + .align 2, 0 +_080ED1D8: .4byte 0x02037280 +_080ED1DC: .4byte 0x02037282 +_080ED1E0: + ldr r1, _080ED1EC + movs r0, #0x12 + strh r0, [r1] + ldr r1, _080ED1F0 + movs r0, #0x11 + b _080ED24E + .align 2, 0 +_080ED1EC: .4byte 0x02037280 +_080ED1F0: .4byte 0x02037282 +_080ED1F4: + ldr r1, _080ED200 + movs r0, #0x15 + strh r0, [r1] + ldr r1, _080ED204 + movs r0, #0x16 + b _080ED24E + .align 2, 0 +_080ED200: .4byte 0x02037280 +_080ED204: .4byte 0x02037282 +_080ED208: + ldr r1, _080ED214 + movs r0, #8 + strh r0, [r1] + ldr r1, _080ED218 + movs r0, #9 + b _080ED24E + .align 2, 0 +_080ED214: .4byte 0x02037280 +_080ED218: .4byte 0x02037282 +_080ED21C: + ldr r1, _080ED228 + movs r0, #0x13 + strh r0, [r1] + ldr r1, _080ED22C + movs r0, #0x14 + b _080ED24E + .align 2, 0 +_080ED228: .4byte 0x02037280 +_080ED22C: .4byte 0x02037282 +_080ED230: + ldr r1, _080ED23C + movs r0, #0x17 + strh r0, [r1] + ldr r1, _080ED240 + movs r0, #0x18 + b _080ED24E + .align 2, 0 +_080ED23C: .4byte 0x02037280 +_080ED240: .4byte 0x02037282 +_080ED244: + ldr r1, _080ED254 + movs r0, #0xa + strh r0, [r1] + ldr r1, _080ED258 + movs r0, #0xb +_080ED24E: + strh r0, [r1] +_080ED250: + pop {r0} + bx r0 + .align 2, 0 +_080ED254: .4byte 0x02037280 +_080ED258: .4byte 0x02037282 + thumb_func_end GabbyAndTySetScriptVarsToEventObjectLocalIds + + thumb_func_start InterviewAfter +InterviewAfter: @ 0x080ED25C + push {lr} + ldr r0, _080ED274 + ldrh r0, [r0] + subs r0, #1 + cmp r0, #7 + bhi _080ED2C4 + lsls r0, r0, #2 + ldr r1, _080ED278 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ED274: .4byte 0x02037282 +_080ED278: .4byte 0x080ED27C +_080ED27C: @ jump table + .4byte _080ED29C @ case 0 + .4byte _080ED2A2 @ case 1 + .4byte _080ED2A8 @ case 2 + .4byte _080ED2AE @ case 3 + .4byte _080ED2C4 @ case 4 + .4byte _080ED2B4 @ case 5 + .4byte _080ED2BA @ case 6 + .4byte _080ED2C0 @ case 7 +_080ED29C: + bl InterviewAfter_FanClubLetter + b _080ED2C4 +_080ED2A2: + bl InterviewAfter_RecentHappenings + b _080ED2C4 +_080ED2A8: + bl InterviewAfter_PkmnFanClubOpinions + b _080ED2C4 +_080ED2AE: + bl InterviewAfter_DummyShow4 + b _080ED2C4 +_080ED2B4: + bl InterviewAfter_BravoTrainerPokemonProfile + b _080ED2C4 +_080ED2BA: + bl InterviewAfter_BravoTrainerBattleTowerProfile + b _080ED2C4 +_080ED2C0: + bl InterviewAfter_ContestLiveUpdates +_080ED2C4: + pop {r0} + bx r0 + thumb_func_end InterviewAfter + + thumb_func_start PutPokemonTodayCaughtOnAir +PutPokemonTodayCaughtOnAir: @ 0x080ED2C8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r4, #0 + bl sub_080EF88C + bl sub_080EE238 + ldr r5, _080ED2E8 + ldrh r0, [r5, #0x28] + cmp r0, #0 + bne _080ED2EC + bl PutPokemonTodayFailedOnTheAir + b _080ED41E + .align 2, 0 +_080ED2E8: .4byte 0x03005A70 +_080ED2EC: + bl UpdateWorldOfMastersAndPutItOnTheAir + ldr r0, _080ED3A8 + bl TV_BernoulliTrial + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080ED2FE + b _080ED41E +_080ED2FE: + ldrh r1, [r5, #0x28] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r1, _080ED3AC + adds r0, r0, r1 + adds r1, r5, #0 + adds r1, #0x2a + bl StringCompare + cmp r0, #0 + bne _080ED318 + b _080ED41E +_080ED318: + ldr r0, _080ED3B0 + ldr r0, [r0] + ldr r1, _080ED3B4 + adds r0, r0, r1 + bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray + ldr r1, _080ED3B8 + strb r0, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080ED41E + movs r0, #0x15 + movs r1, #0 + bl HasMixableShowAlreadyBeenSpawnedWithPlayerID + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080ED41E + movs r2, #0 + adds r7, r5, #0 + adds r1, r7, #0 + adds r1, #0x36 +_080ED34C: + adds r0, r2, r1 + ldrb r0, [r0] + adds r0, r4, r0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xa + bls _080ED34C + cmp r4, #0 + bne _080ED36E + ldrb r1, [r7, #5] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080ED41E +_080ED36E: + movs r4, #0 + ldr r2, _080ED3B0 + ldr r0, _080ED3B8 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080ED3B4 + adds r0, r0, r1 + ldr r1, [r2] + adds r5, r1, r0 + movs r0, #0x15 + strb r0, [r5] + strb r4, [r5, #1] + ldrb r1, [r7, #5] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080ED3C0 + movs r4, #1 + movs r0, #1 + adds r3, r5, #0 + adds r3, #0x13 + ldr r1, _080ED3BC + mov r8, r1 + adds r6, r5, #4 + b _080ED3F2 + .align 2, 0 +_080ED3A8: .4byte 0x0000FFFF +_080ED3AC: .4byte 0x082EA31C +_080ED3B0: .4byte 0x03005AEC +_080ED3B4: .4byte 0x000027CC +_080ED3B8: .4byte 0x03005E20 +_080ED3BC: .4byte 0x03005AF0 +_080ED3C0: + movs r2, #0 + ldr r0, _080ED428 + mov ip, r0 + adds r3, r5, #0 + adds r3, #0x13 + ldr r1, _080ED42C + mov r8, r1 + adds r6, r5, #4 + adds r1, r7, #0 + adds r1, #0x36 +_080ED3D4: + adds r0, r2, r1 + ldrb r0, [r0] + adds r0, r4, r0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xa + bls _080ED3D4 + cmp r4, #0xff + bls _080ED3EE + movs r4, #0xff +_080ED3EE: + mov r1, ip + ldrh r0, [r1] +_080ED3F2: + strb r4, [r5, #0x12] + strb r0, [r5, #0xf] + mov r0, r8 + ldr r1, [r0] + adds r0, r3, #0 + bl StringCopy + ldr r4, _080ED430 + 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 tv_store_id_3x + ldr r0, _080ED434 + ldrb r0, [r0] + strb r0, [r5, #2] + strb r0, [r5, #3] +_080ED41E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080ED428: .4byte 0x02023EAC +_080ED42C: .4byte 0x03005AF0 +_080ED430: .4byte 0x03005A9A +_080ED434: .4byte 0x0829BDA5 + thumb_func_end PutPokemonTodayCaughtOnAir + + thumb_func_start UpdateWorldOfMastersAndPutItOnTheAir +UpdateWorldOfMastersAndPutItOnTheAir: @ 0x080ED438 + push {r4, lr} + ldr r0, _080ED47C + ldr r1, [r0] + ldr r0, _080ED480 + adds r4, r1, r0 + ldrb r0, [r4] + cmp r0, #0x19 + beq _080ED45E + ldr r2, _080ED484 + adds r0, r1, r2 + movs r1, #0x18 + bl DeleteTVShowInArrayByIdx + movs r0, #5 + bl GetGameStat + strh r0, [r4, #6] + movs r0, #0x19 + strb r0, [r4] +_080ED45E: + ldrh r0, [r4, #2] + adds r0, #1 + strh r0, [r4, #2] + ldr r1, _080ED488 + ldrh r0, [r1, #0x28] + strh r0, [r4, #4] + ldrh r0, [r1, #6] + strh r0, [r4, #8] + ldr r0, _080ED48C + ldrb r0, [r0, #0x14] + strb r0, [r4, #0xa] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ED47C: .4byte 0x03005AEC +_080ED480: .4byte 0x00002B2C +_080ED484: .4byte 0x000027CC +_080ED488: .4byte 0x03005A70 +_080ED48C: .4byte 0x02036FB8 + thumb_func_end UpdateWorldOfMastersAndPutItOnTheAir + + thumb_func_start PutPokemonTodayFailedOnTheAir +PutPokemonTodayFailedOnTheAir: @ 0x080ED490 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _080ED554 + bl TV_BernoulliTrial + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080ED548 + movs r1, #0 + movs r5, #0 + ldr r2, _080ED558 +_080ED4A8: + adds r0, r1, r2 + ldrb r0, [r0] + adds r0, r5, r0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xa + bls _080ED4A8 + cmp r5, #0xff + bls _080ED4C2 + movs r5, #0xff +_080ED4C2: + cmp r5, #2 + bls _080ED548 + ldr r0, _080ED55C + mov r8, r0 + ldrb r0, [r0] + cmp r0, #6 + beq _080ED4D4 + cmp r0, #1 + bne _080ED548 +_080ED4D4: + ldr r7, _080ED560 + ldr r0, [r7] + ldr r6, _080ED564 + adds r0, r0, r6 + bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray + ldr r4, _080ED568 + strb r0, [r4] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080ED548 + movs r0, #0x17 + movs r1, #0 + bl HasMixableShowAlreadyBeenSpawnedWithPlayerID + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080ED548 + movs r1, #0 + ldrsb r1, [r4, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r4, [r7] + adds r4, r4, r0 + movs r1, #0 + movs r0, #0x17 + strb r0, [r4] + strb r1, [r4, #1] + ldr r1, _080ED56C + ldrh r0, [r1, #6] + strh r0, [r4, #0xc] + ldrh r0, [r1, #0x20] + strh r0, [r4, #0xe] + strb r5, [r4, #0x10] + mov r1, r8 + ldrb r0, [r1] + strb r0, [r4, #0x11] + ldr r0, _080ED570 + ldrb r0, [r0, #0x14] + strb r0, [r4, #0x12] + adds r0, r4, #0 + adds r0, #0x13 + ldr r1, _080ED574 + ldr r1, [r1] + bl StringCopy + adds r0, r4, #0 + bl tv_store_id_3x + ldr r0, _080ED578 + ldrb r0, [r0] + strb r0, [r4, #2] +_080ED548: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080ED554: .4byte 0x0000FFFF +_080ED558: .4byte 0x03005AA6 +_080ED55C: .4byte 0x02023FDE +_080ED560: .4byte 0x03005AEC +_080ED564: .4byte 0x000027CC +_080ED568: .4byte 0x03005E20 +_080ED56C: .4byte 0x03005A70 +_080ED570: .4byte 0x02036FB8 +_080ED574: .4byte 0x03005AF0 +_080ED578: .4byte 0x0829BDA5 + thumb_func_end PutPokemonTodayFailedOnTheAir + + thumb_func_start tv_store_id_3x +tv_store_id_3x: @ 0x080ED57C + push {r4, lr} + adds r4, r0, #0 + bl GetPlayerIDAsU32 + strb r0, [r4, #0x1e] + lsrs r2, r0, #8 + strb r2, [r4, #0x1f] + adds r1, r4, #0 + adds r1, #0x20 + strb r0, [r1] + adds r1, #1 + strb r2, [r1] + adds r1, #1 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x23 + strb r2, [r0] + pop {r4} + pop {r0} + bx r0 + thumb_func_end tv_store_id_3x + + thumb_func_start tv_store_id_2x +tv_store_id_2x: @ 0x080ED5A4 + push {r4, lr} + adds r4, r0, #0 + bl GetPlayerIDAsU32 + 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, #1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x23 + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end tv_store_id_2x + + thumb_func_start InterviewAfter_ContestLiveUpdates +InterviewAfter_ContestLiveUpdates: @ 0x080ED5CC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _080ED66C + mov r8, r0 + ldr r7, [r0] + ldr r1, _080ED670 + adds r6, r7, r1 + ldrb r1, [r6] + cmp r1, #8 + bne _080ED662 + ldr r0, _080ED674 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r4, r0, #3 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r5, _080ED678 + adds r4, r4, r5 + adds r4, r7, r4 + strb r1, [r4] + movs r0, #1 + strb r0, [r4, #1] + adds r0, r4, #0 + adds r0, #0x14 + ldr r1, _080ED67C + ldr r1, [r1] + bl StringCopy + ldr r0, _080ED680 + ldrh r0, [r0] + strb r0, [r4, #0x1c] + ldr r0, _080ED684 + ldrb r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080ED688 + adds r0, r0, r1 + movs r1, #0xb + movs r2, #0 + bl GetMonData + strh r0, [r4, #0x12] + ldrh r0, [r6, #2] + strh r0, [r4, #2] + ldrb r0, [r6, #0xc] + strb r0, [r4, #0xc] + ldrb r0, [r6, #0xd] + strb r0, [r4, #0xd] + ldrb r0, [r6, #0xe] + strb r0, [r4, #0xe] + ldrh r0, [r6, #0x10] + strh r0, [r4, #0x10] + ldrb r0, [r6, #0xf] + strb r0, [r4, #0xf] + adds r0, r4, #4 + ldr r2, _080ED68C + adds r1, r7, r2 + bl StringCopy + adds r0, r4, #0 + bl tv_store_id_2x + ldr r0, _080ED690 + ldrb r0, [r0] + strb r0, [r4, #0x1d] + ldrb r0, [r6, #0x1e] + strb r0, [r4, #0x1e] + mov r1, r8 + ldr r0, [r1] + adds r0, r0, r5 + movs r1, #0x18 + bl DeleteTVShowInArrayByIdx +_080ED662: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080ED66C: .4byte 0x03005AEC +_080ED670: .4byte 0x00002B2C +_080ED674: .4byte 0x03005E20 +_080ED678: .4byte 0x000027CC +_080ED67C: .4byte 0x03005AF0 +_080ED680: .4byte 0x02039BCC +_080ED684: .4byte 0x02039BC4 +_080ED688: .4byte 0x02024190 +_080ED68C: .4byte 0x00002B30 +_080ED690: .4byte 0x0829BDA5 + thumb_func_end InterviewAfter_ContestLiveUpdates + + thumb_func_start PutBattleUpdateOnTheAir +PutBattleUpdateOnTheAir: @ 0x080ED694 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sl, r1 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + mov sb, r2 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + mov r8, r3 + ldr r6, _080ED718 + ldr r0, [r6] + ldr r5, _080ED71C + adds r0, r0, r5 + bl FindEmptyTVSlotWithinFirstFiveShowsOfArray + ldr r4, _080ED720 + strb r0, [r4] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080ED76E + movs r0, #0xa + bl FindActiveBroadcastByShowType_SetScriptResult + ldr r0, _080ED724 + ldrh r0, [r0] + cmp r0, #1 + beq _080ED76E + movs r1, #0 + ldrsb r1, [r4, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r6] + adds r4, r1, r0 + movs r0, #0xa + strb r0, [r4] + movs r5, #1 + strb r5, [r4, #1] + adds r0, r4, #4 + ldr r1, _080ED728 + ldr r1, [r1] + bl StringCopy + ldr r0, _080ED72C + ldr r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _080ED730 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _080ED732 + strb r5, [r4, #0x18] + b _080ED734 + .align 2, 0 +_080ED718: .4byte 0x03005AEC +_080ED71C: .4byte 0x000027CC +_080ED720: .4byte 0x03005E20 +_080ED724: .4byte 0x02037290 +_080ED728: .4byte 0x03005AF0 +_080ED72C: .4byte 0x02022C90 +_080ED730: + movs r0, #2 +_080ED732: + strb r0, [r4, #0x18] +_080ED734: + mov r0, sl + strh r0, [r4, #0x14] + mov r0, sb + strh r0, [r4, #0x16] + mov r0, r8 + strh r0, [r4, #2] + adds r0, r4, #0 + adds r0, #0xc + lsls r1, r7, #3 + subs r1, r1, r7 + lsls r5, r1, #2 + ldr r6, _080ED77C + adds r1, r5, r6 + bl StringCopy + adds r0, r4, #0 + bl tv_store_id_2x + ldr r0, _080ED780 + ldrb r0, [r0] + strb r0, [r4, #0x19] + cmp r0, #1 + beq _080ED76A + adds r0, r6, r5 + ldrh r0, [r0, #0x12] + cmp r0, #1 + bne _080ED76C +_080ED76A: + movs r0, #1 +_080ED76C: + strb r0, [r4, #0x1a] +_080ED76E: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080ED77C: .4byte 0x020226A8 +_080ED780: .4byte 0x0829BDA5 + thumb_func_end PutBattleUpdateOnTheAir + + thumb_func_start Put3CheersForPokeblocksOnTheAir +Put3CheersForPokeblocksOnTheAir: @ 0x080ED784 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov sl, r0 + ldr r0, [sp, #0x24] + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r3, [sp] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldr r0, _080ED7D8 + mov r8, r0 + ldr r0, [r0] + ldr r7, _080ED7DC + adds r0, r0, r7 + bl FindEmptyTVSlotWithinFirstFiveShowsOfArray + ldr r4, _080ED7E0 + strb r0, [r4] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080ED7D4 + movs r0, #9 + bl FindActiveBroadcastByShowType_SetScriptResult + ldr r0, _080ED7E4 + ldrh r0, [r0] + cmp r0, #1 + bne _080ED7E8 +_080ED7D4: + movs r0, #0 + b _080ED85E + .align 2, 0 +_080ED7D8: .4byte 0x03005AEC +_080ED7DC: .4byte 0x000027CC +_080ED7E0: .4byte 0x03005E20 +_080ED7E4: .4byte 0x02037290 +_080ED7E8: + movs r1, #0 + ldrsb r1, [r4, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + mov r2, r8 + ldr r1, [r2] + adds r4, r1, r0 + movs r0, #9 + strb r0, [r4] + movs r7, #1 + strb r7, [r4, #1] + adds r0, r4, #0 + adds r0, #0xc + ldr r1, _080ED850 + ldr r1, [r1] + bl StringCopy + adds r0, r4, #4 + mov r1, sl + bl StringCopy + movs r0, #7 + ands r5, r0 + ldrb r1, [r4, #3] + subs r0, #0xf + ands r0, r1 + orrs r0, r5 + movs r1, #3 + ands r6, r1 + lsls r2, r6, #3 + subs r1, #0x1c + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #3] + mov r0, sp + ldrb r0, [r0] + strb r0, [r4, #2] + adds r0, r4, #0 + bl tv_store_id_2x + ldr r0, _080ED854 + ldrb r0, [r0] + strb r0, [r4, #0x14] + cmp r0, #1 + beq _080ED84C + mov r1, sb + cmp r1, #1 + bne _080ED858 +_080ED84C: + strb r7, [r4, #0x15] + b _080ED85C + .align 2, 0 +_080ED850: .4byte 0x03005AF0 +_080ED854: .4byte 0x0829BDA5 +_080ED858: + mov r2, sb + strb r2, [r4, #0x15] +_080ED85C: + movs r0, #1 +_080ED85E: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end Put3CheersForPokeblocksOnTheAir + + thumb_func_start PutFanClubSpecialOnTheAir +PutFanClubSpecialOnTheAir: @ 0x080ED870 + push {r4, r5, r6, lr} + ldr r6, _080ED8D8 + ldr r0, _080ED8DC + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080ED8E0 + adds r0, r0, r1 + ldr r1, [r6] + adds r4, r1, r0 + ldr r0, _080ED8E4 + ldrh r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + strb r0, [r4, #0x16] + adds r0, r4, #2 + ldr r1, _080ED8E8 + ldr r1, [r1] + bl StringCopy + movs r0, #0xb + strb r0, [r4] + movs r5, #1 + strb r5, [r4, #1] + bl GetPlayerIDAsU32 + strb r0, [r4, #0xa] + lsrs r0, r0, #8 + strb r0, [r4, #0xb] + adds r0, r4, #0 + adds r0, #0xc + ldr r1, _080ED8EC + bl StringCopy + adds r0, r4, #0 + bl tv_store_id_2x + ldr r0, _080ED8F0 + ldrb r0, [r0] + strb r0, [r4, #0x17] + cmp r0, #1 + beq _080ED8D4 + ldr r0, [r6] + ldr r1, _080ED8F4 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + bne _080ED8F8 +_080ED8D4: + strb r5, [r4, #0x18] + b _080ED8FA + .align 2, 0 +_080ED8D8: .4byte 0x03005AEC +_080ED8DC: .4byte 0x02037284 +_080ED8E0: .4byte 0x000027CC +_080ED8E4: .4byte 0x02037282 +_080ED8E8: .4byte 0x03005AF0 +_080ED8EC: .4byte 0x02021C40 +_080ED8F0: .4byte 0x0829BDA5 +_080ED8F4: .4byte 0x000031A0 +_080ED8F8: + strb r0, [r4, #0x18] +_080ED8FA: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end PutFanClubSpecialOnTheAir + + thumb_func_start ContestLiveUpdates_BeforeInterview_1 +ContestLiveUpdates_BeforeInterview_1: @ 0x080ED900 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r5, _080ED940 + ldr r0, [r5] + ldr r4, _080ED944 + adds r0, r0, r4 + movs r1, #0x18 + bl DeleteTVShowInArrayByIdx + ldr r0, [r5] + adds r0, r0, r4 + bl FindEmptyTVSlotWithinFirstFiveShowsOfArray + ldr r1, _080ED948 + strb r0, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080ED938 + ldr r0, [r5] + ldr r1, _080ED94C + adds r0, r0, r1 + strb r6, [r0, #0xd] + movs r1, #8 + strb r1, [r0] +_080ED938: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080ED940: .4byte 0x03005AEC +_080ED944: .4byte 0x000027CC +_080ED948: .4byte 0x03005E20 +_080ED94C: .4byte 0x00002B2C + thumb_func_end ContestLiveUpdates_BeforeInterview_1 + + thumb_func_start ContestLiveUpdates_BeforeInterview_2 +ContestLiveUpdates_BeforeInterview_2: @ 0x080ED950 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _080ED980 + ldr r0, [r0] + ldr r1, _080ED984 + adds r4, r0, r1 + ldr r1, _080ED988 + adds r0, r0, r1 + bl FindEmptyTVSlotWithinFirstFiveShowsOfArray + ldr r1, _080ED98C + strb r0, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080ED978 + strb r5, [r4, #0xe] +_080ED978: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080ED980: .4byte 0x03005AEC +_080ED984: .4byte 0x00002B2C +_080ED988: .4byte 0x000027CC +_080ED98C: .4byte 0x03005E20 + thumb_func_end ContestLiveUpdates_BeforeInterview_2 + + thumb_func_start ContestLiveUpdates_BeforeInterview_3 +ContestLiveUpdates_BeforeInterview_3: @ 0x080ED990 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _080ED9C0 + ldr r0, [r0] + ldr r1, _080ED9C4 + adds r4, r0, r1 + ldr r1, _080ED9C8 + adds r0, r0, r1 + bl FindEmptyTVSlotWithinFirstFiveShowsOfArray + ldr r1, _080ED9CC + strb r0, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080ED9B8 + strb r5, [r4, #0xf] +_080ED9B8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080ED9C0: .4byte 0x03005AEC +_080ED9C4: .4byte 0x00002B2C +_080ED9C8: .4byte 0x000027CC +_080ED9CC: .4byte 0x03005E20 + thumb_func_end ContestLiveUpdates_BeforeInterview_3 + + thumb_func_start ContestLiveUpdates_BeforeInterview_4 +ContestLiveUpdates_BeforeInterview_4: @ 0x080ED9D0 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, _080EDA00 + ldr r0, [r0] + ldr r1, _080EDA04 + adds r4, r0, r1 + ldr r1, _080EDA08 + adds r0, r0, r1 + bl FindEmptyTVSlotWithinFirstFiveShowsOfArray + ldr r1, _080EDA0C + strb r0, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080ED9F8 + strh r5, [r4, #0x10] +_080ED9F8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080EDA00: .4byte 0x03005AEC +_080EDA04: .4byte 0x00002B2C +_080EDA08: .4byte 0x000027CC +_080EDA0C: .4byte 0x03005E20 + thumb_func_end ContestLiveUpdates_BeforeInterview_4 + + thumb_func_start ContestLiveUpdates_BeforeInterview_5 +ContestLiveUpdates_BeforeInterview_5: @ 0x080EDA10 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + ldr r0, _080EDA64 + ldr r4, [r0] + ldr r0, _080EDA68 + adds r6, r4, r0 + ldr r1, _080EDA6C + adds r0, r4, r1 + bl FindEmptyTVSlotWithinFirstFiveShowsOfArray + ldr r1, _080EDA70 + strb r0, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080EDAA0 + ldr r2, _080EDA74 + lsls r1, r5, #6 + adds r0, r1, r2 + ldrh r0, [r0] + strh r0, [r6, #2] + ldr r3, _080EDA78 + adds r0, r4, r3 + adds r2, #0xd + adds r1, r1, r2 + bl StringCopy + strb r7, [r6, #0xc] + adds r1, r5, #1 + ldr r0, _080EDA7C + ldrb r0, [r0] + cmp r1, r0 + ble _080EDA84 + ldr r0, _080EDA80 + ldrb r0, [r0] + b _080EDA9E + .align 2, 0 +_080EDA64: .4byte 0x03005AEC +_080EDA68: .4byte 0x00002B2C +_080EDA6C: .4byte 0x000027CC +_080EDA70: .4byte 0x03005E20 +_080EDA74: .4byte 0x02039AA0 +_080EDA78: .4byte 0x00002B30 +_080EDA7C: .4byte 0x02039BD0 +_080EDA80: .4byte 0x0829BDA5 +_080EDA84: + ldr r0, _080EDAA8 + ldrb r0, [r0] + cmp r0, #1 + beq _080EDA9C + ldr r1, _080EDAAC + lsls r0, r5, #3 + subs r0, r0, r5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0, #0x1a] + cmp r0, #1 + bne _080EDA9E +_080EDA9C: + movs r0, #1 +_080EDA9E: + strb r0, [r6, #0x1e] +_080EDAA0: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080EDAA8: .4byte 0x0829BDA5 +_080EDAAC: .4byte 0x020226A0 + thumb_func_end ContestLiveUpdates_BeforeInterview_5 + + thumb_func_start InterviewAfter_BravoTrainerPokemonProfile +InterviewAfter_BravoTrainerPokemonProfile: @ 0x080EDAB0 + push {r4, r5, r6, r7, lr} + ldr r0, _080EDB54 + ldr r6, [r0] + ldr r0, _080EDB58 + adds r5, r6, r0 + ldrb r2, [r5] + cmp r2, #6 + bne _080EDB80 + ldr r0, _080EDB5C + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080EDB60 + adds r0, r0, r1 + adds r4, r6, r0 + strb r2, [r4] + movs r7, #1 + strb r7, [r4, #1] + ldrh r0, [r5, #2] + strh r0, [r4, #2] + adds r0, r4, #0 + adds r0, #0x16 + ldr r1, _080EDB64 + ldr r1, [r1] + bl StringCopy + adds r0, r4, #0 + adds r0, #8 + ldr r2, _080EDB68 + adds r1, r6, r2 + bl StringCopy + ldrb r0, [r5, #0x13] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1d + ldrb r2, [r4, #0x13] + movs r3, #8 + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x13] + ldrb r2, [r5, #0x13] + movs r0, #0x18 + ands r0, r2 + movs r2, #0x19 + rsbs r2, r2, #0 + ands r2, r1 + orrs r2, r0 + strb r2, [r4, #0x13] + ldrh r0, [r5, #0x14] + strh r0, [r4, #0x14] + ldrb r0, [r5, #0x13] + movs r1, #0x60 + ands r1, r0 + movs r0, #0x61 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x13] + ldrb r1, [r5, #0x13] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + ands r0, r3 + orrs r0, r1 + strb r0, [r4, #0x13] + adds r0, r4, #0 + bl tv_store_id_2x + ldr r0, _080EDB6C + ldrb r0, [r0] + strb r0, [r4, #0x1e] + cmp r0, #1 + beq _080EDB4E + ldrb r0, [r5, #0x1f] + cmp r0, #1 + bne _080EDB70 +_080EDB4E: + strb r7, [r4, #0x1f] + b _080EDB72 + .align 2, 0 +_080EDB54: .4byte 0x03005AEC +_080EDB58: .4byte 0x00002B2C +_080EDB5C: .4byte 0x03005E20 +_080EDB60: .4byte 0x000027CC +_080EDB64: .4byte 0x03005AF0 +_080EDB68: .4byte 0x00002B34 +_080EDB6C: .4byte 0x0829BDA5 +_080EDB70: + strb r0, [r4, #0x1f] +_080EDB72: + ldr r0, _080EDB88 + ldr r0, [r0] + ldr r1, _080EDB8C + adds r0, r0, r1 + movs r1, #0x18 + bl DeleteTVShowInArrayByIdx +_080EDB80: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080EDB88: .4byte 0x03005AEC +_080EDB8C: .4byte 0x000027CC + thumb_func_end InterviewAfter_BravoTrainerPokemonProfile + + thumb_func_start BravoTrainerPokemonProfile_BeforeInterview1 +BravoTrainerPokemonProfile_BeforeInterview1: @ 0x080EDB90 + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r4, _080EDBD4 + ldr r0, [r4] + ldr r1, _080EDBD8 + adds r5, r0, r1 + bl InterviewBefore_BravoTrainerPkmnProfile + ldr r0, [r4] + ldr r1, _080EDBDC + adds r0, r0, r1 + bl FindEmptyTVSlotWithinFirstFiveShowsOfArray + ldr r1, _080EDBE0 + strb r0, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080EDBCE + ldr r0, [r4] + ldr r1, _080EDBDC + adds r0, r0, r1 + movs r1, #0x18 + bl DeleteTVShowInArrayByIdx + strh r6, [r5, #0x14] + movs r0, #6 + strb r0, [r5] +_080EDBCE: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080EDBD4: .4byte 0x03005AEC +_080EDBD8: .4byte 0x00002B2C +_080EDBDC: .4byte 0x000027CC +_080EDBE0: .4byte 0x03005E20 + thumb_func_end BravoTrainerPokemonProfile_BeforeInterview1 + + thumb_func_start BravoTrainerPokemonProfile_BeforeInterview2 +BravoTrainerPokemonProfile_BeforeInterview2: @ 0x080EDBE4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080EDC88 + ldr r0, [r0] + mov r8, r0 + ldr r7, _080EDC8C + add r7, r8 + ldr r0, _080EDC90 + add r0, r8 + bl FindEmptyTVSlotWithinFirstFiveShowsOfArray + ldr r1, _080EDC94 + strb r0, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080EDC7C + movs r3, #3 + adds r0, r4, #0 + ands r0, r3 + lsls r0, r0, #5 + ldrb r1, [r7, #0x13] + movs r2, #0x61 + rsbs r2, r2, #0 + ands r2, r1 + orrs r2, r0 + strb r2, [r7, #0x13] + ldr r0, _080EDC98 + ldrb r0, [r0] + movs r1, #7 + ands r1, r0 + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r7, #0x13] + ldr r1, _080EDC9C + ldrb r1, [r1] + ands r3, r1 + lsls r3, r3, #3 + movs r1, #0x19 + rsbs r1, r1, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r7, #0x13] + ldr r6, _080EDCA0 + ldrb r0, [r6] + movs r5, #0x64 + muls r0, r5, r0 + ldr r4, _080EDCA4 + adds r0, r0, r4 + movs r1, #0xb + movs r2, #0 + bl GetMonData + strh r0, [r7, #2] + ldrb r0, [r6] + muls r0, r5, r0 + adds r0, r0, r4 + ldr r2, _080EDCA8 + add r2, r8 + movs r1, #2 + bl GetMonData + ldrb r0, [r6] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #3 + bl GetMonData + strb r0, [r7, #0x1f] +_080EDC7C: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080EDC88: .4byte 0x03005AEC +_080EDC8C: .4byte 0x00002B2C +_080EDC90: .4byte 0x000027CC +_080EDC94: .4byte 0x03005E20 +_080EDC98: .4byte 0x02039BCC +_080EDC9C: .4byte 0x02039BCE +_080EDCA0: .4byte 0x02039BC4 +_080EDCA4: .4byte 0x02024190 +_080EDCA8: .4byte 0x00002B34 + thumb_func_end BravoTrainerPokemonProfile_BeforeInterview2 + + thumb_func_start InterviewAfter_BravoTrainerBattleTowerProfile +InterviewAfter_BravoTrainerBattleTowerProfile: @ 0x080EDCAC + push {r4, r5, r6, lr} + ldr r2, _080EDD1C + ldr r0, _080EDD20 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080EDD24 + adds r0, r0, r1 + ldr r1, [r2] + adds r6, r1, r0 + movs r0, #7 + strb r0, [r6] + movs r0, #1 + strb r0, [r6, #1] + adds r0, r6, #2 + ldr r4, _080EDD28 + ldr r1, [r4] + bl StringCopy + adds r0, r6, #0 + adds r0, #0xc + ldr r1, [r4] + ldr r2, _080EDD2C + adds r1, r1, r2 + bl StringCopy + ldr r1, [r4] + ldr r2, _080EDD30 + adds r0, r1, r2 + ldrh r0, [r0] + strh r0, [r6, #0xa] + adds r2, #2 + adds r0, r1, r2 + ldrh r0, [r0] + strh r0, [r6, #0x14] + ldr r5, _080EDD34 + adds r1, r1, r5 + ldrb r0, [r1] + movs r1, #0 + bl GetCurrentBattleTowerWinStreak + strh r0, [r6, #0x16] + ldr r0, [r4] + ldr r1, _080EDD38 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r6, #0x1c] + ldr r0, [r4] + adds r0, r0, r5 + ldrb r0, [r0] + cmp r0, #0 + bne _080EDD3C + movs r0, #0x32 + b _080EDD3E + .align 2, 0 +_080EDD1C: .4byte 0x03005AEC +_080EDD20: .4byte 0x03005E20 +_080EDD24: .4byte 0x000027CC +_080EDD28: .4byte 0x03005AF0 +_080EDD2C: .4byte 0x00000BD8 +_080EDD30: .4byte 0x00000BD4 +_080EDD34: .4byte 0x00000D07 +_080EDD38: .4byte 0x00000D06 +_080EDD3C: + movs r0, #0x64 +_080EDD3E: + strb r0, [r6, #0x1a] + ldr r0, _080EDD70 + ldrh r0, [r0] + strb r0, [r6, #0x1b] + adds r0, r6, #0 + bl tv_store_id_2x + ldr r0, _080EDD74 + ldrb r0, [r0] + strb r0, [r6, #0x1d] + cmp r0, #1 + beq _080EDD64 + ldr r0, _080EDD78 + ldr r0, [r0] + ldr r2, _080EDD7C + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #1 + bne _080EDD66 +_080EDD64: + movs r0, #1 +_080EDD66: + strb r0, [r6, #0x1e] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080EDD70: .4byte 0x02037280 +_080EDD74: .4byte 0x0829BDA5 +_080EDD78: .4byte 0x03005AF0 +_080EDD7C: .4byte 0x00000BEB + thumb_func_end InterviewAfter_BravoTrainerBattleTowerProfile + + thumb_func_start SaveRecordedItemPurchasesForTVShow +SaveRecordedItemPurchasesForTVShow: @ 0x080EDD80 + push {r4, r5, r6, r7, lr} + ldr r5, _080EDE40 + ldr r0, [r5] + ldrh r1, [r0, #4] + ldr r0, _080EDE44 + cmp r1, r0 + beq _080EDE3A + ldr r0, _080EDE48 + cmp r1, r0 + beq _080EDE3A + ldr r0, _080EDE4C + bl TV_BernoulliTrial + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _080EDE3A + ldr r0, [r5] + ldr r7, _080EDE50 + adds r0, r0, r7 + bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray + ldr r6, _080EDE54 + strb r0, [r6] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080EDE3A + movs r0, #0x16 + movs r1, #0 + bl HasMixableShowAlreadyBeenSpawnedWithPlayerID + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080EDE3A + bl TV_SortPurchasesByQuantity + ldr r2, _080EDE58 + ldrh r0, [r2, #2] + cmp r0, #0x13 + bls _080EDE3A + movs r1, #0 + ldrsb r1, [r6, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r1, [r5] + adds r5, r1, r0 + movs r0, #0x16 + strb r0, [r5] + strb r4, [r5, #1] + ldr r0, _080EDE5C + ldrb r0, [r0, #0x14] + strb r0, [r5, #0x12] + movs r4, #0 + adds r7, r5, #6 + mov ip, r2 + adds r6, r5, #0 + adds r6, #0xc +_080EDDFE: + lsls r2, r4, #1 + adds r3, r7, r2 + lsls r1, r4, #2 + add r1, ip + ldrh r0, [r1] + strh r0, [r3] + adds r2, r6, r2 + ldrh r0, [r1, #2] + strh r0, [r2] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #2 + bls _080EDDFE + movs r0, #1 + bl GetPriceReduction + strb r0, [r5, #2] + adds r0, r5, #0 + adds r0, #0x13 + ldr r1, _080EDE60 + ldr r1, [r1] + bl StringCopy + adds r0, r5, #0 + bl tv_store_id_3x + ldr r0, _080EDE64 + ldrb r0, [r0] + strb r0, [r5, #3] +_080EDE3A: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080EDE40: .4byte 0x03005AEC +_080EDE44: .4byte 0x00003C1A +_080EDE48: .4byte 0x0000371A +_080EDE4C: .4byte 0x00005555 +_080EDE50: .4byte 0x000027CC +_080EDE54: .4byte 0x03005E20 +_080EDE58: .4byte 0x02039C20 +_080EDE5C: .4byte 0x02036FB8 +_080EDE60: .4byte 0x03005AF0 +_080EDE64: .4byte 0x0829BDA5 + thumb_func_end SaveRecordedItemPurchasesForTVShow + + thumb_func_start PutNameRaterShowOnTheAir +PutNameRaterShowOnTheAir: @ 0x080EDE68 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + bl InterviewBefore_NameRater + ldr r0, _080EDF40 + ldrh r0, [r0] + cmp r0, #1 + beq _080EDF32 + ldr r0, _080EDF44 + mov r8, r0 + ldrh r0, [r0] + movs r7, #0x64 + muls r0, r7, r0 + ldr r6, _080EDF48 + adds r0, r0, r6 + ldr r4, _080EDF4C + movs r1, #2 + adds r2, r4, #0 + bl GetMonData + ldr r1, _080EDF50 + mov sb, r1 + ldr r0, [r1] + bl StringLength + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bls _080EDF32 + adds r0, r4, #0 + bl StringLength + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bls _080EDF32 + ldr r2, _080EDF54 + ldr r0, _080EDF58 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080EDF5C + adds r0, r0, r1 + ldr r4, [r2] + adds r4, r4, r0 + movs r0, #5 + strb r0, [r4] + movs r5, #1 + strb r5, [r4, #1] + mov r2, r8 + ldrh r0, [r2] + muls r0, r7, r0 + adds r0, r0, r6 + movs r1, #0xb + movs r2, #0 + bl GetMonData + strh r0, [r4, #2] + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + strb r0, [r4, #0x1a] + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ands r0, r5 + strb r0, [r4, #0x1b] + ldrh r0, [r4, #2] + bl TV_GetSomeOtherSpeciesAlreadySeenByPlayer + strh r0, [r4, #0x1c] + adds r0, r4, #0 + adds r0, #0xf + mov r2, sb + ldr r1, [r2] + bl StringCopy + mov r1, r8 + ldrh r0, [r1] + muls r0, r7, r0 + adds r0, r0, r6 + adds r2, r4, #4 + movs r1, #2 + bl GetMonData + adds r0, r4, #0 + bl tv_store_id_2x + ldr r0, _080EDF60 + ldrb r0, [r0] + strb r0, [r4, #0x1e] + strb r0, [r4, #0x1f] +_080EDF32: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080EDF40: .4byte 0x02037290 +_080EDF44: .4byte 0x02037280 +_080EDF48: .4byte 0x02024190 +_080EDF4C: .4byte 0x02021C40 +_080EDF50: .4byte 0x03005AF0 +_080EDF54: .4byte 0x03005AEC +_080EDF58: .4byte 0x03005E20 +_080EDF5C: .4byte 0x000027CC +_080EDF60: .4byte 0x0829BDA5 + thumb_func_end PutNameRaterShowOnTheAir + + thumb_func_start StartMassOutbreak +StartMassOutbreak: @ 0x080EDF64 + push {r4, r5, lr} + ldr r4, _080EDFF4 + ldr r0, _080EDFF8 + ldrh r0, [r0] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080EDFFC + adds r1, r1, r0 + ldr r2, [r4] + adds r1, r2, r1 + ldrh r3, [r1, #0xc] + ldr r5, _080EE000 + adds r0, r2, r5 + strh r3, [r0] + ldrb r0, [r1, #0x10] + ldr r3, _080EE004 + adds r2, r2, r3 + strb r0, [r2] + ldr r0, [r4] + ldrb r2, [r1, #0x11] + adds r5, #3 + adds r0, r0, r5 + strb r2, [r0] + ldr r0, [r4] + ldrb r2, [r1, #0x14] + adds r3, #2 + adds r0, r0, r3 + strb r2, [r0] + ldr r0, [r4] + ldrb r2, [r1, #2] + adds r5, #2 + adds r0, r0, r5 + strb r2, [r0] + ldr r2, [r4] + ldrh r3, [r1, #0xe] + adds r5, #1 + adds r0, r2, r5 + strh r3, [r0] + ldrh r3, [r1, #4] + adds r5, #2 + adds r0, r2, r5 + strh r3, [r0] + ldrh r3, [r1, #6] + adds r5, #2 + adds r0, r2, r5 + strh r3, [r0] + ldrh r3, [r1, #8] + adds r5, #2 + adds r0, r2, r5 + strh r3, [r0] + ldrh r3, [r1, #0xa] + adds r5, #2 + adds r0, r2, r5 + strh r3, [r0] + ldrb r0, [r1, #3] + ldr r3, _080EE008 + adds r2, r2, r3 + strb r0, [r2] + ldr r0, [r4] + ldrb r1, [r1, #0x13] + adds r5, #3 + adds r0, r0, r5 + strb r1, [r0] + ldr r0, [r4] + ldr r1, _080EE00C + adds r0, r0, r1 + movs r1, #2 + strh r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080EDFF4: .4byte 0x03005AEC +_080EDFF8: .4byte 0x02037280 +_080EDFFC: .4byte 0x000027CC +_080EE000: .4byte 0x00002B90 +_080EE004: .4byte 0x00002B92 +_080EE008: .4byte 0x00002BA0 +_080EE00C: .4byte 0x00002BA2 + thumb_func_end StartMassOutbreak + + thumb_func_start PutLilycoveContestLadyShowOnTheAir +PutLilycoveContestLadyShowOnTheAir: @ 0x080EE010 + push {r4, lr} + bl sub_080F0578 + ldr r0, _080EE06C + ldrh r0, [r0] + cmp r0, #1 + beq _080EE066 + ldr r2, _080EE070 + ldr r0, _080EE074 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080EE078 + adds r0, r0, r1 + ldr r1, [r2] + adds r4, r1, r0 + adds r0, r4, #0 + adds r0, #0x17 + bl sub_0818E4A4 + ldrb r0, [r4, #0x17] + strb r0, [r4, #0x18] + movs r0, #0xc + strb r0, [r4] + movs r0, #1 + strb r0, [r4, #1] + adds r0, r4, #2 + bl sub_0818E478 + adds r0, r4, #0 + adds r0, #0xa + adds r1, r4, #0 + adds r1, #0xb + bl sub_0818E43C + bl sub_0818E4DC + strb r0, [r4, #0x16] + adds r0, r4, #0 + bl tv_store_id_2x +_080EE066: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EE06C: .4byte 0x02037290 +_080EE070: .4byte 0x03005AEC +_080EE074: .4byte 0x03005E20 +_080EE078: .4byte 0x000027CC + thumb_func_end PutLilycoveContestLadyShowOnTheAir + + thumb_func_start InterviewAfter_FanClubLetter +InterviewAfter_FanClubLetter: @ 0x080EE07C + push {r4, lr} + ldr r2, _080EE0D4 + ldr r0, _080EE0D8 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080EE0DC + adds r0, r0, r1 + ldr r4, [r2] + adds r4, r4, r0 + movs r0, #1 + strb r0, [r4] + strb r0, [r4, #1] + adds r0, r4, #0 + adds r0, #0x10 + ldr r1, _080EE0E0 + ldr r1, [r1] + bl StringCopy + bl GetLeadMonIndex + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x64 + muls r0, r1, r0 + ldr r1, _080EE0E4 + adds r0, r0, r1 + movs r1, #0xb + movs r2, #0 + bl GetMonData + strh r0, [r4, #2] + adds r0, r4, #0 + bl tv_store_id_2x + ldr r0, _080EE0E8 + ldrb r0, [r0] + strb r0, [r4, #0x18] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EE0D4: .4byte 0x03005AEC +_080EE0D8: .4byte 0x03005E20 +_080EE0DC: .4byte 0x000027CC +_080EE0E0: .4byte 0x03005AF0 +_080EE0E4: .4byte 0x02024190 +_080EE0E8: .4byte 0x0829BDA5 + thumb_func_end InterviewAfter_FanClubLetter + + thumb_func_start InterviewAfter_RecentHappenings +InterviewAfter_RecentHappenings: @ 0x080EE0EC + push {r4, r5, lr} + ldr r2, _080EE130 + ldr r0, _080EE134 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080EE138 + adds r0, r0, r1 + ldr r4, [r2] + adds r4, r4, r0 + movs r5, #0 + movs r0, #2 + strb r0, [r4] + movs r0, #1 + strb r0, [r4, #1] + adds r0, r4, #0 + adds r0, #0x10 + ldr r1, _080EE13C + ldr r1, [r1] + bl StringCopy + strh r5, [r4, #2] + adds r0, r4, #0 + bl tv_store_id_2x + ldr r0, _080EE140 + ldrb r0, [r0] + strb r0, [r4, #0x18] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080EE130: .4byte 0x03005AEC +_080EE134: .4byte 0x03005E20 +_080EE138: .4byte 0x000027CC +_080EE13C: .4byte 0x03005AF0 +_080EE140: .4byte 0x0829BDA5 + thumb_func_end InterviewAfter_RecentHappenings + + thumb_func_start InterviewAfter_PkmnFanClubOpinions +InterviewAfter_PkmnFanClubOpinions: @ 0x080EE144 + push {r4, r5, r6, r7, lr} + ldr r2, _080EE1FC + ldr r0, _080EE200 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080EE204 + adds r0, r0, r1 + ldr r1, [r2] + adds r4, r1, r0 + movs r0, #3 + strb r0, [r4] + movs r7, #1 + strb r7, [r4, #1] + bl GetLeadMonIndex + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r6, #0x64 + muls r0, r6, r0 + ldr r5, _080EE208 + adds r0, r0, r5 + movs r1, #0x20 + movs r2, #0 + bl GetMonData + lsrs r0, r0, #4 + movs r1, #0xf + ands r0, r1 + ldrb r2, [r4, #4] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #4] + ldr r0, _080EE20C + ldrb r0, [r0] + lsls r0, r0, #4 + movs r2, #0xf + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #4] + adds r0, r4, #5 + ldr r1, _080EE210 + ldr r1, [r1] + bl StringCopy + bl GetLeadMonIndex + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + muls r0, r6, r0 + adds r0, r0, r5 + adds r2, r4, #0 + adds r2, #0x10 + movs r1, #2 + bl GetMonData + bl GetLeadMonIndex + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #0xb + movs r2, #0 + bl GetMonData + strh r0, [r4, #2] + adds r0, r4, #0 + bl tv_store_id_2x + ldr r0, _080EE214 + ldrb r0, [r0] + strb r0, [r4, #0xd] + cmp r0, #1 + beq _080EE1F8 + bl GetLeadMonIndex + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #3 + bl GetMonData + cmp r0, #1 + bne _080EE218 +_080EE1F8: + strb r7, [r4, #0xe] + b _080EE22C + .align 2, 0 +_080EE1FC: .4byte 0x03005AEC +_080EE200: .4byte 0x03005E20 +_080EE204: .4byte 0x000027CC +_080EE208: .4byte 0x02024190 +_080EE20C: .4byte 0x02037286 +_080EE210: .4byte 0x03005AF0 +_080EE214: .4byte 0x0829BDA5 +_080EE218: + bl GetLeadMonIndex + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + muls r0, r6, r0 + adds r0, r0, r5 + movs r1, #3 + bl GetMonData + strb r0, [r4, #0xe] +_080EE22C: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end InterviewAfter_PkmnFanClubOpinions + + thumb_func_start InterviewAfter_DummyShow4 +InterviewAfter_DummyShow4: @ 0x080EE234 + bx lr + .align 2, 0 + thumb_func_end InterviewAfter_DummyShow4 + + thumb_func_start sub_080EE238 +sub_080EE238: @ 0x080EE238 + push {r4, r5, r6, lr} + ldr r0, _080EE30C + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080EE304 + movs r1, #0 + ldr r0, _080EE310 + ldr r2, [r0] + ldr r3, _080EE314 +_080EE24E: + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r2, r0 + adds r0, r0, r3 + ldrb r0, [r0] + cmp r0, #0x29 + beq _080EE304 + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x17 + bls _080EE24E + ldr r0, _080EE318 + bl TV_BernoulliTrial + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _080EE304 + ldr r6, _080EE310 + ldr r0, [r6] + ldr r1, _080EE314 + adds r0, r0, r1 + bl FindEmptyTVSlotWithinFirstFiveShowsOfArray + ldr r4, _080EE31C + strb r0, [r4] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080EE304 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #5 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r2, #0 + ldrsb r2, [r4, r2] + lsls r1, r2, #3 + adds r1, r1, r2 + lsls r1, r1, #2 + ldr r2, _080EE314 + adds r1, r1, r2 + ldr r4, [r6] + adds r4, r4, r1 + movs r1, #0x29 + strb r1, [r4] + movs r3, #1 + strb r3, [r4, #1] + ldr r2, _080EE320 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r0, [r1, #0xa] + strb r0, [r4, #0x14] + strb r5, [r4, #2] + strb r5, [r4, #3] + ldrh r0, [r1] + movs r2, #0 + strh r0, [r4, #0xc] + strh r5, [r4, #0xe] + ldrh r0, [r1, #2] + strh r0, [r4, #4] + ldrh r0, [r1, #4] + strh r0, [r4, #6] + ldrh r0, [r1, #6] + strh r0, [r4, #8] + ldrh r0, [r1, #8] + 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 tv_store_id_2x + ldr r0, _080EE324 + ldrb r0, [r0] + strb r0, [r4, #0x18] +_080EE304: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080EE30C: .4byte 0x00000864 +_080EE310: .4byte 0x03005AEC +_080EE314: .4byte 0x000027CC +_080EE318: .4byte 0x00000147 +_080EE31C: .4byte 0x03005E20 +_080EE320: .4byte 0x08568B40 +_080EE324: .4byte 0x0829BDA5 + thumb_func_end sub_080EE238 + + thumb_func_start EndMassOutbreak +EndMassOutbreak: @ 0x080EE328 + push {r4, r5, lr} + ldr r3, _080EE394 + ldr r0, [r3] + ldr r2, _080EE398 + adds r1, r0, r2 + movs r4, #0 + movs r2, #0 + strh r2, [r1] + ldr r5, _080EE39C + adds r0, r0, r5 + strb r4, [r0] + ldr r0, [r3] + ldr r1, _080EE3A0 + adds r0, r0, r1 + strb r4, [r0] + ldr r0, [r3] + adds r5, #2 + adds r0, r0, r5 + strb r4, [r0] + ldr r0, [r3] + adds r1, #2 + adds r0, r0, r1 + strb r4, [r0] + ldr r0, [r3] + adds r5, #2 + adds r1, r0, r5 + strh r2, [r1] + adds r5, #2 + adds r1, r0, r5 + strh r2, [r1] + adds r5, #2 + adds r1, r0, r5 + strh r2, [r1] + adds r5, #2 + adds r1, r0, r5 + strh r2, [r1] + adds r5, #2 + adds r1, r0, r5 + strh r2, [r1] + ldr r1, _080EE3A4 + adds r0, r0, r1 + strb r4, [r0] + ldr r0, [r3] + adds r5, #3 + adds r0, r0, r5 + strb r4, [r0] + ldr r0, [r3] + adds r1, #2 + adds r0, r0, r1 + strh r2, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080EE394: .4byte 0x03005AEC +_080EE398: .4byte 0x00002B90 +_080EE39C: .4byte 0x00002B92 +_080EE3A0: .4byte 0x00002B93 +_080EE3A4: .4byte 0x00002BA0 + thumb_func_end EndMassOutbreak + + thumb_func_start UpdateTVShowsPerDay +UpdateTVShowsPerDay: @ 0x080EE3A8 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r4, #0 + bl sub_080EE3D4 + adds r0, r4, #0 + bl UpdateMassOutbreakTimeLeft + adds r0, r4, #0 + bl sub_080EFC24 + adds r0, r4, #0 + bl sub_080EE568 + adds r0, r4, #0 + bl sub_080EF69C + pop {r4} + pop {r0} + bx r0 + thumb_func_end UpdateTVShowsPerDay + + thumb_func_start sub_080EE3D4 +sub_080EE3D4: @ 0x080EE3D4 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r1, _080EE41C + ldr r0, [r1] + ldr r2, _080EE420 + adds r0, r0, r2 + ldrh r0, [r0] + mov ip, r1 + cmp r0, #0 + bne _080EE43C + movs r1, #0 + ldr r6, _080EE424 +_080EE3EE: + mov r7, ip + ldr r4, [r7] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r3, r0, #2 + adds r2, r4, r3 + adds r0, r2, r6 + ldrb r0, [r0] + cmp r0, #0x29 + bne _080EE432 + ldr r7, _080EE428 + adds r0, r2, r7 + ldrb r0, [r0] + cmp r0, #1 + bne _080EE432 + adds r0, r3, r6 + adds r1, r4, r0 + ldrh r0, [r1, #0x16] + cmp r0, r5 + bhs _080EE42C + movs r0, #0 + strh r0, [r1, #0x16] + b _080EE43C + .align 2, 0 +_080EE41C: .4byte 0x03005AEC +_080EE420: .4byte 0x00002B90 +_080EE424: .4byte 0x000027CC +_080EE428: .4byte 0x000027CD +_080EE42C: + subs r0, r0, r5 + strh r0, [r1, #0x16] + b _080EE43C +_080EE432: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x17 + bls _080EE3EE +_080EE43C: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080EE3D4 + + thumb_func_start UpdateMassOutbreakTimeLeft +UpdateMassOutbreakTimeLeft: @ 0x080EE444 + push {lr} + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _080EE460 + ldr r0, [r0] + ldr r3, _080EE464 + adds r1, r0, r3 + ldrh r0, [r1] + cmp r0, r2 + bhi _080EE468 + bl EndMassOutbreak + b _080EE46C + .align 2, 0 +_080EE460: .4byte 0x03005AEC +_080EE464: .4byte 0x00002BA2 +_080EE468: + subs r0, r0, r2 + strh r0, [r1] +_080EE46C: + pop {r0} + bx r0 + thumb_func_end UpdateMassOutbreakTimeLeft + + thumb_func_start sub_080EE470 +sub_080EE470: @ 0x080EE470 + push {r4, lr} + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080EE498 + ldr r4, _080EE494 + ldrh r0, [r4] + lsrs r0, r0, #8 + cmp r0, #4 + bls _080EE486 + bl PutFishingAdviceShowOnTheAir +_080EE486: + ldrb r0, [r4] + strh r0, [r4] + cmp r0, #0xff + beq _080EE4BC + adds r0, #1 + b _080EE4BA + .align 2, 0 +_080EE494: .4byte 0x02039CF2 +_080EE498: + ldr r4, _080EE4C4 + ldrb r0, [r4] + cmp r0, #4 + bls _080EE4A4 + bl PutFishingAdviceShowOnTheAir +_080EE4A4: + ldrh r0, [r4] + movs r1, #0xff + lsls r1, r1, #8 + ands r1, r0 + strh r1, [r4] + lsrs r0, r1, #8 + cmp r0, #0xff + beq _080EE4BC + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r1, r2 +_080EE4BA: + strh r0, [r4] +_080EE4BC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EE4C4: .4byte 0x02039CF2 + thumb_func_end sub_080EE470 + + thumb_func_start PutFishingAdviceShowOnTheAir +PutFishingAdviceShowOnTheAir: @ 0x080EE4C8 + push {r4, r5, r6, lr} + ldr r6, _080EE540 + ldr r0, [r6] + ldr r5, _080EE544 + adds r0, r0, r5 + bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray + ldr r4, _080EE548 + strb r0, [r4] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080EE538 + movs r0, #0x18 + movs r1, #0 + bl HasMixableShowAlreadyBeenSpawnedWithPlayerID + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080EE538 + movs r1, #0 + ldrsb r1, [r4, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r4, [r6] + adds r4, r4, r0 + movs r1, #0 + movs r0, #0x18 + strb r0, [r4] + strb r1, [r4, #1] + ldr r1, _080EE54C + ldrh r0, [r1] + strb r0, [r4, #2] + ldrh r0, [r1] + lsrs r0, r0, #8 + strb r0, [r4, #3] + ldr r0, _080EE550 + ldrh r0, [r0] + strh r0, [r4, #4] + adds r0, r4, #0 + adds r0, #0x13 + ldr r1, _080EE554 + ldr r1, [r1] + bl StringCopy + adds r0, r4, #0 + bl tv_store_id_3x + ldr r0, _080EE558 + ldrb r0, [r0] + strb r0, [r4, #6] +_080EE538: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080EE540: .4byte 0x03005AEC +_080EE544: .4byte 0x000027CC +_080EE548: .4byte 0x03005E20 +_080EE54C: .4byte 0x02039CF2 +_080EE550: .4byte 0x02039CF0 +_080EE554: .4byte 0x03005AF0 +_080EE558: .4byte 0x0829BDA5 + thumb_func_end PutFishingAdviceShowOnTheAir + + thumb_func_start SetPokemonAnglerSpecies +SetPokemonAnglerSpecies: @ 0x080EE55C + ldr r1, _080EE564 + strh r0, [r1] + bx lr + .align 2, 0 +_080EE564: .4byte 0x02039CF0 + thumb_func_end SetPokemonAnglerSpecies + + thumb_func_start sub_080EE568 +sub_080EE568: @ 0x080EE568 + push {r4, lr} + ldr r4, _080EE594 + ldr r0, [r4] + ldr r2, _080EE598 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, #0x19 + bne _080EE58E + ldrh r0, [r1, #2] + cmp r0, #0x13 + bls _080EE582 + bl sub_080EE5A0 +_080EE582: + ldr r0, [r4] + ldr r1, _080EE59C + adds r0, r0, r1 + movs r1, #0x18 + bl DeleteTVShowInArrayByIdx +_080EE58E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EE594: .4byte 0x03005AEC +_080EE598: .4byte 0x00002B2C +_080EE59C: .4byte 0x000027CC + thumb_func_end sub_080EE568 + + thumb_func_start sub_080EE5A0 +sub_080EE5A0: @ 0x080EE5A0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r7, _080EE648 + ldr r0, [r7] + ldr r1, _080EE64C + adds r5, r0, r1 + ldr r0, _080EE650 + bl TV_BernoulliTrial + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + bne _080EE63C + ldr r0, [r7] + ldr r1, _080EE654 + mov r8, r1 + add r0, r8 + bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray + ldr r4, _080EE658 + strb r0, [r4] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080EE63C + movs r0, #0x19 + movs r1, #0 + bl HasMixableShowAlreadyBeenSpawnedWithPlayerID + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080EE63C + movs r1, #0 + ldrsb r1, [r4, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + ldr r4, [r7] + adds r4, r4, r0 + movs r0, #0x19 + strb r0, [r4] + strb r6, [r4, #1] + ldrh r0, [r5, #2] + strh r0, [r4, #2] + movs r0, #5 + bl GetGameStat + ldrh r1, [r5, #6] + subs r0, r0, r1 + strh r0, [r4, #6] + ldrh r0, [r5, #4] + strh r0, [r4, #4] + ldrh r0, [r5, #8] + strh r0, [r4, #8] + ldrb r0, [r5, #0xa] + strb r0, [r4, #0xa] + adds r0, r4, #0 + adds r0, #0x13 + ldr r1, _080EE65C + ldr r1, [r1] + bl StringCopy + adds r0, r4, #0 + bl tv_store_id_3x + ldr r0, _080EE660 + ldrb r0, [r0] + strb r0, [r4, #0xb] + ldr r0, [r7] + add r0, r8 + movs r1, #0x18 + bl DeleteTVShowInArrayByIdx +_080EE63C: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080EE648: .4byte 0x03005AEC +_080EE64C: .4byte 0x00002B2C +_080EE650: .4byte 0x0000FFFF +_080EE654: .4byte 0x000027CC +_080EE658: .4byte 0x03005E20 +_080EE65C: .4byte 0x03005AF0 +_080EE660: .4byte 0x0829BDA5 + thumb_func_end sub_080EE5A0 + + thumb_func_start sub_080EE664 +sub_080EE664: @ 0x080EE664 + push {r4, r5, r6, r7, lr} + movs r0, #0x1a + movs r1, #1 + bl HasMixableShowAlreadyBeenSpawnedWithPlayerID + ldr r4, _080EE6D8 + ldr r0, [r4] + ldr r1, _080EE6DC + adds r0, r0, r1 + bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray + ldr r2, _080EE6E0 + strb r0, [r2] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080EE760 + movs r1, #0 + ldrsb r1, [r2, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r2, _080EE6DC + adds r0, r0, r2 + ldr r1, [r4] + adds r4, r1, r0 + movs r1, #0 + movs r0, #0x1a + strb r0, [r4] + strb r1, [r4, #1] + ldr r6, _080EE6E4 + movs r5, #0 +_080EE6A8: + lsls r0, r6, #0x10 + lsrs r0, r0, #0x10 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080EE6BC + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_080EE6BC: + adds r6, #1 + ldr r0, _080EE6E8 + cmp r6, r0 + bls _080EE6A8 + strb r5, [r4, #4] + bl IsNationalPokedexEnabled + cmp r0, #0 + beq _080EE6EC + movs r0, #1 + bl GetNationalPokedexCount + b _080EE6F2 + .align 2, 0 +_080EE6D8: .4byte 0x03005AEC +_080EE6DC: .4byte 0x000027CC +_080EE6E0: .4byte 0x03005E20 +_080EE6E4: .4byte 0x00000867 +_080EE6E8: .4byte 0x0000086E +_080EE6EC: + movs r0, #1 + bl GetHoennPokedexCount +_080EE6F2: + strh r0, [r4, #2] + ldr r1, _080EE768 + ldrb r0, [r1, #0x14] + strb r0, [r4, #7] + ldrh r0, [r1, #0x12] + movs r1, #0 + strh r0, [r4, #0xa] + strb r1, [r4, #5] + strb r1, [r4, #6] + movs r6, #0 + adds r7, r4, #0 + adds r7, #0x13 +_080EE70A: + ldr r0, _080EE76C + lsls r5, r6, #1 + adds r0, r5, r0 + ldrh r0, [r0] + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080EE724 + ldrb r0, [r4, #5] + adds r0, #1 + strb r0, [r4, #5] +_080EE724: + ldr r0, _080EE770 + adds r0, r5, r0 + ldrh r0, [r0] + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080EE73C + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] +_080EE73C: + adds r6, #1 + cmp r6, #6 + bls _080EE70A + ldr r0, _080EE774 + ldr r1, [r0] + ldr r2, _080EE778 + adds r0, r1, r2 + ldrh r0, [r0] + strh r0, [r4, #8] + adds r0, r7, #0 + bl StringCopy + adds r0, r4, #0 + bl tv_store_id_3x + ldr r0, _080EE77C + ldrb r0, [r0] + strb r0, [r4, #0xc] +_080EE760: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080EE768: .4byte 0x02036FB8 +_080EE76C: .4byte 0x08568B8A +_080EE770: .4byte 0x08568B7C +_080EE774: .4byte 0x03005AF0 +_080EE778: .4byte 0x00000EB8 +_080EE77C: .4byte 0x0829BDA5 + thumb_func_end sub_080EE664 + + thumb_func_start sub_080EE780 +sub_080EE780: @ 0x080EE780 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldr r7, _080EE7F4 + ldr r0, [r7] + ldr r6, _080EE7F8 + adds r0, r0, r6 + bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray + ldr r4, _080EE7FC + strb r0, [r4] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080EE7EE + movs r0, #0x1b + movs r1, #0 + bl HasMixableShowAlreadyBeenSpawnedWithPlayerID + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080EE7EE + movs r1, #0 + ldrsb r1, [r4, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r4, [r7] + adds r4, r4, r0 + movs r1, #0 + movs r0, #0x1b + strb r0, [r4] + strb r1, [r4, #1] + ldr r1, _080EE800 + ldr r0, [r1] + ldrb r0, [r0, #8] + strb r0, [r4, #8] + ldrh r0, [r5] + strh r0, [r4, #4] + ldrh r0, [r5, #2] + strh r0, [r4, #6] + adds r0, r4, #0 + adds r0, #0x13 + ldr r1, [r1] + bl StringCopy + adds r0, r4, #0 + bl tv_store_id_3x + ldr r0, _080EE804 + ldrb r0, [r0] + strb r0, [r4, #9] +_080EE7EE: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080EE7F4: .4byte 0x03005AEC +_080EE7F8: .4byte 0x000027CC +_080EE7FC: .4byte 0x03005E20 +_080EE800: .4byte 0x03005AF0 +_080EE804: .4byte 0x0829BDA5 + thumb_func_end sub_080EE780 + + thumb_func_start sub_080EE808 +sub_080EE808: @ 0x080EE808 + push {r4, r5, r6, lr} + ldr r6, _080EE87C + ldr r0, [r6] + ldr r5, _080EE880 + adds r0, r0, r5 + bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray + ldr r4, _080EE884 + strb r0, [r4] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080EE876 + movs r0, #0x1c + movs r1, #0 + bl HasMixableShowAlreadyBeenSpawnedWithPlayerID + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080EE876 + movs r1, #0 + ldrsb r1, [r4, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r4, [r6] + adds r4, r4, r0 + movs r1, #0 + movs r0, #0x1c + strb r0, [r4] + strb r1, [r4, #1] + ldr r0, _080EE888 + ldrh r0, [r0] + strh r0, [r4, #2] + ldr r1, _080EE88C + ldrb r0, [r1, #0x14] + strb r0, [r4, #4] + ldrh r0, [r1, #0x12] + strh r0, [r4, #6] + adds r0, r4, #0 + adds r0, #0x13 + ldr r1, _080EE890 + ldr r1, [r1] + bl StringCopy + adds r0, r4, #0 + bl tv_store_id_3x + ldr r0, _080EE894 + ldrb r0, [r0] + strb r0, [r4, #5] +_080EE876: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080EE87C: .4byte 0x03005AEC +_080EE880: .4byte 0x000027CC +_080EE884: .4byte 0x03005E20 +_080EE888: .4byte 0x02037282 +_080EE88C: .4byte 0x02036FB8 +_080EE890: .4byte 0x03005AF0 +_080EE894: .4byte 0x0829BDA5 + thumb_func_end sub_080EE808 + + thumb_func_start AlertTVOfNewCoinTotal +AlertTVOfNewCoinTotal: @ 0x080EE898 + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, _080EE8DC + ldr r0, [r0] + ldr r1, _080EE8E0 + adds r0, r0, r1 + bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray + ldr r1, _080EE8E4 + strb r0, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080EE974 + movs r0, #0x1d + movs r1, #0 + bl HasMixableShowAlreadyBeenSpawnedWithPlayerID + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080EE974 + movs r5, #0 + ldr r0, _080EE8E8 + ldrb r1, [r0] + adds r6, r0, #0 + cmp r1, #0 + beq _080EE8EC + cmp r1, #1 + beq _080EE90E + b _080EE974 + .align 2, 0 +_080EE8DC: .4byte 0x03005AEC +_080EE8E0: .4byte 0x000027CC +_080EE8E4: .4byte 0x03005E20 +_080EE8E8: .4byte 0x02039CF6 +_080EE8EC: + ldr r0, _080EE900 + ldrh r1, [r0] + adds r0, r1, #0 + adds r0, #0xc8 + cmp r4, r0 + blt _080EE904 + movs r5, #1 + subs r0, r4, r1 + b _080EE932 + .align 2, 0 +_080EE900: .4byte 0x02039CF4 +_080EE904: + cmp r1, #0x63 + bls _080EE974 + adds r0, r1, #0 + subs r0, #0x64 + b _080EE92C +_080EE90E: + ldr r0, _080EE920 + ldrh r1, [r0] + adds r0, r1, #0 + adds r0, #0x32 + cmp r4, r0 + blt _080EE924 + movs r5, #1 + subs r0, r4, r1 + b _080EE932 + .align 2, 0 +_080EE920: .4byte 0x02039CF4 +_080EE924: + cmp r1, #0x31 + bls _080EE974 + adds r0, r1, #0 + subs r0, #0x32 +_080EE92C: + cmp r4, r0 + bgt _080EE974 + subs r0, r1, r4 +_080EE932: + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldr r2, _080EE97C + ldr r0, _080EE980 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080EE984 + adds r0, r0, r1 + ldr r4, [r2] + adds r4, r4, r0 + movs r1, #0 + movs r0, #0x1d + strb r0, [r4] + strb r1, [r4, #1] + strh r3, [r4, #4] + ldrb r0, [r6] + strb r0, [r4, #3] + strb r5, [r4, #2] + adds r0, r4, #0 + adds r0, #0x13 + ldr r1, _080EE988 + ldr r1, [r1] + bl StringCopy + adds r0, r4, #0 + bl tv_store_id_3x + ldr r0, _080EE98C + ldrb r0, [r0] + strb r0, [r4, #8] +_080EE974: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080EE97C: .4byte 0x03005AEC +_080EE980: .4byte 0x03005E20 +_080EE984: .4byte 0x000027CC +_080EE988: .4byte 0x03005AF0 +_080EE98C: .4byte 0x0829BDA5 + thumb_func_end AlertTVOfNewCoinTotal + + thumb_func_start AlertTVThatPlayerPlayedSlotMachine +AlertTVThatPlayerPlayedSlotMachine: @ 0x080EE990 + ldr r2, _080EE99C + movs r1, #0 + strb r1, [r2] + ldr r1, _080EE9A0 + strh r0, [r1] + bx lr + .align 2, 0 +_080EE99C: .4byte 0x02039CF6 +_080EE9A0: .4byte 0x02039CF4 + thumb_func_end AlertTVThatPlayerPlayedSlotMachine + + thumb_func_start AlertTVThatPlayerPlayedRoulette +AlertTVThatPlayerPlayedRoulette: @ 0x080EE9A4 + ldr r2, _080EE9B0 + movs r1, #1 + strb r1, [r2] + ldr r1, _080EE9B4 + strh r0, [r1] + bx lr + .align 2, 0 +_080EE9B0: .4byte 0x02039CF6 +_080EE9B4: .4byte 0x02039CF4 + thumb_func_end AlertTVThatPlayerPlayedRoulette + + thumb_func_start sub_080EE9B8 +sub_080EE9B8: @ 0x080EE9B8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov r8, r0 + movs r3, #0 + ldr r6, _080EE9FC + ldr r7, _080EEA00 + adds r2, r6, #0 + movs r1, #0 +_080EE9CC: + adds r0, r3, r2 + strb r1, [r0] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0xf + bls _080EE9CC + movs r3, #0 + movs r5, #0 +_080EE9DE: + ldr r0, [r7] + ldr r1, _080EEA04 + adds r0, r0, r1 + adds r0, r0, r3 + ldrb r4, [r0] + adds r3, #1 + cmp r4, #0 + beq _080EEA2A + movs r1, #0 + ldrb r0, [r6] + cmp r0, #0 + bne _080EEA08 + strb r4, [r6] + b _080EEA24 + .align 2, 0 +_080EE9FC: .4byte 0x03005E40 +_080EEA00: .4byte 0x03005AEC +_080EEA04: .4byte 0x00001AAE +_080EEA08: + adds r0, r1, r6 + ldrb r0, [r0] + cmp r0, r4 + beq _080EEA2A + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xf + bhi _080EEA2A + adds r2, r1, r6 + ldrb r0, [r2] + cmp r0, #0 + bne _080EEA08 + strb r4, [r2] +_080EEA24: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_080EEA2A: + lsls r0, r3, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0xf + bls _080EE9DE + cmp r5, #4 + bls _080EEA3E + movs r0, #4 + mov r1, r8 + strb r0, [r1, #3] + b _080EEA42 +_080EEA3E: + mov r0, r8 + strb r5, [r0, #3] +_080EEA42: + mov r1, r8 + ldrb r0, [r1, #3] + cmp r0, #0 + beq _080EEAC4 + cmp r0, #1 + bne _080EEA54 + ldrb r0, [r6] + strb r0, [r1, #4] + b _080EEAC4 +_080EEA54: + movs r6, #0 + adds r7, r5, #0 + muls r7, r5, r7 + cmp r6, r7 + bge _080EEA9E + ldr r0, _080EEAD0 + mov sb, r0 +_080EEA62: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r5, #0 + bl __modsi3 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r5, #0 + bl __modsi3 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + mov r0, sb + adds r2, r4, r0 + ldrb r3, [r2] + add r1, sb + ldrb r0, [r1] + strb r0, [r2] + strb r3, [r1] + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, r7 + blt _080EEA62 +_080EEA9E: + movs r3, #0 + mov r1, r8 + ldrb r1, [r1, #3] + cmp r3, r1 + bhs _080EEAC4 + mov r2, r8 + adds r2, #4 + ldr r4, _080EEAD0 +_080EEAAE: + adds r1, r2, r3 + adds r0, r3, r4 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + mov r0, r8 + ldrb r0, [r0, #3] + cmp r3, r0 + blo _080EEAAE +_080EEAC4: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080EEAD0: .4byte 0x03005E40 + thumb_func_end sub_080EE9B8 + + thumb_func_start sub_080EEAD4 +sub_080EEAD4: @ 0x080EEAD4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sl, r0 + movs r7, #0 + movs r0, #0 + mov sb, r0 + ldr r1, _080EEC18 + mov r8, r1 +_080EEAEA: + movs r0, #0x64 + adds r1, r7, #0 + muls r1, r0, r1 + ldr r0, _080EEC1C + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + cmp r0, #0 + beq _080EEBB4 + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + bne _080EEBB4 + adds r0, r4, #0 + movs r1, #0x38 + bl GetMonData + ldr r2, _080EEC20 + mov r3, sb + lsls r1, r3, #3 + adds r6, r1, r2 + strb r0, [r6] + adds r0, r4, #0 + movs r1, #0xb + bl GetMonData + strh r0, [r6, #2] + movs r5, #0 + adds r0, r4, #0 + movs r1, #0xd + bl GetMonData + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + beq _080EEB40 + mov r0, r8 + strh r1, [r0] + movs r5, #1 +_080EEB40: + adds r0, r4, #0 + movs r1, #0xe + bl GetMonData + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + beq _080EEB5C + lsls r0, r5, #1 + add r0, r8 + strh r1, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_080EEB5C: + adds r0, r4, #0 + movs r1, #0xf + bl GetMonData + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + beq _080EEB78 + lsls r0, r5, #1 + add r0, r8 + strh r1, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_080EEB78: + adds r0, r4, #0 + movs r1, #0x10 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + beq _080EEB94 + lsls r0, r5, #1 + add r0, r8 + strh r1, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_080EEB94: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r5, #0 + bl __modsi3 + lsls r0, r0, #1 + add r0, r8 + ldrh r0, [r0] + strh r0, [r6, #4] + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 +_080EEBB4: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #5 + bls _080EEAEA + movs r7, #0 + movs r1, #0 + cmp r1, sb + bhs _080EEBDE + ldr r2, _080EEC20 +_080EEBC8: + lsls r0, r7, #3 + adds r0, r0, r2 + ldrb r0, [r0] + adds r0, r1, r0 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, sb + blo _080EEBC8 +_080EEBDE: + adds r0, r1, #0 + mov r1, sb + bl __divsi3 + mov r1, sl + strb r0, [r1, #2] + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r1, sb + bl __modsi3 + lsls r0, r0, #0x10 + ldr r1, _080EEC20 + lsrs r0, r0, #0xd + adds r0, r0, r1 + ldrh r1, [r0, #2] + mov r2, sl + strh r1, [r2, #8] + ldrh r0, [r0, #4] + strh r0, [r2, #0xa] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080EEC18: .4byte 0x03005E30 +_080EEC1C: .4byte 0x02024190 +_080EEC20: .4byte 0x03005E50 + thumb_func_end sub_080EEAD4 + + thumb_func_start TV_PutSecretBaseVisitOnTheAir +TV_PutSecretBaseVisitOnTheAir: @ 0x080EEC24 + push {r4, lr} + movs r0, #0x1f + movs r1, #1 + bl HasMixableShowAlreadyBeenSpawnedWithPlayerID + ldr r4, _080EEC90 + ldr r0, [r4] + ldr r1, _080EEC94 + adds r0, r0, r1 + bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray + ldr r2, _080EEC98 + strb r0, [r2] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080EEC88 + movs r1, #0 + ldrsb r1, [r2, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080EEC94 + adds r0, r0, r1 + ldr r4, [r4] + adds r4, r4, r0 + movs r1, #0 + movs r0, #0x1f + strb r0, [r4] + strb r1, [r4, #1] + adds r0, r4, #0 + adds r0, #0x13 + ldr r1, _080EEC9C + ldr r1, [r1] + bl StringCopy + adds r0, r4, #0 + bl sub_080EE9B8 + adds r0, r4, #0 + bl sub_080EEAD4 + adds r0, r4, #0 + bl tv_store_id_3x + ldr r0, _080EECA0 + ldrb r0, [r0] + strb r0, [r4, #0xc] +_080EEC88: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EEC90: .4byte 0x03005AEC +_080EEC94: .4byte 0x000027CC +_080EEC98: .4byte 0x03005E20 +_080EEC9C: .4byte 0x03005AF0 +_080EECA0: .4byte 0x0829BDA5 + thumb_func_end TV_PutSecretBaseVisitOnTheAir + + thumb_func_start sub_080EECA4 +sub_080EECA4: @ 0x080EECA4 + push {r4, r5, r6, r7, lr} + ldr r6, _080EED44 + ldr r0, [r6] + ldr r5, _080EED48 + adds r0, r0, r5 + bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray + ldr r4, _080EED4C + strb r0, [r4] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _080EECC4 + b _080EEDE2 +_080EECC4: + movs r0, #0x1e + movs r1, #0 + bl HasMixableShowAlreadyBeenSpawnedWithPlayerID + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080EECD6 + b _080EEDE2 +_080EECD6: + movs r1, #0 + ldrsb r1, [r4, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r6] + adds r4, r1, r0 + movs r1, #0 + movs r0, #0x1e + strb r0, [r4] + strb r1, [r4, #1] + movs r5, #0 + ldr r6, _080EED50 + ldr r3, _080EED54 + ldr r7, _080EED58 + adds r2, r6, #0 + adds r2, #0x36 +_080EECFA: + adds r0, r1, r2 + ldrb r0, [r0] + adds r0, r5, r0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xa + bls _080EECFA + ldrb r1, [r6, #5] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080EED1E + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_080EED1E: + ldrb r0, [r3, #0x14] + strb r0, [r4, #4] + adds r0, r4, #0 + adds r0, #0x13 + ldr r1, [r7] + bl StringCopy + ldrh r0, [r6, #6] + strh r0, [r4, #0xa] + ldr r0, _080EED5C + ldrb r0, [r0] + subs r0, #1 + cmp r0, #9 + bhi _080EEDA2 + lsls r0, r0, #2 + ldr r1, _080EED60 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EED44: .4byte 0x03005AEC +_080EED48: .4byte 0x000027CC +_080EED4C: .4byte 0x03005E20 +_080EED50: .4byte 0x03005A70 +_080EED54: .4byte 0x02036FB8 +_080EED58: .4byte 0x03005AF0 +_080EED5C: .4byte 0x02023FDE +_080EED60: .4byte 0x080EED64 +_080EED64: @ jump table + .4byte _080EED96 @ case 0 + .4byte _080EED8C @ case 1 + .4byte _080EED8C @ case 2 + .4byte _080EED9A @ case 3 + .4byte _080EED9A @ case 4 + .4byte _080EED9E @ case 5 + .4byte _080EED92 @ case 6 + .4byte _080EED9A @ case 7 + .4byte _080EEDA2 @ case 8 + .4byte _080EED9E @ case 9 +_080EED8C: + movs r0, #0 + strb r0, [r4] + b _080EEDE2 +_080EED92: + movs r0, #0 + b _080EEDA0 +_080EED96: + movs r0, #1 + b _080EEDA0 +_080EED9A: + movs r0, #2 + b _080EEDA0 +_080EED9E: + movs r0, #3 +_080EEDA0: + strb r0, [r4, #5] +_080EEDA2: + ldr r1, _080EEDC4 + ldrh r0, [r1, #0x20] + strh r0, [r4, #2] + ldrb r0, [r4, #5] + cmp r0, #1 + beq _080EEDD2 + cmp r0, #1 + bgt _080EEDD6 + cmp r0, #0 + bne _080EEDD6 + ldrb r1, [r1, #5] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080EEDC8 + movs r0, #1 + b _080EEDCC + .align 2, 0 +_080EEDC4: .4byte 0x03005A70 +_080EEDC8: + lsls r0, r1, #0x1a + lsrs r0, r0, #0x1c +_080EEDCC: + strh r0, [r4, #6] + strh r5, [r4, #8] + b _080EEDD6 +_080EEDD2: + ldrh r0, [r1, #0x22] + strh r0, [r4, #0xc] +_080EEDD6: + adds r0, r4, #0 + bl tv_store_id_3x + ldr r0, _080EEDE8 + ldrb r0, [r0] + strb r0, [r4, #0xe] +_080EEDE2: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080EEDE8: .4byte 0x0829BDA5 + thumb_func_end sub_080EECA4 + + thumb_func_start sub_080EEDEC +sub_080EEDEC: @ 0x080EEDEC + push {r4, r5, r6, lr} + ldr r6, _080EEE60 + ldr r0, [r6] + ldr r5, _080EEE64 + adds r0, r0, r5 + bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray + ldr r4, _080EEE68 + strb r0, [r4] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080EEE5A + movs r0, #0x20 + movs r1, #0 + bl HasMixableShowAlreadyBeenSpawnedWithPlayerID + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080EEE5A + movs r1, #0 + ldrsb r1, [r4, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r4, [r6] + adds r4, r4, r0 + movs r1, #0 + movs r0, #0x20 + strb r0, [r4] + strb r1, [r4, #1] + adds r0, r4, #0 + adds r0, #0x13 + ldr r1, _080EEE6C + ldr r1, [r1] + bl StringCopy + ldr r0, _080EEE70 + ldrb r1, [r0] + movs r0, #4 + subs r0, r0, r1 + strb r0, [r4, #4] + ldr r0, _080EEE74 + ldrh r0, [r0] + strh r0, [r4, #2] + adds r0, r4, #0 + bl tv_store_id_3x + ldr r0, _080EEE78 + ldrb r0, [r0] + strb r0, [r4, #5] +_080EEE5A: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080EEE60: .4byte 0x03005AEC +_080EEE64: .4byte 0x000027CC +_080EEE68: .4byte 0x03005E20 +_080EEE6C: .4byte 0x03005AF0 +_080EEE70: .4byte 0x02037280 +_080EEE74: .4byte 0x02037282 +_080EEE78: .4byte 0x0829BDA5 + thumb_func_end sub_080EEDEC + + thumb_func_start sub_080EEE7C +sub_080EEE7C: @ 0x080EEE7C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r7, r3, #0 + ldr r3, [sp, #0x24] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sb, r1 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + str r3, [sp] + ldr r0, _080EEF58 + mov r8, r0 + ldr r0, [r0] + ldr r5, _080EEF5C + adds r0, r0, r5 + bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray + ldr r4, _080EEF60 + strb r0, [r4] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080EEF46 + movs r0, #0x21 + movs r1, #0 + bl HasMixableShowAlreadyBeenSpawnedWithPlayerID + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080EEF46 + movs r1, #0 + ldrsb r1, [r4, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + mov r2, r8 + ldr r1, [r2] + adds r4, r1, r0 + movs r1, #0 + movs r0, #0x21 + strb r0, [r4] + strb r1, [r4, #1] + adds r0, r4, #0 + adds r0, #0x13 + ldr r1, _080EEF64 + ldr r1, [r1] + bl StringCopy + mov r0, sl + strh r0, [r4, #4] + mov r1, sb + strh r1, [r4, #6] + lsls r0, r6, #1 + adds r0, r0, r7 + ldrh r0, [r0] + strh r0, [r4, #2] + movs r2, #0 + movs r3, #0 + adds r5, r4, #0 + adds r5, #8 +_080EEF0E: + cmp r2, r6 + beq _080EEF28 + lsls r0, r2, #1 + adds r0, r0, r7 + ldrh r1, [r0] + cmp r1, #0 + beq _080EEF28 + lsls r0, r3, #1 + adds r0, r5, r0 + strh r1, [r0] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 +_080EEF28: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #3 + bls _080EEF0E + strb r3, [r4, #0x10] + mov r2, sp + ldrh r2, [r2] + strh r2, [r4, #0xe] + adds r0, r4, #0 + bl tv_store_id_3x + ldr r0, _080EEF68 + ldrb r0, [r0] + strb r0, [r4, #0x11] +_080EEF46: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080EEF58: .4byte 0x03005AEC +_080EEF5C: .4byte 0x000027CC +_080EEF60: .4byte 0x03005E20 +_080EEF64: .4byte 0x03005AF0 +_080EEF68: .4byte 0x0829BDA5 + thumb_func_end sub_080EEE7C + + thumb_func_start sub_080EEF6C +sub_080EEF6C: @ 0x080EEF6C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + ldr r6, _080EEFE8 + ldr r0, [r6] + ldr r5, _080EEFEC + adds r0, r0, r5 + bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray + ldr r4, _080EEFF0 + strb r0, [r4] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080EEFDE + movs r0, #0x27 + movs r1, #0 + bl HasMixableShowAlreadyBeenSpawnedWithPlayerID + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080EEFDE + movs r1, #0 + ldrsb r1, [r4, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r4, [r6] + adds r4, r4, r0 + movs r1, #0 + movs r0, #0x27 + strb r0, [r4] + strb r1, [r4, #1] + adds r0, r4, #0 + adds r0, #0x13 + ldr r1, _080EEFF4 + ldr r1, [r1] + bl StringCopy + mov r0, r8 + strb r0, [r4, #2] + strb r7, [r4, #3] + adds r0, r4, #0 + bl tv_store_id_3x + ldr r0, _080EEFF8 + ldrb r0, [r0] + strb r0, [r4, #4] +_080EEFDE: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080EEFE8: .4byte 0x03005AEC +_080EEFEC: .4byte 0x000027CC +_080EEFF0: .4byte 0x03005E20 +_080EEFF4: .4byte 0x03005AF0 +_080EEFF8: .4byte 0x0829BDA5 + thumb_func_end sub_080EEF6C + + thumb_func_start sub_080EEFFC +sub_080EEFFC: @ 0x080EEFFC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + ldr r7, _080EF094 + ldr r0, [r7] + ldr r6, _080EF098 + adds r0, r0, r6 + bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray + ldr r4, _080EF09C + strb r0, [r4] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080EF0B2 + movs r0, #0x23 + movs r1, #0 + bl HasMixableShowAlreadyBeenSpawnedWithPlayerID + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080EF0B2 + movs r1, #0 + ldrsb r1, [r4, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r1, [r7] + adds r4, r1, r0 + movs r1, #0 + movs r0, #0x23 + strb r0, [r4] + strb r1, [r4, #1] + adds r0, r4, #0 + adds r0, #0x13 + ldr r1, _080EF0A0 + ldr r1, [r1] + bl StringCopy + adds r2, r4, #4 + adds r0, r5, #0 + movs r1, #2 + bl GetMonData + adds r0, r5, #0 + bl GetRibbonCount + strb r0, [r4, #2] + mov r0, r8 + bl TV_MonDataIdxToRibbon + strb r0, [r4, #3] + adds r0, r4, #0 + bl tv_store_id_3x + ldr r0, _080EF0A4 + ldrb r0, [r0] + strb r0, [r4, #0xf] + cmp r0, #1 + beq _080EF090 + adds r0, r5, #0 + movs r1, #3 + bl GetMonData + cmp r0, #1 + bne _080EF0A8 +_080EF090: + movs r0, #1 + b _080EF0B0 + .align 2, 0 +_080EF094: .4byte 0x03005AEC +_080EF098: .4byte 0x000027CC +_080EF09C: .4byte 0x03005E20 +_080EF0A0: .4byte 0x03005AF0 +_080EF0A4: .4byte 0x0829BDA5 +_080EF0A8: + adds r0, r5, #0 + movs r1, #3 + bl GetMonData +_080EF0B0: + strb r0, [r4, #0x10] +_080EF0B2: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_080EEFFC + + thumb_func_start GetRibbonCount +GetRibbonCount: @ 0x080EF0BC + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0x32 + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + movs r1, #0x33 + bl GetMonData + adds r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + movs r1, #0x34 + bl GetMonData + adds r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + movs r1, #0x35 + bl GetMonData + adds r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + movs r1, #0x36 + bl GetMonData + adds r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + movs r1, #0x43 + bl GetMonData + adds r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + movs r1, #0x44 + bl GetMonData + adds r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + movs r1, #0x45 + bl GetMonData + adds r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + movs r1, #0x46 + bl GetMonData + adds r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + movs r1, #0x47 + bl GetMonData + adds r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + movs r1, #0x48 + bl GetMonData + adds r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + movs r1, #0x49 + bl GetMonData + adds r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + movs r1, #0x4a + bl GetMonData + adds r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + movs r1, #0x4b + bl GetMonData + adds r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + movs r1, #0x4c + bl GetMonData + adds r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + movs r1, #0x4d + bl GetMonData + adds r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + movs r1, #0x4e + bl GetMonData + adds r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end GetRibbonCount + + thumb_func_start TV_MonDataIdxToRibbon +TV_MonDataIdxToRibbon: @ 0x080EF1B4 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x43 + beq _080EF23A + cmp r0, #0x32 + bne _080EF1C6 + movs r0, #1 + b _080EF240 +_080EF1C6: + cmp r0, #0x33 + bne _080EF1CE + movs r0, #5 + b _080EF240 +_080EF1CE: + cmp r0, #0x34 + bne _080EF1D6 + movs r0, #9 + b _080EF240 +_080EF1D6: + cmp r0, #0x35 + bne _080EF1DE + movs r0, #0xd + b _080EF240 +_080EF1DE: + cmp r0, #0x36 + bne _080EF1E6 + movs r0, #0x11 + b _080EF240 +_080EF1E6: + cmp r0, #0x44 + bne _080EF1EE + movs r0, #0x15 + b _080EF240 +_080EF1EE: + cmp r0, #0x45 + bne _080EF1F6 + movs r0, #0x16 + b _080EF240 +_080EF1F6: + cmp r0, #0x46 + bne _080EF1FE + movs r0, #0x17 + b _080EF240 +_080EF1FE: + cmp r0, #0x47 + bne _080EF206 + movs r0, #0x18 + b _080EF240 +_080EF206: + cmp r0, #0x48 + bne _080EF20E + movs r0, #0x19 + b _080EF240 +_080EF20E: + cmp r0, #0x49 + bne _080EF216 + movs r0, #0x1a + b _080EF240 +_080EF216: + cmp r0, #0x4a + bne _080EF21E + movs r0, #0x1b + b _080EF240 +_080EF21E: + cmp r0, #0x4b + bne _080EF226 + movs r0, #0x1c + b _080EF240 +_080EF226: + cmp r0, #0x4c + bne _080EF22E + movs r0, #0x1d + b _080EF240 +_080EF22E: + cmp r0, #0x4d + bne _080EF236 + movs r0, #0x1e + b _080EF240 +_080EF236: + cmp r0, #0x4e + beq _080EF23E +_080EF23A: + movs r0, #0 + b _080EF240 +_080EF23E: + movs r0, #0x1f +_080EF240: + pop {r1} + bx r1 + thumb_func_end TV_MonDataIdxToRibbon + + thumb_func_start sub_080EF244 +sub_080EF244: @ 0x080EF244 + push {r4, r5, r6, lr} + ldr r5, _080EF2BC + ldr r0, [r5] + ldr r6, _080EF2C0 + adds r0, r0, r6 + bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray + ldr r4, _080EF2C4 + strb r0, [r4] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080EF2B4 + movs r0, #0x22 + movs r1, #0 + bl HasMixableShowAlreadyBeenSpawnedWithPlayerID + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080EF2B4 + movs r1, #0 + ldrsb r1, [r4, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r4, [r5] + adds r4, r4, r0 + movs r1, #0 + movs r0, #0x22 + strb r0, [r4] + strb r1, [r4, #1] + adds r0, r4, #0 + adds r0, #0x13 + ldr r1, _080EF2C8 + ldr r1, [r1] + bl StringCopy + ldr r0, [r5] + ldr r2, _080EF2CC + adds r1, r0, r2 + ldrh r1, [r1] + strh r1, [r4, #4] + ldr r1, _080EF2D0 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r4, #6] + adds r0, r4, #0 + bl tv_store_id_3x + ldr r0, _080EF2D4 + ldrb r0, [r0] + strb r0, [r4, #8] +_080EF2B4: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080EF2BC: .4byte 0x03005AEC +_080EF2C0: .4byte 0x000027CC +_080EF2C4: .4byte 0x03005E20 +_080EF2C8: .4byte 0x03005AF0 +_080EF2CC: .4byte 0x00002BB0 +_080EF2D0: .4byte 0x00002BB2 +_080EF2D4: .4byte 0x0829BDA5 + thumb_func_end sub_080EF244 + + thumb_func_start sub_080EF2D8 +sub_080EF2D8: @ 0x080EF2D8 + push {r4, lr} + ldr r4, _080EF314 + ldr r0, [r4] + ldr r1, _080EF318 + adds r0, r0, r1 + bl FindEmptyTVSlotWithinFirstFiveShowsOfArray + ldr r1, _080EF31C + strb r0, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080EF328 + movs r0, #0xb + bl FindActiveBroadcastByShowType_SetScriptResult + ldr r0, _080EF320 + ldrh r0, [r0] + cmp r0, #1 + beq _080EF328 + ldr r0, [r4] + ldr r1, _080EF324 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0xff + beq _080EF328 + movs r0, #0 + b _080EF32A + .align 2, 0 +_080EF314: .4byte 0x03005AEC +_080EF318: .4byte 0x000027CC +_080EF31C: .4byte 0x03005E20 +_080EF320: .4byte 0x02037290 +_080EF324: .4byte 0x00003150 +_080EF328: + movs r0, #1 +_080EF32A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_080EF2D8 + + thumb_func_start sub_080EF330 +sub_080EF330: @ 0x080EF330 + push {r4, r5, r6, r7, lr} + movs r0, #0x24 + movs r1, #0 + bl HasMixableShowAlreadyBeenSpawnedWithPlayerID + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080EF388 + ldr r0, _080EF3A8 + ldr r0, [r0] + ldr r1, _080EF3AC + adds r7, r0, r1 + bl GetPlayerIDAsU32 + adds r4, r0, #0 + movs r6, #5 + lsrs r5, r4, #8 +_080EF354: + lsls r0, r6, #3 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r1, r0, r7 + ldrb r0, [r1] + cmp r0, #0x24 + bne _080EF37E + movs r3, #0xff + adds r0, r4, #0 + ands r0, r3 + adds r2, r1, #0 + adds r2, #0x22 + ldrb r2, [r2] + cmp r0, r2 + bne _080EF37E + adds r0, r5, #0 + ands r0, r3 + adds r1, #0x23 + ldrb r1, [r1] + cmp r0, r1 + beq _080EF3B4 +_080EF37E: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0x17 + bls _080EF354 +_080EF388: + ldr r0, _080EF3A8 + ldr r0, [r0] + ldr r1, _080EF3AC + adds r0, r0, r1 + bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray + ldr r1, _080EF3B0 + strb r0, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080EF3D8 + movs r0, #1 + b _080EF3DA + .align 2, 0 +_080EF3A8: .4byte 0x03005AEC +_080EF3AC: .4byte 0x000027CC +_080EF3B0: .4byte 0x03005E20 +_080EF3B4: + ldr r5, _080EF3D0 + ldr r0, [r5] + ldr r4, _080EF3D4 + adds r0, r0, r4 + adds r1, r6, #0 + bl DeleteTVShowInArrayByIdx + ldr r0, [r5] + adds r0, r0, r4 + bl sub_080F0428 + movs r0, #1 + b _080EF3DA + .align 2, 0 +_080EF3D0: .4byte 0x03005AEC +_080EF3D4: .4byte 0x000027CC +_080EF3D8: + movs r0, #0 +_080EF3DA: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_080EF330 + + thumb_func_start sub_080EF3E0 +sub_080EF3E0: @ 0x080EF3E0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + ldr r5, _080EF448 + ldr r0, [r5] + ldr r1, _080EF44C + adds r0, r0, r1 + bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray + ldr r2, _080EF450 + strb r0, [r2] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _080EF40C + b _080EF56A +_080EF40C: + movs r1, #0 + ldrsb r1, [r2, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r2, _080EF44C + adds r0, r0, r2 + ldr r1, [r5] + adds r7, r1, r0 + movs r1, #0 + movs r0, #0x24 + strb r0, [r7] + strb r1, [r7, #1] + adds r0, r7, #0 + adds r0, #0x13 + ldr r1, _080EF454 + ldr r1, [r1] + bl StringCopy + strh r6, [r7, #2] + strb r4, [r7, #0xd] + subs r0, r4, #1 + cmp r0, #0xc + bls _080EF43E + b _080EF55E +_080EF43E: + lsls r0, r0, #2 + ldr r1, _080EF458 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EF448: .4byte 0x03005AEC +_080EF44C: .4byte 0x000027CC +_080EF450: .4byte 0x03005E20 +_080EF454: .4byte 0x03005AF0 +_080EF458: .4byte 0x080EF45C +_080EF45C: @ jump table + .4byte _080EF490 @ case 0 + .4byte _080EF4C0 @ case 1 + .4byte _080EF500 @ case 2 + .4byte _080EF518 @ case 3 + .4byte _080EF490 @ case 4 + .4byte _080EF490 @ case 5 + .4byte _080EF490 @ case 6 + .4byte _080EF490 @ case 7 + .4byte _080EF490 @ case 8 + .4byte _080EF490 @ case 9 + .4byte _080EF490 @ case 10 + .4byte _080EF490 @ case 11 + .4byte _080EF490 @ case 12 +_080EF490: + ldr r4, _080EF4BC + adds r0, r4, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + strh r0, [r7, #4] + adds r0, r4, #0 + adds r0, #0x64 + movs r1, #0xb + movs r2, #0 + bl GetMonData + strh r0, [r7, #6] + adds r4, #0xc8 + adds r0, r4, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + strh r0, [r7, #8] + b _080EF55E + .align 2, 0 +_080EF4BC: .4byte 0x02024190 +_080EF4C0: + ldr r4, _080EF4FC + adds r0, r4, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + strh r0, [r7, #4] + adds r0, r4, #0 + adds r0, #0x64 + movs r1, #0xb + movs r2, #0 + bl GetMonData + strh r0, [r7, #6] + adds r0, r4, #0 + adds r0, #0xc8 + movs r1, #0xb + movs r2, #0 + bl GetMonData + strh r0, [r7, #8] + movs r1, #0x96 + lsls r1, r1, #1 + adds r0, r4, r1 + movs r1, #0xb + movs r2, #0 + bl GetMonData + strh r0, [r7, #0xa] + b _080EF55E + .align 2, 0 +_080EF4FC: .4byte 0x02024190 +_080EF500: + ldr r4, _080EF514 + adds r0, r4, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + strh r0, [r7, #4] + adds r4, #0x64 + adds r0, r4, #0 + b _080EF554 + .align 2, 0 +_080EF514: .4byte 0x02024190 +_080EF518: + ldr r2, _080EF574 + mov r8, r2 + ldr r6, _080EF578 + ldr r0, [r6] + ldr r1, _080EF57C + adds r0, r0, r1 + ldrh r0, [r0] + movs r5, #0x64 + adds r1, r0, #0 + muls r1, r5, r1 + movs r4, #0xea + lsls r4, r4, #1 + adds r1, r1, r4 + ldr r0, [r2] + adds r0, r0, r1 + movs r1, #0xb + movs r2, #0 + bl GetMonData + strh r0, [r7, #4] + ldr r0, [r6] + ldr r2, _080EF580 + adds r0, r0, r2 + ldrh r0, [r0] + adds r1, r0, #0 + muls r1, r5, r1 + adds r1, r1, r4 + mov r2, r8 + ldr r0, [r2] + adds r0, r0, r1 +_080EF554: + movs r1, #0xb + movs r2, #0 + bl GetMonData + strh r0, [r7, #6] +_080EF55E: + adds r0, r7, #0 + bl tv_store_id_3x + ldr r0, _080EF584 + ldrb r0, [r0] + strb r0, [r7, #0xc] +_080EF56A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080EF574: .4byte 0x03005AEC +_080EF578: .4byte 0x03005AF0 +_080EF57C: .4byte 0x00000CAA +_080EF580: .4byte 0x00000CAC +_080EF584: .4byte 0x0829BDA5 + thumb_func_end sub_080EF3E0 + + thumb_func_start sub_080EF588 +sub_080EF588: @ 0x080EF588 + push {r4, r5, r6, r7, lr} + movs r0, #0x26 + movs r1, #0 + bl HasMixableShowAlreadyBeenSpawnedWithPlayerID + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080EF690 + ldr r7, _080EF644 + ldr r0, [r7] + ldr r1, _080EF648 + adds r0, r0, r1 + bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray + ldr r2, _080EF64C + strb r0, [r2] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080EF690 + movs r1, #0 + ldrsb r1, [r2, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080EF648 + adds r0, r0, r1 + ldr r1, [r7] + adds r5, r1, r0 + movs r1, #0 + movs r0, #0x26 + strb r0, [r5] + strb r1, [r5, #1] + adds r0, r5, #0 + adds r0, #0x13 + ldr r1, _080EF650 + ldr r1, [r1] + bl StringCopy + ldr r0, _080EF654 + bl VarGet + strh r0, [r5, #2] + bl DeleteRegistry_Yes + adds r0, r5, #4 + ldr r1, _080EF658 + bl StringCopy + ldr r0, _080EF65C + bl VarGet + strh r0, [r5, #0x10] + ldr r0, _080EF660 + bl VarGet + adds r4, r0, #0 + ldr r0, _080EF664 + bl VarGet + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r0, r0, #0x10 + adds r4, r4, r0 + str r4, [r5, #0xc] + adds r0, r5, #0 + bl tv_store_id_3x + ldr r0, _080EF668 + ldrb r0, [r0] + strb r0, [r5, #0x1b] + cmp r0, #1 + beq _080EF640 + ldr r4, [r7] + ldr r6, _080EF66C + adds r0, r6, #0 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #5 + adds r4, r4, r1 + ldr r0, _080EF670 + adds r4, r4, r0 + ldrb r0, [r4] + cmp r0, #1 + bne _080EF674 +_080EF640: + movs r0, #1 + b _080EF68E + .align 2, 0 +_080EF644: .4byte 0x03005AEC +_080EF648: .4byte 0x000027CC +_080EF64C: .4byte 0x03005E20 +_080EF650: .4byte 0x03005AF0 +_080EF654: .4byte 0x000040EC +_080EF658: .4byte 0x02021C40 +_080EF65C: .4byte 0x000040ED +_080EF660: .4byte 0x000040EE +_080EF664: .4byte 0x000040EF +_080EF668: .4byte 0x0829BDA5 +_080EF66C: .4byte 0x00004054 +_080EF670: .4byte 0x00001AA9 +_080EF674: + adds r0, r6, #0 + bl VarGet + ldr r2, [r7] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #5 + adds r2, r2, r1 + ldr r1, _080EF698 + adds r2, r2, r1 + ldrb r0, [r2] +_080EF68E: + strb r0, [r5, #0x1c] +_080EF690: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080EF698: .4byte 0x00001AA9 + thumb_func_end sub_080EF588 + + thumb_func_start sub_080EF69C +sub_080EF69C: @ 0x080EF69C + push {r4, r5, r6, r7, lr} + movs r5, #0 + ldr r6, _080EF6A8 + adds r7, r6, #2 + b _080EF6B2 + .align 2, 0 +_080EF6A8: .4byte 0x08568B98 +_080EF6AC: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_080EF6B2: + cmp r5, #6 + bhi _080EF6D2 + lsls r4, r5, #2 + adds r0, r4, r6 + ldrh r0, [r0] + bl VarGet + adds r4, r4, r7 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrh r4, [r4] + cmp r0, r4 + blo _080EF6AC + adds r0, r5, #0 + bl sub_080EF6F8 +_080EF6D2: + movs r5, #0 + ldr r4, _080EF6F4 +_080EF6D6: + lsls r0, r5, #2 + adds r0, r0, r4 + ldrh r0, [r0] + movs r1, #0 + bl VarSet + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #6 + bls _080EF6D6 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080EF6F4: .4byte 0x08568B98 + thumb_func_end sub_080EF69C + + thumb_func_start sub_080EF6F8 +sub_080EF6F8: @ 0x080EF6F8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r0, #0x25 + movs r1, #1 + bl HasMixableShowAlreadyBeenSpawnedWithPlayerID + ldr r4, _080EF76C + ldr r0, [r4] + ldr r1, _080EF770 + adds r0, r0, r1 + bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray + ldr r2, _080EF774 + strb r0, [r2] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080EF764 + movs r1, #0 + ldrsb r1, [r2, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080EF770 + adds r0, r0, r1 + ldr r4, [r4] + adds r4, r4, r0 + movs r1, #0 + movs r0, #0x25 + strb r0, [r4] + strb r1, [r4, #1] + adds r0, r4, #0 + adds r0, #0x13 + ldr r1, _080EF778 + ldr r1, [r1] + bl StringCopy + strb r5, [r4, #4] + ldr r1, _080EF77C + lsls r0, r5, #2 + adds r0, r0, r1 + ldrh r0, [r0] + bl VarGet + strh r0, [r4, #2] + adds r0, r4, #0 + bl tv_store_id_3x + ldr r0, _080EF780 + ldrb r0, [r0] + strb r0, [r4, #5] +_080EF764: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080EF76C: .4byte 0x03005AEC +_080EF770: .4byte 0x000027CC +_080EF774: .4byte 0x03005E20 +_080EF778: .4byte 0x03005AF0 +_080EF77C: .4byte 0x08568B98 +_080EF780: .4byte 0x0829BDA5 + thumb_func_end sub_080EF6F8 + + thumb_func_start sub_080EF784 +sub_080EF784: @ 0x080EF784 + push {r4, lr} + ldr r4, _080EF7A4 + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + adds r1, #1 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl VarSet + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EF7A4: .4byte 0x000040E6 + thumb_func_end sub_080EF784 + + thumb_func_start sub_080EF7A8 +sub_080EF7A8: @ 0x080EF7A8 + push {r4, lr} + ldr r4, _080EF7C8 + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + adds r1, #1 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl VarSet + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EF7C8: .4byte 0x000040EB + thumb_func_end sub_080EF7A8 + + thumb_func_start sub_080EF7CC +sub_080EF7CC: @ 0x080EF7CC + push {r4, lr} + ldr r4, _080EF7EC + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + adds r1, #1 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl VarSet + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EF7EC: .4byte 0x000040E7 + thumb_func_end sub_080EF7CC + + thumb_func_start sub_080EF7F0 +sub_080EF7F0: @ 0x080EF7F0 + push {r4, lr} + ldr r4, _080EF810 + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + adds r1, #1 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl VarSet + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EF810: .4byte 0x000040E8 + thumb_func_end sub_080EF7F0 + + thumb_func_start sub_080EF814 +sub_080EF814: @ 0x080EF814 + push {r4, lr} + ldr r4, _080EF834 + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + adds r1, #1 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl VarSet + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EF834: .4byte 0x000040E9 + thumb_func_end sub_080EF814 + + thumb_func_start sub_080EF838 +sub_080EF838: @ 0x080EF838 + push {r4, lr} + ldr r4, _080EF85C + adds r0, r4, #0 + bl VarGet + adds r1, r0, #0 + ldr r0, _080EF860 + ldrh r0, [r0] + adds r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl VarSet + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EF85C: .4byte 0x000040EA +_080EF860: .4byte 0x02037284 + thumb_func_end sub_080EF838 + + thumb_func_start sub_080EF864 +sub_080EF864: @ 0x080EF864 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r5, _080EF888 + adds r0, r5, #0 + bl VarGet + adds r4, r4, r0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl VarSet + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080EF888: .4byte 0x000040F1 + thumb_func_end sub_080EF864 + + thumb_func_start sub_080EF88C +sub_080EF88C: @ 0x080EF88C + push {r4, r5, r6, r7, lr} + ldr r0, _080EF918 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080EF910 + ldr r6, _080EF91C + ldr r0, [r6] + ldr r7, _080EF920 + adds r0, r0, r7 + bl sub_080EF934 + ldr r5, _080EF924 + strb r0, [r5] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080EF910 + ldr r0, _080EF928 + bl TV_BernoulliTrial + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080EF910 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + ands r0, r1 + adds r4, r0, #1 + adds r0, r4, #0 + bl sub_080EFBE8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080EF910 + ldr r1, [r6] + movs r0, #0 + ldrsb r0, [r5, r0] + lsls r0, r0, #2 + adds r1, r1, r0 + adds r1, r1, r7 + strb r4, [r1] + ldr r2, [r6] + movs r0, #0 + ldrsb r0, [r5, r0] + lsls r0, r0, #2 + adds r0, r2, r0 + ldr r1, _080EF92C + adds r0, r0, r1 + movs r1, #4 + strh r1, [r0] + movs r0, #0 + ldrsb r0, [r5, r0] + lsls r0, r0, #2 + adds r2, r2, r0 + ldr r0, _080EF930 + adds r2, r2, r0 + movs r0, #1 + strb r0, [r2] +_080EF910: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080EF918: .4byte 0x00000864 +_080EF91C: .4byte 0x03005AEC +_080EF920: .4byte 0x00002B50 +_080EF924: .4byte 0x03005E20 +_080EF928: .4byte 0x0000028F +_080EF92C: .4byte 0x00002B52 +_080EF930: .4byte 0x00002B51 + thumb_func_end sub_080EF88C + + thumb_func_start sub_080EF934 +sub_080EF934: @ 0x080EF934 + push {lr} + adds r2, r0, #0 + movs r1, #0 +_080EF93A: + lsls r0, r1, #0x18 + asrs r1, r0, #0x18 + lsls r0, r1, #2 + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _080EF94C + adds r0, r1, #0 + b _080EF95C +_080EF94C: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0xf + ble _080EF93A + movs r0, #1 + rsbs r0, r0, #0 +_080EF95C: + pop {r1} + bx r1 + thumb_func_end sub_080EF934 + + thumb_func_start ClearPokemonNews +ClearPokemonNews: @ 0x080EF960 + push {r4, lr} + movs r4, #0 +_080EF964: + adds r0, r4, #0 + bl ClearPokemonNewsI + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xf + bls _080EF964 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ClearPokemonNews + + thumb_func_start ClearPokemonNewsI +ClearPokemonNewsI: @ 0x080EF97C + push {r4, lr} + lsls r0, r0, #0x18 + ldr r3, _080EF9AC + ldr r1, [r3] + lsrs r0, r0, #0x16 + adds r1, r1, r0 + ldr r2, _080EF9B0 + adds r1, r1, r2 + movs r2, #0 + strb r2, [r1] + ldr r1, [r3] + adds r1, r1, r0 + ldr r4, _080EF9B4 + adds r1, r1, r4 + strb r2, [r1] + ldr r1, [r3] + adds r1, r1, r0 + ldr r0, _080EF9B8 + adds r1, r1, r0 + strh r2, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EF9AC: .4byte 0x03005AEC +_080EF9B0: .4byte 0x00002B50 +_080EF9B4: .4byte 0x00002B51 +_080EF9B8: .4byte 0x00002B52 + thumb_func_end ClearPokemonNewsI + + thumb_func_start sub_080EF9BC +sub_080EF9BC: @ 0x080EF9BC + push {r4, r5, r6, r7, lr} + movs r2, #0 + ldr r6, _080EF9DC +_080EF9C2: + ldr r0, _080EF9DC + ldr r0, [r0] + lsls r1, r2, #2 + adds r0, r0, r1 + ldr r3, _080EF9E0 + adds r0, r0, r3 + ldrb r0, [r0] + adds r5, r2, #1 + cmp r0, #0 + bne _080EFA16 + lsls r0, r5, #0x18 + b _080EFA10 + .align 2, 0 +_080EF9DC: .4byte 0x03005AEC +_080EF9E0: .4byte 0x00002B50 +_080EF9E4: + ldr r3, [r6] + lsls r4, r2, #2 + adds r0, r3, r4 + ldr r7, _080EFA08 + adds r0, r0, r7 + ldrb r0, [r0] + cmp r0, #0 + beq _080EFA0C + adds r0, r3, r7 + adds r1, r0, r1 + adds r0, r0, r4 + ldr r0, [r0] + str r0, [r1] + adds r0, r2, #0 + bl ClearPokemonNewsI + b _080EFA16 + .align 2, 0 +_080EFA08: .4byte 0x00002B50 +_080EFA0C: + adds r0, r2, #1 + lsls r0, r0, #0x18 +_080EFA10: + lsrs r2, r0, #0x18 + cmp r2, #0xf + bls _080EF9E4 +_080EFA16: + lsls r0, r5, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xe + bls _080EF9C2 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_080EF9BC + + thumb_func_start FindAnyTVNewsOnTheAir +FindAnyTVNewsOnTheAir: @ 0x080EFA24 + push {r4, lr} + movs r2, #0 + ldr r0, _080EFA54 + ldr r3, [r0] +_080EFA2C: + lsls r0, r2, #2 + adds r1, r3, r0 + ldr r4, _080EFA58 + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, #0 + beq _080EFA5C + adds r4, #1 + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, #1 + bne _080EFA5C + adds r4, #1 + adds r0, r1, r4 + ldrh r0, [r0] + cmp r0, #2 + bhi _080EFA5C + adds r0, r2, #0 + b _080EFA68 + .align 2, 0 +_080EFA54: .4byte 0x03005AEC +_080EFA58: .4byte 0x00002B50 +_080EFA5C: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xf + bls _080EFA2C + movs r0, #0xff +_080EFA68: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end FindAnyTVNewsOnTheAir + + thumb_func_start DoPokeNews +DoPokeNews: @ 0x080EFA70 + push {r4, r5, lr} + bl FindAnyTVNewsOnTheAir + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xff + bne _080EFA88 + ldr r1, _080EFA84 + movs r0, #0 + b _080EFB1E + .align 2, 0 +_080EFA84: .4byte 0x02037290 +_080EFA88: + ldr r5, _080EFAB8 + ldr r0, [r5] + lsls r4, r2, #2 + adds r1, r0, r4 + ldr r0, _080EFABC + adds r2, r1, r0 + ldrh r0, [r2] + cmp r0, #0 + bne _080EFAEC + ldr r2, _080EFAC0 + adds r1, r1, r2 + movs r0, #2 + strb r0, [r1] + ldr r0, _080EFAC4 + ldrb r0, [r0, #2] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0x13 + bgt _080EFACC + ldr r1, _080EFAC8 + ldr r0, [r5] + adds r0, r0, r4 + subs r2, #1 + b _080EFAD4 + .align 2, 0 +_080EFAB8: .4byte 0x03005AEC +_080EFABC: .4byte 0x00002B52 +_080EFAC0: .4byte 0x00002B51 +_080EFAC4: .4byte 0x03005A50 +_080EFAC8: .4byte 0x08568BC8 +_080EFACC: + ldr r1, _080EFAE4 + ldr r0, [r5] + adds r0, r0, r4 + ldr r2, _080EFAE8 +_080EFAD4: + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl ShowFieldMessage + b _080EFB1A + .align 2, 0 +_080EFAE4: .4byte 0x08568BDC +_080EFAE8: .4byte 0x00002B50 +_080EFAEC: + ldrh r1, [r2] + ldr r0, _080EFB28 + movs r2, #0 + movs r3, #1 + bl ConvertIntToDecimalStringN + ldr r0, [r5] + adds r0, r0, r4 + ldr r1, _080EFB2C + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + ldr r1, _080EFB30 + ldr r0, [r5] + adds r0, r0, r4 + ldr r2, _080EFB34 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl ShowFieldMessage +_080EFB1A: + ldr r1, _080EFB38 + movs r0, #1 +_080EFB1E: + strh r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080EFB28: .4byte 0x02021C40 +_080EFB2C: .4byte 0x00002B51 +_080EFB30: .4byte 0x08568BB4 +_080EFB34: .4byte 0x00002B50 +_080EFB38: .4byte 0x02037290 + thumb_func_end DoPokeNews + + thumb_func_start GetPriceReduction +GetPriceReduction: @ 0x080EFB3C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _080EFB4C + b _080EFB8E +_080EFB48: + movs r0, #1 + b _080EFB90 +_080EFB4C: + movs r2, #0 + ldr r4, _080EFB78 +_080EFB50: + ldr r1, [r4] + lsls r0, r2, #2 + adds r1, r1, r0 + ldr r5, _080EFB7C + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, r3 + bne _080EFB84 + ldr r2, _080EFB80 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #2 + bne _080EFB8E + adds r0, r3, #0 + bl IsPriceDiscounted + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080EFB48 + b _080EFB8E + .align 2, 0 +_080EFB78: .4byte 0x03005AEC +_080EFB7C: .4byte 0x00002B50 +_080EFB80: .4byte 0x00002B51 +_080EFB84: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xf + bls _080EFB50 +_080EFB8E: + movs r0, #0 +_080EFB90: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetPriceReduction + + thumb_func_start IsPriceDiscounted +IsPriceDiscounted: @ 0x080EFB98 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080EFBAA + cmp r0, #3 + beq _080EFBCC +_080EFBA6: + movs r0, #1 + b _080EFBDA +_080EFBAA: + ldr r0, _080EFBC4 + ldr r0, [r0] + ldrh r1, [r0, #4] + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + bne _080EFBD8 + ldr r0, _080EFBC8 + ldrh r0, [r0] + cmp r0, #0x19 + beq _080EFBA6 + b _080EFBD8 + .align 2, 0 +_080EFBC4: .4byte 0x03005AEC +_080EFBC8: .4byte 0x02037292 +_080EFBCC: + ldr r0, _080EFBE0 + ldr r0, [r0] + ldrh r1, [r0, #4] + ldr r0, _080EFBE4 + cmp r1, r0 + beq _080EFBA6 +_080EFBD8: + movs r0, #0 +_080EFBDA: + pop {r1} + bx r1 + .align 2, 0 +_080EFBE0: .4byte 0x03005AEC +_080EFBE4: .4byte 0x0000150D + thumb_func_end IsPriceDiscounted + + thumb_func_start sub_080EFBE8 +sub_080EFBE8: @ 0x080EFBE8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _080EFBF6 +_080EFBF2: + movs r0, #1 + b _080EFC16 +_080EFBF6: + movs r1, #0 + ldr r0, _080EFC1C + ldr r3, [r0] + ldr r4, _080EFC20 +_080EFBFE: + lsls r0, r1, #2 + adds r0, r3, r0 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, r2 + beq _080EFBF2 + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xf + bls _080EFBFE + movs r0, #0 +_080EFC16: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080EFC1C: .4byte 0x03005AEC +_080EFC20: .4byte 0x00002B50 + thumb_func_end sub_080EFBE8 + + thumb_func_start sub_080EFC24 +sub_080EFC24: @ 0x080EFC24 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + movs r6, #0 + ldr r0, _080EFC5C + mov r8, r0 +_080EFC34: + mov r1, r8 + ldr r0, [r1] + lsls r1, r6, #2 + adds r2, r0, r1 + ldr r3, _080EFC60 + adds r0, r2, r3 + ldrb r0, [r0] + adds r4, r1, #0 + cmp r0, #0 + beq _080EFC9A + ldr r1, _080EFC64 + adds r0, r2, r1 + ldrh r0, [r0] + cmp r0, r7 + bhs _080EFC68 + adds r0, r6, #0 + bl ClearPokemonNewsI + b _080EFC9A + .align 2, 0 +_080EFC5C: .4byte 0x03005AEC +_080EFC60: .4byte 0x00002B50 +_080EFC64: .4byte 0x00002B52 +_080EFC68: + ldr r5, _080EFCB4 + adds r0, r2, r5 + ldrb r0, [r0] + cmp r0, #0 + bne _080EFC8A + ldr r0, _080EFCB8 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #1 + bne _080EFC8A + mov r2, r8 + ldr r0, [r2] + adds r0, r0, r4 + adds r0, r0, r5 + strb r1, [r0] +_080EFC8A: + mov r3, r8 + ldr r1, [r3] + adds r1, r1, r4 + ldr r0, _080EFCBC + adds r1, r1, r0 + ldrh r0, [r1] + subs r0, r0, r7 + strh r0, [r1] +_080EFC9A: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0xf + bls _080EFC34 + bl sub_080EF9BC + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080EFCB4: .4byte 0x00002B51 +_080EFCB8: .4byte 0x00000864 +_080EFCBC: .4byte 0x00002B52 + thumb_func_end sub_080EFC24 + + thumb_func_start CopyContestRankToStringVar +CopyContestRankToStringVar: @ 0x080EFCC0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r2, r1, #0 + cmp r1, #1 + beq _080EFD00 + cmp r1, #1 + bgt _080EFCDA + cmp r1, #0 + beq _080EFCE4 + b _080EFD48 +_080EFCDA: + cmp r2, #2 + beq _080EFD1C + cmp r2, #3 + beq _080EFD38 + b _080EFD48 +_080EFCE4: + ldr r1, _080EFCF8 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _080EFCFC + ldr r1, [r1, #0x14] + bl StringCopy + b _080EFD48 + .align 2, 0 +_080EFCF8: .4byte 0x08568BF0 +_080EFCFC: .4byte 0x085645A0 +_080EFD00: + ldr r1, _080EFD14 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _080EFD18 + ldr r1, [r1, #0x18] + bl StringCopy + b _080EFD48 + .align 2, 0 +_080EFD14: .4byte 0x08568BF0 +_080EFD18: .4byte 0x085645A0 +_080EFD1C: + ldr r1, _080EFD30 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _080EFD34 + ldr r1, [r1, #0x1c] + bl StringCopy + b _080EFD48 + .align 2, 0 +_080EFD30: .4byte 0x08568BF0 +_080EFD34: .4byte 0x085645A0 +_080EFD38: + ldr r1, _080EFD4C + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _080EFD50 + ldr r1, [r1, #0x20] + bl StringCopy +_080EFD48: + pop {r0} + bx r0 + .align 2, 0 +_080EFD4C: .4byte 0x08568BF0 +_080EFD50: .4byte 0x085645A0 + thumb_func_end CopyContestRankToStringVar + + thumb_func_start CopyContestCategoryToStringVar +CopyContestCategoryToStringVar: @ 0x080EFD54 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r0, r1, #0x18 + cmp r0, #4 + bhi _080EFE04 + lsls r0, r0, #2 + ldr r1, _080EFD6C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EFD6C: .4byte 0x080EFD70 +_080EFD70: @ jump table + .4byte _080EFD84 @ case 0 + .4byte _080EFDA0 @ case 1 + .4byte _080EFDBC @ case 2 + .4byte _080EFDD8 @ case 3 + .4byte _080EFDF4 @ case 4 +_080EFD84: + ldr r1, _080EFD98 + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _080EFD9C + ldr r1, [r1] + bl StringCopy + b _080EFE04 + .align 2, 0 +_080EFD98: .4byte 0x08568BF0 +_080EFD9C: .4byte 0x085645A0 +_080EFDA0: + ldr r1, _080EFDB4 + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _080EFDB8 + ldr r1, [r1, #4] + bl StringCopy + b _080EFE04 + .align 2, 0 +_080EFDB4: .4byte 0x08568BF0 +_080EFDB8: .4byte 0x085645A0 +_080EFDBC: + ldr r1, _080EFDD0 + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _080EFDD4 + ldr r1, [r1, #8] + bl StringCopy + b _080EFE04 + .align 2, 0 +_080EFDD0: .4byte 0x08568BF0 +_080EFDD4: .4byte 0x085645A0 +_080EFDD8: + ldr r1, _080EFDEC + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _080EFDF0 + ldr r1, [r1, #0xc] + bl StringCopy + b _080EFE04 + .align 2, 0 +_080EFDEC: .4byte 0x08568BF0 +_080EFDF0: .4byte 0x085645A0 +_080EFDF4: + ldr r1, _080EFE08 + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _080EFE0C + ldr r1, [r1, #0x10] + bl StringCopy +_080EFE04: + pop {r0} + bx r0 + .align 2, 0 +_080EFE08: .4byte 0x08568BF0 +_080EFE0C: .4byte 0x085645A0 + thumb_func_end CopyContestCategoryToStringVar + + thumb_func_start SetContestCategoryStringVarForInterview +SetContestCategoryStringVarForInterview: @ 0x080EFE10 + push {lr} + ldr r2, _080EFE38 + ldr r0, _080EFE3C + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080EFE40 + adds r0, r0, r1 + ldr r1, [r2] + adds r1, r1, r0 + ldrb r1, [r1, #0x13] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + movs r0, #1 + bl CopyContestCategoryToStringVar + pop {r0} + bx r0 + .align 2, 0 +_080EFE38: .4byte 0x03005AEC +_080EFE3C: .4byte 0x02037280 +_080EFE40: .4byte 0x000027CC + thumb_func_end SetContestCategoryStringVarForInterview + + thumb_func_start TV_PrintIntToStringVar +TV_PrintIntToStringVar: @ 0x080EFE44 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r5, #0 + bl CountDigits + adds r3, r0, #0 + ldr r0, _080EFE70 + lsls r4, r4, #2 + adds r4, r4, r0 + ldr r0, [r4] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + adds r1, r5, #0 + movs r2, #0 + bl ConvertIntToDecimalStringN + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080EFE70: .4byte 0x08568BF0 + thumb_func_end TV_PrintIntToStringVar + + thumb_func_start CountDigits +CountDigits: @ 0x080EFE74 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xa + bl __divsi3 + cmp r0, #0 + beq _080EFF00 + adds r0, r4, #0 + movs r1, #0x64 + bl __divsi3 + cmp r0, #0 + bne _080EFE92 + movs r0, #2 + b _080EFF0A +_080EFE92: + movs r1, #0xfa + lsls r1, r1, #2 + adds r0, r4, #0 + bl __divsi3 + cmp r0, #0 + bne _080EFEA4 + movs r0, #3 + b _080EFF0A +_080EFEA4: + ldr r1, _080EFEB4 + adds r0, r4, #0 + bl __divsi3 + cmp r0, #0 + bne _080EFEB8 + movs r0, #4 + b _080EFF0A + .align 2, 0 +_080EFEB4: .4byte 0x00002710 +_080EFEB8: + ldr r1, _080EFEC8 + adds r0, r4, #0 + bl __divsi3 + cmp r0, #0 + bne _080EFECC + movs r0, #5 + b _080EFF0A + .align 2, 0 +_080EFEC8: .4byte 0x000186A0 +_080EFECC: + ldr r1, _080EFEDC + adds r0, r4, #0 + bl __divsi3 + cmp r0, #0 + bne _080EFEE0 + movs r0, #6 + b _080EFF0A + .align 2, 0 +_080EFEDC: .4byte 0x000F4240 +_080EFEE0: + ldr r1, _080EFEF0 + adds r0, r4, #0 + bl __divsi3 + cmp r0, #0 + bne _080EFEF4 + movs r0, #7 + b _080EFF0A + .align 2, 0 +_080EFEF0: .4byte 0x00989680 +_080EFEF4: + ldr r1, _080EFF04 + adds r0, r4, #0 + bl __divsi3 + cmp r0, #0 + beq _080EFF08 +_080EFF00: + movs r0, #1 + b _080EFF0A + .align 2, 0 +_080EFF04: .4byte 0x05F5E100 +_080EFF08: + movs r0, #8 +_080EFF0A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end CountDigits + + thumb_func_start sub_080EFF10 +sub_080EFF10: @ 0x080EFF10 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r7, #0 + movs r5, #0 +_080EFF22: + lsls r4, r5, #1 + adds r0, r6, #6 + adds r1, r0, r4 + ldrh r0, [r1] + cmp r0, #0 + beq _080EFF42 + bl sub_080D6CD4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r6, #0 + adds r1, #0xc + adds r1, r1, r4 + ldrh r1, [r1] + muls r0, r1, r0 + adds r7, r7, r0 +_080EFF42: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #2 + bls _080EFF22 + ldrb r0, [r6, #2] + cmp r0, #1 + bne _080EFF5C + asrs r1, r7, #1 + mov r0, r8 + bl TV_PrintIntToStringVar + b _080EFF64 +_080EFF5C: + mov r0, r8 + adds r1, r7, #0 + bl TV_PrintIntToStringVar +_080EFF64: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080EFF10 + + thumb_func_start HasMixableShowAlreadyBeenSpawnedWithPlayerID +HasMixableShowAlreadyBeenSpawnedWithPlayerID: @ 0x080EFF70 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sb, r1 + ldr r5, _080EFFE0 + ldr r0, [r5] + ldr r4, _080EFFE4 + adds r0, r0, r4 + mov r8, r0 + bl GetPlayerIDAsU32 + adds r7, r0, #0 + movs r6, #5 +_080EFF98: + lsls r0, r6, #3 + adds r0, r0, r6 + lsls r0, r0, #2 + mov r2, r8 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, sl + bne _080EFFE8 + movs r3, #0xff + adds r0, r7, #0 + ands r0, r3 + adds r2, r1, #0 + adds r2, #0x22 + ldrb r2, [r2] + cmp r0, r2 + bne _080EFFE8 + lsrs r0, r7, #8 + ands r0, r3 + adds r1, #0x23 + ldrb r1, [r1] + cmp r0, r1 + bne _080EFFE8 + mov r0, sb + cmp r0, #1 + bne _080EFFDC + ldr r0, [r5] + adds r0, r0, r4 + adds r1, r6, #0 + bl DeleteTVShowInArrayByIdx + ldr r0, [r5] + adds r0, r0, r4 + bl sub_080F0428 +_080EFFDC: + movs r0, #1 + b _080EFFF4 + .align 2, 0 +_080EFFE0: .4byte 0x03005AEC +_080EFFE4: .4byte 0x000027CC +_080EFFE8: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0x17 + bls _080EFF98 + movs r0, #0 +_080EFFF4: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end HasMixableShowAlreadyBeenSpawnedWithPlayerID + + thumb_func_start TV_SortPurchasesByQuantity +TV_SortPurchasesByQuantity: @ 0x080F0004 + push {r4, r5, r6, r7, lr} + movs r2, #0 +_080F0008: + adds r1, r2, #1 + lsls r0, r1, #0x18 + lsrs r5, r0, #0x18 + adds r7, r1, #0 + cmp r5, #2 + bhi _080F0040 + ldr r6, _080F0050 + lsls r0, r2, #2 + adds r4, r0, r6 +_080F001A: + lsls r0, r5, #2 + adds r3, r0, r6 + ldrh r0, [r4, #2] + ldrh r1, [r3, #2] + cmp r0, r1 + bhs _080F0036 + ldrh r1, [r4] + adds r2, r0, #0 + ldrh r0, [r3] + strh r0, [r4] + ldrh r0, [r3, #2] + strh r0, [r4, #2] + strh r1, [r3] + strh r2, [r3, #2] +_080F0036: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #2 + bls _080F001A +_080F0040: + lsls r0, r7, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #1 + bls _080F0008 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F0050: .4byte 0x02039C20 + thumb_func_end TV_SortPurchasesByQuantity + + thumb_func_start FindActiveBroadcastByShowType_SetScriptResult +FindActiveBroadcastByShowType_SetScriptResult: @ 0x080F0054 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r1, #0 + ldr r5, _080F0084 + ldr r4, _080F0088 +_080F0060: + ldr r3, [r5] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, r3, r0 + adds r0, r2, r4 + ldrb r0, [r0] + cmp r0, r6 + bne _080F00A8 + ldr r6, _080F008C + adds r0, r2, r6 + ldrb r2, [r0] + cmp r2, #1 + bne _080F0094 + ldr r0, _080F0090 + strh r2, [r0] + b _080F00B6 + .align 2, 0 +_080F0084: .4byte 0x03005AEC +_080F0088: .4byte 0x000027CC +_080F008C: .4byte 0x000027CD +_080F0090: .4byte 0x02037290 +_080F0094: + adds r0, r3, r4 + bl DeleteTVShowInArrayByIdx + ldr r0, [r5] + adds r0, r0, r4 + bl sub_080F0428 + bl sub_080F0578 + b _080F00B6 +_080F00A8: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #4 + bls _080F0060 + bl sub_080F0578 +_080F00B6: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end FindActiveBroadcastByShowType_SetScriptResult + + thumb_func_start InterviewBefore +InterviewBefore: @ 0x080F00BC + push {lr} + ldr r1, _080F00D8 + movs r0, #0 + strh r0, [r1] + ldr r0, _080F00DC + ldrh r0, [r0] + subs r0, #1 + cmp r0, #0xa + bhi _080F014A + lsls r0, r0, #2 + ldr r1, _080F00E0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F00D8: .4byte 0x02037290 +_080F00DC: .4byte 0x02037282 +_080F00E0: .4byte 0x080F00E4 +_080F00E4: @ jump table + .4byte _080F0110 @ case 0 + .4byte _080F0116 @ case 1 + .4byte _080F011C @ case 2 + .4byte _080F0122 @ case 3 + .4byte _080F0128 @ case 4 + .4byte _080F012E @ case 5 + .4byte _080F0134 @ case 6 + .4byte _080F013A @ case 7 + .4byte _080F0140 @ case 8 + .4byte _080F014A @ case 9 + .4byte _080F0146 @ case 10 +_080F0110: + bl InterviewBefore_FanClubLetter + b _080F014A +_080F0116: + bl InterviewBefore_RecentHappenings + b _080F014A +_080F011C: + bl InterviewBefore_PkmnFanClubOpinions + b _080F014A +_080F0122: + bl InterviewBefore_Dummy + b _080F014A +_080F0128: + bl InterviewBefore_NameRater + b _080F014A +_080F012E: + bl InterviewBefore_BravoTrainerPkmnProfile + b _080F014A +_080F0134: + bl InterviewBefore_BravoTrainerBTProfile + b _080F014A +_080F013A: + bl InterviewBefore_ContestLiveUpdates + b _080F014A +_080F0140: + bl InterviewBefore_3CheersForPokeblocks + b _080F014A +_080F0146: + bl InterviewBefore_FanClubSpecial +_080F014A: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end InterviewBefore + + thumb_func_start InterviewBefore_FanClubLetter +InterviewBefore_FanClubLetter: @ 0x080F0150 + push {r4, lr} + movs r0, #1 + bl FindActiveBroadcastByShowType_SetScriptResult + ldr r0, _080F01AC + ldrh r0, [r0] + cmp r0, #0 + bne _080F01A6 + ldr r4, _080F01B0 + bl GetLeadMonIndex + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x64 + muls r0, r1, r0 + ldr r1, _080F01B4 + adds r0, r0, r1 + movs r1, #0xb + movs r2, #0 + bl GetMonData + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + ldr r0, _080F01B8 + adds r1, r1, r0 + adds r0, r4, #0 + bl StringCopy + ldr r2, _080F01BC + ldr r0, _080F01C0 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, [r2] + adds r0, r0, r1 + ldr r1, _080F01C4 + adds r0, r0, r1 + movs r1, #6 + bl InitializeEasyChatWordArray +_080F01A6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F01AC: .4byte 0x02037290 +_080F01B0: .4byte 0x02021C40 +_080F01B4: .4byte 0x02024190 +_080F01B8: .4byte 0x082EA31C +_080F01BC: .4byte 0x03005AEC +_080F01C0: .4byte 0x03005E20 +_080F01C4: .4byte 0x000027D0 + thumb_func_end InterviewBefore_FanClubLetter + + thumb_func_start InterviewBefore_RecentHappenings +InterviewBefore_RecentHappenings: @ 0x080F01C8 + push {lr} + movs r0, #2 + bl FindActiveBroadcastByShowType_SetScriptResult + ldr r0, _080F01F8 + ldrh r0, [r0] + cmp r0, #0 + bne _080F01F4 + ldr r2, _080F01FC + ldr r0, _080F0200 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, [r2] + adds r0, r0, r1 + ldr r1, _080F0204 + adds r0, r0, r1 + movs r1, #6 + bl InitializeEasyChatWordArray +_080F01F4: + pop {r0} + bx r0 + .align 2, 0 +_080F01F8: .4byte 0x02037290 +_080F01FC: .4byte 0x03005AEC +_080F0200: .4byte 0x03005E20 +_080F0204: .4byte 0x000027D0 + thumb_func_end InterviewBefore_RecentHappenings + + thumb_func_start InterviewBefore_PkmnFanClubOpinions +InterviewBefore_PkmnFanClubOpinions: @ 0x080F0208 + push {r4, r5, r6, lr} + movs r0, #3 + bl FindActiveBroadcastByShowType_SetScriptResult + ldr r0, _080F0280 + ldrh r0, [r0] + cmp r0, #0 + bne _080F027A + ldr r6, _080F0284 + bl GetLeadMonIndex + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r5, #0x64 + muls r0, r5, r0 + ldr r4, _080F0288 + adds r0, r0, r4 + movs r1, #0xb + movs r2, #0 + bl GetMonData + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + ldr r0, _080F028C + adds r1, r1, r0 + adds r0, r6, #0 + bl StringCopy + bl GetLeadMonIndex + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + muls r0, r5, r0 + adds r0, r0, r4 + ldr r4, _080F0290 + movs r1, #2 + adds r2, r4, #0 + bl GetMonData + adds r0, r4, #0 + bl StringGetEnd10 + ldr r2, _080F0294 + ldr r0, _080F0298 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, [r2] + adds r0, r0, r1 + ldr r1, _080F029C + adds r0, r0, r1 + movs r1, #2 + bl InitializeEasyChatWordArray +_080F027A: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080F0280: .4byte 0x02037290 +_080F0284: .4byte 0x02021C40 +_080F0288: .4byte 0x02024190 +_080F028C: .4byte 0x082EA31C +_080F0290: .4byte 0x02021C54 +_080F0294: .4byte 0x03005AEC +_080F0298: .4byte 0x03005E20 +_080F029C: .4byte 0x000027E8 + thumb_func_end InterviewBefore_PkmnFanClubOpinions + + thumb_func_start InterviewBefore_Dummy +InterviewBefore_Dummy: @ 0x080F02A0 + ldr r1, _080F02A8 + movs r0, #1 + strh r0, [r1] + bx lr + .align 2, 0 +_080F02A8: .4byte 0x02037290 + thumb_func_end InterviewBefore_Dummy + + thumb_func_start InterviewBefore_NameRater +InterviewBefore_NameRater: @ 0x080F02AC + push {lr} + movs r0, #5 + bl FindActiveBroadcastByShowType_SetScriptResult + pop {r0} + bx r0 + thumb_func_end InterviewBefore_NameRater + + thumb_func_start InterviewBefore_BravoTrainerPkmnProfile +InterviewBefore_BravoTrainerPkmnProfile: @ 0x080F02B8 + push {lr} + movs r0, #6 + bl FindActiveBroadcastByShowType_SetScriptResult + ldr r0, _080F02E8 + ldrh r0, [r0] + cmp r0, #0 + bne _080F02E4 + ldr r2, _080F02EC + ldr r0, _080F02F0 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, [r2] + adds r0, r0, r1 + ldr r1, _080F02F4 + adds r0, r0, r1 + movs r1, #2 + bl InitializeEasyChatWordArray +_080F02E4: + pop {r0} + bx r0 + .align 2, 0 +_080F02E8: .4byte 0x02037290 +_080F02EC: .4byte 0x03005AEC +_080F02F0: .4byte 0x03005E20 +_080F02F4: .4byte 0x000027D0 + thumb_func_end InterviewBefore_BravoTrainerPkmnProfile + + thumb_func_start InterviewBefore_ContestLiveUpdates +InterviewBefore_ContestLiveUpdates: @ 0x080F02F8 + push {lr} + movs r0, #8 + bl FindActiveBroadcastByShowType_SetScriptResult + pop {r0} + bx r0 + thumb_func_end InterviewBefore_ContestLiveUpdates + + thumb_func_start InterviewBefore_3CheersForPokeblocks +InterviewBefore_3CheersForPokeblocks: @ 0x080F0304 + push {lr} + movs r0, #9 + bl FindActiveBroadcastByShowType_SetScriptResult + pop {r0} + bx r0 + thumb_func_end InterviewBefore_3CheersForPokeblocks + + thumb_func_start InterviewBefore_BravoTrainerBTProfile +InterviewBefore_BravoTrainerBTProfile: @ 0x080F0310 + push {lr} + movs r0, #7 + bl FindActiveBroadcastByShowType_SetScriptResult + ldr r0, _080F0340 + ldrh r0, [r0] + cmp r0, #0 + bne _080F033C + ldr r2, _080F0344 + ldr r0, _080F0348 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, [r2] + adds r0, r0, r1 + ldr r1, _080F034C + adds r0, r0, r1 + movs r1, #1 + bl InitializeEasyChatWordArray +_080F033C: + pop {r0} + bx r0 + .align 2, 0 +_080F0340: .4byte 0x02037290 +_080F0344: .4byte 0x03005AEC +_080F0348: .4byte 0x03005E20 +_080F034C: .4byte 0x000027E4 + thumb_func_end InterviewBefore_BravoTrainerBTProfile + + thumb_func_start InterviewBefore_FanClubSpecial +InterviewBefore_FanClubSpecial: @ 0x080F0350 + push {lr} + movs r0, #0xb + bl FindActiveBroadcastByShowType_SetScriptResult + ldr r0, _080F0380 + ldrh r0, [r0] + cmp r0, #0 + bne _080F037C + ldr r2, _080F0384 + ldr r0, _080F0388 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, [r2] + adds r0, r0, r1 + ldr r1, _080F038C + adds r0, r0, r1 + movs r1, #1 + bl InitializeEasyChatWordArray +_080F037C: + pop {r0} + bx r0 + .align 2, 0 +_080F0380: .4byte 0x02037290 +_080F0384: .4byte 0x03005AEC +_080F0388: .4byte 0x03005E20 +_080F038C: .4byte 0x000027E0 + thumb_func_end InterviewBefore_FanClubSpecial + + thumb_func_start sub_080F0390 +sub_080F0390: @ 0x080F0390 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x64 + adds r4, r0, #0 + muls r4, r1, r4 + ldr r0, _080F03D0 + adds r4, r4, r0 + ldr r5, _080F03D4 + adds r0, r4, #0 + movs r1, #2 + adds r2, r5, #0 + bl GetMonData + adds r0, r4, #0 + movs r1, #0xb + movs r2, #0 + bl GetMonData + adds r1, r0, #0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r1, _080F03D8 + adds r0, r0, r1 + adds r1, r5, #0 + bl StringCompare + cmp r0, #0 + beq _080F03DC + movs r0, #1 + b _080F03DE + .align 2, 0 +_080F03D0: .4byte 0x02024190 +_080F03D4: .4byte 0x02021C40 +_080F03D8: .4byte 0x082EA31C +_080F03DC: + movs r0, #0 +_080F03DE: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_080F0390 + + thumb_func_start sub_080F03E4 +sub_080F03E4: @ 0x080F03E4 + push {lr} + bl GetLeadMonIndex + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_080F0390 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080F03E4 + + thumb_func_start DeleteTVShowInArrayByIdx +DeleteTVShowInArrayByIdx: @ 0x080F03FC + push {lr} + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r1, #3 + adds r2, r2, r1 + lsls r2, r2, #2 + adds r2, r2, r0 + movs r0, #0 + strb r0, [r2] + strb r0, [r2, #1] + movs r1, #0 + adds r2, #2 + movs r3, #0 +_080F0416: + adds r0, r2, r1 + strb r3, [r0] + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x21 + bls _080F0416 + pop {r0} + bx r0 + thumb_func_end DeleteTVShowInArrayByIdx + + thumb_func_start sub_080F0428 +sub_080F0428: @ 0x080F0428 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + movs r5, #0 +_080F042E: + lsls r0, r5, #3 + adds r0, r0, r5 + lsls r1, r0, #2 + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, #0 + bne _080F0472 + adds r0, r5, #1 + b _080F046A +_080F0440: + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r3, r0, r4 + ldrb r0, [r3] + cmp r0, #0 + beq _080F0468 + adds r1, 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 DeleteTVShowInArrayByIdx + b _080F0472 +_080F0468: + adds r0, r2, #1 +_080F046A: + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #4 + bls _080F0440 +_080F0472: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #3 + bls _080F042E + movs r5, #5 +_080F047E: + lsls r0, r5, #3 + adds r0, r0, r5 + lsls r1, r0, #2 + adds r0, r1, r4 + ldrb r0, [r0] + adds r5, #1 + cmp r0, #0 + bne _080F04C4 + lsls r0, r5, #0x18 + b _080F04BE +_080F0492: + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r3, r0, r4 + ldrb r0, [r3] + cmp r0, #0 + beq _080F04BA + adds r1, 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 DeleteTVShowInArrayByIdx + b _080F04C4 +_080F04BA: + adds r0, r2, #1 + lsls r0, r0, #0x18 +_080F04BE: + lsrs r2, r0, #0x18 + cmp r2, #0x17 + bls _080F0492 +_080F04C4: + lsls r0, r5, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x17 + bls _080F047E + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080F0428 + + thumb_func_start TV_GetSomeOtherSpeciesAlreadySeenByPlayer_AndPrintName +TV_GetSomeOtherSpeciesAlreadySeenByPlayer_AndPrintName: @ 0x080F04D4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, r1, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl TV_GetSomeOtherSpeciesAlreadySeenByPlayer + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + ldr r0, _080F050C + lsls r4, r4, #2 + adds r4, r4, r0 + ldr r0, [r4] + lsls r1, r5, #1 + adds r1, r1, r5 + lsls r1, r1, #1 + ldr r2, _080F0510 + adds r1, r1, r2 + bl StringCopy + adds r0, r5, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_080F050C: .4byte 0x08568BF0 +_080F0510: .4byte 0x082EA31C + thumb_func_end TV_GetSomeOtherSpeciesAlreadySeenByPlayer_AndPrintName + + thumb_func_start TV_GetSomeOtherSpeciesAlreadySeenByPlayer +TV_GetSomeOtherSpeciesAlreadySeenByPlayer: @ 0x080F0514 + push {r4, r5, r6, lr} + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _080F0534 + bl __umodsi3 + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r6, r4, #0 + b _080F0552 + .align 2, 0 +_080F0534: .4byte 0x0000019B +_080F0538: + cmp r4, #1 + bne _080F0544 + ldr r4, _080F0540 + b _080F054A + .align 2, 0 +_080F0540: .4byte 0x0000019B +_080F0544: + subs r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_080F054A: + cmp r4, r6 + bne _080F0552 + adds r4, r5, #0 + b _080F056E +_080F0552: + adds r0, r4, #0 + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0 + bl GetSetPokedexFlag + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + bne _080F0538 + cmp r4, r5 + beq _080F0538 +_080F056E: + adds r0, r4, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TV_GetSomeOtherSpeciesAlreadySeenByPlayer + + thumb_func_start sub_080F0578 +sub_080F0578: @ 0x080F0578 + push {lr} + ldr r0, _080F05A8 + ldr r0, [r0] + ldr r1, _080F05AC + adds r0, r0, r1 + bl FindEmptyTVSlotWithinFirstFiveShowsOfArray + ldr r1, _080F05B0 + strb r0, [r1] + ldr r2, _080F05B4 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + strh r1, [r2] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _080F05BC + ldr r1, _080F05B8 + movs r0, #1 + b _080F05C0 + .align 2, 0 +_080F05A8: .4byte 0x03005AEC +_080F05AC: .4byte 0x000027CC +_080F05B0: .4byte 0x03005E20 +_080F05B4: .4byte 0x02037284 +_080F05B8: .4byte 0x02037290 +_080F05BC: + ldr r1, _080F05C8 + movs r0, #0 +_080F05C0: + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080F05C8: .4byte 0x02037290 + thumb_func_end sub_080F0578 + + thumb_func_start FindEmptyTVSlotWithinFirstFiveShowsOfArray +FindEmptyTVSlotWithinFirstFiveShowsOfArray: @ 0x080F05CC + push {lr} + adds r2, r0, #0 + movs r1, #0 +_080F05D2: + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _080F05E6 + lsls r0, r1, #0x18 + asrs r0, r0, #0x18 + b _080F05F4 +_080F05E6: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #4 + bls _080F05D2 + movs r0, #1 + rsbs r0, r0, #0 +_080F05F4: + pop {r1} + bx r1 + thumb_func_end FindEmptyTVSlotWithinFirstFiveShowsOfArray + + thumb_func_start FindEmptyTVSlotBeyondFirstFiveShowsOfArray +FindEmptyTVSlotBeyondFirstFiveShowsOfArray: @ 0x080F05F8 + push {lr} + adds r2, r0, #0 + movs r1, #5 +_080F05FE: + lsls r0, r1, #0x18 + asrs r1, r0, #0x18 + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _080F0614 + adds r0, r1, #0 + b _080F0624 +_080F0614: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0x17 + ble _080F05FE + movs r0, #1 + rsbs r0, r0, #0 +_080F0624: + pop {r1} + bx r1 + thumb_func_end FindEmptyTVSlotBeyondFirstFiveShowsOfArray + + thumb_func_start TV_BernoulliTrial +TV_BernoulliTrial: @ 0x080F0628 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r4 + bls _080F0640 + movs r0, #1 + b _080F0642 +_080F0640: + movs r0, #0 +_080F0642: + pop {r4} + pop {r1} + bx r1 + thumb_func_end TV_BernoulliTrial + + thumb_func_start TV_FanClubLetter_RandomWordToStringVar3 +TV_FanClubLetter_RandomWordToStringVar3: @ 0x080F0648 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #6 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r5, r4, #4 + ldr r6, _080F0664 + b _080F066E + .align 2, 0 +_080F0664: .4byte 0x0000FFFF +_080F0668: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 +_080F066E: + cmp r2, #6 + bne _080F0674 + movs r2, #0 +_080F0674: + lsls r1, r2, #1 + adds r0, r5, r1 + ldrh r0, [r0] + adds r3, r4, #4 + cmp r0, r6 + beq _080F0668 + ldr r0, _080F0690 + adds r1, r3, r1 + ldrh r1, [r1] + bl CopyEasyChatWord + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080F0690: .4byte 0x02021C68 + thumb_func_end TV_FanClubLetter_RandomWordToStringVar3 + + thumb_func_start TV_GetNicknameSumMod8 +TV_GetNicknameSumMod8: @ 0x080F0694 + push {lr} + adds r2, r0, #0 + movs r3, #0 + movs r1, #0 + ldrb r0, [r2, #4] + cmp r0, #0xff + beq _080F06C0 + adds r2, #4 +_080F06A4: + adds r0, r2, r1 + ldrb r0, [r0] + adds r0, r3, r0 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xa + bhi _080F06C0 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #0xff + bne _080F06A4 +_080F06C0: + movs r0, #7 + ands r3, r0 + adds r0, r3, #0 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TV_GetNicknameSumMod8 + + thumb_func_start TV_GetNicknameSubstring +TV_GetNicknameSubstring: @ 0x080F06CC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + ldr r4, [sp, #0x1c] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + movs r2, #0 + movs r7, #0xff +_080F06F0: + mov r1, sp + adds r0, r1, r2 + ldrb r1, [r0] + orrs r1, r7 + strb r1, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #2 + bls _080F06F0 + cmp r3, #0 + bne _080F0752 + ldr r4, [sp, #0x20] + adds r4, #0xf + adds r0, r4, #0 + bl StringLength + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r6, #0 + bne _080F0720 + mov r0, sp + adds r1, r4, r5 + b _080F07CC +_080F0720: + cmp r6, #1 + bne _080F072C + mov r0, sp + subs r1, r2, r5 + adds r1, r4, r1 + b _080F07CC +_080F072C: + cmp r6, #2 + bne _080F073E + mov r1, sp + adds r0, r4, r5 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r5, #1 + adds r0, r4, r0 + b _080F07FC +_080F073E: + mov r1, sp + subs r0, r2, #2 + subs r0, r0, r5 + adds r0, r4, r0 + ldrb r0, [r0] + strb r0, [r1] + subs r0, r2, #1 + subs r0, r0, r5 + adds r0, r4, r0 + b _080F07FC +_080F0752: + cmp r3, #1 + bne _080F07A0 + ldr r4, [sp, #0x20] + adds r4, #4 + adds r0, r4, #0 + bl StringLength + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r6, #0 + bne _080F076E + mov r0, sp + adds r1, r4, r5 + b _080F07CC +_080F076E: + cmp r6, #1 + bne _080F077A + mov r0, sp + subs r1, r2, r5 + adds r1, r4, r1 + b _080F07CC +_080F077A: + cmp r6, #2 + bne _080F078C + mov r1, sp + adds r0, r4, r5 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r5, #1 + adds r0, r4, r0 + b _080F07FC +_080F078C: + mov r1, sp + subs r0, r2, #2 + subs r0, r0, r5 + adds r0, r4, r0 + ldrb r0, [r0] + strb r0, [r1] + subs r0, r2, #1 + subs r0, r0, r5 + adds r0, r4, r0 + b _080F07FC +_080F07A0: + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r4, r0, #1 + ldr r7, _080F07BC + adds r0, r4, r7 + bl StringLength + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r6, #0 + bne _080F07C0 + mov r0, sp + adds r1, r5, r4 + b _080F07CA + .align 2, 0 +_080F07BC: .4byte 0x082EA31C +_080F07C0: + cmp r6, #1 + bne _080F07D2 + mov r0, sp + subs r1, r2, r5 + adds r1, r1, r4 +_080F07CA: + adds r1, r1, r7 +_080F07CC: + ldrb r1, [r1] + strb r1, [r0] + b _080F0800 +_080F07D2: + cmp r6, #2 + bne _080F07E6 + mov r1, sp + adds r0, r5, r4 + adds r0, r0, r7 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r4, #1 + adds r0, r5, r0 + b _080F07FA +_080F07E6: + mov r1, sp + subs r0, r2, #2 + subs r0, r0, r5 + adds r0, r0, r4 + adds r0, r0, r7 + ldrb r0, [r0] + strb r0, [r1] + subs r0, r2, #1 + subs r0, r0, r5 + adds r0, r0, r4 +_080F07FA: + adds r0, r0, r7 +_080F07FC: + ldrb r0, [r0] + strb r0, [r1, #1] +_080F0800: + ldr r0, _080F081C + mov r2, r8 + lsls r1, r2, #2 + adds r1, r1, r0 + ldr r0, [r1] + mov r1, sp + bl StringCopy + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F081C: .4byte 0x08568BF0 + thumb_func_end TV_GetNicknameSubstring + + thumb_func_start TV_IsScriptShowKindAlreadyInQueue +TV_IsScriptShowKindAlreadyInQueue: @ 0x080F0820 + push {r4, lr} + movs r1, #0 + ldr r0, _080F0844 + ldr r3, [r0] + ldr r0, _080F0848 + ldrh r2, [r0] + ldr r4, _080F084C +_080F082E: + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r3, r0 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, r2 + bne _080F0850 + movs r0, #1 + b _080F085C + .align 2, 0 +_080F0844: .4byte 0x03005AEC +_080F0848: .4byte 0x02037280 +_080F084C: .4byte 0x000027CC +_080F0850: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #4 + bls _080F082E + movs r0, #0 +_080F085C: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TV_IsScriptShowKindAlreadyInQueue + + thumb_func_start TV_PutNameRaterShowOnTheAirIfNicknameChanged +TV_PutNameRaterShowOnTheAirIfNicknameChanged: @ 0x080F0864 + push {r4, lr} + ldr r0, _080F0890 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080F0894 + adds r0, r0, r1 + ldr r4, _080F0898 + movs r1, #2 + adds r2, r4, #0 + bl GetMonData + ldr r0, _080F089C + adds r1, r4, #0 + bl StringCompare + cmp r0, #0 + beq _080F08A0 + bl PutNameRaterShowOnTheAir + movs r0, #1 + b _080F08A2 + .align 2, 0 +_080F0890: .4byte 0x02037280 +_080F0894: .4byte 0x02024190 +_080F0898: .4byte 0x02021C40 +_080F089C: .4byte 0x02021C68 +_080F08A0: + movs r0, #0 +_080F08A2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end TV_PutNameRaterShowOnTheAirIfNicknameChanged + + thumb_func_start ChangePokemonNickname +ChangePokemonNickname: @ 0x080F08A8 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + sub sp, #8 + ldr r0, _080F0950 + mov sb, r0 + ldrh r0, [r0] + movs r1, #0x64 + mov r8, r1 + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + ldr r6, _080F0954 + adds r0, r0, r6 + ldr r2, _080F0958 + movs r1, #2 + bl GetMonData + mov r1, sb + ldrh r0, [r1] + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + adds r0, r0, r6 + ldr r1, _080F095C + mov sl, r1 + movs r1, #2 + mov r2, sl + bl GetMonData + mov r1, sb + ldrh r0, [r1] + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + adds r0, r0, r6 + movs r1, #0xb + movs r2, #0 + bl GetMonData + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + mov r1, sb + ldrh r0, [r1] + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + adds r0, r0, r6 + bl GetMonGender + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r1, sb + ldrh r0, [r1] + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + adds r0, r0, r6 + movs r1, #0 + movs r2, #0 + bl GetMonData + str r0, [sp] + ldr r0, _080F0960 + str r0, [sp, #4] + movs r0, #3 + mov r1, sl + adds r2, r5, #0 + adds r3, r4, #0 + bl DoNamingScreen + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080F0950: .4byte 0x02037280 +_080F0954: .4byte 0x02024190 +_080F0958: .4byte 0x02021C68 +_080F095C: .4byte 0x02021C54 +_080F0960: .4byte 0x080F0965 + thumb_func_end ChangePokemonNickname + + thumb_func_start ChangePokemonNickname_CB +ChangePokemonNickname_CB: @ 0x080F0964 + push {lr} + ldr r0, _080F0984 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080F0988 + adds r0, r0, r1 + ldr r2, _080F098C + movs r1, #2 + bl SetMonData + bl CB2_ReturnToFieldContinueScriptPlayMapMusic + pop {r0} + bx r0 + .align 2, 0 +_080F0984: .4byte 0x02037280 +_080F0988: .4byte 0x02024190 +_080F098C: .4byte 0x02021C54 + thumb_func_end ChangePokemonNickname_CB + + thumb_func_start ChangeBoxPokemonNickname +ChangeBoxPokemonNickname: @ 0x080F0990 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #8 + ldr r0, _080F0A00 + ldrb r0, [r0] + ldr r1, _080F0A04 + ldrb r1, [r1] + bl GetBoxedMonPtr + adds r6, r0, #0 + ldr r2, _080F0A08 + movs r1, #2 + bl GetBoxMonData + ldr r0, _080F0A0C + mov r8, r0 + adds r0, r6, #0 + movs r1, #2 + mov r2, r8 + bl GetBoxMonData + adds r0, r6, #0 + movs r1, #0xb + movs r2, #0 + bl GetBoxMonData + adds r5, r0, #0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + adds r0, r6, #0 + bl GetBoxMonGender + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r6, #0 + movs r1, #0 + movs r2, #0 + bl GetBoxMonData + str r0, [sp] + ldr r0, _080F0A10 + str r0, [sp, #4] + movs r0, #3 + mov r1, r8 + adds r2, r5, #0 + adds r3, r4, #0 + bl DoNamingScreen + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080F0A00: .4byte 0x02037296 +_080F0A04: .4byte 0x02037298 +_080F0A08: .4byte 0x02021C68 +_080F0A0C: .4byte 0x02021C54 +_080F0A10: .4byte 0x080F0A15 + thumb_func_end ChangeBoxPokemonNickname + + thumb_func_start ChangeBoxPokemonNickname_CB +ChangeBoxPokemonNickname_CB: @ 0x080F0A14 + push {lr} + ldr r0, _080F0A2C + ldrb r0, [r0] + ldr r1, _080F0A30 + ldrb r1, [r1] + ldr r2, _080F0A34 + bl SetBoxMonNickAt + bl CB2_ReturnToFieldContinueScriptPlayMapMusic + pop {r0} + bx r0 + .align 2, 0 +_080F0A2C: .4byte 0x02037296 +_080F0A30: .4byte 0x02037298 +_080F0A34: .4byte 0x02021C54 + thumb_func_end ChangeBoxPokemonNickname_CB + + thumb_func_start TV_CopyNicknameToStringVar1AndEnsureTerminated +TV_CopyNicknameToStringVar1AndEnsureTerminated: @ 0x080F0A38 + push {r4, lr} + ldr r0, _080F0A5C + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080F0A60 + adds r0, r0, r1 + ldr r4, _080F0A64 + movs r1, #2 + adds r2, r4, #0 + bl GetMonData + adds r0, r4, #0 + bl StringGetEnd10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F0A5C: .4byte 0x02037280 +_080F0A60: .4byte 0x02024190 +_080F0A64: .4byte 0x02021C40 + thumb_func_end TV_CopyNicknameToStringVar1AndEnsureTerminated + + thumb_func_start TV_CheckMonOTIDEqualsPlayerID +TV_CheckMonOTIDEqualsPlayerID: @ 0x080F0A68 + push {r4, lr} + bl GetPlayerIDAsU32 + adds r4, r0, #0 + ldr r0, _080F0A90 + ldrh r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _080F0A94 + adds r0, r0, r1 + movs r1, #1 + movs r2, #0 + bl GetMonData + cmp r4, r0 + bne _080F0A9C + ldr r1, _080F0A98 + movs r0, #0 + b _080F0AA0 + .align 2, 0 +_080F0A90: .4byte 0x02037280 +_080F0A94: .4byte 0x02024190 +_080F0A98: .4byte 0x02037290 +_080F0A9C: + ldr r1, _080F0AA8 + movs r0, #1 +_080F0AA0: + strh r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F0AA8: .4byte 0x02037290 + thumb_func_end TV_CheckMonOTIDEqualsPlayerID + + thumb_func_start GetTVChannelByShowType +GetTVChannelByShowType: @ 0x080F0AAC + push {lr} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r2, r1, #0 + cmp r1, #0 + beq _080F0AE2 + subs r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x13 + bhi _080F0AC6 + movs r0, #2 + b _080F0AE8 +_080F0AC6: + adds r0, r1, #0 + subs r0, #0x15 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x13 + bhi _080F0AD6 + movs r0, #3 + b _080F0AE8 +_080F0AD6: + adds r0, r2, #0 + subs r0, #0x29 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x13 + bls _080F0AE6 +_080F0AE2: + movs r0, #0 + b _080F0AE8 +_080F0AE6: + movs r0, #4 +_080F0AE8: + pop {r1} + bx r1 + thumb_func_end GetTVChannelByShowType + + thumb_func_start GetPlayerIDAsU32 +GetPlayerIDAsU32: @ 0x080F0AEC + ldr r0, _080F0B08 + ldr r2, [r0] + ldrb r0, [r2, #0xd] + lsls r0, r0, #0x18 + ldrb r1, [r2, #0xc] + lsls r1, r1, #0x10 + orrs r0, r1 + ldrb r1, [r2, #0xb] + lsls r1, r1, #8 + orrs r0, r1 + ldrb r1, [r2, #0xa] + orrs r0, r1 + bx lr + .align 2, 0 +_080F0B08: .4byte 0x03005AF0 + thumb_func_end GetPlayerIDAsU32 + + thumb_func_start CheckForBigMovieOrEmergencyNewsOnTV +CheckForBigMovieOrEmergencyNewsOnTV: @ 0x080F0B0C + push {lr} + ldr r0, _080F0B30 + ldr r1, [r0] + movs r0, #4 + ldrsb r0, [r1, r0] + cmp r0, #1 + bne _080F0B2C + ldr r0, _080F0B34 + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #0 + bne _080F0B38 + movs r0, #5 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _080F0B40 +_080F0B2C: + movs r0, #0 + b _080F0B6A + .align 2, 0 +_080F0B30: .4byte 0x03005AEC +_080F0B34: .4byte 0x03005AF0 +_080F0B38: + movs r0, #5 + ldrsb r0, [r1, r0] + cmp r0, #2 + bne _080F0B2C +_080F0B40: + ldr r0, _080F0B64 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080F0B5E + movs r0, #0x89 + lsls r0, r0, #4 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080F0B68 +_080F0B5E: + movs r0, #1 + b _080F0B6A + .align 2, 0 +_080F0B64: .4byte 0x000008BD +_080F0B68: + movs r0, #2 +_080F0B6A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CheckForBigMovieOrEmergencyNewsOnTV + + thumb_func_start GetMomOrDadStringForTVMessage +GetMomOrDadStringForTVMessage: @ 0x080F0B70 + push {r4, lr} + ldr r0, _080F0BA4 + ldr r1, [r0] + movs r0, #4 + ldrsb r0, [r1, r0] + cmp r0, #1 + bne _080F0BD0 + ldr r0, _080F0BA8 + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #0 + bne _080F0BB8 + movs r0, #5 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _080F0BD0 + ldr r0, _080F0BAC + ldr r1, _080F0BB0 + bl StringCopy + ldr r0, _080F0BB4 + movs r1, #1 + bl VarSet + b _080F0BD0 + .align 2, 0 +_080F0BA4: .4byte 0x03005AEC +_080F0BA8: .4byte 0x03005AF0 +_080F0BAC: .4byte 0x02021C40 +_080F0BB0: .4byte 0x085CA9E1 +_080F0BB4: .4byte 0x00004003 +_080F0BB8: + movs r0, #5 + ldrsb r0, [r1, r0] + cmp r0, #2 + bne _080F0BD0 + ldr r0, _080F0C18 + ldr r1, _080F0C1C + bl StringCopy + ldr r0, _080F0C20 + movs r1, #1 + bl VarSet +_080F0BD0: + ldr r4, _080F0C20 + adds r0, r4, #0 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + beq _080F0C0E + adds r0, r4, #0 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #2 + beq _080F0C24 + adds r0, r4, #0 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #2 + bls _080F0C38 + adds r0, r4, #0 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _080F0C24 +_080F0C0E: + ldr r0, _080F0C18 + ldr r1, _080F0C1C + bl StringCopy + b _080F0C74 + .align 2, 0 +_080F0C18: .4byte 0x02021C40 +_080F0C1C: .4byte 0x085CA9E1 +_080F0C20: .4byte 0x00004003 +_080F0C24: + ldr r0, _080F0C30 + ldr r1, _080F0C34 + bl StringCopy + b _080F0C74 + .align 2, 0 +_080F0C30: .4byte 0x02021C40 +_080F0C34: .4byte 0x085CA9DE +_080F0C38: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _080F0C64 + ldr r0, _080F0C5C + ldr r1, _080F0C60 + bl StringCopy + adds r0, r4, #0 + movs r1, #1 + bl VarSet + b _080F0C74 + .align 2, 0 +_080F0C5C: .4byte 0x02021C40 +_080F0C60: .4byte 0x085CA9E1 +_080F0C64: + ldr r0, _080F0C7C + ldr r1, _080F0C80 + bl StringCopy + adds r0, r4, #0 + movs r1, #2 + bl VarSet +_080F0C74: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F0C7C: .4byte 0x02021C40 +_080F0C80: .4byte 0x085CA9DE + thumb_func_end GetMomOrDadStringForTVMessage + + thumb_func_start sub_080F0C84 +sub_080F0C84: @ 0x080F0C84 + push {lr} + ldr r0, _080F0CA8 + movs r1, #0 + bl VarSet + ldr r0, _080F0CAC + ldr r0, [r0] + ldrb r1, [r0, #5] + ldrb r2, [r0, #4] + movs r0, #5 + bl RemoveEventObjectByLocalIdAndMap + ldr r0, _080F0CB0 + bl FlagSet + pop {r0} + bx r0 + .align 2, 0 +_080F0CA8: .4byte 0x000040BC +_080F0CAC: .4byte 0x03005AEC +_080F0CB0: .4byte 0x00000396 + thumb_func_end sub_080F0C84 + + thumb_func_start ReceiveTvShowsData +ReceiveTvShowsData: @ 0x080F0CB4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r7, r0, #0 + adds r6, r1, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + movs r0, #0xe1 + lsls r0, r0, #4 + bl Alloc + mov sb, r0 + cmp r0, #0 + bne _080F0CD8 + b _080F0E1C +_080F0CD8: + movs r4, #0 +_080F0CDA: + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #5 + adds r0, r0, r4 + lsls r0, r0, #2 + add r0, sb + adds r1, r4, #0 + muls r1, r6, r1 + adds r1, r7, r1 + movs r2, #0xe1 + lsls r2, r2, #2 + bl memcpy + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _080F0CDA + mov r5, sb + movs r4, #0 + ldr r0, _080F0D08 + mov sl, r0 + b _080F0D48 + .align 2, 0 +_080F0D08: .4byte 0x020226A0 +_080F0D0C: + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r0, r0, #2 + mov r2, sl + adds r1, r0, r2 + ldrb r0, [r1] + subs r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bhi _080F0D42 + ldrh r0, [r1, #0x1a] + cmp r0, #1 + bne _080F0D36 + adds r0, r4, #0 + muls r0, r6, r0 + adds r0, r7, r0 + movs r1, #2 + bl sub_080F1A40 + b _080F0D42 +_080F0D36: + adds r0, r4, #0 + muls r0, r6, r0 + adds r0, r7, r0 + ldrh r1, [r1, #0x1a] + bl sub_080F1A40 +_080F0D42: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_080F0D48: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + blo _080F0D0C + mov r3, r8 + cmp r3, #1 + beq _080F0D9C + cmp r3, #1 + bgt _080F0D64 + cmp r3, #0 + beq _080F0D70 + b _080F0DF6 +_080F0D64: + mov r4, r8 + cmp r4, #2 + beq _080F0DB4 + cmp r4, #3 + beq _080F0DDC + b _080F0DF6 +_080F0D70: + ldr r0, _080F0D90 + ldr r0, [r0] + ldr r1, _080F0D94 + adds r0, r0, r1 + movs r2, #0xe1 + lsls r2, r2, #2 + adds r1, r5, r2 + movs r3, #0xe1 + lsls r3, r3, #3 + adds r2, r5, r3 + ldr r4, _080F0D98 + adds r3, r5, r4 + bl sub_080F0E34 + b _080F0DF6 + .align 2, 0 +_080F0D90: .4byte 0x03005AEC +_080F0D94: .4byte 0x000027CC +_080F0D98: .4byte 0x00000A8C +_080F0D9C: + ldr r0, _080F0DAC + ldr r1, [r0] + ldr r0, _080F0DB0 + adds r1, r1, r0 + movs r3, #0xe1 + lsls r3, r3, #3 + adds r2, r5, r3 + b _080F0DC2 + .align 2, 0 +_080F0DAC: .4byte 0x03005AEC +_080F0DB0: .4byte 0x000027CC +_080F0DB4: + movs r0, #0xe1 + lsls r0, r0, #2 + adds r1, r5, r0 + ldr r0, _080F0DD0 + ldr r2, [r0] + ldr r3, _080F0DD4 + adds r2, r2, r3 +_080F0DC2: + ldr r4, _080F0DD8 + adds r3, r5, r4 + adds r0, r5, #0 + bl sub_080F0E34 + b _080F0DF6 + .align 2, 0 +_080F0DD0: .4byte 0x03005AEC +_080F0DD4: .4byte 0x000027CC +_080F0DD8: .4byte 0x00000A8C +_080F0DDC: + movs r0, #0xe1 + lsls r0, r0, #2 + adds r1, r5, r0 + movs r3, #0xe1 + lsls r3, r3, #3 + adds r2, r5, r3 + ldr r0, _080F0E2C + ldr r3, [r0] + ldr r4, _080F0E30 + adds r3, r3, r4 + adds r0, r5, #0 + bl sub_080F0E34 +_080F0DF6: + ldr r5, _080F0E2C + ldr r0, [r5] + ldr r4, _080F0E30 + adds r0, r0, r4 + bl sub_080F0428 + bl sub_080F16E0 + ldr r0, [r5] + adds r0, r0, r4 + bl sub_080F0428 + bl sub_080F11E4 + bl sub_080F1640 + mov r0, sb + bl Free +_080F0E1C: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F0E2C: .4byte 0x03005AEC +_080F0E30: .4byte 0x000027CC + thumb_func_end ReceiveTvShowsData + + thumb_func_start sub_080F0E34 +sub_080F0E34: @ 0x080F0E34 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, 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, #4] + add r0, sp, #0x18 + str r0, [sp, #8] + add r0, sp, #0x1c + str r0, [sp, #0xc] + bl GetLinkPlayerCount + ldr r1, _080F0EB0 + strb r0, [r1] +_080F0E60: + movs r6, #0 + ldr r0, _080F0EB0 + ldrb r1, [r0] + cmp r6, r1 + bhs _080F0E60 + mov sl, r0 +_080F0E6C: + cmp r6, #0 + bne _080F0E74 + ldr r2, _080F0EB4 + strb r6, [r2] +_080F0E74: + lsls r4, r6, #2 + mov r3, sp + adds r0, r3, r4 + ldr r0, [r0] + ldr r0, [r0] + bl sub_080F11AC + ldr r1, _080F0EB8 + strb r0, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + adds r7, r4, #0 + cmp r0, r1 + bne _080F0EBC + ldr r1, _080F0EB4 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r2, sl + ldrb r2, [r2] + cmp r0, r2 + beq _080F0F68 + adds r6, #1 + mov sb, r6 + b _080F0F4C + .align 2, 0 +_080F0EB0: .4byte 0x03001174 +_080F0EB4: .4byte 0x02039CF8 +_080F0EB8: .4byte 0x03001176 +_080F0EBC: + movs r5, #0 + mov r3, sl + ldrb r0, [r3] + subs r0, #1 + adds r2, r6, #1 + mov sb, r2 + cmp r5, r0 + bge _080F0F32 + ldr r3, _080F0F5C + mov r8, r3 +_080F0ED0: + adds r0, r6, r5 + adds r4, r0, #1 + mov r0, r8 + ldrb r1, [r0] + adds r0, r4, #0 + bl __modsi3 + lsls r0, r0, #2 + add r0, sp + ldr r0, [r0] + ldr r0, [r0] + bl FindEmptyTVSlotBeyondFirstFiveShowsOfArray + ldr r1, _080F0F60 + strb r0, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080F0F22 + 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, r2, #0x18 + lsrs r2, r2, #0x18 + bl sub_080F0F78 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080F0F32 +_080F0F22: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + mov r1, r8 + ldrb r0, [r1] + subs r0, #1 + cmp r5, r0 + blt _080F0ED0 +_080F0F32: + mov r2, sl + ldrb r0, [r2] + subs r0, #1 + cmp r5, r0 + bne _080F0F4C + mov r3, sp + adds r0, r3, r7 + ldr r0, [r0] + ldr r0, [r0] + ldr r1, _080F0F64 + ldrb r1, [r1] + bl DeleteTVShowInArrayByIdx +_080F0F4C: + mov r1, sb + lsls r0, r1, #0x18 + lsrs r6, r0, #0x18 + mov r2, sl + ldrb r2, [r2] + cmp r6, r2 + blo _080F0E6C + b _080F0E60 + .align 2, 0 +_080F0F5C: .4byte 0x03001174 +_080F0F60: .4byte 0x03005E20 +_080F0F64: .4byte 0x03001176 +_080F0F68: + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_080F0E34 + + thumb_func_start sub_080F0F78 +sub_080F0F78: @ 0x080F0F78 + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + ldr r4, [r0] + ldr r6, [r1] + movs r5, #0 + ldr r2, _080F0FB4 + movs r1, #0 + ldrsb r1, [r2, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r0, [r0] + str r2, [sp] + bl GetTVChannelByShowType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + ldr r2, [sp] + cmp r0, #3 + beq _080F0FE8 + cmp r0, #3 + bgt _080F0FB8 + cmp r0, #2 + beq _080F0FBE + b _080F1036 + .align 2, 0 +_080F0FB4: .4byte 0x03001176 +_080F0FB8: + cmp r1, #4 + beq _080F1010 + b _080F1036 +_080F0FBE: + ldr r0, _080F0FE4 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r4, r0 + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + lsls r1, r2, #3 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r6, r1 + adds r2, r7, #0 + bl sub_080F105C + b _080F1032 + .align 2, 0 +_080F0FE4: .4byte 0x03005E20 +_080F0FE8: + ldr r0, _080F100C + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r4, r0 + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + lsls r1, r2, #3 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r6, r1 + adds r2, r7, #0 + bl sub_080F10C4 + b _080F1032 + .align 2, 0 +_080F100C: .4byte 0x03005E20 +_080F1010: + ldr r0, _080F1040 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r4, r0 + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + lsls r1, r2, #3 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r6, r1 + adds r2, r7, #0 + bl sub_080F1144 +_080F1032: + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_080F1036: + cmp r5, #1 + beq _080F1044 + movs r0, #0 + b _080F1050 + .align 2, 0 +_080F1040: .4byte 0x03005E20 +_080F1044: + ldr r0, _080F1058 + ldrb r1, [r0] + adds r0, r6, #0 + bl DeleteTVShowInArrayByIdx + movs r0, #1 +_080F1050: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080F1058: .4byte 0x03001176 + thumb_func_end sub_080F0F78 + + thumb_func_start sub_080F105C +sub_080F105C: @ 0x080F105C + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r4, r1, #0 + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + 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 _080F108C + lsrs r0, r5, #8 + ands r0, r2 + adds r1, r4, #0 + adds r1, #0x23 + ldrb r1, [r1] + cmp r0, r1 + bne _080F108C + movs r0, #0 + b _080F10BC +_080F108C: + 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, #1 + strb r0, [r2] + strb r5, [r1] + lsrs r0, r5, #8 + strb r0, [r3] + adds r1, r6, #0 + adds r0, r4, #0 + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + movs r0, #1 + strb r0, [r6, #1] +_080F10BC: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080F105C + + thumb_func_start sub_080F10C4 +sub_080F10C4: @ 0x080F10C4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r4, r1, #0 + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + 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 _080F10F0 + lsrs r0, r2, #8 + ands r0, r3 + adds r1, r4, #0 + adds r1, #0x21 + ldrb r1, [r1] + cmp r0, r1 + beq _080F1110 +_080F10F0: + 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 _080F1114 + adds r0, r5, #0 + ands r0, r3 + adds r1, r4, #0 + adds r1, #0x23 + ldrb r1, [r1] + cmp r0, r1 + bne _080F1114 +_080F1110: + movs r0, #0 + b _080F113C +_080F1114: + 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, r3, r4} + stm r1!, {r2, r3, r4} + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + movs r0, #1 + strb r0, [r6, #1] +_080F113C: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080F10C4 + + thumb_func_start sub_080F1144 +sub_080F1144: @ 0x080F1144 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r4, r1, #0 + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + 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 _080F1174 + lsrs r0, r5, #8 + ands r0, r2 + adds r1, r4, #0 + adds r1, #0x23 + ldrb r1, [r1] + cmp r0, r1 + bne _080F1174 + movs r0, #0 + b _080F11A6 +_080F1174: + 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, #1 + strb r0, [r2] + strb r5, [r1] + lsrs r0, r5, #8 + strb r0, [r3] + adds r1, r6, #0 + adds r0, r4, #0 + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + movs r0, #1 + strb r0, [r6, #1] + strh r0, [r6, #0x16] +_080F11A6: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_080F1144 + + thumb_func_start sub_080F11AC +sub_080F11AC: @ 0x080F11AC + push {lr} + adds r3, r0, #0 + movs r2, #0 +_080F11B2: + lsls r0, r2, #3 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r1, r0, r3 + ldrb r0, [r1, #1] + cmp r0, #0 + bne _080F11D2 + ldrb r0, [r1] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3b + bhi _080F11D2 + lsls r0, r2, #0x18 + asrs r0, r0, #0x18 + b _080F11E0 +_080F11D2: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x17 + bls _080F11B2 + movs r0, #1 + rsbs r0, r0, #0 +_080F11E0: + pop {r1} + bx r1 + thumb_func_end sub_080F11AC + + thumb_func_start sub_080F11E4 +sub_080F11E4: @ 0x080F11E4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #8 + movs r0, #0 + mov sb, r0 +_080F11F2: + ldr r3, _080F1218 + ldr r1, [r3] + mov r4, sb + lsls r2, r4, #3 + adds r0, r2, r4 + lsls r0, r0, #2 + adds r1, r1, r0 + ldr r0, _080F121C + adds r1, r1, r0 + ldrb r0, [r1] + adds r7, r2, #0 + cmp r0, #0x29 + bls _080F120E + b _080F15B4 +_080F120E: + lsls r0, r0, #2 + ldr r1, _080F1220 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F1218: .4byte 0x03005AEC +_080F121C: .4byte 0x000027CC +_080F1220: .4byte 0x080F1224 +_080F1224: @ jump table + .4byte _080F15BE @ case 0 + .4byte _080F1324 @ case 1 + .4byte _080F15BE @ case 2 + .4byte _080F133C @ case 3 + .4byte _080F1354 @ case 4 + .4byte _080F136C @ case 5 + .4byte _080F1398 @ case 6 + .4byte _080F13B0 @ case 7 + .4byte _080F12CC @ case 8 + .4byte _080F15BE @ case 9 + .4byte _080F12F8 @ case 10 + .4byte _080F15BE @ case 11 + .4byte _080F15BE @ case 12 + .4byte _080F15B4 @ case 13 + .4byte _080F15B4 @ case 14 + .4byte _080F15B4 @ case 15 + .4byte _080F15B4 @ case 16 + .4byte _080F15B4 @ case 17 + .4byte _080F15B4 @ case 18 + .4byte _080F15B4 @ case 19 + .4byte _080F15B4 @ case 20 + .4byte _080F13DC @ case 21 + .4byte _080F15BE @ case 22 + .4byte _080F13F4 @ case 23 + .4byte _080F1420 @ case 24 + .4byte _080F1438 @ case 25 + .4byte _080F15BE @ case 26 + .4byte _080F15BE @ case 27 + .4byte _080F15BE @ case 28 + .4byte _080F15BE @ case 29 + .4byte _080F1450 @ case 30 + .4byte _080F147C @ case 31 + .4byte _080F15BE @ case 32 + .4byte _080F149C @ case 33 + .4byte _080F15BE @ case 34 + .4byte _080F15BE @ case 35 + .4byte _080F14D0 @ case 36 + .4byte _080F15BE @ case 37 + .4byte _080F15BE @ case 38 + .4byte _080F15BE @ case 39 + .4byte _080F15B4 @ case 40 + .4byte _080F15BE @ case 41 +_080F12CC: + ldr r0, [r3] + mov r1, sb + adds r4, r7, r1 + lsls r4, r4, #2 + adds r0, r4, r0 + ldr r6, _080F12F4 + adds r0, r0, r6 + ldrh r0, [r0, #0x12] + lsls r5, r1, #0x18 + lsrs r5, r5, #0x18 + adds r1, r5, #0 + str r3, [sp, #4] + bl sub_080F1600 + ldr r3, [sp, #4] + ldr r0, [r3] + adds r4, r4, r0 + adds r4, r4, r6 + ldrh r0, [r4, #2] + b _080F14C2 + .align 2, 0 +_080F12F4: .4byte 0x000027CC +_080F12F8: + ldr r0, [r3] + mov r2, sb + adds r4, r7, r2 + lsls r4, r4, #2 + adds r0, r4, r0 + ldr r6, _080F1320 + adds r0, r0, r6 + ldrh r0, [r0, #0x16] + lsls r5, r2, #0x18 + lsrs r5, r5, #0x18 + adds r1, r5, #0 + str r3, [sp, #4] + bl sub_080F1600 + ldr r3, [sp, #4] + ldr r0, [r3] + adds r4, r4, r0 + adds r4, r4, r6 + ldrh r0, [r4, #2] + b _080F14C2 + .align 2, 0 +_080F1320: .4byte 0x000027CC +_080F1324: + ldr r0, [r3] + mov r4, sb + adds r1, r7, r4 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, _080F1338 + adds r1, r1, r0 + ldrh r0, [r1, #2] + b _080F148C + .align 2, 0 +_080F1338: .4byte 0x000027CC +_080F133C: + ldr r0, [r3] + mov r2, sb + adds r1, r7, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r4, _080F1350 + adds r1, r1, r4 + ldrh r0, [r1, #2] + lsls r1, r2, #0x18 + b _080F148E + .align 2, 0 +_080F1350: .4byte 0x000027CC +_080F1354: + ldr r0, [r3] + mov r2, sb + adds r1, r7, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r4, _080F1368 + adds r1, r1, r4 + ldrh r0, [r1, #6] + lsls r1, r2, #0x18 + b _080F148E + .align 2, 0 +_080F1368: .4byte 0x000027CC +_080F136C: + ldr r0, [r3] + mov r1, sb + adds r4, r7, r1 + lsls r4, r4, #2 + adds r0, r4, r0 + ldr r6, _080F1394 + adds r0, r0, r6 + ldrh r0, [r0, #2] + lsls r5, r1, #0x18 + lsrs r5, r5, #0x18 + adds r1, r5, #0 + str r3, [sp, #4] + bl sub_080F1600 + ldr r3, [sp, #4] + ldr r0, [r3] + adds r4, r4, r0 + adds r4, r4, r6 + ldrh r0, [r4, #0x1c] + b _080F14C2 + .align 2, 0 +_080F1394: .4byte 0x000027CC +_080F1398: + ldr r0, [r3] + mov r2, sb + adds r1, r7, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r4, _080F13AC + adds r1, r1, r4 + ldrh r0, [r1, #2] + lsls r1, r2, #0x18 + b _080F148E + .align 2, 0 +_080F13AC: .4byte 0x000027CC +_080F13B0: + ldr r0, [r3] + mov r1, sb + adds r4, r7, r1 + lsls r4, r4, #2 + adds r0, r4, r0 + ldr r6, _080F13D8 + adds r0, r0, r6 + ldrh r0, [r0, #0xa] + lsls r5, r1, #0x18 + lsrs r5, r5, #0x18 + adds r1, r5, #0 + str r3, [sp, #4] + bl sub_080F1600 + ldr r3, [sp, #4] + ldr r0, [r3] + adds r4, r4, r0 + adds r4, r4, r6 + ldrh r0, [r4, #0x14] + b _080F14C2 + .align 2, 0 +_080F13D8: .4byte 0x000027CC +_080F13DC: + ldr r0, [r3] + mov r2, sb + adds r1, r7, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r4, _080F13F0 + adds r1, r1, r4 + ldrh r0, [r1, #0x10] + lsls r1, r2, #0x18 + b _080F148E + .align 2, 0 +_080F13F0: .4byte 0x000027CC +_080F13F4: + ldr r0, [r3] + mov r1, sb + adds r4, r7, r1 + lsls r4, r4, #2 + adds r0, r4, r0 + ldr r6, _080F141C + adds r0, r0, r6 + ldrh r0, [r0, #0xc] + lsls r5, r1, #0x18 + lsrs r5, r5, #0x18 + adds r1, r5, #0 + str r3, [sp, #4] + bl sub_080F1600 + ldr r3, [sp, #4] + ldr r0, [r3] + adds r4, r4, r0 + adds r4, r4, r6 + ldrh r0, [r4, #0xe] + b _080F14C2 + .align 2, 0 +_080F141C: .4byte 0x000027CC +_080F1420: + ldr r0, [r3] + mov r2, sb + adds r1, r7, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r4, _080F1434 + adds r1, r1, r4 + ldrh r0, [r1, #4] + lsls r1, r2, #0x18 + b _080F148E + .align 2, 0 +_080F1434: .4byte 0x000027CC +_080F1438: + ldr r0, [r3] + mov r1, sb + adds r4, r7, r1 + lsls r4, r4, #2 + adds r0, r4, r0 + ldr r6, _080F144C + adds r0, r0, r6 + ldrh r0, [r0, #8] + b _080F14AC + .align 2, 0 +_080F144C: .4byte 0x000027CC +_080F1450: + ldr r0, [r3] + mov r2, sb + adds r4, r7, r2 + lsls r4, r4, #2 + adds r0, r4, r0 + ldr r6, _080F1478 + adds r0, r0, r6 + ldrh r0, [r0, #2] + lsls r5, r2, #0x18 + lsrs r5, r5, #0x18 + adds r1, r5, #0 + str r3, [sp, #4] + bl sub_080F1600 + ldr r3, [sp, #4] + ldr r0, [r3] + adds r4, r4, r0 + adds r4, r4, r6 + ldrh r0, [r4, #0xa] + b _080F14C2 + .align 2, 0 +_080F1478: .4byte 0x000027CC +_080F147C: + ldr r0, [r3] + mov r4, sb + adds r1, r7, r4 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, _080F1498 + adds r1, r1, r0 + ldrh r0, [r1, #8] +_080F148C: + lsls r1, r4, #0x18 +_080F148E: + lsrs r1, r1, #0x18 + bl sub_080F1600 + b _080F15BE + .align 2, 0 +_080F1498: .4byte 0x000027CC +_080F149C: + ldr r0, [r3] + mov r1, sb + adds r4, r7, r1 + lsls r4, r4, #2 + adds r0, r4, r0 + ldr r6, _080F14CC + adds r0, r0, r6 + ldrh r0, [r0, #6] +_080F14AC: + lsls r5, r1, #0x18 + lsrs r5, r5, #0x18 + adds r1, r5, #0 + str r3, [sp, #4] + bl sub_080F1600 + ldr r3, [sp, #4] + ldr r0, [r3] + adds r4, r4, r0 + adds r4, r4, r6 + ldrh r0, [r4, #4] +_080F14C2: + adds r1, r5, #0 + bl sub_080F1600 + b _080F15BE + .align 2, 0 +_080F14CC: .4byte 0x000027CC +_080F14D0: + ldr r0, [r3] + mov r2, sb + adds r4, r7, r2 + lsls r4, r4, #2 + adds r0, r4, r0 + ldr r5, _080F151C + adds r0, r0, r5 + ldrh r0, [r0, #4] + lsls r2, r2, #0x18 + mov r8, r2 + lsrs r6, r2, #0x18 + adds r1, r6, #0 + str r3, [sp, #4] + bl sub_080F1600 + ldr r3, [sp, #4] + ldr r0, [r3] + adds r0, r4, r0 + adds r0, r0, r5 + ldrh r0, [r0, #6] + adds r1, r6, #0 + bl sub_080F1600 + ldr r3, [sp, #4] + ldr r0, [r3] + adds r4, r4, r0 + adds r4, r4, r5 + ldrb r0, [r4, #0xd] + subs r0, #1 + mov r6, r8 + cmp r0, #0xc + bhi _080F15BE + lsls r0, r0, #2 + ldr r1, _080F1520 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F151C: .4byte 0x000027CC +_080F1520: .4byte 0x080F1524 +_080F1524: @ jump table + .4byte _080F1558 @ case 0 + .4byte _080F157C @ case 1 + .4byte _080F15BE @ case 2 + .4byte _080F15BE @ case 3 + .4byte _080F1558 @ case 4 + .4byte _080F1558 @ case 5 + .4byte _080F1558 @ case 6 + .4byte _080F1558 @ case 7 + .4byte _080F1558 @ case 8 + .4byte _080F1558 @ case 9 + .4byte _080F1558 @ case 10 + .4byte _080F1558 @ case 11 + .4byte _080F1558 @ case 12 +_080F1558: + ldr r0, _080F1574 + ldr r1, [r0] + mov r4, sb + adds r0, r7, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, _080F1578 + adds r0, r0, r1 + ldrh r0, [r0, #8] + lsrs r1, r6, #0x18 + bl sub_080F1600 + b _080F15BE + .align 2, 0 +_080F1574: .4byte 0x03005AEC +_080F1578: .4byte 0x000027CC +_080F157C: + ldr r2, _080F15AC + ldr r0, [r2] + mov r1, sb + adds r4, r7, r1 + lsls r4, r4, #2 + adds r0, r4, r0 + ldr r5, _080F15B0 + adds r0, r0, r5 + ldrh r0, [r0, #8] + lsrs r6, r6, #0x18 + adds r1, r6, #0 + str r2, [sp] + bl sub_080F1600 + ldr r2, [sp] + ldr r0, [r2] + adds r4, r4, r0 + adds r4, r4, r5 + ldrh r0, [r4, #0xa] + adds r1, r6, #0 + bl sub_080F1600 + b _080F15BE + .align 2, 0 +_080F15AC: .4byte 0x03005AEC +_080F15B0: .4byte 0x000027CC +_080F15B4: + mov r2, sb + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + bl SetTvShowInactive +_080F15BE: + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + cmp r0, #0x17 + bhi _080F15CE + b _080F11F2 +_080F15CE: + add sp, #8 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_080F11E4 + + thumb_func_start SetTvShowInactive +SetTvShowInactive: @ 0x080F15DC + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080F15F8 + ldr r2, [r1] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r2, r2, r1 + ldr r0, _080F15FC + adds r2, r2, r0 + movs r0, #0 + strb r0, [r2] + bx lr + .align 2, 0 +_080F15F8: .4byte 0x03005AEC +_080F15FC: .4byte 0x000027CD + thumb_func_end SetTvShowInactive + + thumb_func_start sub_080F1600 +sub_080F1600: @ 0x080F1600 + push {r4, lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + bl HoennToNationalOrder + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0 + bl GetSetPokedexFlag + lsls r0, r0, #0x18 + asrs r2, r0, #0x18 + cmp r2, #0 + bne _080F1632 + ldr r0, _080F1638 + ldr r1, [r0] + lsls r0, r4, #3 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r1, r1, r0 + ldr r0, _080F163C + adds r1, r1, r0 + strb r2, [r1] +_080F1632: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F1638: .4byte 0x03005AEC +_080F163C: .4byte 0x000027CD + thumb_func_end sub_080F1600 + + thumb_func_start sub_080F1640 +sub_080F1640: @ 0x080F1640 + push {r4, r5, r6, lr} + ldr r0, _080F1684 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080F167E + movs r2, #0 + ldr r4, _080F1688 + movs r3, #0 + ldr r5, _080F168C +_080F1658: + ldr r0, [r5] + lsls r1, r2, #3 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r0, r1 + ldr r6, _080F1690 + adds r0, r1, r6 + ldrb r0, [r0] + cmp r0, #7 + beq _080F1670 + cmp r0, #0x29 + bne _080F1674 +_080F1670: + adds r0, r1, r4 + strb r3, [r0] +_080F1674: + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0x17 + bls _080F1658 +_080F167E: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080F1684: .4byte 0x00000864 +_080F1688: .4byte 0x000027CD +_080F168C: .4byte 0x03005AEC +_080F1690: .4byte 0x000027CC + thumb_func_end sub_080F1640 + + thumb_func_start sub_080F1694 +sub_080F1694: @ 0x080F1694 + push {r4, r5, r6, lr} + movs r5, #0 + ldr r6, _080F16D4 +_080F169A: + ldr r1, [r6] + lsls r0, r5, #3 + adds r0, r0, r5 + lsls r4, r0, #2 + adds r1, r1, r4 + ldr r0, _080F16D8 + adds r1, r1, r0 + ldrb r0, [r1] + bl GetTVChannelByShowType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _080F16C2 + ldr r0, [r6] + adds r0, r0, r4 + ldr r1, _080F16DC + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] +_080F16C2: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #4 + bls _080F169A + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080F16D4: .4byte 0x03005AEC +_080F16D8: .4byte 0x000027CC +_080F16DC: .4byte 0x000027CD + thumb_func_end sub_080F1694 + + thumb_func_start sub_080F16E0 +sub_080F16E0: @ 0x080F16E0 + push {r4, r5, lr} + movs r3, #0 + movs r2, #5 + ldr r0, _080F1750 + ldr r4, [r0] + ldr r5, _080F1754 +_080F16EC: + lsls r0, r2, #0x18 + asrs r1, r0, #0x18 + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r4, r0 + adds r0, r0, r5 + ldrb r0, [r0] + cmp r0, #0 + bne _080F170A + lsls r0, r3, #0x18 + movs r2, #0x80 + lsls r2, r2, #0x11 + adds r0, r0, r2 + lsrs r3, r0, #0x18 +_080F170A: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0x17 + ble _080F16EC + movs r2, #0 + lsls r0, r3, #0x18 + asrs r0, r0, #0x18 + movs r1, #5 + subs r0, r1, r0 + cmp r2, r0 + bge _080F174A + adds r5, r0, #0 +_080F1726: + ldr r0, _080F1750 + ldr r0, [r0] + ldr r1, _080F1754 + adds r0, r0, r1 + lsls r1, r2, #0x18 + asrs r4, r1, #0x18 + movs r2, #0xa0 + lsls r2, r2, #0x13 + adds r1, r1, r2 + lsrs r1, r1, #0x18 + bl DeleteTVShowInArrayByIdx + adds r4, #1 + lsls r4, r4, #0x18 + lsrs r2, r4, #0x18 + asrs r4, r4, #0x18 + cmp r4, r5 + blt _080F1726 +_080F174A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080F1750: .4byte 0x03005AEC +_080F1754: .4byte 0x000027CC + thumb_func_end sub_080F16E0 + + thumb_func_start ReceivePokeNewsData +ReceivePokeNewsData: @ 0x080F1758 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + adds r7, r1, #0 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + movs r0, #0x80 + lsls r0, r0, #1 + bl Alloc + adds r5, r0, #0 + cmp r5, #0 + beq _080F1828 + movs r4, #0 +_080F1776: + lsls r0, r4, #6 + adds r0, r0, r5 + adds r1, r4, #0 + muls r1, r7, r1 + add r1, r8 + movs r2, #0x40 + bl memcpy + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _080F1776 + cmp r6, #1 + beq _080F17CC + cmp r6, #1 + bgt _080F179E + cmp r6, #0 + beq _080F17A8 + b _080F181A +_080F179E: + cmp r6, #2 + beq _080F17E4 + cmp r6, #3 + beq _080F1804 + b _080F181A +_080F17A8: + ldr r0, _080F17C4 + ldr r0, [r0] + ldr r1, _080F17C8 + adds r0, r0, r1 + adds r1, r5, #0 + adds r1, #0x40 + adds r2, r5, #0 + adds r2, #0x80 + adds r3, r5, #0 + adds r3, #0xc0 + bl sub_080F183C + b _080F181A + .align 2, 0 +_080F17C4: .4byte 0x03005AEC +_080F17C8: .4byte 0x00002B50 +_080F17CC: + ldr r0, _080F17DC + ldr r1, [r0] + ldr r0, _080F17E0 + adds r1, r1, r0 + adds r2, r5, #0 + adds r2, #0x80 + b _080F17F0 + .align 2, 0 +_080F17DC: .4byte 0x03005AEC +_080F17E0: .4byte 0x00002B50 +_080F17E4: + adds r1, r5, #0 + adds r1, #0x40 + ldr r0, _080F17FC + ldr r2, [r0] + ldr r0, _080F1800 + adds r2, r2, r0 +_080F17F0: + adds r3, r5, #0 + adds r3, #0xc0 + adds r0, r5, #0 + bl sub_080F183C + b _080F181A + .align 2, 0 +_080F17FC: .4byte 0x03005AEC +_080F1800: .4byte 0x00002B50 +_080F1804: + adds r1, r5, #0 + adds r1, #0x40 + adds r2, r5, #0 + adds r2, #0x80 + ldr r0, _080F1834 + ldr r3, [r0] + ldr r0, _080F1838 + adds r3, r3, r0 + adds r0, r5, #0 + bl sub_080F183C +_080F181A: + bl sub_080F19C8 + bl TVShowGetFlagCount + adds r0, r5, #0 + bl Free +_080F1828: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F1834: .4byte 0x03005AEC +_080F1838: .4byte 0x00002B50 + thumb_func_end ReceivePokeNewsData + + thumb_func_start sub_080F183C +sub_080F183C: @ 0x080F183C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, 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, #4] + add r0, sp, #0x18 + str r0, [sp, #8] + add r0, sp, #0x1c + str r0, [sp, #0xc] + bl GetLinkPlayerCount + ldr r1, _080F1878 + strb r0, [r1] + movs r0, #0 + mov sl, r0 +_080F186C: + movs r7, #0 + mov r1, sl + adds r1, #1 + str r1, [sp, #0x20] + b _080F1904 + .align 2, 0 +_080F1878: .4byte 0x03001175 +_080F187C: + lsls r4, r7, #2 + mov r1, sp + adds r0, r1, r4 + ldr r0, [r0] + ldr r0, [r0] + mov r1, sl + bl sub_080F19A8 + ldr r1, _080F1928 + strb r0, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + mov r8, r4 + adds r1, r7, #1 + mov sb, r1 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080F18FE + movs r5, #0 + ldr r1, _080F192C + ldrb r0, [r1] + subs r0, #1 + cmp r5, r0 + bge _080F18FE + adds r6, r1, #0 +_080F18B0: + adds r0, r7, r5 + adds r4, r0, #1 + ldrb r1, [r6] + adds r0, r4, #0 + bl __modsi3 + lsls r0, r0, #2 + add r0, sp + ldr r0, [r0] + ldr r0, [r0] + bl sub_080EF934 + ldr r1, _080F1930 + strb r0, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080F18F0 + ldrb r1, [r6] + adds r0, r4, #0 + bl __modsi3 + lsls r0, r0, #2 + add r0, sp + ldr r0, [r0] + mov r1, sp + add r1, r8 + ldr r1, [r1] + bl sub_080F1934 +_080F18F0: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldrb r0, [r6] + subs r0, #1 + cmp r5, r0 + blt _080F18B0 +_080F18FE: + mov r1, sb + lsls r0, r1, #0x18 + lsrs r7, r0, #0x18 +_080F1904: + ldr r0, _080F192C + ldrb r0, [r0] + cmp r7, r0 + blo _080F187C + ldr r1, [sp, #0x20] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + cmp r0, #0xf + bls _080F186C + add sp, #0x24 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F1928: .4byte 0x03001176 +_080F192C: .4byte 0x03001175 +_080F1930: .4byte 0x03005E20 + thumb_func_end sub_080F183C + + thumb_func_start sub_080F1934 +sub_080F1934: @ 0x080F1934 + push {lr} + ldr r0, [r0] + ldr r1, [r1] + ldr r2, _080F1958 + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + lsls r2, r2, #2 + adds r1, r1, r2 + ldr r2, _080F195C + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + bl sub_080F1960 + pop {r0} + bx r0 + .align 2, 0 +_080F1958: .4byte 0x03001176 +_080F195C: .4byte 0x03005E20 + thumb_func_end sub_080F1934 + + thumb_func_start sub_080F1960 +sub_080F1960: @ 0x080F1960 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + ldrb r3, [r5] + adds r0, r3, #0 + cmp r0, #0 + bne _080F1976 +_080F1972: + movs r0, #0 + b _080F19A2 +_080F1976: + movs r1, #0 + adds r2, r3, #0 + adds r3, r0, #0 +_080F197C: + lsls r0, r1, #2 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, r3 + beq _080F1972 + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0xf + bls _080F197C + lsls r0, r6, #0x18 + asrs r0, r0, #0x16 + adds r0, r0, r4 + strb r2, [r0] + movs r1, #1 + strb r1, [r0, #1] + ldrh r1, [r5, #2] + strh r1, [r0, #2] + movs r0, #1 +_080F19A2: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_080F1960 + + thumb_func_start sub_080F19A8 +sub_080F19A8: @ 0x080F19A8 + push {lr} + lsls r1, r1, #0x18 + lsrs r2, r1, #0x18 + lsls r1, r2, #2 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0 + beq _080F19BE + lsls r0, r2, #0x18 + asrs r0, r0, #0x18 + b _080F19C2 +_080F19BE: + movs r0, #1 + rsbs r0, r0, #0 +_080F19C2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080F19A8 + + thumb_func_start sub_080F19C8 +sub_080F19C8: @ 0x080F19C8 + push {r4, lr} + movs r4, #0 +_080F19CC: + ldr r0, _080F19F8 + ldr r0, [r0] + lsls r1, r4, #2 + adds r0, r0, r1 + ldr r1, _080F19FC + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #4 + bls _080F19E4 + adds r0, r4, #0 + bl ClearPokemonNewsI +_080F19E4: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xf + bls _080F19CC + bl sub_080EF9BC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F19F8: .4byte 0x03005AEC +_080F19FC: .4byte 0x00002B50 + thumb_func_end sub_080F19C8 + + thumb_func_start TVShowGetFlagCount +TVShowGetFlagCount: @ 0x080F1A00 + push {r4, r5, lr} + ldr r0, _080F1A34 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080F1A2C + movs r2, #0 + ldr r5, _080F1A38 + ldr r4, _080F1A3C + movs r3, #0 +_080F1A18: + ldr r0, [r5] + lsls r1, r2, #2 + adds r0, r0, r1 + adds r0, r0, r4 + strb r3, [r0] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xf + bls _080F1A18 +_080F1A2C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080F1A34: .4byte 0x00000864 +_080F1A38: .4byte 0x03005AEC +_080F1A3C: .4byte 0x00002B51 + thumb_func_end TVShowGetFlagCount + + thumb_func_start sub_080F1A40 +sub_080F1A40: @ 0x080F1A40 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r5, r1, #0 + movs r0, #0x2c + bl AllocZeroed + adds r4, r0, #0 + movs r7, #0 +_080F1A50: + lsls r0, r7, #3 + adds r1, r0, r7 + lsls r1, r1, #2 + adds r1, r1, r6 + ldrb r1, [r1] + subs r1, #1 + adds r2, r0, #0 + cmp r1, #0x28 + bls _080F1A64 + b _080F1CD0 +_080F1A64: + lsls r0, r1, #2 + ldr r1, _080F1A70 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F1A70: .4byte 0x080F1A74 +_080F1A74: @ jump table + .4byte _080F1B18 @ case 0 + .4byte _080F1B18 @ case 1 + .4byte _080F1B36 @ case 2 + .4byte _080F1CD0 @ case 3 + .4byte _080F1C2E @ case 4 + .4byte _080F1BFA @ case 5 + .4byte _080F1BC2 @ case 6 + .4byte _080F1CD0 @ case 7 + .4byte _080F1CD0 @ case 8 + .4byte _080F1CD0 @ case 9 + .4byte _080F1CD0 @ case 10 + .4byte _080F1CD0 @ case 11 + .4byte _080F1CD0 @ case 12 + .4byte _080F1CD0 @ case 13 + .4byte _080F1CD0 @ case 14 + .4byte _080F1CD0 @ case 15 + .4byte _080F1CD0 @ case 16 + .4byte _080F1CD0 @ case 17 + .4byte _080F1CD0 @ case 18 + .4byte _080F1CD0 @ case 19 + .4byte _080F1B6E @ case 20 + .4byte _080F1BA2 @ case 21 + .4byte _080F1C66 @ case 22 + .4byte _080F1C86 @ case 23 + .4byte _080F1CA6 @ case 24 + .4byte _080F1CD0 @ case 25 + .4byte _080F1CD0 @ case 26 + .4byte _080F1CD0 @ case 27 + .4byte _080F1CD0 @ case 28 + .4byte _080F1CD0 @ case 29 + .4byte _080F1CD0 @ case 30 + .4byte _080F1CD0 @ case 31 + .4byte _080F1CD0 @ case 32 + .4byte _080F1CD0 @ case 33 + .4byte _080F1CD0 @ case 34 + .4byte _080F1CD0 @ case 35 + .4byte _080F1CD0 @ case 36 + .4byte _080F1CD0 @ case 37 + .4byte _080F1CD0 @ case 38 + .4byte _080F1CD0 @ case 39 + .4byte _080F1CC6 @ case 40 +_080F1B18: + adds r0, r2, r7 + lsls r0, r0, #2 + adds r0, r6, r0 + str r0, [r4] + adds r0, #0x10 + bl IsStringJapanese + cmp r0, #0 + beq _080F1B32 + ldr r1, [r4] + movs r0, #1 + strb r0, [r1, #0x18] + b _080F1CD0 +_080F1B32: + ldr r0, [r4] + b _080F1CCE +_080F1B36: + adds r0, r2, r7 + lsls r0, r0, #2 + adds r0, r6, r0 + str r0, [r4, #4] + adds r0, #5 + bl IsStringJapanese + cmp r0, #0 + beq _080F1B50 + ldr r1, [r4, #4] + movs r0, #1 + strb r0, [r1, #0xd] + b _080F1B54 +_080F1B50: + ldr r0, [r4, #4] + strb r5, [r0, #0xd] +_080F1B54: + ldr r0, [r4, #4] + adds r0, #0x10 + bl IsStringJapanese + cmp r0, #0 + beq _080F1B68 + ldr r1, [r4, #4] + movs r0, #1 + strb r0, [r1, #0xe] + b _080F1CD0 +_080F1B68: + ldr r0, [r4, #4] + strb r5, [r0, #0xe] + b _080F1CD0 +_080F1B6E: + adds r0, r2, r7 + lsls r0, r0, #2 + adds r0, r6, r0 + str r0, [r4, #0x18] + adds r0, #0x13 + bl IsStringJapanese + cmp r0, #0 + beq _080F1B88 + ldr r1, [r4, #0x18] + movs r0, #1 + strb r0, [r1, #2] + b _080F1B8C +_080F1B88: + ldr r0, [r4, #0x18] + strb r5, [r0, #2] +_080F1B8C: + ldr r0, [r4, #0x18] + adds r0, #4 + bl IsStringJapanese + cmp r0, #0 + beq _080F1B9C + ldr r1, [r4, #0x18] + b _080F1BB6 +_080F1B9C: + ldr r0, [r4, #0x18] + strb r5, [r0, #3] + b _080F1CD0 +_080F1BA2: + adds r0, r2, r7 + lsls r0, r0, #2 + adds r0, r6, r0 + str r0, [r4, #0x1c] + adds r0, #0x13 + bl IsStringJapanese + cmp r0, #0 + beq _080F1BBC + ldr r1, [r4, #0x1c] +_080F1BB6: + movs r0, #1 + strb r0, [r1, #3] + b _080F1CD0 +_080F1BBC: + ldr r0, [r4, #0x1c] + strb r5, [r0, #3] + b _080F1CD0 +_080F1BC2: + adds r0, r2, r7 + lsls r0, r0, #2 + adds r0, r6, r0 + str r0, [r4, #0x14] + adds r0, #2 + bl IsStringJapanese + cmp r0, #0 + beq _080F1BDC + ldr r1, [r4, #0x14] + movs r0, #1 + strb r0, [r1, #0x1d] + b _080F1BE0 +_080F1BDC: + ldr r0, [r4, #0x14] + strb r5, [r0, #0x1d] +_080F1BE0: + ldr r0, [r4, #0x14] + adds r0, #0xc + bl IsStringJapanese + cmp r0, #0 + beq _080F1BF4 + ldr r1, [r4, #0x14] + movs r0, #1 + strb r0, [r1, #0x1e] + b _080F1CD0 +_080F1BF4: + ldr r0, [r4, #0x14] + strb r5, [r0, #0x1e] + b _080F1CD0 +_080F1BFA: + adds r0, r2, r7 + lsls r0, r0, #2 + adds r0, r6, r0 + str r0, [r4, #0x10] + adds r0, #0x16 + bl IsStringJapanese + cmp r0, #0 + beq _080F1C14 + ldr r1, [r4, #0x10] + movs r0, #1 + strb r0, [r1, #0x1e] + b _080F1C18 +_080F1C14: + ldr r0, [r4, #0x10] + strb r5, [r0, #0x1e] +_080F1C18: + ldr r0, [r4, #0x10] + adds r0, #8 + bl IsStringJapanese + cmp r0, #0 + beq _080F1C28 + ldr r1, [r4, #0x10] + b _080F1C5A +_080F1C28: + ldr r0, [r4, #0x10] + strb r5, [r0, #0x1f] + b _080F1CD0 +_080F1C2E: + adds r0, r2, r7 + lsls r0, r0, #2 + adds r0, r6, r0 + str r0, [r4, #0xc] + adds r0, #0xf + bl IsStringJapanese + cmp r0, #0 + beq _080F1C48 + ldr r1, [r4, #0xc] + movs r0, #1 + strb r0, [r1, #0x1e] + b _080F1C4C +_080F1C48: + ldr r0, [r4, #0xc] + strb r5, [r0, #0x1e] +_080F1C4C: + ldr r0, [r4, #0xc] + adds r0, #4 + bl IsStringJapanese + cmp r0, #0 + beq _080F1C60 + ldr r1, [r4, #0xc] +_080F1C5A: + movs r0, #1 + strb r0, [r1, #0x1f] + b _080F1CD0 +_080F1C60: + ldr r0, [r4, #0xc] + strb r5, [r0, #0x1f] + b _080F1CD0 +_080F1C66: + adds r0, r2, r7 + lsls r0, r0, #2 + adds r0, r6, r0 + str r0, [r4, #8] + adds r0, #0x13 + bl IsStringJapanese + cmp r0, #0 + beq _080F1C80 + ldr r1, [r4, #8] + movs r0, #1 + strb r0, [r1, #2] + b _080F1CD0 +_080F1C80: + ldr r0, [r4, #8] + strb r5, [r0, #2] + b _080F1CD0 +_080F1C86: + adds r0, r2, r7 + lsls r0, r0, #2 + adds r0, r6, r0 + str r0, [r4, #0x20] + adds r0, #0x13 + bl IsStringJapanese + cmp r0, #0 + beq _080F1CA0 + ldr r1, [r4, #0x20] + movs r0, #1 + strb r0, [r1, #6] + b _080F1CD0 +_080F1CA0: + ldr r0, [r4, #0x20] + strb r5, [r0, #6] + b _080F1CD0 +_080F1CA6: + adds r0, r2, r7 + lsls r0, r0, #2 + adds r0, r6, r0 + str r0, [r4, #0x24] + adds r0, #0x13 + bl IsStringJapanese + cmp r0, #0 + beq _080F1CC0 + ldr r1, [r4, #0x24] + movs r0, #1 + strb r0, [r1, #0xb] + b _080F1CD0 +_080F1CC0: + ldr r0, [r4, #0x24] + strb r5, [r0, #0xb] + b _080F1CD0 +_080F1CC6: + adds r0, r2, r7 + lsls r0, r0, #2 + adds r0, r6, r0 + str r0, [r4, #0x28] +_080F1CCE: + strb r5, [r0, #0x18] +_080F1CD0: + adds r7, #1 + cmp r7, #0x17 + bgt _080F1CD8 + b _080F1A50 +_080F1CD8: + adds r0, r4, #0 + bl Free + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_080F1A40 + + thumb_func_start sub_080F1CE4 +sub_080F1CE4: @ 0x080F1CE4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r5, #0 + movs r6, #0x17 +_080F1CEC: + ldrb r0, [r4] + cmp r0, #0x17 + beq _080F1D08 + cmp r0, #0x19 + bne _080F1D18 + ldrb r0, [r4, #0xa] + cmp r0, #0x58 + bls _080F1D18 + adds r0, r5, #0 + movs r1, #0 + movs r2, #0x24 + bl memset + b _080F1D18 +_080F1D08: + ldrb r0, [r4, #0x12] + cmp r0, #0x58 + bls _080F1D18 + adds r0, r5, #0 + movs r1, #0 + movs r2, #0x24 + bl memset +_080F1D18: + adds r4, #0x24 + adds r5, #0x24 + subs r6, #1 + cmp r6, #0 + bge _080F1CEC + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_080F1CE4 + + thumb_func_start DoTVShow +DoTVShow: @ 0x080F1D28 + push {lr} + ldr r0, _080F1D60 + ldr r2, [r0] + ldr r0, _080F1D64 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, r2, r0 + ldr r1, _080F1D68 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080F1D46 + b _080F1ED2 +_080F1D46: + subs r1, #1 + adds r0, r2, r1 + ldrb r0, [r0] + subs r0, #1 + cmp r0, #0x28 + bls _080F1D54 + b _080F1ED2 +_080F1D54: + lsls r0, r0, #2 + ldr r1, _080F1D6C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F1D60: .4byte 0x03005AEC +_080F1D64: .4byte 0x02037280 +_080F1D68: .4byte 0x000027CD +_080F1D6C: .4byte 0x080F1D70 +_080F1D70: @ jump table + .4byte _080F1E14 @ case 0 + .4byte _080F1E1A @ case 1 + .4byte _080F1E20 @ case 2 + .4byte _080F1E26 @ case 3 + .4byte _080F1E4A @ case 4 + .4byte _080F1E32 @ case 5 + .4byte _080F1E38 @ case 6 + .4byte _080F1E50 @ case 7 + .4byte _080F1E5C @ case 8 + .4byte _080F1E56 @ case 9 + .4byte _080F1EA4 @ case 10 + .4byte _080F1ECE @ case 11 + .4byte _080F1ED2 @ case 12 + .4byte _080F1ED2 @ case 13 + .4byte _080F1ED2 @ case 14 + .4byte _080F1ED2 @ case 15 + .4byte _080F1ED2 @ case 16 + .4byte _080F1ED2 @ case 17 + .4byte _080F1ED2 @ case 18 + .4byte _080F1ED2 @ case 19 + .4byte _080F1E3E @ case 20 + .4byte _080F1E44 @ case 21 + .4byte _080F1E62 @ case 22 + .4byte _080F1E68 @ case 23 + .4byte _080F1E6E @ case 24 + .4byte _080F1E74 @ case 25 + .4byte _080F1E7A @ case 26 + .4byte _080F1E80 @ case 27 + .4byte _080F1E86 @ case 28 + .4byte _080F1E8C @ case 29 + .4byte _080F1E92 @ case 30 + .4byte _080F1E98 @ case 31 + .4byte _080F1E9E @ case 32 + .4byte _080F1EAA @ case 33 + .4byte _080F1EB0 @ case 34 + .4byte _080F1EB6 @ case 35 + .4byte _080F1EBC @ case 36 + .4byte _080F1EC2 @ case 37 + .4byte _080F1EC8 @ case 38 + .4byte _080F1ED2 @ case 39 + .4byte _080F1E2C @ case 40 +_080F1E14: + bl DoTVShowPokemonFanClubLetter + b _080F1ED2 +_080F1E1A: + bl DoTVShowRecentHappenings + b _080F1ED2 +_080F1E20: + bl DoTVShowPokemonFanClubOpinions + b _080F1ED2 +_080F1E26: + bl DoTVShowDummiedOut + b _080F1ED2 +_080F1E2C: + bl DoTVShowPokemonNewsMassOutbreak + b _080F1ED2 +_080F1E32: + bl DoTVShowBravoTrainerPokemonProfile + b _080F1ED2 +_080F1E38: + bl DoTVShowBravoTrainerBattleTower + b _080F1ED2 +_080F1E3E: + bl DoTVShowPokemonTodaySuccessfulCapture + b _080F1ED2 +_080F1E44: + bl DoTVShowTodaysSmartShopper + b _080F1ED2 +_080F1E4A: + bl DoTVShowTheNameRaterShow + b _080F1ED2 +_080F1E50: + bl DoTVShowPokemonContestLiveUpdates + b _080F1ED2 +_080F1E56: + bl DoTVShowPokemonBattleUpdate + b _080F1ED2 +_080F1E5C: + bl DoTVShow3CheersForPokeblocks + b _080F1ED2 +_080F1E62: + bl DoTVShowPokemonTodayFailedCapture + b _080F1ED2 +_080F1E68: + bl DoTVShowPokemonAngler + b _080F1ED2 +_080F1E6E: + bl DoTVShowTheWorldOfMasters + b _080F1ED2 +_080F1E74: + bl DoTVShowTodaysRivalTrainer + b _080F1ED2 +_080F1E7A: + bl DoTVShowDewfordTrendWatcherNetwork + b _080F1ED2 +_080F1E80: + bl DoTVShowHoennTreasureInvestigators + b _080F1ED2 +_080F1E86: + bl DoTVShowFindThatGamer + b _080F1ED2 +_080F1E8C: + bl DoTVShowBreakingNewsTV + b _080F1ED2 +_080F1E92: + bl DoTVShowSecretBaseVisit + b _080F1ED2 +_080F1E98: + bl DoTVShowPokemonLotteryWinnerFlashReport + b _080F1ED2 +_080F1E9E: + bl DoTVShowThePokemonBattleSeminar + b _080F1ED2 +_080F1EA4: + bl DoTVShowTrainerFanClubSpecial + b _080F1ED2 +_080F1EAA: + bl DoTVShowTrainerFanClub + b _080F1ED2 +_080F1EB0: + bl DoTVShowSpotTheCuties + b _080F1ED2 +_080F1EB6: + bl DoTVShowPokemonNewsBattleFrontier + b _080F1ED2 +_080F1EBC: + bl DoTVShowWhatsNo1InHoennToday + b _080F1ED2 +_080F1EC2: + bl DoTVShowSecretBaseSecrets + b _080F1ED2 +_080F1EC8: + bl DoTVShowSafariFanClub + b _080F1ED2 +_080F1ECE: + bl DoTVShowPokemonContestLiveUpdates2 +_080F1ED2: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end DoTVShow + + thumb_func_start DoTVShowBravoTrainerPokemonProfile +DoTVShowBravoTrainerPokemonProfile: @ 0x080F1ED8 + push {r4, r5, lr} + ldr r2, _080F1F08 + ldr r0, _080F1F0C + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080F1F10 + adds r0, r0, r1 + ldr r1, [r2] + adds r4, r1, r0 + ldr r1, _080F1F14 + movs r0, #0 + strh r0, [r1] + ldr r0, _080F1F18 + ldrb r5, [r0] + cmp r5, #8 + bls _080F1EFE + b _080F2140 +_080F1EFE: + lsls r0, r5, #2 + ldr r1, _080F1F1C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F1F08: .4byte 0x03005AEC +_080F1F0C: .4byte 0x02037280 +_080F1F10: .4byte 0x000027CC +_080F1F14: .4byte 0x02037290 +_080F1F18: .4byte 0x02039CFC +_080F1F1C: .4byte 0x080F1F20 +_080F1F20: @ jump table + .4byte _080F1F44 @ case 0 + .4byte _080F1F9C @ case 1 + .4byte _080F1FD4 @ case 2 + .4byte _080F2004 @ case 3 + .4byte _080F2038 @ case 4 + .4byte _080F206C @ case 5 + .4byte _080F20B0 @ case 6 + .4byte _080F20F8 @ case 7 + .4byte _080F2128 @ case 8 +_080F1F44: + ldr r0, _080F1F84 + adds r1, r4, #0 + adds r1, #0x16 + bl StringCopy + ldrb r1, [r4, #0x13] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + movs r0, #1 + bl CopyContestCategoryToStringVar + ldrb r1, [r4, #0x13] + lsls r1, r1, #0x1b + lsrs r1, r1, #0x1e + movs r0, #2 + bl CopyContestRankToStringVar + ldrh r1, [r4, #2] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r1, _080F1F88 + adds r0, r0, r1 + adds r1, r4, #0 + adds r1, #8 + bl StringCompare + cmp r0, #0 + bne _080F1F90 + ldr r1, _080F1F8C + movs r0, #8 + b _080F213E + .align 2, 0 +_080F1F84: .4byte 0x02021C40 +_080F1F88: .4byte 0x082EA31C +_080F1F8C: .4byte 0x02039CFC +_080F1F90: + ldr r1, _080F1F98 + movs r0, #1 + b _080F213E + .align 2, 0 +_080F1F98: .4byte 0x02039CFC +_080F1F9C: + ldr r0, _080F1FC8 + ldrh r2, [r4, #2] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F1FCC + adds r1, r1, r2 + bl StringCopy + ldr r0, _080F1FD0 + adds r1, r4, #0 + adds r1, #8 + bl StringCopy10 + ldrb r1, [r4, #0x13] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + movs r0, #2 + bl CopyContestCategoryToStringVar + b _080F213A + .align 2, 0 +_080F1FC8: .4byte 0x02021C40 +_080F1FCC: .4byte 0x082EA31C +_080F1FD0: .4byte 0x02021C54 +_080F1FD4: + ldr r0, _080F1FF0 + adds r1, r4, #0 + adds r1, #0x16 + bl StringCopy + ldrb r1, [r4, #0x13] + movs r0, #0x60 + ands r0, r1 + cmp r0, #0 + bne _080F1FF8 + ldr r1, _080F1FF4 + movs r0, #3 + b _080F213E + .align 2, 0 +_080F1FF0: .4byte 0x02021C40 +_080F1FF4: .4byte 0x02039CFC +_080F1FF8: + ldr r1, _080F2000 + movs r0, #4 + b _080F213E + .align 2, 0 +_080F2000: .4byte 0x02039CFC +_080F2004: + ldr r0, _080F202C + adds r1, r4, #0 + adds r1, #0x16 + bl StringCopy + ldr r0, _080F2030 + ldrh r1, [r4, #4] + bl CopyEasyChatWord + ldrb r1, [r4, #0x13] + lsls r1, r1, #0x19 + lsrs r1, r1, #0x1e + adds r1, #1 + movs r0, #2 + bl TV_PrintIntToStringVar + ldr r1, _080F2034 + movs r0, #5 + b _080F213E + .align 2, 0 +_080F202C: .4byte 0x02021C40 +_080F2030: .4byte 0x02021C54 +_080F2034: .4byte 0x02039CFC +_080F2038: + ldr r0, _080F2060 + adds r1, r4, #0 + adds r1, #0x16 + bl StringCopy + ldr r0, _080F2064 + ldrh r1, [r4, #4] + bl CopyEasyChatWord + ldrb r1, [r4, #0x13] + lsls r1, r1, #0x19 + lsrs r1, r1, #0x1e + adds r1, #1 + movs r0, #2 + bl TV_PrintIntToStringVar + ldr r1, _080F2068 + movs r0, #5 + b _080F213E + .align 2, 0 +_080F2060: .4byte 0x02021C40 +_080F2064: .4byte 0x02021C54 +_080F2068: .4byte 0x02039CFC +_080F206C: + ldr r0, _080F2098 + adds r1, r4, #0 + adds r1, #0x16 + bl StringCopy + ldrb r1, [r4, #0x13] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + movs r0, #1 + bl CopyContestCategoryToStringVar + ldr r0, _080F209C + ldrh r1, [r4, #6] + bl CopyEasyChatWord + ldrh r0, [r4, #0x14] + cmp r0, #0 + beq _080F20A4 + ldr r1, _080F20A0 + movs r0, #6 + b _080F213E + .align 2, 0 +_080F2098: .4byte 0x02021C40 +_080F209C: .4byte 0x02021C68 +_080F20A0: .4byte 0x02039CFC +_080F20A4: + ldr r1, _080F20AC + movs r0, #7 + b _080F213E + .align 2, 0 +_080F20AC: .4byte 0x02039CFC +_080F20B0: + ldr r0, _080F20E0 + ldrh r2, [r4, #2] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F20E4 + adds r1, r1, r2 + bl StringCopy + ldr r0, _080F20E8 + ldrh r1, [r4, #0x14] + lsls r1, r1, #3 + ldr r2, _080F20EC + adds r1, r1, r2 + bl StringCopy + ldr r0, _080F20F0 + ldrh r1, [r4, #6] + bl CopyEasyChatWord + ldr r1, _080F20F4 + movs r0, #7 + b _080F213E + .align 2, 0 +_080F20E0: .4byte 0x02021C40 +_080F20E4: .4byte 0x082EA31C +_080F20E8: .4byte 0x02021C54 +_080F20EC: .4byte 0x082EACC4 +_080F20F0: .4byte 0x02021C68 +_080F20F4: .4byte 0x02039CFC +_080F20F8: + ldr r0, _080F211C + adds r1, r4, #0 + adds r1, #0x16 + bl StringCopy + ldr r0, _080F2120 + ldrh r2, [r4, #2] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F2124 + adds r1, r1, r2 + bl StringCopy + bl TVShowDone + b _080F2140 + .align 2, 0 +_080F211C: .4byte 0x02021C40 +_080F2120: .4byte 0x02021C54 +_080F2124: .4byte 0x082EA31C +_080F2128: + ldr r0, _080F2154 + ldrh r2, [r4, #2] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F2158 + adds r1, r1, r2 + bl StringCopy +_080F213A: + ldr r1, _080F215C + movs r0, #2 +_080F213E: + strb r0, [r1] +_080F2140: + ldr r0, _080F2160 + lsls r1, r5, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080F2154: .4byte 0x02021C40 +_080F2158: .4byte 0x082EA31C +_080F215C: .4byte 0x02039CFC +_080F2160: .4byte 0x08568CB0 + thumb_func_end DoTVShowBravoTrainerPokemonProfile + + thumb_func_start DoTVShowBravoTrainerBattleTower +DoTVShowBravoTrainerBattleTower: @ 0x080F2164 + push {r4, r5, lr} + ldr r2, _080F2198 + ldr r0, _080F219C + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080F21A0 + adds r0, r0, r1 + ldr r1, [r2] + adds r4, r1, r0 + ldr r1, _080F21A4 + movs r0, #0 + strh r0, [r1] + ldr r0, _080F21A8 + ldrb r5, [r0] + adds r2, r0, #0 + cmp r5, #0xe + bls _080F218C + b _080F23CA +_080F218C: + lsls r0, r5, #2 + ldr r1, _080F21AC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F2198: .4byte 0x03005AEC +_080F219C: .4byte 0x02037280 +_080F21A0: .4byte 0x000027CC +_080F21A4: .4byte 0x02037290 +_080F21A8: .4byte 0x02039CFC +_080F21AC: .4byte 0x080F21B0 +_080F21B0: @ jump table + .4byte _080F21EC @ case 0 + .4byte _080F2230 @ case 1 + .4byte _080F2280 @ case 2 + .4byte _080F22A0 @ case 3 + .4byte _080F22CC @ case 4 + .4byte _080F2314 @ case 5 + .4byte _080F2320 @ case 6 + .4byte _080F232C @ case 7 + .4byte _080F2332 @ case 8 + .4byte _080F2332 @ case 9 + .4byte _080F2332 @ case 10 + .4byte _080F234C @ case 11 + .4byte _080F2378 @ case 12 + .4byte _080F2378 @ case 13 + .4byte _080F23AC @ case 14 +_080F21EC: + ldr r0, _080F2214 + adds r1, r4, #2 + bl StringCopy + ldr r0, _080F2218 + ldrh r2, [r4, #0xa] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F221C + adds r1, r1, r2 + bl StringCopy + ldrh r0, [r4, #0x16] + cmp r0, #6 + bls _080F2224 + ldr r1, _080F2220 + movs r0, #1 + strb r0, [r1] + b _080F23CA + .align 2, 0 +_080F2214: .4byte 0x02021C40 +_080F2218: .4byte 0x02021C54 +_080F221C: .4byte 0x082EA31C +_080F2220: .4byte 0x02039CFC +_080F2224: + ldr r1, _080F222C + movs r0, #2 + strb r0, [r1] + b _080F23CA + .align 2, 0 +_080F222C: .4byte 0x02039CFC +_080F2230: + ldrb r0, [r4, #0x1a] + cmp r0, #0x32 + bne _080F2248 + ldr r0, _080F2240 + ldr r1, _080F2244 + bl StringCopy + b _080F2250 + .align 2, 0 +_080F2240: .4byte 0x02021C40 +_080F2244: .4byte 0x085CAB0D +_080F2248: + ldr r0, _080F2268 + ldr r1, _080F226C + bl StringCopy +_080F2250: + ldrh r1, [r4, #0x16] + movs r0, #1 + bl TV_PrintIntToStringVar + ldrb r0, [r4, #0x1c] + cmp r0, #1 + bne _080F2274 + ldr r1, _080F2270 + movs r0, #3 + strb r0, [r1] + b _080F23CA + .align 2, 0 +_080F2268: .4byte 0x02021C40 +_080F226C: .4byte 0x085CAB13 +_080F2270: .4byte 0x02039CFC +_080F2274: + ldr r1, _080F227C + movs r0, #4 + strb r0, [r1] + b _080F23CA + .align 2, 0 +_080F227C: .4byte 0x02039CFC +_080F2280: + ldr r0, _080F229C + adds r1, r4, #0 + adds r1, #0xc + bl StringCopy + ldrh r1, [r4, #0x16] + adds r1, #1 + movs r0, #1 + bl TV_PrintIntToStringVar +_080F2294: + ldrb r0, [r4, #0x1b] + cmp r0, #0 + beq _080F22EE + b _080F2308 + .align 2, 0 +_080F229C: .4byte 0x02021C40 +_080F22A0: + ldr r0, _080F22C0 + adds r1, r4, #0 + adds r1, #0xc + bl StringCopy + ldr r0, _080F22C4 + ldrh r2, [r4, #0x14] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F22C8 + adds r1, r1, r2 + bl StringCopy + b _080F2294 + .align 2, 0 +_080F22C0: .4byte 0x02021C40 +_080F22C4: .4byte 0x02021C54 +_080F22C8: .4byte 0x082EA31C +_080F22CC: + ldr r0, _080F22F8 + adds r1, r4, #0 + adds r1, #0xc + bl StringCopy + ldr r0, _080F22FC + ldrh r2, [r4, #0x14] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F2300 + adds r1, r1, r2 + bl StringCopy + ldrb r0, [r4, #0x1b] + cmp r0, #0 + bne _080F2308 +_080F22EE: + ldr r1, _080F2304 + movs r0, #5 + strb r0, [r1] + b _080F23CA + .align 2, 0 +_080F22F8: .4byte 0x02021C40 +_080F22FC: .4byte 0x02021C54 +_080F2300: .4byte 0x082EA31C +_080F2304: .4byte 0x02039CFC +_080F2308: + ldr r1, _080F2310 + movs r0, #6 + strb r0, [r1] + b _080F23CA + .align 2, 0 +_080F2310: .4byte 0x02039CFC +_080F2314: + ldr r0, _080F231C + adds r1, r4, #0 + adds r1, #0xc + b _080F2336 + .align 2, 0 +_080F231C: .4byte 0x02021C40 +_080F2320: + ldr r0, _080F2328 + adds r1, r4, #0 + adds r1, #0xc + b _080F2336 + .align 2, 0 +_080F2328: .4byte 0x02021C40 +_080F232C: + movs r0, #0xb + strb r0, [r2] + b _080F23CA +_080F2332: + ldr r0, _080F2344 + adds r1, r4, #2 +_080F2336: + bl StringCopy + ldr r1, _080F2348 + movs r0, #0xb + strb r0, [r1] + b _080F23CA + .align 2, 0 +_080F2344: .4byte 0x02021C40 +_080F2348: .4byte 0x02039CFC +_080F234C: + ldr r0, _080F2364 + ldrh r1, [r4, #0x18] + bl CopyEasyChatWord + ldrb r0, [r4, #0x1b] + cmp r0, #0 + bne _080F236C + ldr r1, _080F2368 + movs r0, #0xc + strb r0, [r1] + b _080F23CA + .align 2, 0 +_080F2364: .4byte 0x02021C40 +_080F2368: .4byte 0x02039CFC +_080F236C: + ldr r1, _080F2374 + movs r0, #0xd + strb r0, [r1] + b _080F23CA + .align 2, 0 +_080F2374: .4byte 0x02039CFC +_080F2378: + ldr r0, _080F239C + ldrh r1, [r4, #0x18] + bl CopyEasyChatWord + ldr r0, _080F23A0 + adds r1, r4, #2 + bl StringCopy + ldr r0, _080F23A4 + adds r1, r4, #0 + adds r1, #0xc + bl StringCopy + ldr r1, _080F23A8 + movs r0, #0xe + strb r0, [r1] + b _080F23CA + .align 2, 0 +_080F239C: .4byte 0x02021C40 +_080F23A0: .4byte 0x02021C54 +_080F23A4: .4byte 0x02021C68 +_080F23A8: .4byte 0x02039CFC +_080F23AC: + ldr r0, _080F23DC + adds r1, r4, #2 + bl StringCopy + ldr r0, _080F23E0 + ldrh r2, [r4, #0xa] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F23E4 + adds r1, r1, r2 + bl StringCopy + bl TVShowDone +_080F23CA: + ldr r0, _080F23E8 + lsls r1, r5, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080F23DC: .4byte 0x02021C40 +_080F23E0: .4byte 0x02021C54 +_080F23E4: .4byte 0x082EA31C +_080F23E8: .4byte 0x08568CEC + thumb_func_end DoTVShowBravoTrainerBattleTower + + thumb_func_start DoTVShowTodaysSmartShopper +DoTVShowTodaysSmartShopper: @ 0x080F23EC + push {r4, r5, r6, lr} + ldr r2, _080F2420 + ldr r0, _080F2424 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080F2428 + adds r0, r0, r1 + ldr r1, [r2] + adds r5, r1, r0 + ldr r1, _080F242C + movs r0, #0 + strh r0, [r1] + ldr r0, _080F2430 + ldrb r6, [r0] + adds r2, r0, #0 + cmp r6, #0xc + bls _080F2414 + b _080F2606 +_080F2414: + lsls r0, r6, #2 + ldr r1, _080F2434 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F2420: .4byte 0x03005AEC +_080F2424: .4byte 0x02037280 +_080F2428: .4byte 0x000027CC +_080F242C: .4byte 0x02037290 +_080F2430: .4byte 0x02039CFC +_080F2434: .4byte 0x080F2438 +_080F2438: @ jump table + .4byte _080F246C @ case 0 + .4byte _080F24A8 @ case 1 + .4byte _080F24F0 @ case 2 + .4byte _080F2502 @ case 3 + .4byte _080F24F0 @ case 4 + .4byte _080F24F0 @ case 5 + .4byte _080F252C @ case 6 + .4byte _080F255C @ case 7 + .4byte _080F258C @ case 8 + .4byte _080F2598 @ case 9 + .4byte _080F25A6 @ case 10 + .4byte _080F25B8 @ case 11 + .4byte _080F25F8 @ case 12 +_080F246C: + ldr r0, _080F2490 + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + ldr r0, _080F2494 + ldrb r1, [r5, #0x12] + movs r2, #0 + bl GetMapName + ldrh r0, [r5, #0xc] + cmp r0, #0xfe + bls _080F249C + ldr r1, _080F2498 + movs r0, #0xb + strb r0, [r1] + b _080F2606 + .align 2, 0 +_080F2490: .4byte 0x02021C40 +_080F2494: .4byte 0x02021C54 +_080F2498: .4byte 0x02039CFC +_080F249C: + ldr r1, _080F24A4 + movs r0, #1 + strb r0, [r1] + b _080F2606 + .align 2, 0 +_080F24A4: .4byte 0x02039CFC +_080F24A8: + ldr r0, _080F24E4 + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + ldr r4, _080F24E8 + ldrh r0, [r5, #6] + bl ItemId_GetName + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCopy + ldrh r1, [r5, #0xc] + movs r0, #2 + bl TV_PrintIntToStringVar + ldr r4, _080F24EC + bl Random + ldrb r2, [r4] + adds r2, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + ands r0, r1 + adds r0, r0, r2 + strb r0, [r4] + b _080F2606 + .align 2, 0 +_080F24E4: .4byte 0x02021C40 +_080F24E8: .4byte 0x02021C54 +_080F24EC: .4byte 0x02039CFC +_080F24F0: + ldrh r0, [r5, #8] + cmp r0, #0 + beq _080F24FC + movs r0, #6 + strb r0, [r2] + b _080F2606 +_080F24FC: + movs r0, #0xa + strb r0, [r2] + b _080F2606 +_080F2502: + ldrh r1, [r5, #0xc] + adds r1, #1 + movs r0, #2 + bl TV_PrintIntToStringVar + ldrh r0, [r5, #8] + cmp r0, #0 + beq _080F2520 + ldr r1, _080F251C + movs r0, #6 + strb r0, [r1] + b _080F2606 + .align 2, 0 +_080F251C: .4byte 0x02039CFC +_080F2520: + ldr r1, _080F2528 + movs r0, #0xa + strb r0, [r1] + b _080F2606 + .align 2, 0 +_080F2528: .4byte 0x02039CFC +_080F252C: + ldr r4, _080F2554 + ldrh r0, [r5, #8] + bl ItemId_GetName + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCopy + ldrh r1, [r5, #0xe] + movs r0, #2 + bl TV_PrintIntToStringVar + ldrh r0, [r5, #0xa] + cmp r0, #0 + beq _080F2574 + ldr r1, _080F2558 + movs r0, #7 + strb r0, [r1] + b _080F2606 + .align 2, 0 +_080F2554: .4byte 0x02021C54 +_080F2558: .4byte 0x02039CFC +_080F255C: + ldr r4, _080F2584 + ldrh r0, [r5, #0xa] + bl ItemId_GetName + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCopy + ldrh r1, [r5, #0x10] + movs r0, #2 + bl TV_PrintIntToStringVar +_080F2574: + ldrb r0, [r5, #2] + cmp r0, #1 + beq _080F25D8 + ldr r1, _080F2588 + movs r0, #9 + strb r0, [r1] + b _080F2606 + .align 2, 0 +_080F2584: .4byte 0x02021C54 +_080F2588: .4byte 0x02039CFC +_080F258C: + ldrh r0, [r5, #0xc] + cmp r0, #0xfe + bls _080F25B2 + movs r0, #0xc + strb r0, [r2] + b _080F2606 +_080F2598: + movs r0, #1 + adds r1, r5, #0 + bl sub_080EFF10 + bl TVShowDone + b _080F2606 +_080F25A6: + ldrb r0, [r5, #2] + cmp r0, #1 + bne _080F25B2 + movs r0, #8 + strb r0, [r2] + b _080F2606 +_080F25B2: + movs r0, #9 + strb r0, [r2] + b _080F2606 +_080F25B8: + ldr r0, _080F25E0 + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + ldr r4, _080F25E4 + ldrh r0, [r5, #6] + bl ItemId_GetName + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCopy + ldrb r0, [r5, #2] + cmp r0, #1 + bne _080F25EC +_080F25D8: + ldr r1, _080F25E8 + movs r0, #8 + strb r0, [r1] + b _080F2606 + .align 2, 0 +_080F25E0: .4byte 0x02021C40 +_080F25E4: .4byte 0x02021C54 +_080F25E8: .4byte 0x02039CFC +_080F25EC: + ldr r1, _080F25F4 + movs r0, #0xc + strb r0, [r1] + b _080F2606 + .align 2, 0 +_080F25F4: .4byte 0x02039CFC +_080F25F8: + ldr r0, _080F2618 + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + bl TVShowDone +_080F2606: + ldr r0, _080F261C + lsls r1, r6, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080F2618: .4byte 0x02021C40 +_080F261C: .4byte 0x08568C7C + thumb_func_end DoTVShowTodaysSmartShopper + + thumb_func_start DoTVShowTheNameRaterShow +DoTVShowTheNameRaterShow: @ 0x080F2620 + push {r4, r5, r6, lr} + sub sp, #8 + ldr r2, _080F2654 + ldr r0, _080F2658 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080F265C + adds r0, r0, r1 + ldr r1, [r2] + adds r5, r1, r0 + ldr r1, _080F2660 + movs r0, #0 + strh r0, [r1] + ldr r0, _080F2664 + ldrb r6, [r0] + adds r2, r0, #0 + cmp r6, #0x12 + bls _080F264A + b _080F28E0 +_080F264A: + lsls r0, r6, #2 + ldr r1, _080F2668 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F2654: .4byte 0x03005AEC +_080F2658: .4byte 0x02037280 +_080F265C: .4byte 0x000027CC +_080F2660: .4byte 0x02037290 +_080F2664: .4byte 0x02039CFC +_080F2668: .4byte 0x080F266C +_080F266C: @ jump table + .4byte _080F26B8 @ case 0 + .4byte _080F2700 @ case 1 + .4byte _080F2722 @ case 2 + .4byte _080F2700 @ case 3 + .4byte _080F2700 @ case 4 + .4byte _080F2700 @ case 5 + .4byte _080F2700 @ case 6 + .4byte _080F2700 @ case 7 + .4byte _080F2700 @ case 8 + .4byte _080F2768 @ case 9 + .4byte _080F2768 @ case 10 + .4byte _080F2768 @ case 11 + .4byte _080F27A4 @ case 12 + .4byte _080F27B6 @ case 13 + .4byte _080F27F4 @ case 14 + .4byte _080F2814 @ case 15 + .4byte _080F285C @ case 16 + .4byte _080F288C @ case 17 + .4byte _080F28D4 @ case 18 +_080F26B8: + ldr r0, _080F26EC + adds r1, r5, #0 + adds r1, #0xf + bl StringCopy + ldr r0, _080F26F0 + ldrh r2, [r5, #2] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F26F4 + adds r1, r1, r2 + bl StringCopy + ldr r0, _080F26F8 + adds r1, r5, #4 + bl StringCopy10 + ldr r4, _080F26FC + adds r0, r5, #0 + bl TV_GetNicknameSumMod8 + adds r0, #1 + strb r0, [r4] + b _080F28E0 + .align 2, 0 +_080F26EC: .4byte 0x02021C40 +_080F26F0: .4byte 0x02021C54 +_080F26F4: .4byte 0x082EA31C +_080F26F8: .4byte 0x02021C68 +_080F26FC: .4byte 0x02039CFC +_080F2700: + ldrb r0, [r5, #0x1a] + cmp r0, #0 + bne _080F270C + movs r0, #9 + strb r0, [r2] + b _080F28E0 +_080F270C: + cmp r0, #1 + bne _080F2716 + movs r0, #0xa + strb r0, [r2] + b _080F28E0 +_080F2716: + cmp r0, #2 + beq _080F271C + b _080F28E0 +_080F271C: + movs r0, #0xb + strb r0, [r2] + b _080F28E0 +_080F2722: + ldr r0, _080F273C + adds r1, r5, #0 + adds r1, #0xf + bl StringCopy + ldrb r0, [r5, #0x1a] + cmp r0, #0 + bne _080F2744 + ldr r1, _080F2740 + movs r0, #9 + strb r0, [r1] + b _080F28E0 + .align 2, 0 +_080F273C: .4byte 0x02021C40 +_080F2740: .4byte 0x02039CFC +_080F2744: + cmp r0, #1 + bne _080F2754 + ldr r1, _080F2750 + movs r0, #0xa + strb r0, [r1] + b _080F28E0 + .align 2, 0 +_080F2750: .4byte 0x02039CFC +_080F2754: + cmp r0, #2 + beq _080F275A + b _080F28E0 +_080F275A: + ldr r1, _080F2764 + movs r0, #0xb + strb r0, [r1] + b _080F28E0 + .align 2, 0 +_080F2764: .4byte 0x02039CFC +_080F2768: + ldr r0, _080F279C + adds r1, r5, #4 + bl StringCopy10 + movs r4, #0 + str r4, [sp] + str r5, [sp, #4] + movs r0, #1 + movs r1, #0 + movs r2, #0 + movs r3, #1 + bl TV_GetNicknameSubstring + str r4, [sp] + str r5, [sp, #4] + movs r0, #2 + movs r1, #1 + movs r2, #0 + movs r3, #1 + bl TV_GetNicknameSubstring + ldr r1, _080F27A0 + movs r0, #0xc + strb r0, [r1] + b _080F28E0 + .align 2, 0 +_080F279C: .4byte 0x02021C40 +_080F27A0: .4byte 0x02039CFC +_080F27A4: + ldrb r0, [r5, #0x1b] + cmp r0, #0 + bne _080F27B0 + movs r0, #0xd + strb r0, [r2] + b _080F28E0 +_080F27B0: + movs r0, #0xf + strb r0, [r2] + b _080F28E0 +_080F27B6: + ldr r0, _080F27EC + adds r1, r5, #0 + adds r1, #0xf + bl StringCopy + movs r4, #0 + str r4, [sp] + str r5, [sp, #4] + movs r0, #1 + movs r1, #0 + movs r2, #2 + movs r3, #0 + bl TV_GetNicknameSubstring + str r4, [sp] + str r5, [sp, #4] + movs r0, #2 + movs r1, #0 + movs r2, #3 + movs r3, #1 + bl TV_GetNicknameSubstring + ldr r1, _080F27F0 + movs r0, #0xe + strb r0, [r1] + b _080F28E0 + .align 2, 0 +_080F27EC: .4byte 0x02021C40 +_080F27F0: .4byte 0x02039CFC +_080F27F4: + movs r4, #0 + str r4, [sp] + str r5, [sp, #4] + movs r0, #1 + movs r1, #0 + movs r2, #2 + movs r3, #1 + bl TV_GetNicknameSubstring + str r4, [sp] + str r5, [sp, #4] + movs r0, #2 + movs r1, #0 + movs r2, #3 + movs r3, #0 + b _080F28BC +_080F2814: + movs r0, #0 + str r0, [sp] + str r5, [sp, #4] + movs r1, #0 + movs r2, #2 + movs r3, #1 + bl TV_GetNicknameSubstring + ldr r0, _080F2850 + ldrh r2, [r5, #2] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F2854 + adds r1, r1, r2 + bl StringCopy + ldrh r0, [r5, #2] + str r0, [sp] + str r5, [sp, #4] + movs r0, #2 + movs r1, #0 + movs r2, #3 + movs r3, #2 + bl TV_GetNicknameSubstring + ldr r1, _080F2858 + movs r0, #0x10 + strb r0, [r1] + b _080F28E0 + .align 2, 0 +_080F2850: .4byte 0x02021C54 +_080F2854: .4byte 0x082EA31C +_080F2858: .4byte 0x02039CFC +_080F285C: + ldrh r0, [r5, #2] + str r0, [sp] + str r5, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #2 + movs r3, #2 + bl TV_GetNicknameSubstring + movs r0, #0 + str r0, [sp] + str r5, [sp, #4] + movs r0, #2 + movs r1, #0 + movs r2, #3 + movs r3, #1 + bl TV_GetNicknameSubstring + ldr r1, _080F2888 + movs r0, #0x11 + strb r0, [r1] + b _080F28E0 + .align 2, 0 +_080F2888: .4byte 0x02039CFC +_080F288C: + movs r0, #0 + str r0, [sp] + str r5, [sp, #4] + movs r1, #0 + movs r2, #2 + movs r3, #1 + bl TV_GetNicknameSubstring + ldr r0, _080F28C8 + ldrh r2, [r5, #0x1c] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F28CC + adds r1, r1, r2 + bl StringCopy + ldrh r0, [r5, #0x1c] + str r0, [sp] + str r5, [sp, #4] + movs r0, #2 + movs r1, #0 + movs r2, #3 + movs r3, #2 +_080F28BC: + bl TV_GetNicknameSubstring + ldr r1, _080F28D0 + movs r0, #0x12 + strb r0, [r1] + b _080F28E0 + .align 2, 0 +_080F28C8: .4byte 0x02021C54 +_080F28CC: .4byte 0x082EA31C +_080F28D0: .4byte 0x02039CFC +_080F28D4: + ldr r0, _080F28F4 + adds r1, r5, #4 + bl StringCopy10 + bl TVShowDone +_080F28E0: + ldr r0, _080F28F8 + lsls r1, r6, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080F28F4: .4byte 0x02021C40 +_080F28F8: .4byte 0x08568DE4 + thumb_func_end DoTVShowTheNameRaterShow + + thumb_func_start DoTVShowPokemonTodaySuccessfulCapture +DoTVShowPokemonTodaySuccessfulCapture: @ 0x080F28FC + push {r4, r5, r6, lr} + ldr r2, _080F2930 + ldr r0, _080F2934 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080F2938 + adds r0, r0, r1 + ldr r1, [r2] + adds r5, r1, r0 + ldr r1, _080F293C + movs r0, #0 + strh r0, [r1] + ldr r0, _080F2940 + ldrb r6, [r0] + adds r2, r0, #0 + cmp r6, #0xb + bls _080F2924 + b _080F2B38 +_080F2924: + lsls r0, r6, #2 + ldr r1, _080F2944 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F2930: .4byte 0x03005AEC +_080F2934: .4byte 0x02037280 +_080F2938: .4byte 0x000027CC +_080F293C: .4byte 0x02037290 +_080F2940: .4byte 0x02039CFC +_080F2944: .4byte 0x080F2948 +_080F2948: @ jump table + .4byte _080F2978 @ case 0 + .4byte _080F29CC @ case 1 + .4byte _080F29D2 @ case 2 + .4byte _080F2A0C @ case 3 + .4byte _080F2A44 @ case 4 + .4byte _080F2A4A @ case 5 + .4byte _080F2A80 @ case 6 + .4byte _080F2AD0 @ case 7 + .4byte _080F2AD0 @ case 8 + .4byte _080F2B00 @ case 9 + .4byte _080F2B00 @ case 10 + .4byte _080F2B34 @ case 11 +_080F2978: + ldr r0, _080F29AC + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + ldr r0, _080F29B0 + ldrh r2, [r5, #0x10] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F29B4 + adds r1, r1, r2 + bl StringCopy + ldr r0, _080F29B8 + adds r1, r5, #4 + bl StringCopy10 + ldrb r0, [r5, #0xf] + cmp r0, #1 + bne _080F29C0 + ldr r1, _080F29BC + movs r0, #5 + strb r0, [r1] + b _080F2B38 + .align 2, 0 +_080F29AC: .4byte 0x02021C40 +_080F29B0: .4byte 0x02021C54 +_080F29B4: .4byte 0x082EA31C +_080F29B8: .4byte 0x02021C68 +_080F29BC: .4byte 0x02039CFC +_080F29C0: + ldr r1, _080F29C8 + movs r0, #1 + strb r0, [r1] + b _080F2B38 + .align 2, 0 +_080F29C8: .4byte 0x02039CFC +_080F29CC: + movs r0, #2 + strb r0, [r2] + b _080F2B38 +_080F29D2: + ldr r4, _080F29F8 + ldrb r0, [r5, #0xf] + bl ItemId_GetName + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCopy + ldrb r1, [r5, #0x12] + movs r0, #2 + bl TV_PrintIntToStringVar + ldrb r0, [r5, #0x12] + cmp r0, #3 + bhi _080F2A00 + ldr r1, _080F29FC + movs r0, #3 + strb r0, [r1] + b _080F2B38 + .align 2, 0 +_080F29F8: .4byte 0x02021C54 +_080F29FC: .4byte 0x02039CFC +_080F2A00: + ldr r1, _080F2A08 + movs r0, #4 + strb r0, [r1] + b _080F2B38 + .align 2, 0 +_080F2A08: .4byte 0x02039CFC +_080F2A0C: + ldr r0, _080F2A34 + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + ldr r0, _080F2A38 + ldrh r2, [r5, #0x10] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F2A3C + adds r1, r1, r2 + bl StringCopy + ldr r0, _080F2A40 + adds r1, r5, #4 + bl StringCopy10 + b _080F2A66 + .align 2, 0 +_080F2A34: .4byte 0x02021C40 +_080F2A38: .4byte 0x02021C54 +_080F2A3C: .4byte 0x082EA31C +_080F2A40: .4byte 0x02021C68 +_080F2A44: + movs r0, #6 + strb r0, [r2] + b _080F2B38 +_080F2A4A: + ldr r0, _080F2A70 + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + ldr r0, _080F2A74 + ldrh r2, [r5, #0x10] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F2A78 + adds r1, r1, r2 + bl StringCopy +_080F2A66: + ldr r1, _080F2A7C + movs r0, #6 + strb r0, [r1] + b _080F2B38 + .align 2, 0 +_080F2A70: .4byte 0x02021C40 +_080F2A74: .4byte 0x02021C54 +_080F2A78: .4byte 0x082EA31C +_080F2A7C: .4byte 0x02039CFC +_080F2A80: + ldr r0, _080F2ABC + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + ldr r0, _080F2AC0 + ldrh r2, [r5, #0x10] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F2AC4 + adds r1, r1, r2 + bl StringCopy + ldr r0, _080F2AC8 + adds r1, r5, #4 + bl StringCopy10 + ldr r4, _080F2ACC + bl Random + ldrb r2, [r4] + adds r2, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + ands r0, r1 + adds r0, r0, r2 + strb r0, [r4] + b _080F2B38 + .align 2, 0 +_080F2ABC: .4byte 0x02021C40 +_080F2AC0: .4byte 0x02021C54 +_080F2AC4: .4byte 0x082EA31C +_080F2AC8: .4byte 0x02021C68 +_080F2ACC: .4byte 0x02039CFC +_080F2AD0: + ldr r0, _080F2AF4 + ldrh r2, [r5, #0x10] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F2AF8 + adds r1, r1, r2 + bl StringCopy + ldr r0, _080F2AFC + adds r1, r5, #4 + bl StringCopy10 + ldrh r1, [r5, #0x10] + movs r0, #2 + bl TV_GetSomeOtherSpeciesAlreadySeenByPlayer_AndPrintName + b _080F2B1A + .align 2, 0 +_080F2AF4: .4byte 0x02021C40 +_080F2AF8: .4byte 0x082EA31C +_080F2AFC: .4byte 0x02021C54 +_080F2B00: + ldr r0, _080F2B24 + ldrh r2, [r5, #0x10] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F2B28 + adds r1, r1, r2 + bl StringCopy + ldr r0, _080F2B2C + adds r1, r5, #4 + bl StringCopy10 +_080F2B1A: + ldr r1, _080F2B30 + movs r0, #0xb + strb r0, [r1] + b _080F2B38 + .align 2, 0 +_080F2B24: .4byte 0x02021C40 +_080F2B28: .4byte 0x082EA31C +_080F2B2C: .4byte 0x02021C54 +_080F2B30: .4byte 0x02039CFC +_080F2B34: + bl TVShowDone +_080F2B38: + ldr r0, _080F2B4C + lsls r1, r6, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080F2B4C: .4byte 0x08568C4C + thumb_func_end DoTVShowPokemonTodaySuccessfulCapture + + thumb_func_start DoTVShowPokemonTodayFailedCapture +DoTVShowPokemonTodayFailedCapture: @ 0x080F2B50 + push {r4, r5, lr} + ldr r2, _080F2B80 + ldr r0, _080F2B84 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080F2B88 + adds r0, r0, r1 + ldr r1, [r2] + adds r4, r1, r0 + ldr r1, _080F2B8C + movs r0, #0 + strh r0, [r1] + ldr r0, _080F2B90 + ldrb r5, [r0] + cmp r5, #6 + bls _080F2B76 + b _080F2CA0 +_080F2B76: + lsls r0, r5, #2 + ldr r1, _080F2B94 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F2B80: .4byte 0x03005AEC +_080F2B84: .4byte 0x02037280 +_080F2B88: .4byte 0x000027CC +_080F2B8C: .4byte 0x02037290 +_080F2B90: .4byte 0x02039CFC +_080F2B94: .4byte 0x080F2B98 +_080F2B98: @ jump table + .4byte _080F2BB4 @ case 0 + .4byte _080F2BE8 @ case 1 + .4byte _080F2C3C @ case 2 + .4byte _080F2C3C @ case 3 + .4byte _080F2C80 @ case 4 + .4byte _080F2C80 @ case 5 + .4byte _080F2C9C @ case 6 +_080F2BB4: + ldr r0, _080F2BD8 + adds r1, r4, #0 + adds r1, #0x13 + bl StringCopy + ldr r0, _080F2BDC + ldrh r2, [r4, #0xc] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F2BE0 + adds r1, r1, r2 + bl StringCopy + ldr r1, _080F2BE4 + movs r0, #1 + strb r0, [r1] + b _080F2CA0 + .align 2, 0 +_080F2BD8: .4byte 0x02021C40 +_080F2BDC: .4byte 0x02021C54 +_080F2BE0: .4byte 0x082EA31C +_080F2BE4: .4byte 0x02039CFC +_080F2BE8: + ldr r0, _080F2C1C + adds r1, r4, #0 + adds r1, #0x13 + bl StringCopy + ldr r0, _080F2C20 + ldrb r1, [r4, #0x12] + movs r2, #0 + bl GetMapName + ldr r0, _080F2C24 + ldrh r2, [r4, #0xe] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F2C28 + adds r1, r1, r2 + bl StringCopy + ldrb r0, [r4, #0x11] + cmp r0, #1 + bne _080F2C30 + ldr r1, _080F2C2C + movs r0, #3 + strb r0, [r1] + b _080F2CA0 + .align 2, 0 +_080F2C1C: .4byte 0x02021C40 +_080F2C20: .4byte 0x02021C54 +_080F2C24: .4byte 0x02021C68 +_080F2C28: .4byte 0x082EA31C +_080F2C2C: .4byte 0x02039CFC +_080F2C30: + ldr r1, _080F2C38 + movs r0, #2 + strb r0, [r1] + b _080F2CA0 + .align 2, 0 +_080F2C38: .4byte 0x02039CFC +_080F2C3C: + ldr r0, _080F2C6C + adds r1, r4, #0 + adds r1, #0x13 + bl StringCopy + ldrb r1, [r4, #0x10] + movs r0, #1 + bl TV_PrintIntToStringVar + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080F2C74 + ldr r1, _080F2C70 + movs r0, #5 + strb r0, [r1] + b _080F2CA0 + .align 2, 0 +_080F2C6C: .4byte 0x02021C40 +_080F2C70: .4byte 0x02039CFC +_080F2C74: + ldr r1, _080F2C7C + movs r0, #4 + strb r0, [r1] + b _080F2CA0 + .align 2, 0 +_080F2C7C: .4byte 0x02039CFC +_080F2C80: + ldr r0, _080F2C94 + adds r1, r4, #0 + adds r1, #0x13 + bl StringCopy + ldr r1, _080F2C98 + movs r0, #6 + strb r0, [r1] + b _080F2CA0 + .align 2, 0 +_080F2C94: .4byte 0x02021C40 +_080F2C98: .4byte 0x02039CFC +_080F2C9C: + bl TVShowDone +_080F2CA0: + ldr r0, _080F2CB4 + lsls r1, r5, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080F2CB4: .4byte 0x08568E40 + thumb_func_end DoTVShowPokemonTodayFailedCapture + + thumb_func_start DoTVShowPokemonFanClubLetter +DoTVShowPokemonFanClubLetter: @ 0x080F2CB8 + push {r4, r5, r6, r7, lr} + ldr r2, _080F2CEC + ldr r0, _080F2CF0 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080F2CF4 + adds r0, r0, r1 + ldr r1, [r2] + adds r5, r1, r0 + ldr r1, _080F2CF8 + movs r0, #0 + strh r0, [r1] + ldr r0, _080F2CFC + ldrb r7, [r0] + adds r6, r0, #0 + cmp r7, #0x33 + bls _080F2CE0 + b _080F2ED0 +_080F2CE0: + lsls r0, r7, #2 + ldr r1, _080F2D00 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F2CEC: .4byte 0x03005AEC +_080F2CF0: .4byte 0x02037280 +_080F2CF4: .4byte 0x000027CC +_080F2CF8: .4byte 0x02037290 +_080F2CFC: .4byte 0x02039CFC +_080F2D00: .4byte 0x080F2D04 +_080F2D04: @ jump table + .4byte _080F2DD4 @ case 0 + .4byte _080F2E08 @ case 1 + .4byte _080F2E34 @ case 2 + .4byte _080F2E3A @ case 3 + .4byte _080F2E52 @ case 4 + .4byte _080F2E52 @ case 5 + .4byte _080F2E52 @ case 6 + .4byte _080F2E64 @ case 7 + .4byte _080F2ED0 @ case 8 + .4byte _080F2ED0 @ case 9 + .4byte _080F2ED0 @ case 10 + .4byte _080F2ED0 @ case 11 + .4byte _080F2ED0 @ case 12 + .4byte _080F2ED0 @ case 13 + .4byte _080F2ED0 @ case 14 + .4byte _080F2ED0 @ case 15 + .4byte _080F2ED0 @ case 16 + .4byte _080F2ED0 @ case 17 + .4byte _080F2ED0 @ case 18 + .4byte _080F2ED0 @ case 19 + .4byte _080F2ED0 @ case 20 + .4byte _080F2ED0 @ case 21 + .4byte _080F2ED0 @ case 22 + .4byte _080F2ED0 @ case 23 + .4byte _080F2ED0 @ case 24 + .4byte _080F2ED0 @ case 25 + .4byte _080F2ED0 @ case 26 + .4byte _080F2ED0 @ case 27 + .4byte _080F2ED0 @ case 28 + .4byte _080F2ED0 @ case 29 + .4byte _080F2ED0 @ case 30 + .4byte _080F2ED0 @ case 31 + .4byte _080F2ED0 @ case 32 + .4byte _080F2ED0 @ case 33 + .4byte _080F2ED0 @ case 34 + .4byte _080F2ED0 @ case 35 + .4byte _080F2ED0 @ case 36 + .4byte _080F2ED0 @ case 37 + .4byte _080F2ED0 @ case 38 + .4byte _080F2ED0 @ case 39 + .4byte _080F2ED0 @ case 40 + .4byte _080F2ED0 @ case 41 + .4byte _080F2ED0 @ case 42 + .4byte _080F2ED0 @ case 43 + .4byte _080F2ED0 @ case 44 + .4byte _080F2ED0 @ case 45 + .4byte _080F2ED0 @ case 46 + .4byte _080F2ED0 @ case 47 + .4byte _080F2ED0 @ case 48 + .4byte _080F2ED0 @ case 49 + .4byte _080F2E86 @ case 50 + .4byte _080F2EAC @ case 51 +_080F2DD4: + ldr r0, _080F2DF8 + adds r1, r5, #0 + adds r1, #0x10 + bl StringCopy + ldr r0, _080F2DFC + ldrh r2, [r5, #2] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F2E00 + adds r1, r1, r2 + bl StringCopy + ldr r1, _080F2E04 + movs r0, #0x32 + strb r0, [r1] + b _080F2ED0 + .align 2, 0 +_080F2DF8: .4byte 0x02021C40 +_080F2DFC: .4byte 0x02021C54 +_080F2E00: .4byte 0x082EA31C +_080F2E04: .4byte 0x02039CFC +_080F2E08: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + ands r0, r1 + adds r2, r0, #1 + cmp r2, #1 + bne _080F2E28 + ldr r1, _080F2E24 + movs r0, #2 + strb r0, [r1] + b _080F2ED0 + .align 2, 0 +_080F2E24: .4byte 0x02039CFC +_080F2E28: + ldr r1, _080F2E30 + adds r0, r2, #2 + strb r0, [r1] + b _080F2ED0 + .align 2, 0 +_080F2E30: .4byte 0x02039CFC +_080F2E34: + movs r0, #0x33 + strb r0, [r6] + b _080F2ED0 +_080F2E3A: + bl Random + ldrb r4, [r6] + adds r4, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + adds r0, r0, r4 + strb r0, [r6] + b _080F2ED0 +_080F2E52: + adds r0, r5, #0 + bl TV_FanClubLetter_RandomWordToStringVar3 + ldr r1, _080F2E60 + movs r0, #7 + strb r0, [r1] + b _080F2ED0 + .align 2, 0 +_080F2E60: .4byte 0x02039CFC +_080F2E64: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x1f + bl __umodsi3 + adds r0, #0x46 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + movs r0, #2 + adds r1, r2, #0 + bl TV_PrintIntToStringVar + bl TVShowDone + b _080F2ED0 +_080F2E86: + ldr r4, _080F2EA4 + adds r1, r5, #4 + adds r0, r4, #0 + movs r2, #2 + movs r3, #2 + bl ConvertEasyChatWordsToString + adds r0, r4, #0 + bl ShowFieldMessage + ldr r1, _080F2EA8 + movs r0, #1 + strb r0, [r1] + b _080F2EDC + .align 2, 0 +_080F2EA4: .4byte 0x02021C7C +_080F2EA8: .4byte 0x02039CFC +_080F2EAC: + ldr r4, _080F2EC8 + adds r1, r5, #4 + adds r0, r4, #0 + movs r2, #2 + movs r3, #2 + bl ConvertEasyChatWordsToString + adds r0, r4, #0 + bl ShowFieldMessage + ldr r1, _080F2ECC + movs r0, #3 + strb r0, [r1] + b _080F2EDC + .align 2, 0 +_080F2EC8: .4byte 0x02021C7C +_080F2ECC: .4byte 0x02039CFC +_080F2ED0: + ldr r0, _080F2EE4 + lsls r1, r7, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl ShowFieldMessage +_080F2EDC: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F2EE4: .4byte 0x08568BFC + thumb_func_end DoTVShowPokemonFanClubLetter + + thumb_func_start DoTVShowRecentHappenings +DoTVShowRecentHappenings: @ 0x080F2EE8 + push {r4, r5, r6, r7, lr} + ldr r2, _080F2F1C + ldr r0, _080F2F20 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080F2F24 + adds r0, r0, r1 + ldr r1, [r2] + adds r5, r1, r0 + ldr r1, _080F2F28 + movs r0, #0 + strh r0, [r1] + ldr r0, _080F2F2C + ldrb r6, [r0] + adds r7, r0, #0 + cmp r6, #0x32 + bls _080F2F10 + b _080F3068 +_080F2F10: + lsls r0, r6, #2 + ldr r1, _080F2F30 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F2F1C: .4byte 0x03005AEC +_080F2F20: .4byte 0x02037280 +_080F2F24: .4byte 0x000027CC +_080F2F28: .4byte 0x02037290 +_080F2F2C: .4byte 0x02039CFC +_080F2F30: .4byte 0x080F2F34 +_080F2F34: @ jump table + .4byte _080F3000 @ case 0 + .4byte _080F3020 @ case 1 + .4byte _080F3038 @ case 2 + .4byte _080F3038 @ case 3 + .4byte _080F3038 @ case 4 + .4byte _080F303E @ case 5 + .4byte _080F3068 @ case 6 + .4byte _080F3068 @ case 7 + .4byte _080F3068 @ case 8 + .4byte _080F3068 @ case 9 + .4byte _080F3068 @ case 10 + .4byte _080F3068 @ case 11 + .4byte _080F3068 @ case 12 + .4byte _080F3068 @ case 13 + .4byte _080F3068 @ case 14 + .4byte _080F3068 @ case 15 + .4byte _080F3068 @ case 16 + .4byte _080F3068 @ case 17 + .4byte _080F3068 @ case 18 + .4byte _080F3068 @ case 19 + .4byte _080F3068 @ case 20 + .4byte _080F3068 @ case 21 + .4byte _080F3068 @ case 22 + .4byte _080F3068 @ case 23 + .4byte _080F3068 @ case 24 + .4byte _080F3068 @ case 25 + .4byte _080F3068 @ case 26 + .4byte _080F3068 @ case 27 + .4byte _080F3068 @ case 28 + .4byte _080F3068 @ case 29 + .4byte _080F3068 @ case 30 + .4byte _080F3068 @ case 31 + .4byte _080F3068 @ case 32 + .4byte _080F3068 @ case 33 + .4byte _080F3068 @ case 34 + .4byte _080F3068 @ case 35 + .4byte _080F3068 @ case 36 + .4byte _080F3068 @ case 37 + .4byte _080F3068 @ case 38 + .4byte _080F3068 @ case 39 + .4byte _080F3068 @ case 40 + .4byte _080F3068 @ case 41 + .4byte _080F3068 @ case 42 + .4byte _080F3068 @ case 43 + .4byte _080F3068 @ case 44 + .4byte _080F3068 @ case 45 + .4byte _080F3068 @ case 46 + .4byte _080F3068 @ case 47 + .4byte _080F3068 @ case 48 + .4byte _080F3068 @ case 49 + .4byte _080F3044 @ case 50 +_080F3000: + ldr r0, _080F3018 + adds r1, r5, #0 + adds r1, #0x10 + bl StringCopy + adds r0, r5, #0 + bl TV_FanClubLetter_RandomWordToStringVar3 + ldr r1, _080F301C + movs r0, #0x32 + strb r0, [r1] + b _080F3068 + .align 2, 0 +_080F3018: .4byte 0x02021C40 +_080F301C: .4byte 0x02039CFC +_080F3020: + bl Random + ldrb r4, [r7] + adds r4, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + adds r0, r0, r4 + strb r0, [r7] + b _080F3068 +_080F3038: + movs r0, #5 + strb r0, [r7] + b _080F3068 +_080F303E: + bl TVShowDone + b _080F3068 +_080F3044: + ldr r4, _080F3060 + adds r1, r5, #4 + adds r0, r4, #0 + movs r2, #2 + movs r3, #2 + bl ConvertEasyChatWordsToString + adds r0, r4, #0 + bl ShowFieldMessage + ldr r1, _080F3064 + movs r0, #1 + strb r0, [r1] + b _080F3074 + .align 2, 0 +_080F3060: .4byte 0x02021C7C +_080F3064: .4byte 0x02039CFC +_080F3068: + ldr r0, _080F307C + lsls r1, r6, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl ShowFieldMessage +_080F3074: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F307C: .4byte 0x08568C1C + thumb_func_end DoTVShowRecentHappenings + + thumb_func_start DoTVShowPokemonFanClubOpinions +DoTVShowPokemonFanClubOpinions: @ 0x080F3080 + push {r4, r5, r6, lr} + ldr r2, _080F30B0 + ldr r0, _080F30B4 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080F30B8 + adds r0, r0, r1 + ldr r1, [r2] + adds r4, r1, r0 + ldr r1, _080F30BC + movs r0, #0 + strh r0, [r1] + ldr r6, _080F30C0 + ldrb r5, [r6] + cmp r5, #3 + bgt _080F30C4 + cmp r5, #1 + bge _080F3108 + cmp r5, #0 + beq _080F30CA + b _080F3154 + .align 2, 0 +_080F30B0: .4byte 0x03005AEC +_080F30B4: .4byte 0x02037280 +_080F30B8: .4byte 0x000027CC +_080F30BC: .4byte 0x02037290 +_080F30C0: .4byte 0x02039CFC +_080F30C4: + cmp r5, #4 + beq _080F3140 + b _080F3154 +_080F30CA: + ldr r0, _080F30F8 + adds r1, r4, #5 + bl StringCopy + ldr r0, _080F30FC + ldrh r2, [r4, #2] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F3100 + adds r1, r1, r2 + bl StringCopy + ldr r0, _080F3104 + adds r1, r4, #0 + adds r1, #0x10 + bl StringCopy10 + ldrb r0, [r4, #4] + lsrs r0, r0, #4 + adds r0, #1 + strb r0, [r6] + b _080F3154 + .align 2, 0 +_080F30F8: .4byte 0x02021C40 +_080F30FC: .4byte 0x02021C54 +_080F3100: .4byte 0x082EA31C +_080F3104: .4byte 0x02021C68 +_080F3108: + ldr r0, _080F3130 + adds r1, r4, #5 + bl StringCopy + ldr r0, _080F3134 + ldrh r2, [r4, #2] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F3138 + adds r1, r1, r2 + bl StringCopy + ldr r0, _080F313C + ldrh r1, [r4, #0x1c] + bl CopyEasyChatWord + movs r0, #4 + strb r0, [r6] + b _080F3154 + .align 2, 0 +_080F3130: .4byte 0x02021C40 +_080F3134: .4byte 0x02021C54 +_080F3138: .4byte 0x082EA31C +_080F313C: .4byte 0x02021C68 +_080F3140: + ldr r0, _080F3168 + adds r1, r4, #5 + bl StringCopy + ldr r0, _080F316C + ldrh r1, [r4, #0x1e] + bl CopyEasyChatWord + bl TVShowDone +_080F3154: + ldr r0, _080F3170 + lsls r1, r5, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080F3168: .4byte 0x02021C40 +_080F316C: .4byte 0x02021C68 +_080F3170: .4byte 0x08568C34 + thumb_func_end DoTVShowPokemonFanClubOpinions + + thumb_func_start DoTVShowDummiedOut +DoTVShowDummiedOut: @ 0x080F3174 + bx lr + .align 2, 0 + thumb_func_end DoTVShowDummiedOut + + thumb_func_start DoTVShowPokemonNewsMassOutbreak +DoTVShowPokemonNewsMassOutbreak: @ 0x080F3178 + push {r4, lr} + ldr r2, _080F31C8 + ldr r0, _080F31CC + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080F31D0 + adds r0, r0, r1 + ldr r4, [r2] + adds r4, r4, r0 + ldr r0, _080F31D4 + ldrb r1, [r4, #0x10] + movs r2, #0 + bl GetMapName + ldr r0, _080F31D8 + ldrh r2, [r4, #0xc] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F31DC + adds r1, r1, r2 + bl StringCopy + bl TVShowDone + bl StartMassOutbreak + ldr r1, _080F31E0 + ldr r0, _080F31E4 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl ShowFieldMessage + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F31C8: .4byte 0x03005AEC +_080F31CC: .4byte 0x02037280 +_080F31D0: .4byte 0x000027CC +_080F31D4: .4byte 0x02021C40 +_080F31D8: .4byte 0x02021C54 +_080F31DC: .4byte 0x082EA31C +_080F31E0: .4byte 0x08568C48 +_080F31E4: .4byte 0x02039CFC + thumb_func_end DoTVShowPokemonNewsMassOutbreak + + thumb_func_start DoTVShowPokemonContestLiveUpdates +DoTVShowPokemonContestLiveUpdates: @ 0x080F31E8 + push {r4, r5, r6, lr} + ldr r2, _080F321C + ldr r0, _080F3220 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080F3224 + adds r0, r0, r1 + ldr r1, [r2] + adds r5, r1, r0 + ldr r1, _080F3228 + movs r0, #0 + strh r0, [r1] + ldr r0, _080F322C + ldrb r6, [r0] + adds r2, r0, #0 + cmp r6, #0x20 + bls _080F3212 + bl _080F39A8 +_080F3212: + lsls r0, r6, #2 + ldr r1, _080F3230 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F321C: .4byte 0x03005AEC +_080F3220: .4byte 0x02037280 +_080F3224: .4byte 0x000027CC +_080F3228: .4byte 0x02037290 +_080F322C: .4byte 0x02039CFC +_080F3230: .4byte 0x080F3234 +_080F3234: @ jump table + .4byte _080F32B8 @ case 0 + .4byte _080F33A8 @ case 1 + .4byte _080F33F6 @ case 2 + .4byte _080F3420 @ case 3 + .4byte _080F3448 @ case 4 + .4byte _080F3584 @ case 5 + .4byte _080F359C @ case 6 + .4byte _080F35B4 @ case 7 + .4byte _080F35CC @ case 8 + .4byte _080F364C @ case 9 + .4byte _080F3664 @ case 10 + .4byte _080F367C @ case 11 + .4byte _080F3694 @ case 12 + .4byte _080F36AC @ case 13 + .4byte _080F36C4 @ case 14 + .4byte _080F3744 @ case 15 + .4byte _080F375C @ case 16 + .4byte _080F3774 @ case 17 + .4byte _080F378C @ case 18 + .4byte _080F37A4 @ case 19 + .4byte _080F37BC @ case 20 + .4byte _080F37D4 @ case 21 + .4byte _080F37EC @ case 22 + .4byte _080F3828 @ case 23 + .4byte _080F38FC @ case 24 + .4byte _080F3914 @ case 25 + .4byte _080F3970 @ case 26 + .4byte _080F3970 @ case 27 + .4byte _080F3938 @ case 28 + .4byte _080F393E @ case 29 + .4byte _080F3970 @ case 30 + .4byte _080F3970 @ case 31 + .4byte _080F3988 @ case 32 +_080F32B8: + ldrb r0, [r5, #0x1c] + cmp r0, #4 + bhi _080F3338 + lsls r0, r0, #2 + ldr r1, _080F32C8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F32C8: .4byte 0x080F32CC +_080F32CC: @ jump table + .4byte _080F32E0 @ case 0 + .4byte _080F32F4 @ case 1 + .4byte _080F3308 @ case 2 + .4byte _080F331C @ case 3 + .4byte _080F3330 @ case 4 +_080F32E0: + ldr r0, _080F32EC + ldr r1, _080F32F0 + bl StringCopy + b _080F3338 + .align 2, 0 +_080F32EC: .4byte 0x02021C40 +_080F32F0: .4byte 0x085CAC84 +_080F32F4: + ldr r0, _080F3300 + ldr r1, _080F3304 + bl StringCopy + b _080F3338 + .align 2, 0 +_080F3300: .4byte 0x02021C40 +_080F3304: .4byte 0x085CAC8A +_080F3308: + ldr r0, _080F3314 + ldr r1, _080F3318 + bl StringCopy + b _080F3338 + .align 2, 0 +_080F3314: .4byte 0x02021C40 +_080F3318: .4byte 0x085CAC90 +_080F331C: + ldr r0, _080F3328 + ldr r1, _080F332C + bl StringCopy + b _080F3338 + .align 2, 0 +_080F3328: .4byte 0x02021C40 +_080F332C: .4byte 0x085CAC95 +_080F3330: + ldr r0, _080F3368 + ldr r1, _080F336C + bl StringCopy +_080F3338: + ldr r0, _080F3370 + ldrh r2, [r5, #0x12] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F3374 + adds r1, r1, r2 + bl StringCopy + ldr r0, _080F3378 + adds r1, r5, #0 + adds r1, #0x14 + bl StringCopy + ldrb r0, [r5, #0xd] + ldrb r1, [r5, #0xe] + cmp r0, r1 + bne _080F338C + cmp r0, #0 + bne _080F3380 + ldr r1, _080F337C + movs r0, #1 + strb r0, [r1] + b _080F39A8 + .align 2, 0 +_080F3368: .4byte 0x02021C40 +_080F336C: .4byte 0x085CAC9A +_080F3370: .4byte 0x02021C54 +_080F3374: .4byte 0x082EA31C +_080F3378: .4byte 0x02021C68 +_080F337C: .4byte 0x02039CFC +_080F3380: + ldr r1, _080F3388 + movs r0, #3 + strb r0, [r1] + b _080F39A8 + .align 2, 0 +_080F3388: .4byte 0x02039CFC +_080F338C: + cmp r0, r1 + bls _080F339C + ldr r1, _080F3398 + movs r0, #2 + strb r0, [r1] + b _080F39A8 + .align 2, 0 +_080F3398: .4byte 0x02039CFC +_080F339C: + ldr r1, _080F33A4 + movs r0, #4 + strb r0, [r1] + b _080F39A8 + .align 2, 0 +_080F33A4: .4byte 0x02039CFC +_080F33A8: + ldr r0, _080F33D4 + ldrh r2, [r5, #0x12] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F33D8 + adds r1, r1, r2 + bl StringCopy + ldrb r1, [r5, #0xf] + cmp r1, #8 + bne _080F33C2 + b _080F3548 +_080F33C2: + cmp r1, #8 + bgt _080F33DC +_080F33C6: + cmp r1, #2 + bne _080F33CC + b _080F3530 +_080F33CC: + cmp r1, #2 + bgt _080F33D2 + b _080F34EC +_080F33D2: + b _080F3504 + .align 2, 0 +_080F33D4: .4byte 0x02021C54 +_080F33D8: .4byte 0x082EA31C +_080F33DC: + cmp r1, #0x20 + bne _080F33E2 + b _080F3560 +_080F33E2: + cmp r1, #0x20 + bgt _080F33E8 + b _080F3512 +_080F33E8: + cmp r1, #0x40 + bne _080F33EE + b _080F356C +_080F33EE: + cmp r1, #0x80 + beq _080F33F4 + b _080F39A8 +_080F33F4: + b _080F3578 +_080F33F6: + ldr r0, _080F3418 + ldrh r2, [r5, #0x12] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F341C + adds r1, r1, r2 +_080F3404: + bl StringCopy + ldrb r1, [r5, #0xf] + cmp r1, #8 + bne _080F3410 + b _080F3548 +_080F3410: + cmp r1, #8 + ble _080F33C6 + b _080F33DC + .align 2, 0 +_080F3418: .4byte 0x02021C54 +_080F341C: .4byte 0x082EA31C +_080F3420: + ldr r0, _080F343C + ldrh r2, [r5, #0x12] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F3440 + adds r1, r1, r2 + bl StringCopy + ldr r0, _080F3444 + adds r1, r5, #0 + adds r1, #0x14 + b _080F3404 + .align 2, 0 +_080F343C: .4byte 0x02021C54 +_080F3440: .4byte 0x082EA31C +_080F3444: .4byte 0x02021C68 +_080F3448: + ldrb r0, [r5, #0x1c] + cmp r0, #4 + bhi _080F34C8 + lsls r0, r0, #2 + ldr r1, _080F3458 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F3458: .4byte 0x080F345C +_080F345C: @ jump table + .4byte _080F3470 @ case 0 + .4byte _080F3484 @ case 1 + .4byte _080F3498 @ case 2 + .4byte _080F34AC @ case 3 + .4byte _080F34C0 @ case 4 +_080F3470: + ldr r0, _080F347C + ldr r1, _080F3480 + bl StringCopy + b _080F34C8 + .align 2, 0 +_080F347C: .4byte 0x02021C40 +_080F3480: .4byte 0x085CAC84 +_080F3484: + ldr r0, _080F3490 + ldr r1, _080F3494 + bl StringCopy + b _080F34C8 + .align 2, 0 +_080F3490: .4byte 0x02021C40 +_080F3494: .4byte 0x085CAC8A +_080F3498: + ldr r0, _080F34A4 + ldr r1, _080F34A8 + bl StringCopy + b _080F34C8 + .align 2, 0 +_080F34A4: .4byte 0x02021C40 +_080F34A8: .4byte 0x085CAC90 +_080F34AC: + ldr r0, _080F34B8 + ldr r1, _080F34BC + bl StringCopy + b _080F34C8 + .align 2, 0 +_080F34B8: .4byte 0x02021C40 +_080F34BC: .4byte 0x085CAC95 +_080F34C0: + ldr r0, _080F34F4 + ldr r1, _080F34F8 + bl StringCopy +_080F34C8: + ldr r0, _080F34FC + ldrh r2, [r5, #0x12] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F3500 + adds r1, r1, r2 + bl StringCopy + ldrb r1, [r5, #0xf] + cmp r1, #8 + beq _080F3548 + cmp r1, #8 + bgt _080F350A + cmp r1, #2 + beq _080F3530 + cmp r1, #2 + bgt _080F3504 +_080F34EC: + cmp r1, #1 + beq _080F3522 + b _080F39A8 + .align 2, 0 +_080F34F4: .4byte 0x02021C40 +_080F34F8: .4byte 0x085CAC9A +_080F34FC: .4byte 0x02021C54 +_080F3500: .4byte 0x082EA31C +_080F3504: + cmp r1, #4 + beq _080F353C + b _080F39A8 +_080F350A: + cmp r1, #0x20 + beq _080F3560 + cmp r1, #0x20 + bgt _080F3518 +_080F3512: + cmp r1, #0x10 + beq _080F3554 + b _080F39A8 +_080F3518: + cmp r1, #0x40 + beq _080F356C + cmp r1, #0x80 + beq _080F3578 + b _080F39A8 +_080F3522: + ldr r1, _080F352C + movs r0, #8 + strb r0, [r1] + b _080F39A8 + .align 2, 0 +_080F352C: .4byte 0x02039CFC +_080F3530: + ldr r1, _080F3538 + movs r0, #5 + strb r0, [r1] + b _080F39A8 + .align 2, 0 +_080F3538: .4byte 0x02039CFC +_080F353C: + ldr r1, _080F3544 + movs r0, #0xe + strb r0, [r1] + b _080F39A8 + .align 2, 0 +_080F3544: .4byte 0x02039CFC +_080F3548: + ldr r1, _080F3550 + movs r0, #7 + strb r0, [r1] + b _080F39A8 + .align 2, 0 +_080F3550: .4byte 0x02039CFC +_080F3554: + ldr r1, _080F355C + movs r0, #6 + strb r0, [r1] + b _080F39A8 + .align 2, 0 +_080F355C: .4byte 0x02039CFC +_080F3560: + ldr r1, _080F3568 + movs r0, #0x14 + strb r0, [r1] + b _080F39A8 + .align 2, 0 +_080F3568: .4byte 0x02039CFC +_080F356C: + ldr r1, _080F3574 + movs r0, #0x15 + strb r0, [r1] + b _080F39A8 + .align 2, 0 +_080F3574: .4byte 0x02039CFC +_080F3578: + ldr r1, _080F3580 + movs r0, #0x16 + strb r0, [r1] + b _080F39A8 + .align 2, 0 +_080F3580: .4byte 0x02039CFC +_080F3584: + ldr r0, _080F3594 + ldrh r2, [r5, #0x12] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F3598 + b _080F3806 + .align 2, 0 +_080F3594: .4byte 0x02021C54 +_080F3598: .4byte 0x082EA31C +_080F359C: + ldr r0, _080F35AC + ldrh r2, [r5, #0x12] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F35B0 + b _080F3806 + .align 2, 0 +_080F35AC: .4byte 0x02021C54 +_080F35B0: .4byte 0x082EA31C +_080F35B4: + ldr r0, _080F35C4 + ldrh r2, [r5, #0x12] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F35C8 + b _080F3806 + .align 2, 0 +_080F35C4: .4byte 0x02021C54 +_080F35C8: .4byte 0x082EA31C +_080F35CC: + ldr r0, _080F35F0 + ldrh r2, [r5, #0x12] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F35F4 + adds r1, r1, r2 + bl StringCopy + ldrb r0, [r5, #0x1c] + cmp r0, #4 + bls _080F35E6 + b _080F39A8 +_080F35E6: + lsls r0, r0, #2 + ldr r1, _080F35F8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F35F0: .4byte 0x02021C54 +_080F35F4: .4byte 0x082EA31C +_080F35F8: .4byte 0x080F35FC +_080F35FC: @ jump table + .4byte _080F3610 @ case 0 + .4byte _080F361C @ case 1 + .4byte _080F3628 @ case 2 + .4byte _080F3634 @ case 3 + .4byte _080F3640 @ case 4 +_080F3610: + ldr r1, _080F3618 + movs r0, #9 + strb r0, [r1] + b _080F39A8 + .align 2, 0 +_080F3618: .4byte 0x02039CFC +_080F361C: + ldr r1, _080F3624 + movs r0, #0xa + strb r0, [r1] + b _080F39A8 + .align 2, 0 +_080F3624: .4byte 0x02039CFC +_080F3628: + ldr r1, _080F3630 + movs r0, #0xb + strb r0, [r1] + b _080F39A8 + .align 2, 0 +_080F3630: .4byte 0x02039CFC +_080F3634: + ldr r1, _080F363C + movs r0, #0xc + strb r0, [r1] + b _080F39A8 + .align 2, 0 +_080F363C: .4byte 0x02039CFC +_080F3640: + ldr r1, _080F3648 + movs r0, #0xd + strb r0, [r1] + b _080F39A8 + .align 2, 0 +_080F3648: .4byte 0x02039CFC +_080F364C: + ldr r0, _080F365C + ldrh r2, [r5, #0x12] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F3660 + b _080F3806 + .align 2, 0 +_080F365C: .4byte 0x02021C54 +_080F3660: .4byte 0x082EA31C +_080F3664: + ldr r0, _080F3674 + ldrh r2, [r5, #0x12] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F3678 + b _080F3806 + .align 2, 0 +_080F3674: .4byte 0x02021C54 +_080F3678: .4byte 0x082EA31C +_080F367C: + ldr r0, _080F368C + ldrh r2, [r5, #0x12] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F3690 + b _080F3806 + .align 2, 0 +_080F368C: .4byte 0x02021C54 +_080F3690: .4byte 0x082EA31C +_080F3694: + ldr r0, _080F36A4 + ldrh r2, [r5, #0x12] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F36A8 + b _080F3806 + .align 2, 0 +_080F36A4: .4byte 0x02021C54 +_080F36A8: .4byte 0x082EA31C +_080F36AC: + ldr r0, _080F36BC + ldrh r2, [r5, #0x12] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F36C0 + b _080F3806 + .align 2, 0 +_080F36BC: .4byte 0x02021C54 +_080F36C0: .4byte 0x082EA31C +_080F36C4: + ldr r0, _080F36E8 + ldrh r2, [r5, #0x12] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F36EC + adds r1, r1, r2 + bl StringCopy + ldrb r0, [r5, #0x1c] + cmp r0, #4 + bls _080F36DE + b _080F39A8 +_080F36DE: + lsls r0, r0, #2 + ldr r1, _080F36F0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F36E8: .4byte 0x02021C54 +_080F36EC: .4byte 0x082EA31C +_080F36F0: .4byte 0x080F36F4 +_080F36F4: @ jump table + .4byte _080F3708 @ case 0 + .4byte _080F3714 @ case 1 + .4byte _080F3720 @ case 2 + .4byte _080F372C @ case 3 + .4byte _080F3738 @ case 4 +_080F3708: + ldr r1, _080F3710 + movs r0, #0xf + strb r0, [r1] + b _080F39A8 + .align 2, 0 +_080F3710: .4byte 0x02039CFC +_080F3714: + ldr r1, _080F371C + movs r0, #0x10 + strb r0, [r1] + b _080F39A8 + .align 2, 0 +_080F371C: .4byte 0x02039CFC +_080F3720: + ldr r1, _080F3728 + movs r0, #0x11 + strb r0, [r1] + b _080F39A8 + .align 2, 0 +_080F3728: .4byte 0x02039CFC +_080F372C: + ldr r1, _080F3734 + movs r0, #0x12 + strb r0, [r1] + b _080F39A8 + .align 2, 0 +_080F3734: .4byte 0x02039CFC +_080F3738: + ldr r1, _080F3740 + movs r0, #0x13 + strb r0, [r1] + b _080F39A8 + .align 2, 0 +_080F3740: .4byte 0x02039CFC +_080F3744: + ldr r0, _080F3754 + ldrh r2, [r5, #0x12] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F3758 + b _080F3806 + .align 2, 0 +_080F3754: .4byte 0x02021C54 +_080F3758: .4byte 0x082EA31C +_080F375C: + ldr r0, _080F376C + ldrh r2, [r5, #0x12] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F3770 + b _080F3806 + .align 2, 0 +_080F376C: .4byte 0x02021C54 +_080F3770: .4byte 0x082EA31C +_080F3774: + ldr r0, _080F3784 + ldrh r2, [r5, #0x12] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F3788 + b _080F3806 + .align 2, 0 +_080F3784: .4byte 0x02021C54 +_080F3788: .4byte 0x082EA31C +_080F378C: + ldr r0, _080F379C + ldrh r2, [r5, #0x12] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F37A0 + b _080F3806 + .align 2, 0 +_080F379C: .4byte 0x02021C54 +_080F37A0: .4byte 0x082EA31C +_080F37A4: + ldr r0, _080F37B4 + ldrh r2, [r5, #0x12] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F37B8 + b _080F3806 + .align 2, 0 +_080F37B4: .4byte 0x02021C54 +_080F37B8: .4byte 0x082EA31C +_080F37BC: + ldr r0, _080F37CC + ldrh r2, [r5, #0x12] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F37D0 + b _080F3806 + .align 2, 0 +_080F37CC: .4byte 0x02021C54 +_080F37D0: .4byte 0x082EA31C +_080F37D4: + ldr r0, _080F37E4 + ldrh r2, [r5, #0x12] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F37E8 + b _080F3806 + .align 2, 0 +_080F37E4: .4byte 0x02021C54 +_080F37E8: .4byte 0x082EA31C +_080F37EC: + ldr r0, _080F3814 + ldrh r2, [r5, #0x12] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F3818 + adds r1, r1, r2 + bl StringCopy + ldr r0, _080F381C + ldrh r1, [r5, #0x10] + lsls r1, r1, #3 + ldr r2, _080F3820 +_080F3806: + adds r1, r1, r2 + bl StringCopy + ldr r1, _080F3824 + movs r0, #0x17 + strb r0, [r1] + b _080F39A8 + .align 2, 0 +_080F3814: .4byte 0x02021C54 +_080F3818: .4byte 0x082EA31C +_080F381C: .4byte 0x02021C68 +_080F3820: .4byte 0x082EACC4 +_080F3824: .4byte 0x02039CFC +_080F3828: + ldr r0, _080F386C + ldrh r2, [r5, #0x12] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r4, _080F3870 + adds r1, r1, r4 + bl StringCopy + ldr r0, _080F3874 + adds r1, r5, #4 + bl StringCopy + ldr r0, _080F3878 + ldrh r2, [r5, #2] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + adds r1, r1, r4 + bl StringCopy + ldrb r0, [r5, #0xc] + cmp r0, #8 + beq _080F38C0 + cmp r0, #8 + bgt _080F3882 + cmp r0, #2 + beq _080F38A8 + cmp r0, #2 + bgt _080F387C + cmp r0, #1 + beq _080F389A + b _080F39A8 + .align 2, 0 +_080F386C: .4byte 0x02021C40 +_080F3870: .4byte 0x082EA31C +_080F3874: .4byte 0x02021C54 +_080F3878: .4byte 0x02021C68 +_080F387C: + cmp r0, #4 + beq _080F38B4 + b _080F39A8 +_080F3882: + cmp r0, #0x20 + beq _080F38D8 + cmp r0, #0x20 + bgt _080F3890 + cmp r0, #0x10 + beq _080F38CC + b _080F39A8 +_080F3890: + cmp r0, #0x40 + beq _080F38E4 + cmp r0, #0x80 + beq _080F38F0 + b _080F39A8 +_080F389A: + ldr r1, _080F38A4 + movs r0, #0x1f + strb r0, [r1] + b _080F39A8 + .align 2, 0 +_080F38A4: .4byte 0x02039CFC +_080F38A8: + ldr r1, _080F38B0 + movs r0, #0x1e + strb r0, [r1] + b _080F39A8 + .align 2, 0 +_080F38B0: .4byte 0x02039CFC +_080F38B4: + ldr r1, _080F38BC + movs r0, #0x1d + strb r0, [r1] + b _080F39A8 + .align 2, 0 +_080F38BC: .4byte 0x02039CFC +_080F38C0: + ldr r1, _080F38C8 + movs r0, #0x1c + strb r0, [r1] + b _080F39A8 + .align 2, 0 +_080F38C8: .4byte 0x02039CFC +_080F38CC: + ldr r1, _080F38D4 + movs r0, #0x1b + strb r0, [r1] + b _080F39A8 + .align 2, 0 +_080F38D4: .4byte 0x02039CFC +_080F38D8: + ldr r1, _080F38E0 + movs r0, #0x1a + strb r0, [r1] + b _080F39A8 + .align 2, 0 +_080F38E0: .4byte 0x02039CFC +_080F38E4: + ldr r1, _080F38EC + movs r0, #0x19 + strb r0, [r1] + b _080F39A8 + .align 2, 0 +_080F38EC: .4byte 0x02039CFC +_080F38F0: + ldr r1, _080F38F8 + movs r0, #0x18 + strb r0, [r1] + b _080F39A8 + .align 2, 0 +_080F38F8: .4byte 0x02039CFC +_080F38FC: + ldr r0, _080F390C + ldrh r2, [r5, #2] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F3910 + adds r1, r1, r2 + b _080F3974 + .align 2, 0 +_080F390C: .4byte 0x02021C40 +_080F3910: .4byte 0x082EA31C +_080F3914: + ldr r0, _080F392C + adds r1, r5, #4 + bl StringCopy + ldr r0, _080F3930 + ldrh r2, [r5, #2] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F3934 + adds r1, r1, r2 + b _080F3974 + .align 2, 0 +_080F392C: .4byte 0x02021C40 +_080F3930: .4byte 0x02021C54 +_080F3934: .4byte 0x082EA31C +_080F3938: + movs r0, #0x20 + strb r0, [r2] + b _080F39A8 +_080F393E: + ldr r0, _080F3960 + adds r1, r5, #0 + adds r1, #0x14 + bl StringCopy + ldr r0, _080F3964 + ldrh r2, [r5, #0x12] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F3968 + adds r1, r1, r2 + bl StringCopy + ldr r0, _080F396C + b _080F3972 + .align 2, 0 +_080F3960: .4byte 0x02021C40 +_080F3964: .4byte 0x02021C54 +_080F3968: .4byte 0x082EA31C +_080F396C: .4byte 0x02021C68 +_080F3970: + ldr r0, _080F3980 +_080F3972: + adds r1, r5, #4 +_080F3974: + bl StringCopy + ldr r1, _080F3984 + movs r0, #0x20 + strb r0, [r1] + b _080F39A8 + .align 2, 0 +_080F3980: .4byte 0x02021C40 +_080F3984: .4byte 0x02039CFC +_080F3988: + ldr r0, _080F39BC + adds r1, r5, #0 + adds r1, #0x14 + bl StringCopy + ldr r0, _080F39C0 + ldrh r2, [r5, #0x12] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F39C4 + adds r1, r1, r2 + bl StringCopy + bl TVShowDone +_080F39A8: + ldr r0, _080F39C8 + lsls r1, r6, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080F39BC: .4byte 0x02021C40 +_080F39C0: .4byte 0x02021C54 +_080F39C4: .4byte 0x082EA31C +_080F39C8: .4byte 0x08568D28 + thumb_func_end DoTVShowPokemonContestLiveUpdates + + thumb_func_start DoTVShowPokemonBattleUpdate +DoTVShowPokemonBattleUpdate: @ 0x080F39CC + push {r4, r5, lr} + ldr r2, _080F3A00 + ldr r0, _080F3A04 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080F3A08 + adds r0, r0, r1 + ldr r1, [r2] + adds r4, r1, r0 + ldr r1, _080F3A0C + movs r0, #0 + strh r0, [r1] + ldr r0, _080F3A10 + ldrb r5, [r0] + adds r2, r0, #0 + cmp r5, #7 + bls _080F39F4 + b _080F3BD8 +_080F39F4: + lsls r0, r5, #2 + ldr r1, _080F3A14 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F3A00: .4byte 0x03005AEC +_080F3A04: .4byte 0x02037280 +_080F3A08: .4byte 0x000027CC +_080F3A0C: .4byte 0x02037290 +_080F3A10: .4byte 0x02039CFC +_080F3A14: .4byte 0x080F3A18 +_080F3A18: @ jump table + .4byte _080F3A38 @ case 0 + .4byte _080F3A56 @ case 1 + .4byte _080F3AA4 @ case 2 + .4byte _080F3AEC @ case 3 + .4byte _080F3B20 @ case 4 + .4byte _080F3B40 @ case 5 + .4byte _080F3B68 @ case 6 + .4byte _080F3BB0 @ case 7 +_080F3A38: + ldrb r1, [r4, #0x18] + cmp r1, #0 + bge _080F3A40 + b _080F3BD8 +_080F3A40: + cmp r1, #1 + ble _080F3A4A + cmp r1, #2 + beq _080F3A50 + b _080F3BD8 +_080F3A4A: + movs r0, #1 + strb r0, [r2] + b _080F3BD8 +_080F3A50: + movs r0, #5 + strb r0, [r2] + b _080F3BD8 +_080F3A56: + ldr r0, _080F3A78 + adds r1, r4, #4 + bl StringCopy + ldr r0, _080F3A7C + adds r1, r4, #0 + adds r1, #0xc + bl StringCopy + ldrb r0, [r4, #0x18] + cmp r0, #0 + bne _080F3A88 + ldr r0, _080F3A80 + ldr r1, _080F3A84 + bl StringCopy + b _080F3A90 + .align 2, 0 +_080F3A78: .4byte 0x02021C40 +_080F3A7C: .4byte 0x02021C54 +_080F3A80: .4byte 0x02021C68 +_080F3A84: .4byte 0x085CBFE3 +_080F3A88: + ldr r0, _080F3A98 + ldr r1, _080F3A9C + bl StringCopy +_080F3A90: + ldr r1, _080F3AA0 + movs r0, #2 + strb r0, [r1] + b _080F3BD8 + .align 2, 0 +_080F3A98: .4byte 0x02021C68 +_080F3A9C: .4byte 0x085CBFE8 +_080F3AA0: .4byte 0x02039CFC +_080F3AA4: + ldr r0, _080F3AD4 + adds r1, r4, #4 + bl StringCopy + ldr r0, _080F3AD8 + ldrh r2, [r4, #0x16] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F3ADC + adds r1, r1, r2 + bl StringCopy + ldr r0, _080F3AE0 + ldrh r1, [r4, #0x14] + lsls r1, r1, #3 + ldr r2, _080F3AE4 + adds r1, r1, r2 + bl StringCopy + ldr r1, _080F3AE8 + movs r0, #3 + strb r0, [r1] + b _080F3BD8 + .align 2, 0 +_080F3AD4: .4byte 0x02021C40 +_080F3AD8: .4byte 0x02021C54 +_080F3ADC: .4byte 0x082EA31C +_080F3AE0: .4byte 0x02021C68 +_080F3AE4: .4byte 0x082EACC4 +_080F3AE8: .4byte 0x02039CFC +_080F3AEC: + ldr r0, _080F3B10 + adds r1, r4, #0 + adds r1, #0xc + bl StringCopy + ldr r0, _080F3B14 + ldrh r2, [r4, #2] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F3B18 + adds r1, r1, r2 + bl StringCopy + ldr r1, _080F3B1C + movs r0, #4 + strb r0, [r1] + b _080F3BD8 + .align 2, 0 +_080F3B10: .4byte 0x02021C40 +_080F3B14: .4byte 0x02021C54 +_080F3B18: .4byte 0x082EA31C +_080F3B1C: .4byte 0x02039CFC +_080F3B20: + ldr r0, _080F3B38 + adds r1, r4, #4 + bl StringCopy + ldr r0, _080F3B3C + adds r1, r4, #0 + adds r1, #0xc + bl StringCopy + bl TVShowDone + b _080F3BD8 + .align 2, 0 +_080F3B38: .4byte 0x02021C40 +_080F3B3C: .4byte 0x02021C54 +_080F3B40: + ldr r0, _080F3B5C + adds r1, r4, #4 + bl StringCopy + ldr r0, _080F3B60 + adds r1, r4, #0 + adds r1, #0xc + bl StringCopy + ldr r1, _080F3B64 + movs r0, #6 + strb r0, [r1] + b _080F3BD8 + .align 2, 0 +_080F3B5C: .4byte 0x02021C40 +_080F3B60: .4byte 0x02021C54 +_080F3B64: .4byte 0x02039CFC +_080F3B68: + ldr r0, _080F3B98 + adds r1, r4, #4 + bl StringCopy + ldr r0, _080F3B9C + ldrh r2, [r4, #0x16] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F3BA0 + adds r1, r1, r2 + bl StringCopy + ldr r0, _080F3BA4 + ldrh r1, [r4, #0x14] + lsls r1, r1, #3 + ldr r2, _080F3BA8 + adds r1, r1, r2 + bl StringCopy + ldr r1, _080F3BAC + movs r0, #7 + strb r0, [r1] + b _080F3BD8 + .align 2, 0 +_080F3B98: .4byte 0x02021C40 +_080F3B9C: .4byte 0x02021C54 +_080F3BA0: .4byte 0x082EA31C +_080F3BA4: .4byte 0x02021C68 +_080F3BA8: .4byte 0x082EACC4 +_080F3BAC: .4byte 0x02039CFC +_080F3BB0: + ldr r0, _080F3BEC + adds r1, r4, #4 + bl StringCopy + ldr r0, _080F3BF0 + adds r1, r4, #0 + adds r1, #0xc + bl StringCopy + ldr r0, _080F3BF4 + ldrh r2, [r4, #2] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F3BF8 + adds r1, r1, r2 + bl StringCopy + bl TVShowDone +_080F3BD8: + ldr r0, _080F3BFC + lsls r1, r5, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080F3BEC: .4byte 0x02021C40 +_080F3BF0: .4byte 0x02021C54 +_080F3BF4: .4byte 0x02021C68 +_080F3BF8: .4byte 0x082EA31C +_080F3BFC: .4byte 0x08568DAC + thumb_func_end DoTVShowPokemonBattleUpdate + + thumb_func_start DoTVShow3CheersForPokeblocks +DoTVShow3CheersForPokeblocks: @ 0x080F3C00 + push {r4, r5, lr} + ldr r2, _080F3C30 + ldr r0, _080F3C34 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080F3C38 + adds r0, r0, r1 + ldr r1, [r2] + adds r4, r1, r0 + ldr r1, _080F3C3C + movs r0, #0 + strh r0, [r1] + ldr r0, _080F3C40 + ldrb r5, [r0] + cmp r5, #5 + bls _080F3C26 + b _080F3E94 +_080F3C26: + lsls r0, r5, #2 + ldr r1, _080F3C44 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F3C30: .4byte 0x03005AEC +_080F3C34: .4byte 0x02037280 +_080F3C38: .4byte 0x000027CC +_080F3C3C: .4byte 0x02037290 +_080F3C40: .4byte 0x02039CFC +_080F3C44: .4byte 0x080F3C48 +_080F3C48: @ jump table + .4byte _080F3C60 @ case 0 + .4byte _080F3C8C @ case 1 + .4byte _080F3D74 @ case 2 + .4byte _080F3D80 @ case 3 + .4byte _080F3E68 @ case 4 + .4byte _080F3E90 @ case 5 +_080F3C60: + ldr r0, _080F3C78 + adds r1, r4, #0 + adds r1, #0xc + bl StringCopy + ldrb r0, [r4, #2] + cmp r0, #0x14 + bls _080F3C80 + ldr r1, _080F3C7C + movs r0, #1 + strb r0, [r1] + b _080F3E94 + .align 2, 0 +_080F3C78: .4byte 0x02021C40 +_080F3C7C: .4byte 0x02039CFC +_080F3C80: + ldr r1, _080F3C88 + movs r0, #3 + strb r0, [r1] + b _080F3E94 + .align 2, 0 +_080F3C88: .4byte 0x02039CFC +_080F3C8C: + ldrb r0, [r4, #3] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1d + cmp r0, #4 + bhi _080F3D10 + lsls r0, r0, #2 + ldr r1, _080F3CA0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F3CA0: .4byte 0x080F3CA4 +_080F3CA4: @ jump table + .4byte _080F3CB8 @ case 0 + .4byte _080F3CCC @ case 1 + .4byte _080F3CE0 @ case 2 + .4byte _080F3CF4 @ case 3 + .4byte _080F3D08 @ case 4 +_080F3CB8: + ldr r0, _080F3CC4 + ldr r1, _080F3CC8 + bl StringCopy + b _080F3D10 + .align 2, 0 +_080F3CC4: .4byte 0x02021C40 +_080F3CC8: .4byte 0x085CBFD3 +_080F3CCC: + ldr r0, _080F3CD8 + ldr r1, _080F3CDC + bl StringCopy + b _080F3D10 + .align 2, 0 +_080F3CD8: .4byte 0x02021C40 +_080F3CDC: .4byte 0x085CBFD6 +_080F3CE0: + ldr r0, _080F3CEC + ldr r1, _080F3CF0 + bl StringCopy + b _080F3D10 + .align 2, 0 +_080F3CEC: .4byte 0x02021C40 +_080F3CF0: .4byte 0x085CBFD9 +_080F3CF4: + ldr r0, _080F3D00 + ldr r1, _080F3D04 + bl StringCopy + b _080F3D10 + .align 2, 0 +_080F3D00: .4byte 0x02021C40 +_080F3D04: .4byte 0x085CBFDC +_080F3D08: + ldr r0, _080F3D20 + ldr r1, _080F3D24 + bl StringCopy +_080F3D10: + ldrb r0, [r4, #2] + cmp r0, #0x18 + bls _080F3D30 + ldr r0, _080F3D28 + ldr r1, _080F3D2C + bl StringCopy + b _080F3D50 + .align 2, 0 +_080F3D20: .4byte 0x02021C40 +_080F3D24: .4byte 0x085CBFDF +_080F3D28: .4byte 0x02021C54 +_080F3D2C: .4byte 0x085CBFC0 +_080F3D30: + cmp r0, #0x16 + bls _080F3D48 + ldr r0, _080F3D40 + ldr r1, _080F3D44 + bl StringCopy + b _080F3D50 + .align 2, 0 +_080F3D40: .4byte 0x02021C54 +_080F3D44: .4byte 0x085CBFBB +_080F3D48: + ldr r0, _080F3D64 + ldr r1, _080F3D68 + bl StringCopy +_080F3D50: + ldr r0, _080F3D6C + adds r1, r4, #0 + adds r1, #0xc + bl StringCopy + ldr r1, _080F3D70 + movs r0, #2 + strb r0, [r1] + b _080F3E94 + .align 2, 0 +_080F3D64: .4byte 0x02021C54 +_080F3D68: .4byte 0x085CBFB8 +_080F3D6C: .4byte 0x02021C68 +_080F3D70: .4byte 0x02039CFC +_080F3D74: + ldr r0, _080F3D7C + adds r1, r4, #4 + b _080F3E76 + .align 2, 0 +_080F3D7C: .4byte 0x02021C40 +_080F3D80: + ldrb r0, [r4, #3] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1d + cmp r0, #4 + bhi _080F3E04 + lsls r0, r0, #2 + ldr r1, _080F3D94 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F3D94: .4byte 0x080F3D98 +_080F3D98: @ jump table + .4byte _080F3DAC @ case 0 + .4byte _080F3DC0 @ case 1 + .4byte _080F3DD4 @ case 2 + .4byte _080F3DE8 @ case 3 + .4byte _080F3DFC @ case 4 +_080F3DAC: + ldr r0, _080F3DB8 + ldr r1, _080F3DBC + bl StringCopy + b _080F3E04 + .align 2, 0 +_080F3DB8: .4byte 0x02021C40 +_080F3DBC: .4byte 0x085CBFD3 +_080F3DC0: + ldr r0, _080F3DCC + ldr r1, _080F3DD0 + bl StringCopy + b _080F3E04 + .align 2, 0 +_080F3DCC: .4byte 0x02021C40 +_080F3DD0: .4byte 0x085CBFD6 +_080F3DD4: + ldr r0, _080F3DE0 + ldr r1, _080F3DE4 + bl StringCopy + b _080F3E04 + .align 2, 0 +_080F3DE0: .4byte 0x02021C40 +_080F3DE4: .4byte 0x085CBFD9 +_080F3DE8: + ldr r0, _080F3DF4 + ldr r1, _080F3DF8 + bl StringCopy + b _080F3E04 + .align 2, 0 +_080F3DF4: .4byte 0x02021C40 +_080F3DF8: .4byte 0x085CBFDC +_080F3DFC: + ldr r0, _080F3E14 + ldr r1, _080F3E18 + bl StringCopy +_080F3E04: + ldrb r0, [r4, #2] + cmp r0, #0x10 + bls _080F3E24 + ldr r0, _080F3E1C + ldr r1, _080F3E20 + bl StringCopy + b _080F3E44 + .align 2, 0 +_080F3E14: .4byte 0x02021C40 +_080F3E18: .4byte 0x085CBFDF +_080F3E1C: .4byte 0x02021C54 +_080F3E20: .4byte 0x085CBFC5 +_080F3E24: + cmp r0, #0xd + bls _080F3E3C + ldr r0, _080F3E34 + ldr r1, _080F3E38 + bl StringCopy + b _080F3E44 + .align 2, 0 +_080F3E34: .4byte 0x02021C54 +_080F3E38: .4byte 0x085CBFCA +_080F3E3C: + ldr r0, _080F3E58 + ldr r1, _080F3E5C + bl StringCopy +_080F3E44: + ldr r0, _080F3E60 + adds r1, r4, #0 + adds r1, #0xc + bl StringCopy + ldr r1, _080F3E64 + movs r0, #4 + strb r0, [r1] + b _080F3E94 + .align 2, 0 +_080F3E58: .4byte 0x02021C54 +_080F3E5C: .4byte 0x085CBFCE +_080F3E60: .4byte 0x02021C68 +_080F3E64: .4byte 0x02039CFC +_080F3E68: + ldr r0, _080F3E84 + adds r1, r4, #4 + bl StringCopy + ldr r0, _080F3E88 + adds r1, r4, #0 + adds r1, #0xc +_080F3E76: + bl StringCopy + ldr r1, _080F3E8C + movs r0, #5 + strb r0, [r1] + b _080F3E94 + .align 2, 0 +_080F3E84: .4byte 0x02021C40 +_080F3E88: .4byte 0x02021C54 +_080F3E8C: .4byte 0x02039CFC +_080F3E90: + bl TVShowDone +_080F3E94: + ldr r0, _080F3EA8 + lsls r1, r5, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080F3EA8: .4byte 0x08568CD4 + thumb_func_end DoTVShow3CheersForPokeblocks + + thumb_func_start DoTVShowInSearchOfTrainers +DoTVShowInSearchOfTrainers: @ 0x080F3EAC + push {r4, r5, r6, lr} + ldr r0, _080F3ECC + movs r1, #0 + strh r1, [r0] + ldr r0, _080F3ED0 + ldrb r6, [r0] + adds r2, r0, #0 + cmp r6, #8 + bls _080F3EC0 + b _080F4064 +_080F3EC0: + lsls r0, r6, #2 + ldr r1, _080F3ED4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F3ECC: .4byte 0x02037290 +_080F3ED0: .4byte 0x02039CFC +_080F3ED4: .4byte 0x080F3ED8 +_080F3ED8: @ jump table + .4byte _080F3EFC @ case 0 + .4byte _080F3F44 @ case 1 + .4byte _080F3F4A @ case 2 + .4byte _080F3F9C @ case 3 + .4byte _080F4010 @ case 4 + .4byte _080F4010 @ case 5 + .4byte _080F4010 @ case 6 + .4byte _080F4010 @ case 7 + .4byte _080F4016 @ case 8 +_080F3EFC: + ldr r0, _080F3F24 + ldr r4, _080F3F28 + ldr r1, [r4] + ldr r2, _080F3F2C + adds r1, r1, r2 + ldrb r1, [r1] + movs r2, #0 + bl GetMapName + ldr r0, [r4] + ldr r1, _080F3F30 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #1 + bls _080F3F38 + ldr r1, _080F3F34 + movs r0, #1 + strb r0, [r1] + b _080F4064 + .align 2, 0 +_080F3F24: .4byte 0x02021C40 +_080F3F28: .4byte 0x03005AEC +_080F3F2C: .4byte 0x00002BAC +_080F3F30: .4byte 0x00002BAD +_080F3F34: .4byte 0x02039CFC +_080F3F38: + ldr r1, _080F3F40 + movs r0, #2 + strb r0, [r1] + b _080F4064 + .align 2, 0 +_080F3F40: .4byte 0x02039CFC +_080F3F44: + movs r0, #2 + strb r0, [r2] + b _080F4064 +_080F3F4A: + ldr r0, _080F3F64 + ldr r0, [r0] + ldr r1, _080F3F68 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080F3F6C + movs r0, #4 + strb r0, [r2] + b _080F4064 + .align 2, 0 +_080F3F64: .4byte 0x03005AEC +_080F3F68: .4byte 0x00002BAE +_080F3F6C: + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080F3F7A + movs r0, #5 + strb r0, [r2] + b _080F4064 +_080F3F7A: + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080F3F88 + movs r0, #6 + strb r0, [r2] + b _080F4064 +_080F3F88: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080F3F96 + movs r0, #7 + strb r0, [r2] + b _080F4064 +_080F3F96: + movs r0, #3 + strb r0, [r2] + b _080F4064 +_080F3F9C: + ldr r0, _080F3FE8 + ldr r4, _080F3FEC + ldr r1, [r4] + ldr r2, _080F3FF0 + adds r1, r1, r2 + ldrh r2, [r1] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r5, _080F3FF4 + adds r1, r1, r5 + bl StringCopy + ldr r0, _080F3FF8 + ldr r1, [r4] + ldr r2, _080F3FFC + adds r1, r1, r2 + ldrh r1, [r1] + lsls r1, r1, #3 + ldr r2, _080F4000 + adds r1, r1, r2 + bl StringCopy + ldr r0, _080F4004 + ldr r1, [r4] + ldr r2, _080F4008 + adds r1, r1, r2 + ldrh r2, [r1] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + adds r1, r1, r5 + bl StringCopy + ldr r1, _080F400C + movs r0, #8 + strb r0, [r1] + b _080F4064 + .align 2, 0 +_080F3FE8: .4byte 0x02021C40 +_080F3FEC: .4byte 0x03005AEC +_080F3FF0: .4byte 0x00002BA4 +_080F3FF4: .4byte 0x082EA31C +_080F3FF8: .4byte 0x02021C54 +_080F3FFC: .4byte 0x00002BA8 +_080F4000: .4byte 0x082EACC4 +_080F4004: .4byte 0x02021C68 +_080F4008: .4byte 0x00002BA6 +_080F400C: .4byte 0x02039CFC +_080F4010: + movs r0, #8 + strb r0, [r2] + b _080F4064 +_080F4016: + ldr r0, _080F4078 + ldr r4, _080F407C + ldr r1, [r4] + ldr r2, _080F4080 + adds r1, r1, r2 + ldrh r1, [r1] + bl CopyEasyChatWord + ldr r0, _080F4084 + ldr r1, [r4] + ldr r2, _080F4088 + adds r1, r1, r2 + ldrh r2, [r1] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r5, _080F408C + adds r1, r1, r5 + bl StringCopy + ldr r0, _080F4090 + ldr r1, [r4] + ldr r2, _080F4094 + adds r1, r1, r2 + ldrh r2, [r1] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + adds r1, r1, r5 + bl StringCopy + ldr r1, _080F4098 + movs r0, #1 + strh r0, [r1] + ldr r1, _080F409C + movs r0, #0 + strb r0, [r1] + bl TakeTVShowInSearchOfTrainersOffTheAir +_080F4064: + ldr r0, _080F40A0 + lsls r1, r6, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080F4078: .4byte 0x02021C40 +_080F407C: .4byte 0x03005AEC +_080F4080: .4byte 0x00002BAA +_080F4084: .4byte 0x02021C54 +_080F4088: .4byte 0x00002BA4 +_080F408C: .4byte 0x082EA31C +_080F4090: .4byte 0x02021C68 +_080F4094: .4byte 0x00002BA6 +_080F4098: .4byte 0x02037290 +_080F409C: .4byte 0x02039CFC +_080F40A0: .4byte 0x08569118 + thumb_func_end DoTVShowInSearchOfTrainers + + thumb_func_start DoTVShowPokemonAngler +DoTVShowPokemonAngler: @ 0x080F40A4 + push {r4, r5, lr} + ldr r2, _080F40D0 + ldr r0, _080F40D4 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080F40D8 + adds r0, r0, r1 + ldr r1, [r2] + adds r4, r1, r0 + ldr r0, _080F40DC + movs r1, #0 + strh r1, [r0] + ldrb r0, [r4, #2] + ldrb r2, [r4, #3] + cmp r0, r2 + bhs _080F40E4 + ldr r0, _080F40E0 + strb r1, [r0] + b _080F40EC + .align 2, 0 +_080F40D0: .4byte 0x03005AEC +_080F40D4: .4byte 0x02037280 +_080F40D8: .4byte 0x000027CC +_080F40DC: .4byte 0x02037290 +_080F40E0: .4byte 0x02039CFC +_080F40E4: + ldr r1, _080F40F8 + movs r0, #1 + strb r0, [r1] + adds r0, r1, #0 +_080F40EC: + ldrb r5, [r0] + cmp r5, #0 + beq _080F40FC + cmp r5, #1 + beq _080F4134 + b _080F415C + .align 2, 0 +_080F40F8: .4byte 0x02039CFC +_080F40FC: + ldr r0, _080F4128 + adds r1, r4, #0 + adds r1, #0x13 + bl StringCopy + ldr r0, _080F412C + ldrh r2, [r4, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F4130 + adds r1, r1, r2 + bl StringCopy + ldrb r1, [r4, #3] + movs r0, #2 + bl TV_PrintIntToStringVar + bl TVShowDone + b _080F415C + .align 2, 0 +_080F4128: .4byte 0x02021C40 +_080F412C: .4byte 0x02021C54 +_080F4130: .4byte 0x082EA31C +_080F4134: + ldr r0, _080F4170 + adds r1, r4, #0 + adds r1, #0x13 + bl StringCopy + ldr r0, _080F4174 + ldrh r2, [r4, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F4178 + adds r1, r1, r2 + bl StringCopy + ldrb r1, [r4, #2] + movs r0, #2 + bl TV_PrintIntToStringVar + bl TVShowDone +_080F415C: + ldr r0, _080F417C + lsls r1, r5, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080F4170: .4byte 0x02021C40 +_080F4174: .4byte 0x02021C54 +_080F4178: .4byte 0x082EA31C +_080F417C: .4byte 0x08568E5C + thumb_func_end DoTVShowPokemonAngler + + thumb_func_start DoTVShowTheWorldOfMasters +DoTVShowTheWorldOfMasters: @ 0x080F4180 + push {r4, r5, r6, lr} + ldr r2, _080F41B0 + ldr r0, _080F41B4 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080F41B8 + adds r0, r0, r1 + ldr r1, [r2] + adds r4, r1, r0 + ldr r1, _080F41BC + movs r0, #0 + strh r0, [r1] + ldr r6, _080F41C0 + ldrb r5, [r6] + cmp r5, #1 + beq _080F41F0 + cmp r5, #1 + bgt _080F41C4 + cmp r5, #0 + beq _080F41CA + b _080F423A + .align 2, 0 +_080F41B0: .4byte 0x03005AEC +_080F41B4: .4byte 0x02037280 +_080F41B8: .4byte 0x000027CC +_080F41BC: .4byte 0x02037290 +_080F41C0: .4byte 0x02039CFC +_080F41C4: + cmp r5, #2 + beq _080F4210 + b _080F423A +_080F41CA: + ldr r0, _080F41EC + adds r1, r4, #0 + adds r1, #0x13 + bl StringCopy + ldrh r1, [r4, #6] + movs r0, #1 + bl TV_PrintIntToStringVar + ldrh r1, [r4, #2] + movs r0, #2 + bl TV_PrintIntToStringVar + movs r0, #1 + strb r0, [r6] + b _080F423A + .align 2, 0 +_080F41EC: .4byte 0x02021C40 +_080F41F0: + ldr r0, _080F4208 + ldrh r2, [r4, #8] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F420C + adds r1, r1, r2 + bl StringCopy + movs r0, #2 + strb r0, [r6] + b _080F423A + .align 2, 0 +_080F4208: .4byte 0x02021C40 +_080F420C: .4byte 0x082EA31C +_080F4210: + ldr r0, _080F424C + adds r1, r4, #0 + adds r1, #0x13 + bl StringCopy + ldr r0, _080F4250 + ldrb r1, [r4, #0xa] + movs r2, #0 + bl GetMapName + ldr r0, _080F4254 + ldrh r2, [r4, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F4258 + adds r1, r1, r2 + bl StringCopy + bl TVShowDone +_080F423A: + ldr r0, _080F425C + lsls r1, r5, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080F424C: .4byte 0x02021C40 +_080F4250: .4byte 0x02021C54 +_080F4254: .4byte 0x02021C68 +_080F4258: .4byte 0x082EA31C +_080F425C: .4byte 0x08568E64 + thumb_func_end DoTVShowTheWorldOfMasters + + thumb_func_start DoTVShowTodaysRivalTrainer +DoTVShowTodaysRivalTrainer: @ 0x080F4260 + push {r4, r5, lr} + ldr r2, _080F4294 + ldr r0, _080F4298 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080F429C + adds r0, r0, r1 + ldr r1, [r2] + adds r4, r1, r0 + ldr r1, _080F42A0 + movs r0, #0 + strh r0, [r1] + ldr r0, _080F42A4 + ldrb r5, [r0] + adds r2, r0, #0 + cmp r5, #0xa + bls _080F4288 + b _080F4456 +_080F4288: + lsls r0, r5, #2 + ldr r1, _080F42A8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F4294: .4byte 0x03005AEC +_080F4298: .4byte 0x02037280 +_080F429C: .4byte 0x000027CC +_080F42A0: .4byte 0x02037290 +_080F42A4: .4byte 0x02039CFC +_080F42A8: .4byte 0x080F42AC +_080F42AC: @ jump table + .4byte _080F42D8 @ case 0 + .4byte _080F43A0 @ case 1 + .4byte _080F43C8 @ case 2 + .4byte _080F4400 @ case 3 + .4byte _080F4412 @ case 4 + .4byte _080F4434 @ case 5 + .4byte _080F4448 @ case 6 + .4byte _080F430E @ case 7 + .4byte _080F433C @ case 8 + .4byte _080F4354 @ case 9 + .4byte _080F436C @ case 10 +_080F42D8: + ldrb r0, [r4, #7] + cmp r0, #0x56 + beq _080F42E8 + cmp r0, #0x57 + beq _080F42EE + movs r0, #7 + strb r0, [r2] + b _080F4456 +_080F42E8: + movs r0, #8 + strb r0, [r2] + b _080F4456 +_080F42EE: + ldrh r1, [r4, #0xa] + ldr r0, _080F4304 + cmp r1, r0 + bgt _080F4308 + subs r0, #2 + cmp r1, r0 + blt _080F4308 + movs r0, #0xa + strb r0, [r2] + b _080F4456 + .align 2, 0 +_080F4304: .4byte 0x00000117 +_080F4308: + movs r0, #9 + strb r0, [r2] + b _080F4456 +_080F430E: + ldr r0, _080F4334 + adds r1, r4, #0 + adds r1, #0x13 + bl StringCopy + ldrh r1, [r4, #2] + movs r0, #1 + bl TV_PrintIntToStringVar + ldr r0, _080F4338 + ldrb r1, [r4, #7] + movs r2, #0 + bl GetMapName +_080F432A: + ldrb r0, [r4, #4] + cmp r0, #0 + bne _080F4384 + b _080F4394 + .align 2, 0 +_080F4334: .4byte 0x02021C40 +_080F4338: .4byte 0x02021C68 +_080F433C: + ldr r0, _080F4350 + adds r1, r4, #0 + adds r1, #0x13 + bl StringCopy + ldrh r1, [r4, #2] + movs r0, #1 + bl TV_PrintIntToStringVar + b _080F432A + .align 2, 0 +_080F4350: .4byte 0x02021C40 +_080F4354: + ldr r0, _080F4368 + adds r1, r4, #0 + adds r1, #0x13 + bl StringCopy + ldrh r1, [r4, #2] + movs r0, #1 + bl TV_PrintIntToStringVar + b _080F432A + .align 2, 0 +_080F4368: .4byte 0x02021C40 +_080F436C: + ldr r0, _080F438C + adds r1, r4, #0 + adds r1, #0x13 + bl StringCopy + ldrh r1, [r4, #2] + movs r0, #1 + bl TV_PrintIntToStringVar + ldrb r0, [r4, #4] + cmp r0, #0 + beq _080F4394 +_080F4384: + ldr r1, _080F4390 + movs r0, #1 + strb r0, [r1] + b _080F4456 + .align 2, 0 +_080F438C: .4byte 0x02021C40 +_080F4390: .4byte 0x02039CFC +_080F4394: + ldr r1, _080F439C + movs r0, #2 + strb r0, [r1] + b _080F4456 + .align 2, 0 +_080F439C: .4byte 0x02039CFC +_080F43A0: + ldrb r1, [r4, #4] + movs r0, #0 + bl TV_PrintIntToStringVar + ldr r0, _080F43C0 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080F443C + ldr r0, [r4, #4] + ldr r1, _080F43C4 + ands r0, r1 + cmp r0, #0 + bne _080F43DE + b _080F43F4 + .align 2, 0 +_080F43C0: .4byte 0x000008A8 +_080F43C4: .4byte 0x00FFFF00 +_080F43C8: + ldr r0, _080F43E8 + bl FlagGet + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080F443C + ldr r0, [r4, #4] + ldr r1, _080F43EC + ands r0, r1 + cmp r0, #0 + beq _080F43F4 +_080F43DE: + ldr r1, _080F43F0 + movs r0, #4 + strb r0, [r1] + b _080F4456 + .align 2, 0 +_080F43E8: .4byte 0x000008A8 +_080F43EC: .4byte 0x00FFFF00 +_080F43F0: .4byte 0x02039CFC +_080F43F4: + ldr r1, _080F43FC + movs r0, #3 + strb r0, [r1] + b _080F4456 + .align 2, 0 +_080F43FC: .4byte 0x02039CFC +_080F4400: + ldrh r0, [r4, #8] + cmp r0, #0 + bne _080F440C + movs r0, #6 + strb r0, [r2] + b _080F4456 +_080F440C: + movs r0, #5 + strb r0, [r2] + b _080F4456 +_080F4412: + ldrb r1, [r4, #6] + movs r0, #0 + bl TV_PrintIntToStringVar + ldrb r1, [r4, #5] + movs r0, #1 + bl TV_PrintIntToStringVar + ldrh r0, [r4, #8] + cmp r0, #0 + beq _080F443C + ldr r1, _080F4430 + movs r0, #5 + strb r0, [r1] + b _080F4456 + .align 2, 0 +_080F4430: .4byte 0x02039CFC +_080F4434: + ldrh r1, [r4, #8] + movs r0, #0 + bl TV_PrintIntToStringVar +_080F443C: + ldr r1, _080F4444 + movs r0, #6 + strb r0, [r1] + b _080F4456 + .align 2, 0 +_080F4444: .4byte 0x02039CFC +_080F4448: + ldr r0, _080F4468 + adds r1, r4, #0 + adds r1, #0x13 + bl StringCopy + bl TVShowDone +_080F4456: + ldr r0, _080F446C + lsls r1, r5, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080F4468: .4byte 0x02021C40 +_080F446C: .4byte 0x08568E70 + thumb_func_end DoTVShowTodaysRivalTrainer + + thumb_func_start DoTVShowDewfordTrendWatcherNetwork +DoTVShowDewfordTrendWatcherNetwork: @ 0x080F4470 + push {r4, r5, lr} + ldr r2, _080F44A0 + ldr r0, _080F44A4 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080F44A8 + adds r0, r0, r1 + ldr r1, [r2] + adds r4, r1, r0 + ldr r1, _080F44AC + movs r0, #0 + strh r0, [r1] + ldr r0, _080F44B0 + ldrb r5, [r0] + cmp r5, #6 + bls _080F4496 + b _080F45C0 +_080F4496: + lsls r0, r5, #2 + ldr r1, _080F44B4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F44A0: .4byte 0x03005AEC +_080F44A4: .4byte 0x02037280 +_080F44A8: .4byte 0x000027CC +_080F44AC: .4byte 0x02037290 +_080F44B0: .4byte 0x02039CFC +_080F44B4: .4byte 0x080F44B8 +_080F44B8: @ jump table + .4byte _080F44D4 @ case 0 + .4byte _080F450C @ case 1 + .4byte _080F450C @ case 2 + .4byte _080F4540 @ case 3 + .4byte _080F4578 @ case 4 + .4byte _080F4578 @ case 5 + .4byte _080F45AC @ case 6 +_080F44D4: + ldr r0, _080F44F4 + ldrh r1, [r4, #4] + bl CopyEasyChatWord + ldr r0, _080F44F8 + ldrh r1, [r4, #6] + bl CopyEasyChatWord + ldrb r0, [r4, #8] + cmp r0, #0 + bne _080F4500 + ldr r1, _080F44FC + movs r0, #1 + strb r0, [r1] + b _080F45C0 + .align 2, 0 +_080F44F4: .4byte 0x02021C40 +_080F44F8: .4byte 0x02021C54 +_080F44FC: .4byte 0x02039CFC +_080F4500: + ldr r1, _080F4508 + movs r0, #2 + strb r0, [r1] + b _080F45C0 + .align 2, 0 +_080F4508: .4byte 0x02039CFC +_080F450C: + ldr r0, _080F4530 + ldrh r1, [r4, #4] + bl CopyEasyChatWord + ldr r0, _080F4534 + ldrh r1, [r4, #6] + bl CopyEasyChatWord + ldr r0, _080F4538 + adds r1, r4, #0 + adds r1, #0x13 + bl StringCopy + ldr r1, _080F453C + movs r0, #3 + strb r0, [r1] + b _080F45C0 + .align 2, 0 +_080F4530: .4byte 0x02021C40 +_080F4534: .4byte 0x02021C54 +_080F4538: .4byte 0x02021C68 +_080F453C: .4byte 0x02039CFC +_080F4540: + ldr r0, _080F4560 + ldrh r1, [r4, #4] + bl CopyEasyChatWord + ldr r0, _080F4564 + ldrh r1, [r4, #6] + bl CopyEasyChatWord + ldrb r0, [r4, #8] + cmp r0, #0 + bne _080F456C + ldr r1, _080F4568 + movs r0, #4 + strb r0, [r1] + b _080F45C0 + .align 2, 0 +_080F4560: .4byte 0x02021C40 +_080F4564: .4byte 0x02021C54 +_080F4568: .4byte 0x02039CFC +_080F456C: + ldr r1, _080F4574 + movs r0, #5 + strb r0, [r1] + b _080F45C0 + .align 2, 0 +_080F4574: .4byte 0x02039CFC +_080F4578: + ldr r0, _080F459C + ldrh r1, [r4, #4] + bl CopyEasyChatWord + ldr r0, _080F45A0 + ldrh r1, [r4, #6] + bl CopyEasyChatWord + ldr r0, _080F45A4 + adds r1, r4, #0 + adds r1, #0x13 + bl StringCopy + ldr r1, _080F45A8 + movs r0, #6 + strb r0, [r1] + b _080F45C0 + .align 2, 0 +_080F459C: .4byte 0x02021C40 +_080F45A0: .4byte 0x02021C54 +_080F45A4: .4byte 0x02021C68 +_080F45A8: .4byte 0x02039CFC +_080F45AC: + ldr r0, _080F45D4 + ldrh r1, [r4, #4] + bl CopyEasyChatWord + ldr r0, _080F45D8 + ldrh r1, [r4, #6] + bl CopyEasyChatWord + bl TVShowDone +_080F45C0: + ldr r0, _080F45DC + lsls r1, r5, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080F45D4: .4byte 0x02021C40 +_080F45D8: .4byte 0x02021C54 +_080F45DC: .4byte 0x08568E9C + thumb_func_end DoTVShowDewfordTrendWatcherNetwork + + thumb_func_start DoTVShowHoennTreasureInvestigators +DoTVShowHoennTreasureInvestigators: @ 0x080F45E0 + push {r4, r5, r6, r7, lr} + ldr r2, _080F4610 + ldr r0, _080F4614 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080F4618 + adds r0, r0, r1 + ldr r1, [r2] + adds r5, r1, r0 + ldr r1, _080F461C + movs r0, #0 + strh r0, [r1] + ldr r7, _080F4620 + ldrb r6, [r7] + cmp r6, #1 + beq _080F466E + cmp r6, #1 + bgt _080F4624 + cmp r6, #0 + beq _080F462A + b _080F46C2 + .align 2, 0 +_080F4610: .4byte 0x03005AEC +_080F4614: .4byte 0x02037280 +_080F4618: .4byte 0x000027CC +_080F461C: .4byte 0x02037290 +_080F4620: .4byte 0x02039CFC +_080F4624: + cmp r6, #2 + beq _080F46A4 + b _080F46C2 +_080F462A: + ldr r4, _080F4654 + ldrh r0, [r5, #2] + bl ItemId_GetName + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCopy + ldrb r0, [r5, #4] + cmp r0, #0x57 + bne _080F4668 + ldrh r1, [r5, #6] + ldr r0, _080F4658 + cmp r1, r0 + bgt _080F465C + subs r0, #2 + cmp r1, r0 + blt _080F465C + movs r0, #2 + strb r0, [r7] + b _080F46C2 + .align 2, 0 +_080F4654: .4byte 0x02021C40 +_080F4658: .4byte 0x00000117 +_080F465C: + ldr r1, _080F4664 + movs r0, #1 + strb r0, [r1] + b _080F46C2 + .align 2, 0 +_080F4664: .4byte 0x02039CFC +_080F4668: + movs r0, #1 + strb r0, [r7] + b _080F46C2 +_080F466E: + ldr r4, _080F4698 + ldrh r0, [r5, #2] + bl ItemId_GetName + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCopy + ldr r0, _080F469C + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + ldr r0, _080F46A0 + ldrb r1, [r5, #4] + movs r2, #0 + bl GetMapName + bl TVShowDone + b _080F46C2 + .align 2, 0 +_080F4698: .4byte 0x02021C40 +_080F469C: .4byte 0x02021C54 +_080F46A0: .4byte 0x02021C68 +_080F46A4: + ldr r4, _080F46D4 + ldrh r0, [r5, #2] + bl ItemId_GetName + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCopy + ldr r0, _080F46D8 + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + bl TVShowDone +_080F46C2: + ldr r0, _080F46DC + lsls r1, r6, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F46D4: .4byte 0x02021C40 +_080F46D8: .4byte 0x02021C54 +_080F46DC: .4byte 0x08568EB8 + thumb_func_end DoTVShowHoennTreasureInvestigators + + thumb_func_start DoTVShowFindThatGamer +DoTVShowFindThatGamer: @ 0x080F46E0 + push {r4, r5, lr} + ldr r2, _080F4710 + ldr r0, _080F4714 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080F4718 + adds r0, r0, r1 + ldr r1, [r2] + adds r4, r1, r0 + ldr r1, _080F471C + movs r0, #0 + strh r0, [r1] + ldr r0, _080F4720 + ldrb r5, [r0] + cmp r5, #1 + beq _080F478C + cmp r5, #1 + bgt _080F4724 + cmp r5, #0 + beq _080F4730 + b _080F486C + .align 2, 0 +_080F4710: .4byte 0x03005AEC +_080F4714: .4byte 0x02037280 +_080F4718: .4byte 0x000027CC +_080F471C: .4byte 0x02037290 +_080F4720: .4byte 0x02039CFC +_080F4724: + cmp r5, #2 + beq _080F47DC + cmp r5, #3 + bne _080F472E + b _080F4830 +_080F472E: + b _080F486C +_080F4730: + ldr r0, _080F4748 + adds r1, r4, #0 + adds r1, #0x13 + bl StringCopy + ldrb r0, [r4, #3] + cmp r0, #0 + beq _080F474C + cmp r0, #1 + beq _080F4760 + b _080F4768 + .align 2, 0 +_080F4748: .4byte 0x02021C40 +_080F474C: + ldr r0, _080F4758 + ldr r1, _080F475C + bl StringCopy + b _080F4768 + .align 2, 0 +_080F4758: .4byte 0x02021C54 +_080F475C: .4byte 0x085CBFAD +_080F4760: + ldr r0, _080F4774 + ldr r1, _080F4778 + bl StringCopy +_080F4768: + ldrb r1, [r4, #2] + cmp r1, #1 + bne _080F4780 + ldr r0, _080F477C + strb r1, [r0] + b _080F486C + .align 2, 0 +_080F4774: .4byte 0x02021C54 +_080F4778: .4byte 0x085CBFB2 +_080F477C: .4byte 0x02039CFC +_080F4780: + ldr r1, _080F4788 + movs r0, #2 + strb r0, [r1] + b _080F486C + .align 2, 0 +_080F4788: .4byte 0x02039CFC +_080F478C: + ldr r0, _080F47A4 + adds r1, r4, #0 + adds r1, #0x13 + bl StringCopy + ldrb r0, [r4, #3] + cmp r0, #0 + beq _080F47A8 + cmp r0, #1 + beq _080F47BC + b _080F47C4 + .align 2, 0 +_080F47A4: .4byte 0x02021C40 +_080F47A8: + ldr r0, _080F47B4 + ldr r1, _080F47B8 + bl StringCopy + b _080F47C4 + .align 2, 0 +_080F47B4: .4byte 0x02021C54 +_080F47B8: .4byte 0x085CBFAD +_080F47BC: + ldr r0, _080F47D4 + ldr r1, _080F47D8 + bl StringCopy +_080F47C4: + ldrh r1, [r4, #4] + movs r0, #2 + bl TV_PrintIntToStringVar + bl TVShowDone + b _080F486C + .align 2, 0 +_080F47D4: .4byte 0x02021C54 +_080F47D8: .4byte 0x085CBFB2 +_080F47DC: + ldr r0, _080F47F4 + adds r1, r4, #0 + adds r1, #0x13 + bl StringCopy + ldrb r0, [r4, #3] + cmp r0, #0 + beq _080F47F8 + cmp r0, #1 + beq _080F480C + b _080F4814 + .align 2, 0 +_080F47F4: .4byte 0x02021C40 +_080F47F8: + ldr r0, _080F4804 + ldr r1, _080F4808 + bl StringCopy + b _080F4814 + .align 2, 0 +_080F4804: .4byte 0x02021C54 +_080F4808: .4byte 0x085CBFAD +_080F480C: + ldr r0, _080F4824 + ldr r1, _080F4828 + bl StringCopy +_080F4814: + ldrh r1, [r4, #4] + movs r0, #2 + bl TV_PrintIntToStringVar + ldr r1, _080F482C + movs r0, #3 + strb r0, [r1] + b _080F486C + .align 2, 0 +_080F4824: .4byte 0x02021C54 +_080F4828: .4byte 0x085CBFB2 +_080F482C: .4byte 0x02039CFC +_080F4830: + ldr r0, _080F4848 + adds r1, r4, #0 + adds r1, #0x13 + bl StringCopy + ldrb r1, [r4, #3] + cmp r1, #0 + beq _080F484C + cmp r1, #1 + beq _080F4860 + b _080F4868 + .align 2, 0 +_080F4848: .4byte 0x02021C40 +_080F484C: + ldr r0, _080F4858 + ldr r1, _080F485C + bl StringCopy + b _080F4868 + .align 2, 0 +_080F4858: .4byte 0x02021C54 +_080F485C: .4byte 0x085CBFB2 +_080F4860: + ldr r0, _080F4880 + ldr r1, _080F4884 + bl StringCopy +_080F4868: + bl TVShowDone +_080F486C: + ldr r0, _080F4888 + lsls r1, r5, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080F4880: .4byte 0x02021C54 +_080F4884: .4byte 0x085CBFAD +_080F4888: .4byte 0x08568EC4 + thumb_func_end DoTVShowFindThatGamer + + thumb_func_start DoTVShowBreakingNewsTV +DoTVShowBreakingNewsTV: @ 0x080F488C + push {r4, r5, r6, lr} + ldr r2, _080F48C0 + ldr r0, _080F48C4 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080F48C8 + adds r0, r0, r1 + ldr r1, [r2] + adds r5, r1, r0 + ldr r1, _080F48CC + movs r0, #0 + strh r0, [r1] + ldr r0, _080F48D0 + ldrb r6, [r0] + adds r2, r0, #0 + cmp r6, #0xc + bls _080F48B4 + b _080F4BA2 +_080F48B4: + lsls r0, r6, #2 + ldr r1, _080F48D4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F48C0: .4byte 0x03005AEC +_080F48C4: .4byte 0x02037280 +_080F48C8: .4byte 0x000027CC +_080F48CC: .4byte 0x02037290 +_080F48D0: .4byte 0x02039CFC +_080F48D4: .4byte 0x080F48D8 +_080F48D8: @ jump table + .4byte _080F490C @ case 0 + .4byte _080F491E @ case 1 + .4byte _080F4960 @ case 2 + .4byte _080F49A8 @ case 3 + .4byte _080F49D0 @ case 4 + .4byte _080F49F4 @ case 5 + .4byte _080F4A38 @ case 6 + .4byte _080F4AC0 @ case 7 + .4byte _080F4B38 @ case 8 + .4byte _080F4B50 @ case 9 + .4byte _080F4B50 @ case 10 + .4byte _080F4B94 @ case 11 + .4byte _080F4AF0 @ case 12 +_080F490C: + ldrb r0, [r5, #5] + cmp r0, #0 + bne _080F4918 + movs r0, #1 + strb r0, [r2] + b _080F4BA2 +_080F4918: + movs r0, #5 + strb r0, [r2] + b _080F4BA2 +_080F491E: + ldr r0, _080F494C + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + ldr r0, _080F4950 + ldrh r2, [r5, #2] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F4954 + adds r1, r1, r2 + bl StringCopy + ldr r0, _080F4958 + ldrb r1, [r5, #4] + movs r2, #0 + bl GetMapName + ldr r1, _080F495C + movs r0, #2 + strb r0, [r1] + b _080F4BA2 + .align 2, 0 +_080F494C: .4byte 0x02021C40 +_080F4950: .4byte 0x02021C54 +_080F4954: .4byte 0x082EA31C +_080F4958: .4byte 0x02021C68 +_080F495C: .4byte 0x02039CFC +_080F4960: + ldr r0, _080F4994 + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + ldr r0, _080F4998 + ldrh r2, [r5, #2] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r4, _080F499C + adds r1, r1, r4 + bl StringCopy + ldr r0, _080F49A0 + ldrh r2, [r5, #0xa] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + adds r1, r1, r4 + bl StringCopy + ldr r1, _080F49A4 + movs r0, #3 + strb r0, [r1] + b _080F4BA2 + .align 2, 0 +_080F4994: .4byte 0x02021C40 +_080F4998: .4byte 0x02021C54 +_080F499C: .4byte 0x082EA31C +_080F49A0: .4byte 0x02021C68 +_080F49A4: .4byte 0x02039CFC +_080F49A8: + ldrh r1, [r5, #8] + movs r0, #0 + bl TV_PrintIntToStringVar + ldr r4, _080F49C8 + ldrh r0, [r5, #6] + bl ItemId_GetName + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCopy + ldr r1, _080F49CC + movs r0, #4 + strb r0, [r1] + b _080F4BA2 + .align 2, 0 +_080F49C8: .4byte 0x02021C54 +_080F49CC: .4byte 0x02039CFC +_080F49D0: + ldr r0, _080F49EC + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + ldr r0, _080F49F0 + ldrb r1, [r5, #4] + movs r2, #0 + bl GetMapName + bl TVShowDone + b _080F4BA2 + .align 2, 0 +_080F49EC: .4byte 0x02021C40 +_080F49F0: .4byte 0x02021C54 +_080F49F4: + ldr r0, _080F4A24 + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + ldr r0, _080F4A28 + ldrh r2, [r5, #2] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F4A2C + adds r1, r1, r2 + bl StringCopy + ldr r0, _080F4A30 + ldrb r1, [r5, #4] + movs r2, #0 + bl GetMapName + ldr r1, _080F4A34 + movs r0, #6 + strb r0, [r1] + b _080F4BA2 + .align 2, 0 +_080F4A24: .4byte 0x02021C40 +_080F4A28: .4byte 0x02021C54 +_080F4A2C: .4byte 0x082EA31C +_080F4A30: .4byte 0x02021C68 +_080F4A34: .4byte 0x02039CFC +_080F4A38: + ldr r0, _080F4A74 + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + ldr r0, _080F4A78 + ldrh r2, [r5, #2] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r4, _080F4A7C + adds r1, r1, r4 + bl StringCopy + ldr r0, _080F4A80 + ldrh r2, [r5, #0xa] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + adds r1, r1, r4 + bl StringCopy + ldrb r0, [r5, #5] + cmp r0, #2 + beq _080F4AA8 + cmp r0, #2 + bgt _080F4A84 + cmp r0, #1 + beq _080F4A8A + b _080F4BA2 + .align 2, 0 +_080F4A74: .4byte 0x02021C40 +_080F4A78: .4byte 0x02021C54 +_080F4A7C: .4byte 0x082EA31C +_080F4A80: .4byte 0x02021C68 +_080F4A84: + cmp r0, #3 + beq _080F4AB4 + b _080F4BA2 +_080F4A8A: + ldrh r0, [r5, #0xc] + cmp r0, #0 + bne _080F4A9C + ldr r1, _080F4A98 + movs r0, #0xc + strb r0, [r1] + b _080F4BA2 + .align 2, 0 +_080F4A98: .4byte 0x02039CFC +_080F4A9C: + ldr r1, _080F4AA4 + movs r0, #7 + strb r0, [r1] + b _080F4BA2 + .align 2, 0 +_080F4AA4: .4byte 0x02039CFC +_080F4AA8: + ldr r1, _080F4AB0 + movs r0, #9 + strb r0, [r1] + b _080F4BA2 + .align 2, 0 +_080F4AB0: .4byte 0x02039CFC +_080F4AB4: + ldr r1, _080F4ABC + movs r0, #0xa + strb r0, [r1] + b _080F4BA2 + .align 2, 0 +_080F4ABC: .4byte 0x02039CFC +_080F4AC0: + ldr r0, _080F4AE0 + ldrh r1, [r5, #0xc] + lsls r1, r1, #3 + ldr r2, _080F4AE4 + adds r1, r1, r2 + bl StringCopy + ldr r0, _080F4AE8 + ldrh r2, [r5, #0xa] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F4AEC + adds r1, r1, r2 + b _080F4B18 + .align 2, 0 +_080F4AE0: .4byte 0x02021C40 +_080F4AE4: .4byte 0x082EACC4 +_080F4AE8: .4byte 0x02021C54 +_080F4AEC: .4byte 0x082EA31C +_080F4AF0: + ldr r0, _080F4B24 + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + ldr r0, _080F4B28 + ldrh r2, [r5, #2] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r4, _080F4B2C + adds r1, r1, r4 + bl StringCopy + ldr r0, _080F4B30 + ldrh r2, [r5, #0xa] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + adds r1, r1, r4 +_080F4B18: + bl StringCopy + ldr r1, _080F4B34 + movs r0, #8 + strb r0, [r1] + b _080F4BA2 + .align 2, 0 +_080F4B24: .4byte 0x02021C40 +_080F4B28: .4byte 0x02021C54 +_080F4B2C: .4byte 0x082EA31C +_080F4B30: .4byte 0x02021C68 +_080F4B34: .4byte 0x02039CFC +_080F4B38: + ldr r0, _080F4B48 + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + ldr r0, _080F4B4C + b _080F4B6E + .align 2, 0 +_080F4B48: .4byte 0x02021C40 +_080F4B4C: .4byte 0x02021C54 +_080F4B50: + ldr r0, _080F4B80 + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + ldr r0, _080F4B84 + ldrh r2, [r5, #2] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F4B88 + adds r1, r1, r2 + bl StringCopy + ldr r0, _080F4B8C +_080F4B6E: + ldrb r1, [r5, #4] + movs r2, #0 + bl GetMapName + ldr r1, _080F4B90 + movs r0, #0xb + strb r0, [r1] + b _080F4BA2 + .align 2, 0 +_080F4B80: .4byte 0x02021C40 +_080F4B84: .4byte 0x02021C54 +_080F4B88: .4byte 0x082EA31C +_080F4B8C: .4byte 0x02021C68 +_080F4B90: .4byte 0x02039CFC +_080F4B94: + ldr r0, _080F4BB4 + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + bl TVShowDone +_080F4BA2: + ldr r0, _080F4BB8 + lsls r1, r6, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080F4BB4: .4byte 0x02021C40 +_080F4BB8: .4byte 0x08568ED4 + thumb_func_end DoTVShowBreakingNewsTV + + thumb_func_start DoTVShowSecretBaseVisit +DoTVShowSecretBaseVisit: @ 0x080F4BBC + push {r4, r5, r6, lr} + ldr r2, _080F4BF0 + ldr r0, _080F4BF4 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080F4BF8 + adds r0, r0, r1 + ldr r1, [r2] + adds r5, r1, r0 + ldr r1, _080F4BFC + movs r0, #0 + strh r0, [r1] + ldr r0, _080F4C00 + ldrb r6, [r0] + adds r2, r0, #0 + cmp r6, #0xd + bls _080F4BE4 + b _080F4DF4 +_080F4BE4: + lsls r0, r6, #2 + ldr r1, _080F4C04 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F4BF0: .4byte 0x03005AEC +_080F4BF4: .4byte 0x02037280 +_080F4BF8: .4byte 0x000027CC +_080F4BFC: .4byte 0x02037290 +_080F4C00: .4byte 0x02039CFC +_080F4C04: .4byte 0x080F4C08 +_080F4C08: @ jump table + .4byte _080F4C40 @ case 0 + .4byte _080F4C6C @ case 1 + .4byte _080F4D50 @ case 2 + .4byte _080F4CA4 @ case 3 + .4byte _080F4D50 @ case 4 + .4byte _080F4CFC @ case 5 + .4byte _080F4D28 @ case 6 + .4byte _080F4D50 @ case 7 + .4byte _080F4D56 @ case 8 + .4byte _080F4DA4 @ case 9 + .4byte _080F4DA4 @ case 10 + .4byte _080F4DA4 @ case 11 + .4byte _080F4DA4 @ case 12 + .4byte _080F4DF0 @ case 13 +_080F4C40: + ldr r0, _080F4C58 + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + ldrb r0, [r5, #3] + cmp r0, #0 + bne _080F4C60 + ldr r1, _080F4C5C + movs r0, #2 + strb r0, [r1] + b _080F4DF4 + .align 2, 0 +_080F4C58: .4byte 0x02021C40 +_080F4C5C: .4byte 0x02039CFC +_080F4C60: + ldr r1, _080F4C68 + movs r0, #1 + strb r0, [r1] + b _080F4DF4 + .align 2, 0 +_080F4C68: .4byte 0x02039CFC +_080F4C6C: + ldr r0, _080F4C8C + ldrb r2, [r5, #4] + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + ldr r2, _080F4C90 + adds r1, r1, r2 + bl StringCopy + ldrb r0, [r5, #3] + cmp r0, #1 + bne _080F4C98 + ldr r1, _080F4C94 + movs r0, #4 + strb r0, [r1] + b _080F4DF4 + .align 2, 0 +_080F4C8C: .4byte 0x02021C54 +_080F4C90: .4byte 0x08580CD1 +_080F4C94: .4byte 0x02039CFC +_080F4C98: + ldr r1, _080F4CA0 + movs r0, #3 + strb r0, [r1] + b _080F4DF4 + .align 2, 0 +_080F4CA0: .4byte 0x02039CFC +_080F4CA4: + ldr r0, _080F4CC8 + ldrb r2, [r5, #5] + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + ldr r2, _080F4CCC + adds r1, r1, r2 + bl StringCopy + ldrb r1, [r5, #3] + cmp r1, #3 + beq _080F4CE4 + cmp r1, #3 + bgt _080F4CD0 + cmp r1, #2 + beq _080F4CD6 + b _080F4DF4 + .align 2, 0 +_080F4CC8: .4byte 0x02021C54 +_080F4CCC: .4byte 0x08580CD1 +_080F4CD0: + cmp r1, #4 + beq _080F4CF0 + b _080F4DF4 +_080F4CD6: + ldr r1, _080F4CE0 + movs r0, #7 + strb r0, [r1] + b _080F4DF4 + .align 2, 0 +_080F4CE0: .4byte 0x02039CFC +_080F4CE4: + ldr r1, _080F4CEC + movs r0, #6 + strb r0, [r1] + b _080F4DF4 + .align 2, 0 +_080F4CEC: .4byte 0x02039CFC +_080F4CF0: + ldr r1, _080F4CF8 + movs r0, #5 + strb r0, [r1] + b _080F4DF4 + .align 2, 0 +_080F4CF8: .4byte 0x02039CFC +_080F4CFC: + ldr r0, _080F4D1C + ldrb r2, [r5, #6] + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + ldr r4, _080F4D20 + adds r1, r1, r4 + bl StringCopy + ldr r0, _080F4D24 + ldrb r2, [r5, #7] + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r4 + b _080F4D36 + .align 2, 0 +_080F4D1C: .4byte 0x02021C54 +_080F4D20: .4byte 0x08580CD1 +_080F4D24: .4byte 0x02021C68 +_080F4D28: + ldr r0, _080F4D44 + ldrb r2, [r5, #6] + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + ldr r2, _080F4D48 + adds r1, r1, r2 +_080F4D36: + bl StringCopy + ldr r1, _080F4D4C + movs r0, #8 + strb r0, [r1] + b _080F4DF4 + .align 2, 0 +_080F4D44: .4byte 0x02021C54 +_080F4D48: .4byte 0x08580CD1 +_080F4D4C: .4byte 0x02039CFC +_080F4D50: + movs r0, #8 + strb r0, [r2] + b _080F4DF4 +_080F4D56: + ldr r0, _080F4D70 + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + ldrb r1, [r5, #2] + cmp r1, #0x18 + bhi _080F4D78 + ldr r1, _080F4D74 + movs r0, #0xc + strb r0, [r1] + b _080F4DF4 + .align 2, 0 +_080F4D70: .4byte 0x02021C40 +_080F4D74: .4byte 0x02039CFC +_080F4D78: + cmp r1, #0x31 + bhi _080F4D88 + ldr r1, _080F4D84 + movs r0, #0xb + strb r0, [r1] + b _080F4DF4 + .align 2, 0 +_080F4D84: .4byte 0x02039CFC +_080F4D88: + cmp r1, #0x45 + bhi _080F4D98 + ldr r1, _080F4D94 + movs r0, #0xa + strb r0, [r1] + b _080F4DF4 + .align 2, 0 +_080F4D94: .4byte 0x02039CFC +_080F4D98: + ldr r1, _080F4DA0 + movs r0, #9 + strb r0, [r1] + b _080F4DF4 + .align 2, 0 +_080F4DA0: .4byte 0x02039CFC +_080F4DA4: + ldr r0, _080F4DD8 + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + ldr r0, _080F4DDC + ldrh r2, [r5, #8] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F4DE0 + adds r1, r1, r2 + bl StringCopy + ldr r0, _080F4DE4 + ldrh r1, [r5, #0xa] + lsls r1, r1, #3 + ldr r2, _080F4DE8 + adds r1, r1, r2 + bl StringCopy + ldr r1, _080F4DEC + movs r0, #0xd + strb r0, [r1] + b _080F4DF4 + .align 2, 0 +_080F4DD8: .4byte 0x02021C40 +_080F4DDC: .4byte 0x02021C54 +_080F4DE0: .4byte 0x082EA31C +_080F4DE4: .4byte 0x02021C68 +_080F4DE8: .4byte 0x082EACC4 +_080F4DEC: .4byte 0x02039CFC +_080F4DF0: + bl TVShowDone +_080F4DF4: + ldr r0, _080F4E08 + lsls r1, r6, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080F4E08: .4byte 0x08568F08 + thumb_func_end DoTVShowSecretBaseVisit + + thumb_func_start DoTVShowPokemonLotteryWinnerFlashReport +DoTVShowPokemonLotteryWinnerFlashReport: @ 0x080F4E0C + push {r4, r5, r6, lr} + ldr r2, _080F4E48 + ldr r0, _080F4E4C + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080F4E50 + adds r0, r0, r1 + ldr r1, [r2] + adds r5, r1, r0 + ldr r1, _080F4E54 + movs r0, #0 + strh r0, [r1] + ldr r0, _080F4E58 + ldrb r6, [r0] + ldr r0, _080F4E5C + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + ldrb r0, [r5, #4] + cmp r0, #0 + bne _080F4E68 + ldr r0, _080F4E60 + ldr r1, _080F4E64 + bl StringCopy + b _080F4E70 + .align 2, 0 +_080F4E48: .4byte 0x03005AEC +_080F4E4C: .4byte 0x02037280 +_080F4E50: .4byte 0x000027CC +_080F4E54: .4byte 0x02037290 +_080F4E58: .4byte 0x02039CFC +_080F4E5C: .4byte 0x02021C40 +_080F4E60: .4byte 0x02021C54 +_080F4E64: .4byte 0x085CBFEC +_080F4E68: + ldrb r1, [r5, #4] + movs r0, #1 + bl TV_PrintIntToStringVar +_080F4E70: + ldr r4, _080F4E98 + ldrh r0, [r5, #2] + bl ItemId_GetName + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCopy + bl TVShowDone + ldr r1, _080F4E9C + lsls r0, r6, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl ShowFieldMessage + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080F4E98: .4byte 0x02021C68 +_080F4E9C: .4byte 0x08568F40 + thumb_func_end DoTVShowPokemonLotteryWinnerFlashReport + + thumb_func_start DoTVShowThePokemonBattleSeminar +DoTVShowThePokemonBattleSeminar: @ 0x080F4EA0 + push {r4, r5, r6, lr} + ldr r2, _080F4ED0 + ldr r0, _080F4ED4 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080F4ED8 + adds r0, r0, r1 + ldr r1, [r2] + adds r5, r1, r0 + ldr r1, _080F4EDC + movs r0, #0 + strh r0, [r1] + ldr r0, _080F4EE0 + ldrb r6, [r0] + cmp r6, #6 + bls _080F4EC6 + b _080F508A +_080F4EC6: + lsls r0, r6, #2 + ldr r1, _080F4EE4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F4ED0: .4byte 0x03005AEC +_080F4ED4: .4byte 0x02037280 +_080F4ED8: .4byte 0x000027CC +_080F4EDC: .4byte 0x02037290 +_080F4EE0: .4byte 0x02039CFC +_080F4EE4: .4byte 0x080F4EE8 +_080F4EE8: @ jump table + .4byte _080F4F04 @ case 0 + .4byte _080F4F4C @ case 1 + .4byte _080F4F98 @ case 2 + .4byte _080F4FF0 @ case 3 + .4byte _080F5024 @ case 4 + .4byte _080F5048 @ case 5 + .4byte _080F506C @ case 6 +_080F4F04: + ldr r0, _080F4F38 + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + ldr r0, _080F4F3C + ldrh r2, [r5, #6] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r4, _080F4F40 + adds r1, r1, r4 + bl StringCopy + ldr r0, _080F4F44 + ldrh r2, [r5, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + adds r1, r1, r4 + bl StringCopy + ldr r1, _080F4F48 + movs r0, #1 + strb r0, [r1] + b _080F508A + .align 2, 0 +_080F4F38: .4byte 0x02021C40 +_080F4F3C: .4byte 0x02021C54 +_080F4F40: .4byte 0x082EA31C +_080F4F44: .4byte 0x02021C68 +_080F4F48: .4byte 0x02039CFC +_080F4F4C: + ldr r0, _080F4F80 + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + ldr r0, _080F4F84 + ldrh r2, [r5, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F4F88 + adds r1, r1, r2 + bl StringCopy + ldr r0, _080F4F8C + ldrh r1, [r5, #2] + lsls r1, r1, #3 + ldr r2, _080F4F90 + adds r1, r1, r2 + bl StringCopy + ldr r1, _080F4F94 + movs r0, #2 + strb r0, [r1] + b _080F508A + .align 2, 0 +_080F4F80: .4byte 0x02021C40 +_080F4F84: .4byte 0x02021C54 +_080F4F88: .4byte 0x082EA31C +_080F4F8C: .4byte 0x02021C68 +_080F4F90: .4byte 0x082EACC4 +_080F4F94: .4byte 0x02039CFC +_080F4F98: + ldr r0, _080F4FBC + ldrh r2, [r5, #6] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F4FC0 + adds r1, r1, r2 + bl StringCopy + ldrb r1, [r5, #0x10] + cmp r1, #2 + beq _080F4FD8 + cmp r1, #2 + bgt _080F4FC4 + cmp r1, #1 + beq _080F4FCA + b _080F5056 + .align 2, 0 +_080F4FBC: .4byte 0x02021C40 +_080F4FC0: .4byte 0x082EA31C +_080F4FC4: + cmp r1, #3 + beq _080F4FE4 + b _080F5056 +_080F4FCA: + ldr r1, _080F4FD4 + movs r0, #5 + strb r0, [r1] + b _080F508A + .align 2, 0 +_080F4FD4: .4byte 0x02039CFC +_080F4FD8: + ldr r1, _080F4FE0 + movs r0, #4 + strb r0, [r1] + b _080F508A + .align 2, 0 +_080F4FE0: .4byte 0x02039CFC +_080F4FE4: + ldr r0, _080F4FEC + strb r1, [r0] + b _080F508A + .align 2, 0 +_080F4FEC: .4byte 0x02039CFC +_080F4FF0: + ldr r0, _080F5014 + ldrh r1, [r5, #8] + lsls r1, r1, #3 + ldr r4, _080F5018 + adds r1, r1, r4 + bl StringCopy + ldr r0, _080F501C + ldrh r1, [r5, #0xa] + lsls r1, r1, #3 + adds r1, r1, r4 + bl StringCopy + ldr r0, _080F5020 + ldrh r1, [r5, #0xc] + lsls r1, r1, #3 + adds r1, r1, r4 + b _080F5052 + .align 2, 0 +_080F5014: .4byte 0x02021C40 +_080F5018: .4byte 0x082EACC4 +_080F501C: .4byte 0x02021C54 +_080F5020: .4byte 0x02021C68 +_080F5024: + ldr r0, _080F503C + ldrh r1, [r5, #8] + lsls r1, r1, #3 + ldr r4, _080F5040 + adds r1, r1, r4 + bl StringCopy + ldr r0, _080F5044 + ldrh r1, [r5, #0xa] + lsls r1, r1, #3 + adds r1, r1, r4 + b _080F5052 + .align 2, 0 +_080F503C: .4byte 0x02021C40 +_080F5040: .4byte 0x082EACC4 +_080F5044: .4byte 0x02021C54 +_080F5048: + ldr r0, _080F5060 + ldrh r1, [r5, #8] + lsls r1, r1, #3 + ldr r2, _080F5064 + adds r1, r1, r2 +_080F5052: + bl StringCopy +_080F5056: + ldr r1, _080F5068 + movs r0, #6 + strb r0, [r1] + b _080F508A + .align 2, 0 +_080F5060: .4byte 0x02021C54 +_080F5064: .4byte 0x082EACC4 +_080F5068: .4byte 0x02039CFC +_080F506C: + ldr r0, _080F509C + ldrh r1, [r5, #0xe] + lsls r1, r1, #3 + ldr r4, _080F50A0 + adds r1, r1, r4 + bl StringCopy + ldr r0, _080F50A4 + ldrh r1, [r5, #2] + lsls r1, r1, #3 + adds r1, r1, r4 + bl StringCopy + bl TVShowDone +_080F508A: + ldr r0, _080F50A8 + lsls r1, r6, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080F509C: .4byte 0x02021C40 +_080F50A0: .4byte 0x082EACC4 +_080F50A4: .4byte 0x02021C54 +_080F50A8: .4byte 0x08568F44 + thumb_func_end DoTVShowThePokemonBattleSeminar + + thumb_func_start DoTVShowTrainerFanClubSpecial +DoTVShowTrainerFanClubSpecial: @ 0x080F50AC + push {r4, r5, lr} + ldr r2, _080F50DC + ldr r0, _080F50E0 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080F50E4 + adds r0, r0, r1 + ldr r1, [r2] + adds r4, r1, r0 + ldr r1, _080F50E8 + movs r0, #0 + strh r0, [r1] + ldr r0, _080F50EC + ldrb r5, [r0] + cmp r5, #5 + bls _080F50D2 + b _080F51BE +_080F50D2: + lsls r0, r5, #2 + ldr r1, _080F50F0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F50DC: .4byte 0x03005AEC +_080F50E0: .4byte 0x02037280 +_080F50E4: .4byte 0x000027CC +_080F50E8: .4byte 0x02037290 +_080F50EC: .4byte 0x02039CFC +_080F50F0: .4byte 0x080F50F4 +_080F50F4: @ jump table + .4byte _080F510C @ case 0 + .4byte _080F5170 @ case 1 + .4byte _080F5170 @ case 2 + .4byte _080F5170 @ case 3 + .4byte _080F5170 @ case 4 + .4byte _080F51A0 @ case 5 +_080F510C: + ldr r0, _080F5134 + adds r1, r4, #0 + adds r1, #0xc + bl StringCopy + ldr r0, _080F5138 + adds r1, r4, #2 + bl StringCopy + ldr r0, _080F513C + ldrh r1, [r4, #0x14] + bl CopyEasyChatWord + ldrb r1, [r4, #0x16] + cmp r1, #0x59 + bls _080F5144 + ldr r1, _080F5140 + movs r0, #1 + strb r0, [r1] + b _080F51BE + .align 2, 0 +_080F5134: .4byte 0x02021C40 +_080F5138: .4byte 0x02021C54 +_080F513C: .4byte 0x02021C68 +_080F5140: .4byte 0x02039CFC +_080F5144: + cmp r1, #0x45 + bls _080F5154 + ldr r1, _080F5150 + movs r0, #2 + strb r0, [r1] + b _080F51BE + .align 2, 0 +_080F5150: .4byte 0x02039CFC +_080F5154: + cmp r1, #0x1d + bls _080F5164 + ldr r1, _080F5160 + movs r0, #3 + strb r0, [r1] + b _080F51BE + .align 2, 0 +_080F5160: .4byte 0x02039CFC +_080F5164: + ldr r1, _080F516C + movs r0, #4 + strb r0, [r1] + b _080F51BE + .align 2, 0 +_080F516C: .4byte 0x02039CFC +_080F5170: + ldr r0, _080F5194 + adds r1, r4, #0 + adds r1, #0xc + bl StringCopy + ldr r0, _080F5198 + adds r1, r4, #2 + bl StringCopy + ldrb r1, [r4, #0x16] + movs r0, #2 + bl TV_PrintIntToStringVar + ldr r1, _080F519C + movs r0, #5 + strb r0, [r1] + b _080F51BE + .align 2, 0 +_080F5194: .4byte 0x02021C40 +_080F5198: .4byte 0x02021C54 +_080F519C: .4byte 0x02039CFC +_080F51A0: + ldr r0, _080F51D0 + adds r1, r4, #0 + adds r1, #0xc + bl StringCopy + ldr r0, _080F51D4 + adds r1, r4, #2 + bl StringCopy + ldr r0, _080F51D8 + ldrh r1, [r4, #0x14] + bl CopyEasyChatWord + bl TVShowDone +_080F51BE: + ldr r0, _080F51DC + lsls r1, r5, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080F51D0: .4byte 0x02021C40 +_080F51D4: .4byte 0x02021C54 +_080F51D8: .4byte 0x02021C68 +_080F51DC: .4byte 0x08568DCC + thumb_func_end DoTVShowTrainerFanClubSpecial + + thumb_func_start DoTVShowTrainerFanClub +DoTVShowTrainerFanClub: @ 0x080F51E0 + push {r4, r5, lr} + ldr r2, _080F5214 + ldr r0, _080F5218 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080F521C + adds r0, r0, r1 + ldr r1, [r2] + adds r4, r1, r0 + ldr r1, _080F5220 + movs r0, #0 + strh r0, [r1] + ldr r0, _080F5224 + ldrb r5, [r0] + adds r2, r0, #0 + cmp r5, #0xb + bls _080F5208 + b _080F5358 +_080F5208: + lsls r0, r5, #2 + ldr r1, _080F5228 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F5214: .4byte 0x03005AEC +_080F5218: .4byte 0x02037280 +_080F521C: .4byte 0x000027CC +_080F5220: .4byte 0x02037290 +_080F5224: .4byte 0x02039CFC +_080F5228: .4byte 0x080F522C +_080F522C: @ jump table + .4byte _080F525C @ case 0 + .4byte _080F5334 @ case 1 + .4byte _080F5334 @ case 2 + .4byte _080F5334 @ case 3 + .4byte _080F5334 @ case 4 + .4byte _080F5334 @ case 5 + .4byte _080F5334 @ case 6 + .4byte _080F5334 @ case 7 + .4byte _080F5334 @ case 8 + .4byte _080F5334 @ case 9 + .4byte _080F5334 @ case 10 + .4byte _080F533A @ case 11 +_080F525C: + ldr r0, _080F528C + adds r1, r4, #0 + adds r1, #0x13 + bl StringCopy + adds r0, r4, #0 + adds r0, #0x23 + ldrb r0, [r0] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x22 + ldrb r1, [r1] + adds r0, r0, r1 + movs r1, #0xa + bl __umodsi3 + cmp r0, #9 + bls _080F5282 + b _080F5358 +_080F5282: + lsls r0, r0, #2 + ldr r1, _080F5290 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F528C: .4byte 0x02021C40 +_080F5290: .4byte 0x080F5294 +_080F5294: @ jump table + .4byte _080F52BC @ case 0 + .4byte _080F52C8 @ case 1 + .4byte _080F52D4 @ case 2 + .4byte _080F52E0 @ case 3 + .4byte _080F52EC @ case 4 + .4byte _080F52F8 @ case 5 + .4byte _080F5304 @ case 6 + .4byte _080F5310 @ case 7 + .4byte _080F531C @ case 8 + .4byte _080F5328 @ case 9 +_080F52BC: + ldr r1, _080F52C4 + movs r0, #1 + strb r0, [r1] + b _080F5358 + .align 2, 0 +_080F52C4: .4byte 0x02039CFC +_080F52C8: + ldr r1, _080F52D0 + movs r0, #2 + strb r0, [r1] + b _080F5358 + .align 2, 0 +_080F52D0: .4byte 0x02039CFC +_080F52D4: + ldr r1, _080F52DC + movs r0, #3 + strb r0, [r1] + b _080F5358 + .align 2, 0 +_080F52DC: .4byte 0x02039CFC +_080F52E0: + ldr r1, _080F52E8 + movs r0, #4 + strb r0, [r1] + b _080F5358 + .align 2, 0 +_080F52E8: .4byte 0x02039CFC +_080F52EC: + ldr r1, _080F52F4 + movs r0, #5 + strb r0, [r1] + b _080F5358 + .align 2, 0 +_080F52F4: .4byte 0x02039CFC +_080F52F8: + ldr r1, _080F5300 + movs r0, #6 + strb r0, [r1] + b _080F5358 + .align 2, 0 +_080F5300: .4byte 0x02039CFC +_080F5304: + ldr r1, _080F530C + movs r0, #7 + strb r0, [r1] + b _080F5358 + .align 2, 0 +_080F530C: .4byte 0x02039CFC +_080F5310: + ldr r1, _080F5318 + movs r0, #8 + strb r0, [r1] + b _080F5358 + .align 2, 0 +_080F5318: .4byte 0x02039CFC +_080F531C: + ldr r1, _080F5324 + movs r0, #9 + strb r0, [r1] + b _080F5358 + .align 2, 0 +_080F5324: .4byte 0x02039CFC +_080F5328: + ldr r1, _080F5330 + movs r0, #0xa + strb r0, [r1] + b _080F5358 + .align 2, 0 +_080F5330: .4byte 0x02039CFC +_080F5334: + movs r0, #0xb + strb r0, [r2] + b _080F5358 +_080F533A: + ldr r0, _080F536C + adds r1, r4, #0 + adds r1, #0x13 + bl StringCopy + ldr r0, _080F5370 + ldrh r1, [r4, #4] + bl CopyEasyChatWord + ldr r0, _080F5374 + ldrh r1, [r4, #6] + bl CopyEasyChatWord + bl TVShowDone +_080F5358: + ldr r0, _080F5378 + lsls r1, r5, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080F536C: .4byte 0x02021C40 +_080F5370: .4byte 0x02021C54 +_080F5374: .4byte 0x02021C68 +_080F5378: .4byte 0x08568F60 + thumb_func_end DoTVShowTrainerFanClub + + thumb_func_start DoTVShowSpotTheCuties +DoTVShowSpotTheCuties: @ 0x080F537C + push {r4, r5, lr} + ldr r2, _080F53AC + ldr r0, _080F53B0 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080F53B4 + adds r0, r0, r1 + ldr r1, [r2] + adds r4, r1, r0 + ldr r1, _080F53B8 + movs r0, #0 + strh r0, [r1] + ldr r0, _080F53BC + ldrb r5, [r0] + cmp r5, #0xf + bls _080F53A2 + b _080F5598 +_080F53A2: + lsls r0, r5, #2 + ldr r1, _080F53C0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F53AC: .4byte 0x03005AEC +_080F53B0: .4byte 0x02037280 +_080F53B4: .4byte 0x000027CC +_080F53B8: .4byte 0x02037290 +_080F53BC: .4byte 0x02039CFC +_080F53C0: .4byte 0x080F53C4 +_080F53C4: @ jump table + .4byte _080F5404 @ case 0 + .4byte _080F544C @ case 1 + .4byte _080F544C @ case 2 + .4byte _080F544C @ case 3 + .4byte _080F547C @ case 4 + .4byte _080F557C @ case 5 + .4byte _080F557C @ case 6 + .4byte _080F557C @ case 7 + .4byte _080F557C @ case 8 + .4byte _080F557C @ case 9 + .4byte _080F557C @ case 10 + .4byte _080F557C @ case 11 + .4byte _080F557C @ case 12 + .4byte _080F557C @ case 13 + .4byte _080F557C @ case 14 + .4byte _080F5594 @ case 15 +_080F5404: + ldr r0, _080F5424 + adds r1, r4, #0 + adds r1, #0x13 + bl StringCopy + ldr r0, _080F5428 + adds r1, r4, #4 + bl StringCopy + ldrb r1, [r4, #2] + cmp r1, #9 + bhi _080F5430 + ldr r1, _080F542C + movs r0, #1 + strb r0, [r1] + b _080F5598 + .align 2, 0 +_080F5424: .4byte 0x02021C40 +_080F5428: .4byte 0x02021C54 +_080F542C: .4byte 0x02039CFC +_080F5430: + cmp r1, #0x13 + bhi _080F5440 + ldr r1, _080F543C + movs r0, #2 + strb r0, [r1] + b _080F5598 + .align 2, 0 +_080F543C: .4byte 0x02039CFC +_080F5440: + ldr r1, _080F5448 + movs r0, #3 + strb r0, [r1] + b _080F5598 + .align 2, 0 +_080F5448: .4byte 0x02039CFC +_080F544C: + ldr r0, _080F5470 + adds r1, r4, #0 + adds r1, #0x13 + bl StringCopy + ldr r0, _080F5474 + adds r1, r4, #4 + bl StringCopy + ldrb r1, [r4, #2] + movs r0, #2 + bl TV_PrintIntToStringVar + ldr r1, _080F5478 + movs r0, #4 + strb r0, [r1] + b _080F5598 + .align 2, 0 +_080F5470: .4byte 0x02021C40 +_080F5474: .4byte 0x02021C54 +_080F5478: .4byte 0x02039CFC +_080F547C: + ldr r0, _080F5498 + adds r1, r4, #4 + bl StringCopy + ldrb r0, [r4, #3] + cmp r0, #0x18 + bls _080F548C + b _080F5598 +_080F548C: + lsls r0, r0, #2 + ldr r1, _080F549C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F5498: .4byte 0x02021C54 +_080F549C: .4byte 0x080F54A0 +_080F54A0: @ jump table + .4byte _080F5504 @ case 0 + .4byte _080F5510 @ case 1 + .4byte _080F5510 @ case 2 + .4byte _080F5510 @ case 3 + .4byte _080F5510 @ case 4 + .4byte _080F551C @ case 5 + .4byte _080F551C @ case 6 + .4byte _080F551C @ case 7 + .4byte _080F551C @ case 8 + .4byte _080F5528 @ case 9 + .4byte _080F5528 @ case 10 + .4byte _080F5528 @ case 11 + .4byte _080F5528 @ case 12 + .4byte _080F5534 @ case 13 + .4byte _080F5534 @ case 14 + .4byte _080F5534 @ case 15 + .4byte _080F5534 @ case 16 + .4byte _080F5540 @ case 17 + .4byte _080F5540 @ case 18 + .4byte _080F5540 @ case 19 + .4byte _080F5540 @ case 20 + .4byte _080F554C @ case 21 + .4byte _080F5558 @ case 22 + .4byte _080F5564 @ case 23 + .4byte _080F5570 @ case 24 +_080F5504: + ldr r1, _080F550C + movs r0, #5 + strb r0, [r1] + b _080F5598 + .align 2, 0 +_080F550C: .4byte 0x02039CFC +_080F5510: + ldr r1, _080F5518 + movs r0, #6 + strb r0, [r1] + b _080F5598 + .align 2, 0 +_080F5518: .4byte 0x02039CFC +_080F551C: + ldr r1, _080F5524 + movs r0, #7 + strb r0, [r1] + b _080F5598 + .align 2, 0 +_080F5524: .4byte 0x02039CFC +_080F5528: + ldr r1, _080F5530 + movs r0, #8 + strb r0, [r1] + b _080F5598 + .align 2, 0 +_080F5530: .4byte 0x02039CFC +_080F5534: + ldr r1, _080F553C + movs r0, #9 + strb r0, [r1] + b _080F5598 + .align 2, 0 +_080F553C: .4byte 0x02039CFC +_080F5540: + ldr r1, _080F5548 + movs r0, #0xa + strb r0, [r1] + b _080F5598 + .align 2, 0 +_080F5548: .4byte 0x02039CFC +_080F554C: + ldr r1, _080F5554 + movs r0, #0xb + strb r0, [r1] + b _080F5598 + .align 2, 0 +_080F5554: .4byte 0x02039CFC +_080F5558: + ldr r1, _080F5560 + movs r0, #0xc + strb r0, [r1] + b _080F5598 + .align 2, 0 +_080F5560: .4byte 0x02039CFC +_080F5564: + ldr r1, _080F556C + movs r0, #0xd + strb r0, [r1] + b _080F5598 + .align 2, 0 +_080F556C: .4byte 0x02039CFC +_080F5570: + ldr r1, _080F5578 + movs r0, #0xe + strb r0, [r1] + b _080F5598 + .align 2, 0 +_080F5578: .4byte 0x02039CFC +_080F557C: + ldr r0, _080F558C + adds r1, r4, #4 + bl StringCopy + ldr r1, _080F5590 + movs r0, #0xf + strb r0, [r1] + b _080F5598 + .align 2, 0 +_080F558C: .4byte 0x02021C54 +_080F5590: .4byte 0x02039CFC +_080F5594: + bl TVShowDone +_080F5598: + ldr r0, _080F55AC + lsls r1, r5, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080F55AC: .4byte 0x08568F90 + thumb_func_end DoTVShowSpotTheCuties + + thumb_func_start DoTVShowPokemonNewsBattleFrontier +DoTVShowPokemonNewsBattleFrontier: @ 0x080F55B0 + push {r4, r5, r6, lr} + ldr r2, _080F55E4 + ldr r0, _080F55E8 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080F55EC + adds r0, r0, r1 + ldr r1, [r2] + adds r5, r1, r0 + ldr r1, _080F55F0 + movs r0, #0 + strh r0, [r1] + ldr r0, _080F55F4 + ldrb r6, [r0] + adds r2, r0, #0 + cmp r6, #0x12 + bls _080F55D8 + b _080F583E +_080F55D8: + lsls r0, r6, #2 + ldr r1, _080F55F8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F55E4: .4byte 0x03005AEC +_080F55E8: .4byte 0x02037280 +_080F55EC: .4byte 0x000027CC +_080F55F0: .4byte 0x02037290 +_080F55F4: .4byte 0x02039CFC +_080F55F8: .4byte 0x080F55FC +_080F55FC: @ jump table + .4byte _080F5648 @ case 0 + .4byte _080F5728 @ case 1 + .4byte _080F56E2 @ case 2 + .4byte _080F5704 @ case 3 + .4byte _080F5704 @ case 4 + .4byte _080F5728 @ case 5 + .4byte _080F5728 @ case 6 + .4byte _080F5728 @ case 7 + .4byte _080F5728 @ case 8 + .4byte _080F5728 @ case 9 + .4byte _080F5728 @ case 10 + .4byte _080F5728 @ case 11 + .4byte _080F5728 @ case 12 + .4byte _080F5728 @ case 13 + .4byte _080F574C @ case 14 + .4byte _080F578C @ case 15 + .4byte _080F57B8 @ case 16 + .4byte _080F5808 @ case 17 + .4byte _080F5830 @ case 18 +_080F5648: + ldrb r0, [r5, #0xd] + subs r0, #1 + cmp r0, #0xc + bls _080F5652 + b _080F583E +_080F5652: + lsls r0, r0, #2 + ldr r1, _080F565C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F565C: .4byte 0x080F5660 +_080F5660: @ jump table + .4byte _080F5694 @ case 0 + .4byte _080F569A @ case 1 + .4byte _080F56A0 @ case 2 + .4byte _080F56A6 @ case 3 + .4byte _080F56AC @ case 4 + .4byte _080F56B2 @ case 5 + .4byte _080F56B8 @ case 6 + .4byte _080F56BE @ case 7 + .4byte _080F56C4 @ case 8 + .4byte _080F56CA @ case 9 + .4byte _080F56D0 @ case 10 + .4byte _080F56D6 @ case 11 + .4byte _080F56DC @ case 12 +_080F5694: + movs r0, #1 + strb r0, [r2] + b _080F583E +_080F569A: + movs r0, #2 + strb r0, [r2] + b _080F583E +_080F56A0: + movs r0, #3 + strb r0, [r2] + b _080F583E +_080F56A6: + movs r0, #4 + strb r0, [r2] + b _080F583E +_080F56AC: + movs r0, #5 + strb r0, [r2] + b _080F583E +_080F56B2: + movs r0, #6 + strb r0, [r2] + b _080F583E +_080F56B8: + movs r0, #7 + strb r0, [r2] + b _080F583E +_080F56BE: + movs r0, #8 + strb r0, [r2] + b _080F583E +_080F56C4: + movs r0, #9 + strb r0, [r2] + b _080F583E +_080F56CA: + movs r0, #0xa + strb r0, [r2] + b _080F583E +_080F56D0: + movs r0, #0xb + strb r0, [r2] + b _080F583E +_080F56D6: + movs r0, #0xc + strb r0, [r2] + b _080F583E +_080F56DC: + movs r0, #0xd + strb r0, [r2] + b _080F583E +_080F56E2: + ldr r0, _080F56FC + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + ldrh r1, [r5, #2] + movs r0, #1 + bl TV_PrintIntToStringVar + ldr r1, _080F5700 + movs r0, #0x10 + strb r0, [r1] + b _080F583E + .align 2, 0 +_080F56FC: .4byte 0x02021C40 +_080F5700: .4byte 0x02039CFC +_080F5704: + ldr r0, _080F5720 + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + ldrh r1, [r5, #2] + movs r0, #1 + bl TV_PrintIntToStringVar + ldr r1, _080F5724 + movs r0, #0xf + strb r0, [r1] + b _080F583E + .align 2, 0 +_080F5720: .4byte 0x02021C40 +_080F5724: .4byte 0x02039CFC +_080F5728: + ldr r0, _080F5744 + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + ldrh r1, [r5, #2] + movs r0, #1 + bl TV_PrintIntToStringVar + ldr r1, _080F5748 + movs r0, #0xe + strb r0, [r1] + b _080F583E + .align 2, 0 +_080F5744: .4byte 0x02021C40 +_080F5748: .4byte 0x02039CFC +_080F574C: + ldr r0, _080F577C + ldrh r2, [r5, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r4, _080F5780 + adds r1, r1, r4 + bl StringCopy + ldr r0, _080F5784 + ldrh r2, [r5, #6] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + adds r1, r1, r4 + bl StringCopy + ldr r0, _080F5788 + ldrh r2, [r5, #8] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + adds r1, r1, r4 + b _080F5816 + .align 2, 0 +_080F577C: .4byte 0x02021C40 +_080F5780: .4byte 0x082EA31C +_080F5784: .4byte 0x02021C54 +_080F5788: .4byte 0x02021C68 +_080F578C: + ldr r0, _080F57AC + ldrh r2, [r5, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r4, _080F57B0 + adds r1, r1, r4 + bl StringCopy + ldr r0, _080F57B4 + ldrh r2, [r5, #6] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + adds r1, r1, r4 + b _080F5816 + .align 2, 0 +_080F57AC: .4byte 0x02021C40 +_080F57B0: .4byte 0x082EA31C +_080F57B4: .4byte 0x02021C54 +_080F57B8: + ldr r0, _080F57F4 + ldrh r2, [r5, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r4, _080F57F8 + adds r1, r1, r4 + bl StringCopy + ldr r0, _080F57FC + ldrh r2, [r5, #6] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + adds r1, r1, r4 + bl StringCopy + ldr r0, _080F5800 + ldrh r2, [r5, #8] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + adds r1, r1, r4 + bl StringCopy + ldr r1, _080F5804 + movs r0, #0x11 + strb r0, [r1] + b _080F583E + .align 2, 0 +_080F57F4: .4byte 0x02021C40 +_080F57F8: .4byte 0x082EA31C +_080F57FC: .4byte 0x02021C54 +_080F5800: .4byte 0x02021C68 +_080F5804: .4byte 0x02039CFC +_080F5808: + ldr r0, _080F5824 + ldrh r2, [r5, #0xa] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080F5828 + adds r1, r1, r2 +_080F5816: + bl StringCopy + ldr r1, _080F582C + movs r0, #0x12 + strb r0, [r1] + b _080F583E + .align 2, 0 +_080F5824: .4byte 0x02021C40 +_080F5828: .4byte 0x082EA31C +_080F582C: .4byte 0x02039CFC +_080F5830: + ldr r0, _080F5850 + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + bl TVShowDone +_080F583E: + ldr r0, _080F5854 + lsls r1, r6, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080F5850: .4byte 0x02021C40 +_080F5854: .4byte 0x08568FD0 + thumb_func_end DoTVShowPokemonNewsBattleFrontier + + thumb_func_start DoTVShowWhatsNo1InHoennToday +DoTVShowWhatsNo1InHoennToday: @ 0x080F5858 + push {r4, r5, lr} + ldr r2, _080F5888 + ldr r0, _080F588C + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080F5890 + adds r0, r0, r1 + ldr r1, [r2] + adds r4, r1, r0 + ldr r1, _080F5894 + movs r0, #0 + strh r0, [r1] + ldr r0, _080F5898 + ldrb r5, [r0] + cmp r5, #8 + bls _080F587E + b _080F598A +_080F587E: + lsls r0, r5, #2 + ldr r1, _080F589C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F5888: .4byte 0x03005AEC +_080F588C: .4byte 0x02037280 +_080F5890: .4byte 0x000027CC +_080F5894: .4byte 0x02037290 +_080F5898: .4byte 0x02039CFC +_080F589C: .4byte 0x080F58A0 +_080F58A0: @ jump table + .4byte _080F58C4 @ case 0 + .4byte _080F5958 @ case 1 + .4byte _080F5958 @ case 2 + .4byte _080F5958 @ case 3 + .4byte _080F5958 @ case 4 + .4byte _080F5958 @ case 5 + .4byte _080F5958 @ case 6 + .4byte _080F5958 @ case 7 + .4byte _080F597C @ case 8 +_080F58C4: + ldr r0, _080F58E0 + adds r1, r4, #0 + adds r1, #0x13 + bl StringCopy + ldrb r0, [r4, #4] + cmp r0, #6 + bhi _080F598A + lsls r0, r0, #2 + ldr r1, _080F58E4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F58E0: .4byte 0x02021C40 +_080F58E4: .4byte 0x080F58E8 +_080F58E8: @ jump table + .4byte _080F5904 @ case 0 + .4byte _080F5910 @ case 1 + .4byte _080F591C @ case 2 + .4byte _080F5928 @ case 3 + .4byte _080F5934 @ case 4 + .4byte _080F5940 @ case 5 + .4byte _080F594C @ case 6 +_080F5904: + ldr r1, _080F590C + movs r0, #1 + strb r0, [r1] + b _080F598A + .align 2, 0 +_080F590C: .4byte 0x02039CFC +_080F5910: + ldr r1, _080F5918 + movs r0, #2 + strb r0, [r1] + b _080F598A + .align 2, 0 +_080F5918: .4byte 0x02039CFC +_080F591C: + ldr r1, _080F5924 + movs r0, #3 + strb r0, [r1] + b _080F598A + .align 2, 0 +_080F5924: .4byte 0x02039CFC +_080F5928: + ldr r1, _080F5930 + movs r0, #4 + strb r0, [r1] + b _080F598A + .align 2, 0 +_080F5930: .4byte 0x02039CFC +_080F5934: + ldr r1, _080F593C + movs r0, #5 + strb r0, [r1] + b _080F598A + .align 2, 0 +_080F593C: .4byte 0x02039CFC +_080F5940: + ldr r1, _080F5948 + movs r0, #6 + strb r0, [r1] + b _080F598A + .align 2, 0 +_080F5948: .4byte 0x02039CFC +_080F594C: + ldr r1, _080F5954 + movs r0, #7 + strb r0, [r1] + b _080F598A + .align 2, 0 +_080F5954: .4byte 0x02039CFC +_080F5958: + ldr r0, _080F5974 + adds r1, r4, #0 + adds r1, #0x13 + bl StringCopy + ldrh r1, [r4, #2] + movs r0, #1 + bl TV_PrintIntToStringVar + ldr r1, _080F5978 + movs r0, #8 + strb r0, [r1] + b _080F598A + .align 2, 0 +_080F5974: .4byte 0x02021C40 +_080F5978: .4byte 0x02039CFC +_080F597C: + ldr r0, _080F599C + adds r1, r4, #0 + adds r1, #0x13 + bl StringCopy + bl TVShowDone +_080F598A: + ldr r0, _080F59A0 + lsls r1, r5, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080F599C: .4byte 0x02021C40 +_080F59A0: .4byte 0x0856901C + thumb_func_end DoTVShowWhatsNo1InHoennToday + + thumb_func_start sub_080F59A4 +sub_080F59A4: @ 0x080F59A4 + push {r4, lr} + movs r1, #0 + movs r2, #0 + ldr r3, [r0, #0xc] + movs r4, #1 +_080F59AE: + adds r0, r3, #0 + lsrs r0, r1 + ands r0, r4 + cmp r0, #0 + beq _080F59BE + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 +_080F59BE: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x1f + bls _080F59AE + adds r0, r2, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_080F59A4 + + thumb_func_start SecretBaseSecrets_GetStateForFlagNumber +SecretBaseSecrets_GetStateForFlagNumber: @ 0x080F59D0 + push {r4, r5, r6, lr} + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + movs r2, #0 + movs r3, #0 + ldr r1, [r0, #0xc] + movs r5, #1 + ldr r6, _080F59F4 +_080F59E0: + adds r0, r1, #0 + lsrs r0, r2 + ands r0, r5 + cmp r0, #0 + beq _080F59FE + cmp r3, r4 + bne _080F59F8 + adds r0, r2, r6 + ldrb r0, [r0] + b _080F5A0A + .align 2, 0 +_080F59F4: .4byte 0x0856913C +_080F59F8: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 +_080F59FE: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x1f + bls _080F59E0 + movs r0, #0 +_080F5A0A: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end SecretBaseSecrets_GetStateForFlagNumber + + thumb_func_start DoTVShowSecretBaseSecrets +DoTVShowSecretBaseSecrets: @ 0x080F5A10 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r2, _080F5A4C + ldr r0, _080F5A50 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080F5A54 + adds r0, r0, r1 + ldr r1, [r2] + adds r5, r1, r0 + ldr r1, _080F5A58 + movs r0, #0 + strh r0, [r1] + ldr r0, _080F5A5C + ldrb r2, [r0] + mov sb, r2 + adds r2, r0, #0 + mov r0, sb + cmp r0, #0x2b + bls _080F5A42 + b _080F5D36 +_080F5A42: + lsls r0, r0, #2 + ldr r1, _080F5A60 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F5A4C: .4byte 0x03005AEC +_080F5A50: .4byte 0x02037280 +_080F5A54: .4byte 0x000027CC +_080F5A58: .4byte 0x02037290 +_080F5A5C: .4byte 0x02039CFC +_080F5A60: .4byte 0x080F5A64 +_080F5A64: @ jump table + .4byte _080F5B14 @ case 0 + .4byte _080F5B68 @ case 1 + .4byte _080F5BE0 @ case 2 + .4byte _080F5C5C @ case 3 + .4byte _080F5CAC @ case 4 + .4byte _080F5CAC @ case 5 + .4byte _080F5CAC @ case 6 + .4byte _080F5CD4 @ case 7 + .4byte _080F5CF4 @ case 8 + .4byte _080F5CF8 @ case 9 + .4byte _080F5D32 @ case 10 + .4byte _080F5D32 @ case 11 + .4byte _080F5D32 @ case 12 + .4byte _080F5D32 @ case 13 + .4byte _080F5D32 @ case 14 + .4byte _080F5D32 @ case 15 + .4byte _080F5D32 @ case 16 + .4byte _080F5D32 @ case 17 + .4byte _080F5D32 @ case 18 + .4byte _080F5CFC @ case 19 + .4byte _080F5D1C @ case 20 + .4byte _080F5D32 @ case 21 + .4byte _080F5D32 @ case 22 + .4byte _080F5D32 @ case 23 + .4byte _080F5D32 @ case 24 + .4byte _080F5D32 @ case 25 + .4byte _080F5D32 @ case 26 + .4byte _080F5D32 @ case 27 + .4byte _080F5D32 @ case 28 + .4byte _080F5D32 @ case 29 + .4byte _080F5D32 @ case 30 + .4byte _080F5D32 @ case 31 + .4byte _080F5D32 @ case 32 + .4byte _080F5D32 @ case 33 + .4byte _080F5D32 @ case 34 + .4byte _080F5D32 @ case 35 + .4byte _080F5D32 @ case 36 + .4byte _080F5D32 @ case 37 + .4byte _080F5D32 @ case 38 + .4byte _080F5D32 @ case 39 + .4byte _080F5D32 @ case 40 + .4byte _080F5D32 @ case 41 + .4byte _080F5D32 @ case 42 + .4byte _080F5D32 @ case 43 +_080F5B14: + ldr r0, _080F5B3C + adds r1, r5, #4 + bl StringCopy + ldr r0, _080F5B40 + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + adds r0, r5, #0 + bl sub_080F59A4 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + bne _080F5B48 + ldr r1, _080F5B44 + movs r0, #8 + strb r0, [r1] + b _080F5D36 + .align 2, 0 +_080F5B3C: .4byte 0x02021C40 +_080F5B40: .4byte 0x02021C54 +_080F5B44: .4byte 0x02039CFC +_080F5B48: + movs r0, #1 + strb r0, [r5, #0x12] + bl Random + ldr r4, _080F5B64 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r6, #0 + bl __modsi3 + strb r0, [r4] + ldrb r1, [r4] + b _080F5C42 + .align 2, 0 +_080F5B64: .4byte 0x02039CFD +_080F5B68: + ldr r0, _080F5B88 + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + adds r0, r5, #0 + bl sub_080F59A4 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #1 + beq _080F5BF8 + cmp r6, #2 + beq _080F5B8C + movs r4, #0 + b _080F5BA6 + .align 2, 0 +_080F5B88: .4byte 0x02021C54 +_080F5B8C: + strb r6, [r5, #0x12] + ldr r0, _080F5B9C + ldrb r0, [r0] + cmp r0, #0 + bne _080F5BA0 + adds r0, r5, #0 + movs r1, #1 + b _080F5C44 + .align 2, 0 +_080F5B9C: .4byte 0x02039CFD +_080F5BA0: + adds r0, r5, #0 + movs r1, #0 + b _080F5C44 +_080F5BA6: + bl Random + ldr r7, _080F5BD8 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r6, #0 + bl __modsi3 + strb r0, [r7, #1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r7] + cmp r0, r1 + bne _080F5BCE + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, _080F5BDC + cmp r4, r0 + bls _080F5BA6 +_080F5BCE: + movs r0, #2 + strb r0, [r5, #0x12] + ldrb r1, [r7, #1] + b _080F5C42 + .align 2, 0 +_080F5BD8: .4byte 0x02039CFD +_080F5BDC: .4byte 0x0000FFFE +_080F5BE0: + ldr r0, _080F5C00 + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + adds r0, r5, #0 + bl sub_080F59A4 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #2 + bne _080F5C08 +_080F5BF8: + ldr r1, _080F5C04 + movs r0, #9 + strb r0, [r1] + b _080F5D36 + .align 2, 0 +_080F5C00: .4byte 0x02021C54 +_080F5C04: .4byte 0x02039CFC +_080F5C08: + movs r4, #0 + ldr r7, _080F5C50 + ldr r2, _080F5C54 + mov r8, r2 +_080F5C10: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r6, #0 + bl __modsi3 + strb r0, [r7, #2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r7] + cmp r0, r1 + beq _080F5C30 + ldrb r2, [r7, #1] + cmp r0, r2 + bne _080F5C3A +_080F5C30: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, r8 + bls _080F5C10 +_080F5C3A: + movs r0, #3 + strb r0, [r5, #0x12] + ldr r0, _080F5C50 + ldrb r1, [r0, #2] +_080F5C42: + adds r0, r5, #0 +_080F5C44: + bl SecretBaseSecrets_GetStateForFlagNumber + ldr r1, _080F5C58 + strb r0, [r1] + b _080F5D36 + .align 2, 0 +_080F5C50: .4byte 0x02039CFD +_080F5C54: .4byte 0x0000FFFE +_080F5C58: .4byte 0x02039CFC +_080F5C5C: + ldr r0, _080F5C84 + adds r1, r5, #4 + bl StringCopy + ldr r0, _080F5C88 + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + ldrh r1, [r5, #2] + movs r0, #2 + bl TV_PrintIntToStringVar + ldrh r0, [r5, #2] + cmp r0, #0x1e + bhi _080F5C90 + ldr r1, _080F5C8C + movs r0, #4 + strb r0, [r1] + b _080F5D36 + .align 2, 0 +_080F5C84: .4byte 0x02021C40 +_080F5C88: .4byte 0x02021C54 +_080F5C8C: .4byte 0x02039CFC +_080F5C90: + cmp r0, #0x64 + bhi _080F5CA0 + ldr r1, _080F5C9C + movs r0, #5 + strb r0, [r1] + b _080F5D36 + .align 2, 0 +_080F5C9C: .4byte 0x02039CFC +_080F5CA0: + ldr r1, _080F5CA8 + movs r0, #6 + strb r0, [r1] + b _080F5D36 + .align 2, 0 +_080F5CA8: .4byte 0x02039CFC +_080F5CAC: + ldr r0, _080F5CC8 + adds r1, r5, #4 + bl StringCopy + ldr r0, _080F5CCC + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + ldr r1, _080F5CD0 + movs r0, #7 + strb r0, [r1] + b _080F5D36 + .align 2, 0 +_080F5CC8: .4byte 0x02021C40 +_080F5CCC: .4byte 0x02021C54 +_080F5CD0: .4byte 0x02039CFC +_080F5CD4: + ldr r0, _080F5CEC + adds r1, r5, #4 + bl StringCopy + ldr r0, _080F5CF0 + adds r1, r5, #0 + adds r1, #0x13 + bl StringCopy + bl TVShowDone + b _080F5D36 + .align 2, 0 +_080F5CEC: .4byte 0x02021C40 +_080F5CF0: .4byte 0x02021C54 +_080F5CF4: + movs r0, #3 + b _080F5D34 +_080F5CF8: + movs r0, #3 + b _080F5D34 +_080F5CFC: + ldr r4, _080F5D14 + ldrh r0, [r5, #0x10] + bl ItemId_GetName + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCopy + ldr r1, _080F5D18 + ldrb r0, [r5, #0x12] + strb r0, [r1] + b _080F5D36 + .align 2, 0 +_080F5D14: .4byte 0x02021C54 +_080F5D18: .4byte 0x02039CFC +_080F5D1C: + adds r0, r5, #0 + adds r0, #0x22 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080F5D2E + movs r0, #0x16 + b _080F5D34 +_080F5D2E: + movs r0, #0x15 + b _080F5D34 +_080F5D32: + ldrb r0, [r5, #0x12] +_080F5D34: + strb r0, [r2] +_080F5D36: + ldr r0, _080F5D50 + mov r2, sb + lsls r1, r2, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080F5D50: .4byte 0x08569040 + thumb_func_end DoTVShowSecretBaseSecrets + + thumb_func_start DoTVShowSafariFanClub +DoTVShowSafariFanClub: @ 0x080F5D54 + push {r4, r5, lr} + ldr r2, _080F5D88 + ldr r0, _080F5D8C + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080F5D90 + adds r0, r0, r1 + ldr r1, [r2] + adds r4, r1, r0 + ldr r1, _080F5D94 + movs r0, #0 + strh r0, [r1] + ldr r0, _080F5D98 + ldrb r5, [r0] + adds r2, r0, #0 + cmp r5, #0xa + bls _080F5D7C + b _080F5EB8 +_080F5D7C: + lsls r0, r5, #2 + ldr r1, _080F5D9C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F5D88: .4byte 0x03005AEC +_080F5D8C: .4byte 0x02037280 +_080F5D90: .4byte 0x000027CC +_080F5D94: .4byte 0x02037290 +_080F5D98: .4byte 0x02039CFC +_080F5D9C: .4byte 0x080F5DA0 +_080F5DA0: @ jump table + .4byte _080F5DCC @ case 0 + .4byte _080F5DE8 @ case 1 + .4byte _080F5E1C @ case 2 + .4byte _080F5E30 @ case 3 + .4byte _080F5E9A @ case 4 + .4byte _080F5E36 @ case 5 + .4byte _080F5E54 @ case 6 + .4byte _080F5E80 @ case 7 + .4byte _080F5E94 @ case 8 + .4byte _080F5E9A @ case 9 + .4byte _080F5EB4 @ case 10 +_080F5DCC: + ldrb r1, [r4, #2] + cmp r1, #0 + bne _080F5DD8 + movs r0, #6 + strb r0, [r2] + b _080F5EB8 +_080F5DD8: + cmp r1, #3 + bhi _080F5DE2 + movs r0, #5 + strb r0, [r2] + b _080F5EB8 +_080F5DE2: + movs r0, #1 + strb r0, [r2] + b _080F5EB8 +_080F5DE8: + ldr r0, _080F5E08 + adds r1, r4, #0 + adds r1, #0x13 + bl StringCopy + ldrb r1, [r4, #2] + movs r0, #1 + bl TV_PrintIntToStringVar + ldrb r0, [r4, #3] + cmp r0, #0 + bne _080F5E10 + ldr r1, _080F5E0C + movs r0, #3 + strb r0, [r1] + b _080F5EB8 + .align 2, 0 +_080F5E08: .4byte 0x02021C40 +_080F5E0C: .4byte 0x02039CFC +_080F5E10: + ldr r1, _080F5E18 + movs r0, #2 + strb r0, [r1] + b _080F5EB8 + .align 2, 0 +_080F5E18: .4byte 0x02039CFC +_080F5E1C: + ldrb r1, [r4, #3] + movs r0, #1 + bl TV_PrintIntToStringVar + ldr r1, _080F5E2C + movs r0, #4 + strb r0, [r1] + b _080F5EB8 + .align 2, 0 +_080F5E2C: .4byte 0x02039CFC +_080F5E30: + movs r0, #4 + strb r0, [r2] + b _080F5EB8 +_080F5E36: + ldr r0, _080F5E50 + adds r1, r4, #0 + adds r1, #0x13 + bl StringCopy + ldrb r1, [r4, #2] + movs r0, #1 + bl TV_PrintIntToStringVar + ldrb r0, [r4, #3] + cmp r0, #0 + beq _080F5E64 + b _080F5E74 + .align 2, 0 +_080F5E50: .4byte 0x02021C40 +_080F5E54: + ldr r0, _080F5E6C + adds r1, r4, #0 + adds r1, #0x13 + bl StringCopy + ldrb r0, [r4, #3] + cmp r0, #0 + bne _080F5E74 +_080F5E64: + ldr r1, _080F5E70 + movs r0, #8 + strb r0, [r1] + b _080F5EB8 + .align 2, 0 +_080F5E6C: .4byte 0x02021C40 +_080F5E70: .4byte 0x02039CFC +_080F5E74: + ldr r1, _080F5E7C + movs r0, #7 + strb r0, [r1] + b _080F5EB8 + .align 2, 0 +_080F5E7C: .4byte 0x02039CFC +_080F5E80: + ldrb r1, [r4, #3] + movs r0, #1 + bl TV_PrintIntToStringVar + ldr r1, _080F5E90 + movs r0, #9 + strb r0, [r1] + b _080F5EB8 + .align 2, 0 +_080F5E90: .4byte 0x02039CFC +_080F5E94: + movs r0, #9 + strb r0, [r2] + b _080F5EB8 +_080F5E9A: + ldr r0, _080F5EAC + adds r1, r4, #0 + adds r1, #0x13 + bl StringCopy + ldr r1, _080F5EB0 + movs r0, #0xa + strb r0, [r1] + b _080F5EB8 + .align 2, 0 +_080F5EAC: .4byte 0x02021C40 +_080F5EB0: .4byte 0x02039CFC +_080F5EB4: + bl TVShowDone +_080F5EB8: + ldr r0, _080F5ECC + lsls r1, r5, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080F5ECC: .4byte 0x085690EC + thumb_func_end DoTVShowSafariFanClub + + thumb_func_start DoTVShowPokemonContestLiveUpdates2 +DoTVShowPokemonContestLiveUpdates2: @ 0x080F5ED0 + push {r4, r5, r6, lr} + ldr r2, _080F5F00 + ldr r0, _080F5F04 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080F5F08 + adds r0, r0, r1 + ldr r1, [r2] + adds r4, r1, r0 + ldr r1, _080F5F0C + movs r0, #0 + strh r0, [r1] + ldr r6, _080F5F10 + ldrb r5, [r6] + cmp r5, #2 + bgt _080F5F14 + cmp r5, #1 + bge _080F5F40 + cmp r5, #0 + beq _080F5F1A + b _080F5F56 + .align 2, 0 +_080F5F00: .4byte 0x03005AEC +_080F5F04: .4byte 0x02037280 +_080F5F08: .4byte 0x000027CC +_080F5F0C: .4byte 0x02037290 +_080F5F10: .4byte 0x02039CFC +_080F5F14: + cmp r5, #3 + beq _080F5F48 + b _080F5F56 +_080F5F1A: + ldr r0, _080F5F2C + ldrb r1, [r4, #0xa] + bl sub_0818E4C4 + ldrb r1, [r4, #0x16] + cmp r1, #1 + bne _080F5F30 + strb r1, [r6] + b _080F5F56 + .align 2, 0 +_080F5F2C: .4byte 0x02021C40 +_080F5F30: + cmp r1, #0 + bne _080F5F3A + movs r0, #2 + strb r0, [r6] + b _080F5F56 +_080F5F3A: + movs r0, #3 + strb r0, [r6] + b _080F5F56 +_080F5F40: + ldr r0, _080F5F68 + adds r1, r4, #2 + bl StringCopy7 +_080F5F48: + ldr r0, _080F5F6C + adds r1, r4, #0 + adds r1, #0xb + bl StringCopy10 + bl TVShowDone +_080F5F56: + ldr r0, _080F5F70 + lsls r1, r5, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080F5F68: .4byte 0x02021C68 +_080F5F6C: .4byte 0x02021C54 +_080F5F70: .4byte 0x08568E30 + thumb_func_end DoTVShowPokemonContestLiveUpdates2 + + thumb_func_start TVShowDone +TVShowDone: @ 0x080F5F74 + ldr r1, _080F5F9C + movs r0, #1 + strh r0, [r1] + ldr r1, _080F5FA0 + movs r0, #0 + strb r0, [r1] + ldr r0, _080F5FA4 + ldr r2, [r0] + ldr r0, _080F5FA8 + ldrh r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, r2, r0 + ldr r0, _080F5FAC + adds r2, r2, r0 + movs r0, #0 + strb r0, [r2] + bx lr + .align 2, 0 +_080F5F9C: .4byte 0x02037290 +_080F5FA0: .4byte 0x02039CFC +_080F5FA4: .4byte 0x03005AEC +_080F5FA8: .4byte 0x02037280 +_080F5FAC: .4byte 0x000027CD + thumb_func_end TVShowDone + + thumb_func_start ResetTVShowState +ResetTVShowState: @ 0x080F5FB0 + ldr r1, _080F5FB8 + movs r0, #0 + strb r0, [r1] + bx lr + .align 2, 0 +_080F5FB8: .4byte 0x02039CFC + thumb_func_end ResetTVShowState + diff --git a/asm/union_room.s b/asm/union_room.s new file mode 100644 index 0000000..80395ff --- /dev/null +++ b/asm/union_room.s @@ -0,0 +1,11361 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start nullsub_14 +nullsub_14: @ 0x08011FD4 + bx lr + .align 2, 0 + thumb_func_end nullsub_14 + + thumb_func_start sub_08011FD8 +sub_08011FD8: @ 0x08011FD8 + push {r4, r5, r6, lr} + sub sp, #8 + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + adds r0, r6, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + lsls r4, r4, #8 + movs r0, #0x90 + lsls r0, r0, #6 + cmp r4, r0 + beq _08012074 + cmp r4, r0 + bgt _08012012 + movs r0, #0x80 + lsls r0, r0, #2 + cmp r4, r0 + beq _08012024 + movs r0, #0x80 + lsls r0, r0, #3 + cmp r4, r0 + beq _08012030 + b _08012092 +_08012012: + movs r0, #0x94 + lsls r0, r0, #6 + cmp r4, r0 + beq _08012040 + movs r0, #0xd4 + lsls r0, r0, #6 + cmp r4, r0 + beq _08012050 + b _08012092 +_08012024: + ldr r1, _0801202C + subs r0, r5, #1 + lsls r0, r0, #2 + b _08012058 + .align 2, 0 +_0801202C: .4byte 0x082C0840 +_08012030: + ldr r1, _0801203C + subs r0, r5, #1 + lsls r0, r0, #2 + adds r1, #0x14 + b _08012058 + .align 2, 0 +_0801203C: .4byte 0x082C0840 +_08012040: + ldr r1, _0801204C + subs r0, r5, #1 + lsls r0, r0, #2 + adds r1, #0x28 + b _08012058 + .align 2, 0 +_0801204C: .4byte 0x082C0840 +_08012050: + ldr r1, _08012070 + subs r0, r5, #1 + lsls r0, r0, #2 + adds r1, #0x3c +_08012058: + adds r0, r0, r1 + ldr r2, [r0] + movs r0, #3 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + adds r0, r6, #0 + movs r1, #1 + movs r3, #2 + bl sub_08016EA4 + b _08012092 + .align 2, 0 +_08012070: .4byte 0x082C0840 +_08012074: + ldr r1, _080120A4 + subs r0, r5, #1 + lsls r0, r0, #2 + adds r1, #0x50 + adds r0, r0, r1 + ldr r2, [r0] + movs r0, #3 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + adds r0, r6, #0 + movs r1, #1 + movs r3, #2 + bl sub_08016EA4 +_08012092: + adds r0, r6, #0 + movs r1, #2 + bl CopyWindowToVram + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080120A4: .4byte 0x082C0840 + thumb_func_end sub_08011FD8 + + thumb_func_start sub_080120A8 +sub_080120A8: @ 0x080120A8 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #0x28 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _0801212C + mov r8, r0 + ldr r1, [r0] + add r0, sp, #8 + movs r2, #5 + bl StringCopyN_Multibyte + movs r0, #3 + str r0, [sp] + movs r1, #0 + mov sb, r1 + str r1, [sp, #4] + adds r0, r4, #0 + movs r1, #1 + add r2, sp, #8 + movs r3, #2 + bl sub_08016EA4 + add r5, sp, #0x1c + ldr r1, _08012130 + adds r0, r5, #0 + bl StringCopy + add r6, sp, #0x10 + mov r1, r8 + ldr r0, [r1] + adds r0, #0xa + bl ReadAsU16 + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r6, #0 + movs r2, #2 + movs r3, #5 + bl ConvertIntToDecimalStringN + adds r0, r5, #0 + adds r1, r6, #0 + bl StringAppend + movs r0, #0x10 + str r0, [sp] + mov r0, sb + str r0, [sp, #4] + adds r0, r4, #0 + movs r1, #1 + adds r2, r5, #0 + movs r3, #2 + bl sub_08016EA4 + add sp, #0x28 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0801212C: .4byte 0x03005AF0 +_08012130: .4byte 0x082C0648 + thumb_func_end sub_080120A8 + + thumb_func_start sub_08012134 +sub_08012134: @ 0x08012134 + push {lr} + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + subs r0, r1, #1 + cmp r0, #0x1b + bhi _080121C8 + lsls r0, r0, #2 + ldr r1, _0801214C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801214C: .4byte 0x08012150 +_08012150: @ jump table + .4byte _080121C0 @ case 0 + .4byte _080121C0 @ case 1 + .4byte _080121C0 @ case 2 + .4byte _080121C0 @ case 3 + .4byte _080121C8 @ case 4 + .4byte _080121C0 @ case 5 + .4byte _080121C0 @ case 6 + .4byte _080121C8 @ case 7 + .4byte _080121C0 @ case 8 + .4byte _080121C0 @ case 9 + .4byte _080121C0 @ case 10 + .4byte _080121C8 @ case 11 + .4byte _080121C8 @ case 12 + .4byte _080121C0 @ case 13 + .4byte _080121C0 @ case 14 + .4byte _080121C0 @ case 15 + .4byte _080121C8 @ case 16 + .4byte _080121C8 @ case 17 + .4byte _080121C8 @ case 18 + .4byte _080121C8 @ case 19 + .4byte _080121C8 @ case 20 + .4byte _080121C8 @ case 21 + .4byte _080121C0 @ case 22 + .4byte _080121C0 @ case 23 + .4byte _080121C0 @ case 24 + .4byte _080121C0 @ case 25 + .4byte _080121C0 @ case 26 + .4byte _080121C0 @ case 27 +_080121C0: + ldr r0, _080121CC + ldr r1, _080121D0 + bl StringExpandPlaceholders +_080121C8: + pop {r0} + bx r0 + .align 2, 0 +_080121CC: .4byte 0x02021C7C +_080121D0: .4byte 0x082C069C + thumb_func_end sub_08012134 + + thumb_func_start sub_080121D4 +sub_080121D4: @ 0x080121D4 + push {lr} + subs r0, #9 + cmp r0, #0x12 + bhi _0801223C + lsls r0, r0, #2 + ldr r1, _080121E8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080121E8: .4byte 0x080121EC +_080121EC: @ jump table + .4byte _08012238 @ case 0 + .4byte _08012238 @ case 1 + .4byte _08012238 @ case 2 + .4byte _0801223C @ case 3 + .4byte _0801223C @ case 4 + .4byte _0801223C @ case 5 + .4byte _08012238 @ case 6 + .4byte _08012238 @ case 7 + .4byte _0801223C @ case 8 + .4byte _0801223C @ case 9 + .4byte _0801223C @ case 10 + .4byte _0801223C @ case 11 + .4byte _0801223C @ case 12 + .4byte _0801223C @ case 13 + .4byte _08012238 @ case 14 + .4byte _08012238 @ case 15 + .4byte _08012238 @ case 16 + .4byte _08012238 @ case 17 + .4byte _08012238 @ case 18 +_08012238: + movs r0, #1 + b _0801223E +_0801223C: + movs r0, #0 +_0801223E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080121D4 + + thumb_func_start BerryBlenderLinkBecomeLeader +BerryBlenderLinkBecomeLeader: @ 0x08012244 + push {lr} + ldr r0, _08012274 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08012278 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _0801227C + adds r1, r1, r0 + str r1, [r2] + ldr r0, _08012280 + str r1, [r0] + movs r0, #0 + strb r0, [r1, #0xc] + strb r0, [r1, #0xd] + ldr r1, _08012284 + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08012274: .4byte 0x08012289 +_08012278: .4byte 0x020228E4 +_0801227C: .4byte 0x03005B68 +_08012280: .4byte 0x03000DA0 +_08012284: .4byte 0x02037290 + thumb_func_end BerryBlenderLinkBecomeLeader + + thumb_func_start sub_08012288 +sub_08012288: @ 0x08012288 + push {r4, r5, r6, r7, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _080122A8 + ldr r5, [r0] + ldrb r0, [r5, #0xc] + cmp r0, #0x1e + bls _0801229E + bl _08012A54 +_0801229E: + lsls r0, r0, #2 + ldr r1, _080122AC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080122A8: .4byte 0x020228E4 +_080122AC: .4byte 0x080122B0 +_080122B0: @ jump table + .4byte _0801232C @ case 0 + .4byte _08012A54 @ case 1 + .4byte _08012A54 @ case 2 + .4byte _080123A4 @ case 3 + .4byte _080124CC @ case 4 + .4byte _08012554 @ case 5 + .4byte _08012570 @ case 6 + .4byte _08012690 @ case 7 + .4byte _08012A54 @ case 8 + .4byte _08012600 @ case 9 + .4byte _08012618 @ case 10 + .4byte _080126AC @ case 11 + .4byte _08012760 @ case 12 + .4byte _0801285E @ case 13 + .4byte _0801287C @ case 14 + .4byte _0801288E @ case 15 + .4byte _080128AC @ case 16 + .4byte _08012966 @ case 17 + .4byte _0801297C @ case 18 + .4byte _080128F6 @ case 19 + .4byte _08012914 @ case 20 + .4byte _080129D4 @ case 21 + .4byte _08012A00 @ case 22 + .4byte _080129D4 @ case 23 + .4byte _080129EA @ case 24 + .4byte _08012A54 @ case 25 + .4byte _08012A18 @ case 26 + .4byte _08012A54 @ case 27 + .4byte _08012A54 @ case 28 + .4byte _08012658 @ case 29 + .4byte _080129BA @ case 30 +_0801232C: + ldr r0, _0801238C + ldrh r2, [r0] + adds r3, r0, #0 + cmp r2, #0x14 + bne _0801234C + ldr r0, _08012390 + ldr r0, [r0] + ldr r1, _08012394 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + cmp r0, #1 + bne _0801234C + adds r0, r2, #1 + strh r0, [r3] +_0801234C: + ldr r2, _08012398 + ldr r1, _0801239C + ldrh r0, [r3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2] + ldr r4, _080123A0 + ldrh r0, [r3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + lsrs r0, r0, #8 + strb r0, [r4] + ldrb r0, [r2] + movs r1, #0 + movs r2, #0 + bl sub_08010A74 + bl sub_0800AF5C + bl OpenLink + ldrb r1, [r4] + movs r0, #0xf + ands r0, r1 + bl sub_080116FC + movs r0, #3 + strb r0, [r5, #0xc] + b _08012A54 + .align 2, 0 +_0801238C: .4byte 0x02037280 +_08012390: .4byte 0x03005AF0 +_08012394: .4byte 0x00000CA9 +_08012398: .4byte 0x020228E0 +_0801239C: .4byte 0x082C1FCC +_080123A0: .4byte 0x020228E1 +_080123A4: + movs r0, #0x70 + bl AllocZeroed + str r0, [r5, #4] + movs r0, #0xa0 + bl AllocZeroed + str r0, [r5] + movs r0, #0xa0 + bl AllocZeroed + str r0, [r5, #8] + ldr r0, [r5, #4] + movs r1, #4 + bl sub_080170B0 + ldr r0, [r5] + movs r1, #5 + bl sub_08017044 + ldr r0, [r5] + adds r1, r0, #0 + adds r1, #0x10 + bl sub_0800DA5C + ldr r1, [r5] + movs r3, #0 + movs r0, #0 + strh r0, [r1, #0x18] + ldr r2, [r5] + ldrb r1, [r2, #0x1a] + subs r0, #4 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x1a] + ldr r2, [r5] + ldrb r1, [r2, #0x1a] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x1a] + ldr r0, [r5] + strb r3, [r0, #0x1b] + ldr r0, [r5, #4] + movs r1, #0xff + bl sub_08016AD0 + strb r0, [r5, #0x17] + ldr r0, _08012424 + bl AddWindow + strb r0, [r5, #0x10] + ldr r0, _08012428 + ldrb r0, [r0] + movs r1, #0xf + ands r1, r0 + cmp r1, #2 + blt _0801243C + cmp r1, #4 + ble _0801242C + cmp r1, #5 + beq _08012434 + b _0801243C + .align 2, 0 +_08012424: .4byte 0x082C1FC4 +_08012428: .4byte 0x020228E1 +_0801242C: + ldr r0, _08012430 + b _08012436 + .align 2, 0 +_08012430: .4byte 0x082C2024 +_08012434: + ldr r0, _080124B8 +_08012436: + bl AddWindow + strb r0, [r5, #0xf] +_0801243C: + ldr r0, _080124BC + bl AddWindow + strb r0, [r5, #0x11] + ldrb r0, [r5, #0x10] + movs r1, #0x22 + bl FillWindowPixelBuffer + ldrb r0, [r5, #0x10] + ldr r2, _080124C0 + movs r1, #2 + str r1, [sp] + movs r4, #4 + str r4, [sp, #4] + movs r1, #1 + movs r3, #8 + bl sub_08016EA4 + ldrb r0, [r5, #0x10] + bl PutWindowTilemap + ldrb r0, [r5, #0x10] + movs r1, #2 + bl CopyWindowToVram + ldrb r0, [r5, #0xf] + movs r1, #0 + bl ClearStdWindowAndFrame + ldr r0, _080124C4 + adds r2, r0, #0 + ldr r1, _080124C8 + ldm r1!, {r3, r6, r7} + stm r2!, {r3, r6, r7} + ldm r1!, {r3, r6, r7} + stm r2!, {r3, r6, r7} + ldrb r1, [r5, #0xf] + strb r1, [r0, #0x10] + movs r1, #0 + movs r2, #0 + bl ListMenuInit + strb r0, [r5, #0x12] + ldrb r0, [r5, #0x11] + movs r1, #0 + bl ClearStdWindowAndFrame + ldrb r0, [r5, #0x11] + bl PutWindowTilemap + ldrb r0, [r5, #0x11] + movs r1, #2 + bl CopyWindowToVram + movs r0, #0 + bl CopyBgTilemapBufferToVram + movs r0, #1 + strb r0, [r5, #0x13] + strb r4, [r5, #0xc] + b _08012A54 + .align 2, 0 +_080124B8: .4byte 0x082C202C +_080124BC: .4byte 0x082C2034 +_080124C0: .4byte 0x082C08A4 +_080124C4: .4byte 0x03006050 +_080124C8: .4byte 0x082C2064 +_080124CC: + ldr r0, _08012504 + ldr r2, _08012508 + ldr r4, _0801250C + ldrb r1, [r4] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl StringCopy + ldr r0, _08012510 + ldrb r2, [r0] + lsrs r0, r2, #4 + cmp r0, #0 + beq _08012530 + ldrb r1, [r5, #0x13] + subs r0, #1 + cmp r1, r0 + ble _0801251C + movs r0, #0xf + ands r0, r2 + cmp r0, #0 + beq _0801251C + ldr r0, _08012514 + ldr r1, _08012518 + bl StringExpandPlaceholders + b _08012538 + .align 2, 0 +_08012504: .4byte 0x02021C40 +_08012508: .4byte 0x082C1E58 +_0801250C: .4byte 0x020228E0 +_08012510: .4byte 0x020228E1 +_08012514: .4byte 0x02021C7C +_08012518: .4byte 0x082C06B8 +_0801251C: + ldr r0, _08012528 + ldr r1, _0801252C + bl StringExpandPlaceholders + b _08012538 + .align 2, 0 +_08012528: .4byte 0x02021C7C +_0801252C: .4byte 0x082C069C +_08012530: + ldr r0, _0801254C + ldrb r1, [r4] + bl sub_08012134 +_08012538: + ldrb r0, [r5, #0x11] + ldr r1, _08012550 + ldrb r1, [r1] + ldrb r2, [r5, #0x13] + bl sub_08011FD8 + movs r0, #5 + strb r0, [r5, #0xc] + b _08012A54 + .align 2, 0 +_0801254C: .4byte 0x02021C7C +_08012550: .4byte 0x020228E1 +_08012554: + adds r0, r5, #0 + adds r0, #0xd + ldr r1, _0801256C + bl PrintOnTextbox + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08012566 + b _08012A54 +_08012566: + movs r0, #6 + strb r0, [r5, #0xc] + b _08012A54 + .align 2, 0 +_0801256C: .4byte 0x02021C7C +_08012570: + adds r0, r5, #0 + movs r1, #7 + movs r2, #0xa + bl sub_08012D0C + ldr r0, _08012590 + ldrh r1, [r0, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080125AC + ldrb r0, [r5, #0x13] + cmp r0, #1 + bne _08012594 + movs r0, #0x17 + b _080125AA + .align 2, 0 +_08012590: .4byte 0x03002360 +_08012594: + ldr r0, _080125A4 + ldrb r1, [r0] + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0 + beq _080125A8 + movs r0, #0x1e + b _080125AA + .align 2, 0 +_080125A4: .4byte 0x020228E1 +_080125A8: + movs r0, #0x13 +_080125AA: + strb r0, [r5, #0xc] +_080125AC: + ldr r0, _080125F8 + ldrb r2, [r0] + lsrs r0, r2, #4 + cmp r0, #0 + beq _080125E2 + ldrb r1, [r5, #0x13] + subs r0, #1 + cmp r1, r0 + ble _080125E2 + movs r4, #0xf + adds r0, r4, #0 + ands r0, r2 + cmp r0, #0 + beq _080125E2 + bl sub_08011D2C + cmp r0, #0 + beq _080125E2 + ldr r0, _080125FC + ldrh r1, [r0, #0x2e] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080125E2 + strb r4, [r5, #0xc] + bl sub_0800E9F8 +_080125E2: + ldrb r0, [r5, #0xc] + cmp r0, #6 + beq _080125EA + b _08012A54 +_080125EA: + bl sub_080100EC + cmp r0, #0 + bne _080125F4 + b _08012A54 +_080125F4: + b _0801275A + .align 2, 0 +_080125F8: .4byte 0x020228E1 +_080125FC: .4byte 0x03002360 +_08012600: + bl sub_080100EC + cmp r0, #0 + beq _0801260A + b _08012A54 +_0801260A: + movs r0, #6 + strb r0, [r5, #0xc] + ldr r0, [r5] + bl sub_08012E9C + strb r0, [r5, #0x13] + b _08012A54 +_08012618: + movs r3, #0 + ldr r0, _08012650 + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + cmp r0, #2 + bne _08012628 + movs r3, #1 +_08012628: + adds r0, r5, #0 + adds r0, #0xd + ldr r2, _08012654 + lsls r1, r3, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl PrintOnTextbox + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08012640 + b _08012A54 +_08012640: + ldr r0, [r5] + bl sub_08012E9C + strb r0, [r5, #0x13] + ldrb r0, [r5, #0x12] + bl RedrawListMenu + b _08012960 + .align 2, 0 +_08012650: .4byte 0x020228E0 +_08012654: .4byte 0x082C09E0 +_08012658: + ldr r0, _08012688 + ldrb r0, [r0] + movs r1, #0xf + ands r1, r0 + movs r0, #2 + eors r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r3, r0, #0x1f + adds r0, r5, #0 + adds r0, #0xd + ldr r2, _0801268C + lsls r1, r3, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl PrintOnTextbox + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08012682 + b _08012A54 +_08012682: + movs r0, #0x15 + strb r0, [r5, #0xc] + b _08012A54 + .align 2, 0 +_08012688: .4byte 0x020228E1 +_0801268C: .4byte 0x082C09E0 +_08012690: + adds r0, r5, #0 + adds r0, #0xd + ldr r1, _080126A8 + bl PrintOnTextbox + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080126A2 + b _08012A54 +_080126A2: + movs r0, #0xb + strb r0, [r5, #0xc] + b _08012A54 + .align 2, 0 +_080126A8: .4byte 0x02021C7C +_080126AC: + adds r4, r5, #0 + adds r4, #0xd + ldrb r1, [r5, #0x13] + lsls r1, r1, #5 + ldr r0, [r5] + adds r0, r0, r1 + adds r0, #2 + bl ReadAsU16 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrb r2, [r5, #0x13] + lsls r2, r2, #5 + ldr r1, [r5] + adds r1, r1, r2 + adds r1, #0x10 + bl sub_0801014C + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08016BC8 + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0801272C + cmp r1, r0 + bgt _080126F0 + subs r0, #2 + cmp r1, r0 + beq _0801275A + b _08012A54 +_080126F0: + cmp r1, #0 + beq _080126FA + cmp r1, #1 + beq _0801272C + b _08012A54 +_080126FA: + bl LoadWirelessStatusIndicatorSpriteGfx + movs r0, #0 + movs r1, #0 + bl CreateWirelessStatusIndicatorSprite + movs r0, #5 + strb r0, [r5, #0x19] + ldrb r1, [r5, #0x13] + lsls r1, r1, #5 + ldr r0, [r5] + adds r0, r0, r1 + adds r0, #2 + bl ReadAsU16 + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldrb r0, [r5, #0x13] + lsls r0, r0, #5 + ldr r2, [r5] + adds r2, r2, r0 + adds r2, #0x10 + movs r0, #5 + b _08012750 +_0801272C: + movs r0, #6 + strb r0, [r5, #0x19] + ldrb r1, [r5, #0x13] + lsls r1, r1, #5 + ldr r0, [r5] + adds r0, r0, r1 + adds r0, #2 + bl ReadAsU16 + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldrb r0, [r5, #0x13] + lsls r0, r0, #5 + ldr r2, [r5] + adds r2, r2, r0 + adds r2, #0x10 + movs r0, #6 +_08012750: + bl sub_08010188 + movs r0, #0xc + strb r0, [r5, #0xc] + b _08012A54 +_0801275A: + movs r0, #9 + strb r0, [r5, #0xc] + b _08012A54 +_08012760: + ldrb r1, [r5, #0x13] + lsls r1, r1, #5 + ldr r0, [r5] + adds r0, r0, r1 + adds r0, #2 + bl ReadAsU16 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrb r2, [r5, #0x13] + lsls r2, r2, #5 + ldr r1, [r5] + adds r1, r1, r2 + adds r1, #0x10 + bl sub_08010214 + cmp r0, #1 + bne _0801284E + ldrb r0, [r5, #0x19] + cmp r0, #5 + bne _08012808 + ldr r1, [r5] + ldrb r0, [r5, #0x13] + lsls r0, r0, #5 + adds r1, r1, r0 + movs r0, #0 + strb r0, [r1, #0x1b] + ldrb r0, [r5, #0x12] + bl RedrawListMenu + ldrb r0, [r5, #0x13] + adds r0, #1 + strb r0, [r5, #0x13] + ldr r1, _080127C4 + ldrb r1, [r1] + movs r3, #0xf + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r0, r3, #0 + ands r0, r1 + cmp r2, r0 + bne _08012844 + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0 + bne _080127C0 + cmp r2, #4 + bne _080127C8 +_080127C0: + strb r3, [r5, #0xc] + b _080127E4 + .align 2, 0 +_080127C4: .4byte 0x020228E1 +_080127C8: + ldr r0, _080127F8 + ldrb r1, [r5, #0x13] + lsls r1, r1, #5 + ldr r2, [r5] + adds r1, r1, r2 + subs r1, #0x10 + bl StringCopy7 + ldr r0, _080127FC + ldr r1, _08012800 + bl StringExpandPlaceholders + movs r0, #0xd + strb r0, [r5, #0xc] +_080127E4: + bl sub_0800E9F8 + ldrb r0, [r5, #0x11] + ldr r1, _08012804 + ldrb r1, [r1] + ldrb r2, [r5, #0x13] + bl sub_08011FD8 + b _08012848 + .align 2, 0 +_080127F8: .4byte 0x02021C40 +_080127FC: .4byte 0x02021C7C +_08012800: .4byte 0x082C0948 +_08012804: .4byte 0x020228E1 +_08012808: + ldrb r1, [r5, #0x13] + lsls r1, r1, #5 + ldr r0, [r5] + adds r0, r0, r1 + adds r4, r0, #0 + adds r4, #0x10 + adds r0, #2 + bl ReadAsU16 + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl sub_080118AC + ldr r1, [r5] + ldrb r0, [r5, #0x13] + lsls r0, r0, #5 + adds r1, r1, r0 + ldrb r2, [r1, #0x1a] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #0x1a] + ldr r0, [r5] + bl sub_08012E9C + ldrb r0, [r5, #0x12] + bl RedrawListMenu +_08012844: + movs r0, #4 + strb r0, [r5, #0xc] +_08012848: + movs r0, #0 + strb r0, [r5, #0x19] + b _08012A54 +_0801284E: + cmp r0, #2 + beq _08012854 + b _08012A54 +_08012854: + movs r0, #0 + movs r1, #0 + bl sub_08011554 + b _08012960 +_0801285E: + adds r0, r5, #0 + adds r0, #0xd + ldr r1, _08012878 + bl PrintOnTextbox + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08012870 + b _08012A54 +_08012870: + movs r0, #0xe + strb r0, [r5, #0xc] + b _08012A54 + .align 2, 0 +_08012878: .4byte 0x02021C7C +_0801287C: + ldrb r0, [r5, #0xe] + adds r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x78 + bhi _0801288C + b _08012A54 +_0801288C: + b _080128D2 +_0801288E: + adds r0, r5, #0 + adds r0, #0xd + ldr r1, _080128A8 + bl PrintOnTextbox + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080128A0 + b _08012A54 +_080128A0: + movs r0, #0x10 + strb r0, [r5, #0xc] + b _08012A54 + .align 2, 0 +_080128A8: .4byte 0x082C0914 +_080128AC: + adds r0, r5, #0 + adds r0, #0xd + movs r1, #0 + bl sub_08016BC8 + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _080128D2 + cmp r1, #0 + bgt _080128CC + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _080128D8 + b _08012A54 +_080128CC: + cmp r1, #1 + beq _080128D8 + b _08012A54 +_080128D2: + movs r0, #0x11 + strb r0, [r5, #0xc] + b _08012A54 +_080128D8: + ldr r0, _080128EC + ldrb r1, [r0] + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0 + beq _080128F0 + movs r0, #0x1e + strb r0, [r5, #0xc] + b _08012A54 + .align 2, 0 +_080128EC: .4byte 0x020228E1 +_080128F0: + movs r0, #0x13 + strb r0, [r5, #0xc] + b _08012A54 +_080128F6: + adds r0, r5, #0 + adds r0, #0xd + ldr r1, _08012910 + bl PrintOnTextbox + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08012908 + b _08012A54 +_08012908: + movs r0, #0x14 + strb r0, [r5, #0xc] + b _08012A54 + .align 2, 0 +_08012910: .4byte 0x082C092C +_08012914: + adds r0, r5, #0 + adds r0, #0xd + movs r1, #0 + bl sub_08016BC8 + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _080129CA + cmp r1, #0 + bgt _08012934 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0801293A + b _08012A54 +_08012934: + cmp r1, #1 + beq _0801293A + b _08012A54 +_0801293A: + ldr r0, _0801294C + ldrb r2, [r0] + movs r0, #0xf0 + ands r0, r2 + cmp r0, #0 + beq _08012950 + movs r0, #0xf + strb r0, [r5, #0xc] + b _08012A54 + .align 2, 0 +_0801294C: .4byte 0x020228E1 +_08012950: + movs r3, #0xf + ldrb r1, [r5, #0x13] + adds r0, r3, #0 + ands r0, r2 + cmp r1, r0 + bne _08012960 + strb r3, [r5, #0xc] + b _08012A54 +_08012960: + movs r0, #4 + strb r0, [r5, #0xc] + b _08012A54 +_08012966: + adds r0, r5, #0 + movs r1, #7 + movs r2, #0x1d + bl sub_08012D0C + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08012A54 + movs r0, #0x12 + strb r0, [r5, #0xc] + b _08012A54 +_0801297C: + bl sub_0800E9DC + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _080129B2 + movs r0, #0 + bl sub_0800EA18 + cmp r0, #0 + beq _08012998 + movs r0, #0x1a + strb r0, [r5, #0xc] + b _08012A54 +_08012998: + ldrh r0, [r5, #0x1a] + adds r0, #1 + strh r0, [r5, #0x1a] + lsls r0, r0, #0x10 + movs r1, #0x96 + lsls r1, r1, #0x11 + cmp r0, r1 + bls _08012A54 + movs r0, #0x1d + strb r0, [r5, #0xc] + movs r0, #0 + strb r0, [r5, #0xd] + b _08012A54 +_080129B2: + movs r0, #0x1d + strb r0, [r5, #0xc] + strb r1, [r5, #0xd] + b _08012A54 +_080129BA: + adds r0, r5, #0 + adds r0, #0xd + ldr r1, _080129D0 + bl PrintOnTextbox + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08012A54 +_080129CA: + movs r0, #0x17 + strb r0, [r5, #0xc] + b _08012A54 + .align 2, 0 +_080129D0: .4byte 0x082C09A8 +_080129D4: + bl DestroyWirelessStatusIndicatorSprite + bl sub_0800E894 + adds r0, r5, #0 + bl sub_08012A64 + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] + b _08012A54 +_080129EA: + bl EnableBothScriptContexts + adds r0, r4, #0 + bl DestroyTask + ldr r1, _080129FC + movs r0, #5 + strh r0, [r1] + b _08012A54 + .align 2, 0 +_080129FC: .4byte 0x02037290 +_08012A00: + bl EnableBothScriptContexts + adds r0, r4, #0 + bl DestroyTask + ldr r1, _08012A14 + movs r0, #8 + strh r0, [r1] + b _08012A54 + .align 2, 0 +_08012A14: .4byte 0x02037290 +_08012A18: + bl sub_08011570 + cmp r0, #0 + beq _08012A26 + movs r0, #0x1d + strb r0, [r5, #0xc] + b _08012A54 +_08012A26: + ldr r0, _08012A5C + ldrb r0, [r0] + cmp r0, #0 + beq _08012A54 + ldr r0, _08012A60 + ldrb r0, [r0] + bl sub_080121D4 + cmp r0, #0 + beq _08012A3E + bl sub_08010B2C +_08012A3E: + movs r0, #1 + bl sub_08010B58 + bl sub_080144CC + adds r0, r5, #0 + bl sub_08012A64 + adds r0, r4, #0 + bl DestroyTask +_08012A54: + add sp, #8 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08012A5C: .4byte 0x030031C4 +_08012A60: .4byte 0x020228E0 + thumb_func_end sub_08012288 + + thumb_func_start sub_08012A64 +sub_08012A64: @ 0x08012A64 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x11] + bl ClearWindowTilemap + ldrb r0, [r4, #0x11] + movs r1, #0 + bl DrawStdWindowFrame + ldrb r0, [r4, #0x12] + movs r1, #0 + movs r2, #0 + bl DestroyListMenuTask + ldrb r0, [r4, #0x10] + bl ClearWindowTilemap + ldrb r0, [r4, #0xf] + movs r1, #0 + bl DrawStdWindowFrame + movs r0, #0 + bl CopyBgTilemapBufferToVram + ldrb r0, [r4, #0x11] + bl RemoveWindow + ldrb r0, [r4, #0xf] + bl RemoveWindow + ldrb r0, [r4, #0x10] + bl RemoveWindow + ldrb r0, [r4, #0x17] + bl DestroyTask + ldr r0, [r4, #8] + bl Free + ldr r0, [r4] + bl Free + ldr r0, [r4, #4] + bl Free + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08012A64 + + thumb_func_start sub_08012AC4 +sub_08012AC4: @ 0x08012AC4 + push {lr} + adds r2, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + subs r0, r1, #1 + cmp r0, #0x1b + bhi _08012B70 + lsls r0, r0, #2 + ldr r1, _08012ADC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08012ADC: .4byte 0x08012AE0 +_08012AE0: @ jump table + .4byte _08012B50 @ case 0 + .4byte _08012B50 @ case 1 + .4byte _08012B68 @ case 2 + .4byte _08012B50 @ case 3 + .4byte _08012B70 @ case 4 + .4byte _08012B58 @ case 5 + .4byte _08012B58 @ case 6 + .4byte _08012B70 @ case 7 + .4byte _08012B68 @ case 8 + .4byte _08012B68 @ case 9 + .4byte _08012B68 @ case 10 + .4byte _08012B70 @ case 11 + .4byte _08012B70 @ case 12 + .4byte _08012B50 @ case 13 + .4byte _08012B68 @ case 14 + .4byte _08012B68 @ case 15 + .4byte _08012B70 @ case 16 + .4byte _08012B70 @ case 17 + .4byte _08012B70 @ case 18 + .4byte _08012B70 @ case 19 + .4byte _08012B70 @ case 20 + .4byte _08012B70 @ case 21 + .4byte _08012B68 @ case 22 + .4byte _08012B68 @ case 23 + .4byte _08012B68 @ case 24 + .4byte _08012B68 @ case 25 + .4byte _08012B68 @ case 26 + .4byte _08012B50 @ case 27 +_08012B50: + ldr r1, _08012B54 + b _08012B5A + .align 2, 0 +_08012B54: .4byte 0x082C08C4 +_08012B58: + ldr r1, _08012B64 +_08012B5A: + adds r0, r2, #0 + bl StringExpandPlaceholders + b _08012B70 + .align 2, 0 +_08012B64: .4byte 0x082C08DC +_08012B68: + ldr r1, _08012B74 + adds r0, r2, #0 + bl StringExpandPlaceholders +_08012B70: + pop {r0} + bx r0 + .align 2, 0 +_08012B74: .4byte 0x082C08F8 + thumb_func_end sub_08012AC4 + + thumb_func_start sub_08012B78 +sub_08012B78: @ 0x08012B78 + push {lr} + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r2, r1, #0 + cmp r1, #0x44 + beq _08012B98 + cmp r1, #0x44 + bgt _08012B8E + cmp r1, #0x41 + beq _08012B98 + b _08012BAA +_08012B8E: + cmp r2, #0x45 + beq _08012BA4 + cmp r2, #0x48 + beq _08012BA4 + b _08012BAA +_08012B98: + ldr r1, _08012BA0 + bl StringExpandPlaceholders + b _08012BAA + .align 2, 0 +_08012BA0: .4byte 0x082C0EE0 +_08012BA4: + ldr r1, _08012BB0 + bl StringExpandPlaceholders +_08012BAA: + pop {r0} + bx r0 + .align 2, 0 +_08012BB0: .4byte 0x082C0EF4 + thumb_func_end sub_08012B78 + + thumb_func_start sub_08012BB4 +sub_08012BB4: @ 0x08012BB4 + push {lr} + adds r2, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + subs r0, r1, #1 + cmp r0, #0x1b + bhi _08012C58 + lsls r0, r0, #2 + ldr r1, _08012BCC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08012BCC: .4byte 0x08012BD0 +_08012BD0: @ jump table + .4byte _08012C40 @ case 0 + .4byte _08012C40 @ case 1 + .4byte _08012C50 @ case 2 + .4byte _08012C40 @ case 3 + .4byte _08012C58 @ case 4 + .4byte _08012C40 @ case 5 + .4byte _08012C40 @ case 6 + .4byte _08012C58 @ case 7 + .4byte _08012C50 @ case 8 + .4byte _08012C50 @ case 9 + .4byte _08012C50 @ case 10 + .4byte _08012C58 @ case 11 + .4byte _08012C58 @ case 12 + .4byte _08012C40 @ case 13 + .4byte _08012C50 @ case 14 + .4byte _08012C50 @ case 15 + .4byte _08012C58 @ case 16 + .4byte _08012C58 @ case 17 + .4byte _08012C58 @ case 18 + .4byte _08012C58 @ case 19 + .4byte _08012C58 @ case 20 + .4byte _08012C58 @ case 21 + .4byte _08012C50 @ case 22 + .4byte _08012C50 @ case 23 + .4byte _08012C50 @ case 24 + .4byte _08012C50 @ case 25 + .4byte _08012C50 @ case 26 + .4byte _08012C40 @ case 27 +_08012C40: + ldr r1, _08012C4C + adds r0, r2, #0 + bl StringExpandPlaceholders + b _08012C58 + .align 2, 0 +_08012C4C: .4byte 0x082C1C80 +_08012C50: + ldr r1, _08012C5C + adds r0, r2, #0 + bl StringExpandPlaceholders +_08012C58: + pop {r0} + bx r0 + .align 2, 0 +_08012C5C: .4byte 0x082C1C94 + thumb_func_end sub_08012BB4 + + thumb_func_start sub_08012C60 +sub_08012C60: @ 0x08012C60 + push {lr} + adds r2, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + subs r0, r1, #1 + cmp r0, #0x1b + bhi _08012D04 + lsls r0, r0, #2 + ldr r1, _08012C78 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08012C78: .4byte 0x08012C7C +_08012C7C: @ jump table + .4byte _08012CEC @ case 0 + .4byte _08012CEC @ case 1 + .4byte _08012CFC @ case 2 + .4byte _08012CEC @ case 3 + .4byte _08012D04 @ case 4 + .4byte _08012CEC @ case 5 + .4byte _08012CEC @ case 6 + .4byte _08012D04 @ case 7 + .4byte _08012CFC @ case 8 + .4byte _08012CFC @ case 9 + .4byte _08012CFC @ case 10 + .4byte _08012D04 @ case 11 + .4byte _08012D04 @ case 12 + .4byte _08012CEC @ case 13 + .4byte _08012CFC @ case 14 + .4byte _08012CFC @ case 15 + .4byte _08012D04 @ case 16 + .4byte _08012D04 @ case 17 + .4byte _08012D04 @ case 18 + .4byte _08012D04 @ case 19 + .4byte _08012D04 @ case 20 + .4byte _08012D04 @ case 21 + .4byte _08012CFC @ case 22 + .4byte _08012CFC @ case 23 + .4byte _08012CFC @ case 24 + .4byte _08012CFC @ case 25 + .4byte _08012CFC @ case 26 + .4byte _08012CEC @ case 27 +_08012CEC: + ldr r1, _08012CF8 + adds r0, r2, #0 + bl StringExpandPlaceholders + b _08012D04 + .align 2, 0 +_08012CF8: .4byte 0x082C09F8 +_08012CFC: + ldr r1, _08012D08 + adds r0, r2, #0 + bl StringExpandPlaceholders +_08012D04: + pop {r0} + bx r0 + .align 2, 0 +_08012D08: .4byte 0x082C0A10 + thumb_func_end sub_08012C60 + + thumb_func_start sub_08012D0C +sub_08012D0C: @ 0x08012D0C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + adds r5, r2, #0 + ldr r0, [r4] + bl sub_08012DD8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08012D28 + cmp r0, #2 + beq _08012D60 + b _08012D74 +_08012D28: + movs r0, #2 + bl PlaySE + ldrb r0, [r4, #0x12] + bl RedrawListMenu + ldr r0, _08012D54 + ldrb r2, [r4, #0x13] + lsls r2, r2, #5 + ldr r1, [r4] + adds r1, r1, r2 + adds r1, #0x10 + bl StringCopy7 + ldr r0, _08012D58 + ldr r1, _08012D5C + ldrb r1, [r1] + bl sub_08012AC4 + strb r6, [r4, #0xc] + b _08012D74 + .align 2, 0 +_08012D54: .4byte 0x02021C54 +_08012D58: .4byte 0x02021C7C +_08012D5C: .4byte 0x020228E0 +_08012D60: + movs r0, #0 + movs r1, #0 + bl sub_08011554 + ldrb r0, [r4, #0x12] + bl RedrawListMenu + strb r5, [r4, #0xc] + movs r0, #1 + b _08012D76 +_08012D74: + movs r0, #0 +_08012D76: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_08012D0C + + thumb_func_start sub_08012D7C +sub_08012D7C: @ 0x08012D7C + push {r4, r5, r6, lr} + sub sp, #8 + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + ldr r0, _08012DA8 + ldr r3, [r0] + movs r2, #0 + ldr r1, [r3] + lsls r0, r4, #5 + adds r1, r1, r0 + ldrb r0, [r1, #0x1a] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + beq _08012DAC + cmp r0, #2 + beq _08012DB6 + b _08012DB8 + .align 2, 0 +_08012DA8: .4byte 0x020228E4 +_08012DAC: + ldrb r0, [r1, #0x1b] + cmp r0, #0 + beq _08012DB8 + movs r2, #2 + b _08012DB8 +_08012DB6: + movs r2, #1 +_08012DB8: + lsls r0, r4, #5 + ldr r3, [r3] + adds r3, r3, r0 + str r2, [sp] + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + adds r0, r5, #0 + movs r1, #1 + adds r2, r6, #0 + bl sub_08017360 + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_08012D7C + + thumb_func_start sub_08012DD8 +sub_08012DD8: @ 0x08012DD8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + ldr r0, _08012E30 + ldr r5, [r0] + movs r0, #0 + mov r8, r0 + movs r3, #1 +_08012DEC: + ldr r0, [r5] + lsls r6, r3, #5 + adds r2, r0, r6 + ldrb r0, [r2, #0x1a] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + mov sb, r0 + cmp r0, #1 + bne _08012E4C + ldr r1, [r5, #4] + adds r0, r2, #0 + str r3, [sp] + bl sub_080171A8 + adds r4, r0, #0 + ldr r3, [sp] + cmp r4, #0xff + beq _08012E34 + ldr r1, [r5] + ldr r0, [r5, #4] + lsls r2, r4, #3 + subs r2, r2, r4 + lsls r2, r2, #2 + adds r1, r1, r6 + adds r0, r0, r2 + ldm r0!, {r2, r4, r7} + stm r1!, {r2, r4, r7} + ldm r0!, {r2, r4, r7} + stm r1!, {r2, r4, r7} + ldr r0, [r5] + adds r0, r0, r6 + mov r1, sb + strh r1, [r0, #0x18] + b _08012E4C + .align 2, 0 +_08012E30: .4byte 0x020228E4 +_08012E34: + ldr r2, [r5] + adds r2, r2, r6 + ldrb r1, [r2, #0x1a] + movs r4, #4 + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r1, r0 + movs r0, #2 + orrs r1, r0 + strb r1, [r2, #0x1a] + movs r7, #2 + mov r8, r7 +_08012E4C: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #4 + bls _08012DEC + movs r6, #0 + movs r4, #3 +_08012E5A: + ldr r0, [r5] + ldr r1, [r5, #4] + adds r1, r1, r6 + movs r2, #5 + bl sub_080171F8 + adds r6, #0x1c + subs r4, #1 + ldr r0, [r5] + cmp r4, #0 + bge _08012E5A + mov r1, r8 + cmp r1, #2 + beq _08012E8C + adds r1, r0, #0 + movs r4, #4 +_08012E7A: + ldrb r0, [r1, #0x1b] + cmp r0, #0 + beq _08012E84 + movs r2, #1 + mov r8, r2 +_08012E84: + adds r1, #0x20 + subs r4, #1 + cmp r4, #0 + bge _08012E7A +_08012E8C: + mov r0, r8 + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_08012DD8 + + thumb_func_start sub_08012E9C +sub_08012E9C: @ 0x08012E9C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _08012F70 + ldr r4, [r0] + movs r3, #0 +_08012EAC: + ldr r0, [r4, #8] + lsls r2, r3, #5 + ldr r1, [r4] + adds r0, r0, r2 + adds r1, r1, r2 + ldm r1!, {r2, r5, r6} + stm r0!, {r2, r5, r6} + ldm r1!, {r2, r5, r7} + stm r0!, {r2, r5, r7} + ldm r1!, {r6, r7} + stm r0!, {r6, r7} + adds r3, #1 + ldr r0, [r4, #8] + ldr r1, [r4] + cmp r3, #4 + ble _08012EAC + movs r5, #0 + mov r8, r1 + mov sb, r0 + movs r3, #4 +_08012ED4: + mov r1, sb + ldrb r0, [r1, #0x1a] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _08012EF6 + lsls r0, r5, #5 + add r0, r8 + ldm r1!, {r2, r6, r7} + stm r0!, {r2, r6, r7} + ldm r1!, {r2, r6, r7} + stm r0!, {r2, r6, r7} + ldm r1!, {r2, r6} + stm r0!, {r2, r6} + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_08012EF6: + movs r7, #0x20 + add sb, r7 + subs r3, #1 + cmp r3, #0 + bge _08012ED4 + mov sl, r5 + cmp r5, #4 + bhi _08012F58 + ldr r0, _08012F74 + mov sb, r0 + movs r1, #0 + mov ip, r1 + movs r2, #4 + rsbs r2, r2, #0 + mov r8, r2 +_08012F14: + ldr r1, [r4] + lsls r3, r5, #5 + adds r1, r1, r3 + mov r0, sb + ldm r0!, {r2, r6, r7} + stm r1!, {r2, r6, r7} + ldm r0!, {r2, r6, r7} + stm r1!, {r2, r6, r7} + ldr r0, [r4] + adds r0, r0, r3 + movs r1, #0 + strh r1, [r0, #0x18] + ldr r1, [r4] + adds r1, r1, r3 + ldrb r2, [r1, #0x1a] + mov r0, r8 + ands r0, r2 + strb r0, [r1, #0x1a] + ldr r1, [r4] + adds r1, r1, r3 + ldrb r2, [r1, #0x1a] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #0x1a] + ldr r0, [r4] + adds r0, r0, r3 + mov r6, ip + strb r6, [r0, #0x1b] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #4 + bls _08012F14 +_08012F58: + movs r3, #0 + ldr r1, [r4] + ldrb r0, [r1, #0x1a] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _08012F78 + ldrb r0, [r1, #0x1b] + cmp r0, #0x40 + bne _08012F78 + mov sl, r3 + b _08012F98 + .align 2, 0 +_08012F70: .4byte 0x020228E4 +_08012F74: .4byte 0x082C2364 +_08012F78: + adds r3, #1 + cmp r3, #4 + bgt _08012F98 + lsls r0, r3, #5 + adds r2, r1, r0 + ldrb r0, [r2, #0x1a] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _08012F78 + ldrb r0, [r2, #0x1b] + cmp r0, #0x40 + bne _08012F78 + lsls r0, r3, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 +_08012F98: + mov r0, sl + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_08012E9C + + thumb_func_start BerryBlenderLinkJoinGroup +BerryBlenderLinkJoinGroup: @ 0x08012FA8 + push {lr} + ldr r0, _08012FD8 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08012FDC + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _08012FE0 + adds r1, r1, r0 + str r1, [r2] + ldr r0, _08012FE4 + str r1, [r0] + movs r0, #0 + strb r0, [r1, #8] + strb r0, [r1, #9] + ldr r1, _08012FE8 + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08012FD8: .4byte 0x08012FED +_08012FDC: .4byte 0x020228E4 +_08012FE0: .4byte 0x03005B68 +_08012FE4: .4byte 0x03000DA4 +_08012FE8: .4byte 0x02037290 + thumb_func_end BerryBlenderLinkJoinGroup + + thumb_func_start sub_08012FEC +sub_08012FEC: @ 0x08012FEC + push {r4, r5, r6, r7, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _0801300C + ldr r6, [r0] + ldrb r0, [r6, #8] + cmp r0, #0x17 + bls _08013000 + b _08013686 +_08013000: + lsls r0, r0, #2 + ldr r1, _08013010 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801300C: .4byte 0x020228E4 +_08013010: .4byte 0x08013014 +_08013014: @ jump table + .4byte _08013074 @ case 0 + .4byte _080130E4 @ case 1 + .4byte _08013110 @ case 2 + .4byte _080131DC @ case 3 + .4byte _08013686 @ case 4 + .4byte _0801328C @ case 5 + .4byte _080132C8 @ case 6 + .4byte _08013514 @ case 7 + .4byte _08013530 @ case 8 + .4byte _0801357E @ case 9 + .4byte _08013590 @ case 10 + .4byte _08013618 @ case 11 + .4byte _08013590 @ case 12 + .4byte _080135E8 @ case 13 + .4byte _08013590 @ case 14 + .4byte _08013628 @ case 15 + .4byte _08013686 @ case 16 + .4byte _08013686 @ case 17 + .4byte _08013590 @ case 18 + .4byte _08013648 @ case 19 + .4byte _08013590 @ case 20 + .4byte _0801367C @ case 21 + .4byte _08013686 @ case 22 + .4byte _0801366C @ case 23 +_08013074: + ldr r0, _080130D0 + ldrh r2, [r0] + adds r3, r0, #0 + cmp r2, #0x14 + bne _08013094 + ldr r0, _080130D4 + ldr r0, [r0] + ldr r1, _080130D8 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + cmp r0, #1 + bne _08013094 + adds r0, r2, #1 + strh r0, [r3] +_08013094: + ldr r2, _080130DC + ldr r1, _080130E0 + ldrh r0, [r3] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r2] + ldrb r0, [r2] + movs r1, #0 + movs r2, #0 + bl sub_08010A74 + bl sub_0800AF5C + bl OpenLink + bl sub_08011748 + movs r0, #0x70 + bl AllocZeroed + str r0, [r6, #4] + movs r0, #0x80 + lsls r0, r0, #2 + bl AllocZeroed + str r0, [r6] + movs r0, #1 + strb r0, [r6, #8] + b _08013686 + .align 2, 0 +_080130D0: .4byte 0x02037280 +_080130D4: .4byte 0x03005AF0 +_080130D8: .4byte 0x00000CA9 +_080130DC: .4byte 0x020228E0 +_080130E0: .4byte 0x082C2438 +_080130E4: + adds r0, r6, #0 + adds r0, #9 + ldr r2, _08013108 + ldr r1, _0801310C + ldrh r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl PrintOnTextbox + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08013100 + b _08013686 +_08013100: + movs r0, #2 + strb r0, [r6, #8] + b _08013686 + .align 2, 0 +_08013108: .4byte 0x082C1BE4 +_0801310C: .4byte 0x02037280 +_08013110: + ldr r0, [r6, #4] + movs r1, #4 + bl sub_080170B0 + ldr r0, [r6] + movs r1, #0x10 + bl sub_08017044 + ldr r0, [r6, #4] + ldr r1, _080131C0 + ldrh r1, [r1] + bl sub_08016AD0 + movs r4, #0 + strb r0, [r6, #0x11] + ldr r0, _080131C4 + bl AddWindow + strb r0, [r6, #0xc] + ldr r0, _080131C8 + bl AddWindow + strb r0, [r6, #0xb] + ldr r0, _080131CC + bl AddWindow + strb r0, [r6, #0xd] + ldrb r0, [r6, #0xc] + movs r1, #0x22 + bl FillWindowPixelBuffer + ldrb r0, [r6, #0xc] + ldr r2, _080131D0 + movs r1, #2 + str r1, [sp] + movs r1, #4 + str r1, [sp, #4] + movs r1, #1 + movs r3, #8 + bl sub_08016EA4 + ldrb r0, [r6, #0xc] + bl PutWindowTilemap + ldrb r0, [r6, #0xc] + movs r1, #2 + bl CopyWindowToVram + ldrb r0, [r6, #0xb] + movs r1, #0 + bl ClearStdWindowAndFrame + ldr r0, _080131D4 + adds r2, r0, #0 + ldr r1, _080131D8 + ldm r1!, {r3, r5, r7} + stm r2!, {r3, r5, r7} + ldm r1!, {r3, r5, r7} + stm r2!, {r3, r5, r7} + ldrb r1, [r6, #0xb] + strb r1, [r0, #0x10] + movs r1, #0 + movs r2, #0 + bl ListMenuInit + strb r0, [r6, #0xe] + ldrb r0, [r6, #0xd] + movs r1, #0 + bl ClearStdWindowAndFrame + ldrb r0, [r6, #0xd] + bl PutWindowTilemap + ldrb r0, [r6, #0xd] + bl sub_080120A8 + ldrb r0, [r6, #0xd] + movs r1, #2 + bl CopyWindowToVram + movs r0, #0 + bl CopyBgTilemapBufferToVram + strb r4, [r6, #0xf] + movs r0, #3 + strb r0, [r6, #8] + b _08013686 + .align 2, 0 +_080131C0: .4byte 0x02037280 +_080131C4: .4byte 0x082C1FC4 +_080131C8: .4byte 0x082C207C +_080131CC: .4byte 0x082C2084 +_080131D0: .4byte 0x082C19B8 +_080131D4: .4byte 0x03006050 +_080131D8: .4byte 0x082C210C +_080131DC: + bl sub_0801394C + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + beq _080131F6 + cmp r4, #1 + beq _080131EE + b _08013576 +_080131EE: + movs r0, #2 + bl PlaySE + b _08013576 +_080131F6: + ldrb r0, [r6, #0xe] + bl ListMenu_ProcessInput + adds r4, r0, #0 + ldr r0, _08013244 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08013274 + movs r0, #1 + rsbs r0, r0, #0 + cmp r4, r0 + beq _08013274 + ldr r0, [r6] + lsls r1, r4, #5 + adds r0, r0, r1 + ldrb r1, [r0, #0xa] + ldrb r0, [r0, #0x1a] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _0801326C + lsrs r0, r1, #7 + cmp r0, #0 + bne _0801326C + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_08013690 + adds r1, r0, #0 + cmp r1, #0 + bne _08013248 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_080136DC + movs r0, #5 + b _0801325A + .align 2, 0 +_08013244: .4byte 0x03002360 +_08013248: + ldr r0, _08013264 + ldr r2, _08013268 + subs r1, #1 + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl StringCopy + movs r0, #0x12 +_0801325A: + strb r0, [r6, #8] + movs r0, #0x6e + bl PlaySE + b _08013686 + .align 2, 0 +_08013264: .4byte 0x02021C7C +_08013268: .4byte 0x082C09A0 +_0801326C: + movs r0, #7 + bl PlaySE + b _08013686 +_08013274: + ldr r0, _08013288 + ldrh r1, [r0, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08013282 + b _08013686 +_08013282: + movs r0, #0xa + strb r0, [r6, #8] + b _08013686 + .align 2, 0 +_08013288: .4byte 0x03002360 +_0801328C: + ldr r4, _080132BC + ldr r0, _080132C0 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08012BB4 + adds r0, r6, #0 + adds r0, #9 + adds r1, r4, #0 + bl PrintOnTextbox + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080132AA + b _08013686 +_080132AA: + ldr r0, _080132C4 + ldrb r2, [r6, #0xf] + lsls r2, r2, #5 + ldr r1, [r6] + adds r1, r1, r2 + adds r1, #0x10 + bl StringCopy7 + b _0801358A + .align 2, 0 +_080132BC: .4byte 0x02021C7C +_080132C0: .4byte 0x020228E0 +_080132C4: .4byte 0x02021C40 +_080132C8: + ldr r0, _080132FC + ldrb r0, [r0] + cmp r0, #0 + beq _0801337E + ldr r4, _08013300 + ldr r1, [r6] + ldrb r0, [r6, #0xf] + lsls r0, r0, #5 + adds r1, r1, r0 + ldrb r0, [r1, #0xa] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x19 + strb r0, [r4] + movs r0, #0 + movs r1, #0 + bl sub_08011554 + ldrb r0, [r4] + subs r0, #1 + cmp r0, #0x1b + bhi _0801337E + lsls r0, r0, #2 + ldr r1, _08013304 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080132FC: .4byte 0x030031C4 +_08013300: .4byte 0x020228E0 +_08013304: .4byte 0x08013308 +_08013308: @ jump table + .4byte _08013378 @ case 0 + .4byte _08013378 @ case 1 + .4byte _08013378 @ case 2 + .4byte _08013378 @ case 3 + .4byte _08013378 @ case 4 + .4byte _08013378 @ case 5 + .4byte _08013378 @ case 6 + .4byte _0801337E @ case 7 + .4byte _08013378 @ case 8 + .4byte _08013378 @ case 9 + .4byte _08013378 @ case 10 + .4byte _0801337E @ case 11 + .4byte _08013378 @ case 12 + .4byte _08013378 @ case 13 + .4byte _08013378 @ case 14 + .4byte _08013378 @ case 15 + .4byte _0801337E @ case 16 + .4byte _0801337E @ case 17 + .4byte _0801337E @ case 18 + .4byte _0801337E @ case 19 + .4byte _0801337E @ case 20 + .4byte _0801337E @ case 21 + .4byte _08013378 @ case 22 + .4byte _08013378 @ case 23 + .4byte _08013378 @ case 24 + .4byte _08013378 @ case 25 + .4byte _08013378 @ case 26 + .4byte _08013378 @ case 27 +_08013378: + movs r0, #0x14 + strb r0, [r6, #8] + b _08013686 +_0801337E: + bl sub_08011564 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, #1 + cmp r0, #8 + bls _0801338E + b _080134F0 +_0801338E: + lsls r0, r0, #2 + ldr r1, _08013398 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08013398: .4byte 0x0801339C +_0801339C: @ jump table + .4byte _080133C0 @ case 0 + .4byte _080133C6 @ case 1 + .4byte _080134F0 @ case 2 + .4byte _080134F0 @ case 3 + .4byte _080133CC @ case 4 + .4byte _080133C6 @ case 5 + .4byte _08013438 @ case 6 + .4byte _080134F0 @ case 7 + .4byte _080133C6 @ case 8 +_080133C0: + movs r0, #0xc + strb r0, [r6, #8] + b _080134F0 +_080133C6: + movs r0, #0xe + strb r0, [r6, #8] + b _080134F0 +_080133CC: + ldr r5, _08013400 + ldr r4, _08013404 + ldrb r1, [r4] + adds r0, r5, #0 + bl sub_08012C60 + adds r0, r6, #0 + adds r0, #9 + adds r1, r5, #0 + bl PrintOnTextbox + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080133EA + b _080134F0 +_080133EA: + ldrb r0, [r4] + cmp r0, #0x1c + beq _080133F4 + cmp r0, #0xe + bne _08013408 +_080133F4: + movs r0, #0xc + movs r1, #0 + bl sub_08011554 + b _080134F0 + .align 2, 0 +_08013400: .4byte 0x02021C7C +_08013404: .4byte 0x020228E0 +_08013408: + movs r0, #7 + movs r1, #0 + bl sub_08011554 + ldr r0, _0801342C + ldr r2, _08013430 + ldrb r1, [r4] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl StringCopy + ldr r1, _08013434 + adds r0, r5, #0 + bl StringExpandPlaceholders + b _080134F0 + .align 2, 0 +_0801342C: .4byte 0x02021C40 +_08013430: .4byte 0x082C1E58 +_08013434: .4byte 0x082C0A4C +_08013438: + ldrb r0, [r6, #0x15] + adds r2, r0, #0 + cmp r2, #0xf0 + bls _08013460 + adds r0, r6, #0 + adds r0, #9 + ldr r1, _0801345C + bl PrintOnTextbox + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080134F0 + movs r0, #0xc + movs r1, #0 + bl sub_08011554 + movs r0, #0 + b _080134EE + .align 2, 0 +_0801345C: .4byte 0x02021C7C +_08013460: + ldr r0, _08013474 + ldrb r0, [r0] + subs r0, #1 + cmp r0, #0x1b + bhi _080134EC + lsls r0, r0, #2 + ldr r1, _08013478 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08013474: .4byte 0x020228E0 +_08013478: .4byte 0x0801347C +_0801347C: @ jump table + .4byte _080134F0 @ case 0 + .4byte _080134F0 @ case 1 + .4byte _080134EC @ case 2 + .4byte _080134F0 @ case 3 + .4byte _080134EC @ case 4 + .4byte _080134EC @ case 5 + .4byte _080134EC @ case 6 + .4byte _080134EC @ case 7 + .4byte _080134EC @ case 8 + .4byte _080134EC @ case 9 + .4byte _080134EC @ case 10 + .4byte _080134EC @ case 11 + .4byte _080134EC @ case 12 + .4byte _080134F0 @ case 13 + .4byte _080134EC @ case 14 + .4byte _080134EC @ case 15 + .4byte _080134EC @ case 16 + .4byte _080134EC @ case 17 + .4byte _080134EC @ case 18 + .4byte _080134EC @ case 19 + .4byte _080134EC @ case 20 + .4byte _080134EC @ case 21 + .4byte _080134EC @ case 22 + .4byte _080134EC @ case 23 + .4byte _080134EC @ case 24 + .4byte _080134EC @ case 25 + .4byte _080134EC @ case 26 + .4byte _080134F0 @ case 27 +_080134EC: + adds r0, r2, #1 +_080134EE: + strb r0, [r6, #0x15] +_080134F0: + bl sub_08011564 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080134FC + b _08013686 +_080134FC: + ldr r0, _08013510 + ldrh r1, [r0, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0801350A + b _08013686 +_0801350A: + movs r0, #7 + strb r0, [r6, #8] + b _08013686 + .align 2, 0 +_08013510: .4byte 0x03002360 +_08013514: + adds r0, r6, #0 + adds r0, #9 + ldr r1, _0801352C + bl PrintOnTextbox + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08013526 + b _08013686 +_08013526: + movs r0, #8 + strb r0, [r6, #8] + b _08013686 + .align 2, 0 +_0801352C: .4byte 0x082C0A64 +_08013530: + adds r4, r6, #0 + adds r4, #9 + bl sub_08011564 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl sub_08016BC8 + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0801356E + cmp r1, r0 + bgt _0801355C + subs r0, #2 + cmp r1, r0 + beq _08013572 + b _08013686 +_0801355C: + cmp r1, #0 + beq _08013566 + cmp r1, #1 + beq _0801356E + b _08013686 +_08013566: + bl sub_080101D4 + movs r0, #9 + b _08013574 +_0801356E: + movs r0, #5 + b _08013574 +_08013572: + movs r0, #6 +_08013574: + strb r0, [r6, #8] +_08013576: + ldrb r0, [r6, #0xe] + bl RedrawListMenu + b _08013686 +_0801357E: + bl sub_08011564 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801358A + b _08013686 +_0801358A: + movs r0, #6 + strb r0, [r6, #8] + b _08013686 +_08013590: + ldrb r0, [r6, #0xd] + bl ClearWindowTilemap + ldrb r0, [r6, #0xd] + movs r1, #0 + bl DrawStdWindowFrame + ldrb r0, [r6, #0xe] + movs r1, #0 + movs r2, #0 + bl DestroyListMenuTask + ldrb r0, [r6, #0xc] + bl ClearWindowTilemap + ldrb r0, [r6, #0xb] + movs r1, #0 + bl DrawStdWindowFrame + movs r0, #0 + bl CopyBgTilemapBufferToVram + ldrb r0, [r6, #0xd] + bl RemoveWindow + ldrb r0, [r6, #0xb] + bl RemoveWindow + ldrb r0, [r6, #0xc] + bl RemoveWindow + ldrb r0, [r6, #0x11] + bl DestroyTask + ldr r0, [r6] + bl Free + ldr r0, [r6, #4] + bl Free + ldrb r0, [r6, #8] + adds r0, #1 + strb r0, [r6, #8] + b _08013686 +_080135E8: + bl DestroyWirelessStatusIndicatorSprite + adds r5, r6, #0 + adds r5, #9 + ldr r4, _08013610 + bl sub_08011564 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl PrintOnTextbox + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08013686 + ldr r0, _08013614 + movs r1, #6 + b _0801365C + .align 2, 0 +_08013610: .4byte 0x082C0A84 +_08013614: .4byte 0x02037290 +_08013618: + bl DestroyWirelessStatusIndicatorSprite + ldr r0, _08013624 + movs r1, #5 + b _0801365C + .align 2, 0 +_08013624: .4byte 0x02037290 +_08013628: + bl DestroyWirelessStatusIndicatorSprite + adds r5, r6, #0 + adds r5, #9 + ldr r4, _08013644 + bl sub_08011564 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + b _0801364E + .align 2, 0 +_08013644: .4byte 0x082C0A84 +_08013648: + adds r0, r6, #0 + adds r0, #9 + ldr r1, _08013664 +_0801364E: + bl PrintOnTextbox + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08013686 + ldr r0, _08013668 + movs r1, #8 +_0801365C: + strh r1, [r0] + movs r0, #0x17 + strb r0, [r6, #8] + b _08013686 + .align 2, 0 +_08013664: .4byte 0x02021C7C +_08013668: .4byte 0x02037290 +_0801366C: + adds r0, r4, #0 + bl DestroyTask + bl sub_08016E98 + bl sub_0800E894 + b _08013686 +_0801367C: + bl sub_080144CC + adds r0, r4, #0 + bl DestroyTask +_08013686: + add sp, #8 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08012FEC + + thumb_func_start sub_08013690 +sub_08013690: @ 0x08013690 + push {lr} + lsls r1, r1, #5 + ldr r0, [r0] + adds r3, r0, r1 + ldr r0, _080136C0 + ldrb r0, [r0] + cmp r0, #4 + bne _080136D2 + ldrb r1, [r3, #1] + movs r0, #0x3c + ands r0, r1 + cmp r0, #0xc + beq _080136D2 + ldr r0, _080136C4 + ldr r0, [r0] + ldrb r1, [r0, #9] + movs r2, #0x80 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _080136C8 + movs r0, #1 + b _080136D8 + .align 2, 0 +_080136C0: .4byte 0x020228E0 +_080136C4: .4byte 0x03005AF0 +_080136C8: + ldrb r1, [r3] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _080136D6 +_080136D2: + movs r0, #0 + b _080136D8 +_080136D6: + movs r0, #2 +_080136D8: + pop {r1} + bx r1 + thumb_func_end sub_08013690 + + thumb_func_start sub_080136DC +sub_080136DC: @ 0x080136DC + push {r4, lr} + adds r4, r0, #0 + strb r1, [r4, #0xf] + bl LoadWirelessStatusIndicatorSpriteGfx + movs r0, #0 + movs r1, #0 + bl CreateWirelessStatusIndicatorSprite + ldrb r0, [r4, #0xe] + bl RedrawListMenu + ldr r0, _0801373C + ldrb r2, [r4, #0xf] + lsls r2, r2, #5 + ldr r1, [r4] + adds r1, r1, r2 + adds r1, #0x10 + bl StringCopy7 + ldr r1, _08013740 + ldr r0, _08013744 + ldrh r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0 + movs r2, #1 + bl sub_08010B80 + ldrb r1, [r4, #0xf] + lsls r1, r1, #5 + ldr r0, [r4] + adds r0, r0, r1 + adds r4, r0, #0 + adds r4, #0x10 + adds r0, #2 + bl ReadAsU16 + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl sub_08011AB4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801373C: .4byte 0x02021C40 +_08013740: .4byte 0x082C2438 +_08013744: .4byte 0x02037280 + thumb_func_end sub_080136DC + + thumb_func_start sub_08013748 +sub_08013748: @ 0x08013748 + push {lr} + ldr r0, _08013774 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r3, _08013778 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r2, _0801377C + adds r1, r1, r2 + str r1, [r3] + movs r2, #0 + strb r2, [r1, #8] + strb r2, [r1, #9] + ldr r2, _08013780 + str r1, [r2] + pop {r1} + bx r1 + .align 2, 0 +_08013774: .4byte 0x08013785 +_08013778: .4byte 0x020228E4 +_0801377C: .4byte 0x03005B68 +_08013780: .4byte 0x03000DA4 + thumb_func_end sub_08013748 + + thumb_func_start sub_08013784 +sub_08013784: @ 0x08013784 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _080137A0 + ldr r4, [r0] + ldrb r0, [r4, #8] + cmp r0, #0xb + bhi _08013888 + lsls r0, r0, #2 + ldr r1, _080137A4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080137A0: .4byte 0x020228E4 +_080137A4: .4byte 0x080137A8 +_080137A8: @ jump table + .4byte _080137D8 @ case 0 + .4byte _08013888 @ case 1 + .4byte _0801380C @ case 2 + .4byte _08013830 @ case 3 + .4byte _08013888 @ case 4 + .4byte _08013888 @ case 5 + .4byte _08013888 @ case 6 + .4byte _08013888 @ case 7 + .4byte _08013888 @ case 8 + .4byte _08013888 @ case 9 + .4byte _08013860 @ case 10 + .4byte _0801387E @ case 11 +_080137D8: + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl sub_08010A74 + bl sub_0800AF5C + bl OpenLink + bl sub_08011748 + movs r0, #1 + bl sub_08010CA0 + movs r0, #0x70 + bl AllocZeroed + str r0, [r4, #4] + movs r0, #0x80 + lsls r0, r0, #2 + bl AllocZeroed + str r0, [r4] + movs r0, #2 + strb r0, [r4, #8] + b _08013888 +_0801380C: + ldr r0, [r4, #4] + movs r1, #4 + bl sub_080170B0 + ldr r0, [r4] + movs r1, #0x10 + bl sub_08017044 + ldr r0, [r4, #4] + movs r1, #0xff + bl sub_08016AD0 + movs r1, #0 + strb r0, [r4, #0x11] + strb r1, [r4, #0xf] + movs r0, #3 + strb r0, [r4, #8] + b _08013888 +_08013830: + bl sub_0801394C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08013842 + movs r0, #2 + bl PlaySE +_08013842: + ldr r0, _0801385C + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + movs r2, #0x26 + ldrsh r0, [r1, r2] + cmp r0, #0xff + bne _08013888 + movs r0, #0xa + strb r0, [r4, #8] + b _08013888 + .align 2, 0 +_0801385C: .4byte 0x03005B60 +_08013860: + ldrb r0, [r4, #0x11] + bl DestroyTask + ldr r0, [r4] + bl Free + ldr r0, [r4, #4] + bl Free + bl sub_0800E894 + ldrb r0, [r4, #8] + adds r0, #1 + strb r0, [r4, #8] + b _08013888 +_0801387E: + bl sub_0800E894 + adds r0, r5, #0 + bl DestroyTask +_08013888: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08013784 + + thumb_func_start sub_08013890 +sub_08013890: @ 0x08013890 + push {lr} + adds r2, r0, #0 + cmp r1, #0xff + bne _0801389C +_08013898: + movs r0, #1 + b _080138C0 +_0801389C: + cmp r1, #0x16 + bhi _080138BE + ldr r0, _080138AC + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + b _080138B8 + .align 2, 0 +_080138AC: .4byte 0x082C23E0 +_080138B0: + ldrb r0, [r1] + cmp r0, r2 + beq _08013898 + adds r1, #1 +_080138B8: + ldrb r0, [r1] + cmp r0, #0xff + bne _080138B0 +_080138BE: + movs r0, #0 +_080138C0: + pop {r1} + bx r1 + thumb_func_end sub_08013890 + + thumb_func_start sub_080138C4 +sub_080138C4: @ 0x080138C4 + push {lr} + ldr r0, [r0] + lsls r1, r1, #5 + adds r1, r0, r1 + ldrb r2, [r1, #0x1a] + lsls r0, r2, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _080138F6 + ldrb r0, [r1, #0xa] + lsrs r0, r0, #7 + cmp r0, #0 + beq _080138E2 + movs r0, #3 + b _080138F8 +_080138E2: + lsls r0, r2, #0x1d + cmp r0, #0 + bge _080138EC + movs r0, #1 + b _080138F8 +_080138EC: + ldrb r0, [r1, #0x1b] + cmp r0, #0 + beq _080138F6 + movs r0, #2 + b _080138F8 +_080138F6: + movs r0, #0 +_080138F8: + pop {r1} + bx r1 + thumb_func_end sub_080138C4 + + thumb_func_start sub_080138FC +sub_080138FC: @ 0x080138FC + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #8 + adds r5, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + ldr r0, _08013948 + ldr r0, [r0] + mov r8, r0 + bl sub_080138C4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r4, #5 + mov r2, r8 + ldr r3, [r2] + adds r3, r3, r1 + str r0, [sp] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r4, [sp, #4] + adds r0, r5, #0 + movs r1, #9 + adds r2, r6, #0 + bl sub_0801727C + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08013948: .4byte 0x020228E4 + thumb_func_end sub_080138FC + + thumb_func_start sub_0801394C +sub_0801394C: @ 0x0801394C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + ldr r0, _080139B4 + ldr r6, [r0] + movs r7, #0 + movs r3, #0 +_0801395C: + ldr r0, [r6] + lsls r5, r3, #5 + adds r2, r0, r5 + ldrb r0, [r2, #0x1a] + lsls r0, r0, #0x1e + mov r8, r5 + cmp r0, #0 + beq _08013A28 + ldr r1, [r6, #4] + adds r0, r2, #0 + str r3, [sp] + bl sub_080171A8 + adds r4, r0, #0 + ldr r3, [sp] + cmp r4, #0xff + beq _080139F6 + ldr r0, [r6] + adds r2, r0, r5 + ldrb r1, [r2, #0x1a] + lsls r0, r1, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _080139D4 + lsls r0, r4, #3 + subs r0, r0, r4 + lsls r4, r0, #2 + ldr r1, [r6, #4] + adds r1, r1, r4 + adds r0, r2, #0 + bl sub_0801713C + ldr r3, [sp] + cmp r0, #0 + beq _080139B8 + ldr r1, [r6] + ldr r0, [r6, #4] + adds r1, r1, r5 + adds r0, r0, r4 + ldm r0!, {r2, r4, r7} + stm r1!, {r2, r4, r7} + ldm r0!, {r2, r4, r7} + stm r1!, {r2, r4, r7} + b _080139E2 + .align 2, 0 +_080139B4: .4byte 0x020228E4 +_080139B8: + ldr r0, [r6] + adds r1, r0, r5 + ldrb r0, [r1, #0x1b] + cmp r0, #0 + beq _080139EC + subs r0, #1 + strb r0, [r1, #0x1b] + ldr r0, [r6] + adds r0, r0, r5 + ldrb r0, [r0, #0x1b] + cmp r0, #0 + bne _080139EC + movs r7, #2 + b _080139EC +_080139D4: + movs r4, #4 + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x1a] +_080139E2: + ldr r0, [r6] + adds r0, r0, r5 + movs r1, #0x40 + strb r1, [r0, #0x1b] + movs r7, #1 +_080139EC: + ldr r0, [r6] + add r0, r8 + movs r1, #0 + strh r1, [r0, #0x18] + b _08013A28 +_080139F6: + ldr r0, [r6] + adds r1, r0, r5 + ldrb r0, [r1, #0x1a] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #2 + beq _08013A28 + ldrh r0, [r1, #0x18] + adds r0, #1 + strh r0, [r1, #0x18] + ldr r0, [r6] + adds r2, r0, r5 + ldrh r1, [r2, #0x18] + ldr r0, _08013A64 + cmp r1, r0 + bls _08013A28 + ldrb r0, [r2, #0x1a] + movs r7, #4 + rsbs r7, r7, #0 + adds r1, r7, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #0x1a] + movs r7, #2 +_08013A28: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0xf + bls _0801395C + movs r5, #0 + movs r4, #3 +_08013A36: + ldr r0, [r6] + ldr r1, [r6, #4] + adds r1, r1, r5 + movs r2, #0x10 + bl sub_080171F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _08013A4C + movs r7, #1 +_08013A4C: + adds r5, #0x1c + subs r4, #1 + cmp r4, #0 + bge _08013A36 + adds r0, r7, #0 + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08013A64: .4byte 0x0000012B + thumb_func_end sub_0801394C + + thumb_func_start sub_08013A68 +sub_08013A68: @ 0x08013A68 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl sub_08076DB4 + adds r0, r4, #0 + bl DestroyTask + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08013A68 + + thumb_func_start sub_08013A80 +sub_08013A80: @ 0x08013A80 + push {lr} + ldr r0, _08013A94 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_08013A94: .4byte 0x08013A69 + thumb_func_end sub_08013A80 + + thumb_func_start sub_08013A98 +sub_08013A98: @ 0x08013A98 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _08013AD4 + mov r8, r0 + bl GetMultiplayerId + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r0, r8 + bl sub_08017BDC + adds r7, r0, #0 + ldr r1, _08013AD8 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r5, r0, r1 + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #1 + beq _08013B04 + cmp r0, #1 + bgt _08013ADC + cmp r0, #0 + beq _08013AE6 + b _08013BC4 + .align 2, 0 +_08013AD4: .4byte 0x020228F4 +_08013AD8: .4byte 0x03005B60 +_08013ADC: + cmp r0, #2 + beq _08013B40 + cmp r0, #3 + beq _08013B78 + b _08013BC4 +_08013AE6: + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + movs r0, #0x64 + adds r1, r7, #0 + muls r1, r0, r1 + ldr r0, _08013B00 + adds r1, r1, r0 + movs r0, #0 + movs r2, #0x64 + bl SendBlock + b _08013BC4 + .align 2, 0 +_08013B00: .4byte 0x02024190 +_08013B04: + bl GetBlockReceivedStatus + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bne _08013BC4 + bl GetMultiplayerId + adds r1, r0, #0 + ldr r0, _08013B38 + movs r2, #1 + eors r1, r2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x10 + ldr r2, _08013B3C + adds r1, r1, r2 + movs r2, #0x64 + bl memcpy + movs r0, #0x32 + bl IncrementGameStat + bl ResetBlockReceivedFlags + b _08013B62 + .align 2, 0 +_08013B38: .4byte 0x020243E8 +_08013B3C: .4byte 0x0202207C +_08013B40: + ldr r4, _08013B6C + ldr r0, _08013B70 + ldr r1, [r0] + ldr r0, _08013B74 + adds r1, r1, r0 + adds r0, r4, #0 + movs r2, #0xdc + bl memcpy + movs r0, #0 + adds r1, r4, #0 + movs r2, #0xdc + bl SendBlock + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08013BC4 +_08013B62: + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + b _08013BC4 + .align 2, 0 +_08013B6C: .4byte 0x0202257C +_08013B70: .4byte 0x03005AEC +_08013B74: .4byte 0x00002BE0 +_08013B78: + bl GetBlockReceivedStatus + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bne _08013BC4 + ldr r4, _08013BD0 + bl GetMultiplayerId + adds r1, r0, #0 + movs r0, #1 + eors r1, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x10 + ldr r0, _08013BD4 + adds r1, r1, r0 + adds r0, r4, #0 + movs r2, #0xd8 + bl memcpy + bl ResetBlockReceivedFlags + ldr r1, _08013BD8 + strb r7, [r1] + movs r0, #6 + strb r0, [r1, #1] + ldr r1, _08013BDC + ldr r0, _08013BE0 + str r0, [r1, #8] + ldr r0, _08013BE4 + bl SetMainCallback2 + mov r0, r8 + bl sub_08017B38 + adds r0, r6, #0 + bl DestroyTask +_08013BC4: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08013BD0: .4byte 0x02031E60 +_08013BD4: .4byte 0x0202207C +_08013BD8: .4byte 0x02031F38 +_08013BDC: .4byte 0x03002360 +_08013BE0: .4byte 0x08085A31 +_08013BE4: .4byte 0x0807A8AD + thumb_func_end sub_08013A98 + + thumb_func_start sub_08013BE8 +sub_08013BE8: @ 0x08013BE8 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _08013C08 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _08013C0C + cmp r0, #1 + beq _08013C24 + b _08013CA6 + .align 2, 0 +_08013C08: .4byte 0x03005B60 +_08013C0C: + bl GetMultiplayerId + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08013C1C + movs r0, #2 + bl sub_0800A09C +_08013C1C: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _08013CA6 +_08013C24: + bl GetBlockReceivedStatus + adds r4, r0, #0 + bl sub_0800A59C + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + bne _08013CA6 + movs r4, #0 + ldr r5, _08013C3C + b _08013C5A + .align 2, 0 +_08013C3C: .4byte 0x020226A0 +_08013C40: + lsls r1, r4, #8 + ldr r0, _08013C90 + adds r3, r1, r0 + movs r0, #0x64 + muls r0, r4, r0 + ldr r1, _08013C94 + adds r0, r0, r1 + ldrb r2, [r5] + adds r1, r3, #0 + bl CopyTrainerCardData + adds r5, #0x1c + adds r4, #1 +_08013C5A: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + blt _08013C40 + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _08013C98 + bl GetMultiplayerId + movs r1, #1 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x10 + ldr r1, _08013C90 + adds r3, r0, r1 + adds r0, r3, #0 + adds r0, #0x60 + ldrh r0, [r0] + bl sub_0801B464 + b _08013C9C + .align 2, 0 +_08013C90: .4byte 0x0202207C +_08013C94: .4byte 0x020397F8 +_08013C98: + bl sub_0801B458 +_08013C9C: + bl ResetBlockReceivedFlags + adds r0, r6, #0 + bl DestroyTask +_08013CA6: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_08013BE8 + + thumb_func_start sub_08013CAC +sub_08013CAC: @ 0x08013CAC + push {r4, lr} + ldr r0, _08013CC4 + movs r1, #0x87 + lsls r1, r1, #3 + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, #0 + beq _08013CC8 + cmp r0, #1 + beq _08013CDC + b _08013CFA + .align 2, 0 +_08013CC4: .4byte 0x03002360 +_08013CC8: + ldr r0, _08013CD8 + movs r1, #5 + bl CreateTask + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + b _08013CFA + .align 2, 0 +_08013CD8: .4byte 0x08013BE9 +_08013CDC: + ldr r0, _08013D10 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08013CFA + bl GetMultiplayerId + movs r1, #1 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08013D14 + bl ShowTrainerCardInLink +_08013CFA: + bl RunTasks + bl RunTextPrinters + bl AnimateSprites + bl BuildOamBuffer + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08013D10: .4byte 0x08013BE9 +_08013D14: .4byte 0x08085A31 + thumb_func_end sub_08013CAC + + thumb_func_start sub_08013D18 +sub_08013D18: @ 0x08013D18 + push {r4, r5, r6, lr} + adds r6, r0, #0 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + bl HealPlayerParty + bl SavePlayerParty + bl LoadPlayerBag + ldr r5, _08013D84 + ldr r0, _08013D88 + str r0, [r5, #0x14] + bl GetMultiplayerId + adds r4, r0, #0 + bl GetMultiplayerId + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r1, r4, #3 + subs r1, r1, r4 + lsls r1, r1, #2 + adds r1, r1, r5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r1, #0x18] + bl GetMultiplayerId + adds r4, r0, #0 + bl GetMultiplayerId + movs r2, #1 + eors r4, r2 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r1, r4, #3 + subs r1, r1, r4 + lsls r1, r1, #2 + adds r1, r1, r5 + eors r0, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r1, #0x18] + ldr r1, _08013D8C + ldr r0, _08013D90 + str r0, [r1, #8] + ldr r0, _08013D94 + str r6, [r0] + bl GetFlavorRelationByPersonality + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08013D84: .4byte 0x020226A0 +_08013D88: .4byte 0x00002211 +_08013D8C: .4byte 0x03002360 +_08013D90: .4byte 0x080B2D69 +_08013D94: .4byte 0x02022C90 + thumb_func_end sub_08013D18 + + thumb_func_start sub_08013D98 +sub_08013D98: @ 0x08013D98 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #8 + adds r3, r0, #0 + adds r4, r1, #0 + adds r5, r2, #0 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + ldr r0, _08013E04 + adds r1, r3, #0 + bl VarSet + ldr r6, _08013E08 + ldr r1, [r6] + movs r0, #4 + ldrsb r0, [r1, r0] + ldrb r1, [r1, #5] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + movs r2, #1 + rsbs r2, r2, #0 + mov r8, r2 + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + lsls r5, r5, #0x18 + asrs r5, r5, #0x18 + str r5, [sp] + adds r3, r4, #0 + bl SetWarpDestination + ldr r0, [r6] + movs r1, #4 + ldrsb r1, [r0, r1] + movs r2, #5 + ldrsb r2, [r0, r2] + str r4, [sp] + str r5, [sp, #4] + movs r0, #0 + mov r3, r8 + bl SetDynamicWarpWithCoords + bl WarpIntoMap + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08013E04: .4byte 0x00004087 +_08013E08: .4byte 0x03005AEC + thumb_func_end sub_08013D98 + + thumb_func_start sub_08013E0C +sub_08013E0C: @ 0x08013E0C + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + mov r8, r2 + adds r6, r3, #0 + ldr r1, [sp, #0x18] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r0, _08013E7C + strh r1, [r0] + ldr r0, _08013E80 + bl VarSet + bl GetLinkPlayerCount + ldr r1, _08013E84 + strb r0, [r1] + bl GetMultiplayerId + ldr r1, _08013E88 + strb r0, [r1] + bl SetCableClubWarp + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + lsls r5, r5, #0x18 + asrs r5, r5, #0x18 + movs r2, #1 + rsbs r2, r2, #0 + mov r0, r8 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + mov r8, r0 + lsls r6, r6, #0x18 + asrs r6, r6, #0x18 + str r6, [sp] + adds r0, r4, #0 + adds r1, r5, #0 + mov r3, r8 + bl SetWarpDestination + bl WarpIntoMap + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08013E7C: .4byte 0x02037280 +_08013E80: .4byte 0x00004087 +_08013E84: .4byte 0x03005B18 +_08013E88: .4byte 0x03005B14 + thumb_func_end sub_08013E0C + + thumb_func_start sub_08013E8C +sub_08013E8C: @ 0x08013E8C + push {r4, lr} + ldr r0, _08013EA4 + movs r1, #0x87 + lsls r1, r1, #3 + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, #0 + beq _08013EA8 + cmp r0, #1 + beq _08013EBC + b _08013ECE + .align 2, 0 +_08013EA4: .4byte 0x03002360 +_08013EA8: + ldr r0, _08013EB8 + movs r1, #5 + bl CreateTask + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + b _08013ECE + .align 2, 0 +_08013EB8: .4byte 0x08013BE9 +_08013EBC: + ldr r0, _08013EE4 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08013ECE + ldr r0, _08013EE8 + bl SetMainCallback2 +_08013ECE: + bl RunTasks + bl RunTextPrinters + bl AnimateSprites + bl BuildOamBuffer + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08013EE4: .4byte 0x08013BE9 +_08013EE8: .4byte 0x080859DD + thumb_func_end sub_08013E8C + + thumb_func_start sub_08013EEC +sub_08013EEC: @ 0x08013EEC + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl TrainerCard_GenerateCardForPlayer + cmp r5, #0 + beq _08013F06 + bl GetWonderCardFlagID + adds r1, r4, #0 + adds r1, #0x60 + strh r0, [r1] + b _08013F0C +_08013F06: + adds r0, r4, #0 + adds r0, #0x60 + strh r5, [r0] +_08013F0C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08013EEC + + thumb_func_start sub_08013F14 +sub_08013F14: @ 0x08013F14 + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl sub_0801B458 + ldr r0, _08013F34 + ldrb r0, [r0] + subs r0, #1 + cmp r0, #0xe + bhi _08013F7C + lsls r0, r0, #2 + ldr r1, _08013F38 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08013F34: .4byte 0x020228E0 +_08013F38: .4byte 0x08013F3C +_08013F3C: @ jump table + .4byte _08013F78 @ case 0 + .4byte _08013F78 @ case 1 + .4byte _08013F78 @ case 2 + .4byte _08013F78 @ case 3 + .4byte _08013F7C @ case 4 + .4byte _08013F7C @ case 5 + .4byte _08013F7C @ case 6 + .4byte _08013F7C @ case 7 + .4byte _08013F78 @ case 8 + .4byte _08013F78 @ case 9 + .4byte _08013F78 @ case 10 + .4byte _08013F7C @ case 11 + .4byte _08013F78 @ case 12 + .4byte _08013F7C @ case 13 + .4byte _08013F78 @ case 14 +_08013F78: + bl RecordMixTrainerNames +_08013F7C: + ldr r0, _08013F94 + ldrb r0, [r0] + subs r0, #1 + cmp r0, #0x50 + bls _08013F88 + b _0801426C +_08013F88: + lsls r0, r0, #2 + ldr r1, _08013F98 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08013F94: .4byte 0x020228E0 +_08013F98: .4byte 0x08013F9C +_08013F9C: @ jump table + .4byte _080140FC @ case 0 + .4byte _08014128 @ case 1 + .4byte _08014154 @ case 2 + .4byte _08014180 @ case 3 + .4byte _080141E0 @ case 4 + .4byte _0801426C @ case 5 + .4byte _0801426C @ case 6 + .4byte _08014204 @ case 7 + .4byte _0801421C @ case 8 + .4byte _0801423C @ case 9 + .4byte _08014254 @ case 10 + .4byte _0801426C @ case 11 + .4byte _0801426C @ case 12 + .4byte _0801426C @ case 13 + .4byte _080141A0 @ case 14 + .4byte _0801426C @ case 15 + .4byte _0801426C @ case 16 + .4byte _0801426C @ case 17 + .4byte _0801426C @ case 18 + .4byte _0801426C @ case 19 + .4byte _0801426C @ case 20 + .4byte _0801426C @ case 21 + .4byte _0801426C @ case 22 + .4byte _0801426C @ case 23 + .4byte _0801426C @ case 24 + .4byte _0801426C @ case 25 + .4byte _0801426C @ case 26 + .4byte _0801426C @ case 27 + .4byte _0801426C @ case 28 + .4byte _0801426C @ case 29 + .4byte _0801426C @ case 30 + .4byte _0801426C @ case 31 + .4byte _0801426C @ case 32 + .4byte _0801426C @ case 33 + .4byte _0801426C @ case 34 + .4byte _0801426C @ case 35 + .4byte _0801426C @ case 36 + .4byte _0801426C @ case 37 + .4byte _0801426C @ case 38 + .4byte _0801426C @ case 39 + .4byte _0801426C @ case 40 + .4byte _0801426C @ case 41 + .4byte _0801426C @ case 42 + .4byte _0801426C @ case 43 + .4byte _0801426C @ case 44 + .4byte _0801426C @ case 45 + .4byte _0801426C @ case 46 + .4byte _0801426C @ case 47 + .4byte _0801426C @ case 48 + .4byte _0801426C @ case 49 + .4byte _0801426C @ case 50 + .4byte _0801426C @ case 51 + .4byte _0801426C @ case 52 + .4byte _0801426C @ case 53 + .4byte _0801426C @ case 54 + .4byte _0801426C @ case 55 + .4byte _0801426C @ case 56 + .4byte _0801426C @ case 57 + .4byte _0801426C @ case 58 + .4byte _0801426C @ case 59 + .4byte _0801426C @ case 60 + .4byte _0801426C @ case 61 + .4byte _0801426C @ case 62 + .4byte _0801426C @ case 63 + .4byte _080140E0 @ case 64 + .4byte _0801426C @ case 65 + .4byte _0801426C @ case 66 + .4byte _080141CC @ case 67 + .4byte _080141E0 @ case 68 + .4byte _0801426C @ case 69 + .4byte _0801426C @ case 70 + .4byte _08014204 @ case 71 + .4byte _0801426C @ case 72 + .4byte _0801426C @ case 73 + .4byte _0801426C @ case 74 + .4byte _0801426C @ case 75 + .4byte _0801426C @ case 76 + .4byte _0801426C @ case 77 + .4byte _0801426C @ case 78 + .4byte _0801426C @ case 79 + .4byte _080140E0 @ case 80 +_080140E0: + bl CleanupOverworldWindowsAndTilemaps + ldr r1, _080140F4 + ldr r0, _080140F8 + str r0, [r1, #8] + movs r0, #3 + bl InitChooseHalfPartyForBattle + b _0801426C + .align 2, 0 +_080140F4: .4byte 0x03002360 +_080140F8: .4byte 0x0801A729 +_080140FC: + bl CleanupOverworldWindowsAndTilemaps + ldr r0, _08014124 + movs r1, #1 + bl sub_08013EEC + bl HealPlayerParty + bl SavePlayerParty + bl LoadPlayerBag + movs r0, #1 + str r0, [sp] + movs r0, #0x19 + movs r1, #0x18 + movs r2, #6 + movs r3, #8 + b _080141B8 + .align 2, 0 +_08014124: .4byte 0x0202257C +_08014128: + bl CleanupOverworldWindowsAndTilemaps + bl HealPlayerParty + bl SavePlayerParty + bl LoadPlayerBag + ldr r0, _08014150 + movs r1, #1 + bl sub_08013EEC + movs r0, #2 + str r0, [sp] + movs r0, #0x19 + movs r1, #0x18 + movs r2, #6 + movs r3, #8 + b _080141B8 + .align 2, 0 +_08014150: .4byte 0x0202257C +_08014154: + bl CleanupOverworldWindowsAndTilemaps + bl HealPlayerParty + bl SavePlayerParty + bl LoadPlayerBag + ldr r0, _0801417C + movs r1, #1 + bl sub_08013EEC + movs r0, #5 + str r0, [sp] + movs r0, #0x19 + movs r1, #0x1b + movs r2, #5 + movs r3, #8 + b _080141B8 + .align 2, 0 +_0801417C: .4byte 0x0202257C +_08014180: + ldr r0, _0801419C + movs r1, #1 + bl sub_08013EEC + bl CleanupOverworldWindowsAndTilemaps + movs r0, #3 + str r0, [sp] + movs r0, #0x19 + movs r1, #0x19 + movs r2, #5 + movs r3, #8 + b _080141B8 + .align 2, 0 +_0801419C: .4byte 0x0202257C +_080141A0: + ldr r0, _080141C4 + movs r1, #1 + bl sub_08013EEC + bl CleanupOverworldWindowsAndTilemaps + movs r0, #4 + str r0, [sp] + movs r0, #0x19 + movs r1, #0x1a + movs r2, #8 + movs r3, #9 +_080141B8: + bl sub_08013E0C + ldr r0, _080141C8 + bl SetMainCallback2 + b _0801426C + .align 2, 0 +_080141C4: .4byte 0x0202257C +_080141C8: .4byte 0x08013E8D +_080141CC: + bl CleanupOverworldWindowsAndTilemaps + ldr r0, _080141DC + movs r1, #0 + bl CreateTask + b _0801426C + .align 2, 0 +_080141DC: .4byte 0x08013A99 +_080141E0: + bl GetMultiplayerId + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080141F0 + bl sub_0800E7D0 + b _080141FE +_080141F0: + bl sub_0800E7E8 + movs r0, #0x45 + movs r1, #0 + movs r2, #1 + bl sub_08010A74 +_080141FE: + bl sub_0801DBBC + b _0801426C +_08014204: + ldr r0, _08014214 + movs r1, #0 + bl sub_08013EEC + ldr r0, _08014218 + bl SetMainCallback2 + b _0801426C + .align 2, 0 +_08014214: .4byte 0x0202257C +_08014218: .4byte 0x08013CAD +_0801421C: + movs r0, #8 + movs r1, #5 + movs r2, #1 + bl sub_08013D98 + bl GetCursorSelectionMonId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08014238 + bl sub_0802A69C + b _0801426C + .align 2, 0 +_08014238: .4byte 0x08085935 +_0801423C: + movs r0, #7 + movs r1, #9 + movs r2, #1 + bl sub_08013D98 + ldr r0, _08014250 + bl sub_08020988 + b _0801426C + .align 2, 0 +_08014250: .4byte 0x08085935 +_08014254: + movs r0, #8 + movs r1, #5 + movs r2, #1 + bl sub_08013D98 + bl GetCursorSelectionMonId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _0801428C + bl sub_08024704 +_0801426C: + adds r0, r4, #0 + bl DestroyTask + ldr r1, _08014290 + movs r0, #1 + strh r0, [r1] + ldr r0, _08014294 + ldrb r0, [r0] + cmp r0, #0x44 + beq _08014284 + bl ScriptContext2_Disable +_08014284: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801428C: .4byte 0x08085935 +_08014290: .4byte 0x02037290 +_08014294: .4byte 0x020228E0 + thumb_func_end sub_08013F14 + + thumb_func_start sub_08014298 +sub_08014298: @ 0x08014298 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _080142C8 + adds r7, r0, r1 + ldr r0, _080142CC + mov sb, r0 + movs r1, #0 + ldrsh r0, [r7, r1] + mov r2, sb + cmp r0, #8 + bls _080142BE + b _080144BA +_080142BE: + lsls r0, r0, #2 + ldr r1, _080142D0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080142C8: .4byte 0x03005B68 +_080142CC: .4byte 0x0202257C +_080142D0: .4byte 0x080142D4 +_080142D4: @ jump table + .4byte _080142F8 @ case 0 + .4byte _080143D4 @ case 1 + .4byte _080143EC @ case 2 + .4byte _08014426 @ case 3 + .4byte _0801443C @ case 4 + .4byte _08014452 @ case 5 + .4byte _0801448E @ case 6 + .4byte _0801449A @ case 7 + .4byte _080144A4 @ case 8 +_080142F8: + ldr r1, _08014314 + movs r0, #1 + strh r0, [r1] + ldr r0, _08014318 + ldrb r0, [r0] + subs r0, #0xe + cmp r0, #0xe + bhi _080143CA + lsls r0, r0, #2 + ldr r1, _0801431C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08014314: .4byte 0x02037290 +_08014318: .4byte 0x020228E0 +_0801431C: .4byte 0x08014320 +_08014320: @ jump table + .4byte _0801435C @ case 0 + .4byte _080143CA @ case 1 + .4byte _080143C0 @ case 2 + .4byte _080143CA @ case 3 + .4byte _080143CA @ case 4 + .4byte _080143CA @ case 5 + .4byte _080143CA @ case 6 + .4byte _080143CA @ case 7 + .4byte _080143CA @ case 8 + .4byte _080143C0 @ case 9 + .4byte _080143C0 @ case 10 + .4byte _080143C0 @ case 11 + .4byte _080143C0 @ case 12 + .4byte _080143C0 @ case 13 + .4byte _0801435C @ case 14 +_0801435C: + ldr r1, _080143AC + ldr r0, _080143B0 + str r0, [r1, #0x14] + movs r2, #0 + mov r8, r2 + mov r0, r8 + strh r0, [r1, #0x18] + movs r0, #2 + strh r0, [r1, #0x34] + ldr r6, _080143B4 + ldrb r0, [r6] + movs r5, #0x64 + muls r0, r5, r0 + ldr r4, _080143B8 + adds r0, r0, r4 + movs r1, #0xb + bl GetMonData + mov r1, sb + strh r0, [r1] + ldrb r0, [r6, #1] + muls r0, r5, r0 + adds r0, r0, r4 + movs r1, #0xb + movs r2, #0 + bl GetMonData + mov r2, sb + strh r0, [r2, #2] + ldr r0, _080143BC + mov r1, r8 + str r1, [r0, #8] + movs r0, #4 + strh r0, [r7] + bl RecordMixTrainerNames + bl ResetBlockReceivedFlags + b _080144BA + .align 2, 0 +_080143AC: .4byte 0x020226A0 +_080143B0: .4byte 0x00002211 +_080143B4: .4byte 0x0203CBC4 +_080143B8: .4byte 0x0202412C +_080143BC: .4byte 0x03002360 +_080143C0: + bl RecordMixTrainerNames + adds r0, r4, #0 + bl DestroyTask +_080143CA: + bl EnableBothScriptContexts + movs r0, #1 + strh r0, [r7] + b _080144BA +_080143D4: + bl ScriptContext1_IsScriptSetUp + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080144BA + movs r0, #1 + movs r1, #0 + bl FadeScreen + movs r0, #2 + strh r0, [r7] + b _080144BA +_080143EC: + ldr r0, _08014410 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080144BA + ldr r0, _08014414 + ldrb r0, [r0] + cmp r0, #0x1d + bne _0801441C + adds r0, r4, #0 + bl DestroyTask + ldr r0, _08014418 + bl SetMainCallback2 + b _080144BA + .align 2, 0 +_08014410: .4byte 0x02037C74 +_08014414: .4byte 0x020228E0 +_08014418: .4byte 0x08076DB5 +_0801441C: + bl sub_0800A8D4 + movs r0, #3 + strh r0, [r7] + b _080144BA +_08014426: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080144BA + adds r0, r4, #0 + bl DestroyTask + bl sub_080144E0 + b _080144BA +_0801443C: + movs r0, #0 + adds r1, r2, #0 + movs r2, #0xe + bl SendBlock + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080144BA + movs r0, #5 + strh r0, [r7] + b _080144BA +_08014452: + bl GetBlockReceivedStatus + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bne _080144BA + bl ResetBlockReceivedFlags + ldr r0, _08014480 + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r0, r2 + bl sub_080B23D0 + cmp r0, #0 + beq _08014488 + ldr r0, _08014484 + movs r1, #0xb + strh r1, [r0] + movs r0, #7 + strh r0, [r7] + b _080144BA + .align 2, 0 +_08014480: .4byte 0x0202207C +_08014484: .4byte 0x02037290 +_08014488: + movs r0, #6 + strh r0, [r7] + b _080144BA +_0801448E: + bl EnableBothScriptContexts + adds r0, r4, #0 + bl DestroyTask + b _080144BA +_0801449A: + bl sub_0800A7F8 + movs r0, #8 + strh r0, [r7] + b _080144BA +_080144A4: + ldr r0, _080144C8 + ldrb r0, [r0] + cmp r0, #0 + bne _080144BA + bl DestroyWirelessStatusIndicatorSprite + bl EnableBothScriptContexts + adds r0, r4, #0 + bl DestroyTask +_080144BA: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080144C8: .4byte 0x030031C4 + thumb_func_end sub_08014298 + + thumb_func_start sub_080144CC +sub_080144CC: @ 0x080144CC + push {lr} + ldr r0, _080144DC + movs r1, #0 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080144DC: .4byte 0x08014299 + thumb_func_end sub_080144CC + + thumb_func_start sub_080144E0 +sub_080144E0: @ 0x080144E0 + push {lr} + ldr r0, _08014500 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08014504 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + movs r0, #0 + strh r0, [r1, #8] + pop {r0} + bx r0 + .align 2, 0 +_08014500: .4byte 0x08013F15 +_08014504: .4byte 0x03005B60 + thumb_func_end sub_080144E0 + + thumb_func_start MEvent_CreateTask_Leader +MEvent_CreateTask_Leader: @ 0x08014508 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08014538 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _0801453C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _08014540 + adds r1, r1, r0 + str r1, [r2] + movs r2, #0 + strb r2, [r1, #0xc] + strb r2, [r1, #0xd] + strb r4, [r1, #0x18] + ldr r0, _08014544 + strh r2, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08014538: .4byte 0x08014549 +_0801453C: .4byte 0x020228E4 +_08014540: .4byte 0x03005B68 +_08014544: .4byte 0x02037290 + thumb_func_end MEvent_CreateTask_Leader + + thumb_func_start sub_08014548 +sub_08014548: @ 0x08014548 + push {r4, r5, r6, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _08014568 + ldr r5, [r0] + ldrb r0, [r5, #0xc] + cmp r0, #0x11 + bls _0801455C + b _080149FA +_0801455C: + lsls r0, r0, #2 + ldr r1, _0801456C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08014568: .4byte 0x020228E4 +_0801456C: .4byte 0x08014570 +_08014570: @ jump table + .4byte _080145B8 @ case 0 + .4byte _080145F4 @ case 1 + .4byte _080146C4 @ case 2 + .4byte _080146F4 @ case 3 + .4byte _08014704 @ case 4 + .4byte _08014754 @ case 5 + .4byte _0801472C @ case 6 + .4byte _0801475A @ case 7 + .4byte _080147FA @ case 8 + .4byte _080148C4 @ case 9 + .4byte _080148D4 @ case 10 + .4byte _080148EA @ case 11 + .4byte _08014902 @ case 12 + .4byte _0801491E @ case 13 + .4byte _08014956 @ case 14 + .4byte _0801497C @ case 15 + .4byte _080149B0 @ case 16 + .4byte _080149EA @ case 17 +_080145B8: + ldr r1, _080145EC + ldrb r0, [r5, #0x18] + strb r0, [r1] + ldr r1, _080145F0 + movs r0, #2 + strb r0, [r1] + ldrb r0, [r5, #0x18] + movs r1, #0 + movs r2, #0 + bl sub_08010A74 + movs r0, #0 + movs r1, #0 + bl sub_08010A90 + bl sub_0800AF5C + bl OpenLink + movs r0, #2 + bl sub_080116FC + movs r0, #1 + strb r0, [r5, #0xc] + b _080149FA + .align 2, 0 +_080145EC: .4byte 0x020228E0 +_080145F0: .4byte 0x020228E1 +_080145F4: + movs r0, #0x70 + bl AllocZeroed + str r0, [r5, #4] + movs r0, #0xa0 + bl AllocZeroed + str r0, [r5] + movs r0, #0xa0 + bl AllocZeroed + str r0, [r5, #8] + ldr r0, [r5, #4] + movs r1, #4 + bl sub_080170B0 + ldr r0, [r5] + movs r1, #5 + bl sub_08017044 + ldr r0, [r5] + adds r1, r0, #0 + adds r1, #0x10 + bl sub_0800DA5C + ldr r1, [r5] + movs r3, #0 + movs r0, #0 + strh r0, [r1, #0x18] + ldr r2, [r5] + ldrb r1, [r2, #0x1a] + subs r0, #4 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x1a] + ldr r2, [r5] + ldrb r1, [r2, #0x1a] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x1a] + ldr r0, [r5] + strb r3, [r0, #0x1b] + ldr r0, [r5, #4] + movs r1, #0xff + bl sub_08016AD0 + strb r0, [r5, #0x17] + ldr r0, _080146B0 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [sp] + str r1, [sp, #4] + bl GetMysteryGiftBaseBlock + lsls r0, r0, #0x10 + ldr r2, _080146B4 + ldr r1, [sp, #4] + ands r1, r2 + orrs r1, r0 + ldr r0, _080146B8 + ands r1, r0 + movs r0, #0xc0 + lsls r0, r0, #4 + orrs r1, r0 + str r1, [sp, #4] + mov r0, sp + bl AddWindow + strb r0, [r5, #0xf] + ldrb r0, [r5, #0xf] + bl MG_DrawTextBorder + ldr r0, _080146BC + adds r2, r0, #0 + ldr r1, _080146C0 + ldm r1!, {r3, r4, r6} + stm r2!, {r3, r4, r6} + ldm r1!, {r3, r4, r6} + stm r2!, {r3, r4, r6} + ldrb r1, [r5, #0xf] + strb r1, [r0, #0x10] + movs r1, #0 + movs r2, #0 + bl ListMenuInit + strb r0, [r5, #0x12] + movs r0, #0 + bl CopyBgTilemapBufferToVram + movs r0, #1 + strb r0, [r5, #0x13] + b _0801474A + .align 2, 0 +_080146B0: .4byte 0x082C2024 +_080146B4: .4byte 0x0000FFFF +_080146B8: .4byte 0xFFFF00FF +_080146BC: .4byte 0x03006050 +_080146C0: .4byte 0x082C2064 +_080146C4: + ldr r0, _080146E4 + ldr r2, _080146E8 + ldr r4, _080146EC + ldrb r1, [r4] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl StringCopy + ldr r0, _080146F0 + ldrb r1, [r4] + bl sub_08012134 + movs r0, #3 + strb r0, [r5, #0xc] + b _080149FA + .align 2, 0 +_080146E4: .4byte 0x02021C40 +_080146E8: .4byte 0x082C1E58 +_080146EC: .4byte 0x020228E0 +_080146F0: .4byte 0x02021C7C +_080146F4: + ldr r0, _08014700 + bl AddTextPrinterToWindow1 + movs r0, #4 + strb r0, [r5, #0xc] + b _080149FA + .align 2, 0 +_08014700: .4byte 0x02021C7C +_08014704: + adds r0, r5, #0 + movs r1, #5 + movs r2, #6 + bl sub_08012D0C + ldr r0, _08014728 + ldrh r1, [r0, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0801471C + b _080149FA +_0801471C: + movs r0, #0xd + strb r0, [r5, #0xc] + bl DestroyWirelessStatusIndicatorSprite + b _080149FA + .align 2, 0 +_08014728: .4byte 0x03002360 +_0801472C: + adds r0, r5, #0 + adds r0, #0xd + ldr r1, _08014750 + bl MG_PrintTextOnWindow1AndWaitButton + cmp r0, #0 + bne _0801473C + b _080149FA +_0801473C: + ldr r0, [r5] + bl sub_08012E9C + strb r0, [r5, #0x13] + ldrb r0, [r5, #0x12] + bl RedrawListMenu +_0801474A: + movs r0, #2 + strb r0, [r5, #0xc] + b _080149FA + .align 2, 0 +_08014750: .4byte 0x082C0AE4 +_08014754: + movs r0, #7 + strb r0, [r5, #0xc] + b _080149FA +_0801475A: + adds r0, r5, #0 + adds r0, #0xd + adds r1, r5, #0 + adds r1, #0x14 + ldr r3, _08014780 + movs r2, #0 + bl mevent_message_print_and_prompt_yes_no + lsls r0, r0, #0x18 + asrs r4, r0, #0x18 + cmp r4, #0 + beq _0801478A + cmp r4, #0 + bgt _08014784 + movs r0, #1 + rsbs r0, r0, #0 + cmp r4, r0 + beq _080147CC + b _080149FA + .align 2, 0 +_08014780: .4byte 0x02021C7C +_08014784: + cmp r4, #1 + beq _080147CC + b _080149FA +_0801478A: + bl LoadWirelessStatusIndicatorSpriteGfx + movs r0, #0 + movs r1, #0 + bl CreateWirelessStatusIndicatorSprite + ldr r1, [r5] + ldrb r0, [r5, #0x13] + lsls r0, r0, #5 + adds r1, r1, r0 + strb r4, [r1, #0x1b] + ldrb r0, [r5, #0x12] + bl RedrawListMenu + movs r0, #5 + strb r0, [r5, #0x19] + ldrb r1, [r5, #0x13] + lsls r1, r1, #5 + ldr r0, [r5] + adds r0, r0, r1 + adds r0, #2 + bl ReadAsU16 + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldrb r0, [r5, #0x13] + lsls r0, r0, #5 + ldr r2, [r5] + adds r2, r2, r0 + adds r2, #0x10 + movs r0, #5 + b _080147F0 +_080147CC: + movs r0, #6 + strb r0, [r5, #0x19] + ldrb r1, [r5, #0x13] + lsls r1, r1, #5 + ldr r0, [r5] + adds r0, r0, r1 + adds r0, #2 + bl ReadAsU16 + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldrb r0, [r5, #0x13] + lsls r0, r0, #5 + ldr r2, [r5] + adds r2, r2, r0 + adds r2, #0x10 + movs r0, #6 +_080147F0: + bl sub_08010188 + movs r0, #8 + strb r0, [r5, #0xc] + b _080149FA +_080147FA: + ldrb r1, [r5, #0x13] + lsls r1, r1, #5 + ldr r0, [r5] + adds r0, r0, r1 + adds r0, #2 + bl ReadAsU16 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrb r2, [r5, #0x13] + lsls r2, r2, #5 + ldr r1, [r5] + adds r1, r1, r2 + adds r1, #0x10 + bl sub_08010214 + adds r4, r0, #0 + cmp r4, #1 + bne _080148B2 + ldrb r0, [r5, #0x19] + cmp r0, #5 + bne _0801486C + ldr r1, [r5] + ldrb r0, [r5, #0x13] + lsls r0, r0, #5 + adds r1, r1, r0 + movs r0, #0 + strb r0, [r1, #0x1b] + ldrb r0, [r5, #0x12] + bl RedrawListMenu + ldrb r0, [r5, #0x13] + adds r0, #1 + strb r0, [r5, #0x13] + ldr r0, _08014860 + ldrb r1, [r5, #0x13] + lsls r1, r1, #5 + ldr r2, [r5] + adds r1, r1, r2 + subs r1, #0x10 + bl StringCopy7 + ldr r0, _08014864 + ldr r1, _08014868 + bl StringExpandPlaceholders + movs r0, #9 + strb r0, [r5, #0xc] + bl sub_0800E9F8 + b _080148AC + .align 2, 0 +_08014860: .4byte 0x02021C40 +_08014864: .4byte 0x02021C7C +_08014868: .4byte 0x082C0948 +_0801486C: + ldrb r1, [r5, #0x13] + lsls r1, r1, #5 + ldr r0, [r5] + adds r0, r0, r1 + adds r4, r0, #0 + adds r4, #0x10 + adds r0, #2 + bl ReadAsU16 + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl sub_080118AC + ldr r1, [r5] + ldrb r0, [r5, #0x13] + lsls r0, r0, #5 + adds r1, r1, r0 + ldrb r2, [r1, #0x1a] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #0x1a] + ldr r0, [r5] + bl sub_08012E9C + ldrb r0, [r5, #0x12] + bl RedrawListMenu + movs r0, #2 + strb r0, [r5, #0xc] +_080148AC: + movs r0, #0 + strb r0, [r5, #0x19] + b _080149FA +_080148B2: + cmp r4, #2 + beq _080148B8 + b _080149FA +_080148B8: + movs r0, #0 + movs r1, #0 + bl sub_08011554 + strb r4, [r5, #0xc] + b _080149FA +_080148C4: + ldr r0, _080148D0 + bl AddTextPrinterToWindow1 + movs r0, #0xa + strb r0, [r5, #0xc] + b _080149FA + .align 2, 0 +_080148D0: .4byte 0x02021C7C +_080148D4: + ldrb r0, [r5, #0xe] + adds r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x78 + bhi _080148E4 + b _080149FA +_080148E4: + movs r0, #0xb + strb r0, [r5, #0xc] + b _080149FA +_080148EA: + adds r0, r5, #0 + movs r1, #5 + movs r2, #6 + bl sub_08012D0C + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080148FC + b _080149FA +_080148FC: + movs r0, #0xc + strb r0, [r5, #0xc] + b _080149FA +_08014902: + bl sub_0800E9DC + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08014918 + movs r0, #0 + bl sub_0800EA18 + movs r0, #0xf + strb r0, [r5, #0xc] + b _080149FA +_08014918: + movs r0, #6 + strb r0, [r5, #0xc] + b _080149FA +_0801491E: + bl DestroyWirelessStatusIndicatorSprite + bl sub_0800E894 + ldrb r0, [r5, #0x12] + movs r1, #0 + movs r2, #0 + bl DestroyListMenuTask + movs r0, #0 + bl CopyBgTilemapBufferToVram + ldrb r0, [r5, #0xf] + bl RemoveWindow + ldrb r0, [r5, #0x17] + bl DestroyTask + ldr r0, [r5, #8] + bl Free + ldr r0, [r5] + bl Free + ldr r0, [r5, #4] + bl Free + b _080149E2 +_08014956: + adds r0, r5, #0 + adds r0, #0xd + ldr r1, _08014974 + bl MG_PrintTextOnWindow1AndWaitButton + cmp r0, #0 + beq _080149FA + adds r0, r4, #0 + bl DestroyTask + ldr r1, _08014978 + movs r0, #5 + strh r0, [r1] + b _080149FA + .align 2, 0 +_08014974: .4byte 0x082C064C +_08014978: .4byte 0x02037290 +_0801497C: + bl sub_08011564 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _08014994 + bl sub_08011564 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _0801499A +_08014994: + movs r0, #0xd + strb r0, [r5, #0xc] + b _080149FA +_0801499A: + ldr r0, _080149AC + ldrb r0, [r0] + cmp r0, #0 + beq _080149FA + movs r0, #1 + bl sub_08010B58 + b _080149E2 + .align 2, 0 +_080149AC: .4byte 0x030031C4 +_080149B0: + ldrb r0, [r5, #0x12] + movs r1, #0 + movs r2, #0 + bl DestroyListMenuTask + movs r0, #0 + bl CopyBgTilemapBufferToVram + ldrb r0, [r5, #0xf] + bl RemoveWindow + ldrb r0, [r5, #0x17] + bl DestroyTask + ldr r0, [r5, #8] + bl Free + ldr r0, [r5] + bl Free + ldr r0, [r5, #4] + bl Free + bl sub_0800A8D4 +_080149E2: + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] + b _080149FA +_080149EA: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080149FA + adds r0, r4, #0 + bl DestroyTask +_080149FA: + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08014548 + + thumb_func_start MEvent_CreateTask_CardOrNewsWithFriend +MEvent_CreateTask_CardOrNewsWithFriend: @ 0x08014A04 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08014A3C + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08014A40 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _08014A44 + adds r1, r1, r0 + str r1, [r2] + ldr r0, _08014A48 + str r1, [r0] + movs r2, #0 + strb r2, [r1, #8] + strb r2, [r1, #9] + subs r4, #6 + strb r4, [r1, #0x12] + ldr r0, _08014A4C + strh r2, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08014A3C: .4byte 0x08014A51 +_08014A40: .4byte 0x020228E4 +_08014A44: .4byte 0x03005B68 +_08014A48: .4byte 0x03000DA4 +_08014A4C: .4byte 0x02037290 + thumb_func_end MEvent_CreateTask_CardOrNewsWithFriend + + thumb_func_start sub_08014A50 +sub_08014A50: @ 0x08014A50 + push {r4, r5, r6, r7, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _08014A70 + ldr r7, [r0] + ldrb r0, [r7, #8] + cmp r0, #0xc + bls _08014A64 + b _08014DA8 +_08014A64: + lsls r0, r0, #2 + ldr r1, _08014A74 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08014A70: .4byte 0x020228E4 +_08014A74: .4byte 0x08014A78 +_08014A78: @ jump table + .4byte _08014AAC @ case 0 + .4byte _08014AE0 @ case 1 + .4byte _08014AF0 @ case 2 + .4byte _08014BC0 @ case 3 + .4byte _08014C88 @ case 4 + .4byte _08014CAC @ case 5 + .4byte _08014D0C @ case 6 + .4byte _08014D68 @ case 7 + .4byte _08014D0C @ case 8 + .4byte _08014D42 @ case 9 + .4byte _08014D0C @ case 10 + .4byte _08014D8C @ case 11 + .4byte _08014D98 @ case 12 +_08014AAC: + ldrb r0, [r7, #0x12] + adds r0, #6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + movs r2, #0 + bl sub_08010A74 + bl sub_0800AF5C + bl OpenLink + bl sub_08011748 + movs r0, #0x70 + bl AllocZeroed + str r0, [r7, #4] + movs r0, #0x80 + lsls r0, r0, #2 + bl AllocZeroed + str r0, [r7] + movs r0, #1 + strb r0, [r7, #8] + b _08014DA8 +_08014AE0: + ldr r0, _08014AEC + bl AddTextPrinterToWindow1 + movs r0, #2 + strb r0, [r7, #8] + b _08014DA8 + .align 2, 0 +_08014AEC: .4byte 0x082C19CC +_08014AF0: + ldr r0, [r7, #4] + movs r1, #4 + bl sub_080170B0 + ldr r0, [r7] + movs r1, #0x10 + bl sub_08017044 + ldr r0, [r7, #4] + ldrb r1, [r7, #0x12] + adds r1, #7 + bl sub_08016AD0 + movs r6, #0 + strb r0, [r7, #0x11] + ldr r0, _08014BA8 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [sp] + str r1, [sp, #4] + bl GetMysteryGiftBaseBlock + lsls r0, r0, #0x10 + ldr r2, _08014BAC + ldr r1, [sp, #4] + ands r1, r2 + orrs r1, r0 + ldr r5, _08014BB0 + ands r1, r5 + movs r4, #0xc0 + lsls r4, r4, #4 + orrs r1, r4 + str r1, [sp, #4] + mov r0, sp + bl AddWindow + strb r0, [r7, #0xb] + ldr r0, _08014BB4 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, sp, #8 + ldr r1, [r0, #4] + ands r1, r5 + orrs r1, r4 + str r1, [r0, #4] + bl AddWindow + strb r0, [r7, #0xd] + ldrb r0, [r7, #0xb] + bl MG_DrawTextBorder + ldr r0, _08014BB8 + adds r2, r0, #0 + ldr r1, _08014BBC + ldm r1!, {r3, r4, r5} + stm r2!, {r3, r4, r5} + ldm r1!, {r3, r4, r5} + stm r2!, {r3, r4, r5} + ldrb r1, [r7, #0xb] + strb r1, [r0, #0x10] + movs r1, #0 + movs r2, #0 + bl ListMenuInit + strb r0, [r7, #0xe] + ldrb r0, [r7, #0xd] + bl MG_DrawTextBorder + ldrb r0, [r7, #0xd] + movs r1, #0x11 + bl FillWindowPixelBuffer + ldrb r0, [r7, #0xd] + bl PutWindowTilemap + ldrb r0, [r7, #0xd] + bl sub_080120A8 + ldrb r0, [r7, #0xd] + movs r1, #2 + bl CopyWindowToVram + movs r0, #0 + bl CopyBgTilemapBufferToVram + strb r6, [r7, #0xf] + movs r0, #3 + strb r0, [r7, #8] + b _08014DA8 + .align 2, 0 +_08014BA8: .4byte 0x082C207C +_08014BAC: .4byte 0x0000FFFF +_08014BB0: .4byte 0xFFFF00FF +_08014BB4: .4byte 0x082C2084 +_08014BB8: .4byte 0x03006050 +_08014BBC: .4byte 0x082C210C +_08014BC0: + bl sub_0801394C + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _08014BDE + cmp r2, #1 + bne _08014BD6 + movs r0, #2 + bl PlaySE +_08014BD6: + ldrb r0, [r7, #0xe] + bl RedrawListMenu + b _08014DA8 +_08014BDE: + ldrb r0, [r7, #0xe] + bl ListMenu_ProcessInput + adds r2, r0, #0 + ldr r0, _08014C60 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08014C70 + movs r0, #1 + rsbs r0, r0, #0 + cmp r2, r0 + beq _08014C70 + ldr r0, [r7] + lsls r1, r2, #5 + adds r0, r0, r1 + ldrb r1, [r0, #0xa] + ldrb r0, [r0, #0x1a] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _08014C68 + lsrs r0, r1, #7 + cmp r0, #0 + bne _08014C68 + strb r2, [r7, #0xf] + bl LoadWirelessStatusIndicatorSpriteGfx + movs r0, #0 + movs r1, #0 + bl CreateWirelessStatusIndicatorSprite + ldrb r0, [r7, #0xe] + bl RedrawListMenu + ldr r0, _08014C64 + ldrb r2, [r7, #0xf] + lsls r2, r2, #5 + ldr r1, [r7] + adds r1, r1, r2 + adds r1, #0x10 + bl StringCopy + ldrb r1, [r7, #0xf] + lsls r1, r1, #5 + ldr r0, [r7] + adds r0, r0, r1 + adds r4, r0, #0 + adds r4, #0x10 + adds r0, #2 + bl ReadAsU16 + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl sub_08011AB4 + movs r0, #0x6e + bl PlaySE + movs r0, #4 + strb r0, [r7, #8] + b _08014DA8 + .align 2, 0 +_08014C60: .4byte 0x03002360 +_08014C64: .4byte 0x02021C40 +_08014C68: + movs r0, #7 + bl PlaySE + b _08014DA8 +_08014C70: + ldr r0, _08014C84 + ldrh r1, [r0, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08014C7E + b _08014DA8 +_08014C7E: + movs r0, #6 + strb r0, [r7, #8] + b _08014DA8 + .align 2, 0 +_08014C84: .4byte 0x03002360 +_08014C88: + ldr r0, _08014CA4 + bl AddTextPrinterToWindow1 + ldr r0, _08014CA8 + ldrb r2, [r7, #0xf] + lsls r2, r2, #5 + ldr r1, [r7] + adds r1, r1, r2 + adds r1, #0x10 + bl StringCopy + movs r0, #5 + strb r0, [r7, #8] + b _08014DA8 + .align 2, 0 +_08014CA4: .4byte 0x082C1C80 +_08014CA8: .4byte 0x02021C40 +_08014CAC: + ldr r0, _08014CE4 + ldrb r0, [r0] + cmp r0, #0 + beq _08014CCA + ldr r2, _08014CE8 + ldr r1, [r7] + ldrb r0, [r7, #0xf] + lsls r0, r0, #5 + adds r1, r1, r0 + ldrb r0, [r1, #0xa] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x19 + strb r0, [r2] + movs r0, #0xa + strb r0, [r7, #8] +_08014CCA: + bl sub_08011564 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + beq _08014CF6 + cmp r0, #5 + bgt _08014CEC + cmp r0, #2 + bgt _08014DA8 + cmp r0, #1 + blt _08014DA8 + b _08014CF0 + .align 2, 0 +_08014CE4: .4byte 0x030031C4 +_08014CE8: .4byte 0x020228E0 +_08014CEC: + cmp r0, #6 + bne _08014DA8 +_08014CF0: + movs r0, #8 + strb r0, [r7, #8] + b _08014DA8 +_08014CF6: + ldr r0, _08014D08 + bl AddTextPrinterToWindow1 + movs r0, #0 + movs r1, #0 + bl sub_08011554 + b _08014DA8 + .align 2, 0 +_08014D08: .4byte 0x082C09F8 +_08014D0C: + ldrb r0, [r7, #0xe] + movs r1, #0 + movs r2, #0 + bl DestroyListMenuTask + movs r0, #0 + bl CopyBgTilemapBufferToVram + ldrb r0, [r7, #0xd] + bl RemoveWindow + ldrb r0, [r7, #0xb] + bl RemoveWindow + ldrb r0, [r7, #0x11] + bl DestroyTask + ldr r0, [r7] + bl Free + ldr r0, [r7, #4] + bl Free + ldrb r0, [r7, #8] + adds r0, #1 + strb r0, [r7, #8] + b _08014DA8 +_08014D42: + adds r5, r7, #0 + adds r5, #9 + ldr r4, _08014D64 + bl sub_08011564 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl MG_PrintTextOnWindow1AndWaitButton + cmp r0, #0 + beq _08014DA8 + bl DestroyWirelessStatusIndicatorSprite + b _08014D72 + .align 2, 0 +_08014D64: .4byte 0x082C0B1C +_08014D68: + bl DestroyWirelessStatusIndicatorSprite + ldr r0, _08014D84 + bl AddTextPrinterToWindow1 +_08014D72: + adds r0, r6, #0 + bl DestroyTask + bl sub_0800E894 + ldr r1, _08014D88 + movs r0, #5 + strh r0, [r1] + b _08014DA8 + .align 2, 0 +_08014D84: .4byte 0x082C064C +_08014D88: .4byte 0x02037290 +_08014D8C: + ldrb r0, [r7, #8] + adds r0, #1 + strb r0, [r7, #8] + bl sub_0800A8D4 + b _08014DA8 +_08014D98: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08014DA8 + adds r0, r6, #0 + bl DestroyTask +_08014DA8: + add sp, #0x10 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08014A50 + + thumb_func_start MEvent_CreateTask_CardOrNewsOverWireless +MEvent_CreateTask_CardOrNewsOverWireless: @ 0x08014DB0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08014DE8 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08014DEC + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _08014DF0 + adds r1, r1, r0 + str r1, [r2] + ldr r0, _08014DF4 + str r1, [r0] + movs r2, #0 + strb r2, [r1, #8] + strb r2, [r1, #9] + subs r4, #6 + strb r4, [r1, #0x12] + ldr r0, _08014DF8 + strh r2, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08014DE8: .4byte 0x08014DFD +_08014DEC: .4byte 0x020228E4 +_08014DF0: .4byte 0x03005B68 +_08014DF4: .4byte 0x03000DA4 +_08014DF8: .4byte 0x02037290 + thumb_func_end MEvent_CreateTask_CardOrNewsOverWireless + + thumb_func_start sub_08014DFC +sub_08014DFC: @ 0x08014DFC + push {r4, r5, r6, lr} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, _08014E1C + ldr r5, [r0] + ldrb r0, [r5, #8] + cmp r0, #0xe + bls _08014E10 + b _0801510C +_08014E10: + lsls r0, r0, #2 + ldr r1, _08014E20 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08014E1C: .4byte 0x020228E4 +_08014E20: .4byte 0x08014E24 +_08014E24: @ jump table + .4byte _08014E60 @ case 0 + .4byte _08014E8E @ case 1 + .4byte _08014EA0 @ case 2 + .4byte _08014F28 @ case 3 + .4byte _08014FE8 @ case 4 + .4byte _0801500C @ case 5 + .4byte _0801506C @ case 6 + .4byte _080150B0 @ case 7 + .4byte _0801506C @ case 8 + .4byte _080150A2 @ case 9 + .4byte _0801506C @ case 10 + .4byte _080150BC @ case 11 + .4byte _0801506C @ case 12 + .4byte _080150F0 @ case 13 + .4byte _080150FC @ case 14 +_08014E60: + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl sub_08010A74 + bl sub_0800AF5C + bl OpenLink + bl sub_08011748 + movs r0, #0x70 + bl AllocZeroed + str r0, [r5, #4] + movs r0, #0x80 + lsls r0, r0, #2 + bl AllocZeroed + str r0, [r5] + movs r0, #1 + strb r0, [r5, #8] + b _0801510C +_08014E8E: + ldr r0, _08014E9C + bl AddTextPrinterToWindow1 + movs r0, #2 + strb r0, [r5, #8] + b _0801510C + .align 2, 0 +_08014E9C: .4byte 0x082C1C3C +_08014EA0: + ldr r0, [r5, #4] + movs r1, #4 + bl sub_080170B0 + ldr r0, [r5] + movs r1, #0x10 + bl sub_08017044 + ldr r0, [r5, #4] + ldrb r1, [r5, #0x12] + adds r1, #7 + bl sub_08016B00 + strb r0, [r5, #0x11] + ldrb r0, [r5, #0x13] + cmp r0, #0 + beq _08014F0C + ldr r0, _08014F18 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [sp] + str r1, [sp, #4] + bl GetMysteryGiftBaseBlock + lsls r0, r0, #0x10 + ldr r2, _08014F1C + ldr r1, [sp, #4] + ands r1, r2 + orrs r1, r0 + str r1, [sp, #4] + mov r0, sp + bl AddWindow + strb r0, [r5, #0xb] + ldrb r0, [r5, #0xb] + bl MG_DrawTextBorder + ldr r0, _08014F20 + adds r2, r0, #0 + ldr r1, _08014F24 + ldm r1!, {r3, r4, r6} + stm r2!, {r3, r4, r6} + ldm r1!, {r3, r4, r6} + stm r2!, {r3, r4, r6} + ldrb r1, [r5, #0xb] + strb r1, [r0, #0x10] + movs r1, #0 + movs r2, #0 + bl ListMenuInit + strb r0, [r5, #0xe] + movs r0, #0 + bl CopyBgTilemapBufferToVram +_08014F0C: + movs r0, #0 + strb r0, [r5, #0xf] + movs r0, #3 + strb r0, [r5, #8] + b _0801510C + .align 2, 0 +_08014F18: .4byte 0x082C207C +_08014F1C: .4byte 0x0000FFFF +_08014F20: .4byte 0x03006050 +_08014F24: .4byte 0x082C210C +_08014F28: + bl sub_0801394C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _08014F4E + cmp r0, #1 + bne _08014F3E + movs r0, #2 + bl PlaySE +_08014F3E: + ldrb r0, [r5, #0x13] + cmp r0, #0 + bne _08014F46 + b _0801510C +_08014F46: + ldrb r0, [r5, #0xe] + bl RedrawListMenu + b _0801510C +_08014F4E: + ldrb r0, [r5, #0x13] + cmp r0, #0 + beq _08014F5A + ldrb r0, [r5, #0xe] + bl ListMenu_ProcessInput +_08014F5A: + ldrb r0, [r5, #0x14] + cmp r0, #0x78 + bls _08014FC8 + ldr r2, [r5] + ldrb r1, [r2, #0x1a] + movs r0, #3 + ands r0, r1 + cmp r0, #1 + bne _08014FDC + ldrb r1, [r2, #0xa] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _08014FDC + ldrb r1, [r5, #0x12] + adds r1, #7 + adds r0, r2, #0 + bl sub_08016A2C + cmp r0, #0 + beq _08014FBC + strb r4, [r5, #0xf] + strb r4, [r5, #0x14] + bl LoadWirelessStatusIndicatorSpriteGfx + movs r0, #0 + movs r1, #0 + bl CreateWirelessStatusIndicatorSprite + ldr r0, [r5] + adds r4, r0, #0 + adds r4, #0x10 + adds r0, #2 + bl ReadAsU16 + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + bl sub_08011AB4 + movs r0, #0x6e + bl PlaySE + movs r0, #4 + strb r0, [r5, #8] + b _08014FDC +_08014FBC: + movs r0, #0x16 + bl PlaySE + movs r0, #0xa + strb r0, [r5, #8] + b _08014FDC +_08014FC8: + ldr r0, _08014FE4 + ldrh r1, [r0, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08014FDC + movs r1, #0 + movs r0, #6 + strb r0, [r5, #8] + strb r1, [r5, #0x14] +_08014FDC: + ldrb r0, [r5, #0x14] + adds r0, #1 + strb r0, [r5, #0x14] + b _0801510C + .align 2, 0 +_08014FE4: .4byte 0x03002360 +_08014FE8: + ldr r0, _08015004 + bl AddTextPrinterToWindow1 + ldr r0, _08015008 + ldrb r2, [r5, #0xf] + lsls r2, r2, #5 + ldr r1, [r5] + adds r1, r1, r2 + adds r1, #0x10 + bl StringCopy + movs r0, #5 + strb r0, [r5, #8] + b _0801510C + .align 2, 0 +_08015004: .4byte 0x082C1CB8 +_08015008: .4byte 0x02021C40 +_0801500C: + ldr r0, _08015044 + ldrb r0, [r0] + cmp r0, #0 + beq _0801502A + ldr r2, _08015048 + ldr r1, [r5] + ldrb r0, [r5, #0xf] + lsls r0, r0, #5 + adds r1, r1, r0 + ldrb r0, [r1, #0xa] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x19 + strb r0, [r2] + movs r0, #0xc + strb r0, [r5, #8] +_0801502A: + bl sub_08011564 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + beq _08015056 + cmp r0, #5 + bgt _0801504C + cmp r0, #2 + bgt _0801510C + cmp r0, #1 + blt _0801510C + b _08015050 + .align 2, 0 +_08015044: .4byte 0x030031C4 +_08015048: .4byte 0x020228E0 +_0801504C: + cmp r0, #6 + bne _0801510C +_08015050: + movs r0, #8 + strb r0, [r5, #8] + b _0801510C +_08015056: + ldr r0, _08015068 + bl AddTextPrinterToWindow1 + movs r0, #0 + movs r1, #0 + bl sub_08011554 + b _0801510C + .align 2, 0 +_08015068: .4byte 0x082C0AAC +_0801506C: + ldrb r0, [r5, #0x13] + cmp r0, #0 + beq _08015088 + ldrb r0, [r5, #0xe] + movs r1, #0 + movs r2, #0 + bl DestroyListMenuTask + movs r0, #0 + bl CopyBgTilemapBufferToVram + ldrb r0, [r5, #0xb] + bl RemoveWindow +_08015088: + ldrb r0, [r5, #0x11] + bl DestroyTask + ldr r0, [r5] + bl Free + ldr r0, [r5, #4] + bl Free + ldrb r0, [r5, #8] + adds r0, #1 + strb r0, [r5, #8] + b _0801510C +_080150A2: + adds r0, r5, #0 + adds r0, #9 + ldr r1, _080150AC + b _080150CA + .align 2, 0 +_080150AC: .4byte 0x082C0AC8 +_080150B0: + adds r0, r5, #0 + adds r0, #9 + ldr r1, _080150B8 + b _080150CA + .align 2, 0 +_080150B8: .4byte 0x082C066C +_080150BC: + adds r0, r5, #0 + adds r0, #9 + ldr r2, _080150E8 + ldrb r1, [r5, #0x12] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] +_080150CA: + bl MG_PrintTextOnWindow1AndWaitButton + cmp r0, #0 + beq _0801510C + bl DestroyWirelessStatusIndicatorSprite + adds r0, r4, #0 + bl DestroyTask + bl sub_0800E894 + ldr r1, _080150EC + movs r0, #5 + strh r0, [r1] + b _0801510C + .align 2, 0 +_080150E8: .4byte 0x082C1D30 +_080150EC: .4byte 0x02037290 +_080150F0: + ldrb r0, [r5, #8] + adds r0, #1 + strb r0, [r5, #8] + bl sub_0800A8D4 + b _0801510C +_080150FC: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801510C + adds r0, r4, #0 + bl DestroyTask +_0801510C: + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_08014DFC + + thumb_func_start UnionRoomSpecial +UnionRoomSpecial: @ 0x08015114 + push {r4, lr} + bl sub_08010A50 + ldr r0, _08015150 + movs r1, #0xa + bl CreateTask + ldr r4, _08015154 + movs r0, #0x89 + lsls r0, r0, #2 + bl AllocZeroed + str r0, [r4] + ldr r1, _08015158 + str r0, [r1] + movs r1, #0 + strb r1, [r0, #0x14] + strb r1, [r0, #0x16] + strh r1, [r0, #0x10] + strh r1, [r0, #0x12] + ldr r0, _0801515C + strh r1, [r0] + movs r0, #0xd0 + movs r1, #1 + bl sub_08199F54 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08015150: .4byte 0x080151E9 +_08015154: .4byte 0x020228E4 +_08015158: .4byte 0x03000DA8 +_0801515C: .4byte 0x02037290 + thumb_func_end UnionRoomSpecial + + thumb_func_start ReadAsU16 +ReadAsU16: @ 0x08015160 + ldrb r1, [r0, #1] + lsls r1, r1, #8 + ldrb r0, [r0] + orrs r0, r1 + bx lr + .align 2, 0 + thumb_func_end ReadAsU16 + + thumb_func_start sub_0801516C +sub_0801516C: @ 0x0801516C + push {lr} + adds r3, r1, #0 + ldr r1, _0801518C + ldr r2, [r1] + movs r1, #8 + strb r1, [r2, #0x14] + strb r0, [r2, #0x15] + ldr r0, _08015190 + cmp r3, r0 + beq _08015186 + adds r1, r3, #0 + bl StringExpandPlaceholders +_08015186: + pop {r0} + bx r0 + .align 2, 0 +_0801518C: .4byte 0x020228E4 +_08015190: .4byte 0x02021C7C + thumb_func_end sub_0801516C + + thumb_func_start sub_08015194 +sub_08015194: @ 0x08015194 + push {lr} + adds r2, r0, #0 + ldr r0, _080151B0 + ldr r1, [r0] + movs r0, #0x1a + strb r0, [r1, #0x14] + ldr r0, _080151B4 + cmp r2, r0 + beq _080151AC + adds r1, r2, #0 + bl StringExpandPlaceholders +_080151AC: + pop {r0} + bx r0 + .align 2, 0 +_080151B0: .4byte 0x020228E4 +_080151B4: .4byte 0x02021C7C + thumb_func_end sub_08015194 + + thumb_func_start sub_080151B8 +sub_080151B8: @ 0x080151B8 + push {lr} + ldr r3, _080151CC + ldr r1, [r0] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r3, #0 + bl memcpy + pop {r0} + bx r0 + .align 2, 0 +_080151CC: .4byte 0x0201FF00 + thumb_func_end sub_080151B8 + + thumb_func_start sub_080151D0 +sub_080151D0: @ 0x080151D0 + push {lr} + ldr r0, [r0] + ldr r1, _080151E4 + movs r2, #0x80 + lsls r2, r2, #1 + bl memcpy + pop {r0} + bx r0 + .align 2, 0 +_080151E4: .4byte 0x0201FF00 + thumb_func_end sub_080151D0 + + thumb_func_start sub_080151E8 +sub_080151E8: @ 0x080151E8 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r5, #0 + ldr r0, _08015214 + ldr r6, [r0] + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _08015218 + adds r7, r0, r1 + ldrb r0, [r6, #0x14] + cmp r0, #0x38 + bls _0801520A + bl _0801638C +_0801520A: + lsls r0, r0, #2 + ldr r1, _0801521C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08015214: .4byte 0x020228E4 +_08015218: .4byte 0x03005B68 +_0801521C: .4byte 0x08015220 +_08015220: @ jump table + .4byte _08015304 @ case 0 + .4byte _0801535C @ case 1 + .4byte _08015380 @ case 2 + .4byte _080153D0 @ case 3 + .4byte _080154AE @ case 4 + .4byte _08015964 @ case 5 + .4byte _0801575C @ case 6 + .4byte _08015964 @ case 7 + .4byte _08016378 @ case 8 + .4byte _08015CD4 @ case 9 + .4byte _08015DE0 @ case 10 + .4byte _08015BB4 @ case 11 + .4byte _08015BCE @ case 12 + .4byte _08015E30 @ case 13 + .4byte _08015E54 @ case 14 + .4byte _08015E5C @ case 15 + .4byte _08015E6C @ case 16 + .4byte _08015E9A @ case 17 + .4byte _08015EAE @ case 18 + .4byte _08015A3A @ case 19 + .4byte _08015AC0 @ case 20 + .4byte _08015ADE @ case 21 + .4byte _08015B52 @ case 22 + .4byte _080155E2 @ case 23 + .4byte _08015608 @ case 24 + .4byte _08015680 @ case 25 + .4byte _0801634C @ case 26 + .4byte _08015854 @ case 27 + .4byte _0801583C @ case 28 + .4byte _080158D8 @ case 29 + .4byte _08015732 @ case 30 + .4byte _080158AE @ case 31 + .4byte _080158A4 @ case 32 + .4byte _08015C64 @ case 33 + .4byte _08015C84 @ case 34 + .4byte _08015CC4 @ case 35 + .4byte _08015DE8 @ case 36 + .4byte _08015E24 @ case 37 + .4byte _080156FC @ case 38 + .4byte _08015C10 @ case 39 + .4byte _0801599C @ case 40 + .4byte _080159CC @ case 41 + .4byte _08015ED8 @ case 42 + .4byte _08015F6C @ case 43 + .4byte _080160B8 @ case 44 + .4byte _08016120 @ case 45 + .4byte _0801613C @ case 46 + .4byte _08015F88 @ case 47 + .4byte _08016144 @ case 48 + .4byte _0801624C @ case 49 + .4byte _08016280 @ case 50 + .4byte _08016308 @ case 51 + .4byte _0801603C @ case 52 + .4byte _08015FF0 @ case 53 + .4byte _08016004 @ case 54 + .4byte _0801609C @ case 55 + .4byte _080160EC @ case 56 +_08015304: + movs r0, #0x70 + bl AllocZeroed + str r0, [r6, #4] + movs r0, #0x70 + bl AllocZeroed + str r0, [r6, #0xc] + movs r0, #0x80 + lsls r0, r0, #1 + bl AllocZeroed + str r0, [r6] + movs r0, #0x20 + bl AllocZeroed + str r0, [r6, #8] + ldr r0, [r6] + movs r1, #8 + bl sub_08017044 + ldr r1, _08015358 + movs r0, #0x40 + strb r0, [r1] + ldr r0, [r6, #0xc] + ldr r1, [r6, #4] + movs r2, #9 + bl sub_08016900 + adds r1, r6, #0 + adds r1, #0x20 + strb r0, [r1] + adds r0, r6, #0 + adds r0, #0x88 + bl sub_080195B4 + bl sub_080199C8 + movs r0, #1 + bl _0801638A + .align 2, 0 +_08015358: .4byte 0x020228E0 +_0801535C: + adds r0, r6, #0 + adds r0, #0x21 + movs r2, #0 + ldrsh r1, [r7, r2] + bl sub_0801990C + ldrh r0, [r7] + adds r0, #1 + strh r0, [r7] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #8 + beq _0801537A + bl _0801638C +_0801537A: + movs r0, #2 + bl _0801638A +_08015380: + movs r0, #0x40 + movs r1, #0 + movs r2, #0 + bl sub_08010A74 + ldr r2, _080153C8 + ldrh r0, [r2, #2] + ldrh r1, [r2, #0xa] + ldrh r2, [r2, #0xc] + bl sub_08010ABC + bl sub_0800AF5C + bl OpenLink + bl sub_08011770 + ldr r0, [r6, #8] + movs r1, #1 + bl sub_08017044 + ldr r0, [r6, #4] + movs r1, #4 + bl sub_080170B0 + ldr r0, [r6, #0xc] + movs r1, #4 + bl sub_080170B0 + ldr r1, _080153CC + movs r0, #0 + strh r0, [r1] + movs r0, #3 + bl _0801638A + .align 2, 0 +_080153C8: .4byte 0x020228F4 +_080153CC: .4byte 0x02037290 +_080153D0: + bl sub_081B1030 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #8 + beq _080153E8 + bl sub_081B1030 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #9 + bne _080154A8 +_080153E8: + ldr r4, _08015404 + ldrh r0, [r4] + cmp r0, #0 + beq _080154A8 + bl GetCursorSelectionMonId + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldrh r0, [r4] + cmp r0, #1 + beq _08015408 + cmp r0, #2 + beq _08015458 + b _08015496 + .align 2, 0 +_08015404: .4byte 0x020228F4 +_08015408: + movs r0, #0x54 + movs r1, #0 + movs r2, #1 + bl sub_08010B80 + cmp r5, #5 + bls _08015434 + adds r0, r4, #0 + bl sub_08017B38 + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl sub_08010ABC + ldr r0, _08015430 + bl sub_08015194 + b _08015496 + .align 2, 0 +_08015430: .4byte 0x082C1808 +_08015434: + bl GetCursorSelectionMonId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r4, #0 + bl sub_08017B5C + cmp r0, #0 + bne _08015454 + ldr r1, _08015450 + movs r0, #0x34 + bl sub_0801516C + b _08015496 + .align 2, 0 +_08015450: .4byte 0x082C17CC +_08015454: + movs r0, #0x37 + b _08015494 +_08015458: + adds r0, r6, #0 + bl sub_080151D0 + ldrb r0, [r4, #8] + strh r0, [r7, #2] + cmp r5, #5 + bls _08015474 + ldr r0, _08015470 + bl sub_08015194 + b _08015496 + .align 2, 0 +_08015470: .4byte 0x082C1830 +_08015474: + movs r0, #0x54 + movs r1, #0 + movs r2, #1 + bl sub_08010B80 + ldr r1, _080154A0 + movs r0, #0x44 + strb r0, [r1] + bl GetCursorSelectionMonId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r4, #0 + bl sub_08017BA4 + movs r0, #0x33 +_08015494: + strb r0, [r6, #0x14] +_08015496: + ldr r1, _080154A4 + movs r0, #0 + strh r0, [r1] + bl _0801638C + .align 2, 0 +_080154A0: .4byte 0x020228E0 +_080154A4: .4byte 0x020228F4 +_080154A8: + movs r0, #4 + bl _0801638A +_080154AE: + ldr r4, _080154DC + ldrh r0, [r4] + cmp r0, #0 + beq _08015512 + cmp r0, #9 + bne _080154E8 + movs r0, #0x54 + movs r1, #0 + movs r2, #1 + bl sub_08010B80 + movs r0, #2 + bl PlaySE + ldr r0, _080154E0 + ldr r1, _080154E4 + ldr r1, [r1] + bl StringCopy + movs r1, #0 + movs r0, #0x2a + b _0801550A + .align 2, 0 +_080154DC: .4byte 0x02037290 +_080154E0: .4byte 0x02021C40 +_080154E4: .4byte 0x03005AF0 +_080154E8: + cmp r0, #0xb + bne _080154FC + movs r0, #0x54 + movs r1, #0 + movs r2, #1 + bl sub_08010B80 + movs r1, #0 + movs r0, #0x17 + b _0801550A +_080154FC: + movs r0, #0 + strh r0, [r7] + ldrh r0, [r4] + subs r0, #1 + strh r0, [r7, #2] + movs r1, #0 + movs r0, #0x18 +_0801550A: + strb r0, [r6, #0x14] + strh r1, [r4] + bl _0801638C +_08015512: + bl ScriptContext2_IsEnabled + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08015522 + bl _0801638C +_08015522: + ldr r0, _08015550 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08015588 + ldr r0, [r6] + adds r2, r7, #2 + adds r3, r6, #0 + adds r3, #0x21 + adds r1, r7, #0 + bl sub_08019D60 + cmp r0, #0 + beq _08015554 + movs r0, #5 + bl PlaySE + bl sub_08017C88 + movs r0, #0x18 + bl _0801638A + .align 2, 0 +_08015550: .4byte 0x03002360 +_08015554: + bl sub_080173FC + cmp r0, #0 + beq _08015588 + movs r0, #0x54 + movs r1, #0 + movs r2, #1 + bl sub_08010B80 + movs r0, #2 + bl PlaySE + bl sub_08017C88 + ldr r0, _08015580 + ldr r1, _08015584 + ldr r1, [r1] + bl StringCopy + movs r0, #0x2d + bl _0801638A + .align 2, 0 +_08015580: .4byte 0x02021C40 +_08015584: .4byte 0x03005AF0 +_08015588: + bl sub_08016610 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + beq _080155AA + cmp r0, #2 + bgt _0801559E + cmp r0, #1 + beq _080155A4 + b _080155D8 +_0801559E: + cmp r0, #4 + beq _080155B2 + b _080155D8 +_080155A4: + movs r0, #2 + bl PlaySE +_080155AA: + adds r0, r6, #0 + bl sub_08019D2C + b _080155D8 +_080155B2: + movs r0, #0xb + strb r0, [r6, #0x14] + bl sub_08017C88 + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl sub_08010ABC + adds r0, r6, #0 + bl sub_08017C98 + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0x53 + movs r2, #0 + bl sub_08010B80 +_080155D8: + adds r0, r6, #0 + bl sub_08019D3C + bl _0801638C +_080155E2: + ldr r0, _08015604 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080155F2 + bl _0801638C +_080155F2: + movs r0, #0x40 + movs r1, #0 + movs r2, #0 + bl sub_08010B80 + movs r0, #4 + bl _0801638A + .align 2, 0 +_08015604: .4byte 0x0809F30D +_08015608: + bl sub_08016B5C + movs r3, #2 + ldrsh r0, [r7, r3] + ldr r1, [r6] + bl sub_080177B8 + adds r4, r0, #0 + movs r0, #0x54 + movs r1, #0 + movs r2, #1 + bl sub_08010B80 + ldr r0, [r6] + ldrb r1, [r7] + ldrb r2, [r7, #2] + adds r3, r4, #0 + bl sub_08017484 + cmp r0, #1 + beq _0801564C + cmp r0, #1 + bgt _0801563E + cmp r0, #0 + beq _08015646 + bl _0801638C +_0801563E: + cmp r0, #2 + beq _08015670 + bl _0801638C +_08015646: + movs r0, #0x1a + bl _0801638A +_0801564C: + movs r1, #2 + ldrsh r0, [r7, r1] + lsls r0, r0, #5 + ldr r1, [r6] + adds r1, r1, r0 + adds r0, r1, #0 + adds r0, #0x10 + ldr r2, _0801566C + ldrb r2, [r2] + bl sub_08011C74 + strh r5, [r6, #0x12] + movs r0, #0x19 + bl _0801638A + .align 2, 0 +_0801566C: .4byte 0x020228E0 +_08015670: + ldr r1, _0801567C + movs r0, #0x13 + bl sub_0801516C + bl _0801638C + .align 2, 0 +_0801567C: .4byte 0x02021C7C +_08015680: + bl sub_08016B5C + bl sub_08011564 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #1 + blt _080156C6 + cmp r4, #2 + ble _080156A2 + cmp r4, #4 + bne _080156C6 + movs r0, #1 + bl sub_08017C48 + strb r4, [r6, #0x14] + b _080156C6 +_080156A2: + bl sub_0801167C + cmp r0, #1 + bne _080156B8 + ldr r0, _080156B4 + bl sub_08015194 + b _080156C0 + .align 2, 0 +_080156B4: .4byte 0x082C0FE0 +_080156B8: + ldr r1, _080156E8 + movs r0, #0x1e + bl sub_0801516C +_080156C0: + ldr r1, _080156EC + movs r0, #0x40 + strb r0, [r1] +_080156C6: + ldr r0, _080156F0 + ldrb r0, [r0] + cmp r0, #0 + bne _080156D2 + bl _0801638C +_080156D2: + ldr r0, _080156F4 + movs r1, #1 + bl sub_08013EEC + ldr r0, _080156F8 + movs r1, #5 + bl CreateTask + movs r0, #0x26 + bl _0801638A + .align 2, 0 +_080156E8: .4byte 0x082C0FE0 +_080156EC: .4byte 0x020228E0 +_080156F0: .4byte 0x030031C4 +_080156F4: .4byte 0x0202257C +_080156F8: .4byte 0x08013BE9 +_080156FC: + ldr r0, _08015720 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801570C + bl _0801638C +_0801570C: + ldr r0, _08015724 + ldrb r0, [r0] + cmp r0, #0x44 + bne _0801572C + ldr r1, _08015728 + movs r0, #0x1f + bl sub_0801516C + bl _0801638C + .align 2, 0 +_08015720: .4byte 0x08013BE9 +_08015724: .4byte 0x020228E0 +_08015728: .4byte 0x082C0B80 +_0801572C: + movs r0, #5 + bl _0801638A +_08015732: + ldr r0, _08015758 + ldrb r0, [r0] + cmp r0, #0 + beq _0801573E + bl _0801638C +_0801573E: + movs r0, #0 + bl sub_08017C48 + movs r2, #0 + ldrsh r0, [r7, r2] + movs r3, #2 + ldrsh r1, [r7, r3] + ldr r2, [r6] + bl sub_08019E88 + movs r0, #2 + bl _0801638A + .align 2, 0 +_08015758: .4byte 0x030031C4 +_0801575C: + adds r0, r6, #0 + adds r0, #0x16 + adds r1, r6, #0 + adds r1, #0x1b + adds r2, r6, #0 + adds r2, #0x1c + ldr r3, _08015790 + ldr r4, _08015794 + str r4, [sp] + bl sub_08016C88 + adds r5, r0, #0 + movs r0, #1 + rsbs r0, r0, #0 + cmp r5, r0 + bne _08015780 + bl _0801638C +_08015780: + ldr r0, _08015798 + ldrb r0, [r0] + cmp r0, #0 + bne _0801579C + movs r0, #0x1c + bl _0801638A + .align 2, 0 +_08015790: .4byte 0x082C2124 +_08015794: .4byte 0x082C214C +_08015798: .4byte 0x030031C4 +_0801579C: + adds r1, r6, #0 + adds r1, #0x80 + movs r0, #0 + strh r0, [r1] + movs r2, #2 + ldrsh r0, [r7, r2] + ldr r1, [r6] + bl sub_080177B8 + movs r0, #2 + rsbs r0, r0, #0 + cmp r5, r0 + beq _080157BA + cmp r5, #0x40 + bne _080157EC +_080157BA: + adds r0, r6, #0 + adds r0, #0x4c + movs r1, #0x40 + strh r1, [r0] + bl sub_0800F934 + ldr r0, _080157E0 + ldr r2, _080157E4 + ldr r1, _080157E8 + ldrb r1, [r1, #0x13] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl StringCopy + movs r0, #0x20 + bl _0801638A + .align 2, 0 +_080157E0: .4byte 0x02021C7C +_080157E4: .4byte 0x082C12BC +_080157E8: .4byte 0x020226A0 +_080157EC: + ldr r0, _08015814 + strb r5, [r0] + ldr r1, _08015818 + lsrs r0, r5, #8 + strb r0, [r1] + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x41 + bne _08015820 + bl sub_08017AE0 + cmp r0, #0 + bne _08015820 + ldr r1, _0801581C + movs r0, #5 + bl sub_0801516C + bl _0801638C + .align 2, 0 +_08015814: .4byte 0x020228E0 +_08015818: .4byte 0x020228E1 +_0801581C: .4byte 0x082C12E4 +_08015820: + ldr r0, _08015838 + ldrb r0, [r0] + movs r1, #0x40 + orrs r1, r0 + adds r0, r6, #0 + adds r0, #0x4c + strh r1, [r0] + bl sub_0800F934 + movs r0, #0x1b + bl _0801638A + .align 2, 0 +_08015838: .4byte 0x020228E0 +_0801583C: + ldr r0, _0801584C + ldr r1, _08015850 + bl StringCopy + movs r0, #0x24 + bl _0801638A + .align 2, 0 +_0801584C: .4byte 0x02021C7C +_08015850: .4byte 0x082C12C4 +_08015854: + adds r0, r6, #0 + bl sub_08017A94 + movs r3, #2 + ldrsh r0, [r7, r3] + ldr r1, [r6] + bl sub_080177B8 + adds r4, r0, #0 + adds r0, r6, #0 + adds r0, #0x4c + ldrh r1, [r0] + movs r0, #0x3f + ands r0, r1 + bl sub_08017440 + adds r5, r0, #0 + adds r0, r6, #0 + adds r0, #0x16 + ldr r3, _080158A0 + lsls r1, r5, #2 + lsls r2, r4, #4 + adds r1, r1, r2 + adds r1, r1, r3 + ldr r1, [r1] + bl PrintOnTextbox + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08015894 + bl _0801638C +_08015894: + movs r0, #0 + strh r0, [r7, #6] + movs r0, #0x1d + bl _0801638A + .align 2, 0 +_080158A0: .4byte 0x082C10A4 +_080158A4: + bl sub_0800A7F8 + movs r0, #0x24 + bl _0801638A +_080158AE: + adds r0, r6, #0 + adds r0, #0x4c + movs r1, #0x44 + strh r1, [r0] + ldr r2, _080158D4 + ldrh r1, [r2, #0xe] + adds r3, r6, #0 + adds r3, #0x4e + strh r1, [r3] + ldrh r2, [r2, #0x10] + adds r1, r6, #0 + adds r1, #0x50 + strh r2, [r1] + bl sub_0800F934 + movs r0, #0x1d + bl _0801638A + .align 2, 0 +_080158D4: .4byte 0x020228F4 +_080158D8: + ldr r0, _080158F0 + ldrb r0, [r0] + cmp r0, #0 + bne _080158FC + ldr r0, _080158F4 + ldr r1, _080158F8 + bl StringCopy + movs r0, #0x1c + bl _0801638A + .align 2, 0 +_080158F0: .4byte 0x030031C4 +_080158F4: .4byte 0x02021C7C +_080158F8: .4byte 0x082C12C4 +_080158FC: + adds r0, r6, #0 + bl sub_08017A94 + adds r0, r6, #0 + adds r0, #0x80 + ldrh r0, [r0] + cmp r0, #0x51 + bne _08015932 + ldr r0, _08015924 + ldrb r0, [r0] + cmp r0, #8 + bne _0801592C + ldr r0, _08015928 + adds r1, r6, #0 + movs r2, #0 + bl sub_08017CDC + movs r0, #0x28 + bl _0801638A + .align 2, 0 +_08015924: .4byte 0x020228E0 +_08015928: .4byte 0x02021C7C +_0801592C: + movs r0, #0xd + bl _0801638A +_08015932: + cmp r0, #0x52 + beq _0801593A + bl _0801638C +_0801593A: + movs r5, #0 + movs r0, #0x20 + strb r0, [r6, #0x14] + ldr r0, _08015958 + ldr r4, _0801595C + ldrb r2, [r4] + movs r1, #0x40 + orrs r1, r2 + ldr r2, _08015960 + ldrb r2, [r2, #0x13] + bl sub_0801785C + strb r5, [r4] + bl _0801638C + .align 2, 0 +_08015958: .4byte 0x02021C7C +_0801595C: .4byte 0x020228E0 +_08015960: .4byte 0x020226A0 +_08015964: + movs r0, #2 + ldrsh r1, [r7, r0] + lsls r1, r1, #5 + ldr r0, [r6] + adds r0, r0, r1 + bl sub_08017468 + adds r5, r0, #0 + movs r1, #2 + ldrsh r0, [r7, r1] + ldr r1, [r6] + bl sub_080177B8 + adds r4, r0, #0 + ldr r2, _08015998 + lsls r0, r4, #2 + lsls r1, r5, #3 + adds r0, r0, r1 + adds r0, r0, r2 + ldr r1, [r0] + movs r0, #6 + bl sub_0801516C + bl _0801638C + .align 2, 0 +_08015998: .4byte 0x082C0D3C +_0801599C: + adds r0, r6, #0 + adds r0, #0x16 + ldr r1, _080159C8 + bl PrintOnTextbox + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080159B0 + bl _0801638C +_080159B0: + movs r4, #0 + movs r0, #0x29 + strb r0, [r6, #0x14] + bl sub_0800A8D4 + adds r0, r6, #0 + adds r0, #0x80 + strh r4, [r0] + adds r0, #2 + strh r4, [r0] + bl _0801638C + .align 2, 0 +_080159C8: .4byte 0x02021C7C +_080159CC: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080159DA + bl _0801638C +_080159DA: + bl GetMultiplayerId + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08015A34 + ldr r5, _08015A24 + bl GetMultiplayerId + movs r1, #1 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #2 + ldr r4, _08015A28 + adds r1, r1, r4 + adds r0, r5, #0 + bl StringCopy + ldrh r0, [r4, #0x18] + adds r4, #0x1c + adds r1, r4, #0 + bl sub_0800E004 + adds r5, r0, #0 + ldr r0, _08015A2C + ldr r2, _08015A30 + lsls r1, r5, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl StringExpandPlaceholders + movs r0, #0x21 + bl _0801638A + .align 2, 0 +_08015A24: .4byte 0x02021C40 +_08015A28: .4byte 0x020226A8 +_08015A2C: .4byte 0x02021C7C +_08015A30: .4byte 0x082C0DE4 +_08015A34: + movs r0, #7 + bl _0801638A +_08015A3A: + adds r0, r6, #0 + adds r0, #0x16 + movs r1, #0 + bl sub_08016BC8 + lsls r0, r0, #0x18 + asrs r5, r0, #0x18 + cmp r5, #0 + beq _08015A64 + cmp r5, #0 + bgt _08015A5C + movs r0, #1 + rsbs r0, r0, #0 + cmp r5, r0 + beq _08015AA0 + bl _0801638C +_08015A5C: + cmp r5, #1 + beq _08015AA0 + bl _0801638C +_08015A64: + movs r0, #0 + bl CopyBgTilemapBufferToVram + ldr r4, _08015A9C + movs r0, #0x45 + strb r0, [r4] + movs r0, #0x45 + movs r1, #0 + movs r2, #1 + bl sub_08010B80 + movs r2, #2 + ldrsh r0, [r7, r2] + lsls r0, r0, #5 + ldr r1, [r6] + adds r1, r1, r0 + adds r0, r1, #0 + adds r0, #0x10 + ldrb r2, [r4] + bl sub_08011C74 + ldrh r0, [r7, #2] + strh r0, [r6, #0x12] + movs r0, #0x14 + strb r0, [r6, #0x14] + strh r5, [r7, #6] + bl _0801638C + .align 2, 0 +_08015A9C: .4byte 0x020228E0 +_08015AA0: + movs r3, #2 + ldrsh r0, [r7, r3] + ldr r1, [r6] + bl sub_080177B8 + adds r4, r0, #0 + ldr r1, _08015ABC + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl sub_08015194 + bl _0801638C + .align 2, 0 +_08015ABC: .4byte 0x082C1364 +_08015AC0: + ldrh r0, [r7, #4] + adds r0, #1 + strh r0, [r7, #4] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x3c + bgt _08015AD2 + bl _0801638C +_08015AD2: + movs r1, #0 + movs r0, #0x15 + strb r0, [r6, #0x14] + strh r1, [r7, #4] + bl _0801638C +_08015ADE: + bl sub_08011564 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + beq _08015B44 + cmp r4, #3 + ble _08015AFC + cmp r4, #4 + bne _08015B48 + movs r0, #1 + bl sub_08017C48 + strb r4, [r6, #0x14] + b _08015B48 +_08015AFC: + cmp r4, #1 + blt _08015B48 + movs r1, #2 + ldrsh r0, [r7, r1] + ldr r1, [r6] + bl sub_080177B8 + adds r4, r0, #0 + movs r0, #0x54 + movs r1, #0 + movs r2, #1 + bl sub_08010B80 + bl sub_0801167C + cmp r0, #1 + bne _08015B30 + ldr r0, _08015B2C + lsls r1, r4, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl sub_08015194 + b _08015B48 + .align 2, 0 +_08015B2C: .4byte 0x082C13C4 +_08015B30: + ldr r0, _08015B40 + lsls r1, r4, #2 + adds r1, r1, r0 + ldr r1, [r1] + movs r0, #0x1e + bl sub_0801516C + b _08015B48 + .align 2, 0 +_08015B40: .4byte 0x082C13C4 +_08015B44: + movs r0, #0x16 + strb r0, [r6, #0x14] +_08015B48: + ldrh r0, [r7, #6] + adds r0, #1 + strh r0, [r7, #6] + bl _0801638C +_08015B52: + bl sub_08011570 + cmp r0, #0 + beq _08015B9A + movs r2, #2 + ldrsh r0, [r7, r2] + ldr r1, [r6] + bl sub_080177B8 + adds r4, r0, #0 + movs r0, #0x54 + movs r1, #0 + movs r2, #1 + bl sub_08010B80 + bl sub_0801167C + cmp r0, #1 + bne _08015B8C + ldr r0, _08015B88 + lsls r1, r4, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl sub_08015194 + b _08015B9A + .align 2, 0 +_08015B88: .4byte 0x082C13C4 +_08015B8C: + ldr r0, _08015BAC + lsls r1, r4, #2 + adds r1, r1, r0 + ldr r1, [r1] + movs r0, #0x1e + bl sub_0801516C +_08015B9A: + ldr r0, _08015BB0 + ldrb r0, [r0] + cmp r0, #0 + bne _08015BA6 + bl _0801638C +_08015BA6: + movs r0, #0x10 + bl _0801638A + .align 2, 0 +_08015BAC: .4byte 0x082C13C4 +_08015BB0: .4byte 0x030031C4 +_08015BB4: + movs r0, #0x49 + bl PlaySE + bl sub_0800EA3C + movs r0, #0 + movs r1, #0xc + strb r1, [r6, #0x14] + adds r1, r6, #0 + adds r1, #0x82 + strh r0, [r1] + bl _0801638C +_08015BCE: + bl sub_08011570 + cmp r0, #0 + beq _08015BE2 + movs r0, #0 + bl sub_08017C48 + movs r0, #2 + bl _0801638A +_08015BE2: + ldr r0, _08015C04 + ldrb r0, [r0] + cmp r0, #0 + bne _08015BEE + bl _0801638C +_08015BEE: + ldr r0, _08015C08 + movs r1, #1 + bl sub_08013EEC + ldr r0, _08015C0C + movs r1, #5 + bl CreateTask + movs r0, #0x27 + b _0801638A + .align 2, 0 +_08015C04: .4byte 0x030031C4 +_08015C08: .4byte 0x0202257C +_08015C0C: .4byte 0x08013BE9 +_08015C10: + adds r0, r6, #0 + bl sub_080163B0 + ldr r0, _08015C50 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08015C24 + b _0801638C +_08015C24: + movs r0, #0x21 + strb r0, [r6, #0x14] + ldr r0, _08015C54 + ldr r4, _08015C58 + adds r1, r4, #0 + bl StringCopy + adds r0, r4, #0 + subs r0, #0x24 + ldrh r0, [r0, #0x20] + adds r1, r4, #0 + bl sub_0800E004 + adds r5, r0, #0 + ldr r0, _08015C5C + ldr r2, _08015C60 + lsls r1, r5, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl StringExpandPlaceholders + b _0801638C + .align 2, 0 +_08015C50: .4byte 0x08013BE9 +_08015C54: .4byte 0x02021C40 +_08015C58: .4byte 0x020226C4 +_08015C5C: .4byte 0x02021C7C +_08015C60: .4byte 0x082C0DB8 +_08015C64: + adds r0, r6, #0 + bl sub_080163B0 + adds r0, r6, #0 + adds r0, #0x16 + ldr r1, _08015C80 + bl PrintOnTextbox + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08015C7C + b _0801638C +_08015C7C: + movs r0, #0x22 + b _0801638A + .align 2, 0 +_08015C80: .4byte 0x02021C7C +_08015C84: + adds r0, r6, #0 + bl sub_080163B0 + adds r0, r6, #0 + bl sub_080163F0 + cmp r0, #0 + bne _08015C96 + b _0801638C +_08015C96: + ldr r0, _08015CB8 + ldrh r1, [r0, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08015CA4 + b _0801638C +_08015CA4: + movs r0, #1 + bl sub_080118CC + ldr r0, _08015CBC + ldr r1, _08015CC0 + bl StringCopy + movs r0, #0x24 + b _0801638A + .align 2, 0 +_08015CB8: .4byte 0x03002360 +_08015CBC: .4byte 0x02021C7C +_08015CC0: .4byte 0x082C0F04 +_08015CC4: + ldr r1, _08015CD0 + movs r0, #9 + bl sub_0801516C + b _0801638C + .align 2, 0 +_08015CD0: .4byte 0x02021C7C +_08015CD4: + adds r0, r6, #0 + adds r0, #0x16 + movs r1, #0 + bl sub_08016BC8 + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _08015CFA + cmp r1, #0 + bgt _08015CF4 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _08015DBA + b _0801638C +_08015CF4: + cmp r1, #1 + beq _08015DBA + b _0801638C +_08015CFA: + adds r0, r6, #0 + adds r0, #0x4c + movs r1, #0x51 + strh r1, [r0] + ldr r1, _08015D28 + ldrb r1, [r1] + adds r5, r0, #0 + cmp r1, #0x45 + bne _08015D2C + movs r4, #0x40 + orrs r4, r1 + movs r0, #1 + bl sub_08010AFC + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + movs r2, #0 + bl sub_08010B80 + b _08015D4A + .align 2, 0 +_08015D28: .4byte 0x020228E0 +_08015D2C: + movs r0, #0x40 + adds r4, r1, #0 + orrs r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + bl sub_08010AFC + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + movs r2, #1 + bl sub_08010B80 +_08015D4A: + ldr r1, [r6, #8] + movs r0, #0 + strb r0, [r1, #0x1b] + strh r0, [r7, #6] + ldr r0, _08015D7C + ldrb r0, [r0] + cmp r0, #0x41 + bne _08015D92 + bl sub_08017AE0 + cmp r0, #0 + bne _08015D88 + movs r0, #0x52 + strh r0, [r5] + adds r0, r5, #0 + bl sub_0800F934 + movs r0, #0xa + strb r0, [r6, #0x14] + ldr r0, _08015D80 + ldr r1, _08015D84 + bl StringCopy + b _0801638C + .align 2, 0 +_08015D7C: .4byte 0x020228E0 +_08015D80: .4byte 0x02021C7C +_08015D84: .4byte 0x082C1310 +_08015D88: + adds r0, r5, #0 + bl sub_0800F934 + movs r0, #0xd + b _0801638A +_08015D92: + cmp r0, #0x48 + bne _08015DB0 + adds r0, r5, #0 + bl sub_0800F934 + ldr r0, _08015DAC + adds r1, r6, #0 + movs r2, #1 + bl sub_08017CDC + movs r0, #0x28 + b _0801638A + .align 2, 0 +_08015DAC: .4byte 0x02021C7C +_08015DB0: + adds r0, r5, #0 + bl sub_0800F934 + movs r0, #0xd + b _0801638A +_08015DBA: + adds r0, r6, #0 + adds r0, #0x4c + movs r1, #0x52 + strh r1, [r0] + bl sub_0800F934 + movs r0, #0xa + strb r0, [r6, #0x14] + ldr r0, _08015DD8 + ldr r1, _08015DDC + ldrb r1, [r1] + bl sub_08012B78 + b _0801638C + .align 2, 0 +_08015DD8: .4byte 0x02021C7C +_08015DDC: .4byte 0x020228E0 +_08015DE0: + bl sub_0800A7F8 + movs r0, #0x24 + b _0801638A +_08015DE8: + ldr r0, _08015E18 + ldrb r4, [r0] + cmp r4, #0 + beq _08015DF2 + b _0801638C +_08015DF2: + ldr r1, _08015E1C + movs r0, #0x40 + strb r0, [r1] + ldr r1, _08015E20 + movs r0, #0x25 + bl sub_0801516C + adds r0, r6, #0 + adds r0, #0x4c + movs r1, #0 + movs r2, #0xc + bl memset + adds r0, r6, #0 + adds r0, #0x82 + strh r4, [r0] + subs r0, #2 + strh r4, [r0] + b _0801638C + .align 2, 0 +_08015E18: .4byte 0x030031C4 +_08015E1C: .4byte 0x020228E0 +_08015E20: .4byte 0x02021C7C +_08015E24: + movs r0, #2 + strb r0, [r6, #0x14] + movs r0, #0 + bl sub_08017C48 + b _0801638C +_08015E30: + ldr r4, _08015E4C + ldr r0, _08015E50 + ldrb r0, [r0] + movs r1, #0x40 + orrs r1, r0 + adds r0, r4, #0 + bl sub_080178C0 + movs r0, #0xe + adds r1, r4, #0 + bl sub_0801516C + b _0801638C + .align 2, 0 +_08015E4C: .4byte 0x02021C7C +_08015E50: .4byte 0x020228E0 +_08015E54: + bl sub_0800A8D4 + movs r0, #0xf + b _0801638A +_08015E5C: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08015E68 + b _0801638C +_08015E68: + movs r0, #0x10 + b _0801638A +_08015E6C: + ldr r0, [r6, #8] + bl Free + ldr r0, [r6] + bl Free + ldr r0, [r6, #0xc] + bl Free + ldr r0, [r6, #4] + bl Free + adds r0, r6, #0 + adds r0, #0x20 + ldrb r0, [r0] + bl DestroyTask + adds r0, r6, #0 + adds r0, #0x21 + bl sub_080199A0 + movs r0, #0x11 + b _0801638A +_08015E9A: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + movs r0, #0x12 + b _0801638A +_08015EAE: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08015EBA + b _0801638C +_08015EBA: + bl sub_080198D8 + adds r0, r4, #0 + bl DestroyTask + ldr r0, _08015ED4 + ldr r0, [r0] + bl Free + bl sub_080144E0 + b _0801638C + .align 2, 0 +_08015ED4: .4byte 0x020228E4 +_08015ED8: + bl sub_0800F29C + ldrh r1, [r0, #8] + ldr r4, _08015EEC + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + bne _08015EF0 + movs r0, #0x2b + b _0801638A + .align 2, 0 +_08015EEC: .4byte 0x000003FF +_08015EF0: + bl sub_0800F29C + ldrh r1, [r0, #8] + adds r0, r4, #0 + ands r0, r1 + movs r1, #0xce + lsls r1, r1, #1 + cmp r0, r1 + bne _08015F14 + ldr r0, _08015F0C + ldr r1, _08015F10 + bl StringCopy + b _08015F4C + .align 2, 0 +_08015F0C: .4byte 0x02021C7C +_08015F10: .4byte 0x082C1864 +_08015F14: + ldr r4, _08015F58 + bl sub_0800F29C + ldrh r0, [r0, #8] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + ldr r0, _08015F5C + adds r1, r1, r0 + adds r0, r4, #0 + bl StringCopy + ldr r4, _08015F60 + bl sub_0800F29C + ldrb r1, [r0, #0xb] + lsrs r1, r1, #1 + adds r0, r4, #0 + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + ldr r0, _08015F64 + ldr r1, _08015F68 + bl StringExpandPlaceholders +_08015F4C: + ldr r1, _08015F64 + movs r0, #0x2c + bl sub_0801516C + b _0801638C + .align 2, 0 +_08015F58: .4byte 0x02021C40 +_08015F5C: .4byte 0x082EA31C +_08015F60: .4byte 0x02021C54 +_08015F64: .4byte 0x02021C7C +_08015F68: .4byte 0x082C1844 +_08015F6C: + adds r0, r6, #0 + adds r0, #0x16 + ldr r1, _08015F84 + bl PrintOnTextbox + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08015F7E + b _0801638C +_08015F7E: + movs r0, #0x2f + b _0801638A + .align 2, 0 +_08015F84: .4byte 0x082C169C +_08015F88: + adds r0, r6, #0 + adds r0, #0x16 + adds r1, r6, #0 + adds r1, #0x1d + adds r2, r6, #0 + adds r2, #0x1e + ldr r3, _08015FC0 + ldr r4, _08015FC4 + str r4, [sp] + bl sub_08016C88 + adds r5, r0, #0 + movs r0, #1 + rsbs r0, r0, #0 + cmp r5, r0 + bne _08015FAA + b _0801638C +_08015FAA: + subs r0, #1 + cmp r5, r0 + beq _08015FB4 + cmp r5, #3 + bne _08015FC8 +_08015FB4: + movs r0, #4 + strb r0, [r6, #0x14] + movs r0, #1 + bl sub_08017C48 + b _0801638C + .align 2, 0 +_08015FC0: .4byte 0x082C2164 +_08015FC4: .4byte 0x082C2184 +_08015FC8: + cmp r5, #1 + beq _08015FD2 + cmp r5, #2 + beq _08015FE0 + b _0801638C +_08015FD2: + ldr r1, _08015FDC + movs r0, #0x35 + bl sub_0801516C + b _0801638C + .align 2, 0 +_08015FDC: .4byte 0x082C17E8 +_08015FE0: + ldr r1, _08015FEC + movs r0, #0x2f + bl sub_0801516C + b _0801638C + .align 2, 0 +_08015FEC: .4byte 0x082C16E0 +_08015FF0: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + movs r0, #0x36 + b _0801638A +_08016004: + ldr r0, _08016028 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08016012 + b _0801638C +_08016012: + ldr r1, _0801602C + movs r0, #1 + strh r0, [r1] + ldr r1, _08016030 + ldr r0, _08016034 + str r0, [r1] + ldr r1, _08016038 + movs r0, #8 + bl sub_081B85A4 + b _0801638C + .align 2, 0 +_08016028: .4byte 0x02037C74 +_0801602C: .4byte 0x020228F4 +_08016030: .4byte 0x03005B0C +_08016034: .4byte 0x080AEA25 +_08016038: .4byte 0x08085A31 +_0801603C: + adds r0, r6, #0 + adds r0, #0x16 + adds r1, r6, #0 + adds r1, #0x1d + adds r2, r6, #0 + adds r2, #0x1e + ldr r3, _08016080 + ldr r4, _08016084 + str r4, [sp] + bl sub_08016C88 + adds r5, r0, #0 + movs r0, #1 + rsbs r0, r0, #0 + cmp r5, r0 + bne _0801605E + b _0801638C +_0801605E: + subs r0, #1 + cmp r5, r0 + beq _08016068 + cmp r5, #0x12 + bne _08016090 +_08016068: + ldr r0, _08016088 + bl sub_08017B38 + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl sub_08010ABC + ldr r0, _0801608C + bl sub_08015194 + b _0801638C + .align 2, 0 +_08016080: .4byte 0x082C219C +_08016084: .4byte 0x082C2234 +_08016088: .4byte 0x020228F4 +_0801608C: .4byte 0x082C1808 +_08016090: + ldr r0, _08016098 + strh r5, [r0, #2] + movs r0, #0x37 + b _0801638A + .align 2, 0 +_08016098: .4byte 0x020228F4 +_0801609C: + ldr r2, _080160B0 + ldrh r0, [r2, #2] + ldrh r1, [r2, #0xa] + ldrh r2, [r2, #0xc] + bl sub_08010ABC + ldr r0, _080160B4 + bl sub_08015194 + b _0801638C + .align 2, 0 +_080160B0: .4byte 0x020228F4 +_080160B4: .4byte 0x082C181C +_080160B8: + adds r0, r6, #0 + adds r0, #0x16 + movs r1, #0 + bl sub_08016BC8 + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _080160DE + cmp r1, #0 + bgt _080160D8 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _080160E2 + b _0801638C +_080160D8: + cmp r1, #1 + beq _080160E2 + b _0801638C +_080160DE: + movs r0, #0x38 + b _0801638A +_080160E2: + movs r0, #1 + bl sub_08017C48 + movs r0, #4 + b _0801638A +_080160EC: + adds r0, r6, #0 + adds r0, #0x16 + ldr r1, _08016118 + bl PrintOnTextbox + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080160FE + b _0801638C +_080160FE: + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl sub_08010ABC + ldr r0, _0801611C + bl sub_08017B38 + movs r0, #1 + bl sub_08017C48 + movs r0, #4 + b _0801638A + .align 2, 0 +_08016118: .4byte 0x082C1880 +_0801611C: .4byte 0x020228F4 +_08016120: + adds r0, r6, #0 + adds r0, #0x16 + ldr r1, _08016138 + bl PrintOnTextbox + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08016132 + b _0801638C +_08016132: + movs r0, #0x2e + b _0801638A + .align 2, 0 +_08016138: .4byte 0x082C1688 +_0801613C: + bl sub_08016E74 + movs r0, #0x30 + b _0801638A +_08016144: + adds r0, r6, #0 + adds r0, #0x16 + adds r1, r6, #0 + adds r1, #0x1d + adds r2, r6, #0 + adds r2, #0x4a + adds r3, r6, #0 + adds r3, #0x1e + ldr r4, _08016184 + str r4, [sp] + ldr r4, _08016188 + str r4, [sp, #4] + ldr r4, [r6] + str r4, [sp, #8] + bl sub_08016D5C + adds r5, r0, #0 + movs r0, #1 + rsbs r0, r0, #0 + cmp r5, r0 + bne _08016170 + b _0801638C +_08016170: + subs r0, #1 + cmp r5, r0 + beq _0801617A + cmp r5, #8 + bne _0801618C +_0801617A: + movs r0, #1 + bl sub_08017C48 + movs r0, #4 + b _0801638A + .align 2, 0 +_08016184: .4byte 0x082C2254 +_08016188: .4byte 0x082C22AC +_0801618C: + bl sub_08016E74 + ldr r1, [r6] + lsls r4, r5, #5 + adds r1, r1, r4 + ldrb r0, [r1, #9] + lsrs r0, r0, #2 + ldrh r1, [r1, #8] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x16 + bl sub_080177C4 + cmp r0, #1 + beq _080161D8 + cmp r0, #1 + bgt _080161B2 + cmp r0, #0 + beq _080161B8 + b _0801638C +_080161B2: + cmp r0, #2 + beq _08016210 + b _0801638C +_080161B8: + ldr r0, _080161D0 + ldr r1, [r6] + adds r1, r1, r4 + adds r1, #0x10 + bl StringCopy + ldr r1, _080161D4 + movs r0, #0x31 + bl sub_0801516C + strh r5, [r7, #2] + b _0801638C + .align 2, 0 +_080161D0: .4byte 0x02021C40 +_080161D4: .4byte 0x082C18CC +_080161D8: + ldr r0, _08016200 + ldr r1, [r6] + adds r1, r1, r4 + adds r1, #0x10 + bl StringCopy + ldr r0, _08016204 + ldr r1, [r6] + adds r1, r1, r4 + ldrb r2, [r1, #9] + lsrs r2, r2, #2 + lsls r1, r2, #2 + adds r1, r1, r2 + ldr r2, _08016208 + adds r1, r1, r2 + bl StringCopy + ldr r1, _0801620C + b _08016234 + .align 2, 0 +_08016200: .4byte 0x02021C40 +_08016204: .4byte 0x02021C54 +_08016208: .4byte 0x082EBC88 +_0801620C: .4byte 0x082C1918 +_08016210: + ldr r0, _0801623C + ldr r1, [r6] + adds r1, r1, r4 + adds r1, #0x10 + bl StringCopy + ldr r0, _08016240 + ldr r1, [r6] + adds r1, r1, r4 + ldrb r2, [r1, #9] + lsrs r2, r2, #2 + lsls r1, r2, #2 + adds r1, r1, r2 + ldr r2, _08016244 + adds r1, r1, r2 + bl StringCopy + ldr r1, _08016248 +_08016234: + movs r0, #0x2e + bl sub_0801516C + b _0801638C + .align 2, 0 +_0801623C: .4byte 0x02021C40 +_08016240: .4byte 0x02021C54 +_08016244: .4byte 0x082EBC88 +_08016248: .4byte 0x082C1938 +_0801624C: + adds r0, r6, #0 + adds r0, #0x16 + movs r1, #0 + bl sub_08016BC8 + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _08016272 + cmp r1, #0 + bgt _0801626C + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _08016276 + b _0801638C +_0801626C: + cmp r1, #1 + beq _08016276 + b _0801638C +_08016272: + movs r0, #0x32 + b _0801638A +_08016276: + movs r0, #1 + bl sub_08017C48 + movs r0, #4 + b _0801638A +_08016280: + adds r0, r6, #0 + adds r0, #0x16 + ldr r1, _080162E8 + bl PrintOnTextbox + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08016292 + b _0801638C +_08016292: + ldr r4, _080162EC + movs r0, #2 + strh r0, [r4] + ldr r2, _080162F0 + movs r3, #2 + ldrsh r0, [r7, r3] + ldr r1, [r6] + lsls r0, r0, #5 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r2] + ldr r2, _080162F4 + ldr r1, [r6] + movs r3, #2 + ldrsh r0, [r7, r3] + lsls r0, r0, #5 + adds r1, r1, r0 + ldrb r0, [r1, #9] + lsrs r0, r0, #2 + strb r0, [r2] + ldr r2, _080162F8 + ldr r1, [r6] + movs r3, #2 + ldrsh r0, [r7, r3] + lsls r0, r0, #5 + adds r1, r1, r0 + ldrh r0, [r1, #8] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + strh r0, [r2] + ldr r1, _080162FC + ldr r0, _08016300 + str r0, [r1] + ldr r1, _08016304 + movs r0, #9 + bl sub_081B85A4 + adds r0, r6, #0 + bl sub_080151B8 + ldrh r0, [r7, #2] + strb r0, [r4, #8] + b _0801638C + .align 2, 0 +_080162E8: .4byte 0x082C17E8 +_080162EC: .4byte 0x020228F4 +_080162F0: .4byte 0x020228EC +_080162F4: .4byte 0x020228F2 +_080162F8: .4byte 0x020228F0 +_080162FC: .4byte 0x03005B0C +_08016300: .4byte 0x080AEA25 +_08016304: .4byte 0x08085A31 +_08016308: + ldr r1, _08016340 + movs r0, #0x44 + strb r0, [r1] + movs r1, #2 + ldrsh r0, [r7, r1] + lsls r0, r0, #5 + ldr r1, [r6] + adds r1, r1, r0 + adds r0, r1, #0 + adds r0, #0x10 + movs r2, #0x44 + bl sub_08011C74 + ldr r0, _08016344 + movs r3, #2 + ldrsh r2, [r7, r3] + lsls r2, r2, #5 + ldr r1, [r6] + adds r1, r1, r2 + adds r1, #0x10 + bl StringCopy + ldr r0, _08016348 + ldr r0, [r0, #8] + bl sub_08016B30 + movs r0, #0x19 + b _0801638A + .align 2, 0 +_08016340: .4byte 0x020228E0 +_08016344: .4byte 0x02021C40 +_08016348: .4byte 0x082C0CD8 +_0801634C: + adds r0, r6, #0 + adds r0, #0x16 + ldr r1, _08016374 + bl PrintOnTextbox + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801638C + movs r0, #1 + bl sub_08017C48 + movs r1, #0 + ldrsh r0, [r7, r1] + movs r2, #2 + ldrsh r1, [r7, r2] + ldr r2, [r6] + bl sub_08019E88 + movs r0, #4 + b _0801638A + .align 2, 0 +_08016374: .4byte 0x02021C7C +_08016378: + adds r0, r6, #0 + adds r0, #0x16 + ldr r1, _08016394 + bl PrintOnTextbox + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801638C + ldrb r0, [r6, #0x15] +_0801638A: + strb r0, [r6, #0x14] +_0801638C: + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08016394: .4byte 0x02021C7C + thumb_func_end sub_080151E8 + + thumb_func_start var_800D_set_xB +var_800D_set_xB: @ 0x08016398 + push {lr} + bl InUnionRoom + cmp r0, #1 + bne _080163A8 + ldr r1, _080163AC + movs r0, #0xb + strh r0, [r1] +_080163A8: + pop {r0} + bx r0 + .align 2, 0 +_080163AC: .4byte 0x02037290 + thumb_func_end var_800D_set_xB + + thumb_func_start sub_080163B0 +sub_080163B0: @ 0x080163B0 + push {r4, r5, lr} + adds r2, r0, #0 + ldr r3, _080163EC + ldrh r5, [r3, #0x12] + adds r4, r5, #0 + cmp r4, #0 + beq _080163E4 + ldrh r0, [r3, #0x10] + movs r1, #0xff + lsls r1, r1, #8 + ands r1, r0 + movs r0, #0xbc + lsls r0, r0, #6 + cmp r1, r0 + bne _080163E4 + adds r0, r2, #0 + adds r0, #0x82 + strh r5, [r0] + cmp r4, #0x44 + bne _080163E4 + ldrh r1, [r3, #0x14] + adds r0, #2 + strh r1, [r0] + ldrh r1, [r3, #0x16] + adds r0, #2 + strh r1, [r0] +_080163E4: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080163EC: .4byte 0x03003130 + thumb_func_end sub_080163B0 + + thumb_func_start sub_080163F0 +sub_080163F0: @ 0x080163F0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x82 + ldrh r0, [r5] + cmp r0, #0 + beq _08016440 + ldr r0, _08016424 + ldr r1, _08016428 + adds r1, #0x2f + ldrb r1, [r1] + adds r2, r5, #0 + adds r3, r4, #0 + bl sub_08017960 + cmp r0, #0 + beq _08016440 + cmp r0, #1 + bne _08016430 + movs r0, #0x23 + strb r0, [r4, #0x14] + ldr r1, _0801642C + ldrh r0, [r5] + strb r0, [r1] + movs r0, #0 + b _08016442 + .align 2, 0 +_08016424: .4byte 0x02021C7C +_08016428: .4byte 0x020226A0 +_0801642C: .4byte 0x020228E0 +_08016430: + cmp r0, #2 + bne _08016440 + movs r0, #0x24 + strb r0, [r4, #0x14] + bl sub_0800A7F8 + movs r0, #0 + b _08016442 +_08016440: + movs r0, #1 +_08016442: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_080163F0 + + thumb_func_start sub_08016448 +sub_08016448: @ 0x08016448 + push {r4, r5, lr} + ldr r5, _08016480 + movs r0, #0xff + strb r0, [r5] + ldr r0, _08016484 + movs r1, #0 + bl CreateTask + ldr r4, _08016488 + movs r0, #0x89 + lsls r0, r0, #2 + bl AllocZeroed + str r0, [r4] + ldr r1, _0801648C + str r0, [r1] + movs r1, #0 + strb r1, [r0, #0x14] + strb r1, [r0, #0x16] + strh r1, [r0, #0x10] + strh r1, [r0, #0x12] + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08016480: .4byte 0x020228D8 +_08016484: .4byte 0x08016491 +_08016488: .4byte 0x020228E4 +_0801648C: .4byte 0x03000DA8 + thumb_func_end sub_08016448 + + thumb_func_start sub_08016490 +sub_08016490: @ 0x08016490 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, _080164AC + ldr r4, [r0] + ldrb r0, [r4, #0x14] + cmp r0, #4 + bls _080164A2 + b _080165D8 +_080164A2: + lsls r0, r0, #2 + ldr r1, _080164B0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080164AC: .4byte 0x020228E4 +_080164B0: .4byte 0x080164B4 +_080164B4: @ jump table + .4byte _080164C8 @ case 0 + .4byte _080164CE @ case 1 + .4byte _080164F0 @ case 2 + .4byte _08016540 @ case 3 + .4byte _080165A4 @ case 4 +_080164C8: + movs r0, #1 + strb r0, [r4, #0x14] + b _080165D8 +_080164CE: + movs r0, #0xc + movs r1, #0 + movs r2, #0 + bl sub_08010A74 + bl sub_0800AF5C + bl OpenLink + bl sub_08011770 + movs r0, #1 + bl sub_08010CA0 + movs r0, #2 + strb r0, [r4, #0x14] + b _080165D8 +_080164F0: + movs r0, #0x70 + bl AllocZeroed + str r0, [r4, #4] + movs r1, #4 + bl sub_080170B0 + movs r0, #0x70 + bl AllocZeroed + str r0, [r4, #0xc] + movs r1, #4 + bl sub_080170B0 + movs r0, #0x80 + lsls r0, r0, #1 + bl AllocZeroed + str r0, [r4] + movs r1, #8 + bl sub_08017044 + movs r0, #0x20 + bl AllocZeroed + str r0, [r4, #8] + movs r1, #1 + bl sub_08017044 + ldr r0, [r4, #0xc] + ldr r1, [r4, #4] + movs r2, #0xa + bl sub_08016900 + adds r1, r4, #0 + adds r1, #0x20 + strb r0, [r1] + movs r0, #3 + strb r0, [r4, #0x14] + b _080165D8 +_08016540: + bl sub_08016610 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + blt _080165D8 + cmp r0, #2 + bgt _080165D8 + ldr r0, _0801658C + ldrb r0, [r0] + cmp r0, #0xff + bne _080165D8 + movs r6, #0 +_0801655A: + ldr r0, [r4] + lsls r5, r6, #5 + adds r1, r0, r5 + ldrb r0, [r1, #0x1a] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _08016582 + adds r0, r1, #2 + bl ReadAsU16 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, [r4] + adds r1, r1, r5 + adds r1, #0x10 + bl sub_0800E004 + cmp r0, #0 + bne _08016590 +_08016582: + adds r6, #1 + cmp r6, #7 + ble _0801655A + b _080165D8 + .align 2, 0 +_0801658C: .4byte 0x020228D8 +_08016590: + ldr r0, _080165A0 + ldr r1, [r4] + adds r1, r1, r5 + adds r1, #0x10 + bl StringCopy + b _080165D8 + .align 2, 0 +_080165A0: .4byte 0x020228D8 +_080165A4: + ldr r0, [r4, #8] + bl Free + ldr r0, [r4] + bl Free + ldr r0, [r4, #0xc] + bl Free + ldr r0, [r4, #4] + bl Free + adds r0, r4, #0 + adds r0, #0x20 + ldrb r0, [r0] + bl DestroyTask + ldr r0, _080165E0 + ldr r0, [r0] + bl Free + bl sub_0800E894 + adds r0, r5, #0 + bl DestroyTask +_080165D8: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080165E0: .4byte 0x020228E4 + thumb_func_end sub_08016490 + + thumb_func_start sp182_move_string +sp182_move_string: @ 0x080165E4 + push {r4, lr} + ldr r4, _080165F4 + ldrb r0, [r4] + cmp r0, #0xff + bne _080165F8 + movs r0, #0 + b _08016606 + .align 2, 0 +_080165F4: .4byte 0x020228D8 +_080165F8: + ldr r0, _0801660C + adds r1, r4, #0 + bl StringCopy + movs r0, #0xff + strb r0, [r4] + movs r0, #1 +_08016606: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0801660C: .4byte 0x02021C40 + thumb_func_end sp182_move_string + + thumb_func_start sub_08016610 +sub_08016610: @ 0x08016610 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r0, _08016664 + ldr r4, [r0] + movs r7, #0 + movs r6, #0 + movs r5, #0 +_08016622: + ldr r0, [r4, #0xc] + adds r0, r0, r5 + ldr r1, _08016668 + bl sub_080170F4 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #1 + bne _0801666C + ldr r1, [r4, #0xc] + ldr r0, [r4, #8] + adds r1, r1, r5 + ldm r1!, {r2, r5, r6} + stm r0!, {r2, r5, r6} + ldm r1!, {r2, r5, r6} + stm r0!, {r2, r5, r6} + ldr r1, [r4, #8] + movs r0, #0 + strh r0, [r1, #0x18] + ldr r2, [r4, #8] + ldrb r1, [r2, #0x1a] + movs r5, #4 + rsbs r5, r5, #0 + adds r0, r5, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r2, #0x1a] + ldr r0, [r4, #8] + strb r3, [r0, #0x1b] + movs r0, #4 + b _080167A0 + .align 2, 0 +_08016664: .4byte 0x020228E4 +_08016668: .4byte 0x082C2364 +_0801666C: + adds r5, #0x1c + adds r6, #1 + cmp r6, #3 + ble _08016622 + movs r6, #0 + mov sb, r6 +_08016678: + ldr r0, [r4] + mov r1, sb + lsls r5, r1, #5 + adds r2, r0, r5 + ldrb r0, [r2, #0x1a] + lsls r0, r0, #0x1e + mov r8, r5 + cmp r0, #0 + beq _0801676C + ldr r1, [r4, #4] + adds r0, r2, #0 + bl sub_080171A8 + adds r6, r0, #0 + cmp r6, #0xff + beq _08016712 + ldr r0, [r4] + adds r2, r0, r5 + ldrb r1, [r2, #0x1a] + lsls r0, r1, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _080166F0 + lsls r0, r6, #3 + subs r0, r0, r6 + lsls r6, r0, #2 + ldr r1, [r4, #4] + adds r1, r1, r6 + adds r0, r2, #0 + bl sub_0801713C + cmp r0, #0 + beq _080166D6 + ldr r1, [r4] + ldr r0, [r4, #4] + adds r1, r1, r5 + adds r0, r0, r6 + ldm r0!, {r2, r3, r6} + stm r1!, {r2, r3, r6} + ldm r0!, {r2, r3, r6} + stm r1!, {r2, r3, r6} + ldr r0, [r4] + adds r0, r0, r5 + movs r1, #0x40 + strb r1, [r0, #0x1b] + movs r7, #1 + b _08016708 +_080166D6: + ldr r0, [r4] + adds r1, r0, r5 + ldrb r0, [r1, #0x1b] + cmp r0, #0 + beq _08016708 + subs r0, #1 + strb r0, [r1, #0x1b] + ldr r0, [r4] + adds r0, r0, r5 + ldrb r0, [r0, #0x1b] + cmp r0, #0 + bne _08016708 + b _08016706 +_080166F0: + movs r3, #4 + rsbs r3, r3, #0 + adds r0, r3, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x1a] + ldr r0, [r4] + adds r0, r0, r5 + movs r1, #0 + strb r1, [r0, #0x1b] +_08016706: + movs r7, #2 +_08016708: + ldr r0, [r4] + add r0, r8 + movs r1, #0 + strh r1, [r0, #0x18] + b _0801676C +_08016712: + ldr r0, [r4] + adds r1, r0, r5 + ldrb r0, [r1, #0x1a] + lsls r2, r0, #0x1e + lsrs r0, r2, #0x1e + cmp r0, #2 + beq _0801674C + ldrh r0, [r1, #0x18] + adds r0, #1 + strh r0, [r1, #0x18] + ldr r0, [r4] + adds r2, r0, r5 + ldrh r1, [r2, #0x18] + ldr r0, _08016748 + cmp r1, r0 + bls _0801676C + ldrb r0, [r2, #0x1a] + movs r5, #4 + rsbs r5, r5, #0 + adds r1, r5, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #0x1a] + movs r7, #2 + b _0801676C + .align 2, 0 +_08016748: .4byte 0x00000257 +_0801674C: + lsrs r0, r2, #0x1e + cmp r0, #2 + bne _0801676C + ldrh r0, [r1, #0x18] + adds r0, #1 + strh r0, [r1, #0x18] + ldr r0, [r4] + adds r2, r0, r5 + ldrh r1, [r2, #0x18] + ldr r0, _080167AC + cmp r1, r0 + bls _0801676C + adds r0, r2, #0 + movs r1, #1 + bl sub_08017044 +_0801676C: + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + cmp r0, #7 + bhi _0801677C + b _08016678 +_0801677C: + movs r5, #0 + movs r6, #3 +_08016780: + ldr r0, [r4] + ldr r1, [r4, #4] + adds r1, r1, r5 + movs r2, #8 + bl sub_080171F8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _08016796 + movs r7, #1 +_08016796: + adds r5, #0x1c + subs r6, #1 + cmp r6, #0 + bge _08016780 + adds r0, r7, #0 +_080167A0: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080167AC: .4byte 0x00000383 + thumb_func_end sub_08016610 + + thumb_func_start sub_080167B0 +sub_080167B0: @ 0x080167B0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + lsls r0, r0, #2 + add r0, sl + lsls r0, r0, #3 + ldr r1, _080168A0 + adds r6, r0, r1 + movs r7, #0 + mov r0, sp + adds r0, #0x10 + str r0, [sp, #0x18] +_080167D4: + lsls r2, r7, #0x18 + lsrs r2, r2, #0x18 + mov r0, sp + ldr r1, [sp, #0x18] + bl sub_0800D948 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + mov r0, sp + ldrb r0, [r0, #0xa] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x19 + mov r2, sl + lsls r1, r2, #2 + add r1, sl + lsls r1, r1, #3 + ldr r3, _080168A4 + adds r1, r1, r3 + movs r5, #0x10 + ldrsh r1, [r1, r5] + bl sub_08013890 + cmp r0, #0 + bne _08016810 + mov r1, sp + ldr r0, _080168A8 + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} +_08016810: + mov r0, sp + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + beq _08016828 + mov r1, sp + ldr r0, _080168A8 + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} +_08016828: + cmp r4, #0 + bne _080168AC + lsls r0, r7, #3 + mov r8, r0 + adds r1, r7, #1 + mov sb, r1 + cmp r7, #0 + ble _08016868 + movs r2, #0 + str r2, [sp, #0x1c] + adds r4, r7, #0 +_0801683E: + ldr r0, [r6, #4] + ldr r3, [sp, #0x1c] + adds r0, r0, r3 + mov r1, sp + bl sub_080170F4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801685C + mov r1, sp + ldr r0, _080168A8 + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} +_0801685C: + ldr r5, [sp, #0x1c] + adds r5, #0x1c + str r5, [sp, #0x1c] + subs r4, #1 + cmp r4, #0 + bne _0801683E +_08016868: + ldr r1, [r6, #4] + mov r0, r8 + subs r4, r0, r7 + lsls r4, r4, #2 + adds r1, r1, r4 + mov r0, sp + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} + ldr r0, [r6, #4] + adds r0, r0, r4 + ldr r1, _080168A8 + bl sub_080170F4 + ldr r3, [r6, #4] + adds r3, r3, r4 + movs r2, #1 + ands r2, r0 + ldrb r0, [r3, #0x18] + movs r4, #2 + rsbs r4, r4, #0 + adds r1, r4, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #0x18] + b _080168E4 + .align 2, 0 +_080168A0: .4byte 0x03005B68 +_080168A4: .4byte 0x03005B60 +_080168A8: .4byte 0x082C2364 +_080168AC: + ldr r1, [r6] + lsls r4, r7, #3 + subs r4, r4, r7 + lsls r4, r4, #2 + adds r1, r1, r4 + mov r0, sp + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} + ldr r0, [r6] + adds r0, r0, r4 + ldr r1, _080168FC + bl sub_080170F4 + ldr r3, [r6] + adds r3, r3, r4 + movs r2, #1 + ands r2, r0 + ldrb r0, [r3, #0x18] + movs r4, #2 + rsbs r4, r4, #0 + adds r1, r4, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #0x18] + adds r7, #1 + mov sb, r7 +_080168E4: + mov r7, sb + cmp r7, #3 + bgt _080168EC + b _080167D4 +_080168EC: + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080168FC: .4byte 0x082C2364 + thumb_func_end sub_080167B0 + + thumb_func_start sub_08016900 +sub_08016900: @ 0x08016900 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + ldr r0, _0801692C + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r2, _08016930 + adds r3, r1, r2 + str r4, [r3] + str r5, [r3, #4] + adds r2, r2, r1 + strh r6, [r2, #8] + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0801692C: .4byte 0x080167B1 +_08016930: .4byte 0x03005B68 + thumb_func_end sub_08016900 + + thumb_func_start sub_08016934 +sub_08016934: @ 0x08016934 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + lsls r0, r0, #2 + add r0, sl + lsls r0, r0, #3 + ldr r1, _08016A20 + adds r6, r0, r1 + movs r3, #0 +_08016952: + lsls r4, r3, #3 + subs r0, r4, r3 + lsls r5, r0, #2 + ldr r0, [r6] + adds r0, r0, r5 + adds r1, r0, #0 + adds r1, #0x10 + lsls r2, r3, #0x18 + lsrs r2, r2, #0x18 + str r3, [sp] + bl sub_0800D948 + ldr r0, [r6] + adds r0, r0, r5 + ldrb r0, [r0, #0xa] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x19 + mov r2, sl + lsls r1, r2, #2 + add r1, sl + lsls r1, r1, #3 + ldr r7, _08016A24 + adds r1, r1, r7 + movs r2, #0xc + ldrsh r1, [r1, r2] + bl sub_08013890 + mov r8, r4 + ldr r3, [sp] + cmp r0, #0 + bne _0801699E + ldr r1, [r6] + adds r1, r1, r5 + ldr r0, _08016A28 + ldm r0!, {r2, r4, r7} + stm r1!, {r2, r4, r7} + ldm r0!, {r2, r4, r7} + stm r1!, {r2, r4, r7} +_0801699E: + adds r4, r3, #1 + mov sb, r4 + cmp r3, #0 + ble _080169E2 + str r5, [sp, #4] + movs r5, #0 + str r5, [sp, #8] + adds r4, r3, #0 +_080169AE: + ldr r1, [r6] + ldr r7, [sp, #8] + adds r0, r1, r7 + ldr r2, [sp, #4] + adds r1, r1, r2 + str r3, [sp] + bl sub_080170F4 + lsls r0, r0, #0x18 + ldr r3, [sp] + cmp r0, #0 + bne _080169D6 + ldr r1, [r6] + ldr r5, [sp, #4] + adds r1, r1, r5 + ldr r0, _08016A28 + ldm r0!, {r2, r5, r7} + stm r1!, {r2, r5, r7} + ldm r0!, {r2, r5, r7} + stm r1!, {r2, r5, r7} +_080169D6: + ldr r7, [sp, #8] + adds r7, #0x1c + str r7, [sp, #8] + subs r4, #1 + cmp r4, #0 + bne _080169AE +_080169E2: + mov r0, r8 + subs r4, r0, r3 + lsls r4, r4, #2 + ldr r0, [r6] + adds r0, r0, r4 + ldr r1, _08016A28 + bl sub_080170F4 + ldr r3, [r6] + adds r3, r3, r4 + movs r2, #1 + ands r2, r0 + ldrb r0, [r3, #0x18] + movs r4, #2 + rsbs r4, r4, #0 + adds r1, r4, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #0x18] + mov r3, sb + cmp r3, #3 + ble _08016952 + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08016A20: .4byte 0x03005B68 +_08016A24: .4byte 0x03005B60 +_08016A28: .4byte 0x082C2364 + thumb_func_end sub_08016934 + + thumb_func_start sub_08016A2C +sub_08016A2C: @ 0x08016A2C + push {lr} + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #7 + bne _08016A3C + ldrb r1, [r0] + movs r0, #0x20 + b _08016A44 +_08016A3C: + cmp r1, #8 + bne _08016A4E + ldrb r1, [r0] + movs r0, #0x10 +_08016A44: + ands r0, r1 + cmp r0, #0 + beq _08016A4E + movs r0, #1 + b _08016A50 +_08016A4E: + movs r0, #0 +_08016A50: + pop {r1} + bx r1 + thumb_func_end sub_08016A2C + + thumb_func_start sub_08016A54 +sub_08016A54: @ 0x08016A54 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _08016AC8 + adds r4, r1, r0 + movs r6, #0 + subs r0, #8 + movs r5, #0 + adds r1, r1, r0 + mov r8, r1 +_08016A72: + ldr r0, [r4] + adds r0, r0, r5 + adds r1, r0, #0 + adds r1, #0x10 + lsls r2, r6, #0x18 + lsrs r2, r2, #0x18 + bl sub_0800DA00 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08016A96 + ldr r0, [r4] + adds r0, r0, r5 + mov r2, r8 + movs r3, #0xc + ldrsh r1, [r2, r3] + bl sub_08016A2C +_08016A96: + ldr r0, [r4] + adds r0, r0, r5 + ldr r1, _08016ACC + bl sub_080170F4 + ldr r3, [r4] + adds r3, r3, r5 + movs r2, #1 + ands r2, r0 + ldrb r0, [r3, #0x18] + movs r7, #2 + rsbs r7, r7, #0 + adds r1, r7, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #0x18] + adds r5, #0x1c + adds r6, #1 + cmp r6, #3 + ble _08016A72 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08016AC8: .4byte 0x03005B68 +_08016ACC: .4byte 0x082C2364 + thumb_func_end sub_08016A54 + + thumb_func_start sub_08016AD0 +sub_08016AD0: @ 0x08016AD0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r0, _08016AF8 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r0, #2 + adds r2, r2, r0 + lsls r2, r2, #3 + ldr r1, _08016AFC + adds r3, r2, r1 + str r4, [r3] + adds r1, r1, r2 + strh r5, [r1, #4] + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08016AF8: .4byte 0x08016935 +_08016AFC: .4byte 0x03005B68 + thumb_func_end sub_08016AD0 + + thumb_func_start sub_08016B00 +sub_08016B00: @ 0x08016B00 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r0, _08016B28 + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r0, #2 + adds r2, r2, r0 + lsls r2, r2, #3 + ldr r1, _08016B2C + adds r3, r2, r1 + str r4, [r3] + adds r1, r1, r2 + strh r5, [r1, #4] + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08016B28: .4byte 0x08016A55 +_08016B2C: .4byte 0x03005B68 + thumb_func_end sub_08016B00 + + thumb_func_start sub_08016B30 +sub_08016B30: @ 0x08016B30 + push {r4, lr} + adds r4, r0, #0 + bl sub_08196F98 + movs r0, #0 + movs r1, #1 + bl ClearDialogWindowAndFrame + ldr r0, _08016B58 + adds r1, r4, #0 + bl StringExpandPlaceholders + movs r0, #0 + movs r1, #1 + bl AddTextPrinterWithCustomSpeedForMessage + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08016B58: .4byte 0x02021C7C + thumb_func_end sub_08016B30 + + thumb_func_start sub_08016B5C +sub_08016B5C: @ 0x08016B5C + push {lr} + bl RunTextPrintersAndIsPrinter0Active + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08016B6C + movs r0, #0 + b _08016B6E +_08016B6C: + movs r0, #1 +_08016B6E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08016B5C + + thumb_func_start PrintOnTextbox +PrintOnTextbox: @ 0x08016B74 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4] + cmp r0, #0 + beq _08016B86 + cmp r0, #1 + beq _08016BAC + b _08016BBE +_08016B86: + bl sub_08196F98 + movs r0, #0 + movs r1, #1 + bl ClearDialogWindowAndFrame + ldr r0, _08016BA8 + adds r1, r5, #0 + bl StringExpandPlaceholders + movs r0, #1 + bl AddTextPrinterForMessage_2 + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + b _08016BBE + .align 2, 0 +_08016BA8: .4byte 0x02021C7C +_08016BAC: + bl RunTextPrintersAndIsPrinter0Active + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + bne _08016BBE + strb r0, [r4] + movs r0, #1 + b _08016BC0 +_08016BBE: + movs r0, #0 +_08016BC0: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end PrintOnTextbox + + thumb_func_start sub_08016BC8 +sub_08016BC8: @ 0x08016BC8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4] + cmp r0, #0 + beq _08016BDA + cmp r0, #1 + beq _08016BF0 + b _08016C1C +_08016BDA: + cmp r5, #0 + beq _08016BE4 + movs r0, #3 + rsbs r0, r0, #0 + b _08016C20 +_08016BE4: + bl DisplayYesNoMenuDefaultYes + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + b _08016C1C +_08016BF0: + cmp r5, #0 + beq _08016C02 + bl sub_08198D88 + movs r0, #0 + strb r0, [r4] + movs r0, #3 + rsbs r0, r0, #0 + b _08016C20 +_08016C02: + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + movs r2, #0x80 + lsls r2, r2, #0x11 + adds r0, r0, r2 + lsrs r0, r0, #0x18 + cmp r0, #2 + bhi _08016C1C + strb r5, [r4] + adds r0, r1, #0 + b _08016C20 +_08016C1C: + movs r0, #2 + rsbs r0, r0, #0 +_08016C20: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08016BC8 + + thumb_func_start sub_08016C28 +sub_08016C28: @ 0x08016C28 + push {r4, lr} + sub sp, #8 + bl AddWindow + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #0 + bl ClearStdWindowAndFrame + adds r0, r4, #0 + movs r1, #0xff + bl FillWindowPixelBuffer + ldr r2, _08016C74 + movs r0, #1 + str r0, [sp] + movs r0, #6 + str r0, [sp, #4] + adds r0, r4, #0 + movs r1, #1 + movs r3, #8 + bl sub_08016EA4 + adds r0, r4, #0 + movs r1, #2 + bl CopyWindowToVram + adds r0, r4, #0 + bl PutWindowTilemap + adds r0, r4, #0 + add sp, #8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08016C74: .4byte 0x082C1D60 + thumb_func_end sub_08016C28 + + thumb_func_start sub_08016C78 +sub_08016C78: @ 0x08016C78 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl RemoveWindow + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08016C78 + + thumb_func_start sub_08016C88 +sub_08016C88: @ 0x08016C88 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + adds r5, r1, #0 + mov sb, r2 + adds r0, r3, #0 + ldrb r4, [r7] + cmp r4, #0 + beq _08016CA4 + cmp r4, #1 + beq _08016CE4 + b _08016D4A +_08016CA4: + bl AddWindow + strb r0, [r5] + ldrb r0, [r5] + movs r1, #0 + bl ClearStdWindowAndFrame + ldr r0, _08016CE0 + adds r2, r0, #0 + ldr r1, [sp, #0x1c] + ldm r1!, {r3, r4, r6} + stm r2!, {r3, r4, r6} + ldm r1!, {r3, r4, r6} + stm r2!, {r3, r4, r6} + ldrb r1, [r5] + strb r1, [r0, #0x10] + movs r1, #0 + movs r2, #0 + bl ListMenuInit + mov r1, sb + strb r0, [r1] + ldrb r0, [r5] + movs r1, #1 + bl CopyWindowToVram + ldrb r0, [r7] + adds r0, #1 + strb r0, [r7] + b _08016D4A + .align 2, 0 +_08016CE0: .4byte 0x03006050 +_08016CE4: + mov r3, sb + ldrb r0, [r3] + bl ListMenu_ProcessInput + mov r8, r0 + ldr r0, _08016D1C + ldrh r1, [r0, #0x2e] + ands r4, r1 + cmp r4, #0 + beq _08016D20 + mov r4, sb + ldrb r0, [r4] + movs r1, #0 + movs r2, #0 + bl DestroyListMenuTask + ldrb r0, [r5] + movs r1, #1 + bl DrawStdWindowFrame + ldrb r0, [r5] + bl RemoveWindow + movs r0, #0 + strb r0, [r7] + mov r0, r8 + b _08016D4E + .align 2, 0 +_08016D1C: .4byte 0x03002360 +_08016D20: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08016D4A + mov r6, sb + ldrb r0, [r6] + movs r1, #0 + movs r2, #0 + bl DestroyListMenuTask + ldrb r0, [r5] + movs r1, #1 + bl DrawStdWindowFrame + ldrb r0, [r5] + bl RemoveWindow + strb r4, [r7] + movs r0, #2 + rsbs r0, r0, #0 + b _08016D4E +_08016D4A: + movs r0, #1 + rsbs r0, r0, #0 +_08016D4E: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08016C88 + + thumb_func_start sub_08016D5C +sub_08016D5C: @ 0x08016D5C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r6, r0, #0 + adds r5, r1, #0 + mov sl, r2 + mov r8, r3 + ldrb r4, [r6] + cmp r4, #1 + beq _08016DC8 + cmp r4, #1 + bgt _08016D7E + cmp r4, #0 + beq _08016D84 + b _08016E60 +_08016D7E: + cmp r4, #2 + beq _08016DD8 + b _08016E60 +_08016D84: + ldr r0, _08016DC0 + bl sub_08016C28 + mov r1, r8 + strb r0, [r1] + ldr r0, [sp, #0x20] + bl AddWindow + strb r0, [r5] + ldrb r0, [r5] + movs r1, #0 + bl ClearStdWindowAndFrame + ldr r0, _08016DC4 + adds r2, r0, #0 + ldr r1, [sp, #0x24] + ldm r1!, {r3, r4, r7} + stm r2!, {r3, r4, r7} + ldm r1!, {r3, r4, r7} + stm r2!, {r3, r4, r7} + ldrb r1, [r5] + strb r1, [r0, #0x10] + movs r1, #0 + movs r2, #1 + bl ListMenuInit + mov r1, sl + strb r0, [r1] + b _08016DD0 + .align 2, 0 +_08016DC0: .4byte 0x082C224C +_08016DC4: .4byte 0x03006050 +_08016DC8: + ldrb r0, [r5] + movs r1, #1 + bl CopyWindowToVram +_08016DD0: + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] + b _08016E60 +_08016DD8: + mov r3, sl + ldrb r0, [r3] + bl ListMenu_ProcessInput + adds r1, r0, #0 + ldr r0, _08016E20 + ldrh r2, [r0, #0x2e] + movs r0, #3 + ands r0, r2 + cmp r0, #0 + beq _08016E60 + cmp r1, #8 + beq _08016DFA + ands r4, r2 + mov sb, r4 + cmp r4, #0 + beq _08016E24 +_08016DFA: + mov r4, sl + ldrb r0, [r4] + movs r1, #0 + movs r2, #0 + bl DestroyListMenuTask + ldrb r0, [r5] + bl RemoveWindow + mov r7, r8 + ldrb r0, [r7] + bl sub_08016C78 + movs r0, #0 + strb r0, [r6] + movs r0, #2 + rsbs r0, r0, #0 + b _08016E64 + .align 2, 0 +_08016E20: .4byte 0x03002360 +_08016E24: + ldr r0, [sp, #0x28] + bl sub_08017770 + adds r4, r0, #0 + cmp r4, #0 + blt _08016E5A + mov r1, sl + ldrb r0, [r1] + movs r1, #0 + movs r2, #0 + bl DestroyListMenuTask + ldrb r0, [r5] + movs r1, #1 + bl DrawStdWindowFrame + ldrb r0, [r5] + bl RemoveWindow + mov r3, r8 + ldrb r0, [r3] + bl sub_08016C78 + mov r7, sb + strb r7, [r6] + adds r0, r4, #0 + b _08016E64 +_08016E5A: + movs r0, #7 + bl PlaySE +_08016E60: + movs r0, #1 + rsbs r0, r0, #0 +_08016E64: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08016D5C + + thumb_func_start sub_08016E74 +sub_08016E74: @ 0x08016E74 + push {lr} + sub sp, #0xc + movs r0, #0x20 + str r0, [sp] + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect + movs r0, #0 + bl CopyBgTilemapBufferToVram + add sp, #0xc + pop {r0} + bx r0 + thumb_func_end sub_08016E74 + + thumb_func_start sub_08016E98 +sub_08016E98: @ 0x08016E98 + push {lr} + bl EnableBothScriptContexts + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08016E98 + + thumb_func_start sub_08016EA4 +sub_08016EA4: @ 0x08016EA4 + push {r4, r5, lr} + sub sp, #0x10 + ldr r5, [sp, #0x1c] + ldr r4, [sp, #0x20] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r2, [sp] + mov r2, sp + strb r0, [r2, #4] + mov r0, sp + strb r1, [r0, #5] + strb r3, [r0, #6] + strb r5, [r0, #7] + strb r3, [r0, #8] + strb r5, [r0, #9] + ldrb r1, [r2, #0xc] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0xc] + ldr r2, _08016EF0 + ldrb r1, [r2] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + cmp r4, #6 + bls _08016EE6 + b _08017032 +_08016EE6: + lsls r0, r4, #2 + ldr r1, _08016EF4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08016EF0: .4byte 0x030030B4 +_08016EF4: .4byte 0x08016EF8 +_08016EF8: @ jump table + .4byte _08016F14 @ case 0 + .4byte _08016F40 @ case 1 + .4byte _08016F6C @ case 2 + .4byte _08016F98 @ case 3 + .4byte _08016FC4 @ case 4 + .4byte _08016FF0 @ case 5 + .4byte _08017008 @ case 6 +_08016F14: + mov r0, sp + movs r1, #0 + strb r1, [r0, #0xa] + strb r1, [r0, #0xb] + mov r2, sp + ldrb r1, [r2, #0xc] + movs r3, #0xf + adds r0, r3, #0 + ands r0, r1 + movs r1, #0x20 + orrs r0, r1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0xd] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0xd] + ands r0, r3 + movs r1, #0x30 + b _0801702E +_08016F40: + mov r0, sp + movs r1, #0 + strb r1, [r0, #0xa] + strb r1, [r0, #0xb] + mov r2, sp + ldrb r1, [r2, #0xc] + movs r3, #0xf + adds r0, r3, #0 + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0xd] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0xd] + ands r0, r3 + movs r1, #0x50 + b _0801702E +_08016F6C: + mov r0, sp + movs r1, #0 + strb r1, [r0, #0xa] + strb r1, [r0, #0xb] + mov r2, sp + ldrb r1, [r2, #0xc] + movs r3, #0xf + adds r0, r3, #0 + ands r0, r1 + movs r1, #0x60 + orrs r0, r1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0xd] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0xd] + ands r0, r3 + movs r1, #0x70 + b _0801702E +_08016F98: + mov r0, sp + movs r1, #0 + strb r1, [r0, #0xa] + strb r1, [r0, #0xb] + mov r2, sp + ldrb r1, [r2, #0xc] + movs r3, #0xf + adds r0, r3, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0xd] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0xd] + ands r0, r3 + movs r1, #0x30 + b _0801702E +_08016FC4: + mov r0, sp + movs r1, #0 + strb r1, [r0, #0xa] + strb r1, [r0, #0xb] + mov r2, sp + ldrb r1, [r2, #0xc] + movs r3, #0xf + adds r0, r3, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0xd] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #0xd] + ands r0, r3 + movs r1, #0x30 + b _0801702E +_08016FF0: + mov r0, sp + movs r1, #0 + strb r1, [r0, #0xa] + strb r1, [r0, #0xb] + mov r2, sp + ldrb r1, [r2, #0xc] + movs r4, #0xf + movs r3, #0xf + adds r0, r3, #0 + ands r0, r1 + movs r1, #0x70 + b _0801701E +_08017008: + mov r0, sp + movs r1, #0 + strb r1, [r0, #0xa] + strb r1, [r0, #0xb] + mov r2, sp + ldrb r1, [r2, #0xc] + movs r4, #0xf + movs r3, #0xf + adds r0, r3, #0 + ands r0, r1 + movs r1, #0xe0 +_0801701E: + orrs r0, r1 + strb r0, [r2, #0xc] + mov r1, sp + ldrb r0, [r1, #0xd] + orrs r0, r4 + strb r0, [r1, #0xd] + ands r0, r3 + movs r1, #0x90 +_0801702E: + orrs r0, r1 + strb r0, [r2, #0xd] +_08017032: + mov r0, sp + movs r1, #0xff + movs r2, #0 + bl AddTextPrinter + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_08016EA4 + + thumb_func_start sub_08017044 +sub_08017044: @ 0x08017044 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0 + beq _0801709C + ldr r2, _080170AC + mov r8, r2 + movs r5, #0 + mov sb, r5 + movs r6, #4 + rsbs r6, r6, #0 + mov ip, r6 + adds r2, r0, #0 + adds r2, #0x18 + adds r4, r0, #0 + movs r7, #0xff + mov sl, r7 + adds r3, r1, #0 +_08017070: + adds r1, r4, #0 + mov r0, r8 + ldm r0!, {r5, r6, r7} + stm r1!, {r5, r6, r7} + ldm r0!, {r5, r6, r7} + stm r1!, {r5, r6, r7} + mov r0, sl + strh r0, [r2] + ldrb r1, [r2, #2] + mov r0, ip + ands r0, r1 + movs r1, #5 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r2, #2] + mov r5, sb + strb r5, [r2, #3] + adds r2, #0x20 + adds r4, #0x20 + subs r3, #1 + cmp r3, #0 + bne _08017070 +_0801709C: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080170AC: .4byte 0x082C2364 + thumb_func_end sub_08017044 + + thumb_func_start sub_080170B0 +sub_080170B0: @ 0x080170B0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r1, _080170F0 + mov ip, r1 + movs r5, #2 + rsbs r5, r5, #0 + mov r8, r5 + adds r2, r0, #0 + adds r2, #0x18 + adds r3, r0, #0 + movs r4, #3 +_080170C8: + adds r1, r3, #0 + mov r0, ip + ldm r0!, {r5, r6, r7} + stm r1!, {r5, r6, r7} + ldm r0!, {r5, r6, r7} + stm r1!, {r5, r6, r7} + ldrb r1, [r2] + mov r0, r8 + ands r0, r1 + strb r0, [r2] + adds r2, #0x1c + adds r3, #0x1c + subs r4, #1 + cmp r4, #0 + bge _080170C8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080170F0: .4byte 0x082C2364 + thumb_func_end sub_080170B0 + + thumb_func_start sub_080170F4 +sub_080170F4: @ 0x080170F4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + movs r2, #0 + adds r4, r5, #2 + adds r3, r6, #2 +_08017100: + adds r0, r4, r2 + adds r1, r3, r2 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bne _08017128 + adds r2, #1 + cmp r2, #1 + ble _08017100 + movs r2, #0 + adds r4, r5, #0 + adds r4, #0x10 + adds r3, r6, #0 + adds r3, #0x10 +_0801711C: + adds r0, r4, r2 + adds r1, r3, r2 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _0801712C +_08017128: + movs r0, #1 + b _08017134 +_0801712C: + adds r2, #1 + cmp r2, #7 + ble _0801711C + movs r0, #0 +_08017134: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080170F4 + + thumb_func_start sub_0801713C +sub_0801713C: @ 0x0801713C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + ldrb r3, [r5, #0xa] + movs r0, #0x7f + ldrb r2, [r6, #0xa] + adds r1, r0, #0 + ands r1, r3 + ands r0, r2 + cmp r1, r0 + bne _080171A0 + movs r0, #0x80 + adds r1, r0, #0 + ands r1, r3 + ands r0, r2 + cmp r1, r0 + bne _080171A0 + movs r2, #0 + adds r4, r5, #4 + adds r3, r6, #4 +_08017164: + adds r0, r4, r2 + adds r1, r3, r2 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bne _080171A0 + adds r2, #1 + cmp r2, #3 + ble _08017164 + ldrh r2, [r5, #8] + ldr r0, _0801719C + ldrh r3, [r6, #8] + adds r1, r0, #0 + ands r1, r2 + ands r0, r3 + cmp r1, r0 + bne _080171A0 + ldrb r2, [r5, #9] + movs r0, #0xfc + ldrb r3, [r6, #9] + adds r1, r0, #0 + ands r1, r2 + ands r0, r3 + cmp r1, r0 + bne _080171A0 + movs r0, #0 + b _080171A2 + .align 2, 0 +_0801719C: .4byte 0x000003FF +_080171A0: + movs r0, #1 +_080171A2: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_0801713C + + thumb_func_start sub_080171A8 +sub_080171A8: @ 0x080171A8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + movs r7, #0xff + movs r6, #0 + adds r4, r1, #0 + adds r4, #0x18 + adds r5, r1, #0 +_080171BA: + ldrb r1, [r4] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080171E2 + mov r0, r8 + adds r1, r5, #0 + bl sub_080170F4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080171E2 + lsls r0, r6, #0x18 + lsrs r7, r0, #0x18 + ldrb r0, [r4] + movs r2, #2 + rsbs r2, r2, #0 + adds r1, r2, #0 + ands r0, r1 + strb r0, [r4] +_080171E2: + adds r4, #0x1c + adds r5, #0x1c + adds r6, #1 + cmp r6, #3 + ble _080171BA + adds r0, r7, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_080171A8 + + thumb_func_start sub_080171F8 +sub_080171F8: @ 0x080171F8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r3, r0, #0 + mov r8, r1 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + ldrb r1, [r1, #0x18] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0801726C + movs r5, #0 + cmp r5, r6 + bge _0801726C + movs r0, #4 + rsbs r0, r0, #0 + mov sb, r0 + movs r1, #2 + rsbs r1, r1, #0 + mov ip, r1 + adds r2, r3, #0 + adds r2, #0x18 + adds r1, r3, #0 +_0801722A: + ldrb r0, [r2, #2] + movs r3, #3 + ands r3, r0 + cmp r3, #0 + bne _08017262 + mov r0, r8 + ldm r0!, {r4, r6, r7} + stm r1!, {r4, r6, r7} + ldm r0!, {r4, r6, r7} + stm r1!, {r4, r6, r7} + strh r3, [r2] + ldrb r1, [r2, #2] + mov r0, sb + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #2] + movs r0, #0x40 + strb r0, [r2, #3] + mov r0, r8 + ldrb r1, [r0, #0x18] + mov r0, ip + ands r0, r1 + mov r1, r8 + strb r0, [r1, #0x18] + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + b _0801726E +_08017262: + adds r2, #0x20 + adds r1, #0x20 + adds r5, #1 + cmp r5, r6 + blt _0801722A +_0801726C: + movs r0, #0xff +_0801726E: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080171F8 + + thumb_func_start sub_0801727C +sub_0801727C: @ 0x0801727C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x10 + adds r4, r1, #0 + adds r5, r3, #0 + ldr r3, [sp, #0x2c] + ldr r1, [sp, #0x30] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov sb, r3 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r6, _08017354 + adds r1, #1 + adds r0, r6, #0 + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + ldr r1, _08017358 + adds r0, r6, #0 + bl StringAppend + str r7, [sp] + movs r0, #0 + str r0, [sp, #4] + mov r0, r8 + movs r1, #1 + adds r2, r6, #0 + adds r3, r4, #0 + bl sub_08016EA4 + adds r4, #0x18 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldrb r0, [r5, #0xa] + lsls r0, r0, #0x19 + lsrs r2, r0, #0x19 + ldrb r1, [r5, #0x1a] + movs r0, #3 + ands r0, r1 + cmp r0, #1 + bne _08017344 + movs r0, #0x40 + ands r2, r0 + cmp r2, #0 + bne _08017344 + adds r1, r5, #0 + adds r1, #0x10 + adds r0, r6, #0 + movs r2, #5 + bl StringCopyN_Multibyte + str r7, [sp] + mov r0, sb + str r0, [sp, #4] + mov r0, r8 + movs r1, #2 + adds r2, r6, #0 + adds r3, r4, #0 + bl sub_08016EA4 + ldrb r1, [r5, #2] + ldrb r0, [r5, #3] + lsls r0, r0, #8 + orrs r1, r0 + add r0, sp, #8 + movs r2, #2 + movs r3, #5 + bl ConvertIntToDecimalStringN + ldr r1, _0801735C + adds r0, r6, #0 + bl StringCopy + adds r0, r6, #0 + add r1, sp, #8 + bl StringAppend + adds r3, r4, #0 + adds r3, #0x38 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r7, [sp] + mov r0, sb + str r0, [sp, #4] + mov r0, r8 + movs r1, #1 + adds r2, r6, #0 + bl sub_08016EA4 +_08017344: + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08017354: .4byte 0x02021C7C +_08017358: .4byte 0x082C0644 +_0801735C: .4byte 0x082C0648 + thumb_func_end sub_0801727C + + thumb_func_start sub_08017360 +sub_08017360: @ 0x08017360 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x10 + adds r5, r3, #0 + ldr r3, [sp, #0x2c] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + lsls r3, r3, #0x18 + lsrs r7, r3, #0x18 + ldrb r1, [r5, #0x1a] + movs r0, #3 + ands r0, r1 + cmp r0, #1 + bne _080173E6 + ldr r4, _080173F4 + adds r1, r5, #0 + adds r1, #0x10 + adds r0, r4, #0 + movs r2, #5 + bl StringCopyN_Multibyte + mov r0, r8 + str r0, [sp] + str r7, [sp, #4] + mov r0, sb + movs r1, #2 + adds r2, r4, #0 + adds r3, r6, #0 + bl sub_08016EA4 + ldrb r1, [r5, #2] + ldrb r0, [r5, #3] + lsls r0, r0, #8 + orrs r1, r0 + add r0, sp, #8 + movs r2, #2 + movs r3, #5 + bl ConvertIntToDecimalStringN + ldr r1, _080173F8 + adds r0, r4, #0 + bl StringCopy + adds r0, r4, #0 + add r1, sp, #8 + bl StringAppend + adds r3, r6, #0 + adds r3, #0x38 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r0, r8 + str r0, [sp] + str r7, [sp, #4] + mov r0, sb + movs r1, #1 + adds r2, r4, #0 + bl sub_08016EA4 +_080173E6: + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080173F4: .4byte 0x02021C7C +_080173F8: .4byte 0x082C0648 + thumb_func_end sub_08017360 + + thumb_func_start sub_080173FC +sub_080173FC: @ 0x080173FC + push {r4, lr} + sub sp, #4 + mov r4, sp + adds r4, #2 + mov r0, sp + adds r1, r4, #0 + bl GetXYCoordsOneStepInFrontOfPlayer + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #9 + bne _08017434 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #8 + bne _08017434 + ldr r0, _08017430 + ldrb r0, [r0, #3] + cmp r0, #2 + beq _0801742A + cmp r0, #0 + bne _08017434 +_0801742A: + movs r0, #1 + b _08017436 + .align 2, 0 +_08017430: .4byte 0x02037230 +_08017434: + movs r0, #0 +_08017436: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_080173FC + + thumb_func_start sub_08017440 +sub_08017440: @ 0x08017440 + push {lr} + cmp r0, #4 + beq _08017458 + cmp r0, #4 + ble _08017460 + cmp r0, #5 + beq _08017454 + cmp r0, #8 + beq _0801745C + b _08017460 +_08017454: + movs r0, #1 + b _08017462 +_08017458: + movs r0, #2 + b _08017462 +_0801745C: + movs r0, #3 + b _08017462 +_08017460: + movs r0, #0 +_08017462: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08017440 + + thumb_func_start sub_08017468 +sub_08017468: @ 0x08017468 + push {r4, lr} + adds r4, r0, #0 + adds r0, r4, #2 + bl ReadAsU16 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r4, #0x10 + adds r1, r4, #0 + bl sub_0800E004 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_08017468 + + thumb_func_start sub_08017484 +sub_08017484: @ 0x08017484 + push {r4, r5, r6, lr} + adds r6, r3, #0 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x13 + adds r5, r0, r2 + ldrb r1, [r5, #0xa] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08017500 + cmp r4, #0 + bne _08017500 + ldr r4, _080174E0 + adds r1, r5, #0 + adds r1, #0x10 + adds r0, r4, #0 + bl StringCopy + adds r0, r5, #2 + bl ReadAsU16 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r4, #0 + bl sub_0800E004 + adds r2, r0, #0 + ldrb r1, [r5, #0xa] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x45 + bne _080174EC + ldr r0, _080174E4 + ldr r3, _080174E8 + lsls r1, r6, #2 + lsls r2, r2, #3 + adds r1, r1, r2 + adds r1, r1, r3 + ldr r1, [r1] + bl StringExpandPlaceholders + movs r0, #2 + b _080175DE + .align 2, 0 +_080174E0: .4byte 0x02021C40 +_080174E4: .4byte 0x02021C7C +_080174E8: .4byte 0x082C0FD0 +_080174EC: + ldr r0, _080174FC + lsls r1, r2, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl sub_08016B30 + movs r0, #1 + b _080175DE + .align 2, 0 +_080174FC: .4byte 0x082C0CD8 +_08017500: + ldr r0, _08017530 + adds r1, r5, #0 + adds r1, #0x10 + bl StringCopy + cmp r4, #0 + beq _08017518 + adds r0, r5, r4 + ldrb r0, [r0, #3] + lsrs r6, r0, #3 + movs r0, #1 + ands r6, r0 +_08017518: + ldrb r0, [r5, #0xa] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x19 + movs r1, #0x3f + ands r1, r0 + cmp r1, #4 + beq _08017564 + cmp r1, #4 + bgt _08017534 + cmp r1, #1 + beq _0801753E + b _080175D4 + .align 2, 0 +_08017530: .4byte 0x02021C40 +_08017534: + cmp r1, #5 + beq _08017584 + cmp r1, #8 + beq _080175A8 + b _080175D4 +_0801753E: + ldr r5, _0801755C + ldr r4, _08017560 + bl Random + lsls r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r0 + lsrs r1, r1, #0xe + lsls r0, r6, #4 + adds r1, r1, r0 + adds r1, r1, r4 + ldr r1, [r1] + b _080175C2 + .align 2, 0 +_0801755C: .4byte 0x02021C7C +_08017560: .4byte 0x082C1498 +_08017564: + ldr r5, _0801757C + ldr r4, _08017580 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + ands r0, r1 + lsls r0, r0, #2 + lsls r1, r6, #4 + b _080175BC + .align 2, 0 +_0801757C: .4byte 0x02021C7C +_08017580: .4byte 0x082C1668 +_08017584: + ldr r5, _080175A0 + ldr r4, _080175A4 + bl Random + lsls r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r1, r0 + lsrs r1, r1, #0xe + lsls r0, r6, #4 + adds r1, r1, r0 + adds r1, r1, r4 + ldr r1, [r1] + b _080175C2 + .align 2, 0 +_080175A0: .4byte 0x02021C7C +_080175A4: .4byte 0x082C1564 +_080175A8: + ldr r5, _080175CC + ldr r4, _080175D0 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + ands r0, r1 + lsls r0, r0, #2 + lsls r1, r6, #3 +_080175BC: + adds r0, r0, r1 + adds r0, r0, r4 + ldr r1, [r0] +_080175C2: + adds r0, r5, #0 + bl StringExpandPlaceholders + b _080175DC + .align 2, 0 +_080175CC: .4byte 0x02021C7C +_080175D0: .4byte 0x082C15E8 +_080175D4: + ldr r0, _080175E4 + ldr r1, _080175E8 + bl StringExpandPlaceholders +_080175DC: + movs r0, #0 +_080175DE: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080175E4: .4byte 0x02021C7C +_080175E8: .4byte 0x082C0FE0 + thumb_func_end sub_08017484 + + thumb_func_start nullsub_89 +nullsub_89: @ 0x080175EC + bx lr + .align 2, 0 + thumb_func_end nullsub_89 + + thumb_func_start sub_080175F0 +sub_080175F0: @ 0x080175F0 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0xc + ldr r4, [sp, #0x28] + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + lsls r4, r4, #0x18 + lsrs r7, r4, #0x18 + ldrh r0, [r2, #8] + lsls r0, r0, #0x16 + lsrs r4, r0, #0x16 + ldrb r0, [r2, #9] + lsrs r0, r0, #2 + mov r8, r0 + ldrb r0, [r2, #0xb] + lsrs r0, r0, #1 + mov sb, r0 + str r5, [sp] + str r7, [sp, #4] + adds r0, r6, #0 + movs r1, #1 + adds r2, r3, #0 + movs r3, #0xa + bl sub_08016EA4 + movs r0, #0xce + lsls r0, r0, #1 + cmp r4, r0 + bne _08017648 + ldr r2, _08017644 + str r5, [sp] + str r7, [sp, #4] + adds r0, r6, #0 + movs r1, #1 + movs r3, #0x46 + bl sub_08016EA4 + b _0801769E + .align 2, 0 +_08017644: .4byte 0x082C19AC +_08017648: + mov r1, r8 + adds r1, #1 + adds r0, r6, #0 + movs r2, #0x46 + adds r3, r5, #0 + bl blit_move_info_icon + lsls r2, r4, #1 + adds r2, r2, r4 + lsls r2, r2, #1 + ldr r0, _080176AC + adds r2, r2, r0 + str r5, [sp] + str r7, [sp, #4] + adds r0, r6, #0 + movs r1, #1 + movs r3, #0x78 + bl sub_08016EA4 + add r0, sp, #8 + mov r1, sb + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + movs r0, #1 + add r1, sp, #8 + movs r2, #0 + bl GetStringWidth + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r3, #0xdc + subs r3, r3, r0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r5, [sp] + str r7, [sp, #4] + adds r0, r6, #0 + movs r1, #1 + add r2, sp, #8 + bl sub_08016EA4 +_0801769E: + add sp, #0xc + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080176AC: .4byte 0x082EA31C + thumb_func_end sub_080175F0 + + thumb_func_start sub_080176B0 +sub_080176B0: @ 0x080176B0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + adds r4, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sb, r2 + ldr r0, _08017700 + ldr r0, [r0] + mov r8, r0 + movs r0, #3 + rsbs r0, r0, #0 + cmp r4, r0 + bne _0801772C + cmp r2, #1 + bne _0801772C + bl sub_0800F29C + adds r2, r0, #0 + ldrh r1, [r2, #8] + ldr r0, _08017704 + ands r0, r1 + cmp r0, #0 + beq _08017760 + ldr r0, _08017708 + ldr r3, [r0] + movs r0, #5 + str r0, [sp] + mov r0, sl + movs r1, #1 + bl sub_080175F0 + b _08017760 + .align 2, 0 +_08017700: .4byte 0x020228E4 +_08017704: .4byte 0x000003FF +_08017708: .4byte 0x03005AF0 +_0801770C: + adds r1, r7, r4 + adds r1, #0x10 + add r0, sp, #4 + bl StringCopy + mov r0, r8 + ldr r2, [r0] + adds r2, r2, r4 + movs r0, #6 + str r0, [sp] + mov r0, sl + mov r1, sb + add r3, sp, #4 + bl sub_080175F0 + b _08017760 +_0801772C: + movs r5, #0 + movs r1, #0 + mov r0, r8 + ldr r7, [r0] + adds r2, r7, #0 + adds r2, #8 + movs r3, #0 + adds r6, r4, #1 +_0801773C: + ldrb r0, [r2, #0x12] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + adds r4, r3, #0 + cmp r0, #1 + bne _08017752 + ldrh r0, [r2] + lsls r0, r0, #0x16 + cmp r0, #0 + beq _08017752 + adds r5, #1 +_08017752: + cmp r5, r6 + beq _0801770C + adds r2, #0x20 + adds r3, #0x20 + adds r1, #1 + cmp r1, #7 + ble _0801773C +_08017760: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_080176B0 + + thumb_func_start sub_08017770 +sub_08017770: @ 0x08017770 + push {r4, r5, r6, r7, lr} + movs r4, #0 + movs r3, #0 + movs r7, #3 + ldr r6, _080177A0 + adds r2, r0, #0 + adds r2, #8 + adds r5, r1, #1 +_08017780: + ldrb r1, [r2, #0x12] + adds r0, r7, #0 + ands r0, r1 + cmp r0, #1 + bne _08017796 + ldrh r1, [r2] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _08017796 + adds r4, #1 +_08017796: + cmp r4, r5 + bne _080177A4 + adds r0, r3, #0 + b _080177B0 + .align 2, 0 +_080177A0: .4byte 0x000003FF +_080177A4: + adds r2, #0x20 + adds r3, #1 + cmp r3, #7 + ble _08017780 + movs r0, #1 + rsbs r0, r0, #0 +_080177B0: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08017770 + + thumb_func_start sub_080177B8 +sub_080177B8: @ 0x080177B8 + lsls r0, r0, #5 + adds r0, r0, r1 + ldrb r0, [r0, #0xb] + lsls r0, r0, #0x1f + lsrs r0, r0, #0x1f + bx lr + thumb_func_end sub_080177B8 + + thumb_func_start sub_080177C4 +sub_080177C4: @ 0x080177C4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #0xce + lsls r0, r0, #1 + cmp r1, r0 + bne _08017804 + movs r4, #0 + b _080177EE +_080177D4: + movs r0, #0x64 + muls r0, r4, r0 + ldr r1, _080177FC + adds r0, r0, r1 + movs r1, #0x41 + bl GetMonData + adds r1, r0, #0 + movs r0, #0xce + lsls r0, r0, #1 + cmp r1, r0 + beq _08017834 + adds r4, #1 +_080177EE: + ldr r0, _08017800 + ldrb r0, [r0] + cmp r4, r0 + blt _080177D4 + movs r0, #2 + b _08017850 + .align 2, 0 +_080177FC: .4byte 0x02024190 +_08017800: .4byte 0x0202418D +_08017804: + movs r4, #0 + ldr r0, _08017838 + ldrb r0, [r0] + cmp r4, r0 + bge _0801784E + ldr r6, _0801783C +_08017810: + movs r0, #0x64 + muls r0, r4, r0 + ldr r1, _08017840 + adds r0, r0, r1 + movs r1, #0x41 + bl GetMonData + adds r1, r0, #0 + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, r6 + ldrb r0, [r1, #6] + cmp r0, r5 + beq _08017834 + ldrb r0, [r1, #7] + cmp r0, r5 + bne _08017844 +_08017834: + movs r0, #0 + b _08017850 + .align 2, 0 +_08017838: .4byte 0x0202418D +_0801783C: .4byte 0x082F0D54 +_08017840: .4byte 0x02024190 +_08017844: + adds r4, #1 + ldr r0, _08017858 + ldrb r0, [r0] + cmp r4, r0 + blt _08017810 +_0801784E: + movs r0, #1 +_08017850: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08017858: .4byte 0x0202418D + thumb_func_end sub_080177C4 + + thumb_func_start sub_0801785C +sub_0801785C: @ 0x0801785C + push {lr} + adds r3, r0, #0 + cmp r1, #0x44 + beq _08017898 + cmp r1, #0x44 + bgt _0801786E + cmp r1, #0x41 + beq _08017878 + b _080178B6 +_0801786E: + cmp r1, #0x45 + beq _08017888 + cmp r1, #0x48 + beq _080178A8 + b _080178B6 +_08017878: + ldr r0, _08017884 + lsls r1, r2, #2 + adds r1, r1, r0 + ldr r1, [r1] + b _0801789A + .align 2, 0 +_08017884: .4byte 0x082C1224 +_08017888: + ldr r0, _08017894 + lsls r1, r2, #2 + adds r1, r1, r0 + ldr r1, [r1] + b _0801789A + .align 2, 0 +_08017894: .4byte 0x082C13C4 +_08017898: + ldr r1, _080178A4 +_0801789A: + adds r0, r3, #0 + bl StringExpandPlaceholders + b _080178B6 + .align 2, 0 +_080178A4: .4byte 0x082C1998 +_080178A8: + ldr r0, _080178BC + lsls r1, r2, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r3, #0 + bl StringExpandPlaceholders +_080178B6: + pop {r0} + bx r0 + .align 2, 0 +_080178BC: .4byte 0x082C127C + thumb_func_end sub_0801785C + + thumb_func_start sub_080178C0 +sub_080178C0: @ 0x080178C0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + adds r6, r4, #0 + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r2, _080178F4 + movs r0, #1 + adds r1, r3, #0 + eors r1, r0 + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #0x13] + cmp r4, #0x44 + beq _08017914 + cmp r4, #0x44 + bgt _080178F8 + cmp r4, #0x41 + beq _080178FE + b _08017954 + .align 2, 0 +_080178F4: .4byte 0x020226A0 +_080178F8: + cmp r6, #0x45 + beq _08017938 + b _08017954 +_080178FE: + ldr r2, _08017910 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #3 + adds r1, r1, r0 + b _08017926 + .align 2, 0 +_08017910: .4byte 0x082C1188 +_08017914: + ldr r2, _08017934 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r2, #8 +_08017926: + adds r1, r1, r2 + ldr r1, [r1] + adds r0, r5, #0 + bl StringCopy + b _08017954 + .align 2, 0 +_08017934: .4byte 0x082C1188 +_08017938: + ldr r2, _0801795C + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r2, #4 + adds r1, r1, r2 + ldr r1, [r1] + adds r0, r5, #0 + bl StringCopy +_08017954: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0801795C: .4byte 0x082C1188 + thumb_func_end sub_080178C0 + + thumb_func_start sub_08017960 +sub_08017960: @ 0x08017960 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + adds r6, r2, #0 + adds r5, r3, #0 + movs r2, #0 + mov r8, r2 + ldrh r0, [r6] + subs r0, #0x40 + cmp r0, #8 + bls _0801797A + b _08017A82 +_0801797A: + lsls r0, r0, #2 + ldr r1, _08017984 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08017984: .4byte 0x08017988 +_08017988: @ jump table + .4byte _08017A78 @ case 0 + .4byte _080179AC @ case 1 + .4byte _08017A82 @ case 2 + .4byte _08017A82 @ case 3 + .4byte _080179E8 @ case 4 + .4byte _080179B4 @ case 5 + .4byte _08017A82 @ case 6 + .4byte _08017A82 @ case 7 + .4byte _08017A68 @ case 8 +_080179AC: + ldr r1, _080179B0 + b _08017A6A + .align 2, 0 +_080179B0: .4byte 0x082C0E1C +_080179B4: + ldr r1, _080179B8 + b _08017A6A + .align 2, 0 +_080179B8: .4byte 0x082C0E40 +_080179BC: + adds r0, r5, #0 + adds r0, #0x6c + ldrh r1, [r6, #4] + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + adds r0, r5, #0 + adds r0, #0x76 + ldrh r2, [r6, #2] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _080179E4 + adds r1, r1, r2 + bl StringCopy + ldrh r6, [r6, #2] + mov r8, r6 + b _08017A20 + .align 2, 0 +_080179E4: .4byte 0x082EA31C +_080179E8: + adds r0, r5, #0 + adds r0, #0x58 + ldr r4, _08017A34 + ldrh r1, [r4, #0xc] + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + adds r0, r5, #0 + adds r0, #0x62 + ldrh r2, [r4, #0xa] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + ldr r2, _08017A38 + adds r1, r1, r2 + bl StringCopy + movs r4, #0 + ldr r0, _08017A3C + ldr r1, [r0] +_08017A12: + ldrh r0, [r1, #0x18] + cmp r0, #2 + beq _080179BC + adds r1, #0x20 + adds r4, #1 + cmp r4, #3 + ble _08017A12 +_08017A20: + movs r0, #0xce + lsls r0, r0, #1 + cmp r8, r0 + bne _08017A44 + ldr r1, _08017A40 + adds r0, r7, #0 + bl StringCopy + b _08017A70 + .align 2, 0 +_08017A34: .4byte 0x020228F4 +_08017A38: .4byte 0x082EA31C +_08017A3C: .4byte 0x03007630 +_08017A40: .4byte 0x082C0EA8 +_08017A44: + movs r4, #0 + adds r5, #0x58 +_08017A48: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + adds r1, r5, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + adds r5, #0xa + adds r4, #1 + cmp r4, #3 + ble _08017A48 + ldr r1, _08017A64 + adds r0, r7, #0 + bl DynamicPlaceholderTextUtil_ExpandPlaceholders + b _08017A70 + .align 2, 0 +_08017A64: .4byte 0x082C0E68 +_08017A68: + ldr r1, _08017A74 +_08017A6A: + adds r0, r7, #0 + bl StringExpandPlaceholders +_08017A70: + movs r2, #1 + b _08017A82 + .align 2, 0 +_08017A74: .4byte 0x082C0DEC +_08017A78: + ldr r1, _08017A90 + adds r0, r7, #0 + bl StringExpandPlaceholders + movs r2, #2 +_08017A82: + adds r0, r2, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08017A90: .4byte 0x082C0ED4 + thumb_func_end sub_08017960 + + thumb_func_start sub_08017A94 +sub_08017A94: @ 0x08017A94 + push {lr} + adds r2, r0, #0 + ldr r0, _08017AB4 + ldrh r1, [r0, #2] + cmp r1, #0 + beq _08017AB8 + cmp r1, #0x51 + beq _08017AA8 + cmp r1, #0x52 + bne _08017AB8 +_08017AA8: + adds r0, r2, #0 + adds r0, #0x80 + strh r1, [r0] + movs r0, #1 + b _08017ABA + .align 2, 0 +_08017AB4: .4byte 0x03003130 +_08017AB8: + movs r0, #0 +_08017ABA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08017A94 + + thumb_func_start InUnionRoom +InUnionRoom: @ 0x08017AC0 + push {lr} + movs r2, #0 + ldr r0, _08017AD8 + ldr r0, [r0] + ldrh r1, [r0, #4] + ldr r0, _08017ADC + cmp r1, r0 + bne _08017AD2 + movs r2, #1 +_08017AD2: + adds r0, r2, #0 + pop {r1} + bx r1 + .align 2, 0 +_08017AD8: .4byte 0x03005AEC +_08017ADC: .4byte 0x00003C19 + thumb_func_end InUnionRoom + + thumb_func_start sub_08017AE0 +sub_08017AE0: @ 0x08017AE0 + push {r4, r5, r6, lr} + movs r6, #0 + movs r5, #0 + ldr r0, _08017B28 + ldrb r0, [r0] + cmp r6, r0 + bge _08017B20 +_08017AEE: + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _08017B2C + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0x38 + bl GetMonData + cmp r0, #0x1e + bhi _08017B16 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + movs r1, #0xce + lsls r1, r1, #1 + cmp r0, r1 + beq _08017B16 + adds r6, #1 +_08017B16: + adds r5, #1 + ldr r0, _08017B28 + ldrb r0, [r0] + cmp r5, r0 + blt _08017AEE +_08017B20: + cmp r6, #1 + bgt _08017B30 + movs r0, #0 + b _08017B32 + .align 2, 0 +_08017B28: .4byte 0x0202418D +_08017B2C: .4byte 0x02024190 +_08017B30: + movs r0, #1 +_08017B32: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_08017AE0 + + thumb_func_start sub_08017B38 +sub_08017B38: @ 0x08017B38 + movs r1, #0 + strh r1, [r0] + strh r1, [r0, #2] + str r1, [r0, #4] + strh r1, [r0, #0xa] + strh r1, [r0, #0xc] + strh r1, [r0, #0xe] + strh r1, [r0, #0x10] + str r1, [r0, #0x14] + bx lr + thumb_func_end sub_08017B38 + + thumb_func_start sub_08017B4C +sub_08017B4C: @ 0x08017B4C + push {lr} + ldr r0, _08017B58 + bl sub_08017B38 + pop {r0} + bx r0 + .align 2, 0 +_08017B58: .4byte 0x020228F4 + thumb_func_end sub_08017B4C + + thumb_func_start sub_08017B5C +sub_08017B5C: @ 0x08017B5C + push {r4, r5, lr} + adds r5, r1, #0 + movs r1, #0x64 + adds r4, r0, #0 + muls r4, r1, r4 + ldr r0, _08017B98 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + strh r0, [r5, #0xa] + adds r0, r4, #0 + movs r1, #0x38 + bl GetMonData + strh r0, [r5, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl GetMonData + str r0, [r5, #4] + ldrh r1, [r5, #0xa] + movs r0, #0xce + lsls r0, r0, #1 + cmp r1, r0 + beq _08017B9C + movs r0, #0 + b _08017B9E + .align 2, 0 +_08017B98: .4byte 0x02024190 +_08017B9C: + movs r0, #1 +_08017B9E: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_08017B5C + + thumb_func_start sub_08017BA4 +sub_08017BA4: @ 0x08017BA4 + push {r4, r5, lr} + adds r5, r1, #0 + movs r1, #0x64 + adds r4, r0, #0 + muls r4, r1, r4 + ldr r0, _08017BD8 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + strh r0, [r5, #0xe] + adds r0, r4, #0 + movs r1, #0x38 + bl GetMonData + strh r0, [r5, #0x10] + adds r0, r4, #0 + movs r1, #0 + bl GetMonData + str r0, [r5, #0x14] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08017BD8: .4byte 0x02024190 + thumb_func_end sub_08017BA4 + + thumb_func_start sub_08017BDC +sub_08017BDC: @ 0x08017BDC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r1, r1, #0x18 + movs r2, #0 + mov r8, r2 + cmp r1, #0 + bne _08017BFA + ldrh r7, [r0, #0xa] + ldr r6, [r0, #4] + b _08017BFE +_08017BF2: + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + b _08017C32 +_08017BFA: + ldrh r7, [r0, #0xe] + ldr r6, [r0, #0x14] +_08017BFE: + movs r5, #0 + b _08017C2A +_08017C02: + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _08017C40 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0 + bl GetMonData + cmp r0, r6 + bne _08017C28 + adds r0, r4, #0 + movs r1, #0x41 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r7 + beq _08017BF2 +_08017C28: + adds r5, #1 +_08017C2A: + ldr r0, _08017C44 + ldrb r0, [r0] + cmp r5, r0 + blt _08017C02 +_08017C32: + mov r0, r8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08017C40: .4byte 0x02024190 +_08017C44: .4byte 0x0202418D + thumb_func_end sub_08017BDC + + thumb_func_start sub_08017C48 +sub_08017C48: @ 0x08017C48 + push {r4, lr} + adds r4, r0, #0 + bl sub_08016E74 + bl ScriptContext2_Disable + bl sub_08097EAC + ldr r1, _08017C80 + movs r0, #0 + strb r0, [r1] + cmp r4, #0 + beq _08017C78 + ldr r2, _08017C84 + ldrh r0, [r2, #2] + ldrh r1, [r2, #0xa] + ldrh r2, [r2, #0xc] + bl sub_08010ABC + movs r0, #0x40 + movs r1, #0 + movs r2, #0 + bl sub_08010B80 +_08017C78: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08017C80: .4byte 0x020228E0 +_08017C84: .4byte 0x020228F4 + thumb_func_end sub_08017C48 + + thumb_func_start sub_08017C88 +sub_08017C88: @ 0x08017C88 + push {lr} + bl ScriptContext2_Enable + bl ScriptFreezeEventObjects + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08017C88 + + thumb_func_start sub_08017C98 +sub_08017C98: @ 0x08017C98 + push {r4, lr} + movs r3, #0x80 + movs r2, #0 + ldr r4, [r0, #0xc] +_08017CA0: + lsls r0, r2, #3 + subs r0, r0, r2 + lsls r0, r0, #2 + adds r1, r4, r0 + ldrb r0, [r1, #0x18] + lsls r0, r0, #0x1f + cmp r0, #0 + beq _08017CC8 + ldrb r0, [r1, #0xb] + lsls r0, r0, #0x1f + lsrs r0, r0, #0x1f + lsls r0, r0, #3 + orrs r3, r0 + ldrb r1, [r1, #2] + movs r0, #7 + ands r0, r1 + orrs r3, r0 + lsls r0, r3, #0x18 + lsrs r3, r0, #0x18 + b _08017CD2 +_08017CC8: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #3 + bls _08017CA0 +_08017CD2: + adds r0, r3, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08017C98 + + thumb_func_start sub_08017CDC +sub_08017CDC: @ 0x08017CDC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov sb, r1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp] + bl GetMultiplayerId + movs r1, #1 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x64 + muls r1, r0, r1 + ldr r0, _08017E68 + adds r1, r1, r0 + mov r8, r1 + bl DynamicPlaceholderTextUtil_Reset + mov r7, sb + adds r7, #0xa8 + bl sub_080686F0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xb + muls r1, r0, r1 + ldr r0, _08017E6C + adds r1, r1, r0 + adds r0, r7, #0 + bl StringCopy + movs r0, #0 + adds r1, r7, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + mov r1, r8 + adds r1, #0x30 + movs r0, #1 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + mov r6, sb + adds r6, #0xb7 + ldr r1, _08017E70 + mov r2, r8 + ldrb r0, [r2, #1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r6, #0 + bl StringCopy + movs r0, #2 + adds r1, r6, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + mov r5, sb + adds r5, #0xc6 + mov r0, r8 + ldrh r1, [r0, #0xc] + adds r0, r5, #0 + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + movs r0, #3 + adds r1, r5, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + movs r2, #0xd5 + add r2, sb + mov sl, r2 + mov r0, r8 + ldrh r1, [r0, #0x10] + mov r0, sl + movs r2, #0 + movs r3, #3 + bl ConvertIntToDecimalStringN + mov r4, sb + adds r4, #0xe4 + mov r2, r8 + ldrh r1, [r2, #0x12] + adds r0, r4, #0 + movs r2, #2 + movs r3, #2 + bl ConvertIntToDecimalStringN + movs r0, #4 + mov r1, sl + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + movs r0, #5 + adds r1, r4, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + movs r4, #0xae + lsls r4, r4, #1 + add r4, sb + ldr r1, _08017E74 + adds r0, r4, #0 + bl DynamicPlaceholderTextUtil_ExpandPlaceholders + ldr r0, _08017E78 + adds r1, r4, #0 + bl StringCopy + mov r0, r8 + ldrh r1, [r0, #0x14] + ldr r4, _08017E7C + cmp r1, r4 + ble _08017DC6 + adds r1, r4, #0 +_08017DC6: + adds r0, r7, #0 + movs r2, #0 + movs r3, #4 + bl ConvertIntToDecimalStringN + movs r0, #0 + adds r1, r7, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + mov r2, r8 + ldrh r1, [r2, #0x16] + cmp r1, r4 + ble _08017DE2 + adds r1, r4, #0 +_08017DE2: + adds r0, r6, #0 + movs r2, #0 + movs r3, #4 + bl ConvertIntToDecimalStringN + movs r0, #2 + adds r1, r6, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + mov r0, r8 + ldrh r1, [r0, #0x20] + adds r0, r5, #0 + movs r2, #0 + movs r3, #5 + bl ConvertIntToDecimalStringN + movs r0, #3 + adds r1, r5, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + movs r7, #0 + movs r6, #0x80 + lsls r6, r6, #0x13 + mov r5, r8 + adds r5, #0x28 + mov r4, sl +_08017E16: + ldrh r1, [r5] + adds r0, r4, #0 + bl CopyEasyChatWord + lsrs r0, r6, #0x18 + adds r1, r4, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + movs r2, #0x80 + lsls r2, r2, #0x11 + adds r6, r6, r2 + adds r5, #2 + adds r4, #0xf + adds r7, #1 + cmp r7, #3 + ble _08017E16 + movs r4, #0xae + lsls r4, r4, #1 + add r4, sb + ldr r1, _08017E80 + adds r0, r4, #0 + bl DynamicPlaceholderTextUtil_ExpandPlaceholders + ldr r5, _08017E78 + adds r0, r5, #0 + adds r1, r4, #0 + bl StringAppend + ldr r0, [sp] + cmp r0, #1 + bne _08017E88 + ldr r1, _08017E84 + adds r0, r4, #0 + bl DynamicPlaceholderTextUtil_ExpandPlaceholders + adds r0, r5, #0 + adds r1, r4, #0 + bl StringAppend + b _08017EA8 + .align 2, 0 +_08017E68: .4byte 0x020397F8 +_08017E6C: .4byte 0x082E3564 +_08017E70: .4byte 0x082C1F08 +_08017E74: .4byte 0x082C1F1C +_08017E78: .4byte 0x02021C7C +_08017E7C: .4byte 0x0000270F +_08017E80: .4byte 0x082C1F54 +_08017E84: .4byte 0x082C1FAC +_08017E88: + ldr r2, [sp] + cmp r2, #0 + bne _08017EA8 + ldr r0, _08017EB8 + mov r2, r8 + ldrb r1, [r2] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl DynamicPlaceholderTextUtil_ExpandPlaceholders + adds r0, r5, #0 + adds r1, r4, #0 + bl StringAppend +_08017EA8: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08017EB8: .4byte 0x082C1FA4 + thumb_func_end sub_08017CDC + diff --git a/asm/union_room_battle.s b/asm/union_room_battle.s new file mode 100644 index 0000000..088d7b6 --- /dev/null +++ b/asm/union_room_battle.s @@ -0,0 +1,2690 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_08019548 +sub_08019548: @ 0x08019548 + push {r4, lr} + sub sp, #4 + ldr r1, _08019584 + adds r0, r0, r1 + ldrb r0, [r0] + ldr r1, _08019588 + ldr r2, [r1] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080195A8 + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0801958C + adds r4, r0, r1 + adds r0, r4, #0 + bl MovementAction_AcroEndWheelieFaceLeft_Step0 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08019590 + movs r0, #0 + b _080195AA + .align 2, 0 +_08019584: .4byte 0x082C2BC4 +_08019588: .4byte 0x03005AEC +_0801958C: .4byte 0x02036FF0 +_08019590: + bl ScriptContext2_IsEnabled + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080195A2 + adds r0, r4, #0 + bl UnfreezeEventObject + b _080195A8 +_080195A2: + adds r0, r4, #0 + bl FreezeEventObject +_080195A8: + movs r0, #1 +_080195AA: + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08019548 + + thumb_func_start sub_080195B4 +sub_080195B4: @ 0x080195B4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080195F8 + movs r1, #0 + str r1, [r0] + ldr r0, _080195FC + str r4, [r0] + cmp r4, #0 + bne _080195D2 + ldr r0, _08019600 + ldr r1, _08019604 + ldr r2, _08019608 + movs r3, #1 + bl AGBAssert +_080195D2: + movs r1, #0 + adds r0, r4, #0 + movs r2, #7 +_080195D8: + strb r1, [r0] + strb r1, [r0, #1] + strb r1, [r0, #2] + strb r1, [r0, #3] + adds r0, #4 + subs r2, #1 + cmp r2, #0 + bge _080195D8 + bl sub_08019878 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080195F8: .4byte 0x0202291C +_080195FC: .4byte 0x02022918 +_08019600: .4byte 0x082C2BDC +_08019604: .4byte 0x000001B9 +_08019608: .4byte 0x082C2BF4 + thumb_func_end sub_080195B4 + + thumb_func_start sub_0801960C +sub_0801960C: @ 0x0801960C + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #0 + beq _08019620 + cmp r0, #1 + beq _08019640 + b _0801965E +_08019620: + ldr r1, _0801963C + adds r0, r4, #0 + bl SetUnionRoomPlayerEnterExitMovement + cmp r0, #1 + bne _0801965E + adds r0, r4, #0 + bl HideUnionRoomPlayer + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + b _0801965E + .align 2, 0 +_0801963C: .4byte 0x082C2C09 +_08019640: + adds r0, r4, #0 + bl sub_08019548 + cmp r0, #0 + beq _0801965E + adds r0, r4, #0 + bl RemoveUnionRoomPlayerEventObject + adds r0, r4, #0 + bl HideUnionRoomPlayer + movs r0, #0 + strb r0, [r5] + movs r0, #1 + b _08019660 +_0801965E: + movs r0, #0 +_08019660: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0801960C + + thumb_func_start sub_08019668 +sub_08019668: @ 0x08019668 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r6, r0, #0 + adds r5, r1, #0 + adds r7, r2, #0 + movs r0, #0 + ldrsb r0, [r6, r0] + cmp r0, #2 + beq _08019704 + cmp r0, #2 + bgt _08019684 + cmp r0, #0 + beq _0801968A + b _08019716 +_08019684: + cmp r0, #3 + beq _080196EC + b _08019716 +_0801968A: + bl is_walking_or_running + cmp r0, #0 + beq _08019716 + mov r4, sp + adds r4, #2 + mov r0, sp + adds r1, r4, #0 + bl PlayerGetDestCoords + mov r0, sp + movs r1, #0 + ldrsh r2, [r0, r1] + movs r0, #0 + ldrsh r3, [r4, r0] + adds r0, r5, #0 + movs r1, #0 + bl sub_080193D8 + cmp r0, #1 + beq _08019716 + mov r0, sp + adds r1, r4, #0 + bl player_get_pos_including_state_based_drift + mov r0, sp + movs r1, #0 + ldrsh r2, [r0, r1] + movs r0, #0 + ldrsh r3, [r4, r0] + adds r0, r5, #0 + movs r1, #0 + bl sub_080193D8 + cmp r0, #1 + beq _08019716 + ldrb r1, [r7, #1] + adds r0, r5, #0 + bl SetUnionRoomPlayerGfx + adds r0, r5, #0 + bl CreateUnionRoomPlayerEventObject + adds r0, r5, #0 + bl ShowUnionRoomPlayer + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] +_080196EC: + ldr r1, _08019700 + adds r0, r5, #0 + bl SetUnionRoomPlayerEnterExitMovement + cmp r0, #1 + bne _08019716 + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] + b _08019716 + .align 2, 0 +_08019700: .4byte 0x082C2C0B +_08019704: + adds r0, r5, #0 + bl sub_08019548 + cmp r0, #0 + beq _08019716 + movs r0, #0 + strb r0, [r6] + movs r0, #1 + b _08019718 +_08019716: + movs r0, #0 +_08019718: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_08019668 + + thumb_func_start sub_08019720 +sub_08019720: @ 0x08019720 + push {r4, r5, r6, lr} + adds r5, r1, #0 + adds r6, r2, #0 + ldr r1, _08019758 + lsls r0, r0, #2 + ldr r1, [r1] + adds r4, r1, r0 + cmp r1, #0 + bne _08019740 + ldr r0, _0801975C + movs r1, #0x8c + lsls r1, r1, #2 + ldr r2, _08019760 + movs r3, #1 + bl AGBAssert +_08019740: + movs r0, #1 + strb r0, [r4, #3] + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_08019370 + strb r0, [r4, #1] + ldrb r0, [r4] + cmp r0, #0 + beq _08019764 + movs r0, #0 + b _08019766 + .align 2, 0 +_08019758: .4byte 0x02022918 +_0801975C: .4byte 0x082C2BDC +_08019760: .4byte 0x082C2BF4 +_08019764: + movs r0, #1 +_08019766: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_08019720 + + thumb_func_start sub_0801976C +sub_0801976C: @ 0x0801976C + push {r4, lr} + ldr r1, _08019798 + lsls r0, r0, #2 + ldr r1, [r1] + adds r4, r1, r0 + cmp r1, #0 + bne _08019788 + ldr r0, _0801979C + movs r1, #0x90 + lsls r1, r1, #2 + ldr r2, _080197A0 + movs r3, #1 + bl AGBAssert +_08019788: + movs r0, #2 + strb r0, [r4, #3] + ldrb r0, [r4] + cmp r0, #1 + beq _080197A4 + movs r0, #0 + b _080197A6 + .align 2, 0 +_08019798: .4byte 0x02022918 +_0801979C: .4byte 0x082C2BDC +_080197A0: .4byte 0x082C2BF4 +_080197A4: + movs r0, #1 +_080197A6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0801976C + + thumb_func_start sub_080197AC +sub_080197AC: @ 0x080197AC + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + ldrb r1, [r4] + cmp r1, #1 + beq _0801980E + cmp r1, #1 + bgt _080197C2 + cmp r1, #0 + beq _080197CC + b _0801982E +_080197C2: + cmp r1, #2 + beq _080197D8 + cmp r1, #3 + beq _0801981C + b _0801982E +_080197CC: + ldrb r0, [r4, #3] + cmp r0, #1 + bne _0801982E + movs r0, #2 + strb r0, [r4] + strb r1, [r4, #2] +_080197D8: + adds r0, r5, #0 + movs r1, #0 + bl sub_08019A28 + adds r1, r0, #0 + cmp r1, #0 + bne _080197FE + ldrb r0, [r4, #3] + cmp r0, #2 + bne _080197FE + strb r1, [r4] + strb r1, [r4, #2] + adds r0, r5, #0 + bl RemoveUnionRoomPlayerEventObject + adds r0, r5, #0 + bl HideUnionRoomPlayer + b _0801982E +_080197FE: + adds r0, r4, #2 + adds r1, r5, #0 + adds r2, r4, #0 + bl sub_08019668 + cmp r0, #1 + bne _0801982E + b _0801982C +_0801980E: + ldrb r0, [r4, #3] + cmp r0, #2 + bne _0801982E + movs r1, #0 + movs r0, #3 + strb r0, [r4] + strb r1, [r4, #2] +_0801981C: + adds r0, r4, #2 + adds r1, r5, #0 + adds r2, r4, #0 + bl sub_0801960C + cmp r0, #1 + bne _0801982E + movs r0, #0 +_0801982C: + strb r0, [r4] +_0801982E: + movs r0, #0 + strb r0, [r4, #3] + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_080197AC + + thumb_func_start sub_08019838 +sub_08019838: @ 0x08019838 + push {r4, r5, lr} + ldr r5, _08019868 + ldr r0, [r5] + cmp r0, #0 + bne _0801984E + ldr r0, _0801986C + ldr r1, _08019870 + ldr r2, _08019874 + movs r3, #1 + bl AGBAssert +_0801984E: + movs r4, #0 +_08019850: + lsls r0, r4, #2 + ldr r1, [r5] + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_080197AC + adds r4, #1 + cmp r4, #7 + ble _08019850 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08019868: .4byte 0x02022918 +_0801986C: .4byte 0x082C2BDC +_08019870: .4byte 0x00000282 +_08019874: .4byte 0x082C2BF4 + thumb_func_end sub_08019838 + + thumb_func_start sub_08019878 +sub_08019878: @ 0x08019878 + push {r4, lr} + ldr r4, _08019898 + adds r0, r4, #0 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0801989C + adds r0, r4, #0 + movs r1, #5 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _080198AA + .align 2, 0 +_08019898: .4byte 0x08019839 +_0801989C: + ldr r0, _080198B0 + ldr r1, _080198B4 + ldr r2, _080198B8 + movs r3, #1 + bl AGBAssert + movs r0, #0x10 +_080198AA: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080198B0: .4byte 0x082C2BDC +_080198B4: .4byte 0x0000028E +_080198B8: .4byte 0x082C2BF0 + thumb_func_end sub_08019878 + + thumb_func_start sub_080198BC +sub_080198BC: @ 0x080198BC + push {lr} + ldr r0, _080198D4 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xf + bhi _080198D0 + bl DestroyTask +_080198D0: + pop {r0} + bx r0 + .align 2, 0 +_080198D4: .4byte 0x08019839 + thumb_func_end sub_080198BC + + thumb_func_start sub_080198D8 +sub_080198D8: @ 0x080198D8 + push {r4, lr} + movs r4, #0 +_080198DC: + adds r0, r4, #0 + bl IsUnionRoomPlayerHidden + cmp r0, #0 + bne _080198F2 + adds r0, r4, #0 + bl RemoveUnionRoomPlayerEventObject + adds r0, r4, #0 + bl HideUnionRoomPlayer +_080198F2: + adds r4, #1 + cmp r4, #7 + ble _080198DC + ldr r1, _08019908 + movs r0, #0 + str r0, [r1] + bl sub_080198BC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08019908: .4byte 0x02022918 + thumb_func_end sub_080198D8 + + thumb_func_start sub_0801990C +sub_0801990C: @ 0x0801990C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + str r0, [sp, #8] + mov sb, r1 + movs r7, #0 + mov r0, sb + lsls r0, r0, #2 + mov r8, r0 + ldr r0, _08019998 + mov r2, r8 + adds r1, r2, r0 + ldrh r1, [r1] + mov r2, sp + strh r1, [r2, #0xc] + adds r0, #2 + add r0, r8 + ldrh r0, [r0] + mov sl, r0 + ldr r6, _0801999C +_0801993A: + mov r5, r8 + add r5, sb + adds r5, r5, r7 + adds r4, r5, #0 + subs r4, #0x38 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r2, #0 + ldrsb r2, [r6, r2] + mov r0, sp + ldrh r0, [r0, #0xc] + adds r2, r0, r2 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r6, r3] + add r3, sl + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + movs r0, #3 + str r0, [sp] + movs r0, #1 + str r0, [sp, #4] + movs r0, #0x41 + adds r1, r4, #0 + bl sprite_new + ldr r1, [sp, #8] + adds r5, r1, r5 + strb r0, [r5] + adds r0, r4, #0 + movs r1, #1 + bl sub_080975B4 + adds r6, #2 + adds r7, #1 + cmp r7, #4 + ble _0801993A + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08019998: .4byte 0x082C2B90 +_0801999C: .4byte 0x082C2BB0 + thumb_func_end sub_0801990C + + thumb_func_start sub_080199A0 +sub_080199A0: @ 0x080199A0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r4, #0 + ldr r6, _080199C4 +_080199A8: + adds r0, r5, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + bl DestroySprite + adds r4, #1 + cmp r4, #0x27 + ble _080199A8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080199C4: .4byte 0x020205AC + thumb_func_end sub_080199A0 + + thumb_func_start sub_080199C8 +sub_080199C8: @ 0x080199C8 + push {r4, r5, r6, r7, lr} + sub sp, #8 + movs r5, #0 + add r7, sp, #4 +_080199D0: + movs r4, #0 + adds r6, r5, #1 +_080199D4: + adds r0, r5, #0 + adds r1, r4, #0 + mov r2, sp + adds r3, r7, #0 + bl sub_08019388 + ldr r0, [sp] + ldr r1, [sp, #4] + movs r2, #0 + bl sub_080884F8 + adds r4, #1 + cmp r4, #4 + ble _080199D4 + adds r5, r6, #0 + cmp r5, #7 + ble _080199D0 + add sp, #8 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080199C8 + + thumb_func_start sub_08019A00 +sub_08019A00: @ 0x08019A00 + push {lr} + adds r1, r0, #0 + cmp r1, #0 + beq _08019A14 + ldr r0, _08019A10 + adds r0, r1, r0 + ldrb r0, [r0] + b _08019A24 + .align 2, 0 +_08019A10: .4byte 0x082C2BBF +_08019A14: + ldrb r1, [r2, #0xa] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x45 + beq _08019A22 + movs r0, #4 + b _08019A24 +_08019A22: + movs r0, #1 +_08019A24: + pop {r1} + bx r1 + thumb_func_end sub_08019A00 + + thumb_func_start sub_08019A28 +sub_08019A28: @ 0x08019A28 + push {lr} + adds r2, r0, #0 + lsls r0, r2, #2 + adds r0, r0, r2 + adds r0, r0, r1 + subs r0, #0x38 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_080975FC + pop {r1} + bx r1 + thumb_func_end sub_08019A28 + + thumb_func_start sub_08019A40 +sub_08019A40: @ 0x08019A40 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #8 + adds r5, r0, #0 + adds r6, r1, #0 + mov sb, r3 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + lsls r0, r5, #2 + adds r0, r0, r5 + adds r7, r0, r6 + adds r0, r5, #0 + bl sub_08019A28 + cmp r0, #1 + bne _08019A7E + adds r4, r7, #0 + subs r4, #0x38 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + movs r1, #0 + bl sub_080975B4 + adds r0, r4, #0 + movs r1, #1 + bl sub_08097634 +_08019A7E: + adds r0, r7, #0 + subs r0, #0x38 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, r8 + bl sub_08097524 + adds r0, r6, #0 + adds r1, r5, #0 + mov r2, sb + bl sub_08019A00 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_08019E68 + add r3, sp, #4 + adds r0, r5, #0 + adds r1, r6, #0 + mov r2, sp + bl sub_08019388 + ldr r0, [sp] + ldr r1, [sp, #4] + movs r2, #1 + bl sub_080884F8 + add sp, #8 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08019A40 + + thumb_func_start sub_08019AC8 +sub_08019AC8: @ 0x08019AC8 + push {r4, r5, lr} + sub sp, #8 + adds r4, r0, #0 + adds r5, r1, #0 + lsls r0, r4, #2 + adds r0, r0, r4 + adds r0, r0, r5 + subs r0, #0x38 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl sub_08097634 + add r3, sp, #4 + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sp + bl sub_08019388 + ldr r0, [sp] + ldr r1, [sp, #4] + movs r2, #0 + bl sub_080884F8 + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_08019AC8 + + thumb_func_start sub_08019B00 +sub_08019B00: @ 0x08019B00 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r7, r0, #0 + mov r8, r1 + mov r6, sp + adds r6, #2 + mov r0, sp + adds r1, r6, #0 + bl PlayerGetDestCoords + add r4, sp, #4 + mov r5, sp + adds r5, #6 + adds r0, r4, #0 + adds r1, r5, #0 + bl player_get_pos_including_state_based_drift + lsls r0, r7, #2 + adds r0, r0, r7 + subs r0, #0x38 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_080975FC + mov sl, r6 + mov sb, r4 + adds r6, r5, #0 + cmp r0, #1 + bne _08019B8C + mov r0, sp + movs r1, #0 + ldrsh r2, [r0, r1] + mov r0, sl + movs r1, #0 + ldrsh r3, [r0, r1] + adds r0, r7, #0 + movs r1, #0 + bl sub_080193D8 + cmp r0, #1 + beq _08019BF8 + movs r0, #0 + ldrsh r2, [r4, r0] + movs r1, #0 + ldrsh r3, [r6, r1] + adds r0, r7, #0 + movs r1, #0 + bl sub_080193D8 + cmp r0, #1 + beq _08019BF8 + mov r2, r8 + ldrb r0, [r2, #0xb] + lsls r0, r0, #0x1f + lsrs r0, r0, #0x1f + ldrb r1, [r2, #2] + bl sub_08019370 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r7, #0 + movs r1, #0 + mov r3, r8 + bl sub_08019A40 +_08019B8C: + movs r5, #1 + mov r4, r8 + adds r4, #4 +_08019B92: + ldrb r0, [r4] + cmp r0, #0 + bne _08019BA2 + adds r0, r7, #0 + adds r1, r5, #0 + bl sub_08019AC8 + b _08019BF0 +_08019BA2: + mov r0, sp + movs r1, #0 + ldrsh r2, [r0, r1] + mov r0, sl + movs r1, #0 + ldrsh r3, [r0, r1] + adds r0, r7, #0 + adds r1, r5, #0 + bl sub_080193D8 + cmp r0, #0 + bne _08019BF0 + mov r0, sb + movs r1, #0 + ldrsh r2, [r0, r1] + movs r0, #0 + ldrsh r3, [r6, r0] + adds r0, r7, #0 + adds r1, r5, #0 + bl sub_080193D8 + cmp r0, #0 + bne _08019BF0 + ldrb r2, [r4] + lsrs r0, r2, #3 + movs r1, #1 + ands r0, r1 + movs r1, #7 + ands r1, r2 + bl sub_08019370 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r7, #0 + adds r1, r5, #0 + mov r3, r8 + bl sub_08019A40 +_08019BF0: + adds r4, #1 + adds r5, #1 + cmp r5, #4 + ble _08019B92 +_08019BF8: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08019B00 + + thumb_func_start sub_08019C08 +sub_08019C08: @ 0x08019C08 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + ldrb r0, [r4, #0xa] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x19 + subs r0, #0x40 + cmp r0, #0x14 + bhi _08019CAC + lsls r0, r0, #2 + ldr r1, _08019C24 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08019C24: .4byte 0x08019C28 +_08019C28: @ jump table + .4byte _08019C7C @ case 0 + .4byte _08019C9C @ case 1 + .4byte _08019CAC @ case 2 + .4byte _08019CAC @ case 3 + .4byte _08019C9C @ case 4 + .4byte _08019C9C @ case 5 + .4byte _08019CAC @ case 6 + .4byte _08019CAC @ case 7 + .4byte _08019C9C @ case 8 + .4byte _08019CAC @ case 9 + .4byte _08019CAC @ case 10 + .4byte _08019CAC @ case 11 + .4byte _08019CAC @ case 12 + .4byte _08019CAC @ case 13 + .4byte _08019CAC @ case 14 + .4byte _08019CAC @ case 15 + .4byte _08019CAC @ case 16 + .4byte _08019C9C @ case 17 + .4byte _08019C9C @ case 18 + .4byte _08019C9C @ case 19 + .4byte _08019C7C @ case 20 +_08019C7C: + ldrb r1, [r4, #0xb] + lsls r1, r1, #0x1f + lsrs r1, r1, #0x1f + ldrb r2, [r4, #2] + adds r0, r5, #0 + bl sub_08019720 + movs r4, #0 +_08019C8C: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08019AC8 + adds r4, #1 + cmp r4, #4 + bls _08019C8C + b _08019CB8 +_08019C9C: + adds r0, r5, #0 + bl sub_0801976C + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08019B00 + b _08019CB8 +_08019CAC: + ldr r0, _08019CC0 + ldr r1, _08019CC4 + ldr r2, _08019CC8 + movs r3, #1 + bl AGBAssert +_08019CB8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08019CC0: .4byte 0x082C2BDC +_08019CC4: .4byte 0x000003D3 +_08019CC8: .4byte 0x082C2BF0 + thumb_func_end sub_08019C08 + + thumb_func_start sub_08019CCC +sub_08019CCC: @ 0x08019CCC + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_0801976C + movs r4, #0 +_08019CD6: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08019AC8 + adds r4, #1 + cmp r4, #4 + ble _08019CD6 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08019CCC + + thumb_func_start sub_08019CEC +sub_08019CEC: @ 0x08019CEC + push {r4, r5, lr} + ldr r2, _08019D0C + movs r1, #0 + str r1, [r2] + movs r5, #0 + ldr r4, [r0] +_08019CF8: + ldrb r0, [r4, #0x1a] + movs r1, #3 + ands r1, r0 + cmp r1, #1 + bne _08019D10 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08019C08 + b _08019D1C + .align 2, 0 +_08019D0C: .4byte 0x0202291C +_08019D10: + cmp r1, #2 + bne _08019D1C + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08019CCC +_08019D1C: + adds r4, #0x20 + adds r5, #1 + cmp r5, #7 + ble _08019CF8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08019CEC + + thumb_func_start sub_08019D2C +sub_08019D2C: @ 0x08019D2C + ldr r1, _08019D38 + movs r0, #0x96 + lsls r0, r0, #1 + str r0, [r1] + bx lr + .align 2, 0 +_08019D38: .4byte 0x0202291C + thumb_func_end sub_08019D2C + + thumb_func_start sub_08019D3C +sub_08019D3C: @ 0x08019D3C + push {lr} + adds r2, r0, #0 + ldr r0, _08019D5C + ldr r1, [r0] + adds r1, #1 + str r1, [r0] + movs r0, #0x96 + lsls r0, r0, #1 + cmp r1, r0 + bls _08019D56 + adds r0, r2, #0 + bl sub_08019CEC +_08019D56: + pop {r0} + bx r0 + .align 2, 0 +_08019D5C: .4byte 0x0202291C + thumb_func_end sub_08019D3C + + thumb_func_start sub_08019D60 +sub_08019D60: @ 0x08019D60 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + adds r5, r0, #0 + str r1, [sp, #4] + str r2, [sp, #8] + bl is_walking_or_running + cmp r0, #0 + bne _08019DA8 + b _08019E4E +_08019D7C: + ldr r4, _08019DA4 + bl GetPlayerFacingDirection + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r4 + ldrb r2, [r0] + adds r0, r6, #0 + ldr r1, [sp, #0xc] + bl sub_08019E68 + ldr r0, [sp, #4] + strh r6, [r0] + mov r1, sp + ldrh r2, [r1, #0xc] + ldr r1, [sp, #8] + strh r2, [r1] + movs r0, #1 + b _08019E50 + .align 2, 0 +_08019DA4: .4byte 0x082C2BBA +_08019DA8: + mov r4, sp + adds r4, #2 + mov r0, sp + adds r1, r4, #0 + bl GetXYCoordsOneStepInFrontOfPlayer + movs r0, #0 + str r0, [sp, #0xc] + ldr r0, _08019E60 + adds r7, r5, #0 + movs r1, #0 + mov sl, r1 + adds r2, r0, #2 + str r2, [sp, #0x10] + str r0, [sp, #0x14] +_08019DC6: + movs r6, #0 + ldr r4, [sp, #0x14] + movs r0, #0 + ldrsh r4, [r4, r0] + mov sb, r4 + ldr r1, [sp, #0x10] + mov r8, r1 + ldr r5, _08019E64 +_08019DD6: + mov r2, sl + adds r3, r2, r6 + mov r0, sp + movs r4, #0 + ldrsh r1, [r0, r4] + movs r0, #0 + ldrsb r0, [r5, r0] + add r0, sb + adds r0, #7 + cmp r1, r0 + bne _08019E2A + mov r1, sp + movs r2, #2 + ldrsh r0, [r1, r2] + mov r4, r8 + movs r2, #0 + ldrsh r1, [r4, r2] + movs r2, #1 + ldrsb r2, [r5, r2] + adds r1, r1, r2 + adds r1, #7 + cmp r0, r1 + bne _08019E2A + adds r0, r3, #0 + subs r0, #0x38 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl sub_080975FC + cmp r0, #0 + bne _08019E2A + adds r0, r4, #0 + bl sub_08097724 + cmp r0, #0 + bne _08019E2A + ldrb r1, [r7, #0x1a] + movs r0, #3 + ands r0, r1 + cmp r0, #1 + beq _08019D7C +_08019E2A: + adds r5, #2 + adds r6, #1 + cmp r6, #4 + ble _08019DD6 + adds r7, #0x20 + movs r4, #5 + add sl, r4 + ldr r0, [sp, #0x10] + adds r0, #4 + str r0, [sp, #0x10] + ldr r1, [sp, #0x14] + adds r1, #4 + str r1, [sp, #0x14] + ldr r2, [sp, #0xc] + adds r2, #1 + str r2, [sp, #0xc] + cmp r2, #7 + ble _08019DC6 +_08019E4E: + movs r0, #0 +_08019E50: + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08019E60: .4byte 0x082C2B90 +_08019E64: .4byte 0x082C2BB0 + thumb_func_end sub_08019D60 + + thumb_func_start sub_08019E68 +sub_08019E68: @ 0x08019E68 + push {r4, lr} + adds r4, r0, #0 + adds r3, r1, #0 + lsls r1, r2, #0x18 + lsrs r1, r1, #0x18 + lsls r0, r3, #2 + adds r0, r0, r3 + subs r0, #0x38 + adds r0, r0, r4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_080974E8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08019E68 + + thumb_func_start sub_08019E88 +sub_08019E88: @ 0x08019E88 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + lsls r3, r4, #5 + adds r3, r3, r2 + adds r2, r3, #0 + bl sub_08019A00 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08019E68 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_08019E88 + + thumb_func_start sub_08019EAC +sub_08019EAC: @ 0x08019EAC + push {lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08019ECC + bl RunTasks + bl RunTextPrinters + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade +_08019ECC: + pop {r0} + bx r0 + thumb_func_end sub_08019EAC + + thumb_func_start sub_08019ED0 +sub_08019ED0: @ 0x08019ED0 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08019ED0 + + thumb_func_start sub_08019EE4 +sub_08019EE4: @ 0x08019EE4 + push {lr} + ldr r0, _08019EF0 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_08019EF0: .4byte 0x08019EF5 + thumb_func_end sub_08019EE4 + + thumb_func_start sub_08019EF4 +sub_08019EF4: @ 0x08019EF4 + push {r4, r5, lr} + sub sp, #0xc + movs r0, #0 + movs r1, #0 + bl SetGpuReg + ldr r5, _0801A018 + movs r0, #0x6c + bl AllocZeroed + str r0, [r5] + movs r0, #0 + bl SetVBlankCallback + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _0801A01C + movs r0, #0 + movs r2, #2 + bl InitBgsFromTemplates + movs r4, #0x80 + lsls r4, r4, #4 + adds r0, r4, #0 + bl Alloc + adds r1, r0, #0 + movs r0, #1 + bl SetBgTilemapBuffer + adds r0, r4, #0 + bl Alloc + adds r1, r0, #0 + movs r0, #0 + bl SetBgTilemapBuffer + ldr r1, _0801A020 + movs r0, #0 + str r0, [sp] + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl DecompressAndLoadBgGfxUsingHeap + ldr r1, _0801A024 + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + ldr r0, _0801A028 + bl InitWindows + bl DeactivateAllTextPrinters + bl ResetPaletteFade + bl ResetSpriteData + bl ResetTasks + bl ScanlineEffect_Stop + bl m4aSoundVSyncOn + ldr r0, _0801A02C + bl SetVBlankCallback + ldr r0, _0801A030 + movs r1, #0 + bl CreateTask + ldr r1, [r5] + adds r1, #0x60 + strb r0, [r1] + bl sub_08013748 + ldr r1, [r5] + adds r1, #0x61 + strb r0, [r1] + ldr r1, [r5] + movs r0, #1 + str r0, [r1, #0x1c] + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + ldr r0, _0801A034 + movs r1, #0 + movs r2, #0x20 + bl LoadPalette + movs r0, #0xf0 + bl Menu_LoadStdPalAt + bl DynamicPlaceholderTextUtil_Reset + movs r0, #0x20 + str r0, [sp] + str r0, [sp, #4] + movs r0, #0xf + str r0, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect + movs r0, #1 + bl CopyBgTilemapBufferToVram + ldr r0, _0801A038 + bl SetMainCallback2 + bl RunTasks + bl RunTextPrinters + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0801A018: .4byte 0x03000DAC +_0801A01C: .4byte 0x082C31B4 +_0801A020: .4byte 0x082C2E10 +_0801A024: .4byte 0x082C3020 +_0801A028: .4byte 0x082C31BC +_0801A02C: .4byte 0x08019ED1 +_0801A030: .4byte 0x0801A169 +_0801A034: .4byte 0x082C2C10 +_0801A038: .4byte 0x08019EAD + thumb_func_end sub_08019EF4 + + thumb_func_start sub_0801A03C +sub_0801A03C: @ 0x0801A03C + push {r4, lr} + bl FreeAllWindowBuffers + movs r4, #0 +_0801A044: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + bl GetBgTilemapBuffer + bl Free + adds r4, #1 + cmp r4, #1 + ble _0801A044 + ldr r0, _0801A06C + ldr r0, [r0] + bl Free + ldr r0, _0801A070 + bl SetMainCallback2 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801A06C: .4byte 0x03000DAC +_0801A070: .4byte 0x08085B35 + thumb_func_end sub_0801A03C + + thumb_func_start sub_0801A074 +sub_0801A074: @ 0x0801A074 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #5 + ble _0801A09C + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xe + bne _0801A098 + movs r0, #0 + strh r0, [r1] +_0801A098: + movs r0, #0 + strh r0, [r2] +_0801A09C: + movs r2, #0 + ldrsh r0, [r1, r2] + adds r0, #2 + lsls r0, r0, #5 + ldr r1, _0801A0B4 + adds r0, r0, r1 + movs r1, #0 + movs r2, #0x10 + bl LoadPalette + pop {r0} + bx r0 + .align 2, 0 +_0801A0B4: .4byte 0x082C2C10 + thumb_func_end sub_0801A074 + + thumb_func_start sub_0801A0B8 +sub_0801A0B8: @ 0x0801A0B8 + push {r4, r5, lr} + sub sp, #8 + movs r0, #0 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #1 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #2 + movs r1, #0 + bl FillWindowPixelBuffer + ldr r4, _0801A164 + ldr r2, [r4] + movs r0, #6 + str r0, [sp] + movs r0, #3 + str r0, [sp, #4] + movs r0, #0 + movs r1, #1 + movs r3, #2 + bl sub_0801A384 + movs r1, #0 + adds r5, r4, #0 +_0801A0EE: + adds r4, r1, #1 + lsls r0, r4, #2 + adds r0, r0, r5 + ldr r2, [r0] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #0x19 + movs r1, #0xa0 + lsls r1, r1, #0x14 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + str r0, [sp] + movs r0, #1 + str r0, [sp, #4] + movs r1, #1 + movs r3, #0 + bl sub_0801A384 + adds r1, r4, #0 + cmp r4, #2 + ble _0801A0EE + ldr r1, _0801A164 + adds r0, r4, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r2, [r0] + lsls r0, r4, #4 + subs r0, r0, r4 + lsls r0, r0, #0x19 + movs r1, #0xa0 + lsls r1, r1, #0x14 + adds r0, r0, r1 + lsrs r0, r0, #0x18 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r0, #1 + movs r1, #1 + movs r3, #0 + bl sub_0801A384 + movs r0, #0 + bl PutWindowTilemap + movs r0, #0 + movs r1, #2 + bl CopyWindowToVram + movs r0, #1 + bl PutWindowTilemap + movs r0, #1 + movs r1, #2 + bl CopyWindowToVram + add sp, #8 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0801A164: .4byte 0x082C3238 + thumb_func_end sub_0801A0B8 + + thumb_func_start sub_0801A168 +sub_0801A168: @ 0x0801A168 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _0801A198 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r2, #8 + ldrsh r0, [r0, r2] + adds r2, r1, #0 + cmp r0, #5 + bls _0801A18C + b _0801A36C +_0801A18C: + lsls r0, r0, #2 + ldr r1, _0801A19C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801A198: .4byte 0x03005B60 +_0801A19C: .4byte 0x0801A1A0 +_0801A1A0: @ jump table + .4byte _0801A1B8 @ case 0 + .4byte _0801A1D4 @ case 1 + .4byte _0801A1F8 @ case 2 + .4byte _0801A214 @ case 3 + .4byte _0801A32C @ case 4 + .4byte _0801A354 @ case 5 +_0801A1B8: + bl sub_0801A0B8 + ldr r0, _0801A1D0 + lsls r1, r5, #2 + adds r1, r1, r5 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + b _0801A36C + .align 2, 0 +_0801A1D0: .4byte 0x03005B60 +_0801A1D4: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + movs r0, #1 + bl ShowBg + movs r0, #0 + bl CopyBgTilemapBufferToVram + movs r0, #0 + bl ShowBg + b _0801A33C +_0801A1F8: + ldr r0, _0801A210 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0801A206 + b _0801A36C +_0801A206: + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r2 + b _0801A346 + .align 2, 0 +_0801A210: .4byte 0x02037C74 +_0801A214: + ldr r0, _0801A28C + ldr r0, [r0] + adds r1, r0, #0 + adds r1, #0x10 + adds r2, r0, #0 + adds r2, #0x20 + adds r3, r0, #0 + adds r3, #0x61 + ldrb r3, [r3] + bl sub_0801A504 + lsls r1, r5, #2 + mov sb, r1 + cmp r0, #0 + beq _0801A2C6 + movs r0, #2 + movs r1, #0 + bl FillWindowPixelBuffer + movs r4, #0 + ldr r7, _0801A290 + movs r2, #0xa0 + lsls r2, r2, #0x14 + mov r8, r2 + movs r6, #0 +_0801A246: + ldr r0, _0801A28C + ldr r0, [r0] + lsls r1, r4, #2 + adds r0, r0, r1 + ldr r1, [r0] + add r0, sp, #8 + movs r2, #1 + movs r3, #2 + bl ConvertIntToDecimalStringN + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + add r1, sp, #8 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + ldr r1, _0801A294 + adds r1, r6, r1 + adds r0, r7, #0 + bl DynamicPlaceholderTextUtil_ExpandPlaceholders + cmp r4, #3 + beq _0801A298 + mov r1, r8 + lsrs r0, r1, #0x18 + str r0, [sp] + movs r0, #1 + str r0, [sp, #4] + movs r0, #2 + movs r1, #1 + adds r2, r7, #0 + movs r3, #0 + bl sub_0801A384 + b _0801A2AA + .align 2, 0 +_0801A28C: .4byte 0x03000DAC +_0801A290: .4byte 0x02021C7C +_0801A294: .4byte 0x082C3220 +_0801A298: + movs r0, #0x64 + str r0, [sp] + movs r0, #2 + str r0, [sp, #4] + movs r1, #1 + adds r2, r7, #0 + movs r3, #0 + bl sub_0801A384 +_0801A2AA: + movs r2, #0xf0 + lsls r2, r2, #0x15 + add r8, r2 + adds r6, #6 + adds r4, #1 + cmp r4, #3 + ble _0801A246 + movs r0, #2 + bl PutWindowTilemap + movs r0, #2 + movs r1, #3 + bl CopyWindowToVram +_0801A2C6: + ldr r0, _0801A31C + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0801A2DA + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0801A304 +_0801A2DA: + movs r0, #5 + bl PlaySE + ldr r2, _0801A320 + ldr r0, _0801A324 + ldr r0, [r0] + adds r0, #0x61 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r1, #0xff + strh r1, [r0, #0x26] + mov r0, sb + adds r1, r0, r5 + lsls r1, r1, #3 + adds r1, r1, r2 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] +_0801A304: + mov r2, sb + adds r1, r2, r5 + lsls r1, r1, #3 + ldr r0, _0801A328 + adds r1, r1, r0 + adds r0, r1, #0 + adds r0, #0xe + adds r1, #0x10 + bl sub_0801A074 + b _0801A36C + .align 2, 0 +_0801A31C: .4byte 0x03002360 +_0801A320: .4byte 0x03005B60 +_0801A324: .4byte 0x03000DAC +_0801A328: .4byte 0x03005B68 +_0801A32C: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade +_0801A33C: + ldr r1, _0801A350 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 +_0801A346: + ldrh r1, [r0, #8] + adds r1, #1 + strh r1, [r0, #8] + b _0801A36C + .align 2, 0 +_0801A350: .4byte 0x03005B60 +_0801A354: + ldr r0, _0801A37C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0801A36C + ldr r0, _0801A380 + bl SetMainCallback2 + adds r0, r5, #0 + bl DestroyTask +_0801A36C: + add sp, #0x14 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0801A37C: .4byte 0x02037C74 +_0801A380: .4byte 0x0801A03D + thumb_func_end sub_0801A168 + + thumb_func_start sub_0801A384 +sub_0801A384: @ 0x0801A384 + push {r4, r5, r6, r7, lr} + sub sp, #0x18 + mov ip, r2 + ldr r2, [sp, #0x2c] + ldr r4, [sp, #0x30] + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + lsls r3, r3, #0x18 + lsrs r5, r3, #0x18 + lsls r2, r2, #0x18 + lsrs r3, r2, #0x18 + lsls r4, r4, #0x18 + lsrs r0, r4, #0x18 + cmp r0, #4 + bhi _0801A40E + lsls r0, r0, #2 + ldr r1, _0801A3B0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801A3B0: .4byte 0x0801A3B4 +_0801A3B4: @ jump table + .4byte _0801A3C8 @ case 0 + .4byte _0801A3D6 @ case 1 + .4byte _0801A3E4 @ case 2 + .4byte _0801A3F2 @ case 3 + .4byte _0801A400 @ case 4 +_0801A3C8: + add r1, sp, #0x14 + movs r0, #0 + strb r0, [r1] + movs r0, #2 + strb r0, [r1, #1] + movs r0, #3 + b _0801A40C +_0801A3D6: + add r1, sp, #0x14 + movs r0, #0 + strb r0, [r1] + movs r0, #1 + strb r0, [r1, #1] + movs r0, #3 + b _0801A40C +_0801A3E4: + add r1, sp, #0x14 + movs r0, #0 + strb r0, [r1] + movs r0, #4 + strb r0, [r1, #1] + movs r0, #5 + b _0801A40C +_0801A3F2: + add r1, sp, #0x14 + movs r0, #0 + strb r0, [r1] + movs r0, #7 + strb r0, [r1, #1] + movs r0, #6 + b _0801A40C +_0801A400: + add r1, sp, #0x14 + movs r0, #0 + strb r0, [r1] + movs r0, #1 + strb r0, [r1, #1] + movs r0, #2 +_0801A40C: + strb r0, [r1, #2] +_0801A40E: + movs r0, #0 + str r0, [sp] + str r0, [sp, #4] + add r0, sp, #0x14 + str r0, [sp, #8] + movs r0, #1 + rsbs r0, r0, #0 + str r0, [sp, #0xc] + mov r0, ip + str r0, [sp, #0x10] + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r5, #0 + bl AddTextPrinterParameterized4 + add sp, #0x18 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_0801A384 + + thumb_func_start sub_0801A434 +sub_0801A434: @ 0x0801A434 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov ip, r0 + adds r7, r1, #0 + ldrb r0, [r0, #0xa] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x19 + mov r8, r0 + movs r4, #0 + ldr r0, _0801A4AC + mov sb, r0 + movs r1, #1 + add r1, sb + mov sl, r1 + mov r3, ip + adds r3, #4 + str r3, [sp] +_0801A45E: + lsls r0, r4, #1 + adds r2, r0, r4 + mov r3, sb + adds r1, r2, r3 + adds r5, r0, #0 + adds r6, r4, #1 + ldrb r1, [r1] + cmp r8, r1 + bne _0801A4C2 + mov r0, ip + ldrb r1, [r0, #0x1a] + movs r0, #3 + ands r0, r1 + cmp r0, #1 + bne _0801A4C2 + mov r0, sb + adds r0, #2 + adds r3, r2, r0 + ldrb r0, [r3] + cmp r0, #0 + bne _0801A4B0 + movs r2, #0 + movs r1, #0 + ldr r3, [sp] +_0801A48E: + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _0801A498 + adds r2, #1 +_0801A498: + adds r1, #1 + cmp r1, #3 + ble _0801A48E + adds r2, #1 + adds r0, r5, r4 + add r0, sl + ldrb r1, [r0] + lsls r1, r1, #2 + adds r1, r1, r7 + b _0801A4BC + .align 2, 0 +_0801A4AC: .4byte 0x082C324C +_0801A4B0: + mov r1, sl + adds r0, r2, r1 + ldrb r1, [r0] + lsls r1, r1, #2 + adds r1, r1, r7 + ldrb r2, [r3] +_0801A4BC: + ldr r0, [r1] + adds r0, r0, r2 + str r0, [r1] +_0801A4C2: + adds r4, r6, #0 + cmp r4, #0x1e + bls _0801A45E + mov r0, r8 + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0801A434 + + thumb_func_start sub_0801A4DC +sub_0801A4DC: @ 0x0801A4DC + push {r4, lr} + movs r4, #0 + adds r3, r1, #0 + adds r2, r0, #0 +_0801A4E4: + ldr r1, [r2] + ldr r0, [r3] + cmp r1, r0 + beq _0801A4F0 + movs r0, #1 + b _0801A4FC +_0801A4F0: + adds r3, #4 + adds r2, #4 + adds r4, #1 + cmp r4, #3 + ble _0801A4E4 + movs r0, #0 +_0801A4FC: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0801A4DC + + thumb_func_start sub_0801A504 +sub_0801A504: @ 0x0801A504 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x10 + adds r6, r0, #0 + mov sb, r1 + adds r5, r2, #0 + lsls r4, r3, #0x18 + lsrs r4, r4, #0x18 + movs r0, #0 + mov r8, r0 + mov r0, sp + movs r1, #0 + movs r2, #0x10 + bl memset + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r1, _0801A56C + adds r7, r0, r1 + movs r4, #0 +_0801A532: + lsls r1, r4, #5 + ldr r0, [r7] + adds r0, r0, r1 + mov r1, sp + bl sub_0801A434 + adds r1, r0, #0 + ldr r0, [r5] + cmp r1, r0 + beq _0801A54C + str r1, [r5] + movs r2, #1 + mov r8, r2 +_0801A54C: + adds r5, #4 + adds r4, #1 + cmp r4, #0xf + ble _0801A532 + mov r0, sp + mov r1, sb + bl sub_0801A4DC + cmp r0, #0 + bne _0801A570 + mov r3, r8 + cmp r3, #1 + beq _0801A598 + movs r0, #0 + b _0801A59A + .align 2, 0 +_0801A56C: .4byte 0x03005B68 +_0801A570: + adds r1, r6, #0 + mov r0, sp + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldr r0, [r0] + str r0, [r1] + mov r1, sb + mov r0, sp + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldr r0, [r0] + str r0, [r1] + ldr r0, [r6] + ldr r1, [r6, #4] + adds r0, r0, r1 + ldr r1, [r6, #8] + adds r0, r0, r1 + ldr r1, [r6, #0xc] + adds r0, r0, r1 + str r0, [r6, #0xc] +_0801A598: + movs r0, #1 +_0801A59A: + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_0801A504 + + thumb_func_start sub_0801A5A8 +sub_0801A5A8: @ 0x0801A5A8 + push {r4, r5, r6, r7, lr} + movs r0, #0xa + bl sub_08013D18 + movs r4, #0 + movs r7, #0x64 + ldr r6, _0801A628 + ldr r5, _0801A62C +_0801A5B8: + ldr r0, _0801A630 + adds r0, r4, r0 + ldrb r0, [r0] + subs r0, #1 + adds r1, r0, #0 + muls r1, r7, r1 + adds r1, r1, r6 + adds r0, r5, #0 + movs r2, #0x64 + bl memcpy + adds r5, #0x64 + adds r4, #1 + cmp r4, #1 + ble _0801A5B8 + ldr r4, _0801A628 + movs r0, #0xfa + lsls r0, r0, #1 + adds r5, r4, r0 +_0801A5DE: + adds r0, r4, #0 + bl ZeroMonData + adds r4, #0x64 + cmp r4, r5 + ble _0801A5DE + ldr r4, _0801A628 + movs r5, #0 + adds r6, r4, #0 + adds r6, #0x64 +_0801A5F2: + ldr r1, _0801A62C + adds r1, r5, r1 + adds r0, r4, #0 + movs r2, #0x64 + bl memcpy + adds r4, #0x64 + adds r5, #0x64 + cmp r4, r6 + ble _0801A5F2 + movs r0, #0x32 + bl IncrementGameStat + bl CalculatePlayerPartyCount + ldr r0, _0801A634 + movs r2, #0xc0 + lsls r2, r2, #4 + adds r1, r2, #0 + strh r1, [r0] + ldr r0, _0801A638 + bl SetMainCallback2 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0801A628: .4byte 0x02024190 +_0801A62C: .4byte 0x020243E8 +_0801A630: .4byte 0x0203CBC4 +_0801A634: .4byte 0x0203886A +_0801A638: .4byte 0x080365B5 + thumb_func_end sub_0801A5A8 + + thumb_func_start sub_0801A63C +sub_0801A63C: @ 0x0801A63C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + adds r5, r0, #0 + adds r7, r1, #0 + adds r6, r2, #0 + ldr r4, [sp, #0x38] + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + movs r0, #0 + mov sb, r0 + movs r1, #1 + mov sl, r1 + ldr r0, _0801A6AC + mov r8, r0 + ldrb r0, [r0] + lsls r1, r0, #4 + orrs r1, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r5, #0 + str r3, [sp, #0x14] + bl FillWindowPixelBuffer + mov r1, sb + str r1, [sp] + mov r0, sl + str r0, [sp, #4] + mov r1, r8 + str r1, [sp, #8] + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + str r4, [sp, #0xc] + str r7, [sp, #0x10] + adds r0, r5, #0 + movs r1, #1 + adds r2, r6, #0 + ldr r3, [sp, #0x14] + bl AddTextPrinterParameterized4 + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0801A6AC: .4byte 0x082C32C0 + thumb_func_end sub_0801A63C + + thumb_func_start sub_0801A6B0 +sub_0801A6B0: @ 0x0801A6B0 + push {r4, r5, r6, lr} + sub sp, #4 + adds r4, r0, #0 + adds r6, r1, #0 + adds r5, r2, #0 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0801A6C8 + cmp r0, #1 + beq _0801A6F6 + b _0801A70A +_0801A6C8: + movs r0, #0 + movs r1, #1 + movs r2, #0xd + bl DrawTextBorderOuter + str r5, [sp] + movs r0, #0 + adds r1, r6, #0 + movs r2, #1 + movs r3, #1 + bl sub_0801A63C + movs r0, #0 + bl PutWindowTilemap + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + b _0801A70A +_0801A6F6: + movs r0, #0 + bl IsTextPrinterActive + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + bne _0801A70A + strh r0, [r4] + movs r0, #1 + b _0801A70C +_0801A70A: + movs r0, #0 +_0801A70C: + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_0801A6B0 + + thumb_func_start sub_0801A714 +sub_0801A714: @ 0x0801A714 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0801A714 + + thumb_func_start sub_0801A728 +sub_0801A728: @ 0x0801A728 + push {r4, lr} + sub sp, #0xc + ldr r1, _0801A748 + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, r1, #0 + cmp r0, #0x33 + bls _0801A73E + b _0801AA82 +_0801A73E: + lsls r0, r0, #2 + ldr r1, _0801A74C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801A748: .4byte 0x03002360 +_0801A74C: .4byte 0x0801A750 +_0801A750: @ jump table + .4byte _0801A820 @ case 0 + .4byte _0801A8D0 @ case 1 + .4byte _0801A8F8 @ case 2 + .4byte _0801A91C @ case 3 + .4byte _0801A96C @ case 4 + .4byte _0801AA82 @ case 5 + .4byte _0801AA50 @ case 6 + .4byte _0801AA2C @ case 7 + .4byte _0801AA50 @ case 8 + .4byte _0801AA6C @ case 9 + .4byte _0801AA82 @ case 10 + .4byte _0801AA82 @ case 11 + .4byte _0801AA82 @ case 12 + .4byte _0801AA82 @ case 13 + .4byte _0801AA82 @ case 14 + .4byte _0801AA82 @ case 15 + .4byte _0801AA82 @ case 16 + .4byte _0801AA82 @ case 17 + .4byte _0801AA82 @ case 18 + .4byte _0801AA82 @ case 19 + .4byte _0801AA82 @ case 20 + .4byte _0801AA82 @ case 21 + .4byte _0801AA82 @ case 22 + .4byte _0801AA82 @ case 23 + .4byte _0801AA82 @ case 24 + .4byte _0801AA82 @ case 25 + .4byte _0801AA82 @ case 26 + .4byte _0801AA82 @ case 27 + .4byte _0801AA82 @ case 28 + .4byte _0801AA82 @ case 29 + .4byte _0801AA82 @ case 30 + .4byte _0801AA82 @ case 31 + .4byte _0801AA82 @ case 32 + .4byte _0801AA82 @ case 33 + .4byte _0801AA82 @ case 34 + .4byte _0801AA82 @ case 35 + .4byte _0801AA82 @ case 36 + .4byte _0801AA82 @ case 37 + .4byte _0801AA82 @ case 38 + .4byte _0801AA82 @ case 39 + .4byte _0801AA82 @ case 40 + .4byte _0801AA82 @ case 41 + .4byte _0801AA82 @ case 42 + .4byte _0801AA82 @ case 43 + .4byte _0801AA82 @ case 44 + .4byte _0801AA82 @ case 45 + .4byte _0801AA82 @ case 46 + .4byte _0801AA82 @ case 47 + .4byte _0801AA82 @ case 48 + .4byte _0801AA82 @ case 49 + .4byte _0801A9F8 @ case 50 + .4byte _0801AA14 @ case 51 +_0801A820: + movs r0, #0 + movs r1, #0 + bl SetGpuReg + ldr r4, _0801A8BC + movs r0, #4 + bl AllocZeroed + str r0, [r4] + bl ResetSpriteData + bl FreeAllSpritePalettes + bl ResetTasks + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _0801A8C0 + movs r0, #0 + movs r2, #1 + bl InitBgsFromTemplates + bl reset_temp_tile_data_buffers + ldr r0, _0801A8C4 + bl InitWindows + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0801A860 + b _0801AA96 +_0801A860: + bl DeactivateAllTextPrinters + movs r0, #0 + bl ClearWindowTilemap + movs r0, #0 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + movs r0, #0x1e + str r0, [sp] + movs r0, #0x14 + str r0, [sp, #4] + movs r0, #0xf + str r0, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect + movs r0, #0 + movs r1, #1 + movs r2, #0xd0 + bl LoadUserWindowBorderGfx + movs r0, #0 + movs r1, #1 + movs r2, #0xd0 + bl LoadUserWindowBorderGfx_ + bl sub_08197680 + ldr r0, _0801A8C8 + bl SetVBlankCallback + ldr r1, _0801A8CC + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _0801AA5E + .align 2, 0 +_0801A8BC: .4byte 0x02022920 +_0801A8C0: .4byte 0x082C32AC +_0801A8C4: .4byte 0x082C32B0 +_0801A8C8: .4byte 0x0801A715 +_0801A8CC: .4byte 0x03002360 +_0801A8D0: + ldr r0, _0801A8EC + ldr r0, [r0] + ldr r1, _0801A8F0 + movs r2, #0 + bl sub_0801A6B0 + cmp r0, #0 + bne _0801A8E2 + b _0801AA82 +_0801A8E2: + ldr r1, _0801A8F4 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _0801AA5E + .align 2, 0 +_0801A8EC: .4byte 0x02022920 +_0801A8F0: .4byte 0x082C32C3 +_0801A8F4: .4byte 0x03002360 +_0801A8F8: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + movs r0, #0 + bl ShowBg + ldr r1, _0801A918 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r1, r0 + b _0801AA5E + .align 2, 0 +_0801A918: .4byte 0x03002360 +_0801A91C: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801A928 + b _0801AA82 +_0801A928: + ldr r4, _0801A944 + adds r0, r4, #0 + movs r1, #0 + movs r2, #0x20 + bl memset + ldr r0, _0801A948 + ldrb r1, [r0] + ldrb r0, [r0, #1] + cmn r1, r0 + bne _0801A94C + movs r0, #0x52 + b _0801A94E + .align 2, 0 +_0801A944: .4byte 0x0202257C +_0801A948: .4byte 0x0203CBC4 +_0801A94C: + movs r0, #0x51 +_0801A94E: + strb r0, [r4] + ldr r1, _0801A964 + movs r0, #0 + movs r2, #0x20 + bl SendBlock + ldr r1, _0801A968 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _0801AA5E + .align 2, 0 +_0801A964: .4byte 0x0202257C +_0801A968: .4byte 0x03002360 +_0801A96C: + bl GetBlockReceivedStatus + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + beq _0801A97A + b _0801AA82 +_0801A97A: + ldr r1, _0801A9AC + ldrh r0, [r1] + cmp r0, #0x51 + bne _0801A9B4 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r1, r2 + ldrh r0, [r0] + cmp r0, #0x51 + bne _0801A9B4 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _0801A9B0 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + movs r1, #0x32 + b _0801A9EA + .align 2, 0 +_0801A9AC: .4byte 0x0202207C +_0801A9B0: .4byte 0x03002360 +_0801A9B4: + bl sub_0800A7F8 + ldr r4, _0801A9D8 + bl GetMultiplayerId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x10 + adds r0, r0, r4 + ldrh r0, [r0] + cmp r0, #0x52 + bne _0801A9E0 + ldr r0, _0801A9DC + movs r2, #0x87 + lsls r2, r2, #3 + adds r0, r0, r2 + movs r1, #6 + b _0801A9EA + .align 2, 0 +_0801A9D8: .4byte 0x0202207C +_0801A9DC: .4byte 0x03002360 +_0801A9E0: + ldr r0, _0801A9F4 + movs r1, #0x87 + lsls r1, r1, #3 + adds r0, r0, r1 + movs r1, #8 +_0801A9EA: + strb r1, [r0] + bl ResetBlockReceivedFlags + b _0801AA82 + .align 2, 0 +_0801A9F4: .4byte 0x03002360 +_0801A9F8: + bl UpdatePaletteFade + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801AA82 + bl sub_0800A8D4 + ldr r1, _0801AA10 + movs r2, #0x87 + lsls r2, r2, #3 + adds r1, r1, r2 + b _0801AA5E + .align 2, 0 +_0801AA10: .4byte 0x03002360 +_0801AA14: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801AA82 + ldr r0, _0801AA28 + bl SetMainCallback2 + b _0801AA82 + .align 2, 0 +_0801AA28: .4byte 0x0801A5A9 +_0801AA2C: + ldr r0, _0801AA44 + ldr r0, [r0] + ldr r1, _0801AA48 + movs r2, #1 + bl sub_0801A6B0 + cmp r0, #0 + beq _0801AA82 + ldr r0, _0801AA4C + bl SetMainCallback2 + b _0801AA82 + .align 2, 0 +_0801AA44: .4byte 0x02022920 +_0801AA48: .4byte 0x082C32F3 +_0801AA4C: .4byte 0x08085A31 +_0801AA50: + ldr r0, _0801AA68 + ldrb r0, [r0] + cmp r0, #0 + bne _0801AA82 + movs r0, #0x87 + lsls r0, r0, #3 + adds r1, r2, r0 +_0801AA5E: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0801AA82 + .align 2, 0 +_0801AA68: .4byte 0x030031C4 +_0801AA6C: + ldr r0, _0801AAA0 + ldr r0, [r0] + ldr r1, _0801AAA4 + movs r2, #1 + bl sub_0801A6B0 + cmp r0, #0 + beq _0801AA82 + ldr r0, _0801AAA8 + bl SetMainCallback2 +_0801AA82: + bl RunTasks + bl RunTextPrinters + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade +_0801AA96: + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801AAA0: .4byte 0x02022920 +_0801AAA4: .4byte 0x082C32E1 +_0801AAA8: .4byte 0x08085A31 + thumb_func_end sub_0801A728 + + thumb_func_start sub_0801AAAC +sub_0801AAAC: @ 0x0801AAAC + push {lr} + sub sp, #4 + movs r0, #0 + str r0, [sp] + ldr r0, _0801AAD4 + ldr r1, [r0] + ldr r0, _0801AAD8 + adds r1, r1, r0 + ldr r2, _0801AADC + mov r0, sp + bl CpuSet + bl sub_0801AC50 + bl sub_0811FE10 + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_0801AAD4: .4byte 0x03005AEC +_0801AAD8: .4byte 0x0000322C +_0801AADC: .4byte 0x0500007A + thumb_func_end sub_0801AAAC + diff --git a/asm/union_room_chat.s b/asm/union_room_chat.s new file mode 100644 index 0000000..6702f5d --- /dev/null +++ b/asm/union_room_chat.s @@ -0,0 +1,5960 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_0801DBBC +sub_0801DBBC: @ 0x0801DBBC + push {r4, lr} + ldr r4, _0801DBE8 + movs r0, #0xde + lsls r0, r0, #1 + bl Alloc + str r0, [r4] + bl sub_0801DBF4 + ldr r1, _0801DBEC + movs r0, #0x14 + strh r0, [r1] + movs r0, #0 + bl SetVBlankCallback + ldr r0, _0801DBF0 + bl SetMainCallback2 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801DBE8: .4byte 0x02022938 +_0801DBEC: .4byte 0x03002350 +_0801DBF0: .4byte 0x0801DC79 + thumb_func_end sub_0801DBBC + + thumb_func_start sub_0801DBF4 +sub_0801DBF4: @ 0x0801DBF4 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + movs r5, #0 + movs r0, #0 + strh r0, [r4, #4] + strh r0, [r4, #6] + strb r5, [r4, #0x10] + strb r5, [r4, #0x11] + strb r5, [r4, #0x12] + strb r5, [r4, #0x14] + strb r5, [r4, #0x15] + strb r5, [r4, #0x16] + movs r0, #0xff + strb r0, [r4, #0x1a] + bl GetLinkPlayerCount + strb r0, [r4, #0xd] + bl GetMultiplayerId + strb r0, [r4, #0x13] + strb r5, [r4, #0x17] + strb r5, [r4, #0x18] + movs r1, #0xc8 + lsls r1, r1, #1 + adds r0, r4, r1 + bl sub_0801ED2C + ldr r7, _0801DC4C + ldr r6, _0801DC50 + adds r4, #0xb9 + movs r5, #9 +_0801DC32: + ldr r1, [r7] + adds r1, r1, r6 + adds r0, r4, #0 + bl StringCopy + adds r6, #0x15 + adds r4, #0x15 + subs r5, #1 + cmp r5, #0 + bge _0801DC32 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0801DC4C: .4byte 0x03005AEC +_0801DC50: .4byte 0x00003C88 + thumb_func_end sub_0801DBF4 + + thumb_func_start sub_0801DC54 +sub_0801DC54: @ 0x0801DC54 + push {r4, lr} + ldr r4, _0801DC74 + ldr r0, [r4] + ldrb r0, [r0, #0xe] + bl DestroyTask + ldr r0, [r4] + ldrb r0, [r0, #0xf] + bl DestroyTask + ldr r0, [r4] + bl Free + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801DC74: .4byte 0x02022938 + thumb_func_end sub_0801DC54 + + thumb_func_start c2_081284E0 +c2_081284E0: @ 0x0801DC78 + push {r4, r5, r6, lr} + sub sp, #4 + ldr r0, _0801DC94 + movs r1, #0x87 + lsls r1, r1, #3 + adds r6, r0, r1 + ldrb r0, [r6] + cmp r0, #1 + beq _0801DCB0 + cmp r0, #1 + bgt _0801DC98 + cmp r0, #0 + beq _0801DC9E + b _0801DD28 + .align 2, 0 +_0801DC94: .4byte 0x03002360 +_0801DC98: + cmp r0, #2 + beq _0801DCEC + b _0801DD28 +_0801DC9E: + bl ResetTasks + bl ResetSpriteData + bl FreeAllSpritePalettes + bl sub_0801F2E0 + b _0801DCE0 +_0801DCB0: + bl sub_0801F3C8 + bl sub_0801F344 + adds r5, r0, #0 + cmp r5, #0 + bne _0801DD28 + movs r4, #1 + rsbs r4, r4, #0 + adds r0, r4, #0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + str r5, [sp] + adds r0, r4, #0 + adds r1, r4, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r0, _0801DCE8 + bl SetVBlankCallback +_0801DCE0: + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] + b _0801DD28 + .align 2, 0 +_0801DCE8: .4byte 0x0801DD45 +_0801DCEC: + bl UpdatePaletteFade + ldr r0, _0801DD30 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0801DD28 + ldr r0, _0801DD34 + bl SetMainCallback2 + ldr r0, _0801DD38 + movs r1, #8 + bl CreateTask + ldr r4, _0801DD3C + ldr r1, [r4] + strb r0, [r1, #0xe] + ldr r0, _0801DD40 + movs r1, #7 + bl CreateTask + ldr r1, [r4] + strb r0, [r1, #0xf] + bl LoadWirelessStatusIndicatorSpriteGfx + movs r0, #0xe8 + movs r1, #0x96 + bl CreateWirelessStatusIndicatorSprite +_0801DD28: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0801DD30: .4byte 0x02037C74 +_0801DD34: .4byte 0x0801DD5D +_0801DD38: .4byte 0x0801DD79 +_0801DD3C: .4byte 0x02022938 +_0801DD40: .4byte 0x0801F0C5 + thumb_func_end c2_081284E0 + + thumb_func_start sub_0801DD44 +sub_0801DD44: @ 0x0801DD44 + push {lr} + bl TransferPlttBuffer + bl LoadOam + bl ProcessSpriteCopyRequests + bl ScanlineEffect_InitHBlankDmaTransfer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0801DD44 + + thumb_func_start sub_0801DD5C +sub_0801DD5C: @ 0x0801DD5C + push {lr} + bl RunTasks + bl sub_0801F3C8 + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0801DD5C + + thumb_func_start sub_0801DD78 +sub_0801DD78: @ 0x0801DD78 + push {r4, lr} + ldr r4, _0801DD90 + ldr r0, [r4] + ldrb r0, [r0, #0x17] + cmp r0, #2 + beq _0801DD9E + cmp r0, #2 + bgt _0801DD94 + cmp r0, #1 + beq _0801DD9A + b _0801DDAE + .align 2, 0 +_0801DD90: .4byte 0x02022938 +_0801DD94: + cmp r0, #3 + beq _0801DDA2 + b _0801DDAE +_0801DD9A: + movs r0, #6 + b _0801DDA4 +_0801DD9E: + movs r0, #7 + b _0801DDA4 +_0801DDA2: + movs r0, #8 +_0801DDA4: + bl sub_0801E9F8 + ldr r1, [r4] + movs r0, #0 + strb r0, [r1, #0x17] +_0801DDAE: + ldr r1, _0801DDC8 + ldr r0, _0801DDCC + ldr r0, [r0] + ldrh r0, [r0, #4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + thumb_func_end sub_0801DD78 + + thumb_func_start sub_0801DDC0 +sub_0801DDC0: @ 0x0801DDC0 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801DDC8: .4byte 0x082C5064 +_0801DDCC: .4byte 0x02022938 + thumb_func_end sub_0801DDC0 + + thumb_func_start sub_0801DDD0 +sub_0801DDD0: @ 0x0801DDD0 + push {r4, lr} + ldr r4, _0801DDE8 + ldr r0, [r4] + ldrh r1, [r0, #6] + cmp r1, #1 + beq _0801DE04 + cmp r1, #1 + bgt _0801DDEC + cmp r1, #0 + beq _0801DDF2 + b _0801DE4C + .align 2, 0 +_0801DDE8: .4byte 0x02022938 +_0801DDEC: + cmp r1, #2 + beq _0801DE3C + b _0801DE4C +_0801DDF2: + movs r1, #0xc8 + lsls r1, r1, #1 + adds r0, r0, r1 + bl sub_0801ED34 + ldr r1, [r4] + ldrh r0, [r1, #6] + adds r0, #1 + strh r0, [r1, #6] +_0801DE04: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801DE4C + bl GetRfuRecvQueueLength + cmp r0, #0 + bne _0801DE4C + ldr r4, _0801DE38 + ldr r1, [r4] + movs r0, #0xc8 + lsls r0, r0, #1 + adds r1, r1, r0 + movs r0, #0 + movs r2, #0x28 + bl SendBlock + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801DE4C + ldr r1, [r4] + ldrh r0, [r1, #6] + adds r0, #1 + strh r0, [r1, #6] + b _0801DE4C + .align 2, 0 +_0801DE38: .4byte 0x02022938 +_0801DE3C: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801DE4C + movs r0, #1 + bl sub_0801E9F8 +_0801DE4C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0801DDD0 + + thumb_func_start sub_0801DE54 +sub_0801DE54: @ 0x0801DE54 + push {r4, r5, lr} + ldr r5, _0801DE68 + ldr r3, [r5] + ldrh r0, [r3, #6] + cmp r0, #0 + beq _0801DE6C + cmp r0, #1 + beq _0801DF1A + b _0801DF3C + .align 2, 0 +_0801DE68: .4byte 0x02022938 +_0801DE6C: + ldr r1, _0801DE88 + ldrh r2, [r1, #0x2e] + movs r0, #8 + ands r0, r2 + cmp r0, #0 + beq _0801DE8C + ldrb r0, [r3, #0x15] + cmp r0, #0 + beq _0801DF3C + movs r0, #4 + bl sub_0801E9F8 + b _0801DF3C + .align 2, 0 +_0801DE88: .4byte 0x03002360 +_0801DE8C: + movs r0, #4 + ands r0, r2 + cmp r0, #0 + beq _0801DE9C + movs r0, #2 + bl sub_0801E9F8 + b _0801DF3C +_0801DE9C: + ldrh r1, [r1, #0x30] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0801DEC8 + ldrb r0, [r3, #0x15] + cmp r0, #0 + beq _0801DEC0 + bl sub_0801EB74 + movs r0, #8 + movs r1, #0 + bl sub_0801F3FC + ldr r1, [r5] + movs r0, #1 + strh r0, [r1, #6] + b _0801DF3C +_0801DEC0: + movs r0, #3 + bl sub_0801E9F8 + b _0801DF3C +_0801DEC8: + movs r4, #1 + adds r0, r4, #0 + ands r0, r2 + cmp r0, #0 + beq _0801DEE4 + bl sub_0801EAB8 + movs r0, #8 + movs r1, #0 + bl sub_0801F3FC + movs r0, #2 + movs r1, #1 + b _0801DF10 +_0801DEE4: + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r2 + cmp r0, #0 + beq _0801DF04 + ldrb r0, [r3, #0x10] + cmp r0, #4 + beq _0801DEFC + bl sub_0801EBA0 + movs r0, #8 + b _0801DF0E +_0801DEFC: + movs r0, #5 + bl sub_0801E9F8 + b _0801DF3C +_0801DF04: + bl sub_0801EA08 + cmp r0, #0 + beq _0801DF3C + movs r0, #1 +_0801DF0E: + movs r1, #0 +_0801DF10: + bl sub_0801F3FC + ldr r0, [r5] + strh r4, [r0, #6] + b _0801DF3C +_0801DF1A: + movs r0, #0 + bl sub_0801F454 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + bl sub_0801F454 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r4, #0 + bne _0801DF3C + cmp r1, #0 + bne _0801DF3C + ldr r0, [r5] + strh r1, [r0, #6] +_0801DF3C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0801DE54 + + thumb_func_start sub_0801DF44 +sub_0801DF44: @ 0x0801DF44 + push {r4, r5, r6, lr} + ldr r0, _0801DF5C + ldr r0, [r0] + ldrh r0, [r0, #6] + cmp r0, #4 + bls _0801DF52 + b _0801E05E +_0801DF52: + lsls r0, r0, #2 + ldr r1, _0801DF60 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801DF5C: .4byte 0x02022938 +_0801DF60: .4byte 0x0801DF64 +_0801DF64: @ jump table + .4byte _0801DF78 @ case 0 + .4byte _0801DF82 @ case 1 + .4byte _0801DFA0 @ case 2 + .4byte _0801E02C @ case 3 + .4byte _0801E040 @ case 4 +_0801DF78: + movs r0, #3 + movs r1, #0 + bl sub_0801F3FC + b _0801DF8E +_0801DF82: + movs r0, #0 + bl sub_0801F454 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801E05E +_0801DF8E: + ldr r0, _0801DF9C + ldr r1, [r0] + ldrh r0, [r1, #6] + adds r0, #1 + strh r0, [r1, #6] + b _0801E05E + .align 2, 0 +_0801DF9C: .4byte 0x02022938 +_0801DFA0: + bl Menu_ProcessInput + lsls r0, r0, #0x18 + asrs r0, r0, #8 + lsrs r6, r0, #0x10 + asrs r4, r0, #0x10 + movs r0, #2 + rsbs r0, r0, #0 + cmp r4, r0 + beq _0801DFD8 + adds r0, #1 + cmp r4, r0 + beq _0801DFF8 + movs r0, #4 + movs r1, #0 + bl sub_0801F3FC + ldr r5, _0801DFD4 + ldr r2, [r5] + ldrb r0, [r2, #0x10] + cmp r0, r4 + beq _0801E000 + cmp r4, #5 + bne _0801E010 + b _0801E000 + .align 2, 0 +_0801DFD4: .4byte 0x02022938 +_0801DFD8: + ldr r0, _0801DFF4 + ldrh r1, [r0, #0x2e] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0801E05E + movs r0, #5 + bl PlaySE + movs r0, #1 + bl Menu_MoveCursor + b _0801E05E + .align 2, 0 +_0801DFF4: .4byte 0x03002360 +_0801DFF8: + movs r0, #4 + movs r1, #0 + bl sub_0801F3FC +_0801E000: + ldr r0, _0801E00C + ldr r1, [r0] + movs r0, #3 + strh r0, [r1, #6] + b _0801E05E + .align 2, 0 +_0801E00C: .4byte 0x02022938 +_0801E010: + movs r1, #0 + strb r1, [r2, #0x11] + ldr r0, [r5] + strb r1, [r0, #0x12] + movs r0, #5 + movs r1, #1 + bl sub_0801F3FC + ldr r0, [r5] + strb r6, [r0, #0x10] + ldr r1, [r5] + movs r0, #4 + strh r0, [r1, #6] + b _0801E05E +_0801E02C: + movs r0, #0 + bl sub_0801F454 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801E05E + movs r0, #1 + bl sub_0801E9F8 + b _0801E05E +_0801E040: + movs r0, #0 + bl sub_0801F454 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801E05E + movs r0, #1 + bl sub_0801F454 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801E05E + movs r0, #1 + bl sub_0801E9F8 +_0801E05E: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end sub_0801DF44 + + thumb_func_start sub_0801E064 +sub_0801E064: @ 0x0801E064 + push {r4, r5, lr} + ldr r1, _0801E080 + ldr r0, [r1] + ldrh r0, [r0, #6] + adds r2, r1, #0 + cmp r0, #0xa + bls _0801E074 + b _0801E27C +_0801E074: + lsls r0, r0, #2 + ldr r1, _0801E084 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801E080: .4byte 0x02022938 +_0801E084: .4byte 0x0801E088 +_0801E088: @ jump table + .4byte _0801E0B4 @ case 0 + .4byte _0801E0CC @ case 1 + .4byte _0801E0E8 @ case 2 + .4byte _0801E146 @ case 3 + .4byte _0801E1F8 @ case 4 + .4byte _0801E248 @ case 5 + .4byte _0801E27C @ case 6 + .4byte _0801E27C @ case 7 + .4byte _0801E19C @ case 8 + .4byte _0801E15C @ case 9 + .4byte _0801E180 @ case 10 +_0801E0B4: + movs r0, #6 + movs r1, #0 + bl sub_0801F3FC + ldr r0, _0801E0C8 + ldr r1, [r0] + movs r0, #1 + strh r0, [r1, #6] + b _0801E27C + .align 2, 0 +_0801E0C8: .4byte 0x02022938 +_0801E0CC: + movs r0, #0 + bl sub_0801F454 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801E0DA + b _0801E27C +_0801E0DA: + ldr r0, _0801E0E4 + ldr r1, [r0] + movs r0, #2 + strh r0, [r1, #6] + b _0801E27C + .align 2, 0 +_0801E0E4: .4byte 0x02022938 +_0801E0E8: + bl sub_0801FD30 + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _0801E10A + cmp r1, #0 + bgt _0801E102 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0801E1BA + b _0801E27C +_0801E102: + cmp r1, #1 + beq _0801E108 + b _0801E27C +_0801E108: + b _0801E1BA +_0801E10A: + ldr r4, _0801E130 + ldr r1, [r4] + ldrb r0, [r1, #0x13] + cmp r0, #0 + bne _0801E134 + movs r2, #0xc8 + lsls r2, r2, #1 + adds r0, r1, r2 + bl sub_0801EDE0 + movs r0, #7 + movs r1, #0 + bl sub_0801F3FC + ldr r1, [r4] + movs r0, #9 + strh r0, [r1, #6] + b _0801E27C + .align 2, 0 +_0801E130: .4byte 0x02022938 +_0801E134: + movs r2, #0xc8 + lsls r2, r2, #1 + adds r0, r1, r2 + bl sub_0801ED8C + ldr r1, [r4] + movs r0, #4 + strh r0, [r1, #6] + b _0801E27C +_0801E146: + movs r0, #0 + bl sub_0801F454 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801E154 + b _0801E27C +_0801E154: + movs r0, #1 + bl sub_0801E9F8 + b _0801E27C +_0801E15C: + movs r0, #0 + bl sub_0801F454 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801E16A + b _0801E27C +_0801E16A: + movs r0, #0x14 + movs r1, #0 + bl sub_0801F3FC + ldr r0, _0801E17C + ldr r1, [r0] + movs r0, #0xa + strh r0, [r1, #6] + b _0801E27C + .align 2, 0 +_0801E17C: .4byte 0x02022938 +_0801E180: + movs r0, #0 + bl sub_0801F454 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801E18E + b _0801E27C +_0801E18E: + ldr r0, _0801E198 + ldr r1, [r0] + movs r0, #8 + strh r0, [r1, #6] + b _0801E27C + .align 2, 0 +_0801E198: .4byte 0x02022938 +_0801E19C: + bl sub_0801FD30 + lsls r0, r0, #0x18 + asrs r5, r0, #0x18 + cmp r5, #0 + beq _0801E1D0 + cmp r5, #0 + bgt _0801E1B6 + movs r0, #1 + rsbs r0, r0, #0 + cmp r5, r0 + beq _0801E1BA + b _0801E27C +_0801E1B6: + cmp r5, #1 + bne _0801E27C +_0801E1BA: + movs r0, #7 + movs r1, #0 + bl sub_0801F3FC + ldr r0, _0801E1CC + ldr r1, [r0] + movs r0, #3 + strh r0, [r1, #6] + b _0801E27C + .align 2, 0 +_0801E1CC: .4byte 0x02022938 +_0801E1D0: + bl sub_0800FFB0 + ldr r4, _0801E1F4 + ldr r0, [r4] + movs r1, #0xc8 + lsls r1, r1, #1 + adds r0, r0, r1 + bl sub_0801EDE0 + ldr r0, [r4] + movs r1, #4 + strh r1, [r0, #6] + movs r2, #0xdc + lsls r2, r2, #1 + adds r0, r0, r2 + strh r5, [r0] + b _0801E27C + .align 2, 0 +_0801E1F4: .4byte 0x02022938 +_0801E1F8: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801E238 + bl GetRfuRecvQueueLength + cmp r0, #0 + bne _0801E238 + ldr r4, _0801E230 + ldr r1, [r4] + movs r0, #0xc8 + lsls r0, r0, #1 + adds r1, r1, r0 + movs r0, #0 + movs r2, #0x28 + bl SendBlock + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801E238 + ldr r1, [r4] + ldrb r0, [r1, #0x13] + cmp r0, #0 + bne _0801E234 + movs r0, #6 + b _0801E236 + .align 2, 0 +_0801E230: .4byte 0x02022938 +_0801E234: + movs r0, #5 +_0801E236: + strh r0, [r1, #6] +_0801E238: + ldr r0, _0801E244 + ldrb r0, [r0] + cmp r0, #0 + bne _0801E27C + b _0801E250 + .align 2, 0 +_0801E244: .4byte 0x030031C4 +_0801E248: + ldr r0, _0801E258 + ldrb r0, [r0] + cmp r0, #0 + bne _0801E25C +_0801E250: + movs r0, #9 + bl sub_0801E9F8 + b _0801E27C + .align 2, 0 +_0801E258: .4byte 0x030031C4 +_0801E25C: + ldr r3, [r2] + movs r1, #0xdc + lsls r1, r1, #1 + adds r2, r3, r1 + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + movs r1, #0x96 + lsls r1, r1, #0x11 + cmp r0, r1 + bls _0801E27C + movs r0, #0 + strh r0, [r2] + movs r0, #4 + strh r0, [r3, #6] +_0801E27C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0801E064 + + thumb_func_start sub_0801E284 +sub_0801E284: @ 0x0801E284 + push {r4, lr} + ldr r1, _0801E2A0 + ldr r0, [r1] + ldrh r0, [r0, #6] + adds r2, r1, #0 + cmp r0, #7 + bls _0801E294 + b _0801E3E0 +_0801E294: + lsls r0, r0, #2 + ldr r1, _0801E2A4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801E2A0: .4byte 0x02022938 +_0801E2A4: .4byte 0x0801E2A8 +_0801E2A8: @ jump table + .4byte _0801E2C8 @ case 0 + .4byte _0801E2EC @ case 1 + .4byte _0801E30C @ case 2 + .4byte _0801E330 @ case 3 + .4byte _0801E364 @ case 4 + .4byte _0801E384 @ case 5 + .4byte _0801E3A8 @ case 6 + .4byte _0801E3CC @ case 7 +_0801E2C8: + ldr r0, _0801E2E4 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801E2D6 + b _0801E3E0 +_0801E2D6: + movs r0, #7 + movs r1, #0 + bl sub_0801F3FC + ldr r0, _0801E2E8 + ldr r1, [r0] + b _0801E3BE + .align 2, 0 +_0801E2E4: .4byte 0x0801F0C5 +_0801E2E8: .4byte 0x02022938 +_0801E2EC: + movs r0, #0 + bl sub_0801F454 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801E3E0 + movs r0, #0x12 + movs r1, #0 + bl sub_0801F3FC + ldr r0, _0801E308 + ldr r1, [r0] + b _0801E3BE + .align 2, 0 +_0801E308: .4byte 0x02022938 +_0801E30C: + movs r0, #0 + bl sub_0801F454 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801E3E0 + ldr r4, _0801E32C + ldr r0, [r4] + movs r1, #0xc8 + lsls r1, r1, #1 + adds r0, r0, r1 + bl sub_0801EDB8 + ldr r1, [r4] + b _0801E3BE + .align 2, 0 +_0801E32C: .4byte 0x02022938 +_0801E330: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801E3E0 + bl GetRfuRecvQueueLength + cmp r0, #0 + bne _0801E3E0 + ldr r4, _0801E360 + ldr r1, [r4] + movs r0, #0xc8 + lsls r0, r0, #1 + adds r1, r1, r0 + movs r0, #0 + movs r2, #0x28 + bl SendBlock + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801E3E0 + ldr r1, [r4] + b _0801E3BE + .align 2, 0 +_0801E360: .4byte 0x02022938 +_0801E364: + bl GetBlockReceivedStatus + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0801E3E0 + bl GetRfuRecvQueueLength + cmp r0, #0 + bne _0801E3E0 + ldr r0, _0801E380 + ldr r1, [r0] + b _0801E3BE + .align 2, 0 +_0801E380: .4byte 0x02022938 +_0801E384: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801E3E0 + bl GetRfuRecvQueueLength + adds r4, r0, #0 + cmp r4, #0 + bne _0801E3E0 + bl sub_0800A7F8 + ldr r0, _0801E3A4 + ldr r1, [r0] + strh r4, [r1, #0xa] + b _0801E3BE + .align 2, 0 +_0801E3A4: .4byte 0x02022938 +_0801E3A8: + ldr r1, [r2] + ldrh r0, [r1, #0xa] + cmp r0, #0x95 + bhi _0801E3B4 + adds r0, #1 + strh r0, [r1, #0xa] +_0801E3B4: + ldr r0, _0801E3C8 + ldrb r0, [r0] + cmp r0, #0 + bne _0801E3E0 + ldr r1, [r2] +_0801E3BE: + ldrh r0, [r1, #6] + adds r0, #1 + strh r0, [r1, #6] + b _0801E3E0 + .align 2, 0 +_0801E3C8: .4byte 0x030031C4 +_0801E3CC: + ldr r1, [r2] + ldrh r0, [r1, #0xa] + cmp r0, #0x95 + bls _0801E3DC + movs r0, #9 + bl sub_0801E9F8 + b _0801E3E0 +_0801E3DC: + adds r0, #1 + strh r0, [r1, #0xa] +_0801E3E0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0801E284 + + thumb_func_start sub_0801E3E8 +sub_0801E3E8: @ 0x0801E3E8 + push {r4, r5, lr} + ldr r5, _0801E400 + ldr r1, [r5] + ldrh r0, [r1, #6] + cmp r0, #1 + beq _0801E428 + cmp r0, #1 + bgt _0801E404 + cmp r0, #0 + beq _0801E40E + b _0801E486 + .align 2, 0 +_0801E400: .4byte 0x02022938 +_0801E404: + cmp r0, #2 + beq _0801E452 + cmp r0, #3 + beq _0801E474 + b _0801E486 +_0801E40E: + ldr r0, _0801E424 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801E486 + movs r0, #7 + movs r1, #0 + bl sub_0801F3FC + b _0801E464 + .align 2, 0 +_0801E424: .4byte 0x0801F0C5 +_0801E428: + movs r0, #0 + bl sub_0801F454 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801E486 + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801E486 + bl GetRfuRecvQueueLength + adds r4, r0, #0 + cmp r4, #0 + bne _0801E486 + bl sub_0800A7F8 + ldr r1, [r5] + strh r4, [r1, #0xa] + b _0801E466 +_0801E452: + ldrh r0, [r1, #0xa] + cmp r0, #0x95 + bhi _0801E45C + adds r0, #1 + strh r0, [r1, #0xa] +_0801E45C: + ldr r0, _0801E470 + ldrb r0, [r0] + cmp r0, #0 + bne _0801E486 +_0801E464: + ldr r1, [r5] +_0801E466: + ldrh r0, [r1, #6] + adds r0, #1 + strh r0, [r1, #6] + b _0801E486 + .align 2, 0 +_0801E470: .4byte 0x030031C4 +_0801E474: + ldrh r0, [r1, #0xa] + cmp r0, #0x95 + bls _0801E482 + movs r0, #9 + bl sub_0801E9F8 + b _0801E486 +_0801E482: + adds r0, #1 + strh r0, [r1, #0xa] +_0801E486: + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_0801E3E8 + + thumb_func_start sub_0801E48C +sub_0801E48C: @ 0x0801E48C + push {r4, lr} + ldr r1, _0801E4A4 + ldr r0, [r1] + ldrh r0, [r0, #6] + adds r2, r1, #0 + cmp r0, #4 + bhi _0801E580 + lsls r0, r0, #2 + ldr r1, _0801E4A8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801E4A4: .4byte 0x02022938 +_0801E4A8: .4byte 0x0801E4AC +_0801E4AC: @ jump table + .4byte _0801E4C0 @ case 0 + .4byte _0801E4EC @ case 1 + .4byte _0801E514 @ case 2 + .4byte _0801E548 @ case 3 + .4byte _0801E56C @ case 4 +_0801E4C0: + ldr r0, _0801E4E4 + bl FuncIsActiveTask + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801E580 + ldr r4, _0801E4E8 + ldr r0, [r4] + ldrb r0, [r0, #0x13] + cmp r0, #0 + beq _0801E4DE + movs r0, #7 + movs r1, #0 + bl sub_0801F3FC +_0801E4DE: + ldr r1, [r4] + b _0801E55E + .align 2, 0 +_0801E4E4: .4byte 0x0801F0C5 +_0801E4E8: .4byte 0x02022938 +_0801E4EC: + movs r0, #0 + bl sub_0801F454 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801E580 + ldr r4, _0801E510 + ldr r0, [r4] + ldrb r0, [r0, #0x13] + cmp r0, #0 + beq _0801E50A + movs r0, #0x13 + movs r1, #0 + bl sub_0801F3FC +_0801E50A: + ldr r1, [r4] + b _0801E55E + .align 2, 0 +_0801E510: .4byte 0x02022938 +_0801E514: + movs r0, #0 + bl sub_0801F454 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0801E580 + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801E580 + bl GetRfuRecvQueueLength + adds r4, r0, #0 + cmp r4, #0 + bne _0801E580 + bl sub_0800A7F8 + ldr r0, _0801E544 + ldr r1, [r0] + strh r4, [r1, #0xa] + b _0801E55E + .align 2, 0 +_0801E544: .4byte 0x02022938 +_0801E548: + ldr r1, [r2] + ldrh r0, [r1, #0xa] + cmp r0, #0x95 + bhi _0801E554 + adds r0, #1 + strh r0, [r1, #0xa] +_0801E554: + ldr r0, _0801E568 + ldrb r0, [r0] + cmp r0, #0 + bne _0801E580 + ldr r1, [r2] +_0801E55E: + ldrh r0, [r1, #6] + adds r0, #1 + strh r0, [r1, #6] + b _0801E580 + .align 2, 0 +_0801E568: .4byte 0x030031C4 +_0801E56C: + ldr r1, [r2] + ldrh r0, [r1, #0xa] + cmp r0, #0x95 + bls _0801E57C + movs r0, #9 + bl sub_0801E9F8 + b _0801E580 +_0801E57C: + adds r0, #1 + strh r0, [r1, #0xa] +_0801E580: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0801E48C + + thumb_func_start sub_0801E588 +sub_0801E588: @ 0x0801E588 + push {r4, lr} + ldr r1, _0801E5A0 + ldr r0, [r1] + ldrh r0, [r0, #6] + adds r4, r1, #0 + cmp r0, #4 + bhi _0801E654 + lsls r0, r0, #2 + ldr r1, _0801E5A4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801E5A0: .4byte 0x02022938 +_0801E5A4: .4byte 0x0801E5A8 +_0801E5A8: @ jump table + .4byte _0801E5BC @ case 0 + .4byte _0801E5E4 @ case 1 + .4byte _0801E618 @ case 2 + .4byte _0801E626 @ case 3 + .4byte _0801E644 @ case 4 +_0801E5BC: + ldr r0, _0801E5CC + ldrb r0, [r0] + cmp r0, #0 + bne _0801E5D0 + movs r0, #1 + bl sub_0801E9F8 + b _0801E654 + .align 2, 0 +_0801E5CC: .4byte 0x030031C4 +_0801E5D0: + ldr r0, [r4] + movs r1, #0xc8 + lsls r1, r1, #1 + adds r0, r0, r1 + bl sub_0801ED5C + ldr r1, [r4] + ldrh r0, [r1, #6] + adds r0, #1 + strh r0, [r1, #6] +_0801E5E4: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0801E654 + bl GetRfuRecvQueueLength + cmp r0, #0 + bne _0801E654 + ldr r4, _0801E614 + ldr r1, [r4] + movs r0, #0xc8 + lsls r0, r0, #1 + adds r1, r1, r0 + movs r0, #0 + movs r2, #0x28 + bl SendBlock + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801E654 + ldr r1, [r4] + b _0801E636 + .align 2, 0 +_0801E614: .4byte 0x02022938 +_0801E618: + bl sub_0801EC20 + movs r0, #8 + movs r1, #0 + bl sub_0801F3FC + b _0801E632 +_0801E626: + movs r0, #0 + bl sub_0801F454 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801E654 +_0801E632: + ldr r0, _0801E640 + ldr r1, [r0] +_0801E636: + ldrh r0, [r1, #6] + adds r0, #1 + strh r0, [r1, #6] + b _0801E654 + .align 2, 0 +_0801E640: .4byte 0x02022938 +_0801E644: + bl IsLinkTaskFinished + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801E654 + movs r0, #1 + bl sub_0801E9F8 +_0801E654: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0801E588 + + thumb_func_start sub_0801E65C +sub_0801E65C: @ 0x0801E65C + push {r4, lr} + ldr r0, _0801E674 + ldr r0, [r0] + ldrh r0, [r0, #6] + cmp r0, #6 + bls _0801E66A + b _0801E78C +_0801E66A: + lsls r0, r0, #2 + ldr r1, _0801E678 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801E674: .4byte 0x02022938 +_0801E678: .4byte 0x0801E67C +_0801E67C: @ jump table + .4byte _0801E698 @ case 0 + .4byte _0801E6C8 @ case 1 + .4byte _0801E71C @ case 2 + .4byte _0801E734 @ case 3 + .4byte _0801E744 @ case 4 + .4byte _0801E758 @ case 5 + .4byte _0801E770 @ case 6 +_0801E698: + bl sub_0801EBD4 + cmp r0, #0 + beq _0801E6B4 + movs r0, #9 + movs r1, #0 + bl sub_0801F3FC + ldr r0, _0801E6B0 + ldr r1, [r0] + movs r0, #2 + b _0801E78A + .align 2, 0 +_0801E6B0: .4byte 0x02022938 +_0801E6B4: + movs r0, #0xd + movs r1, #0 + bl sub_0801F3FC + ldr r0, _0801E6C4 + ldr r1, [r0] + movs r0, #5 + b _0801E78A + .align 2, 0 +_0801E6C4: .4byte 0x02022938 +_0801E6C8: + ldr r0, _0801E6E8 + ldrh r1, [r0, #0x2e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0801E6F0 + bl sub_0801EBF0 + movs r0, #0xb + movs r1, #0 + bl sub_0801F3FC + ldr r0, _0801E6EC + ldr r1, [r0] + movs r0, #3 + b _0801E78A + .align 2, 0 +_0801E6E8: .4byte 0x03002360 +_0801E6EC: .4byte 0x02022938 +_0801E6F0: + movs r4, #2 + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + beq _0801E6FE + movs r0, #0xa + b _0801E77E +_0801E6FE: + bl sub_0801EA08 + cmp r0, #0 + beq _0801E78C + movs r0, #1 + movs r1, #0 + bl sub_0801F3FC + ldr r0, _0801E718 + ldr r0, [r0] + strh r4, [r0, #6] + b _0801E78C + .align 2, 0 +_0801E718: .4byte 0x02022938 +_0801E71C: + movs r0, #0 + bl sub_0801F454 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801E78C + ldr r0, _0801E730 + ldr r1, [r0] + movs r0, #1 + b _0801E78A + .align 2, 0 +_0801E730: .4byte 0x02022938 +_0801E734: + movs r0, #0 + bl sub_0801F454 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801E78C + movs r0, #0xa + b _0801E77E +_0801E744: + movs r0, #0 + bl sub_0801F454 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801E78C + movs r0, #1 + bl sub_0801E9F8 + b _0801E78C +_0801E758: + movs r0, #0 + bl sub_0801F454 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801E78C + ldr r0, _0801E76C + ldr r1, [r0] + movs r0, #6 + b _0801E78A + .align 2, 0 +_0801E76C: .4byte 0x02022938 +_0801E770: + ldr r0, _0801E794 + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _0801E78C + movs r0, #7 +_0801E77E: + movs r1, #0 + bl sub_0801F3FC + ldr r0, _0801E798 + ldr r1, [r0] + movs r0, #4 +_0801E78A: + strh r0, [r1, #6] +_0801E78C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801E794: .4byte 0x03002360 +_0801E798: .4byte 0x02022938 + thumb_func_end sub_0801E65C + + thumb_func_start sub_0801E79C +sub_0801E79C: @ 0x0801E79C + push {r4, lr} + sub sp, #4 + ldr r1, _0801E7B8 + ldr r0, [r1] + ldrh r0, [r0, #6] + adds r4, r1, #0 + cmp r0, #0xd + bls _0801E7AE + b _0801E9E6 +_0801E7AE: + lsls r0, r0, #2 + ldr r1, _0801E7BC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801E7B8: .4byte 0x02022938 +_0801E7BC: .4byte 0x0801E7C0 +_0801E7C0: @ jump table + .4byte _0801E7F8 @ case 0 + .4byte _0801E812 @ case 1 + .4byte _0801E838 @ case 2 + .4byte _0801E87C @ case 3 + .4byte _0801E8A0 @ case 4 + .4byte _0801E8BC @ case 5 + .4byte _0801E900 @ case 6 + .4byte _0801E928 @ case 7 + .4byte _0801E94C @ case 8 + .4byte _0801E964 @ case 9 + .4byte _0801E988 @ case 10 + .4byte _0801E996 @ case 11 + .4byte _0801E9AC @ case 12 + .4byte _0801E9CC @ case 13 +_0801E7F8: + ldr r1, [r4] + ldrb r0, [r1, #0x18] + cmp r0, #0 + bne _0801E802 + b _0801E9A6 +_0801E802: + movs r0, #7 + movs r1, #0 + bl sub_0801F3FC + ldr r1, [r4] + movs r0, #1 + strh r0, [r1, #6] + b _0801E9E6 +_0801E812: + movs r0, #0 + bl sub_0801F454 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801E820 + b _0801E9E6 +_0801E820: + movs r0, #0xe + movs r1, #0 + bl sub_0801F3FC + ldr r0, _0801E834 + ldr r1, [r0] + movs r0, #2 + strh r0, [r1, #6] + b _0801E9E6 + .align 2, 0 +_0801E834: .4byte 0x02022938 +_0801E838: + bl sub_0801FD30 + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _0801E864 + cmp r1, #0 + bgt _0801E852 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0801E858 + b _0801E9E6 +_0801E852: + cmp r1, #1 + beq _0801E858 + b _0801E9E6 +_0801E858: + ldr r0, _0801E860 + ldr r1, [r0] + b _0801E9A6 + .align 2, 0 +_0801E860: .4byte 0x02022938 +_0801E864: + movs r0, #7 + movs r1, #0 + bl sub_0801F3FC + ldr r0, _0801E878 + ldr r1, [r0] + movs r0, #3 + strh r0, [r1, #6] + b _0801E9E6 + .align 2, 0 +_0801E878: .4byte 0x02022938 +_0801E87C: + movs r0, #0 + bl sub_0801F454 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801E88A + b _0801E9E6 +_0801E88A: + movs r0, #0xf + movs r1, #0 + bl sub_0801F3FC + ldr r0, _0801E89C + ldr r1, [r0] + movs r0, #4 + strh r0, [r1, #6] + b _0801E9E6 + .align 2, 0 +_0801E89C: .4byte 0x02022938 +_0801E8A0: + movs r0, #0 + bl sub_0801F454 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801E8AE + b _0801E9E6 +_0801E8AE: + ldr r0, _0801E8B8 + ldr r1, [r0] + movs r0, #5 + strh r0, [r1, #6] + b _0801E9E6 + .align 2, 0 +_0801E8B8: .4byte 0x02022938 +_0801E8BC: + bl sub_0801FD30 + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _0801E8E8 + cmp r1, #0 + bgt _0801E8D6 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0801E8DC + b _0801E9E6 +_0801E8D6: + cmp r1, #1 + beq _0801E8DC + b _0801E9E6 +_0801E8DC: + ldr r0, _0801E8E4 + ldr r1, [r0] + b _0801E9A6 + .align 2, 0 +_0801E8E4: .4byte 0x02022938 +_0801E8E8: + movs r0, #7 + movs r1, #0 + bl sub_0801F3FC + ldr r0, _0801E8FC + ldr r1, [r0] + movs r0, #6 + strh r0, [r1, #6] + b _0801E9E6 + .align 2, 0 +_0801E8FC: .4byte 0x02022938 +_0801E900: + movs r0, #0 + bl sub_0801F454 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801E9E6 + movs r0, #0x10 + movs r1, #0 + bl sub_0801F3FC + bl sub_0801EC3C + ldr r0, _0801E924 + ldr r1, [r0] + movs r0, #7 + strh r0, [r1, #6] + b _0801E9E6 + .align 2, 0 +_0801E924: .4byte 0x02022938 +_0801E928: + movs r0, #0 + bl sub_0801F454 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801E9E6 + bl SetContinueGameWarpStatusToDynamicWarp + movs r0, #0 + bl TrySavingData + ldr r0, _0801E948 + ldr r1, [r0] + movs r0, #8 + strh r0, [r1, #6] + b _0801E9E6 + .align 2, 0 +_0801E948: .4byte 0x02022938 +_0801E94C: + movs r0, #0x11 + movs r1, #0 + bl sub_0801F3FC + ldr r0, _0801E960 + ldr r1, [r0] + movs r0, #9 + strh r0, [r1, #6] + b _0801E9E6 + .align 2, 0 +_0801E960: .4byte 0x02022938 +_0801E964: + movs r0, #0 + bl sub_0801F454 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801E9E6 + movs r0, #0x37 + bl PlaySE + bl ClearContinueGameWarpStatus + ldr r0, _0801E984 + ldr r1, [r0] + movs r0, #0xa + strh r0, [r1, #6] + b _0801E9E6 + .align 2, 0 +_0801E984: .4byte 0x02022938 +_0801E988: + ldr r1, [r4] + movs r0, #0 + strb r0, [r1, #0x19] + ldr r1, [r4] + movs r0, #0xb + strh r0, [r1, #6] + b _0801E9E6 +_0801E996: + ldr r0, [r4] + ldrb r1, [r0, #0x19] + adds r1, #1 + strb r1, [r0, #0x19] + ldr r1, [r4] + ldrb r0, [r1, #0x19] + cmp r0, #0x78 + bls _0801E9E6 +_0801E9A6: + movs r0, #0xc + strh r0, [r1, #6] + b _0801E9E6 +_0801E9AC: + movs r1, #1 + rsbs r1, r1, #0 + movs r0, #0 + str r0, [sp] + adds r0, r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _0801E9C8 + ldr r1, [r0] + movs r0, #0xd + strh r0, [r1, #6] + b _0801E9E6 + .align 2, 0 +_0801E9C8: .4byte 0x02022938 +_0801E9CC: + ldr r0, _0801E9F0 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0801E9E6 + bl sub_0801F354 + bl sub_0801DC54 + ldr r0, _0801E9F4 + bl SetMainCallback2 +_0801E9E6: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801E9F0: .4byte 0x02037C74 +_0801E9F4: .4byte 0x08085A31 + thumb_func_end sub_0801E79C + + thumb_func_start sub_0801E9F8 +sub_0801E9F8: @ 0x0801E9F8 + ldr r1, _0801EA04 + ldr r1, [r1] + movs r2, #0 + strh r0, [r1, #4] + strh r2, [r1, #6] + bx lr + .align 2, 0 +_0801EA04: .4byte 0x02022938 + thumb_func_end sub_0801E9F8 + + thumb_func_start sub_0801EA08 +sub_0801EA08: @ 0x0801EA08 + push {lr} + ldr r0, _0801EA38 + ldrh r2, [r0, #0x30] + movs r0, #0x40 + ands r0, r2 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0 + bne _0801EA92 + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _0801EA48 + ldr r0, _0801EA3C + ldr r2, [r0] + ldr r1, _0801EA40 + ldrb r0, [r2, #0x10] + adds r0, r0, r1 + ldrb r1, [r2, #0x12] + ldrb r0, [r0] + cmp r1, r0 + bhs _0801EA44 + adds r0, r1, #1 + b _0801EAAC + .align 2, 0 +_0801EA38: .4byte 0x03002360 +_0801EA3C: .4byte 0x02022938 +_0801EA40: .4byte 0x082C508C +_0801EA44: + strb r3, [r2, #0x12] + b _0801EAAE +_0801EA48: + ldr r0, _0801EA6C + ldr r1, [r0] + ldrb r0, [r1, #0x10] + cmp r0, #4 + beq _0801EA8E + movs r0, #0x20 + ands r0, r2 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0 + beq _0801EA76 + ldrb r0, [r1, #0x11] + cmp r0, #0 + beq _0801EA70 + subs r0, #1 + strb r0, [r1, #0x11] + b _0801EAAE + .align 2, 0 +_0801EA6C: .4byte 0x02022938 +_0801EA70: + movs r0, #4 + strb r0, [r1, #0x11] + b _0801EAAE +_0801EA76: + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + beq _0801EA8E + ldrb r0, [r1, #0x11] + cmp r0, #3 + bhi _0801EA8A + adds r0, #1 + strb r0, [r1, #0x11] + b _0801EAAE +_0801EA8A: + strb r3, [r1, #0x11] + b _0801EAAE +_0801EA8E: + movs r0, #0 + b _0801EAB0 +_0801EA92: + ldr r0, _0801EAA0 + ldr r2, [r0] + ldrb r0, [r2, #0x12] + cmp r0, #0 + beq _0801EAA4 + subs r0, #1 + b _0801EAAC + .align 2, 0 +_0801EAA0: .4byte 0x02022938 +_0801EAA4: + ldr r0, _0801EAB4 + ldrb r1, [r2, #0x10] + adds r1, r1, r0 + ldrb r0, [r1] +_0801EAAC: + strb r0, [r2, #0x12] +_0801EAAE: + movs r0, #1 +_0801EAB0: + pop {r1} + bx r1 + .align 2, 0 +_0801EAB4: .4byte 0x082C508C + thumb_func_end sub_0801EA08 + + thumb_func_start sub_0801EAB8 +sub_0801EAB8: @ 0x0801EAB8 + push {r4, r5, r6, lr} + ldr r0, _0801EAF4 + ldr r5, [r0] + ldrb r0, [r5, #0x10] + cmp r0, #4 + beq _0801EAFC + ldr r3, _0801EAF8 + ldrb r1, [r5, #0x12] + lsls r1, r1, #2 + adds r2, r0, #0 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r1, r1, r3 + ldr r4, [r1] + ldrb r0, [r5, #0x11] + cmp r0, #0 + beq _0801EAF0 + adds r1, r0, #0 +_0801EAE0: + ldrb r0, [r4] + cmp r0, #0xf9 + bne _0801EAE8 + adds r4, #1 +_0801EAE8: + adds r4, #1 + subs r1, #1 + cmp r1, #0 + bne _0801EAE0 +_0801EAF0: + movs r5, #1 + b _0801EB12 + .align 2, 0 +_0801EAF4: .4byte 0x02022938 +_0801EAF8: .4byte 0x082C5180 +_0801EAFC: + ldrb r1, [r5, #0x12] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r1 + adds r0, #0xb9 + adds r4, r5, r0 + adds r0, r4, #0 + bl StringLength_Multibyte + adds r5, r0, #0 +_0801EB12: + ldr r6, _0801EB70 + ldr r1, [r6] + ldrb r0, [r1, #0x15] + strb r0, [r1, #0x14] + cmp r4, #0 + beq _0801EB6A + bl sub_0801EC94 + adds r2, r0, #0 + subs r5, #1 + movs r0, #1 + rsbs r0, r0, #0 + cmp r5, r0 + beq _0801EB66 + ldr r0, [r6] + ldrb r0, [r0, #0x15] + cmp r0, #0xe + bhi _0801EB66 + adds r3, r6, #0 +_0801EB38: + ldrb r0, [r4] + cmp r0, #0xf9 + bne _0801EB44 + strb r0, [r2] + adds r4, #1 + adds r2, #1 +_0801EB44: + ldrb r0, [r4] + strb r0, [r2] + adds r4, #1 + adds r2, #1 + ldr r1, [r3] + ldrb r0, [r1, #0x15] + adds r0, #1 + strb r0, [r1, #0x15] + subs r5, #1 + movs r0, #1 + rsbs r0, r0, #0 + cmp r5, r0 + beq _0801EB66 + ldr r0, [r3] + ldrb r0, [r0, #0x15] + cmp r0, #0xe + bls _0801EB38 +_0801EB66: + movs r0, #0xff + strb r0, [r2] +_0801EB6A: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0801EB70: .4byte 0x02022938 + thumb_func_end sub_0801EAB8 + + thumb_func_start sub_0801EB74 +sub_0801EB74: @ 0x0801EB74 + push {r4, lr} + ldr r4, _0801EB9C + ldr r1, [r4] + ldrb r0, [r1, #0x15] + strb r0, [r1, #0x14] + ldr r0, [r4] + ldrb r0, [r0, #0x15] + cmp r0, #0 + beq _0801EB96 + bl sub_0801ECB8 + movs r1, #0xff + strb r1, [r0] + ldr r1, [r4] + ldrb r0, [r1, #0x15] + subs r0, #1 + strb r0, [r1, #0x15] +_0801EB96: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801EB9C: .4byte 0x02022938 + thumb_func_end sub_0801EB74 + + thumb_func_start sub_0801EBA0 +sub_0801EBA0: @ 0x0801EBA0 + push {lr} + ldr r0, _0801EBCC + ldr r1, [r0] + ldrb r0, [r1, #0x15] + subs r0, #1 + strb r0, [r1, #0x14] + bl sub_0801ECB8 + adds r2, r0, #0 + ldrb r0, [r2] + cmp r0, #0xf9 + beq _0801EBC8 + cmp r0, #0xee + bhi _0801EBC8 + ldr r1, _0801EBD0 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _0801EBC8 + strb r0, [r2] +_0801EBC8: + pop {r0} + bx r0 + .align 2, 0 +_0801EBCC: .4byte 0x02022938 +_0801EBD0: .4byte 0x082C5091 + thumb_func_end sub_0801EBA0 + + thumb_func_start sub_0801EBD4 +sub_0801EBD4: @ 0x0801EBD4 + push {lr} + ldr r0, _0801EBE4 + ldr r0, [r0] + ldrb r0, [r0, #0x15] + cmp r0, #0 + bne _0801EBE8 + movs r0, #0 + b _0801EBEA + .align 2, 0 +_0801EBE4: .4byte 0x02022938 +_0801EBE8: + movs r0, #1 +_0801EBEA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0801EBD4 + + thumb_func_start sub_0801EBF0 +sub_0801EBF0: @ 0x0801EBF0 + push {r4, lr} + bl sub_0801EF14 + adds r1, r0, #0 + ldr r4, _0801EC1C + ldr r0, [r4] + ldrb r3, [r0, #0x12] + lsls r2, r3, #2 + adds r2, r2, r3 + lsls r2, r2, #2 + adds r2, r2, r3 + adds r2, #0xb9 + adds r0, r0, r2 + bl StringCopy + ldr r1, [r4] + movs r0, #1 + strb r0, [r1, #0x18] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801EC1C: .4byte 0x02022938 + thumb_func_end sub_0801EBF0 + + thumb_func_start sub_0801EC20 +sub_0801EC20: @ 0x0801EC20 + ldr r1, _0801EC38 + ldr r2, [r1] + movs r0, #0xff + strb r0, [r2, #0x1a] + ldr r2, [r1] + movs r3, #0 + movs r0, #0xf + strb r0, [r2, #0x14] + ldr r0, [r1] + strb r3, [r0, #0x15] + bx lr + .align 2, 0 +_0801EC38: .4byte 0x02022938 + thumb_func_end sub_0801EC20 + + thumb_func_start sub_0801EC3C +sub_0801EC3C: @ 0x0801EC3C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _0801EC70 + mov r8, r0 + ldr r7, _0801EC74 + movs r6, #0xb9 + ldr r5, _0801EC78 + movs r4, #9 +_0801EC4E: + mov r1, r8 + ldr r0, [r1] + adds r0, r0, r5 + ldr r1, [r7] + adds r1, r1, r6 + bl StringCopy + adds r6, #0x15 + adds r5, #0x15 + subs r4, #1 + cmp r4, #0 + bge _0801EC4E + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0801EC70: .4byte 0x03005AEC +_0801EC74: .4byte 0x02022938 +_0801EC78: .4byte 0x00003C88 + thumb_func_end sub_0801EC3C + + thumb_func_start sub_0801EC7C +sub_0801EC7C: @ 0x0801EC7C + ldr r2, _0801EC90 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r0 + adds r1, #0xb9 + ldr r0, [r2] + adds r0, r0, r1 + bx lr + .align 2, 0 +_0801EC90: .4byte 0x02022938 + thumb_func_end sub_0801EC7C + + thumb_func_start sub_0801EC94 +sub_0801EC94: @ 0x0801EC94 + push {lr} + ldr r0, _0801ECB4 + ldr r0, [r0] + adds r1, r0, #0 + adds r1, #0x1a + ldrb r0, [r0, #0x1a] + cmp r0, #0xff + beq _0801ECAC +_0801ECA4: + adds r1, #1 + ldrb r0, [r1] + cmp r0, #0xff + bne _0801ECA4 +_0801ECAC: + adds r0, r1, #0 + pop {r1} + bx r1 + .align 2, 0 +_0801ECB4: .4byte 0x02022938 + thumb_func_end sub_0801EC94 + + thumb_func_start sub_0801ECB8 +sub_0801ECB8: @ 0x0801ECB8 + push {lr} + ldr r0, _0801ECE4 + ldr r0, [r0] + adds r2, r0, #0 + adds r2, #0x1a + adds r1, r2, #0 + ldrb r0, [r0, #0x1a] + cmp r0, #0xff + beq _0801ECDC +_0801ECCA: + adds r2, r1, #0 + ldrb r0, [r2] + cmp r0, #0xf9 + bne _0801ECD4 + adds r1, r2, #1 +_0801ECD4: + adds r1, #1 + ldrb r0, [r1] + cmp r0, #0xff + bne _0801ECCA +_0801ECDC: + adds r0, r2, #0 + pop {r1} + bx r1 + .align 2, 0 +_0801ECE4: .4byte 0x02022938 + thumb_func_end sub_0801ECB8 + + thumb_func_start sub_0801ECE8 +sub_0801ECE8: @ 0x0801ECE8 + push {r4, lr} + ldr r4, _0801ED28 + ldr r0, [r4] + adds r0, #0x1a + bl StringLength_Multibyte + adds r2, r0, #0 + ldr r0, [r4] + adds r1, r0, #0 + adds r1, #0x1a + movs r4, #0 + cmp r2, #0xa + bls _0801ED1C + subs r2, #0xa + movs r3, #0 + cmp r4, r2 + bhs _0801ED1C +_0801ED0A: + ldrb r0, [r1] + cmp r0, #0xf9 + bne _0801ED12 + adds r1, #1 +_0801ED12: + adds r1, #1 + adds r4, #1 + adds r3, #1 + cmp r3, r2 + blo _0801ED0A +_0801ED1C: + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0801ED28: .4byte 0x02022938 + thumb_func_end sub_0801ECE8 + + thumb_func_start sub_0801ED2C +sub_0801ED2C: @ 0x0801ED2C + movs r1, #0 + strb r1, [r0] + bx lr + .align 2, 0 + thumb_func_end sub_0801ED2C + + thumb_func_start sub_0801ED34 +sub_0801ED34: @ 0x0801ED34 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4] + adds r0, r4, #1 + ldr r1, _0801ED54 + ldr r1, [r1] + bl StringCopy + ldr r0, _0801ED58 + ldr r0, [r0] + ldrb r0, [r0, #0x13] + strb r0, [r4, #9] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801ED54: .4byte 0x03005AF0 +_0801ED58: .4byte 0x02022938 + thumb_func_end sub_0801ED34 + + thumb_func_start sub_0801ED5C +sub_0801ED5C: @ 0x0801ED5C + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4] + adds r0, r4, #1 + ldr r1, _0801ED84 + ldr r1, [r1] + bl StringCopy + adds r4, #9 + ldr r0, _0801ED88 + ldr r1, [r0] + adds r1, #0x1a + adds r0, r4, #0 + bl StringCopy + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801ED84: .4byte 0x03005AF0 +_0801ED88: .4byte 0x02022938 + thumb_func_end sub_0801ED5C + + thumb_func_start sub_0801ED8C +sub_0801ED8C: @ 0x0801ED8C + push {r4, lr} + adds r4, r0, #0 + movs r0, #3 + strb r0, [r4] + adds r0, r4, #1 + ldr r1, _0801EDB0 + ldr r1, [r1] + bl StringCopy + ldr r0, _0801EDB4 + ldr r0, [r0] + ldrb r0, [r0, #0x13] + strb r0, [r4, #9] + bl sub_08011540 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801EDB0: .4byte 0x03005AF0 +_0801EDB4: .4byte 0x02022938 + thumb_func_end sub_0801ED8C + + thumb_func_start sub_0801EDB8 +sub_0801EDB8: @ 0x0801EDB8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #4 + strb r0, [r4] + adds r0, r4, #1 + ldr r1, _0801EDD8 + ldr r1, [r1] + bl StringCopy + ldr r0, _0801EDDC + ldr r0, [r0] + ldrb r0, [r0, #0x13] + strb r0, [r4, #9] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801EDD8: .4byte 0x03005AF0 +_0801EDDC: .4byte 0x02022938 + thumb_func_end sub_0801EDB8 + + thumb_func_start sub_0801EDE0 +sub_0801EDE0: @ 0x0801EDE0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #5 + strb r0, [r4] + adds r0, r4, #1 + ldr r1, _0801EE00 + ldr r1, [r1] + bl StringCopy + ldr r0, _0801EE04 + ldr r0, [r0] + ldrb r0, [r0, #0x13] + strb r0, [r4, #9] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801EE00: .4byte 0x03005AF0 +_0801EE04: .4byte 0x02022938 + thumb_func_end sub_0801EDE0 + + thumb_func_start sub_0801EE08 +sub_0801EE08: @ 0x0801EE08 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r4, r1, #0 + ldrb r0, [r4] + adds r1, r0, #0 + adds r5, r4, #1 + adds r4, r5, #0 + adds r4, #8 + cmp r0, #2 + beq _0801EE30 + cmp r0, #2 + bgt _0801EE26 + cmp r0, #1 + beq _0801EE54 + b _0801EEA8 +_0801EE26: + cmp r1, #3 + beq _0801EE7C + cmp r1, #5 + beq _0801EE70 + b _0801EEA8 +_0801EE30: + ldr r0, _0801EE4C + ldr r0, [r0] + ldrb r0, [r0, #0x13] + ldrb r1, [r5, #8] + cmp r0, r1 + beq _0801EEA8 + bl DynamicPlaceholderTextUtil_Reset + movs r0, #0 + adds r1, r5, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + ldr r1, _0801EE50 + b _0801EE96 + .align 2, 0 +_0801EE4C: .4byte 0x02022938 +_0801EE50: .4byte 0x085CC663 +_0801EE54: + adds r0, r6, #0 + adds r1, r5, #0 + movs r2, #0 + movs r3, #5 + bl StringCopyPadded + movs r1, #0xf0 + strb r1, [r0] + adds r0, #1 + adds r1, r4, #0 + bl StringCopy + movs r0, #1 + b _0801EEAA +_0801EE70: + ldr r0, _0801EEA0 + ldr r0, [r0] + adds r0, #0x79 + adds r1, r5, #0 + bl StringCopy +_0801EE7C: + ldr r0, _0801EEA0 + ldr r0, [r0] + ldrb r0, [r0, #0x13] + ldrb r4, [r4] + cmp r0, r4 + beq _0801EEA8 + bl DynamicPlaceholderTextUtil_Reset + movs r0, #0 + adds r1, r5, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + ldr r1, _0801EEA4 +_0801EE96: + adds r0, r6, #0 + bl DynamicPlaceholderTextUtil_ExpandPlaceholders + movs r0, #1 + b _0801EEAA + .align 2, 0 +_0801EEA0: .4byte 0x02022938 +_0801EEA4: .4byte 0x085CC672 +_0801EEA8: + movs r0, #0 +_0801EEAA: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_0801EE08 + + thumb_func_start sub_0801EEB0 +sub_0801EEB0: @ 0x0801EEB0 + ldr r0, _0801EEB8 + ldr r0, [r0] + ldrb r0, [r0, #0x10] + bx lr + .align 2, 0 +_0801EEB8: .4byte 0x02022938 + thumb_func_end sub_0801EEB0 + + thumb_func_start sub_0801EEBC +sub_0801EEBC: @ 0x0801EEBC + ldr r2, _0801EECC + ldr r3, [r2] + ldrb r2, [r3, #0x11] + strb r2, [r0] + ldrb r0, [r3, #0x12] + strb r0, [r1] + bx lr + .align 2, 0 +_0801EECC: .4byte 0x02022938 + thumb_func_end sub_0801EEBC + + thumb_func_start sub_0801EED0 +sub_0801EED0: @ 0x0801EED0 + ldr r0, _0801EED8 + ldr r0, [r0] + adds r0, #0x1a + bx lr + .align 2, 0 +_0801EED8: .4byte 0x02022938 + thumb_func_end sub_0801EED0 + + thumb_func_start sub_0801EEDC +sub_0801EEDC: @ 0x0801EEDC + push {lr} + bl sub_0801EED0 + bl StringLength_Multibyte + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0801EEDC + + thumb_func_start sub_0801EEEC +sub_0801EEEC: @ 0x0801EEEC + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0801EF04 + ldr r0, [r0] + ldrb r3, [r0, #0x15] + ldrb r2, [r0, #0x14] + subs r0, r3, r2 + cmp r0, #0 + bge _0801EF08 + rsbs r0, r0, #0 + str r3, [r4] + b _0801EF0A + .align 2, 0 +_0801EF04: .4byte 0x02022938 +_0801EF08: + str r2, [r4] +_0801EF0A: + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0801EEEC + + thumb_func_start sub_0801EF14 +sub_0801EF14: @ 0x0801EF14 + push {lr} + bl sub_0801ECE8 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _0801EF40 + ldr r0, [r0] + adds r1, r0, #0 + adds r1, #0x1a + cmp r2, #0 + beq _0801EF3A +_0801EF2A: + ldrb r0, [r1] + cmp r0, #0xf9 + bne _0801EF32 + adds r1, #1 +_0801EF32: + adds r1, #1 + subs r2, #1 + cmp r2, #0 + bne _0801EF2A +_0801EF3A: + adds r0, r1, #0 + pop {r1} + bx r1 + .align 2, 0 +_0801EF40: .4byte 0x02022938 + thumb_func_end sub_0801EF14 + + thumb_func_start sub_0801EF44 +sub_0801EF44: @ 0x0801EF44 + push {r4, lr} + bl sub_0801ECE8 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, _0801EF7C + ldr r0, [r0] + adds r1, r0, #0 + adds r1, #0x1a + movs r2, #0 + movs r3, #0 + cmp r2, r4 + bhs _0801EF74 +_0801EF5E: + ldrb r0, [r1] + cmp r0, #0xf9 + bne _0801EF66 + adds r1, #1 +_0801EF66: + adds r1, #1 + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + adds r3, #1 + cmp r3, r4 + blo _0801EF5E +_0801EF74: + adds r0, r2, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0801EF7C: .4byte 0x02022938 + thumb_func_end sub_0801EF44 + + thumb_func_start sub_0801EF80 +sub_0801EF80: @ 0x0801EF80 + ldr r0, _0801EF88 + ldr r0, [r0] + adds r0, #0x39 + bx lr + .align 2, 0 +_0801EF88: .4byte 0x02022938 + thumb_func_end sub_0801EF80 + + thumb_func_start sub_0801EF8C +sub_0801EF8C: @ 0x0801EF8C + ldr r0, _0801EF94 + ldr r0, [r0] + ldrb r0, [r0, #0x16] + bx lr + .align 2, 0 +_0801EF94: .4byte 0x02022938 + thumb_func_end sub_0801EF8C + + thumb_func_start sub_0801EF98 +sub_0801EF98: @ 0x0801EF98 + ldr r0, _0801EFA0 + ldr r0, [r0] + ldrb r0, [r0, #0x15] + bx lr + .align 2, 0 +_0801EFA0: .4byte 0x02022938 + thumb_func_end sub_0801EF98 + + thumb_func_start sub_0801EFA4 +sub_0801EFA4: @ 0x0801EFA4 + push {lr} + bl sub_0801ECB8 + ldrb r1, [r0] + subs r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x4f + bhi _0801EFBA + movs r0, #0 + b _0801EFDC +_0801EFBA: + adds r0, r1, #0 + subs r0, #0x51 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x4f + bhi _0801EFCA + movs r0, #1 + b _0801EFDC +_0801EFCA: + adds r0, r1, #0 + adds r0, #0x45 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x33 + bls _0801EFDA + movs r0, #3 + b _0801EFDC +_0801EFDA: + movs r0, #2 +_0801EFDC: + pop {r1} + bx r1 + thumb_func_end sub_0801EFA4 + + thumb_func_start sub_0801EFE0 +sub_0801EFE0: @ 0x0801EFE0 + ldr r0, _0801EFE8 + ldr r0, [r0] + adds r0, #0x79 + bx lr + .align 2, 0 +_0801EFE8: .4byte 0x02022938 + thumb_func_end sub_0801EFE0 + + thumb_func_start copy_strings_to_sav1 +copy_strings_to_sav1: @ 0x0801EFEC + push {r4, lr} + ldr r4, _0801F070 + ldr r0, [r4] + ldr r1, _0801F074 + adds r0, r0, r1 + ldr r1, _0801F078 + bl StringCopy + ldr r0, [r4] + ldr r1, _0801F07C + adds r0, r0, r1 + ldr r1, _0801F080 + bl StringCopy + ldr r0, [r4] + ldr r1, _0801F084 + adds r0, r0, r1 + ldr r1, _0801F088 + bl StringCopy + ldr r0, [r4] + ldr r1, _0801F08C + adds r0, r0, r1 + ldr r1, _0801F090 + bl StringCopy + ldr r0, [r4] + ldr r1, _0801F094 + adds r0, r0, r1 + ldr r1, _0801F098 + bl StringCopy + ldr r0, [r4] + ldr r1, _0801F09C + adds r0, r0, r1 + ldr r1, _0801F0A0 + bl StringCopy + ldr r0, [r4] + ldr r1, _0801F0A4 + adds r0, r0, r1 + ldr r1, _0801F0A8 + bl StringCopy + ldr r0, [r4] + ldr r1, _0801F0AC + adds r0, r0, r1 + ldr r1, _0801F0B0 + bl StringCopy + ldr r0, [r4] + ldr r1, _0801F0B4 + adds r0, r0, r1 + ldr r1, _0801F0B8 + bl StringCopy + ldr r0, [r4] + ldr r1, _0801F0BC + adds r0, r0, r1 + ldr r1, _0801F0C0 + bl StringCopy + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801F070: .4byte 0x03005AEC +_0801F074: .4byte 0x00003C88 +_0801F078: .4byte 0x085CC769 +_0801F07C: .4byte 0x00003C9D +_0801F080: .4byte 0x085CC76F +_0801F084: .4byte 0x00003CB2 +_0801F088: .4byte 0x085CC774 +_0801F08C: .4byte 0x00003CC7 +_0801F090: .4byte 0x085CC779 +_0801F094: .4byte 0x00003CDC +_0801F098: .4byte 0x085CC77E +_0801F09C: .4byte 0x00003CF1 +_0801F0A0: .4byte 0x085CC783 +_0801F0A4: .4byte 0x00003D06 +_0801F0A8: .4byte 0x085CC787 +_0801F0AC: .4byte 0x00003D1B +_0801F0B0: .4byte 0x085CC78C +_0801F0B4: .4byte 0x00003D30 +_0801F0B8: .4byte 0x085CC792 +_0801F0BC: .4byte 0x00003D45 +_0801F0C0: .4byte 0x085CC798 + thumb_func_end copy_strings_to_sav1 + + thumb_func_start sub_0801F0C4 +sub_0801F0C4: @ 0x0801F0C4 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + ldr r1, _0801F0E8 + adds r4, r0, r1 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #7 + bls _0801F0DE + b _0801F2D4 +_0801F0DE: + lsls r0, r0, #2 + ldr r1, _0801F0EC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801F0E8: .4byte 0x03005B68 +_0801F0EC: .4byte 0x0801F0F0 +_0801F0F0: @ jump table + .4byte _0801F110 @ case 0 + .4byte _0801F11E @ case 1 + .4byte _0801F2B8 @ case 2 + .4byte _0801F16C @ case 3 + .4byte _0801F258 @ case 4 + .4byte _0801F290 @ case 5 + .4byte _0801F2A4 @ case 6 + .4byte _0801F248 @ case 7 +_0801F110: + ldr r0, _0801F144 + ldrb r0, [r0] + cmp r0, #0 + bne _0801F11A + b _0801F2AC +_0801F11A: + movs r0, #1 + strh r0, [r4] +_0801F11E: + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r2, r0, #0 + strh r0, [r4, #8] + ldr r3, _0801F148 + ldr r0, [r3] + ldrb r1, [r0, #0xd] + movs r5, #8 + ldrsh r0, [r4, r5] + cmp r1, r0 + beq _0801F14C + movs r0, #2 + strh r0, [r4] + ldr r0, [r3] + strb r2, [r0, #0xd] + b _0801F2D4 + .align 2, 0 +_0801F144: .4byte 0x030031C4 +_0801F148: .4byte 0x02022938 +_0801F14C: + bl GetBlockReceivedStatus + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #6] + cmp r0, #0 + bne _0801F164 + bl GetRfuRecvQueueLength + cmp r0, #0 + beq _0801F164 + b _0801F2D4 +_0801F164: + movs r0, #0 + strh r0, [r4, #2] + movs r0, #3 + strh r0, [r4] +_0801F16C: + movs r1, #2 + ldrsh r0, [r4, r1] + cmp r0, #4 + bgt _0801F1A6 + movs r2, #6 + ldrsh r0, [r4, r2] + movs r3, #2 + ldrsh r1, [r4, r3] + asrs r0, r1 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0801F1A6 + movs r2, #1 +_0801F188: + ldrh r0, [r4, #2] + adds r0, #1 + strh r0, [r4, #2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + bgt _0801F1A6 + movs r5, #6 + ldrsh r0, [r4, r5] + movs r3, #2 + ldrsh r1, [r4, r3] + asrs r0, r1 + ands r0, r2 + cmp r0, #0 + beq _0801F188 +_0801F1A6: + ldrh r1, [r4, #2] + movs r5, #2 + ldrsh r0, [r4, r5] + cmp r0, #5 + bne _0801F1B2 + b _0801F2D0 +_0801F1B2: + strh r1, [r4, #4] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + bl ResetBlockReceivedFlag + movs r1, #2 + ldrsh r0, [r4, r1] + lsls r0, r0, #8 + ldr r1, _0801F1D8 + adds r0, r0, r1 + ldrb r0, [r0] + subs r0, #1 + cmp r0, #4 + bhi _0801F1F4 + lsls r0, r0, #2 + ldr r1, _0801F1DC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801F1D8: .4byte 0x0202207C +_0801F1DC: .4byte 0x0801F1E0 +_0801F1E0: @ jump table + .4byte _0801F1F4 @ case 0 + .4byte _0801F1F8 @ case 1 + .4byte _0801F1FC @ case 2 + .4byte _0801F200 @ case 3 + .4byte _0801F204 @ case 4 +_0801F1F4: + movs r0, #3 + b _0801F206 +_0801F1F8: + movs r0, #3 + b _0801F206 +_0801F1FC: + movs r0, #4 + b _0801F206 +_0801F200: + movs r0, #5 + b _0801F206 +_0801F204: + movs r0, #6 +_0801F206: + strh r0, [r4, #0xa] + ldr r5, _0801F234 + ldr r0, [r5] + adds r0, #0x39 + movs r2, #2 + ldrsh r1, [r4, r2] + lsls r1, r1, #8 + ldr r2, _0801F238 + adds r1, r1, r2 + bl sub_0801EE08 + cmp r0, #0 + beq _0801F23C + ldr r0, [r5] + ldrh r1, [r4, #2] + strb r1, [r0, #0x16] + movs r0, #0xc + movs r1, #2 + bl sub_0801F3FC + movs r0, #7 + b _0801F23E + .align 2, 0 +_0801F234: .4byte 0x02022938 +_0801F238: .4byte 0x0202207C +_0801F23C: + ldrh r0, [r4, #0xa] +_0801F23E: + strh r0, [r4] + ldrh r0, [r4, #2] + adds r0, #1 + strh r0, [r4, #2] + b _0801F2D4 +_0801F248: + movs r0, #2 + bl sub_0801F454 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801F2D4 + ldrh r0, [r4, #0xa] + b _0801F2D2 +_0801F258: + ldr r6, _0801F280 + ldr r0, [r6] + ldrb r0, [r0, #0x13] + cmp r0, #0 + bne _0801F28C + movs r3, #4 + ldrsh r0, [r4, r3] + cmp r0, #0 + beq _0801F28C + bl GetLinkPlayerCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _0801F284 + bl sub_0800FFB0 + ldr r1, [r6] + movs r0, #1 + b _0801F2AA + .align 2, 0 +_0801F280: .4byte 0x02022938 +_0801F284: + movs r5, #4 + ldrsh r0, [r4, r5] + bl sub_080118CC +_0801F28C: + movs r0, #3 + b _0801F2D2 +_0801F290: + ldr r0, _0801F2A0 + ldr r1, [r0] + ldrb r0, [r1, #0x13] + cmp r0, #0 + beq _0801F2AC + movs r0, #2 + b _0801F2AA + .align 2, 0 +_0801F2A0: .4byte 0x02022938 +_0801F2A4: + ldr r0, _0801F2B4 + ldr r1, [r0] + movs r0, #3 +_0801F2AA: + strb r0, [r1, #0x17] +_0801F2AC: + adds r0, r5, #0 + bl DestroyTask + b _0801F2D4 + .align 2, 0 +_0801F2B4: .4byte 0x02022938 +_0801F2B8: + bl GetRfuRecvQueueLength + cmp r0, #0 + bne _0801F2D4 + ldr r0, _0801F2DC + ldr r1, [r0] + ldrb r0, [r1, #0x13] + cmp r0, #0 + bne _0801F2D0 + ldrb r0, [r1, #0xd] + bl sub_08010BA8 +_0801F2D0: + movs r0, #1 +_0801F2D2: + strh r0, [r4] +_0801F2D4: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0801F2DC: .4byte 0x02022938 + thumb_func_end sub_0801F0C4 + + thumb_func_start sub_0801F2E0 +sub_0801F2E0: @ 0x0801F2E0 + push {r4, lr} + ldr r4, _0801F32C + ldr r0, _0801F330 + bl Alloc + str r0, [r4] + cmp r0, #0 + beq _0801F33C + bl sub_080205AC + cmp r0, #0 + beq _0801F33C + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _0801F334 + movs r0, #0 + movs r2, #4 + bl InitBgsFromTemplates + ldr r0, _0801F338 + bl InitWindows + bl reset_temp_tile_data_buffers + bl sub_0802048C + ldr r0, [r4] + bl sub_0801F384 + bl sub_0801F390 + movs r0, #0 + movs r1, #0 + bl sub_0801F3FC + movs r0, #1 + b _0801F33E + .align 2, 0 +_0801F32C: .4byte 0x0202293C +_0801F330: .4byte 0x00002168 +_0801F334: .4byte 0x082C56F4 +_0801F338: .4byte 0x082C5704 +_0801F33C: + movs r0, #0 +_0801F33E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0801F2E0 + + thumb_func_start sub_0801F344 +sub_0801F344: @ 0x0801F344 + push {lr} + movs r0, #0 + bl sub_0801F454 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + thumb_func_end sub_0801F344 + + thumb_func_start sub_0801F354 +sub_0801F354: @ 0x0801F354 + push {r4, lr} + bl sub_080205EC + ldr r4, _0801F37C + ldr r0, [r4] + cmp r0, #0 + beq _0801F36A + bl Free + movs r0, #0 + str r0, [r4] +_0801F36A: + bl FreeAllWindowBuffers + ldr r1, _0801F380 + movs r0, #3 + strb r0, [r1, #0x15] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801F37C: .4byte 0x0202293C +_0801F380: .4byte 0x020397C8 + thumb_func_end sub_0801F354 + + thumb_func_start sub_0801F384 +sub_0801F384: @ 0x0801F384 + movs r2, #0 + movs r1, #0xff + strh r1, [r0, #0x18] + strh r1, [r0, #0x1e] + strh r2, [r0, #0x1a] + bx lr + thumb_func_end sub_0801F384 + + thumb_func_start sub_0801F390 +sub_0801F390: @ 0x0801F390 + push {r4, r5, lr} + ldr r1, _0801F3C0 + ldr r0, [r1] + cmp r0, #0 + beq _0801F3B8 + movs r2, #0 + adds r4, r1, #0 + ldr r5, _0801F3C4 + movs r3, #0 +_0801F3A2: + ldr r0, [r4] + lsls r1, r2, #3 + adds r0, r0, r1 + str r5, [r0] + strb r3, [r0, #4] + ldr r0, [r4] + adds r0, r0, r1 + strb r3, [r0, #5] + adds r2, #1 + cmp r2, #2 + ble _0801F3A2 +_0801F3B8: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0801F3C0: .4byte 0x0202293C +_0801F3C4: .4byte 0x0801FBE9 + thumb_func_end sub_0801F390 + + thumb_func_start sub_0801F3C8 +sub_0801F3C8: @ 0x0801F3C8 + push {r4, r5, r6, lr} + ldr r1, _0801F3F8 + ldr r0, [r1] + cmp r0, #0 + beq _0801F3F0 + movs r5, #0 + adds r6, r1, #0 +_0801F3D6: + ldr r1, [r6] + lsls r4, r5, #3 + adds r1, r1, r4 + adds r0, r1, #5 + ldr r1, [r1] + bl _call_via_r1 + ldr r1, [r6] + adds r1, r1, r4 + strb r0, [r1, #4] + adds r5, #1 + cmp r5, #2 + ble _0801F3D6 +_0801F3F0: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0801F3F8: .4byte 0x0202293C + thumb_func_end sub_0801F3C8 + + thumb_func_start sub_0801F3FC +sub_0801F3FC: @ 0x0801F3FC + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + lsls r1, r1, #0x18 + ldr r3, _0801F438 + ldr r0, [r3] + lsrs r1, r1, #0x15 + adds r0, r0, r1 + ldr r2, _0801F43C + str r2, [r0] + movs r4, #0 + adds r5, r3, #0 + adds r3, r1, #0 + mov ip, r4 + ldr r1, _0801F440 + movs r7, #1 + adds r2, r1, #4 +_0801F41E: + ldrh r0, [r1] + cmp r0, r6 + bne _0801F444 + ldr r1, [r5] + adds r1, r1, r3 + ldr r0, [r2] + str r0, [r1] + strb r7, [r1, #4] + ldr r0, [r5] + adds r0, r0, r3 + mov r1, ip + strb r1, [r0, #5] + b _0801F44E + .align 2, 0 +_0801F438: .4byte 0x0202293C +_0801F43C: .4byte 0x0801FBE9 +_0801F440: .4byte 0x082C572C +_0801F444: + adds r1, #8 + adds r2, #8 + adds r4, #1 + cmp r4, #0x14 + bls _0801F41E +_0801F44E: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_0801F3FC + + thumb_func_start sub_0801F454 +sub_0801F454: @ 0x0801F454 + lsls r0, r0, #0x18 + ldr r1, _0801F464 + ldr r1, [r1] + lsrs r0, r0, #0x15 + adds r1, r1, r0 + ldrb r0, [r1, #4] + bx lr + .align 2, 0 +_0801F464: .4byte 0x0202293C + thumb_func_end sub_0801F454 + + thumb_func_start sub_0801F468 +sub_0801F468: @ 0x0801F468 + push {r4, lr} + adds r4, r0, #0 + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0801F4FE + ldrb r0, [r4] + cmp r0, #6 + bhi _0801F4F4 + lsls r0, r0, #2 + ldr r1, _0801F488 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801F488: .4byte 0x0801F48C +_0801F48C: @ jump table + .4byte _0801F4A8 @ case 0 + .4byte _0801F4B2 @ case 1 + .4byte _0801F4B8 @ case 2 + .4byte _0801F4BE @ case 3 + .4byte _0801F4C4 @ case 4 + .4byte _0801F4CA @ case 5 + .4byte _0801F4DC @ case 6 +_0801F4A8: + bl sub_0802019C + bl sub_08020254 + b _0801F4F8 +_0801F4B2: + bl sub_080202A0 + b _0801F4F8 +_0801F4B8: + bl sub_080202D0 + b _0801F4F8 +_0801F4BE: + bl sub_08020320 + b _0801F4F8 +_0801F4C4: + bl sub_0802039C + b _0801F4F8 +_0801F4CA: + bl sub_080203C0 + bl sub_080203EC + bl sub_0802045C + bl sub_08020404 + b _0801F4F8 +_0801F4DC: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801F4F8 + bl sub_08020604 + bl sub_08020780 + bl sub_08020838 + b _0801F4F8 +_0801F4F4: + movs r0, #0 + b _0801F500 +_0801F4F8: + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] +_0801F4FE: + movs r0, #1 +_0801F500: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0801F468 + + thumb_func_start sub_0801F508 +sub_0801F508: @ 0x0801F508 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4] + cmp r0, #0 + beq _0801F518 + cmp r0, #1 + beq _0801F526 + b _0801F530 +_0801F518: + bl sub_080200D8 + movs r0, #3 + movs r1, #3 + bl CopyWindowToVram + b _0801F530 +_0801F526: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0801F538 +_0801F530: + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + movs r0, #1 +_0801F538: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0801F508 + + thumb_func_start sub_0801F540 +sub_0801F540: @ 0x0801F540 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4] + cmp r0, #0 + beq _0801F550 + cmp r0, #1 + beq _0801F55E + b _0801F568 +_0801F550: + bl sub_0802012C + movs r0, #3 + movs r1, #3 + bl CopyWindowToVram + b _0801F568 +_0801F55E: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0801F570 +_0801F568: + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + movs r0, #1 +_0801F570: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0801F540 + + thumb_func_start sub_0801F578 +sub_0801F578: @ 0x0801F578 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4] + cmp r0, #1 + beq _0801F5AE + cmp r0, #1 + bgt _0801F58C + cmp r0, #0 + beq _0801F592 + b _0801F5D4 +_0801F58C: + cmp r0, #2 + beq _0801F5BA + b _0801F5D4 +_0801F592: + movs r0, #1 + bl sub_08020638 + bl sub_08020048 + cmp r0, #0 + bne _0801F5DA + bl sub_0801FF88 + movs r0, #2 + movs r1, #2 + bl CopyWindowToVram + b _0801F5D4 +_0801F5AE: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0801F5D4 + b _0801F5DA +_0801F5BA: + bl sub_08020090 + cmp r0, #0 + bne _0801F5DA + bl sub_08020658 + movs r0, #0 + bl sub_08020638 + bl sub_08020898 + movs r0, #0 + b _0801F5DC +_0801F5D4: + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] +_0801F5DA: + movs r0, #1 +_0801F5DC: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0801F578 + + thumb_func_start sub_0801F5E4 +sub_0801F5E4: @ 0x0801F5E4 + push {lr} + bl sub_08020658 + movs r0, #0 + pop {r1} + bx r1 + thumb_func_end sub_0801F5E4 + + thumb_func_start sub_0801F5F0 +sub_0801F5F0: @ 0x0801F5F0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4] + cmp r0, #0 + beq _0801F600 + cmp r0, #1 + beq _0801F624 + b _0801F62E +_0801F600: + movs r0, #0 + movs r1, #0 + bl sub_0801FD40 + movs r0, #0x17 + movs r1, #0xb + movs r2, #1 + bl sub_0801FBEC + ldr r0, _0801F620 + ldr r0, [r0] + ldrb r0, [r0, #0x1e] + movs r1, #3 + bl CopyWindowToVram + b _0801F62E + .align 2, 0 +_0801F620: .4byte 0x0202293C +_0801F624: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0801F636 +_0801F62E: + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + movs r0, #1 +_0801F636: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0801F5F0 + + thumb_func_start sub_0801F63C +sub_0801F63C: @ 0x0801F63C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4] + cmp r0, #0 + beq _0801F64C + cmp r0, #1 + beq _0801F65C + b _0801F672 +_0801F64C: + bl sub_0801FEBC + bl sub_0801FCE4 + movs r0, #0 + bl CopyBgTilemapBufferToVram + b _0801F672 +_0801F65C: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801F678 + bl sub_0801FEF0 + bl sub_0801FD0C + movs r0, #0 + b _0801F67A +_0801F672: + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] +_0801F678: + movs r0, #1 +_0801F67A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0801F63C + + thumb_func_start sub_0801F680 +sub_0801F680: @ 0x0801F680 + push {r4, lr} + sub sp, #0xc + adds r4, r0, #0 + ldrb r0, [r4] + cmp r0, #0 + beq _0801F692 + cmp r0, #1 + beq _0801F6CA + b _0801F6DC +_0801F692: + add r1, sp, #8 + add r0, sp, #4 + bl sub_0801EEEC + ldr r0, [sp, #4] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, [sp, #8] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r2, #0 + bl sub_0801FF14 + bl sub_0801EED0 + adds r1, r0, #0 + movs r0, #2 + str r0, [sp] + movs r0, #0 + movs r2, #3 + movs r3, #1 + bl sub_0801FF40 + movs r0, #1 + movs r1, #2 + bl CopyWindowToVram + b _0801F6DC +_0801F6CA: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801F6E2 + bl sub_08020898 + movs r0, #0 + b _0801F6E4 +_0801F6DC: + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] +_0801F6E2: + movs r0, #1 +_0801F6E4: + add sp, #0xc + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_0801F680 + + thumb_func_start sub_0801F6EC +sub_0801F6EC: @ 0x0801F6EC + push {r4, r5, r6, lr} + sub sp, #4 + adds r6, r0, #0 + ldrb r0, [r6] + cmp r0, #1 + beq _0801F748 + cmp r0, #1 + bgt _0801F702 + cmp r0, #0 + beq _0801F70C + b _0801F782 +_0801F702: + cmp r0, #2 + beq _0801F76C + cmp r0, #3 + beq _0801F77E + b _0801F782 +_0801F70C: + bl sub_0801EF44 + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + bl sub_0801EF14 + adds r5, r0, #0 + bl StringLength_Multibyte + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + movs r2, #0x66 + bl sub_0801FF14 + movs r0, #5 + str r0, [sp] + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + movs r3, #4 + bl sub_0801FF40 + movs r0, #1 + movs r1, #2 + bl CopyWindowToVram + b _0801F782 +_0801F748: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801F788 + movs r0, #1 + movs r1, #0x10 + bl sub_0801FD40 + ldr r0, _0801F768 + ldr r0, [r0] + ldrb r0, [r0, #0x1e] + movs r1, #3 + bl CopyWindowToVram + b _0801F782 + .align 2, 0 +_0801F768: .4byte 0x0202293C +_0801F76C: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801F788 + movs r0, #1 + bl sub_080206C4 + b _0801F782 +_0801F77E: + movs r0, #0 + b _0801F78A +_0801F782: + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] +_0801F788: + movs r0, #1 +_0801F78A: + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0801F6EC + + thumb_func_start sub_0801F794 +sub_0801F794: @ 0x0801F794 + push {r4, r5, r6, lr} + sub sp, #4 + adds r6, r0, #0 + ldrb r0, [r6] + cmp r0, #1 + beq _0801F7F0 + cmp r0, #1 + bgt _0801F7AA + cmp r0, #0 + beq _0801F7B4 + b _0801F82A +_0801F7AA: + cmp r0, #2 + beq _0801F810 + cmp r0, #3 + beq _0801F826 + b _0801F82A +_0801F7B4: + bl sub_0801EF44 + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + bl sub_0801EF14 + adds r5, r0, #0 + bl StringLength_Multibyte + adds r1, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + movs r2, #0 + bl sub_0801FF14 + movs r0, #2 + str r0, [sp] + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #3 + movs r3, #1 + bl sub_0801FF40 + movs r0, #1 + movs r1, #2 + bl CopyWindowToVram + b _0801F82A +_0801F7F0: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801F830 + bl sub_0801FEBC + ldr r0, _0801F80C + ldr r0, [r0] + ldrb r0, [r0, #0x1e] + movs r1, #3 + bl CopyWindowToVram + b _0801F82A + .align 2, 0 +_0801F80C: .4byte 0x0202293C +_0801F810: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801F830 + movs r0, #0 + bl sub_080206C4 + bl sub_0801FEF0 + b _0801F82A +_0801F826: + movs r0, #0 + b _0801F832 +_0801F82A: + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] +_0801F830: + movs r0, #1 +_0801F832: + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0801F794 + + thumb_func_start sub_0801F83C +sub_0801F83C: @ 0x0801F83C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4] + cmp r0, #0 + beq _0801F84C + cmp r0, #1 + beq _0801F860 + b _0801F86E +_0801F84C: + bl sub_0801FF88 + movs r0, #2 + movs r1, #2 + bl CopyWindowToVram + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + b _0801F86E +_0801F860: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801F86E + movs r0, #0 + b _0801F870 +_0801F86E: + movs r0, #1 +_0801F870: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0801F83C + + thumb_func_start sub_0801F878 +sub_0801F878: @ 0x0801F878 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r0, [r6] + cmp r0, #4 + bhi _0801F94A + lsls r0, r0, #2 + ldr r1, _0801F88C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801F88C: .4byte 0x0801F890 +_0801F890: @ jump table + .4byte _0801F8A4 @ case 0 + .4byte _0801F8D0 @ case 1 + .4byte _0801F900 @ case 2 + .4byte _0801F924 @ case 3 + .4byte _0801F8EE @ case 4 +_0801F8A4: + ldr r0, _0801F8CC + ldr r0, [r0] + ldrh r5, [r0, #0x1a] + bl sub_0801EF80 + adds r4, r0, #0 + bl sub_0801EF8C + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08020140 + movs r0, #0 + movs r1, #2 + bl CopyWindowToVram + b _0801F944 + .align 2, 0 +_0801F8CC: .4byte 0x0202293C +_0801F8D0: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _0801F94A + ldr r0, _0801F8F4 + ldr r1, [r0] + ldrh r0, [r1, #0x1a] + cmp r0, #0xa + bhi _0801F8F8 + adds r0, #1 + strh r0, [r1, #0x1a] + movs r0, #4 + strb r0, [r6] +_0801F8EE: + movs r0, #0 + b _0801F94C + .align 2, 0 +_0801F8F4: .4byte 0x0202293C +_0801F8F8: + strh r2, [r1, #0x1c] + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] +_0801F900: + movs r0, #0 + movs r1, #0 + movs r2, #4 + movs r3, #0x11 + bl ScrollWindow + movs r0, #0 + movs r1, #2 + bl CopyWindowToVram + ldr r0, _0801F940 + ldr r1, [r0] + ldrh r0, [r1, #0x1c] + adds r0, #1 + strh r0, [r1, #0x1c] + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] +_0801F924: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801F94A + ldr r0, _0801F940 + ldr r0, [r0] + ldrh r0, [r0, #0x1c] + cmp r0, #2 + bhi _0801F944 + ldrb r0, [r6] + subs r0, #1 + b _0801F948 + .align 2, 0 +_0801F940: .4byte 0x0202293C +_0801F944: + ldrb r0, [r6] + adds r0, #1 +_0801F948: + strb r0, [r6] +_0801F94A: + movs r0, #1 +_0801F94C: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0801F878 + + thumb_func_start sub_0801F954 +sub_0801F954: @ 0x0801F954 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4] + cmp r0, #0 + beq _0801F964 + cmp r0, #1 + beq _0801F970 + b _0801F976 +_0801F964: + bl sub_080206F8 + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + b _0801F976 +_0801F970: + bl sub_08020734 + b _0801F978 +_0801F976: + movs r0, #1 +_0801F978: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0801F954 + + thumb_func_start sub_0801F980 +sub_0801F980: @ 0x0801F980 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4] + cmp r0, #0 + beq _0801F990 + cmp r0, #1 + beq _0801F9B0 + b _0801F9BA +_0801F990: + movs r0, #3 + movs r1, #0x10 + bl sub_0801FD40 + ldr r0, _0801F9AC + ldr r0, [r0] + ldrb r0, [r0, #0x1e] + movs r1, #3 + bl CopyWindowToVram + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + b _0801F9BA + .align 2, 0 +_0801F9AC: .4byte 0x0202293C +_0801F9B0: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0801F9BC +_0801F9BA: + movs r0, #1 +_0801F9BC: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0801F980 + + thumb_func_start sub_0801F9C4 +sub_0801F9C4: @ 0x0801F9C4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4] + cmp r0, #0 + beq _0801F9D4 + cmp r0, #1 + beq _0801F9F4 + b _0801F9FE +_0801F9D4: + movs r0, #4 + movs r1, #0 + bl sub_0801FD40 + ldr r0, _0801F9F0 + ldr r0, [r0] + ldrb r0, [r0, #0x1e] + movs r1, #3 + bl CopyWindowToVram + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + b _0801F9FE + .align 2, 0 +_0801F9F0: .4byte 0x0202293C +_0801F9F4: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0801FA00 +_0801F9FE: + movs r0, #1 +_0801FA00: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0801F9C4 + + thumb_func_start sub_0801FA08 +sub_0801FA08: @ 0x0801FA08 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4] + cmp r0, #0 + beq _0801FA18 + cmp r0, #1 + beq _0801FA48 + b _0801FA52 +_0801FA18: + bl DynamicPlaceholderTextUtil_Reset + bl sub_0801EFE0 + adds r1, r0, #0 + movs r0, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + movs r0, #5 + movs r1, #0 + bl sub_0801FD40 + ldr r0, _0801FA44 + ldr r0, [r0] + ldrb r0, [r0, #0x1e] + movs r1, #3 + bl CopyWindowToVram + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + b _0801FA52 + .align 2, 0 +_0801FA44: .4byte 0x0202293C +_0801FA48: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0801FA54 +_0801FA52: + movs r0, #1 +_0801FA54: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0801FA08 + + thumb_func_start sub_0801FA5C +sub_0801FA5C: @ 0x0801FA5C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4] + cmp r0, #0 + beq _0801FA6C + cmp r0, #1 + beq _0801FA98 + b _0801FAA2 +_0801FA6C: + movs r0, #6 + movs r1, #0 + bl sub_0801FD40 + movs r0, #0x17 + movs r1, #0xa + movs r2, #1 + bl sub_0801FBEC + ldr r0, _0801FA94 + ldr r0, [r0] + ldrb r0, [r0, #0x1e] + movs r1, #3 + bl CopyWindowToVram + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + b _0801FAA2 + .align 2, 0 +_0801FA94: .4byte 0x0202293C +_0801FA98: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0801FAA4 +_0801FAA2: + movs r0, #1 +_0801FAA4: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0801FA5C + + thumb_func_start sub_0801FAAC +sub_0801FAAC: @ 0x0801FAAC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4] + cmp r0, #0 + beq _0801FABC + cmp r0, #1 + beq _0801FAE8 + b _0801FAF2 +_0801FABC: + movs r0, #7 + movs r1, #0 + bl sub_0801FD40 + movs r0, #0x17 + movs r1, #0xa + movs r2, #1 + bl sub_0801FBEC + ldr r0, _0801FAE4 + ldr r0, [r0] + ldrb r0, [r0, #0x1e] + movs r1, #3 + bl CopyWindowToVram + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + b _0801FAF2 + .align 2, 0 +_0801FAE4: .4byte 0x0202293C +_0801FAE8: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0801FAF4 +_0801FAF2: + movs r0, #1 +_0801FAF4: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0801FAAC + + thumb_func_start sub_0801FAFC +sub_0801FAFC: @ 0x0801FAFC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4] + cmp r0, #0 + beq _0801FB0C + cmp r0, #1 + beq _0801FB2C + b _0801FB36 +_0801FB0C: + movs r0, #8 + movs r1, #0 + bl sub_0801FD40 + ldr r0, _0801FB28 + ldr r0, [r0] + ldrb r0, [r0, #0x1e] + movs r1, #3 + bl CopyWindowToVram + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + b _0801FB36 + .align 2, 0 +_0801FB28: .4byte 0x0202293C +_0801FB2C: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0801FB38 +_0801FB36: + movs r0, #1 +_0801FB38: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0801FAFC + + thumb_func_start sub_0801FB40 +sub_0801FB40: @ 0x0801FB40 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4] + cmp r0, #0 + beq _0801FB50 + cmp r0, #1 + beq _0801FB84 + b _0801FB8E +_0801FB50: + bl DynamicPlaceholderTextUtil_Reset + ldr r0, _0801FB7C + ldr r1, [r0] + movs r0, #0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + movs r0, #9 + movs r1, #0 + bl sub_0801FD40 + ldr r0, _0801FB80 + ldr r0, [r0] + ldrb r0, [r0, #0x1e] + movs r1, #3 + bl CopyWindowToVram + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + b _0801FB8E + .align 2, 0 +_0801FB7C: .4byte 0x03005AF0 +_0801FB80: .4byte 0x0202293C +_0801FB84: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0801FB90 +_0801FB8E: + movs r0, #1 +_0801FB90: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0801FB40 + + thumb_func_start sub_0801FB98 +sub_0801FB98: @ 0x0801FB98 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4] + cmp r0, #0 + beq _0801FBA8 + cmp r0, #1 + beq _0801FBD4 + b _0801FBDE +_0801FBA8: + movs r0, #0xa + movs r1, #0 + bl sub_0801FD40 + movs r0, #0x17 + movs r1, #0xa + movs r2, #1 + bl sub_0801FBEC + ldr r0, _0801FBD0 + ldr r0, [r0] + ldrb r0, [r0, #0x1e] + movs r1, #3 + bl CopyWindowToVram + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + b _0801FBDE + .align 2, 0 +_0801FBD0: .4byte 0x0202293C +_0801FBD4: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _0801FBE0 +_0801FBDE: + movs r0, #1 +_0801FBE0: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0801FB98 + + thumb_func_start sub_0801FBE8 +sub_0801FBE8: @ 0x0801FBE8 + movs r0, #0 + bx lr + thumb_func_end sub_0801FBE8 + + thumb_func_start sub_0801FBEC +sub_0801FBEC: @ 0x0801FBEC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + ldr r4, _0801FCC4 + ldr r2, [sp, #0xc] + ands r2, r4 + lsrs r0, r0, #0x10 + ldr r3, _0801FCC8 + ands r2, r3 + orrs r2, r0 + lsrs r1, r1, #8 + ldr r0, _0801FCCC + ands r2, r0 + orrs r2, r1 + ldr r0, _0801FCD0 + ands r2, r0 + movs r0, #0xc0 + lsls r0, r0, #0x13 + orrs r2, r0 + str r2, [sp, #0xc] + ldr r0, [sp, #0x10] + ands r0, r4 + movs r1, #4 + orrs r0, r1 + ands r0, r3 + movs r1, #0xe0 + lsls r1, r1, #4 + orrs r0, r1 + ldr r1, _0801FCD4 + ands r0, r1 + movs r1, #0xb2 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [sp, #0x10] + add r0, sp, #0xc + bl AddWindow + adds r1, r0, #0 + ldr r6, _0801FCD8 + ldr r0, [r6] + movs r7, #0 + strh r1, [r0, #0x18] + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xff + beq _0801FCB8 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r0, [r6] + ldrb r0, [r0, #0x18] + bl PutWindowTilemap + ldr r0, [r6] + ldrb r0, [r0, #0x18] + ldr r2, _0801FCDC + movs r5, #2 + str r5, [sp] + movs r4, #0xff + str r4, [sp, #4] + str r7, [sp, #8] + movs r1, #1 + movs r3, #0xa + bl AddTextPrinterParameterized + ldr r0, [r6] + ldrb r0, [r0, #0x18] + ldr r2, _0801FCE0 + movs r1, #0x10 + str r1, [sp] + str r4, [sp, #4] + str r7, [sp, #8] + movs r1, #1 + movs r3, #0xa + bl AddTextPrinterParameterized + ldr r0, [r6] + ldrb r0, [r0, #0x18] + movs r1, #1 + movs r2, #0xd + bl DrawTextBorderOuter + ldr r0, [r6] + ldrb r0, [r0, #0x18] + movs r1, #0xe + str r1, [sp] + str r5, [sp, #4] + mov r1, r8 + str r1, [sp, #8] + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl sub_081984B0 +_0801FCB8: + add sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0801FCC4: .4byte 0xFFFFFF00 +_0801FCC8: .4byte 0xFFFF00FF +_0801FCCC: .4byte 0xFF00FFFF +_0801FCD0: .4byte 0x00FFFFFF +_0801FCD4: .4byte 0x0000FFFF +_0801FCD8: .4byte 0x0202293C +_0801FCDC: .4byte 0x085CAAD8 +_0801FCE0: .4byte 0x085CAADB + thumb_func_end sub_0801FBEC + + thumb_func_start sub_0801FCE4 +sub_0801FCE4: @ 0x0801FCE4 + push {r4, lr} + ldr r4, _0801FD08 + ldr r0, [r4] + ldrh r0, [r0, #0x18] + cmp r0, #0xff + beq _0801FD02 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + ldr r0, [r4] + ldrb r0, [r0, #0x18] + bl ClearWindowTilemap +_0801FD02: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801FD08: .4byte 0x0202293C + thumb_func_end sub_0801FCE4 + + thumb_func_start sub_0801FD0C +sub_0801FD0C: @ 0x0801FD0C + push {r4, lr} + ldr r4, _0801FD2C + ldr r0, [r4] + ldrh r0, [r0, #0x18] + cmp r0, #0xff + beq _0801FD26 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl RemoveWindow + ldr r1, [r4] + movs r0, #0xff + strh r0, [r1, #0x18] +_0801FD26: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801FD2C: .4byte 0x0202293C + thumb_func_end sub_0801FD0C + + thumb_func_start sub_0801FD30 +sub_0801FD30: @ 0x0801FD30 + push {lr} + bl Menu_ProcessInput + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_0801FD30 + + thumb_func_start sub_0801FD40 +sub_0801FD40: @ 0x0801FD40 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x1c + adds r7, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sb, r1 + ldr r1, _0801FDEC + ldr r3, [sp, #0x14] + ands r3, r1 + ldr r2, _0801FDF0 + ands r3, r2 + movs r0, #0x80 + lsls r0, r0, #4 + orrs r3, r0 + ldr r0, _0801FDF4 + ands r3, r0 + movs r0, #0x80 + lsls r0, r0, #0xd + orrs r3, r0 + ldr r5, _0801FDF8 + ands r3, r5 + movs r0, #0xa8 + lsls r0, r0, #0x15 + orrs r3, r0 + str r3, [sp, #0x14] + ldr r0, [sp, #0x18] + ands r0, r1 + movs r1, #4 + orrs r0, r1 + ands r0, r2 + movs r1, #0xe0 + lsls r1, r1, #4 + orrs r0, r1 + ldr r1, _0801FDFC + ands r0, r1 + movs r1, #0xe2 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [sp, #0x18] + ldr r1, _0801FE00 + lsls r0, r7, #1 + adds r0, r0, r7 + lsls r0, r0, #2 + adds r4, r0, r1 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0801FDC0 + lsls r0, r3, #0x10 + movs r1, #0xf9 + lsls r1, r1, #0x18 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + ands r2, r3 + orrs r2, r0 + lsrs r1, r2, #0x18 + adds r1, #7 + lsls r1, r1, #0x18 + adds r0, r5, #0 + ands r0, r2 + orrs r0, r1 + str r0, [sp, #0x14] +_0801FDC0: + add r0, sp, #0x14 + bl AddWindow + ldr r5, _0801FE04 + ldr r1, [r5] + strh r0, [r1, #0x1e] + ldrh r0, [r1, #0x1e] + mov r8, r0 + cmp r0, #0xff + beq _0801FEAA + ldrb r0, [r4, #9] + cmp r0, #0 + beq _0801FE08 + adds r0, r1, #0 + adds r0, #0x22 + ldr r1, [r4] + bl DynamicPlaceholderTextUtil_ExpandPlaceholders + ldr r0, [r5] + adds r6, r0, #0 + adds r6, #0x22 + b _0801FE0A + .align 2, 0 +_0801FDEC: .4byte 0xFFFFFF00 +_0801FDF0: .4byte 0xFFFF00FF +_0801FDF4: .4byte 0xFF00FFFF +_0801FDF8: .4byte 0x00FFFFFF +_0801FDFC: .4byte 0x0000FFFF +_0801FE00: .4byte 0x082C57D4 +_0801FE04: .4byte 0x0202293C +_0801FE08: + ldr r6, [r4] +_0801FE0A: + mov r0, sb + lsls r1, r0, #8 + movs r0, #0 + movs r2, #0 + bl ChangeBgY + mov r1, r8 + lsls r0, r1, #0x18 + lsrs r5, r0, #0x18 + adds r0, r5, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + adds r0, r5, #0 + bl PutWindowTilemap + ldr r1, _0801FE74 + lsls r0, r7, #1 + adds r0, r0, r7 + lsls r0, r0, #2 + adds r4, r0, r1 + ldrb r0, [r4, #4] + cmp r0, #1 + bne _0801FE78 + adds r0, r5, #0 + movs r1, #0xa + movs r2, #2 + bl DrawTextBorderInner + ldrb r3, [r4, #5] + adds r3, #8 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldrb r0, [r4, #6] + adds r0, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + ldrb r0, [r4, #7] + str r0, [sp, #0xc] + ldrb r0, [r4, #8] + str r0, [sp, #0x10] + adds r0, r5, #0 + movs r1, #1 + adds r2, r6, #0 + bl AddTextPrinterParameterized5 + b _0801FEA2 + .align 2, 0 +_0801FE74: .4byte 0x082C57D4 +_0801FE78: + adds r0, r5, #0 + movs r1, #0xa + movs r2, #2 + bl DrawTextBorderOuter + ldrb r3, [r4, #5] + ldrb r0, [r4, #6] + str r0, [sp] + movs r0, #0xff + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + ldrb r0, [r4, #7] + str r0, [sp, #0xc] + ldrb r0, [r4, #8] + str r0, [sp, #0x10] + adds r0, r5, #0 + movs r1, #1 + adds r2, r6, #0 + bl AddTextPrinterParameterized5 +_0801FEA2: + ldr r0, _0801FEB8 + ldr r0, [r0] + mov r1, r8 + strh r1, [r0, #0x1e] +_0801FEAA: + add sp, #0x1c + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0801FEB8: .4byte 0x0202293C + thumb_func_end sub_0801FD40 + + thumb_func_start sub_0801FEBC +sub_0801FEBC: @ 0x0801FEBC + push {r4, lr} + ldr r4, _0801FEEC + ldr r0, [r4] + ldrh r0, [r0, #0x1e] + cmp r0, #0xff + beq _0801FEDA + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + ldr r0, [r4] + ldrb r0, [r0, #0x1e] + bl ClearWindowTilemap +_0801FEDA: + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801FEEC: .4byte 0x0202293C + thumb_func_end sub_0801FEBC + + thumb_func_start sub_0801FEF0 +sub_0801FEF0: @ 0x0801FEF0 + push {r4, lr} + ldr r4, _0801FF10 + ldr r0, [r4] + ldrh r0, [r0, #0x1e] + cmp r0, #0xff + beq _0801FF0A + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl RemoveWindow + ldr r1, [r4] + movs r0, #0xff + strh r0, [r1, #0x1e] +_0801FF0A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801FF10: .4byte 0x0202293C + thumb_func_end sub_0801FEF0 + + thumb_func_start sub_0801FF14 +sub_0801FF14: @ 0x0801FF14 + push {lr} + sub sp, #8 + adds r3, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r3, r3, #0x13 + lsrs r3, r3, #0x10 + lsls r1, r1, #0x13 + lsrs r1, r1, #0x10 + str r1, [sp] + movs r0, #0xe + str r0, [sp, #4] + movs r0, #1 + adds r1, r2, #0 + adds r2, r3, #0 + movs r3, #1 + bl FillWindowPixelRect + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0801FF14 + + thumb_func_start sub_0801FF40 +sub_0801FF40: @ 0x0801FF40 + push {r4, r5, lr} + sub sp, #0x10 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, [sp, #0x1c] + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + add r0, sp, #0xc + strb r2, [r0] + strb r3, [r0, #1] + strb r1, [r0, #2] + adds r0, r5, #0 + bl StringLength_Multibyte + lsls r4, r4, #0x1b + lsrs r4, r4, #0x18 + add r0, sp, #0xc + str r0, [sp] + movs r0, #1 + rsbs r0, r0, #0 + str r0, [sp, #4] + str r5, [sp, #8] + movs r0, #1 + movs r1, #0 + adds r2, r4, #0 + movs r3, #1 + bl AddTextPrinterParameterized3 + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_0801FF40 + + thumb_func_start sub_0801FF88 +sub_0801FF88: @ 0x0801FF88 + push {r4, r5, r6, r7, lr} + sub sp, #0x10 + movs r0, #2 + movs r1, #0xff + bl FillWindowPixelBuffer + bl sub_0801EEB0 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + add r1, sp, #0xc + movs r0, #0 + strb r0, [r1] + movs r0, #0xe + strb r0, [r1, #1] + movs r0, #0xd + strb r0, [r1, #2] + cmp r2, #4 + beq _0801FFF4 + movs r5, #0 + movs r6, #0 + lsls r0, r2, #2 + ldr r1, _0801FFF0 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r4, r0, r1 +_0801FFBC: + ldr r1, [r4] + cmp r1, #0 + beq _0802003A + lsls r3, r6, #0x18 + lsrs r3, r3, #0x18 + add r0, sp, #0xc + str r0, [sp] + movs r0, #1 + rsbs r0, r0, #0 + str r0, [sp, #4] + str r1, [sp, #8] + movs r0, #2 + movs r1, #0 + movs r2, #6 + bl AddTextPrinterParameterized3 + adds r4, #4 + adds r5, #1 + adds r0, r6, #0 + adds r0, #0xb + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r5, #9 + ble _0801FFBC + b _0802003A + .align 2, 0 +_0801FFF0: .4byte 0x082C5180 +_0801FFF4: + movs r5, #0 + movs r6, #0 + ldr r7, _08020044 +_0801FFFA: + ldr r4, [r7] + adds r4, #0x22 + adds r0, r5, #0 + bl sub_0801EC7C + adds r1, r0, #0 + adds r0, r4, #0 + movs r2, #5 + bl StringCopyN_Multibyte + lsls r3, r6, #0x18 + lsrs r3, r3, #0x18 + add r0, sp, #0xc + str r0, [sp] + movs r0, #1 + rsbs r0, r0, #0 + str r0, [sp, #4] + ldr r0, [r7] + adds r0, #0x22 + str r0, [sp, #8] + movs r0, #2 + movs r1, #0 + movs r2, #6 + bl AddTextPrinterParameterized3 + adds r5, #1 + adds r0, r6, #0 + adds r0, #0xb + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r5, #9 + ble _0801FFFA +_0802003A: + add sp, #0x10 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08020044: .4byte 0x0202293C + thumb_func_end sub_0801FF88 + + thumb_func_start sub_08020048 +sub_08020048: @ 0x08020048 + push {r4, lr} + ldr r1, _0802006C + ldr r2, [r1] + ldrh r3, [r2, #0x20] + movs r4, #0x20 + ldrsh r0, [r2, r4] + cmp r0, #0x37 + bgt _0802007C + adds r0, r3, #0 + adds r0, #0xc + strh r0, [r2, #0x20] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x37 + ble _08020070 + movs r0, #0x38 + strh r0, [r2, #0x20] + b _0802007C + .align 2, 0 +_0802006C: .4byte 0x0202293C +_08020070: + movs r1, #0x20 + ldrsh r0, [r2, r1] + bl sub_080204DC + movs r0, #1 + b _08020088 +_0802007C: + ldr r0, [r1] + movs r4, #0x20 + ldrsh r0, [r0, r4] + bl sub_08020534 + movs r0, #0 +_08020088: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08020048 + + thumb_func_start sub_08020090 +sub_08020090: @ 0x08020090 + push {r4, lr} + ldr r1, _080200B4 + ldr r2, [r1] + ldrh r3, [r2, #0x20] + movs r4, #0x20 + ldrsh r0, [r2, r4] + cmp r0, #0 + ble _080200C4 + adds r0, r3, #0 + subs r0, #0xc + strh r0, [r2, #0x20] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _080200B8 + movs r0, #0 + strh r0, [r2, #0x20] + b _080200C4 + .align 2, 0 +_080200B4: .4byte 0x0202293C +_080200B8: + movs r1, #0x20 + ldrsh r0, [r2, r1] + bl sub_080204DC + movs r0, #1 + b _080200D0 +_080200C4: + ldr r0, [r1] + movs r4, #0x20 + ldrsh r0, [r0, r4] + bl sub_08020534 + movs r0, #0 +_080200D0: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08020090 + + thumb_func_start sub_080200D8 +sub_080200D8: @ 0x080200D8 + push {lr} + sub sp, #0xc + movs r0, #3 + movs r1, #0x11 + bl FillWindowPixelBuffer + movs r0, #3 + movs r1, #1 + movs r2, #0xd + bl DrawTextBorderOuter + ldr r0, _08020128 + str r0, [sp] + movs r0, #3 + movs r1, #1 + movs r2, #0xd + movs r3, #6 + bl sub_08198964 + bl sub_0801EEB0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0xd + str r1, [sp] + movs r1, #6 + str r1, [sp, #4] + str r0, [sp, #8] + movs r0, #3 + movs r1, #1 + movs r2, #0 + movs r3, #0 + bl sub_081984B0 + movs r0, #3 + bl PutWindowTilemap + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_08020128: .4byte 0x082C5858 + thumb_func_end sub_080200D8 + + thumb_func_start sub_0802012C +sub_0802012C: @ 0x0802012C + push {lr} + movs r0, #3 + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + movs r0, #3 + bl ClearWindowTilemap + pop {r0} + bx r0 + thumb_func_end sub_0802012C + + thumb_func_start sub_08020140 +sub_08020140: @ 0x08020140 + push {r4, r5, lr} + sub sp, #0x10 + adds r5, r1, #0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r2, r2, #0x18 + add r3, sp, #0xc + movs r1, #1 + strb r1, [r3] + lsrs r2, r2, #0x17 + adds r1, r2, #2 + strb r1, [r3, #1] + adds r1, r3, #0 + adds r2, #3 + strb r2, [r1, #2] + lsls r4, r0, #1 + adds r4, r4, r0 + lsls r3, r4, #0x12 + lsrs r3, r3, #0x10 + movs r0, #0xa8 + str r0, [sp] + movs r0, #0xc + str r0, [sp, #4] + movs r0, #0 + movs r1, #0x11 + movs r2, #0 + bl FillWindowPixelRect + lsls r4, r4, #0x1a + lsrs r4, r4, #0x18 + add r0, sp, #0xc + str r0, [sp] + movs r0, #1 + rsbs r0, r0, #0 + str r0, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #0 + movs r2, #0 + adds r3, r4, #0 + bl AddTextPrinterParameterized3 + add sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end sub_08020140 + + thumb_func_start sub_0802019C +sub_0802019C: @ 0x0802019C + push {lr} + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuRegBits + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r1, #0xe0 + lsls r1, r1, #8 + movs r0, #0 + bl ClearGpuRegBits + movs r1, #0x80 + lsls r1, r1, #6 + movs r0, #0 + bl SetGpuRegBits + ldr r1, _08020250 + movs r0, #0x40 + bl SetGpuReg + movs r0, #0x44 + movs r1, #0x90 + bl SetGpuReg + movs r0, #0x48 + movs r1, #0x3d + bl SetGpuReg + movs r0, #0x4a + movs r1, #0x3f + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 +_08020250: .4byte 0x000040F0 + thumb_func_end sub_0802019C + + thumb_func_start sub_08020254 +sub_08020254: @ 0x08020254 + push {r4, lr} + ldr r4, _08020290 + ldr r1, [r4] + movs r0, #0x94 + lsls r0, r0, #1 + adds r1, r1, r0 + movs r0, #0 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, _08020294 + adds r1, r1, r0 + movs r0, #1 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, _08020298 + adds r1, r1, r0 + movs r0, #3 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, _0802029C + adds r1, r1, r0 + movs r0, #2 + bl SetBgTilemapBuffer + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08020290: .4byte 0x0202293C +_08020294: .4byte 0x00000928 +_08020298: .4byte 0x00001128 +_0802029C: .4byte 0x00001928 + thumb_func_end sub_08020254 + + thumb_func_start sub_080202A0 +sub_080202A0: @ 0x080202A0 + push {lr} + sub sp, #8 + movs r1, #0xc0 + lsls r1, r1, #0x13 + movs r0, #0 + movs r2, #0x20 + movs r3, #1 + bl RequestDma3Fill + movs r0, #0x20 + str r0, [sp] + str r0, [sp, #4] + movs r0, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, #0 + bl CopyBgTilemapBufferToVram + add sp, #8 + pop {r0} + bx r0 + thumb_func_end sub_080202A0 + + thumb_func_start sub_080202D0 +sub_080202D0: @ 0x080202D0 + push {lr} + sub sp, #4 + ldr r0, _08020310 + movs r1, #0x70 + movs r2, #0x20 + bl LoadPalette + ldr r0, _08020314 + movs r1, #0xc0 + movs r2, #0x20 + bl LoadPalette + ldr r1, _08020318 + movs r0, #0 + str r0, [sp] + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, _0802031C + movs r0, #1 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + movs r0, #1 + bl CopyBgTilemapBufferToVram + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_08020310: .4byte 0x082C5220 +_08020314: .4byte 0x082C5348 +_08020318: .4byte 0x082C5240 +_0802031C: .4byte 0x082C529C + thumb_func_end sub_080202D0 + + thumb_func_start sub_08020320 +sub_08020320: @ 0x08020320 + push {r4, r5, lr} + sub sp, #4 + ldr r0, _08020384 + movs r1, #0 + movs r2, #0x20 + bl LoadPalette + ldr r1, _08020388 + movs r0, #0 + str r0, [sp] + movs r0, #2 + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + adds r5, r0, #0 + cmp r5, #0 + beq _0802036A + movs r1, #0x88 + lsls r1, r1, #2 + adds r0, r5, r1 + ldr r4, _0802038C + ldr r1, [r4] + ldr r2, _08020390 + adds r1, r1, r2 + movs r2, #8 + bl CpuFastSet + movs r1, #0x84 + lsls r1, r1, #3 + adds r0, r5, r1 + ldr r1, [r4] + ldr r2, _08020394 + adds r1, r1, r2 + movs r2, #8 + bl CpuFastSet +_0802036A: + ldr r1, _08020398 + movs r0, #2 + movs r2, #0 + movs r3, #0 + bl CopyToBgTilemapBuffer + movs r0, #2 + bl CopyBgTilemapBufferToVram + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08020384: .4byte 0x082C5368 +_08020388: .4byte 0x082C5388 +_0802038C: .4byte 0x0202293C +_08020390: .4byte 0x00002128 +_08020394: .4byte 0x00002148 +_08020398: .4byte 0x082C55BC + thumb_func_end sub_08020320 + + thumb_func_start sub_0802039C +sub_0802039C: @ 0x0802039C + push {lr} + ldr r0, _080203B8 + movs r1, #0x80 + movs r2, #0x20 + bl LoadPalette + ldr r1, _080203BC + movs r0, #0 + movs r2, #0x20 + movs r3, #1 + bl RequestDma3Fill + pop {r0} + bx r0 + .align 2, 0 +_080203B8: .4byte 0x082C56B4 +_080203BC: .4byte 0x06004020 + thumb_func_end sub_0802039C + + thumb_func_start sub_080203C0 +sub_080203C0: @ 0x080203C0 + push {lr} + ldr r0, _080203E8 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + movs r0, #0 + bl PutWindowTilemap + movs r0, #0 + movs r1, #0x11 + bl FillWindowPixelBuffer + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + pop {r0} + bx r0 + .align 2, 0 +_080203E8: .4byte 0x082C56D4 + thumb_func_end sub_080203C0 + + thumb_func_start sub_080203EC +sub_080203EC: @ 0x080203EC + push {lr} + movs r0, #2 + bl PutWindowTilemap + bl sub_0801FF88 + movs r0, #2 + movs r1, #3 + bl CopyWindowToVram + pop {r0} + bx r0 + thumb_func_end sub_080203EC + + thumb_func_start sub_08020404 +sub_08020404: @ 0x08020404 + push {r4, lr} + sub sp, #0xc + add r1, sp, #8 + movs r0, #0 + strb r0, [r1] + movs r0, #0xff + strb r0, [r1, #1] + movs r4, #0 +_08020414: + ldr r0, _08020454 + ldr r1, [r0] + ldr r0, _08020458 + adds r1, r1, r0 + lsls r2, r4, #0x13 + lsrs r2, r2, #0x10 + movs r0, #8 + str r0, [sp] + movs r0, #0x10 + str r0, [sp, #4] + movs r0, #1 + movs r3, #0 + bl BlitBitmapToWindow + adds r4, #1 + cmp r4, #0xe + ble _08020414 + movs r0, #1 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #1 + bl PutWindowTilemap + movs r0, #1 + movs r1, #3 + bl CopyWindowToVram + add sp, #0xc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08020454: .4byte 0x0202293C +_08020458: .4byte 0x00002128 + thumb_func_end sub_08020404 + + thumb_func_start sub_0802045C +sub_0802045C: @ 0x0802045C + push {lr} + movs r0, #3 + movs r1, #0x11 + bl FillWindowPixelBuffer + movs r0, #3 + movs r1, #1 + movs r2, #0xd0 + bl LoadUserWindowBorderGfx + movs r0, #3 + movs r1, #0xa + movs r2, #0x20 + bl LoadUserWindowBorderGfx_ + ldr r0, _08020488 + movs r1, #0xe0 + movs r2, #0x20 + bl LoadPalette + pop {r0} + bx r0 + .align 2, 0 +_08020488: .4byte 0x085D7B04 + thumb_func_end sub_0802045C + + thumb_func_start sub_0802048C +sub_0802048C: @ 0x0802048C + push {lr} + sub sp, #0x10 + ldr r0, _080204C8 + str r0, [sp, #4] + ldr r0, _080204CC + str r0, [sp] + mov r2, sp + movs r1, #0 + movs r0, #1 + strb r0, [r2, #8] + mov r0, sp + strb r1, [r0, #9] + ldr r0, _080204D0 + ldr r0, [r0] + strh r1, [r0, #0x20] + str r1, [sp, #0xc] + add r0, sp, #0xc + ldr r1, _080204D4 + ldr r2, _080204D8 + bl CpuFastSet + ldr r0, [sp] + ldr r1, [sp, #4] + ldr r2, [sp, #8] + bl ScanlineEffect_SetParams + add sp, #0x10 + pop {r0} + bx r0 + .align 2, 0 +_080204C8: .4byte 0xA2600001 +_080204CC: .4byte 0x04000014 +_080204D0: .4byte 0x0202293C +_080204D4: .4byte 0x020388C8 +_080204D8: .4byte 0x010003C0 + thumb_func_end sub_0802048C + + thumb_func_start sub_080204DC +sub_080204DC: @ 0x080204DC + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r1, sp + strh r0, [r1] + ldr r5, _08020524 + ldrb r0, [r5, #0x14] + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r1, r1, #7 + ldr r4, _08020528 + adds r1, r1, r4 + ldr r2, _0802052C + mov r0, sp + bl CpuSet + mov r0, sp + adds r0, #2 + movs r1, #0 + strh r1, [r0] + ldrb r2, [r5, #0x14] + lsls r1, r2, #4 + subs r1, r1, r2 + lsls r1, r1, #7 + movs r2, #0x90 + lsls r2, r2, #1 + adds r4, r4, r2 + adds r1, r1, r4 + ldr r2, _08020530 + bl CpuSet + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08020524: .4byte 0x020397C8 +_08020528: .4byte 0x020388C8 +_0802052C: .4byte 0x01000090 +_08020530: .4byte 0x01000010 + thumb_func_end sub_080204DC + + thumb_func_start sub_08020534 +sub_08020534: @ 0x08020534 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #8 + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + mov r0, sp + strh r4, [r0] + ldr r5, _080205A0 + ldr r0, _080205A4 + mov sb, r0 + mov r0, sp + adds r1, r5, #0 + mov r2, sb + bl CpuSet + mov r0, sp + adds r0, #2 + movs r6, #0 + strh r6, [r0] + movs r2, #0x90 + lsls r2, r2, #1 + adds r1, r5, r2 + ldr r2, _080205A8 + mov r8, r2 + bl CpuSet + add r0, sp, #4 + strh r4, [r0] + movs r2, #0xf0 + lsls r2, r2, #3 + adds r1, r5, r2 + mov r2, sb + bl CpuSet + mov r0, sp + adds r0, #6 + strh r6, [r0] + movs r1, #0x8a + lsls r1, r1, #4 + adds r5, r5, r1 + adds r1, r5, #0 + mov r2, r8 + bl CpuSet + add sp, #8 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080205A0: .4byte 0x020388C8 +_080205A4: .4byte 0x01000090 +_080205A8: .4byte 0x01000010 + thumb_func_end sub_08020534 + + thumb_func_start sub_080205AC +sub_080205AC: @ 0x080205AC + push {r4, r5, lr} + movs r5, #0 + ldr r4, _080205D8 +_080205B2: + adds r0, r4, #0 + bl LoadCompressedSpriteSheet + adds r4, #8 + adds r5, #1 + cmp r5, #4 + bls _080205B2 + ldr r0, _080205DC + bl LoadSpritePalette + ldr r4, _080205E0 + movs r0, #0x18 + bl Alloc + str r0, [r4] + cmp r0, #0 + beq _080205E4 + movs r0, #1 + b _080205E6 + .align 2, 0 +_080205D8: .4byte 0x082C5D4C +_080205DC: .4byte 0x082C5D74 +_080205E0: .4byte 0x02022940 +_080205E4: + movs r0, #0 +_080205E6: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_080205AC + + thumb_func_start sub_080205EC +sub_080205EC: @ 0x080205EC + push {lr} + ldr r0, _08020600 + ldr r0, [r0] + cmp r0, #0 + beq _080205FA + bl Free +_080205FA: + pop {r0} + bx r0 + .align 2, 0 +_08020600: .4byte 0x02022940 + thumb_func_end sub_080205EC + + thumb_func_start sub_08020604 +sub_08020604: @ 0x08020604 + push {lr} + ldr r0, _0802062C + movs r1, #0xa + movs r2, #0x18 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08020630 + ldr r2, [r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08020634 + adds r1, r1, r0 + str r1, [r2] + pop {r0} + bx r0 + .align 2, 0 +_0802062C: .4byte 0x082C5DB4 +_08020630: .4byte 0x02022940 +_08020634: .4byte 0x020205AC + thumb_func_end sub_08020604 + + thumb_func_start sub_08020638 +sub_08020638: @ 0x08020638 + ldr r1, _08020654 + ldr r1, [r1] + ldr r2, [r1] + adds r2, #0x3e + movs r1, #1 + ands r0, r1 + lsls r0, r0, #2 + ldrb r3, [r2] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r0 + strb r1, [r2] + bx lr + .align 2, 0 +_08020654: .4byte 0x02022940 + thumb_func_end sub_08020638 + + thumb_func_start sub_08020658 +sub_08020658: @ 0x08020658 + push {r4, r5, lr} + sub sp, #4 + bl sub_0801EEB0 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r5, sp + adds r5, #1 + mov r0, sp + adds r1, r5, #0 + bl sub_0801EEBC + cmp r4, #4 + beq _08020698 + ldr r4, _08020694 + ldr r0, [r4] + ldr r0, [r0] + movs r1, #0 + bl StartSpriteAnim + ldr r1, [r4] + ldr r2, [r1] + mov r0, sp + ldrb r0, [r0] + lsls r0, r0, #3 + adds r0, #0xa + strh r0, [r2, #0x20] + ldr r2, [r1] + b _080206AE + .align 2, 0 +_08020694: .4byte 0x02022940 +_08020698: + ldr r4, _080206C0 + ldr r0, [r4] + ldr r0, [r0] + movs r1, #2 + bl StartSpriteAnim + ldr r2, [r4] + ldr r1, [r2] + movs r0, #0x18 + strh r0, [r1, #0x20] + ldr r2, [r2] +_080206AE: + ldrb r1, [r5] + movs r0, #0xb + muls r0, r1, r0 + adds r0, #0x18 + strh r0, [r2, #0x22] + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080206C0: .4byte 0x02022940 + thumb_func_end sub_08020658 + + thumb_func_start sub_080206C4 +sub_080206C4: @ 0x080206C4 + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #2 + ldr r0, _080206F0 + adds r4, r4, r0 + movs r0, #0 + bl IndexOfSpritePaletteTag + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #4 + ldr r0, _080206F4 + adds r1, r1, r0 + lsrs r1, r1, #0x10 + adds r0, r4, #0 + movs r2, #4 + bl LoadPalette + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080206F0: .4byte 0x082C588A +_080206F4: .4byte 0x01010000 + thumb_func_end sub_080206C4 + + thumb_func_start sub_080206F8 +sub_080206F8: @ 0x080206F8 + push {lr} + bl sub_0801EEB0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + beq _08020718 + ldr r0, _08020714 + ldr r0, [r0] + ldr r0, [r0] + movs r1, #1 + bl StartSpriteAnim + b _08020724 + .align 2, 0 +_08020714: .4byte 0x02022940 +_08020718: + ldr r0, _08020730 + ldr r0, [r0] + ldr r0, [r0] + movs r1, #3 + bl StartSpriteAnim +_08020724: + ldr r0, _08020730 + ldr r1, [r0] + movs r0, #0 + strh r0, [r1, #0x14] + pop {r0} + bx r0 + .align 2, 0 +_08020730: .4byte 0x02022940 + thumb_func_end sub_080206F8 + + thumb_func_start sub_08020734 +sub_08020734: @ 0x08020734 + push {r4, lr} + ldr r4, _08020744 + ldr r1, [r4] + ldrh r0, [r1, #0x14] + cmp r0, #3 + bls _08020748 +_08020740: + movs r0, #0 + b _0802077A + .align 2, 0 +_08020744: .4byte 0x02022940 +_08020748: + adds r0, #1 + strh r0, [r1, #0x14] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #3 + bls _08020778 + bl sub_0801EEB0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + beq _0802076C + ldr r0, [r4] + ldr r0, [r0] + movs r1, #0 + bl StartSpriteAnim + b _08020740 +_0802076C: + ldr r0, [r4] + ldr r0, [r0] + movs r1, #2 + bl StartSpriteAnim + b _08020740 +_08020778: + movs r0, #1 +_0802077A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_08020734 + + thumb_func_start sub_08020780 +sub_08020780: @ 0x08020780 + push {r4, r5, lr} + ldr r0, _080207C4 + movs r1, #0x4c + movs r2, #0x98 + movs r3, #2 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _080207C8 + ldr r2, [r5] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r4, _080207CC + adds r1, r1, r4 + str r1, [r2, #8] + ldr r0, _080207D0 + movs r1, #0x40 + movs r2, #0x98 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, [r5] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + str r1, [r2, #4] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080207C4: .4byte 0x082C5DD4 +_080207C8: .4byte 0x02022940 +_080207CC: .4byte 0x020205AC +_080207D0: .4byte 0x082C5DEC + thumb_func_end sub_08020780 + + thumb_func_start sub_080207D4 +sub_080207D4: @ 0x080207D4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801EF98 + adds r3, r0, #0 + cmp r3, #0xf + bne _080207F0 + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + b _08020804 +_080207F0: + adds r2, r4, #0 + adds r2, #0x3e + ldrb r0, [r2] + movs r1, #5 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r2] + lsls r0, r3, #3 + adds r0, #0x4c + strh r0, [r4, #0x20] +_08020804: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_080207D4 + + thumb_func_start sub_0802080C +sub_0802080C: @ 0x0802080C + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0x2e] + adds r0, #1 + movs r2, #0 + strh r0, [r1, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _08020832 + strh r2, [r1, #0x2e] + ldrh r0, [r1, #0x24] + adds r0, #1 + strh r0, [r1, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _08020832 + strh r2, [r1, #0x24] +_08020832: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0802080C + + thumb_func_start sub_08020838 +sub_08020838: @ 0x08020838 + push {r4, r5, lr} + ldr r0, _08020888 + movs r1, #8 + movs r2, #0x98 + movs r3, #3 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _0802088C + ldr r2, [r5] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r4, _08020890 + adds r1, r1, r4 + str r1, [r2, #0xc] + ldr r0, _08020894 + movs r1, #0x20 + movs r2, #0x98 + movs r3, #4 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, [r5] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + str r1, [r2, #0x10] + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08020888: .4byte 0x082C5E44 +_0802088C: .4byte 0x02022940 +_08020890: .4byte 0x020205AC +_08020894: .4byte 0x082C5E5C + thumb_func_end sub_08020838 + + thumb_func_start sub_08020898 +sub_08020898: @ 0x08020898 + push {r4, lr} + bl sub_0801EEB0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bne _080208D0 + bl sub_0801EEDC + cmp r0, #0 + beq _080208DA + ldr r3, _080208CC + ldr r0, [r3] + ldr r1, [r0, #0x10] + adds r1, #0x3e + ldrb r2, [r1] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r0, [r3] + ldr r0, [r0, #0x10] + movs r1, #3 + bl StartSpriteAnim + b _0802090E + .align 2, 0 +_080208CC: .4byte 0x02022940 +_080208D0: + bl sub_0801EFA4 + adds r4, r0, #0 + cmp r4, #3 + bne _080208F0 +_080208DA: + ldr r0, _080208EC + ldr r0, [r0] + ldr r1, [r0, #0x10] + adds r1, #0x3e + ldrb r0, [r1] + movs r2, #4 + orrs r0, r2 + strb r0, [r1] + b _0802090E + .align 2, 0 +_080208EC: .4byte 0x02022940 +_080208F0: + ldr r3, _08020914 + ldr r0, [r3] + ldr r1, [r0, #0x10] + adds r1, #0x3e + ldrb r2, [r1] + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1] + ldr r0, [r3] + ldr r0, [r0, #0x10] + lsls r1, r4, #0x18 + lsrs r1, r1, #0x18 + bl StartSpriteAnim +_0802090E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08020914: .4byte 0x02022940 + thumb_func_end sub_08020898 + diff --git a/asm/union_room_player_avatar.s b/asm/union_room_player_avatar.s new file mode 100644 index 0000000..dc9382c --- /dev/null +++ b/asm/union_room_player_avatar.s @@ -0,0 +1,287 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start is_walking_or_running +is_walking_or_running: @ 0x08019350 + push {lr} + ldr r0, _08019364 + ldrb r0, [r0, #3] + cmp r0, #2 + beq _0801935E + cmp r0, #0 + bne _08019368 +_0801935E: + movs r0, #1 + b _0801936A + .align 2, 0 +_08019364: .4byte 0x02037230 +_08019368: + movs r0, #0 +_0801936A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end is_walking_or_running + + thumb_func_start sub_08019370 +sub_08019370: @ 0x08019370 + ldr r3, _08019384 + movs r2, #7 + ands r2, r1 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #1 + adds r2, r2, r1 + adds r2, r2, r3 + ldrb r0, [r2] + bx lr + .align 2, 0 +_08019384: .4byte 0x082C2B7C + thumb_func_end sub_08019370 + + thumb_func_start sub_08019388 +sub_08019388: @ 0x08019388 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + ldr r4, _080193D0 + mov r8, r4 + lsls r0, r0, #2 + adds r4, r0, r4 + movs r6, #0 + ldrsh r5, [r4, r6] + ldr r6, _080193D4 + lsls r1, r1, #1 + adds r4, r1, r6 + ldrb r4, [r4] + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + adds r5, r5, r4 + adds r5, #7 + str r5, [r2] + movs r2, #2 + add r8, r2 + add r0, r8 + movs r4, #0 + ldrsh r0, [r0, r4] + adds r6, #1 + adds r1, r1, r6 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + adds r0, #7 + str r0, [r3] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080193D0: .4byte 0x082C2B90 +_080193D4: .4byte 0x082C2BB0 + thumb_func_end sub_08019388 + + thumb_func_start sub_080193D8 +sub_080193D8: @ 0x080193D8 + push {r4, r5, r6, r7, lr} + mov ip, r3 + ldr r7, _08019418 + lsls r5, r0, #2 + adds r0, r5, r7 + movs r4, #0 + ldrsh r3, [r0, r4] + ldr r6, _0801941C + lsls r4, r1, #1 + adds r0, r4, r6 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r3, r3, r0 + adds r3, #7 + cmp r3, r2 + bne _08019420 + adds r0, r7, #2 + adds r0, r5, r0 + movs r2, #0 + ldrsh r1, [r0, r2] + adds r0, r6, #1 + adds r0, r4, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r1, r1, r0 + adds r1, #7 + cmp r1, ip + bne _08019420 + movs r0, #1 + b _08019422 + .align 2, 0 +_08019418: .4byte 0x082C2B90 +_0801941C: .4byte 0x082C2BB0 +_08019420: + movs r0, #0 +_08019422: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end sub_080193D8 + + thumb_func_start IsUnionRoomPlayerHidden +IsUnionRoomPlayerHidden: @ 0x08019428 + push {lr} + ldr r1, _08019440 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 +_08019440: .4byte 0x000002BF + thumb_func_end IsUnionRoomPlayerHidden + + thumb_func_start HideUnionRoomPlayer +HideUnionRoomPlayer: @ 0x08019444 + push {lr} + ldr r1, _08019458 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl FlagSet + pop {r0} + bx r0 + .align 2, 0 +_08019458: .4byte 0x000002BF + thumb_func_end HideUnionRoomPlayer + + thumb_func_start ShowUnionRoomPlayer +ShowUnionRoomPlayer: @ 0x0801945C + push {lr} + ldr r1, _08019470 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl FlagClear + pop {r0} + bx r0 + .align 2, 0 +_08019470: .4byte 0x000002BF + thumb_func_end ShowUnionRoomPlayer + + thumb_func_start SetUnionRoomPlayerGfx +SetUnionRoomPlayerGfx: @ 0x08019474 + push {lr} + ldr r2, _0801948C + adds r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl VarSet + pop {r0} + bx r0 + .align 2, 0 +_0801948C: .4byte 0x00004010 + thumb_func_end SetUnionRoomPlayerGfx + + thumb_func_start CreateUnionRoomPlayerEventObject +CreateUnionRoomPlayerEventObject: @ 0x08019490 + push {lr} + ldr r1, _080194A8 + adds r0, r0, r1 + ldrb r0, [r0] + ldr r1, _080194AC + ldr r2, [r1] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + bl TrySpawnEventObject + pop {r0} + bx r0 + .align 2, 0 +_080194A8: .4byte 0x082C2BC4 +_080194AC: .4byte 0x03005AEC + thumb_func_end CreateUnionRoomPlayerEventObject + + thumb_func_start RemoveUnionRoomPlayerEventObject +RemoveUnionRoomPlayerEventObject: @ 0x080194B0 + push {lr} + ldr r1, _080194C8 + adds r0, r0, r1 + ldrb r0, [r0] + ldr r1, _080194CC + ldr r2, [r1] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + bl RemoveEventObjectByLocalIdAndMap + pop {r0} + bx r0 + .align 2, 0 +_080194C8: .4byte 0x082C2BC4 +_080194CC: .4byte 0x03005AEC + thumb_func_end RemoveUnionRoomPlayerEventObject + + thumb_func_start SetUnionRoomPlayerEnterExitMovement +SetUnionRoomPlayerEnterExitMovement: @ 0x080194D0 + push {r4, r5, lr} + sub sp, #4 + adds r5, r1, #0 + ldr r1, _0801951C + adds r0, r0, r1 + ldrb r0, [r0] + ldr r1, _08019520 + ldr r2, [r1] + ldrb r1, [r2, #5] + ldrb r2, [r2, #4] + mov r3, sp + bl TryGetEventObjectIdByLocalIdAndMap + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08019536 + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08019524 + adds r4, r0, r1 + adds r0, r4, #0 + bl EventObjectIsMovementOverridden + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08019536 + ldrb r1, [r5] + adds r0, r4, #0 + bl EventObjectSetHeldMovement + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08019528 + movs r0, #1 + b _08019538 + .align 2, 0 +_0801951C: .4byte 0x082C2BC4 +_08019520: .4byte 0x03005AEC +_08019524: .4byte 0x02036FF0 +_08019528: + ldr r0, _08019540 + movs r1, #0xc1 + lsls r1, r1, #1 + ldr r2, _08019544 + movs r3, #1 + bl AGBAssert +_08019536: + movs r0, #0 +_08019538: + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08019540: .4byte 0x082C2BDC +_08019544: .4byte 0x082C2BF0 + thumb_func_end SetUnionRoomPlayerEnterExitMovement + diff --git a/asm/unk0.s b/asm/unk0.s new file mode 100644 index 0000000..16c5b17 --- /dev/null +++ b/asm/unk0.s @@ -0,0 +1,166 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + + arm_func_start _start +_start: @ 0x08000000 + b _init +_08000004: + .byte 0x24, 0xFF, 0xAE, 0x51, 0x69, 0x9A, 0xA2, 0x21, 0x3D, 0x84, 0x82, 0x0A + .byte 0x84, 0xE4, 0x09, 0xAD, 0x11, 0x24, 0x8B, 0x98, 0xC0, 0x81, 0x7F, 0x21, 0xA3, 0x52, 0xBE, 0x19 + .byte 0x93, 0x09, 0xCE, 0x20, 0x10, 0x46, 0x4A, 0x4A, 0xF8, 0x27, 0x31, 0xEC, 0x58, 0xC7, 0xE8, 0x33 + .byte 0x82, 0xE3, 0xCE, 0xBF, 0x85, 0xF4, 0xDF, 0x94, 0xCE, 0x4B, 0x09, 0xC1, 0x94, 0x56, 0x8A, 0xC0 + .byte 0x13, 0x72, 0xA7, 0xFC, 0x9F, 0x84, 0x4D, 0x73, 0xA3, 0xCA, 0x9A, 0x61, 0x58, 0x97, 0xA3, 0x27 + .byte 0xFC, 0x03, 0x98, 0x76, 0x23, 0x1D, 0xC7, 0x61, 0x03, 0x04, 0xAE, 0x56, 0xBF, 0x38, 0x84, 0x00 + .byte 0x40, 0xA7, 0x0E, 0xFD, 0xFF, 0x52, 0xFE, 0x03, 0x6F, 0x95, 0x30, 0xF1, 0x97, 0xFB, 0xC0, 0x85 + .byte 0x60, 0xD6, 0x80, 0x25, 0xA9, 0x63, 0xBE, 0x03, 0x01, 0x4E, 0x38, 0xE2, 0xF9, 0xA2, 0x34, 0xFF + .byte 0xBB, 0x3E, 0x03, 0x44, 0x78, 0x00, 0x90, 0xCB, 0x88, 0x11, 0x3A, 0x94, 0x65, 0xC0, 0x7C, 0x63 + .byte 0x87, 0xF0, 0x3C, 0xAF, 0xD6, 0x25, 0xE4, 0x8B, 0x38, 0x0A, 0xAC, 0x72, 0x21, 0xD4, 0xF8, 0x07 + .byte 0x50, 0x4F, 0x4B, 0x45, 0x4D, 0x4F, 0x4E, 0x20, 0x45, 0x4D, 0x45, 0x52, 0x42, 0x50, 0x45, 0x4A + .byte 0x30, 0x31, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x70, 0x6F, 0x6B, 0x65, 0x6D, 0x6F, 0x6E, 0x20 + .byte 0x65, 0x6D, 0x65, 0x72, 0x61, 0x6C, 0x64, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xDA, 0x2D, 0x08, 0x48, 0x61, 0x2D, 0x08 + .byte 0x08, 0x6F, 0x2D, 0x08, 0xC8, 0x7C, 0x2D, 0x08, 0x04, 0x68, 0x55, 0x08, 0xE4, 0x6E, 0x55, 0x08 + .byte 0x9C, 0x70, 0x55, 0x08, 0x1C, 0xA3, 0x2E, 0x08, 0xC4, 0xAC, 0x2E, 0x08, 0xD0, 0x0C, 0x58, 0x08 + .byte 0x70, 0x12, 0x00, 0x00, 0x9C, 0x13, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x88, 0x09, 0x00, 0x00 + .byte 0x24, 0x3B, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0xE4, 0x08, 0x00, 0x00, 0xAC, 0x08, 0x00, 0x00 + .byte 0x82, 0x01, 0x00, 0x00, 0x07, 0x05, 0x0A, 0x05, 0x07, 0x08, 0x06, 0x07, 0x04, 0x0A, 0x12, 0x0A + .byte 0x0A, 0x05, 0x01, 0x08, 0x07, 0x00, 0x00, 0x00, 0x2C, 0x0F, 0x00, 0x00, 0x88, 0x3D, 0x00, 0x00 + .byte 0x34, 0x02, 0x00, 0x00, 0x38, 0x02, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xA8, 0x0C, 0x00, 0x00, 0xA8, 0x0C, 0x00, 0x00 + .byte 0xC7, 0x31, 0x00, 0x00, 0xB3, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x0D, 0x2F, 0x08 + .byte 0xC4, 0xBD, 0x2E, 0x08, 0x34, 0xC0, 0x2E, 0x08, 0xE8, 0xCE, 0x55, 0x08, 0x20, 0xD2, 0x2E, 0x08 + .byte 0x0C, 0xCE, 0x2F, 0x08, 0x6C, 0xCE, 0x2F, 0x08, 0xA8, 0x00, 0x00, 0x00, 0x64, 0x08, 0x00, 0x00 + .byte 0x9B, 0x08, 0x00, 0x00, 0x1E, 0x1E, 0x10, 0x40, 0x2E, 0x32, 0x00, 0x00, 0x98, 0x04, 0x00, 0x00 + .byte 0xA8, 0x31, 0x00, 0x00, 0xF8, 0x31, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0xFF, 0xFF, 0xFF, 0xFF +_init: + mov r0, #0x12 + msr cpsr_fc, r0 + ldr sp, _0800023C + mov r0, #0x1f + msr cpsr_fc, r0 + ldr sp, _08000238 + ldr r1, _08000240 + add r0, pc, #0x20 + str r0, [r1] + ldr r1, _08000244 + mov lr, pc + bx r1 + arm_func_end _start + + arm_func_start _init.ret +_init.ret: @ 0x08000234 + b _init + .align 2, 0 +_08000238: .4byte 0x03007E40 +_0800023C: .4byte 0x03007FA0 +_08000240: .4byte 0x03007FFC +_08000244: .4byte 0x080003A5 + arm_func_end _init.ret + + arm_func_start _intr +_intr: @ 0x08000248 + mov r3, #0x4000000 + add r3, r3, #0x200 + ldr r2, [r3] + ldrh r1, [r3, #8] + mrs r0, spsr + push {r0, r1, r2, r3, lr} + mov r0, #0 + strh r0, [r3, #8] + and r1, r2, r2, lsr #16 + mov ip, #0 + ands r0, r1, #4 + bne _08000320 + add ip, ip, #4 + mov r0, #1 + strh r0, [r3, #8] + ands r0, r1, #0x80 + bne _08000320 + add ip, ip, #4 + ands r0, r1, #0x40 + bne _08000320 + add ip, ip, #4 + ands r0, r1, #2 + bne _08000320 + add ip, ip, #4 + ands r0, r1, #1 + bne _08000320 + add ip, ip, #4 + ands r0, r1, #8 + bne _08000320 + add ip, ip, #4 + ands r0, r1, #0x10 + bne _08000320 + add ip, ip, #4 + ands r0, r1, #0x20 + bne _08000320 + add ip, ip, #4 + ands r0, r1, #0x100 + bne _08000320 + add ip, ip, #4 + ands r0, r1, #0x200 + bne _08000320 + add ip, ip, #4 + ands r0, r1, #0x400 + bne _08000320 + add ip, ip, #4 + ands r0, r1, #0x800 + bne _08000320 + add ip, ip, #4 + ands r0, r1, #0x1000 + bne _08000320 + add ip, ip, #4 + ands r0, r1, #0x2000 + strbne r0, [r3, #-0x17c] +_0800031C: + bne _0800031C +_08000320: + strh r0, [r3, #2] + bic r2, r2, r0 + ldr r0, _0800039C + ldr r0, [r0] + ldrb r0, [r0, #0xa] + mov r1, #8 + lsl r0, r1, r0 + orr r0, r0, #0x2000 + orr r1, r0, #0xc6 + and r1, r1, r2 + strh r1, [r3] + mrs r3, cpsr + bic r3, r3, #0xdf + orr r3, r3, #0x1f + msr cpsr_fc, r3 + ldr r1, _080003A0 + add r1, r1, ip + ldr r0, [r1] + stmdb sp!, {lr} + add lr, pc, #0 + bx r0 + arm_func_end _intr + + arm_func_start _intr.ret +_intr.ret: @ 0x08000374 + ldm sp!, {lr} + mrs r3, cpsr + bic r3, r3, #0xdf + orr r3, r3, #0x92 + msr cpsr_fc, r3 + pop {r0, r1, r2, r3, lr} + strh r2, [r3] + strh r1, [r3, #8] + msr spsr_fc, r0 + bx lr + .align 2, 0 +_0800039C: .4byte 0x03007608 +_080003A0: .4byte 0x030027B0 + arm_func_end _intr.ret + diff --git a/asm/unk_81BAD84.s b/asm/unk_81BAD84.s new file mode 100644 index 0000000..2a57a88 --- /dev/null +++ b/asm/unk_81BAD84.s @@ -0,0 +1,57 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_081BAA20 +sub_081BAA20: @ 0x081BAA20 + push {r4, r5, r6, lr} + movs r6, #0x80 + lsls r6, r6, #0x13 + movs r2, #0 + strh r2, [r6] + ldr r1, _081BAA7C + strh r2, [r1] + adds r1, #2 + strh r2, [r1] + adds r1, #0x3e + strh r2, [r1] + ldr r5, _081BAA80 + lsls r4, r0, #1 + adds r4, r4, r0 + lsls r4, r4, #2 + adds r0, r4, r5 + ldr r0, [r0] + movs r1, #0xc0 + lsls r1, r1, #0x13 + bl LZ77UnCompVram + adds r0, r5, #4 + adds r0, r4, r0 + ldr r0, [r0] + ldr r1, _081BAA84 + bl LZ77UnCompVram + adds r5, #8 + adds r4, r4, r5 + ldr r0, [r4] + movs r1, #0xa0 + lsls r1, r1, #0x13 + movs r4, #0x80 + lsls r4, r4, #1 + adds r2, r4, #0 + bl CpuSet + ldr r1, _081BAA88 + movs r2, #0xf8 + lsls r2, r2, #5 + adds r0, r2, #0 + strh r0, [r1] + strh r4, [r6] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081BAA7C: .4byte 0x04000010 +_081BAA80: .4byte 0x085E72E4 +_081BAA84: .4byte 0x0600F800 +_081BAA88: .4byte 0x04000008 + thumb_func_end sub_081BAA20 + diff --git a/asm/unk_pokedex_area_screen_helper.s b/asm/unk_pokedex_area_screen_helper.s new file mode 100644 index 0000000..6d6003f --- /dev/null +++ b/asm/unk_pokedex_area_screen_helper.s @@ -0,0 +1,189 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_081C4578 +sub_081C4578: @ 0x081C4578 + push {r4, r5, lr} + sub sp, #4 + adds r5, r0, #0 + ldr r4, _081C45D8 + movs r0, #4 + bl Alloc + str r0, [r4] + ldr r1, [r5] + lsls r0, r1, #0x14 + lsrs r4, r0, #0x1e + cmp r4, #0 + bne _081C45E4 + lsls r0, r1, #0x1e + lsrs r0, r0, #0x1e + movs r1, #8 + movs r2, #0 + bl SetBgAttribute + ldr r3, [r5] + lsls r0, r3, #0x1e + lsrs r0, r0, #0x1e + ldr r1, _081C45DC + lsls r3, r3, #0x16 + lsrs r3, r3, #0x18 + str r4, [sp] + movs r2, #0 + bl decompress_and_copy_tile_data_to_vram + ldr r0, [r5] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + ldr r1, _081C45E0 + movs r2, #1 + str r2, [sp] + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, [r5] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x18 + str r4, [sp] + movs r2, #0x20 + movs r3, #0x20 + bl sub_081999D4 + b _081C4636 + .align 2, 0 +_081C45D8: .4byte 0x0203CBF4 +_081C45DC: .4byte 0x085ED5F0 +_081C45E0: .4byte 0x085EE344 +_081C45E4: + lsls r0, r1, #0x1e + lsrs r0, r0, #0x1e + movs r1, #8 + movs r2, #2 + bl SetBgAttribute + ldr r0, [r5] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + movs r1, #9 + movs r2, #1 + bl SetBgAttribute + ldr r3, [r5] + lsls r0, r3, #0x1e + lsrs r0, r0, #0x1e + ldr r1, _081C4680 + lsls r3, r3, #0x16 + lsrs r3, r3, #0x18 + movs r2, #0 + str r2, [sp] + bl decompress_and_copy_tile_data_to_vram + ldr r0, [r5] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + ldr r1, _081C4684 + movs r4, #1 + str r4, [sp] + movs r2, #0 + movs r3, #0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, [r5] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x18 + str r4, [sp] + movs r2, #0x40 + movs r3, #0x40 + bl sub_081999D4 +_081C4636: + ldr r0, [r5] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + movs r1, #0 + movs r2, #0 + bl ChangeBgX + ldr r0, [r5] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + movs r1, #0 + movs r2, #0 + bl ChangeBgY + ldr r0, [r5] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + movs r1, #4 + movs r2, #1 + bl SetBgAttribute + ldr r0, _081C4688 + ldr r1, _081C468C + ldr r2, _081C4690 + bl CpuSet + ldr r0, _081C4694 + ldr r1, [r0] + ldr r0, [r5] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + strb r0, [r1] + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081C4680: .4byte 0x085EE658 +_081C4684: .4byte 0x085EF3B4 +_081C4688: .4byte 0x085ED590 +_081C468C: .4byte 0x02037494 +_081C4690: .4byte 0x04000018 +_081C4694: .4byte 0x0203CBF4 + thumb_func_end sub_081C4578 + + thumb_func_start sub_081C4698 +sub_081C4698: @ 0x081C4698 + push {lr} + bl free_temp_tile_data_buffers_if_possible + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081C46A8 + movs r0, #1 + b _081C46B4 +_081C46A8: + ldr r0, _081C46B8 + ldr r0, [r0] + ldrb r0, [r0] + bl ShowBg + movs r0, #0 +_081C46B4: + pop {r1} + bx r1 + .align 2, 0 +_081C46B8: .4byte 0x0203CBF4 + thumb_func_end sub_081C4698 + + thumb_func_start sub_081C46BC +sub_081C46BC: @ 0x081C46BC + push {r4, lr} + ldr r4, _081C46D4 + ldr r0, [r4] + cmp r0, #0 + beq _081C46CE + bl Free + movs r0, #0 + str r0, [r4] +_081C46CE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081C46D4: .4byte 0x0203CBF4 + thumb_func_end sub_081C46BC + + thumb_func_start sub_081C46D8 +sub_081C46D8: @ 0x081C46D8 + push {lr} + adds r1, r0, #0 + ldr r0, _081C46F0 + ldr r0, [r0] + ldrb r0, [r0] + lsls r1, r1, #8 + movs r2, #0 + bl ChangeBgY + pop {r0} + bx r0 + .align 2, 0 +_081C46F0: .4byte 0x0203CBF4 + thumb_func_end sub_081C46D8 + diff --git a/asm/unk_text_util_2.s b/asm/unk_text_util_2.s new file mode 100644 index 0000000..73d5a65 --- /dev/null +++ b/asm/unk_text_util_2.s @@ -0,0 +1,614 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start Font6Func +Font6Func: @ 0x081B9EF0 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r4, r6, #0 + adds r4, #0x14 + ldrb r0, [r6, #0x1c] + cmp r0, #6 + bls _081B9F00 + b _081BA300 +_081B9F00: + lsls r0, r0, #2 + ldr r1, _081B9F0C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081B9F0C: .4byte 0x081B9F10 +_081B9F10: @ jump table + .4byte _081B9F2C @ case 0 + .4byte _081BA1F4 @ case 1 + .4byte _081BA206 @ case 2 + .4byte _081BA230 @ case 3 + .4byte _081BA268 @ case 4 + .4byte _081BA2DC @ case 5 + .4byte _081BA2EE @ case 6 +_081B9F2C: + ldr r2, _081B9F80 + ldrh r1, [r2, #0x2c] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _081B9F46 + ldrb r1, [r4] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _081B9F46 + movs r0, #0 + strb r0, [r6, #0x1e] +_081B9F46: + ldrb r1, [r6, #0x1e] + cmp r1, #0 + beq _081B9F88 + ldrb r0, [r6, #0x1d] + cmp r0, #0 + beq _081B9F88 + subs r0, r1, #1 + strb r0, [r6, #0x1e] + ldr r0, _081B9F84 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _081B9F64 + b _081BA1AE +_081B9F64: + ldrh r1, [r2, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _081B9F70 + b _081BA1AE +_081B9F70: + ldrb r0, [r4] + movs r1, #0x10 + orrs r0, r1 + strb r0, [r4] + movs r0, #0 + strb r0, [r6, #0x1e] + b _081BA1AE + .align 2, 0 +_081B9F80: .4byte 0x03002360 +_081B9F84: .4byte 0x030030B4 +_081B9F88: + ldr r2, _081B9F98 + ldrb r1, [r2] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _081B9F9C + movs r0, #3 + b _081B9F9E + .align 2, 0 +_081B9F98: .4byte 0x030030B4 +_081B9F9C: + ldrb r0, [r6, #0x1d] +_081B9F9E: + strb r0, [r6, #0x1e] + ldr r0, [r6] + ldrb r3, [r0] + adds r0, #1 + str r0, [r6] + adds r0, r3, #0 + subs r0, #0xf8 + cmp r0, #7 + bls _081B9FB2 + b _081BA1CE +_081B9FB2: + lsls r0, r0, #2 + ldr r1, _081B9FBC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081B9FBC: .4byte 0x081B9FC0 +_081B9FC0: @ jump table + .4byte _081BA1C4 @ case 0 + .4byte _081BA1B2 @ case 1 + .4byte _081BA1A4 @ case 2 + .4byte _081BA1A0 @ case 3 + .4byte _081BA00E @ case 4 + .4byte _081BA008 @ case 5 + .4byte _081B9FE0 @ case 6 + .4byte _081BA300 @ case 7 +_081B9FE0: + ldrb r0, [r6, #6] + strb r0, [r6, #8] + ldrb r1, [r6, #5] + ldr r0, _081BA004 + ldr r2, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r6, #0xb] + ldrb r0, [r0, #5] + adds r1, r1, r0 + ldrb r0, [r6, #9] + adds r0, r0, r1 + strb r0, [r6, #9] +_081B9FFE: + movs r0, #2 + b _081BA302 + .align 2, 0 +_081BA004: .4byte 0x03003020 +_081BA008: + ldr r0, [r6] + adds r0, #1 + b _081BA164 +_081BA00E: + ldr r0, [r6] + ldrb r3, [r0] + adds r0, #1 + str r0, [r6] + subs r0, r3, #1 + cmp r0, #0xf + bls _081BA01E + b _081BA1CE +_081BA01E: + lsls r0, r0, #2 + ldr r1, _081BA028 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081BA028: .4byte 0x081BA02C +_081BA02C: @ jump table + .4byte _081BA06C @ case 0 + .4byte _081BA08E @ case 1 + .4byte _081BA0B2 @ case 2 + .4byte _081BA0CC @ case 3 + .4byte _081BA118 @ case 4 + .4byte _081BA11E @ case 5 + .4byte _081B9FFE @ case 6 + .4byte _081BA138 @ case 7 + .4byte _081BA148 @ case 8 + .4byte _081BA15C @ case 9 + .4byte _081BA160 @ case 10 + .4byte _081BA168 @ case 11 + .4byte _081BA172 @ case 12 + .4byte _081BA17E @ case 13 + .4byte _081BA18E @ case 14 + .4byte _081BA160 @ case 15 +_081BA06C: + ldr r2, [r6] + ldrb r1, [r2] + lsls r1, r1, #4 + ldrb r3, [r6, #0xc] + movs r0, #0xf + ands r0, r3 + orrs r0, r1 + strb r0, [r6, #0xc] + adds r2, #1 + str r2, [r6] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1c + ldrb r2, [r6, #0xd] + lsls r1, r2, #0x1c + lsrs r1, r1, #0x1c + lsrs r2, r2, #4 + b _081BA112 +_081BA08E: + ldr r1, [r6] + ldrb r2, [r1] + movs r0, #0xf + ands r0, r2 + ldrb r3, [r6, #0xd] + movs r2, #0x10 + rsbs r2, r2, #0 + ands r2, r3 + orrs r2, r0 + strb r2, [r6, #0xd] + adds r1, #1 + str r1, [r6] + ldrb r0, [r6, #0xc] + lsrs r0, r0, #4 + lsls r1, r2, #0x1c + lsrs r1, r1, #0x1c + lsrs r2, r2, #4 + b _081BA112 +_081BA0B2: + ldr r1, [r6] + ldrb r0, [r1] + lsls r0, r0, #4 + ldrb r3, [r6, #0xd] + movs r2, #0xf + ands r2, r3 + orrs r2, r0 + strb r2, [r6, #0xd] + adds r1, #1 + str r1, [r6] + ldrb r0, [r6, #0xc] + lsrs r0, r0, #4 + b _081BA10A +_081BA0CC: + ldr r3, [r6] + ldrb r1, [r3] + lsls r1, r1, #4 + ldrb r4, [r6, #0xc] + movs r2, #0xf + adds r0, r2, #0 + ands r0, r4 + orrs r0, r1 + strb r0, [r6, #0xc] + adds r5, r3, #1 + str r5, [r6] + ldrb r3, [r3, #1] + adds r1, r2, #0 + ands r1, r3 + ldrb r4, [r6, #0xd] + movs r3, #0x10 + rsbs r3, r3, #0 + ands r3, r4 + orrs r3, r1 + strb r3, [r6, #0xd] + adds r4, r5, #1 + str r4, [r6] + ldrb r1, [r5, #1] + lsls r1, r1, #4 + ands r2, r3 + orrs r2, r1 + strb r2, [r6, #0xd] + adds r4, #1 + str r4, [r6] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1c +_081BA10A: + lsls r1, r2, #0x1c + lsrs r1, r1, #0x1c + lsls r2, r2, #0x18 + lsrs r2, r2, #0x1c +_081BA112: + bl GenerateFontHalfRowLookupTable + b _081B9FFE +_081BA118: + ldr r0, [r6] + adds r0, #1 + b _081BA164 +_081BA11E: + ldr r0, [r6] + ldrb r0, [r0] + movs r1, #0xf + ands r1, r0 + ldrb r2, [r4] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4] + ldr r0, [r6] + adds r0, #1 + b _081BA164 +_081BA138: + ldr r0, [r6] + ldrb r1, [r0] + strb r1, [r6, #0x1e] + adds r0, #1 + str r0, [r6] + movs r0, #6 + strb r0, [r6, #0x1c] + b _081B9FFE +_081BA148: + movs r0, #1 + strb r0, [r6, #0x1c] + ldrb r1, [r2] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _081BA1AE + movs r0, #0 + strb r0, [r4, #2] + b _081BA1AE +_081BA15C: + movs r0, #5 + b _081BA2EA +_081BA160: + ldr r0, [r6] + adds r0, #2 +_081BA164: + str r0, [r6] + b _081B9FFE +_081BA168: + ldr r1, [r6] + adds r0, r1, #1 + str r0, [r6] + ldrb r3, [r1, #1] + b _081BA1CE +_081BA172: + ldr r1, [r6] + ldrb r0, [r1] + ldrb r2, [r6, #6] + adds r0, r0, r2 + strb r0, [r6, #8] + b _081BA188 +_081BA17E: + ldr r1, [r6] + ldrb r0, [r1] + ldrb r2, [r6, #7] + adds r0, r0, r2 + strb r0, [r6, #9] +_081BA188: + adds r1, #1 + str r1, [r6] + b _081B9FFE +_081BA18E: + ldrb r0, [r6, #4] + ldrb r2, [r6, #0xd] + lsls r2, r2, #0x1c + lsrs r1, r2, #4 + orrs r1, r2 + lsrs r1, r1, #0x18 + bl FillWindowPixelBuffer + b _081B9FFE +_081BA1A0: + movs r0, #2 + b _081BA1A6 +_081BA1A4: + movs r0, #3 +_081BA1A6: + strb r0, [r6, #0x1c] + adds r0, r6, #0 + bl TextPrinterInitDownArrowCounters +_081BA1AE: + movs r0, #3 + b _081BA302 +_081BA1B2: + ldr r0, [r6] + ldrb r3, [r0] + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + orrs r3, r1 + adds r0, #1 + str r0, [r6] + b _081BA1CE +_081BA1C4: + ldr r0, [r6] + adds r0, #1 + str r0, [r6] + movs r0, #0 + b _081BA302 +_081BA1CE: + adds r0, r3, #0 + bl DecompressGlyphFont6 + adds r0, r6, #0 + bl CopyGlyphToWindow + ldr r0, _081BA1F0 + adds r0, #0x80 + ldrb r1, [r6, #0xa] + ldrb r0, [r0] + adds r1, r1, r0 + ldrb r0, [r6, #8] + adds r0, r0, r1 + strb r0, [r6, #8] + movs r0, #0 + b _081BA302 + .align 2, 0 +_081BA1F0: .4byte 0x03003030 +_081BA1F4: + adds r0, r6, #0 + bl TextPrinterWait + lsls r0, r0, #0x10 + cmp r0, #0 + beq _081BA1AE + movs r0, #0 + strb r0, [r6, #0x1c] + b _081BA1AE +_081BA206: + adds r0, r6, #0 + bl TextPrinterWaitWithDownArrow + lsls r0, r0, #0x10 + cmp r0, #0 + beq _081BA1AE + ldrb r0, [r6, #4] + ldrb r2, [r6, #0xd] + lsls r2, r2, #0x1c + lsrs r1, r2, #4 + orrs r1, r2 + lsrs r1, r1, #0x18 + bl FillWindowPixelBuffer + ldrb r0, [r6, #6] + movs r1, #0 + strb r0, [r6, #8] + ldrb r0, [r6, #7] + strb r0, [r6, #9] + strb r1, [r6, #0x1c] + b _081BA1AE +_081BA230: + adds r0, r6, #0 + bl TextPrinterWaitWithDownArrow + lsls r0, r0, #0x10 + cmp r0, #0 + beq _081BA1AE + adds r0, r6, #0 + bl TextPrinterClearDownArrow + ldrb r1, [r6, #5] + ldr r0, _081BA264 + ldr r2, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r6, #0xb] + ldrb r0, [r0, #5] + adds r1, r1, r0 + strb r1, [r6, #0x1f] + ldrb r0, [r6, #6] + strb r0, [r6, #8] + movs r0, #4 + strb r0, [r6, #0x1c] + b _081BA1AE + .align 2, 0 +_081BA264: .4byte 0x03003020 +_081BA268: + ldrb r2, [r6, #0x1f] + cmp r2, #0 + beq _081BA2D8 + ldr r4, _081BA29C + ldr r5, _081BA2A0 + ldr r0, [r5] + ldrb r0, [r0, #0x14] + lsls r1, r0, #0x1d + lsrs r0, r1, #0x1d + adds r0, r0, r4 + ldrb r0, [r0] + cmp r2, r0 + bhs _081BA2A4 + ldrb r0, [r6, #4] + ldrb r1, [r6, #0xd] + lsls r1, r1, #0x1c + lsrs r3, r1, #4 + orrs r3, r1 + lsrs r3, r3, #0x18 + movs r1, #0 + bl ScrollWindow + movs r0, #0 + strb r0, [r6, #0x1f] + b _081BA2CE + .align 2, 0 +_081BA29C: .4byte 0x085E19DC +_081BA2A0: .4byte 0x03005AF0 +_081BA2A4: + ldrb r0, [r6, #4] + lsrs r1, r1, #0x1d + adds r1, r1, r4 + ldrb r2, [r1] + ldrb r1, [r6, #0xd] + lsls r1, r1, #0x1c + lsrs r3, r1, #4 + orrs r3, r1 + lsrs r3, r3, #0x18 + movs r1, #0 + bl ScrollWindow + ldr r0, [r5] + ldrb r0, [r0, #0x14] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1d + adds r0, r0, r4 + ldrb r1, [r6, #0x1f] + ldrb r0, [r0] + subs r1, r1, r0 + strb r1, [r6, #0x1f] +_081BA2CE: + ldrb r0, [r6, #4] + movs r1, #2 + bl CopyWindowToVram + b _081BA1AE +_081BA2D8: + strb r2, [r6, #0x1c] + b _081BA1AE +_081BA2DC: + bl IsSEPlaying + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _081BA2EA + b _081BA1AE +_081BA2EA: + strb r0, [r6, #0x1c] + b _081BA1AE +_081BA2EE: + ldrb r0, [r6, #0x1e] + adds r1, r0, #0 + cmp r1, #0 + beq _081BA2FC + subs r0, #1 + strb r0, [r6, #0x1e] + b _081BA1AE +_081BA2FC: + strb r1, [r6, #0x1c] + b _081BA1AE +_081BA300: + movs r0, #1 +_081BA302: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end Font6Func + + thumb_func_start DecompressGlyphFont6 +DecompressGlyphFont6: @ 0x081BA308 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r2, r0, #0x13 + lsls r2, r2, #9 + movs r1, #0xe0 + lsls r1, r1, #0xb + ands r1, r0 + lsrs r1, r1, #0xb + ldr r0, _081BA364 + adds r1, r1, r0 + adds r5, r2, r1 + ldr r4, _081BA368 + adds r0, r5, #0 + adds r1, r4, #0 + bl DecompressGlyphTile + adds r0, r5, #0 + adds r0, #0x10 + adds r1, r4, #0 + adds r1, #0x20 + bl DecompressGlyphTile + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r5, r1 + adds r1, r4, #0 + adds r1, #0x40 + bl DecompressGlyphTile + movs r1, #0x88 + lsls r1, r1, #1 + adds r0, r5, r1 + adds r1, r4, #0 + adds r1, #0x60 + bl DecompressGlyphTile + adds r0, r4, #0 + adds r0, #0x80 + movs r1, #0x10 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081BA364: .4byte 0x085E19E0 +_081BA368: .4byte 0x03003030 + thumb_func_end DecompressGlyphFont6 + + thumb_func_start GetGlyphWidthFont6 +GetGlyphWidthFont6: @ 0x081BA36C + adds r2, r0, #0 + movs r1, #0 + strb r1, [r2, #0x1e] + strb r1, [r2, #0x18] + strb r1, [r2, #0x1d] + adds r3, r2, #0 + adds r3, #0x4a + movs r0, #0xf + strb r0, [r3] + adds r0, r2, #0 + adds r0, #0x48 + strb r1, [r0] + strh r1, [r2, #0x16] + ldr r0, _081BA398 + strh r1, [r0] + ldr r2, _081BA39C + ldr r3, _081BA3A0 + adds r0, r3, #0 + strh r0, [r2] + ldr r0, _081BA3A4 + strh r1, [r0] + bx lr + .align 2, 0 +_081BA398: .4byte 0x04000134 +_081BA39C: .4byte 0x04000128 +_081BA3A0: .4byte 0x00002003 +_081BA3A4: .4byte 0x0400012A + thumb_func_end GetGlyphWidthFont6 + diff --git a/asm/unk_transition.s b/asm/unk_transition.s new file mode 100644 index 0000000..2d99bea --- /dev/null +++ b/asm/unk_transition.s @@ -0,0 +1,1646 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start sub_081D9F50 +sub_081D9F50: @ 0x081D9F50 + push {lr} + sub sp, #8 + add r1, sp, #4 + mov r0, sp + bl sub_0814A018 + ldr r0, _081D9F88 + ldr r1, [sp, #4] + bl LZ77UnCompVram + ldr r0, _081D9F8C + ldr r1, [sp] + bl LZ77UnCompVram + ldr r0, _081D9F90 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _081D9F94 + bl LoadCompressedSpriteSheet + ldr r0, _081D9F98 + bl LoadSpritePalette + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 +_081D9F88: .4byte 0x085FC03C +_081D9F8C: .4byte 0x085FC218 +_081D9F90: .4byte 0x085FC824 +_081D9F94: .4byte 0x085FCA0C +_081D9F98: .4byte 0x085FCA14 + thumb_func_end sub_081D9F50 + + thumb_func_start sub_081D9F9C +sub_081D9F9C: @ 0x081D9F9C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r5, r0, #0 + adds r6, r1, #0 + ldr r0, [sp, #0x24] + ldr r1, [sp, #0x28] + ldr r4, [sp, #0x2c] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov sl, r3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sb, r1 + lsls r4, r4, #0x18 + lsrs r7, r4, #0x18 + ldr r0, _081D9FF4 + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + lsls r6, r6, #0x10 + asrs r6, r6, #0x10 + adds r1, r5, #0 + adds r2, r6, #0 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r7, #1 + beq _081DA020 + cmp r7, #1 + bgt _081D9FF8 + cmp r7, #0 + beq _081DA008 + b _081D9FFC + .align 2, 0 +_081D9FF4: .4byte 0x085FCA40 +_081D9FF8: + cmp r7, #2 + beq _081DA034 +_081D9FFC: + ldr r6, _081DA004 + lsls r3, r5, #4 + b _081DA048 + .align 2, 0 +_081DA004: .4byte 0x020205AC +_081DA008: + ldr r2, _081DA01C + lsls r3, r5, #4 + adds r0, r3, r5 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0x78 + strh r1, [r0, #0x2e] + movs r1, #0x2d + b _081DA044 + .align 2, 0 +_081DA01C: .4byte 0x020205AC +_081DA020: + ldr r2, _081DA030 + lsls r3, r5, #4 + adds r0, r3, r5 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0x59 + b _081DA040 + .align 2, 0 +_081DA030: .4byte 0x020205AC +_081DA034: + ldr r2, _081DA090 + lsls r3, r5, #4 + adds r0, r3, r5 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0x97 +_081DA040: + strh r1, [r0, #0x2e] + movs r1, #0x61 +_081DA044: + strh r1, [r0, #0x30] + adds r6, r2, #0 +_081DA048: + adds r4, r3, r5 + lsls r4, r4, #2 + adds r0, r4, r6 + mov r2, r8 + lsls r1, r2, #0x18 + asrs r1, r1, #0x18 + movs r2, #0 + strh r1, [r0, #0x32] + mov r3, sb + lsls r1, r3, #0x18 + asrs r1, r1, #0x18 + strh r1, [r0, #0x34] + mov r1, sp + ldrh r1, [r1] + strh r1, [r0, #0x3a] + mov r3, sl + strh r3, [r0, #0x3c] + strh r2, [r0, #0x36] + strh r2, [r0, #0x38] + adds r1, r7, #0 + bl StartSpriteAnim + adds r0, r6, #0 + adds r0, #0x1c + adds r4, r4, r0 + ldr r0, _081DA094 + str r0, [r4] + adds r0, r5, #0 + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081DA090: .4byte 0x020205AC +_081DA094: .4byte 0x081DA099 + thumb_func_end sub_081D9F9C + + thumb_func_start sub_081DA098 +sub_081DA098: @ 0x081DA098 + push {r4, r5, lr} + adds r3, r0, #0 + adds r2, r3, #0 + adds r2, #0x2e + movs r0, #0x20 + ldrsh r1, [r3, r0] + movs r4, #0x2e + ldrsh r0, [r3, r4] + cmp r1, r0 + bne _081DA0C4 + movs r5, #0x22 + ldrsh r1, [r3, r5] + movs r4, #2 + ldrsh r0, [r2, r4] + cmp r1, r0 + bne _081DA0C4 + ldr r0, _081DA0C0 + str r0, [r3, #0x1c] + b _081DA104 + .align 2, 0 +_081DA0C0: .4byte 0x08007141 +_081DA0C4: + ldrh r4, [r2, #8] + movs r5, #8 + ldrsh r1, [r2, r5] + movs r5, #0xc + ldrsh r0, [r2, r5] + cmp r1, r0 + bne _081DA0E0 + ldrh r0, [r2, #4] + ldrh r1, [r3, #0x20] + adds r0, r0, r1 + movs r1, #0 + strh r0, [r3, #0x20] + strh r1, [r2, #8] + b _081DA0E4 +_081DA0E0: + adds r0, r4, #1 + strh r0, [r2, #8] +_081DA0E4: + ldrh r4, [r2, #0xa] + movs r5, #0xa + ldrsh r1, [r2, r5] + movs r5, #0xe + ldrsh r0, [r2, r5] + cmp r1, r0 + bne _081DA100 + ldrh r0, [r2, #6] + ldrh r1, [r3, #0x22] + adds r0, r0, r1 + movs r1, #0 + strh r0, [r3, #0x22] + strh r1, [r2, #0xa] + b _081DA104 +_081DA100: + adds r0, r4, #1 + strh r0, [r2, #0xa] +_081DA104: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081DA098 + + thumb_func_start sub_081DA10C +sub_081DA10C: @ 0x081DA10C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + adds r6, r0, #0 + mov r8, r1 + ldr r0, [sp, #0x2c] + ldr r1, [sp, #0x30] + ldr r4, [sp, #0x34] + ldr r5, [sp, #0x38] + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + str r2, [sp] + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + str r3, [sp, #4] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sb, r1 + lsls r4, r4, #0x10 + lsrs r7, r4, #0x10 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + ldr r0, _081DA170 + lsls r6, r6, #0x10 + asrs r6, r6, #0x10 + mov r1, r8 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + mov r8, r1 + adds r1, r6, #0 + mov r2, r8 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r5, #1 + beq _081DA19C + cmp r5, #1 + bgt _081DA174 + cmp r5, #0 + beq _081DA184 + b _081DA178 + .align 2, 0 +_081DA170: .4byte 0x085FCA40 +_081DA174: + cmp r5, #2 + beq _081DA1B0 +_081DA178: + ldr r2, _081DA180 + lsls r3, r6, #4 + b _081DA1C2 + .align 2, 0 +_081DA180: .4byte 0x020205AC +_081DA184: + ldr r2, _081DA198 + lsls r3, r6, #4 + adds r0, r3, r6 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0x78 + strh r1, [r0, #0x2e] + movs r1, #0x2d + b _081DA1C0 + .align 2, 0 +_081DA198: .4byte 0x020205AC +_081DA19C: + ldr r2, _081DA1AC + lsls r3, r6, #4 + adds r0, r3, r6 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0x59 + b _081DA1BC + .align 2, 0 +_081DA1AC: .4byte 0x020205AC +_081DA1B0: + ldr r2, _081DA204 + lsls r3, r6, #4 + adds r0, r3, r6 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #0x97 +_081DA1BC: + strh r1, [r0, #0x2e] + movs r1, #0x61 +_081DA1C0: + strh r1, [r0, #0x30] +_081DA1C2: + adds r4, r3, r6 + lsls r4, r4, #2 + adds r0, r4, r2 + mov r3, sp + ldrh r3, [r3] + strh r3, [r0, #0x32] + mov r1, sp + ldrh r1, [r1, #4] + strh r1, [r0, #0x34] + mov r3, sl + strh r3, [r0, #0x36] + mov r1, sb + strh r1, [r0, #0x38] + strh r7, [r0, #0x3a] + adds r1, r5, #0 + str r2, [sp, #8] + bl StartSpriteAnim + ldr r2, [sp, #8] + adds r0, r2, #0 + adds r0, #0x1c + adds r4, r4, r0 + ldr r0, _081DA208 + str r0, [r4] + adds r0, r6, #0 + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081DA204: .4byte 0x020205AC +_081DA208: .4byte 0x081DA20D + thumb_func_end sub_081DA10C + + thumb_func_start sub_081DA20C +sub_081DA20C: @ 0x081DA20C + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x32] + bl Sin2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x36 + ldrsh r1, [r4, r2] + muls r0, r1, r0 + asrs r0, r0, #0xc + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x32] + bl Cos2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r3, #0x36 + ldrsh r1, [r4, r3] + muls r0, r1, r0 + asrs r0, r0, #0xc + strh r0, [r4, #0x26] + movs r1, #0x32 + ldrsh r0, [r4, r1] + movs r2, #0x34 + ldrsh r1, [r4, r2] + adds r0, r0, r1 + movs r1, #0xb4 + lsls r1, r1, #1 + bl __modsi3 + strh r0, [r4, #0x32] + ldrh r2, [r4, #0x36] + movs r3, #0x36 + ldrsh r1, [r4, r3] + movs r3, #0x38 + ldrsh r0, [r4, r3] + cmp r1, r0 + beq _081DA262 + ldrh r0, [r4, #0x3a] + adds r0, r2, r0 + strh r0, [r4, #0x36] + b _081DA266 +_081DA262: + ldr r0, _081DA26C + str r0, [r4, #0x1c] +_081DA266: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081DA26C: .4byte 0x08007141 + thumb_func_end sub_081DA20C + + thumb_func_start sub_081DA270 +sub_081DA270: @ 0x081DA270 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _081DA2BC + adds r0, r4, #0 + bl FreeSpriteTilesByTag + adds r0, r4, #0 + bl FreeSpritePaletteByTag + movs r0, #0x10 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _081DA2C0 + adds r0, r0, r4 + bl DestroySprite + movs r0, #0x12 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + movs r0, #0x14 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + bl DestroySprite + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081DA2BC: .4byte 0x00002E90 +_081DA2C0: .4byte 0x020205AC + thumb_func_end sub_081DA270 + + thumb_func_start sub_081DA2C4 +sub_081DA2C4: @ 0x081DA2C4 + push {r4, r5, lr} + adds r3, r0, #0 + ldr r2, _081DA30C + movs r0, #0x10 + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r5, r2, #0 + adds r5, #0x1c + adds r0, r0, r5 + ldr r4, [r0] + ldr r0, _081DA310 + cmp r4, r0 + bne _081DA314 + movs r0, #0x12 + ldrsh r1, [r3, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r2, [r0] + cmp r2, r4 + bne _081DA314 + movs r1, #0x14 + ldrsh r0, [r3, r1] + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r5 + ldr r0, [r1] + cmp r0, r2 + bne _081DA314 + movs r0, #1 + b _081DA316 + .align 2, 0 +_081DA30C: .4byte 0x020205AC +_081DA310: .4byte 0x08007141 +_081DA314: + movs r0, #0 +_081DA316: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_081DA2C4 + + thumb_func_start sub_081DA31C +sub_081DA31C: @ 0x081DA31C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _081DA370 + bl sub_081D9F50 + ldr r1, _081DA36C + movs r0, #0x50 + bl SetGpuReg + movs r1, #0x80 + lsls r1, r1, #5 + movs r0, #0x52 + bl SetGpuReg + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r1, #0xa0 + lsls r1, r1, #3 + movs r0, #0 + movs r2, #2 + bl ChangeBgY + movs r0, #0 + strh r0, [r4, #0xa] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + movs r0, #1 + b _081DA396 + .align 2, 0 +_081DA36C: .4byte 0x00003F41 +_081DA370: + movs r1, #0x80 + lsls r1, r1, #6 + movs r0, #0 + bl ClearGpuRegBits + movs r1, #0x80 + lsls r1, r1, #7 + movs r0, #0 + bl ClearGpuRegBits + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #0 + bl ClearGpuRegBits + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + movs r0, #0 +_081DA396: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_081DA31C + + thumb_func_start sub_081DA39C +sub_081DA39C: @ 0x081DA39C + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + movs r1, #0xc + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _081DA3B4 + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #0 + bl SetGpuRegBits +_081DA3B4: + ldrh r1, [r4, #0xc] + movs r2, #0xc + ldrsh r0, [r4, r2] + cmp r0, #0x10 + bne _081DA3E8 + ldrh r1, [r4, #0xe] + movs r2, #0xe + ldrsh r0, [r4, r2] + cmp r0, #0x1f + bne _081DA3E2 + movs r1, #1 + rsbs r1, r1, #0 + movs r0, #0 + str r0, [sp] + adds r0, r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _081DA400 +_081DA3E2: + adds r0, r1, #1 + strh r0, [r4, #0xe] + b _081DA400 +_081DA3E8: + adds r0, r1, #1 + strh r0, [r4, #0xc] + ldrh r1, [r4, #0xc] + movs r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #8 + orrs r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r0, #0x52 + bl SetGpuReg +_081DA400: + movs r0, #0 + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081DA39C + + thumb_func_start sub_081DA40C +sub_081DA40C: @ 0x081DA40C + push {r4, lr} + adds r4, r0, #0 + bl sub_081DA2C4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _081DA422 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_081DA422: + movs r0, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081DA40C + + thumb_func_start Phase2Task_34 +Phase2Task_34: @ 0x081DA42C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _081DA45C + ldr r2, _081DA460 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_081DA43E: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081DA43E + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081DA45C: .4byte 0x085FCA58 +_081DA460: .4byte 0x03005B60 + thumb_func_end Phase2Task_34 + + thumb_func_start sub_081DA464 +sub_081DA464: @ 0x081DA464 + push {r4, r5, r6, lr} + sub sp, #0xc + adds r6, r0, #0 + movs r1, #0x33 + rsbs r1, r1, #0 + movs r0, #0 + str r0, [sp] + movs r5, #2 + str r5, [sp, #4] + str r0, [sp, #8] + movs r0, #0x78 + movs r2, #0 + movs r3, #0 + bl sub_081D9F9C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r6, #0x10] + movs r0, #7 + rsbs r0, r0, #0 + str r5, [sp] + movs r4, #2 + rsbs r4, r4, #0 + str r4, [sp, #4] + movs r1, #1 + str r1, [sp, #8] + movs r1, #0xc1 + movs r2, #0 + movs r3, #0 + bl sub_081D9F9C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r6, #0x12] + str r4, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #0xf7 + movs r1, #0xc1 + movs r2, #0 + movs r3, #0 + bl sub_081D9F9C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r6, #0x14] + ldrh r0, [r6, #8] + adds r0, #1 + strh r0, [r6, #8] + movs r0, #0 + add sp, #0xc + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_081DA464 + + thumb_func_start sub_081DA4D0 +sub_081DA4D0: @ 0x081DA4D0 + push {lr} + adds r2, r0, #0 + ldr r0, _081DA4FC + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081DA4F4 + adds r0, r2, #0 + bl sub_081DA270 + ldr r0, _081DA500 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_081DA4F4: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_081DA4FC: .4byte 0x02037C74 +_081DA500: .4byte 0x081DA42D + thumb_func_end sub_081DA4D0 + + thumb_func_start Phase2Task_35 +Phase2Task_35: @ 0x081DA504 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _081DA534 + ldr r2, _081DA538 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_081DA516: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081DA516 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081DA534: .4byte 0x085FCA6C +_081DA538: .4byte 0x03005B60 + thumb_func_end Phase2Task_35 + + thumb_func_start sub_081DA53C +sub_081DA53C: @ 0x081DA53C + push {r4, r5, lr} + sub sp, #0xc + adds r5, r0, #0 + movs r0, #0 + str r0, [sp] + movs r4, #4 + rsbs r4, r4, #0 + str r4, [sp, #4] + str r0, [sp, #8] + movs r0, #0x78 + movs r1, #0xc5 + movs r2, #0 + movs r3, #0 + bl sub_081D9F9C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x10] + str r4, [sp] + movs r4, #2 + str r4, [sp, #4] + movs r0, #1 + str r0, [sp, #8] + movs r0, #0xf1 + movs r1, #0x3b + movs r2, #0 + movs r3, #1 + bl sub_081D9F9C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x12] + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #4 + str r1, [sp] + str r4, [sp, #4] + str r4, [sp, #8] + movs r1, #0x3b + movs r2, #0 + movs r3, #1 + bl sub_081D9F9C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x14] + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + movs r0, #0 + add sp, #0xc + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_081DA53C + + thumb_func_start sub_081DA5A8 +sub_081DA5A8: @ 0x081DA5A8 + push {lr} + adds r2, r0, #0 + ldr r0, _081DA5D4 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081DA5CC + adds r0, r2, #0 + bl sub_081DA270 + ldr r0, _081DA5D8 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_081DA5CC: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_081DA5D4: .4byte 0x02037C74 +_081DA5D8: .4byte 0x081DA505 + thumb_func_end sub_081DA5A8 + + thumb_func_start Phase2Task_36 +Phase2Task_36: @ 0x081DA5DC + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _081DA60C + ldr r2, _081DA610 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_081DA5EE: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081DA5EE + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081DA60C: .4byte 0x085FCA80 +_081DA610: .4byte 0x03005B60 + thumb_func_end Phase2Task_36 + + thumb_func_start sub_081DA614 +sub_081DA614: @ 0x081DA614 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0x10 + mov r8, r0 + movs r6, #0x80 + str r6, [sp] + movs r4, #0 + str r4, [sp, #4] + movs r5, #4 + rsbs r5, r5, #0 + str r5, [sp, #8] + str r4, [sp, #0xc] + movs r0, #0x78 + movs r1, #0x2d + movs r2, #0xc + movs r3, #4 + bl sub_081DA10C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, r8 + strh r0, [r1, #0x10] + str r6, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #1 + str r0, [sp, #0xc] + movs r0, #0x59 + movs r1, #0x61 + movs r2, #0xfc + movs r3, #4 + bl sub_081DA10C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, r8 + strh r0, [r1, #0x12] + str r6, [sp] + str r4, [sp, #4] + str r5, [sp, #8] + movs r0, #2 + str r0, [sp, #0xc] + movs r0, #0x97 + movs r1, #0x61 + movs r2, #0x84 + movs r3, #4 + bl sub_081DA10C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, r8 + strh r0, [r1, #0x14] + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + movs r0, #0 + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081DA614 + + thumb_func_start sub_081DA694 +sub_081DA694: @ 0x081DA694 + push {lr} + adds r2, r0, #0 + ldr r0, _081DA6C0 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081DA6B8 + adds r0, r2, #0 + bl sub_081DA270 + ldr r0, _081DA6C4 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_081DA6B8: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_081DA6C0: .4byte 0x02037C74 +_081DA6C4: .4byte 0x081DA5DD + thumb_func_end sub_081DA694 + + thumb_func_start Phase2Task_37 +Phase2Task_37: @ 0x081DA6C8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _081DA6F8 + ldr r2, _081DA6FC + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_081DA6DA: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081DA6DA + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081DA6F8: .4byte 0x085FCA94 +_081DA6FC: .4byte 0x03005B60 + thumb_func_end Phase2Task_37 + + thumb_func_start sub_081DA700 +sub_081DA700: @ 0x081DA700 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0x10 + mov r8, r0 + movs r2, #0x8e + lsls r2, r2, #1 + movs r6, #0x83 + str r6, [sp] + movs r5, #0x23 + str r5, [sp, #4] + movs r4, #3 + rsbs r4, r4, #0 + str r4, [sp, #8] + movs r0, #0 + str r0, [sp, #0xc] + movs r0, #0x78 + movs r1, #0x50 + movs r3, #8 + bl sub_081DA10C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, r8 + strh r0, [r1, #0x10] + str r6, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #1 + str r0, [sp, #0xc] + movs r0, #0x78 + movs r1, #0x50 + movs r2, #0x2c + movs r3, #8 + bl sub_081DA10C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, r8 + strh r0, [r1, #0x12] + str r6, [sp] + str r5, [sp, #4] + str r4, [sp, #8] + movs r0, #2 + str r0, [sp, #0xc] + movs r0, #0x79 + movs r1, #0x50 + movs r2, #0xa4 + movs r3, #8 + bl sub_081DA10C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r1, r8 + strh r0, [r1, #0x14] + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + movs r0, #0 + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081DA700 + + thumb_func_start sub_081DA784 +sub_081DA784: @ 0x081DA784 + push {lr} + adds r2, r0, #0 + ldr r0, _081DA7B0 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081DA7A8 + adds r0, r2, #0 + bl sub_081DA270 + ldr r0, _081DA7B4 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_081DA7A8: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_081DA7B0: .4byte 0x02037C74 +_081DA7B4: .4byte 0x081DA6C9 + thumb_func_end sub_081DA784 + + thumb_func_start Phase2Task_38 +Phase2Task_38: @ 0x081DA7B8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _081DA7E8 + ldr r2, _081DA7EC + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_081DA7CA: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081DA7CA + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081DA7E8: .4byte 0x085FCAA8 +_081DA7EC: .4byte 0x03005B60 + thumb_func_end Phase2Task_38 + + thumb_func_start sub_081DA7F0 +sub_081DA7F0: @ 0x081DA7F0 + push {r4, lr} + sub sp, #0xc + adds r4, r0, #0 + movs r0, #0xa + ldrsh r2, [r4, r0] + cmp r2, #0 + bne _081DA81C + movs r1, #0x33 + rsbs r1, r1, #0 + str r2, [sp] + movs r0, #4 + str r0, [sp, #4] + str r2, [sp, #8] + movs r0, #0x78 + movs r2, #0 + movs r3, #0 + bl sub_081D9F9C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x10] + b _081DA86A +_081DA81C: + cmp r2, #0x10 + bne _081DA842 + movs r0, #7 + rsbs r0, r0, #0 + movs r1, #4 + str r1, [sp] + subs r1, #8 + str r1, [sp, #4] + movs r1, #1 + str r1, [sp, #8] + movs r1, #0xc1 + movs r2, #0 + movs r3, #0 + bl sub_081D9F9C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x12] + b _081DA86A +_081DA842: + cmp r2, #0x20 + bne _081DA86A + movs r0, #4 + rsbs r0, r0, #0 + str r0, [sp] + str r0, [sp, #4] + movs r0, #2 + str r0, [sp, #8] + movs r0, #0xf7 + movs r1, #0xc1 + movs r2, #0 + movs r3, #0 + bl sub_081D9F9C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x14] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_081DA86A: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + movs r0, #0 + add sp, #0xc + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081DA7F0 + + thumb_func_start sub_081DA87C +sub_081DA87C: @ 0x081DA87C + push {lr} + adds r2, r0, #0 + ldr r0, _081DA8A8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081DA8A0 + adds r0, r2, #0 + bl sub_081DA270 + ldr r0, _081DA8AC + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_081DA8A0: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_081DA8A8: .4byte 0x02037C74 +_081DA8AC: .4byte 0x081DA7B9 + thumb_func_end sub_081DA87C + + thumb_func_start Phase2Task_39 +Phase2Task_39: @ 0x081DA8B0 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _081DA8E0 + ldr r2, _081DA8E4 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_081DA8C2: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081DA8C2 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081DA8E0: .4byte 0x085FCABC +_081DA8E4: .4byte 0x03005B60 + thumb_func_end Phase2Task_39 + + thumb_func_start sub_081DA8E8 +sub_081DA8E8: @ 0x081DA8E8 + push {r4, lr} + sub sp, #0xc + adds r4, r0, #0 + movs r0, #0xa + ldrsh r1, [r4, r0] + cmp r1, #0 + bne _081DA914 + str r1, [sp] + movs r0, #8 + rsbs r0, r0, #0 + str r0, [sp, #4] + str r1, [sp, #8] + movs r0, #0x78 + movs r1, #0xc5 + movs r2, #0 + movs r3, #0 + bl sub_081D9F9C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x10] + b _081DA962 +_081DA914: + cmp r1, #0x10 + bne _081DA938 + movs r0, #8 + rsbs r0, r0, #0 + str r0, [sp] + movs r0, #1 + str r0, [sp, #4] + str r0, [sp, #8] + movs r0, #0xf1 + movs r1, #0x4e + movs r2, #0 + movs r3, #0 + bl sub_081D9F9C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x12] + b _081DA962 +_081DA938: + cmp r1, #0x20 + bne _081DA962 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #8 + str r1, [sp] + movs r1, #1 + str r1, [sp, #4] + movs r1, #2 + str r1, [sp, #8] + movs r1, #0x4e + movs r2, #0 + movs r3, #0 + bl sub_081D9F9C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x14] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_081DA962: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + movs r0, #0 + add sp, #0xc + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081DA8E8 + + thumb_func_start sub_081DA974 +sub_081DA974: @ 0x081DA974 + push {lr} + adds r2, r0, #0 + ldr r0, _081DA9A0 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081DA998 + adds r0, r2, #0 + bl sub_081DA270 + ldr r0, _081DA9A4 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_081DA998: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_081DA9A0: .4byte 0x02037C74 +_081DA9A4: .4byte 0x081DA8B1 + thumb_func_end sub_081DA974 + + thumb_func_start Phase2Task_40 +Phase2Task_40: @ 0x081DA9A8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _081DA9D8 + ldr r2, _081DA9DC + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_081DA9BA: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081DA9BA + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081DA9D8: .4byte 0x085FCAD0 +_081DA9DC: .4byte 0x03005B60 + thumb_func_end Phase2Task_40 + + thumb_func_start sub_081DA9E0 +sub_081DA9E0: @ 0x081DA9E0 + push {r4, lr} + sub sp, #0x10 + adds r4, r0, #0 + movs r0, #0xa + ldrsh r1, [r4, r0] + cmp r1, #0 + bne _081DAA0E + movs r0, #0x80 + str r0, [sp] + str r1, [sp, #4] + subs r0, #0x84 + str r0, [sp, #8] + str r1, [sp, #0xc] + movs r0, #0x78 + movs r1, #0x2d + movs r2, #0xc + movs r3, #4 + bl sub_081DA10C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x10] + b _081DAA62 +_081DAA0E: + cmp r1, #0x10 + bne _081DAA36 + movs r0, #0x80 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + subs r0, #4 + str r0, [sp, #8] + movs r0, #1 + str r0, [sp, #0xc] + movs r0, #0x59 + movs r1, #0x61 + movs r2, #0xfc + movs r3, #4 + bl sub_081DA10C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x12] + b _081DAA62 +_081DAA36: + cmp r1, #0x20 + bne _081DAA62 + movs r0, #0x80 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + subs r0, #4 + str r0, [sp, #8] + movs r0, #2 + str r0, [sp, #0xc] + movs r0, #0x97 + movs r1, #0x61 + movs r2, #0x84 + movs r3, #4 + bl sub_081DA10C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x14] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_081DAA62: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + movs r0, #0 + add sp, #0x10 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081DA9E0 + + thumb_func_start sub_081DAA74 +sub_081DAA74: @ 0x081DAA74 + push {lr} + adds r2, r0, #0 + ldr r0, _081DAAA0 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081DAA98 + adds r0, r2, #0 + bl sub_081DA270 + ldr r0, _081DAAA4 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_081DAA98: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_081DAAA0: .4byte 0x02037C74 +_081DAAA4: .4byte 0x081DA9A9 + thumb_func_end sub_081DAA74 + + thumb_func_start Phase2Task_41 +Phase2Task_41: @ 0x081DAAA8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _081DAAD8 + ldr r2, _081DAADC + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r4, r1, r2 +_081DAABA: + movs r1, #8 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081DAABA + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081DAAD8: .4byte 0x085FCAE4 +_081DAADC: .4byte 0x03005B60 + thumb_func_end Phase2Task_41 + + thumb_func_start sub_081DAAE0 +sub_081DAAE0: @ 0x081DAAE0 + push {r4, lr} + sub sp, #0x10 + adds r4, r0, #0 + movs r0, #0xa + ldrsh r1, [r4, r0] + cmp r1, #0 + bne _081DAB12 + movs r2, #0x8e + lsls r2, r2, #1 + movs r0, #0x83 + str r0, [sp] + movs r0, #0x23 + str r0, [sp, #4] + subs r0, #0x26 + str r0, [sp, #8] + str r1, [sp, #0xc] + movs r0, #0x78 + movs r1, #0x50 + movs r3, #8 + bl sub_081DA10C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x10] + b _081DAB66 +_081DAB12: + cmp r1, #0x10 + bne _081DAB3A + movs r0, #0x83 + str r0, [sp] + movs r0, #0x23 + str r0, [sp, #4] + subs r0, #0x26 + str r0, [sp, #8] + movs r0, #1 + str r0, [sp, #0xc] + movs r0, #0x78 + movs r1, #0x50 + movs r2, #0x2c + movs r3, #8 + bl sub_081DA10C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x12] + b _081DAB66 +_081DAB3A: + cmp r1, #0x20 + bne _081DAB66 + movs r0, #0x83 + str r0, [sp] + movs r0, #0x23 + str r0, [sp, #4] + subs r0, #0x26 + str r0, [sp, #8] + movs r0, #2 + str r0, [sp, #0xc] + movs r0, #0x79 + movs r1, #0x50 + movs r2, #0xa4 + movs r3, #8 + bl sub_081DA10C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x14] + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_081DAB66: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + movs r0, #0 + add sp, #0x10 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_081DAAE0 + + thumb_func_start sub_081DAB78 +sub_081DAB78: @ 0x081DAB78 + push {lr} + adds r2, r0, #0 + ldr r0, _081DABA4 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _081DAB9C + adds r0, r2, #0 + bl sub_081DA270 + ldr r0, _081DABA8 + bl FindTaskIdByFunc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl DestroyTask +_081DAB9C: + movs r0, #0 + pop {r1} + bx r1 + .align 2, 0 +_081DABA4: .4byte 0x02037C74 +_081DABA8: .4byte 0x081DAAA9 + thumb_func_end sub_081DAB78 + diff --git a/asm/use_pokeblock.s b/asm/use_pokeblock.s new file mode 100644 index 0000000..67dbad5 --- /dev/null +++ b/asm/use_pokeblock.s @@ -0,0 +1,4126 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start ChooseMonToGivePokeblock +ChooseMonToGivePokeblock: @ 0x08166010 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + ldr r4, _08166040 + ldr r0, _08166044 + bl AllocZeroed + str r0, [r4] + ldr r1, _08166048 + ldr r2, _0816604C + adds r0, r0, r2 + str r0, [r1] + str r5, [r0, #8] + str r6, [r0, #4] + ldr r0, _08166050 + bl sub_08166178 + ldr r0, _08166054 + bl SetMainCallback2 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08166040: .4byte 0x0203B978 +_08166044: .4byte 0x00008058 +_08166048: .4byte 0x0203B95C +_0816604C: .4byte 0x00007FD0 +_08166050: .4byte 0x0816618D +_08166054: .4byte 0x08166129 + thumb_func_end ChooseMonToGivePokeblock + + thumb_func_start CB2_ReturnAndChooseMonToGivePokeblock +CB2_ReturnAndChooseMonToGivePokeblock: @ 0x08166058 + push {r4, r5, lr} + ldr r4, _081660A8 + ldr r0, _081660AC + bl AllocZeroed + str r0, [r4] + ldr r5, _081660B0 + ldr r1, _081660B4 + adds r0, r0, r1 + str r0, [r5] + ldr r1, _081660B8 + ldr r1, [r1] + str r1, [r0, #8] + ldr r1, _081660BC + ldr r1, [r1] + str r1, [r0, #4] + ldr r4, _081660C0 + ldrb r0, [r4] + bl sub_081670E8 + strb r0, [r4] + ldr r5, [r5] + movs r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _08166090 + movs r1, #1 +_08166090: + adds r0, r5, #0 + adds r0, #0x56 + strb r1, [r0] + ldr r0, _081660C4 + bl sub_08166178 + ldr r0, _081660C8 + bl SetMainCallback2 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081660A8: .4byte 0x0203B978 +_081660AC: .4byte 0x00008058 +_081660B0: .4byte 0x0203B95C +_081660B4: .4byte 0x00007FD0 +_081660B8: .4byte 0x0203B964 +_081660BC: .4byte 0x0203B960 +_081660C0: .4byte 0x0203B968 +_081660C4: .4byte 0x0816618D +_081660C8: .4byte 0x081660CD + thumb_func_end CB2_ReturnAndChooseMonToGivePokeblock + + thumb_func_start sub_081660CC +sub_081660CC: @ 0x081660CC + push {r4, lr} + ldr r4, _08166104 + ldr r0, [r4] + ldr r0, [r0] + bl _call_via_r0 + bl AnimateSprites + thumb_func_end sub_081660CC + + thumb_func_start sub_081660DC +sub_081660DC: @ 0x081660DC + bl BuildOamBuffer + bl UpdatePaletteFade + ldr r4, [r4] + ldr r1, [r4] + ldr r0, _08166108 + cmp r1, r0 + bne _081660FC + adds r0, r4, #0 + adds r0, #0x50 + movs r1, #0 + strb r1, [r0] + ldr r0, _0816610C + bl SetMainCallback2 +_081660FC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08166104: .4byte 0x0203B95C +_08166108: .4byte 0x08166371 +_0816610C: .4byte 0x08166111 + thumb_func_end sub_081660DC + + thumb_func_start sub_08166110 +sub_08166110: @ 0x08166110 + push {lr} + bl sub_08166704 + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08166110 + + thumb_func_start sub_08166128 +sub_08166128: @ 0x08166128 + push {lr} + ldr r0, _08166148 + ldr r0, [r0] + ldr r0, [r0] + bl _call_via_r0 + bl AnimateSprites + thumb_func_end sub_08166128 + + thumb_func_start sub_08166138 +sub_08166138: @ 0x08166138 + bl BuildOamBuffer + bl RunTextPrinters + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 +_08166148: .4byte 0x0203B95C + thumb_func_end sub_08166138 + + thumb_func_start sub_0816614C +sub_0816614C: @ 0x0816614C + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + ldr r0, _08166170 + ldr r0, [r0] + ldr r1, _08166174 + adds r0, r0, r1 + bl sub_081D1750 + bl ScanlineEffect_InitHBlankDmaTransfer + pop {r0} + bx r0 + .align 2, 0 +_08166170: .4byte 0x0203B978 +_08166174: .4byte 0x00007C58 + thumb_func_end sub_0816614C + + thumb_func_start sub_08166178 +sub_08166178: @ 0x08166178 + ldr r1, _08166188 + ldr r1, [r1] + str r0, [r1] + adds r1, #0x50 + movs r0, #0 + strb r0, [r1] + bx lr + .align 2, 0 +_08166188: .4byte 0x0203B95C + thumb_func_end sub_08166178 + + thumb_func_start sub_0816618C +sub_0816618C: @ 0x0816618C + push {r4, r5, lr} + sub sp, #4 + ldr r1, _081661AC + ldr r0, [r1] + adds r0, #0x50 + ldrb r0, [r0] + adds r2, r1, #0 + cmp r0, #0xf + bls _081661A0 + b _08166362 +_081661A0: + lsls r0, r0, #2 + ldr r1, _081661B0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081661AC: .4byte 0x0203B95C +_081661B0: .4byte 0x081661B4 +_081661B4: @ jump table + .4byte _081661F4 @ case 0 + .4byte _08166218 @ case 1 + .4byte _08166222 @ case 2 + .4byte _08166240 @ case 3 + .4byte _08166270 @ case 4 + .4byte _08166274 @ case 5 + .4byte _08166280 @ case 6 + .4byte _08166290 @ case 7 + .4byte _0816629C @ case 8 + .4byte _081662A8 @ case 9 + .4byte _081662C4 @ case 10 + .4byte _081662C8 @ case 11 + .4byte _081662F0 @ case 12 + .4byte _0816631C @ case 13 + .4byte _08166334 @ case 14 + .4byte _0816635C @ case 15 +_081661F4: + ldr r2, _0816620C + ldr r0, [r2] + ldr r1, _08166210 + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] + ldr r0, [r2] + ldr r2, _08166214 + adds r0, r0, r2 + bl sub_081D151C + b _08166348 + .align 2, 0 +_0816620C: .4byte 0x0203B978 +_08166210: .4byte 0x00007B10 +_08166214: .4byte 0x00007C58 +_08166218: + bl ResetSpriteData + bl FreeAllSpritePalettes + b _08166348 +_08166222: + movs r0, #0 + bl SetVBlankCallback + movs r0, #0 + str r0, [sp] + movs r1, #0xc0 + lsls r1, r1, #0x13 + ldr r2, _0816623C + mov r0, sp + bl CpuSet + b _08166348 + .align 2, 0 +_0816623C: .4byte 0x05006000 +_08166240: + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _08166268 + movs r0, #0 + movs r2, #4 + bl InitBgsFromTemplates + ldr r0, _0816626C + bl InitWindows + bl DeactivateAllTextPrinters + movs r0, #0 + movs r1, #0x91 + movs r2, #0xe0 + bl LoadUserWindowBorderGfx + b _08166348 + .align 2, 0 +_08166268: .4byte 0x085C09B0 +_0816626C: .4byte 0x085C09C0 +_08166270: + ldr r1, [r2] + b _0816634C +_08166274: + bl sub_08168130 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08166362 + b _08166348 +_08166280: + ldr r1, _0816628C + movs r0, #0x14 + strh r0, [r1] + bl sub_08167224 + b _08166348 + .align 2, 0 +_0816628C: .4byte 0x03002350 +_08166290: + bl sub_08167734 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08166362 + b _08166348 +_0816629C: + movs r0, #0 + bl sub_0816740C + bl sub_08167564 + b _08166348 +_081662A8: + ldr r0, _081662BC + ldr r0, [r0] + ldr r1, _081662C0 + adds r0, r0, r1 + bl sub_081D275C + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08166362 + b _08166348 + .align 2, 0 +_081662BC: .4byte 0x0203B978 +_081662C0: .4byte 0x00007B0E +_081662C4: + ldr r1, [r2] + b _0816634C +_081662C8: + ldr r5, _081662E4 + ldr r1, [r5] + ldr r4, _081662E8 + adds r0, r1, r4 + ldr r2, _081662EC + adds r1, r1, r2 + bl sub_081D1D70 + ldr r0, [r5] + adds r0, r0, r4 + bl sub_081D16F4 + b _08166348 + .align 2, 0 +_081662E4: .4byte 0x0203B978 +_081662E8: .4byte 0x00007C58 +_081662EC: .4byte 0x00007C6C +_081662F0: + ldr r4, _08166314 + ldr r0, [r4] + ldr r1, _08166318 + adds r0, r0, r1 + bl sub_081D1704 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08166362 + ldr r2, [r4] + ldr r1, _08166318 + adds r0, r2, r1 + adds r1, #0x14 + adds r2, r2, r1 + adds r1, r2, #0 + bl sub_081D15CC + b _08166348 + .align 2, 0 +_08166314: .4byte 0x0203B978 +_08166318: .4byte 0x00007C58 +_0816631C: + ldr r0, _0816632C + ldr r0, [r0] + ldr r2, _08166330 + adds r0, r0, r2 + bl sub_081D1878 + b _08166348 + .align 2, 0 +_0816632C: .4byte 0x0203B978 +_08166330: .4byte 0x00007C58 +_08166334: + movs r0, #0 + movs r1, #1 + bl sub_081679A4 + movs r0, #0 + bl PutWindowTilemap + movs r0, #1 + bl PutWindowTilemap +_08166348: + ldr r0, _08166358 + ldr r1, [r0] +_0816634C: + adds r1, #0x50 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _08166362 + .align 2, 0 +_08166358: .4byte 0x0203B95C +_0816635C: + ldr r0, _0816636C + bl sub_08166178 +_08166362: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0816636C: .4byte 0x08166371 + thumb_func_end sub_0816618C + + thumb_func_start sub_08166370 +sub_08166370: @ 0x08166370 + push {r4, lr} + sub sp, #4 + ldr r4, _08166388 + ldr r0, [r4] + adds r0, #0x50 + ldrb r1, [r0] + cmp r1, #0 + beq _0816638C + cmp r1, #1 + beq _081663CC + b _0816641C + .align 2, 0 +_08166388: .4byte 0x0203B95C +_0816638C: + movs r0, #1 + rsbs r0, r0, #0 + str r1, [sp] + movs r1, #0 + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + ldr r0, _081663C8 + bl SetVBlankCallback + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #3 + bl ShowBg + movs r0, #2 + bl ShowBg + ldr r1, [r4] + adds r1, #0x50 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0816641C + .align 2, 0 +_081663C8: .4byte 0x0816614D +_081663CC: + ldr r0, _08166424 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0816641C + ldr r4, _08166428 + ldr r0, [r4] + ldr r1, _0816642C + adds r0, r0, r1 + bl sub_081D2A94 + ldr r4, [r4] + ldr r2, _08166430 + adds r0, r4, r2 + ldrb r1, [r0] + ldr r3, _08166434 + adds r0, r4, r3 + ldrb r0, [r0] + subs r0, #1 + cmp r1, r0 + beq _08166416 + ldr r1, _08166438 + adds r0, r4, r1 + movs r1, #0 + ldrsb r1, [r0, r1] + subs r2, #0x91 + adds r0, r4, r2 + adds r0, r0, r1 + ldrb r2, [r0] + ldr r3, _0816642C + adds r0, r4, r3 + subs r3, #0xc + adds r1, r4, r3 + ldrb r1, [r1] + bl sub_081D2AB0 +_08166416: + ldr r0, _0816643C + bl sub_08166178 +_0816641C: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08166424: .4byte 0x02037C74 +_08166428: .4byte 0x0203B978 +_0816642C: .4byte 0x00007B1C +_08166430: .4byte 0x00008041 +_08166434: .4byte 0x00008040 +_08166438: .4byte 0x00007FB3 +_0816643C: .4byte 0x08166441 + thumb_func_end sub_08166370 + + thumb_func_start sub_08166440 +sub_08166440: @ 0x08166440 + push {lr} + ldr r0, _0816645C + ldr r0, [r0] + adds r0, #0x50 + ldrb r0, [r0] + cmp r0, #7 + bls _08166450 + b _0816661A +_08166450: + lsls r0, r0, #2 + ldr r1, _08166460 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0816645C: .4byte 0x0203B95C +_08166460: .4byte 0x08166464 +_08166464: @ jump table + .4byte _08166484 @ case 0 + .4byte _08166568 @ case 1 + .4byte _0816661A @ case 2 + .4byte _08166594 @ case 3 + .4byte _0816661A @ case 4 + .4byte _081665A0 @ case 5 + .4byte _081665B8 @ case 6 + .4byte _08166600 @ case 7 +_08166484: + ldr r2, _081664B4 + ldrh r1, [r2, #0x2c] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _081664C4 + movs r0, #5 + bl PlaySE + movs r0, #1 + bl sub_08167AA8 + ldr r0, _081664B8 + ldr r0, [r0] + ldr r1, _081664BC + adds r0, r0, r1 + bl sub_081D2B50 + ldr r0, _081664C0 + ldr r0, [r0] + adds r0, #0x50 + movs r1, #1 + b _08166618 + .align 2, 0 +_081664B4: .4byte 0x03002360 +_081664B8: .4byte 0x0203B978 +_081664BC: .4byte 0x00007B1C +_081664C0: .4byte 0x0203B95C +_081664C4: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _081664FC + movs r0, #5 + bl PlaySE + movs r0, #0 + bl sub_08167AA8 + ldr r0, _081664F0 + ldr r0, [r0] + ldr r2, _081664F4 + adds r0, r0, r2 + bl sub_081D2B50 + ldr r0, _081664F8 + ldr r0, [r0] + adds r0, #0x50 + movs r1, #1 + b _08166618 + .align 2, 0 +_081664F0: .4byte 0x0203B978 +_081664F4: .4byte 0x00007B1C +_081664F8: .4byte 0x0203B95C +_081664FC: + ldrh r1, [r2, #0x2e] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0816651C + movs r0, #5 + bl PlaySE + ldr r0, _08166518 + ldr r0, [r0] + adds r0, #0x50 + movs r1, #3 + b _08166618 + .align 2, 0 +_08166518: .4byte 0x0203B95C +_0816651C: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08166526 + b _0816661A +_08166526: + movs r0, #5 + bl PlaySE + ldr r0, _0816654C + ldr r0, [r0] + ldr r2, _08166550 + adds r1, r0, r2 + ldrb r1, [r1] + subs r2, #1 + adds r0, r0, r2 + ldrb r0, [r0] + subs r0, #1 + cmp r1, r0 + bne _08166558 + ldr r0, _08166554 + ldr r0, [r0] + adds r0, #0x50 + movs r1, #3 + b _08166618 + .align 2, 0 +_0816654C: .4byte 0x0203B978 +_08166550: .4byte 0x00008041 +_08166554: .4byte 0x0203B95C +_08166558: + ldr r0, _08166564 + ldr r0, [r0] + adds r0, #0x50 + movs r1, #5 + b _08166618 + .align 2, 0 +_08166564: .4byte 0x0203B95C +_08166568: + ldr r0, _08166588 + ldr r0, [r0] + ldr r1, _0816658C + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0816661A + ldr r0, _08166590 + ldr r0, [r0] + adds r0, #0x50 + b _08166618 + .align 2, 0 +_08166588: .4byte 0x0203B978 +_0816658C: .4byte 0x00008044 +_08166590: .4byte 0x0203B95C +_08166594: + ldr r0, _0816659C + bl sub_08166178 + b _0816661A + .align 2, 0 +_0816659C: .4byte 0x081669F9 +_081665A0: + bl sub_08166B50 + ldr r0, _081665B4 + ldr r1, [r0] + adds r1, #0x50 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0816661A + .align 2, 0 +_081665B4: .4byte 0x0203B95C +_081665B8: + bl sub_08166BF0 + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _081665D8 + cmp r1, #0 + bgt _081665D2 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _08166610 + b _0816661A +_081665D2: + cmp r1, #1 + bne _0816661A + b _08166610 +_081665D8: + bl IsSheenMaxed + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081665F4 + bl sub_08166D5C + ldr r0, _081665F0 + ldr r0, [r0] + adds r0, #0x50 + movs r1, #7 + b _08166618 + .align 2, 0 +_081665F0: .4byte 0x0203B95C +_081665F4: + ldr r0, _081665FC + bl sub_08166178 + b _0816661A + .align 2, 0 +_081665FC: .4byte 0x08166629 +_08166600: + ldr r0, _08166620 + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _0816661A + bl sub_08166D98 +_08166610: + ldr r0, _08166624 + ldr r0, [r0] + adds r0, #0x50 + movs r1, #0 +_08166618: + strb r1, [r0] +_0816661A: + pop {r0} + bx r0 + .align 2, 0 +_08166620: .4byte 0x03002360 +_08166624: .4byte 0x0203B95C + thumb_func_end sub_08166440 + + thumb_func_start sub_08166628 +sub_08166628: @ 0x08166628 + push {r4, r5, lr} + sub sp, #4 + ldr r5, _08166640 + ldr r0, [r5] + adds r0, #0x50 + ldrb r4, [r0] + cmp r4, #0 + beq _08166644 + cmp r4, #1 + beq _08166694 + b _081666E0 + .align 2, 0 +_08166640: .4byte 0x0203B95C +_08166644: + ldr r0, _08166680 + ldr r0, [r0] + ldr r1, _08166684 + adds r0, r0, r1 + ldrb r0, [r0] + bl sub_081670A8 + ldr r1, _08166688 + strb r0, [r1] + ldr r1, _0816668C + ldr r2, [r5] + ldr r0, [r2, #4] + str r0, [r1] + ldr r1, _08166690 + ldr r0, [r2, #8] + str r0, [r1] + movs r0, #1 + rsbs r0, r0, #0 + str r4, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, [r5] + adds r1, #0x50 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _081666E0 + .align 2, 0 +_08166680: .4byte 0x0203B978 +_08166684: .4byte 0x00008041 +_08166688: .4byte 0x0203B968 +_0816668C: .4byte 0x0203B960 +_08166690: .4byte 0x0203B964 +_08166694: + ldr r0, _081666E8 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _081666E0 + movs r0, #0 + bl SetVBlankCallback + ldr r4, _081666EC + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _081666F0 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _081666F4 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _081666F8 + ldr r0, [r4] + bl Free + str r5, [r4] + bl FreeAllWindowBuffers + ldr r1, _081666FC + ldr r0, _08166700 + str r0, [r1, #8] + bl CB2_PreparePokeblockFeedScene +_081666E0: + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081666E8: .4byte 0x02037C74 +_081666EC: .4byte 0x0203B96C +_081666F0: .4byte 0x0203B970 +_081666F4: .4byte 0x0203B974 +_081666F8: .4byte 0x0203B978 +_081666FC: .4byte 0x03002360 +_08166700: .4byte 0x08166059 + thumb_func_end sub_08166628 + + thumb_func_start sub_08166704 +sub_08166704: @ 0x08166704 + push {r4, lr} + sub sp, #4 + ldr r1, _08166724 + ldr r0, [r1] + adds r0, #0x50 + ldrb r0, [r0] + adds r4, r1, #0 + cmp r0, #6 + bls _08166718 + b _08166824 +_08166718: + lsls r0, r0, #2 + ldr r1, _08166728 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08166724: .4byte 0x0203B95C +_08166728: .4byte 0x0816672C +_0816672C: @ jump table + .4byte _08166748 @ case 0 + .4byte _0816677E @ case 1 + .4byte _08166824 @ case 2 + .4byte _081667AC @ case 3 + .4byte _081667BA @ case 4 + .4byte _081667D4 @ case 5 + .4byte _08166800 @ case 6 +_08166748: + ldr r0, _08166768 + ldr r0, [r0] + ldr r1, _0816676C + adds r0, r0, r1 + ldr r1, _08166770 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _08166774 + ldr r0, [r4] + adds r0, #0x56 + ldrb r0, [r0] + bl sub_08167AA8 + ldr r1, [r4] + b _081667EE + .align 2, 0 +_08166768: .4byte 0x0203B978 +_0816676C: .4byte 0x00008041 +_08166770: .4byte 0x0203B968 +_08166774: + ldr r0, [r4] + adds r0, #0x50 + movs r1, #3 + strb r1, [r0] + b _08166824 +_0816677E: + ldr r0, _081667A0 + ldr r0, [r0] + ldr r1, _081667A4 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _08166824 + ldr r0, _081667A8 + ldr r0, [r0] + adds r0, #0x50 + strb r1, [r0] + b _08166824 + .align 2, 0 +_081667A0: .4byte 0x0203B978 +_081667A4: .4byte 0x00008044 +_081667A8: .4byte 0x0203B95C +_081667AC: + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0x10 + movs r2, #0 + bl BlendPalettes + b _081667EA +_081667BA: + movs r0, #0 + bl ShowBg + movs r0, #1 + bl ShowBg + movs r0, #3 + bl ShowBg + movs r0, #2 + bl ShowBg + b _081667EA +_081667D4: + ldr r0, _081667F8 + bl SetVBlankCallback + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade +_081667EA: + ldr r0, _081667FC + ldr r1, [r0] +_081667EE: + adds r1, #0x50 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _08166824 + .align 2, 0 +_081667F8: .4byte 0x0816614D +_081667FC: .4byte 0x0203B95C +_08166800: + ldr r0, _0816682C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08166824 + ldr r0, _08166830 + ldr r0, [r0] + ldr r1, _08166834 + adds r0, r0, r1 + bl sub_081D2A94 + ldr r0, _08166838 + bl sub_08166178 + ldr r0, _0816683C + bl SetMainCallback2 +_08166824: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0816682C: .4byte 0x02037C74 +_08166830: .4byte 0x0203B978 +_08166834: .4byte 0x00007B1C +_08166838: .4byte 0x08166841 +_0816683C: .4byte 0x08166129 + thumb_func_end sub_08166704 + + thumb_func_start sub_08166840 +sub_08166840: @ 0x08166840 + push {r4, r5, r6, lr} + ldr r1, _0816685C + ldr r0, [r1] + adds r0, #0x50 + ldrb r0, [r0] + adds r5, r1, #0 + cmp r0, #5 + bls _08166852 + b _081669E6 +_08166852: + lsls r0, r0, #2 + ldr r1, _08166860 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0816685C: .4byte 0x0203B95C +_08166860: .4byte 0x08166864 +_08166864: @ jump table + .4byte _0816687C @ case 0 + .4byte _081668B8 @ case 1 + .4byte _081668CC @ case 2 + .4byte _08166920 @ case 3 + .4byte _081669A0 @ case 4 + .4byte _081669C2 @ case 5 +_0816687C: + ldr r4, [r5] + ldr r3, _081668A8 + str r3, [r4, #0xc] + ldr r0, _081668AC + ldr r0, [r0] + ldr r2, _081668B0 + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, r1, #2 + adds r1, r0, r1 + subs r2, #0x88 + adds r1, r1, r2 + ldrb r2, [r1] + movs r1, #0x64 + muls r1, r2, r1 + adds r1, r1, r3 + str r1, [r4, #0xc] + ldr r3, _081668B4 + adds r0, r0, r3 + bl sub_081D2B50 + b _081669B6 + .align 2, 0 +_081668A8: .4byte 0x02024190 +_081668AC: .4byte 0x0203B978 +_081668B0: .4byte 0x00008041 +_081668B4: .4byte 0x00007B1C +_081668B8: + ldr r0, _081668C8 + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _081668C6 + b _081669E6 +_081668C6: + b _081669B6 + .align 2, 0 +_081668C8: .4byte 0x03002360 +_081668CC: + bl sub_08166F08 + ldr r6, _0816690C + ldr r0, [r6] + adds r0, #0x5c + ldr r4, _08166910 + ldr r1, [r4] + ldr r5, _08166914 + adds r1, r1, r5 + bl sub_081D1D70 + ldr r2, [r4] + ldr r4, _08166918 + adds r0, r2, r4 + ldr r3, _0816691C + adds r1, r2, r3 + movs r3, #0 + ldrsb r3, [r1, r3] + lsls r1, r3, #2 + adds r1, r1, r3 + lsls r1, r1, #2 + adds r4, #0x14 + adds r1, r1, r4 + adds r1, r2, r1 + adds r2, r2, r5 + bl sub_081D15CC + bl sub_0816713C + ldr r1, [r6] + b _081669B8 + .align 2, 0 +_0816690C: .4byte 0x0203B95C +_08166910: .4byte 0x0203B978 +_08166914: .4byte 0x00007CA8 +_08166918: .4byte 0x00007C58 +_0816691C: .4byte 0x00007FB3 +_08166920: + ldr r5, _08166984 + ldr r0, [r5] + ldr r1, _08166988 + adds r0, r0, r1 + bl sub_081D16BC + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + bne _081669E6 + ldr r0, [r5] + ldr r4, _0816698C + adds r0, r0, r4 + ldrb r0, [r0] + bl sub_081670A8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_08167FFC + ldr r3, [r5] + adds r4, r3, r4 + ldrb r1, [r4] + ldr r2, _08166990 + adds r0, r3, r2 + ldrb r0, [r0] + subs r0, #1 + cmp r1, r0 + beq _08166978 + ldr r4, _08166994 + adds r0, r3, r4 + movs r1, #0 + ldrsb r1, [r0, r1] + subs r2, #0x90 + adds r0, r3, r2 + adds r0, r0, r1 + ldrb r2, [r0] + ldr r4, _08166998 + adds r0, r3, r4 + subs r4, #0xc + adds r1, r3, r4 + ldrb r1, [r1] + bl sub_081D2AB0 +_08166978: + ldr r1, _0816699C + ldr r0, [r1] + adds r0, #0x52 + strb r6, [r0] + ldr r1, [r1] + b _081669B8 + .align 2, 0 +_08166984: .4byte 0x0203B978 +_08166988: .4byte 0x00007C58 +_0816698C: .4byte 0x00008041 +_08166990: .4byte 0x00008040 +_08166994: .4byte 0x00007FB3 +_08166998: .4byte 0x00007B1C +_0816699C: .4byte 0x0203B95C +_081669A0: + ldr r1, [r5] + adds r1, #0x52 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + bls _081669E6 + bl sub_08166C30 +_081669B6: + ldr r1, [r5] +_081669B8: + adds r1, #0x50 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _081669E6 +_081669C2: + ldr r0, _081669EC + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _081669E6 + bl sub_08166CE8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _081669E6 + ldr r0, _081669F0 + ldrb r0, [r0] + bl sub_08136FD8 + ldr r0, _081669F4 + bl sub_08166178 +_081669E6: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081669EC: .4byte 0x03002360 +_081669F0: .4byte 0x0203CB48 +_081669F4: .4byte 0x081669F9 + thumb_func_end sub_08166840 + + thumb_func_start sub_081669F8 +sub_081669F8: @ 0x081669F8 + push {r4, r5, r6, lr} + sub sp, #4 + ldr r4, _08166A14 + ldr r0, [r4] + adds r2, r0, #0 + adds r2, #0x50 + ldrb r1, [r2] + cmp r1, #1 + beq _08166A34 + cmp r1, #1 + bgt _08166A18 + cmp r1, #0 + beq _08166A22 + b _08166B24 + .align 2, 0 +_08166A14: .4byte 0x0203B95C +_08166A18: + cmp r1, #2 + beq _08166A4C + cmp r1, #3 + beq _08166A68 + b _08166B24 +_08166A22: + movs r0, #1 + rsbs r0, r0, #0 + str r1, [sp] + movs r1, #0 + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + b _08166A56 +_08166A34: + ldr r0, _08166A48 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08166B24 + movs r0, #2 + strb r0, [r2] + b _08166B24 + .align 2, 0 +_08166A48: .4byte 0x02037C74 +_08166A4C: + ldr r1, _08166A64 + movs r0, #3 + strb r0, [r1, #0x15] + bl ScanlineEffect_InitHBlankDmaTransfer +_08166A56: + ldr r1, [r4] + adds r1, #0x50 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _08166B24 + .align 2, 0 +_08166A64: .4byte 0x020397C8 +_08166A68: + ldr r0, [r0, #4] + bl SetMainCallback2 + ldr r0, _08166B2C + ldr r0, [r0] + ldr r1, _08166B30 + adds r0, r0, r1 + bl nullsub_79 + movs r4, #0 +_08166A7C: + ldr r5, _08166B2C + ldr r0, [r5] + ldr r2, _08166B34 + adds r0, r0, r2 + adds r0, r0, r4 + ldrb r1, [r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08166B38 + adds r0, r0, r1 + bl DestroySprite + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #6 + bls _08166A7C + movs r0, #0 + bl FreeSpriteTilesByTag + movs r0, #1 + bl FreeSpriteTilesByTag + movs r0, #0 + bl FreeSpritePaletteByTag + movs r0, #1 + bl FreeSpritePaletteByTag + movs r4, #0 +_08166ABA: + ldr r0, [r5] + lsls r1, r4, #2 + ldr r2, _08166B3C + adds r0, r0, r2 + adds r0, r0, r1 + ldr r0, [r0] + bl DestroySprite + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #1 + bls _08166ABA + ldr r6, _08166B2C + ldr r0, [r6] + ldr r2, _08166B40 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, #0xff + beq _08166AF2 + adds r1, r0, #0 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08166B38 + adds r0, r0, r1 + bl DestroySprite +_08166AF2: + movs r0, #0 + bl SetVBlankCallback + ldr r4, _08166B44 + ldr r0, [r4] + bl Free + movs r5, #0 + str r5, [r4] + ldr r4, _08166B48 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, _08166B4C + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r0, [r6] + bl Free + str r5, [r6] + bl FreeAllWindowBuffers +_08166B24: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08166B2C: .4byte 0x0203B978 +_08166B30: .4byte 0x00007B1C +_08166B34: .4byte 0x00007B06 +_08166B38: .4byte 0x020205AC +_08166B3C: .4byte 0x00007B44 +_08166B40: .4byte 0x00007B10 +_08166B44: .4byte 0x0203B96C +_08166B48: .4byte 0x0203B970 +_08166B4C: .4byte 0x0203B974 + thumb_func_end sub_081669F8 + + thumb_func_start sub_08166B50 +sub_08166B50: @ 0x08166B50 + push {r4, lr} + sub sp, #0x4c + ldr r0, _08166BD8 + ldr r0, [r0] + ldr r1, _08166BDC + adds r0, r0, r1 + ldrb r0, [r0] + bl sub_081670A8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x64 + muls r0, r1, r0 + ldr r1, _08166BE0 + adds r0, r0, r1 + movs r1, #2 + add r2, sp, #0xc + bl GetMonData + add r0, sp, #0xc + bl StringGetEnd10 + ldr r1, _08166BE4 + add r0, sp, #0xc + bl StringAppend + ldr r4, _08166BE8 + adds r0, r4, #0 + add r1, sp, #0xc + bl StringCopy + movs r0, #2 + movs r1, #0x11 + bl FillWindowPixelBuffer + movs r0, #2 + movs r1, #0x91 + movs r2, #0xe + bl DrawTextBorderOuter + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + movs r0, #2 + movs r1, #1 + adds r2, r4, #0 + movs r3, #0 + bl AddTextPrinterParameterized + movs r0, #2 + movs r1, #3 + bl CopyWindowToVram + movs r0, #2 + bl PutWindowTilemap + ldr r0, _08166BEC + movs r1, #1 + movs r2, #0x91 + movs r3, #0xe + bl sub_08198D44 + add sp, #0x4c + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08166BD8: .4byte 0x0203B978 +_08166BDC: .4byte 0x00008041 +_08166BE0: .4byte 0x02024190 +_08166BE4: .4byte 0x085CBD12 +_08166BE8: .4byte 0x02021C7C +_08166BEC: .4byte 0x085C09E0 + thumb_func_end sub_08166B50 + + thumb_func_start sub_08166BF0 +sub_08166BF0: @ 0x08166BF0 + push {r4, lr} + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _08166C24 + cmp r1, #0 + bgt _08166C0E + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _08166C12 + b _08166C24 +_08166C0E: + cmp r1, #1 + bne _08166C24 +_08166C12: + movs r0, #5 + bl PlaySE + movs r0, #2 + bl rbox_fill_rectangle + movs r0, #2 + bl ClearWindowTilemap +_08166C24: + lsls r0, r4, #0x18 + asrs r0, r0, #0x18 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08166BF0 + + thumb_func_start sub_08166C30 +sub_08166C30: @ 0x08166C30 + push {r4, lr} + movs r0, #2 + movs r1, #0x91 + movs r2, #0xe + bl DrawTextBorderOuter + movs r0, #2 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r3, _08166CAC + ldr r0, [r3] + adds r0, #0x53 + movs r1, #0 + strb r1, [r0] + ldr r2, [r3] + adds r1, r2, #0 + adds r1, #0x53 + ldrb r0, [r1] + cmp r0, #4 + bhi _08166CB4 + adds r0, r2, #0 + adds r0, #0x61 + ldrb r1, [r1] + adds r0, r0, r1 + ldrb r0, [r0] + adds r4, r3, #0 + cmp r0, #0 + bne _08166C90 + adds r2, r4, #0 +_08166C6C: + ldr r0, [r2] + adds r0, #0x53 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + ldr r3, [r2] + adds r1, r3, #0 + adds r1, #0x53 + ldrb r0, [r1] + cmp r0, #4 + bhi _08166CB4 + adds r0, r3, #0 + adds r0, #0x61 + ldrb r1, [r1] + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _08166C6C +_08166C90: + ldr r2, [r4] + adds r1, r2, #0 + adds r1, #0x53 + ldrb r0, [r1] + cmp r0, #4 + bhi _08166CB4 + ldr r0, _08166CB0 + ldrb r1, [r1] + adds r2, #0x61 + adds r2, r2, r1 + ldrb r2, [r2] + bl Pokeblock_BufferEnhancedStatText + b _08166CC4 + .align 2, 0 +_08166CAC: .4byte 0x0203B95C +_08166CB0: .4byte 0x02021C7C +_08166CB4: + ldr r0, _08166CE0 + ldr r1, _08166CE4 + ldr r1, [r1] + adds r1, #0x53 + ldrb r1, [r1] + movs r2, #0 + bl Pokeblock_BufferEnhancedStatText +_08166CC4: + ldr r0, _08166CE0 + bl Pokeblock_MenuWindowTextPrint + movs r0, #2 + movs r1, #3 + bl CopyWindowToVram + movs r0, #2 + bl PutWindowTilemap + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08166CE0: .4byte 0x02021C7C +_08166CE4: .4byte 0x0203B95C + thumb_func_end sub_08166C30 + + thumb_func_start sub_08166CE8 +sub_08166CE8: @ 0x08166CE8 + push {r4, r5, lr} + movs r0, #2 + movs r1, #0x11 + bl FillWindowPixelBuffer + ldr r5, _08166D20 + adds r3, r5, #0 + movs r4, #5 +_08166CF8: + ldr r0, [r3] + adds r0, #0x53 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + ldr r2, [r3] + adds r1, r2, #0 + adds r1, #0x53 + ldrb r0, [r1] + cmp r0, #4 + bhi _08166D24 + adds r0, r2, #0 + adds r0, #0x61 + ldrb r1, [r1] + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _08166D2A + b _08166CF8 + .align 2, 0 +_08166D20: .4byte 0x0203B95C +_08166D24: + strb r4, [r1] + movs r0, #0 + b _08166D50 +_08166D2A: + ldr r4, _08166D58 + ldr r0, [r5] + adds r1, r0, #0 + adds r1, #0x53 + ldrb r1, [r1] + adds r0, #0x61 + adds r0, r0, r1 + ldrb r2, [r0] + adds r0, r4, #0 + bl Pokeblock_BufferEnhancedStatText + adds r0, r4, #0 + bl Pokeblock_MenuWindowTextPrint + movs r0, #2 + movs r1, #2 + bl CopyWindowToVram + movs r0, #1 +_08166D50: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08166D58: .4byte 0x02021C7C + thumb_func_end sub_08166CE8 + + thumb_func_start sub_08166D5C +sub_08166D5C: @ 0x08166D5C + push {lr} + sub sp, #0xc + movs r0, #2 + movs r1, #0x91 + movs r2, #0xe + bl DrawTextBorderOuter + ldr r2, _08166D94 + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + movs r0, #2 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + movs r0, #2 + movs r1, #3 + bl CopyWindowToVram + movs r0, #2 + bl PutWindowTilemap + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_08166D94: .4byte 0x085CBD57 + thumb_func_end sub_08166D5C + + thumb_func_start sub_08166D98 +sub_08166D98: @ 0x08166D98 + push {lr} + movs r0, #2 + bl rbox_fill_rectangle + movs r0, #2 + bl ClearWindowTilemap + movs r0, #2 + movs r1, #3 + bl CopyWindowToVram + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08166D98 + + thumb_func_start Pokeblock_MenuWindowTextPrint +Pokeblock_MenuWindowTextPrint: @ 0x08166DB4 + push {lr} + sub sp, #0xc + ldr r2, _08166DD4 + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + movs r0, #2 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + add sp, #0xc + pop {r0} + bx r0 + .align 2, 0 +_08166DD4: .4byte 0x02021C7C + thumb_func_end Pokeblock_MenuWindowTextPrint + + thumb_func_start Pokeblock_BufferEnhancedStatText +Pokeblock_BufferEnhancedStatText: @ 0x08166DD8 + push {r4, lr} + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + lsls r2, r2, #0x10 + lsrs r0, r2, #0x10 + asrs r2, r2, #0x10 + cmp r2, #0 + beq _08166E14 + cmp r2, #0 + ble _08166DF0 + movs r0, #0 +_08166DF0: + lsls r0, r0, #0x10 + ldr r1, _08166E0C + lsls r0, r3, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl StringCopy + ldr r1, _08166E10 + adds r0, r4, #0 + bl StringAppend + b _08166E1C + .align 2, 0 +_08166E0C: .4byte 0x085C09E8 +_08166E10: .4byte 0x085CBD3D +_08166E14: + ldr r1, _08166E24 + adds r0, r4, #0 + bl StringCopy +_08166E1C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08166E24: .4byte 0x085CBD4A + thumb_func_end Pokeblock_BufferEnhancedStatText + + thumb_func_start Pokeblock_GetMonContestStats +Pokeblock_GetMonContestStats: @ 0x08166E28 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r5, r1, #0 + movs r4, #0 + ldr r7, _08166E54 +_08166E32: + lsls r0, r4, #2 + adds r0, r0, r7 + ldr r1, [r0] + adds r0, r6, #0 + bl GetMonData + adds r1, r5, r4 + strb r0, [r1] + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #4 + bls _08166E32 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08166E54: .4byte 0x085C0994 + thumb_func_end Pokeblock_GetMonContestStats + + thumb_func_start sub_08166E58 +sub_08166E58: @ 0x08166E58 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + mov r8, r0 + adds r5, r1, #0 + adds r0, r5, #0 + movs r1, #0x30 + bl GetMonData + cmp r0, #0xff + beq _08166EF4 + mov r0, r8 + adds r1, r5, #0 + bl sub_08166F88 + movs r4, #0 + mov r7, sp +_08166E7C: + ldr r1, _08166F00 + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r6, [r0] + adds r0, r5, #0 + adds r1, r6, #0 + bl GetMonData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strb r0, [r7] + ldr r1, _08166F04 + ldr r1, [r1] + lsls r2, r4, #1 + adds r1, #0x66 + adds r1, r1, r2 + ldrh r1, [r1] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r0, #0 + bge _08166EAA + movs r1, #0 +_08166EAA: + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xff + ble _08166EB4 + movs r1, #0xff +_08166EB4: + strb r1, [r7] + adds r0, r5, #0 + adds r1, r6, #0 + mov r2, sp + bl SetMonData + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #4 + bls _08166E7C + adds r0, r5, #0 + movs r1, #0x30 + bl GetMonData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r2, r8 + ldrb r2, [r2, #6] + adds r1, r0, r2 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xff + ble _08166EE6 + movs r1, #0xff +_08166EE6: + mov r0, sp + strb r1, [r0] + adds r0, r5, #0 + movs r1, #0x30 + mov r2, sp + bl SetMonData +_08166EF4: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08166F00: .4byte 0x085C0994 +_08166F04: .4byte 0x0203B95C + thumb_func_end sub_08166E58 + + thumb_func_start sub_08166F08 +sub_08166F08: @ 0x08166F08 + push {r4, r5, lr} + ldr r5, _08166F74 + ldr r0, _08166F78 + ldr r1, [r0] + ldr r2, _08166F7C + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r1, r1, r0 + ldr r0, _08166F80 + adds r1, r1, r0 + ldrb r1, [r1] + movs r0, #0x64 + muls r0, r1, r0 + adds r5, r0, r5 + ldr r4, _08166F84 + ldr r1, [r4] + adds r1, #0x57 + adds r0, r5, #0 + bl Pokeblock_GetMonContestStats + ldr r0, [r4] + ldr r0, [r0, #8] + adds r1, r5, #0 + bl sub_08166E58 + ldr r1, [r4] + adds r1, #0x5c + adds r0, r5, #0 + bl Pokeblock_GetMonContestStats + movs r3, #0 +_08166F48: + ldr r0, [r4] + adds r2, r0, #0 + adds r2, #0x61 + adds r2, r2, r3 + adds r1, r0, #0 + adds r1, #0x5c + adds r1, r1, r3 + adds r0, #0x57 + adds r0, r0, r3 + ldrb r1, [r1] + ldrb r0, [r0] + subs r1, r1, r0 + strb r1, [r2] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #4 + bls _08166F48 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08166F74: .4byte 0x02024190 +_08166F78: .4byte 0x0203B978 +_08166F7C: .4byte 0x00008041 +_08166F80: .4byte 0x00007FB9 +_08166F84: .4byte 0x0203B95C + thumb_func_end sub_08166F08 + + thumb_func_start sub_08166F88 +sub_08166F88: @ 0x08166F88 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sl, r1 + ldr r1, _08166FD0 + ldr r3, [r1] + ldrb r1, [r0, #1] + adds r2, r3, #0 + adds r2, #0x66 + strh r1, [r2] + ldrb r2, [r0, #5] + adds r1, r3, #0 + adds r1, #0x68 + strh r2, [r1] + ldrb r1, [r0, #4] + adds r2, r3, #0 + adds r2, #0x6a + strh r1, [r2] + ldrb r2, [r0, #3] + adds r1, r3, #0 + adds r1, #0x6c + strh r2, [r1] + ldrb r1, [r0, #2] + adds r0, r3, #0 + adds r0, #0x6e + strh r1, [r0] + ldr r0, _08166FD4 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + ble _08166FD8 + movs r0, #1 + b _08166FDE + .align 2, 0 +_08166FD0: .4byte 0x0203B95C +_08166FD4: .4byte 0x0203B96A +_08166FD8: + cmp r0, #0 + bge _08167054 + movs r0, #0xff +_08166FDE: + movs r2, #0 + lsls r0, r0, #0x18 + mov sb, r0 + ldr r0, _08167064 + mov r8, r0 +_08166FE8: + mov r0, r8 + ldr r1, [r0] + lsls r0, r2, #0x18 + asrs r6, r0, #0x18 + lsls r7, r6, #1 + adds r1, #0x66 + adds r1, r1, r7 + movs r2, #0 + ldrsh r4, [r1, r2] + adds r0, r4, #0 + movs r1, #0xa + bl __divsi3 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r4, #0 + movs r1, #0xa + bl __modsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _08167020 + lsls r0, r5, #0x18 + movs r1, #0x80 + lsls r1, r1, #0x11 + adds r0, r0, r1 + lsrs r5, r0, #0x18 +_08167020: + ldr r0, _08167068 + adds r0, r6, r0 + ldrb r1, [r0] + mov r0, sl + bl sub_0806E2E4 + lsls r0, r0, #0x18 + asrs r2, r0, #0x18 + cmp r0, sb + bne _08167048 + mov r1, r8 + ldr r0, [r1] + adds r0, #0x66 + adds r0, r0, r7 + lsls r1, r5, #0x18 + asrs r1, r1, #0x18 + muls r1, r2, r1 + ldrh r2, [r0] + adds r1, r1, r2 + strh r1, [r0] +_08167048: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #4 + ble _08166FE8 +_08167054: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08167064: .4byte 0x0203B95C +_08167068: .4byte 0x085C09A8 + thumb_func_end sub_08166F88 + + thumb_func_start IsSheenMaxed +IsSheenMaxed: @ 0x0816706C + push {lr} + ldr r0, _08167098 + ldr r1, [r0] + ldr r2, _0816709C + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r1, r1, r0 + subs r2, #0x89 + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, #1 + adds r1, r1, r2 + ldrb r1, [r1] + movs r2, #0x30 + movs r3, #0 + bl GetBoxOrPartyMonData + cmp r0, #0xff + beq _081670A0 + movs r0, #0 + b _081670A2 + .align 2, 0 +_08167098: .4byte 0x0203B978 +_0816709C: .4byte 0x00008041 +_081670A0: + movs r0, #1 +_081670A2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsSheenMaxed + + thumb_func_start sub_081670A8 +sub_081670A8: @ 0x081670A8 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r4, #0 +_081670B0: + movs r0, #0x64 + muls r0, r4, r0 + ldr r1, _081670CC + adds r0, r0, r1 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + bne _081670D6 + cmp r5, #0 + bne _081670D0 + adds r0, r4, #0 + b _081670E2 + .align 2, 0 +_081670CC: .4byte 0x02024190 +_081670D0: + subs r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_081670D6: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #5 + bls _081670B0 + movs r0, #0 +_081670E2: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_081670A8 + + thumb_func_start sub_081670E8 +sub_081670E8: @ 0x081670E8 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + movs r4, #0 + movs r6, #0 + cmp r6, r5 + bhs _08167118 +_081670F6: + movs r0, #0x64 + muls r0, r4, r0 + ldr r1, _08167124 + adds r0, r0, r1 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + beq _0816710E + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_0816710E: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r5 + blo _081670F6 +_08167118: + subs r0, r5, r6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08167124: .4byte 0x02024190 + thumb_func_end sub_081670E8 + + thumb_func_start sub_08167128 +sub_08167128: @ 0x08167128 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_081670A8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08167128 + + thumb_func_start sub_0816713C +sub_0816713C: @ 0x0816713C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _081671C4 + bl LoadSpriteSheet + ldr r0, _081671C8 + bl LoadSpritePalette + ldr r2, _081671CC + ldr r0, [r2] + adds r0, #0x54 + movs r1, #0 + strb r1, [r0] + movs r4, #0 + adds r5, r2, #0 + ldr r6, _081671D0 + adds r0, r6, #2 + mov r8, r0 + ldr r7, _081671D4 +_08167164: + ldr r0, [r5] + adds r0, #0x61 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0 + beq _081671B0 + lsls r2, r4, #2 + adds r0, r2, r6 + movs r3, #0 + ldrsh r1, [r0, r3] + add r2, r8 + movs r0, #0 + ldrsh r2, [r2, r0] + ldr r0, _081671D8 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x40 + beq _081671B0 + ldr r0, [r5] + adds r0, #0x61 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0 + beq _081671A6 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r1, _081671DC + str r1, [r0] +_081671A6: + ldr r1, [r5] + adds r1, #0x54 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_081671B0: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #4 + bls _08167164 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081671C4: .4byte 0x085C09FC +_081671C8: .4byte 0x085C0A04 +_081671CC: .4byte 0x0203B95C +_081671D0: .4byte 0x085C0A0C +_081671D4: .4byte 0x020205C8 +_081671D8: .4byte 0x085C0A40 +_081671DC: .4byte 0x081671E1 + thumb_func_end sub_0816713C + + thumb_func_start sub_081671E0 +sub_081671E0: @ 0x081671E0 + push {lr} + adds r1, r0, #0 + movs r2, #0x2e + ldrsh r0, [r1, r2] + cmp r0, #5 + bgt _081671F2 + ldrh r0, [r1, #0x26] + subs r0, #2 + b _081671FA +_081671F2: + cmp r0, #0xb + bgt _081671FC + ldrh r0, [r1, #0x26] + adds r0, #2 +_081671FA: + strh r0, [r1, #0x26] +_081671FC: + ldrh r0, [r1, #0x2e] + adds r0, #1 + strh r0, [r1, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x3c + ble _0816721C + adds r0, r1, #0 + bl DestroySprite + ldr r0, _08167220 + ldr r1, [r0] + adds r1, #0x54 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] +_0816721C: + pop {r0} + bx r0 + .align 2, 0 +_08167220: .4byte 0x0203B95C + thumb_func_end sub_081671E0 + + thumb_func_start sub_08167224 +sub_08167224: @ 0x08167224 + push {r4, r5, r6, lr} + movs r4, #0 + movs r5, #0 + ldr r6, _08167230 + b _08167276 + .align 2, 0 +_08167230: .4byte 0x0203B978 +_08167234: + movs r0, #0x64 + muls r0, r4, r0 + ldr r1, _081672A4 + adds r0, r0, r1 + movs r1, #0x2d + bl GetMonData + adds r3, r0, #0 + cmp r3, #0 + bne _08167270 + ldr r1, [r6] + lsls r2, r5, #2 + adds r1, r1, r2 + ldr r0, _081672A8 + adds r1, r1, r0 + movs r0, #0xe + strb r0, [r1] + ldr r0, [r6] + adds r0, r0, r2 + ldr r1, _081672AC + adds r0, r0, r1 + strb r4, [r0] + ldr r0, [r6] + adds r0, r0, r2 + ldr r2, _081672B0 + adds r0, r0, r2 + strh r3, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_08167270: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_08167276: + bl CalculatePlayerPartyCount + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r4, r0 + blo _08167234 + ldr r2, _081672B4 + ldr r0, [r2] + ldr r1, _081672B8 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + ldr r0, [r2] + adds r1, r5, #1 + ldr r2, _081672BC + adds r0, r0, r2 + strb r1, [r0] + bl sub_081672C0 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081672A4: .4byte 0x02024190 +_081672A8: .4byte 0x00007FB8 +_081672AC: .4byte 0x00007FB9 +_081672B0: .4byte 0x00007FBA +_081672B4: .4byte 0x0203B978 +_081672B8: .4byte 0x00008041 +_081672BC: .4byte 0x00008040 + thumb_func_end sub_08167224 + + thumb_func_start sub_081672C0 +sub_081672C0: @ 0x081672C0 + push {r4, r5, lr} + ldr r4, _0816732C + ldr r0, [r4] + ldr r5, _08167330 + adds r0, r0, r5 + ldrb r0, [r0] + movs r1, #0 + bl sub_08167340 + ldr r0, [r4] + ldr r1, _08167334 + adds r0, r0, r1 + movs r1, #0 + strb r1, [r0] + ldr r0, [r4] + ldr r2, _08167338 + adds r0, r0, r2 + movs r1, #1 + strb r1, [r0] + ldr r0, [r4] + ldr r1, _0816733C + adds r0, r0, r1 + movs r1, #2 + strb r1, [r0] + ldr r0, [r4] + adds r5, r0, r5 + ldrb r3, [r5] + adds r1, r3, #1 + adds r2, #0x8c + adds r0, r0, r2 + ldrb r2, [r0] + cmp r1, r2 + blt _08167304 + movs r1, #0 +_08167304: + subs r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r0, #0 + bge _08167314 + subs r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_08167314: + adds r0, r1, #0 + movs r1, #1 + bl sub_08167340 + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + movs r1, #2 + bl sub_08167340 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0816732C: .4byte 0x0203B978 +_08167330: .4byte 0x00008041 +_08167334: .4byte 0x00007FB3 +_08167338: .4byte 0x00007FB4 +_0816733C: .4byte 0x00007FB5 + thumb_func_end sub_081672C0 + + thumb_func_start sub_08167340 +sub_08167340: @ 0x08167340 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + adds r5, r0, #0 + adds r4, r1, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, _081673F0 + mov sb, r0 + ldr r1, [r0] + lsls r5, r5, #0x10 + asrs r0, r5, #0xe + adds r0, r1, r0 + ldr r3, _081673F4 + adds r2, r0, r3 + ldrb r7, [r2] + ldr r2, _081673F8 + adds r0, r0, r2 + ldrb r0, [r0] + mov sl, r0 + adds r3, #0x88 + adds r0, r1, r3 + ldrb r6, [r0] + movs r0, #0 + mov r8, r0 + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #3 + ldr r2, _081673FC + adds r0, r0, r2 + adds r0, r1, r0 + lsls r2, r4, #6 + ldr r3, _08167400 + adds r2, r2, r3 + adds r1, r1, r2 + lsrs r5, r5, #0x10 + str r5, [sp] + str r6, [sp, #4] + mov r2, r8 + str r2, [sp, #8] + adds r2, r7, #0 + mov r3, sl + bl sub_081D2504 + mov r3, sb + ldr r1, [r3] + ldr r2, _08167404 + adds r0, r1, r2 + ldr r3, _08167408 + adds r1, r1, r3 + str r5, [sp] + str r4, [sp, #4] + str r6, [sp, #8] + mov r2, r8 + str r2, [sp, #0xc] + adds r2, r7, #0 + mov r3, sl + bl sub_081D25A8 + lsls r0, r4, #0xd + movs r1, #0xc1 + lsls r1, r1, #2 + adds r0, r0, r1 + mov r3, sb + ldr r1, [r3] + adds r0, r1, r0 + lsls r4, r4, #7 + adds r4, #4 + adds r1, r1, r4 + str r5, [sp] + str r6, [sp, #4] + mov r2, r8 + str r2, [sp, #8] + adds r2, r7, #0 + mov r3, sl + bl sub_081D26C4 + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081673F0: .4byte 0x0203B978 +_081673F4: .4byte 0x00007FB8 +_081673F8: .4byte 0x00007FB9 +_081673FC: .4byte 0x00007B4D +_08167400: .4byte 0x00007B95 +_08167404: .4byte 0x00007C58 +_08167408: .4byte 0x00007FB0 + thumb_func_end sub_08167340 + + thumb_func_start sub_0816740C +sub_0816740C: @ 0x0816740C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x28 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _081674A0 + ldr r3, [r1] + ldr r0, _081674A4 + mov r8, r0 + adds r0, r3, r0 + ldrb r0, [r0] + adds r7, r1, #0 + cmp r0, #0xff + bne _08167518 + add r5, sp, #0x18 + add r4, sp, #0x20 + adds r0, r5, #0 + mov r1, sp + adds r2, r4, #0 + bl sub_081D2800 + lsls r0, r6, #0xd + movs r1, #0xc1 + lsls r1, r1, #2 + adds r0, r0, r1 + ldr r1, [r7] + adds r0, r1, r0 + str r0, [sp, #0x18] + lsls r0, r6, #7 + adds r0, #4 + adds r1, r1, r0 + str r1, [sp, #0x20] + adds r0, r4, #0 + bl LoadSpritePalette + ldr r1, [r7] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _081674A8 + adds r1, r1, r2 + strh r0, [r1] + adds r0, r5, #0 + bl LoadSpriteSheet + ldr r1, [r7] + ldr r3, _081674AC + adds r1, r1, r3 + strh r0, [r1] + mov r0, sp + movs r1, #0x26 + movs r2, #0x68 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r0, [r7] + ldr r2, _081674A4 + adds r0, r0, r2 + strb r1, [r0] + cmp r1, #0x40 + bne _081674B0 + movs r0, #0x64 + bl FreeSpriteTilesByTag + movs r0, #0x64 + bl FreeSpritePaletteByTag + ldr r0, [r7] + add r0, r8 + movs r1, #0xff + strb r1, [r0] + b _08167546 + .align 2, 0 +_081674A0: .4byte 0x0203B978 +_081674A4: .4byte 0x00007B10 +_081674A8: .4byte 0x00007B12 +_081674AC: .4byte 0x00007B14 +_081674B0: + ldr r0, [r7] + add r0, r8 + strb r1, [r0] + ldr r4, _08167504 + ldr r2, [r7] + mov r0, r8 + adds r3, r2, r0 + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x1c + adds r0, r0, r1 + ldr r1, _08167508 + str r1, [r0] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r0, #0x26] + subs r1, #0x22 + strh r1, [r0, #0x26] + ldr r3, _0816750C + adds r1, r2, r3 + subs r3, #4 + adds r0, r2, r3 + ldrh r0, [r0] + lsls r0, r0, #5 + ldr r3, _08167510 + adds r0, r0, r3 + str r0, [r1] + ldr r0, _08167514 + adds r2, r2, r0 + ldrh r0, [r2] + lsls r0, r0, #4 + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r0, r1 + strh r0, [r2] + b _08167546 + .align 2, 0 +_08167504: .4byte 0x020205AC +_08167508: .4byte 0x08167F71 +_0816750C: .4byte 0x00007B18 +_08167510: .4byte 0x06010000 +_08167514: .4byte 0x00007B12 +_08167518: + lsls r1, r6, #0xd + movs r0, #0xc1 + lsls r0, r0, #2 + adds r1, r1, r0 + adds r1, r3, r1 + ldr r2, _08167554 + adds r0, r3, r2 + ldr r2, [r0] + ldr r0, _08167558 + str r1, [r0] + str r2, [r0, #4] + ldr r1, _0816755C + str r1, [r0, #8] + ldr r0, [r0, #8] + lsls r0, r6, #7 + adds r0, #4 + adds r0, r3, r0 + ldr r2, _08167560 + adds r1, r3, r2 + ldrh r1, [r1] + movs r2, #0x20 + bl LoadPalette +_08167546: + add sp, #0x28 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08167554: .4byte 0x00007B18 +_08167558: .4byte 0x040000D4 +_0816755C: .4byte 0x80000400 +_08167560: .4byte 0x00007B12 + thumb_func_end sub_0816740C + + thumb_func_start sub_08167564 +sub_08167564: @ 0x08167564 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x60 + add r5, sp, #0x20 + add r4, sp, #0x38 + mov r0, sp + adds r1, r5, #0 + adds r2, r4, #0 + bl sub_081D284C + mov r0, sp + bl LoadSpriteSheets + adds r0, r4, #0 + bl LoadSpritePalettes + movs r4, #0 + ldr r1, _081675EC + ldr r0, [r1] + ldr r2, _081675F0 + adds r0, r0, r2 + ldrb r0, [r0] + subs r0, #1 + adds r6, r5, #0 + add r2, sp, #0x50 + mov sb, r2 + add r2, sp, #0x58 + mov sl, r2 + cmp r4, r0 + bge _08167620 + adds r5, r1, #0 + ldr r7, _081675F4 + movs r0, #0x1c + adds r0, r0, r7 + mov r8, r0 +_081675B0: + lsls r2, r4, #2 + adds r2, r2, r4 + lsls r2, r2, #0x12 + movs r1, #0x80 + lsls r1, r1, #0xc + adds r2, r2, r1 + asrs r2, r2, #0x10 + adds r0, r6, #0 + movs r1, #0xe2 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0x40 + beq _08167600 + ldr r0, [r5] + ldr r2, _081675F8 + adds r0, r0, r2 + adds r0, r0, r4 + strb r3, [r0] + lsls r0, r3, #4 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r1, r0, r7 + strh r4, [r1, #0x2e] + add r0, r8 + ldr r1, _081675FC + str r1, [r0] + b _0816760C + .align 2, 0 +_081675EC: .4byte 0x0203B978 +_081675F0: .4byte 0x00008040 +_081675F4: .4byte 0x020205AC +_081675F8: .4byte 0x00007B06 +_081675FC: .4byte 0x08167F89 +_08167600: + ldr r0, [r5] + ldr r1, _08167668 + adds r0, r0, r1 + adds r0, r0, r4 + movs r1, #0xff + strb r1, [r0] +_0816760C: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, [r5] + ldr r2, _0816766C + adds r0, r0, r2 + ldrb r0, [r0] + subs r0, #1 + cmp r4, r0 + blt _081675B0 +_08167620: + movs r0, #0x67 + strh r0, [r6] + cmp r4, #5 + bhi _0816768E + ldr r5, _08167670 + ldr r7, _08167674 +_0816762C: + lsls r2, r4, #2 + adds r2, r2, r4 + lsls r2, r2, #0x12 + movs r0, #0x80 + lsls r0, r0, #0xc + adds r2, r2, r0 + asrs r2, r2, #0x10 + adds r0, r6, #0 + movs r1, #0xe6 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0x40 + beq _08167678 + ldr r0, [r5] + ldr r1, _08167668 + adds r0, r0, r1 + adds r0, r0, r4 + strb r3, [r0] + lsls r1, r3, #4 + adds r1, r1, r3 + lsls r1, r1, #2 + adds r1, r1, r7 + ldrb r2, [r1, #3] + movs r0, #0x3f + ands r0, r2 + strb r0, [r1, #3] + b _08167684 + .align 2, 0 +_08167668: .4byte 0x00007B06 +_0816766C: .4byte 0x00008040 +_08167670: .4byte 0x0203B978 +_08167674: .4byte 0x020205AC +_08167678: + ldr r0, [r5] + ldr r2, _081676E8 + adds r0, r0, r2 + adds r0, r0, r4 + movs r1, #0xff + strb r1, [r0] +_08167684: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #5 + bls _0816762C +_0816768E: + movs r0, #0x66 + strh r0, [r6] + ldr r0, _081676EC + str r0, [r6, #0x14] + lsls r2, r4, #2 + adds r2, r2, r4 + lsls r2, r2, #0x12 + movs r0, #0x80 + lsls r0, r0, #0xc + adds r2, r2, r0 + asrs r2, r2, #0x10 + adds r0, r6, #0 + movs r1, #0xde + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0x40 + beq _081676F8 + ldr r0, _081676F0 + ldr r0, [r0] + ldr r1, _081676E8 + adds r0, r0, r1 + adds r0, r0, r4 + strb r3, [r0] + ldr r0, _081676F4 + lsls r2, r3, #4 + adds r2, r2, r3 + lsls r2, r2, #2 + adds r2, r2, r0 + ldrb r3, [r2, #1] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + movs r3, #0x40 + orrs r0, r3 + strb r0, [r2, #1] + ldrb r0, [r2, #3] + ands r1, r0 + movs r0, #0x80 + orrs r1, r0 + strb r1, [r2, #3] + b _08167706 + .align 2, 0 +_081676E8: .4byte 0x00007B06 +_081676EC: .4byte 0x08167FBD +_081676F0: .4byte 0x0203B978 +_081676F4: .4byte 0x020205AC +_081676F8: + ldr r0, _0816772C + ldr r0, [r0] + ldr r2, _08167730 + adds r0, r0, r2 + adds r0, r0, r4 + movs r1, #0xff + strb r1, [r0] +_08167706: + mov r0, sb + mov r1, sl + bl sub_081D28E0 + mov r0, sb + bl LoadSpriteSheet + mov r0, sl + bl LoadSpritePalette + add sp, #0x60 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0816772C: .4byte 0x0203B978 +_08167730: .4byte 0x00007B06 + thumb_func_end sub_08167564 + + thumb_func_start sub_08167734 +sub_08167734: @ 0x08167734 + push {r4, r5, lr} + sub sp, #8 + ldr r0, _08167754 + ldr r0, [r0] + ldr r2, _08167758 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, #0xb + bls _08167748 + b _0816797C +_08167748: + lsls r0, r0, #2 + ldr r1, _0816775C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08167754: .4byte 0x0203B978 +_08167758: .4byte 0x00008048 +_0816775C: .4byte 0x08167760 +_08167760: @ jump table + .4byte _08167790 @ case 0 + .4byte _08167808 @ case 1 + .4byte _0816783C @ case 2 + .4byte _0816784C @ case 3 + .4byte _08167860 @ case 4 + .4byte _08167878 @ case 5 + .4byte _081678A0 @ case 6 + .4byte _081678B4 @ case 7 + .4byte _081678D8 @ case 8 + .4byte _081678F0 @ case 9 + .4byte _08167920 @ case 10 + .4byte _0816793C @ case 11 +_08167790: + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r1, #0x88 + lsls r1, r1, #6 + movs r0, #3 + movs r2, #0 + bl ChangeBgY + ldr r1, _08167800 + movs r0, #0 + bl SetGpuReg + movs r1, #0x91 + lsls r1, r1, #2 + movs r0, #0x50 + bl SetGpuReg + ldr r1, _08167804 + movs r0, #0x52 + bl SetGpuReg + b _08167982 + .align 2, 0 +_08167800: .4byte 0x00007040 +_08167804: .4byte 0x0000040B +_08167808: + ldr r4, _08167830 + movs r0, #0xfa + lsls r0, r0, #4 + bl Alloc + str r0, [r4] + ldr r5, _08167834 + movs r4, #0xa0 + lsls r4, r4, #3 + adds r0, r4, #0 + bl Alloc + str r0, [r5] + ldr r5, _08167838 + adds r0, r4, #0 + bl Alloc + str r0, [r5] + b _08167982 + .align 2, 0 +_08167830: .4byte 0x0203B970 +_08167834: .4byte 0x0203B96C +_08167838: .4byte 0x0203B974 +_0816783C: + ldr r0, _08167844 + ldr r1, _08167848 + b _081678A4 + .align 2, 0 +_08167844: .4byte 0x085BF9A0 +_08167848: .4byte 0x0203B974 +_0816784C: + ldr r1, _0816785C + movs r0, #3 + movs r2, #0xe0 + movs r3, #0 + bl LoadBgTiles + b _08167982 + .align 2, 0 +_0816785C: .4byte 0x085BF8C0 +_08167860: + ldr r0, _08167874 + ldr r1, [r0] + movs r2, #0xa0 + lsls r2, r2, #3 + movs r0, #3 + movs r3, #0 + bl LoadBgTilemap + b _08167982 + .align 2, 0 +_08167874: .4byte 0x0203B974 +_08167878: + ldr r0, _08167890 + movs r1, #0xd0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _08167894 + ldr r0, [r0] + ldr r1, _08167898 + adds r0, r0, r1 + ldr r1, _0816789C + strh r1, [r0] + b _08167982 + .align 2, 0 +_08167890: .4byte 0x085BF880 +_08167894: .4byte 0x0203B978 +_08167898: .4byte 0x00007B0E +_0816789C: .4byte 0x0000FFB0 +_081678A0: + ldr r0, _081678AC + ldr r1, _081678B0 +_081678A4: + ldr r1, [r1] + bl LZ77UnCompVram + b _08167982 + .align 2, 0 +_081678AC: .4byte 0x085BFAAC +_081678B0: .4byte 0x0203B970 +_081678B4: + ldr r0, _081678CC + ldr r1, _081678D0 + ldr r1, [r1] + bl LZ77UnCompVram + ldr r0, _081678D4 + movs r1, #0x20 + movs r2, #0x20 + bl LoadPalette + b _08167982 + .align 2, 0 +_081678CC: .4byte 0x085C0230 +_081678D0: .4byte 0x0203B96C +_081678D4: .4byte 0x085BFA4C +_081678D8: + ldr r0, _081678EC + ldr r1, [r0] + movs r2, #0xfa + lsls r2, r2, #4 + movs r3, #0xa0 + lsls r3, r3, #2 + movs r0, #1 + bl LoadBgTiles + b _08167982 + .align 2, 0 +_081678EC: .4byte 0x0203B970 +_081678F0: + ldr r0, _08167918 + ldr r1, [r0] + movs r0, #1 + bl SetBgTilemapBuffer + ldr r1, _0816791C + movs r0, #0xb + str r0, [sp] + movs r0, #4 + str r0, [sp, #4] + movs r0, #1 + movs r2, #0 + movs r3, #0xd + bl CopyToBgTilemapBufferRect + movs r0, #1 + bl CopyBgTilemapBufferToVram + b _08167982 + .align 2, 0 +_08167918: .4byte 0x0203B96C +_0816791C: .4byte 0x085C0410 +_08167920: + ldr r0, _08167930 + ldr r1, _08167934 + ldr r1, [r1] + ldr r2, _08167938 + adds r1, r1, r2 + bl LZ77UnCompVram + b _08167982 + .align 2, 0 +_08167930: .4byte 0x085C0488 +_08167934: .4byte 0x0203B978 +_08167938: .4byte 0x00007304 +_0816793C: + ldr r0, _0816796C + ldr r1, [r0] + ldr r0, _08167970 + adds r1, r1, r0 + movs r2, #0xa0 + lsls r2, r2, #3 + movs r0, #2 + movs r3, #0 + bl LoadBgTilemap + ldr r0, _08167974 + movs r1, #0x30 + movs r2, #0x20 + bl LoadPalette + ldr r0, _08167978 + movs r1, #0xf0 + movs r2, #0x20 + bl LoadPalette + movs r0, #2 + bl sub_081D1824 + b _08167982 + .align 2, 0 +_0816796C: .4byte 0x0203B978 +_08167970: .4byte 0x00007304 +_08167974: .4byte 0x085F4E2C +_08167978: .4byte 0x085F4E4C +_0816797C: + movs r0, #0 + strb r0, [r1] + b _08167992 +_08167982: + ldr r0, _0816799C + ldr r1, [r0] + ldr r2, _081679A0 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #1 +_08167992: + add sp, #8 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0816799C: .4byte 0x0203B978 +_081679A0: .4byte 0x00008048 + thumb_func_end sub_08167734 + + thumb_func_start sub_081679A4 +sub_081679A4: @ 0x081679A4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + movs r0, #0 + movs r1, #0 + bl FillWindowPixelBuffer + movs r0, #1 + movs r1, #0 + bl FillWindowPixelBuffer + ldr r7, _08167A68 + ldr r3, [r7] + ldr r1, _08167A6C + adds r0, r3, r1 + ldrb r1, [r0] + ldr r2, _08167A70 + adds r0, r3, r2 + ldrb r0, [r0] + subs r0, #1 + cmp r1, r0 + beq _08167A4E + lsls r2, r4, #6 + ldr r0, _08167A74 + adds r2, r2, r0 + adds r2, r3, r2 + movs r0, #2 + str r0, [sp] + movs r5, #0 + str r5, [sp, #4] + str r5, [sp, #8] + movs r0, #0 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + ldr r0, [r7] + ldr r1, _08167A6C + adds r0, r0, r1 + ldrb r0, [r0] + bl sub_081670A8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x64 + muls r0, r1, r0 + ldr r1, _08167A78 + adds r0, r0, r1 + bl GetNature + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldr r0, [r7] + ldr r6, _08167A7C + adds r0, r0, r6 + ldr r1, _08167A80 + bl StringCopy + ldr r1, _08167A84 + lsls r4, r4, #2 + adds r4, r4, r1 + ldr r1, [r4] + movs r2, #0 + movs r3, #5 + bl StringCopyPadded + ldr r0, _08167A88 + str r0, [sp] + str r5, [sp, #4] + ldr r0, [r7] + adds r0, r0, r6 + str r0, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r2, #0 + movs r3, #2 + bl AddTextPrinterParameterized3 +_08167A4E: + mov r2, r8 + cmp r2, #0 + beq _08167A8C + movs r0, #0 + movs r1, #3 + bl CopyWindowToVram + movs r0, #1 + movs r1, #3 + bl CopyWindowToVram + b _08167A9C + .align 2, 0 +_08167A68: .4byte 0x0203B978 +_08167A6C: .4byte 0x00008041 +_08167A70: .4byte 0x00008040 +_08167A74: .4byte 0x00007B95 +_08167A78: .4byte 0x02024190 +_08167A7C: .4byte 0x0000804A +_08167A80: .4byte 0x085CB7A2 +_08167A84: .4byte 0x085ECE24 +_08167A88: .4byte 0x085C09AD +_08167A8C: + movs r0, #0 + movs r1, #2 + bl CopyWindowToVram + movs r0, #1 + movs r1, #2 + bl CopyWindowToVram +_08167A9C: + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_081679A4 + + thumb_func_start sub_08167AA8 +sub_08167AA8: @ 0x08167AA8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #0 + beq _08167AC8 + ldr r0, _08167AC0 + ldr r0, [r0] + ldr r1, _08167AC4 + adds r0, r0, r1 + b _08167AD0 + .align 2, 0 +_08167AC0: .4byte 0x0203B978 +_08167AC4: .4byte 0x00007FB5 +_08167AC8: + ldr r0, _08167B80 + ldr r0, [r0] + ldr r2, _08167B84 + adds r0, r0, r2 +_08167AD0: + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r5, _08167B80 + ldr r2, [r5] + ldr r3, _08167B88 + adds r0, r2, r3 + ldr r4, _08167B8C + adds r1, r2, r4 + movs r3, #0 + ldrsb r3, [r1, r3] + lsls r1, r3, #2 + adds r1, r1, r3 + lsls r1, r1, #2 + ldr r4, _08167B90 + adds r1, r1, r4 + adds r1, r2, r1 + lsls r3, r6, #2 + adds r3, r3, r6 + lsls r3, r3, #2 + adds r3, r3, r4 + adds r2, r2, r3 + bl sub_081D15CC + ldr r4, [r5] + ldr r1, _08167B94 + adds r0, r4, r1 + ldrb r1, [r0] + ldr r2, _08167B98 + mov ip, r2 + adds r0, r4, r2 + ldrb r0, [r0] + subs r0, #1 + eors r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + mov r8, r0 + cmp r7, #0 + beq _08167BA0 + ldr r3, _08167B84 + adds r0, r4, r3 + ldrb r1, [r0] + subs r2, #0x8b + adds r0, r4, r2 + strb r1, [r0] + ldr r0, [r5] + ldr r4, _08167B8C + adds r1, r0, r4 + ldrb r1, [r1] + adds r0, r0, r3 + strb r1, [r0] + ldr r0, [r5] + adds r0, r0, r4 + strb r6, [r0] + ldr r0, [r5] + adds r2, r0, r2 + ldrb r1, [r2] + ldr r2, _08167B9C + adds r0, r0, r2 + strb r1, [r0] + ldr r1, [r5] + adds r3, #0x8d + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, #0 + bne _08167B60 + mov r4, ip + adds r0, r1, r4 + ldrb r0, [r0] +_08167B60: + subs r2, r0, #1 + ldr r0, _08167B94 + adds r1, r1, r0 + strb r2, [r1] + ldr r1, _08167B80 + ldr r3, [r1] + adds r0, r3, r0 + ldrb r0, [r0] + adds r6, r1, #0 + cmp r0, #0 + bne _08167B7C + ldr r1, _08167B98 + adds r0, r3, r1 + ldrb r0, [r0] +_08167B7C: + subs r1, r0, #1 + b _08167C26 + .align 2, 0 +_08167B80: .4byte 0x0203B978 +_08167B84: .4byte 0x00007FB4 +_08167B88: .4byte 0x00007C58 +_08167B8C: .4byte 0x00007FB3 +_08167B90: .4byte 0x00007C6C +_08167B94: .4byte 0x00008041 +_08167B98: .4byte 0x00008040 +_08167B9C: .4byte 0x00007FB6 +_08167BA0: + ldr r3, _08167BE4 + adds r0, r4, r3 + ldrb r1, [r0] + ldr r2, _08167BE8 + adds r0, r4, r2 + strb r1, [r0] + ldr r0, [r5] + ldr r4, _08167BEC + adds r1, r0, r4 + ldrb r1, [r1] + adds r0, r0, r3 + strb r1, [r0] + ldr r0, [r5] + adds r0, r0, r4 + strb r6, [r0] + ldr r0, [r5] + adds r2, r0, r2 + ldrb r1, [r2] + ldr r2, _08167BF0 + adds r0, r0, r2 + strb r1, [r0] + ldr r2, [r5] + adds r3, #0x8c + adds r0, r2, r3 + ldrb r1, [r0] + adds r4, #0x8d + adds r0, r2, r4 + ldrb r0, [r0] + subs r0, #1 + cmp r1, r0 + bge _08167BF4 + adds r3, r1, #1 + b _08167BF6 + .align 2, 0 +_08167BE4: .4byte 0x00007FB5 +_08167BE8: .4byte 0x00007FB4 +_08167BEC: .4byte 0x00007FB3 +_08167BF0: .4byte 0x00007FB6 +_08167BF4: + movs r3, #0 +_08167BF6: + ldr r1, _08167C18 + adds r0, r2, r1 + strb r3, [r0] + ldr r2, _08167C1C + ldr r3, [r2] + adds r1, r3, r1 + ldrb r1, [r1] + ldr r4, _08167C20 + adds r0, r3, r4 + ldrb r0, [r0] + subs r0, #1 + adds r6, r2, #0 + cmp r1, r0 + bge _08167C24 + adds r1, #1 + b _08167C26 + .align 2, 0 +_08167C18: .4byte 0x00008041 +_08167C1C: .4byte 0x0203B978 +_08167C20: .4byte 0x00008040 +_08167C24: + movs r1, #0 +_08167C26: + ldr r2, _08167C60 + adds r0, r3, r2 + strb r1, [r0] + adds r5, r6, #0 + ldr r0, [r5] + ldr r3, _08167C64 + adds r1, r0, r3 + ldrb r2, [r1] + ldr r4, _08167C68 + adds r1, r0, r4 + ldrb r1, [r1] + subs r1, #1 + eors r2, r1 + rsbs r1, r2, #0 + orrs r1, r2 + lsrs r4, r1, #0x1f + ldr r1, _08167C6C + adds r0, r0, r1 + bl sub_081D2B50 + mov r2, r8 + cmp r2, #0 + bne _08167C78 + ldr r0, [r5] + ldr r3, _08167C70 + adds r0, r0, r3 + ldr r1, _08167C74 + b _08167C98 + .align 2, 0 +_08167C60: .4byte 0x00007B4C +_08167C64: .4byte 0x00008041 +_08167C68: .4byte 0x00008040 +_08167C6C: .4byte 0x00007B1C +_08167C70: .4byte 0x00008044 +_08167C74: .4byte 0x08167CAD +_08167C78: + cmp r4, #0 + bne _08167C90 + ldr r0, [r5] + ldr r4, _08167C88 + adds r0, r0, r4 + ldr r1, _08167C8C + b _08167C98 + .align 2, 0 +_08167C88: .4byte 0x00008044 +_08167C8C: .4byte 0x08167DAD +_08167C90: + ldr r0, [r6] + ldr r1, _08167CA4 + adds r0, r0, r1 + ldr r1, _08167CA8 +_08167C98: + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08167CA4: .4byte 0x00008044 +_08167CA8: .4byte 0x08167E51 + thumb_func_end sub_08167AA8 + + thumb_func_start sub_08167CAC +sub_08167CAC: @ 0x08167CAC + push {r4, r5, r6, lr} + ldr r4, _08167CC8 + ldr r1, [r4] + ldr r5, _08167CCC + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, #1 + beq _08167CEC + cmp r0, #1 + bgt _08167CD0 + cmp r0, #0 + beq _08167CDA + b _08167DA4 + .align 2, 0 +_08167CC8: .4byte 0x0203B978 +_08167CCC: .4byte 0x00008048 +_08167CD0: + cmp r0, #2 + beq _08167D10 + cmp r0, #3 + beq _08167D50 + b _08167DA4 +_08167CDA: + ldr r2, _08167CE8 + adds r0, r1, r2 + ldrb r0, [r0] + bl sub_0816740C + b _08167D34 + .align 2, 0 +_08167CE8: .4byte 0x00007FB3 +_08167CEC: + ldr r6, _08167D08 + adds r0, r1, r6 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0 + bl sub_081679A4 + ldr r1, [r4] + ldr r0, _08167D0C + adds r1, r1, r0 + b _08167D38 + .align 2, 0 +_08167D08: .4byte 0x00007FB3 +_08167D0C: .4byte 0x00008048 +_08167D10: + ldr r2, _08167D40 + adds r0, r1, r2 + ldr r6, _08167D44 + adds r1, r1, r6 + bl sub_081D27A8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08167DA4 + ldr r1, [r4] + ldr r2, _08167D48 + adds r0, r1, r2 + ldrb r0, [r0] + ldr r6, _08167D4C + adds r1, r1, r6 + ldrb r1, [r1] + bl sub_08167340 +_08167D34: + ldr r1, [r4] + adds r1, r1, r5 +_08167D38: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _08167DA4 + .align 2, 0 +_08167D40: .4byte 0x00007C58 +_08167D44: .4byte 0x00007B0E +_08167D48: .4byte 0x00007B4C +_08167D4C: .4byte 0x00007FB6 +_08167D50: + ldr r2, _08167D98 + adds r0, r1, r2 + bl sub_081D2A94 + ldr r3, [r4] + ldr r6, _08167D9C + adds r0, r3, r6 + ldrb r1, [r0] + ldr r2, _08167DA0 + adds r0, r3, r2 + ldrb r0, [r0] + subs r0, #1 + cmp r1, r0 + beq _08167D8A + subs r6, #0x8e + adds r0, r3, r6 + movs r1, #0 + ldrsb r1, [r0, r1] + subs r2, #0x90 + adds r0, r3, r2 + adds r0, r0, r1 + ldrb r2, [r0] + ldr r6, _08167D98 + adds r0, r3, r6 + subs r6, #0xc + adds r1, r3, r6 + ldrb r1, [r1] + bl sub_081D2AB0 +_08167D8A: + ldr r0, [r4] + adds r0, r0, r5 + movs r1, #0 + strb r1, [r0] + movs r0, #0 + b _08167DA6 + .align 2, 0 +_08167D98: .4byte 0x00007B1C +_08167D9C: .4byte 0x00008041 +_08167DA0: .4byte 0x00008040 +_08167DA4: + movs r0, #1 +_08167DA6: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_08167CAC + + thumb_func_start sub_08167DAC +sub_08167DAC: @ 0x08167DAC + push {r4, r5, lr} + ldr r4, _08167DC8 + ldr r1, [r4] + ldr r5, _08167DCC + adds r2, r1, r5 + ldrb r0, [r2] + cmp r0, #1 + beq _08167DF8 + cmp r0, #1 + bgt _08167DD0 + cmp r0, #0 + beq _08167DDA + b _08167E46 + .align 2, 0 +_08167DC8: .4byte 0x0203B978 +_08167DCC: .4byte 0x00008048 +_08167DD0: + cmp r0, #2 + beq _08167E1C + cmp r0, #3 + beq _08167E40 + b _08167E46 +_08167DDA: + ldr r2, _08167DF0 + adds r0, r1, r2 + ldr r2, _08167DF4 + adds r1, r1, r2 + bl sub_081D27D4 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08167E46 + b _08167E2C + .align 2, 0 +_08167DF0: .4byte 0x00007C58 +_08167DF4: .4byte 0x00007B0E +_08167DF8: + ldr r2, _08167E14 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0 + bl sub_081679A4 + ldr r1, [r4] + ldr r0, _08167E18 + adds r1, r1, r0 + b _08167E30 + .align 2, 0 +_08167E14: .4byte 0x00007FB3 +_08167E18: .4byte 0x00008048 +_08167E1C: + ldr r2, _08167E38 + adds r0, r1, r2 + ldrb r0, [r0] + ldr r2, _08167E3C + adds r1, r1, r2 + ldrb r1, [r1] + bl sub_08167340 +_08167E2C: + ldr r1, [r4] + adds r1, r1, r5 +_08167E30: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _08167E46 + .align 2, 0 +_08167E38: .4byte 0x00007B4C +_08167E3C: .4byte 0x00007FB6 +_08167E40: + movs r0, #0 + strb r0, [r2] + b _08167E48 +_08167E46: + movs r0, #1 +_08167E48: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end sub_08167DAC + + thumb_func_start sub_08167E50 +sub_08167E50: @ 0x08167E50 + push {r4, r5, r6, lr} + ldr r4, _08167E6C + ldr r1, [r4] + ldr r5, _08167E70 + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, #1 + beq _08167EB0 + cmp r0, #1 + bgt _08167E74 + cmp r0, #0 + beq _08167E7E + b _08167F68 + .align 2, 0 +_08167E6C: .4byte 0x0203B978 +_08167E70: .4byte 0x00008048 +_08167E74: + cmp r0, #2 + beq _08167ED4 + cmp r0, #3 + beq _08167F14 + b _08167F68 +_08167E7E: + ldr r2, _08167EA4 + adds r0, r1, r2 + bl sub_081D16BC + ldr r0, [r4] + ldr r6, _08167EA8 + adds r0, r0, r6 + bl sub_081D2780 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08167F68 + ldr r0, [r4] + ldr r1, _08167EAC + adds r0, r0, r1 + ldrb r0, [r0] + bl sub_0816740C + b _08167EF8 + .align 2, 0 +_08167EA4: .4byte 0x00007C58 +_08167EA8: .4byte 0x00007B0E +_08167EAC: .4byte 0x00007FB3 +_08167EB0: + ldr r2, _08167ECC + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0 + bl sub_081679A4 + ldr r1, [r4] + ldr r6, _08167ED0 + adds r1, r1, r6 + b _08167EFC + .align 2, 0 +_08167ECC: .4byte 0x00007FB3 +_08167ED0: .4byte 0x00008048 +_08167ED4: + ldr r2, _08167F04 + adds r0, r1, r2 + ldr r6, _08167F08 + adds r1, r1, r6 + bl sub_081D27A8 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08167F68 + ldr r1, [r4] + ldr r2, _08167F0C + adds r0, r1, r2 + ldrb r0, [r0] + ldr r6, _08167F10 + adds r1, r1, r6 + ldrb r1, [r1] + bl sub_08167340 +_08167EF8: + ldr r1, [r4] + adds r1, r1, r5 +_08167EFC: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _08167F68 + .align 2, 0 +_08167F04: .4byte 0x00007C58 +_08167F08: .4byte 0x00007B0E +_08167F0C: .4byte 0x00007B4C +_08167F10: .4byte 0x00007FB6 +_08167F14: + ldr r2, _08167F5C + adds r0, r1, r2 + bl sub_081D2A94 + ldr r3, [r4] + ldr r6, _08167F60 + adds r0, r3, r6 + ldrb r1, [r0] + ldr r2, _08167F64 + adds r0, r3, r2 + ldrb r0, [r0] + subs r0, #1 + cmp r1, r0 + beq _08167F4E + subs r6, #0x8e + adds r0, r3, r6 + movs r1, #0 + ldrsb r1, [r0, r1] + subs r2, #0x90 + adds r0, r3, r2 + adds r0, r0, r1 + ldrb r2, [r0] + ldr r6, _08167F5C + adds r0, r3, r6 + subs r6, #0xc + adds r1, r3, r6 + ldrb r1, [r1] + bl sub_081D2AB0 +_08167F4E: + ldr r0, [r4] + adds r0, r0, r5 + movs r1, #0 + strb r1, [r0] + movs r0, #0 + b _08167F6A + .align 2, 0 +_08167F5C: .4byte 0x00007B1C +_08167F60: .4byte 0x00008041 +_08167F64: .4byte 0x00008040 +_08167F68: + movs r0, #1 +_08167F6A: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end sub_08167E50 + + thumb_func_start sub_08167F70 +sub_08167F70: @ 0x08167F70 + ldr r1, _08167F80 + ldr r1, [r1] + ldr r2, _08167F84 + adds r1, r1, r2 + ldrh r1, [r1] + adds r1, #0x26 + strh r1, [r0, #0x20] + bx lr + .align 2, 0 +_08167F80: .4byte 0x0203B978 +_08167F84: .4byte 0x00007B0E + thumb_func_end sub_08167F70 + + thumb_func_start sub_08167F88 +sub_08167F88: @ 0x08167F88 + push {lr} + adds r2, r0, #0 + movs r0, #0x2e + ldrsh r1, [r2, r0] + ldr r0, _08167FA8 + ldr r0, [r0] + ldr r3, _08167FAC + adds r0, r0, r3 + ldrb r0, [r0] + cmp r1, r0 + bne _08167FB0 + adds r0, r2, #0 + movs r1, #0 + bl StartSpriteAnim + b _08167FB8 + .align 2, 0 +_08167FA8: .4byte 0x0203B978 +_08167FAC: .4byte 0x00008041 +_08167FB0: + adds r0, r2, #0 + movs r1, #1 + bl StartSpriteAnim +_08167FB8: + pop {r0} + bx r0 + thumb_func_end sub_08167F88 + + thumb_func_start sub_08167FBC +sub_08167FBC: @ 0x08167FBC + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08167FDC + ldr r0, [r0] + ldr r2, _08167FE0 + adds r1, r0, r2 + ldrb r1, [r1] + subs r2, #1 + adds r0, r0, r2 + ldrb r0, [r0] + subs r0, #1 + cmp r1, r0 + bne _08167FE4 + movs r0, #0x65 + b _08167FE6 + .align 2, 0 +_08167FDC: .4byte 0x0203B978 +_08167FE0: .4byte 0x00008041 +_08167FE4: + movs r0, #0x66 +_08167FE6: + bl IndexOfSpritePaletteTag + lsls r0, r0, #4 + ldrb r2, [r4, #5] + movs r1, #0xf + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #5] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_08167FBC + + thumb_func_start sub_08167FFC +sub_08167FFC: @ 0x08167FFC + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x64 + muls r0, r1, r0 + ldr r1, _08168038 + adds r0, r0, r1 + movs r1, #0x30 + bl GetMonData + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _0816803C + ldr r0, [r0] + ldr r3, _08168040 + adds r1, r0, r3 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + subs r3, #3 + adds r0, r0, r3 + adds r4, r0, r1 + cmp r2, #0xff + beq _08168044 + adds r0, r2, #0 + movs r1, #0x1d + bl __udivsi3 + b _08168046 + .align 2, 0 +_08168038: .4byte 0x02024190 +_0816803C: .4byte 0x0203B978 +_08168040: .4byte 0x00007FB3 +_08168044: + movs r0, #9 +_08168046: + strb r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08167FFC + + thumb_func_start sub_08168050 +sub_08168050: @ 0x08168050 + push {lr} + sub sp, #0x10 + ldr r0, _0816808C + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, _08168090 + str r0, [sp] + ldr r1, _08168094 + ldr r0, [sp, #4] + ands r0, r1 + movs r1, #0x80 + lsls r1, r1, #4 + orrs r0, r1 + ldr r1, _08168098 + ands r0, r1 + adds r1, #1 + orrs r0, r1 + str r0, [sp, #4] + mov r0, sp + bl LoadCompressedSpriteSheet + add r0, sp, #8 + bl LoadSpritePalette + add sp, #0x10 + pop {r0} + bx r0 + .align 2, 0 +_0816808C: .4byte 0x085C0A9C +_08168090: .4byte 0x085BEBC0 +_08168094: .4byte 0xFFFF0000 +_08168098: .4byte 0x0000FFFF + thumb_func_end sub_08168050 + + thumb_func_start sub_0816809C +sub_0816809C: @ 0x0816809C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _08168120 + ldr r0, [r0] + ldr r1, _08168124 + adds r7, r0, r1 + ldr r0, _08168128 + mov sl, r0 + movs r6, #0 + movs r1, #0x40 + mov sb, r1 + movs r0, #0x60 + rsbs r0, r0, #0 + mov r8, r0 +_081680BE: + mov r5, sb + muls r5, r6, r5 + mov r0, r8 + adds r1, r0, r5 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r0, #0x11 + lsls r2, r0, #0x10 + mov r0, sl + asrs r2, r2, #0x10 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x40 + beq _08168106 + ldr r0, _0816812C + lsls r4, r1, #4 + adds r4, r4, r1 + lsls r4, r4, #2 + adds r4, r4, r0 + movs r1, #8 + strh r1, [r4, #0x2e] + movs r0, #0x20 + orrs r5, r0 + strh r5, [r4, #0x30] + strh r6, [r4, #0x32] + lsls r1, r6, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl StartSpriteAnim + lsls r0, r6, #2 + adds r0, r0, r7 + str r4, [r0] +_08168106: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #1 + bls _081680BE + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08168120: .4byte 0x0203B978 +_08168124: .4byte 0x00007B44 +_08168128: .4byte 0x085C0A84 +_0816812C: .4byte 0x020205AC + thumb_func_end sub_0816809C + + thumb_func_start sub_08168130 +sub_08168130: @ 0x08168130 + push {r4, r5, lr} + ldr r4, _08168148 + ldr r0, [r4] + ldr r5, _0816814C + adds r0, r0, r5 + ldrb r0, [r0] + cmp r0, #0 + beq _08168150 + cmp r0, #1 + beq _08168168 + b _08168174 + .align 2, 0 +_08168148: .4byte 0x0203B978 +_0816814C: .4byte 0x00008048 +_08168150: + bl sub_08168050 + ldr r1, [r4] + ldr r0, _08168164 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #1 + b _08168176 + .align 2, 0 +_08168164: .4byte 0x00008048 +_08168168: + bl sub_0816809C + ldr r0, [r4] + adds r0, r0, r5 + movs r1, #0 + strb r1, [r0] +_08168174: + movs r0, #0 +_08168176: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end sub_08168130 + + thumb_func_start sub_0816817C +sub_0816817C: @ 0x0816817C + 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, r0, #0x10 + asrs r4, r0, #0x10 + movs r0, #0x30 + ldrsh r1, [r2, r0] + cmp r4, r1 + bgt _081681A0 + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + cmp r0, r1 + bge _081681A8 + cmp r4, r1 + blt _081681B0 +_081681A0: + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + cmp r0, r1 + bgt _081681B0 +_081681A8: + ldrh r0, [r2, #0x30] + strh r0, [r2, #0x20] + ldr r0, _081681B8 + str r0, [r2, #0x1c] +_081681B0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081681B8: .4byte 0x08007141 + thumb_func_end sub_0816817C + diff --git a/asm/util.s b/asm/util.s new file mode 100644 index 0000000..9fdfaaa --- /dev/null +++ b/asm/util.s @@ -0,0 +1,563 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start CreateInvisibleSpriteWithCallback +CreateInvisibleSpriteWithCallback: @ 0x0806F0C4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r0, _0806F0F8 + movs r1, #0xf8 + movs r2, #0xa8 + movs r3, #0xe + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r5, _0806F0FC + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r3, r2, r5 + adds r3, #0x3e + ldrb r1, [r3] + movs r4, #4 + orrs r1, r4 + strb r1, [r3] + adds r5, #0x1c + adds r2, r2, r5 + str r6, [r2] + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0806F0F8: .4byte 0x082FAD34 +_0806F0FC: .4byte 0x020205AC + thumb_func_end CreateInvisibleSpriteWithCallback + + thumb_func_start StoreWordInTwoHalfwords +StoreWordInTwoHalfwords: @ 0x0806F100 + strh r1, [r0] + lsrs r1, r1, #0x10 + strh r1, [r0, #2] + bx lr + thumb_func_end StoreWordInTwoHalfwords + + thumb_func_start LoadWordFromTwoHalfwords +LoadWordFromTwoHalfwords: @ 0x0806F108 + ldrh r2, [r0] + movs r3, #2 + ldrsh r0, [r0, r3] + lsls r0, r0, #0x10 + orrs r2, r0 + str r2, [r1] + bx lr + .align 2, 0 + thumb_func_end LoadWordFromTwoHalfwords + + thumb_func_start SetBgAffineStruct +SetBgAffineStruct: @ 0x0806F118 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r4, [sp, #0x18] + ldr r5, [sp, #0x1c] + ldr r6, [sp, #0x20] + ldr r7, [sp, #0x24] + mov r8, r7 + str r1, [r0] + str r2, [r0, #4] + strh r3, [r0, #8] + strh r4, [r0, #0xa] + strh r5, [r0, #0xc] + strh r6, [r0, #0xe] + mov r1, r8 + strh r1, [r0, #0x10] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end SetBgAffineStruct + + thumb_func_start DoBgAffineSet +DoBgAffineSet: @ 0x0806F144 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0x24 + mov r8, r0 + ldr r0, [sp, #0x38] + ldr r4, [sp, #0x3c] + ldr r5, [sp, #0x40] + ldr r6, [sp, #0x44] + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + str r0, [sp] + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + str r4, [sp, #4] + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + str r5, [sp, #8] + str r6, [sp, #0xc] + add r0, sp, #0x10 + bl SetBgAffineStruct + add r0, sp, #0x10 + mov r1, r8 + movs r2, #1 + bl BgAffineSet + add sp, #0x24 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end DoBgAffineSet + + thumb_func_start CopySpriteTiles +CopySpriteTiles: @ 0x0806F190 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x38 + str r2, [sp, #0x20] + adds r4, r3, #0 + ldr r7, [sp, #0x58] + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + ldr r2, _0806F1C0 + lsrs r1, r1, #0x17 + lsrs r0, r0, #0x15 + adds r1, r1, r0 + adds r0, r2, #1 + adds r0, r1, r0 + ldrb r0, [r0] + str r0, [sp, #0x24] + adds r1, r1, r2 + ldrb r1, [r1] + str r1, [sp, #0x28] + movs r0, #0 + b _0806F310 + .align 2, 0 +_0806F1C0: .4byte 0x082FAD4C +_0806F1C4: + movs r5, #0 + adds r0, #1 + str r0, [sp, #0x30] + b _0806F2F8 +_0806F1CC: + ldrh r0, [r4] + ldr r2, _0806F204 + adds r1, r2, #0 + ands r1, r0 + lsls r1, r1, #5 + mov r8, r1 + movs r2, #0xc0 + lsls r2, r2, #4 + adds r1, r2, #0 + ands r1, r0 + mov r2, sp + strh r0, [r2, #0x34] + cmp r1, #0 + bne _0806F20C + ldr r0, [sp, #0x20] + add r0, r8 + adds r1, r7, #0 + ldr r2, _0806F208 + bl CpuSet + adds r4, #2 + str r4, [sp, #0x2c] + adds r7, #0x20 + mov sl, r7 + adds r5, #1 + mov sb, r5 + b _0806F2EE + .align 2, 0 +_0806F204: .4byte 0x000003FF +_0806F208: .4byte 0x04000008 +_0806F20C: + movs r0, #0x80 + lsls r0, r0, #4 + cmp r1, r0 + bne _0806F250 + movs r1, #0 + adds r4, #2 + str r4, [sp, #0x2c] + movs r2, #0x20 + adds r2, r2, r7 + mov sl, r2 + adds r5, #1 + mov sb, r5 +_0806F224: + lsls r4, r1, #0x18 + asrs r4, r4, #0x18 + movs r0, #7 + subs r0, r0, r4 + lsls r0, r0, #2 + add r0, r8 + ldr r1, [sp, #0x20] + adds r0, r1, r0 + lsls r1, r4, #2 + adds r1, r7, r1 + ldr r2, _0806F24C + bl CpuSet + adds r4, #1 + lsls r4, r4, #0x18 + lsrs r1, r4, #0x18 + asrs r4, r4, #0x18 + cmp r4, #7 + ble _0806F224 + b _0806F2EE + .align 2, 0 +_0806F24C: .4byte 0x04000001 +_0806F250: + movs r1, #0 + adds r4, #2 + str r4, [sp, #0x2c] + movs r2, #0x20 + adds r2, r2, r7 + mov sl, r2 + adds r5, #1 + mov sb, r5 + movs r0, #0xf + mov ip, r0 +_0806F264: + movs r2, #0 + lsls r4, r1, #0x18 + lsls r0, r4, #2 + lsrs r0, r0, #0x18 + adds r6, r0, #3 + mov r1, r8 + adds r5, r1, r0 +_0806F272: + lsls r1, r2, #0x18 + asrs r1, r1, #0x18 + subs r0, r6, r1 + mov r2, sp + adds r3, r2, r0 + adds r0, r5, r1 + ldr r2, [sp, #0x20] + adds r0, r2, r0 + ldrb r2, [r0] + mov r0, ip + ands r0, r2 + lsls r0, r0, #4 + lsrs r2, r2, #4 + orrs r0, r2 + strb r0, [r3] + adds r1, #1 + lsls r1, r1, #0x18 + lsrs r2, r1, #0x18 + asrs r1, r1, #0x18 + cmp r1, #3 + ble _0806F272 + movs r1, #0x80 + lsls r1, r1, #0x11 + adds r0, r4, r1 + lsrs r1, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #7 + ble _0806F264 + mov r2, sp + ldrh r0, [r2, #0x34] + movs r2, #0x80 + lsls r2, r2, #4 + ands r0, r2 + cmp r0, #0 + beq _0806F2E4 + movs r1, #0 +_0806F2BA: + lsls r4, r1, #0x18 + asrs r4, r4, #0x18 + movs r0, #7 + subs r0, r0, r4 + lsls r0, r0, #2 + add r0, sp + lsls r1, r4, #2 + adds r1, r7, r1 + ldr r2, _0806F2E0 + bl CpuSet + adds r4, #1 + lsls r4, r4, #0x18 + lsrs r1, r4, #0x18 + asrs r4, r4, #0x18 + cmp r4, #7 + ble _0806F2BA + b _0806F2EE + .align 2, 0 +_0806F2E0: .4byte 0x04000001 +_0806F2E4: + mov r0, sp + adds r1, r7, #0 + ldr r2, _0806F328 + bl CpuSet +_0806F2EE: + ldr r4, [sp, #0x2c] + mov r7, sl + mov r1, sb + lsls r0, r1, #0x18 + lsrs r5, r0, #0x18 +_0806F2F8: + ldr r2, [sp, #0x28] + cmp r5, r2 + bhs _0806F300 + b _0806F1CC +_0806F300: + movs r0, #0x20 + ldr r1, [sp, #0x28] + subs r0, r0, r1 + lsls r0, r0, #1 + adds r4, r4, r0 + ldr r2, [sp, #0x30] + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 +_0806F310: + ldr r1, [sp, #0x24] + cmp r0, r1 + bhs _0806F318 + b _0806F1C4 +_0806F318: + add sp, #0x38 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0806F328: .4byte 0x04000008 + thumb_func_end CopySpriteTiles + + thumb_func_start CountTrailingZeroBits +CountTrailingZeroBits: @ 0x0806F32C + push {lr} + adds r2, r0, #0 + movs r1, #0 + movs r3, #1 +_0806F334: + adds r0, r2, #0 + ands r0, r3 + cmp r0, #0 + beq _0806F340 + adds r0, r1, #0 + b _0806F34E +_0806F340: + lsrs r2, r2, #1 + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x1f + bls _0806F334 + movs r0, #0 +_0806F34E: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CountTrailingZeroBits + + thumb_func_start CalcCRC16 +CalcCRC16: @ 0x0806F354 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r4, r1, #0 + ldr r2, _0806F384 + movs r3, #0 + cmp r3, r4 + bge _0806F3A0 + movs r6, #1 + ldr r0, _0806F388 + adds r5, r0, #0 +_0806F368: + adds r0, r7, r3 + ldrb r0, [r0] + eors r2, r0 + movs r1, #0 + adds r3, #1 +_0806F372: + adds r0, r2, #0 + ands r0, r6 + cmp r0, #0 + beq _0806F38C + lsrs r0, r2, #1 + eors r0, r5 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + b _0806F38E + .align 2, 0 +_0806F384: .4byte 0x00001121 +_0806F388: .4byte 0x00008408 +_0806F38C: + lsrs r2, r2, #1 +_0806F38E: + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #7 + bls _0806F372 + lsls r0, r3, #0x10 + lsrs r3, r0, #0x10 + cmp r3, r4 + blt _0806F368 +_0806F3A0: + mvns r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end CalcCRC16 + + thumb_func_start CalcCRC16WithTable +CalcCRC16WithTable: @ 0x0806F3AC + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + ldr r2, _0806F3E8 + movs r3, #0 + cmp r3, r4 + bhs _0806F3DA + ldr r6, _0806F3EC +_0806F3BC: + lsrs r1, r2, #8 + adds r0, r5, r3 + ldrb r0, [r0] + eors r2, r0 + lsls r0, r2, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r6 + ldrh r0, [r0] + adds r2, r0, #0 + eors r2, r1 + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, r4 + blo _0806F3BC +_0806F3DA: + mvns r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0806F3E8: .4byte 0x00001121 +_0806F3EC: .4byte 0x082FAD64 + thumb_func_end CalcCRC16WithTable + + thumb_func_start CalcByteArraySum +CalcByteArraySum: @ 0x0806F3F0 + push {r4, lr} + adds r4, r0, #0 + movs r3, #0 + movs r2, #0 + cmp r3, r1 + bhs _0806F408 +_0806F3FC: + adds r0, r4, r2 + ldrb r0, [r0] + adds r3, r3, r0 + adds r2, #1 + cmp r2, r1 + blo _0806F3FC +_0806F408: + adds r0, r3, #0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end CalcByteArraySum + + thumb_func_start BlendPalette +BlendPalette: @ 0x0806F410 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov ip, r1 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + mov r0, sp + strh r3, [r0] + movs r6, #0 + cmp r6, ip + bhs _0806F496 + ldr r0, _0806F4A8 + mov sl, r0 + ldr r1, _0806F4AC + mov sb, r1 +_0806F43E: + mov r0, r8 + adds r5, r6, r0 + lsls r5, r5, #0x10 + lsrs r5, r5, #0xf + mov r1, sl + adds r0, r5, r1 + ldr r3, [r0] + lsls r4, r3, #0x1b + lsls r2, r3, #0x16 + lsls r3, r3, #0x11 + add r5, sb + lsrs r4, r4, #0x1b + ldr r1, [sp] + lsls r0, r1, #0x1b + lsrs r0, r0, #0x1b + subs r0, r0, r4 + muls r0, r7, r0 + asrs r0, r0, #4 + adds r4, r4, r0 + lsrs r2, r2, #0x1b + lsls r0, r1, #0x16 + lsrs r0, r0, #0x1b + subs r0, r0, r2 + muls r0, r7, r0 + asrs r0, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #5 + orrs r4, r2 + lsrs r3, r3, #0x1b + lsls r1, r1, #0x11 + lsrs r1, r1, #0x1b + subs r1, r1, r3 + adds r0, r1, #0 + muls r0, r7, r0 + asrs r0, r0, #4 + adds r3, r3, r0 + lsls r3, r3, #0xa + orrs r4, r3 + strh r4, [r5] + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, ip + blo _0806F43E +_0806F496: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0806F4A8: .4byte 0x020373B4 +_0806F4AC: .4byte 0x020377B4 + thumb_func_end BlendPalette + diff --git a/asm/walda_phrase.s b/asm/walda_phrase.s new file mode 100644 index 0000000..bb2ea6e --- /dev/null +++ b/asm/walda_phrase.s @@ -0,0 +1,648 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start TryBufferWaldaPhrase +TryBufferWaldaPhrase: @ 0x081D92F8 + push {r4, lr} + bl IsWaldaPhraseEmpty + cmp r0, #0 + bne _081D9318 + ldr r4, _081D9314 + bl GetWaldaPhrasePtr + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCopy + movs r0, #1 + b _081D931A + .align 2, 0 +_081D9314: .4byte 0x02021C40 +_081D9318: + movs r0, #0 +_081D931A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end TryBufferWaldaPhrase + + thumb_func_start DoWaldaNamingScreen +DoWaldaNamingScreen: @ 0x081D9320 + push {r4, lr} + sub sp, #8 + ldr r4, _081D9350 + bl GetWaldaPhrasePtr + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCopy + movs r0, #0 + str r0, [sp] + ldr r0, _081D9354 + str r0, [sp, #4] + movs r0, #4 + adds r1, r4, #0 + movs r2, #0 + movs r3, #0 + bl DoNamingScreen + add sp, #8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081D9350: .4byte 0x02021C54 +_081D9354: .4byte 0x081D9359 + thumb_func_end DoWaldaNamingScreen + + thumb_func_start CB2_HandleGivenWaldaPhrase +CB2_HandleGivenWaldaPhrase: @ 0x081D9358 + push {r4, r5, lr} + ldr r4, _081D9378 + ldr r5, _081D937C + adds r0, r5, #0 + bl GetWaldaPhraseInputCase + strh r0, [r4] + ldrh r0, [r4] + cmp r0, #1 + beq _081D93A4 + cmp r0, #1 + bgt _081D9380 + cmp r0, #0 + beq _081D939E + b _081D93A4 + .align 2, 0 +_081D9378: .4byte 0x02037280 +_081D937C: .4byte 0x02021C54 +_081D9380: + cmp r0, #2 + bne _081D93A4 + bl IsWaldaPhraseEmpty + cmp r0, #0 + beq _081D9398 + ldr r0, _081D9394 + bl SetWaldaPhrase + b _081D93A4 + .align 2, 0 +_081D9394: .4byte 0x085FC010 +_081D9398: + movs r0, #1 + strh r0, [r4] + b _081D93A4 +_081D939E: + adds r0, r5, #0 + bl SetWaldaPhrase +_081D93A4: + ldr r4, _081D93C4 + bl GetWaldaPhrasePtr + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCopy + ldr r1, _081D93C8 + ldr r0, _081D93CC + str r0, [r1] + ldr r0, _081D93D0 + bl SetMainCallback2 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081D93C4: .4byte 0x02021C40 +_081D93C8: .4byte 0x03005B0C +_081D93CC: .4byte 0x080AEA65 +_081D93D0: .4byte 0x08085A31 + thumb_func_end CB2_HandleGivenWaldaPhrase + + thumb_func_start GetWaldaPhraseInputCase +GetWaldaPhraseInputCase: @ 0x081D93D4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4] + cmp r0, #0xff + bne _081D93E2 + movs r0, #2 + b _081D93F8 +_081D93E2: + bl GetWaldaPhrasePtr + adds r1, r0, #0 + adds r0, r4, #0 + bl StringCompare + cmp r0, #0 + beq _081D93F6 + movs r0, #0 + b _081D93F8 +_081D93F6: + movs r0, #1 +_081D93F8: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetWaldaPhraseInputCase + + thumb_func_start TryGetWallpaperWithWaldaPhrase +TryGetWallpaperWithWaldaPhrase: @ 0x081D9400 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x10 + ldr r0, _081D9474 + ldr r0, [r0] + adds r0, #0xa + bl GetTrainerId + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldr r0, _081D9478 + mov r8, r0 + bl GetWaldaPhrasePtr + mov r7, sp + adds r7, #0xa + add r6, sp, #0xc + mov r5, sp + adds r5, #0xd + str r4, [sp] + str r0, [sp, #4] + add r0, sp, #8 + adds r1, r7, #0 + adds r2, r6, #0 + adds r3, r5, #0 + bl TryCalculateWallpaper + mov r1, r8 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _081D945A + ldrb r0, [r5] + bl SetWaldaWallpaperPatternId + ldrb r0, [r6] + bl SetWaldaWallpaperIconId + add r0, sp, #8 + ldrh r0, [r0] + ldrh r1, [r7] + bl SetWaldaWallpaperColors +_081D945A: + mov r1, r8 + ldrh r0, [r1] + bl SetWaldaWallpaperLockedOrUnlocked + mov r1, r8 + ldrb r0, [r1] + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_081D9474: .4byte 0x03005AF0 +_081D9478: .4byte 0x02037290 + thumb_func_end TryGetWallpaperWithWaldaPhrase + + thumb_func_start TryCalculateWallpaper +TryCalculateWallpaper: @ 0x081D947C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x2c + str r0, [sp, #0x1c] + str r1, [sp, #0x20] + str r2, [sp, #0x24] + str r3, [sp, #0x28] + ldr r0, [sp, #0x4c] + ldr r6, [sp, #0x50] + lsls r5, r0, #0x10 + lsrs r0, r5, #0x10 + mov sl, r0 + adds r0, r6, #0 + bl StringLength + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xc + bne _081D9562 + movs r4, #0 + add r7, sp, #0x10 + lsrs r5, r5, #0x18 + mov sb, r5 + adds r2, r7, #0 +_081D94B2: + adds r1, r2, r4 + adds r0, r6, r4 + ldrb r0, [r0] + subs r0, #1 + strb r0, [r1] + adds r4, #1 + cmp r4, #0xb + ble _081D94B2 + movs r6, #2 + movs r5, #0 + movs r1, #6 + mov r8, r1 + movs r4, #0xb +_081D94CC: + mov r0, r8 + str r0, [sp] + add r0, sp, #4 + adds r1, r7, #0 + adds r2, r5, #0 + adds r3, r6, #0 + bl sub_081D9640 + adds r6, #8 + adds r5, #6 + subs r4, #1 + cmp r4, #0 + bge _081D94CC + add r0, sp, #4 + movs r1, #9 + movs r2, #0x15 + bl sub_081D9574 + add r0, sp, #4 + ldrb r0, [r0, #8] + movs r2, #0xf + ands r2, r0 + add r0, sp, #4 + movs r1, #8 + bl sub_081D9574 + add r0, sp, #4 + ldrb r2, [r0, #8] + lsrs r2, r2, #4 + movs r1, #8 + bl sub_081D95C0 + add r0, sp, #4 + ldrb r2, [r0, #6] + adds r1, r0, #0 + ldrb r0, [r0] + ldrb r1, [r1, #2] + eors r0, r1 + add r1, sp, #4 + ldrb r4, [r1, #4] + eors r0, r4 + mov r1, sb + eors r0, r1 + cmp r2, r0 + bne _081D9562 + add r0, sp, #4 + ldrb r3, [r0, #7] + adds r2, r0, #0 + ldrb r1, [r0, #1] + ldrb r0, [r2, #3] + eors r1, r0 + adds r0, r2, #0 + ldrb r2, [r0, #5] + eors r1, r2 + movs r0, #0xff + mov r5, sl + ands r0, r5 + eors r1, r0 + cmp r3, r1 + bne _081D9562 + add r0, sp, #4 + ldrh r0, [r0] + ldr r1, [sp, #0x1c] + strh r0, [r1] + mov r0, sp + adds r0, #6 + ldrh r0, [r0] + ldr r5, [sp, #0x20] + strh r0, [r5] + ldr r0, [sp, #0x24] + strb r4, [r0] + ldr r1, [sp, #0x28] + strb r2, [r1] + movs r0, #1 + b _081D9564 +_081D9562: + movs r0, #0 +_081D9564: + add sp, #0x2c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end TryCalculateWallpaper + + thumb_func_start sub_081D9574 +sub_081D9574: @ 0x081D9574 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + mov ip, r1 + subs r3, r2, #1 + cmp r2, #0 + beq _081D95BA +_081D9580: + ldrb r1, [r7] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x1f + mov r2, ip + subs r2, #1 + subs r5, r3, #1 + cmp r2, #0 + blt _081D95B0 + movs r6, #0x80 + adds r3, r2, r7 +_081D9598: + ldrb r1, [r3] + adds r0, r6, #0 + ands r0, r1 + lsls r0, r0, #0x18 + lsls r1, r1, #1 + orrs r4, r1 + strb r4, [r3] + lsrs r4, r0, #0x1f + subs r3, #1 + subs r2, #1 + cmp r2, #0 + bge _081D9598 +_081D95B0: + adds r3, r5, #0 + movs r0, #1 + rsbs r0, r0, #0 + cmp r3, r0 + bne _081D9580 +_081D95BA: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_081D9574 + + thumb_func_start sub_081D95C0 +sub_081D95C0: @ 0x081D95C0 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + lsls r2, r2, #0x18 + lsrs r3, r2, #0x18 + lsls r0, r3, #4 + orrs r3, r0 + lsls r0, r3, #0x18 + lsrs r3, r0, #0x18 + movs r4, #0 + cmp r4, r5 + bhs _081D95E8 +_081D95D8: + adds r2, r6, r4 + ldrb r1, [r2] + adds r0, r3, #0 + eors r0, r1 + strb r0, [r2] + adds r4, #1 + cmp r4, r5 + blo _081D95D8 +_081D95E8: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081D95C0 + + thumb_func_start sub_081D95F0 +sub_081D95F0: @ 0x081D95F0 + push {lr} + lsrs r3, r1, #3 + movs r2, #7 + ands r2, r1 + movs r1, #0x80 + asrs r1, r2 + adds r0, r0, r3 + ldrb r0, [r0] + ands r0, r1 + cmp r0, #0 + beq _081D9608 + movs r0, #1 +_081D9608: + pop {r1} + bx r1 + thumb_func_end sub_081D95F0 + + thumb_func_start sub_081D960C +sub_081D960C: @ 0x081D960C + lsrs r3, r1, #3 + movs r2, #7 + ands r2, r1 + movs r1, #0x80 + asrs r1, r2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r0, r3 + ldrb r2, [r0] + orrs r1, r2 + strb r1, [r0] + bx lr + thumb_func_end sub_081D960C + + thumb_func_start sub_081D9624 +sub_081D9624: @ 0x081D9624 + lsrs r3, r1, #3 + movs r2, #7 + ands r2, r1 + movs r1, #0x80 + asrs r1, r2 + mvns r1, r1 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r0, r3 + ldrb r2, [r0] + ands r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 + thumb_func_end sub_081D9624 + + thumb_func_start sub_081D9640 +sub_081D9640: @ 0x081D9640 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + mov sb, r1 + adds r1, r2, #0 + mov r8, r3 + ldr r7, [sp, #0x1c] + movs r5, #0 + cmp r5, r7 + bhs _081D9684 + adds r4, r1, #0 +_081D965A: + mov r0, r8 + adds r1, r0, r5 + mov r0, sb + bl sub_081D95F0 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081D9674 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_081D960C + b _081D967C +_081D9674: + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_081D9624 +_081D967C: + adds r4, #1 + adds r5, #1 + cmp r5, r7 + blo _081D965A +_081D9684: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_081D9640 + + thumb_func_start sub_081D9690 +sub_081D9690: @ 0x081D9690 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _081D96B4 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0x1a + ldrsh r0, [r0, r1] + cmp r0, #4 + bhi _081D9750 + lsls r0, r0, #2 + ldr r1, _081D96B8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081D96B4: .4byte 0x03005B60 +_081D96B8: .4byte 0x081D96BC +_081D96BC: @ jump table + .4byte _081D96D0 @ case 0 + .4byte _081D96F0 @ case 1 + .4byte _081D9710 @ case 2 + .4byte _081D9730 @ case 3 + .4byte _081D9750 @ case 4 +_081D96D0: + ldr r4, _081D96E4 + ldr r0, _081D96E8 + ldrb r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081D96EC + adds r0, r0, r1 + movs r1, #0x32 + b _081D9760 + .align 2, 0 +_081D96E4: .4byte 0x02039BD1 +_081D96E8: .4byte 0x02039BC4 +_081D96EC: .4byte 0x02024190 +_081D96F0: + ldr r4, _081D9704 + ldr r0, _081D9708 + ldrb r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081D970C + adds r0, r0, r1 + movs r1, #0x33 + b _081D9760 + .align 2, 0 +_081D9704: .4byte 0x02039BD1 +_081D9708: .4byte 0x02039BC4 +_081D970C: .4byte 0x02024190 +_081D9710: + ldr r4, _081D9724 + ldr r0, _081D9728 + ldrb r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081D972C + adds r0, r0, r1 + movs r1, #0x34 + b _081D9760 + .align 2, 0 +_081D9724: .4byte 0x02039BD1 +_081D9728: .4byte 0x02039BC4 +_081D972C: .4byte 0x02024190 +_081D9730: + ldr r4, _081D9744 + ldr r0, _081D9748 + ldrb r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081D974C + adds r0, r0, r1 + movs r1, #0x35 + b _081D9760 + .align 2, 0 +_081D9744: .4byte 0x02039BD1 +_081D9748: .4byte 0x02039BC4 +_081D974C: .4byte 0x02024190 +_081D9750: + ldr r4, _081D97A0 + ldr r0, _081D97A4 + ldrb r1, [r0] + movs r0, #0x64 + muls r0, r1, r0 + ldr r1, _081D97A8 + adds r0, r0, r1 + movs r1, #0x36 +_081D9760: + bl GetMonData + strb r0, [r4] + ldr r5, _081D97AC + ldr r4, _081D97B0 + ldrb r0, [r4] + lsls r0, r0, #6 + adds r0, r0, r5 + ldr r1, _081D97A0 + ldrb r1, [r1] + adds r0, #0x2c + strb r1, [r0] + ldr r0, _081D97B4 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + rsbs r0, r0, #0 + lsrs r0, r0, #0x1f + ldrb r1, [r4] + lsls r1, r1, #6 + adds r1, r1, r5 + adds r1, #0x2d + strb r0, [r1] + ldr r1, _081D97B8 + ldr r2, _081D97BC + adds r0, r6, #0 + bl SetTaskFuncWithFollowupFunc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081D97A0: .4byte 0x02039BD1 +_081D97A4: .4byte 0x02039BC4 +_081D97A8: .4byte 0x02024190 +_081D97AC: .4byte 0x02039AA0 +_081D97B0: .4byte 0x02039BC5 +_081D97B4: .4byte 0x00000864 +_081D97B8: .4byte 0x081D9A0D +_081D97BC: .4byte 0x081D97C1 + thumb_func_end sub_081D9690 + + thumb_func_start GetLetterTableId +GetLetterTableId: @ 0x081D97C0 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _081D97D4 + ldr r2, _081D97D8 + bl SetTaskFuncWithFollowupFunc + pop {r0} + bx r0 + .align 2, 0 +_081D97D4: .4byte 0x081D9AD5 +_081D97D8: .4byte 0x081D97DD + thumb_func_end GetLetterTableId + diff --git a/asm/wallclock.s b/asm/wallclock.s new file mode 100644 index 0000000..670a7cb --- /dev/null +++ b/asm/wallclock.s @@ -0,0 +1,1598 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start WallClockVblankCallback +WallClockVblankCallback: @ 0x081347FC + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallClockVblankCallback + + thumb_func_start LoadWallClockGraphics +LoadWallClockGraphics: @ 0x08134810 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + movs r0, #0 + bl SetVBlankCallback + movs r0, #0 + movs r1, #0 + bl SetGpuReg + movs r0, #0xe + movs r1, #0 + bl SetGpuReg + movs r0, #0xc + movs r1, #0 + bl SetGpuReg + movs r0, #0xa + movs r1, #0 + bl SetGpuReg + movs r0, #8 + movs r1, #0 + bl SetGpuReg + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #0 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #1 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #2 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgX + movs r0, #3 + movs r1, #0 + movs r2, #0 + bl ChangeBgY + movs r3, #0xc0 + lsls r3, r3, #0x13 + movs r4, #0xc0 + lsls r4, r4, #9 + add r0, sp, #4 + mov r8, r0 + mov r2, sp + movs r6, #0 + ldr r1, _08134930 + movs r5, #0x80 + lsls r5, r5, #5 + ldr r7, _08134934 + movs r0, #0x81 + lsls r0, r0, #0x18 + mov ip, r0 +_081348B4: + strh r6, [r2] + mov r0, sp + str r0, [r1] + str r3, [r1, #4] + str r7, [r1, #8] + ldr r0, [r1, #8] + adds r3, r3, r5 + subs r4, r4, r5 + cmp r4, r5 + bhi _081348B4 + strh r6, [r2] + mov r2, sp + str r2, [r1] + str r3, [r1, #4] + lsrs r0, r4, #1 + mov r2, ip + orrs r0, r2 + str r0, [r1, #8] + ldr r0, [r1, #8] + movs r0, #0xe0 + lsls r0, r0, #0x13 + movs r3, #0x80 + lsls r3, r3, #3 + movs r4, #0 + str r4, [sp, #4] + ldr r2, _08134930 + mov r1, r8 + str r1, [r2] + str r0, [r2, #4] + lsrs r0, r3, #2 + movs r1, #0x85 + lsls r1, r1, #0x18 + orrs r0, r1 + str r0, [r2, #8] + ldr r0, [r2, #8] + movs r1, #0xa0 + lsls r1, r1, #0x13 + mov r0, sp + strh r4, [r0] + str r0, [r2] + str r1, [r2, #4] + lsrs r3, r3, #1 + movs r0, #0x81 + lsls r0, r0, #0x18 + orrs r3, r0 + str r3, [r2, #8] + ldr r0, [r2, #8] + ldr r0, _08134938 + movs r1, #0xc0 + lsls r1, r1, #0x13 + bl LZ77UnCompVram + ldr r0, _0813493C + ldrh r0, [r0] + cmp r0, #0 + bne _08134944 + ldr r0, _08134940 + movs r1, #0 + movs r2, #0x20 + bl LoadPalette + b _0813494E + .align 2, 0 +_08134930: .4byte 0x040000D4 +_08134934: .4byte 0x81000800 +_08134938: .4byte 0x0859130C +_0813493C: .4byte 0x02037280 +_08134940: .4byte 0x08590D68 +_08134944: + ldr r0, _081349BC + movs r1, #0 + movs r2, #0x20 + bl LoadPalette +_0813494E: + bl GetOverworldTextboxPalettePtr + movs r1, #0xe0 + movs r2, #0x20 + bl LoadPalette + ldr r0, _081349C0 + movs r1, #0xc0 + movs r2, #8 + bl LoadPalette + movs r0, #0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _081349C4 + movs r0, #0 + movs r2, #3 + bl InitBgsFromTemplates + ldr r0, _081349C8 + bl InitWindows + bl DeactivateAllTextPrinters + movs r1, #0x93 + lsls r1, r1, #2 + movs r0, #0 + movs r2, #0xd0 + bl LoadUserWindowBorderGfx + bl clear_scheduled_bg_copies_to_vram + bl ScanlineEffect_Stop + bl ResetTasks + bl ResetSpriteData + bl ResetPaletteFade + bl FreeAllSpritePalettes + ldr r0, _081349CC + bl LoadCompressedSpriteSheet + ldr r0, _081349D0 + bl LoadSpritePalettes + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081349BC: .4byte 0x08590D88 +_081349C0: .4byte 0x08591C20 +_081349C4: .4byte 0x08591C48 +_081349C8: .4byte 0x08591C28 +_081349CC: .4byte 0x08591C54 +_081349D0: .4byte 0x08591C64 + thumb_func_end LoadWallClockGraphics + + thumb_func_start WallClockInit +WallClockInit: @ 0x081349D4 + push {lr} + sub sp, #4 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0x10 + movs r3, #0 + bl BeginNormalPaletteFade + movs r0, #1 + bl EnableInterrupts + ldr r0, _08134A34 + bl SetVBlankCallback + ldr r0, _08134A38 + bl SetMainCallback2 + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x54 + movs r1, #0 + bl SetGpuReg + movs r1, #0x82 + lsls r1, r1, #5 + movs r0, #0 + bl SetGpuReg + movs r0, #0 + bl ShowBg + movs r0, #2 + bl ShowBg + movs r0, #3 + bl ShowBg + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_08134A34: .4byte 0x081347FD +_08134A38: .4byte 0x08134CE9 + thumb_func_end WallClockInit + + thumb_func_start CB2_StartWallClock +CB2_StartWallClock: @ 0x08134A3C + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + sub sp, #0xc + bl LoadWallClockGraphics + ldr r0, _08134B64 + ldr r1, _08134B68 + bl LZ77UnCompVram + ldr r0, _08134B6C + movs r1, #0 + bl CreateTask + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + ldr r1, _08134B70 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0 + mov r8, r1 + movs r1, #0xa + strh r1, [r0, #0xc] + mov r2, r8 + strh r2, [r0, #0xe] + strh r2, [r0, #0x10] + strh r2, [r0, #0x12] + strh r2, [r0, #0x14] + strh r2, [r0, #8] + movs r1, #0x96 + lsls r1, r1, #1 + strh r1, [r0, #0xa] + ldr r0, _08134B74 + movs r1, #0x78 + movs r2, #0x50 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08134B78 + mov sb, r1 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + add r1, sb + strh r6, [r1, #0x2e] + ldrb r2, [r1, #1] + movs r5, #4 + rsbs r5, r5, #0 + adds r0, r5, #0 + ands r0, r2 + movs r2, #1 + mov sl, r2 + mov r2, sl + orrs r0, r2 + strb r0, [r1, #1] + ldrb r2, [r1, #3] + movs r4, #0x3f + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r2 + strb r0, [r1, #3] + ldr r0, _08134B7C + movs r1, #0x78 + movs r2, #0x50 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + add r1, sb + strh r6, [r1, #0x2e] + ldrb r0, [r1, #1] + ands r5, r0 + mov r0, sl + orrs r5, r0 + strb r5, [r1, #1] + ldrb r0, [r1, #3] + ands r4, r0 + movs r0, #2 + orrs r4, r0 + strb r4, [r1, #3] + ldr r0, _08134B80 + movs r1, #0x78 + movs r2, #0x50 + movs r3, #2 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + add r1, sb + strh r6, [r1, #0x2e] + movs r0, #0x2d + strh r0, [r1, #0x30] + ldr r0, _08134B84 + movs r1, #0x78 + movs r2, #0x50 + movs r3, #2 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + add r1, sb + strh r6, [r1, #0x2e] + movs r0, #0x5a + strh r0, [r1, #0x30] + bl WallClockInit + ldr r2, _08134B88 + movs r0, #2 + str r0, [sp] + mov r1, r8 + str r1, [sp, #4] + str r1, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + movs r0, #1 + bl PutWindowTilemap + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08134B64: .4byte 0x08590DA8 +_08134B68: .4byte 0x06003800 +_08134B6C: .4byte 0x08134D05 +_08134B70: .4byte 0x03005B60 +_08134B74: .4byte 0x08591C9C +_08134B78: .4byte 0x020205AC +_08134B7C: .4byte 0x08591CB4 +_08134B80: .4byte 0x08591CEC +_08134B84: .4byte 0x08591D04 +_08134B88: .4byte 0x08591C15 + thumb_func_end CB2_StartWallClock + + thumb_func_start CB2_ViewWallClock +CB2_ViewWallClock: @ 0x08134B8C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + bl LoadWallClockGraphics + ldr r0, _08134BD4 + ldr r1, _08134BD8 + bl LZ77UnCompVram + ldr r0, _08134BDC + movs r1, #0 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + adds r0, r7, #0 + bl InitClockWithRtc + ldr r1, _08134BE0 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #0x12 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08134BE4 + movs r2, #0x2d + mov sl, r2 + movs r0, #0x5a + str r0, [sp, #0xc] + b _08134BEC + .align 2, 0 +_08134BD4: .4byte 0x08591074 +_08134BD8: .4byte 0x06003800 +_08134BDC: .4byte 0x08134F65 +_08134BE0: .4byte 0x03005B60 +_08134BE4: + movs r1, #0x5a + mov sl, r1 + movs r2, #0x87 + str r2, [sp, #0xc] +_08134BEC: + ldr r0, _08134CD0 + movs r1, #0x78 + movs r2, #0x50 + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r6, _08134CD4 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + movs r0, #0 + mov sb, r0 + strh r7, [r1, #0x2e] + ldrb r2, [r1, #1] + movs r5, #4 + rsbs r5, r5, #0 + adds r0, r5, #0 + ands r0, r2 + movs r2, #1 + mov r8, r2 + mov r2, r8 + orrs r0, r2 + strb r0, [r1, #1] + ldrb r2, [r1, #3] + movs r4, #0x3f + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r2 + strb r0, [r1, #3] + ldr r0, _08134CD8 + movs r1, #0x78 + movs r2, #0x50 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + strh r7, [r1, #0x2e] + ldrb r0, [r1, #1] + ands r5, r0 + mov r0, r8 + orrs r5, r0 + strb r5, [r1, #1] + ldrb r0, [r1, #3] + ands r4, r0 + movs r0, #2 + orrs r4, r0 + strb r4, [r1, #3] + ldr r0, _08134CDC + movs r1, #0x78 + movs r2, #0x50 + movs r3, #2 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + strh r7, [r1, #0x2e] + mov r2, sl + strh r2, [r1, #0x30] + ldr r0, _08134CE0 + movs r1, #0x78 + movs r2, #0x50 + movs r3, #2 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #4 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r6 + strh r7, [r1, #0x2e] + mov r0, sp + ldrh r0, [r0, #0xc] + strh r0, [r1, #0x30] + bl WallClockInit + ldr r2, _08134CE4 + movs r0, #2 + str r0, [sp] + mov r1, sb + str r1, [sp, #4] + str r1, [sp, #8] + movs r0, #1 + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + movs r0, #1 + bl PutWindowTilemap + movs r0, #2 + bl schedule_bg_copy_tilemap_to_vram + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08134CD0: .4byte 0x08591C9C +_08134CD4: .4byte 0x020205AC +_08134CD8: .4byte 0x08591CB4 +_08134CDC: .4byte 0x08591CEC +_08134CE0: .4byte 0x08591D04 +_08134CE4: .4byte 0x08591C1A + thumb_func_end CB2_ViewWallClock + + thumb_func_start WallClockMainCallback +WallClockMainCallback: @ 0x08134CE8 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl do_scheduled_bg_tilemap_copies_to_vram + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end WallClockMainCallback + + thumb_func_start Task_ViewClock1 +Task_ViewClock1: @ 0x08134D04 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _08134D28 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08134D24 + ldr r0, _08134D2C + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _08134D30 + str r0, [r1] +_08134D24: + pop {r0} + bx r0 + .align 2, 0 +_08134D28: .4byte 0x02037C74 +_08134D2C: .4byte 0x03005B60 +_08134D30: .4byte 0x08134D35 + thumb_func_end Task_ViewClock1 + + thumb_func_start Task_SetClock2 +Task_SetClock2: @ 0x08134D34 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _08134D64 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r5, r0, r1 + movs r1, #8 + ldrsh r0, [r5, r1] + movs r1, #6 + bl __modsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08134D68 + ldrh r0, [r5, #8] + ldrb r1, [r5, #0x10] + ldrb r2, [r5, #0x14] + bl CalcNewMinHandAngle + strh r0, [r5, #8] + b _08134E0A + .align 2, 0 +_08134D64: .4byte 0x03005B60 +_08134D68: + movs r2, #0xe + ldrsh r1, [r5, r2] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + strh r0, [r5, #8] + movs r3, #0xc + ldrsh r0, [r5, r3] + movs r1, #0xc + bl __modsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r4, r0, #4 + subs r4, r4, r0 + lsls r4, r4, #1 + movs r1, #0xe + ldrsh r0, [r5, r1] + movs r1, #0xa + bl __divsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r1, r0, #2 + adds r1, r1, r0 + adds r4, r4, r1 + strh r4, [r5, #0xa] + ldr r2, _08134DB4 + ldrh r0, [r2, #0x2e] + movs r3, #1 + adds r1, r3, #0 + ands r1, r0 + cmp r1, #0 + beq _08134DBC + ldr r0, _08134DB8 + str r0, [r5] + b _08134E0A + .align 2, 0 +_08134DB4: .4byte 0x03002360 +_08134DB8: .4byte 0x08134E11 +_08134DBC: + strh r1, [r5, #0x10] + ldrh r1, [r2, #0x2c] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08134DCA + strh r3, [r5, #0x10] +_08134DCA: + ldrh r1, [r2, #0x2c] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08134DD8 + movs r0, #2 + strh r0, [r5, #0x10] +_08134DD8: + ldrh r1, [r5, #0x10] + movs r2, #0x10 + ldrsh r0, [r5, r2] + cmp r0, #0 + beq _08134E08 + ldrh r2, [r5, #0x14] + movs r3, #0x14 + ldrsh r0, [r5, r3] + cmp r0, #0xfe + bgt _08134DF0 + adds r0, r2, #1 + strh r0, [r5, #0x14] +_08134DF0: + ldrh r0, [r5, #8] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrb r2, [r5, #0x14] + bl CalcNewMinHandAngle + strh r0, [r5, #8] + ldrb r1, [r5, #0x10] + adds r0, r6, #0 + bl AdvanceClock + b _08134E0A +_08134E08: + strh r0, [r5, #0x14] +_08134E0A: + pop {r4, r5, r6} + pop {r0} + bx r0 + thumb_func_end Task_SetClock2 + + thumb_func_start Task_SetClock3 +Task_SetClock3: @ 0x08134E10 + push {r4, r5, lr} + sub sp, #0xc + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r5, #0x93 + lsls r5, r5, #2 + movs r0, #0 + movs r1, #0 + adds r2, r5, #0 + movs r3, #0xd + bl DrawStdFrameWithCustomTileAndPalette + ldr r2, _08134E74 + movs r0, #2 + str r0, [sp] + movs r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + movs r1, #1 + movs r3, #0 + bl AddTextPrinterParameterized + movs r0, #0 + bl PutWindowTilemap + movs r0, #0 + bl schedule_bg_copy_tilemap_to_vram + ldr r0, _08134E78 + str r5, [sp] + movs r1, #0xd + str r1, [sp, #4] + movs r1, #1 + str r1, [sp, #8] + movs r2, #0 + movs r3, #2 + bl sub_08198C08 + ldr r1, _08134E7C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08134E80 + str r1, [r0] + add sp, #0xc + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08134E74: .4byte 0x08591C04 +_08134E78: .4byte 0x08591C40 +_08134E7C: .4byte 0x03005B60 +_08134E80: .4byte 0x08134E85 + thumb_func_end Task_SetClock3 + + thumb_func_start Task_SetClock4 +Task_SetClock4: @ 0x08134E84 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + beq _08134EAA + cmp r1, #0 + bgt _08134EA4 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _08134EC8 + b _08134EEA +_08134EA4: + cmp r1, #1 + beq _08134EC8 + b _08134EEA +_08134EAA: + movs r0, #5 + bl PlaySE + ldr r0, _08134EC0 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _08134EC4 + b _08134EE8 + .align 2, 0 +_08134EC0: .4byte 0x03005B60 +_08134EC4: .4byte 0x08134EF9 +_08134EC8: + movs r0, #5 + bl PlaySE + movs r0, #0 + movs r1, #0 + bl ClearStdWindowAndFrameToTransparent + movs r0, #0 + bl ClearWindowTilemap + ldr r0, _08134EF0 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _08134EF4 +_08134EE8: + str r0, [r1] +_08134EEA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08134EF0: .4byte 0x03005B60 +_08134EF4: .4byte 0x08134D35 + thumb_func_end Task_SetClock4 + + thumb_func_start Task_SetClock5 +Task_SetClock5: @ 0x08134EF8 + push {r4, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08134F34 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + adds r4, r4, r1 + movs r1, #0xc + ldrsh r0, [r4, r1] + movs r2, #0xe + ldrsh r1, [r4, r2] + bl RtcInitLocalTimeOffset + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, _08134F38 + str r0, [r4] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08134F34: .4byte 0x03005B60 +_08134F38: .4byte 0x08134F3D + thumb_func_end Task_SetClock5 + + thumb_func_start Task_SetClock6 +Task_SetClock6: @ 0x08134F3C + push {lr} + ldr r0, _08134F5C + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08134F56 + bl FreeAllWindowBuffers + ldr r0, _08134F60 + ldr r0, [r0, #8] + bl SetMainCallback2 +_08134F56: + pop {r0} + bx r0 + .align 2, 0 +_08134F5C: .4byte 0x02037C74 +_08134F60: .4byte 0x03002360 + thumb_func_end Task_SetClock6 + + thumb_func_start Task_SetClock1 +Task_SetClock1: @ 0x08134F64 + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r0, _08134F88 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08134F84 + ldr r0, _08134F8C + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _08134F90 + str r0, [r1] +_08134F84: + pop {r0} + bx r0 + .align 2, 0 +_08134F88: .4byte 0x02037C74 +_08134F8C: .4byte 0x03005B60 +_08134F90: .4byte 0x08134F95 + thumb_func_end Task_SetClock1 + + thumb_func_start Task_ViewClock2 +Task_ViewClock2: @ 0x08134F94 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl InitClockWithRtc + ldr r0, _08134FC0 + ldrh r1, [r0, #0x2e] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _08134FBA + ldr r0, _08134FC4 + lsls r1, r4, #2 + adds r1, r1, r4 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _08134FC8 + str r0, [r1] +_08134FBA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08134FC0: .4byte 0x03002360 +_08134FC4: .4byte 0x03005B60 +_08134FC8: .4byte 0x08134FCD + thumb_func_end Task_ViewClock2 + + thumb_func_start Task_ViewClock3 +Task_ViewClock3: @ 0x08134FCC + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + rsbs r0, r0, #0 + movs r1, #0 + str r1, [sp] + movs r2, #0 + movs r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, _08134FFC + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldr r1, _08135000 + str r1, [r0] + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08134FFC: .4byte 0x03005B60 +_08135000: .4byte 0x08135005 + thumb_func_end Task_ViewClock3 + + thumb_func_start Task_ViewClock4 +Task_ViewClock4: @ 0x08135004 + push {lr} + ldr r0, _08135020 + ldrb r1, [r0, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0813501A + ldr r0, _08135024 + ldr r0, [r0, #8] + bl SetMainCallback2 +_0813501A: + pop {r0} + bx r0 + .align 2, 0 +_08135020: .4byte 0x02037C74 +_08135024: .4byte 0x03002360 + thumb_func_end Task_ViewClock4 + + thumb_func_start CalcMinHandDelta +CalcMinHandDelta: @ 0x08135028 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r0, #0 + cmp r0, #0x3c + bls _08135038 + movs r0, #6 + b _0813504A +_08135038: + cmp r0, #0x1e + bls _08135040 + movs r0, #3 + b _0813504A +_08135040: + cmp r1, #0xa + bhi _08135048 + movs r0, #1 + b _0813504A +_08135048: + movs r0, #2 +_0813504A: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end CalcMinHandDelta + + thumb_func_start CalcNewMinHandAngle +CalcNewMinHandAngle: @ 0x08135050 + push {r4, r5, lr} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r0, r2, #0 + bl CalcMinHandDelta + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r5, #1 + beq _08135072 + cmp r5, #2 + beq _08135084 + b _08135098 +_08135072: + cmp r4, #0 + beq _0813507A + subs r0, r4, r1 + b _08135090 +_0813507A: + movs r2, #0xb4 + lsls r2, r2, #1 + adds r0, r2, #0 + subs r0, r0, r1 + b _08135090 +_08135084: + movs r0, #0xb4 + lsls r0, r0, #1 + subs r0, r0, r1 + cmp r4, r0 + bge _08135096 + adds r0, r4, r1 +_08135090: + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + b _08135098 +_08135096: + movs r4, #0 +_08135098: + adds r0, r4, #0 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end CalcNewMinHandAngle + + thumb_func_start AdvanceClock +AdvanceClock: @ 0x081350A0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + cmp r4, #1 + beq _081350B4 + cmp r4, #2 + beq _081350F4 + b _08135132 +_081350B4: + ldr r0, _081350D0 + lsls r1, r3, #2 + adds r1, r1, r3 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r2, [r1, #0xe] + movs r5, #0xe + ldrsh r0, [r1, r5] + cmp r0, #0 + ble _081350D4 + subs r0, r2, #1 + strh r0, [r1, #0xe] + b _08135132 + .align 2, 0 +_081350D0: .4byte 0x03005B60 +_081350D4: + movs r0, #0x3b + strh r0, [r1, #0xe] + ldrh r2, [r1, #0xc] + movs r6, #0xc + ldrsh r0, [r1, r6] + cmp r0, #0 + ble _081350E6 + subs r0, r2, #1 + b _081350E8 +_081350E6: + movs r0, #0x17 +_081350E8: + strh r0, [r1, #0xc] + adds r0, r3, #0 + adds r1, r4, #0 + bl UpdateClockPeriod + b _08135132 +_081350F4: + ldr r0, _08135110 + lsls r1, r3, #2 + adds r1, r1, r3 + lsls r1, r1, #3 + adds r1, r1, r0 + ldrh r2, [r1, #0xe] + movs r5, #0xe + ldrsh r0, [r1, r5] + cmp r0, #0x3a + bgt _08135114 + adds r0, r2, #1 + strh r0, [r1, #0xe] + b _08135132 + .align 2, 0 +_08135110: .4byte 0x03005B60 +_08135114: + movs r5, #0 + strh r5, [r1, #0xe] + ldrh r2, [r1, #0xc] + movs r6, #0xc + ldrsh r0, [r1, r6] + cmp r0, #0x16 + bgt _08135128 + adds r0, r2, #1 + strh r0, [r1, #0xc] + b _0813512A +_08135128: + strh r5, [r1, #0xc] +_0813512A: + adds r0, r3, #0 + adds r1, r4, #0 + bl UpdateClockPeriod +_08135132: + movs r0, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end AdvanceClock + + thumb_func_start UpdateClockPeriod +UpdateClockPeriod: @ 0x0813513C + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + ldr r2, _0813515C + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldrb r0, [r1, #0xc] + cmp r3, #1 + beq _08135160 + cmp r3, #2 + beq _08135172 + b _0813517E + .align 2, 0 +_0813515C: .4byte 0x03005B60 +_08135160: + cmp r0, #0xb + beq _0813516A + cmp r0, #0x17 + beq _0813516E + b _0813517E +_0813516A: + movs r0, #0 + b _0813517C +_0813516E: + strh r3, [r1, #0x12] + b _0813517E +_08135172: + cmp r0, #0 + beq _0813517C + cmp r0, #0xc + bne _0813517E + movs r0, #1 +_0813517C: + strh r0, [r1, #0x12] +_0813517E: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end UpdateClockPeriod + + thumb_func_start InitClockWithRtc +InitClockWithRtc: @ 0x08135184 + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl RtcCalcLocalTime + ldr r1, _081351EC + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r6, r0, r1 + ldr r5, _081351F0 + movs r0, #2 + ldrsb r0, [r5, r0] + strh r0, [r6, #0xc] + movs r0, #3 + ldrsb r0, [r5, r0] + strh r0, [r6, #0xe] + movs r0, #0xe + ldrsh r1, [r6, r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + strh r0, [r6, #8] + movs r1, #0xc + ldrsh r0, [r6, r1] + movs r1, #0xc + bl __modsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r4, r0, #4 + subs r4, r4, r0 + lsls r4, r4, #1 + movs r1, #0xe + ldrsh r0, [r6, r1] + movs r1, #0xa + bl __divsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r1, r0, #2 + adds r1, r1, r0 + adds r4, r4, r1 + strh r4, [r6, #0xa] + movs r0, #2 + ldrsb r0, [r5, r0] + cmp r0, #0xb + bgt _081351F4 + movs r0, #0 + b _081351F6 + .align 2, 0 +_081351EC: .4byte 0x03005B60 +_081351F0: .4byte 0x03005A50 +_081351F4: + movs r0, #1 +_081351F6: + strh r0, [r6, #0x12] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end InitClockWithRtc + + thumb_func_start SpriteCB_MinuteHand +SpriteCB_MinuteHand: @ 0x08135200 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r6, r0, #0 + ldr r2, _08135290 + movs r0, #0x2e + ldrsh r1, [r6, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrh r4, [r0, #8] + adds r7, r4, #0 + adds r0, r4, #0 + bl Sin2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _08135228 + adds r0, #0xf +_08135228: + lsls r0, r0, #0xc + lsrs r5, r0, #0x10 + adds r0, r4, #0 + bl Cos2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _0813523C + adds r0, #0xf +_0813523C: + lsls r1, r0, #0xc + lsrs r1, r1, #0x10 + lsls r3, r5, #0x10 + lsrs r2, r3, #0x10 + rsbs r3, r3, #0 + lsrs r3, r3, #0x10 + str r1, [sp] + movs r0, #0 + bl SetOamMatrix + ldr r1, _08135294 + lsls r2, r7, #1 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + adds r1, #1 + adds r2, r2, r1 + movs r0, #0 + ldrsb r0, [r2, r0] + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r3, #0x80 + bls _08135278 + movs r1, #0xff + lsls r1, r1, #8 + adds r0, r1, #0 + orrs r3, r0 +_08135278: + cmp r2, #0x80 + bls _08135284 + movs r1, #0xff + lsls r1, r1, #8 + adds r0, r1, #0 + orrs r2, r0 +_08135284: + strh r3, [r6, #0x24] + strh r2, [r6, #0x26] + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08135290: .4byte 0x03005B60 +_08135294: .4byte 0x08591D1C + thumb_func_end SpriteCB_MinuteHand + + thumb_func_start SpriteCB_HourHand +SpriteCB_HourHand: @ 0x08135298 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r6, r0, #0 + ldr r2, _08135328 + movs r0, #0x2e + ldrsh r1, [r6, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + ldrh r4, [r0, #0xa] + adds r7, r4, #0 + adds r0, r4, #0 + bl Sin2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _081352C0 + adds r0, #0xf +_081352C0: + lsls r0, r0, #0xc + lsrs r5, r0, #0x10 + adds r0, r4, #0 + bl Cos2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _081352D4 + adds r0, #0xf +_081352D4: + lsls r1, r0, #0xc + lsrs r1, r1, #0x10 + lsls r3, r5, #0x10 + lsrs r2, r3, #0x10 + rsbs r3, r3, #0 + lsrs r3, r3, #0x10 + str r1, [sp] + movs r0, #1 + bl SetOamMatrix + ldr r1, _0813532C + lsls r2, r7, #1 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + adds r1, #1 + adds r2, r2, r1 + movs r0, #0 + ldrsb r0, [r2, r0] + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r3, #0x80 + bls _08135310 + movs r1, #0xff + lsls r1, r1, #8 + adds r0, r1, #0 + orrs r3, r0 +_08135310: + cmp r2, #0x80 + bls _0813531C + movs r1, #0xff + lsls r1, r1, #8 + adds r0, r1, #0 + orrs r2, r0 +_0813531C: + strh r3, [r6, #0x24] + strh r2, [r6, #0x26] + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08135328: .4byte 0x03005B60 +_0813532C: .4byte 0x08591D1C + thumb_func_end SpriteCB_HourHand + + thumb_func_start SpriteCB_AMIndicator +SpriteCB_AMIndicator: @ 0x08135330 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0813536C + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r1, #0x12 + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _08135370 + ldrh r1, [r4, #0x30] + adds r0, r1, #0 + subs r0, #0x3c + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x1d + bhi _0813535C + adds r0, r1, #5 + strh r0, [r4, #0x30] +_0813535C: + ldrh r1, [r4, #0x30] + movs r2, #0x30 + ldrsh r0, [r4, r2] + cmp r0, #0x3b + bgt _08135390 + adds r0, r1, #1 + b _0813538E + .align 2, 0 +_0813536C: .4byte 0x03005B60 +_08135370: + ldrh r1, [r4, #0x30] + adds r0, r1, #0 + subs r0, #0x2e + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x1d + bhi _08135382 + subs r0, r1, #5 + strh r0, [r4, #0x30] +_08135382: + ldrh r1, [r4, #0x30] + movs r2, #0x30 + ldrsh r0, [r4, r2] + cmp r0, #0x4b + ble _08135390 + subs r0, r1, #1 +_0813538E: + strh r0, [r4, #0x30] +_08135390: + ldrh r0, [r4, #0x30] + bl Cos2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r0, r1, #1 + cmp r0, #0 + bge _081353A8 + ldr r1, _081353D0 + adds r0, r0, r1 +_081353A8: + asrs r0, r0, #0xc + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x30] + bl Sin2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r0, r1, #1 + cmp r0, #0 + bge _081353C4 + ldr r2, _081353D0 + adds r0, r0, r2 +_081353C4: + asrs r0, r0, #0xc + strh r0, [r4, #0x26] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081353D0: .4byte 0x00000FFF + thumb_func_end SpriteCB_AMIndicator + + thumb_func_start SpriteCB_PMIndicator +SpriteCB_PMIndicator: @ 0x081353D4 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _08135410 + movs r0, #0x2e + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r1, #0x12 + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _08135414 + ldrh r1, [r4, #0x30] + adds r0, r1, #0 + subs r0, #0x69 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x1d + bhi _08135400 + adds r0, r1, #5 + strh r0, [r4, #0x30] +_08135400: + ldrh r1, [r4, #0x30] + movs r2, #0x30 + ldrsh r0, [r4, r2] + cmp r0, #0x68 + bgt _08135434 + adds r0, r1, #1 + b _08135432 + .align 2, 0 +_08135410: .4byte 0x03005B60 +_08135414: + ldrh r1, [r4, #0x30] + adds r0, r1, #0 + subs r0, #0x5b + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x1d + bhi _08135426 + subs r0, r1, #5 + strh r0, [r4, #0x30] +_08135426: + ldrh r1, [r4, #0x30] + movs r2, #0x30 + ldrsh r0, [r4, r2] + cmp r0, #0x78 + ble _08135434 + subs r0, r1, #1 +_08135432: + strh r0, [r4, #0x30] +_08135434: + ldrh r0, [r4, #0x30] + bl Cos2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r0, r1, #1 + cmp r0, #0 + bge _0813544C + ldr r1, _08135474 + adds r0, r0, r1 +_0813544C: + asrs r0, r0, #0xc + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x30] + bl Sin2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r0, r1, #1 + cmp r0, #0 + bge _08135468 + ldr r2, _08135474 + adds r0, r0, r2 +_08135468: + asrs r0, r0, #0xc + strh r0, [r4, #0x26] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08135474: .4byte 0x00000FFF + thumb_func_end SpriteCB_PMIndicator + diff --git a/asm/water.s b/asm/water.s new file mode 100644 index 0000000..2a41dbb --- /dev/null +++ b/asm/water.s @@ -0,0 +1,3774 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start AnimTask_CreateRaindrops +AnimTask_CreateRaindrops: @ 0x081079D8 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r0, #0 + ldr r1, _08107A60 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #3 + adds r5, r0, r1 + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _08107A00 + ldr r1, _08107A64 + ldrh r0, [r1] + strh r0, [r5, #0xa] + ldrh r0, [r1, #2] + strh r0, [r5, #0xc] + ldrh r0, [r1, #4] + strh r0, [r5, #0xe] +_08107A00: + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + movs r2, #8 + ldrsh r0, [r5, r2] + movs r2, #0xc + ldrsh r1, [r5, r2] + bl __modsi3 + cmp r0, #1 + bne _08107A48 + bl Random2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xf0 + bl __umodsi3 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl Random2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x50 + bl __umodsi3 + adds r2, r0, #0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r0, _08107A68 + adds r1, r4, #0 + movs r3, #4 + bl CreateSprite +_08107A48: + movs r0, #8 + ldrsh r1, [r5, r0] + movs r2, #0xe + ldrsh r0, [r5, r2] + cmp r1, r0 + bne _08107A5A + adds r0, r6, #0 + bl DestroyAnimVisualTask +_08107A5A: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08107A60: .4byte 0x03005B60 +_08107A64: .4byte 0x020380BE +_08107A68: .4byte 0x08570C04 + thumb_func_end AnimTask_CreateRaindrops + + thumb_func_start sub_08107A6C +sub_08107A6C: @ 0x08107A6C + ldr r1, _08107A74 + str r1, [r0, #0x1c] + bx lr + .align 2, 0 +_08107A74: .4byte 0x08107A79 + thumb_func_end sub_08107A6C + + thumb_func_start sub_08107A78 +sub_08107A78: @ 0x08107A78 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x2e] + adds r0, #1 + strh r0, [r2, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xd + bgt _08107A96 + ldrh r0, [r2, #0x24] + adds r0, #1 + strh r0, [r2, #0x24] + ldrh r0, [r2, #0x26] + adds r0, #4 + strh r0, [r2, #0x26] +_08107A96: + adds r0, r2, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08107AAA + adds r0, r2, #0 + bl DestroySprite +_08107AAA: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08107A78 + + thumb_func_start sub_08107AB0 +sub_08107AB0: @ 0x08107AB0 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r5, _08107AD8 + ldrb r0, [r5] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08107AE0 + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r4, _08107ADC + ldrh r1, [r4] + subs r0, r0, r1 + b _08107AF2 + .align 2, 0 +_08107AD8: .4byte 0x020380D6 +_08107ADC: .4byte 0x020380BE +_08107AE0: + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + ldr r4, _08107BB8 + lsrs r0, r0, #0x18 + ldrh r1, [r4] + adds r0, r0, r1 +_08107AF2: + strh r0, [r6, #0x20] + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r4, [r4, #2] + adds r0, 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, _08107BBC + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08107B28 + ldr r1, _08107BB8 + ldrh r0, [r1, #4] + rsbs r0, r0, #0 + strh r0, [r1, #4] +_08107B28: + ldr r5, _08107BB8 + ldrh r0, [r5, #0xc] + strh r0, [r6, #0x2e] + ldrh r0, [r6, #0x20] + strh r0, [r6, #0x30] + ldr r4, _08107BC0 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r6, #0x32] + ldrh r0, [r6, #0x22] + strh r0, [r6, #0x34] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r6, #0x36] + adds r0, r6, #0 + bl InitAnimLinearTranslation + ldr r0, _08107BC4 + bl CreateInvisibleSpriteWithCallback + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + strh r4, [r6, #0x38] + ldrb r0, [r5, #8] + movs r2, #4 + ldrsh r1, [r5, r2] + bl Sin + ldrh r1, [r6, #0x20] + subs r1, r1, r0 + strh r1, [r6, #0x20] + ldrb r0, [r5, #8] + movs r2, #6 + ldrsh r1, [r5, r2] + bl Cos + ldrh r1, [r6, #0x22] + subs r1, r1, r0 + strh r1, [r6, #0x22] + ldr r0, _08107BC8 + lsls r1, r4, #4 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r0, [r5, #4] + strh r0, [r1, #0x2e] + ldrh r0, [r5, #6] + strh r0, [r1, #0x30] + ldrh r0, [r5, #0xa] + strh r0, [r1, #0x32] + ldrb r0, [r5, #8] + lsls r0, r0, #8 + strh r0, [r1, #0x34] + ldrh r0, [r5, #0xc] + strh r0, [r1, #0x36] + ldr r1, _08107BCC + str r1, [r6, #0x1c] + adds r0, r6, #0 + bl _call_via_r1 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08107BB8: .4byte 0x020380BE +_08107BBC: .4byte 0x020380D6 +_08107BC0: .4byte 0x020380D7 +_08107BC4: .4byte 0x08007141 +_08107BC8: .4byte 0x020205AC +_08107BCC: .4byte 0x08107BD1 + thumb_func_end sub_08107AB0 + + thumb_func_start sub_08107BD0 +sub_08107BD0: @ 0x08107BD0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r5, r0, #0 + ldrh r1, [r5, #0x38] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r2, _08107C38 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r7, r0, r2 + ldrh r4, [r7, #0x36] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldrh r0, [r7, #0x34] + mov r8, r0 + movs r0, #1 + strh r0, [r5, #0x2e] + adds r0, r5, #0 + bl AnimTranslateLinear + 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, 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, r0, r1 + strh r0, [r5, #0x26] + ldrh r0, [r7, #0x32] + mov r1, r8 + adds r1, r1, r0 + strh r1, [r7, #0x34] + subs r4, #1 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + cmp r4, #0 + beq _08107C3C + strh r4, [r7, #0x36] + b _08107C46 + .align 2, 0 +_08107C38: .4byte 0x020205AC +_08107C3C: + ldr r0, _08107C54 + str r0, [r5, #0x1c] + adds r0, r7, #0 + bl DestroySprite +_08107C46: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08107C54: .4byte 0x08107C59 + thumb_func_end sub_08107BD0 + + thumb_func_start sub_08107C58 +sub_08107C58: @ 0x08107C58 + push {lr} + adds r3, r0, #0 + adds r3, #0x2c + ldrb r2, [r3] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r3] + ldr r1, _08107C78 + str r1, [r0, #0x1c] + ldr r1, _08107C7C + bl StoreSpriteCallbackInData6 + pop {r0} + bx r0 + .align 2, 0 +_08107C78: .4byte 0x080A60A1 +_08107C7C: .4byte 0x08107C81 + thumb_func_end sub_08107C58 + + thumb_func_start sub_08107C80 +sub_08107C80: @ 0x08107C80 + push {lr} + movs r1, #0xa + strh r1, [r0, #0x2e] + ldr r1, _08107C94 + str r1, [r0, #0x1c] + ldr r1, _08107C98 + bl StoreSpriteCallbackInData6 + pop {r0} + bx r0 + .align 2, 0 +_08107C94: .4byte 0x080A5D79 +_08107C98: .4byte 0x080A6015 + thumb_func_end sub_08107C80 + + thumb_func_start sub_08107C9C +sub_08107C9C: @ 0x08107C9C + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldr r0, _08107CC4 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08107CCC + ldr r1, _08107CC8 + ldrh r0, [r1, #4] + rsbs r0, r0, #0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r7, r1, #0 + b _08107CD2 + .align 2, 0 +_08107CC4: .4byte 0x020380D6 +_08107CC8: .4byte 0x020380BE +_08107CCC: + ldr r0, _08107D28 + ldrh r6, [r0, #4] + adds r7, r0, #0 +_08107CD2: + ldrh r0, [r7, #8] + strh r0, [r5, #0x2e] + ldrh r0, [r5, #0x20] + strh r0, [r5, #0x30] + ldr r4, _08107D2C + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r6 + strh r0, [r5, #0x32] + ldrh r0, [r5, #0x22] + strh r0, [r5, #0x34] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r7, [r7, #6] + adds r0, r0, r7 + strh r0, [r5, #0x36] + adds r0, r5, #0 + bl InitAnimLinearTranslation + ldr r0, _08107D30 + 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, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08107D28: .4byte 0x020380BE +_08107D2C: .4byte 0x020380D7 +_08107D30: .4byte 0x08107D35 + thumb_func_end sub_08107C9C + + thumb_func_start sub_08107D34 +sub_08107D34: @ 0x08107D34 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08107D70 + ldrh r1, [r0, #0xe] + ldr r0, _08107D74 + cmp r1, r0 + bne _08107D56 + adds r0, r4, #0 + movs r1, #1 + bl StartSpriteAnim + adds r2, r4, #0 + adds r2, #0x2c + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] +_08107D56: + adds r0, r4, #0 + bl AnimTranslateLinear + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08107D68 + adds r0, r4, #0 + bl DestroyAnimSprite +_08107D68: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08107D70: .4byte 0x020380BE +_08107D74: .4byte 0x0000FFFF + thumb_func_end sub_08107D34 + + thumb_func_start sub_08107D78 +sub_08107D78: @ 0x08107D78 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08107DAC + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + adds r4, r4, r1 + ldr r0, _08107DB0 + ldrh r0, [r0] + strh r0, [r4, #8] + ldr r0, _08107DB4 + bl IndexOfSpritePaletteTag + lsls r0, r0, #0x18 + lsrs r0, r0, #0x14 + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r0, r1 + strh r0, [r4, #0xc] + ldr r0, _08107DB8 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08107DAC: .4byte 0x03005B60 +_08107DB0: .4byte 0x020380BE +_08107DB4: .4byte 0x0000279C +_08107DB8: .4byte 0x08107DBD + thumb_func_end sub_08107D78 + + thumb_func_start sub_08107DBC +sub_08107DBC: @ 0x08107DBC + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _08107E34 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r2, r0, r1 + ldrh r0, [r2, #0x1c] + adds r0, #1 + strh r0, [r2, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov ip, r1 + cmp r0, #3 + bne _08107E0E + movs r0, #0 + strh r0, [r2, #0x1c] + ldrh r0, [r2, #0xc] + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r1, _08107E38 + lsls r0, r5, #1 + adds r0, r0, r1 + ldrh r6, [r0] + adds r7, r1, #0 + adds r3, r0, #2 + movs r1, #6 + adds r2, r0, #0 +_08107DF8: + ldrh r0, [r3] + strh r0, [r2] + adds r3, #2 + adds r2, #2 + subs r1, #1 + cmp r1, #0 + bge _08107DF8 + adds r0, r5, #7 + lsls r0, r0, #1 + adds r0, r0, r7 + strh r6, [r0] +_08107E0E: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + add r0, ip + ldrh r1, [r0, #0x1e] + adds r1, #1 + strh r1, [r0, #0x1e] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r2, #8 + ldrsh r0, [r0, r2] + cmp r1, r0 + bne _08107E2E + adds r0, r4, #0 + bl DestroyAnimVisualTask +_08107E2E: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08107E34: .4byte 0x03005B60 +_08107E38: .4byte 0x020377B4 + thumb_func_end sub_08107DBC + + thumb_func_start sub_08107E3C +sub_08107E3C: @ 0x08107E3C + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + movs r0, #0x1e + strh r0, [r5, #0x2e] + ldrh r0, [r5, #0x20] + strh r0, [r5, #0x30] + ldr r4, _08107EA4 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x32] + ldrh r0, [r5, #0x22] + strh r0, [r5, #0x34] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x36] + adds r0, r5, #0 + bl InitAnimLinearTranslation + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0xd2 + lsls r0, r0, #8 + bl __divsi3 + strh r0, [r5, #0x38] + ldr r0, _08107EA8 + ldrh r2, [r0, #6] + strh r2, [r5, #0x3c] + ldrh r1, [r0, #0xe] + movs r3, #0xe + ldrsh r0, [r0, r3] + cmp r0, #0x7f + ble _08107EAC + adds r0, r1, #0 + subs r0, #0x7f + lsls r0, r0, #8 + strh r0, [r5, #0x3a] + rsbs r0, r2, #0 + strh r0, [r5, #0x3c] + b _08107EB0 + .align 2, 0 +_08107EA4: .4byte 0x020380D7 +_08107EA8: .4byte 0x020380BE +_08107EAC: + lsls r0, r1, #8 + strh r0, [r5, #0x3a] +_08107EB0: + ldr r1, _08107EC0 + str r1, [r5, #0x1c] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08107EC0: .4byte 0x08107EC5 + thumb_func_end sub_08107E3C + + thumb_func_start sub_08107EC4 +sub_08107EC4: @ 0x08107EC4 + push {r4, lr} + adds r4, r0, #0 + bl AnimTranslateLinear + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08107ED8 + adds r0, r4, #0 + bl DestroyAnimSprite +_08107ED8: + ldrh r0, [r4, #0x3a] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + movs r2, #0x3c + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, #0x26] + adds r0, r0, r1 + strh r0, [r4, #0x26] + movs r2, #0x3a + ldrsh r0, [r4, r2] + movs r2, #0x38 + ldrsh r1, [r4, r2] + adds r0, r0, r1 + asrs r0, r0, #8 + cmp r0, #0x7f + ble _08107F08 + movs r0, #0 + strh r0, [r4, #0x3a] + ldrh r0, [r4, #0x3c] + rsbs r0, r0, #0 + strh r0, [r4, #0x3c] + b _08107F10 +_08107F08: + ldrh r0, [r4, #0x38] + ldrh r1, [r4, #0x3a] + adds r0, r0, r1 + strh r0, [r4, #0x3a] +_08107F10: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08107EC4 + + thumb_func_start sub_08107F18 +sub_08107F18: @ 0x08107F18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08107F38 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r3, _08107F3C + ldrh r0, [r3] + movs r2, #0 + strh r0, [r1, #8] + strh r2, [r3, #0xe] + ldr r0, _08107F40 + str r0, [r1] + bx lr + .align 2, 0 +_08107F38: .4byte 0x03005B60 +_08107F3C: .4byte 0x020380BE +_08107F40: .4byte 0x08107F45 + thumb_func_end sub_08107F18 + + thumb_func_start sub_08107F44 +sub_08107F44: @ 0x08107F44 + push {lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r2, _08107F78 + ldrh r0, [r2, #0xe] + adds r0, #3 + movs r1, #0xff + ands r0, r1 + strh r0, [r2, #0xe] + ldr r1, _08107F7C + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #8] + subs r1, #1 + strh r1, [r0, #8] + lsls r1, r1, #0x10 + cmp r1, #0 + bne _08107F72 + adds r0, r3, #0 + bl DestroyAnimVisualTask +_08107F72: + pop {r0} + bx r0 + .align 2, 0 +_08107F78: .4byte 0x020380BE +_08107F7C: .4byte 0x03005B60 + thumb_func_end sub_08107F44 + + thumb_func_start sub_08107F80 +sub_08107F80: @ 0x08107F80 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r7, _08107FCC + ldrb r0, [r7] + movs r1, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x20] + ldrb r0, [r7] + movs r1, #1 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x22] + ldr r6, _08107FD0 + strh r6, [r4, #0x26] + ldrb r0, [r7] + bl GetBattlerSpriteSubpriority + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08107FDA + ldrb r0, [r7] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08107FD4 + movs r0, #0xa + strh r0, [r4, #0x24] + b _08107FDC + .align 2, 0 +_08107FCC: .4byte 0x020380D6 +_08107FD0: .4byte 0x0000FFF6 +_08107FD4: + strh r6, [r4, #0x24] + subs r0, r5, #2 + b _08107FDE +_08107FDA: + strh r6, [r4, #0x24] +_08107FDC: + adds r0, r5, #2 +_08107FDE: + adds r1, r4, #0 + adds r1, #0x43 + strb r0, [r1] + ldr r0, _08107FF0 + str r0, [r4, #0x1c] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08107FF0: .4byte 0x08107FF5 + thumb_func_end sub_08107F80 + + thumb_func_start sub_08107FF4 +sub_08107FF4: @ 0x08107FF4 + push {lr} + adds r2, r0, #0 + adds r0, #0x3f + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0810800A + adds r0, r2, #0 + bl DestroyAnimSprite +_0810800A: + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08107FF4 + + thumb_func_start sub_08108010 +sub_08108010: @ 0x08108010 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldr r5, _081080D0 + ldrb r0, [r5] + bl GetBattlerSide + adds r4, r0, #0 + ldr r0, _081080D4 + ldrb r0, [r0] + bl GetBattlerSide + lsls r4, r4, #0x18 + lsls r0, r0, #0x18 + cmp r4, r0 + bne _0810805A + ldr r4, _081080D8 + movs r1, #0 + ldrsh r0, [r4, r1] + rsbs r0, r0, #0 + strh r0, [r4] + ldrb r0, [r5] + bl GetBattlerPosition + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08108052 + ldrb r0, [r5] + bl GetBattlerPosition + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0810805A +_08108052: + movs r1, #0 + ldrsh r0, [r4, r1] + rsbs r0, r0, #0 + strh r0, [r4] +_0810805A: + ldr r5, _081080D8 + movs r1, #0xa + ldrsh r0, [r5, r1] + movs r1, #0xff + lsls r1, r1, #8 + ands r0, r1 + movs r1, #0 + cmp r0, #0 + bne _0810806E + movs r1, #1 +_0810806E: + ldrb r0, [r5, #0xa] + movs r7, #1 + cmp r0, #0 + bne _08108078 + movs r7, #3 +_08108078: + adds r0, r6, #0 + bl InitSpritePosToAnimAttacker + ldr r0, _081080D0 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08108092 + ldrh r0, [r5, #4] + rsbs r0, r0, #0 + strh r0, [r5, #4] +_08108092: + ldrh r0, [r5, #8] + strh r0, [r6, #0x2e] + ldr r4, _081080D4 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r1, [r5, #4] + adds r0, r0, r1 + strh r0, [r6, #0x32] + ldrb r0, [r4] + adds r1, r7, #0 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrh r5, [r5, #6] + adds r0, r0, r5 + strh r0, [r6, #0x36] + ldr r0, _081080DC + str r0, [r6, #0x1c] + ldr r1, _081080E0 + adds r0, r6, #0 + bl StoreSpriteCallbackInData6 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081080D0: .4byte 0x020380D6 +_081080D4: .4byte 0x020380D7 +_081080D8: .4byte 0x020380BE +_081080DC: .4byte 0x080A67B5 +_081080E0: .4byte 0x080A34C5 + thumb_func_end sub_08108010 + + thumb_func_start sub_081080E4 +sub_081080E4: @ 0x081080E4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimTarget + ldr r0, _08108114 + ldrh r1, [r0, #8] + strh r1, [r4, #0x2e] + ldrh r0, [r0, #4] + ldrh r2, [r4, #0x20] + adds r0, r0, r2 + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x22] + adds r1, r1, r0 + strh r1, [r4, #0x36] + ldr r0, _08108118 + str r0, [r4, #0x1c] + ldr r1, _0810811C + adds r0, r4, #0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08108114: .4byte 0x020380BE +_08108118: .4byte 0x080A67B5 +_0810811C: .4byte 0x080A34C5 + thumb_func_end sub_081080E4 + + thumb_func_start sub_08108120 +sub_08108120: @ 0x08108120 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08108138 + movs r1, #6 + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _0810813C + adds r0, r4, #0 + movs r1, #1 + bl InitSpritePosToAnimTarget + b _08108144 + .align 2, 0 +_08108138: .4byte 0x020380BE +_0810813C: + adds r0, r4, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker +_08108144: + ldr r0, _08108154 + ldrh r0, [r0, #4] + strh r0, [r4, #0x3c] + ldr r0, _08108158 + str r0, [r4, #0x1c] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08108154: .4byte 0x020380BE +_08108158: .4byte 0x0810815D + thumb_func_end sub_08108120 + + thumb_func_start sub_0810815C +sub_0810815C: @ 0x0810815C + 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, #4 + bl Sin + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x30] + adds r0, #0x30 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + rsbs r0, r0, #0 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x3c] + subs r0, #1 + strh r0, [r4, #0x3c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0810819C + adds r0, r4, #0 + bl DestroyAnimSprite +_0810819C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0810815C + + thumb_func_start AnimTask_CreateSurfWave +AnimTask_CreateSurfWave: @ 0x081081A4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + ldr r1, _08108214 + movs r0, #0x50 + bl SetGpuReg + movs r1, #0x80 + lsls r1, r1, #5 + movs r0, #0x52 + bl SetGpuReg + movs r0, #1 + movs r1, #4 + movs r2, #1 + bl SetAnimBgAttribute + movs r0, #1 + movs r1, #0 + movs r2, #1 + bl SetAnimBgAttribute + mov r0, sp + bl sub_080A63F8 + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08108230 + movs r0, #1 + movs r1, #3 + movs r2, #1 + bl SetAnimBgAttribute + ldr r0, _08108218 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08108220 + mov r0, sp + ldrb r0, [r0, #9] + ldr r1, _0810821C + bl AnimLoadCompressedBgTilemap + b _0810823A + .align 2, 0 +_08108214: .4byte 0x00003F42 +_08108218: .4byte 0x020380D6 +_0810821C: .4byte 0x08D95DB4 +_08108220: + mov r0, sp + ldrb r0, [r0, #9] + ldr r1, _0810822C + bl AnimLoadCompressedBgTilemap + b _0810823A + .align 2, 0 +_0810822C: .4byte 0x08D96084 +_08108230: + ldr r1, _08108264 + mov r0, sp + movs r2, #1 + bl sub_080A6628 +_0810823A: + mov r0, sp + ldrb r0, [r0, #9] + ldr r1, _08108268 + mov r2, sp + ldrh r2, [r2, #0xa] + bl AnimLoadCompressedBgGfx + ldr r0, _0810826C + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08108274 + ldr r0, _08108270 + mov r1, sp + ldrb r1, [r1, #8] + lsls r1, r1, #4 + movs r2, #0x20 + bl LoadCompressedPalette + b _08108282 + .align 2, 0 +_08108264: .4byte 0x08D96358 +_08108268: .4byte 0x08D94A6C +_0810826C: .4byte 0x020380BE +_08108270: .4byte 0x08D95D8C +_08108274: + ldr r0, _081082EC + mov r1, sp + ldrb r1, [r1, #8] + lsls r1, r1, #4 + movs r2, #0x20 + bl LoadCompressedPalette +_08108282: + ldr r0, _081082F0 + ldr r4, _081082F4 + mov r2, sl + lsls r5, r2, #2 + adds r1, r5, r2 + lsls r1, r1, #3 + adds r6, r1, r4 + ldrb r1, [r6, #7] + adds r1, #1 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r0, #0 + mov sb, r0 + mov r1, r8 + strh r1, [r6, #0x26] + mov r2, r8 + lsls r0, r2, #2 + add r0, r8 + lsls r0, r0, #3 + adds r7, r0, r4 + mov r0, sb + strh r0, [r7, #8] + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r7, #0xa] + strh r0, [r7, #0xc] + bl IsContest + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + beq _08108304 + ldr r1, _081082F8 + adds r0, r1, #0 + ldr r2, _081082FC + strh r0, [r2] + adds r1, #0x20 + adds r0, r1, #0 + ldr r2, _08108300 + strh r0, [r2] + movs r0, #2 + strh r0, [r6, #8] + movs r0, #1 + strh r0, [r6, #0xa] + mov r0, sb + strh r0, [r7, #0xe] + b _0810835E + .align 2, 0 +_081082EC: .4byte 0x08D8FB50 +_081082F0: .4byte 0x081085A9 +_081082F4: .4byte 0x03005B60 +_081082F8: .4byte 0x0000FFB0 +_081082FC: .4byte 0x02022ACC +_08108300: .4byte 0x02022ACE +_08108304: + ldr r0, _08108334 + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #1 + bne _08108348 + ldr r2, _08108338 + adds r0, r2, #0 + ldr r2, _0810833C + strh r0, [r2] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r2, #0 + ldr r2, _08108340 + strh r0, [r2] + movs r0, #2 + strh r0, [r6, #8] + ldr r0, _08108344 + strh r0, [r6, #0xa] + strh r1, [r7, #0xe] + b _0810835E + .align 2, 0 +_08108334: .4byte 0x020380D6 +_08108338: .4byte 0x0000FF20 +_0810833C: .4byte 0x02022ACC +_08108340: .4byte 0x02022ACE +_08108344: .4byte 0x0000FFFF +_08108348: + ldr r0, _08108390 + strh r4, [r0] + ldr r1, _08108394 + adds r0, r1, #0 + ldr r2, _08108398 + strh r0, [r2] + ldr r0, _0810839C + strh r0, [r6, #8] + movs r0, #1 + strh r0, [r6, #0xa] + strh r4, [r7, #0xe] +_0810835E: + ldr r0, _08108390 + ldrh r1, [r0] + movs r0, #0x14 + bl SetGpuReg + ldr r2, _08108398 + ldrh r1, [r2] + movs r0, #0x16 + bl SetGpuReg + ldr r1, _081083A0 + mov r2, r8 + lsls r0, r2, #2 + add r0, r8 + lsls r0, r0, #3 + adds r1, r0, r1 + movs r2, #0xe + ldrsh r0, [r1, r2] + cmp r0, #0 + bne _081083A4 + movs r0, #0x30 + strh r0, [r1, #0x10] + movs r0, #0x70 + b _081083A8 + .align 2, 0 +_08108390: .4byte 0x02022ACC +_08108394: .4byte 0x0000FFD0 +_08108398: .4byte 0x02022ACE +_0810839C: .4byte 0x0000FFFE +_081083A0: .4byte 0x03005B60 +_081083A4: + movs r0, #0 + strh r0, [r1, #0x10] +_081083A8: + strh r0, [r1, #0x12] + ldr r1, _081083CC + mov r2, sl + adds r0, r5, r2 + lsls r0, r0, #3 + adds r0, r0, r1 + movs r1, #1 + strh r1, [r0, #0x14] + ldr r1, _081083D0 + str r1, [r0] + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081083CC: .4byte 0x03005B60 +_081083D0: .4byte 0x081083D5 + thumb_func_end AnimTask_CreateSurfWave + + thumb_func_start sub_081083D4 +sub_081083D4: @ 0x081083D4 + push {r4, r5, r6, r7, lr} + sub sp, #0x10 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r1, _08108500 + ldr r2, _08108504 + ldr r0, _08108508 + lsls r4, r5, #2 + adds r4, r4, r5 + lsls r4, r4, #3 + adds r4, r4, r0 + ldrh r0, [r4, #8] + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + ldrh r0, [r4, #0xa] + ldrh r1, [r2] + adds r0, r0, r1 + strh r0, [r2] + mov r0, sp + bl sub_080A63F8 + ldrh r0, [r4, #0xa] + ldrh r3, [r4, #0xc] + adds r0, r0, r3 + strh r0, [r4, #0xc] + ldrh r0, [r4, #0x12] + adds r0, #1 + strh r0, [r4, #0x12] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + bne _08108468 + ldr r1, _0810850C + mov r0, sp + ldrb r0, [r0, #8] + lsls r0, r0, #4 + adds r0, #7 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r6, [r0] + movs r2, #6 + adds r7, r1, #0 + adds r3, r7, #0 + mov r4, sp +_0810842E: + ldrb r0, [r4, #8] + lsls r0, r0, #4 + adds r1, r2, #1 + adds r0, r0, r1 + lsls r1, r0, #1 + adds r1, r1, r3 + subs r0, #1 + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + strh r0, [r1] + subs r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _0810842E + mov r0, sp + ldrb r0, [r0, #8] + lsls r0, r0, #4 + adds r0, #1 + lsls r0, r0, #1 + adds r0, r0, r7 + strh r6, [r0] + ldr r1, _08108508 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r0, r0, r1 + strh r2, [r0, #0x12] +_08108468: + ldr r1, _08108508 + lsls r2, r5, #2 + adds r0, r2, r5 + lsls r0, r0, #3 + adds r3, r0, r1 + ldrh r0, [r3, #0x14] + adds r0, #1 + strh r0, [r3, #0x14] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r4, r1, #0 + adds r6, r2, #0 + cmp r0, #1 + ble _081084D6 + movs r0, #0 + strh r0, [r3, #0x14] + ldrh r0, [r3, #0xe] + adds r2, r0, #1 + strh r2, [r3, #0xe] + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xd + bgt _081084B2 + movs r1, #0x26 + ldrsh r0, [r3, r1] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r4 + movs r0, #0x10 + subs r0, r0, r2 + lsls r0, r0, #8 + orrs r2, r0 + strh r2, [r1, #0xa] + ldrh r0, [r3, #0x10] + adds r0, #1 + strh r0, [r3, #0x10] +_081084B2: + movs r1, #0xe + ldrsh r0, [r3, r1] + cmp r0, #0x36 + ble _081084D6 + ldrh r2, [r3, #0x10] + subs r2, #1 + strh r2, [r3, #0x10] + movs r1, #0x26 + ldrsh r0, [r3, r1] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r4 + movs r0, #0x10 + subs r0, r0, r2 + lsls r0, r0, #8 + orrs r2, r0 + strh r2, [r1, #0xa] +_081084D6: + adds r0, r6, r5 + lsls r0, r0, #3 + adds r2, r0, r4 + movs r3, #0x26 + ldrsh r1, [r2, r3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r4 + ldrh r0, [r0, #0xa] + movs r3, #0x1f + ands r3, r0 + cmp r3, #0 + bne _081084F8 + strh r3, [r2, #8] + ldr r0, _08108510 + str r0, [r2] +_081084F8: + add sp, #0x10 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08108500: .4byte 0x02022ACC +_08108504: .4byte 0x02022ACE +_08108508: .4byte 0x03005B60 +_0810850C: .4byte 0x020377B4 +_08108510: .4byte 0x08108515 + thumb_func_end sub_081083D4 + + thumb_func_start sub_08108514 +sub_08108514: @ 0x08108514 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + ldr r7, _0810854C + ldr r0, _08108550 + mov r8, r0 + ldr r6, _08108554 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #3 + adds r4, r0, r6 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08108558 + movs r0, #1 + bl sub_080A6530 + movs r0, #2 + bl sub_080A6530 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _0810859A + .align 2, 0 +_0810854C: .4byte 0x02022ACC +_08108550: .4byte 0x02022ACE +_08108554: .4byte 0x03005B60 +_08108558: + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0810856C + movs r0, #1 + movs r1, #3 + movs r2, #0 + bl SetAnimBgAttribute +_0810856C: + movs r0, #0 + strh r0, [r7] + mov r1, r8 + strh r0, [r1] + movs r0, #0x50 + movs r1, #0 + bl SetGpuReg + movs r0, #0x52 + movs r1, #0 + bl SetGpuReg + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r6 + ldr r1, _081085A4 + strh r1, [r0, #0x26] + adds r0, r5, #0 + bl DestroyAnimVisualTask +_0810859A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_081085A4: .4byte 0x0000FFFF + thumb_func_end sub_08108514 + + thumb_func_start sub_081085A8 +sub_081085A8: @ 0x081085A8 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #3 + ldr r1, _081085D0 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #1 + bne _081085C4 + b _081086FC +_081085C4: + cmp r0, #1 + bgt _081085D4 + cmp r0, #0 + beq _081085DC + b _08108872 + .align 2, 0 +_081085D0: .4byte 0x03005B60 +_081085D4: + cmp r0, #2 + bne _081085DA + b _081087C8 +_081085DA: + b _08108872 +_081085DC: + movs r3, #0 + movs r2, #0x10 + ldrsh r0, [r4, r2] + ldr r1, _081086AC + mov ip, r1 + cmp r3, r0 + bge _0810861A + mov r7, ip + movs r5, #0xf0 + lsls r5, r5, #3 + add r5, ip + ldr r6, _081086B0 +_081085F4: + lsls r2, r3, #0x10 + asrs r2, r2, #0x10 + lsls r1, r2, #1 + adds r3, r1, r7 + adds r1, 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, #1 + lsls r2, r2, #0x10 + lsrs r3, r2, #0x10 + asrs r2, r2, #0x10 + movs r1, #0x10 + ldrsh r0, [r4, r1] + cmp r2, r0 + blt _081085F4 +_0810861A: + ldrh r3, [r4, #0x10] + lsls r2, r3, #0x10 + asrs r1, r2, #0x10 + movs r3, #0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + bge _08108654 + ldr r5, _081086AC + movs r0, #0xf0 + lsls r0, r0, #3 + adds r6, r5, r0 + ldr r7, _081086B0 +_08108632: + asrs r2, r2, #0x10 + lsls r1, r2, #1 + adds r3, r1, r5 + adds r1, 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, #1 + lsls r2, r2, #0x10 + asrs r1, r2, #0x10 + movs r3, #0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + blt _08108632 +_08108654: + ldrh r3, [r4, #0x12] + lsls r2, r3, #0x10 + asrs r0, r2, #0x10 + cmp r0, #0x9f + bgt _0810868A + ldr r5, _081086AC + movs r0, #0xf0 + lsls r0, r0, #3 + adds r6, r5, r0 + ldr r7, _081086B0 +_08108668: + asrs r2, r2, #0x10 + lsls r1, r2, #1 + adds r3, r1, r5 + adds r1, 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, #1 + lsls r2, r2, #0x10 + lsrs r3, r2, #0x10 + lsls r2, r3, #0x10 + asrs r0, r2, #0x10 + cmp r0, #0x9f + ble _08108668 +_0810868A: + movs r1, #0x10 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _081086B4 + lsls r0, r3, #0x10 + asrs r0, r0, #0xf + mov r3, ip + adds r2, r0, r3 + movs r1, #0xf0 + lsls r1, r1, #3 + add r1, ip + adds r0, r0, r1 + ldrh r1, [r4, #0xa] + strh r1, [r0] + ldrh r0, [r4, #0xa] + b _081086CA + .align 2, 0 +_081086AC: .4byte 0x020388C8 +_081086B0: .4byte 0x0000FFFF +_081086B4: + lsls r0, r3, #0x10 + asrs r0, r0, #0xf + mov r1, ip + adds r2, r0, r1 + movs r1, #0xf0 + lsls r1, r1, #3 + add r1, ip + adds r0, r0, r1 + ldrh r1, [r4, #0xc] + strh r1, [r0] + ldrh r0, [r4, #0xc] +_081086CA: + strh r0, [r2] + ldr r0, _081086F4 + str r0, [sp] + ldr r0, _081086F8 + str r0, [sp, #4] + mov r1, sp + movs r2, #0 + movs r0, #1 + strb r0, [r1, #8] + mov r0, sp + strb r2, [r0, #9] + ldr r0, [sp] + ldr r1, [sp, #4] + ldr r2, [sp, #8] + bl ScanlineEffect_SetParams + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _08108872 + .align 2, 0 +_081086F4: .4byte 0x04000052 +_081086F8: .4byte 0xA2600001 +_081086FC: + movs r2, #0xe + ldrsh r1, [r4, r2] + cmp r1, #0 + bne _08108714 + ldrh r0, [r4, #0x10] + subs r0, #1 + strh r0, [r4, #0x10] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _08108728 + strh r1, [r4, #0x10] + b _08108722 +_08108714: + ldrh r0, [r4, #0x12] + adds r0, #1 + strh r0, [r4, #0x12] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x6f + ble _08108728 +_08108722: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_08108728: + movs r3, #0 + movs r1, #0x10 + ldrsh r0, [r4, r1] + cmp r3, r0 + bge _0810875C + ldr r6, _081087C0 + ldr r5, _081087C4 +_08108736: + lsls r1, r3, #0x10 + asrs r1, r1, #0x10 + lsls r3, r1, #1 + ldrb r2, [r5, #0x14] + lsls r0, r2, #4 + subs r0, r0, r2 + lsls r0, r0, #7 + adds r3, r3, r0 + adds r3, r3, r6 + ldrh r0, [r4, #0xc] + strh r0, [r3] + adds r1, #1 + lsls r1, r1, #0x10 + lsrs r3, r1, #0x10 + asrs r1, r1, #0x10 + movs r2, #0x10 + ldrsh r0, [r4, r2] + cmp r1, r0 + blt _08108736 +_0810875C: + ldrh r3, [r4, #0x10] + lsls r2, r3, #0x10 + asrs r1, r2, #0x10 + movs r3, #0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + bge _08108790 + ldr r6, _081087C0 + ldr r5, _081087C4 +_0810876E: + asrs r3, r2, #0x10 + lsls r2, r3, #1 + ldrb r1, [r5, #0x14] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #7 + adds r2, r2, r0 + adds r2, r2, r6 + ldrh r0, [r4, #0xa] + strh r0, [r2] + adds r3, #1 + lsls r2, r3, #0x10 + asrs r1, r2, #0x10 + movs r3, #0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + blt _0810876E +_08108790: + ldrh r3, [r4, #0x12] + lsls r1, r3, #0x10 + asrs r0, r1, #0x10 + cmp r0, #0x9f + bgt _08108872 + ldr r6, _081087C0 + ldr r5, _081087C4 +_0810879E: + asrs r3, r1, #0x10 + lsls r2, r3, #1 + ldrb r1, [r5, #0x14] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #7 + adds r2, r2, r0 + adds r2, r2, r6 + ldrh r0, [r4, #0xc] + strh r0, [r2] + adds r3, #1 + lsls r1, r3, #0x10 + asrs r0, r1, #0x10 + cmp r0, #0x9f + ble _0810879E + b _08108872 + .align 2, 0 +_081087C0: .4byte 0x020388C8 +_081087C4: .4byte 0x020397C8 +_081087C8: + movs r3, #0 + movs r1, #0x10 + ldrsh r0, [r4, r1] + cmp r3, r0 + bge _081087FC + ldr r6, _0810887C + ldr r5, _08108880 +_081087D6: + lsls r1, r3, #0x10 + asrs r1, r1, #0x10 + lsls r3, r1, #1 + ldrb r2, [r5, #0x14] + lsls r0, r2, #4 + subs r0, r0, r2 + lsls r0, r0, #7 + adds r3, r3, r0 + adds r3, r3, r6 + ldrh r0, [r4, #0xc] + strh r0, [r3] + adds r1, #1 + lsls r1, r1, #0x10 + lsrs r3, r1, #0x10 + asrs r1, r1, #0x10 + movs r2, #0x10 + ldrsh r0, [r4, r2] + cmp r1, r0 + blt _081087D6 +_081087FC: + ldrh r3, [r4, #0x10] + lsls r2, r3, #0x10 + asrs r1, r2, #0x10 + movs r3, #0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + bge _08108830 + ldr r6, _0810887C + ldr r5, _08108880 +_0810880E: + asrs r3, r2, #0x10 + lsls r2, r3, #1 + ldrb r1, [r5, #0x14] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #7 + adds r2, r2, r0 + adds r2, r2, r6 + ldrh r0, [r4, #0xa] + strh r0, [r2] + adds r3, #1 + lsls r2, r3, #0x10 + asrs r1, r2, #0x10 + movs r3, #0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + blt _0810880E +_08108830: + ldrh r3, [r4, #0x12] + lsls r1, r3, #0x10 + asrs r0, r1, #0x10 + cmp r0, #0x9f + bgt _0810885C + ldr r6, _0810887C + ldr r5, _08108880 +_0810883E: + asrs r3, r1, #0x10 + lsls r2, r3, #1 + ldrb r1, [r5, #0x14] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #7 + adds r2, r2, r0 + adds r2, r2, r6 + ldrh r0, [r4, #0xc] + strh r0, [r2] + adds r3, #1 + lsls r1, r3, #0x10 + asrs r0, r1, #0x10 + cmp r0, #0x9f + ble _0810883E +_0810885C: + movs r0, #0x26 + ldrsh r1, [r4, r0] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _08108872 + bl ScanlineEffect_Stop + adds r0, r7, #0 + bl DestroyTask +_08108872: + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0810887C: .4byte 0x020388C8 +_08108880: .4byte 0x020397C8 + thumb_func_end sub_081085A8 + + thumb_func_start sub_08108884 +sub_08108884: @ 0x08108884 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrh r2, [r4, #4] + lsls r1, r2, #0x16 + lsrs r1, r1, #0x16 + adds r1, #8 + ldr r3, _081088D8 + adds r0, r3, #0 + ands r1, r0 + ldr r0, _081088DC + ands r0, r2 + orrs r0, r1 + strh r0, [r4, #4] + adds r0, r4, #0 + movs r1, #1 + bl InitSpritePosToAnimTarget + bl Random2 + movs r5, #0xff + ands r5, r0 + movs r0, #0x80 + lsls r0, r0, #1 + adds r6, r0, #0 + orrs r5, r6 + bl Random2 + ldr r1, _081088E0 + ands r1, r0 + adds r0, r1, #0 + cmp r0, #0xff + ble _081088CA + subs r0, r6, r0 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 +_081088CA: + strh r5, [r4, #0x30] + strh r1, [r4, #0x32] + ldr r0, _081088E4 + str r0, [r4, #0x1c] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081088D8: .4byte 0x000003FF +_081088DC: .4byte 0xFFFFFC00 +_081088E0: .4byte 0x000001FF +_081088E4: .4byte 0x081088E9 + thumb_func_end sub_08108884 + + thumb_func_start sub_081088E8 +sub_081088E8: @ 0x081088E8 + 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, r1, r4 + strh r1, [r2, #0x36] + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0810890C + lsls r0, r3, #0x10 + asrs r0, r0, #0x18 + rsbs r0, r0, #0 + b _08108910 +_0810890C: + lsls r0, r3, #0x10 + asrs r0, r0, #0x18 +_08108910: + strh r0, [r2, #0x24] + ldrh r0, [r2, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + strh r0, [r2, #0x26] + ldrh r0, [r2, #0x2e] + adds r0, #1 + strh r0, [r2, #0x2e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x15 + bne _0810892E + adds r0, r2, #0 + bl DestroyAnimSprite +_0810892E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_081088E8 + + thumb_func_start sub_08108934 +sub_08108934: @ 0x08108934 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #3 + ldr r0, _08108984 + adds r4, r4, r0 + movs r0, #0 + bl GetAnimBattlerSpriteId + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x26] + ldr r2, _08108988 + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0, #0x22] + strh r0, [r4, #0x12] + bl sub_08108BD4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0xa] + ldrh r0, [r4, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 + bl PrepareBattlerSpriteForRotScale + ldr r0, _0810898C + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08108984: .4byte 0x03005B60 +_08108988: .4byte 0x020205AC +_0810898C: .4byte 0x08108991 + thumb_func_end sub_08108934 + + thumb_func_start sub_08108990 +sub_08108990: @ 0x08108990 + push {r4, r5, r6, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _081089B8 + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #7 + bls _081089AC + b _08108BCA +_081089AC: + lsls r0, r0, #2 + ldr r1, _081089BC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081089B8: .4byte 0x03005B60 +_081089BC: .4byte 0x081089C0 +_081089C0: @ jump table + .4byte _081089E0 @ case 0 + .4byte _08108A06 @ case 1 + .4byte _08108A98 @ case 2 + .4byte _08108ACE @ case 3 + .4byte _08108AE2 @ case 4 + .4byte _08108AF0 @ case 5 + .4byte _08108B70 @ case 6 + .4byte _08108BBC @ case 7 +_081089E0: + ldrh r1, [r4, #0x26] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r3, #0x80 + lsls r3, r3, #1 + movs r0, #0xe0 + str r0, [sp] + movs r0, #0x80 + lsls r0, r0, #2 + str r0, [sp, #4] + movs r0, #0x20 + str r0, [sp, #8] + adds r0, r4, #0 + adds r2, r3, #0 + bl sub_080A7924 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_08108A06: + ldrh r0, [r4, #0xe] + adds r0, #1 + strh r0, [r4, #0xe] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _08108A62 + movs r0, #0 + strh r0, [r4, #0xe] + ldrh r0, [r4, #0x10] + adds r0, #1 + strh r0, [r4, #0x10] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08108A50 + ldr r2, _08108A4C + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r1, #3 + strh r1, [r0, #0x24] + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x22] + adds r1, #1 + strh r1, [r0, #0x22] + b _08108A62 + .align 2, 0 +_08108A4C: .4byte 0x020205AC +_08108A50: + ldr r2, _08108A90 + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, _08108A94 + strh r1, [r0, #0x24] +_08108A62: + adds r0, r4, #0 + bl sub_080A7990 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + beq _08108A72 + b _08108BCA +_08108A72: + ldrh r0, [r4, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl SetBattlerSpriteYOffsetFromYScale + ldr r2, _08108A90 + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + strh r5, [r0, #0x24] + strh r5, [r4, #0xe] + b _08108BAC + .align 2, 0 +_08108A90: .4byte 0x020205AC +_08108A94: .4byte 0x0000FFFD +_08108A98: + ldrh r0, [r4, #0xe] + adds r0, #1 + strh r0, [r4, #0xe] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + bgt _08108AA8 + b _08108BCA +_08108AA8: + ldrh r1, [r4, #0x26] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r3, #0x80 + lsls r3, r3, #2 + movs r0, #0xc0 + lsls r0, r0, #1 + str r0, [sp] + movs r0, #0xe0 + str r0, [sp, #4] + movs r0, #8 + str r0, [sp, #8] + adds r0, r4, #0 + movs r2, #0xe0 + bl sub_080A7924 + movs r0, #0 + strh r0, [r4, #0xe] + b _08108BAE +_08108ACE: + adds r0, r4, #0 + bl sub_080A7990 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _08108BCA + strh r0, [r4, #0xe] + strh r0, [r4, #0x10] + b _08108BAE +_08108AE2: + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_08108C58 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] +_08108AF0: + ldrh r0, [r4, #0xe] + adds r0, #1 + strh r0, [r4, #0xe] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _08108BCA + movs r0, #0 + strh r0, [r4, #0xe] + ldrh r0, [r4, #0x10] + adds r0, #1 + strh r0, [r4, #0x10] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08108B28 + ldr r2, _08108B24 + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x26] + adds r1, #2 + b _08108B3A + .align 2, 0 +_08108B24: .4byte 0x020205AC +_08108B28: + ldr r2, _08108B6C + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r1, [r0, #0x26] + subs r1, #2 +_08108B3A: + strh r1, [r0, #0x26] + movs r1, #0x10 + ldrsh r0, [r4, r1] + cmp r0, #0xa + bne _08108BCA + ldrh r1, [r4, #0x26] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r2, #0xc0 + lsls r2, r2, #1 + movs r0, #0x80 + lsls r0, r0, #1 + str r0, [sp] + str r0, [sp, #4] + movs r0, #8 + str r0, [sp, #8] + adds r0, r4, #0 + movs r3, #0xe0 + bl sub_080A7924 + movs r0, #0 + strh r0, [r4, #0xe] + strh r0, [r4, #0x10] + b _08108BAE + .align 2, 0 +_08108B6C: .4byte 0x020205AC +_08108B70: + ldr r6, _08108BB8 + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrh r1, [r0, #0x22] + subs r1, #1 + strh r1, [r0, #0x22] + adds r0, r4, #0 + bl sub_080A7990 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _08108BCA + ldrh r0, [r4, #0x26] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl ResetSpriteRotScale + movs r0, #0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrh r1, [r4, #0x12] + strh r1, [r0, #0x22] +_08108BAC: + strh r5, [r4, #0x10] +_08108BAE: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _08108BCA + .align 2, 0 +_08108BB8: .4byte 0x020205AC +_08108BBC: + movs r1, #0xc + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08108BCA + adds r0, r2, #0 + bl DestroyAnimVisualTask +_08108BCA: + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08108990 + + thumb_func_start sub_08108BD4 +sub_08108BD4: @ 0x08108BD4 + push {r4, r5, lr} + ldr r4, _08108BF8 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08108C08 + ldr r1, _08108BFC + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _08108C00 + b _08108C18 + .align 2, 0 +_08108BF8: .4byte 0x020380D6 +_08108BFC: .4byte 0x02023D12 +_08108C00: .4byte 0x02024190 +_08108C04: + adds r0, r2, #0 + b _08108C4A +_08108C08: + ldr r1, _08108C50 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x64 + muls r1, r0, r1 + ldr r0, _08108C54 +_08108C18: + adds r5, r1, r0 + adds r0, r5, #0 + movs r1, #0x3a + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + adds r0, r5, #0 + movs r1, #0x39 + bl GetMonData + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + lsrs r4, r4, #0x12 + movs r2, #0 +_08108C36: + adds r1, r2, #1 + adds r0, r4, #0 + muls r0, r1, r0 + cmp r3, r0 + blt _08108C04 + lsls r0, r1, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #2 + bls _08108C36 + movs r0, #3 +_08108C4A: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08108C50: .4byte 0x02023D12 +_08108C54: .4byte 0x020243E8 + thumb_func_end sub_08108BD4 + + thumb_func_start sub_08108C58 +sub_08108C58: @ 0x08108C58 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + adds r7, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp] + ldr r4, _08108D60 + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + movs r5, #0xac + ldrb r0, [r4] + bl GetBattlerSpriteSubpriority + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #8] + ldrh r1, [r7, #0xa] + movs r0, #4 + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r0, #0 + bgt _08108CA8 + movs r1, #1 +_08108CA8: + movs r0, #0 + str r0, [sp, #4] + lsls r0, r1, #0x10 + mov sl, r8 + mov sb, r6 + mov r1, sl + lsls r1, r1, #4 + str r1, [sp, #0xc] + mov r1, sb + lsls r1, r1, #4 + str r1, [sp, #0x10] + asrs r0, r0, #0x10 + mov r8, r0 +_08108CC2: + ldr r0, _08108D64 + mov r1, sl + mov r2, sb + ldr r3, [sp, #8] + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r6, r5, #0x10 + cmp r2, #0x40 + beq _08108D2A + ldr r1, _08108D68 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r5, r0, r1 + mov r0, sp + ldrh r0, [r0, #4] + 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, #0x10 + 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, #2 + strh r0, [r5, #0x3c] + ldrh r1, [r7, #0xc] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08108D24 + adds r0, r5, #0 + bl sub_08108D6C +_08108D24: + ldrh r0, [r7, #0xc] + adds r0, #1 + strh r0, [r7, #0xc] +_08108D2A: + mov r1, r8 + lsls r0, r1, #1 + asrs r1, r6, #0x10 + adds r1, r1, r0 + lsls r1, r1, #0x10 + movs r0, #0xff + lsls r0, r0, #0x10 + ands r0, r1 + lsrs r5, r0, #0x10 + ldr r1, [sp, #4] + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + add r0, r8 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + str r1, [sp, #4] + asrs r0, r0, #0x10 + cmp r0, #0x13 + ble _08108CC2 + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08108D60: .4byte 0x020380D6 +_08108D64: .4byte 0x08570E4C +_08108D68: .4byte 0x020205AC + thumb_func_end sub_08108C58 + + thumb_func_start sub_08108D6C +sub_08108D6C: @ 0x08108D6C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _08108D7E + cmp r0, #1 + beq _08108DB4 + b _08108E0E +_08108D7E: + movs r2, #0x30 + ldrsh r0, [r4, r2] + movs r1, #6 + bl __modsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r1, r0, #1 + adds r1, r1, r0 + ldrh r0, [r4, #0x36] + adds r1, r1, r0 + strh r1, [r4, #0x36] + movs r1, #0x30 + ldrsh r0, [r4, r1] + movs r1, #3 + bl __modsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r1, r0, #1 + adds r1, r1, r0 + ldrh r2, [r4, #0x38] + adds r1, r1, r2 + strh r1, [r4, #0x38] + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] +_08108DB4: + ldrh r0, [r4, #0x36] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldrh r1, [r4, #0x38] + ldrh r2, [r4, #0x34] + adds r1, r1, r2 + strh r1, [r4, #0x34] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + strh r0, [r4, #0x20] + lsls r1, r1, #0x10 + asrs r2, r1, #0x14 + strh r2, [r4, #0x22] + adds r0, #8 + lsls r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _08108DEA + adds r1, r2, #0 + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + blt _08108DEA + cmp r1, #0x78 + ble _08108E0E +_08108DEA: + ldr r3, _08108E14 + movs r0, #0x3c + ldrsh r1, [r4, r0] + lsls r1, r1, #1 + movs r0, #0x3a + ldrsh r2, [r4, r0] + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r3, #8 + adds r1, r1, r3 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + adds r0, r4, #0 + bl DestroySprite +_08108E0E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08108E14: .4byte 0x03005B60 + thumb_func_end sub_08108D6C + + thumb_func_start sub_08108E18 +sub_08108E18: @ 0x08108E18 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _08108E48 + adds r4, r1, r0 + bl sub_08108BD4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0xa] + ldr r0, _08108E4C + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08108E50 + movs r0, #0x88 + strh r0, [r4, #0x10] + movs r0, #0x28 + b _08108E56 + .align 2, 0 +_08108E48: .4byte 0x03005B60 +_08108E4C: .4byte 0x020380D6 +_08108E50: + movs r0, #0x10 + strh r0, [r4, #0x10] + movs r0, #0x50 +_08108E56: + 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, r0, r1 + adds r0, #5 + strh r0, [r4, #0x20] + ldr r0, _08108E78 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08108E78: .4byte 0x08108E7D + thumb_func_end sub_08108E18 + + thumb_func_start sub_08108E7C +sub_08108E7C: @ 0x08108E7C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + ldr r7, _08108EA0 + adds r4, r0, r7 + movs r0, #8 + ldrsh r2, [r4, r0] + cmp r2, #0 + beq _08108EA4 + cmp r2, #1 + beq _08108F54 + b _08108F62 + .align 2, 0 +_08108EA0: .4byte 0x03005B60 +_08108EA4: + ldrh r0, [r4, #0xc] + adds r0, #1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + ble _08108EBA + strh r2, [r4, #0xc] + adds r0, r4, #0 + bl sub_08108F6C +_08108EBA: + movs r1, #0x1c + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _08108F34 + movs r2, #0x22 + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _08108F34 + ldr r5, _08108F48 + movs r1, #1 + mov r8, r1 + mov r2, r8 + strh r2, [r5] + strh r0, [r5, #2] + movs r0, #0xc + strh r0, [r5, #4] + ldr r6, _08108F4C + adds r0, r6, #0 + movs r1, #0x50 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xff + beq _08108F04 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r0, r0, r7 + ldr r1, [r0] + adds r0, r2, #0 + bl _call_via_r1 + ldr r1, _08108F50 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_08108F04: + movs r0, #3 + strh r0, [r5] + adds r0, r6, #0 + movs r1, #0x50 + bl CreateTask + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xff + beq _08108F30 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r0, r0, r7 + ldr r1, [r0] + adds r0, r2, #0 + bl _call_via_r1 + ldr r1, _08108F50 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_08108F30: + mov r0, r8 + strh r0, [r4, #0x22] +_08108F34: + movs r2, #0x1e + ldrsh r1, [r4, r2] + movs r2, #0x20 + ldrsh r0, [r4, r2] + cmp r1, r0 + blt _08108F62 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _08108F62 + .align 2, 0 +_08108F48: .4byte 0x020380BE +_08108F4C: .4byte 0x08115B2D +_08108F50: .4byte 0x0203809E +_08108F54: + movs r2, #0x1a + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _08108F62 + adds r0, r1, #0 + bl DestroyAnimVisualTask +_08108F62: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_08108E7C + + thumb_func_start sub_08108F6C +sub_08108F6C: @ 0x08108F6C + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + ldr r1, _08108FF8 + movs r2, #0x18 + ldrsh r0, [r4, r2] + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r0, #3 + asrs r0, r0, #4 + ldrh r2, [r4, #0x14] + adds r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, _08108FFC + movs r2, #0x16 + ldrsh r1, [r4, r2] + movs r2, #0 + movs r3, #0 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x40 + beq _08108FC6 + ldr r3, _08109000 + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r3, #0 + adds r1, #0x1c + adds r1, r0, r1 + ldr r2, _08109004 + str r2, [r1] + adds r0, r0, r3 + strh r5, [r0, #0x38] + strh r6, [r0, #0x3a] + movs r1, #9 + strh r1, [r0, #0x3c] + ldrh r0, [r4, #0x1a] + adds r0, #1 + strh r0, [r4, #0x1a] +_08108FC6: + ldrh r0, [r4, #0x1e] + adds r0, #1 + 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, _08109008 + muls r0, r1, r0 + ldr r1, _0810900C + adds r0, r0, r1 + movs r2, #0x12 + ldrsh r1, [r4, r2] + bl __modsi3 + ldrh r1, [r4, #0x10] + adds r1, r1, r0 + strh r1, [r4, #0x16] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08108FF8: .4byte 0x082FA8CC +_08108FFC: .4byte 0x08570E4C +_08109000: .4byte 0x020205AC +_08109004: .4byte 0x08109011 +_08109008: .4byte 0x41C64E6D +_0810900C: .4byte 0x00003039 + thumb_func_end sub_08108F6C + + thumb_func_start sub_08109010 +sub_08109010: @ 0x08109010 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _081090A6 + ldrh r0, [r5, #0x22] + adds r0, #8 + strh r0, [r5, #0x22] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x38 + ldrsh r1, [r5, r2] + cmp r0, r1 + blt _081090A6 + ldr r2, _081090AC + movs r3, #0x3a + ldrsh r1, [r5, r3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r2 + movs r1, #1 + strh r1, [r0, #0x1c] + ldr r0, _081090B0 + movs r2, #0x20 + ldrsh r1, [r5, r2] + movs r3, #0x22 + ldrsh r2, [r5, r3] + movs r3, #1 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x30] + cmp r0, #0x40 + beq _081090A0 + movs r0, #0x30 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _081090B4 + adds r0, r0, r4 + movs r1, #3 + bl StartSpriteAffineAnim + movs r2, #0x30 + ldrsh r1, [r5, r2] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r5, #0x3a] + strh r1, [r0, #0x3a] + movs r3, #0x30 + ldrsh r1, [r5, r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r5, #0x3c] + strh r1, [r0, #0x3c] + movs r0, #0x30 + ldrsh r1, [r5, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, #0x1c + adds r0, r0, r4 + ldr r1, _081090B8 + str r1, [r0] +_081090A0: + adds r0, r5, #0 + bl DestroySprite +_081090A6: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_081090AC: .4byte 0x03005B60 +_081090B0: .4byte 0x08572F6C +_081090B4: .4byte 0x020205AC +_081090B8: .4byte 0x081090BD + thumb_func_end sub_08109010 + + thumb_func_start sub_081090BC +sub_081090BC: @ 0x081090BC + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x30] + adds r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _08109128 + movs r0, #0 + strh r0, [r4, #0x30] + adds r3, r4, #0 + adds r3, #0x3e + ldrb r2, [r3] + lsls r0, r2, #0x1d + lsrs r0, r0, #0x1f + movs r1, #1 + eors r1, r0 + lsls r1, r1, #2 + movs r0, #5 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xc + bne _08109128 + ldr r3, _08109130 + movs r0, #0x3c + ldrsh r1, [r4, r0] + lsls r1, r1, #1 + movs r0, #0x3a + ldrsh r2, [r4, r0] + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r3, #8 + adds r1, r1, r3 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + ldrb r0, [r4, #3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + bl FreeOamMatrix + adds r0, r4, #0 + bl DestroySprite +_08109128: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08109130: .4byte 0x03005B60 + thumb_func_end sub_081090BC + + thumb_func_start sub_08109134 +sub_08109134: @ 0x08109134 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _081091B8 + adds r5, r1, r0 + ldr r4, _081091BC + ldrb r0, [r4] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r6, #0 + strh r0, [r5, #0xe] + ldrb r0, [r4] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r5, #0x10] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, r0, #0x18 + movs r2, #1 + rsbs r2, r2, #0 + adds r1, r2, #0 + cmp r0, #0 + bne _08109178 + movs r1, #1 +_08109178: + strh r1, [r5, #0x16] + bl IsContest + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0810918C + movs r1, #0x16 + ldrsh r0, [r5, r1] + rsbs r0, r0, #0 + strh r0, [r5, #0x16] +_0810918C: + movs r2, #0x16 + ldrsh r0, [r5, r2] + lsls r0, r0, #3 + ldrh r1, [r5, #0xe] + adds r0, r0, r1 + strh r0, [r5, #0x12] + movs r2, #0x16 + ldrsh r1, [r5, r2] + lsls r1, r1, #3 + ldrh r0, [r5, #0x10] + subs r0, r0, r1 + strh r0, [r5, #0x14] + ldr r0, _081091C0 + strh r0, [r5, #0x1a] + strh r6, [r5, #0xa] + strh r6, [r5, #8] + ldr r0, _081091C4 + str r0, [r5] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081091B8: .4byte 0x03005B60 +_081091BC: .4byte 0x020380D6 +_081091C0: .4byte 0x0000FFE0 +_081091C4: .4byte 0x081091C9 + thumb_func_end sub_08109134 + + thumb_func_start sub_081091C8 +sub_081091C8: @ 0x081091C8 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #3 + ldr r1, _081091EC + adds r4, r0, r1 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #6 + bls _081091E2 + b _08109302 +_081091E2: + lsls r0, r0, #2 + ldr r1, _081091F0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081091EC: .4byte 0x03005B60 +_081091F0: .4byte 0x081091F4 +_081091F4: @ jump table + .4byte _08109210 @ case 0 + .4byte _08109220 @ case 1 + .4byte _0810923A @ case 2 + .4byte _0810927C @ case 3 + .4byte _0810929E @ case 4 + .4byte _081092CC @ case 5 + .4byte _081092F2 @ case 6 +_08109210: + adds r0, r4, #0 + bl sub_08109310 + movs r1, #0x1c + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _08109308 + b _081092FA +_08109220: + adds r0, r4, #0 + bl sub_08109310 + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x10 + ble _08109308 + movs r0, #0 + strh r0, [r4, #0xa] + b _081092FA +_0810923A: + adds r0, r4, #0 + bl sub_08109310 + movs r1, #0x16 + ldrsh r0, [r4, r1] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + ldrh r0, [r4, #0x12] + adds r1, r1, r0 + movs r2, #0 + strh r1, [r4, #0x12] + adds r1, #0x10 + lsls r1, r1, #0x10 + movs r0, #0x88 + lsls r0, r0, #0x11 + cmp r1, r0 + bls _08109308 + ldrh r0, [r4, #0x20] + adds r0, #1 + strh r0, [r4, #0x20] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #2 + ble _08109278 + movs r0, #1 + strh r0, [r4, #0x22] + movs r0, #6 + strh r0, [r4, #8] + strh r2, [r4, #0xa] + b _08109308 +_08109278: + strh r2, [r4, #0xa] + b _081092FA +_0810927C: + adds r0, r4, #0 + bl sub_08109310 + movs r0, #0x16 + ldrsh r1, [r4, r0] + lsls r1, r1, #1 + ldrh r0, [r4, #0x14] + subs r0, r0, r1 + strh r0, [r4, #0x14] + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + ble _08109308 + b _081092FA +_0810929E: + adds r0, r4, #0 + bl sub_08109310 + movs r1, #0x16 + ldrsh r0, [r4, r1] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + ldrh r0, [r4, #0x12] + subs r0, r0, r1 + strh r0, [r4, #0x12] + adds r0, #0x10 + lsls r0, r0, #0x10 + movs r1, #0x88 + lsls r1, r1, #0x11 + cmp r0, r1 + bls _08109308 + ldrh r0, [r4, #0x20] + adds r0, #1 + strh r0, [r4, #0x20] + movs r0, #0 + strh r0, [r4, #0xa] + b _081092FA +_081092CC: + adds r0, r4, #0 + bl sub_08109310 + movs r0, #0x16 + ldrsh r1, [r4, r0] + lsls r1, r1, #1 + ldrh r0, [r4, #0x14] + subs r0, r0, r1 + strh r0, [r4, #0x14] + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + ble _08109308 + movs r0, #2 + strh r0, [r4, #8] + b _08109308 +_081092F2: + movs r1, #0x18 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08109308 +_081092FA: + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + b _08109308 +_08109302: + adds r0, r2, #0 + bl DestroyAnimVisualTask +_08109308: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081091C8 + + thumb_func_start sub_08109310 +sub_08109310: @ 0x08109310 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrh r0, [r6, #0xc] + adds r0, #1 + strh r0, [r6, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _0810936A + movs r0, #0 + strh r0, [r6, #0xc] + ldr r0, _08109370 + movs r2, #0xe + ldrsh r1, [r6, r2] + movs r3, #0x10 + ldrsh r2, [r6, r3] + movs r3, #0xa + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + beq _0810936A + ldr r5, _08109374 + lsls r4, r0, #4 + adds r4, r4, r0 + lsls r4, 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 InitAnimArcTranslation + adds r5, #0x1c + adds r4, r4, r5 + ldr r0, _08109378 + str r0, [r4] + ldrh r0, [r6, #0x18] + adds r0, #1 + strh r0, [r6, #0x18] +_0810936A: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08109370: .4byte 0x08570E4C +_08109374: .4byte 0x020205AC +_08109378: .4byte 0x0810937D + thumb_func_end sub_08109310 + + thumb_func_start sub_0810937C +sub_0810937C: @ 0x0810937C + push {r4, r5, r6, lr} + adds r6, r0, #0 + bl TranslateAnimHorizontalArc + lsls r0, r0, #0x18 + cmp r0, #0 + beq _081093D6 + ldrh r0, [r6, #0x24] + ldrh r1, [r6, #0x20] + adds r0, r0, r1 + strh r0, [r6, #0x20] + ldrh r0, [r6, #0x26] + ldrh r1, [r6, #0x22] + adds r0, r0, r1 + strh r0, [r6, #0x22] + movs r0, #6 + strh r0, [r6, #0x2e] + bl Random2 + movs r4, #0x1f + adds r1, r4, #0 + ands r1, r0 + ldr r5, _081093DC + adds r1, r1, r5 + ldrh r0, [r6, #0x20] + adds r1, r1, r0 + strh r1, [r6, #0x32] + bl Random2 + ands r4, r0 + adds r4, r4, r5 + ldrh r1, [r6, #0x22] + adds r4, r4, r1 + strh r4, [r6, #0x36] + bl Random2 + movs r1, #7 + ands r1, r0 + mvns r1, r1 + strh r1, [r6, #0x38] + adds r0, r6, #0 + bl InitAnimArcTranslation + ldr r0, _081093E0 + str r0, [r6, #0x1c] +_081093D6: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_081093DC: .4byte 0x0000FFF0 +_081093E0: .4byte 0x081093E5 + thumb_func_end sub_0810937C + + thumb_func_start sub_081093E4 +sub_081093E4: @ 0x081093E4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl TranslateAnimHorizontalArc + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08109420 + movs r4, #0 + ldr r6, _08109428 +_081093F6: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #3 + adds r2, r0, r6 + ldr r1, [r2] + ldr r0, _0810942C + cmp r1, r0 + bne _08109416 + movs r0, #1 + strh r0, [r2, #0x1c] + ldrh r0, [r2, #0x18] + subs r0, #1 + strh r0, [r2, #0x18] + adds r0, r5, #0 + bl DestroySprite +_08109416: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0xf + bls _081093F6 +_08109420: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08109428: .4byte 0x03005B60 +_0810942C: .4byte 0x081091C9 + thumb_func_end sub_081093E4 + + thumb_func_start sub_08109430 +sub_08109430: @ 0x08109430 + ldr r2, _08109450 + ldrh r1, [r2] + strh r1, [r0, #0x20] + ldrh r1, [r2, #2] + strh r1, [r0, #0x22] + ldrh r1, [r2, #4] + strh r1, [r0, #0x2e] + ldrh r1, [r2, #6] + strh r1, [r0, #0x30] + ldrh r1, [r2, #8] + strh r1, [r0, #0x32] + ldrh r1, [r2, #0xa] + strh r1, [r0, #0x34] + ldr r1, _08109454 + str r1, [r0, #0x1c] + bx lr + .align 2, 0 +_08109450: .4byte 0x020380BE +_08109454: .4byte 0x08109459 + thumb_func_end sub_08109430 + + thumb_func_start sub_08109458 +sub_08109458: @ 0x08109458 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x36] + ldrh r1, [r4, #0x2e] + subs r0, 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, 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, #1 + strh r0, [r4, #0x34] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0810949C + adds r0, r4, #0 + bl DestroyAnimSprite +_0810949C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_08109458 + + thumb_func_start sub_081094A4 +sub_081094A4: @ 0x081094A4 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x30] + ldrh r1, [r4, #0x34] + adds r0, r0, r1 + strh r0, [r4, #0x34] + ldrh r1, [r4, #0x32] + ldrh r2, [r4, #0x36] + adds r1, r1, r2 + strh r1, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x17 + strh r0, [r4, #0x24] + lsls r1, r1, #0x10 + asrs r1, r1, #0x17 + strh r1, [r4, #0x26] + ldrh r0, [r4, #0x2e] + subs r0, #1 + strh r0, [r4, #0x2e] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _081094DC + adds r0, r4, #0 + bl FreeSpriteOamMatrix + adds r0, r4, #0 + bl DestroySprite +_081094DC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_081094A4 + + thumb_func_start sub_081094E4 +sub_081094E4: @ 0x081094E4 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #1 + bl InitSpritePosToAnimAttacker + ldr r5, _08109520 + ldrb r0, [r5] + movs r1, #2 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x30] + ldrb r0, [r5] + movs r1, #3 + bl GetBattlerSpriteCoord + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r4, #0x32] + ldr r1, _08109524 + ldrh r0, [r1, #4] + strh r0, [r4, #0x34] + ldrh r0, [r1, #6] + strh r0, [r4, #0x36] + ldr r0, _08109528 + str r0, [r4, #0x1c] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08109520: .4byte 0x020380D7 +_08109524: .4byte 0x020380BE +_08109528: .4byte 0x0810952D + thumb_func_end sub_081094E4 + + thumb_func_start sub_0810952C +sub_0810952C: @ 0x0810952C + push {r4, r5, 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, r0 + movs r2, #0x34 + ldrsh r1, [r4, r2] + bl __divsi3 + strh r0, [r4, #0x24] + movs r1, #0x2e + ldrsh r0, [r4, r1] + muls r0, r5, r0 + movs r2, #0x34 + ldrsh r1, [r4, r2] + bl __divsi3 + strh r0, [r4, #0x26] + ldrh r0, [r4, #0x38] + adds r0, #1 + strh r0, [r4, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x36 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _08109584 + movs r0, #0 + strh r0, [r4, #0x38] + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r5, #0 + bl sub_081095A4 +_08109584: + movs r0, #0x34 + ldrsh r1, [r4, r0] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _08109596 + adds r0, r4, #0 + bl DestroyAnimSprite +_08109596: + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end sub_0810952C + + thumb_func_start sub_081095A4 +sub_081095A4: @ 0x081095A4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + adds r4, r1, #0 + adds r5, r2, #0 + movs r2, #0x2e + ldrsh r1, [r0, r2] + lsrs r2, r1, #0x1f + adds r1, r1, r2 + lsls r1, r1, #0xf + lsrs r1, r1, #0x10 + str r1, [sp] + ldrh r1, [r0, #0x24] + ldrh r3, [r0, #0x20] + adds r1, r1, r3 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r8, r1 + ldrh r1, [r0, #0x26] + ldrh r0, [r0, #0x22] + adds r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sl, r1 + bl Random2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __umodsi3 + adds r0, r5, r0 + subs r0, #5 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + bl Random2 + rsbs r4, r4, #0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xa + bl __umodsi3 + adds r4, r4, r0 + subs r4, #5 + lsls r4, r4, #0x10 + lsrs r7, r4, #0x10 + movs r6, #0 + mov r0, r8 + lsls r0, r0, #0x10 + mov r8, r0 + mov r1, sl + lsls r1, r1, #0x10 + str r1, [sp, #0xc] + ldr r2, [sp] + lsls r2, r2, #0x10 + str r2, [sp, #0x10] + asrs r1, r1, #0x10 + lsls r0, r7, #0x10 + asrs r5, r0, #0x10 + str r0, [sp, #0x14] + rsbs r3, r5, #0 + str r3, [sp, #4] + asrs r0, r2, #0x10 + adds r1, r1, r0 + lsls r1, r1, #0x10 + mov sl, r1 +_08109632: + ldr r0, _08109674 + mov r2, r8 + asrs r1, r2, #0x10 + mov r3, sl + asrs r2, r3, #0x10 + movs r3, #0x82 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _08109678 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r4, r0, r1 + movs r0, #0x14 + strh r0, [r4, #0x2e] + mov r0, sb + strh r0, [r4, #0x30] + ldr r0, _0810967C + ldrb r0, [r0] + bl GetBattlerSpriteSubpriority + subs r0, #1 + adds r1, r4, #0 + adds r1, #0x43 + strb r0, [r1] + cmp r5, #0 + bge _08109680 + mov r1, sp + ldrh r1, [r1, #4] + strh r1, [r4, #0x32] + b _08109682 + .align 2, 0 +_08109674: .4byte 0x08570EF4 +_08109678: .4byte 0x020205AC +_0810967C: .4byte 0x020380D6 +_08109680: + strh r7, [r4, #0x32] +_08109682: + lsls r0, r6, #0x10 + movs r2, #0x80 + lsls r2, r2, #9 + adds r0, r0, r2 + lsrs r6, r0, #0x10 + cmp r0, #0 + ble _08109632 + movs r6, #0 + ldr r3, [sp, #0xc] + asrs r1, r3, #0x10 + ldr r0, [sp, #0x14] + asrs r5, r0, #0x10 + rsbs r2, r5, #0 + str r2, [sp, #8] + ldr r3, [sp, #0x10] + asrs r0, r3, #0x10 + subs r1, r1, r0 + lsls r1, r1, #0x10 + mov sl, r1 +_081096A8: + ldr r0, _081096EC + mov r2, r8 + asrs r1, r2, #0x10 + mov r3, sl + asrs r2, r3, #0x10 + movs r3, #0x82 + bl CreateSprite + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + ldr r1, _081096F0 + lsls r0, r2, #4 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r4, r0, r1 + movs r0, #0x14 + strh r0, [r4, #0x2e] + mov r0, sb + strh r0, [r4, #0x30] + ldr r0, _081096F4 + ldrb r0, [r0] + bl GetBattlerSpriteSubpriority + subs r0, #1 + adds r1, r4, #0 + adds r1, #0x43 + strb r0, [r1] + cmp r5, #0 + ble _081096F8 + mov r1, sp + ldrh r1, [r1, #8] + strh r1, [r4, #0x32] + b _081096FA + .align 2, 0 +_081096EC: .4byte 0x08570EF4 +_081096F0: .4byte 0x020205AC +_081096F4: .4byte 0x020380D6 +_081096F8: + strh r7, [r4, #0x32] +_081096FA: + lsls r0, r6, #0x10 + movs r2, #0x80 + lsls r2, r2, #9 + adds r0, r0, r2 + lsrs r6, r0, #0x10 + cmp r0, #0 + ble _081096A8 + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + thumb_func_end sub_081095A4 + diff --git a/asm/wild_encounter.s b/asm/wild_encounter.s new file mode 100644 index 0000000..94250d6 --- /dev/null +++ b/asm/wild_encounter.s @@ -0,0 +1,2437 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start DisableWildEncounters +DisableWildEncounters: @ 0x080B4010 + ldr r1, _080B4018 + strb r0, [r1] + bx lr + .align 2, 0 +_080B4018: .4byte 0x020388A0 + thumb_func_end DisableWildEncounters + + thumb_func_start GetRoute119WaterTileNum +GetRoute119WaterTileNum: @ 0x080B401C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp, #4] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r3, _080B40A4 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r2, r1, #1 + adds r2, r2, r3 + adds r0, r1, #1 + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + mov sb, r0 + adds r1, #2 + lsls r1, r1, #1 + adds r1, r1, r3 + ldrh r6, [r1] + ldrh r5, [r2] + cmp r5, sb + bhi _080B40C6 + ldr r0, _080B40A8 + mov sl, r0 +_080B405E: + movs r4, #0 + mov r1, sl + ldr r0, [r1] + ldr r0, [r0] + cmp r4, r0 + bge _080B40BC + ldr r1, [sp] + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + mov r8, r0 + ldr r1, [sp, #4] + lsls r0, r1, #0x10 + asrs r7, r0, #0x10 +_080B4078: + adds r0, r4, #7 + adds r1, r5, #7 + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsSurfableAndNotWaterfall + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080B40AC + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r8, r4 + bne _080B40AC + cmp r7, r5 + bne _080B40AC + adds r0, r6, #0 + b _080B40CC + .align 2, 0 +_080B40A4: .4byte 0x0852E728 +_080B40A8: .4byte 0x02036FB8 +_080B40AC: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + mov r1, sl + ldr r0, [r1] + ldr r0, [r0] + cmp r4, r0 + blt _080B4078 +_080B40BC: + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, sb + bls _080B405E +_080B40C6: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_080B40CC: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end GetRoute119WaterTileNum + + thumb_func_start CheckFeebas +CheckFeebas: @ 0x080B40DC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x10 + movs r7, #0 + ldr r0, _080B4154 + ldr r0, [r0] + ldrh r1, [r0, #4] + movs r0, #0x88 + lsls r0, r0, #6 + cmp r1, r0 + bne _080B41D2 + add r5, sp, #0xc + mov r4, sp + adds r4, #0xe + adds r0, r5, #0 + adds r1, r4, #0 + bl GetXYCoordsOneStepInFrontOfPlayer + ldrh r0, [r5] + subs r0, #7 + strh r0, [r5] + ldrh r0, [r4] + subs r0, #7 + strh r0, [r4] + movs r0, #0 + ldrsh r1, [r4, r0] + ldr r0, _080B4158 + mov sb, r5 + mov r8, r4 + ldrh r2, [r0, #6] + cmp r1, r2 + blt _080B4128 + ldrh r3, [r0, #8] + cmp r1, r3 + bgt _080B4128 + movs r7, #1 +_080B4128: + mov r2, r8 + movs r3, #0 + ldrsh r1, [r2, r3] + ldrh r2, [r0, #0xc] + cmp r1, r2 + blt _080B413C + ldrh r0, [r0, #0xe] + cmp r1, r0 + bgt _080B413C + movs r7, #2 +_080B413C: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x31 + bls _080B4160 + b _080B41D2 + .align 2, 0 +_080B4154: .4byte 0x03005AEC +_080B4158: .4byte 0x0852E728 +_080B415C: + movs r0, #1 + b _080B41D4 +_080B4160: + ldr r0, _080B41E4 + ldr r0, [r0] + ldr r3, _080B41E8 + adds r0, r0, r3 + ldrh r0, [r0] + bl FeebasSeedRng + movs r5, #0 + ldr r6, _080B41EC +_080B4172: + bl FeebasRandom + lsls r1, r5, #1 + mov r2, sp + adds r4, r2, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r6, #0 + bl __umodsi3 + strh r0, [r4] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080B4190 + strh r6, [r4] +_080B4190: + ldrh r0, [r4] + subs r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #2 + bls _080B41A2 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_080B41A2: + cmp r5, #6 + bne _080B4172 + mov r3, sb + movs r1, #0 + ldrsh r0, [r3, r1] + mov r2, r8 + movs r3, #0 + ldrsh r1, [r2, r3] + adds r2, r7, #0 + bl GetRoute119WaterTileNum + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + movs r5, #0 +_080B41BE: + lsls r0, r5, #1 + add r0, sp + ldrh r0, [r0] + cmp r1, r0 + beq _080B415C + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #5 + bls _080B41BE +_080B41D2: + movs r0, #0 +_080B41D4: + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080B41E4: .4byte 0x03005AEC +_080B41E8: .4byte 0x00002E6A +_080B41EC: .4byte 0x000001BF + thumb_func_end CheckFeebas + + thumb_func_start FeebasRandom +FeebasRandom: @ 0x080B41F0 + ldr r2, _080B4204 + ldr r1, [r2] + ldr r0, _080B4208 + muls r0, r1, r0 + ldr r1, _080B420C + adds r0, r0, r1 + str r0, [r2] + lsrs r0, r0, #0x10 + bx lr + .align 2, 0 +_080B4204: .4byte 0x020388A4 +_080B4208: .4byte 0x41C64E6D +_080B420C: .4byte 0x00003039 + thumb_func_end FeebasRandom + + thumb_func_start FeebasSeedRng +FeebasSeedRng: @ 0x080B4210 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _080B421C + str r0, [r1] + bx lr + .align 2, 0 +_080B421C: .4byte 0x020388A4 + thumb_func_end FeebasSeedRng + + thumb_func_start ChooseWildMonIndex_Land +ChooseWildMonIndex_Land: @ 0x080B4220 + push {lr} + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x13 + bhi _080B423C + movs r0, #0 + b _080B42D6 +_080B423C: + adds r0, r1, #0 + subs r0, #0x14 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x13 + bhi _080B424C + movs r0, #1 + b _080B42D6 +_080B424C: + adds r0, r1, #0 + subs r0, #0x28 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #9 + bhi _080B425C + movs r0, #2 + b _080B42D6 +_080B425C: + adds r0, r1, #0 + subs r0, #0x32 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #9 + bhi _080B426C + movs r0, #3 + b _080B42D6 +_080B426C: + adds r0, r1, #0 + subs r0, #0x3c + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #9 + bhi _080B427C + movs r0, #4 + b _080B42D6 +_080B427C: + adds r0, r1, #0 + subs r0, #0x46 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #9 + bhi _080B428C + movs r0, #5 + b _080B42D6 +_080B428C: + adds r0, r1, #0 + subs r0, #0x50 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _080B429C + movs r0, #6 + b _080B42D6 +_080B429C: + adds r0, r1, #0 + subs r0, #0x55 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _080B42AC + movs r0, #7 + b _080B42D6 +_080B42AC: + adds r0, r1, #0 + subs r0, #0x5a + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bhi _080B42BC + movs r0, #8 + b _080B42D6 +_080B42BC: + adds r0, r1, #0 + subs r0, #0x5e + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bhi _080B42CC + movs r0, #9 + b _080B42D6 +_080B42CC: + cmp r1, #0x62 + beq _080B42D4 + movs r0, #0xb + b _080B42D6 +_080B42D4: + movs r0, #0xa +_080B42D6: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ChooseWildMonIndex_Land + + thumb_func_start ChooseWildMonIndex_WaterRock +ChooseWildMonIndex_WaterRock: @ 0x080B42DC + push {lr} + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r2, r1, #0 + cmp r1, #0x3b + bhi _080B42FA + movs r0, #0 + b _080B432C +_080B42FA: + adds r0, r1, #0 + subs r0, #0x3c + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1d + bhi _080B430A + movs r0, #1 + b _080B432C +_080B430A: + adds r0, r1, #0 + subs r0, #0x5a + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _080B431A + movs r0, #2 + b _080B432C +_080B431A: + adds r0, r2, #0 + subs r0, #0x5f + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _080B432A + movs r0, #4 + b _080B432C +_080B432A: + movs r0, #3 +_080B432C: + pop {r1} + bx r1 + thumb_func_end ChooseWildMonIndex_WaterRock + + thumb_func_start ChooseWildMonIndex_Fishing +ChooseWildMonIndex_Fishing: @ 0x080B4330 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r6, r4, #0 + movs r5, #0 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r4, #1 + beq _080B436A + cmp r4, #1 + bgt _080B435A + cmp r4, #0 + beq _080B4360 + b _080B43C4 +_080B435A: + cmp r6, #2 + beq _080B438E + b _080B43C4 +_080B4360: + movs r5, #1 + cmp r1, #0x45 + bhi _080B43C4 + movs r5, #0 + b _080B43C4 +_080B436A: + cmp r1, #0x3b + bhi _080B4370 + movs r5, #2 +_080B4370: + adds r0, r1, #0 + subs r0, #0x3c + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x13 + bhi _080B437E + movs r5, #3 +_080B437E: + adds r0, r1, #0 + subs r0, #0x50 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x13 + bhi _080B43C4 + movs r5, #4 + b _080B43C4 +_080B438E: + cmp r1, #0x27 + bhi _080B4394 + movs r5, #5 +_080B4394: + adds r0, r1, #0 + subs r0, #0x28 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x27 + bhi _080B43A2 + movs r5, #6 +_080B43A2: + adds r0, r1, #0 + subs r0, #0x50 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xe + bhi _080B43B0 + movs r5, #7 +_080B43B0: + adds r0, r1, #0 + subs r0, #0x5f + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bhi _080B43BE + movs r5, #8 +_080B43BE: + cmp r1, #0x63 + bne _080B43C4 + movs r5, #9 +_080B43C4: + adds r0, r5, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end ChooseWildMonIndex_Fishing + + thumb_func_start ChooseWildMonLevel +ChooseWildMonLevel: @ 0x080B43CC + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #1] + ldrb r1, [r4] + cmp r0, r1 + blo _080B43DE + ldrb r7, [r4] + adds r6, r0, #0 + b _080B43E2 +_080B43DE: + ldrb r7, [r4, #1] + ldrb r6, [r4] +_080B43E2: + subs r4, r6, r7 + adds r4, #1 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r4, #0 + bl __modsi3 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r5, _080B4434 + adds r0, r5, #0 + movs r1, #6 + bl GetMonData + cmp r0, #0 + bne _080B4442 + adds r0, r5, #0 + bl GetMonAbility + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x37 + beq _080B4420 + cmp r0, #0x48 + beq _080B4420 + cmp r0, #0x2e + bne _080B4442 +_080B4420: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _080B4438 + adds r0, r6, #0 + b _080B4448 + .align 2, 0 +_080B4434: .4byte 0x02024190 +_080B4438: + cmp r4, #0 + beq _080B4442 + subs r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_080B4442: + adds r0, r7, r4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_080B4448: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end ChooseWildMonLevel + + thumb_func_start GetCurrentMapWildMonHeaderId +GetCurrentMapWildMonHeaderId: @ 0x080B4450 + push {r4, r5, r6, lr} + movs r4, #0 + ldr r0, _080B44A0 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #0xff + beq _080B44C4 + ldr r6, _080B44A4 +_080B4460: + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r3, r0, r5 + ldrb r1, [r3] + ldr r0, _080B44A8 + ldr r2, [r0] + movs r0, #4 + ldrsb r0, [r2, r0] + cmp r1, r0 + bne _080B44B0 + ldrb r1, [r3, #1] + movs r0, #5 + ldrsb r0, [r2, r0] + cmp r1, r0 + bne _080B44B0 + ldrh r0, [r2, #4] + cmp r0, r6 + bne _080B449C + ldr r0, _080B44AC + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #8 + bls _080B4496 + movs r0, #0 +_080B4496: + adds r0, r4, r0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_080B449C: + adds r0, r4, #0 + b _080B44C6 + .align 2, 0 +_080B44A0: .4byte 0x0852D9F4 +_080B44A4: .4byte 0x00006A18 +_080B44A8: .4byte 0x03005AEC +_080B44AC: .4byte 0x0000403E +_080B44B0: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r0, [r0] + cmp r0, #0xff + bne _080B4460 +_080B44C4: + ldr r0, _080B44CC +_080B44C6: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080B44CC: .4byte 0x0000FFFF + thumb_func_end GetCurrentMapWildMonHeaderId + + thumb_func_start PickWildMonNature +PickWildMonNature: @ 0x080B44D0 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + bl GetSafariZoneFlag + cmp r0, #1 + bne _080B4566 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x4f + bhi _080B4566 + bl SafariZoneGetActivePokeblock + adds r7, r0, #0 + cmp r7, #0 + beq _080B4566 + movs r5, #0 +_080B44FE: + mov r1, sp + adds r0, r1, r5 + strb r5, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x18 + bls _080B44FE + movs r5, #0 +_080B4510: + adds r1, r5, #1 + lsls r0, r1, #0x18 + lsrs r4, r0, #0x18 + adds r6, r1, #0 + cmp r4, #0x18 + bhi _080B4540 + add r5, sp +_080B451E: + bl Random + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _080B4536 + ldrb r2, [r5] + mov r0, sp + adds r1, r0, r4 + ldrb r0, [r1] + strb r0, [r5] + strb r2, [r1] +_080B4536: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x18 + bls _080B451E +_080B4540: + lsls r0, r6, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x17 + bls _080B4510 + movs r5, #0 +_080B454A: + mov r1, sp + adds r4, r1, r5 + ldrb r0, [r4] + adds r1, r7, #0 + bl sub_08137054 + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _080B45A0 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x18 + bls _080B454A +_080B4566: + ldr r4, _080B459C + adds r0, r4, #0 + movs r1, #6 + bl GetMonData + cmp r0, #0 + bne _080B45A4 + adds r0, r4, #0 + bl GetMonAbility + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1c + bne _080B45A4 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _080B45A4 + adds r0, r4, #0 + movs r1, #0 + bl GetMonData + b _080B45AC + .align 2, 0 +_080B459C: .4byte 0x02024190 +_080B45A0: + ldrb r0, [r4] + b _080B45B6 +_080B45A4: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_080B45AC: + movs r1, #0x19 + bl __umodsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 +_080B45B6: + add sp, #0x1c + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end PickWildMonNature + + thumb_func_start CreateWildMon +CreateWildMon: @ 0x080B45C0 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + bl ZeroEnemyPartyMons + movs r2, #1 + ldr r1, _080B4650 + lsls r0, r6, #3 + subs r0, r0, r6 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #0x10] + cmp r0, #0 + beq _080B45EE + cmp r0, #0 + blt _080B45F0 + cmp r0, #0xff + bgt _080B45F0 + cmp r0, #0xfe + blt _080B45F0 +_080B45EE: + movs r2, #0 +_080B45F0: + cmp r2, #0 + beq _080B4680 + ldr r5, _080B4654 + adds r0, r5, #0 + movs r1, #6 + bl GetMonData + cmp r0, #0 + bne _080B4680 + adds r0, r5, #0 + bl GetMonAbility + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x38 + bne _080B4680 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #3 + bl __umodsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080B4680 + adds r0, r5, #0 + movs r1, #0xb + bl GetMonData + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + movs r1, #0 + bl GetMonData + adds r1, r0, #0 + adds r0, r4, #0 + bl GetGenderFromSpeciesAndPersonality + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0xfe + bne _080B4658 + movs r4, #0 + b _080B465A + .align 2, 0 +_080B4650: .4byte 0x082F0D54 +_080B4654: .4byte 0x02024190 +_080B4658: + movs r4, #0xfe +_080B465A: + bl PickWildMonNature + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080B467C + str r4, [sp] + str r0, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + adds r0, r1, #0 + adds r1, r6, #0 + adds r2, r7, #0 + movs r3, #0x20 + bl CreateMonWithGenderNatureLetter + b _080B4698 + .align 2, 0 +_080B467C: .4byte 0x020243E8 +_080B4680: + bl PickWildMonNature + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _080B46A0 + str r0, [sp] + adds r0, r1, #0 + adds r1, r6, #0 + adds r2, r7, #0 + movs r3, #0x20 + bl CreateMonWithNature +_080B4698: + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080B46A0: .4byte 0x020243E8 + thumb_func_end CreateWildMon + + thumb_func_start TryGenerateWildMon +TryGenerateWildMon: @ 0x080B46A4 + push {r4, r5, r6, lr} + sub sp, #4 + adds r5, r0, #0 + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + adds r4, r3, #0 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + movs r1, #0 + mov r0, sp + strb r1, [r0] + cmp r3, #1 + beq _080B46F8 + cmp r3, #1 + bgt _080B46C8 + cmp r3, #0 + beq _080B46CE + b _080B4712 +_080B46C8: + cmp r4, #2 + beq _080B470A + b _080B4712 +_080B46CE: + ldr r0, [r5, #4] + movs r1, #8 + movs r2, #0x2a + mov r3, sp + bl TryGetAbilityInfluencedWildMonIndex + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B4712 + ldr r0, [r5, #4] + movs r1, #0xd + movs r2, #9 + mov r3, sp + bl TryGetAbilityInfluencedWildMonIndex + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B4712 + bl ChooseWildMonIndex_Land + b _080B470E +_080B46F8: + ldr r0, [r5, #4] + movs r1, #0xd + movs r2, #9 + mov r3, sp + bl TryGetAbilityInfluencedWildMonIndex + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B4712 +_080B470A: + bl ChooseWildMonIndex_WaterRock +_080B470E: + mov r1, sp + strb r0, [r1] +_080B4712: + mov r0, sp + ldrb r1, [r0] + lsls r1, r1, #2 + ldr r0, [r5, #4] + adds r0, r0, r1 + bl ChooseWildMonLevel + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #1 + ands r0, r6 + cmp r0, #0 + beq _080B4738 + adds r0, r4, #0 + bl IsWildLevelAllowedByRepel + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B4758 +_080B4738: + ldr r0, _080B475C + ldrh r1, [r0, #0x12] + movs r0, #0xb3 + lsls r0, r0, #1 + cmp r1, r0 + beq _080B4760 + movs r0, #2 + ands r0, r6 + cmp r0, #0 + beq _080B4760 + adds r0, r4, #0 + bl IsAbilityAllowingEncounter + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B4760 +_080B4758: + movs r0, #0 + b _080B4774 + .align 2, 0 +_080B475C: .4byte 0x02036FB8 +_080B4760: + mov r0, sp + ldrb r0, [r0] + ldr r1, [r5, #4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0, #2] + adds r1, r4, #0 + bl CreateWildMon + movs r0, #1 +_080B4774: + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end TryGenerateWildMon + + thumb_func_start GenerateFishingWildMon +GenerateFishingWildMon: @ 0x080B477C + push {r4, r5, lr} + adds r5, r0, #0 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + bl ChooseWildMonIndex_Fishing + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x16 + ldr r0, [r5, #4] + adds r0, r0, r4 + bl ChooseWildMonLevel + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, [r5, #4] + adds r0, r4, r0 + ldrh r0, [r0, #2] + bl CreateWildMon + ldr r0, [r5, #4] + adds r4, r4, r0 + ldrh r0, [r4, #2] + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GenerateFishingWildMon + + thumb_func_start SetUpMassOutbreakEncounter +SetUpMassOutbreakEncounter: @ 0x080B47B4 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _080B47E4 + ldr r0, _080B47DC + ldr r0, [r0] + ldr r1, _080B47E0 + adds r0, r0, r1 + ldrb r0, [r0] + bl IsWildLevelAllowedByRepel + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B47E4 + movs r0, #0 + b _080B481E + .align 2, 0 +_080B47DC: .4byte 0x03005AEC +_080B47E0: .4byte 0x00002B94 +_080B47E4: + ldr r0, _080B4824 + ldr r1, [r0] + ldr r2, _080B4828 + adds r0, r1, r2 + ldrh r0, [r0] + adds r2, #4 + adds r1, r1, r2 + ldrb r1, [r1] + bl CreateWildMon + movs r4, #0 +_080B47FA: + ldr r0, _080B4824 + ldr r0, [r0] + lsls r1, r4, #1 + ldr r2, _080B482C + adds r0, r0, r2 + adds r0, r0, r1 + ldrh r1, [r0] + lsls r2, r4, #0x18 + lsrs r2, r2, #0x18 + ldr r0, _080B4830 + bl SetMonMoveSlot + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #3 + bls _080B47FA + movs r0, #1 +_080B481E: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080B4824: .4byte 0x03005AEC +_080B4828: .4byte 0x00002B90 +_080B482C: .4byte 0x00002B98 +_080B4830: .4byte 0x020243E8 + thumb_func_end SetUpMassOutbreakEncounter + + thumb_func_start DoMassOutbreakEncounterTest +DoMassOutbreakEncounterTest: @ 0x080B4834 + push {r4, lr} + ldr r4, _080B4884 + ldr r2, [r4] + ldr r1, _080B4888 + adds r0, r2, r1 + ldrh r0, [r0] + cmp r0, #0 + beq _080B4894 + movs r1, #5 + ldrsb r1, [r2, r1] + ldr r3, _080B488C + adds r0, r2, r3 + ldrb r0, [r0] + cmp r1, r0 + bne _080B4894 + movs r1, #4 + ldrsb r1, [r2, r1] + adds r3, #1 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r1, r0 + bne _080B4894 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + ldr r1, [r4] + ldr r2, _080B4890 + adds r1, r1, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r1] + cmp r0, r1 + bhs _080B4894 + movs r0, #1 + b _080B4896 + .align 2, 0 +_080B4884: .4byte 0x03005AEC +_080B4888: .4byte 0x00002B90 +_080B488C: .4byte 0x00002B92 +_080B4890: .4byte 0x00002BA1 +_080B4894: + movs r0, #0 +_080B4896: + pop {r4} + pop {r1} + bx r1 + thumb_func_end DoMassOutbreakEncounterTest + + thumb_func_start DoWildEncounterRateDiceRoll +DoWildEncounterRateDiceRoll: @ 0x080B489C + push {r4, lr} + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0xb4 + lsls r1, r1, #4 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r4 + blo _080B48C0 + movs r0, #0 + b _080B48C2 +_080B48C0: + movs r0, #1 +_080B48C2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end DoWildEncounterRateDiceRoll + + thumb_func_start DoWildEncounterRateTest +DoWildEncounterRateTest: @ 0x080B48C8 + push {r4, lr} + sub sp, #4 + str r0, [sp] + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + lsls r0, r0, #4 + str r0, [sp] + movs r0, #6 + bl TestPlayerAvatarFlags + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B48F2 + ldr r1, [sp] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #4 + movs r1, #0x64 + bl __udivsi3 + str r0, [sp] +_080B48F2: + mov r0, sp + bl ApplyFluteEncounterRateMod + mov r0, sp + bl ApplyCleanseTagEncounterRateMod + cmp r4, #0 + bne _080B496E + ldr r4, _080B4934 + adds r0, r4, #0 + movs r1, #6 + bl GetMonData + cmp r0, #0 + bne _080B496E + adds r0, r4, #0 + bl GetMonAbility + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080B4940 + ldr r0, _080B4938 + ldrh r1, [r0, #0x12] + ldr r0, _080B493C + cmp r1, r0 + bne _080B4968 + ldr r1, [sp] + lsls r0, r1, #1 + adds r0, r0, r1 + lsrs r0, r0, #2 + b _080B496C + .align 2, 0 +_080B4934: .4byte 0x02024190 +_080B4938: .4byte 0x02036FB8 +_080B493C: .4byte 0x00000169 +_080B4940: + cmp r0, #0x23 + bne _080B494A + ldr r0, [sp] + lsls r0, r0, #1 + b _080B496C +_080B494A: + cmp r0, #0x49 + beq _080B4968 + cmp r0, #0x47 + bne _080B4958 + ldr r0, [sp] + lsls r0, r0, #1 + b _080B496C +_080B4958: + cmp r0, #8 + bne _080B496E + ldr r0, _080B4990 + ldr r0, [r0] + adds r0, #0x2e + ldrb r0, [r0] + cmp r0, #8 + bne _080B496E +_080B4968: + ldr r0, [sp] + lsrs r0, r0, #1 +_080B496C: + str r0, [sp] +_080B496E: + ldr r0, [sp] + movs r1, #0xb4 + lsls r1, r1, #4 + cmp r0, r1 + bls _080B497A + str r1, [sp] +_080B497A: + ldr r0, [sp] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl DoWildEncounterRateDiceRoll + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + add sp, #4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080B4990: .4byte 0x03005AEC + thumb_func_end DoWildEncounterRateTest + + thumb_func_start DoGlobalWildEncounterDiceRoll +DoGlobalWildEncounterDiceRoll: @ 0x080B4994 + push {lr} + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x3b + bhi _080B49B0 + movs r0, #1 + b _080B49B2 +_080B49B0: + movs r0, #0 +_080B49B2: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end DoGlobalWildEncounterDiceRoll + + thumb_func_start AreLegendariesInSootopolisPreventingEncounters +AreLegendariesInSootopolisPreventingEncounters: @ 0x080B49B8 + push {lr} + ldr r0, _080B49D4 + ldr r0, [r0] + ldrh r1, [r0, #4] + movs r0, #0xe0 + lsls r0, r0, #3 + cmp r1, r0 + bne _080B49D8 + movs r0, #0x53 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _080B49DA + .align 2, 0 +_080B49D4: .4byte 0x03005AEC +_080B49D8: + movs r0, #0 +_080B49DA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end AreLegendariesInSootopolisPreventingEncounters + + thumb_func_start StandardWildEncounter +StandardWildEncounter: @ 0x080B49E0 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + mov sb, r6 + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + mov r8, r7 + ldr r0, _080B4A78 + ldrb r0, [r0] + cmp r0, #1 + bne _080B49FE + b _080B4C56 +_080B49FE: + bl GetCurrentMapWildMonHeaderId + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, _080B4A7C + cmp r5, r0 + bne _080B4AF4 + ldr r0, _080B4A80 + ldrh r1, [r0, #0x12] + movs r0, #0xb3 + lsls r0, r0, #1 + cmp r1, r0 + bne _080B4A88 + bl GetBattlePikeWildMonHeaderId + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r7, r6 + beq _080B4A30 + bl DoGlobalWildEncounterDiceRoll + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B4A30 + b _080B4C56 +_080B4A30: + ldr r1, _080B4A84 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r1, #4 + adds r4, r0, r1 + ldr r0, [r4] + ldrb r0, [r0] + movs r1, #0 + bl DoWildEncounterRateTest + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080B4A50 + b _080B4C56 +_080B4A50: + ldr r0, [r4] + movs r1, #0 + movs r2, #2 + bl TryGenerateWildMon + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080B4A64 + b _080B4C56 +_080B4A64: + movs r0, #1 + bl TryGenerateBattlePikeWildMon + cmp r0, #0 + bne _080B4A70 + b _080B4C56 +_080B4A70: + bl BattleSetup_StartBattlePikeWildBattle + movs r0, #1 + b _080B4C58 + .align 2, 0 +_080B4A78: .4byte 0x020388A0 +_080B4A7C: .4byte 0x0000FFFF +_080B4A80: .4byte 0x02036FB8 +_080B4A84: .4byte 0x0852E6C0 +_080B4A88: + ldr r0, _080B4AE4 + cmp r1, r0 + beq _080B4A90 + b _080B4C56 +_080B4A90: + ldr r0, _080B4AE8 + ldr r0, [r0] + ldr r1, _080B4AEC + adds r0, r0, r1 + ldrh r5, [r0] + cmp r7, r6 + beq _080B4AAA + bl DoGlobalWildEncounterDiceRoll + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B4AAA + b _080B4C56 +_080B4AAA: + ldr r1, _080B4AF0 + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r1, #4 + adds r4, r0, r1 + ldr r0, [r4] + ldrb r0, [r0] + movs r1, #0 + bl DoWildEncounterRateTest + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080B4ACA + b _080B4C56 +_080B4ACA: + ldr r0, [r4] + movs r1, #0 + movs r2, #2 + bl TryGenerateWildMon + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080B4ADE + b _080B4C56 +_080B4ADE: + bl GenerateBattlePyramidWildMon + b _080B4C4E + .align 2, 0 +_080B4AE4: .4byte 0x00000169 +_080B4AE8: .4byte 0x03005AF0 +_080B4AEC: .4byte 0x00000CB2 +_080B4AF0: .4byte 0x0852E540 +_080B4AF4: + lsls r0, r6, #0x18 + lsrs r4, r0, #0x18 + adds r0, r4, #0 + bl MetatileBehavior_IsLandWildEncounter + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080B4B94 + ldr r1, _080B4B90 + lsls r2, r5, #2 + adds r0, r2, r5 + lsls r0, r0, #2 + adds r1, #4 + adds r0, r0, r1 + ldr r0, [r0] + adds r4, r2, #0 + cmp r0, #0 + bne _080B4B1C + b _080B4C56 +_080B4B1C: + cmp r7, r6 + beq _080B4B2C + bl DoGlobalWildEncounterDiceRoll + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B4B2C + b _080B4C56 +_080B4B2C: + ldr r1, _080B4B90 + adds r0, r4, r5 + lsls r0, r0, #2 + adds r1, #4 + adds r0, r0, r1 + ldr r0, [r0] + ldrb r0, [r0] + movs r1, #0 + bl DoWildEncounterRateTest + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080B4B4A + b _080B4C56 +_080B4B4A: + bl TryStartRoamerEncounter + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080B4C12 + bl DoMassOutbreakEncounterTest + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080B4B70 + movs r0, #3 + bl SetUpMassOutbreakEncounter + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080B4C4E +_080B4B70: + ldr r1, _080B4B90 + adds r0, r4, r5 + lsls r0, r0, #2 + adds r1, #4 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0 + movs r2, #3 + bl TryGenerateWildMon + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080B4C4E + b _080B4C56 + .align 2, 0 +_080B4B90: .4byte 0x0852D9F4 +_080B4B94: + adds r0, r4, #0 + bl MetatileBehavior_IsWaterWildEncounter + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080B4BBC + movs r0, #8 + bl TestPlayerAvatarFlags + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B4C56 + adds r0, r4, #0 + bl MetatileBehavior_IsBridge + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080B4C56 +_080B4BBC: + bl AreLegendariesInSootopolisPreventingEncounters + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080B4C56 + ldr r1, _080B4C30 + lsls r2, r5, #2 + adds r0, r2, r5 + lsls r0, r0, #2 + adds r1, #8 + adds r0, r0, r1 + ldr r0, [r0] + adds r4, r2, #0 + cmp r0, #0 + beq _080B4C56 + cmp r8, sb + beq _080B4BEA + bl DoGlobalWildEncounterDiceRoll + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B4C56 +_080B4BEA: + ldr r1, _080B4C30 + adds r0, r4, r5 + lsls r0, r0, #2 + adds r1, #8 + adds r4, r0, r1 + ldr r0, [r4] + ldrb r0, [r0] + movs r1, #0 + bl DoWildEncounterRateTest + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080B4C56 + bl TryStartRoamerEncounter + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080B4C3C +_080B4C12: + ldr r0, _080B4C34 + ldr r0, [r0] + ldr r1, _080B4C38 + adds r0, r0, r1 + ldrb r0, [r0, #0xc] + bl IsWildLevelAllowedByRepel + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B4C56 + bl BattleSetup_StartRoamerBattle + movs r0, #1 + b _080B4C58 + .align 2, 0 +_080B4C30: .4byte 0x0852D9F4 +_080B4C34: .4byte 0x03005AEC +_080B4C38: .4byte 0x000031DC +_080B4C3C: + ldr r0, [r4] + movs r1, #1 + movs r2, #3 + bl TryGenerateWildMon + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080B4C56 +_080B4C4E: + bl BattleSetup_StartWildBattle + movs r0, #1 + b _080B4C58 +_080B4C56: + movs r0, #0 +_080B4C58: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end StandardWildEncounter + + thumb_func_start RockSmashWildEncounter +RockSmashWildEncounter: @ 0x080B4C64 + push {r4, lr} + bl GetCurrentMapWildMonHeaderId + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _080B4CB4 + cmp r2, r0 + beq _080B4CC0 + ldr r1, _080B4CB8 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r1, #0xc + adds r0, r0, r1 + ldr r4, [r0] + cmp r4, #0 + beq _080B4CAC + ldrb r0, [r4] + movs r1, #1 + bl DoWildEncounterRateTest + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080B4CC0 + adds r0, r4, #0 + movs r1, #2 + movs r2, #3 + bl TryGenerateWildMon + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #1 + bne _080B4CC0 + bl BattleSetup_StartWildBattle +_080B4CAC: + ldr r0, _080B4CBC + strh r4, [r0] + b _080B4CC6 + .align 2, 0 +_080B4CB4: .4byte 0x0000FFFF +_080B4CB8: .4byte 0x0852D9F4 +_080B4CBC: .4byte 0x02037290 +_080B4CC0: + ldr r1, _080B4CCC + movs r0, #0 + strh r0, [r1] +_080B4CC6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B4CCC: .4byte 0x02037290 + thumb_func_end RockSmashWildEncounter + + thumb_func_start SweetScentWildEncounter +SweetScentWildEncounter: @ 0x080B4CD0 + push {r4, r5, lr} + sub sp, #4 + mov r5, sp + adds r5, #2 + mov r0, sp + adds r1, r5, #0 + bl PlayerGetDestCoords + bl GetCurrentMapWildMonHeaderId + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, _080B4D30 + cmp r4, r0 + bne _080B4D84 + ldr r0, _080B4D34 + ldrh r1, [r0, #0x12] + movs r0, #0xb3 + lsls r0, r0, #1 + cmp r1, r0 + bne _080B4D3C + bl GetBattlePikeWildMonHeaderId + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r1, _080B4D38 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r1, #4 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0 + movs r2, #0 + bl TryGenerateWildMon + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080B4D22 + b _080B4E4A +_080B4D22: + movs r0, #0 + bl TryGenerateBattlePikeWildMon + bl BattleSetup_StartBattlePikeWildBattle + movs r0, #1 + b _080B4E4C + .align 2, 0 +_080B4D30: .4byte 0x0000FFFF +_080B4D34: .4byte 0x02036FB8 +_080B4D38: .4byte 0x0852E6C0 +_080B4D3C: + ldr r0, _080B4D74 + cmp r1, r0 + beq _080B4D44 + b _080B4E4A +_080B4D44: + ldr r0, _080B4D78 + ldr r0, [r0] + ldr r1, _080B4D7C + adds r0, r0, r1 + ldrh r4, [r0] + ldr r1, _080B4D80 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r1, #4 + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0 + movs r2, #0 + bl TryGenerateWildMon + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080B4E4A + bl GenerateBattlePyramidWildMon + b _080B4E42 + .align 2, 0 +_080B4D74: .4byte 0x00000169 +_080B4D78: .4byte 0x03005AF0 +_080B4D7C: .4byte 0x00000CB2 +_080B4D80: .4byte 0x0852E540 +_080B4D84: + mov r0, sp + movs r2, #0 + ldrsh r0, [r0, r2] + movs r2, #0 + ldrsh r1, [r5, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsLandWildEncounter + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080B4DE4 + ldr r1, _080B4DD4 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r1, #4 + adds r0, r0, r1 + ldr r4, [r0] + cmp r4, #0 + beq _080B4E4A + bl TryStartRoamerEncounter + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080B4E2C + bl DoMassOutbreakEncounterTest + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080B4DD8 + movs r0, #0 + bl SetUpMassOutbreakEncounter + b _080B4E42 + .align 2, 0 +_080B4DD4: .4byte 0x0852D9F4 +_080B4DD8: + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + bl TryGenerateWildMon + b _080B4E42 +_080B4DE4: + mov r0, sp + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0 + ldrsh r1, [r5, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl MetatileBehavior_IsWaterWildEncounter + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080B4E4A + bl AreLegendariesInSootopolisPreventingEncounters + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _080B4E4A + ldr r1, _080B4E34 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r1, #8 + adds r0, r0, r1 + ldr r4, [r0] + cmp r4, #0 + beq _080B4E4A + bl TryStartRoamerEncounter + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080B4E38 +_080B4E2C: + bl BattleSetup_StartRoamerBattle + movs r0, #1 + b _080B4E4C + .align 2, 0 +_080B4E34: .4byte 0x0852D9F4 +_080B4E38: + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl TryGenerateWildMon +_080B4E42: + bl BattleSetup_StartWildBattle + movs r0, #1 + b _080B4E4C +_080B4E4A: + movs r0, #0 +_080B4E4C: + add sp, #4 + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end SweetScentWildEncounter + + thumb_func_start DoesCurrentMapHaveFishingMons +DoesCurrentMapHaveFishingMons: @ 0x080B4E54 + push {lr} + bl GetCurrentMapWildMonHeaderId + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _080B4E7C + cmp r2, r0 + beq _080B4E84 + ldr r0, _080B4E80 + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r0, #0x10 + adds r1, r1, r0 + ldr r0, [r1] + cmp r0, #0 + beq _080B4E84 + movs r0, #1 + b _080B4E86 + .align 2, 0 +_080B4E7C: .4byte 0x0000FFFF +_080B4E80: .4byte 0x0852D9F4 +_080B4E84: + movs r0, #0 +_080B4E86: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end DoesCurrentMapHaveFishingMons + + thumb_func_start FishingWildEncounter +FishingWildEncounter: @ 0x080B4E8C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + bl CheckFeebas + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080B4EBC + ldr r4, _080B4EB8 + adds r0, r4, #0 + bl ChooseWildMonLevel + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrh r4, [r4, #2] + adds r0, r4, #0 + bl CreateWildMon + b _080B4EDC + .align 2, 0 +_080B4EB8: .4byte 0x0852E724 +_080B4EBC: + ldr r4, _080B4EF4 + bl GetCurrentMapWildMonHeaderId + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r4, #0x10 + adds r1, r1, r4 + ldr r0, [r1] + adds r1, r5, #0 + bl GenerateFishingWildMon + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_080B4EDC: + movs r0, #0xc + bl IncrementGameStat + adds r0, r4, #0 + bl SetPokemonAnglerSpecies + bl BattleSetup_StartWildBattle + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B4EF4: .4byte 0x0852D9F4 + thumb_func_end FishingWildEncounter + + thumb_func_start GetLocalWildMon +GetLocalWildMon: @ 0x080B4EF8 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r0, #0 + strb r0, [r6] + bl GetCurrentMapWildMonHeaderId + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldr r0, _080B4F30 + cmp r3, r0 + beq _080B4F2A + ldr r2, _080B4F34 + lsls r1, r3, #2 + adds r1, r1, r3 + lsls r1, r1, #2 + adds r0, r2, #4 + adds r0, r1, r0 + ldr r5, [r0] + adds r2, #8 + adds r1, r1, r2 + ldr r4, [r1] + cmp r5, #0 + bne _080B4F38 + cmp r4, #0 + bne _080B4F3E +_080B4F2A: + movs r0, #0 + b _080B4F7E + .align 2, 0 +_080B4F30: .4byte 0x0000FFFF +_080B4F34: .4byte 0x0852D9F4 +_080B4F38: + cmp r4, #0 + bne _080B4F4C + b _080B4F70 +_080B4F3E: + movs r0, #1 + strb r0, [r6] + bl ChooseWildMonIndex_WaterRock + lsls r0, r0, #0x18 + ldr r1, [r4, #4] + b _080B4F78 +_080B4F4C: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x64 + bl __umodsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x4f + bls _080B4F70 + movs r0, #1 + strb r0, [r6] + bl ChooseWildMonIndex_WaterRock + lsls r0, r0, #0x18 + ldr r1, [r4, #4] + b _080B4F78 +_080B4F70: + bl ChooseWildMonIndex_Land + lsls r0, r0, #0x18 + ldr r1, [r5, #4] +_080B4F78: + lsrs r0, r0, #0x16 + adds r0, r0, r1 + ldrh r0, [r0, #2] +_080B4F7E: + pop {r4, r5, r6} + pop {r1} + bx r1 + thumb_func_end GetLocalWildMon + + thumb_func_start GetLocalWaterMon +GetLocalWaterMon: @ 0x080B4F84 + push {r4, lr} + bl GetCurrentMapWildMonHeaderId + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _080B4FB8 + cmp r2, r0 + beq _080B4FC0 + ldr r1, _080B4FBC + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r1, #8 + adds r0, r0, r1 + ldr r4, [r0] + cmp r4, #0 + beq _080B4FC0 + bl ChooseWildMonIndex_WaterRock + lsls r0, r0, #0x18 + ldr r1, [r4, #4] + lsrs r0, r0, #0x16 + adds r0, r0, r1 + ldrh r0, [r0, #2] + b _080B4FC2 + .align 2, 0 +_080B4FB8: .4byte 0x0000FFFF +_080B4FBC: .4byte 0x0852D9F4 +_080B4FC0: + movs r0, #0 +_080B4FC2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetLocalWaterMon + + thumb_func_start UpdateRepelCounter +UpdateRepelCounter: @ 0x080B4FC8 + push {r4, r5, lr} + bl InBattlePike + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B501C + bl InBattlePyramid + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080B501C + bl InUnionRoom + cmp r0, #1 + beq _080B501C + ldr r5, _080B5014 + adds r0, r5, #0 + bl VarGet + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + beq _080B501C + subs r4, r0, #1 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl VarSet + cmp r4, #0 + bne _080B501C + ldr r0, _080B5018 + bl ScriptContext1_SetupScript + movs r0, #1 + b _080B501E + .align 2, 0 +_080B5014: .4byte 0x00004021 +_080B5018: .4byte 0x08262393 +_080B501C: + movs r0, #0 +_080B501E: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end UpdateRepelCounter + + thumb_func_start IsWildLevelAllowedByRepel +IsWildLevelAllowedByRepel: @ 0x080B5024 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r0, _080B5070 + bl VarGet + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080B506A + movs r5, #0 +_080B5038: + movs r0, #0x64 + adds r1, r5, #0 + muls r1, r0, r1 + ldr r0, _080B5074 + adds r4, r1, r0 + adds r0, r4, #0 + movs r1, #0x39 + bl GetMonData + cmp r0, #0 + beq _080B5078 + adds r0, r4, #0 + movs r1, #0x2d + bl GetMonData + cmp r0, #0 + bne _080B5078 + adds r0, r4, #0 + movs r1, #0x38 + bl GetMonData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r6, r0 + blo _080B5082 +_080B506A: + movs r0, #1 + b _080B5084 + .align 2, 0 +_080B5070: .4byte 0x00004021 +_080B5074: .4byte 0x02024190 +_080B5078: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #5 + bls _080B5038 +_080B5082: + movs r0, #0 +_080B5084: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end IsWildLevelAllowedByRepel + + thumb_func_start IsAbilityAllowingEncounter +IsAbilityAllowingEncounter: @ 0x080B508C + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r4, _080B50DC + adds r0, r4, #0 + movs r1, #6 + bl GetMonData + cmp r0, #0 + bne _080B50E0 + adds r0, r4, #0 + bl GetMonAbility + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x33 + beq _080B50B2 + cmp r0, #0x16 + bne _080B50E0 +_080B50B2: + adds r0, r4, #0 + movs r1, #0x38 + bl GetMonData + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + bls _080B50E0 + subs r0, #5 + cmp r5, r0 + bgt _080B50E0 + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _080B50E0 + movs r0, #0 + b _080B50E2 + .align 2, 0 +_080B50DC: .4byte 0x02024190 +_080B50E0: + movs r0, #1 +_080B50E2: + pop {r4, r5} + pop {r1} + bx r1 + thumb_func_end IsAbilityAllowingEncounter + + thumb_func_start TryGetRandomWildMonIndexByType +TryGetRandomWildMonIndexByType: @ 0x080B50E8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov r7, sp + mov ip, r0 + mov r8, r3 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [r7] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sb, sp + adds r0, r2, #3 + lsrs r0, r0, #2 + lsls r0, r0, #2 + mov r1, sp + subs r1, r1, r0 + mov sp, r1 + mov r5, sp + movs r3, #0 + cmp r3, r2 + bhs _080B512A + movs r1, #0 +_080B511C: + adds r0, r5, r3 + strb r1, [r0] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, r2 + blo _080B511C +_080B512A: + movs r4, #0 + movs r3, #0 + cmp r4, r2 + bhs _080B516A + ldr r6, _080B5178 + mov sl, r6 +_080B5136: + lsls r0, r3, #2 + add r0, ip + ldrh r1, [r0, #2] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + mov r6, sl + adds r1, r0, r6 + ldrb r0, [r1, #6] + ldr r6, [r7] + cmp r0, r6 + beq _080B5154 + ldrb r0, [r1, #7] + cmp r0, r6 + bne _080B5160 +_080B5154: + adds r1, r4, #0 + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r1, r5, r1 + strb r3, [r1] +_080B5160: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, r2 + blo _080B5136 +_080B516A: + cmp r4, #0 + beq _080B5172 + cmp r4, r2 + bne _080B517C +_080B5172: + movs r0, #0 + b _080B5194 + .align 2, 0 +_080B5178: .4byte 0x082F0D54 +_080B517C: + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r4, #0 + bl __modsi3 + adds r0, r5, r0 + ldrb r0, [r0] + mov r1, r8 + strb r0, [r1] + movs r0, #1 +_080B5194: + mov sp, sb + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end TryGetRandomWildMonIndexByType + + thumb_func_start TryGetAbilityInfluencedWildMonIndex +TryGetAbilityInfluencedWildMonIndex: @ 0x080B51A8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + mov r8, r3 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r5, r2, #0x18 + ldr r4, _080B51F8 + adds r0, r4, #0 + movs r1, #6 + bl GetMonData + cmp r0, #0 + bne _080B51FC + adds r0, r4, #0 + bl GetMonAbility + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r5 + bne _080B51FC + bl Random + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _080B51FC + adds r0, r7, #0 + adds r1, r6, #0 + movs r2, #0xc + mov r3, r8 + bl TryGetRandomWildMonIndexByType + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + b _080B51FE + .align 2, 0 +_080B51F8: .4byte 0x02024190 +_080B51FC: + movs r0, #0 +_080B51FE: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + thumb_func_end TryGetAbilityInfluencedWildMonIndex + + thumb_func_start ApplyFluteEncounterRateMod +ApplyFluteEncounterRateMod: @ 0x080B5208 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080B5224 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080B5228 + ldr r0, [r4] + lsrs r1, r0, #1 + adds r0, r0, r1 + b _080B523A + .align 2, 0 +_080B5224: .4byte 0x000008AD +_080B5228: + ldr r0, _080B5244 + bl FlagGet + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080B523C + ldr r0, [r4] + lsrs r0, r0, #1 +_080B523A: + str r0, [r4] +_080B523C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B5244: .4byte 0x000008AE + thumb_func_end ApplyFluteEncounterRateMod + + thumb_func_start ApplyCleanseTagEncounterRateMod +ApplyCleanseTagEncounterRateMod: @ 0x080B5248 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080B526C + movs r1, #0xc + bl GetMonData + cmp r0, #0xbe + bne _080B5264 + ldr r0, [r4] + lsls r0, r0, #1 + movs r1, #3 + bl __udivsi3 + str r0, [r4] +_080B5264: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B526C: .4byte 0x02024190 + thumb_func_end ApplyCleanseTagEncounterRateMod + diff --git a/asm/window.s b/asm/window.s new file mode 100644 index 0000000..0cbd9bf --- /dev/null +++ b/asm/window.s @@ -0,0 +1,2667 @@ +.include "asm/macros.inc" +.include "constants/constants.inc" +.text +.syntax unified + + thumb_func_start nullsub_9 +nullsub_9: @ 0x0800308C + bx lr + .align 2, 0 + thumb_func_end nullsub_9 + + thumb_func_start InitWindows +InitWindows: @ 0x08003090 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r5, r0, #0 + movs r0, #0 + mov r8, r0 + ldr r4, _08003124 +_080030A4: + mov r1, r8 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + bl GetBgTilemapBuffer + cmp r0, #0 + beq _080030B4 + ldr r0, _08003128 +_080030B4: + str r0, [r4] + adds r4, #4 + movs r2, #1 + add r8, r2 + mov r0, r8 + cmp r0, #3 + ble _080030A4 + ldr r0, _0800312C + ldr r2, [r0] + ldr r3, [r0, #4] + ldr r1, _08003130 + movs r0, #0 + movs r4, #0x1f + mov r8, r4 +_080030D0: + str r2, [r1] + str r3, [r1, #4] + str r0, [r1, #8] + adds r1, #0xc + movs r4, #1 + rsbs r4, r4, #0 + add r8, r4 + mov r4, r8 + cmp r4, #0 + bge _080030D0 + movs r0, #0 + mov r8, r0 + movs r1, #0 + str r1, [sp] + ldrb r7, [r5] + cmp r7, #0xff + bne _080030F4 + b _0800322C +_080030F4: + adds r6, r5, #0 + movs r2, #0 + str r2, [sp, #4] +_080030FA: + ldr r0, _08003134 + ldr r0, [r0] + cmp r0, #1 + bne _08003138 + ldrb r1, [r6, #3] + ldrb r0, [r6, #4] + adds r2, r1, #0 + muls r2, r0, r2 + adds r0, r7, #0 + movs r1, #0 + movs r3, #0 + bl DummiedOutFireRedLeafGreenTileAllocFunc + str r0, [sp] + movs r0, #1 + rsbs r0, r0, #0 + ldr r4, [sp] + cmp r4, r0 + bne _08003138 +_08003120: + movs r0, #0 + b _08003234 + .align 2, 0 +_08003124: .4byte 0x03003010 +_08003128: .4byte 0x0800308D +_0800312C: .4byte 0x0829BEB0 +_08003130: .4byte 0x02020004 +_08003134: .4byte 0x03002FF4 +_08003138: + ldr r0, _08003170 + mov sb, r0 + lsls r0, r7, #2 + mov r2, sb + adds r1, r0, r2 + ldr r1, [r1] + mov sl, r0 + cmp r1, #0 + bne _0800319A + adds r0, r7, #0 + movs r1, #8 + bl GetBgAttribute + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, _08003174 + cmp r5, r0 + beq _0800319A + adds r0, r5, #0 + bl AllocZeroed + adds r4, r0, #0 + cmp r4, #0 + bne _08003178 + bl FreeAllWindowBuffers + b _08003120 + .align 2, 0 +_08003170: .4byte 0x03003010 +_08003174: .4byte 0x0000FFFF +_08003178: + movs r1, #0 + mov r3, sb + cmp r1, r5 + bge _0800318C + movs r2, #0 +_08003182: + adds r0, r4, r1 + strb r2, [r0] + adds r1, #1 + cmp r1, r5 + blt _08003182 +_0800318C: + mov r1, sl + adds r0, r1, r3 + str r4, [r0] + adds r0, r7, #0 + adds r1, r4, #0 + bl SetBgTilemapBuffer +_0800319A: + ldrb r1, [r6, #3] + ldrb r0, [r6, #4] + muls r0, r1, r0 + lsls r0, r0, #0x15 + lsrs r0, r0, #0x10 + bl AllocZeroed + adds r4, r0, #0 + cmp r4, #0 + bne _080031DC + adds r0, r7, #0 + bl GetNumActiveWindowsOnBg + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08003120 + ldr r0, _080031D4 + mov r2, sl + adds r5, r2, r0 + ldr r1, [r5] + ldr r0, _080031D8 + cmp r1, r0 + beq _08003120 + adds r0, r1, #0 + bl Free + str r4, [r5] + b _08003120 + .align 2, 0 +_080031D4: .4byte 0x03003010 +_080031D8: .4byte 0x0800308D +_080031DC: + ldr r1, _08003244 + adds r0, r1, #0 + adds r0, #8 + ldr r2, [sp, #4] + adds r0, r2, r0 + str r4, [r0] + adds r2, r2, r1 + ldr r0, [r6] + ldr r1, [r6, #4] + str r0, [r2] + str r1, [r2, #4] + ldr r0, _08003248 + ldr r0, [r0] + cmp r0, #1 + bne _08003212 + mov r4, sp + ldrh r4, [r4] + strh r4, [r2, #6] + ldrb r0, [r6, #3] + ldrb r1, [r6, #4] + adds r2, r0, #0 + muls r2, r1, r2 + adds r0, r7, #0 + ldr r1, [sp] + movs r3, #1 + bl DummiedOutFireRedLeafGreenTileAllocFunc +_08003212: + adds r6, #8 + ldr r0, [sp, #4] + adds r0, #0xc + str r0, [sp, #4] + movs r1, #1 + add r8, r1 + ldrb r7, [r6] + cmp r7, #0xff + beq _0800322C + mov r2, r8 + cmp r2, #0x1f + bgt _0800322C + b _080030FA +_0800322C: + ldr r1, _0800324C + movs r0, #0 + strb r0, [r1] + movs r0, #1 +_08003234: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08003244: .4byte 0x02020004 +_08003248: .4byte 0x03002FF4 +_0800324C: .4byte 0x03003000 + thumb_func_end InitWindows + + thumb_func_start AddWindow +AddWindow: @ 0x08003250 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov r8, r0 + movs r6, #0 + ldr r1, _08003340 + ldrb r0, [r1] + cmp r0, #0xff + beq _08003280 +_08003268: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #0x1f + bhi _08003280 + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0xff + bne _08003268 +_08003280: + cmp r6, #0x20 + beq _0800333A + mov r0, r8 + ldrb r7, [r0] + movs r1, #0 + mov sb, r1 + ldr r0, _08003344 + ldr r0, [r0] + cmp r0, #1 + bne _080032B2 + mov r2, r8 + ldrb r1, [r2, #3] + ldrb r0, [r2, #4] + adds r2, r1, #0 + muls r2, r0, r2 + adds r0, r7, #0 + movs r1, #0 + movs r3, #0 + bl DummiedOutFireRedLeafGreenTileAllocFunc + mov sb, r0 + movs r0, #1 + rsbs r0, r0, #0 + cmp sb, r0 + beq _0800333A +_080032B2: + ldr r3, _08003348 + mov sl, r3 + lsls r0, r7, #2 + adds r1, r0, r3 + ldr r1, [r1] + str r0, [sp] + cmp r1, #0 + bne _08003302 + adds r0, r7, #0 + movs r1, #8 + bl GetBgAttribute + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, _0800334C + cmp r5, r0 + beq _08003302 + adds r0, r5, #0 + bl AllocZeroed + adds r4, r0, #0 + cmp r4, #0 + beq _0800333A + movs r1, #0 + mov r3, sl + cmp r1, r5 + bge _080032F4 + movs r2, #0 +_080032EA: + adds r0, r4, r1 + strb r2, [r0] + adds r1, #1 + cmp r1, r5 + blt _080032EA +_080032F4: + ldr r1, [sp] + adds r0, r1, r3 + str r4, [r0] + adds r0, r7, #0 + adds r1, r4, #0 + bl SetBgTilemapBuffer +_08003302: + mov r2, r8 + ldrb r1, [r2, #3] + ldrb r0, [r2, #4] + muls r0, r1, r0 + lsls r0, r0, #0x15 + lsrs r0, r0, #0x10 + bl AllocZeroed + adds r4, r0, #0 + cmp r4, #0 + bne _08003354 + adds r0, r7, #0 + bl GetNumActiveWindowsOnBg + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0800333A + ldr r0, _08003348 + ldr r3, [sp] + adds r5, r3, r0 + ldr r1, [r5] + ldr r0, _08003350 + cmp r1, r0 + beq _0800333A + adds r0, r1, #0 + bl Free + str r4, [r5] +_0800333A: + movs r0, #0xff + b _08003390 + .align 2, 0 +_08003340: .4byte 0x02020004 +_08003344: .4byte 0x03002FF4 +_08003348: .4byte 0x03003010 +_0800334C: .4byte 0x0000FFFF +_08003350: .4byte 0x0800308D +_08003354: + ldr r2, _080033A0 + lsls r1, r6, #1 + adds r1, r1, r6 + lsls r1, r1, #2 + adds r0, r2, #0 + adds r0, #8 + adds r0, r1, r0 + str r4, [r0] + adds r2, r1, r2 + mov r3, r8 + ldr r0, [r3] + ldr r1, [r3, #4] + str r0, [r2] + str r1, [r2, #4] + ldr r0, _080033A4 + ldr r0, [r0] + cmp r0, #1 + bne _0800338E + mov r0, sb + strh r0, [r2, #6] + ldrb r0, [r2, #3] + ldrb r1, [r2, #4] + adds r2, r0, #0 + muls r2, r1, r2 + adds r0, r7, #0 + mov r1, sb + movs r3, #1 + bl DummiedOutFireRedLeafGreenTileAllocFunc +_0800338E: + adds r0, r6, #0 +_08003390: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080033A0: .4byte 0x02020004 +_080033A4: .4byte 0x03002FF4 + thumb_func_end AddWindow + + thumb_func_start AddWindowWithoutTileMap +AddWindowWithoutTileMap: @ 0x080033A8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r4, #0 + ldr r1, _080033FC + ldrb r0, [r1] + cmp r0, #0xff + beq _080033CE +_080033B6: + adds r0, r4, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x1f + bhi _080033CE + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0xff + bne _080033B6 +_080033CE: + cmp r4, #0x20 + beq _080033F8 + ldrb r6, [r5] + movs r3, #0 + ldr r0, _08003400 + ldr r0, [r0] + cmp r0, #1 + bne _08003404 + ldrb r1, [r5, #3] + ldrb r0, [r5, #4] + adds r2, r1, #0 + muls r2, r0, r2 + adds r0, r6, #0 + movs r1, #0 + bl DummiedOutFireRedLeafGreenTileAllocFunc + adds r3, r0, #0 + movs r0, #1 + rsbs r0, r0, #0 + cmp r3, r0 + bne _08003404 +_080033F8: + movs r0, #0xff + b _08003434 + .align 2, 0 +_080033FC: .4byte 0x02020004 +_08003400: .4byte 0x03002FF4 +_08003404: + ldr r1, _0800343C + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r2, r0, r1 + ldr r0, [r5] + ldr r1, [r5, #4] + str r0, [r2] + str r1, [r2, #4] + ldr r0, _08003440 + ldr r0, [r0] + cmp r0, #1 + bne _08003432 + strh r3, [r2, #6] + ldrb r0, [r2, #3] + ldrb r1, [r2, #4] + adds r2, r0, #0 + muls r2, r1, r2 + adds r0, r6, #0 + adds r1, r3, #0 + movs r3, #1 + bl DummiedOutFireRedLeafGreenTileAllocFunc +_08003432: + adds r0, r4, #0 +_08003434: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_0800343C: .4byte 0x02020004 +_08003440: .4byte 0x03002FF4 + thumb_func_end AddWindowWithoutTileMap + + thumb_func_start RemoveWindow +RemoveWindow: @ 0x08003444 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r1, _080034C0 + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r4, r0, r1 + ldrb r3, [r4] + adds r7, r3, #0 + ldr r0, _080034C4 + ldr r0, [r0] + cmp r0, #1 + bne _08003470 + ldrh r1, [r4, #6] + ldrb r2, [r4, #3] + ldrb r0, [r4, #4] + muls r2, r0, r2 + adds r0, r3, #0 + movs r3, #2 + bl DummiedOutFireRedLeafGreenTileAllocFunc +_08003470: + ldr r0, _080034C8 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [r4] + str r1, [r4, #4] + adds r0, r7, #0 + bl GetNumActiveWindowsOnBg + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _0800349E + ldr r0, _080034CC + lsls r1, r7, #2 + adds r4, r1, r0 + ldr r1, [r4] + ldr r0, _080034D0 + cmp r1, r0 + beq _0800349E + adds r0, r1, #0 + bl Free + str r5, [r4] +_0800349E: + ldr r1, _080034C0 + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r1, #8 + adds r4, r0, r1 + ldr r0, [r4] + cmp r0, #0 + beq _080034B8 + bl Free + movs r0, #0 + str r0, [r4] +_080034B8: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080034C0: .4byte 0x02020004 +_080034C4: .4byte 0x03002FF4 +_080034C8: .4byte 0x0829BEB0 +_080034CC: .4byte 0x03003010 +_080034D0: .4byte 0x0800308D + thumb_func_end RemoveWindow + + thumb_func_start FreeAllWindowBuffers +FreeAllWindowBuffers: @ 0x080034D4 + push {r4, r5, r6, lr} + ldr r4, _0800351C + movs r5, #3 +_080034DA: + ldr r1, [r4] + cmp r1, #0 + beq _080034F0 + ldr r0, _08003520 + cmp r1, r0 + beq _080034F0 + adds r0, r1, #0 + bl Free + movs r0, #0 + str r0, [r4] +_080034F0: + adds r4, #4 + subs r5, #1 + cmp r5, #0 + bge _080034DA + ldr r0, _08003524 + adds r4, r0, #0 + adds r4, #8 + movs r6, #0 + movs r5, #0x1f +_08003502: + ldr r0, [r4] + cmp r0, #0 + beq _0800350E + bl Free + str r6, [r4] +_0800350E: + adds r4, #0xc + subs r5, #1 + cmp r5, #0 + bge _08003502 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0800351C: .4byte 0x03003010 +_08003520: .4byte 0x0800308D +_08003524: .4byte 0x02020004 + thumb_func_end FreeAllWindowBuffers + + thumb_func_start CopyWindowToVram +CopyWindowToVram: @ 0x08003528 + push {r4, r5, r6, lr} + sub sp, #0xc + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + adds r5, r3, #0 + ldr r2, _08003560 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + mov r0, sp + adds r1, r1, r2 + ldm r1!, {r2, r4, r6} + stm r0!, {r2, r4, r6} + mov r0, sp + ldrb r1, [r0, #3] + ldrb r0, [r0, #4] + muls r0, r1, r0 + lsls r0, r0, #0x15 + lsrs r4, r0, #0x10 + cmp r3, #2 + beq _08003574 + cmp r3, #2 + bgt _08003564 + cmp r3, #1 + beq _0800356A + b _0800359E + .align 2, 0 +_08003560: .4byte 0x02020004 +_08003564: + cmp r5, #3 + beq _08003586 + b _0800359E +_0800356A: + mov r0, sp + ldrb r0, [r0] + bl CopyBgTilemapBufferToVram + b _0800359E +_08003574: + mov r0, sp + ldrb r0, [r0] + ldr r1, [sp, #8] + mov r2, sp + ldrh r3, [r2, #6] + adds r2, r4, #0 + bl LoadBgTiles + b _0800359E +_08003586: + mov r0, sp + ldrb r0, [r0] + ldr r1, [sp, #8] + mov r2, sp + ldrh r3, [r2, #6] + adds r2, r4, #0 + bl LoadBgTiles + mov r0, sp + ldrb r0, [r0] + bl CopyBgTilemapBufferToVram +_0800359E: + add sp, #0xc + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CopyWindowToVram + + thumb_func_start CopyWindowRectToVram +CopyWindowRectToVram: @ 0x080035A8 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + adds r6, r0, #0 + adds r5, r1, #0 + adds r4, r2, #0 + mov ip, r3 + ldr r3, [sp, #0x24] + ldr r0, [sp, #0x20] + cmp r0, #0 + beq _08003652 + cmp r3, #0 + beq _08003652 + ldr r2, _080035FC + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r0, r0, #2 + mov r1, sp + adds r0, r0, r2 + ldm r0!, {r2, r6, r7} + stm r1!, {r2, r6, r7} + subs r2, r3, #1 + mov r0, sp + ldrb r1, [r0, #3] + adds r3, r2, #0 + muls r3, r1, r3 + subs r0, r1, r4 + adds r3, r3, r0 + ldr r2, [sp, #0x20] + adds r0, r4, r2 + subs r0, r1, r0 + subs r3, r3, r0 + lsls r3, r3, #5 + mov r0, ip + muls r0, r1, r0 + adds r4, r0, r4 + cmp r5, #2 + beq _08003610 + cmp r5, #2 + bhi _08003600 + cmp r5, #1 + beq _08003606 + b _08003652 + .align 2, 0 +_080035FC: .4byte 0x02020004 +_08003600: + cmp r5, #3 + beq _0800362E + b _08003652 +_08003606: + mov r0, sp + ldrb r0, [r0] + bl CopyBgTilemapBufferToVram + b _08003652 +_08003610: + mov r0, sp + ldrb r0, [r0] + lsls r2, r4, #5 + ldr r1, [sp, #8] + adds r1, r1, r2 + lsls r2, r3, #0x10 + lsrs r2, r2, #0x10 + mov r3, sp + ldrh r3, [r3, #6] + adds r3, r3, r4 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + bl LoadBgTiles + b _08003652 +_0800362E: + mov r0, sp + ldrb r0, [r0] + lsls r2, r4, #5 + ldr r1, [sp, #8] + adds r1, r1, r2 + lsls r2, r3, #0x10 + lsrs r2, r2, #0x10 + mov r3, sp + ldrh r3, [r3, #6] + adds r3, r3, r4 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + bl LoadBgTiles + mov r0, sp + ldrb r0, [r0] + bl CopyBgTilemapBufferToVram +_08003652: + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CopyWindowRectToVram + + thumb_func_start PutWindowTilemap +PutWindowTilemap: @ 0x0800365C + push {r4, lr} + sub sp, #0x1c + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080036B8 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + add r0, sp, #0x10 + adds r1, r1, r2 + ldm r1!, {r2, r3, r4} + stm r0!, {r2, r3, r4} + add r0, sp, #0x10 + ldrb r0, [r0] + movs r1, #0xa + bl GetBgAttribute + adds r1, r0, #0 + add r0, sp, #0x10 + ldrh r0, [r0, #6] + adds r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + add r0, sp, #0x10 + ldrb r0, [r0] + add r2, sp, #0x10 + ldrb r2, [r2, #1] + add r3, sp, #0x10 + ldrb r3, [r3, #2] + add r4, sp, #0x10 + ldrb r4, [r4, #3] + str r4, [sp] + add r4, sp, #0x10 + ldrb r4, [r4, #4] + str r4, [sp, #4] + add r4, sp, #0x10 + ldrb r4, [r4, #5] + str r4, [sp, #8] + movs r4, #1 + str r4, [sp, #0xc] + bl WriteSequenceToBgTilemapBuffer + add sp, #0x1c + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080036B8: .4byte 0x02020004 + thumb_func_end PutWindowTilemap + + thumb_func_start PutWindowRectTilemapOverridePalette +PutWindowRectTilemapOverridePalette: @ 0x080036BC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x24 + ldr r4, [sp, #0x44] + ldr r5, [sp, #0x48] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sl, r1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sb, r2 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r3, [sp, #0x1c] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r8, r4 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + str r5, [sp, #0x20] + ldr r2, _08003770 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + add r0, sp, #0x10 + adds r1, r1, r2 + ldm r1!, {r2, r3, r4} + stm r0!, {r2, r3, r4} + add r0, sp, #0x10 + ldrb r0, [r0] + movs r1, #0xa + bl GetBgAttribute + add r2, sp, #0x10 + adds r1, r2, #0 + ldrb r1, [r1, #3] + mov r3, sb + muls r3, r1, r3 + adds r1, r3, #0 + ldrh r2, [r2, #6] + adds r1, r1, r2 + add r1, sl + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + movs r5, #0 + cmp r5, r8 + bge _0800375E + add r4, sp, #0x10 + movs r7, #1 +_0800372A: + ldrb r0, [r4] + ldrb r2, [r4, #1] + add r2, sl + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r3, [r4, #2] + add r3, sb + adds r3, r3, r5 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r1, [sp, #0x1c] + str r1, [sp] + str r7, [sp, #4] + ldr r1, [sp, #0x20] + str r1, [sp, #8] + str r7, [sp, #0xc] + adds r1, r6, #0 + bl WriteSequenceToBgTilemapBuffer + ldrb r0, [r4, #3] + adds r0, r6, r0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r5, #1 + cmp r5, r8 + blt _0800372A +_0800375E: + add sp, #0x24 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08003770: .4byte 0x02020004 + thumb_func_end PutWindowRectTilemapOverridePalette + + thumb_func_start ClearWindowTilemap +ClearWindowTilemap: @ 0x08003774 + push {r4, lr} + sub sp, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _080037BC + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + add r0, sp, #0xc + adds r1, r1, r2 + ldm r1!, {r2, r3, r4} + stm r0!, {r2, r3, r4} + add r0, sp, #0xc + ldrb r0, [r0] + ldr r1, _080037C0 + ldrb r1, [r1] + add r2, sp, #0xc + ldrb r2, [r2, #1] + add r3, sp, #0xc + ldrb r3, [r3, #2] + add r4, sp, #0xc + ldrb r4, [r4, #3] + str r4, [sp] + add r4, sp, #0xc + ldrb r4, [r4, #4] + str r4, [sp, #4] + add r4, sp, #0xc + ldrb r4, [r4, #5] + str r4, [sp, #8] + bl FillBgTilemapBufferRect + add sp, #0x18 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080037BC: .4byte 0x02020004 +_080037C0: .4byte 0x03003000 + thumb_func_end ClearWindowTilemap + + thumb_func_start PutWindowRectTilemap +PutWindowRectTilemap: @ 0x080037C4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + ldr r4, [sp, #0x40] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sl, r1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov sb, r2 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + str r3, [sp, #0x1c] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r8, r4 + ldr r2, _08003870 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + add r0, sp, #0x10 + adds r1, r1, r2 + ldm r1!, {r2, r3, r4} + stm r0!, {r2, r3, r4} + add r0, sp, #0x10 + ldrb r0, [r0] + movs r1, #0xa + bl GetBgAttribute + add r2, sp, #0x10 + adds r1, r2, #0 + ldrb r1, [r1, #3] + mov r3, sb + muls r3, r1, r3 + adds r1, r3, #0 + ldrh r2, [r2, #6] + adds r1, r1, r2 + add r1, sl + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + movs r5, #0 + cmp r5, r8 + bge _0800385E + add r4, sp, #0x10 + movs r7, #1 +_0800382A: + ldrb r0, [r4] + ldrb r2, [r4, #1] + add r2, sl + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldrb r3, [r4, #2] + add r3, sb + adds r3, r3, r5 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r1, [sp, #0x1c] + str r1, [sp] + str r7, [sp, #4] + ldrb r1, [r4, #5] + str r1, [sp, #8] + str r7, [sp, #0xc] + adds r1, r6, #0 + bl WriteSequenceToBgTilemapBuffer + ldrb r0, [r4, #3] + adds r0, r6, r0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r5, #1 + cmp r5, r8 + blt _0800382A +_0800385E: + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08003870: .4byte 0x02020004 + thumb_func_end PutWindowRectTilemap + + thumb_func_start BlitBitmapToWindow +BlitBitmapToWindow: @ 0x08003874 + push {r4, r5, lr} + sub sp, #0x18 + ldr r4, [sp, #0x24] + ldr r5, [sp, #0x28] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + str r4, [sp] + str r5, [sp, #4] + str r2, [sp, #8] + str r3, [sp, #0xc] + str r4, [sp, #0x10] + str r5, [sp, #0x14] + movs r2, #0 + movs r3, #0 + bl BlitBitmapRectToWindow + add sp, #0x18 + pop {r4, r5} + pop {r0} + bx r0 + thumb_func_end BlitBitmapToWindow + + thumb_func_start BlitBitmapRectToWindow +BlitBitmapRectToWindow: @ 0x080038AC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x24 + ldr r4, [sp, #0x44] + ldr r5, [sp, #0x48] + ldr r6, [sp, #0x4c] + mov r8, r6 + ldr r6, [sp, #0x50] + mov sb, r6 + ldr r6, [sp, #0x54] + mov sl, r6 + ldr r6, [sp, #0x58] + mov ip, r6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r4, r4, #0x10 + mov r6, r8 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + mov r8, r6 + mov r6, sb + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + mov sb, r6 + mov r6, sl + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + mov sl, r6 + mov r6, ip + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 + mov ip, r6 + str r1, [sp, #0x14] + ldr r7, _08003960 + lsls r5, r5, #0x10 + ldr r6, _08003964 + lsrs r4, r4, #0x10 + orrs r4, r5 + str r4, [sp, #0x18] + ldr r1, _08003968 + lsls r5, r0, #1 + adds r5, r5, r0 + lsls r5, r5, #2 + adds r0, r1, #0 + adds r0, #8 + adds r0, r5, r0 + ldr r0, [r0] + str r0, [sp, #0x1c] + adds r5, r5, r1 + ldrb r0, [r5, #3] + lsls r0, r0, #3 + add r1, sp, #0x1c + ldr r4, [r1, #4] + ands r4, r7 + orrs r4, r0 + str r4, [r1, #4] + ldrb r0, [r5, #4] + lsls r0, r0, #0x13 + ands r6, r4 + orrs r6, r0 + str r6, [r1, #4] + mov r0, r8 + str r0, [sp] + mov r6, sb + str r6, [sp, #4] + mov r0, sl + str r0, [sp, #8] + mov r6, ip + str r6, [sp, #0xc] + movs r0, #0 + str r0, [sp, #0x10] + add r0, sp, #0x14 + bl BlitBitmapRect4Bit + add sp, #0x24 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08003960: .4byte 0xFFFF0000 +_08003964: .4byte 0x0000FFFF +_08003968: .4byte 0x02020004 + thumb_func_end BlitBitmapRectToWindow + + thumb_func_start BlitBitmapRectToWindowWithColorKey +BlitBitmapRectToWindowWithColorKey: @ 0x0800396C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x28 + ldr r4, [sp, #0x48] + ldr r5, [sp, #0x4c] + ldr r6, [sp, #0x50] + mov r8, r6 + ldr r7, [sp, #0x54] + mov sb, r7 + ldr r6, [sp, #0x58] + mov sl, r6 + ldr r7, [sp, #0x5c] + mov ip, r7 + ldr r6, [sp, #0x60] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r4, r4, #0x10 + mov r7, r8 + lsls r7, r7, #0x10 + lsrs r7, r7, #0x10 + mov r8, r7 + mov r7, sb + lsls r7, r7, #0x10 + lsrs r7, r7, #0x10 + mov sb, r7 + mov r7, sl + lsls r7, r7, #0x10 + lsrs r7, r7, #0x10 + mov sl, r7 + mov r7, ip + lsls r7, r7, #0x10 + lsrs r7, r7, #0x10 + mov ip, r7 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + str r6, [sp, #0x24] + str r1, [sp, #0x14] + lsls r5, r5, #0x10 + ldr r6, _08003A28 + lsrs r4, r4, #0x10 + orrs r4, r5 + str r4, [sp, #0x18] + ldr r1, _08003A2C + lsls r5, r0, #1 + adds r5, r5, r0 + lsls r5, r5, #2 + adds r0, r1, #0 + adds r0, #8 + adds r0, r5, r0 + ldr r0, [r0] + str r0, [sp, #0x1c] + adds r5, r5, r1 + ldrb r0, [r5, #3] + lsls r0, r0, #3 + add r1, sp, #0x1c + ldr r4, [r1, #4] + ldr r7, _08003A30 + ands r4, r7 + orrs r4, r0 + str r4, [r1, #4] + ldrb r0, [r5, #4] + lsls r0, r0, #0x13 + ands r6, r4 + orrs r6, r0 + str r6, [r1, #4] + mov r0, r8 + str r0, [sp] + mov r6, sb + str r6, [sp, #4] + mov r7, sl + str r7, [sp, #8] + mov r0, ip + str r0, [sp, #0xc] + ldr r6, [sp, #0x24] + str r6, [sp, #0x10] + add r0, sp, #0x14 + bl BlitBitmapRect4Bit + add sp, #0x28 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08003A28: .4byte 0x0000FFFF +_08003A2C: .4byte 0x02020004 +_08003A30: .4byte 0xFFFF0000 + thumb_func_end BlitBitmapRectToWindowWithColorKey + + thumb_func_start FillWindowPixelRect +FillWindowPixelRect: @ 0x08003A34 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #0x10 + mov sb, r3 + ldr r3, [sp, #0x28] + ldr r4, [sp, #0x2c] + mov r8, r4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + mov r4, sb + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + mov sb, r4 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + mov r4, r8 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + mov r8, r4 + ldr r5, _08003AB4 + lsls r4, r0, #1 + adds r4, r4, r0 + lsls r4, r4, #2 + adds r0, r5, #0 + adds r0, #8 + adds r0, r4, r0 + ldr r0, [r0] + str r0, [sp, #8] + adds r4, r4, r5 + ldrb r0, [r4, #3] + lsls r0, r0, #3 + ldr r6, _08003AB8 + ldr r5, [sp, #0xc] + ands r5, r6 + orrs r5, r0 + str r5, [sp, #0xc] + ldrb r4, [r4, #4] + lsls r4, r4, #0x13 + ldr r0, _08003ABC + ands r0, r5 + orrs r0, r4 + str r0, [sp, #0xc] + mov r0, r8 + str r0, [sp] + str r1, [sp, #4] + add r0, sp, #8 + adds r1, r2, #0 + mov r2, sb + bl FillBitmapRect4Bit + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08003AB4: .4byte 0x02020004 +_08003AB8: .4byte 0xFFFF0000 +_08003ABC: .4byte 0x0000FFFF + thumb_func_end FillWindowPixelRect + + thumb_func_start CopyToWindowPixelBuffer +CopyToWindowPixelBuffer: @ 0x08003AC0 + push {r4, r5, r6, lr} + adds r6, r1, #0 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r5, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r2, r3, #0x10 + cmp r5, #0 + beq _08003AF4 + ldr r1, _08003AF0 + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r1, #8 + adds r0, r0, r1 + lsls r2, r2, #5 + ldr r1, [r0] + adds r1, r1, r2 + lsrs r2, r5, #0x11 + adds r0, r6, #0 + bl CpuSet + b _08003B0C + .align 2, 0 +_08003AF0: .4byte 0x02020004 +_08003AF4: + ldr r1, _08003B14 + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + adds r1, #8 + adds r0, r0, r1 + lsls r2, r2, #5 + ldr r1, [r0] + adds r1, r1, r2 + adds r0, r6, #0 + bl LZ77UnCompWram +_08003B0C: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08003B14: .4byte 0x02020004 + thumb_func_end CopyToWindowPixelBuffer + + thumb_func_start FillWindowPixelBuffer +FillWindowPixelBuffer: @ 0x08003B18 + push {r4, r5, lr} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r5, _08003B60 + lsls r4, r0, #1 + adds r4, r4, r0 + lsls r4, r4, #2 + adds r0, r4, r5 + ldrb r2, [r0, #3] + ldrb r0, [r0, #4] + muls r2, r0, r2 + lsls r0, r1, #0x18 + lsls r3, r1, #0x10 + orrs r0, r3 + lsls r3, r1, #8 + orrs r0, r3 + orrs r0, r1 + str r0, [sp] + adds r5, #8 + adds r4, r4, r5 + ldr r1, [r4] + lsls r2, r2, #3 + movs r0, #0x80 + lsls r0, r0, #0x11 + orrs r2, r0 + mov r0, sp + bl CpuFastSet + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08003B60: .4byte 0x02020004 + thumb_func_end FillWindowPixelBuffer + + thumb_func_start ScrollWindow +ScrollWindow: @ 0x08003B64 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov r8, r1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + ldr r2, _08003C00 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r4, r1, r2 + adds r2, #8 + adds r1, r1, r2 + ldr r5, [r1] + lsls r7, r3, #0x18 + lsls r0, r3, #0x10 + orrs r7, r0 + lsls r0, r3, #8 + orrs r7, r0 + orrs r7, r3 + ldr r1, [r4] + ldr r2, [r4, #4] + ldrb r3, [r4, #4] + lsrs r0, r1, #0x18 + muls r0, r3, r0 + lsls r6, r0, #5 + lsrs r1, r1, #0x18 + mov ip, r1 + mov r0, r8 + cmp r0, #1 + bne _08003BB8 + b _08003D6E +_08003BB8: + cmp r0, #1 + ble _08003BBE + b _08003F16 +_08003BBE: + cmp r0, #0 + beq _08003BC4 + b _08003F16 +_08003BC4: + movs r4, #0 + cmp r4, r6 + blt _08003BCC + b _08003F16 +_08003BCC: + movs r1, #8 + rsbs r1, r1, #0 + mov sb, r1 + movs r2, #7 + mov r8, r2 + mov sl, r5 +_08003BD8: + ldr r3, [sp] + adds r0, r3, #0 + mov r1, sb + ands r0, r1 + mov r1, ip + muls r1, r0, r1 + adds r0, r3, #0 + mov r2, r8 + ands r0, r2 + orrs r1, r0 + lsls r1, r1, #2 + adds r1, r4, r1 + cmp r1, r6 + bge _08003C04 + adds r0, r5, r1 + ldr r0, [r0] + mov r1, sl + str r0, [r1] + b _08003C08 + .align 2, 0 +_08003C00: .4byte 0x02020004 +_08003C04: + mov r2, sl + str r7, [r2] +_08003C08: + adds r3, #1 + adds r2, r4, #4 + adds r0, r3, #0 + mov r1, sb + ands r0, r1 + mov r1, ip + muls r1, r0, r1 + str r1, [sp, #4] + adds r0, r3, #0 + mov r1, r8 + ands r0, r1 + ldr r1, [sp, #4] + orrs r1, r0 + lsls r1, r1, #2 + adds r1, r4, r1 + cmp r1, r6 + bge _08003C34 + adds r0, r5, r2 + adds r1, r5, r1 + ldr r1, [r1] + str r1, [r0] + b _08003C38 +_08003C34: + adds r0, r5, r2 + str r7, [r0] +_08003C38: + adds r3, #1 + adds r2, r4, #0 + adds r2, #8 + adds r0, r3, #0 + mov r1, sb + ands r0, r1 + mov r1, ip + muls r1, r0, r1 + str r1, [sp, #4] + adds r0, r3, #0 + mov r1, r8 + ands r0, r1 + ldr r1, [sp, #4] + orrs r1, r0 + lsls r1, r1, #2 + adds r1, r4, r1 + cmp r1, r6 + bge _08003C66 + adds r0, r5, r2 + adds r1, r5, r1 + ldr r1, [r1] + str r1, [r0] + b _08003C6A +_08003C66: + adds r0, r5, r2 + str r7, [r0] +_08003C6A: + adds r3, #1 + adds r2, r4, #0 + adds r2, #0xc + adds r0, r3, #0 + mov r1, sb + ands r0, r1 + mov r1, ip + muls r1, r0, r1 + str r1, [sp, #4] + adds r0, r3, #0 + mov r1, r8 + ands r0, r1 + ldr r1, [sp, #4] + orrs r1, r0 + lsls r1, r1, #2 + adds r1, r4, r1 + cmp r1, r6 + bge _08003C98 + adds r0, r5, r2 + adds r1, r5, r1 + ldr r1, [r1] + str r1, [r0] + b _08003C9C +_08003C98: + adds r0, r5, r2 + str r7, [r0] +_08003C9C: + adds r3, #1 + adds r2, r4, #0 + adds r2, #0x10 + adds r0, r3, #0 + mov r1, sb + ands r0, r1 + mov r1, ip + muls r1, r0, r1 + str r1, [sp, #4] + adds r0, r3, #0 + mov r1, r8 + ands r0, r1 + ldr r1, [sp, #4] + orrs r1, r0 + lsls r1, r1, #2 + adds r1, r4, r1 + cmp r1, r6 + bge _08003CCA + adds r0, r5, r2 + adds r1, r5, r1 + ldr r1, [r1] + str r1, [r0] + b _08003CCE +_08003CCA: + adds r0, r5, r2 + str r7, [r0] +_08003CCE: + adds r3, #1 + adds r2, r4, #0 + adds r2, #0x14 + adds r0, r3, #0 + mov r1, sb + ands r0, r1 + mov r1, ip + muls r1, r0, r1 + str r1, [sp, #4] + adds r0, r3, #0 + mov r1, r8 + ands r0, r1 + ldr r1, [sp, #4] + orrs r1, r0 + lsls r1, r1, #2 + adds r1, r4, r1 + cmp r1, r6 + bge _08003CFC + adds r0, r5, r2 + adds r1, r5, r1 + ldr r1, [r1] + str r1, [r0] + b _08003D00 +_08003CFC: + adds r0, r5, r2 + str r7, [r0] +_08003D00: + adds r3, #1 + adds r2, r4, #0 + adds r2, #0x18 + adds r0, r3, #0 + mov r1, sb + ands r0, r1 + mov r1, ip + muls r1, r0, r1 + str r1, [sp, #4] + adds r0, r3, #0 + mov r1, r8 + ands r0, r1 + ldr r1, [sp, #4] + orrs r1, r0 + lsls r1, r1, #2 + adds r1, r4, r1 + cmp r1, r6 + bge _08003D2E + adds r0, r5, r2 + adds r1, r5, r1 + ldr r1, [r1] + str r1, [r0] + b _08003D32 +_08003D2E: + adds r0, r5, r2 + str r7, [r0] +_08003D32: + adds r3, #1 + adds r2, r4, #0 + adds r2, #0x1c + adds r0, r3, #0 + mov r1, sb + ands r0, r1 + mov r1, ip + muls r1, r0, r1 + adds r0, r1, #0 + mov r1, r8 + ands r3, r1 + orrs r0, r3 + lsls r0, r0, #2 + adds r1, r4, r0 + cmp r1, r6 + bge _08003D5C + adds r0, r5, r2 + adds r1, r5, r1 + ldr r1, [r1] + str r1, [r0] + b _08003D60 +_08003D5C: + adds r0, r5, r2 + str r7, [r0] +_08003D60: + movs r2, #0x20 + add sl, r2 + adds r4, #0x20 + cmp r4, r6 + bge _08003D6C + b _08003BD8 +_08003D6C: + b _08003F16 +_08003D6E: + subs r0, r6, #4 + adds r5, r5, r0 + movs r4, #0 + cmp r4, r6 + blt _08003D7A + b _08003F16 +_08003D7A: + movs r0, #8 + rsbs r0, r0, #0 + mov sb, r0 + movs r1, #7 + mov r8, r1 + mov sl, r5 +_08003D86: + ldr r3, [sp] + adds r0, r3, #0 + mov r2, sb + ands r0, r2 + mov r1, ip + muls r1, r0, r1 + adds r0, r3, #0 + mov r2, r8 + ands r0, r2 + orrs r1, r0 + lsls r1, r1, #2 + adds r1, r4, r1 + cmp r1, r6 + bge _08003DAC + subs r0, r5, r1 + ldr r0, [r0] + mov r1, sl + str r0, [r1] + b _08003DB0 +_08003DAC: + mov r2, sl + str r7, [r2] +_08003DB0: + adds r3, #1 + adds r2, r4, #4 + adds r0, r3, #0 + mov r1, sb + ands r0, r1 + mov r1, ip + muls r1, r0, r1 + str r1, [sp, #4] + adds r0, r3, #0 + mov r1, r8 + ands r0, r1 + ldr r1, [sp, #4] + orrs r1, r0 + lsls r1, r1, #2 + adds r1, r4, r1 + cmp r1, r6 + bge _08003DDC + subs r0, r5, r2 + subs r1, r5, r1 + ldr r1, [r1] + str r1, [r0] + b _08003DE0 +_08003DDC: + subs r0, r5, r2 + str r7, [r0] +_08003DE0: + adds r3, #1 + adds r2, r4, #0 + adds r2, #8 + adds r0, r3, #0 + mov r1, sb + ands r0, r1 + mov r1, ip + muls r1, r0, r1 + str r1, [sp, #4] + adds r0, r3, #0 + mov r1, r8 + ands r0, r1 + ldr r1, [sp, #4] + orrs r1, r0 + lsls r1, r1, #2 + adds r1, r4, r1 + cmp r1, r6 + bge _08003E0E + subs r0, r5, r2 + subs r1, r5, r1 + ldr r1, [r1] + str r1, [r0] + b _08003E12 +_08003E0E: + subs r0, r5, r2 + str r7, [r0] +_08003E12: + adds r3, #1 + adds r2, r4, #0 + adds r2, #0xc + adds r0, r3, #0 + mov r1, sb + ands r0, r1 + mov r1, ip + muls r1, r0, r1 + str r1, [sp, #4] + adds r0, r3, #0 + mov r1, r8 + ands r0, r1 + ldr r1, [sp, #4] + orrs r1, r0 + lsls r1, r1, #2 + adds r1, r4, r1 + cmp r1, r6 + bge _08003E40 + subs r0, r5, r2 + subs r1, r5, r1 + ldr r1, [r1] + str r1, [r0] + b _08003E44 +_08003E40: + subs r0, r5, r2 + str r7, [r0] +_08003E44: + adds r3, #1 + adds r2, r4, #0 + adds r2, #0x10 + adds r0, r3, #0 + mov r1, sb + ands r0, r1 + mov r1, ip + muls r1, r0, r1 + str r1, [sp, #4] + adds r0, r3, #0 + mov r1, r8 + ands r0, r1 + ldr r1, [sp, #4] + orrs r1, r0 + lsls r1, r1, #2 + adds r1, r4, r1 + cmp r1, r6 + bge _08003E72 + subs r0, r5, r2 + subs r1, r5, r1 + ldr r1, [r1] + str r1, [r0] + b _08003E76 +_08003E72: + subs r0, r5, r2 + str r7, [r0] +_08003E76: + adds r3, #1 + adds r2, r4, #0 + adds r2, #0x14 + adds r0, r3, #0 + mov r1, sb + ands r0, r1 + mov r1, ip + muls r1, r0, r1 + str r1, [sp, #4] + adds r0, r3, #0 + mov r1, r8 + ands r0, r1 + ldr r1, [sp, #4] + orrs r1, r0 + lsls r1, r1, #2 + adds r1, r4, r1 + cmp r1, r6 + bge _08003EA4 + subs r0, r5, r2 + subs r1, r5, r1 + ldr r1, [r1] + str r1, [r0] + b _08003EA8 +_08003EA4: + subs r0, r5, r2 + str r7, [r0] +_08003EA8: + adds r3, #1 + adds r2, r4, #0 + adds r2, #0x18 + adds r0, r3, #0 + mov r1, sb + ands r0, r1 + mov r1, ip + muls r1, r0, r1 + str r1, [sp, #4] + adds r0, r3, #0 + mov r1, r8 + ands r0, r1 + ldr r1, [sp, #4] + orrs r1, r0 + lsls r1, r1, #2 + adds r1, r4, r1 + cmp r1, r6 + bge _08003ED6 + subs r0, r5, r2 + subs r1, r5, r1 + ldr r1, [r1] + str r1, [r0] + b _08003EDA +_08003ED6: + subs r0, r5, r2 + str r7, [r0] +_08003EDA: + adds r3, #1 + adds r2, r4, #0 + adds r2, #0x1c + adds r0, r3, #0 + mov r1, sb + ands r0, r1 + mov r1, ip + muls r1, r0, r1 + adds r0, r1, #0 + mov r1, r8 + ands r3, r1 + orrs r0, r3 + lsls r0, r0, #2 + adds r1, r4, r0 + cmp r1, r6 + bge _08003F04 + subs r0, r5, r2 + subs r1, r5, r1 + ldr r1, [r1] + str r1, [r0] + b _08003F08 +_08003F04: + subs r0, r5, r2 + str r7, [r0] +_08003F08: + movs r2, #0x20 + rsbs r2, r2, #0 + add sl, r2 + adds r4, #0x20 + cmp r4, r6 + bge _08003F16 + b _08003D86 +_08003F16: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end ScrollWindow + + thumb_func_start CallWindowFunction +CallWindowFunction: @ 0x08003F28 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #8 + mov r8, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08003F74 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r5, [r1] + ldr r6, [r1, #4] + ldrb r0, [r1] + lsrs r1, r5, #8 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsrs r2, r5, #0x10 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsrs r3, r5, #0x18 + lsls r4, r6, #0x18 + lsrs r4, r4, #0x18 + str r4, [sp] + lsrs r4, r6, #8 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r4, [sp, #4] + bl _call_via_r8 + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08003F74: .4byte 0x02020004 + thumb_func_end CallWindowFunction + + thumb_func_start SetWindowAttribute +SetWindowAttribute: @ 0x08003F78 + push {lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r0, r1, #0x18 + cmp r0, #7 + bhi _08004012 + lsls r0, r0, #2 + ldr r1, _08003F90 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08003F90: .4byte 0x08003F94 +_08003F94: @ jump table + .4byte _08004012 @ case 0 + .4byte _08003FB4 @ case 1 + .4byte _08003FC8 @ case 2 + .4byte _08004012 @ case 3 + .4byte _08004012 @ case 4 + .4byte _08003FDC @ case 5 + .4byte _08003FF0 @ case 6 + .4byte _08004004 @ case 7 +_08003FB4: + ldr r1, _08003FC4 + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + strb r2, [r0, #1] + movs r0, #0 + b _08004014 + .align 2, 0 +_08003FC4: .4byte 0x02020004 +_08003FC8: + ldr r1, _08003FD8 + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + strb r2, [r0, #2] + movs r0, #0 + b _08004014 + .align 2, 0 +_08003FD8: .4byte 0x02020004 +_08003FDC: + ldr r1, _08003FEC + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + strb r2, [r0, #5] + movs r0, #0 + b _08004014 + .align 2, 0 +_08003FEC: .4byte 0x02020004 +_08003FF0: + ldr r1, _08004000 + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r1 + strh r2, [r0, #6] + movs r0, #0 + b _08004014 + .align 2, 0 +_08004000: .4byte 0x02020004 +_08004004: + ldr r1, _08004018 + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r1, #8 + adds r0, r0, r1 + str r2, [r0] +_08004012: + movs r0, #1 +_08004014: + pop {r1} + bx r1 + .align 2, 0 +_08004018: .4byte 0x02020004 + thumb_func_end SetWindowAttribute + + thumb_func_start GetWindowAttribute +GetWindowAttribute: @ 0x0800401C + push {lr} + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r0, r1, #0x18 + cmp r0, #7 + bhi _080040F8 + lsls r0, r0, #2 + ldr r1, _08004034 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08004034: .4byte 0x08004038 +_08004038: @ jump table + .4byte _08004058 @ case 0 + .4byte _0800406C @ case 1 + .4byte _08004080 @ case 2 + .4byte _08004094 @ case 3 + .4byte _080040A8 @ case 4 + .4byte _080040BC @ case 5 + .4byte _080040D0 @ case 6 + .4byte _080040E4 @ case 7 +_08004058: + ldr r0, _08004068 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1] + b _080040FA + .align 2, 0 +_08004068: .4byte 0x02020004 +_0800406C: + ldr r0, _0800407C + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #1] + b _080040FA + .align 2, 0 +_0800407C: .4byte 0x02020004 +_08004080: + ldr r0, _08004090 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #2] + b _080040FA + .align 2, 0 +_08004090: .4byte 0x02020004 +_08004094: + ldr r0, _080040A4 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #3] + b _080040FA + .align 2, 0 +_080040A4: .4byte 0x02020004 +_080040A8: + ldr r0, _080040B8 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #4] + b _080040FA + .align 2, 0 +_080040B8: .4byte 0x02020004 +_080040BC: + ldr r0, _080040CC + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #5] + b _080040FA + .align 2, 0 +_080040CC: .4byte 0x02020004 +_080040D0: + ldr r0, _080040E0 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrh r0, [r1, #6] + b _080040FA + .align 2, 0 +_080040E0: .4byte 0x02020004 +_080040E4: + ldr r0, _080040F4 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r0, #8 + adds r1, r1, r0 + ldr r0, [r1] + b _080040FA + .align 2, 0 +_080040F4: .4byte 0x02020004 +_080040F8: + movs r0, #0 +_080040FA: + pop {r1} + bx r1 + .align 2, 0 + thumb_func_end GetWindowAttribute + + thumb_func_start GetNumActiveWindowsOnBg +GetNumActiveWindowsOnBg: @ 0x08004100 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r3, #0 + ldr r2, _08004128 + movs r1, #0x1f +_0800410C: + ldrb r0, [r2] + cmp r0, r4 + bne _08004118 + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 +_08004118: + adds r2, #0xc + subs r1, #1 + cmp r1, #0 + bge _0800410C + adds r0, r3, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08004128: .4byte 0x02020004 + thumb_func_end GetNumActiveWindowsOnBg + + thumb_func_start nullsub_8 +nullsub_8: @ 0x0800412C + bx lr + .align 2, 0 + thumb_func_end nullsub_8 + + thumb_func_start AddWindow8Bit +AddWindow8Bit: @ 0x08004130 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sb, r0 + movs r6, #0 + ldr r1, _080041F8 + ldrb r0, [r1] + cmp r0, #0xff + beq _0800415E +_08004146: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #0x1f + bhi _0800415E + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0xff + bne _08004146 +_0800415E: + cmp r6, #0x20 + beq _080041F2 + mov r0, sb + ldrb r7, [r0] + ldr r1, _080041FC + mov sl, r1 + lsls r2, r7, #2 + mov r8, r2 + mov r0, r8 + add r0, sl + ldr r0, [r0] + cmp r0, #0 + bne _080041BA + adds r0, r7, #0 + movs r1, #8 + bl GetBgAttribute + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, _08004200 + cmp r5, r0 + beq _080041BA + adds r0, r5, #0 + bl Alloc + adds r4, r0, #0 + cmp r4, #0 + beq _080041F2 + movs r1, #0 + mov ip, sl + mov r3, r8 + cmp r1, r5 + bge _080041AC + movs r2, #0 +_080041A2: + adds r0, r4, r1 + strb r2, [r0] + adds r1, #1 + cmp r1, r5 + blt _080041A2 +_080041AC: + mov r1, ip + adds r0, r3, r1 + str r4, [r0] + adds r0, r7, #0 + adds r1, r4, #0 + bl SetBgTilemapBuffer +_080041BA: + mov r2, sb + ldrb r1, [r2, #3] + ldrb r0, [r2, #4] + muls r0, r1, r0 + lsls r0, r0, #0x16 + lsrs r0, r0, #0x10 + bl Alloc + adds r4, r0, #0 + cmp r4, #0 + bne _08004208 + adds r0, r7, #0 + bl GetNumActiveWindowsOnBg8Bit + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080041F2 + ldr r0, _080041FC + lsls r1, r7, #2 + adds r5, r1, r0 + ldr r1, [r5] + ldr r0, _08004204 + cmp r1, r0 + beq _080041F2 + adds r0, r1, #0 + bl Free + str r4, [r5] +_080041F2: + movs r0, #0xff + b _08004226 + .align 2, 0 +_080041F8: .4byte 0x02020004 +_080041FC: .4byte 0x03003010 +_08004200: .4byte 0x0000FFFF +_08004204: .4byte 0x0800412D +_08004208: + ldr r1, _08004234 + lsls r2, r6, #1 + adds r2, r2, r6 + lsls r2, r2, #2 + adds r0, r1, #0 + adds r0, #8 + adds r0, r2, r0 + str r4, [r0] + adds r2, r2, r1 + mov r3, sb + ldr r0, [r3] + ldr r1, [r3, #4] + str r0, [r2] + str r1, [r2, #4] + adds r0, r6, #0 +_08004226: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08004234: .4byte 0x02020004 + thumb_func_end AddWindow8Bit + + thumb_func_start FillWindowPixelBuffer8Bit +FillWindowPixelBuffer8Bit: @ 0x08004238 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + ldr r6, _08004274 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r4, r1, #2 + adds r0, r4, r6 + ldrb r1, [r0, #3] + ldrb r0, [r0, #4] + muls r0, r1, r0 + lsls r0, r0, #0x16 + lsrs r3, r0, #0x10 + movs r2, #0 + cmp r2, r3 + bge _0800426E + adds r0, r6, #0 + adds r0, #8 + adds r1, r4, r0 +_08004262: + ldr r0, [r1] + adds r0, r0, r2 + strb r5, [r0] + adds r2, #1 + cmp r2, r3 + blt _08004262 +_0800426E: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08004274: .4byte 0x02020004 + thumb_func_end FillWindowPixelBuffer8Bit + + thumb_func_start FillWindowPixelRect8Bit +FillWindowPixelRect8Bit: @ 0x08004278 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + sub sp, #0x10 + mov sb, r3 + ldr r3, [sp, #0x28] + ldr r4, [sp, #0x2c] + mov r8, r4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + mov r4, sb + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + mov sb, r4 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + mov r4, r8 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + mov r8, r4 + ldr r5, _080042F8 + lsls r4, r0, #1 + adds r4, r4, r0 + lsls r4, r4, #2 + adds r0, r5, #0 + adds r0, #8 + adds r0, r4, r0 + ldr r0, [r0] + str r0, [sp, #8] + adds r4, r4, r5 + ldrb r0, [r4, #3] + lsls r0, r0, #3 + ldr r6, _080042FC + ldr r5, [sp, #0xc] + ands r5, r6 + orrs r5, r0 + str r5, [sp, #0xc] + ldrb r4, [r4, #4] + lsls r4, r4, #0x13 + ldr r0, _08004300 + ands r0, r5 + orrs r0, r4 + str r0, [sp, #0xc] + mov r0, r8 + str r0, [sp] + str r1, [sp, #4] + add r0, sp, #8 + adds r1, r2, #0 + mov r2, sb + bl FillBitmapRect8Bit + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080042F8: .4byte 0x02020004 +_080042FC: .4byte 0xFFFF0000 +_08004300: .4byte 0x0000FFFF + thumb_func_end FillWindowPixelRect8Bit + + thumb_func_start BlitBitmapRectToWindow4BitTo8Bit +BlitBitmapRectToWindow4BitTo8Bit: @ 0x08004304 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x2c + ldr r4, [sp, #0x4c] + ldr r5, [sp, #0x50] + ldr r6, [sp, #0x54] + mov r8, r6 + ldr r7, [sp, #0x58] + mov sb, r7 + ldr r6, [sp, #0x5c] + mov sl, r6 + ldr r7, [sp, #0x60] + mov ip, r7 + ldr r6, [sp, #0x64] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + lsls r4, r4, #0x10 + mov r7, r8 + lsls r7, r7, #0x10 + lsrs r7, r7, #0x10 + mov r8, r7 + mov r7, sb + lsls r7, r7, #0x10 + lsrs r7, r7, #0x10 + mov sb, r7 + mov r7, sl + lsls r7, r7, #0x10 + lsrs r7, r7, #0x10 + mov sl, r7 + mov r7, ip + lsls r7, r7, #0x10 + lsrs r7, r7, #0x10 + mov ip, r7 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + str r6, [sp, #0x28] + str r1, [sp, #0x18] + lsls r5, r5, #0x10 + ldr r6, _080043C4 + lsrs r4, r4, #0x10 + orrs r4, r5 + str r4, [sp, #0x1c] + ldr r1, _080043C8 + lsls r5, r0, #1 + adds r5, r5, r0 + lsls r5, r5, #2 + adds r0, r1, #0 + adds r0, #8 + adds r0, r5, r0 + ldr r0, [r0] + str r0, [sp, #0x20] + adds r5, r5, r1 + ldrb r0, [r5, #3] + lsls r0, r0, #3 + add r1, sp, #0x20 + ldr r4, [r1, #4] + ldr r7, _080043CC + ands r4, r7 + orrs r4, r0 + str r4, [r1, #4] + ldrb r0, [r5, #4] + lsls r0, r0, #0x13 + ands r6, r4 + orrs r6, r0 + str r6, [r1, #4] + mov r0, r8 + str r0, [sp] + mov r6, sb + str r6, [sp, #4] + mov r7, sl + str r7, [sp, #8] + mov r0, ip + str r0, [sp, #0xc] + movs r0, #0 + str r0, [sp, #0x10] + ldr r6, [sp, #0x28] + str r6, [sp, #0x14] + add r0, sp, #0x18 + bl BlitBitmapRect4BitTo8Bit + add sp, #0x2c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080043C4: .4byte 0x0000FFFF +_080043C8: .4byte 0x02020004 +_080043CC: .4byte 0xFFFF0000 + thumb_func_end BlitBitmapRectToWindow4BitTo8Bit + + thumb_func_start CopyWindowToVram8Bit +CopyWindowToVram8Bit: @ 0x080043D0 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r2, r1, #0x18 + adds r5, r2, #0 + ldr r6, _08004404 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08004408 + adds r3, r1, r0 + str r3, [r6] + ldr r4, _0800440C + ldrb r1, [r3, #3] + ldrb r0, [r3, #4] + muls r0, r1, r0 + lsls r0, r0, #6 + strh r0, [r4] + cmp r2, #2 + beq _0800441E + cmp r2, #2 + bgt _08004410 + cmp r2, #1 + beq _08004416 + b _08004440 + .align 2, 0 +_08004404: .4byte 0x02020184 +_08004408: .4byte 0x02020004 +_0800440C: .4byte 0x02020188 +_08004410: + cmp r5, #3 + beq _0800442C + b _08004440 +_08004416: + ldrb r0, [r3] + bl CopyBgTilemapBufferToVram + b _08004440 +_0800441E: + ldrb r0, [r3] + ldr r1, [r3, #8] + ldrh r2, [r4] + ldrh r3, [r3, #6] + bl LoadBgTiles + b _08004440 +_0800442C: + ldrb r0, [r3] + ldr r1, [r3, #8] + ldrh r2, [r4] + ldrh r3, [r3, #6] + bl LoadBgTiles + ldr r0, [r6] + ldrb r0, [r0] + bl CopyBgTilemapBufferToVram +_08004440: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 + thumb_func_end CopyWindowToVram8Bit + + thumb_func_start GetNumActiveWindowsOnBg8Bit +GetNumActiveWindowsOnBg8Bit: @ 0x08004448 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r3, #0 + ldr r2, _08004470 + movs r1, #0x1f +_08004454: + ldrb r0, [r2] + cmp r0, r4 + bne _08004460 + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 +_08004460: + adds r2, #0xc + subs r1, #1 + cmp r1, #0 + bge _08004454 + adds r0, r3, #0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08004470: .4byte 0x02020004 + thumb_func_end GetNumActiveWindowsOnBg8Bit + diff --git a/asmdiff.sh b/asmdiff.sh old mode 100644 new mode 100755 diff --git a/funcmap_jp.txt b/funcmap_jp.txt new file mode 100644 index 0000000..ed7ed66 --- /dev/null +++ b/funcmap_jp.txt @@ -0,0 +1,16311 @@ +main.s +080003a4 main.s AgbMain +080004c4 main.s UpdateLinkAndCallCallbacks +080004d8 main.s InitMainCallbacks +0800051c main.s CallCallbacks +08000540 main.s SetMainCallback2 +08000554 main.s StartTimer1 +08000560 main.s SeedRngAndSetTrainerId +08000588 main.s GetGeneratedTrainerIdLower +08000594 main.s EnableVCountIntrAtLine150 +080005bc main.s InitKeys +080005e4 main.s ReadKeys +08000684 main.s InitIntrHandlers +080006f0 main.s SetVBlankCallback +080006fc main.s SetHBlankCallback +08000708 main.s SetVCountCallback +08000714 main.s RestoreSerialTimer3IntrHandlers +0800072c main.s SetSerialCallback +08000738 main.s VBlankIntr +08000800 main.s InitFlashTimer +08000814 main.s HBlankIntr +08000844 main.s VCountIntr +08000878 main.s SerialIntr +080008a8 main.s IntrDummy +080008ac main.s WaitForVBlank +080008dc main.s SetTrainerHillVBlankCounter +080008e8 main.s ClearTrainerHillVBlankCounter +080008f4 main.s DoSoftReset +08000964 main.s ClearPokemonCrySongs +alloc.s +08000988 alloc.s PutMemBlockHeader +080009a4 alloc.s PutFirstMemBlockHeader +080009b8 alloc.s AllocInternal +08000a34 alloc.s FreeInternal +08000b14 alloc.s AllocZeroedInternal +08000b54 alloc.s CheckMemBlockInternal +08000bac alloc.s InitHeap +08000bc8 alloc.s Alloc +08000bdc alloc.s AllocZeroed +08000bf0 alloc.s Free +08000c04 alloc.s CheckMemBlock +08000c18 alloc.s CheckHeap +dma3_manager.s +08000c48 dma3_manager.s ClearDma3Requests +08000c80 dma3_manager.s ProcessDma3Requests +08000ef8 dma3_manager.s RequestDma3Copy +08000f90 dma3_manager.s RequestDma3Fill +08001034 dma3_manager.s CheckForSpaceForDma3Request +gpu_regs.s +08001074 gpu_regs.s InitGpuRegManager +080010cc gpu_regs.s CopyBufferedValueToGpuReg +08001110 gpu_regs.s CopyBufferedValuesToGpuRegs +08001144 gpu_regs.s SetGpuReg +080011d0 gpu_regs.s GetGpuReg +08001200 gpu_regs.s SetGpuRegBits +08001220 gpu_regs.s ClearGpuRegBits +08001240 gpu_regs.s SyncRegIE +08001274 gpu_regs.s EnableInterrupts +080012a0 gpu_regs.s DisableInterrupts +080012cc gpu_regs.s UpdateRegDispstatIntrBits +bg.s +08001308 bg.s ResetBgs +08001320 bg.s SetBgModeInternal +0800133c bg.s GetBgMode +0800134c bg.s ResetBgControlStructs +0800136c bg.s Unused_ResetBgControlStruct +08001398 bg.s SetBgControlAttributes +080014c4 bg.s GetBgControlAttribute +08001578 bg.s LoadBgVram +08001600 bg.s ShowBgInternal +0800167c bg.s HideBgInternal +080016b0 bg.s SyncBgVisibilityAndMode +080016d4 bg.s SetTextModeAndHideBgs +080016f0 bg.s SetBgAffineInternal +080017bc bg.s IsInvalidBg32 +080017d0 bg.s DummiedOutFireRedLeafGreenTileAllocFunc +080017d4 bg.s ResetBgsAndClearDma3BusyFlags +08001800 bg.s InitBgsFromTemplates +080018c8 bg.s InitBgFromTemplate +0800194c bg.s SetBgMode +0800195c bg.s LoadBgTiles +08001a14 bg.s LoadBgTilemap +08001a64 bg.s Unused_LoadBgPalette +08001aec bg.s IsDma3ManagerBusyWithBgCopy +08001b48 bg.s ShowBg +08001b5c bg.s HideBg +08001b70 bg.s SetBgAttribute +08001c34 bg.s GetBgAttribute +08001d1c bg.s ChangeBgX +08001e58 bg.s GetBgX +08001e94 bg.s ChangeBgY +08001fd0 bg.s GetBgY +0800200c bg.s SetBgAffine +0800204c bg.s Unused_AdjustBgMosaic +0800212c bg.s SetBgTilemapBuffer +08002160 bg.s UnsetBgTilemapBuffer +08002194 bg.s GetBgTilemapBuffer +080021cc bg.s CopyToBgTilemapBuffer +08002248 bg.s CopyBgTilemapBufferToVram +080022b0 bg.s CopyToBgTilemapBufferRect +080023b4 bg.s CopyToBgTilemapBufferRect_ChangePalette +080023f8 bg.s CopyRectToBgTilemapBufferRect +080025e0 bg.s FillBgTilemapBufferRect_Palette0 +080026e0 bg.s FillBgTilemapBufferRect +0800271c bg.s WriteSequenceToBgTilemapBuffer +080028c8 bg.s GetBgMetricTextMode +08002938 bg.s GetBgMetricAffineMode +08002990 bg.s GetTileMapIndexFromCoords +080029c8 bg.s CopyTileMapEntry +08002a24 bg.s GetBgType +08002a78 bg.s IsInvalidBg +08002a8c bg.s IsTileMapOutsideWram +blit.s +08002ab8 blit.s BlitBitmapRect4BitWithoutColorKey +08002afc blit.s BlitBitmapRect4Bit +08002cdc blit.s FillBitmapRect4Bit +08002d98 blit.s BlitBitmapRect4BitTo8Bit +08002fe8 blit.s FillBitmapRect8Bit +window.s +0800308c window.s nullsub_9 +08003090 window.s InitWindows +08003250 window.s AddWindow +080033a8 window.s AddWindowWithoutTileMap +08003444 window.s RemoveWindow +080034d4 window.s FreeAllWindowBuffers +08003528 window.s CopyWindowToVram +080035a8 window.s CopyWindowRectToVram +0800365c window.s PutWindowTilemap +080036bc window.s PutWindowRectTilemapOverridePalette +08003774 window.s ClearWindowTilemap +080037c4 window.s PutWindowRectTilemap +08003874 window.s BlitBitmapToWindow +080038ac window.s BlitBitmapRectToWindow +0800396c window.s BlitBitmapRectToWindowWithColorKey +08003a34 window.s FillWindowPixelRect +08003ac0 window.s CopyToWindowPixelBuffer +08003b18 window.s FillWindowPixelBuffer +08003b64 window.s ScrollWindow +08003f28 window.s CallWindowFunction +08003f78 window.s SetWindowAttribute +0800401c window.s GetWindowAttribute +08004100 window.s GetNumActiveWindowsOnBg +0800412c window.s nullsub_8 +08004130 window.s AddWindow8Bit +08004238 window.s FillWindowPixelBuffer8Bit +08004278 window.s FillWindowPixelRect8Bit +08004304 window.s BlitBitmapRectToWindow4BitTo8Bit +080043d0 window.s CopyWindowToVram8Bit +08004448 window.s GetNumActiveWindowsOnBg8Bit +text.s +08004474 text.s SetFontsPointer +08004480 text.s DeactivateAllTextPrinters +0800449c text.s AddTextPrinterParameterized +08004548 text.s AddTextPrinter +08004630 text.s RunTextPrinters +080046a8 text.s IsTextPrinterActive +080046b8 text.s RenderFont +080046e4 text.s GenerateFontHalfRowLookupTable +08004798 text.s SaveTextColors +080047b8 text.s RestoreTextColors +080047c8 text.s DecompressGlyphTile +08004808 text.s GetLastTextColor +08004850 text.s CopyGlyphToWindow +08004e50 text.s ClearTextSpan +08005358 text.s Font0Func +0800538c text.s Font1Func +080053c4 text.s Font2Func +080053fc text.s Font3Func +08005434 text.s Font4Func +0800546c text.s Font5Func +080054a4 text.s TextPrinterInitDownArrowCounters +080054d4 text.s TextPrinterDrawDownArrow +080055ac text.s TextPrinterClearDownArrow +080055e0 text.s TextPrinterWaitAutoMode +080055fc text.s TextPrinterWaitWithDownArrow +08005648 text.s TextPrinterWait +0800568c text.s DrawDownArrow +08005760 text.s RenderText +08005c48 text.s GetStringWidthFixedWidthFont +08005d7c text.s GetFontWidthFunc +08005dac text.s GetStringWidth +08005f7c text.s RenderTextFont9 +08006124 text.s DrawKeypadIcon +08006174 text.s GetKeypadIconTileOffset +08006184 text.s GetKeypadIconWidth +08006194 text.s GetKeypadIconHeight +080061a4 text.s SetDefaultFontsPointer +080061b4 text.s GetFontAttribute +0800629c text.s GetMenuCursorDimensionByFont +080062b4 text.s DecompressGlyphFont9 +08006300 text.s sub_08006300 +08006304 text.s sub_08006304 +08006350 text.s sub_08006350 +08006354 text.s sub_08006354 +080063f8 text.s sub_080063F8 +08006418 text.s sub_08006418 +080064b4 text.s sub_080064B4 +080064b8 text.s sub_080064B8 +0800655c text.s sub_0800655C +0800657c text.s sub_0800657C +08006620 text.s sub_08006620 +08006640 text.s sub_08006640 +sprite.s +0800668c sprite.s ResetSpriteData +080066d8 sprite.s AnimateSprites +08006724 sprite.s BuildOamBuffer +08006770 sprite.s UpdateOamCoords +08006834 sprite.s BuildSpritePriorities +08006874 sprite.s SortSprites +08006a34 sprite.s CopyMatricesToOamBuffer +08006a80 sprite.s AddSpritesToOamBuffer +08006b0c sprite.s CreateSprite +08006b60 sprite.s CreateSpriteAtEnd +08006bcc sprite.s CreateInvisibleSprite +08006c14 sprite.s CreateSpriteAt +08006d6c sprite.s CreateSpriteAndAnimate +08006e00 sprite.s DestroySprite +08006e68 sprite.s ResetOamRange +08006ea0 sprite.s LoadOam +08006ed0 sprite.s ClearSpriteCopyRequests +08006f10 sprite.s ResetOamMatrices +08006f3c sprite.s SetOamMatrix +08006f5c sprite.s ResetSprite +08006f70 sprite.s CalcCenterToCornerVec +08006fb4 sprite.s AllocSpriteTiles +080070d0 sprite.s SpriteTileAllocBitmapOp +08007140 sprite.s SpriteCallbackDummy +08007144 sprite.s ProcessSpriteCopyRequests +080071a0 sprite.s RequestSpriteFrameImageCopy +08007204 sprite.s RequestSpriteCopy +08007254 sprite.s CopyFromSprites +0800727c sprite.s CopyToSprites +080072a4 sprite.s ResetAllSprites +080072e0 sprite.s FreeSpriteTiles +080072fc sprite.s FreeSpritePalette +0800730c sprite.s FreeSpriteOamMatrix +08007338 sprite.s DestroySpriteAndFreeResources +08007358 sprite.s AnimateSprite +080073a0 sprite.s BeginAnim +08007490 sprite.s ContinueAnim +08007530 sprite.s AnimCmd_frame +080075dc sprite.s AnimCmd_end +080075f4 sprite.s AnimCmd_jump +080076bc sprite.s AnimCmd_loop +080076dc sprite.s BeginAnimLoop +08007714 sprite.s ContinueAnimLoop +08007734 sprite.s JumpToTopOfAnimLoop +080077a8 sprite.s BeginAffineAnim +0800783c sprite.s ContinueAffineAnim +080078f0 sprite.s AffineAnimDelay +08007924 sprite.s AffineAnimCmd_loop +08007958 sprite.s BeginAffineAnimLoop +08007994 sprite.s ContinueAffineAnimLoop +080079c4 sprite.s JumpToTopOfAffineAnimLoop +08007a30 sprite.s AffineAnimCmd_jump +08007a7c sprite.s AffineAnimCmd_end +08007ab8 sprite.s AffineAnimCmd_frame +08007af0 sprite.s CopyOamMatrix +08007b10 sprite.s GetSpriteMatrixNum +08007b30 sprite.s sub_08007B30 +08007b40 sprite.s sub_08007B40 +08007b6c sprite.s obj_update_pos2 +08007c08 sprite.s SetSpriteOamFlipBits +08007c7c sprite.s AffineAnimStateRestartAnim +08007c98 sprite.s AffineAnimStateStartAnim +08007cc0 sprite.s AffineAnimStateReset +08007ce8 sprite.s ApplyAffineAnimFrameAbsolute +08007d0c sprite.s DecrementAnimDelayCounter +08007d34 sprite.s DecrementAffineAnimDelayCounter +08007d64 sprite.s ApplyAffineAnimFrameRelativeAndUpdateMatrix +08007dfc sprite.s ConvertScaleParam +08007e14 sprite.s GetAffineAnimFrame +08007e80 sprite.s ApplyAffineAnimFrame +08007ec0 sprite.s StartSpriteAnim +08007ed8 sprite.s StartSpriteAnimIfDifferent +08007ef4 sprite.s SeekSpriteAnim +08007f70 sprite.s StartSpriteAffineAnim +08007f9c sprite.s StartSpriteAffineAnimIfDifferent +08007fd0 sprite.s ChangeSpriteAffineAnim +08008008 sprite.s ChangeSpriteAffineAnimIfDifferent +0800803c sprite.s SetSpriteSheetFrameTileNum +08008094 sprite.s ResetAffineAnimData +080080c8 sprite.s AllocOamMatrix +08008100 sprite.s FreeOamMatrix +08008140 sprite.s InitSpriteAffineAnim +08008190 sprite.s SetOamMatrixRotationScaling +08008210 sprite.s LoadSpriteSheet +08008254 sprite.s LoadSpriteSheets +08008280 sprite.s FreeSpriteTilesByTag +080082f8 sprite.s FreeSpriteTileRanges +08008338 sprite.s GetSpriteTileStartByTag +08008364 sprite.s IndexOfSpriteTileTag +08008390 sprite.s GetSpriteTileTagByTileStart +080083dc sprite.s AllocSpriteTileRange +08008424 sprite.s FreeAllSpritePalettes +0800845c sprite.s LoadSpritePalette +080084a8 sprite.s LoadSpritePalettes +080084d4 sprite.s DoLoadSpritePalette +080084ec sprite.s AllocSpritePalette +0800851c sprite.s IndexOfSpritePaletteTag +08008554 sprite.s GetSpritePaletteTagByPaletteNum +08008564 sprite.s FreeSpritePaletteByTag +0800858c sprite.s SetSubspriteTables +08008598 sprite.s AddSpriteToOamBuffer +08008604 sprite.s AddSubspritesToOamBuffer +string_util.s +08008828 string_util.s StringCopy10 +0800885c string_util.s StringGetEnd10 +08008888 string_util.s StringCopy7 +080088b8 string_util.s StringCopy +080088d8 string_util.s StringAppend +080088f0 string_util.s StringCopyN +08008920 string_util.s StringAppendN +0800893c string_util.s StringLength +0800895c string_util.s StringCompare +08008980 string_util.s StringCompareN +080089ac string_util.s IsStringLengthAtLeast +080089d8 string_util.s ConvertIntToDecimalStringN +08008a78 string_util.s ConvertUIntToDecimalStringN +08008b18 string_util.s ConvertIntToHexStringN +08008bcc string_util.s StringExpandPlaceholders +08008cb8 string_util.s StringBraille +08008d18 string_util.s ExpandPlaceholder_UnknownStringVar +08008d20 string_util.s ExpandPlaceholder_PlayerName +08008d2c string_util.s ExpandPlaceholder_StringVar1 +08008d34 string_util.s ExpandPlaceholder_StringVar2 +08008d3c string_util.s ExpandPlaceholder_StringVar3 +08008d44 string_util.s ExpandPlaceholder_KunChan +08008d68 string_util.s ExpandPlaceholder_RivalName +08008d8c string_util.s ExpandPlaceholder_Version +08008d94 string_util.s ExpandPlaceholder_Aqua +08008d9c string_util.s ExpandPlaceholder_Magma +08008da4 string_util.s ExpandPlaceholder_Archie +08008dac string_util.s ExpandPlaceholder_Maxie +08008db4 string_util.s ExpandPlaceholder_Kyogre +08008dbc string_util.s ExpandPlaceholder_Groudon +08008dc4 string_util.s GetExpandedPlaceholder +08008de8 string_util.s StringFill +08008e14 string_util.s StringCopyPadded +08008e68 string_util.s StringFillWithTerminator +08008e78 string_util.s StringCopyN_Multibyte +08008eb8 string_util.s StringLength_Multibyte +08008ed8 string_util.s WriteColorChangeControlCode +08008f14 string_util.s IsStringJapanese +08008f38 string_util.s sub_08008F38_jp +link.s +08008f68 link.s IsWirelessAdapterConnected +08008fa0 link.s Task_DestroySelf +08008fb0 link.s InitLinkTestBG +08009088 link.s sub_08009088 +0800910c link.s LinkTestScreen +080091c4 link.s SetLocalLinkPlayerId +080091d4 link.s InitLocalLinkPlayer +08009258 link.s sub_08009258_jp +0800926c link.s InitLink +08009298 link.s Task_TriggerHandshake +080092d0 link.s OpenLink +08009384 link.s CloseLink +080093b4 link.s TestBlockTransfer +0800949c link.s LinkTestProcessKeyInput +08009558 link.s CB2_LinkTest +0800957c link.s LinkMain2 +080095f4 link.s HandleReceiveRemoteLinkPlayer +0800963c link.s ProcessRecvCmds +08009928 link.s BuildSendCmd +08009ab0 link.s sub_08009AB0_jp +08009ad4 link.s IsSendingKeysToLink +08009b08 link.s sub_08009B08 +08009b24 link.s ClearLinkCallback +08009b44 link.s ClearLinkCallback_2 +08009b64 link.s GetLinkPlayerCount +08009b90 link.s sub_08009B90 +08009bd4 link.s sub_08009BD4_jp +08009c04 link.s sub_08009C04_jp +08009c28 link.s Link_AnyPartnersPlayingRubyOrSapphire +08009c40 link.s sub_08009C40_jp +08009c70 link.s OpenLinkTimed +08009c8c link.s GetLinkPlayerDataExchangeStatusTimed +08009e00 link.s IsLinkPlayerDataExchangeComplete +08009e68 link.s GetLinkPlayerTrainerId +08009e80 link.s ResetLinkPlayers +08009ea4 link.s ResetBlockSend +08009eb8 link.s InitBlockSend +08009f28 link.s LinkCB_BlockSendBegin +08009f4c link.s LinkCB_BlockSend +08009fb0 link.s LinkCB_BlockSendEnd +08009fbc link.s sub_08009FBC_jp +08009fdc link.s sub_08009FDC_jp +0800a010 link.s sub_0800A010_jp +0800a01c link.s sub_0800A01C_jp +0800a02c link.s GetMultiplayerId +0800a054 link.s bitmask_all_link_players_but_self +0800a070 link.s SendBlock +0800a09c link.s sub_0800A09C_jp +0800a0e4 link.s IsLinkTaskFinished +0800a114 link.s GetBlockReceivedStatus +0800a14c link.s SetBlockReceivedFlag +0800a178 link.s ResetBlockReceivedFlags +0800a1b0 link.s ResetBlockReceivedFlag +0800a1e4 link.s CheckShouldAdvanceLinkState +0800a20c link.s LinkTestCalcBlockChecksum +0800a23c link.s LinkTest_prnthexchar +0800a274 link.s LinkTest_prntchar +0800a2ac link.s LinkTest_prnthex +0800a300 link.s LinkTest_prntint +0800a3a0 link.s LinkTest_prntstr +0800a3e8 link.s LinkCB_RequestPlayerDataExchange +0800a414 link.s Task_PrintTestData +0800a558 link.s SetLinkDebugValues +0800a56c link.s sub_0800A56C +0800a59c link.s sub_0800A59C_jp +0800a5c8 link.s sub_0800A5C8_jp +0800a60c link.s GetSavedPlayerCount +0800a618 link.s sub_0800A618_jp +0800a624 link.s sub_0800A624_jp +0800a6b8 link.s sub_0800A6B8_jp +0800a6dc link.s sub_0800A6DC_jp +0800a75c link.s sub_0800A75C +0800a770 link.s GetLinkPlayerCount_2 +0800a780 link.s IsLinkMaster +0800a7ac link.s sub_0800A7AC_jp +0800a7b8 link.s sub_0800A7B8_jp +0800a7f8 link.s sub_0800A7F8_jp +0800a844 link.s sub_0800A844_jp +0800a870 link.s sub_0800A870_jp +0800a8d4 link.s sub_0800A8D4_jp +0800a90c link.s sub_0800A90C_jp +0800a938 link.s sub_0800A938 +0800a990 link.s CheckErrorStatus +0800a9f4 link.s sub_0800A9F4 +0800aa0c link.s CB2_LinkError +0800ab5c link.s sub_0800AB5C_jp +0800ac14 link.s sub_0800AC14 +0800ac7c link.s CB2_PrintErrorMessage +0800adc4 link.s GetSioMultiSI +0800add4 link.s IsSioMultiMaster +0800adfc link.s IsLinkConnectionEstablished +0800ae0c link.s SetSuppressLinkErrorMessage +0800ae18 link.s HasLinkErrorOccurred +0800ae24 link.s sub_0800AE24_jp +0800ae80 link.s sub_0800AE80_jp +0800aee0 link.s HandleLinkConnection +0800af5c link.s sub_0800AF5C +0800af78 link.s sub_0800AF78_jp +0800af94 link.s sub_0800AF94 +0800afb0 link.s GetLinkRecvQueueLength +0800afd8 link.s sub_0800AFD8 +0800afec link.s sub_0800afec +0800aff8 link.s DisableSerial +0800b050 link.s EnableSerial +0800b0e4 link.s ResetSerial +0800b0f4 link.s LinkMain1 +0800b220 link.s CheckMasterOrSlave +0800b24c link.s InitTimer +0800b27c link.s EnqueueSendCmd +0800b364 link.s DequeueRecvCmds +0800b474 link.s LinkVSync +0800b4e4 link.s Timer3Intr +0800b4f4 link.s SerialCB +0800b57c link.s StartTransfer +0800b58c link.s DoHandshake +0800b688 link.s DoRecv +0800b7a0 link.s DoSend +0800b854 link.s StopTimer +0800b888 link.s SendRecvDone +0800b8b8 link.s ResetSendBuffer +0800b90c link.s ResetRecvBuffer +link_rfu.s +0800b97c link_rfu.s sub_0800B97C +0800b9c8 link_rfu.s rfu_REQ_sendData_wrapper +0800ba08 link_rfu.s sub_0800BA08_jp +0800ba5c link_rfu.s sub_0800BA5C_jp +0800ba88 link_rfu.s sub_0800BA88_jp +0800babc link_rfu.s sub_0800BABC_jp +0800bb04 link_rfu.s sub_0800BB04_jp +0800bb10 link_rfu.s sub_0800BB10_jp +0800bbe8 link_rfu.s sub_0800BBE8_jp +0800bccc link_rfu.s sub_0800BCCC_jp +0800bd38 link_rfu.s sub_0800BD38_jp +0800be28 link_rfu.s sub_0800BE28 +0800bfec link_rfu.s rfu_syncVBlank_ +0800c008 link_rfu.s sub_0800C008_jp +0800c200 link_rfu.s sub_0800C200_jp +0800c270 link_rfu.s sub_0800C270_jp +0800c96c link_rfu.s sub_0800C96C_jp +0800c9f0 link_rfu.s sub_0800C9F0_jp +0800cc14 link_rfu.s sub_0800CC14_jp +0800ccc8 link_rfu.s sub_0800CCC8_jp +0800cd24 link_rfu.s sub_0800CD24_jp +0800cd50 link_rfu.s sub_0800CD50_jp +0800cdc8 link_rfu.s sub_0800CDC8_jp +0800cdf0 link_rfu.s sub_0800CDF0_jp +0800ce14 link_rfu.s sub_0800CE14_jp +0800cef0 link_rfu.s sub_0800CEF0_jp +0800cfe8 link_rfu.s sub_0800CFE8_jp +0800d000 link_rfu.s sub_0800D000_jp +0800d00c link_rfu.s sub_0800D00C_jp +0800d050 link_rfu.s sub_0800D050_jp +0800d08c link_rfu.s sub_0800D08C_jp +0800d0cc link_rfu.s sub_0800D0CC_jp +0800d0ec link_rfu.s sub_0800D0EC_jp +0800d114 link_rfu.s sub_0800D114_jp +0800d184 link_rfu.s sub_0800D184_jp +0800d1e0 link_rfu.s sub_0800D1E0_jp +0800d23c link_rfu.s sub_0800D23C_jp +0800d294 link_rfu.s sub_0800D294_jp +0800d348 link_rfu.s sub_0800D348_jp +0800d3f4 link_rfu.s sub_0800D3F4_jp +0800d4a8 link_rfu.s sub_0800D4A8_jp +0800d534 link_rfu.s sub_0800D534_jp +0800d594 link_rfu.s sub_0800D594_jp +0800d5e4 link_rfu.s sub_0800D5E4_jp +0800d650 link_rfu.s sub_0800D650_jp +0800d6c4 link_rfu.s sub_0800D6C4 +0800d780 link_rfu.s PkmnStrToASCII +0800d7b4 link_rfu.s ASCIIToPkmnStr +0800d7e8 link_rfu.s sub_0800D7E8 +0800d860 link_rfu.s sub_0800D860_jp +0800d948 link_rfu.s sub_0800D948_jp +0800da00 link_rfu.s sub_0800DA00_jp +0800da5c link_rfu.s sub_0800DA5C_jp +0800da80 link_rfu.s CreateWirelessStatusIndicatorSprite +0800db50 link_rfu.s DestroyWirelessStatusIndicatorSprite +0800dbb4 link_rfu.s LoadWirelessStatusIndicatorSpriteGfx +0800dbf0 link_rfu.s sub_0800DBF0 +0800dc28 link_rfu.s sub_0800DC28_jp +0800dc40 link_rfu.s sub_0800DC40 +0800de44 link_rfu.s CopyTrainerRecord +0800de54 link_rfu.s NameIsNotEmpty +0800de74 link_rfu.s RecordMixTrainerNames +0800e004 link_rfu.s sub_0800E004 +0800e070 link_rfu.s WipeTrainerNameRecords +0800e0c0 link_rfu.s nullsub_13 +0800e0c4 link_rfu.s nullsub_5 +0800e0c8 link_rfu.s sub_0800E0C8_jp +0800e194 link_rfu.s sub_0800E194_jp +0800e1c4 link_rfu.s sub_0800E1C4_jp +0800e20c link_rfu.s sub_0800E20C_jp +0800e340 link_rfu.s sub_0800E340_jp +0800e350 link_rfu.s sub_0800E350_jp +0800e410 link_rfu.s sub_0800E410_jp +0800e578 link_rfu.s sub_0800E578_jp +0800e5c0 link_rfu.s sub_0800E5C0_jp +0800e608 link_rfu.s sub_0800E608_jp +0800e7d0 link_rfu.s sub_0800E7D0_jp +0800e7e8 link_rfu.s sub_0800E7E8_jp +0800e7f4 link_rfu.s sub_0800E7F4_jp +0800e87c link_rfu.s sub_0800E87C_jp +0800e894 link_rfu.s sub_0800E894_jp +0800e938 link_rfu.s sub_0800E938_jp +0800e954 link_rfu.s sub_0800E954_jp +0800e97c link_rfu.s sub_0800E97C_jp +0800e9c0 link_rfu.s sub_0800E9C0_jp +0800e9dc link_rfu.s sub_0800E9DC_jp +0800e9f8 link_rfu.s sub_0800E9F8_jp +0800ea18 link_rfu.s sub_0800EA18_jp +0800ea3c link_rfu.s sub_0800EA3C_jp +0800ea48 link_rfu.s sub_0800EA48_jp +0800ea70 link_rfu.s sub_0800EA70_jp +0800ead4 link_rfu.s sub_0800EAD4_jp +0800eb08 link_rfu.s sub_0800EB08 +0800eb78 link_rfu.s IsRfuRecvQueueEmpty +0800ebb8 link_rfu.s sub_0800EBB8_jp +0800eca0 link_rfu.s sub_0800ECA0_jp +0800ef58 link_rfu.s sub_0800EF58_jp +0800efb0 link_rfu.s sub_0800EFB0_jp +0800f0f8 link_rfu.s sub_0800F0F8_jp +0800f1bc link_rfu.s sub_0800F1BC_jp +0800f1e8 link_rfu.s sub_0800F1E8_jp +0800f20c link_rfu.s sub_0800F20C +0800f254 link_rfu.s rfu_func_080F97B8 +0800f29c link_rfu.s sub_0800F29C +0800f2a4 link_rfu.s IsSendingKeysToRfu +0800f2c4 link_rfu.s sub_0800F2C4_jp +0800f2f8 link_rfu.s Rfu_set_zero +0800f304 link_rfu.s sub_0800F304_jp +0800f334 link_rfu.s sub_0800F334_jp +0800f350 link_rfu.s sub_0800F350_jp +0800f744 link_rfu.s sub_0800F744_jp +0800f76c link_rfu.s sub_0800F76C_jp +0800f7a8 link_rfu.s sub_0800F7A8_jp +0800f7bc link_rfu.s sub_0800F7BC_jp +0800f7f8 link_rfu.s sub_0800F7F8_jp +0800f934 link_rfu.s sub_0800F934_jp +0800f968 link_rfu.s sub_0800F968_jp +0800fa4c link_rfu.s rfufunc_80F9F44 +0800fab0 link_rfu.s sub_0800FAB0 +0800fb28 link_rfu.s rfufunc_80FA020 +0800fc00 link_rfu.s sub_0800FC00_jp +0800fc1c link_rfu.s sub_0800FC1C_jp +0800fc48 link_rfu.s sub_0800FC48_jp +0800fc68 link_rfu.s sub_0800FC68_jp +0800fc98 link_rfu.s LinkRfu_FatalError +0800fccc link_rfu.s sub_0800FCCC_jp +0800fd2c link_rfu.s sub_0800FD2C_jp +0800fd64 link_rfu.s sub_0800FD64_jp +0800fd94 link_rfu.s task_add_05_task_del_08FA224_when_no_RfuFunc +0800fdb8 link_rfu.s sub_0800FDB8 +0800fe58 link_rfu.s sub_0800FE58_jp +0800fe90 link_rfu.s sub_0800FE90_jp +0800ff34 link_rfu.s sub_0800FF34_jp +0800ff54 link_rfu.s sub_0800FF54_jp +0800ff8c link_rfu.s sub_0800FF8C_jp +0800ffb0 link_rfu.s sub_0800FFB0_jp +0800ffd0 link_rfu.s rfu_get_multiplayer_id +0800fff4 link_rfu.s sub_0800FFF4 +08010000 link_rfu.s sub_08010000_jp +08010028 link_rfu.s sub_08010028_jp +08010040 link_rfu.s sub_08010040_jp +080100ec link_rfu.s sub_080100EC_jp +0801014c link_rfu.s sub_0801014C_jp +08010188 link_rfu.s sub_08010188_jp +080101d4 link_rfu.s sub_080101D4_jp +08010214 link_rfu.s sub_08010214_jp +08010250 link_rfu.s sub_08010250_jp +080102a0 link_rfu.s sub_080102A0_jp +0801034c link_rfu.s sub_0801034C_jp +080104e8 link_rfu.s sub_080104E8_jp +08010514 link_rfu.s sub_08010514_jp +08010568 link_rfu.s sub_08010568_jp +080105a4 link_rfu.s sub_080105A4_jp +080107fc link_rfu.s sub_080107FC_jp +080108a4 link_rfu.s sub_080108A4_jp +08010990 link_rfu.s rfu_REQ_recvData_then_sendData +080109b0 link_rfu.s sub_080109B0_jp +08010a0c link_rfu.s sub_08010A0C_jp +08010a38 link_rfu.s sub_08010A38_jp +08010a50 link_rfu.s sub_08010A50_jp +08010a74 link_rfu.s sub_08010a74 +08010a90 link_rfu.s sub_08010A90_jp +08010abc link_rfu.s sub_08010ABC_jp +08010afc link_rfu.s sub_08010AFC_jp +08010b2c link_rfu.s sub_08010B2C_jp +08010b58 link_rfu.s sub_08010B58_jp +08010b80 link_rfu.s sub_08010B80_jp +08010ba8 link_rfu.s sub_08010BA8_jp +08010c60 link_rfu.s sub_08010C60_jp +08010c90 link_rfu.s sub_08010C90_jp +08010ca0 link_rfu.s sub_08010CA0_jp +08010ccc link_rfu.s sub_08010CCC_jp +08010cec link_rfu.s sub_08010CEC_jp +08010cfc link_rfu.s sub_08010CFC_jp +08010ef4 link_rfu.s sub_08010EF4_jp +080110dc link_rfu.s sub_080110DC_jp +08011118 link_rfu.s sub_08011118_jp +08011164 link_rfu.s sub_08011164_jp +08011540 link_rfu.s sub_08011540_jp +08011554 link_rfu.s sub_08011554_jp +08011564 link_rfu.s sub_08011564_jp +08011570 link_rfu.s sub_08011570_jp +0801158c link_rfu.s GetRfuRecvQueueLength +0801159c link_rfu.s Rfu_IsMaster +080115a8 link_rfu.s ReadU16 +080115b4 link_rfu.s sub_080115B4_jp +080115d4 link_rfu.s sub_080115D4_jp +080115e8 link_rfu.s sub_080115E8_jp +0801167c link_rfu.s sub_0801167C_jp +08011690 link_rfu.s sub_08011690_jp +080116bc link_rfu.s sub_080116BC_jp +080116e4 link_rfu.s sub_080116E4_jp +080116fc link_rfu.s sub_080116FC_jp +08011748 link_rfu.s sub_08011748_jp +08011770 link_rfu.s sub_08011770_jp +080117c4 link_rfu.s sub_080117C4_jp +080117d0 link_rfu.s sub_080117D0_jp +08011858 link_rfu.s sub_08011858_jp +080118ac link_rfu.s sub_080118AC_jp +080118cc link_rfu.s sub_080118CC_jp +08011918 link_rfu.s sub_08011918_jp +08011980 link_rfu.s sub_08011980_jp +080119e0 link_rfu.s sub_080119E0_jp +08011ab4 link_rfu.s sub_08011AB4_jp +08011af8 link_rfu.s sub_08011AF8_jp +08011b88 link_rfu.s sub_08011B88_jp +08011c74 link_rfu.s sub_08011C74_jp +08011d10 link_rfu.s sub_08011D10_jp +08011d2c link_rfu.s sub_08011D2C_jp +08011d68 link_rfu.s sub_08011D68_jp +08011d88 link_rfu.s sub_08011D88_jp +08011fac link_rfu.s sub_08011FAC_jp +08011fc0 link_rfu.s sub_08011FC0_jp +union_room.s +08011fd4 union_room.s nullsub_14 +08011fd8 union_room.s sub_08011FD8_jp +080120a8 union_room.s sub_080120A8_jp +08012134 union_room.s sub_08012134_jp +080121d4 union_room.s sub_080121D4_jp +08012244 union_room.s BerryBlenderLinkBecomeLeader +08012288 union_room.s sub_08012288_jp +08012a64 union_room.s sub_08012A64_jp +08012ac4 union_room.s sub_08012AC4_jp +08012b78 union_room.s sub_08012B78_jp +08012bb4 union_room.s sub_08012BB4_jp +08012c60 union_room.s sub_08012C60_jp +08012d0c union_room.s sub_08012D0C_jp +08012d7c union_room.s sub_08012D7C_jp +08012dd8 union_room.s sub_08012DD8_jp +08012e9c union_room.s sub_08012E9C +08012fa8 union_room.s BerryBlenderLinkJoinGroup +08012fec union_room.s sub_08012FEC_jp +08013690 union_room.s sub_08013690_jp +080136dc union_room.s sub_080136DC_jp +08013748 union_room.s sub_08013748_jp +08013784 union_room.s sub_08013784_jp +08013890 union_room.s sub_08013890_jp +080138c4 union_room.s sub_080138C4_jp +080138fc union_room.s sub_080138FC_jp +0801394c union_room.s sub_0801394C_jp +08013a68 union_room.s sub_08013A68_jp +08013a80 union_room.s sub_08013A80_jp +08013a98 union_room.s sub_08013A98_jp +08013be8 union_room.s sub_08013BE8_jp +08013cac union_room.s sub_08013CAC_jp +08013d18 union_room.s sub_08013D18_jp +08013d98 union_room.s sub_08013D98_jp +08013e0c union_room.s sub_08013E0C_jp +08013e8c union_room.s sub_08013E8C_jp +08013eec union_room.s sub_08013EEC_jp +08013f14 union_room.s sub_08013F14_jp +08014298 union_room.s sub_08014298_jp +080144cc union_room.s sub_080144CC_jp +080144e0 union_room.s sub_080144E0_jp +08014508 union_room.s MEvent_CreateTask_Leader +08014548 union_room.s sub_08014548_jp +08014a04 union_room.s MEvent_CreateTask_CardOrNewsWithFriend +08014a50 union_room.s sub_08014A50_jp +08014db0 union_room.s MEvent_CreateTask_CardOrNewsOverWireless +08014dfc union_room.s sub_08014DFC +08015114 union_room.s UnionRoomSpecial +08015160 union_room.s ReadAsU16 +0801516c union_room.s sub_0801516C_jp +08015194 union_room.s sub_08015194_jp +080151b8 union_room.s sub_080151B8_jp +080151d0 union_room.s sub_080151D0_jp +080151e8 union_room.s sub_080151E8_jp +08016398 union_room.s var_800D_set_xB +080163b0 union_room.s sub_080163B0 +080163f0 union_room.s sub_080163F0_jp +08016448 union_room.s sub_08016448_jp +08016490 union_room.s sub_08016490_jp +080165e4 union_room.s sp182_move_string +08016610 union_room.s sub_08016610 +080167b0 union_room.s sub_080167B0_jp +08016900 union_room.s sub_08016900_jp +08016934 union_room.s sub_08016934_jp +08016a2c union_room.s sub_08016A2C_jp +08016a54 union_room.s sub_08016A54_jp +08016ad0 union_room.s sub_08016AD0_jp +08016b00 union_room.s sub_08016B00_jp +08016b30 union_room.s sub_08016B30_jp +08016b5c union_room.s sub_08016B5C_jp +08016b74 union_room.s PrintOnTextbox +08016bc8 union_room.s sub_08016BC8_jp +08016c28 union_room.s sub_08016C28_jp +08016c78 union_room.s sub_08016C78_jp +08016c88 union_room.s sub_08016C88_jp +08016d5c union_room.s sub_08016D5C_jp +08016e74 union_room.s sub_08016E74_jp +08016e98 union_room.s sub_08016E98_jp +08016ea4 union_room.s sub_08016EA4_jp +08017044 union_room.s sub_08017044_jp +080170b0 union_room.s sub_080170B0_jp +080170f4 union_room.s sub_080170F4_jp +0801713c union_room.s sub_0801713C_jp +080171a8 union_room.s sub_080171A8_jp +080171f8 union_room.s sub_080171F8_jp +0801727c union_room.s sub_0801727C_jp +08017360 union_room.s sub_08017360_jp +080173fc union_room.s sub_080173FC_jp +08017440 union_room.s sub_08017440_jp +08017468 union_room.s sub_08017468_jp +08017484 union_room.s sub_08017484_jp +080175ec union_room.s nullsub_89 +080175f0 union_room.s sub_080175F0_jp +080176b0 union_room.s sub_080176B0_jp +08017770 union_room.s sub_08017770_jp +080177b8 union_room.s sub_080177B8_jp +080177c4 union_room.s sub_080177C4_jp +0801785c union_room.s sub_0801785C_jp +080178c0 union_room.s sub_080178C0_jp +08017960 union_room.s sub_08017960_jp +08017a94 union_room.s sub_08017A94_jp +08017ac0 union_room.s InUnionRoom +08017ae0 union_room.s sub_08017AE0_jp +08017b38 union_room.s sub_08017B38_jp +08017b4c union_room.s sub_08017B4C_jp +08017b5c union_room.s sub_08017B5C_jp +08017ba4 union_room.s sub_08017BA4_jp +08017bdc union_room.s sub_08017BDC_jp +08017c48 union_room.s sub_08017C48_jp +08017c88 union_room.s sub_08017C88_jp +08017c98 union_room.s sub_08017C98_jp +08017cdc union_room.s sub_08017CDC_jp +mystery_gift.s +08017ebc mystery_gift.s vblankcb_mystery_gift_e_reader_run +08017ed0 mystery_gift.s c2_mystery_gift_e_reader_run +08017ee8 mystery_gift.s HandleMysteryGiftOrEReaderSetup +080180e4 mystery_gift.s c2_mystery_gift +08018110 mystery_gift.s c2_ereader +08018138 mystery_gift.s MainCB_FreeAllBuffersAndReturnToInitTitleScreen +08018180 mystery_gift.s PrintMysteryGiftOrEReaderTopMenu +0801822c mystery_gift.s MG_DrawTextBorder +08018240 mystery_gift.s MG_DrawCheckerboardPattern +080182e0 mystery_gift.s ClearScreenInBg0 +0801832c mystery_gift.s AddTextPrinterToWindow1 +08018388 mystery_gift.s ClearTextWindow +080183a4 mystery_gift.s MG_PrintTextOnWindow1AndWaitButton +08018438 mystery_gift.s HideDownArrow +08018460 mystery_gift.s ShowDownArrow +08018488 mystery_gift.s unref_HideDownArrowAndWaitButton +080184c8 mystery_gift.s PrintStringAndWait2Seconds +080184fc mystery_gift.s MysteryGift_HandleThreeOptionMenu +08018560 mystery_gift.s mevent_message_print_and_prompt_yes_no +080186b4 mystery_gift.s HandleMysteryGiftListMenu +08018804 mystery_gift.s ValidateCardOrNews +08018818 mystery_gift.s HandleLoadWonderCardOrNews +08018874 mystery_gift.s DestroyNewsOrCard +0801888c mystery_gift.s TearDownCardOrNews_ReturnToTopMenu +080188b8 mystery_gift.s mevent_message_prompt_discard +080188dc mystery_gift.s mevent_message_was_thrown_away +080188fc mystery_gift.s mevent_save_game +08018974 mystery_gift.s mevent_message +08018aa4 mystery_gift.s PrintMGSuccessMessage +08018b0c mystery_gift.s mevent_message_stamp_card_etc_send_status +08018bdc mystery_gift.s PrintMGSendStatus +08018c14 mystery_gift.s task_add_00_mystery_gift +08018c5c mystery_gift.s task00_mystery_gift +08019328 mystery_gift.s GetMysteryGiftBaseBlock +08019330 mystery_gift.s bgid_upload_textbox_1 +union_room_player_avatar.s +08019350 union_room_player_avatar.s is_walking_or_running +08019370 union_room_player_avatar.s sub_08019370 +08019388 union_room_player_avatar.s sub_08019388_jp +080193d8 union_room_player_avatar.s sub_080193D8_jp +08019428 union_room_player_avatar.s IsUnionRoomPlayerHidden +08019444 union_room_player_avatar.s HideUnionRoomPlayer +0801945c union_room_player_avatar.s ShowUnionRoomPlayer +08019474 union_room_player_avatar.s SetUnionRoomPlayerGfx +08019490 union_room_player_avatar.s CreateUnionRoomPlayerEventObject +080194b0 union_room_player_avatar.s RemoveUnionRoomPlayerEventObject +080194d0 union_room_player_avatar.s SetUnionRoomPlayerEnterExitMovement +union_room_battle.s +08019548 union_room_battle.s sub_08019548_jp +080195b4 union_room_battle.s sub_080195B4_jp +0801960c union_room_battle.s sub_0801960C_jp +08019668 union_room_battle.s sub_08019668_jp +08019720 union_room_battle.s sub_08019720_jp +0801976c union_room_battle.s sub_0801976C_jp +080197ac union_room_battle.s sub_080197AC_jp +08019838 union_room_battle.s sub_08019838_jp +08019878 union_room_battle.s sub_08019878_jp +080198bc union_room_battle.s sub_080198BC_jp +080198d8 union_room_battle.s sub_080198D8_jp +0801990c union_room_battle.s sub_0801990C_jp +080199a0 union_room_battle.s sub_080199A0_jp +080199c8 union_room_battle.s sub_080199C8_jp +08019a00 union_room_battle.s sub_08019A00_jp +08019a28 union_room_battle.s sub_08019A28_jp +08019a40 union_room_battle.s sub_08019A40_jp +08019ac8 union_room_battle.s sub_08019AC8 +08019b00 union_room_battle.s sub_08019B00 +08019c08 union_room_battle.s sub_08019C08 +08019ccc union_room_battle.s sub_08019CCC +08019cec union_room_battle.s sub_08019CEC +08019d2c union_room_battle.s sub_08019D2C +08019d3c union_room_battle.s sub_08019D3C +08019d60 union_room_battle.s sub_08019D60 +08019e68 union_room_battle.s sub_08019E68 +08019e88 union_room_battle.s sub_08019E88 +08019eac union_room_battle.s sub_08019EAC +08019ed0 union_room_battle.s sub_08019ED0 +08019ee4 union_room_battle.s sub_08019EE4 +08019ef4 union_room_battle.s sub_08019EF4 +0801a03c union_room_battle.s sub_0801A03C +0801a074 union_room_battle.s sub_0801A074 +0801a0b8 union_room_battle.s sub_0801A0B8 +0801a168 union_room_battle.s sub_0801A168 +0801a384 union_room_battle.s sub_0801A384 +0801a434 union_room_battle.s sub_0801A434 +0801a4dc union_room_battle.s sub_0801A4DC +0801a504 union_room_battle.s sub_0801A504 +0801a5a8 union_room_battle.s sub_0801A5A8 +0801a63c union_room_battle.s sub_0801A63C +0801a6b0 union_room_battle.s sub_0801A6B0 +0801a714 union_room_battle.s sub_0801A714 +0801a728 union_room_battle.s sub_0801A728 +0801aaac union_room_battle.s sub_0801AAAC +mevent2.s +0801aae0 mevent2.s GetSavedWonderNews +0801aaf4 mevent2.s GetSavedWonderCard +0801ab08 mevent2.s sav1_get_mevent_buffer_2 +0801ab1c mevent2.s sub_0801AB1C_jp +0801ab30 mevent2.s sub_0801AB30_jp +0801ab44 mevent2.s DestroyWonderNews +0801ab50 mevent2.s sub_0801AB50_jp +0801aba0 mevent2.s ValidateReceivedWonderNews +0801abe4 mevent2.s sub_0801ABE4 +0801abf8 mevent2.s WonderNews_Test_Unk_02 +0801ac1c mevent2.s s_DestroyWonderNews +0801ac50 mevent2.s sub_0801AC50_jp +0801ac74 mevent2.s sub_0801AC74_jp +0801acb0 mevent2.s DestroyWonderCard +0801ace4 mevent2.s sub_0801ACE4_jp +0801ad40 mevent2.s ValidateReceivedWonderCard +0801ad8c mevent2.s sub_0801AD8C_jp +0801adc8 mevent2.s WonderCard_Test_Unk_08_6 +0801adf0 mevent2.s sub_0801ADF0_jp +0801ae28 mevent2.s sub_0801AE28_jp +0801ae5c mevent2.s GetWonderCardFlagID +0801ae80 mevent2.s WonderCard_ResetInternalReceivedFlag +0801ae98 mevent2.s IsWonderCardFlagIDInValidRange +0801aeb8 mevent2.s CheckReceivedGiftFromWonderCard +0801aef8 mevent2.s sub_0801AEF8 +0801af20 mevent2.s sub_0801AF20_jp +0801af64 mevent2.s sub_0801AF64_jp +0801af8c mevent2.s sub_0801AF8C_jp +0801afc8 mevent2.s sub_0801AFC8_jp +0801b040 mevent2.s sub_0801B040_jp +0801b160 mevent2.s sub_0801B160_jp +0801b1ac mevent2.s sub_0801B1AC_jp +0801b1c8 mevent2.s sub_0801B1C8 +0801b208 mevent2.s MEventStruct_Unk1442CC_CompareField_unk_16 +0801b230 mevent2.s sub_0801B230 +0801b244 mevent2.s MEventStruct_Unk1442CC_GetValueNFrom_unk_20 +0801b2b0 mevent2.s sub_0801B2B0 +0801b354 mevent2.s mevent_081445C0 +0801b458 mevent2.s sub_0801B458_jp +0801b464 mevent2.s sub_0801B464_jp +0801b4a8 mevent2.s sub_0801B4A8 +0801b524 mevent2.s sub_0801B524_jp +0801b550 mevent2.s sub_0801B550_jp +0801b5b8 mevent2.s sub_0801B5B8_jp +mevent_801BAAC.s +0801b5d8 mevent_801BAAC.s InitWonderCardResources +0801b670 mevent_801BAAC.s DestroyWonderCardResources +0801b69c mevent_801BAAC.s FadeToWonderCardMenu +0801b8b0 mevent_801BAAC.s FadeOutFromWonderCard +0801b9f0 mevent_801BAAC.s sub_0801B9F0_jp +0801bca4 mevent_801BAAC.s sub_0801BCA4_jp +0801c04c mevent_801BAAC.s sub_0801C04C_jp +0801c17c mevent_801BAAC.s sub_0801C17C_jp +0801c224 mevent_801BAAC.s InitWonderNewsResources +0801c280 mevent_801BAAC.s DestroyWonderNewsResources +0801c2ac mevent_801BAAC.s FadeToWonderNewsMenu +0801c588 mevent_801BAAC.s FadeOutFromWonderNews +0801c754 mevent_801BAAC.s MENews_RemoveScrollIndicatorArrowPair +0801c794 mevent_801BAAC.s MENews_AddScrollIndicatorArrowPair +0801c7d4 mevent_801BAAC.s MENews_GetInput +0801c8b4 mevent_801BAAC.s sub_0801C8B4_jp +0801c95c mevent_801BAAC.s sub_0801C95C_jp +0801ca6c mevent_801BAAC.s sub_0801CA6C_jp +mevent_server.s +0801cb24 mevent_server.s mevent_srv_init_wnews +0801cb48 mevent_server.s mevent_srv_new_wcard +0801cb6c mevent_server.s mevent_srv_common_do_exec +0801cba8 mevent_server.s mevent_srv_init_common +0801cbfc mevent_server.s mevent_srv_free_resources +0801cc20 mevent_server.s mevent_srv_common_init_send +0801cc60 mevent_server.s mevent_first_if_not_null_else_second +0801cc6c mevent_server.s mevent_compare_pointers +0801cc84 mevent_server.s common_mainseq_0 +0801cc8c mevent_server.s common_mainseq_1 +0801cc90 mevent_server.s common_mainseq_2 +0801ccac mevent_server.s common_mainseq_3 +0801ccc8 mevent_server.s common_mainseq_4 +0801d240 mevent_server.s mevent_srv_exec_common +mevent_client.s +0801d294 mevent_client.s mevent_client_do_init +0801d2b8 mevent_client.s mevent_client_do_exec +0801d2f4 mevent_client.s mevent_client_inc_flag +0801d304 mevent_client.s mevent_client_get_buffer +0801d310 mevent_client.s mevent_client_set_param +0801d31c mevent_client.s mevent_client_init +0801d36c mevent_client.s mevent_client_free_resources +0801d390 mevent_client.s mevent_client_jmp_buffer +0801d3ac mevent_client.s mevent_client_send_word +0801d3e0 mevent_client.s mainseq_0 +0801d408 mevent_client.s mainseq_1 +0801d40c mevent_client.s mainseq_2 +0801d42c mevent_client.s mainseq_3 +0801d44c mevent_client.s mainseq_4 +0801d620 mevent_client.s mainseq_5 +0801d638 mevent_client.s mainseq_6 +0801d670 mevent_client.s mainseq_7 +0801d6a4 mevent_client.s mevent_client_exec +mevent_server_helpers.s +0801d6d0 mevent_server_helpers.s mevent_srv_sub_recv +0801d6dc mevent_server_helpers.s mevent_srv_sub_send +0801d6e8 mevent_server_helpers.s mevent_srv_sub_init +0801d714 mevent_server_helpers.s mevent_srv_sub_init_send +0801d738 mevent_server_helpers.s mevent_srv_sub_init_recv +0801d748 mevent_server_helpers.s mevent_recv_block +0801d764 mevent_server_helpers.s mevent_has_received +0801d788 mevent_server_helpers.s mevent_reset_recv +0801d798 mevent_server_helpers.s mevent_receive_func +0801d86c mevent_server_helpers.s mevent_send_func +0801d978 mevent_news.s GenerateRandomNews +0801d9d0 mevent_news.s sub_0801D9D0 +0801d9ec mevent_news.s sub_0801D9EC +0801da30 mevent_news.s sub_0801DA30 +0801dabc mevent_news.s sub_0801DABC +0801dadc mevent_news.s sub_0801DADC +0801dae8 mevent_news.s sub_0801DAE8 +0801db20 mevent_news.s sub_0801DB20 +0801db54 mevent_news.s sub_0801DB54 +union_room_chat.s +0801dbbc union_room_chat.s sub_0801DBBC_jp +0801dbf4 union_room_chat.s sub_0801DBF4_jp +0801dc54 union_room_chat.s sub_0801DC54_jp +0801dc78 union_room_chat.s c2_081284E0 +0801dd44 union_room_chat.s sub_0801DD44 +0801dd5c union_room_chat.s sub_0801DD5C_jp +0801dd78 union_room_chat.s sub_0801DD78_jp +0801ddc0 union_room_chat.s sub_0801DDC0_jp +0801ddd0 union_room_chat.s sub_0801DDD0_jp +0801de54 union_room_chat.s sub_0801DE54_jp +0801df44 union_room_chat.s sub_0801DF44_jp +0801e064 union_room_chat.s sub_0801E064_jp +0801e284 union_room_chat.s sub_0801E284_jp +0801e3e8 union_room_chat.s sub_0801E3E8_jp +0801e48c union_room_chat.s sub_0801E48C_jp +0801e588 union_room_chat.s sub_0801E588_jp +0801e65c union_room_chat.s sub_0801E65C_jp +0801e79c union_room_chat.s sub_0801E79C_jp +0801e9f8 union_room_chat.s sub_0801E9F8_jp +0801ea08 union_room_chat.s sub_0801EA08_jp +0801eab8 union_room_chat.s sub_0801EAB8_jp +0801eb74 union_room_chat.s sub_0801EB74_jp +0801eba0 union_room_chat.s sub_0801EBA0_jp +0801ebd4 union_room_chat.s sub_0801EBD4_jp +0801ebf0 union_room_chat.s sub_0801EBF0_jp +0801ec20 union_room_chat.s sub_0801EC20_jp +0801ec3c union_room_chat.s sub_0801EC3C_jp +0801ec7c union_room_chat.s sub_0801EC7C_jp +0801ec94 union_room_chat.s sub_0801EC94_jp +0801ecb8 union_room_chat.s sub_0801ECB8_jp +0801ece8 union_room_chat.s sub_0801ECE8_jp +0801ed2c union_room_chat.s sub_0801ED2C_jp +0801ed34 union_room_chat.s sub_0801ED34_jp +0801ed5c union_room_chat.s sub_0801ED5C_jp +0801ed8c union_room_chat.s sub_0801ED8C_jp +0801edb8 union_room_chat.s sub_0801EDB8_jp +0801ede0 union_room_chat.s sub_0801EDE0_jp +0801ee08 union_room_chat.s sub_0801EE08_jp +0801eeb0 union_room_chat.s sub_0801EEB0_jp +0801eebc union_room_chat.s sub_0801EEBC_jp +0801eed0 union_room_chat.s sub_0801EED0_jp +0801eedc union_room_chat.s sub_0801EEDC_jp +0801eeec union_room_chat.s sub_0801EEEC_jp +0801ef14 union_room_chat.s sub_0801EF14_jp +0801ef44 union_room_chat.s sub_0801EF44_jp +0801ef80 union_room_chat.s sub_0801EF80_jp +0801ef8c union_room_chat.s sub_0801EF8C_jp +0801ef98 union_room_chat.s sub_0801EF98_jp +0801efa4 union_room_chat.s sub_0801EFA4_jp +0801efe0 union_room_chat.s sub_0801EFE0 +0801efec union_room_chat.s copy_strings_to_sav1 +0801f0c4 union_room_chat.s sub_0801F0C4_jp +0801f2e0 union_room_chat.s sub_0801F2E0_jp +0801f344 union_room_chat.s sub_0801F344_jp +0801f354 union_room_chat.s sub_0801F354_jp +0801f384 union_room_chat.s sub_0801F384_jp +0801f390 union_room_chat.s sub_0801F390_jp +0801f3c8 union_room_chat.s sub_0801F3C8_jp +0801f3fc union_room_chat.s sub_0801F3FC_jp +0801f454 union_room_chat.s sub_0801F454_jp +0801f468 union_room_chat.s sub_0801F468_jp +0801f508 union_room_chat.s sub_0801F508_jp +0801f540 union_room_chat.s sub_0801F540_jp +0801f578 union_room_chat.s sub_0801F578_jp +0801f5e4 union_room_chat.s sub_0801F5E4_jp +0801f5f0 union_room_chat.s sub_0801F5F0_jp +0801f63c union_room_chat.s sub_0801F63C_jp +0801f680 union_room_chat.s sub_0801F680_jp +0801f6ec union_room_chat.s sub_0801F6EC_jp +0801f794 union_room_chat.s sub_0801F794_jp +0801f83c union_room_chat.s sub_0801F83C_jp +0801f878 union_room_chat.s sub_0801F878_jp +0801f954 union_room_chat.s sub_0801F954_jp +0801f980 union_room_chat.s sub_0801F980_jp +0801f9c4 union_room_chat.s sub_0801F9C4_jp +0801fa08 union_room_chat.s sub_0801FA08_jp +0801fa5c union_room_chat.s sub_0801FA5C_jp +0801faac union_room_chat.s sub_0801FAAC_jp +0801fafc union_room_chat.s sub_0801FAFC_jp +0801fb40 union_room_chat.s sub_0801FB40_jp +0801fb98 union_room_chat.s sub_0801FB98_jp +0801fbe8 union_room_chat.s sub_0801FBE8_jp +0801fbec union_room_chat.s sub_0801FBEC_jp +0801fce4 union_room_chat.s sub_0801FCE4_jp +0801fd0c union_room_chat.s sub_0801FD0C_jp +0801fd30 union_room_chat.s sub_0801FD30_jp +0801fd40 union_room_chat.s sub_0801FD40_jp +0801febc union_room_chat.s sub_0801FEBC_jp +0801fef0 union_room_chat.s sub_0801FEF0_jp +0801ff14 union_room_chat.s sub_0801FF14_jp +0801ff40 union_room_chat.s sub_0801FF40_jp +0801ff88 union_room_chat.s sub_0801FF88_jp +08020048 union_room_chat.s sub_08020048_jp +08020090 union_room_chat.s sub_08020090_jp +080200d8 union_room_chat.s sub_080200D8_jp +0802012c union_room_chat.s sub_0802012C_jp +08020140 union_room_chat.s sub_08020140_jp +0802019c union_room_chat.s sub_0802019C_jp +08020254 union_room_chat.s sub_08020254_jp +080202a0 union_room_chat.s sub_080202A0_jp +080202d0 union_room_chat.s sub_080202D0_jp +08020320 union_room_chat.s sub_08020320_jp +0802039c union_room_chat.s sub_0802039C_jp +080203c0 union_room_chat.s sub_080203C0_jp +080203ec union_room_chat.s sub_080203EC_jp +08020404 union_room_chat.s sub_08020404_jp +0802045c union_room_chat.s sub_0802045C_jp +0802048c union_room_chat.s sub_0802048C_jp +080204dc union_room_chat.s sub_080204DC_jp +08020534 union_room_chat.s sub_08020534_jp +080205ac union_room_chat.s sub_080205AC_jp +080205ec union_room_chat.s sub_080205EC_jp +08020604 union_room_chat.s sub_08020604_jp +08020638 union_room_chat.s sub_08020638_jp +08020658 union_room_chat.s sub_08020658_jp +080206c4 union_room_chat.s sub_080206C4_jp +080206f8 union_room_chat.s sub_080206F8_jp +08020734 union_room_chat.s sub_08020734_jp +08020780 union_room_chat.s sub_08020780_jp +080207d4 union_room_chat.s sub_080207D4_jp +0802080c union_room_chat.s sub_0802080C_jp +08020838 union_room_chat.s sub_08020838_jp +08020898 union_room_chat.s sub_08020898_jp +berry_crush.s +08020918 berry_crush.s sub_08020918_jp +08020924 berry_crush.s sub_08020924_jp +08020988 berry_crush.s sub_08020988_jp +08020aa4 berry_crush.s sub_08020AA4_jp +08020b38 berry_crush.s sub_08020B38_jp +08020b58 berry_crush.s sub_08020B58_jp +08020b68 berry_crush.s sub_08020B68_jp +08020b74 berry_crush.s sub_08020B74_jp +08020c90 berry_crush.s sub_08020C90_jp +08020ca4 berry_crush.s sub_08020CA4_jp +08020cbc berry_crush.s sub_08020CBC_jp +08020ce0 berry_crush.s sub_08020CE0_jp +08020d74 berry_crush.s sub_08020D74_jp +08021038 berry_crush.s sub_08021038_jp +0802117c berry_crush.s sub_0802117C_jp +080211b4 berry_crush.s sub_080211B4_jp +080211d4 berry_crush.s sub_080211D4_jp +08021338 berry_crush.s sub_08021338_jp +080213d8 berry_crush.s sub_080213D8_jp +08021410 berry_crush.s sub_08021410_jp +08021604 berry_crush.s sub_08021604_jp +08021674 berry_crush.s sub_08021674_jp +080216f8 berry_crush.s sub_080216F8_jp +08021758 berry_crush.s sub_08021758_jp +08021abc berry_crush.s sub_08021ABC_jp +08021ddc berry_crush.s sub_08021DDC_jp +08021f9c berry_crush.s sub_08021F9C_jp +08021fc0 berry_crush.s sub_08021FC0_jp +08022230 berry_crush.s sub_08022230_jp +08022284 berry_crush.s sub_08022284_jp +080222b4 berry_crush.s sub_080222B4_jp +080222e8 berry_crush.s sub_080222E8_jp +08022360 berry_crush.s sub_08022360_jp +08022434 berry_crush.s sub_08022434_jp +08022494 berry_crush.s sub_08022494_jp +080226c4 berry_crush.s sub_080226C4_jp +08022784 berry_crush.s sub_08022784_jp +080227b0 berry_crush.s sub_080227B0_jp +080227f8 berry_crush.s sub_080227F8_jp +0802288c berry_crush.s sub_0802288C_jp +08022950 berry_crush.s sub_08022950_jp +080229bc berry_crush.s sub_080229BC_jp +08022a14 berry_crush.s sub_08022A14_jp +08022a78 berry_crush.s sub_08022A78_jp +08022b80 berry_crush.s sub_08022B80_jp +08022ba0 berry_crush.s sub_08022BA0_jp +08022bc0 berry_crush.s sub_08022BC0_jp +08022c10 berry_crush.s sub_08022C10_jp +08022c68 berry_crush.s sub_08022C68_jp +08022c80 berry_crush.s sub_08022C80_jp +08022ddc berry_crush.s sub_08022DDC_jp +08022f24 berry_crush.s sub_08022F24_jp +08023058 berry_crush.s sub_08023058_jp +08023108 berry_crush.s sub_08023108_jp +080232e0 berry_crush.s sub_080232E0_jp +08023444 berry_crush.s sub_08023444_jp +080235ec berry_crush.s sub_080235EC_jp +08023684 berry_crush.s sub_08023684_jp +0802372c berry_crush.s sub_0802372C_jp +080237c4 berry_crush.s sub_080237C4_jp +08023954 berry_crush.s sub_08023954_jp +08023a40 berry_crush.s sub_08023A40_jp +08023e10 berry_crush.s sub_08023E10_jp +08023efc berry_crush.s sub_08023EFC_jp +08023ff0 berry_crush.s sub_08023FF0_jp +080240a8 berry_crush.s sub_080240A8_jp +08024184 berry_crush.s sub_08024184_jp +0802420c berry_crush.s sub_0802420C_jp +080242d0 berry_crush.s sub_080242D0_jp +08024330 berry_crush.s sub_08024330_jp +08024340 berry_crush.s sub_08024340_jp +080243d0 berry_crush.s sub_080243D0_jp +08024410 berry_crush.s sub_08024410_jp +berry_powder.s +08024434 berry_powder.s DecryptBerryPowder +08024448 berry_powder.s SetBerryPowder +0802445c berry_powder.s ApplyNewEncryptionKeyToBerryPowder +08024478 berry_powder.s HasEnoughBerryPowder_ +080244a0 berry_powder.s HasEnoughBerryPowder +080244cc berry_powder.s GiveBerryPowder +0802450c berry_powder.s TakeBerryPowder_ +08024548 berry_powder.s TakeBerryPowder +08024588 berry_powder.s GetBerryPowder +080245a0 berry_powder.s PrintBerryPowderAmount +080245f8 berry_powder.s DrawPlayerPowderAmount +08024654 berry_powder.s PrintPlayerBerryPowderAmount +08024678 berry_powder.s DisplayBerryPowderVendorMenu +080246e0 berry_powder.s RemoveBerryPowderVendorMenu +dodrio_berry_picking.s +08024704 dodrio_berry_picking.s sub_08024704_jp +080247e4 dodrio_berry_picking.s sub_080247E4_jp +080247f8 dodrio_berry_picking.s sub_080247F8_jp +08024990 dodrio_berry_picking.s sub_08024990_jp +08024b14 dodrio_berry_picking.s sub_08024B14_jp +08024b2c dodrio_berry_picking.s sub_08024B2C_jp +08024b4c dodrio_berry_picking.s sub_08024B4C_jp +08024b64 dodrio_berry_picking.s sub_08024B64_jp +08024b84 dodrio_berry_picking.s sub_08024B84_jp +08024bc8 dodrio_berry_picking.s sub_08024BC8_jp +08024c00 dodrio_berry_picking.s sub_08024C00_jp +08024cd8 dodrio_berry_picking.s sub_08024CD8_jp +08024d00 dodrio_berry_picking.s sub_08024D00_jp +08024dc4 dodrio_berry_picking.s sub_08024DC4_jp +08024e9c dodrio_berry_picking.s sub_08024E9C_jp +08024f20 dodrio_berry_picking.s sub_08024F20_jp +08024f38 dodrio_berry_picking.s sub_08024F38_jp +08024f60 dodrio_berry_picking.s sub_08024F60_jp +08024ff8 dodrio_berry_picking.s sub_08024FF8_jp +080250ec dodrio_berry_picking.s sub_080250EC_jp +08025238 dodrio_berry_picking.s sub_08025238_jp +0802540c dodrio_berry_picking.s sub_0802540C_jp +08025474 dodrio_berry_picking.s sub_08025474_jp +08025520 dodrio_berry_picking.s sub_08025520_jp +08025664 dodrio_berry_picking.s sub_08025664_jp +080256d8 dodrio_berry_picking.s sub_080256D8_jp +080257c4 dodrio_berry_picking.s sub_080257C4_jp +080259d4 dodrio_berry_picking.s sub_080259D4_jp +08025acc dodrio_berry_picking.s sub_08025ACC_jp +08025b18 dodrio_berry_picking.s sub_08025B18_jp +08025bd4 dodrio_berry_picking.s sub_08025BD4_jp +08025ca0 dodrio_berry_picking.s sub_08025CA0_jp +08025d10 dodrio_berry_picking.s sub_08025D10_jp +08025e0c dodrio_berry_picking.s sub_08025E0C_jp +08025f94 dodrio_berry_picking.s sub_08025F94_jp +08025fac dodrio_berry_picking.s sub_08025FAC_jp +08025fc0 dodrio_berry_picking.s sub_08025FC0_jp +08025fd4 dodrio_berry_picking.s sub_08025FD4_jp +08025fe4 dodrio_berry_picking.s sub_08025FE4_jp +08026008 dodrio_berry_picking.s sub_08026008_jp +0802602c dodrio_berry_picking.s sub_0802602C_jp +08026088 dodrio_berry_picking.s sub_08026088_jp +080260ec dodrio_berry_picking.s sub_080260EC_jp +080263fc dodrio_berry_picking.s sub_080263FC_jp +080264e4 dodrio_berry_picking.s sub_080264E4_jp +08026748 dodrio_berry_picking.s sub_08026748_jp +08026848 dodrio_berry_picking.s sub_08026848_jp +08026888 dodrio_berry_picking.s sub_08026888_jp +080268b4 dodrio_berry_picking.s sub_080268B4_jp +080268e8 dodrio_berry_picking.s sub_080268E8_jp +0802691c dodrio_berry_picking.s sub_0802691C_jp +08026978 dodrio_berry_picking.s sub_08026978_jp +080269e8 dodrio_berry_picking.s sub_080269E8_jp +08026a10 dodrio_berry_picking.s sub_08026A10_jp +08026a50 dodrio_berry_picking.s sub_08026A50_jp +08026adc dodrio_berry_picking.s sub_08026ADC_jp +08026b4c dodrio_berry_picking.s sub_08026B4C_jp +08026b70 dodrio_berry_picking.s sub_08026B70_jp +08026c30 dodrio_berry_picking.s sub_08026C30_jp +08026cac dodrio_berry_picking.s sub_08026CAC_jp +08026cdc dodrio_berry_picking.s sub_08026CDC_jp +08026ff4 dodrio_berry_picking.s sub_08026FF4_jp +08027064 dodrio_berry_picking.s sub_08027064_jp +080270a8 dodrio_berry_picking.s sub_080270A8_jp +080271b0 dodrio_berry_picking.s sub_080271B0_jp +0802721c dodrio_berry_picking.s sub_0802721C_jp +0802725c dodrio_berry_picking.s sub_0802725C_jp +080272d8 dodrio_berry_picking.s sub_080272D8_jp +08027314 dodrio_berry_picking.s sub_08027314_jp +080273c8 dodrio_berry_picking.s sub_080273C8_jp +080273ec dodrio_berry_picking.s sub_080273EC_jp +08027410 dodrio_berry_picking.s sub_08027410_jp +08027420 dodrio_berry_picking.s sub_08027420_jp +08027460 dodrio_berry_picking.s sub_08027460_jp +08027480 dodrio_berry_picking.s sub_08027480_jp +08027508 dodrio_berry_picking.s sub_08027508_jp +0802754c dodrio_berry_picking.s sub_0802754C_jp +08027590 dodrio_berry_picking.s sub_08027590_jp +0802760c dodrio_berry_picking.s sub_0802760C_jp +080276fc dodrio_berry_picking.s sub_080276FC_jp +0802771c dodrio_berry_picking.s sub_0802771C_jp +08027788 dodrio_berry_picking.s sub_08027788_jp +080277e8 dodrio_berry_picking.s IncrementWithLimit +080277f8 dodrio_berry_picking.s Min +08027808 dodrio_berry_picking.s sub_08027808 +0802781c dodrio_berry_picking.s sub_0802781C_jp +0802786c dodrio_berry_picking.s sub_0802786C_jp +0802788c dodrio_berry_picking.s sub_0802788C_jp +0802792c dodrio_berry_picking.s sub_0802792C_jp +08027a4c dodrio_berry_picking.s sub_08027A4C_jp +08027a64 dodrio_berry_picking.s sub_08027A64_jp +08027afc dodrio_berry_picking.s sub_08027AFC_jp +08027b28 dodrio_berry_picking.s sub_08027B28_jp +08027b5c dodrio_berry_picking.s sub_08027B5C_jp +08027e90 dodrio_berry_picking.s sub_08027E90_jp +08028018 dodrio_berry_picking.s sub_08028018_jp +08028044 dodrio_berry_picking.s sub_08028044_jp +0802807c dodrio_berry_picking.s sub_0802807C_jp +080280a0 dodrio_berry_picking.s sub_080280A0_jp +080280d4 dodrio_berry_picking.s sub_080280D4_jp +08028134 dodrio_berry_picking.s sub_08028134_jp +080281d4 dodrio_berry_picking.s sub_080281D4_jp +080281f8 dodrio_berry_picking.s sub_080281F8_jp +08028230 dodrio_berry_picking.s sub_08028230_jp +08028268 dodrio_berry_picking.s sub_08028268_jp +080282d8 dodrio_berry_picking.s sub_080282D8_jp +08028340 dodrio_berry_picking.s sub_08028340_jp +08028380 dodrio_berry_picking.s sub_08028380_jp +080283b8 dodrio_berry_picking.s sub_080283B8_jp +080283e0 dodrio_berry_picking.s sub_080283E0_jp +0802840c dodrio_berry_picking.s nullsub_15 +08028410 dodrio_berry_picking.s sub_08028410_jp +08028460 dodrio_berry_picking.s sub_08028460_jp +08028510 dodrio_berry_picking.s sub_08028510_jp +08028554 dodrio_berry_picking.s sub_08028554_jp +08028600 dodrio_berry_picking.s sub_08028600_jp +08028714 dodrio_berry_picking.s sub_08028714_jp +08028760 dodrio_berry_picking.s sub_08028760_jp +080287b4 dodrio_berry_picking.s sub_080287B4_jp +080288ac dodrio_berry_picking.s sub_080288AC_jp +08028924 dodrio_berry_picking.s sub_08028924_jp +0802895c dodrio_berry_picking.s sub_0802895C_jp +080289a8 dodrio_berry_picking.s sub_080289A8_jp +080289d0 dodrio_berry_picking.s sub_080289D0_jp +080289fc dodrio_berry_picking.s sub_080289FC_jp +08028a20 dodrio_berry_picking.s sub_08028A20_jp +08028a70 dodrio_berry_picking.s sub_08028A70_jp +08028b28 dodrio_berry_picking.s sub_08028B28_jp +08028b78 dodrio_berry_picking.s sub_08028B78_jp +08028bb0 dodrio_berry_picking.s sub_08028BB0_jp +08028bf4 dodrio_berry_picking.s sub_08028BF4_jp +08028c40 dodrio_berry_picking.s sub_08028C40_jp +08028cf8 dodrio_berry_picking.s sub_08028CF8_jp +08028d24 dodrio_berry_picking.s sub_08028D24_jp +08028d58 dodrio_berry_picking.s nullsub_16 +08028d68 dodrio_berry_picking.s sub_08028D68_jp +08028da0 dodrio_berry_picking.s sub_08028DA0_jp +08028ea0 dodrio_berry_picking.s sub_08028EA0_jp +08028fa0 dodrio_berry_picking.s sub_08028FA0_jp +08029000 dodrio_berry_picking.s sub_08029000_jp +0802900c dodrio_berry_picking.s sub_0802900C_jp +08029040 dodrio_berry_picking.s sub_08029040_jp +08029064 dodrio_berry_picking.s sub_08029064_jp +0802916c dodrio_berry_picking.s sub_0802916C_jp +080293d4 dodrio_berry_picking.s sub_080293D4_jp +080295a4 dodrio_berry_picking.s sub_080295A4_jp +08029d28 dodrio_berry_picking.s sub_08029D28_jp +0802a074 dodrio_berry_picking.s sub_0802A074_jp +0802a148 dodrio_berry_picking.s sub_0802A148_jp +0802a228 dodrio_berry_picking.s sub_0802A228_jp +0802a27c dodrio_berry_picking.s sub_0802A27C_jp +0802a3f0 dodrio_berry_picking.s sub_0802A3F0_jp +0802a41c dodrio_berry_picking.s sub_0802A41C_jp +0802a420 dodrio_berry_picking.s sub_0802A420_jp +0802a450 dodrio_berry_picking.s sub_0802A450_jp +0802a464 dodrio_berry_picking.s sub_0802A464_jp +0802a488 dodrio_berry_picking.s sub_0802A488_jp +0802a49c dodrio_berry_picking.s sub_0802A49C_jp +0802a5dc dodrio_berry_picking.s sub_0802A5DC +pokemon_jump.s +0802a69c pokemon_jump.s sub_0802A69C_jp +0802a73c pokemon_jump.s sub_0802A73C_jp +0802a754 pokemon_jump.s sub_0802A754_jp +0802a788 pokemon_jump.s sub_0802A788_jp +0802a814 pokemon_jump.s sub_0802A814_jp +0802a88c pokemon_jump.s sub_0802A88C_jp +0802a8f4 pokemon_jump.s sub_0802A8F4_jp +0802a920 pokemon_jump.s sub_0802A920_jp +0802a94c pokemon_jump.s sub_0802A94C_jp +0802a960 pokemon_jump.s sub_0802A960_jp +0802a978 pokemon_jump.s sub_0802A978_jp +0802a994 pokemon_jump.s sub_0802A994_jp +0802ab08 pokemon_jump.s sub_0802AB08_jp +0802ab44 pokemon_jump.s sub_0802AB44_jp +0802ab98 pokemon_jump.s sub_0802AB98_jp +0802ac74 pokemon_jump.s sub_0802AC74_jp +0802acfc pokemon_jump.s sub_0802ACFC_jp +0802ad38 pokemon_jump.s sub_0802AD38_jp +0802ad6c pokemon_jump.s sub_0802AD6C_jp +0802ae88 pokemon_jump.s sub_0802AE88_jp +0802aef0 pokemon_jump.s sub_0802AEF0_jp +0802af3c pokemon_jump.s sub_0802AF3C_jp +0802af90 pokemon_jump.s sub_0802AF90_jp +0802afc8 pokemon_jump.s sub_0802AFC8_jp +0802b010 pokemon_jump.s sub_0802B010_jp +0802b05c pokemon_jump.s sub_0802B05C_jp +0802b0a8 pokemon_jump.s sub_0802B0A8_jp +0802b0c8 pokemon_jump.s sub_0802B0C8_jp +0802b164 pokemon_jump.s sub_0802B164_jp +0802b1c0 pokemon_jump.s sub_0802B1C0_jp +0802b25c pokemon_jump.s sub_0802B25C_jp +0802b2bc pokemon_jump.s sub_0802B2BC_jp +0802b31c pokemon_jump.s sub_0802B31C_jp +0802b358 pokemon_jump.s sub_0802B358_jp +0802b3ac pokemon_jump.s sub_0802B3AC_jp +0802b3f8 pokemon_jump.s sub_0802B3F8_jp +0802b414 pokemon_jump.s sub_0802B414_jp +0802b4d4 pokemon_jump.s sub_0802B4D4_jp +0802b5c0 pokemon_jump.s sub_0802B5C0_jp +0802b658 pokemon_jump.s sub_0802B658_jp +0802b74c pokemon_jump.s sub_0802B74C_jp +0802b878 pokemon_jump.s sub_0802B878_jp +0802b954 pokemon_jump.s sub_0802B954_jp +0802ba24 pokemon_jump.s sub_0802BA24_jp +0802ba78 pokemon_jump.s sub_0802BA78_jp +0802bb54 pokemon_jump.s sub_0802BB54_jp +0802bb74 pokemon_jump.s sub_0802BB74_jp +0802bb94 pokemon_jump.s sub_0802BB94_jp +0802bbd8 pokemon_jump.s sub_0802BBD8_jp +0802bc3c pokemon_jump.s sub_0802BC3C_jp +0802bc70 pokemon_jump.s sub_0802BC70_jp +0802bd8c pokemon_jump.s sub_0802BD8C_jp +0802bdac pokemon_jump.s sub_0802BDAC_jp +0802bdd0 pokemon_jump.s sub_0802BDD0_jp +0802bddc pokemon_jump.s sub_0802BDDC_jp +0802be08 pokemon_jump.s sub_0802BE08_jp +0802be24 pokemon_jump.s sub_0802BE24_jp +0802be58 pokemon_jump.s sub_0802BE58_jp +0802be80 pokemon_jump.s sub_0802BE80_jp +0802beb0 pokemon_jump.s sub_0802BEB0_jp +0802bed0 pokemon_jump.s sub_0802BED0_jp +0802bf34 pokemon_jump.s sub_0802BF34_jp +0802bf54 pokemon_jump.s sub_0802BF54_jp +0802bf64 pokemon_jump.s sub_0802BF64_jp +0802bf74 pokemon_jump.s sub_0802BF74_jp +0802c08c pokemon_jump.s sub_0802C08C_jp +0802c130 pokemon_jump.s sub_0802C130_jp +0802c22c pokemon_jump.s sub_0802C22C_jp +0802c2d0 pokemon_jump.s sub_0802C2D0_jp +0802c30c pokemon_jump.s sub_0802C30C_jp +0802c344 pokemon_jump.s sub_0802C344_jp +0802c37c pokemon_jump.s sub_0802C37C_jp +0802c3a4 pokemon_jump.s sub_0802C3A4_jp +0802c400 pokemon_jump.s sub_0802C400_jp +0802c430 pokemon_jump.s sub_0802C430_jp +0802c474 pokemon_jump.s sub_0802C474_jp +0802c484 pokemon_jump.s sub_0802C484_jp +0802c494 pokemon_jump.s sub_0802C494_jp +0802c4b0 pokemon_jump.s sub_0802C4B0_jp +0802c4d4 pokemon_jump.s sub_0802C4D4_jp +0802c4fc pokemon_jump.s sub_0802C4FC_jp +0802c50c pokemon_jump.s sub_0802C50C_jp +0802c52c pokemon_jump.s sub_0802C52C_jp +0802c574 pokemon_jump.s sub_0802C574_jp +0802c5a0 pokemon_jump.s sub_0802C5A0_jp +0802c5b0 pokemon_jump.s sub_0802C5B0_jp +0802c5bc pokemon_jump.s sub_0802C5BC_jp +0802c5dc pokemon_jump.s sub_0802C5DC_jp +0802c5fc pokemon_jump.s sub_0802C5FC_jp +0802c614 pokemon_jump.s sub_0802C614_jp +0802c668 pokemon_jump.s sub_0802C668_jp +0802c6b0 pokemon_jump.s sub_0802C6B0_jp +0802c6c8 pokemon_jump.s sub_0802C6C8_jp +0802c808 pokemon_jump.s sub_0802C808_jp +0802c870 pokemon_jump.s sub_0802C870_jp +0802c8e4 pokemon_jump.s sub_0802C8E4_jp +0802c90c pokemon_jump.s sub_0802C90C_jp +0802c934 pokemon_jump.s sub_0802C934_jp +0802c97c pokemon_jump.s sub_0802C97C_jp +0802c9a4 pokemon_jump.s sub_0802C9A4_jp +0802c9fc pokemon_jump.s sub_0802C9FC_jp +0802ca30 pokemon_jump.s sub_0802CA30_jp +0802ca64 pokemon_jump.s sub_0802CA64_jp +0802ca8c pokemon_jump.s sub_0802CA8C_jp +0802cac8 pokemon_jump.s sub_0802CAC8_jp +0802cb3c pokemon_jump.s sub_0802CB3C_jp +0802cb90 pokemon_jump.s sub_0802CB90_jp +0802cc44 pokemon_jump.s sub_0802CC44_jp +0802cd38 pokemon_jump.s sub_0802CD38_jp +0802cd5c pokemon_jump.s sub_0802CD5C_jp +0802cd68 pokemon_jump.s sub_0802CD68_jp +0802cda0 pokemon_jump.s sub_0802CDA0_jp +0802cdb0 pokemon_jump.s sub_0802CDB0_jp +0802cdbc pokemon_jump.s sub_0802CDBC_jp +0802cde4 pokemon_jump.s sub_0802CDE4_jp +0802cdfc pokemon_jump.s sub_0802CDFC_jp +0802ce20 pokemon_jump.s sub_0802CE20_jp +0802ce44 pokemon_jump.s sub_0802CE44_jp +0802cfd8 pokemon_jump.s sub_0802CFD8_jp +0802d044 pokemon_jump.s sub_0802D044_jp +0802d0b0 pokemon_jump.s sub_0802D0B0_jp +0802d13c pokemon_jump.s sub_0802D13C_jp +0802d1e8 pokemon_jump.s sub_0802D1E8_jp +0802d28c pokemon_jump.s sub_0802D28C_jp +0802d2d8 pokemon_jump.s sub_0802D2D8_jp +0802d37c pokemon_jump.s sub_0802D37C_jp +0802d420 pokemon_jump.s sub_0802D420_jp +0802d458 pokemon_jump.s sub_0802D458_jp +0802d47c pokemon_jump.s sub_0802D47C_jp +0802d4dc pokemon_jump.s sub_0802D4DC_jp +0802d574 pokemon_jump.s sub_0802D574_jp +0802d5ec pokemon_jump.s sub_0802D5EC_jp +0802d664 pokemon_jump.s sub_0802D664_jp +0802d704 pokemon_jump.s sub_0802D704_jp +0802d734 pokemon_jump.s sub_0802D734_jp +0802d77c pokemon_jump.s sub_0802D77C_jp +0802d78c pokemon_jump.s sub_0802D78C_jp +0802d808 pokemon_jump.s sub_0802D808_jp +0802d884 pokemon_jump.s sub_0802D884_jp +0802d8f0 pokemon_jump.s sub_0802D8F0_jp +0802d978 pokemon_jump.s sub_0802D978_jp +0802d994 pokemon_jump.s sub_0802D994_jp +0802d9c4 pokemon_jump.s sub_0802D9C4_jp +0802da00 pokemon_jump.s sub_0802DA00_jp +0802da5c pokemon_jump.s sub_0802DA5C_jp +0802da6c pokemon_jump.s sub_0802DA6C_jp +0802da80 pokemon_jump.s sub_0802DA80_jp +0802da98 pokemon_jump.s sub_0802DA98_jp +0802dab0 pokemon_jump.s sub_0802DAB0_jp +0802dac4 pokemon_jump.s sub_0802DAC4_jp +0802dad8 pokemon_jump.s sub_0802DAD8_jp +0802daec pokemon_jump.s sub_0802DAEC_jp +0802db00 pokemon_jump.s sub_0802DB00_jp +0802db14 pokemon_jump.s sub_0802DB14_jp +0802dbd0 pokemon_jump.s sub_0802DBD0_jp +0802dc68 pokemon_jump.s sub_0802DC68_jp +0802dccc pokemon_jump.s sub_0802DCCC_jp +0802dd04 pokemon_jump.s sub_0802DD04_jp +0802dd50 pokemon_jump.s sub_0802DD50_jp +0802dd88 pokemon_jump.s sub_0802DD88_jp +0802dda4 pokemon_jump.s sub_0802DDA4_jp +0802ddc8 pokemon_jump.s sub_0802DDC8_jp +0802de18 pokemon_jump.s sub_0802DE18_jp +0802de30 pokemon_jump.s sub_0802DE30_jp +0802deb4 pokemon_jump.s sub_0802DEB4_jp +0802df2c pokemon_jump.s sub_0802DF2C_jp +0802df5c pokemon_jump.s sub_0802DF5C_jp +0802dfc8 pokemon_jump.s sub_0802DFC8_jp +0802e024 pokemon_jump.s sub_0802E024 +0802e034 pokemon_jump.s ResetPokeJumpResults +0802e04c pokemon_jump.s sub_0802E04C +0802e0a0 pokemon_jump.s sub_0802E0A0_jp +0802e0bc pokemon_jump.s sub_0802E0BC_jp +0802e0dc pokemon_jump.s sub_0802E0DC_jp +0802e17c pokemon_jump.s sub_0802E17C_jp +0802e284 pokemon_jump.s TruncateToFirstWordOnly +0802e2a0 pokemon_jump.s sub_0802E2A0_jp +0802e2ec pokemon_jump.s sub_0802E2EC_jp +0802e320 pokemon_jump.s sub_0802E320_jp +0802e334 pokemon_jump.s sub_0802E334_jp +0802e3c0 pokemon_jump.s sub_0802E3C0_jp +0802e4a0 pokemon_jump.s sub_0802E4A0_jp +0802e52c pokemon_jump.s sub_0802E52C_jp +0802e59c pokemon_jump.s sub_0802E59C_jp +0802e6b4 pokemon_jump.s sub_0802E6B4_jp +0802e714 pokemon_jump.s sub_0802E714_jp +0802e788 pokemon_jump.s sub_0802E788_jp +0802e7e8 pokemon_jump.s sub_0802E7E8_jp +0802e7fc pokemon_jump.s sub_0802E7FC_jp +0802e8fc pokemon_jump.s sub_0802E8FC_jp +0802ea30 pokemon_jump.s sub_0802EA30_jp +0802ea94 pokemon_jump.s sub_0802EA94_jp +0802eac0 pokemon_jump.s sub_0802EAC0_jp +0802ebb4 pokemon_jump.s sub_0802EBB4_jp +0802ec0c pokemon_jump.s sub_0802EC0C_jp +0802ec60 pokemon_jump.s sub_0802EC60_jp +rtc.s +0802ed30 rtc.s RtcDisableInterrupts +0802ed48 rtc.s RtcRestoreInterrupts +0802ed5c rtc.s ConvertBcdToBinary +0802ed84 rtc.s IsLeapYear +0802edb8 rtc.s ConvertDateToDayCount +0802ee44 rtc.s RtcGetDayCount +0802ee80 rtc.s RtcInit +0802eee0 rtc.s RtcGetErrorStatus +0802eeec rtc.s RtcGetInfo +0802ef1c rtc.s RtcGetDateTime +0802ef34 rtc.s RtcGetStatus +0802ef4c rtc.s RtcGetRawInfo +0802ef60 rtc.s RtcCheckInfo +0802f05c rtc.s RtcReset +0802f070 rtc.s FormatDecimalTime +0802f0a8 rtc.s FormatHexTime +0802f0e0 rtc.s FormatHexRtcTime +0802f0f8 rtc.s FormatDecimalDate +0802f130 rtc.s FormatHexDate +0802f168 rtc.s RtcCalcTimeDifference +0802f1ec rtc.s RtcCalcLocalTime +0802f218 rtc.s RtcInitLocalTimeOffset +0802f22c rtc.s RtcCalcLocalTimeOffset +0802f260 rtc.s CalcTimeDifference +0802f2c8 rtc.s RtcGetMinuteCount +0802f300 rtc.s RtcGetLocalDayCount +main_menu.s +0802f314 main_menu.s CB2_MainMenu +0802f32c main_menu.s VBlankCB_MainMenu +0802f340 main_menu.s CB2_InitMainMenu +0802f34c main_menu.s CB2_ReinitMainMenu +0802f358 main_menu.s InitMainMenu +0802f53c main_menu.s Task_MainMenuCheckSaveFile +0802f718 main_menu.s Task_WaitForBatteryDryErrorWindow +0802f76c main_menu.s Task_MainMenuCheckBattery +0802f80c main_menu.s Task_WaitForSaveFileErrorWindow +0802f860 main_menu.s Task_DisplayMainMenu +0802fdb0 main_menu.s Task_HighlightSelectedMainMenuItem +0802fde0 main_menu.s HandleMainMenuInput +0802ff4c main_menu.s Task_HandleMainMenuInput +0802ff7c main_menu.s Task_HandleMainMenuAPressed +08030284 main_menu.s Task_HandleMainMenuBPressed +080302e4 main_menu.s Task_DisplayMainMenuInvalidActionError +080303d8 main_menu.s HighlightSelectedMainMenuItem +080304f0 main_menu.s Task_NewGameBirchSpeech_Init +0803058c main_menu.s sub_0803058c +080305f0 main_menu.s Task_NewGameBirchSpeech_WaitToShowBirch +08030668 main_menu.s Task_NewGameBirchSpeech_WaitForSpriteFadeInWelcome +0803070c main_menu.s Task_NewGameBirchSpeech_ThisIsAPokemon +0803076c main_menu.s Task_NewGameBirchSpeech_MainSpeech +080307b0 main_menu.s Task_NewGameBirchSpeechSub_InitPokeBall +08030854 main_menu.s Task_NewGameBirchSpeechSub_WaitForLotad +0803090c main_menu.s Task_NewGameBirchSpeech_AndYouAre +08030958 main_menu.s Task_NewGameBirchSpeech_StartBirchLotadPlatformFade +080309d0 main_menu.s Task_NewGameBirchSpeech_SlidePlatformAway +08030a14 main_menu.s Task_NewGameBirchSpeech_StartPlayerFadeIn +08030ac4 main_menu.s Task_NewGameBirchSpeech_WaitForPlayerFadeIn +08030b08 main_menu.s Task_NewGameBirchSpeech_BoyOrGirl +08030b48 main_menu.s Task_NewGameBirchSpeech_WaitToShowGenderMenu +08030b78 main_menu.s Task_NewGameBirchSpeech_ChooseGender +08030c14 main_menu.s Task_NewGameBirchSpeech_SlideOutOldGenderSprite +08030cbc main_menu.s Task_NewGameBirchSpeech_SlideInNewGenderSprite +08030d14 main_menu.s Task_NewGameBirchSpeech_WhatsYourName +08030d54 main_menu.s Task_NewGameBirchSpeech_WaitForWhatsYourNameToPrint +08030d80 main_menu.s Task_NewGameBirchSpeech_WaitPressBeforeNameChoice +08030dd0 main_menu.s Task_NewGameBirchSpeech_StartNamingScreen +08030e44 main_menu.s Task_NewGameBirchSpeech_SoItsPlayerName +08030e84 main_menu.s Task_NewGameBirchSpeech_CreateNameYesNo +08030ec8 main_menu.s Task_NewGameBirchSpeech_ProcessNameYesNoMenu +08030f60 main_menu.s Task_NewGameBirchSpeech_SlidePlatformAway2 +08030f98 main_menu.s Task_NewGameBirchSpeech_ReshowBirchLotad +0803107c main_menu.s Task_NewGameBirchSpeech_WaitForSpriteFadeInAndTextPrinter +08031124 main_menu.s Task_NewGameBirchSpeech_AreYouReady +08031204 main_menu.s Task_NewGameBirchSpeech_ShrinkPlayer +080312c0 main_menu.s Task_NewGameBirchSpeech_WaitForPlayerShrink +080312fc main_menu.s Task_NewGameBirchSpeech_FadePlayerToWhite +08031370 main_menu.s Task_NewGameBirchSpeech_Cleanup +080313b8 main_menu.s CB2_NewGameBirchSpeech_ReturnFromNamingScreen +08031614 main_menu.s SpriteCB_Null +08031618 main_menu.s SpriteCB_MovePlayerDownWhileShrinking +08031634 main_menu.s NewGameBirchSpeech_CreateLotadSprite +0803166c main_menu.s AddBirchSpeechObjects +0803179c main_menu.s Task_NewGameBirchSpeech_FadeOutTarget1InTarget2 +0803180c main_menu.s NewGameBirchSpeech_StartFadeOutTarget1InTarget2 +0803187c main_menu.s Task_NewGameBirchSpeech_FadeInTarget1OutTarget2 +080318ec main_menu.s NewGameBirchSpeech_StartFadeInTarget1OutTarget2 +0803195c main_menu.s Task_NewGameBirchSpeech_FadePlatformIn +080319c8 main_menu.s NewGameBirchSpeech_StartFadePlatformIn +08031a08 main_menu.s Task_NewGameBirchSpeech_FadePlatformOut +08031a74 main_menu.s NewGameBirchSpeech_StartFadePlatformOut +08031ab4 main_menu.s NewGameBirchSpeech_ShowGenderMenu +08031b20 main_menu.s NewGameBirchSpeech_ProcessGenderMenuInput +08031b30 main_menu.s NewGameBirchSpeech_SetDefaultPlayerName +08031b84 main_menu.s CreateMainMenuErrorWindow +08031be8 main_menu.s MainMenu_FormatSavegameText +08031c00 main_menu.s MainMenu_FormatSavegamePlayer +08031c4c main_menu.s MainMenu_FormatSavegameTime +08031cb0 main_menu.s MainMenu_FormatSavegamePokedex +08031d28 main_menu.s MainMenu_FormatSavegameBadges +08031d9c main_menu.s LoadMainMenuWindowFrameTiles +08031de4 main_menu.s DrawMainMenuWindowBorder +08031f48 main_menu.s ClearMainMenuWindowTilemap +08031f90 main_menu.s NewGameBirchSpeech_ClearGenderWindowTilemap +08031fd8 main_menu.s MainMenu_FormatSavegameTime +08032010 main_menu.s NewGameBirchSpeech_ClearWindow +08032098 main_menu.s NewGameBirchSpeech_ShowPokeBallPrinterCallback +080320c4 main_menu.s CreateYesNoMenuParameterized +0803213c main_menu.s sub_0803213c +08032174 main_menu.s sub_08032174 +080324b4 main_menu.s Task_NewGameBirchSpeech_ReturnFromNamingScreenShowTextbox +battle_controllers.s +080324ec battle_controllers.s HandleLinkBattleSetup +08032534 battle_controllers.s SetUpBattleVarsAndBirchZigzagoon +08032600 battle_controllers.s sub_08032600_jp +080326bc battle_controllers.s InitSinglePlayerBtlControllers +08032b58 battle_controllers.s InitLinkBtlControllers +08032ee8 battle_controllers.s SetBattlePartyIds +08033050 battle_controllers.s PrepareBufferDataTransfer +080330dc battle_controllers.s CreateTasksForSendRecvLinkBuffers +0803318c battle_controllers.s PrepareBufferDataTransferLink +0803330c battle_controllers.s Task_HandleSendLinkBuffersData +080334e0 battle_controllers.s sub_080334E0 +080335f4 battle_controllers.s Task_HandleCopyReceivedLinkBuffersData +0803374c battle_controllers.s BtlController_EmitGetMonData +08033770 battle_controllers.s BtlController_EmitGetRawMonData +08033798 battle_controllers.s BtlController_EmitSetMonData +080337d8 battle_controllers.s BtlController_EmitSetRawMonData +08033818 battle_controllers.s BtlController_EmitLoadMonSprite +08033838 battle_controllers.s BtlController_EmitSwitchInAnim +0803385c battle_controllers.s BtlController_EmitReturnMonToBall +0803387c battle_controllers.s BtlController_EmitDrawTrainerPic +0803389c battle_controllers.s BtlController_EmitTrainerSlide +080338bc battle_controllers.s BtlController_EmitTrainerSlideBack +080338dc battle_controllers.s BtlController_EmitFaintAnimation +080338fc battle_controllers.s BtlController_EmitPaletteFade +0803391c battle_controllers.s BtlController_EmitSuccessBallThrowAnim +0803393c battle_controllers.s BtlController_EmitBallThrowAnim +0803395c battle_controllers.s BtlController_EmitPause +080339a4 battle_controllers.s BtlController_EmitMoveAnimation +08033a7c battle_controllers.s BtlController_EmitPrintString +08033b74 battle_controllers.s BtlController_EmitPrintSelectionString +08033c3c battle_controllers.s BtlController_EmitChooseAction +08033c68 battle_controllers.s BtlController_EmitUnknownYesNoBox +08033c88 battle_controllers.s BtlController_EmitChooseMove +08033cc4 battle_controllers.s BtlController_EmitChooseItem +08033cf8 battle_controllers.s BtlController_EmitChoosePokemon +08033d34 battle_controllers.s BtlController_EmitCmd23 +08033d54 battle_controllers.s BtlController_EmitHealthBarUpdate +08033d8c battle_controllers.s BtlController_EmitExpUpdate +08033dc0 battle_controllers.s BtlController_EmitStatusIconUpdate +08033e14 battle_controllers.s BtlController_EmitStatusAnimation +08033e50 battle_controllers.s BtlController_EmitStatusXor +08033e70 battle_controllers.s BtlController_EmitDataTransfer +08033eb8 battle_controllers.s BtlController_EmitDMA3Transfer +08033f20 battle_controllers.s BtlController_EmitPlayBGM +08033f68 battle_controllers.s BtlController_EmitCmd32 +08033fb0 battle_controllers.s BtlController_EmitTwoReturnValues +08033fdc battle_controllers.s BtlController_EmitChosenMonReturnValue +08034014 battle_controllers.s BtlController_EmitOneReturnValue +08034040 battle_controllers.s BtlController_EmitOneReturnValue_Duplicate +0803406c battle_controllers.s BtlController_EmitCmd37 +0803408c battle_controllers.s BtlController_EmitCmd38 +080340ac battle_controllers.s BtlController_EmitCmd39 +080340cc battle_controllers.s BtlController_EmitCmd40 +080340ec battle_controllers.s BtlController_EmitHitAnimation +0803410c battle_controllers.s BtlController_EmitCmd42 +0803412c battle_controllers.s BtlController_EmitPlaySE +08034158 battle_controllers.s BtlController_EmitPlayFanfareOrBGM +08034184 battle_controllers.s BtlController_EmitFaintingCry +080341a4 battle_controllers.s BtlController_EmitIntroSlide +080341c4 battle_controllers.s BtlController_EmitIntroTrainerBallThrow +080341e4 battle_controllers.s BtlController_EmitDrawPartyStatusSummary +0803422c battle_controllers.s BtlController_EmitHidePartyStatusSummary +0803424c battle_controllers.s BtlController_EmitEndBounceEffect +0803426c battle_controllers.s BtlController_EmitSpriteInvisibility +08034290 battle_controllers.s BtlController_EmitBattleAnimation +080342bc battle_controllers.s BtlController_EmitLinkStandbyMsg +08034300 battle_controllers.s BtlController_EmitResetActionMoveSelection +08034320 battle_controllers.s BtlController_EmitCmd55 +decompress.s +08034370 decompress.s LZDecompressVram +0803437c decompress.s LZDecompressWram +08034388 decompress.s LoadCompressedSpriteSheet +080343bc decompress.s LoadCompressedSpriteSheetOverrideBuffer +080343e4 decompress.s LoadCompressedSpritePalette +08034418 decompress.s LoadCompressedSpritePaletteOverrideBuffer +08034448 decompress.s DecompressPicFromTable +08034480 decompress.s HandleLoadSpecialPokePic +080344ac decompress.s LoadSpecialPokePic +08034568 decompress.s Unused_LZDecompressWramIndirect +08034574 decompress.s sub_08034574 +080347cc decompress.s GetDecompressedDataSize +080347e0 decompress.s LoadCompressedSpriteSheetUsingHeap +0803481c decompress.s LoadCompressedSpritePaletteUsingHeap +08034860 decompress.s DecompressPicFromTable_2 +08034898 decompress.s LoadSpecialPokePic_2 +08034954 decompress.s HandleLoadSpecialPokePic_2 +08034980 decompress.s DecompressPicFromTable_DontHandleDeoxys +080349a8 decompress.s HandleLoadSpecialPokePic_DontHandleDeoxys +080349d4 decompress.s LoadSpecialPokePic_DontHandleDeoxys +08034a88 decompress.s DuplicateDeoxysTiles +rom_8034C54.s +08034aac rom_8034C54.s sub_08034AAC_jp +08034b20 rom_8034C54.s sub_08034B20_jp +08034b6c rom_8034C54.s sub_08034B6C_jp +08034d54 rom_8034C54.s sub_08034D54_jp +08034e9c rom_8034C54.s sub_08034E9C_jp +08034f08 rom_8034C54.s sub_08034F08_jp +08034fbc rom_8034C54.s sub_08034FBC_jp +08035118 rom_8034C54.s sub_08035118_jp +08035234 rom_8034C54.s sub_08035234_jp +080352d4 rom_8034C54.s sub_080352D4_jp +08035370 rom_8034C54.s sub_08035370 +080353c8 rom_8034C54.s SharesTileWithAnyActive +0803540c rom_8034C54.s SharesPalWithAnyActive +08035450 rom_8034C54.s sub_08035450 +08035460 rom_8034C54.s sub_08035460_jp +080354a0 rom_8034C54.s sub_080354A0_jp +battle_bg.s +080354b0 battle_bg.s BattleInitBgsAndWindows +08035528 battle_bg.s sub_08035528_jp +08035564 battle_bg.s LoadBattleMenuWindowGfx +080355c8 battle_bg.s DrawMainBattleBackground +080358f8 battle_bg.s LoadBattleTextboxAndBackground +08035938 battle_bg.s sub_08035938_jp +08035aa0 battle_bg.s sub_08035AA0_jp +08035bc8 battle_bg.s sub_08035BC8 +08035fb8 battle_bg.s DrawBattleEntryBackground +08036224 battle_bg.s LoadChosenBattleElement +battle_main.s +080365b4 battle_main.s CB2_InitBattle +08036628 battle_main.s CB2_InitBattleInternal +080368b0 battle_main.s sub_080368B0 +08036998 battle_main.s SetPlayerBerryDataInBattleStruct +08036a5c battle_main.s SetAllPlayersBerryData +08036d0c battle_main.s sub_08036D0C +08036e00 battle_main.s CB2_HandleStartBattle +08037274 battle_main.s CB2_HandleStartMultiPartnerBattle +08037770 battle_main.s sub_08037770_jp +0803782c battle_main.s CB2_PreInitMultiBattle +08037a7c battle_main.s CB2_PreInitIngamePlayerPartnerBattle +08037b44 battle_main.s CB2_HandleStartMultiBattle +080380fc battle_main.s BattleMainCB2 +08038178 battle_main.s FreeRestoreBattleData +080381c0 battle_main.s CB2_QuitRecordedBattle +08038204 battle_main.s sub_08038204 +08038214 battle_main.s sub_08038214_jp +080382c4 battle_main.s CreateNPCTrainerParty +080386b8 battle_main.s sub_080386B8_jp +080386dc battle_main.s VBlankCB_Battle +080387b4 battle_main.s SpriteCallbackDummy_3 +080387b8 battle_main.s sub_080387B8_jp +08038828 battle_main.s sub_08038828_jp +08038848 battle_main.s sub_08038848_jp +08038a18 battle_main.s sub_08038A18_jp +08038bc8 battle_main.s sub_08038BC8_jp +08038be8 battle_main.s sub_08038BE8_jp +08038e94 battle_main.s sub_08038E94_jp +08038f5c battle_main.s sub_08038F5C_jp +08039030 battle_main.s sub_08039030_jp +08039050 battle_main.s sub_08039050_jp +08039420 battle_main.s SpriteCb_WildMon +08039450 battle_main.s SpriteCb_MoveWildMonToRight +0803947c battle_main.s SpriteCb_WildMonShowHealthbox +080394d8 battle_main.s SpriteCb_WildMonAnimate +080394fc battle_main.s SpriteCallbackDummy_2 +08039500 battle_main.s sub_08039500_jp +08039514 battle_main.s sub_08039514 +08039578 battle_main.s SpriteCB_FaintOpponentMon +0803968c battle_main.s SpriteCB_AnimFaintOpponent +0803971c battle_main.s sub_0803971C +08039738 battle_main.s sub_08039738_jp +08039770 battle_main.s sub_08039770_jp +0803979c battle_main.s sub_0803979C_jp +080397f8 battle_main.s sub_080397F8 +08039804 battle_main.s oac_poke_ally_ +08039834 battle_main.s sub_08039834 +08039840 battle_main.s SpriteCallbackDummy_3 +08039844 battle_main.s sub_08039844 +0803986c battle_main.s DoBounceEffect +0803998c battle_main.s EndBounceEffect +08039a3c battle_main.s SpriteCB_BounceEffect +08039a88 battle_main.s sub_08039A88_jp +08039aa4 battle_main.s sub_08039AA4_jp +08039ac8 battle_main.s sub_08039AC8_jp +08039ae0 battle_main.s sub_08039AE0_jp +08039b0c battle_main.s nullsub_20 +08039b10 battle_main.s BeginBattleIntro +08039b34 battle_main.s sub_08039B34_jp +08039b40 battle_main.s BattleMainCB1 +08039b84 battle_main.s BattleStartClearSetData +08039ec8 battle_main.s SwitchInClearSetData +0803a3a0 battle_main.s FaintClearSetData +0803a804 battle_main.s BattleIntroGetMonsData +0803a878 battle_main.s BattleIntroPrepareBackgroundSlide +0803a8c8 battle_main.s BattleIntroDrawTrainersOrMonsSprites +0803abc4 battle_main.s BattleIntroDrawPartySummaryScreens +0803ad64 battle_main.s BattleIntroPrintTrainerWantsToBattle +0803ad9c battle_main.s BattleIntroPrintWildMonAttacked +0803adc4 battle_main.s BattleIntroPrintOpponentSendsOut +0803ae20 battle_main.s BattleIntroOpponent2SendsOutMonAnimation +0803aea0 battle_main.s BattleIntroOpponent1SendsOutMonAnimation +0803af58 battle_main.s BattleIntroRecordMonsToDex +0803aff0 battle_main.s sub_0803AFF0 +0803b010 battle_main.s BattleIntroPrintPlayerSendsOut +0803b070 battle_main.s BattleIntroPlayer2SendsOutMonAnimation +0803b10c battle_main.s BattleIntroPlayer1SendsOutMonAnimation +0803b1dc battle_main.s sub_0803B1DC +0803b26c battle_main.s TryDoEventsBeforeFirstTurn +0803b548 battle_main.s HandleEndTurn_ContinueBattle +0803b600 battle_main.s BattleTurnPassed +0803b7cc battle_main.s IsRunningFromBattleImpossible +0803b9e4 battle_main.s sub_0803B9E4 +0803bab8 battle_main.s HandleAction_TryFinish +0803bae0 battle_main.s HandleTurnActionSelectionState +0803c9fc battle_main.s AllAtActionConfirmed +0803ca3c battle_main.s sub_0803CA3C +0803cb20 battle_main.s SwapTurnOrder +0803cb54 battle_main.s GetWhoStrikesFirst +0803cf2c battle_main.s SetActionsAndBattlersTurnOrder +0803d1c4 battle_main.s TurnValuesCleanUp +0803d2e4 battle_main.s SpecialStatusesClear +0803d334 battle_main.s CheckFocusPunch_ClearVarsBeforeTurnStarts +0803d45c battle_main.s RunBattleScriptCommands +0803d488 battle_main.s RunTurnActionsFunctions +0803d504 battle_main.s HandleEndTurn_BattleWon +0803d700 battle_main.s HandleEndTurn_BattleLost +0803d7e0 battle_main.s HandleEndTurn_RanFromBattle +0803d8c4 battle_main.s HandleEndTurn_MonFled +0803d918 battle_main.s HandleEndTurn_FinishBattle +0803da80 battle_main.s FreeResetData_ReturnToOvOrDoEvolutions +0803daf4 battle_main.s TryEvolvePokemon +0803db88 battle_main.s WaitForEvoSceneToFinish +0803dbb0 battle_main.s ReturnFromBattleToOverworld +0803dc58 battle_main.s RunBattleScriptCommands_PopCallbacksStack +0803dccc battle_main.s sub_0803DCCC_jp +0803dcf8 battle_main.s HandleAction_UseMove +0803e4a8 battle_main.s HandleAction_Switch +0803e54c battle_main.s HandleAction_UseItem +0803e860 battle_main.s TryRunFromBattle +0803ea88 battle_main.s HandleAction_Run +0803ebe8 battle_main.s HandleAction_WatchesCarefully +0803ec30 battle_main.s HandleAction_SafariZoneBallThrow +0803ec90 battle_main.s HandleAction_ThrowPokeblock +0803ed60 battle_main.s HandleAction_GoNear +0803ee30 battle_main.s HandleAction_SafariZoneRun +0803ee6c battle_main.s HandleAction_WallyBallThrow +0803eee4 battle_main.s sub_0803EEE4_jp +0803ef0c battle_main.s HandleAction_NothingIsFainted +0803ef40 battle_main.s HandleAction_ActionFinished +battle_util.s +0803f00c battle_util.s GetBattlerForBattleScript +0803f0c0 battle_util.s PressurePPLose +0803f188 battle_util.s PressurePPLoseOnUsingImprison +0803f2bc battle_util.s PressurePPLoseOnUsingPerishSong +0803f3d0 battle_util.s MarkAllBattlersForControllerExec +0803f440 battle_util.s MarkBattlerForControllerExec +0803f490 battle_util.s sub_0803F490_jp +0803f4e0 battle_util.s CancelMultiTurnMoves +0803f54c battle_util.s WasUnableToUseMove +0803f5a4 battle_util.s PrepareStringBattle +0803f5c8 battle_util.s ResetSentPokesToOpponentValue +0803f62c battle_util.s sub_0803F62C +0803f6b0 battle_util.s sub_0803F6B0 +0803f718 battle_util.s BattleScriptPush +0803f73c battle_util.s BattleScriptPushCursor +0803f764 battle_util.s HandleAction_RunBattleScript +0803f78c battle_util.s TrySetCantSelectMoveBattleScript +0803fb0c battle_util.s CheckMoveLimitations +0803fd08 battle_util.s AreAllMovesUnusable +0803fd70 battle_util.s GetImprisonedMovesCount +0803fe10 battle_util.s DoFieldEndTurnEffects +08040564 battle_util.s BattleScriptPop +080405a8 battle_util.s DoBattlerEndTurnEffects +08040fa4 battle_util.s HandleWishPerishSongOnTurnEnd +08041368 battle_util.s HandleFaintedMonActions +0804165c battle_util.s TryClearRageStatuses +080416ac battle_util.s sub_080416AC_jp +080416d0 battle_util.s AtkCanceller_UnableToUseMove +08042034 battle_util.s HasNoMonsToSwitch +080422fc battle_util.s CastformDataTypeChange +08042468 battle_util.s AbilityBattleEffects +08043f18 battle_util.s sub_08043F18_jp +08044098 battle_util.s BattleScriptExecute +080440d8 battle_util.s BattleScriptPushCursorAndCallback +0804411c battle_util.s ItemBattleEffects +080454a8 battle_util.s ClearFuryCutterDestinyBondGrudge +080454f4 battle_util.s sub_080454F4 +08045520 battle_util.s GetMoveTarget +08045884 battle_util.s HasObedientBitSet +080458fc battle_util.s IsMonDisobedient +battle_script_commands.s +08045c3c battle_script_commands.s atk00_attackcanceler +08045fec battle_script_commands.s JumpIfMoveFailed +0804607c battle_script_commands.s atk40_jumpifaffectedbyprotect +080460ec battle_script_commands.s JumpIfMoveAffectedByProtect +08046158 battle_script_commands.s AccuracyCalcHelper +080462a0 battle_script_commands.s atk01_accuracycheck +08046628 battle_script_commands.s atk02_attackstring +0804667c battle_script_commands.s atk03_ppreduce +08046858 battle_script_commands.s atk04_critcalc +080469cc battle_script_commands.s atk05_damagecalc +08046abc battle_script_commands.s AI_CalcDmg +08046ba0 battle_script_commands.s ModulateDmgByType +08046c78 battle_script_commands.s atk06_typecalc +08046ee8 battle_script_commands.s CheckWonderGuardAndLevitate +0804716c battle_script_commands.s ModulateDmgByType2 +08047224 battle_script_commands.s TypeCalc +080473fc battle_script_commands.s AI_TypeCalc +080474f8 battle_script_commands.s Unused_ApplyRandomDmgMultiplier +08047534 battle_script_commands.s atk07_adjustnormaldamage +080476e4 battle_script_commands.s atk08_adjustnormaldamage2 +08047870 battle_script_commands.s atk09_attackanimation +08047a08 battle_script_commands.s atk3A_waitstate +08047a28 battle_script_commands.s atk0B_healthbarupdate +08047b04 battle_script_commands.s atk0C_datahpupdate +08047efc battle_script_commands.s atk0D_critmessage +08047f50 battle_script_commands.s atk0E_effectivenesssound +08048020 battle_script_commands.s atk0F_resultmessage +080481d0 battle_script_commands.s atk10_printstring +08048210 battle_script_commands.s atk11_printselectionstring +08048254 battle_script_commands.s atk12_waitmessage +080482b0 battle_script_commands.s atk13_printfromtable +08048304 battle_script_commands.s atk14_printselectionstringfromtable +08048368 battle_script_commands.s GetBattlerTurnOrderNum +080483a0 battle_script_commands.s SetMoveEffect +08049614 battle_script_commands.s atk15_seteffectwithchance +08049700 battle_script_commands.s atk16_seteffectprimary +08049710 battle_script_commands.s atk17_seteffectsecondary +08049720 battle_script_commands.s atk18_clearstatusfromeffect +0804979c battle_script_commands.s atk19_tryfaintmon +08049a80 battle_script_commands.s atk1A_dofaintanimation +08049abc battle_script_commands.s atk1B_cleareffectsonfaint +08049b44 battle_script_commands.s atk1C_jumpifstatus +08049bbc battle_script_commands.s atk1D_jumpifstatus2 +08049c34 battle_script_commands.s atk1E_jumpifability +08049d1c battle_script_commands.s atk1F_jumpifsideaffecting +08049d94 battle_script_commands.s atk20_jumpifstat +08049e8c battle_script_commands.s atk21_jumpifstatus3condition +08049f10 battle_script_commands.s atk22_jumpiftype +08049f6c battle_script_commands.s atk23_getexp +0804a900 battle_script_commands.s atk24 +0804ab60 battle_script_commands.s MoveValuesCleanUp +0804aba0 battle_script_commands.s atk25_movevaluescleanup +0804abb8 battle_script_commands.s atk26_setmultihit +0804abd0 battle_script_commands.s atk27_decrementmultihit +0804ac18 battle_script_commands.s atk28_goto +0804ac38 battle_script_commands.s atk29_jumpifbyte +0804acd8 battle_script_commands.s atk2A_jumpifhalfword +0804ad80 battle_script_commands.s atk2B_jumpifword +0804ae34 battle_script_commands.s atk2C_jumpifarrayequal +0804aebc battle_script_commands.s atk2D_jumpifarraynotequal +0804af40 battle_script_commands.s atk2E_setbyte +0804af68 battle_script_commands.s atk2F_addbyte +0804af94 battle_script_commands.s atk30_subbyte +0804afc0 battle_script_commands.s atk31_copyarray +0804b014 battle_script_commands.s atk32_copyarraywithindex +0804b080 battle_script_commands.s atk33_orbyte +0804b0ac battle_script_commands.s atk34_orhalfword +0804b0e4 battle_script_commands.s atk35_orword +0804b128 battle_script_commands.s atk36_bicbyte +0804b154 battle_script_commands.s atk37_bichalfword +0804b18c battle_script_commands.s atk38_bicword +0804b1d0 battle_script_commands.s atk39_pause +0804b210 battle_script_commands.s atk0A_waitanimation +0804b230 battle_script_commands.s atk3B_healthbar_update +0804b288 battle_script_commands.s atk3C_return +0804b294 battle_script_commands.s atk3D_end +0804b2d4 battle_script_commands.s atk3E_end2 +0804b2ec battle_script_commands.s atk3F_end3 +0804b328 battle_script_commands.s atk41_call +0804b358 battle_script_commands.s atk42_jumpiftype2 +0804b3b4 battle_script_commands.s atk43_jumpifabilitypresent +0804b400 battle_script_commands.s atk44_endselectionscript +0804b41c battle_script_commands.s atk45_playanimation +0804b4e0 battle_script_commands.s atk46_playanimation2 +0804b5ac battle_script_commands.s atk47_setgraphicalstatchangevalues +0804b608 battle_script_commands.s atk48_playstatchangeanimation +0804b7fc battle_script_commands.s sub_0804b7fc +0804b8dc battle_script_commands.s sub_0804B8DC_jp +0804b944 battle_script_commands.s atk49_moveend +0804c224 battle_script_commands.s atk4A_typecalc2 +0804c474 battle_script_commands.s atk4B_returnatktoball +0804c4c4 battle_script_commands.s atk4C_getswitchedmondata +0804c534 battle_script_commands.s atk4D_switchindataupdate +0804c718 battle_script_commands.s atk4E_switchinanim +0804c7e0 battle_script_commands.s atk4F_jumpifcantswitch +0804cb40 battle_script_commands.s sub_0804CB40 +0804cbb8 battle_script_commands.s atk50_openpartyscreen +0804d450 battle_script_commands.s atk51_switchhandleorder +0804d6dc battle_script_commands.s atk52_switchineffects +0804d9d8 battle_script_commands.s atk53_trainerslidein +0804da08 battle_script_commands.s atk54_playse +0804da44 battle_script_commands.s atk55_fanfare +0804da80 battle_script_commands.s atk56_playfaintcry +0804dab0 battle_script_commands.s atk57 +0804dae8 battle_script_commands.s atk58_returntoball +0804db1c battle_script_commands.s atk59_handlelearnnewmove +0804dc68 battle_script_commands.s atk5A_yesnoboxlearnmove +0804dff8 battle_script_commands.s atk5B_yesnoboxstoplearningmove +0804e138 battle_script_commands.s atk5C_hitanimation +0804e1c8 battle_script_commands.s GetTrainerMoneyToGive +0804e2f0 battle_script_commands.s atk5D_getmoneyreward +0804e37c battle_script_commands.s atk5E +0804e430 battle_script_commands.s atk5F_swapattackerwithtarget +0804e480 battle_script_commands.s atk60_incrementgamestat +0804e4b0 battle_script_commands.s atk61_drawpartystatussummary +0804e578 battle_script_commands.s atk62_hidepartystatussummary +0804e5a8 battle_script_commands.s atk63_jumptocalledmove +0804e60c battle_script_commands.s atk64_statusanimation +0804e69c battle_script_commands.s atk65_status2animation +0804e744 battle_script_commands.s atk66_chosenstatusanimation +0804e7d8 battle_script_commands.s atk67_yesnobox +0804e8bc battle_script_commands.s atk68_cancelallactions +0804e8f4 battle_script_commands.s atk69_adjustsetdamage +0804ea70 battle_script_commands.s atk6A_removeitem +0804eae0 battle_script_commands.s atk6B_atknameinbuff1 +0804eb1c battle_script_commands.s atk6C_drawlvlupbox +0804ed18 battle_script_commands.s DrawLevelUpWindow1 +0804ed5c battle_script_commands.s DrawLevelUpWindow2 +0804ed94 battle_script_commands.s sub_0804ED94_jp +0804ede4 battle_script_commands.s sub_0804EDE4 +0804ee38 battle_script_commands.s PutLevelAndGenderOnLvlUpBox +0804ef50 battle_script_commands.s sub_0804EF50 +0804ef90 battle_script_commands.s PutMonIconOnLvlUpBox +0804f05c battle_script_commands.s SpriteCB_MonIconOnLvlUpBox +0804f0a4 battle_script_commands.s IsMonGettingExpSentOut +0804f0e0 battle_script_commands.s atk6D_resetsentmonsvalue +0804f0f8 battle_script_commands.s atk6E_setatktoplayer0 +0804f118 battle_script_commands.s atk6F_makevisible +0804f14c battle_script_commands.s atk70_recordlastability +0804f180 battle_script_commands.s BufferMoveToLearnIntoBattleTextBuff2 +0804f1a8 battle_script_commands.s atk71_buffermovetolearn +0804f1c0 battle_script_commands.s atk72_jumpifplayerran +0804f204 battle_script_commands.s atk73_hpthresholds +0804f2b0 battle_script_commands.s atk74_hpthresholds2 +0804f360 battle_script_commands.s atk75_useitemonopponent +0804f3b8 battle_script_commands.s atk76_various +0804f998 battle_script_commands.s atk77_setprotectlike +0804fad4 battle_script_commands.s atk78_faintifabilitynotdamp +0804fbf0 battle_script_commands.s atk79_setatkhptozero +0804fc50 battle_script_commands.s atk7A_jumpifnexttargetvalid +0804fcf4 battle_script_commands.s atk7B_tryhealhalfhealth +0804fd70 battle_script_commands.s atk7C_trymirrormove +0804fed8 battle_script_commands.s atk7D_setrain +0804ff2c battle_script_commands.s atk7E_setreflect +0804fff8 battle_script_commands.s atk7F_setseeded +080500b8 battle_script_commands.s atk80_manipulatedamage +08050138 battle_script_commands.s atk81_trysetrest +08050208 battle_script_commands.s atk82_jumpifnotfirstturn +08050250 battle_script_commands.s atk83_nop +08050260 battle_script_commands.s UproarWakeUpCheck +080502fc battle_script_commands.s atk84_jumpifcantmakeasleep +08050378 battle_script_commands.s atk85_stockpile +080503f4 battle_script_commands.s atk86_stockpiletobasedamage +08050514 battle_script_commands.s atk87_stockpiletohpheal +080505f8 battle_script_commands.s atk88_negativedamage +0805062c battle_script_commands.s ChangeStatBuffs +08050ab0 battle_script_commands.s atk89_statbuffchange +08050afc battle_script_commands.s atk8A_normalisebuffs +08050b50 battle_script_commands.s atk8B_setbide +08050bc0 battle_script_commands.s atk8C_confuseifrepeatingattackends +08050c00 battle_script_commands.s atk8D_setmultihitcounter +08050c4c battle_script_commands.s atk8E_initmultihitstring +08050c74 battle_script_commands.s TryDoForceSwitchOut +08050d3c battle_script_commands.s atk8F_forcerandomswitch +08051034 battle_script_commands.s atk90_tryconversiontypechange +080511d8 battle_script_commands.s atk91_givepaydaymoney +08051274 battle_script_commands.s atk92_setlightscreen +08051340 battle_script_commands.s atk93_tryKO +08051694 battle_script_commands.s atk94_damagetohalftargethp +080516d0 battle_script_commands.s atk95_setsandstorm +08051728 battle_script_commands.s atk96_weatherdamage +080518a0 battle_script_commands.s atk97_tryinfatuating +08051a58 battle_script_commands.s atk98_updatestatusicon +08051b68 battle_script_commands.s atk99_setmist +08051c10 battle_script_commands.s atk9A_setfocusenergy +08051c6c battle_script_commands.s atk9B_transformdataexecution +08051e0c battle_script_commands.s atk9C_setsubstitute +08051ec8 battle_script_commands.s IsMoveUncopyableByMimic +08051f10 battle_script_commands.s atk9D_mimicattackcopy +080520ec battle_script_commands.s atk9E_metronome +08052194 battle_script_commands.s atk9F_dmgtolevel +080521c4 battle_script_commands.s atkA0_psywavedamageeffect +08052218 battle_script_commands.s atkA1_counterdamagecalculator +08052310 battle_script_commands.s atkA2_mirrorcoatdamagecalculator +08052408 battle_script_commands.s atkA3_disablelastusedattack +0805254c battle_script_commands.s atkA4_trysetencore +08052680 battle_script_commands.s atkA5_painsplitdmgcalc +08052744 battle_script_commands.s atkA6_settypetorandomresistance +08052944 battle_script_commands.s atkA7_setalwayshitflag +0805299c battle_script_commands.s atkA8_copymovepermanently +08052b58 battle_script_commands.s IsTwoTurnsMove +08052b94 battle_script_commands.s IsInvalidForSleepTalkOrAssist +08052bbc battle_script_commands.s AttacksThisTurn +08052c28 battle_script_commands.s atkA9_trychoosesleeptalkmove +08052d60 battle_script_commands.s atkAA_setdestinybond +08052d90 battle_script_commands.s TrySetDestinyBondToHappen +08052df0 battle_script_commands.s atkAB_trysetdestinybondtohappen +08052e08 battle_script_commands.s atkAC_remaininghptopower +08052e70 battle_script_commands.s atkAD_tryspiteppreduce +08053048 battle_script_commands.s atkAE_healpartystatus +0805332c battle_script_commands.s atkAF_cursetarget +080533b0 battle_script_commands.s atkB0_trysetspikes +0805343c battle_script_commands.s atkB1_setforesight +0805346c battle_script_commands.s atkB2_trysetperishsong +08053524 battle_script_commands.s atkB3_rolloutdamagecalculation +080536a0 battle_script_commands.s atkB4_jumpifconfusedandstatmaxed +08053708 battle_script_commands.s atkB5_furycuttercalc +080537bc battle_script_commands.s atkB6_happinesstodamagecalculation +08053840 battle_script_commands.s atkB7_presentdamagecalculation +0805390c battle_script_commands.s atkB8_setsafeguard +080539b4 battle_script_commands.s atkB9_magnitudedamagecalculation +08053ad8 battle_script_commands.s atkBA_jumpifnopursuitswitchdmg +08053c6c battle_script_commands.s atkBB_setsunny +08053cc4 battle_script_commands.s atkBC_maxattackhalvehp +08053d44 battle_script_commands.s atkBD_copyfoestats +08053d8c battle_script_commands.s atkBE_rapidspinfree +08053ed8 battle_script_commands.s atkBF_setdefensecurlbit +08053f08 battle_script_commands.s atkC0_recoverbasedonsunlight +08054010 battle_script_commands.s atkC1_hiddenpowercalc +08054134 battle_script_commands.s atkC2_selectfirstvalidtarget +080541a8 battle_script_commands.s atkC3_trysetfutureattack +080542f4 battle_script_commands.s atkC4_trydobeatup +08054504 battle_script_commands.s atkC5_setsemiinvulnerablebit +08054588 battle_script_commands.s sub_08054588_jp +08054618 battle_script_commands.s atkC7_setminimize +08054658 battle_script_commands.s atkC8_sethail +080546b0 battle_script_commands.s atkC9_jumpifattackandspecialattackcannotfall +0805474c battle_script_commands.s atkCA_setforcedtarget +08054798 battle_script_commands.s atkCB_setcharge +080547fc battle_script_commands.s atkCC_callterrainattack +08054870 battle_script_commands.s atkCD_cureifburnedparalysedorpoisoned +080548f4 battle_script_commands.s atkCE_settorment +0805494c battle_script_commands.s atkCF_jumpifnodamage +080549a8 battle_script_commands.s atkD0_settaunt +08054a1c battle_script_commands.s atkD1_trysethelpinghand +08054ac4 battle_script_commands.s atkD2_tryswapitems +08054d58 battle_script_commands.s atkD3_trycopyability +08054dd0 battle_script_commands.s atkD4_trywish +08054ea4 battle_script_commands.s atkD5_trysetroots +08054efc battle_script_commands.s atkD6_doubledamagedealtifdamaged +08054f5c battle_script_commands.s atkD7_setyawn +08054fcc battle_script_commands.s atkD8_setdamagetohealthdifference +08055038 battle_script_commands.s atkD9_scaledamagebyhealthratio +0805509c battle_script_commands.s atkDA_tryswapabilities +08055134 battle_script_commands.s atkDB_tryimprison +0805523c battle_script_commands.s atkDC_trysetgrudge +08055294 battle_script_commands.s atkDD_weightdamagecalculation +0805532c battle_script_commands.s atkDE_assistattackselect +080554ac battle_script_commands.s atkDF_trysetmagiccoat +08055530 battle_script_commands.s atkE0_trysetsnatch +080555ac battle_script_commands.s atkE1_trygetintimidatetarget +08055688 battle_script_commands.s atkE2_switchoutabilities +08055704 battle_script_commands.s atkE3_jumpifhasnohp +08055758 battle_script_commands.s atkE4_getsecretpowereffect +08055810 battle_script_commands.s atkE5_pickup +08055a0c battle_script_commands.s atkE6_docastformchangeanimation +08055a74 battle_script_commands.s atkE7_trycastformdatachange +08055ab4 battle_script_commands.s atkE8_settypebasedhalvers +08055b6c battle_script_commands.s atkE9_setweatherballtype +08055c24 battle_script_commands.s atkEA_tryrecycleitem +08055ccc battle_script_commands.s atkEB_settypetoterrain +08055d7c battle_script_commands.s atkEC_pursuitrelated +08055e40 battle_script_commands.s atkEF_snatchsetbattlers +08055e94 battle_script_commands.s atkEE_removelightscreenreflect +08055f10 battle_script_commands.s atkEF_handleballthrow +080562b8 battle_script_commands.s atkF0_givecaughtmon +08056460 battle_script_commands.s atkF1_trysetcaughtmondexflags +080564dc battle_script_commands.s atkF2_displaydexinfo +0805664c battle_script_commands.s HandleBattleWindow +08056784 battle_script_commands.s BattleCreateYesNoCursorAt +080567bc battle_script_commands.s BattleDestroyYesNoCursorAt +080567fc battle_script_commands.s atkF3_trygivecaughtmonnick +08056a88 battle_script_commands.s atkF4_subattackerhpbydmg +08056ab8 battle_script_commands.s atkF5_removeattackerstatus1 +08056ae0 battle_script_commands.s atkF6_finishaction +08056aec battle_script_commands.s atkF7_finishturn +08056b08 battle_script_commands.s atkF8_trainerslideout +battle_util2.s +08056b38 battle_util2.s AllocateBattleResources +08056c38 battle_util2.s FreeBattleResources +08056d04 battle_util2.s AdjustFriendshipOnBattleFaint +08056dec battle_util2.s sub_08056DEC +08056e6c battle_util2.s sub_08056E6C_jp +battle_controller_player.s +08057068 battle_controller_player.s nullsub_21 +0805706c battle_controller_player.s SetControllerToPlayer +0805709c battle_controller_player.s PlayerBufferExecCompleted +08057114 battle_controller_player.s PlayerBufferRunCommand +08057164 battle_controller_player.s CompleteOnBankSpritePosX_0 +08057198 battle_controller_player.s sub_08057198_jp +08057400 battle_controller_player.s sub_08057400_jp +08057434 battle_controller_player.s HandleInputChooseTarget +0805780c battle_controller_player.s HandleInputChooseMove +08057bcc battle_controller_player.s sub_08057BCC +08057d48 battle_controller_player.s HandleMoveSwitching +08058308 battle_controller_player.s sub_08058308_jp +080583c0 battle_controller_player.s sub_080583C0_jp +08058454 battle_controller_player.s PlayerHandleIntroSlide +0805848c battle_controller_player.s PlayerHandleChosenMonReturnValue +080584c4 battle_controller_player.s sub_080584C4_jp +08058534 battle_controller_player.s sub_08058534_jp +0805857c battle_controller_player.s sub_0805857C_jp +08058750 battle_controller_player.s sub_08058750_jp +08058aec battle_controller_player.s sub_08058AEC_jp +08058bd0 battle_controller_player.s sub_08058BD0_jp +08058c3c battle_controller_player.s sub_08058C3C_jp +08058d10 battle_controller_player.s c3_0802FDF4 +08058d40 battle_controller_player.s MoveSelectionDisplayMoveType +08058db0 battle_controller_player.s PlayerHandleCmd42 +08058dc8 battle_controller_player.s sub_08058DC8_jp +08058f40 battle_controller_player.s sub_08058F40_jp +08059010 battle_controller_player.s sub_08059010_jp +08059154 battle_controller_player.s Task_LaunchLvlUpAnim +080591b4 battle_controller_player.s Task_UpdateLvlInHealthbox +0805926c battle_controller_player.s MoveSelectionDisplayPpString +080592b8 battle_controller_player.s sub_080592B8_jp +08059354 battle_controller_player.s sub_08059354_jp +080593c4 battle_controller_player.s PlayerHandleDataTransfer +080593dc battle_controller_player.s OpenPartyMenuToChooseMon +08059438 battle_controller_player.s WaitForMonSelection +080594b4 battle_controller_player.s OpenBagAndChooseItem +080594f0 battle_controller_player.s CompleteWhenChoseItem +0805952c battle_controller_player.s PlayerHandleOneReturnValue_Duplicate +08059568 battle_controller_player.s PlayerHandleHitAnimation +080595e4 battle_controller_player.s PlayerHandleUnknownYesNoInput +080596bc battle_controller_player.s MoveSelectionDisplayMoveNames +08059734 battle_controller_player.s PlayerHandleTwoReturnValues +0805976c battle_controller_player.s MoveSelectionDisplayPpNumber +080597e0 battle_controller_player.s ActionSelectionCreateCursorAt +0805983c battle_controller_player.s MoveSelectionCreateCursorAt +08059884 battle_controller_player.s MoveSelectionDestroyCursorAt +080598c8 battle_controller_player.s SetCB2ToReshowScreenAfterMenu +08059910 battle_controller_player.s ActionSelectionDestroyCursorAt +0805995c battle_controller_player.s SetCB2ToReshowScreenAfterMenu2 +0805996c battle_controller_player.s sub_0805996C_jp +0805997c battle_controller_player.s sub_0805997C +080599ac battle_controller_player.s sub_080599AC +080599dc battle_controller_player.s PrintLinkStandbyMsg +08059a10 battle_controller_player.s PlayerHandleGetMonData +08059a84 battle_controller_player.s CopyPlayerMonData +0805a230 battle_controller_player.s PlayerHandleGetRawMonData +0805a2b8 battle_controller_player.s PlayerHandleSetMonData +0805a310 battle_controller_player.s SetPlayerMonData +0805ad0c battle_controller_player.s PlayerHandleSetRawMonData +0805ad80 battle_controller_player.s PlayerHandleLoadMonSprite +0805ade8 battle_controller_player.s PlayerHandleSwitchInAnim +0805ae74 battle_controller_player.s sub_0805AE74 +0805aff0 battle_controller_player.s PlayerHandleReturnMonToBall +0805b080 battle_controller_player.s sub_0805B080 +0805b10c battle_controller_player.s PlayerHandleDrawTrainerPic +0805b480 battle_controller_player.s PlayerHandleTrainerSlide +0805b614 battle_controller_player.s PlayerHandleTrainerSlideBack +0805b6d4 battle_controller_player.s PlayerHandleFaintAnimation +0805b7c0 battle_controller_player.s PlayerHandlePaletteFade +0805b7e0 battle_controller_player.s PlayerHandleSuccessBallThrowAnim +0805b834 battle_controller_player.s PlayerHandleBallThrowAnim +0805b894 battle_controller_player.s PlayerHandlePause +0805b8c4 battle_controller_player.s PlayerHandleMoveAnimation +0805ba18 battle_controller_player.s PlayerDoMoveAnimation +0805bb9c battle_controller_player.s PlayerHandlePrintString +0805bbfc battle_controller_player.s PlayerHandlePrintSelectionString +0805bc20 battle_controller_player.s sub_0805BC20 +0805bc60 battle_controller_player.s PlayerHandleChooseAction +0805bccc battle_controller_player.s PlayerHandleUnknownYesNoBox +0805bd30 battle_controller_player.s HandleChooseMoveAfterDma3 +0805bd74 battle_controller_player.s PlayerChooseMoveInBattlePalace +0805bdc4 battle_controller_player.s PlayerHandleChooseMove +0805be2c battle_controller_player.s InitMoveSelectionsVarsAndStrings +0805be64 battle_controller_player.s PlayerHandleChooseItem +0805bec8 battle_controller_player.s PlayerHandleChoosePokemon +0805c008 battle_controller_player.s PlayerHandleCmd23 +0805c02c battle_controller_player.s PlayerHandleHealthBarUpdate +0805c144 battle_controller_player.s PlayerHandleExpUpdate +0805c1e0 battle_controller_player.s PlayerHandleStatusIconUpdate +0805c258 battle_controller_player.s PlayerHandleStatusAnimation +0805c2c0 battle_controller_player.s PlayerHandleStatusXor +0805c32c battle_controller_player.s sub_0805C32C +0805c338 battle_controller_player.s PlayerHandleDMA3Transfer +0805c3ec battle_controller_player.s PlayerHandlePlayBGM +0805c41c battle_controller_player.s PlayerHandleCmd32 +0805c428 battle_controller_player.s sub_0805C428 +0805c43c battle_controller_player.s sub_0805C43C +0805c450 battle_controller_player.s sub_0805C450 +0805c464 battle_controller_player.s PlayerHandleOneReturnValue +0805c478 battle_controller_player.s PlayerHandleCmd37 +0805c494 battle_controller_player.s PlayerHandleCmd38 +0805c4cc battle_controller_player.s PlayerHandleCmd39 +0805c4e4 battle_controller_player.s PlayerHandleCmd40 +0805c50c battle_controller_player.s sub_0805C50C +0805c57c battle_controller_player.s sub_0805C57C +0805c588 battle_controller_player.s PlayerHandlePlaySE +0805c5cc battle_controller_player.s PlayerHandlePlayFanfareOrBGM +0805c628 battle_controller_player.s PlayerHandleFaintingCry +0805c668 battle_controller_player.s sub_0805C668 +0805c69c battle_controller_player.s PlayerHandleIntroTrainerBallThrow +0805c81c battle_controller_player.s sub_0805C81C +0805c884 battle_controller_player.s task05_08033660 +0805c990 battle_controller_player.s PlayerHandleDrawPartyStatusSummary +0805ca54 battle_controller_player.s sub_0805CA54 +0805ca9c battle_controller_player.s PlayerHandleHidePartyStatusSummary +0805caec battle_controller_player.s PlayerHandleEndBounceEffect +0805cb10 battle_controller_player.s PlayerHandleSpriteInvisibility +0805cb70 battle_controller_player.s PlayerHandleBattleAnimation +0805cbe4 battle_controller_player.s PlayerHandleLinkStandbyMsg +0805cc48 battle_controller_player.s PlayerHandleResetActionMoveSelection +0805ccb0 battle_controller_player.s PlayerHandleCmd55 +0805cd30 battle_controller_player.s PlayerCmdEnd +battle_gfx_sfx_util.s +0805cd34 battle_gfx_sfx_util.s AllocateBattleSpritesData +0805cd74 battle_gfx_sfx_util.s FreeBattleSpritesData +0805cdb8 battle_gfx_sfx_util.s ChooseMoveAndTargetInBattlePalace +0805d0c4 battle_gfx_sfx_util.s sub_0805D0C4_jp +0805d210 battle_gfx_sfx_util.s BattlePalaceGetTargetRetValue +0805d330 battle_gfx_sfx_util.s sub_0805D330 +0805d38c battle_gfx_sfx_util.s sub_0805D38C_jp +0805d3c8 battle_gfx_sfx_util.s sub_0805D3C8_jp +0805d408 battle_gfx_sfx_util.s sub_0805D408 +0805d424 battle_gfx_sfx_util.s InitAndLaunchChosenStatusAnimation +0805d524 battle_gfx_sfx_util.s TryHandleLaunchBattleTableAnimation +0805d664 battle_gfx_sfx_util.s nullsub_23 +0805d674 battle_gfx_sfx_util.s Task_ClearBitWhenBattleTableAnimDone +0805d6bc battle_gfx_sfx_util.s ShouldAnimBeDoneRegardlessOfSubsitute +0805d6e0 battle_gfx_sfx_util.s InitAndLaunchSpecialAnimation +0805d750 battle_gfx_sfx_util.s nullsub_24 +0805d760 battle_gfx_sfx_util.s Task_ClearBitWhenSpecialAnimDone +0805d7a8 battle_gfx_sfx_util.s IsMoveWithoutAnimation +0805d7ac battle_gfx_sfx_util.s mplay_80342A4 +0805d828 battle_gfx_sfx_util.s BattleLoadOpponentMonSpriteGfx +0805d998 battle_gfx_sfx_util.s BattleLoadPlayerMonSpriteGfx +0805db4c battle_gfx_sfx_util.s nullsub_25 +0805db50 battle_gfx_sfx_util.s sub_0805DB50_jp +0805db54 battle_gfx_sfx_util.s DecompressTrainerFrontPic +0805dba0 battle_gfx_sfx_util.s DecompressTrainerBackPic +0805dbfc battle_gfx_sfx_util.s sub_0805DBFC_jp +0805dc00 battle_gfx_sfx_util.s FreeTrainerFrontPicPalette +0805dc18 battle_gfx_sfx_util.s BattleLoadAllHealthBoxesGfxAtOnce +0805dca8 battle_gfx_sfx_util.s BattleLoadAllHealthBoxesGfx +0805ddd4 battle_gfx_sfx_util.s LoadBattleBarGfx +0805ddf4 battle_gfx_sfx_util.s BattleInitAllSprites +0805df6c battle_gfx_sfx_util.s ClearSpritesHealthboxAnimData +0805df94 battle_gfx_sfx_util.s ClearSpritesBattlerHealthboxAnimData +0805dfb0 battle_gfx_sfx_util.s CopyAllBattleSpritesInvisibilities +0805e024 battle_gfx_sfx_util.s CopyBattleSpriteInvisibility +0805e064 battle_gfx_sfx_util.s HandleSpeciesGfxDataChange +0805e3f8 battle_gfx_sfx_util.s BattleLoadSubstituteOrMonSpriteGfx +0805e510 battle_gfx_sfx_util.s LoadBattleMonGfxAndAnimate +0805e568 battle_gfx_sfx_util.s TrySetBehindSubstituteSpriteBit +0805e590 battle_gfx_sfx_util.s ClearBehindSubstituteBit +0805e5ac battle_gfx_sfx_util.s HandleLowHpMusicChange +0805e67c battle_gfx_sfx_util.s BattleStopLowHpSound +0805e6d0 battle_gfx_sfx_util.s GetMonHPBarLevel +0805e704 battle_gfx_sfx_util.s HandleBattleLowHpMusicChange +0805e7b8 battle_gfx_sfx_util.s sub_0805E7B8 +0805e8a0 battle_gfx_sfx_util.s LoadAndCreateEnemyShadowSprites +0805e98c battle_gfx_sfx_util.s SpriteCB_EnemyShadow +0805ea64 battle_gfx_sfx_util.s SpriteCB_SetInvisible +0805ea70 battle_gfx_sfx_util.s SetBattlerShadowSpriteCallback +0805eafc battle_gfx_sfx_util.s HideBattlerShadowSprite +0805eb30 battle_gfx_sfx_util.s sub_0805EB30 +0805eba0 battle_gfx_sfx_util.s ClearTemporarySpeciesSpriteData +0805ebd8 battle_gfx_sfx_util.s AllocateMonSpritesGfx +0805ecb0 battle_gfx_sfx_util.s FreeMonSpritesGfx +0805ed2c battle_gfx_sfx_util.s ShouldPlayNormalMonCry +battle_controller_opponent.s +0805ed7c battle_controller_opponent.s nullsub_23 +0805ed80 battle_controller_opponent.s SetControllerToOpponent +0805ed9c battle_controller_opponent.s OpponentBufferRunCommand +0805edec battle_controller_opponent.s OpponentHandleIntroSlide +0805ee24 battle_controller_opponent.s OpponentHandleChooseItem +0805ee5c battle_controller_opponent.s sub_0805EE5C_jp +0805eec4 battle_controller_opponent.s sub_0805EEC4_jp +0805ef0c battle_controller_opponent.s sub_0805EF0C_jp +0805f14c battle_controller_opponent.s sub_0805F14C_jp +0805f580 battle_controller_opponent.s sub_0805F580_jp +0805f65c battle_controller_opponent.s sub_0805F65C_jp +0805f6b0 battle_controller_opponent.s OpponentHandleCmd38 +0805f6f4 battle_controller_opponent.s sub_0805F6F4_jp +0805f768 battle_controller_opponent.s OpponentHandleBallThrow +0805f780 battle_controller_opponent.s OpponentHandleHitAnimation +0805f7fc battle_controller_opponent.s sub_0805F7FC_jp +0805f86c battle_controller_opponent.s sub_0805F86C_jp +0805f8ec battle_controller_opponent.s sub_0805F8EC_jp +0805f9dc battle_controller_opponent.s sub_0805F9DC_jp +0805faa4 battle_controller_opponent.s OpponentHandleCmd37 +0805fad4 battle_controller_opponent.s OpponentHandleCmd39 +0805fb04 battle_controller_opponent.s OpponentBufferExecCompleted +0805fb7c battle_controller_opponent.s OpponentHandleGetMonData +0805fbf0 battle_controller_opponent.s GetOpponentMonData +0806039c battle_controller_opponent.s OpponentHandleGetRawMonData +08060424 battle_controller_opponent.s OpponentHandleSetMonData +0806047c battle_controller_opponent.s SetOpponentMonData +08060d9c battle_controller_opponent.s OpponentHandleSetRawMonData +08060e10 battle_controller_opponent.s OpponentHandleLoadMonSprite +08060f68 battle_controller_opponent.s OpponentHandleSwitchInAnim +08060fc8 battle_controller_opponent.s sub_08060FC8 +08061158 battle_controller_opponent.s OpponentHandleReturnMonToBall +080611f0 battle_controller_opponent.s OpponentHandleHidePartyStatusSummary +0806127c battle_controller_opponent.s OpponentHandleDrawTrainerPic +080614c0 battle_controller_opponent.s OpponentHandleTrainerSlide +080616d4 battle_controller_opponent.s OpponentHandleTrainerSlideBack +08061780 battle_controller_opponent.s OpponentHandleFaintAnimation +0806182c battle_controller_opponent.s OpponentHandlePaletteFade +08061838 battle_controller_opponent.s OpponentHandlePause +08061844 battle_controller_opponent.s OpponentHandleSuccessBallThrowAnim +08061850 battle_controller_opponent.s OpponentHandleChosenMonReturnValue +0806185c battle_controller_opponent.s OpponentHandleMoveAnimation +08061994 battle_controller_opponent.s OpponentDoMoveAnimation +08061b18 battle_controller_opponent.s OpponentHandlePrintString +08061b74 battle_controller_opponent.s OpponentHandleCmd23 +08061b80 battle_controller_opponent.s OpponentHandleChooseAction +08061b90 battle_controller_opponent.s OpponentHandleCmd32 +08061b9c battle_controller_opponent.s OpponentHandleChooseMove +08061d40 battle_controller_opponent.s OpponentHandleCmd40 +08061d6c battle_controller_opponent.s OpponentHandleChoosePokemon +08061e6c battle_controller_opponent.s OpponentHandleCmd42 +08061e78 battle_controller_opponent.s OpponentHandleHealthBarUpdate +08061f68 battle_controller_opponent.s OpponentHandleDMA3Transfer +08061f74 battle_controller_opponent.s OpponentHandleStatusIconUpdate +08061fec battle_controller_opponent.s OpponentHandleStatusAnimation +08062054 battle_controller_opponent.s OpponentHandleDataTransfer +08062060 battle_controller_opponent.s OpponentHandleEndBounceEffect +0806206c battle_controller_opponent.s OpponentHandleExpUpdate +08062078 battle_controller_opponent.s OpponentHandleLinkStandbyMsg +08062084 battle_controller_opponent.s OpponentHandleOneReturnValue +08062090 battle_controller_opponent.s OpponentHandleOneReturnValue_Duplicate +0806209c battle_controller_opponent.s OpponentHandlePlayBGM +080620a8 battle_controller_opponent.s OpponentHandlePrintSelectionString +080620b4 battle_controller_opponent.s OpponentHandleResetActionMoveSelection +080620c0 battle_controller_opponent.s OpponentHandleStatusXor +080620dc battle_controller_opponent.s OpponentHandleTwoReturnValues +08062114 battle_controller_opponent.s OpponentHandleUnknownYesNoBox +0806212c battle_controller_opponent.s sub_0806212C_jp +08062154 battle_controller_opponent.s sub_08062154_jp +080621c4 battle_controller_opponent.s OpponentCmdEnd +080621d0 battle_controller_opponent.s OpponentHandlePlaySE +08062214 battle_controller_opponent.s OpponentHandlePlayFanfareOrBGM +08062270 battle_controller_opponent.s OpponentHandleFaintingCry +080622ac battle_controller_opponent.s nullsub_26 +080622e0 battle_controller_opponent.s OpponentHandleIntroTrainerBallThrow +080623f0 battle_controller_opponent.s sub_080623F0_jp +0806240c battle_controller_opponent.s OpponentHandleDrawPartyStatusSummary +080624fc battle_controller_opponent.s sub_080624FC_jp +08062610 battle_controller_opponent.s sub_08062610 +08062658 battle_controller_opponent.s sub_08062658 +080626a8 battle_controller_opponent.s sub_080626A8 +080626b4 battle_controller_opponent.s OpponentHandleSpriteInvisibility +08062714 battle_controller_opponent.s OpponentHandleBattleAnimation +0806277c battle_controller_opponent.s sub_0806277C +08062788 battle_controller_opponent.s sub_08062788 +08062794 battle_controller_opponent.s OpponentHandleCmd55 +080627d8 battle_controller_opponent.s sub_080627D8 +battle_ai_switch_items.s +080627dc battle_ai_switch_items.s ShouldSwitchIfPerishSong +0806283c battle_ai_switch_items.s ShouldSwitchIfWonderGuard +08062a38 battle_ai_switch_items.s FindMonThatAbsorbsOpponentsMove +08062ca4 battle_ai_switch_items.s ShouldSwitchIfNaturalCure +08062da0 battle_ai_switch_items.s HasSuperEffectiveMoveAgainstOpponents +08062f00 battle_ai_switch_items.s AreStatsRaised +08062f48 battle_ai_switch_items.s FindMonWithFlagsAndSuperEffective +080631f8 battle_ai_switch_items.s ShouldSwitch +08063464 battle_ai_switch_items.s AI_TrySwitchOrUseItem +080635ec battle_ai_switch_items.s ModulateByTypeEffectiveness +08063674 battle_ai_switch_items.s GetMostSuitableMonToSwitchInto +08063a68 battle_ai_switch_items.s GetAI_ItemType +08063ac4 battle_ai_switch_items.s ShouldUseItem +battle_controller_link_opponent.s +08063f74 battle_controller_link_opponent.s nullsub_28 +08063f78 battle_controller_link_opponent.s SetControllerToLinkOpponent +08063f94 battle_controller_link_opponent.s LinkOpponentBufferRunCommand +08063fe4 battle_controller_link_opponent.s LinkOpponentHandleCmd37 +0806401c battle_controller_link_opponent.s sub_0806401C_jp +08064054 battle_controller_link_opponent.s sub_08064054_jp +080640bc battle_controller_link_opponent.s sub_080640BC_jp +08064104 battle_controller_link_opponent.s sub_08064104_jp +08064318 battle_controller_link_opponent.s sub_08064318_jp +080646e8 battle_controller_link_opponent.s sub_080646E8_jp +080647a4 battle_controller_link_opponent.s LinkOpponentHandleFaintingCry +080647f8 battle_controller_link_opponent.s sub_080647F8_jp +0806483c battle_controller_link_opponent.s sub_0806483C_jp +080648b0 battle_controller_link_opponent.s sub_080648B0_jp +080648c8 battle_controller_link_opponent.s sub_080648C8_jp +08064944 battle_controller_link_opponent.s sub_08064944_jp +080649b4 battle_controller_link_opponent.s LinkOpponentHandleGetMonData +08064a34 battle_controller_link_opponent.s sub_08064A34_jp +08064b24 battle_controller_link_opponent.s sub_08064B24_jp +08064bec battle_controller_link_opponent.s sub_08064BEC_jp +08064c1c battle_controller_link_opponent.s LinkOpponentHandleDrawPartyStatusSummary +08064c4c battle_controller_link_opponent.s LinkOpponentBufferExecCompleted +08064cc4 battle_controller_link_opponent.s sub_08064CC4_jp +08064d38 battle_controller_link_opponent.s CopyLinkOpponentMonData +080654e4 battle_controller_link_opponent.s LinkOpponentHandleGetRawMonData +080654f0 battle_controller_link_opponent.s LinkOpponentHandleSetMonData +08065548 battle_controller_link_opponent.s SetLinkOpponentMonData +08065e68 battle_controller_link_opponent.s LinkOpponentHandleSetRawMonData +08065edc battle_controller_link_opponent.s LinkOpponentHandleLoadMonSprite +0806602c battle_controller_link_opponent.s LinkOpponentHandleSwitchInAnim +08066078 battle_controller_link_opponent.s sub_08066078 +08066208 battle_controller_link_opponent.s LinkOpponentHandleReturnMonToBall +080662a0 battle_controller_link_opponent.s sub_080662A0 +0806632c battle_controller_link_opponent.s LinkOpponentHandleDrawTrainerPic +0806663c battle_controller_link_opponent.s LinkOpponentHandleTrainerSlide +08066778 battle_controller_link_opponent.s LinkOpponentHandleTrainerSlideBack +08066824 battle_controller_link_opponent.s LinkOpponentHandleFaintAnimation +080668d0 battle_controller_link_opponent.s LinkOpponentHandlePaletteFade +080668dc battle_controller_link_opponent.s LinkOpponentHandleSuccessBallThrowAnim +080668e8 battle_controller_link_opponent.s LinkOpponentHandleBallThrowAnim +080668f4 battle_controller_link_opponent.s LinkOpponentHandlePause +08066900 battle_controller_link_opponent.s LinkOpponentHandleMoveAnimation +08066a54 battle_controller_link_opponent.s LinkOpponentDoMoveAnimation +08066bd8 battle_controller_link_opponent.s LinkOpponentHandlePrintString +08066c30 battle_controller_link_opponent.s LinkOpponentHandlePrintSelectionString +08066c3c battle_controller_link_opponent.s LinkOpponentHandleChooseAction +08066c48 battle_controller_link_opponent.s LinkOpponentHandleUnknownYesNoBox +08066c54 battle_controller_link_opponent.s LinkOpponentHandleChooseMove +08066c60 battle_controller_link_opponent.s LinkOpponentHandleChooseItem +08066c6c battle_controller_link_opponent.s LinkOpponentHandleChoosePokemon +08066c78 battle_controller_link_opponent.s LinkOpponentHandleCmd23 +08066c84 battle_controller_link_opponent.s LinkOpponentHandleHealthBarUpdate +08066d74 battle_controller_link_opponent.s LinkOpponentHandleExpUpdate +08066d80 battle_controller_link_opponent.s LinkOpponentHandleStatusIconUpdate +08066df8 battle_controller_link_opponent.s LinkOpponentHandleStatusAnimation +08066e60 battle_controller_link_opponent.s LinkOpponentHandleStatusXor +08066e6c battle_controller_link_opponent.s LinkOpponentHandleDataTransfer +08066e78 battle_controller_link_opponent.s LinkOpponentHandleDMA3Transfer +08066e84 battle_controller_link_opponent.s LinkOpponentHandlePlayBGM +08066e90 battle_controller_link_opponent.s LinkOpponentHandleCmd32 +08066e9c battle_controller_link_opponent.s LinkOpponentHandleTwoReturnValues +08066ea8 battle_controller_link_opponent.s LinkOpponentHandleChosenMonReturnValue +08066eb4 battle_controller_link_opponent.s LinkOpponentHandleOneReturnValue +08066ec0 battle_controller_link_opponent.s LinkOpponentHandleOneReturnValue_Duplicate +08066ecc battle_controller_link_opponent.s sub_08066ECC +08066ee8 battle_controller_link_opponent.s LinkOpponentHandleCmd38 +08066f20 battle_controller_link_opponent.s LinkOpponentHandleCmd39 +08066f38 battle_controller_link_opponent.s LinkOpponentHandleCmd40 +08066f60 battle_controller_link_opponent.s LinkOpponentHandleHitAnimation +08066fd0 battle_controller_link_opponent.s LinkOpponentHandleCmd42 +08066fdc battle_controller_link_opponent.s LinkOpponentHandlePlaySE +08067020 battle_controller_link_opponent.s LinkOpponentHandlePlayFanfareOrBGM +0806707c battle_controller_link_opponent.s sub_0806707C +080670b8 battle_controller_link_opponent.s LinkOpponentHandleIntroSlide +080670ec battle_controller_link_opponent.s LinkOpponentHandleIntroTrainerBallThrow +080671fc battle_controller_link_opponent.s sub_080671FC +080672e0 battle_controller_link_opponent.s sub_080672E0 +080672fc battle_controller_link_opponent.s sub_080672FC +08067410 battle_controller_link_opponent.s sub_08067410 +08067458 battle_controller_link_opponent.s LinkOpponentHandleHidePartyStatusSummary +080674a8 battle_controller_link_opponent.s LinkOpponentHandleEndBounceEffect +080674b4 battle_controller_link_opponent.s LinkOpponentHandleSpriteInvisibility +08067514 battle_controller_link_opponent.s LinkOpponentHandleBattleAnimation +08067588 battle_controller_link_opponent.s LinkOpponentHandleLinkStandbyMsg +080675a8 battle_controller_link_opponent.s LinkOpponentHandleResetActionMoveSelection +080675b4 battle_controller_link_opponent.s LinkOpponentHandleCmd55 +08067654 battle_controller_link_opponent.s LinkOpponentCmdEnd +pokemon.s +08067658 pokemon.s ZeroBoxMonData +08067670 pokemon.s ZeroMonData +080676f0 pokemon.s ZeroPlayerPartyMons +08067710 pokemon.s ZeroEnemyPartyMons +08067730 pokemon.s CreateMon +080677a0 pokemon.s CreateBoxMon +08067a74 pokemon.s CreateMonWithNature +08067adc pokemon.s CreateMonWithGenderNatureLetter +08067bdc pokemon.s CreateMaleMon +08067c44 pokemon.s CreateMonWithIVsPersonality +08067c84 pokemon.s CreateMonWithIVsOTID +08067cf8 pokemon.s CreateMonWithEVSpread +08067d80 pokemon.s CreateBattleTowerMon +08067ed0 pokemon.s CreateBattleTowerMon2 +08068080 pokemon.s CreateApprenticeMon +08068174 pokemon.s CreateMonWithEVSpreadNatureOTID +0806823c pokemon.s sub_0806823C +080683e8 pokemon.s CreateObedientMon +08068438 pokemon.s sub_08068438_jp +08068550 pokemon.s GetDeoxysStat +080685e4 pokemon.s SetDeoxysStats +08068688 pokemon.s sub_08068688_jp +080686f0 pokemon.s sub_080686F0 +08068758 pokemon.s CreateObedientEnemyMon +080687b8 pokemon.s CalculateBoxMonChecksum +0806884c pokemon.s CalculateMonStats +08068b44 pokemon.s BoxMonToMon +08068b94 pokemon.s GetLevelFromMonExp +08068c00 pokemon.s GetLevelFromBoxMonExp +08068c6c pokemon.s GiveMoveToMon +08068c80 pokemon.s GiveMoveToBoxMon +08068cf0 pokemon.s GiveMoveToBattleMon +08068d34 pokemon.s SetMonMoveSlot +08068d74 pokemon.s SetBattleMonMoveSlot +08068da4 pokemon.s MonRestorePP +08068db0 pokemon.s GiveBoxMonInitialMoveset +08068e58 pokemon.s MonTryLearningNewMove +08068f64 pokemon.s DeleteFirstMoveAndGiveMoveToMon +08069010 pokemon.s DeleteFirstMoveAndGiveMoveToBoxMon +080690bc pokemon.s CalculateBaseDamage +0806992c pokemon.s CountAliveMonsInBattle +08069a18 pokemon.s ShouldGetStatBadgeBoost +08069a74 pokemon.s GetDefaultMoveTarget +08069af4 pokemon.s GetMonGender +08069b04 pokemon.s GetBoxMonGender +08069b60 pokemon.s GetGenderFromSpeciesAndPersonality +08069ba8 pokemon.s SetMultiuseSpriteTemplateToPokemon +08069c6c pokemon.s SetMultiuseSpriteTemplateToTrainerBack +08069d00 pokemon.s SetMultiuseSpriteTemplateToTrainerFront +08069d68 pokemon.s EncryptBoxMon +08069d8c pokemon.s DecryptBoxMon +08069db0 pokemon.s GetSubstruct +0806a058 pokemon.s GetMonData +0806a1b4 pokemon.s GetBoxMonData +0806a774 pokemon.s SetMonData +0806a864 pokemon.s SetBoxMonData +0806aed0 pokemon.s CopyMon +0806aedc pokemon.s GiveMonToPlayer +0806af58 pokemon.s SendMonToPC +0806b004 pokemon.s CalculatePlayerPartyCount +0806b048 pokemon.s CalculateEnemyPartyCount +0806b08c pokemon.s GetMonsStateToDoubles +0806b100 pokemon.s GetMonsStateToDoubles_2 +0806b15c pokemon.s GetAbilityBySpecies +0806b1a0 pokemon.s GetMonAbility +0806b1d4 pokemon.s CreateSecretBaseEnemyParty +0806b2f8 pokemon.s GetSecretBaseTrainerClass +0806b338 pokemon.s GetSecretBaseTrainerPicIndex +0806b378 pokemon.s IsPlayerPartyAndPokemonStorageFull +0806b3ac pokemon.s IsPokemonStorageFull +0806b3dc pokemon.s GetSpeciesName +0806b424 pokemon.s CalculatePPWithBonus +0806b46c pokemon.s RemoveMonPPBonus +0806b4a8 pokemon.s RemoveBattleMonPPBonus +0806b4c0 pokemon.s CopyPlayerPartyMonToBattleData +0806b7c8 pokemon.s ExecuteTableBasedItemEffect +0806b7ec pokemon.s sub_0806B7EC +0806b9a4 pokemon.s GetTrainerNameFromId +0806b9c0 pokemon.s PokemonUseItemEffects +0806c820 pokemon.s PlayBattleBGM +0806c830 pokemon.s HealStatusConditions +0806c8a0 pokemon.s GetItemEffectParamOffset +0806c9e8 pokemon.s sub_0806C9E8_jp +0806ca3c pokemon.s sub_0806CA3C_jp +0806cb34 pokemon.s GetNature +0806cb4c pokemon.s GetNatureFromPersonality +0806cb5c pokemon.s GetEvolutionTargetSpecies +0806ce84 pokemon.s HoennPokedexNumToSpecies +0806ced0 pokemon.s NationalPokedexNumToSpecies +0806cf1c pokemon.s NationalToHoennOrder +0806cf68 pokemon.s HoennToNationalOrder +0806cf8c pokemon.s SpeciesToHoennPokedexNum +0806cfb0 pokemon.s SpeciesToNationalPokedexNum +0806cfd4 pokemon.s SpeciesToCryId +0806d008 pokemon.s sub_0806D008 +0806d128 pokemon.s DrawSpindaSpots +0806d23c pokemon.s sub_0806D23C_jp +0806d288 pokemon.s sub_0806D288 +0806d2c8 pokemon.s GetLinkTrainerFlankId +0806d300 pokemon.s GetBattlerMultiplayerId +0806d324 pokemon.s GetTrainerEncounterMusicId +0806d36c pokemon.s ModifyStatByNature +0806d3cc pokemon.s AdjustFriendship +0806d570 pokemon.s MonGainEVs +0806d720 pokemon.s GetMonEVCount +0806d748 pokemon.s RandomlyGivePartyPokerus +0806d810 pokemon.s CheckPartyPokerus +0806d878 pokemon.s CheckPartyHasHadPokerus +0806d8d8 pokemon.s UpdatePartyPokerusTime +0806d958 pokemon.s PartySpreadPokerus +0806da08 pokemon.s TryIncrementMonLevel +0806daa0 pokemon.s CanMonLearnTMHM +0806daf8 pokemon.s CanSpeciesLearnTMHM +0806db48 pokemon.s GetMoveRelearnerMoves +0806dc98 pokemon.s GetLevelUpMovesBySpecies +0806dcf0 pokemon.s GetNumberOfRelearnableMoves +0806de54 pokemon.s SpeciesToPokedexNum +0806de8c pokemon.s IsSpeciesInHoennDex +0806dea8 pokemon.s ClearBattleMonForms +0806dec0 pokemon.s GetBattleBGM +0806e0d8 pokemon.s GetFlavorRelationByPersonality +0806e0f4 pokemon.s PlayMapChosenOrBattleBGM +0806e120 pokemon.s GetMonFlavorRelation +0806e158 pokemon.s sub_0806E158_jp +0806e194 pokemon.s GetMonFrontSpritePal +0806e1cc pokemon.s GetMonSpritePalFromSpeciesAndPersonality +0806e220 pokemon.s GetMonSpritePalStruct +0806e258 pokemon.s GetMonSpritePalStructFromOtIdPersonality +0806e290 pokemon.s IsHMMove2 +0806e2cc pokemon.s IsMonSpriteNotFlipped +0806e2e4 pokemon.s sub_0806E2E4_jp +0806e30c pokemon.s sub_0806E30C_jp +0806e334 pokemon.s IsTradedMon +0806e360 pokemon.s IsOtherTrainer +0806e3b0 pokemon.s GiveMonInitialMoveset +0806e3bc pokemon.s BoxMonRestorePP +0806e420 pokemon.s SetMonPreventsSwitchingString +0806e4cc pokemon.s GetWildMonTableIdInAlteringCave +0806e4f4 pokemon.s SetWildMonHeldItem +0806e630 pokemon.s IsMonShiny +0806e65c pokemon.s IsShinyOtIdPersonality +0806e684 pokemon.s GetTrainerPartnerName +0806e6fc pokemon.s Task_AnimateAfterDelay +0806e738 pokemon.s Task_PokemonSummaryAnimateAfterDelay +0806e778 pokemon.s BattleAnimateFrontSprite +0806e7cc pokemon.s DoMonFrontSpriteAnimation +0806e898 pokemon.s PokemonSummaryDoMonAnimation +0806e924 pokemon.s StopPokemonAnimationDelayTask +0806e940 pokemon.s BattleAnimateBackSprite +0806e994 pokemon.s sub_0806E994 +0806ea10 pokemon.s sub_0806EA10_jp +0806ea7c pokemon.s FacilityClassToPicIndex +0806ea8c pokemon.s PlayerGenderToFrontTrainerPicId +0806eaa8 pokemon.s HandleSetPokedexFlag +0806eb08 pokemon.s GetTrainerClassNameFromId +0806eb38 pokemon.s sub_0806EB38_jp +0806eb58 pokemon.s HasTwoFramesAnimation +0806eb88 pokemon.s sub_0806EB88_jp +0806ebe4 pokemon.s sub_0806EBE4_jp +0806ec80 pokemon.s sub_0806EC80_jp +0806ed30 pokemon.s sub_0806ED30_jp +0806ef00 pokemon.s sub_0806EF00_jp +0806ef7c pokemon.s EvolutionRenameMon +trig.s +0806efb8 trig.s Sin +0806efd4 trig.s Cos +0806eff4 trig.s Sin2 +0806f038 trig.s Cos2 +random.s +0806f050 random.s Random +0806f07c random.s SeedRng +0806f094 random.s SeedRng2 +0806f0a4 random.s Random2 +util.s +0806f0c4 util.s CreateInvisibleSpriteWithCallback +0806f100 util.s StoreWordInTwoHalfwords +0806f108 util.s LoadWordFromTwoHalfwords +0806f118 util.s SetBgAffineStruct +0806f144 util.s DoBgAffineSet +0806f190 util.s CopySpriteTiles +0806f32c util.s CountTrailingZeroBits +0806f354 util.s CalcCRC16 +0806f3ac util.s CalcCRC16WithTable +0806f3f0 util.s CalcByteArraySum +0806f410 util.s BlendPalette +daycare.s +0806f4b0 daycare.s GetBoxMonNick +0806f4d0 daycare.s GetMonNick +0806f4f0 daycare.s CountPokemonInDaycare +0806f520 daycare.s InitDaycareMailRecordMixing +0806f58c daycare.s Daycare_FindEmptySpot +0806f5bc daycare.s StorePokemonInDaycare +0806f64c daycare.s StorePokemonInEmptyDaycareSlot +0806f670 daycare.s StoreSelectedPokemonInDaycare +0806f6a0 daycare.s ShiftDaycareSlots +0806f6fc daycare.s ApplyDaycareExperience +0806f750 daycare.s TakeSelectedPokemonFromDaycare +0806f7f4 daycare.s TakeSelectedPokemonMonFromDaycareShiftSlots +0806f81c daycare.s TakePokemonFromDaycare +0806f844 daycare.s GetLevelAfterDaycareSteps +0806f880 daycare.s GetNumLevelsGainedFromSteps +0806f8ac daycare.s GetNumLevelsGainedForDaycareMon +0806f8e0 daycare.s GetDaycareCostForSelectedMon +0806f918 daycare.s GetDaycareCostForMon +0806f930 daycare.s GetDaycareCost +0806f95c daycare.s Debug_AddDaycareSteps +0806f988 daycare.s GetNumLevelsGainedFromDaycare +0806f9d8 daycare.s ClearDaycareMonMail +0806fa08 daycare.s ClearDaycareMon +0806fa28 daycare.s ClearAllDaycareData +0806fa5c daycare.s GetEggSpecies +0806fadc daycare.s GetSlotToInheritNature +0806fb6c daycare.s _TriggerPendingDaycareEgg +0806fc10 daycare.s _TriggerPendingDaycareMaleEgg +0806fc38 daycare.s TriggerPendingDaycareEgg +0806fc54 daycare.s TriggerPendingDaycareMaleEgg +0806fc70 daycare.s RemoveIVIndexFromList +0806fcb8 daycare.s InheritIVs +0806fe20 daycare.s GetEggMoves +0806fec8 daycare.s BuildEggMoveset +08070168 daycare.s RemoveEggFromDayCare +08070180 daycare.s RejectEggFromDayCare +0807019c daycare.s AlterEggSpeciesWithIncenseItem +080701fc daycare.s GiveVoltTackleIfLightBall +08070244 daycare.s DetermineEggSpeciesAndParentSlots +08070320 daycare.s _GiveEggFromDaycare +080703ac daycare.s CreateEgg +0807044c daycare.s SetInitialEggData +080704d0 daycare.s GiveEggFromDaycare +080704ec daycare.s _DoEggActions_CheckHatch +080705f8 daycare.s ShouldEggHatch +08070618 daycare.s IsEggPending +0807062c daycare.s _GetDaycareMonNicknames +08070680 daycare.s GetSelectedMonNickAndSpecies +080706bc daycare.s GetDaycareMonNicknames +080706d8 daycare.s GetDaycareState +08070720 daycare.s GetDaycarePokemonCount +08070744 daycare.s EggGroupsOverlap +08070774 daycare.s GetDaycareCompatibilityScore +08070894 daycare.s GetDaycareCompatibilityScoreFromSave +080708b4 daycare.s SetDaycareCompatibilityString +080708f4 daycare.s NameHasGenderSymbol +08070970 daycare.s AppendGenderSymbol +080709c0 daycare.s AppendMonGenderSymbol +080709dc daycare.s GetDaycareLevelMenuText +08070a60 daycare.s GetDaycareLevelMenuLevelText +08070ac4 daycare.s DaycareAddTextPrinter +08070b38 daycare.s DaycarePrintMonNick +08070b74 daycare.s DaycarePrintMonLvl +08070bd8 daycare.s DaycarePrintMonInfo +08070c24 daycare.s Task_HandleDaycareLevelMenuInput +08070ce0 daycare.s ShowDaycareLevelMenu +08070d50 daycare.s ChooseSendDaycareMon +egg_hatch.s +08070d68 egg_hatch.s CreatedHatchedMon +08070ed0 egg_hatch.s AddHatchedMonToParty +08070f90 egg_hatch.s ScriptHatchMon +08070fa4 egg_hatch.s sub_08070FA4_jp +0807101c egg_hatch.s sub_0807101C_jp +08071044 egg_hatch.s EggHatchCreateMonSprite +08071134 egg_hatch.s VBlankCB_EggHatch +08071148 egg_hatch.s EggHatch +08071168 egg_hatch.s Task_EggHatch +080711a8 egg_hatch.s CB2_EggHatch_0 +08071400 egg_hatch.s EggHatchSetMonNickname +08071440 egg_hatch.s Task_EggHatchPlayBGM +08071498 egg_hatch.s CB2_EggHatch_1 +08071844 egg_hatch.s SpriteCB_Egg_0 +0807189c egg_hatch.s SpriteCB_Egg_1 +08071900 egg_hatch.s SpriteCB_Egg_2 +080719b4 egg_hatch.s SpriteCB_Egg_3 +080719d8 egg_hatch.s SpriteCB_Egg_4 +08071a58 egg_hatch.s SpriteCB_Egg_5 +08071af8 egg_hatch.s SpriteCB_EggShard +08071b50 egg_hatch.s CreateRandomEggShardSprite +08071ba4 egg_hatch.s CreateEggShardSprite +08071c24 egg_hatch.s EggHatchPrintMessage +08071c9c egg_hatch.s GetEggStepsToSubtract +08071cf0 egg_hatch.s sub_08071CF0_jp +battle_interface.s +08071d14 battle_interface.s DummiedOutFunction +08071d18 battle_interface.s sub_08071D18 +08071eb8 battle_interface.s sub_08071EB8 +08071eec battle_interface.s CreateBattlerHealthboxSprites +08072214 battle_interface.s CreateSafariPlayerHealthboxSprites +080722b4 battle_interface.s GetHealthboxElementGfxPtr +080722c4 battle_interface.s SpriteCB_HealthBar +08072334 battle_interface.s SpriteCB_HealthBoxOther +0807235c battle_interface.s SetBattleBarStruct +08072394 battle_interface.s SetHealthboxSpriteInvisible +080723e0 battle_interface.s SetHealthboxSpriteVisible +08072434 battle_interface.s UpdateSpritePos +08072454 battle_interface.s DestoryHealthboxSprite +08072494 battle_interface.s DummyBattleInterfaceFunc +08072498 battle_interface.s UpdateOamPriorityInAllHealthboxes +08072528 battle_interface.s InitBattlerHealthboxCoords +080725a4 battle_interface.s UpdateLvlInHealthbox +080726f4 battle_interface.s sub_080726F4_jp +080727fc battle_interface.s UpdateHpTextInHealthboxInDoubles +080729d0 battle_interface.s PrintSafariMonInfo +08072c10 battle_interface.s SwapHpBarsWithHpText +08072ed8 battle_interface.s CreatePartyStatusSummarySprites +0807352c battle_interface.s Task_HidePartyStatusSummary +08073704 battle_interface.s sub_08073704 +08073760 battle_interface.s sub_08073760_jp +08073894 battle_interface.s sub_08073894_jp +08073974 battle_interface.s SpriteCB_StatusSummaryBar +0807398c battle_interface.s sub_0807398C +080739c0 battle_interface.s SpriteCB_StatusSummaryBallsOnBattleStart +08073a54 battle_interface.s sub_08073A54 +08073ac4 battle_interface.s SpriteCB_StatusSummaryBallsOnSwitchout +08073ae4 battle_interface.s UpdateNickInHealthbox +08073d80 battle_interface.s TryAddPokeballIconToHealthbox +08073e68 battle_interface.s UpdateStatusIconInHealthbox +08074118 battle_interface.s GetStatusIconForBattlerId +080741e0 battle_interface.s AddTextPrinterAndCreateWindowOnHealthbox +08074320 battle_interface.s sub_08074320_jp +080743f0 battle_interface.s UpdateHealthboxAttribute +08074630 battle_interface.s MoveBattleBar +0807472c battle_interface.s MoveBattleBarGraphically +08074948 battle_interface.s CalcNewBarValue +08074a1c battle_interface.s CalcBarFilledPixels +08074ab8 battle_interface.s sub_08074AB8 +08074b18 battle_interface.s sub_08074B18 +08074b78 battle_interface.s GetScaledExpFraction +08074bc4 battle_interface.s GetScaledHPFraction +08074bf0 battle_interface.s GetHPBarLevel +smokescreen.s +08074c24 smokescreen.s sub_08074C24_jp +08074d78 smokescreen.s sub_08074D78_jp +08074dbc smokescreen.s sub_08074DBC_jp +pokeball.s +08074df0 pokeball.s DoPokeballSendOutAnimation +08074e58 pokeball.s Task_DoPokeballSendOutAnim +08075028 pokeball.s SpriteCB_TestBallThrow +080750dc pokeball.s sub_080750DC +080750e8 pokeball.s sub_080750E8_jp +08075154 pokeball.s sub_08075154_jp +080751ec pokeball.s sub_080751EC_jp +08075240 pokeball.s sub_08075240_jp +08075338 pokeball.s sub_08075338_jp +08075378 pokeball.s sub_08075378 +080754c4 pokeball.s Task_PlayCryWhenReleasedFromBall +0807571c pokeball.s SpriteCB_ReleaseMonFromBall +080759bc pokeball.s sub_080759BC +080759dc pokeball.s HandleBallAnimEnd +08075b00 pokeball.s sub_08075B00_jp +08075bbc pokeball.s SpriteCB_PlayerMonSendOut_1 +08075c0c pokeball.s SpriteCB_PlayerMonSendOut_2 +08075d7c pokeball.s SpriteCB_ReleaseMon2FromBall +08075da0 pokeball.s SpriteCB_OpponentMonSendOut +08075e00 pokeball.s AnimateBallOpenParticlesForPokeball +08075e28 pokeball.s LaunchBallFadeMonTaskForPokeball +08075e40 pokeball.s CreatePokeballSpriteToReleaseMon +08075f2c pokeball.s sub_08075F2C +08075fe8 pokeball.s sub_08075FE8_jp +08076124 pokeball.s sub_08076124_jp +080761dc pokeball.s sub_080761DC_jp +08076284 pokeball.s sub_08076284_jp +080762f8 pokeball.s sub_080762F8_jp +08076314 pokeball.s Unref_DestroySpriteAndFreeResources +08076320 pokeball.s sub_08076320_jp +080763b0 pokeball.s sub_080763B0_jp +080763d4 pokeball.s sub_080763D4_jp +080763fc pokeball.s DoHitAnimHealthboxEffect +08076440 pokeball.s SpriteCB_HitAnimHealthoxEffect +08076480 pokeball.s LoadBallGfx +080764f0 pokeball.s FreeBallGfx +0807651c pokeball.s GetBattlerPokeballItemId +load_save.s +08076570 load_save.s CheckForFlashMemory +0807659c load_save.s ClearSav1 +080765c0 load_save.s ClearSav2 +080765e4 load_save.s SetSaveBlocksPointers +08076634 load_save.s MoveSaveBlocks_ResetHeap +0807672c load_save.s UseContinueGameWarp +0807673c load_save.s ClearContinueGameWarpStatus2 +08076750 load_save.s SetContinueGameWarpStatus +08076764 load_save.s SetContinueGameWarpStatusToDynamicWarp +08076780 load_save.s ClearContinueGameWarpStatus +08076794 load_save.s SavePlayerParty +080767dc load_save.s LoadPlayerParty +08076824 load_save.s SaveEventObjects +0807686c load_save.s LoadEventObjects +080768b4 load_save.s SaveSerializedGame +080768c4 load_save.s LoadSerializedGame +080768d4 load_save.s LoadPlayerBag +080769e8 load_save.s SavePlayerBag +08076b08 load_save.s ApplyNewEncryptionKeyToHword +08076b20 load_save.s ApplyNewEncryptionKeyToWord +08076b38 load_save.s ApplyNewEncryptionKeyToAllEncryptedData +trade.s +08076b78 trade.s sub_08076B78_jp +08076bb4 trade.s sub_08076BB4_jp +08076bc4 trade.s sub_08076BC4_jp +08076c08 trade.s _GetBlockReceivedStatus +08076c18 trade.s sub_08076C18_jp +08076c3c trade.s sub_08076C3C_jp +08076c68 trade.s sub_08076C68_jp +08076c90 trade.s sub_08076C90_jp +08076c9c trade.s _IsLinkTaskFinished +08076cac trade.s sub_08076CAC_jp +08076db4 trade.s sub_08076DB4_jp +08076dd8 trade.s sub_08076DD8_jp +08077558 trade.s sub_08077558_jp +08077ae4 trade.s sub_08077AE4_jp +08077af8 trade.s sub_08077AF8_jp +08077b34 trade.s sub_08077B34_jp +08077b90 trade.s sub_08077B90_jp +08077c24 trade.s sub_08077C24_jp +08077c80 trade.s sub_08077C80_jp +08077d50 trade.s sub_08077D50 +08077e00 trade.s Trade_Memcpy +08077e20 trade.s shedinja_maker_maybe +08078120 trade.s sub_08078120_jp +080781c4 trade.s sub_080781C4_jp +080782e4 trade.s sub_080782E4_jp +080783e0 trade.s sub_080783E0_jp +080785e0 trade.s sub_080785E0_jp +080785f4 trade.s sub_080785F4_jp +08078618 trade.s sub_08078618_jp +08078650 trade.s sub_08078650_jp +0807869c trade.s TradeMenuMoveCursor +0807875c trade.s sub_0807875C_jp +080787a0 trade.s sub_080787A0_jp +08078900 trade.s sub_08078900_jp +08078958 trade.s sub_08078958_jp +08078a3c trade.s sub_08078A3C_jp +08078a64 trade.s sub_08078A64_jp +08078adc trade.s sub_08078ADC_jp +08078b7c trade.s sub_08078B7C_jp +08078c20 trade.s sub_08078C20_jp +08078ca4 trade.s sub_08078CA4_jp +08078cec trade.s sub_08078CEC_jp +08078d64 trade.s sub_08078D64_jp +08078da0 trade.s sub_08078DA0_jp +08078dcc trade.s Wait2SecondsAndCreateYesNoMenu +08078e1c trade.s sub_08078E1C_jp +08078ea4 trade.s sub_08078EA4_jp +08078ee0 trade.s sub_08078EE0_jp +08078f64 trade.s sub_08078F64_jp +08078f90 trade.s sub_08078F90_jp +08078fc0 trade.s sub_08078FC0_jp +08079090 trade.s sub_08079090_jp +080790c8 trade.s sub_080790C8_jp +0807946c trade.s sub_0807946C_jp +08079564 trade.s sub_08079564_jp +08079644 trade.s sub_08079644_jp +08079690 trade.s sub_08079690_jp +08079740 trade.s sub_08079740_jp +0807987c trade.s sub_0807987C_jp +080798e0 trade.s sub_080798E0_jp +080799ac trade.s sub_080799AC_jp +080799c0 trade.s sub_080799C0_jp +08079a38 trade.s sub_08079A38_jp +08079a5c trade.s sub_08079A5C_jp +08079a80 trade.s sub_08079A80_jp +08079ad4 trade.s sub_08079AD4_jp +08079afc trade.s sub_08079AFC_jp +08079bd4 trade.s sub_08079BD4_jp +08079c28 trade.s sub_08079C28_jp +08079d3c trade.s sub_08079D3C_jp +08079d98 trade.s sub_08079D98_jp +08079ee0 trade.s sub_08079EE0_jp +08079fb4 trade.s sub_08079FB4_jp +0807a028 trade.s sub_0807A028_jp +0807a064 trade.s sub_0807A064_jp +0807a198 trade.s sub_0807A198_jp +0807a22c trade.s IsDeoxysOrMewUntradable +0807a250 trade.s sub_0807A250 +0807a340 trade.s sub_0807A340_jp +0807a388 trade.s sub_0807A388_jp +0807a498 trade.s sub_0807A498_jp +0807a4bc trade.s sub_0807A4BC_jp +0807a4ec trade.s sub_0807A4EC_jp +0807a52c trade.s sub_0807A52C_jp +0807a550 trade.s sub_0807A550_jp +0807a574 trade.s sub_0807A574_jp +0807a598 trade.s sub_0807A598_jp +0807a628 trade.s sub_0807A628_jp +0807a680 trade.s sub_0807A680_jp +0807a698 trade.s sub_0807A698_jp +0807a6c0 trade.s sub_0807A6C0_jp +0807a738 trade.s sub_0807A738_jp +0807a758 trade.s sub_0807A758_jp +0807a8ac trade.s sub_0807A8AC_jp +0807ab9c trade.s sub_0807AB9C_jp +0807abb0 trade.s sub_0807ABB0_jp +0807abcc trade.s sub_0807ABCC_jp +0807acc8 trade.s sub_0807ACC8_jp +0807ae9c trade.s sub_0807AE9C_jp +0807aefc trade.s sub_0807AEFC_jp +0807af08 trade.s sub_0807AF08_jp +0807aff0 trade.s sub_0807AFF0_jp +0807b044 trade.s sub_0807B044_jp +0807b064 trade.s sub_0807B064_jp +0807b4cc trade.s sub_0807B4CC_jp +0807b510 trade.s SetTradeSceneStrings +0807b600 trade.s sub_0807B600_jp +0807b624 trade.s sub_0807B624_jp +0807ca00 trade.s sub_0807CA00_jp +0807de4c trade.s c2_08053788 +0807df14 trade.s sub_0807DF14_jp +0807df94 trade.s sub_0807DF94_jp +0807e010 trade.s sub_0807E010_jp +0807e084 trade.s sub_0807E084_jp +0807e0e4 trade.s sub_0807E0E4_jp +0807e174 trade.s GetInGameTradeSpeciesInfo +0807e1c4 trade.s sub_0807E1C4_jp +0807e228 trade.s _CreateInGameTradePokemon +0807e3b4 trade.s sub_0807E3B4_jp +0807e40c trade.s GetTradeSpecies +0807e448 trade.s CreateInGameTradePokemon +0807e464 trade.s sub_0807E464_jp +0807e504 trade.s sub_0807E504_jp +0807e588 trade.s sub_0807E588_jp +0807eaa0 trade.s c2_080543C4 +0807eb1c trade.s DoInGameTradeScene +0807eb48 trade.s sub_0807EB48_jp +0807eb84 trade.s sub_0807EB84_jp +0807ebd4 trade.s sub_0807EBD4_jp +0807ebe0 trade.s sub_0807EBE0 +0807ec48 trade.s c3_08054588 +0807ed1c trade.s c3_0805465C +0807edd4 trade.s sub_0807EDD4_jp +0807ee9c trade.s sub_0807EE9C_jp +berry_blender.s +0807f170 berry_blender.s Blender_ControlHitPitch +0807f19c berry_blender.s VBlankCB0_BerryBlender +0807f210 berry_blender.s LoadBerryBlenderGfx +0807f408 berry_blender.s sub_0807F408_jp +0807f46c berry_blender.s InitBerryBlenderWindows +0807f4b8 berry_blender.s DoBerryBlending +0807f500 berry_blender.s sub_0807F500_jp +0807f740 berry_blender.s sub_0807F740_jp +0807f79c berry_blender.s sub_0807F79C_jp +0807f7c8 berry_blender.s sub_0807F7C8 +0807f84c berry_blender.s Blender_CopyBerryData +0807f88c berry_blender.s Blender_SetPlayerNamesLocal +0807f9ac berry_blender.s sub_0807F9AC_jp +0807fa20 berry_blender.s sub_0807FA20_jp +0807ff90 berry_blender.s sub_0807FF90_jp +0808002c berry_blender.s sub_0808002C_jp +0808007c berry_blender.s Blender_SetOpponentsBerryData +08080154 berry_blender.s sub_08080154 +080801c4 berry_blender.s Blender_PrintPlayerNames +080802f0 berry_blender.s sub_080802F0_jp +08080814 berry_blender.s sub_08080814_jp +0808083c berry_blender.s sub_0808083C_jp +08080888 berry_blender.s sub_08080888_jp +080808c0 berry_blender.s sub_080808C0_jp +080809ec berry_blender.s sub_080809EC_jp +08080b14 berry_blender.s sub_08080B14_jp +08080c40 berry_blender.s sub_08080C40_jp +08080ca4 berry_blender.s sub_08080CA4_jp +08080d8c berry_blender.s sub_08080D8C_jp +08080ecc berry_blender.s sub_08080ECC_jp +08080f10 berry_blender.s sub_08080F10_jp +08081160 berry_blender.s sub_08081160_jp +080812b4 berry_blender.s sub_080812B4_jp +0808137c berry_blender.s Blender_DummiedOutFunc +08081380 berry_blender.s sub_08081380 +080813d4 berry_blender.s Blender_GetPokeblockColor +080815cc berry_blender.s sub_080815CC +080815d8 berry_blender.s sub_080815D8_jp +080815e4 berry_blender.s sub_080815E4_jp +080815f0 berry_blender.s sub_080815F0 +080815fc berry_blender.s Blender_CalculatePokeblock +08081820 berry_blender.s BlenderDebug_CalculatePokeblock +0808183c berry_blender.s sub_0808183C +080819b0 berry_blender.s sub_080819B0_jp +080819e4 berry_blender.s CB2_HandleBlenderEndGame +08081f18 berry_blender.s LinkPlayAgainHandleSaving +08082060 berry_blender.s CB2_HandlePlayerLinkPlayAgainChoice +08082340 berry_blender.s CB2_HandlePlayerPlayAgainChoice +080824f0 berry_blender.s sub_080824F0 +080826d0 berry_blender.s sub_080826D0 +08082734 berry_blender.s GetBlenderArrowPosition +08082744 berry_blender.s sub_08082744 +08082810 berry_blender.s BerryBlender_SetBackgroundsPos +08082858 berry_blender.s sub_08082858 +080828a0 berry_blender.s sub_080828A0_jp +08082984 berry_blender.s sub_08082984_jp +080829b8 berry_blender.s sub_080829B8 +080829f8 berry_blender.s Blender_SetParticipantBerryData +08082a2c berry_blender.s sub_08082A2C +08082adc berry_blender.s sub_08082ADC_jp +08082b5c berry_blender.s sub_08082B5C_jp +08082b8c berry_blender.s sub_08082B8C_jp +08082c2c berry_blender.s sub_08082C2C_jp +08082c4c berry_blender.s sub_08082C4C_jp +08082cd8 berry_blender.s sub_08082CD8_jp +08082d04 berry_blender.s sub_08082D04_jp +08082d28 berry_blender.s sub_08082D28_jp +08082d50 berry_blender.s sub_08082D50_jp +08082d9c berry_blender.s sub_08082D9C_jp +08082e14 berry_blender.s sub_08082E14 +08082e34 berry_blender.s TryUpdateBerryBlenderRecord +08082e6c berry_blender.s Blender_PrintBlendingResults +080832a0 berry_blender.s Blender_PrintMadePokeblockString +08083350 berry_blender.s Blender_SortBasedOnPoints +080833a8 berry_blender.s Blender_SortScores +080834fc berry_blender.s Blender_PrintBlendingRanking +080837c8 berry_blender.s ShowBerryBlenderRecordWindow +080838c4 berry_blender.s sub_080838C4_jp +0808391c berry_blender.s TryAddContestLinkTvShow +08083a5c berry_blender.s Blender_AddTextPrinter +08083b04 berry_blender.s Blender_PrintText +play_time.s +08083b6c play_time.s PlayTimeCounter_Reset +08083b90 play_time.s PlayTimeCounter_Start +08083bb8 play_time.s PlayTimeCounter_Stop +08083bc4 play_time.s PlayTimeCounter_Update +08083c2c play_time.s PlayTimeCounter_SetToMax +new_game.s +08083c54 new_game.s SetTrainerId +08083c64 new_game.s GetTrainerId +08083c7c new_game.s CopyTrainerId +08083c98 new_game.s InitPlayerTrainerId +08083cc4 new_game.s SetDefaultOptions +08083d18 new_game.s ClearPokedexFlags +08083d48 new_game.s ClearAllContestWinnerPics +08083d88 new_game.s ClearFrontierRecord +08083dd4 new_game.s WarpToTruck +08083df4 new_game.s Sav2_ClearSetDefault +08083e04 new_game.s ResetMenuAndMonGlobals +08083e28 new_game.s NewGameInitData +08083f54 new_game.s ResetMiniGamesResults +overworld.s +08083fa8 overworld.s DoWhiteOut +08083fe8 overworld.s Overworld_ResetStateAfterDigEscRope +08084024 overworld.s Overworld_ResetStateAfterTeleport +0808406c overworld.s Overworld_ResetStateAfterFly +080840a8 overworld.s Overworld_ResetStateAfterWhiteOut +08084110 overworld.s sub_08084110_jp +08084130 overworld.s ResetGameStats +0808414c overworld.s IncrementGameStat +08084180 overworld.s GetGameStat +080841b8 overworld.s SetGameStat +080841ec overworld.s ApplyNewEncryptionKeyToGameStats +0808421c overworld.s LoadEventObjTemplatesFromHeader +08084268 overworld.s LoadSaveblockEventObjScripts +08084298 overworld.s Overworld_SetEventObjTemplateCoords +080842d4 overworld.s Overworld_SetEventObjTemplateMovementType +08084308 overworld.s mapdata_load_assets_to_gpu_and_full_redraw +08084330 overworld.s GetMapLayout +08084358 overworld.s ApplyCurrentWarp +0808439c overworld.s SetWarpData +080843bc overworld.s IsDummyWarp +080843f8 overworld.s Overworld_GetMapHeaderByGroupAndId +08084410 overworld.s GetDestinationWarpMapHeader +08084434 overworld.s LoadCurrentMapData +08084484 overworld.s LoadSaveblockMapHeader +080844c4 overworld.s SetPlayerCoordsFromWarp +08084540 overworld.s WarpIntoMap +08084554 overworld.s SetWarpDestination +08084590 overworld.s SetWarpDestinationToMapWarp +080845b0 overworld.s SetDynamicWarp +080845e4 overworld.s SetDynamicWarpWithCoords +0808461c overworld.s SetWarpDestinationToDynamicWarp +08084634 overworld.s SetWarpDestinationToHealLocation +0808466c overworld.s SetWarpDestinationToLastHealLocation +08084684 overworld.s SetLastHealLocationWarp +080846c4 overworld.s UpdateEscapeWarp +0808473c overworld.s SetEscapeWarp +0808477c overworld.s SetWarpDestinationToEscapeWarp +08084794 overworld.s SetFixedDiveWarp +080847d0 overworld.s SetWarpDestinationToDiveWarp +080847e8 overworld.s SetFixedHoleWarp +08084824 overworld.s SetWarpDestinationToFixedHoleWarp +0808487c overworld.s SetWarpDestinationToContinueGameWarp +08084894 overworld.s SetContinueGameWarp +080848d4 overworld.s SetContinueGameWarpToHealLocation +08084914 overworld.s SetContinueGameWarpToDynamicWarp +08084928 overworld.s GetMapConnection +08084960 overworld.s SetDiveWarp +080849c0 overworld.s SetDiveWarpEmerge +080849e0 overworld.s SetDiveWarpDive +08084a00 overworld.s LoadMapFromCameraTransition +08084ac8 overworld.s mli0_load_map +08084bd0 overworld.s ResetInitialPlayerAvatarState +08084be0 overworld.s StoreInitialPlayerAvatarState +08084c3c overworld.s GetInitialPlayerAvatarState +08084c94 overworld.s GetAdjustedInitialTransitionFlags +08084cf4 overworld.s GetAdjustedInitialDirection +08084db8 overworld.s GetCenterScreenMetatileBehavior +08084ddc overworld.s Overworld_IsBikingAllowed +08084dfc overworld.s SetDefaultFlashLevel +08084e54 overworld.s Overworld_SetFlashLevel +08084e7c overworld.s Overworld_GetFlashLevel +08084e8c overworld.s SetCurrentMapLayout +08084ea8 overworld.s sub_08084EA8 +08084eb4 overworld.s sub_08084EB4 +08084ec0 overworld.s ShouldLegendaryMusicPlayAtLocation +08084f1c overworld.s NoMusicInSotopolisWithLegendaries +08084f50 overworld.s IsInfiltratedWeatherInstitute +08084f80 overworld.s IsInflitratedSpaceCenter +08084fc4 overworld.s GetLocationMusic +0808503c overworld.s GetCurrLocationDefaultMusic +080850a0 overworld.s GetWarpDestinationMusic +080850e0 overworld.s Overworld_ResetMapMusic +080850ec overworld.s Overworld_PlaySpecialMapMusic +0808515c overworld.s Overworld_SetSavedMusic +08085168 overworld.s Overworld_ClearSavedMusic +08085178 overworld.s sub_08085178_jp +08085200 overworld.s Overworld_ChangeMusicToDefault +0808522c overworld.s Overworld_ChangeMusicTo +08085258 overworld.s GetMapMusicFadeoutSpeed +08085278 overworld.s TryFadeOutOldMapMusic +08085308 overworld.s BGMusicStopped +08085318 overworld.s Overworld_FadeOutMapMusic +08085324 overworld.s PlayAmbientCry +080853a4 overworld.s UpdateAmbientCry +08085494 overworld.s ChooseAmbientCrySpecies +080854dc overworld.s GetMapTypeByGroupAndId +080854f4 overworld.s GetMapTypeByWarpData +0808550c overworld.s GetCurrentMapType +08085524 overworld.s GetLastUsedWarpMapType +08085538 overworld.s IsMapTypeOutdoors +0808555c overworld.s Overworld_MapTypeAllowsTeleportAndFly +0808557c overworld.s IsMapTypeIndoors +08085598 overworld.s GetSavedWarpRegionMapSectionId +080855c0 overworld.s GetCurrentRegionMapSectionId +080855e8 overworld.s GetCurrentMapBattleScene +08085610 overworld.s InitOverworldBgs +0808569c overworld.s CleanupOverworldWindowsAndTilemaps +080856e8 overworld.s CB2_OverworldBasic +080856f4 overworld.s IsUpdateLinkStateCBActive +08085714 overworld.s DoCB1_Overworld +0808576c overworld.s CB1_Overworld +0808578c overworld.s OverworldBasic +080857b8 overworld.s ResetSafariZoneFlag_ +080857c4 overworld.s CB2_Overworld +080857f0 overworld.s SetMainCallback1 +080857fc overworld.s SetUnusedCallback +08085808 overworld.s map_post_load_hook_exec +08085860 overworld.s CB2_NewGame +080858c0 overworld.s CB2_WhiteOut +08085934 overworld.s CB2_LoadMap +08085964 overworld.s CB2_LoadMap2 +0808598c overworld.s sub_0808598C_jp +080859dc overworld.s sub_080859DC_jp +08085a00 overworld.s c2_80567AC +08085a30 overworld.s CB2_ReturnToField +08085a5c overworld.s CB2_ReturnToFieldLocal +08085a80 overworld.s CB2_ReturnToFieldLink +08085aa8 overworld.s CB2_ReturnToFieldFromMultiplayer +08085afc overworld.s CB2_ReturnToFieldWithOpenMenu +08085b18 overworld.s CB2_ReturnToFieldContinueScript +08085b34 overworld.s CB2_ReturnToFieldContinueScriptPlayMapMusic +08085b50 overworld.s sub_08085B50_jp +08085b6c overworld.s sub_08085B6C_jp +08085b98 overworld.s CB2_ContinueSavedGame +08085c80 overworld.s FieldClearVBlankHBlankCallbacks +08085ce4 overworld.s SetFieldVBlankCallback +08085cf4 overworld.s VBlankCB_Field +08085d14 overworld.s InitCurrentFlashLevelScanlineEffect +08085d5c overworld.s map_loading_iteration_3 +08085e80 overworld.s load_map_stuff +08085f9c overworld.s sub_08085F9C +08085ffc overworld.s map_loading_iteration_2_link +08086114 overworld.s do_load_map_stuff_loop +0808612c overworld.s sub_0808612C +0808613c overworld.s sub_0808613C_jp +080861c4 overworld.s sub_080861C4_jp +080861dc overworld.s InitOverworldGraphicsRegisters +080862ec overworld.s sub_080862EC_jp +08086340 overworld.s sub_08086340_jp +08086368 overworld.s mli4_mapscripts_and_other +080863cc overworld.s sub_080863CC_jp +080863e4 overworld.s sub_080863E4 +08086410 overworld.s SetCameraToTrackGuestPlayer +0808642c overworld.s SetCameraToTrackGuestPlayer_2 +08086448 overworld.s sub_08086448 +08086478 overworld.s sub_08086478 +08086500 overworld.s CreateLinkPlayerSprites +0808653c overworld.s CB1_UpdateLinkState +08086590 overworld.s ResetAllMultiplayerState +080865a4 overworld.s ClearAllPlayerKeys +080865b4 overworld.s SetKeyInterceptCallback +080865c8 overworld.s CheckRfuKeepAliveTimer +080865f4 overworld.s ResetAllTradingStates +0808660c overworld.s AreAllPlayersInTradingState +08086644 overworld.s IsAnyPlayerInTradingState +0808667c overworld.s HandleLinkPlayerKeyInput +0808689c overworld.s UpdateAllLinkPlayers +08086904 overworld.s UpdateHeldKeyCode +08086970 overworld.s KeyInterCB_ReadButtons +080869cc overworld.s GetDirectionForDpadKey +08086a00 overworld.s ResetPlayerHeldKeys +08086a14 overworld.s KeyInterCB_SelfIdle +08086a50 overworld.s sub_08086A50 +08086a5c overworld.s KeyInterCB_DeferToEventScript +08086a80 overworld.s KeyInterCB_DeferToRecvQueue +08086aa4 overworld.s KeyInterCB_DeferToSendQueue +08086ac8 overworld.s KeyInterCB_DoNothingAndKeepAlive +08086ad4 overworld.s sub_08086AD4_jp +08086b10 overworld.s sub_08086B10_jp +08086b24 overworld.s KeyInterCB_SendNothing_2 +08086b28 overworld.s KeyInterCB_WaitForPlayersToExit +08086b60 overworld.s KeyInterCB_SendExitRoomKey +08086b74 overworld.s KeyInterCB_SendNothing +08086b78 overworld.s sub_08086B78_jp +08086be0 overworld.s sub_08086BE0_jp +08086bec overworld.s sub_08086BEC_jp +08086c00 overworld.s sub_08086C00 +08086c14 overworld.s QueueExitLinkRoomKey +08086c28 overworld.s sub_08086C28 +08086c3c overworld.s LoadTradeRoomPlayer +08086ca4 overworld.s sub_08086CA4 +08086cbc overworld.s sub_08086CBC +08086cd4 overworld.s TryGetTileEventScript +08086cec overworld.s PlayerIsAtSouthExit +08086d18 overworld.s TryInteractWithPlayer +08086de4 overworld.s GetDirectionForEventScript +08086e74 overworld.s sub_08086E74_jp +08086e80 overworld.s InitLinkRoomStartMenuScript +08086e94 overworld.s InitMenuBasedScript +08086eb0 overworld.s CreateConfirmLeaveTradeRoomPrompt +08086ecc overworld.s sub_08086ECC_jp +08086ee8 overworld.s sub_08086EE8_jp +08086efc overworld.s sub_08086EFC_jp +08086f2c overworld.s sub_08086F2C_jp +08086f98 overworld.s sub_08086F98_jp +08086fd0 overworld.s sub_08086FD0_jp +08086ff4 overworld.s GetLinkSendQueueLength +08087028 overworld.s ZeroLinkPlayerEventObject +08087030 overworld.s ClearLinkPlayerEventObjects +08087044 overworld.s ZeroEventObject +08087054 overworld.s SpawnLinkPlayerEventObject +08087100 overworld.s InitLinkPlayerEventObjectPos +08087140 overworld.s sub_08087140 +08087170 overworld.s sub_08087170 +080871bc overworld.s GetSpriteForLinkedPlayer +080871dc overworld.s GetLinkPlayerCoords +08087204 overworld.s GetLinkPlayerFacingDirection +08087224 overworld.s GetLinkPlayerElevation +08087248 overworld.s sub_08087248 +08087270 overworld.s GetLinkPlayerIdAt +080872d0 overworld.s SetPlayerFacingDirection +0808733c overworld.s MovementEventModeCB_Normal +0808735c overworld.s MovementEventModeCB_Ignored +08087360 overworld.s MovementEventModeCB_Normal_2 +08087380 overworld.s FacingHandler_DoNothing +08087384 overworld.s FacingHandler_DpadMovement +080873ec overworld.s FacingHandler_ForcedFacingChange +08087404 overworld.s MovementStatusHandler_EnterFreeMode +0808740c overworld.s MovementStatusHandler_TryAdvanceScript +08087444 overworld.s FlipVerticalAndClearForced +080874a4 overworld.s LinkPlayerDetectCollision +08087530 overworld.s CreateLinkPlayerSprite +080875f0 overworld.s SpriteCB_LinkPlayer +fieldmap.s +080876a8 fieldmap.s mapconnection_get_mapheader +080876b8 fieldmap.s InitMap +080876d8 fieldmap.s InitMapFromSavedGame +08087710 fieldmap.s InitBattlePyramidMap +08087748 fieldmap.s InitTrainerHillMap +08087778 fieldmap.s InitMapLayoutData +080877d4 fieldmap.s InitBackupMapLayoutData +0808782c fieldmap.s InitBackupMapLayoutConnections +080878b8 fieldmap.s sub_080878B8 +0808791c fieldmap.s FillSouthConnection +08087984 fieldmap.s FillNorthConnection +080879e4 fieldmap.s FillWestConnection +08087a44 fieldmap.s FillEastConnection +08087aa8 fieldmap.s MapGridGetZCoordAt +08087b14 fieldmap.s MapGridIsImpassableAt +08087b88 fieldmap.s MapGridGetMetatileIdAt +08087c20 fieldmap.s MapGridGetMetatileBehaviorAt +08087c38 fieldmap.s MapGridGetMetatileLayerTypeAt +08087c54 fieldmap.s MapGridSetMetatileIdAt +08087c9c fieldmap.s MapGridSetMetatileEntryAt +08087cd4 fieldmap.s GetBehaviorByMetatileId +08087d28 fieldmap.s save_serialize_map +08087d9c fieldmap.s SavedMapViewIsEmpty +08087dd8 fieldmap.s ClearSavedMapView +08087e00 fieldmap.s LoadSavedMapView +08087f28 fieldmap.s sub_08087F28 +08088000 fieldmap.s GetMapBorderIdAt +080880ec fieldmap.s GetPostCameraMoveMapBorderId +08088114 fieldmap.s CanCameraMoveInDirection +0808815c fieldmap.s sub_0808815C +080881e0 fieldmap.s CameraMove +080882b4 fieldmap.s sub_080882B4 +0808830c fieldmap.s sub_0808830C_jp +08088370 fieldmap.s sub_08088370_jp +0808839c fieldmap.s sub_0808839C_jp +080883b0 fieldmap.s sub_080883B0_jp +080883f0 fieldmap.s sub_080883F0_jp +080884a0 fieldmap.s sub_080884A0 +080884bc fieldmap.s GetCameraFocusCoords +080884d4 fieldmap.s SetPlayerCoords +080884e4 fieldmap.s GetCameraCoords +080884f8 fieldmap.s sub_080884F8 +08088554 fieldmap.s SkipCopyingMetatileFromSavedMap +08088598 fieldmap.s copy_tileset_patterns_to_vram +080885dc fieldmap.s copy_tileset_patterns_to_vram2 +08088620 fieldmap.s nullsub_90 +08088624 fieldmap.s nullsub_3 +08088628 fieldmap.s apply_map_tileset_palette +080886b4 fieldmap.s copy_map_tileset1_to_vram +080886c8 fieldmap.s copy_map_tileset2_to_vram +080886dc fieldmap.s copy_map_tileset2_to_vram_2 +080886f0 fieldmap.s apply_map_tileset1_palette +08088700 fieldmap.s apply_map_tileset2_palette +08088710 fieldmap.s copy_map_tileset1_tileset2_to_vram +08088738 fieldmap.s apply_map_tileset1_tileset2_palette +metatile_behavior.s +08088750 metatile_behavior.s MetatileBehavior_IsATile +08088754 metatile_behavior.s MetatileBehavior_IsEncounterTile +08088778 metatile_behavior.s MetatileBehavior_IsJumpEast +0808878c metatile_behavior.s MetatileBehavior_IsJumpWest +080887a0 metatile_behavior.s MetatileBehavior_IsJumpNorth +080887b4 metatile_behavior.s MetatileBehavior_IsJumpSouth +080887c8 metatile_behavior.s MetatileBehavior_IsPokeGrass +080887e4 metatile_behavior.s MetatileBehavior_IsSandOrDeepSand +080887fc metatile_behavior.s MetatileBehavior_IsDeepSand +08088810 metatile_behavior.s MetatileBehavior_IsReflective +08088838 metatile_behavior.s MetatileBehavior_IsIce_2 +0808884c metatile_behavior.s MetatileBehavior_IsWarpDoor +08088860 metatile_behavior.s MetatileBehavior_IsDoor +08088878 metatile_behavior.s MetatileBehavior_IsEscalator +08088894 metatile_behavior.s Unref_MetatileBehavior_IsUnused04 +080888a8 metatile_behavior.s MetatileBehavior_IsLadder +080888bc metatile_behavior.s MetatileBehavior_IsNonAnimDoor +080888d8 metatile_behavior.s MetatileBehavior_IsDeepSouthWarp +080888ec metatile_behavior.s MetatileBehavior_IsSurfableWaterOrUnderwater +08088910 metatile_behavior.s MetatileBehavior_IsEastArrowWarp +08088924 metatile_behavior.s MetatileBehavior_IsWestArrowWarp +08088938 metatile_behavior.s MetatileBehavior_IsNorthArrowWarp +08088950 metatile_behavior.s MetatileBehavior_IsSouthArrowWarp +0808896c metatile_behavior.s Unref_MetatileBehavior_IsArrowWarp +080889b0 metatile_behavior.s MetatileBehavior_IsForcedMovementTile +080889f0 metatile_behavior.s MetatileBehavior_IsIce +08088a04 metatile_behavior.s MetatileBehavior_IsTrickHouseSlipperyFloor +08088a18 metatile_behavior.s Unref_MetatileBehavior_IsUnused05 +08088a2c metatile_behavior.s MetatileBehavior_IsWalkNorth +08088a40 metatile_behavior.s MetatileBehavior_IsWalkSouth +08088a54 metatile_behavior.s MetatileBehavior_IsWalkWest +08088a68 metatile_behavior.s MetatileBehavior_IsWalkEast +08088a7c metatile_behavior.s MetatileBehavior_IsNorthwardCurrent +08088a90 metatile_behavior.s MetatileBehavior_IsSouthwardCurrent +08088aa4 metatile_behavior.s MetatileBehavior_IsWestwardCurrent +08088ab8 metatile_behavior.s MetatileBehavior_IsEastwardCurrent +08088acc metatile_behavior.s MetatileBehavior_IsSlideNorth +08088ae0 metatile_behavior.s MetatileBehavior_IsSlideSouth +08088af4 metatile_behavior.s MetatileBehavior_IsSlideWest +08088b08 metatile_behavior.s MetatileBehavior_IsSlideEast +08088b1c metatile_behavior.s MetatileBehavior_IsCounter +08088b30 metatile_behavior.s MetatileBehavior_IsPlayerFacingTVScreen +08088b4c metatile_behavior.s MetatileBehavior_IsPC +08088b60 metatile_behavior.s MetatileBehavior_IsCableBoxResults1 +08088b74 metatile_behavior.s MetatileBehavior_IsOpenSecretBaseDoor +08088ba0 metatile_behavior.s MetatileBehavior_IsSecretBaseCave +08088bc0 metatile_behavior.s MetatileBehavior_IsSecretBaseTree +08088bd8 metatile_behavior.s MetatileBehavior_IsSecretBaseShrub +08088bec metatile_behavior.s MetatileBehavior_IsSecretBasePC +08088c00 metatile_behavior.s MetatileBehavior_IsRecordMixingSecretBasePC +08088c14 metatile_behavior.s Unref_MetatileBehavior_IsSecretBaseUnused_B2_2 +08088c28 metatile_behavior.s MetatileBehavior_IsBlockDecoration +08088c3c metatile_behavior.s MetatileBehavior_IsSecretBaseImpassable +08088c50 metatile_behavior.s MetatileBehavior_IsMB_C6 +08088c64 metatile_behavior.s MetatileBehavior_IsSecretBasePoster +08088c78 metatile_behavior.s MetatileBehavior_IsNormal +08088c8c metatile_behavior.s MetatileBehavior_IsSecretBaseNorthWall +08088ca0 metatile_behavior.s Unref_MetatileBehavior_IsSecretBaseUnused_B2 +08088cb4 metatile_behavior.s MetatileBehavior_HoldsSmallDecoration +08088cc8 metatile_behavior.s MetatileBehavior_HoldsLargeDecoration +08088cdc metatile_behavior.s MetatileBehavior_IsSecretBaseHole +08088cf0 metatile_behavior.s MetatileBehavior_IsSecretBaseBalloon +08088d04 metatile_behavior.s MetatileBehavior_IsSecretBaseBreakableDoor +08088d18 metatile_behavior.s MetatileBehavior_IsSecretBaseSoundMat +08088d2c metatile_behavior.s MetatileBehavior_IsSecretBaseGlitterMat +08088d40 metatile_behavior.s MetatileBehavior_IsSecretBaseSandOrnament +08088d54 metatile_behavior.s MetatileBehavior_IsSecretBaseShieldOrToyTV +08088d68 metatile_behavior.s MetatileBehavior_IsPlayerRoomPCOn +08088d7c metatile_behavior.s MetatileBehavior_HasRipples +08088d98 metatile_behavior.s MetatileBehavior_IsPuddle +08088dac metatile_behavior.s MetatileBehavior_IsTallGrass +08088dc0 metatile_behavior.s MetatileBehavior_IsLongGrass_Duplicate +08088dd4 metatile_behavior.s MetatileBehavior_IsBerryTreeSoil +08088de8 metatile_behavior.s MetatileBehavior_IsAshGrass +08088dfc metatile_behavior.s MetatileBehavior_IsFootprints +08088e10 metatile_behavior.s MetatileBehavior_IsBridge +08088e38 metatile_behavior.s MetatileBehavior_GetBridgeType +08088e74 metatile_behavior.s MetatileBehavior_8089510 +08088e90 metatile_behavior.s MetatileBehavior_IsLandWildEncounter +08088ebc metatile_behavior.s MetatileBehavior_IsWaterWildEncounter +08088eec metatile_behavior.s MetatileBehavior_IsIndoorEncounter +08088f00 metatile_behavior.s MetatileBehavior_IsMountain +08088f14 metatile_behavior.s MetatileBehavior_IsDiveable +08088f34 metatile_behavior.s MetatileBehavior_IsUnableToEmerge +08088f4c metatile_behavior.s MetatileBehavior_IsShallowFlowingWater +08088f68 metatile_behavior.s MetatileBehavior_IsThinIce +08088f7c metatile_behavior.s MetatileBehavior_IsCrackedIce +08088f90 metatile_behavior.s MetatileBehavior_IsDeepOrOceanWater +08088fac metatile_behavior.s Unref_MetatileBehavior_IsUnusedSootopolisWater +08088fc4 metatile_behavior.s MetatileBehavior_IsSurfableAndNotWaterfall +08088ff0 metatile_behavior.s MetatileBehavior_IsEastBlocked +08089014 metatile_behavior.s MetatileBehavior_IsWestBlocked +08089038 metatile_behavior.s MetatileBehavior_IsNorthBlocked +08089058 metatile_behavior.s MetatileBehavior_IsSouthBlocked +08089078 metatile_behavior.s MetatileBehavior_IsShortGrass +0808908c metatile_behavior.s MetatileBehavior_IsHotSprings +080890a0 metatile_behavior.s MetatileBehavior_IsWaterfall +080890b4 metatile_behavior.s MetatileBehavior_IsFortreeBridge +080890c8 metatile_behavior.s MetatileBehavior_IsPacifilogVerticalLog1 +080890dc metatile_behavior.s MetatileBehavior_IsPacifilogVerticalLog2 +080890f0 metatile_behavior.s MetatileBehavior_IsPacifilogHorizontalLog1 +08089104 metatile_behavior.s MetatileBehavior_IsPacifilogHorizontalLog2 +08089118 metatile_behavior.s MetatileBehavior_IsPacifidlogLog +08089134 metatile_behavior.s MetatileBehavior_IsTrickHousePuzzleDoor +08089148 metatile_behavior.s MetatileBehavior_IsRegionMap +0808915c metatile_behavior.s MetatileBehavior_IsClosedSootopolisDoor +08089170 metatile_behavior.s MetatileBehavior_IsUnknownClosedDoor +08089184 metatile_behavior.s MetatileBehavior_IsRoulette +08089198 metatile_behavior.s MetatileBehavior_IsPokeblockFeeder +080891ac metatile_behavior.s MetatileBehavior_IsSecretBaseJumpMat +080891c0 metatile_behavior.s MetatileBehavior_IsSecretBaseSpinMat +080891d4 metatile_behavior.s MetatileBehavior_IsLavaridgeB1FWarp +080891e8 metatile_behavior.s MetatileBehavior_IsLavaridge1FWarp +080891fc metatile_behavior.s MetatileBehavior_IsAquaHideoutWarp +08089210 metatile_behavior.s MetatileBehavior_IsWarpOrBridge +08089224 metatile_behavior.s MetatileBehavior_IsMossdeepGymWarp +08089238 metatile_behavior.s MetatileBehavior_IsSurfableFishableWater +08089268 metatile_behavior.s MetatileBehavior_IsMtPyreHole +0808927c metatile_behavior.s MetatileBehavior_IsCrackedFloorHole +08089290 metatile_behavior.s MetatileBehavior_IsCrackedFloor +080892a4 metatile_behavior.s MetatileBehavior_IsMuddySlope +080892b8 metatile_behavior.s MetatileBehavior_IsBumpySlope +080892cc metatile_behavior.s MetatileBehavior_IsIsolatedVerticalRail +080892e0 metatile_behavior.s MetatileBehavior_IsIsolatedHorizontalRail +080892f4 metatile_behavior.s MetatileBehavior_IsVerticalRail +08089308 metatile_behavior.s MetatileBehavior_IsHorizontalRail +0808931c metatile_behavior.s MetatileBehavior_IsSeaweed +08089334 metatile_behavior.s MetatileBehavior_IsRunningDisallowed +0808935c metatile_behavior.s MetatileBehavior_IsCuttableGrass +08089380 metatile_behavior.s MetatileBehavior_IsRunningShoesManual +08089394 metatile_behavior.s MetatileBehavior_IsPictureBookShelf +080893a8 metatile_behavior.s MetatileBehavior_IsBookShelf +080893bc metatile_behavior.s MetatileBehavior_IsPokeCenterBookShelf +080893d0 metatile_behavior.s MetatileBehavior_IsVase +080893e4 metatile_behavior.s MetatileBehavior_IsTrashCan +080893f8 metatile_behavior.s MetatileBehavior_IsShopShelf +0808940c metatile_behavior.s MetatileBehavior_IsBlueprint +08089420 metatile_behavior.s MetatileBehavior_IsBattlePyramidWarp +08089434 metatile_behavior.s MetatileBehavior_IsPlayerFacingWirelessBoxResults +08089450 metatile_behavior.s MetatileBehavior_IsCableBoxResults2 +0808946c metatile_behavior.s MetatileBehavior_IsQuestionnaire +08089480 metatile_behavior.s MetatileBehavior_IsLongGrass +08089494 metatile_behavior.s MetatileBehavior_IsLongGrassSouthEdge +080894a8 metatile_behavior.s MetatileBehavior_IsTrainerHillTimer +field_camera.s +080894bc field_camera.s move_tilemap_camera_to_upper_left_corner_ +080894cc field_camera.s tilemap_move_something +080894e8 field_camera.s coords8_add +080894f8 field_camera.s move_tilemap_camera_to_upper_left_corner +08089508 field_camera.s FieldUpdateBgTilemapScroll +0808956c field_camera.s sub_0808956C +08089598 field_camera.s DrawWholeMapView +080895c4 field_camera.s DrawWholeMapViewInternal +08089648 field_camera.s RedrawMapSlicesForCameraUpdate +08089694 field_camera.s RedrawMapSliceNorth +080896f4 field_camera.s RedrawMapSliceSouth +08089740 field_camera.s RedrawMapSliceEast +08089798 field_camera.s RedrawMapSliceWest +08089804 field_camera.s CurrentMapDrawMetatileAt +08089840 field_camera.s DrawDoorMetatileAt +08089874 field_camera.s DrawMetatileAt +080898dc field_camera.s DrawMetatile +08089a10 field_camera.s MapPosToBgTilemapOffset +08089a58 field_camera.s CameraUpdateCallback +08089a80 field_camera.s ResetCameraUpdateInfo +08089a98 field_camera.s InitCameraUpdateCallback +08089ad8 field_camera.s CameraUpdate +08089be8 field_camera.s MoveCameraAndRedrawMap +08089c24 field_camera.s SetCameraPanningCallback +08089c30 field_camera.s SetCameraPanning +08089c48 field_camera.s InstallCameraPanAheadCallback +08089c78 field_camera.s UpdateCameraPanning +08089cc4 field_camera.s CameraPanningCB_PanAhead +field_door.s +08089d64 field_door.s CopyDoorTilesToVram +08089d9c field_door.s door_build_blockdef +08089ddc field_door.s DrawCurrentDoorAnimFrame +08089e94 field_door.s DrawClosedDoorTiles +08089ecc field_door.s DrawDoor +08089f54 field_door.s sub_08089F54 +08089fb8 field_door.s Task_AnimateDoor +08089ff0 field_door.s GetLastDoorFrame +0808a004 field_door.s GetDoorGraphics +0808a028 field_door.s StartDoorAnimationTask +0808a08c field_door.s DrawClosedDoor +0808a098 field_door.s DrawOpenedDoor +0808a0d8 field_door.s StartDoorOpenAnimation +0808a130 field_door.s StartDoorCloseAnimation +0808a170 field_door.s cur_mapdata_get_door_x2_at +0808a1a0 field_door.s unref_sub_808A83C +0808a1b8 field_door.s FieldSetDoorOpened +0808a1e4 field_door.s FieldSetDoorClosed +0808a210 field_door.s FieldAnimateDoorClose +0808a248 field_door.s FieldAnimateDoorOpen +0808a280 field_door.s FieldIsDoorAnimationRunning +0808a294 field_door.s GetDoorSoundEffect +0808a2c8 field_door.s sub_0808A2C8_jp +field_player_avatar.s +0808a2fc field_player_avatar.s MovementType_Player +0808a320 field_player_avatar.s EventObjectCB2_NoMovement2 +0808a324 field_player_avatar.s player_step +0808a39c field_player_avatar.s TryInterruptEventObjectSpecialAnim +0808a400 field_player_avatar.s npc_clear_strange_bits +0808a424 field_player_avatar.s MovePlayerAvatarUsingKeypadInput +0808a45c field_player_avatar.s PlayerAllowForcedMovementIfMovingSameDirection +0808a478 field_player_avatar.s TryDoMetatileBehaviorForcedMovement +0808a48c field_player_avatar.s sub_0808a48c +0808a49c field_player_avatar.s GetForcedMovementByMetatileBehavior +0808a4f8 field_player_avatar.s ForcedMovement_None +0808a544 field_player_avatar.s DoForcedMovement +0808a5bc field_player_avatar.s DoForcedMovementInCurrentDirection +0808a5f0 field_player_avatar.s ForcedMovement_Slip +0808a604 field_player_avatar.s ForcedMovement_WalkSouth +0808a61c field_player_avatar.s ForcedMovement_WalkNorth +0808a634 field_player_avatar.s ForcedMovement_WalkWest +0808a64c field_player_avatar.s ForcedMovement_WalkEast +0808a664 field_player_avatar.s ForcedMovement_PushedSouthByCurrent +0808a67c field_player_avatar.s ForcedMovement_PushedNorthByCurrent +0808a694 field_player_avatar.s ForcedMovement_PushedWestByCurrent +0808a6ac field_player_avatar.s ForcedMovement_PushedEastByCurrent +0808a6c4 field_player_avatar.s ForcedMovement_Slide +0808a6fc field_player_avatar.s ForcedMovement_SlideSouth +0808a714 field_player_avatar.s ForcedMovement_SlideNorth +0808a72c field_player_avatar.s ForcedMovement_SlideWest +0808a744 field_player_avatar.s ForcedMovement_SlideEast +0808a75c field_player_avatar.s ForcedMovement_0xBB +0808a768 field_player_avatar.s ForcedMovement_0xBC +0808a774 field_player_avatar.s ForcedMovement_MuddySlope +0808a7cc field_player_avatar.s MovePlayerNotOnBike +0808a7f4 field_player_avatar.s sub_0808A7F4_jp +0808a7fc field_player_avatar.s CheckMovementInputNotOnBike +0808a840 field_player_avatar.s PlayerNotOnBikeNotMoving +0808a854 field_player_avatar.s PlayerNotOnBikeTurningInPlace +0808a864 field_player_avatar.s PlayerNotOnBikeMoving +0808a920 field_player_avatar.s CheckForPlayerAvatarCollision +0808a98c field_player_avatar.s sub_0808A98C +0808a9f8 field_player_avatar.s CheckForEventObjectCollision +0808aac8 field_player_avatar.s sub_0808AAC8 +0808ab20 field_player_avatar.s sub_0808AB20 +0808ab78 field_player_avatar.s ShouldJumpLedge +0808ab9c field_player_avatar.s sub_0808AB9C +0808ac48 field_player_avatar.s check_acro_bike_metatile +0808ac88 field_player_avatar.s IsPlayerCollidingWithFarawayIslandMew +0808ad30 field_player_avatar.s SetPlayerAvatarTransitionFlags +0808ad4c field_player_avatar.s DoPlayerAvatarTransition +0808ada0 field_player_avatar.s PlayerAvatarTransition_Dummy +0808ada4 field_player_avatar.s PlayerAvatarTransition_Normal +0808add0 field_player_avatar.s PlayerAvatarTransition_MachBike +0808ae04 field_player_avatar.s PlayerAvatarTransition_AcroBike +0808ae3c field_player_avatar.s PlayerAvatarTransition_Surfing +0808ae98 field_player_avatar.s PlayerAvatarTransition_Underwater +0808aecc field_player_avatar.s PlayerAvatarTransition_ReturnToField +0808aedc field_player_avatar.s sub_0808AEDC +0808af20 field_player_avatar.s player_is_anim_in_certain_ranges +0808af7c field_player_avatar.s sub_0808AF7C_jp +0808afa0 field_player_avatar.s PlayerCheckIfAnimFinishedOrInactive +0808afc4 field_player_avatar.s PlayerIsAnimActive +0808afe8 field_player_avatar.s PlayerSetCopyableMovement +0808b004 field_player_avatar.s PlayerGetCopyableMovement +0808b020 field_player_avatar.s sub_0808B020_jp +0808b048 field_player_avatar.s PlayerSetAnimId +0808b084 field_player_avatar.s PlayerGoSpeed1 +0808b09c field_player_avatar.s PlayerGoSpeed2 +0808b0b4 field_player_avatar.s PlayerRideWaterCurrent +0808b0cc field_player_avatar.s PlayerGoSpeed4 +0808b0e4 field_player_avatar.s PlayerRun +0808b0fc field_player_avatar.s PlayerOnBikeCollide +0808b120 field_player_avatar.s PlayerOnBikeCollideWithFarawayIslandMew +0808b138 field_player_avatar.s PlayerNotOnBikeCollide +0808b15c field_player_avatar.s PlayerNotOnBikeCollideWithFarawayIslandMew +0808b174 field_player_avatar.s PlayerFaceDirection +0808b18c field_player_avatar.s PlayerTurnInPlace +0808b1a4 field_player_avatar.s PlayerJumpLedge +0808b1c8 field_player_avatar.s sub_0808B1C8_jp +0808b20c field_player_avatar.s PlayerIdleWheelie +0808b224 field_player_avatar.s PlayerStartWheelie +0808b23c field_player_avatar.s PlayerEndWheelie +0808b254 field_player_avatar.s PlayerStandingHoppingWheelie +0808b278 field_player_avatar.s PlayerMovingHoppingWheelie +0808b29c field_player_avatar.s PlayerLedgeHoppingWheelie +0808b2c0 field_player_avatar.s PlayerAcroTurnJump +0808b2e4 field_player_avatar.s sub_0808B2E4 +0808b308 field_player_avatar.s sub_0808B308_jp +0808b320 field_player_avatar.s sub_0808B320_jp +0808b338 field_player_avatar.s sub_0808B338_jp +0808b350 field_player_avatar.s PlayCollisionSoundIfNotFacingWarp +0808b3cc field_player_avatar.s GetXYCoordsOneStepInFrontOfPlayer +0808b410 field_player_avatar.s PlayerGetDestCoords +0808b440 field_player_avatar.s player_get_pos_including_state_based_drift +0808b59c field_player_avatar.s GetPlayerFacingDirection +0808b5bc field_player_avatar.s GetPlayerMovementDirection +0808b5d8 field_player_avatar.s PlayerGetZCoord +0808b5f4 field_player_avatar.s sub_0808B5F4_jp +0808b624 field_player_avatar.s TestPlayerAvatarFlags +0808b634 field_player_avatar.s sub_0808B634 +0808b640 field_player_avatar.s GetPlayerAvatarObjectId +0808b64c field_player_avatar.s sub_0808B64C +0808b658 field_player_avatar.s sub_0808B658_jp +0808b6a0 field_player_avatar.s GetPlayerAvatarGraphicsIdByStateIdAndGender +0808b6b8 field_player_avatar.s sub_0808b6b8 +0808b6d0 field_player_avatar.s sub_0808B6D0_jp +0808b6e0 field_player_avatar.s GetFRLGAvatarGraphicsIdByGender +0808b6f0 field_player_avatar.s GetPlayerAvatarGraphicsIdByStateId +0808b70c field_player_avatar.s unref_GetRivalAvatarGenderByGraphicsId +0808b738 field_player_avatar.s GetPlayerAvatarGenderByGraphicsId +0808b764 field_player_avatar.s PartyHasMonWithSurf +0808b7b4 field_player_avatar.s IsPlayerSurfingNorth +0808b7d8 field_player_avatar.s IsPlayerFacingSurfableFishableWater +0808b864 field_player_avatar.s ClearPlayerAvatarInfo +0808b878 field_player_avatar.s SetPlayerAvatarStateMask +0808b890 field_player_avatar.s GetPlayerAvatarStateTransitionByGraphicsId +0808b8d0 field_player_avatar.s GetPlayerAvatarGraphicsIdByCurrentState +0808b914 field_player_avatar.s SetPlayerAvatarExtraStateTransition +0808b944 field_player_avatar.s InitPlayerAvatar +0808ba0c field_player_avatar.s sub_0808BA0C +0808ba78 field_player_avatar.s sub_0808BA78_jp +0808bac0 field_player_avatar.s sub_0808BAC0_jp +0808bb18 field_player_avatar.s sub_0808BB18_jp +0808bb8c field_player_avatar.s sub_0808BB8C_jp +0808bbe4 field_player_avatar.s sub_0808BBE4_jp +0808bc74 field_player_avatar.s StartStrengthAnim +0808bcb0 field_player_avatar.s Task_BumpBoulder +0808bd08 field_player_avatar.s sub_0808bd08 +0808bd28 field_player_avatar.s do_boulder_dust +0808bde8 field_player_avatar.s sub_0808BDE8_jp +0808be3c field_player_avatar.s DoPlayerMatJump +0808be5c field_player_avatar.s DoPlayerAvatarSecretBaseMatJump +0808be8c field_player_avatar.s sub_0808BE8C_jp +0808bea8 field_player_avatar.s PlayerAvatar_DoSecretBaseMatJump +0808bf14 field_player_avatar.s DoPlayerMatSpin +0808bf34 field_player_avatar.s PlayerAvatar_DoSecretBaseMatSpin +0808bf64 field_player_avatar.s sub_0808BF64_jp +0808bf80 field_player_avatar.s PlayerAvatar_SecretBaseMatSpinStep0 +0808bfa8 field_player_avatar.s PlayerAvatar_SecretBaseMatSpinStep1 +0808c020 field_player_avatar.s PlayerAvatar_SecretBaseMatSpinStep2 +0808c060 field_player_avatar.s PlayerAvatar_SecretBaseMatSpinStep3 +0808c0b4 field_player_avatar.s sub_0808C0B4_jp +0808c10c field_player_avatar.s taskFF_0805D1D4 +0808c178 field_player_avatar.s sub_0808C178_jp +0808c1f0 field_player_avatar.s StartFishing +0808c224 field_player_avatar.s Task_Fishing +0808c25c field_player_avatar.s Fishing1 +0808c27c field_player_avatar.s Fishing2 +0808c314 field_player_avatar.s Fishing3 +0808c338 field_player_avatar.s Fishing4 +0808c384 field_player_avatar.s Fishing5 +0808c424 field_player_avatar.s Fishing6 +0808c4d4 field_player_avatar.s Fishing7 +0808c514 field_player_avatar.s Fishing8 +0808c56c field_player_avatar.s Fishing9 +0808c5d4 field_player_avatar.s Fishing10 +0808c618 field_player_avatar.s Fishing11 +0808c704 field_player_avatar.s Fishing12 +0808c774 field_player_avatar.s Fishing13 +0808c7e4 field_player_avatar.s Fishing14 +0808c7fc field_player_avatar.s Fishing15 +0808c89c field_player_avatar.s Fishing16 +0808c8e8 field_player_avatar.s AlignFishingAnimationFrames +0808c9e4 field_player_avatar.s sub_0808C9E4 +0808c9f0 field_player_avatar.s sub_0808C9F0_jp +0808ca04 field_player_avatar.s sub_0808CA04_jp +0808cb04 field_player_avatar.s sub_0808CB04_jp +0808cb24 field_player_avatar.s sub_0808CB24_jp +0808cb38 field_player_avatar.s sub_0808CB38_jp +0808cb58 field_player_avatar.s sub_0808CB58_jp +0808cb6c field_player_avatar.s sub_0808CB6C_jp +0808ccfc field_player_avatar.s sub_0808CCFC_jp +event_object_movement.s +0808cd60 event_object_movement.s ClearEventObject +0808cd80 event_object_movement.s ClearAllEventObjects +0808cda8 event_object_movement.s ResetEventObjects +0808cdc0 event_object_movement.s CreateReflectionEffectSprites +0808ce64 event_object_movement.s GetFirstInactiveEventObjectId +0808ce94 event_object_movement.s GetEventObjectIdByLocalIdAndMap +0808ceb8 event_object_movement.s TryGetEventObjectIdByLocalIdAndMap +0808cee4 event_object_movement.s GetEventObjectIdByXY +0808cf28 event_object_movement.s GetEventObjectIdByLocalIdAndMapInternal +0808cf78 event_object_movement.s GetEventObjectIdByLocalId +0808cfb4 event_object_movement.s InitEventObjectStateFromTemplate +0808d0ec event_object_movement.s Unref_TryInitLocalEventObject +0808d180 event_object_movement.s GetAvailableEventObjectId +0808d220 event_object_movement.s RemoveEventObject +0808d234 event_object_movement.s RemoveEventObjectByLocalIdAndMap +0808d27c event_object_movement.s RemoveEventObjectInternal +0808d2c8 event_object_movement.s RemoveAllEventObjectsExceptPlayer +0808d2fc event_object_movement.s TrySetupEventObjectSprite +0808d4b0 event_object_movement.s TrySpawnEventObjectTemplate +0808d578 event_object_movement.s SpawnSpecialEventObject +0808d5b4 event_object_movement.s SpawnSpecialEventObjectParameterized +0808d61c event_object_movement.s TrySpawnEventObject +0808d66c event_object_movement.s MakeObjectTemplateFromEventObjectGraphicsInfo +0808d6a0 event_object_movement.s MakeObjectTemplateFromEventObjectGraphicsInfoWithCallbackIndex +0808d6c0 event_object_movement.s sub_0808D6C0_jp +0808d6d8 event_object_movement.s AddPseudoEventObject +0808d77c event_object_movement.s sprite_new +0808d8f0 event_object_movement.s TrySpawnEventObjects +0808d9fc event_object_movement.s RemoveEventObjectsOutsideView +0808da5c event_object_movement.s RemoveEventObjectIfOutsideView +0808dadc event_object_movement.s sub_0808DADC +0808db28 event_object_movement.s sub_0808DB28_jp +0808dcfc event_object_movement.s sub_0808DCFC +0808dd34 event_object_movement.s SetPlayerAvatarEventObjectIdAndObjectId +0808dd68 event_object_movement.s EventObjectSetGraphicsId +0808de74 event_object_movement.s EventObjectSetGraphicsIdByLocalIdAndMap +0808deb4 event_object_movement.s EventObjectTurn +0808df04 event_object_movement.s EventObjectTurnByLocalIdAndMap +0808df44 event_object_movement.s PlayerObjectTurn +0808df64 event_object_movement.s get_berry_tree_graphics +0808e004 event_object_movement.s GetEventObjectGraphicsInfo +0808e04c event_object_movement.s SetEventObjectDynamicGraphicsId +0808e068 event_object_movement.s npc_by_local_id_and_map_set_field_1_bit_x20 +0808e0b8 event_object_movement.s EventObjectGetLocalIdAndMap +0808e0cc event_object_movement.s sub_0808E0CC +0808e0fc event_object_movement.s sub_0808E0FC_jp +0808e154 event_object_movement.s sub_0808E154_jp +0808e19c event_object_movement.s sub_0808E19C_jp +0808e1f0 event_object_movement.s FreeAndReserveObjectSpritePalettes +0808e204 event_object_movement.s LoadEventObjectPalette +0808e230 event_object_movement.s Unused_LoadEventObjectPaletteSet +0808e264 event_object_movement.s sub_0808E264_jp +0808e28c event_object_movement.s PatchObjectPalette +0808e2c4 event_object_movement.s PatchObjectPaletteRange +0808e2f0 event_object_movement.s FindEventObjectPaletteIndexByTag +0808e338 event_object_movement.s LoadPlayerObjectReflectionPalette +0808e3a8 event_object_movement.s LoadSpecialObjectReflectionPalette +0808e420 event_object_movement.s sub_0808E420 +0808e434 event_object_movement.s unref_sub_808EAC4 +0808e454 event_object_movement.s ShiftEventObjectCoords +0808e464 event_object_movement.s SetEventObjectCoords +0808e478 event_object_movement.s MoveEventObjectToMapCoords +0808e518 event_object_movement.s TryMoveEventObjectToMapCoords +0808e56c event_object_movement.s ShiftStillEventObjectCoords +0808e580 event_object_movement.s UpdateEventObjectCoordsForCameraUpdate +0808e5e8 event_object_movement.s GetEventObjectIdByXYZ +0808e650 event_object_movement.s EventObjectDoesZCoordMatch +0808e678 event_object_movement.s UpdateEventObjectsForCameraUpdate +0808e6a4 event_object_movement.s AddCameraObject +0808e6e8 event_object_movement.s ObjectCB_CameraObject +0808e710 event_object_movement.s CameraObject_0 +0808e74c event_object_movement.s CameraObject_1 +0808e784 event_object_movement.s CameraObject_2 +0808e7b4 event_object_movement.s FindCameraObject +0808e7fc event_object_movement.s CameraObjectReset1 +0808e818 event_object_movement.s CameraObjectSetFollowedObjectId +0808e834 event_object_movement.s CameraObjectGetFollowedObjectId +0808e84c event_object_movement.s CameraObjectReset2 +0808e85c event_object_movement.s CopySprite +0808e8c0 event_object_movement.s CreateCopySpriteAt +0808e930 event_object_movement.s SetEventObjectDirection +0808e974 event_object_movement.s GetEventObjectScriptPointerByLocalIdAndMap +0808e98c event_object_movement.s GetEventObjectScriptPointerByEventObjectId +0808e9b0 event_object_movement.s GetEventObjectFlagIdByLocalIdAndMap +0808e9c8 event_object_movement.s GetEventObjectFlagIdByEventObjectId +0808e9f0 event_object_movement.s sub_0808E9F0 +0808ea2c event_object_movement.s sub_0808EA2C_jp +0808ea44 event_object_movement.s sub_0808EA44 +0808ea80 event_object_movement.s EventObjectGetBerryTreeId +0808ea98 event_object_movement.s GetEventObjectTemplateByLocalIdAndMap +0808eaec event_object_movement.s FindEventObjectTemplateByLocalId +0808eb24 event_object_movement.s GetBaseTemplateForEventObject +0808eb78 event_object_movement.s OverrideTemplateCoordsForEventObject +0808eb98 event_object_movement.s OverrideEventObjectTemplateScript +0808ebac event_object_movement.s TryOverrideTemplateCoordsForEventObject +0808ebc4 event_object_movement.s TryOverrideEventObjectTemplateCoords +0808ebfc event_object_movement.s OverrideSecretBaseDecorationSpriteScript +0808ec68 event_object_movement.s InitEventObjectPalettes +0808ecd0 event_object_movement.s GetObjectPaletteTag +0808ed50 event_object_movement.s MovementType_None +0808ed74 event_object_movement.s MovementType_None_callback +0808ed78 event_object_movement.s MovementType_WanderAround +0808ed9c event_object_movement.s MovementType_CopyPlayerInGrass_callback +0808edb0 event_object_movement.s MovementAction_Fly_Finish +0808edbc event_object_movement.s MovementType_WanderAround_Step0 +0808edd0 event_object_movement.s MovementType_WanderAround_Step1 +0808edfc event_object_movement.s MovementType_WanderAround_Step2 +0808ee38 event_object_movement.s MovementType_WanderAround_Step3 +0808ee58 event_object_movement.s MovementType_WanderAround_Step4 +0808eea4 event_object_movement.s MovementType_WanderAround_Step5 +0808eed4 event_object_movement.s MovementType_WanderAround_Step6 +0808eefc event_object_movement.s EventObjectIsTrainerAndCloseToPlayer +0808ef78 event_object_movement.s GetVectorDirection +0808efa8 event_object_movement.s GetLimitedVectorDirection_SouthNorth +0808efb8 event_object_movement.s GetLimitedVectorDirection_WestEast +0808efcc event_object_movement.s GetLimitedVectorDirection_WestNorth +0808f028 event_object_movement.s GetLimitedVectorDirection_EastNorth +0808f084 event_object_movement.s GetLimitedVectorDirection_WestSouth +0808f0e0 event_object_movement.s GetLimitedVectorDirection_EastSouth +0808f13c event_object_movement.s GetLimitedVectorDirection_SouthNorthWest +0808f178 event_object_movement.s GetLimitedVectorDirection_SouthNorthEast +0808f1b4 event_object_movement.s GetLimitedVectorDirection_NorthWestEast +0808f1f0 event_object_movement.s GetLimitedVectorDirection_SouthWestEast +0808f22c event_object_movement.s TryGetTrainerEncounterDirection +0808f2b4 event_object_movement.s MovementType_LookAround +0808f2d8 event_object_movement.s MovementType_CopyPlayer_callback +0808f2ec event_object_movement.s sub_0808F2EC_jp +0808f2f8 event_object_movement.s MovementType_LookAround_Step0 +0808f30c event_object_movement.s MovementType_LookAround_Step1 +0808f338 event_object_movement.s MovementType_LookAround_Step2 +0808f37c event_object_movement.s MovementType_LookAround_Step3 +0808f3ac event_object_movement.s MovementType_LookAround_Step4 +0808f3f4 event_object_movement.s MovementType_WanderUpAndDown +0808f418 event_object_movement.s MovementType_FaceDirection_callback +0808f42c event_object_movement.s sub_0808F42C_jp +0808f438 event_object_movement.s MovementType_WanderUpAndDown_Step0 +0808f44c event_object_movement.s MovementType_WanderUpAndDown_Step1 +0808f478 event_object_movement.s MovementType_WanderUpAndDown_Step2 +0808f4b4 event_object_movement.s MovementType_WanderUpAndDown_Step3 +0808f4d4 event_object_movement.s MovementType_WanderUpAndDown_Step4 +0808f520 event_object_movement.s MovementType_WanderUpAndDown_Step5 +0808f550 event_object_movement.s MovementType_WanderUpAndDown_Step6 +0808f578 event_object_movement.s MovementType_WanderLeftAndRight +0808f59c event_object_movement.s MovementType_FaceDownAndLeft_callback +0808f5b0 event_object_movement.s GetAcroUnusedActionDirectionAnimNum +0808f5bc event_object_movement.s MovementType_WanderLeftAndRight_Step0 +0808f5d0 event_object_movement.s MovementType_WanderLeftAndRight_Step1 +0808f5fc event_object_movement.s MovementType_WanderLeftAndRight_Step2 +0808f638 event_object_movement.s MovementType_WanderLeftAndRight_Step3 +0808f658 event_object_movement.s MovementType_WanderLeftAndRight_Step4 +0808f6a4 event_object_movement.s MovementType_WanderLeftAndRight_Step5 +0808f6d4 event_object_movement.s MovementType_WanderLeftAndRight_Step6 +0808f6fc event_object_movement.s MovementType_FaceDirection +0808f720 event_object_movement.s MovementType_FaceDownAndRight_callback +0808f734 event_object_movement.s GetAcroWheelieDirectionAnimNum +0808f740 event_object_movement.s MovementType_FaceDirection_Step0 +0808f76c event_object_movement.s MovementType_FaceDirection_Step1 +0808f78c event_object_movement.s MovementType_Invisible_Step2 +0808f79c event_object_movement.s MovementType_BerryTreeGrowth +0808f7e0 event_object_movement.s MovementType_FaceDownAndUp_callback +0808f7f4 event_object_movement.s GetAcroWheeliePedalDirectionAnimNum +0808f800 event_object_movement.s MovementType_BerryTreeGrowth_Step0 +0808f8b8 event_object_movement.s MovementType_BerryTreeGrowth_Step1 +0808f8d8 event_object_movement.s MovementType_BerryTreeGrowth_Step2 +0808f924 event_object_movement.s MovementType_BerryTreeGrowth_Step3 +0808f974 event_object_movement.s MovementType_BerryTreeGrowth_Step4 +0808f9c0 event_object_movement.s MovementType_FaceDownAndUp +0808f9e4 event_object_movement.s MovementType_FaceDownRightAndLeft_callback +0808f9f8 event_object_movement.s GetFaceDirectionAnimNum +0808fa04 event_object_movement.s MovementType_FaceDownAndUp_Step0 +0808fa18 event_object_movement.s MovementType_FaceDownAndUp_Step1 +0808fa44 event_object_movement.s MovementType_FaceDownAndUp_Step2 +0808fa88 event_object_movement.s MovementType_FaceDownAndUp_Step3 +0808fab8 event_object_movement.s MovementType_FaceDownAndUp_Step4 +0808fb00 event_object_movement.s MovementType_FaceLeftAndRight +0808fb24 event_object_movement.s MovementType_FaceDownUpAndLeft_callback +0808fb38 event_object_movement.s GetFishingBiteDirectionAnimNum +0808fb44 event_object_movement.s MovementType_FaceLeftAndRight_Step0 +0808fb58 event_object_movement.s MovementType_FaceLeftAndRight_Step1 +0808fb84 event_object_movement.s MovementType_FaceLeftAndRight_Step2 +0808fbc8 event_object_movement.s MovementType_FaceLeftAndRight_Step3 +0808fbf8 event_object_movement.s MovementType_FaceLeftAndRight_Step4 +0808fc40 event_object_movement.s MovementType_FaceUpAndLeft +0808fc64 event_object_movement.s MovementType_FaceDownUpAndRight_callback +0808fc78 event_object_movement.s GetFishingDirectionAnimNum +0808fc84 event_object_movement.s MovementType_FaceUpAndLeft_Step0 +0808fc98 event_object_movement.s MovementType_FaceUpAndLeft_Step1 +0808fcc4 event_object_movement.s MovementType_FaceUpAndLeft_Step2 +0808fd08 event_object_movement.s MovementType_FaceUpAndLeft_Step3 +0808fd38 event_object_movement.s MovementType_FaceUpAndLeft_Step4 +0808fd80 event_object_movement.s MovementType_FaceUpAndRight +0808fda4 event_object_movement.s MovementType_FaceLeftAndRight_callback +0808fdb8 event_object_movement.s GetFishingNoCatchDirectionAnimNum +0808fdc4 event_object_movement.s MovementType_FaceUpAndRight_Step0 +0808fdd8 event_object_movement.s MovementType_FaceUpAndRight_Step1 +0808fe04 event_object_movement.s MovementType_FaceUpAndRight_Step2 +0808fe48 event_object_movement.s MovementType_FaceUpAndRight_Step3 +0808fe78 event_object_movement.s MovementType_FaceUpAndRight_Step4 +0808fec0 event_object_movement.s MovementType_FaceDownAndLeft +0808fee4 event_object_movement.s MovementType_FaceUpAndLeft_callback +0808fef8 event_object_movement.s GetJumpSpecialDirectionAnimNum +0808ff04 event_object_movement.s MovementType_FaceDownAndLeft_Step0 +0808ff18 event_object_movement.s MovementType_FaceDownAndLeft_Step1 +0808ff44 event_object_movement.s MovementType_FaceDownAndLeft_Step2 +0808ff88 event_object_movement.s MovementType_FaceDownAndLeft_Step3 +0808ffb8 event_object_movement.s MovementType_FaceDownAndLeft_Step4 +08090000 event_object_movement.s MovementType_FaceDownAndRight +08090024 event_object_movement.s MovementType_FaceUpAndRight_callback +08090038 event_object_movement.s GetMoveDirectionAnimNum +08090044 event_object_movement.s MovementType_FaceDownAndRight_Step0 +08090058 event_object_movement.s MovementType_FaceDownAndRight_Step1 +08090084 event_object_movement.s MovementType_FaceDownAndRight_Step2 +080900c8 event_object_movement.s MovementType_FaceDownAndRight_Step3 +080900f8 event_object_movement.s MovementType_FaceDownAndRight_Step4 +08090140 event_object_movement.s MovementType_FaceDownUpAndLeft +08090164 event_object_movement.s MovementType_FaceUpRightAndLeft_callback +08090178 event_object_movement.s GetMoveDirectionFastAnimNum +08090184 event_object_movement.s MovementType_FaceDownUpAndLeft_Step0 +08090198 event_object_movement.s MovementType_FaceDownUpAndLeft_Step1 +080901c4 event_object_movement.s MovementType_FaceDownUpAndLeft_Step2 +08090208 event_object_movement.s MovementType_FaceDownUpAndLeft_Step3 +08090238 event_object_movement.s MovementType_FaceDownUpAndLeft_Step4 +08090280 event_object_movement.s MovementType_FaceDownUpAndRight +080902a4 event_object_movement.s MovementType_Hidden_Callback +080902b8 event_object_movement.s GetMoveDirectionFasterAnimNum +080902c4 event_object_movement.s MovementType_FaceDownUpAndRight_Step0 +080902d8 event_object_movement.s MovementType_FaceDownUpAndRight_Step1 +08090304 event_object_movement.s MovementType_FaceDownUpAndRight_Step2 +08090348 event_object_movement.s MovementType_FaceDownUpAndRight_Step3 +08090378 event_object_movement.s MovementType_FaceDownUpAndRight_Step4 +080903c0 event_object_movement.s MovementType_FaceUpRightAndLeft +080903e4 event_object_movement.s MovementType_Invisible_callback +080903f8 event_object_movement.s GetMoveDirectionFastestAnimNum +08090404 event_object_movement.s MovementType_FaceUpLeftAndRight_Step0 +08090418 event_object_movement.s MovementType_FaceUpLeftAndRight_Step1 +08090444 event_object_movement.s MovementType_FaceUpLeftAndRight_Step2 +08090488 event_object_movement.s MovementType_FaceUpLeftAndRight_Step3 +080904b8 event_object_movement.s MovementType_FaceUpLeftAndRight_Step4 +08090500 event_object_movement.s MovementType_FaceDownRightAndLeft +08090524 event_object_movement.s MovementType_JogInPlace_callback +08090538 event_object_movement.s GetRunningDirectionAnimNum +08090544 event_object_movement.s MovementType_FaceDownLeftAndRight_Step0 +08090558 event_object_movement.s MovementType_FaceDownLeftAndRight_Step1 +08090584 event_object_movement.s MovementType_FaceDownLeftAndRight_Step2 +080905c8 event_object_movement.s MovementType_FaceDownLeftAndRight_Step3 +080905f8 event_object_movement.s MovementType_FaceDownLeftAndRight_Step4 +08090640 event_object_movement.s MovementType_RotateCounterclockwise +08090664 event_object_movement.s MovementType_LookAround_callback +08090678 event_object_movement.s GetTrainerFacingDirectionMovementType +08090684 event_object_movement.s MovementType_RotateCounterclockwise_Step0 +080906b0 event_object_movement.s MovementType_RotateCounterclockwise_Step1 +080906d4 event_object_movement.s MovementType_RotateCounterclockwise_Step2 +08090700 event_object_movement.s MovementType_RotateCounterclockwise_Step3 +08090744 event_object_movement.s MovementType_RotateClockwise +08090768 event_object_movement.s MovementType_RotateClockwise_callback +0809077c event_object_movement.s GroundEffect_Ripple +08090788 event_object_movement.s MovementType_RotateClockwise_Step0 +080907b4 event_object_movement.s MovementType_RotateClockwise_Step1 +080907d8 event_object_movement.s MovementType_RotateClockwise_Step2 +08090804 event_object_movement.s MovementType_RotateClockwise_Step3 +08090848 event_object_movement.s MovementType_WalkBackAndForth +0809086c event_object_movement.s MovementType_RotateCounterclockwise_callback +08090880 event_object_movement.s Unref_GetAnimNums_08375633 +0809088c event_object_movement.s MovementType_WalkBackAndForth_Step0 +080908a0 event_object_movement.s MovementType_WalkBackAndForth_Step1 +080908d8 event_object_movement.s MovementType_WalkBackAndForth_Step2 +08090990 event_object_movement.s MovementType_WalkBackAndForth_Step3 +080909b8 event_object_movement.s MovementType_WalkSequence_Step0 +080909cc event_object_movement.s MoveNextDirectionInSequence +08090a80 event_object_movement.s MovementType_WalkSequence_Step2 +08090aa8 event_object_movement.s MovementType_WalkSequenceUpRightLeftDown +08090acc event_object_movement.s EventObjectCB2_BerryTree +08090ae0 event_object_movement.s ZCoordToPriority +08090aec event_object_movement.s MovementType_WalkSequenceUpRightLeftDown_Step1 +08090b34 event_object_movement.s MovementType_WalkSequenceRightLeftDownUp +08090b58 event_object_movement.s MovementType_RunInPlace_callback +08090b6c event_object_movement.s sub_08090B6C_jp +08090b78 event_object_movement.s MovementType_WalkSequenceRightLeftDownUp_Step1 +08090bc0 event_object_movement.s MovementType_WalkSequenceDownUpRightLeft +08090be4 event_object_movement.s MovementType_WalkBackAndForth_callback +08090bf8 event_object_movement.s sub_08090BF8_jp +08090c04 event_object_movement.s MovementType_WalkSequenceDownUpRightLeft_Step1 +08090c4c event_object_movement.s MovementType_WalkSequenceLeftDownUpRight +08090c70 event_object_movement.s MovementType_WalkInPlace_callback +08090c84 event_object_movement.s sub_08090C84_jp +08090c90 event_object_movement.s MovementType_WalkSequenceLeftDownUpRight_Step1 +08090cd8 event_object_movement.s MovementType_WalkSequenceUpLeftRightDown +08090cfc event_object_movement.s MovementType_WalkSequenceDownLeftRightUp_callback +08090d10 event_object_movement.s sub_08090D10_jp +08090d1c event_object_movement.s MovementType_WalkSequenceUpLeftRightDown_Step1 +08090d64 event_object_movement.s MovementType_WalkSequenceLeftRightDownUp +08090d88 event_object_movement.s MovementType_WalkSequenceDownLeftUpRight_callback +08090d9c event_object_movement.s sub_08090D9C_jp +08090da8 event_object_movement.s MovementType_WalkSequenceLeftRightDownUp_Step1 +08090df0 event_object_movement.s MovementType_WalkSequenceDownUpLeftRight +08090e14 event_object_movement.s MovementType_WalkSequenceDownRightLeftUp_callback +08090e28 event_object_movement.s sub_08090E28_jp +08090e34 event_object_movement.s MovementType_WalkSequenceDownUpLeftRight_Step1 +08090e7c event_object_movement.s MovementType_WalkSequenceRightDownUpLeft +08090ea0 event_object_movement.s MovementType_WalkSequenceDownRightUpLeft_callback +08090eb4 event_object_movement.s sub_08090EB4_jp +08090ec0 event_object_movement.s MovementType_WalkSequenceRightDownUpLeft_Step1 +08090f08 event_object_movement.s MovementType_WalkSequenceLeftUpDownRight +08090f2c event_object_movement.s MovementType_WalkSequenceDownUpLeftRight_callback +08090f40 event_object_movement.s MovementType_WalkSequenceDownUpRightLeft_callback +08090f4c event_object_movement.s MovementType_WalkSequenceLeftUpDownRight_Step1 +08090f94 event_object_movement.s MovementType_WalkSequenceUpDownRightLeft +08090fb8 event_object_movement.s MovementType_WalkSequenceLeftDownRightUp_callback +08090fcc event_object_movement.s MovementType_WalkSequenceLeftDownUpRight_callback +08090fd8 event_object_movement.s MovementType_WalkSequenceUpDownRightLeft_Step1 +08091020 event_object_movement.s MovementType_WalkSequenceRightLeftUpDown +08091044 event_object_movement.s MovementType_WalkSequenceLeftRightDownUp_callback +08091058 event_object_movement.s MovementType_WalkSequenceLeftRightUpDown_callback +08091064 event_object_movement.s MovementType_WalkSequenceRightLeftUpDown_Step1 +080910ac event_object_movement.s MovementType_WalkSequenceDownRightLeftUp +080910d0 event_object_movement.s MovementType_WalkSequenceLeftUpDownRight_callback +080910e4 event_object_movement.s MovementType_WalkSequenceLeftUpRightDown_callback +080910f0 event_object_movement.s MovementType_WalkSequenceDownRightLeftUp_Step1 +08091138 event_object_movement.s MovementType_WalkSequenceRightUpDownLeft +0809115c event_object_movement.s MovementType_WalkSequenceRightDownLeftUp_callback +08091170 event_object_movement.s MovementType_WalkSequenceRightDownUpLeft_callback +0809117c event_object_movement.s MovementType_WalkSequenceRightUpDownLeft_Step1 +080911c4 event_object_movement.s MovementType_WalkSequenceUpDownLeftRight +080911e8 event_object_movement.s MovementType_WalkSequenceRightLeftDownUp_callback +080911fc event_object_movement.s MovementType_WalkSequenceRightLeftUpDown_callback +08091208 event_object_movement.s MovementType_WalkSequenceUpDownLeftRight_Step1 +08091250 event_object_movement.s MovementType_WalkSequenceLeftRightUpDown +08091274 event_object_movement.s MovementType_WalkSequenceRightUpDownLeft_callback +08091288 event_object_movement.s MovementType_WalkSequenceRightUpLeftDown_callback +08091294 event_object_movement.s MovementType_WalkSequenceLeftRightUpDown_Step1 +080912dc event_object_movement.s MovementType_WalkSequenceDownLeftRightUp +08091300 event_object_movement.s MovementType_WalkSequenceUpDownLeftRight_callback +08091314 event_object_movement.s MovementType_WalkSequenceUpDownRightLeft_callback +08091320 event_object_movement.s MovementType_WalkSequenceDownLeftRightUp_Step1 +08091368 event_object_movement.s MovementType_WalkSequenceUpLeftDownRight +0809138c event_object_movement.s MovementType_WalkSequenceUpLeftDownRight_callback +080913a0 event_object_movement.s MovementType_WalkSequenceUpLeftRightDown_callback +080913ac event_object_movement.s MovementType_WalkSequenceUpLeftDownRight_Step1 +080913f4 event_object_movement.s MovementType_WalkSequenceDownRightUpLeft +08091418 event_object_movement.s MovementType_WalkSequenceUpRightDownLeft_callback +0809142c event_object_movement.s MovementType_WalkSequenceUpRightLeftDown_callback +08091438 event_object_movement.s MovementType_WalkSequenceDownRightUpLeft_Step1 +08091480 event_object_movement.s MovementType_WalkSequenceLeftDownRightUp +080914a4 event_object_movement.s MovementType_WalkSlowlyInPlace_callback +080914b8 event_object_movement.s MovementType_WanderAround_callback +080914c4 event_object_movement.s MovementType_WalkSequenceLeftDownRightUp_Step1 +0809150c event_object_movement.s MovementType_WalkSequenceRightUpLeftDown +08091530 event_object_movement.s MovementType_WanderLeftAndRight_callback +08091544 event_object_movement.s MovementType_WanderUpAndDown_callback +08091550 event_object_movement.s MovementType_WalkSequenceRightUpLeftDown_Step1 +08091598 event_object_movement.s MovementType_WalkSequenceUpRightDownLeft +080915bc event_object_movement.s sub_080915BC_jp +080915d0 event_object_movement.s MovementAction_Figure8_Step1 +080915dc event_object_movement.s MovementType_WalkSequenceUpRightDownLeft_Step1 +08091624 event_object_movement.s MovementType_WalkSequenceDownLeftUpRight +08091648 event_object_movement.s sub_08091648_jp +0809165c event_object_movement.s MovementAction_WalkSlowDiagonalUpLeft_Step1 +08091668 event_object_movement.s MovementType_WalkSequenceDownLeftUpRight_Step1 +080916b0 event_object_movement.s MovementType_WalkSequenceLeftUpRightDown +080916d4 event_object_movement.s GetGroundEffectFlags_TallGrassOnBeginStep +080916e8 event_object_movement.s MovementAction_AcroPopWheelieMoveDown_Step0 +080916f4 event_object_movement.s MovementType_WalkSequenceLeftUpRightDown_Step1 +0809173c event_object_movement.s MovementType_WalkSequenceRightDownLeftUp +08091760 event_object_movement.s sub_08091760_jp +08091774 event_object_movement.s MovementAction_AcroPopWheelieMoveLeft_Step0 +08091780 event_object_movement.s MovementType_WalkSequenceRightDownLeftUp_Step1 +080917c8 event_object_movement.s MovementType_CopyPlayer +080917ec event_object_movement.s MovementAction_AcroPopWheelieMoveRight_Step0 +08091800 event_object_movement.s MovementAction_AcroPopWheelieMoveUp_Step0 +0809180c event_object_movement.s MovementType_CopyPlayer_Step0 +08091830 event_object_movement.s MovementType_CopyPlayer_Step1 +08091890 event_object_movement.s MovementType_CopyPlayer_Step2 +080918b8 event_object_movement.s CopyablePlayerMovement_None +080918bc event_object_movement.s CopyablePlayerMovement_FaceDirection +08091904 event_object_movement.s CopyablePlayerMovement_GoSpeed0 +08091a14 event_object_movement.s CopyablePlayerMovement_GoSpeed1 +08091acc event_object_movement.s CopyablePlayerMovement_GoSpeed2 +08091b84 event_object_movement.s CopyablePlayerMovement_Slide +08091c3c event_object_movement.s cph_IM_DIFFERENT +08091c84 event_object_movement.s CopyablePlayerMovement_GoSpeed4 +08091d3c event_object_movement.s CopyablePlayerMovement_Jump +08091e04 event_object_movement.s MovementType_CopyPlayerInGrass +08091e28 event_object_movement.s StartFieldEffectForEventObject +08091e3c event_object_movement.s EventObjectClearHeldMovementIfFinished +08091e48 event_object_movement.s MovementType_CopyPlayerInGrass_Step1 +08091eac event_object_movement.s MovementType_TreeDisguise +08091f1c event_object_movement.s MovementType_Disguise_Callback +08091f28 event_object_movement.s MovementType_MountainDisguise +08091f98 event_object_movement.s MovementType_Hidden +08091ffc event_object_movement.s sub_08091FFC_jp +08092010 event_object_movement.s GetAcroEndWheelieMoveDirectionMovementAction +0809201c event_object_movement.s MovementType_Hidden_Step0 +08092028 event_object_movement.s MovementType_MoveInPlace_Step1 +08092044 event_object_movement.s MovementType_WalkInPlace +08092068 event_object_movement.s GetAcroPopWheelieFaceDirectionMovementAction +0809207c event_object_movement.s GetAcroPopWheelieMoveDirectionMovementAction +08092088 event_object_movement.s MovementType_WalkInPlace_Step0 +080920b4 event_object_movement.s MovementType_WalkSlowlyInPlace +080920d8 event_object_movement.s GetAcroWheelieFaceDirectionMovementAction +080920ec event_object_movement.s GetAcroWheelieHopDirectionMovementAction +080920f8 event_object_movement.s MovementType_WalkSlowlyInPlace_Step0 +08092124 event_object_movement.s MovementType_JogInPlace +08092148 event_object_movement.s GetAcroWheelieHopFaceDirectionMovementAction +0809215c event_object_movement.s GetAcroWheelieInPlaceDirectionMovementAction +08092168 event_object_movement.s MovementType_JogInPlace_Step0 +08092194 event_object_movement.s MovementType_RunInPlace +080921b8 event_object_movement.s GetAcroWheelieJumpDirectionMovementAction +080921cc event_object_movement.s GetAcroWheelieMoveDirectionMovementAction +080921d8 event_object_movement.s MovementType_RunInPlace_Step0 +08092204 event_object_movement.s MovementType_Invisible +08092228 event_object_movement.s GetFaceDirectionMovementAction +0809223c event_object_movement.s GetJump2MovementAction +08092248 event_object_movement.s MovementType_Invisible_Step0 +0809227c event_object_movement.s MovementType_Invisible_Step1 +0809229c event_object_movement.s MovementType_FaceDirection_Step2 +080922ac event_object_movement.s ClearEventObjectMovement +080922cc event_object_movement.s GetJumpInPlaceMovementAction +080922dc event_object_movement.s GetJumpInPlaceTurnAroundMovementAction +080922ec event_object_movement.s GetJumpMovementAction +080922fc event_object_movement.s GetJumpSpecialMovementAction +0809230c event_object_movement.s GetPlayerRunMovementAction +0809231c event_object_movement.s GetRideWaterCurrentMovementAction +0809232c event_object_movement.s GetSlideMovementAction +0809233c event_object_movement.s GetWalkFastMovementAction +0809234c event_object_movement.s GetWalkFastestMovementAction +0809235c event_object_movement.s GetWalkInPlaceFastMovementAction +0809236c event_object_movement.s GetWalkInPlaceFastestMovementAction +0809237c event_object_movement.s GetWalkInPlaceNormalMovementAction +0809238c event_object_movement.s GetWalkInPlaceSlowMovementAction +0809239c event_object_movement.s GetWalkNormalMovementAction +080923ac event_object_movement.s GetWalkSlowMovementAction +080923bc event_object_movement.s sub_080923BC_jp +080923e0 event_object_movement.s npc_apply_anim_looping +08092428 event_object_movement.s obj_npc_animation_step +08092468 event_object_movement.s GetDirectionToFace +0809249c event_object_movement.s SetTrainerMovementType +080924e8 event_object_movement.s GroundEffect_DeepSandTracks +080924f8 event_object_movement.s GetCollisionInDirection +08092538 event_object_movement.s GetCollisionAtCoords +080925fc event_object_movement.s GetCollisionFlagsAtCoords +080926c8 event_object_movement.s IsCoordOutsideEventObjectMovementRange +08092738 event_object_movement.s IsMetatileDirectionallyImpassable +08092790 event_object_movement.s DoesObjectCollideWithObjectAt +0809280c event_object_movement.s IsBerryTreeSparkling +08092860 event_object_movement.s sub_08092860 +080928ac event_object_movement.s MoveCoords +080928d0 event_object_movement.s sub_080928D0 +080928f8 event_object_movement.s MoveCoordsInDirection +08092960 event_object_movement.s sub_08092960 +080929a8 event_object_movement.s SetSpritePosToMapCoords +08092a50 event_object_movement.s sub_08092A50 +08092a9c event_object_movement.s GetEventObjectMovingCameraOffset +08092adc event_object_movement.s EventObjectMoveDestCoords +08092afc event_object_movement.s EventObjectIsMovementOverridden +08092b14 event_object_movement.s EventObjectIsHeldMovementActive +08092b30 event_object_movement.s EventObjectSetHeldMovement +08092b78 event_object_movement.s EventObjectForceSetHeldMovement +08092b94 event_object_movement.s EventObjectClearHeldMovementIfActive +08092bac event_object_movement.s EventObjectClearHeldMovement +08092be0 event_object_movement.s EventObjectCheckHeldMovementStatus +08092bf4 event_object_movement.s MovementAction_AcroEndWheelieFaceLeft_Step0 +08092c18 event_object_movement.s EventObjectGetHeldMovementActionId +08092c30 event_object_movement.s UpdateEventObjectCurrentMovement +08092ca0 event_object_movement.s sub_08092CA0_jp +08092ccc event_object_movement.s sub_08092CCC_jp +08092cf8 event_object_movement.s sub_08092CF8_jp +08092d24 event_object_movement.s sub_08092D24_jp +08092d50 event_object_movement.s sub_08092D50_jp +08092d7c event_object_movement.s sub_08092D7C_jp +08092da8 event_object_movement.s sub_08092DA8_jp +08092dd4 event_object_movement.s sub_08092DD4_jp +08092e00 event_object_movement.s sub_08092E00_jp +08092e2c event_object_movement.s sub_08092E2C_jp +08092e58 event_object_movement.s sub_08092E58_jp +08092e84 event_object_movement.s sub_08092E84_jp +08092eb0 event_object_movement.s sub_08092EB0_jp +08092edc event_object_movement.s sub_08092EDC_jp +08092f08 event_object_movement.s sub_08092F08_jp +08092f34 event_object_movement.s sub_08092F34_jp +08092f60 event_object_movement.s sub_08092F60_jp +08092f8c event_object_movement.s EventObjectFaceOppositeDirection +08092fb8 event_object_movement.s sub_08092FB8_jp +08092fe4 event_object_movement.s sub_08092FE4_jp +08093010 event_object_movement.s EventObjectExecSingleMovementAction +0809303c event_object_movement.s sub_0809303C_jp +08093068 event_object_movement.s GetAcroEndWheelieFaceDirectionMovementAction +08093094 event_object_movement.s sub_08093094_jp +080930c0 event_object_movement.s sub_080930C0_jp +080930ec event_object_movement.s sub_080930EC_jp +08093118 event_object_movement.s sub_08093118_jp +08093144 event_object_movement.s sub_08093144_jp +08093170 event_object_movement.s GetOppositeDirection +080931a4 event_object_movement.s zffu_offset_calc +080931bc event_object_movement.s state_to_direction +080931fc event_object_movement.s EventObjectExecHeldMovementAction +0809321c event_object_movement.s sub_0809321C_jp +08093234 event_object_movement.s sub_08093234 +08093258 event_object_movement.s sub_08093258_jp +08093274 event_object_movement.s EventObjectSetSingleMovement +0809327c event_object_movement.s FaceDirection +080932c0 event_object_movement.s MovementAction_FaceDown_Step0 +080932d0 event_object_movement.s MovementAction_FaceUp_Step0 +080932e0 event_object_movement.s MovementAction_FaceLeft_Step0 +080932f0 event_object_movement.s MovementAction_FaceRight_Step0 +08093300 event_object_movement.s npc_apply_direction +0809339c event_object_movement.s do_go_anim +080933f8 event_object_movement.s StartRunningAnim +08093428 event_object_movement.s npc_obj_ministep_stop_on_arrival +08093460 event_object_movement.s sub_08093460 +080934d0 event_object_movement.s sub_080934D0 +080934fc event_object_movement.s an_walk_any_2 +08093534 event_object_movement.s MovementAction_WalkSlowDiagonalUpLeft_Step0 +08093554 event_object_movement.s sub_08093554_jp +08093574 event_object_movement.s MovementAction_WalkSlowDiagonalUpRight_Step0 +08093594 event_object_movement.s MovementAction_WalkSlowDiagonalUpRight_Step1 +080935b4 event_object_movement.s MovementAction_WalkSlowDiagonalDownLeft_Step0 +080935d4 event_object_movement.s MovementAction_WalkSlowDiagonalDownLeft_Step1 +080935f4 event_object_movement.s MovementAction_WalkSlowDiagonalDownRight_Step0 +08093614 event_object_movement.s MovementAction_WalkSlowDiagonalDownRight_Step1 +08093634 event_object_movement.s MovementAction_WalkSlowDown_Step0 +08093654 event_object_movement.s MovementAction_WalkSlowDown_Step1 +08093674 event_object_movement.s MovementAction_WalkSlowUp_Step0 +08093694 event_object_movement.s MovementAction_WalkSlowUp_Step1 +080936b4 event_object_movement.s MovementAction_WalkSlowLeft_Step0 +080936d4 event_object_movement.s MovementAction_WalkSlowLeft_Step1 +080936f4 event_object_movement.s MovementAction_WalkSlowRight_Step0 +08093714 event_object_movement.s MovementAction_WalkSlowRight_Step1 +08093734 event_object_movement.s MovementAction_WalkNormalDiagonalUpLeft_Step0 +08093754 event_object_movement.s MovementAction_WalkNormalDiagonalUpLeft_Step1 +08093774 event_object_movement.s MovementAction_WalkNormalDiagonalUpRight_Step0 +08093794 event_object_movement.s MovementAction_WalkNormalDiagonalUpRight_Step1 +080937b4 event_object_movement.s MovementAction_WalkNormalDiagonalDownLeft_Step0 +080937d4 event_object_movement.s MovementAction_WalkNormalDiagonalDownLeft_Step1 +080937f4 event_object_movement.s MovementAction_WalkNormalDiagonalDownRight_Step0 +08093814 event_object_movement.s MovementAction_WalkNormalDiagonalDownRight_Step1 +08093834 event_object_movement.s MovementAction_WalkNormalDown_Step0 +08093854 event_object_movement.s MovementAction_WalkNormalDown_Step1 +08093874 event_object_movement.s MovementAction_WalkNormalUp_Step0 +08093894 event_object_movement.s MovementAction_WalkNormalUp_Step1 +080938b4 event_object_movement.s MovementAction_WalkNormalLeft_Step0 +080938d4 event_object_movement.s MovementAction_WalkNormalLeft_Step1 +080938f4 event_object_movement.s MovementAction_WalkNormalRight_Step0 +08093914 event_object_movement.s MovementAction_WalkNormalRight_Step1 +08093934 event_object_movement.s sub_08093934 +080939f0 event_object_movement.s maybe_shadow_1 +08093a34 event_object_movement.s sub_08093A34 +08093af8 event_object_movement.s sub_08093AF8_jp +08093b0c event_object_movement.s sub_08093B0C_jp +08093b20 event_object_movement.s sub_08093B20_jp +08093b38 event_object_movement.s sub_08093B38_jp +08093b50 event_object_movement.s sub_08093B50 +08093ba0 event_object_movement.s MovementAction_Jump2Down_Step0 +08093bcc event_object_movement.s MovementAction_Jump2Down_Step1 +08093bf8 event_object_movement.s MovementAction_Jump2Up_Step0 +08093c24 event_object_movement.s MovementAction_Jump2Up_Step1 +08093c50 event_object_movement.s MovementAction_Jump2Left_Step0 +08093c7c event_object_movement.s MovementAction_Jump2Left_Step1 +08093ca8 event_object_movement.s MovementAction_Jump2Right_Step0 +08093cd4 event_object_movement.s MovementAction_Jump2Right_Step1 +08093d00 event_object_movement.s sub_08093D00 +08093d08 event_object_movement.s MovementAction_Delay_Step1 +08093d24 event_object_movement.s MovementAction_Delay1_Step0 +08093d44 event_object_movement.s MovementAction_Delay2_Step0 +08093d64 event_object_movement.s MovementAction_Delay4_Step0 +08093d84 event_object_movement.s MovementAction_Delay8_Step0 +08093da4 event_object_movement.s MovementAction_Delay16_Step0 +08093dc4 event_object_movement.s MovementAction_WalkFastDown_Step0 +08093de4 event_object_movement.s MovementAction_WalkFastDown_Step1 +08093e04 event_object_movement.s MovementAction_WalkFastUp_Step0 +08093e24 event_object_movement.s MovementAction_WalkFastUp_Step1 +08093e44 event_object_movement.s MovementAction_WalkFastLeft_Step0 +08093e64 event_object_movement.s MovementAction_WalkFastLeft_Step1 +08093e84 event_object_movement.s MovementAction_WalkFastRight_Step0 +08093ea4 event_object_movement.s MovementAction_WalkFastRight_Step1 +08093ec4 event_object_movement.s sub_08093EC4 +08093f0c event_object_movement.s MovementAction_WalkInPlace_Step1 +08093f34 event_object_movement.s MovementAction_WalkInPlaceSlow_Step1 +08093f70 event_object_movement.s MovementAction_WalkInPlaceSlowDown_Step0 +08093fa8 event_object_movement.s MovementAction_WalkInPlaceSlowUp_Step0 +08093fe0 event_object_movement.s MovementAction_WalkInPlaceSlowLeft_Step0 +08094018 event_object_movement.s MovementAction_WalkInPlaceSlowRight_Step0 +08094050 event_object_movement.s MovementAction_WalkInPlaceNormalDown_Step0 +08094088 event_object_movement.s MovementAction_WalkInPlaceNormalUp_Step0 +080940c0 event_object_movement.s MovementAction_WalkInPlaceNormalLeft_Step0 +080940f8 event_object_movement.s MovementAction_WalkInPlaceNormalRight_Step0 +08094130 event_object_movement.s MovementAction_WalkInPlaceFastDown_Step0 +08094168 event_object_movement.s MovementAction_WalkInPlaceFastUp_Step0 +080941a0 event_object_movement.s MovementAction_WalkInPlaceFastLeft_Step0 +080941d8 event_object_movement.s MovementAction_WalkInPlaceFastRight_Step0 +08094210 event_object_movement.s MovementAction_WalkInPlaceFastestDown_Step0 +08094248 event_object_movement.s MovementAction_WalkInPlaceFastestUp_Step0 +08094280 event_object_movement.s MovementAction_WalkInPlaceFastestLeft_Step0 +080942b8 event_object_movement.s MovementAction_WalkInPlaceFastestRight_Step0 +080942f0 event_object_movement.s MovementAction_RideWaterCurrentDown_Step0 +08094310 event_object_movement.s MovementAction_RideWaterCurrentDown_Step1 +08094330 event_object_movement.s MovementAction_RideWaterCurrentUp_Step0 +08094350 event_object_movement.s MovementAction_RideWaterCurrentUp_Step1 +08094370 event_object_movement.s MovementAction_RideWaterCurrentLeft_Step0 +08094390 event_object_movement.s MovementAction_RideWaterCurrentLeft_Step1 +080943b0 event_object_movement.s MovementAction_RideWaterCurrentRight_Step0 +080943d0 event_object_movement.s MovementAction_RideWaterCurrentRight_Step1 +080943f0 event_object_movement.s MovementAction_WalkFastestDown_Step0 +08094410 event_object_movement.s MovementAction_WalkFastestDown_Step1 +08094430 event_object_movement.s MovementAction_WalkFastestUp_Step0 +08094450 event_object_movement.s MovementAction_WalkFastestUp_Step1 +08094470 event_object_movement.s MovementAction_WalkFastestLeft_Step0 +08094490 event_object_movement.s MovementAction_WalkFastestLeft_Step1 +080944b0 event_object_movement.s MovementAction_WalkFastestRight_Step0 +080944d0 event_object_movement.s MovementAction_WalkFastestRight_Step1 +080944f0 event_object_movement.s MovementAction_SlideDown_Step0 +08094510 event_object_movement.s MovementAction_SlideDown_Step1 +08094530 event_object_movement.s MovementAction_SlideUp_Step0 +08094550 event_object_movement.s MovementAction_SlideUp_Step1 +08094570 event_object_movement.s MovementAction_SlideLeft_Step0 +08094590 event_object_movement.s MovementAction_SlideLeft_Step1 +080945b0 event_object_movement.s MovementAction_SlideRight_Step0 +080945d0 event_object_movement.s MovementAction_SlideRight_Step1 +080945f0 event_object_movement.s MovementAction_PlayerRunDown_Step0 +08094610 event_object_movement.s MovementAction_PlayerRunDown_Step1 +08094630 event_object_movement.s MovementAction_PlayerRunUp_Step0 +08094650 event_object_movement.s MovementAction_PlayerRunUp_Step1 +08094670 event_object_movement.s MovementAction_PlayerRunLeft_Step0 +08094690 event_object_movement.s MovementAction_PlayerRunLeft_Step1 +080946b0 event_object_movement.s MovementAction_PlayerRunRight_Step0 +080946d0 event_object_movement.s MovementAction_PlayerRunRight_Step1 +080946f0 event_object_movement.s StartSpriteAnimInDirection +0809471c event_object_movement.s MovementAction_StartAnimInDirection_Step0 +08094734 event_object_movement.s MovementAction_WaitSpriteAnim +08094754 event_object_movement.s sub_08094754 +08094788 event_object_movement.s MovementAction_JumpSpecialDown_Step0 +080947a8 event_object_movement.s MovementAction_JumpSpecialDown_Step1 +080947d0 event_object_movement.s MovementAction_JumpSpecialUp_Step0 +080947f0 event_object_movement.s MovementAction_JumpSpecialUp_Step1 +08094818 event_object_movement.s MovementAction_JumpSpecialLeft_Step0 +08094838 event_object_movement.s MovementAction_JumpSpecialLeft_Step1 +08094860 event_object_movement.s MovementAction_JumpSpecialRight_Step0 +08094880 event_object_movement.s MovementAction_JumpSpecialRight_Step1 +080948a8 event_object_movement.s MovementAction_FacePlayer_Step0 +08094904 event_object_movement.s MovementAction_FaceAwayPlayer_Step0 +08094968 event_object_movement.s MovementAction_LockFacingDirection_Step0 +08094978 event_object_movement.s MovementAction_UnlockFacingDirection_Step0 +08094988 event_object_movement.s MovementAction_JumpDown_Step0 +080949b4 event_object_movement.s MovementAction_JumpDown_Step1 +080949e0 event_object_movement.s MovementAction_JumpUp_Step0 +08094a0c event_object_movement.s MovementAction_JumpUp_Step1 +08094a38 event_object_movement.s MovementAction_JumpLeft_Step0 +08094a64 event_object_movement.s MovementAction_JumpLeft_Step1 +08094a90 event_object_movement.s MovementAction_JumpRight_Step0 +08094abc event_object_movement.s MovementAction_JumpRight_Step1 +08094ae8 event_object_movement.s MovementAction_JumpInPlaceDown_Step0 +08094b14 event_object_movement.s MovementAction_JumpInPlaceDown_Step1 +08094b40 event_object_movement.s MovementAction_JumpInPlaceUp_Step0 +08094b6c event_object_movement.s MovementAction_JumpInPlaceUp_Step1 +08094b98 event_object_movement.s MovementAction_JumpInPlaceLeft_Step0 +08094bc4 event_object_movement.s MovementAction_JumpInPlaceLeft_Step1 +08094bf0 event_object_movement.s MovementAction_JumpInPlaceRight_Step0 +08094c1c event_object_movement.s MovementAction_JumpInPlaceRight_Step1 +08094c48 event_object_movement.s MovementAction_JumpInPlaceDownUp_Step0 +08094c74 event_object_movement.s MovementAction_JumpInPlaceDownUp_Step1 +08094ca0 event_object_movement.s MovementAction_JumpInPlaceUpDown_Step0 +08094ccc event_object_movement.s MovementAction_JumpInPlaceUpDown_Step1 +08094cf8 event_object_movement.s MovementAction_JumpInPlaceLeftRight_Step0 +08094d24 event_object_movement.s MovementAction_JumpInPlaceLeftRight_Step1 +08094d50 event_object_movement.s MovementAction_JumpInPlaceRightLeft_Step0 +08094d7c event_object_movement.s MovementAction_JumpInPlaceRightLeft_Step1 +08094da8 event_object_movement.s MovementAction_FaceOriginalDirection_Step0 +08094dc0 event_object_movement.s MovementAction_NurseJoyBowDown_Step0 +08094dd0 event_object_movement.s MovementAction_EnableJumpLandingGroundEffect_Step0 +08094de0 event_object_movement.s MovementAction_DisableJumpLandingGroundEffect_Step0 +08094df0 event_object_movement.s MovementAction_DisableAnimation_Step0 +08094e00 event_object_movement.s MovementAction_RestoreAnimation_Step0 +08094e2c event_object_movement.s MovementAction_SetInvisible_Step0 +08094e3c event_object_movement.s MovementAction_SetVisible_Step0 +08094e4c event_object_movement.s MovementAction_EmoteExclamationMark_Step0 +08094e70 event_object_movement.s MovementAction_EmoteQuestionMark_Step0 +08094e94 event_object_movement.s MovementAction_EmoteHeart_Step0 +08094eb8 event_object_movement.s MovementAction_RevealTrainer_Step0 +08094efc event_object_movement.s MovementAction_RevealTrainer_Step1 +08094f1c event_object_movement.s MovementAction_RockSmashBreak_Step0 +08094f38 event_object_movement.s MovementAction_RockSmashBreak_Step1 +08094f5c event_object_movement.s MovementAction_RockSmashBreak_Step2 +08094f98 event_object_movement.s MovementAction_CutTree_Step0 +08094fb4 event_object_movement.s MovementAction_CutTree_Step1 +08094fd8 event_object_movement.s MovementAction_CutTree_Step2 +08095014 event_object_movement.s MovementAction_SetFixedPriority_Step0 +08095024 event_object_movement.s MovementAction_ClearFixedPriority_Step0 +08095034 event_object_movement.s MovementAction_InitAffineAnim_Step0 +08095064 event_object_movement.s MovementAction_ClearAffineAnim_Step0 +08095094 event_object_movement.s MovementAction_Unknown1_Step0 +080950a0 event_object_movement.s MovementAction_Unknown2_Step0 +080950b0 event_object_movement.s MovementAction_WalkDownStartAffine_Step0 +080950e4 event_object_movement.s MovementAction_WalkDownStartAffine_Step1 +08095110 event_object_movement.s MovementAction_WalkDownAffine_Step0 +08095144 event_object_movement.s MovementAction_WalkDownAffine_Step1 +08095170 event_object_movement.s MovementAction_WalkLeftAffine_Step0 +080951a4 event_object_movement.s MovementAction_WalkLeftAffine_Step1 +080951d0 event_object_movement.s MovementAction_WalkRightAffine_Step0 +08095204 event_object_movement.s MovementAction_WalkRightAffine_Step1 +08095230 event_object_movement.s sub_08095230 +08095270 event_object_movement.s MovementAction_AcroWheelieFaceDown_Step0 +08095280 event_object_movement.s MovementAction_AcroWheelieFaceUp_Step0 +08095290 event_object_movement.s MovementAction_AcroWheelieFaceLeft_Step0 +080952a0 event_object_movement.s MovementAction_AcroWheelieFaceRight_Step0 +080952b0 event_object_movement.s MovementAction_AcroPopWheelieDown_Step0 +080952d4 event_object_movement.s MovementAction_AcroPopWheelieUp_Step0 +080952f8 event_object_movement.s MovementAction_AcroPopWheelieLeft_Step0 +0809531c event_object_movement.s MovementAction_AcroPopWheelieRight_Step0 +08095340 event_object_movement.s MovementAction_AcroEndWheelieFaceDown_Step0 +08095364 event_object_movement.s MovementAction_AcroEndWheelieFaceUp_Step0 +08095388 event_object_movement.s sub_08095388_jp +080953ac event_object_movement.s MovementAction_AcroEndWheelieFaceRight_Step0 +080953d0 event_object_movement.s MovementAction_UnusedAcroActionDown_Step0 +080953f4 event_object_movement.s MovementAction_UnusedAcroActionUp_Step0 +08095418 event_object_movement.s MovementAction_UnusedAcroActionLeft_Step0 +0809543c event_object_movement.s MovementAction_UnusedAcroActionRight_Step0 +08095460 event_object_movement.s sub_08095460 +0809547c event_object_movement.s sub_0809547C +080954b4 event_object_movement.s MovementAction_Figure8_Step0 +080954d4 event_object_movement.s sub_080954D4_jp +080954f4 event_object_movement.s sub_080954F4 +08095538 event_object_movement.s MovementAction_AcroWheelieHopFaceDown_Step0 +08095564 event_object_movement.s MovementAction_AcroWheelieHopFaceDown_Step1 +08095590 event_object_movement.s MovementAction_AcroWheelieHopFaceUp_Step0 +080955bc event_object_movement.s MovementAction_AcroWheelieHopFaceUp_Step1 +080955e8 event_object_movement.s MovementAction_AcroWheelieHopFaceLeft_Step0 +08095614 event_object_movement.s MovementAction_AcroWheelieHopFaceLeft_Step1 +08095640 event_object_movement.s MovementAction_AcroWheelieHopFaceRight_Step0 +0809566c event_object_movement.s MovementAction_AcroWheelieHopFaceRight_Step1 +08095698 event_object_movement.s MovementAction_AcroWheelieHopDown_Step0 +080956c4 event_object_movement.s MovementAction_AcroWheelieHopDown_Step1 +080956f0 event_object_movement.s MovementAction_AcroWheelieHopUp_Step0 +0809571c event_object_movement.s MovementAction_AcroWheelieHopUp_Step1 +08095748 event_object_movement.s MovementAction_AcroWheelieHopLeft_Step0 +08095774 event_object_movement.s MovementAction_AcroWheelieHopLeft_Step1 +080957a0 event_object_movement.s MovementAction_AcroWheelieHopRight_Step0 +080957cc event_object_movement.s MovementAction_AcroWheelieHopRight_Step1 +080957f8 event_object_movement.s MovementAction_AcroWheelieJumpDown_Step0 +08095824 event_object_movement.s MovementAction_AcroWheelieJumpDown_Step1 +08095850 event_object_movement.s MovementAction_AcroWheelieJumpUp_Step0 +0809587c event_object_movement.s MovementAction_AcroWheelieJumpUp_Step1 +080958a8 event_object_movement.s MovementAction_AcroWheelieJumpLeft_Step0 +080958d4 event_object_movement.s MovementAction_AcroWheelieJumpLeft_Step1 +08095900 event_object_movement.s MovementAction_AcroWheelieJumpRight_Step0 +0809592c event_object_movement.s MovementAction_AcroWheelieJumpRight_Step1 +08095958 event_object_movement.s MovementAction_AcroWheelieInPlaceDown_Step0 +08095990 event_object_movement.s MovementAction_AcroWheelieInPlaceUp_Step0 +080959c8 event_object_movement.s MovementAction_AcroWheelieInPlaceLeft_Step0 +08095a00 event_object_movement.s MovementAction_AcroWheelieInPlaceRight_Step0 +08095a38 event_object_movement.s sub_08095A38_jp +08095a70 event_object_movement.s sub_08095A70_jp +08095a90 event_object_movement.s MovementAction_AcroPopWheelieMoveDown_Step1 +08095ab0 event_object_movement.s sub_08095AB0_jp +08095ad0 event_object_movement.s MovementAction_AcroPopWheelieMoveUp_Step1 +08095af0 event_object_movement.s sub_08095AF0_jp +08095b10 event_object_movement.s MovementAction_AcroPopWheelieMoveLeft_Step1 +08095b30 event_object_movement.s sub_08095B30 +08095b50 event_object_movement.s MovementAction_AcroPopWheelieMoveRight_Step1 +08095b70 event_object_movement.s sub_08095B70 +08095ba0 event_object_movement.s MovementAction_AcroWheelieMoveDown_Step0 +08095bc0 event_object_movement.s MovementAction_AcroWheelieMoveDown_Step1 +08095be0 event_object_movement.s MovementAction_AcroWheelieMoveUp_Step0 +08095c00 event_object_movement.s MovementAction_AcroWheelieMoveUp_Step1 +08095c20 event_object_movement.s MovementAction_AcroWheelieMoveLeft_Step0 +08095c40 event_object_movement.s MovementAction_AcroWheelieMoveLeft_Step1 +08095c60 event_object_movement.s MovementAction_AcroWheelieMoveRight_Step0 +08095c80 event_object_movement.s MovementAction_AcroWheelieMoveRight_Step1 +08095ca0 event_object_movement.s sub_08095CA0 +08095cd8 event_object_movement.s MovementAction_AcroEndWheelieMoveDown_Step0 +08095cf8 event_object_movement.s MovementAction_AcroEndWheelieMoveDown_Step1 +08095d18 event_object_movement.s MovementAction_AcroEndWheelieMoveUp_Step0 +08095d38 event_object_movement.s MovementAction_AcroEndWheelieMoveUp_Step1 +08095d58 event_object_movement.s MovementAction_AcroEndWheelieMoveLeft_Step0 +08095d78 event_object_movement.s MovementAction_AcroEndWheelieMoveLeft_Step1 +08095d98 event_object_movement.s MovementAction_AcroEndWheelieMoveRight_Step0 +08095db8 event_object_movement.s MovementAction_AcroEndWheelieMoveRight_Step1 +08095dd8 event_object_movement.s MovementAction_Levitate_Step0 +08095dec event_object_movement.s MovementAction_StopLevitate_Step0 +08095e04 event_object_movement.s MovementAction_DestroyExtraTaskIfAtTop_Step0 +08095e28 event_object_movement.s sub_08095E28 +08095e2c event_object_movement.s MovementAction_PauseSpriteAnim +08095e3c event_object_movement.s UpdateEventObjectSpriteAnimPause +08095e58 event_object_movement.s TryEnableEventObjectAnim +08095e88 event_object_movement.s UpdateEventObjectVisibility +08095ea0 event_object_movement.s sub_08095EA0 +08095f80 event_object_movement.s UpdateEventObjSpriteVisibility +08095fa8 event_object_movement.s GetAllGroundEffectFlags_OnSpawn +08095ff0 event_object_movement.s GetAllGroundEffectFlags_OnBeginStep +08096048 event_object_movement.s GetAllGroundEffectFlags_OnFinishStep +08096098 event_object_movement.s EventObjectUpdateMetatileBehaviors +080960c0 event_object_movement.s GetGroundEffectFlags_Reflection +0809611c event_object_movement.s GetGroundEffectFlags_TallGrassOnSpawn +0809613c event_object_movement.s GetGroundEffectFlags_LongGrassOnSpawn +0809615c event_object_movement.s sub_0809615C +0809617c event_object_movement.s GetGroundEffectFlags_LongGrassOnBeginStep +0809619c event_object_movement.s GetGroundEffectFlags_Tracks +080961dc event_object_movement.s GetGroundEffectFlags_SandHeap +0809622c event_object_movement.s GetGroundEffectFlags_ShallowFlowingWater +08096290 event_object_movement.s GetGroundEffectFlags_Puddle +080962c0 event_object_movement.s GetGroundEffectFlags_Ripple +080962e0 event_object_movement.s GetGroundEffectFlags_ShortGrass +08096330 event_object_movement.s GetGroundEffectFlags_HotSprings +08096380 event_object_movement.s GetGroundEffectFlags_Seaweed +080963a0 event_object_movement.s GetGroundEffectFlags_JumpLanding +080963fc event_object_movement.s EventObjectCheckForReflectiveSurface +0809654c event_object_movement.s GetReflectionTypeByMetatileBehavior +0809657c event_object_movement.s GetLedgeJumpDirection +080965d8 event_object_movement.s SetEventObjectSpriteOamTableForLongGrass +08096634 event_object_movement.s IsZCoordMismatchAt +08096670 event_object_movement.s UpdateEventObjectZCoordAndPriority +080966cc event_object_movement.s InitObjectPriorityByZCoord +08096718 event_object_movement.s sub_08096718 +08096728 event_object_movement.s EventObjectUpdateZCoord +0809677c event_object_movement.s SetObjectSubpriorityByZCoord +080967c4 event_object_movement.s EventObjectUpdateSubpriority +080967e0 event_object_movement.s AreZCoordsCompatible +08096800 event_object_movement.s GroundEffect_SpawnOnTallGrass +0809684c event_object_movement.s GroundEffect_StepOnTallGrass +08096898 event_object_movement.s GroundEffect_SpawnOnLongGrass +080968e4 event_object_movement.s GroundEffect_StepOnLongGrass +08096930 event_object_movement.s GroundEffect_WaterReflection +0809693c event_object_movement.s GroundEffect_IceReflection +08096948 event_object_movement.s GroundEffect_FlowingWater +08096958 event_object_movement.s GroundEffect_SandTracks +08096984 event_object_movement.s sub_08096984 +080969b0 event_object_movement.s DoTracksGroundEffect_None +080969b4 event_object_movement.s DoTracksGroundEffect_Footprints +08096a04 event_object_movement.s DoTracksGroundEffect_BikeTireTracks +08096a54 event_object_movement.s sub_08096A54 +08096a60 event_object_movement.s GroundEffect_StepOnPuddle +08096a70 event_object_movement.s GroundEffect_SandHeap +08096a80 event_object_movement.s GroundEffect_JumpOnTallGrass +08096ad8 event_object_movement.s GroundEffect_JumpOnLongGrass +08096b00 event_object_movement.s GroundEffect_JumpOnShallowWater +08096b30 event_object_movement.s GroundEffect_JumpOnWater +08096b60 event_object_movement.s GroundEffect_JumpLandingDust +08096b90 event_object_movement.s GroundEffect_ShortGrass +08096ba0 event_object_movement.s GroundEffect_HotSprings +08096bb0 event_object_movement.s GroundEffect_Seaweed +08096bd0 event_object_movement.s DoFlaggedGroundEffects +08096c2c event_object_movement.s filters_out_some_ground_effects +08096c64 event_object_movement.s FilterOutStepOnPuddleGroundEffectIfJumping +08096c80 event_object_movement.s DoGroundEffects_OnSpawn +08096ccc event_object_movement.s DoGroundEffects_OnBeginStep +08096d20 event_object_movement.s DoGroundEffects_OnFinishStep +08096d74 event_object_movement.s FreezeEventObject +08096e04 event_object_movement.s FreezeEventObjects +08096e40 event_object_movement.s FreezeEventObjectsExceptOne +08096e84 event_object_movement.s UnfreezeEventObject +08096eec event_object_movement.s UnfreezeEventObjects +08096f1c event_object_movement.s Step1 +08096f3c event_object_movement.s Step2 +08096f60 event_object_movement.s Step3 +08096f88 event_object_movement.s Step4 +08096fac event_object_movement.s Step8 +08096fd0 event_object_movement.s oamt_npc_ministep_reset +08096fe4 event_object_movement.s obj_npc_ministep +0809704c event_object_movement.s sub_0809704C +0809705c event_object_movement.s sub_0809705C +08097098 event_object_movement.s sub_08097098 +080970ac event_object_movement.s sub_080970AC +080970c0 event_object_movement.s sub_080970C0 +080970c8 event_object_movement.s sub_080970C8 +08097190 event_object_movement.s sub_08097190 +080971ac event_object_movement.s sub_080971AC +080971cc event_object_movement.s sub_080971CC +08097254 event_object_movement.s sub_08097254 +080972e8 event_object_movement.s SetMovementDelay +080972ec event_object_movement.s WaitForMovementDelay +08097304 event_object_movement.s SetAndStartSpriteAnim +0809732c event_object_movement.s SpriteAnimEnded +08097344 event_object_movement.s UpdateEventObjectSpriteVisibility +08097438 event_object_movement.s UpdateEventObjectSpriteSubpriorityAndVisibility +08097460 event_object_movement.s sub_08097460 +0809749c event_object_movement.s sub_0809749C +080974e8 event_object_movement.s sub_080974E8 +08097524 event_object_movement.s sub_08097524 +080975b4 event_object_movement.s sub_080975B4 +080975fc event_object_movement.s sub_080975FC +08097634 event_object_movement.s sub_08097634 +08097664 event_object_movement.s sub_08097664 +080976a0 event_object_movement.s sub_080976A0 +080976d8 event_object_movement.s sub_080976D8 +08097724 event_object_movement.s sub_08097724 +08097758 event_object_movement.s sub_08097758 +08097780 event_object_movement.s DoShadowFieldEffect +0809779c event_object_movement.s DoRippleFieldEffect +080977d8 event_object_movement.s MovementAction_StoreAndLockAnim_Step0 +08097878 event_object_movement.s MovementAction_FreeAndUnlockAnim_Step0 +08097900 event_object_movement.s FindLockedEventObjectIndex +0809792c event_object_movement.s CreateLevitateMovementTask +0809796c event_object_movement.s ApplyLevitateMovement +080979cc event_object_movement.s DestroyExtraMovementTask +080979fc event_object_movement.s sub_080979FC +08097a48 event_object_movement.s MovementAction_FlyUp_Step0 +08097a58 event_object_movement.s MovementAction_FlyUp_Step1 +08097a7c event_object_movement.s MovementAction_FlyDown_Step0 +08097a90 event_object_movement.s MovementAction_FlyDown_Step1 +08097aac event_object_movement.s MovementAction_Finish +field_message_box.s +08097ab0 field_message_box.s InitFieldMessageBox +08097adc field_message_box.s sub_08097ADC_jp +08097b44 field_message_box.s task_add_textbox +08097b58 field_message_box.s task_del_textbox +08097b74 field_message_box.s ShowFieldMessage +08097b9c field_message_box.s sub_08097B9C_jp +08097bc0 field_message_box.s sub_08097BC0_jp +08097c00 field_message_box.s ShowFieldAutoScrollMessage +08097c28 field_message_box.s sub_08097C28 +08097c40 field_message_box.s sub_08097C40_jp +08097c64 field_message_box.s textbox_fdecode_auto_and_task_add +08097c8c field_message_box.s textbox_auto_and_task_add +08097c9c field_message_box.s HideFieldMessageBox +08097cb8 field_message_box.s GetFieldMessageBoxMode +08097cc4 field_message_box.s IsFieldMessageBoxHidden +08097ce0 field_message_box.s sub_08097CE0_jp +08097cfc field_message_box.s sub_08097CFC_jp +event_obj_lock.s +08097d10 event_obj_lock.s walkrun_is_standing_still +08097d2c event_obj_lock.s sub_08097D2C_jp +08097d4c event_obj_lock.s sub_08097D4C_jp +08097d70 event_obj_lock.s ScriptFreezeEventObjects +08097d88 event_obj_lock.s sub_08097D88 +08097e04 event_obj_lock.s sub_08097E04_jp +08097e28 event_obj_lock.s LockSelectedEventObject +08097e7c event_obj_lock.s ScriptUnfreezeEventObjects +08097eac event_obj_lock.s sub_08097EAC_jp +08097efc event_obj_lock.s sub_08097EFC_jp +08097f24 event_obj_lock.s sub_08097F24_jp +08097f44 event_obj_lock.s sub_08097F44_jp +08097fb8 event_obj_lock.s sub_08097FB8_jp +080980bc event_obj_lock.s sub_080980BC_jp +text_window.s +080980e0 text_window.s GetWindowFrameTilesPal +08098104 text_window.s LoadMessageBoxGfx +08098144 text_window.s LoadUserWindowBorderGfx_ +0809815c text_window.s LoadWindowGfx +080981b4 text_window.s LoadUserWindowBorderGfx +080981e0 text_window.s DrawTextBorderOuter +08098368 text_window.s DrawTextBorderInner +08098504 text_window.s rbox_fill_rectangle +080985a0 text_window.s stdpal_get +080985ec text_window.s GetOverworldTextboxPalettePtr +080985f4 text_window.s sub_080985F4_jp +script.s +08098640 script.s InitScriptContext +0809867c script.s SetupBytecodeScript +08098688 script.s SetupNativeScript +08098690 script.s StopScript +08098698 script.s RunScriptCommand +08098720 script.s ScriptPush +08098748 script.s ScriptPop +0809876c script.s ScriptJump +08098770 script.s ScriptCall +08098784 script.s ScriptReturn +08098794 script.s ScriptReadHalfword +080987ac script.s ScriptReadWord +080987dc script.s ScriptContext2_Enable +080987e8 script.s ScriptContext2_Disable +080987f4 script.s ScriptContext2_IsEnabled +08098800 script.s ScriptContext1_IsScriptSetUp +0809881c script.s ScriptContext1_Init +08098844 script.s ScriptContext2_RunScript +08098880 script.s ScriptContext1_SetupScript +080988b8 script.s ScriptContext1_Stop +080988c4 script.s EnableBothScriptContexts +080988d8 script.s ScriptContext2_RunNewScript +08098910 script.s MapHeaderGetScriptTable +08098950 script.s MapHeaderRunScriptType +08098968 script.s MapHeaderCheckScriptTable +080989c8 script.s RunOnLoadMapScript +080989d4 script.s RunOnTransitionMapScript +080989e0 script.s RunOnResumeMapScript +080989ec script.s RunOnReturnToFieldMapScript +080989f8 script.s RunOnDiveWarpMapScript +08098a04 script.s TryRunOnFrameMapScript +08098a20 script.s TryRunOnWarpIntoMapScript +08098a34 script.s CalculateRamScriptChecksum +08098a58 script.s ClearRamScript +08098a84 script.s InitRamScript +08098b10 script.s GetRamScript +08098b80 script.s ValidateSavedRamScript +08098bcc script.s GetSavedRamScriptIfValid +08098c28 script.s InitRamScript_NoEventObject +scrcmd.s +08098c54 scrcmd.s ScrCmd_nop +08098c58 scrcmd.s ScrCmd_nop1 +08098c5c scrcmd.s ScrCmd_end +08098c68 scrcmd.s ScrCmd_gotonative +08098c80 scrcmd.s ScrCmd_special +08098c94 scrcmd.s ScrCmd_showelevmenu +08098ca0 scrcmd.s ScrCmd_specialvar +08098cc8 scrcmd.s ScrCmd_cmdDA +08098cd4 scrcmd.s ScrCmd_callnative +08098ce0 scrcmd.s sub_08098CE0_jp +08098ce4 scrcmd.s ScrCmd_waitstate +08098cf0 scrcmd.s ScrCmd_goto +08098d08 scrcmd.s ScrCmd_return +08098d14 scrcmd.s ScrCmd_call +08098d2c scrcmd.s ScrCmd_goto_if +08098d68 scrcmd.s ScrCmd_call_if +08098da4 scrcmd.s ScrCmd_setvaddress +08098dc0 scrcmd.s ScrCmd_vgoto +08098de4 scrcmd.s ScrCmd_vcall +08098e08 scrcmd.s ScrCmd_vgoto_if +08098e4c scrcmd.s ScrCmd_vcall_if +08098e90 scrcmd.s ScrCmd_gotostd +08098ec0 scrcmd.s ScrCmd_callstd +08098ef0 scrcmd.s ScrCmd_gotostd_if +08098f3c scrcmd.s ScrCmd_callstd_if +08098f88 scrcmd.s ScrCmd_returnram +08098f9c scrcmd.s ScrCmd_killscript +08098fb4 scrcmd.s ScrCmd_setmysteryeventstatus +08098fcc scrcmd.s ScrCmd_loadword +08098ff0 scrcmd.s ScrCmd_loadbytefromaddr +08099014 scrcmd.s ScrCmd_writebytetoaddr +0809902c scrcmd.s ScrCmd_loadbyte +08099048 scrcmd.s ScrCmd_setptrbyte +0809906c scrcmd.s ScrCmd_copylocal +0809908c scrcmd.s ScrCmd_copybyte +080990a8 scrcmd.s ScrCmd_setvar +080990cc scrcmd.s ScrCmd_copyvar +080990f8 scrcmd.s ScrCmd_setorcopyvar +08099124 scrcmd.s compare_012 +08099144 scrcmd.s ScrCmd_compare_local_to_local +08099174 scrcmd.s ScrCmd_compare_local_to_value +0809919c scrcmd.s ScrCmd_compare_local_to_addr +080991c8 scrcmd.s ScrCmd_compare_addr_to_local +080991f4 scrcmd.s ScrCmd_compare_addr_to_value +08099214 scrcmd.s ScrCmd_compare_addr_to_addr +08099238 scrcmd.s ScrCmd_compare_var_to_value +08099268 scrcmd.s ScrCmd_compare_var_to_var +0809929c scrcmd.s ScrCmd_addvar +080992c4 scrcmd.s ScrCmd_subvar +080992f4 scrcmd.s ScrCmd_random +08099328 scrcmd.s ScrCmd_giveitem +0809936c scrcmd.s ScrCmd_takeitem +080993b0 scrcmd.s ScrCmd_checkitemspace +080993f4 scrcmd.s ScrCmd_checkitem +08099438 scrcmd.s ScrCmd_checkitemtype +08099464 scrcmd.s ScrCmd_givepcitem +080994a8 scrcmd.s ScrCmd_checkpcitem +080994ec scrcmd.s ScrCmd_givedecoration +08099518 scrcmd.s ScrCmd_takedecoration +08099544 scrcmd.s ScrCmd_checkdecorspace +08099570 scrcmd.s ScrCmd_checkdecor +0809959c scrcmd.s ScrCmd_setflag +080995b0 scrcmd.s ScrCmd_clearflag +080995c4 scrcmd.s ScrCmd_checkflag +080995e0 scrcmd.s ScrCmd_incrementgamestat +080995f8 scrcmd.s ScrCmd_animateflash +08099614 scrcmd.s ScrCmd_setflashradius +08099630 scrcmd.s IsPaletteNotActive +08099650 scrcmd.s ScrCmd_fadescreen +08099678 scrcmd.s ScrCmd_fadescreenspeed +080996a8 scrcmd.s ScrCmd_fadescreenswapbuffers +0809971c scrcmd.s RunPauseTimer +0809973c scrcmd.s ScrCmd_delay +08099760 scrcmd.s ScrCmd_initclock +08099798 scrcmd.s ScrCmd_dotimebasedevents +080997a4 scrcmd.s ScrCmd_gettime +080997dc scrcmd.s ScrCmd_setweather +080997f8 scrcmd.s ScrCmd_doweather +08099804 scrcmd.s ScrCmd_resetweather +08099810 scrcmd.s ScrCmd_setstepcallback +08099828 scrcmd.s ScrCmd_setmaplayoutindex +08099844 scrcmd.s ScrCmd_warp +080998cc scrcmd.s ScrCmd_warpsilent +08099954 scrcmd.s ScrCmd_warpdoor +080999dc scrcmd.s ScrCmd_warphole +08099a50 scrcmd.s ScrCmd_warpteleport +08099ad8 scrcmd.s ScrCmd_warpD7 +08099b60 scrcmd.s ScrCmd_setwarp +08099be0 scrcmd.s ScrCmd_setdynamicwarp +08099c64 scrcmd.s ScrCmd_setdivewarp +08099ce4 scrcmd.s ScrCmd_setholewarp +08099d64 scrcmd.s ScrCmd_setescapewarp +08099de4 scrcmd.s ScrCmd_getplayerxy +08099e20 scrcmd.s ScrCmd_getpartysize +08099e3c scrcmd.s ScrCmd_playse +08099e50 scrcmd.s WaitForSoundEffectFinish +08099e68 scrcmd.s ScrCmd_waitse +08099e7c scrcmd.s ScrCmd_playfanfare +08099e90 scrcmd.s WaitForFanfareFinish +08099ea0 scrcmd.s ScrCmd_waitfanfare +08099eb4 scrcmd.s ScrCmd_playbgm +08099ee4 scrcmd.s ScrCmd_savebgm +08099ef8 scrcmd.s ScrCmd_fadedefaultbgm +08099f04 scrcmd.s ScrCmd_fadenewbgm +08099f18 scrcmd.s ScrCmd_fadeoutbgm +08099f4c scrcmd.s ScrCmd_fadeinbgm +08099f70 scrcmd.s ScrCmd_applymovement +08099fb4 scrcmd.s ScrCmd_applymovement_at +08099ff8 scrcmd.s WaitForMovementFinish +0809a020 scrcmd.s ScrCmd_waitmovement +0809a074 scrcmd.s ScrCmd_waitmovement_at +0809a0c8 scrcmd.s ScrCmd_removeobject +0809a0f0 scrcmd.s ScrCmd_removeobject_at +0809a120 scrcmd.s ScrCmd_addobject +0809a148 scrcmd.s ScrCmd_addobject_at +0809a178 scrcmd.s ScrCmd_setobjectxy +0809a1e0 scrcmd.s ScrCmd_setobjectxyperm +0809a238 scrcmd.s ScrCmd_moveobjectoffscreen +0809a260 scrcmd.s ScrCmd_showobject_at +0809a290 scrcmd.s ScrCmd_hideobject_at +0809a2c0 scrcmd.s ScrCmd_setobjectpriority +0809a2fc scrcmd.s ScrCmd_resetobjectpriority +0809a32c scrcmd.s ScrCmd_faceplayer +0809a364 scrcmd.s ScrCmd_turnobject +0809a398 scrcmd.s ScrCmd_setobjectmovementtype +0809a3c0 scrcmd.s ScrCmd_createvobject +0809a430 scrcmd.s ScrCmd_turnvobject +0809a44c scrcmd.s ScrCmd_lockall +0809a474 scrcmd.s ScrCmd_lock +0809a4cc scrcmd.s ScrCmd_releaseall +0809a504 scrcmd.s ScrCmd_release +0809a55c scrcmd.s ScrCmd_message +0809a578 scrcmd.s ScrCmd_pokenavcall +0809a594 scrcmd.s ScrCmd_messageautoscroll +0809a5c4 scrcmd.s ScrCmd_cmdDB +0809a600 scrcmd.s ScrCmd_waitmessage +0809a614 scrcmd.s ScrCmd_closemessage +0809a620 scrcmd.s WaitForAorBPress +0809a648 scrcmd.s ScrCmd_waitbuttonpress +0809a65c scrcmd.s ScrCmd_yesnobox +0809a688 scrcmd.s ScrCmd_multichoice +0809a6c4 scrcmd.s ScrCmd_multichoicedefault +0809a714 scrcmd.s ScrCmd_erasebox +0809a718 scrcmd.s ScrCmd_multichoicegrid +0809a768 scrcmd.s ScrCmd_drawboxtext +0809a774 scrcmd.s ScrCmd_mossdeepgym2 +0809a780 scrcmd.s ScrCmd_showmonpic +0809a7b0 scrcmd.s ScrCmd_hidemonpic +0809a7d0 scrcmd.s ScrCmd_showcontestwinner +0809a7f4 scrcmd.s ScrCmd_braillemessage +0809a8e4 scrcmd.s ScrCmd_mossdeepgym4 +0809a8f0 scrcmd.s ScrCmd_vmessage +0809a90c scrcmd.s ScrCmd_buffermovename +0809a950 scrcmd.s ScrCmd_bufferleadmonspeciesname +0809a9a0 scrcmd.s ScrCmd_bufferpartymonnick +0809a9e8 scrcmd.s ScrCmd_bufferitemname +0809aa1c scrcmd.s ScrCmd_bufferspeciesname +0809aa60 scrcmd.s ScrCmd_bufferdecorationname +0809aa9c scrcmd.s ScrCmd_buffernumberstring +0809aae0 scrcmd.s ScrCmd_bufferstdstring +0809ab20 scrcmd.s ScrCmd_bufferstring +0809ab48 scrcmd.s ScrCmd_vloadword +0809ab6c scrcmd.s ScrCmd_vbufferstring +0809aba0 scrcmd.s ScrCmd_bufferboxname +0809abdc scrcmd.s ScrCmd_givemon +0809ac5c scrcmd.s ScrCmd_giveegg +0809ac88 scrcmd.s ScrCmd_setmonmove +0809acb4 scrcmd.s ScrCmd_checkpartymove +0809ad30 scrcmd.s ScrCmd_givemoney +0809ad64 scrcmd.s ScrCmd_takemoney +0809ad98 scrcmd.s ScrCmd_checkmoney +0809add8 scrcmd.s ScrCmd_showmoneybox +0809ae14 scrcmd.s ScrCmd_hidemoneybox +0809ae20 scrcmd.s ScrCmd_updatemoneybox +0809ae50 scrcmd.s ScrCmd_showcoinsbox +0809ae78 scrcmd.s ScrCmd_hidecoinsbox +0809ae8c scrcmd.s ScrCmd_updatecoinsbox +0809aea8 scrcmd.s ScrCmd_trainerbattle +0809aebc scrcmd.s ScrCmd_dotrainerbattle +0809aec8 scrcmd.s ScrCmd_gotobeatenscript +0809aedc scrcmd.s ScrCmd_gotopostbattlescript +0809aef0 scrcmd.s ScrCmd_checktrainerflag +0809af14 scrcmd.s ScrCmd_settrainerflag +0809af30 scrcmd.s ScrCmd_cleartrainerflag +0809af4c scrcmd.s ScrCmd_setwildbattle +0809af80 scrcmd.s ScrCmd_dowildbattle +0809af90 scrcmd.s ScrCmd_pokemart +0809afa4 scrcmd.s ScrCmd_pokemartdecoration +0809afb8 scrcmd.s ScrCmd_pokemartdecoration2 +0809afcc scrcmd.s ScrCmd_playslotmachine +0809aff4 scrcmd.s ScrCmd_setberrytree +0809b030 scrcmd.s ScrCmd_getpricereduction +0809b05c scrcmd.s ScrCmd_showcontestresults +0809b06c scrcmd.s ScrCmd_startcontest +0809b07c scrcmd.s ScrCmd_choosecontestmon +0809b08c scrcmd.s ScrCmd_contestlinktransfer +0809b0a4 scrcmd.s ScrCmd_dofieldeffect +0809b0cc scrcmd.s ScrCmd_setfieldeffectarg +0809b0fc scrcmd.s WaitForFieldEffectFinish +0809b11c scrcmd.s ScrCmd_waitfieldeffect +0809b148 scrcmd.s ScrCmd_setrespawn +0809b164 scrcmd.s ScrCmd_checkplayergender +0809b17c scrcmd.s ScrCmd_playmoncry +0809b1b4 scrcmd.s ScrCmd_waitdooranim +0809b1c8 scrcmd.s ScrCmd_setmetatile +0809b248 scrcmd.s ScrCmd_opendoor +0809b2a0 scrcmd.s ScrCmd_closedoor +0809b2e4 scrcmd.s IsDoorAnimationStopped +0809b2fc scrcmd.s ScrCmd_waitmoncry +0809b310 scrcmd.s ScrCmd_setdooropen +0809b354 scrcmd.s ScrCmd_setdoorclosed +0809b398 scrcmd.s ScrCmd_addelevmenuitem +0809b3d4 scrcmd.s ScrCmd_drawbox +0809b3d8 scrcmd.s ScrCmd_checkcoins +0809b3f8 scrcmd.s ScrCmd_givecoins +0809b430 scrcmd.s ScrCmd_takecoins +0809b468 scrcmd.s ScrCmd_mossdeepgym1 +0809b48c scrcmd.s sub_0809B48C_jp +0809b498 scrcmd.s ScrCmd_mossdeepgym3 +0809b4b4 scrcmd.s ScrCmd_buffercontesttype +0809b4c0 scrcmd.s ScrCmd_cmdD8 +0809b4d4 scrcmd.s ScrCmd_cmdD9 +0809b51c scrcmd.s ScrCmd_setmonobedient +0809b554 scrcmd.s ScrCmd_checkmonobedience +0809b58c scrcmd.s ScrCmd_gotoram +0809b5b4 scrcmd.s ScrCmd_warpD1 +0809b648 scrcmd.s ScrCmd_setmonmetlocation +0809b68c scrcmd.s ScrCmd_bufferitemnameplural +0809b6a8 scrcmd.s ScrCmd_buffertrainerclassname +0809b6e4 scrcmd.s ScrCmd_buffertrainername +0809b720 scrcmd.s sub_0809B720 +0809b72c scrcmd.s ScrCmd_warpE0 +field_control_avatar.s +0809b7b4 field_control_avatar.s FieldClearPlayerInput +0809b7e0 field_control_avatar.s FieldGetPlayerInput +0809b8ec field_control_avatar.s ProcessPlayerFieldInput +0809ba54 field_control_avatar.s GetPlayerPosition +0809ba6c field_control_avatar.s GetInFrontOfPlayerPosition +0809baa8 field_control_avatar.s GetPlayerCurMetatileBehavior +0809bad4 field_control_avatar.s TryStartInteractionScript +0809bb48 field_control_avatar.s GetInteractionScript +0809bba0 field_control_avatar.s GetInteractedLinkPlayerScript +0809bc5c field_control_avatar.s GetInteractedEventObjectScript +0809bd30 field_control_avatar.s GetInteractedBackgroundEventScript +0809be10 field_control_avatar.s GetInteractedMetatileScript +0809c0c4 field_control_avatar.s GetInteractedWaterScript +0809c140 field_control_avatar.s TrySetupDiveDownScript +0809c174 field_control_avatar.s TrySetupDiveEmergeScript +0809c1b4 field_control_avatar.s TryStartStepBasedScript +0809c210 field_control_avatar.s TryStartCoordEventScript +0809c244 field_control_avatar.s TryStartMiscWalkingScripts +0809c2cc field_control_avatar.s TryStartStepCountScript +0809c408 field_control_avatar.s Unref_ClearHappinessStepCounter +0809c41c field_control_avatar.s UpdateHappinessStepCounter +0809c458 field_control_avatar.s ClearPoisonStepCounter +0809c46c field_control_avatar.s UpdatePoisonStepCounter +0809c4b4 field_control_avatar.s RestartWildEncounterImmunitySteps +0809c4c0 field_control_avatar.s CheckStandardWildEncounter +0809c510 field_control_avatar.s TryArrowWarp +0809c574 field_control_avatar.s TryStartWarpEventScript +0809c66c field_control_avatar.s IsWarpMetatileBehavior +0809c70c field_control_avatar.s IsArrowWarpMetatileBehavior +0809c764 field_control_avatar.s GetWarpEventAtMapPosition +0809c788 field_control_avatar.s SetupWarp +0809c850 field_control_avatar.s TryDoorWarp +0809c8dc field_control_avatar.s GetWarpEventAtPosition +0809c924 field_control_avatar.s TryRunCoordEventScript +0809c964 field_control_avatar.s GetCoordEventScriptAtPosition +0809c9cc field_control_avatar.s GetCoordEventScriptAtMapPosition +0809c9f4 field_control_avatar.s GetBackgroundEventAtPosition +0809ca44 field_control_avatar.s dive_warp +0809cac0 field_control_avatar.s TrySetDiveWarp +0809cb58 field_control_avatar.s GetEventObjectScriptPointerPlayerFacing +0809cb94 field_control_avatar.s SetCableClubWarp +event_data.s +0809cbd8 event_data.s InitEventData +0809cc1c event_data.s ClearTempFieldEventData +0809cc78 event_data.s ClearDailyFlags +0809cc98 event_data.s DisableNationalPokedex +0809ccc0 event_data.s EnableNationalPokedex +0809cd04 event_data.s IsNationalPokedexEnabled +0809cd48 event_data.s DisableMysteryEvent +0809cd58 event_data.s EnableMysteryEvent +0809cd68 event_data.s IsMysteryEventEnabled +0809cd7c event_data.s DisableMysteryGift +0809cd8c event_data.s EnableMysteryGift +0809cd9c event_data.s IsMysteryGiftEnabled +0809cdb0 event_data.s sub_0809CDB0 +0809ce48 event_data.s sub_0809CE48 +0809ceb0 event_data.s DisableResetRTC +0809cecc event_data.s EnableResetRTC +0809ceec event_data.s CanResetRTC +0809cf20 event_data.s GetVarPointer +0809cf6c event_data.s VarGet +0809cf88 event_data.s VarSet +0809cfa8 event_data.s VarGetEventObjectGraphicsId +0809cfc4 event_data.s GetFlagPointer +0809d018 event_data.s FlagSet +0809d040 event_data.s FlagClear +0809d068 event_data.s FlagGet +coord_event_weather.s +0809d094 coord_event_weather.s CoordEventWeather_Clouds +0809d0a0 coord_event_weather.s CoordEventWeather_Sunny +0809d0ac coord_event_weather.s CoordEventWeather_Dark +0809d0b8 coord_event_weather.s CoordEventWeather_Sandstorm +0809d0c4 coord_event_weather.s CoordEventWeather_Thunderstorm +0809d0d0 coord_event_weather.s CoordEventWeather_LightRain +0809d0dc coord_event_weather.s CoordEventWeather_Snow +0809d0e8 coord_event_weather.s CoordEventWeather_Ash +0809d0f4 coord_event_weather.s CoordEventWeather_Fog +0809d100 coord_event_weather.s CoordEventWeather_DiagonalFog +0809d10c coord_event_weather.s CoordEventWeather_Drought +0809d118 coord_event_weather.s CoordEventWeather_Route119Cycle +0809d124 coord_event_weather.s CoordEventWeather_Route123Cycle +0809d130 coord_event_weather.s DoCoordEventWeather +field_tasks.s +0809d164 field_tasks.s Task_RunPerStepCallback +0809d190 field_tasks.s RunTimeBasedEvents +0809d1e0 field_tasks.s Task_RunTimeBasedEvents +0809d214 field_tasks.s SetUpFieldTasks +0809d280 field_tasks.s ActivatePerStepCallback +0809d2c8 field_tasks.s ResetFieldTasksArgs +0809d304 field_tasks.s DummyPerStepCallback +0809d308 field_tasks.s GetPacifidlogBridgeMetatileOffsets +0809d360 field_tasks.s SetPacifidlogBridgeMetatiles +0809d3e8 field_tasks.s UpdateHalfSubmergedBridgeMetatiles +0809d40c field_tasks.s UpdateFullySubmergedBridgeMetatiles +0809d430 field_tasks.s UpdateFloatingBridgeMetatiles +0809d454 field_tasks.s StandingOnNewPacifidlogBridge +0809d4f0 field_tasks.s StandingOnSamePacifidlogBridge +0809d58c field_tasks.s PacifidlogBridgePerStepCallback +0809d700 field_tasks.s SetLoweredForetreeBridgeMetatile +0809d764 field_tasks.s SetNormalFortreeBridgeMetatile +0809d7c8 field_tasks.s FortreeBridgePerStepCallback +0809d9e0 field_tasks.s CoordInIcePuzzleRegion +0809da24 field_tasks.s MarkIcePuzzleCoordVisited +0809da5c field_tasks.s IsIcePuzzleCoordVisited +0809daa0 field_tasks.s SetSootopolisGymCrackedIceMetatiles +0809dafc field_tasks.s SootopolisGymIcePerStepCallback +0809dc8c field_tasks.s AshGrassPerStepCallback +0809dd68 field_tasks.s SetCrackedFloorHoleMetatile +0809dda4 field_tasks.s CrackedFloorPerStepCallback +0809deb4 field_tasks.s SetMuddySlopeMetatile +0809df10 field_tasks.s Task_MuddySlope +clock.s +0809e050 clock.s InitTimeBasedEvents +0809e088 clock.s DoTimeBasedEvents +0809e0c0 clock.s UpdatePerDay +0809e130 clock.s UpdatePerMinute +0809e18c clock.s ReturnFromStartWallClock +0809e1a0 clock.s StartWallClock +reset_rtc_screen.s +0809e1c0 reset_rtc_screen.s SpriteCB_ResetRtcCursor0 +0809e2dc reset_rtc_screen.s SpriteCB_ResetRtcCursor1 +0809e3dc reset_rtc_screen.s CreateCursor +0809e464 reset_rtc_screen.s FreeCursorPalette +0809e478 reset_rtc_screen.s HideChooseTimeWindow +0809e49c reset_rtc_screen.s PrintTime +0809e58c reset_rtc_screen.s ShowChooseTimeWindow +0809e610 reset_rtc_screen.s MoveTimeUpDown +0809e678 reset_rtc_screen.s Task_ResetRtc_3 +0809e690 reset_rtc_screen.s Task_ResetRtc_2 +0809e6c0 reset_rtc_screen.s Task_ResetRtc_1 +0809e7d8 reset_rtc_screen.s Task_ResetRtc_0 +0809e860 reset_rtc_screen.s CB2_InitResetRtcScreen +0809e920 reset_rtc_screen.s sub_0809E920_jp +0809e968 reset_rtc_screen.s CB2_ResetRtcScreen +0809e984 reset_rtc_screen.s sub_0809E984 +0809e998 reset_rtc_screen.s ShowMessage +0809e9d0 reset_rtc_screen.s Task_ShowResetRtcPrompt +0809ead8 reset_rtc_screen.s Task_ResetRtcScreen +start_menu.s +0809ecf4 start_menu.s SetDexPokemonPokenavFlags +0809ed18 start_menu.s BuildStartMenuActions +0809ed88 start_menu.s AddStartMenuAction +0809eda4 start_menu.s BuildNormalStartMenu +0809ee10 start_menu.s BuildSafariZoneStartMenu +0809ee40 start_menu.s BuildLinkModeStartMenu +0809ee7c start_menu.s BuildUnionRoomStartMenu +0809eeb8 start_menu.s BuildBattlePikeStartMenu +0809eedc start_menu.s BuildBattlePyramidStartMenu +0809ef0c start_menu.s BuildMultiBattleRoomStartMenu +0809ef2c start_menu.s ShowSafariBallsWindow +0809efa0 start_menu.s ShowPyramidFloorWindow +0809f04c start_menu.s RemoveExtraStartMenuWindows +0809f098 start_menu.s PrintStartMenuActions +0809f16c start_menu.s InitStartMenuStep +0809f270 start_menu.s InitStartMenu +0809f28c start_menu.s StartMenuTask +0809f2a8 start_menu.s CreateStartMenuTask +0809f2d8 start_menu.s sub_0809F2D8_jp +0809f2f0 start_menu.s sub_0809F2F0_jp +0809f30c start_menu.s sub_0809F30C_jp +0809f374 start_menu.s ShowStartMenu +0809f39c start_menu.s HandleStartMenuInput +0809f48c start_menu.s StartMenuPokedexCallback +0809f4c8 start_menu.s StartMenuPokemonCallback +0809f4fc start_menu.s StartMenuBagCallback +0809f530 start_menu.s StartMenuPokeNavCallback +0809f564 start_menu.s StartMenuPlayerNameCallback +0809f5d4 start_menu.s StartMenuSaveCallback +0809f5f8 start_menu.s StartMenuOptionCallback +0809f63c start_menu.s StartMenuExitCallback +0809f64c start_menu.s StartMenuSafariZoneRetireCallback +0809f660 start_menu.s StartMenuLinkModePlayerNameCallback +0809f698 start_menu.s StartMenuBattlePyramidRetireCallback +0809f6ac start_menu.s sub_0809F6AC +0809f6cc start_menu.s StartMenuBattlePyramidBagCallback +0809f700 start_menu.s SaveStartCallback +0809f71c start_menu.s SaveCallback +0809f774 start_menu.s BattlePyramidRetireStartCallback +0809f790 start_menu.s BattlePyramidRetireReturnCallback +0809f7ac start_menu.s BattlePyramidRetireCallback +0809f800 start_menu.s InitSave +0809f824 start_menu.s RunSaveCallback +0809f858 start_menu.s SaveGame +0809f870 start_menu.s ShowSaveMessage +0809f8a8 start_menu.s SaveGameTask +0809f8ec start_menu.s sub_0809F8EC_jp +0809f8fc start_menu.s HideSaveInfoWindow +0809f908 start_menu.s SaveStartTimer +0809f914 start_menu.s SaveSuccesTimer +0809f948 start_menu.s SaveErrorTimer +0809f978 start_menu.s SaveConfirmSaveCallback +0809f9c4 start_menu.s SaveConfirmOverwriteCallback +0809f9e0 start_menu.s SaveConfirmInputCallback +0809fa54 start_menu.s SaveFileExistsCallback +0809fa8c start_menu.s BattlePyramidRetireYesNoCallback +0809faa8 start_menu.s SaveYesNoCallback +0809fac4 start_menu.s SaveOverwriteInputCallback +0809fb0c start_menu.s SaveSavingMessageCallback +0809fb24 start_menu.s SaveDoSaveCallback +0809fb88 start_menu.s SaveSuccessCallback +0809fbb0 start_menu.s SaveReturnSuccessCallback +0809fbd4 start_menu.s SaveErrorCallback +0809fbfc start_menu.s SaveReturnErrorCallback +0809fc18 start_menu.s InitBattlePyramidRetire +0809fc34 start_menu.s BattlePyramidConfirmRetireCallback +0809fc60 start_menu.s SaveConfirmOverwriteDefaultNoCallback +0809fc7c start_menu.s BattlePyramidRetireInputCallback +0809fcb0 start_menu.s sub_0809FCB0_jp +0809fcbc start_menu.s sub_0809FCBC_jp +0809fdec start_menu.s sub_0809FDEC_jp +0809fe18 start_menu.s sub_0809FE18_jp +0809fe28 start_menu.s sub_0809FE28_jp +0809ff8c start_menu.s ShowSaveInfoWindow +080a0150 start_menu.s RemoveSaveInfoWindow +080a016c start_menu.s sub_080A016C_jp +080a0194 start_menu.s sub_080A0194 +080a01dc start_menu.s HideStartMenuWindow +080a01fc start_menu.s HideStartMenu +080a020c start_menu.s AppendToList +tileset_anims.s +080a021c tileset_anims.s ResetTilesetAnimBuffer +080a0248 tileset_anims.s AppendTilesetAnimToBuffer +080a0298 tileset_anims.s TransferTilesetAnimsBuffer +080a02e0 tileset_anims.s InitTilesetAnimations +080a02f4 tileset_anims.s InitSecondaryTilesetAnimation +080a0300 tileset_anims.s UpdateTilesetAnimations +080a0370 tileset_anims.s _InitPrimaryTilesetAnimation +080a03ac tileset_anims.s _InitSecondaryTilesetAnimation +080a03e8 tileset_anims.s InitTilesetAnim_General +080a0410 tileset_anims.s InitTilesetAnim_Building +080a0438 tileset_anims.s TilesetAnim_General +080a047c tileset_anims.s TilesetAnim_Building +080a0494 tileset_anims.s QueueAnimTiles_General_Flower +080a04bc tileset_anims.s QueueAnimTiles_General_Water +080a04e4 tileset_anims.s QueueAnimTiles_General_SandWaterEdge +080a050c tileset_anims.s QueueAnimTiles_General_Waterfall +080a0534 tileset_anims.s InitTilesetAnim_Fallarbor +080a055c tileset_anims.s InitTilesetAnim_BattleFrontierOutsideEast +080a0588 tileset_anims.s InitTilesetAnim_BattleFrontierOutsideWest +080a05b4 tileset_anims.s InitTilesetAnim_BattlePyramid +080a05e0 tileset_anims.s InitTilesetAnim_Mauville +080a0610 tileset_anims.s InitTilesetAnim_BikeShop +080a063c tileset_anims.s InitTilesetAnim_Fortree +080a0664 tileset_anims.s InitTilesetAnim_Lilycove +080a068c tileset_anims.s InitTilesetAnim_Mossdeep +080a06b4 tileset_anims.s InitTilesetAnim_Petalburg +080a06dc tileset_anims.s InitTilesetAnim_Cave +080a0708 tileset_anims.s InitTilesetAnim_Pacifidlog +080a0738 tileset_anims.s InitTilesetAnim_Dewford +080a0764 tileset_anims.s InitTilesetAnim_EverGrande +080a0790 tileset_anims.s InitTilesetAnim_Lavaridge +080a07bc tileset_anims.s InitTilesetAnim_EliteFour +080a07e0 tileset_anims.s InitTilesetAnim_SootopolisGym +080a0804 tileset_anims.s InitTilesetAnim_MauvilleGym +080a0830 tileset_anims.s InitTilesetAnim_Underwater +080a0854 tileset_anims.s InitTilesetAnim_Rustboro +080a0880 tileset_anims.s InitTilesetAnim_Slateport +080a08ac tileset_anims.s InitTilesetAnim_Sootopolis +080a08d8 tileset_anims.s InitTilesetAnim_BattleDome +080a0904 tileset_anims.s TilesetAnim_Rustboro +080a0980 tileset_anims.s TilesetAnim_Dewford +080a0998 tileset_anims.s TilesetAnim_Slateport +080a09b0 tileset_anims.s TilesetAnim_Mauville +080a0a24 tileset_anims.s TilesetAnim_Lavaridge +080a0a50 tileset_anims.s TilesetAnim_EverGrande +080a0ac4 tileset_anims.s TilesetAnim_Pacifidlog +080a0af4 tileset_anims.s TilesetAnim_Sootopolis +080a0b0c tileset_anims.s TilesetAnim_Underwater +080a0b28 tileset_anims.s TilesetAnim_Cave +080a0b44 tileset_anims.s TilesetAnim_BattleFrontierOutsideWest +080a0b5c tileset_anims.s TilesetAnim_BattleFrontierOutsideEast +080a0b74 tileset_anims.s QueueAnimTiles_General_LandWaterEdge +080a0b9c tileset_anims.s QueueAnimTiles_Lavaridge_Steam +080a0be4 tileset_anims.s QueueAnimTiles_Pacifidlog_LogBridges +080a0c0c tileset_anims.s QueueAnimTiles_Underwater_Seaweed +080a0c34 tileset_anims.s QueueAnimTiles_Pacifidlog_WaterCurrents +080a0c5c tileset_anims.s QueueAnimTiles_Mauville_Flowers +080a0cfc tileset_anims.s QueueAnimTiles_Rustboro_WindyWater +080a0d38 tileset_anims.s QueueAnimTiles_Rustboro_Fountain +080a0d60 tileset_anims.s QueueAnimTiles_Lavaridge_Lava +080a0d88 tileset_anims.s QueueAnimTiles_EverGrande_Flowers +080a0dc0 tileset_anims.s QueueAnimTiles_Cave_Lava +080a0de8 tileset_anims.s QueueAnimTiles_Dewford_Flag +080a0e10 tileset_anims.s QueueAnimTiles_BattleFrontierOutsideWest_Flag +080a0e38 tileset_anims.s QueueAnimTiles_BattleFrontierOutsideEast_Flag +080a0e60 tileset_anims.s QueueAnimTiles_Slateport_Balloons +080a0e88 tileset_anims.s TilesetAnim_MauvilleGym +080a0ea0 tileset_anims.s TilesetAnim_SootopolisGym +080a0eb8 tileset_anims.s TilesetAnim_EliteFour +080a0ee4 tileset_anims.s TilesetAnim_BikeShop +080a0efc tileset_anims.s TilesetAnim_BattlePyramid +080a0f20 tileset_anims.s TilesetAnim_BattleDome +080a0f38 tileset_anims.s TilesetAnim_BattleDome2 +080a0f50 tileset_anims.s QueueAnimTiles_Building_TVTurnedOn +080a0f78 tileset_anims.s QueueAnimTiles_SootopolisGym_Waterfalls +080a0fc0 tileset_anims.s QueueAnimTiles_EliteFour_WallLights +080a0fe8 tileset_anims.s QueueAnimTiles_EliteFour_GroundLights +080a1010 tileset_anims.s QueueAnimTiles_MauvilleGym_ElectricGates +080a1038 tileset_anims.s QueueAnimTiles_BikeShop_BlinkingLights +080a1060 tileset_anims.s QueueAnimTiles_Sootopolis_StormyWater +080a1088 tileset_anims.s QueueAnimTiles_BattlePyramid_Torch +080a10b4 tileset_anims.s QueueAnimTiles_BattlePyramid_StatueShadow +080a10e0 tileset_anims.s BlendAnimPalette_BattleDome_FloorLights +080a114c tileset_anims.s BlendAnimPalette_BattleDome_FloorLightsNoBlend +palette.s +080a11bc palette.s LoadCompressedPalette +080a1200 palette.s LoadPalette +080a1238 palette.s FillPalette +080a1288 palette.s TransferPlttBuffer +080a12e4 palette.s UpdatePaletteFade +080a133c palette.s ResetPaletteFade +080a135c palette.s ReadPlttIntoBuffers +080a139c palette.s BeginNormalPaletteFade +080a14e4 palette.s unref_sub_80A1C1C +080a152c palette.s unref_sub_80A1C64 +080a15a4 palette.s unused_sub_80A1CDC +080a1708 palette.s unused_sub_80A1E40 +080a17c8 palette.s unused_sub_80A1F00 +080a1820 palette.s ResetPaletteStructByUid +080a183c palette.s ResetPaletteStruct +080a1898 palette.s ResetPaletteFadeControl +080a1910 palette.s unref_sub_80A2048 +080a193c palette.s unref_sub_80A2074 +080a196c palette.s GetPaletteNumByUid +080a19a0 palette.s UpdateNormalPaletteFade +080a1ae0 palette.s InvertPlttBuffer +080a1b28 palette.s TintPlttBuffer +080a1bfc palette.s UnfadePlttBuffer +080a1c58 palette.s BeginFastPaletteFade +080a1c7c palette.s BeginFastPaletteFadeInternal +080a1d00 palette.s UpdateFastPaletteFade +080a2078 palette.s BeginHardwarePaletteFade +080a2114 palette.s UpdateHardwarePaletteFade +080a2230 palette.s UpdateBlendRegisters +080a2284 palette.s IsSoftwarePaletteFadeFinishing +080a22e8 palette.s BlendPalettes +080a2324 palette.s BlendPalettesUnfaded +080a2358 palette.s TintPalette_GrayScale +080a23a8 palette.s TintPalette_GrayScale2 +080a2408 palette.s TintPalette_SepiaTone +080a2474 palette.s TintPalette_CustomTone +080a250c palette.s sub_080A250C +080a25c0 palette.s sub_080A25C0_jp +080a25fc palette.s sub_080A25FC_jp +080a2604 palette.s sub_080a2604 +080a261c palette.s sub_080A261C_jp +sound.s +080a269c sound.s InitMapMusic +080a26b0 sound.s MapMusicMain +080a27a8 sound.s ResetMapMusic +080a27cc sound.s GetCurrentMapMusic +080a27d8 sound.s PlayNewMapMusic +080a27f8 sound.s StopMapMusic +080a2818 sound.s FadeOutMapMusic +080a2850 sound.s FadeOutAndPlayNewMapMusic +080a2884 sound.s FadeOutAndFadeInNewMapMusic +080a28c8 sound.s FadeInNewMapMusic +080a2904 sound.s IsNotWaitingForBGMStop +080a2928 sound.s PlayFanfareByFanfareNum +080a295c sound.s WaitFanfare +080a2994 sound.s StopFanfareByFanfareNum +080a29ac sound.s PlayFanfare +080a29e8 sound.s IsFanfareTaskInactive +080a2a08 sound.s Task_Fanfare +080a2a38 sound.s CreateFanfareTask +080a2a5c sound.s FadeInNewBGM +080a2ab0 sound.s FadeInBGM +080a2ac8 sound.s IsBGMPausedOrStopped +080a2af0 sound.s FadeOutBGM +080a2b08 sound.s FadeOutBGMTemporarily +080a2b20 sound.s IsBGMStopped +080a2b3c sound.s PlayCry1 +080a2b88 sound.s PlayCry2 +080a2bac sound.s PlayCry3 +080a2c0c sound.s PlayCry4 +080a2c70 sound.s PlayCry6 +080a2ccc sound.s PlayCry5 +080a2d14 sound.s PlayCryInternal +080a2f40 sound.s IsCryFinished +080a2f64 sound.s StopCryAndClearCrySongs +080a2f7c sound.s StopCry +080a2f90 sound.s IsCryPlayingOrClearCrySongs +080a2fb4 sound.s IsCryPlaying +080a2fd4 sound.s Task_DuckBGMForPokemonCry +080a301c sound.s RestoreBGMVolumeAfterPokemonCry +080a3040 sound.s PlayBGM +080a306c sound.s PlaySE +080a307c sound.s PlaySE12WithPanning +080a30d0 sound.s PlaySE1WithPanning +080a3104 sound.s PlaySE2WithPanning +080a3138 sound.s SE12PanpotControl +080a3168 sound.s IsSEPlaying +080a31ac sound.s IsBGMPlaying +080a31d4 sound.s IsSpecialSEPlaying +battle_anim.s +080a31fc battle_anim.s ClearBattleAnimationVars +080a32d8 battle_anim.s DoMoveAnim +080a3310 battle_anim.s LaunchBattleAnimation +080a34c4 battle_anim.s DestroyAnimSprite +080a34e4 battle_anim.s DestroyAnimVisualTask +080a3500 battle_anim.s DestroyAnimSoundTask +080a351c battle_anim.s AddSpriteIndex +080a354c battle_anim.s ClearSpriteIndex +080a3580 battle_anim.s WaitAnimFrameCount +080a35ac battle_anim.s ScriptCmd_hang1 +080a35c0 battle_anim.s RunAnimScriptCommand +080a35ec battle_anim.s ScriptCmd_loadspritegfx +080a3654 battle_anim.s ScriptCmd_unloadspritegfx +080a36a0 battle_anim.s ScriptCmd_createsprite +080a3794 battle_anim.s ScriptCmd_createvisualtask +080a3810 battle_anim.s ScriptCmd_delay +080a3850 battle_anim.s ScriptCmd_waitbgfadein +080a3884 battle_anim.s ScriptCmd_hang2 +080a3888 battle_anim.s ScriptCmd_stopsound +080a388c battle_anim.s ScriptCmd_end +080a3994 battle_anim.s ScriptCmd_playse +080a39bc battle_anim.s sub_080A39BC +080a3aa0 battle_anim.s ScriptCmd_monbg +080a3bd8 battle_anim.s IsBattlerSpriteVisible +080a3c54 battle_anim.s MoveBattlerSpriteToBG +080a3f68 battle_anim.s sub_080A3F68 +080a3fe8 battle_anim.s sub_080A3FE8_jp +080a4044 battle_anim.s sub_080A4044 +080a40a0 battle_anim.s task_pA_ma0A_obj_to_bg_pal +080a4178 battle_anim.s ScriptCmd_clearmonbg +080a4248 battle_anim.s sub_080A4248 +080a42e0 battle_anim.s ScriptCmd_monbg_22 +080a43a4 battle_anim.s ScriptCmd_clearmonbg_23 +080a4478 battle_anim.s sub_080A4478 +080a4510 battle_anim.s ScriptCmd_setalpha +080a4548 battle_anim.s ScriptCmd_setbldcnt +080a4570 battle_anim.s ScriptCmd_blendoff +080a4594 battle_anim.s ScriptCmd_call +080a45c8 battle_anim.s ScriptCmd_return +080a45dc battle_anim.s ScriptCmd_setarg +080a4610 battle_anim.s ScriptCmd_choosetwoturnanim +080a4650 battle_anim.s ScriptCmd_jumpifmoveturn +080a4694 battle_anim.s ScriptCmd_goto +080a46b8 battle_anim.s IsContest +080a46e0 battle_anim.s ScriptCmd_fadetobg +080a4724 battle_anim.s ScriptCmd_fadetobgfromset +080a47bc battle_anim.s Task_FadeToBg +080a4890 battle_anim.s LoadMoveBg +080a4958 battle_anim.s LoadDefaultBg +080a4974 battle_anim.s ScriptCmd_restorebg +080a49b8 battle_anim.s ScriptCmd_waitbgfadeout +080a49ec battle_anim.s ScriptCmd_waitforvisualfinish +080a4a20 battle_anim.s ScriptCmd_changebg +080a4a40 battle_anim.s BattleAnimAdjustPanning +080a4b40 battle_anim.s BattleAnimAdjustPanning2 +080a4bb4 battle_anim.s KeepPanInRange +080a4bdc battle_anim.s CalculatePanIncrement +080a4c1c battle_anim.s ScriptCmd_playsewithpan +080a4c54 battle_anim.s ScriptCmd_setpan +080a4c80 battle_anim.s ScriptCmd_panse_1B +080a4d40 battle_anim.s Task_PanFromInitialToTarget +080a4dd0 battle_anim.s ScriptCmd_panse_26 +080a4e64 battle_anim.s ScriptCmd_panse_27 +080a4f24 battle_anim.s ScriptCmd_loopsewithpan +080a4fac battle_anim.s Task_LoopAndPlaySE +080a5008 battle_anim.s ScriptCmd_waitplaysewithpan +080a507c battle_anim.s Task_WaitAndPlaySE +080a50c0 battle_anim.s ScriptCmd_createsoundtask +080a5134 battle_anim.s ScriptCmd_waitsound +080a51b8 battle_anim.s ScriptCmd_jumpargeq +080a520c battle_anim.s ScriptCmd_jumpifcontest +080a524c battle_anim.s ScriptCmd_monbgprio_28 +080a52a4 battle_anim.s ScriptCmd_monbgprio_29 +080a52d4 battle_anim.s ScriptCmd_monbgprio_2A +080a5348 battle_anim.s ScriptCmd_invisible +080a5384 battle_anim.s ScriptCmd_visible +080a53c4 battle_anim.s ScriptCmd_doublebattle_2D +080a5474 battle_anim.s ScriptCmd_doublebattle_2E +080a550c battle_anim.s sub_080A550C_jp +battle_anim_mons.s +080a5534 battle_anim_mons.s GetBattlerSpriteCoord +080a5680 battle_anim_mons.s GetBattlerYDelta +080a5868 battle_anim_mons.s GetBattlerElevation +080a58d4 battle_anim_mons.s GetBattlerSpriteFinal_Y +080a5974 battle_anim_mons.s GetBattlerSpriteCoord2 +080a5a00 battle_anim_mons.s GetBattlerSpriteDefault_Y +080a5a14 battle_anim_mons.s GetSubstituteSpriteDefault_Y +080a5a58 battle_anim_mons.s GetBattlerYCoordWithElevation +080a5b08 battle_anim_mons.s GetAnimBattlerSpriteId +080a5b9c battle_anim_mons.s StoreSpriteCallbackInData6 +080a5ba4 battle_anim_mons.s SetCallbackToStoredInData6 +080a5bb4 battle_anim_mons.s TranslateSpriteInCircleOverDuration +080a5c14 battle_anim_mons.s TranslateSpriteInGrowingCircleOverDuration +080a5c90 battle_anim_mons.s sub_080A5C90 +080a5d18 battle_anim_mons.s TranslateSpriteInEllipseOverDuration +080a5d78 battle_anim_mons.s WaitAnimForDuration +080a5d98 battle_anim_mons.s sub_080A5D98_jp +080a5db4 battle_anim_mons.s sub_080A5DB4_jp +080a5e04 battle_anim_mons.s TranslateSpriteLinear +080a5e34 battle_anim_mons.s TranslateSpriteLinearFixedPoint +080a5e70 battle_anim_mons.s TranslateSpriteLinearFixedPointIconFrame +080a5eb4 battle_anim_mons.s sub_080A5EB4 +080a5ef8 battle_anim_mons.s TranslateMonSpriteLinear +080a5f48 battle_anim_mons.s TranslateMonSpriteLinearFixedPoint +080a5fa4 battle_anim_mons.s TranslateSpriteLinearAndFlicker +080a6014 battle_anim_mons.s DestroySpriteAndMatrix +080a6028 battle_anim_mons.s sub_080A6028 +080a606c battle_anim_mons.s sub_080A606C +080a6084 battle_anim_mons.s RunStoredCallbackWhenAffineAnimEnds +080a60a0 battle_anim_mons.s RunStoredCallbackWhenAnimEnds +080a60bc battle_anim_mons.s DestroyAnimSpriteAndDisableBlend +080a60dc battle_anim_mons.s DestroyAnimVisualTaskAndDisableBlend +080a6100 battle_anim_mons.s SetSpriteCoordsToAnimAttackerCoords +080a612c battle_anim_mons.s SetAnimSpriteInitialXOffset +080a619c battle_anim_mons.s InitAnimArcTranslation +080a61c8 battle_anim_mons.s TranslateAnimHorizontalArc +080a61fc battle_anim_mons.s TranslateAnimVerticalArc +080a6230 battle_anim_mons.s SetSpritePrimaryCoordsFromSecondaryCoords +080a6248 battle_anim_mons.s InitSpritePosToAnimTarget +080a6294 battle_anim_mons.s InitSpritePosToAnimAttacker +080a62f8 battle_anim_mons.s GetBattlerSide +080a630c battle_anim_mons.s GetBattlerPosition +080a631c battle_anim_mons.s GetBattlerAtPosition +080a6358 battle_anim_mons.s IsBattlerSpritePresent +080a63e8 battle_anim_mons.s IsDoubleBattle +080a63f8 battle_anim_mons.s sub_080A63F8 +080a6458 battle_anim_mons.s sub_080A6458_jp +080a64c4 battle_anim_mons.s sub_080A64C4_jp +080a6530 battle_anim_mons.s sub_080A6530_jp +080a6588 battle_anim_mons.s AnimLoadCompressedBgGfx +080a65d8 battle_anim_mons.s InitAnimBgTilemapBuffer +080a6610 battle_anim_mons.s AnimLoadCompressedBgTilemap +080a6628 battle_anim_mons.s sub_080A6628 +080a665c battle_anim_mons.s sub_080A665C_jp +080a6674 battle_anim_mons.s sub_080A6674_jp +080a66b4 battle_anim_mons.s sub_080A66B4_jp +080a66dc battle_anim_mons.s InitSpriteDataForLinearTranslation +080a671c battle_anim_mons.s InitAnimLinearTranslation +080a67b4 battle_anim_mons.s InitAndRunAnimFastLinearTranslation +080a67dc battle_anim_mons.s sub_080A67DC_jp +080a6804 battle_anim_mons.s AnimTranslateLinear +080a6860 battle_anim_mons.s sub_080A6860 +080a687c battle_anim_mons.s sub_080A687C_jp +080a689c battle_anim_mons.s sub_080A689C_jp +080a68c8 battle_anim_mons.s sub_080A68C8_jp +080a68f0 battle_anim_mons.s InitAnimFastLinearTranslation +080a6988 battle_anim_mons.s StartAnimLinearTranslation +080a69b0 battle_anim_mons.s AnimFastTranslateLinear +080a6a0c battle_anim_mons.s sub_080A6A0C +080a6a28 battle_anim_mons.s InitAnimFastLinearTranslationWithSpeed +080a6a54 battle_anim_mons.s sub_080A6A54_jp +080a6a7c battle_anim_mons.s SetSpriteRotScale +080a6b00 battle_anim_mons.s sub_080A6B00 +080a6b38 battle_anim_mons.s PrepareBattlerSpriteForRotScale +080a6c0c battle_anim_mons.s ResetSpriteRotScale +080a6c68 battle_anim_mons.s SetBattlerSpriteYOffsetFromRotation +080a6ca8 battle_anim_mons.s TrySetSpriteRotScale +080a6d64 battle_anim_mons.s sub_080A6D64 +080a6da4 battle_anim_mons.s ArcTan2_ +080a6dbc battle_anim_mons.s ArcTan2Neg +080a6dd4 battle_anim_mons.s SetGreyscaleOrOriginalPalette +080a6e74 battle_anim_mons.s sub_080A6E74 +080a6f8c battle_anim_mons.s sub_080A6F8C_jp +080a7074 battle_anim_mons.s sub_080A7074 +080a707c battle_anim_mons.s GetBattlerAtPosition_ +080a7090 battle_anim_mons.s sub_080A7090 +080a70e8 battle_anim_mons.s TranslateAnimSpriteToTargetMonLocation +080a7174 battle_anim_mons.s sub_080A7174 +080a71e4 battle_anim_mons.s sub_080A71E4_jp +080a7200 battle_anim_mons.s sub_080A7200 +080a72b0 battle_anim_mons.s CloneBattlerSpriteWithBlend +080a7324 battle_anim_mons.s obj_delete_but_dont_free_vram +080a733c battle_anim_mons.s sub_080A733C +080a73c4 battle_anim_mons.s sub_080A73C4 +080a7460 battle_anim_mons.s AnimTask_BlendMonInAndOut +080a74bc battle_anim_mons.s AnimTask_BlendMonInAndOutSetup +080a74e4 battle_anim_mons.s AnimTask_BlendMonInAndOutStep +080a757c battle_anim_mons.s sub_080A757C +080a75c4 battle_anim_mons.s PrepareAffineAnimInTaskData +080a75fc battle_anim_mons.s RunAffineAnimFromTaskData +080a7734 battle_anim_mons.s SetBattlerSpriteYOffsetFromYScale +080a7788 battle_anim_mons.s SetBattlerSpriteYOffsetFromOtherYScale +080a77e0 battle_anim_mons.s GetBattlerYDeltaFromSpriteId +080a7910 battle_anim_mons.s StorePointerInVars +080a7918 battle_anim_mons.s LoadPointerFromVars +080a7924 battle_anim_mons.s sub_080A7924 +080a7990 battle_anim_mons.s sub_080A7990 +080a7a08 battle_anim_mons.s AnimTask_GetFrustrationPowerLevel +080a7a3c battle_anim_mons.s sub_080A7A3C +080a7b40 battle_anim_mons.s sub_080A7B40 +080a7bac battle_anim_mons.s GetBattlerSpriteSubpriority +080a7bf0 battle_anim_mons.s GetBattlerSpriteBGPriority +080a7c2c battle_anim_mons.s GetBattlerSpriteBGPriorityRank +080a7c5c battle_anim_mons.s sub_080A7C5C_jp +080a7ed8 battle_anim_mons.s DestroySpriteAndFreeResources_ +080a7ee4 battle_anim_mons.s GetBattlerSpriteCoordAttr +080a81ec battle_anim_mons.s SetAverageBattlerPositions +080a8290 battle_anim_mons.s sub_080A8290 +080a8334 battle_anim_mons.s sub_080A8334_jp +080a83b4 battle_anim_mons.s sub_080A83B4_jp +080a842c battle_anim_mons.s sub_080A842C_jp +080a848c battle_anim_mons.s sub_080A848C_jp +080a8574 battle_anim_mons.s sub_080A8574_jp +080a8640 battle_anim_mons.s sub_080A8640_jp +080a86c4 battle_anim_mons.s sub_080A86C4_jp +080a86f8 battle_anim_mons.s sub_080A86F8_jp +080a8750 battle_anim_mons.s sub_080A8750_jp +080a87ac battle_anim_mons.s sub_080A87AC_jp +task.s +080a8818 task.s ResetTasks +080a8878 task.s CreateTask +080a88cc task.s InsertTask +080a8964 task.s DestroyTask +080a89d4 task.s RunTasks +080a8a04 task.s FindFirstActiveTask +080a8a40 task.s TaskDummy +080a8a44 task.s SetTaskFuncWithFollowupFunc +080a8a78 task.s SwitchTaskToFollowupFunc +080a8aac task.s FuncIsActiveTask +080a8ae4 task.s FindTaskIdByFunc +080a8b14 task.s GetTaskCount +080a8b44 task.s SetWordTaskArg +080a8b7c task.s GetWordTaskArg +reshow_battle_screen.s +080a8bbc reshow_battle_screen.s nullsub_35 +080a8bc0 reshow_battle_screen.s ReshowBattleScreenAfterMenu +080a8c04 reshow_battle_screen.s CB2_ReshowBattleScreenAfterMenu +080a8ebc reshow_battle_screen.s sub_080A8EBC +080a8edc reshow_battle_screen.s LoadBattlerSpriteGfx +080a8fd0 reshow_battle_screen.s CreateBattlerSprite +080a93a4 reshow_battle_screen.s CreateHealthboxSprite +battle_anim_status_effects.s +080a9538 battle_anim_status_effects.s sub_080A9538_jp +080a967c battle_anim_status_effects.s sub_080A967C_jp +080a970c battle_anim_status_effects.s sub_080A970C_jp +080a9740 battle_anim_status_effects.s sub_080A9740_jp +080a97bc battle_anim_status_effects.s sub_080A97BC_jp +080a9898 battle_anim_status_effects.s sub_080A9898_jp +080a98e8 battle_anim_status_effects.s sub_080A98E8_jp +080a9998 battle_anim_status_effects.s sub_080A9998_jp +080a99ec battle_anim_status_effects.s sub_080A99EC_jp +080a9a54 battle_anim_status_effects.s AnimTask_StatsChange +080a9c2c battle_anim_status_effects.s LaunchStatusAnimation +080a9c7c battle_anim_status_effects.s Task_DoStatusAnimation +080a9c8c battle_anim_status_effects.s sub_080A9C8C +title_screen.s +080a9cd4 title_screen.s SpriteCB_VersionBannerLeft +080a9d3c title_screen.s SpriteCB_VersionBannerRight +080a9d7c title_screen.s SpriteCB_PressStartCopyrightBanner +080a9db4 title_screen.s CreatePressStartBanner +080a9e10 title_screen.s CreateCopyrightBanner +080a9e6c title_screen.s SpriteCB_PokemonLogoShine +080a9f1c title_screen.s SpriteCB_PokemonLogoShine2 +080a9f44 title_screen.s StartPokemonLogoShine +080aa048 title_screen.s CB2_GoToClearSaveDataScreen +080aa06c title_screen.s CB2_InitTitleScreen +080aa400 title_screen.s CB2_GoToCopyrightScreen +080aa418 title_screen.s Task_TitleScreenPhase1 +080aa528 title_screen.s Task_TitleScreenPhase2 +080aa650 title_screen.s Task_TitleScreenPhase3 +080aa7b4 title_screen.s CB2_GoToMainMenu +080aa7d0 title_screen.s CB2_GoToResetRtcScreen +080aa7ec title_screen.s sub_080AA7EC +080aa808 title_screen.s sub_080AA808 +080aa824 title_screen.s CB2_GoToBerryFixScreen +080aa844 title_screen.s UpdateLegendaryMarkingColor +field_weather.s +080aa8a0 field_weather.s StartWeather +080aa994 field_weather.s SetNextWeather +080aaa00 field_weather.s SetCurrentAndNextWeather +080aaa2c field_weather.s SetCurrentAndNextWeatherNoDelay +080aaa5c field_weather.s Task_WeatherInit +080aaaac field_weather.s Task_WeatherMain +080aab4c field_weather.s None_Main +080aab68 field_weather.s None_Init +080aab88 field_weather.s SetWeatherScreenFadeOut +080aab8c field_weather.s None_Finish +080aab90 field_weather.s BuildGammaShiftTables +080aaca4 field_weather.s UpdateWeatherGammaShift +080aad30 field_weather.s FadeInScreenWithWeather +080aae48 field_weather.s FadeInScreen_RainShowShade +080aaea8 field_weather.s FadeInScreen_Drought +080aaf00 field_weather.s FadeInScreen_Fog1 +080aaf3c field_weather.s DoNothing +080aaf40 field_weather.s ApplyGammaShift +080ab144 field_weather.s ApplyGammaShiftWithBlend +080ab28c field_weather.s ApplyDroughtGammaShiftWithBlend +080ab3ac field_weather.s ApplyFogBlend +080ab4c8 field_weather.s MarkFogSpritePalToLighten +080ab4fc field_weather.s LightenSpritePaletteInFog +080ab544 field_weather.s sub_080AB544 +080ab578 field_weather.s sub_080AB578 +080ab5cc field_weather.s FadeScreen +080ab6f8 field_weather.s IsWeatherNotFadingIn +080ab714 field_weather.s UpdateSpritePaletteWithWeather +080ab7fc field_weather.s ApplyWeatherGammaShiftToPal +080ab81c field_weather.s sub_080AB81C_jp +080ab848 field_weather.s LoadCustomWeatherSpritePalette +080ab878 field_weather.s LoadDroughtWeatherPalette +080ab880 field_weather.s ResetDroughtWeatherPaletteLoading +080ab8a0 field_weather.s LoadDroughtWeatherPalettes +080ab8dc field_weather.s sub_080AB8DC +080ab8ec field_weather.s sub_080AB8EC_jp +080ab918 field_weather.s sub_080AB918 +080aba20 field_weather.s Weather_SetBlendCoeffs +080aba60 field_weather.s Weather_SetTargetBlendCoeffs +080abaa4 field_weather.s Weather_UpdateBlend +080abb70 field_weather.s sub_080ABB70_jp +080abc08 field_weather.s GetCurrentWeather +080abc18 field_weather.s SetRainStrengthFromSoundEffect +080abc74 field_weather.s PlayRainStoppingSoundEffect +080abcb8 field_weather.s IsWeatherChangeComplete +080abccc field_weather.s sub_080ABCCC_jp +080abce0 field_weather.s sub_080ABCE0 +080abcf4 field_weather.s PreservePaletteInWeather +080abd24 field_weather.s ResetPreservedPalettesInWeather +field_weather_effect.s +080abd34 field_weather_effect.s Clouds_InitVars +080abd80 field_weather_effect.s Clouds_InitAll +080abdb0 field_weather_effect.s Clouds_Main +080abe10 field_weather_effect.s Clouds_Finish +080abe58 field_weather_effect.s Sunny_InitVars +080abe7c field_weather_effect.s Sunny_InitAll +080abe88 field_weather_effect.s Sunny_Main +080abe8c field_weather_effect.s Shade_Finish +080abe90 field_weather_effect.s CreateCloudSprites +080abf5c field_weather_effect.s DestroyCloudSprites +080abfb0 field_weather_effect.s UpdateCloudSprite +080abfcc field_weather_effect.s Drought_InitVars +080ac000 field_weather_effect.s Drought_InitAll +080ac030 field_weather_effect.s Drought_Main +080ac114 field_weather_effect.s Sunny_Finish +080ac118 field_weather_effect.s StartDroughtWeatherBlend +080ac12c field_weather_effect.s UpdateDroughtBlend +080ac224 field_weather_effect.s LightRain_InitVars +080ac290 field_weather_effect.s LightRain_InitAll +080ac2c0 field_weather_effect.s LightRain_Main +080ac320 field_weather_effect.s LightRain_Finish +080ac3ac field_weather_effect.s StartRainSpriteFall +080ac480 field_weather_effect.s UpdateRainSprite +080ac584 field_weather_effect.s WaitRainSprite +080ac5b0 field_weather_effect.s InitRainSpriteMovement +080ac664 field_weather_effect.s LoadRainSpriteSheet +080ac674 field_weather_effect.s CreateRainSprite +080ac7a8 field_weather_effect.s UpdateVisibleRainSprites +080ac834 field_weather_effect.s DestroyRainSprites +080ac888 field_weather_effect.s Snow_InitVars +080ac8d8 field_weather_effect.s Snow_InitAll +080ac944 field_weather_effect.s Snow_Main +080ac980 field_weather_effect.s Snow_Finish +080ac9e4 field_weather_effect.s UpdateVisibleSnowflakeSprites +080aca60 field_weather_effect.s CreateSnowflakeSprite +080acacc field_weather_effect.s DestroySnowflakeSprite +080acb00 field_weather_effect.s InitSnowflakeSpriteMovement +080acbac field_weather_effect.s WaitSnowflakeSprite +080acc08 field_weather_effect.s UpdateSnowflakeSprite +080acd40 field_weather_effect.s MedRain_InitVars +080acdb4 field_weather_effect.s MedRain_InitAll +080acde4 field_weather_effect.s HeavyRain_InitVars +080ace50 field_weather_effect.s HeavyRain_InitAll +080ace80 field_weather_effect.s Rain_Main +080ad20c field_weather_effect.s Rain_Finish +080ad2b8 field_weather_effect.s SetThunderCounter +080ad2f4 field_weather_effect.s UpdateThunderSound +080ad35c field_weather_effect.s Fog1_InitVars +080ad3bc field_weather_effect.s Fog1_InitAll +080ad3ec field_weather_effect.s Fog1_Main +080ad4ac field_weather_effect.s Fog1_Finish +080ad548 field_weather_effect.s Fog1SpriteCallback +080ad5a8 field_weather_effect.s CreateFog1Sprites +080ad664 field_weather_effect.s DestroyFog1Sprites +080ad6b8 field_weather_effect.s Ash_InitVars +080ad714 field_weather_effect.s Ash_InitAll +080ad744 field_weather_effect.s Ash_Main +080ad7f0 field_weather_effect.s Ash_Finish +080ad858 field_weather_effect.s LoadAshSpriteSheet +080ad868 field_weather_effect.s CreateAshSprites +080ad910 field_weather_effect.s DestroyAshSprites +080ad964 field_weather_effect.s UpdateAshSprite +080ad9e0 field_weather_effect.s Fog2_InitVars +080ada64 field_weather_effect.s Fog2_InitAll +080ada94 field_weather_effect.s Fog2_Main +080adaf8 field_weather_effect.s Fog2_Finish +080adb58 field_weather_effect.s UpdateFog2Movement +080adbec field_weather_effect.s CreateFog2Sprites +080adca4 field_weather_effect.s DestroyFog2Sprites +080adcf8 field_weather_effect.s UpdateFog2Sprite +080add58 field_weather_effect.s Sandstorm_InitVars +080addd8 field_weather_effect.s Sandstorm_InitAll +080ade08 field_weather_effect.s Sandstorm_Main +080ade84 field_weather_effect.s Sandstorm_Finish +080adee8 field_weather_effect.s UpdateSandstormWaveIndex +080adf20 field_weather_effect.s UpdateSandstormMovement +080adfa0 field_weather_effect.s DestroySandstormSprites +080ae034 field_weather_effect.s CreateSandstormSprites +080ae0f4 field_weather_effect.s CreateSwirlSandstormSprites +080ae1f4 field_weather_effect.s UpdateSandstormSprite +080ae254 field_weather_effect.s WaitSandSwirlSpriteEntrance +080ae278 field_weather_effect.s UpdateSandstormSwirlSprite +080ae2ec field_weather_effect.s Shade_InitVars +080ae31c field_weather_effect.s Shade_InitAll +080ae328 field_weather_effect.s Shade_Main +080ae32c field_weather_effect.s Drought_Finish +080ae330 field_weather_effect.s Bubbles_InitVars +080ae384 field_weather_effect.s Bubbles_InitAll +080ae3b4 field_weather_effect.s Bubbles_Main +080ae428 field_weather_effect.s Bubbles_Finish +080ae444 field_weather_effect.s CreateBubbleSprite +080ae4cc field_weather_effect.s DestroyBubbleSprites +080ae530 field_weather_effect.s UpdateBubbleSprite +080ae590 field_weather_effect.s UnusedSetCurrentAlternatingWeather +080ae5a4 field_weather_effect.s Task_DoAlternatingWeather +080ae624 field_weather_effect.s CreateAlternatingWeatherTask +080ae678 field_weather_effect.s SetSav1Weather +080ae6a8 field_weather_effect.s GetSav1Weather +080ae6b8 field_weather_effect.s SetSav1WeatherFromCurrMapHeader +080ae6ec field_weather_effect.s SetWeather +080ae704 field_weather_effect.s SetWeather_Unused +080ae71c field_weather_effect.s DoCurrentWeather +080ae780 field_weather_effect.s ResumePausedWeather +080ae7e4 field_weather_effect.s TranslateWeatherNum +080ae8b8 field_weather_effect.s UpdateWeatherPerDay +080ae8d8 field_weather_effect.s UpdateRainCounter +field_screen_effect.s +080ae8f8 field_screen_effect.s palette_bg_faded_fill_white +080ae91c field_screen_effect.s palette_bg_faded_fill_black +080ae93c field_screen_effect.s pal_fill_for_maplights +080ae988 field_screen_effect.s sub_080AE988 +080ae99c field_screen_effect.s pal_fill_black +080ae9b0 field_screen_effect.s WarpFadeScreen +080ae9f0 field_screen_effect.s sub_080AE9F0_jp +080aea08 field_screen_effect.s task0A_nop_for_a_while +080aea24 field_screen_effect.s sub_080AEA24_jp +080aea44 field_screen_effect.s task0A_asap_script_env_2_enable_and_set_ctx_running +080aea64 field_screen_effect.s FieldCallback_ReturnToEventScript2 +080aea84 field_screen_effect.s sub_080AEA84_jp +080aeaa0 field_screen_effect.s task_mpl_807DD60 +080aeb10 field_screen_effect.s sub_080AEB10_jp +080aeb30 field_screen_effect.s sub_080AEB30_jp +080aebb0 field_screen_effect.s sub_080AEBB0_jp +080aec10 field_screen_effect.s sub_080AEC10_jp +080aec30 field_screen_effect.s sub_080AEC30_jp +080aec94 field_screen_effect.s mapldr_default +080aecac field_screen_effect.s sub_080AECAC_jp +080aecc4 field_screen_effect.s sub_080AECC4_jp +080aece4 field_screen_effect.s sub_080AECE4_jp +080aed08 field_screen_effect.s sub_080AED08_jp +080aed34 field_screen_effect.s sub_080AED34_jp +080aee4c field_screen_effect.s task_map_chg_seq_0807E20C +080aef0c field_screen_effect.s task_map_chg_seq_0807E2CC +080aef5c field_screen_effect.s sub_080AEF5C_jp +080aef84 field_screen_effect.s sub_080AEF84_jp +080aefa0 field_screen_effect.s sub_080AEFA0_jp +080aefac field_screen_effect.s task_mpl_807E3C8 +080aefd0 field_screen_effect.s sub_080AEFD0_jp +080aefec field_screen_effect.s sub_080AEFEC_jp +080af00c field_screen_effect.s PaletteFadeActive +080af018 field_screen_effect.s WaitForWeatherFadeIn +080af030 field_screen_effect.s DoWarp +080af068 field_screen_effect.s DoDiveWarp +080af098 field_screen_effect.s sub_080AF098 +080af0cc field_screen_effect.s DoDoorWarp +080af0f0 field_screen_effect.s DoFallWarp +080af108 field_screen_effect.s sub_080AF108_jp +080af124 field_screen_effect.s sub_080AF124_jp +080af134 field_screen_effect.s sub_080AF134_jp +080af144 field_screen_effect.s sub_080AF144_jp +080af178 field_screen_effect.s sub_080AF178_jp +080af1b4 field_screen_effect.s sub_080AF1B4_jp +080af1dc field_screen_effect.s sub_080AF1DC_jp +080af244 field_screen_effect.s sub_080AF244_jp +080af268 field_screen_effect.s Task_ReturnToWorldFromLinkRoom +080af2f4 field_screen_effect.s sub_080AF2F4_jp +080af308 field_screen_effect.s sub_080AF308_jp +080af384 field_screen_effect.s sub_080AF384_jp +080af4f0 field_screen_effect.s task0A_fade_n_map_maybe +080af55c field_screen_effect.s sub_080AF55C_jp +080af594 field_screen_effect.s SetFlashScanlineEffectWindowBoundary +080af5c0 field_screen_effect.s SetFlashScanlineEffectWindowBoundaries +080af64c field_screen_effect.s SetFlash2ScanlineEffectWindowBoundary +080af678 field_screen_effect.s SetFlash2ScanlineEffectWindowBoundaries +080af704 field_screen_effect.s UpdateFlashLevelEffect +080af7c8 field_screen_effect.s UpdateFlash2LevelEffect +080af88c field_screen_effect.s sub_080AF88C_jp +080af8b4 field_screen_effect.s sub_080AF8B4_jp +080af8d8 field_screen_effect.s sub_080AF8D8_jp +080af938 field_screen_effect.s sub_080AF938_jp +080af998 field_screen_effect.s sub_080AF998 +080af9e4 field_screen_effect.s WriteFlashScanlineEffectBuffer +080afa20 field_screen_effect.s WriteBattlePyramidViewScanlineEffectBuffer +080afa5c field_screen_effect.s task0A_mpl_807E31C +080afab8 field_screen_effect.s sub_080AFAB8_jp +080afb40 field_screen_effect.s sub_080AFB40_jp +080afb64 field_screen_effect.s sub_080AFB64_jp +080afb88 field_screen_effect.s sub_080AFB88_jp +080afbc4 field_screen_effect.s sub_080AFBC4_jp +080afc14 field_screen_effect.s sub_080AFC14_jp +080afe30 field_screen_effect.s sub_080AFE30_jp +080afe88 field_screen_effect.s sub_080AFE88_jp +080afeb0 field_screen_effect.s sub_080AFEB0_jp +080afec8 field_screen_effect.s task50_0807F0C8 +battle_setup.s +080afeec battle_setup.s Task_BattleStart +080aff58 battle_setup.s CreateBattleStartTask +080aff94 battle_setup.s BattleSetup_StartWildBattle +080affac battle_setup.s BattleSetup_StartBattlePikeWildBattle +080affb8 battle_setup.s DoStandardWildBattle +080b0028 battle_setup.s BattleSetup_StartRoamerBattle +080b0078 battle_setup.s DoSafariBattle +080b00b0 battle_setup.s DoBattlePikeWildBattle +080b0100 battle_setup.s DoTrainerBattle +080b0124 battle_setup.s sub_080B0124_jp +080b0168 battle_setup.s StartWallyTutorialBattle +080b01a4 battle_setup.s BattleSetup_StartScriptedWildBattle +080b01e8 battle_setup.s BattleSetup_StartLatiBattle +080b0230 battle_setup.s BattleSetup_StartLegendaryBattle +080b0314 battle_setup.s StartGroudonKyogreBattle +080b0370 battle_setup.s StartRegiBattle +080b03f4 battle_setup.s CB2_EndWildBattle +080b0468 battle_setup.s CB2_EndScriptedWildBattle +080b04cc battle_setup.s BattleSetup_GetTerrainId +080b0620 battle_setup.s GetBattleTransitionTypeByMap +080b0684 battle_setup.s GetSumOfPlayerPartyLevel +080b06e4 battle_setup.s GetSumOfEnemyPartyLevel +080b07b8 battle_setup.s GetWildBattleTransition +080b0824 battle_setup.s GetTrainerBattleTransition +080b08f8 battle_setup.s sub_080B08F8_jp +080b0a24 battle_setup.s ChooseStarter +080b0a44 battle_setup.s CB2_GiveStarter +080b0a94 battle_setup.s CB2_StartFirstBattle +080b0af0 battle_setup.s CB2_EndFirstBattle +080b0b04 battle_setup.s sub_080B0B04_jp +080b0b20 battle_setup.s sub_080B0B20_jp +080b0b3c battle_setup.s TrainerBattleLoadArg32 +080b0b54 battle_setup.s TrainerBattleLoadArg16 +080b0b60 battle_setup.s TrainerBattleLoadArg8 +080b0b64 battle_setup.s GetTrainerBFlag +080b0b7c battle_setup.s GetTrainerAFlag +080b0b94 battle_setup.s IsPlayerDefeated +080b0bd4 battle_setup.s ResetTrainerOpponentIds +080b0be8 battle_setup.s InitTrainerBattleVariables +080b0c5c battle_setup.s TrainerBattleLoadArgs +080b0ce4 battle_setup.s SetMapVarsToTrainer +080b0d1c battle_setup.s BattleSetup_ConfigureTrainerBattle +080b0f18 battle_setup.s ConfigureAndSetUpOneTrainerBattle +080b0f5c battle_setup.s ConfigureTwoTrainersBattle +080b0f90 battle_setup.s SetUpTwoTrainersBattle +080b0fa4 battle_setup.s GetTrainerFlagFromScriptPointer +080b0fc4 battle_setup.s SetUpTrainerMovement +080b0ff8 battle_setup.s GetTrainerBattleMode +080b1004 battle_setup.s GetTrainerFlag +080b104c battle_setup.s SetBattledTrainersFlags +080b1078 battle_setup.s SetBattledTrainerFlag +080b108c battle_setup.s HasTrainerBeenFought +080b10a4 battle_setup.s ClearTrainerFlag +080b10b8 battle_setup.s SetTrainerFlag +080b10cc battle_setup.s BattleSetup_StartTrainerBattle +080b1204 battle_setup.s CB2_EndTrainerBattle +080b1280 battle_setup.s CB2_EndRematchBattle +080b12d8 battle_setup.s BattleSetup_StartRematchBattle +080b1300 battle_setup.s ShowTrainerIntroSpeech +080b13e4 battle_setup.s BattleSetup_GetScriptAddrAfterBattle +080b13fc battle_setup.s BattleSetup_GetTrainerPostBattleScript +080b144c battle_setup.s ShowTrainerCantBattleSpeech +080b145c battle_setup.s SetUpTrainerEncounterMusic +080b1558 battle_setup.s ReturnEmptyStringIfNull +080b1568 battle_setup.s GetIntroSpeechOfApproachingTrainer +080b1590 battle_setup.s GetTrainerALoseText +080b15cc battle_setup.s GetTrainerBLoseText +080b15f0 battle_setup.s GetTrainerWonSpeech +080b1604 battle_setup.s GetTrainerCantBattleSpeech +080b1618 battle_setup.s FirstBattleTrainerIdToRematchTableId +080b163c battle_setup.s TrainerIdToRematchTableId +080b1680 battle_setup.s sub_080B1680 +080b16a8 battle_setup.s SetRematchIdForTrainer +080b16e8 battle_setup.s UpdateRandomTrainerRematches +080b1780 battle_setup.s UpdateRematchIfDefeated +080b17ac battle_setup.s DoesSomeoneWantRematchIn_ +080b17f4 battle_setup.s IsRematchTrainerIn_ +080b1824 battle_setup.s IsFirstTrainerIdReadyForRematch +080b1860 battle_setup.s IsTrainerReadyForRematch_ +080b189c battle_setup.s GetRematchTrainerIdFromTable +080b18f0 battle_setup.s GetLastBeatenRematchTrainerIdFromTable +080b1948 battle_setup.s ClearTrainerWantRematchState +080b1978 battle_setup.s GetTrainerMatchCallFlag +080b19a8 battle_setup.s RegisterTrainerInMatchCall +080b19e0 battle_setup.s WasSecondRematchWon +080b1a14 battle_setup.s HasAtLeastFiveBadges +080b1a48 battle_setup.s IncrementRematchStepCounter +080b1a74 battle_setup.s IsRematchStepCounterMaxed +080b1aa0 battle_setup.s TryUpdateRandomTrainerRematches +080b1ae0 battle_setup.s DoesSomeoneWantRematchIn +080b1b00 battle_setup.s IsRematchTrainerIn +080b1b20 battle_setup.s GetRematchTrainerId +080b1b3c battle_setup.s GetLastBeatenRematchTrainerId +080b1b58 battle_setup.s ShouldTryRematchBattle +080b1b8c battle_setup.s IsTrainerReadyForRematch +080b1ba8 battle_setup.s HandleRematchVarsOnBattleEnd +080b1bc4 battle_setup.s ShouldTryGetTrainerScript +080b1c04 battle_setup.s CountBattledRematchTeams +cable_club.s +080b1c58 cable_club.s sub_080B1C58_jp +080b1c9c cable_club.s sub_080B1C9C_jp +080b1cf8 cable_club.s sub_080B1CF8_jp +080b1d18 cable_club.s sub_080B1D18_jp +080b1d54 cable_club.s sub_080B1D54_jp +080b1dd4 cable_club.s sub_080B1DD4_jp +080b1e08 cable_club.s sub_080B1E08_jp +080b1e54 cable_club.s sub_080B1E54_jp +080b1ea8 cable_club.s sub_080B1EA8_jp +080b1edc cable_club.s sub_080B1EDC_jp +080b1f10 cable_club.s sub_080B1F10_jp +080b1f64 cable_club.s sub_080B1F64_jp +080b1fe8 cable_club.s sub_080B1FE8_jp +080b2038 cable_club.s sub_080B2038_jp +080b20e0 cable_club.s sub_080B20E0_jp +080b2184 cable_club.s sub_080B2184_jp +080b21f4 cable_club.s sub_080B21F4_jp +080b22e4 cable_club.s sub_080B22E4_jp +080b23d0 cable_club.s sub_080B23D0_jp +080b2470 cable_club.s task_map_chg_seq_0807EC34 +080b250c cable_club.s sub_080B250C_jp +080b258c cable_club.s sub_080B258C_jp +080b25c8 cable_club.s sub_080B25C8_jp +080b2608 cable_club.s sub_080B2608_jp +080b2648 cable_club.s sub_080B2648_jp +080b2680 cable_club.s sub_080B2680_jp +080b2728 cable_club.s sub_080B2728_jp +080b2750 cable_club.s sub_080B2750_jp +080b2784 cable_club.s sub_080B2784_jp +080b27ac cable_club.s sub_080B27AC_jp +080b27d4 cable_club.s sub_080B27D4_jp +080b27fc cable_club.s sub_080B27FC_jp +080b28f0 cable_club.s sub_080B28F0_jp +080b2940 cable_club.s sub_080B2940_jp +080b2994 cable_club.s sub_080B2994_jp +080b29cc cable_club.s sub_080B29CC_jp +080b2a00 cable_club.s sub_080B2A00_jp +080b2a0c cable_club.s sub_080B2A0C_jp +080b2a60 cable_club.s sub_080B2A60_jp +080b2b68 cable_club.s sub_080B2B68_jp +080b2cfc cable_club.s sub_080B2CFC_jp +080b2d68 cable_club.s sub_080B2D68_jp +080b2e48 cable_club.s CleanupLinkRoomState +080b2e78 cable_club.s ExitLinkRoom +080b2e84 cable_club.s sub_080B2E84_jp +080b2f30 cable_club.s sub_080B2F30_jp +080b2f58 cable_club.s sub_080B2F58_jp +080b2ff0 cable_club.s sub_080B2FF0_jp +080b3080 cable_club.s PlayerEnteredTradeSeat +080b30ac cable_club.s sub_080B30AC_jp +080b30c0 cable_club.s nullsub_37 +080b30c4 cable_club.s ColosseumPlayerSpotTriggered +080b3100 cable_club.s sub_080B3100_jp +080b3118 cable_club.s sp02A_crash_sound +080b3130 cable_club.s GetLinkTrainerCardColor +080b3188 cable_club.s task00_08081A90 +080b3204 cable_club.s sub_080B3204_jp +080b3228 cable_club.s sub_080B3228_jp +080b3250 cable_club.s sub_080B3250_jp +080b331c cable_club.s sub_080B331C_jp +trainer_see.s +080b3340 trainer_see.s CheckForTrainersWantingBattle +080b3458 trainer_see.s CheckTrainer +080b3548 trainer_see.s GetTrainerApproachDistance +080b35f8 trainer_see.s GetTrainerApproachDistanceSouth +080b363c trainer_see.s GetTrainerApproachDistanceNorth +080b3680 trainer_see.s GetTrainerApproachDistanceWest +080b36c4 trainer_see.s GetTrainerApproachDistanceEast +080b3708 trainer_see.s CheckPathBetweenTrainerAndPlayer +080b37c4 trainer_see.s TrainerApproachPlayer +080b3820 trainer_see.s sub_080B3820_jp +080b3870 trainer_see.s Task_RunTrainerSeeFuncList +080b38d0 trainer_see.s sub_080B38D0 +080b38d4 trainer_see.s TrainerExclamationMark +080b3918 trainer_see.s WaitTrainerExclamationMark +080b3958 trainer_see.s TrainerMoveToPlayer +080b39b4 trainer_see.s PlayerFaceApproachingTrainer +080b3a70 trainer_see.s WaitPlayerFaceApproachingTrainer +080b3ab4 trainer_see.s RevealDisguisedTrainer +080b3ae8 trainer_see.s WaitRevealDisguisedTrainer +080b3b04 trainer_see.s RevealHiddenTrainer +080b3b38 trainer_see.s PopOutOfAshHiddenTrainer +080b3b90 trainer_see.s JumpInPlaceHiddenTrainer +080b3c04 trainer_see.s WaitRevealHiddenTrainer +080b3c20 trainer_see.s sub_080B3C20_jp +080b3cd0 trainer_see.s sub_080B3CD0_jp +080b3d04 trainer_see.s EndTrainerApproach +080b3d14 trainer_see.s Task_DestroyTrainerApproachTask +080b3d28 trainer_see.s TryPrepareSecondApproachingTrainer +080b3d78 trainer_see.s FldEff_ExclamationMarkIcon +080b3db0 trainer_see.s FldEff_QuestionMarkIcon +080b3de8 trainer_see.s FldEff_HeartIcon +080b3e30 trainer_see.s SetIconSpriteData +080b3e7c trainer_see.s SpriteCB_TrainerIcons +080b3f14 trainer_see.s GetCurrentApproachingTrainerEventObjectId +080b3f38 trainer_see.s GetChosenApproachingTrainerEventObjectId +080b3f60 trainer_see.s sub_080B3F60_jp +wild_encounter.s +080b4010 wild_encounter.s DisableWildEncounters +080b401c wild_encounter.s GetRoute119WaterTileNum +080b40dc wild_encounter.s CheckFeebas +080b41f0 wild_encounter.s FeebasRandom +080b4210 wild_encounter.s FeebasSeedRng +080b4220 wild_encounter.s ChooseWildMonIndex_Land +080b42dc wild_encounter.s ChooseWildMonIndex_WaterRock +080b4330 wild_encounter.s ChooseWildMonIndex_Fishing +080b43cc wild_encounter.s ChooseWildMonLevel +080b4450 wild_encounter.s GetCurrentMapWildMonHeaderId +080b44d0 wild_encounter.s PickWildMonNature +080b45c0 wild_encounter.s CreateWildMon +080b46a4 wild_encounter.s TryGenerateWildMon +080b477c wild_encounter.s GenerateFishingWildMon +080b47b4 wild_encounter.s SetUpMassOutbreakEncounter +080b4834 wild_encounter.s DoMassOutbreakEncounterTest +080b489c wild_encounter.s DoWildEncounterRateDiceRoll +080b48c8 wild_encounter.s DoWildEncounterRateTest +080b4994 wild_encounter.s DoGlobalWildEncounterDiceRoll +080b49b8 wild_encounter.s AreLegendariesInSootopolisPreventingEncounters +080b49e0 wild_encounter.s StandardWildEncounter +080b4c64 wild_encounter.s RockSmashWildEncounter +080b4cd0 wild_encounter.s SweetScentWildEncounter +080b4e54 wild_encounter.s DoesCurrentMapHaveFishingMons +080b4e8c wild_encounter.s FishingWildEncounter +080b4ef8 wild_encounter.s GetLocalWildMon +080b4f84 wild_encounter.s GetLocalWaterMon +080b4fc8 wild_encounter.s UpdateRepelCounter +080b5024 wild_encounter.s IsWildLevelAllowedByRepel +080b508c wild_encounter.s IsAbilityAllowingEncounter +080b50e8 wild_encounter.s TryGetRandomWildMonIndexByType +080b51a8 wild_encounter.s TryGetAbilityInfluencedWildMonIndex +080b5208 wild_encounter.s ApplyFluteEncounterRateMod +080b5248 wild_encounter.s ApplyCleanseTagEncounterRateMod +field_effect.s +080b5270 field_effect.s FieldEffectStart +080b52a0 field_effect.s sub_080b52a0 +080b52b8 field_effect.s FieldEffectCmd_loadtiles +080b52cc field_effect.s FieldEffectCmd_loadfadedpal +080b52e0 field_effect.s FieldEffectCmd_loadpal +080b52f4 field_effect.s FieldEffectCmd_callnative +080b5308 field_effect.s FieldEffectCmd_end +080b530c field_effect.s FieldEffectCmd_loadgfx_callnative +080b5334 field_effect.s FieldEffectCmd_loadtiles_callnative +080b5358 field_effect.s FieldEffectCmd_loadfadedpal_callnative +080b537c field_effect.s FieldEffectScript_ReadWord +080b5394 field_effect.s FieldEffectScript_LoadTiles +080b53c4 field_effect.s FieldEffectScript_LoadFadedPalette +080b53ec field_effect.s FieldEffectScript_LoadPalette +080b5404 field_effect.s FieldEffectScript_CallNative +080b5414 field_effect.s CreateTeleportFieldEffectTask +080b5420 field_effect.s FieldEffectFreeGraphicsResources +080b5444 field_effect.s FieldEffectStop +080b545c field_effect.s FieldEffectFreeTilesIfUnused +080b54c0 field_effect.s FieldEffectFreePaletteIfUnused +080b5518 field_effect.s FieldEffectActiveListClear +080b553c field_effect.s FieldEffectActiveListAdd +080b5568 field_effect.s FieldEffectActiveListRemove +080b5598 field_effect.s FieldEffectActiveListContains +080b55c4 field_effect.s CreateTrainerSprite +080b5664 field_effect.s LoadTrainerGfx_TrainerCard +080b569c field_effect.s AddNewGameBirchObject +080b56dc field_effect.s CreateMonSprite_PicBox +080b5740 field_effect.s CreateMonSprite_FieldMove +080b57c8 field_effect.s FreeResourcesAndDestroySprite +080b57f4 field_effect.s MultiplyInvertedPaletteRGBComponents +080b5880 field_effect.s MultiplyPaletteRGBComponents +080b58f8 field_effect.s FldEff_PokecenterHeal +080b593c field_effect.s Task_HallOfFameRecord +080b5960 field_effect.s sub_080B5960_jp +080b596c field_effect.s PokecenterHealEffect_0 +080b59a8 field_effect.s PokecenterHealEffect_1 +080b59e4 field_effect.s PokecenterHealEffect_2 +080b5a0c field_effect.s PokecenterHealEffect_3 +080b5a4c field_effect.s FldEff_HallOfFameRecord +080b5a88 field_effect.s Task_PokecenterHeal +080b5aac field_effect.s sub_080B5AAC_jp +080b5ab8 field_effect.s HallOfFameRecordEffect_0 +080b5b2c field_effect.s HallOfFameRecordEffect_1 +080b5b5c field_effect.s HallOfFameRecordEffect_2 +080b5b84 field_effect.s HallOfFameRecordEffect_3 +080b5bc4 field_effect.s CreatePokeballGlowSprite +080b5c18 field_effect.s SpriteCB_PokeballGlowEffect +080b5c34 field_effect.s PokeballGlowEffect_0 +080b5ccc field_effect.s PokeballGlowEffect_1 +080b5d00 field_effect.s PokeballGlowEffect_2 +080b5e40 field_effect.s PokeballGlowEffect_3 +080b5f34 field_effect.s PokeballGlowEffect_4 +080b5f50 field_effect.s PokeballGlowEffect_5 +080b5f58 field_effect.s PokeballGlowEffect_6 +080b5f7c field_effect.s PokeballGlowEffect_7 +080b5f80 field_effect.s SpriteCB_PokeballGlow +080b5fa8 field_effect.s PokecenterHealEffectHelper +080b6004 field_effect.s SpriteCB_PokecenterMonitor +080b6044 field_effect.s HallOfFameRecordEffectHelper +080b60c8 field_effect.s SpriteCB_HallOfFameMonitor +080b6134 field_effect.s sub_080B6134_jp +080b6154 field_effect.s mapldr_080842E8 +080b617c field_effect.s task00_8084310 +080b61fc field_effect.s mapldr_08084390 +080b6264 field_effect.s c3_080843F8 +080b62c0 field_effect.s sub_080B62C0 +080b62ec field_effect.s sub_080B62EC_jp +080b6324 field_effect.s sub_080B6324_jp +080b63cc field_effect.s sub_080B63CC_jp +080b63e8 field_effect.s sub_080B63E8_jp +080b645c field_effect.s sub_080B645C_jp +080b6514 field_effect.s sub_080B6514_jp +080b6530 field_effect.s sub_080B6530_jp +080b6570 field_effect.s sub_080B6570_jp +080b65a4 field_effect.s sub_080B65A4_jp +080b65e0 field_effect.s sub_080B65E0_jp +080b6618 field_effect.s sub_080B6618_jp +080b6638 field_effect.s sub_080B6638_jp +080b66a8 field_effect.s sub_080B66A8_jp +080b66cc field_effect.s sub_080B66CC_jp +080b66dc field_effect.s sub_080B66DC_jp +080b6700 field_effect.s sub_080B6700_jp +080b6710 field_effect.s sub_080B6710_jp +080b675c field_effect.s sub_080B675C_jp +080b67a8 field_effect.s sub_080B67A8_jp +080b67b8 field_effect.s sub_080B67B8_jp +080b680c field_effect.s sub_080B680C_jp +080b6834 field_effect.s sub_080B6834_jp +080b686c field_effect.s sub_080B686C_jp +080b68e8 field_effect.s sub_080B68E8_jp +080b6928 field_effect.s sub_080B6928_jp +080b6988 field_effect.s sub_080B6988_jp +080b69c8 field_effect.s sub_080B69C8_jp +080b6a28 field_effect.s sub_080B6A28_jp +080b6a4c field_effect.s sub_080B6A4C_jp +080b6aa4 field_effect.s FldEff_UseWaterfall +080b6adc field_effect.s sub_080B6ADC_jp +080b6b0c field_effect.s sub_080B6B0C_jp +080b6b28 field_effect.s sub_080B6B28_jp +080b6b48 field_effect.s waterfall_1_do_anim_probably +080b6b84 field_effect.s waterfall_2_wait_anim_finish_probably +080b6ba8 field_effect.s sub_080B6BA8_jp +080b6bd0 field_effect.s sub_080B6BD0_jp +080b6c28 field_effect.s FldEff_UseDive +080b6c64 field_effect.s Task_Dive +080b6c9c field_effect.s dive_1_lock +080b6cb0 field_effect.s dive_2_unknown +080b6cd8 field_effect.s dive_3_unknown +080b6d30 field_effect.s sub_080B6D30_jp +080b6d48 field_effect.s sub_080B6D48_jp +080b6da4 field_effect.s sub_080B6DA4_jp +080b6ddc field_effect.s sub_080B6DDC_jp +080b6e10 field_effect.s sub_080B6E10_jp +080b6e5c field_effect.s sub_080B6E5C_jp +080b6f50 field_effect.s sub_080B6F50_jp +080b6f6c field_effect.s sub_080B6F6C_jp +080b6fc0 field_effect.s mapldr_080851BC +080b6fe8 field_effect.s sub_080B6FE8 +080b7044 field_effect.s sub_080B7044_jp +080b7074 field_effect.s sub_080B7074_jp +080b70c0 field_effect.s sub_080B70C0_jp +080b7114 field_effect.s sub_080B7114_jp +080b714c field_effect.s FldEff_LavaridgeGymWarp +080b71b0 field_effect.s sub_080B71B0 +080b71cc field_effect.s sub_080B71CC_jp +080b71e4 field_effect.s sub_080B71E4_jp +080b7240 field_effect.s sub_080B7240_jp +080b7270 field_effect.s sub_080B7270_jp +080b72ec field_effect.s sub_080B72EC_jp +080b7324 field_effect.s sub_080B7324_jp +080b734c field_effect.s sub_080B734C_jp +080b73a0 field_effect.s FldEff_PopOutOfAsh +080b7404 field_effect.s sub_080B7404 +080b7420 field_effect.s StartEscapeRopeFieldEffect +080b743c field_effect.s DoEscapeRopeFieldEffect +080b746c field_effect.s EscapeRopeFieldEffect_Step0 +080b748c field_effect.s EscapeRopeFieldEffect_Step1 +080b75a0 field_effect.s mapldr_080859D4 +080b75ec field_effect.s ExecuteTeleportFieldEffectTask +080b761c field_effect.s sub_080B761C_jp +080b7640 field_effect.s sub_080B7640_jp +080b7720 field_effect.s sub_080B7720_jp +080b7734 field_effect.s sub_080B7734_jp +080b7764 field_effect.s TeleportFieldEffectTask1 +080b778c field_effect.s TeleportFieldEffectTask2 +080b781c field_effect.s TeleportFieldEffectTask3 +080b78f0 field_effect.s TeleportFieldEffectTask4 +080b7958 field_effect.s mapldr_08085D88 +080b79a8 field_effect.s sub_080B79A8_jp +080b79d8 field_effect.s sub_080B79D8_jp +080b7a64 field_effect.s sub_080B7A64_jp +080b7b68 field_effect.s sub_080B7B68_jp +080b7bf4 field_effect.s FldEff_FieldMoveShowMon +080b7c50 field_effect.s FldEff_FieldMoveShowMonInit +080b7cac field_effect.s sub_080B7CAC_jp +080b7cdc field_effect.s sub_080B7CDC_jp +080b7d50 field_effect.s sub_080B7D50_jp +080b7db8 field_effect.s sub_080B7DB8_jp +080b7e44 field_effect.s sub_080B7E44_jp +080b7e74 field_effect.s sub_080B7E74_jp +080b7ec8 field_effect.s sub_080B7EC8 +080b7f10 field_effect.s overworld_bg_setup_2 +080b7f64 field_effect.s sub_080B7F64_jp +080b7f8c field_effect.s sub_080B7F8C_jp +080b7fcc field_effect.s sub_080B7FCC_jp +080b800c field_effect.s sub_080B800C_jp +080b803c field_effect.s sub_080B803C_jp +080b8078 field_effect.s sub_080B8078_jp +080b80e4 field_effect.s sub_080B80E4_jp +080b8134 field_effect.s sub_080B8134_jp +080b8164 field_effect.s sub_080B8164_jp +080b819c field_effect.s sub_080B819C_jp +080b81bc field_effect.s sub_080B81BC_jp +080b8238 field_effect.s sub_080B8238_jp +080b8260 field_effect.s sub_080B8260_jp +080b8280 field_effect.s sub_080B8280_jp +080b8290 field_effect.s sub_080B8290_jp +080b8348 field_effect.s sub_080B8348_jp +080b83b8 field_effect.s sub_080B83B8_jp +080b8418 field_effect.s sub_080B8418_jp +080b845c field_effect.s sub_080B845C_jp +080b8478 field_effect.s sub_080B8478 +080b849c field_effect.s FldEff_UseSurf +080b84dc field_effect.s sub_080B84DC_jp +080b850c field_effect.s sub_080B850C_jp +080b856c field_effect.s sub_080B856C_jp +080b85b8 field_effect.s sub_080B85B8_jp +080b8600 field_effect.s sub_080B8600_jp +080b867c field_effect.s sub_080B867C_jp +080b86f0 field_effect.s sub_080B86F0 +080b8824 field_effect.s FldEff_NPCFlyOut +080b8880 field_effect.s sub_080B8880 +080b88fc field_effect.s FldEff_UseFly +080b892c field_effect.s sub_080B892C_jp +080b895c field_effect.s sub_080B895C_jp +080b89b4 field_effect.s sub_080B89B4_jp +080b89f8 field_effect.s sub_080B89F8_jp +080b8a50 field_effect.s sub_080B8A50_jp +080b8a94 field_effect.s sub_080B8A94_jp +080b8ae8 field_effect.s sub_080B8AE8_jp +080b8b70 field_effect.s sub_080B8B70_jp +080b8bcc field_effect.s sub_080B8BCC_jp +080b8bec field_effect.s sub_080B8BEC_jp +080b8c1c field_effect.s sub_080B8C1C_jp +080b8c60 field_effect.s sub_080B8C60_jp +080b8c7c field_effect.s sub_080B8C7C_jp +080b8cb8 field_effect.s sub_080B8CB8_jp +080b8cd4 field_effect.s sub_080B8CD4_jp +080b8d94 field_effect.s sub_080B8D94_jp +080b8e08 field_effect.s sub_080B8E08_jp +080b8eec field_effect.s sub_080B8EEC_jp +080b8f18 field_effect.s sub_080B8F18_jp +080b8f2c field_effect.s sub_080B8F2C_jp +080b8f5c field_effect.s sub_080B8F5C_jp +080b9010 field_effect.s sub_080B9010_jp +080b907c field_effect.s sub_080B907C_jp +080b90d0 field_effect.s sub_080B90D0_jp +080b9148 field_effect.s sub_080B9148_jp +080b9180 field_effect.s sub_080B9180_jp +080b91b8 field_effect.s sub_080B91B8_jp +080b9234 field_effect.s sub_080B9234_jp +080b9294 field_effect.s sub_080B9294_jp +080b9328 field_effect.s sub_080B9328_jp +080b9340 field_effect.s sub_080B9340_jp +080b9370 field_effect.s sub_080B9370_jp +080b9380 field_effect.s sub_080B9380_jp +080b93ac field_effect.s sub_080B93AC_jp +080b9434 field_effect.s sub_080B9434_jp +080b947c field_effect.s sub_080B947C_jp +080b9510 field_effect.s Fldeff_MoveDeoxysRock +080b9580 field_effect.s Fldeff_MoveDeoxysRock_Step +080b9634 field_effect.s sub_080B9634_jp +scanline_effect.s +080b9710 scanline_effect.s ScanlineEffect_Stop +080b9750 scanline_effect.s ScanlineEffect_Clear +080b9790 scanline_effect.s ScanlineEffect_SetParams +080b9800 scanline_effect.s ScanlineEffect_InitHBlankDmaTransfer +080b988c scanline_effect.s CopyValue16Bit +080b98ac scanline_effect.s CopyValue32Bit +080b98cc scanline_effect.s TaskFunc_UpdateWavePerFrame +080b9a94 scanline_effect.s GenerateWave +080b9adc scanline_effect.s ScanlineEffect_InitWave +080b9c08 scanline_effect.s BattleScene_ProcessInput +080b9c20 scanline_effect.s BattleStyle_ProcessInput +080b9c34 scanline_effect.s CB2_InitOptionMenu +080b9f94 scanline_effect.s Task_OptionMenuFadeIn +080b9fc4 scanline_effect.s Task_OptionMenuProcessInput +080ba1bc scanline_effect.s Task_OptionMenuSave +080ba260 scanline_effect.s Task_OptionMenuFadeOut +080ba290 scanline_effect.s HighlightOptionMenuItem +080ba2c0 scanline_effect.s DrawOptionMenuChoice +080ba334 scanline_effect.s ButtonMode_ProcessInput +080ba390 scanline_effect.s BattleScene_DrawChoices +080ba3e4 scanline_effect.s BattleStyle_DrawChoices +080ba40c scanline_effect.s Sound_DrawChoices +080ba468 scanline_effect.s DrawOptionMenuTexts +080ba490 scanline_effect.s TextSpeed_ProcessInput +080ba4ec scanline_effect.s Sound_ProcessInput +080ba51c scanline_effect.s TextSpeed_DrawChoices +080ba584 scanline_effect.s FrameType_ProcessInput +080ba634 scanline_effect.s FrameType_DrawChoices +080ba724 scanline_effect.s ButtonMode_DrawChoices +080ba780 scanline_effect.s sub_080BA780_jp +080ba800 scanline_effect.s DrawTextOption +080ba834 scanline_effect.s sub_080BA834 +080ba890 scanline_effect.s sub_080BA890 +pokedex.s +080baa0c pokedex.s ResetPokedex +080baa94 pokedex.s ResetPokedexScrollPositions +080baaac pokedex.s sub_080BAAAC_jp +080baac0 pokedex.s ResetPokedexView +080bac70 pokedex.s CB2_Pokedex +080baeb0 pokedex.s sub_080BAEB0_jp +080baec8 pokedex.s sub_080BAEC8_jp +080baf10 pokedex.s sub_080BAF10_jp +080bb164 pokedex.s sub_080BB164_jp +080bb1b4 pokedex.s sub_080BB1B4_jp +080bb330 pokedex.s sub_080BB330_jp +080bb3b0 pokedex.s sub_080BB3B0_jp +080bb458 pokedex.s sub_080BB458_jp +080bb524 pokedex.s sub_080BB524_jp +080bb5ac pokedex.s sub_080BB5AC_jp +080bb5f4 pokedex.s sub_080BB5F4_jp +080bb7e4 pokedex.s sub_080BB7E4 +080bb834 pokedex.s HandleButtonPress_StartMenu +080bba10 pokedex.s sub_080BBA10 +080bba9c pokedex.s sub_080BBA9C_jp +080bbb18 pokedex.s sub_080BBB18_jp +080bbbb8 pokedex.s sub_080BBBB8_jp +080bbc50 pokedex.s sub_080BBC50_jp +080bbf80 pokedex.s LoadPokedexBgPalette +080bbfcc pokedex.s sub_080BBFCC_jp +080bc010 pokedex.s sub_080BC010 +080bc568 pokedex.s PrintMonDexNumAndName +080bc5c0 pokedex.s CreateMonListEntry +080bc890 pokedex.s CreateMonDexNum +080bc930 pokedex.s CreateCaughtBall +080bc978 pokedex.s sub_080BC978_jp +080bca2c pokedex.s sub_080BCA2C_jp +080bca54 pokedex.s CreateInitialPokemonSprites +080bcba4 pokedex.s sub_080BCBA4 +080bcd48 pokedex.s CreateNewPokemonSprite +080bce3c pokedex.s sub_080BCE3C +080bd070 pokedex.s sub_080BD070_jp +080bd0d0 pokedex.s sub_080BD0D0_jp +080bd1e0 pokedex.s sub_080BD1E0 +080bd22c pokedex.s GetPokemonSpriteToDisplay +080bd26c pokedex.s sub_080BD26C +080bd31c pokedex.s CreateInterfaceSprites +080bdbe8 pokedex.s nullsub_38 +080bdbec pokedex.s sub_080BDBEC_jp +080bdc10 pokedex.s sub_080BDC10_jp +080bdc80 pokedex.s sub_080BDC80 +080bdda4 pokedex.s SpriteCB_Scrollbar +080bddf8 pokedex.s sub_080BDDF8 +080bdef8 pokedex.s sub_080BDEF8_jp +080bdf20 pokedex.s sub_080BDF20_jp +080bdfd4 pokedex.s sub_080BDFD4_jp +080be07c pokedex.s sub_080BE07C_jp +080be0c0 pokedex.s sub_080BE0C0_jp +080be168 pokedex.s sub_080BE168_jp +080be19c pokedex.s sub_080BE19C_jp +080be1c8 pokedex.s sub_080BE1C8_jp +080be634 pokedex.s sub_080BE634_jp +080be678 pokedex.s sub_080BE678_jp +080be854 pokedex.s sub_080BE854_jp +080be8bc pokedex.s sub_080BE8BC_jp +080be8f4 pokedex.s sub_080BE8F4_jp +080be930 pokedex.s sub_080BE930_jp +080bea38 pokedex.s sub_080BEA38_jp +080bea70 pokedex.s sub_080BEA70_jp +080bead4 pokedex.s sub_080BEAD4_jp +080bee68 pokedex.s sub_080BEE68_jp +080bf02c pokedex.s sub_080BF02C_jp +080bf098 pokedex.s sub_080BF098_jp +080bf0c8 pokedex.s sub_080BF0C8_jp +080bf46c pokedex.s sub_080BF46C_jp +080bf534 pokedex.s sub_080BF534_jp +080bf598 pokedex.s sub_080BF598_jp +080bf5b0 pokedex.s sub_080BF5B0_jp +080bf5c8 pokedex.s sub_080BF5C8_jp +080bf638 pokedex.s sub_080BF638 +080bf6b0 pokedex.s CreateDexDisplayMonDataTask +080bf6f4 pokedex.s sub_080BF6F4_jp +080bf9e4 pokedex.s sub_080BF9E4_jp +080bfa88 pokedex.s blockset_load_palette_to_gpu +080bfb28 pokedex.s sub_080BFB28 +080bfb68 pokedex.s sub_080BFB68_jp +080bfb80 pokedex.s GetPokedexHeightWeight +080bfbbc pokedex.s GetSetPokedexFlag +080bfd4c pokedex.s GetNationalPokedexCount +080bfd9c pokedex.s GetHoennPokedexCount +080bfdf4 pokedex.s sub_080BFDF4 +080bfe3c pokedex.s HasAllHoennMons +080bfe70 pokedex.s sub_080BFE70 +080bfe9c pokedex.s sub_080BFE9C_jp +080bff08 pokedex.s sub_080BFF08_jp +080bffe0 pokedex.s sub_080BFFE0_jp +080c0020 pokedex.s sub_080C0020_jp +080c00a0 pokedex.s sub_080C00A0_jp +080c0150 pokedex.s sub_080C0150_jp +080c01c8 pokedex.s sub_080C01C8_jp +080c0288 pokedex.s sub_080C0288_jp +080c0318 pokedex.s sub_080C0318_jp +080c0364 pokedex.s sub_080C0364_jp +080c03c0 pokedex.s sub_080C03C0_jp +080c03f4 pokedex.s CreateMonSpriteFromNationalDexNumber +080c0450 pokedex.s sub_080C0450_jp +080c0488 pokedex.s sub_080C0488_jp +080c07b4 pokedex.s sub_080C07B4_jp +080c07cc pokedex.s sub_080C07CC_jp +080c0810 pokedex.s sub_080C0810_jp +080c0850 pokedex.s sub_080C0850_jp +080c0a9c pokedex.s sub_080C0A9C_jp +080c0ae0 pokedex.s sub_080C0AE0_jp +080c0b20 pokedex.s sub_080C0B20_jp +080c0c3c pokedex.s sub_080C0C3C_jp +080c0c7c pokedex.s sub_080C0C7C_jp +080c0f24 pokedex.s sub_080C0F24_jp +080c0fcc pokedex.s sub_080C0FCC_jp +080c1058 pokedex.s sub_080C1058_jp +080c1104 pokedex.s sub_080C1104_jp +080c117c pokedex.s sub_080C117C_jp +080c137c pokedex.s sub_080C137C_jp +080c13b4 pokedex.s sub_080C13B4_jp +080c13dc pokedex.s sub_080C13DC_jp +080c1440 pokedex.s sub_080C1440_jp +080c1538 pokedex.s sub_080C1538_jp +080c1684 pokedex.s sub_080C1684_jp +080c16b8 pokedex.s sub_080C16B8_jp +080c175c pokedex.s sub_080C175C_jp +080c1838 pokedex.s sub_080C1838_jp +080c1918 pokedex.s sub_080C1918_jp +080c19bc pokedex.s sub_080C19BC_jp +080c1a5c pokedex.s sub_080C1A5C_jp +080c1af0 pokedex.s sub_080C1AF0_jp +080c1b38 pokedex.s sub_080C1B38_jp +080c1b84 pokedex.s sub_080C1B84_jp +080c1c38 pokedex.s sub_080C1C38_jp +trainer_card.s +080c1cbc trainer_card.s VblankCb_TrainerCard +080c1d00 trainer_card.s HblankCb_TrainerCard +080c1d3c trainer_card.s CB2_TrainerCard +080c1d54 trainer_card.s CloseTrainerCard +080c1d8c trainer_card.s sub_080C1D8C_jp +080c2104 trainer_card.s LoadCardGfx +080c22b4 trainer_card.s CB2_InitTrainerCard +080c2414 trainer_card.s GetCappedGameStat +080c242c trainer_card.s HasAllFrontierSymbols +080c2470 trainer_card.s CountPlayerTrainerStars +080c24b4 trainer_card.s GetRubyTrainerStars +080c24f4 trainer_card.s SetPlayerCardData +080c2650 trainer_card.s TrainerCard_GenerateCardForLinkPlayer +080c26d4 trainer_card.s TrainerCard_GenerateCardForPlayer +080c2750 trainer_card.s CopyTrainerCardData +080c27c0 trainer_card.s SetDataFromTrainerCard +080c28a4 trainer_card.s HandleGpuRegs +080c2918 trainer_card.s sub_080C2918_jp +080c297c trainer_card.s ResetGpuRegs +080c29b8 trainer_card.s InitBgsAndWindows +080c2a34 trainer_card.s SetTrainerCardCb2 +080c2a44 trainer_card.s sub_080C2A44_jp +080c2a68 trainer_card.s PrintAllOnCardPage1 +080c2ae0 trainer_card.s PrintStringsOnCardPage2 +080c2b78 trainer_card.s PrintAllVariableNumsOnCardPage2 +080c2ba4 trainer_card.s sub_080C2BA4_jp +080c2c5c trainer_card.s PrintNameOnCard +080c2d14 trainer_card.s PrintProfilePhraseOnCard +080c2e20 trainer_card.s GetCaughtMonsCount +080c2e40 trainer_card.s PrintPokedexOnCard +080c2f5c trainer_card.s PrintMoneyOnCard +080c310c trainer_card.s PrintString +080c31fc trainer_card.s sub_080C31FC_jp +080c323c trainer_card.s sub_080C323C +080c32c0 trainer_card.s PrintHofTimeOnCard +080c3330 trainer_card.s PrintWinsLossesStringOnCard +080c33a0 trainer_card.s PrintLinkResultsNumsOnCard +080c340c trainer_card.s PrintIdOnCard +080c34b8 trainer_card.s PrintTradesNumOnCard +080c34e4 trainer_card.s PrintBattleFacilityStringOnCard +080c3584 trainer_card.s PrintUnionNumOnCard +080c35c0 trainer_card.s PrintBerryCrushStringOnCard +080c364c trainer_card.s PrintBerryCrushNumOnCard +080c3684 trainer_card.s PrintUnionStringOnCard +080c3710 trainer_card.s PrintPokeblocksNumOnCard +080c3760 trainer_card.s PrintContestStringOnCard +080c37ec trainer_card.s PrintContestNumOnCard +080c3828 trainer_card.s PrintPokeblockStringOnCard +080c38b4 trainer_card.s PrintBattleFacilityNumsOnCard +080c395c trainer_card.s sub_080C395C_jp +080c3a70 trainer_card.s TrainerCard_PrintPokemonIconsOnCard +080c3b0c trainer_card.s sub_080C3B0C_jp +080c3be4 trainer_card.s PrintNameOnCard2 +080c3c6c trainer_card.s sub_080C3C6C_jp +080c3cc8 trainer_card.s PrintHofDebutStringOnCard +080c3ce4 trainer_card.s SetCardBgsAndPals +080c3e84 trainer_card.s sub_080C3E84 +080c3ef4 trainer_card.s sub_080C3EF4 +080c3f64 trainer_card.s TrainerCard_PrintStarsAndBadgesOnCard +080c4080 trainer_card.s sub_080C4080_jp +080c41fc trainer_card.s sub_080C41FC +080c4238 trainer_card.s GetTrainerCardStars +080c424c trainer_card.s sub_080C424C_jp +080c4274 trainer_card.s sub_080C4274_jp +080c4294 trainer_card.s sub_080C4294_jp +080c42cc trainer_card.s sub_080C42CC_jp +080c430c trainer_card.s sub_080C430C_jp +080c443c trainer_card.s sub_080C443C_jp +080c4550 trainer_card.s sub_080C4550_jp +080c45b8 trainer_card.s sub_080C45B8 +080c46e4 trainer_card.s sub_080C46E4 +080c4710 trainer_card.s ShowPlayerTrainerCard +080c4798 trainer_card.s ShowTrainerCardInLink +080c47ec trainer_card.s sub_080C47EC_jp +080c4858 trainer_card.s GetSetCardType +080c48d0 trainer_card.s VersionToCardType +080c48f4 trainer_card.s sub_080C48F4_jp +frontier_pass.s +080c49cc frontier_pass.s ResetGpuRegsAndBgs +080c4ac0 frontier_pass.s ShowFrontierPass +080c4ad4 frontier_pass.s LeaveFrontierPass +080c4aec frontier_pass.s AllocateFrontierPassData +080c4be0 frontier_pass.s FreeFrontierPassData +080c4c0c frontier_pass.s AllocateFrontierPassGfx +080c4c3c frontier_pass.s FreeFrontierPassGfx +080c4ca8 frontier_pass.s VblankCb_FrontierPass +080c4d34 frontier_pass.s CB2_FrontierPass +080c4d48 frontier_pass.s CB2_InitFrontierPass +080c4d6c frontier_pass.s CB2_HideFrontierPass +080c4d80 frontier_pass.s InitFrontierPass +080c5008 frontier_pass.s HideFrontierPass +080c50f8 frontier_pass.s GetCursorAreaFromCoords +080c5164 frontier_pass.s CB2_ReshowFrontierPass +080c51d0 frontier_pass.s CB2_ReturnFromRecord +080c5230 frontier_pass.s CB2_ShowFrontierPassFeature +080c52a0 frontier_pass.s TryCallPassAreaFunction +080c5344 frontier_pass.s Task_HandleFrontierPassInput +080c54d4 frontier_pass.s Task_DoFadeEffect +080c56b4 frontier_pass.s ShowAndPrintWindows +080c57bc frontier_pass.s PrintAreaDescription +080c5844 frontier_pass.s sub_080C5844 +080c59f0 frontier_pass.s sub_080C59F0_jp +080c5b88 frontier_pass.s sub_080C5B88_jp +080c5bc8 frontier_pass.s LoadCursorAndSymbolSprites +080c5ce8 frontier_pass.s FreeCursorAndSymbolSprites +080c5d3c frontier_pass.s SpriteCb_Dummy +080c5d40 frontier_pass.s ShowFrontierMap +080c5d84 frontier_pass.s FreeFrontierMap +080c5db8 frontier_pass.s InitFrontierMap +080c5f98 frontier_pass.s ExitFrontierMap +080c60a8 frontier_pass.s Task_HandleFrontierMap +080c61d4 frontier_pass.s MapNumToFrontierFacilityId +080c6260 frontier_pass.s InitFrontierMapSprites +080c6480 frontier_pass.s PrintOnFrontierMap +080c655c frontier_pass.s HandleFrontierMapCursorMove +080c666c frontier_pass.s sub_080C666C_jp +080c66a4 frontier_pass.s sub_080C66A4 +080c6738 frontier_pass.s sub_080C6738 +pokemon_storage_system.s +080c682c pokemon_storage_system.s CountMonsInBox +080c6860 pokemon_storage_system.s GetFirstFreeBoxSpot +080c6894 pokemon_storage_system.s CountPartyNonEggMons +080c68dc pokemon_storage_system.s CountPartyAliveNonEggMonsExcept +080c6938 pokemon_storage_system.s CountPartyAliveNonEggMons_IgnoreVar0x8004Slot +080c6950 pokemon_storage_system.s CountPartyMons +080c6988 pokemon_storage_system.s StringCopyAndFillWithSpaces +080c69b4 pokemon_storage_system.s sub_080C69B4 +080c6a30 pokemon_storage_system.s sub_080C6A30 +080c6af4 pokemon_storage_system.s Task_PokemonStorageSystemPC +080c6e04 pokemon_storage_system.s ShowPokemonStorageSystemPC +080c6e34 pokemon_storage_system.s FieldCb_ReturnToPcMenu +080c6e88 pokemon_storage_system.s sub_080C6E88_jp +080c6f10 pokemon_storage_system.s Cb2_ExitPSS +080c6f3c pokemon_storage_system.s StorageSystemGetNextMonIndex +080c7008 pokemon_storage_system.s ResetPokemonStorageSystem +080c7080 pokemon_storage_system.s sub_080C7080 +080c7128 pokemon_storage_system.s sub_080C7128_jp +080c716c pokemon_storage_system.s sub_080C716C_jp +080c717c pokemon_storage_system.s sub_080C717C_jp +080c7188 pokemon_storage_system.s HandleBoxChooseSelectionInput +080c71f0 pokemon_storage_system.s sub_080C71F0 +080c73d0 pokemon_storage_system.s sub_080C73D0_jp +080c743c pokemon_storage_system.s sub_080C743C_jp +080c7470 pokemon_storage_system.s sub_080C7470_jp +080c74a0 pokemon_storage_system.s sub_080C74A0_jp +080c7528 pokemon_storage_system.s sub_080C7528_jp +080c7590 pokemon_storage_system.s sub_080C7590 +080c75c4 pokemon_storage_system.s VblankCb_PSS +080c75f0 pokemon_storage_system.s Cb2_PSS +080c7610 pokemon_storage_system.s Cb2_EnterPSS +080c7688 pokemon_storage_system.s Cb2_ReturnToPSS +080c76ec pokemon_storage_system.s ResetAllBgCoords +080c7734 pokemon_storage_system.s sub_080C7734_jp +080c77b8 pokemon_storage_system.s sub_080C77B8_jp +080c77e8 pokemon_storage_system.s sub_080C77E8_jp +080c781c pokemon_storage_system.s SetPSSCallback +080c7844 pokemon_storage_system.s Cb_InitPSS +080c7a48 pokemon_storage_system.s Cb_ShowPSS +080c7a94 pokemon_storage_system.s Cb_ReshowPSS +080c7b48 pokemon_storage_system.s Cb_MainPSS +080c8044 pokemon_storage_system.s Cb_ShowPartyPokemon +080c8084 pokemon_storage_system.s Cb_HidePartyPokemon +080c8100 pokemon_storage_system.s Cb_OnSelectedMon +080c842c pokemon_storage_system.s Cb_MoveMon +080c8488 pokemon_storage_system.s Cb_PlaceMon +080c84e4 pokemon_storage_system.s Cb_ShiftMon +080c852c pokemon_storage_system.s Cb_WithdrawMon +080c8614 pokemon_storage_system.s Cb_DepositMenu +080c8750 pokemon_storage_system.s Cb_ReleaseMon +080c8940 pokemon_storage_system.s Cb_ShowMarkMenu +080c89c4 pokemon_storage_system.s Cb_TakeItemForMoving +080c8a78 pokemon_storage_system.s Cb_GiveMovingItemToMon +080c8b34 pokemon_storage_system.s Cb_ItemToBag +080c8c4c pokemon_storage_system.s Cb_SwitchSelectedItem +080c8d34 pokemon_storage_system.s Cb_ShowItemInfo +080c8de8 pokemon_storage_system.s Cb_CloseBoxWhileHoldingItem +080c8f0c pokemon_storage_system.s sub_080C8F0C_jp +080c8f54 pokemon_storage_system.s Cb_PrintCantStoreMail +080c8fc8 pokemon_storage_system.s Cb_HandleBoxOptions +080c90c0 pokemon_storage_system.s Cb_HandleWallpapers +080c9274 pokemon_storage_system.s Cb_JumpBox +080c9364 pokemon_storage_system.s Cb_NameBox +080c93c4 pokemon_storage_system.s Cb_ShowMonSummary +080c9424 pokemon_storage_system.s Cb_GiveItemFromBag +080c9484 pokemon_storage_system.s Cb_OnCloseBoxPressed +080c95b8 pokemon_storage_system.s Cb_OnBPressed +080c96ec pokemon_storage_system.s Cb_ChangeScreen +080c97e0 pokemon_storage_system.s GiveChosenBagItem +080c983c pokemon_storage_system.s FreePSSData +080c9860 pokemon_storage_system.s SetScrollingBackground +080c989c pokemon_storage_system.s ScrollBackground +080c98b8 pokemon_storage_system.s LoadPSSMenuGfx +080c9918 pokemon_storage_system.s InitPSSWindows +080c993c pokemon_storage_system.s LoadWaveformSpritePalette +080c994c pokemon_storage_system.s sub_080C994C_jp +080c99c8 pokemon_storage_system.s sub_080C99C8_jp +080c9a38 pokemon_storage_system.s sub_080C9A38 +080c9aa4 pokemon_storage_system.s RefreshCursorMonData +080c9ad4 pokemon_storage_system.s BoxSetMosaic +080c9b2c pokemon_storage_system.s sub_080C9B2C +080c9b44 pokemon_storage_system.s sub_080C9B44 +080c9b8c pokemon_storage_system.s LoadCursorMonSprite +080c9cc0 pokemon_storage_system.s LoadCursorMonGfx +080c9d70 pokemon_storage_system.s PrintCursorMonInfo +080c9ec0 pokemon_storage_system.s sub_080C9EC0_jp +080c9f68 pokemon_storage_system.s sub_080C9F68 +080ca038 pokemon_storage_system.s SetUpShowPartyMenu +080ca070 pokemon_storage_system.s ShowPartyMenu +080ca0ec pokemon_storage_system.s SetUpHidePartyMenu +080ca12c pokemon_storage_system.s HidePartyMenu +080ca1e8 pokemon_storage_system.s sub_080CA1E8_jp +080ca224 pokemon_storage_system.s sub_080CA224_jp +080ca250 pokemon_storage_system.s sub_080CA250_jp +080ca278 pokemon_storage_system.s sub_080CA278_jp +080ca2d8 pokemon_storage_system.s sub_080CA2D8_jp +080ca30c pokemon_storage_system.s sub_080CA30C_jp +080ca384 pokemon_storage_system.s sub_080CA384 +080ca3b0 pokemon_storage_system.s SetUpDoShowPartyMenu +080ca3d4 pokemon_storage_system.s DoShowPartyMenu +080ca444 pokemon_storage_system.s sub_080CA444_jp +080ca480 pokemon_storage_system.s sub_080CA480_jp +080ca4bc pokemon_storage_system.s PrintStorageActionText +080ca600 pokemon_storage_system.s ShowYesNoWindow +080ca638 pokemon_storage_system.s ClearBottomWindow +080ca64c pokemon_storage_system.s AddWallpaperSetsMenu +080ca680 pokemon_storage_system.s AddWallpapersMenu +080ca714 pokemon_storage_system.s GetCurrentBoxOption +080ca720 pokemon_storage_system.s sub_080CA720_jp +080ca778 pokemon_storage_system.s sub_080CA778_jp +080ca820 pokemon_storage_system.s sub_080CA820_jp +080ca838 pokemon_storage_system.s CreateMovingMonIcon +080ca89c pokemon_storage_system.s sub_080CA89C +080ca9b4 pokemon_storage_system.s sub_080CA9B4_jp +080caa64 pokemon_storage_system.s sub_080CAA64_jp +080caaa8 pokemon_storage_system.s sub_080CAAA8_jp +080caaec pokemon_storage_system.s sub_080CAAEC +080cab24 pokemon_storage_system.s DestroyAllIconsInRow +080cab6c pokemon_storage_system.s sub_080CAB6C +080cad40 pokemon_storage_system.s sub_080CAD40_jp +080cadf8 pokemon_storage_system.s sub_080CADF8 +080caf64 pokemon_storage_system.s SetBoxSpeciesAndPersonalities +080cafec pokemon_storage_system.s DestroyBoxMonIconAtPosition +080cb020 pokemon_storage_system.s SetBoxMonIconObjMode +080cb05c pokemon_storage_system.s CreatePartyMonsSprites +080cb1c4 pokemon_storage_system.s sub_080CB1C4 +080cb230 pokemon_storage_system.s GetWaldaWallpaperPatternId +080cb244 pokemon_storage_system.s sub_080CB244_jp +080cb2b0 pokemon_storage_system.s sub_080CB2B0 +080cb338 pokemon_storage_system.s DestroyMovingMonIcon +080cb364 pokemon_storage_system.s sub_080CB364 +080cb3dc pokemon_storage_system.s DestroyPartyMonIcon +080cb410 pokemon_storage_system.s DestroyAllPartyMonIcons +080cb450 pokemon_storage_system.s SetPartyMonIconObjMode +080cb488 pokemon_storage_system.s sub_080CB488 +080cb520 pokemon_storage_system.s sub_080CB520_jp +080cb5d0 pokemon_storage_system.s sub_080CB5D0_jp +080cb638 pokemon_storage_system.s sub_080CB638_jp +080cb788 pokemon_storage_system.s sub_080CB788_jp +080cb84c pokemon_storage_system.s sub_080CB84C_jp +080cb894 pokemon_storage_system.s sub_080CB894_jp +080cb8d8 pokemon_storage_system.s sub_080CB8D8_jp +080cb914 pokemon_storage_system.s sub_080CB914 +080cb948 pokemon_storage_system.s SetMovingMonPriority +080cb974 pokemon_storage_system.s sub_080CB974 +080cb998 pokemon_storage_system.s sub_080CB998_jp +080cba54 pokemon_storage_system.s sub_080CBA54_jp +080cbaa4 pokemon_storage_system.s sub_080CBAA4_jp +080cbb88 pokemon_storage_system.s DestroyBoxMonIcon +080cbba0 pokemon_storage_system.s sub_080CBBA0_jp +080cbbd0 pokemon_storage_system.s sub_080CBBD0_jp +080cbbe4 pokemon_storage_system.s sub_080CBBE4_jp +080cbcd8 pokemon_storage_system.s SetUpScrollToBox +080cbdc0 pokemon_storage_system.s ScrollToBox +080cbeb8 pokemon_storage_system.s sub_080CBEB8 +080cbef4 pokemon_storage_system.s SetWallpaperForCurrentBox +080cbf24 pokemon_storage_system.s DoWallpaperGfxChange +080cc014 pokemon_storage_system.s LoadWallpaperGfx +080cc274 pokemon_storage_system.s WaitForWallpaperGfxLoad +080cc2b0 pokemon_storage_system.s sub_080CC2B0 +080cc354 pokemon_storage_system.s sub_080CC354_jp +080cc3c4 pokemon_storage_system.s sub_080CC3C4_jp +080cc57c pokemon_storage_system.s sub_080CC57C_jp +080cc76c pokemon_storage_system.s sub_080CC76C_jp +080cc7bc pokemon_storage_system.s sub_080CC7BC_jp +080cc7f0 pokemon_storage_system.s sub_080CC7F0_jp +080cc828 pokemon_storage_system.s sub_080CC828_jp +080cc898 pokemon_storage_system.s GetWaldaWallpaperColorsPtr +080cc8a8 pokemon_storage_system.s sub_080CC8A8_jp +080cc934 pokemon_storage_system.s sub_080CC934_jp +080cc9d4 pokemon_storage_system.s sub_080CC9D4_jp +080cca24 pokemon_storage_system.s sub_080CCA24_jp +080cca8c pokemon_storage_system.s sub_080CCA8C_jp +080ccb64 pokemon_storage_system.s sub_080CCB64_jp +080ccbe8 pokemon_storage_system.s sub_080CCBE8_jp +080ccc68 pokemon_storage_system.s sub_080CCC68_jp +080cccc0 pokemon_storage_system.s sub_080CCCC0_jp +080ccd80 pokemon_storage_system.s sub_080CCD80_jp +080ccdd0 pokemon_storage_system.s sub_080CCDD0_jp +080ccf28 pokemon_storage_system.s sub_080CCF28_jp +080ccf88 pokemon_storage_system.s sub_080CCF88_jp +080cd110 pokemon_storage_system.s sub_080CD110_jp +080cd2e4 pokemon_storage_system.s sub_080CD2E4_jp +080cd41c pokemon_storage_system.s sub_080CD41C_jp +080cd474 pokemon_storage_system.s sub_080CD474_jp +080cd488 pokemon_storage_system.s sub_080CD488_jp +080cd494 pokemon_storage_system.s sub_080CD494_jp +080cd4a8 pokemon_storage_system.s sub_080cd4a8 +080cd4b4 pokemon_storage_system.s InitMonPlaceChange +080cd4e0 pokemon_storage_system.s sub_080CD4E0 +080cd528 pokemon_storage_system.s DoMonPlaceChange +080cd538 pokemon_storage_system.s sub_080CD538_jp +080cd548 pokemon_storage_system.s MonPlaceChange_Move +080cd5d8 pokemon_storage_system.s MonPlaceChange_Place +080cd654 pokemon_storage_system.s MonPlaceChange_Shift +080cd730 pokemon_storage_system.s sub_080CD730 +080cd740 pokemon_storage_system.s sub_080CD740_jp +080cd750 pokemon_storage_system.s sub_080CD750_jp +080cd784 pokemon_storage_system.s sub_080CD784 +080cd7b4 pokemon_storage_system.s MoveMon +080cd828 pokemon_storage_system.s PlaceMon +080cd888 pokemon_storage_system.s sub_080CD888 +080cd894 pokemon_storage_system.s SetMovedMonData +080cd908 pokemon_storage_system.s SetPlacedMonData +080cd964 pokemon_storage_system.s PurgeMonOrBoxMon +080cd98c pokemon_storage_system.s SetShiftedMonData +080cda18 pokemon_storage_system.s TryStorePartyMonInBox +080cdaa8 pokemon_storage_system.s sub_080CDAA8 +080cdacc pokemon_storage_system.s sub_080CDACC_jp +080cdb24 pokemon_storage_system.s sub_080CDB24_jp +080cdb54 pokemon_storage_system.s ReleaseMon +080cdba0 pokemon_storage_system.s sub_080CDBA0_jp +080cdbcc pokemon_storage_system.s sub_080CDBCC +080cdc1c pokemon_storage_system.s InitCanRelaseMonVars +080cdd98 pokemon_storage_system.s AtLeastThreeUsableMons +080cddfc pokemon_storage_system.s RunCanReleaseMon +080cdfdc pokemon_storage_system.s sub_080CDFDC_jp +080ce00c pokemon_storage_system.s sub_080CE00C_jp +080ce064 pokemon_storage_system.s sub_080CE064_jp +080ce160 pokemon_storage_system.s sub_080CE160_jp +080ce188 pokemon_storage_system.s CompactPartySlots +080ce224 pokemon_storage_system.s SetMonMarkings +080ce2ac pokemon_storage_system.s CanMovePartyMon +080ce2e8 pokemon_storage_system.s CanShiftMon +080ce34c pokemon_storage_system.s GetBoxCursorPosition +080ce358 pokemon_storage_system.s IsCursorOnBox +080ce374 pokemon_storage_system.s IsCursorOnCloseBox +080ce3a0 pokemon_storage_system.s IsCursorInBox +080ce3bc pokemon_storage_system.s sub_080CE3BC_jp +080ce458 pokemon_storage_system.s sub_080CE458_jp +080ce47c pokemon_storage_system.s SetCursorMonData +080ce948 pokemon_storage_system.s HandleInput_InBox +080ce984 pokemon_storage_system.s InBoxInput_Normal +080cebf0 pokemon_storage_system.s InBoxInput_GrabbingMultiple +080ced2c pokemon_storage_system.s InBoxInput_MovingMultiple +080cee40 pokemon_storage_system.s HandleInput_InParty +080cf060 pokemon_storage_system.s HandleInput_OnBox +080cf154 pokemon_storage_system.s HandleInput_OnButtons +080cf268 pokemon_storage_system.s sub_080CF268_jp +080cf2b4 pokemon_storage_system.s AddBoxMenu +080cf2d8 pokemon_storage_system.s sub_080CF2D8 +080cf300 pokemon_storage_system.s sub_080CF300_jp +080cf3c0 pokemon_storage_system.s sub_080CF3C0_jp +080cf470 pokemon_storage_system.s sub_080CF470_jp +080cf490 pokemon_storage_system.s sub_080CF490_jp +080cf640 pokemon_storage_system.s sub_080CF640_jp +080cf684 pokemon_storage_system.s sub_080CF684_jp +080cf690 pokemon_storage_system.s sub_080CF690_jp +080cf6d0 pokemon_storage_system.s sub_080CF6D0_jp +080cf6f4 pokemon_storage_system.s sub_080CF6F4_jp +080cf700 pokemon_storage_system.s sub_080CF700_jp +080cf724 pokemon_storage_system.s sub_080CF724_jp +080cf748 pokemon_storage_system.s sub_080CF748_jp +080cf76c pokemon_storage_system.s InitMenu +080cf7b0 pokemon_storage_system.s SetMenuText +080cf814 pokemon_storage_system.s sub_080CF814 +080cf84c pokemon_storage_system.s AddMenu +080cf948 pokemon_storage_system.s sub_080CF948_jp +080cf94c pokemon_storage_system.s sub_080CF94C_jp +080cf9dc pokemon_storage_system.s sub_080CF9DC_jp +080cfa04 pokemon_storage_system.s sub_080CFA04_jp +080cfa58 pokemon_storage_system.s sub_080CFA58_jp +080cfa70 pokemon_storage_system.s sub_080CFA70_jp +080cfa84 pokemon_storage_system.s sub_080CFA84_jp +080cfaec pokemon_storage_system.s sub_080CFAEC_jp +080cfbe4 pokemon_storage_system.s sub_080CFBE4_jp +080cfc50 pokemon_storage_system.s sub_080CFC50_jp +080cfcc0 pokemon_storage_system.s sub_080CFCC0_jp +080cfd40 pokemon_storage_system.s sub_080CFD40_jp +080cfd68 pokemon_storage_system.s sub_080CFD68_jp +080cfe20 pokemon_storage_system.s sub_080CFE20_jp +080cfecc pokemon_storage_system.s sub_080CFECC_jp +080cff70 pokemon_storage_system.s sub_080CFF70_jp +080cffa8 pokemon_storage_system.s sub_080CFFA8_jp +080cffe0 pokemon_storage_system.s sub_080CFFE0_jp +080d0018 pokemon_storage_system.s sub_080D0018_jp +080d0050 pokemon_storage_system.s sub_080D0050_jp +080d00d4 pokemon_storage_system.s sub_080D00D4_jp +080d0124 pokemon_storage_system.s sub_080D0124_jp +080d0134 pokemon_storage_system.s sub_080D0134_jp +080d016c pokemon_storage_system.s sub_080D016C_jp +080d0244 pokemon_storage_system.s sub_080D0244_jp +080d02bc pokemon_storage_system.s sub_080D02BC_jp +080d034c pokemon_storage_system.s sub_080D034C_jp +080d03fc pokemon_storage_system.s sub_080D03FC_jp +080d0444 pokemon_storage_system.s sub_080D0444_jp +080d0460 pokemon_storage_system.s sub_080D0460_jp +080d0500 pokemon_storage_system.s sub_080D0500_jp +080d062c pokemon_storage_system.s sub_080D062C_jp +080d06f0 pokemon_storage_system.s sub_080D06F0 +080d0730 pokemon_storage_system.s Item_FromMonToMoving +080d07d8 pokemon_storage_system.s sub_080D07D8 +080d084c pokemon_storage_system.s Item_SwitchMonsWithMoving +080d0920 pokemon_storage_system.s Item_GiveMovingToMon +080d09b4 pokemon_storage_system.s Item_TakeMons +080d0a34 pokemon_storage_system.s sub_080D0A34 +080d0a6c pokemon_storage_system.s sub_080D0A6C_jp +080d0ab8 pokemon_storage_system.s sub_080D0AB8 +080d0b1c pokemon_storage_system.s IsActiveItemMoving +080d0b58 pokemon_storage_system.s GetMovingItemName +080d0b74 pokemon_storage_system.s GetMovingItem +080d0b88 pokemon_storage_system.s sub_080D0B88_jp +080d0bc4 pokemon_storage_system.s sub_080D0BC4_jp +080d0c10 pokemon_storage_system.s sub_080D0C10_jp +080d0c64 pokemon_storage_system.s sub_080D0C64_jp +080d0cac pokemon_storage_system.s sub_080D0CAC_jp +080d0dc4 pokemon_storage_system.s sub_080D0DC4_jp +080d0e74 pokemon_storage_system.s sub_080D0E74_jp +080d0ea4 pokemon_storage_system.s sub_080D0EA4_jp +080d0fe0 pokemon_storage_system.s sub_080D0FE0 +080d1034 pokemon_storage_system.s GetItemIconPic +080d1044 pokemon_storage_system.s GetItemIconPalette +080d1054 pokemon_storage_system.s Cb_HandleMovingMonFromParty +080d10b8 pokemon_storage_system.s sub_080D10B8_jp +080d10ec pokemon_storage_system.s sub_080D10EC_jp +080d1184 pokemon_storage_system.s sub_080D1184_jp +080d1254 pokemon_storage_system.s sub_080D1254_jp +080d12e8 pokemon_storage_system.s sub_080D12E8_jp +080d1314 pokemon_storage_system.s sub_080D1314_jp +080d1378 pokemon_storage_system.s sub_080D1378_jp +080d13b4 pokemon_storage_system.s sub_080D13B4_jp +080d1434 pokemon_storage_system.s sub_080D1434_jp +080d14d0 pokemon_storage_system.s sub_080D14D0_jp +080d156c pokemon_storage_system.s sub_080D156C_jp +080d15a4 pokemon_storage_system.s nullsub_98 +080d15a8 pokemon_storage_system.s nullsub_pss +080d15ac pokemon_storage_system.s StorageGetCurrentBox +080d15b8 pokemon_storage_system.s SetCurrentBox +080d15d0 pokemon_storage_system.s GetBoxMonDataAt +080d1614 pokemon_storage_system.s SetBoxMonDataAt +080d1658 pokemon_storage_system.s GetCurrentBoxMonData +080d1678 pokemon_storage_system.s SetCurrentBoxMonData +080d169c pokemon_storage_system.s GetBoxMonNickAt +080d16e4 pokemon_storage_system.s GetBoxMonLevelAt +080d1730 pokemon_storage_system.s SetBoxMonNickAt +080d1770 pokemon_storage_system.s GetAndCopyBoxMonDataAt +080d17b8 pokemon_storage_system.s SetBoxMonAt +080d17f8 pokemon_storage_system.s CopyBoxMonAt +080d1838 pokemon_storage_system.s CreateBoxMonAt +080d18b8 pokemon_storage_system.s ZeroBoxMonAt +080d18f4 pokemon_storage_system.s BoxMonAtToMon +080d1934 pokemon_storage_system.s GetBoxedMonPtr +080d1970 pokemon_storage_system.s GetBoxNamePtr +080d1998 pokemon_storage_system.s GetBoxWallpaper +080d19c0 pokemon_storage_system.s SetBoxWallpaper +080d19ec pokemon_storage_system.s sub_080D19EC +080d1ab8 pokemon_storage_system.s CheckFreePokemonStorageSpace +080d1b10 pokemon_storage_system.s CheckBoxMonSanityAt +080d1b70 pokemon_storage_system.s CountStorageNonEggMons +080d1bdc pokemon_storage_system.s CountAllStorageMons +080d1c48 pokemon_storage_system.s AnyStorageMonWithMove +080d1ccc pokemon_storage_system.s ResetWaldaWallpaper +080d1d20 pokemon_storage_system.s SetWaldaWallpaperLockedOrUnlocked +080d1d34 pokemon_storage_system.s IsWaldaWallpaperUnlocked +080d1d48 pokemon_storage_system.s sub_080D1D48_jp +080d1d5c pokemon_storage_system.s SetWaldaWallpaperPatternId +080d1d7c pokemon_storage_system.s GetWaldaWallpaperIconId +080d1d90 pokemon_storage_system.s SetWaldaWallpaperIconId +080d1db0 pokemon_storage_system.s sub_080D1DB0_jp +080d1dc4 pokemon_storage_system.s SetWaldaWallpaperColors +080d1de8 pokemon_storage_system.s GetWaldaPhrasePtr +080d1dfc pokemon_storage_system.s SetWaldaPhrase +080d1e18 pokemon_storage_system.s IsWaldaPhraseEmpty +080d1e3c pokemon_storage_system.s sub_080D1E3C +080d1e90 pokemon_storage_system.s sub_080D1E90_jp +080d1ea4 pokemon_storage_system.s sub_080D1EA4_jp +080d1ee4 pokemon_storage_system.s sub_080D1EE4_jp +080d1fe0 pokemon_storage_system.s sub_080D1FE0_jp +080d2010 pokemon_storage_system.s sub_080D2010_jp +080d204c pokemon_storage_system.s sub_080D204C_jp +080d2094 pokemon_storage_system.s sub_080D2094_jp +080d21b8 pokemon_storage_system.s sub_080D21B8_jp +080d2200 pokemon_storage_system.s sub_080D2200_jp +080d2298 pokemon_storage_system.s sub_080D2298_jp +080d2330 pokemon_storage_system.s sub_080D2330_jp +080d2344 pokemon_storage_system.s sub_080D2344_jp +080d238c pokemon_storage_system.s sub_080D238C_jp +080d2428 pokemon_storage_system.s sub_080D2428_jp +080d2460 pokemon_storage_system.s sub_080D2460_jp +080d24bc pokemon_storage_system.s sub_080D24BC_jp +pokemon_icon.s +080d2564 pokemon_icon.s CreateMonIcon +080d2618 pokemon_icon.s sub_080D2618 +080d26a8 pokemon_icon.s GetIconSpecies +080d26e8 pokemon_icon.s GetUnownLetterByPersonality +080d2724 pokemon_icon.s sub_080D2724 +080d277c pokemon_icon.s GetMonIconPtr +080d2798 pokemon_icon.s sub_080D2798 +080d27a4 pokemon_icon.s LoadMonIconPalettes +080d27c8 pokemon_icon.s SafeLoadMonIconPalette +080d2808 pokemon_icon.s LoadMonIconPalette +080d283c pokemon_icon.s FreeMonIconPalettes +080d2860 pokemon_icon.s SafeFreeMonIconPalette +080d2890 pokemon_icon.s FreeMonIconPalette +080d28b4 pokemon_icon.s sub_080D28B4 +080d28c0 pokemon_icon.s GetMonIconTiles +080d28ec pokemon_icon.s sub_080D28EC +080d2920 pokemon_icon.s GetValidMonIconPalIndex +080d2940 pokemon_icon.s GetMonIconPaletteIndexFromSpecies +080d2950 pokemon_icon.s GetValidMonIconPalettePtr +080d297c pokemon_icon.s UpdateMonIconFrame +080d2a54 pokemon_icon.s CreateMonIconSprite +080d2b2c pokemon_icon.s sub_080D2B2C_jp +080d2b68 pokemon_icon.s sub_080D2B68_jp +script_movement.s +080d2b88 script_movement.s ScriptMovement_StartObjectMovementScript +080d2be0 script_movement.s ScriptMovement_IsObjectMovementFinished +080d2c2c script_movement.s sub_080D2C2C_jp +080d2c4c script_movement.s sub_080D2C4C_jp +080d2c94 script_movement.s sub_080D2C94_jp +080d2ca8 script_movement.s sub_080D2CA8_jp +080d2d14 script_movement.s sub_080D2D14_jp +080d2d50 script_movement.s sub_080D2D50_jp +080d2d84 script_movement.s sub_080D2D84_jp +080d2da8 script_movement.s sub_080D2DA8_jp +080d2dcc script_movement.s sub_080D2DCC_jp +080d2dfc script_movement.s sub_080D2DFC_jp +080d2e24 script_movement.s sub_080D2E24_jp +080d2e5c script_movement.s npc_obj_offscreen_culling_and_flag_update +080d2e6c script_movement.s sub_080D2E6C +080d2e7c script_movement.s sub_080D2E7C +080d2ebc script_movement.s UnfreezeObjects +080d2f00 script_movement.s sub_080D2F00 +080d2f44 script_movement.s sub_080D2F44_jp +fldeff_cut.s +080d2fb8 fldeff_cut.s SetUpFieldMove_Cut +080d32f0 fldeff_cut.s FieldCallback_CutGrass +080d330c fldeff_cut.s FldEff_UseCutOnGrass +080d333c fldeff_cut.s FieldCallback_CutTree +080d335c fldeff_cut.s FldEff_UseCutOnTree +080d338c fldeff_cut.s StartCutGrassFieldEffect +080d33a0 fldeff_cut.s FldEff_CutGrass +080d34b0 fldeff_cut.s SetCutGrassMetatile +080d35a8 fldeff_cut.s GetLongGrassCaseAt +080d35fc fldeff_cut.s SetCutGrassMetatiles +080d3794 fldeff_cut.s HandleLongGrassOnHyper +080d3a00 fldeff_cut.s CutGrassSpriteCallback1 +080d3a14 fldeff_cut.s CutGrassSpriteCallback2 +080d3a70 fldeff_cut.s CutGrassSpriteCallbackEnd +080d3adc fldeff_cut.s FixLongGrassMetatilesWindowTop +080d3b58 fldeff_cut.s FixLongGrassMetatilesWindowBottom +080d3bf4 fldeff_cut.s StartCutTreeFieldEffect +mail_data.s +080d3c0c mail_data.s ClearMailData +080d3c3c mail_data.s ClearMailStruct +080d3c90 mail_data.s MonHasMail +080d3cc0 mail_data.s GiveMailToMon +080d3e4c mail_data.s SpeciesToMailSpecies +080d3e6c mail_data.s MailSpeciesToSpecies +080d3e90 mail_data.s GiveMailToMon2 +080d3f00 mail_data.s DummyMailFunc +080d3f04 mail_data.s TakeMailFromMon +080d3f64 mail_data.s ClearMailItemId +080d3f84 mail_data.s TakeMailFromMon2 +080d4040 mail_data.s ItemIsMail +map_name_popup.s +080d4058 map_name_popup.s sub_080D4058_jp +080d4068 map_name_popup.s ShowMapNamePopup +080d4100 map_name_popup.s Task_MapNamePopUpWindow +080d41f8 map_name_popup.s HideMapNamePopUpWindow +080d4234 map_name_popup.s ShowMapNamePopUpWindow +080d42fc map_name_popup.s sub_080D42FC_jp +080d4464 map_name_popup.s LoadMapNamePopUpWindowBg +item_menu_icons.s +080d452c item_menu_icons.s RemoveBagSprite +080d4584 item_menu_icons.s AddBagVisualSprite +080d45bc item_menu_icons.s SetBagVisualPocketId +080d4618 item_menu_icons.s SpriteCB_BagVisualSwitchingPockets +080d4648 item_menu_icons.s ShakeBagVisual +080d4690 item_menu_icons.s SpriteCB_ShakeBagVisual +080d46b8 item_menu_icons.s AddSwitchPocketRotatingBallSprite +080d4710 item_menu_icons.s UpdateSwitchPocketRotatingBallCoords +080d4734 item_menu_icons.s SpriteCB_SwitchPocketRotatingBallInit +080d4798 item_menu_icons.s SpriteCB_SwitchPocketRotatingBallContinue +080d47bc item_menu_icons.s AddBagItemIconSprite +080d481c item_menu_icons.s RemoveBagItemIconSprite +080d4830 item_menu_icons.s sub_080D4830_jp +080d484c item_menu_icons.s sub_080D484C_jp +080d4870 item_menu_icons.s sub_080D4870_jp +080d489c item_menu_icons.s sub_080D489C_jp +080d48f4 item_menu_icons.s LoadBerryGfx +080d4958 item_menu_icons.s CreateBerryTagSprite +080d4990 item_menu_icons.s FreeBerryTagSpritePalette +080d49a0 item_menu_icons.s LoadSpinningBerryPicGfx +080d4a10 item_menu_icons.s CreateBerryFlavorCircleSprite +battle_anim_mon_movement.s +080d4a30 battle_anim_mon_movement.s AnimTask_ShakeMon +080d4aa4 battle_anim_mon_movement.s AnimTask_ShakeMonStep +080d4b54 battle_anim_mon_movement.s AnimTask_ShakeMon2 +080d4c40 battle_anim_mon_movement.s AnimTask_ShakeMon2Step +080d4d08 battle_anim_mon_movement.s AnimTask_ShakeMonInPlace +080d4d8c battle_anim_mon_movement.s AnimTask_ShakeMonInPlaceStep +080d4ec8 battle_anim_mon_movement.s AnimTask_ShakeAndSinkMon +080d4f10 battle_anim_mon_movement.s sub_080D4F10_jp +080d4f28 battle_anim_mon_movement.s AnimTask_ShakeAndSinkMonStep +080d4fbc battle_anim_mon_movement.s AnimTask_TranslateMonElliptical +080d503c battle_anim_mon_movement.s sub_080D503C +080d50b4 battle_anim_mon_movement.s AnimTask_TranslateMonEllipticalRespectSide +080d50e4 battle_anim_mon_movement.s DoHorizontalLunge +080d5158 battle_anim_mon_movement.s ReverseHorizontalLungeDirection +080d517c battle_anim_mon_movement.s DoVerticalDip +080d51c8 battle_anim_mon_movement.s ReverseVerticalDipDirection +080d51ec battle_anim_mon_movement.s SlideMonToOriginalPos +080d52a8 battle_anim_mon_movement.s SlideMonToOriginalPosStep +080d5318 battle_anim_mon_movement.s SlideMonToOffset +080d53cc battle_anim_mon_movement.s sub_080D53CC_jp +080d54a4 battle_anim_mon_movement.s sub_080D54A4 +080d54d4 battle_anim_mon_movement.s AnimTask_WindUpLunge +080d5568 battle_anim_mon_movement.s AnimTask_WindUpLungePart1 +080d55cc battle_anim_mon_movement.s AnimTask_WindUpLungePart2 +080d5634 battle_anim_mon_movement.s sub_080D5634_jp +080d56f0 battle_anim_mon_movement.s sub_080D56F0 +080d573c battle_anim_mon_movement.s AnimTask_SwayMon +080d57c0 battle_anim_mon_movement.s AnimTask_SwayMonStep +080d58e8 battle_anim_mon_movement.s AnimTask_ScaleMonAndRestore +080d5940 battle_anim_mon_movement.s AnimTask_ScaleMonAndRestoreStep +080d59b8 battle_anim_mon_movement.s sub_080D59B8 +080d5ab0 battle_anim_mon_movement.s sub_080D5AB0_jp +080d5b8c battle_anim_mon_movement.s sub_080D5B8C_jp +080d5c0c battle_anim_mon_movement.s sub_080D5C0C_jp +080d5cf0 battle_anim_mon_movement.s sub_080D5CF0_jp +item.s +080d5dd8 item.s GetBagItemQuantity +080d5df0 item.s SetBagItemQuantity +080d5e08 item.s GetPCItemQuantity +080d5e0c item.s SetPCItemQuantity +080d5e10 item.s ApplyNewEncryptionKeyToBagItems +080d5e68 item.s ApplyNewEncryptionKeyToBagItems_ +080d5e74 item.s SetBagItemsPointers +080d5ec8 item.s CopyItemName +080d5f04 item.s IsBagPocketNonEmpty +080d5f3c item.s CheckBagHasItem +080d5fdc item.s HasAtLeastOneBerry +080d6018 item.s CheckBagHasSpace +080d6140 item.s AddBagItem +080d62bc item.s RemoveBagItem +080d6480 item.s GetPocketByItemId +080d6494 item.s ClearItemSlots +080d64c4 item.s FindFreePCItemSlot +080d64fc item.s CountUsedPCItemSlots +080d6534 item.s CheckPCHasItem +080d6588 item.s AddPCItem +080d6660 item.s RemovePCItem +080d669c item.s CompactPCItems +080d66f4 item.s SwapRegisteredBike +080d672c item.s BagGetItemIdByPocketPosition +080d6748 item.s BagGetQuantityByPocketPosition +080d6770 item.s SwapItemSlots +080d677c item.s CompactItemsInBagPocket +080d67cc item.s SortBerriesOrTMHMs +080d6844 item.s MoveItemSlotInList +080d68ac item.s ClearBag +080d68d4 item.s CountTotalItemQuantityInBag +080d6924 item.s CheckPyramidBagHasItem +080d699c item.s CheckPyramidBagHasSpace +080d6a1c item.s AddPyramidBagItem +080d6b4c item.s RemovePyramidBagItem +080d6c74 item.s SanitizeItemId +080d6c8c item.s ItemId_GetName +080d6cb0 item.s sub_080d6cb0 +080d6cd4 item.s sub_080d6cd4 +080d6cf8 item.s sub_080d6cf8 +080d6d1c item.s sub_080d6d1c +080d6d40 item.s ItemId_GetHoldEffect +080d6d68 item.s ItemId_GetHoldEffectParam +080d6d8c item.s sub_080d6d8c +080d6db0 item.s ItemId_GetImportance +080d6dd4 item.s ItemId_GetPocket +080d6df8 item.s sub_080d6df8 +080d6e20 item.s ItemId_GetSecondaryId +080d6e44 item.s sub_080d6e44 +080d6e6c item.s sub_080d6e6c +contest.s +080d6e94 contest.s TaskDummy1 +080d6e98 contest.s ResetLinkContestBoolean +080d6ea4 contest.s SetupContestGpuRegs +080d6f50 contest.s LoadContestBgAfterMoveAnim +080d6fc8 contest.s InitContestInfoBgs +080d7010 contest.s InitContestWindows +080d7058 contest.s sub_080D7058_jp +080d70a8 contest.s InitContestResources +080d71b4 contest.s AllocContestResources +080d7288 contest.s FreeContestResources +080d7350 contest.s CB2_StartContest +080d74a8 contest.s sub_080D74A8 +080d74e0 contest.s sub_080D74E0_jp +080d75d8 contest.s sub_080D75D8_jp +080d75f4 contest.s sub_080D75F4_jp +080d7614 contest.s sub_080D7614 +080d7670 contest.s SetupContestGraphics +080d78f4 contest.s sub_080D78F4 +080d7934 contest.s sub_080D7934_jp +080d7a68 contest.s CB2_ContestMain +080d7aa8 contest.s vblank_cb_battle +080d7b68 contest.s sub_080D7B68_jp +080d7c50 contest.s sub_080D7C50_jp +080d7cbc contest.s sub_080D7CBC_jp +080d7e40 contest.s sub_080D7E40_jp +080d8038 contest.s sub_080D8038_jp +080d8064 contest.s sub_080d8064 +080d8090 contest.s sub_080D8090_jp +080d8128 contest.s sub_080D8128_jp +080d8158 contest.s sub_080D8158_jp +080d8200 contest.s sub_080D8200_jp +080d824c contest.s sub_080D824C_jp +080d8284 contest.s sub_080D8284_jp +080d8334 contest.s sub_080D8334_jp +080d9900 contest.s sub_080D9900_jp +080d9924 contest.s sub_080D9924_jp +080d9954 contest.s sub_080D9954_jp +080d9988 contest.s sub_080D9988_jp +080d9a4c contest.s sub_080D9A4C_jp +080d9a7c contest.s sub_080D9A7C_jp +080d9b0c contest.s sub_080D9B0C_jp +080d9b38 contest.s sub_080D9B38_jp +080d9b7c contest.s sub_080D9B7C_jp +080d9bbc contest.s sub_080D9BBC_jp +080d9c54 contest.s sub_080D9C54_jp +080d9c8c contest.s sub_080D9C8C_jp +080d9cbc contest.s sub_080D9CBC_jp +080d9ce4 contest.s sub_080D9CE4_jp +080d9d0c contest.s sub_080D9D0C_jp +080d9da4 contest.s sub_080D9DA4_jp +080d9dd8 contest.s sub_080D9DD8_jp +080d9ea4 contest.s sub_080D9EA4_jp +080d9ef0 contest.s sub_080D9EF0_jp +080d9f30 contest.s sub_080D9F30_jp +080d9f90 contest.s sub_080D9F90_jp +080d9fdc contest.s sub_080D9FDC_jp +080da020 contest.s sub_080DA020_jp +080da064 contest.s sub_080DA064_jp +080da074 contest.s TryPutPlayerLast +080da094 contest.s sub_080DA094_jp +080da0b8 contest.s sub_080DA0B8_jp +080da330 contest.s sub_080DA330_jp +080da460 contest.s sub_080DA460_jp +080da58c contest.s sub_080DA58C_jp +080da624 contest.s DrawContestantWindowText +080da664 contest.s Contest_CopyStringWithColor +080da68c contest.s PrintContestantMonName +080da6a4 contest.s PrintContestantMonNameWithColor +080da6f8 contest.s PrintContestantTrainerName +080da710 contest.s sub_080DA710_jp +080da744 contest.s sub_080DA744_jp +080da800 contest.s sub_080DA800_jp +080da828 contest.s sub_080DA828_jp +080da884 contest.s sub_080DA884_jp +080da8d8 contest.s sub_080DA8D8_jp +080daa0c contest.s IsSpeciesNotUnown +080daa20 contest.s SwapMoveDescAndContestTilemaps +080daa50 contest.s sub_080DAA50_jp +080daad4 contest.s sub_080DAAD4_jp +080dac44 contest.s sub_080DAC44_jp +080dace8 contest.s sub_080DACE8_jp +080dad14 contest.s sub_080DAD14_jp +080dad1c contest.s sub_080DAD1C_jp +080dae00 contest.s sub_080DAE00_jp +080daeac contest.s sub_080DAEAC_jp +080daefc contest.s sub_080DAEFC_jp +080dafe8 contest.s sub_080DAFE8_jp +080db000 contest.s sub_080DB000_jp +080db01c contest.s GetChosenMove +080db07c contest.s GetAllChosenMoves +080db0a8 contest.s RankContestants +080db17c contest.s sub_080DB17C +080db1cc contest.s ContestantCanUseTurn +080db204 contest.s sub_080DB204 +080db40c contest.s Contest_IsMonsTurnDisabled +080db444 contest.s sub_080DB444 +080db47c contest.s sub_080DB47C_jp +080db498 contest.s sub_080DB498 +080db4b0 contest.s DetermineFinalStandings +080db638 contest.s SaveLinkContestResults +080db694 contest.s sub_080DB694 +080db6cc contest.s ContestPrintLinkStandby +080db6f4 contest.s FillContestantWindowBgs +080db72c contest.s sub_080DB72C +080db760 contest.s sub_080DB760_jp +080db78c contest.s sub_080DB78C_jp +080db858 contest.s sub_080DB858_jp +080dba20 contest.s sub_080DBA20_jp +080dba6c contest.s sub_080DBA6C_jp +080dbb10 contest.s sub_080DBB10_jp +080dbb28 contest.s sub_080DBB28_jp +080dbb6c contest.s sub_080DBB6C_jp +080dbbb0 contest.s sub_080DBBB0_jp +080dbbf4 contest.s sub_080DBBF4_jp +080dbc54 contest.s sub_080DBC54 +080dbcf8 contest.s CreateApplauseMeterSprite +080dbd4c contest.s sub_080DBD4C +080dbd94 contest.s sub_080DBD94_jp +080dbdd8 contest.s sub_080DBDD8_jp +080dbe08 contest.s sub_080DBE08_jp +080dbe8c contest.s sub_080DBE8C_jp +080dbf50 contest.s sub_080DBF50_jp +080dbf80 contest.s sub_080DBF80_jp +080dbfc8 contest.s sub_080DBFC8_jp +080dbfe0 contest.s sub_080DBFE0_jp +080dc034 contest.s sub_080DC034_jp +080dc118 contest.s sub_080DC118_jp +080dc150 contest.s sub_080DC150_jp +080dc2dc contest.s sub_080DC2DC_jp +080dc318 contest.s sub_080DC318_jp +080dc334 contest.s sub_080DC334_jp +080dc34c contest.s sub_080DC34C_jp +080dc3e8 contest.s sub_080DC3E8_jp +080dc43c contest.s sub_080DC43C +080dc46c contest.s ContestDebugTogglePointTotal +080dc4ac contest.s ContestDebugDoPrint +080dc5bc contest.s SortContestants +080dc7b0 contest.s DrawContestantWindows +080dc7e4 contest.s sub_080DC7E4 +080dcb38 contest.s SetContestantEffectStringID +080dcb54 contest.s SetContestantEffectStringID2 +080dcb70 contest.s SetStartledString +080dcbc0 contest.s sub_080DCBC0_jp +080dccc4 contest.s MakeContestantNervous +080dccf4 contest.s ApplyNextTurnOrder +080dce40 contest.s sub_080DCE40 +080dce84 contest.s sub_080DCE84_jp +080dd0a4 contest.s UpdateApplauseMeter +080dd154 contest.s Contest_GetMoveExcitement +080dd184 contest.s StartApplauseOverflowAnimation +080dd1c4 contest.s Task_ApplauseOverflowAnimation +080dd270 contest.s StartMoveApplauseMeterOnscreen +080dd2d0 contest.s Task_MoveApplauseMeterOnscreen +080dd34c contest.s TryMoveApplauseMeterOffscreen +080dd3b0 contest.s Task_MoveApplauseMeterOffscreen +080dd440 contest.s ShowAndUpdateApplauseMeter +080dd484 contest.s Task_ShowAndUpdateApplauseMeter +080dd50c contest.s HideApplauseMeterNoAnim +080dd548 contest.s ShowApplauseMeterNoAnim +080dd570 contest.s sub_080DD570_jp +080dd594 contest.s sub_080DD594_jp +080dd634 contest.s sub_080DD634_jp +080dd6e4 contest.s sub_080DD6E4_jp +080dd76c contest.s sub_080DD76C +080dd854 contest.s GetTurnOrderNumberGfx +080dd890 contest.s sub_080DD890 +080dd94c contest.s sub_080DD94C_jp +080dd988 contest.s sub_080DD988_jp +080ddab4 contest.s sub_080DDAB4_jp +080ddb88 contest.s sub_080DDB88_jp +080ddbc8 contest.s sub_080DDBC8_jp +080ddc0c contest.s sub_080DDC0C_jp +080ddd24 contest.s sub_080DDD24_jp +080ddd58 contest.s sub_080DDD58_jp +080dddc0 contest.s sub_080DDDC0_jp +080dde00 contest.s sub_080DDE00_jp +080ddef8 contest.s sub_080DDEF8 +080ddf98 contest.s SanitizeMove +080ddfb0 contest.s SanitizeSpecies +080ddfc8 contest.s sub_080DDFC8 +080de114 contest.s sub_080DE114_jp +080de140 contest.s sub_080DE140_jp +080de184 contest.s sub_080DE184_jp +080de1c0 contest.s sub_080DE1C0 +080de20c contest.s SelectContestMoveBankTarget +080de2d4 contest.s Contest_PrintTextToBg0WindowStd +080de338 contest.s Contest_StartTextPrinter +080de3c0 contest.s ContestBG_FillBoxWithIncrementingTile +080de418 contest.s ContestBG_FillBoxWithTile +080de454 contest.s Contest_RunTextPrinters +080de468 contest.s Contest_SetBgCopyFlags +080de47c contest.s ResetContestLinkResults +080de4b0 contest.s sub_080DE4B0_jp +080de6b0 contest.s sub_080DE6B0_jp +080de748 contest.s ClearContestWinnerPicsInContestHall +080de788 contest.s sub_080DE788 +080de958 contest.s sub_080DE958_jp +080dec00 contest.s sub_080DEC00_jp +080dede0 contest.s ContestDebugToggleBitfields +080dee2c contest.s ContestDebugPrintBitStrings +shop.s +080deff0 shop.s CB2_BuyMenu +080df098 shop.s SetShopMenuCallback +080df0a4 shop.s SetShopItemsForSale +080df0d4 shop.s Task_ShopMenu +080df11c shop.s Task_HandleShopMenuBuy +080df158 shop.s Task_HandleShopMenuSell +080df194 shop.s CB2_ExitSellMenu +080df1b4 shop.s Task_HandleShopMenuQuit +080df1f0 shop.s Task_GoToBuyOrSellMenu +080df22c shop.s MapPostLoadHook_ReturnToShopMenu +080df244 shop.s Task_ReturnToShopMenu +080df290 shop.s ShowShopMenuAfterExitingBuyOrSellMenu +080df2b0 shop.s BuyMenuPrintPriceInList +080df2cc shop.s VBlankCB_BuyMenu +080df2e0 shop.s CB2_InitBuyMenu +080df448 shop.s BuyMenuFreeMemory +080df478 shop.s BuyMenuBuildListMenuTemplate +080df554 shop.s BuyMenuSetListEntry +080df594 shop.s BuyMenuPrintItemDescriptionAndShowItemIcon +080df670 shop.s CreateShopMenu +080df70c shop.s BuyMenuAddScrollIndicatorArrows +080df768 shop.s BuyMenuRemoveScrollIndicatorArrows +080df794 shop.s BuyMenuPrintCursor +080df7c8 shop.s BuyMenuAddItemIcon +080df860 shop.s BuyMenuRemoveItemIcon +080df8b0 shop.s BuyMenuInitBgs +080df968 shop.s BuyMenuDecompressBgGraphics +080df9ac shop.s BuyMenuInitWindows +080df9e8 shop.s BuyMenuPrint +080dfa2c shop.s BuyMenuDisplayMessage +080dfa68 shop.s BuyMenuDrawGraphics +080dfab4 shop.s BuyMenuDrawMapGraphics +080dfac8 shop.s BuyMenuDrawMapBg +080dfbb4 shop.s BuyMenuDrawMapMetatile +080dfc78 shop.s BuyMenuDrawMapMetatileLayer +080dfca0 shop.s BuyMenuCollectEventObjectData +080dfe34 shop.s BuyMenuDrawEventObjects +080dff58 shop.s BuyMenuCheckIfEventObjectOverlapsMenuBg +080dff84 shop.s BuyMenuCopyMenuBgToBg1TilemapBuffer +080dffcc shop.s BuyMenuCheckForOverlapWithMenuBg +080e000c shop.s Task_BuyMenu +080e01f0 shop.s Task_BuyHowManyDialogueInit +080e02d4 shop.s Task_BuyHowManyDialogueHandleInput +080e03f8 shop.s BuyMenuConfirmPurchase +080e0428 shop.s BuyMenuTryMakePurchase +080e04d4 shop.s BuyMenuSubtractMoney +080e0558 shop.s Task_ReturnToItemListAfterItemPurchase +080e05c4 shop.s Task_ReturnToItemListAfterDecorationPurchase +080e05ec shop.s BuyMenuReturnToItemList +080e0638 shop.s BuyMenuPrintItemQuantityAndPrice +080e06b4 shop.s ExitBuyMenu +080e06fc shop.s Task_ExitBuyMenu +080e0730 shop.s ClearItemPurchases +080e0750 shop.s RecordItemPurchase +080e07d0 shop.s CreatePokemartMenu +080e07f4 shop.s CreateDecorationShop1Menu +080e0814 shop.s CreateDecorationShop2Menu +fldeff_escalator.s +080e0834 fldeff_escalator.s sub_080E0834_jp +080e0990 fldeff_escalator.s sub_080E0990_jp +080e0a58 fldeff_escalator.s sub_080E0A58_jp +080e0aa4 fldeff_escalator.s sub_080E0AA4_jp +080e0abc fldeff_escalator.s sub_080E0ABC_jp +080e0ad0 fldeff_escalator.s sub_080E0AD0_jp +berry.s +080e0b04 berry.s ClearEnigmaBerries +080e0b30 berry.s SetEnigmaBerry +080e0b5c berry.s GetEnigmaBerryChecksum +080e0b78 berry.s IsEnigmaBerryValid +080e0bc8 berry.s GetBerryInfo +080e0c0c berry.s GetBerryTreeInfo +080e0c28 berry.s EventObjectInteractionWaterBerryTree +080e0c84 berry.s IsPlayerFacingEmptyBerryTreePatch +080e0cbc berry.s TryToWaterBerryTree +080e0ce0 berry.s ClearBerryTrees +080e0d14 berry.s BerryTreeGrow +080e0dbc berry.s BerryTreeTimeUpdate +080e0e68 berry.s PlantBerryTree +080e0ed0 berry.s RemoveBerryTree +080e0ef8 berry.s GetBerryTypeByBerryTreeId +080e0f14 berry.s GetStageByBerryTreeId +080e0f34 berry.s ItemIdToBerryType +080e0f5c berry.s BerryTypeToItemId +080e0f84 berry.s GetBerryNameByBerryType +080e0fa4 berry.s ResetBerryTreeSparkleFlag +080e0fbc berry.s BerryTreeGetNumStagesWatered +080e0ff8 berry.s GetNumStagesWateredByBerryTreeId +080e1010 berry.s CalcBerryYieldInternal +080e1064 berry.s CalcBerryYield +080e1090 berry.s GetBerryCountByBerryTreeId +080e10a8 berry.s GetStageDurationByBerryType +080e10c0 berry.s EventObjectInteractionGetBerryTreeData +080e1154 berry.s Bag_ChooseBerry +080e1164 berry.s EventObjectInteractionPlantBerryTree +080e119c berry.s EventObjectInteractionPickBerryTree +080e11e8 berry.s EventObjectInteractionRemoveBerryTree +080e121c berry.s PlayerHasBerries +080e122c berry.s ResetBerryTreeSparkleFlags +script_menu.s +080e12c8 script_menu.s ScriptMenu_Multichoice +080e1318 script_menu.s ScriptMenu_MultichoiceWithDefault +080e1378 script_menu.s sub_080E1378_jp +080e13bc script_menu.s ScrSpecial_CreatePCMenu +080e13fc script_menu.s DrawMultichoiceMenu +080e14cc script_menu.s sub_080E14CC_jp +080e1568 script_menu.s Task_HandleMultichoiceInput +080e1618 script_menu.s ScriptMenu_YesNo +080e1650 script_menu.s IsScriptActive +080e166c script_menu.s Task_HandleYesNoInput +080e16e0 script_menu.s sp106_CreateStartMenu +080e17ec script_menu.s Task_HandleMultichoiceGridInput +080e1850 script_menu.s sub_080E1850_jp +080e1880 script_menu.s CreatePCMenu +080e1a0c script_menu.s ScriptMenu_DisplayPCStartupPrompt +080e1a40 script_menu.s display_text_and_get_width_internal +080e1a70 script_menu.s sub_080E1A70_jp +080e1d6c script_menu.s sub_080E1D6C +080e1d8c script_menu.s Task_PokemonPicWindow +080e1df4 script_menu.s ScriptMenu_ShowPokemonPic +080e1eb8 script_menu.s ScriptMenu_GetPicboxWaitFunc +080e1ef0 script_menu.s IsPicboxClosed +080e1f10 script_menu.s CreateWindowFromRect +080e1f6c script_menu.s ClearToTransparentAndRemoveWindow +080e1f88 script_menu.s sub_080E1F88_jp +080e2070 script_menu.s convert_pixel_width_to_tile_width +080e20a0 script_menu.s CreateStartMenu +080e21f8 script_menu.s sub_080E21F8_jp +naming_screen.s +080e2244 naming_screen.s DoNamingScreen +080e22d0 naming_screen.s C2_NamingScreen +080e2374 naming_screen.s NamingScreen_Init +080e246c naming_screen.s sub_080E246C +080e24ac naming_screen.s NamingScreen_InitBGs +080e265c naming_screen.s sub_080E265C_jp +080e2678 naming_screen.s sub_080E2678_jp +080e270c naming_screen.s sub_080E270C_jp +080e2734 naming_screen.s GetCurrentPageColumnCount +080e2758 naming_screen.s sub_080E2758_jp +080e2788 naming_screen.s sub_080E2788_jp +080e27b8 naming_screen.s MainState_BeginFadeIn +080e28f0 naming_screen.s MainState_WaitFadeIn +080e292c naming_screen.s MainState_HandleInput +080e293c naming_screen.s MainState_MoveToOKButton +080e296c naming_screen.s MainState_6 +080e29dc naming_screen.s MainState_BeginFadeInOut +080e2a10 naming_screen.s MainState_WaitFadeOutAndExit +080e2a78 naming_screen.s DisplaySentToPCMessage +080e2b98 naming_screen.s sub_080E2B98_jp +080e2bd4 naming_screen.s MainState_StartPageSwap +080e2c14 naming_screen.s sub_080E2C14_jp +080e2c6c naming_screen.s StartPageSwapAnim +080e2c8c naming_screen.s Task_HandlePageSwapAnim +080e2cc4 naming_screen.s IsPageSwapAnimNotInProgress +080e2ce4 naming_screen.s PageSwapAnimState_Init +080e2d0c naming_screen.s PageSwapAnimState_1 +080e2da0 naming_screen.s PageSwapAnimState_2 +080e2e34 naming_screen.s PageSwapAnimState_Done +080e2e50 naming_screen.s MoveCursorToOKButton +080e2e78 naming_screen.s sub_080E2E78 +080e2eec naming_screen.s Task_80E39BC +080e2fa4 naming_screen.s sub_080E2FA4_jp +080e3018 naming_screen.s sub_080E3018_jp +080e3040 naming_screen.s sub_080E3040_jp +080e3060 naming_screen.s sub_080E3060_jp +080e3144 naming_screen.s sub_080E3144_jp +080e3190 naming_screen.s sub_080E3190_jp +080e31ec naming_screen.s sub_080E31EC_jp +080e3208 naming_screen.s CursorInit +080e329c naming_screen.s sub_080E329C_jp +080e32e4 naming_screen.s GetCursorPos +080e3310 naming_screen.s sub_080E3310_jp +080e3320 naming_screen.s sub_080E3320_jp +080e3378 naming_screen.s sub_080E3378_jp +080e33bc naming_screen.s sub_080E33BC_jp +080e33e8 naming_screen.s IsCursorAnimFinished +080e3414 naming_screen.s GetKeyRoleAtCursorPos +080e344c naming_screen.s CreatePageSwitcherSprites +080e3510 naming_screen.s sub_080E3510 +080e3544 naming_screen.s sub_080E3544_jp +080e356c naming_screen.s sub_080E356C_jp +080e35c0 naming_screen.s sub_080E35C0_jp +080e35c4 naming_screen.s sub_080E35C4_jp +080e3638 naming_screen.s sub_080E3638_jp +080e3678 naming_screen.s sub_080E3678 +080e36d8 naming_screen.s CreateBackOkSprites +080e3750 naming_screen.s CreateUnderscoreSprites +080e3820 naming_screen.s CreateInputTargetIcon +080e383c naming_screen.s TaskDummy3 +080e384c naming_screen.s TaskDummy2 +080e3850 naming_screen.s NamingScreen_CreatePlayerIcon +080e38ac naming_screen.s NamingScreen_CreatePCIcon +080e38ec naming_screen.s NamingScreen_CreateMonIcon +080e3948 naming_screen.s NamingScreen_CreateWandaDadIcon +080e3988 naming_screen.s HandleKeyboardEvent +080e39e4 naming_screen.s KeyboardKeyHandler_Character +080e3a30 naming_screen.s KeyboardKeyHandler_Page +080e3a58 naming_screen.s KeyboardKeyHandler_Backspace +080e3a7c naming_screen.s KeyboardKeyHandler_OK +080e3ab8 naming_screen.s sub_080E3AB8 +080e3ad0 naming_screen.s InputInit +080e3ae4 naming_screen.s GetInputEvent +080e3b08 naming_screen.s SetInputState +080e3b34 naming_screen.s sub_080E3B34_jp +080e3b64 naming_screen.s InputState_2 +080e3b6c naming_screen.s InputState_Enabled +080e3bd0 naming_screen.s sub_080E3BD0_jp +080e3bf4 naming_screen.s HandleDpadMovement +080e3d50 naming_screen.s sub_080E3D50_jp +080e3da4 naming_screen.s sub_080E3DA4_jp +080e3e24 naming_screen.s sub_080E3E24_jp +080e3e3c naming_screen.s nullsub_10 +080e3e4c naming_screen.s sub_080E3E4C_jp +080e3e68 naming_screen.s InputState_Disabled +080e3e78 naming_screen.s sub_080E3E78_jp +080e3e7c naming_screen.s sub_080E3E7C_jp +080e3eec naming_screen.s GetCharAtKeyboardPos +080e3f20 naming_screen.s GetTextCaretPosition +080e3f74 naming_screen.s GetPreviousTextCaretPosition +080e3fb8 naming_screen.s DeleteTextCharacter +080e4018 naming_screen.s sub_080E4018_jp +080e40a8 naming_screen.s sub_080E40A8_jp +080e4110 naming_screen.s sub_080E4110_jp +080e414c naming_screen.s sub_080E414C_jp +080e4188 naming_screen.s AddTextCharacter +080e41b0 naming_screen.s sub_080E41B0_jp +080e4208 naming_screen.s sub_080E4208_jp +080e4248 naming_screen.s MainState_WaitPageSwap +080e4318 naming_screen.s sub_080E4318_jp +080e437c naming_screen.s sub_080E437C +080e43ec naming_screen.s choose_name_or_words_screen_load_bg_tile_patterns +080e4450 naming_screen.s sub_080E4450_jp +080e4460 naming_screen.s choose_name_or_words_screen_apply_bg_pals +080e4490 naming_screen.s sub_080E4490_jp +080e44a4 naming_screen.s sub_080E44A4_jp +080e4510 naming_screen.s sub_080E4510_jp +080e45d0 naming_screen.s sub_080E45D0_jp +080e4648 naming_screen.s sub_080E4648_jp +080e46e4 naming_screen.s sub_080E46E4_jp +080e474c naming_screen.s sub_080E474C_jp +080e4764 naming_screen.s NamingScreen_TurnOffScreen +080e4778 naming_screen.s NamingScreen_InitDisplayMode +080e4788 naming_screen.s VBlankCB_NamingScreen +080e4810 naming_screen.s SetCursorPos +080e4830 naming_screen.s sub_080E4830 +080e4868 naming_screen.s sub_080E4868 +080e4890 naming_screen.s sub_080E4890 +080e48b8 naming_screen.s sub_080E48B8 +080e48e0 naming_screen.s sub_080E48E0 +money.s +080e4908 money.s GetMoney +080e491c money.s SetMoney +080e4930 money.s IsEnoughMoney +080e4948 money.s AddMoney +080e4980 money.s RemoveMoney +080e49a4 money.s IsEnoughForCostInVar0x8005 +080e49c8 money.s SubtractMoneyFromVar0x8005 +080e49e8 money.s PrintMoneyAmountInMoneyBox +080e4a08 money.s PrintMoneyAmountInMoneyBoxWithBorder +080e4a74 money.s PrintMoneyAmount +080e4ab0 money.s ChangeAmountInMoneyBox +080e4ac8 money.s DrawMoneyBox +080e4b60 money.s HideMoneyBox +080e4b88 money.s AddMoneyLabelObject +080e4bd0 money.s RemoveMoneyLabelObject +contest_effect.s +080e4bf0 contest_effect.s AreMovesContestCombo +080e4c58 contest_effect.s ContestEffect_MakeScramblingTurnOrderEasier +080e4c5c contest_effect.s ContestEffect_UserMoreEasilyStartled +080e4c8c contest_effect.s ContestEffect_GreatAppealButNoMoreMoves +080e4cbc contest_effect.s ContestEffect_RepetitionNotBoring +080e4d10 contest_effect.s ContestEffect_AvoidStartleOnce +080e4d3c contest_effect.s ContestEffect_AvoidStartle +080e4d6c contest_effect.s ContestEffect_AvoidStartleSlightly +080e4d98 contest_effect.s ContestEffect_UserLessEasilyStartled +080e4dc8 contest_effect.s ContestEffect_StartleFrontMon +080e4e40 contest_effect.s ContestEffect_StartlePrevMons +080e4ebc contest_effect.s ContestEffect_StartlePrevMon2 +080e4ef4 contest_effect.s ContestEffect_StartlePrevMons2 +080e4fa8 contest_effect.s ContestEffect_ShiftJudgeAttention +080e5068 contest_effect.s ContestEffect_StartleMonWithJudgesAttention +080e5114 contest_effect.s ContestEffect_JamsOthersButMissOneTurn +080e514c contest_effect.s ContestEffect_StartleMonsSameTypeAppeal +080e518c contest_effect.s ContestEffect_StartleMonsCoolAppeal +080e51ac contest_effect.s ContestEffect_StartleMonsBeautyAppeal +080e51cc contest_effect.s ContestEffect_StartleMonsCuteAppeal +080e51ec contest_effect.s ContestEffect_StartleMonsSmartAppeal +080e520c contest_effect.s ContestEffect_StartleMonsToughAppeal +080e522c contest_effect.s ContestEffect_MakeFollowingMonNervous +080e52b0 contest_effect.s ContestEffect_MakeFollowingMonsNervous +080e54b0 contest_effect.s ContestEffect_WorsenConditionOfPrevMons +080e5558 contest_effect.s ContestEffect_BadlyStartlesMonsInGoodCondition +080e55e0 contest_effect.s ContestEffect_BetterIfFirst +080e5638 contest_effect.s ContestEffect_BetterIfLast +080e5690 contest_effect.s ContestEffect_AppealAsGoodAsPrevOnes +080e5740 contest_effect.s ContestEffect_AppealAsGoodAsPrevOne +080e57c0 contest_effect.s ContestEffect_BetterWhenLater +080e5844 contest_effect.s ContestEffect_QualityDependsOnTiming +080e58f8 contest_effect.s ContestEffect_BetterIfSameType +080e59e8 contest_effect.s ContestEffect_BetterIfDiffType +080e5a94 contest_effect.s ContestEffect_AffectedByPrevAppeal +080e5b10 contest_effect.s ContestEffect_ImproveConditionPreventNervousness +080e5b74 contest_effect.s ContestEffect_BetterWithGoodCondition +080e5bc4 contest_effect.s ContestEffect_NextAppealEarlier +080e5cfc contest_effect.s ContestEffect_NextAppealLater +080e5e40 contest_effect.s ContestEffect_HighlyAppealing +080e5e44 contest_effect.s ContestEffect_ScrambleNextTurnOrder +080e5f54 contest_effect.s ContestEffect_ExciteAudienceInAnyContest +080e5f98 contest_effect.s ContestEffect_BadlyStartleMonsWithGoodAppeals +080e6044 contest_effect.s ContestEffect_BetterWhenAudienceExcited +080e60c8 contest_effect.s ContestEffect_DontExciteAudience +080e6110 contest_effect.s JamByMoveCategory +080e61a4 contest_effect.s CanUnnerveContestant +080e6208 contest_effect.s WasAtLeastOneOpponentJammed +080e6318 contest_effect.s JamContestant +080e634c contest_effect.s RoundTowardsZero +080e6390 contest_effect.s RoundUp +record_mixing.s +080e63c4 record_mixing.s RecordMixingPlayerSpotTriggered +080e63d4 record_mixing.s SetSrcLookupPointers +080e647c record_mixing.s PrepareUnknownExchangePacket +080e6530 record_mixing.s PrepareExchangePacketForRubySapphire +080e6604 record_mixing.s PrepareExchangePacket +080e6738 record_mixing.s ReceiveExchangePacket +080e68cc record_mixing.s PrintTextOnRecordMixing +080e6900 record_mixing.s Task_RecordMixing_SoundEffect +080e6934 record_mixing.s Task_RecordMixing_Main +080e6afc record_mixing.s Task_MixingRecordsRecv +080e6d44 record_mixing.s Task_SendPacket +080e6e08 record_mixing.s Task_CopyReceiveBuffer +080e6f44 record_mixing.s sub_080E6F44 +080e6f78 record_mixing.s Task_ReceivePacket +080e6fac record_mixing.s Task_SendPacket_SwitchToReceive +080e6fd4 record_mixing.s LoadPtrFromTaskData +080e6fe0 record_mixing.s StorePtrInTaskData +080e6fe8 record_mixing.s GetMultiplayerId_ +080e6ff8 record_mixing.s GetPlayerRecvBuffer +080e7008 record_mixing.s ShufflePlayerIndices +080e709c record_mixing.s ReceiveOldManData +080e711c record_mixing.s ReceiveBattleTowerData +080e71e4 record_mixing.s ReceiveLilycoveLadyData +080e726c record_mixing.s sub_080E726C +080e7274 record_mixing.s sub_080E7274_jp +080e72fc record_mixing.s sub_080E72FC_jp +080e7324 record_mixing.s sub_080E7324_jp +080e7330 record_mixing.s ReceiveDaycareMailData +080e7750 record_mixing.s ReceiveGiftItem +080e77e0 record_mixing.s Task_DoRecordMixing +080e78f8 record_mixing.s sub_080E78F8_jp +080e7a48 record_mixing.s GetPlayerHallRecords +080e7c04 record_mixing.s sub_080E7C04_jp +080e7c50 record_mixing.s ReceiveApprenticeData +080e7d60 record_mixing.s sub_080E7D60 +080e8068 record_mixing.s sub_080E8068_jp +080e80b4 record_mixing.s sub_080E80B4_jp +080e810c record_mixing.s sub_080E810C +080e8194 record_mixing.s ReceiveRankingHallRecords +080e81e0 record_mixing.s sub_080E81E0_jp +080e823c record_mixing.s SanitizeEmeraldBattleTowerRecord +080e8290 record_mixing.s sub_080E8290_jp +080e82dc record_mixing.s SanitizeRubyBattleTowerRecord +080e82f4 record_mixing.s sub_080E82F4_jp +080e8320 record_mixing.s sub_080E8320_jp +080e84a4 record_mixing.s SanitizeDayCareMailForRuby +080e85f4 record_mixing.s sub_080E85F4_jp +080e8688 record_mixing.s sub_080E8688 +080e8878 record_mixing.s sub_080E8878 +080e88a8 record_mixing.s sub_080E88A8 +080e88e8 record_mixing.s sub_080E88E8 +080e8928 record_mixing.s sub_080E8928 +080e8978 record_mixing.s sub_080E8978 +080e89ec record_mixing.s sub_080E89EC +080e8aa0 record_mixing.s sub_080E8AA0 +080e8d68 record_mixing.s sub_080E8D68 +080e8fa4 record_mixing.s sub_080E8FA4 +080e900c record_mixing.s sub_080E900C +080e90c0 record_mixing.s sub_080E90C0 +080e91e4 record_mixing.s sub_080E91E4 +080e9284 record_mixing.s sub_080E9284 +080e9410 record_mixing.s sub_080E9410 +080e94b8 record_mixing.s sub_080E94B8 +080e9560 record_mixing.s sub_080E9560 +080e96a8 record_mixing.s sub_080E96A8 +080e96c8 record_mixing.s sub_080E96C8 +080e96dc record_mixing.s sub_080E96DC +080e9734 record_mixing.s sub_080E9734 +080e9750 record_mixing.s sub_080E9750 +secret_base.s +080e977c secret_base.s ClearSecretBase +080e97b4 secret_base.s ClearSecretBases +080e97e4 secret_base.s SetCurSecretBaseId +080e97f8 secret_base.s TrySetCurSecretBaseIndex +080e9854 secret_base.s CheckPlayerHasSecretBase +080e9884 secret_base.s GetSecretBaseTypeInFrontOfPlayer_ +080e9924 secret_base.s GetSecretBaseTypeInFrontOfPlayer +080e993c secret_base.s FindMetatileIdMapCoords +080e99d8 secret_base.s ToggleSecretBaseEntranceMetatile +080e9a80 secret_base.s GetNameLength +080e9aa4 secret_base.s SetPlayerSecretBase +080e9b6c secret_base.s SetOccupiedSecretBaseEntranceMetatiles +080e9c28 secret_base.s SetSecretBaseWarpDestination +080e9c5c secret_base.s Task_EnterSecretBase +080e9cf4 secret_base.s EnterSecretBase +080e9d28 secret_base.s SecretBaseMapPopupEnabled +080e9d54 secret_base.s EnterNewlyCreatedSecretBase_WaitFadeIn +080e9d94 secret_base.s EnterNewlyCreatedSecretBase_StartFadeIn +080e9df8 secret_base.s Task_EnterNewlyCreatedSecretBase +080e9e84 secret_base.s EnterNewlyCreatedSecretBase +080e9ea0 secret_base.s CurMapIsSecretBase +080e9ec4 secret_base.s InitSecretBaseAppearance +080e9fd4 secret_base.s InitSecretBaseDecorationSprites +080ea218 secret_base.s HideSecretBaseDecorationSprites +080ea274 secret_base.s SetSecretBaseOwnerGfxId +080ea2a8 secret_base.s SetCurSecretBaseIdFromPosition +080ea308 secret_base.s WarpIntoSecretBase +080ea320 secret_base.s TrySetCurSecretBase +080ea344 secret_base.s Task_WarpOutOfSecretBase +080ea3c8 secret_base.s WarpOutOfSecretBase +080ea3e4 secret_base.s IsCurSecretBaseOwnedByAnotherPlayer +080ea420 secret_base.s GetSecretBaseMapName +080ea46c secret_base.s RegistryMenu_OnCursorMove +080ea48c secret_base.s DeleteRegistry_Yes +080ea4d8 secret_base.s IsSecretBaseRegistered +080ea50c secret_base.s GetAverageEVs +080ea574 secret_base.s SetPlayerSecretBaseParty +080ea6f0 secret_base.s ClearAndLeaveSecretBase +080ea720 secret_base.s MoveOutOfSecretBase +080ea730 secret_base.s ClosePlayerSecretBaseEntrance +080ea7d0 secret_base.s MoveOutOfSecretBaseFromOutside +080ea808 secret_base.s GetNumRegisteredSecretBases +080ea83c secret_base.s GetCurSecretBaseRegistrationValidity +080ea88c secret_base.s ToggleCurSecretBaseRegistry +080ea8d4 secret_base.s ShowSecretBaseDecorationMenu +080ea8e8 secret_base.s ShowSecretBaseRegistryMenu +080ea8fc secret_base.s Task_ShowSecretBaseRegistryMenu +080ea98c secret_base.s BuildRegistryMenuItems +080eaa4c secret_base.s sub_080EAA4C_jp +080eaa60 secret_base.s FinalizeRegistryMenu +080eaaa4 secret_base.s AddRegistryMenuScrollArrows +080eaaf0 secret_base.s HandleRegistryMenuInput +080eab80 secret_base.s ShowRegistryMenuActions +080eabf8 secret_base.s HandleRegistryMenuActionsInput +080eac44 secret_base.s ShowRegistryMenuDeleteConfirmation +080eacb4 secret_base.s ShowRegistryMenuDeleteYesNo +080eacd4 secret_base.s DeleteRegistry_Yes_Callback +080ead68 secret_base.s sub_080EAD68_jp +080ead84 secret_base.s DeleteRegistry_No +080eadd4 secret_base.s ReturnToMainRegistryMenu +080eae18 secret_base.s GoToSecretBasePCMainMenu +080eae54 secret_base.s GetSecretBaseOwnerType +080eae98 secret_base.s GetSecretBaseTrainerLoseText +080eaf2c secret_base.s PrepSecretBaseBattleFlags +080eaf54 secret_base.s sub_080EAF54_jp +080eaf9c secret_base.s GetSecretBaseOwnerInteractionState +080eb02c secret_base.s SecretBasePerStepCallback +080eb470 secret_base.s sub_080EB470_jp +080eb4cc secret_base.s SecretBasesHaveSameTrainerId +080eb4fc secret_base.s SecretBasesHaveSameTrainerName +080eb548 secret_base.s SecretBasesBelongToSamePlayer +080eb588 secret_base.s GetSecretBaseIndexFromId +080eb5d0 secret_base.s FindAvailableSecretBaseIndex +080eb610 secret_base.s sub_080EB610 +080eb65c secret_base.s sub_080EB65C_jp +080eb6e8 secret_base.s SortSecretBasesByRegistryStatus +080eb798 secret_base.s sub_080EB798_jp +080eb7cc secret_base.s SecretBaseBelongsToPlayer +080eb84c secret_base.s DeleteFirstOldBaseFromPlayerInRecordMixingFriendsRecords +080eb904 secret_base.s sub_080EB904 +080eb984 secret_base.s sub_080EB984_jp +080eba80 secret_base.s sub_080EBA80_jp +080ebaa4 secret_base.s sub_080EBAA4_jp +080ebae0 secret_base.s sub_080EBAE0_jp +080ebb64 secret_base.s ReceiveSecretBasesData +080ebd2c secret_base.s ClearJapaneseSecretBases +080ebd4c secret_base.s sub_080EBD4C +080ebdb8 secret_base.s sub_080EBDB8_jp +080ebe30 secret_base.s sub_080EBE30_jp +080ebe68 secret_base.s sub_080EBE68_jp +080ebea0 secret_base.s sub_080EBEA0_jp +080ebf08 secret_base.s sub_080EBF08_jp +080ebf70 secret_base.s CopyCurSecretBaseOwnerName_StrVar1 +080ebfd8 secret_base.s GetSecretBaseName +080ec038 secret_base.s SetSecretBaseSecretsTvFlags_Poster +080ec10c secret_base.s SetSecretBaseSecretsTvFlags_MiscFurnature +080ec580 secret_base.s SetSecretBaseSecretsTvFlags_LargeDecorationSpot +080ec6c8 secret_base.s SetSecretBaseSecretsTvFlags_SmallDecorationSpot +080eca1c secret_base.s SetSecretBaseSecretsTvFlags_SandOrnament +tv.s +080eca80 tv.s ClearTVShowData +080ecadc tv.s special_0x44 +080ecb94 tv.s FindAnyTVShowOnTheAir +080ecbe4 tv.s UpdateTVScreensOnMap +080ecc6c tv.s SetTVMetatilesOnMap +080eccd0 tv.s TurnOffTVScreen +080eccec tv.s TurnOnTVScreen +080ecd08 tv.s special_0x45 +080ecd2c tv.s FindFirstActiveTVShowThatIsNotAMassOutbreak +080ecd74 tv.s special_0x4a +080ecdbc tv.s ResetGabbyAndTy +080ecebc tv.s GabbyAndTyBeforeInterview +080ecfe8 tv.s GabbyAndTyAfterInterview +080ed088 tv.s TakeTVShowInSearchOfTrainersOffTheAir +080ed0a4 tv.s GabbyAndTyGetBattleNum +080ed0d0 tv.s IsTVShowInSearchOfTrainersAiring +080ed0e8 tv.s GabbyAndTyGetLastQuote +080ed12c tv.s GabbyAndTyGetLastBattleTrivia +080ed178 tv.s GabbyAndTySetScriptVarsToEventObjectLocalIds +080ed25c tv.s InterviewAfter +080ed2c8 tv.s PutPokemonTodayCaughtOnAir +080ed438 tv.s UpdateWorldOfMastersAndPutItOnTheAir +080ed490 tv.s PutPokemonTodayFailedOnTheAir +080ed57c tv.s tv_store_id_3x +080ed5a4 tv.s tv_store_id_2x +080ed5cc tv.s InterviewAfter_ContestLiveUpdates +080ed694 tv.s PutBattleUpdateOnTheAir +080ed784 tv.s Put3CheersForPokeblocksOnTheAir +080ed870 tv.s PutFanClubSpecialOnTheAir +080ed900 tv.s ContestLiveUpdates_BeforeInterview_1 +080ed950 tv.s ContestLiveUpdates_BeforeInterview_2 +080ed990 tv.s ContestLiveUpdates_BeforeInterview_3 +080ed9d0 tv.s ContestLiveUpdates_BeforeInterview_4 +080eda10 tv.s ContestLiveUpdates_BeforeInterview_5 +080edab0 tv.s InterviewAfter_BravoTrainerPokemonProfile +080edb90 tv.s BravoTrainerPokemonProfile_BeforeInterview1 +080edbe4 tv.s BravoTrainerPokemonProfile_BeforeInterview2 +080edcac tv.s InterviewAfter_BravoTrainerBattleTowerProfile +080edd80 tv.s SaveRecordedItemPurchasesForTVShow +080ede68 tv.s PutNameRaterShowOnTheAir +080edf64 tv.s StartMassOutbreak +080ee010 tv.s PutLilycoveContestLadyShowOnTheAir +080ee07c tv.s InterviewAfter_FanClubLetter +080ee0ec tv.s InterviewAfter_RecentHappenings +080ee144 tv.s InterviewAfter_PkmnFanClubOpinions +080ee234 tv.s InterviewAfter_DummyShow4 +080ee238 tv.s sub_080EE238 +080ee328 tv.s EndMassOutbreak +080ee3a8 tv.s UpdateTVShowsPerDay +080ee3d4 tv.s sub_080EE3D4 +080ee444 tv.s UpdateMassOutbreakTimeLeft +080ee470 tv.s sub_080EE470 +080ee4c8 tv.s PutFishingAdviceShowOnTheAir +080ee55c tv.s SetPokemonAnglerSpecies +080ee568 tv.s sub_080EE568_jp +080ee5a0 tv.s sub_080EE5A0_jp +080ee664 tv.s sub_080EE664_jp +080ee780 tv.s sub_080EE780_jp +080ee808 tv.s sub_080EE808 +080ee898 tv.s AlertTVOfNewCoinTotal +080ee990 tv.s AlertTVThatPlayerPlayedSlotMachine +080ee9a4 tv.s AlertTVThatPlayerPlayedRoulette +080ee9b8 tv.s sub_080EE9B8 +080eead4 tv.s sub_080EEAD4_jp +080eec24 tv.s TV_PutSecretBaseVisitOnTheAir +080eeca4 tv.s sub_080EECA4_jp +080eedec tv.s sub_080EEDEC_jp +080eee7c tv.s sub_080EEE7C_jp +080eef6c tv.s sub_080EEF6C_jp +080eeffc tv.s sub_080EEFFC_jp +080ef0bc tv.s GetRibbonCount +080ef1b4 tv.s TV_MonDataIdxToRibbon +080ef244 tv.s sub_080EF244_jp +080ef2d8 tv.s sub_080EF2D8_jp +080ef330 tv.s sub_080EF330_jp +080ef3e0 tv.s sub_080EF3E0_jp +080ef588 tv.s sub_080EF588_jp +080ef69c tv.s sub_080EF69C_jp +080ef6f8 tv.s sub_080EF6F8_jp +080ef784 tv.s sub_080EF784_jp +080ef7a8 tv.s sub_080EF7A8_jp +080ef7cc tv.s sub_080EF7CC_jp +080ef7f0 tv.s sub_080EF7F0_jp +080ef814 tv.s sub_080EF814_jp +080ef838 tv.s sub_080EF838_jp +080ef864 tv.s sub_080EF864_jp +080ef88c tv.s sub_080EF88C_jp +080ef934 tv.s sub_080EF934 +080ef960 tv.s ClearPokemonNews +080ef97c tv.s ClearPokemonNewsI +080ef9bc tv.s sub_080EF9BC +080efa24 tv.s FindAnyTVNewsOnTheAir +080efa70 tv.s DoPokeNews +080efb3c tv.s GetPriceReduction +080efb98 tv.s IsPriceDiscounted +080efbe8 tv.s sub_080EFBE8 +080efc24 tv.s sub_080EFC24 +080efcc0 tv.s CopyContestRankToStringVar +080efd54 tv.s CopyContestCategoryToStringVar +080efe10 tv.s SetContestCategoryStringVarForInterview +080efe44 tv.s TV_PrintIntToStringVar +080efe74 tv.s CountDigits +080eff10 tv.s sub_080EFF10 +080eff70 tv.s HasMixableShowAlreadyBeenSpawnedWithPlayerID +080f0004 tv.s TV_SortPurchasesByQuantity +080f0054 tv.s FindActiveBroadcastByShowType_SetScriptResult +080f00bc tv.s InterviewBefore +080f0150 tv.s InterviewBefore_FanClubLetter +080f01c8 tv.s InterviewBefore_RecentHappenings +080f0208 tv.s InterviewBefore_PkmnFanClubOpinions +080f02a0 tv.s InterviewBefore_Dummy +080f02ac tv.s InterviewBefore_NameRater +080f02b8 tv.s InterviewBefore_BravoTrainerPkmnProfile +080f02f8 tv.s InterviewBefore_ContestLiveUpdates +080f0304 tv.s InterviewBefore_3CheersForPokeblocks +080f0310 tv.s InterviewBefore_BravoTrainerBTProfile +080f0350 tv.s InterviewBefore_FanClubSpecial +080f0390 tv.s sub_080F0390_jp +080f03e4 tv.s sub_080F03E4_jp +080f03fc tv.s DeleteTVShowInArrayByIdx +080f0428 tv.s sub_080F0428 +080f04d4 tv.s TV_GetSomeOtherSpeciesAlreadySeenByPlayer_AndPrintName +080f0514 tv.s TV_GetSomeOtherSpeciesAlreadySeenByPlayer +080f0578 tv.s sub_080F0578_jp +080f05cc tv.s FindEmptyTVSlotWithinFirstFiveShowsOfArray +080f05f8 tv.s FindEmptyTVSlotBeyondFirstFiveShowsOfArray +080f0628 tv.s TV_BernoulliTrial +080f0648 tv.s TV_FanClubLetter_RandomWordToStringVar3 +080f0694 tv.s TV_GetNicknameSumMod8 +080f06cc tv.s TV_GetNicknameSubstring +080f0820 tv.s TV_IsScriptShowKindAlreadyInQueue +080f0864 tv.s TV_PutNameRaterShowOnTheAirIfNicknameChanged +080f08a8 tv.s ChangePokemonNickname +080f0964 tv.s ChangePokemonNickname_CB +080f0990 tv.s ChangeBoxPokemonNickname +080f0a14 tv.s ChangeBoxPokemonNickname_CB +080f0a38 tv.s TV_CopyNicknameToStringVar1AndEnsureTerminated +080f0a68 tv.s TV_CheckMonOTIDEqualsPlayerID +080f0aac tv.s GetTVChannelByShowType +080f0aec tv.s GetPlayerIDAsU32 +080f0b0c tv.s CheckForBigMovieOrEmergencyNewsOnTV +080f0b70 tv.s GetMomOrDadStringForTVMessage +080f0c84 tv.s sub_080F0C84_jp +080f0cb4 tv.s ReceiveTvShowsData +080f0e34 tv.s sub_080F0E34_jp +080f0f78 tv.s sub_080F0F78_jp +080f105c tv.s sub_080F105C_jp +080f10c4 tv.s sub_080F10C4_jp +080f1144 tv.s sub_080F1144_jp +080f11ac tv.s sub_080F11AC_jp +080f11e4 tv.s sub_080F11E4_jp +080f15dc tv.s SetTvShowInactive +080f1600 tv.s sub_080F1600_jp +080f1640 tv.s sub_080F1640_jp +080f1694 tv.s sub_080F1694_jp +080f16e0 tv.s sub_080F16E0 +080f1758 tv.s ReceivePokeNewsData +080f183c tv.s sub_080F183C +080f1934 tv.s sub_080F1934_jp +080f1960 tv.s sub_080F1960_jp +080f19a8 tv.s sub_080F19A8_jp +080f19c8 tv.s sub_080F19C8_jp +080f1a00 tv.s TVShowGetFlagCount +080f1a40 tv.s sub_080F1A40_jp +080f1ce4 tv.s sub_080F1CE4_jp +080f1d28 tv.s DoTVShow +080f1ed8 tv.s DoTVShowBravoTrainerPokemonProfile +080f2164 tv.s DoTVShowBravoTrainerBattleTower +080f23ec tv.s DoTVShowTodaysSmartShopper +080f2620 tv.s DoTVShowTheNameRaterShow +080f28fc tv.s DoTVShowPokemonTodaySuccessfulCapture +080f2b50 tv.s DoTVShowPokemonTodayFailedCapture +080f2cb8 tv.s DoTVShowPokemonFanClubLetter +080f2ee8 tv.s DoTVShowRecentHappenings +080f3080 tv.s DoTVShowPokemonFanClubOpinions +080f3174 tv.s DoTVShowDummiedOut +080f3178 tv.s DoTVShowPokemonNewsMassOutbreak +080f31e8 tv.s DoTVShowPokemonContestLiveUpdates +080f39cc tv.s DoTVShowPokemonBattleUpdate +080f3c00 tv.s DoTVShow3CheersForPokeblocks +080f3eac tv.s DoTVShowInSearchOfTrainers +080f40a4 tv.s DoTVShowPokemonAngler +080f4180 tv.s DoTVShowTheWorldOfMasters +080f4260 tv.s DoTVShowTodaysRivalTrainer +080f4470 tv.s DoTVShowDewfordTrendWatcherNetwork +080f45e0 tv.s DoTVShowHoennTreasureInvestigators +080f46e0 tv.s DoTVShowFindThatGamer +080f488c tv.s DoTVShowBreakingNewsTV +080f4bbc tv.s DoTVShowSecretBaseVisit +080f4e0c tv.s DoTVShowPokemonLotteryWinnerFlashReport +080f4ea0 tv.s DoTVShowThePokemonBattleSeminar +080f50ac tv.s DoTVShowTrainerFanClubSpecial +080f51e0 tv.s DoTVShowTrainerFanClub +080f537c tv.s DoTVShowSpotTheCuties +080f55b0 tv.s DoTVShowPokemonNewsBattleFrontier +080f5858 tv.s DoTVShowWhatsNo1InHoennToday +080f59a4 tv.s sub_080F59A4_jp +080f59d0 tv.s SecretBaseSecrets_GetStateForFlagNumber +080f5a10 tv.s DoTVShowSecretBaseSecrets +080f5d54 tv.s DoTVShowSafariFanClub +080f5ed0 tv.s DoTVShowPokemonContestLiveUpdates2 +080f5f74 tv.s TVShowDone +080f5fb0 tv.s ResetTVShowState +contest_link_80F57C4.s +080f5fbc contest_link_80F57C4.s sub_080F5FBC_jp +080f6114 contest_link_80F57C4.s sub_080F6114_jp +080f626c contest_link_80F57C4.s sub_080F626C_jp +080f62f8 contest_link_80F57C4.s sub_080F62F8_jp +080f6318 contest_link_80F57C4.s sub_080F6318_jp +080f6418 contest_link_80F57C4.s sub_080F6418_jp +080f643c contest_link_80F57C4.s sub_080F643C_jp +080f64fc contest_link_80F57C4.s sub_080F64FC_jp +080f66f0 contest_link_80F57C4.s sub_080F66F0_jp +080f672c contest_link_80F57C4.s sub_080F672C_jp +080f6748 contest_link_80F57C4.s sub_080F6748_jp +080f678c contest_link_80F57C4.s sub_080F678C_jp +080f6880 contest_link_80F57C4.s sub_080F6880_jp +080f6918 contest_link_80F57C4.s sub_080F6918_jp +080f699c contest_link_80F57C4.s sub_080F699C_jp +080f6a34 contest_link_80F57C4.s sub_080F6A34_jp +080f6c28 contest_link_80F57C4.s sub_080F6C28_jp +080f6ed8 contest_link_80F57C4.s sub_080F6ED8_jp +080f6f40 contest_link_80F57C4.s sub_080F6F40_jp +080f6fa0 contest_link_80F57C4.s sub_080F6FA0_jp +080f6fe8 contest_link_80F57C4.s sub_080F6FE8_jp +080f7044 contest_link_80F57C4.s sub_080F7044_jp +080f70d8 contest_link_80F57C4.s sub_080F70D8_jp +080f7114 contest_link_80F57C4.s sub_080F7114_jp +080f71dc contest_link_80F57C4.s sub_080F71DC_jp +080f7288 contest_link_80F57C4.s LoadAllContestMonIcons +080f72c0 contest_link_80F57C4.s sub_080F72C0 +080f730c contest_link_80F57C4.s sub_080F730C_jp +080f739c contest_link_80F57C4.s sub_080F739C_jp +080f760c contest_link_80F57C4.s sub_080F760C_jp +080f76e8 contest_link_80F57C4.s sub_080F76E8_jp +080f7708 contest_link_80F57C4.s sub_080F7708_jp +080f7760 contest_link_80F57C4.s sub_080F7760_jp +080f77ac contest_link_80F57C4.s sub_080F77AC_jp +080f77d4 contest_link_80F57C4.s sub_080F77D4_jp +080f7848 contest_link_80F57C4.s sub_080F7848_jp +080f7880 contest_link_80F57C4.s sub_080F7880_jp +080f78e8 contest_link_80F57C4.s sub_080F78E8_jp +080f79b8 contest_link_80F57C4.s sub_080F79B8_jp +080f7a3c contest_link_80F57C4.s sub_080F7A3C_jp +080f7ba0 contest_link_80F57C4.s sub_080F7BA0_jp +080f7bf4 contest_link_80F57C4.s sub_080F7BF4_jp +080f7c6c contest_link_80F57C4.s sub_080F7C6C_jp +080f7d4c contest_link_80F57C4.s sub_080F7D4C_jp +080f7dcc contest_link_80F57C4.s sub_080F7DCC_jp +080f7e38 contest_link_80F57C4.s sub_080F7E38_jp +080f7eb0 contest_link_80F57C4.s sub_080F7EB0_jp +080f7f00 contest_link_80F57C4.s sub_080F7F00_jp +080f7ff8 contest_link_80F57C4.s sub_080F7FF8_jp +080f8070 contest_link_80F57C4.s sub_080F8070_jp +080f80b4 contest_link_80F57C4.s sub_080F80B4_jp +080f8110 contest_link_80F57C4.s sub_080F8110_jp +080f8310 contest_link_80F57C4.s sub_080F8310_jp +080f8538 contest_link_80F57C4.s sub_080F8538_jp +080f8684 contest_link_80F57C4.s sub_080F8684_jp +080f86f4 contest_link_80F57C4.s sub_080F86F4_jp +080f8760 contest_link_80F57C4.s sub_080F8760_jp +080f87c0 contest_link_80F57C4.s sub_080F87C0_jp +080f880c contest_link_80F57C4.s sub_080F880C_jp +080f888c contest_link_80F57C4.s sub_080F888C_jp +080f8af4 contest_link_80F57C4.s sub_080F8AF4_jp +080f8b18 contest_link_80F57C4.s sub_080F8B18_jp +080f8b3c contest_link_80F57C4.s sub_080F8B3C_jp +080f8b84 contest_link_80F57C4.s sub_080F8B84_jp +080f8ba4 contest_link_80F57C4.s sub_080F8BA4_jp +080f8bd4 contest_link_80F57C4.s sub_080F8BD4_jp +080f8c14 contest_link_80F57C4.s sub_080F8C14_jp +080f8c54 contest_link_80F57C4.s sub_080F8C54_jp +080f8c64 contest_link_80F57C4.s sub_080F8C64_jp +080f8c90 contest_link_80F57C4.s sub_080F8C90_jp +080f8cbc contest_link_80F57C4.s sub_080F8CBC_jp +080f8cdc contest_link_80F57C4.s sub_080F8CDC_jp +080f8d08 contest_link_80F57C4.s sub_080F8D08_jp +080f8d34 contest_link_80F57C4.s sub_080F8D34_jp +080f8d48 contest_link_80F57C4.s sub_080F8D48_jp +080f8d8c contest_link_80F57C4.s sub_080F8D8C_jp +080f8dec contest_link_80F57C4.s sub_080F8DEC_jp +080f8e08 contest_link_80F57C4.s sub_080F8E08_jp +080f8e24 contest_link_80F57C4.s sub_080F8E24_jp +080f8e40 contest_link_80F57C4.s sub_080F8E40_jp +080f8f3c contest_link_80F57C4.s sub_080F8F3C_jp +080f8f64 contest_link_80F57C4.s sub_080F8F64_jp +080f8f98 contest_link_80F57C4.s sub_080F8F98_jp +080f901c contest_link_80F57C4.s sub_080F901C_jp +080f9044 contest_link_80F57C4.s sub_080F9044_jp +script_pokemon_util_80F87D8.s +080f9068 script_pokemon_util_80F87D8.s SetContestTrainerGfxIds +080f90a4 script_pokemon_util_80F87D8.s sub_080F90A4 +080f90e0 script_pokemon_util_80F87D8.s sub_080F90E0_jp +080f90f4 script_pokemon_util_80F87D8.s sub_080F90F4_jp +080f916c script_pokemon_util_80F87D8.s sub_080F916C_jp +080f9178 script_pokemon_util_80F87D8.s sub_080F9178_jp +080f91d0 script_pokemon_util_80F87D8.s CountPlayerContestPaintings +080f9200 script_pokemon_util_80F87D8.s sub_080F9200_jp +080f935c script_pokemon_util_80F87D8.s ShowContestWinnerCleanup +080f936c script_pokemon_util_80F87D8.s ShowContestWinner +080f938c script_pokemon_util_80F87D8.s sub_080F938C_jp +080f9424 script_pokemon_util_80F87D8.s sub_080F9424_jp +080f950c script_pokemon_util_80F87D8.s GiveMonArtistRibbon +080f95b4 script_pokemon_util_80F87D8.s sub_080F95B4 +080f95b8 script_pokemon_util_80F87D8.s ShowContestEntryMonPic +080f9748 script_pokemon_util_80F87D8.s sub_080F9748_jp +080f9778 script_pokemon_util_80F87D8.s sub_080F9778_jp +080f9830 script_pokemon_util_80F87D8.s ScriptGetMultiplayerId +080f9878 script_pokemon_util_80F87D8.s ScriptRandom +080f98cc script_pokemon_util_80F87D8.s sub_080F98CC +080f98ec script_pokemon_util_80F87D8.s sub_080F98EC_jp +080f9918 script_pokemon_util_80F87D8.s sub_080F9918_jp +080f996c script_pokemon_util_80F87D8.s sub_080F996C_jp +080f999c script_pokemon_util_80F87D8.s sub_080F999C_jp +080f99c4 script_pokemon_util_80F87D8.s sub_080F99C4_jp +080f99e4 script_pokemon_util_80F87D8.s sub_080F99E4_jp +080f99f0 script_pokemon_util_80F87D8.s sub_080F99F0_jp +080f9a10 script_pokemon_util_80F87D8.s HealPlayerParty +080f9ad4 script_pokemon_util_80F87D8.s ScriptGiveMon +080f9b58 script_pokemon_util_80F87D8.s ScriptGiveEgg +080f9b88 script_pokemon_util_80F87D8.s HasEnoughMonsForDoubleBattle +080f9bb0 script_pokemon_util_80F87D8.s CheckPartyMonHasHeldItem +080f9c00 script_pokemon_util_80F87D8.s sub_080F9C00_jp +080f9c30 script_pokemon_util_80F87D8.s CreateScriptedWildMon +080f9c90 script_pokemon_util_80F87D8.s ScriptSetMonMoveSlot +080f9cc8 script_pokemon_util_80F87D8.s ChooseHalfPartyForBattle +080f9cf0 script_pokemon_util_80F87D8.s CB2_ReturnFromChooseHalfParty +080f9d20 script_pokemon_util_80F87D8.s sub_080F9D20_jp +080f9d48 script_pokemon_util_80F87D8.s sub_080F9D48_jp +080f9d78 script_pokemon_util_80F87D8.s ReducePlayerPartyToSelectedMons +field_poison.s +080f9df8 field_poison.s IsMonValidSpecies +080f9e1c field_poison.s AllMonsFainted +080f9e50 field_poison.s FaintFromFieldPoison +080f9e9c field_poison.s MonFaintedFromPoison +080f9ee4 field_poison.s Task_WhiteOut +080f9fbc field_poison.s ExecuteWhiteOut +080f9fd4 field_poison.s DoPoisonFieldEffect +080fa058 field_poison.s sub_080FA058 +080fa0fc field_poison.s sub_080FA0FC +080fa12c field_poison.s sub_080FA12C +080fa1a0 field_poison.s sub_080FA1A0 +080fa1f0 field_poison.s sub_080FA1F0 +080fa280 field_poison.s sub_080FA280 +080fa2ec field_poison.s sub_080FA2EC +080fa300 field_poison.s sub_080FA300 +080fa31c field_poison.s sub_080FA31C +080fa344 field_poison.s sub_080FA344 +080fa358 field_poison.s sub_080FA358 +080fa374 field_poison.s sub_080FA374 +080fa3a0 field_poison.s sub_080FA3A0 +fldeff_misc.s +080fa43c fldeff_misc.s sub_080FA43C_jp +080fa464 fldeff_misc.s sub_080FA464_jp +080fa48c fldeff_misc.s sub_080FA48C_jp +080fa4a0 fldeff_misc.s FldEffPoison_IsActive +080fa4b4 fldeff_misc.s sub_080FA4B4_jp +080fa500 fldeff_misc.s sub_080FA500_jp +080fa66c fldeff_misc.s sub_080FA66C_jp +080fa7cc fldeff_misc.s SetCurrentSecretBase +080fa7e8 fldeff_misc.s AdjustSecretPowerSpritePixelOffsets +080fa874 fldeff_misc.s SetUpFieldMove_SecretPower +080fa94c fldeff_misc.s FieldCallback_SecretBaseCave +080fa96c fldeff_misc.s FldEff_UseSecretPowerCave +080fa998 fldeff_misc.s StartSecretBaseCaveFieldEffect +080fa9ac fldeff_misc.s FldEff_SecretPowerCave +080fa9fc fldeff_misc.s CaveEntranceSpriteCallback1 +080faa18 fldeff_misc.s ShrubEntranceSpriteCallback2 +080faa48 fldeff_misc.s CaveEntranceSpriteCallbackEnd +080faa58 fldeff_misc.s FieldCallback_SecretBaseShrub +080faa78 fldeff_misc.s FldEff_UseSecretPowerShrub +080faaa4 fldeff_misc.s StartSecretBaseTreeFieldEffect +080faab8 fldeff_misc.s FldEff_SecretPowerTree +080fab48 fldeff_misc.s TreeEntranceSpriteCallback1 +080fab74 fldeff_misc.s TreeEntranceSpriteCallback2 +080fabac fldeff_misc.s TreeEntranceSpriteCallbackEnd +080fabbc fldeff_misc.s FieldCallback_SecretBaseTree +080fabdc fldeff_misc.s FldEff_UseSecretPowerTree +080fac08 fldeff_misc.s StartSecretBaseShrubFieldEffect +080fac1c fldeff_misc.s FldEff_SecretPowerShrub +080fac6c fldeff_misc.s ShrubEntranceSpriteCallback1 +080fac88 fldeff_misc.s CaveEntranceSpriteCallback2 +080facb8 fldeff_misc.s ShrubEntranceSpriteCallbackEnd +080facc8 fldeff_misc.s FldEff_SecretBasePCTurnOn +080fad10 fldeff_misc.s Task_SecretBasePCTurnOn +080fadec fldeff_misc.s DoSecretBasePCTurnOffEffect +080fae54 fldeff_misc.s PopSecretBaseBalloon +080fae9c fldeff_misc.s Task_PopSecretBaseBalloon +080faf1c fldeff_misc.s DoBalloonSoundEffect +080faf6c fldeff_misc.s FldEff_NopA700 +080faf70 fldeff_misc.s FldEff_NopA6FC +080faf74 fldeff_misc.s DoSecretBaseBreakableDoorEffect +080fafc4 fldeff_misc.s Task_ShatterSecretBaseBreakableDoor +080fb004 fldeff_misc.s ShatterSecretBaseBreakableDoor +080fb05c fldeff_misc.s Task_SecretBaseMusicNoteMatSound +080fb1e0 fldeff_misc.s PlaySecretBaseMusicNoteMatSound +080fb214 fldeff_misc.s SpriteCB_GlitterMatSparkle +080fb240 fldeff_misc.s DoSecretBaseGlitterMatSparkle +080fb2ec fldeff_misc.s FldEff_SandPillar +080fb414 fldeff_misc.s SpriteCB_SandPillar_0 +080fb494 fldeff_misc.s SpriteCB_SandPillar_1 +080fb4d8 fldeff_misc.s SpriteCB_SandPillar_2 +080fb4e8 fldeff_misc.s GetShieldToyTVDecorationInfo +080fb654 fldeff_misc.s sub_080FB654 +080fb6a8 fldeff_misc.s Task_FieldPoisonEffect +080fb718 fldeff_misc.s FldEffPoison_Start +080fb730 fldeff_misc.s sub_080FB730_jp +080fb744 fldeff_misc.s Task_WateringBerryTreeAnim_0 +080fb760 fldeff_misc.s Task_WateringBerryTreeAnim_1 +080fb7d4 fldeff_misc.s Task_WateringBerryTreeAnim_2 +080fb844 fldeff_misc.s Task_WateringBerryTreeAnim_3 +080fb868 fldeff_misc.s DoWateringBerryTreeAnim +080fb87c fldeff_misc.s CreateRecordMixingSprite +080fb8e4 fldeff_misc.s DestroyRecordMixingSprite +field_special_scene.s +080fb920 field_special_scene.s GetTruckCameraBobbingY +080fb94c field_special_scene.s GetTruckBoxMovement +080fb968 field_special_scene.s Task_Truck1 +080fba1c field_special_scene.s Task_Truck2 +080fbb30 field_special_scene.s Task_Truck3 +080fbbdc field_special_scene.s Task_HandleTruckSequence +080fbd50 field_special_scene.s ExecuteTruckSequence +080fbdb0 field_special_scene.s EndTruckSequence +080fbe0c field_special_scene.s sub_080FBE0C_jp +080fbe58 field_special_scene.s Task_HandlePorthole +080fbf5c field_special_scene.s sub_080FBF5C_jp +080fbfd8 field_special_scene.s sub_080FBFD8_jp +080fc014 field_special_scene.s sub_080FC014_jp +rotating_gate.s +080fc058 rotating_gate.s GetCurrentMapRotatingGatePuzzleType +080fc088 rotating_gate.s RotatingGate_ResetAllGateOrientations +080fc0c4 rotating_gate.s RotatingGate_GetGateOrientation +080fc0e0 rotating_gate.s RotatingGate_SetGateOrientation +080fc100 rotating_gate.s RotatingGate_RotateInDirection +080fc13c rotating_gate.s RotatingGate_LoadPuzzleConfig +080fc198 rotating_gate.s RotatingGate_CreateGatesWithinViewport +080fc26c rotating_gate.s RotatingGate_CreateGate +080fc354 rotating_gate.s SpriteCallback_RotatingGate +080fc3d4 rotating_gate.s RotatingGate_HideGatesOutsideViewport +080fc470 rotating_gate.s LoadRotatingGatePics +080fc480 rotating_gate.s RotatingGate_DestroyGatesOutsideViewport +080fc54c rotating_gate.s RotatingGate_CanRotate +080fc624 rotating_gate.s RotatingGate_HasArm +080fc678 rotating_gate.s RotatingGate_TriggerRotationAnimation +080fc6ac rotating_gate.s RotatingGate_GetRotationInfo +080fc700 rotating_gate.s RotatingGate_InitPuzzle +080fc718 rotating_gate.s RotatingGatePuzzleCameraUpdate +080fc740 rotating_gate.s RotatingGate_InitPuzzleAndGraphics +080fc760 rotating_gate.s CheckForRotatingGatePuzzleCollision +080fc844 rotating_gate.s CheckForRotatingGatePuzzleCollisionWithoutAnimation +safari_zone.s +080fc910 safari_zone.s GetSafariZoneFlag +080fc924 safari_zone.s ResetSafariZoneFlag +080fc934 safari_zone.s SafariZoneRetirePrompt +080fc944 safari_zone.s EnterSafariMode +080fc984 safari_zone.s ExitSafariMode +080fc9bc safari_zone.s SafariZoneTakeStep +080fc9f0 safari_zone.s SetSafariZoneFlag +080fca00 safari_zone.s CB2_EndSafariBattle +080fca98 safari_zone.s ClearPokeblockFeeder +080fcab4 safari_zone.s ClearAllPokeblockFeeders +080fcac8 safari_zone.s GetPokeblockFeederInFront +080fcb58 safari_zone.s GetPokeblockFeederWithinRange +080fcbf8 safari_zone.s SafariZoneGetPokeblockInFront +080fcc28 safari_zone.s SafariZoneGetActivePokeblock +080fcc58 safari_zone.s SafariZoneActivatePokeblockFeeder +080fccf0 safari_zone.s DecrementFeederStepCounters +080fcd24 safari_zone.s GetInFrontFeederPokeblockAndSteps +contest_link_80FC4F4.s +080fcd64 contest_link_80FC4F4.s sub_080FCD64_jp +080fcda0 contest_link_80FC4F4.s sub_080FCDA0_jp +080fcdcc contest_link_80FC4F4.s sub_080FCDCC_jp +080fcdf0 contest_link_80FC4F4.s sub_080FCDF0_jp +080fce30 contest_link_80FC4F4.s sub_080FCE30_jp +080fce4c contest_link_80FC4F4.s sub_080FCE4C_jp +080fcee0 contest_link_80FC4F4.s sub_080FCEE0_jp +080fcf2c contest_link_80FC4F4.s sub_080FCF2C_jp +080fd058 contest_link_80FC4F4.s sub_080FD058_jp +080fd0e8 contest_link_80FC4F4.s sub_080FD0E8_jp +080fd1ec contest_link_80FC4F4.s sub_080FD1EC_jp +080fd24c contest_link_80FC4F4.s sub_080FD24C_jp +080fd320 contest_link_80FC4F4.s sub_080FD320_jp +080fd4dc contest_link_80FC4F4.s sub_080FD4DC_jp +080fd69c contest_link_80FC4F4.s sub_080FD69C_jp +080fd794 contest_link_80FC4F4.s sub_080FD794_jp +080fd824 contest_link_80FC4F4.s sub_080FD824_jp +item_use.s +080fd8b4 item_use.s SetUpItemUseCallback +080fd930 item_use.s SetUpItemUseOnFieldCallback +080fd978 item_use.s MapPostLoadHook_UseItem +080fd990 item_use.s Task_CallItemUseOnFieldCallback +080fd9b8 item_use.s DisplayCannotUseItemMessage +080fda1c item_use.s DisplayDadsAdviceCannotUseItemMessage +080fda34 item_use.s DisplayCannotDismountBikeMessage +080fda4c item_use.s CleanUpAfterFailingToUseRegisteredKeyItemOnField +080fda70 item_use.s CheckIfItemIsTMHMOrEvolutionStone +080fdaa8 item_use.s sub_080FDAA8_jp +080fdacc item_use.s ItemUseOutOfBattle_Mail +080fdaec item_use.s ItemUseOutOfBattle_Bike +080fdbac item_use.s ItemUseOnFieldCB_Bike +080fdbe8 item_use.s CanFish +080fdc7c item_use.s ItemUseOutOfBattle_Rod +080fdcbc item_use.s ItemUseOnFieldCB_Rod +080fdce4 item_use.s ItemUseOutOfBattle_Itemfinder +080fdd0c item_use.s ItemUseOnFieldCB_Itemfinder +080fdd58 item_use.s sub_080FDD58_jp +080fde20 item_use.s sub_080FDE20_jp +080fde44 item_use.s ItemfinderCheckForHiddenItems +080fdf28 item_use.s sub_080FDF28 +080fdf84 item_use.s sub_080FDF84_jp +080fe01c item_use.s sub_080FE01C_jp +080fe134 item_use.s sub_080FE134_jp +080fe204 item_use.s sub_080FE204_jp +080fe278 item_use.s sub_080FE278_jp +080fe2e8 item_use.s sub_080FE2E8_jp +080fe330 item_use.s sub_080FE330 +080fe3c0 item_use.s ItemUseOutOfBattle_PokeblockCase +080fe440 item_use.s sub_080FE440_jp +080fe454 item_use.s sub_080FE454_jp +080fe488 item_use.s ItemUseOutOfBattle_CoinCase +080fe4f8 item_use.s ItemUseOutOfBattle_PowderJar +080fe564 item_use.s sub_080FE564_jp +080fe5c8 item_use.s sub_080FE5C8_jp +080fe5f8 item_use.s ItemUseOutOfBattle_WailmerPail +080fe65c item_use.s sub_080FE65C_jp +080fe680 item_use.s sub_080FE680_jp +080fe6d0 item_use.s sub_080FE6D0_jp +080fe6f4 item_use.s ItemUseOutOfBattle_Medicine +080fe710 item_use.s ItemUseOutOfBattle_ReduceEV +080fe72c item_use.s ItemUseOutOfBattle_SacredAsh +080fe748 item_use.s ItemUseOutOfBattle_PPRecovery +080fe764 item_use.s ItemUseOutOfBattle_PPUp +080fe780 item_use.s ItemUseOutOfBattle_RareCandy +080fe79c item_use.s ItemUseOutOfBattle_TMHM +080fe7e4 item_use.s sub_080FE7E4_jp +080fe810 item_use.s task08_0809AD8C +080fe874 item_use.s sub_080FE874_jp +080fe88c item_use.s sub_080FE88C_jp +080fe8a8 item_use.s sub_080FE8A8_jp +080fe90c item_use.s ItemUseOutOfBattle_Repel +080fe974 item_use.s sub_080FE974_jp +080fe9b4 item_use.s sub_080FE9B4_jp +080fea20 item_use.s sub_080FEA20_jp +080fea84 item_use.s ItemUseOutOfBattle_BlackWhiteFlute +080feb0c item_use.s task08_080A1C44 +080feb28 item_use.s re_escape_rope +080feb64 item_use.s CanUseEscapeRopeOnCurrMap +080feb84 item_use.s ItemUseOutOfBattle_EscapeRope +080febc8 item_use.s ItemUseOutOfBattle_EvolutionStone +080febe4 item_use.s ItemUseInBattle_PokeBall +080fec58 item_use.s sub_080FEC58_jp +080fec90 item_use.s sub_080FEC90 +080fed08 item_use.s ItemUseInBattle_StatIncrease +080fed9c item_use.s sub_080FED9C_jp +080fede0 item_use.s ItemUseInBattle_Medicine +080fedfc item_use.s sub_080FEDFC +080fee18 item_use.s ItemUseInBattle_PPRecovery +080fee34 item_use.s ItemUseInBattle_Escape +080feea0 item_use.s ItemUseOutOfBattle_EnigmaBerry +080fefcc item_use.s ItemUseInBattle_EnigmaBerry +080ff070 item_use.s ItemUseOutOfBattle_CannotUse +battle_anim_effects_1.s +080ff090 battle_anim_effects_1.s AnimMovePowderParticle +080ff0e8 battle_anim_effects_1.s AnimMovePowderParticleStep +080ff130 battle_anim_effects_1.s AnimPowerAbsorptionOrb +080ff180 battle_anim_effects_1.s AnimSolarbeamBigOrb +080ff1d8 battle_anim_effects_1.s AnimSolarbeamSmallOrb +080ff234 battle_anim_effects_1.s AnimSolarbeamSmallOrbStep +080ff2a8 battle_anim_effects_1.s AnimTask_CreateSmallSolarbeamOrbs +080ff328 battle_anim_effects_1.s AnimAbsorptionOrb +080ff378 battle_anim_effects_1.s AnimAbsorptionOrbStep +080ff394 battle_anim_effects_1.s AnimHyperBeamOrb +080ff44c battle_anim_effects_1.s AnimHyperBeamOrbStep +080ff498 battle_anim_effects_1.s AnimLeechSeed +080ff508 battle_anim_effects_1.s AnimLeechSeedStep +080ff540 battle_anim_effects_1.s AnimLeechSeedSprouts +080ff578 battle_anim_effects_1.s AnimSporeParticle +080ff5c4 battle_anim_effects_1.s AnimSporeParticleStep +080ff66c battle_anim_effects_1.s AnimTask_SporeDoubleBattle +080ff6c8 battle_anim_effects_1.s AnimPetalDanceBigFlower +080ff71c battle_anim_effects_1.s AnimPetalDanceBigFlowerStep +080ff794 battle_anim_effects_1.s AnimPetalDanceSmallFlower +080ff7e8 battle_anim_effects_1.s AnimPetalDanceSmallFlowerStep +080ff84c battle_anim_effects_1.s AnimRazorLeafParticle +080ff894 battle_anim_effects_1.s AnimRazorLeafParticleStep1 +080ff8e0 battle_anim_effects_1.s AnimRazorLeafParticleStep2 +080ff944 battle_anim_effects_1.s AnimTranslateLinearSingleSineWave +080ffa10 battle_anim_effects_1.s AnimTranslateLinearSingleSineWaveStep +080ffab8 battle_anim_effects_1.s AnimMoveTwisterParticle +080ffb0c battle_anim_effects_1.s AnimMoveTwisterParticleStep +080ffbc4 battle_anim_effects_1.s AnimConstrictBinding +080ffc00 battle_anim_effects_1.s AnimConstrictBindingStep1 +080ffc3c battle_anim_effects_1.s AnimConstrictBindingStep2 +080ffca8 battle_anim_effects_1.s sub_080FFCA8_jp +080ffd8c battle_anim_effects_1.s sub_080FFD8C_jp +080ffe1c battle_anim_effects_1.s sub_080FFE1C_jp +080ffee8 battle_anim_effects_1.s AnimMimicOrb +080fffb8 battle_anim_effects_1.s AnimIngrainRoot +0810003c battle_anim_effects_1.s AnimFrenzyPlantRoot +0810012c battle_anim_effects_1.s AnimRootFlickerOut +08100184 battle_anim_effects_1.s AnimIngrainOrb +08100208 battle_anim_effects_1.s sub_08100208 +08100230 battle_anim_effects_1.s sub_08100230_jp +081002d4 battle_anim_effects_1.s sub_081002D4_jp +08100304 battle_anim_effects_1.s sub_08100304_jp +08100368 battle_anim_effects_1.s AnimPresent +081003e0 battle_anim_effects_1.s sub_081003E0_jp +08100444 battle_anim_effects_1.s AnimKnockOffItem +081004c0 battle_anim_effects_1.s AnimPresentHealParticle +08100504 battle_anim_effects_1.s AnimItemSteal +0810057c battle_anim_effects_1.s AnimItemStealStep +0810060c battle_anim_effects_1.s AnimTrickBag +081006a8 battle_anim_effects_1.s AnimTrickBagStep1 +08100714 battle_anim_effects_1.s AnimTrickBagStep2 +081007cc battle_anim_effects_1.s AnimTrickBagStep3 +08100810 battle_anim_effects_1.s sub_08100810_jp +08100978 battle_anim_effects_1.s sub_08100978_jp +08100d54 battle_anim_effects_1.s sub_08100D54_jp +08100d74 battle_anim_effects_1.s sub_08100D74_jp +08100e24 battle_anim_effects_1.s sub_08100E24_jp +08100e90 battle_anim_effects_1.s sub_08100E90_jp +08100f9c battle_anim_effects_1.s sub_08100F9C_jp +08101014 battle_anim_effects_1.s sub_08101014_jp +081010e8 battle_anim_effects_1.s sub_081010E8_jp +081011f0 battle_anim_effects_1.s sub_081011F0_jp +0810122c battle_anim_effects_1.s sub_0810122C_jp +08101248 battle_anim_effects_1.s sub_08101248_jp +081012a0 battle_anim_effects_1.s sub_081012A0_jp +081012e4 battle_anim_effects_1.s sub_081012E4_jp +08101330 battle_anim_effects_1.s AnimCuttingSlice +081013d8 battle_anim_effects_1.s sub_081013D8_jp +0810151c battle_anim_effects_1.s AnimSliceStep +08101588 battle_anim_effects_1.s unref_sub_8100D38 +0810166c battle_anim_effects_1.s sub_0810166C_jp +081016d0 battle_anim_effects_1.s sub_081016D0_jp +08101740 battle_anim_effects_1.s sub_08101740_jp +08101824 battle_anim_effects_1.s sub_08101824_jp +0810191c battle_anim_effects_1.s sub_0810191C_jp +08101988 battle_anim_effects_1.s sub_08101988_jp +08101ae8 battle_anim_effects_1.s sub_08101AE8_jp +08101b5c battle_anim_effects_1.s sub_08101B5C_jp +08101bac battle_anim_effects_1.s sub_08101BAC_jp +08101c90 battle_anim_effects_1.s sub_08101C90_jp +08101cf0 battle_anim_effects_1.s sub_08101CF0_jp +08101d44 battle_anim_effects_1.s sub_08101D44_jp +08101db0 battle_anim_effects_1.s sub_08101DB0_jp +08101dfc battle_anim_effects_1.s sub_08101DFC_jp +08101e24 battle_anim_effects_1.s sub_08101E24_jp +08101ed4 battle_anim_effects_1.s sub_08101ED4_jp +08101f08 battle_anim_effects_1.s sub_08101F08_jp +08101fc4 battle_anim_effects_1.s sub_08101FC4_jp +08102070 battle_anim_effects_1.s sub_08102070_jp +08102098 battle_anim_effects_1.s sub_08102098_jp +081020e8 battle_anim_effects_1.s sub_081020E8_jp +08102190 battle_anim_effects_1.s sub_08102190_jp +081021e8 battle_anim_effects_1.s sub_081021E8_jp +08102238 battle_anim_effects_1.s sub_08102238_jp +081022c4 battle_anim_effects_1.s sub_081022C4_jp +08102314 battle_anim_effects_1.s sub_08102314_jp +08102338 battle_anim_effects_1.s sub_08102338_jp +081023d4 battle_anim_effects_1.s sub_081023D4_jp +081023e0 battle_anim_effects_1.s sub_081023E0_jp +081023f0 battle_anim_effects_1.s sub_081023F0_jp +081024e4 battle_anim_effects_1.s sub_081024E4_jp +0810257c battle_anim_effects_1.s sub_0810257C_jp +0810273c battle_anim_effects_1.s sub_0810273C_jp +08102790 battle_anim_effects_1.s sub_08102790_jp +081027f8 battle_anim_effects_1.s sub_081027F8_jp +08102840 battle_anim_effects_1.s sub_08102840_jp +08102894 battle_anim_effects_1.s sub_08102894_jp +081028cc battle_anim_effects_1.s sub_081028CC_jp +081028dc battle_anim_effects_1.s sub_081028DC_jp +08102928 battle_anim_effects_1.s sub_08102928_jp +0810298c battle_anim_effects_1.s sub_0810298C_jp +081029cc battle_anim_effects_1.s sub_081029CC_jp +08102a1c battle_anim_effects_1.s sub_08102A1C_jp +08102ab8 battle_anim_effects_1.s sub_08102AB8_jp +08102b24 battle_anim_effects_1.s sub_08102B24_jp +08102b9c battle_anim_effects_1.s sub_08102B9C_jp +08102bcc battle_anim_effects_1.s sub_08102BCC_jp +08102c30 battle_anim_effects_1.s sub_08102C30_jp +08102c84 battle_anim_effects_1.s unref_sub_8102434 +08102cf8 battle_anim_effects_1.s unref_sub_81024A8 +08102d30 battle_anim_effects_1.s sub_08102D30 +08102d78 battle_anim_effects_1.s sub_08102D78_jp +08102d90 battle_anim_effects_1.s sub_08102D90_jp +08102dd4 battle_anim_effects_1.s sub_08102DD4_jp +08102e10 battle_anim_effects_1.s sub_08102E10_jp +08102ef8 battle_anim_effects_1.s sub_08102EF8_jp +08103094 battle_anim_effects_1.s sub_08103094_jp +081031bc battle_anim_effects_1.s sub_081031BC_jp +08103204 battle_anim_effects_1.s sub_08103204_jp +08103330 battle_anim_effects_1.s sub_08103330_jp +0810338c battle_anim_effects_1.s sub_0810338C_jp +0810341c battle_anim_effects_1.s sub_0810341C_jp +08103438 battle_anim_effects_1.s sub_08103438_jp +081034f0 battle_anim_effects_1.s sub_081034F0_jp +08103524 battle_anim_effects_1.s sub_08103524_jp +081035dc battle_anim_effects_1.s sub_081035DC_jp +08103634 battle_anim_effects_1.s sub_08103634_jp +08103700 battle_anim_effects_1.s sub_08103700_jp +08103790 battle_anim_effects_1.s sub_08103790_jp +08103808 battle_anim_effects_1.s sub_08103808_jp +08103878 battle_anim_effects_1.s sub_08103878_jp +08103900 battle_anim_effects_1.s sub_08103900_jp +0810395c battle_anim_effects_1.s sub_0810395C_jp +081039b4 battle_anim_effects_1.s sub_081039B4_jp +08103a20 battle_anim_effects_1.s sub_08103A20_jp +08103a58 battle_anim_effects_1.s sub_08103A58_jp +08103aa0 battle_anim_effects_1.s sub_08103AA0_jp +08103ad4 battle_anim_effects_1.s sub_08103AD4_jp +08103b50 battle_anim_effects_1.s sub_08103B50_jp +08103b70 battle_anim_effects_1.s sub_08103B70_jp +08103be0 battle_anim_effects_1.s sub_08103BE0_jp +08103c40 battle_anim_effects_1.s sub_08103C40_jp +08103c7c battle_anim_effects_1.s sub_08103C7C_jp +battle_anim_effects_2.s +08103c98 battle_anim_effects_2.s sub_08103C98_jp +08103ce8 battle_anim_effects_2.s sub_08103CE8_jp +08103d28 battle_anim_effects_2.s sub_08103D28_jp +08103d8c battle_anim_effects_2.s sub_08103D8C_jp +08103ddc battle_anim_effects_2.s sub_08103DDC_jp +08103e70 battle_anim_effects_2.s sub_08103E70_jp +08103ea8 battle_anim_effects_2.s sub_08103EA8_jp +08103ed0 battle_anim_effects_2.s sub_08103ED0_jp +08103ef0 battle_anim_effects_2.s AnimTask_Withdraw +08103f2c battle_anim_effects_2.s AnimTask_WithdrawStep +08104028 battle_anim_effects_2.s Anim_KinesisZapEnergy +081040cc battle_anim_effects_2.s Anim_SwordsDanceBlade +081040f0 battle_anim_effects_2.s Anim_SwordsDanceBladeStep +08104118 battle_anim_effects_2.s AnimSonicBoomProjectile +0810421c battle_anim_effects_2.s sub_0810421C_jp +08104250 battle_anim_effects_2.s sub_08104250_jp +081042f4 battle_anim_effects_2.s sub_081042F4_jp +08104434 battle_anim_effects_2.s sub_08104434_jp +0810445c battle_anim_effects_2.s sub_0810445C_jp +08104540 battle_anim_effects_2.s sub_08104540_jp +08104838 battle_anim_effects_2.s sub_08104838_jp +08104868 battle_anim_effects_2.s sub_08104868_jp +081048d8 battle_anim_effects_2.s sub_081048D8_jp +0810498c battle_anim_effects_2.s sub_0810498C_jp +081049a4 battle_anim_effects_2.s sub_081049A4_jp +08104a14 battle_anim_effects_2.s sub_08104A14_jp +08104a6c battle_anim_effects_2.s sub_08104A6C_jp +08104af0 battle_anim_effects_2.s sub_08104AF0 +08104b54 battle_anim_effects_2.s Anim_RazorWindTornado +08104bb4 battle_anim_effects_2.s Anim_ViceGripPincer +08104c48 battle_anim_effects_2.s Anim_ViceGripPincerStep +08104c64 battle_anim_effects_2.s Anim_GuillotinePincer +08104d0c battle_anim_effects_2.s Anim_GuillotinePincerStep1 +08104d80 battle_anim_effects_2.s Anim_GuillotinePincerStep2 +08104de4 battle_anim_effects_2.s Anim_GuillotinePincerStep3 +08104e00 battle_anim_effects_2.s AnimTask_GrowAndGreyscale +08104e64 battle_anim_effects_2.s AnimTask_GrowAndGreyscaleStep +08104ec4 battle_anim_effects_2.s AnimTask_Minimize +08104f1c battle_anim_effects_2.s AnimTask_MinimizeStep1 +08105050 battle_anim_effects_2.s CreateMinimizeSprite +08105140 battle_anim_effects_2.s ClonedMinizeSprite_Step +08105188 battle_anim_effects_2.s AnimTask_Splash +081051e8 battle_anim_effects_2.s AnimTask_SplashStep +08105304 battle_anim_effects_2.s sub_08105304 +08105340 battle_anim_effects_2.s sub_08105340_jp +0810536c battle_anim_effects_2.s Anim_BreathPuff +081053fc battle_anim_effects_2.s Anim_AngerMark +08105488 battle_anim_effects_2.s sub_08105488_jp +081054c8 battle_anim_effects_2.s AnimTask_GrowAndShrinkStep +081054f4 battle_anim_effects_2.s sub_081054F4_jp +08105578 battle_anim_effects_2.s sub_08105578_jp +081056c4 battle_anim_effects_2.s sub_081056C4_jp +081057a4 battle_anim_effects_2.s sub_081057A4_jp +0810586c battle_anim_effects_2.s sub_0810586C_jp +081058c8 battle_anim_effects_2.s sub_081058C8_jp +08105a14 battle_anim_effects_2.s sub_08105A14_jp +08105ad4 battle_anim_effects_2.s sub_08105AD4_jp +08105af4 battle_anim_effects_2.s sub_08105AF4_jp +08105d38 battle_anim_effects_2.s sub_08105D38_jp +08105d88 battle_anim_effects_2.s sub_08105D88_jp +08105dcc battle_anim_effects_2.s sub_08105DCC_jp +08105e44 battle_anim_effects_2.s sub_08105E44_jp +08105e6c battle_anim_effects_2.s sub_08105E6C_jp +08105ee4 battle_anim_effects_2.s sub_08105EE4_jp +08105f24 battle_anim_effects_2.s sub_08105F24_jp +08105f6c battle_anim_effects_2.s sub_08105F6C_jp +08105fac battle_anim_effects_2.s sub_08105FAC_jp +08105fcc battle_anim_effects_2.s sub_08105FCC_jp +08106008 battle_anim_effects_2.s sub_08106008_jp +08106060 battle_anim_effects_2.s sub_08106060_jp +081060c8 battle_anim_effects_2.s sub_081060C8_jp +081061ec battle_anim_effects_2.s sub_081061EC_jp +08106230 battle_anim_effects_2.s sub_08106230_jp +081062fc battle_anim_effects_2.s sub_081062FC_jp +08106358 battle_anim_effects_2.s sub_08106358_jp +08106498 battle_anim_effects_2.s sub_08106498_jp +08106504 battle_anim_effects_2.s sub_08106504_jp +081065b0 battle_anim_effects_2.s sub_081065B0_jp +081065d8 battle_anim_effects_2.s sub_081065D8_jp +08106638 battle_anim_effects_2.s sub_08106638_jp +081066b0 battle_anim_effects_2.s sub_081066B0_jp +08106700 battle_anim_effects_2.s sub_08106700_jp +08106780 battle_anim_effects_2.s sub_08106780_jp +081067d4 battle_anim_effects_2.s sub_081067D4_jp +08106870 battle_anim_effects_2.s sub_08106870_jp +08106900 battle_anim_effects_2.s sub_08106900_jp +08106990 battle_anim_effects_2.s sub_08106990_jp +081069dc battle_anim_effects_2.s sub_081069DC_jp +08106a14 battle_anim_effects_2.s sub_08106A14_jp +08106a9c battle_anim_effects_2.s sub_08106A9C_jp +08106acc battle_anim_effects_2.s sub_08106ACC +08106b38 battle_anim_effects_2.s AnimTask_HeartsBackground +08106bf8 battle_anim_effects_2.s sub_08106BF8_jp +08106d48 battle_anim_effects_2.s sub_08106D48_jp +08106e3c battle_anim_effects_2.s sub_08106E3C_jp +08106f8c battle_anim_effects_2.s AnimOrbitFast +08106fec battle_anim_effects_2.s AnimOrbitFastStep +081070c8 battle_anim_effects_2.s AnimOrbitScatter +0810711c battle_anim_effects_2.s AnimOrbitScatterStep +08107164 battle_anim_effects_2.s sub_08107164_jp +08107194 battle_anim_effects_2.s sub_08107194_jp +081071ec battle_anim_effects_2.s sub_081071EC_jp +08107208 battle_anim_effects_2.s sub_08107208_jp +08107220 battle_anim_effects_2.s sub_08107220_jp +081072b4 battle_anim_effects_2.s sub_081072B4_jp +08107320 battle_anim_effects_2.s sub_08107320_jp +081073a4 battle_anim_effects_2.s sub_081073A4_jp +081074d0 battle_anim_effects_2.s sub_081074D0_jp +08107520 battle_anim_effects_2.s sub_08107520_jp +081075ac battle_anim_effects_2.s sub_081075AC_jp +081075e0 battle_anim_effects_2.s sub_081075E0_jp +08107624 battle_anim_effects_2.s sub_08107624_jp +08107650 battle_anim_effects_2.s sub_08107650_jp +08107718 battle_anim_effects_2.s sub_08107718_jp +08107750 battle_anim_effects_2.s sub_08107750_jp +081077b0 battle_anim_effects_2.s sub_081077B0_jp +08107868 battle_anim_effects_2.s sub_08107868_jp +0810788c battle_anim_effects_2.s sub_0810788C_jp +081078fc battle_anim_effects_2.s sub_081078FC_jp +08107994 battle_anim_effects_2.s AnimTask_IsFuryCutterHitRight +081079b8 battle_anim_effects_2.s AnimTask_GetFuryCutterHitCount +water.s +081079d8 water.s AnimTask_CreateRaindrops +08107a6c water.s sub_08107A6C +08107a78 water.s sub_08107A78_jp +08107ab0 water.s sub_08107AB0_jp +08107bd0 water.s sub_08107BD0_jp +08107c58 water.s sub_08107C58_jp +08107c80 water.s sub_08107C80_jp +08107c9c water.s sub_08107C9C_jp +08107d34 water.s sub_08107D34_jp +08107d78 water.s sub_08107D78_jp +08107dbc water.s sub_08107DBC_jp +08107e3c water.s sub_08107E3C_jp +08107ec4 water.s sub_08107EC4_jp +08107f18 water.s sub_08107F18_jp +08107f44 water.s sub_08107F44_jp +08107f80 water.s sub_08107F80_jp +08107ff4 water.s sub_08107FF4_jp +08108010 water.s sub_08108010_jp +081080e4 water.s sub_081080E4_jp +08108120 water.s sub_08108120_jp +0810815c water.s sub_0810815C_jp +081081a4 water.s AnimTask_CreateSurfWave +081083d4 water.s sub_081083D4 +08108514 water.s sub_08108514_jp +081085a8 water.s sub_081085A8_jp +08108884 water.s sub_08108884_jp +081088e8 water.s sub_081088E8_jp +08108934 water.s sub_08108934_jp +08108990 water.s sub_08108990_jp +08108bd4 water.s sub_08108BD4_jp +08108c58 water.s sub_08108C58_jp +08108d6c water.s sub_08108D6C_jp +08108e18 water.s sub_08108E18_jp +08108e7c water.s sub_08108E7C_jp +08108f6c water.s sub_08108F6C_jp +08109010 water.s sub_08109010_jp +081090bc water.s sub_081090BC_jp +08109134 water.s sub_08109134_jp +081091c8 water.s sub_081091C8_jp +08109310 water.s sub_08109310_jp +0810937c water.s sub_0810937C_jp +081093e4 water.s sub_081093E4_jp +08109430 water.s sub_08109430_jp +08109458 water.s sub_08109458_jp +081094a4 water.s sub_081094A4_jp +081094e4 water.s sub_081094E4_jp +0810952c water.s sub_0810952C_jp +081095a4 water.s sub_081095A4_jp +fire.s +08109718 fire.s sub_08109718_jp +08109758 fire.s sub_08109758_jp +0810979c fire.s sub_0810979C_jp +0810980c fire.s sub_0810980C_jp +08109878 fire.s sub_08109878_jp +081098b4 fire.s sub_081098B4_jp +08109928 fire.s sub_08109928_jp +081099bc fire.s sub_081099BC_jp +081099e8 fire.s AnimEmberFlare +08109a50 fire.s sub_08109A50 +08109a6c fire.s AnimFireRing +08109a94 fire.s AnimFireRingStep1 +08109aec fire.s AnimFireRingStep2 +08109b64 fire.s AnimFireRingStep3 +08109b88 fire.s UpdateFireRingCircleOffset +08109bb4 fire.s AnimFireCross +08109bf4 fire.s sub_08109BF4_jp +08109c34 fire.s sub_08109C34_jp +08109c5c fire.s sub_08109C5C_jp +08109cb0 fire.s sub_08109CB0_jp +08109d20 fire.s sub_08109D20_jp +0810a004 fire.s sub_0810A004_jp +0810a13c fire.s sub_0810A13C_jp +0810a180 fire.s sub_0810A180_jp +0810a1d4 fire.s sub_0810A1D4_jp +0810a1f0 fire.s sub_0810A1F0_jp +0810a260 fire.s sub_0810A260_jp +0810a2b4 fire.s sub_0810A2B4_jp +0810a34c fire.s sub_0810A34C_jp +0810a49c fire.s sub_0810A49C_jp +0810a500 fire.s sub_0810A500_jp +0810a60c fire.s sub_0810A60C_jp +0810a67c fire.s sub_0810A67C +0810a8b0 fire.s AnimTask_BlendBackground +0810a8e4 fire.s sub_0810A8E4_jp +electric.s +0810a9f8 electric.s sub_0810A9F8_jp +0810aa48 electric.s sub_0810AA48_jp +0810aa64 electric.s sub_0810AA64_jp +0810aaa8 electric.s sub_0810AAA8_jp +0810aac4 electric.s sub_0810AAC4_jp +0810ab58 electric.s sub_0810AB58_jp +0810acbc electric.s sub_0810ACBC_jp +0810ad44 electric.s sub_0810AD44_jp +0810adbc electric.s sub_0810ADBC_jp +0810ae0c electric.s sub_0810AE0C_jp +0810ae78 electric.s sub_0810AE78_jp +0810af3c electric.s sub_0810AF3C_jp +0810afac electric.s sub_0810AFAC_jp +0810b02c electric.s sub_0810B02C_jp +0810b084 electric.s sub_0810B084_jp +0810b22c electric.s sub_0810B22C_jp +0810b27c electric.s sub_0810B27C_jp +0810b300 electric.s sub_0810B300_jp +0810b34c electric.s sub_0810B34C_jp +0810b3c8 electric.s sub_0810B3C8_jp +0810b4dc electric.s sub_0810B4DC_jp +0810b510 electric.s sub_0810B510_jp +0810b528 electric.s sub_0810B528_jp +0810b580 electric.s sub_0810B580_jp +0810b5e8 electric.s sub_0810B5E8_jp +0810b648 electric.s sub_0810B648_jp +0810b6ac electric.s sub_0810B6AC_jp +0810b81c electric.s sub_0810B81C_jp +0810b9a4 electric.s sub_0810B9A4_jp +0810ba40 electric.s sub_0810BA40_jp +0810ba8c electric.s sub_0810BA8C_jp +0810baec electric.s sub_0810BAEC_jp +0810bc80 electric.s sub_0810BC80_jp +0810bd6c electric.s sub_0810BD6C_jp +0810bdac electric.s sub_0810BDAC_jp +0810be64 electric.s sub_0810BE64_jp +0810bed4 electric.s sub_0810BED4_jp +ice.s +0810bf14 ice.s sub_0810BF14_jp +0810c098 ice.s sub_0810C098_jp +0810c0fc ice.s AnimIcePunchSwirlingParticle +0810c13c ice.s AnimIceBeamParticle +0810c1c4 ice.s AnimIceEffectParticle +0810c238 ice.s AnimFlickerIceEffectParticle +0810c274 ice.s AnimSwirlingSnowball_Step1 +0810c3b0 ice.s AnimSwirlingSnowball_Step2 +0810c418 ice.s AnimSwirlingSnowball_Step3 +0810c49c ice.s AnimSwirlingSnowball_End +0810c4e4 ice.s AnimMoveParticleBeyondTarget +0810c628 ice.s AnimWiggleParticleTowardsTarget +0810c698 ice.s AnimWaveFromCenterOfTarget +0810c720 ice.s InitSwirlingFogAnim +0810c858 ice.s AnimSwirlingFogAnim +0810c8f0 ice.s AnimTask_Haze1 +0810c9b4 ice.s AnimTask_Haze2 +0810cb40 ice.s AnimThrowMistBall +0810cb74 ice.s AnimTask_LoadMistTiles +0810cc40 ice.s AnimTask_OverlayFogTiles +0810cdb0 ice.s InitPoisonGasCloudAnim +0810cf24 ice.s MovePoisonGasCloud +0810d168 ice.s AnimTask_Hail1 +0810d184 ice.s AnimTask_Hail2 +0810d234 ice.s GenerateHailParticle +0810d3a8 ice.s AnimHailBegin +0810d48c ice.s AnimHailContinue +0810d4d8 ice.s InitIceBallAnim +0810d56c ice.s AnimThrowIceBall +0810d59c ice.s InitIceBallParticle +0810d600 ice.s AnimIceBallParticle +0810d64c ice.s AnimTask_GetRolloutCounter +fight.s +0810d67c fight.s unc_080B08A0 +0810d6b8 fight.s sub_0810D6B8_jp +0810d704 fight.s sub_0810D704_jp +0810d730 fight.s AnimBasicFistOrFoot +0810d780 fight.s sub_0810D780_jp +0810d908 fight.s sub_0810D908_jp +0810d95c fight.s sub_0810D95C_jp +0810d9b4 fight.s sub_0810D9B4_jp +0810da04 fight.s sub_0810DA04_jp +0810da90 fight.s sub_0810DA90_jp +0810dac8 fight.s AnimSpinningKickOrPunch +0810db00 fight.s AnimSpinningKickOrPunchFinish +0810db34 fight.s AnimStompFoot +0810db58 fight.s AnimStompFootStep +0810dbb0 fight.s AnimStompFootEnd +0810dbcc fight.s sub_0810DBCC_jp +0810dc5c fight.s sub_0810DC5C_jp +0810dccc fight.s sub_0810DCCC_jp +0810dd44 fight.s sub_0810DD44_jp +0810de2c fight.s sub_0810DE2C_jp +0810de58 fight.s sub_0810DE58_jp +0810def8 fight.s sub_0810DEF8_jp +0810df64 fight.s sub_0810DF64_jp +0810dfc0 fight.s sub_0810DFC0_jp +0810e080 fight.s sub_0810E080_jp +0810e0c4 fight.s sub_0810E0C4_jp +0810e1b0 fight.s sub_0810E1B0_jp +0810e1d4 fight.s sub_0810E1D4_jp +0810e260 fight.s sub_0810E260_jp +0810e2cc fight.s sub_0810E2CC_jp +0810e30c fight.s sub_0810E30C_jp +poison.s +0810e3fc poison.s sub_0810E3FC_jp +0810e460 poison.s sub_0810E460_jp +0810e47c poison.s sub_0810E47C_jp +0810e504 poison.s sub_0810E504_jp +0810e520 poison.s sub_0810E520_jp +0810e574 poison.s sub_0810E574_jp +0810e5a0 poison.s sub_0810E5A0_jp +0810e614 poison.s AnimBubbleEffect +0810e67c poison.s AnimBubbleEffectStep +flying.s +0810e6c0 flying.s sub_0810E6C0_jp +0810e6e8 flying.s sub_0810E6E8_jp +0810e728 flying.s sub_0810E728_jp +0810e768 flying.s sub_0810E768_jp +0810e7f8 flying.s sub_0810E7F8_jp +0810e878 flying.s sub_0810E878_jp +0810e894 flying.s sub_0810E894_jp +0810e98c flying.s sub_0810E98C_jp +0810e9d4 flying.s sub_0810E9D4_jp +0810ea18 flying.s sub_0810EA18_jp +0810ea9c flying.s sub_0810EA9C_jp +0810eb18 flying.s sub_0810EB18_jp +0810eb64 flying.s sub_0810EB64_jp +0810ed70 flying.s sub_0810ED70_jp +0810f29c flying.s sub_0810F29C_jp +0810f2f0 flying.s sub_0810F2F0_jp +0810f390 flying.s sub_0810F390_jp +0810f3d8 flying.s sub_0810F3D8_jp +0810f484 flying.s sub_0810F484_jp +0810f4e4 flying.s sub_0810F4E4_jp +0810f578 flying.s sub_0810F578_jp +0810f5c0 flying.s sub_0810F5C0_jp +0810f620 flying.s sub_0810F620_jp +0810f664 flying.s sub_0810F664_jp +0810f748 flying.s sub_0810F748_jp +0810f7f8 flying.s sub_0810F7F8_jp +0810f854 flying.s sub_0810F854_jp +0810f868 flying.s sub_0810F868_jp +0810f8d4 flying.s sub_0810F8D4_jp +0810f990 flying.s sub_0810F990 +0810f9d4 flying.s unref_sub_810F184 +psychic.s +0810fa3c psychic.s sub_0810FA3C_jp +0810fb90 psychic.s sub_0810FB90_jp +0810fc18 psychic.s sub_0810FC18_jp +0810fc50 psychic.s sub_0810FC50_jp +0810fcbc psychic.s sub_0810FCBC_jp +0810fd74 psychic.s sub_0810FD74_jp +0810fddc psychic.s sub_0810FDDC_jp +0810fe84 psychic.s sub_0810FE84_jp +0810ff00 psychic.s sub_0810FF00_jp +0810ff90 psychic.s sub_0810FF90_jp +0810ffc4 psychic.s sub_0810FFC4_jp +08110024 psychic.s sub_08110024_jp +08110060 psychic.s sub_08110060_jp +0811008c psychic.s sub_0811008C_jp +081100e8 psychic.s sub_081100E8_jp +08110190 psychic.s sub_08110190_jp +08110224 psychic.s sub_08110224_jp +081103b0 psychic.s sub_081103B0_jp +081103f8 psychic.s sub_081103F8_jp +08110440 psychic.s sub_08110440_jp +0811058c psychic.s sub_0811058C_jp +08110640 psychic.s sub_08110640_jp +08110664 psychic.s sub_08110664_jp +08110784 psychic.s sub_08110784_jp +08110884 psychic.s sub_08110884_jp +08110984 psychic.s sub_08110984_jp +08110a90 psychic.s sub_08110A90_jp +bug.s +08110bb8 bug.s sub_08110BB8_jp +08110c88 bug.s sub_08110C88_jp +08110d34 bug.s AnimTranslateWebThread +08110dcc bug.s sub_08110DCC_jp +08110e04 bug.s sub_08110E04_jp +08110e80 bug.s sub_08110E80_jp +08110ecc bug.s sub_08110ECC_jp +08110ef4 bug.s sub_08110EF4_jp +08110f50 bug.s sub_08110F50_jp +08110f70 bug.s AnimTranslateStinger +081110a0 bug.s AnimMissileArc +0811111c bug.s AnimMissileArcStep +081111e4 bug.s sub_081111E4_jp +rock.s +08111240 rock.s sub_08111240_jp +081112c0 rock.s sub_081112C0_jp +08111304 rock.s sub_08111304_jp +08111388 rock.s sub_08111388_jp +081113d0 rock.s sub_081113D0_jp +0811141c rock.s AnimTask_LoadSandstormBackground +08111500 rock.s sub_08111500_jp +0811169c rock.s AnimDirtParticleAcrossScreen +08111780 rock.s AnimRaiseSprite +081117c4 rock.s sub_081117C4_jp +081118f4 rock.s sub_081118F4_jp +08111a64 rock.s sub_08111A64_jp +08111b6c rock.s sub_08111B6C_jp +08111bac rock.s sub_08111BAC_jp +08111bd8 rock.s sub_08111BD8_jp +08111c18 rock.s sub_08111C18_jp +08111c68 rock.s sub_08111C68_jp +08111c94 rock.s sub_08111C94_jp +08111cec rock.s sub_08111CEC_jp +08111d3c rock.s AnimTask_GetSeismicTossDamageLevel +08111d7c rock.s sub_08111D7C_jp +08111de0 rock.s sub_08111DE0_jp +ghost.s +08111e5c ghost.s sub_08111E5C_jp +08111ec4 ghost.s sub_08111EC4_jp +08111f38 ghost.s sub_08111F38_jp +08111fb4 ghost.s sub_08111FB4_jp +08112044 ghost.s sub_08112044_jp +08112064 ghost.s sub_08112064_jp +081120dc ghost.s sub_081120DC_jp +08112164 ghost.s sub_08112164_jp +081121bc ghost.s sub_081121BC_jp +08112230 ghost.s InitAnimShadowBall +081122d8 ghost.s AnimShadowBallStep +081123ec ghost.s sub_081123EC_jp +08112404 ghost.s sub_08112404_jp +081124a0 ghost.s sub_081124A0_jp +081125c8 ghost.s sub_081125C8_jp +081126a0 ghost.s sub_081126A0_jp +081126bc ghost.s sub_081126BC_jp +081126c8 ghost.s sub_081126C8_jp +0811292c ghost.s sub_0811292C_jp +081129c0 ghost.s sub_081129C0_jp +08112ab4 ghost.s sub_08112AB4_jp +08112bd4 ghost.s sub_08112BD4_jp +08112c14 ghost.s sub_08112C14_jp +08112e30 ghost.s sub_08112E30_jp +08112fa8 ghost.s sub_08112FA8_jp +0811305c ghost.s sub_0811305C_jp +081131e4 ghost.s sub_081131E4_jp +08113240 ghost.s sub_08113240_jp +0811329c ghost.s sub_0811329C_jp +0811331c ghost.s sub_0811331C_jp +08113394 ghost.s sub_08113394_jp +081133c8 ghost.s sub_081133C8_jp +0811349c ghost.s sub_0811349C_jp +081134bc ghost.s sub_081134BC_jp +08113560 ghost.s sub_08113560_jp +081136ec ghost.s sub_081136EC_jp +081137b0 ghost.s sub_081137B0_jp +dragon.s +08113808 dragon.s sub_08113808_jp +081138b4 dragon.s sub_081138B4_jp +08113950 dragon.s sub_08113950_jp +08113a04 dragon.s sub_08113A04_jp +08113a74 dragon.s sub_08113A74_jp +08113aa0 dragon.s sub_08113AA0_jp +08113b30 dragon.s sub_08113B30_jp +08113c38 dragon.s sub_08113C38_jp +08113d08 dragon.s sub_08113D08_jp +08113dc4 dragon.s sub_08113DC4_jp +08113e3c dragon.s sub_08113E3C_jp +dark.s +08113eec dark.s sub_08113EEC_jp +08113f38 dark.s sub_08113F38_jp +08113fac dark.s sub_08113FAC_jp +08114034 dark.s sub_08114034_jp +0811406c dark.s sub_0811406C_jp +081140d8 dark.s sub_081140D8_jp +08114124 dark.s sub_08114124_jp +081141a0 dark.s sub_081141A0_jp +0811422c dark.s sub_0811422C_jp +08114268 dark.s sub_08114268_jp +081142a8 dark.s sub_081142A8_jp +081142e0 dark.s sub_081142E0_jp +081143e0 dark.s sub_081143E0_jp +081143fc dark.s sub_081143FC_jp +081145b0 dark.s sub_081145B0_jp +081146c8 dark.s sub_081146C8_jp +08114918 dark.s sub_08114918_jp +08114a94 dark.s sub_08114A94_jp +08114bc4 dark.s sub_08114BC4_jp +08114c10 dark.s sub_08114C10_jp +08114cc0 dark.s sub_08114CC0_jp +08114d0c dark.s sub_08114D0C_jp +08114d48 dark.s AnimTask_MetallicShine +08114f98 dark.s sub_08114F98_jp +081150ec dark.s AnimTask_SetGreyscaleOrOriginalPal +081151b0 dark.s sub_081151B0 +ground.s +081151e4 ground.s AnimBonemerangProjectile +0811524c ground.s AnimBonemerangProjectileStep +081152b0 ground.s AnimFissureDirtPlumeParticleStep +081152cc ground.s AnimBoneHitProjectile +08115340 ground.s AnimDirtScatter +081153d0 ground.s AnimMudSportDirt +08115460 ground.s AnimMudSportDirtRising +0811549c ground.s AnimMudSportDirtFalling +0811550c ground.s sub_0811550C_jp +0811554c ground.s sub_0811554C_jp +08115704 ground.s sub_08115704_jp +08115764 ground.s sub_08115764_jp +081157a4 ground.s sub_081157A4_jp +08115828 ground.s sub_08115828_jp +08115930 ground.s sub_08115930 +081159f0 ground.s AnimFissureDirtPlumeParticle +08115a78 ground.s AnimBonemerangProjectileEnd +08115a94 ground.s AnimDigDirtMound +08115b2c ground.s sub_08115B2C_jp +08115bfc ground.s sub_08115BFC_jp +08115cf4 ground.s sub_08115CF4_jp +08115dd8 ground.s sub_08115DD8 +08115e50 ground.s AnimTask_IsPowerOver99 +08115e78 ground.s sub_08115E78_jp +08115f20 ground.s sub_08115F20_jp +normal.s +08115f7c normal.s AnimConfusionDuck +08115fe8 normal.s AnimConfusionDuckStep +0811604c normal.s AnimSimplePaletteBlend +0811608c normal.s UnpackSelectedBattleAnimPalettes +081160d4 normal.s AnimSimplePaletteBlendStep +081160f4 normal.s sub_081160F4 +08116148 normal.s sub_08116148_jp +081161d4 normal.s sub_081161D4_jp +08116204 normal.s sub_08116204_jp +08116254 normal.s sub_08116254_jp +081162a4 normal.s sub_081162A4_jp +081162f4 normal.s sub_081162F4_jp +0811635c normal.s sub_0811635C_jp +08116418 normal.s sub_08116418_jp +08116468 normal.s sub_08116468_jp +081164d0 normal.s sub_081164D0_jp +08116520 normal.s sub_08116520_jp +0811657c normal.s sub_0811657C_jp +081165e4 normal.s sub_081165E4_jp +08116650 normal.s sub_08116650_jp +08116708 normal.s sub_08116708_jp +08116760 normal.s sub_08116760_jp +081167e4 normal.s sub_081167E4_jp +081168f4 normal.s sub_081168F4_jp +08116998 normal.s sub_08116998_jp +08116a44 normal.s sub_08116A44_jp +08116af4 normal.s sub_08116AF4_jp +08116b48 normal.s sub_08116B48_jp +08116bd8 normal.s sub_08116BD8_jp +08116c20 normal.s sub_08116C20_jp +08116c70 normal.s sub_08116C70_jp +08116ca8 normal.s sub_08116CA8_jp +08116d40 normal.s sub_08116D40_jp +08116db0 normal.s sub_08116DB0_jp +08116df8 normal.s sub_08116DF8_jp +08116e34 normal.s sub_08116E34_jp +battle_anim_utility_funcs.s +08116e70 battle_anim_utility_funcs.s sub_08116E70_jp +08116eb4 battle_anim_utility_funcs.s sub_08116EB4_jp +08116fac battle_anim_utility_funcs.s AnimTask_SetCamouflageBlend +08117098 battle_anim_utility_funcs.s AnimTask_BlendParticle +081170c4 battle_anim_utility_funcs.s StartBlendAnimSpriteColor +08117108 battle_anim_utility_funcs.s AnimTask_BlendSpriteColor_Step2 +081171b0 battle_anim_utility_funcs.s sub_081171B0_jp +081171f0 battle_anim_utility_funcs.s sub_081171F0_jp +08117210 battle_anim_utility_funcs.s sub_08117210_jp +08117248 battle_anim_utility_funcs.s sub_08117248_jp +08117320 battle_anim_utility_funcs.s sub_08117320_jp +08117364 battle_anim_utility_funcs.s sub_08117364_jp +081175b4 battle_anim_utility_funcs.s sub_081175B4_jp +08117704 battle_anim_utility_funcs.s sub_08117704_jp +08117754 battle_anim_utility_funcs.s sub_08117754_jp +0811793c battle_anim_utility_funcs.s sub_0811793C_jp +08117b3c battle_anim_utility_funcs.s sub_08117B3C_jp +08117ce4 battle_anim_utility_funcs.s sub_08117CE4_jp +08117d50 battle_anim_utility_funcs.s sub_08117D50_jp +08117e14 battle_anim_utility_funcs.s sub_08117E14_jp +08117e60 battle_anim_utility_funcs.s sub_08117E60_jp +08117eb0 battle_anim_utility_funcs.s sub_08117EB0_jp +08117f28 battle_anim_utility_funcs.s sub_08117F28_jp +08117fa4 battle_anim_utility_funcs.s AnimTask_GetAttackerSide +08117fd0 battle_anim_utility_funcs.s AnimTask_GetTargetSide +08117ffc battle_anim_utility_funcs.s AnimTask_GetTargetIsAttackerPartner +08118034 battle_anim_utility_funcs.s sub_08118034_jp +081180a4 battle_anim_utility_funcs.s sub_081180A4_jp +081182b0 battle_anim_utility_funcs.s sub_081182B0_jp +08118474 battle_anim_utility_funcs.s AnimTask_GetBattleTerrain +08118494 battle_anim_utility_funcs.s sub_08118494_jp +081184c0 battle_anim_utility_funcs.s sub_081184C0_jp +081184f0 battle_anim_utility_funcs.s sub_081184F0_jp +0811858c battle_anim_utility_funcs.s sub_0811858C_jp +08118628 battle_anim_utility_funcs.s sub_08118628_jp +081186b0 battle_anim_utility_funcs.s AnimTask_IsContest +081186e4 battle_anim_utility_funcs.s sub_081186E4_jp +08118714 battle_anim_utility_funcs.s AnimTask_IsTargetSameSide +08118760 battle_anim_utility_funcs.s sub_08118760_jp +08118780 battle_anim_utility_funcs.s sub_08118780_jp +081187b0 battle_anim_utility_funcs.s sub_081187B0_jp +08118820 battle_anim_utility_funcs.s sub_08118820_jp +battle_intro.s +0811887c battle_intro.s SetAnimBgAttribute +08118990 battle_intro.s GetAnimBgAttribute +08118a24 battle_intro.s HandleIntroSlide +08118adc battle_intro.s sub_08118ADC_jp +08118b3c battle_intro.s BattleIntroSlide1 +08118d88 battle_intro.s BattleIntroSlide2 +08119094 battle_intro.s BattleIntroSlide3 +08119310 battle_intro.s BattleIntroSlideLink +081195b8 battle_intro.s BattleIntroSlidePartner +0811980c battle_intro.s sub_0811980C +081198e4 battle_intro.s unref_sub_8119094 +bike.s +081199b4 bike.s MovePlayerOnBike +081199ec bike.s MovePlayerOnMachBike +08119a10 bike.s AcroBikeTransition_FaceDirection +08119a1c bike.s GetMachBikeTransition +08119a74 bike.s MachBikeTransition_FaceDirection +08119a88 bike.s MachBikeTransition_TurnDirection +08119ad0 bike.s MachBikeTransition_TrySpeedUp +08119b94 bike.s MachBikeTransition_TrySlowDown +08119c18 bike.s MovePlayerOnAcroBike +08119c44 bike.s sub_08119C44 +08119c50 bike.s CheckMovementInputAcroBike +08119c7c bike.s AcroBikeHandleInputNormal +08119d18 bike.s AcroBikeHandleInputTurning +08119d90 bike.s AcroBikeHandleInputWheelieStanding +08119e30 bike.s AcroBikeHandleInputBunnyHop +08119ed8 bike.s AcroBikeHandleInputWheelieMoving +08119fb4 bike.s AcroBikeHandleInputSidewaysJump +0811a010 bike.s AcroBikeHandleInputTurnJump +0811a034 bike.s AcroBikeTransition_TurnJump +0811a044 bike.s AcroBikeTransition_TurnDirection +0811a080 bike.s AcroBikeTransition_Moving +0811a110 bike.s AcroBikeTransition_NormalToWheelie +0811a14c bike.s AcroBikeTransition_WheelieToNormal +0811a188 bike.s AcroBikeTransition_WheelieIdle +0811a1c4 bike.s AcroBikeTransition_WheelieHoppingStanding +0811a200 bike.s AcroBikeTransition_WheelieHoppingMoving +0811a274 bike.s AcroBikeTransition_SideJump +0811a2e4 bike.s sub_0811A2E4 +0811a2f4 bike.s AcroBikeTransition_WheelieMoving +0811a384 bike.s AcroBikeTransition_WheelieRisingMoving +0811a414 bike.s AcroBikeTransition_WheelieLoweringMoving +0811a48c bike.s Bike_TryAcroBikeHistoryUpdate +0811a4b4 bike.s AcroBike_TryHistoryUpdate +0811a51c bike.s HasPlayerInputTakenLongerThanList +0811a580 bike.s AcroBike_GetJumpDirection +0811a5d0 bike.s Bike_UpdateDirTimerHistory +0811a60c bike.s Bike_UpdateABStartSelectHistory +0811a648 bike.s Bike_DPadToDirection +0811a688 bike.s get_some_collision +0811a6f4 bike.s Bike_CheckCollisionTryAdvanceCollisionCount +0811a740 bike.s RS_IsRunningDisallowed +0811a768 bike.s IsRunningDisallowedByMetatile +0811a7a0 bike.s Bike_TryAdvanceCyclingRoadCollisions +0811a7c4 bike.s CanBikeFaceDirOnMetatile +0811a814 bike.s WillPlayerCollideWithCollision +0811a848 bike.s IsBikingDisallowedByPlayer +0811a894 bike.s player_should_look_direction_be_enforced_upon_movement +0811a8d0 bike.s GetOnOffBike +0811a920 bike.s BikeClearState +0811a964 bike.s Bike_UpdateBikeCounterSpeed +0811a978 bike.s Bike_SetBikeStill +0811a988 bike.s GetPlayerSpeed +0811a9d8 bike.s Bike_HandleBumpySlopeJump +0811aa2c bike.s IsRunningDisallowed +easy_chat.s +0811aa5c easy_chat.s DoEasyChatScreen +0811aac8 easy_chat.s MainCallback_EasyChatScreen +0811aae0 easy_chat.s VBlankCallback_EasyChatScreen +0811aaf4 easy_chat.s sub_0811AAF4 +0811ab10 easy_chat.s sub_0811AB10_jp +0811ab4c easy_chat.s sub_0811AB4C_jp +0811ac78 easy_chat.s sub_0811AC78_jp +0811ad20 easy_chat.s sub_0811AD20_jp +0811ad40 easy_chat.s ShowEasyChatScreen +0811b034 easy_chat.s sub_0811B034_jp +0811b0a8 easy_chat.s sub_0811B0A8_jp +0811b0b8 easy_chat.s sub_0811B0B8_jp +0811b0dc easy_chat.s sub_0811B0DC_jp +0811b0f4 easy_chat.s sub_0811B0F4_jp +0811b11c easy_chat.s DoQuizAnswerEasyChatScreen +0811b140 easy_chat.s DoQuizQuestionEasyChatScreen +0811b164 easy_chat.s DoQuizSetAnswerEasyChatScreen +0811b188 easy_chat.s DoQuizSetQuestionEasyChatScreen +0811b1ac easy_chat.s EasyChat_AllocateResources +0811b2d0 easy_chat.s EasyChat_FreeResources +0811b2ec easy_chat.s sub_0811B2EC_jp +0811b384 easy_chat.s sub_0811B384_jp +0811b4d4 easy_chat.s sub_0811B4D4_jp +0811b614 easy_chat.s sub_0811B614_jp +0811b6d0 easy_chat.s sub_0811B6D0_jp +0811b75c easy_chat.s sub_0811B75C_jp +0811b7bc easy_chat.s sub_0811B7BC_jp +0811b810 easy_chat.s sub_0811B810_jp +0811b85c easy_chat.s sub_0811B85C_jp +0811b88c easy_chat.s sub_0811B88C_jp +0811b8b8 easy_chat.s sub_0811B8B8_jp +0811b8c8 easy_chat.s sub_0811B8C8_jp +0811b920 easy_chat.s sub_0811B920_jp +0811b954 easy_chat.s sub_0811B954_jp +0811b984 easy_chat.s sub_0811B984_jp +0811ba34 easy_chat.s sub_0811BA34_jp +0811ba74 easy_chat.s sub_0811BA74_jp +0811ba80 easy_chat.s sub_0811BA80_jp +0811bafc easy_chat.s sub_0811BAFC_jp +0811bb0c easy_chat.s sub_0811BB0C_jp +0811bb38 easy_chat.s sub_0811BB38_jp +0811bb64 easy_chat.s sub_0811BB64_jp +0811bbb4 easy_chat.s sub_0811BBB4_jp +0811bbe8 easy_chat.s sub_0811BBE8_jp +0811bc24 easy_chat.s sub_0811BC24_jp +0811bc58 easy_chat.s sub_0811BC58_jp +0811bc7c easy_chat.s sub_0811BC7C_jp +0811bcbc easy_chat.s sub_0811BCBC_jp +0811bcf8 easy_chat.s sub_0811BCF8_jp +0811bd38 easy_chat.s sub_0811BD38_jp +0811be04 easy_chat.s sub_0811BE04_jp +0811be94 easy_chat.s sub_0811BE94_jp +0811bf14 easy_chat.s sub_0811BF14_jp +0811bf38 easy_chat.s sub_0811BF38_jp +0811bf64 easy_chat.s sub_0811BF64_jp +0811c098 easy_chat.s sub_0811C098_jp +0811c0b8 easy_chat.s sub_0811C0B8_jp +0811c0d8 easy_chat.s GetFooterIndex +0811c140 easy_chat.s sub_0811C140_jp +0811c160 easy_chat.s sub_0811C160_jp +0811c17c easy_chat.s sub_0811C17C_jp +0811c1a4 easy_chat.s sub_0811C1A4_jp +0811c1cc easy_chat.s sub_0811C1CC_jp +0811c220 easy_chat.s sub_0811C220_jp +0811c240 easy_chat.s FooterHasFourOptions +0811c260 easy_chat.s GetEasyChatScreenType +0811c26c easy_chat.s GetEasyChatScreenFrameId +0811c28c easy_chat.s GetTitleText +0811c298 easy_chat.s GetEasyChatWordBuffer +0811c2a4 easy_chat.s GetNumRows +0811c2b0 easy_chat.s GetNumColumns +0811c2bc easy_chat.s GetMainCursorColumn +0811c2c8 easy_chat.s GetMainCursorRow +0811c2d4 easy_chat.s GetEasyChatInstructionsText +0811c30c easy_chat.s GetEasyChatConfirmText +0811c344 easy_chat.s sub_0811C344_jp +0811c38c easy_chat.s GetEasyChatConfirmDeletionText +0811c3a0 easy_chat.s sub_0811C3A0 +0811c3b4 easy_chat.s sub_0811C3B4_jp +0811c3c0 easy_chat.s sub_0811C3C0_jp +0811c3cc easy_chat.s sub_0811C3CC_jp +0811c3e0 easy_chat.s sub_0811C3E0_jp +0811c3ec easy_chat.s sub_0811C3EC_jp +0811c3f8 easy_chat.s sub_0811C3F8_jp +0811c3fc easy_chat.s sub_0811C3FC_jp +0811c430 easy_chat.s sub_0811C430 +0811c474 easy_chat.s FooterHasFourOptions_ +0811c480 easy_chat.s sub_0811C480 +0811c4c0 easy_chat.s GetDisplayedPersonType +0811c4cc easy_chat.s GetEachChatScreenTemplateId +0811c4f8 easy_chat.s sub_0811C4F8 +0811c530 easy_chat.s sub_0811C530_jp +0811c568 easy_chat.s sub_0811C568_jp +0811c5b4 easy_chat.s sub_0811C5B4_jp +0811c5f4 easy_chat.s sub_0811C5F4_jp +0811c644 easy_chat.s sub_0811C644_jp +0811c68c easy_chat.s sub_0811C68C_jp +0811c724 easy_chat.s sub_0811C724_jp +0811c744 easy_chat.s sub_0811C744_jp +0811c764 easy_chat.s sub_0811C764_jp +0811c79c easy_chat.s sub_0811C79C_jp +0811c820 easy_chat.s sub_0811C820_jp +0811c850 easy_chat.s sub_0811C850_jp +0811c868 easy_chat.s sub_0811C868_jp +0811c9fc easy_chat.s sub_0811C9FC_jp +0811ca18 easy_chat.s sub_0811CA18_jp +0811ca30 easy_chat.s sub_0811CA30_jp +0811cb94 easy_chat.s sub_0811CB94_jp +0811cbcc easy_chat.s sub_0811CBCC_jp +0811cc88 easy_chat.s sub_0811CC88_jp +0811ccb8 easy_chat.s sub_0811CCB8_jp +0811ccfc easy_chat.s sub_0811CCFC_jp +0811cd40 easy_chat.s sub_0811CD40_jp +0811cd84 easy_chat.s sub_0811CD84_jp +0811cdcc easy_chat.s sub_0811CDCC_jp +0811ce08 easy_chat.s sub_0811CE08_jp +0811ced4 easy_chat.s sub_0811CED4_jp +0811cf74 easy_chat.s sub_0811CF74_jp +0811d034 easy_chat.s sub_0811D034_jp +0811d040 easy_chat.s sub_0811D040_jp +0811d088 easy_chat.s sub_0811D088_jp +0811d0e4 easy_chat.s sub_0811D0E4_jp +0811d1a4 easy_chat.s sub_0811D1A4_jp +0811d250 easy_chat.s sub_0811D250_jp +0811d310 easy_chat.s sub_0811D310_jp +0811d3cc easy_chat.s sub_0811D3CC_jp +0811d3d8 easy_chat.s sub_0811D3D8_jp +0811d44c easy_chat.s sub_0811D44C_jp +0811d4bc easy_chat.s sub_0811D4BC_jp +0811d544 easy_chat.s sub_0811D544_jp +0811d5c8 easy_chat.s sub_0811D5C8_jp +0811d608 easy_chat.s sub_0811D608_jp +0811d648 easy_chat.s sub_0811D648_jp +0811d688 easy_chat.s sub_0811D688_jp +0811d6c8 easy_chat.s sub_0811D6C8_jp +0811d708 easy_chat.s sub_0811D708_jp +0811d748 easy_chat.s sub_0811D748_jp +0811d7b4 easy_chat.s sub_0811D7B4_jp +0811d814 easy_chat.s sub_0811D814_jp +0811d87c easy_chat.s sub_0811D87C_jp +0811d8e0 easy_chat.s sub_0811D8E0_jp +0811d920 easy_chat.s sub_0811D920_jp +0811d990 easy_chat.s sub_0811D990_jp +0811d9d8 easy_chat.s sub_0811D9D8_jp +0811dae4 easy_chat.s sub_0811DAE4_jp +0811db10 easy_chat.s sub_0811DB10_jp +0811dba8 easy_chat.s sub_0811DBA8_jp +0811dcac easy_chat.s sub_0811DCAC_jp +0811de14 easy_chat.s sub_0811DE14_jp +0811de8c easy_chat.s sub_0811DE8C_jp +0811dea0 easy_chat.s sub_0811DEA0_jp +0811dedc easy_chat.s sub_0811DEDC_jp +0811defc easy_chat.s sub_0811DEFC_jp +0811df70 easy_chat.s sub_0811DF70_jp +0811dfac easy_chat.s sub_0811DFAC_jp +0811dfbc easy_chat.s sub_0811DFBC_jp +0811dfe0 easy_chat.s sub_0811DFE0_jp +0811e004 easy_chat.s sub_0811E004_jp +0811e048 easy_chat.s sub_0811E048_jp +0811e07c easy_chat.s sub_0811E07C_jp +0811e164 easy_chat.s sub_0811E164_jp +0811e1c8 easy_chat.s sub_0811E1C8_jp +0811e1e0 easy_chat.s sub_0811E1E0_jp +0811e2b8 easy_chat.s sub_0811E2B8_jp +0811e2f0 easy_chat.s sub_0811E2F0_jp +0811e43c easy_chat.s sub_0811E43C_jp +0811e598 easy_chat.s sub_0811E598_jp +0811e5c0 easy_chat.s sub_0811E5C0_jp +0811e624 easy_chat.s sub_0811E624_jp +0811e65c easy_chat.s sub_0811E65C_jp +0811e670 easy_chat.s sub_0811E670_jp +0811e6a4 easy_chat.s sub_0811E6A4_jp +0811e6d8 easy_chat.s sub_0811E6D8_jp +0811e734 easy_chat.s sub_0811E734_jp +0811e76c easy_chat.s sub_0811E76C_jp +0811e7a0 easy_chat.s sub_0811E7A0_jp +0811e7c0 easy_chat.s sub_0811E7C0_jp +0811e7d8 easy_chat.s sub_0811E7D8_jp +0811e814 easy_chat.s sub_0811E814_jp +0811e838 easy_chat.s sub_0811E838_jp +0811e890 easy_chat.s sub_0811E890_jp +0811e904 easy_chat.s sub_0811E904_jp +0811e9d0 easy_chat.s sub_0811E9D0_jp +0811ea24 easy_chat.s sub_0811EA24_jp +0811ea54 easy_chat.s sub_0811EA54_jp +0811ea90 easy_chat.s sub_0811EA90_jp +0811eacc easy_chat.s sub_0811EACC_jp +0811eaf8 easy_chat.s sub_0811EAF8_jp +0811eb64 easy_chat.s sub_0811EB64_jp +0811ebf8 easy_chat.s sub_0811EBF8_jp +0811ec1c easy_chat.s sub_0811EC1C_jp +0811eca8 easy_chat.s sub_0811ECA8_jp +0811ecc4 easy_chat.s sub_0811ECC4_jp +0811ed04 easy_chat.s sub_0811ED04_jp +0811ed20 easy_chat.s sub_0811ED20_jp +0811ed98 easy_chat.s sub_0811ED98_jp +0811edfc easy_chat.s sub_0811EDFC_jp +0811ee2c easy_chat.s sub_0811EE2C_jp +0811ee6c easy_chat.s sub_0811EE6C_jp +0811eee0 easy_chat.s sub_0811EEE0_jp +0811ef44 easy_chat.s sub_0811EF44_jp +0811ef74 easy_chat.s sub_0811EF74_jp +0811f044 easy_chat.s sub_0811F044_jp +0811f088 easy_chat.s EasyChat_GetNumWordsInGroup +0811f0c0 easy_chat.s sub_0811F0C0 +0811f12c easy_chat.s GetEasyChatWord +0811f180 easy_chat.s CopyEasyChatWord +0811f1cc easy_chat.s ConvertEasyChatWordsToString +0811f25c easy_chat.s GetEasyChatWordStringLength +0811f2a4 easy_chat.s sub_0811F2A4 +0811f318 easy_chat.s sub_0811F318_jp +0811f370 easy_chat.s sub_0811F370_jp +0811f3ac easy_chat.s sub_0811F3AC_jp +0811f44c easy_chat.s sub_0811F44C_jp +0811f478 easy_chat.s sub_0811F478_jp +0811f4a0 easy_chat.s sub_0811F4A0_jp +0811f4d0 easy_chat.s sub_0811F4D0_jp +0811f4fc easy_chat.s sub_0811F4FC_jp +0811f570 easy_chat.s sub_0811F570_jp +0811f5d8 easy_chat.s sub_0811F5D8_jp +0811f5e8 easy_chat.s sub_0811F5E8_jp +0811f664 easy_chat.s InitEasyChatPhrases +0811f7e8 easy_chat.s sub_0811F7E8_jp +0811f814 easy_chat.s sub_0811F814_jp +0811f830 easy_chat.s sub_0811F830_jp +0811f908 easy_chat.s sub_0811F908_jp +0811f914 easy_chat.s sub_0811F914_jp +0811f93c easy_chat.s unref_sub_811F3E0 +0811f980 easy_chat.s GetEasyChatWordGroupName +0811f990 easy_chat.s CopyEasyChatWordPadded +0811f9c8 easy_chat.s sub_0811F9C8_jp +0811faa0 easy_chat.s sub_0811FAA0_jp +0811fad0 easy_chat.s sub_0811FAD0_jp +0811fb08 easy_chat.s sub_0811FB08_jp +0811fb1c easy_chat.s sub_0811FB1C_jp +0811fc10 easy_chat.s sub_0811FC10_jp +0811fc80 easy_chat.s sub_0811FC80_jp +0811fcb8 easy_chat.s sub_0811FCB8_jp +0811fd8c easy_chat.s GetFooterOptionXOffset +0811fdb4 easy_chat.s sub_0811FDB4 +0811fde0 easy_chat.s InitializeEasyChatWordArray +0811fe10 easy_chat.s sub_0811FE10_jp +0811fe2c easy_chat.s unref_sub_811BBF4 +mon_markings.s +0811fe38 mon_markings.s sub_0811FE38_jp +0811fe80 mon_markings.s sub_0811FE80_jp +0811ffb0 mon_markings.s sub_0811FFB0_jp +0811ffc4 mon_markings.s sub_0811FFC4_jp +08120018 mon_markings.s sub_08120018_jp +081200c4 mon_markings.s sub_081200C4_jp +081201a0 mon_markings.s sub_081201A0_jp +0812045c mon_markings.s TaskDummy7 +08120460 mon_markings.s sub_08120460_jp +0812049c mon_markings.s sub_0812049C_jp +081204b4 mon_markings.s sub_081204B4_jp +081204d4 mon_markings.s sub_081204D4_jp +081204f4 mon_markings.s sub_081204F4_jp +081205a4 mon_markings.s sub_081205A4_jp +mauville_old_man.s +081205c0 mauville_old_man.s SetupBard +08120618 mauville_old_man.s SetupHipster +0812063c mauville_old_man.s ResetStorytellerFlag +08120648 mauville_old_man.s SetupGiddy +08120674 mauville_old_man.s ResetTraderFlag +08120680 mauville_old_man.s SetMauvilleOldMan +081206e8 mauville_old_man.s GetCurrentMauvilleOldMan +081206fc mauville_old_man.s ScrSpecial_GetCurrentMauvilleMan +08120714 mauville_old_man.s ScrSpecial_HasBardSongBeenChanged +08120730 mauville_old_man.s ScrSpecial_SaveBardSongLyrics +081207a0 mauville_old_man.s sub_081207A0_jp +08120820 mauville_old_man.s ScrSpecial_PlayBardSong +08120838 mauville_old_man.s ScrSpecial_GetHipsterSpokenFlag +08120854 mauville_old_man.s ScrSpecial_SetHipsterSpokenFlag +0812086c mauville_old_man.s ScrSpecial_HipsterTeachWord +081208a4 mauville_old_man.s ScrSpecial_GiddyShouldTellAnotherTale +081208dc mauville_old_man.s ScrSpecial_GenerateGiddyLine +081209bc mauville_old_man.s InitGiddyTaleList +08120b08 mauville_old_man.s ResetBardFlag +08120b20 mauville_old_man.s ResetHipsterFlag +08120b38 mauville_old_man.s SetupStoryteller +08120b44 mauville_old_man.s SetupTrader +08120b50 mauville_old_man.s ResetMauvilleOldManFlag +08120ba0 mauville_old_man.s StartBardSong +08120bd0 mauville_old_man.s sub_08120BD0 +08120bdc mauville_old_man.s BardSong_TextSubPrinter +08120be8 mauville_old_man.s ScrSpecial_StorytellerDisplayStory +08120c2c mauville_old_man.s Task_BardSong +08120e18 mauville_old_man.s ScrSpecial_SetMauvilleOldManEventObjGfx +08120e2c mauville_old_man.s StorytellerDisplayStory +08120e90 mauville_old_man.s sub_08120E90 +08120f54 mauville_old_man.s StorytellerSetup +08120f9c mauville_old_man.s Storyteller_ResetFlag +08120fc0 mauville_old_man.s StorytellerGetGameStat +08120fd4 mauville_old_man.s GetStoryByStat +08121000 mauville_old_man.s GetStoryTitleByStat +0812100c mauville_old_man.s GetStoryTextByStat +08121018 mauville_old_man.s GetStoryActionByStat +08121024 mauville_old_man.s GetFreeStorySlot +08121054 mauville_old_man.s StorytellerGetRecordedTrainerStat +08121078 mauville_old_man.s StorytellerSetRecordedTrainerStat +08121098 mauville_old_man.s HasTrainerStatIncreased +081210c8 mauville_old_man.s GetStoryByStattellerPlayerName +081210f8 mauville_old_man.s StorytellerSetPlayerName +08121128 mauville_old_man.s StorytellerRecordNewStat +081211b0 mauville_old_man.s ScrambleStatList +08121204 mauville_old_man.s StorytellerInitializeRandomStat +081212c4 mauville_old_man.s ScrSpecial_StorytellerGetFreeStorySlot +08121320 mauville_old_man.s PrintStoryList +081213ec mauville_old_man.s Task_StoryListMenu +08121478 mauville_old_man.s ScrSpecial_StorytellerStoryListMenu +0812148c mauville_old_man.s sub_0812148C_jp +081214a0 mauville_old_man.s ScrSpecial_StorytellerInitializeRandomStat +081214c8 mauville_old_man.s ScrSpecial_StorytellerUpdateStat +08121514 mauville_old_man.s ScrSpecial_HasStorytellerAlreadyRecorded +08121540 mauville_old_man.s SanitizeReceivedEmeraldOldMan +mail.s +08121568 mail.s ReadMail +08121688 mail.s MailReadBuildGraphics +08121a60 mail.s CB2_InitMailRead +08121a8c mail.s sub_08121A8C_jp +08121b64 mail.s sub_08121B64_jp +08121c60 mail.s VBlankCB_MailRead +08121c74 mail.s CB2_MailRead +08121c94 mail.s sub_08121C94 +08121ca0 mail.s CB2_WaitForPaletteExitOnKeyPress +08121cc4 mail.s CB2_ExitOnKeyPress +08121d00 mail.s CB2_ExitMailReadFreeVars +menu_helpers.s +08121d90 menu_helpers.s ResetVramOamAndBgCntRegs +08121e00 menu_helpers.s ResetAllBgsCoordinates +08121e58 menu_helpers.s SetVBlankHBlankCallbacksToNull +08121e6c menu_helpers.s DisplayMessageAndContinueTask +08121f10 menu_helpers.s RunTextPrintersRetIsActive +08121f2c menu_helpers.s Task_ContinueTaskAfterMessagePrints +08121f58 menu_helpers.s DoYesNoFuncWithChoice +08121f84 menu_helpers.s CreateYesNoMenuWithCallbacks +08121fe8 menu_helpers.s Task_CallYesOrNoCallback +08122040 menu_helpers.s AdjustQuantityAccordingToDPadInput +081220dc menu_helpers.s GetLRKeysState +08122118 menu_helpers.s sub_08122118 +08122154 menu_helpers.s sub_08122154_jp +08122188 menu_helpers.s itemid_80BF6D8_mail_related +081221b8 menu_helpers.s sub_081221B8_jp +081221dc menu_helpers.s sub_081221DC_jp +081221f8 menu_helpers.s sub_081221F8_jp +08122218 menu_helpers.s sub_08122218_jp +08122268 menu_helpers.s sub_08122268_jp +081222a4 menu_helpers.s sub_081222A4_jp +08122334 menu_helpers.s LoadListMenuArrowsGfx +08122350 menu_helpers.s sub_08122350_jp +081223bc menu_helpers.s sub_081223BC_jp +08122408 menu_helpers.s sub_08122408_jp +08122454 menu_helpers.s sub_08122454_jp +dewford_trend.s +081224e0 dewford_trend.s InitDewfordTrend +0812258c dewford_trend.s UpdateDewfordTrendPerDay +081226e4 dewford_trend.s sub_081226E4 +08122810 dewford_trend.s sub_08122810 +08122888 dewford_trend.s ReceiveEasyChatPairsData +081229a4 dewford_trend.s BufferTrendyPhraseString +081229d4 dewford_trend.s TrendyPhraseIsOld +08122a3c dewford_trend.s GetDewfordHallPaintingNameIndex +08122a64 dewford_trend.s sub_08122A64 +08122b34 dewford_trend.s sub_08122B34_jp +08122bbc dewford_trend.s SB1ContainsWords +08122bfc dewford_trend.s IsEasyChatPairEqual +08122c28 dewford_trend.s GetEqualEasyChatPairIndex +heal_location.s +08122c68 heal_location.s GetHealLocationIndexByMap +08122ca0 heal_location.s GetHealLocationByMap +08122cc8 heal_location.s GetHealLocation +region_map.s +08122ce8 region_map.s InitRegionMap +08122d04 region_map.s sub_08122D04_jp +08122d94 region_map.s sub_08122D94_jp +08122dbc region_map.s sub_08122DBC_jp +0812303c region_map.s sub_0812303C_jp +08123068 region_map.s FreeRegionMapIconResources +081230b8 region_map.s sub_081230B8_jp +081230c4 region_map.s sub_081230C4_jp +081230d0 region_map.s ProcessRegionMapInput_Full +0812319c region_map.s MoveRegionMapCursor_Full +08123260 region_map.s ProcessRegionMapInput_Zoomed +08123340 region_map.s MoveRegionMapCursor_Zoomed +08123424 region_map.s sub_08123424 +08123520 region_map.s sub_08123520 +081236d0 region_map.s CalcZoomScrollParams +08123798 region_map.s RegionMap_SetBG2XAndBG2Y +081237c0 region_map.s UpdateRegionMapVideoRegs +08123830 region_map.s PokedexAreaScreen_UpdateRegionMapVariablesAndVideoRegs +08123878 region_map.s GetRegionMapSectionIdAt_Internal +081238b8 region_map.s RegionMap_InitializeStateBasedOnPlayerLocation +08123c0c region_map.s RegionMap_InitializeStateBasedOnSSTidalLocation +08123d64 region_map.s get_flagnr_blue_points +08123ea8 region_map.s GetRegionMapSectionIdAt +08123ec0 region_map.s CorrectSpecialMapSecId_Internal +08123f10 region_map.s RegionMap_GetTerraCaveMapSecId +08123f3c region_map.s RegionMap_GetMarineCaveCoords +08123f80 region_map.s RegionMap_IsPlayerInCave +08123fa8 region_map.s CorrectSpecialMapSecId +08123fbc region_map.s RegionMap_GetPositionOfCursorWithinMapSection +08124044 region_map.s RegionMap_IsMapSecIdInNextRow +08124094 region_map.s SpriteCallback_CursorFull +081240dc region_map.s SpriteCallback_CursorZoomed +081240e0 region_map.s CreateRegionMapCursor +08124244 region_map.s FreeRegionMapCursorSprite +08124274 region_map.s sub_08124274 +08124284 region_map.s sub_08124284 +08124294 region_map.s CreateRegionMapPlayerIcon +081243bc region_map.s HideRegionMapPlayerIcon +081243e8 region_map.s UnhideRegionMapPlayerIcon +08124468 region_map.s RegionMapPlayerIconSpriteCallback_Zoomed +081244f8 region_map.s RegionMapPlayerIconSpriteCallback_Full +08124504 region_map.s RegionMapPlayerIconSpriteCallback +08124558 region_map.s sub_08124558 +08124578 region_map.s GetMapName +081245e8 region_map.s sub_081245E8_jp +0812461c region_map.s sub_0812461C_jp +0812463c region_map.s sub_0812463C_jp +08124664 region_map.s sub_08124664_jp +08124674 region_map.s sub_08124674_jp +0812469c region_map.s MCB2_FlyMap +081248cc region_map.s sub_081248CC +081248e0 region_map.s sub_081248E0_jp +081248f0 region_map.s sub_081248F0_jp +08124900 region_map.s sub_08124900_jp +08124910 region_map.s sub_08124910_jp +08124a58 region_map.s sub_08124A58_jp +08124abc region_map.s sub_08124ABC_jp +08124bcc region_map.s sub_08124BCC_jp +08124ca4 region_map.s sub_08124CA4_jp +08124cfc region_map.s sub_08124CFC_jp +08124d4c region_map.s sub_08124D4C_jp +contest_painting_effects.s +08124df4 contest_painting_effects.s sub_08124DF4_jp +08124f14 contest_painting_effects.s sub_08124F14_jp +081250a0 contest_painting_effects.s sub_081250A0_jp +08125158 contest_painting_effects.s sub_08125158_jp +08125218 contest_painting_effects.s sub_08125218_jp +08125238 contest_painting_effects.s sub_08125238_jp +081252d0 contest_painting_effects.s sub_081252D0_jp +0812538c contest_painting_effects.s sub_0812538C_jp +08125430 contest_painting_effects.s sub_08125430_jp +081254c8 contest_painting_effects.s sub_081254C8_jp +08125618 contest_painting_effects.s sub_08125618_jp +081256b0 contest_painting_effects.s sub_081256B0_jp +081257e0 contest_painting_effects.s sub_081257E0_jp +08125888 contest_painting_effects.s sub_08125888_jp +0812593c contest_painting_effects.s sub_0812593C +08125b10 contest_painting_effects.s ConvertColorToGrayscale +08125b44 contest_painting_effects.s ConvertCoolColor +08125b80 contest_painting_effects.s GetCoolColorFromPersonality +08125c50 contest_painting_effects.s ConvertToBlackOrWhite +08125c80 contest_painting_effects.s sub_08125C80 +08125cb0 contest_painting_effects.s InvertColor +08125cdc contest_painting_effects.s sub_08125CDC +08125e00 contest_painting_effects.s sub_08125E00_jp +08125f20 contest_painting_effects.s sub_08125F20_jp +08126040 contest_painting_effects.s sub_08126040_jp +0812618c contest_painting_effects.s sub_0812618C_jp +08126258 contest_painting_effects.s sub_08126258_jp +08126300 contest_painting_effects.s sub_08126300_jp +0812631c contest_painting_effects.s sub_0812631C_jp +08126358 contest_painting_effects.s sub_08126358_jp +0812638c contest_painting_effects.s sub_0812638C_jp +081264e4 contest_painting_effects.s sub_081264E4_jp +0812659c contest_painting_effects.s sub_0812659C_jp +0812664c contest_painting_effects.s sub_0812664C_jp +081266fc contest_painting_effects.s sub_081266FC_jp +081267ac contest_painting_effects.s sub_081267AC_jp +08126820 contest_painting_effects.s sub_08126820_jp +081268f0 contest_painting_effects.s sub_081268F0_jp +08126924 contest_painting_effects.s sub_08126924_jp +decoration.s +08126950 decoration.s InitDecorationContextItems +081269bc decoration.s sub_081269BC_jp +081269f8 decoration.s RemoveDecorationWindow +08126a28 decoration.s AddDecorationActionsWindow +08126a84 decoration.s InitDecorationActionsWindow +08126aa0 decoration.s DoSecretBaseDecorationMenu +08126af4 decoration.s DoPlayerRoomDecorationMenu +08126b48 decoration.s HandleDecorationActionsMenuInput +08126bd0 decoration.s PrintCurMainMenuDescription +08126c10 decoration.s DecorationMenuAction_Decorate +08126c6c decoration.s DecorationMenuAction_PutAway +08126cd8 decoration.s DecorationMenuAction_Toss +08126d34 decoration.s DecorationMenuAction_Cancel +08126d6c decoration.s ReturnToDecorationActionsAfterInvalidSelection +08126d94 decoration.s SecretBasePC_PrepMenuForSelectingStoredDecors +08126dc4 decoration.s sub_08126DC4_jp +08126e1c decoration.s sub_08126E1C_jp +08126e78 decoration.s PrintDecorationCategoryMenuItems +08126f20 decoration.s PrintDecorationCategoryMenuItem +08127010 decoration.s ColorMenuItemString +08127040 decoration.s HandleDecorationCategoriesMenuInput +081270a0 decoration.s SelectDecorationCategory +08127138 decoration.s ReturnToDecorationCategoriesAfterInvalidSelection +08127154 decoration.s ExitDecorationCategoriesMenu +08127184 decoration.s ReturnToActionsMenuFromCategories +081271c0 decoration.s ShowDecorationCategoriesWindow +08127208 decoration.s CopyDecorationCategoryName +08127220 decoration.s ExitTraderDecorationMenu +0812723c decoration.s InitDecorationItemsMenuLimits +08127280 decoration.s sub_08127280_jp +081272b0 decoration.s sub_081272B0 +081272e8 decoration.s PrintDecorationItemMenuItems +08127404 decoration.s CopyDecorationMenuItemName +08127430 decoration.s DecorationItemsMenu_OnCursorMove +08127450 decoration.s sub_08127450 +081274b0 decoration.s AddDecorationItemsScrollIndicators +08127504 decoration.s RemoveDecorationItemsScrollIndicators +08127530 decoration.s sub_08127530_jp +0812754c decoration.s InitDecorationItemsWindow +081275cc decoration.s ShowDecorationItemsWindow +081275f8 decoration.s HandleDecorationItemsMenuInput +081276c4 decoration.s ShowDecorationCategorySummaryWindow +081276f0 decoration.s PrintDecorationItemDescription +08127758 decoration.s RemoveDecorationItemsOtherWindows +0812776c decoration.s sub_0812776C +08127798 decoration.s sub_08127798 +081277c4 decoration.s IdentifyOwnedDecorationsCurrentlyInUseInternal +08127964 decoration.s IdentifyOwnedDecorationsCurrentlyInUse +08127974 decoration.s IsSelectedDecorInThePC +081279c4 decoration.s sub_081279C4_jp +081279e0 decoration.s sub_081279E0_jp +08127a0c decoration.s sub_08127A0C_jp +08127a3c decoration.s sub_08127A3C_jp +08127a7c decoration.s sub_08127A7C_jp +08127ab4 decoration.s sub_08127AB4_jp +08127b04 decoration.s GetDecorationElevation +08127b40 decoration.s ShowDecorationOnMap_ +08127d08 decoration.s ShowDecorationOnMap +08127dec decoration.s sub_08127DEC_jp +08127f0c decoration.s sub_08127F0C_jp +08127f3c decoration.s sub_08127F3C_jp +08128034 decoration.s sub_08128034_jp +081280ec decoration.s ConfigureCameraObjectForPlacingDecoration +0812817c decoration.s SetUpPlacingDecorationPlayerAvatar +08128240 decoration.s sub_08128240_jp +08128394 decoration.s sub_08128394_jp +081283ec decoration.s sub_081283EC_jp +0812845c decoration.s sub_0812845C_jp +08128484 decoration.s sub_08128484_jp +081284cc decoration.s sub_081284CC_jp +08128514 decoration.s sub_08128514_jp +08128928 decoration.s sub_08128928_jp +081289ac decoration.s sub_081289AC_jp +081289cc decoration.s sub_081289CC_jp +08128a8c decoration.s sub_08128A8C_jp +08128b60 decoration.s sub_08128B60_jp +08128b80 decoration.s sub_08128B80_jp +08128b9c decoration.s sub_08128B9C_jp +08128bcc decoration.s c1_overworld_prev_quest +08128c44 decoration.s sub_08128C44_jp +08128cb4 decoration.s sub_08128CB4_jp +08128cf0 decoration.s sub_08128CF0_jp +08128d94 decoration.s sub_08128D94_jp +08128dc0 decoration.s sub_08128DC0_jp +08128df8 decoration.s sub_08128DF8_jp +08128fb8 decoration.s sub_08128FB8_jp +08129000 decoration.s sub_08129000_jp +08129028 decoration.s sub_08129028_jp +08129048 decoration.s sub_08129048_jp +08129068 decoration.s sub_08129068_jp +08129184 decoration.s sub_08129184_jp +081291ac decoration.s sub_081291AC_jp +081291c8 decoration.s sub_081291C8 +0812923c decoration.s SetDecorSelectionBoxOamAttributes +081292b0 decoration.s sub_081292B0 +081292c8 decoration.s sub_081292C8_jp +08129314 decoration.s gpu_pal_decompress_alloc_tag_and_upload +081293bc decoration.s AddDecorationIconObjectFromIconTable +08129480 decoration.s GetDecorationIconPicOrPalette +081294a4 decoration.s AddDecorationIconObjectFromEventObject +081295b4 decoration.s AddDecorationIconObject +081296d4 decoration.s sub_081296D4_jp +081296f0 decoration.s sub_081296F0_jp +08129798 decoration.s sub_08129798_jp +081297e4 decoration.s sub_081297E4_jp +081298dc decoration.s sub_081298DC_jp +0812999c decoration.s sub_0812999C_jp +081299cc decoration.s SetUpPuttingAwayDecorationPlayerAvatar +08129aac decoration.s sub_08129AAC_jp +08129b24 decoration.s sub_08129B24_jp +08129bbc decoration.s sub_08129BBC_jp +08129be8 decoration.s sub_08129BE8_jp +08129c64 decoration.s sub_08129C64_jp +08129d54 decoration.s sub_08129D54_jp +08129d7c decoration.s sub_08129D7C_jp +08129e04 decoration.s sub_08129E04_jp +08129e6c decoration.s sub_08129E6C_jp +08129f18 decoration.s sub_08129F18_jp +08129fc0 decoration.s sub_08129FC0_jp +0812a050 decoration.s sub_0812A050_jp +0812a0f4 decoration.s sub_0812A0F4_jp +0812a1ac decoration.s sub_0812A1AC_jp +0812a1cc decoration.s sub_0812A1CC_jp +0812a1fc decoration.s sub_0812A1FC_jp +0812a21c decoration.s sub_0812A21C_jp +0812a238 decoration.s sub_0812A238_jp +0812a268 decoration.s sub_0812A268_jp +0812a2d0 decoration.s sub_0812A2D0_jp +0812a340 decoration.s sub_0812A340_jp +0812a378 decoration.s sub_0812A378_jp +0812a3a8 decoration.s sub_0812A3A8_jp +0812a3d4 decoration.s sub_0812A3D4_jp +0812a3e0 decoration.s sub_0812A3E0_jp +0812a468 decoration.s sub_0812A468_jp +0812a488 decoration.s sub_0812A488_jp +slot_machine.s +0812a4ec slot_machine.s Task_FadeToSlotMachine +0812a550 slot_machine.s PlaySlotMachine +0812a598 slot_machine.s CB2_SlotMachineSetup +0812a680 slot_machine.s CB2_SlotMachineLoop +0812a698 slot_machine.s SlotMachine_VBlankCallback +0812a6e4 slot_machine.s PlaySlotMachine_Internal +0812a720 slot_machine.s sub_0812A720_jp +0812a75c slot_machine.s SlotMachineDummyTask +0812a760 slot_machine.s SlotMachineSetup_0_0 +0812a7ac slot_machine.s SlotMachineSetup_6_0 +0812a7cc slot_machine.s SlotMachineSetup_1_0 +0812a820 slot_machine.s SlotMachineSetup_2_0 +0812a844 slot_machine.s SlotMachineSetup_2_1 +0812a8d4 slot_machine.s SlotMachineSetup_0_1 +0812a9bc slot_machine.s SlotMachineSetup_3_0 +0812a9dc slot_machine.s SlotMachineSetup_4_0 +0812aa58 slot_machine.s SlotMachineSetup_5_0 +0812aa88 slot_machine.s SlotMachineSetup_10_0 +0812aaa0 slot_machine.s SlotMachineSetupGameplayTasks +0812aab8 slot_machine.s GameplayTasks_Slots +0812aad8 slot_machine.s RunSlotActions +0812ab14 slot_machine.s SlotAction_UnfadeScreen +0812ab48 slot_machine.s SlotAction_WaitForUnfade +0812ab70 slot_machine.s SlotAction_SetSlotMachineVars +0812abb8 slot_machine.s SlotAction3 +0812abd8 slot_machine.s SlotAction4 +0812ac08 slot_machine.s SlotAction_AwaitPlayerInput +0812ad04 slot_machine.s SlotAction_PrintYouDontHaveThreeCoins +0812ad44 slot_machine.s SlotAction_ExitMessage_9999Coins +0812ad70 slot_machine.s SlotAction_GivingInformation +0812ad90 slot_machine.s SlotAction9 +0812ae04 slot_machine.s SlotAction10 +0812ae34 slot_machine.s SlotAction_SetLuckySpins +0812ae5c slot_machine.s SlotAction_AwaitReelStop +0812ae98 slot_machine.s SlotAction_WaitForAllReelsToStop +0812aed4 slot_machine.s SlotAction_CheckMatches +0812b00c slot_machine.s SlotAction_WaitForPayoutToBeAwarded +0812b02c slot_machine.s SlotAction_EndOfRoll +0812b0a4 slot_machine.s SlotAction_MatchedPower +0812b0e8 slot_machine.s SlotAction18 +0812b118 slot_machine.s SlotAction_Loop +0812b140 slot_machine.s SlotAction_NoMatches +0812b168 slot_machine.s SlotAction_PrintQuitTheGame +0812b1c0 slot_machine.s SlotAction_SeeIfPlayerQuits +0812b224 slot_machine.s SlotAction_PrintMessage_9999Coins +0812b264 slot_machine.s SlotAction_ExitYouDontHaveThreeCoinsMessage +0812b290 slot_machine.s SlotAction_PrintMessage_NoMoreCoins +0812b2d0 slot_machine.s SlotAction_ExitMessage_NoMoreCoins +0812b2fc slot_machine.s SlotAction_EndGame +0812b33c slot_machine.s SlotAction_FreeDataStructures +0812b4fc slot_machine.s DrawLuckyFlags +0812b56c slot_machine.s SetLuckySpins +0812b58c slot_machine.s GetBiasTag +0812b5c0 slot_machine.s IsThisRoundLucky +0812b5fc slot_machine.s AttemptsAtLuckyFlags_Top3 +0812b644 slot_machine.s AttemptsAtLuckyFlags_NotTop3 +0812b6dc slot_machine.s GetReelTimeProbability +0812b710 slot_machine.s GetReeltimeDraw +0812b770 slot_machine.s SkipToReeltimeAction14 +0812b79c slot_machine.s SlowReelSpeed +0812b838 slot_machine.s CheckMatch +0812b86c slot_machine.s CheckMatch_CenterRow +0812b8e0 slot_machine.s CheckMatch_TopAndBottom +0812b9b0 slot_machine.s CheckMatch_Diagonals +0812ba7c slot_machine.s GetMatchFromSymbolsInRow +0812bacc slot_machine.s AwardPayout +0812baec slot_machine.s IsFinalTask_RunAwardPayoutActions +0812bb0c slot_machine.s RunAwardPayoutActions +0812bb44 slot_machine.s AwardPayoutAction0 +0812bb78 slot_machine.s AwardPayoutAction_GivePayoutToPlayer +0812bc30 slot_machine.s AwardPayoutAction_FreeTask +0812bc54 slot_machine.s GetNearbyTag_Quantized +0812bca8 slot_machine.s GetNearbyTag +0812bcf8 slot_machine.s GetNearbyReelTimeTag +0812bd38 slot_machine.s AdvanceSlotReel +0812bd80 slot_machine.s AdvanceSlotReelToNextTag +0812bde4 slot_machine.s AdvanceReeltimeReel +0812be1c slot_machine.s AdvanceReeltimeReelToNextTag +0812be6c slot_machine.s GameplayTask_StopSlotReel +0812beb4 slot_machine.s ReelTasks_SetUnkTaskData +0812beec slot_machine.s sub_0812BEEC +0812bf14 slot_machine.s IsSlotReelMoving +0812bf3c slot_machine.s RunSlotReelActions +0812bf74 slot_machine.s SlotReelAction_StayStill +0812bf78 slot_machine.s SlotReelAction_Spin +0812bf98 slot_machine.s SlotReelAction_DecideWhereToStop +0812c02c slot_machine.s SlotReelAction_MoveToStop +0812c0f0 slot_machine.s SlotReelAction_OscillatingStop +0812c148 slot_machine.s DecideReelTurns_BiasTag_Reel1 +0812c180 slot_machine.s nullsub_68 +0812c194 slot_machine.s AreTagsAtPosition_Reel1 +0812c1d4 slot_machine.s AreCherriesOnScreen_Reel1 +0812c228 slot_machine.s IsBiasTowardsCherryOr7s +0812c248 slot_machine.s DecideReelTurns_BiasTag_Reel1_Bet1 +0812c2a0 slot_machine.s DecideReelTurns_BiasTag_Reel1_Bet2or3 +0812c3b0 slot_machine.s DecideReelTurns_BiasTag_Reel2 +0812c3c8 slot_machine.s nullsub_69 +0812c3d8 slot_machine.s DecideReelTurns_BiasTag_Reel2_Bet1or2 +0812c424 slot_machine.s DecideReelTurns_BiasTag_Reel2_Bet3 +0812c4cc slot_machine.s DecideReelTurns_BiasTag_Reel3 +0812c510 slot_machine.s DecideReelTurns_BiasTag_Reel3_Bet1or2 +0812c56c slot_machine.s DecideReelTurns_BiasTag_Reel3_Bet3 +0812c5ec slot_machine.s DecideReelTurns_NoBiasTag_Reel1 +0812c618 slot_machine.s IsBiasTag777_SwitchColor +0812c638 slot_machine.s DecideReelTurns_NoBiasTag_Reel2 +0812c650 slot_machine.s sub_0812C650_jp +0812c65c slot_machine.s DecideReelTurns_NoBiasTag_Reel2_Bet1 +0812c6dc slot_machine.s DecideReelTurns_NoBiasTag_Reel2_Bet2 +0812c75c slot_machine.s DecideReelTurns_NoBiasTag_Reel2_Bet3 +0812c864 slot_machine.s AreTagsMixed77 +0812c88c slot_machine.s AreTagsMixed777 +0812c8bc slot_machine.s TagsDontMatchOrHaveAny7s +0812c90c slot_machine.s DecideReelTurns_NoBiasTag_Reel3 +0812c924 slot_machine.s sub_0812C924_jp +0812c930 slot_machine.s DecideReelTurns_NoBiasTag_Reel3_Bet1 +0812ca18 slot_machine.s DecideReelTurns_NoBiasTag_Reel3_Bet2 +0812cb90 slot_machine.s DecideReelTurns_NoBiasTag_Reel3_Bet3 +0812cd50 slot_machine.s sub_0812CD50_jp +0812cd84 slot_machine.s sub_0812CD84_jp +0812cda8 slot_machine.s sub_0812CDA8_jp +0812cdb4 slot_machine.s sub_0812CDB4_jp +0812cde8 slot_machine.s sub_0812CDE8_jp +0812ce04 slot_machine.s sub_0812CE04_jp +0812ce3c slot_machine.s LoadLitTile +0812ce64 slot_machine.s sub_0812CE64_jp +0812ce8c slot_machine.s LoadBetTiles +0812cec8 slot_machine.s sub_0812CEC8 +0812cf04 slot_machine.s sub_0812CF04_jp +0812cf44 slot_machine.s sub_0812CF44_jp +0812cf7c slot_machine.s sub_0812CF7C_jp +0812cfc8 slot_machine.s sub_0812CFC8_jp +0812cffc slot_machine.s sub_0812CFFC_jp +0812d034 slot_machine.s sub_0812D034_jp +0812d0c0 slot_machine.s sub_0812D0C0_jp +0812d0f0 slot_machine.s sub_0812D0F0_jp +0812d138 slot_machine.s sub_0812D138 +0812d198 slot_machine.s GameplayTask_PikaPower +0812d1b8 slot_machine.s DisplayPikaPower +0812d1ec slot_machine.s sub_0812D1EC +0812d21c slot_machine.s sub_0812D21C_jp +0812d240 slot_machine.s RunInfoBoxActions +0812d270 slot_machine.s sub_0812D270_jp +0812d274 slot_machine.s sub_0812D274_jp +0812d29c slot_machine.s sub_0812D29C_jp +0812d31c slot_machine.s sub_0812D31C +0812d3a4 slot_machine.s ClearTaskDataFields_2orHigher +0812d3c4 slot_machine.s sub_0812D3C4 +0812d4bc slot_machine.s BeginReeltime +0812d4dc slot_machine.s IsFinalTask_RunReelTimeActions +0812d4fc slot_machine.s RunReeltimeActions +0812d52c slot_machine.s ReeltimeAction0 +0812d5a4 slot_machine.s ReeltimeAction1 +0812d61c slot_machine.s ReeltimeAction2 +0812d64c slot_machine.s ReeltimeAction3 +0812d6fc slot_machine.s ReeltimeAction4 +0812d750 slot_machine.s ReeltimeAction5 +0812d784 slot_machine.s ReeltimeAction6 +0812d7f4 slot_machine.s ReelTimeAction_LandOnOutcome +0812d880 slot_machine.s ReeltimeAction8 +0812d930 slot_machine.s ReeltimeAction9 +0812d960 slot_machine.s ReeltimeAction10 +0812d9b4 slot_machine.s ReeltimeAction11 +0812da30 slot_machine.s ReeltimeAction12 +0812da7c slot_machine.s ReeltimeAction13 +0812daa0 slot_machine.s ReeltimeAction14 +0812db14 slot_machine.s ReeltimeAction15 +0812db9c slot_machine.s ReeltimeAction16 +0812dbcc slot_machine.s ReeltimeAction17 +0812dc18 slot_machine.s sub_0812DC18 +0812dc60 slot_machine.s sub_0812DC60 +0812dc90 slot_machine.s OpenInfoBox +0812dcc4 slot_machine.s IsInfoBoxClosed +0812dce4 slot_machine.s sub_0812DCE4_jp +0812dd14 slot_machine.s InfoBox_FadeIn +0812dd38 slot_machine.s InfoBox_WaitForFade +0812dd58 slot_machine.s InfoBox_8104B80 +0812dd88 slot_machine.s InfoBox_AddText +0812ddd4 slot_machine.s InfoBox_AwaitPlayerInput +0812de24 slot_machine.s InfoBox_812DE14 +0812de40 slot_machine.s InfoBox_812DE30 +0812de58 slot_machine.s InfoBox_8104BFC +0812de8c slot_machine.s InfoBox_FreeTask +0812dea4 slot_machine.s sub_0812DEA4_jp +0812def4 slot_machine.s sub_0812DEF4_jp +0812df78 slot_machine.s sub_0812DF78_jp +0812dfec slot_machine.s sub_0812DFEC_jp +0812e064 slot_machine.s sub_0812E064_jp +0812e0c0 slot_machine.s sub_0812E0C0_jp +0812e0f0 slot_machine.s sub_0812E0F0_jp +0812e0f4 slot_machine.s sub_0812E0F4_jp +0812e164 slot_machine.s sub_0812E164_jp +0812e1d8 slot_machine.s sub_0812E1D8_jp +0812e240 slot_machine.s sub_0812E240_jp +0812e2b8 slot_machine.s sub_0812E2B8_jp +0812e310 slot_machine.s sub_0812E310_jp +0812e34c slot_machine.s sub_0812E34C_jp +0812e3f8 slot_machine.s sub_0812E3F8_jp +0812e434 slot_machine.s sub_0812E434_jp +0812e484 slot_machine.s sub_0812E484_jp +0812e5b8 slot_machine.s sub_0812E5B8_jp +0812e660 slot_machine.s sub_0812E660_jp +0812e6d4 slot_machine.s sub_0812E6D4_jp +0812e71c slot_machine.s sub_0812E71C_jp +0812e7dc slot_machine.s sub_0812E7DC_jp +0812e83c slot_machine.s sub_0812E83C_jp +0812e8d4 slot_machine.s sub_0812E8D4_jp +0812e908 slot_machine.s sub_0812E908_jp +0812e944 slot_machine.s CreateReelTimeSprites1 +0812e9f8 slot_machine.s sub_0812E9F8 +0812ea54 slot_machine.s sub_0812EA54_jp +0812ea8c slot_machine.s sub_0812EA8C +0812eac0 slot_machine.s CreateReelTimeSprite2 +0812eb58 slot_machine.s sub_0812EB58_jp +0812ebbc slot_machine.s sub_0812EBBC_jp +0812ebdc slot_machine.s sub_0812EBDC_jp +0812ec30 slot_machine.s sub_0812EC30_jp +0812ec74 slot_machine.s sub_0812EC74_jp +0812ec80 slot_machine.s sub_0812EC80_jp +0812eca4 slot_machine.s sub_0812ECA4_jp +0812ed30 slot_machine.s sub_0812ED30_jp +0812ed9c slot_machine.s sub_0812ED9C_jp +0812edd0 slot_machine.s sub_0812EDD0_jp +0812ee24 slot_machine.s sub_0812EE24_jp +0812eeb8 slot_machine.s sub_0812EEB8_jp +0812eedc slot_machine.s sub_0812EEDC_jp +0812ef10 slot_machine.s sub_0812EF10_jp +0812ef64 slot_machine.s sub_0812EF64_jp +0812ef7c slot_machine.s sub_0812EF7C_jp +0812efa8 slot_machine.s sub_0812EFA8_jp +0812efec slot_machine.s sub_0812EFEC_jp +0812f088 slot_machine.s sub_0812F088_jp +0812f090 slot_machine.s sub_0812F090_jp +0812f114 slot_machine.s sub_0812F114_jp +0812f12c slot_machine.s sub_0812F12C_jp +0812f144 slot_machine.s sub_0812F144_jp +0812f160 slot_machine.s sub_0812F160_jp +0812f1c8 slot_machine.s sub_0812F1C8_jp +0812f22c slot_machine.s sub_0812F22C_jp +0812f2dc slot_machine.s sub_0812F2DC_jp +0812f37c slot_machine.s sub_0812F37C_jp +0812f3c4 slot_machine.s sub_0812F3C4_jp +0812f480 slot_machine.s sub_0812F480_jp +0812f524 slot_machine.s sub_0812F524_jp +0812f5f0 slot_machine.s sub_0812F5F0_jp +0812f658 slot_machine.s sub_0812F658_jp +0812f790 slot_machine.s sub_0812F790_jp +0812f794 slot_machine.s sub_0812F794_jp +0812f7a4 slot_machine.s sub_0812F7A4_jp +0812f7d0 slot_machine.s sub_0812F7D0_jp +0812f7f4 slot_machine.s sub_0812F7F4_jp +0812f8b0 slot_machine.s sub_0812F8B0_jp +0812f918 slot_machine.s sub_0812F918_jp +0812f968 slot_machine.s sub_0812F968_jp +0812f978 slot_machine.s sub_0812F978_jp +0812f9a4 slot_machine.s LoadSlotMachineWheelOverlay +0812fa9c slot_machine.s sub_0812FA9C_jp +0812fb18 slot_machine.s sub_0812FB18_jp +0812fb4c slot_machine.s SlotMachineSetup_9_0 +0812fbfc slot_machine.s SlotMachineSetup_8_0 +contest_painting.s +0812fde0 contest_painting.s sub_0812FDE0 +0812fe24 contest_painting.s CB2_ContestPainting +0812fe30 contest_painting.s CB2_HoldContestPainting +0812fe44 contest_painting.s CB2_QuitContestPainting +0812fe90 contest_painting.s ShowContestPainting +08130000 contest_painting.s HoldContestPainting +081300d0 contest_painting.s InitContestPaintingWindow +08130144 contest_painting.s PrintContestPaintingCaption +08130244 contest_painting.s InitContestPaintingBg +08130290 contest_painting.s InitContestPaintingVars +081302d8 contest_painting.s UpdateContestPaintingMosaicEffect +08130328 contest_painting.s VBlankCB_ContestPainting +08130340 contest_painting.s sub_08130340_jp +081303d8 contest_painting.s sub_081303D8_jp +08130488 contest_painting.s sub_08130488_jp +081306e0 contest_painting.s sub_081306E0_jp +08130724 contest_painting.s sub_08130724_jp +08130790 contest_painting.s sub_08130790_jp +081307b8 contest_painting.s sub_081307B8_jp +081308dc contest_painting.s sub_081308DC_jp +battle_ai_script_commands.s +08130920 battle_ai_script_commands.s BattleAI_HandleItemUseBeforeAISetup +081309a4 battle_ai_script_commands.s BattleAI_SetupAIData +08130bec battle_ai_script_commands.s BattleAI_ChooseMoveOrAction +08130c10 battle_ai_script_commands.s ChooseMoveOrAction_Singles +08130d28 battle_ai_script_commands.s ChooseMoveOrAction_Doubles +08130f7c battle_ai_script_commands.s BattleAI_DoAIProcessing +081310a8 battle_ai_script_commands.s RecordLastUsedMoveByTarget +08131124 battle_ai_script_commands.s ClearBattlerMoveHistory +0813114c battle_ai_script_commands.s RecordAbilityBattle +08131164 battle_ai_script_commands.s ClearBattlerAbilityHistory +0813117c battle_ai_script_commands.s RecordItemEffectBattle +08131194 battle_ai_script_commands.s ClearBattlerItemEffectHistory +081311ac battle_ai_script_commands.s BattleAICmd_if_random_less_than +081311ec battle_ai_script_commands.s BattleAICmd_if_random_greater_than +0813122c battle_ai_script_commands.s BattleAICmd_if_random_equal +0813126c battle_ai_script_commands.s BattleAICmd_if_random_not_equal +081312ac battle_ai_script_commands.s BattleAICmd_score +081312f0 battle_ai_script_commands.s BattleAICmd_if_hp_less_than +08131358 battle_ai_script_commands.s BattleAICmd_if_hp_more_than +081313c0 battle_ai_script_commands.s BattleAICmd_if_hp_equal +08131428 battle_ai_script_commands.s BattleAICmd_if_hp_not_equal +08131490 battle_ai_script_commands.s BattleAICmd_if_status +08131504 battle_ai_script_commands.s BattleAICmd_if_not_status +08131578 battle_ai_script_commands.s BattleAICmd_if_status2 +081315ec battle_ai_script_commands.s BattleAICmd_if_not_status2 +08131660 battle_ai_script_commands.s BattleAICmd_if_status3 +081316d0 battle_ai_script_commands.s BattleAICmd_if_not_status3 +08131740 battle_ai_script_commands.s BattleAICmd_if_side_affecting +081317bc battle_ai_script_commands.s BattleAICmd_if_not_side_affecting +08131838 battle_ai_script_commands.s BattleAICmd_if_less_than +08131874 battle_ai_script_commands.s BattleAICmd_if_more_than +081318b0 battle_ai_script_commands.s BattleAICmd_if_equal +081318ec battle_ai_script_commands.s BattleAICmd_if_not_equal +08131928 battle_ai_script_commands.s BattleAICmd_if_less_than_ptr +0813197c battle_ai_script_commands.s BattleAICmd_if_more_than_ptr +081319d0 battle_ai_script_commands.s BattleAICmd_if_equal_ptr +08131a24 battle_ai_script_commands.s BattleAICmd_if_not_equal_ptr +08131a78 battle_ai_script_commands.s BattleAICmd_if_move +08131abc battle_ai_script_commands.s BattleAICmd_if_not_move +08131b00 battle_ai_script_commands.s BattleAICmd_if_in_bytes +08131b68 battle_ai_script_commands.s BattleAICmd_if_not_in_bytes +08131bd4 battle_ai_script_commands.s BattleAICmd_if_in_hwords +08131c40 battle_ai_script_commands.s BattleAICmd_if_not_in_hwords +08131cb0 battle_ai_script_commands.s BattleAICmd_if_user_has_attacking_move +08131d20 battle_ai_script_commands.s BattleAICmd_if_user_has_no_attacking_moves +08131d90 battle_ai_script_commands.s BattleAICmd_get_turn_count +08131db4 battle_ai_script_commands.s BattleAICmd_get_type +08131ea4 battle_ai_script_commands.s BattleAI_GetWantedBattler +08131ee8 battle_ai_script_commands.s BattleAICmd_is_of_type +08131f50 battle_ai_script_commands.s BattleAICmd_get_considered_move_power +08131f7c battle_ai_script_commands.s BattleAICmd_get_how_powerful_move_is +08132180 battle_ai_script_commands.s BattleAICmd_get_last_used_battler_move +081321d8 battle_ai_script_commands.s BattleAICmd_if_equal_ +08132214 battle_ai_script_commands.s BattleAICmd_if_not_equal_ +08132250 battle_ai_script_commands.s BattleAICmd_if_user_goes +0813229c battle_ai_script_commands.s BattleAICmd_if_user_doesnt_go +081322e8 battle_ai_script_commands.s BattleAICmd_nullsub_2B +081322ec battle_ai_script_commands.s BattleAICmd_nullsub_32 +081322f0 battle_ai_script_commands.s BattleAICmd_count_usable_party_mons +081323ec battle_ai_script_commands.s BattleAICmd_get_considered_move +08132408 battle_ai_script_commands.s BattleAICmd_get_considered_move_effect +08132434 battle_ai_script_commands.s BattleAICmd_get_ability +08132550 battle_ai_script_commands.s BattleAICmd_check_ability +08132648 battle_ai_script_commands.s BattleAICmd_get_highest_type_effectiveness +08132734 battle_ai_script_commands.s BattleAICmd_if_type_effectiveness +08132804 battle_ai_script_commands.s BattleAICmd_nullsub_33 +08132808 battle_ai_script_commands.s BattleAICmd_nullsub_52 +0813280c battle_ai_script_commands.s BattleAICmd_if_status_in_party +081328ec battle_ai_script_commands.s BattleAICmd_if_status_not_in_party +081329c8 battle_ai_script_commands.s BattleAICmd_get_weather +08132a34 battle_ai_script_commands.s BattleAICmd_if_effect +08132a80 battle_ai_script_commands.s BattleAICmd_if_not_effect +08132acc battle_ai_script_commands.s BattleAICmd_if_stat_level_less_than +08132b34 battle_ai_script_commands.s BattleAICmd_if_stat_level_more_than +08132b9c battle_ai_script_commands.s BattleAICmd_if_stat_level_equal +08132c04 battle_ai_script_commands.s BattleAICmd_if_stat_level_not_equal +08132c6c battle_ai_script_commands.s BattleAICmd_if_can_faint +08132d68 battle_ai_script_commands.s BattleAICmd_if_cant_faint +08132e4c battle_ai_script_commands.s BattleAICmd_if_has_move +08132f7c battle_ai_script_commands.s BattleAICmd_if_doesnt_have_move +08133054 battle_ai_script_commands.s BattleAICmd_if_has_move_with_effect +0813314c battle_ai_script_commands.s BattleAICmd_if_doesnt_have_move_with_effect +08133230 battle_ai_script_commands.s BattleAICmd_if_any_move_disabled_or_encored +081332b8 battle_ai_script_commands.s BattleAICmd_if_curr_move_disabled_or_encored +08133348 battle_ai_script_commands.s BattleAICmd_flee +0813335c battle_ai_script_commands.s BattleAICmd_if_random_safari_flee +081333bc battle_ai_script_commands.s BattleAICmd_watch +081333d0 battle_ai_script_commands.s BattleAICmd_get_hold_effect +08133448 battle_ai_script_commands.s BattleAICmd_if_holds_item +081334c8 battle_ai_script_commands.s BattleAICmd_get_gender +08133520 battle_ai_script_commands.s BattleAICmd_is_first_turn_for +0813356c battle_ai_script_commands.s BattleAICmd_get_stockpile_count +081335b8 battle_ai_script_commands.s BattleAICmd_is_double_battle +081335e0 battle_ai_script_commands.s BattleAICmd_get_used_held_item +0813362c battle_ai_script_commands.s BattleAICmd_get_move_type_from_result +08133658 battle_ai_script_commands.s BattleAICmd_get_move_power_from_result +08133684 battle_ai_script_commands.s BattleAICmd_get_move_effect_from_result +081336b0 battle_ai_script_commands.s BattleAICmd_get_protect_count +081336fc battle_ai_script_commands.s BattleAICmd_nullsub_53 +08133700 battle_ai_script_commands.s BattleAICmd_nullsub_54 +08133704 battle_ai_script_commands.s BattleAICmd_nullsub_55 +08133708 battle_ai_script_commands.s BattleAICmd_nullsub_56 +0813370c battle_ai_script_commands.s BattleAICmd_nullsub_57 +08133710 battle_ai_script_commands.s BattleAICmd_nullsub_2A +08133714 battle_ai_script_commands.s BattleAICmd_call +08133744 battle_ai_script_commands.s BattleAICmd_goto +08133764 battle_ai_script_commands.s BattleAICmd_end +08133788 battle_ai_script_commands.s BattleAICmd_if_level_cond +08133860 battle_ai_script_commands.s BattleAICmd_if_target_taunted +081338b0 battle_ai_script_commands.s BattleAICmd_if_target_not_taunted +08133900 battle_ai_script_commands.s BattleAICmd_if_target_is_ally +08133950 battle_ai_script_commands.s BattleAICmd_if_flash_fired +081339a0 battle_ai_script_commands.s sub_081339A0 +081339c4 battle_ai_script_commands.s AIStackPushVar_cursor +trader.s +081339ec trader.s ScrSpecial_TraderMenuGiveDecoration +08133a2c trader.s TraderSetup +08133a94 trader.s Trader_ResetFlag +08133aac trader.s sub_08133AAC_jp +08133b9c trader.s ScrSpecial_IsDecorationFull +08133c00 trader.s Task_HandleGetDecorationMenuInput +08133c80 trader.s ScrSpecial_GetTraderTradedFlag +08133c9c trader.s ScrSpecial_DoesPlayerHaveNoDecorations +08133cd4 trader.s sub_08133CD4_jp +08133d40 trader.s CreateAvailableDecorationsMenu +08133d54 trader.s sub_08133D54 +08133dd8 trader.s ExitTraderMenu +08133df4 trader.s ScrSpecial_TraderDoDecorationTrade +08133e78 trader.s ScrSpecial_TraderMenuGetDecoration +starter_choose.s +08133e94 starter_choose.s GetStarterPokemon +08133eb0 starter_choose.s VblankCB_StarterChoose +08133ec4 starter_choose.s CB2_ChooseStarter +08134198 starter_choose.s MainCallback2_StarterChoose +081341b4 starter_choose.s Task_StarterChoose1 +08134214 starter_choose.s Task_StarterChoose2 +081342f8 starter_choose.s Task_StarterChoose3 +08134348 starter_choose.s Task_StarterChoose4 +081343b8 starter_choose.s Task_StarterChoose5 +08134464 starter_choose.s Task_StarterChoose6 +08134480 starter_choose.s CreateStarterPokemonLabel +0813464c starter_choose.s sub_0813464C_jp +08134688 starter_choose.s Task_MoveStarterChooseCursor +081346b0 starter_choose.s sub_081346B0_jp +081346d8 starter_choose.s CreatePokemonFrontSprite +08134724 starter_choose.s sub_08134724 +08134784 starter_choose.s sub_08134784_jp +081347bc starter_choose.s StarterPokemonSpriteCallback +wallclock.s +081347fc wallclock.s WallClockVblankCallback +08134810 wallclock.s LoadWallClockGraphics +081349d4 wallclock.s WallClockInit +08134a3c wallclock.s CB2_StartWallClock +08134b8c wallclock.s CB2_ViewWallClock +08134ce8 wallclock.s WallClockMainCallback +08134d04 wallclock.s Task_ViewClock1 +08134d34 wallclock.s Task_SetClock2 +08134e10 wallclock.s Task_SetClock3 +08134e84 wallclock.s Task_SetClock4 +08134ef8 wallclock.s Task_SetClock5 +08134f3c wallclock.s Task_SetClock6 +08134f64 wallclock.s Task_SetClock1 +08134f94 wallclock.s Task_ViewClock2 +08134fcc wallclock.s Task_ViewClock3 +08135004 wallclock.s Task_ViewClock4 +08135028 wallclock.s CalcMinHandDelta +08135050 wallclock.s CalcNewMinHandAngle +081350a0 wallclock.s AdvanceClock +0813513c wallclock.s UpdateClockPeriod +08135184 wallclock.s InitClockWithRtc +08135200 wallclock.s SpriteCB_MinuteHand +08135298 wallclock.s SpriteCB_HourHand +08135330 wallclock.s SpriteCB_AMIndicator +081353d4 wallclock.s SpriteCB_PMIndicator +fldeff_rocksmash.s +08135478 fldeff_rocksmash.s CheckObjectGraphicsInFrontOfPlayer +081354cc fldeff_rocksmash.s oei_task_add +081354f0 fldeff_rocksmash.s task08_080C9820 +08135580 fldeff_rocksmash.s sub_08135580_jp +081355cc fldeff_rocksmash.s sub_081355CC_jp +08135670 fldeff_rocksmash.s sub_08135670_jp +081356a8 fldeff_rocksmash.s SetUpFieldMove_RockSmash +08135718 fldeff_rocksmash.s sub_08135718_jp +08135738 fldeff_rocksmash.s FldEff_UseRockSmash +08135768 fldeff_rocksmash.s sub_08135768_jp +08135780 fldeff_rocksmash.s sub_08135780 +081357b4 fldeff_rocksmash.s sub_081357B4 +081357d4 fldeff_rocksmash.s sub_081357D4 +08135810 fldeff_rocksmash.s sub_08135810 +pokeblock.spokeblock.s +08135850 pokeblock.spokeblock.s sub_08135850 +08135944 pokeblock.spokeblock.s sub_08135944 +08135958 pokeblock.spokeblock.s sub_08135958 +0813596c pokeblock.spokeblock.s sub_0813596C +08135988 pokeblock.spokeblock.s sub_08135988 +0813599c pokeblock.spokeblock.s sub_0813599C +081359c8 pokeblock.spokeblock.s sub_081359C8 +08135c2c pokeblock.spokeblock.s sub_08135C2C +08135c88 pokeblock.spokeblock.s sub_08135C88 +08135d74 pokeblock.spokeblock.s sub_08135D74 +08135dcc pokeblock.spokeblock.s sub_08135DCC +08135df8 pokeblock.spokeblock.s sub_08135DF8 +08135e60 pokeblock.spokeblock.s sub_08135E60 +08135f30 pokeblock.spokeblock.s sub_08135F30 +08135fb4 pokeblock.spokeblock.s sub_08135FB4 +08136010 pokeblock.spokeblock.s sub_08136010 +08136150 pokeblock.spokeblock.s sub_08136150 +08136180 pokeblock.spokeblock.s sub_08136180 +081361f0 pokeblock.spokeblock.s sub_081361F0 +0813628c pokeblock.spokeblock.s sub_0813628C +0813629c pokeblock.spokeblock.s sub_0813629C +08136320 pokeblock.spokeblock.s sub_08136320 +08136384 pokeblock.spokeblock.s sub_08136384 +081363fc pokeblock.spokeblock.s sub_081363FC +08136458 pokeblock.spokeblock.s sub_08136458 +08136484 pokeblock.spokeblock.s sub_08136484 +081364b0 pokeblock.spokeblock.s sub_081364B0 +0813652c pokeblock.spokeblock.s sub_0813652C +08136564 pokeblock.spokeblock.s sub_08136564 +08136608 pokeblock.spokeblock.s sub_08136608 +0813675c pokeblock.spokeblock.s sub_0813675C +08136894 pokeblock.spokeblock.s sub_08136894 +08136978 pokeblock.spokeblock.s sub_08136978 +08136a50 pokeblock.spokeblock.s sub_08136A50 +08136ac0 pokeblock.spokeblock.s sub_08136AC0 +08136ae4 pokeblock.spokeblock.s sub_08136AE4 +08136b10 pokeblock.spokeblock.s sub_08136B10 +08136b24 pokeblock.spokeblock.s sub_08136B24 +08136bb8 pokeblock.spokeblock.s sub_08136BB8 +08136be8 pokeblock.spokeblock.s sub_08136BE8 +08136c30 pokeblock.spokeblock.s sub_08136C30 +08136cc4 pokeblock.spokeblock.s sub_08136CC4 +08136cfc pokeblock.spokeblock.s sub_08136CFC +08136d9c pokeblock.spokeblock.s sub_08136D9C +08136e00 pokeblock.spokeblock.s sub_08136E00 +08136e58 pokeblock.spokeblock.s sub_08136E58 +08136e90 pokeblock.spokeblock.s sub_08136E90 +08136ef8 pokeblock.spokeblock.s sub_08136EF8 +08136f14 pokeblock.spokeblock.s sub_08136F14 +08136f4c pokeblock.spokeblock.s sub_08136F4C +08136f64 pokeblock.spokeblock.s sub_08136F64 +08136f9c pokeblock.spokeblock.s sub_08136F9C +08136fd8 pokeblock.spokeblock.s sub_08136FD8 +0813700c pokeblock.spokeblock.s sub_0813700C +08137054 pokeblock.spokeblock.s sub_08137054 +081370b4 pokeblock.spokeblock.s sub_081370B4 +081370d8 pokeblock.spokeblock.s sub_081370D8 +08137124 pokeblock.spokeblock.s sub_08137124 +fldeff_flash.s +0813716c fldeff_flash.s SetUpFieldMove_Flash +081371e8 fldeff_flash.s hm2_flash +08137224 fldeff_flash.s sub_08137224_jp +08137244 fldeff_flash.s sub_08137244_jp +0813725c fldeff_flash.s sub_0813725C_jp +08137270 fldeff_flash.s c2_change_map +08137374 fldeff_flash.s sub_08137374_jp +081373d0 fldeff_flash.s GetMapPairFadeToType +08137418 fldeff_flash.s GetMapPairFadeFromType +08137460 fldeff_flash.s sub_08137460_jp +08137474 fldeff_flash.s sub_08137474_jp +08137490 fldeff_flash.s sub_08137490_jp +08137534 fldeff_flash.s sub_08137534_jp +0813757c fldeff_flash.s sub_0813757C_jp +081375e4 fldeff_flash.s sub_081375E4_jp +08137618 fldeff_flash.s sub_08137618_jp +0813762c fldeff_flash.s sub_0813762C_jp +08137648 fldeff_flash.s sub_08137648_jp +081376e8 fldeff_flash.s sub_081376E8_jp +0813774c fldeff_flash.s sub_0813774C_jp +post_battle_event_funcs.s +081377a4 post_battle_event_funcs.s GameClear +081378ec post_battle_event_funcs.s sp0C8_whiteout_maybe +time_events.s +08137900 time_events.s GetMirageRnd +0813792c time_events.s SetMirageRnd +08137954 time_events.s InitMirageRnd +08137974 time_events.s UpdateMirageRnd +081379ac time_events.s IsMirageIslandPresent +081379f8 time_events.s UpdateShoalTideFlag +08137a48 time_events.s Task_WaitWeather +08137a68 time_events.s WaitWeather +08137a7c time_events.s InitBirchState +08137a90 time_events.s UpdateBirchState +birch_pc.s +08137abc birch_pc.s ScriptGetPokedexInfo +08137b08 birch_pc.s GetPokedexRatingText +08137c80 birch_pc.s ShowPokedexRatingMessage +hof_pc.s +08137c98 hof_pc.s AccessHallOfFamePC +08137cac hof_pc.s ReturnFromHallOfFamePC +08137ccc hof_pc.s ReshowPCMenuAfterHallOfFamePC +08137d04 hof_pc.s Task_WaitForPaletteFade +field_specials.s +08137d24 field_specials.s Special_ShowDiploma +08137d38 field_specials.s Special_ViewWallClock +08137d5c field_specials.s ResetCyclingRoadChallengeData +08137d7c field_specials.s Special_BeginCyclingRoadChallenge +08137da4 field_specials.s GetPlayerAvatarBike +08137dcc field_specials.s DetermineCyclingRoadResults +08137edc field_specials.s FinishCyclingRoadChallenge +08137f0c field_specials.s RecordCyclingRoadResults +08137f6c field_specials.s GetRecordedCyclingRoadResults +08137fb4 field_specials.s UpdateCyclingRoadState +08138000 field_specials.s SetSSTidalFlag +08138020 field_specials.s ResetSSTidalFlag +08138030 field_specials.s CountSSTidalStep +0813806c field_specials.s GetSSTidalLocation +08138148 field_specials.s ShouldDoWallyCall +08138190 field_specials.s ShouldDoWinonaCall +081381d8 field_specials.s ShouldDoScottCall +08138220 field_specials.s ShouldDoRoxanneCall +08138268 field_specials.s ShouldDoRivalRayquazaCall +081382b0 field_specials.s GetLinkPartnerNames +08138310 field_specials.s SpawnLinkPartnerEventObject +0813849c field_specials.s LoadLinkPartnerEventObjectSpritePalette +08138560 field_specials.s MauvilleGymSpecial1 +081385b0 field_specials.s MauvilleGymSpecial2 +081387c0 field_specials.s MauvilleGymSpecial3 +08138954 field_specials.s PetalburgGymSpecial1 +08138980 field_specials.s Task_PetalburgGym +081389e8 field_specials.s PetalburgGymFunc +08138b14 field_specials.s PetalburgGymSpecial2 +08138b30 field_specials.s ShowFieldMessageStringVar4 +08138b40 field_specials.s StorePlayerCoordsInVars +08138b60 field_specials.s GetPlayerTrainerIdOnesDigit +08138b80 field_specials.s GetPlayerBigGuyGirlString +08138bb8 field_specials.s GetRivalSonDaughterString +08138bf0 field_specials.s GetBattleOutcome +08138bfc field_specials.s CableCarWarp +08138c38 field_specials.s SetFlagInVar +08138c4c field_specials.s GetWeekCount +08138c74 field_specials.s GetLeadMonFriendshipScore +08138cf4 field_specials.s CB2_FieldShowRegionMap +08138d04 field_specials.s FieldShowRegionMap +08138d14 field_specials.s DoLotteryCornerComputerEffect +08138d58 field_specials.s Task_PCTurnOnEffect +08138d80 field_specials.s PCTurnOnEffect_0 +08138df8 field_specials.s PCTurnOnEffect_1 +08138e90 field_specials.s DoPCTurnOffEffect +08138e9c field_specials.s PCTurnOffEffect +08138f30 field_specials.s DoPCTurnOnEffect +08138f74 field_specials.s Task_LotteryCornerComputerEffect +08138f9c field_specials.s LotteryCornerComputerEffect +0813901c field_specials.s EndLotteryCornerComputerEffect +08139044 field_specials.s ResetTrickHouseEndRoomFlag +0813905c field_specials.s SetTrickHouseEndRoomFlag +08139074 field_specials.s CheckLeadMonCool +081390a0 field_specials.s CheckLeadMonBeauty +081390cc field_specials.s CheckLeadMonCute +081390f8 field_specials.s CheckLeadMonSmart +08139124 field_specials.s CheckLeadMonTough +08139150 field_specials.s IsGrassTypeInParty +081391c8 field_specials.s SpawnCameraObject +0813921c field_specials.s RemoveCameraObject +08139240 field_specials.s GetPokeblockNameByMonNature +08139270 field_specials.s GetSecretBaseNearbyMapName +08139298 field_specials.s GetBestBattleTowerStreak +081392a8 field_specials.s BufferEReaderTrainerName +081392b8 field_specials.s GetSlotMachineId +0813931c field_specials.s FoundAbandonedShipRoom1Key +08139344 field_specials.s FoundAbandonedShipRoom2Key +08139368 field_specials.s FoundAbandonedShipRoom4Key +08139390 field_specials.s FoundAbandonedShipRoom6Key +081393b8 field_specials.s LeadMonHasEffortRibbon +081393e0 field_specials.s GiveLeadMonEffortRibbon +08139438 field_specials.s Special_AreLeadMonEVsMaxedOut +0813946c field_specials.s TryUpdateRusturfTunnelState +081394cc field_specials.s SetShoalItemFlag +081394dc field_specials.s PutZigzagoonInPlayerParty +08139548 field_specials.s IsStarterInParty +081395a0 field_specials.s ScriptCheckFreePokemonStorageSpace +081395b0 field_specials.s IsPokerusInParty +081395d0 field_specials.s sub_081395D0_jp +0813962c field_specials.s sub_0813962C_jp +08139690 field_specials.s sub_08139690_jp +081396a4 field_specials.s FoundBlackGlasses +081396b8 field_specials.s SetRoute119Weather +081396d8 field_specials.s SetRoute123Weather +081396f8 field_specials.s GetLeadMonIndex +08139750 field_specials.s ScriptGetPartyMonSpecies +08139778 field_specials.s nullsub_54 +0813977c field_specials.s GetDaysUntilPacifidlogTMAvailable +081397c4 field_specials.s SetPacifidlogTMReceivedDay +081397e0 field_specials.s MonOTNameMatchesPlayer +08139824 field_specials.s BufferLottoTicketNumber +081398cc field_specials.s sub_081398CC_jp +08139938 field_specials.s sub_08139938_jp +08139980 field_specials.s sub_08139980_jp +081399c0 field_specials.s InMultiBattleRoom +081399f4 field_specials.s sub_081399F4_jp +08139a08 field_specials.s SetDepartmentStoreFloorVar +08139a68 field_specials.s sub_08139A68_jp +08139aec field_specials.s ShakeScreenInElevator +08139b68 field_specials.s sub_08139B68_jp +08139bd4 field_specials.s sub_08139BD4_jp +08139c4c field_specials.s sub_08139C4C_jp +08139c68 field_specials.s sub_08139C68_jp +08139cbc field_specials.s MoveElevatorWindowLights +08139dd4 field_specials.s sub_08139DD4_jp +08139ebc field_specials.s warp0_in_pokecenter +08139f0c field_specials.s sub_08139F0C_jp +08139f30 field_specials.s UpdateFrontierManiac +08139f5c field_specials.s sub_08139F5C_jp +0813a0bc field_specials.s sub_0813A0BC_jp +0813a164 field_specials.s sub_0813A164_jp +0813a318 field_specials.s sub_0813A318_jp +0813a434 field_specials.s sub_0813A434_jp +0813a474 field_specials.s sub_0813A474_jp +0813a4f4 field_specials.s sub_0813A4F4_jp +0813a578 field_specials.s sub_0813A578_jp +0813a608 field_specials.s sub_0813A608_jp +0813a638 field_specials.s sub_0813A638_jp +0813a66c field_specials.s sub_0813A66C_jp +0813a69c field_specials.s sub_0813A69C_jp +0813a740 field_specials.s sub_0813A740_jp +0813a770 field_specials.s nullsub_55 +0813a774 field_specials.s sub_0813A774_jp +0813a7c0 field_specials.s sub_0813A7C0_jp +0813a7fc field_specials.s UpdateFrontierGambler +0813a828 field_specials.s sub_0813A828_jp +0813a85c field_specials.s sub_0813A85C_jp +0813a880 field_specials.s sub_0813A880_jp +0813a904 field_specials.s sub_0813A904_jp +0813a98c field_specials.s sub_0813A98C_jp +0813a9d4 field_specials.s sub_0813A9D4_jp +0813a9f0 field_specials.s sub_0813A9F0_jp +0813aa1c field_specials.s sub_0813AA1C_jp +0813aa50 field_specials.s sub_0813AA50_jp +0813aa64 field_specials.s sub_0813AA64_jp +0813aa90 field_specials.s sub_0813AA90_jp +0813aaac field_specials.s sub_0813AAAC_jp +0813ac20 field_specials.s sub_0813AC20_jp +0813ac90 field_specials.s sub_0813AC90_jp +0813acc8 field_specials.s sub_0813ACC8_jp +0813ad2c field_specials.s sub_0813AD2C_jp +0813ad6c field_specials.s sub_0813AD6C_jp +0813adf0 field_specials.s sub_0813ADF0_jp +0813ae0c field_specials.s sub_0813AE0C_jp +0813aeec field_specials.s sub_0813AEEC_jp +0813af80 field_specials.s sub_0813AF80_jp +0813b000 field_specials.s DoDeoxysRockInteraction +0813b014 field_specials.s Task_DeoxysRockInteraction +0813b0ec field_specials.s ChangeDeoxysRockLevel +0813b198 field_specials.s WaitForDeoxysRockMovement +0813b1bc field_specials.s IncrementBirthIslandRockStepCount +0813b208 field_specials.s sub_0813B208_jp +0813b23c field_specials.s set_unknown_box_id +0813b248 field_specials.s get_unknown_box_id +0813b254 field_specials.s sub_0813B254_jp +0813b298 field_specials.s sub_0813B298_jp +0813b31c field_specials.s CreateUnusualWeatherEvent +0813b3ac field_specials.s GetUnusualWeatherMapNameAndType +0813b3e8 field_specials.s UnusualWeatherHasExpired +0813b4bc field_specials.s Unused_SetWeatherSunny +0813b4c8 field_specials.s sub_0813B4C8_jp +0813b518 field_specials.s sub_0813B518_jp +0813b54c field_specials.s sub_0813B54C_jp +0813b56c field_specials.s sub_0813B56C_jp +0813b5a0 field_specials.s sub_0813B5A0_jp +0813b5b4 field_specials.s sub_0813B5B4_jp +0813b810 field_specials.s sub_0813B810_jp +0813b844 field_specials.s sub_0813B844_jp +0813b85c field_specials.s sub_0813B85C_jp +0813b8b8 field_specials.s sub_0813B8B8_jp +0813b8e8 field_specials.s _fwalk +0813b9a0 field_specials.s sub_0813B9A0_jp +0813b9d8 field_specials.s sub_0813B9D8_jp +0813b9f8 field_specials.s sub_0813B9F8_jp +0813ba48 field_specials.s ResetFanClub +0813ba68 field_specials.s sub_0813BA68_jp +0813ba98 field_specials.s sub_0813BA98_jp +0813bb14 field_specials.s sub_0813BB14_jp +0813bbac field_specials.s sub_0813BBAC_jp +0813bc38 field_specials.s sub_0813BC38 +0813bce0 field_specials.s GetNumMovedLilycoveFanClubMembers +0813bd20 field_specials.s UpdateMovedLilycoveFanClubMembers +0813bd98 field_specials.s ShouldMoveLilycoveFanClubMember +0813bdbc field_specials.s sub_0813BDBC +0813bdec field_specials.s BufferStreakTrainerText +0813be68 field_specials.s sub_0813BE68_jp +0813bf34 field_specials.s sub_0813BF34_jp +0813bf68 field_specials.s sub_0813BF68_jp +0813bf84 field_specials.s sub_0813BF84_jp +0813bfa0 field_specials.s sub_0813BFA0_jp +battle_records.s +0813bfb8 battle_records.s ClearLinkBattleRecord +0813bfe8 battle_records.s ClearLinkBattleRecords +0813c01c battle_records.s GetLinkBattleRecordTotalBattles +0813c02c battle_records.s FindLinkBattleRecord +0813c060 battle_records.s SortLinkBattleRecords +0813c0dc battle_records.s UpdateLinkBattleRecord +0813c140 battle_records.s UpdateLinkBattleGameStats +0813c17c battle_records.s UpdateLinkBattleRecords +0813c204 battle_records.s ClearPlayerLinkBattleRecords +0813c220 battle_records.s IncTrainerCardWins +0813c248 battle_records.s IncTrainerCardLosses +0813c270 battle_records.s UpdateTrainerCardWinsLosses +0813c2ac battle_records.s UpdatePlayerLinkBattleRecords +0813c300 battle_records.s PrintLinkBattleWinsLossesDraws +0813c384 battle_records.s PrintLinkBattleRecord +0813c4b0 battle_records.s ShowLinkBattleRecords +0813c57c battle_records.s RemoveRecordsWindow +0813c598 battle_records.s Task_TrainerHillWaitForPaletteFade +0813c5c8 battle_records.s Task_CloseTrainerHillRecordsOnButton +0813c608 battle_records.s Task_BeginPaletteFade +0813c640 battle_records.s Task_ExitTrainerHillRecords +0813c684 battle_records.s RemoveTrainerHillRecordsWindow +0813c6b0 battle_records.s ClearVramOamPlttRegs +0813c7e8 battle_records.s ClearTasksAndGraphicalStructs +0813c804 battle_records.s ResetBgCoordinates +0813c85c battle_records.s SetDispcntReg +0813c86c battle_records.s LoadTrainerHillRecordsWindowGfx +0813c8b4 battle_records.s VblankCB_TrainerHillRecords +0813c8c8 battle_records.s MainCB2_TrainerHillRecords +0813c8e0 battle_records.s ShowTrainerHillRecords +0813c8f8 battle_records.s CB2_ShowTrainerHillRecords +pokedex_area_screen.s +0813ca30 pokedex_area_screen.s ResetDrawAreaGlowState +0813ca44 pokedex_area_screen.s DrawAreaGlow +0813cb1c pokedex_area_screen.s FindMapsWithMon +0813cce0 pokedex_area_screen.s SetAreaHasMon +0813cd40 pokedex_area_screen.s SetSpecialMapHasMon +0813ce10 pokedex_area_screen.s GetRegionMapSectionId +0813ce24 pokedex_area_screen.s MapHasMon +0813ceb0 pokedex_area_screen.s MonListHasMon +0813cee8 pokedex_area_screen.s BuildAreaGlowTilemap +0813d2cc pokedex_area_screen.s StartAreaGlow +0813d360 pokedex_area_screen.s DoAreaGlow +0813d4dc pokedex_area_screen.s ShowPokedexAreaScreen +0813d530 pokedex_area_screen.s Task_PokedexAreaScreen_0 +0813d6a4 pokedex_area_screen.s Task_PokedexAreaScreen_1 +0813d7b8 pokedex_area_screen.s sub_0813D7B8_jp +0813d7d4 pokedex_area_screen.s CreateAreaMarkerSprites +0813d928 pokedex_area_screen.s DestroyAreaMarkerSprites +0813d9ac pokedex_area_screen.s LoadAreaUnknownGraphics +0813d9ec pokedex_area_screen.s CreateAreaUnknownSprites +0813dab4 pokedex_area_screen.s sub_0813DAB4 +0813dac4 pokedex_area_screen.s sub_0813DAC4 +evolution_scene.s +0813db44 evolution_scene.s BeginEvolutionScene +0813db90 evolution_scene.s EvolutionScene +0813de80 evolution_scene.s CB2_EvolutionSceneLoadGraphics +0813e074 evolution_scene.s CB2_TradeEvolutionSceneLoadGraphics +0813e2d8 evolution_scene.s TradeEvolutionScene +0813e4a8 evolution_scene.s CB2_EvolutionSceneUpdate +0813e4c4 evolution_scene.s CB2_TradeEvolutionSceneUpdate +0813e4e0 evolution_scene.s CreateShedinja +0813e638 evolution_scene.s Task_EvolutionScene +0813f280 evolution_scene.s Task_TradeEvolutionScene +0813fda0 evolution_scene.s EvoDummyFunc +0813fda4 evolution_scene.s VBlankCB_EvolutionScene +0813fe2c evolution_scene.s VBlankCB_TradeEvolutionScene +0813feb4 evolution_scene.s sub_0813FEB4_jp +0813ff6c evolution_scene.s sub_0813FF6C_jp +0813ffb0 evolution_scene.s sub_0813FFB0_jp +08140088 evolution_scene.s InitMovingBgValues +081400c8 evolution_scene.s InitMovingBackgroundTask +081401c8 evolution_scene.s sub_081401C8_jp +081401fc evolution_scene.s sub_081401FC_jp +0814023c evolution_scene.s sub_0814023C +081402a8 evolution_scene.s EvoScene_DoMonAnimation +081402d0 evolution_scene.s EvoScene_IsMonAnimFinished +roulette.s +08140300 roulette.s sub_08140300_jp +0814032c roulette.s sub_0814032C_jp +08140450 roulette.s sub_08140450_jp +081404e0 roulette.s sub_081404E0_jp +08140538 roulette.s sub_08140538_jp +08140694 roulette.s sub_08140694_jp +081408dc roulette.s sub_081408DC_jp +08140970 roulette.s sub_08140970_jp +081409dc roulette.s sub_081409DC_jp +08140a30 roulette.s sub_08140A30_jp +08140a5c roulette.s sub_08140A5C_jp +08140a80 roulette.s sub_08140A80_jp +08140c2c roulette.s sub_08140C2C_jp +08140c54 roulette.s sub_08140C54_jp +08140c98 roulette.s sub_08140C98_jp +08140d70 roulette.s sub_08140D70_jp +08140e34 roulette.s sub_08140E34_jp +08141034 roulette.s sub_08141034_jp +0814108c roulette.s sub_0814108C_jp +08141108 roulette.s sub_08141108_jp +081411c4 roulette.s sub_081411C4_jp +08141254 roulette.s sub_08141254_jp +0814140c roulette.s sub_0814140C_jp +08141624 roulette.s sub_08141624_jp +0814169c roulette.s sub_0814169C_jp +0814179c roulette.s sub_0814179C_jp +08141840 roulette.s sub_08141840_jp +081418c8 roulette.s sub_081418C8_jp +08141964 roulette.s sub_08141964_jp +08141a4c roulette.s sub_08141A4C_jp +08141ae0 roulette.s sub_08141AE0_jp +08141b88 roulette.s sub_08141B88_jp +08141c20 roulette.s sub_08141C20_jp +08141dd4 roulette.s dp01t_12_3_battle_menu +08141eac roulette.s sub_08141EAC_jp +08141f44 roulette.s sub_08141F44_jp +08141fc0 roulette.s sub_08141FC0_jp +08142044 roulette.s sub_08142044_jp +081420bc roulette.s sub_081420BC_jp +08142138 roulette.s sub_08142138_jp +08142198 roulette.s sub_08142198_jp +081422b0 roulette.s sub_081422B0_jp +0814234c roulette.s sub_0814234C_jp +081425c4 roulette.s sub_081425C4_jp +08142820 roulette.s sub_08142820_jp +081428dc roulette.s sub_081428DC_jp +0814298c roulette.s sub_0814298C_jp +081429ac roulette.s sub_081429AC_jp +081429e0 roulette.s sub_081429E0_jp +08142a44 roulette.s sub_08142A44_jp +08142a68 roulette.s sub_08142A68_jp +08142ab8 roulette.s sub_08142AB8_jp +08142b50 roulette.s Task_Roulette_0 +08142c94 roulette.s PlayRoulette +08142cd8 roulette.s sub_08142CD8_jp +08142d2c roulette.s sub_08142D2C_jp +08142d9c roulette.s sub_08142D9C +08142f08 roulette.s unref_sub_8142E3C +08142f3c roulette.s sub_08142F3C +08143048 roulette.s sub_08143048_jp +08143104 roulette.s sub_08143104_jp +0814321c roulette.s sub_0814321C_jp +081432b0 roulette.s sub_081432B0_jp +0814334c roulette.s sub_0814334C_jp +081433e0 roulette.s sub_081433E0_jp +081435e0 roulette.s sub_081435E0_jp +081436e0 roulette.s sub_081436E0_jp +0814379c roulette.s sub_0814379C_jp +081437f8 roulette.s sub_081437F8_jp +081439d8 roulette.s sub_081439D8_jp +081439e8 roulette.s sub_081439E8_jp +08143a68 roulette.s sub_08143A68_jp +08143a94 roulette.s sub_08143A94_jp +08143b0c roulette.s sub_08143B0C_jp +08143b94 roulette.s sub_08143B94_jp +08143be0 roulette.s sub_08143BE0_jp +08143c14 roulette.s sub_08143C14_jp +08143c50 roulette.s sub_08143C50_jp +08143d5c roulette.s sub_08143D5C_jp +08143dc8 roulette.s sub_08143DC8_jp +08143ee0 roulette.s sub_08143EE0_jp +08144070 roulette.s sub_08144070_jp +0814411c roulette.s sub_0814411C_jp +081441f4 roulette.s sub_081441F4_jp +08144234 roulette.s sub_08144234 +08144274 roulette.s prev_quest_read_x24_hm_usage +08144330 roulette.s sub_08144330_jp +081444dc roulette.s sub_081444DC_jp +081445e0 roulette.s sub_081445E0_jp +081446a4 roulette.s sub_081446A4_jp +08144778 roulette.s sub_08144778_jp +081447a8 roulette.s sub_081447A8_jp +08144984 roulette.s sub_08144984_jp +08144af0 roulette.s sub_08144AF0_jp +08144d3c roulette.s sub_08144D3C_jp +08144d9c roulette.s sub_08144D9C_jp +08144e60 roulette.s sub_08144E60_jp +08144f2c roulette.s sub_08144F2C_jp +08145060 roulette.s sub_08145060_jp +0814507c roulette.s sub_0814507C_jp +081450fc roulette.s sub_081450FC_jp +081451a4 roulette.s sub_081451A4_jp +081452e4 roulette.s sub_081452E4_jp +08145360 roulette.s sub_08145360_jp +pokedex_cry_screen.s +08145420 pokedex_cry_screen.s sub_08145420_jp +08145528 pokedex_cry_screen.s sub_08145528_jp +08145600 pokedex_cry_screen.s sub_08145600_jp +08145654 pokedex_cry_screen.s sub_08145654_jp +08145674 pokedex_cry_screen.s sub_08145674_jp +081456d8 pokedex_cry_screen.s sub_081456D8_jp +08145714 pokedex_cry_screen.s sub_08145714_jp +08145774 pokedex_cry_screen.s sub_08145774_jp +081458e0 pokedex_cry_screen.s sub_081458E0_jp +081458f0 pokedex_cry_screen.s sub_081458F0_jp +0814591c pokedex_cry_screen.s sub_0814591C_jp +081459e0 pokedex_cry_screen.s sub_081459E0_jp +08145a38 pokedex_cry_screen.s sub_08145A38_jp +08145bf0 pokedex_cry_screen.s sub_08145BF0_jp +coins.s +08145c20 coins.s PrintCoinsString +08145c6c coins.s ShowCoinsWindow +08145cd4 coins.s HideCoinsWindow +08145cf0 coins.s GetCoins +08145d18 coins.s SetCoins +08145d40 coins.s GiveCoins +08145d8c coins.s TakeCoins +landmark.s +08145db4 landmark.s GetLandmarkName +08145e08 landmark.s GetLandmarks +fldeff_strength.s +08145e84 fldeff_strength.s SetUpFieldMove_Strength +08145ecc fldeff_strength.s FldEff_UseStrength +08145eec fldeff_strength.s sub_08145EEC_jp +08145f34 fldeff_strength.s sub_08145F34_jp +battle_transition.s +08145f44 battle_transition.s CB2_TestBattleTransition +08145f9c battle_transition.s TestBattleTransition +08145fb4 battle_transition.s BattleTransition_StartOnField +08145fd0 battle_transition.s BattleTransition_Start +08145fe0 battle_transition.s IsBattleTransitionDone +0814602c battle_transition.s LaunchBattleTransitionTask +08146068 battle_transition.s Phase2Task_29 +081460a0 battle_transition.s Transition_Phase1 +081460f0 battle_transition.s Transition_WaitForPhase1 +08146124 battle_transition.s Transition_Phase2 +0814614c battle_transition.s Transition_WaitForPhase2 +0814617c battle_transition.s Phase1Task_TransitionAll +081461cc battle_transition.s Phase2Task_30 +08146204 battle_transition.s Phase2_Blur_Func1 +08146238 battle_transition.s Phase2_Blur_Func2 +08146298 battle_transition.s Phase2_Blur_Func3 +081462c4 battle_transition.s Phase2Task_31 +081462fc battle_transition.s Phase2_Swirl_Func1 +08146368 battle_transition.s Phase2_Swirl_Func2 +081463e0 battle_transition.s VBlankCB_Phase2_Swirl +08146418 battle_transition.s HBlankCB_Phase2_Shuffle +08146444 battle_transition.s Phase2Task_32 +0814647c battle_transition.s Phase2_Shuffle_Func1 +081464e0 battle_transition.s Phase2_Shuffle_Func2 +08146570 battle_transition.s VBlankCB_Phase2_Shuffle +081465a8 battle_transition.s HBlankCB_Phase2_Swirl +081465d4 battle_transition.s Phase2Task_33 +0814660c battle_transition.s Phase2Task_Aqua +08146644 battle_transition.s Phase2Task_BigPokeball +0814667c battle_transition.s Phase2Task_Blackhole1 +081466b4 battle_transition.s Phase2Task_Blackhole2 +081466ec battle_transition.s Phase2Task_Blur +08146724 battle_transition.s Phase2Task_Clockwise_BlackFade +0814675c battle_transition.s sub_0814675C +081467cc battle_transition.s Phase2_Aqua_Func1 +08146820 battle_transition.s Phase2_Magma_Func1 +08146874 battle_transition.s Phase2_Regi_Func1 +081468c0 battle_transition.s Phase2_BigPokeball_Func1 +08146914 battle_transition.s Phase2_BigPokeball_Func2 +081469a4 battle_transition.s Phase2_Aqua_Func2 +081469ec battle_transition.s Phase2_Magma_Func2 +08146a34 battle_transition.s Phase2_Regice_Func2 +08146a8c battle_transition.s Phase2_Registeel_Func2 +08146ae4 battle_transition.s Phase2_Regirock_Func2 +08146b3c battle_transition.s Phase2_Kyogre_Func3 +08146b88 battle_transition.s Phase2_Kyogre_Func4 +08146be4 battle_transition.s Phase2_Kyogre_Func5 +08146c3c battle_transition.s Phase2_WeatherDuo_Func6 +08146c68 battle_transition.s Phase2_WeatherDuo_Func7 +08146cb8 battle_transition.s Phase2_BigPokeball_Func3 +08146d4c battle_transition.s Phase2_BigPokeball_Func4 +08146de0 battle_transition.s Phase2_BigPokeball_Func5 +08146e50 battle_transition.s Phase2_FramesCountdown +08146e6c battle_transition.s Phase2_WeatherTrio_Func1 +08146e98 battle_transition.s Phase2_WaitPaletteFade +08146eb8 battle_transition.s Phase2_BigPokeball_Func6 +08146f80 battle_transition.s Transition_BigPokeball_Vblank +08146ffc battle_transition.s VBlankCB0_Phase2_BigPokeball +08147028 battle_transition.s VBlankCB1_Phase2_BigPokeball +08147054 battle_transition.s Phase2Task_GridSquares +0814708c battle_transition.s Phase2_PokeballsTrail_Func1 +081470d8 battle_transition.s Phase2_PokeballsTrail_Func2 +08147164 battle_transition.s Phase2_PokeballsTrail_Func3 +08147190 battle_transition.s FldEff_Pokeball +081471fc battle_transition.s sub_081471FC +081472c4 battle_transition.s Phase2Task_Groudon +081472fc battle_transition.s Phase2_Clockwise_BlackFade_Func1 +08147364 battle_transition.s Phase2_Clockwise_BlackFade_Func2 +081473f4 battle_transition.s Phase2_Clockwise_BlackFade_Func3 +081474e8 battle_transition.s Phase2_Clockwise_BlackFade_Func4 +08147570 battle_transition.s Phase2_Clockwise_BlackFade_Func5 +08147670 battle_transition.s Phase2_Clockwise_BlackFade_Func6 +08147708 battle_transition.s Phase2_Clockwise_BlackFade_Func7 +08147748 battle_transition.s VBlankCB_Phase2_Clockwise_BlackFade +081477d8 battle_transition.s Phase2Task_Kyogre +08147810 battle_transition.s Phase2_Ripple_Func1 +08147868 battle_transition.s Phase2_Ripple_Func2 +08147948 battle_transition.s VBlankCB_Phase2_Ripple +08147980 battle_transition.s HBlankCB_Phase2_Ripple +081479ac battle_transition.s Phase2Task_MugShotTransition +081479e4 battle_transition.s Phase2_Wave_Func1 +08147a3c battle_transition.s Phase2_Wave_Func2 +08147ad8 battle_transition.s Phase2_Wave_Func3 +08147b18 battle_transition.s VBlankCB_Phase2_Wave +08147ba4 battle_transition.s Phase2Task_Sidney +08147bc4 battle_transition.s Phase2Task_Phoebe +08147be4 battle_transition.s Phase2Task_Glacia +08147c04 battle_transition.s Phase2Task_Drake +08147c24 battle_transition.s Phase2Task_Champion +08147c44 battle_transition.s Phase2Task_PokeballsTrail +08147c7c battle_transition.s Phase2_Mugshot_Func1 +08147ce4 battle_transition.s Phase2_Mugshot_Func2 +08147da4 battle_transition.s Phase2_Mugshot_Func3 +08147e90 battle_transition.s Phase2_Mugshot_Func4 +08147f0c battle_transition.s Phase2_Mugshot_Func5 +08147f48 battle_transition.s Phase2_Mugshot_Func6 +08148000 battle_transition.s Phase2_Mugshot_Func7 +081480c8 battle_transition.s Phase2_Mugshot_Func8 +08148100 battle_transition.s Phase2_Mugshot_Func9 +0814814c battle_transition.s Phase2_Mugshot_Func10 +0814818c battle_transition.s VBlankCB0_Phase2_Mugshots +08148220 battle_transition.s VBlankCB1_Phase2_Mugshots +081482a0 battle_transition.s HBlankCB_Phase2_Mugshots +081482d8 battle_transition.s Mugshots_CreateOpponentPlayerSprites +08148440 battle_transition.s sub_08148440_jp +08148468 battle_transition.s sub_08148468_jp +0814846c battle_transition.s sub_0814846C_jp +081484b8 battle_transition.s sub_081484B8_jp +081484ec battle_transition.s sub_081484EC_jp +08148518 battle_transition.s sub_08148518_jp +08148544 battle_transition.s sub_08148544_jp +0814855c battle_transition.s sub_0814855C_jp +08148578 battle_transition.s sub_08148578_jp +08148590 battle_transition.s Phase2Task_Rayquaza +081485c8 battle_transition.s Phase2_Slice_Func1 +08148650 battle_transition.s Phase2_Slice_Func2 +0814871c battle_transition.s Phase2_Slice_Func3 +0814875c battle_transition.s VBlankCB_Phase2_Slice +081487e8 battle_transition.s HBlankCB_Phase2_Slice +08148820 battle_transition.s Phase2Task_RectangularSpiral +08148858 battle_transition.s Phase2_ShredSplit_Func1 +08148924 battle_transition.s Phase2_ShredSplit_Func2 +08148b94 battle_transition.s Phase2_ShredSplit_Func3 +08148bd4 battle_transition.s Phase2_ShredSplit_Func4 +08148c14 battle_transition.s Phase2Task_Regice +08148c4c battle_transition.s Phase2Task_Regirock +08148c84 battle_transition.s Phase2_Blackhole_Func1 +08148ce8 battle_transition.s Phase2_Blackhole1_Func3 +08148da8 battle_transition.s Phase2_Blackhole1_Func2 +08148e2c battle_transition.s Phase2_Blackhole2_Func2 +08148f14 battle_transition.s Phase2Task_Registeel +08148f4c battle_transition.s Phase2_RectangularSpiral_Func1 +0814900c battle_transition.s Phase2_RectangularSpiral_Func2 +081490c8 battle_transition.s Phase2_RectangularSpiral_Func3 +08149108 battle_transition.s sub_08149108_jp +08149200 battle_transition.s Phase2Task_Ripple +08149238 battle_transition.s Phase2_Groudon_Func3 +08149288 battle_transition.s Phase2_Groudon_Func4 +081492e4 battle_transition.s Phase2_Groudon_Func5 +0814933c battle_transition.s Phase2Task_Shards +08149374 battle_transition.s Phase2_Rayquaza_Func3 +08149418 battle_transition.s Phase2_Rayquaza_Func4 +08149448 battle_transition.s Phase2_Rayquaza_Func5 +08149498 battle_transition.s Phase2_Rayquaza_Func6 +081494d0 battle_transition.s Phase2_Rayquaza_Func7 +081494fc battle_transition.s Phase2_Rayquaza_Func8 +0814952c battle_transition.s Phase2_Rayquaza_Func9 +081495c8 battle_transition.s VBlankCB_Phase2_Rayquaza +08149638 battle_transition.s Phase2Task_ShredSplit +08149670 battle_transition.s Phase2_WhiteFade_Func1 +081496e8 battle_transition.s Phase2_WhiteFade_Func2 +0814975c battle_transition.s Phase2_WhiteFade_Func3 +08149798 battle_transition.s Phase2_WhiteFade_Func4 +08149800 battle_transition.s Phase2_WhiteFade_Func5 +08149834 battle_transition.s VBlankCB0_Phase2_WhiteFade +081498c4 battle_transition.s VBlankCB1_Phase2_WhiteFade +08149900 battle_transition.s HBlankCB_Phase2_WhiteFade +08149924 battle_transition.s sub_08149924 +08149a1c battle_transition.s Phase2Task_Shuffle +08149a54 battle_transition.s Phase2_GridSquares_Func1 +08149aa8 battle_transition.s Phase2_GridSquares_Func2 +08149b00 battle_transition.s Phase2_GridSquares_Func3 +08149b2c battle_transition.s Phase2Task_Slice +08149b64 battle_transition.s Phase2_Shards_Func1 +08149bc8 battle_transition.s Phase2_Shards_Func2 +08149c44 battle_transition.s Phase2_Shards_Func3 +08149d20 battle_transition.s Phase2_Shards_Func4 +08149d8c battle_transition.s Phase2_Shards_Func5 +08149da8 battle_transition.s VBlankCB_Phase2_Shards +08149e38 battle_transition.s CreatePhase1Task +08149e9c battle_transition.s IsPhase1Done +08149ebc battle_transition.s Phase2Task_Magma +08149ef4 battle_transition.s Phase1_TransitionAll_Func1 +08149f50 battle_transition.s Phase1_TransitionAll_Func2 +08149fc8 battle_transition.s sub_08149FC8_jp +08149fec battle_transition.s VBlankCB_BattleTransition +0814a000 battle_transition.s sub_0814A000 +0814a018 battle_transition.s sub_0814A018_jp +0814a044 battle_transition.s sub_0814A044_jp +0814a058 battle_transition.s sub_0814A058_jp +0814a0d4 battle_transition.s sub_0814A0D4_jp +0814a26c battle_transition.s sub_0814A26C_jp +0814a2e8 battle_transition.s sub_0814A2E8 +0814a3e4 battle_transition.s Phase2_29_Func1 +0814a434 battle_transition.s Phase2_29_Func2 +0814a47c battle_transition.s Phase2Task_Swirl +0814a4b4 battle_transition.s Phase2Task_Wave +0814a4ec battle_transition.s Phase2_30_Func1 +0814a594 battle_transition.s Phase2_30_Func2 +0814a5c0 battle_transition.s Phase2_30_Func3 +0814a610 battle_transition.s Phase2_30_Func4 +0814a744 battle_transition.s VBlankCB_Phase2_30 +0814a78c battle_transition.s HBlankCB_Phase2_30 +0814a7b0 battle_transition.s Phase2Task_WhiteFade +0814a7e8 battle_transition.s Task_BattleTransitionMain +0814a820 battle_transition.s TransitionPhase1_Task_RunFuncs +0814a858 battle_transition.s Phase2_31_Func1 +0814a8e8 battle_transition.s Phase2_31_Func2 +0814a958 battle_transition.s Phase2_31_Func3 +0814aa20 battle_transition.s Phase2_33_Func1 +0814aac4 battle_transition.s Phase2_33_Func2 +0814ab44 battle_transition.s Phase2_33_Func3 +0814ab78 battle_transition.s Phase2_33_Func4 +0814ac60 battle_transition.s Phase2_31_33_Func5 +0814aca4 battle_transition.s sub_0814ACA4 +0814acf8 battle_transition.s Phase2_32_Func1 +0814ae08 battle_transition.s Phase2_32_Func2 +0814ae74 battle_transition.s Phase2_32_Func3 +0814ae98 battle_transition.s Phase2_32_Func4 +0814af00 battle_transition.s Phase2_32_Func5 +battle_controller_link_partner.s +0814af6c battle_controller_link_partner.s SpriteCB_Null2 +0814af70 battle_controller_link_partner.s SetControllerToLinkPartner +0814af8c battle_controller_link_partner.s LinkPartnerBufferRunCommand +0814afdc battle_controller_link_partner.s sub_0814AFDC_jp +0814b014 battle_controller_link_partner.s sub_0814B014_jp +0814b07c battle_controller_link_partner.s sub_0814B07C_jp +0814b0c4 battle_controller_link_partner.s sub_0814B0C4_jp +0814b1a8 battle_controller_link_partner.s sub_0814B1A8_jp +0814b350 battle_controller_link_partner.s sub_0814B350_jp +0814b390 battle_controller_link_partner.s LinkPartnerHandleSwitchInAnim +0814b400 battle_controller_link_partner.s sub_0814B400_jp +0814b49c battle_controller_link_partner.s sub_0814B49C_jp +0814b50c battle_controller_link_partner.s LinkPartnerHandlePlaySE +0814b524 battle_controller_link_partner.s LinkPartnerHandleHitAnimation +0814b5a0 battle_controller_link_partner.s sub_0814B5A0_jp +0814b614 battle_controller_link_partner.s sub_0814B614_jp +0814b668 battle_controller_link_partner.s sub_0814B668_jp +0814b75c battle_controller_link_partner.s sub_0814B75C_jp +0814b800 battle_controller_link_partner.s LinkPartnerBufferExecCompleted +0814b878 battle_controller_link_partner.s LinkPartnerHandleStatusAnimation +0814b8a8 battle_controller_link_partner.s LinkPartnerHandleStatusIconUpdate +0814b8d8 battle_controller_link_partner.s LinkPartnerHandleGetMonData +0814b94c battle_controller_link_partner.s CopyLinkPartnerMonData +0814c0f8 battle_controller_link_partner.s LinkPartnerHandleGetRawMonData +0814c104 battle_controller_link_partner.s LinkPartnerHandleSetMonData +0814c15c battle_controller_link_partner.s SetLinkPartnerMonData +0814cb58 battle_controller_link_partner.s LinkPartnerHandleSetRawMonData +0814cbcc battle_controller_link_partner.s LinkPartnerHandleLoadMonSprite +0814cce8 battle_controller_link_partner.s sub_0814CCE8_jp +0814cd58 battle_controller_link_partner.s sub_0814CD58_jp +0814ced4 battle_controller_link_partner.s LinkPartnerHandleReturnMonToBall +0814cf64 battle_controller_link_partner.s sub_0814CF64 +0814cff0 battle_controller_link_partner.s LinkPartnerHandleDrawTrainerPic +0814d1a4 battle_controller_link_partner.s LinkPartnerHandleTrainerSlide +0814d1b0 battle_controller_link_partner.s LinkPartnerHandleTrainerSlideBack +0814d25c battle_controller_link_partner.s LinkPartnerHandleFaintAnimation +0814d348 battle_controller_link_partner.s LinkPartnerHandlePaletteFade +0814d354 battle_controller_link_partner.s LinkPartnerHandleSuccessBallThrowAnim +0814d360 battle_controller_link_partner.s LinkPartnerHandleBallThrowAnim +0814d36c battle_controller_link_partner.s LinkPartnerHandlePause +0814d378 battle_controller_link_partner.s LinkPartnerHandleMoveAnimation +0814d4cc battle_controller_link_partner.s LinkPartnerDoMoveAnimation +0814d650 battle_controller_link_partner.s LinkPartnerHandlePrintString +0814d6a8 battle_controller_link_partner.s LinkPartnerHandlePrintSelectionString +0814d6b4 battle_controller_link_partner.s LinkPartnerHandleChooseAction +0814d6c0 battle_controller_link_partner.s LinkPartnerHandleUnknownYesNoBox +0814d6cc battle_controller_link_partner.s LinkPartnerHandleChooseMove +0814d6d8 battle_controller_link_partner.s LinkPartnerHandleChooseItem +0814d6e4 battle_controller_link_partner.s LinkPartnerHandleChoosePokemon +0814d6f0 battle_controller_link_partner.s LinkPartnerHandleCmd23 +0814d6fc battle_controller_link_partner.s LinkPartnerHandleHealthBarUpdate +0814d7ec battle_controller_link_partner.s LinkPartnerHandleExpUpdate +0814d7f8 battle_controller_link_partner.s sub_0814D7F8 +0814d870 battle_controller_link_partner.s sub_0814D870 +0814d8d8 battle_controller_link_partner.s LinkPartnerHandleStatusXor +0814d8e4 battle_controller_link_partner.s LinkPartnerHandleDataTransfer +0814d8f0 battle_controller_link_partner.s LinkPartnerHandleDMA3Transfer +0814d8fc battle_controller_link_partner.s LinkPartnerHandlePlayBGM +0814d908 battle_controller_link_partner.s LinkPartnerHandleCmd32 +0814d914 battle_controller_link_partner.s LinkPartnerHandleTwoReturnValues +0814d920 battle_controller_link_partner.s LinkPartnerHandleChosenMonReturnValue +0814d92c battle_controller_link_partner.s LinkPartnerHandleOneReturnValue +0814d938 battle_controller_link_partner.s LinkPartnerHandleOneReturnValue_Duplicate +0814d944 battle_controller_link_partner.s LinkPartnerHandleCmd37 +0814d960 battle_controller_link_partner.s LinkPartnerHandleCmd38 +0814d998 battle_controller_link_partner.s LinkPartnerHandleCmd39 +0814d9b0 battle_controller_link_partner.s LinkPartnerHandleCmd40 +0814d9d8 battle_controller_link_partner.s sub_0814D9D8 +0814da48 battle_controller_link_partner.s LinkPartnerHandleCmd42 +0814da54 battle_controller_link_partner.s sub_0814DA54 +0814da98 battle_controller_link_partner.s LinkPartnerHandlePlayFanfareOrBGM +0814daf4 battle_controller_link_partner.s LinkPartnerHandleFaintingCry +0814db34 battle_controller_link_partner.s LinkPartnerHandleIntroSlide +0814db68 battle_controller_link_partner.s LinkPartnerHandleIntroTrainerBallThrow +0814dd8c battle_controller_link_partner.s sub_0814DD8C +0814de98 battle_controller_link_partner.s LinkPartnerHandleDrawPartyStatusSummary +0814df5c battle_controller_link_partner.s sub_0814DF5C +0814dfa4 battle_controller_link_partner.s LinkPartnerHandleHidePartyStatusSummary +0814dff4 battle_controller_link_partner.s LinkPartnerHandleEndBounceEffect +0814e000 battle_controller_link_partner.s LinkPartnerHandleSpriteInvisibility +0814e060 battle_controller_link_partner.s LinkPartnerHandleBattleAnimation +0814e0d4 battle_controller_link_partner.s LinkPartnerHandleLinkStandbyMsg +0814e0f4 battle_controller_link_partner.s LinkPartnerHandleResetActionMoveSelection +0814e100 battle_controller_link_partner.s LinkPartnerHandleCmd55 +0814e180 battle_controller_link_partner.s LinkPartnerCmdEnd +battle_message.s +0814e184 battle_message.s BufferStringBattle +0814e7a0 battle_message.s TryGetStatusString +0814e7b0 battle_message.s BattleStringExpandPlaceholdersToDisplayedString +0814e7f0 battle_message.s BattleStringExpandPlaceholders +0814f62c battle_message.s BattlePutTextOnWindow +0814f63c battle_message.s sub_0814F63C +0814f664 battle_message.s ExpandBattleTextBuffPlaceholders +0814f910 battle_message.s ChooseMoveUsedParticle +0814f968 battle_message.s ChooseTypeOfMoveUsedString +0814fa04 battle_message.s sub_0814FA04 +0814fb80 battle_message.s SetPpNumbersPaletteInMoveSelection +0814fbfc battle_message.s GetCurrentPpToMaxPpState +cable_car.s +0814fc4c cable_car.s CableCarTask1 +0814fc78 cable_car.s CableCar +0814fca4 cable_car.s CableCarMainCallback_Setup +08150218 cable_car.s CableCarMainCallback_Run +08150234 cable_car.s CleanupCableCar +081503c0 cable_car.s sub_081503C0 +0815052c cable_car.s sub_0815052C_jp +08150640 cable_car.s sub_08150640_jp +081507dc cable_car.s CableCarVblankCallback +08150840 cable_car.s nullsub_58 +08150844 cable_car.s sub_08150844_jp +08150924 cable_car.s sub_08150924_jp +08150a44 cable_car.s sub_08150A44_jp +08150ad0 cable_car.s sub_08150AD0_jp +08150b48 cable_car.s sub_08150B48_jp +08150d04 cable_car.s LoadCableCarSprites +08151064 cable_car.s sub_08151064 +08151138 cable_car.s sub_08151138_jp +08151194 cable_car.s sub_08151194_jp +081511f0 cable_car.s sub_081511F0_jp +08151364 cable_car.s sub_08151364_jp +math_util.s +081514a4 math_util.s sub_081514A4_jp +08151510 math_util.s sub_08151510_jp +0815152c math_util.s sub_0815152C_jp +08151550 math_util.s sub_08151550_jp +0815158c math_util.s sub_0815158C_jp +081515b0 math_util.s sub_081515B0_jp +081515d8 math_util.s sub_081515D8_jp +08151600 math_util.s sub_08151600_jp +08151618 math_util.s sub_08151618_jp +roulette_util.s +08151638 roulette_util.s sub_08151638_jp +08151654 roulette_util.s sub_08151654_jp +08151668 roulette_util.s sub_08151668_jp +081516ec roulette_util.s sub_081516EC_jp +08151720 roulette_util.s sub_08151720_jp +08151928 roulette_util.s sub_08151928 +081519b8 roulette_util.s task_tutorial_controls_fadein +08151a24 roulette_util.s sub_08151A24 +08151a78 roulette_util.s sub_08151A78 +08151b18 roulette_util.s InitPulseBlend +08151b44 roulette_util.s InitPulseBlendPaletteSettings +08151bb0 roulette_util.s ClearPulseBlendPalettesSettings +08151c2c roulette_util.s UnloadUsedPulseBlendPalettes +08151c84 roulette_util.s MarkUsedPulseBlendPalettes +08151d04 roulette_util.s UnmarkUsedPulseBlendPalettes +08151e2c roulette_util.s UpdatePulseBlend +08151fe4 roulette_util.s sub_08151FE4_jp +08152034 roulette_util.s sub_08152034_jp +rom_81520A8.s +08152084 rom_81520A8.s sub_08152084_jp +08152110 rom_81520A8.s sub_08152110_jp +0815219c rom_81520A8.s sub_0815219C_jp +08152230 rom_81520A8.s sub_08152230_jp +081522b0 rom_81520A8.s sub_081522B0_jp +081523d0 rom_81520A8.s sub_081523D0_jp +08152414 rom_81520A8.s sub_08152414_jp +08152450 rom_81520A8.s sub_08152450_jp +081524a0 rom_81520A8.s sub_081524A0_jp +081525ac rom_81520A8.s sub_081525AC_jp +save.s +0815262c save.s ClearSaveData +0815265c save.s Save_ResetSaveCounters +08152678 save.s SetDamagedSectorBits +081526dc save.s save_write_to_flash +0815277c save.s HandleWriteSector +0815286c save.s HandleWriteSectorNBytes +081528e4 save.s TryWriteSector +08152910 save.s RestoreSaveBackupVarsAndIncrement +0815296c save.s RestoreSaveBackupVars +081529b0 save.s sub_081529B0_jp +08152a10 save.s sub_08152A10 +08152a5c save.s ClearSaveData_2 +08152bfc save.s sub_08152BFC_jp +08152c94 save.s sub_08152C94_jp +08152d20 save.s sub_08152D20_jp +08152d60 save.s sub_08152D60 +08152e18 save.s GetSaveValidStatus +0815302c save.s sub_0815302C +0815309c save.s DoReadFlashWholeSection +081530b4 save.s CalculateChecksum +081530e0 save.s UpdateSaveAddresses +08153154 save.s HandleSavingData +08153274 save.s TrySavingData +081532bc save.s sub_081532BC_jp +081532e8 save.s sub_081532E8_jp +0815331c save.s sub_0815331C_jp +08153344 save.s sub_08153344_jp +0815336c save.s FullSaveGame +081533b0 save.s CheckSaveFile +0815340c save.s Save_LoadGameData +08153498 save.s sub_08153498_jp +08153518 save.s TryReadSpecialSaveSection +08153570 save.s TryWriteSpecialSaveSection +081535c4 save.s sub_081535C4_jp +mystery_event_script.s +08153708 mystery_event_script.s CheckCompatibility +08153740 mystery_event_script.s SetIncompatible +0815375c mystery_event_script.s InitMysteryEventScript +0815378c mystery_event_script.s RunMysteryEventScriptCommand +081537ac mystery_event_script.s sub_081537AC +081537c0 mystery_event_script.s sub_081537C0 +081537dc mystery_event_script.s RunMysteryEventScript +08153800 mystery_event_script.s SetMysteryEventScriptStatus +0815380c mystery_event_script.s CalcRecordMixingGiftChecksum +08153834 mystery_event_script.s IsRecordMixingGiftValid +08153880 mystery_event_script.s ClearRecordMixingGift +081538ac mystery_event_script.s SetRecordMixingGift +08153910 mystery_event_script.s GetRecordMixingGift +08153960 mystery_event_script.s MEScrCmd_end +0815396c mystery_event_script.s MEScrCmd_checkcompat +081539bc mystery_event_script.s MEScrCmd_nop +081539c0 mystery_event_script.s MEScrCmd_setstatus +081539d0 mystery_event_script.s MEScrCmd_setmsg +08153a08 mystery_event_script.s MEScrCmd_runscript +08153a24 mystery_event_script.s MEScrCmd_setenigmaberry +08153aec mystery_event_script.s MEScrCmd_giveribbon +08153b20 mystery_event_script.s MEScrCmd_initramscript +08153b88 mystery_event_script.s MEScrCmd_enableresetrtc +08153bac mystery_event_script.s MEScrCmd_addrareword +08153bd8 mystery_event_script.s MEScrCmd_setrecordmixinggift +08153c04 mystery_event_script.s MEScrCmd_givepokemon +08153d10 mystery_event_script.s MEScrCmd_addtrainer +08153d58 mystery_event_script.s MEScrCmd_givenationaldex +08153d7c mystery_event_script.s MEScrCmd_checksum +08153dc4 mystery_event_script.s MEScrCmd_crc +field_effect_helpers.s +08153e10 field_effect_helpers.s SetUpReflection +08153ed4 field_effect_helpers.s GetReflectionVerticalOffset +08153ee8 field_effect_helpers.s LoadObjectReflectionPalette +08153f58 field_effect_helpers.s LoadObjectRegularReflectionPalette +08153fb4 field_effect_helpers.s LoadObjectHighBridgeReflectionPalette +08153fe4 field_effect_helpers.s UpdateObjectReflectionSprite +08154164 field_effect_helpers.s CreateWarpArrowSprite +081541b4 field_effect_helpers.s SetSpriteInvisible +081541d4 field_effect_helpers.s ShowWarpArrowSprite +0815427c field_effect_helpers.s FldEff_Shadow +08154320 field_effect_helpers.s UpdateShadowFieldEffect +081543e8 field_effect_helpers.s FldEff_TallGrass +0815448c field_effect_helpers.s UpdateTallGrassFieldEffect +08154594 field_effect_helpers.s FldEff_JumpTallGrass +08154604 field_effect_helpers.s FindTallGrassFieldEffectSpriteId +08154694 field_effect_helpers.s FldEff_LongGrass +0815473c field_effect_helpers.s UpdateLongGrassFieldEffect +08154838 field_effect_helpers.s FldEff_JumpLongGrass +081548a8 field_effect_helpers.s FldEff_ShortGrass +0815494c field_effect_helpers.s UpdateShortGrassFieldEffect +08154a40 field_effect_helpers.s FldEff_SandFootprints +08154ab4 field_effect_helpers.s FldEff_DeepSandFootprints +08154b28 field_effect_helpers.s FldEff_BikeTireTracks +08154b9c field_effect_helpers.s UpdateFootprintsTireTracksFieldEffect +08154bb8 field_effect_helpers.s FadeFootprintsTireTracks_Step0 +08154bdc field_effect_helpers.s FadeFootprintsTireTracks_Step1 +08154c28 field_effect_helpers.s FldEff_Splash +08154ccc field_effect_helpers.s UpdateSplashFieldEffect +08154d58 field_effect_helpers.s FldEff_JumpSmallSplash +08154dc8 field_effect_helpers.s FldEff_JumpBigSplash +08154e38 field_effect_helpers.s FldEff_FeetInFlowingWater +08154ef0 field_effect_helpers.s UpdateFeetInFlowingWaterFieldEffect +08154f90 field_effect_helpers.s FldEff_Ripple +08154ff0 field_effect_helpers.s FldEff_HotSpringsWater +08155094 field_effect_helpers.s UpdateHotSpringsWaterFieldEffect +0815512c field_effect_helpers.s FldEff_Unknown19 +08155198 field_effect_helpers.s FldEff_Unknown20 +08155204 field_effect_helpers.s FldEff_Unknown21 +08155270 field_effect_helpers.s FldEff_Unknown22 +081552dc field_effect_helpers.s StartAshFieldEffect +08155310 field_effect_helpers.s FldEff_Ash +0815539c field_effect_helpers.s UpdateAshFieldEffect +081553b8 field_effect_helpers.s UpdateAshFieldEffect_Step0 +081553e8 field_effect_helpers.s UpdateAshFieldEffect_Step1 +08155448 field_effect_helpers.s UpdateAshFieldEffect_Step2 +08155470 field_effect_helpers.s FldEff_SurfBlob +081554e8 field_effect_helpers.s sub_081554E8 +08155514 field_effect_helpers.s sub_08155514_jp +08155540 field_effect_helpers.s sub_08155540_jp +08155574 field_effect_helpers.s sub_08155574_jp +0815557c field_effect_helpers.s sub_0815557C_jp +08155588 field_effect_helpers.s sub_08155588 +08155594 field_effect_helpers.s UpdateSurfBlobFieldEffect +081555ec field_effect_helpers.s SynchroniseSurfAnim +08155624 field_effect_helpers.s sub_08155624 +081556b8 field_effect_helpers.s CreateBobbingEffect +0815573c field_effect_helpers.s sub_0815573C +0815578c field_effect_helpers.s sub_0815578C +081557cc field_effect_helpers.s FldEff_Dust +0815583c field_effect_helpers.s FldEff_SandPile +081558f8 field_effect_helpers.s UpdateSandPileFieldEffect +081559c4 field_effect_helpers.s FldEff_Bubbles +08155a28 field_effect_helpers.s UpdateBubblesFieldEffect +08155a68 field_effect_helpers.s FldEff_BerryTreeGrowthSparkle +08155adc field_effect_helpers.s ShowTreeDisguiseFieldEffect +08155aec field_effect_helpers.s ShowMountainDisguiseFieldEffect +08155afc field_effect_helpers.s ShowSandDisguiseFieldEffect +08155b0c field_effect_helpers.s ShowDisguiseFieldEffect +08155bc4 field_effect_helpers.s UpdateDisguiseFieldEffect +08155cb4 field_effect_helpers.s sub_08155CB4 +08155cdc field_effect_helpers.s sub_08155CDC +08155d18 field_effect_helpers.s FldEff_Sparkle +08155d8c field_effect_helpers.s UpdateSparkleFieldEffect +08155ddc field_effect_helpers.s sub_08155DDC +08155de4 field_effect_helpers.s sub_08155DE4_jp +08155ebc field_effect_helpers.s sub_08155EBC_jp +081560d0 field_effect_helpers.s sub_081560D0_jp +0815610c field_effect_helpers.s WaitFieldEffectSpriteAnim +08156138 field_effect_helpers.s sub_08156138 +contest_ai.s +08156200 contest_ai.s ContestAI_ResetAI +08156260 contest_ai.s ContestAI_GetActionToUse +081562ec contest_ai.s ContestAI_DoAIProcessing +081563e8 contest_ai.s sub_081563E8 +08156418 contest_ai.s ContestAICmd_score +0815646c contest_ai.s ContestAICmd_get_turn +0815648c contest_ai.s ContestAICmd_if_turn_less_than +081564d0 contest_ai.s ContestAICmd_if_turn_more_than +08156514 contest_ai.s ContestAICmd_if_turn_eq +08156558 contest_ai.s ContestAICmd_if_turn_not_eq +0815659c contest_ai.s ContestAICmd_get_excitement +081565c0 contest_ai.s ContestAICmd_if_excitement_less_than +08156604 contest_ai.s ContestAICmd_if_excitement_more_than +08156648 contest_ai.s ContestAICmd_if_excitement_eq +0815668c contest_ai.s ContestAICmd_if_excitement_not_eq +081566d0 contest_ai.s ContestAICmd_get_user_order +081566f8 contest_ai.s ContestAICmd_if_user_order_less_than +0815673c contest_ai.s ContestAICmd_if_user_order_more_than +08156780 contest_ai.s ContestAICmd_if_user_order_eq +081567c4 contest_ai.s ContestAICmd_if_user_order_not_eq +08156808 contest_ai.s ContestAICmd_get_user_condition +08156848 contest_ai.s ContestAICmd_if_user_condition_less_than +0815688c contest_ai.s ContestAICmd_if_user_condition_more_than +081568d0 contest_ai.s ContestAICmd_if_user_condition_eq +08156914 contest_ai.s ContestAICmd_if_user_condition_not_eq +08156958 contest_ai.s ContestAICmd_unk_15 +08156984 contest_ai.s ContestAICmd_unk_1B +081569d4 contest_ai.s ContestAICmd_unk_17 +08156a24 contest_ai.s ContestAICmd_unk_18 +08156a74 contest_ai.s ContestAICmd_unk_1E +08156ac4 contest_ai.s ContestAICmd_unk_1A +08156af0 contest_ai.s ContestAICmd_unk_16 +08156b40 contest_ai.s ContestAICmd_unk_1C +08156b90 contest_ai.s ContestAICmd_unk_1D +08156be0 contest_ai.s ContestAICmd_unk_19 +08156c30 contest_ai.s ContestAICmd_get_contest_type +08156c54 contest_ai.s ContestAICmd_if_contest_type_eq +08156c98 contest_ai.s ContestAICmd_if_contest_type_not_eq +08156cdc contest_ai.s ContestAICmd_get_move_excitement +08156d20 contest_ai.s ContestAICmd_if_move_excitement_less_than +08156d68 contest_ai.s ContestAICmd_if_move_excitement_greater_than +08156db0 contest_ai.s ContestAICmd_if_move_excitement_eq +08156df8 contest_ai.s ContestAICmd_if_move_excitement_not_eq +08156e40 contest_ai.s ContestAICmd_get_move_effect +08156e80 contest_ai.s ContestAICmd_if_move_effect_eq +08156ec4 contest_ai.s ContestAICmd_if_move_effect_not_eq +08156f08 contest_ai.s ContestAICmd_get_move_effect_type +08156f54 contest_ai.s ContestAICmd_if_move_effect_type_eq +08156f98 contest_ai.s ContestAICmd_if_move_effect_type_not_eq +08156fdc contest_ai.s ContestAICmd_check_most_appealing_move +08157068 contest_ai.s ContestAICmd_if_most_appealing_move +081570b0 contest_ai.s ContestAICmd_unk_2F +0815713c contest_ai.s ContestAICmd_unk_30 +08157184 contest_ai.s ContestAICmd_unk_31 +081571e0 contest_ai.s ContestAICmd_unk_32 +08157224 contest_ai.s ContestAICmd_if_used_combo_starter_more_than +08157268 contest_ai.s ContestAICmd_if_used_combo_starter_eq +081572ac contest_ai.s ContestAICmd_unk_35 +081572f0 contest_ai.s ContestAICmd_unk_36 +0815734c contest_ai.s ContestAICmd_unk_37 +08157390 contest_ai.s ContestAICmd_unk_33 +081573d4 contest_ai.s ContestAICmd_unk_34 +08157418 contest_ai.s ContestAICmd_unk_3A +0815745c contest_ai.s ContestAICmd_get_move_used_count +081574b4 contest_ai.s ContestAICmd_if_most_used_count_less_than +081574f8 contest_ai.s ContestAICmd_if_most_used_count_more_than +0815753c contest_ai.s ContestAICmd_if_most_used_count_eq +08157580 contest_ai.s ContestAICmd_if_most_used_count_not_eq +081575c4 contest_ai.s ContestAICmd_check_combo_starter +0815763c contest_ai.s ContestAICmd_if_combo_starter +08157684 contest_ai.s ContestAICmd_if_not_combo_starter +081576cc contest_ai.s ContestAICmd_check_combo_finisher +08157744 contest_ai.s ContestAICmd_if_combo_finisher +0815778c contest_ai.s ContestAICmd_if_not_combo_finisher +081577d4 contest_ai.s ContestAICmd_check_would_finish_combo +08157834 contest_ai.s ContestAICmd_if_would_finish_combo +0815787c contest_ai.s ContestAICmd_if_would_not_finish_combo +081578c4 contest_ai.s ContestAICmd_get_condition +08157908 contest_ai.s ContestAICmd_if_condition_less_than +0815794c contest_ai.s ContestAICmd_if_condition_more_than +08157990 contest_ai.s ContestAICmd_if_condition_eq +081579d4 contest_ai.s ContestAICmd_if_condition_not_eq +08157a18 contest_ai.s ContestAICmd_get_used_combo_starter +08157a74 contest_ai.s ContestAICmd_if_used_combo_starter_less_than +08157ab8 contest_ai.s ContestAICmd_unk_38 +08157afc contest_ai.s ContestAICmd_unk_39 +08157b40 contest_ai.s ContestAICmd_if_used_combo_starter_not_eq +08157b84 contest_ai.s ContestAICmd_check_can_participate +08157bd0 contest_ai.s ContestAICmd_if_can_participate +08157c18 contest_ai.s ContestAICmd_if_cannot_participate +08157c60 contest_ai.s ContestAICmd_get_val_812A188 +08157c9c contest_ai.s ContestAICmd_unk_57 +08157ce4 contest_ai.s ContestAICmd_contest_58 +08157d2c contest_ai.s ContestAICmd_unk_59 +08157d78 contest_ai.s ContestAICmd_unk_5A +08157dc0 contest_ai.s ContestAICmd_unk_5B +08157e08 contest_ai.s ContestAICmd_unk_5C +08157e50 contest_ai.s ContestAICmd_unk_5D +08157e98 contest_ai.s ContestAICmd_unk_5E +08157edc contest_ai.s ContestAICmd_unk_5F +08157f24 contest_ai.s ContestAICmd_unk_60 +08157f6c contest_ai.s ContestAICmd_unk_61 +08157fb4 contest_ai.s ContestAICmd_unk_62 +08157ffc contest_ai.s ContestAICmd_unk_63 +08158044 contest_ai.s ContestAICmd_unk_64 +08158088 contest_ai.s ContestAICmd_unk_65 +081580cc contest_ai.s ContestAICmd_unk_66 +08158110 contest_ai.s ContestAICmd_unk_67 +08158154 contest_ai.s ContestAICmd_unk_68 +08158190 contest_ai.s ContestAICmd_unk_69 +081581d4 contest_ai.s ContestAICmd_unk_6A +08158218 contest_ai.s ContestAICmd_unk_6B +0815825c contest_ai.s ContestAICmd_unk_6C +081582a0 contest_ai.s ContestAICmd_unk_6D +081582f4 contest_ai.s ContestAICmd_unk_6E +08158338 contest_ai.s ContestAICmd_unk_6F +0815837c contest_ai.s ContestAICmd_unk_70 +081583a8 contest_ai.s ContestAICmd_unk_71 +081583d8 contest_ai.s ContestAICmd_unk_72 +08158410 contest_ai.s ContestAICmd_unk_74 +08158444 contest_ai.s ContestAICmd_unk_73 +08158478 contest_ai.s ContestAICmd_unk_75 +081584c8 contest_ai.s ContestAICmd_unk_76 +08158518 contest_ai.s ContestAICmd_unk_77 +08158568 contest_ai.s ContestAICmd_unk_78 +081585b8 contest_ai.s ContestAICmd_unk_79 +0815860c contest_ai.s ContestAICmd_unk_7A +08158660 contest_ai.s ContestAICmd_unk_7B +081586b4 contest_ai.s ContestAICmd_unk_7C +08158708 contest_ai.s ContestAICmd_if_random +08158758 contest_ai.s ContestAICmd_unk_7E +081587a8 contest_ai.s ContestAICmd_jump +081587c8 contest_ai.s ContestAICmd_call +081587f8 contest_ai.s ContestAICmd_end +0815881c contest_ai.s AIStackPushVar +08158844 contest_ai.s AIStackPop +08158884 contest_ai.s ContestAICmd_check_user_has_exciting_move +081588e0 contest_ai.s ContestAICmd_if_user_has_exciting_move +08158928 contest_ai.s ContestAICmd_if_user_doesnt_have_exciting_move +08158970 contest_ai.s ContestAICmd_unk_85 +081589dc contest_ai.s ContestAICmd_unk_86 +08158a24 contest_ai.s ContestAICmd_if_effect_in_user_moveset +battle_anim_sound_tasks.s +08158a6c battle_anim_sound_tasks.s sub_08158A6C_jp +08158ad4 battle_anim_sound_tasks.s sub_08158AD4_jp +08158b40 battle_anim_sound_tasks.s sub_08158B40_jp +08158b94 battle_anim_sound_tasks.s sub_08158B94_jp +08158c28 battle_anim_sound_tasks.s sub_08158C28_jp +08158c44 battle_anim_sound_tasks.s sub_08158C44_jp +08158cc8 battle_anim_sound_tasks.s sub_08158CC8_jp +08158dd8 battle_anim_sound_tasks.s sub_08158DD8_jp +08158f30 battle_anim_sound_tasks.s sub_08158F30_jp +08158fb4 battle_anim_sound_tasks.s sub_08158FB4_jp +08158ff4 battle_anim_sound_tasks.s sub_08158FF4_jp +08159078 battle_anim_sound_tasks.s sub_08159078_jp +0815914c battle_anim_sound_tasks.s sub_0815914C_jp +08159180 battle_anim_sound_tasks.s sub_08159180_jp +081591b4 battle_anim_sound_tasks.s sub_081591B4_jp +0815922c battle_anim_sound_tasks.s sub_0815922C +08159244 battle_anim_sound_tasks.s sub_08159244 +battle_controller_safari.s +081592a4 battle_controller_safari.s SpriteCB_Null4 +081592a8 battle_controller_safari.s SetControllerToSafari +081592c4 battle_controller_safari.s SafariBufferRunCommand +08159314 battle_controller_safari.s HandleInputChooseAction +08159498 battle_controller_safari.s CompleteOnHealthboxSpriteCallbackDummy +081594d0 battle_controller_safari.s SafariHandlePrintSelectionString +081594e8 battle_controller_safari.s CompleteWhenChosePokeblock +08159520 battle_controller_safari.s sub_08159520 +08159560 battle_controller_safari.s CompleteOnSpecialAnimDone +0815959c battle_controller_safari.s SafariOpenPokeblockCase +081595d4 battle_controller_safari.s sub_081595D4_jp +08159610 battle_controller_safari.s SafariHandleSuccessBallThrowAnim +08159640 battle_controller_safari.s SafariBufferExecCompleted +081596b8 battle_controller_safari.s SafariHandleBallThrowAnim +081596e8 battle_controller_safari.s SafariHandleGetMonData +081596f4 battle_controller_safari.s SafariHandleGetRawMonData +08159700 battle_controller_safari.s SafariHandleSetMonData +0815970c battle_controller_safari.s SafariHandleSetRawMonData +08159718 battle_controller_safari.s SafariHandleLoadMonSprite +08159724 battle_controller_safari.s SafariHandleSwitchInAnim +08159730 battle_controller_safari.s SafariHandleReturnMonToBall +0815973c battle_controller_safari.s SafariHandleDrawTrainerPic +0815981c battle_controller_safari.s SafariHandleTrainerSlide +08159828 battle_controller_safari.s SafariHandleTrainerSlideBack +08159834 battle_controller_safari.s SafariHandleFaintAnimation +08159840 battle_controller_safari.s SafariHandlePaletteFade +0815984c battle_controller_safari.s sub_0815984C +081598a0 battle_controller_safari.s sub_081598A0 +08159900 battle_controller_safari.s SafariHandlePause +0815990c battle_controller_safari.s SafariHandleMoveAnimation +08159918 battle_controller_safari.s SafariHandlePrintString +0815996c battle_controller_safari.s sub_0815996C +08159990 battle_controller_safari.s sub_08159990 +081599d0 battle_controller_safari.s SafariHandleChooseAction +08159a38 battle_controller_safari.s SafariHandleUnknownYesNoBox +08159a44 battle_controller_safari.s SafariHandleChooseMove +08159a50 battle_controller_safari.s SafariHandleChooseItem +08159a90 battle_controller_safari.s SafariHandleChoosePokemon +08159a9c battle_controller_safari.s SafariHandleCmd23 +08159aa8 battle_controller_safari.s SafariHandleHealthBarUpdate +08159ab4 battle_controller_safari.s SafariHandleExpUpdate +08159ac0 battle_controller_safari.s SafariHandleStatusIconUpdate +08159afc battle_controller_safari.s SafariHandleStatusAnimation +08159b08 battle_controller_safari.s SafariHandleStatusXor +08159b14 battle_controller_safari.s SafariHandleDataTransfer +08159b20 battle_controller_safari.s SafariHandleDMA3Transfer +08159b2c battle_controller_safari.s SafariHandlePlayBGM +08159b38 battle_controller_safari.s SafariHandleCmd32 +08159b44 battle_controller_safari.s SafariHandleTwoReturnValues +08159b50 battle_controller_safari.s SafariHandleChosenMonReturnValue +08159b5c battle_controller_safari.s SafariHandleOneReturnValue +08159b68 battle_controller_safari.s SafariHandleOneReturnValue_Duplicate +08159b74 battle_controller_safari.s SafariHandleCmd37 +08159b80 battle_controller_safari.s SafariHandleCmd38 +08159b8c battle_controller_safari.s SafariHandleCmd39 +08159b98 battle_controller_safari.s SafariHandleCmd40 +08159ba4 battle_controller_safari.s SafariHandleHitAnimation +08159bb0 battle_controller_safari.s SafariHandleCmd42 +08159bbc battle_controller_safari.s SafariHandlePlaySE +08159c00 battle_controller_safari.s SafariHandlePlayFanfareOrBGM +08159c5c battle_controller_safari.s SafariHandleFaintingCry +08159c98 battle_controller_safari.s SafariHandleIntroSlide +08159ccc battle_controller_safari.s SafariHandleIntroTrainerBallThrow +08159d28 battle_controller_safari.s SafariHandleDrawPartyStatusSummary +08159d34 battle_controller_safari.s SafariHandleHidePartyStatusSummary +08159d40 battle_controller_safari.s SafariHandleEndBounceEffect +08159d4c battle_controller_safari.s SafariHandleSpriteInvisibility +08159d58 battle_controller_safari.s SafariHandleBattleAnimation +08159db4 battle_controller_safari.s SafariHandleLinkStandbyMsg +08159dc0 battle_controller_safari.s SafariHandleResetActionMoveSelection +08159dcc battle_controller_safari.s SafariHandleCmd55 +08159e28 battle_controller_safari.s SafariCmdEnd +fldeff_sweetscent.s +08159e2c fldeff_sweetscent.s SetUpFieldMove_SweetScent +08159e4c fldeff_sweetscent.s FieldCallback_SweetScent +08159e68 fldeff_sweetscent.s FldEff_SweetScent +08159e98 fldeff_sweetscent.s StartSweetScentFieldEffect +08159f28 fldeff_sweetscent.s TrySweetScentEncounter +08159fcc fldeff_sweetscent.s FailSweetScentEncounter +battle_anim_effects_3.s +0815a010 battle_anim_effects_3.s sub_0815A010_jp +0815a050 battle_anim_effects_3.s sub_0815A050_jp +0815a09c battle_anim_effects_3.s sub_0815A09C_jp +0815a0ec battle_anim_effects_3.s sub_0815A0EC_jp +0815a130 battle_anim_effects_3.s sub_0815A130_jp +0815a170 battle_anim_effects_3.s sub_0815A170_jp +0815a190 battle_anim_effects_3.s sub_0815A190_jp +0815a22c battle_anim_effects_3.s sub_0815A22C_jp +0815a258 battle_anim_effects_3.s sub_0815A258_jp +0815a2e8 battle_anim_effects_3.s sub_0815A2E8_jp +0815a32c battle_anim_effects_3.s sub_0815A32C_jp +0815a3d8 battle_anim_effects_3.s sub_0815A3D8_jp +0815a440 battle_anim_effects_3.s sub_0815A440_jp +0815a468 battle_anim_effects_3.s sub_0815A468_jp +0815a504 battle_anim_effects_3.s sub_0815A504_jp +0815a52c battle_anim_effects_3.s sub_0815A52C_jp +0815a600 battle_anim_effects_3.s sub_0815A600_jp +0815a678 battle_anim_effects_3.s sub_0815A678_jp +0815a6a8 battle_anim_effects_3.s sub_0815A6A8_jp +0815a6ec battle_anim_effects_3.s sub_0815A6EC_jp +0815a728 battle_anim_effects_3.s sub_0815A728_jp +0815a7e8 battle_anim_effects_3.s sub_0815A7E8_jp +0815a804 battle_anim_effects_3.s AnimTask_IsTargetPlayerSide +0815a840 battle_anim_effects_3.s AnimTask_IsHealingMove +0815a870 battle_anim_effects_3.s sub_0815A870_jp +0815a8dc battle_anim_effects_3.s sub_0815A8DC_jp +0815a9a8 battle_anim_effects_3.s sub_0815A9A8_jp +0815a9e0 battle_anim_effects_3.s sub_0815A9E0_jp +0815aa98 battle_anim_effects_3.s sub_0815AA98_jp +0815ab0c battle_anim_effects_3.s sub_0815AB0C_jp +0815ab28 battle_anim_effects_3.s sub_0815AB28_jp +0815abc8 battle_anim_effects_3.s sub_0815ABC8_jp +0815ac0c battle_anim_effects_3.s sub_0815AC0C_jp +0815ac88 battle_anim_effects_3.s sub_0815AC88_jp +0815acec battle_anim_effects_3.s sub_0815ACEC_jp +0815ae14 battle_anim_effects_3.s sub_0815AE14_jp +0815af2c battle_anim_effects_3.s sub_0815AF2C_jp +0815af90 battle_anim_effects_3.s sub_0815AF90_jp +0815b178 battle_anim_effects_3.s sub_0815B178_jp +0815b1b8 battle_anim_effects_3.s sub_0815B1B8_jp +0815b274 battle_anim_effects_3.s sub_0815B274_jp +0815b2d0 battle_anim_effects_3.s sub_0815B2D0_jp +0815b3d8 battle_anim_effects_3.s sub_0815B3D8_jp +0815b410 battle_anim_effects_3.s sub_0815B410_jp +0815b4ac battle_anim_effects_3.s AnimMiniTwinklingStar +0815b50c battle_anim_effects_3.s sub_0815B50C +0815b598 battle_anim_effects_3.s sub_0815B598_jp +0815b5f0 battle_anim_effects_3.s AnimTask_StrongFrustrationGrowAndShrink +0815b648 battle_anim_effects_3.s sub_0815B648_jp +0815b6b4 battle_anim_effects_3.s sub_0815B6B4_jp +0815b70c battle_anim_effects_3.s sub_0815B70C_jp +0815ba54 battle_anim_effects_3.s sub_0815BA54_jp +0815ba94 battle_anim_effects_3.s sub_0815BA94_jp +0815bac0 battle_anim_effects_3.s sub_0815BAC0_jp +0815bd40 battle_anim_effects_3.s sub_0815BD40_jp +0815be80 battle_anim_effects_3.s sub_0815BE80_jp +0815bf30 battle_anim_effects_3.s sub_0815BF30_jp +0815bf8c battle_anim_effects_3.s sub_0815BF8C_jp +0815bfe0 battle_anim_effects_3.s sub_0815BFE0_jp +0815c2e4 battle_anim_effects_3.s sub_0815C2E4_jp +0815c33c battle_anim_effects_3.s AnimWeakFrustrationAngerMark +0815c3b4 battle_anim_effects_3.s AnimTask_RockMonBackAndForth +0815c484 battle_anim_effects_3.s AnimTask_RockMonBackAndForthStep +0815c5ec battle_anim_effects_3.s AnimSweetScentPetal +0815c63c battle_anim_effects_3.s AnimSweetScentPetalStep +0815c6ac battle_anim_effects_3.s AnimTask_FlailMovement +0815c700 battle_anim_effects_3.s AnimTask_FlailMovementStep +0815c898 battle_anim_effects_3.s AnimPainSplitProjectile +0815c95c battle_anim_effects_3.s AnimTask_PainSplitMovement +0815cac4 battle_anim_effects_3.s AnimFlatterConfetti +0815cb70 battle_anim_effects_3.s AnimFlatterConfettiStep +0815cbd0 battle_anim_effects_3.s AnimFlatterSpotlight +0815cc48 battle_anim_effects_3.s AnimFlatterSpotlightStep +0815ccf0 battle_anim_effects_3.s AnimReversalOrb +0815cd38 battle_anim_effects_3.s AnimReversalOrbStep +0815ce14 battle_anim_effects_3.s AnimTask_RolePlaySilhouette +0815d09c battle_anim_effects_3.s AnimTask_RolePlaySilhouetteStep1 +0815d0f8 battle_anim_effects_3.s AnimTask_RolePlaySilhouetteStep2 +0815d17c battle_anim_effects_3.s AnimTask_AcidArmor +0815d2d4 battle_anim_effects_3.s AnimTask_AcidArmorStep +0815d588 battle_anim_effects_3.s AnimTask_DeepInhale +0815d5d0 battle_anim_effects_3.s AnimTask_DeepInhaleStep +0815d668 battle_anim_effects_3.s InitYawnCloudPosition +0815d6d0 battle_anim_effects_3.s UpdateYawnCloudPosition +0815d6f0 battle_anim_effects_3.s AnimYawnCloud +0815d740 battle_anim_effects_3.s AnimYawnCloudStep +0815d7ac battle_anim_effects_3.s AnimSmokeBallEscapeCloud +0815d814 battle_anim_effects_3.s sub_0815D814 +0815d95c battle_anim_effects_3.s sub_0815D95C_jp +0815dacc battle_anim_effects_3.s sub_0815DACC +0815dbe0 battle_anim_effects_3.s AnimTask_SquishAndSweatDroplets +0815dc84 battle_anim_effects_3.s AnimTask_SquishAndSweatDropletsStep +0815dd1c battle_anim_effects_3.s CreateSweatDroplets +0815ddf8 battle_anim_effects_3.s sub_0815DDF8 +0815de48 battle_anim_effects_3.s AnimTask_FacadeColorBlend +0815dea0 battle_anim_effects_3.s AnimTask_FacadeColorBlendStep +0815df08 battle_anim_effects_3.s sub_0815DF08_jp +0815df54 battle_anim_effects_3.s AnimRoarNoiseLine +0815e014 battle_anim_effects_3.s AnimRoarNoiseLineStep +0815e04c battle_anim_effects_3.s AnimTask_GlareEyeDots +0815e144 battle_anim_effects_3.s AnimTask_GlareEyeDotsStep +0815e284 battle_anim_effects_3.s GetGlareEyeDotCoords +0815e33c battle_anim_effects_3.s AnimGlareEyeDot +0815e37c battle_anim_effects_3.s AnimAssistPawprint +0815e3b4 battle_anim_effects_3.s AnimTask_BarrageBall +0815e504 battle_anim_effects_3.s AnimTask_BarrageBallStep +0815e610 battle_anim_effects_3.s AnimSmellingSaltsHand +0815e6bc battle_anim_effects_3.s sub_0815E6BC +0815e778 battle_anim_effects_3.s AnimTask_SmellingSaltsSquish +0815e7d0 battle_anim_effects_3.s AnimTask_SmellingSaltsSquishStep +0815e88c battle_anim_effects_3.s AnimSmellingSaltExclamation +0815e8f4 battle_anim_effects_3.s AnimSmellingSaltExclamationStep +0815e94c battle_anim_effects_3.s AnimHelpingHandClap +0815e998 battle_anim_effects_3.s AnimHelpingHandClapStep +0815eb80 battle_anim_effects_3.s AnimTask_HelpingHandAttackerMovement +0815ec1c battle_anim_effects_3.s AnimTask_HelpingHandAttackerMovementStep +0815edbc battle_anim_effects_3.s AnimForesightMagnifyingGlass +0815ee40 battle_anim_effects_3.s AnimForesightMagnifyingGlassStep +0815f044 battle_anim_effects_3.s AnimMeteorMashStarStep +0815f0c4 battle_anim_effects_3.s AnimMeteorMashStar +0815f144 battle_anim_effects_3.s AnimTask_MonToSubstitute +0815f268 battle_anim_effects_3.s AnimTask_MonToSubstituteDoll +0815f3c4 battle_anim_effects_3.s AnimBlockX +0815f428 battle_anim_effects_3.s AnimBlockXStep +0815f558 battle_anim_effects_3.s AnimTask_OdorSleuthMovement +0815f6d4 battle_anim_effects_3.s AnimTask_OdorSleuthMovementWaitFinish +0815f6fc battle_anim_effects_3.s MoveOdorSleuthClone +0815f7d8 battle_anim_effects_3.s AnimTask_GetReturnPowerLevel +0815f82c battle_anim_effects_3.s AnimTask_SnatchOpposingMonMove +0815fdb8 battle_anim_effects_3.s sub_0815FDB8_jp +0815fefc battle_anim_effects_3.s AnimTask_SnatchPartnerMove +0816009c battle_anim_effects_3.s AnimTask_TeeterDanceMovement +08160114 battle_anim_effects_3.s AnimTask_TeeterDanceMovementStep +08160218 battle_anim_effects_3.s AnimKnockOffStrikeStep +08160270 battle_anim_effects_3.s AnimKnockOffStrike +081602e0 battle_anim_effects_3.s AnimRecycle +0816032c battle_anim_effects_3.s AnimRecycleStep +08160428 battle_anim_effects_3.s AnimTask_GetWeather +0816047c battle_anim_effects_3.s AnimTask_SlackOffSquish +081604c4 battle_anim_effects_3.s AnimTask_SlackOffSquishStep +move_relearner.s +0816055c move_relearner.s VBlankCB_MoveRelearner +08160570 move_relearner.s TeachMoveRelearnerMove +0816059c move_relearner.s Task_WaitForFadeOut +081605d8 move_relearner.s CB2_InitLearnMove +08160678 move_relearner.s CB2_InitLearnMoveReturnFromSelectMove +08160724 move_relearner.s InitMoveRelearnerBackgroundLayers +08160764 move_relearner.s CB2_MoveRelearnerMain +08160784 move_relearner.s FormatAndPrintText +081607a0 move_relearner.s DoMoveRelearnerMain +08160dc8 move_relearner.s FreeMoveRelearnerResources +08160e08 move_relearner.s HideHeartSpritesAndShowTeachMoveText +08160e70 move_relearner.s sub_08160E70 +08160f74 move_relearner.s GetCurrentSelectedMove +08160f94 move_relearner.s ShowTeachMoveText +08160fd0 move_relearner.s CreateUISprites +081610c4 move_relearner.s AddScrollArrows +0816114c move_relearner.s RemoveScrollArrows +08161198 move_relearner.s CreateLearnableMovesList +08161280 move_relearner.s MoveRelearnerShowHideHearts +fldeff_softboiled.s +0816140c fldeff_softboiled.s SetUpFieldMove_SoftBoiled +08161464 fldeff_softboiled.s sub_08161464_jp +081614ac fldeff_softboiled.s sub_081614AC_jp +08161570 fldeff_softboiled.s sub_08161570_jp +081615c4 fldeff_softboiled.s sub_081615C4_jp +08161628 fldeff_softboiled.s sub_08161628_jp +08161688 fldeff_softboiled.s sub_08161688_jp +081616bc fldeff_softboiled.s sub_081616BC_jp +decoration_inventory.s +081616f8 decoration_inventory.s SetDecorationInventoriesPointers +08161784 decoration_inventory.s ClearDecorationInventory +081617b8 decoration_inventory.s ClearDecorationInventories +081617d4 decoration_inventory.s GetFirstEmptyDecorSlot +0816181c decoration_inventory.s CheckHasDecoration +08161868 decoration_inventory.s DecorationAdd +081618b4 decoration_inventory.s DecorationCheckSpace +081618ec decoration_inventory.s DecorationRemove +0816194c decoration_inventory.s CondenseDecorationsInCategory +081619e4 decoration_inventory.s GetNumOwnedDecorationsInCategory +08161a24 decoration_inventory.s GetNumOwnedDecorations +roamer.s +08161a48 roamer.s ClearRoamerData +08161a74 roamer.s ClearRoamerLocationData +08161aa8 roamer.s CreateInitialRoamerMon +08161bd0 roamer.s InitRoamer +08161bec roamer.s UpdateLocationHistoryForRoamer +08161c14 roamer.s RoamerMoveToOtherLocationSet +08161c68 roamer.s RoamerMove +08161cfc roamer.s IsRoamerAt +08161d3c roamer.s CreateRoamerMonInstance +08161df0 roamer.s TryStartRoamerEncounter +08161e2c roamer.s UpdateRoamerHPStatus +08161e60 roamer.s SetRoamerInactive +08161e78 roamer.s GetRoamerLocation +battle_tower.s +08161e88 battle_tower.s sub_08161E88_jp +08161e9c battle_tower.s nullsub_61 +08161ea8 battle_tower.s sub_08161EA8_jp +08161f68 battle_tower.s sub_08161F68_jp +08162008 battle_tower.s sub_08162008_jp +081620d4 battle_tower.s sub_081620D4 +08162140 battle_tower.s ChooseSpecialBattleTowerTrainer +08162304 battle_tower.s ChooseNextBattleTowerTrainer +0816245c battle_tower.s sub_0816245C_jp +081624c8 battle_tower.s sub_081624C8_jp +08162528 battle_tower.s SetBattleFacilityTrainerGfxId +081626a0 battle_tower.s SetEReaderTrainerGfxId +081626b0 battle_tower.s GetBattleFacilityTrainerGfxId +081627a4 battle_tower.s PutNewBattleTowerRecord +081629a4 battle_tower.s GetFrontierTrainerFrontSpriteId +08162adc battle_tower.s GetFrontierOpponentClass +08162c38 battle_tower.s GetFrontierTrainerFacilityClass +08162d24 battle_tower.s GetFrontierTrainerName +08162e90 battle_tower.s IsFrontierTrainerFemale +08162f68 battle_tower.s FillFrontierTrainerParty +08162f8c battle_tower.s FillFrontierTrainersParties +08162fc0 battle_tower.s FillTentTrainerParty +08162fe4 battle_tower.s FillTrainerParty +08163364 battle_tower.s Unused_CreateApprenticeMons +08163444 battle_tower.s RandomizeFacilityTrainerMonSet +081634b0 battle_tower.s FillFactoryTrainerParty +081634f4 battle_tower.s FillFactoryFrontierTrainerParty +081636bc battle_tower.s FillFactoryTentTrainerParty +081637cc battle_tower.s FrontierSpeechToString +0816383c battle_tower.s sub_0816383C_jp +081638d4 battle_tower.s HandleSpecialTrainerBattleEnd +081639b4 battle_tower.s Task_StartBattleAfterTransition +081639ec battle_tower.s DoSpecialTrainerBattle +08163db8 battle_tower.s SaveCurrentWinStreak +08163e0c battle_tower.s sub_08163E0C +08163f68 battle_tower.s SaveBattleTowerProgress +08164000 battle_tower.s SpriteCB_Null6 +08164004 battle_tower.s GetEreaderTrainerFrontSpriteId +08164008 battle_tower.s sub_08164008_jp +081640b0 battle_tower.s sub_081640B0_jp +081641c8 battle_tower.s sub_081641C8_jp +081645e4 battle_tower.s sub_081645E4_jp +08164718 battle_tower.s sub_08164718_jp +08164a54 battle_tower.s sub_08164A54_jp +08164cac battle_tower.s sub_08164CAC_jp +08164cc4 battle_tower.s sub_08164CC4_jp +08164ce4 battle_tower.s sub_08164CE4_jp +08164da4 battle_tower.s ValidateBattleTowerRecordChecksums +08164e3c battle_tower.s CalcEmeraldBattleTowerChecksum +08164e60 battle_tower.s CalcRubyBattleTowerChecksum +08164e84 battle_tower.s ClearBattleTowerRecord +08164e98 battle_tower.s GetCurrentBattleTowerWinStreak +08164ec8 battle_tower.s AwardBattleTowerRibbons +08164fd8 battle_tower.s FillEReaderTrainerWithPlayerData +081650c0 battle_tower.s GetMonCountForBattleMode +081650e0 battle_tower.s GetEreaderTrainerClassId +08165100 battle_tower.s GetEreaderTrainerName +08165130 battle_tower.s ValidateEReaderTrainer +081651a4 battle_tower.s SetEReaderTrainerChecksum +081651c8 battle_tower.s ClearEReaderTrainer +081651dc battle_tower.s CopyEReaderTrainerGreeting +081651f8 battle_tower.s CopyEReaderTrainerFarewellMessage +08165248 battle_tower.s sub_08165248_jp +08165280 battle_tower.s FillPartnerParty +081656c8 battle_tower.s RubyBattleTowerRecordToEmerald +08165820 battle_tower.s EmeraldBattleTowerRecordToRuby +08165924 battle_tower.s CalcApprenticeChecksum +08165944 battle_tower.s ClearApprentice +0816595c battle_tower.s ValidateApprenticesChecksums +081659c4 battle_tower.s GetBattleTowerTrainerLanguage +08165a4c battle_tower.s SetFacilityPtrsGetLevel +08165a9c battle_tower.s GetFrontierEnemyMonLevel +08165ac0 battle_tower.s GetHighestLevelInPlayerParty +08165b14 battle_tower.s GetFrontierTrainerFixedIvs +08165b4c battle_tower.s sub_08165B4C_jp +08165b84 battle_tower.s SetTentPtrsGetLevel +08165c24 battle_tower.s sub_08165C24 +08165cb0 battle_tower.s FillTentTrainerParty_ +08165ec4 battle_tower.s FacilityClassToGraphicsId +08165f30 battle_tower.s ValidateBattleTowerRecord +08165f94 battle_tower.s sub_08165F94 +use_pokeblock.s +08166010 use_pokeblock.s ChooseMonToGivePokeblock +08166058 use_pokeblock.s CB2_ReturnAndChooseMonToGivePokeblock +081660cc use_pokeblock.s sub_081660CC_jp +081660dc use_pokeblock.s sub_081660DC_jp +08166110 use_pokeblock.s sub_08166110_jp +08166128 use_pokeblock.s sub_08166128_jp +08166138 use_pokeblock.s sub_08166138_jp +0816614c use_pokeblock.s sub_0816614C_jp +08166178 use_pokeblock.s sub_08166178_jp +0816618c use_pokeblock.s sub_0816618C_jp +08166370 use_pokeblock.s sub_08166370_jp +08166440 use_pokeblock.s sub_08166440_jp +08166628 use_pokeblock.s sub_08166628_jp +08166704 use_pokeblock.s sub_08166704_jp +08166840 use_pokeblock.s sub_08166840_jp +081669f8 use_pokeblock.s sub_081669F8_jp +08166b50 use_pokeblock.s sub_08166B50_jp +08166bf0 use_pokeblock.s sub_08166BF0_jp +08166c30 use_pokeblock.s sub_08166C30_jp +08166ce8 use_pokeblock.s sub_08166CE8_jp +08166d5c use_pokeblock.s sub_08166D5C_jp +08166d98 use_pokeblock.s sub_08166D98_jp +08166db4 use_pokeblock.s Pokeblock_MenuWindowTextPrint +08166dd8 use_pokeblock.s Pokeblock_BufferEnhancedStatText +08166e28 use_pokeblock.s Pokeblock_GetMonContestStats +08166e58 use_pokeblock.s sub_08166E58 +08166f08 use_pokeblock.s sub_08166F08_jp +08166f88 use_pokeblock.s sub_08166F88 +0816706c use_pokeblock.s IsSheenMaxed +081670a8 use_pokeblock.s sub_081670A8_jp +081670e8 use_pokeblock.s sub_081670E8_jp +08167128 use_pokeblock.s sub_08167128_jp +0816713c use_pokeblock.s sub_0816713C_jp +081671e0 use_pokeblock.s sub_081671E0_jp +08167224 use_pokeblock.s sub_08167224_jp +081672c0 use_pokeblock.s sub_081672C0_jp +08167340 use_pokeblock.s sub_08167340_jp +0816740c use_pokeblock.s sub_0816740C_jp +08167564 use_pokeblock.s sub_08167564_jp +08167734 use_pokeblock.s sub_08167734_jp +081679a4 use_pokeblock.s sub_081679A4_jp +08167aa8 use_pokeblock.s sub_08167AA8_jp +08167cac use_pokeblock.s sub_08167CAC_jp +08167dac use_pokeblock.s sub_08167DAC_jp +08167e50 use_pokeblock.s sub_08167E50_jp +08167f70 use_pokeblock.s sub_08167F70_jp +08167f88 use_pokeblock.s sub_08167F88_jp +08167fbc use_pokeblock.s sub_08167FBC_jp +08167ffc use_pokeblock.s sub_08167FFC_jp +08168050 use_pokeblock.s sub_08168050_jp +0816809c use_pokeblock.s sub_0816809C_jp +08168130 use_pokeblock.s sub_08168130_jp +0816817c use_pokeblock.s sub_0816817C_jp +battle_controller_wally.s +081681bc battle_controller_wally.s WallyCmdEnd +081681c0 battle_controller_wally.s SetControllerToWally +081681fc battle_controller_wally.s WallyBufferRunCommand +0816824c battle_controller_wally.s WallyHandleActions +08168374 battle_controller_wally.s CompleteOnChosenItem +081683ac battle_controller_wally.s WallyHandleChosenMonReturnValue +081683c4 battle_controller_wally.s CompleteOnFinishedAnimation +081683dc battle_controller_wally.s OpenBagAfterPaletteFade +08168418 battle_controller_wally.s WallyHandleCmd39 +08168454 battle_controller_wally.s sub_08168454 +08168620 battle_controller_wally.s sub_08168620_jp +0816873c battle_controller_wally.s sub_0816873C_jp +081687ac battle_controller_wally.s WallyHandleGetRawMonData +08168828 battle_controller_wally.s sub_08168828_jp +08168898 battle_controller_wally.s WallyHandleOneReturnValue +081688d0 battle_controller_wally.s sub_081688D0_jp +08168900 battle_controller_wally.s WallyBufferExecCompleted +08168978 battle_controller_wally.s sub_08168978_jp +081689a8 battle_controller_wally.s WallyHandleGetMonData +08168a1c battle_controller_wally.s CopyWallyMonData +081691c8 battle_controller_wally.s sub_081691C8 +081691d4 battle_controller_wally.s WallyHandleSetMonData +0816922c battle_controller_wally.s SetWallyMonData +08169c28 battle_controller_wally.s WallyHandleSetRawMonData +08169c34 battle_controller_wally.s WallyHandleLoadMonSprite +08169c40 battle_controller_wally.s WallyHandleSwitchInAnim +08169c4c battle_controller_wally.s WallyHandleReturnMonToBall +08169cd0 battle_controller_wally.s WallyHandleDrawTrainerPic +08169d9c battle_controller_wally.s WallyHandleTrainerSlide +08169e68 battle_controller_wally.s WallyHandleTrainerSlideBack +08169e74 battle_controller_wally.s WallyHandleFaintAnimation +08169e80 battle_controller_wally.s WallyHandlePaletteFade +08169e8c battle_controller_wally.s WallyHandleSuccessBallThrowAnim +08169ee0 battle_controller_wally.s WallyHandleBallThrowAnim +08169f40 battle_controller_wally.s WallyHandlePause +08169f4c battle_controller_wally.s WallyHandleMoveAnimation +0816a074 battle_controller_wally.s WallyDoMoveAnimation +0816a1c0 battle_controller_wally.s WallyHandlePrintString +0816a214 battle_controller_wally.s WallyHandlePrintSelectionString +0816a238 battle_controller_wally.s HandleChooseActionAfterDma3 +0816a278 battle_controller_wally.s WallyHandleChooseAction +0816a2e0 battle_controller_wally.s WallyHandleUnknownYesNoBox +0816a2ec battle_controller_wally.s WallyHandleChooseMove +0816a384 battle_controller_wally.s WallyHandleChooseItem +0816a3c4 battle_controller_wally.s WallyHandleChoosePokemon +0816a3d0 battle_controller_wally.s WallyHandleCmd23 +0816a3dc battle_controller_wally.s WallyHandleHealthBarUpdate +0816a4dc battle_controller_wally.s WallyHandleExpUpdate +0816a4e8 battle_controller_wally.s WallyHandleStatusIconUpdate +0816a4f4 battle_controller_wally.s WallyHandleStatusAnimation +0816a500 battle_controller_wally.s WallyHandleStatusXor +0816a50c battle_controller_wally.s WallyHandleDataTransfer +0816a518 battle_controller_wally.s WallyHandleDMA3Transfer +0816a524 battle_controller_wally.s WallyHandlePlayBGM +0816a530 battle_controller_wally.s WallyHandleCmd32 +0816a53c battle_controller_wally.s WallyHandleTwoReturnValues +0816a548 battle_controller_wally.s sub_0816A548 +0816a554 battle_controller_wally.s sub_0816A554 +0816a560 battle_controller_wally.s WallyHandleOneReturnValue_Duplicate +0816a56c battle_controller_wally.s WallyHandleCmd37 +0816a578 battle_controller_wally.s WallyHandleCmd38 +0816a584 battle_controller_wally.s sub_0816A584 +0816a590 battle_controller_wally.s WallyHandleCmd40 +0816a59c battle_controller_wally.s WallyHandleHitAnimation +0816a60c battle_controller_wally.s WallyHandleCmd42 +0816a618 battle_controller_wally.s WallyHandlePlaySE +0816a648 battle_controller_wally.s WallyHandlePlayFanfareOrBGM +0816a6a4 battle_controller_wally.s WallyHandleFaintingCry +0816a6e0 battle_controller_wally.s WallyHandleIntroSlide +0816a714 battle_controller_wally.s WallyHandleIntroTrainerBallThrow +0816a888 battle_controller_wally.s sub_0816A888 +0816aa0c battle_controller_wally.s sub_0816AA0C +0816aa80 battle_controller_wally.s WallyHandleDrawPartyStatusSummary +0816ab04 battle_controller_wally.s WallyHandleHidePartyStatusSummary +0816ab10 battle_controller_wally.s WallyHandleEndBounceEffect +0816ab1c battle_controller_wally.s WallyHandleSpriteInvisibility +0816ab28 battle_controller_wally.s WallyHandleBattleAnimation +0816ab84 battle_controller_wally.s WallyHandleLinkStandbyMsg +0816ab90 battle_controller_wally.s WallyHandleResetActionMoveSelection +0816ab9c battle_controller_wally.s WallyHandleCmd55 +0816abf8 battle_controller_wally.s SpriteCB_Null7 +player_pc.s +0816abfc player_pc.s NewGameInitPCItems +0816ac60 player_pc.s BedroomPC +0816aca0 player_pc.s PlayerPC +0816ace0 player_pc.s InitPlayerPCMenu +0816adb0 player_pc.s PlayerPCProcessMenuInput +0816ae78 player_pc.s ReshowPlayerPC +0816ae94 player_pc.s PlayerPC_ItemStorage +0816aec0 player_pc.s PlayerPC_Mailbox +0816af50 player_pc.s PlayerPC_Decoration +0816af60 player_pc.s PlayerPC_TurnOff +0816afa8 player_pc.s InitItemStorageMenu +0816b040 player_pc.s ItemStorageMenuPrint +0816b06c player_pc.s ItemStorageMenuProcessInput +0816b0ec player_pc.s ItemStorage_Deposit +0816b114 player_pc.s Task_ItemStorage_Deposit +0816b140 player_pc.s sub_0816B140_jp +0816b160 player_pc.s Mailbox_DoRedrawMailboxMenuAfterReturn +0816b18c player_pc.s ItemStorage_HandleReturnToProcessInput +0816b1bc player_pc.s ItemStorage_Withdraw +0816b208 player_pc.s ItemStorage_Toss +0816b254 player_pc.s ItemStorage_WithdrawToss_Helper +0816b2c8 player_pc.s ItemStorage_Exit +0816b2e4 player_pc.s ItemStorage_SetItemAndMailCount +0816b300 player_pc.s sub_0816B300_jp +0816b334 player_pc.s GetMailboxMailCount +0816b370 player_pc.s Mailbox_UpdateMailList +0816b41c player_pc.s Mailbox_DrawMailboxMenu +0816b488 player_pc.s Mailbox_ProcessInput +0816b544 player_pc.s Mailbox_PrintWhatToDoWithPlayerMailText +0816b5a4 player_pc.s Mailbox_ReturnToPlayerPC +0816b5e8 player_pc.s Mailbox_PrintMailOptions +0816b66c player_pc.s Mailbox_MailOptionsProcessInput +0816b6b8 player_pc.s Mailbox_DoMailRead +0816b6e4 player_pc.s Mailbox_FadeAndReadMail +0816b740 player_pc.s Mailbox_ReturnToFieldFromReadMail +0816b760 player_pc.s pal_fill_for_maplights_or_black +0816b7a4 player_pc.s Mailbox_HandleReturnToProcessInput +0816b7d4 player_pc.s Mailbox_MoveToBag +0816b7f0 player_pc.s Mailbox_DrawYesNoBeforeMove +0816b818 player_pc.s Mailbox_MoveToBagYesNoPrompt +0816b858 player_pc.s Mailbox_DoMailMoveToBag +0816b8ec player_pc.s Mailbox_CancelMoveToBag +0816b8fc player_pc.s Mailbox_Give +0816b938 player_pc.s Mailbox_DoGiveMailPokeMenu +0816b968 player_pc.s Mailbox_ReturnToMailListAfterDeposit +0816b988 player_pc.s Mailbox_UpdateMailListAfterDeposit +0816b9f8 player_pc.s Mailbox_NoPokemonForMail +0816ba14 player_pc.s Mailbox_Cancel +0816ba54 player_pc.s sub_0816BA54_jp +0816ba98 player_pc.s sub_0816BA98_jp +0816babc player_pc.s sub_0816BABC_jp +0816bb04 player_pc.s sub_0816BB04_jp +0816bb44 player_pc.s ItemStorage_RefreshListMenu +0816bc08 player_pc.s CopyItemName_PlayerPC +0816bc1c player_pc.s ItemStorage_MoveCursor +0816bc84 player_pc.s fish4_goto_x5_or_x6 +0816bd24 player_pc.s sub_0816BD24_jp +0816bd94 player_pc.s ItemStorage_StartScrollIndicator +0816bdd0 player_pc.s ItemStorage_RemoveScrollIndicator +0816bdec player_pc.s sub_0816BDEC +0816be14 player_pc.s sub_0816BE14_jp +0816be94 player_pc.s sub_0816BE94_jp +0816befc player_pc.s sub_0816BEFC_jp +0816bf44 player_pc.s sub_0816BF44_jp +0816bf74 player_pc.s sub_0816BF74_jp +0816bf8c player_pc.s ItemStorage_ProcessWithdrawTossInput +0816c070 player_pc.s ItemStorage_GetItemPcResponse +0816c108 player_pc.s ItemStorage_PrintItemPcResponse +0816c154 player_pc.s ItemStorage_ProcessInput +0816c1ec player_pc.s ItemStorage_GoBackToPlayerPCMenu_InitStorage +0816c268 player_pc.s ItemStorage_ItemSwapChoosePrompt +0816c314 player_pc.s sub_0816C314_jp +0816c3b8 player_pc.s ItemStorage_DoItemSwap +0816c4a8 player_pc.s sub_0816C4A8_jp +0816c4d4 player_pc.s sub_0816C4D4_jp +0816c534 player_pc.s ItemStorage_DoItemAction +0816c630 player_pc.s ItemStorage_HandleQuantityRolling +0816c70c player_pc.s ItemStorage_DoItemWithdraw +0816c7c8 player_pc.s ItemStorage_DoItemToss +0816c8a4 player_pc.s ItemStorage_ResumeInputFromYesToss +0816c8d8 player_pc.s ItemStorage_ResumeInputFromNoToss +0816c914 player_pc.s ItemStorage_HandleRemoveItem +0816c984 player_pc.s ItemStorage_WaitPressHandleResumeProcessInput +0816c9d0 player_pc.s ItemStorage_StartScrollIndicatorAndProcessInput +intro.s +0816c9f8 intro.s VBlankCB_Intro +0816ca10 intro.s MainCB2_Intro +0816ca64 intro.s MainCB2_EndIntro +0816ca80 intro.s LoadCopyrightGraphics +0816cac8 intro.s SerialCB_CopyrightScreen +0816cad8 intro.s SetUpCopyrightScreen +0816cc90 intro.s CB2_InitCopyrightScreenAfterBootup +0816ccf0 intro.s CB2_InitCopyrightScreenAfterTitleScreen +0816ccfc intro.s Task_IntroLoadPart1Graphics +0816cf10 intro.s Task_IntroFadeIn +0816cf74 intro.s Task_IntroWaterDrops +0816d084 intro.s Task_IntroWaterDrops_3 +0816d11c intro.s sub_0816D11C_jp +0816d138 intro.s Task_IntroScrollDownAndShowFlygon +0816d23c intro.s Task_IntroWaitToSetupPart3 +0816d270 intro.s Task_IntroLoadPart2Graphics +0816d2c8 intro.s Task_IntroStartBikeRide +0816d434 intro.s Task_IntroHandleBikeAndFlygonMovement +0816d5cc intro.s Task_IntroWaitToSetupPart2 +0816d600 intro.s sub_0816D600_jp +0816d7a4 intro.s sub_0816D7A4_jp +0816d8cc intro.s sub_0816D8CC +0816d990 intro.s Task_IntroLoadPart3Graphics +0816da48 intro.s Task_IntroSpinAndZoomPokeball +0816dae0 intro.s Task_IntroWaitToSetupPart3LegendsFight +0816db0c intro.s Task_IntroLoadGroudonScene +0816dbbc intro.s Task_IntroLoadPart3Graphics1 +0816dc60 intro.s Task_IntroLoadPart3Graphics2 +0816dcb4 intro.s Task_IntroLoadPart3Graphics3 +0816dcd0 intro.s Task_IntroLoadPart3Graphics4 +0816dd10 intro.s Task_IntroGroudonScene +0816df74 intro.s CreateGroudonRockSprites +0816dfdc intro.s SpriteCB_IntroGroudonRocks +0816e084 intro.s Task_IntroLoadKyogreScene +0816e13c intro.s Task_IntroKyogreScene +0816e4b8 intro.s CreateKyogreBubbleSprites_0 +0816e530 intro.s CreateKyogreBubbleSprites_1 +0816e598 intro.s SpriteCB_IntroKyogreBubbles +0816e66c intro.s Task_IntroLoadClouds1 +0816e738 intro.s Task_IntroLoadClouds2 +0816e77c intro.s Task_IntroLoadClouds3 +0816e7c0 intro.s Task_IntroCloudScene +0816e89c intro.s Task_IntroLoadRayquazaLightningScene +0816e928 intro.s Task_IntroRayquazaLightningScene +0816ea50 intro.s SpriteCB_IntroRayquazaLightning +0816eb04 intro.s Task_IntroLoadRayquazaGlowScene +0816eb98 intro.s Task_IntroRayquazaGlowScene_0 +0816ec74 intro.s Task_EndIntroMovie +0816ec8c intro.s Task_IntroRayquazaGlowScene_1 +0816eea4 intro.s intro_reset_and_hide_bgs +0816ef0c intro.s Task_IntroWaterDrops_1 +0816efc4 intro.s Task_IntroWaterDrops_2 +0816f08c intro.s PanFadeAndZoomScreen +0816f0fc intro.s sub_0816F0FC +0816f188 intro.s sub_0816F188_jp +0816f238 intro.s sub_0816F238_jp +0816f250 intro.s sub_0816F250_jp +0816f398 intro.s sub_0816F398_jp +0816f444 intro.s sub_0816F444_jp +0816f4b4 intro.s SpriteCB_WaterDropFall_2 +0816f534 intro.s SpriteCB_WaterDropFall +0816f5b4 intro.s CreateWaterDrop +0816f7b8 intro.s SpriteCB_IntroGraphicsBicycle +0816f894 intro.s SpriteCB_IntroGraphicsFlygon +0816f91c intro.s sub_0816F91C_jp +0816fb3c intro.s sub_0816FB3C +0816fbb0 intro.s CreatePart1Animations +0816fcd4 intro.s sub_0816FCD4 +0816fe38 intro.s SpriteCB_IntroRayquazaHyperbeam +reset_save_heap.s +0816fef0 reset_save_heap.s sub_0816FEF0_jp +field_region_map.s +0816ff84 field_region_map.s FieldInitRegionMap +0816ffbc field_region_map.s MCB2_InitRegionMapRegisters +08170058 field_region_map.s VBCB_FieldUpdateRegionMap +0817006c field_region_map.s MCB2_FieldUpdateRegionMap +08170088 field_region_map.s FieldUpdateRegionMap +08170214 field_region_map.s PrintRegionMapSecName +battle_anim_special.s +0817025c battle_anim_special.s unref_sub_8170478 +08170444 battle_anim_special.s sub_08170444_jp +08170618 battle_anim_special.s sub_08170618_jp +08170704 battle_anim_special.s sub_08170704_jp +08170730 battle_anim_special.s sub_08170730_jp +081707d0 battle_anim_special.s sub_081707D0_jp +081707f0 battle_anim_special.s sub_081707F0_jp +0817081c battle_anim_special.s sub_0817081C_jp +081708e8 battle_anim_special.s sub_081708E8_jp +08170994 battle_anim_special.s sub_08170994_jp +08170ae0 battle_anim_special.s sub_08170AE0_jp +08170b08 battle_anim_special.s sub_08170B08_jp +08170b30 battle_anim_special.s AnimTask_IsBallBlockedByTrainer +08170b68 battle_anim_special.s ItemIdToBallId +08170be8 battle_anim_special.s sub_08170BE8 +08170cd4 battle_anim_special.s sub_08170CD4_jp +08170d10 battle_anim_special.s sub_08170D10_jp +08170e14 battle_anim_special.s sub_08170E14_jp +08170e8c battle_anim_special.s sub_08170E8C_jp +08170ee8 battle_anim_special.s sub_08170EE8_jp +08170f18 battle_anim_special.s sub_08170F18_jp +08170fcc battle_anim_special.s sub_08170FCC_jp +08171024 battle_anim_special.s sub_08171024_jp +08171170 battle_anim_special.s sub_08171170_jp +081711b4 battle_anim_special.s sub_081711B4_jp +081712b8 battle_anim_special.s sub_081712B8_jp +08171304 battle_anim_special.s sub_08171304_jp +08171598 battle_anim_special.s sub_08171598_jp +081715bc battle_anim_special.s sub_081715BC_jp +081715dc battle_anim_special.s sub_081715DC_jp +081716bc battle_anim_special.s sub_081716BC_jp +081717a4 battle_anim_special.s sub_081717A4_jp +081717d0 battle_anim_special.s sub_081717D0_jp +08171890 battle_anim_special.s sub_08171890_jp +081718c8 battle_anim_special.s sub_081718C8_jp +08171990 battle_anim_special.s sub_08171990_jp +08171a90 battle_anim_special.s sub_08171A90_jp +08171acc battle_anim_special.s sub_08171ACC_jp +08171b44 battle_anim_special.s sub_08171B44_jp +08171b7c battle_anim_special.s AnimateBallOpenParticles +08171c04 battle_anim_special.s sub_08171C04 +08171c34 battle_anim_special.s PokeBallOpenParticleAnimation +08171d4c battle_anim_special.s PokeBallOpenParticleAnimation_Step1 +08171d6c battle_anim_special.s PokeBallOpenParticleAnimation_Step2 +08171da8 battle_anim_special.s TimerBallOpenParticleAnimation +08171eac battle_anim_special.s DiveBallOpenParticleAnimation +08171fb0 battle_anim_special.s SafariBallOpenParticleAnimation +081720b0 battle_anim_special.s UltraBallOpenParticleAnimation +081721b8 battle_anim_special.s GreatBallOpenParticleAnimation +081722ec battle_anim_special.s FanOutBallOpenParticles_Step1 +08172344 battle_anim_special.s RepeatBallOpenParticleAnimation +08172440 battle_anim_special.s RepeatBallOpenParticleAnimation_Step1 +081724a0 battle_anim_special.s MasterBallOpenParticleAnimation +081725cc battle_anim_special.s PremierBallOpenParticleAnimation +081726c4 battle_anim_special.s PremierBallOpenParticleAnimation_Step1 +08172728 battle_anim_special.s DestroyBallOpenAnimationParticle +081727cc battle_anim_special.s LaunchBallFadeMonTask +08172894 battle_anim_special.s sub_08172894_jp +08172924 battle_anim_special.s sub_08172924_jp +08172974 battle_anim_special.s sub_08172974_jp +081729d4 battle_anim_special.s sub_081729D4_jp +08172b7c battle_anim_special.s sub_08172B7C +08172c80 battle_anim_special.s AnimTask_IsAttackerBehindSubstitute +08172cb4 battle_anim_special.s AnimTask_TargetToEffectBattler +08172cd4 battle_anim_special.s sub_08172CD4_jp +08172dd0 battle_anim_special.s sub_08172DD0_jp +08172f94 battle_anim_special.s sub_08172F94_jp +08172fe0 battle_anim_special.s sub_08172FE0_jp +08173034 battle_anim_special.s sub_08173034_jp +08173094 battle_anim_special.s AnimTask_LoadPokeblockGfx +081730c8 battle_anim_special.s AnimTask_FreePokeblockGfx +081730f0 battle_anim_special.s sub_081730F0_jp +08173180 battle_anim_special.s sub_08173180_jp +081731b8 battle_anim_special.s sub_081731B8_jp +081731e4 battle_anim_special.s sub_081731E4_jp +08173240 battle_anim_special.s sub_08173240_jp +08173298 battle_anim_special.s AnimTask_GetTrappedMoveAnimId +08173300 battle_anim_special.s AnimTask_GetBattlersFromArg +hall_of_fame.s +08173330 hall_of_fame.s VBlankCB_HallOfFame +08173344 hall_of_fame.s CB2_HallOfFame +08173360 hall_of_fame.s InitHallOfFameScreen +08173478 hall_of_fame.s CB2_DoHallOfFameScreen +081734bc hall_of_fame.s CB2_DoHallOfFameScreenDontSaveData +08173500 hall_of_fame.s Task_Hof_InitMonData +081736a0 hall_of_fame.s Task_Hof_InitTeamSaveData +081737a8 hall_of_fame.s Task_Hof_TrySaveData +08173840 hall_of_fame.s Task_Hof_WaitForFrames +08173870 hall_of_fame.s Task_Hof_SetMonDisplayTask +0817388c hall_of_fame.s Task_Hof_DisplayMon +081739a4 hall_of_fame.s Task_Hof_PrintMonInfoAfterAnimating +08173a18 hall_of_fame.s Task_Hof_TryDisplayAnotherMon +08173b08 hall_of_fame.s Task_Hof_PaletteFadeAndPrintWelcomeText +08173ba4 hall_of_fame.s sub_08173BA4 +08173c88 hall_of_fame.s sub_08173C88_jp +08173cc8 hall_of_fame.s sub_08173CC8_jp +08173d68 hall_of_fame.s Task_Hof_WaitAndPrintPlayerInfo +08173e0c hall_of_fame.s Task_Hof_ExitOnKeyPressed +08173e44 hall_of_fame.s Task_Hof_HandlePaletteOnExit +08173e94 hall_of_fame.s Task_Hof_HandleExit +08173f68 hall_of_fame.s SetCallback2AfterHallOfFameDisplay +08173f78 hall_of_fame.s CB2_DoHallOfFamePC +08174108 hall_of_fame.s Task_HofPC_CopySaveData +081741d0 hall_of_fame.s Task_HofPC_DrawSpritesPrintText +081743e0 hall_of_fame.s Task_HofPC_PrintMonInfo +0817450c hall_of_fame.s Task_HofPC_HandleInput +0817467c hall_of_fame.s Task_HofPC_HandlePaletteOnExit +081746d4 hall_of_fame.s Task_HofPC_HandleExit +08174784 hall_of_fame.s Task_HofPC_PrintDataIsCorrupted +081747ec hall_of_fame.s Task_HofPC_ExitOnButtonPress +0817481c hall_of_fame.s HallOfFame_PrintWelcomeText +0817487c hall_of_fame.s HallOfFame_PrintMonInfo +08174b74 hall_of_fame.s HallOfFame_PrintPlayerInfo +08174dc8 hall_of_fame.s ClearVramOamPltt_LoadHofPal +08174e74 hall_of_fame.s sub_08174E74_jp +08174eb0 hall_of_fame.s sub_08174EB0_jp +08174f28 hall_of_fame.s sub_08174F28_jp +08175024 hall_of_fame.s SpriteCB_GetOnScreenAndAnimate +081750a8 hall_of_fame.s sub_081750A8_jp +08175100 hall_of_fame.s sub_08175100_jp +08175184 hall_of_fame.s sub_08175184_jp +081751c4 hall_of_fame.s sub_081751C4_jp +081751f8 hall_of_fame.s sub_081751F8_jp +08175268 hall_of_fame.s sub_08175268_jp +credits.s +081753cc credits.s sub_081753CC_jp +081753e0 credits.s sub_081753E0_jp +0817544c credits.s sub_0817544C_jp +081754a8 credits.s sub_081754A8_jp +081754c0 credits.s sub_081754C0_jp +0817553c credits.s sub_0817553C_jp +0817564c credits.s sub_0817564C_jp +0817567c credits.s sub_0817567C_jp +08175710 credits.s sub_08175710_jp +08175750 credits.s c2_080C9BFC +081757ac credits.s sub_081757AC_jp +081757ec credits.s sub_081757EC_jp +081759a4 credits.s sub_081759A4_jp +081759ec credits.s sub_081759EC_jp +08175a24 credits.s sub_08175A24_jp +08175a9c credits.s sub_08175A9C_jp +08175ae4 credits.s sub_08175AE4_jp +08175b40 credits.s sub_08175B40_jp +08175bd4 credits.s sub_08175BD4_jp +08175bf0 credits.s sub_08175BF0_jp +08175cac credits.s sub_08175CAC_jp +08175f1c credits.s sub_08175F1C_jp +08176024 credits.s sub_08176024_jp +0817615c credits.s sub_0817615C_jp +0817642c credits.s sub_0817642C_jp +08176488 credits.s sub_08176488_jp +081768b8 credits.s sub_081768B8_jp +08176aa8 credits.s sub_08176AA8_jp +08176b24 credits.s sub_08176B24_jp +08176c04 credits.s sub_08176C04_jp +08176c48 credits.s sub_08176C48_jp +08176ccc credits.s sub_08176CCC_jp +08176d74 credits.s sub_08176D74_jp +08176e1c credits.s sub_08176E1C_jp +08176edc credits.s sub_08176EDC_jp +081770b0 credits.s sub_081770B0_jp +08177144 credits.s sub_08177144_jp +08177214 credits.s sub_08177214_jp +lottery_corner.s +081773e4 lottery_corner.s ResetLotteryCorner +08177410 lottery_corner.s SetRandomLotteryNumber +08177458 lottery_corner.s RetrieveLotteryNumber +0817746c lottery_corner.s PickLotteryCornerTicket +08177618 lottery_corner.s GetMatchingDigits +081776a0 lottery_corner.s SetLotteryNumber +081776c8 lottery_corner.s GetLotteryNumber +081776f0 lottery_corner.s SetLotteryNumber16_Unused +08177700 lottery_corner.s sub_08177700 +08177714 lottery_corner.s CB2_ShowDiploma +option_menu.s +08177894 option_menu.s MainCB2 +081778ac option_menu.s Task_DiplomaFadeIn +081778dc option_menu.s Task_DiplomaWaitForKeyPress +08177924 option_menu.s Task_DiplomaFadeOut +08177960 option_menu.s DisplayDiplomaText +08177a2c option_menu.s InitDiplomaBg +08177a84 option_menu.s InitDiplomaWindow +08177ab4 option_menu.s PrintDiplomaText +berry_tag_screen.s +08177afc berry_tag_screen.s DoBerryTagScreen +08177b3c berry_tag_screen.s CB2_BerryTagScreen +08177b58 berry_tag_screen.s VblankCB +08177b6c berry_tag_screen.s CB2_InitBerryTagScreen +08177b98 berry_tag_screen.s InitBerryTagScreen +08177cfc berry_tag_screen.s AddBerryTagTextToBg0 +08177d70 berry_tag_screen.s LoadBerryTagGfx +08177ef0 berry_tag_screen.s PrintMysteryMenuText +08177f34 berry_tag_screen.s PrintTextInBerryTagScreen +08177f78 berry_tag_screen.s PrintBerrySize +08177fcc berry_tag_screen.s PrintAllBerryData +08177fe8 berry_tag_screen.s PrintBerryNumberAndName +0817804c berry_tag_screen.s sub_0817804C +08178108 berry_tag_screen.s PrintBerryFirmness +08178188 berry_tag_screen.s PrintBerryDescription1 +081781bc berry_tag_screen.s PrintBerryDescription2 +081781f0 berry_tag_screen.s CreateBerrySprite +08178224 berry_tag_screen.s DestroyBerrySprite +08178254 berry_tag_screen.s CreateFlavorCircleSprites +081782bc berry_tag_screen.s SetFlavorCirclesVisiblity +0817844c berry_tag_screen.s DestroyFlavorCircleSprites +08178488 berry_tag_screen.s PrepareToCloseBerryTagScreen +081784c8 berry_tag_screen.s Task_CloseBerryTagScreen +0817850c berry_tag_screen.s Task_HandleInput +08178564 berry_tag_screen.s TryChangeDisplayedBerry +081785e0 berry_tag_screen.s HandleBagCursorPositionChange +08178664 berry_tag_screen.s Task_DisplayAnotherBerry +081787fc berry_tag_screen.s sub_081787FC +08178810 berry_tag_screen.s CheckLanguageMatch +0817882c berry_tag_screen.s CB2_InitMysteryEventMenu +081788f8 berry_tag_screen.s GetEventLoadMessage +08178930 berry_tag_screen.s CB2_MysteryEventMenu +08178d7c berry_tag_screen.s sub_08178D7C +save_failed_screen.s +08178dfc save_failed_screen.s SaveFailedScreenTextPrint +08178e48 save_failed_screen.s DoSaveFailedScreen +08178e80 save_failed_screen.s sub_08178E80 +08178e94 save_failed_screen.s CB2_SaveFailedScreen +08179140 save_failed_screen.s CB2_WipeSave +08179248 save_failed_screen.s CB2_GameplayCannotBeContinued +08179298 save_failed_screen.s CB2_FadeAndReturnToTitleScreen +081792e0 save_failed_screen.s CB2_ReturnToTitleScreen +0817930c save_failed_screen.s VBlankCB_UpdateClockGraphics +081793cc save_failed_screen.s VerifySectorWipe +0817940c save_failed_screen.s WipeSector +08179464 save_failed_screen.s WipeSectors +braille_puzzles.s +081794a0 braille_puzzles.s ShouldDoBrailleDigEffect +081794f4 braille_puzzles.s DoBrailleDigEffect +08179564 braille_puzzles.s CheckRelicanthWailord +081795b4 braille_puzzles.s ShouldDoBrailleRegirockEffectOld +081795b8 braille_puzzles.s DoSealedChamberShakingEffect1 +081795f4 braille_puzzles.s DoSealedChamberShakingEffect2 +08179630 braille_puzzles.s SealedChamberShakingEffect +08179694 braille_puzzles.s ShouldDoBrailleRegirockEffect +081796ec braille_puzzles.s SetUpPuzzleEffectRegirock +08179708 braille_puzzles.s UseRegirockHm_Callback +08179718 braille_puzzles.s DoBrailleRegirockEffect +08179788 braille_puzzles.s ShouldDoBrailleRegisteelEffect +081797d0 braille_puzzles.s SetUpPuzzleEffectRegisteel +081797ec braille_puzzles.s UseRegisteelHm_Callback +081797fc braille_puzzles.s DoBrailleRegisteelEffect +0817986c braille_puzzles.s DoBrailleWait +08179870 braille_puzzles.s FldEff_UsePuzzleEffect +081798bc braille_puzzles.s ShouldDoBrailleRegicePuzzle +pokeblock_feed.s +08179a20 pokeblock_feed.s CB2_PokeblockFeed +08179a3c pokeblock_feed.s VBlankCB_PokeblockFeed +08179a50 pokeblock_feed.s TransitionToPokeblockFeedScene +08179c28 pokeblock_feed.s CB2_PreparePokeblockFeedScene +08179c54 pokeblock_feed.s HandleInitBackgrounds +08179cac pokeblock_feed.s LoadMonAndSceneGfx +08179e64 pokeblock_feed.s HandleInitWindows +08179ea4 pokeblock_feed.s SetPokeblockSpritePal +08179ee8 pokeblock_feed.s Task_HandlePokeblockFeed +0817a020 pokeblock_feed.s LaunchPokeblockFeedTask +0817a04c pokeblock_feed.s Task_WaitForAtePokeblockText +0817a07c pokeblock_feed.s Task_HandleMonAtePokeblock +0817a178 pokeblock_feed.s Task_ReturnAfterPaletteFade +0817a1d8 pokeblock_feed.s Task_PaletteFadeToReturn +0817a210 pokeblock_feed.s CreateMonSprite +0817a2ec pokeblock_feed.s PrepareMonToMoveToPokeblock +0817a320 pokeblock_feed.s sub_0817A320 +0817a35c pokeblock_feed.s CreatePokeblockCaseSpriteForFeeding +0817a3b0 pokeblock_feed.s DoPokeblockCaseThrowEffect +0817a424 pokeblock_feed.s CreatePokeblockSprite +0817a458 pokeblock_feed.s SpriteCB_ThrownPokeblock +0817a484 pokeblock_feed.s sub_0817A484 +0817a4ec pokeblock_feed.s sub_0817A4EC_jp +0817a7d4 pokeblock_feed.s sub_0817A7D4_jp +0817a89c pokeblock_feed.s sub_0817A89C +0817a8f4 pokeblock_feed.s FreeMonSpriteOamMatrix +0817a90c pokeblock_feed.s sub_0817A90C +0817aa20 pokeblock_feed.s sub_0817AA20_jp +clear_save_data_screen.s +0817ab80 clear_save_data_screen.s CB2_InitClearSaveDataScreen +0817ab9c clear_save_data_screen.s Task_DoClearSaveDataScreenYesNo +0817ac00 clear_save_data_screen.s Task_ClearSaveDataScreenYesNoChoice +0817ac80 clear_save_data_screen.s Task_ClearSaveData +0817aca4 clear_save_data_screen.s MainCB +diploma.s +0817acb4 diploma.s VBlankCB +0817acc0 diploma.s SetupClearSaveDataScreen +0817ae94 diploma.s CB2_FadeAndDoReset +0817aeec diploma.s InitClearSaveDataScreenWindows +intro_credits_graphics.s +0817af24 intro_credits_graphics.s load_intro_part2_graphics +0817b010 intro_credits_graphics.s sub_0817B010 +0817b088 intro_credits_graphics.s sub_0817B088_jp +0817b268 intro_credits_graphics.s sub_0817B268_jp +0817b29c intro_credits_graphics.s CreateBicycleAnimationTask +0817b318 intro_credits_graphics.s sub_0817B318_jp +0817b400 intro_credits_graphics.s sub_0817B400_jp +0817b4ec intro_credits_graphics.s sub_0817B4EC_jp +0817b558 intro_credits_graphics.s sub_0817B558_jp +0817b62c intro_credits_graphics.s sub_0817B62C_jp +0817b648 intro_credits_graphics.s sub_0817B648_jp +0817b664 intro_credits_graphics.s sub_0817B664_jp +0817b680 intro_credits_graphics.s nullsub_65 +0817b684 intro_credits_graphics.s sub_0817B684_jp +0817b6f4 intro_credits_graphics.s intro_create_brendan_sprite +0817b74c intro_credits_graphics.s intro_create_may_sprite +0817b7a4 intro_credits_graphics.s nullsub_66 +0817b7a8 intro_credits_graphics.s sub_0817B7A8_jp +0817b808 intro_credits_graphics.s intro_create_flygon_sprite +0817b884 intro_credits_graphics.s sub_0817B884_jp +evolution_graphics.s +0817b900 evolution_graphics.s PokeEvoSprite_DummySpriteCB +0817b904 evolution_graphics.s SetEvoSparklesMatrices +0817b93c evolution_graphics.s SpriteCB_PreEvoSparkleSet1 +0817b9f8 evolution_graphics.s CreatePreEvoSparkleSet1 +0817ba54 evolution_graphics.s SpriteCB_PreEvoSparkleSet2 +0817bac8 evolution_graphics.s CreatePreEvoSparkleSet2 +0817bb30 evolution_graphics.s SpriteCB_PostEvoSparkleSet1 +0817bb78 evolution_graphics.s CreatePostEvoSparkleSet1 +0817bbe0 evolution_graphics.s SpriteCB_PostEvoSparkleSet2 +0817bcb0 evolution_graphics.s CreatePostEvoSparkleSet2 +0817bd38 evolution_graphics.s LoadEvoSparkleSpriteAndPal +0817bd54 evolution_graphics.s LaunchTask_PreEvoSparklesSet1 +0817bd84 evolution_graphics.s EvoTask_BeginPreSet1_FadeAndPlaySE +0817bdd4 evolution_graphics.s EvoTask_CreatePreEvoSparkleSet1 +0817be44 evolution_graphics.s EvoTask_WaitForPre1SparklesToGoUp +0817be74 evolution_graphics.s LaunchTask_PostEvoSparklesSet1 +0817be8c evolution_graphics.s EvoTask_BeginPreSparklesSet2 +0817bec0 evolution_graphics.s EvoTask_CreatePreEvoSparklesSet2 +0817bf18 evolution_graphics.s EvoTask_DestroyPreSet2Task +0817bf28 evolution_graphics.s LaunchTask_PreEvoSparklesSet2 +0817bf40 evolution_graphics.s EvoTask_BeginPostSparklesSet1 +0817bf74 evolution_graphics.s EvoTask_CreatePostEvoSparklesSet1 +0817bff4 evolution_graphics.s EvoTask_DestroyPostSet1Task +0817c004 evolution_graphics.s LaunchTask_PostEvoSparklesSet2AndFlash +0817c034 evolution_graphics.s EvoTask_BeginPostSparklesSet2_AndFlash +0817c094 evolution_graphics.s EvoTask_CreatePostEvoSparklesSet2_AndFlash +0817c120 evolution_graphics.s EvoTask_DestroyPostSet2AndFlashTask +0817c140 evolution_graphics.s LaunchTask_PostEvoSparklesSet2AndFlash_Trade +0817c170 evolution_graphics.s EvoTask_BeginPostSparklesSet2_AndFlash_Trade +0817c1d0 evolution_graphics.s EvoTask_CreatePostEvoSparklesSet2_AndFlash_Trade +0817c25c evolution_graphics.s EvoSparkle_DummySpriteCb +0817c260 evolution_graphics.s sub_0817C260_jp +0817c3ac evolution_graphics.s sub_0817C3AC_jp +0817c3d0 evolution_graphics.s sub_0817C3D0_jp +0817c420 evolution_graphics.s sub_0817C420 +0817c53c evolution_graphics.s PreEvoInvisible_PostEvoVisible_KillTask +0817c5ec evolution_graphics.s PreEvoVisible_PostEvoInvisible_KillTask +bard_music.s +0817c69c bard_music.s CalcWordPitch +0817c6b0 bard_music.s GetWordPhonemes +0817c704 bard_music.s GetWordSounds +fldeff_teleport.s +0817c768 fldeff_teleport.s SetUpFieldMove_Teleport +0817c7a8 fldeff_teleport.s FieldCallback_Teleport +0817c7c8 fldeff_teleport.s FldEff_UseTeleport +0817c7f8 fldeff_teleport.s StartTeleportFieldEffect +battle_tv.s +0817c808 battle_tv.s BattleTv_SetDataBasedOnString +0817d9bc battle_tv.s sub_0817D9BC_jp +0817df64 battle_tv.s sub_0817DF64 +0817dfa8 battle_tv.s BattleTv_SetDataBasedOnMove +0817e1d8 battle_tv.s BattleTv_SetDataBasedOnAnimation +0817e2a0 battle_tv.s TryPutLinkBattleTvShowOnAir +0817e530 battle_tv.s AddMovePoints +0817e92c battle_tv.s AddPointsOnFainting +0817ed78 battle_tv.s TrySetBattleSeminarShow +0817f0c8 battle_tv.s ShouldCalculateDamage +0817f154 battle_tv.s BattleTv_ClearExplosionFaintCause +0817f1e8 battle_tv.s GetBattlerMoveSlotId +0817f240 battle_tv.s AddPointsBasedOnWeather +pokemon_animation.s +0817f298 pokemon_animation.s MonAnimDummySpriteCallback +0817f29c pokemon_animation.s sub_0817F29C_jp +0817f320 pokemon_animation.s GetSpeciesBackAnimSet +0817f344 pokemon_animation.s Task_HandleMonAnimation +0817f3f0 pokemon_animation.s LaunchAnimationTaskForFrontSprite +0817f424 pokemon_animation.s StartMonSummaryAnimation +0817f440 pokemon_animation.s LaunchAnimationTaskForBackSprite +0817f4b8 pokemon_animation.s SetSpriteCB_MonAnimDummy +0817f4c4 pokemon_animation.s SetAffineData +0817f51c pokemon_animation.s HandleStartAffineAnim +0817f580 pokemon_animation.s HandleSetAffineData +0817f5b8 pokemon_animation.s sub_0817F5B8 +0817f5d0 pokemon_animation.s sub_0817F5D0_jp +0817f604 pokemon_animation.s sub_0817F604_jp +0817f628 pokemon_animation.s sub_0817F628 +0817f6b4 pokemon_animation.s pokemonanimfunc_01 +0817f744 pokemon_animation.s pokemonanimfunc_02 +0817f7a8 pokemon_animation.s sub_0817F7A8_jp +0817f808 pokemon_animation.s pokemonanimfunc_03 +0817f824 pokemon_animation.s sub_0817F824_jp +0817f884 pokemon_animation.s pokemonanimfunc_04 +0817f8a0 pokemon_animation.s sub_0817F8A0 +0817f918 pokemon_animation.s pokemonanimfunc_1E +0817f934 pokemon_animation.s pokemonanimfunc_06 +0817fa10 pokemon_animation.s pokemonanimfunc_09 +0817facc pokemon_animation.s sub_0817FACC +0817fb70 pokemon_animation.s pokemonanimfunc_0A +0817fb88 pokemon_animation.s sub_0817FB88 +0817fbd0 pokemon_animation.s pokemonanimfunc_0F +0817fbf0 pokemon_animation.s sub_0817FBF0 +0817fc34 pokemon_animation.s pokemonanimfunc_10 +0817fc50 pokemon_animation.s pokemonanimfunc_11 +0817fcdc pokemon_animation.s sub_0817FCDC +0817fdac pokemon_animation.s pokemonanimfunc_12 +0817fde8 pokemon_animation.s sub_0817FDE8 +0817fe64 pokemon_animation.s pokemonanimfunc_1F +0817fe9c pokemon_animation.s sub_0817FE9C +0817ff3c pokemon_animation.s pokemonanimfunc_14 +0817ff7c pokemon_animation.s pokemonanimfunc_15 +0817ffe0 pokemon_animation.s pokemonanimfunc_16 +081800bc pokemon_animation.s pokemonanimfunc_17 +081801c8 pokemon_animation.s sub_081801C8_jp +0818024c pokemon_animation.s pokemonanimfunc_19 +08180268 pokemon_animation.s pokemonanimfunc_1A +08180320 pokemon_animation.s pokemonanimfunc_1B +081803a4 pokemon_animation.s sub_081803A4_jp +08180440 pokemon_animation.s pokemonanimfunc_1C +0818045c pokemon_animation.s sub_0818045C +08180500 pokemon_animation.s pokemonanimfunc_18 +0818051c pokemon_animation.s pokemonanimfunc_1D +081805c0 pokemon_animation.s sub_081805C0 +081806b8 pokemon_animation.s pokemonanimfunc_00 +081806d4 pokemon_animation.s sub_081806D4 +08180784 pokemon_animation.s pokemonanimfunc_13 +081807ac pokemon_animation.s sub_081807AC +081808fc pokemon_animation.s pokemonanimfunc_05 +08180938 pokemon_animation.s pokemonanimfunc_20 +081809a4 pokemon_animation.s pokemonanimfunc_21 +08180a08 pokemon_animation.s pokemonanimfunc_22 +08180a70 pokemon_animation.s pokemonanimfunc_23 +08180adc pokemon_animation.s pokemonanimfunc_24 +08180b48 pokemon_animation.s pokemonanimfunc_25 +08180b60 pokemon_animation.s sub_08180B60 +08180b94 pokemon_animation.s sub_08180B94_jp +08180bf0 pokemon_animation.s sub_08180BF0_jp +08180c6c pokemon_animation.s sub_08180C6C_jp +08180cd4 pokemon_animation.s sub_08180CD4 +08180d08 pokemon_animation.s pokemonanimfunc_26 +08180d24 pokemon_animation.s sub_08180D24 +08180d7c pokemon_animation.s sub_08180D7C_jp +08180dd8 pokemon_animation.s sub_08180DD8 +08180e54 pokemon_animation.s pokemonanimfunc_27 +08180eb8 pokemon_animation.s pokemonanimfunc_28 +08180ed0 pokemon_animation.s sub_08180ED0 +08180f14 pokemon_animation.s sub_08180F14_jp +08180f70 pokemon_animation.s sub_08180F70 +08180fa4 pokemon_animation.s pokemonanimfunc_29 +08180fbc pokemon_animation.s sub_08180FBC +08180ff0 pokemon_animation.s sub_08180FF0_jp +08181050 pokemon_animation.s sub_08181050 +0818108c pokemon_animation.s pokemonanimfunc_2A +081810c0 pokemon_animation.s sub_081810C0 +08181200 pokemon_animation.s pokemonanimfunc_2B +0818121c pokemon_animation.s sub_0818121C +081812c4 pokemon_animation.s pokemonanimfunc_2C +08181380 pokemon_animation.s sub_08181380 +0818144c pokemon_animation.s pokemonanimfunc_2D +08181480 pokemon_animation.s sub_08181480 +0818154c pokemon_animation.s pokemonanimfunc_2E +08181580 pokemon_animation.s pokemonanimfunc_2F +081815b4 pokemon_animation.s sub_081815B4 +0818161c pokemon_animation.s sub_0818161C_jp +08181640 pokemon_animation.s sub_08181640_jp +081816bc pokemon_animation.s sub_081816BC +0818180c pokemon_animation.s pokemonanimfunc_30 +08181840 pokemon_animation.s pokemonanimfunc_31 +08181924 pokemon_animation.s pokemonanimfunc_32 +08181968 pokemon_animation.s sub_08181968 +081819f8 pokemon_animation.s sub_081819F8_jp +08181ad8 pokemon_animation.s sub_08181AD8_jp +08181b94 pokemon_animation.s sub_08181B94 +08181c5c pokemon_animation.s pokemonanimfunc_33 +08181c90 pokemon_animation.s pokemonanimfunc_34 +08181d3c pokemon_animation.s pokemonanimfunc_35 +08181da4 pokemon_animation.s pokemonanimfunc_36 +08181dc0 pokemon_animation.s sub_08181DC0 +08181dfc pokemon_animation.s sub_08181DFC_jp +08181e6c pokemon_animation.s sub_08181E6C +08181ec8 pokemon_animation.s pokemonanimfunc_37 +08181f8c pokemon_animation.s pokemonanimfunc_38 +08181fa8 pokemon_animation.s sub_08181FA8_jp +08182018 pokemon_animation.s sub_08182018_jp +08182078 pokemon_animation.s sub_08182078_jp +081820f4 pokemon_animation.s sub_081820F4_jp +0818215c pokemon_animation.s pokemonanimfunc_39 +0818221c pokemon_animation.s pokemonanimfunc_3A +0818234c pokemon_animation.s pokemonanimfunc_3B +081823f4 pokemon_animation.s pokemonanimfunc_3C +08182488 pokemon_animation.s pokemonanimfunc_3D +081824a4 pokemon_animation.s sub_081824A4 +081824f4 pokemon_animation.s sub_081824F4_jp +081825a4 pokemon_animation.s sub_081825A4_jp +08182610 pokemon_animation.s sub_08182610 +081826a8 pokemon_animation.s pokemonanimfunc_3E +081826dc pokemon_animation.s sub_081826DC +08182774 pokemon_animation.s pokemonanimfunc_3F +081827a8 pokemon_animation.s pokemonanimfunc_40 +08182858 pokemon_animation.s pokemonanimfunc_41 +08182918 pokemon_animation.s pokemonanimfunc_42 +081829d0 pokemon_animation.s pokemonanimfunc_43 +08182ac4 pokemon_animation.s pokemonanimfunc_44 +08182bd0 pokemon_animation.s pokemonanimfunc_45 +08182bec pokemon_animation.s pokemonanimfunc_46 +08182c08 pokemon_animation.s pokemonanimfunc_47 +08182c24 pokemon_animation.s pokemonanimfunc_48 +08182c60 pokemon_animation.s pokemonanimfunc_49 +08182c70 pokemon_animation.s pokemonanimfunc_4A +08182c80 pokemon_animation.s pokemonanimfunc_4B +08182cac pokemon_animation.s pokemonanimfunc_4C +08182ccc pokemon_animation.s pokemonanimfunc_4D +08182ce8 pokemon_animation.s pokemonanimfunc_4E +08182d28 pokemon_animation.s pokemonanimfunc_4F +08182d68 pokemon_animation.s pokemonanimfunc_50 +08182d84 pokemon_animation.s pokemonanimfunc_51 +08182da0 pokemon_animation.s pokemonanimfunc_52 +08182dbc pokemon_animation.s pokemonanimfunc_53 +08182df4 pokemon_animation.s pokemonanimfunc_54 +08182e2c pokemon_animation.s pokemonanimfunc_55 +08182e64 pokemon_animation.s pokemonanimfunc_56 +08182ea8 pokemon_animation.s pokemonanimfunc_07 +08182edc pokemon_animation.s pokemonanimfunc_08 +08182f14 pokemon_animation.s pokemonanimfunc_0B +08182f48 pokemon_animation.s pokemonanimfunc_0C +08182f80 pokemon_animation.s pokemonanimfunc_0D +08182fb4 pokemon_animation.s pokemonanimfunc_0E +08182fec pokemon_animation.s sub_08182FEC +08183040 pokemon_animation.s pokemonanimfunc_57 +08183060 pokemon_animation.s pokemonanimfunc_58 +08183080 pokemon_animation.s pokemonanimfunc_59 +08183174 pokemon_animation.s sub_08183174 +08183294 pokemon_animation.s pokemonanimfunc_5A +081832c4 pokemon_animation.s sub_081832C4_jp +081833f0 pokemon_animation.s pokemonanimfunc_5B +08183420 pokemon_animation.s sub_08183420 +081834c4 pokemon_animation.s pokemonanimfunc_5C +081834e4 pokemon_animation.s pokemonanimfunc_5D +08183504 pokemon_animation.s pokemonanimfunc_5E +08183520 pokemon_animation.s pokemonanimfunc_5F +08183584 pokemon_animation.s pokemonanimfunc_60 +081835e8 pokemon_animation.s pokemonanimfunc_61 +08183608 pokemon_animation.s pokemonanimfunc_62 +08183628 pokemon_animation.s pokemonanimfunc_63 +08183648 pokemon_animation.s pokemonanimfunc_64 +08183688 pokemon_animation.s sub_08183688 +081837e8 pokemon_animation.s pokemonanimfunc_65 +08183818 pokemon_animation.s pokemonanimfunc_66 +0818390c pokemon_animation.s pokemonanimfunc_67 +081839f8 pokemon_animation.s sub_081839F8 +08183ab8 pokemon_animation.s pokemonanimfunc_68 +08183ad8 pokemon_animation.s pokemonanimfunc_69 +08183af8 pokemon_animation.s pokemonanimfunc_6A +08183b18 pokemon_animation.s sub_08183B18 +08183b9c pokemon_animation.s pokemonanimfunc_6B +08183bd4 pokemon_animation.s pokemonanimfunc_6C +08183c0c pokemon_animation.s pokemonanimfunc_6D +08183c40 pokemon_animation.s pokemonanimfunc_6E +08183c74 pokemon_animation.s pokemonanimfunc_6F +08183ca8 pokemon_animation.s pokemonanimfunc_70 +08183cdc pokemon_animation.s pokemonanimfunc_71 +08183d04 pokemon_animation.s pokemonanimfunc_72 +08183d2c pokemon_animation.s pokemonanimfunc_73 +08183d5c pokemon_animation.s pokemonanimfunc_74 +08183d8c pokemon_animation.s pokemonanimfunc_75 +08183dc0 pokemon_animation.s pokemonanimfunc_76 +08183df0 pokemon_animation.s pokemonanimfunc_77 +08183e24 pokemon_animation.s pokemonanimfunc_78 +08183e54 pokemon_animation.s sub_08183E54 +08183ef4 pokemon_animation.s pokemonanimfunc_79 +08183f1c pokemon_animation.s pokemonanimfunc_7A +08183f44 pokemon_animation.s pokemonanimfunc_7B +08183f70 pokemon_animation.s sub_08183F70_jp +0818403c pokemon_animation.s pokemonanimfunc_7C +08184068 pokemon_animation.s pokemonanimfunc_7D +08184094 pokemon_animation.s pokemonanimfunc_7E +081840c0 pokemon_animation.s pokemonanimfunc_7F +081840e8 pokemon_animation.s pokemonanimfunc_80 +08184110 pokemon_animation.s pokemonanimfunc_81 +0818413c pokemon_animation.s sub_0818413C_jp +08184188 pokemon_animation.s pokemonanimfunc_82 +0818420c pokemon_animation.s pokemonanimfunc_83 +08184290 pokemon_animation.s pokemonanimfunc_84 +08184314 pokemon_animation.s sub_08184314_jp +081843fc pokemon_animation.s pokemonanimfunc_85 +08184428 pokemon_animation.s pokemonanimfunc_86 +08184454 pokemon_animation.s pokemonanimfunc_87 +08184480 pokemon_animation.s sub_08184480 +081844bc pokemon_animation.s sub_081844BC_jp +081844ec pokemon_animation.s sub_081844EC_jp +08184524 pokemon_animation.s sub_08184524_jp +08184564 pokemon_animation.s sub_08184564 +08184598 pokemon_animation.s pokemonanimfunc_88 +081845c4 pokemon_animation.s pokemonanimfunc_89 +081845f0 pokemon_animation.s pokemonanimfunc_8A +0818461c pokemon_animation.s sub_0818461C +08184644 pokemon_animation.s BackAnimBlendYellow +081846e0 pokemon_animation.s pokemonanimfunc_8B +08184718 pokemon_animation.s pokemonanimfunc_8C +08184750 pokemon_animation.s pokemonanimfunc_8D +0818478c pokemon_animation.s BackAnimBlend +081847e0 pokemon_animation.s sub_081847E0 +08184880 pokemon_animation.s pokemonanimfunc_8E +081848e8 pokemon_animation.s pokemonanimfunc_8F +08184950 pokemon_animation.s pokemonanimfunc_90 +081849b8 pokemon_animation.s pokemonanimfunc_91 +08184a24 pokemon_animation.s pokemonanimfunc_92 +08184a8c pokemon_animation.s pokemonanimfunc_93 +08184af4 pokemon_animation.s pokemonanimfunc_94 +08184b5c pokemon_animation.s pokemonanimfunc_95 +08184bc8 pokemon_animation.s pokemonanimfunc_96 +08184c34 pokemon_animation.s SpriteCB_SetDummyOnAnimEnd +recorded_battle.s +08184c50 recorded_battle.s sub_08184C50_jp +08184d04 recorded_battle.s sub_08184D04_jp +08184e1c recorded_battle.s RecordedBattle_SetBattlerAction +08184e68 recorded_battle.s RecordedBattle_ClearBattlerAction +08184eb4 recorded_battle.s RecordedBattle_GetBattlerAction +08184f30 recorded_battle.s GetRecordedBattleApprenticeId +08184f3c recorded_battle.s sub_08184F3C_jp +08185008 recorded_battle.s sub_08185008_jp +081850d8 recorded_battle.s sub_081850D8 +081850f0 recorded_battle.s CanCopyRecordedBattleSaveData +08185110 recorded_battle.s IsRecordedBattleSaveValid +08185150 recorded_battle.s RecordedBattleToSave +08185198 recorded_battle.s MoveRecordedBattleToSaveData +08185810 recorded_battle.s TryCopyRecordedBattleSaveData +08185844 recorded_battle.s CopyRecordedBattleFromSave +0818586c recorded_battle.s CB2_RecordedBattleEnd +081858d8 recorded_battle.s Task_StartAfterCountdown +0818591c recorded_battle.s SetVariablesForRecordedBattle +08185b7c recorded_battle.s PlayRecordedBattle +08185be4 recorded_battle.s CB2_RecordedBattle +08185bf8 recorded_battle.s GetRecordedBattleApprenticeLanguage +08185c04 recorded_battle.s GetRecordedBattleFronterBrainSymbol +08185c10 recorded_battle.s RecordedBattle_RestoreSavedParties +08185c54 recorded_battle.s RecordedBattle_SaveParties +08185c98 recorded_battle.s GetActiveBattlerLinkPlayerGender +08185cdc recorded_battle.s sub_08185CDC +08185ce8 recorded_battle.s sub_08185CE8_jp +08185d04 recorded_battle.s GetRecordedBattleFrontierFacility +08185d10 recorded_battle.s GetRecordedBattleRecordMixFriendClass +08185d1c recorded_battle.s GetBattleSceneInRecordedBattle +08185d28 recorded_battle.s RecordedBattle_CopyBattlerMoves +08185d94 recorded_battle.s sub_08185D94 +08186190 recorded_battle.s GetAiScriptsInRecordedBattle +0818619c recorded_battle.s sub_0818619C_jp +081861a8 recorded_battle.s sub_081861A8_jp +081861c0 recorded_battle.s sub_081861C0_jp +081861e0 recorded_battle.s GetRecordedBattleRecordMixFriendLanguage +081861ec recorded_battle.s GetTextSpeedInRecordedBattle +081861f8 recorded_battle.s RecordedBattle_SaveBattleOutcome +0818620c recorded_battle.s GetRecordedBattleEasyChatSpeech +08186214 recorded_battle.s sub_08186214_jp +08186218 recorded_battle.s sub_08186218_jp +08186234 recorded_battle.s sub_08186234_jp +08186284 recorded_battle.s sub_08186284_jp +081862bc recorded_battle.s sub_081862BC_jp +081862f4 recorded_battle.s sub_081862F4 +0818635c recorded_battle.s sub_0818635C +081863a4 recorded_battle.s sub_081863A4 +08186598 recorded_battle.s sub_08186598 +08186974 recorded_battle.s sub_08186974 +08186a30 recorded_battle.s sub_08186A30 +08186a84 recorded_battle.s sub_08186A84 +08186ac8 recorded_battle.s sub_08186AC8 +08186b3c recorded_battle.s sub_08186B3C +08186b54 recorded_battle.s sub_08186B54 +08186bd0 recorded_battle.s sub_08186BD0 +08186c40 recorded_battle.s sub_08186C40 +08186cc0 recorded_battle.s sub_08186CC0 +08186db0 recorded_battle.s sub_08186DB0 +08186e78 recorded_battle.s sub_08186E78 +08186ea8 recorded_battle.s sub_08186EA8 +battle_controller_recorded_opponent.s +08186ed8 battle_controller_recorded_opponent.s RecordedOpponentBufferExecCompleted +08186f50 battle_controller_recorded_opponent.s RecordedOpponentHandleGetMonData +08186fc4 battle_controller_recorded_opponent.s CopyRecordedOpponentMonData +08187770 battle_controller_recorded_opponent.s RecordedOpponentHandleGetRawMonData +0818777c battle_controller_recorded_opponent.s RecordedOpponentHandleSetMonData +081877d4 battle_controller_recorded_opponent.s SetRecordedOpponentMonData +081880f4 battle_controller_recorded_opponent.s RecordedOpponentHandleSetRawMonData +08188168 battle_controller_recorded_opponent.s RecordedOpponentHandleLoadMonSprite +081882b8 battle_controller_recorded_opponent.s RecordedOpponentHandleSwitchInAnim +08188304 battle_controller_recorded_opponent.s sub_08188304 +08188494 battle_controller_recorded_opponent.s RecordedOpponentHandleReturnMonToBall +0818852c battle_controller_recorded_opponent.s sub_0818852C_jp +081885b8 battle_controller_recorded_opponent.s RecordedOpponentHandleDrawTrainerPic +0818876c battle_controller_recorded_opponent.s RecordedOpponentHandleTrainerSlide +08188778 battle_controller_recorded_opponent.s RecordedOpponentHandleTrainerSlideBack +08188824 battle_controller_recorded_opponent.s RecordedOpponentHandleFaintAnimation +081888d0 battle_controller_recorded_opponent.s RecordedOpponentHandlePaletteFade +081888dc battle_controller_recorded_opponent.s RecordedOpponentHandleSuccessBallThrowAnim +081888e8 battle_controller_recorded_opponent.s RecordedOpponentHandleBallThrowAnim +081888f4 battle_controller_recorded_opponent.s RecordedOpponentHandlePause +08188900 battle_controller_recorded_opponent.s RecordedOpponentHandleMoveAnimation +08188a38 battle_controller_recorded_opponent.s RecordedOpponentDoMoveAnimation +08188bbc battle_controller_recorded_opponent.s RecordedOpponentHandlePrintString +08188c10 battle_controller_recorded_opponent.s RecordedOpponentHandlePrintSelectionString +08188c1c battle_controller_recorded_opponent.s RecordedOpponentHandleChooseAction +08188c40 battle_controller_recorded_opponent.s RecordedOpponentHandleUnknownYesNoBox +08188c4c battle_controller_recorded_opponent.s RecordedOpponentHandleChooseMove +08188ca8 battle_controller_recorded_opponent.s RecordedOpponentHandleChooseItem +08188cb4 battle_controller_recorded_opponent.s RecordedOpponentHandleChoosePokemon +08188cf0 battle_controller_recorded_opponent.s RecordedOpponentHandleCmd23 +08188cfc battle_controller_recorded_opponent.s RecordedOpponentHandleHealthBarUpdate +08188dec battle_controller_recorded_opponent.s RecordedOpponentHandleExpUpdate +08188df8 battle_controller_recorded_opponent.s RecordedOpponentHandleStatusIconUpdate +08188e70 battle_controller_recorded_opponent.s RecordedOpponentHandleStatusAnimation +08188ed8 battle_controller_recorded_opponent.s RecordedOpponentHandleStatusXor +08188ee4 battle_controller_recorded_opponent.s RecordedOpponentHandleDataTransfer +08188ef0 battle_controller_recorded_opponent.s RecordedOpponentHandleDMA3Transfer +08188efc battle_controller_recorded_opponent.s RecordedOpponentHandlePlayBGM +08188f08 battle_controller_recorded_opponent.s RecordedOpponentHandleCmd32 +08188f14 battle_controller_recorded_opponent.s RecordedOpponentHandleTwoReturnValues +08188f20 battle_controller_recorded_opponent.s RecordedOpponentHandleChosenMonReturnValue +08188f2c battle_controller_recorded_opponent.s RecordedOpponentHandleOneReturnValue +08188f38 battle_controller_recorded_opponent.s RecordedOpponentHandleOneReturnValue_Duplicate +08188f44 battle_controller_recorded_opponent.s RecordedOpponentHandleCmd37 +08188f60 battle_controller_recorded_opponent.s RecordedOpponentHandleCmd38 +08188f98 battle_controller_recorded_opponent.s RecordedOpponentHandleCmd39 +08188fb0 battle_controller_recorded_opponent.s RecordedOpponentHandleCmd40 +08188fd8 battle_controller_recorded_opponent.s RecordedOpponentHandleHitAnimation +08189048 battle_controller_recorded_opponent.s RecordedOpponentHandleCmd42 +08189054 battle_controller_recorded_opponent.s RecordedOpponentHandlePlaySE +08189098 battle_controller_recorded_opponent.s RecordedOpponentHandlePlayFanfareOrBGM +081890f4 battle_controller_recorded_opponent.s RecordedOpponentHandleFaintingCry +08189130 battle_controller_recorded_opponent.s RecordedOpponentHandleIntroSlide +08189164 battle_controller_recorded_opponent.s RecordedOpponentHandleIntroTrainerBallThrow +08189274 battle_controller_recorded_opponent.s sub_08189274 +08189358 battle_controller_recorded_opponent.s sub_08189358_jp +08189374 battle_controller_recorded_opponent.s RecordedOpponentHandleDrawPartyStatusSummary +08189488 battle_controller_recorded_opponent.s sub_08189488 +081894d0 battle_controller_recorded_opponent.s RecordedOpponentHandleHidePartyStatusSummary +08189520 battle_controller_recorded_opponent.s RecordedOpponentHandleEndBounceEffect +0818952c battle_controller_recorded_opponent.s RecordedOpponentHandleSpriteInvisibility +0818958c battle_controller_recorded_opponent.s RecordedOpponentHandleBattleAnimation +081895f4 battle_controller_recorded_opponent.s RecordedOpponentHandleLinkStandbyMsg +08189600 battle_controller_recorded_opponent.s RecordedOpponentHandleResetActionMoveSelection +0818960c battle_controller_recorded_opponent.s RecordedOpponentHandleCmd55 +08189670 battle_controller_recorded_opponent.s RecordedOpponentCmdEnd +battle_controller_recorded_player.s +08189674 battle_controller_recorded_player.s nullsub_120 +08189678 battle_controller_recorded_player.s SetControllerToRecordedPlayer +08189694 battle_controller_recorded_player.s RecordedPlayerBufferRunCommand +081896e4 battle_controller_recorded_player.s sub_081896E4_jp +0818971c battle_controller_recorded_player.s sub_0818971C_jp +08189784 battle_controller_recorded_player.s sub_08189784_jp +081897cc battle_controller_recorded_player.s sub_081897CC_jp +08189a6c battle_controller_recorded_player.s sub_08189A6C_jp +08189d90 battle_controller_recorded_player.s RecordedPlayerHandleBallThrowAnim +08189dd0 battle_controller_recorded_player.s sub_08189DD0_jp +08189e40 battle_controller_recorded_player.s sub_08189E40_jp +08189edc battle_controller_recorded_player.s sub_08189EDC_jp +08189f4c battle_controller_recorded_player.s RecordedPlayerHandleChosenMonReturnValue +08189f64 battle_controller_recorded_player.s RecordedPlayerHandleHitAnimation +08189fe0 battle_controller_recorded_player.s sub_08189FE0_jp +0818a054 battle_controller_recorded_player.s sub_0818A054_jp +0818a0a8 battle_controller_recorded_player.s sub_0818A0A8_jp +0818a19c battle_controller_recorded_player.s sub_0818A19C +0818a240 battle_controller_recorded_player.s RecordedPlayerBufferExecCompleted +0818a2b8 battle_controller_recorded_player.s RecordedPlayerHandleGetRawMonData +0818a2e8 battle_controller_recorded_player.s RecordedPlayerHandleOneReturnValue +0818a318 battle_controller_recorded_player.s RecordedPlayerHandleGetMonData +0818a38c battle_controller_recorded_player.s CopyRecordedPlayerMonData +0818ab38 battle_controller_recorded_player.s RecordedPlayerHandleSuccessBallThrowAnim +0818ab44 battle_controller_recorded_player.s RecordedPlayerHandleSetMonData +0818ab9c battle_controller_recorded_player.s SetRecordedPlayerMonData +0818b598 battle_controller_recorded_player.s RecordedPlayerHandleSetRawMonData +0818b60c battle_controller_recorded_player.s RecordedPlayerHandleLoadMonSprite +0818b728 battle_controller_recorded_player.s RecordedPlayerHandleSwitchInAnim +0818b798 battle_controller_recorded_player.s sub_0818B798 +0818b914 battle_controller_recorded_player.s RecordedPlayerHandleReturnMonToBall +0818b9a4 battle_controller_recorded_player.s sub_0818B9A4_jp +0818ba30 battle_controller_recorded_player.s RecordedPlayerHandleDrawTrainerPic +0818bcd8 battle_controller_recorded_player.s RecordedPlayerHandleTrainerSlide +0818bce4 battle_controller_recorded_player.s RecordedPlayerHandleTrainerSlideBack +0818bd90 battle_controller_recorded_player.s RecordedPlayerHandleFaintAnimation +0818be7c battle_controller_recorded_player.s RecordedPlayerHandlePaletteFade +0818be88 battle_controller_recorded_player.s RecordedPlayerHandleTwoReturnValues +0818be94 battle_controller_recorded_player.s RecordedPlayerHandleChoosePokemon +0818bea0 battle_controller_recorded_player.s RecordedPlayerHandlePause +0818beac battle_controller_recorded_player.s RecordedPlayerHandleMoveAnimation +0818bfe4 battle_controller_recorded_player.s RecordedPlayerDoMoveAnimation +0818c168 battle_controller_recorded_player.s RecordedPlayerHandlePrintString +0818c1bc battle_controller_recorded_player.s RecordedPlayerHandlePrintSelectionString +0818c1c8 battle_controller_recorded_player.s ChooseActionInBattlePalace +0818c204 battle_controller_recorded_player.s RecordedPlayerHandleChooseAction +0818c258 battle_controller_recorded_player.s RecordedPlayerHandleUnknownYesNoBox +0818c264 battle_controller_recorded_player.s RecordedPlayerHandleChooseMove +0818c2c0 battle_controller_recorded_player.s RecordedPlayerHandleChooseItem +0818c2cc battle_controller_recorded_player.s RecordedPlayerHandlePlaySE +0818c308 battle_controller_recorded_player.s RecordedPlayerHandleCmd23 +0818c314 battle_controller_recorded_player.s RecordedPlayerHandleHealthBarUpdate +0818c414 battle_controller_recorded_player.s RecordedPlayerHandleExpUpdate +0818c420 battle_controller_recorded_player.s RecordedPlayerHandleStatusIconUpdate +0818c498 battle_controller_recorded_player.s RecordedPlayerHandleStatusAnimation +0818c500 battle_controller_recorded_player.s RecordedPlayerHandleStatusXor +0818c50c battle_controller_recorded_player.s RecordedPlayerHandleDataTransfer +0818c518 battle_controller_recorded_player.s RecordedPlayerHandleDMA3Transfer +0818c524 battle_controller_recorded_player.s RecordedPlayerHandlePlayBGM +0818c530 battle_controller_recorded_player.s RecordedPlayerHandleCmd32 +0818c53c battle_controller_recorded_player.s sub_0818C53C_jp +0818c548 battle_controller_recorded_player.s sub_0818C548_jp +0818c554 battle_controller_recorded_player.s sub_0818C554 +0818c560 battle_controller_recorded_player.s RecordedPlayerHandleOneReturnValue_Duplicate +0818c56c battle_controller_recorded_player.s RecordedPlayerHandleCmd37 +0818c588 battle_controller_recorded_player.s RecordedPlayerHandleCmd38 +0818c5c0 battle_controller_recorded_player.s RecordedPlayerHandleCmd39 +0818c5d8 battle_controller_recorded_player.s RecordedPlayerHandleCmd40 +0818c600 battle_controller_recorded_player.s sub_0818C600 +0818c670 battle_controller_recorded_player.s RecordedPlayerHandleCmd42 +0818c67c battle_controller_recorded_player.s sub_0818C67C +0818c6c0 battle_controller_recorded_player.s RecordedPlayerHandlePlayFanfareOrBGM +0818c71c battle_controller_recorded_player.s RecordedPlayerHandleFaintingCry +0818c75c battle_controller_recorded_player.s RecordedPlayerHandleIntroSlide +0818c790 battle_controller_recorded_player.s RecordedPlayerHandleIntroTrainerBallThrow +0818c950 battle_controller_recorded_player.s sub_0818C950 +0818ca5c battle_controller_recorded_player.s RecordedPlayerHandleDrawPartyStatusSummary +0818cb20 battle_controller_recorded_player.s sub_0818CB20 +0818cb68 battle_controller_recorded_player.s RecordedPlayerHandleHidePartyStatusSummary +0818cbb8 battle_controller_recorded_player.s RecordedPlayerHandleEndBounceEffect +0818cbc4 battle_controller_recorded_player.s RecordedPlayerHandleSpriteInvisibility +0818cc24 battle_controller_recorded_player.s RecordedPlayerHandleBattleAnimation +0818cc8c battle_controller_recorded_player.s RecordedPlayerHandleLinkStandbyMsg +0818cc98 battle_controller_recorded_player.s RecordedPlayerHandleResetActionMoveSelection +0818cca4 battle_controller_recorded_player.s RecordedPlayerHandleCmd55 +0818ccf0 battle_controller_recorded_player.s RecordedPlayerCmdEnd +trainer_pokemon_sprites.s +0818ccf4 trainer_pokemon_sprites.s DummyPicSpriteCallback +0818ccf8 trainer_pokemon_sprites.s ResetAllPicSprites +0818cd20 trainer_pokemon_sprites.s DecompressPic +0818cdc8 trainer_pokemon_sprites.s DecompressPic_HandleDeoxys +0818cdf0 trainer_pokemon_sprites.s LoadPicPaletteByTagOrSlot +0818ceac trainer_pokemon_sprites.s LoadPicPaletteBySlot +0818ceec trainer_pokemon_sprites.s AssignSpriteAnimsTable +0818cf18 trainer_pokemon_sprites.s CreatePicSprite +0818d0b0 trainer_pokemon_sprites.s CreatePicSprite_HandleDeoxys +0818d110 trainer_pokemon_sprites.s CreatePicSprite2 +0818d2dc trainer_pokemon_sprites.s FreeAndDestroyPicSpriteInternal +0818d388 trainer_pokemon_sprites.s sub_0818D388 +0818d3f8 trainer_pokemon_sprites.s sub_0818D3F8 +0818d4a4 trainer_pokemon_sprites.s CreateMonPicSprite +0818d504 trainer_pokemon_sprites.s CreateMonPicSprite_HandleDeoxys +0818d54c trainer_pokemon_sprites.s FreeAndDestroyMonPicSprite +0818d560 trainer_pokemon_sprites.s sub_0818D560 +0818d590 trainer_pokemon_sprites.s sub_0818D590 +0818d5d8 trainer_pokemon_sprites.s CreateTrainerPicSprite +0818d61c trainer_pokemon_sprites.s FreeAndDestroyTrainerPicSprite +0818d630 trainer_pokemon_sprites.s sub_0818D630 +0818d664 trainer_pokemon_sprites.s sub_0818D664 +0818d6a8 trainer_pokemon_sprites.s PlayerGenderToFrontTrainerPicId_Debug +lilycove_lady.s +0818d6d8 lilycove_lady.s GetLilycoveLadyId +0818d6ec lilycove_lady.s sub_0818D6EC_jp +0818d75c lilycove_lady.s SetLilycoveLady +0818d7a4 lilycove_lady.s sub_0818D7A4_jp +0818d7d8 lilycove_lady.s SetLilycoveLadyRandomly +0818d818 lilycove_lady.s sub_0818D818 +0818d830 lilycove_lady.s sub_0818D830_jp +0818d84c lilycove_lady.s sub_0818D84C_jp +0818d8a8 lilycove_lady.s SetLilycoveFavourLady +0818d8f0 lilycove_lady.s sub_0818D8F0 +0818d914 lilycove_lady.s sub_0818D914_jp +0818d948 lilycove_lady.s sub_0818D948_jp +0818d958 lilycove_lady.s sub_0818D958_jp +0818d98c lilycove_lady.s sub_0818D98C_jp +0818d9c8 lilycove_lady.s sub_0818D9C8_jp +0818d9e4 lilycove_lady.s sub_0818D9E4_jp +0818da10 lilycove_lady.s sub_0818DA10_jp +0818da30 lilycove_lady.s sub_0818DA30_jp +0818da60 lilycove_lady.s sub_0818DA60_jp +0818da84 lilycove_lady.s sub_0818DA84_jp +0818da90 lilycove_lady.s sub_0818DA90_jp +0818db50 lilycove_lady.s sub_0818DB50_jp +0818db68 lilycove_lady.s sub_0818DB68_jp +0818db94 lilycove_lady.s sub_0818DB94_jp +0818dbac lilycove_lady.s sub_0818DBAC_jp +0818dbe8 lilycove_lady.s sub_0818DBE8_jp +0818dc00 lilycove_lady.s sub_0818DC00_jp +0818dc0c lilycove_lady.s sub_0818DC0C +0818dc74 lilycove_lady.s SetLilycoveQuizLady +0818dd10 lilycove_lady.s sub_0818DD10 +0818dd44 lilycove_lady.s sub_0818DD44_jp +0818dd78 lilycove_lady.s sub_0818DD78_jp +0818dda4 lilycove_lady.s sub_0818DDA4_jp +0818de50 lilycove_lady.s sub_0818DE50_jp +0818deb4 lilycove_lady.s sub_0818DEB4_jp +0818ded0 lilycove_lady.s sub_0818DED0_jp +0818def4 lilycove_lady.s sub_0818DEF4_jp +0818df34 lilycove_lady.s sub_0818DF34_jp +0818df58 lilycove_lady.s sub_0818DF58_jp +0818df64 lilycove_lady.s sub_0818DF64_jp +0818dfb4 lilycove_lady.s sub_0818DFB4_jp +0818dfd8 lilycove_lady.s sub_0818DFD8_jp +0818dff8 lilycove_lady.s sub_0818DFF8_jp +0818e018 lilycove_lady.s sub_0818E018_jp +0818e03c lilycove_lady.s sub_0818E03C_jp +0818e048 lilycove_lady.s sub_0818E048_jp +0818e08c lilycove_lady.s sub_0818E08C_jp +0818e0d8 lilycove_lady.s sub_0818E0D8_jp +0818e0ec lilycove_lady.s sub_0818E0EC_jp +0818e100 lilycove_lady.s sub_0818E100_jp +0818e16c lilycove_lady.s sub_0818E16C_jp +0818e194 lilycove_lady.s sub_0818E194_jp +0818e1c0 lilycove_lady.s sub_0818E1C0_jp +0818e1cc lilycove_lady.s sub_0818E1CC_jp +0818e260 lilycove_lady.s sub_0818E260_jp +0818e294 lilycove_lady.s SetLilycoveContestLady +0818e2d0 lilycove_lady.s sub_0818E2D0 +0818e30c lilycove_lady.s sub_0818E30C +0818e360 lilycove_lady.s GivePokeblockToContestLady +0818e3f0 lilycove_lady.s sub_0818E3F0_jp +0818e43c lilycove_lady.s sub_0818E43C_jp +0818e478 lilycove_lady.s sub_0818E478_jp +0818e4a4 lilycove_lady.s sub_0818E4A4_jp +0818e4c4 lilycove_lady.s sub_0818E4C4_jp +0818e4dc lilycove_lady.s sub_0818E4DC_jp +0818e510 lilycove_lady.s sub_0818E510_jp +0818e53c lilycove_lady.s sub_0818E53C_jp +0818e570 lilycove_lady.s sub_0818E570_jp +0818e588 lilycove_lady.s sub_0818E588_jp +0818e59c lilycove_lady.s sub_0818E59C_jp +0818e5bc lilycove_lady.s sub_0818E5BC_jp +0818e5ec lilycove_lady.s sub_0818E5EC_jp +0818e608 lilycove_lady.s sub_0818E608_jp +battle_dome.s +0818e61c battle_dome.s ReduceDomePlayerPartyTo3Mons +0818e628 battle_dome.s InitDomeChallenge +0818e6e0 battle_dome.s GetDomeData +0818e984 battle_dome.s SetDomeData +0818ec88 battle_dome.s InitDomeTrainers +0818f37c battle_dome.s CalcDomeMonStats +0818f560 battle_dome.s SwapDomeTrainers +0818f60c battle_dome.s BufferDomeRoundText +0818f63c battle_dome.s BufferDomeOpponentName +0818f67c battle_dome.s InitDomeOpponentParty +0818f6d0 battle_dome.s CreateDomeOpponentMon +0818f838 battle_dome.s CreateDomeOpponentMons +0818f8d4 battle_dome.s GetDomeTrainerMonCountInBits +0818f918 battle_dome.s sub_0818F918 +0818fa14 battle_dome.s sub_0818FA14_jp +0818fb10 battle_dome.s sub_0818FB10 +0818fc1c battle_dome.s GetTypeEffectivenessPoints +0818fdc4 battle_dome.s GetDomeTrainerMonIvs +0818fdfc battle_dome.s TournamentIdOfOpponent +0818fef4 battle_dome.s SetDomeOpponentId +0818ff08 battle_dome.s TrainerIdOfPlayerOpponent +0818ff40 battle_dome.s SetDomeOpponentGraphicsId +0818ff54 battle_dome.s sub_0818FF54_jp +0818ff98 battle_dome.s UpdateDomeStreaks +08190014 battle_dome.s ShowDomeOpponentInfo +0819005c battle_dome.s Task_ShowOpponentInfo +081903ec battle_dome.s SpriteCb_TrainerIconCardScrollUp +08190454 battle_dome.s SpriteCb_TrainerIconCardScrollDown +081904bc battle_dome.s SpriteCb_TrainerIconCardScrollLeft +08190528 battle_dome.s SpriteCb_TrainerIconCardScrollRight +08190594 battle_dome.s SpriteCb_MonIcon +081905ac battle_dome.s SpriteCb_MonIconCardScrollUp +08190628 battle_dome.s SpriteCb_MonIconCardScrollDown +081906a4 battle_dome.s SpriteCb_MonIconCardScrollLeft +08190720 battle_dome.s SpriteCb_MonIconCardScrollRight +0819079c battle_dome.s sub_0819079C +081908c8 battle_dome.s sub_081908C8_jp +08190930 battle_dome.s sub_08190930_jp +08191e78 battle_dome.s sub_08191E78 +0819213c battle_dome.s DisplayTrainerInfoOnCard +08192b3c battle_dome.s sub_08192B3C_jp +08192d7c battle_dome.s DisplayMatchInfoOnCard +08193484 battle_dome.s ShowDomeTourneyTree +081934c0 battle_dome.s ShowPreviousDomeResultsTourneyTree +0819353c battle_dome.s sub_0819353C_jp +081937bc battle_dome.s UpdateTourneyTreeCursor +08193920 battle_dome.s ShowNonInteractiveDomeTourneyTree +0819395c battle_dome.s ResolveDomeRoundWinners +08193ab0 battle_dome.s GetWinningMove +08193e00 battle_dome.s Task_ShowTourneyTree +08194490 battle_dome.s sub_08194490 +081944f4 battle_dome.s sub_081944F4 +08194754 battle_dome.s CB2_BattleDome +08194770 battle_dome.s VblankCb0_BattleDome +081947ec battle_dome.s HblankCb_BattleDome +081948e4 battle_dome.s VblankCb1_BattleDome +08194948 battle_dome.s InitDomeFacilityTrainersAndMons +08194968 battle_dome.s RestoreDomePlayerParty +08194a44 battle_dome.s RestoreDomePlayerPartyHeldItems +08194ab4 battle_dome.s GetDomeBrainTrainerPicId +08194ac0 battle_dome.s GetPlayerSeededBeforeOpponent +08194af8 battle_dome.s BufferLastDomeWinnerName +08194b58 battle_dome.s sub_08194B58 +08194f58 battle_dome.s TrainerIdToDomeTournamentId +08194fa0 battle_dome.s TrainerIdToTournamentId +08194fe8 battle_dome.s sub_08194FE8_jp +08195038 battle_dome.s DecideRoundWinners +08195498 battle_dome.s CopyDomeTrainerName +08195510 battle_dome.s CallBattleDomeFunction +08195524 battle_dome.s GetDomeBrainTrainerClass +08195538 battle_dome.s CopyDomeBrainTrainerName +battle_palace.s +08195560 battle_palace.s CallBattlePalaceFunction +08195574 battle_palace.s sub_08195574_jp +08195580 battle_palace.s sub_08195580_jp +08195638 battle_palace.s sub_08195638_jp +081956e4 battle_palace.s sub_081956E4_jp +081957b0 battle_palace.s sub_081957B0_jp +08195820 battle_palace.s sub_08195820_jp +08195850 battle_palace.s sub_08195850_jp +0819587c battle_palace.s sub_0819587C_jp +081958e4 battle_palace.s sub_081958E4_jp +08195928 battle_palace.s sub_08195928_jp +081959b8 battle_palace.s sub_081959B8 +match_call.s +08195a10 match_call.s InitMatchCallCounters +08195a34 match_call.s GetCurrentTotalMinutes +08195a58 match_call.s UpdateMatchCallMinutesCounter +08195a8c match_call.s CheckMatchCallChance +08195ad8 match_call.s MapAllowsMatchCall +08195b40 match_call.s UpdateMatchCallStepCounter +08195b68 match_call.s SelectMatchCallTrainer +08195bcc match_call.s GetNumRegisteredNPCs +08195bf8 match_call.s GetActiveMatchCallTrainerId +08195c34 match_call.s TryStartMatchCall +08195c80 match_call.s StartMatchCallFromScript +08195c94 match_call.s IsMatchCallTaskActive +08195ca8 match_call.s StartMatchCall +08195ce0 match_call.s ExecuteMatchCall +08195d2c match_call.s LoadMatchCallWindowGfx +08195df0 match_call.s MoveMatchCallWindowToVram +08195e74 match_call.s PrintMatchCallIntroEllipsis +08195eb0 match_call.s sub_08195EB0_jp +08195ed8 match_call.s sub_08195ED8_jp +08195f30 match_call.s sub_08195F30_jp +08195f90 match_call.s sub_08195F90_jp +08195ff0 match_call.s sub_08195FF0_jp +0819605c match_call.s DrawMatchCallTextBoxBorder +081961d8 match_call.s InitMatchCallTextPrinter +08196248 match_call.s ExecuteMatchCallTextPrinter +08196294 match_call.s sub_08196294 +08196310 match_call.s TrainerIsEligibleForRematch +0819632c match_call.s GetRematchTrainerLocation +08196348 match_call.s GetNumRematchTrainersFought +08196374 match_call.s sub_08196374_jp +081963ac match_call.s SelectMatchCallMessage +08196444 match_call.s GetTrainerMatchCallId +08196464 match_call.s GetSameRouteMatchCallText +08196490 match_call.s GetDifferentRouteMatchCallText +081964bc match_call.s GetBattleMatchCallText +08196510 match_call.s GetGeneralMatchCallText +081965e0 match_call.s BuildMatchCallString +081965fc match_call.s PopulateMatchCallStringVars +0819662c match_call.s PopulateMatchCallStringVar +08196644 match_call.s PopulateTrainerName +08196698 match_call.s PopulateMapName +081966b4 match_call.s GetLandEncounterSlot +0819674c match_call.s GetWaterEncounterSlot +08196794 match_call.s PopulateSpeciesFromTrainerLocation +0819686c match_call.s PopulateSpeciesFromTrainerParty +081968e8 match_call.s PopulateBattleFrontierFacilityName +08196908 match_call.s PopulateBattleFrontierStreak +08196940 match_call.s GetNumOwnedBadges +08196968 match_call.s sub_08196968_jp +081969f8 match_call.s GetFrontierStreakInfo +08196b84 match_call.s GetPokedexRatingLevel +08196c74 match_call.s sub_08196C74_jp +08196d78 match_call.s sub_08196D78_jp +08196db8 match_call.s sub_08196DB8_jp +menu.s +08196dc4 menu.s InitStandardTextBoxWindows +08196de8 menu.s FreeAllOverworldWindowBuffers +08196df4 menu.s sub_08196DF4_jp +08196e18 menu.s RunTextPrintersAndIsPrinter0Active +08196e2c menu.s AddTextPrinterParameterized2 +08196eb8 menu.s AddTextPrinterForMessage +08196f04 menu.s AddTextPrinterForMessage_2 +08196f50 menu.s AddTextPrinterWithCustomSpeedForMessage +08196f98 menu.s sub_08196F98_jp +08196fb8 menu.s ClearDialogWindowAndFrame +08196ff0 menu.s ClearStdWindowAndFrame +08197028 menu.s DrawDialogueFrame +08197060 menu.s DrawStdWindowFrame +08197098 menu.s WindowFunc_DrawStandardFrame +081971e8 menu.s WindowFunc_DrawDialogueFrame +081975a0 menu.s WindowFunc_ClearStdWindowAndFrame +081975e8 menu.s WindowFunc_ClearDialogWindowAndFrame +08197638 menu.s SetStandardWindowBorderStyle +08197650 menu.s sub_08197650_jp +08197680 menu.s sub_08197680_jp +08197694 menu.s Menu_LoadStdPalAt +081976ac menu.s sub_081976AC +081976b4 menu.s sub_081976B4 +081976d0 menu.s DisplayItemMessageOnField +08197714 menu.s DisplayYesNoMenuDefaultYes +0819773c menu.s DisplayYesNoMenuWithDefault +08197768 menu.s GetPlayerTextSpeed +08197794 menu.s GetPlayerTextSpeedDelay +081977c8 menu.s sub_081977C8_jp +0819780c menu.s GetStartMenuWindowId +08197818 menu.s RemoveMapNamePopUpWindow +08197834 menu.s sub_08197834_jp +0819783c menu.s sub_0819783C +08197844 menu.s AddMapNamePopUpWindow +0819787c menu.s GetMapNamePopUpWindowId +08197888 menu.s RemoveStartMenuWindow +081978a4 menu.s AddTextPrinterWithCallbackForMessage +081978f0 menu.s sub_081978F0_jp +08197924 menu.s DrawDialogFrameWithCustomTileAndPalette +0819796c menu.s DrawDialogFrameWithCustomTile +081979bc menu.s WindowFunc_DrawDialogFrameWithCustomTileAndPalette +08197ebc menu.s ClearDialogWindowAndFrameToTransparent +08197ef4 menu.s WindowFunc_ClearDialogWindowAndFrameNullPalette +08197f44 menu.s DrawStdFrameWithCustomTileAndPalette +08197f8c menu.s DrawStdFrameWithCustomTile +08197fdc menu.s WindowFunc_DrawStdFrameWithCustomTileAndPalette +08198134 menu.s ClearStdWindowAndFrameToTransparent +0819816c menu.s WindowFunc_ClearStdWindowAndFrameToTransparent +081981b4 menu.s sub_081981B4_jp +08198244 menu.s sub_08198244_jp +081982e8 menu.s sub_081982E8_jp +081983dc menu.s sub_081983DC_jp +081983f4 menu.s sub_081983F4_jp +08198418 menu.s sub_08198418_jp +0819844c menu.s sub_0819844C_jp +081984b0 menu.s sub_081984B0_jp +081984f0 menu.s sub_081984F0 +0819854c menu.s RedrawMenuCursor +081985e8 menu.s Menu_MoveCursor +0819862c menu.s Menu_MoveCursorNoWrapAround +08198670 menu.s Menu_GetCursorPos +0819867c menu.s Menu_ProcessInput +081986e8 menu.s Menu_ProcessInputNoWrap +08198768 menu.s ProcessMenuInput_other +081987d4 menu.s Menu_ProcessInputNoWrapAround_other +08198850 menu.s PrintTextArray +081988cc menu.s sub_081988CC +08198964 menu.s sub_08198964 +081989b4 menu.s AddItemMenuActionTextPrinters +08198ac8 menu.s sub_08198AC8 +08198b34 menu.s SetWindowTemplateFields +08198b60 menu.s CreateWindowTemplate +08198bb4 menu.s sub_08198BB4 +08198c08 menu.s sub_08198C08_jp +08198d44 menu.s sub_08198D44_jp +08198d68 menu.s Menu_ProcessInputNoWrapClearOnChoose +08198d88 menu.s sub_08198D88 +08198da4 menu.s sub_08198DA4_jp +08198e64 menu.s sub_08198E64_jp +08198ecc menu.s sub_08198ECC_jp +08199008 menu.s sub_08199008_jp +08199068 menu.s sub_08199068_jp +081990e4 menu.s sub_081990E4_jp +08199170 menu.s sub_08199170_jp +08199250 menu.s sub_08199250_jp +08199314 menu.s sub_08199314_jp +081993a0 menu.s sub_081993A0_jp +08199450 menu.s Menu_ProcessInputGridLayout +081994f4 menu.s sub_081994F4_jp +081995a0 menu.s sub_081995A0_jp +08199640 menu.s clear_scheduled_bg_copies_to_vram +08199654 menu.s schedule_bg_copy_tilemap_to_vram +08199668 menu.s do_scheduled_bg_tilemap_copies_to_vram +081996b8 menu.s reset_temp_tile_data_buffers +081996dc menu.s free_temp_tile_data_buffers_if_possible +08199728 menu.s decompress_and_copy_tile_data_to_vram +081997a0 menu.s DecompressAndLoadBgGfxUsingHeap +0819981c menu.s task_free_buf_after_copying_tile_data_to_vram +08199858 menu.s malloc_and_decompress +08199888 menu.s copy_decompressed_tile_data_to_vram +081998c8 menu.s sub_081998C8 +08199954 menu.s sub_08199954_jp +081999d4 menu.s sub_081999D4 +08199a30 menu.s ResetBgPositions +08199a88 menu.s sub_08199A88_jp +08199afc menu.s AddTextPrinterParameterized3 +08199b84 menu.s AddTextPrinterParameterized4 +08199c0c menu.s AddTextPrinterParameterized5 +08199cbc menu.s PrintPlayerNameOnWindow +08199d18 menu.s sub_08199D18 +08199ef4 menu.s sub_08199EF4_jp +08199f14 menu.s sub_08199F14_jp +08199f54 menu.s sub_08199F54_jp +08199f90 menu.s blit_move_info_icon +08199fdc menu.s sub_08199FDC_jp +battle_factory_screen.s +0819a0ec battle_factory_screen.s sub_0819A0EC_jp +0819a168 battle_factory_screen.s Select_CB2 +0819a184 battle_factory_screen.s Select_VblankCb +0819a198 battle_factory_screen.s DoBattleFactorySelectScreen +0819a1b4 battle_factory_screen.s CB2_InitSelectScreen +0819a64c battle_factory_screen.s Select_InitMonsData +0819a6b8 battle_factory_screen.s Select_InitAllSprites +0819a7e0 battle_factory_screen.s Select_DestroyAllSprites +0819a848 battle_factory_screen.s Select_UpdateBallCursorPosition +0819a8b0 battle_factory_screen.s Select_UpdateMenuCursorPosition +0819a918 battle_factory_screen.s Select_UpdateYesNoCursorPosition +0819a980 battle_factory_screen.s Select_HandleMonSelectionChange +0819aa4c battle_factory_screen.s Select_SetBallSpritePaletteNum +0819aaa8 battle_factory_screen.s Task_FromSelectScreenToSummaryScreen +0819ac08 battle_factory_screen.s Task_CloseSelectionScreen +0819accc battle_factory_screen.s Task_HandleSelectionScreenYesNo +0819adc4 battle_factory_screen.s Task_HandleSelectionScreenMenu +0819b018 battle_factory_screen.s Task_HandleSelectionScreenChooseMons +0819b124 battle_factory_screen.s CreateFrontierFactorySelectableMons +0819b2dc battle_factory_screen.s CreateTentFactorySelectableMons +0819b404 battle_factory_screen.s Select_CopyMonsToPlayerParty +0819b4e4 battle_factory_screen.s Select_ShowMenuOptions +0819b574 battle_factory_screen.s Select_ShowYesNoOptions +0819b5f8 battle_factory_screen.s sub_0819B5F8_jp +0819b654 battle_factory_screen.s Select_PrintRentalPkmnString +0819b688 battle_factory_screen.s Select_PrintMonSpecies +0819b708 battle_factory_screen.s Select_PrintSelectMonString +0819b76c battle_factory_screen.s Select_PrintCantSelectSameMon +0819b7a0 battle_factory_screen.s Select_PrintMenuOptions +0819b84c battle_factory_screen.s Select_PrintYesNoOptions +0819b8a8 battle_factory_screen.s Select_RunMenuOptionFunc +0819b8c0 battle_factory_screen.s sub_0819B8C0_jp +0819b8d4 battle_factory_screen.s Select_OptionRentDeselect +0819b940 battle_factory_screen.s sub_0819B940_jp +0819b970 battle_factory_screen.s Select_OptionSummary +0819b974 battle_factory_screen.s Select_OptionOthers +0819b99c battle_factory_screen.s Select_PrintMonCategory +0819ba58 battle_factory_screen.s Summary_ShowMonSprite +0819bb08 battle_factory_screen.s sub_0819BB08 +0819bb1c battle_factory_screen.s Select_ShowSummaryMonSprite +0819bc14 battle_factory_screen.s Select_ShowChosenMonsSprites +0819bd28 battle_factory_screen.s sub_0819BD28 +0819bde8 battle_factory_screen.s sub_0819BDE8_jp +0819beb8 battle_factory_screen.s sub_0819BEB8_jp +0819bfbc battle_factory_screen.s sub_0819BFBC_jp +0819c19c battle_factory_screen.s sub_0819C19C_jp +0819c250 battle_factory_screen.s sub_0819C250_jp +0819c2b8 battle_factory_screen.s Select_SetWinRegs +0819c31c battle_factory_screen.s Select_AreSpeciesValid +0819c384 battle_factory_screen.s Task_SelectFadeSpeciesName +0819c4c8 battle_factory_screen.s Swap_CB2 +0819c4e4 battle_factory_screen.s Swap_VblankCb +0819c4f8 battle_factory_screen.s CopySwappedMonData +0819c5f4 battle_factory_screen.s Task_FromSwapScreenToSummaryScreen +0819c6f0 battle_factory_screen.s Task_CloseSwapScreen +0819c804 battle_factory_screen.s Task_HandleSwapScreenYesNo +0819c8c4 battle_factory_screen.s sub_0819C8C4 +0819c90c battle_factory_screen.s sub_0819C90C_jp +0819c95c battle_factory_screen.s sub_0819C95C_jp +0819c9bc battle_factory_screen.s sub_0819C9BC +0819ca1c battle_factory_screen.s Task_HandleSwapScreenMenu +0819cb28 battle_factory_screen.s Task_HandleSwapScreenChooseMons +0819cc3c battle_factory_screen.s Task_SwapFadeSpeciesName +0819cd4c battle_factory_screen.s Task_SwapFadeSpeciesName2 +0819ce14 battle_factory_screen.s sub_0819CE14 +0819d00c battle_factory_screen.s sub_0819D00C_jp +0819d270 battle_factory_screen.s sub_0819D270_jp +0819d458 battle_factory_screen.s sub_0819D458_jp +0819d6d4 battle_factory_screen.s sub_0819D6D4_jp +0819d8c0 battle_factory_screen.s Swap_InitStruct +0819d8e8 battle_factory_screen.s DoBattleFactorySwapScreen +0819d904 battle_factory_screen.s CB2_InitSwapScreen +0819ddc8 battle_factory_screen.s Swap_InitAllSprites +0819e240 battle_factory_screen.s Swap_DestroyAllSprites +0819e310 battle_factory_screen.s Swap_HandleActionCursorChange +0819e39c battle_factory_screen.s Swap_UpdateBallCursorPosition +0819e3f0 battle_factory_screen.s Swap_UpdateActionCursorPosition +0819e460 battle_factory_screen.s Swap_UpdateYesNoCursorPosition +0819e4c8 battle_factory_screen.s Swap_UpdateMenuCursorPosition +0819e540 battle_factory_screen.s sub_0819E540 +0819e5f4 battle_factory_screen.s sub_0819E5F4 +0819e64c battle_factory_screen.s Swap_ShowMenuOptions +0819e6e8 battle_factory_screen.s Swap_ShowYesNoOptions +0819e76c battle_factory_screen.s sub_0819E76C +0819e7c8 battle_factory_screen.s sub_0819E7C8_jp +0819e7fc battle_factory_screen.s sub_0819E7FC_jp +0819e844 battle_factory_screen.s sub_0819E844_jp +0819e864 battle_factory_screen.s Swap_PrintPkmnSwap +0819e898 battle_factory_screen.s Swap_PrintMonSpecies +0819e93c battle_factory_screen.s Swap_PrintOnInfoWindow +0819e970 battle_factory_screen.s Swap_PrintMenuOptions +0819e9e4 battle_factory_screen.s Swap_PrintYesNoOptions +0819ea40 battle_factory_screen.s Swap_PrintActionString +0819eab0 battle_factory_screen.s Swap_PrintActionStrings +0819eb18 battle_factory_screen.s Swap_PrintActionStrings2 +0819eb80 battle_factory_screen.s Swap_PrintOneActionString +0819ebf0 battle_factory_screen.s Swap_PrintMonSpecies2 +0819ed38 battle_factory_screen.s Swap_PrintMonSpecies3 +0819ee50 battle_factory_screen.s Swap_PrintMonCategory +0819ef34 battle_factory_screen.s Swap_InitActions +0819ef8c battle_factory_screen.s Swap_RunMenuOptionFunc +0819efb8 battle_factory_screen.s sub_0819EFB8 +0819f000 battle_factory_screen.s sub_0819F000_jp +0819f020 battle_factory_screen.s sub_0819F020 +0819f070 battle_factory_screen.s Swap_RunActionFunc +0819f098 battle_factory_screen.s Swap_ActionCancel +0819f0c8 battle_factory_screen.s Swap_ActionPkmnForSwap +0819f0f8 battle_factory_screen.s Swap_ActionMon +0819f1a0 battle_factory_screen.s sub_0819F1A0 +0819f1f0 battle_factory_screen.s Swap_ShowSummaryMonSprite +0819f2e4 battle_factory_screen.s sub_0819F2E4_jp +0819f330 battle_factory_screen.s sub_0819F330_jp +0819f374 battle_factory_screen.s Task_SwapCantHaveSameMons +0819f488 battle_factory_screen.s Swap_AlreadyHasSameSpecies +0819f4ec battle_factory_screen.s sub_0819F4EC_jp +0819f540 battle_factory_screen.s sub_0819F540_jp +0819f588 battle_factory_screen.s sub_0819F588_jp +0819f6a0 battle_factory_screen.s sub_0819F6A0 +0819f7cc battle_factory_screen.s Swap_ShowMonSprite +apprentice.s +0819f888 apprentice.s CopyFriendsApprenticeChallengeText +0819f928 apprentice.s Apprentice_EnableBothScriptContexts +0819f934 apprentice.s ResetApprenticeStruct +0819f978 apprentice.s ResetAllApprenticeData +0819fa88 apprentice.s IsPlayersApprenticeActive +0819faa0 apprentice.s sub_0819FAA0 +0819fb18 apprentice.s SetPlayersApprenticeLvlMode +0819fb38 apprentice.s sub_0819FB38 +0819fbd0 apprentice.s sub_0819FBD0_jp +0819fc3c apprentice.s sub_0819FC3C_jp +0819fe70 apprentice.s sub_0819FE70_jp +081a0070 apprentice.s sub_081A0070 +081a00c4 apprentice.s GetLatestLearnedMoves +081a0160 apprentice.s sub_081A0160 +081a026c apprentice.s sub_081A026C_jp +081a03c4 apprentice.s CreateMenuWithAnswers +081a05d4 apprentice.s Task_ChooseAnswer +081a064c apprentice.s CreateAndShowWindow +081a06b0 apprentice.s RemoveAndHideWindow +081a06cc apprentice.s CreateChooseAnswerTask +081a0724 apprentice.s CallApprenticeFunction +081a0738 apprentice.s sub_081A0738_jp +081a0744 apprentice.s Script_ResetPlayerApprentice +081a0804 apprentice.s Script_IsPlayersApprenticeActive +081a082c apprentice.s Script_CreateApprenticeMenu +081a0840 apprentice.s sub_081A0840_jp +081a084c apprentice.s sub_081A084C_jp +081a0858 apprentice.s sub_081A0858_jp +081a087c apprentice.s sub_081A087C_jp +081a0898 apprentice.s sub_081A0898_jp +081a08e8 apprentice.s Script_SetPlayersApprenticeLvlMode +081a08fc apprentice.s Task_WaitForPrintingMessage +081a0938 apprentice.s PrintMessage +081a0b64 apprentice.s Script_PrintMessage +081a0b88 apprentice.s sub_081A0B88 +081a0c08 apprentice.s sub_081A0C08_jp +081a0c48 apprentice.s sub_081A0C48_jp +081a0c9c apprentice.s sub_081A0C9C_jp +081a0ebc apprentice.s sub_081A0EBC_jp +081a0ed4 apprentice.s sub_081A0ED4_jp +081a1104 apprentice.s sub_081A1104_jp +081a1124 apprentice.s sub_081A1124_jp +081a1130 apprentice.s sub_081A1130_jp +081a127c apprentice.s sub_081A127C_jp +081a1344 apprentice.s sub_081A1344_jp +081a1418 apprentice.s sub_081A1418_jp +081a14b0 apprentice.s Script_SetPlayerApprenticeTrainerGfxId +081a1544 apprentice.s sub_081A1544 +081a1550 apprentice.s sub_081A1550_jp +081a155c apprentice.s sub_081A155C_jp +081a1584 apprentice.s Task_ExecuteFuncAfterButtonPress +081a15d4 apprentice.s ExecuteFuncAfterButtonPress +081a1604 apprentice.s sub_081A1604_jp +frontier_util.s +081a1628 frontier_util.s CallFrontierUtilFunc +081a163c frontier_util.s sub_081A163C_jp +081a1648 frontier_util.s sub_081A1648_jp +081a16d8 frontier_util.s sub_081A16D8_jp +081a1810 frontier_util.s sub_081A1810_jp +081a197c frontier_util.s sub_081A197C_jp +081a19c4 frontier_util.s DoSoftReset_ +081a19d0 frontier_util.s sub_081A19D0 +081a19e0 frontier_util.s sub_081A19E0 +081a1a40 frontier_util.s ShowFacilityResultsWindow +081a1acc frontier_util.s sub_081A1ACC_jp +081a1af4 frontier_util.s TowerPrintStreak +081a1b8c frontier_util.s TowerPrintRecordStreak +081a1bc4 frontier_util.s TowerGetWinStreak +081a1bf4 frontier_util.s TowerPrintPrevOrCurrentStreak +081a1c9c frontier_util.s ShowTowerResultsWindow +081a1ddc frontier_util.s DomeGetWinStreak +081a1e0c frontier_util.s PrintTwoStrings +081a1ea0 frontier_util.s PyramidPrintPrevOrCurrentStreak +081a1f30 frontier_util.s ShowDomeResultsWindow +081a20d0 frontier_util.s PalacePrintStreak +081a2168 frontier_util.s PalacePrintRecordStreak +081a21a0 frontier_util.s FactoryGetRentsCount +081a21d0 frontier_util.s ArenaPrintPrevOrCurrentStreak +081a2250 frontier_util.s ShowPalaceResultsWindow +081a2360 frontier_util.s ArenaGetWinStreak +081a238c frontier_util.s PikePrintCleared +081a2420 frontier_util.s PikePrintPrevOrCurrentStreak +081a2490 frontier_util.s ShowPikeResultsWindow +081a25fc frontier_util.s ArenaPrintStreak +081a2698 frontier_util.s ArenaPrintRecordStreak +081a26d0 frontier_util.s PikeGetWinStreak +081a26fc frontier_util.s sub_081A26FC_jp +081a2758 frontier_util.s ShowArenaResultsWindow +081a2844 frontier_util.s FactoryPrintStreak +081a2924 frontier_util.s PyramidPrintRecordStreak +081a2974 frontier_util.s FactoryGetWinStreak +081a29a4 frontier_util.s PalaceGetWinStreak +081a29d4 frontier_util.s PalacePrintPrevOrCurrentStreak +081a2a78 frontier_util.s ShowFactoryResultsWindow +081a2b9c frontier_util.s PyramidPrintStreak +081a2c38 frontier_util.s PyramidGetWinStreak +081a2c70 frontier_util.s sub_081A2C70_jp +081a2c9c frontier_util.s sub_081A2C9C_jp +081a2cfc frontier_util.s ShowPyramidResultsWindow +081a2de4 frontier_util.s PrintHallRecords +081a2f90 frontier_util.s sub_081A2F90_jp +081a337c frontier_util.s sub_081A337C_jp +081a33a0 frontier_util.s sub_081A33A0_jp +081a3460 frontier_util.s CopyFrontierTrainerText +081a36a0 frontier_util.s sub_081A36A0 +081a375c frontier_util.s GetCurrentFacilityWinStreak +081a3864 frontier_util.s sub_081A3864 +081a3898 frontier_util.s sub_081A3898_jp +081a38c8 frontier_util.s GetPlayerSymbolCountForFacility +081a38fc frontier_util.s sub_081A38FC_jp +081a3ac8 frontier_util.s sub_081A3AC8_jp +081a3af0 frontier_util.s sub_081A3AF0_jp +081a3b38 frontier_util.s sub_081A3B38_jp +081a3b68 frontier_util.s sub_081A3B68_jp +081a3c0c frontier_util.s AppendIfValid +081a3cf0 frontier_util.s sub_081A3CF0_jp +081a3eb0 frontier_util.s sub_081A3EB0_jp +081a3ebc frontier_util.s sub_081A3EBC_jp +081a4034 frontier_util.s sub_081A4034_jp +081a409c frontier_util.s PrintAligned +081a40c8 frontier_util.s GetFrontierBrainTrainerClass +081a4108 frontier_util.s sub_081A4108_jp +081a4208 frontier_util.s GetFrontierBrainTrainerPicIndex +081a4220 frontier_util.s Print1PRecord +081a42f4 frontier_util.s FactoryPrintPrevOrCurrentStreak +081a43f8 frontier_util.s Fill1PRecords +081a44cc frontier_util.s Fill2PRecords +081a45b0 frontier_util.s DomePrintPrevOrCurrentStreak +081a469c frontier_util.s ShowRankingHallRecordsWindow +081a46e4 frontier_util.s ScrollRankingHallRecordsWindow +081a4710 frontier_util.s ClearRankingHallRecords +081a482c frontier_util.s sub_081A482C_jp +081a48ac frontier_util.s PrintHyphens +081a48f8 frontier_util.s sub_081A48F8_jp +081a4944 frontier_util.s CopyFrontierBrainTrainerName +081a49a8 frontier_util.s IsFrontierBrainFemale +081a49c8 frontier_util.s SetFrontierBrainEventObjGfx_2 +081a49f4 frontier_util.s CreateFrontierBrainPokemon +081a4be0 frontier_util.s GetFrontierBrainMonSpecies +081a4c20 frontier_util.s SetFrontierBrainEventObjGfx +081a4c50 frontier_util.s GetFrontierBrainMonMove +081a4ca0 frontier_util.s GetFrontierBrainMonNature +081a4ce0 frontier_util.s GetFrontierBrainMonEvs +081a4d2c frontier_util.s GetFronterBrainSymbol +081a4d98 frontier_util.s CopyFrontierBrainText +battle_arena.s +081a4e28 battle_arena.s CallBattleArenaFunction +081a4e3c battle_arena.s sub_081A4E3C_jp +081a4e48 battle_arena.s BattleArena_ShowJudgmentWindow +081a5148 battle_arena.s ShowJudgmentSprite +081a5288 battle_arena.s SpriteCb_JudgmentIcon +081a52a4 battle_arena.s BattleArena_InitPoints +081a52d8 battle_arena.s BattleArena_AddMindPoints +081a5308 battle_arena.s BattleArena_AddSkillPoints +081a53d4 battle_arena.s BattleArena_DeductMindPoints +081a545c battle_arena.s sub_081A545C +081a54a4 battle_arena.s InitArenaChallenge +081a5554 battle_arena.s GetArenaData +081a55ec battle_arena.s SetArenaData +081a56b4 battle_arena.s sub_081A56B4_jp +081a56f8 battle_arena.s SetArenaRewardItem +081a5778 battle_arena.s GiveArenaRewardItem +081a57d0 battle_arena.s BufferArenaOpponentName +081a57e8 battle_arena.s DrawArenaRefereeTextBox +081a5ad8 battle_arena.s RemoveArenaRefereeTextBox +battle_factory.s +081a5c0c battle_factory.s CallBattleFactoryFunction +081a5c20 battle_factory.s nullsub_75 +081a5c2c battle_factory.s InitFactoryChallenge +081a5d40 battle_factory.s GetBattleFactoryData +081a5dec battle_factory.s SetBattleFactoryData +081a5ed4 battle_factory.s sub_081A5ED4_jp +081a5f18 battle_factory.s SwapRentalMons +081a5f1c battle_factory.s nullsub_123 +081a5f20 battle_factory.s SelectInitialRentalMons +081a5f30 battle_factory.s sub_081A5F30 +081a5f3c battle_factory.s SetPerformedRentalSwap +081a5f48 battle_factory.s GenerateOpponentMons +081a6150 battle_factory.s SetOpponentGfxVar +081a6164 battle_factory.s SetRentalsToOpponentParty +081a625c battle_factory.s SetPlayerAndOpponentParties +081a6584 battle_factory.s GenerateInitialRentalMons +081a67a0 battle_factory.s GetOpponentMostCommonMonType +081a6884 battle_factory.s GetOpponentBattleStyle +081a693c battle_factory.s GetMoveBattleStyle +081a698c battle_factory.s InBattleFactory +081a69b4 battle_factory.s RestorePlayerPartyHeldItems +081a6a40 battle_factory.s GetFactoryMonFixedIV +081a6a68 battle_factory.s FillFactoryBrainParty +081a6c88 battle_factory.s GetMonSetId +081a6d08 battle_factory.s GetNumPastRentalsRank +081a6d4c battle_factory.s GetAiScriptsInBattleFactory +081a6dbc battle_factory.s SetMonMoveAvoidReturn +battle_pike.s +081a6dd4 battle_pike.s CallBattlePikeFunction +081a6de8 battle_pike.s nullsub_76 +081a6df4 battle_pike.s SetRoomType +081a6e08 battle_pike.s SetupRoomEventObjects +081a6ec0 battle_pike.s GetBattlePikeData +081a6fc8 battle_pike.s SetBattlePikeData +081a7138 battle_pike.s GetInFinalRoom +081a716c battle_pike.s GetRoomType +081a7180 battle_pike.s sub_081A7180_jp +081a718c battle_pike.s sub_081A718C_jp +081a7198 battle_pike.s sub_081A7198_jp +081a71e0 battle_pike.s sub_081A71E0_jp +081a71e4 battle_pike.s nullsub_124 +081a71e8 battle_pike.s GetRoomInflictedStatus +081a724c battle_pike.s GetRoomInflictedStatusMon +081a7260 battle_pike.s HealOneOrTwoMons +081a7288 battle_pike.s BufferNPCMessage +081a7300 battle_pike.s StatusInflictionScreenFade +081a7314 battle_pike.s HealMon +081a73a8 battle_pike.s DoesAbilityPreventStatus +081a73fc battle_pike.s DoesTypePreventStatus +081a74a8 battle_pike.s TryInflictRandomStatus +081a76f4 battle_pike.s AtLeastOneHealthyMon +081a776c battle_pike.s GetNextRoomType +081a78d8 battle_pike.s GetNPCRoomGraphicsId +081a7904 battle_pike.s sub_081A7904 +081a7910 battle_pike.s TryGenerateBattlePikeWildMon +081a7a80 battle_pike.s GetBattlePikeWildMonHeaderId +081a7ad4 battle_pike.s DoStatusInflictionScreenFade +081a7b0c battle_pike.s StatusInflictionFadeOut +081a7b68 battle_pike.s StatusInflictionFadeIn +081a7be0 battle_pike.s StartStatusInflictionScreenFade +081a7c44 battle_pike.s IsStatusInflictionScreenFadeTaskFinished +081a7c64 battle_pike.s Task_DoStatusInflictionScreenFade +081a7cb8 battle_pike.s TryHealMons +081a7e10 battle_pike.s GetInBattlePike +081a7e28 battle_pike.s InBattlePike +081a7e5c battle_pike.s SetHintedRoom +081a7fdc battle_pike.s GetHintedRoomIndex +081a7ffc battle_pike.s GetRoomTypeHint +081a8024 battle_pike.s PrepareOneTrainer +081a80f4 battle_pike.s PrepareTwoTrainers +081a8234 battle_pike.s ClearPikeTrainerIds +081a826c battle_pike.s BufferRecordMixingTrainerMessage +081a82d4 battle_pike.s AtLeastTwoAliveMons +081a8310 battle_pike.s GetPikeQueenFightType +081a83bc battle_pike.s GetCurrentRoomPikeQueenFightType +081a83d8 battle_pike.s HealSomeMonsBeforePikeQueen +081a841c battle_pike.s SetHealingRoomsDisabled +081a8440 battle_pike.s CanAnyPartyMonsBeHealed +081a8514 battle_pike.s BackupMonHeldItems +081a8568 battle_pike.s RestoreMonHeldItems +081a85b0 battle_pike.s InitPikeChallenge +081a8630 battle_pike.s CanEncounterWildMon +081a868c battle_pike.s SpeciesToPikeMonId +mossdeep_gym.s +081a86b4 mossdeep_gym.s InitMossdeepGymTiles +081a86dc mossdeep_gym.s FinishMossdeepGymTiles +081a8720 mossdeep_gym.s MossdeepGym_MoveEvents +081a8878 mossdeep_gym.s MossdeepGym_TurnEvents +081a8ae0 mossdeep_gym.s AddEventObject +081a8b14 mossdeep_gym.s sub_081A8B14 +battle_pyramid.s +081a8bfc battle_pyramid.s CallBattlePyramidFunction +081a8c10 battle_pyramid.s sub_081A8C10_jp +081a8c1c battle_pyramid.s InitPyramidChallenge +081a8cb8 battle_pyramid.s GetBattlePyramidData +081a8dc8 battle_pyramid.s SetBattlePyramidData +081a8eb4 battle_pyramid.s sub_081A8EB4_jp +081a8efc battle_pyramid.s SetBattlePyramidRewardItem +081a8f7c battle_pyramid.s GiveBattlePyramidRewardItem +081a8fd4 battle_pyramid.s SeedPyramidFloor +081a9010 battle_pyramid.s SetPickupItem +081a9140 battle_pyramid.s HidePyramidItem +081a918c battle_pyramid.s InitPyramidFacilityTrainers +081a919c battle_pyramid.s ShowPostBattleHintText +081a9390 battle_pyramid.s UpdatePyramidWinStreak +081a93e4 battle_pyramid.s GetInBattlePyramid +081a93fc battle_pyramid.s UpdatePyramidLightRadius +081a94d4 battle_pyramid.s ClearPyramidPartyHeldItems +081a9540 battle_pyramid.s SetPyramidFloorPalette +081a9554 battle_pyramid.s Task_SetPyramidFloorPalette +081a95a0 battle_pyramid.s sub_081A95A0 +081a95ac battle_pyramid.s RestorePyramidPlayerParty +081a9710 battle_pyramid.s GetPostBattleDirectionHintTextIndex +081a9820 battle_pyramid.s LocalIdToPyramidTrainerId +081a983c battle_pyramid.s GetBattlePyramidTrainerFlag +081a987c battle_pyramid.s MarkApproachingPyramidTrainersAsBattled +081a98bc battle_pyramid.s MarkPyramidTrainerAsBattled +081a997c battle_pyramid.s GenerateBattlePyramidWildMon +081a9ba0 battle_pyramid.s GetPyramidRunMultiplier +081a9bb8 battle_pyramid.s InBattlePyramid +081a9be4 battle_pyramid.s InBattlePyramid_ +081a9c08 battle_pyramid.s sub_081A9C08_jp +081a9c40 battle_pyramid.s SoftResetInBattlePyramid +081a9c54 battle_pyramid.s CopyPyramidTrainerSpeechBefore +081a9c74 battle_pyramid.s CopyPyramidTrainerWinSpeech +081a9c94 battle_pyramid.s CopyPyramidTrainerLoseSpeech +081a9cb4 battle_pyramid.s GetBattlePyramindTrainerEncounterMusicId +081a9cf8 battle_pyramid.s sub_081A9CF8_jp +081a9d08 battle_pyramid.s GetUniqueTrainerId +081a9df0 battle_pyramid.s GenerateBattlePyramidFloorLayout +081a9f50 battle_pyramid.s LoadBattlePyramidEventObjectTemplates +081aa070 battle_pyramid.s LoadBattlePyramidFloorEventObjectScripts +081aa0b4 battle_pyramid.s GetPyramidEntranceAndExitSquareIds +081aa110 battle_pyramid.s SetPyramidObjectPositionsUniformly +081aa250 battle_pyramid.s SetPyramidObjectPositionsInAndNearSquare +081aa3c0 battle_pyramid.s SetPyramidObjectPositionsNearSquare +081aa4d8 battle_pyramid.s TrySetPyramidEventObjectPositionInSquare +081aa588 battle_pyramid.s TrySetPyramidEventObjectPositionAtCoords +081aa6e4 battle_pyramid.s GetPyramidFloorLayoutOffsets +081aa75c battle_pyramid.s GetPyramidFloorTemplateId +081aa7b8 battle_pyramid.s GetNumBattlePyramidEventObjects +081aa7f4 battle_pyramid.s InitPyramidBagItems +081aa858 battle_pyramid.s GetBattlePyramidPickupItemId +item_menu.s +081aa8e8 item_menu.s ResetBagScrollPositions +081aa914 item_menu.s CB2_BagMenuFromStartMenu +081aa928 item_menu.s sub_081AA928_jp +081aa954 item_menu.s CB2_ChooseBerry +081aa968 item_menu.s sub_081AA968 +081aa978 item_menu.s CB2_GoToSellMenu +081aa98c item_menu.s sub_081AA98C +081aa9a0 item_menu.s sub_081AA9A0_jp +081aa9c8 item_menu.s sub_081AA9C8_jp +081aa9e8 item_menu.s sub_081AA9E8 +081aaa08 item_menu.s GoToBagMenu +081aaad4 item_menu.s c2_bag_3 +081aaaf0 item_menu.s vblank_cb_bag_menu +081aab04 item_menu.s CB2_Bag +081aab30 item_menu.s SetupBagMenu +081aadc0 item_menu.s BagMenu_InitBGs +081aae2c item_menu.s LoadBagMenu_Graphics +081aaf60 item_menu.s sub_081AAF60 +081aaf88 item_menu.s AllocateBagItemListBuffers +081aafb0 item_menu.s LoadBagItemListBuffers +081ab10c item_menu.s GetItemName +081ab1c0 item_menu.s BagMenu_MoveCursorCallback +081ab290 item_menu.s PrintItemQuantityPlusGFX +081ab414 item_menu.s BagMenu_PrintDescription +081ab4a0 item_menu.s sub_081AB4A0_jp +081ab4e8 item_menu.s BagMenu_PrintCursor_ +081ab508 item_menu.s BagMenu_PrintCursor +081ab568 item_menu.s bag_menu_add_pocket_scroll_arrow_indicators_maybe +081ab5d0 item_menu.s sub_081AB5D0 +081ab600 item_menu.s bag_menu_add_list_scroll_arrow_indicators_maybe +081ab648 item_menu.s sub_081AB648_jp +081ab674 item_menu.s FreeBagItemListBuffers +081ab6a4 item_menu.s unknown_ItemMenu_Confirm +081ab6dc item_menu.s TaskCloseBagMenu_2 +081ab754 item_menu.s sub_081AB754 +081ab818 item_menu.s sub_081AB818 +081ab834 item_menu.s SetInitialScrollAndCursorPositions +081ab870 item_menu.s SetPocketListPositions +081ab88c item_menu.s sub_081AB88C +081ab8d8 item_menu.s GetItemListPosition +081ab8f8 item_menu.s DisplayItemMessage +081ab968 item_menu.s BagMenu_InitListsMenu +081ab9e8 item_menu.s PrintItemDepositAmount +081aba50 item_menu.s sub_081ABA50_jp +081abab4 item_menu.s Task_BagMenu +081abc58 item_menu.s set_callback3_to_bag +081abc9c item_menu.s GetSwitchBagPocketDirection +081abcfc item_menu.s ChangeBagPocketId +081abd34 item_menu.s SwitchBagPocket +081abec0 item_menu.s sub_081ABEC0_jp +081ac000 item_menu.s bag_menu_leave_maybe +081ac030 item_menu.s BagMenu_DrawPocketIndicatorSquare +081ac084 item_menu.s sub_081AC084_jp +081ac0ac item_menu.s BagMenu_SwapItems +081ac184 item_menu.s sub_081AC184_jp +081ac25c item_menu.s sub_081AC25C_jp +081ac354 item_menu.s sub_081AC354_jp +081ac408 item_menu.s sub_081AC408_jp +081ac8bc item_menu.s sub_081AC8BC_jp +081ac938 item_menu.s sub_081AC938_jp +081ac9a8 item_menu.s unknown_item_menu_type +081ac9fc item_menu.s Task_HandleInBattleItemMenuInput +081aca70 item_menu.s Task_HandleOutOfBattleItemMenuInput +081acbf4 item_menu.s sub_081ACBF4 +081acc30 item_menu.s BagMenu_RemoveSomeWindow +081acc74 item_menu.s ItemMenu_UseOutOfBattle +081accec item_menu.s ItemMenu_Toss +081acd80 item_menu.s BagMenu_TossItems +081ace08 item_menu.s BagMenu_CancelToss +081ace3c item_menu.s Task_ChooseHowManyToToss +081acec4 item_menu.s BagMenu_ConfirmToss +081acf48 item_menu.s Task_ActuallyToss +081acfe4 item_menu.s ItemMenu_Register +081ad070 item_menu.s ItemMenu_Give +081ad0e8 item_menu.s BagMenu_PrintThereIsNoPokemon +081ad104 item_menu.s BagMenu_PrintItemCantBeHeld +081ad148 item_menu.s sub_081AD148_jp +081ad170 item_menu.s ItemMenu_CheckTag +081ad190 item_menu.s ItemMenu_Cancel +081ad1d4 item_menu.s ItemMenu_UseInBattle +081ad204 item_menu.s bag_menu_mail_related +081ad214 item_menu.s item_menu_type_2 +081ad2ac item_menu.s item_menu_type_b +081ad318 item_menu.s UseRegisteredKeyItemOnField +081ad3d4 item_menu.s DisplaySellItemAskString +081ad478 item_menu.s sub_081AD478_jp +081ad4dc item_menu.s sub_081AD4DC_jp +081ad4f4 item_menu.s BagMenu_CancelSell +081ad528 item_menu.s sub_081AD528_jp +081ad57c item_menu.s bag_menu_leave_maybe_2 +081ad5a8 item_menu.s sub_081AD5A8_jp +081ad660 item_menu.s BagMenu_ConfirmSell +081ad6dc item_menu.s sub_081AD6DC_jp +081ad7d4 item_menu.s unknown_ItemMenu_Show +081ad800 item_menu.s DisplayDepositItemAskString +081ad890 item_menu.s sub_081AD890_jp +081ad928 item_menu.s sub_081AD928_jp +081ada18 item_menu.s sub_081ADA18_jp +081ada60 item_menu.s IsWallysBag +081ada7c item_menu.s PrepareBagForWallyTutorial +081adb0c item_menu.s RestoreBagAfterWallyTutorial +081adb7c item_menu.s DoWallyTutorialBagMenu +081adba4 item_menu.s Task_WallyTutorialBagMenu +081adc44 item_menu.s sub_081ADC44_jp +081adc78 item_menu.s bag_menu_leave_maybe_3 +081adc98 item_menu.s unknown_ItemMenu_Give2 +081adcc8 item_menu.s sub_081ADCC8_jp +081adce8 item_menu.s unknown_ItemMenu_Confirm2 +081add0c item_menu.s sub_081ADD0C_jp +081add2c item_menu.s SetupBagMenu_Textboxes +081add94 item_menu.s BagMenu_Print +081addfc item_menu.s sub_081ADDFC +081ade14 item_menu.s BagMenu_AddWindow +081ade5c item_menu.s BagMenu_RemoveWindow +081ade9c item_menu.s AddItemMessageWindow +081aded0 item_menu.s bag_menu_RemoveBagItem_message_window +081adf10 item_menu.s BagMenu_YesNo +081adf40 item_menu.s bag_menu_AddMoney_window +081adf7c item_menu.s bag_menu_remove_money_window +081adf8c item_menu.s BagMenu_PrepareTMHMMoveWindow +081adfd4 item_menu.s PrintTMHMMoveData +list_menu.s +081ae130 list_menu.s Task_RedArrowCursor +081ae134 list_menu.s DoMysteryGiftListMenu +081ae25c list_menu.s ListMenuInit +081ae288 list_menu.s ListMenuInitInRect +081ae2dc list_menu.s ListMenu_ProcessInput +081ae3a0 list_menu.s DestroyListMenuTask +081ae3e4 list_menu.s RedrawListMenu +081ae428 list_menu.s ChangeListMenuPals +081ae46c list_menu.s ChangeListMenuCoords +081ae4a8 list_menu.s ListMenuTestInput +081ae510 list_menu.s ListMenuGetCurrentItemArrayId +081ae538 list_menu.s ListMenuGetScrollAndRow +081ae564 list_menu.s ListMenuGetYCoordForPrintingArrowCursor +081ae5ac list_menu.s ListMenuInitInternal +081ae68c list_menu.s ListMenuPrint +081ae740 list_menu.s ListMenuPrintEntries +081ae7f8 list_menu.s ListMenuDrawCursor +081ae8f0 list_menu.s ListMenuAddCursorObject +081ae950 list_menu.s ListMenuErasePrintedCursor +081ae9d8 list_menu.s ListMenuUpdateSelectedRowIndexAndScrollOffset +081aeac8 list_menu.s ListMenuScroll +081aec00 list_menu.s ListMenuChangeSelection +081aecd8 list_menu.s ListMenuCallSelectionChangedCallback +081aed00 list_menu.s ListMenuOverrideSetColors +081aed50 list_menu.s ListMenuDefaultCursorMoveFunc +081aed64 list_menu.s ListMenuGetUnkIndicatorsStructFields +081aee34 list_menu.s ListMenuSetUnkIndicatorsStructField +081aef3c list_menu.s SpriteCallback_ScrollIndicatorArrow +081aefc8 list_menu.s AddScrollIndicatorArrowObject +081af058 list_menu.s AddScrollIndicatorArrowPair +081af178 list_menu.s AddScrollIndicatorArrowPairParameterized +081af1dc list_menu.s Task_ScrollIndicatorArrowPair +081af274 list_menu.s Task_ScrollIndicatorArrowPairOnMainMenu +081af2f8 list_menu.s RemoveScrollIndicatorArrowPair +081af358 list_menu.s ListMenuAddCursorObjectInternal +081af374 list_menu.s ListMenuUpdateCursorObject +081af39c list_menu.s ListMenuRemoveCursorObject +081af3bc list_menu.s Task_RedOutlineCursor +081af3c0 list_menu.s ListMenuGetRedOutlineCursorSpriteCount +081af3fc list_menu.s ListMenuSetUpRedOutlineCursorSpriteOamTable +081af500 list_menu.s ListMenuAddRedOutlineCursorObject +081af66c list_menu.s ListMenuUpdateRedOutlineCursorObject +081af6b0 list_menu.s ListMenuRemoveRedOutlineCursorObject +081af708 list_menu.s SpriteCallback_RedArrowCursor +081af734 list_menu.s ListMenuDummyTask +081af738 list_menu.s ListMenuAddRedArrowCursorObject +081af840 list_menu.s ListMenuUpdateRedArrowCursorObject +081af878 list_menu.s ListMenuRemoveRedArrowCursorObject +dynamic_placeholder_text_util.s +081af8c8 dynamic_placeholder_text_util.s DynamicPlaceholderTextUtil_Reset +081af8e4 dynamic_placeholder_text_util.s DynamicPlaceholderTextUtil_SetPlaceholderPtr +081af900 dynamic_placeholder_text_util.s DynamicPlaceholderTextUtil_ExpandPlaceholders +081af94c dynamic_placeholder_text_util.s DynamicPlaceholderTextUtil_GetPlaceholderPtr +save_location.s +081af95c save_location.s IsCurMapInLocationList +081af9a4 save_location.s IsCurMapPokeCenter +081af9b4 save_location.s IsCurMapReloadLocation +081af9c4 save_location.s sub_081AF9C4 +081af9d4 save_location.s TrySetPokeCenterWarpStatus +081afa04 save_location.s TrySetReloadWarpStatus +081afa34 save_location.s sub_081AFA34 +081afa64 save_location.s TrySetMapSaveWarpStatus +081afa78 save_location.s sub_081AFA78 +081afaa8 save_location.s sub_081AFAA8_jp +item_icon.s +081afabc item_icon.s AllocItemIconTemporaryBuffers +081afafc item_icon.s FreeItemIconTemporaryBuffers +081afb1c item_icon.s CopyItemIconPicTo4x4Buffer +081afb48 item_icon.s AddItemIconSprite +081afc0c item_icon.s AddCustomItemIconSprite +081afcd4 item_icon.s GetItemIconPicOrPalette +party_menu.s +081afd10 party_menu.s InitPartyMenu +081afe88 party_menu.s PartyMenuCallback +081afea4 party_menu.s PartyMenuVBlankCallback +081afeb8 party_menu.s PartyMenuInitCallback +081afee4 party_menu.s PartyMenuSetup +081b0194 party_menu.s PartyMenuExit +081b01d0 party_menu.s PartyMenuExitTask +081b0204 party_menu.s reset_brm +081b0228 party_menu.s AllocPartyMenuBg +081b02a0 party_menu.s AllocPartyMiscGfx +081b0398 party_menu.s PartyPaletteBufferCopy +081b03cc party_menu.s FreePartyPointers +081b0418 party_menu.s PartyMenuInitHelperStructs +081b04b8 party_menu.s RenderPartyMenuBox +081b0620 party_menu.s DisplayPartyPokemonData +081b06e8 party_menu.s DisplayPartyPokemonSelectData +081b0774 party_menu.s DisplayPartyPokemonSelectForBattle +081b07e0 party_menu.s DisplayPartyPokemonSelectForContest +081b0838 party_menu.s DisplayPartyPokemonSelectForRelearner +081b0870 party_menu.s sub_081B0870 +081b089c party_menu.s DisplayPartyPokemonSelectHeldItemRelated +081b08d4 party_menu.s sub_081B08D4_jp +081b096c party_menu.s DisplayPartyPokemonSelectToTeachMove +081b09c4 party_menu.s sub_081B09C4_jp +081b0a70 party_menu.s RenderPartyMenuBoxes +081b0aa4 party_menu.s GetPartyMiscGraphicsTile +081b0ab8 party_menu.s party_menu_add_per_mon_objects_internal +081b0bc4 party_menu.s party_menu_add_per_mon_objects +081b0bf8 party_menu.s sub_081B0BF8_jp +081b0c9c party_menu.s sub_081B0C9C_jp +081b0dc8 party_menu.s GetPartyBoxPalBitfield +081b0e5c party_menu.s PartyBoxPal_ParnterOrDisqualifiedInArena +081b0edc party_menu.s sub_081B0EDC_jp +081b0f20 party_menu.s IsMultiBattle +081b0f58 party_menu.s sub_081B0F58_jp +081b0f90 party_menu.s sub_081B0F90 +081b0fc8 party_menu.s c3_0811FAB4 +081b1024 party_menu.s GetCursorSelectionMonId +081b1030 party_menu.s sub_081B1030 +081b1040 party_menu.s sub_081B1040_jp +081b10bc party_menu.s sub_081B10BC_jp +081b10dc party_menu.s sub_081B10DC_jp +081b1274 party_menu.s sub_081B1274_jp +081b12a0 party_menu.s sub_081B12A0_jp +081b1330 party_menu.s sub_081B1330_jp +081b13a4 party_menu.s sub_081B13A4_jp +081b13d8 party_menu.s sub_081B13D8_jp +081b1430 party_menu.s PartyMenuButtonHandler +081b14c8 party_menu.s UpdateCurrentPartySelection +081b1524 party_menu.s SetNewPartySelectTarget1 +081b162c party_menu.s SetNewPartySelectTarget2 +081b17d0 party_menu.s sub_081B17D0 +081b1814 party_menu.s GetMonNickname +081b182c party_menu.s sub_081B182C_jp +081b185c party_menu.s sub_081B185C_jp +081b18a4 party_menu.s sub_081B18A4_jp +081b18b8 party_menu.s sub_081B18B8_jp +081b18ec party_menu.s sub_081B18EC_jp +081b1954 party_menu.s sub_081B1954_jp +081b19a0 party_menu.s sub_081B19A0_jp +081b19ec party_menu.s sub_081B19EC_jp +081b1a38 party_menu.s sub_081B1A38_jp +081b1a88 party_menu.s sub_081B1A88_jp +081b1ad0 party_menu.s TryTakeMonItem +081b1b18 party_menu.s pokemon_item_not_removed +081b1b30 party_menu.s sub_081B1B30 +081b1be8 party_menu.s sub_081B1BE8_jp +081b1c78 party_menu.s sub_081B1C78_jp +081b1ce4 party_menu.s pokemon_ailments_get_primary +081b1d2c party_menu.s GetMonAilment +081b1d6c party_menu.s sub_081B1D6C +081b1e04 party_menu.s sub_081B1E04_jp +081b1e34 party_menu.s sub_081B1E34_jp +081b1e5c party_menu.s sub_081B1E5C_jp +081b1e7c party_menu.s sub_081B1E7C_jp +081b1ee0 party_menu.s sub_081B1EE0_jp +081b1f18 party_menu.s sub_081B1F18_jp +081b1f4c party_menu.s sub_081B1F4C +081b1fa8 party_menu.s CanMonLearnTMTutor +081b2030 party_menu.s GetTutorMove +081b2040 party_menu.s CanLearnTutorMove +081b206c party_menu.s sub_081B206C_jp +081b20f8 party_menu.s sub_081B20F8_jp +081b2200 party_menu.s GetPartyMenuPaletteFromBuffer +081b2214 party_menu.s BlitBitmapToPartyWindow +081b22f4 party_menu.s BlitBitmapToPartyWindow_Default1 +081b2358 party_menu.s BlitBitmapToPartyWindow_Default2 +081b23bc party_menu.s DrawEmptySlot +081b23e4 party_menu.s UpdateSelectedPartyBox +081b26d8 party_menu.s DisplayPartyPokemonBarDetail +081b270c party_menu.s DisplayPartyPokemonNickname +081b2764 party_menu.s DisplayPartyPokemonLevelCheck +081b27dc party_menu.s DisplayPartyPokemonLevel +081b2828 party_menu.s DisplayPartyPokemonGenderNidoranCheck +081b2890 party_menu.s DisplayPartyPokemonGender +081b2970 party_menu.s DisplayPartyPokemonHPCheck +081b29d8 party_menu.s DisplayPartyPokemonHP +081b2a08 party_menu.s DisplayPartyPokemonMaxHPCheck +081b2a70 party_menu.s DisplayPartyPokemonMaxHP +081b2abc party_menu.s DisplayPartyPokemonHPBarCheck +081b2af8 party_menu.s DisplayPartyPokemonHPBar +081b2c3c party_menu.s DisplayPartyPokemonOtherText +081b2cb0 party_menu.s sub_081B2CB0_jp +081b2cd8 party_menu.s display_pokemon_menu_message +081b2dd0 party_menu.s sub_081B2DD0_jp +081b2e34 party_menu.s sub_081B2E34_jp +081b2f90 party_menu.s sub_081B2F90_jp +081b2fdc party_menu.s sub_081B2FDC_jp +081b3004 party_menu.s sub_081B3004_jp +081b3034 party_menu.s sub_081B3034_jp +081b3054 party_menu.s sub_081B3054 +081b30b4 party_menu.s CreateActionList +081b31dc party_menu.s sub_081B31DC_jp +081b32a8 party_menu.s sub_081B32A8_jp +081b339c party_menu.s sub_081B339C +081b33d0 party_menu.s HandleMenuInput +081b349c party_menu.s CursorCb_Give +081b34c8 party_menu.s sub_081B34C8_jp +081b3534 party_menu.s sub_081B3534 +081b357c party_menu.s CursorCb_Switch +081b35d8 party_menu.s sub_081B35D8_jp +081b3778 party_menu.s sub_081B3778_jp +081b37e0 party_menu.s sub_081B37E0_jp +081b38ac party_menu.s sub_081B38AC_jp +081b3900 party_menu.s sub_081B3900_jp +081b3960 party_menu.s sub_081B3960_jp +081b39e8 party_menu.s sub_081B39E8_jp +081b3b00 party_menu.s sub_081B3B00_jp +081b3bb0 party_menu.s oamt_swap_pos +081b3c7c party_menu.s swap_pokemon_and_oams +081b3d1c party_menu.s sub_081B3D1C_jp +081b3d74 party_menu.s CursorCb_Cancel1 +081b3dd4 party_menu.s CursorCb_Item +081b3e38 party_menu.s CursorCb_Summary +081b3e64 party_menu.s sub_081B3E64_jp +081b3e90 party_menu.s c2_8123744 +081b3f70 party_menu.s sub_081B3F70 +081b3ff0 party_menu.s sub_081B3FF0_jp +081b4048 party_menu.s sub_081B4048_jp +081b407c party_menu.s sub_081B407C_jp +081b419c party_menu.s sub_081B419C_jp +081b41cc party_menu.s sub_081B41CC_jp +081b4218 party_menu.s sub_081B4218_jp +081b42c4 party_menu.s sub_081B42C4_jp +081b433c party_menu.s sub_081B433C_jp +081b43c4 party_menu.s CursorCb_TakeItem +081b4480 party_menu.s CursorCb_Toss +081b4548 party_menu.s sub_081B4548_jp +081b457c party_menu.s sub_081B457C_jp +081b4628 party_menu.s sub_081B4628 +081b46a8 party_menu.s CursorCb_Mail +081b470c party_menu.s CursorCb_Read +081b4738 party_menu.s sub_081B4738_jp +081b4780 party_menu.s sub_081B4780 +081b47c0 party_menu.s CursorCb_TakeMail +081b480c party_menu.s sub_081B480C_jp +081b4840 party_menu.s sub_081B4840_jp +081b4900 party_menu.s sub_081B4900_jp +081b4934 party_menu.s sub_081B4934_jp +081b4a18 party_menu.s CursorCb_Cancel2 +081b4acc party_menu.s CursorCb_SendMon +081b4b2c party_menu.s CursorCb_Enter +081b4c28 party_menu.s sub_081B4C28_jp +081b4c48 party_menu.s CursorCb_NoEntry +081b4d4c party_menu.s CursorCb_Store +081b4d68 party_menu.s CursorCb_Register +081b4e74 party_menu.s CursorCb_Trade1 +081b4f84 party_menu.s CursorCb_Trade2 +081b509c party_menu.s sub_081B509C +081b50d0 party_menu.s sub_081B50D0_jp +081b5110 party_menu.s CursorCb_FieldMove +081b5314 party_menu.s sub_081B5314_jp +081b5344 party_menu.s sub_081B5344_jp +081b5378 party_menu.s sub_081B5378_jp +081b53d8 party_menu.s FieldCallback_PrepareFadeInFromMenu +081b53f0 party_menu.s task_launch_hm_phase_2 +081b542c party_menu.s brm_get_selected_species +081b5454 party_menu.s task_brm_cancel_1_on_keypad_a_or_b +081b547c party_menu.s sub_081B547C_jp +081b54a4 party_menu.s hm_surf_run_dp02scr +081b54c0 party_menu.s SetUpFieldMove_Surf +081b5504 party_menu.s sub_081B5504_jp +081b5524 party_menu.s SetUpFieldMove_Fly +081b5548 party_menu.s sub_081B5548_jp +081b5574 party_menu.s hm2_waterfall +081b5590 party_menu.s SetUpFieldMove_Waterfall +081b55f8 party_menu.s sub_081B55F8_jp +081b5614 party_menu.s SetUpFieldMove_Dive +081b5654 party_menu.s party_menu_icon_anim +081b56cc party_menu.s party_menu_link_mon_icon_anim +081b572c party_menu.s sub_081B572C_jp +081b57d8 party_menu.s sub_081B57D8_jp +081b580c party_menu.s AnimateSelectedPartyIcon +081b587c party_menu.s UpdatePartyMonIconFrameAndBounce +081b58a8 party_menu.s UpdatePartyMonIconFrame +081b58b4 party_menu.s party_menu_held_item_object +081b58e8 party_menu.s party_menu_link_mon_held_item_object +081b5934 party_menu.s sub_081B5934_jp +081b5950 party_menu.s sub_081B5950_jp +081b59d0 party_menu.s LoadHeldItemIcons +081b59ec party_menu.s sub_081B59EC_jp +081b5a90 party_menu.s sub_081B5A90_jp +081b5b14 party_menu.s SpriteCB_HeldItem +081b5b6c party_menu.s party_menu_pokeball_object +081b5b94 party_menu.s party_menu_link_mon_pokeball_object +081b5bd4 party_menu.s sub_081B5BD4_jp +081b5c14 party_menu.s sub_081B5C14_jp +081b5c38 party_menu.s sub_081B5C38_jp +081b5c5c party_menu.s sub_081B5C5C +081b5ce0 party_menu.s LoadPartyMenuPokeballGfx +081b5d04 party_menu.s party_menu_status_condition_object +081b5d38 party_menu.s party_menu_link_mon_status_condition_object +081b5d84 party_menu.s party_menu_get_status_condition_and_update_object +081b5d9c party_menu.s party_menu_update_status_condition_object +081b5e00 party_menu.s LoadPartyMenuAilmentGfx +081b5e1c party_menu.s sub_081B5E1C_jp +081b5ef4 party_menu.s c2_815ABFC +081b5f20 party_menu.s sub_081B5F20_jp +081b5f70 party_menu.s IsHPRecoveryItem +081b5fb0 party_menu.s GetMedicineItemEffectMessage +081b6170 party_menu.s UsingHPEVItemOnShedinja +081b61a4 party_menu.s IsItemFlute +081b61c0 party_menu.s ExecuteTableBasedItemEffect__ +081b6228 party_menu.s ItemUseCB_Medicine +081b63cc party_menu.s sub_081B63CC_jp +081b6434 party_menu.s sub_081B6434_jp +081b6468 party_menu.s sub_081B6468_jp +081b65bc party_menu.s ItemEffectToMonEv +081b663c party_menu.s ItemEffectToStatString +081b66b0 party_menu.s sub_081B66B0_jp +081b677c party_menu.s ether_effect_related_3 +081b67c4 party_menu.s dp05_ether +081b6848 party_menu.s ether_effect_related_2 +081b687c party_menu.s sub_081B687C_jp +081b68b4 party_menu.s ether_effect_related +081b6978 party_menu.s dp05_pp_up +081b69b4 party_menu.s ItemIdToBattleMoveId +081b69cc party_menu.s IsMoveHm +081b69fc party_menu.s MonKnowsMove +081b6a2c party_menu.s sub_081B6A2C_jp +081b6a50 party_menu.s sub_081B6A50_jp +081b6a7c party_menu.s sub_081B6A7C_jp +081b6b68 party_menu.s sub_081B6B68_jp +081b6c10 party_menu.s sub_081B6C10_jp +081b6c48 party_menu.s sub_081B6C48_jp +081b6ca4 party_menu.s sub_081B6CA4_jp +081b6cd8 party_menu.s sub_081B6CD8_jp +081b6d38 party_menu.s sub_081B6D38_jp +081b6d68 party_menu.s sub_081B6D68_jp +081b6da0 party_menu.s sub_081B6DA0_jp +081b6dcc party_menu.s sub_081B6DCC_jp +081b6e04 party_menu.s sub_081B6E04_jp +081b6e84 party_menu.s sub_081B6E84_jp +081b6ee0 party_menu.s sub_081B6EE0_jp +081b6f44 party_menu.s sub_081B6F44_jp +081b6f78 party_menu.s sub_081B6F78_jp +081b7090 party_menu.s sub_081B7090_jp +081b70b0 party_menu.s dp05_rare_candy +081b71f8 party_menu.s sub_081B71F8_jp +081b7280 party_menu.s sub_081B7280_jp +081b72e0 party_menu.s sub_081B72E0_jp +081b7328 party_menu.s sub_081B7328_jp +081b7374 party_menu.s sub_081B7374_jp +081b73b0 party_menu.s sub_081B73B0_jp +081b7458 party_menu.s sub_081B7458_jp +081b74bc party_menu.s sub_081B74BC_jp +081b7528 party_menu.s sub_081B7528_jp +081b75b8 party_menu.s sub_081B75B8_jp +081b7644 party_menu.s sub_081B7644_jp +081b768c party_menu.s sub_081B768C_jp +081b76cc party_menu.s sub_081B76CC_jp +081b77f0 party_menu.s task_sacred_ash_party_loop +081b78b4 party_menu.s sub_081B78B4_jp +081b7918 party_menu.s sub_081B7918_jp +081b7990 party_menu.s GetItemEffectType +081b7af0 party_menu.s sub_081B7AF0_jp +081b7bd4 party_menu.s CB2_PartyMenuFromStartMenu +081b7c00 party_menu.s sub_081B7C00_jp +081b7c4c party_menu.s sub_081B7C4C_jp +081b7ce4 party_menu.s sub_081B7CE4_jp +081b7d28 party_menu.s sub_081B7D28_jp +081b7da4 party_menu.s sub_081B7DA4_jp +081b7dec party_menu.s sub_081B7DEC_jp +081b7e48 party_menu.s sub_081B7E48_jp +081b7ed0 party_menu.s sub_081B7ED0_jp +081b7f40 party_menu.s sub_081B7F40_jp +081b7f74 party_menu.s sub_081B7F74_jp +081b8058 party_menu.s sub_081B8058_jp +081b8090 party_menu.s sub_081B8090_jp +081b80bc party_menu.s sub_081B80BC_jp +081b80e8 party_menu.s sub_081B80E8_jp +081b8114 party_menu.s sub_081B8114_jp +081b81b8 party_menu.s InitChooseHalfPartyForBattle +081b81f8 party_menu.s sub_081B81F8_jp +081b820c party_menu.s sub_081B820C +081b824c party_menu.s GetBattleEntryEligibility +081b82fc party_menu.s sub_081B82FC +081b8410 party_menu.s sub_081B8410_jp +081b843c party_menu.s sub_081B843C_jp +081b8488 party_menu.s sub_081B8488_jp +081b84d0 party_menu.s sub_081B84D0_jp +081b84fc party_menu.s sub_081B84FC_jp +081b8528 party_menu.s sub_081B8528_jp +081b855c party_menu.s sub_081B855C_jp +081b85a4 party_menu.s sub_081B85A4_jp +081b85cc party_menu.s sub_081B85CC_jp +081b85f8 party_menu.s sub_081B85F8_jp +081b8624 party_menu.s sub_081B8624_jp +081b864c party_menu.s OpenPartyMenuInBattle +081b8690 party_menu.s sub_081B8690_jp +081b86cc party_menu.s sub_081B86CC_jp +081b871c party_menu.s sub_081B871C_jp +081b8908 party_menu.s sub_081B8908_jp +081b8928 party_menu.s sub_081B8928_jp +081b8a04 party_menu.s sub_081B8A04_jp +081b8a28 party_menu.s sub_081B8A28_jp +081b8b20 party_menu.s sub_081B8B20_jp +081b8bd8 party_menu.s sub_081B8BD8_jp +081b8c0c party_menu.s sub_081B8C0C_jp +081b8c50 party_menu.s sub_081B8C50 +081b8c8c party_menu.s pokemon_order_func +081b8cd0 party_menu.s pokemon_change_order +081b8d20 party_menu.s sub_081B8D20_jp +081b8d70 party_menu.s sub_081B8D70_jp +081b8de0 party_menu.s sub_081B8DE0_jp +081b8df0 party_menu.s sub_081B8DF0_jp +081b8e1c party_menu.s sub_081B8E1C_jp +081b8e54 party_menu.s sub_081B8E54_jp +081b8ee0 party_menu.s sub_081B8EE0_jp +081b8f10 party_menu.s sub_081B8F10_jp +081b8f34 party_menu.s sub_081B8F34_jp +081b8fc8 party_menu.s sub_081B8FC8_jp +081b8ff4 party_menu.s sub_081B8FF4_jp +081b9030 party_menu.s sub_081B9030_jp +081b9068 party_menu.s hm_add_c3_without_phase_2 +081b9080 party_menu.s task_hm_without_phase_2 +081b90a4 party_menu.s sub_081B90A4_jp +081b90c4 party_menu.s sub_081B90C4_jp +081b9110 party_menu.s sub_081B9110_jp +081b9150 party_menu.s sub_081B9150_jp +081b9170 party_menu.s sub_081B9170_jp +081b91bc party_menu.s sub_081B91BC_jp +081b91dc party_menu.s sub_081B91DC_jp +081b9228 party_menu.s sub_081B9228_jp +081b9280 party_menu.s sub_081B9280_jp +081b92c0 party_menu.s sub_081B92C0_jp +081b92e0 party_menu.s sub_081B92E0_jp +081b932c party_menu.s sub_081B932C_jp +081b9370 party_menu.s sub_081B9370_jp +081b93b8 party_menu.s sub_081B93B8_jp +081b9410 party_menu.s sub_081B9410_jp +081b947c party_menu.s sub_081B947C_jp +081b957c party_menu.s sub_081B957C_jp +081b95b8 party_menu.s sub_081B95B8_jp +battle_tent.s +081b9654 battle_tent.s sub_081B9654_jp +081b9668 battle_tent.s sub_081B9668_jp +081b9674 battle_tent.s sub_081B9674_jp +081b96c8 battle_tent.s sub_081B96C8_jp +081b96e4 battle_tent.s sub_081B96E4_jp +081b9700 battle_tent.s sub_081B9700_jp +081b9730 battle_tent.s sub_081B9730_jp +081b975c battle_tent.s sub_081B975C_jp +081b97a0 battle_tent.s sub_081B97A0_jp +081b97c8 battle_tent.s sub_081B97C8_jp +081b9820 battle_tent.s sub_081B9820_jp +081b9834 battle_tent.s sub_081B9834_jp +081b9840 battle_tent.s sub_081B9840_jp +081b9894 battle_tent.s sub_081B9894_jp +081b98b0 battle_tent.s sub_081B98B0_jp +081b98cc battle_tent.s sub_081B98CC_jp +081b9910 battle_tent.s sub_081B9910_jp +081b9938 battle_tent.s sub_081B9938_jp +081b9990 battle_tent.s sub_081B9990_jp +081b99a8 battle_tent.s sub_081B99A8_jp +081b99bc battle_tent.s sub_081B99BC_jp +081b99c8 battle_tent.s sub_081B99C8_jp +081b9a1c battle_tent.s sub_081B9A1C_jp +081b9a38 battle_tent.s sub_081B9A38_jp +081b9a54 battle_tent.s sub_081B9A54_jp +081b9a98 battle_tent.s sub_081B9A98_jp +081b9ac0 battle_tent.s sub_081B9AC0_jp +081b9b18 battle_tent.s sub_081B9B18_jp +081b9b28 battle_tent.s sub_081B9B28 +081b9b34 battle_tent.s InSlateportBattleTent +081b9b60 battle_tent.s sub_081B9B60 +081b9ce0 battle_tent.s sub_081B9CE0 +unk_text_util_2.s +081b9ef0 unk_text_util_2.s Font6Func +081ba308 unk_text_util_2.s DecompressGlyphFont6 +081ba36c unk_text_util_2.s GetGlyphWidthFont6 +multiboot.s +081ba3a8 multiboot.s sub_081BA3A8 +081ba798 multiboot.s sub_081BA798 +081ba7e4 multiboot.s sub_081BA7E4 +081ba808 multiboot.s sub_081BA808 +081ba8cc multiboot.s sub_081BA8CC +081ba8e0 multiboot.s sub_081BA8E0 +081ba9cc multiboot.s sub_081BA9CC +081ba9e4 multiboot.s sub_081BA9E4 +unk_81BAD84.s +081baa20 unk_81BAD84.s sub_081BAA20_jp +battle_controller_player_partner.s +081baa8c battle_controller_player_partner.s PlayerPartnerCmdEnd +081baa90 battle_controller_player_partner.s SetControllerToPlayerPartner +081baaac battle_controller_player_partner.s PlayerPartnerBufferRunCommand +081baafc battle_controller_player_partner.s CompleteOnBattlerSpriteCallbackDummy +081bab34 battle_controller_player_partner.s sub_081BAB34 +081bab9c battle_controller_player_partner.s sub_081BAB9C_jp +081babe4 battle_controller_player_partner.s sub_081BABE4_jp +081bacc8 battle_controller_player_partner.s sub_081BACC8_jp +081bae70 battle_controller_player_partner.s sub_081BAE70_jp +081baeb0 battle_controller_player_partner.s CompleteOnHealthbarDone +081baf20 battle_controller_player_partner.s CompleteOnInactiveTextPrinter +081baf38 battle_controller_player_partner.s Task_GiveExpToMon +081bb0b0 battle_controller_player_partner.s Task_PrepareToGiveExpWithExpBar +081bb180 battle_controller_player_partner.s sub_081BB180_jp +081bb2c4 battle_controller_player_partner.s sub_081BB2C4_jp +081bb324 battle_controller_player_partner.s sub_081BB324_jp +081bb3dc battle_controller_player_partner.s DestroyExpTaskAndCompleteOnInactiveTextPrinter +081bb428 battle_controller_player_partner.s sub_081BB428_jp +081bb4c4 battle_controller_player_partner.s sub_081BB4C4_jp +081bb534 battle_controller_player_partner.s CompleteOnInactiveTextPrinter2 +081bb54c battle_controller_player_partner.s DoHitAnimBlinkSpriteEffect +081bb5c8 battle_controller_player_partner.s sub_081BB5C8_jp +081bb63c battle_controller_player_partner.s sub_081BB63C_jp +081bb690 battle_controller_player_partner.s sub_081BB690_jp +081bb784 battle_controller_player_partner.s sub_081BB784 +081bb828 battle_controller_player_partner.s PlayerPartnerBufferExecCompleted +081bb8a0 battle_controller_player_partner.s CompleteOnFinishedStatusAnimation +081bb8d0 battle_controller_player_partner.s CompleteOnFinishedBattleAnimation +081bb900 battle_controller_player_partner.s PlayerPartnerHandleGetMonData +081bb974 battle_controller_player_partner.s CopyPlayerPartnerMonData +081bc120 battle_controller_player_partner.s PlayerPartnerHandleGetRawMonData +081bc12c battle_controller_player_partner.s PlayerPartnerHandleSetMonData +081bc184 battle_controller_player_partner.s SetPlayerPartnerMonData +081bcb80 battle_controller_player_partner.s PlayerPartnerHandleSetRawMonData +081bcbf4 battle_controller_player_partner.s PlayerPartnerHandleLoadMonSprite +081bcd10 battle_controller_player_partner.s PlayerPartnerHandleSwitchInAnim +081bcd80 battle_controller_player_partner.s sub_081BCD80 +081bcefc battle_controller_player_partner.s PlayerPartnerHandleReturnMonToBall +081bcf8c battle_controller_player_partner.s DoSwitchOutAnimation +081bd018 battle_controller_player_partner.s PlayerPartnerHandleDrawTrainerPic +081bd258 battle_controller_player_partner.s PlayerPartnerHandleTrainerSlide +081bd264 battle_controller_player_partner.s PlayerPartnerHandleTrainerSlideBack +081bd310 battle_controller_player_partner.s PlayerPartnerHandleFaintAnimation +081bd3fc battle_controller_player_partner.s PlayerPartnerHandlePaletteFade +081bd408 battle_controller_player_partner.s PlayerPartnerHandleSuccessBallThrowAnim +081bd414 battle_controller_player_partner.s PlayerPartnerHandleBallThrowAnim +081bd420 battle_controller_player_partner.s PlayerPartnerHandlePause +081bd42c battle_controller_player_partner.s PlayerPartnerHandleMoveAnimation +081bd564 battle_controller_player_partner.s PlayerPartnerDoMoveAnimation +081bd6e8 battle_controller_player_partner.s PlayerPartnerHandlePrintString +081bd73c battle_controller_player_partner.s PlayerPartnerHandlePrintSelectionString +081bd748 battle_controller_player_partner.s PlayerPartnerHandleChooseAction +081bd758 battle_controller_player_partner.s PlayerPartnerHandleUnknownYesNoBox +081bd764 battle_controller_player_partner.s PlayerPartnerHandleChooseMove +081bd80c battle_controller_player_partner.s PlayerPartnerHandleChooseItem +081bd818 battle_controller_player_partner.s PlayerPartnerHandleChoosePokemon +081bd8a0 battle_controller_player_partner.s PlayerPartnerHandleCmd23 +081bd8ac battle_controller_player_partner.s PlayerPartnerHandleHealthBarUpdate +081bd99c battle_controller_player_partner.s PlayerPartnerHandleExpUpdate +081bda38 battle_controller_player_partner.s PlayerPartnerHandleStatusIconUpdate +081bdab0 battle_controller_player_partner.s PlayerPartnerHandleStatusAnimation +081bdb18 battle_controller_player_partner.s PlayerPartnerHandleStatusXor +081bdb24 battle_controller_player_partner.s PlayerPartnerHandleDataTransfer +081bdb30 battle_controller_player_partner.s PlayerPartnerHandleDMA3Transfer +081bdb3c battle_controller_player_partner.s PlayerPartnerHandlePlayBGM +081bdb48 battle_controller_player_partner.s PlayerPartnerHandleCmd32 +081bdb54 battle_controller_player_partner.s PlayerPartnerHandleTwoReturnValues +081bdb60 battle_controller_player_partner.s PlayerPartnerHandleChosenMonReturnValue +081bdb6c battle_controller_player_partner.s PlayerPartnerHandleOneReturnValue +081bdb78 battle_controller_player_partner.s PlayerPartnerHandleOneReturnValue_Duplicate +081bdb84 battle_controller_player_partner.s PlayerPartnerHandleCmd37 +081bdba0 battle_controller_player_partner.s PlayerPartnerHandleCmd38 +081bdbd8 battle_controller_player_partner.s PlayerPartnerHandleCmd39 +081bdbf0 battle_controller_player_partner.s PlayerPartnerHandleCmd40 +081bdc18 battle_controller_player_partner.s PlayerPartnerHandleHitAnimation +081bdc88 battle_controller_player_partner.s PlayerPartnerHandleCmd42 +081bdc94 battle_controller_player_partner.s PlayerPartnerHandlePlaySE +081bdcd8 battle_controller_player_partner.s PlayerPartnerHandlePlayFanfareOrBGM +081bdd34 battle_controller_player_partner.s PlayerPartnerHandleFaintingCry +081bdd74 battle_controller_player_partner.s PlayerPartnerHandleIntroSlide +081bdda8 battle_controller_player_partner.s PlayerPartnerHandleIntroTrainerBallThrow +081bdf64 battle_controller_player_partner.s sub_081BDF64 +081be070 battle_controller_player_partner.s PlayerPartnerHandleDrawPartyStatusSummary +081be134 battle_controller_player_partner.s sub_081BE134 +081be17c battle_controller_player_partner.s PlayerPartnerHandleHidePartyStatusSummary +081be1cc battle_controller_player_partner.s PlayerPartnerHandleEndBounceEffect +081be1d8 battle_controller_player_partner.s PlayerPartnerHandleSpriteInvisibility +081be238 battle_controller_player_partner.s PlayerPartnerHandleBattleAnimation +081be2a0 battle_controller_player_partner.s PlayerPartnerHandleLinkStandbyMsg +081be2ac battle_controller_player_partner.s PlayerPartnerHandleResetActionMoveSelection +081be2b8 battle_controller_player_partner.s PlayerPartnerHandleCmd55 +081be304 battle_controller_player_partner.s nullsub_77 +mirage_tower.s +081be308 mirage_tower.s IsMirageTowerVisible +081be334 mirage_tower.s UpdateMirageTowerPulseBlend +081be348 mirage_tower.s ClearMirageTowerPulseBlend +081be354 mirage_tower.s TryStartMirageTowerPulseBlendEffect +081be3c8 mirage_tower.s ClearMirageTowerPulseBlendEffect +081be438 mirage_tower.s SetMirageTowerVisibility +081be490 mirage_tower.s StartPlayerDescendMirageTower +081be4a4 mirage_tower.s PlayerDescendMirageTower +081be538 mirage_tower.s StartScreenShake +081be59c mirage_tower.s DoScreenShake +081be604 mirage_tower.s IncrementCeilingCrumbleFinishedCount +081be630 mirage_tower.s DoMirageTowerCeilingCrumble +081be65c mirage_tower.s WaitCeilingCrumble +081be69c mirage_tower.s FinishCeilingCrumbleTask +081be6bc mirage_tower.s CreateCeilingCrumbleSprites +081be774 mirage_tower.s MoveCeilingCrumbleSprite +081be7c0 mirage_tower.s SetInvisibleMirageTowerMetatiles +081be7f0 mirage_tower.s StartMirageTowerDisintegration +081be804 mirage_tower.s StartMirageTowerFossilFallAndSink +081be818 mirage_tower.s StartMirageTowerShake +081be82c mirage_tower.s SetBgShakeOffsets +081be850 mirage_tower.s UpdateBgShake +081be890 mirage_tower.s InitMirageTowerShake +081be9ec mirage_tower.s DoMirageTowerDisintegration +081becc4 mirage_tower.s DoFossilFallAndSink +berry_fix_program.s +081beee4 berry_fix_program.s berry_fix_text_update +081bef54 berry_fix_program.s CB2_InitBerryFixProgram +081bf020 berry_fix_program.s berry_fix_bg_hide +081bf0b0 berry_fix_program.s berry_fix_text_print +081bf0bc berry_fix_program.s berry_fix_main +pokemon_summary_screen.s +081bf280 pokemon_summary_screen.s ShowPokemonSummaryScreen +081bf3cc pokemon_summary_screen.s ShowSelectMovePokemonSummaryScreen +081bf414 pokemon_summary_screen.s SummaryScreen_VBlank +081bf430 pokemon_summary_screen.s FreeSummaryScreen +081bf444 pokemon_summary_screen.s SummaryScreen_LoadingCB2 +081bf470 pokemon_summary_screen.s SummaryScreen_LoadGraphics +081bf784 pokemon_summary_screen.s InitBGs +081bf810 pokemon_summary_screen.s SummaryScreen_DecompressGraphics +081bf9f8 pokemon_summary_screen.s CopyMonToSummaryStruct +081bfa50 pokemon_summary_screen.s ExtractMonDataToSummaryStruct +081bfc7c pokemon_summary_screen.s sub_081BFC7C_jp +081bfd68 pokemon_summary_screen.s sub_081BFD68_jp +081bfd80 pokemon_summary_screen.s BeginCloseSummaryScreen +081bfdb8 pokemon_summary_screen.s CloseSummaryScreen +081bfe44 pokemon_summary_screen.s HandleInput +081bff38 pokemon_summary_screen.s ChangeSummaryPokemon +081c0038 pokemon_summary_screen.s sub_081C0038_jp +081c022c pokemon_summary_screen.s sub_081C022C_jp +081c02e8 pokemon_summary_screen.s sub_081C02E8_jp +081c0384 pokemon_summary_screen.s sub_081C0384_jp +081c03c0 pokemon_summary_screen.s ChangePage +081c04c0 pokemon_summary_screen.s PssScrollRight +081c059c pokemon_summary_screen.s PssScrollRightEnd +081c05f8 pokemon_summary_screen.s PssScrollLeft +081c0678 pokemon_summary_screen.s PssScrollLeftEnd +081c0758 pokemon_summary_screen.s CheckExperienceProgressBar +081c077c pokemon_summary_screen.s sub_081C077C_jp +081c0878 pokemon_summary_screen.s HandleInput_MoveSelect +081c0974 pokemon_summary_screen.s sub_081C0974 +081c09a4 pokemon_summary_screen.s sub_081C09A4_jp +081c0b28 pokemon_summary_screen.s sub_081C0B28_jp +081c0bd0 pokemon_summary_screen.s sub_081C0BD0_jp +081c0c18 pokemon_summary_screen.s sub_081C0C18_jp +081c0ce4 pokemon_summary_screen.s sub_081C0CE4_jp +081c0df0 pokemon_summary_screen.s SwapBoxMonMoves +081c0f20 pokemon_summary_screen.s SwapMonMoves +081c1050 pokemon_summary_screen.s sub_081C1050_jp +081c1080 pokemon_summary_screen.s HandleReplaceMoveInput +081c11dc pokemon_summary_screen.s CanReplaceMove +081c1228 pokemon_summary_screen.s ShowHMMovesCantBeForgottenWindow +081c1274 pokemon_summary_screen.s HandleHMMovesCantBeForgottenInput +081c14c8 pokemon_summary_screen.s sub_081C14C8 +081c14d4 pokemon_summary_screen.s DrawPagination +081c15e4 pokemon_summary_screen.s sub_081C15E4_jp +081c16d8 pokemon_summary_screen.s sub_081C16D8_jp +081c1754 pokemon_summary_screen.s sub_081C1754_jp +081c1830 pokemon_summary_screen.s sub_081C1830_jp +081c18b4 pokemon_summary_screen.s sub_081C18B4_jp +081c19a8 pokemon_summary_screen.s sub_081C19A8_jp +081c1a24 pokemon_summary_screen.s sub_081C1A24_jp +081c1ac8 pokemon_summary_screen.s sub_081C1AC8 +081c1b5c pokemon_summary_screen.s DrawPokerusCuredSymbol +081c1bc0 pokemon_summary_screen.s Summary_SetDexNumberColor +081c1c00 pokemon_summary_screen.s DrawExperienceProgressBar +081c1d40 pokemon_summary_screen.s DrawContestMoveHearts +081c1e58 pokemon_summary_screen.s LimitEggSummaryPageDisplay +081c1e88 pokemon_summary_screen.s ResetWindows +081c1ed8 pokemon_summary_screen.s SummaryScreen_PrintTextOnWindow +081c1f1c pokemon_summary_screen.s Summary_PrintMonInfo +081c1f5c pokemon_summary_screen.s Summary_PrintNotEggInfo +081c20d8 pokemon_summary_screen.s Summary_PrintEggInfo +081c2120 pokemon_summary_screen.s Summar_PrintGenderSymbol +081c219c pokemon_summary_screen.s PrintAOrBButtonIcon +081c21cc pokemon_summary_screen.s sub_081C21CC_jp +081c23d4 pokemon_summary_screen.s CreatePageWindowTilemaps +081c251c pokemon_summary_screen.s ClearPageWindowTilemaps +081c2620 pokemon_summary_screen.s AddWindowFromTemplateList +081c265c pokemon_summary_screen.s SummaryScreen_RemoveWindowByIndex +081c2690 pokemon_summary_screen.s PrintPageSpecificText +081c26c4 pokemon_summary_screen.s SummaryScreen_MainCB2 +081c26d8 pokemon_summary_screen.s CreateTextPrinterTask +081c26f4 pokemon_summary_screen.s PrintInfoPageText +081c2734 pokemon_summary_screen.s Task_PrintInfoPage +081c27b8 pokemon_summary_screen.s PrintMonOTID +081c2828 pokemon_summary_screen.s PrintEggOTID +081c288c pokemon_summary_screen.s PrintMonAbilityDescription +081c28e0 pokemon_summary_screen.s PrintMonAbilityName +081c2934 pokemon_summary_screen.s BufferMonTrainerMemo +081c2a4c pokemon_summary_screen.s PrintMonTrainerMemo +081c2a78 pokemon_summary_screen.s BufferNatureString +081c2ac4 pokemon_summary_screen.s GetMetLevelString +081c2af4 pokemon_summary_screen.s DoesMonOTMatchOwner +081c2bb4 pokemon_summary_screen.s DidMonComeFromGBAGames +081c2bd8 pokemon_summary_screen.s DidMonComeFromRSE +081c2bfc pokemon_summary_screen.s IsInGamePartnerMon +081c2c54 pokemon_summary_screen.s PrintLeftColumnStats +081c2c84 pokemon_summary_screen.s PrintRightColumnStats +081c2cb4 pokemon_summary_screen.s PrintEggState +081c2d28 pokemon_summary_screen.s PrintEggMemo +081c2dbc pokemon_summary_screen.s PrintSkillsPageText +081c2de0 pokemon_summary_screen.s Task_PrintSkillsPage +081c2e70 pokemon_summary_screen.s PrintHeldItemName +081c2f08 pokemon_summary_screen.s PrintRibbonCount +081c2f74 pokemon_summary_screen.s BufferLeftColumnStats +081c303c pokemon_summary_screen.s sub_081C303C_jp +081c3068 pokemon_summary_screen.s BufferRightColumnStats +081c30f0 pokemon_summary_screen.s ShowPokemonSummaryScreenSet40EF +081c311c pokemon_summary_screen.s PrintExpPointsNextLevel +081c31d8 pokemon_summary_screen.s PrintBattleMoves +081c3244 pokemon_summary_screen.s Task_PrintBattleMoves +081c335c pokemon_summary_screen.s PrintMoveNameAndPP +081c3498 pokemon_summary_screen.s PrintMovePowerAndAccuracy +081c3544 pokemon_summary_screen.s PrintContestMoves +081c3590 pokemon_summary_screen.s Task_PrintContestMoves +081c3668 pokemon_summary_screen.s PrintContestMoveDescription +081c36d4 pokemon_summary_screen.s PrintMoveDetails +081c377c pokemon_summary_screen.s PrintNewMoveDetailsOrCancelText +081c3888 pokemon_summary_screen.s sub_081C3888_jp +081c38c4 pokemon_summary_screen.s PrintEggOTName +081c3978 pokemon_summary_screen.s PrintHMMovesCantBeForgotten +081c39b4 pokemon_summary_screen.s ResetSpriteIds +081c39e4 pokemon_summary_screen.s DestroySpriteInArray +081c3a28 pokemon_summary_screen.s SetSpriteInvisibility +081c3a70 pokemon_summary_screen.s HidePageSpecificSprites +081c3aa4 pokemon_summary_screen.s SetTypeIcons +081c3aec pokemon_summary_screen.s CreateMoveTypeIcons +081c3b3c pokemon_summary_screen.s SetMoveTypeSpritePosAndType +081c3bc4 pokemon_summary_screen.s SetMonTypeIcons +081c3c44 pokemon_summary_screen.s SetMoveTypeIcons +081c3ca8 pokemon_summary_screen.s SetContestMoveTypeIcons +081c3d14 pokemon_summary_screen.s SetNewMoveTypeIcon +081c3d8c pokemon_summary_screen.s sub_081C3D8C +081c3e18 pokemon_summary_screen.s CreatePokemonSprite +081c3f80 pokemon_summary_screen.s PlayMonCry +081c3fbc pokemon_summary_screen.s sub_081C3FBC_jp +081c404c pokemon_summary_screen.s SpriteCB_Pokemon +081c4094 pokemon_summary_screen.s SummaryScreen_SetUnknownTaskId +081c40a0 pokemon_summary_screen.s SummaryScreen_DestroyUnknownTask +081c40bc pokemon_summary_screen.s SummaryScreen_DoesSpriteHaveCallback +081c40f8 pokemon_summary_screen.s StopPokemonAnimations +081c418c pokemon_summary_screen.s CreateMonMarkingsSprite +081c41e8 pokemon_summary_screen.s RemoveAndCreateMonMarkingsSprite +081c4210 pokemon_summary_screen.s CreateCaughtBallSprite +081c4290 pokemon_summary_screen.s CreateSetStatusSprite +081c4300 pokemon_summary_screen.s sub_081C4300_jp +081c43ec pokemon_summary_screen.s sub_081C43EC_jp +081c4468 pokemon_summary_screen.s sub_081C4468_jp +081c448c pokemon_summary_screen.s sub_081C448C_jp +081c4520 pokemon_summary_screen.s sub_081C4520_jp +unk_pokedex_area_screen_helper.s +081c4578 unk_pokedex_area_screen_helper.s sub_081C4578_jp +081c4698 unk_pokedex_area_screen_helper.s sub_081C4698_jp +081c46bc unk_pokedex_area_screen_helper.s sub_081C46BC_jp +081c46d8 unk_pokedex_area_screen_helper.s sub_081C46D8_jp +battle_pyramid_bag.s +081c46f4 battle_pyramid_bag.s InitBattlePyramidBagCursorPosition +081c4704 battle_pyramid_bag.s CB2_PyramidBagMenuFromStartMenu +081c4718 battle_pyramid_bag.s sub_081C4718 +081c472c battle_pyramid_bag.s sub_081C472C_jp +081c474c battle_pyramid_bag.s sub_081C474C_jp +081c478c battle_pyramid_bag.s sub_081C478C_jp +081c47a0 battle_pyramid_bag.s sub_081C47A0_jp +081c4824 battle_pyramid_bag.s sub_081C4824_jp +081c4840 battle_pyramid_bag.s sub_081C4840_jp +081c4854 battle_pyramid_bag.s sub_081C4854_jp +081c4880 battle_pyramid_bag.s sub_081C4880_jp +081c49e4 battle_pyramid_bag.s sub_081C49E4_jp +081c4a40 battle_pyramid_bag.s sub_081C4A40_jp +081c4b1c battle_pyramid_bag.s SetBagItemsListTemplate +081c4c14 battle_pyramid_bag.s PyramidBag_CopyItemName +081c4c68 battle_pyramid_bag.s PyramidBagMoveCursorFunc +081c4d20 battle_pyramid_bag.s PrintItemQuantity +081c4dd4 battle_pyramid_bag.s PrintItemDescription +081c4e70 battle_pyramid_bag.s AddScrollArrow +081c4ec8 battle_pyramid_bag.s RemoveScrollArrow +081c4ef4 battle_pyramid_bag.s sub_081C4EF4_jp +081c4f34 battle_pyramid_bag.s SwapItems +081c4fa4 battle_pyramid_bag.s MovePyramidBagItemSlotInList +081c5068 battle_pyramid_bag.s CompactItems +081c5120 battle_pyramid_bag.s sub_081C5120 +081c51b8 battle_pyramid_bag.s sub_081C51B8_jp +081c521c battle_pyramid_bag.s sub_081C521C_jp +081c5294 battle_pyramid_bag.s sub_081C5294_jp +081c52b4 battle_pyramid_bag.s sub_081C52B4_jp +081c5310 battle_pyramid_bag.s sub_081C5310_jp +081c5348 battle_pyramid_bag.s sub_081C5348_jp +081c53c4 battle_pyramid_bag.s Task_HandlePyramidBagInput +081c551c battle_pyramid_bag.s sub_081C551C_jp +081c56a8 battle_pyramid_bag.s sub_081C56A8_jp +081c5724 battle_pyramid_bag.s sub_081C5724_jp +081c5794 battle_pyramid_bag.s HandleFewMenuActionsInput +081c5810 battle_pyramid_bag.s HandleMenuActionInput +081c5998 battle_pyramid_bag.s IsValidMenuAction +081c59d4 battle_pyramid_bag.s sub_081C59D4_jp +081c5a0c battle_pyramid_bag.s BagAction_UseOnField +081c5a84 battle_pyramid_bag.s BagAction_Cancel +081c5ac8 battle_pyramid_bag.s SetTaskToMainPyramidBagInputHandler +081c5af0 battle_pyramid_bag.s BagAction_Toss +081c5b7c battle_pyramid_bag.s sub_081C5B7C_jp +081c5bfc battle_pyramid_bag.s DontTossItem +081c5c30 battle_pyramid_bag.s sub_081C5C30_jp +081c5c7c battle_pyramid_bag.s sub_081C5C7C_jp +081c5cc4 battle_pyramid_bag.s sub_081C5CC4_jp +081c5d5c battle_pyramid_bag.s TossItem +081c5ddc battle_pyramid_bag.s sub_081C5DDC_jp +081c5e58 battle_pyramid_bag.s BagAction_Give +081c5ebc battle_pyramid_bag.s sub_081C5EBC_jp +081c5efc battle_pyramid_bag.s sub_081C5EFC_jp +081c5f24 battle_pyramid_bag.s sub_081C5F24_jp +081c5f5c battle_pyramid_bag.s sub_081C5F5C_jp +081c5fac battle_pyramid_bag.s BagAction_UseInBattle +081c5fdc battle_pyramid_bag.s Task_BeginItemSwap +081c60c8 battle_pyramid_bag.s Task_ItemSwapHandleInput +081c617c battle_pyramid_bag.s PerformItemSwap +081c622c battle_pyramid_bag.s sub_081C622C_jp +081c62ac battle_pyramid_bag.s sub_081C62AC_jp +081c63f0 battle_pyramid_bag.s sub_081C63F0_jp +081c6454 battle_pyramid_bag.s PrintOnWindow_Font1 +081c64ac battle_pyramid_bag.s sub_081C64AC_jp +081c64c8 battle_pyramid_bag.s sub_081C64C8_jp +081c64e4 battle_pyramid_bag.s sub_081C64E4_jp +081c652c battle_pyramid_bag.s sub_081C652C_jp +081c656c battle_pyramid_bag.s sub_081C656C_jp +081c6598 battle_pyramid_bag.s DisplayItemMessageInBattlePyramid +081c65dc battle_pyramid_bag.s sub_081C65DC_jp +081c65f8 battle_pyramid_bag.s sub_081C65F8_jp +081c6658 battle_pyramid_bag.s sub_081C6658_jp +081c66b4 battle_pyramid_bag.s sub_081C66B4_jp +081c66e0 battle_pyramid_bag.s sub_081C66E0_jp +081c6728 battle_pyramid_bag.s sub_081C6728_jp +081c6750 battle_pyramid_bag.s ShowItemImage +081c67b8 battle_pyramid_bag.s sub_081C67B8 +081c67cc battle_pyramid_bag.s sub_081C67CC_jp +081c67e8 battle_pyramid_bag.s sub_081C67E8_jp +081c680c battle_pyramid_bag.s sub_081C680C_jp +pokenav.s +081c6838 pokenav.s CreateLoopedTask +081c6898 pokenav.s IsLoopedTaskActive +081c68e4 pokenav.s FuncIsActiveLoopedTask +081c6930 pokenav.s Task_RunLoopedTask +081c69a4 pokenav.s Task_RunLoopedTask_LinkMode +081c6a10 pokenav.s CB2_InitPokeNav +081c6a64 pokenav.s sub_081C6A64_jp +081c6a7c pokenav.s sub_081C6A7C_jp +081c6af4 pokenav.s FreePokenavResources +081c6b20 pokenav.s InitPokenavResources +081c6b48 pokenav.s AnyMonHasRibbon +081c6bc0 pokenav.s CB2_Pokenav +081c6bd8 pokenav.s VBlankCB_Pokenav +081c6bec pokenav.s sub_081C6BEC_jp +081c6d2c pokenav.s CanViewRibbonsMenu +081c6d48 pokenav.s SetActivePokenavMenu +081c6d94 pokenav.s sub_081C6D94_jp +081c6da0 pokenav.s sub_081C6DA0_jp +081c6dac pokenav.s sub_081C6DAC_jp +081c6db4 pokenav.s SetVBlankCallback_ +081c6dc0 pokenav.s InitKeys_ +081c6dcc pokenav.s SetPokenavVBlankCallback +081c6ddc pokenav.s AllocSubstruct +081c6dfc pokenav.s GetSubstructPtr +081c6e10 pokenav.s FreePokenavSubstruct +081c6e3c pokenav.s GetPokenavMode +081c6e48 pokenav.s SetPokenavMode +081c6e54 pokenav.s sub_081C6E54 +081c6e6c pokenav.s sub_081C6E6C +081c6e78 pokenav.s sub_081C6E78_jp +pokenav_main_menu.s +081c6e84 pokenav_main_menu.s InitPokenavMainMenu +081c6ebc pokenav_main_menu.s PokenavMainMenuLoopedTaskIsActive +081c6ed0 pokenav_main_menu.s ShutdownPokenav +081c6ef8 pokenav_main_menu.s WaitForPokenavShutdownFade +081c6f24 pokenav_main_menu.s LoopedTask_InitPokenavMenu +081c6ff4 pokenav_main_menu.s sub_081C6FF4 +081c7010 pokenav_main_menu.s sub_081C7010_jp +081c702c pokenav_main_menu.s sub_081C702C_jp +081c703c pokenav_main_menu.s IsPaletteFadeActive +081c7040 pokenav_main_menu.s sub_081C7040_jp +081c7060 pokenav_main_menu.s sub_081C7060 +081c7080 pokenav_main_menu.s MainMenuLoopedTaskIsBusy +081c7094 pokenav_main_menu.s LoopedTask_ScrollMenuHeaderDown +081c70dc pokenav_main_menu.s LoopedTask_ScrollMenuHeaderUp +081c7104 pokenav_main_menu.s CopyPaletteIntoBufferUnfaded +081c711c pokenav_main_menu.s Pokenav_AllocAndLoadPalettes +081c7150 pokenav_main_menu.s sub_081C7150_jp +081c717c pokenav_main_menu.s sub_081C717C_jp +081c7280 pokenav_main_menu.s sub_081C7280_jp +081c72f4 pokenav_main_menu.s IsDma3ManagerBusyWithBgCopy_ +081c7300 pokenav_main_menu.s sub_081C7300_jp +081c7314 pokenav_main_menu.s InitBgTemplates +081c7334 pokenav_main_menu.s sub_081C7334_jp +081c7364 pokenav_main_menu.s sub_081C7364_jp +081c73a8 pokenav_main_menu.s sub_081C73A8_jp +081c73b8 pokenav_main_menu.s sub_081C73B8_jp +081c73e8 pokenav_main_menu.s InitPokenavMainMenuResources +081c7454 pokenav_main_menu.s CleanupPokenavMainMenuResources +081c7474 pokenav_main_menu.s SpriteCB_SpinningPokenav +081c748c pokenav_main_menu.s PauseSpinningPokenavSprite +081c74a4 pokenav_main_menu.s ResumeSpinningPokenavSprite +081c74e8 pokenav_main_menu.s InitHoennMapHeaderSprites +081c75bc pokenav_main_menu.s LoadLeftHeaderGfxForIndex +081c75d4 pokenav_main_menu.s sub_081C75D4 +081c7618 pokenav_main_menu.s LoadLeftHeaderGfxForMenu +081c76cc pokenav_main_menu.s LoadLeftHeaderGfxForSubMenu +081c7748 pokenav_main_menu.s sub_081C7748 +081c776c pokenav_main_menu.s sub_081C776C_jp +081c7784 pokenav_main_menu.s sub_081C7784_jp +081c77b8 pokenav_main_menu.s sub_081C77B8_jp +081c77e4 pokenav_main_menu.s ShowLeftHeaderSprites +081c7830 pokenav_main_menu.s ShowLeftHeaderSubmenuSprites +081c787c pokenav_main_menu.s HideLeftHeaderSprites +081c78b8 pokenav_main_menu.s HideLeftHeaderSubmenuSprites +081c78f4 pokenav_main_menu.s MoveLeftHeader +081c7924 pokenav_main_menu.s SpriteCB_MoveLeftHeader +pokenav_match_call_ui.s +081c797c pokenav_match_call_ui.s sub_081C797C_jp +081c79cc pokenav_match_call_ui.s sub_081C79CC_jp +081c79dc pokenav_match_call_ui.s sub_081C79DC_jp +081c79fc pokenav_match_call_ui.s LoopedTask_sub_81C8254 +081c7a8c pokenav_match_call_ui.s sub_081C7A8C_jp +081c7b04 pokenav_match_call_ui.s sub_081C7B04_jp +081c7b24 pokenav_match_call_ui.s sub_081C7B24_jp +081c7b54 pokenav_match_call_ui.s sub_081C7B54_jp +081c7b88 pokenav_match_call_ui.s sub_081C7B88_jp +081c7b98 pokenav_match_call_ui.s LoopedTask_sub_81C83F0 +081c7c4c pokenav_match_call_ui.s ShouldShowUpArrow +081c7c68 pokenav_match_call_ui.s ShouldShowDownArrow +081c7c90 pokenav_match_call_ui.s MatchCall_MoveWindow +081c7d10 pokenav_match_call_ui.s sub_081C7D10_jp +081c7d48 pokenav_match_call_ui.s LoopedTask_sub_81C85A0 +081c7dd8 pokenav_match_call_ui.s sub_081C7DD8 +081c7dec pokenav_match_call_ui.s GetMatchCallWindowStruct +081c7e00 pokenav_match_call_ui.s MatchCall_MoveCursorUp +081c7e34 pokenav_match_call_ui.s MatchCall_MoveCursorDown +081c7e74 pokenav_match_call_ui.s MatchCall_PageUp +081c7eb4 pokenav_match_call_ui.s MatchCall_PageDown +081c7f04 pokenav_match_call_ui.s GetSelectedMatchCall +081c7f18 pokenav_match_call_ui.s GetMatchCallListTopIndex +081c7f24 pokenav_match_call_ui.s sub_081C7F24_jp +081c7f54 pokenav_match_call_ui.s sub_081C7F54_jp +081c7f98 pokenav_match_call_ui.s sub_081C7F98_jp +081c7fc8 pokenav_match_call_ui.s sub_081C7FC8_jp +081c7fe0 pokenav_match_call_ui.s sub_081C7FE0_jp +081c8018 pokenav_match_call_ui.s LoopedTask_sub_81C8870 +081c8100 pokenav_match_call_ui.s LoopedTask_sub_81C8958 +081c81d0 pokenav_match_call_ui.s LoopedTask_sub_81C8A28 +081c8318 pokenav_match_call_ui.s sub_081C8318_jp +081c840c pokenav_match_call_ui.s sub_081C840C_jp +081c845c pokenav_match_call_ui.s sub_081C845C_jp +081c8484 pokenav_match_call_ui.s sub_081C8484_jp +081c84f4 pokenav_match_call_ui.s sub_081C84F4_jp +081c8510 pokenav_match_call_ui.s sub_081C8510_jp +081c8564 pokenav_match_call_ui.s PrintMatchCallFieldNames +081c85fc pokenav_match_call_ui.s sub_081C85FC_jp +081c867c pokenav_match_call_ui.s sub_081C867C_jp +081c86a4 pokenav_match_call_ui.s sub_081C86A4_jp +081c8794 pokenav_match_call_ui.s sub_081C8794_jp +081c87bc pokenav_match_call_ui.s ToggleMatchCallArrows +081c8834 pokenav_match_call_ui.s SpriteCB_MatchCallRightArrow +081c8854 pokenav_match_call_ui.s SpriteCB_MatchCallDownArrow +081c88a8 pokenav_match_call_ui.s SpriteCB_MatchCallUpArrow +081c88fc pokenav_match_call_ui.s ToggleMatchCallVerticalArrows +081c8914 pokenav_match_call_ui.s sub_081C8914 +081c8960 pokenav_match_call_ui.s sub_081C8960_jp +pokenav_unk_1.s +081c8a14 pokenav_unk_1.s GetPokenavMainMenuType +081c8a44 pokenav_unk_1.s sub_081C8A44 +081c8a78 pokenav_unk_1.s sub_081C8A78_jp +081c8ab0 pokenav_unk_1.s sub_081C8AB0_jp +081c8ae4 pokenav_unk_1.s sub_081C8AE4_jp +081c8b14 pokenav_unk_1.s sub_081C8B14_jp +081c8b48 pokenav_unk_1.s sub_081C8B48_jp +081c8b98 pokenav_unk_1.s sub_081C8B98_jp +081c8bc8 pokenav_unk_1.s sub_081C8BC8_jp +081c8bdc pokenav_unk_1.s sub_081C8BDC_jp +081c8be8 pokenav_unk_1.s sub_081C8BE8_jp +081c8ccc pokenav_unk_1.s sub_081C8CCC_jp +081c8d34 pokenav_unk_1.s sub_081C8D34_jp +081c8dac pokenav_unk_1.s sub_081C8DAC_jp +081c8de8 pokenav_unk_1.s sub_081C8DE8_jp +081c8ea8 pokenav_unk_1.s sub_081C8EA8_jp +081c8f44 pokenav_unk_1.s sub_081C8F44_jp +081c8f50 pokenav_unk_1.s sub_081C8F50_jp +081c8f5c pokenav_unk_1.s sub_081C8F5C_jp +081c8f68 pokenav_unk_1.s sub_081C8F68_jp +081c8f6c pokenav_unk_1.s sub_081C8F6C_jp +081c8fa4 pokenav_unk_1.s sub_081C8FA4_jp +081c8fc0 pokenav_unk_1.s sub_081C8FC0_jp +081c9040 pokenav_unk_1.s sub_081C9040_jp +081c9050 pokenav_unk_1.s sub_081C9050_jp +081c9060 pokenav_unk_1.s sub_081C9060_jp +081c9070 pokenav_unk_1.s sub_081C9070_jp +pokenav_unk_2.s +081c9080 pokenav_unk_2.s sub_081C9080_jp +081c90d0 pokenav_unk_2.s sub_081C90D0_jp +081c90ec pokenav_unk_2.s sub_081C90EC_jp +081c9104 pokenav_unk_2.s sub_081C9104_jp +081c913c pokenav_unk_2.s sub_081C913C_jp +081c916c pokenav_unk_2.s sub_081C916C_jp +081c917c pokenav_unk_2.s sub_081C917C_jp +081c9180 pokenav_unk_2.s sub_081C9180_jp +081c91a8 pokenav_unk_2.s sub_081C91A8_jp +081c91bc pokenav_unk_2.s sub_081C91BC_jp +081c9418 pokenav_unk_2.s sub_081C9418_jp +081c9454 pokenav_unk_2.s sub_081C9454_jp +081c94f0 pokenav_unk_2.s sub_081C94F0_jp +081c9584 pokenav_unk_2.s sub_081C9584_jp +081c9604 pokenav_unk_2.s sub_081C9604_jp +081c9674 pokenav_unk_2.s sub_081C9674_jp +081c96a4 pokenav_unk_2.s sub_081C96A4_jp +081c96d4 pokenav_unk_2.s sub_081C96D4_jp +081c9770 pokenav_unk_2.s sub_081C9770_jp +081c9798 pokenav_unk_2.s sub_081C9798_jp +081c97d8 pokenav_unk_2.s sub_081C97D8_jp +081c9840 pokenav_unk_2.s sub_081C9840_jp +081c9874 pokenav_unk_2.s sub_081C9874_jp +081c9898 pokenav_unk_2.s sub_081C9898_jp +081c99b8 pokenav_unk_2.s sub_081C99B8_jp +081c9a24 pokenav_unk_2.s sub_081C9A24_jp +081c9a88 pokenav_unk_2.s sub_081C9A88_jp +081c9ad0 pokenav_unk_2.s sub_081C9AD0_jp +081c9b08 pokenav_unk_2.s sub_081C9B08_jp +081c9b60 pokenav_unk_2.s sub_081C9B60_jp +081c9bf4 pokenav_unk_2.s sub_081C9BF4_jp +081c9c20 pokenav_unk_2.s sub_081C9C20_jp +081c9c58 pokenav_unk_2.s sub_081C9C58_jp +081c9d2c pokenav_unk_2.s sub_081C9D2C_jp +081c9dec pokenav_unk_2.s sub_081C9DEC_jp +081c9e44 pokenav_unk_2.s sub_081C9E44_jp +081c9e58 pokenav_unk_2.s sub_081C9E58_jp +081c9e8c pokenav_unk_2.s sub_081C9E8C_jp +081c9ec0 pokenav_unk_2.s sub_081C9EC0_jp +081c9f1c pokenav_unk_2.s sub_081C9F1C_jp +081c9f70 pokenav_unk_2.s sub_081C9F70_jp +081c9f80 pokenav_unk_2.s sub_081C9F80_jp +081c9fa0 pokenav_unk_2.s sub_081C9FA0_jp +081c9fb4 pokenav_unk_2.s sub_081C9FB4_jp +081c9fc4 pokenav_unk_2.s sub_081C9FC4_jp +081c9ffc pokenav_unk_2.s sub_081C9FFC_jp +081ca010 pokenav_unk_2.s sub_081CA010_jp +081ca048 pokenav_unk_2.s sub_081CA048_jp +081ca05c pokenav_unk_2.s sub_081CA05C_jp +081ca0c0 pokenav_unk_2.s sub_081CA0C0_jp +081ca0d8 pokenav_unk_2.s sub_081CA0D8_jp +081ca140 pokenav_unk_2.s sub_081CA140_jp +081ca174 pokenav_unk_2.s sub_081CA174_jp +081ca184 pokenav_unk_2.s sub_081CA184_jp +081ca198 pokenav_unk_2.s sub_081CA198_jp +081ca1e8 pokenav_unk_2.s sub_081CA1E8_jp +081ca288 pokenav_unk_2.s sub_081CA288 +pokenav_unk_3.s +081ca294 pokenav_unk_3.s sub_081CA294_jp +081ca2d0 pokenav_unk_3.s sub_081CA2D0_jp +081ca2e4 pokenav_unk_3.s sub_081CA2E4_jp +081ca2f0 pokenav_unk_3.s sub_081CA2F0_jp +081ca3a8 pokenav_unk_3.s sub_081CA3A8_jp +081ca3b0 pokenav_unk_3.s sub_081CA3B0_jp +081ca464 pokenav_unk_3.s sub_081CA464_jp +081ca4a4 pokenav_unk_3.s sub_081CA4A4_jp +081ca4cc pokenav_unk_3.s sub_081CA4CC_jp +081ca5b4 pokenav_unk_3.s sub_081CA5B4_jp +081ca5d4 pokenav_unk_3.s sub_081CA5D4_jp +081ca5e4 pokenav_unk_3.s sub_081CA5E4_jp +081ca5f4 pokenav_unk_3.s sub_081CA5F4_jp +081ca604 pokenav_unk_3.s unref_sub_81CAE58 +081ca618 pokenav_unk_3.s unref_sub_81CAE6C +081ca640 pokenav_unk_3.s sub_081CA640_jp +081ca650 pokenav_unk_3.s sub_081CA650_jp +081ca668 pokenav_unk_3.s sub_081CA668_jp +081ca6b0 pokenav_unk_3.s sub_081CA6B0_jp +081ca71c pokenav_unk_3.s sub_081CA71C_jp +081ca77c pokenav_unk_3.s sub_081CA77C_jp +081ca7c0 pokenav_unk_3.s sub_081CA7C0_jp +081ca7d0 pokenav_unk_3.s sub_081CA7D0_jp +081ca7f4 pokenav_unk_3.s sub_081CA7F4_jp +081ca86c pokenav_unk_3.s sub_081CA86C_jp +081ca888 pokenav_unk_3.s sub_081CA888_jp +081ca8cc pokenav_unk_3.s sub_081CA8CC +081ca910 pokenav_unk_3.s unref_sub_81CB16C +081ca974 pokenav_unk_3.s sub_081CA974_jp +pokenav_unk_4.s +081caa04 pokenav_unk_4.s sub_081CAA04_jp +081caa40 pokenav_unk_4.s sub_081CAA40_jp +081caa70 pokenav_unk_4.s sub_081CAA70_jp +081caa80 pokenav_unk_4.s sub_081CAA80_jp +081caa84 pokenav_unk_4.s sub_081CAA84_jp +081caab4 pokenav_unk_4.s sub_081CAAB4_jp +081caac8 pokenav_unk_4.s sub_081CAAC8_jp +081cacb4 pokenav_unk_4.s sub_081CACB4_jp +081cad20 pokenav_unk_4.s sub_081CAD20_jp +081cad8c pokenav_unk_4.s sub_081CAD8C_jp +081cadf8 pokenav_unk_4.s sub_081CADF8_jp +081cae64 pokenav_unk_4.s sub_081CAE64_jp +081caea8 pokenav_unk_4.s sub_081CAEA8_jp +081caed0 pokenav_unk_4.s sub_081CAED0_jp +081caf14 pokenav_unk_4.s sub_081CAF14_jp +081caf98 pokenav_unk_4.s sub_081CAF98_jp +081caffc pokenav_unk_4.s sub_081CAFFC_jp +081cb0b0 pokenav_unk_4.s sub_081CB0B0_jp +081cb13c pokenav_unk_4.s sub_081CB13C_jp +081cb1dc pokenav_unk_4.s sub_081CB1DC_jp +081cb248 pokenav_unk_4.s sub_081CB248_jp +081cb2e8 pokenav_unk_4.s sub_081CB2E8_jp +081cb32c pokenav_unk_4.s sub_081CB32C_jp +081cb38c pokenav_unk_4.s sub_081CB38C_jp +081cb3a8 pokenav_unk_4.s sub_081CB3A8_jp +081cb3d4 pokenav_unk_4.s sub_081CB3D4_jp +081cb45c pokenav_unk_4.s sub_081CB45C_jp +081cb4b8 pokenav_unk_4.s sub_081CB4B8_jp +081cb4e8 pokenav_unk_4.s sub_081CB4E8_jp +081cb530 pokenav_unk_4.s sub_081CB530_jp +081cb564 pokenav_unk_4.s sub_081CB564_jp +081cb57c pokenav_unk_4.s sub_081CB57C_jp +081cb5a8 pokenav_unk_4.s sub_081CB5A8_jp +081cb5c0 pokenav_unk_4.s sub_081CB5C0_jp +081cb5f8 pokenav_unk_4.s sub_081CB5F8_jp +081cb640 pokenav_unk_4.s sub_081CB640_jp +081cb6ac pokenav_unk_4.s sub_081CB6AC_jp +081cb710 pokenav_unk_4.s sub_081CB710_jp +081cb73c pokenav_unk_4.s sub_081CB73C_jp +081cb750 pokenav_unk_4.s sub_081CB750_jp +081cb760 pokenav_unk_4.s sub_081CB760_jp +081cb780 pokenav_unk_4.s sub_081CB780_jp +081cb7a4 pokenav_unk_4.s sub_081CB7A4_jp +081cb7e8 pokenav_unk_4.s sub_081CB7E8_jp +081cb81c pokenav_unk_4.s sub_081CB81C_jp +081cb82c pokenav_unk_4.s sub_081CB82C_jp +081cb854 pokenav_unk_4.s sub_081CB854_jp +081cb86c pokenav_unk_4.s sub_081CB86C_jp +081cb894 pokenav_unk_4.s sub_081CB894_jp +081cb8ac pokenav_unk_4.s sub_081CB8AC_jp +081cb8e8 pokenav_unk_4.s sub_081CB8E8_jp +081cb930 pokenav_unk_4.s sub_081CB930_jp +081cb958 pokenav_unk_4.s sub_081CB958_jp +081cb968 pokenav_unk_4.s sub_081CB968_jp +081cba08 pokenav_unk_4.s sub_081CBA08_jp +081cba44 pokenav_unk_4.s sub_081CBA44_jp +081cba84 pokenav_unk_4.s sub_081CBA84_jp +081cba98 pokenav_unk_4.s sub_081CBA98_jp +081cbaa0 pokenav_unk_4.s sub_081CBAA0_jp +081cbac4 pokenav_unk_4.s sub_081CBAC4_jp +081cbaf0 pokenav_unk_4.s sub_081CBAF0_jp +081cbb74 pokenav_unk_4.s sub_081CBB74_jp +081cbb80 pokenav_unk_4.s sub_081CBB80_jp +081cbb94 pokenav_unk_4.s sub_081CBB94_jp +081cbbf8 pokenav_unk_4.s sub_081CBBF8_jp +081cbc28 pokenav_unk_4.s sub_081CBC28 +081cbc78 pokenav_unk_4.s sub_081CBC78 +081cbca8 pokenav_unk_4.s sub_081CBCA8 +081cbcbc pokenav_unk_4.s sub_081CBCBC +081cbd08 pokenav_unk_4.s sub_081CBD08 +081cbd30 pokenav_unk_4.s sub_081CBD30 +081cbd38 pokenav_unk_4.s sub_081CBD38 +081cbd48 pokenav_unk_4.s sub_081CBD48 +081cbd80 pokenav_unk_4.s sub_081CBD80 +081cbdb0 pokenav_unk_4.s sub_081CBDB0 +081cbdc0 pokenav_unk_4.s sub_081CBDC0 +081cbdc4 pokenav_unk_4.s sub_081CBDC4 +081cbdf8 pokenav_unk_4.s sub_081CBDF8 +081cbe10 pokenav_unk_4.s sub_081CBE10 +081cbe24 pokenav_unk_4.s sub_081CBE24 +081cbe48 pokenav_unk_4.s sub_081CBE48 +081cbf9c pokenav_unk_4.s sub_081CBF9C +081cbfcc pokenav_unk_4.s sub_081CBFCC +081cc02c pokenav_unk_4.s sub_081CC02C +081cc0b0 pokenav_unk_4.s sub_081CC0B0 +081cc114 pokenav_unk_4.s sub_081CC114 +081cc140 pokenav_unk_4.s sub_081CC140 +081cc170 pokenav_unk_4.s sub_081CC170 +081cc250 pokenav_unk_4.s sub_081CC250 +081cc260 pokenav_unk_4.s sub_081CC260 +081cc38c pokenav_unk_4.s sub_081CC38C +081cc39c pokenav_unk_4.s sub_081CC39C +081cc3c8 pokenav_unk_4.s sub_081CC3C8 +081cc3dc pokenav_unk_4.s sub_081CC3DC +081cc450 pokenav_unk_4.s sub_081CC450 +081cc464 pokenav_unk_4.s sub_081CC464 +081cc474 pokenav_unk_4.s sub_081CC474 +081cc4b0 pokenav_unk_4.s sub_081CC4B0 +081cc528 pokenav_unk_4.s sub_081CC528 +081cc598 pokenav_unk_4.s sub_081CC598 +081cc634 pokenav_unk_4.s sub_081CC634 +081cc6b8 pokenav_unk_4.s sub_081CC6B8 +081cc6e4 pokenav_unk_4.s sub_081CC6E4 +081cc718 pokenav_unk_4.s sub_081CC718 +081cc764 pokenav_unk_4.s sub_081CC764 +081cc7b0 pokenav_unk_4.s sub_081CC7B0 +081cc7cc pokenav_unk_4.s sub_081CC7CC +081cc850 pokenav_unk_4.s sub_081CC850 +081cc8dc pokenav_unk_4.s sub_081CC8DC +081cc900 pokenav_unk_4.s sub_081CC900 +081cc924 pokenav_unk_4.s sub_081CC924 +081cc998 pokenav_unk_4.s sub_081CC998 +081ccb04 pokenav_unk_4.s sub_081CCB04 +081ccc88 pokenav_unk_4.s sub_081CCC88 +081ccd0c pokenav_unk_4.s sub_081CCD0C +081ccd64 pokenav_unk_4.s sub_081CCD64 +081ccf84 pokenav_unk_4.s sub_081CCF84 +081cd0d0 pokenav_unk_4.s sub_081CD0D0 +081cd158 pokenav_unk_4.s sub_081CD158 +081cd17c pokenav_unk_4.s sub_081CD17C +081cd2f8 pokenav_unk_4.s sub_081CD2F8 +081cd3b0 pokenav_unk_4.s sub_081CD3B0 +081cd3c0 pokenav_unk_4.s sub_081CD3C0 +081cd3d0 pokenav_unk_4.s sub_081CD3D0 +081cd3e4 pokenav_unk_4.s sub_081CD3E4 +081cd3fc pokenav_unk_4.s sub_081CD3FC +081cd414 pokenav_unk_4.s sub_081CD414 +081cd434 pokenav_unk_4.s sub_081CD434 +081cd44c pokenav_unk_4.s sub_081CD44C +081cd464 pokenav_unk_4.s sub_081CD464 +081cd484 pokenav_unk_4.s sub_081CD484 +081cd4a8 pokenav_unk_4.s sub_081CD4A8 +081cd4bc pokenav_unk_4.s sub_081CD4BC +081cd4dc pokenav_unk_4.s sub_081CD4DC +081cd510 pokenav_unk_4.s sub_081CD510 +081cd534 pokenav_unk_4.s sub_081CD534 +081cd58c pokenav_unk_4.s sub_081CD58C +081cd5c4 pokenav_unk_4.s sub_081CD5C4 +081cd5d8 pokenav_unk_4.s sub_081CD5D8 +081cd5e0 pokenav_unk_4.s sub_081CD5E0 +081cd5f4 pokenav_unk_4.s sub_081CD5F4 +081cda30 pokenav_unk_4.s sub_081CDA30 +081cdadc pokenav_unk_4.s sub_081CDADC +081cdc38 pokenav_unk_4.s sub_081CDC38 +081cdd44 pokenav_unk_4.s sub_081CDD44 +081cde1c pokenav_unk_4.s sub_081CDE1C +081cde60 pokenav_unk_4.s sub_081CDE60 +081cde98 pokenav_unk_4.s sub_081CDE98 +081cdeb4 pokenav_unk_4.s sub_081CDEB4 +081ce068 pokenav_unk_4.s sub_081CE068 +081ce098 pokenav_unk_4.s sub_081CE098 +081ce0c4 pokenav_unk_4.s sub_081CE0C4 +081ce0fc pokenav_unk_4.s sub_081CE0FC +081ce118 pokenav_unk_4.s sub_081CE118 +081ce328 pokenav_unk_4.s sub_081CE328 +081ce3d4 pokenav_unk_4.s sub_081CE3D4 +081ce444 pokenav_unk_4.s sub_081CE444 +081ce464 pokenav_unk_4.s sub_081CE464 +081ce578 pokenav_unk_4.s sub_081CE578 +081ce59c pokenav_unk_4.s sub_081CE59C +081ce5a8 pokenav_unk_4.s sub_081CE5A8 +081ce5c4 pokenav_unk_4.s sub_081CE5C4 +081ce5fc pokenav_unk_4.s sub_081CE5FC +081ce648 pokenav_unk_4.s sub_081CE648 +081ce670 pokenav_unk_4.s sub_081CE670 +081ce6cc pokenav_unk_4.s sub_081CE6CC +081ce710 pokenav_unk_4.s sub_081CE710 +081ce724 pokenav_unk_4.s sub_081CE724 +081ce744 pokenav_unk_4.s sub_081CE744 +081ce764 pokenav_unk_4.s sub_081CE764 +081ce7e4 pokenav_unk_4.s sub_081CE7E4 +081ce7ec pokenav_unk_4.s sub_081CE7EC +081ce7f4 pokenav_unk_4.s sub_081CE7F4 +081ce804 pokenav_unk_4.s sub_081CE804 +081ce814 pokenav_unk_4.s sub_081CE814 +081ce824 pokenav_unk_4.s sub_081CE824 +081ce840 pokenav_unk_4.s sub_081CE840 +081ce850 pokenav_unk_4.s sub_081CE850 +081ce868 pokenav_unk_4.s sub_081CE868 +081ce8f8 pokenav_unk_4.s sub_081CE8F8 +081ce90c pokenav_unk_4.s sub_081CE90C +081ce9ac pokenav_unk_4.s sub_081CE9AC +081ce9f8 pokenav_unk_4.s sub_081CE9F8 +081cea64 pokenav_unk_4.s sub_081CEA64 +081cea9c pokenav_unk_4.s sub_081CEA9C +081cead4 pokenav_unk_4.s sub_081CEAD4 +081ceb04 pokenav_unk_4.s sub_081CEB04 +081ceb14 pokenav_unk_4.s sub_081CEB14 +081ceb18 pokenav_unk_4.s sub_081CEB18 +081ceb2c pokenav_unk_4.s sub_081CEB2C +081ceb4c pokenav_unk_4.s sub_081CEB4C +081cecac pokenav_unk_4.s sub_081CECAC +081ced14 pokenav_unk_4.s sub_081CED14 +081ced7c pokenav_unk_4.s sub_081CED7C +081cede4 pokenav_unk_4.s sub_081CEDE4 +081cee4c pokenav_unk_4.s sub_081CEE4C +081cee8c pokenav_unk_4.s sub_081CEE8C +081ceebc pokenav_unk_4.s sub_081CEEBC +081ceee8 pokenav_unk_4.s sub_081CEEE8 +081cef4c pokenav_unk_4.s sub_081CEF4C +081cefa0 pokenav_unk_4.s sub_081CEFA0 +081cf090 pokenav_unk_4.s sub_081CF090 +081cf0d8 pokenav_unk_4.s sub_081CF0D8 +081cf108 pokenav_unk_4.s sub_081CF108 +081cf11c pokenav_unk_4.s sub_081CF11C +081cf13c pokenav_unk_4.s sub_081CF13C +081cf15c pokenav_unk_4.s sub_081CF15C +081cf1dc pokenav_unk_4.s sub_081CF1DC +081cf1e4 pokenav_unk_4.s sub_081CF1E4 +081cf1ec pokenav_unk_4.s sub_081CF1EC +081cf1fc pokenav_unk_4.s sub_081CF1FC +081cf20c pokenav_unk_4.s sub_081CF20C +081cf21c pokenav_unk_4.s sub_081CF21C +081cf238 pokenav_unk_4.s sub_081CF238 +081cf248 pokenav_unk_4.s sub_081CF248 +081cf260 pokenav_unk_4.s sub_081CF260 +081cf300 pokenav_unk_4.s sub_081CF300 +081cf314 pokenav_unk_4.s sub_081CF314 +081cf3c0 pokenav_unk_4.s sub_081CF3C0 +081cf42c pokenav_unk_4.s sub_081CF42C +081cf4a4 pokenav_unk_4.s sub_081CF4A4 +081cf4dc pokenav_unk_4.s sub_081CF4DC +081cf514 pokenav_unk_4.s sub_081CF514 +081cf544 pokenav_unk_4.s sub_081CF544 +081cf554 pokenav_unk_4.s sub_081CF554 +081cf558 pokenav_unk_4.s sub_081CF558 +081cf56c pokenav_unk_4.s sub_081CF56C +081cf58c pokenav_unk_4.s sub_081CF58C +081cf6d0 pokenav_unk_4.s sub_081CF6D0 +081cf738 pokenav_unk_4.s sub_081CF738 +081cf7a0 pokenav_unk_4.s sub_081CF7A0 +081cf808 pokenav_unk_4.s sub_081CF808 +081cf870 pokenav_unk_4.s sub_081CF870 +081cf8b0 pokenav_unk_4.s sub_081CF8B0 +081cf8e0 pokenav_unk_4.s sub_081CF8E0 +081cf95c pokenav_unk_4.s sub_081CF95C +081cf9a4 pokenav_unk_4.s sub_081CF9A4 +081cf9f8 pokenav_unk_4.s sub_081CF9F8 +pokenav_unk_10.s +081cfb00 pokenav_unk_10.s sub_081CFB00_jp +081cfb50 pokenav_unk_10.s sub_081CFB50_jp +081cfb68 pokenav_unk_10.s sub_081CFB68_jp +081cfb74 pokenav_unk_10.s sub_081CFB74_jp +081cfbf8 pokenav_unk_10.s sub_081CFBF8_jp +081cfc84 pokenav_unk_10.s sub_081CFC84_jp +081cfc8c pokenav_unk_10.s sub_081CFC8C_jp +081cfccc pokenav_unk_10.s sub_081CFCCC_jp +081cfd14 pokenav_unk_10.s sub_081CFD14_jp +081cfd38 pokenav_unk_10.s sub_081CFD38_jp +081cfd74 pokenav_unk_10.s sub_081CFD74_jp +081cfd84 pokenav_unk_10.s sub_081CFD84_jp +081cfd94 pokenav_unk_10.s GetCurrMonInfo1 +081cfe10 pokenav_unk_10.s GetCurrMonInfo2 +081cfe88 pokenav_unk_10.s GetCurrMonRibbonCount +081cfec4 pokenav_unk_10.s sub_081CFEC4 +081cffc4 pokenav_unk_10.s sub_081CFFC4_jp +081cffdc pokenav_unk_10.s sub_081CFFDC_jp +081cfff4 pokenav_unk_10.s sub_081CFFF4_jp +081d0004 pokenav_unk_10.s sub_081D0004_jp +081d0028 pokenav_unk_10.s sub_081D0028_jp +081d0060 pokenav_unk_10.s sub_081D0060_jp +081d0090 pokenav_unk_10.s sub_081D0090_jp +081d00a0 pokenav_unk_10.s sub_081D00A0_jp +081d00a4 pokenav_unk_10.s sub_081D00A4_jp +081d0108 pokenav_unk_10.s sub_081D0108_jp +081d011c pokenav_unk_10.s sub_081D011C_jp +081d0304 pokenav_unk_10.s sub_081D0304_jp +081d0334 pokenav_unk_10.s sub_081D0334_jp +081d03dc pokenav_unk_10.s sub_081D03DC_jp +081d043c pokenav_unk_10.s sub_081D043C_jp +081d04b0 pokenav_unk_10.s sub_081D04B0_jp +081d0510 pokenav_unk_10.s sub_081D0510_jp +081d0534 pokenav_unk_10.s sub_081D0534_jp +081d05ac pokenav_unk_10.s sub_081D05AC_jp +081d067c pokenav_unk_10.s sub_081D067C_jp +081d06a0 pokenav_unk_10.s sub_081D06A0_jp +081d076c pokenav_unk_10.s sub_081D076C_jp +081d07b8 pokenav_unk_10.s sub_081D07B8_jp +081d081c pokenav_unk_10.s sub_081D081C_jp +081d0864 pokenav_unk_10.s sub_081D0864_jp +081d0894 pokenav_unk_10.s sub_081D0894_jp +081d08a0 pokenav_unk_10.s sub_081D08A0_jp +081d08f4 pokenav_unk_10.s sub_081D08F4_jp +081d0918 pokenav_unk_10.s sub_081D0918_jp +081d0950 pokenav_unk_10.s sub_081D0950_jp +081d0974 pokenav_unk_10.s sub_081D0974_jp +081d09a0 pokenav_unk_10.s sub_081D09A0_jp +081d09f4 pokenav_unk_10.s sub_081D09F4_jp +081d0a6c pokenav_unk_10.s sub_081D0A6C_jp +081d0a8c pokenav_unk_10.s sub_081D0A8C_jp +081d0ad8 pokenav_unk_10.s sub_081D0AD8_jp +081d0b18 pokenav_unk_10.s sub_081D0B18_jp +081d0b64 pokenav_unk_10.s sub_081D0B64_jp +081d0c1c pokenav_unk_10.s sub_081D0C1C_jp +081d0c40 pokenav_unk_10.s sub_081D0C40_jp +081d0c54 pokenav_unk_10.s sub_081D0C54 +pokenav_match_call_data.s +081d0c90 pokenav_match_call_data.s MatchCallGetFunctionIndex +081d0cd8 pokenav_match_call_data.s GetTrainerIdxByRematchIdx +081d0ce8 pokenav_match_call_data.s GetRematchIdxByTrainerIdx +081d0d10 pokenav_match_call_data.s MatchCallFlagGetByIndex +081d0d44 pokenav_match_call_data.s MatchCallGetFlag_Type0 +081d0d68 pokenav_match_call_data.s MatchCallGetFlag_Type1 +081d0d8c pokenav_match_call_data.s MatchCallGetFlag_Type2 +081d0db0 pokenav_match_call_data.s MatchCallGetFlag_Type4 +081d0de8 pokenav_match_call_data.s MatchCallGetFlag_Type3 +081d0df8 pokenav_match_call_data.s MatchCallMapSecGetByIndex +081d0e30 pokenav_match_call_data.s MatchCallGetMapSec_Type0 +081d0e34 pokenav_match_call_data.s MatchCallGetMapSec_Type1 +081d0e38 pokenav_match_call_data.s MatchCallGetMapSec_Type2 +081d0e6c pokenav_match_call_data.s MatchCallGetMapSec_Type4 +081d0e70 pokenav_match_call_data.s MatchCallGetMapSec_Type3 +081d0e74 pokenav_match_call_data.s MatchCall_IsRematchable +081d0ea8 pokenav_match_call_data.s MatchCall_IsRematchable_Type3 +081d0eac pokenav_match_call_data.s MatchCall_IsRematchable_Type1 +081d0edc pokenav_match_call_data.s MatchCall_IsRematchable_Type2 +081d0efc pokenav_match_call_data.s MatchCall_IsRematchable_Type4 +081d0f00 pokenav_match_call_data.s sub_081D0F00_jp +081d0f04 pokenav_match_call_data.s sub_081D0F04_jp +081d0f5c pokenav_match_call_data.s sub_081D0F5C_jp +081d0f60 pokenav_match_call_data.s sub_081D0F60_jp +081d0f64 pokenav_match_call_data.s sub_081D0F64_jp +081d0f68 pokenav_match_call_data.s sub_081D0F68_jp +081d0f6c pokenav_match_call_data.s MatchCall_IsRematchable_Type0 +081d0f70 pokenav_match_call_data.s MatchCall_GetRematchTableIdx +081d0fa4 pokenav_match_call_data.s MatchCall_GetRematchTableIdx_Type3 +081d0fa8 pokenav_match_call_data.s MatchCall_GetRematchTableIdx_Type1 +081d0fac pokenav_match_call_data.s MatchCall_GetRematchTableIdx_Type2 +081d0fb0 pokenav_match_call_data.s MatchCall_GetRematchTableIdx_Type4 +081d0fb4 pokenav_match_call_data.s MatchCall_GetRematchTableIdx_Type0 +081d0fb8 pokenav_match_call_data.s MatchCall_GetMessage +081d0fec pokenav_match_call_data.s MatchCall_GetMessage_Type0 +081d0ff8 pokenav_match_call_data.s MatchCall_GetMessage_Type1 +081d1018 pokenav_match_call_data.s MatchCall_GetMessage_Type2 +081d1024 pokenav_match_call_data.s MatchCall_GetMessage_Type4 +081d1030 pokenav_match_call_data.s MatchCall_GetMessage_Type3 +081d103c pokenav_match_call_data.s sub_081D103C_jp +081d109c pokenav_match_call_data.s sub_081D109C_jp +081d1178 pokenav_match_call_data.s sub_081D1178_jp +081d11b0 pokenav_match_call_data.s MatchCall_GetNameAndDesc_Type3 +081d11bc pokenav_match_call_data.s MatchCall_GetNameAndDesc_Type1 +081d11dc pokenav_match_call_data.s MatchCall_GetNameAndDesc_Type2 +081d11f4 pokenav_match_call_data.s MatchCall_GetNameAndDesc_Type4 +081d1200 pokenav_match_call_data.s MatchCall_GetNameAndDesc_Type0 +081d120c pokenav_match_call_data.s MatchCall_GetNameAndDescByRematchIdx +081d123c pokenav_match_call_data.s sub_081D123C +081d12cc pokenav_match_call_data.s sub_081D12CC_jp +081d12f4 pokenav_match_call_data.s sub_081D12F4_jp +081d131c pokenav_match_call_data.s SetMatchCallRegisteredFlag +menu_specialized.s +081d1340 menu_specialized.s sub_081D1340_jp +081d1380 menu_specialized.s sub_081D1380_jp +081d13b4 menu_specialized.s MoveRelearnerCursorCallback +081d13e4 menu_specialized.s sub_081D13E4_jp +081d13f4 menu_specialized.s sub_081D13F4_jp +081d14c4 menu_specialized.s sub_081D14C4_jp +081d14d8 menu_specialized.s sub_081D14D8_jp +081d1508 menu_specialized.s sub_081D1508_jp +081d151c menu_specialized.s sub_081D151C_jp +081d15cc menu_specialized.s sub_081D15CC_jp +081d16bc menu_specialized.s sub_081D16BC_jp +081d16f4 menu_specialized.s sub_081D16F4_jp +081d1704 menu_specialized.s sub_081D1704_jp +081d1750 menu_specialized.s sub_081D1750_jp +081d1824 menu_specialized.s sub_081D1824_jp +081d1878 menu_specialized.s sub_081D1878_jp +081d18c0 menu_specialized.s sub_081D18C0_jp +081d1aec menu_specialized.s sub_081D1AEC_jp +081d1c48 menu_specialized.s sub_081D1C48_jp +081d1d70 menu_specialized.s sub_081D1D70_jp +081d1e40 menu_specialized.s InitMoveRelearnerWindows +081d1ee0 menu_specialized.s sub_081D1EE0_jp +081d1fd8 menu_specialized.s LoadMoveRelearnerMovesList +081d200c menu_specialized.s MoveRelearnerMenuLoadContestMoveDescription +081d2208 menu_specialized.s MoveRelearnerPrintText +081d2250 menu_specialized.s MoveRelearnerRunTextPrinters +081d2264 menu_specialized.s MoveRelearnerCreateYesNoMenu +081d227c menu_specialized.s GetBoxOrPartyMonData +081d22e4 menu_specialized.s sub_081D22E4_jp +081d24ac menu_specialized.s sub_081D24AC_jp +081d2504 menu_specialized.s sub_081D2504_jp +081d25a8 menu_specialized.s sub_081D25A8_jp +081d26c4 menu_specialized.s sub_081D26C4_jp +081d275c menu_specialized.s sub_081D275C_jp +081d2780 menu_specialized.s sub_081D2780_jp +081d27a8 menu_specialized.s sub_081D27A8_jp +081d27d4 menu_specialized.s sub_081D27D4_jp +081d2800 menu_specialized.s sub_081D2800_jp +081d284c menu_specialized.s sub_081D284C_jp +081d28e0 menu_specialized.s sub_081D28E0_jp +081d2904 menu_specialized.s sub_081D2904_jp +081d2924 menu_specialized.s sub_081D2924_jp +081d2944 menu_specialized.s sub_081D2944_jp +081d29bc menu_specialized.s sub_081D29BC_jp +081d2a38 menu_specialized.s sub_081D2A38_jp +081d2a94 menu_specialized.s sub_081D2A94_jp +081d2ab0 menu_specialized.s sub_081D2AB0_jp +081d2b50 menu_specialized.s sub_081D2B50_jp +081d2b7c menu_specialized.s nullsub_79 +081d2b94 menu_specialized.s sub_081D2B94_jp +081d2c18 menu_specialized.s sub_081D2C18 +081d2c70 menu_specialized.s DrawLevelUpWindowPg1 +081d2db4 menu_specialized.s DrawLevelUpWindowPg2 +081d2eb8 menu_specialized.s GetMonLevelUpWindowStats +ereader_helpers.s +081d2f00 ereader_helpers.s sub_081D2F00 +081d2f28 ereader_helpers.s Struct_Unk81D38FC_ValidateChecksum +081d2f4c ereader_helpers.s EReader_IsReceivedDataValid +081d2f9c ereader_helpers.s TrainerHill_VerifyChecksum +081d2fc8 ereader_helpers.s TryWriteTrainerHill_r +081d3130 ereader_helpers.s TryWriteTrainerHill +081d3158 ereader_helpers.s TryReadTrainerHill_r +081d318c ereader_helpers.s TryReadTrainerHill +081d31b4 ereader_helpers.s ReadTrainerHillAndValidate +081d31d4 ereader_helpers.s unref_sub_81D3B54 +081d3268 ereader_helpers.s unref_sub_81D3BE8 +081d32fc ereader_helpers.s sub_081D32FC +081d333c ereader_helpers.s sub_081D333C_jp +081d33b4 ereader_helpers.s sub_081D33B4_jp +081d33f0 ereader_helpers.s sub_081D33F0_jp +081d3568 ereader_helpers.s sub_081D3568_jp +081d359c ereader_helpers.s sub_081D359C_jp +081d35e8 ereader_helpers.s sub_081D35E8_jp +081d361c ereader_helpers.s sub_081D361C_jp +081d362c ereader_helpers.s sub_081D362C_jp +081d37bc ereader_helpers.s sub_081D37BC_jp +081d37cc ereader_helpers.s sub_081D37CC_jp +081d37f0 ereader_helpers.s sub_081D37F0_jp +081d3820 ereader_helpers.s sub_081D3820_jp +081d3874 ereader_helpers.s sub_081D3874_jp +081d38b8 ereader_helpers.s sub_081D38B8_jp +faraway_island.s +081d38d8 faraway_island.s GetMewEventObjectId +081d38fc faraway_island.s GetMewMoveDirection +081d3eb4 faraway_island.s CanMewWalkToCoords +081d3f10 faraway_island.s sub_081D3F10 +081d4018 faraway_island.s UpdateFarawayIslandStepCounter +081d4068 faraway_island.s EventObjectIsFarawayIslandMew +081d4094 faraway_island.s IsMewPlayingHideAndSeek +081d40d8 faraway_island.s sub_081D40D8_jp +081d4110 faraway_island.s sub_081D4110_jp +081d426c faraway_island.s sub_081D426C_jp +081d4294 faraway_island.s sub_081D4294_jp +081d42d8 faraway_island.s sub_081D42D8_jp +081d431c faraway_island.s sub_081D431C_jp +081d4360 faraway_island.s sub_081D4360_jp +081d43a4 faraway_island.s sub_081D43A4_jp +ereader_screen.s +081d43d0 ereader_screen.s sub_081D43D0_jp +081d4438 ereader_screen.s sub_081D4438_jp +081d4468 ereader_screen.s sub_081D4468_jp +081d44b0 ereader_screen.s sub_081D44B0_jp +081d44e0 ereader_screen.s sub_081D44E0_jp +081d4540 ereader_screen.s sub_081D4540_jp +081d4564 ereader_screen.s sub_081D4564_jp +081d4694 ereader_screen.s task_add_00_ereader +081d46dc ereader_screen.s sub_081D46DC_jp +081d46e4 ereader_screen.s sub_081D46E4_jp +081d4704 ereader_screen.s sub_081D4704_jp +trainer_hill.s +081d4b14 trainer_hill.s CallTrainerHillFunction +081d4b3c trainer_hill.s ResetTrainerHillResults +081d4b80 trainer_hill.s GetFloorId +081d4b90 trainer_hill.s GetTrainerHillOpponentClass +081d4bb4 trainer_hill.s GetTrainerHillTrainerName +081d4be4 trainer_hill.s GetTrainerHillTrainerFrontSpriteId +081d4c30 trainer_hill.s InitTrainerHillBattleStruct +081d4cf0 trainer_hill.s FreeDataStruct +081d4d0c trainer_hill.s SetUpDataStruct +081d4d64 trainer_hill.s FreeTrainerHillBattleStruct +081d4d80 trainer_hill.s CopyTrainerHillTrainerText +081d4e70 trainer_hill.s TrainerHillStartChallenge +081d4f2c trainer_hill.s sub_081D4F2C +081d4f78 trainer_hill.s sub_081D4F78_jp +081d5024 trainer_hill.s sub_081D5024_jp +081d50a8 trainer_hill.s TrainerHillResumeTimer +081d50ec trainer_hill.s TrainerHillSetPlayerLost +081d5108 trainer_hill.s TrainerHillGetChallengeStatus +081d5164 trainer_hill.s sub_081D5164_jp +081d51f4 trainer_hill.s sub_081D51F4_jp +081d5238 trainer_hill.s sub_081D5238_jp +081d52f0 trainer_hill.s sub_081D52F0_jp +081d5334 trainer_hill.s sub_081D5334_jp +081d535c trainer_hill.s nullsub_129 +081d5360 trainer_hill.s sub_081D5360_jp +081d53cc trainer_hill.s PrintOnTrainerHillRecordsWindow +081d56e8 trainer_hill.s GetTimerValue +081d56ec trainer_hill.s SetTimerValue +081d56f0 trainer_hill.s sub_081D56F0_jp +081d5840 trainer_hill.s sub_081D5840_jp +081d58b0 trainer_hill.s sub_081D58B0_jp +081d590c trainer_hill.s sub_081D590C_jp +081d5a10 trainer_hill.s InTrainerHill +081d5a38 trainer_hill.s GetCurrentTrainerHillMapId +081d5a9c trainer_hill.s sub_081D5A9C +081d5abc trainer_hill.s sub_081D5ABC_jp +081d5ad0 trainer_hill.s sub_081D5AD0_jp +081d5b1c trainer_hill.s LocalIdToHillTrainerId +081d5b38 trainer_hill.s GetHillTrainerFlag +081d5b84 trainer_hill.s SetHillTrainerFlag +081d5c48 trainer_hill.s GetTrainerHillTrainerScript +081d5c50 trainer_hill.s sub_081D5C50_jp +081d5c68 trainer_hill.s sub_081D5C68_jp +081d5d20 trainer_hill.s FillHillTrainerParty +081d5d38 trainer_hill.s FillHillTrainersParties +081d5d60 trainer_hill.s sub_081D5D60 +081d5d64 trainer_hill.s GetTrainerEncounterMusicIdInTrainerHill +081d5dcc trainer_hill.s sub_081D5DCC_jp +081d5e30 trainer_hill.s sub_081D5E30_jp +081d5e4c trainer_hill.s sub_081D5E4C_jp +081d5e60 trainer_hill.s sub_081D5E60_jp +081d5e7c trainer_hill.s sub_081D5E7C_jp +081d5e9c trainer_hill.s sub_081D5E9C_jp +081d5eb8 trainer_hill.s nullsub_2 +081d5ed4 trainer_hill.s sub_081D5ED4_jp +081d5f08 trainer_hill.s sub_081D5F08_jp +081d5f40 trainer_hill.s sub_081D5F40_jp +081d5f98 trainer_hill.s sub_081D5F98_jp +rayquaza_scene.s +081d605c rayquaza_scene.s DoRayquazaScene +081d60b0 rayquaza_scene.s CB2_InitRayquazaScene +081d610c rayquaza_scene.s CB2_RayquazaScene +081d6128 rayquaza_scene.s VBlankCB_RayquazaScene +081d613c rayquaza_scene.s Task_EndAfterFadeScreen +081d617c rayquaza_scene.s Task_SetNextAnim +081d6204 rayquaza_scene.s sub_081D6204_jp +081d6240 rayquaza_scene.s sub_081D6240_jp +081d6258 rayquaza_scene.s Task_HandleDuoFightPre +081d62c0 rayquaza_scene.s sub_081D62C0 +081d635c rayquaza_scene.s sub_081D635C_jp +081d64b8 rayquaza_scene.s sub_081D64B8_jp +081d665c rayquaza_scene.s sub_081D665C +081d690c rayquaza_scene.s VBlankCB_DuoFight +081d691c rayquaza_scene.s sub_081D691C_jp +081d69a8 rayquaza_scene.s sub_081D69A8 +081d6a70 rayquaza_scene.s Task_DuoFightAnim +081d6b64 rayquaza_scene.s sub_081D6B64 +081d6ca8 rayquaza_scene.s Task_HandleDuoFight +081d6d74 rayquaza_scene.s sub_081D6D74_jp +081d6dbc rayquaza_scene.s sub_081D6DBC_jp +081d6e04 rayquaza_scene.s sub_081D6E04_jp +081d6e48 rayquaza_scene.s sub_081D6E48_jp +081d6e68 rayquaza_scene.s sub_081D6E68_jp +081d6ef0 rayquaza_scene.s DuoFightEnd +081d6f3c rayquaza_scene.s Task_DuoFightEnd +081d6fa0 rayquaza_scene.s sub_081D6FA0 +081d703c rayquaza_scene.s sub_081D703C_jp +081d719c rayquaza_scene.s sub_081D719C_jp +081d71f8 rayquaza_scene.s sub_081D71F8_jp +081d739c rayquaza_scene.s sub_081D739C_jp +081d7650 rayquaza_scene.s sub_081D7650_jp +081d774c rayquaza_scene.s sub_081D774C_jp +081d77d8 rayquaza_scene.s sub_081D77D8_jp +081d7888 rayquaza_scene.s Task_RayTakesFlightAnim +081d78fc rayquaza_scene.s Task_HandleRayTakesFlight +081d7aa0 rayquaza_scene.s Task_RayTakesFlightEnd +081d7ae0 rayquaza_scene.s sub_081D7AE0_jp +081d7b9c rayquaza_scene.s sub_081D7B9C_jp +081d7bec rayquaza_scene.s sub_081D7BEC_jp +081d7c94 rayquaza_scene.s sub_081D7C94_jp +081d7d88 rayquaza_scene.s sub_081D7D88 +081d7e28 rayquaza_scene.s Task_RayDescendsAnim +081d7eb8 rayquaza_scene.s Task_HandleRayDescends +081d7fc0 rayquaza_scene.s Task_RayDescendsEnd +081d8008 rayquaza_scene.s sub_081D8008_jp +081d8088 rayquaza_scene.s sub_081D8088_jp +081d8164 rayquaza_scene.s sub_081D8164_jp +081d820c rayquaza_scene.s sub_081D820C_jp +081d82bc rayquaza_scene.s Task_RayChargesAnim +081d831c rayquaza_scene.s Task_HandleRayCharges +081d8414 rayquaza_scene.s sub_081D8414_jp +081d8468 rayquaza_scene.s sub_081D8468_jp +081d84f0 rayquaza_scene.s sub_081D84F0_jp +081d8528 rayquaza_scene.s Task_RayChargesEnd +081d8574 rayquaza_scene.s sub_081D8574_jp +081d8600 rayquaza_scene.s sub_081D8600_jp +081d86f0 rayquaza_scene.s Task_RayChasesAwayAnim +081d87bc rayquaza_scene.s Task_HandleRayChasesAway +081d88ec rayquaza_scene.s sub_081D88EC +081d8970 rayquaza_scene.s Task_RayChasesAwayEnd +081d89e4 rayquaza_scene.s sub_081D89E4 +081d8bb0 rayquaza_scene.s sub_081D8BB0_jp +081d8c74 rayquaza_scene.s sub_081D8C74_jp +081d8d14 rayquaza_scene.s sub_081D8D14_jp +081d8d5c rayquaza_scene.s sub_081D8D5C_jp +081d8e10 rayquaza_scene.s sub_081D8E10_jp +081d8e64 rayquaza_scene.s sub_081D8E64_jp +081d8f58 rayquaza_scene.s sub_081D8F58_jp +081d911c rayquaza_scene.s sub_081D911C_jp +081d91a4 rayquaza_scene.s sub_081D91A4_jp +081d91f0 rayquaza_scene.s sub_081D91F0_jp +walda_phrase.s +081d92f8 walda_phrase.s TryBufferWaldaPhrase +081d9320 walda_phrase.s DoWaldaNamingScreen +081d9358 walda_phrase.s CB2_HandleGivenWaldaPhrase +081d93d4 walda_phrase.s GetWaldaPhraseInputCase +081d9400 walda_phrase.s TryGetWallpaperWithWaldaPhrase +081d947c walda_phrase.s TryCalculateWallpaper +081d9574 walda_phrase.s sub_081D9574 +081d95c0 walda_phrase.s sub_081D95C0_jp +081d95f0 walda_phrase.s sub_081D95F0_jp +081d960c walda_phrase.s sub_081D960C_jp +081d9624 walda_phrase.s sub_081D9624_jp +081d9640 walda_phrase.s sub_081D9640_jp +081d9690 walda_phrase.s sub_081D9690_jp +081d97c0 walda_phrase.s GetLetterTableId +contest_link_81D9DE4.s +081d97dc contest_link_81D9DE4.s sub_081D97DC_jp +081d97f8 contest_link_81D9DE4.s sub_081D97F8_jp +081d9814 contest_link_81D9DE4.s sub_081D9814_jp +081d99b8 contest_link_81D9DE4.s sub_081D99B8_jp +081d99e4 contest_link_81D9DE4.s sub_081D99E4_jp +081d9a0c contest_link_81D9DE4.s sub_081D9A0C_jp +081d9ad4 contest_link_81D9DE4.s sub_081D9AD4_jp +081d9b78 contest_link_81D9DE4.s sub_081D9B78_jp +081d9c48 contest_link_81D9DE4.s sub_081D9C48_jp +081d9d18 contest_link_81D9DE4.s sub_081D9D18_jp +gym_leader_rematch.s +081d9dcc gym_leader_rematch.s UpdateGymLeaderRematch +081d9e24 gym_leader_rematch.s UpdateGymLeaderRematchFromArray +081d9f1c gym_leader_rematch.s GetRematchIndex +unk_transition.s +081d9f50 unk_transition.s sub_081D9F50_jp +081d9f9c unk_transition.s sub_081D9F9C_jp +081da098 unk_transition.s sub_081DA098_jp +081da10c unk_transition.s sub_081DA10C_jp +081da20c unk_transition.s sub_081DA20C_jp +081da270 unk_transition.s sub_081DA270_jp +081da2c4 unk_transition.s sub_081DA2C4_jp +081da31c unk_transition.s sub_081DA31C_jp +081da39c unk_transition.s sub_081DA39C_jp +081da40c unk_transition.s sub_081DA40C_jp +081da42c unk_transition.s Phase2Task_34 +081da464 unk_transition.s sub_081DA464_jp +081da4d0 unk_transition.s sub_081DA4D0_jp +081da504 unk_transition.s Phase2Task_35 +081da53c unk_transition.s sub_081DA53C_jp +081da5a8 unk_transition.s sub_081DA5A8_jp +081da5dc unk_transition.s Phase2Task_36 +081da614 unk_transition.s sub_081DA614_jp +081da694 unk_transition.s sub_081da694 +081da6c8 unk_transition.s Phase2Task_37 +081da700 unk_transition.s sub_081da700 +081da784 unk_transition.s sub_081da784 +081da7b8 unk_transition.s Phase2Task_38 +081da7f0 unk_transition.s sub_081da7f0 +081da87c unk_transition.s sub_081da87c +081da8b0 unk_transition.s Phase2Task_39 +081da8e8 unk_transition.s sub_081da8e8 +081da974 unk_transition.s sub_081da974 +081da9a8 unk_transition.s Phase2Task_40 +081da9e0 unk_transition.s sub_081da9e0 +081daa74 unk_transition.s sub_081daa74 +081daaa8 unk_transition.s Phase2Task_41 +081daae0 unk_transition.s sub_081daae0 +081dab78 unk_transition.s sub_081dab78 +libgcnmultiboot.s +0828d2f8 libgcnmultiboot.s GameCubeMultiBoot_Hash +0828d30c libgcnmultiboot.s sGameCubeMultiBoot_Main +0828d40c libgcnmultiboot.s GameCubeMultiBoot_ExecuteProgram +0828d420 libgcnmultiboot.s GameCubeMultiBoot_Init +0828d46a libgcnmultiboot.s GameCubeMultiBoot_HandleSerialInterrupt +0828d4ac libgcnmultiboot.s GcMbIntrHandler_CheckGameCodeSent +0828d4b8 libgcnmultiboot.s GcMbIntrHandler_CheckHandshakeResponse +0828d4cc libgcnmultiboot.s GcMbIntrHandler_ReceiveKeyA +0828d50c libgcnmultiboot.s GcMbIntrHandler_CheckKeyBSent +0828d518 libgcnmultiboot.s GcMbIntrHandler_CheckImageSizeResponse +0828d53c libgcnmultiboot.s GcMbIntrHandler_CheckImageResponse +0828d568 libgcnmultiboot.s GcMbIntrHandler_CheckCounter2Sent +0828d578 libgcnmultiboot.s GcMbIntrHandler_CheckKeyCDerivationSent +0828d584 libgcnmultiboot.s GcMbIntrHandler_CheckBootKeyResponse +0828d598 libgcnmultiboot.s GcMbIntrHandler_StopUnconditionally +0828d59a libgcnmultiboot.s GameCubeMultiBoot_Quit +m4a.s +0828d5d4 m4a.s umul3232H32 +0828d5d8 m4a.s __umul3232H32 +0828d5e4 m4a.s SoundMain +0828d668 m4a.s SoundMainRAM +0828D674 m4a.s SoundMainRAM_Reverb +0828d804 m4a.s sub_0828d804 +0828da24 m4a.s sub_0828da24 +0828dce0 m4a.s sub_0828dce0 +0828dd6c m4a.s SoundMainBTM +0828dd84 m4a.s RealClearChain +0828dda4 m4a.s ply_fine +0828ddd4 m4a.s MPlayJumpTableCopy +0828de08 m4a.s ld_r3_tp_adr_i +0828de14 m4a.s ply_goto +0828de34 m4a.s ply_patt +0828de50 m4a.s ply_pend +0828de64 m4a.s ply_rept +0828de94 m4a.s ply_prio +0828dea0 m4a.s ply_tempo +0828deb4 m4a.s ply_keysh +0828dec8 m4a.s ply_voice +0828def8 m4a.s ply_vol +0828df0c m4a.s ply_pan +0828df20 m4a.s ply_bend +0828df34 m4a.s ply_bendr +0828df48 m4a.s ply_lfodl +0828df54 m4a.s ply_modt +0828df6c m4a.s ply_tune +0828df80 m4a.s ply_port +0828df98 m4a.s m4aSoundVSync +0828dfe4 m4a.s MPlayMain +0828e24c m4a.s TrackStop +0828e290 m4a.s ChnVolSetAsm +0828e2c0 m4a.s ply_note +0828e4c4 m4a.s ply_endtie +0828e504 m4a.s clear_modM +0828e52c m4a.s ply_lfos +0828e540 m4a.s ply_mod +0828e554 m4a.s MidiKeyToFreq +0828e5b8 m4a.s UnusedDummyFunc +0828e5bc m4a.s MPlayContinue +0828e5d8 m4a.s MPlayFadeOut +0828e5f8 m4a.s m4aSoundInit +0828e6ac m4a.s m4aSoundMain +0828e6b8 m4a.s m4aSongNumStart +0828e6e4 m4a.s m4aSongNumStartOrChange +0828e730 m4a.s m4aSongNumStartOrContinue +0828e784 m4a.s m4aSongNumStop +0828e7b8 m4a.s m4aSongNumContinue +0828e7ec m4a.s m4aMPlayAllStop +0828e830 m4a.s m4aMPlayContinue +0828e83c m4a.s m4aMPlayAllContinue +0828e880 m4a.s m4aMPlayFadeOut +0828e890 m4a.s m4aMPlayFadeOutTemporarily +0828e8b0 m4a.s m4aMPlayFadeIn +0828e8d8 m4a.s m4aMPlayImmInit +0828e920 m4a.s MPlayExtender +0828ea38 m4a.s MusicPlayerJumpTableCopy +0828ea3c m4a.s ClearChain +0828ea50 m4a.s Clear64byte +0828ea64 m4a.s SoundInit +0828eb5c m4a.s SampleFreqSet +0828ec00 m4a.s m4aSoundMode +0828ec98 m4a.s SoundClear +0828ecec m4a.s m4aSoundVSyncOff +0828ed68 m4a.s m4aSoundVSyncOn +0828eda4 m4a.s MPlayOpen +0828ee1c m4a.s MPlayStart +0828ef00 m4a.s m4aMPlayStop +0828ef40 m4a.s FadeOutBody +0828f008 m4a.s TrkVolPitSet +0828f0bc m4a.s MidiKeyToCgbFreq +0828f164 m4a.s CgbOscOff +0828f1b4 m4a.s CgbModVol +0828f230 m4a.s CgbSound +0828f67c m4a.s m4aMPlayTempoControl +0828f6a4 m4a.s m4aMPlayVolumeControl +0828f70c m4a.s m4aMPlayPitchControl +0828f780 m4a.s m4aMPlayPanpotControl +0828f7e8 m4a.s ClearModM +0828f808 m4a.s m4aMPlayModDepthSet +0828f87c m4a.s m4aMPlayLFOSpeedSet +0828f8f0 m4a.s ply_memacc +0828fa48 m4a.s ply_xcmd +0828fa68 m4a.s ply_xxx +0828fa7c m4a.s ply_xwave +0828fac4 m4a.s ply_xtype +0828fad8 m4a.s ply_xatta +0828faec m4a.s ply_xdeca +0828fb00 m4a.s ply_xsust +0828fb14 m4a.s ply_xrele +0828fb28 m4a.s ply_xiecv +0828fb34 m4a.s ply_xiecl +0828fb40 m4a.s ply_xleng +0828fb54 m4a.s ply_xswee +0828fb68 m4a.s ply_xcmd_0C +0828fbb0 m4a.s ply_xcmd_0D +0828fbf8 m4a.s DummyFunc +0828fbfc m4a.s SetPokemonCryTone +0828fccc m4a.s SetPokemonCryVolume +0828fce0 m4a.s SetPokemonCryPanpot +0828fcf8 m4a.s SetPokemonCryPitch +0828fd30 m4a.s SetPokemonCryLength +0828fd3c m4a.s SetPokemonCryRelease +0828fd48 m4a.s SetPokemonCryProgress +0828fd54 m4a.s IsPokemonCryPlaying +0828fd6c m4a.s SetPokemonCryChorus +0828fd98 m4a.s SetPokemonCryStereo +0828fdd8 m4a.s SetPokemonCryPriority +agb_flash.s +0828fde4 agb_flash.s SwitchFlashBank +0828fe08 agb_flash.s ReadFlashId +0828fea4 agb_flash.s FlashTimerIntr +0828fecc agb_flash.s SetFlashTimerIntr +0828ff08 agb_flash.s StartFlashTimer +0828ffb0 agb_flash.s StopFlashTimer +0828fff4 agb_flash.s ReadFlash1 +0828fff8 agb_flash.s SetReadFlash1 +08290038 agb_flash.s ReadFlash_Core +0829005c agb_flash.s ReadFlash +082900f8 agb_flash.s VerifyFlashSector_Core +08290128 agb_flash.s VerifyFlashSector +082901c0 agb_flash.s VerifyFlashSectorNBytes +08290258 agb_flash.s ProgramFlashSectorAndVerify +0829029c agb_flash.s ProgramFlashSectorAndVerifyNBytes +082902e4 agb_flash.s IdentifyFlash +08290384 agb_flash.s WaitForFlashWrite_Common +08290424 agb_flash.s EraseFlashChip_MX +08290498 agb_flash.s EraseFlashSector_MX +08290568 agb_flash.s ProgramFlashByte_MX +08290634 agb_flash.s ProgramFlashSector_MX +siirtc.s +082906d8 siirtc.s SiiRtcUnprotect +082906f0 siirtc.s SiiRtcProtect +08290708 siirtc.s SiiRtcProbe +082907e0 siirtc.s SiiRtcReset +08290864 siirtc.s SiiRtcGetStatus +08290930 siirtc.s SiiRtcSetStatus +082909d8 siirtc.s SiiRtcGetDateTime +08290a88 siirtc.s SiiRtcSetDateTime +08290b24 siirtc.s SiiRtcGetTime +08290bd8 siirtc.s SiiRtcSetTime +08290c74 siirtc.s SiiRtcSetAlarm +08290da8 siirtc.s WriteCommand +08290e4c siirtc.s WriteData +08290eec siirtc.s ReadData +08290f78 siirtc.s EnableGpioPortRead +08290f8c siirtc.s DisableGpioPortRead +librfu_stwi.s +08290fa0 librfu_stwi.s STWI_init_all +08291078 librfu_stwi.s STWI_init_timer +082910b4 librfu_stwi.s AgbRFU_SoftReset +08291168 librfu_stwi.s STWI_set_MS_mode +0829117c librfu_stwi.s STWI_read_status +082911dc librfu_stwi.s STWI_init_Callback_M +082911e8 librfu_stwi.s STWI_init_Callback_S +082911f4 librfu_stwi.s STWI_set_Callback_M +08291200 librfu_stwi.s STWI_set_Callback_S +0829120c librfu_stwi.s STWI_set_Callback_ID +08291218 librfu_stwi.s STWI_poll_CommandEnd +08291240 librfu_stwi.s STWI_send_ResetREQ +08291264 librfu_stwi.s STWI_send_LinkStatusREQ +08291288 librfu_stwi.s STWI_send_VersionStatusREQ +082912ac librfu_stwi.s STWI_send_SystemStatusREQ +082912d0 librfu_stwi.s STWI_send_SlotStatusREQ +082912f4 librfu_stwi.s STWI_send_ConfigStatusREQ +08291318 librfu_stwi.s STWI_send_GameConfigREQ +08291370 librfu_stwi.s STWI_send_SystemConfigREQ +082913b0 librfu_stwi.s STWI_send_SC_StartREQ +082913d4 librfu_stwi.s STWI_send_SC_PollingREQ +082913f8 librfu_stwi.s STWI_send_SC_EndREQ +0829141c librfu_stwi.s STWI_send_SP_StartREQ +08291440 librfu_stwi.s STWI_send_SP_PollingREQ +08291464 librfu_stwi.s STWI_send_SP_EndREQ +08291488 librfu_stwi.s STWI_send_CP_StartREQ +082914b8 librfu_stwi.s STWI_send_CP_PollingREQ +082914dc librfu_stwi.s STWI_send_CP_EndREQ +08291500 librfu_stwi.s STWI_send_DataTxREQ +08291548 librfu_stwi.s STWI_send_DataTxAndChangeREQ +08291590 librfu_stwi.s STWI_send_DataRxREQ +082915b4 librfu_stwi.s STWI_send_MS_ChangeREQ +082915d8 librfu_stwi.s STWI_send_DataReadyAndChangeREQ +08291628 librfu_stwi.s STWI_send_DisconnectedAndChangeREQ +08291668 librfu_stwi.s STWI_send_ResumeRetransmitAndChangeREQ +0829168c librfu_stwi.s STWI_send_DisconnectREQ +082916bc librfu_stwi.s STWI_send_TestModeREQ +082916f4 librfu_stwi.s STWI_send_CPR_StartREQ +08291730 librfu_stwi.s STWI_send_CPR_PollingREQ +08291754 librfu_stwi.s STWI_send_CPR_EndREQ +08291778 librfu_stwi.s STWI_send_StopModeREQ +0829179c librfu_stwi.s STWI_intr_timer +08291800 librfu_stwi.s STWI_set_timer +082918ac librfu_stwi.s STWI_stop_timer +082918d8 librfu_stwi.s STWI_init +082919b0 librfu_stwi.s STWI_start_Command +08291a24 librfu_stwi.s STWI_restart_Command +08291aa4 librfu_stwi.s STWI_reset_ClockCounter +librfu_intr.s +08291adc librfu_intr.s IntrSIO32 +08291b0c librfu_intr.s sub_08291b0c +0829209c librfu_intr.s sub_0829209c +08291b40 librfu_intr.s sio32intr_clock_master +08291dd0 librfu_intr.s sio32intr_clock_slave +082921dc librfu_intr.s handshake_wait +08292244 librfu_intr.s STWI_set_timer_in_RAM +08292354 librfu_intr.s STWI_stop_timer_in_RAM +082923a4 librfu_intr.s STWI_init_slave +08292430 librfu_intr.s sub_08292430 +08292434 librfu_intr.s sub_08292434 +08292438 librfu_intr.s sub_08292438 +librfu_rfu.s +0829243c librfu_rfu.s rfu_initializeAPI +08292564 librfu_rfu.s rfu_STC_clearAPIVariables +082925ec librfu_rfu.s rfu_REQ_PARENT_resumeRetransmitAndChange +08292600 librfu_rfu.s rfu_UNI_PARENT_getDRAC_ACK +08292648 librfu_rfu.s rfu_setTimerInterrupt +0829265c librfu_rfu.s rfu_getSTWIRecvBuffer +0829266c librfu_rfu.s rfu_setMSCCallback +08292678 librfu_rfu.s rfu_setREQCallback +08292694 librfu_rfu.s rfu_enableREQCallback +082926c0 librfu_rfu.s rfu_STC_REQ_callback +08292700 librfu_rfu.s rfu_CB_defaultCallback +08292770 librfu_rfu.s rfu_waitREQComplete +08292784 librfu_rfu.s rfu_REQ_RFUStatus +08292798 librfu_rfu.s rfu_getRFUStatus +082927d4 librfu_rfu.s sub_082927d4 +082927e4 librfu_rfu.s sub_082927e4 +0829284c librfu_rfu.s rfu_REQ_stopMode +082928f4 librfu_rfu.s rfu_CB_stopMode +08292920 librfu_rfu.s rfu_REQBN_softReset_and_checkID +0829295c librfu_rfu.s rfu_REQ_reset +08292970 librfu_rfu.s rfu_CB_reset +08292994 librfu_rfu.s rfu_REQ_configSystem +082929fc librfu_rfu.s rfu_REQ_configGameData +08292a88 librfu_rfu.s rfu_CB_configGameData +08292b24 librfu_rfu.s rfu_REQ_startSearchChild +08292b94 librfu_rfu.s rfu_CB_startSearchChild +08292bbc librfu_rfu.s rfu_STC_clearLinkStatus +08292c20 librfu_rfu.s rfu_REQ_pollSearchChild +08292c34 librfu_rfu.s rfu_REQ_endSearchChild +08292c48 librfu_rfu.s rfu_CB_pollAndEndSearchChild +08292cd0 librfu_rfu.s rfu_STC_readChildList +08292d8c librfu_rfu.s rfu_REQ_startSearchParent +08292da0 librfu_rfu.s rfu_CB_startSearchParent +08292dc4 librfu_rfu.s rfu_REQ_pollSearchParent +08292dd8 librfu_rfu.s sub_08292dd8 +08292dfc librfu_rfu.s rfu_REQ_endSearchParent +08292e10 librfu_rfu.s rfu_STC_readParentCandidateList +08292f20 librfu_rfu.s rfu_REQ_startConnectParent +08292f88 librfu_rfu.s rfu_REQ_pollConnectParent +08292f9c librfu_rfu.s rfu_CB_pollConnectParent +082930bc librfu_rfu.s rfu_getConnectParentStatus +082930f0 librfu_rfu.s rfu_REQ_endConnectParent +08293128 librfu_rfu.s rfu_syncVBlank +08293208 librfu_rfu.s rfu_REQBN_watchLink +082935f4 librfu_rfu.s rfu_STC_removeLinkData +082936b4 librfu_rfu.s rfu_REQ_disconnect +08293744 librfu_rfu.s rfu_CB_disconnect +08293824 librfu_rfu.s rfu_REQ_CHILD_startConnectRecovery +08293880 librfu_rfu.s rfu_REQ_CHILD_pollConnectRecovery +08293894 librfu_rfu.s rfu_CB_CHILD_pollConnectRecovery +08293938 librfu_rfu.s rfu_CHILD_getConnectRecoveryStatus +08293968 librfu_rfu.s rfu_REQ_CHILD_endConnectRecovery +0829397c librfu_rfu.s sub_0829397c +08293992 librfu_rfu.s sub_08293992 +082939ac librfu_rfu.s rfu_REQ_changeMasterSlave +082939d8 librfu_rfu.s rfu_getMasterSlave +08293a10 librfu_rfu.s rfu_clearAllSlot +08293ab0 librfu_rfu.s rfu_STC_releaseFrame +08293b1c librfu_rfu.s rfu_clearSlot +08293cd8 librfu_rfu.s rfu_setRecvBuffer +08293d38 librfu_rfu.s rfu_NI_setSendData +08293d64 librfu_rfu.s rfu_UNI_setSendData +08293da0 librfu_rfu.s rfu_NI_CHILD_setSendGameName +08293dd4 librfu_rfu.s rfu_STC_setSendData_org +08293fdc librfu_rfu.s rfu_changeSendTarget +08294144 librfu_rfu.s rfu_NI_stopReceivingData +082941bc librfu_rfu.s rfu_UNI_changeAndReadySendData +08294250 librfu_rfu.s rfu_UNI_readySendData +0829427c librfu_rfu.s rfu_UNI_clearRecvNewDataFlag +0829429c librfu_rfu.s rfu_REQ_sendData +082943e0 librfu_rfu.s rfu_CB_sendData +08294478 librfu_rfu.s rfu_CB_sendData2 +08294488 librfu_rfu.s sub_08294488 +082944b0 librfu_rfu.s rfu_constructSendLLFrame +082945e8 librfu_rfu.s rfu_STC_NI_constructLLSF +082947a8 librfu_rfu.s rfu_STC_UNI_constructLLSF +0829487c librfu_rfu.s rfu_REQ_recvData +082948bc librfu_rfu.s rfu_CB_recvData +082949a8 librfu_rfu.s rfu_STC_PARENT_analyzeRecvPacket +08294a40 librfu_rfu.s rfu_STC_CHILD_analyzeRecvPacket +08294a98 librfu_rfu.s rfu_STC_analyzeLLSF +08294cdc librfu_rfu.s rfu_STC_UNI_receive +08294d90 librfu_rfu.s rfu_STC_NI_receive_Sender +08294f7c librfu_rfu.s rfu_STC_NI_receive_Receiver +082950f8 librfu_rfu.s rfu_STC_NI_initSlot_asRecvControllData +08295188 librfu_rfu.s rfu_STC_NI_initSlot_asRecvDataEntity +08295240 librfu_rfu.s rfu_NI_checkCommFailCounter +082952dc librfu_rfu.s rfu_REQ_noise +librfu.s +082952f4 librfu.s sub_082952f4 +082953a8 librfu.s sub_082953a8 +0829541c librfu.s sub_0829541c +08295510 librfu.s sub_08295510 +0829552a librfu.s sub_0829552a +libisagbprn.s +08295600 libisagbprn.s AGBPrintInit +08295688 libisagbprn.s AGBPutcInternal +08295774 libisagbprn.s AGBPutc +082957d4 libisagbprn.s AGBPrint +08295830 libisagbprn.s AGBPrintf +08295874 libisagbprn.s AGBPrintTransferDataInternal +0829594c libisagbprn.s AGBPrintFlush1Block +0829595c libisagbprn.s AGBPrintFlush +0829596c libisagbprn.s AGBAssert +libagbsyscall.s +082959b0 libagbsyscall.s ArcTan2 +082959b4 libagbsyscall.s BgAffineSet +082959b8 libagbsyscall.s CpuFastSet +082959bc libagbsyscall.s CpuSet +082959c0 libagbsyscall.s Div +082959c4 libagbsyscall.s LZ77UnCompVram +082959c8 libagbsyscall.s LZ77UnCompWram +082959cc libagbsyscall.s MultiBoot +082959d4 libagbsyscall.s ObjAffineSet +082959d8 libagbsyscall.s RLUnCompVram +082959dc libagbsyscall.s RLUnCompWram +082959e0 libagbsyscall.s RegisterRamReset +082959e4 libagbsyscall.s SoftReset +082959fc libagbsyscall.s Sqrt +08295a00 libagbsyscall.s VBlankIntrWait +libgcc.s +08295a08 libgcc.s _call_via_r0 +08295a0c libgcc.s _call_via_r1 +08295a10 libgcc.s _call_via_r2 +08295a14 libgcc.s _call_via_r3 +08295a18 libgcc.s _call_via_r4 +08295a1c libgcc.s _call_via_r5 +08295a20 libgcc.s _call_via_r6 +08295a24 libgcc.s _call_via_r7 +08295a28 libgcc.s _call_via_r8 +08295a2c libgcc.s _call_via_r9 +08295a30 libgcc.s _call_via_sl +08295a34 libgcc.s _call_via_fp +08295a38 libgcc.s _call_via_ip +08295a3c libgcc.s _call_via_sp +08295a40 libgcc.s _call_via_lr +08295a44 libgcc.s __divdi3 +08295e78 libgcc.s __divsi3 +08295f0c libgcc.s __div0 +08295f10 libgcc.s __fixunsdfsi +08295f54 libgcc.s __fixunssfsi +08295f88 libgcc.s __modsi3 +08296058 libgcc.s __muldi3 +082960c8 libgcc.s __udivdi3 +082964a0 libgcc.s __udivsi3 +08296518 libgcc.s __umodsi3 +082965d8 libgcc.s __pack_d +08296720 libgcc.s __unpack_d +08296a64 libgcc.s __adddf3 +08296a94 libgcc.s __subdf3 +08296acc libgcc.s __muldf3 +08296d74 libgcc.s __divdf3 +08296efc libgcc.s __fpcmp_parts_d +08296ffc libgcc.s __cmpdf2 +08297028 libgcc.s __eqdf2 +08297074 libgcc.s __nedf2 +082970c0 libgcc.s __gtdf2 +0829710c libgcc.s __gedf2 +08297158 libgcc.s __ltdf2 +082971a4 libgcc.s __ledf2 +082971f0 libgcc.s __floatsidf +0829726c libgcc.s __fixdfsi +082972e0 libgcc.s __negdf2 +08297308 libgcc.s __make_dp +08297330 libgcc.s __truncdfsf2 +08297374 libgcc.s __pack_f +0829742c libgcc.s __unpack_f +08297624 libgcc.s __addsf3 +08297650 libgcc.s __subsf3 +08297684 libgcc.s __mulsf3 +082977e8 libgcc.s __divsf3 +082978d4 libgcc.s __fpcmp_parts_f +082979b8 libgcc.s __cmpsf2 +082979e0 libgcc.s __eqsf2 +08297a28 libgcc.s __nesf2 +08297a70 libgcc.s __gtsf2 +08297ab8 libgcc.s __gesf2 +08297b00 libgcc.s __ltsf2 +08297b48 libgcc.s __lesf2 +08297b90 libgcc.s __floatsisf +08297bf0 libgcc.s __fixsfsi +08297c58 libgcc.s __negsf2 +08297c7c libgcc.s __make_fp +08297c94 libgcc.s __extendsfdf2 +08297cc0 libgcc.s __lshrdi3 +08297cf4 libgcc.s __negdi2 +08297d0c libgcc.s memcpy +08297d6c libgcc.s memset +libc.s +08297D0C libc.s memcpy +08297D6C libc.s memset +08297dc0 libc.s strcmp +08297e1c libc.s strcpy +08297e68 libc.s vsprintf +08297f30 libc.s vfprintf +08297f44 libc.s _vfprintf_r +08299008 libc.s __swsetup +08299210 libc.s _dtoa_r +08299f08 libc.s fflush +08299fd4 libc.s __sfmoreglue +0829a004 libc.s __sfp +0829a078 libc.s _cleanup_r +0829a088 libc.s _cleanup +0829a098 libc.s __sinit +0829a0f8 libc.s _free_r +0829a2b8 libc.s _malloc_trim_r +0829a378 libc.s __sfvwrite +0829a5a4 libc.s _fwalk +0829a5e4 libc.s _setlocale_r +0829a620 libc.s _localeconv_r +0829a628 libc.s setlocale +0829a640 libc.s localeconv +0829a650 libc.s __smakebuf +0829a888 libc.s _malloc_r +0829ac48 libc.s _mbtowc_r +0829ac74 libc.s memchr +0829acf4 libc.s memmove +0829ad7c libc.s __malloc_lock +0829ad80 libc.s __malloc_unlock +0829ad84 libc.s _Balloc +0829addc libc.s _Bfree +0829adf4 libc.s _multadd +0829ae8c libc.s _s2b +0829af10 libc.s _hi0bits +0829af68 libc.s _lo0bits +0829afec libc.s _i2b +0829b000 libc.s _multiply +0829b16c libc.s _pow5mult +0829b204 libc.s _lshift +0829b2a4 libc.s __mcmp +0829b2e4 libc.s __mdiff +0829b3d4 libc.s _ulp +0829b420 libc.s _b2d +0829b4dc libc.s _d2b +0829b5c4 libc.s _ratio +0829b614 libc.s _mprec_log10 +0829b654 libc.s isinf +0829b678 libc.s isnan +0829b698 libc.s _sbrk_r +0829b6c4 libc.s __sread +0829b6f8 libc.s __swrite +0829b738 libc.s __sseek +0829b778 libc.s __sclose +0829b788 libc.s strlen +0829b838 libc.s initialise_monitor_handles +0829b8e8 libc.s _swiread +0829b90c libc.s _read +0829b954 libc.s _swilseek +0829b9d8 libc.s _lseek +0829b9e4 libc.s _swiwrite +0829ba08 libc.s _write +0829ba54 libc.s _swiopen +0829baf4 libc.s _open +0829bb08 libc.s _swiclose +0829bb3c libc.s _close +0829bb48 libc.s _exit +0829bb68 libc.s _kill +0829bb88 libc.s _getpid +0829bb8c libc.s _sbrk +0829bbc8 libc.s _fstat +0829bbd4 libc.s _unlink +0829bbdc libc.s _raise +0829bbe0 libc.s _gettimeofday +0829bc0c libc.s _times +0829bc30 libc.s _write_r +0829bc60 libc.s _calloc_r +0829bcb8 libc.s _close_r +0829bce4 libc.s __errno +0829bcf0 libc.s _fstat_r +0829bd1c libc.s abort +0829bd3c libc.s isatty +0829bd40 libc.s alarm +0829bd44 libc.s _lseek_r +0829bd74 libc.s _read_r diff --git a/funcmap_us.txt b/funcmap_us.txt new file mode 100644 index 0000000..23d1c1d --- /dev/null +++ b/funcmap_us.txt @@ -0,0 +1,15772 @@ +080003a4 main.s AgbMain +080004c4 main.s UpdateLinkAndCallCallbacks +080004d8 main.s InitMainCallbacks +0800051c main.s CallCallbacks +08000540 main.s SetMainCallback2 +08000554 main.s StartTimer1 +08000560 main.s SeedRngAndSetTrainerId +08000588 main.s GetGeneratedTrainerIdLower +08000594 main.s EnableVCountIntrAtLine150 +080005bc main.s InitKeys +080005e4 main.s ReadKeys +08000684 main.s InitIntrHandlers +080006f0 main.s SetVBlankCallback +080006fc main.s SetHBlankCallback +08000708 main.s SetVCountCallback +08000714 main.s RestoreSerialTimer3IntrHandlers +0800072c main.s SetSerialCallback +08000738 main.s VBlankIntr +08000800 main.s InitFlashTimer +08000814 main.s HBlankIntr +08000844 main.s VCountIntr +08000878 main.s SerialIntr +080008a8 main.s IntrDummy +080008ac main.s WaitForVBlank +080008dc main.s SetTrainerHillVBlankCounter +080008e8 main.s ClearTrainerHillVBlankCounter +080008f4 main.s DoSoftReset +08000964 main.s ClearPokemonCrySongs +08000988 alloc.s PutMemBlockHeader +080009a4 alloc.s PutFirstMemBlockHeader +080009b8 alloc.s AllocInternal +08000a20 alloc.s FreeInternal +08000a84 alloc.s AllocZeroedInternal +08000ac4 alloc.s CheckMemBlockInternal +08000b1c alloc.s InitHeap +08000b38 alloc.s Alloc +08000b4c alloc.s AllocZeroed +08000b60 alloc.s Free +08000b74 alloc.s CheckMemBlock +08000b88 alloc.s CheckHeap +08000bb8 dma3_manager.s ClearDma3Requests +08000bf0 dma3_manager.s ProcessDma3Requests +08000e68 dma3_manager.s RequestDma3Copy +08000f00 dma3_manager.s RequestDma3Fill +08000fa4 dma3_manager.s CheckForSpaceForDma3Request +08000fe4 gpu_regs.s InitGpuRegManager +0800103c gpu_regs.s CopyBufferedValueToGpuReg +08001080 gpu_regs.s CopyBufferedValuesToGpuRegs +080010b4 gpu_regs.s SetGpuReg +08001140 gpu_regs.s SetGpuReg_ForcedBlank +080011b8 gpu_regs.s GetGpuReg +080011e8 gpu_regs.s SetGpuRegBits +08001208 gpu_regs.s ClearGpuRegBits +08001228 gpu_regs.s SyncRegIE +0800125c gpu_regs.s EnableInterrupts +08001288 gpu_regs.s DisableInterrupts +080012b4 gpu_regs.s UpdateRegDispstatIntrBits +080012f0 bg.s ResetBgs +08001308 bg.s SetBgModeInternal +08001324 bg.s GetBgMode +08001334 bg.s ResetBgControlStructs +08001354 bg.s Unused_ResetBgControlStruct +08001380 bg.s SetBgControlAttributes +080014ac bg.s GetBgControlAttribute +08001560 bg.s LoadBgVram +080015e8 bg.s ShowBgInternal +08001664 bg.s HideBgInternal +08001698 bg.s SyncBgVisibilityAndMode +080016bc bg.s SetTextModeAndHideBgs +080016d8 bg.s SetBgAffineInternal +080017a4 bg.s IsInvalidBg +080017b8 bg.s DummiedOutFireRedLeafGreenTileAllocFunc +080017bc bg.s ResetBgsAndClearDma3BusyFlags +080017e8 bg.s InitBgsFromTemplates +080018b0 bg.s InitBgFromTemplate +08001934 bg.s SetBgMode +08001944 bg.s LoadBgTiles +080019fc bg.s LoadBgTilemap +08001a4c bg.s Unused_LoadBgPalette +08001ad4 bg.s IsDma3ManagerBusyWithBgCopy +08001b30 bg.s ShowBg +08001b44 bg.s HideBg +08001b58 bg.s SetBgAttribute +08001c1c bg.s GetBgAttribute +08001d04 bg.s ChangeBgX +08001e40 bg.s GetBgX +08001e7c bg.s ChangeBgY +08001fb8 bg.s ChangeBgY_ScreenOff +080020f4 bg.s GetBgY +08002130 bg.s SetBgAffine +08002170 bg.s Unused_AdjustBgMosaic +08002250 bg.s SetBgTilemapBuffer +08002284 bg.s UnsetBgTilemapBuffer +080022b8 bg.s GetBgTilemapBuffer +080022f0 bg.s CopyToBgTilemapBuffer +0800236c bg.s CopyBgTilemapBufferToVram +080023d4 bg.s CopyToBgTilemapBufferRect +080024d8 bg.s CopyToBgTilemapBufferRect_ChangePalette +0800251c bg.s CopyRectToBgTilemapBufferRect +08002704 bg.s FillBgTilemapBufferRect_Palette0 +08002804 bg.s FillBgTilemapBufferRect +08002840 bg.s WriteSequenceToBgTilemapBuffer +080029ec bg.s GetBgMetricTextMode +08002a5c bg.s GetBgMetricAffineMode +08002ab4 bg.s GetTileMapIndexFromCoords +08002aec bg.s CopyTileMapEntry +08002b48 bg.s GetBgType +08002b9c bg.s IsInvalidBg32 +08002bb0 bg.s IsTileMapOutsideWram +08002bdc blit.s BlitBitmapRect4BitWithoutColorKey +08002c20 blit.s BlitBitmapRect4Bit +08002e00 blit.s FillBitmapRect4Bit +08002ec8 blit.s BlitBitmapRect4BitTo8Bit +08003118 blit.s FillBitmapRect8Bit +080031bc window.s nullsub_8 +080031c0 window.s InitWindows +08003380 window.s AddWindow +080034d8 window.s AddWindowWithoutTileMap +08003574 window.s RemoveWindow +08003604 window.s FreeAllWindowBuffers +08003658 window.s CopyWindowToVram +080036d8 window.s CopyWindowRectToVram +0800378c window.s PutWindowTilemap +080037ec window.s PutWindowRectTilemapOverridePalette +080038a4 window.s ClearWindowTilemap +080038f4 window.s PutWindowRectTilemap +080039a4 window.s BlitBitmapToWindow +080039dc window.s BlitBitmapRectToWindow +08003a9c window.s BlitBitmapRectToWindowWithColorKey +08003b64 window.s FillWindowPixelRect +08003bf0 window.s CopyToWindowPixelBuffer +08003c48 window.s FillWindowPixelBuffer +08003c94 window.s ScrollWindow +08004058 window.s CallWindowFunction +080040a8 window.s SetWindowAttribute +0800414c window.s GetWindowAttribute +08004230 window.s GetNumActiveWindowsOnBg +0800425c window.s nullsub_9 +08004260 window.s AddWindow8Bit +08004368 window.s FillWindowPixelBuffer8Bit +080043a8 window.s FillWindowPixelRect8Bit +08004434 window.s BlitBitmapRectToWindow4BitTo8Bit +08004500 window.s CopyWindowToVram8Bit +08004578 window.s GetNumActiveWindowsOnBg8Bit +080045a4 text.s SetFontsPointer +080045b0 text.s DeactivateAllTextPrinters +080045d0 text.s AddTextPrinterParameterized +0800467c text.s AddTextPrinter +08004778 text.s RunTextPrinters +08004800 text.s IsTextPrinterActive +08004818 text.s RenderFont +08004844 text.s GenerateFontHalfRowLookupTable +08004be0 text.s SaveTextColors +08004c00 text.s RestoreTextColors +08004c10 text.s DecompressGlyphTile +08004d58 text.s GetLastTextColor +08004da0 text.s CopyGlyphToWindow +080052c8 text.s ClearTextSpan +0800533c text.s Font0Func +08005370 text.s Font1Func +080053a8 text.s Font2Func +080053e0 text.s Font3Func +08005418 text.s Font4Func +08005450 text.s Font5Func +08005488 text.s Font7Func +080054c0 text.s Font8Func +080054f8 text.s TextPrinterInitDownArrowCounters +08005528 text.s TextPrinterDrawDownArrow +08005600 text.s TextPrinterClearDownArrow +08005634 text.s TextPrinterWaitAutoMode +08005650 text.s TextPrinterWaitWithDownArrow +0800569c text.s TextPrinterWait +080056e0 text.s DrawDownArrow +080057b4 text.s RenderText +08005d74 text.s GetStringWidthFixedWidthFont +08005ea8 text.s GetFontWidthFunc +08005ed8 text.s GetStringWidth +08006140 text.s RenderTextFont9 +080062e8 text.s DrawKeypadIcon +08006338 text.s GetKeypadIconTileOffset +08006348 text.s GetKeypadIconWidth +08006358 text.s GetKeypadIconHeight +08006368 text.s SetDefaultFontsPointer +08006378 text.s GetFontAttribute +08006460 text.s GetMenuCursorDimensionByFont +08006478 text.s DecompressGlyphFont0 +08006540 text.s GetGlyphWidthFont0 +08006560 text.s DecompressGlyphFont7 +08006628 text.s GetGlyphWidthFont7 +08006648 text.s DecompressGlyphFont8 +08006710 text.s GetGlyphWidthFont8 +08006730 text.s DecompressGlyphFont2 +0800681c text.s GetGlyphWidthFont2 +08006840 text.s DecompressGlyphFont1 +08006908 text.s GetGlyphWidthFont1 +08006928 text.s DecompressGlyphFont9 +08006974 sprite.s ResetSpriteData +080069c0 sprite.s AnimateSprites +08006a0c sprite.s BuildOamBuffer +08006a58 sprite.s UpdateOamCoords +08006b1c sprite.s BuildSpritePriorities +08006b5c sprite.s SortSprites +08006d1c sprite.s CopyMatricesToOamBuffer +08006d68 sprite.s AddSpritesToOamBuffer +08006df4 sprite.s CreateSprite +08006e48 sprite.s CreateSpriteAtEnd +08006eb4 sprite.s CreateInvisibleSprite +08006efc sprite.s CreateSpriteAt +08007054 sprite.s CreateSpriteAndAnimate +080070e8 sprite.s DestroySprite +08007150 sprite.s ResetOamRange +08007188 sprite.s LoadOam +080071b8 sprite.s ClearSpriteCopyRequests +080071f8 sprite.s ResetOamMatrices +08007224 sprite.s SetOamMatrix +08007244 sprite.s ResetSprite +08007258 sprite.s CalcCenterToCornerVec +0800729c sprite.s AllocSpriteTiles +080073b8 sprite.s SpriteTileAllocBitmapOp +08007428 sprite.s SpriteCallbackDummy +0800742c sprite.s ProcessSpriteCopyRequests +08007488 sprite.s RequestSpriteFrameImageCopy +080074ec sprite.s RequestSpriteCopy +0800753c sprite.s CopyFromSprites +08007564 sprite.s CopyToSprites +0800758c sprite.s ResetAllSprites +080075c8 sprite.s FreeSpriteTiles +080075e4 sprite.s FreeSpritePalette +080075f4 sprite.s FreeSpriteOamMatrix +08007620 sprite.s DestroySpriteAndFreeResources +08007640 sprite.s AnimateSprite +08007688 sprite.s BeginAnim +08007778 sprite.s ContinueAnim +08007818 sprite.s AnimCmd_frame +080078c4 sprite.s AnimCmd_end +080078dc sprite.s AnimCmd_jump +080079a4 sprite.s AnimCmd_loop +080079c4 sprite.s BeginAnimLoop +080079fc sprite.s ContinueAnimLoop +08007a1c sprite.s JumpToTopOfAnimLoop +08007a90 sprite.s BeginAffineAnim +08007b24 sprite.s ContinueAffineAnim +08007bd8 sprite.s AffineAnimDelay +08007c0c sprite.s AffineAnimCmd_loop +08007c40 sprite.s BeginAffineAnimLoop +08007c7c sprite.s ContinueAffineAnimLoop +08007cac sprite.s JumpToTopOfAffineAnimLoop +08007d18 sprite.s AffineAnimCmd_jump +08007d64 sprite.s AffineAnimCmd_end +08007da0 sprite.s AffineAnimCmd_frame +08007dd8 sprite.s CopyOamMatrix +08007df8 sprite.s GetSpriteMatrixNum +08007e18 sprite.s sub_8007E18 +08007e28 sprite.s sub_8007E28 +08007e54 sprite.s obj_update_pos2 +08007ef0 sprite.s SetSpriteOamFlipBits +08007f64 sprite.s AffineAnimStateRestartAnim +08007f80 sprite.s AffineAnimStateStartAnim +08007fa8 sprite.s AffineAnimStateReset +08007fd0 sprite.s ApplyAffineAnimFrameAbsolute +08007ff4 sprite.s DecrementAnimDelayCounter +0800801c sprite.s DecrementAffineAnimDelayCounter +0800804c sprite.s ApplyAffineAnimFrameRelativeAndUpdateMatrix +080080e4 sprite.s ConvertScaleParam +080080fc sprite.s GetAffineAnimFrame +08008168 sprite.s ApplyAffineAnimFrame +080081a8 sprite.s StartSpriteAnim +080081c0 sprite.s StartSpriteAnimIfDifferent +080081dc sprite.s SeekSpriteAnim +08008258 sprite.s StartSpriteAffineAnim +08008284 sprite.s StartSpriteAffineAnimIfDifferent +080082b8 sprite.s ChangeSpriteAffineAnim +080082f0 sprite.s ChangeSpriteAffineAnimIfDifferent +08008324 sprite.s SetSpriteSheetFrameTileNum +0800837c sprite.s ResetAffineAnimData +080083b0 sprite.s AllocOamMatrix +080083e8 sprite.s FreeOamMatrix +08008428 sprite.s InitSpriteAffineAnim +08008478 sprite.s SetOamMatrixRotationScaling +080084f8 sprite.s LoadSpriteSheet +0800853c sprite.s LoadSpriteSheets +08008568 sprite.s FreeSpriteTilesByTag +080085e0 sprite.s FreeSpriteTileRanges +08008620 sprite.s GetSpriteTileStartByTag +0800864c sprite.s IndexOfSpriteTileTag +08008678 sprite.s GetSpriteTileTagByTileStart +080086c4 sprite.s AllocSpriteTileRange +0800870c sprite.s FreeAllSpritePalettes +08008744 sprite.s LoadSpritePalette +08008790 sprite.s LoadSpritePalettes +080087bc sprite.s DoLoadSpritePalette +080087d4 sprite.s AllocSpritePalette +08008804 sprite.s IndexOfSpritePaletteTag +0800883c sprite.s GetSpritePaletteTagByPaletteNum +0800884c sprite.s FreeSpritePaletteByTag +08008874 sprite.s SetSubspriteTables +08008880 sprite.s AddSpriteToOamBuffer +080088ec sprite.s AddSubspritesToOamBuffer +08008b10 string_util.s StringCopy10 +08008b44 string_util.s StringGetEnd10 +08008b70 string_util.s StringCopy7 +08008ba0 string_util.s StringCopy +08008bc0 string_util.s StringAppend +08008bd8 string_util.s StringCopyN +08008c08 string_util.s StringAppendN +08008c24 string_util.s StringLength +08008c44 string_util.s StringCompare +08008c68 string_util.s StringCompareN +08008c94 string_util.s IsStringLengthAtLeast +08008cc0 string_util.s ConvertIntToDecimalStringN +08008d70 string_util.s ConvertUIntToDecimalStringN +08008e20 string_util.s ConvertIntToHexStringN +08008ee0 string_util.s StringExpandPlaceholders +08008fcc string_util.s StringBraille +0800902c string_util.s ExpandPlaceholder_UnknownStringVar +08009034 string_util.s ExpandPlaceholder_PlayerName +08009040 string_util.s ExpandPlaceholder_StringVar1 +08009048 string_util.s ExpandPlaceholder_StringVar2 +08009050 string_util.s ExpandPlaceholder_StringVar3 +08009058 string_util.s ExpandPlaceholder_KunChan +0800907c string_util.s ExpandPlaceholder_RivalName +080090a0 string_util.s ExpandPlaceholder_Version +080090a8 string_util.s ExpandPlaceholder_Aqua +080090b0 string_util.s ExpandPlaceholder_Magma +080090b8 string_util.s ExpandPlaceholder_Archie +080090c0 string_util.s ExpandPlaceholder_Maxie +080090c8 string_util.s ExpandPlaceholder_Kyogre +080090d0 string_util.s ExpandPlaceholder_Groudon +080090d8 string_util.s GetExpandedPlaceholder +080090fc string_util.s StringFill +08009128 string_util.s StringCopyPadded +0800917c string_util.s StringFillWithTerminator +0800918c string_util.s StringCopyN_Multibyte +080091cc string_util.s StringLength_Multibyte +080091ec string_util.s WriteColorChangeControlCode +08009228 string_util.s IsStringJapanese +0800924c string_util.s sub_800924C +0800927c string_util.s GetExtCtrlCodeLength +08009298 string_util.s SkipExtCtrlCode +080092bc string_util.s StringCompareWithoutExtCtrlCodes +08009308 string_util.s ConvertInternationalString +08009370 string_util.s StripExtCtrlCodes +080093cc link.s IsWirelessAdapterConnected +08009404 link.s Task_DestroySelf +08009414 link.s InitLinkTestBG +080094ec link.s sub_80094EC +08009570 link.s LinkTestScreen +08009628 link.s SetLocalLinkPlayerId +08009638 link.s InitLocalLinkPlayer +080096bc link.s sub_80096BC +080096d0 link.s InitLink +080096fc link.s Task_TriggerHandshake +08009734 link.s OpenLink +080097e8 link.s CloseLink +08009818 link.s TestBlockTransfer +08009900 link.s LinkTestProcessKeyInput +080099bc link.s CB2_LinkTest +080099e0 link.s LinkMain2 +08009a58 link.s HandleReceiveRemoteLinkPlayer +08009aa0 link.s ProcessRecvCmds +08009d90 link.s BuildSendCmd +08009f18 link.s sub_8009F18 +08009f3c link.s IsSendingKeysToLink +08009f70 link.s sub_8009F70 +08009f8c link.s ClearLinkCallback +08009fac link.s ClearLinkCallback_2 +08009fcc link.s GetLinkPlayerCount +08009ff8 link.s sub_8009FF8 +0800a03c link.s sub_800A03C +0800a040 link.s sub_800A040 +0800a064 link.s Link_AnyPartnersPlayingRubyOrSapphire +0800a07c link.s sub_800A07C +0800a0ac link.s OpenLinkTimed +0800a0c8 link.s GetLinkPlayerDataExchangeStatusTimed +0800a23c link.s IsLinkPlayerDataExchangeComplete +0800a2a4 link.s GetLinkPlayerTrainerId +0800a2bc link.s ResetLinkPlayers +0800a2e0 link.s ResetBlockSend +0800a2f4 link.s InitBlockSend +0800a364 link.s LinkCB_BlockSendBegin +0800a388 link.s LinkCB_BlockSend +0800a3ec link.s LinkCB_BlockSendEnd +0800a3f8 link.s sub_800A3F8 +0800a418 link.s sub_800A418 +0800a44c link.s sub_800A44C +0800a458 link.s sub_800A458 +0800a468 link.s GetMultiplayerId +0800a490 link.s bitmask_all_link_players_but_self +0800a4ac link.s SendBlock +0800a4d8 link.s sub_800A4D8 +0800a520 link.s IsLinkTaskFinished +0800a550 link.s GetBlockReceivedStatus +0800a588 link.s SetBlockReceivedFlag +0800a5b4 link.s ResetBlockReceivedFlags +0800a5ec link.s ResetBlockReceivedFlag +0800a620 link.s CheckShouldAdvanceLinkState +0800a648 link.s LinkTestCalcBlockChecksum +0800a678 link.s LinkTest_prnthexchar +0800a6b0 link.s LinkTest_prntchar +0800a6e8 link.s LinkTest_prnthex +0800a73c link.s LinkTest_prntint +0800a7dc link.s LinkTest_prntstr +0800a824 link.s LinkCB_RequestPlayerDataExchange +0800a850 link.s Task_PrintTestData +0800a994 link.s SetLinkDebugValues +0800a9a8 link.s sub_800A9A8 +0800a9d8 link.s sub_800A9D8 +0800aa04 link.s sub_800AA04 +0800aa48 link.s GetSavedPlayerCount +0800aa54 link.s sub_800AA54 +0800aa60 link.s sub_800AA60 +0800aaf4 link.s sub_800AAF4 +0800ab18 link.s sub_800AB18 +0800ab98 link.s sub_800AB98 +0800abac link.s GetLinkPlayerCount_2 +0800abbc link.s IsLinkMaster +0800abe8 link.s sub_800ABE8 +0800abf4 link.s sub_800ABF4 +0800ac34 link.s sub_800AC34 +0800ac80 link.s sub_800AC80 +0800acac link.s sub_800ACAC +0800ad10 link.s sub_800AD10 +0800ad5c link.s sub_800AD5C +0800ad88 link.s sub_800AD88 +0800adf8 link.s sub_800ADF8 +0800ae30 link.s sub_800AE30 +0800ae5c link.s sub_800AE5C +0800aeb4 link.s CheckErrorStatus +0800af18 link.s sub_800AF18 +0800af30 link.s CB2_LinkError +0800b080 link.s sub_800B080 +0800b138 link.s sub_800B138 +0800b1a0 link.s CB2_PrintErrorMessage +0800b2e8 link.s GetSioMultiSI +0800b2f8 link.s IsSioMultiMaster +0800b320 link.s IsLinkConnectionEstablished +0800b330 link.s SetSuppressLinkErrorMessage +0800b33c link.s HasLinkErrorOccurred +0800b348 link.s sub_800B348 +0800b3a4 link.s sub_800B3A4 +0800b40c link.s HandleLinkConnection +0800b488 link.s sub_800B488 +0800b4a4 link.s sub_800B4A4 +0800b4c0 link.s sub_800B4C0 +0800b4dc link.s GetLinkRecvQueueLength +0800b504 link.s sub_800B504 +0800b518 link.s sub_800B518 +0800b524 link.s sub_800B524 +0800b53c link.s DisableSerial +0800b594 link.s EnableSerial +0800b628 link.s ResetSerial +0800b638 link.s LinkMain1 +0800b764 link.s CheckMasterOrSlave +0800b790 link.s InitTimer +0800b7c0 link.s EnqueueSendCmd +0800b8a8 link.s DequeueRecvCmds +0800b9b8 link.s LinkVSync +0800ba28 link.s Timer3Intr +0800ba38 link.s SerialCB +0800bac0 link.s StartTransfer +0800bad0 link.s DoHandshake +0800bbcc link.s DoRecv +0800bce4 link.s DoSend +0800bd98 link.s StopTimer +0800bdcc link.s SendRecvDone +0800bdfc link.s ResetSendBuffer +0800be50 link.s ResetRecvBuffer +0800bec0 link_rfu.s sub_800BEC0 +0800bf0c link_rfu.s rfu_REQ_sendData_wrapper +0800bf4c link_rfu.s sub_800BF4C +0800bfa0 link_rfu.s sub_800BFA0 +0800bfcc link_rfu.s sub_800BFCC +0800c000 link_rfu.s sub_800C000 +0800c048 link_rfu.s sub_800C048 +0800c054 link_rfu.s sub_800C054 +0800c12c link_rfu.s sub_800C12C +0800c210 link_rfu.s sub_800C210 +0800c27c link_rfu.s sub_800C27C +0800c36c link_rfu.s sub_800C36C +0800c530 link_rfu.s rfu_syncVBlank_ +0800c54c link_rfu.s sub_800C54C +0800c744 link_rfu.s sub_800C744 +0800c7b4 link_rfu.s sub_800C7B4 +0800ceb0 link_rfu.s sub_800CEB0 +0800cf34 link_rfu.s sub_800CF34 +0800d158 link_rfu.s sub_800D158 +0800d20c link_rfu.s sub_800D20C +0800d268 link_rfu.s sub_800D268 +0800d294 link_rfu.s sub_800D294 +0800d30c link_rfu.s sub_800D30C +0800d334 link_rfu.s sub_800D334 +0800d358 link_rfu.s sub_800D358 +0800d434 link_rfu.s sub_800D434 +0800d52c link_rfu.s sub_800D52C +0800d544 link_rfu.s sub_800D544 +0800d550 link_rfu.s sub_800D550 +0800d594 link_rfu.s sub_800D594 +0800d5d0 link_rfu.s sub_800D5D0 +0800d610 link_rfu.s sub_800D610 +0800d630 link_rfu.s sub_800D630 +0800d658 link_rfu.s sub_800D658 +0800d6c8 link_rfu.s sub_800D6C8 +0800d724 link_rfu.s sub_800D724 +0800d780 link_rfu.s sub_800D780 +0800d7d8 link_rfu.s sub_800D7D8 +0800d888 link_rfu.s sub_800D888 +0800d934 link_rfu.s sub_800D934 +0800d9dc link_rfu.s sub_800D9DC +0800da68 link_rfu.s sub_800DA68 +0800dac8 link_rfu.s sub_800DAC8 +0800db18 link_rfu.s sub_800DB18 +0800db84 link_rfu.s sub_800DB84 +0800dbf8 link_rfu.s sub_800DBF8 +0800dcb4 link_rfu.s PkmnStrToASCII +0800dce8 link_rfu.s ASCIIToPkmnStr +0800dd1c link_rfu.s sub_800DD1C +0800dd94 link_rfu.s sub_800DD94 +0800de7c link_rfu.s sub_800DE7C +0800df34 link_rfu.s sub_800DF34 +0800df90 link_rfu.s sub_800DF90 +0800dfb4 link_rfu.s CreateWirelessStatusIndicatorSprite +0800e084 link_rfu.s DestroyWirelessStatusIndicatorSprite +0800e0e8 link_rfu.s LoadWirelessStatusIndicatorSpriteGfx +0800e124 link_rfu.s sub_800E124 +0800e15c link_rfu.s sub_800E15C +0800e174 link_rfu.s sub_800E174 +0800e378 link_rfu.s CopyTrainerRecord +0800e388 link_rfu.s NameIsNotEmpty +0800e3a8 link_rfu.s RecordMixTrainerNames +0800e540 link_rfu.s sub_800E540 +0800e5ac link_rfu.s WipeTrainerNameRecords +0800e5fc link_rfu.s nullsub_5 +0800e600 link_rfu.s nullsub_13 +0800e604 link_rfu.s sub_800E604 +0800e6d0 link_rfu.s sub_800E6D0 +0800e700 link_rfu.s sub_800E700 +0800e748 link_rfu.s sub_800E748 +0800e87c link_rfu.s sub_800E87C +0800e88c link_rfu.s sub_800E88C +0800e94c link_rfu.s sub_800E94C +0800eab4 link_rfu.s sub_800EAB4 +0800eafc link_rfu.s sub_800EAFC +0800eb44 link_rfu.s sub_800EB44 +0800ed10 link_rfu.s sub_800ED10 +0800ed28 link_rfu.s sub_800ED28 +0800ed34 link_rfu.s sub_800ED34 +0800edbc link_rfu.s sub_800EDBC +0800edd4 link_rfu.s sub_800EDD4 +0800ee78 link_rfu.s sub_800EE78 +0800ee94 link_rfu.s sub_800EE94 +0800eebc link_rfu.s sub_800EEBC +0800ef00 link_rfu.s sub_800EF00 +0800ef1c link_rfu.s sub_800EF1C +0800ef38 link_rfu.s sub_800EF38 +0800ef58 link_rfu.s sub_800EF58 +0800ef7c link_rfu.s sub_800EF7C +0800ef88 link_rfu.s sub_800EF88 +0800efb0 link_rfu.s sub_800EFB0 +0800f014 link_rfu.s sub_800F014 +0800f048 link_rfu.s sub_800F048 +0800f0b8 link_rfu.s IsRfuRecvQueueEmpty +0800f0f8 link_rfu.s sub_800F0F8 +0800f1e0 link_rfu.s sub_800F1E0 +0800f498 link_rfu.s sub_800F498 +0800f4f0 link_rfu.s sub_800F4F0 +0800f638 link_rfu.s sub_800F638 +0800f6fc link_rfu.s sub_800F6FC +0800f728 link_rfu.s sub_800F728 +0800f74c link_rfu.s sub_800F74C +0800f794 link_rfu.s rfu_func_080F97B8 +0800f7dc link_rfu.s sub_800F7DC +0800f7e4 link_rfu.s IsSendingKeysToRfu +0800f804 link_rfu.s sub_800F804 +0800f814 link_rfu.s Rfu_set_zero +0800f820 link_rfu.s sub_800F820 +0800f850 link_rfu.s sub_800F850 +0800f86c link_rfu.s sub_800F86C +0800fc60 link_rfu.s sub_800FC60 +0800fc88 link_rfu.s sub_800FC88 +0800fcc4 link_rfu.s sub_800FCC4 +0800fcd8 link_rfu.s sub_800FCD8 +0800fd14 link_rfu.s sub_800FD14 +0800fe50 link_rfu.s sub_800FE50 +0800fe84 link_rfu.s sub_800FE84 +0800ff4c link_rfu.s rfufunc_80F9F44 +0800ffb0 link_rfu.s sub_800FFB0 +08010028 link_rfu.s rfufunc_80FA020 +08010100 link_rfu.s sub_8010100 +0801011c link_rfu.s sub_801011C +08010148 link_rfu.s sub_8010148 +08010168 link_rfu.s sub_8010168 +08010198 link_rfu.s LinkRfu_FatalError +080101cc link_rfu.s sub_80101CC +0801022c link_rfu.s sub_801022C +08010264 link_rfu.s sub_8010264 +08010294 link_rfu.s task_add_05_task_del_08FA224_when_no_RfuFunc +080102b8 link_rfu.s sub_80102B8 +08010358 link_rfu.s sub_8010358 +08010390 link_rfu.s sub_8010390 +08010434 link_rfu.s sub_8010434 +08010454 link_rfu.s sub_8010454 +0801048c link_rfu.s sub_801048C +080104b0 link_rfu.s sub_80104B0 +080104d0 link_rfu.s rfu_get_multiplayer_id +080104f4 link_rfu.s sub_80104F4 +08010500 link_rfu.s sub_8010500 +08010528 link_rfu.s sub_8010528 +08010540 link_rfu.s sub_8010540 +080105ec link_rfu.s sub_80105EC +0801064c link_rfu.s sub_801064C +08010688 link_rfu.s sub_8010688 +080106d4 link_rfu.s sub_80106D4 +08010714 link_rfu.s sub_8010714 +08010750 link_rfu.s sub_8010750 +080107a0 link_rfu.s sub_80107A0 +0801084c link_rfu.s sub_801084C +080109e8 link_rfu.s sub_80109E8 +08010a14 link_rfu.s sub_8010A14 +08010a70 link_rfu.s sub_8010A70 +08010aac link_rfu.s sub_8010AAC +08010d0c link_rfu.s sub_8010D0C +08010db4 link_rfu.s sub_8010DB4 +08010ea0 link_rfu.s rfu_REQ_recvData_then_sendData +08010ec0 link_rfu.s sub_8010EC0 +08010f1c link_rfu.s sub_8010F1C +08010f48 link_rfu.s sub_8010F48 +08010f60 link_rfu.s sub_8010F60 +08010f84 link_rfu.s sub_8010F84 +08010fa0 link_rfu.s sub_8010FA0 +08010fcc link_rfu.s sub_8010FCC +0801100c link_rfu.s sub_801100C +0801103c link_rfu.s sub_801103C +08011068 link_rfu.s sub_8011068 +08011090 link_rfu.s sub_8011090 +080110b8 link_rfu.s sub_80110B8 +08011170 link_rfu.s sub_8011170 +080111a0 link_rfu.s sub_80111A0 +080111b0 link_rfu.s sub_80111B0 +080111dc link_rfu.s sub_80111DC +080111fc link_rfu.s sub_80111FC +0801120c link_rfu.s sub_801120C +08011404 link_rfu.s sub_8011404 +080115ec link_rfu.s sub_80115EC +08011628 link_rfu.s sub_8011628 +08011674 link_rfu.s sub_8011674 +08011a50 link_rfu.s sub_8011A50 +08011a64 link_rfu.s sub_8011A64 +08011a74 link_rfu.s sub_8011A74 +08011a80 link_rfu.s sub_8011A80 +08011a9c link_rfu.s sub_8011A9C +08011ab0 link_rfu.s Rfu_IsMaster +08011abc link_rfu.s RfuVSync +08011ac8 link_rfu.s sub_8011AC8 +08011ae8 link_rfu.s sub_8011AE8 +08011afc link_rfu.s sub_8011AFC +08011b90 link_rfu.s sub_8011B90 +08011ba4 link_rfu.s sub_8011BA4 +08011bd0 link_rfu.s sub_8011BD0 +08011bf8 link_rfu.s sub_8011BF8 +08011c10 link_rfu.s sub_8011C10 +08011c5c link_rfu.s sub_8011C5C +08011c84 link_rfu.s sub_8011C84 +08011cd8 link_rfu.s ReadU16 +08011ce4 link_rfu.s sub_8011CE4 +08011d6c link_rfu.s sub_8011D6C +08011dc0 link_rfu.s sub_8011DC0 +08011de0 link_rfu.s sub_8011DE0 +08011e2c link_rfu.s sub_8011E2C +08011e94 link_rfu.s sub_8011E94 +08011ef4 link_rfu.s sub_8011EF4 +08011fc8 link_rfu.s sub_8011FC8 +0801200c link_rfu.s sub_801200C +0801209c link_rfu.s sub_801209C +08012188 link_rfu.s sub_8012188 +08012224 link_rfu.s sub_8012224 +08012240 link_rfu.s sub_8012240 +0801227c link_rfu.s sub_801227C +0801229c link_rfu.s sub_801229C +080124c0 link_rfu.s sub_80124C0 +080124d4 link_rfu.s GetRfuRecvQueueLength +080124e8 union_room.s nullsub_89 +080124ec union_room.s sub_80124EC +080125bc union_room.s sub_80125BC +0801262c union_room.s sub_801262C +080126cc union_room.s sub_80126CC +0801273c union_room.s BerryBlenderLinkBecomeLeader +08012780 union_room.s sub_8012780 +08012f64 union_room.s sub_8012F64 +08012fc4 union_room.s sub_8012FC4 +08013078 union_room.s sub_8013078 +080130b4 union_room.s sub_80130B4 +08013160 union_room.s sub_8013160 +0801320c union_room.s sub_801320C +08013278 union_room.s sub_8013278 +080132d4 union_room.s sub_80132D4 +08013398 union_room.s sub_8013398 +080134a4 union_room.s BerryBlenderLinkJoinGroup +080134e8 union_room.s sub_80134E8 +08013b8c union_room.s sub_8013B8C +08013bd8 union_room.s sub_8013BD8 +08013c40 union_room.s sub_8013C40 +08013c7c union_room.s sub_8013C7C +08013d88 union_room.s sub_8013D88 +08013dbc union_room.s sub_8013DBC +08013df4 union_room.s sub_8013DF4 +08013e44 union_room.s sub_8013E44 +08013f60 union_room.s sub_8013F60 +08013f78 union_room.s sub_8013F78 +08013f90 union_room.s sub_8013F90 +080140e0 union_room.s sub_80140E0 +080141a4 union_room.s sub_80141A4 +08014210 union_room.s sub_8014210 +08014290 union_room.s sub_8014290 +08014304 union_room.s sub_8014304 +08014384 union_room.s sub_8014384 +080143e4 union_room.s sub_80143E4 +0801440c union_room.s sub_801440C +08014790 union_room.s sub_8014790 +080149c4 union_room.s sub_80149C4 +080149d8 union_room.s sub_80149D8 +08014a00 union_room.s MEvent_CreateTask_Leader +08014a40 union_room.s sub_8014A40 +08014efc union_room.s MEvent_CreateTask_CardOrNewsWithFriend +08014f48 union_room.s sub_8014F48 +080152a8 union_room.s MEvent_CreateTask_CardOrNewsOverWireless +080152f4 union_room.s sub_80152F4 +0801560c union_room.s UnionRoomSpecial +08015658 union_room.s ReadAsU16 +08015664 union_room.s sub_8015664 +0801568c union_room.s sub_801568C +080156b0 union_room.s sub_80156B0 +080156c8 union_room.s sub_80156C8 +080156e0 union_room.s sub_80156E0 +08016884 union_room.s var_800D_set_xB +0801689c union_room.s sub_801689C +080168dc union_room.s sub_80168DC +08016934 union_room.s sub_8016934 +0801697c union_room.s sub_801697C +08016ad4 union_room.s sp182_move_string +08016b00 union_room.s sub_8016B00 +08016ca0 union_room.s sub_8016CA0 +08016df0 union_room.s sub_8016DF0 +08016e24 union_room.s sub_8016E24 +08016f1c union_room.s sub_8016F1C +08016f44 union_room.s sub_8016F44 +08016fc0 union_room.s sub_8016FC0 +08016ff0 union_room.s sub_8016FF0 +08017020 union_room.s sub_8017020 +0801704c union_room.s sub_801704C +08017064 union_room.s PrintOnTextbox +080170b8 union_room.s sub_80170B8 +08017118 union_room.s sub_8017118 +08017168 union_room.s sub_8017168 +08017178 union_room.s sub_8017178 +080172a0 union_room.s sub_80172A0 +080173b0 union_room.s sub_80173B0 +080173d4 union_room.s sub_80173D4 +080173e0 union_room.s sub_80173E0 +08017580 union_room.s sub_8017580 +080175ec union_room.s sub_80175EC +08017630 union_room.s sub_8017630 +08017678 union_room.s sub_8017678 +080176e4 union_room.s sub_80176E4 +08017734 union_room.s sub_8017734 +080177b8 union_room.s sub_80177B8 +080178a0 union_room.s sub_80178A0 +08017940 union_room.s sub_8017940 +08017984 union_room.s sub_8017984 +080179ac union_room.s sub_80179AC +080179d4 union_room.s sub_80179D4 +08017b38 union_room.s nullsub_14 +08017b3c union_room.s sub_8017B3C +08017be8 union_room.s sub_8017BE8 +08017cb0 union_room.s sub_8017CB0 +08017cf8 union_room.s sub_8017CF8 +08017d04 union_room.s sub_8017D04 +08017d9c union_room.s sub_8017D9C +08017e00 union_room.s sub_8017E00 +08017ea0 union_room.s sub_8017EA0 +08017fd8 union_room.s sub_8017FD8 +08018004 union_room.s InUnionRoom +08018024 union_room.s sub_8018024 +0801807c union_room.s sub_801807C +08018090 union_room.s sub_8018090 +080180a0 union_room.s sub_80180A0 +080180e8 union_room.s sub_80180E8 +08018120 union_room.s sub_8018120 +0801818c union_room.s sub_801818C +080181cc union_room.s sub_80181CC +080181dc union_room.s sub_80181DC +08018220 union_room.s sub_8018220 +08018404 union_room.s sub_8018404 +08018424 mystery_gift.s vblankcb_mystery_gift_e_reader_run +08018438 mystery_gift.s c2_mystery_gift_e_reader_run +08018450 mystery_gift.s HandleMysteryGiftOrEReaderSetup +08018650 mystery_gift.s c2_mystery_gift +0801867c mystery_gift.s c2_ereader +080186a4 mystery_gift.s MainCB_FreeAllBuffersAndReturnToInitTitleScreen +080186ec mystery_gift.s PrintMysteryGiftOrEReaderTopMenu +08018784 mystery_gift.s MG_DrawTextBorder +08018798 mystery_gift.s MG_DrawCheckerboardPattern +08018838 mystery_gift.s ClearScreenInBg0 +08018884 mystery_gift.s AddTextPrinterToWindow1 +080188dc mystery_gift.s ClearTextWindow +080188f8 mystery_gift.s MG_PrintTextOnWindow1AndWaitButton +0801898c mystery_gift.s HideDownArrow +080189b4 mystery_gift.s ShowDownArrow +080189dc mystery_gift.s unref_HideDownArrowAndWaitButton +08018a1c mystery_gift.s PrintStringAndWait2Seconds +08018a50 mystery_gift.s MysteryGift_HandleThreeOptionMenu +08018b08 mystery_gift.s mevent_message_print_and_prompt_yes_no +08018c4c mystery_gift.s HandleMysteryGiftListMenu +08018d98 mystery_gift.s ValidateCardOrNews +08018dac mystery_gift.s HandleLoadWonderCardOrNews +08018e08 mystery_gift.s DestroyNewsOrCard +08018e20 mystery_gift.s TearDownCardOrNews_ReturnToTopMenu +08018e50 mystery_gift.s mevent_message_prompt_discard +08018e74 mystery_gift.s mevent_message_was_thrown_away +08018e94 mystery_gift.s mevent_save_game +08018f0c mystery_gift.s mevent_message +0801903c mystery_gift.s PrintMGSuccessMessage +080190a4 mystery_gift.s mevent_message_stamp_card_etc_send_status +08019174 mystery_gift.s PrintMGSendStatus +080191ac mystery_gift.s task_add_00_mystery_gift +080191f4 mystery_gift.s task00_mystery_gift +08019930 mystery_gift.s GetMysteryGiftBaseBlock +08019938 mystery_gift.s bgid_upload_textbox_1 +08019958 union_room_player_avatar.s is_walking_or_running +08019978 union_room_player_avatar.s sub_8019978 +08019990 union_room_player_avatar.s sub_8019990 +080199e0 union_room_player_avatar.s sub_80199E0 +08019a30 union_room_player_avatar.s IsUnionRoomPlayerHidden +08019a4c union_room_player_avatar.s HideUnionRoomPlayer +08019a64 union_room_player_avatar.s ShowUnionRoomPlayer +08019a7c union_room_player_avatar.s SetUnionRoomPlayerGfx +08019a98 union_room_player_avatar.s CreateUnionRoomPlayerEventObject +08019ab8 union_room_player_avatar.s RemoveUnionRoomPlayerEventObject +08019ad8 union_room_player_avatar.s SetUnionRoomPlayerEnterExitMovement +08019b3c union_room_player_avatar.s sub_8019B3C +08019ba8 union_room_player_avatar.s sub_8019BA8 +08019bdc union_room_player_avatar.s sub_8019BDC +08019c38 union_room_player_avatar.s sub_8019C38 +08019cf0 union_room_player_avatar.s sub_8019CF0 +08019d20 union_room_player_avatar.s sub_8019D20 +08019d44 union_room_player_avatar.s sub_8019D44 +08019dd0 union_room_player_avatar.s sub_8019DD0 +08019df4 union_room_player_avatar.s sub_8019DF4 +08019e20 union_room_player_avatar.s sub_8019E20 +08019e3c union_room_player_avatar.s sub_8019E3C +08019e70 union_room_player_avatar.s sub_8019E70 +08019f04 union_room_player_avatar.s sub_8019F04 +08019f2c union_room_player_avatar.s sub_8019F2C +08019f64 union_room_player_avatar.s sub_8019F64 +08019f8c union_room_player_avatar.s sub_8019F8C +08019fa4 union_room_player_avatar.s sub_8019FA4 +0801a02c union_room_player_avatar.s sub_801A02C +0801a064 union_room_player_avatar.s sub_801A064 +0801a16c union_room_player_avatar.s sub_801A16C +0801a214 union_room_player_avatar.s sub_801A214 +0801a234 union_room_player_avatar.s sub_801A234 +0801a274 union_room_player_avatar.s sub_801A274 +0801a284 union_room_player_avatar.s sub_801A284 +0801a2a8 union_room_player_avatar.s sub_801A2A8 +0801a3b0 union_room_player_avatar.s sub_801A3B0 +0801a3d0 union_room_player_avatar.s sub_801A3D0 +0801a3f4 union_room_battle.s sub_801A3F4 +0801a418 union_room_battle.s sub_801A418 +0801a42c union_room_battle.s sub_801A42C +0801a43c union_room_battle.s sub_801A43C +0801a584 union_room_battle.s sub_801A584 +0801a5bc union_room_battle.s sub_801A5BC +0801a600 union_room_battle.s sub_801A600 +0801a6c0 union_room_battle.s sub_801A6C0 +0801a8b0 union_room_battle.s sub_801A8B0 +0801a960 union_room_battle.s sub_801A960 +0801aa08 union_room_battle.s sub_801AA08 +0801aa30 union_room_battle.s sub_801AA30 +0801aad4 union_room_battle.s sub_801AAD4 +0801ab68 union_room_battle.s sub_801AB68 +0801abdc union_room_battle.s sub_801ABDC +0801ac40 union_room_battle.s sub_801AC40 +0801ac54 union_room_battle.s sub_801AC54 +0801afd8 mevent2.s sub_801AFD8 +0801b00c mevent2.s GetSavedWonderNews +0801b020 mevent2.s GetSavedWonderCard +0801b034 mevent2.s sav1_get_mevent_buffer_2 +0801b044 mevent2.s sub_801B044 +0801b058 mevent2.s sub_801B058 +0801b06c mevent2.s DestroyWonderNews +0801b078 mevent2.s sub_801B078 +0801b0cc mevent2.s ValidateReceivedWonderNews +0801b114 mevent2.s sub_801B114 +0801b128 mevent2.s WonderNews_Test_Unk_02 +0801b14c mevent2.s s_DestroyWonderNews +0801b180 mevent2.s sub_801B180 +0801b1a4 mevent2.s sub_801B1A4 +0801b1e8 mevent2.s DestroyWonderCard +0801b21c mevent2.s sub_801B21C +0801b27c mevent2.s ValidateReceivedWonderCard +0801b2cc mevent2.s sub_801B2CC +0801b308 mevent2.s WonderCard_Test_Unk_08_6 +0801b330 mevent2.s sub_801B330 +0801b368 mevent2.s sub_801B368 +0801b39c mevent2.s GetWonderCardFlagID +0801b3c0 mevent2.s WonderCard_ResetInternalReceivedFlag +0801b3d8 mevent2.s IsWonderCardFlagIDInValidRange +0801b3f8 mevent2.s CheckReceivedGiftFromWonderCard +0801b438 mevent2.s sub_801B438 +0801b460 mevent2.s sub_801B460 +0801b4a4 mevent2.s sub_801B4A4 +0801b4cc mevent2.s sub_801B4CC +0801b508 mevent2.s sub_801B508 +0801b580 mevent2.s sub_801B580 +0801b6a0 mevent2.s sub_801B6A0 +0801b6ec mevent2.s sub_801B6EC +0801b708 mevent2.s sub_801B708 +0801b748 mevent2.s MEventStruct_Unk1442CC_CompareField_unk_16 +0801b770 mevent2.s sub_801B770 +0801b784 mevent2.s MEventStruct_Unk1442CC_GetValueNFrom_unk_20 +0801b7d8 mevent2.s sub_801B7D8 +0801b860 mevent2.s mevent_081445C0 +0801b940 mevent2.s sub_801B940 +0801b94c mevent2.s sub_801B94C +0801b990 mevent2.s sub_801B990 +0801b9f8 mevent2.s sub_801B9F8 +0801ba24 mevent2.s sub_801BA24 +0801ba8c mevent2.s sub_801BA8C +0801baac mevent_801BAAC.s InitWonderCardResources +0801bb48 mevent_801BAAC.s DestroyWonderCardResources +0801bb74 mevent_801BAAC.s FadeToWonderCardMenu +0801bda4 mevent_801BAAC.s FadeOutFromWonderCard +0801bef8 mevent_801BAAC.s sub_801BEF8 +0801c178 mevent_801BAAC.s sub_801C178 +0801c4c0 mevent_801BAAC.s sub_801C4C0 +0801c61c mevent_801BAAC.s sub_801C61C +0801c6c8 mevent_801BAAC.s InitWonderNewsResources +0801c72c mevent_801BAAC.s DestroyWonderNewsResources +0801c758 mevent_801BAAC.s FadeToWonderNewsMenu +0801ca50 mevent_801BAAC.s FadeOutFromWonderNews +0801cc38 mevent_801BAAC.s MENews_RemoveScrollIndicatorArrowPair +0801cc80 mevent_801BAAC.s MENews_AddScrollIndicatorArrowPair +0801ccd0 mevent_801BAAC.s MENews_GetInput +0801cdcc mevent_801BAAC.s sub_801CDCC +0801ce7c mevent_801BAAC.s sub_801CE7C +0801cfa4 mevent_801BAAC.s sub_801CFA4 +0801d07c mevent_server.s mevent_srv_init_wnews +0801d0a0 mevent_server.s mevent_srv_new_wcard +0801d0c4 mevent_server.s mevent_srv_common_do_exec +0801d100 mevent_server.s mevent_srv_init_common +0801d158 mevent_server.s mevent_srv_free_resources +0801d17c mevent_server.s mevent_srv_common_init_send +0801d188 mevent_server.s mevent_first_if_not_null_else_second +0801d194 mevent_server.s mevent_compare_pointers +0801d1ac mevent_server.s common_mainseq_0 +0801d1b4 mevent_server.s common_mainseq_1 +0801d1b8 mevent_server.s common_mainseq_2 +0801d1d4 mevent_server.s common_mainseq_3 +0801d1f0 mevent_server.s common_mainseq_4 +0801d46c mevent_server.s mevent_srv_exec_common +0801d484 mevent_client.s mevent_client_do_init +0801d4a8 mevent_client.s mevent_client_do_exec +0801d4e4 mevent_client.s mevent_client_inc_flag +0801d4f4 mevent_client.s mevent_client_get_buffer +0801d500 mevent_client.s mevent_client_set_param +0801d50c mevent_client.s mevent_client_init +0801d55c mevent_client.s mevent_client_free_resources +0801d580 mevent_client.s mevent_client_jmp_buffer +0801d59c mevent_client.s mevent_client_send_word +0801d5d0 mevent_client.s mainseq_0 +0801d5f8 mevent_client.s mainseq_1 +0801d5fc mevent_client.s mainseq_2 +0801d61c mevent_client.s mainseq_3 +0801d63c mevent_client.s mainseq_4 +0801d810 mevent_client.s mainseq_5 +0801d828 mevent_client.s mainseq_6 +0801d860 mevent_client.s mainseq_7 +0801d894 mevent_client.s mevent_client_exec +0801d8c0 mevent_server_helpers.s mevent_srv_sub_recv +0801d8cc mevent_server_helpers.s mevent_srv_sub_send +0801d8d8 mevent_server_helpers.s mevent_srv_sub_init +0801d904 mevent_server_helpers.s mevent_srv_sub_init_send +0801d928 mevent_server_helpers.s mevent_srv_sub_init_recv +0801d938 mevent_server_helpers.s mevent_recv_block +0801d954 mevent_server_helpers.s mevent_has_received +0801d978 mevent_server_helpers.s mevent_reset_recv +0801d988 mevent_server_helpers.s mevent_receive_func +0801da5c mevent_server_helpers.s mevent_send_func +0801db68 mevent_news.s GenerateRandomNews +0801dbc0 mevent_news.s sub_801DBC0 +0801dbdc mevent_news.s sub_801DBDC +0801dc20 mevent_news.s sub_801DC20 +0801dcac mevent_news.s sub_801DCAC +0801dccc mevent_news.s sub_801DCCC +0801dcd8 mevent_news.s sub_801DCD8 +0801dd10 mevent_news.s sub_801DD10 +0801dd44 mevent_news.s sub_801DD44 +0801dd98 union_room_chat.s sub_801DD98 +0801ddd0 union_room_chat.s sub_801DDD0 +0801de30 union_room_chat.s sub_801DE30 +0801de54 union_room_chat.s c2_081284E0 +0801df20 union_room_chat.s sub_801DF20 +0801df38 union_room_chat.s sub_801DF38 +0801df54 union_room_chat.s sub_801DF54 +0801dfac union_room_chat.s sub_801DFAC +0801e030 union_room_chat.s sub_801E030 +0801e120 union_room_chat.s sub_801E120 +0801e240 union_room_chat.s sub_801E240 +0801e460 union_room_chat.s sub_801E460 +0801e5c4 union_room_chat.s sub_801E5C4 +0801e668 union_room_chat.s sub_801E668 +0801e764 union_room_chat.s sub_801E764 +0801e838 union_room_chat.s sub_801E838 +0801e978 union_room_chat.s sub_801E978 +0801ebd4 union_room_chat.s sub_801EBD4 +0801ebe4 union_room_chat.s sub_801EBE4 +0801ec94 union_room_chat.s sub_801EC94 +0801ed68 union_room_chat.s sub_801ED68 +0801ed94 union_room_chat.s sub_801ED94 +0801edc4 union_room_chat.s sub_801EDC4 +0801ede0 union_room_chat.s sub_801EDE0 +0801ee10 union_room_chat.s sub_801EE10 +0801ee2c union_room_chat.s sub_801EE2C +0801ee6c union_room_chat.s sub_801EE6C +0801ee84 union_room_chat.s sub_801EE84 +0801eea8 union_room_chat.s sub_801EEA8 +0801eed8 union_room_chat.s sub_801EED8 +0801ef1c union_room_chat.s sub_801EF1C +0801ef24 union_room_chat.s sub_801EF24 +0801ef4c union_room_chat.s sub_801EF4C +0801ef7c union_room_chat.s sub_801EF7C +0801efa8 union_room_chat.s sub_801EFA8 +0801efd0 union_room_chat.s sub_801EFD0 +0801eff8 union_room_chat.s sub_801EFF8 +0801f0b0 union_room_chat.s sub_801F0B0 +0801f0bc union_room_chat.s sub_801F0BC +0801f0d0 union_room_chat.s sub_801F0D0 +0801f0dc union_room_chat.s sub_801F0DC +0801f0ec union_room_chat.s sub_801F0EC +0801f114 union_room_chat.s sub_801F114 +0801f144 union_room_chat.s sub_801F144 +0801f180 union_room_chat.s sub_801F180 +0801f18c union_room_chat.s sub_801F18C +0801f198 union_room_chat.s sub_801F198 +0801f1a4 union_room_chat.s sub_801F1A4 +0801f1d0 union_room_chat.s sub_801F1D0 +0801f1dc union_room_chat.s copy_strings_to_sav1 +0801f2b4 union_room_chat.s sub_801F2B4 +0801f4d0 union_room_chat.s sub_801F4D0 +0801f534 union_room_chat.s sub_801F534 +0801f544 union_room_chat.s sub_801F544 +0801f574 union_room_chat.s sub_801F574 +0801f580 union_room_chat.s sub_801F580 +0801f5b8 union_room_chat.s sub_801F5B8 +0801f5ec union_room_chat.s sub_801F5EC +0801f644 union_room_chat.s sub_801F644 +0801f658 union_room_chat.s sub_801F658 +0801f6f8 union_room_chat.s sub_801F6F8 +0801f730 union_room_chat.s sub_801F730 +0801f768 union_room_chat.s sub_801F768 +0801f7d4 union_room_chat.s sub_801F7D4 +0801f7e0 union_room_chat.s sub_801F7E0 +0801f82c union_room_chat.s sub_801F82C +0801f870 union_room_chat.s sub_801F870 +0801f8dc union_room_chat.s sub_801F8DC +0801f984 union_room_chat.s sub_801F984 +0801fa2c union_room_chat.s sub_801FA2C +0801fa68 union_room_chat.s sub_801FA68 +0801fb44 union_room_chat.s sub_801FB44 +0801fb70 union_room_chat.s sub_801FB70 +0801fbb4 union_room_chat.s sub_801FBB4 +0801fbf8 union_room_chat.s sub_801FBF8 +0801fc4c union_room_chat.s sub_801FC4C +0801fc9c union_room_chat.s sub_801FC9C +0801fcec union_room_chat.s sub_801FCEC +0801fd30 union_room_chat.s sub_801FD30 +0801fd88 union_room_chat.s sub_801FD88 +0801fdd8 union_room_chat.s sub_801FDD8 +0801fddc union_room_chat.s sub_801FDDC +0801febc union_room_chat.s sub_801FEBC +0801fee4 union_room_chat.s sub_801FEE4 +0801ff08 union_room_chat.s sub_801FF08 +0801ff18 union_room_chat.s sub_801FF18 +08020094 union_room_chat.s sub_8020094 +080200c8 union_room_chat.s sub_80200C8 +080200ec union_room_chat.s sub_80200EC +08020118 union_room_chat.s sub_8020118 +080201a4 union_room_chat.s sub_80201A4 +08020320 union_room_chat.s sub_8020320 +08020368 union_room_chat.s sub_8020368 +080203b0 union_room_chat.s sub_80203B0 +0802040c union_room_chat.s sub_802040C +08020420 union_room_chat.s sub_8020420 +08020480 union_room_chat.s sub_8020480 +08020538 union_room_chat.s sub_8020538 +08020584 union_room_chat.s sub_8020584 +080205b4 union_room_chat.s sub_80205B4 +08020604 union_room_chat.s sub_8020604 +08020680 union_room_chat.s sub_8020680 +080206a4 union_room_chat.s sub_80206A4 +080206d0 union_room_chat.s sub_80206D0 +080206e8 union_room_chat.s sub_80206E8 +08020740 union_room_chat.s sub_8020740 +08020770 union_room_chat.s sub_8020770 +080207c0 union_room_chat.s sub_80207C0 +08020818 union_room_chat.s sub_8020818 +08020890 union_room_chat.s sub_8020890 +080208d0 union_room_chat.s sub_80208D0 +080208e8 union_room_chat.s sub_80208E8 +0802091c union_room_chat.s sub_802091C +0802093c union_room_chat.s sub_802093C +080209ac union_room_chat.s sub_80209AC +080209e0 union_room_chat.s sub_80209E0 +08020a1c union_room_chat.s sub_8020A1C +08020a68 union_room_chat.s sub_8020A68 +08020abc union_room_chat.s sub_8020ABC +08020af4 union_room_chat.s sub_8020AF4 +08020b20 union_room_chat.s sub_8020B20 +08020b80 union_room_chat.s sub_8020B80 +08020c00 berry_crush.s sub_8020C00 +08020c0c berry_crush.s sub_8020C0C +08020c70 berry_crush.s sub_8020C70 +08020d8c berry_crush.s sub_8020D8C +08020e1c berry_crush.s sub_8020E1C +08020e3c berry_crush.s sub_8020E3C +08020e4c berry_crush.s sub_8020E4C +08020e58 berry_crush.s sub_8020E58 +08020f74 berry_crush.s sub_8020F74 +08020f88 berry_crush.s sub_8020F88 +08020fa0 berry_crush.s sub_8020FA0 +08020fc4 berry_crush.s sub_8020FC4 +0802104c berry_crush.s sub_802104C +0802130c berry_crush.s sub_802130C +08021450 berry_crush.s sub_8021450 +08021488 berry_crush.s sub_8021488 +080214a8 berry_crush.s sub_80214A8 +08021608 berry_crush.s sub_8021608 +080216a8 berry_crush.s sub_80216A8 +080216e0 berry_crush.s sub_80216E0 +080218d4 berry_crush.s sub_80218D4 +08021944 berry_crush.s sub_8021944 +080219c8 berry_crush.s sub_80219C8 +08021a28 berry_crush.s sub_8021A28 +08021d34 berry_crush.s sub_8021D34 +08022070 berry_crush.s sub_8022070 +0802222c berry_crush.s sub_802222C +08022250 berry_crush.s sub_8022250 +080224d0 berry_crush.s sub_80224D0 +08022524 berry_crush.s sub_8022524 +08022554 berry_crush.s sub_8022554 +08022588 berry_crush.s sub_8022588 +08022600 berry_crush.s sub_8022600 +080226d0 berry_crush.s sub_80226D0 +08022730 berry_crush.s sub_8022730 +08022960 berry_crush.s sub_8022960 +08022a20 berry_crush.s sub_8022A20 +08022a4c berry_crush.s sub_8022A4C +08022a94 berry_crush.s sub_8022A94 +08022b28 berry_crush.s sub_8022B28 +08022bec berry_crush.s sub_8022BEC +08022c58 berry_crush.s sub_8022C58 +08022cb0 berry_crush.s sub_8022CB0 +08022d14 berry_crush.s sub_8022D14 +08022e1c berry_crush.s sub_8022E1C +08022e3c berry_crush.s sub_8022E3C +08022e5c berry_crush.s sub_8022E5C +08022eac berry_crush.s sub_8022EAC +08022f04 berry_crush.s sub_8022F04 +08022f1c berry_crush.s sub_8022F1C +08023070 berry_crush.s sub_8023070 +080231b8 berry_crush.s sub_80231B8 +080232ec berry_crush.s sub_80232EC +0802339c berry_crush.s sub_802339C +08023558 berry_crush.s sub_8023558 +080236b8 berry_crush.s sub_80236B8 +0802385c berry_crush.s sub_802385C +080238f0 berry_crush.s sub_80238F0 +08023998 berry_crush.s sub_8023998 +08023a30 berry_crush.s sub_8023A30 +08023bc0 berry_crush.s sub_8023BC0 +08023cac berry_crush.s sub_8023CAC +08024048 berry_crush.s sub_8024048 +08024134 berry_crush.s sub_8024134 +08024228 berry_crush.s sub_8024228 +080242e0 berry_crush.s sub_80242E0 +080243bc berry_crush.s sub_80243BC +08024444 berry_crush.s sub_8024444 +08024508 berry_crush.s sub_8024508 +08024568 berry_crush.s sub_8024568 +08024578 berry_crush.s sub_8024578 +08024604 berry_crush.s sub_8024604 +08024644 berry_crush.s sub_8024644 +08024668 berry_powder.s DecryptBerryPowder +0802467c berry_powder.s SetBerryPowder +08024690 berry_powder.s ApplyNewEncryptionKeyToBerryPowder +080246ac berry_powder.s HasEnoughBerryPowder_ +080246d4 berry_powder.s HasEnoughBerryPowder +08024700 berry_powder.s GiveBerryPowder +08024740 berry_powder.s TakeBerryPowder_ +0802477c berry_powder.s TakeBerryPowder +080247bc berry_powder.s GetBerryPowder +080247d4 berry_powder.s PrintBerryPowderAmount +0802482c berry_powder.s DrawPlayerPowderAmount +0802488c berry_powder.s PrintPlayerBerryPowderAmount +080248b0 berry_powder.s DisplayBerryPowderVendorMenu +08024918 berry_powder.s RemoveBerryPowderVendorMenu +0802493c dodrio_berry_picking.s sub_802493C +08024a1c dodrio_berry_picking.s sub_8024A1C +08024a30 dodrio_berry_picking.s sub_8024A30 +08024bc8 dodrio_berry_picking.s sub_8024BC8 +08024d4c dodrio_berry_picking.s sub_8024D4C +08024d84 dodrio_berry_picking.s sub_8024D84 +08024dbc dodrio_berry_picking.s sub_8024DBC +08024e00 dodrio_berry_picking.s sub_8024E00 +08024e38 dodrio_berry_picking.s sub_8024E38 +08024f10 dodrio_berry_picking.s sub_8024F10 +08024f38 dodrio_berry_picking.s sub_8024F38 +08024ffc dodrio_berry_picking.s sub_8024FFC +080250d4 dodrio_berry_picking.s sub_80250D4 +08025158 dodrio_berry_picking.s sub_8025158 +08025170 dodrio_berry_picking.s sub_8025170 +08025198 dodrio_berry_picking.s sub_8025198 +08025230 dodrio_berry_picking.s sub_8025230 +08025324 dodrio_berry_picking.s sub_8025324 +08025470 dodrio_berry_picking.s sub_8025470 +08025644 dodrio_berry_picking.s sub_8025644 +080256ac dodrio_berry_picking.s sub_80256AC +08025758 dodrio_berry_picking.s sub_8025758 +0802589c dodrio_berry_picking.s sub_802589C +08025910 dodrio_berry_picking.s sub_8025910 +080259fc dodrio_berry_picking.s sub_80259FC +08025c0c dodrio_berry_picking.s sub_8025C0C +08025d04 dodrio_berry_picking.s sub_8025D04 +08025d50 dodrio_berry_picking.s sub_8025D50 +08025e0c dodrio_berry_picking.s sub_8025E0C +08025ed8 dodrio_berry_picking.s sub_8025ED8 +08025f48 dodrio_berry_picking.s sub_8025F48 +08026044 dodrio_berry_picking.s sub_8026044 +080261cc dodrio_berry_picking.s sub_80261CC +080261e4 dodrio_berry_picking.s sub_80261E4 +080261f8 dodrio_berry_picking.s sub_80261F8 +0802620c dodrio_berry_picking.s sub_802620C +0802621c dodrio_berry_picking.s sub_802621C +08026240 dodrio_berry_picking.s sub_8026240 +08026264 dodrio_berry_picking.s sub_8026264 +080262c0 dodrio_berry_picking.s sub_80262C0 +08026324 dodrio_berry_picking.s sub_8026324 +08026634 dodrio_berry_picking.s sub_8026634 +0802671c dodrio_berry_picking.s sub_802671C +08026988 dodrio_berry_picking.s sub_8026988 +08026a88 dodrio_berry_picking.s sub_8026A88 +08026ac8 dodrio_berry_picking.s sub_8026AC8 +08026af4 dodrio_berry_picking.s sub_8026AF4 +08026b28 dodrio_berry_picking.s sub_8026B28 +08026b5c dodrio_berry_picking.s sub_8026B5C +08026bb8 dodrio_berry_picking.s sub_8026BB8 +08026c28 dodrio_berry_picking.s sub_8026C28 +08026c50 dodrio_berry_picking.s sub_8026C50 +08026c90 dodrio_berry_picking.s sub_8026C90 +08026d1c dodrio_berry_picking.s sub_8026D1C +08026d8c dodrio_berry_picking.s sub_8026D8C +08026db0 dodrio_berry_picking.s sub_8026DB0 +08026e70 dodrio_berry_picking.s sub_8026E70 +08026eec dodrio_berry_picking.s sub_8026EEC +08026f1c dodrio_berry_picking.s sub_8026F1C +08027234 dodrio_berry_picking.s sub_8027234 +080272a4 dodrio_berry_picking.s sub_80272A4 +080272e8 dodrio_berry_picking.s sub_80272E8 +080273f0 dodrio_berry_picking.s sub_80273F0 +0802745c dodrio_berry_picking.s sub_802745C +0802749c dodrio_berry_picking.s sub_802749C +08027518 dodrio_berry_picking.s sub_8027518 +08027554 dodrio_berry_picking.s sub_8027554 +08027608 dodrio_berry_picking.s sub_8027608 +0802762c dodrio_berry_picking.s sub_802762C +08027650 dodrio_berry_picking.s sub_8027650 +08027660 dodrio_berry_picking.s sub_8027660 +080276a0 dodrio_berry_picking.s sub_80276A0 +080276c0 dodrio_berry_picking.s sub_80276C0 +08027748 dodrio_berry_picking.s sub_8027748 +0802778c dodrio_berry_picking.s sub_802778C +080277d0 dodrio_berry_picking.s sub_80277D0 +0802784c dodrio_berry_picking.s sub_802784C +0802793c dodrio_berry_picking.s sub_802793C +0802795c dodrio_berry_picking.s sub_802795C +080279c8 dodrio_berry_picking.s sub_80279C8 +08027a28 dodrio_berry_picking.s IncrementWithLimit +08027a38 dodrio_berry_picking.s Min +08027a48 dodrio_berry_picking.s sub_8027A48 +08027a5c dodrio_berry_picking.s sub_8027A5C +08027aac dodrio_berry_picking.s sub_8027AAC +08027acc dodrio_berry_picking.s sub_8027ACC +08027bec dodrio_berry_picking.s sub_8027BEC +08027d20 dodrio_berry_picking.s sub_8027D20 +08027d38 dodrio_berry_picking.s sub_8027D38 +08027dd0 dodrio_berry_picking.s sub_8027DD0 +08027dfc dodrio_berry_picking.s sub_8027DFC +08027e30 dodrio_berry_picking.s sub_8027E30 +08028164 dodrio_berry_picking.s sub_8028164 +080282ec dodrio_berry_picking.s sub_80282EC +08028318 dodrio_berry_picking.s sub_8028318 +08028350 dodrio_berry_picking.s sub_8028350 +08028374 dodrio_berry_picking.s sub_8028374 +080283a8 dodrio_berry_picking.s sub_80283A8 +08028408 dodrio_berry_picking.s sub_8028408 +080284a8 dodrio_berry_picking.s sub_80284A8 +080284cc dodrio_berry_picking.s sub_80284CC +08028504 dodrio_berry_picking.s sub_8028504 +0802853c dodrio_berry_picking.s sub_802853C +080285ac dodrio_berry_picking.s sub_80285AC +08028614 dodrio_berry_picking.s sub_8028614 +08028654 dodrio_berry_picking.s sub_8028654 +0802868c dodrio_berry_picking.s sub_802868C +080286b4 dodrio_berry_picking.s sub_80286B4 +080286e0 dodrio_berry_picking.s nullsub_15 +080286e4 dodrio_berry_picking.s sub_80286E4 +08028734 dodrio_berry_picking.s sub_8028734 +080287e4 dodrio_berry_picking.s sub_80287E4 +08028828 dodrio_berry_picking.s sub_8028828 +080288d4 dodrio_berry_picking.s sub_80288D4 +080289e8 dodrio_berry_picking.s sub_80289E8 +08028a34 dodrio_berry_picking.s sub_8028A34 +08028a88 dodrio_berry_picking.s sub_8028A88 +08028b80 dodrio_berry_picking.s sub_8028B80 +08028bf8 dodrio_berry_picking.s sub_8028BF8 +08028c30 dodrio_berry_picking.s sub_8028C30 +08028c7c dodrio_berry_picking.s sub_8028C7C +08028ca4 dodrio_berry_picking.s sub_8028CA4 +08028cd0 dodrio_berry_picking.s sub_8028CD0 +08028cf4 dodrio_berry_picking.s sub_8028CF4 +08028d44 dodrio_berry_picking.s sub_8028D44 +08028dfc dodrio_berry_picking.s sub_8028DFC +08028e4c dodrio_berry_picking.s sub_8028E4C +08028e84 dodrio_berry_picking.s sub_8028E84 +08028ec8 dodrio_berry_picking.s sub_8028EC8 +08028f14 dodrio_berry_picking.s sub_8028F14 +08028fcc dodrio_berry_picking.s sub_8028FCC +08028ff8 dodrio_berry_picking.s sub_8028FF8 +0802902c dodrio_berry_picking.s sub_802902C +0802903c dodrio_berry_picking.s sub_802903C +08029074 dodrio_berry_picking.s sub_8029074 +08029174 dodrio_berry_picking.s sub_8029174 +08029274 dodrio_berry_picking.s sub_8029274 +080292d4 dodrio_berry_picking.s sub_80292D4 +080292e0 dodrio_berry_picking.s sub_80292E0 +08029314 dodrio_berry_picking.s sub_8029314 +08029338 dodrio_berry_picking.s sub_8029338 +08029440 dodrio_berry_picking.s sub_8029440 +080296a8 dodrio_berry_picking.s sub_80296A8 +0802988c dodrio_berry_picking.s sub_802988C +0802a010 dodrio_berry_picking.s sub_802A010 +0802a380 dodrio_berry_picking.s sub_802A380 +0802a454 dodrio_berry_picking.s sub_802A454 +0802a534 dodrio_berry_picking.s sub_802A534 +0802a588 dodrio_berry_picking.s sub_802A588 +0802a6fc dodrio_berry_picking.s sub_802A6FC +0802a728 dodrio_berry_picking.s nullsub_16 +0802a72c dodrio_berry_picking.s sub_802A72C +0802a75c dodrio_berry_picking.s sub_802A75C +0802a770 dodrio_berry_picking.s sub_802A770 +0802a794 dodrio_berry_picking.s sub_802A794 +0802a7a8 dodrio_berry_picking.s sub_802A7A8 +0802a8e8 dodrio_berry_picking.s sub_802A8E8 +0802a9a8 pokemon_jump.s sub_802A9A8 +0802aa48 pokemon_jump.s sub_802AA48 +0802aa60 pokemon_jump.s sub_802AA60 +0802aa94 pokemon_jump.s sub_802AA94 +0802ab20 pokemon_jump.s sub_802AB20 +0802ab98 pokemon_jump.s sub_802AB98 +0802ac00 pokemon_jump.s sub_802AC00 +0802ac2c pokemon_jump.s sub_802AC2C +0802ac58 pokemon_jump.s sub_802AC58 +0802ac6c pokemon_jump.s sub_802AC6C +0802ac84 pokemon_jump.s sub_802AC84 +0802aca0 pokemon_jump.s sub_802ACA0 +0802ae14 pokemon_jump.s sub_802AE14 +0802ae50 pokemon_jump.s sub_802AE50 +0802aea4 pokemon_jump.s sub_802AEA4 +0802af80 pokemon_jump.s sub_802AF80 +0802b008 pokemon_jump.s sub_802B008 +0802b044 pokemon_jump.s sub_802B044 +0802b078 pokemon_jump.s sub_802B078 +0802b194 pokemon_jump.s sub_802B194 +0802b1fc pokemon_jump.s sub_802B1FC +0802b248 pokemon_jump.s sub_802B248 +0802b29c pokemon_jump.s sub_802B29C +0802b2d4 pokemon_jump.s sub_802B2D4 +0802b31c pokemon_jump.s sub_802B31C +0802b368 pokemon_jump.s sub_802B368 +0802b3b4 pokemon_jump.s sub_802B3B4 +0802b3d4 pokemon_jump.s sub_802B3D4 +0802b470 pokemon_jump.s sub_802B470 +0802b4cc pokemon_jump.s sub_802B4CC +0802b568 pokemon_jump.s sub_802B568 +0802b5c8 pokemon_jump.s sub_802B5C8 +0802b628 pokemon_jump.s sub_802B628 +0802b664 pokemon_jump.s sub_802B664 +0802b6b8 pokemon_jump.s sub_802B6B8 +0802b704 pokemon_jump.s sub_802B704 +0802b720 pokemon_jump.s sub_802B720 +0802b7e0 pokemon_jump.s sub_802B7E0 +0802b8cc pokemon_jump.s sub_802B8CC +0802b964 pokemon_jump.s sub_802B964 +0802ba58 pokemon_jump.s sub_802BA58 +0802bb84 pokemon_jump.s sub_802BB84 +0802bc60 pokemon_jump.s sub_802BC60 +0802bd30 pokemon_jump.s sub_802BD30 +0802bd84 pokemon_jump.s sub_802BD84 +0802be60 pokemon_jump.s sub_802BE60 +0802be80 pokemon_jump.s sub_802BE80 +0802bea0 pokemon_jump.s sub_802BEA0 +0802bee4 pokemon_jump.s sub_802BEE4 +0802bf48 pokemon_jump.s sub_802BF48 +0802bf7c pokemon_jump.s sub_802BF7C +0802c098 pokemon_jump.s sub_802C098 +0802c0b8 pokemon_jump.s sub_802C0B8 +0802c0dc pokemon_jump.s sub_802C0DC +0802c0e8 pokemon_jump.s sub_802C0E8 +0802c114 pokemon_jump.s sub_802C114 +0802c130 pokemon_jump.s sub_802C130 +0802c164 pokemon_jump.s sub_802C164 +0802c18c pokemon_jump.s sub_802C18C +0802c1bc pokemon_jump.s sub_802C1BC +0802c1dc pokemon_jump.s sub_802C1DC +0802c240 pokemon_jump.s sub_802C240 +0802c260 pokemon_jump.s sub_802C260 +0802c270 pokemon_jump.s sub_802C270 +0802c280 pokemon_jump.s sub_802C280 +0802c398 pokemon_jump.s sub_802C398 +0802c43c pokemon_jump.s sub_802C43C +0802c538 pokemon_jump.s sub_802C538 +0802c5dc pokemon_jump.s sub_802C5DC +0802c618 pokemon_jump.s sub_802C618 +0802c650 pokemon_jump.s sub_802C650 +0802c688 pokemon_jump.s sub_802C688 +0802c6b0 pokemon_jump.s sub_802C6B0 +0802c70c pokemon_jump.s sub_802C70C +0802c73c pokemon_jump.s sub_802C73C +0802c780 pokemon_jump.s sub_802C780 +0802c790 pokemon_jump.s sub_802C790 +0802c7a0 pokemon_jump.s sub_802C7A0 +0802c7bc pokemon_jump.s sub_802C7BC +0802c7e0 pokemon_jump.s sub_802C7E0 +0802c808 pokemon_jump.s sub_802C808 +0802c818 pokemon_jump.s sub_802C818 +0802c838 pokemon_jump.s sub_802C838 +0802c880 pokemon_jump.s sub_802C880 +0802c8ac pokemon_jump.s sub_802C8AC +0802c8bc pokemon_jump.s sub_802C8BC +0802c8c8 pokemon_jump.s sub_802C8C8 +0802c8e8 pokemon_jump.s sub_802C8E8 +0802c908 pokemon_jump.s sub_802C908 +0802c920 pokemon_jump.s sub_802C920 +0802c974 pokemon_jump.s sub_802C974 +0802c9bc pokemon_jump.s sub_802C9BC +0802c9d4 pokemon_jump.s sub_802C9D4 +0802cb14 pokemon_jump.s sub_802CB14 +0802cb7c pokemon_jump.s sub_802CB7C +0802cbf0 pokemon_jump.s sub_802CBF0 +0802cc18 pokemon_jump.s sub_802CC18 +0802cc40 pokemon_jump.s sub_802CC40 +0802cc88 pokemon_jump.s sub_802CC88 +0802ccb0 pokemon_jump.s sub_802CCB0 +0802cd08 pokemon_jump.s sub_802CD08 +0802cd3c pokemon_jump.s sub_802CD3C +0802cd70 pokemon_jump.s sub_802CD70 +0802cd98 pokemon_jump.s sub_802CD98 +0802cdd4 pokemon_jump.s sub_802CDD4 +0802ce48 pokemon_jump.s sub_802CE48 +0802ce9c pokemon_jump.s sub_802CE9C +0802cf50 pokemon_jump.s sub_802CF50 +0802d044 pokemon_jump.s sub_802D044 +0802d068 pokemon_jump.s sub_802D068 +0802d074 pokemon_jump.s sub_802D074 +0802d0ac pokemon_jump.s sub_802D0AC +0802d0bc pokemon_jump.s sub_802D0BC +0802d0c8 pokemon_jump.s sub_802D0C8 +0802d0f0 pokemon_jump.s sub_802D0F0 +0802d108 pokemon_jump.s sub_802D108 +0802d12c pokemon_jump.s sub_802D12C +0802d150 pokemon_jump.s sub_802D150 +0802d2e4 pokemon_jump.s sub_802D2E4 +0802d350 pokemon_jump.s sub_802D350 +0802d3bc pokemon_jump.s sub_802D3BC +0802d448 pokemon_jump.s sub_802D448 +0802d4f4 pokemon_jump.s sub_802D4F4 +0802d598 pokemon_jump.s sub_802D598 +0802d5e4 pokemon_jump.s sub_802D5E4 +0802d688 pokemon_jump.s sub_802D688 +0802d72c pokemon_jump.s sub_802D72C +0802d764 pokemon_jump.s sub_802D764 +0802d788 pokemon_jump.s sub_802D788 +0802d7e8 pokemon_jump.s sub_802D7E8 +0802d884 pokemon_jump.s sub_802D884 +0802d8fc pokemon_jump.s sub_802D8FC +0802d974 pokemon_jump.s sub_802D974 +0802da14 pokemon_jump.s sub_802DA14 +0802da44 pokemon_jump.s sub_802DA44 +0802da8c pokemon_jump.s sub_802DA8C +0802da9c pokemon_jump.s sub_802DA9C +0802db18 pokemon_jump.s sub_802DB18 +0802db8c pokemon_jump.s sub_802DB8C +0802dbf8 pokemon_jump.s sub_802DBF8 +0802dc80 pokemon_jump.s sub_802DC80 +0802dc9c pokemon_jump.s sub_802DC9C +0802dccc pokemon_jump.s sub_802DCCC +0802dd08 pokemon_jump.s sub_802DD08 +0802dd64 pokemon_jump.s sub_802DD64 +0802dd74 pokemon_jump.s sub_802DD74 +0802dd88 pokemon_jump.s sub_802DD88 +0802dda0 pokemon_jump.s sub_802DDA0 +0802ddb8 pokemon_jump.s sub_802DDB8 +0802ddcc pokemon_jump.s sub_802DDCC +0802dde0 pokemon_jump.s sub_802DDE0 +0802ddf4 pokemon_jump.s sub_802DDF4 +0802de08 pokemon_jump.s sub_802DE08 +0802de1c pokemon_jump.s sub_802DE1C +0802ded8 pokemon_jump.s sub_802DED8 +0802df70 pokemon_jump.s sub_802DF70 +0802dfd4 pokemon_jump.s sub_802DFD4 +0802e00c pokemon_jump.s sub_802E00C +0802e058 pokemon_jump.s sub_802E058 +0802e090 pokemon_jump.s sub_802E090 +0802e0ac pokemon_jump.s sub_802E0AC +0802e0d0 pokemon_jump.s sub_802E0D0 +0802e120 pokemon_jump.s sub_802E120 +0802e138 pokemon_jump.s sub_802E138 +0802e1bc pokemon_jump.s sub_802E1BC +0802e234 pokemon_jump.s sub_802E234 +0802e264 pokemon_jump.s sub_802E264 +0802e2d0 pokemon_jump.s sub_802E2D0 +0802e32c pokemon_jump.s sub_802E32C +0802e33c pokemon_jump.s ResetPokeJumpResults +0802e354 pokemon_jump.s sub_802E354 +0802e3a8 pokemon_jump.s sub_802E3A8 +0802e3c4 pokemon_jump.s sub_802E3C4 +0802e3e4 pokemon_jump.s sub_802E3E4 +0802e500 pokemon_jump.s sub_802E500 +0802e620 pokemon_jump.s TruncateToFirstWordOnly +0802e63c pokemon_jump.s sub_802E63C +0802e688 pokemon_jump.s sub_802E688 +0802e6bc pokemon_jump.s sub_802E6BC +0802e6d0 pokemon_jump.s sub_802E6D0 +0802e75c pokemon_jump.s sub_802E75C +0802e83c pokemon_jump.s sub_802E83C +0802e8c8 pokemon_jump.s sub_802E8C8 +0802e938 pokemon_jump.s sub_802E938 +0802ea50 pokemon_jump.s sub_802EA50 +0802eab0 pokemon_jump.s sub_802EAB0 +0802eb24 pokemon_jump.s sub_802EB24 +0802eb84 pokemon_jump.s sub_802EB84 +0802eb98 pokemon_jump.s sub_802EB98 +0802ec98 pokemon_jump.s sub_802EC98 +0802edcc pokemon_jump.s sub_802EDCC +0802ee30 pokemon_jump.s sub_802EE30 +0802ee5c pokemon_jump.s sub_802EE5C +0802ef50 pokemon_jump.s sub_802EF50 +0802efa8 pokemon_jump.s sub_802EFA8 +0802effc pokemon_jump.s sub_802EFFC +0802f0cc rtc.s RtcDisableInterrupts +0802f0e4 rtc.s RtcRestoreInterrupts +0802f0f8 rtc.s ConvertBcdToBinary +0802f120 rtc.s IsLeapYear +0802f154 rtc.s ConvertDateToDayCount +0802f1e0 rtc.s RtcGetDayCount +0802f21c rtc.s RtcInit +0802f27c rtc.s RtcGetErrorStatus +0802f288 rtc.s RtcGetInfo +0802f2b8 rtc.s RtcGetDateTime +0802f2d0 rtc.s RtcGetStatus +0802f2e8 rtc.s RtcGetRawInfo +0802f2fc rtc.s RtcCheckInfo +0802f3f8 rtc.s RtcReset +0802f40c rtc.s FormatDecimalTime +0802f444 rtc.s FormatHexTime +0802f47c rtc.s FormatHexRtcTime +0802f494 rtc.s FormatDecimalDate +0802f4cc rtc.s FormatHexDate +0802f504 rtc.s RtcCalcTimeDifference +0802f588 rtc.s RtcCalcLocalTime +0802f5b4 rtc.s RtcInitLocalTimeOffset +0802f5c8 rtc.s RtcCalcLocalTimeOffset +0802f5fc rtc.s CalcTimeDifference +0802f664 rtc.s RtcGetMinuteCount +0802f69c rtc.s RtcGetLocalDayCount +0802f6b0 main_menu.s CB2_MainMenu +0802f6c8 main_menu.s VBlankCB_MainMenu +0802f6dc main_menu.s CB2_InitMainMenu +0802f6e8 main_menu.s CB2_ReinitMainMenu +0802f6f4 main_menu.s InitMainMenu +0802f8d8 main_menu.s Task_MainMenuCheckSaveFile +0802fa5c main_menu.s Task_WaitForSaveFileErrorWindow +0802fab0 main_menu.s Task_MainMenuCheckBattery +0802fb50 main_menu.s Task_WaitForBatteryDryErrorWindow +0802fba4 main_menu.s Task_DisplayMainMenu +080300b0 main_menu.s Task_HighlightSelectedMainMenuItem +080300e0 main_menu.s HandleMainMenuInput +0803024c main_menu.s Task_HandleMainMenuInput +0803027c main_menu.s Task_HandleMainMenuAPressed +08030544 main_menu.s Task_HandleMainMenuBPressed +080305a4 main_menu.s Task_DisplayMainMenuInvalidActionError +08030698 main_menu.s HighlightSelectedMainMenuItem +080307b0 main_menu.s Task_NewGameBirchSpeech_Init +080308b0 main_menu.s Task_NewGameBirchSpeech_WaitToShowBirch +08030928 main_menu.s Task_NewGameBirchSpeech_WaitForSpriteFadeInWelcome +080309cc main_menu.s Task_NewGameBirchSpeech_ThisIsAPokemon +08030a2c main_menu.s Task_NewGameBirchSpeech_MainSpeech +08030a70 main_menu.s Task_NewGameBirchSpeechSub_InitPokeBall +08030b14 main_menu.s Task_NewGameBirchSpeechSub_WaitForLotad +08030bcc main_menu.s Task_NewGameBirchSpeech_AndYouAre +08030c18 main_menu.s Task_NewGameBirchSpeech_StartBirchLotadPlatformFade +08030c90 main_menu.s Task_NewGameBirchSpeech_SlidePlatformAway +08030cd4 main_menu.s Task_NewGameBirchSpeech_StartPlayerFadeIn +08030d84 main_menu.s Task_NewGameBirchSpeech_WaitForPlayerFadeIn +08030dc8 main_menu.s Task_NewGameBirchSpeech_BoyOrGirl +08030e08 main_menu.s Task_NewGameBirchSpeech_WaitToShowGenderMenu +08030e38 main_menu.s Task_NewGameBirchSpeech_ChooseGender +08030ed4 main_menu.s Task_NewGameBirchSpeech_SlideOutOldGenderSprite +08030f7c main_menu.s Task_NewGameBirchSpeech_SlideInNewGenderSprite +08030fd4 main_menu.s Task_NewGameBirchSpeech_WhatsYourName +08031014 main_menu.s Task_NewGameBirchSpeech_WaitForWhatsYourNameToPrint +08031040 main_menu.s Task_NewGameBirchSpeech_WaitPressBeforeNameChoice +08031090 main_menu.s Task_NewGameBirchSpeech_StartNamingScreen +08031104 main_menu.s Task_NewGameBirchSpeech_SoItsPlayerName +08031144 main_menu.s Task_NewGameBirchSpeech_CreateNameYesNo +08031188 main_menu.s Task_NewGameBirchSpeech_ProcessNameYesNoMenu +08031220 main_menu.s Task_NewGameBirchSpeech_SlidePlatformAway2 +08031258 main_menu.s Task_NewGameBirchSpeech_ReshowBirchLotad +0803133c main_menu.s Task_NewGameBirchSpeech_WaitForSpriteFadeInAndTextPrinter +080313e4 main_menu.s Task_NewGameBirchSpeech_AreYouReady +080314c4 main_menu.s Task_NewGameBirchSpeech_ShrinkPlayer +08031580 main_menu.s Task_NewGameBirchSpeech_WaitForPlayerShrink +080315bc main_menu.s Task_NewGameBirchSpeech_FadePlayerToWhite +08031630 main_menu.s Task_NewGameBirchSpeech_Cleanup +08031678 main_menu.s CB2_NewGameBirchSpeech_ReturnFromNamingScreen +080318d4 main_menu.s SpriteCB_Null +080318d8 main_menu.s SpriteCB_MovePlayerDownWhileShrinking +080318f4 main_menu.s NewGameBirchSpeech_CreateLotadSprite +0803192c main_menu.s AddBirchSpeechObjects +08031a5c main_menu.s Task_NewGameBirchSpeech_FadeOutTarget1InTarget2 +08031acc main_menu.s NewGameBirchSpeech_StartFadeOutTarget1InTarget2 +08031b3c main_menu.s Task_NewGameBirchSpeech_FadeInTarget1OutTarget2 +08031bac main_menu.s NewGameBirchSpeech_StartFadeInTarget1OutTarget2 +08031c1c main_menu.s Task_NewGameBirchSpeech_FadePlatformIn +08031c88 main_menu.s NewGameBirchSpeech_StartFadePlatformIn +08031cc8 main_menu.s Task_NewGameBirchSpeech_FadePlatformOut +08031d34 main_menu.s NewGameBirchSpeech_StartFadePlatformOut +08031d74 main_menu.s NewGameBirchSpeech_ShowGenderMenu +08031db4 main_menu.s NewGameBirchSpeech_ProcessGenderMenuInput +08031dc4 main_menu.s NewGameBirchSpeech_SetDefaultPlayerName +08031e18 main_menu.s CreateMainMenuErrorWindow +08031e7c main_menu.s MainMenu_FormatSavegameText +08031e94 main_menu.s MainMenu_FormatSavegamePlayer +08031ef8 main_menu.s MainMenu_FormatSavegameTime +08031f7c main_menu.s MainMenu_FormatSavegamePokedex +08032014 main_menu.s MainMenu_FormatSavegameBadges +080320a4 main_menu.s LoadMainMenuWindowFrameTiles +080320ec main_menu.s DrawMainMenuWindowBorder +08032250 main_menu.s ClearMainMenuWindowTilemap +08032298 main_menu.s NewGameBirchSpeech_ClearGenderWindowTilemap +080322e0 main_menu.s NewGameBirchSpeech_ClearGenderWindow +08032318 main_menu.s NewGameBirchSpeech_ClearWindow +080323a0 main_menu.s NewGameBirchSpeech_ShowPokeBallPrinterCallback +080323cc main_menu.s CreateYesNoMenuParameterized +0803243c main_menu.s NewGameBirchSpeech_ShowDialogueWindow +08032474 main_menu.s NewGameBirchSpeech_CreateDialogueWindowBorder +0803261c main_menu.s Task_NewGameBirchSpeech_ReturnFromNamingScreenShowTextbox +08032654 battle_controllers.s HandleLinkBattleSetup +0803269c battle_controllers.s SetUpBattleVarsAndBirchZigzagoon +08032768 battle_controllers.s sub_8032768 +08032824 battle_controllers.s InitSinglePlayerBtlControllers +08032cc0 battle_controllers.s InitLinkBtlControllers +08033050 battle_controllers.s SetBattlePartyIds +080331b8 battle_controllers.s PrepareBufferDataTransfer +08033244 battle_controllers.s CreateTasksForSendRecvLinkBuffers +080332f4 battle_controllers.s PrepareBufferDataTransferLink +08033474 battle_controllers.s Task_HandleSendLinkBuffersData +08033648 battle_controllers.s sub_8033648 +0803375c battle_controllers.s Task_HandleCopyReceivedLinkBuffersData +080338b4 battle_controllers.s BtlController_EmitGetMonData +080338d8 battle_controllers.s BtlController_EmitGetRawMonData +08033900 battle_controllers.s BtlController_EmitSetMonData +08033940 battle_controllers.s BtlController_EmitSetRawMonData +08033980 battle_controllers.s BtlController_EmitLoadMonSprite +080339a0 battle_controllers.s BtlController_EmitSwitchInAnim +080339c4 battle_controllers.s BtlController_EmitReturnMonToBall +080339e4 battle_controllers.s BtlController_EmitDrawTrainerPic +08033a04 battle_controllers.s BtlController_EmitTrainerSlide +08033a24 battle_controllers.s BtlController_EmitTrainerSlideBack +08033a44 battle_controllers.s BtlController_EmitFaintAnimation +08033a64 battle_controllers.s BtlController_EmitPaletteFade +08033a84 battle_controllers.s BtlController_EmitSuccessBallThrowAnim +08033aa4 battle_controllers.s BtlController_EmitBallThrowAnim +08033ac4 battle_controllers.s BtlController_EmitPause +08033b0c battle_controllers.s BtlController_EmitMoveAnimation +08033be4 battle_controllers.s BtlController_EmitPrintString +08033cfc battle_controllers.s BtlController_EmitPrintSelectionString +08033de4 battle_controllers.s BtlController_EmitChooseAction +08033e10 battle_controllers.s BtlController_EmitUnknownYesNoBox +08033e30 battle_controllers.s BtlController_EmitChooseMove +08033e6c battle_controllers.s BtlController_EmitChooseItem +08033ea0 battle_controllers.s BtlController_EmitChoosePokemon +08033edc battle_controllers.s BtlController_EmitCmd23 +08033efc battle_controllers.s BtlController_EmitHealthBarUpdate +08033f34 battle_controllers.s BtlController_EmitExpUpdate +08033f68 battle_controllers.s BtlController_EmitStatusIconUpdate +08033fbc battle_controllers.s BtlController_EmitStatusAnimation +08033ff8 battle_controllers.s BtlController_EmitStatusXor +08034018 battle_controllers.s BtlController_EmitDataTransfer +08034060 battle_controllers.s BtlController_EmitDMA3Transfer +080340c8 battle_controllers.s BtlController_EmitPlayBGM +08034110 battle_controllers.s BtlController_EmitCmd32 +08034158 battle_controllers.s BtlController_EmitTwoReturnValues +08034184 battle_controllers.s BtlController_EmitChosenMonReturnValue +080341bc battle_controllers.s BtlController_EmitOneReturnValue +080341e8 battle_controllers.s BtlController_EmitOneReturnValue_Duplicate +08034214 battle_controllers.s BtlController_EmitCmd37 +08034234 battle_controllers.s BtlController_EmitCmd38 +08034254 battle_controllers.s BtlController_EmitCmd39 +08034274 battle_controllers.s BtlController_EmitCmd40 +08034294 battle_controllers.s BtlController_EmitHitAnimation +080342b4 battle_controllers.s BtlController_EmitCmd42 +080342d4 battle_controllers.s BtlController_EmitPlaySE +08034300 battle_controllers.s BtlController_EmitPlayFanfareOrBGM +0803432c battle_controllers.s BtlController_EmitFaintingCry +0803434c battle_controllers.s BtlController_EmitIntroSlide +0803436c battle_controllers.s BtlController_EmitIntroTrainerBallThrow +0803438c battle_controllers.s BtlController_EmitDrawPartyStatusSummary +080343d4 battle_controllers.s BtlController_EmitHidePartyStatusSummary +080343f4 battle_controllers.s BtlController_EmitEndBounceEffect +08034414 battle_controllers.s BtlController_EmitSpriteInvisibility +08034438 battle_controllers.s BtlController_EmitBattleAnimation +08034464 battle_controllers.s BtlController_EmitLinkStandbyMsg +080344a8 battle_controllers.s BtlController_EmitResetActionMoveSelection +080344c8 battle_controllers.s BtlController_EmitCmd55 +08034518 decompress.s LZDecompressWram +08034524 decompress.s LZDecompressVram +08034530 decompress.s LoadCompressedSpriteSheet +08034564 decompress.s LoadCompressedSpriteSheetOverrideBuffer +0803458c decompress.s LoadCompressedSpritePalette +080345c0 decompress.s LoadCompressedSpritePaletteOverrideBuffer +080345f0 decompress.s DecompressPicFromTable +08034628 decompress.s HandleLoadSpecialPokePic +08034654 decompress.s LoadSpecialPokePic +08034710 decompress.s Unused_LZDecompressWramIndirect +0803471c decompress.s sub_803471C +08034974 decompress.s GetDecompressedDataSize +08034988 decompress.s LoadCompressedSpriteSheetUsingHeap +080349c4 decompress.s LoadCompressedSpritePaletteUsingHeap +08034a08 decompress.s DecompressPicFromTable_2 +08034a40 decompress.s LoadSpecialPokePic_2 +08034afc decompress.s HandleLoadSpecialPokePic_2 +08034b28 decompress.s DecompressPicFromTable_DontHandleDeoxys +08034b50 decompress.s HandleLoadSpecialPokePic_DontHandleDeoxys +08034b7c decompress.s LoadSpecialPokePic_DontHandleDeoxys +08034c30 decompress.s DuplicateDeoxysTiles +08034c54 rom_8034C54.s sub_8034C54 +08034cc8 rom_8034C54.s sub_8034CC8 +08034d14 rom_8034C54.s sub_8034D14 +08034efc rom_8034C54.s sub_8034EFC +08035044 rom_8034C54.s sub_8035044 +080350b0 rom_8034C54.s sub_80350B0 +08035164 rom_8034C54.s sub_8035164 +080352c0 rom_8034C54.s sub_80352C0 +080353dc rom_8034C54.s sub_80353DC +0803547c rom_8034C54.s sub_803547C +08035518 rom_8034C54.s sub_8035518 +08035570 rom_8034C54.s SharesTileWithAnyActive +080355b4 rom_8034C54.s SharesPalWithAnyActive +080355f8 rom_8034C54.s sub_80355F8 +08035608 rom_8034C54.s sub_8035608 +08035648 rom_8034C54.s sub_8035648 +08035658 battle_bg.s BattleInitBgsAndWindows +080356d0 battle_bg.s sub_80356D0 +0803570c battle_bg.s LoadBattleMenuWindowGfx +08035770 battle_bg.s DrawMainBattleBackground +08035aa4 battle_bg.s LoadBattleTextboxAndBackground +08035ae4 battle_bg.s sub_8035AE4 +08035c4c battle_bg.s sub_8035C4C +08035d74 battle_bg.s sub_8035D74 +08036154 battle_bg.s DrawBattleEntryBackground +080363c4 battle_bg.s LoadChosenBattleElement +08036760 battle_main.s CB2_InitBattle +080367d4 battle_main.s CB2_InitBattleInternal +08036a5c battle_main.s sub_8036A5C +08036b44 battle_main.s SetPlayerBerryDataInBattleStruct +08036c08 battle_main.s SetAllPlayersBerryData +08036eb8 battle_main.s sub_8036EB8 +08036fac battle_main.s CB2_HandleStartBattle +08037458 battle_main.s CB2_HandleStartMultiPartnerBattle +080379f8 battle_main.s sub_80379F8 +08037adc battle_main.s CB2_PreInitMultiBattle +08037d2c battle_main.s CB2_PreInitIngamePlayerPartnerBattle +08037df4 battle_main.s CB2_HandleStartMultiBattle +08038420 battle_main.s BattleMainCB2 +0803849c battle_main.s FreeRestoreBattleData +080384e4 battle_main.s CB2_QuitRecordedBattle +08038528 battle_main.s sub_8038528 +08038538 battle_main.s sub_8038538 +080385e8 battle_main.s CreateNPCTrainerParty +08038a04 battle_main.s sub_8038A04 +08038a28 battle_main.s VBlankCB_Battle +08038b00 battle_main.s nullsub_17 +08038b04 battle_main.s sub_8038B04 +08038b74 battle_main.s sub_8038B74 +08038b94 battle_main.s sub_8038B94 +08038d64 battle_main.s sub_8038D64 +08038f14 battle_main.s sub_8038F14 +08038f34 battle_main.s sub_8038F34 +080391e0 battle_main.s sub_80391E0 +080392a8 battle_main.s sub_80392A8 +0803937c battle_main.s sub_803937C +0803939c battle_main.s sub_803939C +0803976c battle_main.s TryCorrectShedinjaLanguage +080397c4 battle_main.s sub_80397C4 +080397dc battle_main.s SpriteCb_WildMon +0803980c battle_main.s SpriteCb_MoveWildMonToRight +08039838 battle_main.s SpriteCb_WildMonShowHealthbox +08039894 battle_main.s SpriteCb_WildMonAnimate +080398b8 battle_main.s SpriteCallbackDummy_2 +080398bc battle_main.s sub_80398BC +080398d0 battle_main.s sub_80398D0 +08039934 battle_main.s SpriteCB_FaintOpponentMon +08039a48 battle_main.s SpriteCB_AnimFaintOpponent +08039ad8 battle_main.s sub_8039AD8 +08039af4 battle_main.s sub_8039AF4 +08039b2c battle_main.s sub_8039B2C +08039b58 battle_main.s sub_8039B58 +08039bb4 battle_main.s sub_8039BB4 +08039bc0 battle_main.s oac_poke_ally_ +08039bf0 battle_main.s sub_80105DC +08039bfc battle_main.s SpriteCallbackDummy_3 +08039c00 battle_main.s sub_8039C00 +08039c28 battle_main.s DoBounceEffect +08039d48 battle_main.s EndBounceEffect +08039df8 battle_main.s SpriteCB_BounceEffect +08039e44 battle_main.s sub_8039E44 +08039e60 battle_main.s sub_8039E60 +08039e84 battle_main.s sub_8039E84 +08039e9c battle_main.s sub_8039E9C +08039ec8 battle_main.s nullsub_20 +08039ecc battle_main.s BeginBattleIntro +08039ef0 battle_main.s BattleMainCB1 +08039f40 battle_main.s BattleStartClearSetData +0803a284 battle_main.s SwitchInClearSetData +0803a75c battle_main.s FaintClearSetData +0803abc0 battle_main.s BattleIntroGetMonsData +0803ac34 battle_main.s BattleIntroPrepareBackgroundSlide +0803ac84 battle_main.s BattleIntroDrawTrainersOrMonsSprites +0803af80 battle_main.s BattleIntroDrawPartySummaryScreens +0803b120 battle_main.s BattleIntroPrintTrainerWantsToBattle +0803b158 battle_main.s BattleIntroPrintWildMonAttacked +0803b180 battle_main.s BattleIntroPrintOpponentSendsOut +0803b1dc battle_main.s BattleIntroOpponent2SendsOutMonAnimation +0803b25c battle_main.s BattleIntroOpponent1SendsOutMonAnimation +0803b314 battle_main.s BattleIntroRecordMonsToDex +0803b3ac battle_main.s sub_803B3AC +0803b3cc battle_main.s BattleIntroPrintPlayerSendsOut +0803b42c battle_main.s BattleIntroPlayer2SendsOutMonAnimation +0803b4c8 battle_main.s BattleIntroPlayer1SendsOutMonAnimation +0803b598 battle_main.s sub_803B598 +0803b628 battle_main.s TryDoEventsBeforeFirstTurn +0803b904 battle_main.s HandleEndTurn_ContinueBattle +0803b9bc battle_main.s BattleTurnPassed +0803bb88 battle_main.s IsRunningFromBattleImpossible +0803bda0 battle_main.s sub_803BDA0 +0803be74 battle_main.s HandleTurnActionSelectionState +0803cdb8 battle_main.s AllAtActionConfirmed +0803cdf8 battle_main.s sub_803CDF8 +0803cedc battle_main.s SwapTurnOrder +0803cf10 battle_main.s GetWhoStrikesFirst +0803d2e8 battle_main.s SetActionsAndBattlersTurnOrder +0803d580 battle_main.s TurnValuesCleanUp +0803d6a0 battle_main.s SpecialStatusesClear +0803d6f0 battle_main.s CheckFocusPunch_ClearVarsBeforeTurnStarts +0803d818 battle_main.s RunTurnActionsFunctions +0803d8c0 battle_main.s HandleEndTurn_BattleWon +0803dac0 battle_main.s HandleEndTurn_BattleLost +0803dba0 battle_main.s HandleEndTurn_RanFromBattle +0803dc84 battle_main.s HandleEndTurn_MonFled +0803dcd8 battle_main.s HandleEndTurn_FinishBattle +0803de40 battle_main.s FreeResetData_ReturnToOvOrDoEvolutions +0803deb4 battle_main.s TryEvolvePokemon +0803df48 battle_main.s WaitForEvoSceneToFinish +0803df70 battle_main.s ReturnFromBattleToOverworld +0803e018 battle_main.s RunBattleScriptCommands_PopCallbacksStack +0803e08c battle_main.s RunBattleScriptCommands +0803e0b8 battle_main.s HandleAction_UseMove +0803e868 battle_main.s HandleAction_Switch +0803e90c battle_main.s HandleAction_UseItem +0803ec20 battle_main.s TryRunFromBattle +0803ee48 battle_main.s HandleAction_Run +0803efa8 battle_main.s HandleAction_WatchesCarefully +0803eff0 battle_main.s HandleAction_SafariZoneBallThrow +0803f050 battle_main.s HandleAction_ThrowPokeblock +0803f120 battle_main.s HandleAction_GoNear +0803f1f0 battle_main.s HandleAction_SafariZoneRun +0803f22c battle_main.s HandleAction_WallyBallThrow +0803f2a4 battle_main.s HandleAction_TryFinish +0803f2cc battle_main.s HandleAction_NothingIsFainted +0803f300 battle_main.s HandleAction_ActionFinished +0803f3cc battle_util.s GetBattlerForBattleScript +0803f480 battle_util.s PressurePPLose +0803f548 battle_util.s PressurePPLoseOnUsingImprison +0803f67c battle_util.s PressurePPLoseOnUsingPerishSong +0803f790 battle_util.s MarkAllBattlersForControllerExec +0803f800 battle_util.s MarkBattlerForControllerExec +0803f850 battle_util.s sub_803F850 +0803f8a0 battle_util.s CancelMultiTurnMoves +0803f90c battle_util.s WasUnableToUseMove +0803f964 battle_util.s PrepareStringBattle +0803f988 battle_util.s ResetSentPokesToOpponentValue +0803f9ec battle_util.s sub_803F9EC +0803fa70 battle_util.s sub_803FA70 +0803fad8 battle_util.s BattleScriptPush +0803fafc battle_util.s BattleScriptPushCursor +0803fb24 battle_util.s BattleScriptPop +0803fb4c battle_util.s TrySetCantSelectMoveBattleScript +0803fecc battle_util.s CheckMoveLimitations +080400c8 battle_util.s AreAllMovesUnusable +08040130 battle_util.s GetImprisonedMovesCount +080401d0 battle_util.s DoFieldEndTurnEffects +08040924 battle_util.s DoBattlerEndTurnEffects +08041364 battle_util.s HandleWishPerishSongOnTurnEnd +08041728 battle_util.s HandleFaintedMonActions +08041a1c battle_util.s TryClearRageStatuses +08041a6c battle_util.s AtkCanceller_UnableToUseMove +080423f4 battle_util.s HasNoMonsToSwitch +080426bc battle_util.s CastformDataTypeChange +08042828 battle_util.s AbilityBattleEffects +08044458 battle_util.s BattleScriptExecute +08044498 battle_util.s BattleScriptPushCursorAndCallback +080444dc battle_util.s ItemBattleEffects +08045868 battle_util.s ClearFuryCutterDestinyBondGrudge +080458b4 battle_util.s HandleAction_RunBattleScript +080458e0 battle_util.s GetMoveTarget +08045c44 battle_util.s HasObedientBitSet +08045cbc battle_util.s IsMonDisobedient +08045ffc battle_script_commands.s atk00_attackcanceler +080463ac battle_script_commands.s JumpIfMoveFailed +0804643c battle_script_commands.s atk40_jumpifaffectedbyprotect +080464ac battle_script_commands.s JumpIfMoveAffectedByProtect +08046518 battle_script_commands.s AccuracyCalcHelper +08046660 battle_script_commands.s atk01_accuracycheck +080469e8 battle_script_commands.s atk02_attackstring +08046a3c battle_script_commands.s atk03_ppreduce +08046c18 battle_script_commands.s atk04_critcalc +08046d8c battle_script_commands.s atk05_damagecalc +08046e7c battle_script_commands.s AI_CalcDmg +08046f60 battle_script_commands.s ModulateDmgByType +08047038 battle_script_commands.s atk06_typecalc +080472a8 battle_script_commands.s CheckWonderGuardAndLevitate +0804752c battle_script_commands.s ModulateDmgByType2 +080475e4 battle_script_commands.s TypeCalc +080477bc battle_script_commands.s AI_TypeCalc +080478b8 battle_script_commands.s Unused_ApplyRandomDmgMultiplier +080478f4 battle_script_commands.s atk07_adjustnormaldamage +08047aa4 battle_script_commands.s atk08_adjustnormaldamage2 +08047c30 battle_script_commands.s atk09_attackanimation +08047dc8 battle_script_commands.s atk0A_waitanimation +08047de8 battle_script_commands.s atk0B_healthbarupdate +08047ec4 battle_script_commands.s atk0C_datahpupdate +080482bc battle_script_commands.s atk0D_critmessage +08048310 battle_script_commands.s atk0E_effectivenesssound +080483e0 battle_script_commands.s atk0F_resultmessage +08048590 battle_script_commands.s atk10_printstring +080485d0 battle_script_commands.s atk11_printselectionstring +08048614 battle_script_commands.s atk12_waitmessage +08048670 battle_script_commands.s atk13_printfromtable +080486c4 battle_script_commands.s atk14_printselectionstringfromtable +08048728 battle_script_commands.s GetBattlerTurnOrderNum +08048760 battle_script_commands.s SetMoveEffect +080499d4 battle_script_commands.s atk15_seteffectwithchance +08049ac0 battle_script_commands.s atk16_seteffectprimary +08049ad0 battle_script_commands.s atk17_seteffectsecondary +08049ae0 battle_script_commands.s atk18_clearstatusfromeffect +08049b5c battle_script_commands.s atk19_tryfaintmon +08049e40 battle_script_commands.s atk1A_dofaintanimation +08049e7c battle_script_commands.s atk1B_cleareffectsonfaint +08049f04 battle_script_commands.s atk1C_jumpifstatus +08049f7c battle_script_commands.s atk1D_jumpifstatus2 +08049ff4 battle_script_commands.s atk1E_jumpifability +0804a0dc battle_script_commands.s atk1F_jumpifsideaffecting +0804a154 battle_script_commands.s atk20_jumpifstat +0804a24c battle_script_commands.s atk21_jumpifstatus3condition +0804a2d0 battle_script_commands.s atk22_jumpiftype +0804a32c battle_script_commands.s atk23_getexp +0804acd0 battle_script_commands.s atk24 +0804af30 battle_script_commands.s MoveValuesCleanUp +0804af70 battle_script_commands.s atk25_movevaluescleanup +0804af88 battle_script_commands.s atk26_setmultihit +0804afa0 battle_script_commands.s atk27_decrementmultihit +0804afe8 battle_script_commands.s atk28_goto +0804b008 battle_script_commands.s atk29_jumpifbyte +0804b0a8 battle_script_commands.s atk2A_jumpifhalfword +0804b150 battle_script_commands.s atk2B_jumpifword +0804b204 battle_script_commands.s atk2C_jumpifarrayequal +0804b28c battle_script_commands.s atk2D_jumpifarraynotequal +0804b310 battle_script_commands.s atk2E_setbyte +0804b338 battle_script_commands.s atk2F_addbyte +0804b364 battle_script_commands.s atk30_subbyte +0804b390 battle_script_commands.s atk31_copyarray +0804b3e4 battle_script_commands.s atk32_copyarraywithindex +0804b450 battle_script_commands.s atk33_orbyte +0804b47c battle_script_commands.s atk34_orhalfword +0804b4b4 battle_script_commands.s atk35_orword +0804b4f8 battle_script_commands.s atk36_bicbyte +0804b524 battle_script_commands.s atk37_bichalfword +0804b55c battle_script_commands.s atk38_bicword +0804b5a0 battle_script_commands.s atk39_pause +0804b5e0 battle_script_commands.s atk3A_waitstate +0804b600 battle_script_commands.s atk3B_healthbar_update +0804b658 battle_script_commands.s atk3C_return +0804b664 battle_script_commands.s atk3D_end +0804b6a4 battle_script_commands.s atk3E_end2 +0804b6bc battle_script_commands.s atk3F_end3 +0804b6f8 battle_script_commands.s atk41_call +0804b728 battle_script_commands.s atk42_jumpiftype2 +0804b784 battle_script_commands.s atk43_jumpifabilitypresent +0804b7d0 battle_script_commands.s atk44_endselectionscript +0804b7ec battle_script_commands.s atk45_playanimation +0804b8b0 battle_script_commands.s atk46_playanimation2 +0804b97c battle_script_commands.s atk47_setgraphicalstatchangevalues +0804b9d8 battle_script_commands.s atk48_playstatchangeanimation +0804bbcc battle_script_commands.s atk49_moveend +0804c5f4 battle_script_commands.s atk4A_typecalc2 +0804c844 battle_script_commands.s atk4B_returnatktoball +0804c894 battle_script_commands.s atk4C_getswitchedmondata +0804c904 battle_script_commands.s atk4D_switchindataupdate +0804cae8 battle_script_commands.s atk4E_switchinanim +0804cbb0 battle_script_commands.s atk4F_jumpifcantswitch +0804cf10 battle_script_commands.s sub_804CF10 +0804cf88 battle_script_commands.s atk50_openpartyscreen +0804d820 battle_script_commands.s atk51_switchhandleorder +0804daac battle_script_commands.s atk52_switchineffects +0804dda8 battle_script_commands.s atk53_trainerslidein +0804ddd8 battle_script_commands.s atk54_playse +0804de14 battle_script_commands.s atk55_fanfare +0804de50 battle_script_commands.s atk56_playfaintcry +0804de80 battle_script_commands.s atk57 +0804deb8 battle_script_commands.s atk58_returntoball +0804deec battle_script_commands.s atk59_handlelearnnewmove +0804e038 battle_script_commands.s atk5A_yesnoboxlearnmove +0804e3c8 battle_script_commands.s atk5B_yesnoboxstoplearningmove +0804e508 battle_script_commands.s atk5C_hitanimation +0804e598 battle_script_commands.s GetTrainerMoneyToGive +0804e6d8 battle_script_commands.s atk5D_getmoneyreward +0804e764 battle_script_commands.s atk5E +0804e818 battle_script_commands.s atk5F_swapattackerwithtarget +0804e868 battle_script_commands.s atk60_incrementgamestat +0804e898 battle_script_commands.s atk61_drawpartystatussummary +0804e960 battle_script_commands.s atk62_hidepartystatussummary +0804e990 battle_script_commands.s atk63_jumptocalledmove +0804e9f4 battle_script_commands.s atk64_statusanimation +0804ea84 battle_script_commands.s atk65_status2animation +0804eb2c battle_script_commands.s atk66_chosenstatusanimation +0804ebc0 battle_script_commands.s atk67_yesnobox +0804eca4 battle_script_commands.s atk68_cancelallactions +0804ecdc battle_script_commands.s atk69_adjustsetdamage +0804ee58 battle_script_commands.s atk6A_removeitem +0804eec8 battle_script_commands.s atk6B_atknameinbuff1 +0804ef04 battle_script_commands.s atk6C_drawlvlupbox +0804f100 battle_script_commands.s DrawLevelUpWindow1 +0804f144 battle_script_commands.s DrawLevelUpWindow2 +0804f17c battle_script_commands.s sub_804F17C +0804f1cc battle_script_commands.s sub_804F1CC +0804f220 battle_script_commands.s PutLevelAndGenderOnLvlUpBox +0804f344 battle_script_commands.s sub_804F344 +0804f384 battle_script_commands.s PutMonIconOnLvlUpBox +0804f450 battle_script_commands.s SpriteCB_MonIconOnLvlUpBox +0804f498 battle_script_commands.s IsMonGettingExpSentOut +0804f4d4 battle_script_commands.s atk6D_resetsentmonsvalue +0804f4ec battle_script_commands.s atk6E_setatktoplayer0 +0804f50c battle_script_commands.s atk6F_makevisible +0804f540 battle_script_commands.s atk70_recordlastability +0804f574 battle_script_commands.s BufferMoveToLearnIntoBattleTextBuff2 +0804f59c battle_script_commands.s atk71_buffermovetolearn +0804f5b4 battle_script_commands.s atk72_jumpifplayerran +0804f5f8 battle_script_commands.s atk73_hpthresholds +0804f6a4 battle_script_commands.s atk74_hpthresholds2 +0804f754 battle_script_commands.s atk75_useitemonopponent +0804f7ac battle_script_commands.s atk76_various +0804fd8c battle_script_commands.s atk77_setprotectlike +0804fec8 battle_script_commands.s atk78_faintifabilitynotdamp +0804ffe4 battle_script_commands.s atk79_setatkhptozero +08050044 battle_script_commands.s atk7A_jumpifnexttargetvalid +080500e8 battle_script_commands.s atk7B_tryhealhalfhealth +08050164 battle_script_commands.s atk7C_trymirrormove +080502c8 battle_script_commands.s atk7D_setrain +0805031c battle_script_commands.s atk7E_setreflect +080503e8 battle_script_commands.s atk7F_setseeded +080504a8 battle_script_commands.s atk80_manipulatedamage +08050528 battle_script_commands.s atk81_trysetrest +080505f8 battle_script_commands.s atk82_jumpifnotfirstturn +08050640 battle_script_commands.s atk83_nop +08050650 battle_script_commands.s UproarWakeUpCheck +080506ec battle_script_commands.s atk84_jumpifcantmakeasleep +08050768 battle_script_commands.s atk85_stockpile +080507e4 battle_script_commands.s atk86_stockpiletobasedamage +08050904 battle_script_commands.s atk87_stockpiletohpheal +080509e8 battle_script_commands.s atk88_negativedamage +08050a1c battle_script_commands.s ChangeStatBuffs +08050ea0 battle_script_commands.s atk89_statbuffchange +08050eec battle_script_commands.s atk8A_normalisebuffs +08050f40 battle_script_commands.s atk8B_setbide +08050fb0 battle_script_commands.s atk8C_confuseifrepeatingattackends +08050ff0 battle_script_commands.s atk8D_setmultihitcounter +0805103c battle_script_commands.s atk8E_initmultihitstring +08051064 battle_script_commands.s TryDoForceSwitchOut +0805112c battle_script_commands.s atk8F_forcerandomswitch +08051424 battle_script_commands.s atk90_tryconversiontypechange +080515c8 battle_script_commands.s atk91_givepaydaymoney +08051664 battle_script_commands.s atk92_setlightscreen +08051730 battle_script_commands.s atk93_tryKO +08051a84 battle_script_commands.s atk94_damagetohalftargethp +08051ac0 battle_script_commands.s atk95_setsandstorm +08051b18 battle_script_commands.s atk96_weatherdamage +08051c90 battle_script_commands.s atk97_tryinfatuating +08051e48 battle_script_commands.s atk98_updatestatusicon +08051f58 battle_script_commands.s atk99_setmist +08052000 battle_script_commands.s atk9A_setfocusenergy +0805205c battle_script_commands.s atk9B_transformdataexecution +080521fc battle_script_commands.s atk9C_setsubstitute +080522b8 battle_script_commands.s IsMoveUncopyableByMimic +08052300 battle_script_commands.s atk9D_mimicattackcopy +080524dc battle_script_commands.s atk9E_metronome +08052584 battle_script_commands.s atk9F_dmgtolevel +080525b4 battle_script_commands.s atkA0_psywavedamageeffect +08052608 battle_script_commands.s atkA1_counterdamagecalculator +08052700 battle_script_commands.s atkA2_mirrorcoatdamagecalculator +080527f8 battle_script_commands.s atkA3_disablelastusedattack +0805293c battle_script_commands.s atkA4_trysetencore +08052a70 battle_script_commands.s atkA5_painsplitdmgcalc +08052b34 battle_script_commands.s atkA6_settypetorandomresistance +08052d34 battle_script_commands.s atkA7_setalwayshitflag +08052d8c battle_script_commands.s atkA8_copymovepermanently +08052f48 battle_script_commands.s IsTwoTurnsMove +08052f84 battle_script_commands.s IsInvalidForSleepTalkOrAssist +08052fac battle_script_commands.s AttacksThisTurn +08053018 battle_script_commands.s atkA9_trychoosesleeptalkmove +08053150 battle_script_commands.s atkAA_setdestinybond +08053180 battle_script_commands.s TrySetDestinyBondToHappen +080531e0 battle_script_commands.s atkAB_trysetdestinybondtohappen +080531f8 battle_script_commands.s atkAC_remaininghptopower +08053260 battle_script_commands.s atkAD_tryspiteppreduce +08053438 battle_script_commands.s atkAE_healpartystatus +0805371c battle_script_commands.s atkAF_cursetarget +080537a0 battle_script_commands.s atkB0_trysetspikes +0805382c battle_script_commands.s atkB1_setforesight +0805385c battle_script_commands.s atkB2_trysetperishsong +08053914 battle_script_commands.s atkB3_rolloutdamagecalculation +08053a90 battle_script_commands.s atkB4_jumpifconfusedandstatmaxed +08053af8 battle_script_commands.s atkB5_furycuttercalc +08053bac battle_script_commands.s atkB6_happinesstodamagecalculation +08053c30 battle_script_commands.s atkB7_presentdamagecalculation +08053cfc battle_script_commands.s atkB8_setsafeguard +08053da4 battle_script_commands.s atkB9_magnitudedamagecalculation +08053ec8 battle_script_commands.s atkBA_jumpifnopursuitswitchdmg +0805405c battle_script_commands.s atkBB_setsunny +080540b4 battle_script_commands.s atkBC_maxattackhalvehp +08054134 battle_script_commands.s atkBD_copyfoestats +0805417c battle_script_commands.s atkBE_rapidspinfree +080542c8 battle_script_commands.s atkBF_setdefensecurlbit +080542f8 battle_script_commands.s atkC0_recoverbasedonsunlight +08054400 battle_script_commands.s atkC1_hiddenpowercalc +08054524 battle_script_commands.s atkC2_selectfirstvalidtarget +08054598 battle_script_commands.s atkC3_trysetfutureattack +080546e4 battle_script_commands.s atkC4_trydobeatup +080548f4 battle_script_commands.s atkC5_setsemiinvulnerablebit +08054978 battle_script_commands.s atkC6_clearsemiinvulnerablebit +08054a08 battle_script_commands.s atkC7_setminimize +08054a48 battle_script_commands.s atkC8_sethail +08054aa0 battle_script_commands.s atkC9_jumpifattackandspecialattackcannotfall +08054b3c battle_script_commands.s atkCA_setforcedtarget +08054b88 battle_script_commands.s atkCB_setcharge +08054bec battle_script_commands.s atkCC_callterrainattack +08054c60 battle_script_commands.s atkCD_cureifburnedparalysedorpoisoned +08054ce4 battle_script_commands.s atkCE_settorment +08054d3c battle_script_commands.s atkCF_jumpifnodamage +08054d98 battle_script_commands.s atkD0_settaunt +08054e0c battle_script_commands.s atkD1_trysethelpinghand +08054eb4 battle_script_commands.s atkD2_tryswapitems +08055148 battle_script_commands.s atkD3_trycopyability +080551c0 battle_script_commands.s atkD4_trywish +08055294 battle_script_commands.s atkD5_trysetroots +080552ec battle_script_commands.s atkD6_doubledamagedealtifdamaged +0805534c battle_script_commands.s atkD7_setyawn +080553bc battle_script_commands.s atkD8_setdamagetohealthdifference +08055428 battle_script_commands.s atkD9_scaledamagebyhealthratio +0805548c battle_script_commands.s atkDA_tryswapabilities +08055524 battle_script_commands.s atkDB_tryimprison +0805562c battle_script_commands.s atkDC_trysetgrudge +08055684 battle_script_commands.s atkDD_weightdamagecalculation +0805571c battle_script_commands.s atkDE_assistattackselect +0805589c battle_script_commands.s atkDF_trysetmagiccoat +08055920 battle_script_commands.s atkE0_trysetsnatch +0805599c battle_script_commands.s atkE1_trygetintimidatetarget +08055a78 battle_script_commands.s atkE2_switchoutabilities +08055af4 battle_script_commands.s atkE3_jumpifhasnohp +08055b48 battle_script_commands.s atkE4_getsecretpowereffect +08055c00 battle_script_commands.s atkE5_pickup +08055dfc battle_script_commands.s atkE6_docastformchangeanimation +08055e64 battle_script_commands.s atkE7_trycastformdatachange +08055ea4 battle_script_commands.s atkE8_settypebasedhalvers +08055f5c battle_script_commands.s atkE9_setweatherballtype +08056014 battle_script_commands.s atkEA_tryrecycleitem +080560bc battle_script_commands.s atkEB_settypetoterrain +0805616c battle_script_commands.s atkEC_pursuitrelated +08056230 battle_script_commands.s atkEF_snatchsetbattlers +08056284 battle_script_commands.s atkEE_removelightscreenreflect +08056300 battle_script_commands.s atkEF_handleballthrow +080566a8 battle_script_commands.s atkF0_givecaughtmon +08056850 battle_script_commands.s atkF1_trysetcaughtmondexflags +080568cc battle_script_commands.s atkF2_displaydexinfo +08056a3c battle_script_commands.s HandleBattleWindow +08056b74 battle_script_commands.s BattleCreateYesNoCursorAt +08056bac battle_script_commands.s BattleDestroyYesNoCursorAt +08056bec battle_script_commands.s atkF3_trygivecaughtmonnick +08056e78 battle_script_commands.s atkF4_subattackerhpbydmg +08056ea8 battle_script_commands.s atkF5_removeattackerstatus1 +08056ed0 battle_script_commands.s atkF6_finishaction +08056edc battle_script_commands.s atkF7_finishturn +08056ef8 battle_script_commands.s atkF8_trainerslideout +08056f28 battle_util2.s AllocateBattleResources +08057028 battle_util2.s FreeBattleResources +080570f4 battle_util2.s AdjustFriendshipOnBattleFaint +080571dc battle_util2.s sub_80571DC +0805725c battle_util2.s sub_805725C +08057458 battle_controller_player.s nullsub_21 +0805745c battle_controller_player.s SetControllerToPlayer +0805748c battle_controller_player.s PlayerBufferExecCompleted +08057504 battle_controller_player.s PlayerBufferRunCommand +08057554 battle_controller_player.s CompleteOnBankSpritePosX_0 +080577f0 battle_controller_player.s sub_80577F0 +08057824 battle_controller_player.s HandleInputChooseTarget +08057bfc battle_controller_player.s HandleInputChooseMove +08057fbc battle_controller_player.s sub_8057FBC +08058138 battle_controller_player.s HandleMoveSwitching +080586f8 battle_controller_player.s sub_80586F8 +080587b0 battle_controller_player.s sub_80587B0 +080588b4 battle_controller_player.s sub_80588B4 +08058924 battle_controller_player.s sub_8058924 +0805896c battle_controller_player.s sub_805896C +08058b40 battle_controller_player.s sub_8058B40 +08058edc battle_controller_player.s sub_8058EDC +08058fc0 battle_controller_player.s sub_8058FC0 +0805902c battle_controller_player.s sub_805902C +08059100 battle_controller_player.s c3_0802FDF4 +08059400 battle_controller_player.s sub_8059400 +08059544 battle_controller_player.s Task_LaunchLvlUpAnim +080595a4 battle_controller_player.s Task_UpdateLvlInHealthbox +080596a8 battle_controller_player.s sub_80596A8 +08059744 battle_controller_player.s sub_8059744 +080597cc battle_controller_player.s OpenPartyMenuToChooseMon +08059828 battle_controller_player.s WaitForMonSelection +080598a4 battle_controller_player.s OpenBagAndChooseItem +080598e0 battle_controller_player.s CompleteWhenChoseItem +080599d4 battle_controller_player.s PlayerHandleUnknownYesNoInput +08059aac battle_controller_player.s MoveSelectionDisplayMoveNames +08059b18 battle_controller_player.s MoveSelectionDisplayPpString +08059b3c battle_controller_player.s MoveSelectionDisplayPpNumber +08059bb0 battle_controller_player.s MoveSelectionDisplayMoveType +08059c28 battle_controller_player.s MoveSelectionCreateCursorAt +08059c70 battle_controller_player.s MoveSelectionDestroyCursorAt +08059cb4 battle_controller_player.s ActionSelectionCreateCursorAt +08059cf8 battle_controller_player.s ActionSelectionDestroyCursorAt +08059d40 battle_controller_player.s SetCB2ToReshowScreenAfterMenu +08059d50 battle_controller_player.s SetCB2ToReshowScreenAfterMenu2 +08059dc0 battle_controller_player.s PrintLinkStandbyMsg +08059df4 battle_controller_player.s PlayerHandleGetMonData +08059e68 battle_controller_player.s CopyPlayerMonData +0805a614 battle_controller_player.s PlayerHandleGetRawMonData +0805a69c battle_controller_player.s PlayerHandleSetMonData +0805a6f4 battle_controller_player.s SetPlayerMonData +0805b0f0 battle_controller_player.s PlayerHandleSetRawMonData +0805b164 battle_controller_player.s PlayerHandleLoadMonSprite +0805b1cc battle_controller_player.s PlayerHandleSwitchInAnim +0805b258 battle_controller_player.s sub_805B258 +0805b3d4 battle_controller_player.s PlayerHandleReturnMonToBall +0805b4f0 battle_controller_player.s PlayerHandleDrawTrainerPic +0805b864 battle_controller_player.s PlayerHandleTrainerSlide +0805b9f8 battle_controller_player.s PlayerHandleTrainerSlideBack +0805bab8 battle_controller_player.s PlayerHandleFaintAnimation +0805bba4 battle_controller_player.s PlayerHandlePaletteFade +0805bbc4 battle_controller_player.s PlayerHandleSuccessBallThrowAnim +0805bc18 battle_controller_player.s PlayerHandleBallThrowAnim +0805bc78 battle_controller_player.s PlayerHandlePause +0805bca8 battle_controller_player.s PlayerHandleMoveAnimation +0805bdfc battle_controller_player.s PlayerDoMoveAnimation +0805bf80 battle_controller_player.s PlayerHandlePrintString +0805bfe0 battle_controller_player.s PlayerHandlePrintSelectionString +0805c044 battle_controller_player.s PlayerHandleChooseAction +0805c0b0 battle_controller_player.s PlayerHandleUnknownYesNoBox +0805c114 battle_controller_player.s HandleChooseMoveAfterDma3 +0805c158 battle_controller_player.s PlayerChooseMoveInBattlePalace +0805c1a8 battle_controller_player.s PlayerHandleChooseMove +0805c210 battle_controller_player.s InitMoveSelectionsVarsAndStrings +0805c248 battle_controller_player.s PlayerHandleChooseItem +0805c2ac battle_controller_player.s PlayerHandleChoosePokemon +0805c3ec battle_controller_player.s PlayerHandleCmd23 +0805c410 battle_controller_player.s PlayerHandleHealthBarUpdate +0805c528 battle_controller_player.s PlayerHandleExpUpdate +0805c5c4 battle_controller_player.s PlayerHandleStatusIconUpdate +0805c63c battle_controller_player.s PlayerHandleStatusAnimation +0805c6a4 battle_controller_player.s PlayerHandleStatusXor +0805c710 battle_controller_player.s PlayerHandleDataTransfer +0805c71c battle_controller_player.s PlayerHandleDMA3Transfer +0805c7d0 battle_controller_player.s PlayerHandlePlayBGM +0805c800 battle_controller_player.s PlayerHandleCmd32 +0805c80c battle_controller_player.s PlayerHandleTwoReturnValues +0805c820 battle_controller_player.s PlayerHandleChosenMonReturnValue +0805c834 battle_controller_player.s PlayerHandleOneReturnValue +0805c848 battle_controller_player.s PlayerHandleOneReturnValue_Duplicate +0805c85c battle_controller_player.s PlayerHandleCmd37 +0805c878 battle_controller_player.s PlayerHandleCmd38 +0805c8b0 battle_controller_player.s PlayerHandleCmd39 +0805c8c8 battle_controller_player.s PlayerHandleCmd40 +0805c8f0 battle_controller_player.s PlayerHandleHitAnimation +0805c960 battle_controller_player.s PlayerHandleCmd42 +0805c96c battle_controller_player.s PlayerHandlePlaySE +0805c9b0 battle_controller_player.s PlayerHandlePlayFanfareOrBGM +0805ca0c battle_controller_player.s PlayerHandleFaintingCry +0805ca4c battle_controller_player.s PlayerHandleIntroSlide +0805ca80 battle_controller_player.s PlayerHandleIntroTrainerBallThrow +0805cc00 battle_controller_player.s sub_805CC00 +0805cc68 battle_controller_player.s task05_08033660 +0805cd74 battle_controller_player.s PlayerHandleDrawPartyStatusSummary +0805ce38 battle_controller_player.s sub_805CE38 +0805ce80 battle_controller_player.s PlayerHandleHidePartyStatusSummary +0805ced0 battle_controller_player.s PlayerHandleEndBounceEffect +0805cef4 battle_controller_player.s PlayerHandleSpriteInvisibility +0805cf54 battle_controller_player.s PlayerHandleBattleAnimation +0805cfc8 battle_controller_player.s PlayerHandleLinkStandbyMsg +0805d02c battle_controller_player.s PlayerHandleResetActionMoveSelection +0805d094 battle_controller_player.s PlayerHandleCmd55 +0805d114 battle_controller_player.s PlayerCmdEnd +0805d118 battle_gfx_sfx_util.s AllocateBattleSpritesData +0805d158 battle_gfx_sfx_util.s FreeBattleSpritesData +0805d19c battle_gfx_sfx_util.s ChooseMoveAndTargetInBattlePalace +0805d4a8 battle_gfx_sfx_util.s sub_805D4A8 +0805d5f4 battle_gfx_sfx_util.s BattlePalaceGetTargetRetValue +0805d714 battle_gfx_sfx_util.s sub_805D714 +0805d770 battle_gfx_sfx_util.s sub_805D770 +0805d7ac battle_gfx_sfx_util.s sub_805D7AC +0805d7ec battle_gfx_sfx_util.s sub_805D7EC +0805d808 battle_gfx_sfx_util.s InitAndLaunchChosenStatusAnimation +0805d908 battle_gfx_sfx_util.s TryHandleLaunchBattleTableAnimation +0805da48 battle_gfx_sfx_util.s Task_ClearBitWhenBattleTableAnimDone +0805daa0 battle_gfx_sfx_util.s ShouldAnimBeDoneRegardlessOfSubsitute +0805dac4 battle_gfx_sfx_util.s InitAndLaunchSpecialAnimation +0805db34 battle_gfx_sfx_util.s Task_ClearBitWhenSpecialAnimDone +0805db8c battle_gfx_sfx_util.s IsMoveWithoutAnimation +0805db90 battle_gfx_sfx_util.s mplay_80342A4 +0805dc0c battle_gfx_sfx_util.s BattleLoadOpponentMonSpriteGfx +0805dd7c battle_gfx_sfx_util.s BattleLoadPlayerMonSpriteGfx +0805df30 battle_gfx_sfx_util.s nullsub_23 +0805df34 battle_gfx_sfx_util.s nullsub_24 +0805df38 battle_gfx_sfx_util.s DecompressTrainerFrontPic +0805df84 battle_gfx_sfx_util.s DecompressTrainerBackPic +0805dfe0 battle_gfx_sfx_util.s nullsub_25 +0805dfe4 battle_gfx_sfx_util.s FreeTrainerFrontPicPalette +0805dffc battle_gfx_sfx_util.s BattleLoadAllHealthBoxesGfxAtOnce +0805e08c battle_gfx_sfx_util.s BattleLoadAllHealthBoxesGfx +0805e1b8 battle_gfx_sfx_util.s LoadBattleBarGfx +0805e1d8 battle_gfx_sfx_util.s BattleInitAllSprites +0805e350 battle_gfx_sfx_util.s ClearSpritesHealthboxAnimData +0805e378 battle_gfx_sfx_util.s ClearSpritesBattlerHealthboxAnimData +0805e394 battle_gfx_sfx_util.s CopyAllBattleSpritesInvisibilities +0805e408 battle_gfx_sfx_util.s CopyBattleSpriteInvisibility +0805e448 battle_gfx_sfx_util.s HandleSpeciesGfxDataChange +0805e7dc battle_gfx_sfx_util.s BattleLoadSubstituteOrMonSpriteGfx +0805e8f4 battle_gfx_sfx_util.s LoadBattleMonGfxAndAnimate +0805e94c battle_gfx_sfx_util.s TrySetBehindSubstituteSpriteBit +0805e974 battle_gfx_sfx_util.s ClearBehindSubstituteBit +0805e990 battle_gfx_sfx_util.s HandleLowHpMusicChange +0805ea60 battle_gfx_sfx_util.s BattleStopLowHpSound +0805eab4 battle_gfx_sfx_util.s GetMonHPBarLevel +0805eae8 battle_gfx_sfx_util.s HandleBattleLowHpMusicChange +0805eb9c battle_gfx_sfx_util.s sub_805EB9C +0805ec84 battle_gfx_sfx_util.s LoadAndCreateEnemyShadowSprites +0805ed70 battle_gfx_sfx_util.s SpriteCB_EnemyShadow +0805ee48 battle_gfx_sfx_util.s SpriteCB_SetInvisible +0805ee54 battle_gfx_sfx_util.s SetBattlerShadowSpriteCallback +0805eee0 battle_gfx_sfx_util.s HideBattlerShadowSprite +0805ef14 battle_gfx_sfx_util.s sub_805EF14 +0805ef84 battle_gfx_sfx_util.s ClearTemporarySpeciesSpriteData +0805efbc battle_gfx_sfx_util.s AllocateMonSpritesGfx +0805f094 battle_gfx_sfx_util.s FreeMonSpritesGfx +0805f110 battle_gfx_sfx_util.s ShouldPlayNormalMonCry +0805f160 battle_controller_opponent.s nullsub_26 +0805f164 battle_controller_opponent.s SetControllerToOpponent +0805f180 battle_controller_opponent.s OpponentBufferRunCommand +0805f240 battle_controller_opponent.s sub_805F240 +0805f2a8 battle_controller_opponent.s sub_805F2A8 +0805f2f0 battle_controller_opponent.s sub_805F2F0 +0805f560 battle_controller_opponent.s sub_805F560 +0805f994 battle_controller_opponent.s sub_805F994 +0805fac4 battle_controller_opponent.s sub_805FAC4 +0805fb08 battle_controller_opponent.s sub_805FB08 +0805fc10 battle_controller_opponent.s sub_805FC10 +0805fc80 battle_controller_opponent.s sub_805FC80 +0805fd00 battle_controller_opponent.s sub_805FD00 +0805fdf0 battle_controller_opponent.s sub_805FDF0 +0805ff18 battle_controller_opponent.s OpponentBufferExecCompleted +0805ff90 battle_controller_opponent.s OpponentHandleGetMonData +08060004 battle_controller_opponent.s GetOpponentMonData +080607b0 battle_controller_opponent.s OpponentHandleGetRawMonData +08060838 battle_controller_opponent.s OpponentHandleSetMonData +08060890 battle_controller_opponent.s SetOpponentMonData +080611b0 battle_controller_opponent.s OpponentHandleSetRawMonData +08061224 battle_controller_opponent.s OpponentHandleLoadMonSprite +0806137c battle_controller_opponent.s OpponentHandleSwitchInAnim +080613dc battle_controller_opponent.s sub_80613DC +0806156c battle_controller_opponent.s OpponentHandleReturnMonToBall +08061690 battle_controller_opponent.s OpponentHandleDrawTrainerPic +080618d8 battle_controller_opponent.s OpponentHandleTrainerSlide +08061af0 battle_controller_opponent.s OpponentHandleTrainerSlideBack +08061b9c battle_controller_opponent.s OpponentHandleFaintAnimation +08061c48 battle_controller_opponent.s OpponentHandlePaletteFade +08061c54 battle_controller_opponent.s OpponentHandleSuccessBallThrowAnim +08061c60 battle_controller_opponent.s OpponentHandleBallThrow +08061c6c battle_controller_opponent.s OpponentHandlePause +08061c78 battle_controller_opponent.s OpponentHandleMoveAnimation +08061db0 battle_controller_opponent.s OpponentDoMoveAnimation +08061f34 battle_controller_opponent.s OpponentHandlePrintString +08061f90 battle_controller_opponent.s OpponentHandlePrintSelectionString +08061f9c battle_controller_opponent.s OpponentHandleChooseAction +08061fac battle_controller_opponent.s OpponentHandleUnknownYesNoBox +08061fb8 battle_controller_opponent.s OpponentHandleChooseMove +0806215c battle_controller_opponent.s OpponentHandleChooseItem +08062188 battle_controller_opponent.s OpponentHandleChoosePokemon +08062288 battle_controller_opponent.s OpponentHandleCmd23 +08062294 battle_controller_opponent.s OpponentHandleHealthBarUpdate +08062384 battle_controller_opponent.s OpponentHandleExpUpdate +08062390 battle_controller_opponent.s OpponentHandleStatusIconUpdate +08062408 battle_controller_opponent.s OpponentHandleStatusAnimation +08062470 battle_controller_opponent.s OpponentHandleStatusXor +0806247c battle_controller_opponent.s OpponentHandleDataTransfer +08062488 battle_controller_opponent.s OpponentHandleDMA3Transfer +08062494 battle_controller_opponent.s OpponentHandlePlayBGM +080624a0 battle_controller_opponent.s OpponentHandleCmd32 +080624ac battle_controller_opponent.s OpponentHandleTwoReturnValues +080624b8 battle_controller_opponent.s OpponentHandleChosenMonReturnValue +080624c4 battle_controller_opponent.s OpponentHandleOneReturnValue +080624d0 battle_controller_opponent.s OpponentHandleOneReturnValue_Duplicate +080624dc battle_controller_opponent.s OpponentHandleCmd37 +080624f8 battle_controller_opponent.s OpponentHandleCmd38 +08062530 battle_controller_opponent.s OpponentHandleCmd39 +08062548 battle_controller_opponent.s OpponentHandleCmd40 +08062570 battle_controller_opponent.s OpponentHandleHitAnimation +080625e0 battle_controller_opponent.s OpponentHandleCmd42 +080625ec battle_controller_opponent.s OpponentHandlePlaySE +08062630 battle_controller_opponent.s OpponentHandlePlayFanfareOrBGM +0806268c battle_controller_opponent.s OpponentHandleFaintingCry +080626c8 battle_controller_opponent.s OpponentHandleIntroSlide +080626fc battle_controller_opponent.s OpponentHandleIntroTrainerBallThrow +0806280c battle_controller_opponent.s sub_806280C +08062828 battle_controller_opponent.s sub_8062828 +08062918 battle_controller_opponent.s OpponentHandleDrawPartyStatusSummary +08062a2c battle_controller_opponent.s sub_8062A2C +08062a74 battle_controller_opponent.s OpponentHandleHidePartyStatusSummary +08062ac4 battle_controller_opponent.s OpponentHandleEndBounceEffect +08062ad0 battle_controller_opponent.s OpponentHandleSpriteInvisibility +08062b30 battle_controller_opponent.s OpponentHandleBattleAnimation +08062b98 battle_controller_opponent.s OpponentHandleLinkStandbyMsg +08062ba4 battle_controller_opponent.s OpponentHandleResetActionMoveSelection +08062bb0 battle_controller_opponent.s OpponentHandleCmd55 +08062bf4 battle_controller_opponent.s OpponentCmdEnd +08062bf8 battle_ai_switch_items.s ShouldSwitchIfPerishSong +08062c58 battle_ai_switch_items.s ShouldSwitchIfWonderGuard +08062e54 battle_ai_switch_items.s FindMonThatAbsorbsOpponentsMove +080630c0 battle_ai_switch_items.s ShouldSwitchIfNaturalCure +080631bc battle_ai_switch_items.s HasSuperEffectiveMoveAgainstOpponents +0806331c battle_ai_switch_items.s AreStatsRaised +08063364 battle_ai_switch_items.s FindMonWithFlagsAndSuperEffective +08063614 battle_ai_switch_items.s ShouldSwitch +08063880 battle_ai_switch_items.s AI_TrySwitchOrUseItem +08063a08 battle_ai_switch_items.s ModulateByTypeEffectiveness +08063a90 battle_ai_switch_items.s GetMostSuitableMonToSwitchInto +08063e84 battle_ai_switch_items.s GetAI_ItemType +08063ee0 battle_ai_switch_items.s ShouldUseItem +08064390 battle_controller_link_opponent.s nullsub_28 +08064394 battle_controller_link_opponent.s SetControllerToLinkOpponent +080643b0 battle_controller_link_opponent.s LinkOpponentBufferRunCommand +08064470 battle_controller_link_opponent.s sub_8064470 +080644d8 battle_controller_link_opponent.s sub_80644D8 +08064520 battle_controller_link_opponent.s sub_8064520 +08064734 battle_controller_link_opponent.s sub_8064734 +08064b04 battle_controller_link_opponent.s sub_8064B04 +08064c14 battle_controller_link_opponent.s sub_8064C14 +08064c58 battle_controller_link_opponent.s sub_8064C58 +08064d60 battle_controller_link_opponent.s sub_8064D60 +08064dd0 battle_controller_link_opponent.s sub_8064DD0 +08064e50 battle_controller_link_opponent.s sub_8064E50 +08064f40 battle_controller_link_opponent.s sub_8064F40 +08065068 battle_controller_link_opponent.s LinkOpponentBufferExecCompleted +080650e0 battle_controller_link_opponent.s LinkOpponentHandleGetMonData +08065154 battle_controller_link_opponent.s CopyLinkOpponentMonData +08065900 battle_controller_link_opponent.s LinkOpponentHandleGetRawMonData +0806590c battle_controller_link_opponent.s LinkOpponentHandleSetMonData +08065964 battle_controller_link_opponent.s SetLinkOpponentMonData +08066284 battle_controller_link_opponent.s LinkOpponentHandleSetRawMonData +080662f8 battle_controller_link_opponent.s LinkOpponentHandleLoadMonSprite +08066448 battle_controller_link_opponent.s LinkOpponentHandleSwitchInAnim +08066494 battle_controller_link_opponent.s sub_8066494 +08066624 battle_controller_link_opponent.s LinkOpponentHandleReturnMonToBall +08066748 battle_controller_link_opponent.s LinkOpponentHandleDrawTrainerPic +08066a58 battle_controller_link_opponent.s LinkOpponentHandleTrainerSlide +08066b94 battle_controller_link_opponent.s LinkOpponentHandleTrainerSlideBack +08066c40 battle_controller_link_opponent.s LinkOpponentHandleFaintAnimation +08066cec battle_controller_link_opponent.s LinkOpponentHandlePaletteFade +08066cf8 battle_controller_link_opponent.s LinkOpponentHandleSuccessBallThrowAnim +08066d04 battle_controller_link_opponent.s LinkOpponentHandleBallThrowAnim +08066d10 battle_controller_link_opponent.s LinkOpponentHandlePause +08066d1c battle_controller_link_opponent.s LinkOpponentHandleMoveAnimation +08066e70 battle_controller_link_opponent.s LinkOpponentDoMoveAnimation +08066ff4 battle_controller_link_opponent.s LinkOpponentHandlePrintString +0806704c battle_controller_link_opponent.s LinkOpponentHandlePrintSelectionString +08067058 battle_controller_link_opponent.s LinkOpponentHandleChooseAction +08067064 battle_controller_link_opponent.s LinkOpponentHandleUnknownYesNoBox +08067070 battle_controller_link_opponent.s LinkOpponentHandleChooseMove +0806707c battle_controller_link_opponent.s LinkOpponentHandleChooseItem +08067088 battle_controller_link_opponent.s LinkOpponentHandleChoosePokemon +08067094 battle_controller_link_opponent.s LinkOpponentHandleCmd23 +080670a0 battle_controller_link_opponent.s LinkOpponentHandleHealthBarUpdate +08067190 battle_controller_link_opponent.s LinkOpponentHandleExpUpdate +0806719c battle_controller_link_opponent.s LinkOpponentHandleStatusIconUpdate +08067214 battle_controller_link_opponent.s LinkOpponentHandleStatusAnimation +0806727c battle_controller_link_opponent.s LinkOpponentHandleStatusXor +08067288 battle_controller_link_opponent.s LinkOpponentHandleDataTransfer +08067294 battle_controller_link_opponent.s LinkOpponentHandleDMA3Transfer +080672a0 battle_controller_link_opponent.s LinkOpponentHandlePlayBGM +080672ac battle_controller_link_opponent.s LinkOpponentHandleCmd32 +080672b8 battle_controller_link_opponent.s LinkOpponentHandleTwoReturnValues +080672c4 battle_controller_link_opponent.s LinkOpponentHandleChosenMonReturnValue +080672d0 battle_controller_link_opponent.s LinkOpponentHandleOneReturnValue +080672dc battle_controller_link_opponent.s LinkOpponentHandleOneReturnValue_Duplicate +080672e8 battle_controller_link_opponent.s LinkOpponentHandleCmd37 +08067304 battle_controller_link_opponent.s LinkOpponentHandleCmd38 +0806733c battle_controller_link_opponent.s LinkOpponentHandleCmd39 +08067354 battle_controller_link_opponent.s LinkOpponentHandleCmd40 +0806737c battle_controller_link_opponent.s LinkOpponentHandleHitAnimation +080673ec battle_controller_link_opponent.s LinkOpponentHandleCmd42 +080673f8 battle_controller_link_opponent.s LinkOpponentHandlePlaySE +0806743c battle_controller_link_opponent.s LinkOpponentHandlePlayFanfareOrBGM +08067498 battle_controller_link_opponent.s LinkOpponentHandleFaintingCry +080674d4 battle_controller_link_opponent.s LinkOpponentHandleIntroSlide +08067508 battle_controller_link_opponent.s LinkOpponentHandleIntroTrainerBallThrow +08067618 battle_controller_link_opponent.s sub_8067618 +080676fc battle_controller_link_opponent.s sub_80676FC +08067718 battle_controller_link_opponent.s LinkOpponentHandleDrawPartyStatusSummary +0806782c battle_controller_link_opponent.s sub_806782C +08067874 battle_controller_link_opponent.s LinkOpponentHandleHidePartyStatusSummary +080678c4 battle_controller_link_opponent.s LinkOpponentHandleEndBounceEffect +080678d0 battle_controller_link_opponent.s LinkOpponentHandleSpriteInvisibility +08067930 battle_controller_link_opponent.s LinkOpponentHandleBattleAnimation +080679a4 battle_controller_link_opponent.s LinkOpponentHandleLinkStandbyMsg +080679c4 battle_controller_link_opponent.s LinkOpponentHandleResetActionMoveSelection +080679d0 battle_controller_link_opponent.s LinkOpponentHandleCmd55 +08067a70 battle_controller_link_opponent.s LinkOpponentCmdEnd +08067a74 pokemon.s ZeroBoxMonData +08067a8c pokemon.s ZeroMonData +08067b0c pokemon.s ZeroPlayerPartyMons +08067b2c pokemon.s ZeroEnemyPartyMons +08067b4c pokemon.s CreateMon +08067bbc pokemon.s CreateBoxMon +08067e90 pokemon.s CreateMonWithNature +08067ef8 pokemon.s CreateMonWithGenderNatureLetter +08067ff8 pokemon.s CreateMaleMon +08068060 pokemon.s CreateMonWithIVsPersonality +080680a0 pokemon.s CreateMonWithIVsOTID +08068114 pokemon.s CreateMonWithEVSpread +0806819c pokemon.s CreateBattleTowerMon +08068338 pokemon.s CreateBattleTowerMon2 +08068528 pokemon.s CreateApprenticeMon +08068634 pokemon.s CreateMonWithEVSpreadNatureOTID +080686fc pokemon.s sub_80686FC +080688a8 pokemon.s CreateObedientMon +080688f8 pokemon.s sub_80688F8 +08068a10 pokemon.s GetDeoxysStat +08068aa4 pokemon.s SetDeoxysStats +08068b48 pokemon.s sub_8068B48 +08068bb0 pokemon.s sub_8068BB0 +08068c18 pokemon.s CreateObedientEnemyMon +08068c78 pokemon.s CalculateBoxMonChecksum +08068d0c pokemon.s CalculateMonStats +08069004 pokemon.s BoxMonToMon +08069054 pokemon.s GetLevelFromMonExp +080690c0 pokemon.s GetLevelFromBoxMonExp +0806912c pokemon.s GiveMoveToMon +08069140 pokemon.s GiveMoveToBoxMon +080691b0 pokemon.s GiveMoveToBattleMon +080691f4 pokemon.s SetMonMoveSlot +08069234 pokemon.s SetBattleMonMoveSlot +08069264 pokemon.s GiveMonInitialMoveset +08069270 pokemon.s GiveBoxMonInitialMoveset +08069318 pokemon.s MonTryLearningNewMove +08069424 pokemon.s DeleteFirstMoveAndGiveMoveToMon +080694d0 pokemon.s DeleteFirstMoveAndGiveMoveToBoxMon +0806957c pokemon.s CalculateBaseDamage +08069dec pokemon.s CountAliveMonsInBattle +08069ed8 pokemon.s ShouldGetStatBadgeBoost +08069f34 pokemon.s GetDefaultMoveTarget +08069fb4 pokemon.s GetMonGender +08069fc4 pokemon.s GetBoxMonGender +0806a020 pokemon.s GetGenderFromSpeciesAndPersonality +0806a068 pokemon.s SetMultiuseSpriteTemplateToPokemon +0806a12c pokemon.s SetMultiuseSpriteTemplateToTrainerBack +0806a1c0 pokemon.s SetMultiuseSpriteTemplateToTrainerFront +0806a228 pokemon.s EncryptBoxMon +0806a24c pokemon.s DecryptBoxMon +0806a270 pokemon.s GetSubstruct +0806a518 pokemon.s GetMonData +0806a674 pokemon.s GetBoxMonData +0806acac pokemon.s SetMonData +0806ad9c pokemon.s SetBoxMonData +0806b408 pokemon.s CopyMon +0806b414 pokemon.s GiveMonToPlayer +0806b490 pokemon.s SendMonToPC +0806b53c pokemon.s CalculatePlayerPartyCount +0806b580 pokemon.s CalculateEnemyPartyCount +0806b5c4 pokemon.s GetMonsStateToDoubles +0806b638 pokemon.s GetMonsStateToDoubles_2 +0806b694 pokemon.s GetAbilityBySpecies +0806b6d8 pokemon.s GetMonAbility +0806b70c pokemon.s CreateSecretBaseEnemyParty +0806b830 pokemon.s GetSecretBaseTrainerPicIndex +0806b870 pokemon.s GetSecretBaseTrainerClass +0806b8b0 pokemon.s IsPlayerPartyAndPokemonStorageFull +0806b8e4 pokemon.s IsPokemonStorageFull +0806b914 pokemon.s GetSpeciesName +0806b960 pokemon.s CalculatePPWithBonus +0806b9a8 pokemon.s RemoveMonPPBonus +0806b9e4 pokemon.s RemoveBattleMonPPBonus +0806b9fc pokemon.s CopyPlayerPartyMonToBattleData +0806bd04 pokemon.s ExecuteTableBasedItemEffect +0806bd28 pokemon.s PokemonUseItemEffects +0806cd6c pokemon.s HealStatusConditions +0806cddc pokemon.s GetItemEffectParamOffset +0806cf24 pokemon.s sub_806CF24 +0806cf78 pokemon.s sub_806CF78 +0806d070 pokemon.s GetNature +0806d088 pokemon.s GetNatureFromPersonality +0806d098 pokemon.s GetEvolutionTargetSpecies +0806d3c0 pokemon.s HoennPokedexNumToSpecies +0806d40c pokemon.s NationalPokedexNumToSpecies +0806d458 pokemon.s NationalToHoennOrder +0806d4a4 pokemon.s SpeciesToNationalPokedexNum +0806d4c8 pokemon.s SpeciesToHoennPokedexNum +0806d4ec pokemon.s HoennToNationalOrder +0806d510 pokemon.s SpeciesToCryId +0806d544 pokemon.s sub_806D544 +0806d664 pokemon.s DrawSpindaSpots +0806d778 pokemon.s EvolutionRenameMon +0806d7ec pokemon.s sub_806D7EC +0806d82c pokemon.s GetLinkTrainerFlankId +0806d864 pokemon.s GetBattlerMultiplayerId +0806d888 pokemon.s GetTrainerEncounterMusicId +0806d8d4 pokemon.s ModifyStatByNature +0806d934 pokemon.s AdjustFriendship +0806dadc pokemon.s MonGainEVs +0806dc8c pokemon.s GetMonEVCount +0806dcb4 pokemon.s RandomlyGivePartyPokerus +0806dd7c pokemon.s CheckPartyPokerus +0806dde4 pokemon.s CheckPartyHasHadPokerus +0806de44 pokemon.s UpdatePartyPokerusTime +0806dec4 pokemon.s PartySpreadPokerus +0806df74 pokemon.s TryIncrementMonLevel +0806e00c pokemon.s CanMonLearnTMHM +0806e064 pokemon.s CanSpeciesLearnTMHM +0806e0b4 pokemon.s GetMoveRelearnerMoves +0806e204 pokemon.s GetLevelUpMovesBySpecies +0806e25c pokemon.s GetNumberOfRelearnableMoves +0806e3c0 pokemon.s SpeciesToPokedexNum +0806e3f8 pokemon.s IsSpeciesInHoennDex +0806e414 pokemon.s ClearBattleMonForms +0806e42c pokemon.s GetBattleBGM +0806e64c pokemon.s PlayBattleBGM +0806e668 pokemon.s PlayMapChosenOrBattleBGM +0806e694 pokemon.s sub_806E694 +0806e6cc pokemon.s sub_806E6CC +0806e708 pokemon.s GetMonFrontSpritePal +0806e740 pokemon.s GetMonSpritePalFromSpeciesAndPersonality +0806e794 pokemon.s GetMonSpritePalStruct +0806e7cc pokemon.s GetMonSpritePalStructFromOtIdPersonality +0806e804 pokemon.s IsHMMove2 +0806e840 pokemon.s IsMonSpriteNotFlipped +0806e858 pokemon.s GetMonFlavorRelation +0806e880 pokemon.s GetFlavorRelationByPersonality +0806e8a8 pokemon.s IsTradedMon +0806e8d4 pokemon.s IsOtherTrainer +0806e924 pokemon.s MonRestorePP +0806e930 pokemon.s BoxMonRestorePP +0806e994 pokemon.s SetMonPreventsSwitchingString +0806ea40 pokemon.s GetWildMonTableIdInAlteringCave +0806ea68 pokemon.s SetWildMonHeldItem +0806eba4 pokemon.s IsMonShiny +0806ebd0 pokemon.s IsShinyOtIdPersonality +0806ebf8 pokemon.s GetTrainerPartnerName +0806ec70 pokemon.s Task_AnimateAfterDelay +0806ecac pokemon.s Task_PokemonSummaryAnimateAfterDelay +0806ecec pokemon.s BattleAnimateFrontSprite +0806ed40 pokemon.s DoMonFrontSpriteAnimation +0806ee0c pokemon.s PokemonSummaryDoMonAnimation +0806ee98 pokemon.s StopPokemonAnimationDelayTask +0806eeb4 pokemon.s BattleAnimateBackSprite +0806ef08 pokemon.s sub_806EF08 +0806ef84 pokemon.s sub_806EF84 +0806eff0 pokemon.s FacilityClassToPicIndex +0806f000 pokemon.s PlayerGenderToFrontTrainerPicId +0806f01c pokemon.s HandleSetPokedexFlag +0806f07c pokemon.s GetTrainerClassNameFromId +0806f0b0 pokemon.s GetTrainerNameFromId +0806f0d4 pokemon.s HasTwoFramesAnimation +0806f104 pokemon.s sub_806F104 +0806f160 pokemon.s sub_806F160 +0806f1fc pokemon.s sub_806F1FC +0806f2ac pokemon.s sub_806F2AC +0806f47c pokemon.s sub_806F47C +0806f4f8 pokemon.s sub_806F4F8 +0806f534 trig.s Sin +0806f550 trig.s Cos +0806f570 trig.s Sin2 +0806f5b4 trig.s Cos2 +0806f5cc random.s Random +0806f5f8 random.s SeedRng +0806f610 random.s SeedRng2 +0806f620 random.s Random2 +0806f640 util.s CreateInvisibleSpriteWithCallback +0806f67c util.s StoreWordInTwoHalfwords +0806f684 util.s LoadWordFromTwoHalfwords +0806f694 util.s SetBgAffineStruct +0806f6c0 util.s DoBgAffineSet +0806f70c util.s CopySpriteTiles +0806f8a8 util.s CountTrailingZeroBits +0806f8d0 util.s CalcCRC16 +0806f928 util.s CalcCRC16WithTable +0806f96c util.s CalcByteArraySum +0806f98c util.s BlendPalette +0806fa2c daycare.s GetMonNick +0806fa4c daycare.s GetBoxMonNick +0806fa6c daycare.s CountPokemonInDaycare +0806fa9c daycare.s InitDaycareMailRecordMixing +0806fb08 daycare.s Daycare_FindEmptySpot +0806fb38 daycare.s StorePokemonInDaycare +0806fbf4 daycare.s StorePokemonInEmptyDaycareSlot +0806fc18 daycare.s StoreSelectedPokemonInDaycare +0806fc48 daycare.s ShiftDaycareSlots +0806fca4 daycare.s ApplyDaycareExperience +0806fcf8 daycare.s TakeSelectedPokemonFromDaycare +0806fd9c daycare.s TakeSelectedPokemonMonFromDaycareShiftSlots +0806fdc4 daycare.s TakePokemonFromDaycare +0806fdec daycare.s GetLevelAfterDaycareSteps +0806fe28 daycare.s GetNumLevelsGainedFromSteps +0806fe54 daycare.s GetNumLevelsGainedForDaycareMon +0806fe88 daycare.s GetDaycareCostForSelectedMon +0806fec0 daycare.s GetDaycareCostForMon +0806fed8 daycare.s GetDaycareCost +0806ff04 daycare.s Debug_AddDaycareSteps +0806ff30 daycare.s GetNumLevelsGainedFromDaycare +0806ff80 daycare.s ClearDaycareMonMail +0806ffb0 daycare.s ClearDaycareMon +0806ffd0 daycare.s ClearAllDaycareData +08070004 daycare.s GetEggSpecies +08070084 daycare.s GetSlotToInheritNature +08070114 daycare.s _TriggerPendingDaycareEgg +080701b8 daycare.s _TriggerPendingDaycareMaleEgg +080701e0 daycare.s TriggerPendingDaycareEgg +080701fc daycare.s TriggerPendingDaycareMaleEgg +08070218 daycare.s RemoveIVIndexFromList +08070260 daycare.s InheritIVs +080703c8 daycare.s GetEggMoves +08070470 daycare.s BuildEggMoveset +08070710 daycare.s RemoveEggFromDayCare +08070728 daycare.s RejectEggFromDayCare +08070744 daycare.s AlterEggSpeciesWithIncenseItem +080707a4 daycare.s GiveVoltTackleIfLightBall +080707ec daycare.s DetermineEggSpeciesAndParentSlots +080708c8 daycare.s _GiveEggFromDaycare +08070954 daycare.s CreateEgg +08070a0c daycare.s SetInitialEggData +08070aa8 daycare.s GiveEggFromDaycare +08070ac4 daycare.s _DoEggActions_CheckHatch +08070bd0 daycare.s ShouldEggHatch +08070bf0 daycare.s IsEggPending +08070c04 daycare.s _GetDaycareMonNicknames +08070c58 daycare.s GetSelectedMonNickAndSpecies +08070c94 daycare.s GetDaycareMonNicknames +08070cb0 daycare.s GetDaycareState +08070cf8 daycare.s GetDaycarePokemonCount +08070d1c daycare.s EggGroupsOverlap +08070d4c daycare.s GetDaycareCompatibilityScore +08070e6c daycare.s GetDaycareCompatibilityScoreFromSave +08070e8c daycare.s SetDaycareCompatibilityString +08070ecc daycare.s NameHasGenderSymbol +08070f48 daycare.s AppendGenderSymbol +08070f98 daycare.s AppendMonGenderSymbol +08070fb4 daycare.s GetDaycareLevelMenuText +08071038 daycare.s GetDaycareLevelMenuLevelText +0807109c daycare.s DaycareAddTextPrinter +08071110 daycare.s DaycarePrintMonNick +08071148 daycare.s DaycarePrintMonLvl +080711b8 daycare.s DaycarePrintMonInfo +08071204 daycare.s Task_HandleDaycareLevelMenuInput +080712c0 daycare.s ShowDaycareLevelMenu +08071330 daycare.s ChooseSendDaycareMon +08071348 egg_hatch.s CreatedHatchedMon +080714b8 egg_hatch.s AddHatchedMonToParty +08071578 egg_hatch.s ScriptHatchMon +0807158c egg_hatch.s sub_807158C +08071614 egg_hatch.s sub_8071614 +0807163c egg_hatch.s EggHatchCreateMonSprite +0807172c egg_hatch.s VBlankCB_EggHatch +08071740 egg_hatch.s EggHatch +08071760 egg_hatch.s Task_EggHatch +080717a0 egg_hatch.s CB2_EggHatch_0 +080719fc egg_hatch.s EggHatchSetMonNickname +08071a3c egg_hatch.s Task_EggHatchPlayBGM +08071a94 egg_hatch.s CB2_EggHatch_1 +08071e34 egg_hatch.s SpriteCB_Egg_0 +08071e8c egg_hatch.s SpriteCB_Egg_1 +08071ef0 egg_hatch.s SpriteCB_Egg_2 +08071fa4 egg_hatch.s SpriteCB_Egg_3 +08071fc8 egg_hatch.s SpriteCB_Egg_4 +08072048 egg_hatch.s SpriteCB_Egg_5 +080720e8 egg_hatch.s SpriteCB_EggShard +08072140 egg_hatch.s CreateRandomEggShardSprite +08072194 egg_hatch.s CreateEggShardSprite +08072214 egg_hatch.s EggHatchPrintMessage +0807228c egg_hatch.s GetEggStepsToSubtract +080722e0 egg_hatch.s sub_80722E0 +08072304 battle_interface.s DummiedOutFunction +08072308 battle_interface.s sub_8072308 +080724a8 battle_interface.s sub_80724A8 +080724dc battle_interface.s CreateBattlerHealthboxSprites +08072804 battle_interface.s CreateSafariPlayerHealthboxSprites +080728a4 battle_interface.s GetHealthboxElementGfxPtr +080728b4 battle_interface.s SpriteCB_HealthBar +08072924 battle_interface.s SpriteCB_HealthBoxOther +0807294c battle_interface.s SetBattleBarStruct +08072984 battle_interface.s SetHealthboxSpriteInvisible +080729d0 battle_interface.s SetHealthboxSpriteVisible +08072a24 battle_interface.s UpdateSpritePos +08072a44 battle_interface.s DestoryHealthboxSprite +08072a84 battle_interface.s DummyBattleInterfaceFunc +08072a88 battle_interface.s UpdateOamPriorityInAllHealthboxes +08072b18 battle_interface.s InitBattlerHealthboxCoords +08072b94 battle_interface.s UpdateLvlInHealthbox +08072c38 battle_interface.s UpdateHpTextInHealthbox +08072e0c battle_interface.s UpdateHpTextInHealthboxInDoubles +080730d4 battle_interface.s PrintSafariMonInfo +08073314 battle_interface.s SwapHpBarsWithHpText +080735dc battle_interface.s CreatePartyStatusSummarySprites +08073c30 battle_interface.s Task_HidePartyStatusSummary +08073e08 battle_interface.s sub_8073E08 +08073e64 battle_interface.s sub_8073E64 +08073f98 battle_interface.s sub_8073F98 +08074078 battle_interface.s SpriteCB_StatusSummaryBar +08074090 battle_interface.s sub_8074090 +080740c4 battle_interface.s SpriteCB_StatusSummaryBallsOnBattleStart +08074158 battle_interface.s sub_8074158 +080741c8 battle_interface.s SpriteCB_StatusSummaryBallsOnSwitchout +080741e8 battle_interface.s UpdateNickInHealthbox +08074310 battle_interface.s TryAddPokeballIconToHealthbox +080743f8 battle_interface.s UpdateStatusIconInHealthbox +080746a8 battle_interface.s GetStatusIconForBattlerId +08074770 battle_interface.s UpdateSafariBallsTextOnHealthbox +080747d8 battle_interface.s UpdateLeftNoOfBallsTextOnHealthbox +08074860 battle_interface.s UpdateHealthboxAttribute +08074aa0 battle_interface.s MoveBattleBar +08074b9c battle_interface.s MoveBattleBarGraphically +08074db8 battle_interface.s CalcNewBarValue +08074e8c battle_interface.s CalcBarFilledPixels +08074f28 battle_interface.s sub_8074F28 +08074f88 battle_interface.s sub_8074F88 +08074fe8 battle_interface.s GetScaledExpFraction +08075034 battle_interface.s GetScaledHPFraction +08075060 battle_interface.s GetHPBarLevel +08075094 battle_interface.s AddTextPrinterAndCreateWindowOnHealthbox +0807512c battle_interface.s RemoveWindowOnHealthbox +0807513c battle_interface.s FillHealthboxObject +08075170 battle_interface.s HpTextIntoHealthboxObject +08075198 battle_interface.s TextIntoHealthboxObject +080751e4 battle_interface.s SafariTextIntoHealthboxObject +0807521c smokescreen.s sub_807521C +08075370 smokescreen.s sub_8075370 +080753b4 smokescreen.s sub_80753B4 +080753e8 pokeball.s DoPokeballSendOutAnimation +08075450 pokeball.s Task_DoPokeballSendOutAnim +08075620 pokeball.s SpriteCB_TestBallThrow +080756d4 pokeball.s sub_80756D4 +080756e0 pokeball.s sub_80756E0 +0807574c pokeball.s sub_807574C +080757e4 pokeball.s sub_80757E4 +08075838 pokeball.s sub_8075838 +08075930 pokeball.s sub_8075930 +08075970 pokeball.s sub_8075970 +08075abc pokeball.s Task_PlayCryWhenReleasedFromBall +08075d14 pokeball.s SpriteCB_ReleaseMonFromBall +08075fb4 pokeball.s sub_8075FB4 +08075fd4 pokeball.s HandleBallAnimEnd +080760f8 pokeball.s sub_80760F8 +080761b4 pokeball.s SpriteCB_PlayerMonSendOut_1 +08076204 pokeball.s SpriteCB_PlayerMonSendOut_2 +08076374 pokeball.s SpriteCB_ReleaseMon2FromBall +08076398 pokeball.s SpriteCB_OpponentMonSendOut +080763f8 pokeball.s AnimateBallOpenParticlesForPokeball +08076420 pokeball.s LaunchBallFadeMonTaskForPokeball +08076438 pokeball.s CreatePokeballSpriteToReleaseMon +08076524 pokeball.s sub_8076524 +080765e0 pokeball.s sub_80765E0 +0807671c pokeball.s sub_807671C +080767d4 pokeball.s sub_80767D4 +0807687c pokeball.s sub_807687C +080768f0 pokeball.s sub_80768F0 +0807690c pokeball.s Unref_DestroySpriteAndFreeResources +08076918 pokeball.s sub_8076918 +080769a8 pokeball.s sub_80769A8 +080769cc pokeball.s sub_80769CC +080769f4 pokeball.s DoHitAnimHealthboxEffect +08076a38 pokeball.s SpriteCB_HitAnimHealthoxEffect +08076a78 pokeball.s LoadBallGfx +08076ae8 pokeball.s FreeBallGfx +08076b14 pokeball.s GetBattlerPokeballItemId +08076b68 load_save.s CheckForFlashMemory +08076b94 load_save.s ClearSav2 +08076bb8 load_save.s ClearSav1 +08076bdc load_save.s SetSaveBlocksPointers +08076c2c load_save.s MoveSaveBlocks_ResetHeap +08076d24 load_save.s UseContinueGameWarp +08076d34 load_save.s ClearContinueGameWarpStatus +08076d48 load_save.s SetContinueGameWarpStatus +08076d5c load_save.s SetContinueGameWarpStatusToDynamicWarp +08076d78 load_save.s ClearContinueGameWarpStatus2 +08076d8c load_save.s SavePlayerParty +08076dd4 load_save.s LoadPlayerParty +08076e1c load_save.s SaveEventObjects +08076e64 load_save.s LoadEventObjects +08076eac load_save.s SaveSerializedGame +08076ebc load_save.s LoadSerializedGame +08076ecc load_save.s LoadPlayerBag +08076fe0 load_save.s SavePlayerBag +08077100 load_save.s ApplyNewEncryptionKeyToHword +08077118 load_save.s ApplyNewEncryptionKeyToWord +08077130 load_save.s ApplyNewEncryptionKeyToAllEncryptedData +08077170 trade.s sub_8077170 +080771ac trade.s sub_80771AC +080771bc trade.s sub_80771BC +08077200 trade.s _GetBlockReceivedStatus +08077210 trade.s sub_8077210 +08077234 trade.s sub_8077234 +08077260 trade.s sub_8077260 +08077288 trade.s sub_8077288 +08077294 trade.s _IsLinkTaskFinished +080772a4 trade.s sub_80772A4 +080773ac trade.s sub_80773AC +080773d0 trade.s sub_80773D0 +08077b74 trade.s sub_8077B74 +0807811c trade.s sub_807811C +08078130 trade.s sub_8078130 +0807816c trade.s sub_807816C +080781c8 trade.s sub_80781C8 +0807825c trade.s sub_807825C +080782b8 trade.s sub_80782B8 +08078388 trade.s sub_8078388 +08078438 trade.s Trade_Memcpy +08078458 trade.s shedinja_maker_maybe +080787b8 trade.s sub_80787B8 +080787e0 trade.s sub_80787E0 +08078900 trade.s sub_8078900 +080789fc trade.s sub_80789FC +08078bfc trade.s sub_8078BFC +08078c10 trade.s sub_8078C10 +08078c34 trade.s sub_8078C34 +08078c6c trade.s sub_8078C6C +08078cb8 trade.s TradeMenuMoveCursor +08078d78 trade.s sub_8078D78 +08078dbc trade.s sub_8078DBC +08078ef8 trade.s sub_8078EF8 +08078f50 trade.s sub_8078F50 +08079034 trade.s sub_8079034 +0807905c trade.s sub_807905C +080790d4 trade.s sub_80790D4 +08079174 trade.s sub_8079174 +08079218 trade.s sub_8079218 +0807929c trade.s sub_807929C +080792e4 trade.s sub_80792E4 +0807935c trade.s sub_807935C +08079398 trade.s sub_8079398 +080793c4 trade.s Wait2SecondsAndCreateYesNoMenu +08079408 trade.s sub_8079408 +08079490 trade.s sub_8079490 +080794cc trade.s sub_80794CC +08079550 trade.s sub_8079550 +0807957c trade.s sub_807957C +080795ac trade.s sub_80795AC +0807967c trade.s sub_807967C +080796b4 trade.s sub_80796B4 +08079a3c trade.s sub_8079A3C +08079aa4 trade.s sub_8079AA4 +08079b84 trade.s sub_8079B84 +08079be0 trade.s sub_8079BE0 +08079c4c trade.s sub_8079C4C +08079e44 trade.s sub_8079E44 +08079ea8 trade.s sub_8079EA8 +08079f74 trade.s sub_8079F74 +08079f88 trade.s sub_8079F88 +0807a000 trade.s sub_807A000 +0807a024 trade.s sub_807A024 +0807a048 trade.s sub_807A048 +0807a09c trade.s sub_807A09C +0807a0c4 trade.s sub_807A0C4 +0807a19c trade.s sub_807A19C +0807a1f0 trade.s sub_807A1F0 +0807a308 trade.s sub_807A308 +0807a320 trade.s sub_807A320 +0807a468 trade.s sub_807A468 +0807a53c trade.s sub_807A53C +0807a5b0 trade.s sub_807A5B0 +0807a5f4 trade.s sub_807A5F4 +0807a728 trade.s sub_807A728 +0807a7bc trade.s IsDeoxysOrMewUntradable +0807a7e0 trade.s sub_807A7E0 +0807a8d0 trade.s sub_807A8D0 +0807a918 trade.s sub_807A918 +0807aa28 trade.s sub_807AA28 +0807aa4c trade.s sub_807AA4C +0807aa7c trade.s sub_807AA7C +0807aabc trade.s sub_807AABC +0807aae0 trade.s sub_807AAE0 +0807ab04 trade.s sub_807AB04 +0807ab28 trade.s sub_807AB28 +0807abcc trade.s sub_807ABCC +0807ac24 trade.s sub_807AC24 +0807ac3c trade.s sub_807AC3C +0807ac64 trade.s sub_807AC64 +0807acdc trade.s sub_807ACDC +0807acfc trade.s sub_807ACFC +0807ae50 trade.s sub_807AE50 +0807b140 trade.s sub_807B140 +0807b154 trade.s sub_807B154 +0807b170 trade.s sub_807B170 +0807b270 trade.s sub_807B270 +0807b464 trade.s sub_807B464 +0807b4c4 trade.s sub_807B4C4 +0807b4d0 trade.s sub_807B4D0 +0807b5b8 trade.s sub_807B5B8 +0807b60c trade.s sub_807B60C +0807b62c trade.s sub_807B62C +0807ba94 trade.s sub_807BA94 +0807bad8 trade.s SetTradeSceneStrings +0807bbc8 trade.s sub_807BBC8 +0807bbec trade.s sub_807BBEC +0807cfc8 trade.s sub_807CFC8 +0807e414 trade.s c2_08053788 +0807e4dc trade.s sub_807E4DC +0807e55c trade.s sub_807E55C +0807e5d8 trade.s sub_807E5D8 +0807e64c trade.s sub_807E64C +0807e6ac trade.s sub_807E6AC +0807e73c trade.s GetInGameTradeSpeciesInfo +0807e784 trade.s sub_807E784 +0807e7e8 trade.s _CreateInGameTradePokemon +0807e974 trade.s sub_807E974 +0807e9d4 trade.s GetTradeSpecies +0807ea10 trade.s CreateInGameTradePokemon +0807ea2c trade.s sub_807EA2C +0807eacc trade.s sub_807EACC +0807eb50 trade.s sub_807EB50 +0807f068 trade.s c2_080543C4 +0807f0e4 trade.s DoInGameTradeScene +0807f110 trade.s sub_807F110 +0807f14c trade.s sub_807F14C +0807f19c trade.s sub_807F19C +0807f1a8 trade.s sub_807F1A8 +0807f210 trade.s c3_08054588 +0807f2e4 trade.s c3_0805465C +0807f39c trade.s sub_807F39C +0807f464 trade.s sub_807F464 +0807f738 berry_blender.s Blender_ControlHitPitch +0807f764 berry_blender.s VBlankCB0_BerryBlender +0807f7d8 berry_blender.s LoadBerryBlenderGfx +0807f9d0 berry_blender.s sub_807F9D0 +0807fa34 berry_blender.s InitBerryBlenderWindows +0807fa80 berry_blender.s DoBerryBlending +0807fac8 berry_blender.s sub_807FAC8 +0807fd08 berry_blender.s sub_807FD08 +0807fd64 berry_blender.s sub_807FD64 +0807fd90 berry_blender.s sub_807FD90 +0807fe14 berry_blender.s Blender_CopyBerryData +0807fe54 berry_blender.s Blender_SetPlayerNamesLocal +0807ffa4 berry_blender.s sub_807FFA4 +08080018 berry_blender.s sub_8080018 +08080588 berry_blender.s sub_8080588 +08080624 berry_blender.s sub_8080624 +08080674 berry_blender.s Blender_SetOpponentsBerryData +0808074c berry_blender.s sub_808074C +080807bc berry_blender.s Blender_PrintPlayerNames +080808d4 berry_blender.s sub_80808D4 +08080df8 berry_blender.s sub_8080DF8 +08080e20 berry_blender.s sub_8080E20 +08080e6c berry_blender.s sub_8080E6C +08080ea4 berry_blender.s sub_8080EA4 +08080fd0 berry_blender.s sub_8080FD0 +080810f8 berry_blender.s sub_80810F8 +08081224 berry_blender.s sub_8081224 +08081288 berry_blender.s sub_8081288 +08081370 berry_blender.s sub_8081370 +080814b0 berry_blender.s sub_80814B0 +080814f4 berry_blender.s sub_80814F4 +08081744 berry_blender.s sub_8081744 +08081898 berry_blender.s sub_8081898 +08081960 berry_blender.s Blender_DummiedOutFunc +08081964 berry_blender.s sub_8081964 +080819b8 berry_blender.s Blender_GetPokeblockColor +08081bb0 berry_blender.s sub_8081BB0 +08081bbc berry_blender.s sub_8081BBC +08081bc8 berry_blender.s sub_8081BC8 +08081bd4 berry_blender.s sub_8081BD4 +08081be0 berry_blender.s Blender_CalculatePokeblock +08081e04 berry_blender.s BlenderDebug_CalculatePokeblock +08081e20 berry_blender.s sub_8081E20 +08081f94 berry_blender.s sub_8081F94 +08081fc8 berry_blender.s CB2_HandleBlenderEndGame +080824fc berry_blender.s LinkPlayAgainHandleSaving +08082644 berry_blender.s CB2_HandlePlayerLinkPlayAgainChoice +08082924 berry_blender.s CB2_HandlePlayerPlayAgainChoice +08082ad4 berry_blender.s sub_8082AD4 +08082cb4 berry_blender.s sub_8082CB4 +08082d18 berry_blender.s GetBlenderArrowPosition +08082d28 berry_blender.s sub_8082D28 +08082df4 berry_blender.s BerryBlender_SetBackgroundsPos +08082e3c berry_blender.s sub_8082E3C +08082e84 berry_blender.s sub_8082E84 +08082f68 berry_blender.s sub_8082F68 +08082f9c berry_blender.s sub_8082F9C +08082fdc berry_blender.s Blender_SetParticipantBerryData +08083010 berry_blender.s sub_8083010 +080830c0 berry_blender.s sub_80830C0 +08083140 berry_blender.s sub_8083140 +08083170 berry_blender.s sub_8083170 +08083210 berry_blender.s sub_8083210 +08083230 berry_blender.s sub_8083230 +080832bc berry_blender.s sub_80832BC +080832e8 berry_blender.s sub_80832E8 +0808330c berry_blender.s sub_808330C +08083334 berry_blender.s sub_8083334 +08083380 berry_blender.s sub_8083380 +080833f8 berry_blender.s sub_80833F8 +08083418 berry_blender.s TryUpdateBerryBlenderRecord +08083450 berry_blender.s Blender_PrintBlendingResults +080838ac berry_blender.s Blender_PrintMadePokeblockString +0808395c berry_blender.s Blender_SortBasedOnPoints +080839b4 berry_blender.s Blender_SortScores +08083b08 berry_blender.s Blender_PrintBlendingRanking +08083e24 berry_blender.s ShowBerryBlenderRecordWindow +08083f3c berry_blender.s sub_8083F3C +08083f94 berry_blender.s TryAddContestLinkTvShow +080840d4 berry_blender.s Blender_AddTextPrinter +0808417c berry_blender.s Blender_PrintText +080841e4 play_time.s PlayTimeCounter_Reset +08084208 play_time.s PlayTimeCounter_Start +08084230 play_time.s PlayTimeCounter_Stop +0808423c play_time.s PlayTimeCounter_Update +080842a4 play_time.s PlayTimeCounter_SetToMax +080842cc new_game.s SetTrainerId +080842dc new_game.s GetTrainerId +080842f4 new_game.s CopyTrainerId +08084310 new_game.s InitPlayerTrainerId +0808433c new_game.s SetDefaultOptions +08084390 new_game.s ClearPokedexFlags +080843c0 new_game.s ClearAllContestWinnerPics +08084400 new_game.s ClearFrontierRecord +0808444c new_game.s WarpToTruck +0808446c new_game.s Sav2_ClearSetDefault +0808447c new_game.s ResetMenuAndMonGlobals +080844a0 new_game.s NewGameInitData +080845cc new_game.s ResetMiniGamesResults +08084620 overworld.s DoWhiteOut +08084660 overworld.s Overworld_ResetStateAfterFly +0808469c overworld.s Overworld_ResetStateAfterTeleport +080846e4 overworld.s Overworld_ResetStateAfterDigEscRope +08084720 overworld.s Overworld_ResetStateAfterWhiteOut +08084788 overworld.s sub_8084788 +080847a8 overworld.s ResetGameStats +080847c4 overworld.s IncrementGameStat +080847f8 overworld.s GetGameStat +08084830 overworld.s SetGameStat +08084864 overworld.s ApplyNewEncryptionKeyToGameStats +08084894 overworld.s LoadEventObjTemplatesFromHeader +080848e0 overworld.s LoadSaveblockEventObjScripts +08084910 overworld.s Overworld_SetEventObjTemplateCoords +0808494c overworld.s Overworld_SetEventObjTemplateMovementType +08084980 overworld.s mapdata_load_assets_to_gpu_and_full_redraw +080849a8 overworld.s GetMapLayout +080849d0 overworld.s ApplyCurrentWarp +08084a14 overworld.s ClearDiveAndHoleWarps +08084a34 overworld.s SetWarpData +08084a54 overworld.s IsDummyWarp +08084a90 overworld.s Overworld_GetMapHeaderByGroupAndId +08084aa8 overworld.s GetDestinationWarpMapHeader +08084acc overworld.s LoadCurrentMapData +08084b1c overworld.s LoadSaveblockMapHeader +08084b5c overworld.s SetPlayerCoordsFromWarp +08084bd8 overworld.s WarpIntoMap +08084bec overworld.s SetWarpDestination +08084c28 overworld.s SetWarpDestinationToMapWarp +08084c48 overworld.s SetDynamicWarp +08084c7c overworld.s SetDynamicWarpWithCoords +08084cb4 overworld.s SetWarpDestinationToDynamicWarp +08084ccc overworld.s SetWarpDestinationToHealLocation +08084d04 overworld.s SetWarpDestinationToLastHealLocation +08084d1c overworld.s SetLastHealLocationWarp +08084d5c overworld.s UpdateEscapeWarp +08084dd4 overworld.s SetEscapeWarp +08084e14 overworld.s SetWarpDestinationToEscapeWarp +08084e2c overworld.s SetFixedDiveWarp +08084e68 overworld.s SetWarpDestinationToDiveWarp +08084e80 overworld.s SetFixedHoleWarp +08084ebc overworld.s SetWarpDestinationToFixedHoleWarp +08084f14 overworld.s SetWarpDestinationToContinueGameWarp +08084f2c overworld.s SetContinueGameWarp +08084f6c overworld.s SetContinueGameWarpToHealLocation +08084fac overworld.s SetContinueGameWarpToDynamicWarp +08084fc0 overworld.s GetMapConnection +08084ff8 overworld.s SetDiveWarp +08085058 overworld.s SetDiveWarpEmerge +08085078 overworld.s SetDiveWarpDive +08085098 overworld.s LoadMapFromCameraTransition +08085160 overworld.s mli0_load_map +08085268 overworld.s ResetInitialPlayerAvatarState +08085278 overworld.s StoreInitialPlayerAvatarState +080852d4 overworld.s GetInitialPlayerAvatarState +0808532c overworld.s GetAdjustedInitialTransitionFlags +0808538c overworld.s GetAdjustedInitialDirection +08085450 overworld.s GetCenterScreenMetatileBehavior +08085474 overworld.s Overworld_IsBikingAllowed +08085494 overworld.s SetDefaultFlashLevel +080854ec overworld.s Overworld_SetFlashLevel +08085514 overworld.s Overworld_GetFlashLevel +08085524 overworld.s SetCurrentMapLayout +08085540 overworld.s sub_8085540 +0808554c overworld.s sub_808554C +08085558 overworld.s ShouldLegendaryMusicPlayAtLocation +080855b4 overworld.s NoMusicInSotopolisWithLegendaries +080855e8 overworld.s IsInfiltratedWeatherInstitute +08085618 overworld.s IsInflitratedSpaceCenter +0808565c overworld.s GetLocationMusic +080856d4 overworld.s GetCurrLocationDefaultMusic +08085738 overworld.s GetWarpDestinationMusic +08085778 overworld.s Overworld_ResetMapMusic +08085784 overworld.s Overworld_PlaySpecialMapMusic +080857f4 overworld.s Overworld_SetSavedMusic +08085800 overworld.s Overworld_ClearSavedMusic +08085810 overworld.s sub_8085810 +08085898 overworld.s Overworld_ChangeMusicToDefault +080858c4 overworld.s Overworld_ChangeMusicTo +080858f0 overworld.s GetMapMusicFadeoutSpeed +08085910 overworld.s TryFadeOutOldMapMusic +080859a0 overworld.s BGMusicStopped +080859b0 overworld.s Overworld_FadeOutMapMusic +080859bc overworld.s PlayAmbientCry +08085a3c overworld.s UpdateAmbientCry +08085b2c overworld.s ChooseAmbientCrySpecies +08085b74 overworld.s GetMapTypeByGroupAndId +08085b8c overworld.s GetMapTypeByWarpData +08085ba4 overworld.s GetCurrentMapType +08085bbc overworld.s GetLastUsedWarpMapType +08085bd0 overworld.s IsMapTypeOutdoors +08085bf4 overworld.s Overworld_MapTypeAllowsTeleportAndFly +08085c14 overworld.s IsMapTypeIndoors +08085c30 overworld.s GetSavedWarpRegionMapSectionId +08085c58 overworld.s GetCurrentRegionMapSectionId +08085c80 overworld.s GetCurrentMapBattleScene +08085ca8 overworld.s InitOverworldBgs +08085d34 overworld.s CleanupOverworldWindowsAndTilemaps +08085d80 overworld.s ResetSafariZoneFlag_ +08085d8c overworld.s IsUpdateLinkStateCBActive +08085dac overworld.s DoCB1_Overworld +08085e04 overworld.s CB1_Overworld +08085e24 overworld.s OverworldBasic +08085e50 overworld.s CB2_OverworldBasic +08085e5c overworld.s CB2_Overworld +08085e88 overworld.s SetMainCallback1 +08085e94 overworld.s SetUnusedCallback +08085ea0 overworld.s map_post_load_hook_exec +08085ef8 overworld.s CB2_NewGame +08085f58 overworld.s CB2_WhiteOut +08085fcc overworld.s CB2_LoadMap +08085ffc overworld.s CB2_LoadMap2 +08086024 overworld.s sub_8086024 +08086074 overworld.s sub_8086074 +08086098 overworld.s c2_80567AC +080860c8 overworld.s CB2_ReturnToField +080860f4 overworld.s CB2_ReturnToFieldLocal +08086118 overworld.s CB2_ReturnToFieldLink +08086140 overworld.s CB2_ReturnToFieldFromMultiplayer +08086194 overworld.s CB2_ReturnToFieldWithOpenMenu +080861b0 overworld.s CB2_ReturnToFieldContinueScript +080861cc overworld.s CB2_ReturnToFieldContinueScriptPlayMapMusic +080861e8 overworld.s sub_80861E8 +08086204 overworld.s sub_8086204 +08086230 overworld.s CB2_ContinueSavedGame +0808631c overworld.s FieldClearVBlankHBlankCallbacks +08086380 overworld.s SetFieldVBlankCallback +08086390 overworld.s VBlankCB_Field +080863b0 overworld.s InitCurrentFlashLevelScanlineEffect +080863f8 overworld.s map_loading_iteration_3 +0808651c overworld.s load_map_stuff +08086638 overworld.s sub_8086638 +08086698 overworld.s map_loading_iteration_2_link +080867b0 overworld.s do_load_map_stuff_loop +080867c8 overworld.s sub_80867C8 +080867d8 overworld.s sub_80867D8 +08086860 overworld.s sub_8086860 +08086878 overworld.s InitOverworldGraphicsRegisters +08086988 overworld.s sub_8086988 +080869dc overworld.s sub_80869DC +08086a04 overworld.s mli4_mapscripts_and_other +08086a68 overworld.s sub_8086A68 +08086a80 overworld.s sub_8086A80 +08086aac overworld.s SetCameraToTrackGuestPlayer +08086ac8 overworld.s SetCameraToTrackGuestPlayer_2 +08086ae4 overworld.s sub_8086AE4 +08086b14 overworld.s sub_8086B14 +08086b9c overworld.s CreateLinkPlayerSprites +08086bd8 overworld.s CB1_UpdateLinkState +08086c2c overworld.s ResetAllMultiplayerState +08086c40 overworld.s ClearAllPlayerKeys +08086c50 overworld.s SetKeyInterceptCallback +08086c64 overworld.s CheckRfuKeepAliveTimer +08086c90 overworld.s ResetAllTradingStates +08086ca8 overworld.s AreAllPlayersInTradingState +08086ce0 overworld.s IsAnyPlayerInTradingState +08086d18 overworld.s HandleLinkPlayerKeyInput +08086f38 overworld.s UpdateAllLinkPlayers +08086fa0 overworld.s UpdateHeldKeyCode +0808700c overworld.s KeyInterCB_ReadButtons +08087068 overworld.s GetDirectionForDpadKey +0808709c overworld.s ResetPlayerHeldKeys +080870b0 overworld.s KeyInterCB_SelfIdle +080870ec overworld.s sub_80870EC +080870f8 overworld.s KeyInterCB_DeferToEventScript +0808711c overworld.s KeyInterCB_DeferToRecvQueue +08087140 overworld.s KeyInterCB_DeferToSendQueue +08087164 overworld.s KeyInterCB_DoNothingAndKeepAlive +08087170 overworld.s sub_8087170 +080871ac overworld.s sub_80871AC +080871c0 overworld.s KeyInterCB_SendNothing +080871c4 overworld.s KeyInterCB_WaitForPlayersToExit +080871fc overworld.s KeyInterCB_SendExitRoomKey +08087210 overworld.s KeyInterCB_SendNothing_2 +08087214 overworld.s sub_8087214 +0808727c overworld.s sub_808727C +08087288 overworld.s sub_8087288 +0808729c overworld.s sub_808729C +080872b0 overworld.s QueueExitLinkRoomKey +080872c4 overworld.s sub_80872C4 +080872d8 overworld.s LoadTradeRoomPlayer +08087340 overworld.s sub_8087340 +08087358 overworld.s sub_8087340_2 +08087370 overworld.s TryGetTileEventScript +08087388 overworld.s PlayerIsAtSouthExit +080873b4 overworld.s TryInteractWithPlayer +08087480 overworld.s GetDirectionForEventScript +08087510 overworld.s sub_8087510 +0808751c overworld.s InitLinkRoomStartMenuScript +08087530 overworld.s sub_8087530 +0808754c overworld.s CreateConfirmLeaveTradeRoomPrompt +08087568 overworld.s InitMenuBasedScript +08087584 overworld.s sub_8087584 +08087598 overworld.s sub_8087598 +080875c8 overworld.s sub_80875C8 +08087634 overworld.s sub_8087634 +0808766c overworld.s sub_808766C +08087690 overworld.s GetLinkSendQueueLength +080876c4 overworld.s ZeroLinkPlayerEventObject +080876cc overworld.s ClearLinkPlayerEventObjects +080876e0 overworld.s ZeroEventObject +080876f0 overworld.s SpawnLinkPlayerEventObject +0808779c overworld.s InitLinkPlayerEventObjectPos +080877dc overworld.s sub_80877DC +0808780c overworld.s sub_808780C +08087858 overworld.s GetSpriteForLinkedPlayer +08087878 overworld.s GetLinkPlayerCoords +080878a0 overworld.s GetLinkPlayerFacingDirection +080878c0 overworld.s GetLinkPlayerElevation +080878e4 overworld.s sub_80878E4 +0808790c overworld.s GetLinkPlayerIdAt +0808796c overworld.s SetPlayerFacingDirection +080879d8 overworld.s MovementEventModeCB_Normal +080879f8 overworld.s MovementEventModeCB_Ignored +080879fc overworld.s MovementEventModeCB_Normal_2 +08087a1c overworld.s FacingHandler_DoNothing +08087a20 overworld.s FacingHandler_DpadMovement +08087a88 overworld.s FacingHandler_ForcedFacingChange +08087aa0 overworld.s MovementStatusHandler_EnterFreeMode +08087aa8 overworld.s MovementStatusHandler_TryAdvanceScript +08087ae0 overworld.s FlipVerticalAndClearForced +08087b40 overworld.s LinkPlayerDetectCollision +08087bcc overworld.s CreateLinkPlayerSprite +08087c8c overworld.s SpriteCB_LinkPlayer +08087d44 fieldmap.s mapconnection_get_mapheader +08087d54 fieldmap.s InitMap +08087d74 fieldmap.s InitMapFromSavedGame +08087dac fieldmap.s InitBattlePyramidMap +08087de4 fieldmap.s InitTrainerHillMap +08087e14 fieldmap.s InitMapLayoutData +08087e70 fieldmap.s InitBackupMapLayoutData +08087ec8 fieldmap.s InitBackupMapLayoutConnections +08087f54 fieldmap.s sub_8087F54 +08087fb8 fieldmap.s FillSouthConnection +08088020 fieldmap.s FillNorthConnection +08088080 fieldmap.s FillWestConnection +080880e0 fieldmap.s FillEastConnection +08088144 fieldmap.s MapGridGetZCoordAt +080881b0 fieldmap.s MapGridIsImpassableAt +08088224 fieldmap.s MapGridGetMetatileIdAt +080882bc fieldmap.s MapGridGetMetatileBehaviorAt +080882d4 fieldmap.s MapGridGetMetatileLayerTypeAt +080882f0 fieldmap.s MapGridSetMetatileIdAt +08088338 fieldmap.s MapGridSetMetatileEntryAt +08088370 fieldmap.s GetBehaviorByMetatileId +080883c4 fieldmap.s save_serialize_map +08088438 fieldmap.s SavedMapViewIsEmpty +08088474 fieldmap.s ClearSavedMapView +0808849c fieldmap.s LoadSavedMapView +080885c4 fieldmap.s sub_80885C4 +0808869c fieldmap.s GetMapBorderIdAt +08088788 fieldmap.s GetPostCameraMoveMapBorderId +080887b0 fieldmap.s CanCameraMoveInDirection +080887f8 fieldmap.s sub_80887F8 +0808887c fieldmap.s CameraMove +08088950 fieldmap.s sub_8088950 +080889a8 fieldmap.s sub_80889A8 +08088a0c fieldmap.s sub_8088A0C +08088a38 fieldmap.s sub_8088A38 +08088a4c fieldmap.s sub_8088A4C +08088a8c fieldmap.s sub_8088A8C +08088b3c fieldmap.s sub_8088B3C +08088b58 fieldmap.s GetCameraFocusCoords +08088b70 fieldmap.s SetPlayerCoords +08088b80 fieldmap.s GetCameraCoords +08088b94 fieldmap.s sub_8088B94 +08088bf0 fieldmap.s SkipCopyingMetatileFromSavedMap +08088c34 fieldmap.s copy_tileset_patterns_to_vram +08088c78 fieldmap.s copy_tileset_patterns_to_vram2 +08088cbc fieldmap.s nullsub_3 +08088cc0 fieldmap.s nullsub_90 +08088cc4 fieldmap.s apply_map_tileset_palette +08088d50 fieldmap.s copy_map_tileset1_to_vram +08088d64 fieldmap.s copy_map_tileset2_to_vram +08088d78 fieldmap.s copy_map_tileset2_to_vram_2 +08088d8c fieldmap.s apply_map_tileset1_palette +08088d9c fieldmap.s apply_map_tileset2_palette +08088dac fieldmap.s copy_map_tileset1_tileset2_to_vram +08088dd4 fieldmap.s apply_map_tileset1_tileset2_palette +08088dec metatile_behavior.s MetatileBehavior_IsATile +08088df0 metatile_behavior.s MetatileBehavior_IsEncounterTile +08088e14 metatile_behavior.s MetatileBehavior_IsJumpEast +08088e28 metatile_behavior.s MetatileBehavior_IsJumpWest +08088e3c metatile_behavior.s MetatileBehavior_IsJumpNorth +08088e50 metatile_behavior.s MetatileBehavior_IsJumpSouth +08088e64 metatile_behavior.s MetatileBehavior_IsPokeGrass +08088e80 metatile_behavior.s MetatileBehavior_IsSandOrDeepSand +08088e98 metatile_behavior.s MetatileBehavior_IsDeepSand +08088eac metatile_behavior.s MetatileBehavior_IsReflective +08088ed4 metatile_behavior.s MetatileBehavior_IsIce +08088ee8 metatile_behavior.s MetatileBehavior_IsWarpDoor +08088efc metatile_behavior.s MetatileBehavior_IsDoor +08088f14 metatile_behavior.s MetatileBehavior_IsEscalator +08088f30 metatile_behavior.s Unref_MetatileBehavior_IsUnused04 +08088f44 metatile_behavior.s MetatileBehavior_IsLadder +08088f58 metatile_behavior.s MetatileBehavior_IsNonAnimDoor +08088f74 metatile_behavior.s MetatileBehavior_IsDeepSouthWarp +08088f88 metatile_behavior.s MetatileBehavior_IsSurfableWaterOrUnderwater +08088fac metatile_behavior.s MetatileBehavior_IsEastArrowWarp +08088fc0 metatile_behavior.s MetatileBehavior_IsWestArrowWarp +08088fd4 metatile_behavior.s MetatileBehavior_IsNorthArrowWarp +08088fec metatile_behavior.s MetatileBehavior_IsSouthArrowWarp +08089008 metatile_behavior.s Unref_MetatileBehavior_IsArrowWarp +0808904c metatile_behavior.s MetatileBehavior_IsForcedMovementTile +0808908c metatile_behavior.s MetatileBehavior_IsIce_2 +080890a0 metatile_behavior.s MetatileBehavior_IsTrickHouseSlipperyFloor +080890b4 metatile_behavior.s Unref_MetatileBehavior_IsUnused05 +080890c8 metatile_behavior.s MetatileBehavior_IsWalkNorth +080890dc metatile_behavior.s MetatileBehavior_IsWalkSouth +080890f0 metatile_behavior.s MetatileBehavior_IsWalkWest +08089104 metatile_behavior.s MetatileBehavior_IsWalkEast +08089118 metatile_behavior.s MetatileBehavior_IsNorthwardCurrent +0808912c metatile_behavior.s MetatileBehavior_IsSouthwardCurrent +08089140 metatile_behavior.s MetatileBehavior_IsWestwardCurrent +08089154 metatile_behavior.s MetatileBehavior_IsEastwardCurrent +08089168 metatile_behavior.s MetatileBehavior_IsSlideNorth +0808917c metatile_behavior.s MetatileBehavior_IsSlideSouth +08089190 metatile_behavior.s MetatileBehavior_IsSlideWest +080891a4 metatile_behavior.s MetatileBehavior_IsSlideEast +080891b8 metatile_behavior.s MetatileBehavior_IsCounter +080891cc metatile_behavior.s MetatileBehavior_IsPlayerFacingTVScreen +080891e8 metatile_behavior.s MetatileBehavior_IsPC +080891fc metatile_behavior.s MetatileBehavior_IsCableBoxResults1 +08089210 metatile_behavior.s MetatileBehavior_IsOpenSecretBaseDoor +0808923c metatile_behavior.s MetatileBehavior_IsSecretBaseCave +0808925c metatile_behavior.s MetatileBehavior_IsSecretBaseTree +08089274 metatile_behavior.s MetatileBehavior_IsSecretBaseShrub +08089288 metatile_behavior.s MetatileBehavior_IsSecretBasePC +0808929c metatile_behavior.s MetatileBehavior_IsRecordMixingSecretBasePC +080892b0 metatile_behavior.s Unref_MetatileBehavior_IsSecretBaseUnused_B2 +080892c4 metatile_behavior.s MetatileBehavior_IsBlockDecoration +080892d8 metatile_behavior.s MetatileBehavior_IsSecretBaseImpassable +080892ec metatile_behavior.s MetatileBehavior_IsMB_C6 +08089300 metatile_behavior.s MetatileBehavior_IsSecretBasePoster +08089314 metatile_behavior.s MetatileBehavior_IsNormal +08089328 metatile_behavior.s MetatileBehavior_IsSecretBaseNorthWall +0808933c metatile_behavior.s Unref_MetatileBehavior_IsSecretBaseUnused_B2_2 +08089350 metatile_behavior.s MetatileBehavior_HoldsSmallDecoration +08089364 metatile_behavior.s MetatileBehavior_HoldsLargeDecoration +08089378 metatile_behavior.s MetatileBehavior_IsSecretBaseHole +0808938c metatile_behavior.s MetatileBehavior_IsSecretBaseBalloon +080893a0 metatile_behavior.s MetatileBehavior_IsSecretBaseBreakableDoor +080893b4 metatile_behavior.s MetatileBehavior_IsSecretBaseSoundMat +080893c8 metatile_behavior.s MetatileBehavior_IsSecretBaseGlitterMat +080893dc metatile_behavior.s MetatileBehavior_IsSecretBaseSandOrnament +080893f0 metatile_behavior.s MetatileBehavior_IsSecretBaseShieldOrToyTV +08089404 metatile_behavior.s MetatileBehavior_IsPlayerRoomPCOn +08089418 metatile_behavior.s MetatileBehavior_HasRipples +08089434 metatile_behavior.s MetatileBehavior_IsPuddle +08089448 metatile_behavior.s MetatileBehavior_IsTallGrass +0808945c metatile_behavior.s MetatileBehavior_IsLongGrass +08089470 metatile_behavior.s MetatileBehavior_IsBerryTreeSoil +08089484 metatile_behavior.s MetatileBehavior_IsAshGrass +08089498 metatile_behavior.s MetatileBehavior_IsFootprints +080894ac metatile_behavior.s MetatileBehavior_IsBridge +080894d4 metatile_behavior.s MetatileBehavior_GetBridgeType +08089510 metatile_behavior.s MetatileBehavior_8089510 +0808952c metatile_behavior.s MetatileBehavior_IsLandWildEncounter +08089558 metatile_behavior.s MetatileBehavior_IsWaterWildEncounter +08089588 metatile_behavior.s MetatileBehavior_IsIndoorEncounter +0808959c metatile_behavior.s MetatileBehavior_IsMountain +080895b0 metatile_behavior.s MetatileBehavior_IsDiveable +080895d0 metatile_behavior.s MetatileBehavior_IsUnableToEmerge +080895e8 metatile_behavior.s MetatileBehavior_IsShallowFlowingWater +08089604 metatile_behavior.s MetatileBehavior_IsThinIce +08089618 metatile_behavior.s MetatileBehavior_IsCrackedIce +0808962c metatile_behavior.s MetatileBehavior_IsDeepOrOceanWater +08089648 metatile_behavior.s Unref_MetatileBehavior_IsUnusedSootopolisWater +08089660 metatile_behavior.s MetatileBehavior_IsSurfableAndNotWaterfall +0808968c metatile_behavior.s MetatileBehavior_IsEastBlocked +080896b0 metatile_behavior.s MetatileBehavior_IsWestBlocked +080896d4 metatile_behavior.s MetatileBehavior_IsNorthBlocked +080896f4 metatile_behavior.s MetatileBehavior_IsSouthBlocked +08089714 metatile_behavior.s MetatileBehavior_IsShortGrass +08089728 metatile_behavior.s MetatileBehavior_IsHotSprings +0808973c metatile_behavior.s MetatileBehavior_IsWaterfall +08089750 metatile_behavior.s MetatileBehavior_IsFortreeBridge +08089764 metatile_behavior.s MetatileBehavior_IsPacifilogVerticalLog1 +08089778 metatile_behavior.s MetatileBehavior_IsPacifilogVerticalLog2 +0808978c metatile_behavior.s MetatileBehavior_IsPacifilogHorizontalLog1 +080897a0 metatile_behavior.s MetatileBehavior_IsPacifilogHorizontalLog2 +080897b4 metatile_behavior.s MetatileBehavior_IsPacifidlogLog +080897d0 metatile_behavior.s MetatileBehavior_IsTrickHousePuzzleDoor +080897e4 metatile_behavior.s MetatileBehavior_IsRegionMap +080897f8 metatile_behavior.s MetatileBehavior_IsClosedSootopolisDoor +0808980c metatile_behavior.s MetatileBehavior_IsUnknownClosedDoor +08089820 metatile_behavior.s MetatileBehavior_IsRoulette +08089834 metatile_behavior.s MetatileBehavior_IsPokeblockFeeder +08089848 metatile_behavior.s MetatileBehavior_IsSecretBaseJumpMat +0808985c metatile_behavior.s MetatileBehavior_IsSecretBaseSpinMat +08089870 metatile_behavior.s MetatileBehavior_IsLavaridgeB1FWarp +08089884 metatile_behavior.s MetatileBehavior_IsLavaridge1FWarp +08089898 metatile_behavior.s MetatileBehavior_IsAquaHideoutWarp +080898ac metatile_behavior.s MetatileBehavior_IsWarpOrBridge +080898c0 metatile_behavior.s MetatileBehavior_IsMossdeepGymWarp +080898d4 metatile_behavior.s MetatileBehavior_IsSurfableFishableWater +08089904 metatile_behavior.s MetatileBehavior_IsMtPyreHole +08089918 metatile_behavior.s MetatileBehavior_IsCrackedFloorHole +0808992c metatile_behavior.s MetatileBehavior_IsCrackedFloor +08089940 metatile_behavior.s MetatileBehavior_IsMuddySlope +08089954 metatile_behavior.s MetatileBehavior_IsBumpySlope +08089968 metatile_behavior.s MetatileBehavior_IsIsolatedVerticalRail +0808997c metatile_behavior.s MetatileBehavior_IsIsolatedHorizontalRail +08089990 metatile_behavior.s MetatileBehavior_IsVerticalRail +080899a4 metatile_behavior.s MetatileBehavior_IsHorizontalRail +080899b8 metatile_behavior.s MetatileBehavior_IsSeaweed +080899d0 metatile_behavior.s MetatileBehavior_IsRunningDisallowed +080899f8 metatile_behavior.s MetatileBehavior_IsCuttableGrass +08089a1c metatile_behavior.s MetatileBehavior_IsRunningShoesManual +08089a30 metatile_behavior.s MetatileBehavior_IsPictureBookShelf +08089a44 metatile_behavior.s MetatileBehavior_IsBookShelf +08089a58 metatile_behavior.s MetatileBehavior_IsPokeCenterBookShelf +08089a6c metatile_behavior.s MetatileBehavior_IsVase +08089a80 metatile_behavior.s MetatileBehavior_IsTrashCan +08089a94 metatile_behavior.s MetatileBehavior_IsShopShelf +08089aa8 metatile_behavior.s MetatileBehavior_IsBlueprint +08089abc metatile_behavior.s MetatileBehavior_IsBattlePyramidWarp +08089ad0 metatile_behavior.s MetatileBehavior_IsPlayerFacingWirelessBoxResults +08089aec metatile_behavior.s MetatileBehavior_IsCableBoxResults2 +08089b08 metatile_behavior.s MetatileBehavior_IsQuestionnaire +08089b1c metatile_behavior.s MetatileBehavior_IsLongGrass_Duplicate +08089b30 metatile_behavior.s MetatileBehavior_IsLongGrassSouthEdge +08089b44 metatile_behavior.s MetatileBehavior_IsTrainerHillTimer +08089b58 field_camera.s move_tilemap_camera_to_upper_left_corner_ +08089b68 field_camera.s tilemap_move_something +08089b84 field_camera.s coords8_add +08089b94 field_camera.s move_tilemap_camera_to_upper_left_corner +08089ba4 field_camera.s FieldUpdateBgTilemapScroll +08089c08 field_camera.s sub_8089C08 +08089c34 field_camera.s DrawWholeMapView +08089c60 field_camera.s DrawWholeMapViewInternal +08089ce4 field_camera.s RedrawMapSlicesForCameraUpdate +08089d30 field_camera.s RedrawMapSliceNorth +08089d90 field_camera.s RedrawMapSliceSouth +08089ddc field_camera.s RedrawMapSliceEast +08089e34 field_camera.s RedrawMapSliceWest +08089ea0 field_camera.s CurrentMapDrawMetatileAt +08089edc field_camera.s DrawDoorMetatileAt +08089f10 field_camera.s DrawMetatileAt +08089f78 field_camera.s DrawMetatile +0808a0ac field_camera.s MapPosToBgTilemapOffset +0808a0f4 field_camera.s CameraUpdateCallback +0808a11c field_camera.s ResetCameraUpdateInfo +0808a134 field_camera.s InitCameraUpdateCallback +0808a174 field_camera.s CameraUpdate +0808a284 field_camera.s MoveCameraAndRedrawMap +0808a2c0 field_camera.s SetCameraPanningCallback +0808a2cc field_camera.s SetCameraPanning +0808a2e4 field_camera.s InstallCameraPanAheadCallback +0808a314 field_camera.s UpdateCameraPanning +0808a360 field_camera.s CameraPanningCB_PanAhead +0808a400 field_door.s CopyDoorTilesToVram +0808a438 field_door.s door_build_blockdef +0808a478 field_door.s DrawCurrentDoorAnimFrame +0808a530 field_door.s DrawClosedDoorTiles +0808a568 field_door.s DrawDoor +0808a5f0 field_door.s sub_808A5F0 +0808a654 field_door.s Task_AnimateDoor +0808a68c field_door.s GetLastDoorFrame +0808a6a0 field_door.s GetDoorGraphics +0808a6c4 field_door.s StartDoorAnimationTask +0808a728 field_door.s DrawClosedDoor +0808a734 field_door.s DrawOpenedDoor +0808a774 field_door.s StartDoorOpenAnimation +0808a7cc field_door.s StartDoorCloseAnimation +0808a80c field_door.s cur_mapdata_get_door_x2_at +0808a83c field_door.s unref_sub_808A83C +0808a854 field_door.s FieldSetDoorOpened +0808a880 field_door.s FieldSetDoorClosed +0808a8ac field_door.s FieldAnimateDoorClose +0808a8e4 field_door.s FieldAnimateDoorOpen +0808a91c field_door.s FieldIsDoorAnimationRunning +0808a930 field_door.s GetDoorSoundEffect +0808a964 field_door.s sub_808A964 +0808a998 field_player_avatar.s MovementType_Player +0808a9bc field_player_avatar.s EventObjectCB2_NoMovement2 +0808a9c0 field_player_avatar.s player_step +0808aa38 field_player_avatar.s TryInterruptEventObjectSpecialAnim +0808aa9c field_player_avatar.s npc_clear_strange_bits +0808aac0 field_player_avatar.s MovePlayerAvatarUsingKeypadInput +0808aaf8 field_player_avatar.s PlayerAllowForcedMovementIfMovingSameDirection +0808ab14 field_player_avatar.s TryDoMetatileBehaviorForcedMovement +0808ab38 field_player_avatar.s GetForcedMovementByMetatileBehavior +0808ab94 field_player_avatar.s ForcedMovement_None +0808abe0 field_player_avatar.s DoForcedMovement +0808ac58 field_player_avatar.s DoForcedMovementInCurrentDirection +0808ac8c field_player_avatar.s ForcedMovement_Slip +0808aca0 field_player_avatar.s ForcedMovement_WalkSouth +0808acb8 field_player_avatar.s ForcedMovement_WalkNorth +0808acd0 field_player_avatar.s ForcedMovement_WalkWest +0808ace8 field_player_avatar.s ForcedMovement_WalkEast +0808ad00 field_player_avatar.s ForcedMovement_PushedSouthByCurrent +0808ad18 field_player_avatar.s ForcedMovement_PushedNorthByCurrent +0808ad30 field_player_avatar.s ForcedMovement_PushedWestByCurrent +0808ad48 field_player_avatar.s ForcedMovement_PushedEastByCurrent +0808ad60 field_player_avatar.s ForcedMovement_Slide +0808ad98 field_player_avatar.s ForcedMovement_SlideSouth +0808adb0 field_player_avatar.s ForcedMovement_SlideNorth +0808adc8 field_player_avatar.s ForcedMovement_SlideWest +0808ade0 field_player_avatar.s ForcedMovement_SlideEast +0808adf8 field_player_avatar.s ForcedMovement_0xBB +0808ae04 field_player_avatar.s ForcedMovement_0xBC +0808ae10 field_player_avatar.s ForcedMovement_MuddySlope +0808ae68 field_player_avatar.s MovePlayerNotOnBike +0808ae98 field_player_avatar.s CheckMovementInputNotOnBike +0808aedc field_player_avatar.s PlayerNotOnBikeNotMoving +0808aef0 field_player_avatar.s PlayerNotOnBikeTurningInPlace +0808af00 field_player_avatar.s PlayerNotOnBikeMoving +0808afbc field_player_avatar.s CheckForPlayerAvatarCollision +0808b028 field_player_avatar.s sub_808B028 +0808b094 field_player_avatar.s CheckForEventObjectCollision +0808b164 field_player_avatar.s sub_808B164 +0808b1bc field_player_avatar.s sub_808B1BC +0808b214 field_player_avatar.s ShouldJumpLedge +0808b238 field_player_avatar.s sub_808B238 +0808b2e4 field_player_avatar.s check_acro_bike_metatile +0808b324 field_player_avatar.s IsPlayerCollidingWithFarawayIslandMew +0808b3cc field_player_avatar.s SetPlayerAvatarTransitionFlags +0808b3e8 field_player_avatar.s DoPlayerAvatarTransition +0808b43c field_player_avatar.s PlayerAvatarTransition_Dummy +0808b440 field_player_avatar.s PlayerAvatarTransition_Normal +0808b46c field_player_avatar.s PlayerAvatarTransition_MachBike +0808b4a0 field_player_avatar.s PlayerAvatarTransition_AcroBike +0808b4d8 field_player_avatar.s PlayerAvatarTransition_Surfing +0808b534 field_player_avatar.s PlayerAvatarTransition_Underwater +0808b568 field_player_avatar.s PlayerAvatarTransition_ReturnToField +0808b578 field_player_avatar.s sub_808B578 +0808b5bc field_player_avatar.s player_is_anim_in_certain_ranges +0808b618 field_player_avatar.s sub_808B618 +0808b63c field_player_avatar.s PlayerIsAnimActive +0808b660 field_player_avatar.s PlayerCheckIfAnimFinishedOrInactive +0808b684 field_player_avatar.s PlayerSetCopyableMovement +0808b6a0 field_player_avatar.s PlayerGetCopyableMovement +0808b6bc field_player_avatar.s sub_808B6BC +0808b6e4 field_player_avatar.s PlayerSetAnimId +0808b720 field_player_avatar.s PlayerGoSpeed1 +0808b738 field_player_avatar.s PlayerGoSpeed2 +0808b750 field_player_avatar.s PlayerRideWaterCurrent +0808b768 field_player_avatar.s PlayerGoSpeed4 +0808b780 field_player_avatar.s PlayerRun +0808b798 field_player_avatar.s PlayerOnBikeCollide +0808b7bc field_player_avatar.s PlayerOnBikeCollideWithFarawayIslandMew +0808b7d4 field_player_avatar.s PlayerNotOnBikeCollide +0808b7f8 field_player_avatar.s PlayerNotOnBikeCollideWithFarawayIslandMew +0808b810 field_player_avatar.s PlayerFaceDirection +0808b828 field_player_avatar.s PlayerTurnInPlace +0808b840 field_player_avatar.s PlayerJumpLedge +0808b864 field_player_avatar.s sub_808B864 +0808b8a8 field_player_avatar.s PlayerIdleWheelie +0808b8c0 field_player_avatar.s PlayerStartWheelie +0808b8d8 field_player_avatar.s PlayerEndWheelie +0808b8f0 field_player_avatar.s PlayerStandingHoppingWheelie +0808b914 field_player_avatar.s PlayerMovingHoppingWheelie +0808b938 field_player_avatar.s PlayerLedgeHoppingWheelie +0808b95c field_player_avatar.s PlayerAcroTurnJump +0808b980 field_player_avatar.s sub_808B980 +0808b9a4 field_player_avatar.s sub_808B9A4 +0808b9bc field_player_avatar.s sub_808B9BC +0808b9d4 field_player_avatar.s sub_808B9D4 +0808b9ec field_player_avatar.s PlayCollisionSoundIfNotFacingWarp +0808ba68 field_player_avatar.s GetXYCoordsOneStepInFrontOfPlayer +0808baac field_player_avatar.s PlayerGetDestCoords +0808badc field_player_avatar.s player_get_pos_including_state_based_drift +0808bc38 field_player_avatar.s GetPlayerFacingDirection +0808bc58 field_player_avatar.s GetPlayerMovementDirection +0808bc74 field_player_avatar.s PlayerGetZCoord +0808bc90 field_player_avatar.s sub_808BC90 +0808bcc0 field_player_avatar.s TestPlayerAvatarFlags +0808bcd0 field_player_avatar.s sub_808BCD0 +0808bcdc field_player_avatar.s GetPlayerAvatarObjectId +0808bce8 field_player_avatar.s sub_808BCE8 +0808bcf4 field_player_avatar.s sub_808BCF4 +0808bd3c field_player_avatar.s GetRivalAvatarGraphicsIdByStateIdAndGender +0808bd54 field_player_avatar.s GetPlayerAvatarGraphicsIdByStateIdAndGender +0808bd6c field_player_avatar.s GetFRLGAvatarGraphicsIdByGender +0808bd7c field_player_avatar.s GetRSAvatarGraphicsIdByGender +0808bd8c field_player_avatar.s GetPlayerAvatarGraphicsIdByStateId +0808bda8 field_player_avatar.s unref_GetRivalAvatarGenderByGraphicsId +0808bdd4 field_player_avatar.s GetPlayerAvatarGenderByGraphicsId +0808be00 field_player_avatar.s PartyHasMonWithSurf +0808be50 field_player_avatar.s IsPlayerSurfingNorth +0808be74 field_player_avatar.s IsPlayerFacingSurfableFishableWater +0808bf00 field_player_avatar.s ClearPlayerAvatarInfo +0808bf14 field_player_avatar.s SetPlayerAvatarStateMask +0808bf2c field_player_avatar.s GetPlayerAvatarStateTransitionByGraphicsId +0808bf6c field_player_avatar.s GetPlayerAvatarGraphicsIdByCurrentState +0808bfb0 field_player_avatar.s SetPlayerAvatarExtraStateTransition +0808bfe0 field_player_avatar.s InitPlayerAvatar +0808c0a8 field_player_avatar.s sub_808C0A8 +0808c114 field_player_avatar.s sub_808C114 +0808c15c field_player_avatar.s sub_808C15C +0808c1b4 field_player_avatar.s sub_808C1B4 +0808c228 field_player_avatar.s sub_808C228 +0808c280 field_player_avatar.s sub_808C280 +0808c310 field_player_avatar.s StartStrengthAnim +0808c34c field_player_avatar.s Task_BumpBoulder +0808c3a4 field_player_avatar.s sub_808C3A4 +0808c3c4 field_player_avatar.s do_boulder_dust +0808c484 field_player_avatar.s sub_808C484 +0808c4d8 field_player_avatar.s DoPlayerMatJump +0808c4f8 field_player_avatar.s DoPlayerAvatarSecretBaseMatJump +0808c544 field_player_avatar.s PlayerAvatar_DoSecretBaseMatJump +0808c5b0 field_player_avatar.s DoPlayerMatSpin +0808c5d0 field_player_avatar.s PlayerAvatar_DoSecretBaseMatSpin +0808c61c field_player_avatar.s PlayerAvatar_SecretBaseMatSpinStep0 +0808c644 field_player_avatar.s PlayerAvatar_SecretBaseMatSpinStep1 +0808c6bc field_player_avatar.s PlayerAvatar_SecretBaseMatSpinStep2 +0808c6fc field_player_avatar.s PlayerAvatar_SecretBaseMatSpinStep3 +0808c750 field_player_avatar.s sub_808C750 +0808c7a8 field_player_avatar.s taskFF_0805D1D4 +0808c814 field_player_avatar.s sub_808C814 +0808c88c field_player_avatar.s StartFishing +0808c8c0 field_player_avatar.s Task_Fishing +0808c8f8 field_player_avatar.s Fishing1 +0808c918 field_player_avatar.s Fishing2 +0808c9b0 field_player_avatar.s Fishing3 +0808c9d4 field_player_avatar.s Fishing4 +0808ca20 field_player_avatar.s Fishing5 +0808cabc field_player_avatar.s Fishing6 +0808cb6c field_player_avatar.s Fishing7 +0808cba4 field_player_avatar.s Fishing8 +0808cbfc field_player_avatar.s Fishing9 +0808cc64 field_player_avatar.s Fishing10 +0808cca8 field_player_avatar.s Fishing11 +0808cd94 field_player_avatar.s Fishing12 +0808ce04 field_player_avatar.s Fishing13 +0808ce74 field_player_avatar.s Fishing14 +0808ce8c field_player_avatar.s Fishing15 +0808cf2c field_player_avatar.s Fishing16 +0808cf78 field_player_avatar.s AlignFishingAnimationFrames +0808d074 field_player_avatar.s sub_808D074 +0808d080 field_player_avatar.s sub_808D080 +0808d094 field_player_avatar.s sub_808D094 +0808d194 field_player_avatar.s sub_808D194 +0808d1b4 field_player_avatar.s sub_808D1B4 +0808d1c8 field_player_avatar.s sub_808D1C8 +0808d1e8 field_player_avatar.s sub_808D1E8 +0808d1fc field_player_avatar.s sub_808D1FC +0808d38c field_player_avatar.s sub_808D38C +0808d3f0 event_object_movement.s ClearEventObject +0808d410 event_object_movement.s ClearAllEventObjects +0808d438 event_object_movement.s ResetEventObjects +0808d450 event_object_movement.s CreateReflectionEffectSprites +0808d4f4 event_object_movement.s GetFirstInactiveEventObjectId +0808d524 event_object_movement.s GetEventObjectIdByLocalIdAndMap +0808d548 event_object_movement.s TryGetEventObjectIdByLocalIdAndMap +0808d574 event_object_movement.s GetEventObjectIdByXY +0808d5b8 event_object_movement.s GetEventObjectIdByLocalIdAndMapInternal +0808d608 event_object_movement.s GetEventObjectIdByLocalId +0808d644 event_object_movement.s InitEventObjectStateFromTemplate +0808d77c event_object_movement.s Unref_TryInitLocalEventObject +0808d810 event_object_movement.s GetAvailableEventObjectId +0808d8b0 event_object_movement.s RemoveEventObject +0808d8c4 event_object_movement.s RemoveEventObjectByLocalIdAndMap +0808d90c event_object_movement.s RemoveEventObjectInternal +0808d958 event_object_movement.s RemoveAllEventObjectsExceptPlayer +0808d98c event_object_movement.s TrySetupEventObjectSprite +0808db40 event_object_movement.s TrySpawnEventObjectTemplate +0808dc08 event_object_movement.s SpawnSpecialEventObject +0808dc44 event_object_movement.s SpawnSpecialEventObjectParameterized +0808dcac event_object_movement.s TrySpawnEventObject +0808dcfc event_object_movement.s MakeObjectTemplateFromEventObjectGraphicsInfo +0808dd30 event_object_movement.s MakeObjectTemplateFromEventObjectGraphicsInfoWithCallbackIndex +0808dd50 event_object_movement.s MakeObjectTemplateFromEventObjectTemplate +0808dd68 event_object_movement.s AddPseudoEventObject +0808de0c event_object_movement.s sprite_new +0808df80 event_object_movement.s TrySpawnEventObjects +0808e08c event_object_movement.s RemoveEventObjectsOutsideView +0808e0ec event_object_movement.s RemoveEventObjectIfOutsideView +0808e16c event_object_movement.s sub_808E16C +0808e1b8 event_object_movement.s sub_808E1B8 +0808e38c event_object_movement.s sub_808E38C +0808e3c4 event_object_movement.s SetPlayerAvatarEventObjectIdAndObjectId +0808e3f8 event_object_movement.s EventObjectSetGraphicsId +0808e504 event_object_movement.s EventObjectSetGraphicsIdByLocalIdAndMap +0808e544 event_object_movement.s EventObjectTurn +0808e594 event_object_movement.s EventObjectTurnByLocalIdAndMap +0808e5d4 event_object_movement.s PlayerObjectTurn +0808e5f4 event_object_movement.s get_berry_tree_graphics +0808e694 event_object_movement.s GetEventObjectGraphicsInfo +0808e6dc event_object_movement.s SetEventObjectDynamicGraphicsId +0808e6f8 event_object_movement.s npc_by_local_id_and_map_set_field_1_bit_x20 +0808e748 event_object_movement.s EventObjectGetLocalIdAndMap +0808e75c event_object_movement.s sub_808E75C +0808e78c event_object_movement.s sub_808E78C +0808e7e4 event_object_movement.s sub_808E7E4 +0808e82c event_object_movement.s sub_808E82C +0808e880 event_object_movement.s FreeAndReserveObjectSpritePalettes +0808e894 event_object_movement.s LoadEventObjectPalette +0808e8c0 event_object_movement.s Unused_LoadEventObjectPaletteSet +0808e8f4 event_object_movement.s sub_808E8F4 +0808e91c event_object_movement.s PatchObjectPalette +0808e954 event_object_movement.s PatchObjectPaletteRange +0808e980 event_object_movement.s FindEventObjectPaletteIndexByTag +0808e9c8 event_object_movement.s LoadPlayerObjectReflectionPalette +0808ea38 event_object_movement.s LoadSpecialObjectReflectionPalette +0808eab0 event_object_movement.s sub_808EAB0 +0808eac4 event_object_movement.s unref_sub_808EAC4 +0808eae4 event_object_movement.s ShiftEventObjectCoords +0808eaf4 event_object_movement.s SetEventObjectCoords +0808eb08 event_object_movement.s MoveEventObjectToMapCoords +0808eba8 event_object_movement.s TryMoveEventObjectToMapCoords +0808ebfc event_object_movement.s ShiftStillEventObjectCoords +0808ec10 event_object_movement.s UpdateEventObjectCoordsForCameraUpdate +0808ec78 event_object_movement.s GetEventObjectIdByXYZ +0808ece0 event_object_movement.s EventObjectDoesZCoordMatch +0808ed08 event_object_movement.s UpdateEventObjectsForCameraUpdate +0808ed34 event_object_movement.s AddCameraObject +0808ed78 event_object_movement.s ObjectCB_CameraObject +0808eda0 event_object_movement.s CameraObject_0 +0808eddc event_object_movement.s CameraObject_1 +0808ee14 event_object_movement.s CameraObject_2 +0808ee44 event_object_movement.s FindCameraObject +0808ee8c event_object_movement.s CameraObjectReset1 +0808eea8 event_object_movement.s CameraObjectSetFollowedObjectId +0808eec4 event_object_movement.s CameraObjectGetFollowedObjectId +0808eedc event_object_movement.s CameraObjectReset2 +0808eeec event_object_movement.s CopySprite +0808ef50 event_object_movement.s CreateCopySpriteAt +0808efc0 event_object_movement.s SetEventObjectDirection +0808f004 event_object_movement.s GetEventObjectScriptPointerByLocalIdAndMap +0808f01c event_object_movement.s GetEventObjectScriptPointerByEventObjectId +0808f040 event_object_movement.s GetEventObjectFlagIdByLocalIdAndMap +0808f058 event_object_movement.s GetEventObjectFlagIdByEventObjectId +0808f080 event_object_movement.s sub_808F080 +0808f0bc event_object_movement.s sub_808F0BC +0808f0d4 event_object_movement.s sub_808F0D4 +0808f110 event_object_movement.s EventObjectGetBerryTreeId +0808f128 event_object_movement.s GetEventObjectTemplateByLocalIdAndMap +0808f17c event_object_movement.s FindEventObjectTemplateByLocalId +0808f1b4 event_object_movement.s GetBaseTemplateForEventObject +0808f208 event_object_movement.s OverrideTemplateCoordsForEventObject +0808f228 event_object_movement.s OverrideEventObjectTemplateScript +0808f23c event_object_movement.s TryOverrideTemplateCoordsForEventObject +0808f254 event_object_movement.s TryOverrideEventObjectTemplateCoords +0808f28c event_object_movement.s OverrideSecretBaseDecorationSpriteScript +0808f2f8 event_object_movement.s InitEventObjectPalettes +0808f360 event_object_movement.s GetObjectPaletteTag +0808f3e0 event_object_movement.s MovementType_None +0808f404 event_object_movement.s MovementType_None_callback +0808f408 event_object_movement.s MovementType_WanderAround +0808f42c event_object_movement.s MovementType_WanderAround_callback +0808f44c event_object_movement.s MovementType_WanderAround_Step0 +0808f460 event_object_movement.s MovementType_WanderAround_Step1 +0808f48c event_object_movement.s MovementType_WanderAround_Step2 +0808f4c8 event_object_movement.s MovementType_WanderAround_Step3 +0808f4e8 event_object_movement.s MovementType_WanderAround_Step4 +0808f534 event_object_movement.s MovementType_WanderAround_Step5 +0808f564 event_object_movement.s MovementType_WanderAround_Step6 +0808f58c event_object_movement.s EventObjectIsTrainerAndCloseToPlayer +0808f608 event_object_movement.s GetVectorDirection +0808f638 event_object_movement.s GetLimitedVectorDirection_SouthNorth +0808f648 event_object_movement.s GetLimitedVectorDirection_WestEast +0808f65c event_object_movement.s GetLimitedVectorDirection_WestNorth +0808f6b8 event_object_movement.s GetLimitedVectorDirection_EastNorth +0808f714 event_object_movement.s GetLimitedVectorDirection_WestSouth +0808f770 event_object_movement.s GetLimitedVectorDirection_EastSouth +0808f7cc event_object_movement.s GetLimitedVectorDirection_SouthNorthWest +0808f808 event_object_movement.s GetLimitedVectorDirection_SouthNorthEast +0808f844 event_object_movement.s GetLimitedVectorDirection_NorthWestEast +0808f880 event_object_movement.s GetLimitedVectorDirection_SouthWestEast +0808f8bc event_object_movement.s TryGetTrainerEncounterDirection +0808f944 event_object_movement.s MovementType_LookAround +0808f968 event_object_movement.s MovementType_LookAround_callback +0808f988 event_object_movement.s MovementType_LookAround_Step0 +0808f99c event_object_movement.s MovementType_LookAround_Step1 +0808f9c8 event_object_movement.s MovementType_LookAround_Step2 +0808fa0c event_object_movement.s MovementType_LookAround_Step3 +0808fa3c event_object_movement.s MovementType_LookAround_Step4 +0808fa84 event_object_movement.s MovementType_WanderUpAndDown +0808faa8 event_object_movement.s MovementType_WanderUpAndDown_callback +0808fac8 event_object_movement.s MovementType_WanderUpAndDown_Step0 +0808fadc event_object_movement.s MovementType_WanderUpAndDown_Step1 +0808fb08 event_object_movement.s MovementType_WanderUpAndDown_Step2 +0808fb44 event_object_movement.s MovementType_WanderUpAndDown_Step3 +0808fb64 event_object_movement.s MovementType_WanderUpAndDown_Step4 +0808fbb0 event_object_movement.s MovementType_WanderUpAndDown_Step5 +0808fbe0 event_object_movement.s MovementType_WanderUpAndDown_Step6 +0808fc08 event_object_movement.s MovementType_WanderLeftAndRight +0808fc2c event_object_movement.s MovementType_WanderLeftAndRight_callback +0808fc4c event_object_movement.s MovementType_WanderLeftAndRight_Step0 +0808fc60 event_object_movement.s MovementType_WanderLeftAndRight_Step1 +0808fc8c event_object_movement.s MovementType_WanderLeftAndRight_Step2 +0808fcc8 event_object_movement.s MovementType_WanderLeftAndRight_Step3 +0808fce8 event_object_movement.s MovementType_WanderLeftAndRight_Step4 +0808fd34 event_object_movement.s MovementType_WanderLeftAndRight_Step5 +0808fd64 event_object_movement.s MovementType_WanderLeftAndRight_Step6 +0808fd8c event_object_movement.s MovementType_FaceDirection +0808fdb0 event_object_movement.s MovementType_FaceDirection_callback +0808fdd0 event_object_movement.s MovementType_FaceDirection_Step0 +0808fdfc event_object_movement.s MovementType_FaceDirection_Step1 +0808fe1c event_object_movement.s MovementType_FaceDirection_Step2 +0808fe2c event_object_movement.s MovementType_BerryTreeGrowth +0808fe70 event_object_movement.s EventObjectCB2_BerryTree +0808fe90 event_object_movement.s MovementType_BerryTreeGrowth_Step0 +0808ff48 event_object_movement.s MovementType_BerryTreeGrowth_Step1 +0808ff68 event_object_movement.s MovementType_BerryTreeGrowth_Step2 +0808ffb4 event_object_movement.s MovementType_BerryTreeGrowth_Step3 +08090004 event_object_movement.s MovementType_BerryTreeGrowth_Step4 +08090050 event_object_movement.s MovementType_FaceDownAndUp +08090074 event_object_movement.s MovementType_FaceDownAndUp_callback +08090094 event_object_movement.s MovementType_FaceDownAndUp_Step0 +080900a8 event_object_movement.s MovementType_FaceDownAndUp_Step1 +080900d4 event_object_movement.s MovementType_FaceDownAndUp_Step2 +08090118 event_object_movement.s MovementType_FaceDownAndUp_Step3 +08090148 event_object_movement.s MovementType_FaceDownAndUp_Step4 +08090190 event_object_movement.s MovementType_FaceLeftAndRight +080901b4 event_object_movement.s MovementType_FaceLeftAndRight_callback +080901d4 event_object_movement.s MovementType_FaceLeftAndRight_Step0 +080901e8 event_object_movement.s MovementType_FaceLeftAndRight_Step1 +08090214 event_object_movement.s MovementType_FaceLeftAndRight_Step2 +08090258 event_object_movement.s MovementType_FaceLeftAndRight_Step3 +08090288 event_object_movement.s MovementType_FaceLeftAndRight_Step4 +080902d0 event_object_movement.s MovementType_FaceUpAndLeft +080902f4 event_object_movement.s MovementType_FaceUpAndLeft_callback +08090314 event_object_movement.s MovementType_FaceUpAndLeft_Step0 +08090328 event_object_movement.s MovementType_FaceUpAndLeft_Step1 +08090354 event_object_movement.s MovementType_FaceUpAndLeft_Step2 +08090398 event_object_movement.s MovementType_FaceUpAndLeft_Step3 +080903c8 event_object_movement.s MovementType_FaceUpAndLeft_Step4 +08090410 event_object_movement.s MovementType_FaceUpAndRight +08090434 event_object_movement.s MovementType_FaceUpAndRight_callback +08090454 event_object_movement.s MovementType_FaceUpAndRight_Step0 +08090468 event_object_movement.s MovementType_FaceUpAndRight_Step1 +08090494 event_object_movement.s MovementType_FaceUpAndRight_Step2 +080904d8 event_object_movement.s MovementType_FaceUpAndRight_Step3 +08090508 event_object_movement.s MovementType_FaceUpAndRight_Step4 +08090550 event_object_movement.s MovementType_FaceDownAndLeft +08090574 event_object_movement.s MovementType_FaceDownAndLeft_callback +08090594 event_object_movement.s MovementType_FaceDownAndLeft_Step0 +080905a8 event_object_movement.s MovementType_FaceDownAndLeft_Step1 +080905d4 event_object_movement.s MovementType_FaceDownAndLeft_Step2 +08090618 event_object_movement.s MovementType_FaceDownAndLeft_Step3 +08090648 event_object_movement.s MovementType_FaceDownAndLeft_Step4 +08090690 event_object_movement.s MovementType_FaceDownAndRight +080906b4 event_object_movement.s MovementType_FaceDownAndRight_callback +080906d4 event_object_movement.s MovementType_FaceDownAndRight_Step0 +080906e8 event_object_movement.s MovementType_FaceDownAndRight_Step1 +08090714 event_object_movement.s MovementType_FaceDownAndRight_Step2 +08090758 event_object_movement.s MovementType_FaceDownAndRight_Step3 +08090788 event_object_movement.s MovementType_FaceDownAndRight_Step4 +080907d0 event_object_movement.s MovementType_FaceDownUpAndLeft +080907f4 event_object_movement.s MovementType_FaceDownUpAndLeft_callback +08090814 event_object_movement.s MovementType_FaceDownUpAndLeft_Step0 +08090828 event_object_movement.s MovementType_FaceDownUpAndLeft_Step1 +08090854 event_object_movement.s MovementType_FaceDownUpAndLeft_Step2 +08090898 event_object_movement.s MovementType_FaceDownUpAndLeft_Step3 +080908c8 event_object_movement.s MovementType_FaceDownUpAndLeft_Step4 +08090910 event_object_movement.s MovementType_FaceDownUpAndRight +08090934 event_object_movement.s MovementType_FaceDownUpAndRight_callback +08090954 event_object_movement.s MovementType_FaceDownUpAndRight_Step0 +08090968 event_object_movement.s MovementType_FaceDownUpAndRight_Step1 +08090994 event_object_movement.s MovementType_FaceDownUpAndRight_Step2 +080909d8 event_object_movement.s MovementType_FaceDownUpAndRight_Step3 +08090a08 event_object_movement.s MovementType_FaceDownUpAndRight_Step4 +08090a50 event_object_movement.s MovementType_FaceUpRightAndLeft +08090a74 event_object_movement.s MovementType_FaceUpRightAndLeft_callback +08090a94 event_object_movement.s MovementType_FaceUpLeftAndRight_Step0 +08090aa8 event_object_movement.s MovementType_FaceUpLeftAndRight_Step1 +08090ad4 event_object_movement.s MovementType_FaceUpLeftAndRight_Step2 +08090b18 event_object_movement.s MovementType_FaceUpLeftAndRight_Step3 +08090b48 event_object_movement.s MovementType_FaceUpLeftAndRight_Step4 +08090b90 event_object_movement.s MovementType_FaceDownRightAndLeft +08090bb4 event_object_movement.s MovementType_FaceDownRightAndLeft_callback +08090bd4 event_object_movement.s MovementType_FaceDownLeftAndRight_Step0 +08090be8 event_object_movement.s MovementType_FaceDownLeftAndRight_Step1 +08090c14 event_object_movement.s MovementType_FaceDownLeftAndRight_Step2 +08090c58 event_object_movement.s MovementType_FaceDownLeftAndRight_Step3 +08090c88 event_object_movement.s MovementType_FaceDownLeftAndRight_Step4 +08090cd0 event_object_movement.s MovementType_RotateCounterclockwise +08090cf4 event_object_movement.s MovementType_RotateCounterclockwise_callback +08090d14 event_object_movement.s MovementType_RotateCounterclockwise_Step0 +08090d40 event_object_movement.s MovementType_RotateCounterclockwise_Step1 +08090d64 event_object_movement.s MovementType_RotateCounterclockwise_Step2 +08090d90 event_object_movement.s MovementType_RotateCounterclockwise_Step3 +08090dd4 event_object_movement.s MovementType_RotateClockwise +08090df8 event_object_movement.s MovementType_RotateClockwise_callback +08090e18 event_object_movement.s MovementType_RotateClockwise_Step0 +08090e44 event_object_movement.s MovementType_RotateClockwise_Step1 +08090e68 event_object_movement.s MovementType_RotateClockwise_Step2 +08090e94 event_object_movement.s MovementType_RotateClockwise_Step3 +08090ed8 event_object_movement.s MovementType_WalkBackAndForth +08090efc event_object_movement.s MovementType_WalkBackAndForth_callback +08090f1c event_object_movement.s MovementType_WalkBackAndForth_Step0 +08090f30 event_object_movement.s MovementType_WalkBackAndForth_Step1 +08090f68 event_object_movement.s MovementType_WalkBackAndForth_Step2 +08091020 event_object_movement.s MovementType_WalkBackAndForth_Step3 +08091048 event_object_movement.s MovementType_WalkSequence_Step0 +0809105c event_object_movement.s MoveNextDirectionInSequence +08091110 event_object_movement.s MovementType_WalkSequence_Step2 +08091138 event_object_movement.s MovementType_WalkSequenceUpRightLeftDown +0809115c event_object_movement.s MovementType_WalkSequenceUpRightLeftDown_callback +0809117c event_object_movement.s MovementType_WalkSequenceUpRightLeftDown_Step1 +080911c4 event_object_movement.s MovementType_WalkSequenceRightLeftDownUp +080911e8 event_object_movement.s MovementType_WalkSequenceRightLeftDownUp_callback +08091208 event_object_movement.s MovementType_WalkSequenceRightLeftDownUp_Step1 +08091250 event_object_movement.s MovementType_WalkSequenceDownUpRightLeft +08091274 event_object_movement.s MovementType_WalkSequenceDownUpRightLeft_callback +08091294 event_object_movement.s MovementType_WalkSequenceDownUpRightLeft_Step1 +080912dc event_object_movement.s MovementType_WalkSequenceLeftDownUpRight +08091300 event_object_movement.s MovementType_WalkSequenceLeftDownUpRight_callback +08091320 event_object_movement.s MovementType_WalkSequenceLeftDownUpRight_Step1 +08091368 event_object_movement.s MovementType_WalkSequenceUpLeftRightDown +0809138c event_object_movement.s MovementType_WalkSequenceUpLeftRightDown_callback +080913ac event_object_movement.s MovementType_WalkSequenceUpLeftRightDown_Step1 +080913f4 event_object_movement.s MovementType_WalkSequenceLeftRightDownUp +08091418 event_object_movement.s MovementType_WalkSequenceLeftRightDownUp_callback +08091438 event_object_movement.s MovementType_WalkSequenceLeftRightDownUp_Step1 +08091480 event_object_movement.s MovementType_WalkSequenceDownUpLeftRight +080914a4 event_object_movement.s MovementType_WalkSequenceDownUpLeftRight_callback +080914c4 event_object_movement.s MovementType_WalkSequenceDownUpLeftRight_Step1 +0809150c event_object_movement.s MovementType_WalkSequenceRightDownUpLeft +08091530 event_object_movement.s MovementType_WalkSequenceRightDownUpLeft_callback +08091550 event_object_movement.s MovementType_WalkSequenceRightDownUpLeft_Step1 +08091598 event_object_movement.s MovementType_WalkSequenceLeftUpDownRight +080915bc event_object_movement.s MovementType_WalkSequenceLeftUpDownRight_callback +080915dc event_object_movement.s MovementType_WalkSequenceLeftUpDownRight_Step1 +08091624 event_object_movement.s MovementType_WalkSequenceUpDownRightLeft +08091648 event_object_movement.s MovementType_WalkSequenceUpDownRightLeft_callback +08091668 event_object_movement.s MovementType_WalkSequenceUpDownRightLeft_Step1 +080916b0 event_object_movement.s MovementType_WalkSequenceRightLeftUpDown +080916d4 event_object_movement.s MovementType_WalkSequenceRightLeftUpDown_callback +080916f4 event_object_movement.s MovementType_WalkSequenceRightLeftUpDown_Step1 +0809173c event_object_movement.s MovementType_WalkSequenceDownRightLeftUp +08091760 event_object_movement.s MovementType_WalkSequenceDownRightLeftUp_callback +08091780 event_object_movement.s MovementType_WalkSequenceDownRightLeftUp_Step1 +080917c8 event_object_movement.s MovementType_WalkSequenceRightUpDownLeft +080917ec event_object_movement.s MovementType_WalkSequenceRightUpDownLeft_callback +0809180c event_object_movement.s MovementType_WalkSequenceRightUpDownLeft_Step1 +08091854 event_object_movement.s MovementType_WalkSequenceUpDownLeftRight +08091878 event_object_movement.s MovementType_WalkSequenceUpDownLeftRight_callback +08091898 event_object_movement.s MovementType_WalkSequenceUpDownLeftRight_Step1 +080918e0 event_object_movement.s MovementType_WalkSequenceLeftRightUpDown +08091904 event_object_movement.s MovementType_WalkSequenceLeftRightUpDown_callback +08091924 event_object_movement.s MovementType_WalkSequenceLeftRightUpDown_Step1 +0809196c event_object_movement.s MovementType_WalkSequenceDownLeftRightUp +08091990 event_object_movement.s MovementType_WalkSequenceDownLeftRightUp_callback +080919b0 event_object_movement.s MovementType_WalkSequenceDownLeftRightUp_Step1 +080919f8 event_object_movement.s MovementType_WalkSequenceUpLeftDownRight +08091a1c event_object_movement.s MovementType_WalkSequenceUpLeftDownRight_callback +08091a3c event_object_movement.s MovementType_WalkSequenceUpLeftDownRight_Step1 +08091a84 event_object_movement.s MovementType_WalkSequenceDownRightUpLeft +08091aa8 event_object_movement.s MovementType_WalkSequenceDownRightUpLeft_callback +08091ac8 event_object_movement.s MovementType_WalkSequenceDownRightUpLeft_Step1 +08091b10 event_object_movement.s MovementType_WalkSequenceLeftDownRightUp +08091b34 event_object_movement.s MovementType_WalkSequenceLeftDownRightUp_callback +08091b54 event_object_movement.s MovementType_WalkSequenceLeftDownRightUp_Step1 +08091b9c event_object_movement.s MovementType_WalkSequenceRightUpLeftDown +08091bc0 event_object_movement.s MovementType_WalkSequenceRightUpLeftDown_callback +08091be0 event_object_movement.s MovementType_WalkSequenceRightUpLeftDown_Step1 +08091c28 event_object_movement.s MovementType_WalkSequenceUpRightDownLeft +08091c4c event_object_movement.s MovementType_WalkSequenceUpRightDownLeft_callback +08091c6c event_object_movement.s MovementType_WalkSequenceUpRightDownLeft_Step1 +08091cb4 event_object_movement.s MovementType_WalkSequenceDownLeftUpRight +08091cd8 event_object_movement.s MovementType_WalkSequenceDownLeftUpRight_callback +08091cf8 event_object_movement.s MovementType_WalkSequenceDownLeftUpRight_Step1 +08091d40 event_object_movement.s MovementType_WalkSequenceLeftUpRightDown +08091d64 event_object_movement.s MovementType_WalkSequenceLeftUpRightDown_callback +08091d84 event_object_movement.s MovementType_WalkSequenceLeftUpRightDown_Step1 +08091dcc event_object_movement.s MovementType_WalkSequenceRightDownLeftUp +08091df0 event_object_movement.s MovementType_WalkSequenceRightDownLeftUp_callback +08091e10 event_object_movement.s MovementType_WalkSequenceRightDownLeftUp_Step1 +08091e58 event_object_movement.s MovementType_CopyPlayer +08091e7c event_object_movement.s MovementType_CopyPlayer_callback +08091e9c event_object_movement.s MovementType_CopyPlayer_Step0 +08091ec0 event_object_movement.s MovementType_CopyPlayer_Step1 +08091f20 event_object_movement.s MovementType_CopyPlayer_Step2 +08091f48 event_object_movement.s CopyablePlayerMovement_None +08091f4c event_object_movement.s CopyablePlayerMovement_FaceDirection +08091f94 event_object_movement.s CopyablePlayerMovement_GoSpeed0 +080920a4 event_object_movement.s CopyablePlayerMovement_GoSpeed1 +0809215c event_object_movement.s CopyablePlayerMovement_GoSpeed2 +08092214 event_object_movement.s CopyablePlayerMovement_Slide +080922cc event_object_movement.s cph_IM_DIFFERENT +08092314 event_object_movement.s CopyablePlayerMovement_GoSpeed4 +080923cc event_object_movement.s CopyablePlayerMovement_Jump +08092494 event_object_movement.s MovementType_CopyPlayerInGrass +080924b8 event_object_movement.s MovementType_CopyPlayerInGrass_callback +080924d8 event_object_movement.s MovementType_CopyPlayerInGrass_Step1 +0809253c event_object_movement.s MovementType_TreeDisguise +080925ac event_object_movement.s MovementType_Disguise_Callback +080925b8 event_object_movement.s MovementType_MountainDisguise +08092628 event_object_movement.s MovementType_Hidden +0809268c event_object_movement.s MovementType_Hidden_Callback +080926ac event_object_movement.s MovementType_Hidden_Step0 +080926b8 event_object_movement.s MovementType_MoveInPlace_Step1 +080926d4 event_object_movement.s MovementType_WalkInPlace +080926f8 event_object_movement.s MovementType_WalkInPlace_callback +08092718 event_object_movement.s MovementType_WalkInPlace_Step0 +08092744 event_object_movement.s MovementType_WalkSlowlyInPlace +08092768 event_object_movement.s MovementType_WalkSlowlyInPlace_callback +08092788 event_object_movement.s MovementType_WalkSlowlyInPlace_Step0 +080927b4 event_object_movement.s MovementType_JogInPlace +080927d8 event_object_movement.s MovementType_JogInPlace_callback +080927f8 event_object_movement.s MovementType_JogInPlace_Step0 +08092824 event_object_movement.s MovementType_RunInPlace +08092848 event_object_movement.s MovementType_RunInPlace_callback +08092868 event_object_movement.s MovementType_RunInPlace_Step0 +08092894 event_object_movement.s MovementType_Invisible +080928b8 event_object_movement.s MovementType_Invisible_callback +080928d8 event_object_movement.s MovementType_Invisible_Step0 +0809290c event_object_movement.s MovementType_Invisible_Step1 +0809292c event_object_movement.s MovementType_Invisible_Step2 +0809293c event_object_movement.s ClearEventObjectMovement +0809295c event_object_movement.s GetFaceDirectionAnimNum +0809296c event_object_movement.s GetMoveDirectionAnimNum +0809297c event_object_movement.s GetMoveDirectionFastAnimNum +0809298c event_object_movement.s GetMoveDirectionFasterAnimNum +0809299c event_object_movement.s GetMoveDirectionFastestAnimNum +080929ac event_object_movement.s GetJumpSpecialDirectionAnimNum +080929bc event_object_movement.s GetAcroWheelieDirectionAnimNum +080929cc event_object_movement.s Unref_GetAnimNums_08375633 +080929dc event_object_movement.s GetAcroEndWheelieDirectionAnimNum +080929ec event_object_movement.s GetAcroUnusedActionDirectionAnimNum +080929fc event_object_movement.s GetAcroWheeliePedalDirectionAnimNum +08092a0c event_object_movement.s GetFishingDirectionAnimNum +08092a1c event_object_movement.s GetFishingNoCatchDirectionAnimNum +08092a2c event_object_movement.s GetFishingBiteDirectionAnimNum +08092a3c event_object_movement.s GetRunningDirectionAnimNum +08092a4c event_object_movement.s sub_8092A4C +08092a70 event_object_movement.s npc_apply_anim_looping +08092ab8 event_object_movement.s obj_npc_animation_step +08092af8 event_object_movement.s GetDirectionToFace +08092b2c event_object_movement.s SetTrainerMovementType +08092b78 event_object_movement.s GetTrainerFacingDirectionMovementType +08092b88 event_object_movement.s GetCollisionInDirection +08092bc8 event_object_movement.s GetCollisionAtCoords +08092c8c event_object_movement.s GetCollisionFlagsAtCoords +08092d58 event_object_movement.s IsCoordOutsideEventObjectMovementRange +08092dc8 event_object_movement.s IsMetatileDirectionallyImpassable +08092e20 event_object_movement.s DoesObjectCollideWithObjectAt +08092e9c event_object_movement.s IsBerryTreeSparkling +08092ef0 event_object_movement.s sub_8092EF0 +08092f3c event_object_movement.s MoveCoords +08092f60 event_object_movement.s sub_8092F60 +08092f88 event_object_movement.s MoveCoordsInDirection +08092ff0 event_object_movement.s sub_8092FF0 +08093038 event_object_movement.s SetSpritePosToMapCoords +080930e0 event_object_movement.s sub_80930E0 +0809312c event_object_movement.s GetEventObjectMovingCameraOffset +0809316c event_object_movement.s EventObjectMoveDestCoords +0809318c event_object_movement.s EventObjectIsMovementOverridden +080931a4 event_object_movement.s EventObjectIsHeldMovementActive +080931c0 event_object_movement.s EventObjectSetHeldMovement +08093208 event_object_movement.s EventObjectForceSetHeldMovement +08093224 event_object_movement.s EventObjectClearHeldMovementIfActive +0809323c event_object_movement.s EventObjectClearHeldMovement +08093270 event_object_movement.s EventObjectCheckHeldMovementStatus +08093284 event_object_movement.s EventObjectClearHeldMovementIfFinished +080932a8 event_object_movement.s EventObjectGetHeldMovementActionId +080932c0 event_object_movement.s UpdateEventObjectCurrentMovement +08093330 event_object_movement.s GetFaceDirectionMovementAction +0809335c event_object_movement.s GetWalkSlowMovementAction +08093388 event_object_movement.s GetWalkNormalMovementAction +080933b4 event_object_movement.s GetWalkFastMovementAction +080933e0 event_object_movement.s GetRideWaterCurrentMovementAction +0809340c event_object_movement.s GetWalkFastestMovementAction +08093438 event_object_movement.s GetSlideMovementAction +08093464 event_object_movement.s GetPlayerRunMovementAction +08093490 event_object_movement.s GetJump2MovementAction +080934bc event_object_movement.s GetJumpInPlaceMovementAction +080934e8 event_object_movement.s GetJumpInPlaceTurnAroundMovementAction +08093514 event_object_movement.s GetJumpMovementAction +08093540 event_object_movement.s GetJumpSpecialMovementAction +0809356c event_object_movement.s GetWalkInPlaceSlowMovementAction +08093598 event_object_movement.s GetWalkInPlaceNormalMovementAction +080935c4 event_object_movement.s GetWalkInPlaceFastMovementAction +080935f0 event_object_movement.s GetWalkInPlaceFastestMovementAction +0809361c event_object_movement.s EventObjectFaceOppositeDirection +08093648 event_object_movement.s GetAcroWheelieFaceDirectionMovementAction +08093674 event_object_movement.s GetAcroPopWheelieFaceDirectionMovementAction +080936a0 event_object_movement.s GetAcroEndWheelieFaceDirectionMovementAction +080936cc event_object_movement.s GetAcroWheelieHopFaceDirectionMovementAction +080936f8 event_object_movement.s GetAcroWheelieHopDirectionMovementAction +08093724 event_object_movement.s GetAcroWheelieJumpDirectionMovementAction +08093750 event_object_movement.s GetAcroWheelieInPlaceDirectionMovementAction +0809377c event_object_movement.s GetAcroPopWheelieMoveDirectionMovementAction +080937a8 event_object_movement.s GetAcroWheelieMoveDirectionMovementAction +080937d4 event_object_movement.s GetAcroEndWheelieMoveDirectionMovementAction +08093800 event_object_movement.s GetOppositeDirection +08093834 event_object_movement.s zffu_offset_calc +0809384c event_object_movement.s state_to_direction +0809388c event_object_movement.s EventObjectExecHeldMovementAction +080938c4 event_object_movement.s EventObjectExecSingleMovementAction +08093904 event_object_movement.s EventObjectSetSingleMovement +0809390c event_object_movement.s FaceDirection +08093950 event_object_movement.s MovementAction_FaceDown_Step0 +08093960 event_object_movement.s MovementAction_FaceUp_Step0 +08093970 event_object_movement.s MovementAction_FaceLeft_Step0 +08093980 event_object_movement.s MovementAction_FaceRight_Step0 +08093990 event_object_movement.s npc_apply_direction +08093a2c event_object_movement.s do_go_anim +08093a88 event_object_movement.s StartRunningAnim +08093ab8 event_object_movement.s npc_obj_ministep_stop_on_arrival +08093af0 event_object_movement.s sub_8093AF0 +08093b60 event_object_movement.s sub_8093B60 +08093b8c event_object_movement.s an_walk_any_2 +08093bc4 event_object_movement.s MovementAction_WalkSlowDiagonalUpLeft_Step0 +08093be4 event_object_movement.s MovementAction_WalkSlowDiagonalUpLeft_Step1 +08093c04 event_object_movement.s MovementAction_WalkSlowDiagonalUpRight_Step0 +08093c24 event_object_movement.s MovementAction_WalkSlowDiagonalUpRight_Step1 +08093c44 event_object_movement.s MovementAction_WalkSlowDiagonalDownLeft_Step0 +08093c64 event_object_movement.s MovementAction_WalkSlowDiagonalDownLeft_Step1 +08093c84 event_object_movement.s MovementAction_WalkSlowDiagonalDownRight_Step0 +08093ca4 event_object_movement.s MovementAction_WalkSlowDiagonalDownRight_Step1 +08093cc4 event_object_movement.s MovementAction_WalkSlowDown_Step0 +08093ce4 event_object_movement.s MovementAction_WalkSlowDown_Step1 +08093d04 event_object_movement.s MovementAction_WalkSlowUp_Step0 +08093d24 event_object_movement.s MovementAction_WalkSlowUp_Step1 +08093d44 event_object_movement.s MovementAction_WalkSlowLeft_Step0 +08093d64 event_object_movement.s MovementAction_WalkSlowLeft_Step1 +08093d84 event_object_movement.s MovementAction_WalkSlowRight_Step0 +08093da4 event_object_movement.s MovementAction_WalkSlowRight_Step1 +08093dc4 event_object_movement.s MovementAction_WalkNormalDiagonalUpLeft_Step0 +08093de4 event_object_movement.s MovementAction_WalkNormalDiagonalUpLeft_Step1 +08093e04 event_object_movement.s MovementAction_WalkNormalDiagonalUpRight_Step0 +08093e24 event_object_movement.s MovementAction_WalkNormalDiagonalUpRight_Step1 +08093e44 event_object_movement.s MovementAction_WalkNormalDiagonalDownLeft_Step0 +08093e64 event_object_movement.s MovementAction_WalkNormalDiagonalDownLeft_Step1 +08093e84 event_object_movement.s MovementAction_WalkNormalDiagonalDownRight_Step0 +08093ea4 event_object_movement.s MovementAction_WalkNormalDiagonalDownRight_Step1 +08093ec4 event_object_movement.s MovementAction_WalkNormalDown_Step0 +08093ee4 event_object_movement.s MovementAction_WalkNormalDown_Step1 +08093f04 event_object_movement.s MovementAction_WalkNormalUp_Step0 +08093f24 event_object_movement.s MovementAction_WalkNormalUp_Step1 +08093f44 event_object_movement.s MovementAction_WalkNormalLeft_Step0 +08093f64 event_object_movement.s MovementAction_WalkNormalLeft_Step1 +08093f84 event_object_movement.s MovementAction_WalkNormalRight_Step0 +08093fa4 event_object_movement.s MovementAction_WalkNormalRight_Step1 +08093fc4 event_object_movement.s sub_8093FC4 +08094080 event_object_movement.s maybe_shadow_1 +080940c4 event_object_movement.s sub_80940C4 +08094188 event_object_movement.s sub_8094188 +0809419c event_object_movement.s sub_809419C +080941b0 event_object_movement.s sub_80941B0 +080941c8 event_object_movement.s sub_80941C8 +080941e0 event_object_movement.s sub_80941E0 +08094230 event_object_movement.s MovementAction_Jump2Down_Step0 +0809425c event_object_movement.s MovementAction_Jump2Down_Step1 +08094288 event_object_movement.s MovementAction_Jump2Up_Step0 +080942b4 event_object_movement.s MovementAction_Jump2Up_Step1 +080942e0 event_object_movement.s MovementAction_Jump2Left_Step0 +0809430c event_object_movement.s MovementAction_Jump2Left_Step1 +08094338 event_object_movement.s MovementAction_Jump2Right_Step0 +08094364 event_object_movement.s MovementAction_Jump2Right_Step1 +08094390 event_object_movement.s sub_8094390 +08094398 event_object_movement.s MovementAction_Delay_Step1 +080943b4 event_object_movement.s MovementAction_Delay1_Step0 +080943d4 event_object_movement.s MovementAction_Delay2_Step0 +080943f4 event_object_movement.s MovementAction_Delay4_Step0 +08094414 event_object_movement.s MovementAction_Delay8_Step0 +08094434 event_object_movement.s MovementAction_Delay16_Step0 +08094454 event_object_movement.s MovementAction_WalkFastDown_Step0 +08094474 event_object_movement.s MovementAction_WalkFastDown_Step1 +08094494 event_object_movement.s MovementAction_WalkFastUp_Step0 +080944b4 event_object_movement.s MovementAction_WalkFastUp_Step1 +080944d4 event_object_movement.s MovementAction_WalkFastLeft_Step0 +080944f4 event_object_movement.s MovementAction_WalkFastLeft_Step1 +08094514 event_object_movement.s MovementAction_WalkFastRight_Step0 +08094534 event_object_movement.s MovementAction_WalkFastRight_Step1 +08094554 event_object_movement.s sub_8094554 +0809459c event_object_movement.s MovementAction_WalkInPlace_Step1 +080945c4 event_object_movement.s MovementAction_WalkInPlaceSlow_Step1 +08094600 event_object_movement.s MovementAction_WalkInPlaceSlowDown_Step0 +08094638 event_object_movement.s MovementAction_WalkInPlaceSlowUp_Step0 +08094670 event_object_movement.s MovementAction_WalkInPlaceSlowLeft_Step0 +080946a8 event_object_movement.s MovementAction_WalkInPlaceSlowRight_Step0 +080946e0 event_object_movement.s MovementAction_WalkInPlaceNormalDown_Step0 +08094718 event_object_movement.s MovementAction_WalkInPlaceNormalUp_Step0 +08094750 event_object_movement.s MovementAction_WalkInPlaceNormalLeft_Step0 +08094788 event_object_movement.s MovementAction_WalkInPlaceNormalRight_Step0 +080947c0 event_object_movement.s MovementAction_WalkInPlaceFastDown_Step0 +080947f8 event_object_movement.s MovementAction_WalkInPlaceFastUp_Step0 +08094830 event_object_movement.s MovementAction_WalkInPlaceFastLeft_Step0 +08094868 event_object_movement.s MovementAction_WalkInPlaceFastRight_Step0 +080948a0 event_object_movement.s MovementAction_WalkInPlaceFastestDown_Step0 +080948d8 event_object_movement.s MovementAction_WalkInPlaceFastestUp_Step0 +08094910 event_object_movement.s MovementAction_WalkInPlaceFastestLeft_Step0 +08094948 event_object_movement.s MovementAction_WalkInPlaceFastestRight_Step0 +08094980 event_object_movement.s MovementAction_RideWaterCurrentDown_Step0 +080949a0 event_object_movement.s MovementAction_RideWaterCurrentDown_Step1 +080949c0 event_object_movement.s MovementAction_RideWaterCurrentUp_Step0 +080949e0 event_object_movement.s MovementAction_RideWaterCurrentUp_Step1 +08094a00 event_object_movement.s MovementAction_RideWaterCurrentLeft_Step0 +08094a20 event_object_movement.s MovementAction_RideWaterCurrentLeft_Step1 +08094a40 event_object_movement.s MovementAction_RideWaterCurrentRight_Step0 +08094a60 event_object_movement.s MovementAction_RideWaterCurrentRight_Step1 +08094a80 event_object_movement.s MovementAction_WalkFastestDown_Step0 +08094aa0 event_object_movement.s MovementAction_WalkFastestDown_Step1 +08094ac0 event_object_movement.s MovementAction_WalkFastestUp_Step0 +08094ae0 event_object_movement.s MovementAction_WalkFastestUp_Step1 +08094b00 event_object_movement.s MovementAction_WalkFastestLeft_Step0 +08094b20 event_object_movement.s MovementAction_WalkFastestLeft_Step1 +08094b40 event_object_movement.s MovementAction_WalkFastestRight_Step0 +08094b60 event_object_movement.s MovementAction_WalkFastestRight_Step1 +08094b80 event_object_movement.s MovementAction_SlideDown_Step0 +08094ba0 event_object_movement.s MovementAction_SlideDown_Step1 +08094bc0 event_object_movement.s MovementAction_SlideUp_Step0 +08094be0 event_object_movement.s MovementAction_SlideUp_Step1 +08094c00 event_object_movement.s MovementAction_SlideLeft_Step0 +08094c20 event_object_movement.s MovementAction_SlideLeft_Step1 +08094c40 event_object_movement.s MovementAction_SlideRight_Step0 +08094c60 event_object_movement.s MovementAction_SlideRight_Step1 +08094c80 event_object_movement.s MovementAction_PlayerRunDown_Step0 +08094ca0 event_object_movement.s MovementAction_PlayerRunDown_Step1 +08094cc0 event_object_movement.s MovementAction_PlayerRunUp_Step0 +08094ce0 event_object_movement.s MovementAction_PlayerRunUp_Step1 +08094d00 event_object_movement.s MovementAction_PlayerRunLeft_Step0 +08094d20 event_object_movement.s MovementAction_PlayerRunLeft_Step1 +08094d40 event_object_movement.s MovementAction_PlayerRunRight_Step0 +08094d60 event_object_movement.s MovementAction_PlayerRunRight_Step1 +08094d80 event_object_movement.s StartSpriteAnimInDirection +08094dac event_object_movement.s MovementAction_StartAnimInDirection_Step0 +08094dc4 event_object_movement.s MovementAction_WaitSpriteAnim +08094de4 event_object_movement.s sub_8094DE4 +08094e18 event_object_movement.s MovementAction_JumpSpecialDown_Step0 +08094e38 event_object_movement.s MovementAction_JumpSpecialDown_Step1 +08094e60 event_object_movement.s MovementAction_JumpSpecialUp_Step0 +08094e80 event_object_movement.s MovementAction_JumpSpecialUp_Step1 +08094ea8 event_object_movement.s MovementAction_JumpSpecialLeft_Step0 +08094ec8 event_object_movement.s MovementAction_JumpSpecialLeft_Step1 +08094ef0 event_object_movement.s MovementAction_JumpSpecialRight_Step0 +08094f10 event_object_movement.s MovementAction_JumpSpecialRight_Step1 +08094f38 event_object_movement.s MovementAction_FacePlayer_Step0 +08094f94 event_object_movement.s MovementAction_FaceAwayPlayer_Step0 +08094ff8 event_object_movement.s MovementAction_LockFacingDirection_Step0 +08095008 event_object_movement.s MovementAction_UnlockFacingDirection_Step0 +08095018 event_object_movement.s MovementAction_JumpDown_Step0 +08095044 event_object_movement.s MovementAction_JumpDown_Step1 +08095070 event_object_movement.s MovementAction_JumpUp_Step0 +0809509c event_object_movement.s MovementAction_JumpUp_Step1 +080950c8 event_object_movement.s MovementAction_JumpLeft_Step0 +080950f4 event_object_movement.s MovementAction_JumpLeft_Step1 +08095120 event_object_movement.s MovementAction_JumpRight_Step0 +0809514c event_object_movement.s MovementAction_JumpRight_Step1 +08095178 event_object_movement.s MovementAction_JumpInPlaceDown_Step0 +080951a4 event_object_movement.s MovementAction_JumpInPlaceDown_Step1 +080951d0 event_object_movement.s MovementAction_JumpInPlaceUp_Step0 +080951fc event_object_movement.s MovementAction_JumpInPlaceUp_Step1 +08095228 event_object_movement.s MovementAction_JumpInPlaceLeft_Step0 +08095254 event_object_movement.s MovementAction_JumpInPlaceLeft_Step1 +08095280 event_object_movement.s MovementAction_JumpInPlaceRight_Step0 +080952ac event_object_movement.s MovementAction_JumpInPlaceRight_Step1 +080952d8 event_object_movement.s MovementAction_JumpInPlaceDownUp_Step0 +08095304 event_object_movement.s MovementAction_JumpInPlaceDownUp_Step1 +08095330 event_object_movement.s MovementAction_JumpInPlaceUpDown_Step0 +0809535c event_object_movement.s MovementAction_JumpInPlaceUpDown_Step1 +08095388 event_object_movement.s MovementAction_JumpInPlaceLeftRight_Step0 +080953b4 event_object_movement.s MovementAction_JumpInPlaceLeftRight_Step1 +080953e0 event_object_movement.s MovementAction_JumpInPlaceRightLeft_Step0 +0809540c event_object_movement.s MovementAction_JumpInPlaceRightLeft_Step1 +08095438 event_object_movement.s MovementAction_FaceOriginalDirection_Step0 +08095450 event_object_movement.s MovementAction_NurseJoyBowDown_Step0 +08095460 event_object_movement.s MovementAction_EnableJumpLandingGroundEffect_Step0 +08095470 event_object_movement.s MovementAction_DisableJumpLandingGroundEffect_Step0 +08095480 event_object_movement.s MovementAction_DisableAnimation_Step0 +08095490 event_object_movement.s MovementAction_RestoreAnimation_Step0 +080954bc event_object_movement.s MovementAction_SetInvisible_Step0 +080954cc event_object_movement.s MovementAction_SetVisible_Step0 +080954dc event_object_movement.s MovementAction_EmoteExclamationMark_Step0 +08095500 event_object_movement.s MovementAction_EmoteQuestionMark_Step0 +08095524 event_object_movement.s MovementAction_EmoteHeart_Step0 +08095548 event_object_movement.s MovementAction_RevealTrainer_Step0 +0809558c event_object_movement.s MovementAction_RevealTrainer_Step1 +080955ac event_object_movement.s MovementAction_RockSmashBreak_Step0 +080955c8 event_object_movement.s MovementAction_RockSmashBreak_Step1 +080955ec event_object_movement.s MovementAction_RockSmashBreak_Step2 +08095628 event_object_movement.s MovementAction_CutTree_Step0 +08095644 event_object_movement.s MovementAction_CutTree_Step1 +08095668 event_object_movement.s MovementAction_CutTree_Step2 +080956a4 event_object_movement.s MovementAction_SetFixedPriority_Step0 +080956b4 event_object_movement.s MovementAction_ClearFixedPriority_Step0 +080956c4 event_object_movement.s MovementAction_InitAffineAnim_Step0 +080956f4 event_object_movement.s MovementAction_ClearAffineAnim_Step0 +08095724 event_object_movement.s MovementAction_Unknown1_Step0 +08095730 event_object_movement.s MovementAction_Unknown2_Step0 +08095740 event_object_movement.s MovementAction_WalkDownStartAffine_Step0 +08095774 event_object_movement.s MovementAction_WalkDownStartAffine_Step1 +080957a0 event_object_movement.s MovementAction_WalkDownAffine_Step0 +080957d4 event_object_movement.s MovementAction_WalkDownAffine_Step1 +08095800 event_object_movement.s MovementAction_WalkLeftAffine_Step0 +08095834 event_object_movement.s MovementAction_WalkLeftAffine_Step1 +08095860 event_object_movement.s MovementAction_WalkRightAffine_Step0 +08095894 event_object_movement.s MovementAction_WalkRightAffine_Step1 +080958c0 event_object_movement.s sub_80958C0 +08095900 event_object_movement.s MovementAction_AcroWheelieFaceDown_Step0 +08095910 event_object_movement.s MovementAction_AcroWheelieFaceUp_Step0 +08095920 event_object_movement.s MovementAction_AcroWheelieFaceLeft_Step0 +08095930 event_object_movement.s MovementAction_AcroWheelieFaceRight_Step0 +08095940 event_object_movement.s MovementAction_AcroPopWheelieDown_Step0 +08095964 event_object_movement.s MovementAction_AcroPopWheelieUp_Step0 +08095988 event_object_movement.s MovementAction_AcroPopWheelieLeft_Step0 +080959ac event_object_movement.s MovementAction_AcroPopWheelieRight_Step0 +080959d0 event_object_movement.s MovementAction_AcroEndWheelieFaceDown_Step0 +080959f4 event_object_movement.s MovementAction_AcroEndWheelieFaceUp_Step0 +08095a18 event_object_movement.s MovementAction_AcroEndWheelieFaceLeft_Step0 +08095a3c event_object_movement.s MovementAction_AcroEndWheelieFaceRight_Step0 +08095a60 event_object_movement.s MovementAction_UnusedAcroActionDown_Step0 +08095a84 event_object_movement.s MovementAction_UnusedAcroActionUp_Step0 +08095aa8 event_object_movement.s MovementAction_UnusedAcroActionLeft_Step0 +08095acc event_object_movement.s MovementAction_UnusedAcroActionRight_Step0 +08095af0 event_object_movement.s sub_8095AF0 +08095b0c event_object_movement.s sub_8095B0C +08095b44 event_object_movement.s MovementAction_Figure8_Step0 +08095b64 event_object_movement.s MovementAction_Figure8_Step1 +08095b84 event_object_movement.s sub_8095B84 +08095bc8 event_object_movement.s MovementAction_AcroWheelieHopFaceDown_Step0 +08095bf4 event_object_movement.s MovementAction_AcroWheelieHopFaceDown_Step1 +08095c20 event_object_movement.s MovementAction_AcroWheelieHopFaceUp_Step0 +08095c4c event_object_movement.s MovementAction_AcroWheelieHopFaceUp_Step1 +08095c78 event_object_movement.s MovementAction_AcroWheelieHopFaceLeft_Step0 +08095ca4 event_object_movement.s MovementAction_AcroWheelieHopFaceLeft_Step1 +08095cd0 event_object_movement.s MovementAction_AcroWheelieHopFaceRight_Step0 +08095cfc event_object_movement.s MovementAction_AcroWheelieHopFaceRight_Step1 +08095d28 event_object_movement.s MovementAction_AcroWheelieHopDown_Step0 +08095d54 event_object_movement.s MovementAction_AcroWheelieHopDown_Step1 +08095d80 event_object_movement.s MovementAction_AcroWheelieHopUp_Step0 +08095dac event_object_movement.s MovementAction_AcroWheelieHopUp_Step1 +08095dd8 event_object_movement.s MovementAction_AcroWheelieHopLeft_Step0 +08095e04 event_object_movement.s MovementAction_AcroWheelieHopLeft_Step1 +08095e30 event_object_movement.s MovementAction_AcroWheelieHopRight_Step0 +08095e5c event_object_movement.s MovementAction_AcroWheelieHopRight_Step1 +08095e88 event_object_movement.s MovementAction_AcroWheelieJumpDown_Step0 +08095eb4 event_object_movement.s MovementAction_AcroWheelieJumpDown_Step1 +08095ee0 event_object_movement.s MovementAction_AcroWheelieJumpUp_Step0 +08095f0c event_object_movement.s MovementAction_AcroWheelieJumpUp_Step1 +08095f38 event_object_movement.s MovementAction_AcroWheelieJumpLeft_Step0 +08095f64 event_object_movement.s MovementAction_AcroWheelieJumpLeft_Step1 +08095f90 event_object_movement.s MovementAction_AcroWheelieJumpRight_Step0 +08095fbc event_object_movement.s MovementAction_AcroWheelieJumpRight_Step1 +08095fe8 event_object_movement.s MovementAction_AcroWheelieInPlaceDown_Step0 +08096020 event_object_movement.s MovementAction_AcroWheelieInPlaceUp_Step0 +08096058 event_object_movement.s MovementAction_AcroWheelieInPlaceLeft_Step0 +08096090 event_object_movement.s MovementAction_AcroWheelieInPlaceRight_Step0 +080960c8 event_object_movement.s sub_80960C8 +08096100 event_object_movement.s MovementAction_AcroPopWheelieMoveDown_Step0 +08096120 event_object_movement.s MovementAction_AcroPopWheelieMoveDown_Step1 +08096140 event_object_movement.s MovementAction_AcroPopWheelieMoveUp_Step0 +08096160 event_object_movement.s MovementAction_AcroPopWheelieMoveUp_Step1 +08096180 event_object_movement.s MovementAction_AcroPopWheelieMoveLeft_Step0 +080961a0 event_object_movement.s MovementAction_AcroPopWheelieMoveLeft_Step1 +080961c0 event_object_movement.s MovementAction_AcroPopWheelieMoveRight_Step0 +080961e0 event_object_movement.s MovementAction_AcroPopWheelieMoveRight_Step1 +08096200 event_object_movement.s sub_8096200 +08096230 event_object_movement.s MovementAction_AcroWheelieMoveDown_Step0 +08096250 event_object_movement.s MovementAction_AcroWheelieMoveDown_Step1 +08096270 event_object_movement.s MovementAction_AcroWheelieMoveUp_Step0 +08096290 event_object_movement.s MovementAction_AcroWheelieMoveUp_Step1 +080962b0 event_object_movement.s MovementAction_AcroWheelieMoveLeft_Step0 +080962d0 event_object_movement.s MovementAction_AcroWheelieMoveLeft_Step1 +080962f0 event_object_movement.s MovementAction_AcroWheelieMoveRight_Step0 +08096310 event_object_movement.s MovementAction_AcroWheelieMoveRight_Step1 +08096330 event_object_movement.s sub_8096330 +08096368 event_object_movement.s MovementAction_AcroEndWheelieMoveDown_Step0 +08096388 event_object_movement.s MovementAction_AcroEndWheelieMoveDown_Step1 +080963a8 event_object_movement.s MovementAction_AcroEndWheelieMoveUp_Step0 +080963c8 event_object_movement.s MovementAction_AcroEndWheelieMoveUp_Step1 +080963e8 event_object_movement.s MovementAction_AcroEndWheelieMoveLeft_Step0 +08096408 event_object_movement.s MovementAction_AcroEndWheelieMoveLeft_Step1 +08096428 event_object_movement.s MovementAction_AcroEndWheelieMoveRight_Step0 +08096448 event_object_movement.s MovementAction_AcroEndWheelieMoveRight_Step1 +08096468 event_object_movement.s MovementAction_Levitate_Step0 +0809647c event_object_movement.s MovementAction_StopLevitate_Step0 +08096494 event_object_movement.s MovementAction_DestroyExtraTaskIfAtTop_Step0 +080964b8 event_object_movement.s MovementAction_Finish +080964bc event_object_movement.s MovementAction_PauseSpriteAnim +080964cc event_object_movement.s UpdateEventObjectSpriteAnimPause +080964e8 event_object_movement.s TryEnableEventObjectAnim +08096518 event_object_movement.s UpdateEventObjectVisibility +08096530 event_object_movement.s sub_8096530 +08096610 event_object_movement.s UpdateEventObjSpriteVisibility +08096638 event_object_movement.s GetAllGroundEffectFlags_OnSpawn +08096680 event_object_movement.s GetAllGroundEffectFlags_OnBeginStep +080966d8 event_object_movement.s GetAllGroundEffectFlags_OnFinishStep +08096728 event_object_movement.s EventObjectUpdateMetatileBehaviors +08096750 event_object_movement.s GetGroundEffectFlags_Reflection +080967ac event_object_movement.s GetGroundEffectFlags_TallGrassOnSpawn +080967cc event_object_movement.s GetGroundEffectFlags_TallGrassOnBeginStep +080967ec event_object_movement.s GetGroundEffectFlags_LongGrassOnSpawn +0809680c event_object_movement.s GetGroundEffectFlags_LongGrassOnBeginStep +0809682c event_object_movement.s GetGroundEffectFlags_Tracks +0809686c event_object_movement.s GetGroundEffectFlags_SandHeap +080968bc event_object_movement.s GetGroundEffectFlags_ShallowFlowingWater +08096920 event_object_movement.s GetGroundEffectFlags_Puddle +08096950 event_object_movement.s GetGroundEffectFlags_Ripple +08096970 event_object_movement.s GetGroundEffectFlags_ShortGrass +080969c0 event_object_movement.s GetGroundEffectFlags_HotSprings +08096a10 event_object_movement.s GetGroundEffectFlags_Seaweed +08096a30 event_object_movement.s GetGroundEffectFlags_JumpLanding +08096a8c event_object_movement.s EventObjectCheckForReflectiveSurface +08096bdc event_object_movement.s GetReflectionTypeByMetatileBehavior +08096c0c event_object_movement.s GetLedgeJumpDirection +08096c68 event_object_movement.s SetEventObjectSpriteOamTableForLongGrass +08096cc4 event_object_movement.s IsZCoordMismatchAt +08096d00 event_object_movement.s UpdateEventObjectZCoordAndPriority +08096d5c event_object_movement.s InitObjectPriorityByZCoord +08096da8 event_object_movement.s ZCoordToPriority +08096db8 event_object_movement.s EventObjectUpdateZCoord +08096e0c event_object_movement.s SetObjectSubpriorityByZCoord +08096e54 event_object_movement.s EventObjectUpdateSubpriority +08096e70 event_object_movement.s AreZCoordsCompatible +08096e90 event_object_movement.s GroundEffect_SpawnOnTallGrass +08096edc event_object_movement.s GroundEffect_StepOnTallGrass +08096f28 event_object_movement.s GroundEffect_SpawnOnLongGrass +08096f74 event_object_movement.s GroundEffect_StepOnLongGrass +08096fc0 event_object_movement.s GroundEffect_WaterReflection +08096fcc event_object_movement.s GroundEffect_IceReflection +08096fd8 event_object_movement.s GroundEffect_FlowingWater +08096fe8 event_object_movement.s GroundEffect_SandTracks +08097014 event_object_movement.s GroundEffect_DeepSandTracks +08097040 event_object_movement.s DoTracksGroundEffect_None +08097044 event_object_movement.s DoTracksGroundEffect_Footprints +08097094 event_object_movement.s DoTracksGroundEffect_BikeTireTracks +080970e4 event_object_movement.s GroundEffect_Ripple +080970f0 event_object_movement.s GroundEffect_StepOnPuddle +08097100 event_object_movement.s GroundEffect_SandHeap +08097110 event_object_movement.s GroundEffect_JumpOnTallGrass +08097168 event_object_movement.s GroundEffect_JumpOnLongGrass +08097190 event_object_movement.s GroundEffect_JumpOnShallowWater +080971c0 event_object_movement.s GroundEffect_JumpOnWater +080971f0 event_object_movement.s GroundEffect_JumpLandingDust +08097220 event_object_movement.s GroundEffect_ShortGrass +08097230 event_object_movement.s GroundEffect_HotSprings +08097240 event_object_movement.s GroundEffect_Seaweed +08097260 event_object_movement.s DoFlaggedGroundEffects +080972bc event_object_movement.s filters_out_some_ground_effects +080972f4 event_object_movement.s FilterOutStepOnPuddleGroundEffectIfJumping +08097310 event_object_movement.s DoGroundEffects_OnSpawn +0809735c event_object_movement.s DoGroundEffects_OnBeginStep +080973b0 event_object_movement.s DoGroundEffects_OnFinishStep +08097404 event_object_movement.s FreezeEventObject +08097494 event_object_movement.s FreezeEventObjects +080974d0 event_object_movement.s FreezeEventObjectsExceptOne +08097514 event_object_movement.s UnfreezeEventObject +0809757c event_object_movement.s UnfreezeEventObjects +080975ac event_object_movement.s Step1 +080975cc event_object_movement.s Step2 +080975f0 event_object_movement.s Step3 +08097618 event_object_movement.s Step4 +0809763c event_object_movement.s Step8 +08097660 event_object_movement.s oamt_npc_ministep_reset +08097674 event_object_movement.s obj_npc_ministep +080976dc event_object_movement.s sub_80976DC +080976ec event_object_movement.s sub_80976EC +08097728 event_object_movement.s sub_8097728 +0809773c event_object_movement.s sub_809773C +08097750 event_object_movement.s sub_8097750 +08097758 event_object_movement.s sub_8097758 +08097820 event_object_movement.s sub_8097820 +0809783c event_object_movement.s sub_809783C +0809785c event_object_movement.s sub_809785C +080978e4 event_object_movement.s sub_80978E4 +08097978 event_object_movement.s SetMovementDelay +0809797c event_object_movement.s WaitForMovementDelay +08097994 event_object_movement.s SetAndStartSpriteAnim +080979bc event_object_movement.s SpriteAnimEnded +080979d4 event_object_movement.s UpdateEventObjectSpriteVisibility +08097ac8 event_object_movement.s UpdateEventObjectSpriteSubpriorityAndVisibility +08097af0 event_object_movement.s sub_8097AF0 +08097b2c event_object_movement.s sub_8097B2C +08097b78 event_object_movement.s sub_8097B78 +08097bb4 event_object_movement.s sub_8097BB4 +08097c44 event_object_movement.s sub_8097C44 +08097c8c event_object_movement.s sub_8097C8C +08097cc4 event_object_movement.s sub_8097CC4 +08097cf4 event_object_movement.s sub_8097CF4 +08097d30 event_object_movement.s sub_8097D30 +08097d68 event_object_movement.s sub_8097D68 +08097d9c event_object_movement.s sub_8097D9C +08097dd0 event_object_movement.s StartFieldEffectForEventObject +08097df8 event_object_movement.s DoShadowFieldEffect +08097e14 event_object_movement.s DoRippleFieldEffect +08097e50 event_object_movement.s MovementAction_StoreAndLockAnim_Step0 +08097ef0 event_object_movement.s MovementAction_FreeAndUnlockAnim_Step0 +08097f78 event_object_movement.s FindLockedEventObjectIndex +08097fa4 event_object_movement.s CreateLevitateMovementTask +08097fe4 event_object_movement.s ApplyLevitateMovement +08098044 event_object_movement.s DestroyExtraMovementTask +08098074 event_object_movement.s sub_8098074 +080980c0 event_object_movement.s MovementAction_FlyUp_Step0 +080980d0 event_object_movement.s MovementAction_FlyUp_Step1 +080980f4 event_object_movement.s MovementAction_FlyDown_Step0 +08098108 event_object_movement.s MovementAction_FlyDown_Step1 +08098124 event_object_movement.s MovementAction_Fly_Finish +08098128 field_message_box.s InitFieldMessageBox +08098154 field_message_box.s sub_8098154 +080981bc field_message_box.s task_add_textbox +080981d0 field_message_box.s task_del_textbox +080981ec field_message_box.s ShowFieldMessage +08098214 field_message_box.s sub_8098214 +08098238 field_message_box.s sub_8098238 +08098278 field_message_box.s ShowFieldAutoScrollMessage +080982a0 field_message_box.s sub_80982A0 +080982b8 field_message_box.s sub_80982B8 +080982dc field_message_box.s textbox_fdecode_auto_and_task_add +08098304 field_message_box.s textbox_auto_and_task_add +08098314 field_message_box.s HideFieldMessageBox +08098330 field_message_box.s GetFieldMessageBoxMode +0809833c field_message_box.s IsFieldMessageBoxHidden +08098358 field_message_box.s sub_8098358 +08098374 field_message_box.s sub_8098374 +08098388 event_obj_lock.s walkrun_is_standing_still +080983a4 event_obj_lock.s sub_80983A4 +080983c4 event_obj_lock.s sub_80983C4 +080983e8 event_obj_lock.s ScriptFreezeEventObjects +08098400 event_obj_lock.s sub_8098400 +0809847c event_obj_lock.s sub_809847C +080984a0 event_obj_lock.s LockSelectedEventObject +080984f4 event_obj_lock.s ScriptUnfreezeEventObjects +08098524 event_obj_lock.s sub_8098524 +08098574 event_obj_lock.s sub_8098574 +0809859c event_obj_lock.s sub_809859C +080985bc event_obj_lock.s sub_80985BC +08098630 event_obj_lock.s sub_8098630 +08098734 event_obj_lock.s sub_8098734 +08098758 text_window.s GetWindowFrameTilesPal +0809877c text_window.s LoadMessageBoxGfx +080987bc text_window.s LoadUserWindowBorderGfx_ +080987d4 text_window.s LoadWindowGfx +0809882c text_window.s LoadUserWindowBorderGfx +08098858 text_window.s DrawTextBorderOuter +080989e0 text_window.s DrawTextBorderInner +08098b7c text_window.s rbox_fill_rectangle +08098c18 text_window.s stdpal_get +08098c64 text_window.s GetOverworldTextboxPalettePtr +08098c6c text_window.s sub_8098C6C +08098cb8 script.s InitScriptContext +08098cf4 script.s SetupBytecodeScript +08098d00 script.s SetupNativeScript +08098d08 script.s StopScript +08098d10 script.s RunScriptCommand +08098d98 script.s ScriptPush +08098dc0 script.s ScriptPop +08098de4 script.s ScriptJump +08098de8 script.s ScriptCall +08098dfc script.s ScriptReturn +08098e0c script.s ScriptReadHalfword +08098e24 script.s ScriptReadWord +08098e54 script.s ScriptContext2_Enable +08098e60 script.s ScriptContext2_Disable +08098e6c script.s ScriptContext2_IsEnabled +08098e78 script.s ScriptContext1_IsScriptSetUp +08098e94 script.s ScriptContext1_Init +08098ebc script.s ScriptContext2_RunScript +08098ef8 script.s ScriptContext1_SetupScript +08098f30 script.s ScriptContext1_Stop +08098f3c script.s EnableBothScriptContexts +08098f50 script.s ScriptContext2_RunNewScript +08098f88 script.s MapHeaderGetScriptTable +08098fc8 script.s MapHeaderRunScriptType +08098fe0 script.s MapHeaderCheckScriptTable +08099040 script.s RunOnLoadMapScript +0809904c script.s RunOnTransitionMapScript +08099058 script.s RunOnResumeMapScript +08099064 script.s RunOnReturnToFieldMapScript +08099070 script.s RunOnDiveWarpMapScript +0809907c script.s TryRunOnFrameMapScript +08099098 script.s TryRunOnWarpIntoMapScript +080990ac script.s CalculateRamScriptChecksum +080990d0 script.s ClearRamScript +080990fc script.s InitRamScript +08099188 script.s GetRamScript +080991f8 script.s ValidateSavedRamScript +08099244 script.s GetSavedRamScriptIfValid +080992a0 script.s InitRamScript_NoEventObject +080992cc scrcmd.s ScrCmd_nop +080992d0 scrcmd.s ScrCmd_nop1 +080992d4 scrcmd.s ScrCmd_end +080992e0 scrcmd.s ScrCmd_gotonative +080992f8 scrcmd.s ScrCmd_special +08099318 scrcmd.s ScrCmd_specialvar +0809934c scrcmd.s ScrCmd_callnative +0809935c scrcmd.s ScrCmd_waitstate +08099368 scrcmd.s ScrCmd_goto +08099380 scrcmd.s ScrCmd_return +0809938c scrcmd.s ScrCmd_call +080993a4 scrcmd.s ScrCmd_goto_if +080993e0 scrcmd.s ScrCmd_call_if +0809941c scrcmd.s ScrCmd_setvaddress +08099438 scrcmd.s ScrCmd_vgoto +0809945c scrcmd.s ScrCmd_vcall +08099480 scrcmd.s ScrCmd_vgoto_if +080994c4 scrcmd.s ScrCmd_vcall_if +08099508 scrcmd.s ScrCmd_gotostd +08099538 scrcmd.s ScrCmd_callstd +08099568 scrcmd.s ScrCmd_gotostd_if +080995b4 scrcmd.s ScrCmd_callstd_if +08099600 scrcmd.s ScrCmd_returnram +08099614 scrcmd.s ScrCmd_killscript +0809962c scrcmd.s ScrCmd_setmysteryeventstatus +08099644 scrcmd.s ScrCmd_loadword +08099668 scrcmd.s ScrCmd_loadbytefromaddr +0809968c scrcmd.s ScrCmd_writebytetoaddr +080996a4 scrcmd.s ScrCmd_loadbyte +080996c0 scrcmd.s ScrCmd_setptrbyte +080996e4 scrcmd.s ScrCmd_copylocal +08099704 scrcmd.s ScrCmd_copybyte +08099720 scrcmd.s ScrCmd_setvar +08099744 scrcmd.s ScrCmd_copyvar +08099770 scrcmd.s ScrCmd_setorcopyvar +0809979c scrcmd.s compare_012 +080997bc scrcmd.s ScrCmd_compare_local_to_local +080997ec scrcmd.s ScrCmd_compare_local_to_value +08099814 scrcmd.s ScrCmd_compare_local_to_addr +08099840 scrcmd.s ScrCmd_compare_addr_to_local +0809986c scrcmd.s ScrCmd_compare_addr_to_value +0809988c scrcmd.s ScrCmd_compare_addr_to_addr +080998b0 scrcmd.s ScrCmd_compare_var_to_value +080998e0 scrcmd.s ScrCmd_compare_var_to_var +08099914 scrcmd.s ScrCmd_addvar +0809993c scrcmd.s ScrCmd_subvar +0809996c scrcmd.s ScrCmd_random +080999a0 scrcmd.s ScrCmd_giveitem +080999e4 scrcmd.s ScrCmd_takeitem +08099a28 scrcmd.s ScrCmd_checkitemspace +08099a6c scrcmd.s ScrCmd_checkitem +08099ab0 scrcmd.s ScrCmd_checkitemtype +08099adc scrcmd.s ScrCmd_givepcitem +08099b20 scrcmd.s ScrCmd_checkpcitem +08099b64 scrcmd.s ScrCmd_givedecoration +08099b90 scrcmd.s ScrCmd_takedecoration +08099bbc scrcmd.s ScrCmd_checkdecorspace +08099be8 scrcmd.s ScrCmd_checkdecor +08099c14 scrcmd.s ScrCmd_setflag +08099c28 scrcmd.s ScrCmd_clearflag +08099c3c scrcmd.s ScrCmd_checkflag +08099c58 scrcmd.s ScrCmd_incrementgamestat +08099c70 scrcmd.s ScrCmd_animateflash +08099c8c scrcmd.s ScrCmd_setflashradius +08099ca8 scrcmd.s IsPaletteNotActive +08099cc8 scrcmd.s ScrCmd_fadescreen +08099cf0 scrcmd.s ScrCmd_fadescreenspeed +08099d20 scrcmd.s ScrCmd_fadescreenswapbuffers +08099d94 scrcmd.s RunPauseTimer +08099db4 scrcmd.s ScrCmd_delay +08099dd8 scrcmd.s ScrCmd_initclock +08099e10 scrcmd.s ScrCmd_dotimebasedevents +08099e1c scrcmd.s ScrCmd_gettime +08099e54 scrcmd.s ScrCmd_setweather +08099e70 scrcmd.s ScrCmd_resetweather +08099e7c scrcmd.s ScrCmd_doweather +08099e88 scrcmd.s ScrCmd_setstepcallback +08099ea0 scrcmd.s ScrCmd_setmaplayoutindex +08099ebc scrcmd.s ScrCmd_warp +08099f44 scrcmd.s ScrCmd_warpsilent +08099fcc scrcmd.s ScrCmd_warpdoor +0809a054 scrcmd.s ScrCmd_warphole +0809a0c8 scrcmd.s ScrCmd_warpteleport +0809a150 scrcmd.s ScrCmd_warpD7 +0809a1d8 scrcmd.s ScrCmd_setwarp +0809a258 scrcmd.s ScrCmd_setdynamicwarp +0809a2dc scrcmd.s ScrCmd_setdivewarp +0809a35c scrcmd.s ScrCmd_setholewarp +0809a3dc scrcmd.s ScrCmd_setescapewarp +0809a45c scrcmd.s ScrCmd_getplayerxy +0809a498 scrcmd.s ScrCmd_getpartysize +0809a4b4 scrcmd.s ScrCmd_playse +0809a4c8 scrcmd.s WaitForSoundEffectFinish +0809a4e0 scrcmd.s ScrCmd_waitse +0809a4f4 scrcmd.s ScrCmd_playfanfare +0809a508 scrcmd.s WaitForFanfareFinish +0809a518 scrcmd.s ScrCmd_waitfanfare +0809a52c scrcmd.s ScrCmd_playbgm +0809a55c scrcmd.s ScrCmd_savebgm +0809a570 scrcmd.s ScrCmd_fadedefaultbgm +0809a57c scrcmd.s ScrCmd_fadenewbgm +0809a590 scrcmd.s ScrCmd_fadeoutbgm +0809a5c4 scrcmd.s ScrCmd_fadeinbgm +0809a5e8 scrcmd.s ScrCmd_applymovement +0809a62c scrcmd.s ScrCmd_applymovement_at +0809a670 scrcmd.s WaitForMovementFinish +0809a698 scrcmd.s ScrCmd_waitmovement +0809a6ec scrcmd.s ScrCmd_waitmovement_at +0809a740 scrcmd.s ScrCmd_removeobject +0809a768 scrcmd.s ScrCmd_removeobject_at +0809a798 scrcmd.s ScrCmd_addobject +0809a7c0 scrcmd.s ScrCmd_addobject_at +0809a7f0 scrcmd.s ScrCmd_setobjectxy +0809a858 scrcmd.s ScrCmd_setobjectxyperm +0809a8b0 scrcmd.s ScrCmd_moveobjectoffscreen +0809a8d8 scrcmd.s ScrCmd_showobject_at +0809a908 scrcmd.s ScrCmd_hideobject_at +0809a938 scrcmd.s ScrCmd_setobjectpriority +0809a974 scrcmd.s ScrCmd_resetobjectpriority +0809a9a4 scrcmd.s ScrCmd_faceplayer +0809a9dc scrcmd.s ScrCmd_turnobject +0809aa10 scrcmd.s ScrCmd_setobjectmovementtype +0809aa38 scrcmd.s ScrCmd_createvobject +0809aaa8 scrcmd.s ScrCmd_turnvobject +0809aac4 scrcmd.s ScrCmd_lockall +0809aaec scrcmd.s ScrCmd_lock +0809ab44 scrcmd.s ScrCmd_releaseall +0809ab7c scrcmd.s ScrCmd_release +0809abd4 scrcmd.s ScrCmd_message +0809abf0 scrcmd.s ScrCmd_pokenavcall +0809ac0c scrcmd.s ScrCmd_messageautoscroll +0809ac3c scrcmd.s ScrCmd_cmdDB +0809ac78 scrcmd.s ScrCmd_waitmessage +0809ac8c scrcmd.s ScrCmd_closemessage +0809ac98 scrcmd.s WaitForAorBPress +0809acc0 scrcmd.s ScrCmd_waitbuttonpress +0809acd4 scrcmd.s ScrCmd_yesnobox +0809ad00 scrcmd.s ScrCmd_multichoice +0809ad3c scrcmd.s ScrCmd_multichoicedefault +0809ad8c scrcmd.s ScrCmd_drawbox +0809ad90 scrcmd.s ScrCmd_multichoicegrid +0809ade0 scrcmd.s ScrCmd_erasebox +0809adec scrcmd.s ScrCmd_drawboxtext +0809adf8 scrcmd.s ScrCmd_showmonpic +0809ae28 scrcmd.s ScrCmd_hidemonpic +0809ae48 scrcmd.s ScrCmd_showcontestwinner +0809ae6c scrcmd.s ScrCmd_braillemessage +0809af94 scrcmd.s ScrCmd_cmdDA +0809afa0 scrcmd.s ScrCmd_vmessage +0809afbc scrcmd.s ScrCmd_bufferspeciesname +0809affc scrcmd.s ScrCmd_bufferleadmonspeciesname +0809b048 scrcmd.s ScrCmd_bufferpartymonnick +0809b090 scrcmd.s ScrCmd_bufferitemname +0809b0c4 scrcmd.s ScrCmd_bufferitemnameplural +0809b114 scrcmd.s ScrCmd_bufferdecorationname +0809b150 scrcmd.s ScrCmd_buffermovename +0809b190 scrcmd.s ScrCmd_buffernumberstring +0809b1d4 scrcmd.s ScrCmd_bufferstdstring +0809b214 scrcmd.s ScrCmd_buffercontesttype +0809b248 scrcmd.s ScrCmd_bufferstring +0809b270 scrcmd.s ScrCmd_vloadword +0809b294 scrcmd.s ScrCmd_vbufferstring +0809b2c8 scrcmd.s ScrCmd_bufferboxname +0809b304 scrcmd.s ScrCmd_givemon +0809b384 scrcmd.s ScrCmd_giveegg +0809b3b0 scrcmd.s ScrCmd_setmonmove +0809b3dc scrcmd.s ScrCmd_checkpartymove +0809b458 scrcmd.s ScrCmd_givemoney +0809b48c scrcmd.s ScrCmd_takemoney +0809b4c0 scrcmd.s ScrCmd_checkmoney +0809b500 scrcmd.s ScrCmd_showmoneybox +0809b53c scrcmd.s ScrCmd_hidemoneybox +0809b548 scrcmd.s ScrCmd_updatemoneybox +0809b578 scrcmd.s ScrCmd_showcoinsbox +0809b5a0 scrcmd.s ScrCmd_hidecoinsbox +0809b5b4 scrcmd.s ScrCmd_updatecoinsbox +0809b5d0 scrcmd.s ScrCmd_trainerbattle +0809b5e4 scrcmd.s ScrCmd_dotrainerbattle +0809b5f0 scrcmd.s ScrCmd_gotopostbattlescript +0809b604 scrcmd.s ScrCmd_gotobeatenscript +0809b618 scrcmd.s ScrCmd_checktrainerflag +0809b63c scrcmd.s ScrCmd_settrainerflag +0809b658 scrcmd.s ScrCmd_cleartrainerflag +0809b674 scrcmd.s ScrCmd_setwildbattle +0809b6a8 scrcmd.s ScrCmd_dowildbattle +0809b6b8 scrcmd.s ScrCmd_pokemart +0809b6cc scrcmd.s ScrCmd_pokemartdecoration +0809b6e0 scrcmd.s ScrCmd_pokemartdecoration2 +0809b6f4 scrcmd.s ScrCmd_playslotmachine +0809b71c scrcmd.s ScrCmd_setberrytree +0809b758 scrcmd.s ScrCmd_getpricereduction +0809b784 scrcmd.s ScrCmd_choosecontestmon +0809b794 scrcmd.s ScrCmd_startcontest +0809b7a4 scrcmd.s ScrCmd_showcontestresults +0809b7b4 scrcmd.s ScrCmd_contestlinktransfer +0809b7cc scrcmd.s ScrCmd_dofieldeffect +0809b7f4 scrcmd.s ScrCmd_setfieldeffectarg +0809b824 scrcmd.s WaitForFieldEffectFinish +0809b844 scrcmd.s ScrCmd_waitfieldeffect +0809b870 scrcmd.s ScrCmd_setrespawn +0809b88c scrcmd.s ScrCmd_checkplayergender +0809b8a4 scrcmd.s ScrCmd_playmoncry +0809b8dc scrcmd.s ScrCmd_waitmoncry +0809b8f0 scrcmd.s ScrCmd_setmetatile +0809b970 scrcmd.s ScrCmd_opendoor +0809b9c8 scrcmd.s ScrCmd_closedoor +0809ba0c scrcmd.s IsDoorAnimationStopped +0809ba24 scrcmd.s ScrCmd_waitdooranim +0809ba38 scrcmd.s ScrCmd_setdooropen +0809ba7c scrcmd.s ScrCmd_setdoorclosed +0809bac0 scrcmd.s ScrCmd_addelevmenuitem +0809bafc scrcmd.s ScrCmd_showelevmenu +0809bb00 scrcmd.s ScrCmd_checkcoins +0809bb20 scrcmd.s ScrCmd_givecoins +0809bb58 scrcmd.s ScrCmd_takecoins +0809bb90 scrcmd.s ScrCmd_mossdeepgym1 +0809bbb4 scrcmd.s ScrCmd_mossdeepgym2 +0809bbc0 scrcmd.s ScrCmd_mossdeepgym3 +0809bbdc scrcmd.s ScrCmd_mossdeepgym4 +0809bbe8 scrcmd.s ScrCmd_cmdD8 +0809bbfc scrcmd.s ScrCmd_cmdD9 +0809bc44 scrcmd.s ScrCmd_setmonobedient +0809bc7c scrcmd.s ScrCmd_checkmonobedience +0809bcb4 scrcmd.s ScrCmd_gotoram +0809bcdc scrcmd.s ScrCmd_warpD1 +0809bd70 scrcmd.s ScrCmd_setmonmetlocation +0809bdb4 scrcmd.s sub_809BDB4 +0809bdd0 scrcmd.s ScrCmd_buffertrainerclassname +0809be0c scrcmd.s ScrCmd_buffertrainername +0809be48 scrcmd.s sub_809BE48 +0809be54 scrcmd.s ScrCmd_warpE0 +0809bedc field_control_avatar.s FieldClearPlayerInput +0809bf08 field_control_avatar.s FieldGetPlayerInput +0809c014 field_control_avatar.s ProcessPlayerFieldInput +0809c17c field_control_avatar.s GetPlayerPosition +0809c194 field_control_avatar.s GetInFrontOfPlayerPosition +0809c1d0 field_control_avatar.s GetPlayerCurMetatileBehavior +0809c1fc field_control_avatar.s TryStartInteractionScript +0809c270 field_control_avatar.s GetInteractionScript +0809c2c8 field_control_avatar.s GetInteractedLinkPlayerScript +0809c384 field_control_avatar.s GetInteractedEventObjectScript +0809c458 field_control_avatar.s GetInteractedBackgroundEventScript +0809c538 field_control_avatar.s GetInteractedMetatileScript +0809c7ec field_control_avatar.s GetInteractedWaterScript +0809c868 field_control_avatar.s TrySetupDiveDownScript +0809c89c field_control_avatar.s TrySetupDiveEmergeScript +0809c8dc field_control_avatar.s TryStartStepBasedScript +0809c938 field_control_avatar.s TryStartCoordEventScript +0809c96c field_control_avatar.s TryStartMiscWalkingScripts +0809c9f4 field_control_avatar.s TryStartStepCountScript +0809cb30 field_control_avatar.s Unref_ClearHappinessStepCounter +0809cb44 field_control_avatar.s UpdateHappinessStepCounter +0809cb80 field_control_avatar.s ClearPoisonStepCounter +0809cb94 field_control_avatar.s UpdatePoisonStepCounter +0809cbdc field_control_avatar.s RestartWildEncounterImmunitySteps +0809cbe8 field_control_avatar.s CheckStandardWildEncounter +0809cc38 field_control_avatar.s TryArrowWarp +0809cc9c field_control_avatar.s TryStartWarpEventScript +0809cd94 field_control_avatar.s IsWarpMetatileBehavior +0809ce34 field_control_avatar.s IsArrowWarpMetatileBehavior +0809ce8c field_control_avatar.s GetWarpEventAtMapPosition +0809ceb0 field_control_avatar.s SetupWarp +0809cf78 field_control_avatar.s TryDoorWarp +0809d004 field_control_avatar.s GetWarpEventAtPosition +0809d04c field_control_avatar.s TryRunCoordEventScript +0809d08c field_control_avatar.s GetCoordEventScriptAtPosition +0809d0f4 field_control_avatar.s GetCoordEventScriptAtMapPosition +0809d11c field_control_avatar.s GetBackgroundEventAtPosition +0809d16c field_control_avatar.s dive_warp +0809d1e8 field_control_avatar.s TrySetDiveWarp +0809d280 field_control_avatar.s GetEventObjectScriptPointerPlayerFacing +0809d2bc field_control_avatar.s SetCableClubWarp +0809d300 event_data.s InitEventData +0809d344 event_data.s ClearTempFieldEventData +0809d3a0 event_data.s ClearDailyFlags +0809d3c0 event_data.s DisableNationalPokedex +0809d3e8 event_data.s EnableNationalPokedex +0809d42c event_data.s IsNationalPokedexEnabled +0809d470 event_data.s DisableMysteryEvent +0809d480 event_data.s EnableMysteryEvent +0809d490 event_data.s IsMysteryEventEnabled +0809d4a4 event_data.s DisableMysteryGift +0809d4b4 event_data.s EnableMysteryGift +0809d4c4 event_data.s IsMysteryGiftEnabled +0809d4d8 event_data.s sub_809D4D8 +0809d570 event_data.s sub_809D570 +0809d5d8 event_data.s DisableResetRTC +0809d5f4 event_data.s EnableResetRTC +0809d614 event_data.s CanResetRTC +0809d648 event_data.s GetVarPointer +0809d694 event_data.s VarGet +0809d6b0 event_data.s VarSet +0809d6d0 event_data.s VarGetEventObjectGraphicsId +0809d6ec event_data.s GetFlagPointer +0809d740 event_data.s FlagSet +0809d768 event_data.s FlagClear +0809d790 event_data.s FlagGet +0809d7bc coord_event_weather.s CoordEventWeather_Clouds +0809d7c8 coord_event_weather.s CoordEventWeather_Sunny +0809d7d4 coord_event_weather.s CoordEventWeather_LightRain +0809d7e0 coord_event_weather.s CoordEventWeather_Snow +0809d7ec coord_event_weather.s CoordEventWeather_Thunderstorm +0809d7f8 coord_event_weather.s CoordEventWeather_Fog +0809d804 coord_event_weather.s CoordEventWeather_DiagonalFog +0809d810 coord_event_weather.s CoordEventWeather_Ash +0809d81c coord_event_weather.s CoordEventWeather_Sandstorm +0809d828 coord_event_weather.s CoordEventWeather_Dark +0809d834 coord_event_weather.s CoordEventWeather_Drought +0809d840 coord_event_weather.s CoordEventWeather_Route119Cycle +0809d84c coord_event_weather.s CoordEventWeather_Route123Cycle +0809d858 coord_event_weather.s DoCoordEventWeather +0809d88c field_tasks.s Task_RunPerStepCallback +0809d8b8 field_tasks.s RunTimeBasedEvents +0809d908 field_tasks.s Task_RunTimeBasedEvents +0809d93c field_tasks.s SetUpFieldTasks +0809d9a8 field_tasks.s ActivatePerStepCallback +0809d9f0 field_tasks.s ResetFieldTasksArgs +0809da2c field_tasks.s DummyPerStepCallback +0809da30 field_tasks.s GetPacifidlogBridgeMetatileOffsets +0809da88 field_tasks.s SetPacifidlogBridgeMetatiles +0809db10 field_tasks.s UpdateHalfSubmergedBridgeMetatiles +0809db34 field_tasks.s UpdateFullySubmergedBridgeMetatiles +0809db58 field_tasks.s UpdateFloatingBridgeMetatiles +0809db7c field_tasks.s StandingOnNewPacifidlogBridge +0809dc18 field_tasks.s StandingOnSamePacifidlogBridge +0809dcb4 field_tasks.s PacifidlogBridgePerStepCallback +0809de28 field_tasks.s SetLoweredForetreeBridgeMetatile +0809de8c field_tasks.s SetNormalFortreeBridgeMetatile +0809def0 field_tasks.s FortreeBridgePerStepCallback +0809e108 field_tasks.s CoordInIcePuzzleRegion +0809e14c field_tasks.s MarkIcePuzzleCoordVisited +0809e184 field_tasks.s IsIcePuzzleCoordVisited +0809e1c8 field_tasks.s SetSootopolisGymCrackedIceMetatiles +0809e224 field_tasks.s SootopolisGymIcePerStepCallback +0809e3b4 field_tasks.s AshGrassPerStepCallback +0809e490 field_tasks.s SetCrackedFloorHoleMetatile +0809e4cc field_tasks.s CrackedFloorPerStepCallback +0809e5dc field_tasks.s SetMuddySlopeMetatile +0809e638 field_tasks.s Task_MuddySlope +0809e778 clock.s InitTimeBasedEvents +0809e7b0 clock.s DoTimeBasedEvents +0809e7e8 clock.s UpdatePerDay +0809e858 clock.s UpdatePerMinute +0809e8b4 clock.s ReturnFromStartWallClock +0809e8c8 clock.s StartWallClock +0809e8e8 reset_rtc_screen.s SpriteCB_ResetRtcCursor0 +0809ea04 reset_rtc_screen.s SpriteCB_ResetRtcCursor1 +0809eb04 reset_rtc_screen.s CreateCursor +0809eb8c reset_rtc_screen.s FreeCursorPalette +0809eba0 reset_rtc_screen.s HideChooseTimeWindow +0809ebc4 reset_rtc_screen.s PrintTime +0809ecb4 reset_rtc_screen.s ShowChooseTimeWindow +0809ed38 reset_rtc_screen.s MoveTimeUpDown +0809eda0 reset_rtc_screen.s Task_ResetRtc_3 +0809edb8 reset_rtc_screen.s Task_ResetRtc_2 +0809ede8 reset_rtc_screen.s Task_ResetRtc_1 +0809ef00 reset_rtc_screen.s Task_ResetRtc_0 +0809ef88 reset_rtc_screen.s CB2_InitResetRtcScreen +0809f048 reset_rtc_screen.s sub_809F048 +0809f090 reset_rtc_screen.s CB2_ResetRtcScreen +0809f0c0 reset_rtc_screen.s ShowMessage +0809f0f8 reset_rtc_screen.s Task_ShowResetRtcPrompt +0809f200 reset_rtc_screen.s Task_ResetRtcScreen +0809f41c start_menu.s SetDexPokemonPokenavFlags +0809f440 start_menu.s BuildStartMenuActions +0809f4b0 start_menu.s AddStartMenuAction +0809f4cc start_menu.s BuildNormalStartMenu +0809f538 start_menu.s BuildSafariZoneStartMenu +0809f568 start_menu.s BuildLinkModeStartMenu +0809f5a4 start_menu.s BuildUnionRoomStartMenu +0809f5e0 start_menu.s BuildBattlePikeStartMenu +0809f604 start_menu.s BuildBattlePyramidStartMenu +0809f634 start_menu.s BuildMultiBattleRoomStartMenu +0809f654 start_menu.s ShowSafariBallsWindow +0809f6c8 start_menu.s ShowPyramidFloorWindow +0809f774 start_menu.s RemoveExtraStartMenuWindows +0809f7c0 start_menu.s PrintStartMenuActions +0809f894 start_menu.s InitStartMenuStep +0809f998 start_menu.s InitStartMenu +0809f9b4 start_menu.s StartMenuTask +0809f9d0 start_menu.s CreateStartMenuTask +0809fa00 start_menu.s sub_809FA00 +0809fa18 start_menu.s sub_809FA18 +0809fa34 start_menu.s sub_809FA34 +0809fa9c start_menu.s ShowStartMenu +0809fac4 start_menu.s HandleStartMenuInput +0809fbb4 start_menu.s StartMenuPokedexCallback +0809fbf0 start_menu.s StartMenuPokemonCallback +0809fc24 start_menu.s StartMenuBagCallback +0809fc58 start_menu.s StartMenuPokeNavCallback +0809fc8c start_menu.s StartMenuPlayerNameCallback +0809fcfc start_menu.s StartMenuSaveCallback +0809fd20 start_menu.s StartMenuOptionCallback +0809fd64 start_menu.s StartMenuExitCallback +0809fd74 start_menu.s StartMenuSafariZoneRetireCallback +0809fd88 start_menu.s StartMenuLinkModePlayerNameCallback +0809fdc0 start_menu.s StartMenuBattlePyramidRetireCallback +0809fdd4 start_menu.s sub_809FDD4 +0809fdf4 start_menu.s StartMenuBattlePyramidBagCallback +0809fe28 start_menu.s SaveStartCallback +0809fe44 start_menu.s SaveCallback +0809fe9c start_menu.s BattlePyramidRetireStartCallback +0809feb8 start_menu.s BattlePyramidRetireReturnCallback +0809fed4 start_menu.s BattlePyramidRetireCallback +0809ff28 start_menu.s InitSave +0809ff4c start_menu.s RunSaveCallback +0809ff80 start_menu.s SaveGame +0809ff98 start_menu.s ShowSaveMessage +0809ffd0 start_menu.s SaveGameTask +080a0014 start_menu.s sub_80A0014 +080a0024 start_menu.s HideSaveInfoWindow +080a0030 start_menu.s SaveStartTimer +080a003c start_menu.s SaveSuccesTimer +080a0070 start_menu.s SaveErrorTimer +080a00a0 start_menu.s SaveConfirmSaveCallback +080a00ec start_menu.s SaveYesNoCallback +080a0108 start_menu.s SaveConfirmInputCallback +080a017c start_menu.s SaveFileExistsCallback +080a01b4 start_menu.s SaveConfirmOverwriteDefaultNoCallback +080a01d0 start_menu.s SaveConfirmOverwriteCallback +080a01ec start_menu.s SaveOverwriteInputCallback +080a0234 start_menu.s SaveSavingMessageCallback +080a024c start_menu.s SaveDoSaveCallback +080a02b0 start_menu.s SaveSuccessCallback +080a02d8 start_menu.s SaveReturnSuccessCallback +080a02fc start_menu.s SaveErrorCallback +080a0324 start_menu.s SaveReturnErrorCallback +080a0340 start_menu.s InitBattlePyramidRetire +080a035c start_menu.s BattlePyramidConfirmRetireCallback +080a0388 start_menu.s BattlePyramidRetireYesNoCallback +080a03a4 start_menu.s BattlePyramidRetireInputCallback +080a03d8 start_menu.s sub_80A03D8 +080a03e4 start_menu.s sub_80A03E4 +080a0514 start_menu.s sub_80A0514 +080a0540 start_menu.s sub_80A0540 +080a0550 start_menu.s sub_80A0550 +080a06b4 start_menu.s ShowSaveInfoWindow +080a0888 start_menu.s RemoveSaveInfoWindow +080a08a4 start_menu.s sub_80A08A4 +080a08cc start_menu.s sub_80A08CC +080a0914 start_menu.s HideStartMenuWindow +080a0934 start_menu.s HideStartMenu +080a0944 start_menu.s AppendToList +080a0954 tileset_anims.s ResetTilesetAnimBuffer +080a0980 tileset_anims.s AppendTilesetAnimToBuffer +080a09d0 tileset_anims.s TransferTilesetAnimsBuffer +080a0a18 tileset_anims.s InitTilesetAnimations +080a0a2c tileset_anims.s InitSecondaryTilesetAnimation +080a0a38 tileset_anims.s UpdateTilesetAnimations +080a0aa8 tileset_anims.s _InitPrimaryTilesetAnimation +080a0ae4 tileset_anims.s _InitSecondaryTilesetAnimation +080a0b20 tileset_anims.s InitTilesetAnim_General +080a0b48 tileset_anims.s InitTilesetAnim_Building +080a0b70 tileset_anims.s TilesetAnim_General +080a0bb4 tileset_anims.s TilesetAnim_Building +080a0bcc tileset_anims.s QueueAnimTiles_General_Flower +080a0bf4 tileset_anims.s QueueAnimTiles_General_Water +080a0c1c tileset_anims.s QueueAnimTiles_General_SandWaterEdge +080a0c44 tileset_anims.s QueueAnimTiles_General_Waterfall +080a0c6c tileset_anims.s InitTilesetAnim_Petalburg +080a0c94 tileset_anims.s InitTilesetAnim_Rustboro +080a0cc0 tileset_anims.s InitTilesetAnim_Dewford +080a0cec tileset_anims.s InitTilesetAnim_Slateport +080a0d18 tileset_anims.s InitTilesetAnim_Mauville +080a0d48 tileset_anims.s InitTilesetAnim_Lavaridge +080a0d74 tileset_anims.s InitTilesetAnim_Fallarbor +080a0d9c tileset_anims.s InitTilesetAnim_Fortree +080a0dc4 tileset_anims.s InitTilesetAnim_Lilycove +080a0dec tileset_anims.s InitTilesetAnim_Mossdeep +080a0e14 tileset_anims.s InitTilesetAnim_EverGrande +080a0e40 tileset_anims.s InitTilesetAnim_Pacifidlog +080a0e70 tileset_anims.s InitTilesetAnim_Sootopolis +080a0e9c tileset_anims.s InitTilesetAnim_BattleFrontierOutsideWest +080a0ec8 tileset_anims.s InitTilesetAnim_BattleFrontierOutsideEast +080a0ef4 tileset_anims.s InitTilesetAnim_Underwater +080a0f18 tileset_anims.s InitTilesetAnim_SootopolisGym +080a0f3c tileset_anims.s InitTilesetAnim_Cave +080a0f68 tileset_anims.s InitTilesetAnim_EliteFour +080a0f8c tileset_anims.s InitTilesetAnim_MauvilleGym +080a0fb8 tileset_anims.s InitTilesetAnim_BikeShop +080a0fe4 tileset_anims.s InitTilesetAnim_BattlePyramid +080a1010 tileset_anims.s InitTilesetAnim_BattleDome +080a103c tileset_anims.s TilesetAnim_Rustboro +080a10b8 tileset_anims.s TilesetAnim_Dewford +080a10d0 tileset_anims.s TilesetAnim_Slateport +080a10e8 tileset_anims.s TilesetAnim_Mauville +080a115c tileset_anims.s TilesetAnim_Lavaridge +080a1188 tileset_anims.s TilesetAnim_EverGrande +080a11fc tileset_anims.s TilesetAnim_Pacifidlog +080a122c tileset_anims.s TilesetAnim_Sootopolis +080a1244 tileset_anims.s TilesetAnim_Underwater +080a1260 tileset_anims.s TilesetAnim_Cave +080a127c tileset_anims.s TilesetAnim_BattleFrontierOutsideWest +080a1294 tileset_anims.s TilesetAnim_BattleFrontierOutsideEast +080a12ac tileset_anims.s QueueAnimTiles_General_LandWaterEdge +080a12d4 tileset_anims.s QueueAnimTiles_Lavaridge_Steam +080a131c tileset_anims.s QueueAnimTiles_Pacifidlog_LogBridges +080a1344 tileset_anims.s QueueAnimTiles_Underwater_Seaweed +080a136c tileset_anims.s QueueAnimTiles_Pacifidlog_WaterCurrents +080a1394 tileset_anims.s QueueAnimTiles_Mauville_Flowers +080a1434 tileset_anims.s QueueAnimTiles_Rustboro_WindyWater +080a1470 tileset_anims.s QueueAnimTiles_Rustboro_Fountain +080a1498 tileset_anims.s QueueAnimTiles_Lavaridge_Lava +080a14c0 tileset_anims.s QueueAnimTiles_EverGrande_Flowers +080a14f8 tileset_anims.s QueueAnimTiles_Cave_Lava +080a1520 tileset_anims.s QueueAnimTiles_Dewford_Flag +080a1548 tileset_anims.s QueueAnimTiles_BattleFrontierOutsideWest_Flag +080a1570 tileset_anims.s QueueAnimTiles_BattleFrontierOutsideEast_Flag +080a1598 tileset_anims.s QueueAnimTiles_Slateport_Balloons +080a15c0 tileset_anims.s TilesetAnim_MauvilleGym +080a15d8 tileset_anims.s TilesetAnim_SootopolisGym +080a15f0 tileset_anims.s TilesetAnim_EliteFour +080a161c tileset_anims.s TilesetAnim_BikeShop +080a1634 tileset_anims.s TilesetAnim_BattlePyramid +080a1658 tileset_anims.s TilesetAnim_BattleDome +080a1670 tileset_anims.s TilesetAnim_BattleDome2 +080a1688 tileset_anims.s QueueAnimTiles_Building_TVTurnedOn +080a16b0 tileset_anims.s QueueAnimTiles_SootopolisGym_Waterfalls +080a16f8 tileset_anims.s QueueAnimTiles_EliteFour_WallLights +080a1720 tileset_anims.s QueueAnimTiles_EliteFour_GroundLights +080a1748 tileset_anims.s QueueAnimTiles_MauvilleGym_ElectricGates +080a1770 tileset_anims.s QueueAnimTiles_BikeShop_BlinkingLights +080a1798 tileset_anims.s QueueAnimTiles_Sootopolis_StormyWater +080a17c0 tileset_anims.s QueueAnimTiles_BattlePyramid_Torch +080a17ec tileset_anims.s QueueAnimTiles_BattlePyramid_StatueShadow +080a1818 tileset_anims.s BlendAnimPalette_BattleDome_FloorLights +080a1884 tileset_anims.s BlendAnimPalette_BattleDome_FloorLightsNoBlend +080a18f4 palette.s LoadCompressedPalette +080a1938 palette.s LoadPalette +080a1970 palette.s FillPalette +080a19c0 palette.s TransferPlttBuffer +080a1a1c palette.s UpdatePaletteFade +080a1a74 palette.s ResetPaletteFade +080a1a94 palette.s ReadPlttIntoBuffers +080a1ad4 palette.s BeginNormalPaletteFade +080a1c1c palette.s unref_sub_80A1C1C +080a1c64 palette.s unref_sub_80A1C64 +080a1cdc palette.s unused_sub_80A1CDC +080a1e40 palette.s unused_sub_80A1E40 +080a1f00 palette.s unused_sub_80A1F00 +080a1f58 palette.s ResetPaletteStructByUid +080a1f74 palette.s ResetPaletteStruct +080a1fd0 palette.s ResetPaletteFadeControl +080a2048 palette.s unref_sub_80A2048 +080a2074 palette.s unref_sub_80A2074 +080a20a4 palette.s GetPaletteNumByUid +080a20d8 palette.s UpdateNormalPaletteFade +080a2218 palette.s InvertPlttBuffer +080a2260 palette.s TintPlttBuffer +080a2334 palette.s UnfadePlttBuffer +080a2390 palette.s BeginFastPaletteFade +080a23b4 palette.s BeginFastPaletteFadeInternal +080a2438 palette.s UpdateFastPaletteFade +080a27b0 palette.s BeginHardwarePaletteFade +080a284c palette.s UpdateHardwarePaletteFade +080a2968 palette.s UpdateBlendRegisters +080a29bc palette.s IsSoftwarePaletteFadeFinishing +080a2a20 palette.s BlendPalettes +080a2a5c palette.s BlendPalettesUnfaded +080a2a90 palette.s TintPalette_GrayScale +080a2ae0 palette.s TintPalette_GrayScale2 +080a2b40 palette.s TintPalette_SepiaTone +080a2bac palette.s TintPalette_CustomTone +080a2c44 palette.s sub_80A2C44 +080a2cf8 palette.s sub_80A2CF8 +080a2d34 palette.s sub_80A2D34 +080a2d54 palette.s sub_80A2D54 +080a2dd4 sound.s InitMapMusic +080a2de8 sound.s MapMusicMain +080a2ee0 sound.s ResetMapMusic +080a2f04 sound.s GetCurrentMapMusic +080a2f10 sound.s PlayNewMapMusic +080a2f30 sound.s StopMapMusic +080a2f50 sound.s FadeOutMapMusic +080a2f88 sound.s FadeOutAndPlayNewMapMusic +080a2fbc sound.s FadeOutAndFadeInNewMapMusic +080a3000 sound.s FadeInNewMapMusic +080a303c sound.s IsNotWaitingForBGMStop +080a3060 sound.s PlayFanfareByFanfareNum +080a3094 sound.s WaitFanfare +080a30cc sound.s StopFanfareByFanfareNum +080a30e4 sound.s PlayFanfare +080a3120 sound.s IsFanfareTaskInactive +080a3140 sound.s Task_Fanfare +080a3170 sound.s CreateFanfareTask +080a3194 sound.s FadeInNewBGM +080a31e8 sound.s FadeOutBGMTemporarily +080a3200 sound.s IsBGMPausedOrStopped +080a3228 sound.s FadeInBGM +080a3240 sound.s FadeOutBGM +080a3258 sound.s IsBGMStopped +080a3274 sound.s PlayCry1 +080a32c0 sound.s PlayCry2 +080a32e4 sound.s PlayCry3 +080a3344 sound.s PlayCry4 +080a33a8 sound.s PlayCry6 +080a3404 sound.s PlayCry5 +080a344c sound.s PlayCryInternal +080a3678 sound.s IsCryFinished +080a369c sound.s StopCryAndClearCrySongs +080a36b4 sound.s StopCry +080a36c8 sound.s IsCryPlayingOrClearCrySongs +080a36ec sound.s IsCryPlaying +080a370c sound.s Task_DuckBGMForPokemonCry +080a3754 sound.s RestoreBGMVolumeAfterPokemonCry +080a3778 sound.s PlayBGM +080a37a4 sound.s PlaySE +080a37b4 sound.s PlaySE12WithPanning +080a3808 sound.s PlaySE1WithPanning +080a383c sound.s PlaySE2WithPanning +080a3870 sound.s SE12PanpotControl +080a38a0 sound.s IsSEPlaying +080a38e4 sound.s IsBGMPlaying +080a390c sound.s IsSpecialSEPlaying +080a3934 battle_anim.s ClearBattleAnimationVars +080a3a10 battle_anim.s DoMoveAnim +080a3a48 battle_anim.s LaunchBattleAnimation +080a3bfc battle_anim.s DestroyAnimSprite +080a3c1c battle_anim.s DestroyAnimVisualTask +080a3c38 battle_anim.s DestroyAnimSoundTask +080a3c54 battle_anim.s AddSpriteIndex +080a3c84 battle_anim.s ClearSpriteIndex +080a3cb8 battle_anim.s WaitAnimFrameCount +080a3ce4 battle_anim.s RunAnimScriptCommand +080a3d24 battle_anim.s ScriptCmd_loadspritegfx +080a3d8c battle_anim.s ScriptCmd_unloadspritegfx +080a3dd8 battle_anim.s ScriptCmd_createsprite +080a3ecc battle_anim.s ScriptCmd_createvisualtask +080a3f48 battle_anim.s ScriptCmd_delay +080a3f88 battle_anim.s ScriptCmd_waitforvisualfinish +080a3fbc battle_anim.s ScriptCmd_hang1 +080a3fc0 battle_anim.s ScriptCmd_hang2 +080a3fc4 battle_anim.s ScriptCmd_end +080a40cc battle_anim.s ScriptCmd_playse +080a40f4 battle_anim.s sub_80A40F4 +080a41d8 battle_anim.s ScriptCmd_monbg +080a4310 battle_anim.s IsBattlerSpriteVisible +080a438c battle_anim.s MoveBattlerSpriteToBG +080a46a0 battle_anim.s sub_80A46A0 +080a4720 battle_anim.s sub_80A4720 +080a477c battle_anim.s sub_80A477C +080a47d8 battle_anim.s task_pA_ma0A_obj_to_bg_pal +080a48b0 battle_anim.s ScriptCmd_clearmonbg +080a4980 battle_anim.s sub_80A4980 +080a4a18 battle_anim.s ScriptCmd_monbg_22 +080a4adc battle_anim.s ScriptCmd_clearmonbg_23 +080a4bb0 battle_anim.s sub_80A4BB0 +080a4c48 battle_anim.s ScriptCmd_setalpha +080a4c80 battle_anim.s ScriptCmd_setbldcnt +080a4ca8 battle_anim.s ScriptCmd_blendoff +080a4ccc battle_anim.s ScriptCmd_call +080a4d00 battle_anim.s ScriptCmd_return +080a4d14 battle_anim.s ScriptCmd_setarg +080a4d48 battle_anim.s ScriptCmd_choosetwoturnanim +080a4d88 battle_anim.s ScriptCmd_jumpifmoveturn +080a4dcc battle_anim.s ScriptCmd_goto +080a4df0 battle_anim.s IsContest +080a4e18 battle_anim.s ScriptCmd_fadetobg +080a4e5c battle_anim.s ScriptCmd_fadetobgfromset +080a4ef4 battle_anim.s Task_FadeToBg +080a4fc8 battle_anim.s LoadMoveBg +080a5090 battle_anim.s LoadDefaultBg +080a50ac battle_anim.s ScriptCmd_restorebg +080a50f0 battle_anim.s ScriptCmd_waitbgfadeout +080a5124 battle_anim.s ScriptCmd_waitbgfadein +080a5158 battle_anim.s ScriptCmd_changebg +080a5178 battle_anim.s BattleAnimAdjustPanning +080a5278 battle_anim.s BattleAnimAdjustPanning2 +080a52ec battle_anim.s KeepPanInRange +080a5314 battle_anim.s CalculatePanIncrement +080a5354 battle_anim.s ScriptCmd_playsewithpan +080a538c battle_anim.s ScriptCmd_setpan +080a53b8 battle_anim.s ScriptCmd_panse_1B +080a5478 battle_anim.s Task_PanFromInitialToTarget +080a5508 battle_anim.s ScriptCmd_panse_26 +080a559c battle_anim.s ScriptCmd_panse_27 +080a565c battle_anim.s ScriptCmd_loopsewithpan +080a56e4 battle_anim.s Task_LoopAndPlaySE +080a5740 battle_anim.s ScriptCmd_waitplaysewithpan +080a57b4 battle_anim.s Task_WaitAndPlaySE +080a57f8 battle_anim.s ScriptCmd_createsoundtask +080a586c battle_anim.s ScriptCmd_waitsound +080a58f0 battle_anim.s ScriptCmd_jumpargeq +080a5944 battle_anim.s ScriptCmd_jumpifcontest +080a5984 battle_anim.s ScriptCmd_monbgprio_28 +080a59dc battle_anim.s ScriptCmd_monbgprio_29 +080a5a0c battle_anim.s ScriptCmd_monbgprio_2A +080a5a80 battle_anim.s ScriptCmd_invisible +080a5abc battle_anim.s ScriptCmd_visible +080a5afc battle_anim.s ScriptCmd_doublebattle_2D +080a5bac battle_anim.s ScriptCmd_doublebattle_2E +080a5c44 battle_anim.s ScriptCmd_stopsound +080a5c6c battle_anim_mons.s GetBattlerSpriteCoord +080a5db8 battle_anim_mons.s GetBattlerYDelta +080a5fa0 battle_anim_mons.s GetBattlerElevation +080a600c battle_anim_mons.s GetBattlerSpriteFinal_Y +080a60ac battle_anim_mons.s GetBattlerSpriteCoord2 +080a6138 battle_anim_mons.s GetBattlerSpriteDefault_Y +080a614c battle_anim_mons.s GetSubstituteSpriteDefault_Y +080a6190 battle_anim_mons.s GetBattlerYCoordWithElevation +080a6240 battle_anim_mons.s GetAnimBattlerSpriteId +080a62d4 battle_anim_mons.s StoreSpriteCallbackInData6 +080a62dc battle_anim_mons.s SetCallbackToStoredInData6 +080a62ec battle_anim_mons.s TranslateSpriteInCircleOverDuration +080a634c battle_anim_mons.s TranslateSpriteInGrowingCircleOverDuration +080a63c8 battle_anim_mons.s sub_80A63C8 +080a6450 battle_anim_mons.s TranslateSpriteInEllipseOverDuration +080a64b0 battle_anim_mons.s WaitAnimForDuration +080a64d0 battle_anim_mons.s sub_80A64D0 +080a64ec battle_anim_mons.s sub_80A64EC +080a653c battle_anim_mons.s TranslateSpriteLinear +080a656c battle_anim_mons.s TranslateSpriteLinearFixedPoint +080a65a8 battle_anim_mons.s TranslateSpriteLinearFixedPointIconFrame +080a65ec battle_anim_mons.s sub_80A65EC +080a6630 battle_anim_mons.s TranslateMonSpriteLinear +080a6680 battle_anim_mons.s TranslateMonSpriteLinearFixedPoint +080a66dc battle_anim_mons.s TranslateSpriteLinearAndFlicker +080a674c battle_anim_mons.s DestroySpriteAndMatrix +080a6760 battle_anim_mons.s sub_80A6760 +080a67a4 battle_anim_mons.s sub_80A67A4 +080a67bc battle_anim_mons.s RunStoredCallbackWhenAffineAnimEnds +080a67d8 battle_anim_mons.s RunStoredCallbackWhenAnimEnds +080a67f4 battle_anim_mons.s DestroyAnimSpriteAndDisableBlend +080a6814 battle_anim_mons.s DestroyAnimVisualTaskAndDisableBlend +080a6838 battle_anim_mons.s SetSpriteCoordsToAnimAttackerCoords +080a6864 battle_anim_mons.s SetAnimSpriteInitialXOffset +080a68d4 battle_anim_mons.s InitAnimArcTranslation +080a6900 battle_anim_mons.s TranslateAnimHorizontalArc +080a6934 battle_anim_mons.s TranslateAnimVerticalArc +080a6968 battle_anim_mons.s SetSpritePrimaryCoordsFromSecondaryCoords +080a6980 battle_anim_mons.s InitSpritePosToAnimTarget +080a69cc battle_anim_mons.s InitSpritePosToAnimAttacker +080a6a30 battle_anim_mons.s GetBattlerSide +080a6a44 battle_anim_mons.s GetBattlerPosition +080a6a54 battle_anim_mons.s GetBattlerAtPosition +080a6a90 battle_anim_mons.s IsBattlerSpritePresent +080a6b20 battle_anim_mons.s IsDoubleBattle +080a6b30 battle_anim_mons.s sub_80A6B30 +080a6b90 battle_anim_mons.s sub_80A6B90 +080a6bfc battle_anim_mons.s sub_80A6BFC +080a6c68 battle_anim_mons.s sub_80A6C68 +080a6cc0 battle_anim_mons.s AnimLoadCompressedBgGfx +080a6d10 battle_anim_mons.s InitAnimBgTilemapBuffer +080a6d48 battle_anim_mons.s AnimLoadCompressedBgTilemap +080a6d60 battle_anim_mons.s sub_80A6D60 +080a6d94 battle_anim_mons.s sub_80A6D94 +080a6dac battle_anim_mons.s sub_80A6DAC +080a6dec battle_anim_mons.s sub_80A6DEC +080a6e14 battle_anim_mons.s InitSpriteDataForLinearTranslation +080a6e54 battle_anim_mons.s InitAnimLinearTranslation +080a6eec battle_anim_mons.s StartAnimLinearTranslation +080a6f14 battle_anim_mons.s sub_80A6F14 +080a6f3c battle_anim_mons.s AnimTranslateLinear +080a6f98 battle_anim_mons.s sub_80A6F98 +080a6fb4 battle_anim_mons.s sub_80A6FB4 +080a6fd4 battle_anim_mons.s sub_80A6FD4 +080a7000 battle_anim_mons.s sub_80A7000 +080a7028 battle_anim_mons.s InitAnimFastLinearTranslation +080a70c0 battle_anim_mons.s InitAndRunAnimFastLinearTranslation +080a70e8 battle_anim_mons.s AnimFastTranslateLinear +080a7144 battle_anim_mons.s sub_80A7144 +080a7160 battle_anim_mons.s InitAnimFastLinearTranslationWithSpeed +080a718c battle_anim_mons.s sub_80A718C +080a71b4 battle_anim_mons.s SetSpriteRotScale +080a7238 battle_anim_mons.s sub_80A7238 +080a7270 battle_anim_mons.s PrepareBattlerSpriteForRotScale +080a7344 battle_anim_mons.s ResetSpriteRotScale +080a73a0 battle_anim_mons.s SetBattlerSpriteYOffsetFromRotation +080a73e0 battle_anim_mons.s TrySetSpriteRotScale +080a749c battle_anim_mons.s sub_80A749C +080a74dc battle_anim_mons.s ArcTan2_ +080a74f4 battle_anim_mons.s ArcTan2Neg +080a750c battle_anim_mons.s SetGreyscaleOrOriginalPalette +080a75ac battle_anim_mons.s sub_80A75AC +080a76c4 battle_anim_mons.s sub_80A76C4 +080a77ac battle_anim_mons.s sub_80A77AC +080a77b4 battle_anim_mons.s GetBattlerAtPosition_ +080a77c8 battle_anim_mons.s sub_80A77C8 +080a7820 battle_anim_mons.s TranslateAnimSpriteToTargetMonLocation +080a78ac battle_anim_mons.s sub_80A78AC +080a791c battle_anim_mons.s sub_80A791C +080a7938 battle_anim_mons.s sub_80A7938 +080a79e8 battle_anim_mons.s CloneBattlerSpriteWithBlend +080a7a5c battle_anim_mons.s obj_delete_but_dont_free_vram +080a7a74 battle_anim_mons.s sub_80A7A74 +080a7afc battle_anim_mons.s sub_80A7AFC +080a7b98 battle_anim_mons.s AnimTask_BlendMonInAndOut +080a7bf4 battle_anim_mons.s AnimTask_BlendMonInAndOutSetup +080a7c1c battle_anim_mons.s AnimTask_BlendMonInAndOutStep +080a7cb4 battle_anim_mons.s sub_80A7CB4 +080a7cfc battle_anim_mons.s PrepareAffineAnimInTaskData +080a7d34 battle_anim_mons.s RunAffineAnimFromTaskData +080a7e6c battle_anim_mons.s SetBattlerSpriteYOffsetFromYScale +080a7ec0 battle_anim_mons.s SetBattlerSpriteYOffsetFromOtherYScale +080a7f18 battle_anim_mons.s GetBattlerYDeltaFromSpriteId +080a8048 battle_anim_mons.s StorePointerInVars +080a8050 battle_anim_mons.s LoadPointerFromVars +080a805c battle_anim_mons.s sub_80A805C +080a80c8 battle_anim_mons.s sub_80A80C8 +080a8140 battle_anim_mons.s AnimTask_GetFrustrationPowerLevel +080a8174 battle_anim_mons.s sub_80A8174 +080a8278 battle_anim_mons.s sub_80A8278 +080a82e4 battle_anim_mons.s GetBattlerSpriteSubpriority +080a8328 battle_anim_mons.s GetBattlerSpriteBGPriority +080a8364 battle_anim_mons.s GetBattlerSpriteBGPriorityRank +080a8394 battle_anim_mons.s sub_80A8394 +080a8610 battle_anim_mons.s DestroySpriteAndFreeResources_ +080a861c battle_anim_mons.s GetBattlerSpriteCoordAttr +080a8924 battle_anim_mons.s SetAverageBattlerPositions +080a89c8 battle_anim_mons.s sub_80A89C8 +080a8a6c battle_anim_mons.s sub_80A8A6C +080a8aec battle_anim_mons.s sub_80A8AEC +080a8b64 battle_anim_mons.s sub_80A8B64 +080a8bc4 battle_anim_mons.s sub_80A8BC4 +080a8cac battle_anim_mons.s sub_80A8CAC +080a8d78 battle_anim_mons.s sub_80A8D78 +080a8dfc battle_anim_mons.s sub_80A8DFC +080a8e30 battle_anim_mons.s sub_80A8E30 +080a8e88 battle_anim_mons.s sub_80A8E88 +080a8ee4 battle_anim_mons.s sub_80A8EE4 +080a8f50 task.s ResetTasks +080a8fb0 task.s CreateTask +080a9004 task.s InsertTask +080a909c task.s DestroyTask +080a910c task.s RunTasks +080a913c task.s FindFirstActiveTask +080a9178 task.s TaskDummy +080a917c task.s SetTaskFuncWithFollowupFunc +080a91b0 task.s SwitchTaskToFollowupFunc +080a91e4 task.s FuncIsActiveTask +080a921c task.s FindTaskIdByFunc +080a924c task.s GetTaskCount +080a927c task.s SetWordTaskArg +080a92b4 task.s GetWordTaskArg +080a92f4 reshow_battle_screen.s nullsub_35 +080a92f8 reshow_battle_screen.s ReshowBattleScreenAfterMenu +080a933c reshow_battle_screen.s CB2_ReshowBattleScreenAfterMenu +080a95f4 reshow_battle_screen.s sub_80A95F4 +080a9614 reshow_battle_screen.s LoadBattlerSpriteGfx +080a9708 reshow_battle_screen.s CreateBattlerSprite +080a9adc reshow_battle_screen.s CreateHealthboxSprite +080a9c70 battle_anim_status_effects.s sub_80A9C70 +080a9db4 battle_anim_status_effects.s sub_80A9DB4 +080a9e44 battle_anim_status_effects.s sub_80A9E44 +080a9e78 battle_anim_status_effects.s sub_80A9E78 +080a9ef4 battle_anim_status_effects.s sub_80A9EF4 +080a9fd0 battle_anim_status_effects.s sub_80A9FD0 +080aa020 battle_anim_status_effects.s sub_80AA020 +080aa0d0 battle_anim_status_effects.s sub_80AA0D0 +080aa124 battle_anim_status_effects.s sub_80AA124 +080aa18c battle_anim_status_effects.s AnimTask_StatsChange +080aa364 battle_anim_status_effects.s LaunchStatusAnimation +080aa3b4 battle_anim_status_effects.s Task_DoStatusAnimation +080aa40c title_screen.s SpriteCB_VersionBannerLeft +080aa474 title_screen.s SpriteCB_VersionBannerRight +080aa4b4 title_screen.s SpriteCB_PressStartCopyrightBanner +080aa4ec title_screen.s CreatePressStartBanner +080aa548 title_screen.s CreateCopyrightBanner +080aa5a4 title_screen.s SpriteCB_PokemonLogoShine +080aa654 title_screen.s SpriteCB_PokemonLogoShine2 +080aa67c title_screen.s StartPokemonLogoShine +080aa7a4 title_screen.s CB2_InitTitleScreen +080aab44 title_screen.s Task_TitleScreenPhase1 +080aac50 title_screen.s Task_TitleScreenPhase2 +080aad64 title_screen.s Task_TitleScreenPhase3 +080aaeb8 title_screen.s CB2_GoToMainMenu +080aaed4 title_screen.s CB2_GoToCopyrightScreen +080aaef0 title_screen.s CB2_GoToClearSaveDataScreen +080aaf0c title_screen.s CB2_GoToResetRtcScreen +080aaf28 title_screen.s CB2_GoToBerryFixScreen +080aaf48 title_screen.s UpdateLegendaryMarkingColor +080aafa4 field_weather.s StartWeather +080ab098 field_weather.s SetNextWeather +080ab104 field_weather.s SetCurrentAndNextWeather +080ab130 field_weather.s SetCurrentAndNextWeatherNoDelay +080ab160 field_weather.s Task_WeatherInit +080ab1b0 field_weather.s Task_WeatherMain +080ab26c field_weather.s None_Init +080ab28c field_weather.s None_Main +080ab290 field_weather.s None_Finish +080ab294 field_weather.s BuildGammaShiftTables +080ab3a8 field_weather.s UpdateWeatherGammaShift +080ab434 field_weather.s FadeInScreenWithWeather +080ab54c field_weather.s FadeInScreen_RainShowShade +080ab5ac field_weather.s FadeInScreen_Drought +080ab604 field_weather.s FadeInScreen_Fog1 +080ab640 field_weather.s DoNothing +080ab644 field_weather.s ApplyGammaShift +080ab848 field_weather.s ApplyGammaShiftWithBlend +080ab990 field_weather.s ApplyDroughtGammaShiftWithBlend +080abab0 field_weather.s ApplyFogBlend +080abbcc field_weather.s MarkFogSpritePalToLighten +080abc00 field_weather.s LightenSpritePaletteInFog +080abc48 field_weather.s sub_80ABC48 +080abc7c field_weather.s sub_80ABC7C +080abcd0 field_weather.s FadeScreen +080abdfc field_weather.s IsWeatherNotFadingIn +080abe18 field_weather.s UpdateSpritePaletteWithWeather +080abf00 field_weather.s ApplyWeatherGammaShiftToPal +080abf20 field_weather.s sub_80ABF20 +080abf4c field_weather.s LoadCustomWeatherSpritePalette +080abf7c field_weather.s LoadDroughtWeatherPalette +080abf84 field_weather.s ResetDroughtWeatherPaletteLoading +080abfa4 field_weather.s LoadDroughtWeatherPalettes +080abfe0 field_weather.s sub_80ABFE0 +080abff0 field_weather.s sub_80ABFF0 +080ac01c field_weather.s sub_80AC01C +080ac124 field_weather.s Weather_SetBlendCoeffs +080ac164 field_weather.s Weather_SetTargetBlendCoeffs +080ac1a8 field_weather.s Weather_UpdateBlend +080ac274 field_weather.s sub_80AC274 +080ac30c field_weather.s GetCurrentWeather +080ac31c field_weather.s SetRainStrengthFromSoundEffect +080ac378 field_weather.s PlayRainStoppingSoundEffect +080ac3bc field_weather.s IsWeatherChangeComplete +080ac3d0 field_weather.s SetWeatherScreenFadeOut +080ac3e4 field_weather.s sub_80AC3E4 +080ac3f8 field_weather.s PreservePaletteInWeather +080ac428 field_weather.s ResetPreservedPalettesInWeather +080ac438 field_weather_effect.s Clouds_InitVars +080ac484 field_weather_effect.s Clouds_InitAll +080ac4b4 field_weather_effect.s Clouds_Main +080ac514 field_weather_effect.s Clouds_Finish +080ac55c field_weather_effect.s Sunny_InitVars +080ac580 field_weather_effect.s Sunny_InitAll +080ac58c field_weather_effect.s Sunny_Main +080ac590 field_weather_effect.s Sunny_Finish +080ac594 field_weather_effect.s CreateCloudSprites +080ac660 field_weather_effect.s DestroyCloudSprites +080ac6b4 field_weather_effect.s UpdateCloudSprite +080ac6d0 field_weather_effect.s Drought_InitVars +080ac704 field_weather_effect.s Drought_InitAll +080ac734 field_weather_effect.s Drought_Main +080ac818 field_weather_effect.s Drought_Finish +080ac81c field_weather_effect.s StartDroughtWeatherBlend +080ac830 field_weather_effect.s UpdateDroughtBlend +080ac928 field_weather_effect.s LightRain_InitVars +080ac994 field_weather_effect.s LightRain_InitAll +080ac9c4 field_weather_effect.s LightRain_Main +080aca24 field_weather_effect.s LightRain_Finish +080acab0 field_weather_effect.s StartRainSpriteFall +080acb84 field_weather_effect.s UpdateRainSprite +080acc88 field_weather_effect.s WaitRainSprite +080accb4 field_weather_effect.s InitRainSpriteMovement +080acd68 field_weather_effect.s LoadRainSpriteSheet +080acd78 field_weather_effect.s CreateRainSprite +080aceac field_weather_effect.s UpdateVisibleRainSprites +080acf38 field_weather_effect.s DestroyRainSprites +080acf8c field_weather_effect.s Snow_InitVars +080acfdc field_weather_effect.s Snow_InitAll +080ad048 field_weather_effect.s Snow_Main +080ad084 field_weather_effect.s Snow_Finish +080ad0e8 field_weather_effect.s UpdateVisibleSnowflakeSprites +080ad164 field_weather_effect.s CreateSnowflakeSprite +080ad1d0 field_weather_effect.s DestroySnowflakeSprite +080ad204 field_weather_effect.s InitSnowflakeSpriteMovement +080ad2b0 field_weather_effect.s WaitSnowflakeSprite +080ad30c field_weather_effect.s UpdateSnowflakeSprite +080ad444 field_weather_effect.s MedRain_InitVars +080ad4b8 field_weather_effect.s MedRain_InitAll +080ad4e8 field_weather_effect.s HeavyRain_InitVars +080ad554 field_weather_effect.s HeavyRain_InitAll +080ad584 field_weather_effect.s Rain_Main +080ad910 field_weather_effect.s Rain_Finish +080ad9bc field_weather_effect.s SetThunderCounter +080ad9f8 field_weather_effect.s UpdateThunderSound +080ada60 field_weather_effect.s Fog1_InitVars +080adac0 field_weather_effect.s Fog1_InitAll +080adaf0 field_weather_effect.s Fog1_Main +080adbb0 field_weather_effect.s Fog1_Finish +080adc4c field_weather_effect.s Fog1SpriteCallback +080adcac field_weather_effect.s CreateFog1Sprites +080add68 field_weather_effect.s DestroyFog1Sprites +080addbc field_weather_effect.s Ash_InitVars +080ade18 field_weather_effect.s Ash_InitAll +080ade48 field_weather_effect.s Ash_Main +080adef4 field_weather_effect.s Ash_Finish +080adf5c field_weather_effect.s LoadAshSpriteSheet +080adf6c field_weather_effect.s CreateAshSprites +080ae014 field_weather_effect.s DestroyAshSprites +080ae068 field_weather_effect.s UpdateAshSprite +080ae0e4 field_weather_effect.s Fog2_InitVars +080ae168 field_weather_effect.s Fog2_InitAll +080ae198 field_weather_effect.s Fog2_Main +080ae1fc field_weather_effect.s Fog2_Finish +080ae25c field_weather_effect.s UpdateFog2Movement +080ae2f0 field_weather_effect.s CreateFog2Sprites +080ae3a8 field_weather_effect.s DestroyFog2Sprites +080ae3fc field_weather_effect.s UpdateFog2Sprite +080ae45c field_weather_effect.s Sandstorm_InitVars +080ae4dc field_weather_effect.s Sandstorm_InitAll +080ae50c field_weather_effect.s Sandstorm_Main +080ae588 field_weather_effect.s Sandstorm_Finish +080ae5ec field_weather_effect.s UpdateSandstormWaveIndex +080ae624 field_weather_effect.s UpdateSandstormMovement +080ae6a4 field_weather_effect.s DestroySandstormSprites +080ae738 field_weather_effect.s CreateSandstormSprites +080ae7f8 field_weather_effect.s CreateSwirlSandstormSprites +080ae8f8 field_weather_effect.s UpdateSandstormSprite +080ae958 field_weather_effect.s WaitSandSwirlSpriteEntrance +080ae97c field_weather_effect.s UpdateSandstormSwirlSprite +080ae9f0 field_weather_effect.s Shade_InitVars +080aea20 field_weather_effect.s Shade_InitAll +080aea2c field_weather_effect.s Shade_Main +080aea30 field_weather_effect.s Shade_Finish +080aea34 field_weather_effect.s Bubbles_InitVars +080aea88 field_weather_effect.s Bubbles_InitAll +080aeab8 field_weather_effect.s Bubbles_Main +080aeb2c field_weather_effect.s Bubbles_Finish +080aeb48 field_weather_effect.s CreateBubbleSprite +080aebd0 field_weather_effect.s DestroyBubbleSprites +080aec34 field_weather_effect.s UpdateBubbleSprite +080aec94 field_weather_effect.s UnusedSetCurrentAlternatingWeather +080aeca8 field_weather_effect.s Task_DoAlternatingWeather +080aed28 field_weather_effect.s CreateAlternatingWeatherTask +080aed7c field_weather_effect.s SetSav1Weather +080aedac field_weather_effect.s GetSav1Weather +080aedbc field_weather_effect.s SetSav1WeatherFromCurrMapHeader +080aedf0 field_weather_effect.s SetWeather +080aee08 field_weather_effect.s SetWeather_Unused +080aee20 field_weather_effect.s DoCurrentWeather +080aee84 field_weather_effect.s ResumePausedWeather +080aeee8 field_weather_effect.s TranslateWeatherNum +080aefbc field_weather_effect.s UpdateWeatherPerDay +080aefdc field_weather_effect.s UpdateRainCounter +080aeffc field_screen_effect.s palette_bg_faded_fill_white +080af020 field_screen_effect.s palette_bg_faded_fill_black +080af040 field_screen_effect.s pal_fill_for_maplights +080af08c field_screen_effect.s sub_80AF08C +080af0a0 field_screen_effect.s pal_fill_black +080af0b4 field_screen_effect.s WarpFadeScreen +080af0f4 field_screen_effect.s sub_80AF0F4 +080af10c field_screen_effect.s task0A_nop_for_a_while +080af128 field_screen_effect.s sub_80AF128 +080af148 field_screen_effect.s task0A_asap_script_env_2_enable_and_set_ctx_running +080af168 field_screen_effect.s FieldCallback_ReturnToEventScript2 +080af188 field_screen_effect.s sub_80AF188 +080af1a4 field_screen_effect.s task_mpl_807DD60 +080af214 field_screen_effect.s sub_80AF214 +080af234 field_screen_effect.s sub_80AF234 +080af2b4 field_screen_effect.s sub_80AF2B4 +080af314 field_screen_effect.s sub_80AF314 +080af334 field_screen_effect.s sub_80AF334 +080af398 field_screen_effect.s mapldr_default +080af3b0 field_screen_effect.s sub_80AF3B0 +080af3c8 field_screen_effect.s sub_80AF3C8 +080af3e8 field_screen_effect.s sub_80AF3E8 +080af40c field_screen_effect.s sub_80AF40C +080af438 field_screen_effect.s sub_80AF438 +080af550 field_screen_effect.s task_map_chg_seq_0807E20C +080af610 field_screen_effect.s task_map_chg_seq_0807E2CC +080af660 field_screen_effect.s sub_80AF660 +080af688 field_screen_effect.s sub_80AF688 +080af6a4 field_screen_effect.s sub_80AF6A4 +080af6b0 field_screen_effect.s task_mpl_807E3C8 +080af6d4 field_screen_effect.s sub_80AF6D4 +080af6f0 field_screen_effect.s sub_80AF6F0 +080af710 field_screen_effect.s PaletteFadeActive +080af71c field_screen_effect.s WaitForWeatherFadeIn +080af734 field_screen_effect.s DoWarp +080af76c field_screen_effect.s DoDiveWarp +080af79c field_screen_effect.s sub_80AF79C +080af7d0 field_screen_effect.s DoDoorWarp +080af7f4 field_screen_effect.s DoFallWarp +080af80c field_screen_effect.s sub_80AF80C +080af828 field_screen_effect.s sub_80AF828 +080af838 field_screen_effect.s sub_80AF838 +080af848 field_screen_effect.s sub_80AF848 +080af87c field_screen_effect.s sub_80AF87C +080af8b8 field_screen_effect.s sub_80AF8B8 +080af8e0 field_screen_effect.s sub_80AF8E0 +080af948 field_screen_effect.s sub_80AF948 +080af96c field_screen_effect.s Task_ReturnToWorldFromLinkRoom +080af9f8 field_screen_effect.s sub_80AF9F8 +080afa0c field_screen_effect.s sub_80AFA0C +080afa88 field_screen_effect.s sub_80AFA88 +080afbf4 field_screen_effect.s task0A_fade_n_map_maybe +080afc60 field_screen_effect.s sub_80AFC60 +080afc98 field_screen_effect.s SetFlashScanlineEffectWindowBoundary +080afcc4 field_screen_effect.s SetFlashScanlineEffectWindowBoundaries +080afd50 field_screen_effect.s SetFlash2ScanlineEffectWindowBoundary +080afd7c field_screen_effect.s SetFlash2ScanlineEffectWindowBoundaries +080afe08 field_screen_effect.s UpdateFlashLevelEffect +080afecc field_screen_effect.s UpdateFlash2LevelEffect +080aff90 field_screen_effect.s sub_80AFF90 +080affb8 field_screen_effect.s sub_80AFFB8 +080affdc field_screen_effect.s sub_80AFFDC +080b003c field_screen_effect.s sub_80B003C +080b009c field_screen_effect.s sub_80B009C +080b00e8 field_screen_effect.s WriteFlashScanlineEffectBuffer +080b0124 field_screen_effect.s WriteBattlePyramidViewScanlineEffectBuffer +080b0160 field_screen_effect.s task0A_mpl_807E31C +080b01bc field_screen_effect.s sub_80B01BC +080b0244 field_screen_effect.s sub_80B0244 +080b0268 field_screen_effect.s sub_80B0268 +080b028c field_screen_effect.s sub_80B028C +080b02c8 field_screen_effect.s sub_80B02C8 +080b0318 field_screen_effect.s sub_80B0318 +080b0534 field_screen_effect.s sub_80B0534 +080b058c field_screen_effect.s sub_80B058C +080b05b4 field_screen_effect.s sub_80B05B4 +080b05cc field_screen_effect.s task50_0807F0C8 +080b05f0 battle_setup.s Task_BattleStart +080b065c battle_setup.s CreateBattleStartTask +080b0698 battle_setup.s BattleSetup_StartWildBattle +080b06b0 battle_setup.s BattleSetup_StartBattlePikeWildBattle +080b06bc battle_setup.s DoStandardWildBattle +080b072c battle_setup.s BattleSetup_StartRoamerBattle +080b077c battle_setup.s DoSafariBattle +080b07b4 battle_setup.s DoBattlePikeWildBattle +080b0804 battle_setup.s DoTrainerBattle +080b0828 battle_setup.s sub_80B0828 +080b086c battle_setup.s StartWallyTutorialBattle +080b08a8 battle_setup.s BattleSetup_StartScriptedWildBattle +080b08ec battle_setup.s BattleSetup_StartLatiBattle +080b0934 battle_setup.s BattleSetup_StartLegendaryBattle +080b0a18 battle_setup.s StartGroudonKyogreBattle +080b0a74 battle_setup.s StartRegiBattle +080b0af8 battle_setup.s CB2_EndWildBattle +080b0b6c battle_setup.s CB2_EndScriptedWildBattle +080b0bd0 battle_setup.s BattleSetup_GetTerrainId +080b0d24 battle_setup.s GetBattleTransitionTypeByMap +080b0d88 battle_setup.s GetSumOfPlayerPartyLevel +080b0de8 battle_setup.s GetSumOfEnemyPartyLevel +080b0ec8 battle_setup.s GetWildBattleTransition +080b0f34 battle_setup.s GetTrainerBattleTransition +080b100c battle_setup.s sub_80B100C +080b1138 battle_setup.s ChooseStarter +080b1158 battle_setup.s CB2_GiveStarter +080b11a8 battle_setup.s CB2_StartFirstBattle +080b1204 battle_setup.s CB2_EndFirstBattle +080b1218 battle_setup.s sub_80B1218 +080b1234 battle_setup.s sub_80B1234 +080b1250 battle_setup.s TrainerBattleLoadArg32 +080b1268 battle_setup.s TrainerBattleLoadArg16 +080b1274 battle_setup.s TrainerBattleLoadArg8 +080b1278 battle_setup.s GetTrainerAFlag +080b1290 battle_setup.s GetTrainerBFlag +080b12a8 battle_setup.s IsPlayerDefeated +080b12e8 battle_setup.s ResetTrainerOpponentIds +080b12fc battle_setup.s InitTrainerBattleVariables +080b1370 battle_setup.s TrainerBattleLoadArgs +080b13f8 battle_setup.s SetMapVarsToTrainer +080b1430 battle_setup.s BattleSetup_ConfigureTrainerBattle +080b162c battle_setup.s ConfigureAndSetUpOneTrainerBattle +080b1670 battle_setup.s ConfigureTwoTrainersBattle +080b16a4 battle_setup.s SetUpTwoTrainersBattle +080b16b8 battle_setup.s GetTrainerFlagFromScriptPointer +080b16d8 battle_setup.s SetUpTrainerMovement +080b170c battle_setup.s GetTrainerBattleMode +080b1718 battle_setup.s GetTrainerFlag +080b1760 battle_setup.s SetBattledTrainersFlags +080b178c battle_setup.s SetBattledTrainerFlag +080b17a0 battle_setup.s HasTrainerBeenFought +080b17b8 battle_setup.s SetTrainerFlag +080b17cc battle_setup.s ClearTrainerFlag +080b17e0 battle_setup.s BattleSetup_StartTrainerBattle +080b1918 battle_setup.s CB2_EndTrainerBattle +080b1994 battle_setup.s CB2_EndRematchBattle +080b19ec battle_setup.s BattleSetup_StartRematchBattle +080b1a14 battle_setup.s ShowTrainerIntroSpeech +080b1af8 battle_setup.s BattleSetup_GetScriptAddrAfterBattle +080b1b10 battle_setup.s BattleSetup_GetTrainerPostBattleScript +080b1b60 battle_setup.s ShowTrainerCantBattleSpeech +080b1b70 battle_setup.s SetUpTrainerEncounterMusic +080b1c6c battle_setup.s ReturnEmptyStringIfNull +080b1c7c battle_setup.s GetIntroSpeechOfApproachingTrainer +080b1ca4 battle_setup.s GetTrainerALoseText +080b1ce0 battle_setup.s GetTrainerBLoseText +080b1d04 battle_setup.s GetTrainerWonSpeech +080b1d18 battle_setup.s GetTrainerCantBattleSpeech +080b1d2c battle_setup.s FirstBattleTrainerIdToRematchTableId +080b1d50 battle_setup.s TrainerIdToRematchTableId +080b1d94 battle_setup.s sub_80B1D94 +080b1dbc battle_setup.s SetRematchIdForTrainer +080b1dfc battle_setup.s UpdateRandomTrainerRematches +080b1e94 battle_setup.s UpdateRematchIfDefeated +080b1ec0 battle_setup.s DoesSomeoneWantRematchIn_ +080b1f08 battle_setup.s IsRematchTrainerIn_ +080b1f38 battle_setup.s IsFirstTrainerIdReadyForRematch +080b1f74 battle_setup.s IsTrainerReadyForRematch_ +080b1fb0 battle_setup.s GetRematchTrainerIdFromTable +080b2004 battle_setup.s GetLastBeatenRematchTrainerIdFromTable +080b205c battle_setup.s ClearTrainerWantRematchState +080b208c battle_setup.s GetTrainerMatchCallFlag +080b20bc battle_setup.s RegisterTrainerInMatchCall +080b20f4 battle_setup.s WasSecondRematchWon +080b2128 battle_setup.s HasAtLeastFiveBadges +080b215c battle_setup.s IncrementRematchStepCounter +080b2188 battle_setup.s IsRematchStepCounterMaxed +080b21b4 battle_setup.s TryUpdateRandomTrainerRematches +080b21f4 battle_setup.s DoesSomeoneWantRematchIn +080b2214 battle_setup.s IsRematchTrainerIn +080b2234 battle_setup.s GetRematchTrainerId +080b2250 battle_setup.s GetLastBeatenRematchTrainerId +080b226c battle_setup.s ShouldTryRematchBattle +080b22a0 battle_setup.s IsTrainerReadyForRematch +080b22bc battle_setup.s HandleRematchVarsOnBattleEnd +080b22d8 battle_setup.s ShouldTryGetTrainerScript +080b2318 battle_setup.s CountBattledRematchTeams +080b236c cable_club.s sub_80B236C +080b23b0 cable_club.s sub_80B23B0 +080b241c cable_club.s sub_80B241C +080b243c cable_club.s sub_80B243C +080b2478 cable_club.s sub_80B2478 +080b24f8 cable_club.s sub_80B24F8 +080b252c cable_club.s sub_80B252C +080b2578 cable_club.s sub_80B2578 +080b25cc cable_club.s sub_80B25CC +080b2600 cable_club.s sub_80B2600 +080b2634 cable_club.s sub_80B2634 +080b2688 cable_club.s sub_80B2688 +080b270c cable_club.s sub_80B270C +080b275c cable_club.s sub_80B275C +080b2804 cable_club.s sub_80B2804 +080b28a8 cable_club.s sub_80B28A8 +080b2918 cable_club.s sub_80B2918 +080b2a08 cable_club.s sub_80B2A08 +080b2af4 cable_club.s sub_80B2AF4 +080b2b94 cable_club.s task_map_chg_seq_0807EC34 +080b2c30 cable_club.s sub_80B2C30 +080b2cb0 cable_club.s sub_80B2CB0 +080b2cec cable_club.s sub_80B2CEC +080b2d2c cable_club.s sub_80B2D2C +080b2d6c cable_club.s sub_80B2D6C +080b2da4 cable_club.s sub_80B2DA4 +080b2e4c cable_club.s sub_80B2E4C +080b2e74 cable_club.s sub_80B2E74 +080b2ea8 cable_club.s sub_80B2EA8 +080b2ee4 cable_club.s sub_80B2EE4 +080b2fd8 cable_club.s sub_80B2FD8 +080b3000 cable_club.s sub_80B3000 +080b3028 cable_club.s sub_80B3028 +080b3050 cable_club.s sub_80B3050 +080b3144 cable_club.s sub_80B3144 +080b3194 cable_club.s sub_80B3194 +080b31e8 cable_club.s sub_80B31E8 +080b3220 cable_club.s sub_80B3220 +080b3254 cable_club.s sub_80B3254 +080b3260 cable_club.s sub_80B3260 +080b32b4 cable_club.s sub_80B32B4 +080b33bc cable_club.s sub_80B33BC +080b3554 cable_club.s sub_80B3554 +080b360c cable_club.s sub_80B360C +080b36ec cable_club.s CleanupLinkRoomState +080b371c cable_club.s ExitLinkRoom +080b3728 cable_club.s sub_80B3728 +080b37d4 cable_club.s sub_80B37D4 +080b37fc cable_club.s sub_80B37FC +080b3894 cable_club.s sub_80B3894 +080b3924 cable_club.s PlayerEnteredTradeSeat +080b3950 cable_club.s sub_80B3950 +080b3964 cable_club.s nullsub_37 +080b3968 cable_club.s ColosseumPlayerSpotTriggered +080b39a4 cable_club.s sub_80B39A4 +080b39bc cable_club.s sp02A_crash_sound +080b39d4 cable_club.s GetLinkTrainerCardColor +080b3a30 cable_club.s task00_08081A90 +080b3aac cable_club.s sub_80B3AAC +080b3ad0 cable_club.s sub_80B3AD0 +080b3af8 cable_club.s sub_80B3AF8 +080b3bc4 cable_club.s sub_80B3BC4 +080b3be8 trainer_see.s CheckForTrainersWantingBattle +080b3d00 trainer_see.s CheckTrainer +080b3df0 trainer_see.s GetTrainerApproachDistance +080b3ea0 trainer_see.s GetTrainerApproachDistanceSouth +080b3ee4 trainer_see.s GetTrainerApproachDistanceNorth +080b3f28 trainer_see.s GetTrainerApproachDistanceWest +080b3f6c trainer_see.s GetTrainerApproachDistanceEast +080b3fb0 trainer_see.s CheckPathBetweenTrainerAndPlayer +080b406c trainer_see.s TrainerApproachPlayer +080b40c8 trainer_see.s sub_80B40C8 +080b4118 trainer_see.s Task_RunTrainerSeeFuncList +080b4178 trainer_see.s sub_80B4178 +080b417c trainer_see.s TrainerExclamationMark +080b41c0 trainer_see.s WaitTrainerExclamationMark +080b4200 trainer_see.s TrainerMoveToPlayer +080b425c trainer_see.s PlayerFaceApproachingTrainer +080b4318 trainer_see.s WaitPlayerFaceApproachingTrainer +080b435c trainer_see.s RevealDisguisedTrainer +080b4390 trainer_see.s WaitRevealDisguisedTrainer +080b43ac trainer_see.s RevealHiddenTrainer +080b43e0 trainer_see.s PopOutOfAshHiddenTrainer +080b4438 trainer_see.s JumpInPlaceHiddenTrainer +080b44ac trainer_see.s WaitRevealHiddenTrainer +080b44c8 trainer_see.s sub_80B44C8 +080b4578 trainer_see.s sub_80B4578 +080b45ac trainer_see.s EndTrainerApproach +080b45bc trainer_see.s Task_DestroyTrainerApproachTask +080b45d0 trainer_see.s TryPrepareSecondApproachingTrainer +080b4620 trainer_see.s FldEff_ExclamationMarkIcon +080b4658 trainer_see.s FldEff_QuestionMarkIcon +080b4690 trainer_see.s FldEff_HeartIcon +080b46d8 trainer_see.s SetIconSpriteData +080b4724 trainer_see.s SpriteCB_TrainerIcons +080b47bc trainer_see.s GetCurrentApproachingTrainerEventObjectId +080b47e0 trainer_see.s GetChosenApproachingTrainerEventObjectId +080b4808 trainer_see.s sub_80B4808 +080b48b8 wild_encounter.s DisableWildEncounters +080b48c4 wild_encounter.s GetRoute119WaterTileNum +080b4984 wild_encounter.s CheckFeebas +080b4a98 wild_encounter.s FeebasRandom +080b4ab8 wild_encounter.s FeebasSeedRng +080b4ac8 wild_encounter.s ChooseWildMonIndex_Land +080b4b84 wild_encounter.s ChooseWildMonIndex_WaterRock +080b4bd8 wild_encounter.s ChooseWildMonIndex_Fishing +080b4c74 wild_encounter.s ChooseWildMonLevel +080b4cf8 wild_encounter.s GetCurrentMapWildMonHeaderId +080b4d78 wild_encounter.s PickWildMonNature +080b4e68 wild_encounter.s CreateWildMon +080b4f4c wild_encounter.s TryGenerateWildMon +080b5024 wild_encounter.s GenerateFishingWildMon +080b505c wild_encounter.s SetUpMassOutbreakEncounter +080b50dc wild_encounter.s DoMassOutbreakEncounterTest +080b5144 wild_encounter.s DoWildEncounterRateDiceRoll +080b5170 wild_encounter.s DoWildEncounterRateTest +080b523c wild_encounter.s DoGlobalWildEncounterDiceRoll +080b5260 wild_encounter.s AreLegendariesInSootopolisPreventingEncounters +080b5288 wild_encounter.s StandardWildEncounter +080b550c wild_encounter.s RockSmashWildEncounter +080b5578 wild_encounter.s SweetScentWildEncounter +080b56fc wild_encounter.s DoesCurrentMapHaveFishingMons +080b5734 wild_encounter.s FishingWildEncounter +080b57a0 wild_encounter.s GetLocalWildMon +080b582c wild_encounter.s GetLocalWaterMon +080b5870 wild_encounter.s UpdateRepelCounter +080b58cc wild_encounter.s IsWildLevelAllowedByRepel +080b5934 wild_encounter.s IsAbilityAllowingEncounter +080b5990 wild_encounter.s TryGetRandomWildMonIndexByType +080b5a50 wild_encounter.s TryGetAbilityInfluencedWildMonIndex +080b5ab0 wild_encounter.s ApplyFluteEncounterRateMod +080b5af0 wild_encounter.s ApplyCleanseTagEncounterRateMod +080b5b18 field_effect.s FieldEffectStart +080b5b60 field_effect.s FieldEffectCmd_loadtiles +080b5b74 field_effect.s FieldEffectCmd_loadfadedpal +080b5b88 field_effect.s FieldEffectCmd_loadpal +080b5b9c field_effect.s FieldEffectCmd_callnative +080b5bb0 field_effect.s FieldEffectCmd_end +080b5bb4 field_effect.s FieldEffectCmd_loadgfx_callnative +080b5bdc field_effect.s FieldEffectCmd_loadtiles_callnative +080b5c00 field_effect.s FieldEffectCmd_loadfadedpal_callnative +080b5c24 field_effect.s FieldEffectScript_ReadWord +080b5c3c field_effect.s FieldEffectScript_LoadTiles +080b5c6c field_effect.s FieldEffectScript_LoadFadedPalette +080b5c94 field_effect.s FieldEffectScript_LoadPalette +080b5cac field_effect.s FieldEffectScript_CallNative +080b5cc8 field_effect.s FieldEffectFreeGraphicsResources +080b5cec field_effect.s FieldEffectStop +080b5d04 field_effect.s FieldEffectFreeTilesIfUnused +080b5d68 field_effect.s FieldEffectFreePaletteIfUnused +080b5dc0 field_effect.s FieldEffectActiveListClear +080b5de4 field_effect.s FieldEffectActiveListAdd +080b5e10 field_effect.s FieldEffectActiveListRemove +080b5e40 field_effect.s FieldEffectActiveListContains +080b5e6c field_effect.s CreateTrainerSprite +080b5f0c field_effect.s LoadTrainerGfx_TrainerCard +080b5f44 field_effect.s AddNewGameBirchObject +080b5f84 field_effect.s CreateMonSprite_PicBox +080b5fe8 field_effect.s CreateMonSprite_FieldMove +080b6070 field_effect.s FreeResourcesAndDestroySprite +080b609c field_effect.s MultiplyInvertedPaletteRGBComponents +080b6128 field_effect.s MultiplyPaletteRGBComponents +080b61a0 field_effect.s FldEff_PokecenterHeal +080b61e4 field_effect.s Task_PokecenterHeal +080b6214 field_effect.s PokecenterHealEffect_0 +080b6250 field_effect.s PokecenterHealEffect_1 +080b628c field_effect.s PokecenterHealEffect_2 +080b62b4 field_effect.s PokecenterHealEffect_3 +080b62f4 field_effect.s FldEff_HallOfFameRecord +080b6330 field_effect.s Task_HallOfFameRecord +080b6360 field_effect.s HallOfFameRecordEffect_0 +080b63d4 field_effect.s HallOfFameRecordEffect_1 +080b6404 field_effect.s HallOfFameRecordEffect_2 +080b642c field_effect.s HallOfFameRecordEffect_3 +080b646c field_effect.s CreatePokeballGlowSprite +080b64c0 field_effect.s SpriteCB_PokeballGlowEffect +080b64dc field_effect.s PokeballGlowEffect_0 +080b6574 field_effect.s PokeballGlowEffect_1 +080b65a8 field_effect.s PokeballGlowEffect_2 +080b66e8 field_effect.s PokeballGlowEffect_3 +080b67dc field_effect.s PokeballGlowEffect_4 +080b67f8 field_effect.s PokeballGlowEffect_5 +080b6800 field_effect.s PokeballGlowEffect_6 +080b6824 field_effect.s PokeballGlowEffect_7 +080b6828 field_effect.s SpriteCB_PokeballGlow +080b6850 field_effect.s PokecenterHealEffectHelper +080b68ac field_effect.s SpriteCB_PokecenterMonitor +080b68ec field_effect.s HallOfFameRecordEffectHelper +080b6970 field_effect.s SpriteCB_HallOfFameMonitor +080b69dc field_effect.s sub_80B69DC +080b69fc field_effect.s mapldr_080842E8 +080b6a24 field_effect.s task00_8084310 +080b6aa4 field_effect.s mapldr_08084390 +080b6b0c field_effect.s c3_080843F8 +080b6b68 field_effect.s sub_80B6B68 +080b6b94 field_effect.s sub_80B6B94 +080b6bcc field_effect.s sub_80B6BCC +080b6c74 field_effect.s sub_80B6C74 +080b6c90 field_effect.s sub_80B6C90 +080b6d04 field_effect.s sub_80B6D04 +080b6dbc field_effect.s sub_80B6DBC +080b6dd8 field_effect.s sub_80B6DD8 +080b6e18 field_effect.s sub_80B6E18 +080b6e4c field_effect.s sub_80B6E4C +080b6e88 field_effect.s sub_80B6E88 +080b6ec0 field_effect.s sub_80B6EC0 +080b6ee0 field_effect.s sub_80B6EE0 +080b6f50 field_effect.s sub_80B6F50 +080b6f74 field_effect.s sub_80B6F74 +080b6f84 field_effect.s sub_80B6F84 +080b6fa8 field_effect.s sub_80B6FA8 +080b6fb8 field_effect.s sub_80B6FB8 +080b7004 field_effect.s sub_80B7004 +080b7050 field_effect.s sub_80B7050 +080b7060 field_effect.s sub_80B7060 +080b70b4 field_effect.s sub_80B70B4 +080b70dc field_effect.s sub_80B70DC +080b7114 field_effect.s sub_80B7114 +080b7190 field_effect.s sub_80B7190 +080b71d0 field_effect.s sub_80B71D0 +080b7230 field_effect.s sub_80B7230 +080b7270 field_effect.s sub_80B7270 +080b72d0 field_effect.s sub_80B72D0 +080b72f4 field_effect.s sub_80B72F4 +080b734c field_effect.s FldEff_UseWaterfall +080b7384 field_effect.s sub_80B7384 +080b73d0 field_effect.s sub_80B73D0 +080b73f0 field_effect.s waterfall_1_do_anim_probably +080b742c field_effect.s waterfall_2_wait_anim_finish_probably +080b7450 field_effect.s sub_80B7450 +080b7478 field_effect.s sub_80B7478 +080b74d0 field_effect.s FldEff_UseDive +080b750c field_effect.s Task_Dive +080b7544 field_effect.s dive_1_lock +080b7558 field_effect.s dive_2_unknown +080b7580 field_effect.s dive_3_unknown +080b75d8 field_effect.s sub_80B75D8 +080b75f0 field_effect.s sub_80B75F0 +080b764c field_effect.s sub_80B764C +080b7684 field_effect.s sub_80B7684 +080b76b8 field_effect.s sub_80B76B8 +080b7704 field_effect.s sub_80B7704 +080b77f8 field_effect.s sub_80B77F8 +080b7814 field_effect.s sub_80B7814 +080b7868 field_effect.s mapldr_080851BC +080b7890 field_effect.s sub_80B7890 +080b78ec field_effect.s sub_80B78EC +080b791c field_effect.s sub_80B791C +080b7968 field_effect.s sub_80B7968 +080b79bc field_effect.s sub_80B79BC +080b79f4 field_effect.s FldEff_LavaridgeGymWarp +080b7a58 field_effect.s sub_80B7A58 +080b7a74 field_effect.s sub_80B7A74 +080b7a8c field_effect.s sub_80B7A8C +080b7ae8 field_effect.s sub_80B7AE8 +080b7b18 field_effect.s sub_80B7B18 +080b7b94 field_effect.s sub_80B7B94 +080b7bcc field_effect.s sub_80B7BCC +080b7bf4 field_effect.s sub_80B7BF4 +080b7c48 field_effect.s FldEff_PopOutOfAsh +080b7cac field_effect.s sub_80B7CAC +080b7cc8 field_effect.s StartEscapeRopeFieldEffect +080b7ce4 field_effect.s DoEscapeRopeFieldEffect +080b7d14 field_effect.s EscapeRopeFieldEffect_Step0 +080b7d34 field_effect.s EscapeRopeFieldEffect_Step1 +080b7e48 field_effect.s mapldr_080859D4 +080b7e94 field_effect.s sub_80B7E94 +080b7ec4 field_effect.s sub_80B7EC4 +080b7ee8 field_effect.s sub_80B7EE8 +080b7fc8 field_effect.s CreateTeleportFieldEffectTask +080b7fdc field_effect.s ExecuteTeleportFieldEffectTask +080b800c field_effect.s TeleportFieldEffectTask1 +080b8034 field_effect.s TeleportFieldEffectTask2 +080b80c4 field_effect.s TeleportFieldEffectTask3 +080b8198 field_effect.s TeleportFieldEffectTask4 +080b8200 field_effect.s mapldr_08085D88 +080b8250 field_effect.s sub_80B8250 +080b8280 field_effect.s sub_80B8280 +080b830c field_effect.s sub_80B830C +080b8410 field_effect.s sub_80B8410 +080b849c field_effect.s FldEff_FieldMoveShowMon +080b84f8 field_effect.s FldEff_FieldMoveShowMonInit +080b8554 field_effect.s sub_80B8554 +080b8584 field_effect.s sub_80B8584 +080b85f8 field_effect.s sub_80B85F8 +080b8660 field_effect.s sub_80B8660 +080b86ec field_effect.s sub_80B86EC +080b871c field_effect.s sub_80B871C +080b8770 field_effect.s sub_80B8770 +080b87b8 field_effect.s overworld_bg_setup_2 +080b880c field_effect.s sub_80B880C +080b8874 field_effect.s sub_80B8874 +080b88b4 field_effect.s sub_80B88B4 +080b88e4 field_effect.s sub_80B88E4 +080b8920 field_effect.s sub_80B8920 +080b898c field_effect.s sub_80B898C +080b89dc field_effect.s sub_80B89DC +080b8a0c field_effect.s sub_80B8A0C +080b8a44 field_effect.s sub_80B8A44 +080b8a64 field_effect.s sub_80B8A64 +080b8ae0 field_effect.s sub_80B8AE0 +080b8b28 field_effect.s sub_80B8B28 +080b8b38 field_effect.s sub_80B8B38 +080b8bf0 field_effect.s sub_80B8BF0 +080b8c60 field_effect.s sub_80B8C60 +080b8cc0 field_effect.s sub_80B8CC0 +080b8d04 field_effect.s sub_80B8D04 +080b8d20 field_effect.s sub_80B8D20 +080b8d44 field_effect.s FldEff_UseSurf +080b8d84 field_effect.s sub_80B8D84 +080b8db4 field_effect.s sub_80B8DB4 +080b8e14 field_effect.s sub_80B8E14 +080b8e60 field_effect.s sub_80B8E60 +080b8ea8 field_effect.s sub_80B8EA8 +080b8f24 field_effect.s sub_80B8F24 +080b8f98 field_effect.s sub_80B8F98 +080b90cc field_effect.s FldEff_NPCFlyOut +080b9128 field_effect.s sub_80B9128 +080b91a4 field_effect.s FldEff_UseFly +080b91d4 field_effect.s sub_80B91D4 +080b9204 field_effect.s sub_80B9204 +080b925c field_effect.s sub_80B925C +080b92a0 field_effect.s sub_80B92A0 +080b92f8 field_effect.s sub_80B92F8 +080b933c field_effect.s sub_80B933C +080b9390 field_effect.s sub_80B9390 +080b9418 field_effect.s sub_80B9418 +080b9474 field_effect.s sub_80B9474 +080b9494 field_effect.s sub_80B9494 +080b94c4 field_effect.s sub_80B94C4 +080b9508 field_effect.s sub_80B9508 +080b9524 field_effect.s sub_80B9524 +080b9560 field_effect.s sub_80B9560 +080b957c field_effect.s sub_80B957C +080b963c field_effect.s sub_80B963C +080b96b0 field_effect.s sub_80B96B0 +080b9794 field_effect.s sub_80B9794 +080b97c0 field_effect.s FldEff_FlyIn +080b97d4 field_effect.s sub_80B97D4 +080b9804 field_effect.s sub_80B9804 +080b98b8 field_effect.s sub_80B98B8 +080b9924 field_effect.s sub_80B9924 +080b9978 field_effect.s sub_80B9978 +080b99f0 field_effect.s sub_80B99F0 +080b9a28 field_effect.s sub_80B9A28 +080b9a60 field_effect.s sub_80B9A60 +080b9adc field_effect.s sub_80B9ADC +080b9b3c field_effect.s sub_80B9B3C +080b9bd0 field_effect.s sub_80B9BD0 +080b9be8 field_effect.s sub_80B9BE8 +080b9c28 field_effect.s sub_80B9C28 +080b9c54 field_effect.s sub_80B9C54 +080b9cdc field_effect.s sub_80B9CDC +080b9d24 field_effect.s sub_80B9D24 +080b9db8 field_effect.s sub_80B9DB8 +080b9e28 field_effect.s Fldeff_MoveDeoxysRock +080b9edc field_effect.s Fldeff_MoveDeoxysRock_Step +080b9fb8 scanline_effect.s ScanlineEffect_Stop +080b9ff8 scanline_effect.s ScanlineEffect_Clear +080ba038 scanline_effect.s ScanlineEffect_SetParams +080ba0a8 scanline_effect.s ScanlineEffect_InitHBlankDmaTransfer +080ba134 scanline_effect.s CopyValue16Bit +080ba154 scanline_effect.s CopyValue32Bit +080ba174 scanline_effect.s TaskFunc_UpdateWavePerFrame +080ba33c scanline_effect.s GenerateWave +080ba384 scanline_effect.s ScanlineEffect_InitWave +080ba4dc scanline_effect.s CB2_InitOptionMenu +080ba83c scanline_effect.s Task_OptionMenuFadeIn +080ba86c scanline_effect.s Task_OptionMenuProcessInput +080baa64 scanline_effect.s Task_OptionMenuSave +080bab08 scanline_effect.s Task_OptionMenuFadeOut +080bab38 scanline_effect.s HighlightOptionMenuItem +080bab68 scanline_effect.s DrawOptionMenuChoice +080babdc scanline_effect.s TextSpeed_ProcessInput +080bac38 scanline_effect.s TextSpeed_DrawChoices +080bace0 scanline_effect.s BattleScene_ProcessInput +080bad08 scanline_effect.s BattleScene_DrawChoices +080bad5c scanline_effect.s BattleStyle_ProcessInput +080bad84 scanline_effect.s BattleStyle_DrawChoices +080badd8 scanline_effect.s Sound_ProcessInput +080bae08 scanline_effect.s Sound_DrawChoices +080bae5c scanline_effect.s FrameType_ProcessInput +080baf0c scanline_effect.s FrameType_DrawChoices +080bafcc scanline_effect.s ButtonMode_ProcessInput +080bb028 scanline_effect.s ButtonMode_DrawChoices +080bb0d0 scanline_effect.s DrawTextOption +080bb104 scanline_effect.s DrawOptionMenuTexts +080bb154 scanline_effect.s sub_80BB154 +080bb2d0 pokedex.s ResetPokedex +080bb358 pokedex.s ResetPokedexScrollPositions +080bb370 pokedex.s sub_80BB370 +080bb384 pokedex.s ResetPokedexView +080bb534 pokedex.s CB2_Pokedex +080bb774 pokedex.s sub_80BB774 +080bb78c pokedex.s sub_80BB78C +080bb7d4 pokedex.s sub_80BB7D4 +080bba28 pokedex.s sub_80BBA28 +080bba78 pokedex.s sub_80BBA78 +080bbbf4 pokedex.s sub_80BBBF4 +080bbc74 pokedex.s sub_80BBC74 +080bbd1c pokedex.s sub_80BBD1C +080bbde8 pokedex.s sub_80BBDE8 +080bbe70 pokedex.s sub_80BBE70 +080bbeb8 pokedex.s sub_80BBEB8 +080bc0a8 pokedex.s sub_80BC0A8 +080bc0f8 pokedex.s HandleButtonPress_StartMenu +080bc2d4 pokedex.s sub_80BC2D4 +080bc360 pokedex.s sub_80BC360 +080bc3dc pokedex.s sub_80BC3DC +080bc47c pokedex.s sub_80BC47C +080bc514 pokedex.s sub_80BC514 +080bc844 pokedex.s LoadPokedexBgPalette +080bc890 pokedex.s sub_80BC890 +080bc8d4 pokedex.s sub_80BC8D4 +080bce2c pokedex.s PrintMonDexNumAndName +080bce84 pokedex.s CreateMonListEntry +080bd154 pokedex.s CreateMonDexNum +080bd1f4 pokedex.s CreateCaughtBall +080bd23c pokedex.s CreateMonName +080bd28c pokedex.s sub_80BD28C +080bd2b4 pokedex.s CreateInitialPokemonSprites +080bd404 pokedex.s sub_80BD404 +080bd5a8 pokedex.s CreateNewPokemonSprite +080bd69c pokedex.s sub_80BD69C +080bd8d0 pokedex.s sub_80BD8D0 +080bd930 pokedex.s sub_80BD930 +080bda40 pokedex.s sub_80BDA40 +080bda8c pokedex.s GetPokemonSpriteToDisplay +080bdacc pokedex.s sub_80BDACC +080bdb7c pokedex.s CreateInterfaceSprites +080be448 pokedex.s nullsub_38 +080be44c pokedex.s sub_80BE44C +080be470 pokedex.s sub_80BE470 +080be4e0 pokedex.s sub_80BE4E0 +080be604 pokedex.s SpriteCB_Scrollbar +080be658 pokedex.s sub_80BE658 +080be758 pokedex.s sub_80BE758 +080be780 pokedex.s sub_80BE780 +080be834 pokedex.s sub_80BE834 +080be8dc pokedex.s sub_80BE8DC +080be91c pokedex.s sub_80BE91C +080be9c4 pokedex.s sub_80BE9C4 +080be9f8 pokedex.s sub_80BE9F8 +080bea24 pokedex.s sub_80BEA24 +080bedb0 pokedex.s sub_80BEDB0 +080bedf4 pokedex.s sub_80BEDF4 +080befd0 pokedex.s sub_80BEFD0 +080bf038 pokedex.s sub_80BF038 +080bf070 pokedex.s sub_80BF070 +080bf0ac pokedex.s sub_80BF0AC +080bf1b4 pokedex.s sub_80BF1B4 +080bf1ec pokedex.s sub_80BF1EC +080bf250 pokedex.s sub_80BF250 +080bf5cc pokedex.s sub_80BF5CC +080bf790 pokedex.s sub_80BF790 +080bf7fc pokedex.s sub_80BF7FC +080bf82c pokedex.s sub_80BF82C +080bfbb0 pokedex.s sub_80BFBB0 +080bfc78 pokedex.s sub_80BFC78 +080bfcdc pokedex.s sub_80BFCDC +080bfcf4 pokedex.s sub_80BFCF4 +080bfd0c pokedex.s sub_80BFD0C +080bfd7c pokedex.s sub_80BFD7C +080bfdf4 pokedex.s CreateDexDisplayMonDataTask +080bfe38 pokedex.s sub_80BFE38 +080c0088 pokedex.s sub_80C0088 +080c012c pokedex.s blockset_load_palette_to_gpu +080c01cc pokedex.s sub_80C01CC +080c020c pokedex.s sub_80C020C +080c0354 pokedex.s sub_80C0354 +080c0460 pokedex.s sub_80C0460 +080c0620 pokedex.s sub_80C0620 +080c0630 pokedex.s GetPokedexHeightWeight +080c0664 pokedex.s GetSetPokedexFlag +080c07f4 pokedex.s GetNationalPokedexCount +080c0844 pokedex.s GetHoennPokedexCount +080c089c pokedex.s sub_80C089C +080c08e4 pokedex.s HasAllHoennMons +080c0918 pokedex.s sub_80C0918 +080c0944 pokedex.s sub_80C0944 +080c09b0 pokedex.s sub_80C09B0 +080c0a88 pokedex.s sub_80C0A88 +080c0ac4 pokedex.s sub_80C0AC4 +080c0b44 pokedex.s sub_80C0B44 +080c0bf0 pokedex.s sub_80C0BF0 +080c0c6c pokedex.s sub_80C0C6C +080c0d30 pokedex.s sub_80C0D30 +080c0dc0 pokedex.s sub_80C0DC0 +080c0e0c pokedex.s sub_80C0E0C +080c0e68 pokedex.s sub_80C0E68 +080c0e9c pokedex.s CreateMonSpriteFromNationalDexNumber +080c0ef8 pokedex.s sub_80C0EF8 +080c0f30 pokedex.s sub_80C0F30 +080c1258 pokedex.s sub_80C1258 +080c1270 pokedex.s sub_80C1270 +080c12b0 pokedex.s sub_80C12B0 +080c12e0 pokedex.s sub_80C12E0 +080c152c pokedex.s sub_80C152C +080c1570 pokedex.s sub_80C1570 +080c15b0 pokedex.s sub_80C15B0 +080c16cc pokedex.s sub_80C16CC +080c170c pokedex.s sub_80C170C +080c19a4 pokedex.s sub_80C19A4 +080c1a4c pokedex.s sub_80C1A4C +080c1ab8 pokedex.s sub_80C1AB8 +080c1b64 pokedex.s sub_80C1B64 +080c1bcc pokedex.s sub_80C1BCC +080c1d38 pokedex.s sub_80C1D38 +080c1d70 pokedex.s sub_80C1D70 +080c1d98 pokedex.s sub_80C1D98 +080c1dfc pokedex.s sub_80C1DFC +080c1ef4 pokedex.s sub_80C1EF4 +080c2040 pokedex.s sub_80C2040 +080c2064 pokedex.s sub_80C2064 +080c20f8 pokedex.s sub_80C20F8 +080c21d4 pokedex.s sub_80C21D4 +080c2294 pokedex.s sub_80C2294 +080c2318 pokedex.s sub_80C2318 +080c23b8 pokedex.s sub_80C23B8 +080c244c pokedex.s sub_80C244C +080c2494 pokedex.s sub_80C2494 +080c24e0 pokedex.s sub_80C24E0 +080c2594 pokedex.s sub_80C2594 +080c2618 pokedex.s sub_80C2618 +080c2638 pokedex.s sub_80C2638 +080c2650 pokedex.s sub_80C2650 +080c2668 pokedex.s sub_80C2668 +080c267c pokedex.s sub_80C267C +080c2690 trainer_card.s VblankCb_TrainerCard +080c26d4 trainer_card.s HblankCb_TrainerCard +080c2710 trainer_card.s CB2_TrainerCard +080c2728 trainer_card.s CloseTrainerCard +080c2760 trainer_card.s sub_80C2760 +080c2ad8 trainer_card.s LoadCardGfx +080c2c80 trainer_card.s CB2_InitTrainerCard +080c2de4 trainer_card.s GetCappedGameStat +080c2dfc trainer_card.s HasAllFrontierSymbols +080c2e40 trainer_card.s CountPlayerTrainerStars +080c2e84 trainer_card.s GetRubyTrainerStars +080c2ec4 trainer_card.s SetPlayerCardData +080c3020 trainer_card.s TrainerCard_GenerateCardForLinkPlayer +080c30a4 trainer_card.s TrainerCard_GenerateCardForPlayer +080c3120 trainer_card.s CopyTrainerCardData +080c3190 trainer_card.s SetDataFromTrainerCard +080c3278 trainer_card.s HandleGpuRegs +080c32ec trainer_card.s sub_80C32EC +080c334c trainer_card.s ResetGpuRegs +080c3388 trainer_card.s InitBgsAndWindows +080c3404 trainer_card.s SetTrainerCardCb2 +080c3414 trainer_card.s sub_80C3414 +080c3438 trainer_card.s PrintAllOnCardPage1 +080c34b0 trainer_card.s PrintStringsOnCardPage2 +080c3548 trainer_card.s PrintAllVariableNumsOnCardPage2 +080c3574 trainer_card.s PrintNameOnCard +080c3608 trainer_card.s PrintIdOnCard +080c3684 trainer_card.s PrintMoneyOnCard +080c376c trainer_card.s GetCaughtMonsCount +080c378c trainer_card.s PrintPokedexOnCard +080c3880 trainer_card.s PrintTimeOnCard +080c3a18 trainer_card.s PrintProfilePhraseOnCard +080c3af0 trainer_card.s PrintNameOnCard2 +080c3b50 trainer_card.s sub_80C3B50 +080c3bc4 trainer_card.s PrintHofTimeOnCard +080c3c34 trainer_card.s PrintString +080c3ccc trainer_card.s PrintHofDebutStringOnCard +080c3cf4 trainer_card.s PrintLinkResultsNumsOnCard +080c3d60 trainer_card.s PrintWinsLossesStringOnCard +080c3dc0 trainer_card.s PrintTradesNumOnCard +080c3df0 trainer_card.s PrintTradesStringOnCard +080c3e20 trainer_card.s PrintBerryCrushNumOnCard +080c3e58 trainer_card.s PrintBerryCrushStringOnCard +080c3e98 trainer_card.s PrintUnionNumOnCard +080c3ed4 trainer_card.s PrintUnionStringOnCard +080c3f14 trainer_card.s PrintPokeblocksNumOnCard +080c3f64 trainer_card.s PrintPokeblockStringOnCard +080c3fa4 trainer_card.s PrintContestNumOnCard +080c3fe0 trainer_card.s PrintContestStringOnCard +080c4020 trainer_card.s PrintBattleFacilityNumsOnCard +080c40cc trainer_card.s PrintBattleFacilityStringOnCard +080c4140 trainer_card.s TrainerCard_PrintPokemonIconsOnCard +080c41d8 trainer_card.s sub_80C41D8 +080c42a4 trainer_card.s sub_80C42A4 +080c4330 trainer_card.s sub_80C4330 +080c438c trainer_card.s sub_80C438C +080c43a8 trainer_card.s SetCardBgsAndPals +080c4550 trainer_card.s sub_80C4550 +080c45c0 trainer_card.s sub_80C45C0 +080c4630 trainer_card.s TrainerCard_PrintStarsAndBadgesOnCard +080c474c trainer_card.s sub_80C474C +080c48c8 trainer_card.s sub_80C48C8 +080c4904 trainer_card.s GetTrainerCardStars +080c4918 trainer_card.s sub_80C4918 +080c4940 trainer_card.s sub_80C4940 +080c4960 trainer_card.s sub_80C4960 +080c4998 trainer_card.s sub_80C4998 +080c49d8 trainer_card.s sub_80C49D8 +080c4b08 trainer_card.s sub_80C4B08 +080c4c1c trainer_card.s sub_80C4C1C +080c4c84 trainer_card.s sub_80C4C84 +080c4db0 trainer_card.s sub_80C4DB0 +080c4ddc trainer_card.s ShowPlayerTrainerCard +080c4e74 trainer_card.s ShowTrainerCardInLink +080c4ee4 trainer_card.s sub_80C4EE4 +080c4f50 trainer_card.s GetSetCardType +080c4fcc trainer_card.s VersionToCardType +080c4ff0 trainer_card.s sub_80C4FF0 +080c50d0 frontier_pass.s ResetGpuRegsAndBgs +080c51c4 frontier_pass.s ShowFrontierPass +080c51d8 frontier_pass.s LeaveFrontierPass +080c51f0 frontier_pass.s AllocateFrontierPassData +080c52e4 frontier_pass.s FreeFrontierPassData +080c5310 frontier_pass.s AllocateFrontierPassGfx +080c5340 frontier_pass.s FreeFrontierPassGfx +080c53ac frontier_pass.s VblankCb_FrontierPass +080c5438 frontier_pass.s CB2_FrontierPass +080c544c frontier_pass.s CB2_InitFrontierPass +080c5470 frontier_pass.s CB2_HideFrontierPass +080c5484 frontier_pass.s InitFrontierPass +080c570c frontier_pass.s HideFrontierPass +080c57fc frontier_pass.s GetCursorAreaFromCoords +080c5868 frontier_pass.s CB2_ReshowFrontierPass +080c58d4 frontier_pass.s CB2_ReturnFromRecord +080c5934 frontier_pass.s CB2_ShowFrontierPassFeature +080c59a4 frontier_pass.s TryCallPassAreaFunction +080c5a48 frontier_pass.s Task_HandleFrontierPassInput +080c5bd8 frontier_pass.s Task_DoFadeEffect +080c5db8 frontier_pass.s ShowAndPrintWindows +080c5ed0 frontier_pass.s PrintAreaDescription +080c5f58 frontier_pass.s sub_80C5F58 +080c6104 frontier_pass.s sub_80C6104 +080c629c frontier_pass.s sub_80C629C +080c62dc frontier_pass.s LoadCursorAndSymbolSprites +080c63fc frontier_pass.s FreeCursorAndSymbolSprites +080c6450 frontier_pass.s SpriteCb_Dummy +080c6454 frontier_pass.s ShowFrontierMap +080c6498 frontier_pass.s FreeFrontierMap +080c64cc frontier_pass.s InitFrontierMap +080c66ac frontier_pass.s ExitFrontierMap +080c67bc frontier_pass.s Task_HandleFrontierMap +080c68e8 frontier_pass.s MapNumToFrontierFacilityId +080c6974 frontier_pass.s InitFrontierMapSprites +080c6b94 frontier_pass.s PrintOnFrontierMap +080c6c70 frontier_pass.s HandleFrontierMapCursorMove +080c6d80 pokemon_storage_system.s sub_80C6D80 +080c6eac pokemon_storage_system.s sub_80C6EAC +080c6fa0 pokemon_storage_system.s CountMonsInBox +080c6fd4 pokemon_storage_system.s GetFirstFreeBoxSpot +080c7008 pokemon_storage_system.s CountPartyNonEggMons +080c7050 pokemon_storage_system.s CountPartyAliveNonEggMonsExcept +080c70ac pokemon_storage_system.s CountPartyAliveNonEggMons_IgnoreVar0x8004Slot +080c70c4 pokemon_storage_system.s CountPartyMons +080c70fc pokemon_storage_system.s StringCopyAndFillWithSpaces +080c7128 pokemon_storage_system.s sub_80C7128 +080c71a4 pokemon_storage_system.s sub_80C71A4 +080c7268 pokemon_storage_system.s Task_PokemonStorageSystemPC +080c7578 pokemon_storage_system.s ShowPokemonStorageSystemPC +080c75a8 pokemon_storage_system.s FieldCb_ReturnToPcMenu +080c7678 pokemon_storage_system.s Cb2_ExitPSS +080c76a4 pokemon_storage_system.s StorageSystemGetNextMonIndex +080c7770 pokemon_storage_system.s ResetPokemonStorageSystem +080c77e8 pokemon_storage_system.s sub_80C77E8 +080c7890 pokemon_storage_system.s sub_80C7890 +080c78d4 pokemon_storage_system.s sub_80C78D4 +080c78e4 pokemon_storage_system.s sub_80C78E4 +080c78f0 pokemon_storage_system.s HandleBoxChooseSelectionInput +080c7958 pokemon_storage_system.s sub_80C7958 +080c7b14 pokemon_storage_system.s sub_80C7B14 +080c7b80 pokemon_storage_system.s sub_80C7B80 +080c7bb4 pokemon_storage_system.s sub_80C7BB4 +080c7be4 pokemon_storage_system.s sub_80C7BE4 +080c7cf4 pokemon_storage_system.s sub_80C7CF4 +080c7d28 pokemon_storage_system.s VblankCb_PSS +080c7d54 pokemon_storage_system.s Cb2_PSS +080c7d74 pokemon_storage_system.s Cb2_EnterPSS +080c7dec pokemon_storage_system.s Cb2_ReturnToPSS +080c7e50 pokemon_storage_system.s ResetAllBgCoords +080c7e98 pokemon_storage_system.s sub_80C7E98 +080c7f1c pokemon_storage_system.s sub_80C7F1C +080c7f4c pokemon_storage_system.s sub_80C7F4C +080c7f80 pokemon_storage_system.s SetPSSCallback +080c7fa8 pokemon_storage_system.s Cb_InitPSS +080c81ac pokemon_storage_system.s Cb_ShowPSS +080c81f8 pokemon_storage_system.s Cb_ReshowPSS +080c82ac pokemon_storage_system.s Cb_MainPSS +080c87a8 pokemon_storage_system.s Cb_ShowPartyPokemon +080c87e8 pokemon_storage_system.s Cb_HidePartyPokemon +080c8864 pokemon_storage_system.s Cb_OnSelectedMon +080c8b90 pokemon_storage_system.s Cb_MoveMon +080c8bec pokemon_storage_system.s Cb_PlaceMon +080c8c48 pokemon_storage_system.s Cb_ShiftMon +080c8c90 pokemon_storage_system.s Cb_WithdrawMon +080c8d78 pokemon_storage_system.s Cb_DepositMenu +080c8eb4 pokemon_storage_system.s Cb_ReleaseMon +080c90a4 pokemon_storage_system.s Cb_ShowMarkMenu +080c9128 pokemon_storage_system.s Cb_TakeItemForMoving +080c91dc pokemon_storage_system.s Cb_GiveMovingItemToMon +080c9298 pokemon_storage_system.s Cb_ItemToBag +080c93b0 pokemon_storage_system.s Cb_SwitchSelectedItem +080c9498 pokemon_storage_system.s Cb_ShowItemInfo +080c954c pokemon_storage_system.s Cb_CloseBoxWhileHoldingItem +080c9670 pokemon_storage_system.s Cb_HandleMovingMonFromParty +080c96b8 pokemon_storage_system.s Cb_PrintCantStoreMail +080c972c pokemon_storage_system.s Cb_HandleBoxOptions +080c9824 pokemon_storage_system.s Cb_HandleWallpapers +080c99d8 pokemon_storage_system.s Cb_JumpBox +080c9ac8 pokemon_storage_system.s Cb_NameBox +080c9b28 pokemon_storage_system.s Cb_ShowMonSummary +080c9b88 pokemon_storage_system.s Cb_GiveItemFromBag +080c9be8 pokemon_storage_system.s Cb_OnCloseBoxPressed +080c9d1c pokemon_storage_system.s Cb_OnBPressed +080c9e50 pokemon_storage_system.s Cb_ChangeScreen +080c9f6c pokemon_storage_system.s GiveChosenBagItem +080c9fc8 pokemon_storage_system.s FreePSSData +080c9fec pokemon_storage_system.s SetScrollingBackground +080ca028 pokemon_storage_system.s ScrollBackground +080ca044 pokemon_storage_system.s LoadPSSMenuGfx +080ca0a4 pokemon_storage_system.s InitPSSWindows +080ca0c8 pokemon_storage_system.s LoadWaveformSpritePalette +080ca0d8 pokemon_storage_system.s sub_80CA0D8 +080ca154 pokemon_storage_system.s sub_80CA154 +080ca1c4 pokemon_storage_system.s sub_80CA1C4 +080ca230 pokemon_storage_system.s RefreshCursorMonData +080ca260 pokemon_storage_system.s BoxSetMosaic +080ca2b8 pokemon_storage_system.s sub_80CA2B8 +080ca2d0 pokemon_storage_system.s sub_80CA2D0 +080ca318 pokemon_storage_system.s LoadCursorMonSprite +080ca44c pokemon_storage_system.s LoadCursorMonGfx +080ca4fc pokemon_storage_system.s PrintCursorMonInfo +080ca65c pokemon_storage_system.s sub_80CA65C +080ca704 pokemon_storage_system.s sub_80CA704 +080ca7d4 pokemon_storage_system.s SetUpShowPartyMenu +080ca80c pokemon_storage_system.s ShowPartyMenu +080ca888 pokemon_storage_system.s SetUpHidePartyMenu +080ca8c8 pokemon_storage_system.s HidePartyMenu +080ca984 pokemon_storage_system.s sub_80CA984 +080ca9c0 pokemon_storage_system.s sub_80CA9C0 +080ca9ec pokemon_storage_system.s sub_80CA9EC +080caa14 pokemon_storage_system.s sub_80CAA14 +080caa74 pokemon_storage_system.s sub_80CAA74 +080caaa8 pokemon_storage_system.s sub_80CAAA8 +080cab20 pokemon_storage_system.s sub_80CAB20 +080cab4c pokemon_storage_system.s SetUpDoShowPartyMenu +080cab70 pokemon_storage_system.s DoShowPartyMenu +080cabe0 pokemon_storage_system.s sub_80CABE0 +080cac1c pokemon_storage_system.s sub_80CAC1C +080cac58 pokemon_storage_system.s PrintStorageActionText +080cad9c pokemon_storage_system.s ShowYesNoWindow +080cadc4 pokemon_storage_system.s ClearBottomWindow +080cadd8 pokemon_storage_system.s AddWallpaperSetsMenu +080cae0c pokemon_storage_system.s AddWallpapersMenu +080caea0 pokemon_storage_system.s GetCurrentBoxOption +080caeac pokemon_storage_system.s sub_80CAEAC +080caf04 pokemon_storage_system.s sub_80CAF04 +080cafac pokemon_storage_system.s sub_80CAFAC +080cafc4 pokemon_storage_system.s CreateMovingMonIcon +080cb028 pokemon_storage_system.s sub_80CB028 +080cb140 pokemon_storage_system.s sub_80CB140 +080cb1f0 pokemon_storage_system.s sub_80CB1F0 +080cb234 pokemon_storage_system.s sub_80CB234 +080cb278 pokemon_storage_system.s sub_80CB278 +080cb2b0 pokemon_storage_system.s DestroyAllIconsInRow +080cb2f8 pokemon_storage_system.s sub_80CB2F8 +080cb4cc pokemon_storage_system.s sub_80CB4CC +080cb584 pokemon_storage_system.s sub_80CB584 +080cb6f0 pokemon_storage_system.s SetBoxSpeciesAndPersonalities +080cb778 pokemon_storage_system.s DestroyBoxMonIconAtPosition +080cb7ac pokemon_storage_system.s SetBoxMonIconObjMode +080cb7e8 pokemon_storage_system.s CreatePartyMonsSprites +080cb950 pokemon_storage_system.s sub_80CB950 +080cb9bc pokemon_storage_system.s sub_80CB9BC +080cb9d0 pokemon_storage_system.s sub_80CB9D0 +080cba3c pokemon_storage_system.s sub_80CBA3C +080cbac4 pokemon_storage_system.s DestroyMovingMonIcon +080cbaf0 pokemon_storage_system.s sub_80CBAF0 +080cbb68 pokemon_storage_system.s DestroyPartyMonIcon +080cbb9c pokemon_storage_system.s DestroyAllPartyMonIcons +080cbbdc pokemon_storage_system.s SetPartyMonIconObjMode +080cbc14 pokemon_storage_system.s sub_80CBC14 +080cbcac pokemon_storage_system.s sub_80CBCAC +080cbd5c pokemon_storage_system.s sub_80CBD5C +080cbdc4 pokemon_storage_system.s sub_80CBDC4 +080cbf14 pokemon_storage_system.s sub_80CBF14 +080cbfd8 pokemon_storage_system.s sub_80CBFD8 +080cc020 pokemon_storage_system.s sub_80CC020 +080cc064 pokemon_storage_system.s sub_80CC064 +080cc0a0 pokemon_storage_system.s sub_80CC0A0 +080cc0d4 pokemon_storage_system.s SetMovingMonPriority +080cc100 pokemon_storage_system.s sub_80CC100 +080cc124 pokemon_storage_system.s sub_80CC124 +080cc1e0 pokemon_storage_system.s sub_80CC1E0 +080cc314 pokemon_storage_system.s DestroyBoxMonIcon +080cc32c pokemon_storage_system.s sub_80CC32C +080cc35c pokemon_storage_system.s sub_80CC35C +080cc370 pokemon_storage_system.s sub_80CC370 +080cc464 pokemon_storage_system.s SetUpScrollToBox +080cc54c pokemon_storage_system.s ScrollToBox +080cc644 pokemon_storage_system.s sub_80CC644 +080cc680 pokemon_storage_system.s SetWallpaperForCurrentBox +080cc6b0 pokemon_storage_system.s DoWallpaperGfxChange +080cc7a0 pokemon_storage_system.s LoadWallpaperGfx +080cca00 pokemon_storage_system.s WaitForWallpaperGfxLoad +080cca3c pokemon_storage_system.s sub_80CCA3C +080ccae0 pokemon_storage_system.s sub_80CCAE0 +080ccb50 pokemon_storage_system.s sub_80CCB50 +080cccfc pokemon_storage_system.s sub_80CCCFC +080ccee0 pokemon_storage_system.s sub_80CCEE0 +080ccf30 pokemon_storage_system.s sub_80CCF30 +080ccf64 pokemon_storage_system.s sub_80CCF64 +080ccf9c pokemon_storage_system.s sub_80CCF9C +080cd00c pokemon_storage_system.s sub_80CD00C +080cd02c pokemon_storage_system.s sub_80CD02C +080cd0b8 pokemon_storage_system.s sub_80CD0B8 +080cd158 pokemon_storage_system.s sub_80CD158 +080cd1a8 pokemon_storage_system.s sub_80CD1A8 +080cd210 pokemon_storage_system.s sub_80CD210 +080cd2e8 pokemon_storage_system.s sub_80CD2E8 +080cd36c pokemon_storage_system.s sub_80CD36C +080cd3ec pokemon_storage_system.s sub_80CD3EC +080cd444 pokemon_storage_system.s sub_80CD444 +080cd504 pokemon_storage_system.s sub_80CD504 +080cd554 pokemon_storage_system.s sub_80CD554 +080cd6ac pokemon_storage_system.s sub_80CD6AC +080cd70c pokemon_storage_system.s sub_80CD70C +080cd894 pokemon_storage_system.s sub_80CD894 +080cda68 pokemon_storage_system.s sub_80CDA68 +080cdba0 pokemon_storage_system.s sub_80CDBA0 +080cdbf8 pokemon_storage_system.s sub_80CDBF8 +080cdc0c pokemon_storage_system.s sub_80CDC0C +080cdc18 pokemon_storage_system.s sub_80CDC18 +080cdc2c pokemon_storage_system.s sub_80CDC2C +080cdc38 pokemon_storage_system.s InitMonPlaceChange +080cdc64 pokemon_storage_system.s sub_80CDC64 +080cdcac pokemon_storage_system.s DoMonPlaceChange +080cdccc pokemon_storage_system.s MonPlaceChange_Move +080cdd5c pokemon_storage_system.s MonPlaceChange_Place +080cddd8 pokemon_storage_system.s MonPlaceChange_Shift +080cdeb4 pokemon_storage_system.s sub_80CDEB4 +080cdec4 pokemon_storage_system.s sub_80CDEC4 +080cded4 pokemon_storage_system.s sub_80CDED4 +080cdf08 pokemon_storage_system.s sub_80CDF08 +080cdf38 pokemon_storage_system.s MoveMon +080cdfac pokemon_storage_system.s PlaceMon +080ce00c pokemon_storage_system.s sub_80CE00C +080ce018 pokemon_storage_system.s SetMovedMonData +080ce08c pokemon_storage_system.s SetPlacedMonData +080ce0e8 pokemon_storage_system.s PurgeMonOrBoxMon +080ce110 pokemon_storage_system.s SetShiftedMonData +080ce19c pokemon_storage_system.s TryStorePartyMonInBox +080ce22c pokemon_storage_system.s sub_80CE22C +080ce250 pokemon_storage_system.s sub_80CE250 +080ce2a8 pokemon_storage_system.s sub_80CE2A8 +080ce2d8 pokemon_storage_system.s ReleaseMon +080ce324 pokemon_storage_system.s sub_80CE324 +080ce350 pokemon_storage_system.s sub_80CE350 +080ce3a0 pokemon_storage_system.s InitCanRelaseMonVars +080ce51c pokemon_storage_system.s AtLeastThreeUsableMons +080ce580 pokemon_storage_system.s RunCanReleaseMon +080ce760 pokemon_storage_system.s sub_80CE760 +080ce790 pokemon_storage_system.s sub_80CE790 +080ce7e8 pokemon_storage_system.s sub_80CE7E8 +080ce8e4 pokemon_storage_system.s sub_80CE8E4 +080ce90c pokemon_storage_system.s CompactPartySlots +080ce9a8 pokemon_storage_system.s SetMonMarkings +080cea30 pokemon_storage_system.s CanMovePartyMon +080cea6c pokemon_storage_system.s CanShiftMon +080cead0 pokemon_storage_system.s IsMonBeingMoved +080ceadc pokemon_storage_system.s IsCursorOnBox +080ceaf8 pokemon_storage_system.s IsCursorOnCloseBox +080ceb24 pokemon_storage_system.s IsCursorInBox +080ceb40 pokemon_storage_system.s sub_80CEB40 +080cebdc pokemon_storage_system.s sub_80CEBDC +080cec00 pokemon_storage_system.s SetCursorMonData +080cf0cc pokemon_storage_system.s HandleInput_InBox +080cf108 pokemon_storage_system.s InBoxInput_Normal +080cf374 pokemon_storage_system.s InBoxInput_GrabbingMultiple +080cf4b0 pokemon_storage_system.s InBoxInput_MovingMultiple +080cf5c4 pokemon_storage_system.s HandleInput_InParty +080cf7e4 pokemon_storage_system.s HandleInput_OnBox +080cf8d8 pokemon_storage_system.s HandleInput_OnButtons +080cfa38 pokemon_storage_system.s AddBoxMenu +080cfa5c pokemon_storage_system.s sub_80CFA5C +080cfa84 pokemon_storage_system.s sub_80CFA84 +080cfb44 pokemon_storage_system.s sub_80CFB44 +080cfbf4 pokemon_storage_system.s sub_80CFBF4 +080cfc14 pokemon_storage_system.s sub_80CFC14 +080cfdc4 pokemon_storage_system.s sub_80CFDC4 +080cfe08 pokemon_storage_system.s GetBoxCursorPosition +080cfe14 pokemon_storage_system.s sub_80CFE14 +080cfe54 pokemon_storage_system.s sub_80CFE54 +080cfe78 pokemon_storage_system.s sub_80CFE78 +080cfe84 pokemon_storage_system.s sub_80CFE84 +080cfea8 pokemon_storage_system.s sub_80CFEA8 +080cfecc pokemon_storage_system.s sub_80CFECC +080cfef0 pokemon_storage_system.s InitMenu +080cff34 pokemon_storage_system.s SetMenuText +080cff98 pokemon_storage_system.s sub_80CFF98 +080cffd0 pokemon_storage_system.s AddMenu +080d00a8 pokemon_storage_system.s sub_80D00A8 +080d00ac pokemon_storage_system.s sub_80D00AC +080d013c pokemon_storage_system.s sub_80D013C +080d0164 pokemon_storage_system.s sub_80D0164 +080d01b8 pokemon_storage_system.s sub_80D01B8 +080d01d0 pokemon_storage_system.s sub_80D01D0 +080d01e4 pokemon_storage_system.s sub_80D01E4 +080d024c pokemon_storage_system.s sub_80D024C +080d0344 pokemon_storage_system.s sub_80D0344 +080d03b0 pokemon_storage_system.s sub_80D03B0 +080d0420 pokemon_storage_system.s sub_80D0420 +080d04a0 pokemon_storage_system.s sub_80D04A0 +080d04c8 pokemon_storage_system.s sub_80D04C8 +080d0580 pokemon_storage_system.s sub_80D0580 +080d062c pokemon_storage_system.s sub_80D062C +080d06d0 pokemon_storage_system.s sub_80D06D0 +080d0708 pokemon_storage_system.s sub_80D0708 +080d0740 pokemon_storage_system.s sub_80D0740 +080d0778 pokemon_storage_system.s sub_80D0778 +080d07b0 pokemon_storage_system.s sub_80D07B0 +080d0834 pokemon_storage_system.s sub_80D0834 +080d0884 pokemon_storage_system.s sub_80D0884 +080d0894 pokemon_storage_system.s sub_80D0894 +080d08cc pokemon_storage_system.s sub_80D08CC +080d09a4 pokemon_storage_system.s sub_80D09A4 +080d0a1c pokemon_storage_system.s sub_80D0A1C +080d0aac pokemon_storage_system.s sub_80D0AAC +080d0b5c pokemon_storage_system.s sub_80D0B5C +080d0ba4 pokemon_storage_system.s sub_80D0BA4 +080d0bc0 pokemon_storage_system.s sub_80D0BC0 +080d0c60 pokemon_storage_system.s sub_80D0C60 +080d0d8c pokemon_storage_system.s sub_80D0D8C +080d0e50 pokemon_storage_system.s sub_80D0E50 +080d0e90 pokemon_storage_system.s Item_FromMonToMoving +080d0f38 pokemon_storage_system.s sub_80D0F38 +080d0fac pokemon_storage_system.s Item_SwitchMonsWithMoving +080d1080 pokemon_storage_system.s Item_GiveMovingToMon +080d1114 pokemon_storage_system.s Item_TakeMons +080d1194 pokemon_storage_system.s sub_80D1194 +080d11cc pokemon_storage_system.s sub_80D11CC +080d1218 pokemon_storage_system.s sub_80D1218 +080d127c pokemon_storage_system.s IsActiveItemMoving +080d12b8 pokemon_storage_system.s GetMovingItemName +080d12d4 pokemon_storage_system.s GetMovingItem +080d12e8 pokemon_storage_system.s sub_80D12E8 +080d1324 pokemon_storage_system.s sub_80D1324 +080d1370 pokemon_storage_system.s sub_80D1370 +080d13c4 pokemon_storage_system.s sub_80D13C4 +080d140c pokemon_storage_system.s sub_80D140C +080d1524 pokemon_storage_system.s sub_80D1524 +080d15d4 pokemon_storage_system.s sub_80D15D4 +080d1604 pokemon_storage_system.s sub_80D1604 +080d1740 pokemon_storage_system.s sub_80D1740 +080d1794 pokemon_storage_system.s GetItemIconPic +080d17a4 pokemon_storage_system.s GetItemIconPalette +080d1818 pokemon_storage_system.s sub_80D1818 +080d184c pokemon_storage_system.s sub_80D184C +080d18e4 pokemon_storage_system.s sub_80D18E4 +080d19b4 pokemon_storage_system.s sub_80D19B4 +080d1a48 pokemon_storage_system.s sub_80D1A48 +080d1a74 pokemon_storage_system.s sub_80D1A74 +080d1ad8 pokemon_storage_system.s sub_80D1AD8 +080d1b14 pokemon_storage_system.s sub_80D1B14 +080d1b94 pokemon_storage_system.s sub_80D1B94 +080d1c30 pokemon_storage_system.s sub_80D1C30 +080d1ccc pokemon_storage_system.s sub_80D1CCC +080d1d04 pokemon_storage_system.s nullsub_pss +080d1d08 pokemon_storage_system.s nullsub_98 +080d1d0c pokemon_storage_system.s StorageGetCurrentBox +080d1d18 pokemon_storage_system.s SetCurrentBox +080d1d30 pokemon_storage_system.s GetBoxMonDataAt +080d1d74 pokemon_storage_system.s SetBoxMonDataAt +080d1db8 pokemon_storage_system.s GetCurrentBoxMonData +080d1dd8 pokemon_storage_system.s SetCurrentBoxMonData +080d1dfc pokemon_storage_system.s GetBoxMonNickAt +080d1e44 pokemon_storage_system.s GetBoxMonLevelAt +080d1e90 pokemon_storage_system.s SetBoxMonNickAt +080d1ed0 pokemon_storage_system.s GetAndCopyBoxMonDataAt +080d1f18 pokemon_storage_system.s SetBoxMonAt +080d1f58 pokemon_storage_system.s CopyBoxMonAt +080d1f98 pokemon_storage_system.s CreateBoxMonAt +080d2018 pokemon_storage_system.s ZeroBoxMonAt +080d2054 pokemon_storage_system.s BoxMonAtToMon +080d2094 pokemon_storage_system.s GetBoxedMonPtr +080d20d0 pokemon_storage_system.s GetBoxNamePtr +080d20f8 pokemon_storage_system.s GetBoxWallpaper +080d2120 pokemon_storage_system.s SetBoxWallpaper +080d214c pokemon_storage_system.s sub_80D214C +080d2218 pokemon_storage_system.s CheckFreePokemonStorageSpace +080d2270 pokemon_storage_system.s CheckBoxMonSanityAt +080d22d0 pokemon_storage_system.s CountStorageNonEggMons +080d233c pokemon_storage_system.s CountAllStorageMons +080d23a8 pokemon_storage_system.s AnyStorageMonWithMove +080d242c pokemon_storage_system.s ResetWaldaWallpaper +080d2480 pokemon_storage_system.s SetWaldaWallpaperLockedOrUnlocked +080d2494 pokemon_storage_system.s IsWaldaWallpaperUnlocked +080d24a8 pokemon_storage_system.s GetWaldaWallpaperPatternId +080d24bc pokemon_storage_system.s SetWaldaWallpaperPatternId +080d24dc pokemon_storage_system.s GetWaldaWallpaperIconId +080d24f0 pokemon_storage_system.s SetWaldaWallpaperIconId +080d2510 pokemon_storage_system.s GetWaldaWallpaperColorsPtr +080d2524 pokemon_storage_system.s SetWaldaWallpaperColors +080d2548 pokemon_storage_system.s GetWaldaPhrasePtr +080d255c pokemon_storage_system.s SetWaldaPhrase +080d2578 pokemon_storage_system.s IsWaldaPhraseEmpty +080d259c pokemon_storage_system.s sub_80D259C +080d25f0 pokemon_storage_system.s sub_80D25F0 +080d2604 pokemon_storage_system.s sub_80D2604 +080d2644 pokemon_storage_system.s sub_80D2644 +080d2740 pokemon_storage_system.s sub_80D2740 +080d2770 pokemon_storage_system.s sub_80D2770 +080d27ac pokemon_storage_system.s sub_80D27AC +080d27f4 pokemon_storage_system.s sub_80D27F4 +080d2918 pokemon_storage_system.s sub_80D2918 +080d2960 pokemon_storage_system.s sub_80D2960 +080d29f8 pokemon_storage_system.s sub_80D29F8 +080d2a90 pokemon_storage_system.s sub_80D2A90 +080d2aa4 pokemon_storage_system.s sub_80D2AA4 +080d2aec pokemon_storage_system.s sub_80D2AEC +080d2b88 pokemon_storage_system.s sub_80D2B88 +080d2bc0 pokemon_storage_system.s sub_80D2BC0 +080d2c1c pokemon_storage_system.s sub_80D2C1C +080d2cc4 pokemon_icon.s CreateMonIcon +080d2d78 pokemon_icon.s sub_80D2D78 +080d2e08 pokemon_icon.s GetIconSpecies +080d2e48 pokemon_icon.s GetUnownLetterByPersonality +080d2e84 pokemon_icon.s sub_80D2E84 +080d2edc pokemon_icon.s GetMonIconPtr +080d2ef8 pokemon_icon.s sub_80D2EF8 +080d2f04 pokemon_icon.s LoadMonIconPalettes +080d2f28 pokemon_icon.s SafeLoadMonIconPalette +080d2f68 pokemon_icon.s LoadMonIconPalette +080d2f9c pokemon_icon.s FreeMonIconPalettes +080d2fc0 pokemon_icon.s SafeFreeMonIconPalette +080d2ff0 pokemon_icon.s FreeMonIconPalette +080d3014 pokemon_icon.s sub_80D3014 +080d3020 pokemon_icon.s GetMonIconTiles +080d304c pokemon_icon.s sub_80D304C +080d3080 pokemon_icon.s GetValidMonIconPalIndex +080d30a0 pokemon_icon.s GetMonIconPaletteIndexFromSpecies +080d30b0 pokemon_icon.s GetValidMonIconPalettePtr +080d30dc pokemon_icon.s UpdateMonIconFrame +080d31b4 pokemon_icon.s CreateMonIconSprite +080d328c pokemon_icon.s sub_80D328C +080d32c8 pokemon_icon.s sub_80D32C8 +080d32e8 script_movement.s ScriptMovement_StartObjectMovementScript +080d3340 script_movement.s ScriptMovement_IsObjectMovementFinished +080d338c script_movement.s sub_80D338C +080d33ac script_movement.s sub_80D33AC +080d33f4 script_movement.s sub_80D33F4 +080d3408 script_movement.s sub_80D3408 +080d3474 script_movement.s sub_80D3474 +080d34b0 script_movement.s sub_80D34B0 +080d34e4 script_movement.s sub_80D34E4 +080d3508 script_movement.s sub_80D3508 +080d352c script_movement.s sub_80D352C +080d355c script_movement.s sub_80D355C +080d3584 script_movement.s sub_80D3584 +080d35bc script_movement.s npc_obj_offscreen_culling_and_flag_update +080d35cc script_movement.s sub_80D35CC +080d35dc script_movement.s sub_80D35DC +080d361c script_movement.s UnfreezeObjects +080d3660 script_movement.s sub_80D3660 +080d36a4 script_movement.s sub_80A2490 +080d3718 fldeff_cut.s SetUpFieldMove_Cut +080d3a50 fldeff_cut.s FieldCallback_CutGrass +080d3a6c fldeff_cut.s FldEff_UseCutOnGrass +080d3a9c fldeff_cut.s FieldCallback_CutTree +080d3abc fldeff_cut.s FldEff_UseCutOnTree +080d3aec fldeff_cut.s StartCutGrassFieldEffect +080d3b00 fldeff_cut.s FldEff_CutGrass +080d3c10 fldeff_cut.s SetCutGrassMetatile +080d3d08 fldeff_cut.s GetLongGrassCaseAt +080d3d5c fldeff_cut.s SetCutGrassMetatiles +080d3ef4 fldeff_cut.s HandleLongGrassOnHyper +080d4160 fldeff_cut.s CutGrassSpriteCallback1 +080d4174 fldeff_cut.s CutGrassSpriteCallback2 +080d41d0 fldeff_cut.s CutGrassSpriteCallbackEnd +080d423c fldeff_cut.s FixLongGrassMetatilesWindowTop +080d42b8 fldeff_cut.s FixLongGrassMetatilesWindowBottom +080d4354 fldeff_cut.s StartCutTreeFieldEffect +080d436c mail_data.s ClearMailData +080d439c mail_data.s ClearMailStruct +080d43f0 mail_data.s MonHasMail +080d4420 mail_data.s GiveMailToMon +080d45c8 mail_data.s SpeciesToMailSpecies +080d45e8 mail_data.s MailSpeciesToSpecies +080d460c mail_data.s GiveMailToMon2 +080d467c mail_data.s DummyMailFunc +080d4680 mail_data.s TakeMailFromMon +080d46e0 mail_data.s ClearMailItemId +080d4700 mail_data.s TakeMailFromMon2 +080d47bc mail_data.s ItemIsMail +080d47d4 map_name_popup.s sub_80D47D4 +080d47e4 map_name_popup.s ShowMapNamePopup +080d487c map_name_popup.s Task_MapNamePopUpWindow +080d4974 map_name_popup.s HideMapNamePopUpWindow +080d49b0 map_name_popup.s ShowMapNamePopUpWindow +080d4a78 map_name_popup.s sub_80D4A78 +080d4be0 map_name_popup.s LoadMapNamePopUpWindowBg +080d4ca8 item_menu_icons.s RemoveBagSprite +080d4d00 item_menu_icons.s AddBagVisualSprite +080d4d38 item_menu_icons.s SetBagVisualPocketId +080d4d94 item_menu_icons.s SpriteCB_BagVisualSwitchingPockets +080d4dc4 item_menu_icons.s ShakeBagVisual +080d4e0c item_menu_icons.s SpriteCB_ShakeBagVisual +080d4e34 item_menu_icons.s AddSwitchPocketRotatingBallSprite +080d4e8c item_menu_icons.s UpdateSwitchPocketRotatingBallCoords +080d4eb0 item_menu_icons.s SpriteCB_SwitchPocketRotatingBallInit +080d4f14 item_menu_icons.s SpriteCB_SwitchPocketRotatingBallContinue +080d4f38 item_menu_icons.s AddBagItemIconSprite +080d4f98 item_menu_icons.s RemoveBagItemIconSprite +080d4fac item_menu_icons.s sub_80D4FAC +080d4fc8 item_menu_icons.s sub_80D4FC8 +080d4fec item_menu_icons.s sub_80D4FEC +080d5018 item_menu_icons.s sub_80D5018 +080d5070 item_menu_icons.s LoadBerryGfx +080d50d4 item_menu_icons.s CreateBerryTagSprite +080d510c item_menu_icons.s FreeBerryTagSpritePalette +080d511c item_menu_icons.s LoadSpinningBerryPicGfx +080d518c item_menu_icons.s CreateBerryFlavorCircleSprite +080d51ac battle_anim_mon_movement.s AnimTask_ShakeMon +080d5220 battle_anim_mon_movement.s AnimTask_ShakeMonStep +080d52d0 battle_anim_mon_movement.s AnimTask_ShakeMon2 +080d53bc battle_anim_mon_movement.s AnimTask_ShakeMon2Step +080d5484 battle_anim_mon_movement.s AnimTask_ShakeMonInPlace +080d5508 battle_anim_mon_movement.s AnimTask_ShakeMonInPlaceStep +080d5644 battle_anim_mon_movement.s AnimTask_ShakeAndSinkMon +080d56a4 battle_anim_mon_movement.s AnimTask_ShakeAndSinkMonStep +080d5738 battle_anim_mon_movement.s AnimTask_TranslateMonElliptical +080d57b8 battle_anim_mon_movement.s sub_80D57B8 +080d5830 battle_anim_mon_movement.s AnimTask_TranslateMonEllipticalRespectSide +080d5860 battle_anim_mon_movement.s DoHorizontalLunge +080d58d4 battle_anim_mon_movement.s ReverseHorizontalLungeDirection +080d58f8 battle_anim_mon_movement.s DoVerticalDip +080d5944 battle_anim_mon_movement.s ReverseVerticalDipDirection +080d5968 battle_anim_mon_movement.s SlideMonToOriginalPos +080d5a24 battle_anim_mon_movement.s SlideMonToOriginalPosStep +080d5a94 battle_anim_mon_movement.s SlideMonToOffset +080d5b48 battle_anim_mon_movement.s sub_80D5B48 +080d5c20 battle_anim_mon_movement.s sub_80D5C20 +080d5c50 battle_anim_mon_movement.s AnimTask_WindUpLunge +080d5ce4 battle_anim_mon_movement.s AnimTask_WindUpLungePart1 +080d5d48 battle_anim_mon_movement.s AnimTask_WindUpLungePart2 +080d5db0 battle_anim_mon_movement.s sub_80D5DB0 +080d5e6c battle_anim_mon_movement.s sub_80A8B3C +080d5eb8 battle_anim_mon_movement.s AnimTask_SwayMon +080d5f3c battle_anim_mon_movement.s AnimTask_SwayMonStep +080d6064 battle_anim_mon_movement.s AnimTask_ScaleMonAndRestore +080d60bc battle_anim_mon_movement.s AnimTask_ScaleMonAndRestoreStep +080d6134 battle_anim_mon_movement.s sub_80D6134 +080d622c battle_anim_mon_movement.s sub_80D622C +080d6308 battle_anim_mon_movement.s sub_80D6308 +080d6388 battle_anim_mon_movement.s sub_80D6388 +080d646c battle_anim_mon_movement.s sub_80D646C +080d6554 item.s GetBagItemQuantity +080d656c item.s SetBagItemQuantity +080d6584 item.s GetPCItemQuantity +080d6588 item.s SetPCItemQuantity +080d658c item.s ApplyNewEncryptionKeyToBagItems +080d65e4 item.s ApplyNewEncryptionKeyToBagItems_ +080d65f0 item.s SetBagItemsPointers +080d6644 item.s CopyItemName +080d6660 item.s CopyItemNameHandlePlural +080d66c4 item.s GetBerryCountString +080d66ec item.s IsBagPocketNonEmpty +080d6724 item.s CheckBagHasItem +080d67c4 item.s HasAtLeastOneBerry +080d6800 item.s CheckBagHasSpace +080d6928 item.s AddBagItem +080d6aa4 item.s RemoveBagItem +080d6c68 item.s GetPocketByItemId +080d6c7c item.s ClearItemSlots +080d6cac item.s FindFreePCItemSlot +080d6ce4 item.s CountUsedPCItemSlots +080d6d1c item.s CheckPCHasItem +080d6d70 item.s AddPCItem +080d6e48 item.s RemovePCItem +080d6e84 item.s CompactPCItems +080d6edc item.s SwapRegisteredBike +080d6f14 item.s BagGetItemIdByPocketPosition +080d6f30 item.s BagGetQuantityByPocketPosition +080d6f58 item.s SwapItemSlots +080d6f64 item.s CompactItemsInBagPocket +080d6fb4 item.s SortBerriesOrTMHMs +080d702c item.s MoveItemSlotInList +080d7094 item.s ClearBag +080d70bc item.s CountTotalItemQuantityInBag +080d710c item.s CheckPyramidBagHasItem +080d7184 item.s CheckPyramidBagHasSpace +080d7204 item.s AddPyramidBagItem +080d7334 item.s RemovePyramidBagItem +080d745c item.s SanitizeItemId +080d7474 item.s ItemId_GetName +080d7494 item.s ItemId_GetId +080d74b8 item.s ItemId_GetPrice +080d74dc item.s ItemId_GetHoldEffect +080d7500 item.s ItemId_GetHoldEffectParam +080d7524 item.s ItemId_GetDescription +080d7548 item.s ItemId_GetImportance +080d756c item.s ItemId_GetUnknownValue +080d7590 item.s ItemId_GetPocket +080d75b4 item.s ItemId_GetType +080d75d8 item.s ItemId_GetFieldFunc +080d75fc item.s ItemId_GetBattleUsage +080d7620 item.s ItemId_GetBattleFunc +080d7644 item.s ItemId_GetSecondaryId +080d7668 contest.s TaskDummy1 +080d766c contest.s ResetLinkContestBoolean +080d7678 contest.s SetupContestGpuRegs +080d7724 contest.s LoadContestBgAfterMoveAnim +080d779c contest.s InitContestInfoBgs +080d77e4 contest.s InitContestWindows +080d782c contest.s sub_80D782C +080d787c contest.s InitContestResources +080d7988 contest.s AllocContestResources +080d7a5c contest.s FreeContestResources +080d7b24 contest.s CB2_StartContest +080d7c7c contest.s sub_80D7C7C +080d7cb4 contest.s sub_80D7CB4 +080d7dac contest.s sub_80D7DAC +080d7dc8 contest.s sub_80D7DC8 +080d7de8 contest.s sub_80D7DE8 +080d7e44 contest.s SetupContestGraphics +080d80c8 contest.s sub_80D80C8 +080d8108 contest.s sub_80D8108 +080d823c contest.s CB2_ContestMain +080d827c contest.s vblank_cb_battle +080d833c contest.s sub_80D833C +080d8424 contest.s sub_80D8424 +080d8490 contest.s sub_80D8490 +080d8610 contest.s sub_80D8610 +080d880c contest.s sub_80D880C +080d883c contest.s sub_80D883C +080d8894 contest.s sub_80D8894 +080d892c contest.s sub_80D892C +080d895c contest.s sub_80D895C +080d8a04 contest.s sub_80D8A04 +080d8a50 contest.s sub_80D8A50 +080d8a88 contest.s sub_80D8A88 +080d8b38 contest.s sub_80D8B38 +080da110 contest.s sub_80DA110 +080da134 contest.s sub_80DA134 +080da164 contest.s sub_80DA164 +080da198 contest.s sub_80DA198 +080da25c contest.s sub_80DA25C +080da28c contest.s sub_80DA28C +080da31c contest.s sub_80DA31C +080da348 contest.s sub_80DA348 +080da38c contest.s sub_80DA38C +080da3cc contest.s sub_80DA3CC +080da464 contest.s sub_80DA464 +080da49c contest.s sub_80DA49C +080da4cc contest.s sub_80DA4CC +080da4f4 contest.s sub_80DA4F4 +080da51c contest.s sub_80DA51C +080da5b4 contest.s sub_80DA5B4 +080da5e8 contest.s sub_80DA5E8 +080da6b4 contest.s sub_80DA6B4 +080da700 contest.s sub_80DA700 +080da740 contest.s sub_80DA740 +080da7a0 contest.s sub_80DA7A0 +080da7ec contest.s sub_80DA7EC +080da830 contest.s sub_80DA830 +080da874 contest.s sub_80DA874 +080da884 contest.s TryPutPlayerLast +080da8a4 contest.s sub_80DA8A4 +080da8c8 contest.s sub_80DA8C8 +080dab8c contest.s sub_80DAB8C +080dacbc contest.s sub_80DACBC +080dae0c contest.s sub_80DAE0C +080daea4 contest.s DrawContestantWindowText +080daed4 contest.s Contest_CopyStringWithColor +080daf04 contest.s PrintContestantTrainerName +080daf1c contest.s PrintContestantTrainerNameWithColor +080daf88 contest.s PrintContestantMonName +080dafa0 contest.s PrintContestantMonNameWithColor +080dafe0 contest.s sub_80DAFE0 +080db09c contest.s sub_80DB09C +080db0c4 contest.s sub_80DB0C4 +080db120 contest.s sub_80DB120 +080db174 contest.s sub_80DB174 +080db2a8 contest.s IsSpeciesNotUnown +080db2bc contest.s SwapMoveDescAndContestTilemaps +080db2ec contest.s sub_80DB2EC +080db4e0 contest.s sub_80DB4E0 +080db584 contest.s sub_80DB584 +080db5b0 contest.s sub_80DB5B0 +080db5b8 contest.s sub_80DB5B8 +080db69c contest.s sub_80DB69C +080db748 contest.s sub_80DB748 +080db798 contest.s sub_80DB798 +080db884 contest.s sub_80DB884 +080db89c contest.s ContestClearGeneralTextWindow +080db8b8 contest.s GetChosenMove +080db918 contest.s GetAllChosenMoves +080db944 contest.s RankContestants +080dba18 contest.s sub_80DBA18 +080dba68 contest.s ContestantCanUseTurn +080dbaa0 contest.s sub_80DBAA0 +080dbca8 contest.s Contest_IsMonsTurnDisabled +080dbce0 contest.s sub_80DBCE0 +080dbd18 contest.s sub_80DBD18 +080dbd34 contest.s sub_80DBD34 +080dbd4c contest.s DetermineFinalStandings +080dbed4 contest.s SaveLinkContestResults +080dbf30 contest.s sub_80DBF30 +080dbf68 contest.s ContestPrintLinkStandby +080dbf90 contest.s FillContestantWindowBgs +080dbfc8 contest.s sub_80DBFC8 +080dbffc contest.s sub_80DBFFC +080dc028 contest.s sub_80DC028 +080dc0f4 contest.s sub_80DC0F4 +080dc2bc contest.s sub_80DC2BC +080dc308 contest.s sub_80DC308 +080dc3ac contest.s sub_80DC3AC +080dc3c4 contest.s sub_80DC3C4 +080dc408 contest.s sub_80DC408 +080dc44c contest.s sub_80DC44C +080dc490 contest.s sub_80DC490 +080dc4f0 contest.s sub_80DC4F0 +080dc594 contest.s CreateApplauseMeterSprite +080dc5e8 contest.s sub_80DC5E8 +080dc630 contest.s sub_80DC630 +080dc674 contest.s sub_80DC674 +080dc6a4 contest.s sub_80DC6A4 +080dc728 contest.s sub_80DC728 +080dc7ec contest.s sub_80DC7EC +080dc81c contest.s sub_80DC81C +080dc864 contest.s sub_80DC864 +080dc87c contest.s sub_80DC87C +080dc8d0 contest.s sub_80DC8D0 +080dc9b4 contest.s sub_80DC9B4 +080dc9ec contest.s sub_80DC9EC +080dcb78 contest.s sub_80DCB78 +080dcbb4 contest.s sub_80DCBB4 +080dcbd0 contest.s sub_80DCBD0 +080dcbe8 contest.s sub_80DCBE8 +080dcc84 contest.s sub_80DCC84 +080dccd8 contest.s sub_80DCCD8 +080dcd08 contest.s ContestDebugTogglePointTotal +080dcd48 contest.s ContestDebugDoPrint +080dce58 contest.s SortContestants +080dd04c contest.s DrawContestantWindows +080dd080 contest.s sub_80DD080 +080dd3d4 contest.s SetContestantEffectStringID +080dd3f0 contest.s SetContestantEffectStringID2 +080dd40c contest.s SetStartledString +080dd45c contest.s sub_80DD45C +080dd560 contest.s MakeContestantNervous +080dd590 contest.s ApplyNextTurnOrder +080dd6dc contest.s sub_80DD6DC +080dd720 contest.s sub_80DD720 +080dd940 contest.s UpdateApplauseMeter +080dd9f0 contest.s Contest_GetMoveExcitement +080dda20 contest.s StartApplauseOverflowAnimation +080dda60 contest.s Task_ApplauseOverflowAnimation +080ddb0c contest.s StartMoveApplauseMeterOnscreen +080ddb6c contest.s Task_MoveApplauseMeterOnscreen +080ddbe8 contest.s TryMoveApplauseMeterOffscreen +080ddc4c contest.s Task_MoveApplauseMeterOffscreen +080ddcdc contest.s ShowAndUpdateApplauseMeter +080ddd20 contest.s Task_ShowAndUpdateApplauseMeter +080ddda8 contest.s HideApplauseMeterNoAnim +080ddde4 contest.s ShowApplauseMeterNoAnim +080dde0c contest.s sub_80DDE0C +080dde30 contest.s sub_80DDE30 +080dded0 contest.s sub_80DDED0 +080ddf80 contest.s sub_80DDF80 +080de008 contest.s sub_80DE008 +080de0f0 contest.s GetTurnOrderNumberGfx +080de12c contest.s sub_80DE12C +080de1e8 contest.s sub_80DE1E8 +080de224 contest.s sub_80DE224 +080de350 contest.s sub_80DE350 +080de424 contest.s sub_80DE424 +080de464 contest.s sub_80DE464 +080de4a8 contest.s sub_80DE4A8 +080de5c0 contest.s sub_80DE5C0 +080de5f4 contest.s sub_80DE5F4 +080de65c contest.s sub_80DE65C +080de69c contest.s sub_80DE69C +080de794 contest.s sub_80DE794 +080de834 contest.s SanitizeMove +080de84c contest.s SanitizeSpecies +080de864 contest.s sub_80DE864 +080de9b0 contest.s sub_80DE9B0 +080de9dc contest.s sub_80DE9DC +080dea20 contest.s sub_80DEA20 +080dea5c contest.s sub_80DEA5C +080deaa8 contest.s SelectContestMoveBankTarget +080deb70 contest.s Contest_PrintTextToBg0WindowStd +080debd0 contest.s Contest_PrintTextToBg0WindowAt +080dec30 contest.s Contest_StartTextPrinter +080decb8 contest.s ContestBG_FillBoxWithIncrementingTile +080ded10 contest.s ContestBG_FillBoxWithTile +080ded4c contest.s Contest_RunTextPrinters +080ded60 contest.s Contest_SetBgCopyFlags +080ded74 contest.s ResetContestLinkResults +080deda8 contest.s sub_80DEDA8 +080defa8 contest.s sub_80DEFA8 +080df040 contest.s ClearContestWinnerPicsInContestHall +080df080 contest.s sub_80DF080 +080df250 contest.s sub_80DF250 +080df4f8 contest.s sub_80DF4F8 +080df704 contest.s ContestDebugToggleBitfields +080df750 contest.s ContestDebugPrintBitStrings +080df940 contest.s sub_80DF940 +080df9d4 contest.s sub_80DF9D4 +080df9e0 contest.s sub_80DF9E0 +080dfa08 contest.s sub_80DFA08 +080dfa78 shop.s CreateShopMenu +080dfb4c shop.s SetShopMenuCallback +080dfb58 shop.s SetShopItemsForSale +080dfb88 shop.s Task_ShopMenu +080dfbd0 shop.s Task_HandleShopMenuBuy +080dfc0c shop.s Task_HandleShopMenuSell +080dfc48 shop.s CB2_ExitSellMenu +080dfc68 shop.s Task_HandleShopMenuQuit +080dfca4 shop.s Task_GoToBuyOrSellMenu +080dfce0 shop.s MapPostLoadHook_ReturnToShopMenu +080dfcf8 shop.s Task_ReturnToShopMenu +080dfd44 shop.s ShowShopMenuAfterExitingBuyOrSellMenu +080dfd64 shop.s CB2_BuyMenu +080dfd80 shop.s VBlankCB_BuyMenu +080dfd94 shop.s CB2_InitBuyMenu +080dfefc shop.s BuyMenuFreeMemory +080dff2c shop.s BuyMenuBuildListMenuTemplate +080e0000 shop.s BuyMenuSetListEntry +080e003c shop.s BuyMenuPrintItemDescriptionAndShowItemIcon +080e0114 shop.s BuyMenuPrintPriceInList +080e01c8 shop.s BuyMenuAddScrollIndicatorArrows +080e0224 shop.s BuyMenuRemoveScrollIndicatorArrows +080e0250 shop.s BuyMenuPrintCursor +080e0284 shop.s BuyMenuAddItemIcon +080e031c shop.s BuyMenuRemoveItemIcon +080e036c shop.s BuyMenuInitBgs +080e0424 shop.s BuyMenuDecompressBgGraphics +080e0468 shop.s BuyMenuInitWindows +080e04a4 shop.s BuyMenuPrint +080e04e8 shop.s BuyMenuDisplayMessage +080e0524 shop.s BuyMenuDrawGraphics +080e0570 shop.s BuyMenuDrawMapGraphics +080e0584 shop.s BuyMenuDrawMapBg +080e0670 shop.s BuyMenuDrawMapMetatile +080e0734 shop.s BuyMenuDrawMapMetatileLayer +080e075c shop.s BuyMenuCollectEventObjectData +080e08f0 shop.s BuyMenuDrawEventObjects +080e0a14 shop.s BuyMenuCheckIfEventObjectOverlapsMenuBg +080e0a40 shop.s BuyMenuCopyMenuBgToBg1TilemapBuffer +080e0a88 shop.s BuyMenuCheckForOverlapWithMenuBg +080e0ac8 shop.s Task_BuyMenu +080e0ca4 shop.s Task_BuyHowManyDialogueInit +080e0d88 shop.s Task_BuyHowManyDialogueHandleInput +080e0eac shop.s BuyMenuConfirmPurchase +080e0edc shop.s BuyMenuTryMakePurchase +080e0f88 shop.s BuyMenuSubtractMoney +080e100c shop.s Task_ReturnToItemListAfterItemPurchase +080e1078 shop.s Task_ReturnToItemListAfterDecorationPurchase +080e10a0 shop.s BuyMenuReturnToItemList +080e10ec shop.s BuyMenuPrintItemQuantityAndPrice +080e1168 shop.s ExitBuyMenu +080e11b0 shop.s Task_ExitBuyMenu +080e11e4 shop.s ClearItemPurchases +080e1204 shop.s RecordItemPurchase +080e1284 shop.s CreatePokemartMenu +080e12a8 shop.s CreateDecorationShop1Menu +080e12c8 shop.s CreateDecorationShop2Menu +080e12e8 fldeff_escalator.s sub_80E12E8 +080e1444 fldeff_escalator.s sub_80E1444 +080e150c fldeff_escalator.s sub_80E150C +080e1558 fldeff_escalator.s sub_80E1558 +080e1570 fldeff_escalator.s sub_80E1570 +080e1584 fldeff_escalator.s sub_80E1584 +080e15b8 berry.s ClearEnigmaBerries +080e15e4 berry.s SetEnigmaBerry +080e1610 berry.s GetEnigmaBerryChecksum +080e162c berry.s IsEnigmaBerryValid +080e167c berry.s GetBerryInfo +080e16c0 berry.s GetBerryTreeInfo +080e16dc berry.s EventObjectInteractionWaterBerryTree +080e1738 berry.s IsPlayerFacingEmptyBerryTreePatch +080e1770 berry.s TryToWaterBerryTree +080e1794 berry.s ClearBerryTrees +080e17c8 berry.s BerryTreeGrow +080e1870 berry.s BerryTreeTimeUpdate +080e191c berry.s PlantBerryTree +080e1984 berry.s RemoveBerryTree +080e19ac berry.s GetBerryTypeByBerryTreeId +080e19c8 berry.s GetStageByBerryTreeId +080e19e8 berry.s ItemIdToBerryType +080e1a10 berry.s BerryTypeToItemId +080e1a38 berry.s GetBerryNameByBerryType +080e1a58 berry.s GetBerryCountStringByBerryType +080e1a78 berry.s ResetBerryTreeSparkleFlag +080e1a90 berry.s BerryTreeGetNumStagesWatered +080e1acc berry.s GetNumStagesWateredByBerryTreeId +080e1ae4 berry.s CalcBerryYieldInternal +080e1b38 berry.s CalcBerryYield +080e1b64 berry.s GetBerryCountByBerryTreeId +080e1b7c berry.s GetStageDurationByBerryType +080e1b94 berry.s EventObjectInteractionGetBerryTreeData +080e1c2c berry.s EventObjectInteractionGetBerryName +080e1c54 berry.s EventObjectInteractionGetBerryCountString +080e1c94 berry.s Bag_ChooseBerry +080e1ca4 berry.s EventObjectInteractionPlantBerryTree +080e1cdc berry.s EventObjectInteractionPickBerryTree +080e1d28 berry.s EventObjectInteractionRemoveBerryTree +080e1d5c berry.s PlayerHasBerries +080e1d6c berry.s ResetBerryTreeSparkleFlags +080e1e08 script_menu.s ScriptMenu_Multichoice +080e1e58 script_menu.s ScriptMenu_MultichoiceWithDefault +080e1eb8 script_menu.s sub_80E1EB8 +080e1efc script_menu.s DrawMultichoiceMenu +080e1fbc script_menu.s sub_80E1FBC +080e2058 script_menu.s Task_HandleMultichoiceInput +080e2108 script_menu.s ScriptMenu_YesNo +080e2140 script_menu.s IsScriptActive +080e215c script_menu.s Task_HandleYesNoInput +080e21d0 script_menu.s ScriptMenu_MultichoiceGrid +080e2308 script_menu.s Task_HandleMultichoiceGridInput +080e236c script_menu.s ScrSpecial_CreatePCMenu +080e239c script_menu.s CreatePCMenu +080e2514 script_menu.s ScriptMenu_DisplayPCStartupPrompt +080e2548 script_menu.s sub_80E2548 +080e2578 script_menu.s sub_80E2578 +080e2878 script_menu.s sub_80E2878 +080e2898 script_menu.s Task_PokemonPicWindow +080e2900 script_menu.s ScriptMenu_ShowPokemonPic +080e29c4 script_menu.s ScriptMenu_GetPicboxWaitFunc +080e29fc script_menu.s IsPicboxClosed +080e2a1c script_menu.s CreateWindowFromRect +080e2a78 script_menu.s ClearToTransparentAndRemoveWindow +080e2a94 script_menu.s sub_80E2A94 +080e2b7c script_menu.s sp106_CreateStartMenu +080e2bac script_menu.s CreateStartMenu +080e2cc4 script_menu.s sub_80E2CC4 +080e2d10 script_menu.s display_text_and_get_width_internal +080e2d2c script_menu.s display_text_and_get_width +080e2d40 script_menu.s convert_pixel_width_to_tile_width +080e2d5c script_menu.s sub_80E2D5C +080e2d78 naming_screen.s DoNamingScreen +080e2e04 naming_screen.s C2_NamingScreen +080e2ea8 naming_screen.s NamingScreen_Init +080e2fa4 naming_screen.s sub_80E2FA4 +080e2fe4 naming_screen.s NamingScreen_InitBGs +080e3194 naming_screen.s sub_80E3194 +080e31b0 naming_screen.s sub_80E31B0 +080e3244 naming_screen.s sub_80E3244 +080e3254 naming_screen.s sub_80E3254 +080e3274 naming_screen.s sub_80E3274 +080e3294 naming_screen.s MainState_BeginFadeIn +080e335c naming_screen.s MainState_WaitFadeIn +080e3398 naming_screen.s MainState_HandleInput +080e33a8 naming_screen.s MainState_MoveToOKButton +080e33d8 naming_screen.s MainState_6 +080e3448 naming_screen.s MainState_BeginFadeInOut +080e347c naming_screen.s MainState_WaitFadeOutAndExit +080e34e4 naming_screen.s DisplaySentToPCMessage +080e3604 naming_screen.s sub_80E3604 +080e3640 naming_screen.s MainState_StartPageSwap +080e3680 naming_screen.s MainState_WaitPageSwap +080e373c naming_screen.s StartPageSwapAnim +080e375c naming_screen.s Task_HandlePageSwapAnim +080e3794 naming_screen.s IsPageSwapAnimNotInProgress +080e37b4 naming_screen.s PageSwapAnimState_Init +080e37dc naming_screen.s PageSwapAnimState_1 +080e3870 naming_screen.s PageSwapAnimState_2 +080e3904 naming_screen.s PageSwapAnimState_Done +080e3920 naming_screen.s sub_80E3920 +080e3948 naming_screen.s sub_80E3948 +080e39bc naming_screen.s Task_80E39BC +080e3a74 naming_screen.s sub_80E3A74 +080e3ae8 naming_screen.s sub_80E3AE8 +080e3b10 naming_screen.s sub_80E3B10 +080e3b30 naming_screen.s sub_80E3B30 +080e3c20 naming_screen.s sub_80E3C20 +080e3c6c naming_screen.s sub_80E3C6C +080e3cc8 naming_screen.s sub_80E3CC8 +080e3ce4 naming_screen.s CursorInit +080e3d78 naming_screen.s SetCursorPos +080e3dfc naming_screen.s GetCursorPos +080e3e28 naming_screen.s MoveCursorToOKButton +080e3e3c naming_screen.s sub_80E3E3C +080e3e94 naming_screen.s sub_80E3E94 +080e3ed8 naming_screen.s sub_80E3ED8 +080e3f04 naming_screen.s IsCursorAnimFinished +080e3f30 naming_screen.s GetKeyRoleAtCursorPos +080e3f70 naming_screen.s GetCurrentPageColumnCount +080e3f8c naming_screen.s CreatePageSwitcherSprites +080e4050 naming_screen.s sub_80E4050 +080e4084 naming_screen.s sub_80E4084 +080e40ac naming_screen.s sub_80E40AC +080e4100 naming_screen.s sub_80E4100 +080e4104 naming_screen.s sub_80E4104 +080e4178 naming_screen.s sub_80E4178 +080e41b8 naming_screen.s sub_80E41B8 +080e4218 naming_screen.s CreateBackOkSprites +080e4290 naming_screen.s CreateUnderscoreSprites +080e4354 naming_screen.s CreateInputTargetIcon +080e4380 naming_screen.s TaskDummy2 +080e4384 naming_screen.s NamingScreen_CreatePlayerIcon +080e43e0 naming_screen.s NamingScreen_CreatePCIcon +080e4420 naming_screen.s NamingScreen_CreateMonIcon +080e447c naming_screen.s NamingScreen_CreateWandaDadIcon +080e44bc naming_screen.s HandleKeyboardEvent +080e450c naming_screen.s KeyboardKeyHandler_Character +080e4558 naming_screen.s KeyboardKeyHandler_Page +080e4580 naming_screen.s KeyboardKeyHandler_Backspace +080e45a4 naming_screen.s KeyboardKeyHandler_OK +080e45e0 naming_screen.s sub_80E45E0 +080e45f8 naming_screen.s InputInit +080e460c naming_screen.s GetInputEvent +080e4630 naming_screen.s SetInputState +080e468c naming_screen.s InputState_Disabled +080e4694 naming_screen.s InputState_Enabled +080e46e8 naming_screen.s InputState_2 +080e46f0 naming_screen.s HandleDpadMovement +080e4894 naming_screen.s sub_80E4894 +080e48e8 naming_screen.s sub_80E48E8 +080e4964 naming_screen.s sub_80E4964 +080e498c naming_screen.s sub_80E498C +080e49b8 naming_screen.s TaskDummy3 +080e49bc naming_screen.s sub_80E49BC +080e4a2c naming_screen.s GetCharAtKeyboardPos +080e4a60 naming_screen.s GetTextCaretPosition +080e4ab4 naming_screen.s GetPreviousTextCaretPosition +080e4af8 naming_screen.s DeleteTextCharacter +080e4b54 naming_screen.s sub_80E4B54 +080e4bbc naming_screen.s AddTextCharacter +080e4be4 naming_screen.s sub_80E4BE4 +080e4c54 naming_screen.s choose_name_or_words_screen_load_bg_tile_patterns +080e4cb8 naming_screen.s sub_80E4CB8 +080e4cc8 naming_screen.s choose_name_or_words_screen_apply_bg_pals +080e4cf8 naming_screen.s sub_80E4CF8 +080e4d0c naming_screen.s nullsub_10 +080e4d10 naming_screen.s sub_80E4D10 +080e4de4 naming_screen.s sub_80E4DE4 +080e4e5c naming_screen.s sub_80E4E5C +080e4ef0 naming_screen.s sub_80E4EF0 +080e4f58 naming_screen.s sub_80E4F58 +080e4f70 naming_screen.s NamingScreen_TurnOffScreen +080e4f84 naming_screen.s NamingScreen_InitDisplayMode +080e4f94 naming_screen.s VBlankCB_NamingScreen +080e501c naming_screen.s sub_80E501C +080e503c naming_screen.s sub_80E503C +080e5074 naming_screen.s sub_80E5074 +080e509c naming_screen.s sub_80E509C +080e50c4 naming_screen.s sub_80E50C4 +080e50ec naming_screen.s sub_80E50EC +080e5114 money.s GetMoney +080e5128 money.s SetMoney +080e513c money.s IsEnoughMoney +080e5154 money.s AddMoney +080e518c money.s RemoveMoney +080e51b0 money.s IsEnoughForCostInVar0x8005 +080e51d4 money.s SubtractMoneyFromVar0x8005 +080e51f4 money.s PrintMoneyAmountInMoneyBox +080e5214 money.s PrintMoneyAmount +080e5298 money.s PrintMoneyAmountInMoneyBoxWithBorder +080e52d4 money.s ChangeAmountInMoneyBox +080e52ec money.s DrawMoneyBox +080e5384 money.s HideMoneyBox +080e53ac money.s AddMoneyLabelObject +080e53f4 money.s RemoveMoneyLabelObject +080e5414 contest_effect.s AreMovesContestCombo +080e547c contest_effect.s ContestEffect_HighlyAppealing +080e5480 contest_effect.s ContestEffect_UserMoreEasilyStartled +080e54b0 contest_effect.s ContestEffect_GreatAppealButNoMoreMoves +080e54e0 contest_effect.s ContestEffect_RepetitionNotBoring +080e5534 contest_effect.s ContestEffect_AvoidStartleOnce +080e5560 contest_effect.s ContestEffect_AvoidStartle +080e5590 contest_effect.s ContestEffect_AvoidStartleSlightly +080e55bc contest_effect.s ContestEffect_UserLessEasilyStartled +080e55ec contest_effect.s ContestEffect_StartleFrontMon +080e5664 contest_effect.s ContestEffect_StartlePrevMons +080e56e0 contest_effect.s ContestEffect_StartlePrevMon2 +080e5718 contest_effect.s ContestEffect_StartlePrevMons2 +080e57cc contest_effect.s ContestEffect_ShiftJudgeAttention +080e588c contest_effect.s ContestEffect_StartleMonWithJudgesAttention +080e5938 contest_effect.s ContestEffect_JamsOthersButMissOneTurn +080e5970 contest_effect.s ContestEffect_StartleMonsSameTypeAppeal +080e59b0 contest_effect.s ContestEffect_StartleMonsCoolAppeal +080e59d0 contest_effect.s ContestEffect_StartleMonsBeautyAppeal +080e59f0 contest_effect.s ContestEffect_StartleMonsCuteAppeal +080e5a10 contest_effect.s ContestEffect_StartleMonsSmartAppeal +080e5a30 contest_effect.s ContestEffect_StartleMonsToughAppeal +080e5a50 contest_effect.s ContestEffect_MakeFollowingMonNervous +080e5ad4 contest_effect.s ContestEffect_MakeFollowingMonsNervous +080e5cd4 contest_effect.s ContestEffect_WorsenConditionOfPrevMons +080e5d7c contest_effect.s ContestEffect_BadlyStartlesMonsInGoodCondition +080e5e04 contest_effect.s ContestEffect_BetterIfFirst +080e5e5c contest_effect.s ContestEffect_BetterIfLast +080e5eb4 contest_effect.s ContestEffect_AppealAsGoodAsPrevOnes +080e5f64 contest_effect.s ContestEffect_AppealAsGoodAsPrevOne +080e5fe4 contest_effect.s ContestEffect_BetterWhenLater +080e6068 contest_effect.s ContestEffect_QualityDependsOnTiming +080e611c contest_effect.s ContestEffect_BetterIfSameType +080e620c contest_effect.s ContestEffect_BetterIfDiffType +080e62b8 contest_effect.s ContestEffect_AffectedByPrevAppeal +080e6334 contest_effect.s ContestEffect_ImproveConditionPreventNervousness +080e6398 contest_effect.s ContestEffect_BetterWithGoodCondition +080e63e8 contest_effect.s ContestEffect_NextAppealEarlier +080e6520 contest_effect.s ContestEffect_NextAppealLater +080e6664 contest_effect.s ContestEffect_MakeScramblingTurnOrderEasier +080e6668 contest_effect.s ContestEffect_ScrambleNextTurnOrder +080e6778 contest_effect.s ContestEffect_ExciteAudienceInAnyContest +080e67bc contest_effect.s ContestEffect_BadlyStartleMonsWithGoodAppeals +080e6868 contest_effect.s ContestEffect_BetterWhenAudienceExcited +080e68ec contest_effect.s ContestEffect_DontExciteAudience +080e6934 contest_effect.s JamByMoveCategory +080e69c8 contest_effect.s CanUnnerveContestant +080e6a2c contest_effect.s WasAtLeastOneOpponentJammed +080e6b3c contest_effect.s JamContestant +080e6b70 contest_effect.s RoundTowardsZero +080e6bb4 contest_effect.s RoundUp +080e6be8 record_mixing.s RecordMixingPlayerSpotTriggered +080e6bf8 record_mixing.s SetSrcLookupPointers +080e6ca0 record_mixing.s PrepareUnknownExchangePacket +080e6d54 record_mixing.s PrepareExchangePacketForRubySapphire +080e6e24 record_mixing.s PrepareExchangePacket +080e6f60 record_mixing.s ReceiveExchangePacket +080e70f4 record_mixing.s PrintTextOnRecordMixing +080e7128 record_mixing.s Task_RecordMixing_SoundEffect +080e715c record_mixing.s Task_RecordMixing_Main +080e7324 record_mixing.s Task_MixingRecordsRecv +080e756c record_mixing.s Task_SendPacket +080e7630 record_mixing.s Task_CopyReceiveBuffer +080e776c record_mixing.s sub_80E776C +080e77a0 record_mixing.s Task_ReceivePacket +080e77d4 record_mixing.s Task_SendPacket_SwitchToReceive +080e77fc record_mixing.s LoadPtrFromTaskData +080e7808 record_mixing.s StorePtrInTaskData +080e7810 record_mixing.s GetMultiplayerId_ +080e7820 record_mixing.s GetPlayerRecvBuffer +080e7830 record_mixing.s ShufflePlayerIndices +080e78c4 record_mixing.s ReceiveOldManData +080e7948 record_mixing.s ReceiveBattleTowerData +080e7a14 record_mixing.s ReceiveLilycoveLadyData +080e7a9c record_mixing.s sub_80E7A9C +080e7aa4 record_mixing.s sub_80E7AA4 +080e7b2c record_mixing.s sub_80E7B2C +080e7b54 record_mixing.s sub_80E7B54 +080e7b60 record_mixing.s ReceiveDaycareMailData +080e7f68 record_mixing.s ReceiveGiftItem +080e7ff8 record_mixing.s Task_DoRecordMixing +080e8110 record_mixing.s sub_80E8110 +080e8260 record_mixing.s GetPlayerHallRecords +080e841c record_mixing.s sub_80E841C +080e8468 record_mixing.s ReceiveApprenticeData +080e8578 record_mixing.s sub_80E8578 +080e8880 record_mixing.s sub_80E8880 +080e88cc record_mixing.s sub_80E88CC +080e8924 record_mixing.s sub_80E8924 +080e89ac record_mixing.s ReceiveRankingHallRecords +080e89f8 record_mixing.s sub_80E89F8 +080e8a54 record_mixing.s SanitizeDayCareMailForRuby +080e8abc record_mixing.s SanitizeRubyBattleTowerRecord +080e8ac0 record_mixing.s SanitizeEmeraldBattleTowerRecord +080e8af0 secret_base.s ClearSecretBase +080e8b28 secret_base.s ClearSecretBases +080e8b58 secret_base.s SetCurSecretBaseId +080e8b6c secret_base.s TrySetCurSecretBaseIndex +080e8bc8 secret_base.s CheckPlayerHasSecretBase +080e8bf8 secret_base.s GetSecretBaseTypeInFrontOfPlayer_ +080e8c98 secret_base.s GetSecretBaseTypeInFrontOfPlayer +080e8cb0 secret_base.s FindMetatileIdMapCoords +080e8d4c secret_base.s ToggleSecretBaseEntranceMetatile +080e8df4 secret_base.s GetNameLength +080e8e18 secret_base.s SetPlayerSecretBase +080e8ee0 secret_base.s SetOccupiedSecretBaseEntranceMetatiles +080e8f9c secret_base.s SetSecretBaseWarpDestination +080e8fd0 secret_base.s Task_EnterSecretBase +080e9068 secret_base.s EnterSecretBase +080e909c secret_base.s SecretBaseMapPopupEnabled +080e90c8 secret_base.s EnterNewlyCreatedSecretBase_WaitFadeIn +080e9108 secret_base.s EnterNewlyCreatedSecretBase_StartFadeIn +080e916c secret_base.s Task_EnterNewlyCreatedSecretBase +080e91f8 secret_base.s EnterNewlyCreatedSecretBase +080e9214 secret_base.s CurMapIsSecretBase +080e9238 secret_base.s InitSecretBaseAppearance +080e933c secret_base.s InitSecretBaseDecorationSprites +080e9578 secret_base.s HideSecretBaseDecorationSprites +080e95d4 secret_base.s SetSecretBaseOwnerGfxId +080e9608 secret_base.s SetCurSecretBaseIdFromPosition +080e9668 secret_base.s WarpIntoSecretBase +080e9680 secret_base.s TrySetCurSecretBase +080e96a4 secret_base.s Task_WarpOutOfSecretBase +080e9728 secret_base.s WarpOutOfSecretBase +080e9744 secret_base.s IsCurSecretBaseOwnedByAnotherPlayer +080e9780 secret_base.s GetSecretBaseName +080e97ec secret_base.s GetSecretBaseMapName +080e980c secret_base.s CopyCurSecretBaseOwnerName_StrVar1 +080e9878 secret_base.s IsSecretBaseRegistered +080e98ac secret_base.s GetAverageEVs +080e9914 secret_base.s SetPlayerSecretBaseParty +080e9a90 secret_base.s ClearAndLeaveSecretBase +080e9ac0 secret_base.s MoveOutOfSecretBase +080e9ad0 secret_base.s ClosePlayerSecretBaseEntrance +080e9b70 secret_base.s MoveOutOfSecretBaseFromOutside +080e9ba8 secret_base.s GetNumRegisteredSecretBases +080e9bdc secret_base.s GetCurSecretBaseRegistrationValidity +080e9c2c secret_base.s ToggleCurSecretBaseRegistry +080e9c74 secret_base.s ShowSecretBaseDecorationMenu +080e9c88 secret_base.s ShowSecretBaseRegistryMenu +080e9c9c secret_base.s Task_ShowSecretBaseRegistryMenu +080e9d2c secret_base.s BuildRegistryMenuItems +080e9dec secret_base.s RegistryMenu_OnCursorMove +080e9e00 secret_base.s FinalizeRegistryMenu +080e9e44 secret_base.s AddRegistryMenuScrollArrows +080e9e90 secret_base.s HandleRegistryMenuInput +080e9f20 secret_base.s ShowRegistryMenuActions +080e9fb0 secret_base.s HandleRegistryMenuActionsInput +080e9ffc secret_base.s ShowRegistryMenuDeleteConfirmation +080ea06c secret_base.s ShowRegistryMenuDeleteYesNo +080ea08c secret_base.s DeleteRegistry_Yes_Callback +080ea120 secret_base.s DeleteRegistry_Yes +080ea13c secret_base.s DeleteRegistry_No +080ea18c secret_base.s ReturnToMainRegistryMenu +080ea1d0 secret_base.s GoToSecretBasePCMainMenu +080ea20c secret_base.s GetSecretBaseOwnerType +080ea250 secret_base.s GetSecretBaseTrainerLoseText +080ea2e4 secret_base.s PrepSecretBaseBattleFlags +080ea30c secret_base.s sub_80EA30C +080ea354 secret_base.s GetSecretBaseOwnerInteractionState +080ea3e4 secret_base.s SecretBasePerStepCallback +080ea828 secret_base.s SetSecretBaseDataAndLanguage +080ea8d4 secret_base.s SecretBasesHaveSameTrainerId +080ea904 secret_base.s SecretBasesHaveSameTrainerName +080ea950 secret_base.s SecretBasesBelongToSamePlayer +080ea990 secret_base.s GetSecretBaseIndexFromId +080ea9d8 secret_base.s FindAvailableSecretBaseIndex +080eaa18 secret_base.s sub_80EAA18 +080eaa64 secret_base.s sub_80EAA64 +080eaaf4 secret_base.s SortSecretBasesByRegistryStatus +080eaba4 secret_base.s sub_80EABA4 +080eabdc secret_base.s SecretBaseBelongsToPlayer +080eac5c secret_base.s DeleteFirstOldBaseFromPlayerInRecordMixingFriendsRecords +080ead14 secret_base.s sub_80EAD14 +080ead94 secret_base.s sub_80EAD94 +080eae90 secret_base.s sub_80EAE90 +080eaeb4 secret_base.s sub_80EAEB4 +080eaef4 secret_base.s sub_80EAEF4 +080eaf80 secret_base.s ReceiveSecretBasesData +080eb18c secret_base.s ClearJapaneseSecretBases +080eb1ac secret_base.s sub_80EB1AC +080eb218 secret_base.s sub_80EB218 +080eb290 secret_base.s sub_80EB290 +080eb2c8 secret_base.s sub_80EB2C8 +080eb300 secret_base.s sub_80EB300 +080eb368 secret_base.s sub_80EB368 +080eb3d0 secret_base.s sub_80EB3D0 +080eb438 secret_base.s sub_80EB438 +080eb498 secret_base.s SetSecretBaseSecretsTvFlags_Poster +080eb56c secret_base.s SetSecretBaseSecretsTvFlags_MiscFurnature +080eb9e0 secret_base.s SetSecretBaseSecretsTvFlags_LargeDecorationSpot +080ebb28 secret_base.s SetSecretBaseSecretsTvFlags_SmallDecorationSpot +080ebe7c secret_base.s SetSecretBaseSecretsTvFlags_SandOrnament +080ebee0 tv.s ClearTVShowData +080ebf3c tv.s special_0x44 +080ebff4 tv.s FindAnyTVShowOnTheAir +080ec044 tv.s UpdateTVScreensOnMap +080ec0cc tv.s SetTVMetatilesOnMap +080ec130 tv.s TurnOffTVScreen +080ec14c tv.s TurnOnTVScreen +080ec168 tv.s special_0x45 +080ec18c tv.s FindFirstActiveTVShowThatIsNotAMassOutbreak +080ec1d4 tv.s special_0x4a +080ec21c tv.s ResetGabbyAndTy +080ec31c tv.s GabbyAndTyBeforeInterview +080ec448 tv.s GabbyAndTyAfterInterview +080ec4e8 tv.s TakeTVShowInSearchOfTrainersOffTheAir +080ec504 tv.s GabbyAndTyGetBattleNum +080ec530 tv.s IsTVShowInSearchOfTrainersAiring +080ec548 tv.s GabbyAndTyGetLastQuote +080ec58c tv.s GabbyAndTyGetLastBattleTrivia +080ec5d8 tv.s GabbyAndTySetScriptVarsToEventObjectLocalIds +080ec6bc tv.s InterviewAfter +080ec728 tv.s PutPokemonTodayCaughtOnAir +080ec8a4 tv.s UpdateWorldOfMastersAndPutItOnTheAir +080ec8fc tv.s PutPokemonTodayFailedOnTheAir +080ec9e8 tv.s tv_store_id_3x +080eca10 tv.s tv_store_id_2x +080eca38 tv.s InterviewAfter_ContestLiveUpdates +080ecb00 tv.s PutBattleUpdateOnTheAir +080ecc04 tv.s Put3CheersForPokeblocksOnTheAir +080ecd00 tv.s PutFanClubSpecialOnTheAir +080ecda4 tv.s ContestLiveUpdates_BeforeInterview_1 +080ecdf4 tv.s ContestLiveUpdates_BeforeInterview_2 +080ece34 tv.s ContestLiveUpdates_BeforeInterview_3 +080ece74 tv.s ContestLiveUpdates_BeforeInterview_4 +080eceb4 tv.s ContestLiveUpdates_BeforeInterview_5 +080ecf5c tv.s InterviewAfter_BravoTrainerPokemonProfile +080ed03c tv.s BravoTrainerPokemonProfile_BeforeInterview1 +080ed090 tv.s BravoTrainerPokemonProfile_BeforeInterview2 +080ed164 tv.s InterviewAfter_BravoTrainerBattleTowerProfile +080ed238 tv.s SaveRecordedItemPurchasesForTVShow +080ed320 tv.s PutNameRaterShowOnTheAir +080ed430 tv.s StartMassOutbreak +080ed4dc tv.s PutLilycoveContestLadyShowOnTheAir +080ed548 tv.s InterviewAfter_FanClubLetter +080ed5b8 tv.s InterviewAfter_RecentHappenings +080ed610 tv.s InterviewAfter_PkmnFanClubOpinions +080ed714 tv.s InterviewAfter_DummyShow4 +080ed718 tv.s sub_80ED718 +080ed808 tv.s EndMassOutbreak +080ed888 tv.s UpdateTVShowsPerDay +080ed8b4 tv.s sub_80ED8B4 +080ed924 tv.s UpdateMassOutbreakTimeLeft +080ed950 tv.s sub_80ED950 +080ed9a8 tv.s PutFishingAdviceShowOnTheAir +080eda3c tv.s SetPokemonAnglerSpecies +080eda48 tv.s sub_80EDA48 +080eda80 tv.s sub_80EDA80 +080edb44 tv.s sub_80EDB44 +080edc60 tv.s sub_80EDC60 +080edce8 tv.s sub_80EDCE8 +080edd78 tv.s AlertTVOfNewCoinTotal +080ede70 tv.s AlertTVThatPlayerPlayedSlotMachine +080ede84 tv.s AlertTVThatPlayerPlayedRoulette +080ede98 tv.s sub_80EDE98 +080edfb4 tv.s sub_80EDFB4 +080ee104 tv.s TV_PutSecretBaseVisitOnTheAir +080ee184 tv.s sub_80EE184 +080ee2cc tv.s sub_80EE2CC +080ee35c tv.s sub_80EE35C +080ee44c tv.s sub_80EE44C +080ee4dc tv.s sub_80EE4DC +080ee5a4 tv.s GetRibbonCount +080ee69c tv.s TV_MonDataIdxToRibbon +080ee72c tv.s sub_80EE72C +080ee7c0 tv.s sub_80EE7C0 +080ee818 tv.s sub_80EE818 +080ee8c8 tv.s sub_80EE8C8 +080eea70 tv.s sub_80EEA70 +080eeb98 tv.s sub_80EEB98 +080eebf4 tv.s sub_80EEBF4 +080eec80 tv.s sub_80EEC80 +080eeca4 tv.s sub_80EECA4 +080eecc8 tv.s sub_80EECC8 +080eecec tv.s sub_80EECEC +080eed10 tv.s sub_80EED10 +080eed34 tv.s sub_80EED34 +080eed60 tv.s sub_80EED60 +080eed88 tv.s sub_80EED88 +080eee30 tv.s sub_80EEE30 +080eee5c tv.s ClearPokemonNews +080eee78 tv.s ClearPokemonNewsI +080eeeb8 tv.s sub_80EEEB8 +080eef20 tv.s FindAnyTVNewsOnTheAir +080eef6c tv.s DoPokeNews +080ef038 tv.s GetPriceReduction +080ef094 tv.s IsPriceDiscounted +080ef0e4 tv.s sub_80EF0E4 +080ef120 tv.s sub_80EF120 +080ef1bc tv.s CopyContestRankToStringVar +080ef250 tv.s CopyContestCategoryToStringVar +080ef30c tv.s SetContestCategoryStringVarForInterview +080ef340 tv.s TV_PrintIntToStringVar +080ef370 tv.s CountDigits +080ef40c tv.s sub_80EF40C +080ef46c tv.s HasMixableShowAlreadyBeenSpawnedWithPlayerID +080ef500 tv.s TV_SortPurchasesByQuantity +080ef550 tv.s FindActiveBroadcastByShowType_SetScriptResult +080ef5b8 tv.s InterviewBefore +080ef64c tv.s InterviewBefore_FanClubLetter +080ef6c4 tv.s InterviewBefore_RecentHappenings +080ef704 tv.s InterviewBefore_PkmnFanClubOpinions +080ef79c tv.s InterviewBefore_Dummy +080ef7a8 tv.s InterviewBefore_NameRater +080ef7b4 tv.s InterviewBefore_BravoTrainerPkmnProfile +080ef7f4 tv.s InterviewBefore_ContestLiveUpdates +080ef800 tv.s InterviewBefore_3CheersForPokeblocks +080ef80c tv.s InterviewBefore_BravoTrainerBTProfile +080ef84c tv.s InterviewBefore_FanClubSpecial +080ef88c tv.s sub_80EF88C +080ef8f8 tv.s sub_80EF8F8 +080ef910 tv.s DeleteTVShowInArrayByIdx +080ef93c tv.s sub_80EF93C +080ef9e8 tv.s TV_GetSomeOtherSpeciesAlreadySeenByPlayer_AndPrintName +080efa24 tv.s TV_GetSomeOtherSpeciesAlreadySeenByPlayer +080efa88 tv.s sub_80EFA88 +080efadc tv.s FindEmptyTVSlotWithinFirstFiveShowsOfArray +080efb08 tv.s FindEmptyTVSlotBeyondFirstFiveShowsOfArray +080efb38 tv.s TV_BernoulliTrial +080efb58 tv.s TV_FanClubLetter_RandomWordToStringVar3 +080efba4 tv.s TV_GetNicknameSumMod8 +080efbdc tv.s TV_GetNicknameSubstring +080efd54 tv.s TV_IsScriptShowKindAlreadyInQueue +080efd98 tv.s TV_PutNameRaterShowOnTheAirIfNicknameChanged +080efddc tv.s ChangePokemonNickname +080efe98 tv.s ChangePokemonNickname_CB +080efec4 tv.s ChangeBoxPokemonNickname +080eff48 tv.s ChangeBoxPokemonNickname_CB +080eff6c tv.s TV_CopyNicknameToStringVar1AndEnsureTerminated +080eff9c tv.s TV_CheckMonOTIDEqualsPlayerID +080effe0 tv.s GetTVChannelByShowType +080f0020 tv.s GetPlayerIDAsU32 +080f0040 tv.s CheckForBigMovieOrEmergencyNewsOnTV +080f00a4 tv.s GetMomOrDadStringForTVMessage +080f01b8 tv.s sub_80F01B8 +080f01e8 tv.s ReceiveTvShowsData +080f0358 tv.s sub_80F0358 +080f049c tv.s sub_80F049C +080f0580 tv.s sub_80F0580 +080f05e8 tv.s sub_80F05E8 +080f0668 tv.s sub_80F0668 +080f06d0 tv.s sub_80F06D0 +080f0708 tv.s sub_80F0708 +080f0b00 tv.s SetTvShowInactive +080f0b24 tv.s sub_80F0B24 +080f0b64 tv.s sub_80F0B64 +080f0bb8 tv.s sub_80F0BB8 +080f0c04 tv.s sub_80F0C04 +080f0c7c tv.s ReceivePokeNewsData +080f0d60 tv.s sub_80F0D60 +080f0e58 tv.s sub_80F0E58 +080f0e84 tv.s sub_80F0E84 +080f0ecc tv.s sub_80F0ECC +080f0eec tv.s sub_80F0EEC +080f0f24 tv.s sub_80F0F24 +080f0f64 tv.s sub_80F0F64 +080f1208 tv.s sub_80F1208 +080f1254 tv.s sub_80F1254 +080f1290 tv.s TV_GetStringLanguage +080f12a4 tv.s sub_80F12A4 +080f14f8 tv.s sub_80F14F8 +080f153c tv.s DoTVShow +080f16ec tv.s DoTVShowBravoTrainerPokemonProfile +080f1974 tv.s DoTVShowBravoTrainerBattleTower +080f1c0c tv.s DoTVShowTodaysSmartShopper +080f1e48 tv.s DoTVShowTheNameRaterShow +080f211c tv.s DoTVShowPokemonTodaySuccessfulCapture +080f2370 tv.s DoTVShowPokemonTodayFailedCapture +080f24d8 tv.s DoTVShowPokemonFanClubLetter +080f2708 tv.s DoTVShowRecentHappenings +080f28a4 tv.s DoTVShowPokemonFanClubOpinions +080f299c tv.s DoTVShowDummiedOut +080f29a0 tv.s DoTVShowPokemonNewsMassOutbreak +080f2a10 tv.s DoTVShowPokemonContestLiveUpdates +080f3140 tv.s DoTVShowPokemonBattleUpdate +080f3388 tv.s DoTVShow3CheersForPokeblocks +080f363c tv.s DoTVShowInSearchOfTrainers +080f3828 tv.s DoTVShowPokemonAngler +080f3904 tv.s DoTVShowTheWorldOfMasters +080f39e4 tv.s DoTVShowTodaysRivalTrainer +080f3c04 tv.s DoTVShowDewfordTrendWatcherNetwork +080f3d74 tv.s DoTVShowHoennTreasureInvestigators +080f3e7c tv.s DoTVShowFindThatGamer +080f4028 tv.s DoTVShowBreakingNewsTV +080f4360 tv.s DoTVShowSecretBaseVisit +080f45a0 tv.s DoTVShowPokemonLotteryWinnerFlashReport +080f466c tv.s DoTVShowThePokemonBattleSeminar +080f487c tv.s DoTVShowTrainerFanClubSpecial +080f49bc tv.s DoTVShowTrainerFanClub +080f4b5c tv.s DoTVShowSpotTheCuties +080f4d9c tv.s DoTVShowPokemonNewsBattleFrontier +080f5030 tv.s DoTVShowWhatsNo1InHoennToday +080f5180 tv.s TVShowGetFlagCount +080f51ac tv.s SecretBaseSecrets_GetStateForFlagNumber +080f51ec tv.s DoTVShowSecretBaseSecrets +080f5548 tv.s DoTVShowSafariFanClub +080f56d4 tv.s DoTVShowPokemonContestLiveUpdates2 +080f577c tv.s TVShowDone +080f57b8 tv.s ResetTVShowState +080f57c4 contest_link_80F57C4.s sub_80F57C4 +080f591c contest_link_80F57C4.s sub_80F591C +080f5a74 contest_link_80F57C4.s sub_80F5A74 +080f5ae0 contest_link_80F57C4.s sub_80F5AE0 +080f5b00 contest_link_80F57C4.s sub_80F5B00 +080f5c00 contest_link_80F57C4.s sub_80F5C00 +080f5c24 contest_link_80F57C4.s sub_80F5C24 +080f5ce4 contest_link_80F57C4.s sub_80F5CE4 +080f5ed8 contest_link_80F57C4.s sub_80F5ED8 +080f5f14 contest_link_80F57C4.s sub_80F5F14 +080f5f30 contest_link_80F57C4.s sub_80F5F30 +080f5f74 contest_link_80F57C4.s sub_80F5F74 +080f6058 contest_link_80F57C4.s sub_80F6058 +080f60f0 contest_link_80F57C4.s sub_80F60F0 +080f616c contest_link_80F57C4.s sub_80F616C +080f6204 contest_link_80F57C4.s sub_80F6204 +080f6404 contest_link_80F57C4.s sub_80F6404 +080f66b4 contest_link_80F57C4.s sub_80F66B4 +080f671c contest_link_80F57C4.s sub_80F671C +080f677c contest_link_80F57C4.s sub_80F677C +080f67c4 contest_link_80F57C4.s sub_80F67C4 +080f6820 contest_link_80F57C4.s sub_80F6820 +080f68b4 contest_link_80F57C4.s sub_80F68B4 +080f68f0 contest_link_80F57C4.s sub_80F68F0 +080f69b8 contest_link_80F57C4.s sub_80F69B8 +080f6a64 contest_link_80F57C4.s LoadAllContestMonIcons +080f6a9c contest_link_80F57C4.s sub_80F6A9C +080f6ae8 contest_link_80F57C4.s sub_80F6AE8 +080f6b78 contest_link_80F57C4.s sub_80F6B78 +080f6dc0 contest_link_80F57C4.s sub_80F6DC0 +080f6e9c contest_link_80F57C4.s sub_80F6E9C +080f6ef4 contest_link_80F57C4.s sub_80F6EF4 +080f6f40 contest_link_80F57C4.s sub_80F6F40 +080f6f68 contest_link_80F57C4.s sub_80F6F68 +080f6fdc contest_link_80F57C4.s sub_80F6FDC +080f7014 contest_link_80F57C4.s sub_80F7014 +080f707c contest_link_80F57C4.s sub_80F707C +080f7144 contest_link_80F57C4.s sub_80F7144 +080f71c8 contest_link_80F57C4.s sub_80F71C8 +080f7310 contest_link_80F57C4.s sub_80F7310 +080f7364 contest_link_80F57C4.s sub_80F7364 +080f73dc contest_link_80F57C4.s sub_80F73DC +080f74bc contest_link_80F57C4.s sub_80F74BC +080f753c contest_link_80F57C4.s sub_80F753C +080f75a8 contest_link_80F57C4.s sub_80F75A8 +080f7620 contest_link_80F57C4.s sub_80F7620 +080f7670 contest_link_80F57C4.s sub_80F7670 +080f7768 contest_link_80F57C4.s sub_80F7768 +080f77e0 contest_link_80F57C4.s sub_80F77E0 +080f7824 contest_link_80F57C4.s sub_80F7824 +080f7880 contest_link_80F57C4.s sub_80F7880 +080f7a80 contest_link_80F57C4.s sub_80F7A80 +080f7ca8 contest_link_80F57C4.s sub_80F7CA8 +080f7df4 contest_link_80F57C4.s sub_80F7DF4 +080f7e64 contest_link_80F57C4.s sub_80F7E64 +080f7ed0 contest_link_80F57C4.s sub_80F7ED0 +080f7f30 contest_link_80F57C4.s sub_80F7F30 +080f7f7c contest_link_80F57C4.s sub_80F7F7C +080f7ffc contest_link_80F57C4.s sub_80F7FFC +080f8264 contest_link_80F57C4.s sub_80F8264 +080f8290 contest_link_80F57C4.s sub_80F8290 +080f82b4 contest_link_80F57C4.s sub_80F82B4 +080f82fc contest_link_80F57C4.s sub_80F82FC +080f831c contest_link_80F57C4.s sub_80F831C +080f834c contest_link_80F57C4.s sub_80F834C +080f8390 contest_link_80F57C4.s sub_80F8390 +080f83d0 contest_link_80F57C4.s sub_80F83D0 +080f83e0 contest_link_80F57C4.s sub_80F83E0 +080f840c contest_link_80F57C4.s sub_80F840C +080f8438 contest_link_80F57C4.s sub_80F8438 +080f8458 contest_link_80F57C4.s sub_80F8458 +080f8484 contest_link_80F57C4.s sub_80F8484 +080f84b0 contest_link_80F57C4.s sub_80F84B0 +080f84c4 contest_link_80F57C4.s sub_80F84C4 +080f8508 contest_link_80F57C4.s sub_80F8508 +080f8568 contest_link_80F57C4.s sub_80F8568 +080f8584 contest_link_80F57C4.s sub_80F8584 +080f85a0 contest_link_80F57C4.s sub_80F85A0 +080f85bc contest_link_80F57C4.s sub_80F85BC +080f86b8 contest_link_80F57C4.s sub_80F86B8 +080f86e0 contest_link_80F57C4.s sub_80F86E0 +080f8714 contest_link_80F57C4.s sub_80F8714 +080f878c contest_link_80F57C4.s sub_80F878C +080f87b4 contest_link_80F57C4.s sub_80F87B4 +080f87d8 script_pokemon_util_80F87D8.s SetContestTrainerGfxIds +080f8814 script_pokemon_util_80F87D8.s sub_80F8814 +080f8850 script_pokemon_util_80F87D8.s sub_80F8850 +080f8864 script_pokemon_util_80F87D8.s sub_80F8864 +080f88dc script_pokemon_util_80F87D8.s sub_80F88DC +080f88e8 script_pokemon_util_80F87D8.s sub_80F88E8 +080f8940 script_pokemon_util_80F87D8.s CountPlayerContestPaintings +080f8970 script_pokemon_util_80F87D8.s sub_80F8970 +080f8acc script_pokemon_util_80F87D8.s ShowContestWinnerCleanup +080f8adc script_pokemon_util_80F87D8.s ShowContestWinner +080f8afc script_pokemon_util_80F87D8.s sub_80F8AFC +080f8b94 script_pokemon_util_80F87D8.s sub_80F8B94 +080f8c7c script_pokemon_util_80F87D8.s GiveMonArtistRibbon +080f8d24 script_pokemon_util_80F87D8.s sub_80F8D24 +080f8d28 script_pokemon_util_80F87D8.s ShowContestEntryMonPic +080f8eb8 script_pokemon_util_80F87D8.s sub_80F8EB8 +080f8ee8 script_pokemon_util_80F87D8.s sub_80F8EE8 +080f8fa0 script_pokemon_util_80F87D8.s ScriptGetMultiplayerId +080f8fe8 script_pokemon_util_80F87D8.s ScriptRandom +080f903c script_pokemon_util_80F87D8.s sub_80F903C +080f905c script_pokemon_util_80F87D8.s sub_80F905C +080f9088 script_pokemon_util_80F87D8.s sub_80F9088 +080f90dc script_pokemon_util_80F87D8.s sub_80F90DC +080f910c script_pokemon_util_80F87D8.s sub_80F910C +080f9134 script_pokemon_util_80F87D8.s sub_80F9134 +080f9154 script_pokemon_util_80F87D8.s sub_80F9154 +080f9160 script_pokemon_util_80F87D8.s sub_80F9160 +080f9180 script_pokemon_util_80F87D8.s HealPlayerParty +080f9244 script_pokemon_util_80F87D8.s ScriptGiveMon +080f92c8 script_pokemon_util_80F87D8.s ScriptGiveEgg +080f92f8 script_pokemon_util_80F87D8.s HasEnoughMonsForDoubleBattle +080f9320 script_pokemon_util_80F87D8.s CheckPartyMonHasHeldItem +080f9370 script_pokemon_util_80F87D8.s sub_80F9370 +080f93a0 script_pokemon_util_80F87D8.s CreateScriptedWildMon +080f9400 script_pokemon_util_80F87D8.s ScriptSetMonMoveSlot +080f9438 script_pokemon_util_80F87D8.s ChooseHalfPartyForBattle +080f9460 script_pokemon_util_80F87D8.s CB2_ReturnFromChooseHalfParty +080f9490 script_pokemon_util_80F87D8.s sub_80F9490 +080f94b8 script_pokemon_util_80F87D8.s sub_80F94B8 +080f94e8 script_pokemon_util_80F87D8.s ReducePlayerPartyToSelectedMons +080f9568 field_poison.s IsMonValidSpecies +080f958c field_poison.s AllMonsFainted +080f95c0 field_poison.s FaintFromFieldPoison +080f960c field_poison.s MonFaintedFromPoison +080f9654 field_poison.s Task_WhiteOut +080f972c field_poison.s ExecuteWhiteOut +080f9744 field_poison.s DoPoisonFieldEffect +080f97c8 pokemon_size_record.s GetMonSizeHash +080f986c pokemon_size_record.s TranslateBigMonSizeTableIndex +080f989c pokemon_size_record.s GetMonSize +080f9910 pokemon_size_record.s FormatMonSizeRecord +080f9984 pokemon_size_record.s CompareMonSize +080f9a14 pokemon_size_record.s GetMonSizeRecordInfo +080f9a7c pokemon_size_record.s InitSeedotSizeRecord +080f9a90 pokemon_size_record.s GetSeedotSizeRecordInfo +080f9aac pokemon_size_record.s CompareSeedotSize +080f9ad4 pokemon_size_record.s InitLotadSizeRecord +080f9ae8 pokemon_size_record.s GetLotadSizeRecordInfo +080f9b04 pokemon_size_record.s CompareLotadSize +080f9b30 pokemon_size_record.s GiveGiftRibbonToParty +080f9bcc fldeff_misc.s sub_80F9BCC +080f9bf4 fldeff_misc.s sub_80F9BF4 +080f9c1c fldeff_misc.s sub_80F9C1C +080f9c30 fldeff_misc.s sub_80F9C30 +080f9c44 fldeff_misc.s sub_80F9C44 +080f9c90 fldeff_misc.s sub_80F9C90 +080f9dfc fldeff_misc.s sub_80F9DFC +080f9f5c fldeff_misc.s SetCurrentSecretBase +080f9f78 fldeff_misc.s AdjustSecretPowerSpritePixelOffsets +080fa004 fldeff_misc.s SetUpFieldMove_SecretPower +080fa0dc fldeff_misc.s FieldCallback_SecretBaseCave +080fa0fc fldeff_misc.s FldEff_UseSecretPowerCave +080fa128 fldeff_misc.s StartSecretBaseCaveFieldEffect +080fa13c fldeff_misc.s FldEff_SecretPowerCave +080fa18c fldeff_misc.s CaveEntranceSpriteCallback1 +080fa1a8 fldeff_misc.s CaveEntranceSpriteCallback2 +080fa1d8 fldeff_misc.s CaveEntranceSpriteCallbackEnd +080fa1e8 fldeff_misc.s FieldCallback_SecretBaseTree +080fa208 fldeff_misc.s FldEff_UseSecretPowerTree +080fa234 fldeff_misc.s StartSecretBaseTreeFieldEffect +080fa248 fldeff_misc.s FldEff_SecretPowerTree +080fa2d8 fldeff_misc.s TreeEntranceSpriteCallback1 +080fa304 fldeff_misc.s TreeEntranceSpriteCallback2 +080fa33c fldeff_misc.s TreeEntranceSpriteCallbackEnd +080fa34c fldeff_misc.s FieldCallback_SecretBaseShrub +080fa36c fldeff_misc.s FldEff_UseSecretPowerShrub +080fa398 fldeff_misc.s StartSecretBaseShrubFieldEffect +080fa3ac fldeff_misc.s FldEff_SecretPowerShrub +080fa3fc fldeff_misc.s ShrubEntranceSpriteCallback1 +080fa418 fldeff_misc.s ShrubEntranceSpriteCallback2 +080fa448 fldeff_misc.s ShrubEntranceSpriteCallbackEnd +080fa458 fldeff_misc.s FldEff_SecretBasePCTurnOn +080fa4a0 fldeff_misc.s Task_SecretBasePCTurnOn +080fa57c fldeff_misc.s DoSecretBasePCTurnOffEffect +080fa5e4 fldeff_misc.s PopSecretBaseBalloon +080fa62c fldeff_misc.s Task_PopSecretBaseBalloon +080fa6ac fldeff_misc.s DoBalloonSoundEffect +080fa6fc fldeff_misc.s FldEff_NopA6FC +080fa700 fldeff_misc.s FldEff_NopA700 +080fa704 fldeff_misc.s DoSecretBaseBreakableDoorEffect +080fa754 fldeff_misc.s Task_ShatterSecretBaseBreakableDoor +080fa794 fldeff_misc.s ShatterSecretBaseBreakableDoor +080fa7ec fldeff_misc.s Task_SecretBaseMusicNoteMatSound +080fa970 fldeff_misc.s PlaySecretBaseMusicNoteMatSound +080fa9a4 fldeff_misc.s SpriteCB_GlitterMatSparkle +080fa9d0 fldeff_misc.s DoSecretBaseGlitterMatSparkle +080faa7c fldeff_misc.s FldEff_SandPillar +080faba4 fldeff_misc.s SpriteCB_SandPillar_0 +080fac24 fldeff_misc.s SpriteCB_SandPillar_1 +080fac68 fldeff_misc.s SpriteCB_SandPillar_2 +080fac78 fldeff_misc.s GetShieldToyTVDecorationInfo +080fade4 fldeff_misc.s sub_80FADE4 +080fae38 fldeff_misc.s Task_FieldPoisonEffect +080faea8 fldeff_misc.s FldEffPoison_Start +080faec0 fldeff_misc.s FldEffPoison_IsActive +080faed4 fldeff_misc.s Task_WateringBerryTreeAnim_0 +080faef0 fldeff_misc.s Task_WateringBerryTreeAnim_1 +080faf64 fldeff_misc.s Task_WateringBerryTreeAnim_2 +080fafd4 fldeff_misc.s Task_WateringBerryTreeAnim_3 +080faff8 fldeff_misc.s DoWateringBerryTreeAnim +080fb00c fldeff_misc.s CreateRecordMixingSprite +080fb074 fldeff_misc.s DestroyRecordMixingSprite +080fb0b0 field_special_scene.s GetTruckCameraBobbingY +080fb0dc field_special_scene.s GetTruckBoxMovement +080fb0f8 field_special_scene.s Task_Truck1 +080fb1ac field_special_scene.s Task_Truck2 +080fb2c0 field_special_scene.s Task_Truck3 +080fb36c field_special_scene.s Task_HandleTruckSequence +080fb4e0 field_special_scene.s ExecuteTruckSequence +080fb540 field_special_scene.s EndTruckSequence +080fb59c field_special_scene.s sub_80FB59C +080fb5e8 field_special_scene.s Task_HandlePorthole +080fb6ec field_special_scene.s sub_80FB6EC +080fb768 field_special_scene.s sub_80FB768 +080fb7a4 field_special_scene.s sub_80FB7A4 +080fb7e8 rotating_gate.s GetCurrentMapRotatingGatePuzzleType +080fb818 rotating_gate.s RotatingGate_ResetAllGateOrientations +080fb854 rotating_gate.s RotatingGate_GetGateOrientation +080fb870 rotating_gate.s RotatingGate_SetGateOrientation +080fb890 rotating_gate.s RotatingGate_RotateInDirection +080fb8cc rotating_gate.s RotatingGate_LoadPuzzleConfig +080fb928 rotating_gate.s RotatingGate_CreateGatesWithinViewport +080fb9fc rotating_gate.s RotatingGate_CreateGate +080fbae4 rotating_gate.s SpriteCallback_RotatingGate +080fbb64 rotating_gate.s RotatingGate_HideGatesOutsideViewport +080fbc00 rotating_gate.s LoadRotatingGatePics +080fbc10 rotating_gate.s RotatingGate_DestroyGatesOutsideViewport +080fbcdc rotating_gate.s RotatingGate_CanRotate +080fbdb4 rotating_gate.s RotatingGate_HasArm +080fbe08 rotating_gate.s RotatingGate_TriggerRotationAnimation +080fbe3c rotating_gate.s RotatingGate_GetRotationInfo +080fbe90 rotating_gate.s RotatingGate_InitPuzzle +080fbea8 rotating_gate.s RotatingGatePuzzleCameraUpdate +080fbed0 rotating_gate.s RotatingGate_InitPuzzleAndGraphics +080fbef0 rotating_gate.s CheckForRotatingGatePuzzleCollision +080fbfd4 rotating_gate.s CheckForRotatingGatePuzzleCollisionWithoutAnimation +080fc0a0 safari_zone.s GetSafariZoneFlag +080fc0b4 safari_zone.s SetSafariZoneFlag +080fc0c4 safari_zone.s ResetSafariZoneFlag +080fc0d4 safari_zone.s EnterSafariMode +080fc114 safari_zone.s ExitSafariMode +080fc14c safari_zone.s SafariZoneTakeStep +080fc180 safari_zone.s SafariZoneRetirePrompt +080fc190 safari_zone.s CB2_EndSafariBattle +080fc228 safari_zone.s ClearPokeblockFeeder +080fc244 safari_zone.s ClearAllPokeblockFeeders +080fc258 safari_zone.s GetPokeblockFeederInFront +080fc2e8 safari_zone.s GetPokeblockFeederWithinRange +080fc388 safari_zone.s SafariZoneGetPokeblockInFront +080fc3b8 safari_zone.s SafariZoneGetActivePokeblock +080fc3e8 safari_zone.s SafariZoneActivatePokeblockFeeder +080fc480 safari_zone.s DecrementFeederStepCounters +080fc4b4 safari_zone.s GetInFrontFeederPokeblockAndSteps +080fc4f4 contest_link_80FC4F4.s sub_80FC4F4 +080fc530 contest_link_80FC4F4.s sub_80FC530 +080fc55c contest_link_80FC4F4.s sub_80FC55C +080fc580 contest_link_80FC4F4.s sub_80FC580 +080fc5c0 contest_link_80FC4F4.s sub_80FC5C0 +080fc5dc contest_link_80FC4F4.s sub_80FC5DC +080fc670 contest_link_80FC4F4.s sub_80FC670 +080fc6bc contest_link_80FC4F4.s sub_80FC6BC +080fc804 contest_link_80FC4F4.s sub_80FC804 +080fc894 contest_link_80FC4F4.s sub_80FC894 +080fc998 contest_link_80FC4F4.s sub_80FC998 +080fc9f8 contest_link_80FC4F4.s sub_80FC9F8 +080fcacc contest_link_80FC4F4.s sub_80FCACC +080fcc88 contest_link_80FC4F4.s sub_80FCC88 +080fce48 contest_link_80FC4F4.s sub_80FCE48 +080fcf40 contest_link_80FC4F4.s sub_80FCF40 +080fcfd0 contest_link_80FC4F4.s sub_80FCFD0 +080fd060 item_use.s SetUpItemUseCallback +080fd0dc item_use.s SetUpItemUseOnFieldCallback +080fd124 item_use.s MapPostLoadHook_UseItem +080fd13c item_use.s Task_CallItemUseOnFieldCallback +080fd164 item_use.s DisplayCannotUseItemMessage +080fd1c8 item_use.s DisplayDadsAdviceCannotUseItemMessage +080fd1e0 item_use.s DisplayCannotDismountBikeMessage +080fd1f8 item_use.s CleanUpAfterFailingToUseRegisteredKeyItemOnField +080fd21c item_use.s CheckIfItemIsTMHMOrEvolutionStone +080fd254 item_use.s sub_80FD254 +080fd278 item_use.s ItemUseOutOfBattle_Mail +080fd298 item_use.s ItemUseOutOfBattle_Bike +080fd358 item_use.s ItemUseOnFieldCB_Bike +080fd394 item_use.s CanFish +080fd428 item_use.s ItemUseOutOfBattle_Rod +080fd468 item_use.s ItemUseOnFieldCB_Rod +080fd490 item_use.s ItemUseOutOfBattle_Itemfinder +080fd4b8 item_use.s ItemUseOnFieldCB_Itemfinder +080fd504 item_use.s sub_80FD504 +080fd5cc item_use.s sub_80FD5CC +080fd5f0 item_use.s ItemfinderCheckForHiddenItems +080fd6d4 item_use.s sub_80FD6D4 +080fd730 item_use.s sub_80FD730 +080fd7c8 item_use.s sub_80FD7C8 +080fd8e0 item_use.s sub_80FD8E0 +080fd9b0 item_use.s sub_80FD9B0 +080fda24 item_use.s sub_80FDA24 +080fda94 item_use.s sub_80FDA94 +080fdadc item_use.s sub_80FDADC +080fdb6c item_use.s ItemUseOutOfBattle_PokeblockCase +080fdbec item_use.s sub_80FDBEC +080fdc00 item_use.s sub_80FDC00 +080fdc34 item_use.s ItemUseOutOfBattle_CoinCase +080fdca4 item_use.s ItemUseOutOfBattle_PowderJar +080fdd10 item_use.s sub_80FDD10 +080fdd74 item_use.s sub_80FDD74 +080fdda4 item_use.s ItemUseOutOfBattle_WailmerPail +080fde08 item_use.s sub_80FDE08 +080fde2c item_use.s sub_80FDE2C +080fde7c item_use.s sub_80FDE7C +080fdea0 item_use.s ItemUseOutOfBattle_Medicine +080fdebc item_use.s ItemUseOutOfBattle_ReduceEV +080fded8 item_use.s ItemUseOutOfBattle_SacredAsh +080fdef4 item_use.s ItemUseOutOfBattle_PPRecovery +080fdf10 item_use.s ItemUseOutOfBattle_PPUp +080fdf2c item_use.s ItemUseOutOfBattle_RareCandy +080fdf48 item_use.s ItemUseOutOfBattle_TMHM +080fdf90 item_use.s sub_80FDF90 +080fdfbc item_use.s task08_0809AD8C +080fe024 item_use.s sub_80FE024 +080fe03c item_use.s sub_80FE03C +080fe058 item_use.s sub_80FE058 +080fe0bc item_use.s ItemUseOutOfBattle_Repel +080fe124 item_use.s sub_80FE124 +080fe164 item_use.s sub_80FE164 +080fe1d0 item_use.s sub_80FE1D0 +080fe234 item_use.s ItemUseOutOfBattle_BlackWhiteFlute +080fe2bc item_use.s task08_080A1C44 +080fe2d8 item_use.s re_escape_rope +080fe314 item_use.s CanUseEscapeRopeOnCurrMap +080fe334 item_use.s ItemUseOutOfBattle_EscapeRope +080fe378 item_use.s ItemUseOutOfBattle_EvolutionStone +080fe394 item_use.s ItemUseInBattle_PokeBall +080fe408 item_use.s sub_80FE408 +080fe440 item_use.s sub_80FE440 +080fe4b8 item_use.s ItemUseInBattle_StatIncrease +080fe54c item_use.s sub_80FE54C +080fe590 item_use.s ItemUseInBattle_Medicine +080fe5ac item_use.s sub_80FE5AC +080fe5c8 item_use.s ItemUseInBattle_PPRecovery +080fe5e4 item_use.s ItemUseInBattle_Escape +080fe650 item_use.s ItemUseOutOfBattle_EnigmaBerry +080fe77c item_use.s ItemUseInBattle_EnigmaBerry +080fe820 item_use.s ItemUseOutOfBattle_CannotUse +080fe840 battle_anim_effects_1.s AnimMovePowderParticle +080fe898 battle_anim_effects_1.s AnimMovePowderParticleStep +080fe8e0 battle_anim_effects_1.s AnimPowerAbsorptionOrb +080fe930 battle_anim_effects_1.s AnimSolarbeamBigOrb +080fe988 battle_anim_effects_1.s AnimSolarbeamSmallOrb +080fe9e4 battle_anim_effects_1.s AnimSolarbeamSmallOrbStep +080fea58 battle_anim_effects_1.s AnimTask_CreateSmallSolarbeamOrbs +080fead8 battle_anim_effects_1.s AnimAbsorptionOrb +080feb28 battle_anim_effects_1.s AnimAbsorptionOrbStep +080feb44 battle_anim_effects_1.s AnimHyperBeamOrb +080febfc battle_anim_effects_1.s AnimHyperBeamOrbStep +080fec48 battle_anim_effects_1.s AnimLeechSeed +080fecb8 battle_anim_effects_1.s AnimLeechSeedStep +080fecf0 battle_anim_effects_1.s AnimLeechSeedSprouts +080fed28 battle_anim_effects_1.s AnimSporeParticle +080fed74 battle_anim_effects_1.s AnimSporeParticleStep +080fee1c battle_anim_effects_1.s AnimTask_SporeDoubleBattle +080fee78 battle_anim_effects_1.s AnimPetalDanceBigFlower +080feecc battle_anim_effects_1.s AnimPetalDanceBigFlowerStep +080fef44 battle_anim_effects_1.s AnimPetalDanceSmallFlower +080fef98 battle_anim_effects_1.s AnimPetalDanceSmallFlowerStep +080feffc battle_anim_effects_1.s AnimRazorLeafParticle +080ff044 battle_anim_effects_1.s AnimRazorLeafParticleStep1 +080ff090 battle_anim_effects_1.s AnimRazorLeafParticleStep2 +080ff0f4 battle_anim_effects_1.s AnimTranslateLinearSingleSineWave +080ff1c0 battle_anim_effects_1.s AnimTranslateLinearSingleSineWaveStep +080ff268 battle_anim_effects_1.s AnimMoveTwisterParticle +080ff2bc battle_anim_effects_1.s AnimMoveTwisterParticleStep +080ff374 battle_anim_effects_1.s AnimConstrictBinding +080ff3b0 battle_anim_effects_1.s AnimConstrictBindingStep1 +080ff3ec battle_anim_effects_1.s AnimConstrictBindingStep2 +080ff458 battle_anim_effects_1.s sub_80FF458 +080ff53c battle_anim_effects_1.s sub_80FF53C +080ff5cc battle_anim_effects_1.s sub_80FF5CC +080ff698 battle_anim_effects_1.s AnimMimicOrb +080ff768 battle_anim_effects_1.s AnimIngrainRoot +080ff7ec battle_anim_effects_1.s AnimFrenzyPlantRoot +080ff8dc battle_anim_effects_1.s AnimRootFlickerOut +080ff934 battle_anim_effects_1.s AnimIngrainOrb +080ff9b8 battle_anim_effects_1.s sub_80FF9B8 +080ff9e0 battle_anim_effects_1.s sub_80FF9E0 +080ffa84 battle_anim_effects_1.s sub_80FFA84 +080ffab4 battle_anim_effects_1.s sub_80FFAB4 +080ffb18 battle_anim_effects_1.s AnimPresent +080ffb90 battle_anim_effects_1.s sub_80FFB90 +080ffbf4 battle_anim_effects_1.s AnimKnockOffItem +080ffc70 battle_anim_effects_1.s AnimPresentHealParticle +080ffcb4 battle_anim_effects_1.s AnimItemSteal +080ffd2c battle_anim_effects_1.s AnimItemStealStep +080ffdbc battle_anim_effects_1.s AnimTrickBag +080ffe58 battle_anim_effects_1.s AnimTrickBagStep1 +080ffec4 battle_anim_effects_1.s AnimTrickBagStep2 +080fff7c battle_anim_effects_1.s AnimTrickBagStep3 +080fffc0 battle_anim_effects_1.s sub_80FFFC0 +08100128 battle_anim_effects_1.s sub_8100128 +08100504 battle_anim_effects_1.s sub_8100504 +08100524 battle_anim_effects_1.s sub_8100524 +081005d4 battle_anim_effects_1.s sub_80CC408 +08100640 battle_anim_effects_1.s sub_8100640 +0810074c battle_anim_effects_1.s sub_810074C +081007c4 battle_anim_effects_1.s sub_81007C4 +08100898 battle_anim_effects_1.s sub_8100898 +081009a0 battle_anim_effects_1.s sub_81009A0 +081009dc battle_anim_effects_1.s sub_81009DC +081009f8 battle_anim_effects_1.s sub_81009F8 +08100a50 battle_anim_effects_1.s sub_8100A50 +08100a94 battle_anim_effects_1.s sub_8100A94 +08100ae0 battle_anim_effects_1.s AnimCuttingSlice +08100b88 battle_anim_effects_1.s sub_8100B88 +08100ccc battle_anim_effects_1.s AnimSliceStep +08100d38 battle_anim_effects_1.s unref_sub_8100D38 +08100e1c battle_anim_effects_1.s sub_8100E1C +08100e80 battle_anim_effects_1.s sub_8100E80 +08100ef0 battle_anim_effects_1.s sub_8100EF0 +08100fd4 battle_anim_effects_1.s sub_8100FD4 +081010cc battle_anim_effects_1.s sub_81010CC +08101138 battle_anim_effects_1.s sub_8101138 +08101298 battle_anim_effects_1.s sub_8101298 +0810130c battle_anim_effects_1.s sub_810130C +0810135c battle_anim_effects_1.s sub_810135C +08101440 battle_anim_effects_1.s sub_8101440 +081014a0 battle_anim_effects_1.s sub_81014A0 +081014f4 battle_anim_effects_1.s sub_81014F4 +08101560 battle_anim_effects_1.s sub_8101560 +081015ac battle_anim_effects_1.s sub_81015AC +081015d4 battle_anim_effects_1.s sub_81015D4 +08101684 battle_anim_effects_1.s sub_8101684 +081016b8 battle_anim_effects_1.s sub_81016B8 +08101774 battle_anim_effects_1.s sub_8101774 +08101820 battle_anim_effects_1.s sub_8101820 +08101848 battle_anim_effects_1.s sub_8101848 +08101898 battle_anim_effects_1.s sub_8101898 +08101940 battle_anim_effects_1.s sub_8101940 +08101998 battle_anim_effects_1.s sub_8101998 +081019e8 battle_anim_effects_1.s sub_81019E8 +08101a74 battle_anim_effects_1.s sub_8101A74 +08101ac4 battle_anim_effects_1.s sub_8101AC4 +08101ae8 battle_anim_effects_1.s sub_8101AE8 +08101b84 battle_anim_effects_1.s sub_8101B84 +08101b90 battle_anim_effects_1.s sub_8101B90 +08101ba0 battle_anim_effects_1.s sub_8101BA0 +08101c94 battle_anim_effects_1.s sub_8101C94 +08101d2c battle_anim_effects_1.s sub_8101D2C +08101eec battle_anim_effects_1.s sub_8101EEC +08101f40 battle_anim_effects_1.s sub_8101F40 +08101fa8 battle_anim_effects_1.s sub_8101FA8 +08101ff0 battle_anim_effects_1.s sub_8101FF0 +08102044 battle_anim_effects_1.s sub_8102044 +0810207c battle_anim_effects_1.s sub_810207C +0810208c battle_anim_effects_1.s sub_810208C +081020d8 battle_anim_effects_1.s sub_81020D8 +0810213c battle_anim_effects_1.s sub_810213C +0810217c battle_anim_effects_1.s sub_810217C +081021cc battle_anim_effects_1.s sub_81021CC +08102268 battle_anim_effects_1.s sub_8102268 +081022d4 battle_anim_effects_1.s sub_81022D4 +0810234c battle_anim_effects_1.s sub_810234C +0810237c battle_anim_effects_1.s sub_810237C +081023e0 battle_anim_effects_1.s sub_81023E0 +08102434 battle_anim_effects_1.s unref_sub_8102434 +081024a8 battle_anim_effects_1.s unref_sub_81024A8 +081024e0 battle_anim_effects_1.s sub_81024E0 +08102528 battle_anim_effects_1.s sub_8102528 +08102540 battle_anim_effects_1.s sub_8102540 +08102584 battle_anim_effects_1.s sub_8102584 +081025c0 battle_anim_effects_1.s sub_81025C0 +081026a8 battle_anim_effects_1.s sub_81026A8 +08102844 battle_anim_effects_1.s sub_8102844 +0810296c battle_anim_effects_1.s sub_810296C +081029b4 battle_anim_effects_1.s sub_81029B4 +08102ae0 battle_anim_effects_1.s sub_8102AE0 +08102b3c battle_anim_effects_1.s sub_8102B3C +08102bcc battle_anim_effects_1.s sub_8102BCC +08102be8 battle_anim_effects_1.s sub_8102BE8 +08102ca0 battle_anim_effects_1.s sub_8102CA0 +08102cd4 battle_anim_effects_1.s sub_8102CD4 +08102d8c battle_anim_effects_1.s sub_8102D8C +08102de4 battle_anim_effects_1.s sub_8102DE4 +08102eb0 battle_anim_effects_1.s sub_8102EB0 +08102f40 battle_anim_effects_1.s sub_8102F40 +08102fb8 battle_anim_effects_1.s sub_8102FB8 +08103028 battle_anim_effects_1.s sub_8103028 +081030b0 battle_anim_effects_1.s sub_81030B0 +0810310c battle_anim_effects_1.s sub_810310C +08103164 battle_anim_effects_1.s sub_8103164 +081031d0 battle_anim_effects_1.s sub_81031D0 +08103208 battle_anim_effects_1.s sub_8103208 +08103250 battle_anim_effects_1.s sub_8103250 +08103284 battle_anim_effects_1.s sub_8103284 +08103300 battle_anim_effects_1.s sub_8103300 +08103320 battle_anim_effects_1.s sub_8103320 +08103390 battle_anim_effects_1.s sub_8103390 +081033f0 battle_anim_effects_1.s sub_81033F0 +0810342c battle_anim_effects_1.s sub_810342C +08103448 battle_anim_effects_2.s sub_8103448 +08103498 battle_anim_effects_2.s sub_8103498 +081034d8 battle_anim_effects_2.s sub_81034D8 +0810353c battle_anim_effects_2.s sub_810353C +0810358c battle_anim_effects_2.s sub_810358C +08103620 battle_anim_effects_2.s sub_8103620 +08103658 battle_anim_effects_2.s sub_8103658 +08103680 battle_anim_effects_2.s sub_8103680 +081036a0 battle_anim_effects_2.s AnimTask_Withdraw +081036dc battle_anim_effects_2.s AnimTask_WithdrawStep +081037d8 battle_anim_effects_2.s Anim_KinesisZapEnergy +0810387c battle_anim_effects_2.s Anim_SwordsDanceBlade +081038a0 battle_anim_effects_2.s Anim_SwordsDanceBladeStep +081038c8 battle_anim_effects_2.s AnimSonicBoomProjectile +081039cc battle_anim_effects_2.s sub_81039CC +08103a00 battle_anim_effects_2.s sub_8103A00 +08103aa4 battle_anim_effects_2.s sub_8103AA4 +08103be4 battle_anim_effects_2.s sub_8103BE4 +08103c0c battle_anim_effects_2.s sub_8103C0C +08103cf0 battle_anim_effects_2.s sub_8103CF0 +08103fe8 battle_anim_effects_2.s sub_8103FE8 +08104018 battle_anim_effects_2.s sub_8104018 +08104088 battle_anim_effects_2.s sub_8104088 +0810413c battle_anim_effects_2.s sub_810413C +08104154 battle_anim_effects_2.s sub_8104154 +081041c4 battle_anim_effects_2.s sub_81041C4 +0810421c battle_anim_effects_2.s sub_810421C +081042a0 battle_anim_effects_2.s sub_81042A0 +08104304 battle_anim_effects_2.s Anim_RazorWindTornado +08104364 battle_anim_effects_2.s Anim_ViceGripPincer +081043f8 battle_anim_effects_2.s Anim_ViceGripPincerStep +08104414 battle_anim_effects_2.s Anim_GuillotinePincer +081044bc battle_anim_effects_2.s Anim_GuillotinePincerStep1 +08104530 battle_anim_effects_2.s Anim_GuillotinePincerStep2 +08104594 battle_anim_effects_2.s Anim_GuillotinePincerStep3 +081045b0 battle_anim_effects_2.s AnimTask_GrowAndGreyscale +08104614 battle_anim_effects_2.s AnimTask_GrowAndGreyscaleStep +08104674 battle_anim_effects_2.s AnimTask_Minimize +081046cc battle_anim_effects_2.s AnimTask_MinimizeStep1 +08104800 battle_anim_effects_2.s CreateMinimizeSprite +081048f0 battle_anim_effects_2.s ClonedMinizeSprite_Step +08104938 battle_anim_effects_2.s AnimTask_Splash +08104998 battle_anim_effects_2.s AnimTask_SplashStep +08104ab4 battle_anim_effects_2.s AnimTask_GrowAndShrink +08104af0 battle_anim_effects_2.s AnimTask_GrowAndShrinkStep +08104b1c battle_anim_effects_2.s Anim_BreathPuff +08104bac battle_anim_effects_2.s Anim_AngerMark +08104c38 battle_anim_effects_2.s sub_8104C38 +08104c78 battle_anim_effects_2.s sub_8104C78 +08104ca4 battle_anim_effects_2.s sub_8104CA4 +08104d28 battle_anim_effects_2.s sub_8104D28 +08104e74 battle_anim_effects_2.s sub_8104E74 +08104f54 battle_anim_effects_2.s sub_8104F54 +0810501c battle_anim_effects_2.s sub_810501C +08105078 battle_anim_effects_2.s sub_8105078 +081051c4 battle_anim_effects_2.s sub_81051C4 +08105284 battle_anim_effects_2.s sub_8105284 +081052a4 battle_anim_effects_2.s sub_81052A4 +081054e8 battle_anim_effects_2.s sub_81054E8 +08105538 battle_anim_effects_2.s sub_8105538 +0810557c battle_anim_effects_2.s sub_810557C +081055f4 battle_anim_effects_2.s sub_81055F4 +0810561c battle_anim_effects_2.s sub_810561C +08105694 battle_anim_effects_2.s sub_8105694 +081056d4 battle_anim_effects_2.s sub_81056D4 +0810571c battle_anim_effects_2.s sub_810571C +0810575c battle_anim_effects_2.s sub_810575C +0810577c battle_anim_effects_2.s sub_810577C +081057b8 battle_anim_effects_2.s sub_81057B8 +08105810 battle_anim_effects_2.s sub_8105810 +08105878 battle_anim_effects_2.s sub_8105878 +0810599c battle_anim_effects_2.s sub_810599C +081059e0 battle_anim_effects_2.s sub_81059E0 +08105aac battle_anim_effects_2.s sub_8105AAC +08105b08 battle_anim_effects_2.s sub_8105B08 +08105c48 battle_anim_effects_2.s sub_8105C48 +08105cb4 battle_anim_effects_2.s sub_8105CB4 +08105d60 battle_anim_effects_2.s sub_8105D60 +08105d88 battle_anim_effects_2.s sub_8105D88 +08105de8 battle_anim_effects_2.s sub_8105DE8 +08105e60 battle_anim_effects_2.s sub_8105E60 +08105eb0 battle_anim_effects_2.s sub_8105EB0 +08105f30 battle_anim_effects_2.s sub_8105F30 +08105f84 battle_anim_effects_2.s sub_8105F84 +08106020 battle_anim_effects_2.s sub_8106020 +081060b0 battle_anim_effects_2.s sub_81060B0 +08106140 battle_anim_effects_2.s sub_8106140 +0810618c battle_anim_effects_2.s sub_810618C +081061c4 battle_anim_effects_2.s sub_81061C4 +0810624c battle_anim_effects_2.s sub_810624C +0810627c battle_anim_effects_2.s sub_810627C +081062e8 battle_anim_effects_2.s AnimTask_HeartsBackground +081063a8 battle_anim_effects_2.s sub_81063A8 +081064f8 battle_anim_effects_2.s sub_81064F8 +081065ec battle_anim_effects_2.s sub_81065EC +0810673c battle_anim_effects_2.s AnimOrbitFast +0810679c battle_anim_effects_2.s AnimOrbitFastStep +08106878 battle_anim_effects_2.s AnimOrbitScatter +081068cc battle_anim_effects_2.s AnimOrbitScatterStep +08106914 battle_anim_effects_2.s sub_8106914 +08106944 battle_anim_effects_2.s sub_8106944 +0810699c battle_anim_effects_2.s sub_810699C +081069b8 battle_anim_effects_2.s sub_81069B8 +081069d0 battle_anim_effects_2.s sub_81069D0 +08106a64 battle_anim_effects_2.s sub_8106A64 +08106ad0 battle_anim_effects_2.s sub_8106AD0 +08106b54 battle_anim_effects_2.s sub_8106B54 +08106c80 battle_anim_effects_2.s sub_8106C80 +08106cd0 battle_anim_effects_2.s sub_8106CD0 +08106d5c battle_anim_effects_2.s sub_8106D5C +08106d90 battle_anim_effects_2.s sub_8106D90 +08106dd4 battle_anim_effects_2.s sub_8106DD4 +08106e00 battle_anim_effects_2.s sub_8106E00 +08106ec8 battle_anim_effects_2.s sub_8106EC8 +08106f00 battle_anim_effects_2.s sub_8106F00 +08106f60 battle_anim_effects_2.s sub_8106F60 +08107018 battle_anim_effects_2.s sub_8107018 +0810703c battle_anim_effects_2.s sub_810703C +081070ac battle_anim_effects_2.s sub_81070AC +08107144 battle_anim_effects_2.s AnimTask_IsFuryCutterHitRight +08107168 battle_anim_effects_2.s AnimTask_GetFuryCutterHitCount +08107188 water.s AnimTask_CreateRaindrops +0810721c water.s sub_810721C +08107228 water.s sub_8107228 +08107260 water.s sub_8107260 +08107380 water.s sub_8107380 +08107408 water.s sub_8107408 +08107430 water.s sub_8107430 +0810744c water.s sub_810744C +081074e4 water.s sub_81074E4 +08107528 water.s sub_8107528 +0810756c water.s sub_810756C +081075ec water.s sub_81075EC +08107674 water.s sub_8107674 +081076c8 water.s sub_81076C8 +081076f4 water.s sub_81076F4 +08107730 water.s sub_8107730 +081077a4 water.s sub_81077A4 +081077c0 water.s sub_81077C0 +08107894 water.s sub_8107894 +081078d0 water.s sub_81078D0 +0810790c water.s sub_810790C +08107954 water.s AnimTask_CreateSurfWave +08107b84 water.s sub_8107B84 +08107cc4 water.s sub_8107CC4 +08107d58 water.s sub_8107D58 +08108034 water.s sub_8108034 +08108098 water.s sub_8108098 +081080e4 water.s sub_81080E4 +08108140 water.s sub_8108140 +08108384 water.s sub_8108384 +08108408 water.s sub_8108408 +0810851c water.s sub_810851C +081085c8 water.s sub_81085C8 +0810862c water.s sub_810862C +0810871c water.s sub_810871C +081087c0 water.s sub_81087C0 +0810886c water.s sub_810886C +081088e4 water.s sub_81088E4 +08108978 water.s sub_8108978 +08108ac0 water.s sub_8108AC0 +08108b2c water.s sub_8108B2C +08108b94 water.s sub_8108B94 +08108be0 water.s sub_8108BE0 +08108c08 water.s sub_8108C08 +08108c54 water.s sub_8108C54 +08108c94 water.s sub_8108C94 +08108cdc water.s sub_8108CDC +08108d54 water.s sub_8108D54 +08108ec8 fire.s sub_8108EC8 +08108f08 fire.s sub_8108F08 +08108f4c fire.s sub_8108F4C +08108fbc fire.s sub_8108FBC +08109028 fire.s sub_8109028 +08109064 fire.s sub_8109064 +081090d8 fire.s sub_81090D8 +0810916c fire.s sub_810916C +08109198 fire.s AnimEmberFlare +08109200 fire.s sub_8109200 +0810921c fire.s AnimFireRing +08109244 fire.s AnimFireRingStep1 +0810929c fire.s AnimFireRingStep2 +08109314 fire.s AnimFireRingStep3 +08109338 fire.s UpdateFireRingCircleOffset +08109364 fire.s AnimFireCross +081093a4 fire.s sub_81093A4 +081093e4 fire.s sub_81093E4 +0810940c fire.s sub_810940C +08109460 fire.s sub_8109460 +081094d0 fire.s sub_81094D0 +081097b4 fire.s sub_81097B4 +081098ec fire.s sub_81098EC +08109930 fire.s sub_8109930 +08109984 fire.s sub_8109984 +081099a0 fire.s sub_81099A0 +08109a10 fire.s sub_8109A10 +08109a64 fire.s sub_8109A64 +08109afc fire.s sub_8109AFC +08109c4c fire.s sub_8109C4C +08109cb0 fire.s sub_8109CB0 +08109dbc fire.s sub_8109DBC +08109e2c fire.s sub_8109E2C +0810a060 fire.s AnimTask_BlendBackground +0810a094 fire.s sub_810A094 +0810a1a8 electric.s sub_810A1A8 +0810a1f8 electric.s sub_810A1F8 +0810a214 electric.s sub_810A214 +0810a258 electric.s sub_810A258 +0810a274 electric.s sub_810A274 +0810a308 electric.s sub_810A308 +0810a46c electric.s sub_810A46C +0810a4f4 electric.s sub_810A4F4 +0810a56c electric.s sub_810A56C +0810a5bc electric.s sub_810A5BC +0810a628 electric.s sub_810A628 +0810a6ec electric.s sub_810A6EC +0810a75c electric.s sub_810A75C +0810a7dc electric.s sub_810A7DC +0810a834 electric.s sub_810A834 +0810a9dc electric.s sub_810A9DC +0810aa2c electric.s sub_810AA2C +0810aab0 electric.s sub_810AAB0 +0810aafc electric.s sub_810AAFC +0810ab78 electric.s sub_810AB78 +0810ac8c electric.s sub_810AC8C +0810acc0 electric.s sub_810ACC0 +0810acd8 electric.s sub_810ACD8 +0810ad30 electric.s sub_810AD30 +0810ad98 electric.s sub_810AD98 +0810adf8 electric.s sub_810ADF8 +0810ae5c electric.s sub_810AE5C +0810afcc electric.s sub_810AFCC +0810b154 electric.s sub_810B154 +0810b1f0 electric.s sub_810B1F0 +0810b23c electric.s sub_810B23C +0810b29c electric.s sub_810B29C +0810b430 electric.s sub_810B430 +0810b51c electric.s sub_810B51C +0810b55c electric.s sub_810B55C +0810b614 electric.s sub_810B614 +0810b684 electric.s sub_810B684 +0810b6c4 ice.s sub_810B6C4 +0810b848 ice.s sub_810B848 +0810b8ac ice.s AnimIcePunchSwirlingParticle +0810b8ec ice.s AnimIceBeamParticle +0810b974 ice.s AnimIceEffectParticle +0810b9e8 ice.s AnimFlickerIceEffectParticle +0810ba24 ice.s AnimSwirlingSnowball_Step1 +0810bb60 ice.s AnimSwirlingSnowball_Step2 +0810bbc8 ice.s AnimSwirlingSnowball_Step3 +0810bc4c ice.s AnimSwirlingSnowball_End +0810bc94 ice.s AnimMoveParticleBeyondTarget +0810bdd8 ice.s AnimWiggleParticleTowardsTarget +0810be48 ice.s AnimWaveFromCenterOfTarget +0810bed0 ice.s InitSwirlingFogAnim +0810c008 ice.s AnimSwirlingFogAnim +0810c0a0 ice.s AnimTask_Haze1 +0810c164 ice.s AnimTask_Haze2 +0810c2f0 ice.s AnimThrowMistBall +0810c324 ice.s AnimTask_LoadMistTiles +0810c3f0 ice.s AnimTask_OverlayFogTiles +0810c560 ice.s InitPoisonGasCloudAnim +0810c6d4 ice.s MovePoisonGasCloud +0810c918 ice.s AnimTask_Hail1 +0810c934 ice.s AnimTask_Hail2 +0810c9e4 ice.s GenerateHailParticle +0810cb58 ice.s AnimHailBegin +0810cc3c ice.s AnimHailContinue +0810cc88 ice.s InitIceBallAnim +0810cd1c ice.s AnimThrowIceBall +0810cd4c ice.s InitIceBallParticle +0810cdb0 ice.s AnimIceBallParticle +0810cdfc ice.s AnimTask_GetRolloutCounter +0810ce2c fight.s unc_080B08A0 +0810ce68 fight.s sub_810CE68 +0810ceb4 fight.s sub_810CEB4 +0810cee0 fight.s AnimBasicFistOrFoot +0810cf30 fight.s sub_810CF30 +0810d0b8 fight.s sub_810D0B8 +0810d10c fight.s sub_810D10C +0810d164 fight.s sub_810D164 +0810d1b4 fight.s sub_810D1B4 +0810d240 fight.s sub_810D240 +0810d278 fight.s AnimSpinningKickOrPunch +0810d2b0 fight.s AnimSpinningKickOrPunchFinish +0810d2e4 fight.s AnimStompFoot +0810d308 fight.s AnimStompFootStep +0810d360 fight.s AnimStompFootEnd +0810d37c fight.s sub_810D37C +0810d40c fight.s sub_810D40C +0810d47c fight.s sub_810D47C +0810d4f4 fight.s sub_810D4F4 +0810d5dc fight.s sub_810D5DC +0810d608 fight.s sub_810D608 +0810d6a8 fight.s sub_810D6A8 +0810d714 fight.s sub_810D714 +0810d770 fight.s sub_810D770 +0810d830 fight.s sub_810D830 +0810d874 fight.s sub_810D874 +0810d960 fight.s sub_810D960 +0810d984 fight.s sub_810D984 +0810da10 fight.s sub_810DA10 +0810da7c fight.s sub_810DA7C +0810dabc fight.s sub_810DABC +0810dbac poison.s sub_810DBAC +0810dc10 poison.s sub_810DC10 +0810dc2c poison.s sub_810DC2C +0810dcb4 poison.s sub_810DCB4 +0810dcd0 poison.s sub_810DCD0 +0810dd24 poison.s sub_810DD24 +0810dd50 poison.s sub_810DD50 +0810ddc4 poison.s AnimBubbleEffect +0810de2c poison.s AnimBubbleEffectStep +0810de70 flying.s sub_810DE70 +0810de98 flying.s sub_810DE98 +0810ded8 flying.s sub_810DED8 +0810df18 flying.s sub_810DF18 +0810dfa8 flying.s sub_810DFA8 +0810e028 flying.s sub_810E028 +0810e044 flying.s sub_810E044 +0810e13c flying.s sub_810E13C +0810e184 flying.s sub_810E184 +0810e1c8 flying.s sub_810E1C8 +0810e24c flying.s sub_810E24C +0810e2c8 flying.s sub_810E2C8 +0810e314 flying.s sub_810E314 +0810e520 flying.s sub_810E520 +0810ea4c flying.s sub_810EA4C +0810eaa0 flying.s sub_810EAA0 +0810eb40 flying.s sub_810EB40 +0810eb88 flying.s sub_810EB88 +0810ec34 flying.s sub_810EC34 +0810ec94 flying.s sub_810EC94 +0810ed28 flying.s sub_810ED28 +0810ed70 flying.s sub_810ED70 +0810edd0 flying.s sub_810EDD0 +0810ee14 flying.s sub_810EE14 +0810eef8 flying.s sub_810EEF8 +0810efa8 flying.s sub_810EFA8 +0810f004 flying.s sub_810F004 +0810f018 flying.s sub_810F018 +0810f084 flying.s sub_810F084 +0810f140 flying.s sub_810F140 +0810f184 flying.s unref_sub_810F184 +0810f1ec psychic.s sub_810F1EC +0810f340 psychic.s sub_810F340 +0810f3c8 psychic.s sub_810F3C8 +0810f400 psychic.s sub_810F400 +0810f46c psychic.s sub_810F46C +0810f524 psychic.s sub_810F524 +0810f58c psychic.s sub_810F58C +0810f634 psychic.s sub_810F634 +0810f6b0 psychic.s sub_810F6B0 +0810f740 psychic.s sub_810F740 +0810f774 psychic.s sub_810F774 +0810f7d4 psychic.s sub_810F7D4 +0810f810 psychic.s sub_810F810 +0810f83c psychic.s sub_810F83C +0810f898 psychic.s sub_810F898 +0810f940 psychic.s sub_810F940 +0810f9d4 psychic.s sub_810F9D4 +0810fb60 psychic.s sub_810FB60 +0810fba8 psychic.s sub_810FBA8 +0810fbf0 psychic.s sub_810FBF0 +0810fd3c psychic.s sub_810FD3C +0810fdf0 psychic.s sub_810FDF0 +0810fe14 psychic.s sub_810FE14 +0810ff34 psychic.s sub_810FF34 +08110034 psychic.s sub_8110034 +08110134 psychic.s sub_8110134 +08110240 psychic.s sub_8110240 +08110368 bug.s sub_8110368 +08110438 bug.s sub_8110438 +081104e4 bug.s AnimTranslateWebThread +0811057c bug.s sub_811057C +081105b4 bug.s sub_81105B4 +08110630 bug.s sub_8110630 +0811067c bug.s sub_811067C +081106a4 bug.s sub_81106A4 +08110700 bug.s sub_8110700 +08110720 bug.s AnimTranslateStinger +08110850 bug.s AnimMissileArc +081108cc bug.s AnimMissileArcStep +08110994 bug.s sub_8110994 +081109f0 rock.s sub_81109F0 +08110a70 rock.s sub_8110A70 +08110ab4 rock.s sub_8110AB4 +08110b38 rock.s sub_8110B38 +08110b80 rock.s sub_8110B80 +08110bcc rock.s AnimTask_LoadSandstormBackground +08110cb0 rock.s sub_8110CB0 +08110e4c rock.s AnimDirtParticleAcrossScreen +08110f30 rock.s AnimRaiseSprite +08110f74 rock.s sub_8110F74 +081110a4 rock.s sub_81110A4 +08111214 rock.s sub_8111214 +0811131c rock.s sub_811131C +0811135c rock.s sub_811135C +08111388 rock.s sub_8111388 +081113c8 rock.s sub_81113C8 +08111418 rock.s sub_8111418 +08111444 rock.s sub_8111444 +0811149c rock.s sub_811149C +081114ec rock.s AnimTask_GetSeismicTossDamageLevel +0811152c rock.s sub_811152C +08111590 rock.s sub_8111590 +0811160c ghost.s sub_811160C +08111674 ghost.s sub_8111674 +081116e8 ghost.s sub_81116E8 +08111764 ghost.s sub_8111764 +081117f4 ghost.s sub_81117F4 +08111814 ghost.s sub_8111814 +0811188c ghost.s sub_811188C +08111914 ghost.s sub_8111914 +0811196c ghost.s sub_811196C +081119e0 ghost.s InitAnimShadowBall +08111a88 ghost.s AnimShadowBallStep +08111b9c ghost.s sub_8111B9C +08111bb4 ghost.s sub_8111BB4 +08111c50 ghost.s sub_8111C50 +08111d78 ghost.s sub_8111D78 +08111e50 ghost.s sub_8111E50 +08111e78 ghost.s sub_8111E78 +081120dc ghost.s sub_81120DC +08112170 ghost.s sub_8112170 +08112264 ghost.s sub_8112264 +08112384 ghost.s sub_8112384 +081123c4 ghost.s sub_81123C4 +081125e0 ghost.s sub_81125E0 +08112758 ghost.s sub_8112758 +0811280c ghost.s sub_811280C +08112994 ghost.s sub_8112994 +081129f0 ghost.s sub_81129F0 +08112a4c ghost.s sub_8112A4C +08112acc ghost.s sub_8112ACC +08112b44 ghost.s sub_8112B44 +08112b78 ghost.s sub_8112B78 +08112c4c ghost.s sub_8112C4C +08112c6c ghost.s sub_8112C6C +08112d10 ghost.s sub_8112D10 +08112e9c ghost.s sub_8112E9C +08112f60 ghost.s sub_8112F60 +08112fb8 ghost.s sub_8112FB8 +08113064 dragon.s sub_8113064 +08113100 dragon.s sub_8113100 +081131b4 dragon.s sub_81131B4 +08113224 dragon.s sub_8113224 +08113250 dragon.s sub_8113250 +081132e0 dragon.s sub_81132E0 +081133e8 dragon.s sub_81133E8 +081134b8 dragon.s sub_81134B8 +08113574 dragon.s sub_8113574 +081135ec dragon.s sub_81135EC +0811369c dragon.s sub_811369C +081136e8 dark.s sub_81136E8 +0811375c dark.s sub_811375C +081137e4 dark.s sub_81137E4 +0811381c dark.s sub_811381C +08113888 dark.s sub_8113888 +081138d4 dark.s sub_81138D4 +08113950 dark.s sub_8113950 +081139dc dark.s sub_81139DC +08113a18 dark.s sub_8113A18 +08113a58 dark.s sub_8113A58 +08113a90 dark.s sub_8113A90 +08113b90 dark.s sub_8113B90 +08113bac dark.s sub_8113BAC +08113d60 dark.s sub_8113D60 +08113e78 dark.s sub_8113E78 +081140c8 dark.s sub_81140C8 +08114244 dark.s sub_8114244 +08114374 dark.s sub_8114374 +081143c0 dark.s sub_81143C0 +08114470 dark.s sub_8114470 +081144bc dark.s sub_81144BC +081144f8 dark.s AnimTask_MetallicShine +08114748 dark.s sub_8114748 +0811489c dark.s AnimTask_SetGreyscaleOrOriginalPal +08114960 dark.s sub_8114960 +08114994 ground.s AnimBonemerangProjectile +081149fc ground.s AnimBonemerangProjectileStep +08114a60 ground.s AnimBonemerangProjectileEnd +08114a7c ground.s AnimBoneHitProjectile +08114af0 ground.s AnimDirtScatter +08114b80 ground.s AnimMudSportDirt +08114c10 ground.s AnimMudSportDirtRising +08114c4c ground.s AnimMudSportDirtFalling +08114cbc ground.s sub_8114CBC +08114cfc ground.s sub_8114CFC +08114eb4 ground.s sub_8114EB4 +08114f14 ground.s sub_8114F14 +08114f54 ground.s sub_8114F54 +08114fd8 ground.s sub_8114FD8 +081150e0 ground.s sub_81150E0 +081151a0 ground.s AnimFissureDirtPlumeParticle +08115228 ground.s AnimFissureDirtPlumeParticleStep +08115244 ground.s AnimDigDirtMound +081152dc ground.s sub_81152DC +081153ac ground.s sub_81153AC +081154a4 ground.s sub_81154A4 +08115588 ground.s sub_8115588 +08115600 ground.s AnimTask_IsPowerOver99 +08115628 ground.s sub_8115628 +081156d0 ground.s sub_81156D0 +0811572c normal.s AnimConfusionDuck +08115798 normal.s AnimConfusionDuckStep +081157fc normal.s AnimSimplePaletteBlend +0811583c normal.s UnpackSelectedBattleAnimPalettes +08115884 normal.s AnimSimplePaletteBlendStep +081158a4 normal.s sub_81158A4 +081158f8 normal.s sub_81158F8 +08115984 normal.s sub_8115984 +081159b4 normal.s sub_81159B4 +08115a04 normal.s sub_8115A04 +08115a54 normal.s sub_8115A54 +08115aa4 normal.s sub_8115AA4 +08115b0c normal.s sub_8115B0C +08115bc8 normal.s sub_8115BC8 +08115c18 normal.s sub_8115C18 +08115c80 normal.s sub_8115C80 +08115cd0 normal.s sub_8115CD0 +08115d2c normal.s sub_8115D2C +08115d94 normal.s sub_8115D94 +08115e00 normal.s sub_8115E00 +08115eb8 normal.s sub_8115EB8 +08115f10 normal.s sub_8115F10 +08115f94 normal.s sub_8115F94 +081160a4 normal.s sub_81160A4 +08116148 normal.s sub_8116148 +081161f4 normal.s sub_81161F4 +081162a4 normal.s sub_81162A4 +081162f8 normal.s sub_81162F8 +08116388 normal.s sub_8116388 +081163d0 normal.s sub_81163D0 +08116420 normal.s sub_8116420 +08116458 normal.s sub_8116458 +081164f0 normal.s sub_81164F0 +08116560 normal.s sub_8116560 +081165a8 normal.s sub_81165A8 +081165e4 normal.s sub_81165E4 +08116620 battle_anim_utility_funcs.s sub_8116620 +08116664 battle_anim_utility_funcs.s sub_8116664 +0811675c battle_anim_utility_funcs.s AnimTask_SetCamouflageBlend +08116848 battle_anim_utility_funcs.s AnimTask_BlendParticle +08116874 battle_anim_utility_funcs.s StartBlendAnimSpriteColor +081168b8 battle_anim_utility_funcs.s AnimTask_BlendSpriteColor_Step2 +08116960 battle_anim_utility_funcs.s sub_8116960 +081169a0 battle_anim_utility_funcs.s sub_81169A0 +081169c0 battle_anim_utility_funcs.s sub_81169C0 +081169f8 battle_anim_utility_funcs.s sub_81169F8 +08116ad0 battle_anim_utility_funcs.s sub_8116AD0 +08116b14 battle_anim_utility_funcs.s sub_8116B14 +08116d64 battle_anim_utility_funcs.s sub_8116D64 +08116eb4 battle_anim_utility_funcs.s sub_8116EB4 +08116f04 battle_anim_utility_funcs.s sub_8116F04 +081170ec battle_anim_utility_funcs.s sub_81170EC +081172ec battle_anim_utility_funcs.s sub_81172EC +08117494 battle_anim_utility_funcs.s sub_8117494 +08117500 battle_anim_utility_funcs.s sub_8117500 +081175c4 battle_anim_utility_funcs.s sub_81175C4 +08117610 battle_anim_utility_funcs.s sub_8117610 +08117660 battle_anim_utility_funcs.s sub_8117660 +081176d8 battle_anim_utility_funcs.s sub_81176D8 +08117754 battle_anim_utility_funcs.s AnimTask_GetAttackerSide +08117780 battle_anim_utility_funcs.s AnimTask_GetTargetSide +081177ac battle_anim_utility_funcs.s AnimTask_GetTargetIsAttackerPartner +081177e4 battle_anim_utility_funcs.s sub_81177E4 +08117854 battle_anim_utility_funcs.s sub_8117854 +08117a60 battle_anim_utility_funcs.s sub_8117A60 +08117c24 battle_anim_utility_funcs.s AnimTask_GetBattleTerrain +08117c44 battle_anim_utility_funcs.s sub_8117C44 +08117c70 battle_anim_utility_funcs.s sub_8117C70 +08117ca0 battle_anim_utility_funcs.s sub_8117CA0 +08117d3c battle_anim_utility_funcs.s sub_8117D3C +08117dd8 battle_anim_utility_funcs.s sub_8117DD8 +08117e60 battle_anim_utility_funcs.s AnimTask_IsContest +08117e94 battle_anim_utility_funcs.s sub_8117E94 +08117ec4 battle_anim_utility_funcs.s AnimTask_IsTargetSameSide +08117f10 battle_anim_utility_funcs.s sub_8117F10 +08117f30 battle_anim_utility_funcs.s sub_8117F30 +08117f60 battle_anim_utility_funcs.s sub_8117F60 +08117fd0 battle_anim_utility_funcs.s sub_8117FD0 +0811802c battle_intro.s SetAnimBgAttribute +08118140 battle_intro.s GetAnimBgAttribute +081181d4 battle_intro.s HandleIntroSlide +0811828c battle_intro.s sub_811828C +081182ec battle_intro.s BattleIntroSlide1 +08118538 battle_intro.s BattleIntroSlide2 +08118844 battle_intro.s BattleIntroSlide3 +08118ac0 battle_intro.s BattleIntroSlideLink +08118d68 battle_intro.s BattleIntroSlidePartner +08118fbc battle_intro.s sub_8118FBC +08119094 battle_intro.s unref_sub_8119094 +08119164 bike.s MovePlayerOnBike +0811919c bike.s MovePlayerOnMachBike +081191cc bike.s GetMachBikeTransition +08119224 bike.s MachBikeTransition_FaceDirection +08119238 bike.s MachBikeTransition_TurnDirection +08119280 bike.s MachBikeTransition_TrySpeedUp +08119344 bike.s MachBikeTransition_TrySlowDown +081193c8 bike.s MovePlayerOnAcroBike +08119400 bike.s CheckMovementInputAcroBike +0811942c bike.s AcroBikeHandleInputNormal +081194c8 bike.s AcroBikeHandleInputTurning +08119540 bike.s AcroBikeHandleInputWheelieStanding +081195e0 bike.s AcroBikeHandleInputBunnyHop +08119688 bike.s AcroBikeHandleInputWheelieMoving +08119764 bike.s AcroBikeHandleInputSidewaysJump +081197c0 bike.s AcroBikeHandleInputTurnJump +081197e4 bike.s AcroBikeTransition_FaceDirection +081197f4 bike.s AcroBikeTransition_TurnDirection +08119830 bike.s AcroBikeTransition_Moving +081198c0 bike.s AcroBikeTransition_NormalToWheelie +081198fc bike.s AcroBikeTransition_WheelieToNormal +08119938 bike.s AcroBikeTransition_WheelieIdle +08119974 bike.s AcroBikeTransition_WheelieHoppingStanding +081199b0 bike.s AcroBikeTransition_WheelieHoppingMoving +08119a24 bike.s AcroBikeTransition_SideJump +08119a94 bike.s AcroBikeTransition_TurnJump +08119aa4 bike.s AcroBikeTransition_WheelieMoving +08119b34 bike.s AcroBikeTransition_WheelieRisingMoving +08119bc4 bike.s AcroBikeTransition_WheelieLoweringMoving +08119c3c bike.s Bike_TryAcroBikeHistoryUpdate +08119c64 bike.s AcroBike_TryHistoryUpdate +08119ccc bike.s HasPlayerInputTakenLongerThanList +08119d30 bike.s AcroBike_GetJumpDirection +08119d80 bike.s Bike_UpdateDirTimerHistory +08119dbc bike.s Bike_UpdateABStartSelectHistory +08119df8 bike.s Bike_DPadToDirection +08119e38 bike.s get_some_collision +08119ea4 bike.s Bike_CheckCollisionTryAdvanceCollisionCount +08119ef0 bike.s RS_IsRunningDisallowed +08119f18 bike.s IsRunningDisallowedByMetatile +08119f50 bike.s Bike_TryAdvanceCyclingRoadCollisions +08119f74 bike.s CanBikeFaceDirOnMetatile +08119fc4 bike.s WillPlayerCollideWithCollision +08119ff8 bike.s IsBikingDisallowedByPlayer +0811a044 bike.s player_should_look_direction_be_enforced_upon_movement +0811a080 bike.s GetOnOffBike +0811a0d0 bike.s BikeClearState +0811a114 bike.s Bike_UpdateBikeCounterSpeed +0811a128 bike.s Bike_SetBikeStill +0811a138 bike.s GetPlayerSpeed +0811a188 bike.s Bike_HandleBumpySlopeJump +0811a1dc bike.s IsRunningDisallowed +0811a20c easy_chat.s DoEasyChatScreen +0811a278 easy_chat.s MainCallback_EasyChatScreen +0811a290 easy_chat.s VBlankCallback_EasyChatScreen +0811a2a4 easy_chat.s sub_811A2A4 +0811a2c0 easy_chat.s sub_811A2C0 +0811a2fc easy_chat.s sub_811A2FC +0811a428 easy_chat.s sub_811A428 +0811a4d0 easy_chat.s sub_811A4D0 +0811a4f0 easy_chat.s ShowEasyChatScreen +0811a7e4 easy_chat.s sub_811A7E4 +0811a858 easy_chat.s sub_811A858 +0811a868 easy_chat.s sub_811A868 +0811a88c easy_chat.s sub_811A88C +0811a8a4 easy_chat.s sub_811A8A4 +0811a8cc easy_chat.s DoQuizAnswerEasyChatScreen +0811a8f0 easy_chat.s DoQuizQuestionEasyChatScreen +0811a914 easy_chat.s DoQuizSetAnswerEasyChatScreen +0811a938 easy_chat.s DoQuizSetQuestionEasyChatScreen +0811a95c easy_chat.s EasyChat_AllocateResources +0811aa90 easy_chat.s EasyChat_FreeResources +0811aaac easy_chat.s sub_811AAAC +0811ab44 easy_chat.s sub_811AB44 +0811ab68 easy_chat.s sub_811AB68 +0811acdc easy_chat.s sub_811ACDC +0811ae44 easy_chat.s sub_811AE44 +0811af00 easy_chat.s sub_811AF00 +0811af8c easy_chat.s sub_811AF8C +0811afec easy_chat.s sub_811AFEC +0811b040 easy_chat.s sub_811B040 +0811b08c easy_chat.s sub_811B08C +0811b0bc easy_chat.s sub_811B0BC +0811b0e8 easy_chat.s sub_811B0E8 +0811b0f8 easy_chat.s sub_811B0F8 +0811b150 easy_chat.s sub_811B150 +0811b184 easy_chat.s sub_811B184 +0811b1b4 easy_chat.s sub_811B1B4 +0811b264 easy_chat.s sub_811B264 +0811b2a4 easy_chat.s sub_811B2A4 +0811b2b0 easy_chat.s sub_811B2B0 +0811b32c easy_chat.s sub_811B32C +0811b33c easy_chat.s sub_811B33C +0811b368 easy_chat.s sub_811B368 +0811b394 easy_chat.s sub_811B394 +0811b3e4 easy_chat.s sub_811B3E4 +0811b418 easy_chat.s sub_811B418 +0811b454 easy_chat.s sub_811B454 +0811b488 easy_chat.s sub_811B488 +0811b4ac easy_chat.s sub_811B4AC +0811b4ec easy_chat.s sub_811B4EC +0811b528 easy_chat.s sub_811B528 +0811b568 easy_chat.s sub_811B568 +0811b634 easy_chat.s sub_811B634 +0811b6c4 easy_chat.s sub_811B6C4 +0811b744 easy_chat.s sub_811B744 +0811b768 easy_chat.s sub_811B768 +0811b794 easy_chat.s sub_811B794 +0811b8c8 easy_chat.s sub_811B8C8 +0811b8e8 easy_chat.s sub_811B8E8 +0811b908 easy_chat.s sub_811B908 +0811b940 easy_chat.s sub_811B940 +0811b960 easy_chat.s sub_811B960 +0811b978 easy_chat.s sub_811B978 +0811b9a0 easy_chat.s sub_811B9A0 +0811b9c8 easy_chat.s sub_811B9C8 +0811ba1c easy_chat.s sub_811BA1C +0811ba3c easy_chat.s FooterHasFourOptions +0811ba5c easy_chat.s GetEasyChatScreenType +0811ba68 easy_chat.s GetEasyChatScreenFrameId +0811ba88 easy_chat.s GetTitleText +0811ba94 easy_chat.s GetEasyChatWordBuffer +0811baa0 easy_chat.s GetNumRows +0811baac easy_chat.s GetNumColumns +0811bab8 easy_chat.s GetMainCursorColumn +0811bac4 easy_chat.s GetMainCursorRow +0811bad0 easy_chat.s GetEasyChatInstructionsText +0811bb08 easy_chat.s GetEasyChatConfirmText +0811bb40 easy_chat.s sub_811BB40 +0811bb88 easy_chat.s GetEasyChatConfirmDeletionText +0811bb9c easy_chat.s sub_811BB9C +0811bbb0 easy_chat.s sub_811BBB0 +0811bbbc easy_chat.s sub_811BBBC +0811bbc8 easy_chat.s sub_811BBC8 +0811bbdc easy_chat.s sub_811BBDC +0811bbe8 easy_chat.s sub_811BBE8 +0811bbf4 easy_chat.s unref_sub_811BBF4 +0811bbf8 easy_chat.s sub_811BBF8 +0811bc2c easy_chat.s sub_811BC2C +0811bc70 easy_chat.s FooterHasFourOptions_ +0811bc7c easy_chat.s sub_811BC7C +0811bcbc easy_chat.s GetDisplayedPersonType +0811bcc8 easy_chat.s GetEachChatScreenTemplateId +0811bcf4 easy_chat.s sub_811BCF4 +0811bd2c easy_chat.s sub_811BD2C +0811bd64 easy_chat.s sub_811BD64 +0811bdb0 easy_chat.s sub_811BDB0 +0811bdf0 easy_chat.s sub_811BDF0 +0811be54 easy_chat.s sub_811BE54 +0811be9c easy_chat.s sub_811BE9C +0811bf20 easy_chat.s sub_811BF20 +0811bf40 easy_chat.s sub_811BF40 +0811bf78 easy_chat.s sub_811BF78 +0811bf88 easy_chat.s sub_811BF88 +0811bf8c easy_chat.s sub_811BF8C +0811bfa4 easy_chat.s sub_811BFA4 +0811c13c easy_chat.s sub_811C13C +0811c158 easy_chat.s sub_811C158 +0811c170 easy_chat.s sub_811C170 +0811c2d4 easy_chat.s sub_811C2D4 +0811c30c easy_chat.s sub_811C30C +0811c3e4 easy_chat.s sub_811C3E4 +0811c404 easy_chat.s sub_811C404 +0811c448 easy_chat.s sub_811C448 +0811c48c easy_chat.s sub_811C48C +0811c4d0 easy_chat.s sub_811C4D0 +0811c518 easy_chat.s sub_811C518 +0811c554 easy_chat.s sub_811C554 +0811c620 easy_chat.s sub_811C620 +0811c6c0 easy_chat.s sub_811C6C0 +0811c780 easy_chat.s sub_811C780 +0811c78c easy_chat.s sub_811C78C +0811c7d4 easy_chat.s sub_811C7D4 +0811c830 easy_chat.s sub_811C830 +0811c8f0 easy_chat.s sub_811C8F0 +0811c99c easy_chat.s sub_811C99C +0811ca5c easy_chat.s sub_811CA5C +0811cb18 easy_chat.s sub_811CB18 +0811cb24 easy_chat.s sub_811CB24 +0811cb98 easy_chat.s sub_811CB98 +0811cc08 easy_chat.s sub_811CC08 +0811cc90 easy_chat.s sub_811CC90 +0811cd14 easy_chat.s sub_811CD14 +0811cd54 easy_chat.s sub_811CD54 +0811cd94 easy_chat.s sub_811CD94 +0811cdd4 easy_chat.s sub_811CDD4 +0811ce14 easy_chat.s sub_811CE14 +0811ce54 easy_chat.s sub_811CE54 +0811ce94 easy_chat.s sub_811CE94 +0811cf04 easy_chat.s sub_811CF04 +0811cf64 easy_chat.s sub_811CF64 +0811cfcc easy_chat.s sub_811CFCC +0811d028 easy_chat.s sub_811D028 +0811d058 easy_chat.s sub_811D058 +0811d0bc easy_chat.s sub_811D0BC +0811d104 easy_chat.s sub_811D104 +0811d214 easy_chat.s sub_811D214 +0811d230 easy_chat.s sub_811D230 +0811d2c8 easy_chat.s sub_811D2C8 +0811d424 easy_chat.s sub_811D424 +0811d60c easy_chat.s sub_811D60C +0811d684 easy_chat.s sub_811D684 +0811d698 easy_chat.s sub_811D698 +0811d6d4 easy_chat.s sub_811D6D4 +0811d6f4 easy_chat.s sub_811D6F4 +0811d758 easy_chat.s sub_811D758 +0811d794 easy_chat.s sub_811D794 +0811d7a4 easy_chat.s sub_811D7A4 +0811d7c8 easy_chat.s sub_811D7C8 +0811d7ec easy_chat.s sub_811D7EC +0811d830 easy_chat.s sub_811D830 +0811d864 easy_chat.s sub_811D864 +0811d950 easy_chat.s sub_811D950 +0811d9b4 easy_chat.s sub_811D9B4 +0811d9cc easy_chat.s sub_811D9CC +0811daa4 easy_chat.s sub_811DAA4 +0811dadc easy_chat.s sub_811DADC +0811dc28 easy_chat.s sub_811DC28 +0811dd84 easy_chat.s sub_811DD84 +0811ddac easy_chat.s sub_811DDAC +0811de10 easy_chat.s sub_811DE10 +0811de48 easy_chat.s sub_811DE48 +0811de5c easy_chat.s sub_811DE5C +0811de90 easy_chat.s sub_811DE90 +0811dec4 easy_chat.s sub_811DEC4 +0811df28 easy_chat.s sub_811DF28 +0811df60 easy_chat.s sub_811DF60 +0811df90 easy_chat.s sub_811DF90 +0811dfb0 easy_chat.s sub_811DFB0 +0811dfc8 easy_chat.s sub_811DFC8 +0811e050 easy_chat.s sub_811E050 +0811e088 easy_chat.s sub_811E088 +0811e0ec easy_chat.s sub_811E0EC +0811e1a4 easy_chat.s sub_811E1A4 +0811e288 easy_chat.s sub_811E288 +0811e2dc easy_chat.s sub_811E2DC +0811e30c easy_chat.s sub_811E30C +0811e34c easy_chat.s sub_811E34C +0811e380 easy_chat.s sub_811E380 +0811e3ac easy_chat.s sub_811E3AC +0811e418 easy_chat.s sub_811E418 +0811e4ac easy_chat.s sub_811E4AC +0811e4d0 easy_chat.s sub_811E4D0 +0811e55c easy_chat.s sub_811E55C +0811e578 easy_chat.s sub_811E578 +0811e5b8 easy_chat.s sub_811E5B8 +0811e5d4 easy_chat.s sub_811E5D4 +0811e64c easy_chat.s sub_811E64C +0811e6b0 easy_chat.s sub_811E6B0 +0811e6e0 easy_chat.s sub_811E6E0 +0811e720 easy_chat.s sub_811E720 +0811e794 easy_chat.s sub_811E794 +0811e7f8 easy_chat.s sub_811E7F8 +0811e828 easy_chat.s sub_811E828 +0811e8e4 easy_chat.s GetFooterIndex +0811e920 easy_chat.s GetFooterOptionXOffset +0811e948 easy_chat.s sub_811E948 +0811ea28 easy_chat.s sub_811EA28 +0811ea6c easy_chat.s EasyChat_GetNumWordsInGroup +0811eaa4 easy_chat.s sub_811EAA4 +0811eb10 easy_chat.s ECWord_CheckIfOutsideOfValidRange +0811eb64 easy_chat.s GetEasyChatWord +0811ebbc easy_chat.s CopyEasyChatWord +0811ec08 easy_chat.s ConvertEasyChatWordsToString +0811ec98 easy_chat.s unref_sub_811EC98 +0811ed7c easy_chat.s GetEasyChatWordStringLength +0811edc4 easy_chat.s sub_811EDC4 +0811ee38 easy_chat.s sub_811EE38 +0811ee90 easy_chat.s sub_811EE90 +0811eecc easy_chat.s sub_811EECC +0811ef6c easy_chat.s sub_811EF6C +0811ef98 easy_chat.s sub_811EF98 +0811efc0 easy_chat.s sub_811EFC0 +0811eff0 easy_chat.s sub_811EFF0 +0811f01c easy_chat.s sub_811F01C +0811f090 easy_chat.s sub_811F090 +0811f0f8 easy_chat.s sub_811F0F8 +0811f108 easy_chat.s sub_811F108 +0811f184 easy_chat.s InitEasyChatPhrases +0811f28c easy_chat.s sub_811F28C +0811f2b8 easy_chat.s sub_811F2B8 +0811f2d4 easy_chat.s sub_811F2D4 +0811f3ac easy_chat.s sub_811F3AC +0811f3b8 easy_chat.s sub_811F3B8 +0811f3e0 easy_chat.s unref_sub_811F3E0 +0811f424 easy_chat.s GetEasyChatWordGroupName +0811f434 easy_chat.s CopyEasyChatWordPadded +0811f46c easy_chat.s sub_811F46C +0811f548 easy_chat.s sub_811F548 +0811f578 easy_chat.s sub_811F578 +0811f5b0 easy_chat.s sub_811F5B0 +0811f5c4 easy_chat.s sub_811F5C4 +0811f6b8 easy_chat.s sub_811F6B8 +0811f72c easy_chat.s sub_811F72C +0811f764 easy_chat.s sub_811F764 +0811f838 easy_chat.s sub_811F838 +0811f860 easy_chat.s sub_811F860 +0811f88c easy_chat.s InitializeEasyChatWordArray +0811f8bc easy_chat.s sub_811F8BC +0811f8d8 easy_chat.s sub_811F8D8 +0811f90c mon_markings.s sub_811F90C +0811f918 mon_markings.s sub_811F918 +0811f960 mon_markings.s sub_811F960 +0811fa90 mon_markings.s sub_811FA90 +0811faa4 mon_markings.s sub_811FAA4 +0811faf8 mon_markings.s sub_811FAF8 +0811fba4 mon_markings.s sub_811FBA4 +0811fc80 mon_markings.s sub_811FC80 +0811ff3c mon_markings.s TaskDummy7 +0811ff40 mon_markings.s sub_811FF40 +0811ff7c mon_markings.s sub_811FF7C +0811ff94 mon_markings.s sub_811FF94 +0811ffb4 mon_markings.s sub_811FFB4 +0811ffd4 mon_markings.s sub_811FFD4 +08120084 mon_markings.s sub_8120084 +081200a0 mauville_old_man.s SetupBard +081200f8 mauville_old_man.s SetupHipster +0812011c mauville_old_man.s SetupStoryteller +08120128 mauville_old_man.s SetupGiddy +08120154 mauville_old_man.s SetupTrader +08120160 mauville_old_man.s SetMauvilleOldMan +081201c8 mauville_old_man.s GetCurrentMauvilleOldMan +081201dc mauville_old_man.s ScrSpecial_GetCurrentMauvilleMan +081201f4 mauville_old_man.s ScrSpecial_HasBardSongBeenChanged +08120210 mauville_old_man.s ScrSpecial_SaveBardSongLyrics +08120280 mauville_old_man.s PrepareSongText +08120340 mauville_old_man.s ScrSpecial_PlayBardSong +08120358 mauville_old_man.s ScrSpecial_GetHipsterSpokenFlag +08120374 mauville_old_man.s ScrSpecial_SetHipsterSpokenFlag +0812038c mauville_old_man.s ScrSpecial_HipsterTeachWord +081203c4 mauville_old_man.s ScrSpecial_GiddyShouldTellAnotherTale +081203fc mauville_old_man.s ScrSpecial_GenerateGiddyLine +081204dc mauville_old_man.s InitGiddyTaleList +08120628 mauville_old_man.s ResetBardFlag +08120640 mauville_old_man.s ResetHipsterFlag +08120658 mauville_old_man.s ResetTraderFlag +08120664 mauville_old_man.s ResetStorytellerFlag +08120670 mauville_old_man.s ResetMauvilleOldManFlag +081206c0 mauville_old_man.s StartBardSong +081206f0 mauville_old_man.s sub_81206F0 +081206fc mauville_old_man.s BardSong_TextSubPrinter +08120708 mauville_old_man.s sub_8120708 +08120748 mauville_old_man.s BardSing +08120944 mauville_old_man.s Task_BardSong +08120b5c mauville_old_man.s ScrSpecial_SetMauvilleOldManEventObjGfx +08120b70 mauville_old_man.s sub_8120B70 +08120c0c mauville_old_man.s sub_8120C0C +08120cd0 mauville_old_man.s SanitizeReceivedEmeraldOldMan +08120d34 mauville_old_man.s SanitizeReceivedRubyOldMan +08120e08 mauville_old_man.s StorytellerSetup +08120e50 mauville_old_man.s Storyteller_ResetFlag +08120e74 mauville_old_man.s StorytellerGetGameStat +08120e88 mauville_old_man.s GetStoryByStat +08120eb4 mauville_old_man.s GetStoryTitleByStat +08120ec0 mauville_old_man.s GetStoryTextByStat +08120ecc mauville_old_man.s GetStoryActionByStat +08120ed8 mauville_old_man.s GetFreeStorySlot +08120f08 mauville_old_man.s StorytellerGetRecordedTrainerStat +08120f2c mauville_old_man.s StorytellerSetRecordedTrainerStat +08120f4c mauville_old_man.s HasTrainerStatIncreased +08120f7c mauville_old_man.s GetStoryByStattellerPlayerName +08120fac mauville_old_man.s StorytellerSetPlayerName +08120fdc mauville_old_man.s StorytellerRecordNewStat +08121064 mauville_old_man.s ScrambleStatList +081210b8 mauville_old_man.s StorytellerInitializeRandomStat +08121178 mauville_old_man.s StorytellerDisplayStory +081211ec mauville_old_man.s PrintStoryList +081212fc mauville_old_man.s Task_StoryListMenu +08121388 mauville_old_man.s ScrSpecial_StorytellerStoryListMenu +0812139c mauville_old_man.s ScrSpecial_StorytellerDisplayStory +081213b0 mauville_old_man.s ScrSpecial_StorytellerGetFreeStorySlot +081213d8 mauville_old_man.s ScrSpecial_StorytellerUpdateStat +08121424 mauville_old_man.s ScrSpecial_HasStorytellerAlreadyRecorded +08121450 mauville_old_man.s ScrSpecial_StorytellerInitializeRandomStat +08121478 mail.s ReadMail +081215ec mail.s MailReadBuildGraphics +081219f0 mail.s CB2_InitMailRead +08121a1c mail.s sub_8121A1C +08121b1c mail.s sub_8121B1C +08121c50 mail.s VBlankCB_MailRead +08121c64 mail.s CB2_MailRead +08121c98 mail.s CB2_WaitForPaletteExitOnKeyPress +08121cc0 mail.s CB2_ExitOnKeyPress +08121d00 mail.s CB2_ExitMailReadFreeVars +08121da0 menu_helpers.s ResetVramOamAndBgCntRegs +08121e10 menu_helpers.s ResetAllBgsCoordinates +08121e68 menu_helpers.s SetVBlankHBlankCallbacksToNull +08121e7c menu_helpers.s DisplayMessageAndContinueTask +08121f20 menu_helpers.s RunTextPrintersRetIsActive +08121f3c menu_helpers.s Task_ContinueTaskAfterMessagePrints +08121f68 menu_helpers.s DoYesNoFuncWithChoice +08121f94 menu_helpers.s CreateYesNoMenuWithCallbacks +08121fdc menu_helpers.s Task_CallYesOrNoCallback +08122034 menu_helpers.s AdjustQuantityAccordingToDPadInput +081220d0 menu_helpers.s GetLRKeysState +0812210c menu_helpers.s sub_812210C +08122148 menu_helpers.s sub_8122148 +0812217c menu_helpers.s itemid_80BF6D8_mail_related +081221ac menu_helpers.s sub_81221AC +081221d0 menu_helpers.s sub_81221D0 +081221ec menu_helpers.s sub_81221EC +0812220c menu_helpers.s sub_812220C +0812225c menu_helpers.s sub_812225C +08122298 menu_helpers.s sub_8122298 +08122328 menu_helpers.s LoadListMenuArrowsGfx +08122344 menu_helpers.s sub_8122344 +081223b0 menu_helpers.s sub_81223B0 +081223fc menu_helpers.s sub_81223FC +08122448 menu_helpers.s sub_8122448 +081224d4 dewford_trend.s InitDewfordTrend +08122580 dewford_trend.s UpdateDewfordTrendPerDay +081226d8 dewford_trend.s sub_81226D8 +08122804 dewford_trend.s sub_8122804 +0812287c dewford_trend.s ReceiveEasyChatPairsData +08122998 dewford_trend.s BufferTrendyPhraseString +081229c8 dewford_trend.s TrendyPhraseIsOld +08122a30 dewford_trend.s GetDewfordHallPaintingNameIndex +08122a58 dewford_trend.s sub_8122A58 +08122b28 dewford_trend.s sub_8122B28 +08122bb0 dewford_trend.s SB1ContainsWords +08122bf0 dewford_trend.s IsEasyChatPairEqual +08122c1c dewford_trend.s GetEqualEasyChatPairIndex +08122c5c heal_location.s GetHealLocationIndexByMap +08122c94 heal_location.s GetHealLocationByMap +08122cbc heal_location.s GetHealLocation +08122cdc region_map.s InitRegionMap +08122cf8 region_map.s sub_8122CF8 +08122d88 region_map.s sub_8122D88 +08122db0 region_map.s sub_8122DB0 +08123030 region_map.s sub_8123030 +0812305c region_map.s FreeRegionMapIconResources +081230ac region_map.s sub_81230AC +081230c4 region_map.s ProcessRegionMapInput_Full +08123190 region_map.s MoveRegionMapCursor_Full +08123254 region_map.s ProcessRegionMapInput_Zoomed +08123334 region_map.s MoveRegionMapCursor_Zoomed +08123418 region_map.s sub_8123418 +08123514 region_map.s sub_8123514 +081236c4 region_map.s CalcZoomScrollParams +0812378c region_map.s RegionMap_SetBG2XAndBG2Y +081237b4 region_map.s UpdateRegionMapVideoRegs +08123824 region_map.s PokedexAreaScreen_UpdateRegionMapVariablesAndVideoRegs +0812386c region_map.s GetRegionMapSectionIdAt_Internal +081238ac region_map.s RegionMap_InitializeStateBasedOnPlayerLocation +08123c00 region_map.s RegionMap_InitializeStateBasedOnSSTidalLocation +08123d58 region_map.s get_flagnr_blue_points +08123e9c region_map.s GetRegionMapSectionIdAt +08123eb4 region_map.s CorrectSpecialMapSecId_Internal +08123f04 region_map.s RegionMap_GetTerraCaveMapSecId +08123f30 region_map.s RegionMap_GetMarineCaveCoords +08123f74 region_map.s RegionMap_IsPlayerInCave +08123f9c region_map.s CorrectSpecialMapSecId +08123fb0 region_map.s RegionMap_GetPositionOfCursorWithinMapSection +08124038 region_map.s RegionMap_IsMapSecIdInNextRow +08124088 region_map.s SpriteCallback_CursorFull +081240d0 region_map.s SpriteCallback_CursorZoomed +081240d4 region_map.s CreateRegionMapCursor +08124238 region_map.s FreeRegionMapCursorSprite +08124268 region_map.s sub_8124268 +08124278 region_map.s sub_8124278 +08124288 region_map.s CreateRegionMapPlayerIcon +081243b0 region_map.s HideRegionMapPlayerIcon +081243dc region_map.s UnhideRegionMapPlayerIcon +0812445c region_map.s RegionMapPlayerIconSpriteCallback_Zoomed +081244ec region_map.s RegionMapPlayerIconSpriteCallback_Full +081244f8 region_map.s RegionMapPlayerIconSpriteCallback +0812454c region_map.s sub_812454C +0812456c region_map.s GetMapName +081245dc region_map.s sub_81245DC +08124610 region_map.s sub_8124610 +08124630 region_map.s sub_8124630 +08124658 region_map.s sub_8124658 +08124668 region_map.s sub_8124668 +08124690 region_map.s MCB2_FlyMap +081248c0 region_map.s sub_81248C0 +081248d4 region_map.s sub_81248D4 +081248f4 region_map.s sub_81248F4 +08124904 region_map.s sub_8124904 +08124a70 region_map.s sub_8124A70 +08124ad4 region_map.s sub_8124AD4 +08124be4 region_map.s sub_8124BE4 +08124cbc region_map.s sub_8124CBC +08124d14 region_map.s sub_8124D14 +08124d64 region_map.s sub_8124D64 +08124e0c region_map.s sub_8124E0C +08124f2c contest_painting_effects.s sub_8124F2C +081250b8 contest_painting_effects.s sub_81250B8 +08125170 contest_painting_effects.s sub_8125170 +08125230 contest_painting_effects.s sub_8125230 +08125250 contest_painting_effects.s sub_8125250 +081252e8 contest_painting_effects.s sub_81252E8 +081253a4 contest_painting_effects.s sub_81253A4 +08125448 contest_painting_effects.s sub_8125448 +081254e0 contest_painting_effects.s sub_81254E0 +08125630 contest_painting_effects.s sub_8125630 +081256c8 contest_painting_effects.s sub_81256C8 +081257f8 contest_painting_effects.s sub_81257F8 +081258a0 contest_painting_effects.s sub_81258A0 +08125954 contest_painting_effects.s sub_8125954 +08125b28 contest_painting_effects.s ConvertColorToGrayscale +08125b5c contest_painting_effects.s ConvertCoolColor +08125b98 contest_painting_effects.s GetCoolColorFromPersonality +08125c68 contest_painting_effects.s ConvertToBlackOrWhite +08125c98 contest_painting_effects.s sub_8125C98 +08125cc8 contest_painting_effects.s InvertColor +08125cf4 contest_painting_effects.s sub_8125CF4 +08125e18 contest_painting_effects.s sub_8125E18 +08125f38 contest_painting_effects.s sub_8125F38 +08126058 contest_painting_effects.s sub_8126058 +081261a4 contest_painting_effects.s sub_81261A4 +08126270 contest_painting_effects.s sub_8126270 +08126318 contest_painting_effects.s sub_8126318 +08126334 contest_painting_effects.s sub_8126334 +08126370 contest_painting_effects.s sub_8126370 +081263a4 contest_painting_effects.s sub_81263A4 +081264fc contest_painting_effects.s sub_81264FC +081265b4 contest_painting_effects.s sub_81265B4 +08126664 contest_painting_effects.s sub_8126664 +08126714 contest_painting_effects.s sub_8126714 +081267c4 contest_painting_effects.s sub_81267C4 +08126838 contest_painting_effects.s sub_8126838 +08126908 contest_painting_effects.s sub_8126908 +0812693c contest_painting_effects.s sub_812693C +08126968 decoration.s InitDecorationContextItems +081269d4 decoration.s AddDecorationWindow +08126a58 decoration.s RemoveDecorationWindow +08126a88 decoration.s AddDecorationActionsWindow +08126abc decoration.s InitDecorationActionsWindow +08126ad8 decoration.s DoSecretBaseDecorationMenu +08126b2c decoration.s DoPlayerRoomDecorationMenu +08126b80 decoration.s HandleDecorationActionsMenuInput +08126c08 decoration.s PrintCurMainMenuDescription +08126c48 decoration.s DecorationMenuAction_Decorate +08126ca4 decoration.s DecorationMenuAction_PutAway +08126d10 decoration.s DecorationMenuAction_Toss +08126d6c decoration.s DecorationMenuAction_Cancel +08126da4 decoration.s ReturnToDecorationActionsAfterInvalidSelection +08126dcc decoration.s SecretBasePC_PrepMenuForSelectingStoredDecors +08126dfc decoration.s InitDecorationCategoriesWindow +08126e44 decoration.s sub_8126E44 +08126e8c decoration.s PrintDecorationCategoryMenuItems +08126f68 decoration.s PrintDecorationCategoryMenuItem +08127058 decoration.s ColorMenuItemString +08127088 decoration.s HandleDecorationCategoriesMenuInput +081270e8 decoration.s SelectDecorationCategory +08127180 decoration.s ReturnToDecorationCategoriesAfterInvalidSelection +0812719c decoration.s ExitDecorationCategoriesMenu +081271cc decoration.s ReturnToActionsMenuFromCategories +08127208 decoration.s ShowDecorationCategoriesWindow +08127250 decoration.s CopyDecorationCategoryName +08127268 decoration.s ExitTraderDecorationMenu +08127284 decoration.s InitDecorationItemsMenuLimits +081272c8 decoration.s sub_81272C8 +081272f8 decoration.s sub_81272F8 +08127330 decoration.s PrintDecorationItemMenuItems +08127454 decoration.s CopyDecorationMenuItemName +08127480 decoration.s DecorationItemsMenu_OnCursorMove +081274a0 decoration.s sub_81274A0 +08127500 decoration.s AddDecorationItemsScrollIndicators +08127554 decoration.s RemoveDecorationItemsScrollIndicators +08127580 decoration.s sub_8127580 +0812759c decoration.s InitDecorationItemsWindow +08127620 decoration.s ShowDecorationItemsWindow +0812764c decoration.s HandleDecorationItemsMenuInput +08127718 decoration.s ShowDecorationCategorySummaryWindow +08127744 decoration.s PrintDecorationItemDescription +081277a8 decoration.s RemoveDecorationItemsOtherWindows +081277bc decoration.s sub_81277BC +081277e8 decoration.s sub_81277E8 +08127814 decoration.s IdentifyOwnedDecorationsCurrentlyInUseInternal +081279b4 decoration.s IdentifyOwnedDecorationsCurrentlyInUse +081279c4 decoration.s IsSelectedDecorInThePC +08127a14 decoration.s sub_8127A14 +08127a30 decoration.s sub_8127A30 +08127a5c decoration.s sub_8127A5C +08127a8c decoration.s sub_8127A8C +08127acc decoration.s sub_8127ACC +08127b04 decoration.s sub_8127B04 +08127b54 decoration.s GetDecorationElevation +08127b90 decoration.s ShowDecorationOnMap_ +08127d38 decoration.s ShowDecorationOnMap +08127e18 decoration.s sub_8127E18 +08127f38 decoration.s sub_8127F38 +08127f68 decoration.s sub_8127F68 +08128060 decoration.s sub_8128060 +08128118 decoration.s ConfigureCameraObjectForPlacingDecoration +081281a8 decoration.s SetUpPlacingDecorationPlayerAvatar +0812826c decoration.s sub_812826C +081283bc decoration.s sub_81283BC +08128414 decoration.s sub_8128414 +08128484 decoration.s sub_8128484 +081284ac decoration.s sub_81284AC +081284f4 decoration.s sub_81284F4 +0812853c decoration.s sub_812853C +08128950 decoration.s sub_8128950 +081289d0 decoration.s sub_81289D0 +081289f0 decoration.s sub_81289F0 +08128aac decoration.s sub_8128AAC +08128b80 decoration.s sub_8128B80 +08128ba0 decoration.s sub_8128BA0 +08128bbc decoration.s sub_8128BBC +08128bec decoration.s c1_overworld_prev_quest +08128c64 decoration.s sub_8128C64 +08128cd4 decoration.s sub_8128CD4 +08128d10 decoration.s sub_8128D10 +08128db4 decoration.s sub_8128DB4 +08128de0 decoration.s sub_8128DE0 +08128e18 decoration.s sub_8128E18 +08128fd8 decoration.s sub_8128FD8 +08129020 decoration.s sub_8129020 +08129048 decoration.s sub_8129048 +08129068 decoration.s sub_8129068 +08129088 decoration.s sub_8129088 +081291a4 decoration.s sub_81291A4 +081291cc decoration.s sub_81291CC +081291e8 decoration.s sub_81291E8 +0812925c decoration.s SetDecorSelectionBoxOamAttributes +081292d0 decoration.s sub_81292D0 +081292e8 decoration.s sub_81292E8 +08129334 decoration.s gpu_pal_decompress_alloc_tag_and_upload +081293d8 decoration.s AddDecorationIconObjectFromIconTable +0812949c decoration.s GetDecorationIconPicOrPalette +081294c0 decoration.s AddDecorationIconObjectFromEventObject +081295cc decoration.s AddDecorationIconObject +081296ec decoration.s sub_81296EC +08129708 decoration.s sub_8129708 +081297ac decoration.s sub_81297AC +081297f8 decoration.s sub_81297F8 +081298ec decoration.s sub_81298EC +081299ac decoration.s sub_81299AC +081299dc decoration.s SetUpPuttingAwayDecorationPlayerAvatar +08129abc decoration.s sub_8129ABC +08129b34 decoration.s sub_8129B34 +08129bcc decoration.s sub_8129BCC +08129bf8 decoration.s sub_8129BF8 +08129c74 decoration.s sub_8129C74 +08129d64 decoration.s sub_8129D64 +08129d8c decoration.s sub_8129D8C +08129e0c decoration.s sub_8129E0C +08129e74 decoration.s sub_8129E74 +08129f20 decoration.s sub_8129F20 +08129fc8 decoration.s sub_8129FC8 +0812a040 decoration.s sub_812A040 +0812a0e8 decoration.s sub_812A0E8 +0812a1a0 decoration.s sub_812A1A0 +0812a1c0 decoration.s sub_812A1C0 +0812a1f0 decoration.s sub_812A1F0 +0812a210 decoration.s sub_812A210 +0812a22c decoration.s sub_812A22C +0812a25c decoration.s sub_812A25C +0812a2c4 decoration.s sub_812A2C4 +0812a334 decoration.s sub_812A334 +0812a36c decoration.s sub_812A36C +0812a39c decoration.s sub_812A39C +0812a3c8 decoration.s sub_812A3C8 +0812a3d4 decoration.s sub_812A3D4 +0812a458 decoration.s sub_812A458 +0812a478 decoration.s sub_812A478 +0812a4dc slot_machine.s Task_FadeToSlotMachine +0812a540 slot_machine.s PlaySlotMachine +0812a588 slot_machine.s CB2_SlotMachineSetup +0812a670 slot_machine.s CB2_SlotMachineLoop +0812a688 slot_machine.s SlotMachine_VBlankCallback +0812a6d4 slot_machine.s PlaySlotMachine_Internal +0812a710 slot_machine.s sub_81019EC +0812a74c slot_machine.s SlotMachineDummyTask +0812a750 slot_machine.s SlotMachineSetup_0_0 +0812a79c slot_machine.s SlotMachineSetup_6_0 +0812a7bc slot_machine.s SlotMachineSetup_1_0 +0812a810 slot_machine.s SlotMachineSetup_2_0 +0812a834 slot_machine.s SlotMachineSetup_2_1 +0812a8c4 slot_machine.s SlotMachineSetup_0_1 +0812a9ac slot_machine.s SlotMachineSetup_3_0 +0812a9cc slot_machine.s SlotMachineSetup_4_0 +0812aa48 slot_machine.s SlotMachineSetup_5_0 +0812aa78 slot_machine.s SlotMachineSetup_10_0 +0812aa90 slot_machine.s SlotMachineSetupGameplayTasks +0812aaa8 slot_machine.s GameplayTasks_Slots +0812aac8 slot_machine.s RunSlotActions +0812ab04 slot_machine.s SlotAction_UnfadeScreen +0812ab38 slot_machine.s SlotAction_WaitForUnfade +0812ab60 slot_machine.s SlotAction_SetSlotMachineVars +0812aba8 slot_machine.s SlotAction3 +0812abc8 slot_machine.s SlotAction4 +0812abf8 slot_machine.s SlotAction_AwaitPlayerInput +0812acf4 slot_machine.s SlotAction_PrintYouDontHaveThreeCoins +0812ad34 slot_machine.s SlotAction_ExitYouDontHaveThreeCoinsMessage +0812ad60 slot_machine.s SlotAction_GivingInformation +0812ad80 slot_machine.s SlotAction9 +0812adf4 slot_machine.s SlotAction10 +0812ae24 slot_machine.s SlotAction_SetLuckySpins +0812ae4c slot_machine.s SlotAction_AwaitReelStop +0812ae88 slot_machine.s SlotAction_WaitForAllReelsToStop +0812aec4 slot_machine.s SlotAction_CheckMatches +0812affc slot_machine.s SlotAction_WaitForPayoutToBeAwarded +0812b01c slot_machine.s SlotAction_EndOfRoll +0812b094 slot_machine.s SlotAction_MatchedPower +0812b0d8 slot_machine.s SlotAction18 +0812b108 slot_machine.s SlotAction_Loop +0812b130 slot_machine.s SlotAction_NoMatches +0812b158 slot_machine.s SlotAction_PrintQuitTheGame +0812b1b0 slot_machine.s SlotAction_SeeIfPlayerQuits +0812b214 slot_machine.s SlotAction_PrintMessage_9999Coins +0812b254 slot_machine.s SlotAction_ExitMessage_9999Coins +0812b280 slot_machine.s SlotAction_PrintMessage_NoMoreCoins +0812b2c0 slot_machine.s SlotAction_ExitMessage_NoMoreCoins +0812b2ec slot_machine.s SlotAction_EndGame +0812b32c slot_machine.s SlotAction_FreeDataStructures +0812b4ec slot_machine.s DrawLuckyFlags +0812b55c slot_machine.s SetLuckySpins +0812b57c slot_machine.s GetBiasTag +0812b5b0 slot_machine.s IsThisRoundLucky +0812b5ec slot_machine.s AttemptsAtLuckyFlags_Top3 +0812b634 slot_machine.s AttemptsAtLuckyFlags_NotTop3 +0812b6cc slot_machine.s GetReelTimeProbability +0812b700 slot_machine.s GetReeltimeDraw +0812b760 slot_machine.s SkipToReeltimeAction14 +0812b78c slot_machine.s SlowReelSpeed +0812b828 slot_machine.s CheckMatch +0812b85c slot_machine.s CheckMatch_CenterRow +0812b8d0 slot_machine.s CheckMatch_TopAndBottom +0812b9a0 slot_machine.s CheckMatch_Diagonals +0812ba6c slot_machine.s GetMatchFromSymbolsInRow +0812babc slot_machine.s AwardPayout +0812badc slot_machine.s IsFinalTask_RunAwardPayoutActions +0812bafc slot_machine.s RunAwardPayoutActions +0812bb34 slot_machine.s AwardPayoutAction0 +0812bb68 slot_machine.s AwardPayoutAction_GivePayoutToPlayer +0812bc20 slot_machine.s AwardPayoutAction_FreeTask +0812bc44 slot_machine.s GetNearbyTag_Quantized +0812bc98 slot_machine.s GetNearbyTag +0812bce8 slot_machine.s GetNearbyReelTimeTag +0812bd28 slot_machine.s AdvanceSlotReel +0812bd70 slot_machine.s AdvanceSlotReelToNextTag +0812bdd4 slot_machine.s AdvanceReeltimeReel +0812be0c slot_machine.s AdvanceReeltimeReelToNextTag +0812be5c slot_machine.s GameplayTask_StopSlotReel +0812bea4 slot_machine.s ReelTasks_SetUnkTaskData +0812bedc slot_machine.s sub_8102E1C +0812bf04 slot_machine.s IsSlotReelMoving +0812bf2c slot_machine.s RunSlotReelActions +0812bf64 slot_machine.s SlotReelAction_StayStill +0812bf68 slot_machine.s SlotReelAction_Spin +0812bf88 slot_machine.s SlotReelAction_DecideWhereToStop +0812c01c slot_machine.s SlotReelAction_MoveToStop +0812c0e0 slot_machine.s SlotReelAction_OscillatingStop +0812c138 slot_machine.s DecideReelTurns_BiasTag_Reel1 +0812c184 slot_machine.s AreTagsAtPosition_Reel1 +0812c1c4 slot_machine.s AreCherriesOnScreen_Reel1 +0812c218 slot_machine.s IsBiasTowardsCherryOr7s +0812c238 slot_machine.s DecideReelTurns_BiasTag_Reel1_Bet1 +0812c290 slot_machine.s DecideReelTurns_BiasTag_Reel1_Bet2or3 +0812c3a0 slot_machine.s DecideReelTurns_BiasTag_Reel2 +0812c3c8 slot_machine.s DecideReelTurns_BiasTag_Reel2_Bet1or2 +0812c414 slot_machine.s DecideReelTurns_BiasTag_Reel2_Bet3 +0812c4bc slot_machine.s DecideReelTurns_BiasTag_Reel3 +0812c500 slot_machine.s DecideReelTurns_BiasTag_Reel3_Bet1or2 +0812c55c slot_machine.s DecideReelTurns_BiasTag_Reel3_Bet3 +0812c5dc slot_machine.s DecideReelTurns_NoBiasTag_Reel1 +0812c608 slot_machine.s IsBiasTag777_SwitchColor +0812c628 slot_machine.s DecideReelTurns_NoBiasTag_Reel2 +0812c64c slot_machine.s DecideReelTurns_NoBiasTag_Reel2_Bet1 +0812c6cc slot_machine.s DecideReelTurns_NoBiasTag_Reel2_Bet2 +0812c74c slot_machine.s DecideReelTurns_NoBiasTag_Reel2_Bet3 +0812c854 slot_machine.s AreTagsMixed77 +0812c87c slot_machine.s AreTagsMixed777 +0812c8ac slot_machine.s TagsDontMatchOrHaveAny7s +0812c8fc slot_machine.s DecideReelTurns_NoBiasTag_Reel3 +0812c920 slot_machine.s DecideReelTurns_NoBiasTag_Reel3_Bet1 +0812ca08 slot_machine.s DecideReelTurns_NoBiasTag_Reel3_Bet2 +0812cb80 slot_machine.s DecideReelTurns_NoBiasTag_Reel3_Bet3 +0812cd40 slot_machine.s sub_8103C14 +0812cd74 slot_machine.s sub_8103C48 +0812cda4 slot_machine.s sub_8103C78 +0812cdd8 slot_machine.s sub_8103CAC +0812cdf4 slot_machine.s sub_8103CC8 +0812ce2c slot_machine.s LoadLitTile +0812ce54 slot_machine.s sub_8103D28 +0812ce7c slot_machine.s LoadBetTiles +0812ceb8 slot_machine.s sub_8103D8C +0812cef4 slot_machine.s sub_8103DC8 +0812cf34 slot_machine.s sub_8103E04 +0812cf6c slot_machine.s sub_8103E38 +0812cfb8 slot_machine.s sub_8103E7C +0812cfec slot_machine.s sub_8103EAC +0812d024 slot_machine.s sub_8103EE4 +0812d0b0 slot_machine.s sub_8103F70 +0812d0e0 slot_machine.s sub_8103FA0 +0812d128 slot_machine.s sub_8103FE8_ +0812d188 slot_machine.s GameplayTask_PikaPower +0812d1a8 slot_machine.s DisplayPikaPower +0812d1dc slot_machine.s sub_8104098 +0812d20c slot_machine.s sub_81040C8 +0812d230 slot_machine.s sub_81040E8 +0812d260 slot_machine.s nullsub_68 +0812d264 slot_machine.s sub_810411C +0812d28c slot_machine.s sub_8104144 +0812d30c slot_machine.s sub_81041AC +0812d394 slot_machine.s ClearTaskDataFields_2orHigher +0812d3b4 slot_machine.s sub_810423C +0812d4ac slot_machine.s BeginReeltime +0812d4cc slot_machine.s IsFinalTask_RunReelTimeActions +0812d4ec slot_machine.s RunReeltimeActions +0812d51c slot_machine.s ReeltimeAction0 +0812d594 slot_machine.s ReeltimeAction1 +0812d60c slot_machine.s ReeltimeAction2 +0812d63c slot_machine.s ReeltimeAction3 +0812d6ec slot_machine.s ReeltimeAction4 +0812d740 slot_machine.s ReeltimeAction5 +0812d774 slot_machine.s ReeltimeAction6 +0812d7e4 slot_machine.s ReelTimeAction_LandOnOutcome +0812d870 slot_machine.s ReeltimeAction8 +0812d920 slot_machine.s ReeltimeAction9 +0812d950 slot_machine.s ReeltimeAction10 +0812d9a4 slot_machine.s ReeltimeAction11 +0812da20 slot_machine.s ReeltimeAction12 +0812da6c slot_machine.s ReeltimeAction13 +0812da90 slot_machine.s ReeltimeAction14 +0812db04 slot_machine.s ReeltimeAction15 +0812db8c slot_machine.s ReeltimeAction16 +0812dbbc slot_machine.s ReeltimeAction17 +0812dc08 slot_machine.s sub_8104A40 +0812dc50 slot_machine.s sub_8104A88 +0812dc80 slot_machine.s OpenInfoBox +0812dcb4 slot_machine.s IsInfoBoxClosed +0812dcd4 slot_machine.s RunInfoBoxActions +0812dd04 slot_machine.s InfoBox_FadeIn +0812dd28 slot_machine.s InfoBox_WaitForFade +0812dd48 slot_machine.s InfoBox_8104B80 +0812dd78 slot_machine.s InfoBox_AddText +0812ddc4 slot_machine.s InfoBox_AwaitPlayerInput +0812de14 slot_machine.s InfoBox_812DE14 +0812de30 slot_machine.s InfoBox_812DE30 +0812de48 slot_machine.s InfoBox_8104BFC +0812de7c slot_machine.s InfoBox_FreeTask +0812de94 slot_machine.s sub_8104C5C +0812dee4 slot_machine.s sub_8104CAC +0812df68 slot_machine.s sub_8104D30 +0812dfdc slot_machine.s sub_8104DA4 +0812e054 slot_machine.s sub_8104E18 +0812e0b0 slot_machine.s sub_8104E74_ +0812e0e0 slot_machine.s nullsub_69 +0812e0e4 slot_machine.s sub_8104EA8 +0812e154 slot_machine.s sub_8104F18 +0812e1c8 slot_machine.s sub_8104F8C +0812e230 slot_machine.s sub_8104FF4 +0812e2a8 slot_machine.s sub_810506C +0812e300 slot_machine.s sub_81050C4 +0812e33c slot_machine.s sub_8105100 +0812e3e8 slot_machine.s sub_810514C +0812e424 slot_machine.s sub_8105170 +0812e474 slot_machine.s sub_81051C0 +0812e5a8 slot_machine.s sub_8105284_ +0812e650 slot_machine.s sub_81052EC +0812e6c4 slot_machine.s sub_810535C +0812e70c slot_machine.s sub_81053A0 +0812e7cc slot_machine.s sub_810545C +0812e82c slot_machine.s sub_81054B8 +0812e8c4 slot_machine.s sub_8105524 +0812e8f8 slot_machine.s sub_8105554 +0812e934 slot_machine.s CreateReelTimeSprites1 +0812e9e8 slot_machine.s sub_810562C +0812ea44 slot_machine.s sub_8105688 +0812ea7c slot_machine.s sub_81056C0 +0812eab0 slot_machine.s CreateReelTimeSprite2 +0812eb48 slot_machine.s sub_8105784 +0812ebac slot_machine.s sub_81057E8 +0812ebcc slot_machine.s sub_8105804 +0812ec20 slot_machine.s sub_8105854 +0812ec64 slot_machine.s sub_8105894 +0812ec70 slot_machine.s sub_81058A0 +0812ec94 slot_machine.s sub_81058C4 +0812ed20 slot_machine.s sub_810594C +0812ed8c slot_machine.s sub_81059B8 +0812edc0 slot_machine.s sub_81059E8 +0812ee14 slot_machine.s sub_8105A38 +0812eea8 slot_machine.s sub_8105ACC +0812eecc slot_machine.s sub_8105AEC +0812ef00 slot_machine.s sub_8105B1C +0812ef54 slot_machine.s sub_8105B70 +0812ef6c slot_machine.s sub_8105B88 +0812ef98 slot_machine.s sub_8105BB4 +0812efdc slot_machine.s sub_8105BF8 +0812f078 slot_machine.s sub_8105C64 +0812f080 slot_machine.s sub_8105C6C +0812f104 slot_machine.s sub_8105CF0 +0812f11c slot_machine.s sub_8105D08 +0812f134 slot_machine.s sub_8105D20 +0812f150 slot_machine.s sub_8105D3C +0812f1b8 slot_machine.s sub_8105DA4 +0812f21c slot_machine.s sub_8105E08 +0812f2cc slot_machine.s sub_8105EB4 +0812f36c slot_machine.s sub_8105F54 +0812f3b4 slot_machine.s sub_8105F9C +0812f470 slot_machine.s sub_8106058 +0812f514 slot_machine.s sub_81060FC +0812f5e0 slot_machine.s sub_81061C8 +0812f648 slot_machine.s sub_8106230 +0812f784 slot_machine.s sub_8106364 +0812f794 slot_machine.s sub_8106370 +0812f7c0 slot_machine.s sub_810639C +0812f7e4 slot_machine.s sub_81063C0 +0812f8a0 slot_machine.s sub_8106404 +0812f908 slot_machine.s sub_8106448 +0812f958 slot_machine.s sub_81064B8 +0812f968 slot_machine.s sub_812F968 +0812f980 slot_machine.s LoadSlotMachineWheelOverlay +0812fa78 slot_machine.s sub_81065A8 +0812faf4 slot_machine.s sub_81065DC +0812fb14 slot_machine.s SlotMachineSetup_9_0 +0812fbc4 slot_machine.s SlotMachineSetup_8_0 +0812fda8 contest_painting.s sub_812FDA8 +0812fdec contest_painting.s CB2_ContestPainting +0812fdf8 contest_painting.s CB2_HoldContestPainting +0812fe0c contest_painting.s CB2_QuitContestPainting +0812fe58 contest_painting.s ShowContestPainting +0812ffc8 contest_painting.s HoldContestPainting +08130098 contest_painting.s InitContestPaintingWindow +0813010c contest_painting.s PrintContestPaintingCaption +081301ec contest_painting.s InitContestPaintingBg +08130238 contest_painting.s InitContestPaintingVars +08130280 contest_painting.s UpdateContestPaintingMosaicEffect +081302d0 contest_painting.s VBlankCB_ContestPainting +081302e8 contest_painting.s sub_81302E8 +08130380 contest_painting.s sub_8130380 +08130430 contest_painting.s sub_8130430 +08130688 contest_painting.s sub_8130688 +081306cc contest_painting.s sub_81306CC +08130738 contest_painting.s sub_8130738 +08130760 contest_painting.s sub_8130760 +08130884 contest_painting.s sub_8130884 +081308c8 battle_ai_script_commands.s BattleAI_HandleItemUseBeforeAISetup +08130950 battle_ai_script_commands.s BattleAI_SetupAIData +08130ba4 battle_ai_script_commands.s BattleAI_ChooseMoveOrAction +08130bdc battle_ai_script_commands.s ChooseMoveOrAction_Singles +08130cf4 battle_ai_script_commands.s ChooseMoveOrAction_Doubles +08130f48 battle_ai_script_commands.s BattleAI_DoAIProcessing +08131074 battle_ai_script_commands.s RecordLastUsedMoveByTarget +081310f0 battle_ai_script_commands.s ClearBattlerMoveHistory +08131118 battle_ai_script_commands.s RecordAbilityBattle +08131130 battle_ai_script_commands.s ClearBattlerAbilityHistory +08131148 battle_ai_script_commands.s RecordItemEffectBattle +08131160 battle_ai_script_commands.s ClearBattlerItemEffectHistory +08131178 battle_ai_script_commands.s BattleAICmd_if_random_less_than +081311b8 battle_ai_script_commands.s BattleAICmd_if_random_greater_than +081311f8 battle_ai_script_commands.s BattleAICmd_if_random_equal +08131238 battle_ai_script_commands.s BattleAICmd_if_random_not_equal +08131278 battle_ai_script_commands.s BattleAICmd_score +081312bc battle_ai_script_commands.s BattleAICmd_if_hp_less_than +08131324 battle_ai_script_commands.s BattleAICmd_if_hp_more_than +0813138c battle_ai_script_commands.s BattleAICmd_if_hp_equal +081313f4 battle_ai_script_commands.s BattleAICmd_if_hp_not_equal +0813145c battle_ai_script_commands.s BattleAICmd_if_status +081314d0 battle_ai_script_commands.s BattleAICmd_if_not_status +08131544 battle_ai_script_commands.s BattleAICmd_if_status2 +081315b8 battle_ai_script_commands.s BattleAICmd_if_not_status2 +0813162c battle_ai_script_commands.s BattleAICmd_if_status3 +0813169c battle_ai_script_commands.s BattleAICmd_if_not_status3 +0813170c battle_ai_script_commands.s BattleAICmd_if_side_affecting +08131788 battle_ai_script_commands.s BattleAICmd_if_not_side_affecting +08131804 battle_ai_script_commands.s BattleAICmd_if_less_than +08131840 battle_ai_script_commands.s BattleAICmd_if_more_than +0813187c battle_ai_script_commands.s BattleAICmd_if_equal +081318b8 battle_ai_script_commands.s BattleAICmd_if_not_equal +081318f4 battle_ai_script_commands.s BattleAICmd_if_less_than_ptr +08131948 battle_ai_script_commands.s BattleAICmd_if_more_than_ptr +0813199c battle_ai_script_commands.s BattleAICmd_if_equal_ptr +081319f0 battle_ai_script_commands.s BattleAICmd_if_not_equal_ptr +08131a44 battle_ai_script_commands.s BattleAICmd_if_move +08131a88 battle_ai_script_commands.s BattleAICmd_if_not_move +08131acc battle_ai_script_commands.s BattleAICmd_if_in_bytes +08131b34 battle_ai_script_commands.s BattleAICmd_if_not_in_bytes +08131ba0 battle_ai_script_commands.s BattleAICmd_if_in_hwords +08131c0c battle_ai_script_commands.s BattleAICmd_if_not_in_hwords +08131c7c battle_ai_script_commands.s BattleAICmd_if_user_has_attacking_move +08131cec battle_ai_script_commands.s BattleAICmd_if_user_has_no_attacking_moves +08131d5c battle_ai_script_commands.s BattleAICmd_get_turn_count +08131d80 battle_ai_script_commands.s BattleAICmd_get_type +08131e70 battle_ai_script_commands.s BattleAI_GetWantedBattler +08131eb4 battle_ai_script_commands.s BattleAICmd_is_of_type +08131f1c battle_ai_script_commands.s BattleAICmd_get_considered_move_power +08131f48 battle_ai_script_commands.s BattleAICmd_get_how_powerful_move_is +0813214c battle_ai_script_commands.s BattleAICmd_get_last_used_battler_move +081321a4 battle_ai_script_commands.s BattleAICmd_if_equal_ +081321e0 battle_ai_script_commands.s BattleAICmd_if_not_equal_ +0813221c battle_ai_script_commands.s BattleAICmd_if_user_goes +08132268 battle_ai_script_commands.s BattleAICmd_if_user_doesnt_go +081322b4 battle_ai_script_commands.s BattleAICmd_nullsub_2A +081322b8 battle_ai_script_commands.s BattleAICmd_nullsub_2B +081322bc battle_ai_script_commands.s BattleAICmd_count_usable_party_mons +081323b8 battle_ai_script_commands.s BattleAICmd_get_considered_move +081323d4 battle_ai_script_commands.s BattleAICmd_get_considered_move_effect +08132400 battle_ai_script_commands.s BattleAICmd_get_ability +0813251c battle_ai_script_commands.s BattleAICmd_check_ability +08132614 battle_ai_script_commands.s BattleAICmd_get_highest_type_effectiveness +08132700 battle_ai_script_commands.s BattleAICmd_if_type_effectiveness +081327d0 battle_ai_script_commands.s BattleAICmd_nullsub_32 +081327d4 battle_ai_script_commands.s BattleAICmd_nullsub_33 +081327d8 battle_ai_script_commands.s BattleAICmd_if_status_in_party +081328b8 battle_ai_script_commands.s BattleAICmd_if_status_not_in_party +08132994 battle_ai_script_commands.s BattleAICmd_get_weather +08132a00 battle_ai_script_commands.s BattleAICmd_if_effect +08132a4c battle_ai_script_commands.s BattleAICmd_if_not_effect +08132a98 battle_ai_script_commands.s BattleAICmd_if_stat_level_less_than +08132b00 battle_ai_script_commands.s BattleAICmd_if_stat_level_more_than +08132b68 battle_ai_script_commands.s BattleAICmd_if_stat_level_equal +08132bd0 battle_ai_script_commands.s BattleAICmd_if_stat_level_not_equal +08132c38 battle_ai_script_commands.s BattleAICmd_if_can_faint +08132d34 battle_ai_script_commands.s BattleAICmd_if_cant_faint +08132e18 battle_ai_script_commands.s BattleAICmd_if_has_move +08132f48 battle_ai_script_commands.s BattleAICmd_if_doesnt_have_move +08133020 battle_ai_script_commands.s BattleAICmd_if_has_move_with_effect +08133118 battle_ai_script_commands.s BattleAICmd_if_doesnt_have_move_with_effect +081331fc battle_ai_script_commands.s BattleAICmd_if_any_move_disabled_or_encored +08133284 battle_ai_script_commands.s BattleAICmd_if_curr_move_disabled_or_encored +08133314 battle_ai_script_commands.s BattleAICmd_flee +08133328 battle_ai_script_commands.s BattleAICmd_if_random_safari_flee +08133388 battle_ai_script_commands.s BattleAICmd_watch +0813339c battle_ai_script_commands.s BattleAICmd_get_hold_effect +08133414 battle_ai_script_commands.s BattleAICmd_if_holds_item +08133494 battle_ai_script_commands.s BattleAICmd_get_gender +081334ec battle_ai_script_commands.s BattleAICmd_is_first_turn_for +08133538 battle_ai_script_commands.s BattleAICmd_get_stockpile_count +08133584 battle_ai_script_commands.s BattleAICmd_is_double_battle +081335ac battle_ai_script_commands.s BattleAICmd_get_used_held_item +081335f8 battle_ai_script_commands.s BattleAICmd_get_move_type_from_result +08133624 battle_ai_script_commands.s BattleAICmd_get_move_power_from_result +08133650 battle_ai_script_commands.s BattleAICmd_get_move_effect_from_result +0813367c battle_ai_script_commands.s BattleAICmd_get_protect_count +081336c8 battle_ai_script_commands.s BattleAICmd_nullsub_52 +081336cc battle_ai_script_commands.s BattleAICmd_nullsub_53 +081336d0 battle_ai_script_commands.s BattleAICmd_nullsub_54 +081336d4 battle_ai_script_commands.s BattleAICmd_nullsub_55 +081336d8 battle_ai_script_commands.s BattleAICmd_nullsub_56 +081336dc battle_ai_script_commands.s BattleAICmd_nullsub_57 +081336e0 battle_ai_script_commands.s BattleAICmd_call +08133710 battle_ai_script_commands.s BattleAICmd_goto +08133730 battle_ai_script_commands.s BattleAICmd_end +08133754 battle_ai_script_commands.s BattleAICmd_if_level_cond +0813382c battle_ai_script_commands.s BattleAICmd_if_target_taunted +0813387c battle_ai_script_commands.s BattleAICmd_if_target_not_taunted +081338cc battle_ai_script_commands.s BattleAICmd_if_target_is_ally +0813391c battle_ai_script_commands.s BattleAICmd_if_flash_fired +08133990 battle_ai_script_commands.s AIStackPushVar_cursor +081339f8 trader.s TraderSetup +08133a60 trader.s Trader_ResetFlag +08133a78 trader.s CreateAvailableDecorationsMenu +08133be4 trader.s sub_8133BE4 +08133c48 trader.s Task_HandleGetDecorationMenuInput +08133cd8 trader.s ScrSpecial_GetTraderTradedFlag +08133cf4 trader.s ScrSpecial_DoesPlayerHaveNoDecorations +08133d2c trader.s ScrSpecial_IsDecorationFull +08133d8c trader.s ScrSpecial_TraderMenuGiveDecoration +08133da0 trader.s sub_8133DA0 +08133e1c trader.s ExitTraderMenu +08133e38 trader.s ScrSpecial_TraderDoDecorationTrade +08133ec0 trader.s ScrSpecial_TraderMenuGetDecoration +08133edc starter_choose.s GetStarterPokemon +08133ef8 starter_choose.s VblankCB_StarterChoose +08133f0c starter_choose.s CB2_ChooseStarter +081341e0 starter_choose.s MainCallback2_StarterChoose +081341fc starter_choose.s Task_StarterChoose1 +0813425c starter_choose.s Task_StarterChoose2 +08134340 starter_choose.s Task_StarterChoose3 +08134390 starter_choose.s Task_StarterChoose4 +08134400 starter_choose.s Task_StarterChoose5 +081344ac starter_choose.s Task_StarterChoose6 +081344c8 starter_choose.s CreateStarterPokemonLabel +08134604 starter_choose.s sub_8134604 +08134640 starter_choose.s Task_MoveStarterChooseCursor +08134668 starter_choose.s sub_8134668 +08134690 starter_choose.s CreatePokemonFrontSprite +081346dc starter_choose.s sub_81346DC +0813473c starter_choose.s sub_813473C +08134774 starter_choose.s StarterPokemonSpriteCallback +081347b4 wallclock.s WallClockVblankCallback +081347c8 wallclock.s LoadWallClockGraphics +0813498c wallclock.s WallClockInit +081349f4 wallclock.s CB2_StartWallClock +08134b44 wallclock.s CB2_ViewWallClock +08134c9c wallclock.s WallClockMainCallback +08134cb8 wallclock.s Task_SetClock1 +08134ce8 wallclock.s Task_SetClock2 +08134dc4 wallclock.s Task_SetClock3 +08134e30 wallclock.s Task_SetClock4 +08134ea4 wallclock.s Task_SetClock5 +08134ee8 wallclock.s Task_SetClock6 +08134f10 wallclock.s Task_ViewClock1 +08134f40 wallclock.s Task_ViewClock2 +08134f78 wallclock.s Task_ViewClock3 +08134fb0 wallclock.s Task_ViewClock4 +08134fd4 wallclock.s CalcMinHandDelta +08134ffc wallclock.s CalcNewMinHandAngle +0813504c wallclock.s AdvanceClock +081350e8 wallclock.s UpdateClockPeriod +08135130 wallclock.s InitClockWithRtc +081351ac wallclock.s SpriteCB_MinuteHand +08135244 wallclock.s SpriteCB_HourHand +081352dc wallclock.s SpriteCB_AMIndicator +08135380 wallclock.s SpriteCB_PMIndicator +08135424 fldeff_rocksmash.s CheckObjectGraphicsInFrontOfPlayer +08135478 fldeff_rocksmash.s oei_task_add +0813549c fldeff_rocksmash.s task08_080C9820 +0813552c fldeff_rocksmash.s sub_813552C +08135578 fldeff_rocksmash.s sub_8135578 +0813561c fldeff_rocksmash.s sub_813561C +08135654 fldeff_rocksmash.s SetUpFieldMove_RockSmash +081356c4 fldeff_rocksmash.s sub_81356C4 +081356e4 fldeff_rocksmash.s FldEff_UseRockSmash +08135714 fldeff_rocksmash.s sub_8135714 +0813572c fldeff_dig.s SetUpFieldMove_Dig +08135760 fldeff_dig.s hm2_dig +08135780 fldeff_dig.s FldEff_UseDig +081357bc fldeff_dig.s sub_8135780 +081357fc pokeblock.s OpenPokeblockCase +081358f4 pokeblock.s OpenPokeblockCaseInBattle +08135908 pokeblock.s OpenPokeblockCaseOnFeeder +0813591c pokeblock.s CB2_PokeblockMenu +08135938 pokeblock.s VBlankCB_PokeblockMenu +0813594c pokeblock.s CB2_InitPokeblockMenu +08135978 pokeblock.s InitPokeblockMenu +08135c38 pokeblock.s LoadPokeblockMenuGfx +08135d7c pokeblock.s PrintOnPokeblockWindow +08135dac pokeblock.s PutPokeblockInfoText +08135e2c pokeblock.s HandlePokeblockListMenuItems +08135f04 pokeblock.s PutPokeblockListMenuString +08135f70 pokeblock.s MovePokeblockMenuCursor +08135fcc pokeblock.s sub_8135FCC +08136110 pokeblock.s HandlePokeblockMenuCursor +08136140 pokeblock.s CompactPokeblockSlots +081361b0 pokeblock.s SwapSortPokeblocksInternalData +0813624c pokeblock.s ResetPokeblockScrollPositions +0813625c pokeblock.s SetMenuItemsCountAndMaxShowed +081362e0 pokeblock.s sub_81362E0 +08136344 pokeblock.s sub_8136344 +081363bc pokeblock.s sub_81363BC +08136418 pokeblock.s sub_8136418 +08136444 pokeblock.s CreatePokeblockCaseSprite +08136470 pokeblock.s sub_8136470 +081364ec pokeblock.s FadePaletteAndSetTaskToClosePokeblockCase +08136524 pokeblock.s Task_FreeDataAndExitPokeblockCase +081365c8 pokeblock.s Task_HandlePokeblockMenuInput +0813671c pokeblock.s Task_HandlePokeblocksSwapInput +08136854 pokeblock.s HandlePokeblocksSwap +08136938 pokeblock.s PutPokeblockOptionsWindow +081369e0 pokeblock.s Task_HandlePokeblockOptionsInput +08136a50 pokeblock.s PokeblockAction_UseOnField +08136a74 pokeblock.s UsePokeblockOnField +08136aa0 pokeblock.s ReturnToPokeblockCaseOnField +08136ab4 pokeblock.s PokeblockAction_Toss +08136b48 pokeblock.s CreateTossPokeblockYesNoMenu +08136b78 pokeblock.s TossPokeblockChoice_Yes +08136bc0 pokeblock.s HandleErasePokeblock +08136c54 pokeblock.s TossPokeblockChoice_No +08136c8c pokeblock.s PokeblockAction_UseInBattle +08136d2c pokeblock.s PokeblockAction_UseOnPokeblockFeeder +08136d90 pokeblock.s PokeblockAction_GiveToContestLady +08136de8 pokeblock.s PokeblockAction_Cancel +08136e20 pokeblock.s ClearPokeblock +08136e88 pokeblock.s ClearPokeblocks +08136ea4 pokeblock.s GetHighestPokeblocksFlavorLevel +08136edc pokeblock.s GetPokeblocksFeel +08136ef4 pokeblock.s GetFirstFreePokeblockSlot +08136f2c pokeblock.s AddPokeblock +08136f68 pokeblock.s TryClearPokeblock +08136f9c pokeblock.s GetPokeblockData +08136fe4 pokeblock.s PokeblockGetGain +08137044 pokeblock.s PokeblockCopyName +08137068 pokeblock.s CopyMonFavoritePokeblockName +081370b4 pokeblock.s GetPokeblocksFlavor +081370fc fldeff_flash.s SetUpFieldMove_Flash +08137178 fldeff_flash.s hm2_flash +081371b4 fldeff_flash.s sub_81371B4 +081371d4 fldeff_flash.s sub_81371D4 +081371ec fldeff_flash.s sub_81371EC +08137200 fldeff_flash.s c2_change_map +08137304 fldeff_flash.s sub_8137304 +08137360 fldeff_flash.s GetMapPairFadeToType +081373a8 fldeff_flash.s GetMapPairFadeFromType +081373f0 fldeff_flash.s sub_81373F0 +08137404 fldeff_flash.s sub_8137404 +08137420 fldeff_flash.s sub_8137420 +081374c4 fldeff_flash.s sub_81374C4 +0813750c fldeff_flash.s sub_813750C +08137574 fldeff_flash.s sub_8137574 +081375a8 fldeff_flash.s sub_81375A8 +081375bc fldeff_flash.s sub_81375BC +081375d8 fldeff_flash.s sub_81375D8 +08137678 fldeff_flash.s sub_8137678 +081376dc fldeff_flash.s sub_81376DC +08137734 post_battle_event_funcs.s GameClear +0813787c post_battle_event_funcs.s sp0C8_whiteout_maybe +08137890 time_events.s GetMirageRnd +081378bc time_events.s SetMirageRnd +081378e4 time_events.s InitMirageRnd +08137904 time_events.s UpdateMirageRnd +0813793c time_events.s IsMirageIslandPresent +08137988 time_events.s UpdateShoalTideFlag +081379d8 time_events.s Task_WaitWeather +081379f8 time_events.s WaitWeather +08137a0c time_events.s InitBirchState +08137a20 time_events.s UpdateBirchState +08137a4c birch_pc.s ScriptGetPokedexInfo +08137a98 birch_pc.s GetPokedexRatingText +08137c10 birch_pc.s ShowPokedexRatingMessage +08137c28 hof_pc.s AccessHallOfFamePC +08137c3c hof_pc.s ReturnFromHallOfFamePC +08137c5c hof_pc.s ReshowPCMenuAfterHallOfFamePC +08137c94 hof_pc.s Task_WaitForPaletteFade +08137cb4 field_specials.s Special_ShowDiploma +08137cc8 field_specials.s Special_ViewWallClock +08137cec field_specials.s ResetCyclingRoadChallengeData +08137d0c field_specials.s Special_BeginCyclingRoadChallenge +08137d34 field_specials.s GetPlayerAvatarBike +08137d5c field_specials.s DetermineCyclingRoadResults +08137e6c field_specials.s FinishCyclingRoadChallenge +08137e9c field_specials.s RecordCyclingRoadResults +08137efc field_specials.s GetRecordedCyclingRoadResults +08137f44 field_specials.s UpdateCyclingRoadState +08137f90 field_specials.s SetSSTidalFlag +08137fb0 field_specials.s ResetSSTidalFlag +08137fc0 field_specials.s CountSSTidalStep +08137ffc field_specials.s GetSSTidalLocation +081380d8 field_specials.s ShouldDoWallyCall +08138120 field_specials.s ShouldDoWinonaCall +08138168 field_specials.s ShouldDoScottCall +081381b0 field_specials.s ShouldDoRoxanneCall +081381f8 field_specials.s ShouldDoRivalRayquazaCall +08138240 field_specials.s GetLinkPartnerNames +081382a0 field_specials.s SpawnLinkPartnerEventObject +0813842c field_specials.s LoadLinkPartnerEventObjectSpritePalette +081384f0 field_specials.s MauvilleGymSpecial1 +08138540 field_specials.s MauvilleGymSpecial2 +08138750 field_specials.s MauvilleGymSpecial3 +081388e4 field_specials.s PetalburgGymSpecial1 +08138910 field_specials.s Task_PetalburgGym +08138978 field_specials.s PetalburgGymFunc +08138aa4 field_specials.s PetalburgGymSpecial2 +08138ac0 field_specials.s ShowFieldMessageStringVar4 +08138ad0 field_specials.s StorePlayerCoordsInVars +08138af0 field_specials.s GetPlayerTrainerIdOnesDigit +08138b10 field_specials.s GetPlayerBigGuyGirlString +08138b48 field_specials.s GetRivalSonDaughterString +08138b80 field_specials.s GetBattleOutcome +08138b8c field_specials.s CableCarWarp +08138bc8 field_specials.s SetFlagInVar +08138bdc field_specials.s GetWeekCount +08138c04 field_specials.s GetLeadMonFriendshipScore +08138c84 field_specials.s CB2_FieldShowRegionMap +08138c94 field_specials.s FieldShowRegionMap +08138ca4 field_specials.s DoPCTurnOnEffect +08138ce8 field_specials.s Task_PCTurnOnEffect +08138d10 field_specials.s PCTurnOnEffect_0 +08138d88 field_specials.s PCTurnOnEffect_1 +08138e20 field_specials.s DoPCTurnOffEffect +08138e2c field_specials.s PCTurnOffEffect +08138ec0 field_specials.s DoLotteryCornerComputerEffect +08138f04 field_specials.s Task_LotteryCornerComputerEffect +08138f2c field_specials.s LotteryCornerComputerEffect +08138fac field_specials.s EndLotteryCornerComputerEffect +08138fd4 field_specials.s SetTrickHouseEndRoomFlag +08138fec field_specials.s ResetTrickHouseEndRoomFlag +08139004 field_specials.s CheckLeadMonCool +08139030 field_specials.s CheckLeadMonBeauty +0813905c field_specials.s CheckLeadMonCute +08139088 field_specials.s CheckLeadMonSmart +081390b4 field_specials.s CheckLeadMonTough +081390e0 field_specials.s IsGrassTypeInParty +08139158 field_specials.s SpawnCameraObject +081391ac field_specials.s RemoveCameraObject +081391d0 field_specials.s GetPokeblockNameByMonNature +08139200 field_specials.s GetSecretBaseNearbyMapName +08139228 field_specials.s GetBestBattleTowerStreak +08139238 field_specials.s BufferEReaderTrainerName +08139248 field_specials.s GetSlotMachineId +081392ac field_specials.s FoundAbandonedShipRoom1Key +081392d4 field_specials.s FoundAbandonedShipRoom2Key +081392f8 field_specials.s FoundAbandonedShipRoom4Key +08139320 field_specials.s FoundAbandonedShipRoom6Key +08139348 field_specials.s LeadMonHasEffortRibbon +08139370 field_specials.s GiveLeadMonEffortRibbon +081393c8 field_specials.s Special_AreLeadMonEVsMaxedOut +081393fc field_specials.s TryUpdateRusturfTunnelState +0813945c field_specials.s SetShoalItemFlag +0813946c field_specials.s PutZigzagoonInPlayerParty +081394d8 field_specials.s IsStarterInParty +08139530 field_specials.s ScriptCheckFreePokemonStorageSpace +08139540 field_specials.s IsPokerusInParty +08139560 field_specials.s sub_8139560 +081395bc field_specials.s sub_81395BC +08139620 field_specials.s sub_8139620 +08139634 field_specials.s FoundBlackGlasses +08139648 field_specials.s SetRoute119Weather +08139668 field_specials.s SetRoute123Weather +08139688 field_specials.s GetLeadMonIndex +081396e0 field_specials.s ScriptGetPartyMonSpecies +08139708 field_specials.s nullsub_54 +0813970c field_specials.s GetDaysUntilPacifidlogTMAvailable +08139754 field_specials.s SetPacifidlogTMReceivedDay +08139770 field_specials.s MonOTNameMatchesPlayer +081397c4 field_specials.s BufferLottoTicketNumber +0813986c field_specials.s sub_813986C +081398c0 field_specials.s sub_81398C0 +0813990c field_specials.s sub_813990C +0813994c field_specials.s InMultiBattleRoom +08139980 field_specials.s sub_8139980 +08139994 field_specials.s SetDepartmentStoreFloorVar +081399f4 field_specials.s sub_81399F4 +08139a78 field_specials.s ShakeScreenInElevator +08139af4 field_specials.s sub_8139AF4 +08139b60 field_specials.s sub_8139B60 +08139c10 field_specials.s sub_8139C10 +08139c2c field_specials.s sub_8139C2C +08139c80 field_specials.s MoveElevatorWindowLights +08139d98 field_specials.s sub_8139D98 +08139e80 field_specials.s warp0_in_pokecenter +08139ed0 field_specials.s sub_8139ED0 +08139ef4 field_specials.s UpdateFrontierManiac +08139f20 field_specials.s sub_8139F20 +0813a080 field_specials.s sub_813A080 +0813a128 field_specials.s sub_813A128 +0813a2dc field_specials.s sub_813A2DC +0813a42c field_specials.s sub_813A42C +0813a46c field_specials.s sub_813A46C +0813a4ec field_specials.s sub_813A4EC +0813a570 field_specials.s sub_813A570 +0813a600 field_specials.s sub_813A600 +0813a630 field_specials.s sub_813A630 +0813a664 field_specials.s sub_813A664 +0813a694 field_specials.s sub_813A694 +0813a738 field_specials.s sub_813A738 +0813a768 field_specials.s nullsub_55 +0813a76c field_specials.s sub_813A76C +0813a7b8 field_specials.s sub_813A7B8 +0813a7f4 field_specials.s UpdateFrontierGambler +0813a820 field_specials.s sub_813A820 +0813a854 field_specials.s sub_813A854 +0813a878 field_specials.s sub_813A878 +0813a8fc field_specials.s sub_813A8FC +0813a958 field_specials.s sub_813A958 +0813a988 field_specials.s sub_813A988 +0813a9a4 field_specials.s sub_813A9A4 +0813a9d0 field_specials.s sub_813A9D0 +0813aa04 field_specials.s sub_813AA04 +0813aa18 field_specials.s sub_813AA18 +0813aa44 field_specials.s sub_813AA44 +0813aa60 field_specials.s sub_813AA60 +0813abd4 field_specials.s sub_813ABD4 +0813ac44 field_specials.s sub_813AC44 +0813ac7c field_specials.s sub_813AC7C +0813ace8 field_specials.s sub_813ACE8 +0813ad34 field_specials.s sub_813AD34 +0813adb8 field_specials.s sub_813ADB8 +0813add4 field_specials.s sub_813ADD4 +0813aeb4 field_specials.s sub_813AEB4 +0813af48 field_specials.s sub_813AF48 +0813afc8 field_specials.s DoDeoxysRockInteraction +0813afdc field_specials.s Task_DeoxysRockInteraction +0813b0b4 field_specials.s ChangeDeoxysRockLevel +0813b160 field_specials.s WaitForDeoxysRockMovement +0813b184 field_specials.s IncrementBirthIslandRockStepCount +0813b1d0 field_specials.s sub_813B1D0 +0813b204 field_specials.s set_unknown_box_id +0813b210 field_specials.s get_unknown_box_id +0813b21c field_specials.s sub_813B21C +0813b260 field_specials.s sub_813B260 +0813b2e4 field_specials.s CreateUnusualWeatherEvent +0813b374 field_specials.s GetUnusualWeatherMapNameAndType +0813b3b0 field_specials.s UnusualWeatherHasExpired +0813b484 field_specials.s Unused_SetWeatherSunny +0813b490 field_specials.s sub_813B490 +0813b4e0 field_specials.s sub_813B4E0 +0813b514 field_specials.s sub_813B514 +0813b534 field_specials.s sub_813B534 +0813b568 field_specials.s sub_813B568 +0813b57c field_specials.s sub_813B57C +0813b7d8 field_specials.s sub_813B7D8 +0813b80c field_specials.s sub_813B80C +0813b824 field_specials.s sub_813B824 +0813b880 field_specials.s sub_813B880 +0813b8b0 field_specials.s _fwalk +0813b968 field_specials.s sub_813B968 +0813b9a0 field_specials.s sub_813B9A0 +0813b9c0 field_specials.s sub_813B9C0 +0813ba10 field_specials.s ResetFanClub +0813ba30 field_specials.s sub_813BA30 +0813ba60 field_specials.s sub_813BA60 +0813badc field_specials.s sub_813BADC +0813bb74 field_specials.s sub_813BB74 +0813bc00 field_specials.s sub_813BC00 +0813bca8 field_specials.s GetNumMovedLilycoveFanClubMembers +0813bce8 field_specials.s UpdateMovedLilycoveFanClubMembers +0813bd60 field_specials.s ShouldMoveLilycoveFanClubMember +0813bd84 field_specials.s sub_813BD84 +0813bdb4 field_specials.s BufferStreakTrainerText +0813be30 field_specials.s sub_813BE30 +0813bf10 field_specials.s sub_813BF10 +0813bf44 field_specials.s sub_813BF44 +0813bf60 field_specials.s sub_813BF60 +0813bf7c field_specials.s sub_813BF7C +0813bf94 battle_records.s ClearLinkBattleRecord +0813bfc4 battle_records.s ClearLinkBattleRecords +0813bff8 battle_records.s GetLinkBattleRecordTotalBattles +0813c008 battle_records.s FindLinkBattleRecord +0813c03c battle_records.s SortLinkBattleRecords +0813c0d0 battle_records.s UpdateLinkBattleRecord +0813c134 battle_records.s UpdateLinkBattleGameStats +0813c170 battle_records.s UpdateLinkBattleRecords +0813c1f8 battle_records.s ClearPlayerLinkBattleRecords +0813c214 battle_records.s IncTrainerCardWins +0813c23c battle_records.s IncTrainerCardLosses +0813c264 battle_records.s UpdateTrainerCardWinsLosses +0813c2a0 battle_records.s UpdatePlayerLinkBattleRecords +0813c2f4 battle_records.s PrintLinkBattleWinsLossesDraws +0813c384 battle_records.s PrintLinkBattleRecord +0813c4bc battle_records.s ShowLinkBattleRecords +0813c5a0 battle_records.s RemoveRecordsWindow +0813c5bc battle_records.s Task_TrainerHillWaitForPaletteFade +0813c5ec battle_records.s Task_CloseTrainerHillRecordsOnButton +0813c62c battle_records.s Task_BeginPaletteFade +0813c664 battle_records.s Task_ExitTrainerHillRecords +0813c6a8 battle_records.s RemoveTrainerHillRecordsWindow +0813c6d4 battle_records.s ClearVramOamPlttRegs +0813c80c battle_records.s ClearTasksAndGraphicalStructs +0813c828 battle_records.s ResetBgCoordinates +0813c880 battle_records.s SetDispcntReg +0813c890 battle_records.s LoadTrainerHillRecordsWindowGfx +0813c8d8 battle_records.s VblankCB_TrainerHillRecords +0813c8ec battle_records.s MainCB2_TrainerHillRecords +0813c904 battle_records.s ShowTrainerHillRecords +0813c91c battle_records.s CB2_ShowTrainerHillRecords +0813ca54 pokedex_area_screen.s ResetDrawAreaGlowState +0813ca68 pokedex_area_screen.s DrawAreaGlow +0813cb40 pokedex_area_screen.s FindMapsWithMon +0813cd04 pokedex_area_screen.s SetAreaHasMon +0813cd64 pokedex_area_screen.s SetSpecialMapHasMon +0813ce34 pokedex_area_screen.s GetRegionMapSectionId +0813ce48 pokedex_area_screen.s MapHasMon +0813ced4 pokedex_area_screen.s MonListHasMon +0813cf0c pokedex_area_screen.s BuildAreaGlowTilemap +0813d1c8 pokedex_area_screen.s StartAreaGlow +0813d25c pokedex_area_screen.s DoAreaGlow +0813d3d8 pokedex_area_screen.s ShowPokedexAreaScreen +0813d42c pokedex_area_screen.s Task_PokedexAreaScreen_0 +0813d5a0 pokedex_area_screen.s Task_PokedexAreaScreen_1 +0813d6b4 pokedex_area_screen.s sub_813D6B4 +0813d6d0 pokedex_area_screen.s CreateAreaMarkerSprites +0813d824 pokedex_area_screen.s DestroyAreaMarkerSprites +0813d8a8 pokedex_area_screen.s LoadAreaUnknownGraphics +0813d8e8 pokedex_area_screen.s CreateAreaUnknownSprites +0813d9b0 evolution_scene.s CB2_BeginEvolutionScene +0813d9c0 evolution_scene.s Task_BeginEvolutionScene +0813da40 evolution_scene.s BeginEvolutionScene +0813da8c evolution_scene.s EvolutionScene +0813dd7c evolution_scene.s CB2_EvolutionSceneLoadGraphics +0813df70 evolution_scene.s CB2_TradeEvolutionSceneLoadGraphics +0813e1d4 evolution_scene.s TradeEvolutionScene +0813e3a4 evolution_scene.s CB2_EvolutionSceneUpdate +0813e3c0 evolution_scene.s CB2_TradeEvolutionSceneUpdate +0813e3dc evolution_scene.s CreateShedinja +0813e570 evolution_scene.s Task_EvolutionScene +0813f1b8 evolution_scene.s Task_TradeEvolutionScene +0813fcd8 evolution_scene.s EvoDummyFunc +0813fcdc evolution_scene.s VBlankCB_EvolutionScene +0813fd64 evolution_scene.s VBlankCB_TradeEvolutionScene +0813fdec evolution_scene.s sub_813FDEC +0813fea4 evolution_scene.s sub_813FEA4 +0813fee8 evolution_scene.s sub_813FEE8 +0813ffc0 evolution_scene.s InitMovingBgValues +08140000 evolution_scene.s InitMovingBackgroundTask +08140100 evolution_scene.s sub_8140100 +08140134 evolution_scene.s sub_8140134 +08140174 evolution_scene.s sub_8140174 +081401e0 evolution_scene.s EvoScene_DoMonAnimation +08140208 evolution_scene.s EvoScene_IsMonAnimFinished +08140238 roulette.s sub_8140238 +08140264 roulette.s sub_8140264 +08140388 roulette.s sub_8140388 +08140418 roulette.s sub_8140418 +08140470 roulette.s sub_8140470 +081405cc roulette.s sub_81405CC +08140814 roulette.s sub_8140814 +081408a8 roulette.s sub_81408A8 +08140914 roulette.s sub_8140914 +08140968 roulette.s sub_8140968 +08140994 roulette.s sub_8140994 +081409b8 roulette.s sub_81409B8 +08140b64 roulette.s sub_8140B64 +08140b8c roulette.s sub_8140B8C +08140bd0 roulette.s sub_8140BD0 +08140ca8 roulette.s sub_8140CA8 +08140d6c roulette.s sub_8140D6C +08140f6c roulette.s sub_8140F6C +08140fc4 roulette.s sub_8140FC4 +08141040 roulette.s sub_8141040 +081410fc roulette.s sub_81410FC +0814118c roulette.s sub_814118C +08141344 roulette.s sub_8141344 +0814155c roulette.s sub_814155C +081415d4 roulette.s sub_81415D4 +081416d4 roulette.s sub_81416D4 +08141778 roulette.s sub_8141778 +08141800 roulette.s sub_8141800 +0814189c roulette.s sub_814189C +08141984 roulette.s sub_8141984 +08141a18 roulette.s sub_8141A18 +08141ac0 roulette.s sub_8141AC0 +08141b58 roulette.s sub_8141B58 +08141d0c roulette.s dp01t_12_3_battle_menu +08141de4 roulette.s sub_8141DE4 +08141e7c roulette.s sub_8141E7C +08141ef8 roulette.s sub_8141EF8 +08141f7c roulette.s sub_8141F7C +08141ff4 roulette.s sub_8141FF4 +08142070 roulette.s sub_8142070 +081420d0 roulette.s sub_81420D0 +081421e8 roulette.s sub_81421E8 +08142284 roulette.s sub_8142284 +081424fc roulette.s sub_81424FC +08142758 roulette.s sub_8142758 +08142814 roulette.s sub_8142814 +081428c4 roulette.s sub_81428C4 +081428e4 roulette.s sub_81428E4 +08142918 roulette.s sub_8142918 +0814297c roulette.s sub_814297C +081429a0 roulette.s sub_81429A0 +081429f0 roulette.s sub_81429F0 +08142a88 roulette.s Task_Roulette_0 +08142bc8 roulette.s PlayRoulette +08142c0c roulette.s sub_8142C0C +08142c60 roulette.s sub_8142C60 +08142cd0 roulette.s sub_8142CD0 +08142e3c roulette.s unref_sub_8142E3C +08142e70 roulette.s sub_8142E70 +08142f7c roulette.s sub_8142F7C +08143038 roulette.s sub_8143038 +08143150 roulette.s sub_8143150 +081431e4 roulette.s sub_81431E4 +08143280 roulette.s sub_8143280 +08143314 roulette.s sub_8143314 +08143514 roulette.s sub_8143514 +08143614 roulette.s sub_8143614 +081436d0 roulette.s sub_81436D0 +0814372c roulette.s sub_814372C +0814390c roulette.s sub_814390C +0814391c roulette.s sub_814391C +0814399c roulette.s sub_814399C +081439c8 roulette.s sub_81439C8 +08143a40 roulette.s sub_8143A40 +08143ac8 roulette.s sub_8143AC8 +08143b14 roulette.s sub_8143B14 +08143b48 roulette.s sub_8143B48 +08143b84 roulette.s sub_8143B84 +08143c90 roulette.s sub_8143C90 +08143cfc roulette.s sub_8143CFC +08143e14 roulette.s sub_8143E14 +08143fa4 roulette.s sub_8143FA4 +08144050 roulette.s sub_8144050 +08144128 roulette.s sub_8144128 +08144168 roulette.s sub_8144168 +081441a8 roulette.s prev_quest_read_x24_hm_usage +08144264 roulette.s sub_8144264 +08144410 roulette.s sub_8144410 +08144514 roulette.s sub_8144514 +081445d8 roulette.s sub_81445D8 +081446ac roulette.s sub_81446AC +081446dc roulette.s sub_81446DC +081448b8 roulette.s sub_81448B8 +08144a24 roulette.s sub_8144A24 +08144c70 roulette.s sub_8144C70 +08144cd0 roulette.s sub_8144CD0 +08144d94 roulette.s sub_8144D94 +08144e60 roulette.s sub_8144E60 +08144f94 roulette.s sub_8144F94 +08144fb0 roulette.s sub_8144FB0 +08145030 roulette.s sub_8145030 +081450d8 roulette.s sub_81450D8 +08145218 roulette.s sub_8145218 +08145294 roulette.s sub_8145294 +08145354 pokedex_cry_screen.s sub_8145354 +0814545c pokedex_cry_screen.s sub_814545C +08145534 pokedex_cry_screen.s sub_8145534 +08145588 pokedex_cry_screen.s sub_8145588 +081455a8 pokedex_cry_screen.s sub_81455A8 +0814560c pokedex_cry_screen.s sub_814560C +08145648 pokedex_cry_screen.s sub_8145648 +081456a8 pokedex_cry_screen.s sub_81456A8 +08145814 pokedex_cry_screen.s sub_8145814 +08145824 pokedex_cry_screen.s sub_8145824 +08145850 pokedex_cry_screen.s sub_8145850 +08145914 pokedex_cry_screen.s sub_8145914 +0814596c pokedex_cry_screen.s sub_814596C +08145b24 pokedex_cry_screen.s sub_8145B24 +08145b54 coins.s PrintCoinsString +08145bac coins.s ShowCoinsWindow +08145c14 coins.s HideCoinsWindow +08145c30 coins.s GetCoins +08145c58 coins.s SetCoins +08145c80 coins.s GiveCoins +08145ccc coins.s TakeCoins +08145cf4 landmark.s GetLandmarkName +08145d48 landmark.s GetLandmarks +08145dc4 fldeff_strength.s SetUpFieldMove_Strength +08145e0c fldeff_strength.s FldEff_UseStrength +08145e2c fldeff_strength.s sub_8145E2C +08145e74 fldeff_strength.s sub_8145E74 +08145e84 battle_transition.s CB2_TestBattleTransition +08145edc battle_transition.s TestBattleTransition +08145ef4 battle_transition.s BattleTransition_StartOnField +08145f10 battle_transition.s BattleTransition_Start +08145f20 battle_transition.s IsBattleTransitionDone +08145f6c battle_transition.s LaunchBattleTransitionTask +08145fa8 battle_transition.s Task_BattleTransitionMain +08145fe0 battle_transition.s Transition_Phase1 +08146030 battle_transition.s Transition_WaitForPhase1 +08146064 battle_transition.s Transition_Phase2 +0814608c battle_transition.s Transition_WaitForPhase2 +081460bc battle_transition.s Phase1Task_TransitionAll +0814610c battle_transition.s Phase2Task_Blur +08146144 battle_transition.s Phase2_Blur_Func1 +08146178 battle_transition.s Phase2_Blur_Func2 +081461d8 battle_transition.s Phase2_Blur_Func3 +08146204 battle_transition.s Phase2Task_Swirl +0814623c battle_transition.s Phase2_Swirl_Func1 +081462a8 battle_transition.s Phase2_Swirl_Func2 +08146320 battle_transition.s VBlankCB_Phase2_Swirl +08146358 battle_transition.s HBlankCB_Phase2_Swirl +08146384 battle_transition.s Phase2Task_Shuffle +081463bc battle_transition.s Phase2_Shuffle_Func1 +08146420 battle_transition.s Phase2_Shuffle_Func2 +081464b0 battle_transition.s VBlankCB_Phase2_Shuffle +081464e8 battle_transition.s HBlankCB_Phase2_Shuffle +08146514 battle_transition.s Phase2Task_BigPokeball +0814654c battle_transition.s Phase2Task_Aqua +08146584 battle_transition.s Phase2Task_Magma +081465bc battle_transition.s Phase2Task_Regice +081465f4 battle_transition.s Phase2Task_Registeel +0814662c battle_transition.s Phase2Task_Regirock +08146664 battle_transition.s Phase2Task_Kyogre +0814669c battle_transition.s sub_814669C +0814670c battle_transition.s Phase2_Aqua_Func1 +08146760 battle_transition.s Phase2_Magma_Func1 +081467b4 battle_transition.s Phase2_Regi_Func1 +08146800 battle_transition.s Phase2_BigPokeball_Func1 +08146854 battle_transition.s Phase2_BigPokeball_Func2 +081468e4 battle_transition.s Phase2_Aqua_Func2 +0814692c battle_transition.s Phase2_Magma_Func2 +08146974 battle_transition.s Phase2_Regice_Func2 +081469cc battle_transition.s Phase2_Registeel_Func2 +08146a24 battle_transition.s Phase2_Regirock_Func2 +08146a7c battle_transition.s Phase2_Kyogre_Func3 +08146ac8 battle_transition.s Phase2_Kyogre_Func4 +08146b24 battle_transition.s Phase2_Kyogre_Func5 +08146b7c battle_transition.s Phase2_WeatherDuo_Func6 +08146ba8 battle_transition.s Phase2_WeatherDuo_Func7 +08146bf8 battle_transition.s Phase2_BigPokeball_Func3 +08146c8c battle_transition.s Phase2_BigPokeball_Func4 +08146d20 battle_transition.s Phase2_BigPokeball_Func5 +08146d90 battle_transition.s Phase2_FramesCountdown +08146dac battle_transition.s Phase2_WeatherTrio_Func1 +08146dd8 battle_transition.s Phase2_WaitPaletteFade +08146df8 battle_transition.s Phase2_BigPokeball_Func6 +08146ec0 battle_transition.s Transition_BigPokeball_Vblank +08146f3c battle_transition.s VBlankCB0_Phase2_BigPokeball +08146f68 battle_transition.s VBlankCB1_Phase2_BigPokeball +08146f94 battle_transition.s Phase2Task_PokeballsTrail +08146fcc battle_transition.s Phase2_PokeballsTrail_Func1 +08147018 battle_transition.s Phase2_PokeballsTrail_Func2 +081470a4 battle_transition.s Phase2_PokeballsTrail_Func3 +081470d0 battle_transition.s FldEff_Pokeball +0814713c battle_transition.s sub_814713C +08147204 battle_transition.s Phase2Task_Clockwise_BlackFade +0814723c battle_transition.s Phase2_Clockwise_BlackFade_Func1 +081472a4 battle_transition.s Phase2_Clockwise_BlackFade_Func2 +08147334 battle_transition.s Phase2_Clockwise_BlackFade_Func3 +08147428 battle_transition.s Phase2_Clockwise_BlackFade_Func4 +081474b0 battle_transition.s Phase2_Clockwise_BlackFade_Func5 +081475b0 battle_transition.s Phase2_Clockwise_BlackFade_Func6 +08147648 battle_transition.s Phase2_Clockwise_BlackFade_Func7 +08147688 battle_transition.s VBlankCB_Phase2_Clockwise_BlackFade +08147718 battle_transition.s Phase2Task_Ripple +08147750 battle_transition.s Phase2_Ripple_Func1 +081477a8 battle_transition.s Phase2_Ripple_Func2 +08147888 battle_transition.s VBlankCB_Phase2_Ripple +081478c0 battle_transition.s HBlankCB_Phase2_Ripple +081478ec battle_transition.s Phase2Task_Wave +08147924 battle_transition.s Phase2_Wave_Func1 +0814797c battle_transition.s Phase2_Wave_Func2 +08147a18 battle_transition.s Phase2_Wave_Func3 +08147a58 battle_transition.s VBlankCB_Phase2_Wave +08147ae4 battle_transition.s Phase2Task_Sidney +08147b04 battle_transition.s Phase2Task_Phoebe +08147b24 battle_transition.s Phase2Task_Glacia +08147b44 battle_transition.s Phase2Task_Drake +08147b64 battle_transition.s Phase2Task_Champion +08147b84 battle_transition.s Phase2Task_MugShotTransition +08147bbc battle_transition.s Phase2_Mugshot_Func1 +08147c24 battle_transition.s Phase2_Mugshot_Func2 +08147ce4 battle_transition.s Phase2_Mugshot_Func3 +08147dd0 battle_transition.s Phase2_Mugshot_Func4 +08147e4c battle_transition.s Phase2_Mugshot_Func5 +08147e88 battle_transition.s Phase2_Mugshot_Func6 +08147f40 battle_transition.s Phase2_Mugshot_Func7 +08148008 battle_transition.s Phase2_Mugshot_Func8 +08148040 battle_transition.s Phase2_Mugshot_Func9 +0814808c battle_transition.s Phase2_Mugshot_Func10 +081480cc battle_transition.s VBlankCB0_Phase2_Mugshots +08148160 battle_transition.s VBlankCB1_Phase2_Mugshots +081481e0 battle_transition.s HBlankCB_Phase2_Mugshots +08148218 battle_transition.s Mugshots_CreateOpponentPlayerSprites +08148380 battle_transition.s sub_8148380 +081483a8 battle_transition.s sub_81483A8 +081483ac battle_transition.s sub_81483AC +081483f8 battle_transition.s sub_81483F8 +0814842c battle_transition.s sub_814842C +08148458 battle_transition.s sub_8148458 +08148484 battle_transition.s sub_8148484 +0814849c battle_transition.s sub_814849C +081484b8 battle_transition.s sub_81484B8 +081484d0 battle_transition.s Phase2Task_Slice +08148508 battle_transition.s Phase2_Slice_Func1 +08148590 battle_transition.s Phase2_Slice_Func2 +0814865c battle_transition.s Phase2_Slice_Func3 +0814869c battle_transition.s VBlankCB_Phase2_Slice +08148728 battle_transition.s HBlankCB_Phase2_Slice +08148760 battle_transition.s Phase2Task_ShredSplit +08148798 battle_transition.s Phase2_ShredSplit_Func1 +08148864 battle_transition.s Phase2_ShredSplit_Func2 +08148ad4 battle_transition.s Phase2_ShredSplit_Func3 +08148b14 battle_transition.s Phase2_ShredSplit_Func4 +08148b54 battle_transition.s Phase2Task_Blackhole1 +08148b8c battle_transition.s Phase2Task_Blackhole2 +08148bc4 battle_transition.s Phase2_Blackhole_Func1 +08148c28 battle_transition.s Phase2_Blackhole1_Func3 +08148ce8 battle_transition.s Phase2_Blackhole1_Func2 +08148d6c battle_transition.s Phase2_Blackhole2_Func2 +08148e54 battle_transition.s Phase2Task_RectangularSpiral +08148e8c battle_transition.s Phase2_RectangularSpiral_Func1 +08148f4c battle_transition.s Phase2_RectangularSpiral_Func2 +08149008 battle_transition.s Phase2_RectangularSpiral_Func3 +08149048 battle_transition.s sub_8149048 +08149140 battle_transition.s Phase2Task_Groudon +08149178 battle_transition.s Phase2_Groudon_Func3 +081491c8 battle_transition.s Phase2_Groudon_Func4 +08149224 battle_transition.s Phase2_Groudon_Func5 +0814927c battle_transition.s Phase2Task_Rayquaza +081492b4 battle_transition.s Phase2_Rayquaza_Func3 +08149358 battle_transition.s Phase2_Rayquaza_Func4 +08149388 battle_transition.s Phase2_Rayquaza_Func5 +081493d8 battle_transition.s Phase2_Rayquaza_Func6 +08149410 battle_transition.s Phase2_Rayquaza_Func7 +0814943c battle_transition.s Phase2_Rayquaza_Func8 +0814946c battle_transition.s Phase2_Rayquaza_Func9 +08149508 battle_transition.s VBlankCB_Phase2_Rayquaza +08149578 battle_transition.s Phase2Task_WhiteFade +081495b0 battle_transition.s Phase2_WhiteFade_Func1 +08149628 battle_transition.s Phase2_WhiteFade_Func2 +0814969c battle_transition.s Phase2_WhiteFade_Func3 +081496d8 battle_transition.s Phase2_WhiteFade_Func4 +08149740 battle_transition.s Phase2_WhiteFade_Func5 +08149774 battle_transition.s VBlankCB0_Phase2_WhiteFade +08149804 battle_transition.s VBlankCB1_Phase2_WhiteFade +08149840 battle_transition.s HBlankCB_Phase2_WhiteFade +08149864 battle_transition.s sub_8149864 +0814995c battle_transition.s Phase2Task_GridSquares +08149994 battle_transition.s Phase2_GridSquares_Func1 +081499e8 battle_transition.s Phase2_GridSquares_Func2 +08149a40 battle_transition.s Phase2_GridSquares_Func3 +08149a6c battle_transition.s Phase2Task_Shards +08149aa4 battle_transition.s Phase2_Shards_Func1 +08149b08 battle_transition.s Phase2_Shards_Func2 +08149b84 battle_transition.s Phase2_Shards_Func3 +08149c60 battle_transition.s Phase2_Shards_Func4 +08149ccc battle_transition.s Phase2_Shards_Func5 +08149ce8 battle_transition.s VBlankCB_Phase2_Shards +08149d78 battle_transition.s CreatePhase1Task +08149ddc battle_transition.s IsPhase1Done +08149dfc battle_transition.s TransitionPhase1_Task_RunFuncs +08149e34 battle_transition.s Phase1_TransitionAll_Func1 +08149e90 battle_transition.s Phase1_TransitionAll_Func2 +08149f08 battle_transition.s sub_8149F08 +08149f2c battle_transition.s VBlankCB_BattleTransition +08149f40 battle_transition.s sub_8149F40 +08149f58 battle_transition.s sub_8149F58 +08149f84 battle_transition.s sub_8149F84 +08149f98 battle_transition.s sub_8149F98 +0814a014 battle_transition.s sub_814A014 +0814a1ac battle_transition.s sub_814A1AC +0814a228 battle_transition.s sub_814A228 +0814a324 battle_transition.s Phase2_29_Func1 +0814a374 battle_transition.s Phase2_29_Func2 +0814a3bc battle_transition.s Phase2Task_29 +0814a3f4 battle_transition.s Phase2Task_30 +0814a42c battle_transition.s Phase2_30_Func1 +0814a4d4 battle_transition.s Phase2_30_Func2 +0814a500 battle_transition.s Phase2_30_Func3 +0814a550 battle_transition.s Phase2_30_Func4 +0814a684 battle_transition.s VBlankCB_Phase2_30 +0814a6cc battle_transition.s HBlankCB_Phase2_30 +0814a6f0 battle_transition.s Phase2Task_31 +0814a728 battle_transition.s Phase2Task_33 +0814a760 battle_transition.s Phase2Task_32 +0814a798 battle_transition.s Phase2_31_Func1 +0814a828 battle_transition.s Phase2_31_Func2 +0814a898 battle_transition.s Phase2_31_Func3 +0814a960 battle_transition.s Phase2_33_Func1 +0814aa04 battle_transition.s Phase2_33_Func2 +0814aa84 battle_transition.s Phase2_33_Func3 +0814aab8 battle_transition.s Phase2_33_Func4 +0814aba0 battle_transition.s Phase2_31_33_Func5 +0814abe4 battle_transition.s sub_814ABE4 +0814ac38 battle_transition.s Phase2_32_Func1 +0814ad48 battle_transition.s Phase2_32_Func2 +0814adb4 battle_transition.s Phase2_32_Func3 +0814add8 battle_transition.s Phase2_32_Func4 +0814ae40 battle_transition.s Phase2_32_Func5 +0814aeac battle_controller_link_partner.s SpriteCB_Null2 +0814aeb0 battle_controller_link_partner.s SetControllerToLinkPartner +0814aecc battle_controller_link_partner.s LinkPartnerBufferRunCommand +0814af54 battle_controller_link_partner.s sub_814AF54 +0814afbc battle_controller_link_partner.s sub_814AFBC +0814b004 battle_controller_link_partner.s sub_814B004 +0814b0e8 battle_controller_link_partner.s sub_814B0E8 +0814b290 battle_controller_link_partner.s sub_814B290 +0814b340 battle_controller_link_partner.s sub_814B340 +0814b3dc battle_controller_link_partner.s sub_814B3DC +0814b4e0 battle_controller_link_partner.s sub_814B4E0 +0814b554 battle_controller_link_partner.s sub_814B554 +0814b5a8 battle_controller_link_partner.s sub_814B5A8 +0814b69c battle_controller_link_partner.s sub_814B69C +0814b740 battle_controller_link_partner.s LinkPartnerBufferExecCompleted +0814b818 battle_controller_link_partner.s LinkPartnerHandleGetMonData +0814b88c battle_controller_link_partner.s CopyLinkPartnerMonData +0814c038 battle_controller_link_partner.s LinkPartnerHandleGetRawMonData +0814c044 battle_controller_link_partner.s LinkPartnerHandleSetMonData +0814c09c battle_controller_link_partner.s SetLinkPartnerMonData +0814ca98 battle_controller_link_partner.s LinkPartnerHandleSetRawMonData +0814cb0c battle_controller_link_partner.s LinkPartnerHandleLoadMonSprite +0814cc28 battle_controller_link_partner.s LinkPartnerHandleSwitchInAnim +0814cc98 battle_controller_link_partner.s sub_814CC98 +0814ce14 battle_controller_link_partner.s LinkPartnerHandleReturnMonToBall +0814cf30 battle_controller_link_partner.s LinkPartnerHandleDrawTrainerPic +0814d0e4 battle_controller_link_partner.s LinkPartnerHandleTrainerSlide +0814d0f0 battle_controller_link_partner.s LinkPartnerHandleTrainerSlideBack +0814d19c battle_controller_link_partner.s LinkPartnerHandleFaintAnimation +0814d288 battle_controller_link_partner.s LinkPartnerHandlePaletteFade +0814d294 battle_controller_link_partner.s LinkPartnerHandleSuccessBallThrowAnim +0814d2a0 battle_controller_link_partner.s LinkPartnerHandleBallThrowAnim +0814d2ac battle_controller_link_partner.s LinkPartnerHandlePause +0814d2b8 battle_controller_link_partner.s LinkPartnerHandleMoveAnimation +0814d40c battle_controller_link_partner.s LinkPartnerDoMoveAnimation +0814d590 battle_controller_link_partner.s LinkPartnerHandlePrintString +0814d5e8 battle_controller_link_partner.s LinkPartnerHandlePrintSelectionString +0814d5f4 battle_controller_link_partner.s LinkPartnerHandleChooseAction +0814d600 battle_controller_link_partner.s LinkPartnerHandleUnknownYesNoBox +0814d60c battle_controller_link_partner.s LinkPartnerHandleChooseMove +0814d618 battle_controller_link_partner.s LinkPartnerHandleChooseItem +0814d624 battle_controller_link_partner.s LinkPartnerHandleChoosePokemon +0814d630 battle_controller_link_partner.s LinkPartnerHandleCmd23 +0814d63c battle_controller_link_partner.s LinkPartnerHandleHealthBarUpdate +0814d72c battle_controller_link_partner.s LinkPartnerHandleExpUpdate +0814d738 battle_controller_link_partner.s LinkPartnerHandleStatusIconUpdate +0814d7b0 battle_controller_link_partner.s LinkPartnerHandleStatusAnimation +0814d818 battle_controller_link_partner.s LinkPartnerHandleStatusXor +0814d824 battle_controller_link_partner.s LinkPartnerHandleDataTransfer +0814d830 battle_controller_link_partner.s LinkPartnerHandleDMA3Transfer +0814d83c battle_controller_link_partner.s LinkPartnerHandlePlayBGM +0814d848 battle_controller_link_partner.s LinkPartnerHandleCmd32 +0814d854 battle_controller_link_partner.s LinkPartnerHandleTwoReturnValues +0814d860 battle_controller_link_partner.s LinkPartnerHandleChosenMonReturnValue +0814d86c battle_controller_link_partner.s LinkPartnerHandleOneReturnValue +0814d878 battle_controller_link_partner.s LinkPartnerHandleOneReturnValue_Duplicate +0814d884 battle_controller_link_partner.s LinkPartnerHandleCmd37 +0814d8a0 battle_controller_link_partner.s LinkPartnerHandleCmd38 +0814d8d8 battle_controller_link_partner.s LinkPartnerHandleCmd39 +0814d8f0 battle_controller_link_partner.s LinkPartnerHandleCmd40 +0814d918 battle_controller_link_partner.s LinkPartnerHandleHitAnimation +0814d988 battle_controller_link_partner.s LinkPartnerHandleCmd42 +0814d994 battle_controller_link_partner.s LinkPartnerHandlePlaySE +0814d9d8 battle_controller_link_partner.s LinkPartnerHandlePlayFanfareOrBGM +0814da34 battle_controller_link_partner.s LinkPartnerHandleFaintingCry +0814da74 battle_controller_link_partner.s LinkPartnerHandleIntroSlide +0814daa8 battle_controller_link_partner.s LinkPartnerHandleIntroTrainerBallThrow +0814dccc battle_controller_link_partner.s sub_814DCCC +0814ddd8 battle_controller_link_partner.s LinkPartnerHandleDrawPartyStatusSummary +0814de9c battle_controller_link_partner.s sub_814DE9C +0814dee4 battle_controller_link_partner.s LinkPartnerHandleHidePartyStatusSummary +0814df34 battle_controller_link_partner.s LinkPartnerHandleEndBounceEffect +0814df40 battle_controller_link_partner.s LinkPartnerHandleSpriteInvisibility +0814dfa0 battle_controller_link_partner.s LinkPartnerHandleBattleAnimation +0814e014 battle_controller_link_partner.s LinkPartnerHandleLinkStandbyMsg +0814e034 battle_controller_link_partner.s LinkPartnerHandleResetActionMoveSelection +0814e040 battle_controller_link_partner.s LinkPartnerHandleCmd55 +0814e0c0 battle_controller_link_partner.s LinkPartnerCmdEnd +0814e0c4 battle_message.s BufferStringBattle +0814e6f0 battle_message.s BattleStringExpandPlaceholdersToDisplayedString +0814e700 battle_message.s TryGetStatusString +0814e764 battle_message.s BattleStringExpandPlaceholders +0814f648 battle_message.s ExpandBattleTextBuffPlaceholders +0814f8f8 battle_message.s ChooseMoveUsedParticle +0814f950 battle_message.s ChooseTypeOfMoveUsedString +0814f9ec battle_message.s BattlePutTextOnWindow +0814fbac battle_message.s SetPpNumbersPaletteInMoveSelection +0814fc20 battle_message.s GetCurrentPpToMaxPpState +0814fc70 cable_car.s CableCarTask1 +0814fc9c cable_car.s CableCar +0814fcc8 cable_car.s CableCarMainCallback_Setup +0815023c cable_car.s CableCarMainCallback_Run +08150258 cable_car.s CleanupCableCar +081503e4 cable_car.s sub_81503E4 +08150550 cable_car.s sub_8150550 +08150664 cable_car.s sub_8150664 +08150800 cable_car.s CableCarVblankCallback +08150864 cable_car.s nullsub_58 +08150868 cable_car.s sub_8150868 +08150948 cable_car.s sub_8150948 +08150a68 cable_car.s sub_8150A68 +08150af4 cable_car.s sub_8150AF4 +08150b6c cable_car.s sub_8150B6C +08150d28 cable_car.s LoadCableCarSprites +08151088 cable_car.s sub_8151088 +0815115c cable_car.s sub_815115C +081511b8 cable_car.s sub_81511B8 +08151214 cable_car.s sub_8151214 +08151388 cable_car.s sub_8151388 +081514c8 cable_car.s sub_81514C8 +08151534 math_util.s sub_8151534 +08151550 math_util.s sub_8151550 +08151574 math_util.s sub_8151574 +081515b0 math_util.s sub_81515B0 +081515d4 math_util.s sub_81515D4 +081515fc math_util.s sub_81515FC +08151624 math_util.s sub_8151624 +0815163c math_util.s sub_815163C +0815165c math_util.s sub_815165C +08151678 roulette_util.s sub_8151678 +0815168c roulette_util.s sub_815168C +08151710 roulette_util.s sub_8151710 +08151744 roulette_util.s sub_8151744 +0815194c roulette_util.s sub_815194C +081519dc roulette_util.s task_tutorial_controls_fadein +08151a48 roulette_util.s sub_8151A48 +08151a9c roulette_util.s sub_8151A9C +08151b3c roulette_util.s InitPulseBlend +08151b68 roulette_util.s InitPulseBlendPaletteSettings +08151bd4 roulette_util.s ClearPulseBlendPalettesSettings +08151c50 roulette_util.s UnloadUsedPulseBlendPalettes +08151ca8 roulette_util.s MarkUsedPulseBlendPalettes +08151d28 roulette_util.s UnmarkUsedPulseBlendPalettes +08151e50 roulette_util.s UpdatePulseBlend +08152008 roulette_util.s sub_8152008 +08152058 roulette_util.s sub_8152058 +081520a8 rom_81520A8.s sub_81520A8 +08152134 rom_81520A8.s sub_8152134 +081521c0 rom_81520A8.s sub_81521C0 +08152254 rom_81520A8.s sub_8152254 +081522d4 rom_81520A8.s sub_81522D4 +081523f4 rom_81520A8.s sub_81523F4 +08152438 rom_81520A8.s sub_8152438 +08152474 rom_81520A8.s sub_8152474 +081524c4 rom_81520A8.s sub_81524C4 +081525d0 rom_81520A8.s sub_81525D0 +08152650 save.s ClearSaveData +08152680 save.s Save_ResetSaveCounters +0815269c save.s SetDamagedSectorBits +08152700 save.s save_write_to_flash +081527a0 save.s HandleWriteSector +08152890 save.s HandleWriteSectorNBytes +08152908 save.s TryWriteSector +08152934 save.s RestoreSaveBackupVarsAndIncrement +08152990 save.s RestoreSaveBackupVars +081529d4 save.s sub_81529D4 +08152a34 save.s sub_8152A34 +08152a80 save.s ClearSaveData_2 +08152c20 save.s sav12_xor_get +08152cac save.s sub_8152CAC +08152d44 save.s sub_8152D44 +08152dd0 save.s sub_8152DD0 +08152e10 save.s sub_8152E10 +08152ec8 save.s GetSaveValidStatus +081530dc save.s sub_81530DC +0815314c save.s DoReadFlashWholeSection +08153164 save.s CalculateChecksum +08153190 save.s UpdateSaveAddresses +08153204 save.s HandleSavingData +08153338 save.s TrySavingData +08153380 save.s sub_8153380 +081533ac save.s sub_81533AC +081533e0 save.s sub_81533E0 +08153408 save.s sub_8153408 +08153430 save.s FullSaveGame +08153474 save.s CheckSaveFile +081534d0 save.s Save_LoadGameData +0815355c save.s sub_815355C +081535dc save.s TryReadSpecialSaveSection +08153634 save.s TryWriteSpecialSaveSection +08153688 save.s sub_8153688 +081537cc mystery_event_script.s CheckCompatibility +08153804 mystery_event_script.s SetIncompatible +08153820 mystery_event_script.s InitMysteryEventScript +08153850 mystery_event_script.s RunMysteryEventScriptCommand +08153870 mystery_event_script.s sub_8153870 +08153884 mystery_event_script.s sub_8153884 +081538a0 mystery_event_script.s RunMysteryEventScript +081538c4 mystery_event_script.s SetMysteryEventScriptStatus +081538d0 mystery_event_script.s CalcRecordMixingGiftChecksum +081538f8 mystery_event_script.s IsRecordMixingGiftValid +08153944 mystery_event_script.s ClearRecordMixingGift +08153970 mystery_event_script.s SetRecordMixingGift +081539d4 mystery_event_script.s GetRecordMixingGift +08153a24 mystery_event_script.s MEScrCmd_end +08153a30 mystery_event_script.s MEScrCmd_checkcompat +08153a80 mystery_event_script.s MEScrCmd_nop +08153a84 mystery_event_script.s MEScrCmd_setstatus +08153a94 mystery_event_script.s MEScrCmd_setmsg +08153acc mystery_event_script.s MEScrCmd_runscript +08153ae8 mystery_event_script.s MEScrCmd_setenigmaberry +08153bb0 mystery_event_script.s MEScrCmd_giveribbon +08153be4 mystery_event_script.s MEScrCmd_initramscript +08153c4c mystery_event_script.s MEScrCmd_givenationaldex +08153c70 mystery_event_script.s MEScrCmd_addrareword +08153c9c mystery_event_script.s MEScrCmd_setrecordmixinggift +08153cc8 mystery_event_script.s MEScrCmd_givepokemon +08153dd4 mystery_event_script.s MEScrCmd_addtrainer +08153e1c mystery_event_script.s MEScrCmd_enableresetrtc +08153e40 mystery_event_script.s MEScrCmd_checksum +08153e88 mystery_event_script.s MEScrCmd_crc +08153ed4 field_effect_helpers.s SetUpReflection +08153f98 field_effect_helpers.s GetReflectionVerticalOffset +08153fac field_effect_helpers.s LoadObjectReflectionPalette +0815401c field_effect_helpers.s LoadObjectRegularReflectionPalette +08154078 field_effect_helpers.s LoadObjectHighBridgeReflectionPalette +081540a8 field_effect_helpers.s UpdateObjectReflectionSprite +08154228 field_effect_helpers.s CreateWarpArrowSprite +08154278 field_effect_helpers.s SetSpriteInvisible +08154298 field_effect_helpers.s ShowWarpArrowSprite +08154340 field_effect_helpers.s FldEff_Shadow +081543e4 field_effect_helpers.s UpdateShadowFieldEffect +081544ac field_effect_helpers.s FldEff_TallGrass +08154550 field_effect_helpers.s UpdateTallGrassFieldEffect +08154658 field_effect_helpers.s FldEff_JumpTallGrass +081546c8 field_effect_helpers.s FindTallGrassFieldEffectSpriteId +08154758 field_effect_helpers.s FldEff_LongGrass +08154800 field_effect_helpers.s UpdateLongGrassFieldEffect +081548fc field_effect_helpers.s FldEff_JumpLongGrass +0815496c field_effect_helpers.s FldEff_ShortGrass +08154a10 field_effect_helpers.s UpdateShortGrassFieldEffect +08154b04 field_effect_helpers.s FldEff_SandFootprints +08154b78 field_effect_helpers.s FldEff_DeepSandFootprints +08154bec field_effect_helpers.s FldEff_BikeTireTracks +08154c60 field_effect_helpers.s UpdateFootprintsTireTracksFieldEffect +08154c7c field_effect_helpers.s FadeFootprintsTireTracks_Step0 +08154ca0 field_effect_helpers.s FadeFootprintsTireTracks_Step1 +08154cec field_effect_helpers.s FldEff_Splash +08154d90 field_effect_helpers.s UpdateSplashFieldEffect +08154e1c field_effect_helpers.s FldEff_JumpSmallSplash +08154e8c field_effect_helpers.s FldEff_JumpBigSplash +08154efc field_effect_helpers.s FldEff_FeetInFlowingWater +08154fb4 field_effect_helpers.s UpdateFeetInFlowingWaterFieldEffect +08155054 field_effect_helpers.s FldEff_Ripple +081550b4 field_effect_helpers.s FldEff_HotSpringsWater +08155158 field_effect_helpers.s UpdateHotSpringsWaterFieldEffect +081551f0 field_effect_helpers.s FldEff_Unknown19 +0815525c field_effect_helpers.s FldEff_Unknown20 +081552c8 field_effect_helpers.s FldEff_Unknown21 +08155334 field_effect_helpers.s FldEff_Unknown22 +081553a0 field_effect_helpers.s StartAshFieldEffect +081553d4 field_effect_helpers.s FldEff_Ash +08155460 field_effect_helpers.s UpdateAshFieldEffect +0815547c field_effect_helpers.s UpdateAshFieldEffect_Step0 +081554ac field_effect_helpers.s UpdateAshFieldEffect_Step1 +0815550c field_effect_helpers.s UpdateAshFieldEffect_Step2 +08155534 field_effect_helpers.s FldEff_SurfBlob +081555ac field_effect_helpers.s sub_81555AC +081555d8 field_effect_helpers.s sub_81555D8 +08155604 field_effect_helpers.s sub_8155604 +08155638 field_effect_helpers.s sub_8155638 +08155640 field_effect_helpers.s sub_8155640 +0815564c field_effect_helpers.s sub_815564C +08155658 field_effect_helpers.s UpdateSurfBlobFieldEffect +081556b0 field_effect_helpers.s SynchroniseSurfAnim +081556e8 field_effect_helpers.s sub_81556E8 +0815577c field_effect_helpers.s CreateBobbingEffect +08155800 field_effect_helpers.s sub_8155800 +08155850 field_effect_helpers.s sub_8155850 +08155890 field_effect_helpers.s FldEff_Dust +08155900 field_effect_helpers.s FldEff_SandPile +081559bc field_effect_helpers.s UpdateSandPileFieldEffect +08155a88 field_effect_helpers.s FldEff_Bubbles +08155aec field_effect_helpers.s UpdateBubblesFieldEffect +08155b2c field_effect_helpers.s FldEff_BerryTreeGrowthSparkle +08155ba0 field_effect_helpers.s ShowTreeDisguiseFieldEffect +08155bb0 field_effect_helpers.s ShowMountainDisguiseFieldEffect +08155bc0 field_effect_helpers.s ShowSandDisguiseFieldEffect +08155bd0 field_effect_helpers.s ShowDisguiseFieldEffect +08155c88 field_effect_helpers.s UpdateDisguiseFieldEffect +08155d78 field_effect_helpers.s sub_8155D78 +08155da0 field_effect_helpers.s sub_8155DA0 +08155ddc field_effect_helpers.s FldEff_Sparkle +08155e50 field_effect_helpers.s UpdateSparkleFieldEffect +08155ea0 field_effect_helpers.s sub_8155EA0 +08155ea8 field_effect_helpers.s sub_8155EA8 +08155f80 field_effect_helpers.s sub_8155F80 +08156194 field_effect_helpers.s sub_8156194 +081561d0 field_effect_helpers.s WaitFieldEffectSpriteAnim +081561fc field_effect_helpers.s sub_81561FC +081562c4 contest_ai.s ContestAI_ResetAI +08156324 contest_ai.s ContestAI_GetActionToUse +081563b0 contest_ai.s ContestAI_DoAIProcessing +081564ac contest_ai.s sub_81563B0 +081564dc contest_ai.s ContestAICmd_score +08156530 contest_ai.s ContestAICmd_get_turn +08156550 contest_ai.s ContestAICmd_if_turn_less_than +08156594 contest_ai.s ContestAICmd_if_turn_more_than +081565d8 contest_ai.s ContestAICmd_if_turn_eq +0815661c contest_ai.s ContestAICmd_if_turn_not_eq +08156660 contest_ai.s ContestAICmd_get_excitement +08156684 contest_ai.s ContestAICmd_if_excitement_less_than +081566c8 contest_ai.s ContestAICmd_if_excitement_more_than +0815670c contest_ai.s ContestAICmd_if_excitement_eq +08156750 contest_ai.s ContestAICmd_if_excitement_not_eq +08156794 contest_ai.s ContestAICmd_get_user_order +081567bc contest_ai.s ContestAICmd_if_user_order_less_than +08156800 contest_ai.s ContestAICmd_if_user_order_more_than +08156844 contest_ai.s ContestAICmd_if_user_order_eq +08156888 contest_ai.s ContestAICmd_if_user_order_not_eq +081568cc contest_ai.s ContestAICmd_get_user_condition +0815690c contest_ai.s ContestAICmd_if_user_condition_less_than +08156950 contest_ai.s ContestAICmd_if_user_condition_more_than +08156994 contest_ai.s ContestAICmd_if_user_condition_eq +081569d8 contest_ai.s ContestAICmd_if_user_condition_not_eq +08156a1c contest_ai.s ContestAICmd_unk_15 +08156a48 contest_ai.s ContestAICmd_unk_16 +08156a98 contest_ai.s ContestAICmd_unk_17 +08156ae8 contest_ai.s ContestAICmd_unk_18 +08156b38 contest_ai.s ContestAICmd_unk_19 +08156b88 contest_ai.s ContestAICmd_unk_1A +08156bb4 contest_ai.s ContestAICmd_unk_1B +08156c04 contest_ai.s ContestAICmd_unk_1C +08156c54 contest_ai.s ContestAICmd_unk_1D +08156ca4 contest_ai.s ContestAICmd_unk_1E +08156cf4 contest_ai.s ContestAICmd_get_contest_type +08156d18 contest_ai.s ContestAICmd_if_contest_type_eq +08156d5c contest_ai.s ContestAICmd_if_contest_type_not_eq +08156da0 contest_ai.s ContestAICmd_get_move_excitement +08156de4 contest_ai.s ContestAICmd_if_move_excitement_less_than +08156e2c contest_ai.s ContestAICmd_if_move_excitement_greater_than +08156e74 contest_ai.s ContestAICmd_if_move_excitement_eq +08156ebc contest_ai.s ContestAICmd_if_move_excitement_not_eq +08156f04 contest_ai.s ContestAICmd_get_move_effect +08156f44 contest_ai.s ContestAICmd_if_move_effect_eq +08156f88 contest_ai.s ContestAICmd_if_move_effect_not_eq +08156fcc contest_ai.s ContestAICmd_get_move_effect_type +08157018 contest_ai.s ContestAICmd_if_move_effect_type_eq +0815705c contest_ai.s ContestAICmd_if_move_effect_type_not_eq +081570a0 contest_ai.s ContestAICmd_check_most_appealing_move +0815712c contest_ai.s ContestAICmd_if_most_appealing_move +08157174 contest_ai.s ContestAICmd_unk_2F +08157200 contest_ai.s ContestAICmd_unk_30 +08157248 contest_ai.s ContestAICmd_unk_31 +081572a4 contest_ai.s ContestAICmd_unk_32 +081572e8 contest_ai.s ContestAICmd_unk_33 +0815732c contest_ai.s ContestAICmd_unk_34 +08157370 contest_ai.s ContestAICmd_unk_35 +081573b4 contest_ai.s ContestAICmd_unk_36 +08157410 contest_ai.s ContestAICmd_unk_37 +08157454 contest_ai.s ContestAICmd_unk_38 +08157498 contest_ai.s ContestAICmd_unk_39 +081574dc contest_ai.s ContestAICmd_unk_3A +08157520 contest_ai.s ContestAICmd_get_move_used_count +08157578 contest_ai.s ContestAICmd_if_most_used_count_less_than +081575bc contest_ai.s ContestAICmd_if_most_used_count_more_than +08157600 contest_ai.s ContestAICmd_if_most_used_count_eq +08157644 contest_ai.s ContestAICmd_if_most_used_count_not_eq +08157688 contest_ai.s ContestAICmd_check_combo_starter +08157700 contest_ai.s ContestAICmd_if_combo_starter +08157748 contest_ai.s ContestAICmd_if_not_combo_starter +08157790 contest_ai.s ContestAICmd_check_combo_finisher +08157808 contest_ai.s ContestAICmd_if_combo_finisher +08157850 contest_ai.s ContestAICmd_if_not_combo_finisher +08157898 contest_ai.s ContestAICmd_check_would_finish_combo +081578f8 contest_ai.s ContestAICmd_if_would_finish_combo +08157940 contest_ai.s ContestAICmd_if_would_not_finish_combo +08157988 contest_ai.s ContestAICmd_get_condition +081579cc contest_ai.s ContestAICmd_if_condition_less_than +08157a10 contest_ai.s ContestAICmd_if_condition_more_than +08157a54 contest_ai.s ContestAICmd_if_condition_eq +08157a98 contest_ai.s ContestAICmd_if_condition_not_eq +08157adc contest_ai.s ContestAICmd_get_used_combo_starter +08157b38 contest_ai.s ContestAICmd_if_used_combo_starter_less_than +08157b7c contest_ai.s ContestAICmd_if_used_combo_starter_more_than +08157bc0 contest_ai.s ContestAICmd_if_used_combo_starter_eq +08157c04 contest_ai.s ContestAICmd_if_used_combo_starter_not_eq +08157c48 contest_ai.s ContestAICmd_check_can_participate +08157c94 contest_ai.s ContestAICmd_if_can_participate +08157cdc contest_ai.s ContestAICmd_if_cannot_participate +08157d24 contest_ai.s ContestAICmd_get_val_812A188 +08157d60 contest_ai.s ContestAICmd_unk_57 +08157da8 contest_ai.s ContestAICmd_contest_58 +08157df0 contest_ai.s ContestAICmd_unk_59 +08157e3c contest_ai.s ContestAICmd_unk_5A +08157e84 contest_ai.s ContestAICmd_unk_5B +08157ecc contest_ai.s ContestAICmd_unk_5C +08157f14 contest_ai.s ContestAICmd_unk_5D +08157f5c contest_ai.s ContestAICmd_unk_5E +08157fa0 contest_ai.s ContestAICmd_unk_5F +08157fe8 contest_ai.s ContestAICmd_unk_60 +08158030 contest_ai.s ContestAICmd_unk_61 +08158078 contest_ai.s ContestAICmd_unk_62 +081580c0 contest_ai.s ContestAICmd_unk_63 +08158108 contest_ai.s ContestAICmd_unk_64 +0815814c contest_ai.s ContestAICmd_unk_65 +08158190 contest_ai.s ContestAICmd_unk_66 +081581d4 contest_ai.s ContestAICmd_unk_67 +08158218 contest_ai.s ContestAICmd_unk_68 +08158254 contest_ai.s ContestAICmd_unk_69 +08158298 contest_ai.s ContestAICmd_unk_6A +081582dc contest_ai.s ContestAICmd_unk_6B +08158320 contest_ai.s ContestAICmd_unk_6C +08158364 contest_ai.s ContestAICmd_unk_6D +081583b8 contest_ai.s ContestAICmd_unk_6E +081583fc contest_ai.s ContestAICmd_unk_6F +08158440 contest_ai.s ContestAICmd_unk_70 +0815846c contest_ai.s ContestAICmd_unk_71 +0815849c contest_ai.s ContestAICmd_unk_72 +081584d4 contest_ai.s ContestAICmd_unk_73 +08158508 contest_ai.s ContestAICmd_unk_74 +0815853c contest_ai.s ContestAICmd_unk_75 +0815858c contest_ai.s ContestAICmd_unk_76 +081585dc contest_ai.s ContestAICmd_unk_77 +0815862c contest_ai.s ContestAICmd_unk_78 +0815867c contest_ai.s ContestAICmd_unk_79 +081586d0 contest_ai.s ContestAICmd_unk_7A +08158724 contest_ai.s ContestAICmd_unk_7B +08158778 contest_ai.s ContestAICmd_unk_7C +081587cc contest_ai.s ContestAICmd_if_random +0815881c contest_ai.s ContestAICmd_unk_7E +0815886c contest_ai.s ContestAICmd_jump +0815888c contest_ai.s ContestAICmd_call +081588bc contest_ai.s ContestAICmd_end +081588e0 contest_ai.s AIStackPushVar +08158908 contest_ai.s AIStackPop +08158948 contest_ai.s ContestAICmd_check_user_has_exciting_move +081589a4 contest_ai.s ContestAICmd_if_user_has_exciting_move +081589ec contest_ai.s ContestAICmd_if_user_doesnt_have_exciting_move +08158a34 contest_ai.s ContestAICmd_unk_85 +08158aa0 contest_ai.s ContestAICmd_unk_86 +08158ae8 contest_ai.s ContestAICmd_if_effect_in_user_moveset +08158b30 battle_anim_sound_tasks.s sub_8158B30 +08158b98 battle_anim_sound_tasks.s sub_8158B98 +08158c04 battle_anim_sound_tasks.s sub_8158C04 +08158c58 battle_anim_sound_tasks.s sub_8158C58 +08158d08 battle_anim_sound_tasks.s sub_8158D08 +08158d8c battle_anim_sound_tasks.s sub_8158D8C +08158e9c battle_anim_sound_tasks.s sub_8158E9C +08158ff4 battle_anim_sound_tasks.s sub_8158FF4 +08159078 battle_anim_sound_tasks.s sub_8159078 +081590b8 battle_anim_sound_tasks.s sub_81590B8 +0815913c battle_anim_sound_tasks.s sub_815913C +08159210 battle_anim_sound_tasks.s sub_8159210 +08159244 battle_anim_sound_tasks.s sub_8159244 +08159278 battle_anim_sound_tasks.s sub_8159278 +08159308 battle_anim_sound_tasks.s sub_8159308 +08159368 battle_controller_safari.s SpriteCB_Null4 +0815936c battle_controller_safari.s SetControllerToSafari +08159388 battle_controller_safari.s SafariBufferRunCommand +081593d8 battle_controller_safari.s HandleInputChooseAction +081595ac battle_controller_safari.s CompleteOnHealthboxSpriteCallbackDummy +081595e4 battle_controller_safari.s sub_81595E4 +08159624 battle_controller_safari.s CompleteOnSpecialAnimDone +08159660 battle_controller_safari.s SafariOpenPokeblockCase +08159698 battle_controller_safari.s CompleteWhenChosePokeblock +08159704 battle_controller_safari.s SafariBufferExecCompleted +081597ac battle_controller_safari.s SafariHandleGetMonData +081597b8 battle_controller_safari.s SafariHandleGetRawMonData +081597c4 battle_controller_safari.s SafariHandleSetMonData +081597d0 battle_controller_safari.s SafariHandleSetRawMonData +081597dc battle_controller_safari.s SafariHandleLoadMonSprite +081597e8 battle_controller_safari.s SafariHandleSwitchInAnim +081597f4 battle_controller_safari.s SafariHandleReturnMonToBall +08159800 battle_controller_safari.s SafariHandleDrawTrainerPic +081598e0 battle_controller_safari.s SafariHandleTrainerSlide +081598ec battle_controller_safari.s SafariHandleTrainerSlideBack +081598f8 battle_controller_safari.s SafariHandleFaintAnimation +08159904 battle_controller_safari.s SafariHandlePaletteFade +08159910 battle_controller_safari.s SafariHandleSuccessBallThrowAnim +08159964 battle_controller_safari.s SafariHandleBallThrowAnim +081599c4 battle_controller_safari.s SafariHandlePause +081599d0 battle_controller_safari.s SafariHandleMoveAnimation +081599dc battle_controller_safari.s SafariHandlePrintString +08159a30 battle_controller_safari.s SafariHandlePrintSelectionString +08159a94 battle_controller_safari.s SafariHandleChooseAction +08159afc battle_controller_safari.s SafariHandleUnknownYesNoBox +08159b08 battle_controller_safari.s SafariHandleChooseMove +08159b14 battle_controller_safari.s SafariHandleChooseItem +08159b54 battle_controller_safari.s SafariHandleChoosePokemon +08159b60 battle_controller_safari.s SafariHandleCmd23 +08159b6c battle_controller_safari.s SafariHandleHealthBarUpdate +08159b78 battle_controller_safari.s SafariHandleExpUpdate +08159b84 battle_controller_safari.s SafariHandleStatusIconUpdate +08159bc0 battle_controller_safari.s SafariHandleStatusAnimation +08159bcc battle_controller_safari.s SafariHandleStatusXor +08159bd8 battle_controller_safari.s SafariHandleDataTransfer +08159be4 battle_controller_safari.s SafariHandleDMA3Transfer +08159bf0 battle_controller_safari.s SafariHandlePlayBGM +08159bfc battle_controller_safari.s SafariHandleCmd32 +08159c08 battle_controller_safari.s SafariHandleTwoReturnValues +08159c14 battle_controller_safari.s SafariHandleChosenMonReturnValue +08159c20 battle_controller_safari.s SafariHandleOneReturnValue +08159c2c battle_controller_safari.s SafariHandleOneReturnValue_Duplicate +08159c38 battle_controller_safari.s SafariHandleCmd37 +08159c44 battle_controller_safari.s SafariHandleCmd38 +08159c50 battle_controller_safari.s SafariHandleCmd39 +08159c5c battle_controller_safari.s SafariHandleCmd40 +08159c68 battle_controller_safari.s SafariHandleHitAnimation +08159c74 battle_controller_safari.s SafariHandleCmd42 +08159c80 battle_controller_safari.s SafariHandlePlaySE +08159cc4 battle_controller_safari.s SafariHandlePlayFanfareOrBGM +08159d20 battle_controller_safari.s SafariHandleFaintingCry +08159d5c battle_controller_safari.s SafariHandleIntroSlide +08159d90 battle_controller_safari.s SafariHandleIntroTrainerBallThrow +08159dec battle_controller_safari.s SafariHandleDrawPartyStatusSummary +08159df8 battle_controller_safari.s SafariHandleHidePartyStatusSummary +08159e04 battle_controller_safari.s SafariHandleEndBounceEffect +08159e10 battle_controller_safari.s SafariHandleSpriteInvisibility +08159e1c battle_controller_safari.s SafariHandleBattleAnimation +08159e78 battle_controller_safari.s SafariHandleLinkStandbyMsg +08159e84 battle_controller_safari.s SafariHandleResetActionMoveSelection +08159e90 battle_controller_safari.s SafariHandleCmd55 +08159eec battle_controller_safari.s SafariCmdEnd +08159ef0 fldeff_sweetscent.s SetUpFieldMove_SweetScent +08159f10 fldeff_sweetscent.s FieldCallback_SweetScent +08159f2c fldeff_sweetscent.s FldEff_SweetScent +08159f5c fldeff_sweetscent.s StartSweetScentFieldEffect +08159fec fldeff_sweetscent.s TrySweetScentEncounter +0815a090 fldeff_sweetscent.s FailSweetScentEncounter +0815a0d4 battle_anim_effects_3.s sub_815A0D4 +0815a114 battle_anim_effects_3.s sub_815A114 +0815a160 battle_anim_effects_3.s sub_815A160 +0815a1b0 battle_anim_effects_3.s sub_815A1B0 +0815a1f4 battle_anim_effects_3.s sub_815A1F4 +0815a234 battle_anim_effects_3.s sub_815A234 +0815a254 battle_anim_effects_3.s sub_815A254 +0815a2f0 battle_anim_effects_3.s sub_815A2F0 +0815a31c battle_anim_effects_3.s sub_815A31C +0815a3ac battle_anim_effects_3.s sub_815A3AC +0815a3f0 battle_anim_effects_3.s sub_815A3F0 +0815a49c battle_anim_effects_3.s sub_815A49C +0815a504 battle_anim_effects_3.s sub_815A504 +0815a52c battle_anim_effects_3.s sub_815A52C +0815a5c8 battle_anim_effects_3.s sub_815A5C8 +0815a5f0 battle_anim_effects_3.s sub_815A5F0 +0815a6c4 battle_anim_effects_3.s sub_815A6C4 +0815a73c battle_anim_effects_3.s sub_815A73C +0815a76c battle_anim_effects_3.s sub_815A76C +0815a7b0 battle_anim_effects_3.s sub_815A7B0 +0815a7ec battle_anim_effects_3.s sub_815A7EC +0815a8ac battle_anim_effects_3.s sub_815A8AC +0815a8c8 battle_anim_effects_3.s AnimTask_IsTargetPlayerSide +0815a904 battle_anim_effects_3.s AnimTask_IsHealingMove +0815a934 battle_anim_effects_3.s sub_815A934 +0815a9a0 battle_anim_effects_3.s sub_815A9A0 +0815aa6c battle_anim_effects_3.s sub_815AA6C +0815aaa4 battle_anim_effects_3.s sub_815AAA4 +0815ab5c battle_anim_effects_3.s sub_815AB5C +0815abd0 battle_anim_effects_3.s sub_815ABD0 +0815abec battle_anim_effects_3.s sub_815ABEC +0815ac8c battle_anim_effects_3.s sub_815AC8C +0815acd0 battle_anim_effects_3.s sub_815ACD0 +0815ad4c battle_anim_effects_3.s sub_815AD4C +0815adb0 battle_anim_effects_3.s sub_815ADB0 +0815aed8 battle_anim_effects_3.s sub_815AED8 +0815aff0 battle_anim_effects_3.s sub_815AFF0 +0815b054 battle_anim_effects_3.s sub_815B054 +0815b23c battle_anim_effects_3.s sub_815B23C +0815b27c battle_anim_effects_3.s sub_815B27C +0815b338 battle_anim_effects_3.s sub_815B338 +0815b394 battle_anim_effects_3.s sub_815B394 +0815b49c battle_anim_effects_3.s sub_815B49C +0815b4d4 battle_anim_effects_3.s sub_815B4D4 +0815b570 battle_anim_effects_3.s AnimMiniTwinklingStar +0815b5d0 battle_anim_effects_3.s sub_815B5D0 +0815b65c battle_anim_effects_3.s sub_815B65C +0815b6b4 battle_anim_effects_3.s sub_815B6B4 +0815b70c battle_anim_effects_3.s sub_815B70C +0815b778 battle_anim_effects_3.s sub_815B778 +0815b7d0 battle_anim_effects_3.s sub_815B7D0 +0815bb18 battle_anim_effects_3.s sub_815BB18 +0815bb58 battle_anim_effects_3.s sub_815BB58 +0815bb84 battle_anim_effects_3.s sub_815BB84 +0815be04 battle_anim_effects_3.s sub_815BE04 +0815bf44 battle_anim_effects_3.s sub_815BF44 +0815bff4 battle_anim_effects_3.s sub_815BFF4 +0815c050 battle_anim_effects_3.s sub_815C050 +0815c0a4 battle_anim_effects_3.s sub_815C0A4 +0815c3a8 battle_anim_effects_3.s AnimTask_StrongFrustrationGrowAndShrink +0815c400 battle_anim_effects_3.s AnimWeakFrustrationAngerMark +0815c478 battle_anim_effects_3.s AnimTask_RockMonBackAndForth +0815c548 battle_anim_effects_3.s AnimTask_RockMonBackAndForthStep +0815c6b0 battle_anim_effects_3.s AnimSweetScentPetal +0815c700 battle_anim_effects_3.s AnimSweetScentPetalStep +0815c770 battle_anim_effects_3.s AnimTask_FlailMovement +0815c7c4 battle_anim_effects_3.s AnimTask_FlailMovementStep +0815c95c battle_anim_effects_3.s AnimPainSplitProjectile +0815ca20 battle_anim_effects_3.s AnimTask_PainSplitMovement +0815cb88 battle_anim_effects_3.s AnimFlatterConfetti +0815cc34 battle_anim_effects_3.s AnimFlatterConfettiStep +0815cc94 battle_anim_effects_3.s AnimFlatterSpotlight +0815cd0c battle_anim_effects_3.s AnimFlatterSpotlightStep +0815cdb4 battle_anim_effects_3.s AnimReversalOrb +0815cdfc battle_anim_effects_3.s AnimReversalOrbStep +0815ced8 battle_anim_effects_3.s AnimTask_RolePlaySilhouette +0815d160 battle_anim_effects_3.s AnimTask_RolePlaySilhouetteStep1 +0815d1bc battle_anim_effects_3.s AnimTask_RolePlaySilhouetteStep2 +0815d240 battle_anim_effects_3.s AnimTask_AcidArmor +0815d398 battle_anim_effects_3.s AnimTask_AcidArmorStep +0815d64c battle_anim_effects_3.s AnimTask_DeepInhale +0815d694 battle_anim_effects_3.s AnimTask_DeepInhaleStep +0815d72c battle_anim_effects_3.s InitYawnCloudPosition +0815d794 battle_anim_effects_3.s UpdateYawnCloudPosition +0815d7b4 battle_anim_effects_3.s AnimYawnCloud +0815d804 battle_anim_effects_3.s AnimYawnCloudStep +0815d870 battle_anim_effects_3.s AnimSmokeBallEscapeCloud +0815d8d8 battle_anim_effects_3.s sub_815D8D8 +0815da20 battle_anim_effects_3.s sub_815DA20 +0815db90 battle_anim_effects_3.s sub_815DB90 +0815dca4 battle_anim_effects_3.s AnimTask_SquishAndSweatDroplets +0815dd48 battle_anim_effects_3.s AnimTask_SquishAndSweatDropletsStep +0815dde0 battle_anim_effects_3.s CreateSweatDroplets +0815debc battle_anim_effects_3.s sub_815DEBC +0815df0c battle_anim_effects_3.s AnimTask_FacadeColorBlend +0815df64 battle_anim_effects_3.s AnimTask_FacadeColorBlendStep +0815dfcc battle_anim_effects_3.s sub_815DFCC +0815e01c battle_anim_effects_3.s AnimRoarNoiseLine +0815e0dc battle_anim_effects_3.s AnimRoarNoiseLineStep +0815e114 battle_anim_effects_3.s AnimTask_GlareEyeDots +0815e20c battle_anim_effects_3.s AnimTask_GlareEyeDotsStep +0815e34c battle_anim_effects_3.s GetGlareEyeDotCoords +0815e404 battle_anim_effects_3.s AnimGlareEyeDot +0815e444 battle_anim_effects_3.s AnimAssistPawprint +0815e47c battle_anim_effects_3.s AnimTask_BarrageBall +0815e5cc battle_anim_effects_3.s AnimTask_BarrageBallStep +0815e6d8 battle_anim_effects_3.s AnimSmellingSaltsHand +0815e784 battle_anim_effects_3.s sub_815E784 +0815e840 battle_anim_effects_3.s AnimTask_SmellingSaltsSquish +0815e898 battle_anim_effects_3.s AnimTask_SmellingSaltsSquishStep +0815e954 battle_anim_effects_3.s AnimSmellingSaltExclamation +0815e9bc battle_anim_effects_3.s AnimSmellingSaltExclamationStep +0815ea14 battle_anim_effects_3.s AnimHelpingHandClap +0815ea60 battle_anim_effects_3.s AnimHelpingHandClapStep +0815ec48 battle_anim_effects_3.s AnimTask_HelpingHandAttackerMovement +0815ece4 battle_anim_effects_3.s AnimTask_HelpingHandAttackerMovementStep +0815ee84 battle_anim_effects_3.s AnimForesightMagnifyingGlass +0815ef08 battle_anim_effects_3.s AnimForesightMagnifyingGlassStep +0815f10c battle_anim_effects_3.s AnimMeteorMashStarStep +0815f18c battle_anim_effects_3.s AnimMeteorMashStar +0815f20c battle_anim_effects_3.s AnimTask_MonToSubstitute +0815f330 battle_anim_effects_3.s AnimTask_MonToSubstituteDoll +0815f48c battle_anim_effects_3.s AnimBlockX +0815f4f0 battle_anim_effects_3.s AnimBlockXStep +0815f620 battle_anim_effects_3.s AnimTask_OdorSleuthMovement +0815f79c battle_anim_effects_3.s AnimTask_OdorSleuthMovementWaitFinish +0815f7c4 battle_anim_effects_3.s MoveOdorSleuthClone +0815f8a0 battle_anim_effects_3.s AnimTask_GetReturnPowerLevel +0815f8f4 battle_anim_effects_3.s AnimTask_SnatchOpposingMonMove +0815fe80 battle_anim_effects_3.s sub_815FE80 +0815ffc4 battle_anim_effects_3.s AnimTask_SnatchPartnerMove +08160164 battle_anim_effects_3.s AnimTask_TeeterDanceMovement +081601dc battle_anim_effects_3.s AnimTask_TeeterDanceMovementStep +081602e0 battle_anim_effects_3.s AnimKnockOffStrikeStep +08160338 battle_anim_effects_3.s AnimKnockOffStrike +081603a8 battle_anim_effects_3.s AnimRecycle +081603f4 battle_anim_effects_3.s AnimRecycleStep +081604f0 battle_anim_effects_3.s AnimTask_GetWeather +08160544 battle_anim_effects_3.s AnimTask_SlackOffSquish +0816058c battle_anim_effects_3.s AnimTask_SlackOffSquishStep +08160624 move_relearner.s VBlankCB_MoveRelearner +08160638 move_relearner.s TeachMoveRelearnerMove +08160664 move_relearner.s Task_WaitForFadeOut +081606a0 move_relearner.s CB2_InitLearnMove +08160740 move_relearner.s CB2_InitLearnMoveReturnFromSelectMove +081607ec move_relearner.s InitMoveRelearnerBackgroundLayers +0816082c move_relearner.s CB2_MoveRelearnerMain +0816084c move_relearner.s FormatAndPrintText +08160868 move_relearner.s DoMoveRelearnerMain +08160ea0 move_relearner.s FreeMoveRelearnerResources +08160ee0 move_relearner.s HideHeartSpritesAndShowTeachMoveText +08161054 move_relearner.s GetCurrentSelectedMove +08161074 move_relearner.s ShowTeachMoveText +081610b8 move_relearner.s CreateUISprites +081611ac move_relearner.s AddScrollArrows +08161234 move_relearner.s RemoveScrollArrows +08161280 move_relearner.s CreateLearnableMovesList +0816137c move_relearner.s MoveRelearnerShowHideHearts +08161508 fldeff_softboiled.s SetUpFieldMove_SoftBoiled +08161560 fldeff_softboiled.s sub_8161560 +081615a8 fldeff_softboiled.s sub_81615A8 +0816166c fldeff_softboiled.s sub_816166C +081616c0 fldeff_softboiled.s sub_81616C0 +08161724 fldeff_softboiled.s sub_8161724 +08161784 fldeff_softboiled.s sub_8161784 +081617b8 fldeff_softboiled.s sub_81617B8 +081617f4 decoration_inventory.s SetDecorationInventoriesPointers +08161880 decoration_inventory.s ClearDecorationInventory +081618b4 decoration_inventory.s ClearDecorationInventories +081618d0 decoration_inventory.s GetFirstEmptyDecorSlot +08161918 decoration_inventory.s CheckHasDecoration +08161960 decoration_inventory.s DecorationAdd +081619a8 decoration_inventory.s DecorationCheckSpace +081619dc decoration_inventory.s DecorationRemove +08161a38 decoration_inventory.s CondenseDecorationsInCategory +08161ad0 decoration_inventory.s GetNumOwnedDecorationsInCategory +08161b10 decoration_inventory.s GetNumOwnedDecorations +08161b34 roamer.s ClearRoamerData +08161b60 roamer.s ClearRoamerLocationData +08161b94 roamer.s CreateInitialRoamerMon +08161cbc roamer.s InitRoamer +08161cd8 roamer.s UpdateLocationHistoryForRoamer +08161d00 roamer.s RoamerMoveToOtherLocationSet +08161d54 roamer.s RoamerMove +08161de8 roamer.s IsRoamerAt +08161e28 roamer.s CreateRoamerMonInstance +08161edc roamer.s TryStartRoamerEncounter +08161f18 roamer.s UpdateRoamerHPStatus +08161f4c roamer.s SetRoamerInactive +08161f64 roamer.s GetRoamerLocation +08161f74 battle_tower.s sub_8161F74 +08161f94 battle_tower.s sub_8161F94 +08162054 battle_tower.s sub_8162054 +081620f4 battle_tower.s sub_81620F4 +081621c0 battle_tower.s sub_81621C0 +0816222c battle_tower.s ChooseSpecialBattleTowerTrainer +081623f0 battle_tower.s ChooseNextBattleTowerTrainer +08162548 battle_tower.s sub_8162548 +081625b4 battle_tower.s sub_81625B4 +08162614 battle_tower.s SetBattleFacilityTrainerGfxId +08162794 battle_tower.s SetEReaderTrainerGfxId +081627a4 battle_tower.s GetBattleFacilityTrainerGfxId +081628a0 battle_tower.s PutNewBattleTowerRecord +08162aa0 battle_tower.s GetFrontierTrainerFrontSpriteId +08162bd8 battle_tower.s GetFrontierOpponentClass +08162d34 battle_tower.s GetFrontierTrainerFacilityClass +08162e20 battle_tower.s GetFrontierTrainerName +08162f68 battle_tower.s IsFrontierTrainerFemale +08163048 battle_tower.s FillFrontierTrainerParty +0816306c battle_tower.s FillFrontierTrainersParties +081630a0 battle_tower.s FillTentTrainerParty +081630c4 battle_tower.s FillTrainerParty +08163444 battle_tower.s Unused_CreateApprenticeMons +08163524 battle_tower.s RandomizeFacilityTrainerMonSet +08163590 battle_tower.s FillFactoryTrainerParty +081635d4 battle_tower.s FillFactoryFrontierTrainerParty +0816379c battle_tower.s FillFactoryTentTrainerParty +081638ac battle_tower.s FrontierSpeechToString +08163914 battle_tower.s sub_8163914 +081639ac battle_tower.s HandleSpecialTrainerBattleEnd +08163a8c battle_tower.s Task_StartBattleAfterTransition +08163ac4 battle_tower.s DoSpecialTrainerBattle +08163e90 battle_tower.s SaveCurrentWinStreak +08163ee4 battle_tower.s sub_8163EE4 +08164040 battle_tower.s SaveBattleTowerProgress +081640d8 battle_tower.s nullsub_61 +081640dc battle_tower.s SpriteCB_Null6 +081640e0 battle_tower.s sub_81640E0 +08164188 battle_tower.s sub_8164188 +081642a0 battle_tower.s sub_81642A0 +081646bc battle_tower.s sub_81646BC +08164828 battle_tower.s sub_8164828 +08164b74 battle_tower.s sub_8164B74 +08164dcc battle_tower.s sub_8164DCC +08164de4 battle_tower.s sub_8164DE4 +08164e04 battle_tower.s sub_8164E04 +08164ed8 battle_tower.s ValidateBattleTowerRecordChecksums +08164f70 battle_tower.s CalcEmeraldBattleTowerChecksum +08164f94 battle_tower.s CalcRubyBattleTowerChecksum +08164fb8 battle_tower.s ClearBattleTowerRecord +08164fcc battle_tower.s GetCurrentBattleTowerWinStreak +08164ffc battle_tower.s GetMonCountForBattleMode +0816502c battle_tower.s AwardBattleTowerRibbons +0816515c battle_tower.s FillEReaderTrainerWithPlayerData +08165244 battle_tower.s GetEreaderTrainerFrontSpriteId +08165264 battle_tower.s GetEreaderTrainerClassId +08165284 battle_tower.s GetEreaderTrainerName +081652b4 battle_tower.s ValidateEReaderTrainer +08165328 battle_tower.s SetEReaderTrainerChecksum +0816534c battle_tower.s ClearEReaderTrainer +08165360 battle_tower.s CopyEReaderTrainerGreeting +0816537c battle_tower.s CopyEReaderTrainerFarewellMessage +081653cc battle_tower.s sub_81653CC +08165404 battle_tower.s FillPartnerParty +0816587c battle_tower.s RubyBattleTowerRecordToEmerald +081659dc battle_tower.s EmeraldBattleTowerRecordToRuby +08165ae8 battle_tower.s CalcApprenticeChecksum +08165b08 battle_tower.s ClearApprentice +08165b20 battle_tower.s ValidateApprenticesChecksums +08165b88 battle_tower.s GetBattleTowerTrainerLanguage +08165c40 battle_tower.s SetFacilityPtrsGetLevel +08165c90 battle_tower.s GetFrontierEnemyMonLevel +08165cb4 battle_tower.s GetHighestLevelInPlayerParty +08165d08 battle_tower.s GetFrontierTrainerFixedIvs +08165d40 battle_tower.s sub_8165D40 +08165d78 battle_tower.s SetTentPtrsGetLevel +08165e18 battle_tower.s sub_8165E18 +08165ea4 battle_tower.s FillTentTrainerParty_ +081660b8 battle_tower.s FacilityClassToGraphicsId +08166124 battle_tower.s ValidateBattleTowerRecord +08166188 battle_tower.s sub_8166188 +08166204 use_pokeblock.s ChooseMonToGivePokeblock +0816624c use_pokeblock.s CB2_ReturnAndChooseMonToGivePokeblock +081662c0 use_pokeblock.s sub_81662C0 +08166304 use_pokeblock.s sub_8166304 +0816631c use_pokeblock.s sub_816631C +08166340 use_pokeblock.s sub_8166340 +0816636c use_pokeblock.s sub_816636C +08166380 use_pokeblock.s sub_8166380 +08166564 use_pokeblock.s sub_8166564 +08166634 use_pokeblock.s sub_8166634 +0816681c use_pokeblock.s sub_816681C +081668f8 use_pokeblock.s sub_81668F8 +08166a34 use_pokeblock.s sub_8166A34 +08166bec use_pokeblock.s sub_8166BEC +08166d44 use_pokeblock.s sub_8166D44 +08166de4 use_pokeblock.s sub_8166DE4 +08166e24 use_pokeblock.s sub_8166E24 +08166edc use_pokeblock.s sub_8166EDC +08166f50 use_pokeblock.s sub_8166F50 +08166f94 use_pokeblock.s sub_8166F94 +08166fb0 use_pokeblock.s Pokeblock_MenuWindowTextPrint +08166fd4 use_pokeblock.s Pokeblock_BufferEnhancedStatText +08167024 use_pokeblock.s Pokeblock_GetMonContestStats +08167054 use_pokeblock.s sub_8167054 +08167104 use_pokeblock.s sub_8167104 +08167184 use_pokeblock.s sub_8167184 +08167268 use_pokeblock.s IsSheenMaxed +081672a4 use_pokeblock.s sub_81672A4 +081672e4 use_pokeblock.s sub_81672E4 +08167324 use_pokeblock.s sub_8167324 +08167338 use_pokeblock.s sub_8167338 +081673dc use_pokeblock.s sub_81673DC +08167420 use_pokeblock.s sub_8167420 +081674bc use_pokeblock.s sub_81674BC +0816753c use_pokeblock.s sub_816753C +08167608 use_pokeblock.s sub_8167608 +08167760 use_pokeblock.s sub_8167760 +08167930 use_pokeblock.s sub_8167930 +08167ba0 use_pokeblock.s sub_8167BA0 +08167ca0 use_pokeblock.s sub_8167CA0 +08167ea4 use_pokeblock.s sub_8167EA4 +08167fa4 use_pokeblock.s sub_8167FA4 +08168048 use_pokeblock.s sub_8168048 +08168168 use_pokeblock.s sub_8168168 +08168180 use_pokeblock.s sub_8168180 +081681b4 use_pokeblock.s sub_81681B4 +081681f4 use_pokeblock.s sub_81681F4 +08168248 use_pokeblock.s sub_8168248 +08168294 use_pokeblock.s sub_8168294 +08168328 use_pokeblock.s sub_8168328 +08168374 use_pokeblock.s sub_8168374 +081683b4 battle_controller_wally.s SpriteCB_Null7 +081683b8 battle_controller_wally.s SetControllerToWally +081683f4 battle_controller_wally.s WallyBufferRunCommand +08168444 battle_controller_wally.s WallyHandleActions +081685bc battle_controller_wally.s CompleteOnFinishedAnimation +081685d4 battle_controller_wally.s OpenBagAfterPaletteFade +08168610 battle_controller_wally.s CompleteOnChosenItem +0816864c battle_controller_wally.s sub_816864C +08168818 battle_controller_wally.s sub_8168818 +08168a20 battle_controller_wally.s sub_8168A20 +08168af8 battle_controller_wally.s WallyBufferExecCompleted +08168ba0 battle_controller_wally.s WallyHandleGetMonData +08168c14 battle_controller_wally.s CopyWallyMonData +081693c0 battle_controller_wally.s WallyHandleGetRawMonData +081693cc battle_controller_wally.s WallyHandleSetMonData +08169424 battle_controller_wally.s SetWallyMonData +08169e20 battle_controller_wally.s WallyHandleSetRawMonData +08169e2c battle_controller_wally.s WallyHandleLoadMonSprite +08169e38 battle_controller_wally.s WallyHandleSwitchInAnim +08169e44 battle_controller_wally.s WallyHandleReturnMonToBall +08169ec8 battle_controller_wally.s WallyHandleDrawTrainerPic +08169f94 battle_controller_wally.s WallyHandleTrainerSlide +0816a060 battle_controller_wally.s WallyHandleTrainerSlideBack +0816a06c battle_controller_wally.s WallyHandleFaintAnimation +0816a078 battle_controller_wally.s WallyHandlePaletteFade +0816a084 battle_controller_wally.s WallyHandleSuccessBallThrowAnim +0816a0d8 battle_controller_wally.s WallyHandleBallThrowAnim +0816a138 battle_controller_wally.s WallyHandlePause +0816a144 battle_controller_wally.s WallyHandleMoveAnimation +0816a26c battle_controller_wally.s WallyDoMoveAnimation +0816a3b8 battle_controller_wally.s WallyHandlePrintString +0816a40c battle_controller_wally.s WallyHandlePrintSelectionString +0816a430 battle_controller_wally.s HandleChooseActionAfterDma3 +0816a470 battle_controller_wally.s WallyHandleChooseAction +0816a4d8 battle_controller_wally.s WallyHandleUnknownYesNoBox +0816a4e4 battle_controller_wally.s WallyHandleChooseMove +0816a57c battle_controller_wally.s WallyHandleChooseItem +0816a5bc battle_controller_wally.s WallyHandleChoosePokemon +0816a5c8 battle_controller_wally.s WallyHandleCmd23 +0816a5d4 battle_controller_wally.s WallyHandleHealthBarUpdate +0816a6d4 battle_controller_wally.s WallyHandleExpUpdate +0816a6e0 battle_controller_wally.s WallyHandleStatusIconUpdate +0816a6ec battle_controller_wally.s WallyHandleStatusAnimation +0816a6f8 battle_controller_wally.s WallyHandleStatusXor +0816a704 battle_controller_wally.s WallyHandleDataTransfer +0816a710 battle_controller_wally.s WallyHandleDMA3Transfer +0816a71c battle_controller_wally.s WallyHandlePlayBGM +0816a728 battle_controller_wally.s WallyHandleCmd32 +0816a734 battle_controller_wally.s WallyHandleTwoReturnValues +0816a740 battle_controller_wally.s WallyHandleChosenMonReturnValue +0816a74c battle_controller_wally.s WallyHandleOneReturnValue +0816a758 battle_controller_wally.s WallyHandleOneReturnValue_Duplicate +0816a764 battle_controller_wally.s WallyHandleCmd37 +0816a770 battle_controller_wally.s WallyHandleCmd38 +0816a77c battle_controller_wally.s WallyHandleCmd39 +0816a788 battle_controller_wally.s WallyHandleCmd40 +0816a794 battle_controller_wally.s WallyHandleHitAnimation +0816a804 battle_controller_wally.s WallyHandleCmd42 +0816a810 battle_controller_wally.s WallyHandlePlaySE +0816a840 battle_controller_wally.s WallyHandlePlayFanfareOrBGM +0816a89c battle_controller_wally.s WallyHandleFaintingCry +0816a8d8 battle_controller_wally.s WallyHandleIntroSlide +0816a90c battle_controller_wally.s WallyHandleIntroTrainerBallThrow +0816aa80 battle_controller_wally.s sub_816AA80 +0816ac04 battle_controller_wally.s sub_816AC04 +0816ac78 battle_controller_wally.s WallyHandleDrawPartyStatusSummary +0816acfc battle_controller_wally.s WallyHandleHidePartyStatusSummary +0816ad08 battle_controller_wally.s WallyHandleEndBounceEffect +0816ad14 battle_controller_wally.s WallyHandleSpriteInvisibility +0816ad20 battle_controller_wally.s WallyHandleBattleAnimation +0816ad7c battle_controller_wally.s WallyHandleLinkStandbyMsg +0816ad88 battle_controller_wally.s WallyHandleResetActionMoveSelection +0816ad94 battle_controller_wally.s WallyHandleCmd55 +0816adf0 battle_controller_wally.s WallyCmdEnd +0816adf4 player_pc.s NewGameInitPCItems +0816ae58 player_pc.s BedroomPC +0816ae98 player_pc.s PlayerPC +0816aed8 player_pc.s InitPlayerPCMenu +0816af98 player_pc.s PlayerPCProcessMenuInput +0816b060 player_pc.s ReshowPlayerPC +0816b07c player_pc.s PlayerPC_ItemStorage +0816b0a8 player_pc.s PlayerPC_Mailbox +0816b138 player_pc.s PlayerPC_Decoration +0816b148 player_pc.s PlayerPC_TurnOff +0816b190 player_pc.s InitItemStorageMenu +0816b21c player_pc.s ItemStorageMenuPrint +0816b248 player_pc.s ItemStorageMenuProcessInput +0816b2c8 player_pc.s ItemStorage_Deposit +0816b2f0 player_pc.s Task_ItemStorage_Deposit +0816b31c player_pc.s sub_816B31C +0816b33c player_pc.s Mailbox_DoRedrawMailboxMenuAfterReturn +0816b368 player_pc.s ItemStorage_HandleReturnToProcessInput +0816b398 player_pc.s ItemStorage_Withdraw +0816b3e4 player_pc.s ItemStorage_Toss +0816b430 player_pc.s ItemStorage_WithdrawToss_Helper +0816b4a4 player_pc.s ItemStorage_Exit +0816b4c0 player_pc.s ItemStorage_SetItemAndMailCount +0816b4dc player_pc.s sub_816B4DC +0816b510 player_pc.s GetMailboxMailCount +0816b54c player_pc.s Mailbox_UpdateMailList +0816b5f8 player_pc.s Mailbox_DrawMailboxMenu +0816b674 player_pc.s Mailbox_ProcessInput +0816b730 player_pc.s Mailbox_PrintWhatToDoWithPlayerMailText +0816b798 player_pc.s Mailbox_ReturnToPlayerPC +0816b7dc player_pc.s Mailbox_PrintMailOptions +0816b82c player_pc.s Mailbox_MailOptionsProcessInput +0816b878 player_pc.s Mailbox_DoMailRead +0816b8a4 player_pc.s Mailbox_FadeAndReadMail +0816b900 player_pc.s Mailbox_ReturnToFieldFromReadMail +0816b920 player_pc.s pal_fill_for_maplights_or_black +0816b964 player_pc.s Mailbox_HandleReturnToProcessInput +0816b994 player_pc.s Mailbox_MoveToBag +0816b9b0 player_pc.s Mailbox_DrawYesNoBeforeMove +0816b9d8 player_pc.s Mailbox_MoveToBagYesNoPrompt +0816ba18 player_pc.s Mailbox_DoMailMoveToBag +0816baac player_pc.s Mailbox_CancelMoveToBag +0816babc player_pc.s Mailbox_Give +0816baf8 player_pc.s Mailbox_DoGiveMailPokeMenu +0816bb28 player_pc.s Mailbox_ReturnToMailListAfterDeposit +0816bb48 player_pc.s Mailbox_UpdateMailListAfterDeposit +0816bbb8 player_pc.s Mailbox_NoPokemonForMail +0816bbd4 player_pc.s Mailbox_Cancel +0816bc14 player_pc.s sub_816BC14 +0816bc58 player_pc.s sub_816BC58 +0816bc7c player_pc.s sub_816BC7C +0816bcc4 player_pc.s sub_816BCC4 +0816bd04 player_pc.s ItemStorage_RefreshListMenu +0816bdc8 player_pc.s CopyItemName_PlayerPC +0816bddc player_pc.s ItemStorage_MoveCursor +0816be44 player_pc.s fish4_goto_x5_or_x6 +0816bef0 player_pc.s sub_816BEF0 +0816bf60 player_pc.s ItemStorage_StartScrollIndicator +0816bf9c player_pc.s ItemStorage_RemoveScrollIndicator +0816bfb8 player_pc.s sub_816BFB8 +0816bfe0 player_pc.s sub_816BFE0 +0816c060 player_pc.s sub_816C060 +0816c0c8 player_pc.s sub_816C0C8 +0816c110 player_pc.s sub_816C110 +0816c140 player_pc.s sub_816C140 +0816c158 player_pc.s ItemStorage_ProcessWithdrawTossInput +0816c228 player_pc.s ItemStorage_GetItemPcResponse +0816c2c0 player_pc.s ItemStorage_PrintItemPcResponse +0816c30c player_pc.s ItemStorage_ProcessInput +0816c3a4 player_pc.s ItemStorage_GoBackToPlayerPCMenu_InitStorage +0816c400 player_pc.s ItemStorage_GoBackToPlayerPCMenu +0816c450 player_pc.s ItemStorage_ItemSwapChoosePrompt +0816c4fc player_pc.s sub_816C4FC +0816c5a0 player_pc.s ItemStorage_DoItemSwap +0816c690 player_pc.s sub_816C690 +0816c6bc player_pc.s sub_816C6BC +0816c71c player_pc.s ItemStorage_DoItemAction +0816c818 player_pc.s ItemStorage_HandleQuantityRolling +0816c8fc player_pc.s ItemStorage_DoItemWithdraw +0816c9b8 player_pc.s ItemStorage_DoItemToss +0816ca94 player_pc.s ItemStorage_ResumeInputFromYesToss +0816cac8 player_pc.s ItemStorage_ResumeInputFromNoToss +0816cb04 player_pc.s ItemStorage_HandleRemoveItem +0816cb74 player_pc.s ItemStorage_WaitPressHandleResumeProcessInput +0816cbc0 player_pc.s ItemStorage_StartScrollIndicatorAndProcessInput +0816cbe8 intro.s VBlankCB_Intro +0816cc00 intro.s MainCB2_Intro +0816cc54 intro.s MainCB2_EndIntro +0816cc70 intro.s LoadCopyrightGraphics +0816ccb8 intro.s SerialCB_CopyrightScreen +0816ccc8 intro.s SetUpCopyrightScreen +0816ceac intro.s CB2_InitCopyrightScreenAfterBootup +0816cf0c intro.s CB2_InitCopyrightScreenAfterTitleScreen +0816cf18 intro.s Task_IntroLoadPart1Graphics +0816d12c intro.s Task_IntroFadeIn +0816d190 intro.s Task_IntroWaterDrops +0816d2a0 intro.s Task_IntroWaterDrops_3 +0816d338 intro.s sub_816D338 +0816d354 intro.s Task_IntroScrollDownAndShowFlygon +0816d458 intro.s Task_IntroWaitToSetupPart2 +0816d48c intro.s Task_IntroLoadPart2Graphics +0816d4e4 intro.s Task_IntroStartBikeRide +0816d650 intro.s Task_IntroHandleBikeAndFlygonMovement +0816d7e8 intro.s Task_IntroWaitToSetupPart3 +0816d81c intro.s sub_816D81C +0816d9c0 intro.s sub_816D9C0 +0816dae8 intro.s sub_816DAE8 +0816dbac intro.s Task_IntroLoadPart3Graphics +0816dc64 intro.s Task_IntroSpinAndZoomPokeball +0816dcfc intro.s Task_IntroWaitToSetupPart3LegendsFight +0816dd28 intro.s Task_IntroLoadGroudonScene +0816ddd8 intro.s Task_IntroLoadPart3Graphics1 +0816de7c intro.s Task_IntroLoadPart3Graphics2 +0816ded0 intro.s Task_IntroLoadPart3Graphics3 +0816deec intro.s Task_IntroLoadPart3Graphics4 +0816df2c intro.s Task_IntroGroudonScene +0816e190 intro.s CreateGroudonRockSprites +0816e1f8 intro.s SpriteCB_IntroGroudonRocks +0816e2a0 intro.s Task_IntroLoadKyogreScene +0816e358 intro.s Task_IntroKyogreScene +0816e6d4 intro.s CreateKyogreBubbleSprites_0 +0816e74c intro.s CreateKyogreBubbleSprites_1 +0816e7b4 intro.s SpriteCB_IntroKyogreBubbles +0816e888 intro.s Task_IntroLoadClouds1 +0816e954 intro.s Task_IntroLoadClouds2 +0816e998 intro.s Task_IntroLoadClouds3 +0816e9dc intro.s Task_IntroCloudScene +0816eab8 intro.s Task_IntroLoadRayquazaLightningScene +0816eb44 intro.s Task_IntroRayquazaLightningScene +0816ec6c intro.s SpriteCB_IntroRayquazaLightning +0816ed20 intro.s Task_IntroLoadRayquazaGlowScene +0816edb4 intro.s Task_IntroRayquazaGlowScene_0 +0816ee90 intro.s Task_EndIntroMovie +0816eea8 intro.s Task_IntroRayquazaGlowScene_1 +0816f0c0 intro.s intro_reset_and_hide_bgs +0816f128 intro.s Task_IntroWaterDrops_1 +0816f1e0 intro.s Task_IntroWaterDrops_2 +0816f2a8 intro.s PanFadeAndZoomScreen +0816f318 intro.s sub_816F318 +0816f3a4 intro.s sub_816F3A4 +0816f454 intro.s sub_816F454 +0816f46c intro.s sub_816F46C +0816f5b4 intro.s sub_816F5B4 +0816f660 intro.s sub_816F660 +0816f6d0 intro.s SpriteCB_WaterDropFall +0816f750 intro.s SpriteCB_WaterDropFall_2 +0816f7d0 intro.s CreateWaterDrop +0816f9d4 intro.s SpriteCB_IntroGraphicsBicycle +0816fab0 intro.s SpriteCB_IntroGraphicsFlygon +0816fb38 intro.s sub_816FB38 +0816fd44 intro.s sub_816FD44 +0816fdb8 intro.s CreatePart1Animations +0816fedc intro.s sub_816FEDC +08170040 intro.s SpriteCB_IntroRayquazaHyperbeam +081700f8 reset_save_heap.s sub_81700F8 +0817018c field_region_map.s FieldInitRegionMap +081701c4 field_region_map.s MCB2_InitRegionMapRegisters +08170260 field_region_map.s VBCB_FieldUpdateRegionMap +08170274 field_region_map.s MCB2_FieldUpdateRegionMap +08170290 field_region_map.s FieldUpdateRegionMap +08170428 field_region_map.s PrintRegionMapSecName +08170478 battle_anim_special.s unref_sub_8170478 +08170660 battle_anim_special.s sub_8170660 +08170834 battle_anim_special.s sub_8170834 +08170920 battle_anim_special.s sub_8170920 +0817094c battle_anim_special.s sub_817094C +081709ec battle_anim_special.s sub_81709EC +08170a0c battle_anim_special.s sub_8170A0C +08170a38 battle_anim_special.s sub_8170A38 +08170b04 battle_anim_special.s sub_8170B04 +08170bb0 battle_anim_special.s sub_8170BB0 +08170cfc battle_anim_special.s sub_8170CFC +08170d24 battle_anim_special.s sub_8170D24 +08170d4c battle_anim_special.s AnimTask_IsBallBlockedByTrainer +08170d84 battle_anim_special.s ItemIdToBallId +08170e04 battle_anim_special.s sub_8170E04 +08170ef0 battle_anim_special.s sub_8170EF0 +08170f2c battle_anim_special.s sub_8170F2C +08171030 battle_anim_special.s sub_8171030 +081710a8 battle_anim_special.s sub_81710A8 +08171104 battle_anim_special.s sub_8171104 +08171134 battle_anim_special.s sub_8171134 +081711e8 battle_anim_special.s sub_81711E8 +08171240 battle_anim_special.s sub_8171240 +0817138c battle_anim_special.s sub_817138C +081713d0 battle_anim_special.s sub_81713D0 +081714d4 battle_anim_special.s sub_81714D4 +08171520 battle_anim_special.s sub_8171520 +081717b4 battle_anim_special.s sub_81717B4 +081717d8 battle_anim_special.s sub_81717D8 +081717f8 battle_anim_special.s sub_81717F8 +081718d8 battle_anim_special.s sub_81718D8 +081719c0 battle_anim_special.s sub_81719C0 +081719ec battle_anim_special.s sub_81719EC +08171aac battle_anim_special.s sub_8171AAC +08171ae4 battle_anim_special.s sub_8171AE4 +08171bac battle_anim_special.s sub_8171BAC +08171cac battle_anim_special.s sub_8171CAC +08171ce8 battle_anim_special.s sub_8171CE8 +08171d60 battle_anim_special.s sub_8171D60 +08171d98 battle_anim_special.s AnimateBallOpenParticles +08171e20 battle_anim_special.s sub_8171E20 +08171e50 battle_anim_special.s PokeBallOpenParticleAnimation +08171f68 battle_anim_special.s PokeBallOpenParticleAnimation_Step1 +08171f88 battle_anim_special.s PokeBallOpenParticleAnimation_Step2 +08171fc4 battle_anim_special.s TimerBallOpenParticleAnimation +081720c8 battle_anim_special.s DiveBallOpenParticleAnimation +081721cc battle_anim_special.s SafariBallOpenParticleAnimation +081722cc battle_anim_special.s UltraBallOpenParticleAnimation +081723d4 battle_anim_special.s GreatBallOpenParticleAnimation +08172508 battle_anim_special.s FanOutBallOpenParticles_Step1 +08172560 battle_anim_special.s RepeatBallOpenParticleAnimation +0817265c battle_anim_special.s RepeatBallOpenParticleAnimation_Step1 +081726bc battle_anim_special.s MasterBallOpenParticleAnimation +081727e8 battle_anim_special.s PremierBallOpenParticleAnimation +081728e0 battle_anim_special.s PremierBallOpenParticleAnimation_Step1 +08172944 battle_anim_special.s DestroyBallOpenAnimationParticle +081729e8 battle_anim_special.s LaunchBallFadeMonTask +08172ab0 battle_anim_special.s sub_8172AB0 +08172b40 battle_anim_special.s sub_8172B40 +08172b90 battle_anim_special.s sub_8172B90 +08172bf0 battle_anim_special.s sub_8172BF0 +08172d98 battle_anim_special.s sub_8172D98 +08172e9c battle_anim_special.s AnimTask_IsAttackerBehindSubstitute +08172ed0 battle_anim_special.s AnimTask_TargetToEffectBattler +08172ef0 battle_anim_special.s sub_8172EF0 +08172fec battle_anim_special.s sub_8172FEC +081731b0 battle_anim_special.s sub_81731B0 +081731fc battle_anim_special.s sub_81731FC +08173250 battle_anim_special.s sub_8173250 +081732b0 battle_anim_special.s AnimTask_LoadPokeblockGfx +081732e4 battle_anim_special.s AnimTask_FreePokeblockGfx +0817330c battle_anim_special.s sub_817330C +0817339c battle_anim_special.s sub_817339C +081733d4 battle_anim_special.s sub_81733D4 +08173400 battle_anim_special.s sub_8173400 +0817345c battle_anim_special.s sub_817345C +081734b4 battle_anim_special.s AnimTask_GetTrappedMoveAnimId +0817351c battle_anim_special.s AnimTask_GetBattlersFromArg +0817354c hall_of_fame.s VBlankCB_HallOfFame +08173560 hall_of_fame.s CB2_HallOfFame +0817357c hall_of_fame.s InitHallOfFameScreen +08173694 hall_of_fame.s CB2_DoHallOfFameScreen +081736d8 hall_of_fame.s CB2_DoHallOfFameScreenDontSaveData +0817371c hall_of_fame.s Task_Hof_InitMonData +081738bc hall_of_fame.s Task_Hof_InitTeamSaveData +081739c4 hall_of_fame.s Task_Hof_TrySaveData +08173a5c hall_of_fame.s Task_Hof_WaitForFrames +08173a8c hall_of_fame.s Task_Hof_SetMonDisplayTask +08173aa8 hall_of_fame.s Task_Hof_DisplayMon +08173bc0 hall_of_fame.s Task_Hof_PrintMonInfoAfterAnimating +08173c34 hall_of_fame.s Task_Hof_TryDisplayAnotherMon +08173d24 hall_of_fame.s Task_Hof_PaletteFadeAndPrintWelcomeText +08173dc0 hall_of_fame.s sub_8173DC0 +08173ea4 hall_of_fame.s sub_8173EA4 +08173ee4 hall_of_fame.s sub_8173EE4 +08173f84 hall_of_fame.s Task_Hof_WaitAndPrintPlayerInfo +08174028 hall_of_fame.s Task_Hof_ExitOnKeyPressed +08174060 hall_of_fame.s Task_Hof_HandlePaletteOnExit +081740b0 hall_of_fame.s Task_Hof_HandleExit +08174184 hall_of_fame.s SetCallback2AfterHallOfFameDisplay +08174194 hall_of_fame.s CB2_DoHallOfFamePC +08174324 hall_of_fame.s Task_HofPC_CopySaveData +081743ec hall_of_fame.s Task_HofPC_DrawSpritesPrintText +081745fc hall_of_fame.s Task_HofPC_PrintMonInfo +08174728 hall_of_fame.s Task_HofPC_HandleInput +08174898 hall_of_fame.s Task_HofPC_HandlePaletteOnExit +081748f0 hall_of_fame.s Task_HofPC_HandleExit +081749a0 hall_of_fame.s Task_HofPC_PrintDataIsCorrupted +08174a08 hall_of_fame.s Task_HofPC_ExitOnButtonPress +08174a38 hall_of_fame.s HallOfFame_PrintWelcomeText +08174a88 hall_of_fame.s HallOfFame_PrintMonInfo +08174c98 hall_of_fame.s HallOfFame_PrintPlayerInfo +08174ec4 hall_of_fame.s ClearVramOamPltt_LoadHofPal +08174f70 hall_of_fame.s sub_8174F70 +08174fac hall_of_fame.s sub_8174FAC +08175024 hall_of_fame.s sub_8175024 +08175120 hall_of_fame.s SpriteCB_GetOnScreenAndAnimate +081751a4 hall_of_fame.s sub_81751A4 +081751fc hall_of_fame.s sub_81751FC +08175280 hall_of_fame.s sub_8175280 +081752c0 hall_of_fame.s sub_81752C0 +081752f4 hall_of_fame.s sub_81752F4 +08175364 hall_of_fame.s sub_8175364 +081754c8 credits.s sub_81754C8 +081754dc credits.s sub_81754DC +08175548 credits.s sub_8175548 +081755a4 credits.s sub_81755A4 +081755bc credits.s sub_81755BC +08175620 credits.s sub_8175620 +08175744 credits.s sub_8175744 +08175774 credits.s sub_8175774 +08175808 credits.s sub_8175808 +08175848 credits.s c2_080C9BFC +081758a4 credits.s sub_81758A4 +081758e4 credits.s sub_81758E4 +08175a9c credits.s sub_8175A9C +08175ae4 credits.s sub_8175AE4 +08175b1c credits.s sub_8175B1C +08175b90 credits.s sub_8175B90 +08175bd8 credits.s sub_8175BD8 +08175c34 credits.s sub_8175C34 +08175cc8 credits.s sub_8175CC8 +08175ce4 credits.s sub_8175CE4 +08175da0 credits.s sub_8175DA0 +0817603c credits.s sub_817603C +081760fc credits.s sub_81760FC +0817624c credits.s sub_817624C +0817651c credits.s sub_817651C +0817664c credits.s sub_817664C +08176ab0 credits.s sub_8176AB0 +08176ca0 credits.s sub_8176CA0 +08176d1c credits.s sub_8176D1C +08176d78 credits.s sub_8176D78 +08176dbc credits.s sub_8176DBC +08176e40 credits.s sub_8176E40 +08176ee8 credits.s sub_8176EE8 +08176f90 credits.s sub_8176F90 +08177050 credits.s sub_8177050 +08177224 credits.s sub_8177224 +081772b8 credits.s sub_81772B8 +08177388 credits.s sub_8177388 +08177558 lottery_corner.s ResetLotteryCorner +08177584 lottery_corner.s SetRandomLotteryNumber +081775cc lottery_corner.s RetrieveLotteryNumber +081775e0 lottery_corner.s PickLotteryCornerTicket +0817778c lottery_corner.s GetMatchingDigits +08177814 lottery_corner.s SetLotteryNumber +0817783c lottery_corner.s GetLotteryNumber +08177864 lottery_corner.s SetLotteryNumber16_Unused +08177888 lottery_corner.s CB2_ShowDiploma +08177a08 option_menu.s MainCB2 +08177a20 option_menu.s Task_DiplomaFadeIn +08177a50 option_menu.s Task_DiplomaWaitForKeyPress +08177a98 option_menu.s Task_DiplomaFadeOut +08177ad4 option_menu.s DisplayDiplomaText +08177b44 option_menu.s InitDiplomaBg +08177b9c option_menu.s InitDiplomaWindow +08177bcc option_menu.s PrintDiplomaText +08177c14 berry_tag_screen.s DoBerryTagScreen +08177c54 berry_tag_screen.s CB2_BerryTagScreen +08177c70 berry_tag_screen.s VblankCB +08177c84 berry_tag_screen.s CB2_InitBerryTagScreen +08177cb0 berry_tag_screen.s InitBerryTagScreen +08177e88 berry_tag_screen.s LoadBerryTagGfx +0817804c berry_tag_screen.s PrintTextInBerryTagScreen +08178090 berry_tag_screen.s AddBerryTagTextToBg0 +081780f4 berry_tag_screen.s PrintAllBerryData +08178110 berry_tag_screen.s PrintBerryNumberAndName +08178174 berry_tag_screen.s PrintBerrySize +08178250 berry_tag_screen.s PrintBerryFirmness +081782d0 berry_tag_screen.s PrintBerryDescription1 +08178304 berry_tag_screen.s PrintBerryDescription2 +08178338 berry_tag_screen.s CreateBerrySprite +0817836c berry_tag_screen.s DestroyBerrySprite +0817839c berry_tag_screen.s CreateFlavorCircleSprites +08178404 berry_tag_screen.s SetFlavorCirclesVisiblity +08178594 berry_tag_screen.s DestroyFlavorCircleSprites +081785d0 berry_tag_screen.s PrepareToCloseBerryTagScreen +08178610 berry_tag_screen.s Task_CloseBerryTagScreen +08178654 berry_tag_screen.s Task_HandleInput +081786ac berry_tag_screen.s TryChangeDisplayedBerry +08178728 berry_tag_screen.s HandleBagCursorPositionChange +081787ac berry_tag_screen.s Task_DisplayAnotherBerry +08178958 berry_tag_screen.s CheckLanguageMatch +08178974 berry_tag_screen.s CB2_InitMysteryEventMenu +08178a40 berry_tag_screen.s GetEventLoadMessage +08178a78 berry_tag_screen.s CB2_MysteryEventMenu +08178ec4 berry_tag_screen.s PrintMysteryMenuText +08178f44 save_failed_screen.s SaveFailedScreenTextPrint +08178f90 save_failed_screen.s DoSaveFailedScreen +08178fdc save_failed_screen.s CB2_SaveFailedScreen +08179288 save_failed_screen.s CB2_WipeSave +08179390 save_failed_screen.s CB2_GameplayCannotBeContinued +081793e0 save_failed_screen.s CB2_FadeAndReturnToTitleScreen +08179428 save_failed_screen.s CB2_ReturnToTitleScreen +08179454 save_failed_screen.s VBlankCB_UpdateClockGraphics +08179514 save_failed_screen.s VerifySectorWipe +08179554 save_failed_screen.s WipeSector +081795ac save_failed_screen.s WipeSectors +081795e8 braille_puzzles.s ShouldDoBrailleDigEffect +0817963c braille_puzzles.s DoBrailleDigEffect +081796ac braille_puzzles.s CheckRelicanthWailord +081796fc braille_puzzles.s ShouldDoBrailleRegirockEffectOld +08179700 braille_puzzles.s DoSealedChamberShakingEffect1 +0817973c braille_puzzles.s DoSealedChamberShakingEffect2 +08179778 braille_puzzles.s SealedChamberShakingEffect +081797dc braille_puzzles.s ShouldDoBrailleRegirockEffect +08179834 braille_puzzles.s SetUpPuzzleEffectRegirock +08179850 braille_puzzles.s UseRegirockHm_Callback +08179860 braille_puzzles.s DoBrailleRegirockEffect +081798d0 braille_puzzles.s ShouldDoBrailleRegisteelEffect +08179918 braille_puzzles.s SetUpPuzzleEffectRegisteel +08179934 braille_puzzles.s UseRegisteelHm_Callback +08179944 braille_puzzles.s DoBrailleRegisteelEffect +081799b4 braille_puzzles.s DoBrailleWait +081799b8 braille_puzzles.s FldEff_UsePuzzleEffect +08179a04 braille_puzzles.s ShouldDoBrailleRegicePuzzle +08179b68 pokeblock_feed.s CB2_PokeblockFeed +08179b84 pokeblock_feed.s VBlankCB_PokeblockFeed +08179b98 pokeblock_feed.s TransitionToPokeblockFeedScene +08179d70 pokeblock_feed.s CB2_PreparePokeblockFeedScene +08179d9c pokeblock_feed.s HandleInitBackgrounds +08179df4 pokeblock_feed.s LoadMonAndSceneGfx +08179fac pokeblock_feed.s HandleInitWindows +08179fec pokeblock_feed.s SetPokeblockSpritePal +0817a030 pokeblock_feed.s Task_HandlePokeblockFeed +0817a168 pokeblock_feed.s LaunchPokeblockFeedTask +0817a194 pokeblock_feed.s Task_WaitForAtePokeblockText +0817a1c4 pokeblock_feed.s Task_HandleMonAtePokeblock +0817a2c0 pokeblock_feed.s Task_ReturnAfterPaletteFade +0817a320 pokeblock_feed.s Task_PaletteFadeToReturn +0817a358 pokeblock_feed.s CreateMonSprite +0817a434 pokeblock_feed.s PrepareMonToMoveToPokeblock +0817a468 pokeblock_feed.s sub_817A468 +0817a4a4 pokeblock_feed.s CreatePokeblockCaseSpriteForFeeding +0817a4f8 pokeblock_feed.s DoPokeblockCaseThrowEffect +0817a56c pokeblock_feed.s CreatePokeblockSprite +0817a5a0 pokeblock_feed.s SpriteCB_ThrownPokeblock +0817a5cc pokeblock_feed.s sub_817A5CC +0817a634 pokeblock_feed.s sub_817A634 +0817a91c pokeblock_feed.s sub_817A91C +0817a9e4 pokeblock_feed.s sub_817A9E4 +0817aa3c pokeblock_feed.s FreeMonSpriteOamMatrix +0817aa54 pokeblock_feed.s sub_817AA54 +0817ab68 pokeblock_feed.s sub_817AB68 +0817acc8 clear_save_data_screen.s CB2_InitClearSaveDataScreen +0817ace4 clear_save_data_screen.s Task_DoClearSaveDataScreenYesNo +0817ad40 clear_save_data_screen.s Task_ClearSaveDataScreenYesNoChoice +0817adc0 clear_save_data_screen.s Task_ClearSaveData +0817ade4 clear_save_data_screen.s MainCB +0817adf4 diploma.s VBlankCB +0817ae00 diploma.s SetupClearSaveDataScreen +0817afd4 diploma.s CB2_FadeAndDoReset +0817b02c diploma.s InitClearSaveDataScreenWindows +0817b064 intro_credits_graphics.s load_intro_part2_graphics +0817b150 intro_credits_graphics.s sub_817B150 +0817b1c8 intro_credits_graphics.s sub_817B1C8 +0817b3a8 intro_credits_graphics.s sub_817B3A8 +0817b3dc intro_credits_graphics.s CreateBicycleAnimationTask +0817b458 intro_credits_graphics.s sub_817B458 +0817b540 intro_credits_graphics.s sub_817B540 +0817b62c intro_credits_graphics.s sub_817B62C +0817b698 intro_credits_graphics.s sub_817B698 +0817b76c intro_credits_graphics.s sub_817B76C +0817b788 intro_credits_graphics.s sub_817B788 +0817b7a4 intro_credits_graphics.s sub_817B7A4 +0817b7c0 intro_credits_graphics.s nullsub_65 +0817b7c4 intro_credits_graphics.s sub_817B7C4 +0817b834 intro_credits_graphics.s intro_create_brendan_sprite +0817b88c intro_credits_graphics.s intro_create_may_sprite +0817b8e4 intro_credits_graphics.s nullsub_66 +0817b8e8 intro_credits_graphics.s sub_817B8E8 +0817b948 intro_credits_graphics.s sub_817B948 +0817b9c4 intro_credits_graphics.s intro_create_flygon_sprite +0817ba40 evolution_graphics.s EvoSparkle_DummySpriteCb +0817ba44 evolution_graphics.s SetEvoSparklesMatrices +0817ba7c evolution_graphics.s SpriteCB_PreEvoSparkleSet1 +0817bb38 evolution_graphics.s CreatePreEvoSparkleSet1 +0817bb94 evolution_graphics.s SpriteCB_PreEvoSparkleSet2 +0817bc08 evolution_graphics.s CreatePreEvoSparkleSet2 +0817bc70 evolution_graphics.s SpriteCB_PostEvoSparkleSet1 +0817bcb8 evolution_graphics.s CreatePostEvoSparkleSet1 +0817bd20 evolution_graphics.s SpriteCB_PostEvoSparkleSet2 +0817bdf0 evolution_graphics.s CreatePostEvoSparkleSet2 +0817be78 evolution_graphics.s LoadEvoSparkleSpriteAndPal +0817be94 evolution_graphics.s LaunchTask_PreEvoSparklesSet1 +0817bec4 evolution_graphics.s EvoTask_BeginPreSet1_FadeAndPlaySE +0817bf14 evolution_graphics.s EvoTask_CreatePreEvoSparkleSet1 +0817bf84 evolution_graphics.s EvoTask_WaitForPre1SparklesToGoUp +0817bfb4 evolution_graphics.s LaunchTask_PreEvoSparklesSet2 +0817bfcc evolution_graphics.s EvoTask_BeginPreSparklesSet2 +0817c000 evolution_graphics.s EvoTask_CreatePreEvoSparklesSet2 +0817c058 evolution_graphics.s EvoTask_DestroyPreSet2Task +0817c068 evolution_graphics.s LaunchTask_PostEvoSparklesSet1 +0817c080 evolution_graphics.s EvoTask_BeginPostSparklesSet1 +0817c0b4 evolution_graphics.s EvoTask_CreatePostEvoSparklesSet1 +0817c134 evolution_graphics.s EvoTask_DestroyPostSet1Task +0817c144 evolution_graphics.s LaunchTask_PostEvoSparklesSet2AndFlash +0817c174 evolution_graphics.s EvoTask_BeginPostSparklesSet2_AndFlash +0817c1d4 evolution_graphics.s EvoTask_CreatePostEvoSparklesSet2_AndFlash +0817c260 evolution_graphics.s EvoTask_DestroyPostSet2AndFlashTask +0817c280 evolution_graphics.s LaunchTask_PostEvoSparklesSet2AndFlash_Trade +0817c2b0 evolution_graphics.s EvoTask_BeginPostSparklesSet2_AndFlash_Trade +0817c310 evolution_graphics.s EvoTask_CreatePostEvoSparklesSet2_AndFlash_Trade +0817c39c evolution_graphics.s PokeEvoSprite_DummySpriteCB +0817c3a0 evolution_graphics.s sub_817C3A0 +0817c4ec evolution_graphics.s sub_817C4EC +0817c510 evolution_graphics.s sub_817C510 +0817c560 evolution_graphics.s sub_817C560 +0817c67c evolution_graphics.s PreEvoInvisible_PostEvoVisible_KillTask +0817c72c evolution_graphics.s PreEvoVisible_PostEvoInvisible_KillTask +0817c7dc bard_music.s CalcWordPitch +0817c7f4 bard_music.s GetWordSounds +0817c858 bard_music.s GetWordPhonemes +0817c8bc fldeff_teleport.s SetUpFieldMove_Teleport +0817c8fc fldeff_teleport.s FieldCallback_Teleport +0817c91c fldeff_teleport.s FldEff_UseTeleport +0817c94c fldeff_teleport.s StartTeleportFieldEffect +0817c95c battle_tv.s BattleTv_SetDataBasedOnString +0817e0b8 battle_tv.s sub_817E0B8 +0817e0fc battle_tv.s BattleTv_SetDataBasedOnMove +0817e32c battle_tv.s BattleTv_SetDataBasedOnAnimation +0817e3f4 battle_tv.s TryPutLinkBattleTvShowOnAir +0817e684 battle_tv.s AddMovePoints +0817ea80 battle_tv.s AddPointsOnFainting +0817eecc battle_tv.s TrySetBattleSeminarShow +0817f21c battle_tv.s ShouldCalculateDamage +0817f2a8 battle_tv.s BattleTv_ClearExplosionFaintCause +0817f33c battle_tv.s GetBattlerMoveSlotId +0817f394 battle_tv.s AddPointsBasedOnWeather +0817f3ec pokemon_animation.s MonAnimDummySpriteCallback +0817f3f0 pokemon_animation.s sub_817F3F0 +0817f474 pokemon_animation.s GetSpeciesBackAnimSet +0817f498 pokemon_animation.s Task_HandleMonAnimation +0817f544 pokemon_animation.s LaunchAnimationTaskForFrontSprite +0817f578 pokemon_animation.s StartMonSummaryAnimation +0817f594 pokemon_animation.s LaunchAnimationTaskForBackSprite +0817f60c pokemon_animation.s SetSpriteCB_MonAnimDummy +0817f618 pokemon_animation.s SetAffineData +0817f670 pokemon_animation.s HandleStartAffineAnim +0817f6d4 pokemon_animation.s HandleSetAffineData +0817f70c pokemon_animation.s sub_817F70C +0817f724 pokemon_animation.s sub_817F724 +0817f758 pokemon_animation.s sub_817F758 +0817f77c pokemon_animation.s sub_817F77C +0817f808 pokemon_animation.s pokemonanimfunc_01 +0817f898 pokemon_animation.s pokemonanimfunc_02 +0817f8fc pokemon_animation.s sub_817F8FC +0817f95c pokemon_animation.s pokemonanimfunc_03 +0817f978 pokemon_animation.s sub_817F978 +0817f9d8 pokemon_animation.s pokemonanimfunc_04 +0817f9f4 pokemon_animation.s sub_817F9F4 +0817fa6c pokemon_animation.s pokemonanimfunc_1E +0817fa88 pokemon_animation.s pokemonanimfunc_06 +0817fb64 pokemon_animation.s pokemonanimfunc_09 +0817fc20 pokemon_animation.s sub_817FC20 +0817fcc4 pokemon_animation.s pokemonanimfunc_0A +0817fcdc pokemon_animation.s sub_817FCDC +0817fd24 pokemon_animation.s pokemonanimfunc_0F +0817fd44 pokemon_animation.s sub_817FD44 +0817fd88 pokemon_animation.s pokemonanimfunc_10 +0817fda4 pokemon_animation.s pokemonanimfunc_11 +0817fe30 pokemon_animation.s sub_817FE30 +0817ff00 pokemon_animation.s pokemonanimfunc_12 +0817ff3c pokemon_animation.s sub_817FF3C +0817ffb8 pokemon_animation.s pokemonanimfunc_1F +0817fff0 pokemon_animation.s sub_817FFF0 +08180090 pokemon_animation.s pokemonanimfunc_14 +081800d0 pokemon_animation.s pokemonanimfunc_15 +08180134 pokemon_animation.s pokemonanimfunc_16 +08180210 pokemon_animation.s pokemonanimfunc_17 +0818031c pokemon_animation.s sub_818031C +081803a0 pokemon_animation.s pokemonanimfunc_19 +081803bc pokemon_animation.s pokemonanimfunc_1A +08180474 pokemon_animation.s pokemonanimfunc_1B +081804f8 pokemon_animation.s sub_81804F8 +08180594 pokemon_animation.s pokemonanimfunc_1C +081805b0 pokemon_animation.s sub_81805B0 +08180654 pokemon_animation.s pokemonanimfunc_18 +08180670 pokemon_animation.s pokemonanimfunc_1D +08180714 pokemon_animation.s sub_8180714 +0818080c pokemon_animation.s pokemonanimfunc_00 +08180828 pokemon_animation.s sub_8180828 +081808d8 pokemon_animation.s pokemonanimfunc_13 +08180900 pokemon_animation.s sub_8180900 +08180a50 pokemon_animation.s pokemonanimfunc_05 +08180a8c pokemon_animation.s pokemonanimfunc_20 +08180af8 pokemon_animation.s pokemonanimfunc_21 +08180b5c pokemon_animation.s pokemonanimfunc_22 +08180bc4 pokemon_animation.s pokemonanimfunc_23 +08180c30 pokemon_animation.s pokemonanimfunc_24 +08180c9c pokemon_animation.s pokemonanimfunc_25 +08180cb4 pokemon_animation.s sub_8180CB4 +08180ce8 pokemon_animation.s sub_8180CE8 +08180d44 pokemon_animation.s sub_8180D44 +08180dc0 pokemon_animation.s sub_8180DC0 +08180e28 pokemon_animation.s sub_8180E28 +08180e5c pokemon_animation.s pokemonanimfunc_26 +08180e78 pokemon_animation.s sub_8180E78 +08180ed0 pokemon_animation.s sub_8180ED0 +08180f2c pokemon_animation.s sub_8180F2C +08180fa8 pokemon_animation.s pokemonanimfunc_27 +0818100c pokemon_animation.s pokemonanimfunc_28 +08181024 pokemon_animation.s sub_8181024 +08181068 pokemon_animation.s sub_8181068 +081810c4 pokemon_animation.s sub_81810C4 +081810f8 pokemon_animation.s pokemonanimfunc_29 +08181110 pokemon_animation.s sub_8181110 +08181144 pokemon_animation.s sub_8181144 +081811a4 pokemon_animation.s sub_81811A4 +081811e0 pokemon_animation.s pokemonanimfunc_2A +08181214 pokemon_animation.s sub_8181214 +08181354 pokemon_animation.s pokemonanimfunc_2B +08181370 pokemon_animation.s sub_8181370 +08181418 pokemon_animation.s pokemonanimfunc_2C +081814d4 pokemon_animation.s sub_81814D4 +081815a0 pokemon_animation.s pokemonanimfunc_2D +081815d4 pokemon_animation.s sub_81815D4 +081816a0 pokemon_animation.s pokemonanimfunc_2E +081816d4 pokemon_animation.s pokemonanimfunc_2F +08181708 pokemon_animation.s sub_8181708 +08181770 pokemon_animation.s sub_8181770 +08181794 pokemon_animation.s sub_8181794 +08181810 pokemon_animation.s sub_8181810 +08181960 pokemon_animation.s pokemonanimfunc_30 +08181994 pokemon_animation.s pokemonanimfunc_31 +08181a78 pokemon_animation.s pokemonanimfunc_32 +08181abc pokemon_animation.s sub_8181ABC +08181b4c pokemon_animation.s sub_8181B4C +08181c2c pokemon_animation.s sub_8181C2C +08181ce8 pokemon_animation.s sub_8181CE8 +08181db0 pokemon_animation.s pokemonanimfunc_33 +08181de4 pokemon_animation.s pokemonanimfunc_34 +08181e90 pokemon_animation.s pokemonanimfunc_35 +08181ef8 pokemon_animation.s pokemonanimfunc_36 +08181f14 pokemon_animation.s sub_8181F14 +08181f50 pokemon_animation.s sub_8181F50 +08181fc0 pokemon_animation.s sub_8181FC0 +0818201c pokemon_animation.s pokemonanimfunc_37 +081820e0 pokemon_animation.s pokemonanimfunc_38 +081820fc pokemon_animation.s sub_81820FC +0818216c pokemon_animation.s sub_818216C +081821cc pokemon_animation.s sub_81821CC +08182248 pokemon_animation.s sub_8182248 +081822b0 pokemon_animation.s pokemonanimfunc_39 +08182370 pokemon_animation.s pokemonanimfunc_3A +081824a0 pokemon_animation.s pokemonanimfunc_3B +08182548 pokemon_animation.s pokemonanimfunc_3C +081825dc pokemon_animation.s pokemonanimfunc_3D +081825f8 pokemon_animation.s sub_81825F8 +08182648 pokemon_animation.s sub_8182648 +081826f8 pokemon_animation.s sub_81826F8 +08182764 pokemon_animation.s sub_8182764 +081827fc pokemon_animation.s pokemonanimfunc_3E +08182830 pokemon_animation.s sub_8182830 +081828c8 pokemon_animation.s pokemonanimfunc_3F +081828fc pokemon_animation.s pokemonanimfunc_40 +081829ac pokemon_animation.s pokemonanimfunc_41 +08182a6c pokemon_animation.s pokemonanimfunc_42 +08182b24 pokemon_animation.s pokemonanimfunc_43 +08182c18 pokemon_animation.s pokemonanimfunc_44 +08182d24 pokemon_animation.s pokemonanimfunc_45 +08182d40 pokemon_animation.s pokemonanimfunc_46 +08182d5c pokemon_animation.s pokemonanimfunc_47 +08182d78 pokemon_animation.s pokemonanimfunc_48 +08182db4 pokemon_animation.s pokemonanimfunc_49 +08182dc4 pokemon_animation.s pokemonanimfunc_4A +08182dd4 pokemon_animation.s pokemonanimfunc_4B +08182e00 pokemon_animation.s pokemonanimfunc_4C +08182e20 pokemon_animation.s pokemonanimfunc_4D +08182e3c pokemon_animation.s pokemonanimfunc_4E +08182e7c pokemon_animation.s pokemonanimfunc_4F +08182ebc pokemon_animation.s pokemonanimfunc_50 +08182ed8 pokemon_animation.s pokemonanimfunc_51 +08182ef4 pokemon_animation.s pokemonanimfunc_52 +08182f10 pokemon_animation.s pokemonanimfunc_53 +08182f48 pokemon_animation.s pokemonanimfunc_54 +08182f80 pokemon_animation.s pokemonanimfunc_55 +08182fb8 pokemon_animation.s pokemonanimfunc_56 +08182ffc pokemon_animation.s pokemonanimfunc_07 +08183030 pokemon_animation.s pokemonanimfunc_08 +08183068 pokemon_animation.s pokemonanimfunc_0B +0818309c pokemon_animation.s pokemonanimfunc_0C +081830d4 pokemon_animation.s pokemonanimfunc_0D +08183108 pokemon_animation.s pokemonanimfunc_0E +08183140 pokemon_animation.s sub_8183140 +08183194 pokemon_animation.s pokemonanimfunc_57 +081831b4 pokemon_animation.s pokemonanimfunc_58 +081831d4 pokemon_animation.s pokemonanimfunc_59 +081832c8 pokemon_animation.s sub_81832C8 +081833e8 pokemon_animation.s pokemonanimfunc_5A +08183418 pokemon_animation.s sub_8183418 +08183544 pokemon_animation.s pokemonanimfunc_5B +08183574 pokemon_animation.s sub_8183574 +08183618 pokemon_animation.s pokemonanimfunc_5C +08183638 pokemon_animation.s pokemonanimfunc_5D +08183658 pokemon_animation.s pokemonanimfunc_5E +08183674 pokemon_animation.s pokemonanimfunc_5F +081836d8 pokemon_animation.s pokemonanimfunc_60 +0818373c pokemon_animation.s pokemonanimfunc_61 +0818375c pokemon_animation.s pokemonanimfunc_62 +0818377c pokemon_animation.s pokemonanimfunc_63 +0818379c pokemon_animation.s pokemonanimfunc_64 +081837dc pokemon_animation.s sub_81837DC +0818393c pokemon_animation.s pokemonanimfunc_65 +0818396c pokemon_animation.s pokemonanimfunc_66 +08183a60 pokemon_animation.s pokemonanimfunc_67 +08183b4c pokemon_animation.s sub_8183B4C +08183c0c pokemon_animation.s pokemonanimfunc_68 +08183c2c pokemon_animation.s pokemonanimfunc_69 +08183c4c pokemon_animation.s pokemonanimfunc_6A +08183c6c pokemon_animation.s sub_8183C6C +08183cf0 pokemon_animation.s pokemonanimfunc_6B +08183d28 pokemon_animation.s pokemonanimfunc_6C +08183d60 pokemon_animation.s pokemonanimfunc_6D +08183d94 pokemon_animation.s pokemonanimfunc_6E +08183dc8 pokemon_animation.s pokemonanimfunc_6F +08183dfc pokemon_animation.s pokemonanimfunc_70 +08183e30 pokemon_animation.s pokemonanimfunc_71 +08183e58 pokemon_animation.s pokemonanimfunc_72 +08183e80 pokemon_animation.s pokemonanimfunc_73 +08183eb0 pokemon_animation.s pokemonanimfunc_74 +08183ee0 pokemon_animation.s pokemonanimfunc_75 +08183f14 pokemon_animation.s pokemonanimfunc_76 +08183f44 pokemon_animation.s pokemonanimfunc_77 +08183f78 pokemon_animation.s pokemonanimfunc_78 +08183fa8 pokemon_animation.s sub_8183FA8 +08184048 pokemon_animation.s pokemonanimfunc_79 +08184070 pokemon_animation.s pokemonanimfunc_7A +08184098 pokemon_animation.s pokemonanimfunc_7B +081840c4 pokemon_animation.s sub_81840C4 +08184190 pokemon_animation.s pokemonanimfunc_7C +081841bc pokemon_animation.s pokemonanimfunc_7D +081841e8 pokemon_animation.s pokemonanimfunc_7E +08184214 pokemon_animation.s pokemonanimfunc_7F +0818423c pokemon_animation.s pokemonanimfunc_80 +08184264 pokemon_animation.s pokemonanimfunc_81 +08184290 pokemon_animation.s sub_8184290 +081842dc pokemon_animation.s pokemonanimfunc_82 +08184360 pokemon_animation.s pokemonanimfunc_83 +081843e4 pokemon_animation.s pokemonanimfunc_84 +08184468 pokemon_animation.s sub_8184468 +08184550 pokemon_animation.s pokemonanimfunc_85 +0818457c pokemon_animation.s pokemonanimfunc_86 +081845a8 pokemon_animation.s pokemonanimfunc_87 +081845d4 pokemon_animation.s sub_81845D4 +08184610 pokemon_animation.s sub_8184610 +08184640 pokemon_animation.s sub_8184640 +08184678 pokemon_animation.s sub_8184678 +081846b8 pokemon_animation.s sub_81846B8 +081846ec pokemon_animation.s pokemonanimfunc_88 +08184718 pokemon_animation.s pokemonanimfunc_89 +08184744 pokemon_animation.s pokemonanimfunc_8A +08184770 pokemon_animation.s sub_8184770 +08184798 pokemon_animation.s BackAnimBlendYellow +08184834 pokemon_animation.s pokemonanimfunc_8B +0818486c pokemon_animation.s pokemonanimfunc_8C +081848a4 pokemon_animation.s pokemonanimfunc_8D +081848e0 pokemon_animation.s BackAnimBlend +08184934 pokemon_animation.s sub_8184934 +081849d4 pokemon_animation.s pokemonanimfunc_8E +08184a3c pokemon_animation.s pokemonanimfunc_8F +08184aa4 pokemon_animation.s pokemonanimfunc_90 +08184b0c pokemon_animation.s pokemonanimfunc_91 +08184b78 pokemon_animation.s pokemonanimfunc_92 +08184be0 pokemon_animation.s pokemonanimfunc_93 +08184c48 pokemon_animation.s pokemonanimfunc_94 +08184cb0 pokemon_animation.s pokemonanimfunc_95 +08184d1c pokemon_animation.s pokemonanimfunc_96 +08184d88 pokemon_animation.s SpriteCB_SetDummyOnAnimEnd +08184da4 recorded_battle.s sub_8184DA4 +08184e58 recorded_battle.s sub_8184E58 +08184fbc recorded_battle.s RecordedBattle_SetBattlerAction +08185008 recorded_battle.s RecordedBattle_ClearBattlerAction +08185054 recorded_battle.s RecordedBattle_GetBattlerAction +081850d0 recorded_battle.s sub_81850D0 +081850dc recorded_battle.s sub_81850DC +081851a8 recorded_battle.s sub_81851A8 +08185278 recorded_battle.s sub_8185278 +08185290 recorded_battle.s CanCopyRecordedBattleSaveData +081852b0 recorded_battle.s IsRecordedBattleSaveValid +081852f0 recorded_battle.s RecordedBattleToSave +08185338 recorded_battle.s MoveRecordedBattleToSaveData +08185a54 recorded_battle.s TryCopyRecordedBattleSaveData +08185a88 recorded_battle.s CopyRecordedBattleFromSave +08185ab0 recorded_battle.s CB2_RecordedBattleEnd +08185b1c recorded_battle.s Task_StartAfterCountdown +08185b60 recorded_battle.s SetVariablesForRecordedBattle +08185e24 recorded_battle.s PlayRecordedBattle +08185e8c recorded_battle.s CB2_RecordedBattle +08185ea0 recorded_battle.s GetRecordedBattleFrontierFacility +08185eac recorded_battle.s GetRecordedBattleFronterBrainSymbol +08185eb8 recorded_battle.s RecordedBattle_SaveParties +08185efc recorded_battle.s RecordedBattle_RestoreSavedParties +08185f40 recorded_battle.s GetActiveBattlerLinkPlayerGender +08185f84 recorded_battle.s sub_8185F84 +08185f90 recorded_battle.s sub_8185F90 +08185fac recorded_battle.s sub_8185FAC +08185fb8 recorded_battle.s GetBattleSceneInRecordedBattle +08185fc4 recorded_battle.s GetTextSpeedInRecordedBattle +08185fd0 recorded_battle.s RecordedBattle_CopyBattlerMoves +0818603c recorded_battle.s sub_818603C +08186438 recorded_battle.s GetAiScriptsInRecordedBattle +08186444 recorded_battle.s sub_8186444 +08186450 recorded_battle.s sub_8186450 +08186468 recorded_battle.s sub_8186468 +0818649c recorded_battle.s GetRecordedBattleRecordMixFriendClass +081864a8 recorded_battle.s GetRecordedBattleApprenticeId +081864b4 recorded_battle.s GetRecordedBattleRecordMixFriendLanguage +081864c0 recorded_battle.s GetRecordedBattleApprenticeLanguage +081864cc recorded_battle.s RecordedBattle_SaveBattleOutcome +081864e0 recorded_battle.s GetRecordedBattleEasyChatSpeech +081864e8 battle_controller_recorded_opponent.s nullsub_70 +081864ec battle_controller_recorded_opponent.s SetControllerToRecordedOpponent +08186508 battle_controller_recorded_opponent.s RecordedOpponentBufferRunCommand +08186590 battle_controller_recorded_opponent.s CompleteOnBankSpriteCallbackDummy2 +081865c8 battle_controller_recorded_opponent.s sub_81865C8 +08186630 battle_controller_recorded_opponent.s sub_8186630 +08186678 battle_controller_recorded_opponent.s sub_8186678 +0818686c battle_controller_recorded_opponent.s sub_818686C +08186c48 battle_controller_recorded_opponent.s sub_8186C48 +08186d58 battle_controller_recorded_opponent.s sub_8186D58 +08186d9c battle_controller_recorded_opponent.s sub_8186D9C +08186ea4 battle_controller_recorded_opponent.s sub_8186EA4 +08186f14 battle_controller_recorded_opponent.s sub_8186F14 +08186f94 battle_controller_recorded_opponent.s sub_8186F94 +08187084 battle_controller_recorded_opponent.s sub_8187084 +081871ac battle_controller_recorded_opponent.s RecordedOpponentBufferExecCompleted +08187224 battle_controller_recorded_opponent.s RecordedOpponentHandleGetMonData +08187298 battle_controller_recorded_opponent.s CopyRecordedOpponentMonData +08187a44 battle_controller_recorded_opponent.s RecordedOpponentHandleGetRawMonData +08187a50 battle_controller_recorded_opponent.s RecordedOpponentHandleSetMonData +08187aa8 battle_controller_recorded_opponent.s SetRecordedOpponentMonData +081883c8 battle_controller_recorded_opponent.s RecordedOpponentHandleSetRawMonData +0818843c battle_controller_recorded_opponent.s RecordedOpponentHandleLoadMonSprite +0818858c battle_controller_recorded_opponent.s RecordedOpponentHandleSwitchInAnim +081885d8 battle_controller_recorded_opponent.s sub_81885D8 +08188768 battle_controller_recorded_opponent.s RecordedOpponentHandleReturnMonToBall +0818888c battle_controller_recorded_opponent.s RecordedOpponentHandleDrawTrainerPic +08188a40 battle_controller_recorded_opponent.s RecordedOpponentHandleTrainerSlide +08188a4c battle_controller_recorded_opponent.s RecordedOpponentHandleTrainerSlideBack +08188af8 battle_controller_recorded_opponent.s RecordedOpponentHandleFaintAnimation +08188ba4 battle_controller_recorded_opponent.s RecordedOpponentHandlePaletteFade +08188bb0 battle_controller_recorded_opponent.s RecordedOpponentHandleSuccessBallThrowAnim +08188bbc battle_controller_recorded_opponent.s RecordedOpponentHandleBallThrowAnim +08188bc8 battle_controller_recorded_opponent.s RecordedOpponentHandlePause +08188bd4 battle_controller_recorded_opponent.s RecordedOpponentHandleMoveAnimation +08188d0c battle_controller_recorded_opponent.s RecordedOpponentDoMoveAnimation +08188e90 battle_controller_recorded_opponent.s RecordedOpponentHandlePrintString +08188ee4 battle_controller_recorded_opponent.s RecordedOpponentHandlePrintSelectionString +08188ef0 battle_controller_recorded_opponent.s RecordedOpponentHandleChooseAction +08188f14 battle_controller_recorded_opponent.s RecordedOpponentHandleUnknownYesNoBox +08188f20 battle_controller_recorded_opponent.s RecordedOpponentHandleChooseMove +08188f7c battle_controller_recorded_opponent.s RecordedOpponentHandleChooseItem +08188f88 battle_controller_recorded_opponent.s RecordedOpponentHandleChoosePokemon +08188fc4 battle_controller_recorded_opponent.s RecordedOpponentHandleCmd23 +08188fd0 battle_controller_recorded_opponent.s RecordedOpponentHandleHealthBarUpdate +081890c0 battle_controller_recorded_opponent.s RecordedOpponentHandleExpUpdate +081890cc battle_controller_recorded_opponent.s RecordedOpponentHandleStatusIconUpdate +08189144 battle_controller_recorded_opponent.s RecordedOpponentHandleStatusAnimation +081891ac battle_controller_recorded_opponent.s RecordedOpponentHandleStatusXor +081891b8 battle_controller_recorded_opponent.s RecordedOpponentHandleDataTransfer +081891c4 battle_controller_recorded_opponent.s RecordedOpponentHandleDMA3Transfer +081891d0 battle_controller_recorded_opponent.s RecordedOpponentHandlePlayBGM +081891dc battle_controller_recorded_opponent.s RecordedOpponentHandleCmd32 +081891e8 battle_controller_recorded_opponent.s RecordedOpponentHandleTwoReturnValues +081891f4 battle_controller_recorded_opponent.s RecordedOpponentHandleChosenMonReturnValue +08189200 battle_controller_recorded_opponent.s RecordedOpponentHandleOneReturnValue +0818920c battle_controller_recorded_opponent.s RecordedOpponentHandleOneReturnValue_Duplicate +08189218 battle_controller_recorded_opponent.s RecordedOpponentHandleCmd37 +08189234 battle_controller_recorded_opponent.s RecordedOpponentHandleCmd38 +0818926c battle_controller_recorded_opponent.s RecordedOpponentHandleCmd39 +08189284 battle_controller_recorded_opponent.s RecordedOpponentHandleCmd40 +081892ac battle_controller_recorded_opponent.s RecordedOpponentHandleHitAnimation +0818931c battle_controller_recorded_opponent.s RecordedOpponentHandleCmd42 +08189328 battle_controller_recorded_opponent.s RecordedOpponentHandlePlaySE +0818936c battle_controller_recorded_opponent.s RecordedOpponentHandlePlayFanfareOrBGM +081893c8 battle_controller_recorded_opponent.s RecordedOpponentHandleFaintingCry +08189404 battle_controller_recorded_opponent.s RecordedOpponentHandleIntroSlide +08189438 battle_controller_recorded_opponent.s RecordedOpponentHandleIntroTrainerBallThrow +08189548 battle_controller_recorded_opponent.s sub_8189548 +0818962c battle_controller_recorded_opponent.s sub_818962C +08189648 battle_controller_recorded_opponent.s RecordedOpponentHandleDrawPartyStatusSummary +0818975c battle_controller_recorded_opponent.s sub_818975C +081897a4 battle_controller_recorded_opponent.s RecordedOpponentHandleHidePartyStatusSummary +081897f4 battle_controller_recorded_opponent.s RecordedOpponentHandleEndBounceEffect +08189800 battle_controller_recorded_opponent.s RecordedOpponentHandleSpriteInvisibility +08189860 battle_controller_recorded_opponent.s RecordedOpponentHandleBattleAnimation +081898c8 battle_controller_recorded_opponent.s RecordedOpponentHandleLinkStandbyMsg +081898d4 battle_controller_recorded_opponent.s RecordedOpponentHandleResetActionMoveSelection +081898e0 battle_controller_recorded_opponent.s RecordedOpponentHandleCmd55 +08189944 battle_controller_recorded_opponent.s RecordedOpponentCmdEnd +08189948 battle_controller_recorded_player.s nullsub_120 +0818994c battle_controller_recorded_player.s SetControllerToRecordedPlayer +08189968 battle_controller_recorded_player.s RecordedPlayerBufferRunCommand +081899f0 battle_controller_recorded_player.s sub_81899F0 +08189a58 battle_controller_recorded_player.s sub_8189A58 +08189aa0 battle_controller_recorded_player.s sub_8189AA0 +08189d40 battle_controller_recorded_player.s sub_8189D40 +0818a064 battle_controller_recorded_player.s sub_818A064 +0818a114 battle_controller_recorded_player.s sub_818A114 +0818a1b0 battle_controller_recorded_player.s sub_818A1B0 +0818a2b4 battle_controller_recorded_player.s sub_818A2B4 +0818a328 battle_controller_recorded_player.s sub_818A328 +0818a37c battle_controller_recorded_player.s sub_818A37C +0818a470 battle_controller_recorded_player.s sub_818A470 +0818a514 battle_controller_recorded_player.s RecordedPlayerBufferExecCompleted +0818a5ec battle_controller_recorded_player.s RecordedPlayerHandleGetMonData +0818a660 battle_controller_recorded_player.s CopyRecordedPlayerMonData +0818ae0c battle_controller_recorded_player.s RecordedPlayerHandleGetRawMonData +0818ae18 battle_controller_recorded_player.s RecordedPlayerHandleSetMonData +0818ae70 battle_controller_recorded_player.s SetRecordedPlayerMonData +0818b86c battle_controller_recorded_player.s RecordedPlayerHandleSetRawMonData +0818b8e0 battle_controller_recorded_player.s RecordedPlayerHandleLoadMonSprite +0818b9fc battle_controller_recorded_player.s RecordedPlayerHandleSwitchInAnim +0818ba6c battle_controller_recorded_player.s sub_818BA6C +0818bbe8 battle_controller_recorded_player.s RecordedPlayerHandleReturnMonToBall +0818bd04 battle_controller_recorded_player.s RecordedPlayerHandleDrawTrainerPic +0818bfac battle_controller_recorded_player.s RecordedPlayerHandleTrainerSlide +0818bfb8 battle_controller_recorded_player.s RecordedPlayerHandleTrainerSlideBack +0818c064 battle_controller_recorded_player.s RecordedPlayerHandleFaintAnimation +0818c150 battle_controller_recorded_player.s RecordedPlayerHandlePaletteFade +0818c15c battle_controller_recorded_player.s RecordedPlayerHandleSuccessBallThrowAnim +0818c168 battle_controller_recorded_player.s RecordedPlayerHandleBallThrowAnim +0818c174 battle_controller_recorded_player.s RecordedPlayerHandlePause +0818c180 battle_controller_recorded_player.s RecordedPlayerHandleMoveAnimation +0818c2b8 battle_controller_recorded_player.s RecordedPlayerDoMoveAnimation +0818c43c battle_controller_recorded_player.s RecordedPlayerHandlePrintString +0818c490 battle_controller_recorded_player.s RecordedPlayerHandlePrintSelectionString +0818c49c battle_controller_recorded_player.s ChooseActionInBattlePalace +0818c4d8 battle_controller_recorded_player.s RecordedPlayerHandleChooseAction +0818c52c battle_controller_recorded_player.s RecordedPlayerHandleUnknownYesNoBox +0818c538 battle_controller_recorded_player.s RecordedPlayerHandleChooseMove +0818c594 battle_controller_recorded_player.s RecordedPlayerHandleChooseItem +0818c5a0 battle_controller_recorded_player.s RecordedPlayerHandleChoosePokemon +0818c5dc battle_controller_recorded_player.s RecordedPlayerHandleCmd23 +0818c5e8 battle_controller_recorded_player.s RecordedPlayerHandleHealthBarUpdate +0818c6e8 battle_controller_recorded_player.s RecordedPlayerHandleExpUpdate +0818c6f4 battle_controller_recorded_player.s RecordedPlayerHandleStatusIconUpdate +0818c76c battle_controller_recorded_player.s RecordedPlayerHandleStatusAnimation +0818c7d4 battle_controller_recorded_player.s RecordedPlayerHandleStatusXor +0818c7e0 battle_controller_recorded_player.s RecordedPlayerHandleDataTransfer +0818c7ec battle_controller_recorded_player.s RecordedPlayerHandleDMA3Transfer +0818c7f8 battle_controller_recorded_player.s RecordedPlayerHandlePlayBGM +0818c804 battle_controller_recorded_player.s RecordedPlayerHandleCmd32 +0818c810 battle_controller_recorded_player.s RecordedPlayerHandleTwoReturnValues +0818c81c battle_controller_recorded_player.s RecordedPlayerHandleChosenMonReturnValue +0818c828 battle_controller_recorded_player.s RecordedPlayerHandleOneReturnValue +0818c834 battle_controller_recorded_player.s RecordedPlayerHandleOneReturnValue_Duplicate +0818c840 battle_controller_recorded_player.s RecordedPlayerHandleCmd37 +0818c85c battle_controller_recorded_player.s RecordedPlayerHandleCmd38 +0818c894 battle_controller_recorded_player.s RecordedPlayerHandleCmd39 +0818c8ac battle_controller_recorded_player.s RecordedPlayerHandleCmd40 +0818c8d4 battle_controller_recorded_player.s RecordedPlayerHandleHitAnimation +0818c944 battle_controller_recorded_player.s RecordedPlayerHandleCmd42 +0818c950 battle_controller_recorded_player.s RecordedPlayerHandlePlaySE +0818c994 battle_controller_recorded_player.s RecordedPlayerHandlePlayFanfareOrBGM +0818c9f0 battle_controller_recorded_player.s RecordedPlayerHandleFaintingCry +0818ca30 battle_controller_recorded_player.s RecordedPlayerHandleIntroSlide +0818ca64 battle_controller_recorded_player.s RecordedPlayerHandleIntroTrainerBallThrow +0818cc24 battle_controller_recorded_player.s sub_818CC24 +0818cd30 battle_controller_recorded_player.s RecordedPlayerHandleDrawPartyStatusSummary +0818cdf4 battle_controller_recorded_player.s sub_818CDF4 +0818ce3c battle_controller_recorded_player.s RecordedPlayerHandleHidePartyStatusSummary +0818ce8c battle_controller_recorded_player.s RecordedPlayerHandleEndBounceEffect +0818ce98 battle_controller_recorded_player.s RecordedPlayerHandleSpriteInvisibility +0818cef8 battle_controller_recorded_player.s RecordedPlayerHandleBattleAnimation +0818cf60 battle_controller_recorded_player.s RecordedPlayerHandleLinkStandbyMsg +0818cf6c battle_controller_recorded_player.s RecordedPlayerHandleResetActionMoveSelection +0818cf78 battle_controller_recorded_player.s RecordedPlayerHandleCmd55 +0818cfc4 battle_controller_recorded_player.s RecordedPlayerCmdEnd +0818cfc8 trainer_pokemon_sprites.s DummyPicSpriteCallback +0818cfcc trainer_pokemon_sprites.s ResetAllPicSprites +0818cff4 trainer_pokemon_sprites.s DecompressPic +0818d09c trainer_pokemon_sprites.s DecompressPic_HandleDeoxys +0818d0c4 trainer_pokemon_sprites.s LoadPicPaletteByTagOrSlot +0818d180 trainer_pokemon_sprites.s LoadPicPaletteBySlot +0818d1c0 trainer_pokemon_sprites.s AssignSpriteAnimsTable +0818d1ec trainer_pokemon_sprites.s CreatePicSprite +0818d384 trainer_pokemon_sprites.s CreatePicSprite_HandleDeoxys +0818d3e4 trainer_pokemon_sprites.s CreatePicSprite2 +0818d5b0 trainer_pokemon_sprites.s FreeAndDestroyPicSpriteInternal +0818d65c trainer_pokemon_sprites.s sub_818D65C +0818d6cc trainer_pokemon_sprites.s sub_818D6CC +0818d778 trainer_pokemon_sprites.s CreateMonPicSprite +0818d7d8 trainer_pokemon_sprites.s CreateMonPicSprite_HandleDeoxys +0818d820 trainer_pokemon_sprites.s FreeAndDestroyMonPicSprite +0818d834 trainer_pokemon_sprites.s sub_818D834 +0818d864 trainer_pokemon_sprites.s sub_818D864 +0818d8ac trainer_pokemon_sprites.s CreateTrainerPicSprite +0818d8f0 trainer_pokemon_sprites.s FreeAndDestroyTrainerPicSprite +0818d904 trainer_pokemon_sprites.s sub_818D904 +0818d938 trainer_pokemon_sprites.s sub_818D938 +0818d97c trainer_pokemon_sprites.s PlayerGenderToFrontTrainerPicId_Debug +0818d9ac lilycove_lady.s GetLilycoveLadyId +0818d9c0 lilycove_lady.s sub_818D9C0 +0818da30 lilycove_lady.s SetLilycoveLady +0818da78 lilycove_lady.s sub_818DA78 +0818daac lilycove_lady.s SetLilycoveLadyRandomly +0818daec lilycove_lady.s sub_818DAEC +0818db04 lilycove_lady.s sub_818DB04 +0818db20 lilycove_lady.s sub_818DB20 +0818db7c lilycove_lady.s SetLilycoveFavourLady +0818dbc4 lilycove_lady.s sub_818DBC4 +0818dbe8 lilycove_lady.s sub_818DBE8 +0818dc1c lilycove_lady.s sub_818DC1C +0818dc2c lilycove_lady.s sub_818DC2C +0818dc60 lilycove_lady.s sub_818DC60 +0818dcac lilycove_lady.s sub_818DCAC +0818dcc8 lilycove_lady.s sub_818DCC8 +0818dcf4 lilycove_lady.s sub_818DCF4 +0818dd14 lilycove_lady.s sub_818DD14 +0818dd54 lilycove_lady.s sub_818DD54 +0818dd78 lilycove_lady.s sub_818DD78 +0818dd84 lilycove_lady.s sub_818DD84 +0818de44 lilycove_lady.s sub_818DE44 +0818de5c lilycove_lady.s sub_818DE5C +0818de88 lilycove_lady.s sub_818DE88 +0818dea0 lilycove_lady.s sub_818DEA0 +0818dedc lilycove_lady.s sub_818DEDC +0818def4 lilycove_lady.s sub_818DEF4 +0818df00 lilycove_lady.s sub_818DF00 +0818df68 lilycove_lady.s SetLilycoveQuizLady +0818e004 lilycove_lady.s sub_818E004 +0818e038 lilycove_lady.s sub_818E038 +0818e06c lilycove_lady.s sub_818E06C +0818e13c lilycove_lady.s sub_818E13C +0818e1f4 lilycove_lady.s sub_818E1F4 +0818e258 lilycove_lady.s sub_818E258 +0818e274 lilycove_lady.s sub_818E274 +0818e298 lilycove_lady.s sub_818E298 +0818e2d8 lilycove_lady.s sub_818E2D8 +0818e2fc lilycove_lady.s sub_818E2FC +0818e308 lilycove_lady.s sub_818E308 +0818e358 lilycove_lady.s sub_818E358 +0818e37c lilycove_lady.s sub_818E37C +0818e39c lilycove_lady.s sub_818E39C +0818e3bc lilycove_lady.s sub_818E3BC +0818e3e0 lilycove_lady.s sub_818E3E0 +0818e3ec lilycove_lady.s sub_818E3EC +0818e430 lilycove_lady.s sub_818E430 +0818e47c lilycove_lady.s sub_818E47C +0818e490 lilycove_lady.s sub_818E490 +0818e4a4 lilycove_lady.s sub_818E4A4 +0818e510 lilycove_lady.s sub_818E510 +0818e538 lilycove_lady.s sub_818E538 +0818e564 lilycove_lady.s sub_818E564 +0818e570 lilycove_lady.s sub_818E570 +0818e604 lilycove_lady.s sub_818E604 +0818e638 lilycove_lady.s SetLilycoveContestLady +0818e674 lilycove_lady.s sub_818E674 +0818e6b0 lilycove_lady.s sub_818E6B0 +0818e704 lilycove_lady.s GivePokeblockToContestLady +0818e794 lilycove_lady.s sub_818E794 +0818e7e0 lilycove_lady.s sub_818E7E0 +0818e81c lilycove_lady.s sub_818E81C +0818e848 lilycove_lady.s sub_818E848 +0818e868 lilycove_lady.s sub_818E868 +0818e880 lilycove_lady.s sub_818E880 +0818e8b4 lilycove_lady.s sub_818E8B4 +0818e8e0 lilycove_lady.s sub_818E8E0 +0818e914 lilycove_lady.s sub_818E914 +0818e92c lilycove_lady.s sub_818E92C +0818e940 lilycove_lady.s sub_818E940 +0818e960 lilycove_lady.s sub_818E960 +0818e990 lilycove_lady.s sub_818E990 +0818e9ac battle_dome.s CallBattleDomeFunction +0818e9cc battle_dome.s InitDomeChallenge +0818ea84 battle_dome.s GetDomeData +0818ed28 battle_dome.s SetDomeData +0818f02c battle_dome.s InitDomeTrainers +0818f720 battle_dome.s CalcDomeMonStats +0818f904 battle_dome.s SwapDomeTrainers +0818f9b0 battle_dome.s BufferDomeRoundText +0818f9e0 battle_dome.s BufferDomeOpponentName +0818fa20 battle_dome.s InitDomeOpponentParty +0818fa74 battle_dome.s CreateDomeOpponentMon +0818fbdc battle_dome.s CreateDomeOpponentMons +0818fc78 battle_dome.s GetDomeTrainerMonCountInBits +0818fcbc battle_dome.s sub_818FCBC +0818fdb8 battle_dome.s sub_818FDB8 +0818feb4 battle_dome.s sub_818FEB4 +0818ffc0 battle_dome.s GetTypeEffectivenessPoints +08190168 battle_dome.s GetDomeTrainerMonIvs +081901a0 battle_dome.s TournamentIdOfOpponent +08190298 battle_dome.s SetDomeOpponentId +081902ac battle_dome.s TrainerIdOfPlayerOpponent +081902e4 battle_dome.s SetDomeOpponentGraphicsId +081902f8 battle_dome.s sub_81902F8 +0819033c battle_dome.s UpdateDomeStreaks +081903b8 battle_dome.s ShowDomeOpponentInfo +08190400 battle_dome.s Task_ShowOpponentInfo +08190790 battle_dome.s SpriteCb_TrainerIconCardScrollUp +081907f8 battle_dome.s SpriteCb_TrainerIconCardScrollDown +08190860 battle_dome.s SpriteCb_TrainerIconCardScrollLeft +081908cc battle_dome.s SpriteCb_TrainerIconCardScrollRight +08190938 battle_dome.s SpriteCb_MonIcon +08190950 battle_dome.s SpriteCb_MonIconCardScrollUp +081909cc battle_dome.s SpriteCb_MonIconCardScrollDown +08190a48 battle_dome.s SpriteCb_MonIconCardScrollLeft +08190ac4 battle_dome.s SpriteCb_MonIconCardScrollRight +08190b40 battle_dome.s sub_8190B40 +08190c6c battle_dome.s sub_8190C6C +08190cd4 battle_dome.s sub_8190CD4 +0819221c battle_dome.s sub_819221C +081924e0 battle_dome.s DisplayTrainerInfoOnCard +08192f08 battle_dome.s sub_8192F08 +0819314c battle_dome.s DisplayMatchInfoOnCard +081938a4 battle_dome.s ShowDomeTourneyTree +081938e0 battle_dome.s ShowPreviousDomeResultsTourneyTree +0819395c battle_dome.s sub_819395C +08193bdc battle_dome.s UpdateTourneyTreeCursor +08193d40 battle_dome.s ShowNonInteractiveDomeTourneyTree +08193d7c battle_dome.s ResolveDomeRoundWinners +08193ed0 battle_dome.s GetWinningMove +08194220 battle_dome.s Task_ShowTourneyTree +081948ec battle_dome.s sub_81948EC +08194950 battle_dome.s sub_8194950 +08194b54 battle_dome.s CB2_BattleDome +08194b70 battle_dome.s VblankCb0_BattleDome +08194bec battle_dome.s HblankCb_BattleDome +08194ce4 battle_dome.s VblankCb1_BattleDome +08194d48 battle_dome.s InitDomeFacilityTrainersAndMons +08194d68 battle_dome.s RestoreDomePlayerParty +08194e44 battle_dome.s RestoreDomePlayerPartyHeldItems +08194eb4 battle_dome.s ReduceDomePlayerPartyTo3Mons +08194ec0 battle_dome.s GetPlayerSeededBeforeOpponent +08194ef8 battle_dome.s BufferLastDomeWinnerName +08194f58 battle_dome.s sub_8194F58 +08195358 battle_dome.s TrainerIdToTournamentId +081953a0 battle_dome.s TrainerIdToDomeTournamentId +081953e8 battle_dome.s sub_81953E8 +08195438 battle_dome.s DecideRoundWinners +08195898 battle_dome.s CopyDomeTrainerName +08195910 battle_dome.s GetDomeBrainTrainerPicId +08195924 battle_dome.s GetDomeBrainTrainerClass +08195938 battle_dome.s CopyDomeBrainTrainerName +08195960 battle_palace.s CallBattlePalaceFunction +08195980 battle_palace.s sub_8195980 +08195a38 battle_palace.s sub_8195A38 +08195ae4 battle_palace.s sub_8195AE4 +08195bb0 battle_palace.s sub_8195BB0 +08195c20 battle_palace.s sub_8195C20 +08195c50 battle_palace.s sub_8195C50 +08195c7c battle_palace.s sub_8195C7C +08195ce4 battle_palace.s sub_8195CE4 +08195d28 battle_palace.s sub_8195D28 +08195db8 battle_palace.s sub_8195DB8 +08195e10 match_call.s InitMatchCallCounters +08195e34 match_call.s GetCurrentTotalMinutes +08195e58 match_call.s UpdateMatchCallMinutesCounter +08195e8c match_call.s CheckMatchCallChance +08195ed8 match_call.s MapAllowsMatchCall +08195f40 match_call.s UpdateMatchCallStepCounter +08195f68 match_call.s SelectMatchCallTrainer +08195fcc match_call.s GetNumRegisteredNPCs +08195ff8 match_call.s GetActiveMatchCallTrainerId +08196034 match_call.s TryStartMatchCall +08196080 match_call.s StartMatchCallFromScript +08196094 match_call.s IsMatchCallTaskActive +081960a8 match_call.s StartMatchCall +081960e0 match_call.s ExecuteMatchCall +0819612c match_call.s LoadMatchCallWindowGfx +081961f0 match_call.s MoveMatchCallWindowToVram +08196274 match_call.s PrintMatchCallIntroEllipsis +081962b0 match_call.s sub_81962B0 +081962d8 match_call.s sub_81962D8 +08196330 match_call.s sub_8196330 +08196390 match_call.s sub_8196390 +081963f0 match_call.s sub_81963F0 +0819645c match_call.s DrawMatchCallTextBoxBorder +081965d8 match_call.s InitMatchCallTextPrinter +08196648 match_call.s ExecuteMatchCallTextPrinter +08196694 match_call.s sub_8196694 +08196710 match_call.s TrainerIsEligibleForRematch +0819672c match_call.s GetRematchTrainerLocation +08196748 match_call.s GetNumRematchTrainersFought +08196774 match_call.s sub_8196774 +081967ac match_call.s SelectMatchCallMessage +08196844 match_call.s GetTrainerMatchCallId +08196864 match_call.s GetSameRouteMatchCallText +08196890 match_call.s GetDifferentRouteMatchCallText +081968bc match_call.s GetBattleMatchCallText +08196910 match_call.s GetGeneralMatchCallText +081969e0 match_call.s BuildMatchCallString +081969fc match_call.s PopulateMatchCallStringVars +08196a2c match_call.s PopulateMatchCallStringVar +08196a44 match_call.s PopulateTrainerName +08196a9c match_call.s PopulateMapName +08196ab8 match_call.s GetLandEncounterSlot +08196b50 match_call.s GetWaterEncounterSlot +08196b98 match_call.s PopulateSpeciesFromTrainerLocation +08196c70 match_call.s PopulateSpeciesFromTrainerParty +08196cf4 match_call.s PopulateBattleFrontierFacilityName +08196d14 match_call.s PopulateBattleFrontierStreak +08196d4c match_call.s GetNumOwnedBadges +08196d74 match_call.s sub_8196D74 +08196e04 match_call.s GetFrontierStreakInfo +08196f90 match_call.s GetPokedexRatingLevel +08197080 match_call.s sub_8197080 +08197184 match_call.s sub_8197184 +081971c4 match_call.s sub_81971C4 +081971d0 menu.s InitStandardTextBoxWindows +081971f4 menu.s FreeAllOverworldWindowBuffers +08197200 menu.s sub_8197200 +08197224 menu.s RunTextPrintersAndIsPrinter0Active +08197238 menu.s AddTextPrinterParameterized2 +081972c4 menu.s AddTextPrinterForMessage +08197310 menu.s AddTextPrinterForMessage_2 +0819735c menu.s AddTextPrinterWithCustomSpeedForMessage +081973a4 menu.s sub_81973A4 +081973c4 menu.s DrawDialogueFrame +081973fc menu.s DrawStdWindowFrame +08197434 menu.s ClearDialogWindowAndFrame +0819746c menu.s ClearStdWindowAndFrame +081974a4 menu.s WindowFunc_DrawStandardFrame +081975f4 menu.s WindowFunc_DrawDialogueFrame +081977bc menu.s WindowFunc_ClearStdWindowAndFrame +08197804 menu.s WindowFunc_ClearDialogWindowAndFrame +08197854 menu.s SetStandardWindowBorderStyle +0819786c menu.s sub_819786C +0819789c menu.s sub_819789C +081978b0 menu.s Menu_LoadStdPalAt +081978c8 menu.s sub_81978C8 +081978d0 menu.s sub_81978D0 +081978ec menu.s DisplayItemMessageOnField +08197930 menu.s DisplayYesNoMenuDefaultYes +08197948 menu.s DisplayYesNoMenuWithDefault +08197964 menu.s GetPlayerTextSpeed +08197990 menu.s GetPlayerTextSpeedDelay +081979c4 menu.s sub_81979C4 +08197a08 menu.s GetStartMenuWindowId +08197a14 menu.s RemoveStartMenuWindow +08197a30 menu.s sub_8197A30 +08197a38 menu.s sub_8197A38 +08197a40 menu.s AddMapNamePopUpWindow +08197a74 menu.s GetMapNamePopUpWindowId +08197a80 menu.s RemoveMapNamePopUpWindow +08197a9c menu.s AddTextPrinterWithCallbackForMessage +08197ae8 menu.s sub_8197AE8 +08197b1c menu.s DrawDialogFrameWithCustomTileAndPalette +08197b64 menu.s DrawDialogFrameWithCustomTile +08197bb4 menu.s WindowFunc_DrawDialogFrameWithCustomTileAndPalette +08197df8 menu.s ClearDialogWindowAndFrameToTransparent +08197e30 menu.s WindowFunc_ClearDialogWindowAndFrameNullPalette +08197e80 menu.s DrawStdFrameWithCustomTileAndPalette +08197ec8 menu.s DrawStdFrameWithCustomTile +08197f18 menu.s WindowFunc_DrawStdFrameWithCustomTileAndPalette +08198070 menu.s ClearStdWindowAndFrameToTransparent +081980a8 menu.s WindowFunc_ClearStdWindowAndFrameToTransparent +081980f0 menu.s sub_81980F0 +08198180 menu.s sub_8198180 +08198204 menu.s sub_8198204 +081982d8 menu.s sub_81982D8 +081982f0 menu.s sub_81982F0 +08198314 menu.s sub_8198314 +08198348 menu.s sub_8198348 +081983ac menu.s sub_81983AC +081983ec menu.s sub_81983EC +08198448 menu.s RedrawMenuCursor +081984d8 menu.s Menu_MoveCursor +0819851c menu.s Menu_MoveCursorNoWrapAround +08198560 menu.s Menu_GetCursorPos +0819856c menu.s Menu_ProcessInput +081985d8 menu.s Menu_ProcessInputNoWrap +08198658 menu.s ProcessMenuInput_other +081986c4 menu.s Menu_ProcessInputNoWrapAround_other +08198740 menu.s PrintTextArray +081987bc menu.s sub_81987BC +08198854 menu.s sub_8198854 +081988a4 menu.s AddItemMenuActionTextPrinters +081989b8 menu.s sub_81989B8 +08198a24 menu.s SetWindowTemplateFields +08198a50 menu.s CreateWindowTemplate +08198aa4 menu.s sub_8198AA4 +08198af8 menu.s sub_8198AF8 +08198c34 menu.s sub_8198C34 +08198c58 menu.s Menu_ProcessInputNoWrapClearOnChoose +08198c78 menu.s sub_8198C78 +08198c94 menu.s sub_8198C94 +08198d54 menu.s sub_8198D54 +08198dbc menu.s sub_8198DBC +08198ef8 menu.s sub_8198EF8 +08198f58 menu.s sub_8198F58 +08198fd4 menu.s sub_8198FD4 +08199060 menu.s sub_8199060 +08199134 menu.s sub_8199134 +081991f8 menu.s sub_81991F8 +08199284 menu.s sub_8199284 +08199334 menu.s Menu_ProcessInputGridLayout +081993d8 menu.s sub_81993D8 +08199484 menu.s sub_8199484 +08199524 menu.s InitMenuInUpperLeftCorner +08199570 menu.s InitMenuInUpperLeftCornerPlaySoundWhenAPressed +0819958c menu.s PrintMenuTable +081995e4 menu.s sub_81995E4 +081996c0 menu.s CreateYesNoMenu +081997ac menu.s PrintMenuGridTable +0819983c menu.s sub_819983C +08199944 menu.s sub_8199944 +081999a8 menu.s clear_scheduled_bg_copies_to_vram +081999bc menu.s schedule_bg_copy_tilemap_to_vram +081999d0 menu.s do_scheduled_bg_tilemap_copies_to_vram +08199a20 menu.s reset_temp_tile_data_buffers +08199a44 menu.s free_temp_tile_data_buffers_if_possible +08199a90 menu.s decompress_and_copy_tile_data_to_vram +08199b08 menu.s DecompressAndLoadBgGfxUsingHeap +08199b84 menu.s task_free_buf_after_copying_tile_data_to_vram +08199bc0 menu.s malloc_and_decompress +08199bf0 menu.s copy_decompressed_tile_data_to_vram +08199c30 menu.s sub_8199C30 +08199cbc menu.s sub_8199CBC +08199d3c menu.s sub_8199D3C +08199d98 menu.s ResetBgPositions +08199df0 menu.s sub_8199DF0 +08199e64 menu.s AddTextPrinterParameterized3 +08199eec menu.s AddTextPrinterParameterized4 +08199f74 menu.s AddTextPrinterParameterized5 +0819a024 menu.s PrintPlayerNameOnWindow +0819a080 menu.s sub_819A080 +0819a25c menu.s sub_819A25C +0819a27c menu.s sub_819A27C +0819a2bc menu.s sub_819A2BC +0819a2f8 menu.s blit_move_info_icon +0819a344 menu.s sub_819A344 +0819a44c battle_factory_screen.s sub_819A44C +0819a4c8 battle_factory_screen.s Select_CB2 +0819a4e4 battle_factory_screen.s Select_VblankCb +0819a4f8 battle_factory_screen.s DoBattleFactorySelectScreen +0819a514 battle_factory_screen.s CB2_InitSelectScreen +0819a9ac battle_factory_screen.s Select_InitMonsData +0819aa18 battle_factory_screen.s Select_InitAllSprites +0819ab40 battle_factory_screen.s Select_DestroyAllSprites +0819aba8 battle_factory_screen.s Select_UpdateBallCursorPosition +0819ac10 battle_factory_screen.s Select_UpdateMenuCursorPosition +0819ac78 battle_factory_screen.s Select_UpdateYesNoCursorPosition +0819ace0 battle_factory_screen.s Select_HandleMonSelectionChange +0819adac battle_factory_screen.s Select_SetBallSpritePaletteNum +0819ae08 battle_factory_screen.s Task_FromSelectScreenToSummaryScreen +0819af68 battle_factory_screen.s Task_CloseSelectionScreen +0819b02c battle_factory_screen.s Task_HandleSelectionScreenYesNo +0819b124 battle_factory_screen.s Task_HandleSelectionScreenMenu +0819b378 battle_factory_screen.s Task_HandleSelectionScreenChooseMons +0819b484 battle_factory_screen.s CreateFrontierFactorySelectableMons +0819b63c battle_factory_screen.s CreateTentFactorySelectableMons +0819b764 battle_factory_screen.s Select_CopyMonsToPlayerParty +0819b844 battle_factory_screen.s Select_ShowMenuOptions +0819b8d4 battle_factory_screen.s Select_ShowYesNoOptions +0819b958 battle_factory_screen.s sub_819B958 +0819b9b4 battle_factory_screen.s Select_PrintRentalPkmnString +0819b9e8 battle_factory_screen.s Select_PrintMonSpecies +0819ba64 battle_factory_screen.s Select_PrintSelectMonString +0819bac8 battle_factory_screen.s Select_PrintCantSelectSameMon +0819bafc battle_factory_screen.s Select_PrintMenuOptions +0819bba8 battle_factory_screen.s Select_PrintYesNoOptions +0819bc04 battle_factory_screen.s Select_RunMenuOptionFunc +0819bc30 battle_factory_screen.s Select_OptionRentDeselect +0819bc9c battle_factory_screen.s sub_819BC9C +0819bccc battle_factory_screen.s Select_OptionSummary +0819bcd0 battle_factory_screen.s Select_OptionOthers +0819bcf8 battle_factory_screen.s Select_PrintMonCategory +0819bd70 battle_factory_screen.s Summary_ShowMonSprite +0819be20 battle_factory_screen.s sub_819BE20 +0819be34 battle_factory_screen.s Select_ShowSummaryMonSprite +0819bf2c battle_factory_screen.s Select_ShowChosenMonsSprites +0819c040 battle_factory_screen.s sub_819C040 +0819c100 battle_factory_screen.s sub_819C100 +0819c1d0 battle_factory_screen.s sub_819C1D0 +0819c2d4 battle_factory_screen.s sub_819C2D4 +0819c4b4 battle_factory_screen.s sub_819C4B4 +0819c568 battle_factory_screen.s sub_819C568 +0819c5d0 battle_factory_screen.s Select_SetWinRegs +0819c634 battle_factory_screen.s Select_AreSpeciesValid +0819c69c battle_factory_screen.s Task_SelectFadeSpeciesName +0819c7e0 battle_factory_screen.s Swap_CB2 +0819c7fc battle_factory_screen.s Swap_VblankCb +0819c810 battle_factory_screen.s CopySwappedMonData +0819c90c battle_factory_screen.s Task_FromSwapScreenToSummaryScreen +0819ca08 battle_factory_screen.s Task_CloseSwapScreen +0819cb1c battle_factory_screen.s Task_HandleSwapScreenYesNo +0819cbdc battle_factory_screen.s sub_819CBDC +0819cc24 battle_factory_screen.s sub_819CC24 +0819cc74 battle_factory_screen.s sub_819CC74 +0819ccd4 battle_factory_screen.s sub_819CCD4 +0819cd34 battle_factory_screen.s Task_HandleSwapScreenMenu +0819ce40 battle_factory_screen.s Task_HandleSwapScreenChooseMons +0819cf54 battle_factory_screen.s Task_SwapFadeSpeciesName +0819d064 battle_factory_screen.s Task_SwapFadeSpeciesName2 +0819d12c battle_factory_screen.s sub_819D12C +0819d324 battle_factory_screen.s sub_819D324 +0819d588 battle_factory_screen.s sub_819D588 +0819d770 battle_factory_screen.s sub_819D770 +0819d9ec battle_factory_screen.s sub_819D9EC +0819dbd8 battle_factory_screen.s Swap_InitStruct +0819dc00 battle_factory_screen.s DoBattleFactorySwapScreen +0819dc1c battle_factory_screen.s CB2_InitSwapScreen +0819e0c0 battle_factory_screen.s Swap_InitAllSprites +0819e538 battle_factory_screen.s Swap_DestroyAllSprites +0819e608 battle_factory_screen.s Swap_HandleActionCursorChange +0819e694 battle_factory_screen.s Swap_UpdateBallCursorPosition +0819e6e8 battle_factory_screen.s Swap_UpdateActionCursorPosition +0819e758 battle_factory_screen.s Swap_UpdateYesNoCursorPosition +0819e7c0 battle_factory_screen.s Swap_UpdateMenuCursorPosition +0819e838 battle_factory_screen.s sub_819E838 +0819e8ec battle_factory_screen.s sub_819E8EC +0819e944 battle_factory_screen.s Swap_ShowMenuOptions +0819e9e0 battle_factory_screen.s Swap_ShowYesNoOptions +0819ea64 battle_factory_screen.s sub_819EA64 +0819eac0 battle_factory_screen.s sub_819EAC0 +0819eadc battle_factory_screen.s sub_819EADC +0819eaf8 battle_factory_screen.s sub_819EAF8 +0819eb18 battle_factory_screen.s Swap_PrintPkmnSwap +0819eb4c battle_factory_screen.s Swap_PrintMonSpecies +0819ebec battle_factory_screen.s Swap_PrintOnInfoWindow +0819ec20 battle_factory_screen.s Swap_PrintMenuOptions +0819ec94 battle_factory_screen.s Swap_PrintYesNoOptions +0819ecf0 battle_factory_screen.s Swap_PrintActionString +0819ed34 battle_factory_screen.s Swap_PrintActionStrings +0819ed78 battle_factory_screen.s Swap_PrintActionStrings2 +0819edbc battle_factory_screen.s Swap_PrintOneActionString +0819ee08 battle_factory_screen.s Swap_PrintMonSpecies2 +0819eef0 battle_factory_screen.s Swap_PrintMonSpecies3 +0819efa8 battle_factory_screen.s Swap_PrintMonCategory +0819f048 battle_factory_screen.s Swap_InitActions +0819f0a0 battle_factory_screen.s Swap_RunMenuOptionFunc +0819f0cc battle_factory_screen.s sub_819F0CC +0819f114 battle_factory_screen.s sub_819F114 +0819f134 battle_factory_screen.s sub_819F134 +0819f184 battle_factory_screen.s Swap_RunActionFunc +0819f1ac battle_factory_screen.s Swap_ActionCancel +0819f1dc battle_factory_screen.s Swap_ActionPkmnForSwap +0819f20c battle_factory_screen.s Swap_ActionMon +0819f2b4 battle_factory_screen.s sub_819F2B4 +0819f304 battle_factory_screen.s Swap_ShowSummaryMonSprite +0819f3f8 battle_factory_screen.s sub_819F3F8 +0819f444 battle_factory_screen.s sub_819F444 +0819f488 battle_factory_screen.s Task_SwapCantHaveSameMons +0819f59c battle_factory_screen.s Swap_AlreadyHasSameSpecies +0819f600 battle_factory_screen.s sub_819F600 +0819f654 battle_factory_screen.s sub_819F654 +0819f69c battle_factory_screen.s sub_819F69C +0819f7b4 battle_factory_screen.s sub_819F7B4 +0819f8e0 battle_factory_screen.s Swap_ShowMonSprite +0819f99c apprentice.s CopyFriendsApprenticeChallengeText +0819fa50 apprentice.s Apprentice_EnableBothScriptContexts +0819fa5c apprentice.s ResetApprenticeStruct +0819faa0 apprentice.s ResetAllApprenticeData +0819fbb0 apprentice.s IsPlayersApprenticeActive +0819fbc8 apprentice.s sub_819FBC8 +0819fc40 apprentice.s SetPlayersApprenticeLvlMode +0819fc60 apprentice.s sub_819FC60 +0819fcf8 apprentice.s sub_819FCF8 +0819fd64 apprentice.s sub_819FD64 +0819ff98 apprentice.s sub_819FF98 +081a0194 apprentice.s sub_81A0194 +081a01e8 apprentice.s GetLatestLearnedMoves +081a0284 apprentice.s sub_81A0284 +081a0390 apprentice.s sub_81A0390 +081a04e4 apprentice.s CreateMenuWithAnswers +081a070c apprentice.s Task_ChooseAnswer +081a0784 apprentice.s CreateAndShowWindow +081a07e8 apprentice.s RemoveAndHideWindow +081a0804 apprentice.s CreateChooseAnswerTask +081a085c apprentice.s CallApprenticeFunction +081a087c apprentice.s Script_ResetPlayerApprentice +081a093c apprentice.s Script_IsPlayersApprenticeActive +081a0964 apprentice.s Script_SetPlayersApprenticeLvlMode +081a0978 apprentice.s sub_81A0978 +081a0984 apprentice.s sub_81A0984 +081a0990 apprentice.s sub_81A0990 +081a09b4 apprentice.s sub_81A09B4 +081a09d0 apprentice.s sub_81A09D0 +081a0a20 apprentice.s Script_CreateApprenticeMenu +081a0a34 apprentice.s Task_WaitForPrintingMessage +081a0a70 apprentice.s PrintMessage +081a0c9c apprentice.s Script_PrintMessage +081a0cc0 apprentice.s sub_81A0CC0 +081a0d40 apprentice.s sub_81A0D40 +081a0d80 apprentice.s sub_81A0D80 +081a0dd4 apprentice.s sub_81A0DD4 +081a0fe4 apprentice.s sub_81A0FE4 +081a0ffc apprentice.s sub_81A0FFC +081a11f8 apprentice.s sub_81A11F8 +081a1218 apprentice.s sub_81A1218 +081a1224 apprentice.s sub_81A1224 +081a1370 apprentice.s sub_81A1370 +081a1438 apprentice.s sub_81A1438 +081a150c apprentice.s sub_81A150C +081a15a4 apprentice.s Script_SetPlayerApprenticeTrainerGfxId +081a1638 apprentice.s sub_81A1638 +081a1644 apprentice.s sub_81A1644 +081a1650 apprentice.s GetApprenticeNameInLanguage +081a16b4 apprentice.s sub_81A16B4 +081a16dc apprentice.s Task_ExecuteFuncAfterButtonPress +081a172c apprentice.s ExecuteFuncAfterButtonPress +081a175c apprentice.s sub_81A175C +081a1780 frontier_util.s CallFrontierUtilFunc +081a17a0 frontier_util.s sub_81A17A0 +081a1830 frontier_util.s sub_81A1830 +081a1968 frontier_util.s sub_81A1968 +081a1ad4 frontier_util.s sub_81A1AD4 +081a1b1c frontier_util.s DoSoftReset_ +081a1b28 frontier_util.s sub_81A1B28 +081a1b38 frontier_util.s sub_81A1B38 +081a1b98 frontier_util.s ShowFacilityResultsWindow +081a1c24 frontier_util.s sub_81A1C24 +081a1c4c frontier_util.s PrintAligned +081a1c90 frontier_util.s PrintHyphens +081a1cd8 frontier_util.s TowerPrintStreak +081a1d78 frontier_util.s TowerPrintRecordStreak +081a1dbc frontier_util.s TowerGetWinStreak +081a1dec frontier_util.s TowerPrintPrevOrCurrentStreak +081a1ea8 frontier_util.s ShowTowerResultsWindow +081a1fd8 frontier_util.s DomeGetWinStreak +081a2008 frontier_util.s PrintTwoStrings +081a2094 frontier_util.s DomePrintPrevOrCurrentStreak +081a2134 frontier_util.s ShowDomeResultsWindow +081a22b8 frontier_util.s PalacePrintStreak +081a2358 frontier_util.s PalacePrintRecordStreak +081a239c frontier_util.s PalaceGetWinStreak +081a23cc frontier_util.s PalacePrintPrevOrCurrentStreak +081a2460 frontier_util.s ShowPalaceResultsWindow +081a2560 frontier_util.s PikeGetWinStreak +081a258c frontier_util.s PikePrintCleared +081a2618 frontier_util.s PikePrintPrevOrCurrentStreak +081a2698 frontier_util.s ShowPikeResultsWindow +081a27e8 frontier_util.s ArenaPrintStreak +081a2888 frontier_util.s ArenaPrintRecordStreak +081a28cc frontier_util.s ArenaGetWinStreak +081a28f8 frontier_util.s ArenaPrintPrevOrCurrentStreak +081a2968 frontier_util.s ShowArenaResultsWindow +081a2a28 frontier_util.s FactoryPrintStreak +081a2b04 frontier_util.s FactoryPrintRecordStreak +081a2b70 frontier_util.s FactoryGetWinStreak +081a2ba0 frontier_util.s FactoryGetRentsCount +081a2bd0 frontier_util.s FactoryPrintPrevOrCurrentStreak +081a2c94 frontier_util.s ShowFactoryResultsWindow +081a2db4 frontier_util.s PyramidPrintStreak +081a2e54 frontier_util.s PyramidPrintRecordStreak +081a2e98 frontier_util.s PyramidGetWinStreak +081a2ec4 frontier_util.s PyramidPrintPrevOrCurrentStreak +081a2f38 frontier_util.s ShowPyramidResultsWindow +081a2ff8 frontier_util.s ShowLinkContestResultsWindow +081a31fc frontier_util.s sub_81A31FC +081a35ec frontier_util.s sub_81A35EC +081a3610 frontier_util.s sub_81A3610 +081a36d0 frontier_util.s CopyFrontierTrainerText +081a3908 frontier_util.s sub_81A3908 +081a39c4 frontier_util.s GetCurrentFacilityWinStreak +081a3acc frontier_util.s sub_81A3ACC +081a3b00 frontier_util.s sub_81A3B00 +081a3b30 frontier_util.s GetPlayerSymbolCountForFacility +081a3b64 frontier_util.s sub_81A3B64 +081a3d30 frontier_util.s sub_81A3D30 +081a3d58 frontier_util.s sub_81A3D58 +081a3da0 frontier_util.s sub_81A3DA0 +081a3dd0 frontier_util.s sub_81A3DD0 +081a3ef0 frontier_util.s AppendIfValid +081a3fd4 frontier_util.s sub_81A3FD4 +081a4224 frontier_util.s sub_81A4224 +081a4230 frontier_util.s sub_81A4230 +081a43a8 frontier_util.s sub_81A43A8 +081a4410 frontier_util.s sub_81A4410 +081a443c frontier_util.s sub_81A443C +081a447c frontier_util.s sub_81A447C +081a457c frontier_util.s sub_81A457C +081a4594 frontier_util.s Print1PRecord +081a4684 frontier_util.s Print2PRecord +081a47e0 frontier_util.s Fill1PRecords +081a48b4 frontier_util.s Fill2PRecords +081a4998 frontier_util.s PrintHallRecords +081a4aa0 frontier_util.s ShowRankingHallRecordsWindow +081a4ae8 frontier_util.s ScrollRankingHallRecordsWindow +081a4b14 frontier_util.s ClearRankingHallRecords +081a4c30 frontier_util.s sub_81A4C30 +081a4cb0 frontier_util.s GetFrontierBrainTrainerPicIndex +081a4d00 frontier_util.s GetFrontierBrainTrainerClass +081a4d50 frontier_util.s CopyFrontierBrainTrainerName +081a4db8 frontier_util.s IsFrontierBrainFemale +081a4dd8 frontier_util.s SetFrontierBrainEventObjGfx_2 +081a4e04 frontier_util.s CreateFrontierBrainPokemon +081a4ff0 frontier_util.s GetFrontierBrainMonSpecies +081a5030 frontier_util.s SetFrontierBrainEventObjGfx +081a5060 frontier_util.s GetFrontierBrainMonMove +081a50b0 frontier_util.s GetFrontierBrainMonNature +081a50f0 frontier_util.s GetFrontierBrainMonEvs +081a513c frontier_util.s GetFronterBrainSymbol +081a51a8 frontier_util.s CopyFrontierBrainText +081a5238 battle_arena.s CallBattleArenaFunction +081a5258 battle_arena.s BattleArena_ShowJudgmentWindow +081a5558 battle_arena.s ShowJudgmentSprite +081a5698 battle_arena.s SpriteCb_JudgmentIcon +081a56b4 battle_arena.s BattleArena_InitPoints +081a56e8 battle_arena.s BattleArena_AddMindPoints +081a5718 battle_arena.s BattleArena_AddSkillPoints +081a57e4 battle_arena.s BattleArena_DeductMindPoints +081a586c battle_arena.s sub_81A586C +081a58b4 battle_arena.s InitArenaChallenge +081a5964 battle_arena.s GetArenaData +081a59fc battle_arena.s SetArenaData +081a5ac4 battle_arena.s sub_81A5AC4 +081a5b08 battle_arena.s SetArenaRewardItem +081a5b88 battle_arena.s GiveArenaRewardItem +081a5be0 battle_arena.s BufferArenaOpponentName +081a5bf8 battle_arena.s DrawArenaRefereeTextBox +081a5d44 battle_arena.s RemoveArenaRefereeTextBox +081a5e74 battle_factory.s CallBattleFactoryFunction +081a5e94 battle_factory.s InitFactoryChallenge +081a5fa8 battle_factory.s GetBattleFactoryData +081a6054 battle_factory.s SetBattleFactoryData +081a613c battle_factory.s sub_81A613C +081a6180 battle_factory.s nullsub_75 +081a6184 battle_factory.s nullsub_123 +081a6188 battle_factory.s SelectInitialRentalMons +081a6198 battle_factory.s SwapRentalMons +081a61a4 battle_factory.s SetPerformedRentalSwap +081a61b0 battle_factory.s GenerateOpponentMons +081a63b8 battle_factory.s SetOpponentGfxVar +081a63cc battle_factory.s SetRentalsToOpponentParty +081a64c4 battle_factory.s SetPlayerAndOpponentParties +081a67ec battle_factory.s GenerateInitialRentalMons +081a6a08 battle_factory.s GetOpponentMostCommonMonType +081a6aec battle_factory.s GetOpponentBattleStyle +081a6ba4 battle_factory.s GetMoveBattleStyle +081a6bf4 battle_factory.s InBattleFactory +081a6c1c battle_factory.s RestorePlayerPartyHeldItems +081a6ca8 battle_factory.s GetFactoryMonFixedIV +081a6cd0 battle_factory.s FillFactoryBrainParty +081a6ef0 battle_factory.s GetMonSetId +081a6f70 battle_factory.s GetNumPastRentalsRank +081a6fb4 battle_factory.s GetAiScriptsInBattleFactory +081a7024 battle_factory.s SetMonMoveAvoidReturn +081a703c battle_pike.s CallBattlePikeFunction +081a705c battle_pike.s SetRoomType +081a7070 battle_pike.s SetupRoomEventObjects +081a7140 battle_pike.s GetBattlePikeData +081a7248 battle_pike.s SetBattlePikeData +081a73b8 battle_pike.s GetInFinalRoom +081a73ec battle_pike.s GetRoomType +081a7400 battle_pike.s sub_81A7400 +081a740c battle_pike.s sub_81A740C +081a7418 battle_pike.s sub_81A7418 +081a7460 battle_pike.s nullsub_76 +081a7464 battle_pike.s nullsub_124 +081a7468 battle_pike.s GetRoomInflictedStatus +081a74cc battle_pike.s GetRoomInflictedStatusMon +081a74e0 battle_pike.s HealOneOrTwoMons +081a7508 battle_pike.s BufferNPCMessage +081a7580 battle_pike.s StatusInflictionScreenFade +081a7594 battle_pike.s HealMon +081a7628 battle_pike.s DoesAbilityPreventStatus +081a767c battle_pike.s DoesTypePreventStatus +081a7728 battle_pike.s TryInflictRandomStatus +081a7974 battle_pike.s AtLeastOneHealthyMon +081a79ec battle_pike.s GetNextRoomType +081a7b58 battle_pike.s GetNPCRoomGraphicsId +081a7b84 battle_pike.s sub_81A7B84 +081a7b90 battle_pike.s TryGenerateBattlePikeWildMon +081a7d00 battle_pike.s GetBattlePikeWildMonHeaderId +081a7d54 battle_pike.s DoStatusInflictionScreenFade +081a7d8c battle_pike.s StatusInflictionFadeOut +081a7de8 battle_pike.s StatusInflictionFadeIn +081a7e60 battle_pike.s StartStatusInflictionScreenFade +081a7ec4 battle_pike.s IsStatusInflictionScreenFadeTaskFinished +081a7ee4 battle_pike.s Task_DoStatusInflictionScreenFade +081a7f38 battle_pike.s TryHealMons +081a8090 battle_pike.s GetInBattlePike +081a80a8 battle_pike.s InBattlePike +081a80dc battle_pike.s SetHintedRoom +081a825c battle_pike.s GetHintedRoomIndex +081a827c battle_pike.s GetRoomTypeHint +081a82a4 battle_pike.s PrepareOneTrainer +081a8374 battle_pike.s PrepareTwoTrainers +081a84b4 battle_pike.s ClearPikeTrainerIds +081a84ec battle_pike.s BufferRecordMixingTrainerMessage +081a8554 battle_pike.s AtLeastTwoAliveMons +081a8590 battle_pike.s GetPikeQueenFightType +081a863c battle_pike.s GetCurrentRoomPikeQueenFightType +081a8658 battle_pike.s HealSomeMonsBeforePikeQueen +081a869c battle_pike.s SetHealingRoomsDisabled +081a86c0 battle_pike.s CanAnyPartyMonsBeHealed +081a8794 battle_pike.s BackupMonHeldItems +081a87e8 battle_pike.s RestoreMonHeldItems +081a8830 battle_pike.s InitPikeChallenge +081a88b0 battle_pike.s CanEncounterWildMon +081a890c battle_pike.s SpeciesToPikeMonId +081a8934 mossdeep_gym.s InitMossdeepGymTiles +081a895c mossdeep_gym.s FinishMossdeepGymTiles +081a89a0 mossdeep_gym.s MossdeepGym_MoveEvents +081a8af8 mossdeep_gym.s MossdeepGym_TurnEvents +081a8d60 mossdeep_gym.s AddEventObject +081a8d94 mossdeep_gym.s sub_81A8D94 +081a8e7c battle_pyramid.s CallBattlePyramidFunction +081a8e9c battle_pyramid.s InitPyramidChallenge +081a8f38 battle_pyramid.s GetBattlePyramidData +081a9048 battle_pyramid.s SetBattlePyramidData +081a9134 battle_pyramid.s sub_81A9134 +081a917c battle_pyramid.s SetBattlePyramidRewardItem +081a91fc battle_pyramid.s GiveBattlePyramidRewardItem +081a9254 battle_pyramid.s SeedPyramidFloor +081a9290 battle_pyramid.s SetPickupItem +081a93c8 battle_pyramid.s HidePyramidItem +081a9414 battle_pyramid.s InitPyramidFacilityTrainers +081a9424 battle_pyramid.s ShowPostBattleHintText +081a9618 battle_pyramid.s UpdatePyramidWinStreak +081a966c battle_pyramid.s GetInBattlePyramid +081a9684 battle_pyramid.s UpdatePyramidLightRadius +081a975c battle_pyramid.s ClearPyramidPartyHeldItems +081a97c8 battle_pyramid.s SetPyramidFloorPalette +081a97dc battle_pyramid.s Task_SetPyramidFloorPalette +081a9828 battle_pyramid.s sub_81A9828 +081a9834 battle_pyramid.s RestorePyramidPlayerParty +081a9998 battle_pyramid.s GetPostBattleDirectionHintTextIndex +081a9aa8 battle_pyramid.s LocalIdToPyramidTrainerId +081a9ac4 battle_pyramid.s GetBattlePyramidTrainerFlag +081a9b04 battle_pyramid.s MarkApproachingPyramidTrainersAsBattled +081a9b44 battle_pyramid.s MarkPyramidTrainerAsBattled +081a9c04 battle_pyramid.s GenerateBattlePyramidWildMon +081a9e28 battle_pyramid.s GetPyramidRunMultiplier +081a9e40 battle_pyramid.s InBattlePyramid +081a9e6c battle_pyramid.s InBattlePyramid_ +081a9e90 battle_pyramid.s sub_81A9E90 +081a9ec8 battle_pyramid.s SoftResetInBattlePyramid +081a9edc battle_pyramid.s CopyPyramidTrainerSpeechBefore +081a9efc battle_pyramid.s CopyPyramidTrainerWinSpeech +081a9f1c battle_pyramid.s CopyPyramidTrainerLoseSpeech +081a9f3c battle_pyramid.s GetBattlePyramindTrainerEncounterMusicId +081a9f80 battle_pyramid.s sub_81A9F80 +081a9f90 battle_pyramid.s GetUniqueTrainerId +081aa078 battle_pyramid.s GenerateBattlePyramidFloorLayout +081aa1d8 battle_pyramid.s LoadBattlePyramidEventObjectTemplates +081aa2f8 battle_pyramid.s LoadBattlePyramidFloorEventObjectScripts +081aa33c battle_pyramid.s GetPyramidEntranceAndExitSquareIds +081aa398 battle_pyramid.s SetPyramidObjectPositionsUniformly +081aa4d8 battle_pyramid.s SetPyramidObjectPositionsInAndNearSquare +081aa648 battle_pyramid.s SetPyramidObjectPositionsNearSquare +081aa760 battle_pyramid.s TrySetPyramidEventObjectPositionInSquare +081aa810 battle_pyramid.s TrySetPyramidEventObjectPositionAtCoords +081aa96c battle_pyramid.s GetPyramidFloorLayoutOffsets +081aa9e4 battle_pyramid.s GetPyramidFloorTemplateId +081aaa40 battle_pyramid.s GetNumBattlePyramidEventObjects +081aaa7c battle_pyramid.s InitPyramidBagItems +081aaae0 battle_pyramid.s GetBattlePyramidPickupItemId +081aab70 item_menu.s ResetBagScrollPositions +081aab9c item_menu.s CB2_BagMenuFromStartMenu +081aabb0 item_menu.s sub_81AABB0 +081aabdc item_menu.s CB2_ChooseBerry +081aabf0 item_menu.s sub_81AABF0 +081aac00 item_menu.s CB2_GoToSellMenu +081aac14 item_menu.s sub_81AAC14 +081aac28 item_menu.s sub_81AAC28 +081aac50 item_menu.s sub_81AAC50 +081aac70 item_menu.s sub_81AAC70 +081aac90 item_menu.s GoToBagMenu +081aad5c item_menu.s c2_bag_3 +081aad78 item_menu.s vblank_cb_bag_menu +081aad8c item_menu.s CB2_Bag +081aadb8 item_menu.s SetupBagMenu +081ab050 item_menu.s BagMenu_InitBGs +081ab0bc item_menu.s LoadBagMenu_Graphics +081ab1f0 item_menu.s sub_81AB1F0 +081ab218 item_menu.s AllocateBagItemListBuffers +081ab240 item_menu.s LoadBagItemListBuffers +081ab39c item_menu.s GetItemName +081ab450 item_menu.s BagMenu_MoveCursorCallback +081ab520 item_menu.s PrintItemQuantityPlusGFX +081ab6b0 item_menu.s BagMenu_PrintDescription +081ab73c item_menu.s BagMenu_PrintCursor_ +081ab75c item_menu.s BagMenu_PrintCursor +081ab7bc item_menu.s bag_menu_add_pocket_scroll_arrow_indicators_maybe +081ab824 item_menu.s sub_81AB824 +081ab854 item_menu.s bag_menu_add_list_scroll_arrow_indicators_maybe +081ab89c item_menu.s sub_81AB89C +081ab8c8 item_menu.s FreeBagItemListBuffers +081ab8f8 item_menu.s unknown_ItemMenu_Confirm +081ab930 item_menu.s TaskCloseBagMenu_2 +081ab9a8 item_menu.s sub_81AB9A8 +081aba6c item_menu.s sub_81ABA6C +081aba88 item_menu.s SetInitialScrollAndCursorPositions +081abac4 item_menu.s SetPocketListPositions +081abae0 item_menu.s sub_81ABAE0 +081abb2c item_menu.s GetItemListPosition +081abb4c item_menu.s DisplayItemMessage +081abbbc item_menu.s BagMenu_InitListsMenu +081abc3c item_menu.s sub_81ABC3C +081abc54 item_menu.s PrintItemDepositAmount +081abcc0 item_menu.s sub_81ABCC0 +081abd28 item_menu.s Task_BagMenu +081abecc item_menu.s set_callback3_to_bag +081abf10 item_menu.s GetSwitchBagPocketDirection +081abf70 item_menu.s ChangeBagPocketId +081abfa8 item_menu.s SwitchBagPocket +081ac10c item_menu.s sub_81AC10C +081ac23c item_menu.s sub_81AC23C +081ac26c item_menu.s BagMenu_DrawPocketIndicatorSquare +081ac2c0 item_menu.s sub_81AC2C0 +081ac2e8 item_menu.s BagMenu_SwapItems +081ac3c0 item_menu.s sub_81AC3C0 +081ac498 item_menu.s sub_81AC498 +081ac590 item_menu.s sub_81AC590 +081ac644 item_menu.s sub_81AC644 +081acaf8 item_menu.s sub_81ACAF8 +081acb54 item_menu.s sub_81ACB54 +081acbb0 item_menu.s unknown_item_menu_type +081acc04 item_menu.s Task_HandleInBattleItemMenuInput +081acc78 item_menu.s Task_HandleOutOfBattleItemMenuInput +081acdfc item_menu.s sub_81ACDFC +081ace38 item_menu.s BagMenu_RemoveSomeWindow +081ace7c item_menu.s ItemMenu_UseOutOfBattle +081acef4 item_menu.s ItemMenu_Toss +081acf88 item_menu.s BagMenu_TossItems +081ad010 item_menu.s BagMenu_CancelToss +081ad044 item_menu.s Task_ChooseHowManyToToss +081ad0cc item_menu.s BagMenu_ConfirmToss +081ad150 item_menu.s Task_ActuallyToss +081ad1ec item_menu.s ItemMenu_Register +081ad278 item_menu.s ItemMenu_Give +081ad2f0 item_menu.s BagMenu_PrintThereIsNoPokemon +081ad30c item_menu.s BagMenu_PrintItemCantBeHeld +081ad350 item_menu.s sub_81AD350 +081ad378 item_menu.s ItemMenu_CheckTag +081ad398 item_menu.s ItemMenu_Cancel +081ad3dc item_menu.s ItemMenu_UseInBattle +081ad40c item_menu.s bag_menu_mail_related +081ad41c item_menu.s item_menu_type_2 +081ad4b4 item_menu.s item_menu_type_b +081ad520 item_menu.s UseRegisteredKeyItemOnField +081ad5dc item_menu.s DisplaySellItemAskString +081ad680 item_menu.s sub_81AD680 +081ad6e4 item_menu.s sub_81AD6E4 +081ad6fc item_menu.s BagMenu_CancelSell +081ad730 item_menu.s sub_81AD730 +081ad794 item_menu.s sub_81AD794 +081ad84c item_menu.s BagMenu_ConfirmSell +081ad8c8 item_menu.s sub_81AD8C8 +081ad9c0 item_menu.s sub_81AD9C0 +081ad9ec item_menu.s DisplayDepositItemAskString +081ada7c item_menu.s sub_81ADA7C +081adb14 item_menu.s sub_81ADB14 +081adc0c item_menu.s sub_81ADC0C +081adc54 item_menu.s IsWallysBag +081adc70 item_menu.s PrepareBagForWallyTutorial +081add00 item_menu.s RestoreBagAfterWallyTutorial +081add70 item_menu.s DoWallyTutorialBagMenu +081add98 item_menu.s Task_WallyTutorialBagMenu +081ade38 item_menu.s unknown_ItemMenu_Show +081ade6c item_menu.s bag_menu_leave_maybe_3 +081ade8c item_menu.s unknown_ItemMenu_Give2 +081adebc item_menu.s bag_menu_leave_maybe_2 +081adedc item_menu.s unknown_ItemMenu_Confirm2 +081adf00 item_menu.s bag_menu_leave_maybe +081adf20 item_menu.s BagMenu_PrintPocketNames +081adff8 item_menu.s BagMenu_CopyPocketNameToWindow +081ae054 item_menu.s SetupBagMenu_Textboxes +081ae0bc item_menu.s BagMenu_Print +081ae124 item_menu.s sub_81AE124 +081ae13c item_menu.s BagMenu_AddWindow +081ae184 item_menu.s BagMenu_RemoveWindow +081ae1c4 item_menu.s AddItemMessageWindow +081ae1f8 item_menu.s bag_menu_RemoveBagItem_message_window +081ae238 item_menu.s BagMenu_YesNo +081ae268 item_menu.s bag_menu_AddMoney_window +081ae2a4 item_menu.s bag_menu_remove_money_window +081ae2b4 item_menu.s BagMenu_PrepareTMHMMoveWindow +081ae2fc item_menu.s PrintTMHMMoveData +081ae458 list_menu.s ListMenuDummyTask +081ae45c list_menu.s DoMysteryGiftListMenu +081ae584 list_menu.s ListMenuInit +081ae5b0 list_menu.s ListMenuInitInRect +081ae604 list_menu.s ListMenu_ProcessInput +081ae6c8 list_menu.s DestroyListMenuTask +081ae70c list_menu.s RedrawListMenu +081ae750 list_menu.s ChangeListMenuPals +081ae794 list_menu.s ChangeListMenuCoords +081ae7d0 list_menu.s ListMenuTestInput +081ae838 list_menu.s ListMenuGetCurrentItemArrayId +081ae860 list_menu.s ListMenuGetScrollAndRow +081ae88c list_menu.s ListMenuGetYCoordForPrintingArrowCursor +081ae8d4 list_menu.s ListMenuInitInternal +081ae9b4 list_menu.s ListMenuPrint +081aea68 list_menu.s ListMenuPrintEntries +081aeb20 list_menu.s ListMenuDrawCursor +081aec18 list_menu.s ListMenuAddCursorObject +081aec78 list_menu.s ListMenuErasePrintedCursor +081aed00 list_menu.s ListMenuUpdateSelectedRowIndexAndScrollOffset +081aedf0 list_menu.s ListMenuScroll +081aef28 list_menu.s ListMenuChangeSelection +081af000 list_menu.s ListMenuCallSelectionChangedCallback +081af028 list_menu.s ListMenuOverrideSetColors +081af078 list_menu.s ListMenuDefaultCursorMoveFunc +081af08c list_menu.s ListMenuGetUnkIndicatorsStructFields +081af15c list_menu.s ListMenuSetUnkIndicatorsStructField +081af264 list_menu.s SpriteCallback_ScrollIndicatorArrow +081af2f0 list_menu.s AddScrollIndicatorArrowObject +081af380 list_menu.s AddScrollIndicatorArrowPair +081af4a0 list_menu.s AddScrollIndicatorArrowPairParameterized +081af504 list_menu.s Task_ScrollIndicatorArrowPair +081af59c list_menu.s Task_ScrollIndicatorArrowPairOnMainMenu +081af620 list_menu.s RemoveScrollIndicatorArrowPair +081af680 list_menu.s ListMenuAddCursorObjectInternal +081af69c list_menu.s ListMenuUpdateCursorObject +081af6c4 list_menu.s ListMenuRemoveCursorObject +081af6e4 list_menu.s Task_RedOutlineCursor +081af6e8 list_menu.s ListMenuGetRedOutlineCursorSpriteCount +081af724 list_menu.s ListMenuSetUpRedOutlineCursorSpriteOamTable +081af828 list_menu.s ListMenuAddRedOutlineCursorObject +081af994 list_menu.s ListMenuUpdateRedOutlineCursorObject +081af9d8 list_menu.s ListMenuRemoveRedOutlineCursorObject +081afa30 list_menu.s SpriteCallback_RedArrowCursor +081afa5c list_menu.s Task_RedArrowCursor +081afa60 list_menu.s ListMenuAddRedArrowCursorObject +081afb68 list_menu.s ListMenuUpdateRedArrowCursorObject +081afba0 list_menu.s ListMenuRemoveRedArrowCursorObject +081afbf0 dynamic_placeholder_text_util.s DynamicPlaceholderTextUtil_Reset +081afc0c dynamic_placeholder_text_util.s DynamicPlaceholderTextUtil_SetPlaceholderPtr +081afc28 dynamic_placeholder_text_util.s DynamicPlaceholderTextUtil_ExpandPlaceholders +081afc74 dynamic_placeholder_text_util.s DynamicPlaceholderTextUtil_GetPlaceholderPtr +081afc84 save_location.s IsCurMapInLocationList +081afccc save_location.s IsCurMapPokeCenter +081afcdc save_location.s IsCurMapReloadLocation +081afcec save_location.s sub_81AFCEC +081afcfc save_location.s TrySetPokeCenterWarpStatus +081afd2c save_location.s TrySetReloadWarpStatus +081afd5c save_location.s sub_81AFD5C +081afd8c save_location.s TrySetMapSaveWarpStatus +081afda0 save_location.s sub_81AFDA0 +081afdd0 save_location.s sub_81AFDD0 +081afde4 item_icon.s AllocItemIconTemporaryBuffers +081afe24 item_icon.s FreeItemIconTemporaryBuffers +081afe44 item_icon.s CopyItemIconPicTo4x4Buffer +081afe70 item_icon.s AddItemIconSprite +081aff34 item_icon.s AddCustomItemIconSprite +081afffc item_icon.s GetItemIconPicOrPalette +081b0038 party_menu.s InitPartyMenu +081b01b0 party_menu.s PartyMenuCallback +081b01cc party_menu.s PartyMenuVBlankCallback +081b01e0 party_menu.s PartyMenuInitCallback +081b020c party_menu.s PartyMenuSetup +081b04bc party_menu.s PartyMenuExit +081b04f8 party_menu.s PartyMenuExitTask +081b052c party_menu.s reset_brm +081b0550 party_menu.s AllocPartyMenuBg +081b05c8 party_menu.s AllocPartyMiscGfx +081b06c0 party_menu.s PartyPaletteBufferCopy +081b06f4 party_menu.s FreePartyPointers +081b0740 party_menu.s PartyMenuInitHelperStructs +081b07e0 party_menu.s RenderPartyMenuBox +081b0948 party_menu.s DisplayPartyPokemonData +081b0a10 party_menu.s DisplayPartyPokemonSelectData +081b0a9c party_menu.s DisplayPartyPokemonSelectForBattle +081b0b08 party_menu.s DisplayPartyPokemonSelectForContest +081b0b60 party_menu.s DisplayPartyPokemonSelectForRelearner +081b0b98 party_menu.s sub_81B0B98 +081b0bc4 party_menu.s DisplayPartyPokemonSelectHeldItemRelated +081b0bfc party_menu.s sub_81B0BFC +081b0c94 party_menu.s DisplayPartyPokemonSelectToTeachMove +081b0cec party_menu.s sub_81B0CEC +081b0da0 party_menu.s RenderPartyMenuBoxes +081b0dd4 party_menu.s GetPartyMiscGraphicsTile +081b0de8 party_menu.s party_menu_add_per_mon_objects_internal +081b0ef4 party_menu.s party_menu_add_per_mon_objects +081b0f28 party_menu.s sub_81B0F28 +081b0fcc party_menu.s sub_81B0FCC +081b10f8 party_menu.s GetPartyBoxPalBitfield +081b118c party_menu.s PartyBoxPal_ParnterOrDisqualifiedInArena +081b120c party_menu.s sub_81B120C +081b1250 party_menu.s IsMultiBattle +081b1288 party_menu.s sub_81B1288 +081b12c0 party_menu.s sub_81B12C0 +081b12f8 party_menu.s c3_0811FAB4 +081b1354 party_menu.s GetCursorSelectionMonId +081b1360 party_menu.s sub_81B1360 +081b1370 party_menu.s sub_81B1370 +081b13ec party_menu.s sub_81B13EC +081b140c party_menu.s sub_81B140C +081b15a4 party_menu.s sub_81B15A4 +081b15d0 party_menu.s sub_81B15D0 +081b1660 party_menu.s sub_81B1660 +081b16d4 party_menu.s sub_81B16D4 +081b1708 party_menu.s sub_81B1708 +081b1760 party_menu.s PartyMenuButtonHandler +081b17f8 party_menu.s UpdateCurrentPartySelection +081b1854 party_menu.s SetNewPartySelectTarget1 +081b195c party_menu.s SetNewPartySelectTarget2 +081b1b00 party_menu.s sub_81B1B00 +081b1b44 party_menu.s GetMonNickname +081b1b5c party_menu.s sub_81B1B5C +081b1b8c party_menu.s sub_81B1B8C +081b1bd4 party_menu.s sub_81B1BD4 +081b1be8 party_menu.s sub_81B1BE8 +081b1c1c party_menu.s sub_81B1C1C +081b1c84 party_menu.s sub_81B1C84 +081b1cd0 party_menu.s sub_81B1CD0 +081b1d1c party_menu.s sub_81B1D1C +081b1d68 party_menu.s sub_81B1D68 +081b1db8 party_menu.s sub_81B1DB8 +081b1e00 party_menu.s TryTakeMonItem +081b1e48 party_menu.s pokemon_item_not_removed +081b1e60 party_menu.s sub_81B1E60 +081b1f18 party_menu.s sub_81B1F18 +081b1fa8 party_menu.s sub_81B1FA8 +081b2014 party_menu.s pokemon_ailments_get_primary +081b205c party_menu.s GetMonAilment +081b209c party_menu.s sub_81B209C +081b2134 party_menu.s sub_81B2134 +081b2164 party_menu.s sub_81B2164 +081b218c party_menu.s sub_81B218C +081b21ac party_menu.s sub_81B21AC +081b2210 party_menu.s sub_81B2210 +081b2248 party_menu.s sub_81B2248 +081b227c party_menu.s sub_81B227C +081b22d8 party_menu.s CanMonLearnTMTutor +081b2360 party_menu.s GetTutorMove +081b2370 party_menu.s CanLearnTutorMove +081b239c party_menu.s sub_81B239C +081b2428 party_menu.s sub_81B2428 +081b2564 party_menu.s GetPartyMenuPaletteFromBuffer +081b2578 party_menu.s BlitBitmapToPartyWindow +081b2658 party_menu.s BlitBitmapToPartyWindow_Default1 +081b26bc party_menu.s BlitBitmapToPartyWindow_Default2 +081b2720 party_menu.s DrawEmptySlot +081b2748 party_menu.s UpdateSelectedPartyBox +081b2a3c party_menu.s DisplayPartyPokemonBarDetail +081b2a70 party_menu.s DisplayPartyPokemonNickname +081b2ac8 party_menu.s DisplayPartyPokemonLevelCheck +081b2b40 party_menu.s DisplayPartyPokemonLevel +081b2b8c party_menu.s DisplayPartyPokemonGenderNidoranCheck +081b2bf4 party_menu.s DisplayPartyPokemonGender +081b2cd4 party_menu.s DisplayPartyPokemonHPCheck +081b2d3c party_menu.s DisplayPartyPokemonHP +081b2d74 party_menu.s DisplayPartyPokemonMaxHPCheck +081b2ddc party_menu.s DisplayPartyPokemonMaxHP +081b2e28 party_menu.s DisplayPartyPokemonHPBarCheck +081b2e64 party_menu.s DisplayPartyPokemonHPBar +081b2fa8 party_menu.s DisplayPartyPokemonOtherText +081b302c party_menu.s sub_81B302C +081b3054 party_menu.s display_pokemon_menu_message +081b314c party_menu.s sub_81B314C +081b31b0 party_menu.s sub_81B31B0 +081b3300 party_menu.s sub_81B3300 +081b334c party_menu.s sub_81B334C +081b3364 party_menu.s sub_81B3364 +081b3394 party_menu.s sub_81B3394 +081b33b4 party_menu.s sub_81B33B4 +081b3414 party_menu.s CreateActionList +081b353c party_menu.s sub_81B353C +081b3608 party_menu.s sub_81B3608 +081b36fc party_menu.s sub_81B36FC +081b3730 party_menu.s HandleMenuInput +081b37fc party_menu.s CursorCb_Summary +081b3828 party_menu.s sub_81B3828 +081b3894 party_menu.s sub_81B3894 +081b38dc party_menu.s CursorCb_Switch +081b3938 party_menu.s sub_81B3938 +081b3ad8 party_menu.s sub_81B3AD8 +081b3b40 party_menu.s sub_81B3B40 +081b3c0c party_menu.s sub_81B3C0C +081b3c60 party_menu.s sub_81B3C60 +081b3cc0 party_menu.s sub_81B3CC0 +081b3d48 party_menu.s sub_81B3D48 +081b3e60 party_menu.s sub_81B3E60 +081b3f10 party_menu.s oamt_swap_pos +081b3fdc party_menu.s swap_pokemon_and_oams +081b407c party_menu.s sub_81B407C +081b40d4 party_menu.s CursorCb_Cancel1 +081b4134 party_menu.s CursorCb_Item +081b4198 party_menu.s CursorCb_Give +081b41c4 party_menu.s sub_81B41C4 +081b41f0 party_menu.s c2_8123744 +081b42d0 party_menu.s sub_81B42D0 +081b4350 party_menu.s sub_81B4350 +081b43a8 party_menu.s sub_81B43A8 +081b43dc party_menu.s sub_81B43DC +081b44fc party_menu.s sub_81B44FC +081b452c party_menu.s sub_81B452C +081b4578 party_menu.s sub_81B4578 +081b4624 party_menu.s sub_81B4624 +081b469c party_menu.s sub_81B469C +081b4724 party_menu.s CursorCb_TakeItem +081b47e0 party_menu.s CursorCb_Toss +081b48a8 party_menu.s sub_81B48A8 +081b48dc party_menu.s sub_81B48DC +081b4988 party_menu.s sub_81B4988 +081b4a08 party_menu.s CursorCb_Mail +081b4a6c party_menu.s CursorCb_Read +081b4a98 party_menu.s sub_81B4A98 +081b4ae0 party_menu.s sub_81B4AE0 +081b4b20 party_menu.s CursorCb_TakeMail +081b4b6c party_menu.s sub_81B4B6C +081b4ba0 party_menu.s sub_81B4BA0 +081b4c60 party_menu.s sub_81B4C60 +081b4c94 party_menu.s sub_81B4C94 +081b4d78 party_menu.s CursorCb_Cancel2 +081b4e2c party_menu.s CursorCb_SendMon +081b4e8c party_menu.s CursorCb_Enter +081b4f88 party_menu.s sub_81B4F88 +081b4fa8 party_menu.s CursorCb_NoEntry +081b50ac party_menu.s CursorCb_Store +081b50c8 party_menu.s CursorCb_Register +081b51d4 party_menu.s CursorCb_Trade1 +081b52e4 party_menu.s CursorCb_Trade2 +081b53fc party_menu.s sub_81B53FC +081b5430 party_menu.s sub_81B5430 +081b5470 party_menu.s CursorCb_FieldMove +081b5674 party_menu.s sub_81B5674 +081b56a4 party_menu.s sub_81B56A4 +081b56d8 party_menu.s sub_81B56D8 +081b5738 party_menu.s FieldCallback_PrepareFadeInFromMenu +081b5750 party_menu.s task_launch_hm_phase_2 +081b578c party_menu.s brm_get_selected_species +081b57b4 party_menu.s task_brm_cancel_1_on_keypad_a_or_b +081b57dc party_menu.s sub_81B57DC +081b5804 party_menu.s hm_surf_run_dp02scr +081b5820 party_menu.s SetUpFieldMove_Surf +081b5864 party_menu.s sub_81B5864 +081b5884 party_menu.s SetUpFieldMove_Fly +081b58a8 party_menu.s sub_81B58A8 +081b58d4 party_menu.s hm2_waterfall +081b58f0 party_menu.s SetUpFieldMove_Waterfall +081b5958 party_menu.s sub_81B5958 +081b5974 party_menu.s SetUpFieldMove_Dive +081b59b4 party_menu.s party_menu_icon_anim +081b5a2c party_menu.s party_menu_link_mon_icon_anim +081b5a8c party_menu.s sub_81B5A8C +081b5b38 party_menu.s sub_81B5B38 +081b5b6c party_menu.s AnimateSelectedPartyIcon +081b5bdc party_menu.s UpdatePartyMonIconFrameAndBounce +081b5c08 party_menu.s UpdatePartyMonIconFrame +081b5c14 party_menu.s party_menu_held_item_object +081b5c48 party_menu.s party_menu_link_mon_held_item_object +081b5c94 party_menu.s sub_81B5C94 +081b5cb0 party_menu.s sub_81B5CB0 +081b5d30 party_menu.s LoadHeldItemIcons +081b5d4c party_menu.s sub_81B5D4C +081b5df0 party_menu.s sub_81B5DF0 +081b5e74 party_menu.s SpriteCB_HeldItem +081b5ecc party_menu.s party_menu_pokeball_object +081b5ef4 party_menu.s party_menu_link_mon_pokeball_object +081b5f34 party_menu.s sub_81B5F34 +081b5f74 party_menu.s sub_81B5F74 +081b5f98 party_menu.s sub_81B5F98 +081b5fbc party_menu.s sub_81B5FBC +081b6040 party_menu.s LoadPartyMenuPokeballGfx +081b6064 party_menu.s party_menu_status_condition_object +081b6098 party_menu.s party_menu_link_mon_status_condition_object +081b60e4 party_menu.s party_menu_get_status_condition_and_update_object +081b60fc party_menu.s party_menu_update_status_condition_object +081b6160 party_menu.s LoadPartyMenuAilmentGfx +081b617c party_menu.s sub_81B617C +081b6254 party_menu.s c2_815ABFC +081b6280 party_menu.s sub_81B6280 +081b62d0 party_menu.s IsHPRecoveryItem +081b6310 party_menu.s GetMedicineItemEffectMessage +081b64d0 party_menu.s UsingHPEVItemOnShedinja +081b6504 party_menu.s IsItemFlute +081b6520 party_menu.s ExecuteTableBasedItemEffect__ +081b6588 party_menu.s ItemUseCB_Medicine +081b672c party_menu.s sub_81B672C +081b6794 party_menu.s sub_81B6794 +081b67c8 party_menu.s sub_81B67C8 +081b691c party_menu.s ItemEffectToMonEv +081b699c party_menu.s ItemEffectToStatString +081b6a10 party_menu.s sub_81B6A10 +081b6ab4 party_menu.s ether_effect_related_3 +081b6afc party_menu.s dp05_ether +081b6b80 party_menu.s ether_effect_related_2 +081b6bb4 party_menu.s sub_81B6BB4 +081b6bec party_menu.s ether_effect_related +081b6cc0 party_menu.s dp05_pp_up +081b6cfc party_menu.s ItemIdToBattleMoveId +081b6d14 party_menu.s IsMoveHm +081b6d44 party_menu.s MonKnowsMove +081b6d74 party_menu.s sub_81B6D74 +081b6d98 party_menu.s sub_81B6D98 +081b6dc4 party_menu.s sub_81B6DC4 +081b6eb4 party_menu.s sub_81B6EB4 +081b6f60 party_menu.s sub_81B6F60 +081b6f98 party_menu.s sub_81B6F98 +081b6ff4 party_menu.s sub_81B6FF4 +081b7028 party_menu.s sub_81B7028 +081b7088 party_menu.s sub_81B7088 +081b70b8 party_menu.s sub_81B70B8 +081b70f0 party_menu.s sub_81B70F0 +081b711c party_menu.s sub_81B711C +081b7154 party_menu.s sub_81B7154 +081b71d4 party_menu.s sub_81B71D4 +081b7230 party_menu.s sub_81B7230 +081b7294 party_menu.s sub_81B7294 +081b72c8 party_menu.s sub_81B72C8 +081b73e4 party_menu.s sub_81B73E4 +081b7404 party_menu.s dp05_rare_candy +081b754c party_menu.s sub_81B754C +081b75d4 party_menu.s sub_81B75D4 +081b7634 party_menu.s sub_81B7634 +081b767c party_menu.s sub_81B767C +081b76c8 party_menu.s sub_81B76C8 +081b7704 party_menu.s sub_81B7704 +081b77ac party_menu.s sub_81B77AC +081b7810 party_menu.s sub_81B7810 +081b787c party_menu.s sub_81B787C +081b7910 party_menu.s sub_81B7910 +081b79a0 party_menu.s sub_81B79A0 +081b79e8 party_menu.s sub_81B79E8 +081b7a28 party_menu.s sub_81B7A28 +081b7b4c party_menu.s task_sacred_ash_party_loop +081b7c10 party_menu.s sub_81B7C10 +081b7c74 party_menu.s sub_81B7C74 +081b7cec party_menu.s GetItemEffectType +081b7e4c party_menu.s sub_81B7E4C +081b7f34 party_menu.s CB2_PartyMenuFromStartMenu +081b7f60 party_menu.s sub_81B7F60 +081b7fac party_menu.s sub_81B7FAC +081b8044 party_menu.s sub_81B8044 +081b8088 party_menu.s sub_81B8088 +081b8104 party_menu.s sub_81B8104 +081b814c party_menu.s sub_81B814C +081b81a8 party_menu.s sub_81B81A8 +081b8230 party_menu.s sub_81B8230 +081b82a0 party_menu.s sub_81B82A0 +081b82d4 party_menu.s sub_81B82D4 +081b83b8 party_menu.s sub_81B83B8 +081b83f0 party_menu.s sub_81B83F0 +081b841c party_menu.s sub_81B841C +081b8448 party_menu.s sub_81B8448 +081b8474 party_menu.s sub_81B8474 +081b8518 party_menu.s InitChooseHalfPartyForBattle +081b8558 party_menu.s sub_81B8558 +081b856c party_menu.s sub_81B856C +081b85ac party_menu.s GetBattleEntryEligibility +081b865c party_menu.s sub_81B865C +081b8770 party_menu.s sub_81B8770 +081b879c party_menu.s sub_81B879C +081b87e8 party_menu.s sub_81B87E8 +081b8830 party_menu.s sub_81B8830 +081b885c party_menu.s sub_81B885C +081b8888 party_menu.s sub_81B8888 +081b88bc party_menu.s sub_81B88BC +081b8904 party_menu.s sub_81B8904 +081b892c party_menu.s sub_81B892C +081b8958 party_menu.s sub_81B8958 +081b8984 party_menu.s sub_81B8984 +081b89ac party_menu.s OpenPartyMenuInBattle +081b89f0 party_menu.s sub_81B89F0 +081b8a2c party_menu.s sub_81B8A2C +081b8a7c party_menu.s sub_81B8A7C +081b8c68 party_menu.s sub_81B8C68 +081b8c88 party_menu.s sub_81B8C88 +081b8d64 party_menu.s sub_81B8D64 +081b8d88 party_menu.s sub_81B8D88 +081b8e80 party_menu.s sub_81B8E80 +081b8f38 party_menu.s sub_81B8F38 +081b8f6c party_menu.s sub_81B8F6C +081b8fb0 party_menu.s sub_81B8FB0 +081b8fec party_menu.s pokemon_order_func +081b9030 party_menu.s pokemon_change_order +081b9080 party_menu.s sub_81B9080 +081b90d0 party_menu.s sub_81B90D0 +081b9140 party_menu.s sub_81B9140 +081b9150 party_menu.s sub_81B9150 +081b917c party_menu.s sub_81B917C +081b91b4 party_menu.s sub_81B91B4 +081b9240 party_menu.s sub_81B9240 +081b9270 party_menu.s sub_81B9270 +081b9294 party_menu.s sub_81B9294 +081b9328 party_menu.s sub_81B9328 +081b9354 party_menu.s sub_81B9354 +081b9390 party_menu.s sub_81B9390 +081b93c8 party_menu.s hm_add_c3_without_phase_2 +081b93e0 party_menu.s task_hm_without_phase_2 +081b9404 party_menu.s sub_81B9404 +081b9424 party_menu.s sub_81B9424 +081b9470 party_menu.s sub_81B9470 +081b94b0 party_menu.s sub_81B94B0 +081b94d0 party_menu.s sub_81B94D0 +081b951c party_menu.s sub_81B951C +081b953c party_menu.s sub_81B953C +081b9588 party_menu.s sub_81B9588 +081b95e0 party_menu.s sub_81B95E0 +081b9620 party_menu.s sub_81B9620 +081b9640 party_menu.s sub_81B9640 +081b968c party_menu.s sub_81B968C +081b96d0 party_menu.s sub_81B96D0 +081b9718 party_menu.s sub_81B9718 +081b9770 party_menu.s sub_81B9770 +081b97dc party_menu.s sub_81B97DC +081b98dc party_menu.s sub_81B98DC +081b9918 party_menu.s sub_81B9918 +081b99b4 battle_tent.s sub_81B99B4 +081b99d4 battle_tent.s sub_81B99D4 +081b9a28 battle_tent.s sub_81B9A28 +081b9a44 battle_tent.s sub_81B9A44 +081b9a60 battle_tent.s sub_81B9A60 +081b9a90 battle_tent.s sub_81B9A90 +081b9abc battle_tent.s sub_81B9ABC +081b9b00 battle_tent.s sub_81B9B00 +081b9b28 battle_tent.s sub_81B9B28 +081b9b80 battle_tent.s sub_81B9B80 +081b9ba0 battle_tent.s sub_81B9BA0 +081b9bf4 battle_tent.s sub_81B9BF4 +081b9c10 battle_tent.s sub_81B9C10 +081b9c2c battle_tent.s sub_81B9C2C +081b9c70 battle_tent.s sub_81B9C70 +081b9c98 battle_tent.s sub_81B9C98 +081b9cf0 battle_tent.s sub_81B9CF0 +081b9d08 battle_tent.s sub_81B9D08 +081b9d28 battle_tent.s sub_81B9D28 +081b9d7c battle_tent.s sub_81B9D7C +081b9d98 battle_tent.s sub_81B9D98 +081b9db4 battle_tent.s sub_81B9DB4 +081b9df8 battle_tent.s sub_81B9DF8 +081b9e20 battle_tent.s sub_81B9E20 +081b9e78 battle_tent.s sub_81B9E78 +081b9e88 battle_tent.s sub_81B9E88 +081b9e94 battle_tent.s InSlateportBattleTent +081b9ec0 battle_tent.s sub_81B9EC0 +081ba040 battle_tent.s sub_81BA040 +081ba250 unk_text_util_2.s Font6Func +081ba668 unk_text_util_2.s DecompressGlyphFont6 +081ba6cc unk_text_util_2.s GetGlyphWidthFont6 +081ba6d0 multiboot.s MultiBootInit +081ba70c multiboot.s MultiBootMain +081baafc multiboot.s MultiBootSend +081bab48 multiboot.s MultiBootStartProbe +081bab6c multiboot.s MultiBootStartMaster +081bac30 multiboot.s MultiBootCheckComplete +081bac44 multiboot.s MultiBootHandShake +081bad30 multiboot.s MultiBootWaitCycles +081bad48 multiboot.s MultiBootWaitSendDone +081bad84 unk_81BAD84.s sub_81BAD84 +081badf0 battle_controller_player_partner.s nullsub_77 +081badf4 battle_controller_player_partner.s SetControllerToPlayerPartner +081bae10 battle_controller_player_partner.s PlayerPartnerBufferRunCommand +081bae60 battle_controller_player_partner.s CompleteOnBattlerSpriteCallbackDummy +081bae98 battle_controller_player_partner.s sub_81BAE98 +081baf00 battle_controller_player_partner.s sub_81BAF00 +081baf48 battle_controller_player_partner.s sub_81BAF48 +081bb02c battle_controller_player_partner.s sub_81BB02C +081bb1d4 battle_controller_player_partner.s sub_81BB1D4 +081bb214 battle_controller_player_partner.s CompleteOnHealthbarDone +081bb284 battle_controller_player_partner.s CompleteOnInactiveTextPrinter +081bb29c battle_controller_player_partner.s Task_GiveExpToMon +081bb414 battle_controller_player_partner.s Task_PrepareToGiveExpWithExpBar +081bb4e4 battle_controller_player_partner.s sub_81BB4E4 +081bb628 battle_controller_player_partner.s sub_81BB628 +081bb688 battle_controller_player_partner.s sub_81BB688 +081bb740 battle_controller_player_partner.s DestroyExpTaskAndCompleteOnInactiveTextPrinter +081bb78c battle_controller_player_partner.s sub_81BB78C +081bb828 battle_controller_player_partner.s sub_81BB828 +081bb898 battle_controller_player_partner.s CompleteOnInactiveTextPrinter2 +081bb8b0 battle_controller_player_partner.s DoHitAnimBlinkSpriteEffect +081bb92c battle_controller_player_partner.s sub_81BB92C +081bb9a0 battle_controller_player_partner.s sub_81BB9A0 +081bb9f4 battle_controller_player_partner.s sub_81BB9F4 +081bbae8 battle_controller_player_partner.s sub_81BBAE8 +081bbb8c battle_controller_player_partner.s PlayerPartnerBufferExecCompleted +081bbc04 battle_controller_player_partner.s CompleteOnFinishedStatusAnimation +081bbc34 battle_controller_player_partner.s CompleteOnFinishedBattleAnimation +081bbc64 battle_controller_player_partner.s PlayerPartnerHandleGetMonData +081bbcd8 battle_controller_player_partner.s CopyPlayerPartnerMonData +081bc484 battle_controller_player_partner.s PlayerPartnerHandleGetRawMonData +081bc490 battle_controller_player_partner.s PlayerPartnerHandleSetMonData +081bc4e8 battle_controller_player_partner.s SetPlayerPartnerMonData +081bcee4 battle_controller_player_partner.s PlayerPartnerHandleSetRawMonData +081bcf58 battle_controller_player_partner.s PlayerPartnerHandleLoadMonSprite +081bd074 battle_controller_player_partner.s PlayerPartnerHandleSwitchInAnim +081bd0e4 battle_controller_player_partner.s sub_81BD0E4 +081bd260 battle_controller_player_partner.s PlayerPartnerHandleReturnMonToBall +081bd2f0 battle_controller_player_partner.s DoSwitchOutAnimation +081bd37c battle_controller_player_partner.s PlayerPartnerHandleDrawTrainerPic +081bd5bc battle_controller_player_partner.s PlayerPartnerHandleTrainerSlide +081bd5c8 battle_controller_player_partner.s PlayerPartnerHandleTrainerSlideBack +081bd674 battle_controller_player_partner.s PlayerPartnerHandleFaintAnimation +081bd760 battle_controller_player_partner.s PlayerPartnerHandlePaletteFade +081bd76c battle_controller_player_partner.s PlayerPartnerHandleSuccessBallThrowAnim +081bd778 battle_controller_player_partner.s PlayerPartnerHandleBallThrowAnim +081bd784 battle_controller_player_partner.s PlayerPartnerHandlePause +081bd790 battle_controller_player_partner.s PlayerPartnerHandleMoveAnimation +081bd8c8 battle_controller_player_partner.s PlayerPartnerDoMoveAnimation +081bda4c battle_controller_player_partner.s PlayerPartnerHandlePrintString +081bdaa0 battle_controller_player_partner.s PlayerPartnerHandlePrintSelectionString +081bdaac battle_controller_player_partner.s PlayerPartnerHandleChooseAction +081bdabc battle_controller_player_partner.s PlayerPartnerHandleUnknownYesNoBox +081bdac8 battle_controller_player_partner.s PlayerPartnerHandleChooseMove +081bdb70 battle_controller_player_partner.s PlayerPartnerHandleChooseItem +081bdb7c battle_controller_player_partner.s PlayerPartnerHandleChoosePokemon +081bdc04 battle_controller_player_partner.s PlayerPartnerHandleCmd23 +081bdc10 battle_controller_player_partner.s PlayerPartnerHandleHealthBarUpdate +081bdd00 battle_controller_player_partner.s PlayerPartnerHandleExpUpdate +081bdd9c battle_controller_player_partner.s PlayerPartnerHandleStatusIconUpdate +081bde14 battle_controller_player_partner.s PlayerPartnerHandleStatusAnimation +081bde7c battle_controller_player_partner.s PlayerPartnerHandleStatusXor +081bde88 battle_controller_player_partner.s PlayerPartnerHandleDataTransfer +081bde94 battle_controller_player_partner.s PlayerPartnerHandleDMA3Transfer +081bdea0 battle_controller_player_partner.s PlayerPartnerHandlePlayBGM +081bdeac battle_controller_player_partner.s PlayerPartnerHandleCmd32 +081bdeb8 battle_controller_player_partner.s PlayerPartnerHandleTwoReturnValues +081bdec4 battle_controller_player_partner.s PlayerPartnerHandleChosenMonReturnValue +081bded0 battle_controller_player_partner.s PlayerPartnerHandleOneReturnValue +081bdedc battle_controller_player_partner.s PlayerPartnerHandleOneReturnValue_Duplicate +081bdee8 battle_controller_player_partner.s PlayerPartnerHandleCmd37 +081bdf04 battle_controller_player_partner.s PlayerPartnerHandleCmd38 +081bdf3c battle_controller_player_partner.s PlayerPartnerHandleCmd39 +081bdf54 battle_controller_player_partner.s PlayerPartnerHandleCmd40 +081bdf7c battle_controller_player_partner.s PlayerPartnerHandleHitAnimation +081bdfec battle_controller_player_partner.s PlayerPartnerHandleCmd42 +081bdff8 battle_controller_player_partner.s PlayerPartnerHandlePlaySE +081be03c battle_controller_player_partner.s PlayerPartnerHandlePlayFanfareOrBGM +081be098 battle_controller_player_partner.s PlayerPartnerHandleFaintingCry +081be0d8 battle_controller_player_partner.s PlayerPartnerHandleIntroSlide +081be10c battle_controller_player_partner.s PlayerPartnerHandleIntroTrainerBallThrow +081be2c8 battle_controller_player_partner.s sub_81BE2C8 +081be3d4 battle_controller_player_partner.s PlayerPartnerHandleDrawPartyStatusSummary +081be498 battle_controller_player_partner.s sub_81BE498 +081be4e0 battle_controller_player_partner.s PlayerPartnerHandleHidePartyStatusSummary +081be530 battle_controller_player_partner.s PlayerPartnerHandleEndBounceEffect +081be53c battle_controller_player_partner.s PlayerPartnerHandleSpriteInvisibility +081be59c battle_controller_player_partner.s PlayerPartnerHandleBattleAnimation +081be604 battle_controller_player_partner.s PlayerPartnerHandleLinkStandbyMsg +081be610 battle_controller_player_partner.s PlayerPartnerHandleResetActionMoveSelection +081be61c battle_controller_player_partner.s PlayerPartnerHandleCmd55 +081be668 battle_controller_player_partner.s PlayerPartnerCmdEnd +081be66c mirage_tower.s IsMirageTowerVisible +081be698 mirage_tower.s UpdateMirageTowerPulseBlend +081be6ac mirage_tower.s ClearMirageTowerPulseBlend +081be6b8 mirage_tower.s TryStartMirageTowerPulseBlendEffect +081be72c mirage_tower.s ClearMirageTowerPulseBlendEffect +081be79c mirage_tower.s SetMirageTowerVisibility +081be7f4 mirage_tower.s StartPlayerDescendMirageTower +081be808 mirage_tower.s PlayerDescendMirageTower +081be89c mirage_tower.s StartScreenShake +081be900 mirage_tower.s DoScreenShake +081be968 mirage_tower.s IncrementCeilingCrumbleFinishedCount +081be994 mirage_tower.s DoMirageTowerCeilingCrumble +081be9c0 mirage_tower.s WaitCeilingCrumble +081bea00 mirage_tower.s FinishCeilingCrumbleTask +081bea20 mirage_tower.s CreateCeilingCrumbleSprites +081bead8 mirage_tower.s MoveCeilingCrumbleSprite +081beb24 mirage_tower.s SetInvisibleMirageTowerMetatiles +081beb54 mirage_tower.s StartMirageTowerDisintegration +081beb68 mirage_tower.s StartMirageTowerShake +081beb7c mirage_tower.s StartMirageTowerFossilFallAndSink +081beb90 mirage_tower.s SetBgShakeOffsets +081bebb4 mirage_tower.s UpdateBgShake +081bebf4 mirage_tower.s InitMirageTowerShake +081bed50 mirage_tower.s DoMirageTowerDisintegration +081bf028 mirage_tower.s DoFossilFallAndSink +081bf248 mirage_tower.s sub_81BF248 +081bf2b8 mirage_tower.s sub_81BF2B8 +081bf384 berry_fix_program.s CB2_InitBerryFixProgram +081bf3dc berry_fix_program.s berry_fix_main +081bf5a4 berry_fix_program.s berry_fix_gpu_set +081bf7a4 berry_fix_program.s berry_fix_text_update +081bf7e8 berry_fix_program.s berry_fix_text_print +081bf8d8 berry_fix_program.s berry_fix_bg_hide +081bf8ec pokemon_summary_screen.s ShowPokemonSummaryScreen +081bfa38 pokemon_summary_screen.s ShowSelectMovePokemonSummaryScreen +081bfa80 pokemon_summary_screen.s ShowPokemonSummaryScreenSet40EF +081bfab4 pokemon_summary_screen.s SummaryScreen_MainCB2 +081bfad0 pokemon_summary_screen.s SummaryScreen_VBlank +081bfae4 pokemon_summary_screen.s SummaryScreen_LoadingCB2 +081bfb10 pokemon_summary_screen.s SummaryScreen_LoadGraphics +081bfe24 pokemon_summary_screen.s InitBGs +081bfeb0 pokemon_summary_screen.s SummaryScreen_DecompressGraphics +081c0098 pokemon_summary_screen.s CopyMonToSummaryStruct +081c00f0 pokemon_summary_screen.s ExtractMonDataToSummaryStruct +081c0348 pokemon_summary_screen.s sub_81C0348 +081c0434 pokemon_summary_screen.s FreeSummaryScreen +081c044c pokemon_summary_screen.s BeginCloseSummaryScreen +081c0484 pokemon_summary_screen.s CloseSummaryScreen +081c0510 pokemon_summary_screen.s HandleInput +081c0604 pokemon_summary_screen.s ChangeSummaryPokemon +081c0704 pokemon_summary_screen.s sub_81C0704 +081c08f8 pokemon_summary_screen.s sub_81C08F8 +081c09b4 pokemon_summary_screen.s sub_81C09B4 +081c0a50 pokemon_summary_screen.s sub_81C0A50 +081c0a8c pokemon_summary_screen.s ChangePage +081c0b8c pokemon_summary_screen.s PssScrollRight +081c0c68 pokemon_summary_screen.s PssScrollRightEnd +081c0cc4 pokemon_summary_screen.s PssScrollLeft +081c0d44 pokemon_summary_screen.s PssScrollLeftEnd +081c0e24 pokemon_summary_screen.s CheckExperienceProgressBar +081c0e48 pokemon_summary_screen.s sub_81C0E48 +081c0f44 pokemon_summary_screen.s HandleInput_MoveSelect +081c1040 pokemon_summary_screen.s sub_81C1040 +081c1070 pokemon_summary_screen.s sub_81C1070 +081c11f4 pokemon_summary_screen.s sub_81C11F4 +081c129c pokemon_summary_screen.s sub_81C129C +081c12e4 pokemon_summary_screen.s sub_81C12E4 +081c13b0 pokemon_summary_screen.s sub_81C13B0 +081c14bc pokemon_summary_screen.s SwapMonMoves +081c15ec pokemon_summary_screen.s SwapBoxMonMoves +081c171c pokemon_summary_screen.s sub_81C171C +081c174c pokemon_summary_screen.s HandleReplaceMoveInput +081c18a8 pokemon_summary_screen.s CanReplaceMove +081c18f4 pokemon_summary_screen.s ShowHMMovesCantBeForgottenWindow +081c1940 pokemon_summary_screen.s HandleHMMovesCantBeForgottenInput +081c1b94 pokemon_summary_screen.s sub_81C1B94 +081c1ba0 pokemon_summary_screen.s DrawPagination +081c1cb0 pokemon_summary_screen.s sub_81C1CB0 +081c1da4 pokemon_summary_screen.s sub_81C1DA4 +081c1e20 pokemon_summary_screen.s sub_81C1E20 +081c1efc pokemon_summary_screen.s sub_81C1EFC +081c1f80 pokemon_summary_screen.s sub_81C1F80 +081c2074 pokemon_summary_screen.s sub_81C2074 +081c20f0 pokemon_summary_screen.s sub_81C20F0 +081c2194 pokemon_summary_screen.s sub_81C2194 +081c2228 pokemon_summary_screen.s DrawPokerusCuredSymbol +081c228c pokemon_summary_screen.s Summary_SetDexNumberColor +081c22cc pokemon_summary_screen.s DrawExperienceProgressBar +081c240c pokemon_summary_screen.s DrawContestMoveHearts +081c2524 pokemon_summary_screen.s LimitEggSummaryPageDisplay +081c2554 pokemon_summary_screen.s ResetWindows +081c25a4 pokemon_summary_screen.s SummaryScreen_PrintTextOnWindow +081c25e8 pokemon_summary_screen.s Summary_PrintMonInfo +081c2628 pokemon_summary_screen.s Summary_PrintNotEggInfo +081c2794 pokemon_summary_screen.s Summary_PrintEggInfo +081c27dc pokemon_summary_screen.s Summar_PrintGenderSymbol +081c2838 pokemon_summary_screen.s PrintAOrBButtonIcon +081c286c pokemon_summary_screen.s PrintPageNamesAndStatsPageToWindows +081c2afc pokemon_summary_screen.s CreatePageWindowTilemaps +081c2c38 pokemon_summary_screen.s ClearPageWindowTilemaps +081c2d2c pokemon_summary_screen.s AddWindowFromTemplateList +081c2d68 pokemon_summary_screen.s SummaryScreen_RemoveWindowByIndex +081c2d9c pokemon_summary_screen.s PrintPageSpecificText +081c2de4 pokemon_summary_screen.s CreateTextPrinterTask +081c2e00 pokemon_summary_screen.s PrintInfoPageText +081c2e40 pokemon_summary_screen.s Task_PrintInfoPage +081c2ec4 pokemon_summary_screen.s PrintMonOTName +081c2f5c pokemon_summary_screen.s PrintMonOTID +081c2fd8 pokemon_summary_screen.s PrintMonAbilityName +081c302c pokemon_summary_screen.s PrintMonAbilityDescription +081c307c pokemon_summary_screen.s BufferMonTrainerMemo +081c3194 pokemon_summary_screen.s PrintMonTrainerMemo +081c31c0 pokemon_summary_screen.s BufferNatureString +081c31f0 pokemon_summary_screen.s GetMetLevelString +081c3220 pokemon_summary_screen.s DoesMonOTMatchOwner +081c32bc pokemon_summary_screen.s DidMonComeFromGBAGames +081c32e0 pokemon_summary_screen.s DidMonComeFromRSE +081c3304 pokemon_summary_screen.s IsInGamePartnerMon +081c335c pokemon_summary_screen.s PrintEggOTName +081c33cc pokemon_summary_screen.s PrintEggOTID +081c3428 pokemon_summary_screen.s PrintEggState +081c349c pokemon_summary_screen.s PrintEggMemo +081c3530 pokemon_summary_screen.s PrintSkillsPageText +081c3554 pokemon_summary_screen.s Task_PrintSkillsPage +081c35e4 pokemon_summary_screen.s PrintHeldItemName +081c3690 pokemon_summary_screen.s PrintRibbonCount +081c3710 pokemon_summary_screen.s BufferLeftColumnStats +081c37d8 pokemon_summary_screen.s PrintLeftColumnStats +081c3808 pokemon_summary_screen.s BufferRightColumnStats +081c3890 pokemon_summary_screen.s PrintRightColumnStats +081c38c0 pokemon_summary_screen.s PrintExpPointsNextLevel +081c3984 pokemon_summary_screen.s PrintBattleMoves +081c39f0 pokemon_summary_screen.s Task_PrintBattleMoves +081c3b08 pokemon_summary_screen.s PrintMoveNameAndPP +081c3c5c pokemon_summary_screen.s PrintMovePowerAndAccuracy +081c3d08 pokemon_summary_screen.s PrintContestMoves +081c3d54 pokemon_summary_screen.s Task_PrintContestMoves +081c3e2c pokemon_summary_screen.s PrintContestMoveDescription +081c3e9c pokemon_summary_screen.s PrintMoveDetails +081c3f44 pokemon_summary_screen.s PrintNewMoveDetailsOrCancelText +081c4064 pokemon_summary_screen.s sub_81C4064 +081c40a0 pokemon_summary_screen.s sub_81C40A0 +081c4154 pokemon_summary_screen.s PrintHMMovesCantBeForgotten +081c4190 pokemon_summary_screen.s ResetSpriteIds +081c41c0 pokemon_summary_screen.s DestroySpriteInArray +081c4204 pokemon_summary_screen.s SetSpriteInvisibility +081c424c pokemon_summary_screen.s HidePageSpecificSprites +081c4280 pokemon_summary_screen.s SetTypeIcons +081c42c8 pokemon_summary_screen.s CreateMoveTypeIcons +081c4318 pokemon_summary_screen.s SetMoveTypeSpritePosAndType +081c43a0 pokemon_summary_screen.s SetMonTypeIcons +081c4420 pokemon_summary_screen.s SetMoveTypeIcons +081c4484 pokemon_summary_screen.s SetContestMoveTypeIcons +081c44f0 pokemon_summary_screen.s SetNewMoveTypeIcon +081c4568 pokemon_summary_screen.s sub_81C4568 +081c45f4 pokemon_summary_screen.s CreatePokemonSprite +081c4778 pokemon_summary_screen.s PlayMonCry +081c47b4 pokemon_summary_screen.s sub_81C47B4 +081c4844 pokemon_summary_screen.s SpriteCB_Pokemon +081c488c pokemon_summary_screen.s SummaryScreen_SetUnknownTaskId +081c4898 pokemon_summary_screen.s SummaryScreen_DestroyUnknownTask +081c48b4 pokemon_summary_screen.s SummaryScreen_DoesSpriteHaveCallback +081c48f0 pokemon_summary_screen.s StopPokemonAnimations +081c4984 pokemon_summary_screen.s CreateMonMarkingsSprite +081c49e0 pokemon_summary_screen.s RemoveAndCreateMonMarkingsSprite +081c4a08 pokemon_summary_screen.s CreateCaughtBallSprite +081c4a88 pokemon_summary_screen.s CreateSetStatusSprite +081c4af8 pokemon_summary_screen.s sub_81C4AF8 +081c4be4 pokemon_summary_screen.s sub_81C4BE4 +081c4c60 pokemon_summary_screen.s sub_81C4C60 +081c4c84 pokemon_summary_screen.s sub_81C4C84 +081c4d18 pokemon_summary_screen.s sub_81C4D18 +081c4d70 unk_pokedex_area_screen_helper.s sub_81C4D70 +081c4e90 unk_pokedex_area_screen_helper.s sub_81C4E90 +081c4eb4 unk_pokedex_area_screen_helper.s sub_81C4EB4 +081c4ed0 unk_pokedex_area_screen_helper.s sub_81C4ED0 +081c4eec battle_pyramid_bag.s InitBattlePyramidBagCursorPosition +081c4efc battle_pyramid_bag.s CB2_PyramidBagMenuFromStartMenu +081c4f10 battle_pyramid_bag.s sub_81C4F10 +081c4f24 battle_pyramid_bag.s sub_81C4F24 +081c4f44 battle_pyramid_bag.s sub_81C4F44 +081c4f84 battle_pyramid_bag.s sub_81C4F84 +081c4f98 battle_pyramid_bag.s sub_81C4F98 +081c501c battle_pyramid_bag.s sub_81C501C +081c5038 battle_pyramid_bag.s sub_81C5038 +081c504c battle_pyramid_bag.s sub_81C504C +081c5078 battle_pyramid_bag.s sub_81C5078 +081c51dc battle_pyramid_bag.s sub_81C51DC +081c5238 battle_pyramid_bag.s sub_81C5238 +081c5314 battle_pyramid_bag.s SetBagItemsListTemplate +081c540c battle_pyramid_bag.s PyramidBag_CopyItemName +081c5460 battle_pyramid_bag.s PyramidBagMoveCursorFunc +081c5518 battle_pyramid_bag.s PrintItemQuantity +081c55d8 battle_pyramid_bag.s PrintItemDescription +081c5674 battle_pyramid_bag.s AddScrollArrow +081c56cc battle_pyramid_bag.s RemoveScrollArrow +081c56f8 battle_pyramid_bag.s sub_81C56F8 +081c5738 battle_pyramid_bag.s SwapItems +081c57a8 battle_pyramid_bag.s MovePyramidBagItemSlotInList +081c586c battle_pyramid_bag.s CompactItems +081c5924 battle_pyramid_bag.s sub_81C5924 +081c59bc battle_pyramid_bag.s sub_81C59BC +081c5a20 battle_pyramid_bag.s sub_81C5A20 +081c5a98 battle_pyramid_bag.s sub_81C5A98 +081c5ab8 battle_pyramid_bag.s sub_81C5AB8 +081c5b14 battle_pyramid_bag.s sub_81C5B14 +081c5b4c battle_pyramid_bag.s sub_81C5B4C +081c5bc8 battle_pyramid_bag.s Task_HandlePyramidBagInput +081c5d20 battle_pyramid_bag.s sub_81C5D20 +081c5eac battle_pyramid_bag.s sub_81C5EAC +081c5f08 battle_pyramid_bag.s sub_81C5F08 +081c5f68 battle_pyramid_bag.s HandleFewMenuActionsInput +081c5fe4 battle_pyramid_bag.s HandleMenuActionInput +081c616c battle_pyramid_bag.s IsValidMenuAction +081c61a8 battle_pyramid_bag.s sub_81C61A8 +081c61e0 battle_pyramid_bag.s BagAction_UseOnField +081c6258 battle_pyramid_bag.s BagAction_Cancel +081c629c battle_pyramid_bag.s SetTaskToMainPyramidBagInputHandler +081c62c4 battle_pyramid_bag.s BagAction_Toss +081c6350 battle_pyramid_bag.s sub_81C6350 +081c63d0 battle_pyramid_bag.s DontTossItem +081c6404 battle_pyramid_bag.s sub_81C6404 +081c645c battle_pyramid_bag.s sub_81C645C +081c64b4 battle_pyramid_bag.s sub_81C64B4 +081c654c battle_pyramid_bag.s TossItem +081c65cc battle_pyramid_bag.s sub_81C65CC +081c6648 battle_pyramid_bag.s BagAction_Give +081c66ac battle_pyramid_bag.s sub_81C66AC +081c66ec battle_pyramid_bag.s sub_81C66EC +081c6714 battle_pyramid_bag.s sub_81C6714 +081c674c battle_pyramid_bag.s sub_81C674C +081c679c battle_pyramid_bag.s BagAction_UseInBattle +081c67cc battle_pyramid_bag.s Task_BeginItemSwap +081c68b0 battle_pyramid_bag.s Task_ItemSwapHandleInput +081c6964 battle_pyramid_bag.s PerformItemSwap +081c6a14 battle_pyramid_bag.s sub_81C6A14 +081c6a94 battle_pyramid_bag.s sub_81C6A94 +081c6bd8 battle_pyramid_bag.s sub_81C6BD8 +081c6c3c battle_pyramid_bag.s PrintOnWindow_Font1 +081c6c94 battle_pyramid_bag.s PrintOnWindow_Font7 +081c6cec battle_pyramid_bag.s sub_81C6CEC +081c6d08 battle_pyramid_bag.s sub_81C6D08 +081c6d24 battle_pyramid_bag.s sub_81C6D24 +081c6d6c battle_pyramid_bag.s sub_81C6D6C +081c6dac battle_pyramid_bag.s sub_81C6DAC +081c6dd8 battle_pyramid_bag.s DisplayItemMessageInBattlePyramid +081c6e1c battle_pyramid_bag.s sub_81C6E1C +081c6e38 battle_pyramid_bag.s sub_81C6E38 +081c6e98 battle_pyramid_bag.s sub_81C6E98 +081c6ef4 battle_pyramid_bag.s sub_81C6EF4 +081c6f20 battle_pyramid_bag.s sub_81C6F20 +081c6f68 battle_pyramid_bag.s sub_81C6F68 +081c6f90 battle_pyramid_bag.s ShowItemImage +081c6ff8 battle_pyramid_bag.s sub_81C6FF8 +081c700c battle_pyramid_bag.s sub_81C700C +081c7028 battle_pyramid_bag.s sub_81C7028 +081c704c battle_pyramid_bag.s sub_81C704C +081c7078 pokenav.s CreateLoopedTask +081c70d8 pokenav.s IsLoopedTaskActive +081c7124 pokenav.s FuncIsActiveLoopedTask +081c7170 pokenav.s Task_RunLoopedTask +081c71e4 pokenav.s Task_RunLoopedTask_LinkMode +081c7250 pokenav.s CB2_InitPokeNav +081c72a4 pokenav.s sub_81C72A4 +081c72bc pokenav.s sub_81C72BC +081c7334 pokenav.s FreePokenavResources +081c7360 pokenav.s InitPokenavResources +081c7388 pokenav.s AnyMonHasRibbon +081c7400 pokenav.s CB2_Pokenav +081c7418 pokenav.s VBlankCB_Pokenav +081c742c pokenav.s sub_81C742C +081c756c pokenav.s SetActivePokenavMenu +081c75d4 pokenav.s sub_81C75D4 +081c75e0 pokenav.s sub_81C75E0 +081c75f4 pokenav.s InitKeys_ +081c7600 pokenav.s SetVBlankCallback_ +081c760c pokenav.s SetPokenavVBlankCallback +081c761c pokenav.s AllocSubstruct +081c763c pokenav.s GetSubstructPtr +081c7650 pokenav.s FreePokenavSubstruct +081c767c pokenav.s GetPokenavMode +081c7688 pokenav.s SetPokenavMode +081c7694 pokenav.s sub_81C7694 +081c76ac pokenav.s sub_81C76AC +081c76b8 pokenav.s CanViewRibbonsMenu +081c76c4 pokenav_main_menu.s InitPokenavMainMenu +081c76fc pokenav_main_menu.s PokenavMainMenuLoopedTaskIsActive +081c7710 pokenav_main_menu.s ShutdownPokenav +081c7738 pokenav_main_menu.s WaitForPokenavShutdownFade +081c7764 pokenav_main_menu.s LoopedTask_InitPokenavMenu +081c7834 pokenav_main_menu.s sub_81C7834 +081c7850 pokenav_main_menu.s sub_81C7850 +081c786c pokenav_main_menu.s sub_81C786C +081c7880 pokenav_main_menu.s sub_81C7880 +081c78a0 pokenav_main_menu.s sub_81C78A0 +081c78c0 pokenav_main_menu.s MainMenuLoopedTaskIsBusy +081c78d4 pokenav_main_menu.s LoopedTask_ScrollMenuHeaderDown +081c791c pokenav_main_menu.s LoopedTask_ScrollMenuHeaderUp +081c7944 pokenav_main_menu.s CopyPaletteIntoBufferUnfaded +081c795c pokenav_main_menu.s Pokenav_AllocAndLoadPalettes +081c7990 pokenav_main_menu.s sub_81C7990 +081c79bc pokenav_main_menu.s sub_81C79BC +081c7ac0 pokenav_main_menu.s sub_81C7AC0 +081c7b34 pokenav_main_menu.s IsPaletteFadeActive +081c7b40 pokenav_main_menu.s sub_81C7B40 +081c7b54 pokenav_main_menu.s InitBgTemplates +081c7b74 pokenav_main_menu.s sub_81C7B74 +081c7ba4 pokenav_main_menu.s sub_81C7BA4 +081c7be8 pokenav_main_menu.s IsDma3ManagerBusyWithBgCopy_ +081c7bf8 pokenav_main_menu.s sub_81C7BF8 +081c7c28 pokenav_main_menu.s InitPokenavMainMenuResources +081c7c94 pokenav_main_menu.s CleanupPokenavMainMenuResources +081c7cb4 pokenav_main_menu.s SpriteCB_SpinningPokenav +081c7ccc pokenav_main_menu.s PauseSpinningPokenavSprite +081c7ce4 pokenav_main_menu.s ResumeSpinningPokenavSprite +081c7d28 pokenav_main_menu.s InitHoennMapHeaderSprites +081c7dfc pokenav_main_menu.s LoadLeftHeaderGfxForIndex +081c7e14 pokenav_main_menu.s sub_81C7E14 +081c7e58 pokenav_main_menu.s LoadLeftHeaderGfxForMenu +081c7f24 pokenav_main_menu.s LoadLeftHeaderGfxForSubMenu +081c7fa0 pokenav_main_menu.s sub_81C7FA0 +081c7fc4 pokenav_main_menu.s sub_81C7FC4 +081c7fdc pokenav_main_menu.s sub_81C7FDC +081c8010 pokenav_main_menu.s sub_81C8010 +081c803c pokenav_main_menu.s ShowLeftHeaderSprites +081c8088 pokenav_main_menu.s ShowLeftHeaderSubmenuSprites +081c80d4 pokenav_main_menu.s HideLeftHeaderSprites +081c8110 pokenav_main_menu.s HideLeftHeaderSubmenuSprites +081c814c pokenav_main_menu.s MoveLeftHeader +081c817c pokenav_main_menu.s SpriteCB_MoveLeftHeader +081c81d4 pokenav_match_call_ui.s sub_81C81D4 +081c8224 pokenav_match_call_ui.s sub_81C8224 +081c8234 pokenav_match_call_ui.s sub_81C8234 +081c8254 pokenav_match_call_ui.s LoopedTask_sub_81C8254 +081c82e4 pokenav_match_call_ui.s sub_81C82E4 +081c835c pokenav_match_call_ui.s sub_81C835C +081c837c pokenav_match_call_ui.s sub_81C837C +081c83ac pokenav_match_call_ui.s sub_81C83AC +081c83e0 pokenav_match_call_ui.s sub_81C83E0 +081c83f0 pokenav_match_call_ui.s LoopedTask_sub_81C83F0 +081c84a4 pokenav_match_call_ui.s ShouldShowUpArrow +081c84c0 pokenav_match_call_ui.s ShouldShowDownArrow +081c84e8 pokenav_match_call_ui.s MatchCall_MoveWindow +081c8568 pokenav_match_call_ui.s sub_81C8568 +081c85a0 pokenav_match_call_ui.s LoopedTask_sub_81C85A0 +081c8630 pokenav_match_call_ui.s sub_81C8630 +081c8644 pokenav_match_call_ui.s GetMatchCallWindowStruct +081c8658 pokenav_match_call_ui.s MatchCall_MoveCursorUp +081c868c pokenav_match_call_ui.s MatchCall_MoveCursorDown +081c86cc pokenav_match_call_ui.s MatchCall_PageUp +081c870c pokenav_match_call_ui.s MatchCall_PageDown +081c875c pokenav_match_call_ui.s GetSelectedMatchCall +081c8770 pokenav_match_call_ui.s GetMatchCallListTopIndex +081c877c pokenav_match_call_ui.s sub_81C877C +081c87ac pokenav_match_call_ui.s sub_81C87AC +081c87f0 pokenav_match_call_ui.s sub_81C87F0 +081c8820 pokenav_match_call_ui.s sub_81C8820 +081c8838 pokenav_match_call_ui.s sub_81C8838 +081c8870 pokenav_match_call_ui.s LoopedTask_sub_81C8870 +081c8958 pokenav_match_call_ui.s LoopedTask_sub_81C8958 +081c8a28 pokenav_match_call_ui.s LoopedTask_sub_81C8A28 +081c8b70 pokenav_match_call_ui.s sub_81C8B70 +081c8c64 pokenav_match_call_ui.s sub_81C8C64 +081c8cb4 pokenav_match_call_ui.s sub_81C8CB4 +081c8d4c pokenav_match_call_ui.s sub_81C8D4C +081c8dbc pokenav_match_call_ui.s PrintMatchCallFieldNames +081c8e54 pokenav_match_call_ui.s sub_81C8E54 +081c8ed0 pokenav_match_call_ui.s sub_81C8ED0 +081c8ef8 pokenav_match_call_ui.s sub_81C8EF8 +081c8fe0 pokenav_match_call_ui.s sub_81C8FE0 +081c9008 pokenav_match_call_ui.s ToggleMatchCallArrows +081c9080 pokenav_match_call_ui.s SpriteCB_MatchCallRightArrow +081c90a0 pokenav_match_call_ui.s SpriteCB_MatchCallDownArrow +081c90f4 pokenav_match_call_ui.s SpriteCB_MatchCallUpArrow +081c9148 pokenav_match_call_ui.s ToggleMatchCallVerticalArrows +081c9160 pokenav_match_call_ui.s sub_81C9160 +081c91ac pokenav_match_call_ui.s sub_81C91AC +081c9268 pokenav_unk_1.s GetPokenavMainMenuType +081c9298 pokenav_unk_1.s sub_81C9298 +081c92cc pokenav_unk_1.s sub_81C92CC +081c9304 pokenav_unk_1.s sub_81C9304 +081c9338 pokenav_unk_1.s sub_81C9338 +081c9368 pokenav_unk_1.s sub_81C9368 +081c939c pokenav_unk_1.s sub_81C939C +081c93ec pokenav_unk_1.s sub_81C93EC +081c941c pokenav_unk_1.s sub_81C941C +081c9430 pokenav_unk_1.s sub_81C9430 +081c943c pokenav_unk_1.s sub_81C943C +081c9520 pokenav_unk_1.s sub_81C9520 +081c9588 pokenav_unk_1.s sub_81C9588 +081c9600 pokenav_unk_1.s sub_81C9600 +081c963c pokenav_unk_1.s sub_81C963C +081c96fc pokenav_unk_1.s sub_81C96FC +081c9798 pokenav_unk_1.s sub_81C9798 +081c97a4 pokenav_unk_1.s sub_81C97A4 +081c97b0 pokenav_unk_1.s sub_81C97B0 +081c97bc pokenav_unk_1.s sub_81C97BC +081c97c0 pokenav_unk_1.s sub_81C97C0 +081c97f8 pokenav_unk_1.s sub_81C97F8 +081c9814 pokenav_unk_1.s sub_81C9814 +081c9894 pokenav_unk_1.s sub_81C9894 +081c98a4 pokenav_unk_1.s sub_81C98A4 +081c98b4 pokenav_unk_1.s sub_81C98B4 +081c98c4 pokenav_unk_1.s sub_81C98C4 +081c98d4 pokenav_unk_2.s sub_81C98D4 +081c9924 pokenav_unk_2.s sub_81C9924 +081c9940 pokenav_unk_2.s sub_81C9940 +081c9958 pokenav_unk_2.s sub_81C9958 +081c9990 pokenav_unk_2.s sub_81C9990 +081c99c0 pokenav_unk_2.s sub_81C99C0 +081c99d4 pokenav_unk_2.s sub_81C99D4 +081c99fc pokenav_unk_2.s sub_81C99FC +081c9a10 pokenav_unk_2.s sub_81C9A10 +081c9c6c pokenav_unk_2.s sub_81C9C6C +081c9ca8 pokenav_unk_2.s sub_81C9CA8 +081c9d44 pokenav_unk_2.s sub_81C9D44 +081c9dd8 pokenav_unk_2.s sub_81C9DD8 +081c9e58 pokenav_unk_2.s sub_81C9E58 +081c9ec8 pokenav_unk_2.s sub_81C9EC8 +081c9ef8 pokenav_unk_2.s sub_81C9EF8 +081c9f28 pokenav_unk_2.s sub_81C9F28 +081c9fc4 pokenav_unk_2.s sub_81C9FC4 +081c9fec pokenav_unk_2.s sub_81C9FEC +081ca02c pokenav_unk_2.s sub_81CA02C +081ca094 pokenav_unk_2.s sub_81CA094 +081ca0c8 pokenav_unk_2.s sub_81CA0C8 +081ca0ec pokenav_unk_2.s sub_81CA0EC +081ca20c pokenav_unk_2.s sub_81CA20C +081ca278 pokenav_unk_2.s sub_81CA278 +081ca2dc pokenav_unk_2.s sub_81CA2DC +081ca324 pokenav_unk_2.s sub_81CA324 +081ca35c pokenav_unk_2.s sub_81CA35C +081ca3b4 pokenav_unk_2.s sub_81CA3B4 +081ca448 pokenav_unk_2.s sub_81CA448 +081ca474 pokenav_unk_2.s sub_81CA474 +081ca4ac pokenav_unk_2.s sub_81CA4AC +081ca580 pokenav_unk_2.s sub_81CA580 +081ca640 pokenav_unk_2.s sub_81CA640 +081ca698 pokenav_unk_2.s sub_81CA698 +081ca6ac pokenav_unk_2.s sub_81CA6AC +081ca6e0 pokenav_unk_2.s sub_81CA6E0 +081ca714 pokenav_unk_2.s sub_81CA714 +081ca770 pokenav_unk_2.s sub_81CA770 +081ca7c4 pokenav_unk_2.s sub_81CA7C4 +081ca7d4 pokenav_unk_2.s sub_81CA7D4 +081ca7f4 pokenav_unk_2.s sub_81CA7F4 +081ca808 pokenav_unk_2.s sub_81CA808 +081ca818 pokenav_unk_2.s sub_81CA818 +081ca850 pokenav_unk_2.s sub_81CA850 +081ca864 pokenav_unk_2.s sub_81CA864 +081ca89c pokenav_unk_2.s sub_81CA89C +081ca8b0 pokenav_unk_2.s sub_81CA8B0 +081ca914 pokenav_unk_2.s sub_81CA914 +081ca92c pokenav_unk_2.s sub_81CA92C +081ca994 pokenav_unk_2.s sub_81CA994 +081ca9c8 pokenav_unk_2.s sub_81CA9C8 +081ca9d8 pokenav_unk_2.s sub_81CA9D8 +081ca9ec pokenav_unk_2.s sub_81CA9EC +081caa3c pokenav_unk_2.s sub_81CAA3C +081caadc pokenav_unk_2.s sub_81CAADC +081caae8 pokenav_unk_3.s sub_81CAAE8 +081cab24 pokenav_unk_3.s sub_81CAB24 +081cab38 pokenav_unk_3.s sub_81CAB38 +081cab44 pokenav_unk_3.s sub_81CAB44 +081cabfc pokenav_unk_3.s sub_81CABFC +081cac04 pokenav_unk_3.s sub_81CAC04 +081cacb8 pokenav_unk_3.s sub_81CACB8 +081cacf8 pokenav_unk_3.s sub_81CACF8 +081cad20 pokenav_unk_3.s sub_81CAD20 +081cae08 pokenav_unk_3.s sub_81CAE08 +081cae28 pokenav_unk_3.s sub_81CAE28 +081cae38 pokenav_unk_3.s sub_81CAE38 +081cae48 pokenav_unk_3.s sub_81CAE48 +081cae58 pokenav_unk_3.s unref_sub_81CAE58 +081cae6c pokenav_unk_3.s unref_sub_81CAE6C +081cae94 pokenav_unk_3.s sub_81CAE94 +081caea4 pokenav_unk_3.s sub_81CAEA4 +081caebc pokenav_unk_3.s sub_81CAEBC +081caf04 pokenav_unk_3.s sub_81CAF04 +081caf78 pokenav_unk_3.s sub_81CAF78 +081cafd8 pokenav_unk_3.s sub_81CAFD8 +081cb01c pokenav_unk_3.s sub_81CB01C +081cb02c pokenav_unk_3.s sub_81CB02C +081cb050 pokenav_unk_3.s sub_81CB050 +081cb0c8 pokenav_unk_3.s sub_81CB0C8 +081cb0e4 pokenav_unk_3.s sub_81CB0E4 +081cb128 pokenav_unk_3.s sub_81CB128 +081cb16c pokenav_unk_3.s unref_sub_81CB16C +081cb1d0 pokenav_unk_3.s sub_81CB1D0 +081cb260 pokenav_unk_4.s sub_81CB260 +081cb29c pokenav_unk_4.s sub_81CB29C +081cb2cc pokenav_unk_4.s sub_81CB2CC +081cb2e0 pokenav_unk_4.s sub_81CB2E0 +081cb310 pokenav_unk_4.s sub_81CB310 +081cb324 pokenav_unk_4.s sub_81CB324 +081cb510 pokenav_unk_4.s sub_81CB510 +081cb588 pokenav_unk_4.s sub_81CB588 +081cb600 pokenav_unk_4.s sub_81CB600 +081cb678 pokenav_unk_4.s sub_81CB678 +081cb6f0 pokenav_unk_4.s sub_81CB6F0 +081cb734 pokenav_unk_4.s sub_81CB734 +081cb75c pokenav_unk_4.s sub_81CB75C +081cb7a0 pokenav_unk_4.s sub_81CB7A0 +081cb824 pokenav_unk_4.s sub_81CB824 +081cb888 pokenav_unk_4.s sub_81CB888 +081cb93c pokenav_unk_4.s sub_81CB93C +081cb9c8 pokenav_unk_4.s sub_81CB9C8 +081cba68 pokenav_unk_4.s sub_81CBA68 +081cbad4 pokenav_unk_4.s sub_81CBAD4 +081cbb74 pokenav_unk_4.s sub_81CBB74 +081cbbb8 pokenav_unk_4.s sub_81CBBB8 +081cbc1c pokenav_unk_4.s sub_81CBC1C +081cbc38 pokenav_unk_4.s sub_81CBC38 +081cbc64 pokenav_unk_4.s sub_81CBC64 +081cbcec pokenav_unk_4.s sub_81CBCEC +081cbd48 pokenav_unk_4.s sub_81CBD48 +081cbd78 pokenav_unk_4.s sub_81CBD78 +081cbdc0 pokenav_unk_4.s sub_81CBDC0 +081cbdf4 pokenav_unk_4.s sub_81CBDF4 +081cbe0c pokenav_unk_4.s sub_81CBE0C +081cbe38 pokenav_unk_4.s sub_81CBE38 +081cbe50 pokenav_unk_4.s sub_81CBE50 +081cbe88 pokenav_unk_4.s sub_81CBE88 +081cbeb4 pokenav_unk_4.s sub_81CBEB4 +081cbef8 pokenav_unk_4.s sub_81CBEF8 +081cbf60 pokenav_unk_4.s sub_81CBF60 +081cbfc4 pokenav_unk_4.s sub_81CBFC4 +081cbff0 pokenav_unk_4.s sub_81CBFF0 +081cc004 pokenav_unk_4.s sub_81CC004 +081cc014 pokenav_unk_4.s sub_81CC014 +081cc034 pokenav_unk_4.s sub_81CC034 +081cc058 pokenav_unk_4.s sub_81CC058 +081cc09c pokenav_unk_4.s sub_81CC09C +081cc0d0 pokenav_unk_4.s sub_81CC0D0 +081cc0e0 pokenav_unk_4.s sub_81CC0E0 +081cc104 pokenav_unk_4.s sub_81CC104 +081cc11c pokenav_unk_4.s sub_81CC11C +081cc140 pokenav_unk_4.s sub_81CC140 +081cc158 pokenav_unk_4.s sub_81CC158 +081cc194 pokenav_unk_4.s sub_81CC194 +081cc1dc pokenav_unk_4.s sub_81CC1DC +081cc204 pokenav_unk_4.s sub_81CC204 +081cc214 pokenav_unk_4.s sub_81CC214 +081cc2b4 pokenav_unk_4.s sub_81CC2B4 +081cc2f0 pokenav_unk_4.s sub_81CC2F0 +081cc330 pokenav_unk_4.s sub_81CC330 +081cc344 pokenav_unk_4.s sub_81CC344 +081cc34c pokenav_unk_4.s sub_81CC34C +081cc370 pokenav_unk_4.s sub_81CC370 +081cc39c pokenav_unk_4.s sub_81CC39C +081cc420 pokenav_unk_4.s sub_81CC420 +081cc42c pokenav_unk_4.s sub_81CC42C +081cc440 pokenav_unk_4.s sub_81CC440 +081cc4a4 pokenav_unk_4.s sub_81CC4A4 +081cc4d4 pokenav_unk_5.s sub_81CC4D4 +081cc524 pokenav_unk_5.s sub_81CC524 +081cc554 pokenav_unk_5.s sub_81CC554 +081cc568 pokenav_unk_5.s sub_81CC568 +081cc5b4 pokenav_unk_5.s sub_81CC5B4 +081cc5dc pokenav_unk_5.s sub_81CC5DC +081cc5e4 pokenav_unk_5.s sub_81CC5E4 +081cc5f4 pokenav_unk_5.s sub_81CC5F4 +081cc62c pokenav_unk_5.s sub_81CC62C +081cc65c pokenav_unk_5.s sub_81CC65C +081cc670 pokenav_unk_5.s sub_81CC670 +081cc6a4 pokenav_unk_5.s sub_81CC6A4 +081cc6bc pokenav_unk_5.s sub_81CC6BC +081cc6d0 pokenav_unk_5.s sub_81CC6D0 +081cc6f4 pokenav_unk_5.s sub_81CC6F4 +081cc848 pokenav_unk_5.s sub_81CC848 +081cc878 pokenav_unk_5.s sub_81CC878 +081cc8d8 pokenav_unk_5.s sub_81CC8D8 +081cc95c pokenav_unk_5.s sub_81CC95C +081cc9c0 pokenav_unk_5.s sub_81CC9C0 +081cc9ec pokenav_unk_5.s sub_81CC9EC +081cca1c pokenav_unk_5.s sub_81CCA1C +081ccafc pokenav_unk_5.s sub_81CCAFC +081ccb0c pokenav_unk_5.s sub_81CCB0C +081ccc4c pokenav_unk_5.s sub_81CCC4C +081ccc5c pokenav_unk_5.s sub_81CCC5C +081ccc88 pokenav_unk_5.s sub_81CCC88 +081ccc9c pokenav_unk_5.s sub_81CCC9C +081ccd10 pokenav_unk_5.s sub_81CCD10 +081ccd24 pokenav_unk_5.s sub_81CCD24 +081ccd34 pokenav_unk_5.s sub_81CCD34 +081ccd70 pokenav_unk_5.s sub_81CCD70 +081ccde8 pokenav_unk_5.s sub_81CCDE8 +081cce58 pokenav_unk_5.s sub_81CCE58 +081ccef4 pokenav_unk_5.s sub_81CCEF4 +081ccf78 pokenav_unk_5.s sub_81CCF78 +081ccfa4 pokenav_unk_5.s sub_81CCFA4 +081ccfd8 pokenav_unk_6.s sub_81CCFD8 +081cd024 pokenav_unk_6.s sub_81CD024 +081cd070 pokenav_unk_6.s sub_81CD070 +081cd08c pokenav_unk_6.s sub_81CD08C +081cd110 pokenav_unk_6.s sub_81CD110 +081cd19c pokenav_unk_6.s sub_81CD19C +081cd1c0 pokenav_unk_6.s sub_81CD1C0 +081cd1e4 pokenav_unk_6.s sub_81CD1E4 +081cd258 pokenav_unk_6.s sub_81CD258 +081cd3c4 pokenav_unk_6.s sub_81CD3C4 +081cd548 pokenav_unk_6.s sub_81CD548 +081cd5cc pokenav_unk_6.s sub_81CD5CC +081cd624 pokenav_unk_6.s sub_81CD624 +081cd824 pokenav_unk_6.s sub_81CD824 +081cd970 pokenav_unk_6.s sub_81CD970 +081cd9f8 pokenav_unk_6.s sub_81CD9F8 +081cda1c pokenav_unk_6.s sub_81CDA1C +081cdb98 pokenav_unk_6.s sub_81CDB98 +081cdc50 pokenav_unk_6.s sub_81CDC50 +081cdc60 pokenav_unk_6.s sub_81CDC60 +081cdc70 pokenav_unk_6.s sub_81CDC70 +081cdc84 pokenav_unk_6.s sub_81CDC84 +081cdc9c pokenav_unk_6.s sub_81CDC9C +081cdcb4 pokenav_unk_6.s sub_81CDCB4 +081cdcd4 pokenav_unk_6.s sub_81CDCD4 +081cdcec pokenav_unk_6.s sub_81CDCEC +081cdd04 pokenav_unk_6.s sub_81CDD04 +081cdd24 pokenav_unk_6.s sub_81CDD24 +081cdd48 pokenav_unk_6.s sub_81CDD48 +081cdd5c pokenav_unk_6.s sub_81CDD5C +081cdd7c pokenav_unk_6.s sub_81CDD7C +081cddb0 pokenav_unk_6.s sub_81CDDB0 +081cddd4 pokenav_unk_7.s sub_81CDDD4 +081cde2c pokenav_unk_7.s sub_81CDE2C +081cde64 pokenav_unk_7.s sub_81CDE64 +081cde80 pokenav_unk_7.s sub_81CDE80 +081cde94 pokenav_unk_7.s sub_81CDE94 +081ce2d0 pokenav_unk_7.s sub_81CE2D0 +081ce37c pokenav_unk_7.s sub_81CE37C +081ce4d8 pokenav_unk_7.s sub_81CE4D8 +081ce5e4 pokenav_unk_7.s sub_81CE5E4 +081ce6bc pokenav_unk_7.s sub_81CE6BC +081ce700 pokenav_unk_7.s sub_81CE700 +081ce738 pokenav_unk_7.s sub_81CE738 +081ce754 pokenav_unk_7.s sub_81CE754 +081ce934 pokenav_unk_7.s sub_81CE934 +081ce964 pokenav_unk_7.s sub_81CE964 +081ce990 pokenav_unk_7.s sub_81CE990 +081ce9c8 pokenav_unk_7.s sub_81CE9C8 +081ce9e4 pokenav_unk_7.s sub_81CE9E4 +081cebf4 pokenav_unk_7.s sub_81CEBF4 +081ceca0 pokenav_unk_7.s sub_81CECA0 +081ced10 pokenav_unk_7.s sub_81CED10 +081ced30 pokenav_unk_7.s sub_81CED30 +081cee44 pokenav_unk_7.s sub_81CEE44 +081cee68 pokenav_unk_7.s sub_81CEE68 +081cee74 pokenav_unk_7.s sub_81CEE74 +081cee90 pokenav_unk_7.s sub_81CEE90 +081ceec8 pokenav_unk_7.s sub_81CEEC8 +081cef14 pokenav_unk_7.s sub_81CEF14 +081cef3c pokenav_unk_8.s sub_81CEF3C +081cef98 pokenav_unk_8.s sub_81CEF98 +081cefdc pokenav_unk_8.s sub_81CEFDC +081ceff0 pokenav_unk_8.s sub_81CEFF0 +081cf010 pokenav_unk_8.s sub_81CF010 +081cf030 pokenav_unk_8.s sub_81CF030 +081cf0b0 pokenav_unk_8.s sub_81CF0B0 +081cf0b8 pokenav_unk_8.s sub_81CF0B8 +081cf0c0 pokenav_unk_8.s sub_81CF0C0 +081cf0d0 pokenav_unk_8.s sub_81CF0D0 +081cf0e0 pokenav_unk_8.s sub_81CF0E0 +081cf0f0 pokenav_unk_8.s sub_81CF0F0 +081cf10c pokenav_unk_8.s sub_81CF10C +081cf11c pokenav_unk_8.s sub_81CF11C +081cf134 pokenav_unk_8.s sub_81CF134 +081cf1c4 pokenav_unk_8.s sub_81CF1C4 +081cf1d8 pokenav_unk_8.s sub_81CF1D8 +081cf278 pokenav_unk_8.s sub_81CF278 +081cf2c4 pokenav_unk_8.s sub_81CF2C4 +081cf330 pokenav_unk_8.s sub_81CF330 +081cf368 pokenav_unk_8.s sub_81CF368 +081cf3a0 pokenav_unk_8.s sub_81CF3A0 +081cf3d0 pokenav_unk_8.s sub_81CF3D0 +081cf3e4 pokenav_unk_8.s sub_81CF3E4 +081cf3f8 pokenav_unk_8.s sub_81CF3F8 +081cf418 pokenav_unk_8.s sub_81CF418 +081cf578 pokenav_unk_8.s sub_81CF578 +081cf5f0 pokenav_unk_8.s sub_81CF5F0 +081cf668 pokenav_unk_8.s sub_81CF668 +081cf6e0 pokenav_unk_8.s sub_81CF6E0 +081cf758 pokenav_unk_8.s sub_81CF758 +081cf798 pokenav_unk_8.s sub_81CF798 +081cf7c8 pokenav_unk_8.s sub_81CF7C8 +081cf7f4 pokenav_unk_8.s sub_81CF7F4 +081cf88c pokenav_unk_8.s sub_81CF88C +081cf8e4 pokenav_unk_8.s sub_81CF8E4 +081cf9bc pokenav_unk_9.s sub_81CF9BC +081cfa04 pokenav_unk_9.s sub_81CFA04 +081cfa34 pokenav_unk_9.s sub_81CFA34 +081cfa48 pokenav_unk_9.s sub_81CFA48 +081cfa68 pokenav_unk_9.s sub_81CFA68 +081cfa88 pokenav_unk_9.s sub_81CFA88 +081cfb08 pokenav_unk_9.s sub_81CFB08 +081cfb10 pokenav_unk_9.s sub_81CFB10 +081cfb18 pokenav_unk_9.s sub_81CFB18 +081cfb28 pokenav_unk_9.s sub_81CFB28 +081cfb38 pokenav_unk_9.s sub_81CFB38 +081cfb48 pokenav_unk_9.s sub_81CFB48 +081cfb64 pokenav_unk_9.s sub_81CFB64 +081cfb74 pokenav_unk_9.s sub_81CFB74 +081cfb8c pokenav_unk_9.s sub_81CFB8C +081cfc2c pokenav_unk_9.s sub_81CFC2C +081cfc40 pokenav_unk_9.s sub_81CFC40 +081cfcec pokenav_unk_9.s sub_81CFCEC +081cfd58 pokenav_unk_9.s sub_81CFD58 +081cfdd0 pokenav_unk_9.s sub_81CFDD0 +081cfe08 pokenav_unk_9.s sub_81CFE08 +081cfe40 pokenav_unk_9.s sub_81CFE40 +081cfe70 pokenav_unk_9.s sub_81CFE70 +081cfe84 pokenav_unk_9.s sub_81CFE84 +081cfe98 pokenav_unk_9.s sub_81CFE98 +081cfeb8 pokenav_unk_9.s sub_81CFEB8 +081cfffc pokenav_unk_9.s sub_81CFFFC +081d0074 pokenav_unk_9.s sub_81D0074 +081d00ec pokenav_unk_9.s sub_81D00EC +081d0164 pokenav_unk_9.s sub_81D0164 +081d01dc pokenav_unk_9.s sub_81D01DC +081d021c pokenav_unk_9.s sub_81D021C +081d024c pokenav_unk_9.s sub_81D024C +081d0288 pokenav_unk_9.s sub_81D0288 +081d02b0 pokenav_unk_9.s sub_81D02B0 +081d0304 pokenav_unk_9.s sub_81D0304 +081d035c pokenav_unk_9.s sub_81D035C +081d0450 pokenav_unk_10.s sub_81D0450 +081d04a0 pokenav_unk_10.s sub_81D04A0 +081d04b8 pokenav_unk_10.s sub_81D04B8 +081d04c4 pokenav_unk_10.s sub_81D04C4 +081d0548 pokenav_unk_10.s sub_81D0548 +081d05d4 pokenav_unk_10.s sub_81D05D4 +081d05dc pokenav_unk_10.s sub_81D05DC +081d061c pokenav_unk_10.s sub_81D061C +081d0664 pokenav_unk_10.s sub_81D0664 +081d0688 pokenav_unk_10.s sub_81D0688 +081d06c4 pokenav_unk_10.s sub_81D06C4 +081d06d4 pokenav_unk_10.s sub_81D06D4 +081d06e4 pokenav_unk_10.s GetCurrMonInfo1 +081d0760 pokenav_unk_10.s GetCurrMonInfo2 +081d07d8 pokenav_unk_10.s GetCurrMonRibbonCount +081d0814 pokenav_unk_10.s sub_81D0814 +081d0914 pokenav_unk_10.s sub_81D0914 +081d092c pokenav_unk_10.s sub_81D092C +081d0944 pokenav_unk_10.s sub_81D0944 +081d0954 pokenav_unk_10.s sub_81D0954 +081d0978 pokenav_unk_10.s sub_81D0978 +081d09b0 pokenav_unk_10.s sub_81D09B0 +081d09e0 pokenav_unk_10.s sub_81D09E0 +081d09f4 pokenav_unk_10.s sub_81D09F4 +081d0a58 pokenav_unk_10.s sub_81D0A58 +081d0a6c pokenav_unk_10.s sub_81D0A6C +081d0c54 pokenav_unk_10.s sub_81D0C54 +081d0c84 pokenav_unk_10.s sub_81D0C84 +081d0d2c pokenav_unk_10.s sub_81D0D2C +081d0d8c pokenav_unk_10.s sub_81D0D8C +081d0e00 pokenav_unk_10.s sub_81D0E00 +081d0e60 pokenav_unk_10.s sub_81D0E60 +081d0e84 pokenav_unk_10.s sub_81D0E84 +081d0efc pokenav_unk_10.s sub_81D0EFC +081d0fcc pokenav_unk_10.s sub_81D0FCC +081d0ff0 pokenav_unk_10.s sub_81D0FF0 +081d10a4 pokenav_unk_10.s sub_81D10A4 +081d10d0 pokenav_unk_10.s sub_81D10D0 +081d1148 pokenav_unk_10.s sub_81D1148 +081d1178 pokenav_unk_10.s sub_81D1178 +081d1184 pokenav_unk_10.s sub_81D1184 +081d11d8 pokenav_unk_10.s sub_81D11D8 +081d11fc pokenav_unk_10.s sub_81D11FC +081d1234 pokenav_unk_10.s sub_81D1234 +081d1258 pokenav_unk_10.s sub_81D1258 +081d1284 pokenav_unk_10.s sub_81D1284 +081d12d8 pokenav_unk_10.s sub_81D12D8 +081d1350 pokenav_unk_10.s sub_81D1350 +081d1370 pokenav_unk_10.s sub_81D1370 +081d13bc pokenav_unk_10.s sub_81D13BC +081d13fc pokenav_unk_10.s sub_81D13FC +081d1448 pokenav_unk_10.s sub_81D1448 +081d1500 pokenav_unk_10.s sub_81D1500 +081d1524 pokenav_unk_10.s sub_81D1524 +081d1538 pokenav_unk_10.s sub_81D1538 +081d1574 pokenav_match_call_data.s MatchCallGetFunctionIndex +081d15bc pokenav_match_call_data.s GetTrainerIdxByRematchIdx +081d15cc pokenav_match_call_data.s GetRematchIdxByTrainerIdx +081d15f4 pokenav_match_call_data.s MatchCallFlagGetByIndex +081d1628 pokenav_match_call_data.s MatchCallGetFlag_Type0 +081d164c pokenav_match_call_data.s MatchCallGetFlag_Type1 +081d1670 pokenav_match_call_data.s MatchCallGetFlag_Type2 +081d1694 pokenav_match_call_data.s MatchCallGetFlag_Type4 +081d16cc pokenav_match_call_data.s MatchCallGetFlag_Type3 +081d16dc pokenav_match_call_data.s MatchCallMapSecGetByIndex +081d1714 pokenav_match_call_data.s MatchCallGetMapSec_Type0 +081d1718 pokenav_match_call_data.s MatchCallGetMapSec_Type1 +081d171c pokenav_match_call_data.s MatchCallGetMapSec_Type2 +081d1750 pokenav_match_call_data.s MatchCallGetMapSec_Type4 +081d1754 pokenav_match_call_data.s MatchCallGetMapSec_Type3 +081d1758 pokenav_match_call_data.s MatchCall_IsRematchable +081d178c pokenav_match_call_data.s MatchCall_IsRematchable_Type0 +081d1790 pokenav_match_call_data.s MatchCall_IsRematchable_Type1 +081d17c0 pokenav_match_call_data.s MatchCall_IsRematchable_Type2 +081d17e0 pokenav_match_call_data.s MatchCall_IsRematchable_Type4 +081d17e4 pokenav_match_call_data.s MatchCall_IsRematchable_Type3 +081d17e8 pokenav_match_call_data.s sub_81D17E8 +081d1840 pokenav_match_call_data.s sub_81D1840 +081d1844 pokenav_match_call_data.s sub_81D1844 +081d1848 pokenav_match_call_data.s sub_81D1848 +081d184c pokenav_match_call_data.s sub_81D184C +081d1850 pokenav_match_call_data.s sub_81D1850 +081d1854 pokenav_match_call_data.s MatchCall_GetRematchTableIdx +081d1888 pokenav_match_call_data.s MatchCall_GetRematchTableIdx_Type0 +081d188c pokenav_match_call_data.s MatchCall_GetRematchTableIdx_Type1 +081d1890 pokenav_match_call_data.s MatchCall_GetRematchTableIdx_Type2 +081d1894 pokenav_match_call_data.s MatchCall_GetRematchTableIdx_Type4 +081d1898 pokenav_match_call_data.s MatchCall_GetRematchTableIdx_Type3 +081d189c pokenav_match_call_data.s MatchCall_GetMessage +081d18d0 pokenav_match_call_data.s MatchCall_GetMessage_Type0 +081d18dc pokenav_match_call_data.s MatchCall_GetMessage_Type1 +081d18fc pokenav_match_call_data.s MatchCall_GetMessage_Type2 +081d1908 pokenav_match_call_data.s MatchCall_GetMessage_Type4 +081d1914 pokenav_match_call_data.s MatchCall_GetMessage_Type3 +081d1920 pokenav_match_call_data.s sub_81D1920 +081d199c pokenav_match_call_data.s sub_81D199C +081d1a78 pokenav_match_call_data.s sub_81D1A78 +081d1ab0 pokenav_match_call_data.s MatchCall_GetNameAndDesc_Type0 +081d1abc pokenav_match_call_data.s MatchCall_GetNameAndDesc_Type1 +081d1adc pokenav_match_call_data.s MatchCall_GetNameAndDesc_Type2 +081d1af4 pokenav_match_call_data.s MatchCall_GetNameAndDesc_Type4 +081d1b00 pokenav_match_call_data.s MatchCall_GetNameAndDesc_Type3 +081d1b0c pokenav_match_call_data.s MatchCall_GetNameAndDescByRematchIdx +081d1b40 pokenav_match_call_data.s sub_81D1B40 +081d1bd0 pokenav_match_call_data.s sub_81D1BD0 +081d1bf8 pokenav_match_call_data.s sub_81D1BF8 +081d1c20 pokenav_match_call_data.s SetMatchCallRegisteredFlag +081d1c44 menu_specialized.s sub_81D1C44 +081d1c84 menu_specialized.s sub_81D1C84 +081d1d04 menu_specialized.s sub_81D1D04 +081d1d34 menu_specialized.s sub_81D1D34 +081d1d44 menu_specialized.s sub_81D1D44 +081d1dc0 menu_specialized.s sub_81D1DC0 +081d1e7c menu_specialized.s sub_81D1E7C +081d1e90 menu_specialized.s sub_81D1E90 +081d1ec0 menu_specialized.s sub_81D1EC0 +081d1ed4 menu_specialized.s sub_81D1ED4 +081d1f84 menu_specialized.s sub_81D1F84 +081d2074 menu_specialized.s sub_81D2074 +081d20ac menu_specialized.s sub_81D20AC +081d20bc menu_specialized.s sub_81D20BC +081d2108 menu_specialized.s sub_81D2108 +081d21dc menu_specialized.s sub_81D21DC +081d2230 menu_specialized.s sub_81D2230 +081d2278 menu_specialized.s sub_81D2278 +081d24a4 menu_specialized.s sub_81D24A4 +081d2634 menu_specialized.s sub_81D2634 +081d2754 menu_specialized.s sub_81D2754 +081d2824 menu_specialized.s InitMoveRelearnerWindows +081d28c4 menu_specialized.s nullsub_79 +081d28c8 menu_specialized.s LoadMoveRelearnerMovesList +081d28fc menu_specialized.s MoveRelearnerLoadBattleMoveDescription +081d2acc menu_specialized.s MoveRelearnerMenuLoadContestMoveDescription +081d2bd0 menu_specialized.s MoveRelearnerCursorCallback +081d2bf4 menu_specialized.s MoveRelearnerPrintText +081d2c3c menu_specialized.s MoveRelearnerRunTextPrinters +081d2c50 menu_specialized.s MoveRelearnerCreateYesNoMenu +081d2c68 menu_specialized.s GetBoxOrPartyMonData +081d2cd0 menu_specialized.s sub_81D2CD0 +081d2e7c menu_specialized.s sub_81D2E7C +081d2ed4 menu_specialized.s sub_81D2ED4 +081d2f78 menu_specialized.s sub_81D2F78 +081d3094 menu_specialized.s sub_81D3094 +081d312c menu_specialized.s sub_81D312C +081d3150 menu_specialized.s sub_81D3150 +081d3178 menu_specialized.s sub_81D3178 +081d31a4 menu_specialized.s sub_81D31A4 +081d31d0 menu_specialized.s sub_81D31D0 +081d321c menu_specialized.s sub_81D321C +081d32b0 menu_specialized.s sub_81D32B0 +081d32d4 menu_specialized.s sub_81D32D4 +081d32f4 menu_specialized.s sub_81D32F4 +081d3314 menu_specialized.s sub_81D3314 +081d338c menu_specialized.s sub_81D338C +081d3408 menu_specialized.s sub_81D3408 +081d3464 menu_specialized.s sub_81D3464 +081d3480 menu_specialized.s sub_81D3480 +081d3520 menu_specialized.s sub_81D3520 +081d354c menu_specialized.s sub_81D354C +081d3564 menu_specialized.s sub_81D3564 +081d35e8 menu_specialized.s sub_81D35E8 +081d3640 menu_specialized.s DrawLevelUpWindowPg1 +081d3784 menu_specialized.s DrawLevelUpWindowPg2 +081d388c menu_specialized.s GetMonLevelUpWindowStats +081d38d4 ereader_helpers.s sub_81D38D4 +081d38fc ereader_helpers.s Struct_Unk81D38FC_ValidateChecksum +081d3920 ereader_helpers.s EReader_IsReceivedDataValid +081d396c ereader_helpers.s TrainerHill_VerifyChecksum +081d3998 ereader_helpers.s TryWriteTrainerHill_r +081d3ab0 ereader_helpers.s TryWriteTrainerHill +081d3ad8 ereader_helpers.s TryReadTrainerHill_r +081d3b0c ereader_helpers.s TryReadTrainerHill +081d3b34 ereader_helpers.s ReadTrainerHillAndValidate +081d3b54 ereader_helpers.s unref_sub_81D3B54 +081d3be8 ereader_helpers.s unref_sub_81D3BE8 +081d3c7c ereader_helpers.s sub_81D3C7C +081d3cbc ereader_helpers.s sub_81D3CBC +081d3d34 ereader_helpers.s sub_81D3D34 +081d3d70 ereader_helpers.s sub_81D3D70 +081d3ee8 ereader_helpers.s sub_81D3EE8 +081d3f1c ereader_helpers.s sub_81D3F1C +081d3f68 ereader_helpers.s sub_81D3F68 +081d3f9c ereader_helpers.s sub_81D3F9C +081d3fac ereader_helpers.s sub_81D3FAC +081d413c ereader_helpers.s sub_81D413C +081d414c ereader_helpers.s sub_81D414C +081d4170 ereader_helpers.s sub_81D4170 +081d41a0 ereader_helpers.s sub_81D41A0 +081d41f4 ereader_helpers.s sub_81D41F4 +081d4238 ereader_helpers.s sub_81D4238 +081d4258 faraway_island.s GetMewEventObjectId +081d427c faraway_island.s GetMewMoveDirection +081d4834 faraway_island.s CanMewWalkToCoords +081d4890 faraway_island.s sub_81D4890 +081d4998 faraway_island.s UpdateFarawayIslandStepCounter +081d49e8 faraway_island.s EventObjectIsFarawayIslandMew +081d4a14 faraway_island.s IsMewPlayingHideAndSeek +081d4a58 faraway_island.s sub_81D4A58 +081d4a90 faraway_island.s sub_81D4A90 +081d4bec faraway_island.s sub_81D4BEC +081d4c14 faraway_island.s sub_81D4C14 +081d4c58 faraway_island.s sub_81D4C58 +081d4c9c faraway_island.s sub_81D4C9C +081d4ce0 faraway_island.s sub_81D4CE0 +081d4d24 faraway_island.s sub_81D4D24 +081d4d50 ereader_screen.s sub_81D4D50 +081d4db8 ereader_screen.s sub_81D4DB8 +081d4de8 ereader_screen.s sub_81D4DE8 +081d4e30 ereader_screen.s sub_81D4E30 +081d4e60 ereader_screen.s sub_81D4E60 +081d4ec0 ereader_screen.s sub_81D4EC0 +081d4ee4 ereader_screen.s sub_81D4EE4 +081d5014 ereader_screen.s task_add_00_ereader +081d505c ereader_screen.s sub_81D505C +081d5064 ereader_screen.s sub_81D5064 +081d5084 ereader_screen.s sub_81D5084 +081d5494 trainer_hill.s CallTrainerHillFunction +081d54bc trainer_hill.s ResetTrainerHillResults +081d5520 trainer_hill.s GetFloorId +081d5530 trainer_hill.s GetTrainerHillOpponentClass +081d5554 trainer_hill.s GetTrainerHillTrainerName +081d5588 trainer_hill.s GetTrainerHillTrainerFrontSpriteId +081d55d0 trainer_hill.s InitTrainerHillBattleStruct +081d5694 trainer_hill.s FreeTrainerHillBattleStruct +081d56b0 trainer_hill.s SetUpDataStruct +081d5710 trainer_hill.s FreeDataStruct +081d572c trainer_hill.s CopyTrainerHillTrainerText +081d581c trainer_hill.s TrainerHillStartChallenge +081d58d8 trainer_hill.s sub_81D58D8 +081d5924 trainer_hill.s sub_81D5924 +081d59d0 trainer_hill.s sub_81D59D0 +081d5a70 trainer_hill.s TrainerHillResumeTimer +081d5ab4 trainer_hill.s TrainerHillSetPlayerLost +081d5ad0 trainer_hill.s TrainerHillGetChallengeStatus +081d5b2c trainer_hill.s sub_81D5B2C +081d5bbc trainer_hill.s sub_81D5BBC +081d5c00 trainer_hill.s sub_81D5C00 +081d5c18 trainer_hill.s sub_81D5C18 +081d5c5c trainer_hill.s sub_81D5C5C +081d5c84 trainer_hill.s nullsub_129 +081d5c88 trainer_hill.s nullsub_2 +081d5c8c trainer_hill.s PrintOnTrainerHillRecordsWindow +081d5df0 trainer_hill.s GetTimerValue +081d5df4 trainer_hill.s SetTimerValue +081d5df8 trainer_hill.s sub_81D5DF8 +081d5f48 trainer_hill.s sub_81D5F48 +081d5f58 trainer_hill.s sub_81D5F58 +081d5fb4 trainer_hill.s sub_81D5FB4 +081d6074 trainer_hill.s InTrainerHill +081d609c trainer_hill.s GetCurrentTrainerHillMapId +081d6100 trainer_hill.s sub_81D6100 +081d6120 trainer_hill.s sub_81D6120 +081d6134 trainer_hill.s sub_81D6134 +081d6180 trainer_hill.s LocalIdToHillTrainerId +081d619c trainer_hill.s GetHillTrainerFlag +081d61e8 trainer_hill.s SetHillTrainerFlag +081d62ac trainer_hill.s GetTrainerHillTrainerScript +081d62b4 trainer_hill.s sub_81D62B4 +081d62cc trainer_hill.s sub_81D62CC +081d6384 trainer_hill.s FillHillTrainerParty +081d639c trainer_hill.s FillHillTrainersParties +081d63c4 trainer_hill.s sub_81D63C4 +081d63c8 trainer_hill.s GetTrainerEncounterMusicIdInTrainerHill +081d642c trainer_hill.s sub_81D642C +081d6490 trainer_hill.s sub_81D6490 +081d64ac trainer_hill.s sub_81D64AC +081d64c0 trainer_hill.s sub_81D64C0 +081d64dc trainer_hill.s sub_81D64DC +081d64fc trainer_hill.s sub_81D64FC +081d6518 trainer_hill.s sub_81D6518 +081d6534 trainer_hill.s sub_81D6534 +081d6568 trainer_hill.s sub_81D6568 +081d65a0 trainer_hill.s TrainerHillSetTag +081d65e8 trainer_hill.s sub_81D65E8 +081d6640 trainer_hill.s sub_81D6640 +081d6720 rayquaza_scene.s DoRayquazaScene +081d6774 rayquaza_scene.s CB2_InitRayquazaScene +081d67d0 rayquaza_scene.s CB2_RayquazaScene +081d67ec rayquaza_scene.s VBlankCB_RayquazaScene +081d6800 rayquaza_scene.s Task_EndAfterFadeScreen +081d6840 rayquaza_scene.s Task_SetNextAnim +081d68c8 rayquaza_scene.s sub_81D68C8 +081d6904 rayquaza_scene.s sub_81D6904 +081d691c rayquaza_scene.s Task_HandleDuoFightPre +081d6984 rayquaza_scene.s sub_81D6984 +081d6a20 rayquaza_scene.s sub_81D6A20 +081d6b7c rayquaza_scene.s sub_81D6B7C +081d6d20 rayquaza_scene.s sub_81D6D20 +081d6fd0 rayquaza_scene.s VBlankCB_DuoFight +081d6fe0 rayquaza_scene.s sub_81D6FE0 +081d706c rayquaza_scene.s sub_81D706C +081d7134 rayquaza_scene.s Task_DuoFightAnim +081d7228 rayquaza_scene.s sub_81D7228 +081d736c rayquaza_scene.s Task_HandleDuoFight +081d7438 rayquaza_scene.s sub_81D7438 +081d7480 rayquaza_scene.s sub_81D7480 +081d74c8 rayquaza_scene.s sub_81D74C8 +081d750c rayquaza_scene.s sub_81D750C +081d752c rayquaza_scene.s sub_81D752C +081d75b4 rayquaza_scene.s DuoFightEnd +081d7600 rayquaza_scene.s Task_DuoFightEnd +081d7664 rayquaza_scene.s sub_81D7664 +081d7700 rayquaza_scene.s sub_81D7700 +081d7860 rayquaza_scene.s sub_81D7860 +081d78bc rayquaza_scene.s sub_81D78BC +081d7a60 rayquaza_scene.s sub_81D7A60 +081d7d14 rayquaza_scene.s sub_81D7D14 +081d7e10 rayquaza_scene.s sub_81D7E10 +081d7e9c rayquaza_scene.s sub_81D7E9C +081d7f4c rayquaza_scene.s Task_RayTakesFlightAnim +081d7fc0 rayquaza_scene.s Task_HandleRayTakesFlight +081d8164 rayquaza_scene.s Task_RayTakesFlightEnd +081d81a4 rayquaza_scene.s sub_81D81A4 +081d8260 rayquaza_scene.s sub_81D8260 +081d82b0 rayquaza_scene.s sub_81D82B0 +081d8358 rayquaza_scene.s sub_81D8358 +081d844c rayquaza_scene.s sub_81D844C +081d84ec rayquaza_scene.s Task_RayDescendsAnim +081d857c rayquaza_scene.s Task_HandleRayDescends +081d8684 rayquaza_scene.s Task_RayDescendsEnd +081d86cc rayquaza_scene.s sub_81D86CC +081d874c rayquaza_scene.s sub_81D874C +081d8828 rayquaza_scene.s sub_81D8828 +081d88d0 rayquaza_scene.s sub_81D88D0 +081d8980 rayquaza_scene.s Task_RayChargesAnim +081d89e0 rayquaza_scene.s Task_HandleRayCharges +081d8ad8 rayquaza_scene.s sub_81D8AD8 +081d8b2c rayquaza_scene.s sub_81D8B2C +081d8bb4 rayquaza_scene.s sub_81D8BB4 +081d8bec rayquaza_scene.s Task_RayChargesEnd +081d8c38 rayquaza_scene.s sub_81D8C38 +081d8cc4 rayquaza_scene.s sub_81D8CC4 +081d8db4 rayquaza_scene.s Task_RayChasesAwayAnim +081d8e80 rayquaza_scene.s Task_HandleRayChasesAway +081d8fb0 rayquaza_scene.s sub_81D8FB0 +081d9034 rayquaza_scene.s Task_RayChasesAwayEnd +081d90a8 rayquaza_scene.s sub_81D90A8 +081d9274 rayquaza_scene.s sub_81D9274 +081d9338 rayquaza_scene.s sub_81D9338 +081d93d8 rayquaza_scene.s sub_81D93D8 +081d9420 rayquaza_scene.s sub_81D9420 +081d94d4 rayquaza_scene.s sub_81D94D4 +081d9528 rayquaza_scene.s sub_81D9528 +081d961c rayquaza_scene.s sub_81D961C +081d97e0 rayquaza_scene.s sub_81D97E0 +081d9868 rayquaza_scene.s sub_81D9868 +081d98b4 rayquaza_scene.s sub_81D98B4 +081d99bc walda_phrase.s TryBufferWaldaPhrase +081d99e4 walda_phrase.s DoWaldaNamingScreen +081d9a1c walda_phrase.s CB2_HandleGivenWaldaPhrase +081d9a98 walda_phrase.s GetWaldaPhraseInputCase +081d9ac4 walda_phrase.s TryGetWallpaperWithWaldaPhrase +081d9b40 walda_phrase.s GetLetterTableId +081d9b68 walda_phrase.s TryCalculateWallpaper +081d9c90 walda_phrase.s sub_81D9C90 +081d9cdc walda_phrase.s sub_81D9CDC +081d9d0c walda_phrase.s sub_81D9D0C +081d9d28 walda_phrase.s sub_81D9D28 +081d9d40 walda_phrase.s sub_81D9D40 +081d9d5c walda_phrase.s sub_81D9D5C +081d9dac walda_phrase.s sub_81D9DAC +081d9de4 contest_link_81D9DE4.s sub_81D9DE4 +081d9f14 contest_link_81D9DE4.s sub_81D9F14 +081d9f30 contest_link_81D9DE4.s sub_81D9F30 +081d9f4c contest_link_81D9DE4.s sub_81D9F4C +081d9f68 contest_link_81D9DE4.s sub_81D9F68 +081da10c contest_link_81D9DE4.s sub_81DA10C +081da138 contest_link_81D9DE4.s sub_81DA138 +081da160 contest_link_81D9DE4.s sub_81DA160 +081da244 contest_link_81D9DE4.s sub_81DA244 +081da2e8 contest_link_81D9DE4.s sub_81DA2E8 +081da3b8 contest_link_81D9DE4.s sub_81DA3B8 +081da488 contest_link_81D9DE4.s sub_81DA488 +081da57c gym_leader_rematch.s UpdateGymLeaderRematch +081da5d4 gym_leader_rematch.s UpdateGymLeaderRematchFromArray +081da6cc gym_leader_rematch.s GetRematchIndex +081da700 unk_transition.s sub_81DA700 +081da74c unk_transition.s sub_81DA74C +081da848 unk_transition.s sub_81DA848 +081da8bc unk_transition.s sub_81DA8BC +081da9bc unk_transition.s sub_81DA9BC +081daa20 unk_transition.s sub_81DAA20 +081daa74 unk_transition.s sub_81DAA74 +081daacc unk_transition.s sub_81DAACC +081dab4c unk_transition.s sub_81DAB4C +081dabbc unk_transition.s sub_81DABBC +081dabdc unk_transition.s Phase2Task_34 +081dac14 unk_transition.s sub_81DAC14 +081dac80 unk_transition.s sub_81DAC80 +081dacb4 unk_transition.s Phase2Task_35 +081dacec unk_transition.s sub_81DACEC +081dad58 unk_transition.s sub_81DAD58 +081dad8c unk_transition.s Phase2Task_36 +081dadc4 unk_transition.s sub_81DADC4 +081dae44 unk_transition.s sub_81DAE44 +081dae78 unk_transition.s Phase2Task_37 +081daeb0 unk_transition.s sub_81DAEB0 +081daf34 unk_transition.s sub_81DAF34 +081daf68 unk_transition.s Phase2Task_38 +081dafa0 unk_transition.s sub_81DAFA0 +081db02c unk_transition.s sub_81DB02C +081db060 unk_transition.s Phase2Task_39 +081db098 unk_transition.s sub_81DB098 +081db124 unk_transition.s sub_81DB124 +081db158 unk_transition.s Phase2Task_40 +081db190 unk_transition.s sub_81DB190 +081db224 unk_transition.s sub_81DB224 +081db258 unk_transition.s Phase2Task_41 +081db290 unk_transition.s sub_81DB290 +081db328 unk_transition.s sub_81DB328 +081db35c international_string_util.s GetStringCenterAlignXOffset +081db368 international_string_util.s GetStringRightAlignXOffset +081db374 international_string_util.s GetStringCenterAlignXOffsetWithLetterSpacing +081db384 international_string_util.s GetStringWidthDifference +081db3a8 international_string_util.s GetMaxWidthInMenuTable +081db3d8 international_string_util.s sub_81DB3D8 +081db41c international_string_util.s Intl_GetListMenuWidth +081db468 international_string_util.s CopyMonCategoryText +081db494 international_string_util.s sub_81DB494 +081db4dc international_string_util.s PadNameString +081db52c international_string_util.s sub_81DB52C +081db554 international_string_util.s sub_81DB554 +081db5ac international_string_util.s sub_81DB5AC +081db5e8 international_string_util.s TVShowConvertInternationalString +081db604 international_string_util.s sub_81DB604 +081db620 international_string_util.s sub_81DB620 +082ded70 libgcnmultiboot.s GameCubeMultiBoot_Hash +082ded84 libgcnmultiboot.s GameCubeMultiBoot_Main +082dee84 libgcnmultiboot.s GameCubeMultiBoot_ExecuteProgram +082dee98 libgcnmultiboot.s GameCubeMultiBoot_Init +082deee2 libgcnmultiboot.s GameCubeMultiBoot_HandleSerialInterrupt +082df012 libgcnmultiboot.s GameCubeMultiBoot_Quit +082df04c m4a.s umul3232H32 +082df05c m4a.s SoundMain +082df0e0 m4a.s SoundMainRAM +082df49b m4a.s sub_82DF49C +082df757 m4a.s sub_82DF758 +082df7e4 m4a.s SoundMainBTM +082df7fc m4a.s RealClearChain +082df81c m4a.s ply_fine +082df84c m4a.s MPlayJumpTableCopy +082df864 m4a.s ldrb_r3_r2 +082df866 m4a.s chk_adr_r2 +082df880 m4a.s ld_r3_tp_adr_i +082df88c m4a.s ply_goto +082df8ac m4a.s ply_patt +082df8c8 m4a.s ply_pend +082df8dc m4a.s ply_rept +082df90c m4a.s ply_prio +082df918 m4a.s ply_tempo +082df92c m4a.s ply_keysh +082df940 m4a.s ply_voice +082df970 m4a.s ply_vol +082df984 m4a.s ply_pan +082df998 m4a.s ply_bend +082df9ac m4a.s ply_bendr +082df9c0 m4a.s ply_lfodl +082df9cc m4a.s ply_modt +082df9e4 m4a.s ply_tune +082df9f8 m4a.s ply_port +082dfa10 m4a.s m4aSoundVSync +082dfa5c m4a.s MPlayMain +082dfcc4 m4a.s TrackStop +082dfd08 m4a.s ChnVolSetAsm +082dfd38 m4a.s ply_note +082dff3c m4a.s ply_endtie +082dff7c m4a.s clear_modM +082dff98 m4a.s ld_r3_tp_adr_i_unchecked +082dffa4 m4a.s ply_lfos +082dffb8 m4a.s ply_mod +082dffcc m4a.s MidiKeyToFreq +082e0030 m4a.s UnusedDummyFunc +082e0034 m4a.s MPlayContinue +082e0050 m4a.s MPlayFadeOut +082e0070 m4a.s m4aSoundInit +082e0124 m4a.s m4aSoundMain +082e0130 m4a.s m4aSongNumStart +082e015c m4a.s m4aSongNumStartOrChange +082e01a8 m4a.s m4aSongNumStartOrContinue +082e01fc m4a.s m4aSongNumStop +082e0230 m4a.s m4aSongNumContinue +082e0264 m4a.s m4aMPlayAllStop +082e02a8 m4a.s m4aMPlayContinue +082e02b4 m4a.s m4aMPlayAllContinue +082e02f8 m4a.s m4aMPlayFadeOut +082e0308 m4a.s m4aMPlayFadeOutTemporarily +082e0328 m4a.s m4aMPlayFadeIn +082e0350 m4a.s m4aMPlayImmInit +082e0398 m4a.s MPlayExtender +082e04b0 m4a.s MusicPlayerJumpTableCopy +082e04b4 m4a.s ClearChain +082e04c8 m4a.s Clear64byte +082e04dc m4a.s SoundInit +082e05d4 m4a.s SampleFreqSet +082e0678 m4a.s m4aSoundMode +082e0710 m4a.s SoundClear +082e0764 m4a.s m4aSoundVSyncOff +082e07e0 m4a.s m4aSoundVSyncOn +082e081c m4a.s MPlayOpen +082e0894 m4a.s MPlayStart +082e0978 m4a.s m4aMPlayStop +082e09b8 m4a.s FadeOutBody +082e0a80 m4a.s TrkVolPitSet +082e0b34 m4a.s MidiKeyToCgbFreq +082e0bdc m4a.s CgbOscOff +082e0c2c m4a.s CgbModVol +082e0ca8 m4a.s CgbSound +082e10f4 m4a.s m4aMPlayTempoControl +082e111c m4a.s m4aMPlayVolumeControl +082e1184 m4a.s m4aMPlayPitchControl +082e11f8 m4a.s m4aMPlayPanpotControl +082e1260 m4a.s ClearModM +082e1280 m4a.s m4aMPlayModDepthSet +082e12f4 m4a.s m4aMPlayLFOSpeedSet +082e1368 m4a.s ply_memacc +082e14c0 m4a.s ply_xcmd +082e14e0 m4a.s ply_xxx +082e14f4 m4a.s ply_xwave +082e153c m4a.s ply_xtype +082e1550 m4a.s ply_xatta +082e1564 m4a.s ply_xdeca +082e1578 m4a.s ply_xsust +082e158c m4a.s ply_xrele +082e15a0 m4a.s ply_xiecv +082e15ac m4a.s ply_xiecl +082e15b8 m4a.s ply_xleng +082e15cc m4a.s ply_xswee +082e15e0 m4a.s ply_xcmd_0C +082e1628 m4a.s ply_xcmd_0D +082e1670 m4a.s DummyFunc +082e1674 m4a.s SetPokemonCryTone +082e1744 m4a.s SetPokemonCryVolume +082e1758 m4a.s SetPokemonCryPanpot +082e1770 m4a.s SetPokemonCryPitch +082e17a8 m4a.s SetPokemonCryLength +082e17b4 m4a.s SetPokemonCryRelease +082e17c0 m4a.s SetPokemonCryProgress +082e17cc m4a.s IsPokemonCryPlaying +082e17e4 m4a.s SetPokemonCryChorus +082e1810 m4a.s SetPokemonCryStereo +082e1850 m4a.s SetPokemonCryPriority +082e185c agb_flash.s SwitchFlashBank +082e1880 agb_flash.s ReadFlashId +082e191c agb_flash.s FlashTimerIntr +082e1944 agb_flash.s SetFlashTimerIntr +082e1980 agb_flash.s StartFlashTimer +082e1a28 agb_flash.s StopFlashTimer +082e1a6c agb_flash.s ReadFlash1 +082e1a70 agb_flash.s SetReadFlash1 +082e1ab0 agb_flash.s ReadFlash_Core +082e1ad4 agb_flash.s ReadFlash +082e1b70 agb_flash.s VerifyFlashSector_Core +082e1ba0 agb_flash.s VerifyFlashSector +082e1c38 agb_flash.s VerifyFlashSectorNBytes +082e1cd0 agb_flash.s ProgramFlashSectorAndVerify +082e1d14 agb_flash.s ProgramFlashSectorAndVerifyNBytes +082e1d5c agb_flash_1m.s IdentifyFlash +082e1dfc agb_flash_1m.s WaitForFlashWrite_Common +082e1e9c agb_flash_mx.s EraseFlashChip_MX +082e1f10 agb_flash_mx.s EraseFlashSector_MX +082e1fe0 agb_flash_mx.s ProgramFlashByte_MX +082e2074 agb_flash_mx.s ProgramByte +082e20ac agb_flash_mx.s ProgramFlashSector_MX +082e2150 siirtc.s SiiRtcUnprotect +082e2168 siirtc.s SiiRtcProtect +082e2180 siirtc.s SiiRtcProbe +082e2258 siirtc.s SiiRtcReset +082e22dc siirtc.s SiiRtcGetStatus +082e23a8 siirtc.s SiiRtcSetStatus +082e2450 siirtc.s SiiRtcGetDateTime +082e2500 siirtc.s SiiRtcSetDateTime +082e259c siirtc.s SiiRtcGetTime +082e2650 siirtc.s SiiRtcSetTime +082e26ec siirtc.s SiiRtcSetAlarm +082e2820 siirtc.s WriteCommand +082e28c4 siirtc.s WriteData +082e2964 siirtc.s ReadData +082e29f0 siirtc.s EnableGpioPortRead +082e2a04 siirtc.s DisableGpioPortRead +082e2a18 librfu_stwi.s STWI_init_all +082e2af0 librfu_stwi.s STWI_init_timer +082e2b2c librfu_stwi.s AgbRFU_SoftReset +082e2be0 librfu_stwi.s STWI_set_MS_mode +082e2bf4 librfu_stwi.s STWI_read_status +082e2c54 librfu_stwi.s STWI_init_Callback_M +082e2c60 librfu_stwi.s STWI_init_Callback_S +082e2c6c librfu_stwi.s STWI_set_Callback_M +082e2c78 librfu_stwi.s STWI_set_Callback_S +082e2c84 librfu_stwi.s STWI_set_Callback_ID +082e2c90 librfu_stwi.s STWI_poll_CommandEnd +082e2cb8 librfu_stwi.s STWI_send_ResetREQ +082e2cdc librfu_stwi.s STWI_send_LinkStatusREQ +082e2d00 librfu_stwi.s STWI_send_VersionStatusREQ +082e2d24 librfu_stwi.s STWI_send_SystemStatusREQ +082e2d48 librfu_stwi.s STWI_send_SlotStatusREQ +082e2d6c librfu_stwi.s STWI_send_ConfigStatusREQ +082e2d90 librfu_stwi.s STWI_send_GameConfigREQ +082e2de8 librfu_stwi.s STWI_send_SystemConfigREQ +082e2e28 librfu_stwi.s STWI_send_SC_StartREQ +082e2e4c librfu_stwi.s STWI_send_SC_PollingREQ +082e2e70 librfu_stwi.s STWI_send_SC_EndREQ +082e2e94 librfu_stwi.s STWI_send_SP_StartREQ +082e2eb8 librfu_stwi.s STWI_send_SP_PollingREQ +082e2edc librfu_stwi.s STWI_send_SP_EndREQ +082e2f00 librfu_stwi.s STWI_send_CP_StartREQ +082e2f30 librfu_stwi.s STWI_send_CP_PollingREQ +082e2f54 librfu_stwi.s STWI_send_CP_EndREQ +082e2f78 librfu_stwi.s STWI_send_DataTxREQ +082e2fc0 librfu_stwi.s STWI_send_DataTxAndChangeREQ +082e3008 librfu_stwi.s STWI_send_DataRxREQ +082e302c librfu_stwi.s STWI_send_MS_ChangeREQ +082e3050 librfu_stwi.s STWI_send_DataReadyAndChangeREQ +082e30a0 librfu_stwi.s STWI_send_DisconnectedAndChangeREQ +082e30e0 librfu_stwi.s STWI_send_ResumeRetransmitAndChangeREQ +082e3104 librfu_stwi.s STWI_send_DisconnectREQ +082e3134 librfu_stwi.s STWI_send_TestModeREQ +082e316c librfu_stwi.s STWI_send_CPR_StartREQ +082e31a8 librfu_stwi.s STWI_send_CPR_PollingREQ +082e31cc librfu_stwi.s STWI_send_CPR_EndREQ +082e31f0 librfu_stwi.s STWI_send_StopModeREQ +082e3214 librfu_stwi.s STWI_intr_timer +082e3278 librfu_stwi.s STWI_set_timer +082e3324 librfu_stwi.s STWI_stop_timer +082e3350 librfu_stwi.s STWI_init +082e3428 librfu_stwi.s STWI_start_Command +082e349c librfu_stwi.s STWI_restart_Command +082e351c librfu_stwi.s STWI_reset_ClockCounter +082e3553 librfu_intr.s IntrSIO32 +082e35b7 librfu_intr.s sio32intr_clock_master +082e3847 librfu_intr.s sio32intr_clock_slave +082e3c53 librfu_intr.s handshake_wait +082e3cbb librfu_intr.s STWI_set_timer_in_RAM +082e3dcb librfu_intr.s STWI_stop_timer_in_RAM +082e3e1b librfu_intr.s STWI_init_slave +082e3ea7 librfu_intr.s sub_82E3EA8 +082e3eab librfu_intr.s sub_82E3EAC +082e3eaf librfu_intr.s sub_82E3EB0 +082e3eb4 librfu_rfu.s rfu_initializeAPI +082e3fdc librfu_rfu.s rfu_STC_clearAPIVariables +082e4064 librfu_rfu.s rfu_REQ_PARENT_resumeRetransmitAndChange +082e4078 librfu_rfu.s rfu_UNI_PARENT_getDRAC_ACK +082e40c0 librfu_rfu.s rfu_setTimerInterrupt +082e40d4 librfu_rfu.s rfu_getSTWIRecvBuffer +082e40e4 librfu_rfu.s rfu_setMSCCallback +082e40f0 librfu_rfu.s rfu_setREQCallback +082e410c librfu_rfu.s rfu_enableREQCallback +082e4138 librfu_rfu.s rfu_STC_REQ_callback +082e4178 librfu_rfu.s rfu_CB_defaultCallback +082e41e8 librfu_rfu.s rfu_waitREQComplete +082e41fc librfu_rfu.s rfu_REQ_RFUStatus +082e4210 librfu_rfu.s rfu_getRFUStatus +082e424c librfu_rfu.s sub_82E424C +082e425c librfu_rfu.s sub_82E425C +082e42c4 librfu_rfu.s rfu_REQ_stopMode +082e436c librfu_rfu.s rfu_CB_stopMode +082e4398 librfu_rfu.s rfu_REQBN_softReset_and_checkID +082e43d4 librfu_rfu.s rfu_REQ_reset +082e43e8 librfu_rfu.s rfu_CB_reset +082e440c librfu_rfu.s rfu_REQ_configSystem +082e4474 librfu_rfu.s rfu_REQ_configGameData +082e4500 librfu_rfu.s rfu_CB_configGameData +082e459c librfu_rfu.s rfu_REQ_startSearchChild +082e460c librfu_rfu.s rfu_CB_startSearchChild +082e4634 librfu_rfu.s rfu_STC_clearLinkStatus +082e4698 librfu_rfu.s rfu_REQ_pollSearchChild +082e46ac librfu_rfu.s rfu_REQ_endSearchChild +082e46c0 librfu_rfu.s rfu_CB_pollAndEndSearchChild +082e4748 librfu_rfu.s rfu_STC_readChildList +082e4804 librfu_rfu.s rfu_REQ_startSearchParent +082e4818 librfu_rfu.s rfu_CB_startSearchParent +082e483c librfu_rfu.s rfu_REQ_pollSearchParent +082e4850 librfu_rfu.s sub_82E4850 +082e4874 librfu_rfu.s rfu_REQ_endSearchParent +082e4888 librfu_rfu.s rfu_STC_readParentCandidateList +082e4998 librfu_rfu.s rfu_REQ_startConnectParent +082e4a00 librfu_rfu.s rfu_REQ_pollConnectParent +082e4a14 librfu_rfu.s rfu_CB_pollConnectParent +082e4b34 librfu_rfu.s rfu_getConnectParentStatus +082e4b68 librfu_rfu.s rfu_REQ_endConnectParent +082e4ba0 librfu_rfu.s rfu_syncVBlank +082e4c80 librfu_rfu.s rfu_REQBN_watchLink +082e506c librfu_rfu.s rfu_STC_removeLinkData +082e512c librfu_rfu.s rfu_REQ_disconnect +082e51bc librfu_rfu.s rfu_CB_disconnect +082e529c librfu_rfu.s rfu_REQ_CHILD_startConnectRecovery +082e52f8 librfu_rfu.s rfu_REQ_CHILD_pollConnectRecovery +082e530c librfu_rfu.s rfu_CB_CHILD_pollConnectRecovery +082e53b0 librfu_rfu.s rfu_CHILD_getConnectRecoveryStatus +082e53e0 librfu_rfu.s rfu_REQ_CHILD_endConnectRecovery +082e53f4 librfu_rfu.s sub_82E53F4 +082e540a librfu_rfu.s sub_82E540A +082e5424 librfu_rfu.s rfu_REQ_changeMasterSlave +082e5450 librfu_rfu.s rfu_getMasterSlave +082e5488 librfu_rfu.s rfu_clearAllSlot +082e5528 librfu_rfu.s rfu_STC_releaseFrame +082e5594 librfu_rfu.s rfu_clearSlot +082e5750 librfu_rfu.s rfu_setRecvBuffer +082e57b0 librfu_rfu.s rfu_NI_setSendData +082e57dc librfu_rfu.s rfu_UNI_setSendData +082e5818 librfu_rfu.s rfu_NI_CHILD_setSendGameName +082e584c librfu_rfu.s rfu_STC_setSendData_org +082e5a54 librfu_rfu.s rfu_changeSendTarget +082e5bbc librfu_rfu.s rfu_NI_stopReceivingData +082e5c34 librfu_rfu.s rfu_UNI_changeAndReadySendData +082e5cc8 librfu_rfu.s rfu_UNI_readySendData +082e5cf4 librfu_rfu.s rfu_UNI_clearRecvNewDataFlag +082e5d14 librfu_rfu.s rfu_REQ_sendData +082e5e58 librfu_rfu.s rfu_CB_sendData +082e5ef0 librfu_rfu.s rfu_CB_sendData2 +082e5f00 librfu_rfu.s sub_82E5F00 +082e5f28 librfu_rfu.s rfu_constructSendLLFrame +082e6060 librfu_rfu.s rfu_STC_NI_constructLLSF +082e6220 librfu_rfu.s rfu_STC_UNI_constructLLSF +082e62f4 librfu_rfu.s rfu_REQ_recvData +082e6334 librfu_rfu.s rfu_CB_recvData +082e6420 librfu_rfu.s rfu_STC_PARENT_analyzeRecvPacket +082e64b8 librfu_rfu.s rfu_STC_CHILD_analyzeRecvPacket +082e6510 librfu_rfu.s rfu_STC_analyzeLLSF +082e6754 librfu_rfu.s rfu_STC_UNI_receive +082e6808 librfu_rfu.s rfu_STC_NI_receive_Sender +082e69f4 librfu_rfu.s rfu_STC_NI_receive_Receiver +082e6b70 librfu_rfu.s rfu_STC_NI_initSlot_asRecvControllData +082e6c00 librfu_rfu.s rfu_STC_NI_initSlot_asRecvDataEntity +082e6cb8 librfu_rfu.s rfu_NI_checkCommFailCounter +082e6d54 librfu_rfu.s rfu_REQ_noise +082e6d6c librfu.s sub_82E6D6C +082e6e20 librfu.s sub_82E6E20 +082e6e94 librfu.s sub_82E6E94 +082e6f88 librfu.s sub_82E6F88 +082e6fa2 librfu.s sub_82E6FA2 +082e7078 libagbsyscall.s ArcTan2 +082e707c libagbsyscall.s BgAffineSet +082e7080 libagbsyscall.s CpuFastSet +082e7084 libagbsyscall.s CpuSet +082e7088 libagbsyscall.s Div +082e708c libagbsyscall.s LZ77UnCompVram +082e7090 libagbsyscall.s LZ77UnCompWram +082e7094 libagbsyscall.s MultiBoot +082e709c libagbsyscall.s ObjAffineSet +082e70a0 libagbsyscall.s RLUnCompVram +082e70a4 libagbsyscall.s RLUnCompWram +082e70a8 libagbsyscall.s RegisterRamReset +082e70ac libagbsyscall.s SoftReset +082e70c4 libagbsyscall.s Sqrt +082e70c8 libagbsyscall.s VBlankIntrWait +082e70d0 libgcc.s _call_via_r0 +082e70d4 libgcc.s _call_via_r1 +082e70d8 libgcc.s _call_via_r2 +082e70dc libgcc.s _call_via_r3 +082e70e0 libgcc.s _call_via_r4 +082e70e4 libgcc.s _call_via_r5 +082e70e8 libgcc.s _call_via_r6 +082e70ec libgcc.s _call_via_r7 +082e70f0 libgcc.s _call_via_r8 +082e70f4 libgcc.s _call_via_r9 +082e70f8 libgcc.s _call_via_sl +082e70fc libgcc.s _call_via_fp +082e7100 libgcc.s _call_via_ip +082e7104 libgcc.s _call_via_sp +082e7108 libgcc.s _call_via_lr +082e710c libgcc.s __divdi3 +082e7540 libgcc.s __divsi3 +082e75d4 libgcc.s __div0 +082e75d8 libgcc.s __fixunsdfsi +082e761c libgcc.s __fixunssfsi +082e7650 libgcc.s __modsi3 +082e7720 libgcc.s __muldi3 +082e7790 libgcc.s __udivdi3 +082e7b68 libgcc.s __udivsi3 +082e7be0 libgcc.s __umodsi3 +082e7ca0 libgcc.s __pack_d +082e7de8 libgcc.s __unpack_d +082e812c libgcc.s __adddf3 +082e815c libgcc.s __subdf3 +082e8194 libgcc.s __muldf3 +082e843c libgcc.s __divdf3 +082e85c4 libgcc.s __fpcmp_parts_d +082e86c4 libgcc.s __cmpdf2 +082e86f0 libgcc.s __eqdf2 +082e873c libgcc.s __nedf2 +082e8788 libgcc.s __gtdf2 +082e87d4 libgcc.s __gedf2 +082e8820 libgcc.s __ltdf2 +082e886c libgcc.s __ledf2 +082e88b8 libgcc.s __floatsidf +082e8934 libgcc.s __fixdfsi +082e89a8 libgcc.s __negdf2 +082e89d0 libgcc.s __make_dp +082e89f8 libgcc.s __truncdfsf2 +082e8a3c libgcc.s __pack_f +082e8af4 libgcc.s __unpack_f +082e8b70 libgcc.s _fpadd_parts +082e8cec libgcc.s __addsf3 +082e8d18 libgcc.s __subsf3 +082e8d4c libgcc.s __mulsf3 +082e8eb0 libgcc.s __divsf3 +082e8f9c libgcc.s __fpcmp_parts_f +082e9080 libgcc.s __cmpsf2 +082e90a8 libgcc.s __eqsf2 +082e90f0 libgcc.s __nesf2 +082e9138 libgcc.s __gtsf2 +082e9180 libgcc.s __gesf2 +082e91c8 libgcc.s __ltsf2 +082e9210 libgcc.s __lesf2 +082e9258 libgcc.s __floatsisf +082e92b8 libgcc.s __fixsfsi +082e9320 libgcc.s __negsf2 +082e9344 libgcc.s __make_fp +082e935c libgcc.s __extendsfdf2 +082e9388 libgcc.s __lshrdi3 +082e93bc libgcc.s __negdi2 +082e93d4 libgcc.s memcpy +082e9434 libgcc.s memset +082e9488 libgcc.s strcmp +082e94e4 libgcc.s strcpy diff --git a/ld_script_jp.txt b/ld_script_jp.txt index 4cb7b1c..f9f7b56 100644 --- a/ld_script_jp.txt +++ b/ld_script_jp.txt @@ -15,7 +15,279 @@ SECTIONS { .text : ALIGN(4) { - asm/rom.o(.text); + asm/unk0.o(.text); + asm/main.o(.text); + asm/alloc.o(.text); + asm/dma3_manager.o(.text); + asm/gpu_regs.o(.text); + asm/bg.o(.text); + asm/blit.o(.text); + asm/window.o(.text); + asm/text.o(.text); + asm/sprite.o(.text); + asm/string_util.o(.text); + asm/link.o(.text); + asm/link_rfu.o(.text); + asm/union_room.o(.text); + asm/mystery_gift.o(.text); + asm/union_room_player_avatar.o(.text); + asm/union_room_battle.o(.text); + asm/mevent2.o(.text); + asm/mevent_801BAAC.o(.text); + asm/mevent_server.o(.text); + asm/mevent_client.o(.text); + asm/mevent_server_helpers.o(.text); + asm/mevent_news.o(.text); + asm/union_room_chat.o(.text); + asm/berry_crush.o(.text); + asm/berry_powder.o(.text); + asm/dodrio_berry_picking.o(.text); + asm/pokemon_jump.o(.text); + asm/rtc.o(.text); + asm/main_menu.o(.text); + asm/battle_controllers.o(.text); + asm/decompress.o(.text); + asm/rom_8034C54.o(.text); + asm/battle_bg.o(.text); + asm/battle_main.o(.text); + asm/battle_util.o(.text); + asm/battle_script_commands.o(.text); + asm/battle_util2.o(.text); + asm/battle_controller_player.o(.text); + asm/battle_gfx_sfx_util.o(.text); + asm/battle_controller_opponent.o(.text); + asm/battle_ai_switch_items.o(.text); + asm/battle_controller_link_opponent.o(.text); + asm/pokemon.o(.text); + asm/trig.o(.text); + asm/random.o(.text); + asm/util.o(.text); + asm/daycare.o(.text); + asm/egg_hatch.o(.text); + asm/battle_interface.o(.text); + asm/smokescreen.o(.text); + asm/pokeball.o(.text); + asm/load_save.o(.text); + asm/trade.o(.text); + asm/berry_blender.o(.text); + asm/play_time.o(.text); + asm/new_game.o(.text); + asm/overworld.o(.text); + asm/fieldmap.o(.text); + asm/metatile_behavior.o(.text); + asm/field_camera.o(.text); + asm/field_door.o(.text); + asm/field_player_avatar.o(.text); + asm/event_object_movement.o(.text); + asm/field_message_box.o(.text); + asm/event_obj_lock.o(.text); + asm/text_window.o(.text); + asm/script.o(.text); + asm/scrcmd.o(.text); + asm/field_control_avatar.o(.text); + asm/event_data.o(.text); + asm/coord_event_weather.o(.text); + asm/field_tasks.o(.text); + asm/clock.o(.text); + asm/reset_rtc_screen.o(.text); + asm/start_menu.o(.text); + asm/tileset_anims.o(.text); + asm/palette.o(.text); + asm/sound.o(.text); + asm/battle_anim.o(.text); + asm/battle_anim_mons.o(.text); + asm/task.o(.text); + asm/reshow_battle_screen.o(.text); + asm/battle_anim_status_effects.o(.text); + asm/title_screen.o(.text); + asm/field_weather.o(.text); + asm/field_weather_effect.o(.text); + asm/field_screen_effect.o(.text); + asm/battle_setup.o(.text); + asm/cable_club.o(.text); + asm/trainer_see.o(.text); + asm/wild_encounter.o(.text); + asm/field_effect.o(.text); + asm/scanline_effect.o(.text); + asm/pokedex.o(.text); + asm/trainer_card.o(.text); + asm/frontier_pass.o(.text); + asm/pokemon_storage_system.o(.text); + asm/pokemon_icon.o(.text); + asm/script_movement.o(.text); + asm/fldeff_cut.o(.text); + asm/mail_data.o(.text); + asm/map_name_popup.o(.text); + asm/item_menu_icons.o(.text); + asm/battle_anim_mon_movement.o(.text); + asm/item.o(.text); + asm/contest.o(.text); + asm/shop.o(.text); + asm/fldeff_escalator.o(.text); + asm/berry.o(.text); + asm/script_menu.o(.text); + asm/naming_screen.o(.text); + asm/money.o(.text); + asm/contest_effect.o(.text); + asm/record_mixing.o(.text); + asm/secret_base.o(.text); + asm/tv.o(.text); + asm/contest_link_80F57C4.o(.text); + asm/script_pokemon_util_80F87D8.o(.text); + asm/field_poison.o(.text); + asm/fldeff_misc.o(.text); + asm/field_special_scene.o(.text); + asm/rotating_gate.o(.text); + asm/safari_zone.o(.text); + asm/contest_link_80FC4F4.o(.text); + asm/item_use.o(.text); + asm/battle_anim_effects_1.o(.text); + asm/battle_anim_effects_2.o(.text); + asm/water.o(.text); + asm/fire.o(.text); + asm/electric.o(.text); + asm/ice.o(.text); + asm/fight.o(.text); + asm/poison.o(.text); + asm/flying.o(.text); + asm/psychic.o(.text); + asm/bug.o(.text); + asm/rock.o(.text); + asm/ghost.o(.text); + asm/dragon.o(.text); + asm/dark.o(.text); + asm/ground.o(.text); + asm/normal.o(.text); + asm/battle_anim_utility_funcs.o(.text); + asm/battle_intro.o(.text); + asm/bike.o(.text); + asm/easy_chat.o(.text); + asm/mon_markings.o(.text); + asm/mauville_old_man.o(.text); + asm/mail.o(.text); + asm/menu_helpers.o(.text); + asm/dewford_trend.o(.text); + asm/heal_location.o(.text); + asm/region_map.o(.text); + asm/contest_painting_effects.o(.text); + asm/decoration.o(.text); + asm/slot_machine.o(.text); + asm/contest_painting.o(.text); + asm/battle_ai_script_commands.o(.text); + asm/trader.o(.text); + asm/starter_choose.o(.text); + asm/wallclock.o(.text); + asm/fldeff_rocksmash.o(.text); + asm/pokeblock.spokeblock.o(.text); + asm/fldeff_flash.o(.text); + asm/post_battle_event_funcs.o(.text); + asm/time_events.o(.text); + asm/birch_pc.o(.text); + asm/hof_pc.o(.text); + asm/field_specials.o(.text); + asm/battle_records.o(.text); + asm/pokedex_area_screen.o(.text); + asm/evolution_scene.o(.text); + asm/roulette.o(.text); + asm/pokedex_cry_screen.o(.text); + asm/coins.o(.text); + asm/landmark.o(.text); + asm/fldeff_strength.o(.text); + asm/battle_transition.o(.text); + asm/battle_controller_link_partner.o(.text); + asm/battle_message.o(.text); + asm/cable_car.o(.text); + asm/math_util.o(.text); + asm/roulette_util.o(.text); + asm/rom_81520A8.o(.text); + asm/save.o(.text); + asm/mystery_event_script.o(.text); + asm/field_effect_helpers.o(.text); + asm/contest_ai.o(.text); + asm/battle_anim_sound_tasks.o(.text); + asm/battle_controller_safari.o(.text); + asm/fldeff_sweetscent.o(.text); + asm/battle_anim_effects_3.o(.text); + asm/move_relearner.o(.text); + asm/fldeff_softboiled.o(.text); + asm/decoration_inventory.o(.text); + asm/roamer.o(.text); + asm/battle_tower.o(.text); + asm/use_pokeblock.o(.text); + asm/battle_controller_wally.o(.text); + asm/player_pc.o(.text); + asm/intro.o(.text); + asm/reset_save_heap.o(.text); + asm/field_region_map.o(.text); + asm/battle_anim_special.o(.text); + asm/hall_of_fame.o(.text); + asm/credits.o(.text); + asm/lottery_corner.o(.text); + asm/option_menu.o(.text); + asm/berry_tag_screen.o(.text); + asm/save_failed_screen.o(.text); + asm/braille_puzzles.o(.text); + asm/pokeblock_feed.o(.text); + asm/clear_save_data_screen.o(.text); + asm/diploma.o(.text); + asm/intro_credits_graphics.o(.text); + asm/evolution_graphics.o(.text); + asm/bard_music.o(.text); + asm/fldeff_teleport.o(.text); + asm/battle_tv.o(.text); + asm/pokemon_animation.o(.text); + asm/recorded_battle.o(.text); + asm/battle_controller_recorded_opponent.o(.text); + asm/battle_controller_recorded_player.o(.text); + asm/trainer_pokemon_sprites.o(.text); + asm/lilycove_lady.o(.text); + asm/battle_dome.o(.text); + asm/battle_palace.o(.text); + asm/match_call.o(.text); + asm/menu.o(.text); + asm/battle_factory_screen.o(.text); + asm/apprentice.o(.text); + asm/frontier_util.o(.text); + asm/battle_arena.o(.text); + asm/battle_factory.o(.text); + asm/battle_pike.o(.text); + asm/mossdeep_gym.o(.text); + asm/battle_pyramid.o(.text); + asm/item_menu.o(.text); + asm/list_menu.o(.text); + asm/dynamic_placeholder_text_util.o(.text); + asm/save_location.o(.text); + asm/item_icon.o(.text); + asm/party_menu.o(.text); + asm/battle_tent.o(.text); + asm/unk_text_util_2.o(.text); + asm/multiboot.o(.text); + asm/unk_81BAD84.o(.text); + asm/battle_controller_player_partner.o(.text); + asm/mirage_tower.o(.text); + asm/berry_fix_program.o(.text); + asm/pokemon_summary_screen.o(.text); + asm/unk_pokedex_area_screen_helper.o(.text); + asm/battle_pyramid_bag.o(.text); + asm/pokenav.o(.text); + asm/pokenav_main_menu.o(.text); + asm/pokenav_match_call_ui.o(.text); + asm/pokenav_unk_1.o(.text); + asm/pokenav_unk_2.o(.text); + asm/pokenav_unk_3.o(.text); + asm/pokenav_unk_4.o(.text); + asm/pokenav_unk_10.o(.text); + asm/pokenav_match_call_data.o(.text); + asm/menu_specialized.o(.text); + asm/ereader_helpers.o(.text); + asm/faraway_island.o(.text); + asm/ereader_screen.o(.text); + asm/trainer_hill.o(.text); + asm/rayquaza_scene.o(.text); + asm/walda_phrase.o(.text); + asm/contest_link_81D9DE4.o(.text); + asm/gym_leader_rematch.o(.text); + asm/unk_transition.o(.text); } =0 script_data : ALIGN(4) diff --git a/pokeemerald_jp.cfg b/pokeemerald_jp.cfg index fea5b8d..efc4684 100644 --- a/pokeemerald_jp.cfg +++ b/pokeemerald_jp.cfg @@ -3,13 +3,15 @@ arm_func 0x8000204 _init arm_func 0x8000234 _init.ret arm_func 0x8000248 _intr arm_func 0x8000374 _intr.ret +# main.s thumb_func 0x80003a4 AgbMain -thumb_func 0x80004d8 UpdateLinkAndCallCallbacks -thumb_func 0x800051c InitMainCallbacks +thumb_func 0x80004c4 UpdateLinkAndCallCallbacks +thumb_func 0x80004d8 InitMainCallbacks +thumb_func 0x800051c CallCallbacks thumb_func 0x8000540 SetMainCallback2 thumb_func 0x8000554 StartTimer1 thumb_func 0x8000560 SeedRngAndSetTrainerId -thumb_func 0x8000588 +thumb_func 0x8000588 GetGeneratedTrainerIdLower thumb_func 0x8000594 EnableVCountIntrAtLine150 thumb_func 0x80005bc InitKeys thumb_func 0x80005e4 ReadKeys @@ -20,33 +22,36 @@ thumb_func 0x8000708 SetVCountCallback thumb_func 0x8000714 RestoreSerialTimer3IntrHandlers thumb_func 0x800072c SetSerialCallback thumb_func 0x8000738 VBlankIntr -thumb_func 0x8000800 +thumb_func 0x8000800 InitFlashTimer thumb_func 0x8000814 HBlankIntr thumb_func 0x8000844 VCountIntr thumb_func 0x8000878 SerialIntr -thumb_func 0x80008a8 nullsub_29 +thumb_func 0x80008a8 IntrDummy thumb_func 0x80008ac WaitForVBlank -thumb_func 0x80008dc -thumb_func 0x80008e8 +thumb_func 0x80008dc SetTrainerHillVBlankCounter +thumb_func 0x80008e8 ClearTrainerHillVBlankCounter thumb_func 0x80008f4 DoSoftReset -thumb_func 0x8000964 GetRivalSonDaughterString +thumb_func 0x8000964 ClearPokemonCrySongs +# alloc.s thumb_func 0x8000988 PutMemBlockHeader -thumb_func 0x80009a4 +thumb_func 0x80009a4 PutFirstMemBlockHeader thumb_func 0x80009b8 AllocInternal -thumb_func 0x8000a34 +thumb_func 0x8000a34 FreeInternal thumb_func 0x8000b14 AllocZeroedInternal thumb_func 0x8000b54 CheckMemBlockInternal thumb_func 0x8000bac InitHeap -thumb_func 0x8000bc8 +thumb_func 0x8000bc8 Alloc thumb_func 0x8000bdc AllocZeroed thumb_func 0x8000bf0 Free thumb_func 0x8000c04 CheckMemBlock thumb_func 0x8000c18 CheckHeap +# dma3_manager.s thumb_func 0x8000c48 ClearDma3Requests thumb_func 0x8000c80 ProcessDma3Requests thumb_func 0x8000ef8 RequestDma3Copy thumb_func 0x8000f90 RequestDma3Fill thumb_func 0x8001034 CheckForSpaceForDma3Request +# gpu_regs.s thumb_func 0x8001074 InitGpuRegManager thumb_func 0x80010cc CopyBufferedValueToGpuReg thumb_func 0x8001110 CopyBufferedValuesToGpuRegs @@ -58,6 +63,7 @@ thumb_func 0x8001240 SyncRegIE thumb_func 0x8001274 EnableInterrupts thumb_func 0x80012a0 DisableInterrupts thumb_func 0x80012cc UpdateRegDispstatIntrBits +# bg.s thumb_func 0x8001308 ResetBgs thumb_func 0x8001320 SetBgModeInternal thumb_func 0x800133c GetBgMode @@ -71,8 +77,8 @@ thumb_func 0x800167c HideBgInternal thumb_func 0x80016b0 SyncBgVisibilityAndMode thumb_func 0x80016d4 SetTextModeAndHideBgs thumb_func 0x80016f0 SetBgAffineInternal -thumb_func 0x80017bc -thumb_func 0x80017d0 +thumb_func 0x80017bc IsInvalidBg32 +thumb_func 0x80017d0 DummiedOutFireRedLeafGreenTileAllocFunc thumb_func 0x80017d4 ResetBgsAndClearDma3BusyFlags thumb_func 0x8001800 InitBgsFromTemplates thumb_func 0x80018c8 InitBgFromTemplate @@ -106,15 +112,17 @@ thumb_func 0x80028c8 GetBgMetricTextMode thumb_func 0x8002938 GetBgMetricAffineMode thumb_func 0x8002990 GetTileMapIndexFromCoords thumb_func 0x80029c8 CopyTileMapEntry -thumb_func 0x8002a24 -thumb_func 0x8002a78 +thumb_func 0x8002a24 GetBgType +thumb_func 0x8002a78 IsInvalidBg thumb_func 0x8002a8c IsTileMapOutsideWram +# blit.s thumb_func 0x8002ab8 BlitBitmapRect4BitWithoutColorKey thumb_func 0x8002afc BlitBitmapRect4Bit thumb_func 0x8002cdc FillBitmapRect4Bit thumb_func 0x8002d98 BlitBitmapRect4BitTo8Bit thumb_func 0x8002fe8 FillBitmapRect8Bit -thumb_func 0x800308c nullsub_420 +# window.s +thumb_func 0x800308c nullsub_9 thumb_func 0x8003090 InitWindows thumb_func 0x8003250 AddWindow thumb_func 0x80033a8 AddWindowWithoutTileMap @@ -129,35 +137,36 @@ thumb_func 0x80037c4 PutWindowRectTilemap thumb_func 0x8003874 BlitBitmapToWindow thumb_func 0x80038ac BlitBitmapRectToWindow thumb_func 0x800396c BlitBitmapRectToWindowWithColorKey -thumb_func 0x8003a34 +thumb_func 0x8003a34 FillWindowPixelRect thumb_func 0x8003ac0 CopyToWindowPixelBuffer thumb_func 0x8003b18 FillWindowPixelBuffer thumb_func 0x8003b64 ScrollWindow thumb_func 0x8003f28 CallWindowFunction thumb_func 0x8003f78 SetWindowAttribute thumb_func 0x800401c GetWindowAttribute -thumb_func 0x8004100 -thumb_func 0x800412c nullsub_301 +thumb_func 0x8004100 GetNumActiveWindowsOnBg +thumb_func 0x800412c nullsub_8 thumb_func 0x8004130 AddWindow8Bit thumb_func 0x8004238 FillWindowPixelBuffer8Bit thumb_func 0x8004278 FillWindowPixelRect8Bit thumb_func 0x8004304 BlitBitmapRectToWindow4BitTo8Bit thumb_func 0x80043d0 CopyWindowToVram8Bit -thumb_func 0x8004448 -thumb_func 0x8004474 -thumb_func 0x8004480 +thumb_func 0x8004448 GetNumActiveWindowsOnBg8Bit +# text.s +thumb_func 0x8004474 SetFontsPointer +thumb_func 0x8004480 DeactivateAllTextPrinters thumb_func 0x800449c AddTextPrinterParameterized thumb_func 0x8004548 AddTextPrinter -thumb_func 0x8004630 -thumb_func 0x80046a8 +thumb_func 0x8004630 RunTextPrinters +thumb_func 0x80046a8 IsTextPrinterActive thumb_func 0x80046b8 RenderFont -thumb_func 0x80046e4 +thumb_func 0x80046e4 GenerateFontHalfRowLookupTable thumb_func 0x8004798 SaveTextColors thumb_func 0x80047b8 RestoreTextColors -thumb_func 0x80047c8 +thumb_func 0x80047c8 DecompressGlyphTile thumb_func 0x8004808 GetLastTextColor -thumb_func 0x8004850 -thumb_func 0x8004e50 EReader_IsReceivedDataValid +thumb_func 0x8004850 CopyGlyphToWindow +thumb_func 0x8004e50 ClearTextSpan thumb_func 0x8005358 Font0Func thumb_func 0x800538c Font1Func thumb_func 0x80053c4 Font2Func @@ -174,7 +183,7 @@ thumb_func 0x800568c DrawDownArrow thumb_func 0x8005760 RenderText thumb_func 0x8005c48 GetStringWidthFixedWidthFont thumb_func 0x8005d7c GetFontWidthFunc -thumb_func 0x8005dac +thumb_func 0x8005dac GetStringWidth thumb_func 0x8005f7c RenderTextFont9 thumb_func 0x8006124 DrawKeypadIcon thumb_func 0x8006174 GetKeypadIconTileOffset @@ -182,12 +191,12 @@ thumb_func 0x8006184 GetKeypadIconWidth thumb_func 0x8006194 GetKeypadIconHeight thumb_func 0x80061a4 SetDefaultFontsPointer thumb_func 0x80061b4 GetFontAttribute -thumb_func 0x800629c +thumb_func 0x800629c GetMenuCursorDimensionByFont thumb_func 0x80062b4 DecompressGlyphFont9 thumb_func 0x8006300 thumb_func 0x8006304 thumb_func 0x8006350 -thumb_func 0x8006354 ether_effect_related +thumb_func 0x8006354 thumb_func 0x80063f8 thumb_func 0x8006418 thumb_func 0x80064b4 @@ -196,6 +205,7 @@ thumb_func 0x800655c thumb_func 0x800657c thumb_func 0x8006620 thumb_func 0x8006640 +# sprite.s thumb_func 0x800668c ResetSpriteData thumb_func 0x80066d8 AnimateSprites thumb_func 0x8006724 BuildOamBuffer @@ -219,7 +229,7 @@ thumb_func 0x8006f5c ResetSprite thumb_func 0x8006f70 CalcCenterToCornerVec thumb_func 0x8006fb4 AllocSpriteTiles thumb_func 0x80070d0 SpriteTileAllocBitmapOp -thumb_func 0x8007140 nullsub_141 +thumb_func 0x8007140 SpriteCallbackDummy thumb_func 0x8007144 ProcessSpriteCopyRequests thumb_func 0x80071a0 RequestSpriteFrameImageCopy thumb_func 0x8007204 RequestSpriteCopy @@ -263,7 +273,7 @@ thumb_func 0x8007ce8 ApplyAffineAnimFrameAbsolute thumb_func 0x8007d0c DecrementAnimDelayCounter thumb_func 0x8007d34 DecrementAffineAnimDelayCounter thumb_func 0x8007d64 ApplyAffineAnimFrameRelativeAndUpdateMatrix -thumb_func 0x8007dfc +thumb_func 0x8007dfc ConvertScaleParam thumb_func 0x8007e14 GetAffineAnimFrame thumb_func 0x8007e80 ApplyAffineAnimFrame thumb_func 0x8007ec0 StartSpriteAnim @@ -275,7 +285,7 @@ thumb_func 0x8007fd0 ChangeSpriteAffineAnim thumb_func 0x8008008 ChangeSpriteAffineAnimIfDifferent thumb_func 0x800803c SetSpriteSheetFrameTileNum thumb_func 0x8008094 ResetAffineAnimData -thumb_func 0x80080c8 +thumb_func 0x80080c8 AllocOamMatrix thumb_func 0x8008100 FreeOamMatrix thumb_func 0x8008140 InitSpriteAffineAnim thumb_func 0x8008190 SetOamMatrixRotationScaling @@ -293,11 +303,12 @@ thumb_func 0x80084a8 LoadSpritePalettes thumb_func 0x80084d4 DoLoadSpritePalette thumb_func 0x80084ec AllocSpritePalette thumb_func 0x800851c IndexOfSpritePaletteTag -thumb_func 0x8008554 +thumb_func 0x8008554 GetSpritePaletteTagByPaletteNum thumb_func 0x8008564 FreeSpritePaletteByTag thumb_func 0x800858c SetSubspriteTables thumb_func 0x8008598 AddSpriteToOamBuffer thumb_func 0x8008604 AddSubspritesToOamBuffer +# string_util.s thumb_func 0x8008828 StringCopy10 thumb_func 0x800885c StringGetEnd10 thumb_func 0x8008888 StringCopy7 @@ -309,25 +320,25 @@ thumb_func 0x800893c StringLength thumb_func 0x800895c StringCompare thumb_func 0x8008980 StringCompareN thumb_func 0x80089ac IsStringLengthAtLeast -thumb_func 0x80089d8 -thumb_func 0x8008a78 -thumb_func 0x8008b18 +thumb_func 0x80089d8 ConvertIntToDecimalStringN +thumb_func 0x8008a78 ConvertUIntToDecimalStringN +thumb_func 0x8008b18 ConvertIntToHexStringN thumb_func 0x8008bcc StringExpandPlaceholders thumb_func 0x8008cb8 StringBraille -thumb_func 0x8008d18 -thumb_func 0x8008d20 -thumb_func 0x8008d2c -thumb_func 0x8008d34 -thumb_func 0x8008d3c -thumb_func 0x8008d44 -thumb_func 0x8008d68 -thumb_func 0x8008d8c -thumb_func 0x8008d94 -thumb_func 0x8008d9c -thumb_func 0x8008da4 -thumb_func 0x8008dac -thumb_func 0x8008db4 -thumb_func 0x8008dbc +thumb_func 0x8008d18 ExpandPlaceholder_UnknownStringVar +thumb_func 0x8008d20 ExpandPlaceholder_PlayerName +thumb_func 0x8008d2c ExpandPlaceholder_StringVar1 +thumb_func 0x8008d34 ExpandPlaceholder_StringVar2 +thumb_func 0x8008d3c ExpandPlaceholder_StringVar3 +thumb_func 0x8008d44 ExpandPlaceholder_KunChan +thumb_func 0x8008d68 ExpandPlaceholder_RivalName +thumb_func 0x8008d8c ExpandPlaceholder_Version +thumb_func 0x8008d94 ExpandPlaceholder_Aqua +thumb_func 0x8008d9c ExpandPlaceholder_Magma +thumb_func 0x8008da4 ExpandPlaceholder_Archie +thumb_func 0x8008dac ExpandPlaceholder_Maxie +thumb_func 0x8008db4 ExpandPlaceholder_Kyogre +thumb_func 0x8008dbc ExpandPlaceholder_Groudon thumb_func 0x8008dc4 GetExpandedPlaceholder thumb_func 0x8008de8 StringFill thumb_func 0x8008e14 StringCopyPadded @@ -337,7 +348,8 @@ thumb_func 0x8008eb8 StringLength_Multibyte thumb_func 0x8008ed8 WriteColorChangeControlCode thumb_func 0x8008f14 IsStringJapanese thumb_func 0x8008f38 -thumb_func 0x8008f68 LoadHeldItemIcons +# link.s +thumb_func 0x8008f68 IsWirelessAdapterConnected thumb_func 0x8008fa0 Task_DestroySelf thumb_func 0x8008fb0 InitLinkTestBG thumb_func 0x8009088 @@ -354,13 +366,13 @@ thumb_func 0x800949c LinkTestProcessKeyInput thumb_func 0x8009558 CB2_LinkTest thumb_func 0x800957c LinkMain2 thumb_func 0x80095f4 HandleReceiveRemoteLinkPlayer -thumb_func 0x800963c EmeraldBattleTowerRecordToRuby +thumb_func 0x800963c ProcessRecvCmds thumb_func 0x8009928 BuildSendCmd thumb_func 0x8009ab0 thumb_func 0x8009ad4 IsSendingKeysToLink thumb_func 0x8009b08 -thumb_func 0x8009b24 -thumb_func 0x8009b44 +thumb_func 0x8009b24 ClearLinkCallback +thumb_func 0x8009b44 ClearLinkCallback_2 thumb_func 0x8009b64 GetLinkPlayerCount thumb_func 0x8009b90 thumb_func 0x8009bd4 @@ -376,7 +388,7 @@ thumb_func 0x8009ea4 ResetBlockSend thumb_func 0x8009eb8 InitBlockSend thumb_func 0x8009f28 LinkCB_BlockSendBegin thumb_func 0x8009f4c LinkCB_BlockSend -thumb_func 0x8009fb0 +thumb_func 0x8009fb0 LinkCB_BlockSendEnd thumb_func 0x8009fbc thumb_func 0x8009fdc thumb_func 0x800a010 @@ -398,12 +410,12 @@ thumb_func 0x800a2ac LinkTest_prnthex thumb_func 0x800a300 LinkTest_prntint thumb_func 0x800a3a0 LinkTest_prntstr thumb_func 0x800a3e8 LinkCB_RequestPlayerDataExchange -thumb_func 0x800a414 +thumb_func 0x800a414 Task_PrintTestData thumb_func 0x800a558 SetLinkDebugValues thumb_func 0x800a56c thumb_func 0x800a59c thumb_func 0x800a5c8 -thumb_func 0x800a60c +thumb_func 0x800a60c GetSavedPlayerCount thumb_func 0x800a618 thumb_func 0x800a624 thumb_func 0x800a6b8 @@ -423,13 +435,13 @@ thumb_func 0x800a990 CheckErrorStatus thumb_func 0x800a9f4 thumb_func 0x800aa0c CB2_LinkError thumb_func 0x800ab5c -thumb_func 0x800ac14 BtlController_EmitCmd42 +thumb_func 0x800ac14 thumb_func 0x800ac7c CB2_PrintErrorMessage thumb_func 0x800adc4 GetSioMultiSI thumb_func 0x800add4 IsSioMultiMaster thumb_func 0x800adfc IsLinkConnectionEstablished -thumb_func 0x800ae0c -thumb_func 0x800ae18 +thumb_func 0x800ae0c SetSuppressLinkErrorMessage +thumb_func 0x800ae18 HasLinkErrorOccurred thumb_func 0x800ae24 thumb_func 0x800ae80 thumb_func 0x800aee0 HandleLinkConnection @@ -450,7 +462,7 @@ thumb_func 0x800b364 DequeueRecvCmds thumb_func 0x800b474 LinkVSync thumb_func 0x800b4e4 Timer3Intr thumb_func 0x800b4f4 SerialCB -thumb_func 0x800b57c +thumb_func 0x800b57c StartTransfer thumb_func 0x800b58c DoHandshake thumb_func 0x800b688 DoRecv thumb_func 0x800b7a0 DoSend @@ -458,6 +470,7 @@ thumb_func 0x800b854 StopTimer thumb_func 0x800b888 SendRecvDone thumb_func 0x800b8b8 ResetSendBuffer thumb_func 0x800b90c ResetRecvBuffer +# link_rfu.s thumb_func 0x800b97c thumb_func 0x800b9c8 rfu_REQ_sendData_wrapper thumb_func 0x800ba08 @@ -522,8 +535,8 @@ thumb_func 0x800de54 NameIsNotEmpty thumb_func 0x800de74 RecordMixTrainerNames thumb_func 0x800e004 thumb_func 0x800e070 WipeTrainerNameRecords -thumb_func 0x800e0c0 nullsub_5 -thumb_func 0x800e0c4 nullsub_4 +thumb_func 0x800e0c0 nullsub_13 +thumb_func 0x800e0c4 nullsub_5 thumb_func 0x800e0c8 thumb_func 0x800e194 thumb_func 0x800e1c4 @@ -535,7 +548,7 @@ thumb_func 0x800e578 thumb_func 0x800e5c0 thumb_func 0x800e608 thumb_func 0x800e7d0 -thumb_func 0x800e7e8 SaveSuccessCallback +thumb_func 0x800e7e8 thumb_func 0x800e7f4 thumb_func 0x800e87c thumb_func 0x800e894 @@ -550,7 +563,7 @@ thumb_func 0x800ea3c thumb_func 0x800ea48 thumb_func 0x800ea70 thumb_func 0x800ead4 -thumb_func 0x800eb08 BattleAICmd_if_in_hwords +thumb_func 0x800eb08 thumb_func 0x800eb78 IsRfuRecvQueueEmpty thumb_func 0x800ebb8 thumb_func 0x800eca0 @@ -564,7 +577,7 @@ thumb_func 0x800f254 rfu_func_080F97B8 thumb_func 0x800f29c thumb_func 0x800f2a4 IsSendingKeysToRfu thumb_func 0x800f2c4 -thumb_func 0x800f2f8 +thumb_func 0x800f2f8 Rfu_set_zero thumb_func 0x800f304 thumb_func 0x800f334 thumb_func 0x800f350 @@ -582,7 +595,7 @@ thumb_func 0x800fc00 thumb_func 0x800fc1c thumb_func 0x800fc48 thumb_func 0x800fc68 -thumb_func 0x800fc98 OpponentHandleEndBounceEffect +thumb_func 0x800fc98 LinkRfu_FatalError thumb_func 0x800fccc thumb_func 0x800fd2c thumb_func 0x800fd64 @@ -640,12 +653,12 @@ thumb_func 0x8011540 thumb_func 0x8011554 thumb_func 0x8011564 thumb_func 0x8011570 -thumb_func 0x801158c +thumb_func 0x801158c GetRfuRecvQueueLength thumb_func 0x801159c Rfu_IsMaster -thumb_func 0x80115a8 +thumb_func 0x80115a8 ReadU16 thumb_func 0x80115b4 thumb_func 0x80115d4 -thumb_func 0x80115e8 atk57 +thumb_func 0x80115e8 thumb_func 0x801167c thumb_func 0x8011690 thumb_func 0x80116bc @@ -671,7 +684,8 @@ thumb_func 0x8011d68 thumb_func 0x8011d88 thumb_func 0x8011fac thumb_func 0x8011fc0 -thumb_func 0x8011fd4 nullsub_31 +# union_room.s +thumb_func 0x8011fd4 nullsub_14 thumb_func 0x8011fd8 thumb_func 0x80120a8 thumb_func 0x8012134 @@ -713,12 +727,12 @@ thumb_func 0x80144cc thumb_func 0x80144e0 thumb_func 0x8014508 MEvent_CreateTask_Leader thumb_func 0x8014548 -thumb_func 0x8014a04 +thumb_func 0x8014a04 MEvent_CreateTask_CardOrNewsWithFriend thumb_func 0x8014a50 thumb_func 0x8014db0 MEvent_CreateTask_CardOrNewsOverWireless thumb_func 0x8014dfc thumb_func 0x8015114 UnionRoomSpecial -thumb_func 0x8015160 +thumb_func 0x8015160 ReadAsU16 thumb_func 0x801516c thumb_func 0x8015194 thumb_func 0x80151b8 @@ -745,9 +759,9 @@ thumb_func 0x8016bc8 thumb_func 0x8016c28 thumb_func 0x8016c78 thumb_func 0x8016c88 -thumb_func 0x8016d5c MainMenu_FormatSavegameBadges +thumb_func 0x8016d5c thumb_func 0x8016e74 -thumb_func 0x8016e98 Contest_RunTextPrinters +thumb_func 0x8016e98 thumb_func 0x8016ea4 thumb_func 0x8017044 thumb_func 0x80170b0 @@ -759,11 +773,11 @@ thumb_func 0x801727c thumb_func 0x8017360 thumb_func 0x80173fc thumb_func 0x8017440 -thumb_func 0x8017468 StartFieldEffectForEventObject +thumb_func 0x8017468 thumb_func 0x8017484 -thumb_func 0x80175ec nullsub_30 +thumb_func 0x80175ec nullsub_89 thumb_func 0x80175f0 -thumb_func 0x80176b0 UpdateHpTextInHealthbox +thumb_func 0x80176b0 thumb_func 0x8017770 thumb_func 0x80177b8 thumb_func 0x80177c4 @@ -782,13 +796,14 @@ thumb_func 0x8017c48 thumb_func 0x8017c88 thumb_func 0x8017c98 thumb_func 0x8017cdc -thumb_func 0x8017ebc +# mystery_gift.s +thumb_func 0x8017ebc vblankcb_mystery_gift_e_reader_run thumb_func 0x8017ed0 c2_mystery_gift_e_reader_run thumb_func 0x8017ee8 HandleMysteryGiftOrEReaderSetup -thumb_func 0x80180e4 +thumb_func 0x80180e4 c2_mystery_gift thumb_func 0x8018110 c2_ereader thumb_func 0x8018138 MainCB_FreeAllBuffersAndReturnToInitTitleScreen -thumb_func 0x8018180 +thumb_func 0x8018180 PrintMysteryGiftOrEReaderTopMenu thumb_func 0x801822c MG_DrawTextBorder thumb_func 0x8018240 MG_DrawCheckerboardPattern thumb_func 0x80182e0 ClearScreenInBg0 @@ -801,33 +816,35 @@ thumb_func 0x8018488 unref_HideDownArrowAndWaitButton thumb_func 0x80184c8 PrintStringAndWait2Seconds thumb_func 0x80184fc MysteryGift_HandleThreeOptionMenu thumb_func 0x8018560 mevent_message_print_and_prompt_yes_no -thumb_func 0x80186b4 BufferMonTrainerMemo +thumb_func 0x80186b4 HandleMysteryGiftListMenu thumb_func 0x8018804 ValidateCardOrNews thumb_func 0x8018818 HandleLoadWonderCardOrNews thumb_func 0x8018874 DestroyNewsOrCard -thumb_func 0x801888c +thumb_func 0x801888c TearDownCardOrNews_ReturnToTopMenu thumb_func 0x80188b8 mevent_message_prompt_discard thumb_func 0x80188dc mevent_message_was_thrown_away thumb_func 0x80188fc mevent_save_game thumb_func 0x8018974 mevent_message thumb_func 0x8018aa4 PrintMGSuccessMessage thumb_func 0x8018b0c mevent_message_stamp_card_etc_send_status -thumb_func 0x8018bdc +thumb_func 0x8018bdc PrintMGSendStatus thumb_func 0x8018c14 task_add_00_mystery_gift -thumb_func 0x8018c5c PrintMGSendStatus -thumb_func 0x8019328 +thumb_func 0x8018c5c task00_mystery_gift +thumb_func 0x8019328 GetMysteryGiftBaseBlock thumb_func 0x8019330 bgid_upload_textbox_1 +# union_room_player_avatar.s thumb_func 0x8019350 is_walking_or_running thumb_func 0x8019370 thumb_func 0x8019388 thumb_func 0x80193d8 thumb_func 0x8019428 IsUnionRoomPlayerHidden -thumb_func 0x8019444 -thumb_func 0x801945c +thumb_func 0x8019444 HideUnionRoomPlayer +thumb_func 0x801945c ShowUnionRoomPlayer thumb_func 0x8019474 SetUnionRoomPlayerGfx thumb_func 0x8019490 CreateUnionRoomPlayerEventObject thumb_func 0x80194b0 RemoveUnionRoomPlayerEventObject thumb_func 0x80194d0 SetUnionRoomPlayerEnterExitMovement +# union_room_battle.s thumb_func 0x8019548 thumb_func 0x80195b4 thumb_func 0x801960c @@ -836,8 +853,8 @@ thumb_func 0x8019720 thumb_func 0x801976c thumb_func 0x80197ac thumb_func 0x8019838 -thumb_func 0x8019878 unknown_ItemMenu_Show -thumb_func 0x80198bc DestroyWonderNews +thumb_func 0x8019878 +thumb_func 0x80198bc thumb_func 0x80198d8 thumb_func 0x801990c thumb_func 0x80199a0 @@ -873,24 +890,25 @@ thumb_func 0x801a6b0 thumb_func 0x801a714 thumb_func 0x801a728 thumb_func 0x801aaac -thumb_func 0x801aae0 -thumb_func 0x801aaf4 -thumb_func 0x801ab08 +# mevent2.s +thumb_func 0x801aae0 GetSavedWonderNews +thumb_func 0x801aaf4 GetSavedWonderCard +thumb_func 0x801ab08 sav1_get_mevent_buffer_2 thumb_func 0x801ab1c thumb_func 0x801ab30 -thumb_func 0x801ab44 +thumb_func 0x801ab44 DestroyWonderNews thumb_func 0x801ab50 -thumb_func 0x801aba0 ItemUseInBattle_Escape +thumb_func 0x801aba0 ValidateReceivedWonderNews thumb_func 0x801abe4 thumb_func 0x801abf8 WonderNews_Test_Unk_02 -thumb_func 0x801ac1c +thumb_func 0x801ac1c s_DestroyWonderNews thumb_func 0x801ac50 thumb_func 0x801ac74 thumb_func 0x801acb0 DestroyWonderCard thumb_func 0x801ace4 -thumb_func 0x801ad40 CreateSetStatusSprite +thumb_func 0x801ad40 ValidateReceivedWonderCard thumb_func 0x801ad8c -thumb_func 0x801adc8 +thumb_func 0x801adc8 WonderCard_Test_Unk_08_6 thumb_func 0x801adf0 thumb_func 0x801ae28 thumb_func 0x801ae5c GetWonderCardFlagID @@ -900,7 +918,7 @@ thumb_func 0x801aeb8 CheckReceivedGiftFromWonderCard thumb_func 0x801aef8 thumb_func 0x801af20 thumb_func 0x801af64 -thumb_func 0x801af8c special_0x4a +thumb_func 0x801af8c thumb_func 0x801afc8 thumb_func 0x801b040 thumb_func 0x801b160 @@ -909,46 +927,49 @@ thumb_func 0x801b1c8 thumb_func 0x801b208 MEventStruct_Unk1442CC_CompareField_unk_16 thumb_func 0x801b230 thumb_func 0x801b244 MEventStruct_Unk1442CC_GetValueNFrom_unk_20 -thumb_func 0x801b2b0 MovementType_FaceDownAndRight_callback -thumb_func 0x801b354 +thumb_func 0x801b2b0 +thumb_func 0x801b354 mevent_081445C0 thumb_func 0x801b458 thumb_func 0x801b464 -thumb_func 0x801b4a8 WonderCard_Test_Unk_08_6 +thumb_func 0x801b4a8 thumb_func 0x801b524 thumb_func 0x801b550 thumb_func 0x801b5b8 -thumb_func 0x801b5d8 +# mevent_801BAAC.s +thumb_func 0x801b5d8 InitWonderCardResources thumb_func 0x801b670 DestroyWonderCardResources -thumb_func 0x801b69c -thumb_func 0x801b8b0 +thumb_func 0x801b69c FadeToWonderCardMenu +thumb_func 0x801b8b0 FadeOutFromWonderCard thumb_func 0x801b9f0 thumb_func 0x801bca4 thumb_func 0x801c04c thumb_func 0x801c17c -thumb_func 0x801c224 +thumb_func 0x801c224 InitWonderNewsResources thumb_func 0x801c280 DestroyWonderNewsResources -thumb_func 0x801c2ac -thumb_func 0x801c588 -thumb_func 0x801c754 -thumb_func 0x801c794 -thumb_func 0x801c7d4 +thumb_func 0x801c2ac FadeToWonderNewsMenu +thumb_func 0x801c588 FadeOutFromWonderNews +thumb_func 0x801c754 MENews_RemoveScrollIndicatorArrowPair +thumb_func 0x801c794 MENews_AddScrollIndicatorArrowPair +thumb_func 0x801c7d4 MENews_GetInput thumb_func 0x801c8b4 thumb_func 0x801c95c thumb_func 0x801ca6c +# mevent_server.s thumb_func 0x801cb24 mevent_srv_init_wnews -thumb_func 0x801cb48 -thumb_func 0x801cb6c +thumb_func 0x801cb48 mevent_srv_new_wcard +thumb_func 0x801cb6c mevent_srv_common_do_exec thumb_func 0x801cba8 mevent_srv_init_common thumb_func 0x801cbfc mevent_srv_free_resources -thumb_func 0x801cc20 +thumb_func 0x801cc20 mevent_srv_common_init_send thumb_func 0x801cc60 mevent_first_if_not_null_else_second thumb_func 0x801cc6c mevent_compare_pointers thumb_func 0x801cc84 common_mainseq_0 thumb_func 0x801cc8c common_mainseq_1 -thumb_func 0x801cc90 -thumb_func 0x801ccac -thumb_func 0x801ccc8 -thumb_func 0x801d240 +thumb_func 0x801cc90 common_mainseq_2 +thumb_func 0x801ccac common_mainseq_3 +thumb_func 0x801ccc8 common_mainseq_4 +thumb_func 0x801d240 mevent_srv_exec_common +# mevent_client.s thumb_func 0x801d294 mevent_client_do_init thumb_func 0x801d2b8 mevent_client_do_exec thumb_func 0x801d2f4 mevent_client_inc_flag @@ -959,7 +980,7 @@ thumb_func 0x801d36c mevent_client_free_resources thumb_func 0x801d390 mevent_client_jmp_buffer thumb_func 0x801d3ac mevent_client_send_word thumb_func 0x801d3e0 mainseq_0 -thumb_func 0x801d408 +thumb_func 0x801d408 mainseq_1 thumb_func 0x801d40c mainseq_2 thumb_func 0x801d42c mainseq_3 thumb_func 0x801d44c mainseq_4 @@ -967,6 +988,7 @@ thumb_func 0x801d620 mainseq_5 thumb_func 0x801d638 mainseq_6 thumb_func 0x801d670 mainseq_7 thumb_func 0x801d6a4 mevent_client_exec +# mevent_server_helpers.s thumb_func 0x801d6d0 mevent_srv_sub_recv thumb_func 0x801d6dc mevent_srv_sub_send thumb_func 0x801d6e8 mevent_srv_sub_init @@ -974,9 +996,10 @@ thumb_func 0x801d714 mevent_srv_sub_init_send thumb_func 0x801d738 mevent_srv_sub_init_recv thumb_func 0x801d748 mevent_recv_block thumb_func 0x801d764 mevent_has_received -thumb_func 0x801d788 +thumb_func 0x801d788 mevent_reset_recv thumb_func 0x801d798 mevent_receive_func thumb_func 0x801d86c mevent_send_func +# mevent_news.s thumb_func 0x801d978 GenerateRandomNews thumb_func 0x801d9d0 thumb_func 0x801d9ec @@ -986,12 +1009,13 @@ thumb_func 0x801dadc thumb_func 0x801dae8 thumb_func 0x801db20 thumb_func 0x801db54 +# union_room_chat.s thumb_func 0x801dbbc thumb_func 0x801dbf4 thumb_func 0x801dc54 thumb_func 0x801dc78 c2_081284E0 -thumb_func 0x801dd44 FoundBlackGlasses -thumb_func 0x801dd5c ScrCmd_startcontest +thumb_func 0x801dd44 +thumb_func 0x801dd5c thumb_func 0x801dd78 thumb_func 0x801ddc0 thumb_func 0x801ddd0 @@ -1109,6 +1133,7 @@ thumb_func 0x80207d4 thumb_func 0x802080c thumb_func 0x8020838 thumb_func 0x8020898 +# berry_crush.s thumb_func 0x8020918 thumb_func 0x8020924 thumb_func 0x8020988 @@ -1118,9 +1143,9 @@ thumb_func 0x8020b58 thumb_func 0x8020b68 thumb_func 0x8020b74 thumb_func 0x8020c90 -thumb_func 0x8020ca4 PlaySE +thumb_func 0x8020ca4 thumb_func 0x8020cbc -thumb_func 0x8020ce0 PutPokeblockListMenuString +thumb_func 0x8020ce0 thumb_func 0x8020d74 thumb_func 0x8021038 thumb_func 0x802117c @@ -1182,8 +1207,9 @@ thumb_func 0x8024330 thumb_func 0x8024340 thumb_func 0x80243d0 thumb_func 0x8024410 -thumb_func 0x8024434 -thumb_func 0x8024448 +# berry_powder.s +thumb_func 0x8024434 DecryptBerryPowder +thumb_func 0x8024448 SetBerryPowder thumb_func 0x802445c ApplyNewEncryptionKeyToBerryPowder thumb_func 0x8024478 HasEnoughBerryPowder_ thumb_func 0x80244a0 HasEnoughBerryPowder @@ -1193,9 +1219,10 @@ thumb_func 0x8024548 TakeBerryPowder thumb_func 0x8024588 GetBerryPowder thumb_func 0x80245a0 PrintBerryPowderAmount thumb_func 0x80245f8 DrawPlayerPowderAmount -thumb_func 0x8024654 -thumb_func 0x8024678 +thumb_func 0x8024654 PrintPlayerBerryPowderAmount +thumb_func 0x8024678 DisplayBerryPowderVendorMenu thumb_func 0x80246e0 RemoveBerryPowderVendorMenu +# dodrio_berry_picking.s thumb_func 0x8024704 thumb_func 0x80247e4 thumb_func 0x80247f8 @@ -1228,7 +1255,7 @@ thumb_func 0x8025acc thumb_func 0x8025b18 thumb_func 0x8025bd4 thumb_func 0x8025ca0 -thumb_func 0x8025d10 BagMenu_SwapItems +thumb_func 0x8025d10 thumb_func 0x8025e0c thumb_func 0x8025f94 thumb_func 0x8025fac @@ -1285,7 +1312,7 @@ thumb_func 0x802781c thumb_func 0x802786c thumb_func 0x802788c thumb_func 0x802792c -thumb_func 0x8027a4c AddWallpaperSetsMenu +thumb_func 0x8027a4c thumb_func 0x8027a64 thumb_func 0x8027afc thumb_func 0x8027b28 @@ -1306,7 +1333,7 @@ thumb_func 0x8028340 thumb_func 0x8028380 thumb_func 0x80283b8 thumb_func 0x80283e0 -thumb_func 0x802840c nullsub_33 +thumb_func 0x802840c nullsub_15 thumb_func 0x8028410 thumb_func 0x8028460 thumb_func 0x8028510 @@ -1330,7 +1357,7 @@ thumb_func 0x8028bf4 thumb_func 0x8028c40 thumb_func 0x8028cf8 thumb_func 0x8028d24 -thumb_func 0x8028d58 +thumb_func 0x8028d58 nullsub_16 thumb_func 0x8028d68 thumb_func 0x8028da0 thumb_func 0x8028ea0 @@ -1348,13 +1375,14 @@ thumb_func 0x802a148 thumb_func 0x802a228 thumb_func 0x802a27c thumb_func 0x802a3f0 -thumb_func 0x802a41c nullsub_341 +thumb_func 0x802a41c thumb_func 0x802a420 thumb_func 0x802a450 thumb_func 0x802a464 thumb_func 0x802a488 thumb_func 0x802a49c thumb_func 0x802a5dc +# pokemon_jump.s thumb_func 0x802a69c thumb_func 0x802a73c thumb_func 0x802a754 @@ -1436,7 +1464,7 @@ thumb_func 0x802c494 thumb_func 0x802c4b0 thumb_func 0x802c4d4 thumb_func 0x802c4fc -thumb_func 0x802c50c SafariHandleStatusAnimation +thumb_func 0x802c50c thumb_func 0x802c52c thumb_func 0x802c574 thumb_func 0x802c5a0 @@ -1551,6 +1579,7 @@ thumb_func 0x802eac0 thumb_func 0x802ebb4 thumb_func 0x802ec0c thumb_func 0x802ec60 +# rtc.s thumb_func 0x802ed30 RtcDisableInterrupts thumb_func 0x802ed48 RtcRestoreInterrupts thumb_func 0x802ed5c ConvertBcdToBinary @@ -1558,18 +1587,18 @@ thumb_func 0x802ed84 IsLeapYear thumb_func 0x802edb8 ConvertDateToDayCount thumb_func 0x802ee44 RtcGetDayCount thumb_func 0x802ee80 RtcInit -thumb_func 0x802eee0 +thumb_func 0x802eee0 RtcGetErrorStatus thumb_func 0x802eeec RtcGetInfo thumb_func 0x802ef1c RtcGetDateTime thumb_func 0x802ef34 RtcGetStatus thumb_func 0x802ef4c RtcGetRawInfo thumb_func 0x802ef60 RtcCheckInfo thumb_func 0x802f05c RtcReset -thumb_func 0x802f070 -thumb_func 0x802f0a8 +thumb_func 0x802f070 FormatDecimalTime +thumb_func 0x802f0a8 FormatHexTime thumb_func 0x802f0e0 FormatHexRtcTime -thumb_func 0x802f0f8 -thumb_func 0x802f130 +thumb_func 0x802f0f8 FormatDecimalDate +thumb_func 0x802f130 FormatHexDate thumb_func 0x802f168 RtcCalcTimeDifference thumb_func 0x802f1ec RtcCalcLocalTime thumb_func 0x802f218 RtcInitLocalTimeOffset @@ -1577,20 +1606,21 @@ thumb_func 0x802f22c RtcCalcLocalTimeOffset thumb_func 0x802f260 CalcTimeDifference thumb_func 0x802f2c8 RtcGetMinuteCount thumb_func 0x802f300 RtcGetLocalDayCount +# main_menu.s thumb_func 0x802f314 CB2_MainMenu -thumb_func 0x802f32c -thumb_func 0x802f340 +thumb_func 0x802f32c VBlankCB_MainMenu +thumb_func 0x802f340 CB2_InitMainMenu thumb_func 0x802f34c CB2_ReinitMainMenu thumb_func 0x802f358 InitMainMenu -thumb_func 0x802f53c BuyMenuBuildListMenuTemplate -thumb_func 0x802f718 +thumb_func 0x802f53c Task_MainMenuCheckSaveFile +thumb_func 0x802f718 Task_WaitForBatteryDryErrorWindow thumb_func 0x802f76c Task_MainMenuCheckBattery -thumb_func 0x802f80c -thumb_func 0x802f860 +thumb_func 0x802f80c Task_WaitForSaveFileErrorWindow +thumb_func 0x802f860 Task_DisplayMainMenu thumb_func 0x802fdb0 Task_HighlightSelectedMainMenuItem thumb_func 0x802fde0 HandleMainMenuInput thumb_func 0x802ff4c Task_HandleMainMenuInput -thumb_func 0x802ff7c +thumb_func 0x802ff7c Task_HandleMainMenuAPressed thumb_func 0x8030284 Task_HandleMainMenuBPressed thumb_func 0x80302e4 Task_DisplayMainMenuInvalidActionError thumb_func 0x80303d8 HighlightSelectedMainMenuItem @@ -1612,11 +1642,11 @@ thumb_func 0x8030b48 Task_NewGameBirchSpeech_WaitToShowGenderMenu thumb_func 0x8030b78 Task_NewGameBirchSpeech_ChooseGender thumb_func 0x8030c14 Task_NewGameBirchSpeech_SlideOutOldGenderSprite thumb_func 0x8030cbc Task_NewGameBirchSpeech_SlideInNewGenderSprite -thumb_func 0x8030d14 +thumb_func 0x8030d14 Task_NewGameBirchSpeech_WhatsYourName thumb_func 0x8030d54 Task_NewGameBirchSpeech_WaitForWhatsYourNameToPrint thumb_func 0x8030d80 Task_NewGameBirchSpeech_WaitPressBeforeNameChoice thumb_func 0x8030dd0 Task_NewGameBirchSpeech_StartNamingScreen -thumb_func 0x8030e44 +thumb_func 0x8030e44 Task_NewGameBirchSpeech_SoItsPlayerName thumb_func 0x8030e84 Task_NewGameBirchSpeech_CreateNameYesNo thumb_func 0x8030ec8 Task_NewGameBirchSpeech_ProcessNameYesNoMenu thumb_func 0x8030f60 Task_NewGameBirchSpeech_SlidePlatformAway2 @@ -1626,9 +1656,9 @@ thumb_func 0x8031124 Task_NewGameBirchSpeech_AreYouReady thumb_func 0x8031204 Task_NewGameBirchSpeech_ShrinkPlayer thumb_func 0x80312c0 Task_NewGameBirchSpeech_WaitForPlayerShrink thumb_func 0x80312fc Task_NewGameBirchSpeech_FadePlayerToWhite -thumb_func 0x8031370 +thumb_func 0x8031370 Task_NewGameBirchSpeech_Cleanup thumb_func 0x80313b8 CB2_NewGameBirchSpeech_ReturnFromNamingScreen -thumb_func 0x8031614 nullsub_35 +thumb_func 0x8031614 SpriteCB_Null thumb_func 0x8031618 SpriteCB_MovePlayerDownWhileShrinking thumb_func 0x8031634 NewGameBirchSpeech_CreateLotadSprite thumb_func 0x803166c AddBirchSpeechObjects @@ -1640,15 +1670,15 @@ thumb_func 0x803195c Task_NewGameBirchSpeech_FadePlatformIn thumb_func 0x80319c8 NewGameBirchSpeech_StartFadePlatformIn thumb_func 0x8031a08 Task_NewGameBirchSpeech_FadePlatformOut thumb_func 0x8031a74 NewGameBirchSpeech_StartFadePlatformOut -thumb_func 0x8031ab4 +thumb_func 0x8031ab4 NewGameBirchSpeech_ShowGenderMenu thumb_func 0x8031b20 NewGameBirchSpeech_ProcessGenderMenuInput thumb_func 0x8031b30 NewGameBirchSpeech_SetDefaultPlayerName -thumb_func 0x8031b84 -thumb_func 0x8031be8 -thumb_func 0x8031c00 -thumb_func 0x8031c4c -thumb_func 0x8031cb0 -thumb_func 0x8031d28 +thumb_func 0x8031b84 CreateMainMenuErrorWindow +thumb_func 0x8031be8 MainMenu_FormatSavegameText +thumb_func 0x8031c00 MainMenu_FormatSavegamePlayer +thumb_func 0x8031c4c MainMenu_FormatSavegameTime +thumb_func 0x8031cb0 MainMenu_FormatSavegamePokedex +thumb_func 0x8031d28 MainMenu_FormatSavegameBadges thumb_func 0x8031d9c LoadMainMenuWindowFrameTiles thumb_func 0x8031de4 DrawMainMenuWindowBorder thumb_func 0x8031f48 ClearMainMenuWindowTilemap @@ -1660,6 +1690,7 @@ thumb_func 0x80320c4 CreateYesNoMenuParameterized thumb_func 0x803213c thumb_func 0x8032174 thumb_func 0x80324b4 Task_NewGameBirchSpeech_ReturnFromNamingScreenShowTextbox +# battle_controllers.s thumb_func 0x80324ec HandleLinkBattleSetup thumb_func 0x8032534 SetUpBattleVarsAndBirchZigzagoon thumb_func 0x8032600 @@ -1688,8 +1719,8 @@ thumb_func 0x803391c BtlController_EmitSuccessBallThrowAnim thumb_func 0x803393c BtlController_EmitBallThrowAnim thumb_func 0x803395c BtlController_EmitPause thumb_func 0x80339a4 BtlController_EmitMoveAnimation -thumb_func 0x8033a7c BtlController_EmitPrintSelectionString -thumb_func 0x8033b74 +thumb_func 0x8033a7c BtlController_EmitPrintString +thumb_func 0x8033b74 BtlController_EmitPrintSelectionString thumb_func 0x8033c3c BtlController_EmitChooseAction thumb_func 0x8033c68 BtlController_EmitUnknownYesNoBox thumb_func 0x8033c88 BtlController_EmitChooseMove @@ -1714,7 +1745,7 @@ thumb_func 0x803408c BtlController_EmitCmd38 thumb_func 0x80340ac BtlController_EmitCmd39 thumb_func 0x80340cc BtlController_EmitCmd40 thumb_func 0x80340ec BtlController_EmitHitAnimation -thumb_func 0x803410c +thumb_func 0x803410c BtlController_EmitCmd42 thumb_func 0x803412c BtlController_EmitPlaySE thumb_func 0x8034158 BtlController_EmitPlayFanfareOrBGM thumb_func 0x8034184 BtlController_EmitFaintingCry @@ -1728,27 +1759,29 @@ thumb_func 0x8034290 BtlController_EmitBattleAnimation thumb_func 0x80342bc BtlController_EmitLinkStandbyMsg thumb_func 0x8034300 BtlController_EmitResetActionMoveSelection thumb_func 0x8034320 BtlController_EmitCmd55 -thumb_func 0x8034370 -thumb_func 0x803437c +# decompress.s +thumb_func 0x8034370 LZDecompressVram +thumb_func 0x803437c LZDecompressWram thumb_func 0x8034388 LoadCompressedSpriteSheet thumb_func 0x80343bc LoadCompressedSpriteSheetOverrideBuffer thumb_func 0x80343e4 LoadCompressedSpritePalette thumb_func 0x8034418 LoadCompressedSpritePaletteOverrideBuffer thumb_func 0x8034448 DecompressPicFromTable thumb_func 0x8034480 HandleLoadSpecialPokePic -thumb_func 0x80344ac +thumb_func 0x80344ac LoadSpecialPokePic thumb_func 0x8034568 Unused_LZDecompressWramIndirect thumb_func 0x8034574 thumb_func 0x80347cc GetDecompressedDataSize thumb_func 0x80347e0 LoadCompressedSpriteSheetUsingHeap thumb_func 0x803481c LoadCompressedSpritePaletteUsingHeap -thumb_func 0x8034860 -thumb_func 0x8034898 +thumb_func 0x8034860 DecompressPicFromTable_2 +thumb_func 0x8034898 LoadSpecialPokePic_2 thumb_func 0x8034954 HandleLoadSpecialPokePic_2 thumb_func 0x8034980 DecompressPicFromTable_DontHandleDeoxys thumb_func 0x80349a8 HandleLoadSpecialPokePic_DontHandleDeoxys thumb_func 0x80349d4 LoadSpecialPokePic_DontHandleDeoxys thumb_func 0x8034a88 DuplicateDeoxysTiles +# rom_8034C54.s thumb_func 0x8034aac thumb_func 0x8034b20 thumb_func 0x8034b6c @@ -1765,16 +1798,18 @@ thumb_func 0x803540c SharesPalWithAnyActive thumb_func 0x8035450 thumb_func 0x8035460 thumb_func 0x80354a0 +# battle_bg.s thumb_func 0x80354b0 BattleInitBgsAndWindows thumb_func 0x8035528 thumb_func 0x8035564 LoadBattleMenuWindowGfx thumb_func 0x80355c8 DrawMainBattleBackground -thumb_func 0x80358f8 +thumb_func 0x80358f8 LoadBattleTextboxAndBackground thumb_func 0x8035938 thumb_func 0x8035aa0 -thumb_func 0x8035bc8 UpdateFastPaletteFade +thumb_func 0x8035bc8 thumb_func 0x8035fb8 DrawBattleEntryBackground -thumb_func 0x8036224 +thumb_func 0x8036224 LoadChosenBattleElement +# battle_main.s thumb_func 0x80365b4 CB2_InitBattle thumb_func 0x8036628 CB2_InitBattleInternal thumb_func 0x80368b0 @@ -1782,7 +1817,7 @@ thumb_func 0x8036998 SetPlayerBerryDataInBattleStruct thumb_func 0x8036a5c SetAllPlayersBerryData thumb_func 0x8036d0c thumb_func 0x8036e00 CB2_HandleStartBattle -thumb_func 0x8037274 +thumb_func 0x8037274 CB2_HandleStartMultiPartnerBattle thumb_func 0x8037770 thumb_func 0x803782c CB2_PreInitMultiBattle thumb_func 0x8037a7c CB2_PreInitIngamePlayerPartnerBattle @@ -1792,10 +1827,10 @@ thumb_func 0x8038178 FreeRestoreBattleData thumb_func 0x80381c0 CB2_QuitRecordedBattle thumb_func 0x8038204 thumb_func 0x8038214 -thumb_func 0x80382c4 +thumb_func 0x80382c4 CreateNPCTrainerParty thumb_func 0x80386b8 thumb_func 0x80386dc VBlankCB_Battle -thumb_func 0x80387b4 nullsub_34 +thumb_func 0x80387b4 thumb_func 0x80387b8 thumb_func 0x8038828 thumb_func 0x8038848 @@ -1810,7 +1845,7 @@ thumb_func 0x8039420 SpriteCb_WildMon thumb_func 0x8039450 SpriteCb_MoveWildMonToRight thumb_func 0x803947c SpriteCb_WildMonShowHealthbox thumb_func 0x80394d8 SpriteCb_WildMonAnimate -thumb_func 0x80394fc nullsub_37 +thumb_func 0x80394fc SpriteCallbackDummy_2 thumb_func 0x8039500 thumb_func 0x8039514 thumb_func 0x8039578 SpriteCB_FaintOpponentMon @@ -1822,7 +1857,7 @@ thumb_func 0x803979c thumb_func 0x80397f8 thumb_func 0x8039804 oac_poke_ally_ thumb_func 0x8039834 -thumb_func 0x8039840 nullsub_38 +thumb_func 0x8039840 SpriteCallbackDummy_3 thumb_func 0x8039844 thumb_func 0x803986c DoBounceEffect thumb_func 0x803998c EndBounceEffect @@ -1831,10 +1866,10 @@ thumb_func 0x8039a88 thumb_func 0x8039aa4 thumb_func 0x8039ac8 thumb_func 0x8039ae0 -thumb_func 0x8039b0c nullsub_39 +thumb_func 0x8039b0c nullsub_20 thumb_func 0x8039b10 BeginBattleIntro thumb_func 0x8039b34 -thumb_func 0x8039b40 +thumb_func 0x8039b40 BattleMainCB1 thumb_func 0x8039b84 BattleStartClearSetData thumb_func 0x8039ec8 SwitchInClearSetData thumb_func 0x803a3a0 FaintClearSetData @@ -1858,7 +1893,8 @@ thumb_func 0x803b548 HandleEndTurn_ContinueBattle thumb_func 0x803b600 BattleTurnPassed thumb_func 0x803b7cc IsRunningFromBattleImpossible thumb_func 0x803b9e4 -thumb_func 0x803bab8 HandleTurnActionSelectionState +thumb_func 0x803bab8 HandleAction_TryFinish +thumb_func 0x803bae0 HandleTurnActionSelectionState thumb_func 0x803c9fc AllAtActionConfirmed thumb_func 0x803ca3c thumb_func 0x803cb20 SwapTurnOrder @@ -1867,8 +1903,8 @@ thumb_func 0x803cf2c SetActionsAndBattlersTurnOrder thumb_func 0x803d1c4 TurnValuesCleanUp thumb_func 0x803d2e4 SpecialStatusesClear thumb_func 0x803d334 CheckFocusPunch_ClearVarsBeforeTurnStarts -thumb_func 0x803d45c RunTurnActionsFunctions -thumb_func 0x803d488 +thumb_func 0x803d45c RunBattleScriptCommands +thumb_func 0x803d488 RunTurnActionsFunctions thumb_func 0x803d504 HandleEndTurn_BattleWon thumb_func 0x803d700 HandleEndTurn_BattleLost thumb_func 0x803d7e0 HandleEndTurn_RanFromBattle @@ -1891,9 +1927,10 @@ thumb_func 0x803ec90 HandleAction_ThrowPokeblock thumb_func 0x803ed60 HandleAction_GoNear thumb_func 0x803ee30 HandleAction_SafariZoneRun thumb_func 0x803ee6c HandleAction_WallyBallThrow -thumb_func 0x803eee4 HandleAction_TryFinish +thumb_func 0x803eee4 thumb_func 0x803ef0c HandleAction_NothingIsFainted thumb_func 0x803ef40 HandleAction_ActionFinished +# battle_util.s thumb_func 0x803f00c GetBattlerForBattleScript thumb_func 0x803f0c0 PressurePPLose thumb_func 0x803f188 PressurePPLoseOnUsingImprison @@ -1909,20 +1946,23 @@ thumb_func 0x803f62c thumb_func 0x803f6b0 thumb_func 0x803f718 BattleScriptPush thumb_func 0x803f73c BattleScriptPushCursor -thumb_func 0x803f764 BattleScriptPop +thumb_func 0x803f764 HandleAction_RunBattleScript thumb_func 0x803f78c TrySetCantSelectMoveBattleScript thumb_func 0x803fb0c CheckMoveLimitations thumb_func 0x803fd08 AreAllMovesUnusable thumb_func 0x803fd70 GetImprisonedMovesCount thumb_func 0x803fe10 DoFieldEndTurnEffects -thumb_func 0x8040564 DoBattlerEndTurnEffects +thumb_func 0x8040564 BattleScriptPop +thumb_func 0x80405a8 DoBattlerEndTurnEffects thumb_func 0x8040fa4 HandleWishPerishSongOnTurnEnd thumb_func 0x8041368 HandleFaintedMonActions thumb_func 0x804165c TryClearRageStatuses thumb_func 0x80416ac +thumb_func 0x80416d0 AtkCanceller_UnableToUseMove thumb_func 0x8042034 HasNoMonsToSwitch thumb_func 0x80422fc CastformDataTypeChange thumb_func 0x8042468 AbilityBattleEffects +thumb_func 0x8043f18 thumb_func 0x8044098 BattleScriptExecute thumb_func 0x80440d8 BattleScriptPushCursorAndCallback thumb_func 0x804411c ItemBattleEffects @@ -1931,6 +1971,7 @@ thumb_func 0x80454f4 thumb_func 0x8045520 GetMoveTarget thumb_func 0x8045884 HasObedientBitSet thumb_func 0x80458fc IsMonDisobedient +# battle_script_commands.s thumb_func 0x8045c3c atk00_attackcanceler thumb_func 0x8045fec JumpIfMoveFailed thumb_func 0x804607c atk40_jumpifaffectedbyprotect @@ -1952,7 +1993,7 @@ thumb_func 0x80474f8 Unused_ApplyRandomDmgMultiplier thumb_func 0x8047534 atk07_adjustnormaldamage thumb_func 0x80476e4 atk08_adjustnormaldamage2 thumb_func 0x8047870 atk09_attackanimation -thumb_func 0x8047a08 +thumb_func 0x8047a08 atk3A_waitstate thumb_func 0x8047a28 atk0B_healthbarupdate thumb_func 0x8047b04 atk0C_datahpupdate thumb_func 0x8047efc atk0D_critmessage @@ -2003,7 +2044,7 @@ thumb_func 0x804b128 atk36_bicbyte thumb_func 0x804b154 atk37_bichalfword thumb_func 0x804b18c atk38_bicword thumb_func 0x804b1d0 atk39_pause -thumb_func 0x804b210 +thumb_func 0x804b210 atk0A_waitanimation thumb_func 0x804b230 atk3B_healthbar_update thumb_func 0x804b288 atk3C_return thumb_func 0x804b294 atk3D_end @@ -2017,7 +2058,9 @@ thumb_func 0x804b41c atk45_playanimation thumb_func 0x804b4e0 atk46_playanimation2 thumb_func 0x804b5ac atk47_setgraphicalstatchangevalues thumb_func 0x804b608 atk48_playstatchangeanimation -thumb_func 0x804b7fc atk49_moveend +thumb_func 0x804b7fc +thumb_func 0x804b8dc +thumb_func 0x804b944 atk49_moveend thumb_func 0x804c224 atk4A_typecalc2 thumb_func 0x804c474 atk4B_returnatktoball thumb_func 0x804c4c4 atk4C_getswitchedmondata @@ -2025,20 +2068,20 @@ thumb_func 0x804c534 atk4D_switchindataupdate thumb_func 0x804c718 atk4E_switchinanim thumb_func 0x804c7e0 atk4F_jumpifcantswitch thumb_func 0x804cb40 -thumb_func 0x804cbb8 +thumb_func 0x804cbb8 atk50_openpartyscreen thumb_func 0x804d450 atk51_switchhandleorder thumb_func 0x804d6dc atk52_switchineffects -thumb_func 0x804d9d8 +thumb_func 0x804d9d8 atk53_trainerslidein thumb_func 0x804da08 atk54_playse thumb_func 0x804da44 atk55_fanfare thumb_func 0x804da80 atk56_playfaintcry -thumb_func 0x804dab0 +thumb_func 0x804dab0 atk57 thumb_func 0x804dae8 atk58_returntoball thumb_func 0x804db1c atk59_handlelearnnewmove thumb_func 0x804dc68 atk5A_yesnoboxlearnmove -thumb_func 0x804dff8 RegionMap_GetMarineCaveCoords +thumb_func 0x804dff8 atk5B_yesnoboxstoplearningmove thumb_func 0x804e138 atk5C_hitanimation -thumb_func 0x804e1c8 RubyBattleTowerRecordToEmerald +thumb_func 0x804e1c8 GetTrainerMoneyToGive thumb_func 0x804e2f0 atk5D_getmoneyreward thumb_func 0x804e37c atk5E thumb_func 0x804e430 atk5F_swapattackerwithtarget @@ -2162,7 +2205,7 @@ thumb_func 0x8054134 atkC2_selectfirstvalidtarget thumb_func 0x80541a8 atkC3_trysetfutureattack thumb_func 0x80542f4 atkC4_trydobeatup thumb_func 0x8054504 atkC5_setsemiinvulnerablebit -thumb_func 0x8054588 atkC6_clearsemiinvulnerablebit +thumb_func 0x8054588 thumb_func 0x8054618 atkC7_setminimize thumb_func 0x8054658 atkC8_sethail thumb_func 0x80546b0 atkC9_jumpifattackandspecialattackcannotfall @@ -2216,15 +2259,17 @@ thumb_func 0x8056ab8 atkF5_removeattackerstatus1 thumb_func 0x8056ae0 atkF6_finishaction thumb_func 0x8056aec atkF7_finishturn thumb_func 0x8056b08 atkF8_trainerslideout +# battle_util2.s thumb_func 0x8056b38 AllocateBattleResources thumb_func 0x8056c38 FreeBattleResources thumb_func 0x8056d04 AdjustFriendshipOnBattleFaint thumb_func 0x8056dec thumb_func 0x8056e6c -thumb_func 0x8057068 nullsub_401 +# battle_controller_player.s +thumb_func 0x8057068 nullsub_21 thumb_func 0x805706c SetControllerToPlayer thumb_func 0x805709c PlayerBufferExecCompleted -thumb_func 0x8057114 +thumb_func 0x8057114 PlayerBufferRunCommand thumb_func 0x8057164 CompleteOnBankSpritePosX_0 thumb_func 0x8057198 thumb_func 0x8057400 @@ -2234,8 +2279,8 @@ thumb_func 0x8057bcc thumb_func 0x8057d48 HandleMoveSwitching thumb_func 0x8058308 thumb_func 0x80583c0 -thumb_func 0x8058454 -thumb_func 0x805848c +thumb_func 0x8058454 PlayerHandleIntroSlide +thumb_func 0x805848c PlayerHandleChosenMonReturnValue thumb_func 0x80584c4 thumb_func 0x8058534 thumb_func 0x805857c @@ -2243,42 +2288,42 @@ thumb_func 0x8058750 thumb_func 0x8058aec thumb_func 0x8058bd0 thumb_func 0x8058c3c -thumb_func 0x8058d10 -thumb_func 0x8058d40 -thumb_func 0x8058db0 +thumb_func 0x8058d10 c3_0802FDF4 +thumb_func 0x8058d40 MoveSelectionDisplayMoveType +thumb_func 0x8058db0 PlayerHandleCmd42 thumb_func 0x8058dc8 -thumb_func 0x8058f40 Task_PrepareToGiveExpWithExpBar +thumb_func 0x8058f40 thumb_func 0x8059010 thumb_func 0x8059154 Task_LaunchLvlUpAnim thumb_func 0x80591b4 Task_UpdateLvlInHealthbox -thumb_func 0x805926c DestroyExpTaskAndCompleteOnInactiveTextPrinter +thumb_func 0x805926c MoveSelectionDisplayPpString thumb_func 0x80592b8 thumb_func 0x8059354 -thumb_func 0x80593c4 +thumb_func 0x80593c4 PlayerHandleDataTransfer thumb_func 0x80593dc OpenPartyMenuToChooseMon thumb_func 0x8059438 WaitForMonSelection thumb_func 0x80594b4 OpenBagAndChooseItem thumb_func 0x80594f0 CompleteWhenChoseItem -thumb_func 0x805952c -thumb_func 0x8059568 +thumb_func 0x805952c PlayerHandleOneReturnValue_Duplicate +thumb_func 0x8059568 PlayerHandleHitAnimation thumb_func 0x80595e4 PlayerHandleUnknownYesNoInput -thumb_func 0x80596bc -thumb_func 0x8059734 +thumb_func 0x80596bc MoveSelectionDisplayMoveNames +thumb_func 0x8059734 PlayerHandleTwoReturnValues thumb_func 0x805976c MoveSelectionDisplayPpNumber -thumb_func 0x80597e0 +thumb_func 0x80597e0 ActionSelectionCreateCursorAt thumb_func 0x805983c MoveSelectionCreateCursorAt -thumb_func 0x8059884 -thumb_func 0x80598c8 ActionSelectionCreateCursorAt -thumb_func 0x8059910 MoveSelectionDestroyCursorAt -thumb_func 0x805995c +thumb_func 0x8059884 MoveSelectionDestroyCursorAt +thumb_func 0x80598c8 SetCB2ToReshowScreenAfterMenu +thumb_func 0x8059910 ActionSelectionDestroyCursorAt +thumb_func 0x805995c SetCB2ToReshowScreenAfterMenu2 thumb_func 0x805996c thumb_func 0x805997c thumb_func 0x80599ac thumb_func 0x80599dc PrintLinkStandbyMsg -thumb_func 0x8059a10 +thumb_func 0x8059a10 PlayerHandleGetMonData thumb_func 0x8059a84 CopyPlayerMonData thumb_func 0x805a230 PlayerHandleGetRawMonData -thumb_func 0x805a2b8 +thumb_func 0x805a2b8 PlayerHandleSetMonData thumb_func 0x805a310 SetPlayerMonData thumb_func 0x805ad0c PlayerHandleSetRawMonData thumb_func 0x805ad80 PlayerHandleLoadMonSprite @@ -2295,7 +2340,7 @@ thumb_func 0x805b7e0 PlayerHandleSuccessBallThrowAnim thumb_func 0x805b834 PlayerHandleBallThrowAnim thumb_func 0x805b894 PlayerHandlePause thumb_func 0x805b8c4 PlayerHandleMoveAnimation -thumb_func 0x805ba18 +thumb_func 0x805ba18 PlayerDoMoveAnimation thumb_func 0x805bb9c PlayerHandlePrintString thumb_func 0x805bbfc PlayerHandlePrintSelectionString thumb_func 0x805bc20 @@ -2316,12 +2361,12 @@ thumb_func 0x805c2c0 PlayerHandleStatusXor thumb_func 0x805c32c thumb_func 0x805c338 PlayerHandleDMA3Transfer thumb_func 0x805c3ec PlayerHandlePlayBGM -thumb_func 0x805c41c ScrCmd_choosecontestmon +thumb_func 0x805c41c PlayerHandleCmd32 thumb_func 0x805c428 thumb_func 0x805c43c thumb_func 0x805c450 -thumb_func 0x805c464 -thumb_func 0x805c478 +thumb_func 0x805c464 PlayerHandleOneReturnValue +thumb_func 0x805c478 PlayerHandleCmd37 thumb_func 0x805c494 PlayerHandleCmd38 thumb_func 0x805c4cc PlayerHandleCmd39 thumb_func 0x805c4e4 PlayerHandleCmd40 @@ -2343,8 +2388,9 @@ thumb_func 0x805cb70 PlayerHandleBattleAnimation thumb_func 0x805cbe4 PlayerHandleLinkStandbyMsg thumb_func 0x805cc48 PlayerHandleResetActionMoveSelection thumb_func 0x805ccb0 PlayerHandleCmd55 -thumb_func 0x805cd30 nullsub_41 -thumb_func 0x805cd34 GetSecretBaseMapName +thumb_func 0x805cd30 PlayerCmdEnd +# battle_gfx_sfx_util.s +thumb_func 0x805cd34 AllocateBattleSpritesData thumb_func 0x805cd74 FreeBattleSpritesData thumb_func 0x805cdb8 ChooseMoveAndTargetInBattlePalace thumb_func 0x805d0c4 @@ -2355,21 +2401,21 @@ thumb_func 0x805d3c8 thumb_func 0x805d408 thumb_func 0x805d424 InitAndLaunchChosenStatusAnimation thumb_func 0x805d524 TryHandleLaunchBattleTableAnimation -thumb_func 0x805d664 -thumb_func 0x805d674 +thumb_func 0x805d664 nullsub_23 +thumb_func 0x805d674 Task_ClearBitWhenBattleTableAnimDone thumb_func 0x805d6bc ShouldAnimBeDoneRegardlessOfSubsitute thumb_func 0x805d6e0 InitAndLaunchSpecialAnimation -thumb_func 0x805d750 -thumb_func 0x805d760 -thumb_func 0x805d7a8 +thumb_func 0x805d750 nullsub_24 +thumb_func 0x805d760 Task_ClearBitWhenSpecialAnimDone +thumb_func 0x805d7a8 IsMoveWithoutAnimation thumb_func 0x805d7ac mplay_80342A4 thumb_func 0x805d828 BattleLoadOpponentMonSpriteGfx thumb_func 0x805d998 BattleLoadPlayerMonSpriteGfx -thumb_func 0x805db4c nullsub_40 -thumb_func 0x805db50 nullsub_9 +thumb_func 0x805db4c nullsub_25 +thumb_func 0x805db50 thumb_func 0x805db54 DecompressTrainerFrontPic thumb_func 0x805dba0 DecompressTrainerBackPic -thumb_func 0x805dbfc nullsub_8 +thumb_func 0x805dbfc thumb_func 0x805dc00 FreeTrainerFrontPicPalette thumb_func 0x805dc18 BattleLoadAllHealthBoxesGfxAtOnce thumb_func 0x805dca8 BattleLoadAllHealthBoxesGfx @@ -2380,7 +2426,7 @@ thumb_func 0x805df94 ClearSpritesBattlerHealthboxAnimData thumb_func 0x805dfb0 CopyAllBattleSpritesInvisibilities thumb_func 0x805e024 CopyBattleSpriteInvisibility thumb_func 0x805e064 HandleSpeciesGfxDataChange -thumb_func 0x805e3f8 +thumb_func 0x805e3f8 BattleLoadSubstituteOrMonSpriteGfx thumb_func 0x805e510 LoadBattleMonGfxAndAnimate thumb_func 0x805e568 TrySetBehindSubstituteSpriteBit thumb_func 0x805e590 ClearBehindSubstituteBit @@ -2391,7 +2437,7 @@ thumb_func 0x805e704 HandleBattleLowHpMusicChange thumb_func 0x805e7b8 thumb_func 0x805e8a0 LoadAndCreateEnemyShadowSprites thumb_func 0x805e98c SpriteCB_EnemyShadow -thumb_func 0x805ea64 +thumb_func 0x805ea64 SpriteCB_SetInvisible thumb_func 0x805ea70 SetBattlerShadowSpriteCallback thumb_func 0x805eafc HideBattlerShadowSprite thumb_func 0x805eb30 @@ -2399,93 +2445,95 @@ thumb_func 0x805eba0 ClearTemporarySpeciesSpriteData thumb_func 0x805ebd8 AllocateMonSpritesGfx thumb_func 0x805ecb0 FreeMonSpritesGfx thumb_func 0x805ed2c ShouldPlayNormalMonCry -thumb_func 0x805ed7c nullsub_18 -thumb_func 0x805ed80 -thumb_func 0x805ed9c -thumb_func 0x805edec -thumb_func 0x805ee24 +# battle_controller_opponent.s +thumb_func 0x805ed7c +thumb_func 0x805ed80 SetControllerToOpponent +thumb_func 0x805ed9c OpponentBufferRunCommand +thumb_func 0x805edec OpponentHandleIntroSlide +thumb_func 0x805ee24 OpponentHandleChooseItem thumb_func 0x805ee5c thumb_func 0x805eec4 thumb_func 0x805ef0c thumb_func 0x805f14c thumb_func 0x805f580 thumb_func 0x805f65c -thumb_func 0x805f6b0 +thumb_func 0x805f6b0 OpponentHandleCmd38 thumb_func 0x805f6f4 -thumb_func 0x805f768 -thumb_func 0x805f780 +thumb_func 0x805f768 OpponentHandleBallThrow +thumb_func 0x805f780 OpponentHandleHitAnimation thumb_func 0x805f7fc thumb_func 0x805f86c thumb_func 0x805f8ec thumb_func 0x805f9dc -thumb_func 0x805faa4 -thumb_func 0x805fad4 +thumb_func 0x805faa4 OpponentHandleCmd37 +thumb_func 0x805fad4 OpponentHandleCmd39 thumb_func 0x805fb04 OpponentBufferExecCompleted thumb_func 0x805fb7c OpponentHandleGetMonData -thumb_func 0x805fbf0 +thumb_func 0x805fbf0 GetOpponentMonData thumb_func 0x806039c OpponentHandleGetRawMonData -thumb_func 0x8060424 +thumb_func 0x8060424 OpponentHandleSetMonData thumb_func 0x806047c SetOpponentMonData thumb_func 0x8060d9c OpponentHandleSetRawMonData thumb_func 0x8060e10 OpponentHandleLoadMonSprite thumb_func 0x8060f68 OpponentHandleSwitchInAnim thumb_func 0x8060fc8 thumb_func 0x8061158 OpponentHandleReturnMonToBall -thumb_func 0x80611f0 +thumb_func 0x80611f0 OpponentHandleHidePartyStatusSummary thumb_func 0x806127c OpponentHandleDrawTrainerPic -thumb_func 0x80614c0 +thumb_func 0x80614c0 OpponentHandleTrainerSlide thumb_func 0x80616d4 OpponentHandleTrainerSlideBack -thumb_func 0x8061780 -thumb_func 0x806182c RunSaveCallback -thumb_func 0x8061838 -thumb_func 0x8061844 -thumb_func 0x8061850 +thumb_func 0x8061780 OpponentHandleFaintAnimation +thumb_func 0x806182c OpponentHandlePaletteFade +thumb_func 0x8061838 OpponentHandlePause +thumb_func 0x8061844 OpponentHandleSuccessBallThrowAnim +thumb_func 0x8061850 OpponentHandleChosenMonReturnValue thumb_func 0x806185c OpponentHandleMoveAnimation -thumb_func 0x8061994 +thumb_func 0x8061994 OpponentDoMoveAnimation thumb_func 0x8061b18 OpponentHandlePrintString -thumb_func 0x8061b74 +thumb_func 0x8061b74 OpponentHandleCmd23 thumb_func 0x8061b80 OpponentHandleChooseAction -thumb_func 0x8061b90 +thumb_func 0x8061b90 OpponentHandleCmd32 thumb_func 0x8061b9c OpponentHandleChooseMove -thumb_func 0x8061d40 OpponentHandleChooseItem +thumb_func 0x8061d40 OpponentHandleCmd40 thumb_func 0x8061d6c OpponentHandleChoosePokemon -thumb_func 0x8061e6c +thumb_func 0x8061e6c OpponentHandleCmd42 thumb_func 0x8061e78 OpponentHandleHealthBarUpdate -thumb_func 0x8061f68 +thumb_func 0x8061f68 OpponentHandleDMA3Transfer thumb_func 0x8061f74 OpponentHandleStatusIconUpdate thumb_func 0x8061fec OpponentHandleStatusAnimation -thumb_func 0x8062054 -thumb_func 0x8062060 -thumb_func 0x806206c -thumb_func 0x8062078 -thumb_func 0x8062084 -thumb_func 0x8062090 RfuVSync -thumb_func 0x806209c SwapRentalMons -thumb_func 0x80620a8 -thumb_func 0x80620b4 -thumb_func 0x80620c0 -thumb_func 0x80620dc -thumb_func 0x8062114 +thumb_func 0x8062054 OpponentHandleDataTransfer +thumb_func 0x8062060 OpponentHandleEndBounceEffect +thumb_func 0x806206c OpponentHandleExpUpdate +thumb_func 0x8062078 OpponentHandleLinkStandbyMsg +thumb_func 0x8062084 OpponentHandleOneReturnValue +thumb_func 0x8062090 OpponentHandleOneReturnValue_Duplicate +thumb_func 0x806209c OpponentHandlePlayBGM +thumb_func 0x80620a8 OpponentHandlePrintSelectionString +thumb_func 0x80620b4 OpponentHandleResetActionMoveSelection +thumb_func 0x80620c0 OpponentHandleStatusXor +thumb_func 0x80620dc OpponentHandleTwoReturnValues +thumb_func 0x8062114 OpponentHandleUnknownYesNoBox thumb_func 0x806212c thumb_func 0x8062154 -thumb_func 0x80621c4 +thumb_func 0x80621c4 OpponentCmdEnd thumb_func 0x80621d0 OpponentHandlePlaySE -thumb_func 0x8062214 +thumb_func 0x8062214 OpponentHandlePlayFanfareOrBGM thumb_func 0x8062270 OpponentHandleFaintingCry -thumb_func 0x80622ac -thumb_func 0x80622e0 +thumb_func 0x80622ac nullsub_26 +thumb_func 0x80622e0 OpponentHandleIntroTrainerBallThrow thumb_func 0x80623f0 -thumb_func 0x806240c +thumb_func 0x806240c OpponentHandleDrawPartyStatusSummary thumb_func 0x80624fc thumb_func 0x8062610 thumb_func 0x8062658 thumb_func 0x80626a8 thumb_func 0x80626b4 OpponentHandleSpriteInvisibility thumb_func 0x8062714 OpponentHandleBattleAnimation -thumb_func 0x806277c WallyHandleCmd38 +thumb_func 0x806277c thumb_func 0x8062788 thumb_func 0x8062794 OpponentHandleCmd55 -thumb_func 0x80627d8 nullsub_43 +thumb_func 0x80627d8 +# battle_ai_switch_items.s thumb_func 0x80627dc ShouldSwitchIfPerishSong thumb_func 0x806283c ShouldSwitchIfWonderGuard thumb_func 0x8062a38 FindMonThatAbsorbsOpponentsMove @@ -2499,51 +2547,52 @@ thumb_func 0x80635ec ModulateByTypeEffectiveness thumb_func 0x8063674 GetMostSuitableMonToSwitchInto thumb_func 0x8063a68 GetAI_ItemType thumb_func 0x8063ac4 ShouldUseItem -thumb_func 0x8063f74 nullsub_11 -thumb_func 0x8063f78 -thumb_func 0x8063f94 -thumb_func 0x8063fe4 +# battle_controller_link_opponent.s +thumb_func 0x8063f74 nullsub_28 +thumb_func 0x8063f78 SetControllerToLinkOpponent +thumb_func 0x8063f94 LinkOpponentBufferRunCommand +thumb_func 0x8063fe4 LinkOpponentHandleCmd37 thumb_func 0x806401c thumb_func 0x8064054 thumb_func 0x80640bc thumb_func 0x8064104 thumb_func 0x8064318 thumb_func 0x80646e8 -thumb_func 0x80647a4 +thumb_func 0x80647a4 LinkOpponentHandleFaintingCry thumb_func 0x80647f8 thumb_func 0x806483c thumb_func 0x80648b0 thumb_func 0x80648c8 thumb_func 0x8064944 -thumb_func 0x80649b4 +thumb_func 0x80649b4 LinkOpponentHandleGetMonData thumb_func 0x8064a34 thumb_func 0x8064b24 thumb_func 0x8064bec -thumb_func 0x8064c1c +thumb_func 0x8064c1c LinkOpponentHandleDrawPartyStatusSummary thumb_func 0x8064c4c LinkOpponentBufferExecCompleted thumb_func 0x8064cc4 thumb_func 0x8064d38 CopyLinkOpponentMonData -thumb_func 0x80654e4 -thumb_func 0x80654f0 -thumb_func 0x8065548 -thumb_func 0x8065e68 +thumb_func 0x80654e4 LinkOpponentHandleGetRawMonData +thumb_func 0x80654f0 LinkOpponentHandleSetMonData +thumb_func 0x8065548 SetLinkOpponentMonData +thumb_func 0x8065e68 LinkOpponentHandleSetRawMonData thumb_func 0x8065edc LinkOpponentHandleLoadMonSprite -thumb_func 0x806602c +thumb_func 0x806602c LinkOpponentHandleSwitchInAnim thumb_func 0x8066078 thumb_func 0x8066208 LinkOpponentHandleReturnMonToBall thumb_func 0x80662a0 thumb_func 0x806632c LinkOpponentHandleDrawTrainerPic thumb_func 0x806663c LinkOpponentHandleTrainerSlide -thumb_func 0x8066778 +thumb_func 0x8066778 LinkOpponentHandleTrainerSlideBack thumb_func 0x8066824 LinkOpponentHandleFaintAnimation -thumb_func 0x80668d0 -thumb_func 0x80668dc +thumb_func 0x80668d0 LinkOpponentHandlePaletteFade +thumb_func 0x80668dc LinkOpponentHandleSuccessBallThrowAnim thumb_func 0x80668e8 LinkOpponentHandleBallThrowAnim thumb_func 0x80668f4 LinkOpponentHandlePause -thumb_func 0x8066900 -thumb_func 0x8066a54 +thumb_func 0x8066900 LinkOpponentHandleMoveAnimation +thumb_func 0x8066a54 LinkOpponentDoMoveAnimation thumb_func 0x8066bd8 LinkOpponentHandlePrintString -thumb_func 0x8066c30 +thumb_func 0x8066c30 LinkOpponentHandlePrintSelectionString thumb_func 0x8066c3c LinkOpponentHandleChooseAction thumb_func 0x8066c48 LinkOpponentHandleUnknownYesNoBox thumb_func 0x8066c54 LinkOpponentHandleChooseMove @@ -2563,16 +2612,16 @@ thumb_func 0x8066e9c LinkOpponentHandleTwoReturnValues thumb_func 0x8066ea8 LinkOpponentHandleChosenMonReturnValue thumb_func 0x8066eb4 LinkOpponentHandleOneReturnValue thumb_func 0x8066ec0 LinkOpponentHandleOneReturnValue_Duplicate -thumb_func 0x8066ecc LinkOpponentHandleCmd37 +thumb_func 0x8066ecc thumb_func 0x8066ee8 LinkOpponentHandleCmd38 thumb_func 0x8066f20 LinkOpponentHandleCmd39 thumb_func 0x8066f38 LinkOpponentHandleCmd40 thumb_func 0x8066f60 LinkOpponentHandleHitAnimation thumb_func 0x8066fd0 LinkOpponentHandleCmd42 thumb_func 0x8066fdc LinkOpponentHandlePlaySE -thumb_func 0x8067020 +thumb_func 0x8067020 LinkOpponentHandlePlayFanfareOrBGM thumb_func 0x806707c -thumb_func 0x80670b8 +thumb_func 0x80670b8 LinkOpponentHandleIntroSlide thumb_func 0x80670ec LinkOpponentHandleIntroTrainerBallThrow thumb_func 0x80671fc thumb_func 0x80672e0 @@ -2585,7 +2634,8 @@ thumb_func 0x8067514 LinkOpponentHandleBattleAnimation thumb_func 0x8067588 LinkOpponentHandleLinkStandbyMsg thumb_func 0x80675a8 LinkOpponentHandleResetActionMoveSelection thumb_func 0x80675b4 LinkOpponentHandleCmd55 -thumb_func 0x8067654 nullsub_441 +thumb_func 0x8067654 LinkOpponentCmdEnd +# pokemon.s thumb_func 0x8067658 ZeroBoxMonData thumb_func 0x8067670 ZeroMonData thumb_func 0x80676f0 ZeroPlayerPartyMons @@ -2598,9 +2648,9 @@ thumb_func 0x8067bdc CreateMaleMon thumb_func 0x8067c44 CreateMonWithIVsPersonality thumb_func 0x8067c84 CreateMonWithIVsOTID thumb_func 0x8067cf8 CreateMonWithEVSpread -thumb_func 0x8067d80 +thumb_func 0x8067d80 CreateBattleTowerMon thumb_func 0x8067ed0 CreateBattleTowerMon2 -thumb_func 0x8068080 +thumb_func 0x8068080 CreateApprenticeMon thumb_func 0x8068174 CreateMonWithEVSpreadNatureOTID thumb_func 0x806823c thumb_func 0x80683e8 CreateObedientMon @@ -2620,7 +2670,7 @@ thumb_func 0x8068c80 GiveMoveToBoxMon thumb_func 0x8068cf0 GiveMoveToBattleMon thumb_func 0x8068d34 SetMonMoveSlot thumb_func 0x8068d74 SetBattleMonMoveSlot -thumb_func 0x8068da4 +thumb_func 0x8068da4 MonRestorePP thumb_func 0x8068db0 GiveBoxMonInitialMoveset thumb_func 0x8068e58 MonTryLearningNewMove thumb_func 0x8068f64 DeleteFirstMoveAndGiveMoveToMon @@ -2639,43 +2689,46 @@ thumb_func 0x8069d68 EncryptBoxMon thumb_func 0x8069d8c DecryptBoxMon thumb_func 0x8069db0 GetSubstruct thumb_func 0x806a058 GetMonData -thumb_func 0x806a1b4 +thumb_func 0x806a1b4 GetBoxMonData thumb_func 0x806a774 SetMonData thumb_func 0x806a864 SetBoxMonData -thumb_func 0x806aed0 +thumb_func 0x806aed0 CopyMon thumb_func 0x806aedc GiveMonToPlayer thumb_func 0x806af58 SendMonToPC -thumb_func 0x806b004 -thumb_func 0x806b048 +thumb_func 0x806b004 CalculatePlayerPartyCount +thumb_func 0x806b048 CalculateEnemyPartyCount thumb_func 0x806b08c GetMonsStateToDoubles thumb_func 0x806b100 GetMonsStateToDoubles_2 thumb_func 0x806b15c GetAbilityBySpecies thumb_func 0x806b1a0 GetMonAbility thumb_func 0x806b1d4 CreateSecretBaseEnemyParty -thumb_func 0x806b2f8 -thumb_func 0x806b338 +thumb_func 0x806b2f8 GetSecretBaseTrainerClass +thumb_func 0x806b338 GetSecretBaseTrainerPicIndex thumb_func 0x806b378 IsPlayerPartyAndPokemonStorageFull thumb_func 0x806b3ac IsPokemonStorageFull -thumb_func 0x806b3dc +thumb_func 0x806b3dc GetSpeciesName thumb_func 0x806b424 CalculatePPWithBonus thumb_func 0x806b46c RemoveMonPPBonus thumb_func 0x806b4a8 RemoveBattleMonPPBonus thumb_func 0x806b4c0 CopyPlayerPartyMonToBattleData thumb_func 0x806b7c8 ExecuteTableBasedItemEffect -thumb_func 0x806b7ec PokemonUseItemEffects -thumb_func 0x806c830 +thumb_func 0x806b7ec +thumb_func 0x806b9a4 GetTrainerNameFromId +thumb_func 0x806b9c0 PokemonUseItemEffects +thumb_func 0x806c820 PlayBattleBGM +thumb_func 0x806c830 HealStatusConditions thumb_func 0x806c8a0 GetItemEffectParamOffset thumb_func 0x806c9e8 thumb_func 0x806ca3c thumb_func 0x806cb34 GetNature thumb_func 0x806cb4c GetNatureFromPersonality thumb_func 0x806cb5c GetEvolutionTargetSpecies -thumb_func 0x806ce84 -thumb_func 0x806ced0 -thumb_func 0x806cf1c -thumb_func 0x806cf68 -thumb_func 0x806cf8c -thumb_func 0x806cfb0 +thumb_func 0x806ce84 HoennPokedexNumToSpecies +thumb_func 0x806ced0 NationalPokedexNumToSpecies +thumb_func 0x806cf1c NationalToHoennOrder +thumb_func 0x806cf68 HoennToNationalOrder +thumb_func 0x806cf8c SpeciesToHoennPokedexNum +thumb_func 0x806cfb0 SpeciesToNationalPokedexNum thumb_func 0x806cfd4 SpeciesToCryId thumb_func 0x806d008 thumb_func 0x806d128 DrawSpindaSpots @@ -2683,7 +2736,7 @@ thumb_func 0x806d23c thumb_func 0x806d288 thumb_func 0x806d2c8 GetLinkTrainerFlankId thumb_func 0x806d300 GetBattlerMultiplayerId -thumb_func 0x806d324 +thumb_func 0x806d324 GetTrainerEncounterMusicId thumb_func 0x806d36c ModifyStatByNature thumb_func 0x806d3cc AdjustFriendship thumb_func 0x806d570 MonGainEVs @@ -2700,16 +2753,16 @@ thumb_func 0x806db48 GetMoveRelearnerMoves thumb_func 0x806dc98 GetLevelUpMovesBySpecies thumb_func 0x806dcf0 GetNumberOfRelearnableMoves thumb_func 0x806de54 SpeciesToPokedexNum -thumb_func 0x806de8c MainMenu_FormatSavegameText +thumb_func 0x806de8c IsSpeciesInHoennDex thumb_func 0x806dea8 ClearBattleMonForms thumb_func 0x806dec0 GetBattleBGM -thumb_func 0x806e0d8 +thumb_func 0x806e0d8 GetFlavorRelationByPersonality thumb_func 0x806e0f4 PlayMapChosenOrBattleBGM -thumb_func 0x806e120 +thumb_func 0x806e120 GetMonFlavorRelation thumb_func 0x806e158 -thumb_func 0x806e194 +thumb_func 0x806e194 GetMonFrontSpritePal thumb_func 0x806e1cc GetMonSpritePalFromSpeciesAndPersonality -thumb_func 0x806e220 +thumb_func 0x806e220 GetMonSpritePalStruct thumb_func 0x806e258 GetMonSpritePalStructFromOtIdPersonality thumb_func 0x806e290 IsHMMove2 thumb_func 0x806e2cc IsMonSpriteNotFlipped @@ -2717,7 +2770,7 @@ thumb_func 0x806e2e4 thumb_func 0x806e30c thumb_func 0x806e334 IsTradedMon thumb_func 0x806e360 IsOtherTrainer -thumb_func 0x806e3b0 +thumb_func 0x806e3b0 GiveMonInitialMoveset thumb_func 0x806e3bc BoxMonRestorePP thumb_func 0x806e420 SetMonPreventsSwitchingString thumb_func 0x806e4cc GetWildMonTableIdInAlteringCave @@ -2734,10 +2787,10 @@ thumb_func 0x806e924 StopPokemonAnimationDelayTask thumb_func 0x806e940 BattleAnimateBackSprite thumb_func 0x806e994 thumb_func 0x806ea10 -thumb_func 0x806ea7c +thumb_func 0x806ea7c FacilityClassToPicIndex thumb_func 0x806ea8c PlayerGenderToFrontTrainerPicId thumb_func 0x806eaa8 HandleSetPokedexFlag -thumb_func 0x806eb08 +thumb_func 0x806eb08 GetTrainerClassNameFromId thumb_func 0x806eb38 thumb_func 0x806eb58 HasTwoFramesAnimation thumb_func 0x806eb88 @@ -2745,15 +2798,18 @@ thumb_func 0x806ebe4 thumb_func 0x806ec80 thumb_func 0x806ed30 thumb_func 0x806ef00 -thumb_func 0x806ef7c +thumb_func 0x806ef7c EvolutionRenameMon +# trig.s thumb_func 0x806efb8 Sin thumb_func 0x806efd4 Cos thumb_func 0x806eff4 Sin2 thumb_func 0x806f038 Cos2 +# random.s thumb_func 0x806f050 Random thumb_func 0x806f07c SeedRng -thumb_func 0x806f094 -thumb_func 0x806f0a4 +thumb_func 0x806f094 SeedRng2 +thumb_func 0x806f0a4 Random2 +# util.s thumb_func 0x806f0c4 CreateInvisibleSpriteWithCallback thumb_func 0x806f100 StoreWordInTwoHalfwords thumb_func 0x806f108 LoadWordFromTwoHalfwords @@ -2765,12 +2821,13 @@ thumb_func 0x806f354 CalcCRC16 thumb_func 0x806f3ac CalcCRC16WithTable thumb_func 0x806f3f0 CalcByteArraySum thumb_func 0x806f410 BlendPalette -thumb_func 0x806f4b0 -thumb_func 0x806f4d0 +# daycare.s +thumb_func 0x806f4b0 GetBoxMonNick +thumb_func 0x806f4d0 GetMonNick thumb_func 0x806f4f0 CountPokemonInDaycare thumb_func 0x806f520 InitDaycareMailRecordMixing thumb_func 0x806f58c Daycare_FindEmptySpot -thumb_func 0x806f5bc +thumb_func 0x806f5bc StorePokemonInDaycare thumb_func 0x806f64c StorePokemonInEmptyDaycareSlot thumb_func 0x806f670 StoreSelectedPokemonInDaycare thumb_func 0x806f6a0 ShiftDaycareSlots @@ -2805,9 +2862,9 @@ thumb_func 0x807019c AlterEggSpeciesWithIncenseItem thumb_func 0x80701fc GiveVoltTackleIfLightBall thumb_func 0x8070244 DetermineEggSpeciesAndParentSlots thumb_func 0x8070320 _GiveEggFromDaycare -thumb_func 0x80703ac -thumb_func 0x807044c AnimSolarbeamSmallOrb -thumb_func 0x80704d0 +thumb_func 0x80703ac CreateEgg +thumb_func 0x807044c SetInitialEggData +thumb_func 0x80704d0 GiveEggFromDaycare thumb_func 0x80704ec _DoEggActions_CheckHatch thumb_func 0x80705f8 ShouldEggHatch thumb_func 0x8070618 IsEggPending @@ -2827,11 +2884,12 @@ thumb_func 0x80709dc GetDaycareLevelMenuText thumb_func 0x8070a60 GetDaycareLevelMenuLevelText thumb_func 0x8070ac4 DaycareAddTextPrinter thumb_func 0x8070b38 DaycarePrintMonNick -thumb_func 0x8070b74 +thumb_func 0x8070b74 DaycarePrintMonLvl thumb_func 0x8070bd8 DaycarePrintMonInfo thumb_func 0x8070c24 Task_HandleDaycareLevelMenuInput thumb_func 0x8070ce0 ShowDaycareLevelMenu -thumb_func 0x8070d50 FieldCallback_SecretBaseCave +thumb_func 0x8070d50 ChooseSendDaycareMon +# egg_hatch.s thumb_func 0x8070d68 CreatedHatchedMon thumb_func 0x8070ed0 AddHatchedMonToParty thumb_func 0x8070f90 ScriptHatchMon @@ -2841,7 +2899,7 @@ thumb_func 0x8071044 EggHatchCreateMonSprite thumb_func 0x8071134 VBlankCB_EggHatch thumb_func 0x8071148 EggHatch thumb_func 0x8071168 Task_EggHatch -thumb_func 0x80711a8 +thumb_func 0x80711a8 CB2_EggHatch_0 thumb_func 0x8071400 EggHatchSetMonNickname thumb_func 0x8071440 Task_EggHatchPlayBGM thumb_func 0x8071498 CB2_EggHatch_1 @@ -2857,6 +2915,7 @@ thumb_func 0x8071ba4 CreateEggShardSprite thumb_func 0x8071c24 EggHatchPrintMessage thumb_func 0x8071c9c GetEggStepsToSubtract thumb_func 0x8071cf0 +# battle_interface.s thumb_func 0x8071d14 DummiedOutFunction thumb_func 0x8071d18 thumb_func 0x8071eb8 @@ -2870,14 +2929,14 @@ thumb_func 0x8072394 SetHealthboxSpriteInvisible thumb_func 0x80723e0 SetHealthboxSpriteVisible thumb_func 0x8072434 UpdateSpritePos thumb_func 0x8072454 DestoryHealthboxSprite -thumb_func 0x8072494 nullsub_7 +thumb_func 0x8072494 DummyBattleInterfaceFunc thumb_func 0x8072498 UpdateOamPriorityInAllHealthboxes thumb_func 0x8072528 InitBattlerHealthboxCoords -thumb_func 0x80725a4 +thumb_func 0x80725a4 UpdateLvlInHealthbox thumb_func 0x80726f4 -thumb_func 0x80727fc SwapHpBarsWithHpText +thumb_func 0x80727fc UpdateHpTextInHealthboxInDoubles thumb_func 0x80729d0 PrintSafariMonInfo -thumb_func 0x8072c10 +thumb_func 0x8072c10 SwapHpBarsWithHpText thumb_func 0x8072ed8 CreatePartyStatusSummarySprites thumb_func 0x807352c Task_HidePartyStatusSummary thumb_func 0x8073704 @@ -2888,11 +2947,11 @@ thumb_func 0x807398c thumb_func 0x80739c0 SpriteCB_StatusSummaryBallsOnBattleStart thumb_func 0x8073a54 thumb_func 0x8073ac4 SpriteCB_StatusSummaryBallsOnSwitchout -thumb_func 0x8073ae4 +thumb_func 0x8073ae4 UpdateNickInHealthbox thumb_func 0x8073d80 TryAddPokeballIconToHealthbox thumb_func 0x8073e68 UpdateStatusIconInHealthbox thumb_func 0x8074118 GetStatusIconForBattlerId -thumb_func 0x80741e0 +thumb_func 0x80741e0 AddTextPrinterAndCreateWindowOnHealthbox thumb_func 0x8074320 thumb_func 0x80743f0 UpdateHealthboxAttribute thumb_func 0x8074630 MoveBattleBar @@ -2904,9 +2963,11 @@ thumb_func 0x8074b18 thumb_func 0x8074b78 GetScaledExpFraction thumb_func 0x8074bc4 GetScaledHPFraction thumb_func 0x8074bf0 GetHPBarLevel +# smokescreen.s thumb_func 0x8074c24 thumb_func 0x8074d78 thumb_func 0x8074dbc +# pokeball.s thumb_func 0x8074df0 DoPokeballSendOutAnimation thumb_func 0x8074e58 Task_DoPokeballSendOutAnim thumb_func 0x8075028 SpriteCB_TestBallThrow @@ -2935,25 +2996,26 @@ thumb_func 0x8076124 thumb_func 0x80761dc thumb_func 0x8076284 thumb_func 0x80762f8 -thumb_func 0x8076314 +thumb_func 0x8076314 Unref_DestroySpriteAndFreeResources thumb_func 0x8076320 thumb_func 0x80763b0 thumb_func 0x80763d4 -thumb_func 0x80763fc +thumb_func 0x80763fc DoHitAnimHealthboxEffect thumb_func 0x8076440 SpriteCB_HitAnimHealthoxEffect thumb_func 0x8076480 LoadBallGfx thumb_func 0x80764f0 FreeBallGfx thumb_func 0x807651c GetBattlerPokeballItemId +# load_save.s thumb_func 0x8076570 CheckForFlashMemory -thumb_func 0x807659c -thumb_func 0x80765c0 +thumb_func 0x807659c ClearSav1 +thumb_func 0x80765c0 ClearSav2 thumb_func 0x80765e4 SetSaveBlocksPointers thumb_func 0x8076634 MoveSaveBlocks_ResetHeap thumb_func 0x807672c UseContinueGameWarp -thumb_func 0x807673c +thumb_func 0x807673c ClearContinueGameWarpStatus2 thumb_func 0x8076750 SetContinueGameWarpStatus thumb_func 0x8076764 SetContinueGameWarpStatusToDynamicWarp -thumb_func 0x8076780 +thumb_func 0x8076780 ClearContinueGameWarpStatus thumb_func 0x8076794 SavePlayerParty thumb_func 0x80767dc LoadPlayerParty thumb_func 0x8076824 SaveEventObjects @@ -2965,15 +3027,16 @@ thumb_func 0x80769e8 SavePlayerBag thumb_func 0x8076b08 ApplyNewEncryptionKeyToHword thumb_func 0x8076b20 ApplyNewEncryptionKeyToWord thumb_func 0x8076b38 ApplyNewEncryptionKeyToAllEncryptedData +# trade.s thumb_func 0x8076b78 thumb_func 0x8076bb4 thumb_func 0x8076bc4 -thumb_func 0x8076c08 +thumb_func 0x8076c08 _GetBlockReceivedStatus thumb_func 0x8076c18 thumb_func 0x8076c3c thumb_func 0x8076c68 thumb_func 0x8076c90 -thumb_func 0x8076c9c +thumb_func 0x8076c9c _IsLinkTaskFinished thumb_func 0x8076cac thumb_func 0x8076db4 thumb_func 0x8076dd8 @@ -2986,7 +3049,7 @@ thumb_func 0x8077c24 thumb_func 0x8077c80 thumb_func 0x8077d50 thumb_func 0x8077e00 Trade_Memcpy -thumb_func 0x8077e20 +thumb_func 0x8077e20 shedinja_maker_maybe thumb_func 0x8078120 thumb_func 0x80781c4 thumb_func 0x80782e4 @@ -3009,7 +3072,7 @@ thumb_func 0x8078ca4 thumb_func 0x8078cec thumb_func 0x8078d64 thumb_func 0x8078da0 -thumb_func 0x8078dcc +thumb_func 0x8078dcc Wait2SecondsAndCreateYesNoMenu thumb_func 0x8078e1c thumb_func 0x8078ea4 thumb_func 0x8078ee0 @@ -3080,7 +3143,7 @@ thumb_func 0x807df94 thumb_func 0x807e010 thumb_func 0x807e084 thumb_func 0x807e0e4 -thumb_func 0x807e174 +thumb_func 0x807e174 GetInGameTradeSpeciesInfo thumb_func 0x807e1c4 thumb_func 0x807e228 _CreateInGameTradePokemon thumb_func 0x807e3b4 @@ -3089,7 +3152,7 @@ thumb_func 0x807e448 CreateInGameTradePokemon thumb_func 0x807e464 thumb_func 0x807e504 thumb_func 0x807e588 -thumb_func 0x807eaa0 +thumb_func 0x807eaa0 c2_080543C4 thumb_func 0x807eb1c DoInGameTradeScene thumb_func 0x807eb48 thumb_func 0x807eb84 @@ -3099,25 +3162,26 @@ thumb_func 0x807ec48 c3_08054588 thumb_func 0x807ed1c c3_0805465C thumb_func 0x807edd4 thumb_func 0x807ee9c +# berry_blender.s thumb_func 0x807f170 Blender_ControlHitPitch thumb_func 0x807f19c VBlankCB0_BerryBlender thumb_func 0x807f210 LoadBerryBlenderGfx thumb_func 0x807f408 thumb_func 0x807f46c InitBerryBlenderWindows -thumb_func 0x807f4b8 +thumb_func 0x807f4b8 DoBerryBlending thumb_func 0x807f500 thumb_func 0x807f740 thumb_func 0x807f79c thumb_func 0x807f7c8 thumb_func 0x807f84c Blender_CopyBerryData -thumb_func 0x807f88c +thumb_func 0x807f88c Blender_SetPlayerNamesLocal thumb_func 0x807f9ac thumb_func 0x807fa20 thumb_func 0x807ff90 thumb_func 0x808002c thumb_func 0x808007c Blender_SetOpponentsBerryData thumb_func 0x8080154 -thumb_func 0x80801c4 +thumb_func 0x80801c4 Blender_PrintPlayerNames thumb_func 0x80802f0 thumb_func 0x8080814 thumb_func 0x808083c @@ -3132,7 +3196,7 @@ thumb_func 0x8080ecc thumb_func 0x8080f10 thumb_func 0x8081160 thumb_func 0x80812b4 -thumb_func 0x808137c nullsub_101 +thumb_func 0x808137c Blender_DummiedOutFunc thumb_func 0x8081380 thumb_func 0x80813d4 Blender_GetPokeblockColor thumb_func 0x80815cc @@ -3170,21 +3234,23 @@ thumb_func 0x8082d50 thumb_func 0x8082d9c thumb_func 0x8082e14 thumb_func 0x8082e34 TryUpdateBerryBlenderRecord -thumb_func 0x8082e6c +thumb_func 0x8082e6c Blender_PrintBlendingResults thumb_func 0x80832a0 Blender_PrintMadePokeblockString thumb_func 0x8083350 Blender_SortBasedOnPoints thumb_func 0x80833a8 Blender_SortScores -thumb_func 0x80834fc -thumb_func 0x80837c8 +thumb_func 0x80834fc Blender_PrintBlendingRanking +thumb_func 0x80837c8 ShowBerryBlenderRecordWindow thumb_func 0x80838c4 thumb_func 0x808391c TryAddContestLinkTvShow thumb_func 0x8083a5c Blender_AddTextPrinter thumb_func 0x8083b04 Blender_PrintText +# play_time.s thumb_func 0x8083b6c PlayTimeCounter_Reset thumb_func 0x8083b90 PlayTimeCounter_Start -thumb_func 0x8083bb8 +thumb_func 0x8083bb8 PlayTimeCounter_Stop thumb_func 0x8083bc4 PlayTimeCounter_Update thumb_func 0x8083c2c PlayTimeCounter_SetToMax +# new_game.s thumb_func 0x8083c54 SetTrainerId thumb_func 0x8083c64 GetTrainerId thumb_func 0x8083c7c CopyTrainerId @@ -3198,10 +3264,11 @@ thumb_func 0x8083df4 Sav2_ClearSetDefault thumb_func 0x8083e04 ResetMenuAndMonGlobals thumb_func 0x8083e28 NewGameInitData thumb_func 0x8083f54 ResetMiniGamesResults +# overworld.s thumb_func 0x8083fa8 DoWhiteOut -thumb_func 0x8083fe8 +thumb_func 0x8083fe8 Overworld_ResetStateAfterDigEscRope thumb_func 0x8084024 Overworld_ResetStateAfterTeleport -thumb_func 0x808406c +thumb_func 0x808406c Overworld_ResetStateAfterFly thumb_func 0x80840a8 Overworld_ResetStateAfterWhiteOut thumb_func 0x8084110 thumb_func 0x8084130 ResetGameStats @@ -3268,14 +3335,14 @@ thumb_func 0x8084f50 IsInfiltratedWeatherInstitute thumb_func 0x8084f80 IsInflitratedSpaceCenter thumb_func 0x8084fc4 GetLocationMusic thumb_func 0x808503c GetCurrLocationDefaultMusic -thumb_func 0x80850a0 CallBattleArenaFunction +thumb_func 0x80850a0 GetWarpDestinationMusic thumb_func 0x80850e0 Overworld_ResetMapMusic thumb_func 0x80850ec Overworld_PlaySpecialMapMusic thumb_func 0x808515c Overworld_SetSavedMusic thumb_func 0x8085168 Overworld_ClearSavedMusic thumb_func 0x8085178 thumb_func 0x8085200 Overworld_ChangeMusicToDefault -thumb_func 0x808522c GetTruckCameraBobbingY +thumb_func 0x808522c Overworld_ChangeMusicTo thumb_func 0x8085258 GetMapMusicFadeoutSpeed thumb_func 0x8085278 TryFadeOutOldMapMusic thumb_func 0x8085308 BGMusicStopped @@ -3295,15 +3362,15 @@ thumb_func 0x80855c0 GetCurrentRegionMapSectionId thumb_func 0x80855e8 GetCurrentMapBattleScene thumb_func 0x8085610 InitOverworldBgs thumb_func 0x808569c CleanupOverworldWindowsAndTilemaps -thumb_func 0x80856e8 +thumb_func 0x80856e8 CB2_OverworldBasic thumb_func 0x80856f4 IsUpdateLinkStateCBActive thumb_func 0x8085714 DoCB1_Overworld thumb_func 0x808576c CB1_Overworld thumb_func 0x808578c OverworldBasic -thumb_func 0x80857b8 CB2_OverworldBasic +thumb_func 0x80857b8 ResetSafariZoneFlag_ thumb_func 0x80857c4 CB2_Overworld -thumb_func 0x80857f0 -thumb_func 0x80857fc +thumb_func 0x80857f0 SetMainCallback1 +thumb_func 0x80857fc SetUnusedCallback thumb_func 0x8085808 map_post_load_hook_exec thumb_func 0x8085860 CB2_NewGame thumb_func 0x80858c0 CB2_WhiteOut @@ -3312,7 +3379,7 @@ thumb_func 0x8085964 CB2_LoadMap2 thumb_func 0x808598c thumb_func 0x80859dc thumb_func 0x8085a00 c2_80567AC -thumb_func 0x8085a30 +thumb_func 0x8085a30 CB2_ReturnToField thumb_func 0x8085a5c CB2_ReturnToFieldLocal thumb_func 0x8085a80 CB2_ReturnToFieldLink thumb_func 0x8085aa8 CB2_ReturnToFieldFromMultiplayer @@ -3331,7 +3398,7 @@ thumb_func 0x8085e80 load_map_stuff thumb_func 0x8085f9c thumb_func 0x8085ffc map_loading_iteration_2_link thumb_func 0x8086114 do_load_map_stuff_loop -thumb_func 0x808612c CallTrainerHillFunction +thumb_func 0x808612c thumb_func 0x808613c thumb_func 0x80861c4 thumb_func 0x80861dc InitOverworldGraphicsRegisters @@ -3362,15 +3429,15 @@ thumb_func 0x8086a00 ResetPlayerHeldKeys thumb_func 0x8086a14 KeyInterCB_SelfIdle thumb_func 0x8086a50 thumb_func 0x8086a5c KeyInterCB_DeferToEventScript -thumb_func 0x8086a80 +thumb_func 0x8086a80 KeyInterCB_DeferToRecvQueue thumb_func 0x8086aa4 KeyInterCB_DeferToSendQueue thumb_func 0x8086ac8 KeyInterCB_DoNothingAndKeepAlive thumb_func 0x8086ad4 thumb_func 0x8086b10 -thumb_func 0x8086b24 +thumb_func 0x8086b24 KeyInterCB_SendNothing_2 thumb_func 0x8086b28 KeyInterCB_WaitForPlayersToExit thumb_func 0x8086b60 KeyInterCB_SendExitRoomKey -thumb_func 0x8086b74 +thumb_func 0x8086b74 KeyInterCB_SendNothing thumb_func 0x8086b78 thumb_func 0x8086be0 thumb_func 0x8086bec @@ -3386,7 +3453,7 @@ thumb_func 0x8086d18 TryInteractWithPlayer thumb_func 0x8086de4 GetDirectionForEventScript thumb_func 0x8086e74 thumb_func 0x8086e80 InitLinkRoomStartMenuScript -thumb_func 0x8086e94 +thumb_func 0x8086e94 InitMenuBasedScript thumb_func 0x8086eb0 CreateConfirmLeaveTradeRoomPrompt thumb_func 0x8086ecc thumb_func 0x8086ee8 @@ -3398,7 +3465,7 @@ thumb_func 0x8086ff4 GetLinkSendQueueLength thumb_func 0x8087028 ZeroLinkPlayerEventObject thumb_func 0x8087030 ClearLinkPlayerEventObjects thumb_func 0x8087044 ZeroEventObject -thumb_func 0x8087054 +thumb_func 0x8087054 SpawnLinkPlayerEventObject thumb_func 0x8087100 InitLinkPlayerEventObjectPos thumb_func 0x8087140 thumb_func 0x8087170 @@ -3409,10 +3476,10 @@ thumb_func 0x8087224 GetLinkPlayerElevation thumb_func 0x8087248 thumb_func 0x8087270 GetLinkPlayerIdAt thumb_func 0x80872d0 SetPlayerFacingDirection -thumb_func 0x808733c -thumb_func 0x808735c -thumb_func 0x8087360 -thumb_func 0x8087380 +thumb_func 0x808733c MovementEventModeCB_Normal +thumb_func 0x808735c MovementEventModeCB_Ignored +thumb_func 0x8087360 MovementEventModeCB_Normal_2 +thumb_func 0x8087380 FacingHandler_DoNothing thumb_func 0x8087384 FacingHandler_DpadMovement thumb_func 0x80873ec FacingHandler_ForcedFacingChange thumb_func 0x8087404 MovementStatusHandler_EnterFreeMode @@ -3421,6 +3488,7 @@ thumb_func 0x8087444 FlipVerticalAndClearForced thumb_func 0x80874a4 LinkPlayerDetectCollision thumb_func 0x8087530 CreateLinkPlayerSprite thumb_func 0x80875f0 SpriteCB_LinkPlayer +# fieldmap.s thumb_func 0x80876a8 mapconnection_get_mapheader thumb_func 0x80876b8 InitMap thumb_func 0x80876d8 InitMapFromSavedGame @@ -3445,7 +3513,7 @@ thumb_func 0x8087cd4 GetBehaviorByMetatileId thumb_func 0x8087d28 save_serialize_map thumb_func 0x8087d9c SavedMapViewIsEmpty thumb_func 0x8087dd8 ClearSavedMapView -thumb_func 0x8087e00 +thumb_func 0x8087e00 LoadSavedMapView thumb_func 0x8087f28 thumb_func 0x8088000 GetMapBorderIdAt thumb_func 0x80880ec GetPostCameraMoveMapBorderId @@ -3464,10 +3532,10 @@ thumb_func 0x80884d4 SetPlayerCoords thumb_func 0x80884e4 GetCameraCoords thumb_func 0x80884f8 thumb_func 0x8088554 SkipCopyingMetatileFromSavedMap -thumb_func 0x8088598 -thumb_func 0x80885dc -thumb_func 0x8088620 nullsub_13 -thumb_func 0x8088624 nullsub_45 +thumb_func 0x8088598 copy_tileset_patterns_to_vram +thumb_func 0x80885dc copy_tileset_patterns_to_vram2 +thumb_func 0x8088620 nullsub_90 +thumb_func 0x8088624 nullsub_3 thumb_func 0x8088628 apply_map_tileset_palette thumb_func 0x80886b4 copy_map_tileset1_to_vram thumb_func 0x80886c8 copy_map_tileset2_to_vram @@ -3476,7 +3544,8 @@ thumb_func 0x80886f0 apply_map_tileset1_palette thumb_func 0x8088700 apply_map_tileset2_palette thumb_func 0x8088710 copy_map_tileset1_tileset2_to_vram thumb_func 0x8088738 apply_map_tileset1_tileset2_palette -thumb_func 0x8088750 +# metatile_behavior.s +thumb_func 0x8088750 MetatileBehavior_IsATile thumb_func 0x8088754 MetatileBehavior_IsEncounterTile thumb_func 0x8088778 MetatileBehavior_IsJumpEast thumb_func 0x808878c MetatileBehavior_IsJumpWest @@ -3486,7 +3555,7 @@ thumb_func 0x80887c8 MetatileBehavior_IsPokeGrass thumb_func 0x80887e4 MetatileBehavior_IsSandOrDeepSand thumb_func 0x80887fc MetatileBehavior_IsDeepSand thumb_func 0x8088810 MetatileBehavior_IsReflective -thumb_func 0x8088838 +thumb_func 0x8088838 MetatileBehavior_IsIce_2 thumb_func 0x808884c MetatileBehavior_IsWarpDoor thumb_func 0x8088860 MetatileBehavior_IsDoor thumb_func 0x8088878 MetatileBehavior_IsEscalator @@ -3501,7 +3570,7 @@ thumb_func 0x8088938 MetatileBehavior_IsNorthArrowWarp thumb_func 0x8088950 MetatileBehavior_IsSouthArrowWarp thumb_func 0x808896c Unref_MetatileBehavior_IsArrowWarp thumb_func 0x80889b0 MetatileBehavior_IsForcedMovementTile -thumb_func 0x80889f0 +thumb_func 0x80889f0 MetatileBehavior_IsIce thumb_func 0x8088a04 MetatileBehavior_IsTrickHouseSlipperyFloor thumb_func 0x8088a18 Unref_MetatileBehavior_IsUnused05 thumb_func 0x8088a2c MetatileBehavior_IsWalkNorth @@ -3526,14 +3595,14 @@ thumb_func 0x8088bc0 MetatileBehavior_IsSecretBaseTree thumb_func 0x8088bd8 MetatileBehavior_IsSecretBaseShrub thumb_func 0x8088bec MetatileBehavior_IsSecretBasePC thumb_func 0x8088c00 MetatileBehavior_IsRecordMixingSecretBasePC -thumb_func 0x8088c14 +thumb_func 0x8088c14 Unref_MetatileBehavior_IsSecretBaseUnused_B2_2 thumb_func 0x8088c28 MetatileBehavior_IsBlockDecoration thumb_func 0x8088c3c MetatileBehavior_IsSecretBaseImpassable thumb_func 0x8088c50 MetatileBehavior_IsMB_C6 thumb_func 0x8088c64 MetatileBehavior_IsSecretBasePoster thumb_func 0x8088c78 MetatileBehavior_IsNormal thumb_func 0x8088c8c MetatileBehavior_IsSecretBaseNorthWall -thumb_func 0x8088ca0 +thumb_func 0x8088ca0 Unref_MetatileBehavior_IsSecretBaseUnused_B2 thumb_func 0x8088cb4 MetatileBehavior_HoldsSmallDecoration thumb_func 0x8088cc8 MetatileBehavior_HoldsLargeDecoration thumb_func 0x8088cdc MetatileBehavior_IsSecretBaseHole @@ -3547,7 +3616,7 @@ thumb_func 0x8088d68 MetatileBehavior_IsPlayerRoomPCOn thumb_func 0x8088d7c MetatileBehavior_HasRipples thumb_func 0x8088d98 MetatileBehavior_IsPuddle thumb_func 0x8088dac MetatileBehavior_IsTallGrass -thumb_func 0x8088dc0 +thumb_func 0x8088dc0 MetatileBehavior_IsLongGrass_Duplicate thumb_func 0x8088dd4 MetatileBehavior_IsBerryTreeSoil thumb_func 0x8088de8 MetatileBehavior_IsAshGrass thumb_func 0x8088dfc MetatileBehavior_IsFootprints @@ -3617,9 +3686,10 @@ thumb_func 0x8089420 MetatileBehavior_IsBattlePyramidWarp thumb_func 0x8089434 MetatileBehavior_IsPlayerFacingWirelessBoxResults thumb_func 0x8089450 MetatileBehavior_IsCableBoxResults2 thumb_func 0x808946c MetatileBehavior_IsQuestionnaire -thumb_func 0x8089480 +thumb_func 0x8089480 MetatileBehavior_IsLongGrass thumb_func 0x8089494 MetatileBehavior_IsLongGrassSouthEdge thumb_func 0x80894a8 MetatileBehavior_IsTrainerHillTimer +# field_camera.s thumb_func 0x80894bc move_tilemap_camera_to_upper_left_corner_ thumb_func 0x80894cc tilemap_move_something thumb_func 0x80894e8 coords8_add @@ -3643,11 +3713,12 @@ thumb_func 0x8089a80 ResetCameraUpdateInfo thumb_func 0x8089a98 InitCameraUpdateCallback thumb_func 0x8089ad8 CameraUpdate thumb_func 0x8089be8 MoveCameraAndRedrawMap -thumb_func 0x8089c24 +thumb_func 0x8089c24 SetCameraPanningCallback thumb_func 0x8089c30 SetCameraPanning thumb_func 0x8089c48 InstallCameraPanAheadCallback thumb_func 0x8089c78 UpdateCameraPanning thumb_func 0x8089cc4 CameraPanningCB_PanAhead +# field_door.s thumb_func 0x8089d64 CopyDoorTilesToVram thumb_func 0x8089d9c door_build_blockdef thumb_func 0x8089ddc DrawCurrentDoorAnimFrame @@ -3671,8 +3742,9 @@ thumb_func 0x808a248 FieldAnimateDoorOpen thumb_func 0x808a280 FieldIsDoorAnimationRunning thumb_func 0x808a294 GetDoorSoundEffect thumb_func 0x808a2c8 +# field_player_avatar.s thumb_func 0x808a2fc MovementType_Player -thumb_func 0x808a320 +thumb_func 0x808a320 EventObjectCB2_NoMovement2 thumb_func 0x808a324 player_step thumb_func 0x808a39c TryInterruptEventObjectSpecialAnim thumb_func 0x808a400 npc_clear_strange_bits @@ -3684,7 +3756,7 @@ thumb_func 0x808a49c GetForcedMovementByMetatileBehavior thumb_func 0x808a4f8 ForcedMovement_None thumb_func 0x808a544 DoForcedMovement thumb_func 0x808a5bc DoForcedMovementInCurrentDirection -thumb_func 0x808a5f0 +thumb_func 0x808a5f0 ForcedMovement_Slip thumb_func 0x808a604 ForcedMovement_WalkSouth thumb_func 0x808a61c ForcedMovement_WalkNorth thumb_func 0x808a634 ForcedMovement_WalkWest @@ -3718,7 +3790,7 @@ thumb_func 0x808ac48 check_acro_bike_metatile thumb_func 0x808ac88 IsPlayerCollidingWithFarawayIslandMew thumb_func 0x808ad30 SetPlayerAvatarTransitionFlags thumb_func 0x808ad4c DoPlayerAvatarTransition -thumb_func 0x808ada0 nullsub_44 +thumb_func 0x808ada0 PlayerAvatarTransition_Dummy thumb_func 0x808ada4 PlayerAvatarTransition_Normal thumb_func 0x808add0 PlayerAvatarTransition_MachBike thumb_func 0x808ae04 PlayerAvatarTransition_AcroBike @@ -3728,33 +3800,33 @@ thumb_func 0x808aecc PlayerAvatarTransition_ReturnToField thumb_func 0x808aedc thumb_func 0x808af20 player_is_anim_in_certain_ranges thumb_func 0x808af7c -thumb_func 0x808afa0 -thumb_func 0x808afc4 +thumb_func 0x808afa0 PlayerCheckIfAnimFinishedOrInactive +thumb_func 0x808afc4 PlayerIsAnimActive thumb_func 0x808afe8 PlayerSetCopyableMovement thumb_func 0x808b004 PlayerGetCopyableMovement thumb_func 0x808b020 thumb_func 0x808b048 PlayerSetAnimId thumb_func 0x808b084 PlayerGoSpeed1 thumb_func 0x808b09c PlayerGoSpeed2 -thumb_func 0x808b0b4 pokemonanimfunc_49 +thumb_func 0x808b0b4 PlayerRideWaterCurrent thumb_func 0x808b0cc PlayerGoSpeed4 thumb_func 0x808b0e4 PlayerRun thumb_func 0x808b0fc PlayerOnBikeCollide thumb_func 0x808b120 PlayerOnBikeCollideWithFarawayIslandMew thumb_func 0x808b138 PlayerNotOnBikeCollide thumb_func 0x808b15c PlayerNotOnBikeCollideWithFarawayIslandMew -thumb_func 0x808b174 +thumb_func 0x808b174 PlayerFaceDirection thumb_func 0x808b18c PlayerTurnInPlace -thumb_func 0x808b1a4 +thumb_func 0x808b1a4 PlayerJumpLedge thumb_func 0x808b1c8 thumb_func 0x808b20c PlayerIdleWheelie thumb_func 0x808b224 PlayerStartWheelie -thumb_func 0x808b23c -thumb_func 0x808b254 +thumb_func 0x808b23c PlayerEndWheelie +thumb_func 0x808b254 PlayerStandingHoppingWheelie thumb_func 0x808b278 PlayerMovingHoppingWheelie thumb_func 0x808b29c PlayerLedgeHoppingWheelie thumb_func 0x808b2c0 PlayerAcroTurnJump -thumb_func 0x808b2e4 PlayerStandingHoppingWheelie +thumb_func 0x808b2e4 thumb_func 0x808b308 thumb_func 0x808b320 thumb_func 0x808b338 @@ -3771,10 +3843,10 @@ thumb_func 0x808b634 thumb_func 0x808b640 GetPlayerAvatarObjectId thumb_func 0x808b64c thumb_func 0x808b658 -thumb_func 0x808b6a0 +thumb_func 0x808b6a0 GetPlayerAvatarGraphicsIdByStateIdAndGender thumb_func 0x808b6b8 thumb_func 0x808b6d0 -thumb_func 0x808b6e0 +thumb_func 0x808b6e0 GetFRLGAvatarGraphicsIdByGender thumb_func 0x808b6f0 GetPlayerAvatarGraphicsIdByStateId thumb_func 0x808b70c unref_GetRivalAvatarGenderByGraphicsId thumb_func 0x808b738 GetPlayerAvatarGenderByGraphicsId @@ -3798,12 +3870,12 @@ thumb_func 0x808bcb0 Task_BumpBoulder thumb_func 0x808bd08 thumb_func 0x808bd28 do_boulder_dust thumb_func 0x808bde8 -thumb_func 0x808be3c -thumb_func 0x808be5c +thumb_func 0x808be3c DoPlayerMatJump +thumb_func 0x808be5c DoPlayerAvatarSecretBaseMatJump thumb_func 0x808be8c thumb_func 0x808bea8 PlayerAvatar_DoSecretBaseMatJump -thumb_func 0x808bf14 -thumb_func 0x808bf34 +thumb_func 0x808bf14 DoPlayerMatSpin +thumb_func 0x808bf34 PlayerAvatar_DoSecretBaseMatSpin thumb_func 0x808bf64 thumb_func 0x808bf80 PlayerAvatar_SecretBaseMatSpinStep0 thumb_func 0x808bfa8 PlayerAvatar_SecretBaseMatSpinStep1 @@ -3813,14 +3885,14 @@ thumb_func 0x808c0b4 thumb_func 0x808c10c taskFF_0805D1D4 thumb_func 0x808c178 thumb_func 0x808c1f0 StartFishing -thumb_func 0x808c224 -thumb_func 0x808c25c +thumb_func 0x808c224 Task_Fishing +thumb_func 0x808c25c Fishing1 thumb_func 0x808c27c Fishing2 thumb_func 0x808c314 Fishing3 thumb_func 0x808c338 Fishing4 -thumb_func 0x808c384 +thumb_func 0x808c384 Fishing5 thumb_func 0x808c424 Fishing6 -thumb_func 0x808c4d4 +thumb_func 0x808c4d4 Fishing7 thumb_func 0x808c514 Fishing8 thumb_func 0x808c56c Fishing9 thumb_func 0x808c5d4 Fishing10 @@ -3835,11 +3907,12 @@ thumb_func 0x808c9e4 thumb_func 0x808c9f0 thumb_func 0x808ca04 thumb_func 0x808cb04 -thumb_func 0x808cb24 RunOnLoadMapScript +thumb_func 0x808cb24 thumb_func 0x808cb38 thumb_func 0x808cb58 thumb_func 0x808cb6c thumb_func 0x808ccfc +# event_object_movement.s thumb_func 0x808cd60 ClearEventObject thumb_func 0x808cd80 ClearAllEventObjects thumb_func 0x808cda8 ResetEventObjects @@ -3864,7 +3937,7 @@ thumb_func 0x808d5b4 SpawnSpecialEventObjectParameterized thumb_func 0x808d61c TrySpawnEventObject thumb_func 0x808d66c MakeObjectTemplateFromEventObjectGraphicsInfo thumb_func 0x808d6a0 MakeObjectTemplateFromEventObjectGraphicsInfoWithCallbackIndex -thumb_func 0x808d6c0 MakeObjectTemplateFromEventObjectTemplate +thumb_func 0x808d6c0 thumb_func 0x808d6d8 AddPseudoEventObject thumb_func 0x808d77c sprite_new thumb_func 0x808d8f0 TrySpawnEventObjects @@ -3888,7 +3961,7 @@ thumb_func 0x808e0cc thumb_func 0x808e0fc thumb_func 0x808e154 thumb_func 0x808e19c -thumb_func 0x808e1f0 UpdateShoalTideFlag +thumb_func 0x808e1f0 FreeAndReserveObjectSpritePalettes thumb_func 0x808e204 LoadEventObjectPalette thumb_func 0x808e230 Unused_LoadEventObjectPaletteSet thumb_func 0x808e264 @@ -3937,13 +4010,13 @@ thumb_func 0x808eb98 OverrideEventObjectTemplateScript thumb_func 0x808ebac TryOverrideTemplateCoordsForEventObject thumb_func 0x808ebc4 TryOverrideEventObjectTemplateCoords thumb_func 0x808ebfc OverrideSecretBaseDecorationSpriteScript -thumb_func 0x808ec68 +thumb_func 0x808ec68 InitEventObjectPalettes thumb_func 0x808ecd0 GetObjectPaletteTag thumb_func 0x808ed50 MovementType_None -thumb_func 0x808ed74 +thumb_func 0x808ed74 MovementType_None_callback thumb_func 0x808ed78 MovementType_WanderAround -thumb_func 0x808ed9c -thumb_func 0x808edb0 +thumb_func 0x808ed9c MovementType_CopyPlayerInGrass_callback +thumb_func 0x808edb0 MovementAction_Fly_Finish thumb_func 0x808edbc MovementType_WanderAround_Step0 thumb_func 0x808edd0 MovementType_WanderAround_Step1 thumb_func 0x808edfc MovementType_WanderAround_Step2 @@ -3965,7 +4038,7 @@ thumb_func 0x808f1b4 GetLimitedVectorDirection_NorthWestEast thumb_func 0x808f1f0 GetLimitedVectorDirection_SouthWestEast thumb_func 0x808f22c TryGetTrainerEncounterDirection thumb_func 0x808f2b4 MovementType_LookAround -thumb_func 0x808f2d8 +thumb_func 0x808f2d8 MovementType_CopyPlayer_callback thumb_func 0x808f2ec thumb_func 0x808f2f8 MovementType_LookAround_Step0 thumb_func 0x808f30c MovementType_LookAround_Step1 @@ -3973,7 +4046,7 @@ thumb_func 0x808f338 MovementType_LookAround_Step2 thumb_func 0x808f37c MovementType_LookAround_Step3 thumb_func 0x808f3ac MovementType_LookAround_Step4 thumb_func 0x808f3f4 MovementType_WanderUpAndDown -thumb_func 0x808f418 +thumb_func 0x808f418 MovementType_FaceDirection_callback thumb_func 0x808f42c thumb_func 0x808f438 MovementType_WanderUpAndDown_Step0 thumb_func 0x808f44c MovementType_WanderUpAndDown_Step1 @@ -3983,8 +4056,8 @@ thumb_func 0x808f4d4 MovementType_WanderUpAndDown_Step4 thumb_func 0x808f520 MovementType_WanderUpAndDown_Step5 thumb_func 0x808f550 MovementType_WanderUpAndDown_Step6 thumb_func 0x808f578 MovementType_WanderLeftAndRight -thumb_func 0x808f59c -thumb_func 0x808f5b0 +thumb_func 0x808f59c MovementType_FaceDownAndLeft_callback +thumb_func 0x808f5b0 GetAcroUnusedActionDirectionAnimNum thumb_func 0x808f5bc MovementType_WanderLeftAndRight_Step0 thumb_func 0x808f5d0 MovementType_WanderLeftAndRight_Step1 thumb_func 0x808f5fc MovementType_WanderLeftAndRight_Step2 @@ -3993,116 +4066,116 @@ thumb_func 0x808f658 MovementType_WanderLeftAndRight_Step4 thumb_func 0x808f6a4 MovementType_WanderLeftAndRight_Step5 thumb_func 0x808f6d4 MovementType_WanderLeftAndRight_Step6 thumb_func 0x808f6fc MovementType_FaceDirection -thumb_func 0x808f720 -thumb_func 0x808f734 +thumb_func 0x808f720 MovementType_FaceDownAndRight_callback +thumb_func 0x808f734 GetAcroWheelieDirectionAnimNum thumb_func 0x808f740 MovementType_FaceDirection_Step0 thumb_func 0x808f76c MovementType_FaceDirection_Step1 -thumb_func 0x808f78c +thumb_func 0x808f78c MovementType_Invisible_Step2 thumb_func 0x808f79c MovementType_BerryTreeGrowth -thumb_func 0x808f7e0 -thumb_func 0x808f7f4 +thumb_func 0x808f7e0 MovementType_FaceDownAndUp_callback +thumb_func 0x808f7f4 GetAcroWheeliePedalDirectionAnimNum thumb_func 0x808f800 MovementType_BerryTreeGrowth_Step0 thumb_func 0x808f8b8 MovementType_BerryTreeGrowth_Step1 thumb_func 0x808f8d8 MovementType_BerryTreeGrowth_Step2 thumb_func 0x808f924 MovementType_BerryTreeGrowth_Step3 thumb_func 0x808f974 MovementType_BerryTreeGrowth_Step4 thumb_func 0x808f9c0 MovementType_FaceDownAndUp -thumb_func 0x808f9e4 -thumb_func 0x808f9f8 +thumb_func 0x808f9e4 MovementType_FaceDownRightAndLeft_callback +thumb_func 0x808f9f8 GetFaceDirectionAnimNum thumb_func 0x808fa04 MovementType_FaceDownAndUp_Step0 thumb_func 0x808fa18 MovementType_FaceDownAndUp_Step1 thumb_func 0x808fa44 MovementType_FaceDownAndUp_Step2 thumb_func 0x808fa88 MovementType_FaceDownAndUp_Step3 thumb_func 0x808fab8 MovementType_FaceDownAndUp_Step4 thumb_func 0x808fb00 MovementType_FaceLeftAndRight -thumb_func 0x808fb24 -thumb_func 0x808fb38 +thumb_func 0x808fb24 MovementType_FaceDownUpAndLeft_callback +thumb_func 0x808fb38 GetFishingBiteDirectionAnimNum thumb_func 0x808fb44 MovementType_FaceLeftAndRight_Step0 thumb_func 0x808fb58 MovementType_FaceLeftAndRight_Step1 thumb_func 0x808fb84 MovementType_FaceLeftAndRight_Step2 thumb_func 0x808fbc8 MovementType_FaceLeftAndRight_Step3 thumb_func 0x808fbf8 MovementType_FaceLeftAndRight_Step4 thumb_func 0x808fc40 MovementType_FaceUpAndLeft -thumb_func 0x808fc64 -thumb_func 0x808fc78 +thumb_func 0x808fc64 MovementType_FaceDownUpAndRight_callback +thumb_func 0x808fc78 GetFishingDirectionAnimNum thumb_func 0x808fc84 MovementType_FaceUpAndLeft_Step0 thumb_func 0x808fc98 MovementType_FaceUpAndLeft_Step1 thumb_func 0x808fcc4 MovementType_FaceUpAndLeft_Step2 thumb_func 0x808fd08 MovementType_FaceUpAndLeft_Step3 thumb_func 0x808fd38 MovementType_FaceUpAndLeft_Step4 thumb_func 0x808fd80 MovementType_FaceUpAndRight -thumb_func 0x808fda4 -thumb_func 0x808fdb8 +thumb_func 0x808fda4 MovementType_FaceLeftAndRight_callback +thumb_func 0x808fdb8 GetFishingNoCatchDirectionAnimNum thumb_func 0x808fdc4 MovementType_FaceUpAndRight_Step0 thumb_func 0x808fdd8 MovementType_FaceUpAndRight_Step1 thumb_func 0x808fe04 MovementType_FaceUpAndRight_Step2 thumb_func 0x808fe48 MovementType_FaceUpAndRight_Step3 thumb_func 0x808fe78 MovementType_FaceUpAndRight_Step4 thumb_func 0x808fec0 MovementType_FaceDownAndLeft -thumb_func 0x808fee4 -thumb_func 0x808fef8 +thumb_func 0x808fee4 MovementType_FaceUpAndLeft_callback +thumb_func 0x808fef8 GetJumpSpecialDirectionAnimNum thumb_func 0x808ff04 MovementType_FaceDownAndLeft_Step0 thumb_func 0x808ff18 MovementType_FaceDownAndLeft_Step1 thumb_func 0x808ff44 MovementType_FaceDownAndLeft_Step2 thumb_func 0x808ff88 MovementType_FaceDownAndLeft_Step3 thumb_func 0x808ffb8 MovementType_FaceDownAndLeft_Step4 thumb_func 0x8090000 MovementType_FaceDownAndRight -thumb_func 0x8090024 -thumb_func 0x8090038 +thumb_func 0x8090024 MovementType_FaceUpAndRight_callback +thumb_func 0x8090038 GetMoveDirectionAnimNum thumb_func 0x8090044 MovementType_FaceDownAndRight_Step0 thumb_func 0x8090058 MovementType_FaceDownAndRight_Step1 thumb_func 0x8090084 MovementType_FaceDownAndRight_Step2 thumb_func 0x80900c8 MovementType_FaceDownAndRight_Step3 thumb_func 0x80900f8 MovementType_FaceDownAndRight_Step4 thumb_func 0x8090140 MovementType_FaceDownUpAndLeft -thumb_func 0x8090164 -thumb_func 0x8090178 +thumb_func 0x8090164 MovementType_FaceUpRightAndLeft_callback +thumb_func 0x8090178 GetMoveDirectionFastAnimNum thumb_func 0x8090184 MovementType_FaceDownUpAndLeft_Step0 thumb_func 0x8090198 MovementType_FaceDownUpAndLeft_Step1 thumb_func 0x80901c4 MovementType_FaceDownUpAndLeft_Step2 thumb_func 0x8090208 MovementType_FaceDownUpAndLeft_Step3 thumb_func 0x8090238 MovementType_FaceDownUpAndLeft_Step4 thumb_func 0x8090280 MovementType_FaceDownUpAndRight -thumb_func 0x80902a4 -thumb_func 0x80902b8 +thumb_func 0x80902a4 MovementType_Hidden_Callback +thumb_func 0x80902b8 GetMoveDirectionFasterAnimNum thumb_func 0x80902c4 MovementType_FaceDownUpAndRight_Step0 thumb_func 0x80902d8 MovementType_FaceDownUpAndRight_Step1 thumb_func 0x8090304 MovementType_FaceDownUpAndRight_Step2 thumb_func 0x8090348 MovementType_FaceDownUpAndRight_Step3 thumb_func 0x8090378 MovementType_FaceDownUpAndRight_Step4 thumb_func 0x80903c0 MovementType_FaceUpRightAndLeft -thumb_func 0x80903e4 -thumb_func 0x80903f8 +thumb_func 0x80903e4 MovementType_Invisible_callback +thumb_func 0x80903f8 GetMoveDirectionFastestAnimNum thumb_func 0x8090404 MovementType_FaceUpLeftAndRight_Step0 thumb_func 0x8090418 MovementType_FaceUpLeftAndRight_Step1 thumb_func 0x8090444 MovementType_FaceUpLeftAndRight_Step2 thumb_func 0x8090488 MovementType_FaceUpLeftAndRight_Step3 thumb_func 0x80904b8 MovementType_FaceUpLeftAndRight_Step4 thumb_func 0x8090500 MovementType_FaceDownRightAndLeft -thumb_func 0x8090524 -thumb_func 0x8090538 +thumb_func 0x8090524 MovementType_JogInPlace_callback +thumb_func 0x8090538 GetRunningDirectionAnimNum thumb_func 0x8090544 MovementType_FaceDownLeftAndRight_Step0 thumb_func 0x8090558 MovementType_FaceDownLeftAndRight_Step1 thumb_func 0x8090584 MovementType_FaceDownLeftAndRight_Step2 thumb_func 0x80905c8 MovementType_FaceDownLeftAndRight_Step3 thumb_func 0x80905f8 MovementType_FaceDownLeftAndRight_Step4 thumb_func 0x8090640 MovementType_RotateCounterclockwise -thumb_func 0x8090664 -thumb_func 0x8090678 +thumb_func 0x8090664 MovementType_LookAround_callback +thumb_func 0x8090678 GetTrainerFacingDirectionMovementType thumb_func 0x8090684 MovementType_RotateCounterclockwise_Step0 thumb_func 0x80906b0 MovementType_RotateCounterclockwise_Step1 thumb_func 0x80906d4 MovementType_RotateCounterclockwise_Step2 thumb_func 0x8090700 MovementType_RotateCounterclockwise_Step3 thumb_func 0x8090744 MovementType_RotateClockwise -thumb_func 0x8090768 -thumb_func 0x809077c +thumb_func 0x8090768 MovementType_RotateClockwise_callback +thumb_func 0x809077c GroundEffect_Ripple thumb_func 0x8090788 MovementType_RotateClockwise_Step0 thumb_func 0x80907b4 MovementType_RotateClockwise_Step1 thumb_func 0x80907d8 MovementType_RotateClockwise_Step2 thumb_func 0x8090804 MovementType_RotateClockwise_Step3 thumb_func 0x8090848 MovementType_WalkBackAndForth -thumb_func 0x809086c -thumb_func 0x8090880 +thumb_func 0x809086c MovementType_RotateCounterclockwise_callback +thumb_func 0x8090880 Unref_GetAnimNums_08375633 thumb_func 0x809088c MovementType_WalkBackAndForth_Step0 thumb_func 0x80908a0 MovementType_WalkBackAndForth_Step1 thumb_func 0x80908d8 MovementType_WalkBackAndForth_Step2 @@ -4111,108 +4184,108 @@ thumb_func 0x80909b8 MovementType_WalkSequence_Step0 thumb_func 0x80909cc MoveNextDirectionInSequence thumb_func 0x8090a80 MovementType_WalkSequence_Step2 thumb_func 0x8090aa8 MovementType_WalkSequenceUpRightLeftDown -thumb_func 0x8090acc -thumb_func 0x8090ae0 +thumb_func 0x8090acc EventObjectCB2_BerryTree +thumb_func 0x8090ae0 ZCoordToPriority thumb_func 0x8090aec MovementType_WalkSequenceUpRightLeftDown_Step1 thumb_func 0x8090b34 MovementType_WalkSequenceRightLeftDownUp -thumb_func 0x8090b58 +thumb_func 0x8090b58 MovementType_RunInPlace_callback thumb_func 0x8090b6c thumb_func 0x8090b78 MovementType_WalkSequenceRightLeftDownUp_Step1 thumb_func 0x8090bc0 MovementType_WalkSequenceDownUpRightLeft -thumb_func 0x8090be4 +thumb_func 0x8090be4 MovementType_WalkBackAndForth_callback thumb_func 0x8090bf8 thumb_func 0x8090c04 MovementType_WalkSequenceDownUpRightLeft_Step1 thumb_func 0x8090c4c MovementType_WalkSequenceLeftDownUpRight -thumb_func 0x8090c70 +thumb_func 0x8090c70 MovementType_WalkInPlace_callback thumb_func 0x8090c84 thumb_func 0x8090c90 MovementType_WalkSequenceLeftDownUpRight_Step1 thumb_func 0x8090cd8 MovementType_WalkSequenceUpLeftRightDown -thumb_func 0x8090cfc +thumb_func 0x8090cfc MovementType_WalkSequenceDownLeftRightUp_callback thumb_func 0x8090d10 thumb_func 0x8090d1c MovementType_WalkSequenceUpLeftRightDown_Step1 thumb_func 0x8090d64 MovementType_WalkSequenceLeftRightDownUp -thumb_func 0x8090d88 +thumb_func 0x8090d88 MovementType_WalkSequenceDownLeftUpRight_callback thumb_func 0x8090d9c thumb_func 0x8090da8 MovementType_WalkSequenceLeftRightDownUp_Step1 thumb_func 0x8090df0 MovementType_WalkSequenceDownUpLeftRight -thumb_func 0x8090e14 +thumb_func 0x8090e14 MovementType_WalkSequenceDownRightLeftUp_callback thumb_func 0x8090e28 thumb_func 0x8090e34 MovementType_WalkSequenceDownUpLeftRight_Step1 thumb_func 0x8090e7c MovementType_WalkSequenceRightDownUpLeft -thumb_func 0x8090ea0 +thumb_func 0x8090ea0 MovementType_WalkSequenceDownRightUpLeft_callback thumb_func 0x8090eb4 thumb_func 0x8090ec0 MovementType_WalkSequenceRightDownUpLeft_Step1 thumb_func 0x8090f08 MovementType_WalkSequenceLeftUpDownRight -thumb_func 0x8090f2c -thumb_func 0x8090f40 +thumb_func 0x8090f2c MovementType_WalkSequenceDownUpLeftRight_callback +thumb_func 0x8090f40 MovementType_WalkSequenceDownUpRightLeft_callback thumb_func 0x8090f4c MovementType_WalkSequenceLeftUpDownRight_Step1 thumb_func 0x8090f94 MovementType_WalkSequenceUpDownRightLeft -thumb_func 0x8090fb8 -thumb_func 0x8090fcc +thumb_func 0x8090fb8 MovementType_WalkSequenceLeftDownRightUp_callback +thumb_func 0x8090fcc MovementType_WalkSequenceLeftDownUpRight_callback thumb_func 0x8090fd8 MovementType_WalkSequenceUpDownRightLeft_Step1 thumb_func 0x8091020 MovementType_WalkSequenceRightLeftUpDown -thumb_func 0x8091044 -thumb_func 0x8091058 +thumb_func 0x8091044 MovementType_WalkSequenceLeftRightDownUp_callback +thumb_func 0x8091058 MovementType_WalkSequenceLeftRightUpDown_callback thumb_func 0x8091064 MovementType_WalkSequenceRightLeftUpDown_Step1 thumb_func 0x80910ac MovementType_WalkSequenceDownRightLeftUp -thumb_func 0x80910d0 -thumb_func 0x80910e4 +thumb_func 0x80910d0 MovementType_WalkSequenceLeftUpDownRight_callback +thumb_func 0x80910e4 MovementType_WalkSequenceLeftUpRightDown_callback thumb_func 0x80910f0 MovementType_WalkSequenceDownRightLeftUp_Step1 thumb_func 0x8091138 MovementType_WalkSequenceRightUpDownLeft -thumb_func 0x809115c -thumb_func 0x8091170 +thumb_func 0x809115c MovementType_WalkSequenceRightDownLeftUp_callback +thumb_func 0x8091170 MovementType_WalkSequenceRightDownUpLeft_callback thumb_func 0x809117c MovementType_WalkSequenceRightUpDownLeft_Step1 thumb_func 0x80911c4 MovementType_WalkSequenceUpDownLeftRight -thumb_func 0x80911e8 -thumb_func 0x80911fc +thumb_func 0x80911e8 MovementType_WalkSequenceRightLeftDownUp_callback +thumb_func 0x80911fc MovementType_WalkSequenceRightLeftUpDown_callback thumb_func 0x8091208 MovementType_WalkSequenceUpDownLeftRight_Step1 thumb_func 0x8091250 MovementType_WalkSequenceLeftRightUpDown -thumb_func 0x8091274 -thumb_func 0x8091288 +thumb_func 0x8091274 MovementType_WalkSequenceRightUpDownLeft_callback +thumb_func 0x8091288 MovementType_WalkSequenceRightUpLeftDown_callback thumb_func 0x8091294 MovementType_WalkSequenceLeftRightUpDown_Step1 thumb_func 0x80912dc MovementType_WalkSequenceDownLeftRightUp -thumb_func 0x8091300 -thumb_func 0x8091314 +thumb_func 0x8091300 MovementType_WalkSequenceUpDownLeftRight_callback +thumb_func 0x8091314 MovementType_WalkSequenceUpDownRightLeft_callback thumb_func 0x8091320 MovementType_WalkSequenceDownLeftRightUp_Step1 thumb_func 0x8091368 MovementType_WalkSequenceUpLeftDownRight -thumb_func 0x809138c -thumb_func 0x80913a0 +thumb_func 0x809138c MovementType_WalkSequenceUpLeftDownRight_callback +thumb_func 0x80913a0 MovementType_WalkSequenceUpLeftRightDown_callback thumb_func 0x80913ac MovementType_WalkSequenceUpLeftDownRight_Step1 thumb_func 0x80913f4 MovementType_WalkSequenceDownRightUpLeft -thumb_func 0x8091418 -thumb_func 0x809142c +thumb_func 0x8091418 MovementType_WalkSequenceUpRightDownLeft_callback +thumb_func 0x809142c MovementType_WalkSequenceUpRightLeftDown_callback thumb_func 0x8091438 MovementType_WalkSequenceDownRightUpLeft_Step1 thumb_func 0x8091480 MovementType_WalkSequenceLeftDownRightUp -thumb_func 0x80914a4 -thumb_func 0x80914b8 +thumb_func 0x80914a4 MovementType_WalkSlowlyInPlace_callback +thumb_func 0x80914b8 MovementType_WanderAround_callback thumb_func 0x80914c4 MovementType_WalkSequenceLeftDownRightUp_Step1 thumb_func 0x809150c MovementType_WalkSequenceRightUpLeftDown -thumb_func 0x8091530 -thumb_func 0x8091544 +thumb_func 0x8091530 MovementType_WanderLeftAndRight_callback +thumb_func 0x8091544 MovementType_WanderUpAndDown_callback thumb_func 0x8091550 MovementType_WalkSequenceRightUpLeftDown_Step1 thumb_func 0x8091598 MovementType_WalkSequenceUpRightDownLeft thumb_func 0x80915bc -thumb_func 0x80915d0 +thumb_func 0x80915d0 MovementAction_Figure8_Step1 thumb_func 0x80915dc MovementType_WalkSequenceUpRightDownLeft_Step1 thumb_func 0x8091624 MovementType_WalkSequenceDownLeftUpRight thumb_func 0x8091648 -thumb_func 0x809165c +thumb_func 0x809165c MovementAction_WalkSlowDiagonalUpLeft_Step1 thumb_func 0x8091668 MovementType_WalkSequenceDownLeftUpRight_Step1 thumb_func 0x80916b0 MovementType_WalkSequenceLeftUpRightDown -thumb_func 0x80916d4 -thumb_func 0x80916e8 +thumb_func 0x80916d4 GetGroundEffectFlags_TallGrassOnBeginStep +thumb_func 0x80916e8 MovementAction_AcroPopWheelieMoveDown_Step0 thumb_func 0x80916f4 MovementType_WalkSequenceLeftUpRightDown_Step1 thumb_func 0x809173c MovementType_WalkSequenceRightDownLeftUp thumb_func 0x8091760 -thumb_func 0x8091774 +thumb_func 0x8091774 MovementAction_AcroPopWheelieMoveLeft_Step0 thumb_func 0x8091780 MovementType_WalkSequenceRightDownLeftUp_Step1 thumb_func 0x80917c8 MovementType_CopyPlayer -thumb_func 0x80917ec -thumb_func 0x8091800 +thumb_func 0x80917ec MovementAction_AcroPopWheelieMoveRight_Step0 +thumb_func 0x8091800 MovementAction_AcroPopWheelieMoveUp_Step0 thumb_func 0x809180c MovementType_CopyPlayer_Step0 -thumb_func 0x8091830 +thumb_func 0x8091830 MovementType_CopyPlayer_Step1 thumb_func 0x8091890 MovementType_CopyPlayer_Step2 -thumb_func 0x80918b8 +thumb_func 0x80918b8 CopyablePlayerMovement_None thumb_func 0x80918bc CopyablePlayerMovement_FaceDirection thumb_func 0x8091904 CopyablePlayerMovement_GoSpeed0 thumb_func 0x8091a14 CopyablePlayerMovement_GoSpeed1 @@ -4222,66 +4295,66 @@ thumb_func 0x8091c3c cph_IM_DIFFERENT thumb_func 0x8091c84 CopyablePlayerMovement_GoSpeed4 thumb_func 0x8091d3c CopyablePlayerMovement_Jump thumb_func 0x8091e04 MovementType_CopyPlayerInGrass -thumb_func 0x8091e28 -thumb_func 0x8091e3c +thumb_func 0x8091e28 StartFieldEffectForEventObject +thumb_func 0x8091e3c EventObjectClearHeldMovementIfFinished thumb_func 0x8091e48 MovementType_CopyPlayerInGrass_Step1 thumb_func 0x8091eac MovementType_TreeDisguise thumb_func 0x8091f1c MovementType_Disguise_Callback thumb_func 0x8091f28 MovementType_MountainDisguise thumb_func 0x8091f98 MovementType_Hidden thumb_func 0x8091ffc -thumb_func 0x8092010 +thumb_func 0x8092010 GetAcroEndWheelieMoveDirectionMovementAction thumb_func 0x809201c MovementType_Hidden_Step0 thumb_func 0x8092028 MovementType_MoveInPlace_Step1 thumb_func 0x8092044 MovementType_WalkInPlace -thumb_func 0x8092068 -thumb_func 0x809207c +thumb_func 0x8092068 GetAcroPopWheelieFaceDirectionMovementAction +thumb_func 0x809207c GetAcroPopWheelieMoveDirectionMovementAction thumb_func 0x8092088 MovementType_WalkInPlace_Step0 thumb_func 0x80920b4 MovementType_WalkSlowlyInPlace -thumb_func 0x80920d8 -thumb_func 0x80920ec +thumb_func 0x80920d8 GetAcroWheelieFaceDirectionMovementAction +thumb_func 0x80920ec GetAcroWheelieHopDirectionMovementAction thumb_func 0x80920f8 MovementType_WalkSlowlyInPlace_Step0 thumb_func 0x8092124 MovementType_JogInPlace -thumb_func 0x8092148 -thumb_func 0x809215c +thumb_func 0x8092148 GetAcroWheelieHopFaceDirectionMovementAction +thumb_func 0x809215c GetAcroWheelieInPlaceDirectionMovementAction thumb_func 0x8092168 MovementType_JogInPlace_Step0 thumb_func 0x8092194 MovementType_RunInPlace -thumb_func 0x80921b8 -thumb_func 0x80921cc +thumb_func 0x80921b8 GetAcroWheelieJumpDirectionMovementAction +thumb_func 0x80921cc GetAcroWheelieMoveDirectionMovementAction thumb_func 0x80921d8 MovementType_RunInPlace_Step0 thumb_func 0x8092204 MovementType_Invisible -thumb_func 0x8092228 -thumb_func 0x809223c +thumb_func 0x8092228 GetFaceDirectionMovementAction +thumb_func 0x809223c GetJump2MovementAction thumb_func 0x8092248 MovementType_Invisible_Step0 thumb_func 0x809227c MovementType_Invisible_Step1 -thumb_func 0x809229c +thumb_func 0x809229c MovementType_FaceDirection_Step2 thumb_func 0x80922ac ClearEventObjectMovement -thumb_func 0x80922cc -thumb_func 0x80922dc -thumb_func 0x80922ec -thumb_func 0x80922fc -thumb_func 0x809230c -thumb_func 0x809231c -thumb_func 0x809232c -thumb_func 0x809233c -thumb_func 0x809234c -thumb_func 0x809235c -thumb_func 0x809236c -thumb_func 0x809237c -thumb_func 0x809238c -thumb_func 0x809239c -thumb_func 0x80923ac +thumb_func 0x80922cc GetJumpInPlaceMovementAction +thumb_func 0x80922dc GetJumpInPlaceTurnAroundMovementAction +thumb_func 0x80922ec GetJumpMovementAction +thumb_func 0x80922fc GetJumpSpecialMovementAction +thumb_func 0x809230c GetPlayerRunMovementAction +thumb_func 0x809231c GetRideWaterCurrentMovementAction +thumb_func 0x809232c GetSlideMovementAction +thumb_func 0x809233c GetWalkFastMovementAction +thumb_func 0x809234c GetWalkFastestMovementAction +thumb_func 0x809235c GetWalkInPlaceFastMovementAction +thumb_func 0x809236c GetWalkInPlaceFastestMovementAction +thumb_func 0x809237c GetWalkInPlaceNormalMovementAction +thumb_func 0x809238c GetWalkInPlaceSlowMovementAction +thumb_func 0x809239c GetWalkNormalMovementAction +thumb_func 0x80923ac GetWalkSlowMovementAction thumb_func 0x80923bc thumb_func 0x80923e0 npc_apply_anim_looping thumb_func 0x8092428 obj_npc_animation_step thumb_func 0x8092468 GetDirectionToFace thumb_func 0x809249c SetTrainerMovementType -thumb_func 0x80924e8 +thumb_func 0x80924e8 GroundEffect_DeepSandTracks thumb_func 0x80924f8 GetCollisionInDirection thumb_func 0x8092538 GetCollisionAtCoords thumb_func 0x80925fc GetCollisionFlagsAtCoords thumb_func 0x80926c8 IsCoordOutsideEventObjectMovementRange -thumb_func 0x8092738 +thumb_func 0x8092738 IsMetatileDirectionallyImpassable thumb_func 0x8092790 DoesObjectCollideWithObjectAt thumb_func 0x809280c IsBerryTreeSparkling thumb_func 0x8092860 @@ -4300,7 +4373,7 @@ thumb_func 0x8092b78 EventObjectForceSetHeldMovement thumb_func 0x8092b94 EventObjectClearHeldMovementIfActive thumb_func 0x8092bac EventObjectClearHeldMovement thumb_func 0x8092be0 EventObjectCheckHeldMovementStatus -thumb_func 0x8092bf4 EventObjectClearHeldMovementIfFinished +thumb_func 0x8092bf4 MovementAction_AcroEndWheelieFaceLeft_Step0 thumb_func 0x8092c18 EventObjectGetHeldMovementActionId thumb_func 0x8092c30 UpdateEventObjectCurrentMovement thumb_func 0x8092ca0 @@ -4321,11 +4394,11 @@ thumb_func 0x8092f08 thumb_func 0x8092f34 thumb_func 0x8092f60 thumb_func 0x8092f8c EventObjectFaceOppositeDirection -thumb_func 0x8092fb8 HallOfFame_PrintWelcomeText +thumb_func 0x8092fb8 thumb_func 0x8092fe4 -thumb_func 0x8093010 +thumb_func 0x8093010 EventObjectExecSingleMovementAction thumb_func 0x809303c -thumb_func 0x8093068 MovementType_FaceUpAndRight_callback +thumb_func 0x8093068 GetAcroEndWheelieFaceDirectionMovementAction thumb_func 0x8093094 thumb_func 0x80930c0 thumb_func 0x80930ec @@ -4336,7 +4409,7 @@ thumb_func 0x80931a4 zffu_offset_calc thumb_func 0x80931bc state_to_direction thumb_func 0x80931fc EventObjectExecHeldMovementAction thumb_func 0x809321c -thumb_func 0x8093234 EventObjectExecSingleMovementAction +thumb_func 0x8093234 thumb_func 0x8093258 thumb_func 0x8093274 EventObjectSetSingleMovement thumb_func 0x809327c FaceDirection @@ -4549,7 +4622,7 @@ thumb_func 0x80952f8 MovementAction_AcroPopWheelieLeft_Step0 thumb_func 0x809531c MovementAction_AcroPopWheelieRight_Step0 thumb_func 0x8095340 MovementAction_AcroEndWheelieFaceDown_Step0 thumb_func 0x8095364 MovementAction_AcroEndWheelieFaceUp_Step0 -thumb_func 0x8095388 MovementAction_AcroEndWheelieFaceLeft_Step0 +thumb_func 0x8095388 thumb_func 0x80953ac MovementAction_AcroEndWheelieFaceRight_Step0 thumb_func 0x80953d0 MovementAction_UnusedAcroActionDown_Step0 thumb_func 0x80953f4 MovementAction_UnusedAcroActionUp_Step0 @@ -4607,13 +4680,13 @@ thumb_func 0x8095c40 MovementAction_AcroWheelieMoveLeft_Step1 thumb_func 0x8095c60 MovementAction_AcroWheelieMoveRight_Step0 thumb_func 0x8095c80 MovementAction_AcroWheelieMoveRight_Step1 thumb_func 0x8095ca0 -thumb_func 0x8095cd8 +thumb_func 0x8095cd8 MovementAction_AcroEndWheelieMoveDown_Step0 thumb_func 0x8095cf8 MovementAction_AcroEndWheelieMoveDown_Step1 -thumb_func 0x8095d18 +thumb_func 0x8095d18 MovementAction_AcroEndWheelieMoveUp_Step0 thumb_func 0x8095d38 MovementAction_AcroEndWheelieMoveUp_Step1 -thumb_func 0x8095d58 +thumb_func 0x8095d58 MovementAction_AcroEndWheelieMoveLeft_Step0 thumb_func 0x8095d78 MovementAction_AcroEndWheelieMoveLeft_Step1 -thumb_func 0x8095d98 +thumb_func 0x8095d98 MovementAction_AcroEndWheelieMoveRight_Step0 thumb_func 0x8095db8 MovementAction_AcroEndWheelieMoveRight_Step1 thumb_func 0x8095dd8 MovementAction_Levitate_Step0 thumb_func 0x8095dec MovementAction_StopLevitate_Step0 @@ -4638,7 +4711,7 @@ thumb_func 0x809619c GetGroundEffectFlags_Tracks thumb_func 0x80961dc GetGroundEffectFlags_SandHeap thumb_func 0x809622c GetGroundEffectFlags_ShallowFlowingWater thumb_func 0x8096290 GetGroundEffectFlags_Puddle -thumb_func 0x80962c0 +thumb_func 0x80962c0 GetGroundEffectFlags_Ripple thumb_func 0x80962e0 GetGroundEffectFlags_ShortGrass thumb_func 0x8096330 GetGroundEffectFlags_HotSprings thumb_func 0x8096380 GetGroundEffectFlags_Seaweed @@ -4664,7 +4737,7 @@ thumb_func 0x809693c GroundEffect_IceReflection thumb_func 0x8096948 GroundEffect_FlowingWater thumb_func 0x8096958 GroundEffect_SandTracks thumb_func 0x8096984 -thumb_func 0x80969b0 nullsub_47 +thumb_func 0x80969b0 DoTracksGroundEffect_None thumb_func 0x80969b4 DoTracksGroundEffect_Footprints thumb_func 0x8096a04 DoTracksGroundEffect_BikeTireTracks thumb_func 0x8096a54 @@ -4706,7 +4779,7 @@ thumb_func 0x8097190 thumb_func 0x80971ac thumb_func 0x80971cc thumb_func 0x8097254 -thumb_func 0x80972e8 +thumb_func 0x80972e8 SetMovementDelay thumb_func 0x80972ec WaitForMovementDelay thumb_func 0x8097304 SetAndStartSpriteAnim thumb_func 0x809732c SpriteAnimEnded @@ -4737,7 +4810,8 @@ thumb_func 0x8097a48 MovementAction_FlyUp_Step0 thumb_func 0x8097a58 MovementAction_FlyUp_Step1 thumb_func 0x8097a7c MovementAction_FlyDown_Step0 thumb_func 0x8097a90 MovementAction_FlyDown_Step1 -thumb_func 0x8097aac +thumb_func 0x8097aac MovementAction_Finish +# field_message_box.s thumb_func 0x8097ab0 InitFieldMessageBox thumb_func 0x8097adc thumb_func 0x8097b44 task_add_textbox @@ -4749,12 +4823,13 @@ thumb_func 0x8097c00 ShowFieldAutoScrollMessage thumb_func 0x8097c28 thumb_func 0x8097c40 thumb_func 0x8097c64 textbox_fdecode_auto_and_task_add -thumb_func 0x8097c8c +thumb_func 0x8097c8c textbox_auto_and_task_add thumb_func 0x8097c9c HideFieldMessageBox -thumb_func 0x8097cb8 -thumb_func 0x8097cc4 +thumb_func 0x8097cb8 GetFieldMessageBoxMode +thumb_func 0x8097cc4 IsFieldMessageBoxHidden thumb_func 0x8097ce0 thumb_func 0x8097cfc +# event_obj_lock.s thumb_func 0x8097d10 walkrun_is_standing_still thumb_func 0x8097d2c thumb_func 0x8097d4c @@ -4769,6 +4844,7 @@ thumb_func 0x8097f24 thumb_func 0x8097f44 thumb_func 0x8097fb8 thumb_func 0x80980bc +# text_window.s thumb_func 0x80980e0 GetWindowFrameTilesPal thumb_func 0x8098104 LoadMessageBoxGfx thumb_func 0x8098144 LoadUserWindowBorderGfx_ @@ -4778,8 +4854,9 @@ thumb_func 0x80981e0 DrawTextBorderOuter thumb_func 0x8098368 DrawTextBorderInner thumb_func 0x8098504 rbox_fill_rectangle thumb_func 0x80985a0 stdpal_get -thumb_func 0x80985ec +thumb_func 0x80985ec GetOverworldTextboxPalettePtr thumb_func 0x80985f4 +# script.s thumb_func 0x8098640 InitScriptContext thumb_func 0x809867c SetupBytecodeScript thumb_func 0x8098688 SetupNativeScript @@ -4787,25 +4864,25 @@ thumb_func 0x8098690 StopScript thumb_func 0x8098698 RunScriptCommand thumb_func 0x8098720 ScriptPush thumb_func 0x8098748 ScriptPop -thumb_func 0x809876c +thumb_func 0x809876c ScriptJump thumb_func 0x8098770 ScriptCall thumb_func 0x8098784 ScriptReturn thumb_func 0x8098794 ScriptReadHalfword thumb_func 0x80987ac ScriptReadWord -thumb_func 0x80987dc -thumb_func 0x80987e8 -thumb_func 0x80987f4 +thumb_func 0x80987dc ScriptContext2_Enable +thumb_func 0x80987e8 ScriptContext2_Disable +thumb_func 0x80987f4 ScriptContext2_IsEnabled thumb_func 0x8098800 ScriptContext1_IsScriptSetUp thumb_func 0x809881c ScriptContext1_Init thumb_func 0x8098844 ScriptContext2_RunScript thumb_func 0x8098880 ScriptContext1_SetupScript -thumb_func 0x80988b8 +thumb_func 0x80988b8 ScriptContext1_Stop thumb_func 0x80988c4 EnableBothScriptContexts thumb_func 0x80988d8 ScriptContext2_RunNewScript thumb_func 0x8098910 MapHeaderGetScriptTable thumb_func 0x8098950 MapHeaderRunScriptType thumb_func 0x8098968 MapHeaderCheckScriptTable -thumb_func 0x80989c8 +thumb_func 0x80989c8 RunOnLoadMapScript thumb_func 0x80989d4 RunOnTransitionMapScript thumb_func 0x80989e0 RunOnResumeMapScript thumb_func 0x80989ec RunOnReturnToFieldMapScript @@ -4813,21 +4890,22 @@ thumb_func 0x80989f8 RunOnDiveWarpMapScript thumb_func 0x8098a04 TryRunOnFrameMapScript thumb_func 0x8098a20 TryRunOnWarpIntoMapScript thumb_func 0x8098a34 CalculateRamScriptChecksum -thumb_func 0x8098a58 +thumb_func 0x8098a58 ClearRamScript thumb_func 0x8098a84 InitRamScript thumb_func 0x8098b10 GetRamScript thumb_func 0x8098b80 ValidateSavedRamScript thumb_func 0x8098bcc GetSavedRamScriptIfValid thumb_func 0x8098c28 InitRamScript_NoEventObject -thumb_func 0x8098c54 -thumb_func 0x8098c58 nullsub_48 +# scrcmd.s +thumb_func 0x8098c54 ScrCmd_nop +thumb_func 0x8098c58 ScrCmd_nop1 thumb_func 0x8098c5c ScrCmd_end thumb_func 0x8098c68 ScrCmd_gotonative thumb_func 0x8098c80 ScrCmd_special -thumb_func 0x8098c94 +thumb_func 0x8098c94 ScrCmd_showelevmenu thumb_func 0x8098ca0 ScrCmd_specialvar -thumb_func 0x8098cc8 -thumb_func 0x8098cd4 +thumb_func 0x8098cc8 ScrCmd_cmdDA +thumb_func 0x8098cd4 ScrCmd_callnative thumb_func 0x8098ce0 thumb_func 0x8098ce4 ScrCmd_waitstate thumb_func 0x8098cf0 ScrCmd_goto @@ -4896,16 +4974,16 @@ thumb_func 0x8099760 ScrCmd_initclock thumb_func 0x8099798 ScrCmd_dotimebasedevents thumb_func 0x80997a4 ScrCmd_gettime thumb_func 0x80997dc ScrCmd_setweather -thumb_func 0x80997f8 -thumb_func 0x8099804 +thumb_func 0x80997f8 ScrCmd_doweather +thumb_func 0x8099804 ScrCmd_resetweather thumb_func 0x8099810 ScrCmd_setstepcallback thumb_func 0x8099828 ScrCmd_setmaplayoutindex thumb_func 0x8099844 ScrCmd_warp thumb_func 0x80998cc ScrCmd_warpsilent -thumb_func 0x8099954 +thumb_func 0x8099954 ScrCmd_warpdoor thumb_func 0x80999dc ScrCmd_warphole thumb_func 0x8099a50 ScrCmd_warpteleport -thumb_func 0x8099ad8 +thumb_func 0x8099ad8 ScrCmd_warpD7 thumb_func 0x8099b60 ScrCmd_setwarp thumb_func 0x8099be0 ScrCmd_setdynamicwarp thumb_func 0x8099c64 ScrCmd_setdivewarp @@ -4925,12 +5003,12 @@ thumb_func 0x8099ef8 ScrCmd_fadedefaultbgm thumb_func 0x8099f04 ScrCmd_fadenewbgm thumb_func 0x8099f18 ScrCmd_fadeoutbgm thumb_func 0x8099f4c ScrCmd_fadeinbgm -thumb_func 0x8099f70 ScrCmd_setobjectpriority +thumb_func 0x8099f70 ScrCmd_applymovement thumb_func 0x8099fb4 ScrCmd_applymovement_at thumb_func 0x8099ff8 WaitForMovementFinish thumb_func 0x809a020 ScrCmd_waitmovement thumb_func 0x809a074 ScrCmd_waitmovement_at -thumb_func 0x809a0c8 +thumb_func 0x809a0c8 ScrCmd_removeobject thumb_func 0x809a0f0 ScrCmd_removeobject_at thumb_func 0x809a120 ScrCmd_addobject thumb_func 0x809a148 ScrCmd_addobject_at @@ -4939,7 +5017,7 @@ thumb_func 0x809a1e0 ScrCmd_setobjectxyperm thumb_func 0x809a238 ScrCmd_moveobjectoffscreen thumb_func 0x809a260 ScrCmd_showobject_at thumb_func 0x809a290 ScrCmd_hideobject_at -thumb_func 0x809a2c0 +thumb_func 0x809a2c0 ScrCmd_setobjectpriority thumb_func 0x809a2fc ScrCmd_resetobjectpriority thumb_func 0x809a32c ScrCmd_faceplayer thumb_func 0x809a364 ScrCmd_turnobject @@ -4960,22 +5038,22 @@ thumb_func 0x809a620 WaitForAorBPress thumb_func 0x809a648 ScrCmd_waitbuttonpress thumb_func 0x809a65c ScrCmd_yesnobox thumb_func 0x809a688 ScrCmd_multichoice -thumb_func 0x809a6c4 -thumb_func 0x809a714 +thumb_func 0x809a6c4 ScrCmd_multichoicedefault +thumb_func 0x809a714 ScrCmd_erasebox thumb_func 0x809a718 ScrCmd_multichoicegrid -thumb_func 0x809a768 -thumb_func 0x809a774 -thumb_func 0x809a780 +thumb_func 0x809a768 ScrCmd_drawboxtext +thumb_func 0x809a774 ScrCmd_mossdeepgym2 +thumb_func 0x809a780 ScrCmd_showmonpic thumb_func 0x809a7b0 ScrCmd_hidemonpic thumb_func 0x809a7d0 ScrCmd_showcontestwinner -thumb_func 0x809a7f4 -thumb_func 0x809a8e4 +thumb_func 0x809a7f4 ScrCmd_braillemessage +thumb_func 0x809a8e4 ScrCmd_mossdeepgym4 thumb_func 0x809a8f0 ScrCmd_vmessage -thumb_func 0x809a90c +thumb_func 0x809a90c ScrCmd_buffermovename thumb_func 0x809a950 ScrCmd_bufferleadmonspeciesname thumb_func 0x809a9a0 ScrCmd_bufferpartymonnick thumb_func 0x809a9e8 ScrCmd_bufferitemname -thumb_func 0x809aa1c +thumb_func 0x809aa1c ScrCmd_bufferspeciesname thumb_func 0x809aa60 ScrCmd_bufferdecorationname thumb_func 0x809aa9c ScrCmd_buffernumberstring thumb_func 0x809aae0 ScrCmd_bufferstdstring @@ -4984,37 +5062,37 @@ thumb_func 0x809ab48 ScrCmd_vloadword thumb_func 0x809ab6c ScrCmd_vbufferstring thumb_func 0x809aba0 ScrCmd_bufferboxname thumb_func 0x809abdc ScrCmd_givemon -thumb_func 0x809ac5c +thumb_func 0x809ac5c ScrCmd_giveegg thumb_func 0x809ac88 ScrCmd_setmonmove thumb_func 0x809acb4 ScrCmd_checkpartymove -thumb_func 0x809ad30 -thumb_func 0x809ad64 +thumb_func 0x809ad30 ScrCmd_givemoney +thumb_func 0x809ad64 ScrCmd_takemoney thumb_func 0x809ad98 ScrCmd_checkmoney thumb_func 0x809add8 ScrCmd_showmoneybox -thumb_func 0x809ae14 +thumb_func 0x809ae14 ScrCmd_hidemoneybox thumb_func 0x809ae20 ScrCmd_updatemoneybox thumb_func 0x809ae50 ScrCmd_showcoinsbox thumb_func 0x809ae78 ScrCmd_hidecoinsbox thumb_func 0x809ae8c ScrCmd_updatecoinsbox thumb_func 0x809aea8 ScrCmd_trainerbattle thumb_func 0x809aebc ScrCmd_dotrainerbattle -thumb_func 0x809aec8 -thumb_func 0x809aedc +thumb_func 0x809aec8 ScrCmd_gotobeatenscript +thumb_func 0x809aedc ScrCmd_gotopostbattlescript thumb_func 0x809aef0 ScrCmd_checktrainerflag thumb_func 0x809af14 ScrCmd_settrainerflag -thumb_func 0x809af30 HideSaveInfoWindow +thumb_func 0x809af30 ScrCmd_cleartrainerflag thumb_func 0x809af4c ScrCmd_setwildbattle thumb_func 0x809af80 ScrCmd_dowildbattle -thumb_func 0x809af90 -thumb_func 0x809afa4 -thumb_func 0x809afb8 +thumb_func 0x809af90 ScrCmd_pokemart +thumb_func 0x809afa4 ScrCmd_pokemartdecoration +thumb_func 0x809afb8 ScrCmd_pokemartdecoration2 thumb_func 0x809afcc ScrCmd_playslotmachine thumb_func 0x809aff4 ScrCmd_setberrytree thumb_func 0x809b030 ScrCmd_getpricereduction -thumb_func 0x809b05c -thumb_func 0x809b06c -thumb_func 0x809b07c IsPokerusInParty -thumb_func 0x809b08c +thumb_func 0x809b05c ScrCmd_showcontestresults +thumb_func 0x809b06c ScrCmd_startcontest +thumb_func 0x809b07c ScrCmd_choosecontestmon +thumb_func 0x809b08c ScrCmd_contestlinktransfer thumb_func 0x809b0a4 ScrCmd_dofieldeffect thumb_func 0x809b0cc ScrCmd_setfieldeffectarg thumb_func 0x809b0fc WaitForFieldEffectFinish @@ -5022,23 +5100,23 @@ thumb_func 0x809b11c ScrCmd_waitfieldeffect thumb_func 0x809b148 ScrCmd_setrespawn thumb_func 0x809b164 ScrCmd_checkplayergender thumb_func 0x809b17c ScrCmd_playmoncry -thumb_func 0x809b1b4 +thumb_func 0x809b1b4 ScrCmd_waitdooranim thumb_func 0x809b1c8 ScrCmd_setmetatile thumb_func 0x809b248 ScrCmd_opendoor thumb_func 0x809b2a0 ScrCmd_closedoor thumb_func 0x809b2e4 IsDoorAnimationStopped -thumb_func 0x809b2fc +thumb_func 0x809b2fc ScrCmd_waitmoncry thumb_func 0x809b310 ScrCmd_setdooropen -thumb_func 0x809b354 +thumb_func 0x809b354 ScrCmd_setdoorclosed thumb_func 0x809b398 ScrCmd_addelevmenuitem -thumb_func 0x809b3d4 +thumb_func 0x809b3d4 ScrCmd_drawbox thumb_func 0x809b3d8 ScrCmd_checkcoins thumb_func 0x809b3f8 ScrCmd_givecoins thumb_func 0x809b430 ScrCmd_takecoins -thumb_func 0x809b468 +thumb_func 0x809b468 ScrCmd_mossdeepgym1 thumb_func 0x809b48c thumb_func 0x809b498 ScrCmd_mossdeepgym3 -thumb_func 0x809b4b4 +thumb_func 0x809b4b4 ScrCmd_buffercontesttype thumb_func 0x809b4c0 ScrCmd_cmdD8 thumb_func 0x809b4d4 ScrCmd_cmdD9 thumb_func 0x809b51c ScrCmd_setmonobedient @@ -5046,11 +5124,12 @@ thumb_func 0x809b554 ScrCmd_checkmonobedience thumb_func 0x809b58c ScrCmd_gotoram thumb_func 0x809b5b4 ScrCmd_warpD1 thumb_func 0x809b648 ScrCmd_setmonmetlocation -thumb_func 0x809b68c +thumb_func 0x809b68c ScrCmd_bufferitemnameplural thumb_func 0x809b6a8 ScrCmd_buffertrainerclassname -thumb_func 0x809b6e4 +thumb_func 0x809b6e4 ScrCmd_buffertrainername thumb_func 0x809b720 thumb_func 0x809b72c ScrCmd_warpE0 +# field_control_avatar.s thumb_func 0x809b7b4 FieldClearPlayerInput thumb_func 0x809b7e0 FieldGetPlayerInput thumb_func 0x809b8ec ProcessPlayerFieldInput @@ -5064,7 +5143,7 @@ thumb_func 0x809bc5c GetInteractedEventObjectScript thumb_func 0x809bd30 GetInteractedBackgroundEventScript thumb_func 0x809be10 GetInteractedMetatileScript thumb_func 0x809c0c4 GetInteractedWaterScript -thumb_func 0x809c140 +thumb_func 0x809c140 TrySetupDiveDownScript thumb_func 0x809c174 TrySetupDiveEmergeScript thumb_func 0x809c1b4 TryStartStepBasedScript thumb_func 0x809c210 TryStartCoordEventScript @@ -5074,12 +5153,12 @@ thumb_func 0x809c408 Unref_ClearHappinessStepCounter thumb_func 0x809c41c UpdateHappinessStepCounter thumb_func 0x809c458 ClearPoisonStepCounter thumb_func 0x809c46c UpdatePoisonStepCounter -thumb_func 0x809c4b4 +thumb_func 0x809c4b4 RestartWildEncounterImmunitySteps thumb_func 0x809c4c0 CheckStandardWildEncounter thumb_func 0x809c510 TryArrowWarp thumb_func 0x809c574 TryStartWarpEventScript thumb_func 0x809c66c IsWarpMetatileBehavior -thumb_func 0x809c70c +thumb_func 0x809c70c IsArrowWarpMetatileBehavior thumb_func 0x809c764 GetWarpEventAtMapPosition thumb_func 0x809c788 SetupWarp thumb_func 0x809c850 TryDoorWarp @@ -5092,6 +5171,7 @@ thumb_func 0x809ca44 dive_warp thumb_func 0x809cac0 TrySetDiveWarp thumb_func 0x809cb58 GetEventObjectScriptPointerPlayerFacing thumb_func 0x809cb94 SetCableClubWarp +# event_data.s thumb_func 0x809cbd8 InitEventData thumb_func 0x809cc1c ClearTempFieldEventData thumb_func 0x809cc78 ClearDailyFlags @@ -5117,10 +5197,11 @@ thumb_func 0x809cfc4 GetFlagPointer thumb_func 0x809d018 FlagSet thumb_func 0x809d040 FlagClear thumb_func 0x809d068 FlagGet -thumb_func 0x809d094 +# coord_event_weather.s +thumb_func 0x809d094 CoordEventWeather_Clouds thumb_func 0x809d0a0 CoordEventWeather_Sunny -thumb_func 0x809d0ac -thumb_func 0x809d0b8 +thumb_func 0x809d0ac CoordEventWeather_Dark +thumb_func 0x809d0b8 CoordEventWeather_Sandstorm thumb_func 0x809d0c4 CoordEventWeather_Thunderstorm thumb_func 0x809d0d0 CoordEventWeather_LightRain thumb_func 0x809d0dc CoordEventWeather_Snow @@ -5131,13 +5212,14 @@ thumb_func 0x809d10c CoordEventWeather_Drought thumb_func 0x809d118 CoordEventWeather_Route119Cycle thumb_func 0x809d124 CoordEventWeather_Route123Cycle thumb_func 0x809d130 DoCoordEventWeather +# field_tasks.s thumb_func 0x809d164 Task_RunPerStepCallback thumb_func 0x809d190 RunTimeBasedEvents thumb_func 0x809d1e0 Task_RunTimeBasedEvents thumb_func 0x809d214 SetUpFieldTasks thumb_func 0x809d280 ActivatePerStepCallback thumb_func 0x809d2c8 ResetFieldTasksArgs -thumb_func 0x809d304 nullsub_49 +thumb_func 0x809d304 DummyPerStepCallback thumb_func 0x809d308 GetPacifidlogBridgeMetatileOffsets thumb_func 0x809d360 SetPacifidlogBridgeMetatiles thumb_func 0x809d3e8 UpdateHalfSubmergedBridgeMetatiles @@ -5156,19 +5238,21 @@ thumb_func 0x809daa0 SetSootopolisGymCrackedIceMetatiles thumb_func 0x809dafc SootopolisGymIcePerStepCallback thumb_func 0x809dc8c AshGrassPerStepCallback thumb_func 0x809dd68 SetCrackedFloorHoleMetatile -thumb_func 0x809dda4 +thumb_func 0x809dda4 CrackedFloorPerStepCallback thumb_func 0x809deb4 SetMuddySlopeMetatile thumb_func 0x809df10 Task_MuddySlope +# clock.s thumb_func 0x809e050 InitTimeBasedEvents thumb_func 0x809e088 DoTimeBasedEvents thumb_func 0x809e0c0 UpdatePerDay thumb_func 0x809e130 UpdatePerMinute thumb_func 0x809e18c ReturnFromStartWallClock -thumb_func 0x809e1a0 +thumb_func 0x809e1a0 StartWallClock +# reset_rtc_screen.s thumb_func 0x809e1c0 SpriteCB_ResetRtcCursor0 thumb_func 0x809e2dc SpriteCB_ResetRtcCursor1 thumb_func 0x809e3dc CreateCursor -thumb_func 0x809e464 +thumb_func 0x809e464 FreeCursorPalette thumb_func 0x809e478 HideChooseTimeWindow thumb_func 0x809e49c PrintTime thumb_func 0x809e58c ShowChooseTimeWindow @@ -5184,6 +5268,7 @@ thumb_func 0x809e984 thumb_func 0x809e998 ShowMessage thumb_func 0x809e9d0 Task_ShowResetRtcPrompt thumb_func 0x809ead8 Task_ResetRtcScreen +# start_menu.s thumb_func 0x809ecf4 SetDexPokemonPokenavFlags thumb_func 0x809ed18 BuildStartMenuActions thumb_func 0x809ed88 AddStartMenuAction @@ -5209,16 +5294,16 @@ thumb_func 0x809f374 ShowStartMenu thumb_func 0x809f39c HandleStartMenuInput thumb_func 0x809f48c StartMenuPokedexCallback thumb_func 0x809f4c8 StartMenuPokemonCallback -thumb_func 0x809f4fc -thumb_func 0x809f530 +thumb_func 0x809f4fc StartMenuBagCallback +thumb_func 0x809f530 StartMenuPokeNavCallback thumb_func 0x809f564 StartMenuPlayerNameCallback thumb_func 0x809f5d4 StartMenuSaveCallback thumb_func 0x809f5f8 StartMenuOptionCallback thumb_func 0x809f63c StartMenuExitCallback thumb_func 0x809f64c StartMenuSafariZoneRetireCallback -thumb_func 0x809f660 +thumb_func 0x809f660 StartMenuLinkModePlayerNameCallback thumb_func 0x809f698 StartMenuBattlePyramidRetireCallback -thumb_func 0x809f6ac CableCarMainCallback_Run +thumb_func 0x809f6ac thumb_func 0x809f6cc StartMenuBattlePyramidBagCallback thumb_func 0x809f700 SaveStartCallback thumb_func 0x809f71c SaveCallback @@ -5226,31 +5311,31 @@ thumb_func 0x809f774 BattlePyramidRetireStartCallback thumb_func 0x809f790 BattlePyramidRetireReturnCallback thumb_func 0x809f7ac BattlePyramidRetireCallback thumb_func 0x809f800 InitSave -thumb_func 0x809f824 +thumb_func 0x809f824 RunSaveCallback thumb_func 0x809f858 SaveGame thumb_func 0x809f870 ShowSaveMessage thumb_func 0x809f8a8 SaveGameTask thumb_func 0x809f8ec -thumb_func 0x809f8fc +thumb_func 0x809f8fc HideSaveInfoWindow thumb_func 0x809f908 SaveStartTimer thumb_func 0x809f914 SaveSuccesTimer thumb_func 0x809f948 SaveErrorTimer thumb_func 0x809f978 SaveConfirmSaveCallback -thumb_func 0x809f9c4 +thumb_func 0x809f9c4 SaveConfirmOverwriteCallback thumb_func 0x809f9e0 SaveConfirmInputCallback thumb_func 0x809fa54 SaveFileExistsCallback -thumb_func 0x809fa8c -thumb_func 0x809faa8 +thumb_func 0x809fa8c BattlePyramidRetireYesNoCallback +thumb_func 0x809faa8 SaveYesNoCallback thumb_func 0x809fac4 SaveOverwriteInputCallback thumb_func 0x809fb0c SaveSavingMessageCallback thumb_func 0x809fb24 SaveDoSaveCallback -thumb_func 0x809fb88 +thumb_func 0x809fb88 SaveSuccessCallback thumb_func 0x809fbb0 SaveReturnSuccessCallback thumb_func 0x809fbd4 SaveErrorCallback thumb_func 0x809fbfc SaveReturnErrorCallback thumb_func 0x809fc18 InitBattlePyramidRetire thumb_func 0x809fc34 BattlePyramidConfirmRetireCallback -thumb_func 0x809fc60 +thumb_func 0x809fc60 SaveConfirmOverwriteDefaultNoCallback thumb_func 0x809fc7c BattlePyramidRetireInputCallback thumb_func 0x809fcb0 thumb_func 0x809fcbc @@ -5258,12 +5343,13 @@ thumb_func 0x809fdec thumb_func 0x809fe18 thumb_func 0x809fe28 thumb_func 0x809ff8c ShowSaveInfoWindow -thumb_func 0x80a0150 +thumb_func 0x80a0150 RemoveSaveInfoWindow thumb_func 0x80a016c thumb_func 0x80a0194 thumb_func 0x80a01dc HideStartMenuWindow thumb_func 0x80a01fc HideStartMenu thumb_func 0x80a020c AppendToList +# tileset_anims.s thumb_func 0x80a021c ResetTilesetAnimBuffer thumb_func 0x80a0248 AppendTilesetAnimToBuffer thumb_func 0x80a0298 TransferTilesetAnimsBuffer @@ -5272,37 +5358,37 @@ thumb_func 0x80a02f4 InitSecondaryTilesetAnimation thumb_func 0x80a0300 UpdateTilesetAnimations thumb_func 0x80a0370 _InitPrimaryTilesetAnimation thumb_func 0x80a03ac _InitSecondaryTilesetAnimation -thumb_func 0x80a03e8 -thumb_func 0x80a0410 +thumb_func 0x80a03e8 InitTilesetAnim_General +thumb_func 0x80a0410 InitTilesetAnim_Building thumb_func 0x80a0438 TilesetAnim_General thumb_func 0x80a047c TilesetAnim_Building thumb_func 0x80a0494 QueueAnimTiles_General_Flower thumb_func 0x80a04bc QueueAnimTiles_General_Water thumb_func 0x80a04e4 QueueAnimTiles_General_SandWaterEdge thumb_func 0x80a050c QueueAnimTiles_General_Waterfall -thumb_func 0x80a0534 -thumb_func 0x80a055c -thumb_func 0x80a0588 -thumb_func 0x80a05b4 -thumb_func 0x80a05e0 -thumb_func 0x80a0610 -thumb_func 0x80a063c -thumb_func 0x80a0664 -thumb_func 0x80a068c -thumb_func 0x80a06b4 -thumb_func 0x80a06dc -thumb_func 0x80a0708 -thumb_func 0x80a0738 -thumb_func 0x80a0764 -thumb_func 0x80a0790 -thumb_func 0x80a07bc +thumb_func 0x80a0534 InitTilesetAnim_Fallarbor +thumb_func 0x80a055c InitTilesetAnim_BattleFrontierOutsideEast +thumb_func 0x80a0588 InitTilesetAnim_BattleFrontierOutsideWest +thumb_func 0x80a05b4 InitTilesetAnim_BattlePyramid +thumb_func 0x80a05e0 InitTilesetAnim_Mauville +thumb_func 0x80a0610 InitTilesetAnim_BikeShop +thumb_func 0x80a063c InitTilesetAnim_Fortree +thumb_func 0x80a0664 InitTilesetAnim_Lilycove +thumb_func 0x80a068c InitTilesetAnim_Mossdeep +thumb_func 0x80a06b4 InitTilesetAnim_Petalburg +thumb_func 0x80a06dc InitTilesetAnim_Cave +thumb_func 0x80a0708 InitTilesetAnim_Pacifidlog +thumb_func 0x80a0738 InitTilesetAnim_Dewford +thumb_func 0x80a0764 InitTilesetAnim_EverGrande +thumb_func 0x80a0790 InitTilesetAnim_Lavaridge +thumb_func 0x80a07bc InitTilesetAnim_EliteFour thumb_func 0x80a07e0 InitTilesetAnim_SootopolisGym -thumb_func 0x80a0804 -thumb_func 0x80a0830 -thumb_func 0x80a0854 -thumb_func 0x80a0880 -thumb_func 0x80a08ac -thumb_func 0x80a08d8 +thumb_func 0x80a0804 InitTilesetAnim_MauvilleGym +thumb_func 0x80a0830 InitTilesetAnim_Underwater +thumb_func 0x80a0854 InitTilesetAnim_Rustboro +thumb_func 0x80a0880 InitTilesetAnim_Slateport +thumb_func 0x80a08ac InitTilesetAnim_Sootopolis +thumb_func 0x80a08d8 InitTilesetAnim_BattleDome thumb_func 0x80a0904 TilesetAnim_Rustboro thumb_func 0x80a0980 TilesetAnim_Dewford thumb_func 0x80a0998 TilesetAnim_Slateport @@ -5345,9 +5431,10 @@ thumb_func 0x80a1010 QueueAnimTiles_MauvilleGym_ElectricGates thumb_func 0x80a1038 QueueAnimTiles_BikeShop_BlinkingLights thumb_func 0x80a1060 QueueAnimTiles_Sootopolis_StormyWater thumb_func 0x80a1088 QueueAnimTiles_BattlePyramid_Torch -thumb_func 0x80a10b4 +thumb_func 0x80a10b4 QueueAnimTiles_BattlePyramid_StatueShadow thumb_func 0x80a10e0 BlendAnimPalette_BattleDome_FloorLights thumb_func 0x80a114c BlendAnimPalette_BattleDome_FloorLightsNoBlend +# palette.s thumb_func 0x80a11bc LoadCompressedPalette thumb_func 0x80a1200 LoadPalette thumb_func 0x80a1238 FillPalette @@ -5373,7 +5460,7 @@ thumb_func 0x80a1b28 TintPlttBuffer thumb_func 0x80a1bfc UnfadePlttBuffer thumb_func 0x80a1c58 BeginFastPaletteFade thumb_func 0x80a1c7c BeginFastPaletteFadeInternal -thumb_func 0x80a1d00 +thumb_func 0x80a1d00 UpdateFastPaletteFade thumb_func 0x80a2078 BeginHardwarePaletteFade thumb_func 0x80a2114 UpdateHardwarePaletteFade thumb_func 0x80a2230 UpdateBlendRegisters @@ -5389,10 +5476,11 @@ thumb_func 0x80a25c0 thumb_func 0x80a25fc thumb_func 0x80a2604 thumb_func 0x80a261c +# sound.s thumb_func 0x80a269c InitMapMusic thumb_func 0x80a26b0 MapMusicMain thumb_func 0x80a27a8 ResetMapMusic -thumb_func 0x80a27cc +thumb_func 0x80a27cc GetCurrentMapMusic thumb_func 0x80a27d8 PlayNewMapMusic thumb_func 0x80a27f8 StopMapMusic thumb_func 0x80a2818 FadeOutMapMusic @@ -5408,10 +5496,10 @@ thumb_func 0x80a29e8 IsFanfareTaskInactive thumb_func 0x80a2a08 Task_Fanfare thumb_func 0x80a2a38 CreateFanfareTask thumb_func 0x80a2a5c FadeInNewBGM -thumb_func 0x80a2ab0 PlayBattleBGM +thumb_func 0x80a2ab0 FadeInBGM thumb_func 0x80a2ac8 IsBGMPausedOrStopped -thumb_func 0x80a2af0 -thumb_func 0x80a2b08 +thumb_func 0x80a2af0 FadeOutBGM +thumb_func 0x80a2b08 FadeOutBGMTemporarily thumb_func 0x80a2b20 IsBGMStopped thumb_func 0x80a2b3c PlayCry1 thumb_func 0x80a2b88 PlayCry2 @@ -5421,21 +5509,22 @@ thumb_func 0x80a2c70 PlayCry6 thumb_func 0x80a2ccc PlayCry5 thumb_func 0x80a2d14 PlayCryInternal thumb_func 0x80a2f40 IsCryFinished -thumb_func 0x80a2f64 -thumb_func 0x80a2f7c +thumb_func 0x80a2f64 StopCryAndClearCrySongs +thumb_func 0x80a2f7c StopCry thumb_func 0x80a2f90 IsCryPlayingOrClearCrySongs thumb_func 0x80a2fb4 IsCryPlaying thumb_func 0x80a2fd4 Task_DuckBGMForPokemonCry thumb_func 0x80a301c RestoreBGMVolumeAfterPokemonCry thumb_func 0x80a3040 PlayBGM -thumb_func 0x80a306c +thumb_func 0x80a306c PlaySE thumb_func 0x80a307c PlaySE12WithPanning -thumb_func 0x80a30d0 -thumb_func 0x80a3104 +thumb_func 0x80a30d0 PlaySE1WithPanning +thumb_func 0x80a3104 PlaySE2WithPanning thumb_func 0x80a3138 SE12PanpotControl thumb_func 0x80a3168 IsSEPlaying -thumb_func 0x80a31ac -thumb_func 0x80a31d4 +thumb_func 0x80a31ac IsBGMPlaying +thumb_func 0x80a31d4 IsSpecialSEPlaying +# battle_anim.s thumb_func 0x80a31fc ClearBattleAnimationVars thumb_func 0x80a32d8 DoMoveAnim thumb_func 0x80a3310 LaunchBattleAnimation @@ -5445,17 +5534,17 @@ thumb_func 0x80a3500 DestroyAnimSoundTask thumb_func 0x80a351c AddSpriteIndex thumb_func 0x80a354c ClearSpriteIndex thumb_func 0x80a3580 WaitAnimFrameCount -thumb_func 0x80a35ac RunAnimScriptCommand -thumb_func 0x80a35c0 +thumb_func 0x80a35ac ScriptCmd_hang1 +thumb_func 0x80a35c0 RunAnimScriptCommand thumb_func 0x80a35ec ScriptCmd_loadspritegfx thumb_func 0x80a3654 ScriptCmd_unloadspritegfx thumb_func 0x80a36a0 ScriptCmd_createsprite thumb_func 0x80a3794 ScriptCmd_createvisualtask thumb_func 0x80a3810 ScriptCmd_delay -thumb_func 0x80a3850 -thumb_func 0x80a3884 nullsub_501 -thumb_func 0x80a3888 nullsub_51 -thumb_func 0x80a388c +thumb_func 0x80a3850 ScriptCmd_waitbgfadein +thumb_func 0x80a3884 ScriptCmd_hang2 +thumb_func 0x80a3888 ScriptCmd_stopsound +thumb_func 0x80a388c ScriptCmd_end thumb_func 0x80a3994 ScriptCmd_playse thumb_func 0x80a39bc thumb_func 0x80a3aa0 ScriptCmd_monbg @@ -5487,7 +5576,7 @@ thumb_func 0x80a4890 LoadMoveBg thumb_func 0x80a4958 LoadDefaultBg thumb_func 0x80a4974 ScriptCmd_restorebg thumb_func 0x80a49b8 ScriptCmd_waitbgfadeout -thumb_func 0x80a49ec +thumb_func 0x80a49ec ScriptCmd_waitforvisualfinish thumb_func 0x80a4a20 ScriptCmd_changebg thumb_func 0x80a4a40 BattleAnimAdjustPanning thumb_func 0x80a4b40 BattleAnimAdjustPanning2 @@ -5515,6 +5604,7 @@ thumb_func 0x80a5384 ScriptCmd_visible thumb_func 0x80a53c4 ScriptCmd_doublebattle_2D thumb_func 0x80a5474 ScriptCmd_doublebattle_2E thumb_func 0x80a550c +# battle_anim_mons.s thumb_func 0x80a5534 GetBattlerSpriteCoord thumb_func 0x80a5680 GetBattlerYDelta thumb_func 0x80a5868 GetBattlerElevation @@ -5545,7 +5635,7 @@ thumb_func 0x80a6028 thumb_func 0x80a606c thumb_func 0x80a6084 RunStoredCallbackWhenAffineAnimEnds thumb_func 0x80a60a0 RunStoredCallbackWhenAnimEnds -thumb_func 0x80a60bc +thumb_func 0x80a60bc DestroyAnimSpriteAndDisableBlend thumb_func 0x80a60dc DestroyAnimVisualTaskAndDisableBlend thumb_func 0x80a6100 SetSpriteCoordsToAnimAttackerCoords thumb_func 0x80a612c SetAnimSpriteInitialXOffset @@ -5556,7 +5646,7 @@ thumb_func 0x80a6230 SetSpritePrimaryCoordsFromSecondaryCoords thumb_func 0x80a6248 InitSpritePosToAnimTarget thumb_func 0x80a6294 InitSpritePosToAnimAttacker thumb_func 0x80a62f8 GetBattlerSide -thumb_func 0x80a630c +thumb_func 0x80a630c GetBattlerPosition thumb_func 0x80a631c GetBattlerAtPosition thumb_func 0x80a6358 IsBattlerSpritePresent thumb_func 0x80a63e8 IsDoubleBattle @@ -5573,7 +5663,7 @@ thumb_func 0x80a6674 thumb_func 0x80a66b4 thumb_func 0x80a66dc InitSpriteDataForLinearTranslation thumb_func 0x80a671c InitAnimLinearTranslation -thumb_func 0x80a67b4 +thumb_func 0x80a67b4 InitAndRunAnimFastLinearTranslation thumb_func 0x80a67dc thumb_func 0x80a6804 AnimTranslateLinear thumb_func 0x80a6860 @@ -5581,7 +5671,7 @@ thumb_func 0x80a687c thumb_func 0x80a689c thumb_func 0x80a68c8 thumb_func 0x80a68f0 InitAnimFastLinearTranslation -thumb_func 0x80a6988 +thumb_func 0x80a6988 StartAnimLinearTranslation thumb_func 0x80a69b0 AnimFastTranslateLinear thumb_func 0x80a6a0c thumb_func 0x80a6a28 InitAnimFastLinearTranslationWithSpeed @@ -5643,13 +5733,14 @@ thumb_func 0x80a86c4 thumb_func 0x80a86f8 thumb_func 0x80a8750 thumb_func 0x80a87ac +# task.s thumb_func 0x80a8818 ResetTasks thumb_func 0x80a8878 CreateTask thumb_func 0x80a88cc InsertTask thumb_func 0x80a8964 DestroyTask thumb_func 0x80a89d4 RunTasks thumb_func 0x80a8a04 FindFirstActiveTask -thumb_func 0x80a8a40 nullsub_50 +thumb_func 0x80a8a40 TaskDummy thumb_func 0x80a8a44 SetTaskFuncWithFollowupFunc thumb_func 0x80a8a78 SwitchTaskToFollowupFunc thumb_func 0x80a8aac FuncIsActiveTask @@ -5657,13 +5748,15 @@ thumb_func 0x80a8ae4 FindTaskIdByFunc thumb_func 0x80a8b14 GetTaskCount thumb_func 0x80a8b44 SetWordTaskArg thumb_func 0x80a8b7c GetWordTaskArg -thumb_func 0x80a8bbc nullsub_10 +# reshow_battle_screen.s +thumb_func 0x80a8bbc nullsub_35 thumb_func 0x80a8bc0 ReshowBattleScreenAfterMenu thumb_func 0x80a8c04 CB2_ReshowBattleScreenAfterMenu thumb_func 0x80a8ebc thumb_func 0x80a8edc LoadBattlerSpriteGfx thumb_func 0x80a8fd0 CreateBattlerSprite thumb_func 0x80a93a4 CreateHealthboxSprite +# battle_anim_status_effects.s thumb_func 0x80a9538 thumb_func 0x80a967c thumb_func 0x80a970c @@ -5675,8 +5768,9 @@ thumb_func 0x80a9998 thumb_func 0x80a99ec thumb_func 0x80a9a54 AnimTask_StatsChange thumb_func 0x80a9c2c LaunchStatusAnimation -thumb_func 0x80a9c7c +thumb_func 0x80a9c7c Task_DoStatusAnimation thumb_func 0x80a9c8c +# title_screen.s thumb_func 0x80a9cd4 SpriteCB_VersionBannerLeft thumb_func 0x80a9d3c SpriteCB_VersionBannerRight thumb_func 0x80a9d7c SpriteCB_PressStartCopyrightBanner @@ -5685,35 +5779,36 @@ thumb_func 0x80a9e10 CreateCopyrightBanner thumb_func 0x80a9e6c SpriteCB_PokemonLogoShine thumb_func 0x80a9f1c SpriteCB_PokemonLogoShine2 thumb_func 0x80a9f44 StartPokemonLogoShine -thumb_func 0x80aa048 StopCryAndClearCrySongs -thumb_func 0x80aa06c -thumb_func 0x80aa400 -thumb_func 0x80aa418 +thumb_func 0x80aa048 CB2_GoToClearSaveDataScreen +thumb_func 0x80aa06c CB2_InitTitleScreen +thumb_func 0x80aa400 CB2_GoToCopyrightScreen +thumb_func 0x80aa418 Task_TitleScreenPhase1 thumb_func 0x80aa528 Task_TitleScreenPhase2 thumb_func 0x80aa650 Task_TitleScreenPhase3 -thumb_func 0x80aa7b4 -thumb_func 0x80aa7d0 +thumb_func 0x80aa7b4 CB2_GoToMainMenu +thumb_func 0x80aa7d0 CB2_GoToResetRtcScreen thumb_func 0x80aa7ec thumb_func 0x80aa808 thumb_func 0x80aa824 CB2_GoToBerryFixScreen -thumb_func 0x80aa844 UsePokeblockOnField +thumb_func 0x80aa844 UpdateLegendaryMarkingColor +# field_weather.s thumb_func 0x80aa8a0 StartWeather thumb_func 0x80aa994 SetNextWeather thumb_func 0x80aaa00 SetCurrentAndNextWeather thumb_func 0x80aaa2c SetCurrentAndNextWeatherNoDelay thumb_func 0x80aaa5c Task_WeatherInit thumb_func 0x80aaaac Task_WeatherMain -thumb_func 0x80aab4c +thumb_func 0x80aab4c None_Main thumb_func 0x80aab68 None_Init -thumb_func 0x80aab88 nullsub_53 -thumb_func 0x80aab8c +thumb_func 0x80aab88 SetWeatherScreenFadeOut +thumb_func 0x80aab8c None_Finish thumb_func 0x80aab90 BuildGammaShiftTables thumb_func 0x80aaca4 UpdateWeatherGammaShift thumb_func 0x80aad30 FadeInScreenWithWeather thumb_func 0x80aae48 FadeInScreen_RainShowShade thumb_func 0x80aaea8 FadeInScreen_Drought thumb_func 0x80aaf00 FadeInScreen_Fog1 -thumb_func 0x80aaf3c nullsub_19 +thumb_func 0x80aaf3c DoNothing thumb_func 0x80aaf40 ApplyGammaShift thumb_func 0x80ab144 ApplyGammaShiftWithBlend thumb_func 0x80ab28c ApplyDroughtGammaShiftWithBlend @@ -5739,39 +5834,40 @@ thumb_func 0x80aba60 Weather_SetTargetBlendCoeffs thumb_func 0x80abaa4 Weather_UpdateBlend thumb_func 0x80abb70 thumb_func 0x80abc08 GetCurrentWeather -thumb_func 0x80abc18 +thumb_func 0x80abc18 SetRainStrengthFromSoundEffect thumb_func 0x80abc74 PlayRainStoppingSoundEffect -thumb_func 0x80abcb8 +thumb_func 0x80abcb8 IsWeatherChangeComplete thumb_func 0x80abccc thumb_func 0x80abce0 thumb_func 0x80abcf4 PreservePaletteInWeather -thumb_func 0x80abd24 +thumb_func 0x80abd24 ResetPreservedPalettesInWeather +# field_weather_effect.s thumb_func 0x80abd34 Clouds_InitVars thumb_func 0x80abd80 Clouds_InitAll thumb_func 0x80abdb0 Clouds_Main thumb_func 0x80abe10 Clouds_Finish thumb_func 0x80abe58 Sunny_InitVars thumb_func 0x80abe7c Sunny_InitAll -thumb_func 0x80abe88 nullsub_541 -thumb_func 0x80abe8c +thumb_func 0x80abe88 Sunny_Main +thumb_func 0x80abe8c Shade_Finish thumb_func 0x80abe90 CreateCloudSprites thumb_func 0x80abf5c DestroyCloudSprites thumb_func 0x80abfb0 UpdateCloudSprite thumb_func 0x80abfcc Drought_InitVars thumb_func 0x80ac000 Drought_InitAll thumb_func 0x80ac030 Drought_Main -thumb_func 0x80ac114 +thumb_func 0x80ac114 Sunny_Finish thumb_func 0x80ac118 StartDroughtWeatherBlend thumb_func 0x80ac12c UpdateDroughtBlend thumb_func 0x80ac224 LightRain_InitVars -thumb_func 0x80ac290 +thumb_func 0x80ac290 LightRain_InitAll thumb_func 0x80ac2c0 LightRain_Main thumb_func 0x80ac320 LightRain_Finish thumb_func 0x80ac3ac StartRainSpriteFall thumb_func 0x80ac480 UpdateRainSprite thumb_func 0x80ac584 WaitRainSprite thumb_func 0x80ac5b0 InitRainSpriteMovement -thumb_func 0x80ac664 +thumb_func 0x80ac664 LoadRainSpriteSheet thumb_func 0x80ac674 CreateRainSprite thumb_func 0x80ac7a8 UpdateVisibleRainSprites thumb_func 0x80ac834 DestroyRainSprites @@ -5788,8 +5884,8 @@ thumb_func 0x80acc08 UpdateSnowflakeSprite thumb_func 0x80acd40 MedRain_InitVars thumb_func 0x80acdb4 MedRain_InitAll thumb_func 0x80acde4 HeavyRain_InitVars -thumb_func 0x80ace50 -thumb_func 0x80ace80 +thumb_func 0x80ace50 HeavyRain_InitAll +thumb_func 0x80ace80 Rain_Main thumb_func 0x80ad20c Rain_Finish thumb_func 0x80ad2b8 SetThunderCounter thumb_func 0x80ad2f4 UpdateThunderSound @@ -5799,7 +5895,7 @@ thumb_func 0x80ad3ec Fog1_Main thumb_func 0x80ad4ac Fog1_Finish thumb_func 0x80ad548 Fog1SpriteCallback thumb_func 0x80ad5a8 CreateFog1Sprites -thumb_func 0x80ad664 +thumb_func 0x80ad664 DestroyFog1Sprites thumb_func 0x80ad6b8 Ash_InitVars thumb_func 0x80ad714 Ash_InitAll thumb_func 0x80ad744 Ash_Main @@ -5830,8 +5926,8 @@ thumb_func 0x80ae254 WaitSandSwirlSpriteEntrance thumb_func 0x80ae278 UpdateSandstormSwirlSprite thumb_func 0x80ae2ec Shade_InitVars thumb_func 0x80ae31c Shade_InitAll -thumb_func 0x80ae328 nullsub_55 -thumb_func 0x80ae32c +thumb_func 0x80ae328 Shade_Main +thumb_func 0x80ae32c Drought_Finish thumb_func 0x80ae330 Bubbles_InitVars thumb_func 0x80ae384 Bubbles_InitAll thumb_func 0x80ae3b4 Bubbles_Main @@ -5852,8 +5948,9 @@ thumb_func 0x80ae780 ResumePausedWeather thumb_func 0x80ae7e4 TranslateWeatherNum thumb_func 0x80ae8b8 UpdateWeatherPerDay thumb_func 0x80ae8d8 UpdateRainCounter +# field_screen_effect.s thumb_func 0x80ae8f8 palette_bg_faded_fill_white -thumb_func 0x80ae91c +thumb_func 0x80ae91c palette_bg_faded_fill_black thumb_func 0x80ae93c pal_fill_for_maplights thumb_func 0x80ae988 thumb_func 0x80ae99c pal_fill_black @@ -5884,11 +5981,11 @@ thumb_func 0x80aefa0 thumb_func 0x80aefac task_mpl_807E3C8 thumb_func 0x80aefd0 thumb_func 0x80aefec -thumb_func 0x80af00c +thumb_func 0x80af00c PaletteFadeActive thumb_func 0x80af018 WaitForWeatherFadeIn thumb_func 0x80af030 DoWarp thumb_func 0x80af068 DoDiveWarp -thumb_func 0x80af098 ScrCmd_pokemartdecoration2 +thumb_func 0x80af098 thumb_func 0x80af0cc DoDoorWarp thumb_func 0x80af0f0 DoFallWarp thumb_func 0x80af108 @@ -5906,9 +6003,9 @@ thumb_func 0x80af384 thumb_func 0x80af4f0 task0A_fade_n_map_maybe thumb_func 0x80af55c thumb_func 0x80af594 SetFlashScanlineEffectWindowBoundary -thumb_func 0x80af5c0 +thumb_func 0x80af5c0 SetFlashScanlineEffectWindowBoundaries thumb_func 0x80af64c SetFlash2ScanlineEffectWindowBoundary -thumb_func 0x80af678 +thumb_func 0x80af678 SetFlash2ScanlineEffectWindowBoundaries thumb_func 0x80af704 UpdateFlashLevelEffect thumb_func 0x80af7c8 UpdateFlash2LevelEffect thumb_func 0x80af88c @@ -5929,6 +6026,7 @@ thumb_func 0x80afe30 thumb_func 0x80afe88 thumb_func 0x80afeb0 thumb_func 0x80afec8 task50_0807F0C8 +# battle_setup.s thumb_func 0x80afeec Task_BattleStart thumb_func 0x80aff58 CreateBattleStartTask thumb_func 0x80aff94 BattleSetup_StartWildBattle @@ -5936,7 +6034,7 @@ thumb_func 0x80affac BattleSetup_StartBattlePikeWildBattle thumb_func 0x80affb8 DoStandardWildBattle thumb_func 0x80b0028 BattleSetup_StartRoamerBattle thumb_func 0x80b0078 DoSafariBattle -thumb_func 0x80b00b0 +thumb_func 0x80b00b0 DoBattlePikeWildBattle thumb_func 0x80b0100 DoTrainerBattle thumb_func 0x80b0124 thumb_func 0x80b0168 StartWallyTutorialBattle @@ -5947,12 +6045,12 @@ thumb_func 0x80b0314 StartGroudonKyogreBattle thumb_func 0x80b0370 StartRegiBattle thumb_func 0x80b03f4 CB2_EndWildBattle thumb_func 0x80b0468 CB2_EndScriptedWildBattle -thumb_func 0x80b04cc +thumb_func 0x80b04cc BattleSetup_GetTerrainId thumb_func 0x80b0620 GetBattleTransitionTypeByMap thumb_func 0x80b0684 GetSumOfPlayerPartyLevel -thumb_func 0x80b06e4 +thumb_func 0x80b06e4 GetSumOfEnemyPartyLevel thumb_func 0x80b07b8 GetWildBattleTransition -thumb_func 0x80b0824 +thumb_func 0x80b0824 GetTrainerBattleTransition thumb_func 0x80b08f8 thumb_func 0x80b0a24 ChooseStarter thumb_func 0x80b0a44 CB2_GiveStarter @@ -5962,9 +6060,9 @@ thumb_func 0x80b0b04 thumb_func 0x80b0b20 thumb_func 0x80b0b3c TrainerBattleLoadArg32 thumb_func 0x80b0b54 TrainerBattleLoadArg16 -thumb_func 0x80b0b60 -thumb_func 0x80b0b64 -thumb_func 0x80b0b7c +thumb_func 0x80b0b60 TrainerBattleLoadArg8 +thumb_func 0x80b0b64 GetTrainerBFlag +thumb_func 0x80b0b7c GetTrainerAFlag thumb_func 0x80b0b94 IsPlayerDefeated thumb_func 0x80b0bd4 ResetTrainerOpponentIds thumb_func 0x80b0be8 InitTrainerBattleVariables @@ -5976,12 +6074,12 @@ thumb_func 0x80b0f5c ConfigureTwoTrainersBattle thumb_func 0x80b0f90 SetUpTwoTrainersBattle thumb_func 0x80b0fa4 GetTrainerFlagFromScriptPointer thumb_func 0x80b0fc4 SetUpTrainerMovement -thumb_func 0x80b0ff8 +thumb_func 0x80b0ff8 GetTrainerBattleMode thumb_func 0x80b1004 GetTrainerFlag thumb_func 0x80b104c SetBattledTrainersFlags thumb_func 0x80b1078 SetBattledTrainerFlag thumb_func 0x80b108c HasTrainerBeenFought -thumb_func 0x80b10a4 +thumb_func 0x80b10a4 ClearTrainerFlag thumb_func 0x80b10b8 SetTrainerFlag thumb_func 0x80b10cc BattleSetup_StartTrainerBattle thumb_func 0x80b1204 CB2_EndTrainerBattle @@ -6027,6 +6125,7 @@ thumb_func 0x80b1b8c IsTrainerReadyForRematch thumb_func 0x80b1ba8 HandleRematchVarsOnBattleEnd thumb_func 0x80b1bc4 ShouldTryGetTrainerScript thumb_func 0x80b1c04 CountBattledRematchTeams +# cable_club.s thumb_func 0x80b1c58 thumb_func 0x80b1c9c thumb_func 0x80b1cf8 @@ -6046,7 +6145,7 @@ thumb_func 0x80b2184 thumb_func 0x80b21f4 thumb_func 0x80b22e4 thumb_func 0x80b23d0 -thumb_func 0x80b2470 +thumb_func 0x80b2470 task_map_chg_seq_0807EC34 thumb_func 0x80b250c thumb_func 0x80b258c thumb_func 0x80b25c8 @@ -6066,8 +6165,8 @@ thumb_func 0x80b29cc thumb_func 0x80b2a00 thumb_func 0x80b2a0c thumb_func 0x80b2a60 -thumb_func 0x80b2b68 Task_BagMenu -thumb_func 0x80b2cfc Cb_PrintCantStoreMail +thumb_func 0x80b2b68 +thumb_func 0x80b2cfc thumb_func 0x80b2d68 thumb_func 0x80b2e48 CleanupLinkRoomState thumb_func 0x80b2e78 ExitLinkRoom @@ -6077,16 +6176,17 @@ thumb_func 0x80b2f58 thumb_func 0x80b2ff0 thumb_func 0x80b3080 PlayerEnteredTradeSeat thumb_func 0x80b30ac -thumb_func 0x80b30c0 nullsub_54 +thumb_func 0x80b30c0 nullsub_37 thumb_func 0x80b30c4 ColosseumPlayerSpotTriggered thumb_func 0x80b3100 thumb_func 0x80b3118 sp02A_crash_sound thumb_func 0x80b3130 GetLinkTrainerCardColor -thumb_func 0x80b3188 +thumb_func 0x80b3188 task00_08081A90 thumb_func 0x80b3204 thumb_func 0x80b3228 thumb_func 0x80b3250 thumb_func 0x80b331c +# trainer_see.s thumb_func 0x80b3340 CheckForTrainersWantingBattle thumb_func 0x80b3458 CheckTrainer thumb_func 0x80b3548 GetTrainerApproachDistance @@ -6104,9 +6204,9 @@ thumb_func 0x80b3918 WaitTrainerExclamationMark thumb_func 0x80b3958 TrainerMoveToPlayer thumb_func 0x80b39b4 PlayerFaceApproachingTrainer thumb_func 0x80b3a70 WaitPlayerFaceApproachingTrainer -thumb_func 0x80b3ab4 +thumb_func 0x80b3ab4 RevealDisguisedTrainer thumb_func 0x80b3ae8 WaitRevealDisguisedTrainer -thumb_func 0x80b3b04 +thumb_func 0x80b3b04 RevealHiddenTrainer thumb_func 0x80b3b38 PopOutOfAshHiddenTrainer thumb_func 0x80b3b90 JumpInPlaceHiddenTrainer thumb_func 0x80b3c04 WaitRevealHiddenTrainer @@ -6123,11 +6223,12 @@ thumb_func 0x80b3e7c SpriteCB_TrainerIcons thumb_func 0x80b3f14 GetCurrentApproachingTrainerEventObjectId thumb_func 0x80b3f38 GetChosenApproachingTrainerEventObjectId thumb_func 0x80b3f60 -thumb_func 0x80b4010 +# wild_encounter.s +thumb_func 0x80b4010 DisableWildEncounters thumb_func 0x80b401c GetRoute119WaterTileNum thumb_func 0x80b40dc CheckFeebas -thumb_func 0x80b41f0 -thumb_func 0x80b4210 +thumb_func 0x80b41f0 FeebasRandom +thumb_func 0x80b4210 FeebasSeedRng thumb_func 0x80b4220 ChooseWildMonIndex_Land thumb_func 0x80b42dc ChooseWildMonIndex_WaterRock thumb_func 0x80b4330 ChooseWildMonIndex_Fishing @@ -6157,22 +6258,23 @@ thumb_func 0x80b50e8 TryGetRandomWildMonIndexByType thumb_func 0x80b51a8 TryGetAbilityInfluencedWildMonIndex thumb_func 0x80b5208 ApplyFluteEncounterRateMod thumb_func 0x80b5248 ApplyCleanseTagEncounterRateMod +# field_effect.s thumb_func 0x80b5270 FieldEffectStart thumb_func 0x80b52a0 thumb_func 0x80b52b8 FieldEffectCmd_loadtiles thumb_func 0x80b52cc FieldEffectCmd_loadfadedpal thumb_func 0x80b52e0 FieldEffectCmd_loadpal thumb_func 0x80b52f4 FieldEffectCmd_callnative -thumb_func 0x80b5308 +thumb_func 0x80b5308 FieldEffectCmd_end thumb_func 0x80b530c FieldEffectCmd_loadgfx_callnative thumb_func 0x80b5334 FieldEffectCmd_loadtiles_callnative thumb_func 0x80b5358 FieldEffectCmd_loadfadedpal_callnative thumb_func 0x80b537c FieldEffectScript_ReadWord thumb_func 0x80b5394 FieldEffectScript_LoadTiles -thumb_func 0x80b53c4 +thumb_func 0x80b53c4 FieldEffectScript_LoadFadedPalette thumb_func 0x80b53ec FieldEffectScript_LoadPalette thumb_func 0x80b5404 FieldEffectScript_CallNative -thumb_func 0x80b5414 +thumb_func 0x80b5414 CreateTeleportFieldEffectTask thumb_func 0x80b5420 FieldEffectFreeGraphicsResources thumb_func 0x80b5444 FieldEffectStop thumb_func 0x80b545c FieldEffectFreeTilesIfUnused @@ -6190,21 +6292,21 @@ thumb_func 0x80b57c8 FreeResourcesAndDestroySprite thumb_func 0x80b57f4 MultiplyInvertedPaletteRGBComponents thumb_func 0x80b5880 MultiplyPaletteRGBComponents thumb_func 0x80b58f8 FldEff_PokecenterHeal -thumb_func 0x80b593c -thumb_func 0x80b5960 nullsub_57 +thumb_func 0x80b593c Task_HallOfFameRecord +thumb_func 0x80b5960 thumb_func 0x80b596c PokecenterHealEffect_0 thumb_func 0x80b59a8 PokecenterHealEffect_1 -thumb_func 0x80b59e4 -thumb_func 0x80b5a0c +thumb_func 0x80b59e4 PokecenterHealEffect_2 +thumb_func 0x80b5a0c PokecenterHealEffect_3 thumb_func 0x80b5a4c FldEff_HallOfFameRecord -thumb_func 0x80b5a88 -thumb_func 0x80b5aac nullsub_58 +thumb_func 0x80b5a88 Task_PokecenterHeal +thumb_func 0x80b5aac thumb_func 0x80b5ab8 HallOfFameRecordEffect_0 thumb_func 0x80b5b2c HallOfFameRecordEffect_1 -thumb_func 0x80b5b5c +thumb_func 0x80b5b5c HallOfFameRecordEffect_2 thumb_func 0x80b5b84 HallOfFameRecordEffect_3 thumb_func 0x80b5bc4 CreatePokeballGlowSprite -thumb_func 0x80b5c18 +thumb_func 0x80b5c18 SpriteCB_PokeballGlowEffect thumb_func 0x80b5c34 PokeballGlowEffect_0 thumb_func 0x80b5ccc PokeballGlowEffect_1 thumb_func 0x80b5d00 PokeballGlowEffect_2 @@ -6212,7 +6314,7 @@ thumb_func 0x80b5e40 PokeballGlowEffect_3 thumb_func 0x80b5f34 PokeballGlowEffect_4 thumb_func 0x80b5f50 PokeballGlowEffect_5 thumb_func 0x80b5f58 PokeballGlowEffect_6 -thumb_func 0x80b5f7c nullsub_201 +thumb_func 0x80b5f7c PokeballGlowEffect_7 thumb_func 0x80b5f80 SpriteCB_PokeballGlow thumb_func 0x80b5fa8 PokecenterHealEffectHelper thumb_func 0x80b6004 SpriteCB_PokecenterMonitor @@ -6223,7 +6325,7 @@ thumb_func 0x80b6154 mapldr_080842E8 thumb_func 0x80b617c task00_8084310 thumb_func 0x80b61fc mapldr_08084390 thumb_func 0x80b6264 c3_080843F8 -thumb_func 0x80b62c0 PrintAllVariableNumsOnCardPage2 +thumb_func 0x80b62c0 thumb_func 0x80b62ec thumb_func 0x80b6324 thumb_func 0x80b63cc @@ -6243,12 +6345,12 @@ thumb_func 0x80b6700 thumb_func 0x80b6710 thumb_func 0x80b675c thumb_func 0x80b67a8 -thumb_func 0x80b67b8 CB2_Pokenav +thumb_func 0x80b67b8 thumb_func 0x80b680c thumb_func 0x80b6834 thumb_func 0x80b686c -thumb_func 0x80b68e8 MovementAction_AcroEndWheelieMoveLeft_Step0 -thumb_func 0x80b6928 MovementAction_AcroEndWheelieMoveRight_Step0 +thumb_func 0x80b68e8 +thumb_func 0x80b6928 thumb_func 0x80b6988 thumb_func 0x80b69c8 thumb_func 0x80b6a28 @@ -6262,7 +6364,7 @@ thumb_func 0x80b6b84 waterfall_2_wait_anim_finish_probably thumb_func 0x80b6ba8 thumb_func 0x80b6bd0 thumb_func 0x80b6c28 FldEff_UseDive -thumb_func 0x80b6c64 +thumb_func 0x80b6c64 Task_Dive thumb_func 0x80b6c9c dive_1_lock thumb_func 0x80b6cb0 dive_2_unknown thumb_func 0x80b6cd8 dive_3_unknown @@ -6274,7 +6376,7 @@ thumb_func 0x80b6e10 thumb_func 0x80b6e5c thumb_func 0x80b6f50 thumb_func 0x80b6f6c -thumb_func 0x80b6fc0 +thumb_func 0x80b6fc0 mapldr_080851BC thumb_func 0x80b6fe8 thumb_func 0x80b7044 thumb_func 0x80b7074 @@ -6292,11 +6394,11 @@ thumb_func 0x80b734c thumb_func 0x80b73a0 FldEff_PopOutOfAsh thumb_func 0x80b7404 thumb_func 0x80b7420 StartEscapeRopeFieldEffect -thumb_func 0x80b743c +thumb_func 0x80b743c DoEscapeRopeFieldEffect thumb_func 0x80b746c EscapeRopeFieldEffect_Step0 thumb_func 0x80b748c EscapeRopeFieldEffect_Step1 -thumb_func 0x80b75a0 CB2_RayquazaScene -thumb_func 0x80b75ec +thumb_func 0x80b75a0 mapldr_080859D4 +thumb_func 0x80b75ec ExecuteTeleportFieldEffectTask thumb_func 0x80b761c thumb_func 0x80b7640 thumb_func 0x80b7720 @@ -6369,7 +6471,7 @@ thumb_func 0x80b8cd4 thumb_func 0x80b8d94 thumb_func 0x80b8e08 thumb_func 0x80b8eec -thumb_func 0x80b8f18 FldEff_FlyIn +thumb_func 0x80b8f18 thumb_func 0x80b8f2c thumb_func 0x80b8f5c thumb_func 0x80b9010 @@ -6384,12 +6486,13 @@ thumb_func 0x80b9328 thumb_func 0x80b9340 thumb_func 0x80b9370 thumb_func 0x80b9380 -thumb_func 0x80b93ac SpawnLinkPlayerEventObject +thumb_func 0x80b93ac thumb_func 0x80b9434 thumb_func 0x80b947c -thumb_func 0x80b9510 -thumb_func 0x80b9580 Fldeff_MoveDeoxysRock -thumb_func 0x80b9634 Fldeff_MoveDeoxysRock_Step +thumb_func 0x80b9510 Fldeff_MoveDeoxysRock +thumb_func 0x80b9580 Fldeff_MoveDeoxysRock_Step +thumb_func 0x80b9634 +# scanline_effect.s thumb_func 0x80b9710 ScanlineEffect_Stop thumb_func 0x80b9750 ScanlineEffect_Clear thumb_func 0x80b9790 ScanlineEffect_SetParams @@ -6399,30 +6502,31 @@ thumb_func 0x80b98ac CopyValue32Bit thumb_func 0x80b98cc TaskFunc_UpdateWavePerFrame thumb_func 0x80b9a94 GenerateWave thumb_func 0x80b9adc ScanlineEffect_InitWave -thumb_func 0x80b9c08 -thumb_func 0x80b9c20 +thumb_func 0x80b9c08 BattleScene_ProcessInput +thumb_func 0x80b9c20 BattleStyle_ProcessInput thumb_func 0x80b9c34 CB2_InitOptionMenu -thumb_func 0x80b9f94 +thumb_func 0x80b9f94 Task_OptionMenuFadeIn thumb_func 0x80b9fc4 Task_OptionMenuProcessInput thumb_func 0x80ba1bc Task_OptionMenuSave thumb_func 0x80ba260 Task_OptionMenuFadeOut thumb_func 0x80ba290 HighlightOptionMenuItem thumb_func 0x80ba2c0 DrawOptionMenuChoice -thumb_func 0x80ba334 -thumb_func 0x80ba390 -thumb_func 0x80ba3e4 -thumb_func 0x80ba40c -thumb_func 0x80ba468 -thumb_func 0x80ba490 +thumb_func 0x80ba334 ButtonMode_ProcessInput +thumb_func 0x80ba390 BattleScene_DrawChoices +thumb_func 0x80ba3e4 BattleStyle_DrawChoices +thumb_func 0x80ba40c Sound_DrawChoices +thumb_func 0x80ba468 DrawOptionMenuTexts +thumb_func 0x80ba490 TextSpeed_ProcessInput thumb_func 0x80ba4ec Sound_ProcessInput -thumb_func 0x80ba51c +thumb_func 0x80ba51c TextSpeed_DrawChoices thumb_func 0x80ba584 FrameType_ProcessInput -thumb_func 0x80ba634 -thumb_func 0x80ba724 +thumb_func 0x80ba634 FrameType_DrawChoices +thumb_func 0x80ba724 ButtonMode_DrawChoices thumb_func 0x80ba780 thumb_func 0x80ba800 DrawTextOption thumb_func 0x80ba834 thumb_func 0x80ba890 +# pokedex.s thumb_func 0x80baa0c ResetPokedex thumb_func 0x80baa94 ResetPokedexScrollPositions thumb_func 0x80baaac @@ -6465,7 +6569,7 @@ thumb_func 0x80bd1e0 thumb_func 0x80bd22c GetPokemonSpriteToDisplay thumb_func 0x80bd26c thumb_func 0x80bd31c CreateInterfaceSprites -thumb_func 0x80bdbe8 nullsub_59 +thumb_func 0x80bdbe8 nullsub_38 thumb_func 0x80bdbec thumb_func 0x80bdc10 thumb_func 0x80bdc80 @@ -6524,7 +6628,7 @@ thumb_func 0x80c0364 thumb_func 0x80c03c0 thumb_func 0x80c03f4 CreateMonSpriteFromNationalDexNumber thumb_func 0x80c0450 -thumb_func 0x80c0488 save_write_to_flash +thumb_func 0x80c0488 thumb_func 0x80c07b4 thumb_func 0x80c07cc thumb_func 0x80c0810 @@ -6546,7 +6650,7 @@ thumb_func 0x80c1440 thumb_func 0x80c1538 thumb_func 0x80c1684 thumb_func 0x80c16b8 -thumb_func 0x80c175c Cb_JumpBox +thumb_func 0x80c175c thumb_func 0x80c1838 thumb_func 0x80c1918 thumb_func 0x80c19bc @@ -6555,12 +6659,13 @@ thumb_func 0x80c1af0 thumb_func 0x80c1b38 thumb_func 0x80c1b84 thumb_func 0x80c1c38 +# trainer_card.s thumb_func 0x80c1cbc VblankCb_TrainerCard thumb_func 0x80c1d00 HblankCb_TrainerCard thumb_func 0x80c1d3c CB2_TrainerCard -thumb_func 0x80c1d54 +thumb_func 0x80c1d54 CloseTrainerCard thumb_func 0x80c1d8c -thumb_func 0x80c2104 +thumb_func 0x80c2104 LoadCardGfx thumb_func 0x80c22b4 CB2_InitTrainerCard thumb_func 0x80c2414 GetCappedGameStat thumb_func 0x80c242c HasAllFrontierSymbols @@ -6570,46 +6675,46 @@ thumb_func 0x80c24f4 SetPlayerCardData thumb_func 0x80c2650 TrainerCard_GenerateCardForLinkPlayer thumb_func 0x80c26d4 TrainerCard_GenerateCardForPlayer thumb_func 0x80c2750 CopyTrainerCardData -thumb_func 0x80c27c0 DecompressPicFromTable_2 -thumb_func 0x80c28a4 +thumb_func 0x80c27c0 SetDataFromTrainerCard +thumb_func 0x80c28a4 HandleGpuRegs thumb_func 0x80c2918 -thumb_func 0x80c297c HandleGpuRegs +thumb_func 0x80c297c ResetGpuRegs thumb_func 0x80c29b8 InitBgsAndWindows thumb_func 0x80c2a34 SetTrainerCardCb2 thumb_func 0x80c2a44 -thumb_func 0x80c2a68 +thumb_func 0x80c2a68 PrintAllOnCardPage1 thumb_func 0x80c2ae0 PrintStringsOnCardPage2 -thumb_func 0x80c2b78 +thumb_func 0x80c2b78 PrintAllVariableNumsOnCardPage2 thumb_func 0x80c2ba4 -thumb_func 0x80c2c5c Task_PrintTestData -thumb_func 0x80c2d14 +thumb_func 0x80c2c5c PrintNameOnCard +thumb_func 0x80c2d14 PrintProfilePhraseOnCard thumb_func 0x80c2e20 GetCaughtMonsCount -thumb_func 0x80c2e40 -thumb_func 0x80c2f5c WindowFunc_DrawDialogFrameWithCustomTileAndPalette -thumb_func 0x80c310c +thumb_func 0x80c2e40 PrintPokedexOnCard +thumb_func 0x80c2f5c PrintMoneyOnCard +thumb_func 0x80c310c PrintString thumb_func 0x80c31fc thumb_func 0x80c323c -thumb_func 0x80c32c0 PrintLinkResultsNumsOnCard -thumb_func 0x80c3330 -thumb_func 0x80c33a0 PrintHofTimeOnCard -thumb_func 0x80c340c +thumb_func 0x80c32c0 PrintHofTimeOnCard +thumb_func 0x80c3330 PrintWinsLossesStringOnCard +thumb_func 0x80c33a0 PrintLinkResultsNumsOnCard +thumb_func 0x80c340c PrintIdOnCard thumb_func 0x80c34b8 PrintTradesNumOnCard -thumb_func 0x80c34e4 +thumb_func 0x80c34e4 PrintBattleFacilityStringOnCard thumb_func 0x80c3584 PrintUnionNumOnCard -thumb_func 0x80c35c0 +thumb_func 0x80c35c0 PrintBerryCrushStringOnCard thumb_func 0x80c364c PrintBerryCrushNumOnCard -thumb_func 0x80c3684 +thumb_func 0x80c3684 PrintUnionStringOnCard thumb_func 0x80c3710 PrintPokeblocksNumOnCard -thumb_func 0x80c3760 -thumb_func 0x80c37ec -thumb_func 0x80c3828 +thumb_func 0x80c3760 PrintContestStringOnCard +thumb_func 0x80c37ec PrintContestNumOnCard +thumb_func 0x80c3828 PrintPokeblockStringOnCard thumb_func 0x80c38b4 PrintBattleFacilityNumsOnCard thumb_func 0x80c395c thumb_func 0x80c3a70 TrainerCard_PrintPokemonIconsOnCard thumb_func 0x80c3b0c -thumb_func 0x80c3be4 +thumb_func 0x80c3be4 PrintNameOnCard2 thumb_func 0x80c3c6c -thumb_func 0x80c3cc8 +thumb_func 0x80c3cc8 PrintHofDebutStringOnCard thumb_func 0x80c3ce4 SetCardBgsAndPals thumb_func 0x80c3e84 thumb_func 0x80c3ef4 @@ -6619,19 +6724,20 @@ thumb_func 0x80c41fc thumb_func 0x80c4238 GetTrainerCardStars thumb_func 0x80c424c thumb_func 0x80c4274 -thumb_func 0x80c4294 Phase2Task_GridSquares +thumb_func 0x80c4294 thumb_func 0x80c42cc thumb_func 0x80c430c thumb_func 0x80c443c thumb_func 0x80c4550 thumb_func 0x80c45b8 -thumb_func 0x80c46e4 ResetGpuRegs -thumb_func 0x80c4710 +thumb_func 0x80c46e4 +thumb_func 0x80c4710 ShowPlayerTrainerCard thumb_func 0x80c4798 ShowTrainerCardInLink thumb_func 0x80c47ec thumb_func 0x80c4858 GetSetCardType thumb_func 0x80c48d0 VersionToCardType thumb_func 0x80c48f4 +# frontier_pass.s thumb_func 0x80c49cc ResetGpuRegsAndBgs thumb_func 0x80c4ac0 ShowFrontierPass thumb_func 0x80c4ad4 LeaveFrontierPass @@ -6651,19 +6757,19 @@ thumb_func 0x80c51d0 CB2_ReturnFromRecord thumb_func 0x80c5230 CB2_ShowFrontierPassFeature thumb_func 0x80c52a0 TryCallPassAreaFunction thumb_func 0x80c5344 Task_HandleFrontierPassInput -thumb_func 0x80c54d4 DrawMultichoiceMenu -thumb_func 0x80c56b4 Task_Truck3 +thumb_func 0x80c54d4 Task_DoFadeEffect +thumb_func 0x80c56b4 ShowAndPrintWindows thumb_func 0x80c57bc PrintAreaDescription thumb_func 0x80c5844 thumb_func 0x80c59f0 thumb_func 0x80c5b88 thumb_func 0x80c5bc8 LoadCursorAndSymbolSprites thumb_func 0x80c5ce8 FreeCursorAndSymbolSprites -thumb_func 0x80c5d3c nullsub_601 +thumb_func 0x80c5d3c SpriteCb_Dummy thumb_func 0x80c5d40 ShowFrontierMap thumb_func 0x80c5d84 FreeFrontierMap thumb_func 0x80c5db8 InitFrontierMap -thumb_func 0x80c5f98 +thumb_func 0x80c5f98 ExitFrontierMap thumb_func 0x80c60a8 Task_HandleFrontierMap thumb_func 0x80c61d4 MapNumToFrontierFacilityId thumb_func 0x80c6260 InitFrontierMapSprites @@ -6672,6 +6778,7 @@ thumb_func 0x80c655c HandleFrontierMapCursorMove thumb_func 0x80c666c thumb_func 0x80c66a4 thumb_func 0x80c6738 +# pokemon_storage_system.s thumb_func 0x80c682c CountMonsInBox thumb_func 0x80c6860 GetFirstFreeBoxSpot thumb_func 0x80c6894 CountPartyNonEggMons @@ -6686,12 +6793,12 @@ thumb_func 0x80c6e04 ShowPokemonStorageSystemPC thumb_func 0x80c6e34 FieldCb_ReturnToPcMenu thumb_func 0x80c6e88 thumb_func 0x80c6f10 Cb2_ExitPSS -thumb_func 0x80c6f3c +thumb_func 0x80c6f3c StorageSystemGetNextMonIndex thumb_func 0x80c7008 ResetPokemonStorageSystem thumb_func 0x80c7080 thumb_func 0x80c7128 thumb_func 0x80c716c -thumb_func 0x80c717c WallyHandleGetRawMonData +thumb_func 0x80c717c thumb_func 0x80c7188 HandleBoxChooseSelectionInput thumb_func 0x80c71f0 thumb_func 0x80c73d0 @@ -6701,7 +6808,7 @@ thumb_func 0x80c74a0 thumb_func 0x80c7528 thumb_func 0x80c7590 thumb_func 0x80c75c4 VblankCb_PSS -thumb_func 0x80c75f0 +thumb_func 0x80c75f0 Cb2_PSS thumb_func 0x80c7610 Cb2_EnterPSS thumb_func 0x80c7688 Cb2_ReturnToPSS thumb_func 0x80c76ec ResetAllBgCoords @@ -6717,7 +6824,7 @@ thumb_func 0x80c8044 Cb_ShowPartyPokemon thumb_func 0x80c8084 Cb_HidePartyPokemon thumb_func 0x80c8100 Cb_OnSelectedMon thumb_func 0x80c842c Cb_MoveMon -thumb_func 0x80c8488 +thumb_func 0x80c8488 Cb_PlaceMon thumb_func 0x80c84e4 Cb_ShiftMon thumb_func 0x80c852c Cb_WithdrawMon thumb_func 0x80c8614 Cb_DepositMenu @@ -6729,23 +6836,23 @@ thumb_func 0x80c8b34 Cb_ItemToBag thumb_func 0x80c8c4c Cb_SwitchSelectedItem thumb_func 0x80c8d34 Cb_ShowItemInfo thumb_func 0x80c8de8 Cb_CloseBoxWhileHoldingItem -thumb_func 0x80c8f0c Cb_HandleMovingMonFromParty -thumb_func 0x80c8f54 +thumb_func 0x80c8f0c +thumb_func 0x80c8f54 Cb_PrintCantStoreMail thumb_func 0x80c8fc8 Cb_HandleBoxOptions thumb_func 0x80c90c0 Cb_HandleWallpapers -thumb_func 0x80c9274 -thumb_func 0x80c9364 BattleSetup_GetTerrainId +thumb_func 0x80c9274 Cb_JumpBox +thumb_func 0x80c9364 Cb_NameBox thumb_func 0x80c93c4 Cb_ShowMonSummary thumb_func 0x80c9424 Cb_GiveItemFromBag thumb_func 0x80c9484 Cb_OnCloseBoxPressed -thumb_func 0x80c95b8 -thumb_func 0x80c96ec +thumb_func 0x80c95b8 Cb_OnBPressed +thumb_func 0x80c96ec Cb_ChangeScreen thumb_func 0x80c97e0 GiveChosenBagItem thumb_func 0x80c983c FreePSSData thumb_func 0x80c9860 SetScrollingBackground thumb_func 0x80c989c ScrollBackground thumb_func 0x80c98b8 LoadPSSMenuGfx -thumb_func 0x80c9918 +thumb_func 0x80c9918 InitPSSWindows thumb_func 0x80c993c LoadWaveformSpritePalette thumb_func 0x80c994c thumb_func 0x80c99c8 @@ -6756,7 +6863,7 @@ thumb_func 0x80c9b2c thumb_func 0x80c9b44 thumb_func 0x80c9b8c LoadCursorMonSprite thumb_func 0x80c9cc0 LoadCursorMonGfx -thumb_func 0x80c9d70 +thumb_func 0x80c9d70 PrintCursorMonInfo thumb_func 0x80c9ec0 thumb_func 0x80c9f68 thumb_func 0x80ca038 SetUpShowPartyMenu @@ -6769,17 +6876,17 @@ thumb_func 0x80ca250 thumb_func 0x80ca278 thumb_func 0x80ca2d8 thumb_func 0x80ca30c -thumb_func 0x80ca384 PokecenterHealEffect_3 +thumb_func 0x80ca384 thumb_func 0x80ca3b0 SetUpDoShowPartyMenu thumb_func 0x80ca3d4 DoShowPartyMenu thumb_func 0x80ca444 thumb_func 0x80ca480 thumb_func 0x80ca4bc PrintStorageActionText -thumb_func 0x80ca600 -thumb_func 0x80ca638 -thumb_func 0x80ca64c +thumb_func 0x80ca600 ShowYesNoWindow +thumb_func 0x80ca638 ClearBottomWindow +thumb_func 0x80ca64c AddWallpaperSetsMenu thumb_func 0x80ca680 AddWallpapersMenu -thumb_func 0x80ca714 +thumb_func 0x80ca714 GetCurrentBoxOption thumb_func 0x80ca720 thumb_func 0x80ca778 thumb_func 0x80ca820 @@ -6798,7 +6905,7 @@ thumb_func 0x80cafec DestroyBoxMonIconAtPosition thumb_func 0x80cb020 SetBoxMonIconObjMode thumb_func 0x80cb05c CreatePartyMonsSprites thumb_func 0x80cb1c4 -thumb_func 0x80cb230 +thumb_func 0x80cb230 GetWaldaWallpaperPatternId thumb_func 0x80cb244 thumb_func 0x80cb2b0 thumb_func 0x80cb338 DestroyMovingMonIcon @@ -6839,7 +6946,7 @@ thumb_func 0x80cc76c thumb_func 0x80cc7bc thumb_func 0x80cc7f0 thumb_func 0x80cc828 -thumb_func 0x80cc898 +thumb_func 0x80cc898 GetWaldaWallpaperColorsPtr thumb_func 0x80cc8a8 thumb_func 0x80cc934 thumb_func 0x80cc9d4 @@ -6879,7 +6986,7 @@ thumb_func 0x80cd908 SetPlacedMonData thumb_func 0x80cd964 PurgeMonOrBoxMon thumb_func 0x80cd98c SetShiftedMonData thumb_func 0x80cda18 TryStorePartyMonInBox -thumb_func 0x80cdaa8 WallyHandleStatusIconUpdate +thumb_func 0x80cdaa8 thumb_func 0x80cdacc thumb_func 0x80cdb24 thumb_func 0x80cdb54 ReleaseMon @@ -6896,7 +7003,7 @@ thumb_func 0x80ce188 CompactPartySlots thumb_func 0x80ce224 SetMonMarkings thumb_func 0x80ce2ac CanMovePartyMon thumb_func 0x80ce2e8 CanShiftMon -thumb_func 0x80ce34c +thumb_func 0x80ce34c GetBoxCursorPosition thumb_func 0x80ce358 IsCursorOnBox thumb_func 0x80ce374 IsCursorOnCloseBox thumb_func 0x80ce3a0 IsCursorInBox @@ -6928,11 +7035,11 @@ thumb_func 0x80cf748 thumb_func 0x80cf76c InitMenu thumb_func 0x80cf7b0 SetMenuText thumb_func 0x80cf814 -thumb_func 0x80cf84c +thumb_func 0x80cf84c AddMenu thumb_func 0x80cf948 thumb_func 0x80cf94c thumb_func 0x80cf9dc -thumb_func 0x80cfa04 ItemStorage_StartScrollIndicatorAndProcessInput +thumb_func 0x80cfa04 thumb_func 0x80cfa58 thumb_func 0x80cfa70 thumb_func 0x80cfa84 @@ -6972,7 +7079,7 @@ thumb_func 0x80d0a6c thumb_func 0x80d0ab8 thumb_func 0x80d0b1c IsActiveItemMoving thumb_func 0x80d0b58 GetMovingItemName -thumb_func 0x80d0b74 +thumb_func 0x80d0b74 GetMovingItem thumb_func 0x80d0b88 thumb_func 0x80d0bc4 thumb_func 0x80d0c10 @@ -6984,7 +7091,7 @@ thumb_func 0x80d0ea4 thumb_func 0x80d0fe0 thumb_func 0x80d1034 GetItemIconPic thumb_func 0x80d1044 GetItemIconPalette -thumb_func 0x80d1054 +thumb_func 0x80d1054 Cb_HandleMovingMonFromParty thumb_func 0x80d10b8 thumb_func 0x80d10ec thumb_func 0x80d1184 @@ -6996,9 +7103,9 @@ thumb_func 0x80d13b4 thumb_func 0x80d1434 thumb_func 0x80d14d0 thumb_func 0x80d156c -thumb_func 0x80d15a4 nullsub_61 -thumb_func 0x80d15a8 nullsub_60 -thumb_func 0x80d15ac +thumb_func 0x80d15a4 nullsub_98 +thumb_func 0x80d15a8 nullsub_pss +thumb_func 0x80d15ac StorageGetCurrentBox thumb_func 0x80d15b8 SetCurrentBox thumb_func 0x80d15d0 GetBoxMonDataAt thumb_func 0x80d1614 SetBoxMonDataAt @@ -7025,14 +7132,14 @@ thumb_func 0x80d1bdc CountAllStorageMons thumb_func 0x80d1c48 AnyStorageMonWithMove thumb_func 0x80d1ccc ResetWaldaWallpaper thumb_func 0x80d1d20 SetWaldaWallpaperLockedOrUnlocked -thumb_func 0x80d1d34 +thumb_func 0x80d1d34 IsWaldaWallpaperUnlocked thumb_func 0x80d1d48 thumb_func 0x80d1d5c SetWaldaWallpaperPatternId -thumb_func 0x80d1d7c +thumb_func 0x80d1d7c GetWaldaWallpaperIconId thumb_func 0x80d1d90 SetWaldaWallpaperIconId thumb_func 0x80d1db0 thumb_func 0x80d1dc4 SetWaldaWallpaperColors -thumb_func 0x80d1de8 +thumb_func 0x80d1de8 GetWaldaPhrasePtr thumb_func 0x80d1dfc SetWaldaPhrase thumb_func 0x80d1e18 IsWaldaPhraseEmpty thumb_func 0x80d1e3c @@ -7052,6 +7159,7 @@ thumb_func 0x80d238c thumb_func 0x80d2428 thumb_func 0x80d2460 thumb_func 0x80d24bc +# pokemon_icon.s thumb_func 0x80d2564 CreateMonIcon thumb_func 0x80d2618 thumb_func 0x80d26a8 GetIconSpecies @@ -7069,12 +7177,13 @@ thumb_func 0x80d28b4 thumb_func 0x80d28c0 GetMonIconTiles thumb_func 0x80d28ec thumb_func 0x80d2920 GetValidMonIconPalIndex -thumb_func 0x80d2940 +thumb_func 0x80d2940 GetMonIconPaletteIndexFromSpecies thumb_func 0x80d2950 GetValidMonIconPalettePtr thumb_func 0x80d297c UpdateMonIconFrame thumb_func 0x80d2a54 CreateMonIconSprite thumb_func 0x80d2b2c thumb_func 0x80d2b68 +# script_movement.s thumb_func 0x80d2b88 ScriptMovement_StartObjectMovementScript thumb_func 0x80d2be0 ScriptMovement_IsObjectMovementFinished thumb_func 0x80d2c2c @@ -7094,11 +7203,12 @@ thumb_func 0x80d2e7c thumb_func 0x80d2ebc UnfreezeObjects thumb_func 0x80d2f00 thumb_func 0x80d2f44 +# fldeff_cut.s thumb_func 0x80d2fb8 SetUpFieldMove_Cut thumb_func 0x80d32f0 FieldCallback_CutGrass -thumb_func 0x80d330c +thumb_func 0x80d330c FldEff_UseCutOnGrass thumb_func 0x80d333c FieldCallback_CutTree -thumb_func 0x80d335c +thumb_func 0x80d335c FldEff_UseCutOnTree thumb_func 0x80d338c StartCutGrassFieldEffect thumb_func 0x80d33a0 FldEff_CutGrass thumb_func 0x80d34b0 SetCutGrassMetatile @@ -7111,25 +7221,28 @@ thumb_func 0x80d3a70 CutGrassSpriteCallbackEnd thumb_func 0x80d3adc FixLongGrassMetatilesWindowTop thumb_func 0x80d3b58 FixLongGrassMetatilesWindowBottom thumb_func 0x80d3bf4 StartCutTreeFieldEffect +# mail_data.s thumb_func 0x80d3c0c ClearMailData thumb_func 0x80d3c3c ClearMailStruct thumb_func 0x80d3c90 MonHasMail -thumb_func 0x80d3cc0 -thumb_func 0x80d3e4c +thumb_func 0x80d3cc0 GiveMailToMon +thumb_func 0x80d3e4c SpeciesToMailSpecies thumb_func 0x80d3e6c MailSpeciesToSpecies thumb_func 0x80d3e90 GiveMailToMon2 -thumb_func 0x80d3f00 +thumb_func 0x80d3f00 DummyMailFunc thumb_func 0x80d3f04 TakeMailFromMon thumb_func 0x80d3f64 ClearMailItemId thumb_func 0x80d3f84 TakeMailFromMon2 thumb_func 0x80d4040 ItemIsMail +# map_name_popup.s thumb_func 0x80d4058 thumb_func 0x80d4068 ShowMapNamePopup thumb_func 0x80d4100 Task_MapNamePopUpWindow thumb_func 0x80d41f8 HideMapNamePopUpWindow -thumb_func 0x80d4234 DrawOptionMenuTexts +thumb_func 0x80d4234 ShowMapNamePopUpWindow thumb_func 0x80d42fc thumb_func 0x80d4464 LoadMapNamePopUpWindowBg +# item_menu_icons.s thumb_func 0x80d452c RemoveBagSprite thumb_func 0x80d4584 AddBagVisualSprite thumb_func 0x80d45bc SetBagVisualPocketId @@ -7151,6 +7264,7 @@ thumb_func 0x80d4958 CreateBerryTagSprite thumb_func 0x80d4990 FreeBerryTagSpritePalette thumb_func 0x80d49a0 LoadSpinningBerryPicGfx thumb_func 0x80d4a10 CreateBerryFlavorCircleSprite +# battle_anim_mon_movement.s thumb_func 0x80d4a30 AnimTask_ShakeMon thumb_func 0x80d4aa4 AnimTask_ShakeMonStep thumb_func 0x80d4b54 AnimTask_ShakeMon2 @@ -7186,14 +7300,15 @@ thumb_func 0x80d5ab0 thumb_func 0x80d5b8c thumb_func 0x80d5c0c thumb_func 0x80d5cf0 +# item.s thumb_func 0x80d5dd8 GetBagItemQuantity thumb_func 0x80d5df0 SetBagItemQuantity -thumb_func 0x80d5e08 -thumb_func 0x80d5e0c +thumb_func 0x80d5e08 GetPCItemQuantity +thumb_func 0x80d5e0c SetPCItemQuantity thumb_func 0x80d5e10 ApplyNewEncryptionKeyToBagItems thumb_func 0x80d5e68 ApplyNewEncryptionKeyToBagItems_ thumb_func 0x80d5e74 SetBagItemsPointers -thumb_func 0x80d5ec8 +thumb_func 0x80d5ec8 CopyItemName thumb_func 0x80d5f04 IsBagPocketNonEmpty thumb_func 0x80d5f3c CheckBagHasItem thumb_func 0x80d5fdc HasAtLeastOneBerry @@ -7222,22 +7337,23 @@ thumb_func 0x80d699c CheckPyramidBagHasSpace thumb_func 0x80d6a1c AddPyramidBagItem thumb_func 0x80d6b4c RemovePyramidBagItem thumb_func 0x80d6c74 SanitizeItemId -thumb_func 0x80d6c8c +thumb_func 0x80d6c8c ItemId_GetName thumb_func 0x80d6cb0 thumb_func 0x80d6cd4 thumb_func 0x80d6cf8 thumb_func 0x80d6d1c -thumb_func 0x80d6d40 -thumb_func 0x80d6d68 +thumb_func 0x80d6d40 ItemId_GetHoldEffect +thumb_func 0x80d6d68 ItemId_GetHoldEffectParam thumb_func 0x80d6d8c -thumb_func 0x80d6db0 -thumb_func 0x80d6dd4 +thumb_func 0x80d6db0 ItemId_GetImportance +thumb_func 0x80d6dd4 ItemId_GetPocket thumb_func 0x80d6df8 -thumb_func 0x80d6e20 +thumb_func 0x80d6e20 ItemId_GetSecondaryId thumb_func 0x80d6e44 thumb_func 0x80d6e6c -thumb_func 0x80d6e94 nullsub_63 -thumb_func 0x80d6e98 +# contest.s +thumb_func 0x80d6e94 TaskDummy1 +thumb_func 0x80d6e98 ResetLinkContestBoolean thumb_func 0x80d6ea4 SetupContestGpuRegs thumb_func 0x80d6f50 LoadContestBgAfterMoveAnim thumb_func 0x80d6fc8 InitContestInfoBgs @@ -7260,7 +7376,7 @@ thumb_func 0x80d7aa8 vblank_cb_battle thumb_func 0x80d7b68 thumb_func 0x80d7c50 thumb_func 0x80d7cbc -thumb_func 0x80d7e40 ReadMail +thumb_func 0x80d7e40 thumb_func 0x80d8038 thumb_func 0x80d8064 thumb_func 0x80d8090 @@ -7269,7 +7385,7 @@ thumb_func 0x80d8158 thumb_func 0x80d8200 thumb_func 0x80d824c thumb_func 0x80d8284 -thumb_func 0x80d8334 NamingScreen_Init +thumb_func 0x80d8334 thumb_func 0x80d9900 thumb_func 0x80d9924 thumb_func 0x80d9954 @@ -7300,15 +7416,15 @@ thumb_func 0x80da0b8 thumb_func 0x80da330 thumb_func 0x80da460 thumb_func 0x80da58c -thumb_func 0x80da624 -thumb_func 0x80da664 Rain_Main -thumb_func 0x80da68c -thumb_func 0x80da6a4 -thumb_func 0x80da6f8 +thumb_func 0x80da624 DrawContestantWindowText +thumb_func 0x80da664 Contest_CopyStringWithColor +thumb_func 0x80da68c PrintContestantMonName +thumb_func 0x80da6a4 PrintContestantMonNameWithColor +thumb_func 0x80da6f8 PrintContestantTrainerName thumb_func 0x80da710 thumb_func 0x80da744 thumb_func 0x80da800 -thumb_func 0x80da828 AnimTask_Splash +thumb_func 0x80da828 thumb_func 0x80da884 thumb_func 0x80da8d8 thumb_func 0x80daa0c IsSpeciesNotUnown @@ -7363,7 +7479,7 @@ thumb_func 0x80dbfc8 thumb_func 0x80dbfe0 thumb_func 0x80dc034 thumb_func 0x80dc118 -thumb_func 0x80dc150 IsMetatileDirectionallyImpassable +thumb_func 0x80dc150 thumb_func 0x80dc2dc thumb_func 0x80dc318 thumb_func 0x80dc334 @@ -7421,11 +7537,11 @@ thumb_func 0x80de140 thumb_func 0x80de184 thumb_func 0x80de1c0 thumb_func 0x80de20c SelectContestMoveBankTarget -thumb_func 0x80de2d4 +thumb_func 0x80de2d4 Contest_PrintTextToBg0WindowStd thumb_func 0x80de338 Contest_StartTextPrinter thumb_func 0x80de3c0 ContestBG_FillBoxWithIncrementingTile thumb_func 0x80de418 ContestBG_FillBoxWithTile -thumb_func 0x80de454 GetPlayerTextSpeed +thumb_func 0x80de454 Contest_RunTextPrinters thumb_func 0x80de468 Contest_SetBgCopyFlags thumb_func 0x80de47c ResetContestLinkResults thumb_func 0x80de4b0 @@ -7435,27 +7551,28 @@ thumb_func 0x80de788 thumb_func 0x80de958 thumb_func 0x80dec00 thumb_func 0x80dede0 ContestDebugToggleBitfields -thumb_func 0x80dee2c -thumb_func 0x80deff0 -thumb_func 0x80df098 +thumb_func 0x80dee2c ContestDebugPrintBitStrings +# shop.s +thumb_func 0x80deff0 CB2_BuyMenu +thumb_func 0x80df098 SetShopMenuCallback thumb_func 0x80df0a4 SetShopItemsForSale thumb_func 0x80df0d4 Task_ShopMenu -thumb_func 0x80df11c -thumb_func 0x80df158 -thumb_func 0x80df194 +thumb_func 0x80df11c Task_HandleShopMenuBuy +thumb_func 0x80df158 Task_HandleShopMenuSell +thumb_func 0x80df194 CB2_ExitSellMenu thumb_func 0x80df1b4 Task_HandleShopMenuQuit thumb_func 0x80df1f0 Task_GoToBuyOrSellMenu thumb_func 0x80df22c MapPostLoadHook_ReturnToShopMenu thumb_func 0x80df244 Task_ReturnToShopMenu thumb_func 0x80df290 ShowShopMenuAfterExitingBuyOrSellMenu -thumb_func 0x80df2b0 +thumb_func 0x80df2b0 BuyMenuPrintPriceInList thumb_func 0x80df2cc VBlankCB_BuyMenu thumb_func 0x80df2e0 CB2_InitBuyMenu thumb_func 0x80df448 BuyMenuFreeMemory -thumb_func 0x80df478 +thumb_func 0x80df478 BuyMenuBuildListMenuTemplate thumb_func 0x80df554 BuyMenuSetListEntry thumb_func 0x80df594 BuyMenuPrintItemDescriptionAndShowItemIcon -thumb_func 0x80df670 +thumb_func 0x80df670 CreateShopMenu thumb_func 0x80df70c BuyMenuAddScrollIndicatorArrows thumb_func 0x80df768 BuyMenuRemoveScrollIndicatorArrows thumb_func 0x80df794 BuyMenuPrintCursor @@ -7464,7 +7581,7 @@ thumb_func 0x80df860 BuyMenuRemoveItemIcon thumb_func 0x80df8b0 BuyMenuInitBgs thumb_func 0x80df968 BuyMenuDecompressBgGraphics thumb_func 0x80df9ac BuyMenuInitWindows -thumb_func 0x80df9e8 +thumb_func 0x80df9e8 BuyMenuPrint thumb_func 0x80dfa2c BuyMenuDisplayMessage thumb_func 0x80dfa68 BuyMenuDrawGraphics thumb_func 0x80dfab4 BuyMenuDrawMapGraphics @@ -7493,13 +7610,15 @@ thumb_func 0x80e0750 RecordItemPurchase thumb_func 0x80e07d0 CreatePokemartMenu thumb_func 0x80e07f4 CreateDecorationShop1Menu thumb_func 0x80e0814 CreateDecorationShop2Menu +# fldeff_escalator.s thumb_func 0x80e0834 thumb_func 0x80e0990 thumb_func 0x80e0a58 thumb_func 0x80e0aa4 thumb_func 0x80e0abc thumb_func 0x80e0ad0 -thumb_func 0x80e0b04 +# berry.s +thumb_func 0x80e0b04 ClearEnigmaBerries thumb_func 0x80e0b30 SetEnigmaBerry thumb_func 0x80e0b5c GetEnigmaBerryChecksum thumb_func 0x80e0b78 IsEnigmaBerryValid @@ -7526,28 +7645,29 @@ thumb_func 0x80e1064 CalcBerryYield thumb_func 0x80e1090 GetBerryCountByBerryTreeId thumb_func 0x80e10a8 GetStageDurationByBerryType thumb_func 0x80e10c0 EventObjectInteractionGetBerryTreeData -thumb_func 0x80e1154 -thumb_func 0x80e1164 +thumb_func 0x80e1154 Bag_ChooseBerry +thumb_func 0x80e1164 EventObjectInteractionPlantBerryTree thumb_func 0x80e119c EventObjectInteractionPickBerryTree -thumb_func 0x80e11e8 +thumb_func 0x80e11e8 EventObjectInteractionRemoveBerryTree thumb_func 0x80e121c PlayerHasBerries thumb_func 0x80e122c ResetBerryTreeSparkleFlags +# script_menu.s thumb_func 0x80e12c8 ScriptMenu_Multichoice thumb_func 0x80e1318 ScriptMenu_MultichoiceWithDefault thumb_func 0x80e1378 -thumb_func 0x80e13bc -thumb_func 0x80e13fc +thumb_func 0x80e13bc ScrSpecial_CreatePCMenu +thumb_func 0x80e13fc DrawMultichoiceMenu thumb_func 0x80e14cc thumb_func 0x80e1568 Task_HandleMultichoiceInput thumb_func 0x80e1618 ScriptMenu_YesNo thumb_func 0x80e1650 IsScriptActive thumb_func 0x80e166c Task_HandleYesNoInput -thumb_func 0x80e16e0 +thumb_func 0x80e16e0 sp106_CreateStartMenu thumb_func 0x80e17ec Task_HandleMultichoiceGridInput thumb_func 0x80e1850 -thumb_func 0x80e1880 ShowDomeResultsWindow +thumb_func 0x80e1880 CreatePCMenu thumb_func 0x80e1a0c ScriptMenu_DisplayPCStartupPrompt -thumb_func 0x80e1a40 +thumb_func 0x80e1a40 display_text_and_get_width_internal thumb_func 0x80e1a70 thumb_func 0x80e1d6c thumb_func 0x80e1d8c Task_PokemonPicWindow @@ -7555,23 +7675,24 @@ thumb_func 0x80e1df4 ScriptMenu_ShowPokemonPic thumb_func 0x80e1eb8 ScriptMenu_GetPicboxWaitFunc thumb_func 0x80e1ef0 IsPicboxClosed thumb_func 0x80e1f10 CreateWindowFromRect -thumb_func 0x80e1f6c +thumb_func 0x80e1f6c ClearToTransparentAndRemoveWindow thumb_func 0x80e1f88 -thumb_func 0x80e2070 -thumb_func 0x80e20a0 +thumb_func 0x80e2070 convert_pixel_width_to_tile_width +thumb_func 0x80e20a0 CreateStartMenu thumb_func 0x80e21f8 +# naming_screen.s thumb_func 0x80e2244 DoNamingScreen thumb_func 0x80e22d0 C2_NamingScreen -thumb_func 0x80e2374 +thumb_func 0x80e2374 NamingScreen_Init thumb_func 0x80e246c thumb_func 0x80e24ac NamingScreen_InitBGs thumb_func 0x80e265c thumb_func 0x80e2678 thumb_func 0x80e270c -thumb_func 0x80e2734 +thumb_func 0x80e2734 GetCurrentPageColumnCount thumb_func 0x80e2758 thumb_func 0x80e2788 -thumb_func 0x80e27b8 +thumb_func 0x80e27b8 MainState_BeginFadeIn thumb_func 0x80e28f0 MainState_WaitFadeIn thumb_func 0x80e292c MainState_HandleInput thumb_func 0x80e293c MainState_MoveToOKButton @@ -7580,16 +7701,16 @@ thumb_func 0x80e29dc MainState_BeginFadeInOut thumb_func 0x80e2a10 MainState_WaitFadeOutAndExit thumb_func 0x80e2a78 DisplaySentToPCMessage thumb_func 0x80e2b98 -thumb_func 0x80e2bd4 +thumb_func 0x80e2bd4 MainState_StartPageSwap thumb_func 0x80e2c14 thumb_func 0x80e2c6c StartPageSwapAnim -thumb_func 0x80e2c8c +thumb_func 0x80e2c8c Task_HandlePageSwapAnim thumb_func 0x80e2cc4 IsPageSwapAnimNotInProgress thumb_func 0x80e2ce4 PageSwapAnimState_Init thumb_func 0x80e2d0c PageSwapAnimState_1 thumb_func 0x80e2da0 PageSwapAnimState_2 thumb_func 0x80e2e34 PageSwapAnimState_Done -thumb_func 0x80e2e50 +thumb_func 0x80e2e50 MoveCursorToOKButton thumb_func 0x80e2e78 thumb_func 0x80e2eec Task_80E39BC thumb_func 0x80e2fa4 @@ -7607,7 +7728,7 @@ thumb_func 0x80e3320 thumb_func 0x80e3378 thumb_func 0x80e33bc thumb_func 0x80e33e8 IsCursorAnimFinished -thumb_func 0x80e3414 +thumb_func 0x80e3414 GetKeyRoleAtCursorPos thumb_func 0x80e344c CreatePageSwitcherSprites thumb_func 0x80e3510 thumb_func 0x80e3544 @@ -7617,10 +7738,10 @@ thumb_func 0x80e35c4 thumb_func 0x80e3638 thumb_func 0x80e3678 thumb_func 0x80e36d8 CreateBackOkSprites -thumb_func 0x80e3750 +thumb_func 0x80e3750 CreateUnderscoreSprites thumb_func 0x80e3820 CreateInputTargetIcon -thumb_func 0x80e383c nullsub_641 -thumb_func 0x80e384c nullsub_65 +thumb_func 0x80e383c TaskDummy3 +thumb_func 0x80e384c TaskDummy2 thumb_func 0x80e3850 NamingScreen_CreatePlayerIcon thumb_func 0x80e38ac NamingScreen_CreatePCIcon thumb_func 0x80e38ec NamingScreen_CreateMonIcon @@ -7631,23 +7752,23 @@ thumb_func 0x80e3a30 KeyboardKeyHandler_Page thumb_func 0x80e3a58 KeyboardKeyHandler_Backspace thumb_func 0x80e3a7c KeyboardKeyHandler_OK thumb_func 0x80e3ab8 -thumb_func 0x80e3ad0 +thumb_func 0x80e3ad0 InputInit thumb_func 0x80e3ae4 GetInputEvent thumb_func 0x80e3b08 SetInputState thumb_func 0x80e3b34 -thumb_func 0x80e3b64 +thumb_func 0x80e3b64 InputState_2 thumb_func 0x80e3b6c InputState_Enabled thumb_func 0x80e3bd0 -thumb_func 0x80e3bf4 +thumb_func 0x80e3bf4 HandleDpadMovement thumb_func 0x80e3d50 thumb_func 0x80e3da4 thumb_func 0x80e3e24 -thumb_func 0x80e3e3c nullsub_64 +thumb_func 0x80e3e3c nullsub_10 thumb_func 0x80e3e4c -thumb_func 0x80e3e68 nullsub_67 -thumb_func 0x80e3e78 nullsub_68 +thumb_func 0x80e3e68 InputState_Disabled +thumb_func 0x80e3e78 thumb_func 0x80e3e7c -thumb_func 0x80e3eec +thumb_func 0x80e3eec GetCharAtKeyboardPos thumb_func 0x80e3f20 GetTextCaretPosition thumb_func 0x80e3f74 GetPreviousTextCaretPosition thumb_func 0x80e3fb8 DeleteTextCharacter @@ -7658,12 +7779,12 @@ thumb_func 0x80e414c thumb_func 0x80e4188 AddTextCharacter thumb_func 0x80e41b0 thumb_func 0x80e4208 -thumb_func 0x80e4248 -thumb_func 0x80e4318 GetMultiplayerId_ +thumb_func 0x80e4248 MainState_WaitPageSwap +thumb_func 0x80e4318 thumb_func 0x80e437c thumb_func 0x80e43ec choose_name_or_words_screen_load_bg_tile_patterns thumb_func 0x80e4450 -thumb_func 0x80e4460 +thumb_func 0x80e4460 choose_name_or_words_screen_apply_bg_pals thumb_func 0x80e4490 thumb_func 0x80e44a4 thumb_func 0x80e4510 @@ -7674,29 +7795,31 @@ thumb_func 0x80e474c thumb_func 0x80e4764 NamingScreen_TurnOffScreen thumb_func 0x80e4778 NamingScreen_InitDisplayMode thumb_func 0x80e4788 VBlankCB_NamingScreen -thumb_func 0x80e4810 +thumb_func 0x80e4810 SetCursorPos thumb_func 0x80e4830 thumb_func 0x80e4868 thumb_func 0x80e4890 thumb_func 0x80e48b8 thumb_func 0x80e48e0 -thumb_func 0x80e4908 -thumb_func 0x80e491c +# money.s +thumb_func 0x80e4908 GetMoney +thumb_func 0x80e491c SetMoney thumb_func 0x80e4930 IsEnoughMoney thumb_func 0x80e4948 AddMoney thumb_func 0x80e4980 RemoveMoney thumb_func 0x80e49a4 IsEnoughForCostInVar0x8005 thumb_func 0x80e49c8 SubtractMoneyFromVar0x8005 thumb_func 0x80e49e8 PrintMoneyAmountInMoneyBox -thumb_func 0x80e4a08 CreateBicycleAnimationTask -thumb_func 0x80e4a74 PrintMoneyAmountInMoneyBoxWithBorder +thumb_func 0x80e4a08 PrintMoneyAmountInMoneyBoxWithBorder +thumb_func 0x80e4a74 PrintMoneyAmount thumb_func 0x80e4ab0 ChangeAmountInMoneyBox thumb_func 0x80e4ac8 DrawMoneyBox thumb_func 0x80e4b60 HideMoneyBox thumb_func 0x80e4b88 AddMoneyLabelObject thumb_func 0x80e4bd0 RemoveMoneyLabelObject +# contest_effect.s thumb_func 0x80e4bf0 AreMovesContestCombo -thumb_func 0x80e4c58 nullsub_21 +thumb_func 0x80e4c58 ContestEffect_MakeScramblingTurnOrderEasier thumb_func 0x80e4c5c ContestEffect_UserMoreEasilyStartled thumb_func 0x80e4c8c ContestEffect_GreatAppealButNoMoreMoves thumb_func 0x80e4cbc ContestEffect_RepetitionNotBoring @@ -7714,7 +7837,7 @@ thumb_func 0x80e5114 ContestEffect_JamsOthersButMissOneTurn thumb_func 0x80e514c ContestEffect_StartleMonsSameTypeAppeal thumb_func 0x80e518c ContestEffect_StartleMonsCoolAppeal thumb_func 0x80e51ac ContestEffect_StartleMonsBeautyAppeal -thumb_func 0x80e51cc +thumb_func 0x80e51cc ContestEffect_StartleMonsCuteAppeal thumb_func 0x80e51ec ContestEffect_StartleMonsSmartAppeal thumb_func 0x80e520c ContestEffect_StartleMonsToughAppeal thumb_func 0x80e522c ContestEffect_MakeFollowingMonNervous @@ -7734,7 +7857,7 @@ thumb_func 0x80e5b10 ContestEffect_ImproveConditionPreventNervousness thumb_func 0x80e5b74 ContestEffect_BetterWithGoodCondition thumb_func 0x80e5bc4 ContestEffect_NextAppealEarlier thumb_func 0x80e5cfc ContestEffect_NextAppealLater -thumb_func 0x80e5e40 nullsub_20 +thumb_func 0x80e5e40 ContestEffect_HighlyAppealing thumb_func 0x80e5e44 ContestEffect_ScrambleNextTurnOrder thumb_func 0x80e5f54 ContestEffect_ExciteAudienceInAnyContest thumb_func 0x80e5f98 ContestEffect_BadlyStartleMonsWithGoodAppeals @@ -7746,10 +7869,11 @@ thumb_func 0x80e6208 WasAtLeastOneOpponentJammed thumb_func 0x80e6318 JamContestant thumb_func 0x80e634c RoundTowardsZero thumb_func 0x80e6390 RoundUp +# record_mixing.s thumb_func 0x80e63c4 RecordMixingPlayerSpotTriggered thumb_func 0x80e63d4 SetSrcLookupPointers thumb_func 0x80e647c PrepareUnknownExchangePacket -thumb_func 0x80e6530 +thumb_func 0x80e6530 PrepareExchangePacketForRubySapphire thumb_func 0x80e6604 PrepareExchangePacket thumb_func 0x80e6738 ReceiveExchangePacket thumb_func 0x80e68cc PrintTextOnRecordMixing @@ -7763,17 +7887,17 @@ thumb_func 0x80e6f78 Task_ReceivePacket thumb_func 0x80e6fac Task_SendPacket_SwitchToReceive thumb_func 0x80e6fd4 LoadPtrFromTaskData thumb_func 0x80e6fe0 StorePtrInTaskData -thumb_func 0x80e6fe8 +thumb_func 0x80e6fe8 GetMultiplayerId_ thumb_func 0x80e6ff8 GetPlayerRecvBuffer thumb_func 0x80e7008 ShufflePlayerIndices -thumb_func 0x80e709c -thumb_func 0x80e711c +thumb_func 0x80e709c ReceiveOldManData +thumb_func 0x80e711c ReceiveBattleTowerData thumb_func 0x80e71e4 ReceiveLilycoveLadyData thumb_func 0x80e726c thumb_func 0x80e7274 thumb_func 0x80e72fc thumb_func 0x80e7324 -thumb_func 0x80e7330 +thumb_func 0x80e7330 ReceiveDaycareMailData thumb_func 0x80e7750 ReceiveGiftItem thumb_func 0x80e77e0 Task_DoRecordMixing thumb_func 0x80e78f8 @@ -7786,12 +7910,12 @@ thumb_func 0x80e80b4 thumb_func 0x80e810c thumb_func 0x80e8194 ReceiveRankingHallRecords thumb_func 0x80e81e0 -thumb_func 0x80e823c +thumb_func 0x80e823c SanitizeEmeraldBattleTowerRecord thumb_func 0x80e8290 -thumb_func 0x80e82dc +thumb_func 0x80e82dc SanitizeRubyBattleTowerRecord thumb_func 0x80e82f4 thumb_func 0x80e8320 -thumb_func 0x80e84a4 +thumb_func 0x80e84a4 SanitizeDayCareMailForRuby thumb_func 0x80e85f4 thumb_func 0x80e8688 thumb_func 0x80e8878 @@ -7810,11 +7934,12 @@ thumb_func 0x80e9284 thumb_func 0x80e9410 thumb_func 0x80e94b8 thumb_func 0x80e9560 -thumb_func 0x80e96a8 PutFirstMemBlockHeader +thumb_func 0x80e96a8 thumb_func 0x80e96c8 thumb_func 0x80e96dc thumb_func 0x80e9734 -thumb_func 0x80e9750 RemoveTrainerHillRecordsWindow +thumb_func 0x80e9750 +# secret_base.s thumb_func 0x80e977c ClearSecretBase thumb_func 0x80e97b4 ClearSecretBases thumb_func 0x80e97e4 SetCurSecretBaseId @@ -7834,21 +7959,21 @@ thumb_func 0x80e9d28 SecretBaseMapPopupEnabled thumb_func 0x80e9d54 EnterNewlyCreatedSecretBase_WaitFadeIn thumb_func 0x80e9d94 EnterNewlyCreatedSecretBase_StartFadeIn thumb_func 0x80e9df8 Task_EnterNewlyCreatedSecretBase -thumb_func 0x80e9e84 +thumb_func 0x80e9e84 EnterNewlyCreatedSecretBase thumb_func 0x80e9ea0 CurMapIsSecretBase -thumb_func 0x80e9ec4 +thumb_func 0x80e9ec4 InitSecretBaseAppearance thumb_func 0x80e9fd4 InitSecretBaseDecorationSprites thumb_func 0x80ea218 HideSecretBaseDecorationSprites thumb_func 0x80ea274 SetSecretBaseOwnerGfxId thumb_func 0x80ea2a8 SetCurSecretBaseIdFromPosition -thumb_func 0x80ea308 FldEffPoison_Start +thumb_func 0x80ea308 WarpIntoSecretBase thumb_func 0x80ea320 TrySetCurSecretBase thumb_func 0x80ea344 Task_WarpOutOfSecretBase -thumb_func 0x80ea3c8 +thumb_func 0x80ea3c8 WarpOutOfSecretBase thumb_func 0x80ea3e4 IsCurSecretBaseOwnedByAnotherPlayer -thumb_func 0x80ea420 -thumb_func 0x80ea46c -thumb_func 0x80ea48c +thumb_func 0x80ea420 GetSecretBaseMapName +thumb_func 0x80ea46c RegistryMenu_OnCursorMove +thumb_func 0x80ea48c DeleteRegistry_Yes thumb_func 0x80ea4d8 IsSecretBaseRegistered thumb_func 0x80ea50c GetAverageEVs thumb_func 0x80ea574 SetPlayerSecretBaseParty @@ -7859,23 +7984,23 @@ thumb_func 0x80ea7d0 MoveOutOfSecretBaseFromOutside thumb_func 0x80ea808 GetNumRegisteredSecretBases thumb_func 0x80ea83c GetCurSecretBaseRegistrationValidity thumb_func 0x80ea88c ToggleCurSecretBaseRegistry -thumb_func 0x80ea8d4 -thumb_func 0x80ea8e8 +thumb_func 0x80ea8d4 ShowSecretBaseDecorationMenu +thumb_func 0x80ea8e8 ShowSecretBaseRegistryMenu thumb_func 0x80ea8fc Task_ShowSecretBaseRegistryMenu thumb_func 0x80ea98c BuildRegistryMenuItems thumb_func 0x80eaa4c thumb_func 0x80eaa60 FinalizeRegistryMenu thumb_func 0x80eaaa4 AddRegistryMenuScrollArrows thumb_func 0x80eaaf0 HandleRegistryMenuInput -thumb_func 0x80eab80 -thumb_func 0x80eabf8 +thumb_func 0x80eab80 ShowRegistryMenuActions +thumb_func 0x80eabf8 HandleRegistryMenuActionsInput thumb_func 0x80eac44 ShowRegistryMenuDeleteConfirmation -thumb_func 0x80eacb4 +thumb_func 0x80eacb4 ShowRegistryMenuDeleteYesNo thumb_func 0x80eacd4 DeleteRegistry_Yes_Callback thumb_func 0x80ead68 thumb_func 0x80ead84 DeleteRegistry_No thumb_func 0x80eadd4 ReturnToMainRegistryMenu -thumb_func 0x80eae18 EventObjectInteractionPlantBerryTree +thumb_func 0x80eae18 GoToSecretBasePCMainMenu thumb_func 0x80eae54 GetSecretBaseOwnerType thumb_func 0x80eae98 GetSecretBaseTrainerLoseText thumb_func 0x80eaf2c PrepSecretBaseBattleFlags @@ -7901,19 +8026,20 @@ thumb_func 0x80ebaa4 thumb_func 0x80ebae0 thumb_func 0x80ebb64 ReceiveSecretBasesData thumb_func 0x80ebd2c ClearJapaneseSecretBases -thumb_func 0x80ebd4c EventObjectInteractionRemoveBerryTree +thumb_func 0x80ebd4c thumb_func 0x80ebdb8 thumb_func 0x80ebe30 thumb_func 0x80ebe68 thumb_func 0x80ebea0 thumb_func 0x80ebf08 -thumb_func 0x80ebf70 -thumb_func 0x80ebfd8 +thumb_func 0x80ebf70 CopyCurSecretBaseOwnerName_StrVar1 +thumb_func 0x80ebfd8 GetSecretBaseName thumb_func 0x80ec038 SetSecretBaseSecretsTvFlags_Poster -thumb_func 0x80ec10c +thumb_func 0x80ec10c SetSecretBaseSecretsTvFlags_MiscFurnature thumb_func 0x80ec580 SetSecretBaseSecretsTvFlags_LargeDecorationSpot thumb_func 0x80ec6c8 SetSecretBaseSecretsTvFlags_SmallDecorationSpot thumb_func 0x80eca1c SetSecretBaseSecretsTvFlags_SandOrnament +# tv.s thumb_func 0x80eca80 ClearTVShowData thumb_func 0x80ecadc special_0x44 thumb_func 0x80ecb94 FindAnyTVShowOnTheAir @@ -7923,7 +8049,7 @@ thumb_func 0x80eccd0 TurnOffTVScreen thumb_func 0x80eccec TurnOnTVScreen thumb_func 0x80ecd08 special_0x45 thumb_func 0x80ecd2c FindFirstActiveTVShowThatIsNotAMassOutbreak -thumb_func 0x80ecd74 +thumb_func 0x80ecd74 special_0x4a thumb_func 0x80ecdbc ResetGabbyAndTy thumb_func 0x80ecebc GabbyAndTyBeforeInterview thumb_func 0x80ecfe8 GabbyAndTyAfterInterview @@ -7935,22 +8061,22 @@ thumb_func 0x80ed12c GabbyAndTyGetLastBattleTrivia thumb_func 0x80ed178 GabbyAndTySetScriptVarsToEventObjectLocalIds thumb_func 0x80ed25c InterviewAfter thumb_func 0x80ed2c8 PutPokemonTodayCaughtOnAir -thumb_func 0x80ed438 +thumb_func 0x80ed438 UpdateWorldOfMastersAndPutItOnTheAir thumb_func 0x80ed490 PutPokemonTodayFailedOnTheAir thumb_func 0x80ed57c tv_store_id_3x thumb_func 0x80ed5a4 tv_store_id_2x thumb_func 0x80ed5cc InterviewAfter_ContestLiveUpdates -thumb_func 0x80ed694 +thumb_func 0x80ed694 PutBattleUpdateOnTheAir thumb_func 0x80ed784 Put3CheersForPokeblocksOnTheAir -thumb_func 0x80ed870 +thumb_func 0x80ed870 PutFanClubSpecialOnTheAir thumb_func 0x80ed900 ContestLiveUpdates_BeforeInterview_1 thumb_func 0x80ed950 ContestLiveUpdates_BeforeInterview_2 thumb_func 0x80ed990 ContestLiveUpdates_BeforeInterview_3 thumb_func 0x80ed9d0 ContestLiveUpdates_BeforeInterview_4 -thumb_func 0x80eda10 +thumb_func 0x80eda10 ContestLiveUpdates_BeforeInterview_5 thumb_func 0x80edab0 InterviewAfter_BravoTrainerPokemonProfile thumb_func 0x80edb90 BravoTrainerPokemonProfile_BeforeInterview1 -thumb_func 0x80edbe4 +thumb_func 0x80edbe4 BravoTrainerPokemonProfile_BeforeInterview2 thumb_func 0x80edcac InterviewAfter_BravoTrainerBattleTowerProfile thumb_func 0x80edd80 SaveRecordedItemPurchasesForTVShow thumb_func 0x80ede68 PutNameRaterShowOnTheAir @@ -7958,8 +8084,8 @@ thumb_func 0x80edf64 StartMassOutbreak thumb_func 0x80ee010 PutLilycoveContestLadyShowOnTheAir thumb_func 0x80ee07c InterviewAfter_FanClubLetter thumb_func 0x80ee0ec InterviewAfter_RecentHappenings -thumb_func 0x80ee144 -thumb_func 0x80ee234 nullsub_14 +thumb_func 0x80ee144 InterviewAfter_PkmnFanClubOpinions +thumb_func 0x80ee234 InterviewAfter_DummyShow4 thumb_func 0x80ee238 thumb_func 0x80ee328 EndMassOutbreak thumb_func 0x80ee3a8 UpdateTVShowsPerDay @@ -7967,7 +8093,7 @@ thumb_func 0x80ee3d4 thumb_func 0x80ee444 UpdateMassOutbreakTimeLeft thumb_func 0x80ee470 thumb_func 0x80ee4c8 PutFishingAdviceShowOnTheAir -thumb_func 0x80ee55c +thumb_func 0x80ee55c SetPokemonAnglerSpecies thumb_func 0x80ee568 thumb_func 0x80ee5a0 thumb_func 0x80ee664 @@ -8020,11 +8146,11 @@ thumb_func 0x80eff10 thumb_func 0x80eff70 HasMixableShowAlreadyBeenSpawnedWithPlayerID thumb_func 0x80f0004 TV_SortPurchasesByQuantity thumb_func 0x80f0054 FindActiveBroadcastByShowType_SetScriptResult -thumb_func 0x80f00bc +thumb_func 0x80f00bc InterviewBefore thumb_func 0x80f0150 InterviewBefore_FanClubLetter thumb_func 0x80f01c8 InterviewBefore_RecentHappenings thumb_func 0x80f0208 InterviewBefore_PkmnFanClubOpinions -thumb_func 0x80f02a0 +thumb_func 0x80f02a0 InterviewBefore_Dummy thumb_func 0x80f02ac InterviewBefore_NameRater thumb_func 0x80f02b8 InterviewBefore_BravoTrainerPkmnProfile thumb_func 0x80f02f8 InterviewBefore_ContestLiveUpdates @@ -8043,7 +8169,7 @@ thumb_func 0x80f05f8 FindEmptyTVSlotBeyondFirstFiveShowsOfArray thumb_func 0x80f0628 TV_BernoulliTrial thumb_func 0x80f0648 TV_FanClubLetter_RandomWordToStringVar3 thumb_func 0x80f0694 TV_GetNicknameSumMod8 -thumb_func 0x80f06cc +thumb_func 0x80f06cc TV_GetNicknameSubstring thumb_func 0x80f0820 TV_IsScriptShowKindAlreadyInQueue thumb_func 0x80f0864 TV_PutNameRaterShowOnTheAirIfNicknameChanged thumb_func 0x80f08a8 ChangePokemonNickname @@ -8057,7 +8183,7 @@ thumb_func 0x80f0aec GetPlayerIDAsU32 thumb_func 0x80f0b0c CheckForBigMovieOrEmergencyNewsOnTV thumb_func 0x80f0b70 GetMomOrDadStringForTVMessage thumb_func 0x80f0c84 -thumb_func 0x80f0cb4 +thumb_func 0x80f0cb4 ReceiveTvShowsData thumb_func 0x80f0e34 thumb_func 0x80f0f78 thumb_func 0x80f105c @@ -8076,47 +8202,48 @@ thumb_func 0x80f1934 thumb_func 0x80f1960 thumb_func 0x80f19a8 thumb_func 0x80f19c8 -thumb_func 0x80f1a00 +thumb_func 0x80f1a00 TVShowGetFlagCount thumb_func 0x80f1a40 thumb_func 0x80f1ce4 thumb_func 0x80f1d28 DoTVShow -thumb_func 0x80f1ed8 +thumb_func 0x80f1ed8 DoTVShowBravoTrainerPokemonProfile thumb_func 0x80f2164 DoTVShowBravoTrainerBattleTower thumb_func 0x80f23ec DoTVShowTodaysSmartShopper thumb_func 0x80f2620 DoTVShowTheNameRaterShow thumb_func 0x80f28fc DoTVShowPokemonTodaySuccessfulCapture thumb_func 0x80f2b50 DoTVShowPokemonTodayFailedCapture thumb_func 0x80f2cb8 DoTVShowPokemonFanClubLetter -thumb_func 0x80f2ee8 +thumb_func 0x80f2ee8 DoTVShowRecentHappenings thumb_func 0x80f3080 DoTVShowPokemonFanClubOpinions -thumb_func 0x80f3174 nullsub_15 +thumb_func 0x80f3174 DoTVShowDummiedOut thumb_func 0x80f3178 DoTVShowPokemonNewsMassOutbreak -thumb_func 0x80f31e8 -thumb_func 0x80f39cc -thumb_func 0x80f3c00 -thumb_func 0x80f3eac +thumb_func 0x80f31e8 DoTVShowPokemonContestLiveUpdates +thumb_func 0x80f39cc DoTVShowPokemonBattleUpdate +thumb_func 0x80f3c00 DoTVShow3CheersForPokeblocks +thumb_func 0x80f3eac DoTVShowInSearchOfTrainers thumb_func 0x80f40a4 DoTVShowPokemonAngler thumb_func 0x80f4180 DoTVShowTheWorldOfMasters -thumb_func 0x80f4260 +thumb_func 0x80f4260 DoTVShowTodaysRivalTrainer thumb_func 0x80f4470 DoTVShowDewfordTrendWatcherNetwork thumb_func 0x80f45e0 DoTVShowHoennTreasureInvestigators thumb_func 0x80f46e0 DoTVShowFindThatGamer -thumb_func 0x80f488c +thumb_func 0x80f488c DoTVShowBreakingNewsTV thumb_func 0x80f4bbc DoTVShowSecretBaseVisit thumb_func 0x80f4e0c DoTVShowPokemonLotteryWinnerFlashReport -thumb_func 0x80f4ea0 -thumb_func 0x80f50ac -thumb_func 0x80f51e0 -thumb_func 0x80f537c -thumb_func 0x80f55b0 +thumb_func 0x80f4ea0 DoTVShowThePokemonBattleSeminar +thumb_func 0x80f50ac DoTVShowTrainerFanClubSpecial +thumb_func 0x80f51e0 DoTVShowTrainerFanClub +thumb_func 0x80f537c DoTVShowSpotTheCuties +thumb_func 0x80f55b0 DoTVShowPokemonNewsBattleFrontier thumb_func 0x80f5858 DoTVShowWhatsNo1InHoennToday -thumb_func 0x80f59a4 TVShowGetFlagCount +thumb_func 0x80f59a4 thumb_func 0x80f59d0 SecretBaseSecrets_GetStateForFlagNumber -thumb_func 0x80f5a10 +thumb_func 0x80f5a10 DoTVShowSecretBaseSecrets thumb_func 0x80f5d54 DoTVShowSafariFanClub thumb_func 0x80f5ed0 DoTVShowPokemonContestLiveUpdates2 thumb_func 0x80f5f74 TVShowDone -thumb_func 0x80f5fb0 +thumb_func 0x80f5fb0 ResetTVShowState +# contest_link_80F57C4.s thumb_func 0x80f5fbc thumb_func 0x80f6114 thumb_func 0x80f626c @@ -8143,11 +8270,11 @@ thumb_func 0x80f70d8 thumb_func 0x80f7114 thumb_func 0x80f71dc thumb_func 0x80f7288 LoadAllContestMonIcons -thumb_func 0x80f72c0 HealStatusConditions +thumb_func 0x80f72c0 thumb_func 0x80f730c thumb_func 0x80f739c thumb_func 0x80f760c -thumb_func 0x80f76e8 SpeciesToMailSpecies +thumb_func 0x80f76e8 thumb_func 0x80f7708 thumb_func 0x80f7760 thumb_func 0x80f77ac @@ -8156,7 +8283,7 @@ thumb_func 0x80f7848 thumb_func 0x80f7880 thumb_func 0x80f78e8 thumb_func 0x80f79b8 -thumb_func 0x80f7a3c RecordedBattle_SaveParties +thumb_func 0x80f7a3c thumb_func 0x80f7ba0 thumb_func 0x80f7bf4 thumb_func 0x80f7c6c @@ -8186,7 +8313,7 @@ thumb_func 0x80f8bd4 thumb_func 0x80f8c14 thumb_func 0x80f8c54 thumb_func 0x80f8c64 -thumb_func 0x80f8c90 WarpIntoSecretBase +thumb_func 0x80f8c90 thumb_func 0x80f8cbc thumb_func 0x80f8cdc thumb_func 0x80f8d08 @@ -8199,9 +8326,10 @@ thumb_func 0x80f8e24 thumb_func 0x80f8e40 thumb_func 0x80f8f3c thumb_func 0x80f8f64 -thumb_func 0x80f8f98 ReceiveOldManData +thumb_func 0x80f8f98 thumb_func 0x80f901c thumb_func 0x80f9044 +# script_pokemon_util_80F87D8.s thumb_func 0x80f9068 SetContestTrainerGfxIds thumb_func 0x80f90a4 thumb_func 0x80f90e0 @@ -8238,30 +8366,32 @@ thumb_func 0x80f9c00 thumb_func 0x80f9c30 CreateScriptedWildMon thumb_func 0x80f9c90 ScriptSetMonMoveSlot thumb_func 0x80f9cc8 ChooseHalfPartyForBattle -thumb_func 0x80f9cf0 +thumb_func 0x80f9cf0 CB2_ReturnFromChooseHalfParty thumb_func 0x80f9d20 thumb_func 0x80f9d48 thumb_func 0x80f9d78 ReducePlayerPartyToSelectedMons -thumb_func 0x80f9df8 +# field_poison.s +thumb_func 0x80f9df8 IsMonValidSpecies thumb_func 0x80f9e1c AllMonsFainted thumb_func 0x80f9e50 FaintFromFieldPoison thumb_func 0x80f9e9c MonFaintedFromPoison thumb_func 0x80f9ee4 Task_WhiteOut -thumb_func 0x80f9fbc +thumb_func 0x80f9fbc ExecuteWhiteOut thumb_func 0x80f9fd4 DoPoisonFieldEffect -thumb_func 0x80fa058 GetMonSizeHash -thumb_func 0x80fa0fc TranslateBigMonSizeTableIndex -thumb_func 0x80fa12c GetMonSize +thumb_func 0x80fa058 +thumb_func 0x80fa0fc +thumb_func 0x80fa12c thumb_func 0x80fa1a0 -thumb_func 0x80fa1f0 CompareMonSize -thumb_func 0x80fa280 GetMonSizeRecordInfo +thumb_func 0x80fa1f0 +thumb_func 0x80fa280 thumb_func 0x80fa2ec -thumb_func 0x80fa300 GetSeedotSizeRecordInfo -thumb_func 0x80fa31c CompareSeedotSize +thumb_func 0x80fa300 +thumb_func 0x80fa31c thumb_func 0x80fa344 -thumb_func 0x80fa358 GetLotadSizeRecordInfo -thumb_func 0x80fa374 CompareLotadSize -thumb_func 0x80fa3a0 GiveGiftRibbonToParty +thumb_func 0x80fa358 +thumb_func 0x80fa374 +thumb_func 0x80fa3a0 +# fldeff_misc.s thumb_func 0x80fa43c thumb_func 0x80fa464 thumb_func 0x80fa48c @@ -8272,26 +8402,26 @@ thumb_func 0x80fa66c thumb_func 0x80fa7cc SetCurrentSecretBase thumb_func 0x80fa7e8 AdjustSecretPowerSpritePixelOffsets thumb_func 0x80fa874 SetUpFieldMove_SecretPower -thumb_func 0x80fa94c -thumb_func 0x80fa96c +thumb_func 0x80fa94c FieldCallback_SecretBaseCave +thumb_func 0x80fa96c FldEff_UseSecretPowerCave thumb_func 0x80fa998 StartSecretBaseCaveFieldEffect thumb_func 0x80fa9ac FldEff_SecretPowerCave -thumb_func 0x80fa9fc -thumb_func 0x80faa18 +thumb_func 0x80fa9fc CaveEntranceSpriteCallback1 +thumb_func 0x80faa18 ShrubEntranceSpriteCallback2 thumb_func 0x80faa48 CaveEntranceSpriteCallbackEnd -thumb_func 0x80faa58 -thumb_func 0x80faa78 +thumb_func 0x80faa58 FieldCallback_SecretBaseShrub +thumb_func 0x80faa78 FldEff_UseSecretPowerShrub thumb_func 0x80faaa4 StartSecretBaseTreeFieldEffect thumb_func 0x80faab8 FldEff_SecretPowerTree thumb_func 0x80fab48 TreeEntranceSpriteCallback1 thumb_func 0x80fab74 TreeEntranceSpriteCallback2 thumb_func 0x80fabac TreeEntranceSpriteCallbackEnd -thumb_func 0x80fabbc -thumb_func 0x80fabdc +thumb_func 0x80fabbc FieldCallback_SecretBaseTree +thumb_func 0x80fabdc FldEff_UseSecretPowerTree thumb_func 0x80fac08 StartSecretBaseShrubFieldEffect -thumb_func 0x80fac1c +thumb_func 0x80fac1c FldEff_SecretPowerShrub thumb_func 0x80fac6c ShrubEntranceSpriteCallback1 -thumb_func 0x80fac88 +thumb_func 0x80fac88 CaveEntranceSpriteCallback2 thumb_func 0x80facb8 ShrubEntranceSpriteCallbackEnd thumb_func 0x80facc8 FldEff_SecretBasePCTurnOn thumb_func 0x80fad10 Task_SecretBasePCTurnOn @@ -8299,8 +8429,8 @@ thumb_func 0x80fadec DoSecretBasePCTurnOffEffect thumb_func 0x80fae54 PopSecretBaseBalloon thumb_func 0x80fae9c Task_PopSecretBaseBalloon thumb_func 0x80faf1c DoBalloonSoundEffect -thumb_func 0x80faf6c -thumb_func 0x80faf70 nullsub_69 +thumb_func 0x80faf6c FldEff_NopA700 +thumb_func 0x80faf70 FldEff_NopA6FC thumb_func 0x80faf74 DoSecretBaseBreakableDoorEffect thumb_func 0x80fafc4 Task_ShatterSecretBaseBreakableDoor thumb_func 0x80fb004 ShatterSecretBaseBreakableDoor @@ -8311,24 +8441,25 @@ thumb_func 0x80fb240 DoSecretBaseGlitterMatSparkle thumb_func 0x80fb2ec FldEff_SandPillar thumb_func 0x80fb414 SpriteCB_SandPillar_0 thumb_func 0x80fb494 SpriteCB_SandPillar_1 -thumb_func 0x80fb4d8 +thumb_func 0x80fb4d8 SpriteCB_SandPillar_2 thumb_func 0x80fb4e8 GetShieldToyTVDecorationInfo thumb_func 0x80fb654 thumb_func 0x80fb6a8 Task_FieldPoisonEffect -thumb_func 0x80fb718 +thumb_func 0x80fb718 FldEffPoison_Start thumb_func 0x80fb730 -thumb_func 0x80fb744 +thumb_func 0x80fb744 Task_WateringBerryTreeAnim_0 thumb_func 0x80fb760 Task_WateringBerryTreeAnim_1 thumb_func 0x80fb7d4 Task_WateringBerryTreeAnim_2 -thumb_func 0x80fb844 AnimBonemerangProjectileEnd +thumb_func 0x80fb844 Task_WateringBerryTreeAnim_3 thumb_func 0x80fb868 DoWateringBerryTreeAnim thumb_func 0x80fb87c CreateRecordMixingSprite thumb_func 0x80fb8e4 DestroyRecordMixingSprite -thumb_func 0x80fb920 +# field_special_scene.s +thumb_func 0x80fb920 GetTruckCameraBobbingY thumb_func 0x80fb94c GetTruckBoxMovement thumb_func 0x80fb968 Task_Truck1 thumb_func 0x80fba1c Task_Truck2 -thumb_func 0x80fbb30 +thumb_func 0x80fbb30 Task_Truck3 thumb_func 0x80fbbdc Task_HandleTruckSequence thumb_func 0x80fbd50 ExecuteTruckSequence thumb_func 0x80fbdb0 EndTruckSequence @@ -8337,6 +8468,7 @@ thumb_func 0x80fbe58 Task_HandlePorthole thumb_func 0x80fbf5c thumb_func 0x80fbfd8 thumb_func 0x80fc014 +# rotating_gate.s thumb_func 0x80fc058 GetCurrentMapRotatingGatePuzzleType thumb_func 0x80fc088 RotatingGate_ResetAllGateOrientations thumb_func 0x80fc0c4 RotatingGate_GetGateOrientation @@ -8347,7 +8479,7 @@ thumb_func 0x80fc198 RotatingGate_CreateGatesWithinViewport thumb_func 0x80fc26c RotatingGate_CreateGate thumb_func 0x80fc354 SpriteCallback_RotatingGate thumb_func 0x80fc3d4 RotatingGate_HideGatesOutsideViewport -thumb_func 0x80fc470 +thumb_func 0x80fc470 LoadRotatingGatePics thumb_func 0x80fc480 RotatingGate_DestroyGatesOutsideViewport thumb_func 0x80fc54c RotatingGate_CanRotate thumb_func 0x80fc624 RotatingGate_HasArm @@ -8358,13 +8490,14 @@ thumb_func 0x80fc718 RotatingGatePuzzleCameraUpdate thumb_func 0x80fc740 RotatingGate_InitPuzzleAndGraphics thumb_func 0x80fc760 CheckForRotatingGatePuzzleCollision thumb_func 0x80fc844 CheckForRotatingGatePuzzleCollisionWithoutAnimation -thumb_func 0x80fc910 -thumb_func 0x80fc924 -thumb_func 0x80fc934 +# safari_zone.s +thumb_func 0x80fc910 GetSafariZoneFlag +thumb_func 0x80fc924 ResetSafariZoneFlag +thumb_func 0x80fc934 SafariZoneRetirePrompt thumb_func 0x80fc944 EnterSafariMode thumb_func 0x80fc984 ExitSafariMode thumb_func 0x80fc9bc SafariZoneTakeStep -thumb_func 0x80fc9f0 +thumb_func 0x80fc9f0 SetSafariZoneFlag thumb_func 0x80fca00 CB2_EndSafariBattle thumb_func 0x80fca98 ClearPokeblockFeeder thumb_func 0x80fcab4 ClearAllPokeblockFeeders @@ -8375,6 +8508,7 @@ thumb_func 0x80fcc28 SafariZoneGetActivePokeblock thumb_func 0x80fcc58 SafariZoneActivatePokeblockFeeder thumb_func 0x80fccf0 DecrementFeederStepCounters thumb_func 0x80fcd24 GetInFrontFeederPokeblockAndSteps +# contest_link_80FC4F4.s thumb_func 0x80fcd64 thumb_func 0x80fcda0 thumb_func 0x80fcdcc @@ -8382,7 +8516,7 @@ thumb_func 0x80fcdf0 thumb_func 0x80fce30 thumb_func 0x80fce4c thumb_func 0x80fcee0 -thumb_func 0x80fcf2c ContestLiveUpdates_BeforeInterview_5 +thumb_func 0x80fcf2c thumb_func 0x80fd058 thumb_func 0x80fd0e8 thumb_func 0x80fd1ec @@ -8392,6 +8526,7 @@ thumb_func 0x80fd4dc thumb_func 0x80fd69c thumb_func 0x80fd794 thumb_func 0x80fd824 +# item_use.s thumb_func 0x80fd8b4 SetUpItemUseCallback thumb_func 0x80fd930 SetUpItemUseOnFieldCallback thumb_func 0x80fd978 MapPostLoadHook_UseItem @@ -8402,12 +8537,12 @@ thumb_func 0x80fda34 DisplayCannotDismountBikeMessage thumb_func 0x80fda4c CleanUpAfterFailingToUseRegisteredKeyItemOnField thumb_func 0x80fda70 CheckIfItemIsTMHMOrEvolutionStone thumb_func 0x80fdaa8 -thumb_func 0x80fdacc +thumb_func 0x80fdacc ItemUseOutOfBattle_Mail thumb_func 0x80fdaec ItemUseOutOfBattle_Bike -thumb_func 0x80fdbac +thumb_func 0x80fdbac ItemUseOnFieldCB_Bike thumb_func 0x80fdbe8 CanFish thumb_func 0x80fdc7c ItemUseOutOfBattle_Rod -thumb_func 0x80fdcbc +thumb_func 0x80fdcbc ItemUseOnFieldCB_Rod thumb_func 0x80fdce4 ItemUseOutOfBattle_Itemfinder thumb_func 0x80fdd0c ItemUseOnFieldCB_Itemfinder thumb_func 0x80fdd58 @@ -8440,7 +8575,7 @@ thumb_func 0x80fe764 ItemUseOutOfBattle_PPUp thumb_func 0x80fe780 ItemUseOutOfBattle_RareCandy thumb_func 0x80fe79c ItemUseOutOfBattle_TMHM thumb_func 0x80fe7e4 -thumb_func 0x80fe810 +thumb_func 0x80fe810 task08_0809AD8C thumb_func 0x80fe874 thumb_func 0x80fe88c thumb_func 0x80fe8a8 @@ -8449,32 +8584,33 @@ thumb_func 0x80fe974 thumb_func 0x80fe9b4 thumb_func 0x80fea20 thumb_func 0x80fea84 ItemUseOutOfBattle_BlackWhiteFlute -thumb_func 0x80feb0c +thumb_func 0x80feb0c task08_080A1C44 thumb_func 0x80feb28 re_escape_rope thumb_func 0x80feb64 CanUseEscapeRopeOnCurrMap thumb_func 0x80feb84 ItemUseOutOfBattle_EscapeRope thumb_func 0x80febc8 ItemUseOutOfBattle_EvolutionStone thumb_func 0x80febe4 ItemUseInBattle_PokeBall thumb_func 0x80fec58 -thumb_func 0x80fec90 OpponentHandleFaintAnimation +thumb_func 0x80fec90 thumb_func 0x80fed08 ItemUseInBattle_StatIncrease thumb_func 0x80fed9c thumb_func 0x80fede0 ItemUseInBattle_Medicine thumb_func 0x80fedfc thumb_func 0x80fee18 ItemUseInBattle_PPRecovery -thumb_func 0x80fee34 +thumb_func 0x80fee34 ItemUseInBattle_Escape thumb_func 0x80feea0 ItemUseOutOfBattle_EnigmaBerry -thumb_func 0x80fefcc +thumb_func 0x80fefcc ItemUseInBattle_EnigmaBerry thumb_func 0x80ff070 ItemUseOutOfBattle_CannotUse +# battle_anim_effects_1.s thumb_func 0x80ff090 AnimMovePowderParticle thumb_func 0x80ff0e8 AnimMovePowderParticleStep thumb_func 0x80ff130 AnimPowerAbsorptionOrb -thumb_func 0x80ff180 -thumb_func 0x80ff1d8 +thumb_func 0x80ff180 AnimSolarbeamBigOrb +thumb_func 0x80ff1d8 AnimSolarbeamSmallOrb thumb_func 0x80ff234 AnimSolarbeamSmallOrbStep thumb_func 0x80ff2a8 AnimTask_CreateSmallSolarbeamOrbs thumb_func 0x80ff328 AnimAbsorptionOrb -thumb_func 0x80ff378 +thumb_func 0x80ff378 AnimAbsorptionOrbStep thumb_func 0x80ff394 AnimHyperBeamOrb thumb_func 0x80ff44c AnimHyperBeamOrbStep thumb_func 0x80ff498 AnimLeechSeed @@ -8487,7 +8623,7 @@ thumb_func 0x80ff6c8 AnimPetalDanceBigFlower thumb_func 0x80ff71c AnimPetalDanceBigFlowerStep thumb_func 0x80ff794 AnimPetalDanceSmallFlower thumb_func 0x80ff7e8 AnimPetalDanceSmallFlowerStep -thumb_func 0x80ff84c AnimCuttingSlice +thumb_func 0x80ff84c AnimRazorLeafParticle thumb_func 0x80ff894 AnimRazorLeafParticleStep1 thumb_func 0x80ff8e0 AnimRazorLeafParticleStep2 thumb_func 0x80ff944 AnimTranslateLinearSingleSineWave @@ -8533,7 +8669,7 @@ thumb_func 0x810122c thumb_func 0x8101248 thumb_func 0x81012a0 thumb_func 0x81012e4 -thumb_func 0x8101330 +thumb_func 0x8101330 AnimCuttingSlice thumb_func 0x81013d8 thumb_func 0x810151c AnimSliceStep thumb_func 0x8101588 unref_sub_8100D38 @@ -8620,6 +8756,7 @@ thumb_func 0x8103b70 thumb_func 0x8103be0 thumb_func 0x8103c40 thumb_func 0x8103c7c +# battle_anim_effects_2.s thumb_func 0x8103c98 thumb_func 0x8103ce8 thumb_func 0x8103d28 @@ -8631,7 +8768,7 @@ thumb_func 0x8103ed0 thumb_func 0x8103ef0 AnimTask_Withdraw thumb_func 0x8103f2c AnimTask_WithdrawStep thumb_func 0x8104028 Anim_KinesisZapEnergy -thumb_func 0x81040cc +thumb_func 0x81040cc Anim_SwordsDanceBlade thumb_func 0x81040f0 Anim_SwordsDanceBladeStep thumb_func 0x8104118 AnimSonicBoomProjectile thumb_func 0x810421c @@ -8650,25 +8787,25 @@ thumb_func 0x8104a6c thumb_func 0x8104af0 thumb_func 0x8104b54 Anim_RazorWindTornado thumb_func 0x8104bb4 Anim_ViceGripPincer -thumb_func 0x8104c48 +thumb_func 0x8104c48 Anim_ViceGripPincerStep thumb_func 0x8104c64 Anim_GuillotinePincer thumb_func 0x8104d0c Anim_GuillotinePincerStep1 thumb_func 0x8104d80 Anim_GuillotinePincerStep2 -thumb_func 0x8104de4 +thumb_func 0x8104de4 Anim_GuillotinePincerStep3 thumb_func 0x8104e00 AnimTask_GrowAndGreyscale thumb_func 0x8104e64 AnimTask_GrowAndGreyscaleStep thumb_func 0x8104ec4 AnimTask_Minimize thumb_func 0x8104f1c AnimTask_MinimizeStep1 thumb_func 0x8105050 CreateMinimizeSprite thumb_func 0x8105140 ClonedMinizeSprite_Step -thumb_func 0x8105188 +thumb_func 0x8105188 AnimTask_Splash thumb_func 0x81051e8 AnimTask_SplashStep -thumb_func 0x8105304 AnimTask_GrowAndShrink +thumb_func 0x8105304 thumb_func 0x8105340 thumb_func 0x810536c Anim_BreathPuff thumb_func 0x81053fc Anim_AngerMark thumb_func 0x8105488 -thumb_func 0x81054c8 +thumb_func 0x81054c8 AnimTask_GrowAndShrinkStep thumb_func 0x81054f4 thumb_func 0x8105578 thumb_func 0x81056c4 @@ -8717,7 +8854,7 @@ thumb_func 0x8106d48 thumb_func 0x8106e3c thumb_func 0x8106f8c AnimOrbitFast thumb_func 0x8106fec AnimOrbitFastStep -thumb_func 0x81070c8 +thumb_func 0x81070c8 AnimOrbitScatter thumb_func 0x810711c AnimOrbitScatterStep thumb_func 0x8107164 thumb_func 0x8107194 @@ -8741,6 +8878,7 @@ thumb_func 0x810788c thumb_func 0x81078fc thumb_func 0x8107994 AnimTask_IsFuryCutterHitRight thumb_func 0x81079b8 AnimTask_GetFuryCutterHitCount +# water.s thumb_func 0x81079d8 AnimTask_CreateRaindrops thumb_func 0x8107a6c thumb_func 0x8107a78 @@ -8789,6 +8927,7 @@ thumb_func 0x81094a4 thumb_func 0x81094e4 thumb_func 0x810952c thumb_func 0x81095a4 +# fire.s thumb_func 0x8109718 thumb_func 0x8109758 thumb_func 0x810979c @@ -8824,6 +8963,7 @@ thumb_func 0x810a60c thumb_func 0x810a67c thumb_func 0x810a8b0 AnimTask_BlendBackground thumb_func 0x810a8e4 +# electric.s thumb_func 0x810a9f8 thumb_func 0x810aa48 thumb_func 0x810aa64 @@ -8861,9 +9001,10 @@ thumb_func 0x810bd6c thumb_func 0x810bdac thumb_func 0x810be64 thumb_func 0x810bed4 +# ice.s thumb_func 0x810bf14 thumb_func 0x810c098 -thumb_func 0x810c0fc +thumb_func 0x810c0fc AnimIcePunchSwirlingParticle thumb_func 0x810c13c AnimIceBeamParticle thumb_func 0x810c1c4 AnimIceEffectParticle thumb_func 0x810c238 AnimFlickerIceEffectParticle @@ -8889,10 +9030,11 @@ thumb_func 0x810d234 GenerateHailParticle thumb_func 0x810d3a8 AnimHailBegin thumb_func 0x810d48c AnimHailContinue thumb_func 0x810d4d8 InitIceBallAnim -thumb_func 0x810d56c -thumb_func 0x810d59c -thumb_func 0x810d600 +thumb_func 0x810d56c AnimThrowIceBall +thumb_func 0x810d59c InitIceBallParticle +thumb_func 0x810d600 AnimIceBallParticle thumb_func 0x810d64c AnimTask_GetRolloutCounter +# fight.s thumb_func 0x810d67c unc_080B08A0 thumb_func 0x810d6b8 thumb_func 0x810d704 @@ -8911,7 +9053,7 @@ thumb_func 0x810dbb0 AnimStompFootEnd thumb_func 0x810dbcc thumb_func 0x810dc5c thumb_func 0x810dccc -thumb_func 0x810dd44 DaycarePrintMonLvl +thumb_func 0x810dd44 thumb_func 0x810de2c thumb_func 0x810de58 thumb_func 0x810def8 @@ -8924,6 +9066,7 @@ thumb_func 0x810e1d4 thumb_func 0x810e260 thumb_func 0x810e2cc thumb_func 0x810e30c +# poison.s thumb_func 0x810e3fc thumb_func 0x810e460 thumb_func 0x810e47c @@ -8933,6 +9076,7 @@ thumb_func 0x810e574 thumb_func 0x810e5a0 thumb_func 0x810e614 AnimBubbleEffect thumb_func 0x810e67c AnimBubbleEffectStep +# flying.s thumb_func 0x810e6c0 thumb_func 0x810e6e8 thumb_func 0x810e728 @@ -8955,7 +9099,7 @@ thumb_func 0x810f484 thumb_func 0x810f4e4 thumb_func 0x810f578 thumb_func 0x810f5c0 -thumb_func 0x810f620 LinkOpponentHandlePaletteFade +thumb_func 0x810f620 thumb_func 0x810f664 thumb_func 0x810f748 thumb_func 0x810f7f8 @@ -8964,6 +9108,7 @@ thumb_func 0x810f868 thumb_func 0x810f8d4 thumb_func 0x810f990 thumb_func 0x810f9d4 unref_sub_810F184 +# psychic.s thumb_func 0x810fa3c thumb_func 0x810fb90 thumb_func 0x810fc18 @@ -8991,6 +9136,7 @@ thumb_func 0x8110784 thumb_func 0x8110884 thumb_func 0x8110984 thumb_func 0x8110a90 +# bug.s thumb_func 0x8110bb8 thumb_func 0x8110c88 thumb_func 0x8110d34 AnimTranslateWebThread @@ -9001,9 +9147,10 @@ thumb_func 0x8110ecc thumb_func 0x8110ef4 thumb_func 0x8110f50 thumb_func 0x8110f70 AnimTranslateStinger -thumb_func 0x81110a0 +thumb_func 0x81110a0 AnimMissileArc thumb_func 0x811111c AnimMissileArcStep thumb_func 0x81111e4 +# rock.s thumb_func 0x8111240 thumb_func 0x81112c0 thumb_func 0x8111304 @@ -9023,9 +9170,10 @@ thumb_func 0x8111c18 thumb_func 0x8111c68 thumb_func 0x8111c94 thumb_func 0x8111cec -thumb_func 0x8111d3c SafariHandleLoadMonSprite +thumb_func 0x8111d3c AnimTask_GetSeismicTossDamageLevel thumb_func 0x8111d7c thumb_func 0x8111de0 +# ghost.s thumb_func 0x8111e5c thumb_func 0x8111ec4 thumb_func 0x8111f38 @@ -9042,7 +9190,7 @@ thumb_func 0x8112404 thumb_func 0x81124a0 thumb_func 0x81125c8 thumb_func 0x81126a0 -thumb_func 0x81126bc nullsub_701 +thumb_func 0x81126bc thumb_func 0x81126c8 thumb_func 0x811292c thumb_func 0x81129c0 @@ -9063,6 +9211,7 @@ thumb_func 0x81134bc thumb_func 0x8113560 thumb_func 0x81136ec thumb_func 0x81137b0 +# dragon.s thumb_func 0x8113808 thumb_func 0x81138b4 thumb_func 0x8113950 @@ -9074,6 +9223,7 @@ thumb_func 0x8113c38 thumb_func 0x8113d08 thumb_func 0x8113dc4 thumb_func 0x8113e3c +# dark.s thumb_func 0x8113eec thumb_func 0x8113f38 thumb_func 0x8113fac @@ -9100,12 +9250,13 @@ thumb_func 0x8114d48 AnimTask_MetallicShine thumb_func 0x8114f98 thumb_func 0x81150ec AnimTask_SetGreyscaleOrOriginalPal thumb_func 0x81151b0 +# ground.s thumb_func 0x81151e4 AnimBonemerangProjectile thumb_func 0x811524c AnimBonemerangProjectileStep thumb_func 0x81152b0 AnimFissureDirtPlumeParticleStep -thumb_func 0x81152cc +thumb_func 0x81152cc AnimBoneHitProjectile thumb_func 0x8115340 AnimDirtScatter -thumb_func 0x81153d0 +thumb_func 0x81153d0 AnimMudSportDirt thumb_func 0x8115460 AnimMudSportDirtRising thumb_func 0x811549c AnimMudSportDirtFalling thumb_func 0x811550c @@ -9116,7 +9267,7 @@ thumb_func 0x81157a4 thumb_func 0x8115828 thumb_func 0x8115930 thumb_func 0x81159f0 AnimFissureDirtPlumeParticle -thumb_func 0x8115a78 +thumb_func 0x8115a78 AnimBonemerangProjectileEnd thumb_func 0x8115a94 AnimDigDirtMound thumb_func 0x8115b2c thumb_func 0x8115bfc @@ -9125,11 +9276,12 @@ thumb_func 0x8115dd8 thumb_func 0x8115e50 AnimTask_IsPowerOver99 thumb_func 0x8115e78 thumb_func 0x8115f20 +# normal.s thumb_func 0x8115f7c AnimConfusionDuck thumb_func 0x8115fe8 AnimConfusionDuckStep thumb_func 0x811604c AnimSimplePaletteBlend thumb_func 0x811608c UnpackSelectedBattleAnimPalettes -thumb_func 0x81160d4 +thumb_func 0x81160d4 AnimSimplePaletteBlendStep thumb_func 0x81160f4 thumb_func 0x8116148 thumb_func 0x81161d4 @@ -9161,6 +9313,7 @@ thumb_func 0x8116d40 thumb_func 0x8116db0 thumb_func 0x8116df8 thumb_func 0x8116e34 +# battle_anim_utility_funcs.s thumb_func 0x8116e70 thumb_func 0x8116eb4 thumb_func 0x8116fac AnimTask_SetCamouflageBlend @@ -9184,8 +9337,8 @@ thumb_func 0x8117e14 thumb_func 0x8117e60 thumb_func 0x8117eb0 thumb_func 0x8117f28 -thumb_func 0x8117fa4 -thumb_func 0x8117fd0 +thumb_func 0x8117fa4 AnimTask_GetAttackerSide +thumb_func 0x8117fd0 AnimTask_GetTargetSide thumb_func 0x8117ffc AnimTask_GetTargetIsAttackerPartner thumb_func 0x8118034 thumb_func 0x81180a4 @@ -9203,6 +9356,7 @@ thumb_func 0x8118760 thumb_func 0x8118780 thumb_func 0x81187b0 thumb_func 0x8118820 +# battle_intro.s thumb_func 0x811887c SetAnimBgAttribute thumb_func 0x8118990 GetAnimBgAttribute thumb_func 0x8118a24 HandleIntroSlide @@ -9214,14 +9368,15 @@ thumb_func 0x8119310 BattleIntroSlideLink thumb_func 0x81195b8 BattleIntroSlidePartner thumb_func 0x811980c thumb_func 0x81198e4 unref_sub_8119094 +# bike.s thumb_func 0x81199b4 MovePlayerOnBike thumb_func 0x81199ec MovePlayerOnMachBike -thumb_func 0x8119a10 +thumb_func 0x8119a10 AcroBikeTransition_FaceDirection thumb_func 0x8119a1c GetMachBikeTransition thumb_func 0x8119a74 MachBikeTransition_FaceDirection thumb_func 0x8119a88 MachBikeTransition_TurnDirection thumb_func 0x8119ad0 MachBikeTransition_TrySpeedUp -thumb_func 0x8119b94 +thumb_func 0x8119b94 MachBikeTransition_TrySlowDown thumb_func 0x8119c18 MovePlayerOnAcroBike thumb_func 0x8119c44 thumb_func 0x8119c50 CheckMovementInputAcroBike @@ -9260,7 +9415,7 @@ thumb_func 0x811a7a0 Bike_TryAdvanceCyclingRoadCollisions thumb_func 0x811a7c4 CanBikeFaceDirOnMetatile thumb_func 0x811a814 WillPlayerCollideWithCollision thumb_func 0x811a848 IsBikingDisallowedByPlayer -thumb_func 0x811a894 IsMonValidSpecies +thumb_func 0x811a894 player_should_look_direction_be_enforced_upon_movement thumb_func 0x811a8d0 GetOnOffBike thumb_func 0x811a920 BikeClearState thumb_func 0x811a964 Bike_UpdateBikeCounterSpeed @@ -9268,9 +9423,10 @@ thumb_func 0x811a978 Bike_SetBikeStill thumb_func 0x811a988 GetPlayerSpeed thumb_func 0x811a9d8 Bike_HandleBumpySlopeJump thumb_func 0x811aa2c IsRunningDisallowed +# easy_chat.s thumb_func 0x811aa5c DoEasyChatScreen -thumb_func 0x811aac8 -thumb_func 0x811aae0 +thumb_func 0x811aac8 MainCallback_EasyChatScreen +thumb_func 0x811aae0 VBlankCallback_EasyChatScreen thumb_func 0x811aaf4 thumb_func 0x811ab10 thumb_func 0x811ab4c @@ -9287,7 +9443,7 @@ thumb_func 0x811b140 DoQuizQuestionEasyChatScreen thumb_func 0x811b164 DoQuizSetAnswerEasyChatScreen thumb_func 0x811b188 DoQuizSetQuestionEasyChatScreen thumb_func 0x811b1ac EasyChat_AllocateResources -thumb_func 0x811b2d0 +thumb_func 0x811b2d0 EasyChat_FreeResources thumb_func 0x811b2ec thumb_func 0x811b384 thumb_func 0x811b4d4 @@ -9321,11 +9477,11 @@ thumb_func 0x811bd38 thumb_func 0x811be04 thumb_func 0x811be94 thumb_func 0x811bf14 -thumb_func 0x811bf38 AnimTask_GrowAndShrinkStep +thumb_func 0x811bf38 thumb_func 0x811bf64 thumb_func 0x811c098 thumb_func 0x811c0b8 -thumb_func 0x811c0d8 +thumb_func 0x811c0d8 GetFooterIndex thumb_func 0x811c140 thumb_func 0x811c160 thumb_func 0x811c17c @@ -9333,14 +9489,14 @@ thumb_func 0x811c1a4 thumb_func 0x811c1cc thumb_func 0x811c220 thumb_func 0x811c240 FooterHasFourOptions -thumb_func 0x811c260 +thumb_func 0x811c260 GetEasyChatScreenType thumb_func 0x811c26c GetEasyChatScreenFrameId thumb_func 0x811c28c GetTitleText thumb_func 0x811c298 GetEasyChatWordBuffer thumb_func 0x811c2a4 GetNumRows thumb_func 0x811c2b0 GetNumColumns thumb_func 0x811c2bc GetMainCursorColumn -thumb_func 0x811c2c8 +thumb_func 0x811c2c8 GetMainCursorRow thumb_func 0x811c2d4 GetEasyChatInstructionsText thumb_func 0x811c30c GetEasyChatConfirmText thumb_func 0x811c344 @@ -9390,7 +9546,7 @@ thumb_func 0x811d034 thumb_func 0x811d040 thumb_func 0x811d088 thumb_func 0x811d0e4 -thumb_func 0x811d1a4 IsDma3ManagerBusyWithBgCopy_ +thumb_func 0x811d1a4 thumb_func 0x811d250 thumb_func 0x811d310 thumb_func 0x811d3cc @@ -9429,7 +9585,7 @@ thumb_func 0x811e004 thumb_func 0x811e048 thumb_func 0x811e07c thumb_func 0x811e164 -thumb_func 0x811e1c8 VBlankCB_MailRead +thumb_func 0x811e1c8 thumb_func 0x811e1e0 thumb_func 0x811e2b8 thumb_func 0x811e2f0 @@ -9469,7 +9625,7 @@ thumb_func 0x811ee2c thumb_func 0x811ee6c thumb_func 0x811eee0 thumb_func 0x811ef44 -thumb_func 0x811ef74 GetCoolColorFromPersonality +thumb_func 0x811ef74 thumb_func 0x811f044 thumb_func 0x811f088 EasyChat_GetNumWordsInGroup thumb_func 0x811f0c0 @@ -9489,14 +9645,14 @@ thumb_func 0x811f4fc thumb_func 0x811f570 thumb_func 0x811f5d8 thumb_func 0x811f5e8 -thumb_func 0x811f664 +thumb_func 0x811f664 InitEasyChatPhrases thumb_func 0x811f7e8 thumb_func 0x811f814 thumb_func 0x811f830 thumb_func 0x811f908 thumb_func 0x811f914 thumb_func 0x811f93c unref_sub_811F3E0 -thumb_func 0x811f980 +thumb_func 0x811f980 GetEasyChatWordGroupName thumb_func 0x811f990 CopyEasyChatWordPadded thumb_func 0x811f9c8 thumb_func 0x811faa0 @@ -9506,11 +9662,12 @@ thumb_func 0x811fb1c thumb_func 0x811fc10 thumb_func 0x811fc80 thumb_func 0x811fcb8 -thumb_func 0x811fd8c +thumb_func 0x811fd8c GetFooterOptionXOffset thumb_func 0x811fdb4 thumb_func 0x811fde0 InitializeEasyChatWordArray thumb_func 0x811fe10 -thumb_func 0x811fe2c +thumb_func 0x811fe2c unref_sub_811BBF4 +# mon_markings.s thumb_func 0x811fe38 thumb_func 0x811fe80 thumb_func 0x811ffb0 @@ -9518,20 +9675,21 @@ thumb_func 0x811ffc4 thumb_func 0x8120018 thumb_func 0x81200c4 thumb_func 0x81201a0 -thumb_func 0x812045c nullsub_71 -thumb_func 0x8120460 OpponentHandleChosenMonReturnValue +thumb_func 0x812045c TaskDummy7 +thumb_func 0x8120460 thumb_func 0x812049c thumb_func 0x81204b4 thumb_func 0x81204d4 thumb_func 0x81204f4 thumb_func 0x81205a4 +# mauville_old_man.s thumb_func 0x81205c0 SetupBard thumb_func 0x8120618 SetupHipster -thumb_func 0x812063c SafariHandleDrawPartyStatusSummary +thumb_func 0x812063c ResetStorytellerFlag thumb_func 0x8120648 SetupGiddy -thumb_func 0x8120674 +thumb_func 0x8120674 ResetTraderFlag thumb_func 0x8120680 SetMauvilleOldMan -thumb_func 0x81206e8 +thumb_func 0x81206e8 GetCurrentMauvilleOldMan thumb_func 0x81206fc ScrSpecial_GetCurrentMauvilleMan thumb_func 0x8120714 ScrSpecial_HasBardSongBeenChanged thumb_func 0x8120730 ScrSpecial_SaveBardSongLyrics @@ -9543,18 +9701,18 @@ thumb_func 0x812086c ScrSpecial_HipsterTeachWord thumb_func 0x81208a4 ScrSpecial_GiddyShouldTellAnotherTale thumb_func 0x81208dc ScrSpecial_GenerateGiddyLine thumb_func 0x81209bc InitGiddyTaleList -thumb_func 0x8120b08 +thumb_func 0x8120b08 ResetBardFlag thumb_func 0x8120b20 ResetHipsterFlag -thumb_func 0x8120b38 -thumb_func 0x8120b44 +thumb_func 0x8120b38 SetupStoryteller +thumb_func 0x8120b44 SetupTrader thumb_func 0x8120b50 ResetMauvilleOldManFlag thumb_func 0x8120ba0 StartBardSong thumb_func 0x8120bd0 -thumb_func 0x8120bdc -thumb_func 0x8120be8 -thumb_func 0x8120c2c +thumb_func 0x8120bdc BardSong_TextSubPrinter +thumb_func 0x8120be8 ScrSpecial_StorytellerDisplayStory +thumb_func 0x8120c2c Task_BardSong thumb_func 0x8120e18 ScrSpecial_SetMauvilleOldManEventObjGfx -thumb_func 0x8120e2c +thumb_func 0x8120e2c StorytellerDisplayStory thumb_func 0x8120e90 thumb_func 0x8120f54 StorytellerSetup thumb_func 0x8120f9c Storyteller_ResetFlag @@ -9572,26 +9730,28 @@ thumb_func 0x81210f8 StorytellerSetPlayerName thumb_func 0x8121128 StorytellerRecordNewStat thumb_func 0x81211b0 ScrambleStatList thumb_func 0x8121204 StorytellerInitializeRandomStat -thumb_func 0x81212c4 -thumb_func 0x8121320 Task_Dive +thumb_func 0x81212c4 ScrSpecial_StorytellerGetFreeStorySlot +thumb_func 0x8121320 PrintStoryList thumb_func 0x81213ec Task_StoryListMenu thumb_func 0x8121478 ScrSpecial_StorytellerStoryListMenu thumb_func 0x812148c -thumb_func 0x81214a0 +thumb_func 0x81214a0 ScrSpecial_StorytellerInitializeRandomStat thumb_func 0x81214c8 ScrSpecial_StorytellerUpdateStat thumb_func 0x8121514 ScrSpecial_HasStorytellerAlreadyRecorded -thumb_func 0x8121540 -thumb_func 0x8121568 +thumb_func 0x8121540 SanitizeReceivedEmeraldOldMan +# mail.s +thumb_func 0x8121568 ReadMail thumb_func 0x8121688 MailReadBuildGraphics thumb_func 0x8121a60 CB2_InitMailRead thumb_func 0x8121a8c -thumb_func 0x8121b64 LoadSavedMapView -thumb_func 0x8121c60 -thumb_func 0x8121c74 +thumb_func 0x8121b64 +thumb_func 0x8121c60 VBlankCB_MailRead +thumb_func 0x8121c74 CB2_MailRead thumb_func 0x8121c94 thumb_func 0x8121ca0 CB2_WaitForPaletteExitOnKeyPress thumb_func 0x8121cc4 CB2_ExitOnKeyPress thumb_func 0x8121d00 CB2_ExitMailReadFreeVars +# menu_helpers.s thumb_func 0x8121d90 ResetVramOamAndBgCntRegs thumb_func 0x8121e00 ResetAllBgsCoordinates thumb_func 0x8121e58 SetVBlankHBlankCallbacksToNull @@ -9599,7 +9759,7 @@ thumb_func 0x8121e6c DisplayMessageAndContinueTask thumb_func 0x8121f10 RunTextPrintersRetIsActive thumb_func 0x8121f2c Task_ContinueTaskAfterMessagePrints thumb_func 0x8121f58 DoYesNoFuncWithChoice -thumb_func 0x8121f84 +thumb_func 0x8121f84 CreateYesNoMenuWithCallbacks thumb_func 0x8121fe8 Task_CallYesOrNoCallback thumb_func 0x8122040 AdjustQuantityAccordingToDPadInput thumb_func 0x81220dc GetLRKeysState @@ -9612,11 +9772,12 @@ thumb_func 0x81221f8 thumb_func 0x8122218 thumb_func 0x8122268 thumb_func 0x81222a4 -thumb_func 0x8122334 +thumb_func 0x8122334 LoadListMenuArrowsGfx thumb_func 0x8122350 thumb_func 0x81223bc thumb_func 0x8122408 thumb_func 0x8122454 +# dewford_trend.s thumb_func 0x81224e0 InitDewfordTrend thumb_func 0x812258c UpdateDewfordTrendPerDay thumb_func 0x81226e4 @@ -9630,9 +9791,11 @@ thumb_func 0x8122b34 thumb_func 0x8122bbc SB1ContainsWords thumb_func 0x8122bfc IsEasyChatPairEqual thumb_func 0x8122c28 GetEqualEasyChatPairIndex +# heal_location.s thumb_func 0x8122c68 GetHealLocationIndexByMap thumb_func 0x8122ca0 GetHealLocationByMap thumb_func 0x8122cc8 GetHealLocation +# region_map.s thumb_func 0x8122ce8 InitRegionMap thumb_func 0x8122d04 thumb_func 0x8122d94 @@ -9658,13 +9821,13 @@ thumb_func 0x8123d64 get_flagnr_blue_points thumb_func 0x8123ea8 GetRegionMapSectionIdAt thumb_func 0x8123ec0 CorrectSpecialMapSecId_Internal thumb_func 0x8123f10 RegionMap_GetTerraCaveMapSecId -thumb_func 0x8123f3c +thumb_func 0x8123f3c RegionMap_GetMarineCaveCoords thumb_func 0x8123f80 RegionMap_IsPlayerInCave thumb_func 0x8123fa8 CorrectSpecialMapSecId thumb_func 0x8123fbc RegionMap_GetPositionOfCursorWithinMapSection thumb_func 0x8124044 RegionMap_IsMapSecIdInNextRow thumb_func 0x8124094 SpriteCallback_CursorFull -thumb_func 0x81240dc nullsub_70 +thumb_func 0x81240dc SpriteCallback_CursorZoomed thumb_func 0x81240e0 CreateRegionMapCursor thumb_func 0x8124244 FreeRegionMapCursorSprite thumb_func 0x8124274 @@ -9673,7 +9836,7 @@ thumb_func 0x8124294 CreateRegionMapPlayerIcon thumb_func 0x81243bc HideRegionMapPlayerIcon thumb_func 0x81243e8 UnhideRegionMapPlayerIcon thumb_func 0x8124468 RegionMapPlayerIconSpriteCallback_Zoomed -thumb_func 0x81244f8 +thumb_func 0x81244f8 RegionMapPlayerIconSpriteCallback_Full thumb_func 0x8124504 RegionMapPlayerIconSpriteCallback thumb_func 0x8124558 thumb_func 0x8124578 GetMapName @@ -9683,7 +9846,7 @@ thumb_func 0x812463c thumb_func 0x8124664 thumb_func 0x8124674 thumb_func 0x812469c MCB2_FlyMap -thumb_func 0x81248cc CheckLeadMonTough +thumb_func 0x81248cc thumb_func 0x81248e0 thumb_func 0x81248f0 thumb_func 0x8124900 @@ -9694,6 +9857,7 @@ thumb_func 0x8124bcc thumb_func 0x8124ca4 thumb_func 0x8124cfc thumb_func 0x8124d4c +# contest_painting_effects.s thumb_func 0x8124df4 thumb_func 0x8124f14 thumb_func 0x81250a0 @@ -9711,7 +9875,7 @@ thumb_func 0x8125888 thumb_func 0x812593c thumb_func 0x8125b10 ConvertColorToGrayscale thumb_func 0x8125b44 ConvertCoolColor -thumb_func 0x8125b80 +thumb_func 0x8125b80 GetCoolColorFromPersonality thumb_func 0x8125c50 ConvertToBlackOrWhite thumb_func 0x8125c80 thumb_func 0x8125cb0 InvertColor @@ -9733,10 +9897,11 @@ thumb_func 0x81267ac thumb_func 0x8126820 thumb_func 0x81268f0 thumb_func 0x8126924 +# decoration.s thumb_func 0x8126950 InitDecorationContextItems thumb_func 0x81269bc thumb_func 0x81269f8 RemoveDecorationWindow -thumb_func 0x8126a28 +thumb_func 0x8126a28 AddDecorationActionsWindow thumb_func 0x8126a84 InitDecorationActionsWindow thumb_func 0x8126aa0 DoSecretBaseDecorationMenu thumb_func 0x8126af4 DoPlayerRoomDecorationMenu @@ -9744,14 +9909,14 @@ thumb_func 0x8126b48 HandleDecorationActionsMenuInput thumb_func 0x8126bd0 PrintCurMainMenuDescription thumb_func 0x8126c10 DecorationMenuAction_Decorate thumb_func 0x8126c6c DecorationMenuAction_PutAway -thumb_func 0x8126cd8 +thumb_func 0x8126cd8 DecorationMenuAction_Toss thumb_func 0x8126d34 DecorationMenuAction_Cancel thumb_func 0x8126d6c ReturnToDecorationActionsAfterInvalidSelection thumb_func 0x8126d94 SecretBasePC_PrepMenuForSelectingStoredDecors thumb_func 0x8126dc4 -thumb_func 0x8126e1c task_map_chg_seq_0807EC34 -thumb_func 0x8126e78 -thumb_func 0x8126f20 +thumb_func 0x8126e1c +thumb_func 0x8126e78 PrintDecorationCategoryMenuItems +thumb_func 0x8126f20 PrintDecorationCategoryMenuItem thumb_func 0x8127010 ColorMenuItemString thumb_func 0x8127040 HandleDecorationCategoriesMenuInput thumb_func 0x81270a0 SelectDecorationCategory @@ -9769,7 +9934,7 @@ thumb_func 0x8127404 CopyDecorationMenuItemName thumb_func 0x8127430 DecorationItemsMenu_OnCursorMove thumb_func 0x8127450 thumb_func 0x81274b0 AddDecorationItemsScrollIndicators -thumb_func 0x8127504 +thumb_func 0x8127504 RemoveDecorationItemsScrollIndicators thumb_func 0x8127530 thumb_func 0x812754c InitDecorationItemsWindow thumb_func 0x81275cc ShowDecorationItemsWindow @@ -9785,12 +9950,12 @@ thumb_func 0x8127974 IsSelectedDecorInThePC thumb_func 0x81279c4 thumb_func 0x81279e0 thumb_func 0x8127a0c -thumb_func 0x8127a3c SafariHandleSuccessBallThrowAnim +thumb_func 0x8127a3c thumb_func 0x8127a7c thumb_func 0x8127ab4 thumb_func 0x8127b04 GetDecorationElevation thumb_func 0x8127b40 ShowDecorationOnMap_ -thumb_func 0x8127d08 +thumb_func 0x8127d08 ShowDecorationOnMap thumb_func 0x8127dec thumb_func 0x8127f0c thumb_func 0x8127f3c @@ -9829,10 +9994,10 @@ thumb_func 0x81291c8 thumb_func 0x812923c SetDecorSelectionBoxOamAttributes thumb_func 0x81292b0 thumb_func 0x81292c8 -thumb_func 0x8129314 +thumb_func 0x8129314 gpu_pal_decompress_alloc_tag_and_upload thumb_func 0x81293bc AddDecorationIconObjectFromIconTable thumb_func 0x8129480 GetDecorationIconPicOrPalette -thumb_func 0x81294a4 +thumb_func 0x81294a4 AddDecorationIconObjectFromEventObject thumb_func 0x81295b4 AddDecorationIconObject thumb_func 0x81296d4 thumb_func 0x81296f0 @@ -9863,21 +10028,22 @@ thumb_func 0x812a268 thumb_func 0x812a2d0 thumb_func 0x812a340 thumb_func 0x812a378 -thumb_func 0x812a3a8 CB2_PokeblockMenu +thumb_func 0x812a3a8 thumb_func 0x812a3d4 thumb_func 0x812a3e0 thumb_func 0x812a468 thumb_func 0x812a488 +# slot_machine.s thumb_func 0x812a4ec Task_FadeToSlotMachine thumb_func 0x812a550 PlaySlotMachine thumb_func 0x812a598 CB2_SlotMachineSetup -thumb_func 0x812a680 -thumb_func 0x812a698 mevent_srv_new_wcard +thumb_func 0x812a680 CB2_SlotMachineLoop +thumb_func 0x812a698 SlotMachine_VBlankCallback thumb_func 0x812a6e4 PlaySlotMachine_Internal thumb_func 0x812a720 -thumb_func 0x812a75c nullsub_73 +thumb_func 0x812a75c SlotMachineDummyTask thumb_func 0x812a760 SlotMachineSetup_0_0 -thumb_func 0x812a7ac ContestEffect_StartleMonsCuteAppeal +thumb_func 0x812a7ac SlotMachineSetup_6_0 thumb_func 0x812a7cc SlotMachineSetup_1_0 thumb_func 0x812a820 SlotMachineSetup_2_0 thumb_func 0x812a844 SlotMachineSetup_2_1 @@ -9887,7 +10053,7 @@ thumb_func 0x812a9dc SlotMachineSetup_4_0 thumb_func 0x812aa58 SlotMachineSetup_5_0 thumb_func 0x812aa88 SlotMachineSetup_10_0 thumb_func 0x812aaa0 SlotMachineSetupGameplayTasks -thumb_func 0x812aab8 +thumb_func 0x812aab8 GameplayTasks_Slots thumb_func 0x812aad8 RunSlotActions thumb_func 0x812ab14 SlotAction_UnfadeScreen thumb_func 0x812ab48 SlotAction_WaitForUnfade @@ -9895,8 +10061,8 @@ thumb_func 0x812ab70 SlotAction_SetSlotMachineVars thumb_func 0x812abb8 SlotAction3 thumb_func 0x812abd8 SlotAction4 thumb_func 0x812ac08 SlotAction_AwaitPlayerInput -thumb_func 0x812ad04 -thumb_func 0x812ad44 +thumb_func 0x812ad04 SlotAction_PrintYouDontHaveThreeCoins +thumb_func 0x812ad44 SlotAction_ExitMessage_9999Coins thumb_func 0x812ad70 SlotAction_GivingInformation thumb_func 0x812ad90 SlotAction9 thumb_func 0x812ae04 SlotAction10 @@ -9912,10 +10078,10 @@ thumb_func 0x812b118 SlotAction_Loop thumb_func 0x812b140 SlotAction_NoMatches thumb_func 0x812b168 SlotAction_PrintQuitTheGame thumb_func 0x812b1c0 SlotAction_SeeIfPlayerQuits -thumb_func 0x812b224 -thumb_func 0x812b264 +thumb_func 0x812b224 SlotAction_PrintMessage_9999Coins +thumb_func 0x812b264 SlotAction_ExitYouDontHaveThreeCoinsMessage thumb_func 0x812b290 SlotAction_PrintMessage_NoMoreCoins -thumb_func 0x812b2d0 +thumb_func 0x812b2d0 SlotAction_ExitMessage_NoMoreCoins thumb_func 0x812b2fc SlotAction_EndGame thumb_func 0x812b33c SlotAction_FreeDataStructures thumb_func 0x812b4fc DrawLuckyFlags @@ -9934,8 +10100,8 @@ thumb_func 0x812b8e0 CheckMatch_TopAndBottom thumb_func 0x812b9b0 CheckMatch_Diagonals thumb_func 0x812ba7c GetMatchFromSymbolsInRow thumb_func 0x812bacc AwardPayout -thumb_func 0x812baec -thumb_func 0x812bb0c +thumb_func 0x812baec IsFinalTask_RunAwardPayoutActions +thumb_func 0x812bb0c RunAwardPayoutActions thumb_func 0x812bb44 AwardPayoutAction0 thumb_func 0x812bb78 AwardPayoutAction_GivePayoutToPlayer thumb_func 0x812bc30 AwardPayoutAction_FreeTask @@ -9950,21 +10116,21 @@ thumb_func 0x812be6c GameplayTask_StopSlotReel thumb_func 0x812beb4 ReelTasks_SetUnkTaskData thumb_func 0x812beec thumb_func 0x812bf14 IsSlotReelMoving -thumb_func 0x812bf3c -thumb_func 0x812bf74 +thumb_func 0x812bf3c RunSlotReelActions +thumb_func 0x812bf74 SlotReelAction_StayStill thumb_func 0x812bf78 SlotReelAction_Spin thumb_func 0x812bf98 SlotReelAction_DecideWhereToStop thumb_func 0x812c02c SlotReelAction_MoveToStop thumb_func 0x812c0f0 SlotReelAction_OscillatingStop thumb_func 0x812c148 DecideReelTurns_BiasTag_Reel1 -thumb_func 0x812c180 +thumb_func 0x812c180 nullsub_68 thumb_func 0x812c194 AreTagsAtPosition_Reel1 thumb_func 0x812c1d4 AreCherriesOnScreen_Reel1 thumb_func 0x812c228 IsBiasTowardsCherryOr7s thumb_func 0x812c248 DecideReelTurns_BiasTag_Reel1_Bet1 thumb_func 0x812c2a0 DecideReelTurns_BiasTag_Reel1_Bet2or3 thumb_func 0x812c3b0 DecideReelTurns_BiasTag_Reel2 -thumb_func 0x812c3c8 +thumb_func 0x812c3c8 nullsub_69 thumb_func 0x812c3d8 DecideReelTurns_BiasTag_Reel2_Bet1or2 thumb_func 0x812c424 DecideReelTurns_BiasTag_Reel2_Bet3 thumb_func 0x812c4cc DecideReelTurns_BiasTag_Reel3 @@ -9972,16 +10138,16 @@ thumb_func 0x812c510 DecideReelTurns_BiasTag_Reel3_Bet1or2 thumb_func 0x812c56c DecideReelTurns_BiasTag_Reel3_Bet3 thumb_func 0x812c5ec DecideReelTurns_NoBiasTag_Reel1 thumb_func 0x812c618 IsBiasTag777_SwitchColor -thumb_func 0x812c638 -thumb_func 0x812c650 nullsub_741 +thumb_func 0x812c638 DecideReelTurns_NoBiasTag_Reel2 +thumb_func 0x812c650 thumb_func 0x812c65c DecideReelTurns_NoBiasTag_Reel2_Bet1 thumb_func 0x812c6dc DecideReelTurns_NoBiasTag_Reel2_Bet2 thumb_func 0x812c75c DecideReelTurns_NoBiasTag_Reel2_Bet3 thumb_func 0x812c864 AreTagsMixed77 thumb_func 0x812c88c AreTagsMixed777 thumb_func 0x812c8bc TagsDontMatchOrHaveAny7s -thumb_func 0x812c90c -thumb_func 0x812c924 nullsub_75 +thumb_func 0x812c90c DecideReelTurns_NoBiasTag_Reel3 +thumb_func 0x812c924 thumb_func 0x812c930 DecideReelTurns_NoBiasTag_Reel3_Bet1 thumb_func 0x812ca18 DecideReelTurns_NoBiasTag_Reel3_Bet2 thumb_func 0x812cb90 DecideReelTurns_NoBiasTag_Reel3_Bet3 @@ -9991,7 +10157,7 @@ thumb_func 0x812cda8 thumb_func 0x812cdb4 thumb_func 0x812cde8 thumb_func 0x812ce04 -thumb_func 0x812ce3c +thumb_func 0x812ce3c LoadLitTile thumb_func 0x812ce64 thumb_func 0x812ce8c LoadBetTiles thumb_func 0x812cec8 @@ -10008,16 +10174,16 @@ thumb_func 0x812d198 GameplayTask_PikaPower thumb_func 0x812d1b8 DisplayPikaPower thumb_func 0x812d1ec thumb_func 0x812d21c -thumb_func 0x812d240 -thumb_func 0x812d270 nullsub_74 +thumb_func 0x812d240 RunInfoBoxActions +thumb_func 0x812d270 thumb_func 0x812d274 thumb_func 0x812d29c thumb_func 0x812d31c thumb_func 0x812d3a4 ClearTaskDataFields_2orHigher thumb_func 0x812d3c4 thumb_func 0x812d4bc BeginReeltime -thumb_func 0x812d4dc -thumb_func 0x812d4fc +thumb_func 0x812d4dc IsFinalTask_RunReelTimeActions +thumb_func 0x812d4fc RunReeltimeActions thumb_func 0x812d52c ReeltimeAction0 thumb_func 0x812d5a4 ReeltimeAction1 thumb_func 0x812d61c ReeltimeAction2 @@ -10039,7 +10205,7 @@ thumb_func 0x812dbcc ReeltimeAction17 thumb_func 0x812dc18 thumb_func 0x812dc60 thumb_func 0x812dc90 OpenInfoBox -thumb_func 0x812dcc4 +thumb_func 0x812dcc4 IsInfoBoxClosed thumb_func 0x812dce4 thumb_func 0x812dd14 InfoBox_FadeIn thumb_func 0x812dd38 InfoBox_WaitForFade @@ -10049,14 +10215,14 @@ thumb_func 0x812ddd4 InfoBox_AwaitPlayerInput thumb_func 0x812de24 InfoBox_812DE14 thumb_func 0x812de40 InfoBox_812DE30 thumb_func 0x812de58 InfoBox_8104BFC -thumb_func 0x812de8c +thumb_func 0x812de8c InfoBox_FreeTask thumb_func 0x812dea4 thumb_func 0x812def4 thumb_func 0x812df78 thumb_func 0x812dfec thumb_func 0x812e064 thumb_func 0x812e0c0 -thumb_func 0x812e0f0 nullsub_77 +thumb_func 0x812e0f0 thumb_func 0x812e0f4 thumb_func 0x812e164 thumb_func 0x812e1d8 @@ -10083,7 +10249,7 @@ thumb_func 0x812eac0 CreateReelTimeSprite2 thumb_func 0x812eb58 thumb_func 0x812ebbc thumb_func 0x812ebdc -thumb_func 0x812ec30 VBlankCB_ContestPainting +thumb_func 0x812ec30 thumb_func 0x812ec74 thumb_func 0x812ec80 thumb_func 0x812eca4 @@ -10113,13 +10279,13 @@ thumb_func 0x812f480 thumb_func 0x812f524 thumb_func 0x812f5f0 thumb_func 0x812f658 -thumb_func 0x812f790 nullsub_78 +thumb_func 0x812f790 thumb_func 0x812f794 thumb_func 0x812f7a4 thumb_func 0x812f7d0 thumb_func 0x812f7f4 thumb_func 0x812f8b0 -thumb_func 0x812f918 Anim_SwordsDanceBlade +thumb_func 0x812f918 thumb_func 0x812f968 thumb_func 0x812f978 thumb_func 0x812f9a4 LoadSlotMachineWheelOverlay @@ -10127,6 +10293,7 @@ thumb_func 0x812fa9c thumb_func 0x812fb18 thumb_func 0x812fb4c SlotMachineSetup_9_0 thumb_func 0x812fbfc SlotMachineSetup_8_0 +# contest_painting.s thumb_func 0x812fde0 thumb_func 0x812fe24 CB2_ContestPainting thumb_func 0x812fe30 CB2_HoldContestPainting @@ -10134,11 +10301,11 @@ thumb_func 0x812fe44 CB2_QuitContestPainting thumb_func 0x812fe90 ShowContestPainting thumb_func 0x8130000 HoldContestPainting thumb_func 0x81300d0 InitContestPaintingWindow -thumb_func 0x8130144 +thumb_func 0x8130144 PrintContestPaintingCaption thumb_func 0x8130244 InitContestPaintingBg thumb_func 0x8130290 InitContestPaintingVars thumb_func 0x81302d8 UpdateContestPaintingMosaicEffect -thumb_func 0x8130328 SlotMachineSetup_6_0 +thumb_func 0x8130328 VBlankCB_ContestPainting thumb_func 0x8130340 thumb_func 0x81303d8 thumb_func 0x8130488 @@ -10147,9 +10314,10 @@ thumb_func 0x8130724 thumb_func 0x8130790 thumb_func 0x81307b8 thumb_func 0x81308dc -thumb_func 0x8130920 +# battle_ai_script_commands.s +thumb_func 0x8130920 BattleAI_HandleItemUseBeforeAISetup thumb_func 0x81309a4 BattleAI_SetupAIData -thumb_func 0x8130bec +thumb_func 0x8130bec BattleAI_ChooseMoveOrAction thumb_func 0x8130c10 ChooseMoveOrAction_Singles thumb_func 0x8130d28 ChooseMoveOrAction_Doubles thumb_func 0x8130f7c BattleAI_DoAIProcessing @@ -10165,14 +10333,14 @@ thumb_func 0x813122c BattleAICmd_if_random_equal thumb_func 0x813126c BattleAICmd_if_random_not_equal thumb_func 0x81312ac BattleAICmd_score thumb_func 0x81312f0 BattleAICmd_if_hp_less_than -thumb_func 0x8131358 +thumb_func 0x8131358 BattleAICmd_if_hp_more_than thumb_func 0x81313c0 BattleAICmd_if_hp_equal thumb_func 0x8131428 BattleAICmd_if_hp_not_equal thumb_func 0x8131490 BattleAICmd_if_status thumb_func 0x8131504 BattleAICmd_if_not_status thumb_func 0x8131578 BattleAICmd_if_status2 thumb_func 0x81315ec BattleAICmd_if_not_status2 -thumb_func 0x8131660 DisplayBerryPowderVendorMenu +thumb_func 0x8131660 BattleAICmd_if_status3 thumb_func 0x81316d0 BattleAICmd_if_not_status3 thumb_func 0x8131740 BattleAICmd_if_side_affecting thumb_func 0x81317bc BattleAICmd_if_not_side_affecting @@ -10188,7 +10356,7 @@ thumb_func 0x8131a78 BattleAICmd_if_move thumb_func 0x8131abc BattleAICmd_if_not_move thumb_func 0x8131b00 BattleAICmd_if_in_bytes thumb_func 0x8131b68 BattleAICmd_if_not_in_bytes -thumb_func 0x8131bd4 +thumb_func 0x8131bd4 BattleAICmd_if_in_hwords thumb_func 0x8131c40 BattleAICmd_if_not_in_hwords thumb_func 0x8131cb0 BattleAICmd_if_user_has_attacking_move thumb_func 0x8131d20 BattleAICmd_if_user_has_no_attacking_moves @@ -10203,8 +10371,8 @@ thumb_func 0x81321d8 BattleAICmd_if_equal_ thumb_func 0x8132214 BattleAICmd_if_not_equal_ thumb_func 0x8132250 BattleAICmd_if_user_goes thumb_func 0x813229c BattleAICmd_if_user_doesnt_go -thumb_func 0x81322e8 nullsub_23 -thumb_func 0x81322ec nullsub_241 +thumb_func 0x81322e8 BattleAICmd_nullsub_2B +thumb_func 0x81322ec BattleAICmd_nullsub_32 thumb_func 0x81322f0 BattleAICmd_count_usable_party_mons thumb_func 0x81323ec BattleAICmd_get_considered_move thumb_func 0x8132408 BattleAICmd_get_considered_move_effect @@ -10212,8 +10380,8 @@ thumb_func 0x8132434 BattleAICmd_get_ability thumb_func 0x8132550 BattleAICmd_check_ability thumb_func 0x8132648 BattleAICmd_get_highest_type_effectiveness thumb_func 0x8132734 BattleAICmd_if_type_effectiveness -thumb_func 0x8132804 nullsub_25 -thumb_func 0x8132808 nullsub_24 +thumb_func 0x8132804 BattleAICmd_nullsub_33 +thumb_func 0x8132808 BattleAICmd_nullsub_52 thumb_func 0x813280c BattleAICmd_if_status_in_party thumb_func 0x81328ec BattleAICmd_if_status_not_in_party thumb_func 0x81329c8 BattleAICmd_get_weather @@ -10245,14 +10413,14 @@ thumb_func 0x813362c BattleAICmd_get_move_type_from_result thumb_func 0x8133658 BattleAICmd_get_move_power_from_result thumb_func 0x8133684 BattleAICmd_get_move_effect_from_result thumb_func 0x81336b0 BattleAICmd_get_protect_count -thumb_func 0x81336fc nullsub_79 -thumb_func 0x8133700 nullsub_801 -thumb_func 0x8133704 nullsub_81 -thumb_func 0x8133708 nullsub_80 -thumb_func 0x813370c nullsub_83 -thumb_func 0x8133710 nullsub_841 +thumb_func 0x81336fc BattleAICmd_nullsub_53 +thumb_func 0x8133700 BattleAICmd_nullsub_54 +thumb_func 0x8133704 BattleAICmd_nullsub_55 +thumb_func 0x8133708 BattleAICmd_nullsub_56 +thumb_func 0x813370c BattleAICmd_nullsub_57 +thumb_func 0x8133710 BattleAICmd_nullsub_2A thumb_func 0x8133714 BattleAICmd_call -thumb_func 0x8133744 +thumb_func 0x8133744 BattleAICmd_goto thumb_func 0x8133764 BattleAICmd_end thumb_func 0x8133788 BattleAICmd_if_level_cond thumb_func 0x8133860 BattleAICmd_if_target_taunted @@ -10261,22 +10429,24 @@ thumb_func 0x8133900 BattleAICmd_if_target_is_ally thumb_func 0x8133950 BattleAICmd_if_flash_fired thumb_func 0x81339a0 thumb_func 0x81339c4 AIStackPushVar_cursor -thumb_func 0x81339ec +# trader.s +thumb_func 0x81339ec ScrSpecial_TraderMenuGiveDecoration thumb_func 0x8133a2c TraderSetup -thumb_func 0x8133a94 -thumb_func 0x8133aac AnimMudSportDirt -thumb_func 0x8133b9c -thumb_func 0x8133c00 OpponentHandleTrainerSlide +thumb_func 0x8133a94 Trader_ResetFlag +thumb_func 0x8133aac +thumb_func 0x8133b9c ScrSpecial_IsDecorationFull +thumb_func 0x8133c00 Task_HandleGetDecorationMenuInput thumb_func 0x8133c80 ScrSpecial_GetTraderTradedFlag thumb_func 0x8133c9c ScrSpecial_DoesPlayerHaveNoDecorations thumb_func 0x8133cd4 -thumb_func 0x8133d40 -thumb_func 0x8133d54 ResetTrainerHillResults +thumb_func 0x8133d40 CreateAvailableDecorationsMenu +thumb_func 0x8133d54 thumb_func 0x8133dd8 ExitTraderMenu thumb_func 0x8133df4 ScrSpecial_TraderDoDecorationTrade thumb_func 0x8133e78 ScrSpecial_TraderMenuGetDecoration +# starter_choose.s thumb_func 0x8133e94 GetStarterPokemon -thumb_func 0x8133eb0 WallClockVblankCallback +thumb_func 0x8133eb0 VblankCB_StarterChoose thumb_func 0x8133ec4 CB2_ChooseStarter thumb_func 0x8134198 MainCallback2_StarterChoose thumb_func 0x81341b4 Task_StarterChoose1 @@ -10284,8 +10454,8 @@ thumb_func 0x8134214 Task_StarterChoose2 thumb_func 0x81342f8 Task_StarterChoose3 thumb_func 0x8134348 Task_StarterChoose4 thumb_func 0x81343b8 Task_StarterChoose5 -thumb_func 0x8134464 -thumb_func 0x8134480 +thumb_func 0x8134464 Task_StarterChoose6 +thumb_func 0x8134480 CreateStarterPokemonLabel thumb_func 0x813464c thumb_func 0x8134688 Task_MoveStarterChooseCursor thumb_func 0x81346b0 @@ -10293,19 +10463,20 @@ thumb_func 0x81346d8 CreatePokemonFrontSprite thumb_func 0x8134724 thumb_func 0x8134784 thumb_func 0x81347bc StarterPokemonSpriteCallback -thumb_func 0x81347fc +# wallclock.s +thumb_func 0x81347fc WallClockVblankCallback thumb_func 0x8134810 LoadWallClockGraphics thumb_func 0x81349d4 WallClockInit thumb_func 0x8134a3c CB2_StartWallClock thumb_func 0x8134b8c CB2_ViewWallClock -thumb_func 0x8134ce8 TrySetupDiveDownScript -thumb_func 0x8134d04 +thumb_func 0x8134ce8 WallClockMainCallback +thumb_func 0x8134d04 Task_ViewClock1 thumb_func 0x8134d34 Task_SetClock2 thumb_func 0x8134e10 Task_SetClock3 thumb_func 0x8134e84 Task_SetClock4 thumb_func 0x8134ef8 Task_SetClock5 thumb_func 0x8134f3c Task_SetClock6 -thumb_func 0x8134f64 +thumb_func 0x8134f64 Task_SetClock1 thumb_func 0x8134f94 Task_ViewClock2 thumb_func 0x8134fcc Task_ViewClock3 thumb_func 0x8135004 Task_ViewClock4 @@ -10318,6 +10489,7 @@ thumb_func 0x8135200 SpriteCB_MinuteHand thumb_func 0x8135298 SpriteCB_HourHand thumb_func 0x8135330 SpriteCB_AMIndicator thumb_func 0x81353d4 SpriteCB_PMIndicator +# fldeff_rocksmash.s thumb_func 0x8135478 CheckObjectGraphicsInFrontOfPlayer thumb_func 0x81354cc oei_task_add thumb_func 0x81354f0 task08_080C9820 @@ -10328,68 +10500,70 @@ thumb_func 0x81356a8 SetUpFieldMove_RockSmash thumb_func 0x8135718 thumb_func 0x8135738 FldEff_UseRockSmash thumb_func 0x8135768 -thumb_func 0x8135780 SetUpFieldMove_Dig -thumb_func 0x81357b4 hm2_dig -thumb_func 0x81357d4 FldEff_UseDig +thumb_func 0x8135780 +thumb_func 0x81357b4 +thumb_func 0x81357d4 thumb_func 0x8135810 +# pokeblock.spokeblock.s thumb_func 0x8135850 -thumb_func 0x8135944 SummaryScreen_MainCB2 -thumb_func 0x8135958 OpenPokeblockCaseOnFeeder -thumb_func 0x813596c Mailbox_DoRedrawMailboxMenuAfterReturn -thumb_func 0x8135988 VBlankCB_PokeblockMenu -thumb_func 0x813599c CB2_InitPokeblockMenu -thumb_func 0x81359c8 InitPokeblockMenu +thumb_func 0x8135944 +thumb_func 0x8135958 +thumb_func 0x813596c +thumb_func 0x8135988 +thumb_func 0x813599c +thumb_func 0x81359c8 thumb_func 0x8135c2c -thumb_func 0x8135c88 LoadPokeblockMenuGfx +thumb_func 0x8135c88 thumb_func 0x8135d74 thumb_func 0x8135dcc thumb_func 0x8135df8 thumb_func 0x8135e60 thumb_func 0x8135f30 -thumb_func 0x8135fb4 MovePokeblockMenuCursor +thumb_func 0x8135fb4 thumb_func 0x8136010 -thumb_func 0x8136150 HandlePokeblockMenuCursor -thumb_func 0x8136180 CompactPokeblockSlots -thumb_func 0x81361f0 SwapSortPokeblocksInternalData -thumb_func 0x813628c ResetPokeblockScrollPositions -thumb_func 0x813629c SetMenuItemsCountAndMaxShowed +thumb_func 0x8136150 +thumb_func 0x8136180 +thumb_func 0x81361f0 +thumb_func 0x813628c +thumb_func 0x813629c thumb_func 0x8136320 thumb_func 0x8136384 thumb_func 0x81363fc thumb_func 0x8136458 -thumb_func 0x8136484 CreatePokeblockCaseSprite +thumb_func 0x8136484 thumb_func 0x81364b0 thumb_func 0x813652c -thumb_func 0x8136564 Task_FreeDataAndExitPokeblockCase -thumb_func 0x8136608 Task_HandlePokeblockMenuInput -thumb_func 0x813675c Task_HandlePokeblocksSwapInput -thumb_func 0x8136894 HandlePokeblocksSwap +thumb_func 0x8136564 +thumb_func 0x8136608 +thumb_func 0x813675c +thumb_func 0x8136894 thumb_func 0x8136978 -thumb_func 0x8136a50 Task_HandlePokeblockOptionsInput -thumb_func 0x8136ac0 PokeblockAction_UseOnField +thumb_func 0x8136a50 +thumb_func 0x8136ac0 thumb_func 0x8136ae4 -thumb_func 0x8136b10 ReturnToPokeblockCaseOnField -thumb_func 0x8136b24 PokeblockAction_Toss -thumb_func 0x8136bb8 CreateTossPokeblockYesNoMenu -thumb_func 0x8136be8 TossPokeblockChoice_Yes -thumb_func 0x8136c30 HandleErasePokeblock +thumb_func 0x8136b10 +thumb_func 0x8136b24 +thumb_func 0x8136bb8 +thumb_func 0x8136be8 +thumb_func 0x8136c30 thumb_func 0x8136cc4 -thumb_func 0x8136cfc MachBikeTransition_TrySlowDown -thumb_func 0x8136d9c PokeblockAction_UseOnPokeblockFeeder -thumb_func 0x8136e00 PokeblockAction_GiveToContestLady -thumb_func 0x8136e58 PokeblockAction_Cancel -thumb_func 0x8136e90 ClearPokeblock -thumb_func 0x8136ef8 ClearPokeblocks -thumb_func 0x8136f14 GetHighestPokeblocksFlavorLevel -thumb_func 0x8136f4c GetPokeblocksFeel -thumb_func 0x8136f64 GetFirstFreePokeblockSlot -thumb_func 0x8136f9c AddPokeblock -thumb_func 0x8136fd8 TryClearPokeblock -thumb_func 0x813700c GetPokeblockData -thumb_func 0x8137054 PokeblockGetGain -thumb_func 0x81370b4 PokeblockCopyName -thumb_func 0x81370d8 CopyMonFavoritePokeblockName -thumb_func 0x8137124 GetPokeblocksFlavor +thumb_func 0x8136cfc +thumb_func 0x8136d9c +thumb_func 0x8136e00 +thumb_func 0x8136e58 +thumb_func 0x8136e90 +thumb_func 0x8136ef8 +thumb_func 0x8136f14 +thumb_func 0x8136f4c +thumb_func 0x8136f64 +thumb_func 0x8136f9c +thumb_func 0x8136fd8 +thumb_func 0x813700c +thumb_func 0x8137054 +thumb_func 0x81370b4 +thumb_func 0x81370d8 +thumb_func 0x8137124 +# fldeff_flash.s thumb_func 0x813716c SetUpFieldMove_Flash thumb_func 0x81371e8 hm2_flash thumb_func 0x8137224 @@ -10397,7 +10571,7 @@ thumb_func 0x8137244 thumb_func 0x813725c thumb_func 0x8137270 c2_change_map thumb_func 0x8137374 -thumb_func 0x81373d0 +thumb_func 0x81373d0 GetMapPairFadeToType thumb_func 0x8137418 GetMapPairFadeFromType thumb_func 0x8137460 thumb_func 0x8137474 @@ -10405,31 +10579,36 @@ thumb_func 0x8137490 thumb_func 0x8137534 thumb_func 0x813757c thumb_func 0x81375e4 -thumb_func 0x8137618 PartyMenuVBlankCallback +thumb_func 0x8137618 thumb_func 0x813762c thumb_func 0x8137648 thumb_func 0x81376e8 thumb_func 0x813774c +# post_battle_event_funcs.s thumb_func 0x81377a4 GameClear thumb_func 0x81378ec sp0C8_whiteout_maybe +# time_events.s thumb_func 0x8137900 GetMirageRnd thumb_func 0x813792c SetMirageRnd thumb_func 0x8137954 InitMirageRnd thumb_func 0x8137974 UpdateMirageRnd thumb_func 0x81379ac IsMirageIslandPresent -thumb_func 0x81379f8 -thumb_func 0x8137a48 -thumb_func 0x8137a68 +thumb_func 0x81379f8 UpdateShoalTideFlag +thumb_func 0x8137a48 Task_WaitWeather +thumb_func 0x8137a68 WaitWeather thumb_func 0x8137a7c InitBirchState thumb_func 0x8137a90 UpdateBirchState +# birch_pc.s thumb_func 0x8137abc ScriptGetPokedexInfo thumb_func 0x8137b08 GetPokedexRatingText thumb_func 0x8137c80 ShowPokedexRatingMessage -thumb_func 0x8137c98 +# hof_pc.s +thumb_func 0x8137c98 AccessHallOfFamePC thumb_func 0x8137cac ReturnFromHallOfFamePC thumb_func 0x8137ccc ReshowPCMenuAfterHallOfFamePC -thumb_func 0x8137d04 -thumb_func 0x8137d24 +thumb_func 0x8137d04 Task_WaitForPaletteFade +# field_specials.s +thumb_func 0x8137d24 Special_ShowDiploma thumb_func 0x8137d38 Special_ViewWallClock thumb_func 0x8137d5c ResetCyclingRoadChallengeData thumb_func 0x8137d7c Special_BeginCyclingRoadChallenge @@ -10443,11 +10622,11 @@ thumb_func 0x8138000 SetSSTidalFlag thumb_func 0x8138020 ResetSSTidalFlag thumb_func 0x8138030 CountSSTidalStep thumb_func 0x813806c GetSSTidalLocation -thumb_func 0x8138148 +thumb_func 0x8138148 ShouldDoWallyCall thumb_func 0x8138190 ShouldDoWinonaCall thumb_func 0x81381d8 ShouldDoScottCall thumb_func 0x8138220 ShouldDoRoxanneCall -thumb_func 0x8138268 c2_mystery_gift +thumb_func 0x8138268 ShouldDoRivalRayquazaCall thumb_func 0x81382b0 GetLinkPartnerNames thumb_func 0x8138310 SpawnLinkPartnerEventObject thumb_func 0x813849c LoadLinkPartnerEventObjectSpritePalette @@ -10461,65 +10640,65 @@ thumb_func 0x8138b14 PetalburgGymSpecial2 thumb_func 0x8138b30 ShowFieldMessageStringVar4 thumb_func 0x8138b40 StorePlayerCoordsInVars thumb_func 0x8138b60 GetPlayerTrainerIdOnesDigit -thumb_func 0x8138b80 -thumb_func 0x8138bb8 -thumb_func 0x8138bf0 +thumb_func 0x8138b80 GetPlayerBigGuyGirlString +thumb_func 0x8138bb8 GetRivalSonDaughterString +thumb_func 0x8138bf0 GetBattleOutcome thumb_func 0x8138bfc CableCarWarp thumb_func 0x8138c38 SetFlagInVar thumb_func 0x8138c4c GetWeekCount thumb_func 0x8138c74 GetLeadMonFriendshipScore thumb_func 0x8138cf4 CB2_FieldShowRegionMap thumb_func 0x8138d04 FieldShowRegionMap -thumb_func 0x8138d14 -thumb_func 0x8138d58 +thumb_func 0x8138d14 DoLotteryCornerComputerEffect +thumb_func 0x8138d58 Task_PCTurnOnEffect thumb_func 0x8138d80 PCTurnOnEffect_0 thumb_func 0x8138df8 PCTurnOnEffect_1 -thumb_func 0x8138e90 +thumb_func 0x8138e90 DoPCTurnOffEffect thumb_func 0x8138e9c PCTurnOffEffect -thumb_func 0x8138f30 -thumb_func 0x8138f74 +thumb_func 0x8138f30 DoPCTurnOnEffect +thumb_func 0x8138f74 Task_LotteryCornerComputerEffect thumb_func 0x8138f9c LotteryCornerComputerEffect thumb_func 0x813901c EndLotteryCornerComputerEffect -thumb_func 0x8139044 -thumb_func 0x813905c +thumb_func 0x8139044 ResetTrickHouseEndRoomFlag +thumb_func 0x813905c SetTrickHouseEndRoomFlag thumb_func 0x8139074 CheckLeadMonCool thumb_func 0x81390a0 CheckLeadMonBeauty thumb_func 0x81390cc CheckLeadMonCute thumb_func 0x81390f8 CheckLeadMonSmart -thumb_func 0x8139124 +thumb_func 0x8139124 CheckLeadMonTough thumb_func 0x8139150 IsGrassTypeInParty thumb_func 0x81391c8 SpawnCameraObject thumb_func 0x813921c RemoveCameraObject thumb_func 0x8139240 GetPokeblockNameByMonNature thumb_func 0x8139270 GetSecretBaseNearbyMapName thumb_func 0x8139298 GetBestBattleTowerStreak -thumb_func 0x81392a8 +thumb_func 0x81392a8 BufferEReaderTrainerName thumb_func 0x81392b8 GetSlotMachineId thumb_func 0x813931c FoundAbandonedShipRoom1Key thumb_func 0x8139344 FoundAbandonedShipRoom2Key -thumb_func 0x8139368 +thumb_func 0x8139368 FoundAbandonedShipRoom4Key thumb_func 0x8139390 FoundAbandonedShipRoom6Key thumb_func 0x81393b8 LeadMonHasEffortRibbon thumb_func 0x81393e0 GiveLeadMonEffortRibbon thumb_func 0x8139438 Special_AreLeadMonEVsMaxedOut thumb_func 0x813946c TryUpdateRusturfTunnelState -thumb_func 0x81394cc +thumb_func 0x81394cc SetShoalItemFlag thumb_func 0x81394dc PutZigzagoonInPlayerParty thumb_func 0x8139548 IsStarterInParty thumb_func 0x81395a0 ScriptCheckFreePokemonStorageSpace -thumb_func 0x81395b0 +thumb_func 0x81395b0 IsPokerusInParty thumb_func 0x81395d0 thumb_func 0x813962c thumb_func 0x8139690 -thumb_func 0x81396a4 -thumb_func 0x81396b8 +thumb_func 0x81396a4 FoundBlackGlasses +thumb_func 0x81396b8 SetRoute119Weather thumb_func 0x81396d8 SetRoute123Weather thumb_func 0x81396f8 GetLeadMonIndex thumb_func 0x8139750 ScriptGetPartyMonSpecies -thumb_func 0x8139778 nullsub_85 +thumb_func 0x8139778 nullsub_54 thumb_func 0x813977c GetDaysUntilPacifidlogTMAvailable thumb_func 0x81397c4 SetPacifidlogTMReceivedDay -thumb_func 0x81397e0 +thumb_func 0x81397e0 MonOTNameMatchesPlayer thumb_func 0x8139824 BufferLottoTicketNumber thumb_func 0x81398cc thumb_func 0x8139938 @@ -10537,7 +10716,7 @@ thumb_func 0x8139cbc MoveElevatorWindowLights thumb_func 0x8139dd4 thumb_func 0x8139ebc warp0_in_pokecenter thumb_func 0x8139f0c -thumb_func 0x8139f30 +thumb_func 0x8139f30 UpdateFrontierManiac thumb_func 0x8139f5c thumb_func 0x813a0bc thumb_func 0x813a164 @@ -10551,7 +10730,7 @@ thumb_func 0x813a638 thumb_func 0x813a66c thumb_func 0x813a69c thumb_func 0x813a740 -thumb_func 0x813a770 nullsub_84 +thumb_func 0x813a770 nullsub_55 thumb_func 0x813a774 thumb_func 0x813a7c0 thumb_func 0x813a7fc UpdateFrontierGambler @@ -10569,7 +10748,7 @@ thumb_func 0x813aa90 thumb_func 0x813aaac thumb_func 0x813ac20 thumb_func 0x813ac90 -thumb_func 0x813acc8 IsArrowWarpMetatileBehavior +thumb_func 0x813acc8 thumb_func 0x813ad2c thumb_func 0x813ad6c thumb_func 0x813adf0 @@ -10582,8 +10761,8 @@ thumb_func 0x813b0ec ChangeDeoxysRockLevel thumb_func 0x813b198 WaitForDeoxysRockMovement thumb_func 0x813b1bc IncrementBirthIslandRockStepCount thumb_func 0x813b208 -thumb_func 0x813b23c -thumb_func 0x813b248 +thumb_func 0x813b23c set_unknown_box_id +thumb_func 0x813b248 get_unknown_box_id thumb_func 0x813b254 thumb_func 0x813b298 thumb_func 0x813b31c CreateUnusualWeatherEvent @@ -10592,7 +10771,7 @@ thumb_func 0x813b3e8 UnusualWeatherHasExpired thumb_func 0x813b4bc Unused_SetWeatherSunny thumb_func 0x813b4c8 thumb_func 0x813b518 -thumb_func 0x813b54c StartWallClock +thumb_func 0x813b54c thumb_func 0x813b56c thumb_func 0x813b5a0 thumb_func 0x813b5b4 @@ -10620,37 +10799,39 @@ thumb_func 0x813bf34 thumb_func 0x813bf68 thumb_func 0x813bf84 thumb_func 0x813bfa0 +# battle_records.s thumb_func 0x813bfb8 ClearLinkBattleRecord thumb_func 0x813bfe8 ClearLinkBattleRecords thumb_func 0x813c01c GetLinkBattleRecordTotalBattles thumb_func 0x813c02c FindLinkBattleRecord -thumb_func 0x813c060 +thumb_func 0x813c060 SortLinkBattleRecords thumb_func 0x813c0dc UpdateLinkBattleRecord thumb_func 0x813c140 UpdateLinkBattleGameStats thumb_func 0x813c17c UpdateLinkBattleRecords -thumb_func 0x813c204 -thumb_func 0x813c220 -thumb_func 0x813c248 +thumb_func 0x813c204 ClearPlayerLinkBattleRecords +thumb_func 0x813c220 IncTrainerCardWins +thumb_func 0x813c248 IncTrainerCardLosses thumb_func 0x813c270 UpdateTrainerCardWinsLosses thumb_func 0x813c2ac UpdatePlayerLinkBattleRecords thumb_func 0x813c300 PrintLinkBattleWinsLossesDraws -thumb_func 0x813c384 CrackedFloorPerStepCallback -thumb_func 0x813c4b0 +thumb_func 0x813c384 PrintLinkBattleRecord +thumb_func 0x813c4b0 ShowLinkBattleRecords thumb_func 0x813c57c RemoveRecordsWindow -thumb_func 0x813c598 +thumb_func 0x813c598 Task_TrainerHillWaitForPaletteFade thumb_func 0x813c5c8 Task_CloseTrainerHillRecordsOnButton -thumb_func 0x813c608 -thumb_func 0x813c640 party_menu_link_mon_pokeball_object -thumb_func 0x813c684 +thumb_func 0x813c608 Task_BeginPaletteFade +thumb_func 0x813c640 Task_ExitTrainerHillRecords +thumb_func 0x813c684 RemoveTrainerHillRecordsWindow thumb_func 0x813c6b0 ClearVramOamPlttRegs thumb_func 0x813c7e8 ClearTasksAndGraphicalStructs thumb_func 0x813c804 ResetBgCoordinates thumb_func 0x813c85c SetDispcntReg thumb_func 0x813c86c LoadTrainerHillRecordsWindowGfx thumb_func 0x813c8b4 VblankCB_TrainerHillRecords -thumb_func 0x813c8c8 +thumb_func 0x813c8c8 MainCB2_TrainerHillRecords thumb_func 0x813c8e0 ShowTrainerHillRecords thumb_func 0x813c8f8 CB2_ShowTrainerHillRecords +# pokedex_area_screen.s thumb_func 0x813ca30 ResetDrawAreaGlowState thumb_func 0x813ca44 DrawAreaGlow thumb_func 0x813cb1c FindMapsWithMon @@ -10659,7 +10840,7 @@ thumb_func 0x813cd40 SetSpecialMapHasMon thumb_func 0x813ce10 GetRegionMapSectionId thumb_func 0x813ce24 MapHasMon thumb_func 0x813ceb0 MonListHasMon -thumb_func 0x813cee8 +thumb_func 0x813cee8 BuildAreaGlowTilemap thumb_func 0x813d2cc StartAreaGlow thumb_func 0x813d360 DoAreaGlow thumb_func 0x813d4dc ShowPokedexAreaScreen @@ -10671,20 +10852,21 @@ thumb_func 0x813d928 DestroyAreaMarkerSprites thumb_func 0x813d9ac LoadAreaUnknownGraphics thumb_func 0x813d9ec CreateAreaUnknownSprites thumb_func 0x813dab4 -thumb_func 0x813dac4 Task_BeginEvolutionScene +thumb_func 0x813dac4 +# evolution_scene.s thumb_func 0x813db44 BeginEvolutionScene thumb_func 0x813db90 EvolutionScene thumb_func 0x813de80 CB2_EvolutionSceneLoadGraphics thumb_func 0x813e074 CB2_TradeEvolutionSceneLoadGraphics thumb_func 0x813e2d8 TradeEvolutionScene -thumb_func 0x813e4a8 -thumb_func 0x813e4c4 -thumb_func 0x813e4e0 +thumb_func 0x813e4a8 CB2_EvolutionSceneUpdate +thumb_func 0x813e4c4 CB2_TradeEvolutionSceneUpdate +thumb_func 0x813e4e0 CreateShedinja thumb_func 0x813e638 Task_EvolutionScene -thumb_func 0x813f280 -thumb_func 0x813fda0 nullsub_87 -thumb_func 0x813fda4 -thumb_func 0x813fe2c +thumb_func 0x813f280 Task_TradeEvolutionScene +thumb_func 0x813fda0 EvoDummyFunc +thumb_func 0x813fda4 VBlankCB_EvolutionScene +thumb_func 0x813fe2c VBlankCB_TradeEvolutionScene thumb_func 0x813feb4 thumb_func 0x813ff6c thumb_func 0x813ffb0 @@ -10692,9 +10874,10 @@ thumb_func 0x8140088 InitMovingBgValues thumb_func 0x81400c8 InitMovingBackgroundTask thumb_func 0x81401c8 thumb_func 0x81401fc -thumb_func 0x814023c OpenPokeblockCaseInBattle +thumb_func 0x814023c thumb_func 0x81402a8 EvoScene_DoMonAnimation thumb_func 0x81402d0 EvoScene_IsMonAnimFinished +# roulette.s thumb_func 0x8140300 thumb_func 0x814032c thumb_func 0x8140450 @@ -10747,7 +10930,7 @@ thumb_func 0x81429e0 thumb_func 0x8142a44 thumb_func 0x8142a68 thumb_func 0x8142ab8 -thumb_func 0x8142b50 +thumb_func 0x8142b50 Task_Roulette_0 thumb_func 0x8142c94 PlayRoulette thumb_func 0x8142cd8 thumb_func 0x8142d2c @@ -10799,6 +10982,7 @@ thumb_func 0x81450fc thumb_func 0x81451a4 thumb_func 0x81452e4 thumb_func 0x8145360 +# pokedex_cry_screen.s thumb_func 0x8145420 thumb_func 0x8145528 thumb_func 0x8145600 @@ -10813,52 +10997,56 @@ thumb_func 0x814591c thumb_func 0x81459e0 thumb_func 0x8145a38 thumb_func 0x8145bf0 -thumb_func 0x8145c20 -thumb_func 0x8145c6c +# coins.s +thumb_func 0x8145c20 PrintCoinsString +thumb_func 0x8145c6c ShowCoinsWindow thumb_func 0x8145cd4 HideCoinsWindow thumb_func 0x8145cf0 GetCoins thumb_func 0x8145d18 SetCoins thumb_func 0x8145d40 GiveCoins thumb_func 0x8145d8c TakeCoins +# landmark.s thumb_func 0x8145db4 GetLandmarkName thumb_func 0x8145e08 GetLandmarks +# fldeff_strength.s thumb_func 0x8145e84 SetUpFieldMove_Strength thumb_func 0x8145ecc FldEff_UseStrength thumb_func 0x8145eec -thumb_func 0x8145f34 CoordEventWeather_Clouds +thumb_func 0x8145f34 +# battle_transition.s thumb_func 0x8145f44 CB2_TestBattleTransition thumb_func 0x8145f9c TestBattleTransition thumb_func 0x8145fb4 BattleTransition_StartOnField thumb_func 0x8145fd0 BattleTransition_Start thumb_func 0x8145fe0 IsBattleTransitionDone thumb_func 0x814602c LaunchBattleTransitionTask -thumb_func 0x8146068 +thumb_func 0x8146068 Phase2Task_29 thumb_func 0x81460a0 Transition_Phase1 thumb_func 0x81460f0 Transition_WaitForPhase1 thumb_func 0x8146124 Transition_Phase2 thumb_func 0x814614c Transition_WaitForPhase2 thumb_func 0x814617c Phase1Task_TransitionAll -thumb_func 0x81461cc +thumb_func 0x81461cc Phase2Task_30 thumb_func 0x8146204 Phase2_Blur_Func1 thumb_func 0x8146238 Phase2_Blur_Func2 thumb_func 0x8146298 Phase2_Blur_Func3 -thumb_func 0x81462c4 +thumb_func 0x81462c4 Phase2Task_31 thumb_func 0x81462fc Phase2_Swirl_Func1 thumb_func 0x8146368 Phase2_Swirl_Func2 thumb_func 0x81463e0 VBlankCB_Phase2_Swirl -thumb_func 0x8146418 -thumb_func 0x8146444 +thumb_func 0x8146418 HBlankCB_Phase2_Shuffle +thumb_func 0x8146444 Phase2Task_32 thumb_func 0x814647c Phase2_Shuffle_Func1 thumb_func 0x81464e0 Phase2_Shuffle_Func2 thumb_func 0x8146570 VBlankCB_Phase2_Shuffle -thumb_func 0x81465a8 -thumb_func 0x81465d4 -thumb_func 0x814660c -thumb_func 0x8146644 -thumb_func 0x814667c -thumb_func 0x81466b4 -thumb_func 0x81466ec -thumb_func 0x8146724 +thumb_func 0x81465a8 HBlankCB_Phase2_Swirl +thumb_func 0x81465d4 Phase2Task_33 +thumb_func 0x814660c Phase2Task_Aqua +thumb_func 0x8146644 Phase2Task_BigPokeball +thumb_func 0x814667c Phase2Task_Blackhole1 +thumb_func 0x81466b4 Phase2Task_Blackhole2 +thumb_func 0x81466ec Phase2Task_Blur +thumb_func 0x8146724 Phase2Task_Clockwise_BlackFade thumb_func 0x814675c thumb_func 0x81467cc Phase2_Aqua_Func1 thumb_func 0x8146820 Phase2_Magma_Func1 @@ -10872,26 +11060,26 @@ thumb_func 0x8146a8c Phase2_Registeel_Func2 thumb_func 0x8146ae4 Phase2_Regirock_Func2 thumb_func 0x8146b3c Phase2_Kyogre_Func3 thumb_func 0x8146b88 Phase2_Kyogre_Func4 -thumb_func 0x8146be4 -thumb_func 0x8146c3c +thumb_func 0x8146be4 Phase2_Kyogre_Func5 +thumb_func 0x8146c3c Phase2_WeatherDuo_Func6 thumb_func 0x8146c68 Phase2_WeatherDuo_Func7 thumb_func 0x8146cb8 Phase2_BigPokeball_Func3 thumb_func 0x8146d4c Phase2_BigPokeball_Func4 thumb_func 0x8146de0 Phase2_BigPokeball_Func5 thumb_func 0x8146e50 Phase2_FramesCountdown -thumb_func 0x8146e6c +thumb_func 0x8146e6c Phase2_WeatherTrio_Func1 thumb_func 0x8146e98 Phase2_WaitPaletteFade thumb_func 0x8146eb8 Phase2_BigPokeball_Func6 thumb_func 0x8146f80 Transition_BigPokeball_Vblank thumb_func 0x8146ffc VBlankCB0_Phase2_BigPokeball thumb_func 0x8147028 VBlankCB1_Phase2_BigPokeball -thumb_func 0x8147054 +thumb_func 0x8147054 Phase2Task_GridSquares thumb_func 0x814708c Phase2_PokeballsTrail_Func1 thumb_func 0x81470d8 Phase2_PokeballsTrail_Func2 thumb_func 0x8147164 Phase2_PokeballsTrail_Func3 thumb_func 0x8147190 FldEff_Pokeball -thumb_func 0x81471fc berry_fix_gpu_set -thumb_func 0x81472c4 +thumb_func 0x81471fc +thumb_func 0x81472c4 Phase2Task_Groudon thumb_func 0x81472fc Phase2_Clockwise_BlackFade_Func1 thumb_func 0x8147364 Phase2_Clockwise_BlackFade_Func2 thumb_func 0x81473f4 Phase2_Clockwise_BlackFade_Func3 @@ -10900,12 +11088,12 @@ thumb_func 0x8147570 Phase2_Clockwise_BlackFade_Func5 thumb_func 0x8147670 Phase2_Clockwise_BlackFade_Func6 thumb_func 0x8147708 Phase2_Clockwise_BlackFade_Func7 thumb_func 0x8147748 VBlankCB_Phase2_Clockwise_BlackFade -thumb_func 0x81477d8 +thumb_func 0x81477d8 Phase2Task_Kyogre thumb_func 0x8147810 Phase2_Ripple_Func1 thumb_func 0x8147868 Phase2_Ripple_Func2 thumb_func 0x8147948 VBlankCB_Phase2_Ripple -thumb_func 0x8147980 -thumb_func 0x81479ac +thumb_func 0x8147980 HBlankCB_Phase2_Ripple +thumb_func 0x81479ac Phase2Task_MugShotTransition thumb_func 0x81479e4 Phase2_Wave_Func1 thumb_func 0x8147a3c Phase2_Wave_Func2 thumb_func 0x8147ad8 Phase2_Wave_Func3 @@ -10915,7 +11103,7 @@ thumb_func 0x8147bc4 Phase2Task_Phoebe thumb_func 0x8147be4 Phase2Task_Glacia thumb_func 0x8147c04 Phase2Task_Drake thumb_func 0x8147c24 Phase2Task_Champion -thumb_func 0x8147c44 +thumb_func 0x8147c44 Phase2Task_PokeballsTrail thumb_func 0x8147c7c Phase2_Mugshot_Func1 thumb_func 0x8147ce4 Phase2_Mugshot_Func2 thumb_func 0x8147da4 Phase2_Mugshot_Func3 @@ -10925,7 +11113,7 @@ thumb_func 0x8147f48 Phase2_Mugshot_Func6 thumb_func 0x8148000 Phase2_Mugshot_Func7 thumb_func 0x81480c8 Phase2_Mugshot_Func8 thumb_func 0x8148100 Phase2_Mugshot_Func9 -thumb_func 0x814814c Phase2_RectangularSpiral_Func3 +thumb_func 0x814814c Phase2_Mugshot_Func10 thumb_func 0x814818c VBlankCB0_Phase2_Mugshots thumb_func 0x8148220 VBlankCB1_Phase2_Mugshots thumb_func 0x81482a0 HBlankCB_Phase2_Mugshots @@ -10939,42 +11127,42 @@ thumb_func 0x8148518 thumb_func 0x8148544 thumb_func 0x814855c thumb_func 0x8148578 -thumb_func 0x8148590 +thumb_func 0x8148590 Phase2Task_Rayquaza thumb_func 0x81485c8 Phase2_Slice_Func1 thumb_func 0x8148650 Phase2_Slice_Func2 thumb_func 0x814871c Phase2_Slice_Func3 thumb_func 0x814875c VBlankCB_Phase2_Slice thumb_func 0x81487e8 HBlankCB_Phase2_Slice -thumb_func 0x8148820 +thumb_func 0x8148820 Phase2Task_RectangularSpiral thumb_func 0x8148858 Phase2_ShredSplit_Func1 thumb_func 0x8148924 Phase2_ShredSplit_Func2 thumb_func 0x8148b94 Phase2_ShredSplit_Func3 thumb_func 0x8148bd4 Phase2_ShredSplit_Func4 -thumb_func 0x8148c14 -thumb_func 0x8148c4c +thumb_func 0x8148c14 Phase2Task_Regice +thumb_func 0x8148c4c Phase2Task_Regirock thumb_func 0x8148c84 Phase2_Blackhole_Func1 thumb_func 0x8148ce8 Phase2_Blackhole1_Func3 thumb_func 0x8148da8 Phase2_Blackhole1_Func2 thumb_func 0x8148e2c Phase2_Blackhole2_Func2 -thumb_func 0x8148f14 +thumb_func 0x8148f14 Phase2Task_Registeel thumb_func 0x8148f4c Phase2_RectangularSpiral_Func1 thumb_func 0x814900c Phase2_RectangularSpiral_Func2 -thumb_func 0x81490c8 +thumb_func 0x81490c8 Phase2_RectangularSpiral_Func3 thumb_func 0x8149108 -thumb_func 0x8149200 +thumb_func 0x8149200 Phase2Task_Ripple thumb_func 0x8149238 Phase2_Groudon_Func3 -thumb_func 0x8149288 -thumb_func 0x81492e4 -thumb_func 0x814933c +thumb_func 0x8149288 Phase2_Groudon_Func4 +thumb_func 0x81492e4 Phase2_Groudon_Func5 +thumb_func 0x814933c Phase2Task_Shards thumb_func 0x8149374 Phase2_Rayquaza_Func3 thumb_func 0x8149418 Phase2_Rayquaza_Func4 thumb_func 0x8149448 Phase2_Rayquaza_Func5 thumb_func 0x8149498 Phase2_Rayquaza_Func6 thumb_func 0x81494d0 Phase2_Rayquaza_Func7 -thumb_func 0x81494fc +thumb_func 0x81494fc Phase2_Rayquaza_Func8 thumb_func 0x814952c Phase2_Rayquaza_Func9 thumb_func 0x81495c8 VBlankCB_Phase2_Rayquaza -thumb_func 0x8149638 +thumb_func 0x8149638 Phase2Task_ShredSplit thumb_func 0x8149670 Phase2_WhiteFade_Func1 thumb_func 0x81496e8 Phase2_WhiteFade_Func2 thumb_func 0x814975c Phase2_WhiteFade_Func3 @@ -10984,21 +11172,21 @@ thumb_func 0x8149834 VBlankCB0_Phase2_WhiteFade thumb_func 0x81498c4 VBlankCB1_Phase2_WhiteFade thumb_func 0x8149900 HBlankCB_Phase2_WhiteFade thumb_func 0x8149924 -thumb_func 0x8149a1c +thumb_func 0x8149a1c Phase2Task_Shuffle thumb_func 0x8149a54 Phase2_GridSquares_Func1 -thumb_func 0x8149aa8 ItemId_GetImportance +thumb_func 0x8149aa8 Phase2_GridSquares_Func2 thumb_func 0x8149b00 Phase2_GridSquares_Func3 -thumb_func 0x8149b2c +thumb_func 0x8149b2c Phase2Task_Slice thumb_func 0x8149b64 Phase2_Shards_Func1 thumb_func 0x8149bc8 Phase2_Shards_Func2 thumb_func 0x8149c44 Phase2_Shards_Func3 thumb_func 0x8149d20 Phase2_Shards_Func4 thumb_func 0x8149d8c Phase2_Shards_Func5 thumb_func 0x8149da8 VBlankCB_Phase2_Shards -thumb_func 0x8149e38 +thumb_func 0x8149e38 CreatePhase1Task thumb_func 0x8149e9c IsPhase1Done thumb_func 0x8149ebc Phase2Task_Magma -thumb_func 0x8149ef4 +thumb_func 0x8149ef4 Phase1_TransitionAll_Func1 thumb_func 0x8149f50 Phase1_TransitionAll_Func2 thumb_func 0x8149fc8 thumb_func 0x8149fec VBlankCB_BattleTransition @@ -11011,17 +11199,17 @@ thumb_func 0x814a26c thumb_func 0x814a2e8 thumb_func 0x814a3e4 Phase2_29_Func1 thumb_func 0x814a434 Phase2_29_Func2 -thumb_func 0x814a47c -thumb_func 0x814a4b4 +thumb_func 0x814a47c Phase2Task_Swirl +thumb_func 0x814a4b4 Phase2Task_Wave thumb_func 0x814a4ec Phase2_30_Func1 thumb_func 0x814a594 Phase2_30_Func2 thumb_func 0x814a5c0 Phase2_30_Func3 thumb_func 0x814a610 Phase2_30_Func4 thumb_func 0x814a744 VBlankCB_Phase2_30 thumb_func 0x814a78c HBlankCB_Phase2_30 -thumb_func 0x814a7b0 Phase2Task_37 -thumb_func 0x814a7e8 -thumb_func 0x814a820 +thumb_func 0x814a7b0 Phase2Task_WhiteFade +thumb_func 0x814a7e8 Task_BattleTransitionMain +thumb_func 0x814a820 TransitionPhase1_Task_RunFuncs thumb_func 0x814a858 Phase2_31_Func1 thumb_func 0x814a8e8 Phase2_31_Func2 thumb_func 0x814a958 Phase2_31_Func3 @@ -11029,15 +11217,16 @@ thumb_func 0x814aa20 Phase2_33_Func1 thumb_func 0x814aac4 Phase2_33_Func2 thumb_func 0x814ab44 Phase2_33_Func3 thumb_func 0x814ab78 Phase2_33_Func4 -thumb_func 0x814ac60 ItemId_GetFieldFunc +thumb_func 0x814ac60 Phase2_31_33_Func5 thumb_func 0x814aca4 thumb_func 0x814acf8 Phase2_32_Func1 thumb_func 0x814ae08 Phase2_32_Func2 thumb_func 0x814ae74 Phase2_32_Func3 thumb_func 0x814ae98 Phase2_32_Func4 thumb_func 0x814af00 Phase2_32_Func5 -thumb_func 0x814af6c nullsub_88 -thumb_func 0x814af70 +# battle_controller_link_partner.s +thumb_func 0x814af6c SpriteCB_Null2 +thumb_func 0x814af70 SetControllerToLinkPartner thumb_func 0x814af8c LinkPartnerBufferRunCommand thumb_func 0x814afdc thumb_func 0x814b014 @@ -11045,24 +11234,24 @@ thumb_func 0x814b07c thumb_func 0x814b0c4 thumb_func 0x814b1a8 thumb_func 0x814b350 -thumb_func 0x814b390 +thumb_func 0x814b390 LinkPartnerHandleSwitchInAnim thumb_func 0x814b400 thumb_func 0x814b49c -thumb_func 0x814b50c -thumb_func 0x814b524 +thumb_func 0x814b50c LinkPartnerHandlePlaySE +thumb_func 0x814b524 LinkPartnerHandleHitAnimation thumb_func 0x814b5a0 thumb_func 0x814b614 thumb_func 0x814b668 thumb_func 0x814b75c thumb_func 0x814b800 LinkPartnerBufferExecCompleted -thumb_func 0x814b878 -thumb_func 0x814b8a8 -thumb_func 0x814b8d8 +thumb_func 0x814b878 LinkPartnerHandleStatusAnimation +thumb_func 0x814b8a8 LinkPartnerHandleStatusIconUpdate +thumb_func 0x814b8d8 LinkPartnerHandleGetMonData thumb_func 0x814b94c CopyLinkPartnerMonData -thumb_func 0x814c0f8 -thumb_func 0x814c104 +thumb_func 0x814c0f8 LinkPartnerHandleGetRawMonData +thumb_func 0x814c104 LinkPartnerHandleSetMonData thumb_func 0x814c15c SetLinkPartnerMonData -thumb_func 0x814cb58 +thumb_func 0x814cb58 LinkPartnerHandleSetRawMonData thumb_func 0x814cbcc LinkPartnerHandleLoadMonSprite thumb_func 0x814cce8 thumb_func 0x814cd58 @@ -11071,18 +11260,18 @@ thumb_func 0x814cf64 thumb_func 0x814cff0 LinkPartnerHandleDrawTrainerPic thumb_func 0x814d1a4 LinkPartnerHandleTrainerSlide thumb_func 0x814d1b0 LinkPartnerHandleTrainerSlideBack -thumb_func 0x814d25c +thumb_func 0x814d25c LinkPartnerHandleFaintAnimation thumb_func 0x814d348 LinkPartnerHandlePaletteFade thumb_func 0x814d354 LinkPartnerHandleSuccessBallThrowAnim thumb_func 0x814d360 LinkPartnerHandleBallThrowAnim thumb_func 0x814d36c LinkPartnerHandlePause -thumb_func 0x814d378 -thumb_func 0x814d4cc +thumb_func 0x814d378 LinkPartnerHandleMoveAnimation +thumb_func 0x814d4cc LinkPartnerDoMoveAnimation thumb_func 0x814d650 LinkPartnerHandlePrintString thumb_func 0x814d6a8 LinkPartnerHandlePrintSelectionString thumb_func 0x814d6b4 LinkPartnerHandleChooseAction -thumb_func 0x814d6c0 -thumb_func 0x814d6cc +thumb_func 0x814d6c0 LinkPartnerHandleUnknownYesNoBox +thumb_func 0x814d6cc LinkPartnerHandleChooseMove thumb_func 0x814d6d8 LinkPartnerHandleChooseItem thumb_func 0x814d6e4 LinkPartnerHandleChoosePokemon thumb_func 0x814d6f0 LinkPartnerHandleCmd23 @@ -11120,26 +11309,31 @@ thumb_func 0x814e060 LinkPartnerHandleBattleAnimation thumb_func 0x814e0d4 LinkPartnerHandleLinkStandbyMsg thumb_func 0x814e0f4 LinkPartnerHandleResetActionMoveSelection thumb_func 0x814e100 LinkPartnerHandleCmd55 -thumb_func 0x814e180 nullsub_89 -thumb_func 0x814e184 PrintOnTrainerHillRecordsWindow -thumb_func 0x814e7a0 BattleStringExpandPlaceholdersToDisplayedString -thumb_func 0x814e7b0 BattleStringExpandPlaceholders +thumb_func 0x814e180 LinkPartnerCmdEnd +# battle_message.s +thumb_func 0x814e184 BufferStringBattle +thumb_func 0x814e7a0 TryGetStatusString +thumb_func 0x814e7b0 BattleStringExpandPlaceholdersToDisplayedString +thumb_func 0x814e7f0 BattleStringExpandPlaceholders +thumb_func 0x814f62c BattlePutTextOnWindow +thumb_func 0x814f63c thumb_func 0x814f664 ExpandBattleTextBuffPlaceholders thumb_func 0x814f910 ChooseMoveUsedParticle thumb_func 0x814f968 ChooseTypeOfMoveUsedString thumb_func 0x814fa04 -thumb_func 0x814fb80 +thumb_func 0x814fb80 SetPpNumbersPaletteInMoveSelection thumb_func 0x814fbfc GetCurrentPpToMaxPpState +# cable_car.s thumb_func 0x814fc4c CableCarTask1 -thumb_func 0x814fc78 +thumb_func 0x814fc78 CableCar thumb_func 0x814fca4 CableCarMainCallback_Setup -thumb_func 0x8150218 +thumb_func 0x8150218 CableCarMainCallback_Run thumb_func 0x8150234 CleanupCableCar thumb_func 0x81503c0 thumb_func 0x815052c thumb_func 0x8150640 thumb_func 0x81507dc CableCarVblankCallback -thumb_func 0x8150840 nullsub_901 +thumb_func 0x8150840 nullsub_58 thumb_func 0x8150844 thumb_func 0x8150924 thumb_func 0x8150a44 @@ -11151,6 +11345,7 @@ thumb_func 0x8151138 thumb_func 0x8151194 thumb_func 0x81511f0 thumb_func 0x8151364 +# math_util.s thumb_func 0x81514a4 thumb_func 0x8151510 thumb_func 0x815152c @@ -11160,6 +11355,7 @@ thumb_func 0x81515b0 thumb_func 0x81515d8 thumb_func 0x8151600 thumb_func 0x8151618 +# roulette_util.s thumb_func 0x8151638 thumb_func 0x8151654 thumb_func 0x8151668 @@ -11178,6 +11374,7 @@ thumb_func 0x8151d04 UnmarkUsedPulseBlendPalettes thumb_func 0x8151e2c UpdatePulseBlend thumb_func 0x8151fe4 thumb_func 0x8152034 +# rom_81520A8.s thumb_func 0x8152084 thumb_func 0x8152110 thumb_func 0x815219c @@ -11188,10 +11385,11 @@ thumb_func 0x8152414 thumb_func 0x8152450 thumb_func 0x81524a0 thumb_func 0x81525ac +# save.s thumb_func 0x815262c ClearSaveData thumb_func 0x815265c Save_ResetSaveCounters thumb_func 0x8152678 SetDamagedSectorBits -thumb_func 0x81526dc +thumb_func 0x81526dc save_write_to_flash thumb_func 0x815277c HandleWriteSector thumb_func 0x815286c HandleWriteSectorNBytes thumb_func 0x81528e4 TryWriteSector @@ -11215,13 +11413,14 @@ thumb_func 0x81532bc thumb_func 0x81532e8 thumb_func 0x815331c thumb_func 0x8153344 -thumb_func 0x815336c +thumb_func 0x815336c FullSaveGame thumb_func 0x81533b0 CheckSaveFile thumb_func 0x815340c Save_LoadGameData thumb_func 0x8153498 thumb_func 0x8153518 TryReadSpecialSaveSection thumb_func 0x8153570 TryWriteSpecialSaveSection thumb_func 0x81535c4 +# mystery_event_script.s thumb_func 0x8153708 CheckCompatibility thumb_func 0x8153740 SetIncompatible thumb_func 0x815375c InitMysteryEventScript @@ -11232,26 +11431,27 @@ thumb_func 0x81537dc RunMysteryEventScript thumb_func 0x8153800 SetMysteryEventScriptStatus thumb_func 0x815380c CalcRecordMixingGiftChecksum thumb_func 0x8153834 IsRecordMixingGiftValid -thumb_func 0x8153880 +thumb_func 0x8153880 ClearRecordMixingGift thumb_func 0x81538ac SetRecordMixingGift thumb_func 0x8153910 GetRecordMixingGift -thumb_func 0x8153960 +thumb_func 0x8153960 MEScrCmd_end thumb_func 0x815396c MEScrCmd_checkcompat -thumb_func 0x81539bc nullsub_91 +thumb_func 0x81539bc MEScrCmd_nop thumb_func 0x81539c0 MEScrCmd_setstatus thumb_func 0x81539d0 MEScrCmd_setmsg thumb_func 0x8153a08 MEScrCmd_runscript thumb_func 0x8153a24 MEScrCmd_setenigmaberry thumb_func 0x8153aec MEScrCmd_giveribbon thumb_func 0x8153b20 MEScrCmd_initramscript -thumb_func 0x8153b88 +thumb_func 0x8153b88 MEScrCmd_enableresetrtc thumb_func 0x8153bac MEScrCmd_addrareword thumb_func 0x8153bd8 MEScrCmd_setrecordmixinggift thumb_func 0x8153c04 MEScrCmd_givepokemon thumb_func 0x8153d10 MEScrCmd_addtrainer -thumb_func 0x8153d58 +thumb_func 0x8153d58 MEScrCmd_givenationaldex thumb_func 0x8153d7c MEScrCmd_checksum -thumb_func 0x8153dc4 +thumb_func 0x8153dc4 MEScrCmd_crc +# field_effect_helpers.s thumb_func 0x8153e10 SetUpReflection thumb_func 0x8153ed4 GetReflectionVerticalOffset thumb_func 0x8153ee8 LoadObjectReflectionPalette @@ -11275,7 +11475,7 @@ thumb_func 0x815494c UpdateShortGrassFieldEffect thumb_func 0x8154a40 FldEff_SandFootprints thumb_func 0x8154ab4 FldEff_DeepSandFootprints thumb_func 0x8154b28 FldEff_BikeTireTracks -thumb_func 0x8154b9c +thumb_func 0x8154b9c UpdateFootprintsTireTracksFieldEffect thumb_func 0x8154bb8 FadeFootprintsTireTracks_Step0 thumb_func 0x8154bdc FadeFootprintsTireTracks_Step1 thumb_func 0x8154c28 FldEff_Splash @@ -11293,7 +11493,7 @@ thumb_func 0x8155204 FldEff_Unknown21 thumb_func 0x8155270 FldEff_Unknown22 thumb_func 0x81552dc StartAshFieldEffect thumb_func 0x8155310 FldEff_Ash -thumb_func 0x815539c CallBattlePikeFunction +thumb_func 0x815539c UpdateAshFieldEffect thumb_func 0x81553b8 UpdateAshFieldEffect_Step0 thumb_func 0x81553e8 UpdateAshFieldEffect_Step1 thumb_func 0x8155448 UpdateAshFieldEffect_Step2 @@ -11331,6 +11531,7 @@ thumb_func 0x8155ebc thumb_func 0x81560d0 thumb_func 0x815610c WaitFieldEffectSpriteAnim thumb_func 0x8156138 +# contest_ai.s thumb_func 0x8156200 ContestAI_ResetAI thumb_func 0x8156260 ContestAI_GetActionToUse thumb_func 0x81562ec ContestAI_DoAIProcessing @@ -11357,15 +11558,15 @@ thumb_func 0x815688c ContestAICmd_if_user_condition_more_than thumb_func 0x81568d0 ContestAICmd_if_user_condition_eq thumb_func 0x8156914 ContestAICmd_if_user_condition_not_eq thumb_func 0x8156958 ContestAICmd_unk_15 -thumb_func 0x8156984 -thumb_func 0x81569d4 -thumb_func 0x8156a24 -thumb_func 0x8156a74 +thumb_func 0x8156984 ContestAICmd_unk_1B +thumb_func 0x81569d4 ContestAICmd_unk_17 +thumb_func 0x8156a24 ContestAICmd_unk_18 +thumb_func 0x8156a74 ContestAICmd_unk_1E thumb_func 0x8156ac4 ContestAICmd_unk_1A -thumb_func 0x8156af0 -thumb_func 0x8156b40 -thumb_func 0x8156b90 -thumb_func 0x8156be0 +thumb_func 0x8156af0 ContestAICmd_unk_16 +thumb_func 0x8156b40 ContestAICmd_unk_1C +thumb_func 0x8156b90 ContestAICmd_unk_1D +thumb_func 0x8156be0 ContestAICmd_unk_19 thumb_func 0x8156c30 ContestAICmd_get_contest_type thumb_func 0x8156c54 ContestAICmd_if_contest_type_eq thumb_func 0x8156c98 ContestAICmd_if_contest_type_not_eq @@ -11375,7 +11576,7 @@ thumb_func 0x8156d68 ContestAICmd_if_move_excitement_greater_than thumb_func 0x8156db0 ContestAICmd_if_move_excitement_eq thumb_func 0x8156df8 ContestAICmd_if_move_excitement_not_eq thumb_func 0x8156e40 ContestAICmd_get_move_effect -thumb_func 0x8156e80 PrintPlayerBerryPowderAmount +thumb_func 0x8156e80 ContestAICmd_if_move_effect_eq thumb_func 0x8156ec4 ContestAICmd_if_move_effect_not_eq thumb_func 0x8156f08 ContestAICmd_get_move_effect_type thumb_func 0x8156f54 ContestAICmd_if_move_effect_type_eq @@ -11385,26 +11586,26 @@ thumb_func 0x8157068 ContestAICmd_if_most_appealing_move thumb_func 0x81570b0 ContestAICmd_unk_2F thumb_func 0x815713c ContestAICmd_unk_30 thumb_func 0x8157184 ContestAICmd_unk_31 -thumb_func 0x81571e0 -thumb_func 0x8157224 -thumb_func 0x8157268 -thumb_func 0x81572ac +thumb_func 0x81571e0 ContestAICmd_unk_32 +thumb_func 0x8157224 ContestAICmd_if_used_combo_starter_more_than +thumb_func 0x8157268 ContestAICmd_if_used_combo_starter_eq +thumb_func 0x81572ac ContestAICmd_unk_35 thumb_func 0x81572f0 ContestAICmd_unk_36 -thumb_func 0x815734c -thumb_func 0x8157390 -thumb_func 0x81573d4 -thumb_func 0x8157418 +thumb_func 0x815734c ContestAICmd_unk_37 +thumb_func 0x8157390 ContestAICmd_unk_33 +thumb_func 0x81573d4 ContestAICmd_unk_34 +thumb_func 0x8157418 ContestAICmd_unk_3A thumb_func 0x815745c ContestAICmd_get_move_used_count thumb_func 0x81574b4 ContestAICmd_if_most_used_count_less_than thumb_func 0x81574f8 ContestAICmd_if_most_used_count_more_than thumb_func 0x815753c ContestAICmd_if_most_used_count_eq thumb_func 0x8157580 ContestAICmd_if_most_used_count_not_eq thumb_func 0x81575c4 ContestAICmd_check_combo_starter -thumb_func 0x815763c -thumb_func 0x8157684 +thumb_func 0x815763c ContestAICmd_if_combo_starter +thumb_func 0x8157684 ContestAICmd_if_not_combo_starter thumb_func 0x81576cc ContestAICmd_check_combo_finisher -thumb_func 0x8157744 -thumb_func 0x815778c +thumb_func 0x8157744 ContestAICmd_if_combo_finisher +thumb_func 0x815778c ContestAICmd_if_not_combo_finisher thumb_func 0x81577d4 ContestAICmd_check_would_finish_combo thumb_func 0x8157834 ContestAICmd_if_would_finish_combo thumb_func 0x815787c ContestAICmd_if_would_not_finish_combo @@ -11414,10 +11615,10 @@ thumb_func 0x815794c ContestAICmd_if_condition_more_than thumb_func 0x8157990 ContestAICmd_if_condition_eq thumb_func 0x81579d4 ContestAICmd_if_condition_not_eq thumb_func 0x8157a18 ContestAICmd_get_used_combo_starter -thumb_func 0x8157a74 -thumb_func 0x8157ab8 -thumb_func 0x8157afc -thumb_func 0x8157b40 +thumb_func 0x8157a74 ContestAICmd_if_used_combo_starter_less_than +thumb_func 0x8157ab8 ContestAICmd_unk_38 +thumb_func 0x8157afc ContestAICmd_unk_39 +thumb_func 0x8157b40 ContestAICmd_if_used_combo_starter_not_eq thumb_func 0x8157b84 ContestAICmd_check_can_participate thumb_func 0x8157bd0 ContestAICmd_if_can_participate thumb_func 0x8157c18 ContestAICmd_if_cannot_participate @@ -11426,7 +11627,7 @@ thumb_func 0x8157c9c ContestAICmd_unk_57 thumb_func 0x8157ce4 ContestAICmd_contest_58 thumb_func 0x8157d2c ContestAICmd_unk_59 thumb_func 0x8157d78 ContestAICmd_unk_5A -thumb_func 0x8157dc0 +thumb_func 0x8157dc0 ContestAICmd_unk_5B thumb_func 0x8157e08 ContestAICmd_unk_5C thumb_func 0x8157e50 ContestAICmd_unk_5D thumb_func 0x8157e98 ContestAICmd_unk_5E @@ -11450,8 +11651,8 @@ thumb_func 0x8158338 ContestAICmd_unk_6F thumb_func 0x815837c ContestAICmd_unk_70 thumb_func 0x81583a8 ContestAICmd_unk_71 thumb_func 0x81583d8 ContestAICmd_unk_72 -thumb_func 0x8158410 -thumb_func 0x8158444 +thumb_func 0x8158410 ContestAICmd_unk_74 +thumb_func 0x8158444 ContestAICmd_unk_73 thumb_func 0x8158478 ContestAICmd_unk_75 thumb_func 0x81584c8 ContestAICmd_unk_76 thumb_func 0x8158518 ContestAICmd_unk_77 @@ -11462,7 +11663,7 @@ thumb_func 0x8158660 ContestAICmd_unk_7B thumb_func 0x81586b4 ContestAICmd_unk_7C thumb_func 0x8158708 ContestAICmd_if_random thumb_func 0x8158758 ContestAICmd_unk_7E -thumb_func 0x81587a8 +thumb_func 0x81587a8 ContestAICmd_jump thumb_func 0x81587c8 ContestAICmd_call thumb_func 0x81587f8 ContestAICmd_end thumb_func 0x815881c AIStackPushVar @@ -11473,6 +11674,7 @@ thumb_func 0x8158928 ContestAICmd_if_user_doesnt_have_exciting_move thumb_func 0x8158970 ContestAICmd_unk_85 thumb_func 0x81589dc ContestAICmd_unk_86 thumb_func 0x8158a24 ContestAICmd_if_effect_in_user_moveset +# battle_anim_sound_tasks.s thumb_func 0x8158a6c thumb_func 0x8158ad4 thumb_func 0x8158b40 @@ -11490,25 +11692,26 @@ thumb_func 0x8159180 thumb_func 0x81591b4 thumb_func 0x815922c thumb_func 0x8159244 -thumb_func 0x81592a4 nullsub_90 -thumb_func 0x81592a8 +# battle_controller_safari.s +thumb_func 0x81592a4 SpriteCB_Null4 +thumb_func 0x81592a8 SetControllerToSafari thumb_func 0x81592c4 SafariBufferRunCommand thumb_func 0x8159314 HandleInputChooseAction -thumb_func 0x8159498 -thumb_func 0x81594d0 -thumb_func 0x81594e8 CompleteOnHealthboxSpriteCallbackDummy +thumb_func 0x8159498 CompleteOnHealthboxSpriteCallbackDummy +thumb_func 0x81594d0 SafariHandlePrintSelectionString +thumb_func 0x81594e8 CompleteWhenChosePokeblock thumb_func 0x8159520 thumb_func 0x8159560 CompleteOnSpecialAnimDone thumb_func 0x815959c SafariOpenPokeblockCase thumb_func 0x81595d4 -thumb_func 0x8159610 +thumb_func 0x8159610 SafariHandleSuccessBallThrowAnim thumb_func 0x8159640 SafariBufferExecCompleted -thumb_func 0x81596b8 +thumb_func 0x81596b8 SafariHandleBallThrowAnim thumb_func 0x81596e8 SafariHandleGetMonData thumb_func 0x81596f4 SafariHandleGetRawMonData thumb_func 0x8159700 SafariHandleSetMonData thumb_func 0x815970c SafariHandleSetRawMonData -thumb_func 0x8159718 +thumb_func 0x8159718 SafariHandleLoadMonSprite thumb_func 0x8159724 SafariHandleSwitchInAnim thumb_func 0x8159730 SafariHandleReturnMonToBall thumb_func 0x815973c SafariHandleDrawTrainerPic @@ -11520,8 +11723,8 @@ thumb_func 0x815984c thumb_func 0x81598a0 thumb_func 0x8159900 SafariHandlePause thumb_func 0x815990c SafariHandleMoveAnimation -thumb_func 0x8159918 -thumb_func 0x815996c SafariHandlePrintSelectionString +thumb_func 0x8159918 SafariHandlePrintString +thumb_func 0x815996c thumb_func 0x8159990 thumb_func 0x81599d0 SafariHandleChooseAction thumb_func 0x8159a38 SafariHandleUnknownYesNoBox @@ -11532,7 +11735,7 @@ thumb_func 0x8159a9c SafariHandleCmd23 thumb_func 0x8159aa8 SafariHandleHealthBarUpdate thumb_func 0x8159ab4 SafariHandleExpUpdate thumb_func 0x8159ac0 SafariHandleStatusIconUpdate -thumb_func 0x8159afc +thumb_func 0x8159afc SafariHandleStatusAnimation thumb_func 0x8159b08 SafariHandleStatusXor thumb_func 0x8159b14 SafariHandleDataTransfer thumb_func 0x8159b20 SafariHandleDMA3Transfer @@ -11549,25 +11752,27 @@ thumb_func 0x8159b98 SafariHandleCmd40 thumb_func 0x8159ba4 SafariHandleHitAnimation thumb_func 0x8159bb0 SafariHandleCmd42 thumb_func 0x8159bbc SafariHandlePlaySE -thumb_func 0x8159c00 +thumb_func 0x8159c00 SafariHandlePlayFanfareOrBGM thumb_func 0x8159c5c SafariHandleFaintingCry thumb_func 0x8159c98 SafariHandleIntroSlide thumb_func 0x8159ccc SafariHandleIntroTrainerBallThrow -thumb_func 0x8159d28 +thumb_func 0x8159d28 SafariHandleDrawPartyStatusSummary thumb_func 0x8159d34 SafariHandleHidePartyStatusSummary thumb_func 0x8159d40 SafariHandleEndBounceEffect thumb_func 0x8159d4c SafariHandleSpriteInvisibility thumb_func 0x8159d58 SafariHandleBattleAnimation thumb_func 0x8159db4 SafariHandleLinkStandbyMsg thumb_func 0x8159dc0 SafariHandleResetActionMoveSelection -thumb_func 0x8159dcc -thumb_func 0x8159e28 nullsub_93 +thumb_func 0x8159dcc SafariHandleCmd55 +thumb_func 0x8159e28 SafariCmdEnd +# fldeff_sweetscent.s thumb_func 0x8159e2c SetUpFieldMove_SweetScent thumb_func 0x8159e4c FieldCallback_SweetScent thumb_func 0x8159e68 FldEff_SweetScent -thumb_func 0x8159e98 +thumb_func 0x8159e98 StartSweetScentFieldEffect thumb_func 0x8159f28 TrySweetScentEncounter thumb_func 0x8159fcc FailSweetScentEncounter +# battle_anim_effects_3.s thumb_func 0x815a010 thumb_func 0x815a050 thumb_func 0x815a09c @@ -11598,7 +11803,7 @@ thumb_func 0x815a9a8 thumb_func 0x815a9e0 thumb_func 0x815aa98 thumb_func 0x815ab0c -thumb_func 0x815ab28 StartSweetScentFieldEffect +thumb_func 0x815ab28 thumb_func 0x815abc8 thumb_func 0x815ac0c thumb_func 0x815ac88 @@ -11706,27 +11911,29 @@ thumb_func 0x8160270 AnimKnockOffStrike thumb_func 0x81602e0 AnimRecycle thumb_func 0x816032c AnimRecycleStep thumb_func 0x8160428 AnimTask_GetWeather -thumb_func 0x816047c +thumb_func 0x816047c AnimTask_SlackOffSquish thumb_func 0x81604c4 AnimTask_SlackOffSquishStep +# move_relearner.s thumb_func 0x816055c VBlankCB_MoveRelearner thumb_func 0x8160570 TeachMoveRelearnerMove -thumb_func 0x816059c +thumb_func 0x816059c Task_WaitForFadeOut thumb_func 0x81605d8 CB2_InitLearnMove thumb_func 0x8160678 CB2_InitLearnMoveReturnFromSelectMove thumb_func 0x8160724 InitMoveRelearnerBackgroundLayers -thumb_func 0x8160764 +thumb_func 0x8160764 CB2_MoveRelearnerMain thumb_func 0x8160784 FormatAndPrintText -thumb_func 0x81607a0 +thumb_func 0x81607a0 DoMoveRelearnerMain thumb_func 0x8160dc8 FreeMoveRelearnerResources thumb_func 0x8160e08 HideHeartSpritesAndShowTeachMoveText thumb_func 0x8160e70 thumb_func 0x8160f74 GetCurrentSelectedMove -thumb_func 0x8160f94 +thumb_func 0x8160f94 ShowTeachMoveText thumb_func 0x8160fd0 CreateUISprites thumb_func 0x81610c4 AddScrollArrows thumb_func 0x816114c RemoveScrollArrows -thumb_func 0x8161198 +thumb_func 0x8161198 CreateLearnableMovesList thumb_func 0x8161280 MoveRelearnerShowHideHearts +# fldeff_softboiled.s thumb_func 0x816140c SetUpFieldMove_SoftBoiled thumb_func 0x8161464 thumb_func 0x81614ac @@ -11735,17 +11942,19 @@ thumb_func 0x81615c4 thumb_func 0x8161628 thumb_func 0x8161688 thumb_func 0x81616bc +# decoration_inventory.s thumb_func 0x81616f8 SetDecorationInventoriesPointers thumb_func 0x8161784 ClearDecorationInventory thumb_func 0x81617b8 ClearDecorationInventories thumb_func 0x81617d4 GetFirstEmptyDecorSlot -thumb_func 0x816181c -thumb_func 0x8161868 -thumb_func 0x81618b4 +thumb_func 0x816181c CheckHasDecoration +thumb_func 0x8161868 DecorationAdd +thumb_func 0x81618b4 DecorationCheckSpace thumb_func 0x81618ec DecorationRemove thumb_func 0x816194c CondenseDecorationsInCategory thumb_func 0x81619e4 GetNumOwnedDecorationsInCategory thumb_func 0x8161a24 GetNumOwnedDecorations +# roamer.s thumb_func 0x8161a48 ClearRoamerData thumb_func 0x8161a74 ClearRoamerLocationData thumb_func 0x8161aa8 CreateInitialRoamerMon @@ -11759,8 +11968,9 @@ thumb_func 0x8161df0 TryStartRoamerEncounter thumb_func 0x8161e2c UpdateRoamerHPStatus thumb_func 0x8161e60 SetRoamerInactive thumb_func 0x8161e78 GetRoamerLocation +# battle_tower.s thumb_func 0x8161e88 -thumb_func 0x8161e9c nullsub_941 +thumb_func 0x8161e9c nullsub_61 thumb_func 0x8161ea8 thumb_func 0x8161f68 thumb_func 0x8162008 @@ -11769,15 +11979,15 @@ thumb_func 0x8162140 ChooseSpecialBattleTowerTrainer thumb_func 0x8162304 ChooseNextBattleTowerTrainer thumb_func 0x816245c thumb_func 0x81624c8 -thumb_func 0x8162528 +thumb_func 0x8162528 SetBattleFacilityTrainerGfxId thumb_func 0x81626a0 SetEReaderTrainerGfxId -thumb_func 0x81626b0 IsFrontierTrainerFemale +thumb_func 0x81626b0 GetBattleFacilityTrainerGfxId thumb_func 0x81627a4 PutNewBattleTowerRecord thumb_func 0x81629a4 GetFrontierTrainerFrontSpriteId thumb_func 0x8162adc GetFrontierOpponentClass -thumb_func 0x8162c38 -thumb_func 0x8162d24 -thumb_func 0x8162e90 +thumb_func 0x8162c38 GetFrontierTrainerFacilityClass +thumb_func 0x8162d24 GetFrontierTrainerName +thumb_func 0x8162e90 IsFrontierTrainerFemale thumb_func 0x8162f68 FillFrontierTrainerParty thumb_func 0x8162f8c FillFrontierTrainersParties thumb_func 0x8162fc0 FillTentTrainerParty @@ -11795,8 +12005,8 @@ thumb_func 0x81639ec DoSpecialTrainerBattle thumb_func 0x8163db8 SaveCurrentWinStreak thumb_func 0x8163e0c thumb_func 0x8163f68 SaveBattleTowerProgress -thumb_func 0x8164000 nullsub_95 -thumb_func 0x8164004 nullsub_94 +thumb_func 0x8164000 SpriteCB_Null6 +thumb_func 0x8164004 GetEreaderTrainerFrontSpriteId thumb_func 0x8164008 thumb_func 0x81640b0 thumb_func 0x81641c8 @@ -11811,10 +12021,10 @@ thumb_func 0x8164e3c CalcEmeraldBattleTowerChecksum thumb_func 0x8164e60 CalcRubyBattleTowerChecksum thumb_func 0x8164e84 ClearBattleTowerRecord thumb_func 0x8164e98 GetCurrentBattleTowerWinStreak -thumb_func 0x8164ec8 +thumb_func 0x8164ec8 AwardBattleTowerRibbons thumb_func 0x8164fd8 FillEReaderTrainerWithPlayerData -thumb_func 0x81650c0 -thumb_func 0x81650e0 +thumb_func 0x81650c0 GetMonCountForBattleMode +thumb_func 0x81650e0 GetEreaderTrainerClassId thumb_func 0x8165100 GetEreaderTrainerName thumb_func 0x8165130 ValidateEReaderTrainer thumb_func 0x81651a4 SetEReaderTrainerChecksum @@ -11823,8 +12033,8 @@ thumb_func 0x81651dc CopyEReaderTrainerGreeting thumb_func 0x81651f8 CopyEReaderTrainerFarewellMessage thumb_func 0x8165248 thumb_func 0x8165280 FillPartnerParty -thumb_func 0x81656c8 -thumb_func 0x8165820 +thumb_func 0x81656c8 RubyBattleTowerRecordToEmerald +thumb_func 0x8165820 EmeraldBattleTowerRecordToRuby thumb_func 0x8165924 CalcApprenticeChecksum thumb_func 0x8165944 ClearApprentice thumb_func 0x816595c ValidateApprenticesChecksums @@ -11832,7 +12042,7 @@ thumb_func 0x81659c4 GetBattleTowerTrainerLanguage thumb_func 0x8165a4c SetFacilityPtrsGetLevel thumb_func 0x8165a9c GetFrontierEnemyMonLevel thumb_func 0x8165ac0 GetHighestLevelInPlayerParty -thumb_func 0x8165b14 +thumb_func 0x8165b14 GetFrontierTrainerFixedIvs thumb_func 0x8165b4c thumb_func 0x8165b84 SetTentPtrsGetLevel thumb_func 0x8165c24 @@ -11840,6 +12050,7 @@ thumb_func 0x8165cb0 FillTentTrainerParty_ thumb_func 0x8165ec4 FacilityClassToGraphicsId thumb_func 0x8165f30 ValidateBattleTowerRecord thumb_func 0x8165f94 +# use_pokeblock.s thumb_func 0x8166010 ChooseMonToGivePokeblock thumb_func 0x8166058 CB2_ReturnAndChooseMonToGivePokeblock thumb_func 0x81660cc @@ -11893,21 +12104,22 @@ thumb_func 0x8168050 thumb_func 0x816809c thumb_func 0x8168130 thumb_func 0x816817c -thumb_func 0x81681bc nullsub_97 +# battle_controller_wally.s +thumb_func 0x81681bc WallyCmdEnd thumb_func 0x81681c0 SetControllerToWally -thumb_func 0x81681fc +thumb_func 0x81681fc WallyBufferRunCommand thumb_func 0x816824c WallyHandleActions -thumb_func 0x8168374 -thumb_func 0x81683ac +thumb_func 0x8168374 CompleteOnChosenItem +thumb_func 0x81683ac WallyHandleChosenMonReturnValue thumb_func 0x81683c4 CompleteOnFinishedAnimation thumb_func 0x81683dc OpenBagAfterPaletteFade -thumb_func 0x8168418 CompleteOnChosenItem +thumb_func 0x8168418 WallyHandleCmd39 thumb_func 0x8168454 thumb_func 0x8168620 -thumb_func 0x816873c CompleteOnHealthbarDone -thumb_func 0x81687ac DoHitAnimBlinkSpriteEffect +thumb_func 0x816873c +thumb_func 0x81687ac WallyHandleGetRawMonData thumb_func 0x8168828 -thumb_func 0x8168898 +thumb_func 0x8168898 WallyHandleOneReturnValue thumb_func 0x81688d0 thumb_func 0x8168900 WallyBufferExecCompleted thumb_func 0x8168978 @@ -11941,27 +12153,27 @@ thumb_func 0x816a3c4 WallyHandleChoosePokemon thumb_func 0x816a3d0 WallyHandleCmd23 thumb_func 0x816a3dc WallyHandleHealthBarUpdate thumb_func 0x816a4dc WallyHandleExpUpdate -thumb_func 0x816a4e8 +thumb_func 0x816a4e8 WallyHandleStatusIconUpdate thumb_func 0x816a4f4 WallyHandleStatusAnimation thumb_func 0x816a500 WallyHandleStatusXor thumb_func 0x816a50c WallyHandleDataTransfer thumb_func 0x816a518 WallyHandleDMA3Transfer thumb_func 0x816a524 WallyHandlePlayBGM thumb_func 0x816a530 WallyHandleCmd32 -thumb_func 0x816a53c +thumb_func 0x816a53c WallyHandleTwoReturnValues thumb_func 0x816a548 thumb_func 0x816a554 -thumb_func 0x816a560 +thumb_func 0x816a560 WallyHandleOneReturnValue_Duplicate thumb_func 0x816a56c WallyHandleCmd37 -thumb_func 0x816a578 +thumb_func 0x816a578 WallyHandleCmd38 thumb_func 0x816a584 -thumb_func 0x816a590 +thumb_func 0x816a590 WallyHandleCmd40 thumb_func 0x816a59c WallyHandleHitAnimation thumb_func 0x816a60c WallyHandleCmd42 thumb_func 0x816a618 WallyHandlePlaySE -thumb_func 0x816a648 -thumb_func 0x816a6a4 -thumb_func 0x816a6e0 +thumb_func 0x816a648 WallyHandlePlayFanfareOrBGM +thumb_func 0x816a6a4 WallyHandleFaintingCry +thumb_func 0x816a6e0 WallyHandleIntroSlide thumb_func 0x816a714 WallyHandleIntroTrainerBallThrow thumb_func 0x816a888 thumb_func 0x816aa0c @@ -11973,25 +12185,26 @@ thumb_func 0x816ab28 WallyHandleBattleAnimation thumb_func 0x816ab84 WallyHandleLinkStandbyMsg thumb_func 0x816ab90 WallyHandleResetActionMoveSelection thumb_func 0x816ab9c WallyHandleCmd55 -thumb_func 0x816abf8 nullsub_98 +thumb_func 0x816abf8 SpriteCB_Null7 +# player_pc.s thumb_func 0x816abfc NewGameInitPCItems thumb_func 0x816ac60 BedroomPC thumb_func 0x816aca0 PlayerPC -thumb_func 0x816ace0 +thumb_func 0x816ace0 InitPlayerPCMenu thumb_func 0x816adb0 PlayerPCProcessMenuInput thumb_func 0x816ae78 ReshowPlayerPC thumb_func 0x816ae94 PlayerPC_ItemStorage thumb_func 0x816aec0 PlayerPC_Mailbox thumb_func 0x816af50 PlayerPC_Decoration thumb_func 0x816af60 PlayerPC_TurnOff -thumb_func 0x816afa8 +thumb_func 0x816afa8 InitItemStorageMenu thumb_func 0x816b040 ItemStorageMenuPrint thumb_func 0x816b06c ItemStorageMenuProcessInput thumb_func 0x816b0ec ItemStorage_Deposit thumb_func 0x816b114 Task_ItemStorage_Deposit thumb_func 0x816b140 -thumb_func 0x816b160 -thumb_func 0x816b18c +thumb_func 0x816b160 Mailbox_DoRedrawMailboxMenuAfterReturn +thumb_func 0x816b18c ItemStorage_HandleReturnToProcessInput thumb_func 0x816b1bc ItemStorage_Withdraw thumb_func 0x816b208 ItemStorage_Toss thumb_func 0x816b254 ItemStorage_WithdrawToss_Helper @@ -12000,30 +12213,30 @@ thumb_func 0x816b2e4 ItemStorage_SetItemAndMailCount thumb_func 0x816b300 thumb_func 0x816b334 GetMailboxMailCount thumb_func 0x816b370 Mailbox_UpdateMailList -thumb_func 0x816b41c +thumb_func 0x816b41c Mailbox_DrawMailboxMenu thumb_func 0x816b488 Mailbox_ProcessInput -thumb_func 0x816b544 +thumb_func 0x816b544 Mailbox_PrintWhatToDoWithPlayerMailText thumb_func 0x816b5a4 Mailbox_ReturnToPlayerPC -thumb_func 0x816b5e8 +thumb_func 0x816b5e8 Mailbox_PrintMailOptions thumb_func 0x816b66c Mailbox_MailOptionsProcessInput thumb_func 0x816b6b8 Mailbox_DoMailRead thumb_func 0x816b6e4 Mailbox_FadeAndReadMail -thumb_func 0x816b740 +thumb_func 0x816b740 Mailbox_ReturnToFieldFromReadMail thumb_func 0x816b760 pal_fill_for_maplights_or_black -thumb_func 0x816b7a4 -thumb_func 0x816b7d4 +thumb_func 0x816b7a4 Mailbox_HandleReturnToProcessInput +thumb_func 0x816b7d4 Mailbox_MoveToBag thumb_func 0x816b7f0 Mailbox_DrawYesNoBeforeMove thumb_func 0x816b818 Mailbox_MoveToBagYesNoPrompt thumb_func 0x816b858 Mailbox_DoMailMoveToBag thumb_func 0x816b8ec Mailbox_CancelMoveToBag thumb_func 0x816b8fc Mailbox_Give -thumb_func 0x816b938 -thumb_func 0x816b968 +thumb_func 0x816b938 Mailbox_DoGiveMailPokeMenu +thumb_func 0x816b968 Mailbox_ReturnToMailListAfterDeposit thumb_func 0x816b988 Mailbox_UpdateMailListAfterDeposit -thumb_func 0x816b9f8 +thumb_func 0x816b9f8 Mailbox_NoPokemonForMail thumb_func 0x816ba14 Mailbox_Cancel thumb_func 0x816ba54 -thumb_func 0x816ba98 AnimTask_LoadPokeblockGfx +thumb_func 0x816ba98 thumb_func 0x816babc thumb_func 0x816bb04 thumb_func 0x816bb44 ItemStorage_RefreshListMenu @@ -12039,44 +12252,45 @@ thumb_func 0x816be94 thumb_func 0x816befc thumb_func 0x816bf44 thumb_func 0x816bf74 -thumb_func 0x816bf8c +thumb_func 0x816bf8c ItemStorage_ProcessWithdrawTossInput thumb_func 0x816c070 ItemStorage_GetItemPcResponse thumb_func 0x816c108 ItemStorage_PrintItemPcResponse thumb_func 0x816c154 ItemStorage_ProcessInput -thumb_func 0x816c1ec +thumb_func 0x816c1ec ItemStorage_GoBackToPlayerPCMenu_InitStorage thumb_func 0x816c268 ItemStorage_ItemSwapChoosePrompt thumb_func 0x816c314 thumb_func 0x816c3b8 ItemStorage_DoItemSwap thumb_func 0x816c4a8 thumb_func 0x816c4d4 thumb_func 0x816c534 ItemStorage_DoItemAction -thumb_func 0x816c630 +thumb_func 0x816c630 ItemStorage_HandleQuantityRolling thumb_func 0x816c70c ItemStorage_DoItemWithdraw thumb_func 0x816c7c8 ItemStorage_DoItemToss thumb_func 0x816c8a4 ItemStorage_ResumeInputFromYesToss thumb_func 0x816c8d8 ItemStorage_ResumeInputFromNoToss thumb_func 0x816c914 ItemStorage_HandleRemoveItem thumb_func 0x816c984 ItemStorage_WaitPressHandleResumeProcessInput -thumb_func 0x816c9d0 +thumb_func 0x816c9d0 ItemStorage_StartScrollIndicatorAndProcessInput +# intro.s thumb_func 0x816c9f8 VBlankCB_Intro thumb_func 0x816ca10 MainCB2_Intro thumb_func 0x816ca64 MainCB2_EndIntro thumb_func 0x816ca80 LoadCopyrightGraphics -thumb_func 0x816cac8 -thumb_func 0x816cad8 task00_08081A90 +thumb_func 0x816cac8 SerialCB_CopyrightScreen +thumb_func 0x816cad8 SetUpCopyrightScreen thumb_func 0x816cc90 CB2_InitCopyrightScreenAfterBootup -thumb_func 0x816ccf0 +thumb_func 0x816ccf0 CB2_InitCopyrightScreenAfterTitleScreen thumb_func 0x816ccfc Task_IntroLoadPart1Graphics thumb_func 0x816cf10 Task_IntroFadeIn thumb_func 0x816cf74 Task_IntroWaterDrops thumb_func 0x816d084 Task_IntroWaterDrops_3 thumb_func 0x816d11c thumb_func 0x816d138 Task_IntroScrollDownAndShowFlygon -thumb_func 0x816d23c +thumb_func 0x816d23c Task_IntroWaitToSetupPart3 thumb_func 0x816d270 Task_IntroLoadPart2Graphics thumb_func 0x816d2c8 Task_IntroStartBikeRide thumb_func 0x816d434 Task_IntroHandleBikeAndFlygonMovement -thumb_func 0x816d5cc +thumb_func 0x816d5cc Task_IntroWaitToSetupPart2 thumb_func 0x816d600 thumb_func 0x816d7a4 thumb_func 0x816d8cc @@ -12086,7 +12300,7 @@ thumb_func 0x816dae0 Task_IntroWaitToSetupPart3LegendsFight thumb_func 0x816db0c Task_IntroLoadGroudonScene thumb_func 0x816dbbc Task_IntroLoadPart3Graphics1 thumb_func 0x816dc60 Task_IntroLoadPart3Graphics2 -thumb_func 0x816dcb4 +thumb_func 0x816dcb4 Task_IntroLoadPart3Graphics3 thumb_func 0x816dcd0 Task_IntroLoadPart3Graphics4 thumb_func 0x816dd10 Task_IntroGroudonScene thumb_func 0x816df74 CreateGroudonRockSprites @@ -12109,7 +12323,7 @@ thumb_func 0x816ec74 Task_EndIntroMovie thumb_func 0x816ec8c Task_IntroRayquazaGlowScene_1 thumb_func 0x816eea4 intro_reset_and_hide_bgs thumb_func 0x816ef0c Task_IntroWaterDrops_1 -thumb_func 0x816efc4 +thumb_func 0x816efc4 Task_IntroWaterDrops_2 thumb_func 0x816f08c PanFadeAndZoomScreen thumb_func 0x816f0fc thumb_func 0x816f188 @@ -12117,8 +12331,8 @@ thumb_func 0x816f238 thumb_func 0x816f250 thumb_func 0x816f398 thumb_func 0x816f444 -thumb_func 0x816f4b4 -thumb_func 0x816f534 +thumb_func 0x816f4b4 SpriteCB_WaterDropFall_2 +thumb_func 0x816f534 SpriteCB_WaterDropFall thumb_func 0x816f5b4 CreateWaterDrop thumb_func 0x816f7b8 SpriteCB_IntroGraphicsBicycle thumb_func 0x816f894 SpriteCB_IntroGraphicsFlygon @@ -12127,13 +12341,16 @@ thumb_func 0x816fb3c thumb_func 0x816fbb0 CreatePart1Animations thumb_func 0x816fcd4 thumb_func 0x816fe38 SpriteCB_IntroRayquazaHyperbeam +# reset_save_heap.s thumb_func 0x816fef0 +# field_region_map.s thumb_func 0x816ff84 FieldInitRegionMap thumb_func 0x816ffbc MCB2_InitRegionMapRegisters thumb_func 0x8170058 VBCB_FieldUpdateRegionMap thumb_func 0x817006c MCB2_FieldUpdateRegionMap -thumb_func 0x8170088 -thumb_func 0x8170214 StartMirageTowerShake +thumb_func 0x8170088 FieldUpdateRegionMap +thumb_func 0x8170214 PrintRegionMapSecName +# battle_anim_special.s thumb_func 0x817025c unref_sub_8170478 thumb_func 0x8170444 thumb_func 0x8170618 @@ -12178,7 +12395,7 @@ thumb_func 0x8171c04 thumb_func 0x8171c34 PokeBallOpenParticleAnimation thumb_func 0x8171d4c PokeBallOpenParticleAnimation_Step1 thumb_func 0x8171d6c PokeBallOpenParticleAnimation_Step2 -thumb_func 0x8171da8 +thumb_func 0x8171da8 TimerBallOpenParticleAnimation thumb_func 0x8171eac DiveBallOpenParticleAnimation thumb_func 0x8171fb0 SafariBallOpenParticleAnimation thumb_func 0x81720b0 UltraBallOpenParticleAnimation @@ -12203,7 +12420,7 @@ thumb_func 0x8172dd0 thumb_func 0x8172f94 thumb_func 0x8172fe0 thumb_func 0x8173034 -thumb_func 0x8173094 +thumb_func 0x8173094 AnimTask_LoadPokeblockGfx thumb_func 0x81730c8 AnimTask_FreePokeblockGfx thumb_func 0x81730f0 thumb_func 0x8173180 @@ -12212,6 +12429,7 @@ thumb_func 0x81731e4 thumb_func 0x8173240 thumb_func 0x8173298 AnimTask_GetTrappedMoveAnimId thumb_func 0x8173300 AnimTask_GetBattlersFromArg +# hall_of_fame.s thumb_func 0x8173330 VBlankCB_HallOfFame thumb_func 0x8173344 CB2_HallOfFame thumb_func 0x8173360 InitHallOfFameScreen @@ -12221,7 +12439,7 @@ thumb_func 0x8173500 Task_Hof_InitMonData thumb_func 0x81736a0 Task_Hof_InitTeamSaveData thumb_func 0x81737a8 Task_Hof_TrySaveData thumb_func 0x8173840 Task_Hof_WaitForFrames -thumb_func 0x8173870 +thumb_func 0x8173870 Task_Hof_SetMonDisplayTask thumb_func 0x817388c Task_Hof_DisplayMon thumb_func 0x81739a4 Task_Hof_PrintMonInfoAfterAnimating thumb_func 0x8173a18 Task_Hof_TryDisplayAnotherMon @@ -12243,9 +12461,9 @@ thumb_func 0x817467c Task_HofPC_HandlePaletteOnExit thumb_func 0x81746d4 Task_HofPC_HandleExit thumb_func 0x8174784 Task_HofPC_PrintDataIsCorrupted thumb_func 0x81747ec Task_HofPC_ExitOnButtonPress -thumb_func 0x817481c -thumb_func 0x817487c -thumb_func 0x8174b74 NewGameBirchSpeech_CreateDialogueWindowBorder +thumb_func 0x817481c HallOfFame_PrintWelcomeText +thumb_func 0x817487c HallOfFame_PrintMonInfo +thumb_func 0x8174b74 HallOfFame_PrintPlayerInfo thumb_func 0x8174dc8 ClearVramOamPltt_LoadHofPal thumb_func 0x8174e74 thumb_func 0x8174eb0 @@ -12254,9 +12472,10 @@ thumb_func 0x8175024 SpriteCB_GetOnScreenAndAnimate thumb_func 0x81750a8 thumb_func 0x8175100 thumb_func 0x8175184 -thumb_func 0x81751c4 Task_RayDescendsEnd +thumb_func 0x81751c4 thumb_func 0x81751f8 thumb_func 0x8175268 +# credits.s thumb_func 0x81753cc thumb_func 0x81753e0 thumb_func 0x817544c @@ -12277,7 +12496,7 @@ thumb_func 0x8175ae4 thumb_func 0x8175b40 thumb_func 0x8175bd4 thumb_func 0x8175bf0 -thumb_func 0x8175cac EvolutionRenameMon +thumb_func 0x8175cac thumb_func 0x8175f1c thumb_func 0x8176024 thumb_func 0x817615c @@ -12295,6 +12514,7 @@ thumb_func 0x8176edc thumb_func 0x81770b0 thumb_func 0x8177144 thumb_func 0x8177214 +# lottery_corner.s thumb_func 0x81773e4 ResetLotteryCorner thumb_func 0x8177410 SetRandomLotteryNumber thumb_func 0x8177458 RetrieveLotteryNumber @@ -12303,26 +12523,28 @@ thumb_func 0x8177618 GetMatchingDigits thumb_func 0x81776a0 SetLotteryNumber thumb_func 0x81776c8 GetLotteryNumber thumb_func 0x81776f0 SetLotteryNumber16_Unused -thumb_func 0x8177700 VblankCB +thumb_func 0x8177700 thumb_func 0x8177714 CB2_ShowDiploma -thumb_func 0x8177894 LinkPartnerHandleUnknownYesNoBox -thumb_func 0x81778ac +# option_menu.s +thumb_func 0x8177894 MainCB2 +thumb_func 0x81778ac Task_DiplomaFadeIn thumb_func 0x81778dc Task_DiplomaWaitForKeyPress thumb_func 0x8177924 Task_DiplomaFadeOut -thumb_func 0x8177960 +thumb_func 0x8177960 DisplayDiplomaText thumb_func 0x8177a2c InitDiplomaBg thumb_func 0x8177a84 InitDiplomaWindow thumb_func 0x8177ab4 PrintDiplomaText +# berry_tag_screen.s thumb_func 0x8177afc DoBerryTagScreen -thumb_func 0x8177b3c -thumb_func 0x8177b58 +thumb_func 0x8177b3c CB2_BerryTagScreen +thumb_func 0x8177b58 VblankCB thumb_func 0x8177b6c CB2_InitBerryTagScreen thumb_func 0x8177b98 InitBerryTagScreen -thumb_func 0x8177cfc +thumb_func 0x8177cfc AddBerryTagTextToBg0 thumb_func 0x8177d70 LoadBerryTagGfx -thumb_func 0x8177ef0 +thumb_func 0x8177ef0 PrintMysteryMenuText thumb_func 0x8177f34 PrintTextInBerryTagScreen -thumb_func 0x8177f78 +thumb_func 0x8177f78 PrintBerrySize thumb_func 0x8177fcc PrintAllBerryData thumb_func 0x8177fe8 PrintBerryNumberAndName thumb_func 0x817804c @@ -12345,7 +12567,8 @@ thumb_func 0x8178810 CheckLanguageMatch thumb_func 0x817882c CB2_InitMysteryEventMenu thumb_func 0x81788f8 GetEventLoadMessage thumb_func 0x8178930 CB2_MysteryEventMenu -thumb_func 0x8178d7c PrintMysteryMenuText +thumb_func 0x8178d7c +# save_failed_screen.s thumb_func 0x8178dfc SaveFailedScreenTextPrint thumb_func 0x8178e48 DoSaveFailedScreen thumb_func 0x8178e80 @@ -12358,24 +12581,26 @@ thumb_func 0x817930c VBlankCB_UpdateClockGraphics thumb_func 0x81793cc VerifySectorWipe thumb_func 0x817940c WipeSector thumb_func 0x8179464 WipeSectors +# braille_puzzles.s thumb_func 0x81794a0 ShouldDoBrailleDigEffect thumb_func 0x81794f4 DoBrailleDigEffect thumb_func 0x8179564 CheckRelicanthWailord -thumb_func 0x81795b4 nullsub_17 +thumb_func 0x81795b4 ShouldDoBrailleRegirockEffectOld thumb_func 0x81795b8 DoSealedChamberShakingEffect1 thumb_func 0x81795f4 DoSealedChamberShakingEffect2 thumb_func 0x8179630 SealedChamberShakingEffect thumb_func 0x8179694 ShouldDoBrailleRegirockEffect -thumb_func 0x81796ec -thumb_func 0x8179708 +thumb_func 0x81796ec SetUpPuzzleEffectRegirock +thumb_func 0x8179708 UseRegirockHm_Callback thumb_func 0x8179718 DoBrailleRegirockEffect thumb_func 0x8179788 ShouldDoBrailleRegisteelEffect -thumb_func 0x81797d0 -thumb_func 0x81797ec +thumb_func 0x81797d0 SetUpPuzzleEffectRegisteel +thumb_func 0x81797ec UseRegisteelHm_Callback thumb_func 0x81797fc DoBrailleRegisteelEffect -thumb_func 0x817986c nullsub_99 +thumb_func 0x817986c DoBrailleWait thumb_func 0x8179870 FldEff_UsePuzzleEffect thumb_func 0x81798bc ShouldDoBrailleRegicePuzzle +# pokeblock_feed.s thumb_func 0x8179a20 CB2_PokeblockFeed thumb_func 0x8179a3c VBlankCB_PokeblockFeed thumb_func 0x8179a50 TransitionToPokeblockFeedScene @@ -12404,20 +12629,23 @@ thumb_func 0x817a89c thumb_func 0x817a8f4 FreeMonSpriteOamMatrix thumb_func 0x817a90c thumb_func 0x817aa20 +# clear_save_data_screen.s thumb_func 0x817ab80 CB2_InitClearSaveDataScreen -thumb_func 0x817ab9c +thumb_func 0x817ab9c Task_DoClearSaveDataScreenYesNo thumb_func 0x817ac00 Task_ClearSaveDataScreenYesNoChoice thumb_func 0x817ac80 Task_ClearSaveData -thumb_func 0x817aca4 +thumb_func 0x817aca4 MainCB +# diploma.s thumb_func 0x817acb4 VBlankCB thumb_func 0x817acc0 SetupClearSaveDataScreen thumb_func 0x817ae94 CB2_FadeAndDoReset thumb_func 0x817aeec InitClearSaveDataScreenWindows +# intro_credits_graphics.s thumb_func 0x817af24 load_intro_part2_graphics -thumb_func 0x817b010 LinkPartnerHandleChooseMove +thumb_func 0x817b010 thumb_func 0x817b088 thumb_func 0x817b268 -thumb_func 0x817b29c +thumb_func 0x817b29c CreateBicycleAnimationTask thumb_func 0x817b318 thumb_func 0x817b400 thumb_func 0x817b4ec @@ -12425,15 +12653,16 @@ thumb_func 0x817b558 thumb_func 0x817b62c thumb_func 0x817b648 thumb_func 0x817b664 -thumb_func 0x817b680 nullsub_1001 +thumb_func 0x817b680 nullsub_65 thumb_func 0x817b684 -thumb_func 0x817b6f4 -thumb_func 0x817b74c -thumb_func 0x817b7a4 nullsub_101 +thumb_func 0x817b6f4 intro_create_brendan_sprite +thumb_func 0x817b74c intro_create_may_sprite +thumb_func 0x817b7a4 nullsub_66 thumb_func 0x817b7a8 -thumb_func 0x817b808 +thumb_func 0x817b808 intro_create_flygon_sprite thumb_func 0x817b884 -thumb_func 0x817b900 nullsub_100 +# evolution_graphics.s +thumb_func 0x817b900 PokeEvoSprite_DummySpriteCB thumb_func 0x817b904 SetEvoSparklesMatrices thumb_func 0x817b93c SpriteCB_PreEvoSparkleSet1 thumb_func 0x817b9f8 CreatePreEvoSparkleSet1 @@ -12448,36 +12677,40 @@ thumb_func 0x817bd54 LaunchTask_PreEvoSparklesSet1 thumb_func 0x817bd84 EvoTask_BeginPreSet1_FadeAndPlaySE thumb_func 0x817bdd4 EvoTask_CreatePreEvoSparkleSet1 thumb_func 0x817be44 EvoTask_WaitForPre1SparklesToGoUp -thumb_func 0x817be74 +thumb_func 0x817be74 LaunchTask_PostEvoSparklesSet1 thumb_func 0x817be8c EvoTask_BeginPreSparklesSet2 thumb_func 0x817bec0 EvoTask_CreatePreEvoSparklesSet2 -thumb_func 0x817bf18 -thumb_func 0x817bf28 +thumb_func 0x817bf18 EvoTask_DestroyPreSet2Task +thumb_func 0x817bf28 LaunchTask_PreEvoSparklesSet2 thumb_func 0x817bf40 EvoTask_BeginPostSparklesSet1 thumb_func 0x817bf74 EvoTask_CreatePostEvoSparklesSet1 thumb_func 0x817bff4 EvoTask_DestroyPostSet1Task -thumb_func 0x817c004 +thumb_func 0x817c004 LaunchTask_PostEvoSparklesSet2AndFlash thumb_func 0x817c034 EvoTask_BeginPostSparklesSet2_AndFlash thumb_func 0x817c094 EvoTask_CreatePostEvoSparklesSet2_AndFlash thumb_func 0x817c120 EvoTask_DestroyPostSet2AndFlashTask -thumb_func 0x817c140 +thumb_func 0x817c140 LaunchTask_PostEvoSparklesSet2AndFlash_Trade thumb_func 0x817c170 EvoTask_BeginPostSparklesSet2_AndFlash_Trade thumb_func 0x817c1d0 EvoTask_CreatePostEvoSparklesSet2_AndFlash_Trade -thumb_func 0x817c25c nullsub_103 +thumb_func 0x817c25c EvoSparkle_DummySpriteCb thumb_func 0x817c260 thumb_func 0x817c3ac thumb_func 0x817c3d0 thumb_func 0x817c420 thumb_func 0x817c53c PreEvoInvisible_PostEvoVisible_KillTask thumb_func 0x817c5ec PreEvoVisible_PostEvoInvisible_KillTask -thumb_func 0x817c69c -thumb_func 0x817c6b0 -thumb_func 0x817c704 +# bard_music.s +thumb_func 0x817c69c CalcWordPitch +thumb_func 0x817c6b0 GetWordPhonemes +thumb_func 0x817c704 GetWordSounds +# fldeff_teleport.s thumb_func 0x817c768 SetUpFieldMove_Teleport thumb_func 0x817c7a8 FieldCallback_Teleport thumb_func 0x817c7c8 FldEff_UseTeleport thumb_func 0x817c7f8 StartTeleportFieldEffect +# battle_tv.s thumb_func 0x817c808 BattleTv_SetDataBasedOnString +thumb_func 0x817d9bc thumb_func 0x817df64 thumb_func 0x817dfa8 BattleTv_SetDataBasedOnMove thumb_func 0x817e1d8 BattleTv_SetDataBasedOnAnimation @@ -12489,14 +12722,15 @@ thumb_func 0x817f0c8 ShouldCalculateDamage thumb_func 0x817f154 BattleTv_ClearExplosionFaintCause thumb_func 0x817f1e8 GetBattlerMoveSlotId thumb_func 0x817f240 AddPointsBasedOnWeather -thumb_func 0x817f298 nullsub_27 +# pokemon_animation.s +thumb_func 0x817f298 MonAnimDummySpriteCallback thumb_func 0x817f29c thumb_func 0x817f320 GetSpeciesBackAnimSet thumb_func 0x817f344 Task_HandleMonAnimation thumb_func 0x817f3f0 LaunchAnimationTaskForFrontSprite thumb_func 0x817f424 StartMonSummaryAnimation thumb_func 0x817f440 LaunchAnimationTaskForBackSprite -thumb_func 0x817f4b8 +thumb_func 0x817f4b8 SetSpriteCB_MonAnimDummy thumb_func 0x817f4c4 SetAffineData thumb_func 0x817f51c HandleStartAffineAnim thumb_func 0x817f580 HandleSetAffineData @@ -12505,11 +12739,11 @@ thumb_func 0x817f5d0 thumb_func 0x817f604 thumb_func 0x817f628 thumb_func 0x817f6b4 pokemonanimfunc_01 -thumb_func 0x817f744 +thumb_func 0x817f744 pokemonanimfunc_02 thumb_func 0x817f7a8 -thumb_func 0x817f808 +thumb_func 0x817f808 pokemonanimfunc_03 thumb_func 0x817f824 -thumb_func 0x817f884 +thumb_func 0x817f884 pokemonanimfunc_04 thumb_func 0x817f8a0 thumb_func 0x817f918 pokemonanimfunc_1E thumb_func 0x817f934 pokemonanimfunc_06 @@ -12545,10 +12779,10 @@ thumb_func 0x81806d4 thumb_func 0x8180784 pokemonanimfunc_13 thumb_func 0x81807ac thumb_func 0x81808fc pokemonanimfunc_05 -thumb_func 0x8180938 +thumb_func 0x8180938 pokemonanimfunc_20 thumb_func 0x81809a4 pokemonanimfunc_21 thumb_func 0x8180a08 pokemonanimfunc_22 -thumb_func 0x8180a70 +thumb_func 0x8180a70 pokemonanimfunc_23 thumb_func 0x8180adc pokemonanimfunc_24 thumb_func 0x8180b48 pokemonanimfunc_25 thumb_func 0x8180b60 @@ -12624,7 +12858,7 @@ thumb_func 0x8182bd0 pokemonanimfunc_45 thumb_func 0x8182bec pokemonanimfunc_46 thumb_func 0x8182c08 pokemonanimfunc_47 thumb_func 0x8182c24 pokemonanimfunc_48 -thumb_func 0x8182c60 +thumb_func 0x8182c60 pokemonanimfunc_49 thumb_func 0x8182c70 pokemonanimfunc_4A thumb_func 0x8182c80 pokemonanimfunc_4B thumb_func 0x8182cac pokemonanimfunc_4C @@ -12647,7 +12881,7 @@ thumb_func 0x8182fb4 pokemonanimfunc_0E thumb_func 0x8182fec thumb_func 0x8183040 pokemonanimfunc_57 thumb_func 0x8183060 pokemonanimfunc_58 -thumb_func 0x8183080 pokemonanimfunc_66 +thumb_func 0x8183080 pokemonanimfunc_59 thumb_func 0x8183174 thumb_func 0x8183294 pokemonanimfunc_5A thumb_func 0x81832c4 @@ -12656,7 +12890,7 @@ thumb_func 0x8183420 thumb_func 0x81834c4 pokemonanimfunc_5C thumb_func 0x81834e4 pokemonanimfunc_5D thumb_func 0x8183504 pokemonanimfunc_5E -thumb_func 0x8183520 +thumb_func 0x8183520 pokemonanimfunc_5F thumb_func 0x8183584 pokemonanimfunc_60 thumb_func 0x81835e8 pokemonanimfunc_61 thumb_func 0x8183608 pokemonanimfunc_62 @@ -12664,7 +12898,7 @@ thumb_func 0x8183628 pokemonanimfunc_63 thumb_func 0x8183648 pokemonanimfunc_64 thumb_func 0x8183688 thumb_func 0x81837e8 pokemonanimfunc_65 -thumb_func 0x8183818 +thumb_func 0x8183818 pokemonanimfunc_66 thumb_func 0x818390c pokemonanimfunc_67 thumb_func 0x81839f8 thumb_func 0x8183ab8 pokemonanimfunc_68 @@ -12728,13 +12962,14 @@ thumb_func 0x8184a8c pokemonanimfunc_93 thumb_func 0x8184af4 pokemonanimfunc_94 thumb_func 0x8184b5c pokemonanimfunc_95 thumb_func 0x8184bc8 pokemonanimfunc_96 -thumb_func 0x8184c34 +thumb_func 0x8184c34 SpriteCB_SetDummyOnAnimEnd +# recorded_battle.s thumb_func 0x8184c50 thumb_func 0x8184d04 thumb_func 0x8184e1c RecordedBattle_SetBattlerAction thumb_func 0x8184e68 RecordedBattle_ClearBattlerAction thumb_func 0x8184eb4 RecordedBattle_GetBattlerAction -thumb_func 0x8184f30 +thumb_func 0x8184f30 GetRecordedBattleApprenticeId thumb_func 0x8184f3c thumb_func 0x8185008 thumb_func 0x81850d8 @@ -12746,34 +12981,34 @@ thumb_func 0x8185810 TryCopyRecordedBattleSaveData thumb_func 0x8185844 CopyRecordedBattleFromSave thumb_func 0x818586c CB2_RecordedBattleEnd thumb_func 0x81858d8 Task_StartAfterCountdown -thumb_func 0x818591c +thumb_func 0x818591c SetVariablesForRecordedBattle thumb_func 0x8185b7c PlayRecordedBattle thumb_func 0x8185be4 CB2_RecordedBattle -thumb_func 0x8185bf8 -thumb_func 0x8185c04 -thumb_func 0x8185c10 -thumb_func 0x8185c54 +thumb_func 0x8185bf8 GetRecordedBattleApprenticeLanguage +thumb_func 0x8185c04 GetRecordedBattleFronterBrainSymbol +thumb_func 0x8185c10 RecordedBattle_RestoreSavedParties +thumb_func 0x8185c54 RecordedBattle_SaveParties thumb_func 0x8185c98 GetActiveBattlerLinkPlayerGender thumb_func 0x8185cdc thumb_func 0x8185ce8 -thumb_func 0x8185d04 -thumb_func 0x8185d10 -thumb_func 0x8185d1c +thumb_func 0x8185d04 GetRecordedBattleFrontierFacility +thumb_func 0x8185d10 GetRecordedBattleRecordMixFriendClass +thumb_func 0x8185d1c GetBattleSceneInRecordedBattle thumb_func 0x8185d28 RecordedBattle_CopyBattlerMoves thumb_func 0x8185d94 -thumb_func 0x8186190 +thumb_func 0x8186190 GetAiScriptsInRecordedBattle thumb_func 0x818619c thumb_func 0x81861a8 thumb_func 0x81861c0 -thumb_func 0x81861e0 -thumb_func 0x81861ec -thumb_func 0x81861f8 -thumb_func 0x818620c -thumb_func 0x8186214 nullsub_1041 +thumb_func 0x81861e0 GetRecordedBattleRecordMixFriendLanguage +thumb_func 0x81861ec GetTextSpeedInRecordedBattle +thumb_func 0x81861f8 RecordedBattle_SaveBattleOutcome +thumb_func 0x818620c GetRecordedBattleEasyChatSpeech +thumb_func 0x8186214 thumb_func 0x8186218 thumb_func 0x8186234 thumb_func 0x8186284 -thumb_func 0x81862bc CompleteOnBankSpriteCallbackDummy2 +thumb_func 0x81862bc thumb_func 0x81862f4 thumb_func 0x818635c thumb_func 0x81863a4 @@ -12790,17 +13025,18 @@ thumb_func 0x8186cc0 thumb_func 0x8186db0 thumb_func 0x8186e78 thumb_func 0x8186ea8 +# battle_controller_recorded_opponent.s thumb_func 0x8186ed8 RecordedOpponentBufferExecCompleted thumb_func 0x8186f50 RecordedOpponentHandleGetMonData -thumb_func 0x8186fc4 -thumb_func 0x8187770 -thumb_func 0x818777c +thumb_func 0x8186fc4 CopyRecordedOpponentMonData +thumb_func 0x8187770 RecordedOpponentHandleGetRawMonData +thumb_func 0x818777c RecordedOpponentHandleSetMonData thumb_func 0x81877d4 SetRecordedOpponentMonData -thumb_func 0x81880f4 +thumb_func 0x81880f4 RecordedOpponentHandleSetRawMonData thumb_func 0x8188168 RecordedOpponentHandleLoadMonSprite -thumb_func 0x81882b8 +thumb_func 0x81882b8 RecordedOpponentHandleSwitchInAnim thumb_func 0x8188304 -thumb_func 0x8188494 +thumb_func 0x8188494 RecordedOpponentHandleReturnMonToBall thumb_func 0x818852c thumb_func 0x81885b8 RecordedOpponentHandleDrawTrainerPic thumb_func 0x818876c RecordedOpponentHandleTrainerSlide @@ -12811,7 +13047,7 @@ thumb_func 0x81888dc RecordedOpponentHandleSuccessBallThrowAnim thumb_func 0x81888e8 RecordedOpponentHandleBallThrowAnim thumb_func 0x81888f4 RecordedOpponentHandlePause thumb_func 0x8188900 RecordedOpponentHandleMoveAnimation -thumb_func 0x8188a38 +thumb_func 0x8188a38 RecordedOpponentDoMoveAnimation thumb_func 0x8188bbc RecordedOpponentHandlePrintString thumb_func 0x8188c10 RecordedOpponentHandlePrintSelectionString thumb_func 0x8188c1c RecordedOpponentHandleChooseAction @@ -12821,12 +13057,12 @@ thumb_func 0x8188ca8 RecordedOpponentHandleChooseItem thumb_func 0x8188cb4 RecordedOpponentHandleChoosePokemon thumb_func 0x8188cf0 RecordedOpponentHandleCmd23 thumb_func 0x8188cfc RecordedOpponentHandleHealthBarUpdate -thumb_func 0x8188dec +thumb_func 0x8188dec RecordedOpponentHandleExpUpdate thumb_func 0x8188df8 RecordedOpponentHandleStatusIconUpdate thumb_func 0x8188e70 RecordedOpponentHandleStatusAnimation thumb_func 0x8188ed8 RecordedOpponentHandleStatusXor thumb_func 0x8188ee4 RecordedOpponentHandleDataTransfer -thumb_func 0x8188ef0 +thumb_func 0x8188ef0 RecordedOpponentHandleDMA3Transfer thumb_func 0x8188efc RecordedOpponentHandlePlayBGM thumb_func 0x8188f08 RecordedOpponentHandleCmd32 thumb_func 0x8188f14 RecordedOpponentHandleTwoReturnValues @@ -12842,70 +13078,71 @@ thumb_func 0x8189048 RecordedOpponentHandleCmd42 thumb_func 0x8189054 RecordedOpponentHandlePlaySE thumb_func 0x8189098 RecordedOpponentHandlePlayFanfareOrBGM thumb_func 0x81890f4 RecordedOpponentHandleFaintingCry -thumb_func 0x8189130 +thumb_func 0x8189130 RecordedOpponentHandleIntroSlide thumb_func 0x8189164 RecordedOpponentHandleIntroTrainerBallThrow thumb_func 0x8189274 thumb_func 0x8189358 -thumb_func 0x8189374 +thumb_func 0x8189374 RecordedOpponentHandleDrawPartyStatusSummary thumb_func 0x8189488 thumb_func 0x81894d0 RecordedOpponentHandleHidePartyStatusSummary thumb_func 0x8189520 RecordedOpponentHandleEndBounceEffect -thumb_func 0x818952c +thumb_func 0x818952c RecordedOpponentHandleSpriteInvisibility thumb_func 0x818958c RecordedOpponentHandleBattleAnimation thumb_func 0x81895f4 RecordedOpponentHandleLinkStandbyMsg thumb_func 0x8189600 RecordedOpponentHandleResetActionMoveSelection thumb_func 0x818960c RecordedOpponentHandleCmd55 -thumb_func 0x8189670 nullsub_105 -thumb_func 0x8189674 nullsub_104 -thumb_func 0x8189678 -thumb_func 0x8189694 +thumb_func 0x8189670 RecordedOpponentCmdEnd +# battle_controller_recorded_player.s +thumb_func 0x8189674 nullsub_120 +thumb_func 0x8189678 SetControllerToRecordedPlayer +thumb_func 0x8189694 RecordedPlayerBufferRunCommand thumb_func 0x81896e4 thumb_func 0x818971c thumb_func 0x8189784 thumb_func 0x81897cc thumb_func 0x8189a6c -thumb_func 0x8189d90 +thumb_func 0x8189d90 RecordedPlayerHandleBallThrowAnim thumb_func 0x8189dd0 thumb_func 0x8189e40 thumb_func 0x8189edc -thumb_func 0x8189f4c -thumb_func 0x8189f64 +thumb_func 0x8189f4c RecordedPlayerHandleChosenMonReturnValue +thumb_func 0x8189f64 RecordedPlayerHandleHitAnimation thumb_func 0x8189fe0 thumb_func 0x818a054 thumb_func 0x818a0a8 thumb_func 0x818a19c thumb_func 0x818a240 RecordedPlayerBufferExecCompleted -thumb_func 0x818a2b8 CompleteOnFinishedStatusAnimation -thumb_func 0x818a2e8 CompleteOnFinishedBattleAnimation +thumb_func 0x818a2b8 RecordedPlayerHandleGetRawMonData +thumb_func 0x818a2e8 RecordedPlayerHandleOneReturnValue thumb_func 0x818a318 RecordedPlayerHandleGetMonData -thumb_func 0x818a38c -thumb_func 0x818ab38 -thumb_func 0x818ab44 +thumb_func 0x818a38c CopyRecordedPlayerMonData +thumb_func 0x818ab38 RecordedPlayerHandleSuccessBallThrowAnim +thumb_func 0x818ab44 RecordedPlayerHandleSetMonData thumb_func 0x818ab9c SetRecordedPlayerMonData -thumb_func 0x818b598 +thumb_func 0x818b598 RecordedPlayerHandleSetRawMonData thumb_func 0x818b60c RecordedPlayerHandleLoadMonSprite thumb_func 0x818b728 RecordedPlayerHandleSwitchInAnim thumb_func 0x818b798 -thumb_func 0x818b914 -thumb_func 0x818b9a4 DoSwitchOutAnimation +thumb_func 0x818b914 RecordedPlayerHandleReturnMonToBall +thumb_func 0x818b9a4 thumb_func 0x818ba30 RecordedPlayerHandleDrawTrainerPic thumb_func 0x818bcd8 RecordedPlayerHandleTrainerSlide -thumb_func 0x818bce4 +thumb_func 0x818bce4 RecordedPlayerHandleTrainerSlideBack thumb_func 0x818bd90 RecordedPlayerHandleFaintAnimation -thumb_func 0x818be7c -thumb_func 0x818be88 -thumb_func 0x818be94 -thumb_func 0x818bea0 +thumb_func 0x818be7c RecordedPlayerHandlePaletteFade +thumb_func 0x818be88 RecordedPlayerHandleTwoReturnValues +thumb_func 0x818be94 RecordedPlayerHandleChoosePokemon +thumb_func 0x818bea0 RecordedPlayerHandlePause thumb_func 0x818beac RecordedPlayerHandleMoveAnimation thumb_func 0x818bfe4 RecordedPlayerDoMoveAnimation -thumb_func 0x818c168 +thumb_func 0x818c168 RecordedPlayerHandlePrintString thumb_func 0x818c1bc RecordedPlayerHandlePrintSelectionString thumb_func 0x818c1c8 ChooseActionInBattlePalace thumb_func 0x818c204 RecordedPlayerHandleChooseAction -thumb_func 0x818c258 +thumb_func 0x818c258 RecordedPlayerHandleUnknownYesNoBox thumb_func 0x818c264 RecordedPlayerHandleChooseMove thumb_func 0x818c2c0 RecordedPlayerHandleChooseItem -thumb_func 0x818c2cc RecordedPlayerHandleChoosePokemon +thumb_func 0x818c2cc RecordedPlayerHandlePlaySE thumb_func 0x818c308 RecordedPlayerHandleCmd23 thumb_func 0x818c314 RecordedPlayerHandleHealthBarUpdate thumb_func 0x818c414 RecordedPlayerHandleExpUpdate @@ -12915,11 +13152,11 @@ thumb_func 0x818c500 RecordedPlayerHandleStatusXor thumb_func 0x818c50c RecordedPlayerHandleDataTransfer thumb_func 0x818c518 RecordedPlayerHandleDMA3Transfer thumb_func 0x818c524 RecordedPlayerHandlePlayBGM -thumb_func 0x818c530 +thumb_func 0x818c530 RecordedPlayerHandleCmd32 thumb_func 0x818c53c thumb_func 0x818c548 thumb_func 0x818c554 -thumb_func 0x818c560 +thumb_func 0x818c560 RecordedPlayerHandleOneReturnValue_Duplicate thumb_func 0x818c56c RecordedPlayerHandleCmd37 thumb_func 0x818c588 RecordedPlayerHandleCmd38 thumb_func 0x818c5c0 RecordedPlayerHandleCmd39 @@ -12929,7 +13166,7 @@ thumb_func 0x818c670 RecordedPlayerHandleCmd42 thumb_func 0x818c67c thumb_func 0x818c6c0 RecordedPlayerHandlePlayFanfareOrBGM thumb_func 0x818c71c RecordedPlayerHandleFaintingCry -thumb_func 0x818c75c +thumb_func 0x818c75c RecordedPlayerHandleIntroSlide thumb_func 0x818c790 RecordedPlayerHandleIntroTrainerBallThrow thumb_func 0x818c950 thumb_func 0x818ca5c RecordedPlayerHandleDrawPartyStatusSummary @@ -12941,8 +13178,9 @@ thumb_func 0x818cc24 RecordedPlayerHandleBattleAnimation thumb_func 0x818cc8c RecordedPlayerHandleLinkStandbyMsg thumb_func 0x818cc98 RecordedPlayerHandleResetActionMoveSelection thumb_func 0x818cca4 RecordedPlayerHandleCmd55 -thumb_func 0x818ccf0 nullsub_107 -thumb_func 0x818ccf4 nullsub_108 +thumb_func 0x818ccf0 RecordedPlayerCmdEnd +# trainer_pokemon_sprites.s +thumb_func 0x818ccf4 DummyPicSpriteCallback thumb_func 0x818ccf8 ResetAllPicSprites thumb_func 0x818cd20 DecompressPic thumb_func 0x818cdc8 DecompressPic_HandleDeoxys @@ -12965,7 +13203,8 @@ thumb_func 0x818d61c FreeAndDestroyTrainerPicSprite thumb_func 0x818d630 thumb_func 0x818d664 thumb_func 0x818d6a8 PlayerGenderToFrontTrainerPicId_Debug -thumb_func 0x818d6d8 +# lilycove_lady.s +thumb_func 0x818d6d8 GetLilycoveLadyId thumb_func 0x818d6ec thumb_func 0x818d75c SetLilycoveLady thumb_func 0x818d7a4 @@ -12982,7 +13221,7 @@ thumb_func 0x818d98c thumb_func 0x818d9c8 thumb_func 0x818d9e4 thumb_func 0x818da10 -thumb_func 0x818da30 SetRainStrengthFromSoundEffect +thumb_func 0x818da30 thumb_func 0x818da60 thumb_func 0x818da84 thumb_func 0x818da90 @@ -12991,7 +13230,7 @@ thumb_func 0x818db68 thumb_func 0x818db94 thumb_func 0x818dbac thumb_func 0x818dbe8 -thumb_func 0x818dc00 CB2_ReturnToField +thumb_func 0x818dc00 thumb_func 0x818dc0c thumb_func 0x818dc74 SetLilycoveQuizLady thumb_func 0x818dd10 @@ -13017,7 +13256,7 @@ thumb_func 0x818e0ec thumb_func 0x818e100 thumb_func 0x818e16c thumb_func 0x818e194 -thumb_func 0x818e1c0 MainCB2 +thumb_func 0x818e1c0 thumb_func 0x818e1cc thumb_func 0x818e260 thumb_func 0x818e294 SetLilycoveContestLady @@ -13038,8 +13277,9 @@ thumb_func 0x818e59c thumb_func 0x818e5bc thumb_func 0x818e5ec thumb_func 0x818e608 -thumb_func 0x818e61c nullsub_109 -thumb_func 0x818e628 +thumb_func 0x818e61c +# battle_dome.s +thumb_func 0x818e628 InitDomeChallenge thumb_func 0x818e6e0 GetDomeData thumb_func 0x818e984 SetDomeData thumb_func 0x818ec88 InitDomeTrainers @@ -13055,7 +13295,7 @@ thumb_func 0x818f918 thumb_func 0x818fa14 thumb_func 0x818fb10 thumb_func 0x818fc1c GetTypeEffectivenessPoints -thumb_func 0x818fdc4 +thumb_func 0x818fdc4 GetDomeTrainerMonIvs thumb_func 0x818fdfc TournamentIdOfOpponent thumb_func 0x818fef4 SetDomeOpponentId thumb_func 0x818ff08 TrainerIdOfPlayerOpponent @@ -13097,20 +13337,21 @@ thumb_func 0x81948e4 VblankCb1_BattleDome thumb_func 0x8194948 InitDomeFacilityTrainersAndMons thumb_func 0x8194968 RestoreDomePlayerParty thumb_func 0x8194a44 RestoreDomePlayerPartyHeldItems -thumb_func 0x8194ab4 +thumb_func 0x8194ab4 GetDomeBrainTrainerPicId thumb_func 0x8194ac0 GetPlayerSeededBeforeOpponent thumb_func 0x8194af8 BufferLastDomeWinnerName thumb_func 0x8194b58 -thumb_func 0x8194f58 -thumb_func 0x8194fa0 +thumb_func 0x8194f58 TrainerIdToDomeTournamentId +thumb_func 0x8194fa0 TrainerIdToTournamentId thumb_func 0x8194fe8 thumb_func 0x8195038 DecideRoundWinners thumb_func 0x8195498 CopyDomeTrainerName -thumb_func 0x8195510 -thumb_func 0x8195524 +thumb_func 0x8195510 CallBattleDomeFunction +thumb_func 0x8195524 GetDomeBrainTrainerClass thumb_func 0x8195538 CopyDomeBrainTrainerName -thumb_func 0x8195560 -thumb_func 0x8195574 nullsub_1101 +# battle_palace.s +thumb_func 0x8195560 CallBattlePalaceFunction +thumb_func 0x8195574 thumb_func 0x8195580 thumb_func 0x8195638 thumb_func 0x81956e4 @@ -13121,6 +13362,7 @@ thumb_func 0x819587c thumb_func 0x81958e4 thumb_func 0x8195928 thumb_func 0x81959b8 +# match_call.s thumb_func 0x8195a10 InitMatchCallCounters thumb_func 0x8195a34 GetCurrentTotalMinutes thumb_func 0x8195a58 UpdateMatchCallMinutesCounter @@ -13132,7 +13374,7 @@ thumb_func 0x8195bcc GetNumRegisteredNPCs thumb_func 0x8195bf8 GetActiveMatchCallTrainerId thumb_func 0x8195c34 TryStartMatchCall thumb_func 0x8195c80 StartMatchCallFromScript -thumb_func 0x8195c94 +thumb_func 0x8195c94 IsMatchCallTaskActive thumb_func 0x8195ca8 StartMatchCall thumb_func 0x8195ce0 ExecuteMatchCall thumb_func 0x8195d2c LoadMatchCallWindowGfx @@ -13165,7 +13407,7 @@ thumb_func 0x8196698 PopulateMapName thumb_func 0x81966b4 GetLandEncounterSlot thumb_func 0x819674c GetWaterEncounterSlot thumb_func 0x8196794 PopulateSpeciesFromTrainerLocation -thumb_func 0x819686c atk50_openpartyscreen +thumb_func 0x819686c PopulateSpeciesFromTrainerParty thumb_func 0x81968e8 PopulateBattleFrontierFacilityName thumb_func 0x8196908 PopulateBattleFrontierStreak thumb_func 0x8196940 GetNumOwnedBadges @@ -13175,8 +13417,9 @@ thumb_func 0x8196b84 GetPokedexRatingLevel thumb_func 0x8196c74 thumb_func 0x8196d78 thumb_func 0x8196db8 +# menu.s thumb_func 0x8196dc4 InitStandardTextBoxWindows -thumb_func 0x8196de8 +thumb_func 0x8196de8 FreeAllOverworldWindowBuffers thumb_func 0x8196df4 thumb_func 0x8196e18 RunTextPrintersAndIsPrinter0Active thumb_func 0x8196e2c AddTextPrinterParameterized2 @@ -13184,12 +13427,12 @@ thumb_func 0x8196eb8 AddTextPrinterForMessage thumb_func 0x8196f04 AddTextPrinterForMessage_2 thumb_func 0x8196f50 AddTextPrinterWithCustomSpeedForMessage thumb_func 0x8196f98 -thumb_func 0x8196fb8 -thumb_func 0x8196ff0 -thumb_func 0x8197028 -thumb_func 0x8197060 +thumb_func 0x8196fb8 ClearDialogWindowAndFrame +thumb_func 0x8196ff0 ClearStdWindowAndFrame +thumb_func 0x8197028 DrawDialogueFrame +thumb_func 0x8197060 DrawStdWindowFrame thumb_func 0x8197098 WindowFunc_DrawStandardFrame -thumb_func 0x81971e8 +thumb_func 0x81971e8 WindowFunc_DrawDialogueFrame thumb_func 0x81975a0 WindowFunc_ClearStdWindowAndFrame thumb_func 0x81975e8 WindowFunc_ClearDialogWindowAndFrame thumb_func 0x8197638 SetStandardWindowBorderStyle @@ -13199,29 +13442,29 @@ thumb_func 0x8197694 Menu_LoadStdPalAt thumb_func 0x81976ac thumb_func 0x81976b4 thumb_func 0x81976d0 DisplayItemMessageOnField -thumb_func 0x8197714 -thumb_func 0x819773c -thumb_func 0x8197768 +thumb_func 0x8197714 DisplayYesNoMenuDefaultYes +thumb_func 0x819773c DisplayYesNoMenuWithDefault +thumb_func 0x8197768 GetPlayerTextSpeed thumb_func 0x8197794 GetPlayerTextSpeedDelay thumb_func 0x81977c8 -thumb_func 0x819780c -thumb_func 0x8197818 +thumb_func 0x819780c GetStartMenuWindowId +thumb_func 0x8197818 RemoveMapNamePopUpWindow thumb_func 0x8197834 thumb_func 0x819783c thumb_func 0x8197844 AddMapNamePopUpWindow -thumb_func 0x819787c -thumb_func 0x8197888 +thumb_func 0x819787c GetMapNamePopUpWindowId +thumb_func 0x8197888 RemoveStartMenuWindow thumb_func 0x81978a4 AddTextPrinterWithCallbackForMessage thumb_func 0x81978f0 thumb_func 0x8197924 DrawDialogFrameWithCustomTileAndPalette thumb_func 0x819796c DrawDialogFrameWithCustomTile -thumb_func 0x81979bc -thumb_func 0x8197ebc +thumb_func 0x81979bc WindowFunc_DrawDialogFrameWithCustomTileAndPalette +thumb_func 0x8197ebc ClearDialogWindowAndFrameToTransparent thumb_func 0x8197ef4 WindowFunc_ClearDialogWindowAndFrameNullPalette thumb_func 0x8197f44 DrawStdFrameWithCustomTileAndPalette -thumb_func 0x8197f8c +thumb_func 0x8197f8c DrawStdFrameWithCustomTile thumb_func 0x8197fdc WindowFunc_DrawStdFrameWithCustomTileAndPalette -thumb_func 0x8198134 +thumb_func 0x8198134 ClearStdWindowAndFrameToTransparent thumb_func 0x819816c WindowFunc_ClearStdWindowAndFrameToTransparent thumb_func 0x81981b4 thumb_func 0x8198244 @@ -13232,7 +13475,7 @@ thumb_func 0x8198418 thumb_func 0x819844c thumb_func 0x81984b0 thumb_func 0x81984f0 -thumb_func 0x819854c +thumb_func 0x819854c RedrawMenuCursor thumb_func 0x81985e8 Menu_MoveCursor thumb_func 0x819862c Menu_MoveCursorNoWrapAround thumb_func 0x8198670 Menu_GetCursorPos @@ -13251,7 +13494,7 @@ thumb_func 0x8198bb4 thumb_func 0x8198c08 thumb_func 0x8198d44 thumb_func 0x8198d68 Menu_ProcessInputNoWrapClearOnChoose -thumb_func 0x8198d88 MovementType_WalkSequenceUpLeftDownRight_callback +thumb_func 0x8198d88 thumb_func 0x8198da4 thumb_func 0x8198e64 thumb_func 0x8198ecc @@ -13265,7 +13508,7 @@ thumb_func 0x81993a0 thumb_func 0x8199450 Menu_ProcessInputGridLayout thumb_func 0x81994f4 thumb_func 0x81995a0 -thumb_func 0x8199640 +thumb_func 0x8199640 clear_scheduled_bg_copies_to_vram thumb_func 0x8199654 schedule_bg_copy_tilemap_to_vram thumb_func 0x8199668 do_scheduled_bg_tilemap_copies_to_vram thumb_func 0x81996b8 reset_temp_tile_data_buffers @@ -13278,7 +13521,7 @@ thumb_func 0x8199888 copy_decompressed_tile_data_to_vram thumb_func 0x81998c8 thumb_func 0x8199954 thumb_func 0x81999d4 -thumb_func 0x8199a30 +thumb_func 0x8199a30 ResetBgPositions thumb_func 0x8199a88 thumb_func 0x8199afc AddTextPrinterParameterized3 thumb_func 0x8199b84 AddTextPrinterParameterized4 @@ -13290,9 +13533,10 @@ thumb_func 0x8199f14 thumb_func 0x8199f54 thumb_func 0x8199f90 blit_move_info_icon thumb_func 0x8199fdc +# battle_factory_screen.s thumb_func 0x819a0ec thumb_func 0x819a168 Select_CB2 -thumb_func 0x819a184 +thumb_func 0x819a184 Select_VblankCb thumb_func 0x819a198 DoBattleFactorySelectScreen thumb_func 0x819a1b4 CB2_InitSelectScreen thumb_func 0x819a64c Select_InitMonsData @@ -13314,7 +13558,7 @@ thumb_func 0x819b404 Select_CopyMonsToPlayerParty thumb_func 0x819b4e4 Select_ShowMenuOptions thumb_func 0x819b574 Select_ShowYesNoOptions thumb_func 0x819b5f8 -thumb_func 0x819b654 +thumb_func 0x819b654 Select_PrintRentalPkmnString thumb_func 0x819b688 Select_PrintMonSpecies thumb_func 0x819b708 Select_PrintSelectMonString thumb_func 0x819b76c Select_PrintCantSelectSameMon @@ -13324,7 +13568,7 @@ thumb_func 0x819b8a8 Select_RunMenuOptionFunc thumb_func 0x819b8c0 thumb_func 0x819b8d4 Select_OptionRentDeselect thumb_func 0x819b940 -thumb_func 0x819b970 +thumb_func 0x819b970 Select_OptionSummary thumb_func 0x819b974 Select_OptionOthers thumb_func 0x819b99c Select_PrintMonCategory thumb_func 0x819ba58 Summary_ShowMonSprite @@ -13341,7 +13585,7 @@ thumb_func 0x819c2b8 Select_SetWinRegs thumb_func 0x819c31c Select_AreSpeciesValid thumb_func 0x819c384 Task_SelectFadeSpeciesName thumb_func 0x819c4c8 Swap_CB2 -thumb_func 0x819c4e4 FldEff_UseCutOnTree +thumb_func 0x819c4e4 Swap_VblankCb thumb_func 0x819c4f8 CopySwappedMonData thumb_func 0x819c5f4 Task_FromSwapScreenToSummaryScreen thumb_func 0x819c6f0 Task_CloseSwapScreen @@ -13360,7 +13604,7 @@ thumb_func 0x819d270 thumb_func 0x819d458 thumb_func 0x819d6d4 thumb_func 0x819d8c0 Swap_InitStruct -thumb_func 0x819d8e8 +thumb_func 0x819d8e8 DoBattleFactorySwapScreen thumb_func 0x819d904 CB2_InitSwapScreen thumb_func 0x819ddc8 Swap_InitAllSprites thumb_func 0x819e240 Swap_DestroyAllSprites @@ -13382,12 +13626,12 @@ thumb_func 0x819e898 Swap_PrintMonSpecies thumb_func 0x819e93c Swap_PrintOnInfoWindow thumb_func 0x819e970 Swap_PrintMenuOptions thumb_func 0x819e9e4 Swap_PrintYesNoOptions -thumb_func 0x819ea40 -thumb_func 0x819eab0 -thumb_func 0x819eb18 -thumb_func 0x819eb80 +thumb_func 0x819ea40 Swap_PrintActionString +thumb_func 0x819eab0 Swap_PrintActionStrings +thumb_func 0x819eb18 Swap_PrintActionStrings2 +thumb_func 0x819eb80 Swap_PrintOneActionString thumb_func 0x819ebf0 Swap_PrintMonSpecies2 -thumb_func 0x819ed38 +thumb_func 0x819ed38 Swap_PrintMonSpecies3 thumb_func 0x819ee50 Swap_PrintMonCategory thumb_func 0x819ef34 Swap_InitActions thumb_func 0x819ef8c Swap_RunMenuOptionFunc @@ -13409,8 +13653,9 @@ thumb_func 0x819f540 thumb_func 0x819f588 thumb_func 0x819f6a0 thumb_func 0x819f7cc Swap_ShowMonSprite +# apprentice.s thumb_func 0x819f888 CopyFriendsApprenticeChallengeText -thumb_func 0x819f928 +thumb_func 0x819f928 Apprentice_EnableBothScriptContexts thumb_func 0x819f934 ResetApprenticeStruct thumb_func 0x819f978 ResetAllApprenticeData thumb_func 0x819fa88 IsPlayersApprenticeActive @@ -13424,22 +13669,22 @@ thumb_func 0x81a0070 thumb_func 0x81a00c4 GetLatestLearnedMoves thumb_func 0x81a0160 thumb_func 0x81a026c -thumb_func 0x81a03c4 +thumb_func 0x81a03c4 CreateMenuWithAnswers thumb_func 0x81a05d4 Task_ChooseAnswer thumb_func 0x81a064c CreateAndShowWindow thumb_func 0x81a06b0 RemoveAndHideWindow thumb_func 0x81a06cc CreateChooseAnswerTask -thumb_func 0x81a0724 -thumb_func 0x81a0738 nullsub_111 +thumb_func 0x81a0724 CallApprenticeFunction +thumb_func 0x81a0738 thumb_func 0x81a0744 Script_ResetPlayerApprentice -thumb_func 0x81a0804 -thumb_func 0x81a082c +thumb_func 0x81a0804 Script_IsPlayersApprenticeActive +thumb_func 0x81a082c Script_CreateApprenticeMenu thumb_func 0x81a0840 thumb_func 0x81a084c thumb_func 0x81a0858 thumb_func 0x81a087c thumb_func 0x81a0898 -thumb_func 0x81a08e8 +thumb_func 0x81a08e8 Script_SetPlayersApprenticeLvlMode thumb_func 0x81a08fc Task_WaitForPrintingMessage thumb_func 0x81a0938 PrintMessage thumb_func 0x81a0b64 Script_PrintMessage @@ -13448,7 +13693,7 @@ thumb_func 0x81a0c08 thumb_func 0x81a0c48 thumb_func 0x81a0c9c thumb_func 0x81a0ebc -thumb_func 0x81a0ed4 AtkCanceller_UnableToUseMove +thumb_func 0x81a0ed4 thumb_func 0x81a1104 thumb_func 0x81a1124 thumb_func 0x81a1130 @@ -13462,8 +13707,9 @@ thumb_func 0x81a155c thumb_func 0x81a1584 Task_ExecuteFuncAfterButtonPress thumb_func 0x81a15d4 ExecuteFuncAfterButtonPress thumb_func 0x81a1604 -thumb_func 0x81a1628 -thumb_func 0x81a163c nullsub_110 +# frontier_util.s +thumb_func 0x81a1628 CallFrontierUtilFunc +thumb_func 0x81a163c thumb_func 0x81a1648 thumb_func 0x81a16d8 thumb_func 0x81a1810 @@ -13473,41 +13719,41 @@ thumb_func 0x81a19d0 thumb_func 0x81a19e0 thumb_func 0x81a1a40 ShowFacilityResultsWindow thumb_func 0x81a1acc -thumb_func 0x81a1af4 PrintLinkBattleRecord -thumb_func 0x81a1b8c +thumb_func 0x81a1af4 TowerPrintStreak +thumb_func 0x81a1b8c TowerPrintRecordStreak thumb_func 0x81a1bc4 TowerGetWinStreak -thumb_func 0x81a1bf4 -thumb_func 0x81a1c9c -thumb_func 0x81a1ddc -thumb_func 0x81a1e0c -thumb_func 0x81a1ea0 -thumb_func 0x81a1f30 -thumb_func 0x81a20d0 -thumb_func 0x81a2168 -thumb_func 0x81a21a0 -thumb_func 0x81a21d0 -thumb_func 0x81a2250 -thumb_func 0x81a2360 -thumb_func 0x81a238c -thumb_func 0x81a2420 -thumb_func 0x81a2490 -thumb_func 0x81a25fc -thumb_func 0x81a2698 -thumb_func 0x81a26d0 +thumb_func 0x81a1bf4 TowerPrintPrevOrCurrentStreak +thumb_func 0x81a1c9c ShowTowerResultsWindow +thumb_func 0x81a1ddc DomeGetWinStreak +thumb_func 0x81a1e0c PrintTwoStrings +thumb_func 0x81a1ea0 PyramidPrintPrevOrCurrentStreak +thumb_func 0x81a1f30 ShowDomeResultsWindow +thumb_func 0x81a20d0 PalacePrintStreak +thumb_func 0x81a2168 PalacePrintRecordStreak +thumb_func 0x81a21a0 FactoryGetRentsCount +thumb_func 0x81a21d0 ArenaPrintPrevOrCurrentStreak +thumb_func 0x81a2250 ShowPalaceResultsWindow +thumb_func 0x81a2360 ArenaGetWinStreak +thumb_func 0x81a238c PikePrintCleared +thumb_func 0x81a2420 PikePrintPrevOrCurrentStreak +thumb_func 0x81a2490 ShowPikeResultsWindow +thumb_func 0x81a25fc ArenaPrintStreak +thumb_func 0x81a2698 ArenaPrintRecordStreak +thumb_func 0x81a26d0 PikeGetWinStreak thumb_func 0x81a26fc -thumb_func 0x81a2758 -thumb_func 0x81a2844 -thumb_func 0x81a2924 -thumb_func 0x81a2974 -thumb_func 0x81a29a4 -thumb_func 0x81a29d4 -thumb_func 0x81a2a78 ScriptCmd_end -thumb_func 0x81a2b9c -thumb_func 0x81a2c38 +thumb_func 0x81a2758 ShowArenaResultsWindow +thumb_func 0x81a2844 FactoryPrintStreak +thumb_func 0x81a2924 PyramidPrintRecordStreak +thumb_func 0x81a2974 FactoryGetWinStreak +thumb_func 0x81a29a4 PalaceGetWinStreak +thumb_func 0x81a29d4 PalacePrintPrevOrCurrentStreak +thumb_func 0x81a2a78 ShowFactoryResultsWindow +thumb_func 0x81a2b9c PyramidPrintStreak +thumb_func 0x81a2c38 PyramidGetWinStreak thumb_func 0x81a2c70 thumb_func 0x81a2c9c -thumb_func 0x81a2cfc -thumb_func 0x81a2de4 +thumb_func 0x81a2cfc ShowPyramidResultsWindow +thumb_func 0x81a2de4 PrintHallRecords thumb_func 0x81a2f90 thumb_func 0x81a337c thumb_func 0x81a33a0 @@ -13527,20 +13773,20 @@ thumb_func 0x81a3cf0 thumb_func 0x81a3eb0 thumb_func 0x81a3ebc thumb_func 0x81a4034 -thumb_func 0x81a409c -thumb_func 0x81a40c8 +thumb_func 0x81a409c PrintAligned +thumb_func 0x81a40c8 GetFrontierBrainTrainerClass thumb_func 0x81a4108 -thumb_func 0x81a4208 +thumb_func 0x81a4208 GetFrontierBrainTrainerPicIndex thumb_func 0x81a4220 Print1PRecord -thumb_func 0x81a42f4 -thumb_func 0x81a43f8 +thumb_func 0x81a42f4 FactoryPrintPrevOrCurrentStreak +thumb_func 0x81a43f8 Fill1PRecords thumb_func 0x81a44cc Fill2PRecords -thumb_func 0x81a45b0 +thumb_func 0x81a45b0 DomePrintPrevOrCurrentStreak thumb_func 0x81a469c ShowRankingHallRecordsWindow thumb_func 0x81a46e4 ScrollRankingHallRecordsWindow thumb_func 0x81a4710 ClearRankingHallRecords thumb_func 0x81a482c -thumb_func 0x81a48ac +thumb_func 0x81a48ac PrintHyphens thumb_func 0x81a48f8 thumb_func 0x81a4944 CopyFrontierBrainTrainerName thumb_func 0x81a49a8 IsFrontierBrainFemale @@ -13553,8 +13799,9 @@ thumb_func 0x81a4ca0 GetFrontierBrainMonNature thumb_func 0x81a4ce0 GetFrontierBrainMonEvs thumb_func 0x81a4d2c GetFronterBrainSymbol thumb_func 0x81a4d98 CopyFrontierBrainText -thumb_func 0x81a4e28 -thumb_func 0x81a4e3c nullsub_113 +# battle_arena.s +thumb_func 0x81a4e28 CallBattleArenaFunction +thumb_func 0x81a4e3c thumb_func 0x81a4e48 BattleArena_ShowJudgmentWindow thumb_func 0x81a5148 ShowJudgmentSprite thumb_func 0x81a5288 SpriteCb_JudgmentIcon @@ -13571,20 +13818,21 @@ thumb_func 0x81a56f8 SetArenaRewardItem thumb_func 0x81a5778 GiveArenaRewardItem thumb_func 0x81a57d0 BufferArenaOpponentName thumb_func 0x81a57e8 DrawArenaRefereeTextBox -thumb_func 0x81a5ad8 -thumb_func 0x81a5c0c -thumb_func 0x81a5c20 nullsub_1141 +thumb_func 0x81a5ad8 RemoveArenaRefereeTextBox +# battle_factory.s +thumb_func 0x81a5c0c CallBattleFactoryFunction +thumb_func 0x81a5c20 nullsub_75 thumb_func 0x81a5c2c InitFactoryChallenge thumb_func 0x81a5d40 GetBattleFactoryData thumb_func 0x81a5dec SetBattleFactoryData thumb_func 0x81a5ed4 -thumb_func 0x81a5f18 nullsub_115 -thumb_func 0x81a5f1c nullsub_114 +thumb_func 0x81a5f18 SwapRentalMons +thumb_func 0x81a5f1c nullsub_123 thumb_func 0x81a5f20 SelectInitialRentalMons thumb_func 0x81a5f30 -thumb_func 0x81a5f3c +thumb_func 0x81a5f3c SetPerformedRentalSwap thumb_func 0x81a5f48 GenerateOpponentMons -thumb_func 0x81a6150 VBlankCB_EvolutionScene +thumb_func 0x81a6150 SetOpponentGfxVar thumb_func 0x81a6164 SetRentalsToOpponentParty thumb_func 0x81a625c SetPlayerAndOpponentParties thumb_func 0x81a6584 GenerateInitialRentalMons @@ -13599,21 +13847,22 @@ thumb_func 0x81a6c88 GetMonSetId thumb_func 0x81a6d08 GetNumPastRentalsRank thumb_func 0x81a6d4c GetAiScriptsInBattleFactory thumb_func 0x81a6dbc SetMonMoveAvoidReturn -thumb_func 0x81a6dd4 -thumb_func 0x81a6de8 nullsub_117 +# battle_pike.s +thumb_func 0x81a6dd4 CallBattlePikeFunction +thumb_func 0x81a6de8 nullsub_76 thumb_func 0x81a6df4 SetRoomType -thumb_func 0x81a6e08 +thumb_func 0x81a6e08 SetupRoomEventObjects thumb_func 0x81a6ec0 GetBattlePikeData thumb_func 0x81a6fc8 SetBattlePikeData thumb_func 0x81a7138 GetInFinalRoom -thumb_func 0x81a716c +thumb_func 0x81a716c GetRoomType thumb_func 0x81a7180 thumb_func 0x81a718c thumb_func 0x81a7198 -thumb_func 0x81a71e0 nullsub_118 -thumb_func 0x81a71e4 nullsub_119 +thumb_func 0x81a71e0 +thumb_func 0x81a71e4 nullsub_124 thumb_func 0x81a71e8 GetRoomInflictedStatus -thumb_func 0x81a724c +thumb_func 0x81a724c GetRoomInflictedStatusMon thumb_func 0x81a7260 HealOneOrTwoMons thumb_func 0x81a7288 BufferNPCMessage thumb_func 0x81a7300 StatusInflictionScreenFade @@ -13627,10 +13876,10 @@ thumb_func 0x81a78d8 GetNPCRoomGraphicsId thumb_func 0x81a7904 thumb_func 0x81a7910 TryGenerateBattlePikeWildMon thumb_func 0x81a7a80 GetBattlePikeWildMonHeaderId -thumb_func 0x81a7ad4 +thumb_func 0x81a7ad4 DoStatusInflictionScreenFade thumb_func 0x81a7b0c StatusInflictionFadeOut thumb_func 0x81a7b68 StatusInflictionFadeIn -thumb_func 0x81a7be0 +thumb_func 0x81a7be0 StartStatusInflictionScreenFade thumb_func 0x81a7c44 IsStatusInflictionScreenFadeTaskFinished thumb_func 0x81a7c64 Task_DoStatusInflictionScreenFade thumb_func 0x81a7cb8 TryHealMons @@ -13654,14 +13903,16 @@ thumb_func 0x81a8568 RestoreMonHeldItems thumb_func 0x81a85b0 InitPikeChallenge thumb_func 0x81a8630 CanEncounterWildMon thumb_func 0x81a868c SpeciesToPikeMonId +# mossdeep_gym.s thumb_func 0x81a86b4 InitMossdeepGymTiles thumb_func 0x81a86dc FinishMossdeepGymTiles thumb_func 0x81a8720 MossdeepGym_MoveEvents thumb_func 0x81a8878 MossdeepGym_TurnEvents thumb_func 0x81a8ae0 AddEventObject thumb_func 0x81a8b14 -thumb_func 0x81a8bfc -thumb_func 0x81a8c10 nullsub_1201 +# battle_pyramid.s +thumb_func 0x81a8bfc CallBattlePyramidFunction +thumb_func 0x81a8c10 thumb_func 0x81a8c1c InitPyramidChallenge thumb_func 0x81a8cb8 GetBattlePyramidData thumb_func 0x81a8dc8 SetBattlePyramidData @@ -13669,9 +13920,9 @@ thumb_func 0x81a8eb4 thumb_func 0x81a8efc SetBattlePyramidRewardItem thumb_func 0x81a8f7c GiveBattlePyramidRewardItem thumb_func 0x81a8fd4 SeedPyramidFloor -thumb_func 0x81a9010 +thumb_func 0x81a9010 SetPickupItem thumb_func 0x81a9140 HidePyramidItem -thumb_func 0x81a918c +thumb_func 0x81a918c InitPyramidFacilityTrainers thumb_func 0x81a919c ShowPostBattleHintText thumb_func 0x81a9390 UpdatePyramidWinStreak thumb_func 0x81a93e4 GetInBattlePyramid @@ -13679,10 +13930,10 @@ thumb_func 0x81a93fc UpdatePyramidLightRadius thumb_func 0x81a94d4 ClearPyramidPartyHeldItems thumb_func 0x81a9540 SetPyramidFloorPalette thumb_func 0x81a9554 Task_SetPyramidFloorPalette -thumb_func 0x81a95a0 FldEff_UseSecretPowerShrub +thumb_func 0x81a95a0 thumb_func 0x81a95ac RestorePyramidPlayerParty thumb_func 0x81a9710 GetPostBattleDirectionHintTextIndex -thumb_func 0x81a9820 +thumb_func 0x81a9820 LocalIdToPyramidTrainerId thumb_func 0x81a983c GetBattlePyramidTrainerFlag thumb_func 0x81a987c MarkApproachingPyramidTrainersAsBattled thumb_func 0x81a98bc MarkPyramidTrainerAsBattled @@ -13712,6 +13963,7 @@ thumb_func 0x81aa75c GetPyramidFloorTemplateId thumb_func 0x81aa7b8 GetNumBattlePyramidEventObjects thumb_func 0x81aa7f4 InitPyramidBagItems thumb_func 0x81aa858 GetBattlePyramidPickupItemId +# item_menu.s thumb_func 0x81aa8e8 ResetBagScrollPositions thumb_func 0x81aa914 CB2_BagMenuFromStartMenu thumb_func 0x81aa928 @@ -13723,16 +13975,16 @@ thumb_func 0x81aa9a0 thumb_func 0x81aa9c8 thumb_func 0x81aa9e8 thumb_func 0x81aaa08 GoToBagMenu -thumb_func 0x81aaad4 -thumb_func 0x81aaaf0 c2_bag_3 +thumb_func 0x81aaad4 c2_bag_3 +thumb_func 0x81aaaf0 vblank_cb_bag_menu thumb_func 0x81aab04 CB2_Bag thumb_func 0x81aab30 SetupBagMenu thumb_func 0x81aadc0 BagMenu_InitBGs thumb_func 0x81aae2c LoadBagMenu_Graphics -thumb_func 0x81aaf60 AccessHallOfFamePC +thumb_func 0x81aaf60 thumb_func 0x81aaf88 AllocateBagItemListBuffers thumb_func 0x81aafb0 LoadBagItemListBuffers -thumb_func 0x81ab10c +thumb_func 0x81ab10c GetItemName thumb_func 0x81ab1c0 BagMenu_MoveCursorCallback thumb_func 0x81ab290 PrintItemQuantityPlusGFX thumb_func 0x81ab414 BagMenu_PrintDescription @@ -13743,8 +13995,8 @@ thumb_func 0x81ab568 bag_menu_add_pocket_scroll_arrow_indicators_maybe thumb_func 0x81ab5d0 thumb_func 0x81ab600 bag_menu_add_list_scroll_arrow_indicators_maybe thumb_func 0x81ab648 -thumb_func 0x81ab674 -thumb_func 0x81ab6a4 +thumb_func 0x81ab674 FreeBagItemListBuffers +thumb_func 0x81ab6a4 unknown_ItemMenu_Confirm thumb_func 0x81ab6dc TaskCloseBagMenu_2 thumb_func 0x81ab754 thumb_func 0x81ab818 @@ -13754,18 +14006,18 @@ thumb_func 0x81ab88c thumb_func 0x81ab8d8 GetItemListPosition thumb_func 0x81ab8f8 DisplayItemMessage thumb_func 0x81ab968 BagMenu_InitListsMenu -thumb_func 0x81ab9e8 GetItemName +thumb_func 0x81ab9e8 PrintItemDepositAmount thumb_func 0x81aba50 -thumb_func 0x81abab4 +thumb_func 0x81abab4 Task_BagMenu thumb_func 0x81abc58 set_callback3_to_bag thumb_func 0x81abc9c GetSwitchBagPocketDirection thumb_func 0x81abcfc ChangeBagPocketId -thumb_func 0x81abd34 Fill1PRecords +thumb_func 0x81abd34 SwitchBagPocket thumb_func 0x81abec0 -thumb_func 0x81ac000 +thumb_func 0x81ac000 bag_menu_leave_maybe thumb_func 0x81ac030 BagMenu_DrawPocketIndicatorSquare thumb_func 0x81ac084 -thumb_func 0x81ac0ac +thumb_func 0x81ac0ac BagMenu_SwapItems thumb_func 0x81ac184 thumb_func 0x81ac25c thumb_func 0x81ac354 @@ -13779,7 +14031,7 @@ thumb_func 0x81acbf4 thumb_func 0x81acc30 BagMenu_RemoveSomeWindow thumb_func 0x81acc74 ItemMenu_UseOutOfBattle thumb_func 0x81accec ItemMenu_Toss -thumb_func 0x81acd80 +thumb_func 0x81acd80 BagMenu_TossItems thumb_func 0x81ace08 BagMenu_CancelToss thumb_func 0x81ace3c Task_ChooseHowManyToToss thumb_func 0x81acec4 BagMenu_ConfirmToss @@ -13791,7 +14043,7 @@ thumb_func 0x81ad104 BagMenu_PrintItemCantBeHeld thumb_func 0x81ad148 thumb_func 0x81ad170 ItemMenu_CheckTag thumb_func 0x81ad190 ItemMenu_Cancel -thumb_func 0x81ad1d4 AnimRazorLeafParticle +thumb_func 0x81ad1d4 ItemMenu_UseInBattle thumb_func 0x81ad204 bag_menu_mail_related thumb_func 0x81ad214 item_menu_type_2 thumb_func 0x81ad2ac item_menu_type_b @@ -13801,11 +14053,11 @@ thumb_func 0x81ad478 thumb_func 0x81ad4dc thumb_func 0x81ad4f4 BagMenu_CancelSell thumb_func 0x81ad528 -thumb_func 0x81ad57c +thumb_func 0x81ad57c bag_menu_leave_maybe_2 thumb_func 0x81ad5a8 thumb_func 0x81ad660 BagMenu_ConfirmSell thumb_func 0x81ad6dc -thumb_func 0x81ad7d4 +thumb_func 0x81ad7d4 unknown_ItemMenu_Show thumb_func 0x81ad800 DisplayDepositItemAskString thumb_func 0x81ad890 thumb_func 0x81ad928 @@ -13816,7 +14068,7 @@ thumb_func 0x81adb0c RestoreBagAfterWallyTutorial thumb_func 0x81adb7c DoWallyTutorialBagMenu thumb_func 0x81adba4 Task_WallyTutorialBagMenu thumb_func 0x81adc44 -thumb_func 0x81adc78 +thumb_func 0x81adc78 bag_menu_leave_maybe_3 thumb_func 0x81adc98 unknown_ItemMenu_Give2 thumb_func 0x81adcc8 thumb_func 0x81adce8 unknown_ItemMenu_Confirm2 @@ -13825,15 +14077,16 @@ thumb_func 0x81add2c SetupBagMenu_Textboxes thumb_func 0x81add94 BagMenu_Print thumb_func 0x81addfc thumb_func 0x81ade14 BagMenu_AddWindow -thumb_func 0x81ade5c +thumb_func 0x81ade5c BagMenu_RemoveWindow thumb_func 0x81ade9c AddItemMessageWindow -thumb_func 0x81aded0 +thumb_func 0x81aded0 bag_menu_RemoveBagItem_message_window thumb_func 0x81adf10 BagMenu_YesNo thumb_func 0x81adf40 bag_menu_AddMoney_window thumb_func 0x81adf7c bag_menu_remove_money_window thumb_func 0x81adf8c BagMenu_PrepareTMHMMoveWindow thumb_func 0x81adfd4 PrintTMHMMoveData -thumb_func 0x81ae130 nullsub_121 +# list_menu.s +thumb_func 0x81ae130 Task_RedArrowCursor thumb_func 0x81ae134 DoMysteryGiftListMenu thumb_func 0x81ae25c ListMenuInit thumb_func 0x81ae288 ListMenuInitInRect @@ -13870,21 +14123,23 @@ thumb_func 0x81af2f8 RemoveScrollIndicatorArrowPair thumb_func 0x81af358 ListMenuAddCursorObjectInternal thumb_func 0x81af374 ListMenuUpdateCursorObject thumb_func 0x81af39c ListMenuRemoveCursorObject -thumb_func 0x81af3bc nullsub_28 +thumb_func 0x81af3bc Task_RedOutlineCursor thumb_func 0x81af3c0 ListMenuGetRedOutlineCursorSpriteCount thumb_func 0x81af3fc ListMenuSetUpRedOutlineCursorSpriteOamTable thumb_func 0x81af500 ListMenuAddRedOutlineCursorObject thumb_func 0x81af66c ListMenuUpdateRedOutlineCursorObject thumb_func 0x81af6b0 ListMenuRemoveRedOutlineCursorObject thumb_func 0x81af708 SpriteCallback_RedArrowCursor -thumb_func 0x81af734 nullsub_120 +thumb_func 0x81af734 ListMenuDummyTask thumb_func 0x81af738 ListMenuAddRedArrowCursorObject thumb_func 0x81af840 ListMenuUpdateRedArrowCursorObject thumb_func 0x81af878 ListMenuRemoveRedArrowCursorObject +# dynamic_placeholder_text_util.s thumb_func 0x81af8c8 DynamicPlaceholderTextUtil_Reset thumb_func 0x81af8e4 DynamicPlaceholderTextUtil_SetPlaceholderPtr thumb_func 0x81af900 DynamicPlaceholderTextUtil_ExpandPlaceholders -thumb_func 0x81af94c +thumb_func 0x81af94c DynamicPlaceholderTextUtil_GetPlaceholderPtr +# save_location.s thumb_func 0x81af95c IsCurMapInLocationList thumb_func 0x81af9a4 IsCurMapPokeCenter thumb_func 0x81af9b4 IsCurMapReloadLocation @@ -13895,15 +14150,17 @@ thumb_func 0x81afa34 thumb_func 0x81afa64 TrySetMapSaveWarpStatus thumb_func 0x81afa78 thumb_func 0x81afaa8 +# item_icon.s thumb_func 0x81afabc AllocItemIconTemporaryBuffers thumb_func 0x81afafc FreeItemIconTemporaryBuffers thumb_func 0x81afb1c CopyItemIconPicTo4x4Buffer thumb_func 0x81afb48 AddItemIconSprite thumb_func 0x81afc0c AddCustomItemIconSprite thumb_func 0x81afcd4 GetItemIconPicOrPalette +# party_menu.s thumb_func 0x81afd10 InitPartyMenu thumb_func 0x81afe88 PartyMenuCallback -thumb_func 0x81afea4 +thumb_func 0x81afea4 PartyMenuVBlankCallback thumb_func 0x81afeb8 PartyMenuInitCallback thumb_func 0x81afee4 PartyMenuSetup thumb_func 0x81b0194 PartyMenuExit @@ -13925,7 +14182,7 @@ thumb_func 0x81b089c DisplayPartyPokemonSelectHeldItemRelated thumb_func 0x81b08d4 thumb_func 0x81b096c DisplayPartyPokemonSelectToTeachMove thumb_func 0x81b09c4 -thumb_func 0x81b0a70 +thumb_func 0x81b0a70 RenderPartyMenuBoxes thumb_func 0x81b0aa4 GetPartyMiscGraphicsTile thumb_func 0x81b0ab8 party_menu_add_per_mon_objects_internal thumb_func 0x81b0bc4 party_menu_add_per_mon_objects @@ -13956,7 +14213,7 @@ thumb_func 0x81b17d0 thumb_func 0x81b1814 GetMonNickname thumb_func 0x81b182c thumb_func 0x81b185c -thumb_func 0x81b18a4 LoadListMenuArrowsGfx +thumb_func 0x81b18a4 thumb_func 0x81b18b8 thumb_func 0x81b18ec thumb_func 0x81b1954 @@ -13964,7 +14221,7 @@ thumb_func 0x81b19a0 thumb_func 0x81b19ec thumb_func 0x81b1a38 thumb_func 0x81b1a88 -thumb_func 0x81b1ad0 InitEventObjectPalettes +thumb_func 0x81b1ad0 TryTakeMonItem thumb_func 0x81b1b18 pokemon_item_not_removed thumb_func 0x81b1b30 thumb_func 0x81b1be8 @@ -13980,7 +14237,7 @@ thumb_func 0x81b1ee0 thumb_func 0x81b1f18 thumb_func 0x81b1f4c thumb_func 0x81b1fa8 CanMonLearnTMTutor -thumb_func 0x81b2030 +thumb_func 0x81b2030 GetTutorMove thumb_func 0x81b2040 CanLearnTutorMove thumb_func 0x81b206c thumb_func 0x81b20f8 @@ -14002,7 +14259,7 @@ thumb_func 0x81b2a08 DisplayPartyPokemonMaxHPCheck thumb_func 0x81b2a70 DisplayPartyPokemonMaxHP thumb_func 0x81b2abc DisplayPartyPokemonHPBarCheck thumb_func 0x81b2af8 DisplayPartyPokemonHPBar -thumb_func 0x81b2c3c +thumb_func 0x81b2c3c DisplayPartyPokemonOtherText thumb_func 0x81b2cb0 thumb_func 0x81b2cd8 display_pokemon_menu_message thumb_func 0x81b2dd0 @@ -14017,7 +14274,7 @@ thumb_func 0x81b31dc thumb_func 0x81b32a8 thumb_func 0x81b339c thumb_func 0x81b33d0 HandleMenuInput -thumb_func 0x81b349c +thumb_func 0x81b349c CursorCb_Give thumb_func 0x81b34c8 thumb_func 0x81b3534 thumb_func 0x81b357c CursorCb_Switch @@ -14034,7 +14291,7 @@ thumb_func 0x81b3c7c swap_pokemon_and_oams thumb_func 0x81b3d1c thumb_func 0x81b3d74 CursorCb_Cancel1 thumb_func 0x81b3dd4 CursorCb_Item -thumb_func 0x81b3e38 +thumb_func 0x81b3e38 CursorCb_Summary thumb_func 0x81b3e64 thumb_func 0x81b3e90 c2_8123744 thumb_func 0x81b3f70 @@ -14049,7 +14306,7 @@ thumb_func 0x81b433c thumb_func 0x81b43c4 CursorCb_TakeItem thumb_func 0x81b4480 CursorCb_Toss thumb_func 0x81b4548 -thumb_func 0x81b457c BagMenu_TossItems +thumb_func 0x81b457c thumb_func 0x81b4628 thumb_func 0x81b46a8 CursorCb_Mail thumb_func 0x81b470c CursorCb_Read @@ -14069,7 +14326,7 @@ thumb_func 0x81b4d4c CursorCb_Store thumb_func 0x81b4d68 CursorCb_Register thumb_func 0x81b4e74 CursorCb_Trade1 thumb_func 0x81b4f84 CursorCb_Trade2 -thumb_func 0x81b509c GetFlavorRelationByPersonality +thumb_func 0x81b509c thumb_func 0x81b50d0 thumb_func 0x81b5110 CursorCb_FieldMove thumb_func 0x81b5314 @@ -14080,7 +14337,7 @@ thumb_func 0x81b53f0 task_launch_hm_phase_2 thumb_func 0x81b542c brm_get_selected_species thumb_func 0x81b5454 task_brm_cancel_1_on_keypad_a_or_b thumb_func 0x81b547c -thumb_func 0x81b54a4 +thumb_func 0x81b54a4 hm_surf_run_dp02scr thumb_func 0x81b54c0 SetUpFieldMove_Surf thumb_func 0x81b5504 thumb_func 0x81b5524 SetUpFieldMove_Fly @@ -14100,12 +14357,12 @@ thumb_func 0x81b58b4 party_menu_held_item_object thumb_func 0x81b58e8 party_menu_link_mon_held_item_object thumb_func 0x81b5934 thumb_func 0x81b5950 -thumb_func 0x81b59d0 +thumb_func 0x81b59d0 LoadHeldItemIcons thumb_func 0x81b59ec thumb_func 0x81b5a90 thumb_func 0x81b5b14 SpriteCB_HeldItem thumb_func 0x81b5b6c party_menu_pokeball_object -thumb_func 0x81b5b94 +thumb_func 0x81b5b94 party_menu_link_mon_pokeball_object thumb_func 0x81b5bd4 thumb_func 0x81b5c14 thumb_func 0x81b5c38 @@ -14135,7 +14392,7 @@ thumb_func 0x81b677c ether_effect_related_3 thumb_func 0x81b67c4 dp05_ether thumb_func 0x81b6848 ether_effect_related_2 thumb_func 0x81b687c -thumb_func 0x81b68b4 +thumb_func 0x81b68b4 ether_effect_related thumb_func 0x81b6978 dp05_pp_up thumb_func 0x81b69b4 ItemIdToBattleMoveId thumb_func 0x81b69cc IsMoveHm @@ -14222,7 +14479,7 @@ thumb_func 0x81b8bd8 thumb_func 0x81b8c0c thumb_func 0x81b8c50 thumb_func 0x81b8c8c pokemon_order_func -thumb_func 0x81b8cd0 +thumb_func 0x81b8cd0 pokemon_change_order thumb_func 0x81b8d20 thumb_func 0x81b8d70 thumb_func 0x81b8de0 @@ -14236,7 +14493,7 @@ thumb_func 0x81b8fc8 thumb_func 0x81b8ff4 thumb_func 0x81b9030 thumb_func 0x81b9068 hm_add_c3_without_phase_2 -thumb_func 0x81b9080 TossPokeblockChoice_No +thumb_func 0x81b9080 task_hm_without_phase_2 thumb_func 0x81b90a4 thumb_func 0x81b90c4 thumb_func 0x81b9110 @@ -14248,15 +14505,16 @@ thumb_func 0x81b9228 thumb_func 0x81b9280 thumb_func 0x81b92c0 thumb_func 0x81b92e0 -thumb_func 0x81b932c ForcedMovement_Slip +thumb_func 0x81b932c thumb_func 0x81b9370 thumb_func 0x81b93b8 thumb_func 0x81b9410 thumb_func 0x81b947c thumb_func 0x81b957c thumb_func 0x81b95b8 +# battle_tent.s thumb_func 0x81b9654 -thumb_func 0x81b9668 nullsub_123 +thumb_func 0x81b9668 thumb_func 0x81b9674 thumb_func 0x81b96c8 thumb_func 0x81b96e4 @@ -14266,7 +14524,7 @@ thumb_func 0x81b975c thumb_func 0x81b97a0 thumb_func 0x81b97c8 thumb_func 0x81b9820 -thumb_func 0x81b9834 nullsub_1241 +thumb_func 0x81b9834 thumb_func 0x81b9840 thumb_func 0x81b9894 thumb_func 0x81b98b0 @@ -14275,72 +14533,76 @@ thumb_func 0x81b9910 thumb_func 0x81b9938 thumb_func 0x81b9990 thumb_func 0x81b99a8 -thumb_func 0x81b99bc nullsub_125 +thumb_func 0x81b99bc thumb_func 0x81b99c8 thumb_func 0x81b9a1c thumb_func 0x81b9a38 thumb_func 0x81b9a54 -thumb_func 0x81b9a98 GetTrainerEncounterMusicId +thumb_func 0x81b9a98 thumb_func 0x81b9ac0 thumb_func 0x81b9b18 thumb_func 0x81b9b28 thumb_func 0x81b9b34 InSlateportBattleTent thumb_func 0x81b9b60 thumb_func 0x81b9ce0 +# unk_text_util_2.s thumb_func 0x81b9ef0 Font6Func thumb_func 0x81ba308 DecompressGlyphFont6 -thumb_func 0x81ba36c MultiBootInit -thumb_func 0x81ba3a8 MultiBootMain -thumb_func 0x81ba798 MultiBootSend -thumb_func 0x81ba7e4 MultiBootStartProbe -thumb_func 0x81ba808 MultiBootStartMaster -thumb_func 0x81ba8cc MultiBootCheckComplete -thumb_func 0x81ba8e0 MultiBootHandShake -thumb_func 0x81ba9cc MultiBootWaitCycles -thumb_func 0x81ba9e4 MultiBootWaitSendDone +thumb_func 0x81ba36c GetGlyphWidthFont6 +# multiboot.s +thumb_func 0x81ba3a8 +thumb_func 0x81ba798 +thumb_func 0x81ba7e4 +thumb_func 0x81ba808 +thumb_func 0x81ba8cc +thumb_func 0x81ba8e0 +thumb_func 0x81ba9cc +thumb_func 0x81ba9e4 +# unk_81BAD84.s thumb_func 0x81baa20 -thumb_func 0x81baa8c nullsub_124 -thumb_func 0x81baa90 -thumb_func 0x81baaac +# battle_controller_player_partner.s +thumb_func 0x81baa8c PlayerPartnerCmdEnd +thumb_func 0x81baa90 SetControllerToPlayerPartner +thumb_func 0x81baaac PlayerPartnerBufferRunCommand thumb_func 0x81baafc CompleteOnBattlerSpriteCallbackDummy thumb_func 0x81bab34 thumb_func 0x81bab9c thumb_func 0x81babe4 thumb_func 0x81bacc8 thumb_func 0x81bae70 -thumb_func 0x81baeb0 -thumb_func 0x81baf20 +thumb_func 0x81baeb0 CompleteOnHealthbarDone +thumb_func 0x81baf20 CompleteOnInactiveTextPrinter thumb_func 0x81baf38 Task_GiveExpToMon -thumb_func 0x81bb0b0 +thumb_func 0x81bb0b0 Task_PrepareToGiveExpWithExpBar thumb_func 0x81bb180 thumb_func 0x81bb2c4 thumb_func 0x81bb324 -thumb_func 0x81bb3dc +thumb_func 0x81bb3dc DestroyExpTaskAndCompleteOnInactiveTextPrinter thumb_func 0x81bb428 thumb_func 0x81bb4c4 -thumb_func 0x81bb534 CompleteOnInactiveTextPrinter -thumb_func 0x81bb54c +thumb_func 0x81bb534 CompleteOnInactiveTextPrinter2 +thumb_func 0x81bb54c DoHitAnimBlinkSpriteEffect thumb_func 0x81bb5c8 thumb_func 0x81bb63c thumb_func 0x81bb690 thumb_func 0x81bb784 thumb_func 0x81bb828 PlayerPartnerBufferExecCompleted -thumb_func 0x81bb8a0 -thumb_func 0x81bb8d0 +thumb_func 0x81bb8a0 CompleteOnFinishedStatusAnimation +thumb_func 0x81bb8d0 CompleteOnFinishedBattleAnimation thumb_func 0x81bb900 PlayerPartnerHandleGetMonData thumb_func 0x81bb974 CopyPlayerPartnerMonData -thumb_func 0x81bc120 -thumb_func 0x81bc12c +thumb_func 0x81bc120 PlayerPartnerHandleGetRawMonData +thumb_func 0x81bc12c PlayerPartnerHandleSetMonData thumb_func 0x81bc184 SetPlayerPartnerMonData -thumb_func 0x81bcb80 +thumb_func 0x81bcb80 PlayerPartnerHandleSetRawMonData thumb_func 0x81bcbf4 PlayerPartnerHandleLoadMonSprite thumb_func 0x81bcd10 PlayerPartnerHandleSwitchInAnim thumb_func 0x81bcd80 -thumb_func 0x81bcefc -thumb_func 0x81bcf8c +thumb_func 0x81bcefc PlayerPartnerHandleReturnMonToBall +thumb_func 0x81bcf8c DoSwitchOutAnimation thumb_func 0x81bd018 PlayerPartnerHandleDrawTrainerPic thumb_func 0x81bd258 PlayerPartnerHandleTrainerSlide -thumb_func 0x81bd264 +thumb_func 0x81bd264 PlayerPartnerHandleTrainerSlideBack thumb_func 0x81bd310 PlayerPartnerHandleFaintAnimation thumb_func 0x81bd3fc PlayerPartnerHandlePaletteFade thumb_func 0x81bd408 PlayerPartnerHandleSuccessBallThrowAnim @@ -14349,22 +14611,22 @@ thumb_func 0x81bd420 PlayerPartnerHandlePause thumb_func 0x81bd42c PlayerPartnerHandleMoveAnimation thumb_func 0x81bd564 PlayerPartnerDoMoveAnimation thumb_func 0x81bd6e8 PlayerPartnerHandlePrintString -thumb_func 0x81bd73c +thumb_func 0x81bd73c PlayerPartnerHandlePrintSelectionString thumb_func 0x81bd748 PlayerPartnerHandleChooseAction thumb_func 0x81bd758 PlayerPartnerHandleUnknownYesNoBox thumb_func 0x81bd764 PlayerPartnerHandleChooseMove -thumb_func 0x81bd80c +thumb_func 0x81bd80c PlayerPartnerHandleChooseItem thumb_func 0x81bd818 PlayerPartnerHandleChoosePokemon -thumb_func 0x81bd8a0 -thumb_func 0x81bd8ac +thumb_func 0x81bd8a0 PlayerPartnerHandleCmd23 +thumb_func 0x81bd8ac PlayerPartnerHandleHealthBarUpdate thumb_func 0x81bd99c PlayerPartnerHandleExpUpdate thumb_func 0x81bda38 PlayerPartnerHandleStatusIconUpdate thumb_func 0x81bdab0 PlayerPartnerHandleStatusAnimation -thumb_func 0x81bdb18 -thumb_func 0x81bdb24 -thumb_func 0x81bdb30 -thumb_func 0x81bdb3c -thumb_func 0x81bdb48 +thumb_func 0x81bdb18 PlayerPartnerHandleStatusXor +thumb_func 0x81bdb24 PlayerPartnerHandleDataTransfer +thumb_func 0x81bdb30 PlayerPartnerHandleDMA3Transfer +thumb_func 0x81bdb3c PlayerPartnerHandlePlayBGM +thumb_func 0x81bdb48 PlayerPartnerHandleCmd32 thumb_func 0x81bdb54 PlayerPartnerHandleTwoReturnValues thumb_func 0x81bdb60 PlayerPartnerHandleChosenMonReturnValue thumb_func 0x81bdb6c PlayerPartnerHandleOneReturnValue @@ -14378,22 +14640,23 @@ thumb_func 0x81bdc88 PlayerPartnerHandleCmd42 thumb_func 0x81bdc94 PlayerPartnerHandlePlaySE thumb_func 0x81bdcd8 PlayerPartnerHandlePlayFanfareOrBGM thumb_func 0x81bdd34 PlayerPartnerHandleFaintingCry -thumb_func 0x81bdd74 +thumb_func 0x81bdd74 PlayerPartnerHandleIntroSlide thumb_func 0x81bdda8 PlayerPartnerHandleIntroTrainerBallThrow thumb_func 0x81bdf64 thumb_func 0x81be070 PlayerPartnerHandleDrawPartyStatusSummary thumb_func 0x81be134 thumb_func 0x81be17c PlayerPartnerHandleHidePartyStatusSummary thumb_func 0x81be1cc PlayerPartnerHandleEndBounceEffect -thumb_func 0x81be1d8 +thumb_func 0x81be1d8 PlayerPartnerHandleSpriteInvisibility thumb_func 0x81be238 PlayerPartnerHandleBattleAnimation thumb_func 0x81be2a0 PlayerPartnerHandleLinkStandbyMsg thumb_func 0x81be2ac PlayerPartnerHandleResetActionMoveSelection -thumb_func 0x81be2b8 FullSaveGame -thumb_func 0x81be304 nullsub_127 +thumb_func 0x81be2b8 PlayerPartnerHandleCmd55 +thumb_func 0x81be304 nullsub_77 +# mirage_tower.s thumb_func 0x81be308 IsMirageTowerVisible thumb_func 0x81be334 UpdateMirageTowerPulseBlend -thumb_func 0x81be348 +thumb_func 0x81be348 ClearMirageTowerPulseBlend thumb_func 0x81be354 TryStartMirageTowerPulseBlendEffect thumb_func 0x81be3c8 ClearMirageTowerPulseBlendEffect thumb_func 0x81be438 SetMirageTowerVisibility @@ -14408,23 +14671,25 @@ thumb_func 0x81be69c FinishCeilingCrumbleTask thumb_func 0x81be6bc CreateCeilingCrumbleSprites thumb_func 0x81be774 MoveCeilingCrumbleSprite thumb_func 0x81be7c0 SetInvisibleMirageTowerMetatiles -thumb_func 0x81be7f0 -thumb_func 0x81be804 -thumb_func 0x81be818 +thumb_func 0x81be7f0 StartMirageTowerDisintegration +thumb_func 0x81be804 StartMirageTowerFossilFallAndSink +thumb_func 0x81be818 StartMirageTowerShake thumb_func 0x81be82c SetBgShakeOffsets thumb_func 0x81be850 UpdateBgShake thumb_func 0x81be890 InitMirageTowerShake thumb_func 0x81be9ec DoMirageTowerDisintegration thumb_func 0x81becc4 DoFossilFallAndSink -thumb_func 0x81beee4 -thumb_func 0x81bef54 -thumb_func 0x81bf020 -thumb_func 0x81bf0b0 -thumb_func 0x81bf0bc +# berry_fix_program.s +thumb_func 0x81beee4 berry_fix_text_update +thumb_func 0x81bef54 CB2_InitBerryFixProgram +thumb_func 0x81bf020 berry_fix_bg_hide +thumb_func 0x81bf0b0 berry_fix_text_print +thumb_func 0x81bf0bc berry_fix_main +# pokemon_summary_screen.s thumb_func 0x81bf280 ShowPokemonSummaryScreen thumb_func 0x81bf3cc ShowSelectMovePokemonSummaryScreen -thumb_func 0x81bf414 CallBattlePyramidFunction -thumb_func 0x81bf430 SummaryScreen_VBlank +thumb_func 0x81bf414 SummaryScreen_VBlank +thumb_func 0x81bf430 FreeSummaryScreen thumb_func 0x81bf444 SummaryScreen_LoadingCB2 thumb_func 0x81bf470 SummaryScreen_LoadGraphics thumb_func 0x81bf784 InitBGs @@ -14455,8 +14720,8 @@ thumb_func 0x81c0b28 thumb_func 0x81c0bd0 thumb_func 0x81c0c18 thumb_func 0x81c0ce4 -thumb_func 0x81c0df0 -thumb_func 0x81c0f20 +thumb_func 0x81c0df0 SwapBoxMonMoves +thumb_func 0x81c0f20 SwapMonMoves thumb_func 0x81c1050 thumb_func 0x81c1080 HandleReplaceMoveInput thumb_func 0x81c11dc CanReplaceMove @@ -14473,63 +14738,63 @@ thumb_func 0x81c19a8 thumb_func 0x81c1a24 thumb_func 0x81c1ac8 thumb_func 0x81c1b5c DrawPokerusCuredSymbol -thumb_func 0x81c1bc0 +thumb_func 0x81c1bc0 Summary_SetDexNumberColor thumb_func 0x81c1c00 DrawExperienceProgressBar thumb_func 0x81c1d40 DrawContestMoveHearts thumb_func 0x81c1e58 LimitEggSummaryPageDisplay thumb_func 0x81c1e88 ResetWindows thumb_func 0x81c1ed8 SummaryScreen_PrintTextOnWindow -thumb_func 0x81c1f1c -thumb_func 0x81c1f5c -thumb_func 0x81c20d8 -thumb_func 0x81c2120 GetBgType -thumb_func 0x81c219c +thumb_func 0x81c1f1c Summary_PrintMonInfo +thumb_func 0x81c1f5c Summary_PrintNotEggInfo +thumb_func 0x81c20d8 Summary_PrintEggInfo +thumb_func 0x81c2120 Summar_PrintGenderSymbol +thumb_func 0x81c219c PrintAOrBButtonIcon thumb_func 0x81c21cc -thumb_func 0x81c23d4 -thumb_func 0x81c251c +thumb_func 0x81c23d4 CreatePageWindowTilemaps +thumb_func 0x81c251c ClearPageWindowTilemaps thumb_func 0x81c2620 AddWindowFromTemplateList thumb_func 0x81c265c SummaryScreen_RemoveWindowByIndex thumb_func 0x81c2690 PrintPageSpecificText -thumb_func 0x81c26c4 +thumb_func 0x81c26c4 SummaryScreen_MainCB2 thumb_func 0x81c26d8 CreateTextPrinterTask thumb_func 0x81c26f4 PrintInfoPageText thumb_func 0x81c2734 Task_PrintInfoPage -thumb_func 0x81c27b8 -thumb_func 0x81c2828 -thumb_func 0x81c288c -thumb_func 0x81c28e0 -thumb_func 0x81c2934 +thumb_func 0x81c27b8 PrintMonOTID +thumb_func 0x81c2828 PrintEggOTID +thumb_func 0x81c288c PrintMonAbilityDescription +thumb_func 0x81c28e0 PrintMonAbilityName +thumb_func 0x81c2934 BufferMonTrainerMemo thumb_func 0x81c2a4c PrintMonTrainerMemo -thumb_func 0x81c2a78 +thumb_func 0x81c2a78 BufferNatureString thumb_func 0x81c2ac4 GetMetLevelString thumb_func 0x81c2af4 DoesMonOTMatchOwner thumb_func 0x81c2bb4 DidMonComeFromGBAGames thumb_func 0x81c2bd8 DidMonComeFromRSE thumb_func 0x81c2bfc IsInGamePartnerMon -thumb_func 0x81c2c54 -thumb_func 0x81c2c84 +thumb_func 0x81c2c54 PrintLeftColumnStats +thumb_func 0x81c2c84 PrintRightColumnStats thumb_func 0x81c2cb4 PrintEggState thumb_func 0x81c2d28 PrintEggMemo thumb_func 0x81c2dbc PrintSkillsPageText thumb_func 0x81c2de0 Task_PrintSkillsPage -thumb_func 0x81c2e70 -thumb_func 0x81c2f08 +thumb_func 0x81c2e70 PrintHeldItemName +thumb_func 0x81c2f08 PrintRibbonCount thumb_func 0x81c2f74 BufferLeftColumnStats thumb_func 0x81c303c thumb_func 0x81c3068 BufferRightColumnStats -thumb_func 0x81c30f0 -thumb_func 0x81c311c +thumb_func 0x81c30f0 ShowPokemonSummaryScreenSet40EF +thumb_func 0x81c311c PrintExpPointsNextLevel thumb_func 0x81c31d8 PrintBattleMoves thumb_func 0x81c3244 Task_PrintBattleMoves -thumb_func 0x81c335c CB2_HandleStartMultiPartnerBattle +thumb_func 0x81c335c PrintMoveNameAndPP thumb_func 0x81c3498 PrintMovePowerAndAccuracy thumb_func 0x81c3544 PrintContestMoves thumb_func 0x81c3590 Task_PrintContestMoves thumb_func 0x81c3668 PrintContestMoveDescription thumb_func 0x81c36d4 PrintMoveDetails -thumb_func 0x81c377c +thumb_func 0x81c377c PrintNewMoveDetailsOrCancelText thumb_func 0x81c3888 -thumb_func 0x81c38c4 +thumb_func 0x81c38c4 PrintEggOTName thumb_func 0x81c3978 PrintHMMovesCantBeForgotten thumb_func 0x81c39b4 ResetSpriteIds thumb_func 0x81c39e4 DestroySpriteInArray @@ -14547,23 +14812,25 @@ thumb_func 0x81c3e18 CreatePokemonSprite thumb_func 0x81c3f80 PlayMonCry thumb_func 0x81c3fbc thumb_func 0x81c404c SpriteCB_Pokemon -thumb_func 0x81c4094 +thumb_func 0x81c4094 SummaryScreen_SetUnknownTaskId thumb_func 0x81c40a0 SummaryScreen_DestroyUnknownTask thumb_func 0x81c40bc SummaryScreen_DoesSpriteHaveCallback thumb_func 0x81c40f8 StopPokemonAnimations thumb_func 0x81c418c CreateMonMarkingsSprite thumb_func 0x81c41e8 RemoveAndCreateMonMarkingsSprite thumb_func 0x81c4210 CreateCaughtBallSprite -thumb_func 0x81c4290 +thumb_func 0x81c4290 CreateSetStatusSprite thumb_func 0x81c4300 thumb_func 0x81c43ec thumb_func 0x81c4468 thumb_func 0x81c448c thumb_func 0x81c4520 +# unk_pokedex_area_screen_helper.s thumb_func 0x81c4578 thumb_func 0x81c4698 thumb_func 0x81c46bc thumb_func 0x81c46d8 +# battle_pyramid_bag.s thumb_func 0x81c46f4 InitBattlePyramidBagCursorPosition thumb_func 0x81c4704 CB2_PyramidBagMenuFromStartMenu thumb_func 0x81c4718 @@ -14583,7 +14850,7 @@ thumb_func 0x81c4c68 PyramidBagMoveCursorFunc thumb_func 0x81c4d20 PrintItemQuantity thumb_func 0x81c4dd4 PrintItemDescription thumb_func 0x81c4e70 AddScrollArrow -thumb_func 0x81c4ec8 +thumb_func 0x81c4ec8 RemoveScrollArrow thumb_func 0x81c4ef4 thumb_func 0x81c4f34 SwapItems thumb_func 0x81c4fa4 MovePyramidBagItemSlotInList @@ -14605,7 +14872,7 @@ thumb_func 0x81c5998 IsValidMenuAction thumb_func 0x81c59d4 thumb_func 0x81c5a0c BagAction_UseOnField thumb_func 0x81c5a84 BagAction_Cancel -thumb_func 0x81c5ac8 +thumb_func 0x81c5ac8 SetTaskToMainPyramidBagInputHandler thumb_func 0x81c5af0 BagAction_Toss thumb_func 0x81c5b7c thumb_func 0x81c5bfc DontTossItem @@ -14620,7 +14887,7 @@ thumb_func 0x81c5efc thumb_func 0x81c5f24 thumb_func 0x81c5f5c thumb_func 0x81c5fac BagAction_UseInBattle -thumb_func 0x81c5fdc +thumb_func 0x81c5fdc Task_BeginItemSwap thumb_func 0x81c60c8 Task_ItemSwapHandleInput thumb_func 0x81c617c PerformItemSwap thumb_func 0x81c622c @@ -14632,7 +14899,7 @@ thumb_func 0x81c64c8 thumb_func 0x81c64e4 thumb_func 0x81c652c thumb_func 0x81c656c -thumb_func 0x81c6598 +thumb_func 0x81c6598 DisplayItemMessageInBattlePyramid thumb_func 0x81c65dc thumb_func 0x81c65f8 thumb_func 0x81c6658 @@ -14644,27 +14911,28 @@ thumb_func 0x81c67b8 thumb_func 0x81c67cc thumb_func 0x81c67e8 thumb_func 0x81c680c +# pokenav.s thumb_func 0x81c6838 CreateLoopedTask thumb_func 0x81c6898 IsLoopedTaskActive thumb_func 0x81c68e4 FuncIsActiveLoopedTask -thumb_func 0x81c6930 +thumb_func 0x81c6930 Task_RunLoopedTask thumb_func 0x81c69a4 Task_RunLoopedTask_LinkMode -thumb_func 0x81c6a10 +thumb_func 0x81c6a10 CB2_InitPokeNav thumb_func 0x81c6a64 thumb_func 0x81c6a7c thumb_func 0x81c6af4 FreePokenavResources thumb_func 0x81c6b20 InitPokenavResources thumb_func 0x81c6b48 AnyMonHasRibbon -thumb_func 0x81c6bc0 +thumb_func 0x81c6bc0 CB2_Pokenav thumb_func 0x81c6bd8 VBlankCB_Pokenav thumb_func 0x81c6bec -thumb_func 0x81c6d2c SetActivePokenavMenu -thumb_func 0x81c6d48 +thumb_func 0x81c6d2c CanViewRibbonsMenu +thumb_func 0x81c6d48 SetActivePokenavMenu thumb_func 0x81c6d94 thumb_func 0x81c6da0 -thumb_func 0x81c6dac nullsub_128 +thumb_func 0x81c6dac thumb_func 0x81c6db4 SetVBlankCallback_ -thumb_func 0x81c6dc0 +thumb_func 0x81c6dc0 InitKeys_ thumb_func 0x81c6dcc SetPokenavVBlankCallback thumb_func 0x81c6ddc AllocSubstruct thumb_func 0x81c6dfc GetSubstructPtr @@ -14673,27 +14941,28 @@ thumb_func 0x81c6e3c GetPokenavMode thumb_func 0x81c6e48 SetPokenavMode thumb_func 0x81c6e54 thumb_func 0x81c6e6c -thumb_func 0x81c6e78 CanViewRibbonsMenu +thumb_func 0x81c6e78 +# pokenav_main_menu.s thumb_func 0x81c6e84 InitPokenavMainMenu thumb_func 0x81c6ebc PokenavMainMenuLoopedTaskIsActive -thumb_func 0x81c6ed0 CB2_TradeEvolutionSceneUpdate +thumb_func 0x81c6ed0 ShutdownPokenav thumb_func 0x81c6ef8 WaitForPokenavShutdownFade thumb_func 0x81c6f24 LoopedTask_InitPokenavMenu thumb_func 0x81c6ff4 thumb_func 0x81c7010 thumb_func 0x81c702c -thumb_func 0x81c703c nullsub_129 +thumb_func 0x81c703c IsPaletteFadeActive thumb_func 0x81c7040 thumb_func 0x81c7060 thumb_func 0x81c7080 MainMenuLoopedTaskIsBusy thumb_func 0x81c7094 LoopedTask_ScrollMenuHeaderDown thumb_func 0x81c70dc LoopedTask_ScrollMenuHeaderUp -thumb_func 0x81c7104 ClearBottomWindow +thumb_func 0x81c7104 CopyPaletteIntoBufferUnfaded thumb_func 0x81c711c Pokenav_AllocAndLoadPalettes thumb_func 0x81c7150 thumb_func 0x81c717c thumb_func 0x81c7280 -thumb_func 0x81c72f4 +thumb_func 0x81c72f4 IsDma3ManagerBusyWithBgCopy_ thumb_func 0x81c7300 thumb_func 0x81c7314 InitBgTemplates thumb_func 0x81c7334 @@ -14708,7 +14977,7 @@ thumb_func 0x81c74a4 ResumeSpinningPokenavSprite thumb_func 0x81c74e8 InitHoennMapHeaderSprites thumb_func 0x81c75bc LoadLeftHeaderGfxForIndex thumb_func 0x81c75d4 -thumb_func 0x81c7618 +thumb_func 0x81c7618 LoadLeftHeaderGfxForMenu thumb_func 0x81c76cc LoadLeftHeaderGfxForSubMenu thumb_func 0x81c7748 thumb_func 0x81c776c @@ -14720,6 +14989,7 @@ thumb_func 0x81c787c HideLeftHeaderSprites thumb_func 0x81c78b8 HideLeftHeaderSubmenuSprites thumb_func 0x81c78f4 MoveLeftHeader thumb_func 0x81c7924 SpriteCB_MoveLeftHeader +# pokenav_match_call_ui.s thumb_func 0x81c797c thumb_func 0x81c79cc thumb_func 0x81c79dc @@ -14735,7 +15005,7 @@ thumb_func 0x81c7c68 ShouldShowDownArrow thumb_func 0x81c7c90 MatchCall_MoveWindow thumb_func 0x81c7d10 thumb_func 0x81c7d48 LoopedTask_sub_81C85A0 -thumb_func 0x81c7dd8 MatchCall_GetMessage_Type2 +thumb_func 0x81c7dd8 thumb_func 0x81c7dec GetMatchCallWindowStruct thumb_func 0x81c7e00 MatchCall_MoveCursorUp thumb_func 0x81c7e34 MatchCall_MoveCursorDown @@ -14763,12 +15033,13 @@ thumb_func 0x81c867c thumb_func 0x81c86a4 thumb_func 0x81c8794 thumb_func 0x81c87bc ToggleMatchCallArrows -thumb_func 0x81c8834 c3_0802FDF4 +thumb_func 0x81c8834 SpriteCB_MatchCallRightArrow thumb_func 0x81c8854 SpriteCB_MatchCallDownArrow thumb_func 0x81c88a8 SpriteCB_MatchCallUpArrow thumb_func 0x81c88fc ToggleMatchCallVerticalArrows thumb_func 0x81c8914 thumb_func 0x81c8960 +# pokenav_unk_1.s thumb_func 0x81c8a14 GetPokenavMainMenuType thumb_func 0x81c8a44 thumb_func 0x81c8a78 @@ -14796,13 +15067,14 @@ thumb_func 0x81c9040 thumb_func 0x81c9050 thumb_func 0x81c9060 thumb_func 0x81c9070 +# pokenav_unk_2.s thumb_func 0x81c9080 thumb_func 0x81c90d0 thumb_func 0x81c90ec thumb_func 0x81c9104 thumb_func 0x81c913c thumb_func 0x81c916c -thumb_func 0x81c917c nullsub_1301 +thumb_func 0x81c917c thumb_func 0x81c9180 thumb_func 0x81c91a8 thumb_func 0x81c91bc @@ -14815,7 +15087,7 @@ thumb_func 0x81c9674 thumb_func 0x81c96a4 thumb_func 0x81c96d4 thumb_func 0x81c9770 -thumb_func 0x81c9798 PrintLeftColumnStats +thumb_func 0x81c9798 thumb_func 0x81c97d8 thumb_func 0x81c9840 thumb_func 0x81c9874 @@ -14841,7 +15113,7 @@ thumb_func 0x81c9f80 thumb_func 0x81c9fa0 thumb_func 0x81c9fb4 thumb_func 0x81c9fc4 -thumb_func 0x81c9ffc Overworld_ResetStateAfterFly +thumb_func 0x81c9ffc thumb_func 0x81ca010 thumb_func 0x81ca048 thumb_func 0x81ca05c @@ -14853,6 +15125,7 @@ thumb_func 0x81ca184 thumb_func 0x81ca198 thumb_func 0x81ca1e8 thumb_func 0x81ca288 +# pokenav_unk_3.s thumb_func 0x81ca294 thumb_func 0x81ca2d0 thumb_func 0x81ca2e4 @@ -14873,26 +15146,27 @@ thumb_func 0x81ca650 thumb_func 0x81ca668 thumb_func 0x81ca6b0 thumb_func 0x81ca71c -thumb_func 0x81ca77c GroundEffect_DeepSandTracks +thumb_func 0x81ca77c thumb_func 0x81ca7c0 thumb_func 0x81ca7d0 -thumb_func 0x81ca7f4 DoHitAnimHealthboxEffect +thumb_func 0x81ca7f4 thumb_func 0x81ca86c thumb_func 0x81ca888 thumb_func 0x81ca8cc thumb_func 0x81ca910 unref_sub_81CB16C thumb_func 0x81ca974 +# pokenav_unk_4.s thumb_func 0x81caa04 thumb_func 0x81caa40 thumb_func 0x81caa70 -thumb_func 0x81caa80 nullsub_131 +thumb_func 0x81caa80 thumb_func 0x81caa84 thumb_func 0x81caab4 thumb_func 0x81caac8 thumb_func 0x81cacb4 thumb_func 0x81cad20 thumb_func 0x81cad8c -thumb_func 0x81cadf8 DestroyFog1Sprites +thumb_func 0x81cadf8 thumb_func 0x81cae64 thumb_func 0x81caea8 thumb_func 0x81caed0 @@ -14926,7 +15200,7 @@ thumb_func 0x81cb760 thumb_func 0x81cb780 thumb_func 0x81cb7a4 thumb_func 0x81cb7e8 -thumb_func 0x81cb81c OpponentHandlePaletteFade +thumb_func 0x81cb81c thumb_func 0x81cb82c thumb_func 0x81cb854 thumb_func 0x81cb86c @@ -14956,9 +15230,9 @@ thumb_func 0x81cbd30 thumb_func 0x81cbd38 thumb_func 0x81cbd48 thumb_func 0x81cbd80 -thumb_func 0x81cbdb0 PlayerHandleOneReturnValue -thumb_func 0x81cbdc0 nullsub_130 -thumb_func 0x81cbdc4 Cb_PlaceMon +thumb_func 0x81cbdb0 +thumb_func 0x81cbdc0 +thumb_func 0x81cbdc4 thumb_func 0x81cbdf8 thumb_func 0x81cbe10 thumb_func 0x81cbe24 @@ -14967,7 +15241,7 @@ thumb_func 0x81cbf9c thumb_func 0x81cbfcc thumb_func 0x81cc02c thumb_func 0x81cc0b0 -thumb_func 0x81cc114 InitMoveRelearnerWindows +thumb_func 0x81cc114 thumb_func 0x81cc140 thumb_func 0x81cc170 thumb_func 0x81cc250 @@ -15020,7 +15294,7 @@ thumb_func 0x81cd510 thumb_func 0x81cd534 thumb_func 0x81cd58c thumb_func 0x81cd5c4 -thumb_func 0x81cd5d8 nullsub_133 +thumb_func 0x81cd5d8 thumb_func 0x81cd5e0 thumb_func 0x81cd5f4 thumb_func 0x81cda30 @@ -15030,7 +15304,7 @@ thumb_func 0x81cdd44 thumb_func 0x81cde1c thumb_func 0x81cde60 thumb_func 0x81cde98 -thumb_func 0x81cdeb4 GiveMailToMon +thumb_func 0x81cdeb4 thumb_func 0x81ce068 thumb_func 0x81ce098 thumb_func 0x81ce0c4 @@ -15069,7 +15343,7 @@ thumb_func 0x81cea64 thumb_func 0x81cea9c thumb_func 0x81cead4 thumb_func 0x81ceb04 -thumb_func 0x81ceb14 nullsub_1341 +thumb_func 0x81ceb14 thumb_func 0x81ceb18 thumb_func 0x81ceb2c thumb_func 0x81ceb4c @@ -15078,7 +15352,7 @@ thumb_func 0x81ced14 thumb_func 0x81ced7c thumb_func 0x81cede4 thumb_func 0x81cee4c -thumb_func 0x81cee8c CB2_MoveRelearnerMain +thumb_func 0x81cee8c thumb_func 0x81ceebc thumb_func 0x81ceee8 thumb_func 0x81cef4c @@ -15106,7 +15380,7 @@ thumb_func 0x81cf4a4 thumb_func 0x81cf4dc thumb_func 0x81cf514 thumb_func 0x81cf544 -thumb_func 0x81cf554 nullsub_135 +thumb_func 0x81cf554 thumb_func 0x81cf558 thumb_func 0x81cf56c thumb_func 0x81cf58c @@ -15120,6 +15394,7 @@ thumb_func 0x81cf8e0 thumb_func 0x81cf95c thumb_func 0x81cf9a4 thumb_func 0x81cf9f8 +# pokenav_unk_10.s thumb_func 0x81cfb00 thumb_func 0x81cfb50 thumb_func 0x81cfb68 @@ -15143,7 +15418,7 @@ thumb_func 0x81d0004 thumb_func 0x81d0028 thumb_func 0x81d0060 thumb_func 0x81d0090 -thumb_func 0x81d00a0 nullsub_134 +thumb_func 0x81d00a0 thumb_func 0x81d00a4 thumb_func 0x81d0108 thumb_func 0x81d011c @@ -15158,7 +15433,7 @@ thumb_func 0x81d05ac thumb_func 0x81d067c thumb_func 0x81d06a0 thumb_func 0x81d076c -thumb_func 0x81d07b8 DisplayItemMessageInBattlePyramid +thumb_func 0x81d07b8 thumb_func 0x81d081c thumb_func 0x81d0864 thumb_func 0x81d0894 @@ -15177,61 +15452,63 @@ thumb_func 0x81d0b64 thumb_func 0x81d0c1c thumb_func 0x81d0c40 thumb_func 0x81d0c54 +# pokenav_match_call_data.s thumb_func 0x81d0c90 MatchCallGetFunctionIndex thumb_func 0x81d0cd8 GetTrainerIdxByRematchIdx thumb_func 0x81d0ce8 GetRematchIdxByTrainerIdx thumb_func 0x81d0d10 MatchCallFlagGetByIndex -thumb_func 0x81d0d44 -thumb_func 0x81d0d68 -thumb_func 0x81d0d8c +thumb_func 0x81d0d44 MatchCallGetFlag_Type0 +thumb_func 0x81d0d68 MatchCallGetFlag_Type1 +thumb_func 0x81d0d8c MatchCallGetFlag_Type2 thumb_func 0x81d0db0 MatchCallGetFlag_Type4 thumb_func 0x81d0de8 MatchCallGetFlag_Type3 thumb_func 0x81d0df8 MatchCallMapSecGetByIndex -thumb_func 0x81d0e30 -thumb_func 0x81d0e34 -thumb_func 0x81d0e38 -thumb_func 0x81d0e6c -thumb_func 0x81d0e70 +thumb_func 0x81d0e30 MatchCallGetMapSec_Type0 +thumb_func 0x81d0e34 MatchCallGetMapSec_Type1 +thumb_func 0x81d0e38 MatchCallGetMapSec_Type2 +thumb_func 0x81d0e6c MatchCallGetMapSec_Type4 +thumb_func 0x81d0e70 MatchCallGetMapSec_Type3 thumb_func 0x81d0e74 MatchCall_IsRematchable -thumb_func 0x81d0ea8 nullsub_137 +thumb_func 0x81d0ea8 MatchCall_IsRematchable_Type3 thumb_func 0x81d0eac MatchCall_IsRematchable_Type1 thumb_func 0x81d0edc MatchCall_IsRematchable_Type2 -thumb_func 0x81d0efc -thumb_func 0x81d0f00 nullsub_138 +thumb_func 0x81d0efc MatchCall_IsRematchable_Type4 +thumb_func 0x81d0f00 thumb_func 0x81d0f04 thumb_func 0x81d0f5c -thumb_func 0x81d0f60 nullsub_139 -thumb_func 0x81d0f64 nullsub_1401 -thumb_func 0x81d0f68 nullsub_141 -thumb_func 0x81d0f6c nullsub_140 +thumb_func 0x81d0f60 +thumb_func 0x81d0f64 +thumb_func 0x81d0f68 +thumb_func 0x81d0f6c MatchCall_IsRematchable_Type0 thumb_func 0x81d0f70 MatchCall_GetRematchTableIdx -thumb_func 0x81d0fa4 -thumb_func 0x81d0fa8 -thumb_func 0x81d0fac -thumb_func 0x81d0fb0 -thumb_func 0x81d0fb4 +thumb_func 0x81d0fa4 MatchCall_GetRematchTableIdx_Type3 +thumb_func 0x81d0fa8 MatchCall_GetRematchTableIdx_Type1 +thumb_func 0x81d0fac MatchCall_GetRematchTableIdx_Type2 +thumb_func 0x81d0fb0 MatchCall_GetRematchTableIdx_Type4 +thumb_func 0x81d0fb4 MatchCall_GetRematchTableIdx_Type0 thumb_func 0x81d0fb8 MatchCall_GetMessage thumb_func 0x81d0fec MatchCall_GetMessage_Type0 thumb_func 0x81d0ff8 MatchCall_GetMessage_Type1 -thumb_func 0x81d1018 +thumb_func 0x81d1018 MatchCall_GetMessage_Type2 thumb_func 0x81d1024 MatchCall_GetMessage_Type4 thumb_func 0x81d1030 MatchCall_GetMessage_Type3 thumb_func 0x81d103c thumb_func 0x81d109c thumb_func 0x81d1178 -thumb_func 0x81d11b0 +thumb_func 0x81d11b0 MatchCall_GetNameAndDesc_Type3 thumb_func 0x81d11bc MatchCall_GetNameAndDesc_Type1 thumb_func 0x81d11dc MatchCall_GetNameAndDesc_Type2 -thumb_func 0x81d11f4 -thumb_func 0x81d1200 +thumb_func 0x81d11f4 MatchCall_GetNameAndDesc_Type4 +thumb_func 0x81d1200 MatchCall_GetNameAndDesc_Type0 thumb_func 0x81d120c MatchCall_GetNameAndDescByRematchIdx thumb_func 0x81d123c thumb_func 0x81d12cc thumb_func 0x81d12f4 thumb_func 0x81d131c SetMatchCallRegisteredFlag +# menu_specialized.s thumb_func 0x81d1340 -thumb_func 0x81d1380 UpdateWorldOfMastersAndPutItOnTheAir -thumb_func 0x81d13b4 +thumb_func 0x81d1380 +thumb_func 0x81d13b4 MoveRelearnerCursorCallback thumb_func 0x81d13e4 thumb_func 0x81d13f4 thumb_func 0x81d14c4 @@ -15247,12 +15524,12 @@ thumb_func 0x81d1824 thumb_func 0x81d1878 thumb_func 0x81d18c0 thumb_func 0x81d1aec -thumb_func 0x81d1c48 MatchCallGetMapSec_Type2 +thumb_func 0x81d1c48 thumb_func 0x81d1d70 -thumb_func 0x81d1e40 +thumb_func 0x81d1e40 InitMoveRelearnerWindows thumb_func 0x81d1ee0 thumb_func 0x81d1fd8 LoadMoveRelearnerMovesList -thumb_func 0x81d200c +thumb_func 0x81d200c MoveRelearnerMenuLoadContestMoveDescription thumb_func 0x81d2208 MoveRelearnerPrintText thumb_func 0x81d2250 MoveRelearnerRunTextPrinters thumb_func 0x81d2264 MoveRelearnerCreateYesNoMenu @@ -15277,18 +15554,19 @@ thumb_func 0x81d2a38 thumb_func 0x81d2a94 thumb_func 0x81d2ab0 thumb_func 0x81d2b50 -thumb_func 0x81d2b7c +thumb_func 0x81d2b7c nullsub_79 thumb_func 0x81d2b94 thumb_func 0x81d2c18 thumb_func 0x81d2c70 DrawLevelUpWindowPg1 thumb_func 0x81d2db4 DrawLevelUpWindowPg2 thumb_func 0x81d2eb8 GetMonLevelUpWindowStats +# ereader_helpers.s thumb_func 0x81d2f00 thumb_func 0x81d2f28 Struct_Unk81D38FC_ValidateChecksum -thumb_func 0x81d2f4c +thumb_func 0x81d2f4c EReader_IsReceivedDataValid thumb_func 0x81d2f9c TrainerHill_VerifyChecksum -thumb_func 0x81d2fc8 -thumb_func 0x81d3130 +thumb_func 0x81d2fc8 TryWriteTrainerHill_r +thumb_func 0x81d3130 TryWriteTrainerHill thumb_func 0x81d3158 TryReadTrainerHill_r thumb_func 0x81d318c TryReadTrainerHill thumb_func 0x81d31b4 ReadTrainerHillAndValidate @@ -15309,6 +15587,7 @@ thumb_func 0x81d37f0 thumb_func 0x81d3820 thumb_func 0x81d3874 thumb_func 0x81d38b8 +# faraway_island.s thumb_func 0x81d38d8 GetMewEventObjectId thumb_func 0x81d38fc GetMewMoveDirection thumb_func 0x81d3eb4 CanMewWalkToCoords @@ -15324,6 +15603,7 @@ thumb_func 0x81d42d8 thumb_func 0x81d431c thumb_func 0x81d4360 thumb_func 0x81d43a4 +# ereader_screen.s thumb_func 0x81d43d0 thumb_func 0x81d4438 thumb_func 0x81d4468 @@ -15331,20 +15611,21 @@ thumb_func 0x81d44b0 thumb_func 0x81d44e0 thumb_func 0x81d4540 thumb_func 0x81d4564 -thumb_func 0x81d4694 +thumb_func 0x81d4694 task_add_00_ereader thumb_func 0x81d46dc thumb_func 0x81d46e4 thumb_func 0x81d4704 -thumb_func 0x81d4b14 -thumb_func 0x81d4b3c +# trainer_hill.s +thumb_func 0x81d4b14 CallTrainerHillFunction +thumb_func 0x81d4b3c ResetTrainerHillResults thumb_func 0x81d4b80 GetFloorId thumb_func 0x81d4b90 GetTrainerHillOpponentClass -thumb_func 0x81d4bb4 ScrCmd_showmonpic +thumb_func 0x81d4bb4 GetTrainerHillTrainerName thumb_func 0x81d4be4 GetTrainerHillTrainerFrontSpriteId -thumb_func 0x81d4c30 -thumb_func 0x81d4cf0 +thumb_func 0x81d4c30 InitTrainerHillBattleStruct +thumb_func 0x81d4cf0 FreeDataStruct thumb_func 0x81d4d0c SetUpDataStruct -thumb_func 0x81d4d64 +thumb_func 0x81d4d64 FreeTrainerHillBattleStruct thumb_func 0x81d4d80 CopyTrainerHillTrainerText thumb_func 0x81d4e70 TrainerHillStartChallenge thumb_func 0x81d4f2c @@ -15358,11 +15639,11 @@ thumb_func 0x81d51f4 thumb_func 0x81d5238 thumb_func 0x81d52f0 thumb_func 0x81d5334 -thumb_func 0x81d535c nullsub_143 +thumb_func 0x81d535c nullsub_129 thumb_func 0x81d5360 -thumb_func 0x81d53cc -thumb_func 0x81d56e8 -thumb_func 0x81d56ec +thumb_func 0x81d53cc PrintOnTrainerHillRecordsWindow +thumb_func 0x81d56e8 GetTimerValue +thumb_func 0x81d56ec SetTimerValue thumb_func 0x81d56f0 thumb_func 0x81d5840 thumb_func 0x81d58b0 @@ -15372,30 +15653,31 @@ thumb_func 0x81d5a38 GetCurrentTrainerHillMapId thumb_func 0x81d5a9c thumb_func 0x81d5abc thumb_func 0x81d5ad0 -thumb_func 0x81d5b1c +thumb_func 0x81d5b1c LocalIdToHillTrainerId thumb_func 0x81d5b38 GetHillTrainerFlag thumb_func 0x81d5b84 SetHillTrainerFlag -thumb_func 0x81d5c48 +thumb_func 0x81d5c48 GetTrainerHillTrainerScript thumb_func 0x81d5c50 thumb_func 0x81d5c68 thumb_func 0x81d5d20 FillHillTrainerParty thumb_func 0x81d5d38 FillHillTrainersParties thumb_func 0x81d5d60 -thumb_func 0x81d5d64 +thumb_func 0x81d5d64 GetTrainerEncounterMusicIdInTrainerHill thumb_func 0x81d5dcc thumb_func 0x81d5e30 thumb_func 0x81d5e4c thumb_func 0x81d5e60 thumb_func 0x81d5e7c thumb_func 0x81d5e9c -thumb_func 0x81d5eb8 +thumb_func 0x81d5eb8 nullsub_2 thumb_func 0x81d5ed4 thumb_func 0x81d5f08 thumb_func 0x81d5f40 -thumb_func 0x81d5f98 AllocOamMatrix +thumb_func 0x81d5f98 +# rayquaza_scene.s thumb_func 0x81d605c DoRayquazaScene thumb_func 0x81d60b0 CB2_InitRayquazaScene -thumb_func 0x81d610c +thumb_func 0x81d610c CB2_RayquazaScene thumb_func 0x81d6128 VBlankCB_RayquazaScene thumb_func 0x81d613c Task_EndAfterFadeScreen thumb_func 0x81d617c Task_SetNextAnim @@ -15425,7 +15707,7 @@ thumb_func 0x81d719c thumb_func 0x81d71f8 thumb_func 0x81d739c thumb_func 0x81d7650 -thumb_func 0x81d774c MoveSelectionDisplayPpString +thumb_func 0x81d774c thumb_func 0x81d77d8 thumb_func 0x81d7888 Task_RayTakesFlightAnim thumb_func 0x81d78fc Task_HandleRayTakesFlight @@ -15437,7 +15719,7 @@ thumb_func 0x81d7c94 thumb_func 0x81d7d88 thumb_func 0x81d7e28 Task_RayDescendsAnim thumb_func 0x81d7eb8 Task_HandleRayDescends -thumb_func 0x81d7fc0 +thumb_func 0x81d7fc0 Task_RayDescendsEnd thumb_func 0x81d8008 thumb_func 0x81d8088 thumb_func 0x81d8164 @@ -15465,12 +15747,13 @@ thumb_func 0x81d8f58 thumb_func 0x81d911c thumb_func 0x81d91a4 thumb_func 0x81d91f0 +# walda_phrase.s thumb_func 0x81d92f8 TryBufferWaldaPhrase thumb_func 0x81d9320 DoWaldaNamingScreen thumb_func 0x81d9358 CB2_HandleGivenWaldaPhrase thumb_func 0x81d93d4 GetWaldaPhraseInputCase thumb_func 0x81d9400 TryGetWallpaperWithWaldaPhrase -thumb_func 0x81d947c +thumb_func 0x81d947c TryCalculateWallpaper thumb_func 0x81d9574 thumb_func 0x81d95c0 thumb_func 0x81d95f0 @@ -15478,7 +15761,8 @@ thumb_func 0x81d960c thumb_func 0x81d9624 thumb_func 0x81d9640 thumb_func 0x81d9690 -thumb_func 0x81d97c0 +thumb_func 0x81d97c0 GetLetterTableId +# contest_link_81D9DE4.s thumb_func 0x81d97dc thumb_func 0x81d97f8 thumb_func 0x81d9814 @@ -15489,10 +15773,12 @@ thumb_func 0x81d9ad4 thumb_func 0x81d9b78 thumb_func 0x81d9c48 thumb_func 0x81d9d18 +# gym_leader_rematch.s thumb_func 0x81d9dcc UpdateGymLeaderRematch thumb_func 0x81d9e24 UpdateGymLeaderRematchFromArray thumb_func 0x81d9f1c GetRematchIndex -thumb_func 0x81d9f50 StopCry +# unk_transition.s +thumb_func 0x81d9f50 thumb_func 0x81d9f9c thumb_func 0x81da098 thumb_func 0x81da10c @@ -15502,346 +15788,354 @@ thumb_func 0x81da2c4 thumb_func 0x81da31c thumb_func 0x81da39c thumb_func 0x81da40c -thumb_func 0x81da42c +thumb_func 0x81da42c Phase2Task_34 thumb_func 0x81da464 thumb_func 0x81da4d0 -thumb_func 0x81da504 +thumb_func 0x81da504 Phase2Task_35 thumb_func 0x81da53c thumb_func 0x81da5a8 -thumb_func 0x81da5dc +thumb_func 0x81da5dc Phase2Task_36 thumb_func 0x81da614 thumb_func 0x81da694 -thumb_func 0x81da6c8 +thumb_func 0x81da6c8 Phase2Task_37 thumb_func 0x81da700 thumb_func 0x81da784 -thumb_func 0x81da7b8 +thumb_func 0x81da7b8 Phase2Task_38 thumb_func 0x81da7f0 thumb_func 0x81da87c -thumb_func 0x81da8b0 +thumb_func 0x81da8b0 Phase2Task_39 thumb_func 0x81da8e8 thumb_func 0x81da974 -thumb_func 0x81da9a8 +thumb_func 0x81da9a8 Phase2Task_40 thumb_func 0x81da9e0 thumb_func 0x81daa74 -thumb_func 0x81daaa8 +thumb_func 0x81daaa8 Phase2Task_41 thumb_func 0x81daae0 thumb_func 0x81dab78 -# gcnmultiboot -thumb_func 0x0828d2f8 GameCubeMultiBoot_Hash -thumb_func 0x0828d30c GameCubeMultiBoot_Main -thumb_func 0x0828d40c GameCubeMultiBoot_ExecuteProgram -thumb_func 0x0828d420 GameCubeMultiBoot_Init -thumb_func 0x0828d46a GameCubeMultiBoot_HandleSerialInterrupt -thumb_func 0x0828d4ac GcMbIntrHandler_CheckGameCodeSent -thumb_func 0x0828d4b8 GcMbIntrHandler_CheckHandshakeResponse -thumb_func 0x0828d4cc GcMbIntrHandler_ReceiveKeyA -thumb_func 0x0828d50c GcMbIntrHandler_CheckKeyBSent -thumb_func 0x0828d518 GcMbIntrHandler_CheckImageSizeResponse -thumb_func 0x0828d53c GcMbIntrHandler_CheckImageResponse -thumb_func 0x0828d568 GcMbIntrHandler_CheckCounter2Sent -thumb_func 0x0828d578 GcMbIntrHandler_CheckKeyCDerivationSent -thumb_func 0x0828d584 GcMbIntrHandler_CheckBootKeyResponse -thumb_func 0x0828d598 GcMbIntrHandler_StopUnconditionally -thumb_func 0x0828d59a GameCubeMultiBoot_Quit -# m4a -thumb_func 0x0828d5d4 umul3232H32 -arm_func 0x0828d5d8 __umul3232H32 -thumb_func 0x0828d5e4 SoundMain -thumb_func 0x0828d668 SoundMainRAM -arm_func 0x0828D674 SoundMainRAM_Reverb -arm_func 0x0828D804 -arm_func 0x0828da24 -arm_func 0x0828dce0 -thumb_func 0x0828dd6c SoundMainBTM -thumb_func 0x0828dd84 RealClearChain -thumb_func 0x0828dda4 ply_fine -thumb_func 0x0828ddd4 MPlayJumpTableCopy -thumb_func 0x0828de08 ld_r3_tp_adr_i -thumb_func 0x0828de14 ply_goto -thumb_func 0x0828de34 ply_patt -thumb_func 0x0828de50 ply_pend -thumb_func 0x0828de64 ply_rept -thumb_func 0x0828de94 ply_prio -thumb_func 0x0828dea0 ply_tempo -thumb_func 0x0828deb4 ply_keysh -thumb_func 0x0828dec8 ply_voice -thumb_func 0x0828def8 ply_vol -thumb_func 0x0828df0c ply_pan -thumb_func 0x0828df20 ply_bend -thumb_func 0x0828df34 ply_bendr -thumb_func 0x0828df48 ply_lfodl -thumb_func 0x0828df54 ply_modt -thumb_func 0x0828df6c ply_tune -thumb_func 0x0828df80 ply_port -thumb_func 0x0828df98 m4aSoundVSync -thumb_func 0x0828dfe4 MPlayMain -thumb_func 0x0828e24c TrackStop -thumb_func 0x0828e290 ChnVolSetAsm -thumb_func 0x0828e2c0 ply_note -thumb_func 0x0828e4c4 ply_endtie -thumb_func 0x0828e504 clear_modM -thumb_func 0x0828e52c ply_lfos -thumb_func 0x0828e540 ply_mod -thumb_func 0x0828e554 MidiKeyToFreq -thumb_func 0x0828e5b8 UnusedDummyFunc -thumb_func 0x0828e5bc MPlayContinue -thumb_func 0x0828e5d8 MPlayFadeOut -thumb_func 0x0828e5f8 m4aSoundInit -thumb_func 0x0828e6ac m4aSoundMain -thumb_func 0x0828e6b8 m4aSongNumStart -thumb_func 0x0828e6e4 m4aSongNumStartOrChange -thumb_func 0x0828e730 m4aSongNumStartOrContinue -thumb_func 0x0828e784 m4aSongNumStop -thumb_func 0x0828e7b8 m4aSongNumContinue -thumb_func 0x0828e7ec m4aMPlayAllStop -thumb_func 0x0828e830 m4aMPlayContinue -thumb_func 0x0828e83c m4aMPlayAllContinue -thumb_func 0x0828e880 m4aMPlayFadeOut -thumb_func 0x0828e890 m4aMPlayFadeOutTemporarily -thumb_func 0x0828e8b0 m4aMPlayFadeIn -thumb_func 0x0828e8d8 m4aMPlayImmInit -thumb_func 0x0828e920 MPlayExtender -thumb_func 0x0828ea38 MusicPlayerJumpTableCopy -thumb_func 0x0828ea3c ClearChain -thumb_func 0x0828ea50 Clear64byte -thumb_func 0x0828ea64 SoundInit -thumb_func 0x0828eb5c SampleFreqSet -thumb_func 0x0828ec00 m4aSoundMode -thumb_func 0x0828ec98 SoundClear -thumb_func 0x0828ecec m4aSoundVSyncOff -thumb_func 0x0828ed68 m4aSoundVSyncOn -thumb_func 0x0828eda4 MPlayOpen -thumb_func 0x0828ee1c MPlayStart -thumb_func 0x0828ef00 m4aMPlayStop -thumb_func 0x0828ef40 FadeOutBody -thumb_func 0x0828f008 TrkVolPitSet -thumb_func 0x0828f0bc MidiKeyToCgbFreq -thumb_func 0x0828f164 CgbOscOff -thumb_func 0x0828f1b4 CgbModVol -thumb_func 0x0828f230 CgbSound -thumb_func 0x0828f67c m4aMPlayTempoControl -thumb_func 0x0828f6a4 m4aMPlayVolumeControl -thumb_func 0x0828f70c m4aMPlayPitchControl -thumb_func 0x0828f780 m4aMPlayPanpotControl -thumb_func 0x0828f7e8 ClearModM -thumb_func 0x0828f808 m4aMPlayModDepthSet -thumb_func 0x0828f87c m4aMPlayLFOSpeedSet -thumb_func 0x0828f8f0 ply_memacc -thumb_func 0x0828fa48 ply_xcmd -thumb_func 0x0828fa68 ply_xxx -thumb_func 0x0828fa7c ply_xwave -thumb_func 0x0828fac4 ply_xtype -thumb_func 0x0828fad8 ply_xatta -thumb_func 0x0828faec ply_xdeca -thumb_func 0x0828fb00 ply_xsust -thumb_func 0x0828fb14 ply_xrele -thumb_func 0x0828fb28 ply_xiecv -thumb_func 0x0828fb34 ply_xiecl -thumb_func 0x0828fb40 ply_xleng -thumb_func 0x0828fb54 ply_xswee -thumb_func 0x0828fb68 ply_xcmd_0C -thumb_func 0x0828fbb0 ply_xcmd_0D -thumb_func 0x0828fbf8 DummyFunc -thumb_func 0x0828fbfc SetPokemonCryTone -thumb_func 0x0828fccc SetPokemonCryVolume -thumb_func 0x0828fce0 SetPokemonCryPanpot -thumb_func 0x0828fcf8 SetPokemonCryPitch -thumb_func 0x0828fd30 SetPokemonCryLength -thumb_func 0x0828fd3c SetPokemonCryRelease -thumb_func 0x0828fd48 SetPokemonCryProgress -thumb_func 0x0828fd54 IsPokemonCryPlaying -thumb_func 0x0828fd6c SetPokemonCryChorus -thumb_func 0x0828fd98 SetPokemonCryStereo -thumb_func 0x0828fdd8 SetPokemonCryPriority -# agb_flash -thumb_func 0x0828fde4 SwitchFlashBank -thumb_func 0x0828fe08 ReadFlashId -thumb_func 0x0828fea4 FlashTimerIntr -thumb_func 0x0828fecc SetFlashTimerIntr -thumb_func 0x0828ff08 StartFlashTimer -thumb_func 0x0828ffb0 StopFlashTimer -thumb_func 0x0828fff4 ReadFlash1 -thumb_func 0x0828fff8 SetReadFlash1 -thumb_func 0x08290038 ReadFlash_Core -thumb_func 0x0829005c ReadFlash -thumb_func 0x082900f8 VerifyFlashSector_Core -thumb_func 0x08290128 VerifyFlashSector -thumb_func 0x082901c0 VerifyFlashSectorNBytes -thumb_func 0x08290258 ProgramFlashSectorAndVerify -thumb_func 0x0829029c ProgramFlashSectorAndVerifyNBytes -thumb_func 0x082902e4 IdentifyFlash -thumb_func 0x08290384 WaitForFlashWrite_Common -thumb_func 0x08290424 EraseFlashChip_MX -thumb_func 0x08290498 EraseFlashSector_MX -thumb_func 0x08290568 ProgramFlashByte_MX -thumb_func 0x08290634 ProgramFlashSector_MX -# siirtc -thumb_func 0x082906d8 SiiRtcUnprotect -thumb_func 0x082906f0 SiiRtcProtect -thumb_func 0x08290708 SiiRtcProbe -thumb_func 0x082907e0 SiiRtcReset -thumb_func 0x08290864 SiiRtcGetStatus -thumb_func 0x08290930 SiiRtcSetStatus -thumb_func 0x082909d8 SiiRtcGetDateTime -thumb_func 0x08290a88 SiiRtcSetDateTime -thumb_func 0x08290b24 SiiRtcGetTime -thumb_func 0x08290bd8 SiiRtcSetTime -thumb_func 0x08290c74 SiiRtcSetAlarm -# rfu -thumb_func 0x08290fa0 STWI_init_all -thumb_func 0x08291078 STWI_init_timer -thumb_func 0x082910b4 AgbRFU_SoftReset -thumb_func 0x08291168 STWI_set_MS_mode -thumb_func 0x0829117c STWI_read_status -thumb_func 0x082911dc STWI_init_Callback_M -thumb_func 0x082911e8 STWI_init_Callback_S -thumb_func 0x082911f4 STWI_set_Callback_M -thumb_func 0x08291200 STWI_set_Callback_S -thumb_func 0x0829120c STWI_set_Callback_ID -thumb_func 0x08291218 STWI_poll_CommandEnd -thumb_func 0x08291240 STWI_send_ResetREQ -thumb_func 0x08291264 STWI_send_LinkStatusREQ -thumb_func 0x08291288 STWI_send_VersionStatusREQ -thumb_func 0x082912ac STWI_send_SystemStatusREQ -thumb_func 0x082912d0 STWI_send_SlotStatusREQ -thumb_func 0x082912f4 STWI_send_ConfigStatusREQ -thumb_func 0x08291318 STWI_send_GameConfigREQ -thumb_func 0x08291370 STWI_send_SystemConfigREQ -thumb_func 0x082913b0 STWI_send_SC_StartREQ -thumb_func 0x082913d4 STWI_send_SC_PollingREQ -thumb_func 0x082913f8 STWI_send_SC_EndREQ -thumb_func 0x0829141c STWI_send_SP_StartREQ -thumb_func 0x08291440 STWI_send_SP_PollingREQ -thumb_func 0x08291464 STWI_send_SP_EndREQ -thumb_func 0x08291488 STWI_send_CP_StartREQ -thumb_func 0x082914b8 STWI_send_CP_PollingREQ -thumb_func 0x082914dc STWI_send_CP_EndREQ -thumb_func 0x08291500 STWI_send_DataTxREQ -thumb_func 0x08291548 STWI_send_DataTxAndChangeREQ -thumb_func 0x08291590 STWI_send_DataRxREQ -thumb_func 0x082915b4 STWI_send_MS_ChangeREQ -thumb_func 0x082915d8 STWI_send_DataReadyAndChangeREQ -thumb_func 0x08291628 STWI_send_DisconnectedAndChangeREQ -thumb_func 0x08291668 STWI_send_ResumeRetransmitAndChangeREQ -thumb_func 0x0829168c STWI_send_DisconnectREQ -thumb_func 0x082916bc STWI_send_TestModeREQ -thumb_func 0x082916f4 STWI_send_CPR_StartREQ -thumb_func 0x08291730 STWI_send_CPR_PollingREQ -thumb_func 0x08291754 STWI_send_CPR_EndREQ -thumb_func 0x08291778 STWI_send_StopModeREQ -thumb_func 0x0829179c STWI_intr_timer -thumb_func 0x08291800 STWI_set_timer -thumb_func 0x082918ac STWI_stop_timer -thumb_func 0x082918d8 STWI_init -thumb_func 0x082919b0 STWI_start_Command -thumb_func 0x08291a24 STWI_restart_Command -thumb_func 0x08291aa4 STWI_reset_ClockCounter -arm_func 0x08291adc IntrSIO32 -arm_func 0x08291b0c -arm_func 0x0829209c -arm_func 0x08291b40 sio32intr_clock_master -arm_func 0x08291dd0 sio32intr_clock_slave -arm_func 0x082921dc handshake_wait -arm_func 0x08292244 STWI_set_timer_in_RAM -arm_func 0x08292354 STWI_stop_timer_in_RAM -arm_func 0x082923a4 STWI_init_slave -arm_func 0x08292430 -arm_func 0x08292434 -arm_func 0x08292438 -thumb_func 0x0829243c rfu_initializeAPI -thumb_func 0x08292564 rfu_STC_clearAPIVariables -thumb_func 0x082925ec rfu_REQ_PARENT_resumeRetransmitAndChange -thumb_func 0x08292600 rfu_UNI_PARENT_getDRAC_ACK -thumb_func 0x08292648 rfu_setTimerInterrupt -thumb_func 0x0829265c rfu_getSTWIRecvBuffer -thumb_func 0x0829266c rfu_setMSCCallback -thumb_func 0x08292678 rfu_setREQCallback -thumb_func 0x08292694 rfu_enableREQCallback -thumb_func 0x082926c0 rfu_STC_REQ_callback -thumb_func 0x08292700 rfu_CB_defaultCallback -thumb_func 0x08292770 rfu_waitREQComplete -thumb_func 0x08292784 rfu_REQ_RFUStatus -thumb_func 0x08292798 rfu_getRFUStatus -thumb_func 0x082927d4 -thumb_func 0x082927e4 -thumb_func 0x0829284c rfu_REQ_stopMode -thumb_func 0x082928f4 rfu_CB_stopMode -thumb_func 0x08292920 rfu_REQBN_softReset_and_checkID -thumb_func 0x0829295c rfu_REQ_reset -thumb_func 0x08292970 rfu_CB_reset -thumb_func 0x08292994 rfu_REQ_configSystem -thumb_func 0x082929fc rfu_REQ_configGameData -thumb_func 0x08292a88 rfu_CB_configGameData -thumb_func 0x08292b24 rfu_REQ_startSearchChild -thumb_func 0x08292b94 rfu_CB_startSearchChild -thumb_func 0x08292bbc rfu_STC_clearLinkStatus -thumb_func 0x08292c20 rfu_REQ_pollSearchChild -thumb_func 0x08292c34 rfu_REQ_endSearchChild -thumb_func 0x08292c48 rfu_CB_pollAndEndSearchChild -thumb_func 0x08292cd0 rfu_STC_readChildList -thumb_func 0x08292d8c rfu_REQ_startSearchParent -thumb_func 0x08292da0 rfu_CB_startSearchParent -thumb_func 0x08292dc4 rfu_REQ_pollSearchParent -thumb_func 0x08292dd8 -thumb_func 0x08292dfc rfu_REQ_endSearchParent -thumb_func 0x08292e10 rfu_STC_readParentCandidateList -thumb_func 0x08292f20 rfu_REQ_startConnectParent -thumb_func 0x08292f88 rfu_REQ_pollConnectParent -thumb_func 0x08292f9c rfu_CB_pollConnectParent -thumb_func 0x082930bc rfu_getConnectParentStatus -thumb_func 0x082930f0 rfu_REQ_endConnectParent -thumb_func 0x08293128 rfu_syncVBlank -thumb_func 0x08293208 rfu_REQBN_watchLink -thumb_func 0x082935f4 rfu_STC_removeLinkData -thumb_func 0x082936b4 rfu_REQ_disconnect -thumb_func 0x08293744 rfu_CB_disconnect -thumb_func 0x08293824 rfu_REQ_CHILD_startConnectRecovery -thumb_func 0x08293880 rfu_REQ_CHILD_pollConnectRecovery -thumb_func 0x08293894 rfu_CB_CHILD_pollConnectRecovery -thumb_func 0x08293938 rfu_CHILD_getConnectRecoveryStatus -thumb_func 0x08293968 rfu_REQ_CHILD_endConnectRecovery -thumb_func 0x0829397c -thumb_func 0x08293992 -thumb_func 0x082939ac rfu_REQ_changeMasterSlave -thumb_func 0x082939d8 rfu_getMasterSlave -thumb_func 0x08293a10 rfu_clearAllSlot -thumb_func 0x08293ab0 rfu_STC_releaseFrame -thumb_func 0x08293b1c rfu_clearSlot -thumb_func 0x08293cd8 rfu_setRecvBuffer -thumb_func 0x08293d38 rfu_NI_setSendData -thumb_func 0x08293d64 rfu_UNI_setSendData -thumb_func 0x08293da0 rfu_NI_CHILD_setSendGameName -thumb_func 0x08293dd4 rfu_STC_setSendData_org -thumb_func 0x08293fdc rfu_changeSendTarget -thumb_func 0x08294144 rfu_NI_stopReceivingData -thumb_func 0x082941bc rfu_UNI_changeAndReadySendData -thumb_func 0x08294250 rfu_UNI_readySendData -thumb_func 0x0829427c rfu_UNI_clearRecvNewDataFlag -thumb_func 0x0829429c rfu_REQ_sendData -thumb_func 0x082943e0 rfu_CB_sendData -thumb_func 0x08294478 rfu_CB_sendData2 -thumb_func 0x08294488 -thumb_func 0x082944b0 rfu_constructSendLLFrame -thumb_func 0x082945e8 rfu_STC_NI_constructLLSF -thumb_func 0x082947a8 rfu_STC_UNI_constructLLSF -thumb_func 0x0829487c rfu_REQ_recvData -thumb_func 0x082948bc rfu_CB_recvData -thumb_func 0x082949a8 rfu_STC_PARENT_analyzeRecvPacket -thumb_func 0x08294a40 rfu_STC_CHILD_analyzeRecvPacket -thumb_func 0x08294a98 rfu_STC_analyzeLLSF -thumb_func 0x08294cdc rfu_STC_UNI_receive -thumb_func 0x08294d90 rfu_STC_NI_receive_Sender -thumb_func 0x08294f7c rfu_STC_NI_receive_Receiver -thumb_func 0x082950f8 rfu_STC_NI_initSlot_asRecvControllData -thumb_func 0x08295188 rfu_STC_NI_initSlot_asRecvDataEntity -thumb_func 0x08295240 rfu_NI_checkCommFailCounter -thumb_func 0x082952dc rfu_REQ_noise -thumb_func 0x082952f4 -thumb_func 0x082953a8 -thumb_func 0x0829541c -thumb_func 0x08295510 -thumb_func 0x0829552a -# isabgprn +# libgcnmultiboot.s +thumb_func 0x828d2f8 GameCubeMultiBoot_Hash +thumb_func 0x828d30c GameCubeMultiBoot_Main +thumb_func 0x828d40c GameCubeMultiBoot_ExecuteProgram +thumb_func 0x828d420 GameCubeMultiBoot_Init +thumb_func 0x828d46a GameCubeMultiBoot_HandleSerialInterrupt +thumb_func 0x828d4ac GcMbIntrHandler_CheckGameCodeSent +thumb_func 0x828d4b8 GcMbIntrHandler_CheckHandshakeResponse +thumb_func 0x828d4cc GcMbIntrHandler_ReceiveKeyA +thumb_func 0x828d50c GcMbIntrHandler_CheckKeyBSent +thumb_func 0x828d518 GcMbIntrHandler_CheckImageSizeResponse +thumb_func 0x828d53c GcMbIntrHandler_CheckImageResponse +thumb_func 0x828d568 GcMbIntrHandler_CheckCounter2Sent +thumb_func 0x828d578 GcMbIntrHandler_CheckKeyCDerivationSent +thumb_func 0x828d584 GcMbIntrHandler_CheckBootKeyResponse +thumb_func 0x828d598 GcMbIntrHandler_StopUnconditionally +thumb_func 0x828d59a GameCubeMultiBoot_Quit +# m4a.s +thumb_func 0x828d5d4 umul3232H32 +arm_func 0x828d5d8 __umul3232H32 +thumb_func 0x828d5e4 SoundMain +thumb_func 0x828d668 SoundMainRAM +arm_func 0x828d674 SoundMainRAM_Reverb +arm_func 0x828d804 +arm_func 0x828da24 +arm_func 0x828dce0 +thumb_func 0x828dd6c SoundMainBTM +thumb_func 0x828dd84 RealClearChain +thumb_func 0x828dda4 ply_fine +thumb_func 0x828ddd4 MPlayJumpTableCopy +thumb_func 0x828de08 ld_r3_tp_adr_i +thumb_func 0x828de14 ply_goto +thumb_func 0x828de34 ply_patt +thumb_func 0x828de50 ply_pend +thumb_func 0x828de64 ply_rept +thumb_func 0x828de94 ply_prio +thumb_func 0x828dea0 ply_tempo +thumb_func 0x828deb4 ply_keysh +thumb_func 0x828dec8 ply_voice +thumb_func 0x828def8 ply_vol +thumb_func 0x828df0c ply_pan +thumb_func 0x828df20 ply_bend +thumb_func 0x828df34 ply_bendr +thumb_func 0x828df48 ply_lfodl +thumb_func 0x828df54 ply_modt +thumb_func 0x828df6c ply_tune +thumb_func 0x828df80 ply_port +thumb_func 0x828df98 m4aSoundVSync +thumb_func 0x828dfe4 MPlayMain +thumb_func 0x828e24c TrackStop +thumb_func 0x828e290 ChnVolSetAsm +thumb_func 0x828e2c0 ply_note +thumb_func 0x828e4c4 ply_endtie +thumb_func 0x828e504 clear_modM +thumb_func 0x828e52c ply_lfos +thumb_func 0x828e540 ply_mod +thumb_func 0x828e554 MidiKeyToFreq +thumb_func 0x828e5b8 UnusedDummyFunc +thumb_func 0x828e5bc MPlayContinue +thumb_func 0x828e5d8 MPlayFadeOut +thumb_func 0x828e5f8 m4aSoundInit +thumb_func 0x828e6ac m4aSoundMain +thumb_func 0x828e6b8 m4aSongNumStart +thumb_func 0x828e6e4 m4aSongNumStartOrChange +thumb_func 0x828e730 m4aSongNumStartOrContinue +thumb_func 0x828e784 m4aSongNumStop +thumb_func 0x828e7b8 m4aSongNumContinue +thumb_func 0x828e7ec m4aMPlayAllStop +thumb_func 0x828e830 m4aMPlayContinue +thumb_func 0x828e83c m4aMPlayAllContinue +thumb_func 0x828e880 m4aMPlayFadeOut +thumb_func 0x828e890 m4aMPlayFadeOutTemporarily +thumb_func 0x828e8b0 m4aMPlayFadeIn +thumb_func 0x828e8d8 m4aMPlayImmInit +thumb_func 0x828e920 MPlayExtender +thumb_func 0x828ea38 MusicPlayerJumpTableCopy +thumb_func 0x828ea3c ClearChain +thumb_func 0x828ea50 Clear64byte +thumb_func 0x828ea64 SoundInit +thumb_func 0x828eb5c SampleFreqSet +thumb_func 0x828ec00 m4aSoundMode +thumb_func 0x828ec98 SoundClear +thumb_func 0x828ecec m4aSoundVSyncOff +thumb_func 0x828ed68 m4aSoundVSyncOn +thumb_func 0x828eda4 MPlayOpen +thumb_func 0x828ee1c MPlayStart +thumb_func 0x828ef00 m4aMPlayStop +thumb_func 0x828ef40 FadeOutBody +thumb_func 0x828f008 TrkVolPitSet +thumb_func 0x828f0bc MidiKeyToCgbFreq +thumb_func 0x828f164 CgbOscOff +thumb_func 0x828f1b4 CgbModVol +thumb_func 0x828f230 CgbSound +thumb_func 0x828f67c m4aMPlayTempoControl +thumb_func 0x828f6a4 m4aMPlayVolumeControl +thumb_func 0x828f70c m4aMPlayPitchControl +thumb_func 0x828f780 m4aMPlayPanpotControl +thumb_func 0x828f7e8 ClearModM +thumb_func 0x828f808 m4aMPlayModDepthSet +thumb_func 0x828f87c m4aMPlayLFOSpeedSet +thumb_func 0x828f8f0 ply_memacc +thumb_func 0x828fa48 ply_xcmd +thumb_func 0x828fa68 ply_xxx +thumb_func 0x828fa7c ply_xwave +thumb_func 0x828fac4 ply_xtype +thumb_func 0x828fad8 ply_xatta +thumb_func 0x828faec ply_xdeca +thumb_func 0x828fb00 ply_xsust +thumb_func 0x828fb14 ply_xrele +thumb_func 0x828fb28 ply_xiecv +thumb_func 0x828fb34 ply_xiecl +thumb_func 0x828fb40 ply_xleng +thumb_func 0x828fb54 ply_xswee +thumb_func 0x828fb68 ply_xcmd_0C +thumb_func 0x828fbb0 ply_xcmd_0D +thumb_func 0x828fbf8 DummyFunc +thumb_func 0x828fbfc SetPokemonCryTone +thumb_func 0x828fccc SetPokemonCryVolume +thumb_func 0x828fce0 SetPokemonCryPanpot +thumb_func 0x828fcf8 SetPokemonCryPitch +thumb_func 0x828fd30 SetPokemonCryLength +thumb_func 0x828fd3c SetPokemonCryRelease +thumb_func 0x828fd48 SetPokemonCryProgress +thumb_func 0x828fd54 IsPokemonCryPlaying +thumb_func 0x828fd6c SetPokemonCryChorus +thumb_func 0x828fd98 SetPokemonCryStereo +thumb_func 0x828fdd8 SetPokemonCryPriority +# agb_flash.s +thumb_func 0x828fde4 SwitchFlashBank +thumb_func 0x828fe08 ReadFlashId +thumb_func 0x828fea4 FlashTimerIntr +thumb_func 0x828fecc SetFlashTimerIntr +thumb_func 0x828ff08 StartFlashTimer +thumb_func 0x828ffb0 StopFlashTimer +thumb_func 0x828fff4 ReadFlash1 +thumb_func 0x828fff8 SetReadFlash1 +thumb_func 0x8290038 ReadFlash_Core +thumb_func 0x829005c ReadFlash +thumb_func 0x82900f8 VerifyFlashSector_Core +thumb_func 0x8290128 VerifyFlashSector +thumb_func 0x82901c0 VerifyFlashSectorNBytes +thumb_func 0x8290258 ProgramFlashSectorAndVerify +thumb_func 0x829029c ProgramFlashSectorAndVerifyNBytes +thumb_func 0x82902e4 IdentifyFlash +thumb_func 0x8290384 WaitForFlashWrite_Common +thumb_func 0x8290424 EraseFlashChip_MX +thumb_func 0x8290498 EraseFlashSector_MX +thumb_func 0x8290568 ProgramFlashByte_MX +thumb_func 0x8290634 ProgramFlashSector_MX +# siirtc.s +thumb_func 0x82906d8 SiiRtcUnprotect +thumb_func 0x82906f0 SiiRtcProtect +thumb_func 0x8290708 SiiRtcProbe +thumb_func 0x82907e0 SiiRtcReset +thumb_func 0x8290864 SiiRtcGetStatus +thumb_func 0x8290930 SiiRtcSetStatus +thumb_func 0x82909d8 SiiRtcGetDateTime +thumb_func 0x8290a88 SiiRtcSetDateTime +thumb_func 0x8290b24 SiiRtcGetTime +thumb_func 0x8290bd8 SiiRtcSetTime +thumb_func 0x8290c74 SiiRtcSetAlarm +thumb_func 0x8290da8 WriteCommand +thumb_func 0x8290e4c WriteData +thumb_func 0x8290eec ReadData +thumb_func 0x8290f78 EnableGpioPortRead +thumb_func 0x8290f8c DisableGpioPortRead +# librfu_stwi.s +thumb_func 0x8290fa0 STWI_init_all +thumb_func 0x8291078 STWI_init_timer +thumb_func 0x82910b4 AgbRFU_SoftReset +thumb_func 0x8291168 STWI_set_MS_mode +thumb_func 0x829117c STWI_read_status +thumb_func 0x82911dc STWI_init_Callback_M +thumb_func 0x82911e8 STWI_init_Callback_S +thumb_func 0x82911f4 STWI_set_Callback_M +thumb_func 0x8291200 STWI_set_Callback_S +thumb_func 0x829120c STWI_set_Callback_ID +thumb_func 0x8291218 STWI_poll_CommandEnd +thumb_func 0x8291240 STWI_send_ResetREQ +thumb_func 0x8291264 STWI_send_LinkStatusREQ +thumb_func 0x8291288 STWI_send_VersionStatusREQ +thumb_func 0x82912ac STWI_send_SystemStatusREQ +thumb_func 0x82912d0 STWI_send_SlotStatusREQ +thumb_func 0x82912f4 STWI_send_ConfigStatusREQ +thumb_func 0x8291318 STWI_send_GameConfigREQ +thumb_func 0x8291370 STWI_send_SystemConfigREQ +thumb_func 0x82913b0 STWI_send_SC_StartREQ +thumb_func 0x82913d4 STWI_send_SC_PollingREQ +thumb_func 0x82913f8 STWI_send_SC_EndREQ +thumb_func 0x829141c STWI_send_SP_StartREQ +thumb_func 0x8291440 STWI_send_SP_PollingREQ +thumb_func 0x8291464 STWI_send_SP_EndREQ +thumb_func 0x8291488 STWI_send_CP_StartREQ +thumb_func 0x82914b8 STWI_send_CP_PollingREQ +thumb_func 0x82914dc STWI_send_CP_EndREQ +thumb_func 0x8291500 STWI_send_DataTxREQ +thumb_func 0x8291548 STWI_send_DataTxAndChangeREQ +thumb_func 0x8291590 STWI_send_DataRxREQ +thumb_func 0x82915b4 STWI_send_MS_ChangeREQ +thumb_func 0x82915d8 STWI_send_DataReadyAndChangeREQ +thumb_func 0x8291628 STWI_send_DisconnectedAndChangeREQ +thumb_func 0x8291668 STWI_send_ResumeRetransmitAndChangeREQ +thumb_func 0x829168c STWI_send_DisconnectREQ +thumb_func 0x82916bc STWI_send_TestModeREQ +thumb_func 0x82916f4 STWI_send_CPR_StartREQ +thumb_func 0x8291730 STWI_send_CPR_PollingREQ +thumb_func 0x8291754 STWI_send_CPR_EndREQ +thumb_func 0x8291778 STWI_send_StopModeREQ +thumb_func 0x829179c STWI_intr_timer +thumb_func 0x8291800 STWI_set_timer +thumb_func 0x82918ac STWI_stop_timer +thumb_func 0x82918d8 STWI_init +thumb_func 0x82919b0 STWI_start_Command +thumb_func 0x8291a24 STWI_restart_Command +thumb_func 0x8291aa4 STWI_reset_ClockCounter +# librfu_intr.s +arm_func 0x8291adc IntrSIO32 +arm_func 0x8291b0c +arm_func 0x8291b40 sio32intr_clock_master +arm_func 0x8291dd0 sio32intr_clock_slave +arm_func 0x829209c +arm_func 0x82921dc handshake_wait +arm_func 0x8292244 STWI_set_timer_in_RAM +arm_func 0x8292354 STWI_stop_timer_in_RAM +arm_func 0x82923a4 STWI_init_slave +arm_func 0x8292430 +arm_func 0x8292434 +arm_func 0x8292438 +# librfu_rfu.s +thumb_func 0x829243c rfu_initializeAPI +thumb_func 0x8292564 rfu_STC_clearAPIVariables +thumb_func 0x82925ec rfu_REQ_PARENT_resumeRetransmitAndChange +thumb_func 0x8292600 rfu_UNI_PARENT_getDRAC_ACK +thumb_func 0x8292648 rfu_setTimerInterrupt +thumb_func 0x829265c rfu_getSTWIRecvBuffer +thumb_func 0x829266c rfu_setMSCCallback +thumb_func 0x8292678 rfu_setREQCallback +thumb_func 0x8292694 rfu_enableREQCallback +thumb_func 0x82926c0 rfu_STC_REQ_callback +thumb_func 0x8292700 rfu_CB_defaultCallback +thumb_func 0x8292770 rfu_waitREQComplete +thumb_func 0x8292784 rfu_REQ_RFUStatus +thumb_func 0x8292798 rfu_getRFUStatus +thumb_func 0x82927d4 +thumb_func 0x82927e4 +thumb_func 0x829284c rfu_REQ_stopMode +thumb_func 0x82928f4 rfu_CB_stopMode +thumb_func 0x8292920 rfu_REQBN_softReset_and_checkID +thumb_func 0x829295c rfu_REQ_reset +thumb_func 0x8292970 rfu_CB_reset +thumb_func 0x8292994 rfu_REQ_configSystem +thumb_func 0x82929fc rfu_REQ_configGameData +thumb_func 0x8292a88 rfu_CB_configGameData +thumb_func 0x8292b24 rfu_REQ_startSearchChild +thumb_func 0x8292b94 rfu_CB_startSearchChild +thumb_func 0x8292bbc rfu_STC_clearLinkStatus +thumb_func 0x8292c20 rfu_REQ_pollSearchChild +thumb_func 0x8292c34 rfu_REQ_endSearchChild +thumb_func 0x8292c48 rfu_CB_pollAndEndSearchChild +thumb_func 0x8292cd0 rfu_STC_readChildList +thumb_func 0x8292d8c rfu_REQ_startSearchParent +thumb_func 0x8292da0 rfu_CB_startSearchParent +thumb_func 0x8292dc4 rfu_REQ_pollSearchParent +thumb_func 0x8292dd8 +thumb_func 0x8292dfc rfu_REQ_endSearchParent +thumb_func 0x8292e10 rfu_STC_readParentCandidateList +thumb_func 0x8292f20 rfu_REQ_startConnectParent +thumb_func 0x8292f88 rfu_REQ_pollConnectParent +thumb_func 0x8292f9c rfu_CB_pollConnectParent +thumb_func 0x82930bc rfu_getConnectParentStatus +thumb_func 0x82930f0 rfu_REQ_endConnectParent +thumb_func 0x8293128 rfu_syncVBlank +thumb_func 0x8293208 rfu_REQBN_watchLink +thumb_func 0x82935f4 rfu_STC_removeLinkData +thumb_func 0x82936b4 rfu_REQ_disconnect +thumb_func 0x8293744 rfu_CB_disconnect +thumb_func 0x8293824 rfu_REQ_CHILD_startConnectRecovery +thumb_func 0x8293880 rfu_REQ_CHILD_pollConnectRecovery +thumb_func 0x8293894 rfu_CB_CHILD_pollConnectRecovery +thumb_func 0x8293938 rfu_CHILD_getConnectRecoveryStatus +thumb_func 0x8293968 rfu_REQ_CHILD_endConnectRecovery +thumb_func 0x829397c +thumb_func 0x8293992 +thumb_func 0x82939ac rfu_REQ_changeMasterSlave +thumb_func 0x82939d8 rfu_getMasterSlave +thumb_func 0x8293a10 rfu_clearAllSlot +thumb_func 0x8293ab0 rfu_STC_releaseFrame +thumb_func 0x8293b1c rfu_clearSlot +thumb_func 0x8293cd8 rfu_setRecvBuffer +thumb_func 0x8293d38 rfu_NI_setSendData +thumb_func 0x8293d64 rfu_UNI_setSendData +thumb_func 0x8293da0 rfu_NI_CHILD_setSendGameName +thumb_func 0x8293dd4 rfu_STC_setSendData_org +thumb_func 0x8293fdc rfu_changeSendTarget +thumb_func 0x8294144 rfu_NI_stopReceivingData +thumb_func 0x82941bc rfu_UNI_changeAndReadySendData +thumb_func 0x8294250 rfu_UNI_readySendData +thumb_func 0x829427c rfu_UNI_clearRecvNewDataFlag +thumb_func 0x829429c rfu_REQ_sendData +thumb_func 0x82943e0 rfu_CB_sendData +thumb_func 0x8294478 rfu_CB_sendData2 +thumb_func 0x8294488 +thumb_func 0x82944b0 rfu_constructSendLLFrame +thumb_func 0x82945e8 rfu_STC_NI_constructLLSF +thumb_func 0x82947a8 rfu_STC_UNI_constructLLSF +thumb_func 0x829487c rfu_REQ_recvData +thumb_func 0x82948bc rfu_CB_recvData +thumb_func 0x82949a8 rfu_STC_PARENT_analyzeRecvPacket +thumb_func 0x8294a40 rfu_STC_CHILD_analyzeRecvPacket +thumb_func 0x8294a98 rfu_STC_analyzeLLSF +thumb_func 0x8294cdc rfu_STC_UNI_receive +thumb_func 0x8294d90 rfu_STC_NI_receive_Sender +thumb_func 0x8294f7c rfu_STC_NI_receive_Receiver +thumb_func 0x82950f8 rfu_STC_NI_initSlot_asRecvControllData +thumb_func 0x8295188 rfu_STC_NI_initSlot_asRecvDataEntity +thumb_func 0x8295240 rfu_NI_checkCommFailCounter +thumb_func 0x82952dc rfu_REQ_noise +# librfu.s +thumb_func 0x82952f4 +thumb_func 0x82953a8 +thumb_func 0x829541c +thumb_func 0x8295510 +thumb_func 0x829552a +# libisagbprn.s thumb_func 0x8295600 AGBPrintInit thumb_func 0x8295688 AGBPutcInternal thumb_func 0x8295774 AGBPutc @@ -15851,172 +16145,171 @@ thumb_func 0x8295874 AGBPrintTransferDataInternal thumb_func 0x829594c AGBPrintFlush1Block thumb_func 0x829595c AGBPrintFlush thumb_func 0x829596c AGBAssert -# libgcc -thumb_func 0x082959b0 ArcTan2 -thumb_func 0x082959b4 BgAffineSet -thumb_func 0x082959b8 CpuFastSet -thumb_func 0x082959bc CpuSet -thumb_func 0x082959c0 Div -thumb_func 0x082959c4 LZ77UnCompVram -thumb_func 0x082959c8 LZ77UnCompWram -thumb_func 0x082959cc MultiBoot -thumb_func 0x082959d4 ObjAffineSet -thumb_func 0x082959d8 RLUnCompVram -thumb_func 0x082959dc RLUnCompWram -thumb_func 0x082959e0 RegisterRamReset -thumb_func 0x082959e4 SoftReset -thumb_func 0x082959fc Sqrt -thumb_func 0x08295a00 VBlankIntrWait -thumb_func 0x08295a08 _call_via_r0 -thumb_func 0x08295a0c _call_via_r1 -thumb_func 0x08295a10 _call_via_r2 -thumb_func 0x08295a14 _call_via_r3 -thumb_func 0x08295a18 _call_via_r4 -thumb_func 0x08295a1c _call_via_r5 -thumb_func 0x08295a20 _call_via_r6 -thumb_func 0x08295a24 _call_via_r7 -thumb_func 0x08295a28 _call_via_r8 -thumb_func 0x08295a2c _call_via_r9 -thumb_func 0x08295a30 _call_via_sl -thumb_func 0x08295a34 _call_via_fp -thumb_func 0x08295a38 _call_via_ip -thumb_func 0x08295a3c _call_via_sp -thumb_func 0x08295a40 _call_via_lr -thumb_func 0x08295a44 __divdi3 -thumb_func 0x08295e78 __divsi3 -thumb_func 0x08295f0c __div0 -thumb_func 0x08295f10 __fixunsdfsi -thumb_func 0x08295f54 __fixunssfsi -thumb_func 0x08295f88 __modsi3 -thumb_func 0x08296058 __muldi3 -thumb_func 0x082960c8 __udivdi3 -thumb_func 0x082964a0 __udivsi3 -thumb_func 0x08296518 __umodsi3 -thumb_func 0x082965d8 __pack_d -thumb_func 0x08296720 __unpack_d -thumb_func 0x08296a64 __adddf3 -thumb_func 0x08296a94 __subdf3 -thumb_func 0x08296acc __muldf3 -thumb_func 0x08296d74 __divdf3 -thumb_func 0x08296efc __fpcmp_parts_d -thumb_func 0x08296ffc __cmpdf2 -thumb_func 0x08297028 __eqdf2 -thumb_func 0x08297074 __nedf2 -thumb_func 0x082970c0 __gtdf2 -thumb_func 0x0829710c __gedf2 -thumb_func 0x08297158 __ltdf2 -thumb_func 0x082971a4 __ledf2 -thumb_func 0x082971f0 __floatsidf -thumb_func 0x0829726c __fixdfsi -thumb_func 0x082972e0 __negdf2 -thumb_func 0x08297308 __make_dp -thumb_func 0x08297330 __truncdfsf2 -thumb_func 0x08297374 __pack_f -thumb_func 0x0829742c __unpack_f -thumb_func 0x08297624 __addsf3 -thumb_func 0x08297650 __subsf3 -thumb_func 0x08297684 __mulsf3 -thumb_func 0x082977e8 __divsf3 -thumb_func 0x082978d4 __fpcmp_parts_f -thumb_func 0x082979b8 __cmpsf2 -thumb_func 0x082979e0 __eqsf2 -thumb_func 0x08297a28 __nesf2 -thumb_func 0x08297a70 __gtsf2 -thumb_func 0x08297ab8 __gesf2 -thumb_func 0x08297b00 __ltsf2 -thumb_func 0x08297b48 __lesf2 -thumb_func 0x08297b90 __floatsisf -thumb_func 0x08297bf0 __fixsfsi -thumb_func 0x08297c58 __negsf2 -thumb_func 0x08297c7c __make_fp -thumb_func 0x08297c94 __extendsfdf2 -thumb_func 0x08297cc0 __lshrdi3 -thumb_func 0x08297cf4 __negdi2 -thumb_func 0x08297d0c memcpy -thumb_func 0x08297d6c memset -# libc -thumb_func 0x08297D0C memcpy -thumb_func 0x08297D6C memset -thumb_func 0x08297dc0 strcmp -thumb_func 0x08297e1c strcpy -thumb_func 0x08297e68 vsprintf -thumb_func 0x08297f30 vfprintf -thumb_func 0x08297f44 _vfprintf_r -thumb_func 0x08299008 __swsetup -thumb_func 0x08299210 _dtoa_r -thumb_func 0x08299f08 fflush -thumb_func 0x08299fd4 __sfmoreglue -thumb_func 0x0829a004 __sfp -thumb_func 0x0829a078 _cleanup_r -thumb_func 0x0829a088 _cleanup -thumb_func 0x0829a098 __sinit -thumb_func 0x0829a0f8 _free_r -thumb_func 0x0829a2b8 _malloc_trim_r -thumb_func 0x0829a378 __sfvwrite -thumb_func 0x0829a5a4 _fwalk -thumb_func 0x0829a5e4 _setlocale_r -thumb_func 0x0829a620 _localeconv_r -thumb_func 0x0829a628 setlocale -thumb_func 0x0829a640 localeconv -thumb_func 0x0829a650 __smakebuf -thumb_func 0x0829a888 _malloc_r -thumb_func 0x0829ac48 _mbtowc_r -thumb_func 0x0829ac74 memchr -thumb_func 0x0829acf4 memmove -thumb_func 0x0829ad7c __malloc_lock -thumb_func 0x0829ad80 __malloc_unlock -thumb_func 0x0829ad84 _Balloc -thumb_func 0x0829addc _Bfree -thumb_func 0x0829adf4 _multadd -thumb_func 0x0829ae8c _s2b -thumb_func 0x0829af10 _hi0bits -thumb_func 0x0829af68 _lo0bits -thumb_func 0x0829afec _i2b -thumb_func 0x0829b000 _multiply -thumb_func 0x0829b16c _pow5mult -thumb_func 0x0829b204 _lshift -thumb_func 0x0829b2a4 __mcmp -thumb_func 0x0829b2e4 __mdiff -thumb_func 0x0829b3d4 _ulp -thumb_func 0x0829b420 _b2d -thumb_func 0x0829b4dc _d2b -thumb_func 0x0829b5c4 _ratio -thumb_func 0x0829b614 _mprec_log10 -thumb_func 0x0829b654 isinf -thumb_func 0x0829b678 isnan -thumb_func 0x0829b698 _sbrk_r -thumb_func 0x0829b6c4 __sread -thumb_func 0x0829b6f8 __swrite -thumb_func 0x0829b738 __sseek -thumb_func 0x0829b778 __sclose -thumb_func 0x0829b788 strlen -thumb_func 0x0829b838 initialise_monitor_handles -thumb_func 0x0829b8e8 _swiread -thumb_func 0x0829b90c _read -thumb_func 0x0829b954 _swilseek -thumb_func 0x0829b9d8 _lseek -thumb_func 0x0829b9e4 _swiwrite -thumb_func 0x0829ba08 _write -thumb_func 0x0829ba54 _swiopen -thumb_func 0x0829baf4 _open -thumb_func 0x0829bb08 _swiclose -thumb_func 0x0829bb3c _close -thumb_func 0x0829bb48 _exit -thumb_func 0x0829bb68 _kill -thumb_func 0x0829bb88 _getpid -thumb_func 0x0829bb8c _sbrk -thumb_func 0x0829bbc8 _fstat -thumb_func 0x0829bbd4 _unlink -thumb_func 0x0829bbdc _raise -thumb_func 0x0829bbe0 _gettimeofday -thumb_func 0x0829bc0c _times -thumb_func 0x0829bc30 _write_r -thumb_func 0x0829bc60 _calloc_r -thumb_func 0x0829bcb8 _close_r -thumb_func 0x0829bce4 __errno -thumb_func 0x0829bcf0 _fstat_r -thumb_func 0x0829bd1c abort -thumb_func 0x0829bd3c isatty -thumb_func 0x0829bd40 alarm -thumb_func 0x0829bd44 _lseek_r -thumb_func 0x0829bd74 _read_r +# libagbsyscall.s +thumb_func 0x82959b0 ArcTan2 +thumb_func 0x82959b4 BgAffineSet +thumb_func 0x82959b8 CpuFastSet +thumb_func 0x82959bc CpuSet +thumb_func 0x82959c0 Div +thumb_func 0x82959c4 LZ77UnCompVram +thumb_func 0x82959c8 LZ77UnCompWram +thumb_func 0x82959cc MultiBoot +thumb_func 0x82959d4 ObjAffineSet +thumb_func 0x82959d8 RLUnCompVram +thumb_func 0x82959dc RLUnCompWram +thumb_func 0x82959e0 RegisterRamReset +thumb_func 0x82959e4 SoftReset +thumb_func 0x82959fc Sqrt +thumb_func 0x8295a00 VBlankIntrWait +# libgcc.s +thumb_func 0x8295a08 _call_via_r0 +thumb_func 0x8295a0c _call_via_r1 +thumb_func 0x8295a10 _call_via_r2 +thumb_func 0x8295a14 _call_via_r3 +thumb_func 0x8295a18 _call_via_r4 +thumb_func 0x8295a1c _call_via_r5 +thumb_func 0x8295a20 _call_via_r6 +thumb_func 0x8295a24 _call_via_r7 +thumb_func 0x8295a28 _call_via_r8 +thumb_func 0x8295a2c _call_via_r9 +thumb_func 0x8295a30 _call_via_sl +thumb_func 0x8295a34 _call_via_fp +thumb_func 0x8295a38 _call_via_ip +thumb_func 0x8295a3c _call_via_sp +thumb_func 0x8295a40 _call_via_lr +thumb_func 0x8295a44 __divdi3 +thumb_func 0x8295e78 __divsi3 +thumb_func 0x8295f0c __div0 +thumb_func 0x8295f10 __fixunsdfsi +thumb_func 0x8295f54 __fixunssfsi +thumb_func 0x8295f88 __modsi3 +thumb_func 0x8296058 __muldi3 +thumb_func 0x82960c8 __udivdi3 +thumb_func 0x82964a0 __udivsi3 +thumb_func 0x8296518 __umodsi3 +thumb_func 0x82965d8 __pack_d +thumb_func 0x8296720 __unpack_d +thumb_func 0x8296a64 __adddf3 +thumb_func 0x8296a94 __subdf3 +thumb_func 0x8296acc __muldf3 +thumb_func 0x8296d74 __divdf3 +thumb_func 0x8296efc __fpcmp_parts_d +thumb_func 0x8296ffc __cmpdf2 +thumb_func 0x8297028 __eqdf2 +thumb_func 0x8297074 __nedf2 +thumb_func 0x82970c0 __gtdf2 +thumb_func 0x829710c __gedf2 +thumb_func 0x8297158 __ltdf2 +thumb_func 0x82971a4 __ledf2 +thumb_func 0x82971f0 __floatsidf +thumb_func 0x829726c __fixdfsi +thumb_func 0x82972e0 __negdf2 +thumb_func 0x8297308 __make_dp +thumb_func 0x8297330 __truncdfsf2 +thumb_func 0x8297374 __pack_f +thumb_func 0x829742c __unpack_f +thumb_func 0x8297624 __addsf3 +thumb_func 0x8297650 __subsf3 +thumb_func 0x8297684 __mulsf3 +thumb_func 0x82977e8 __divsf3 +thumb_func 0x82978d4 __fpcmp_parts_f +thumb_func 0x82979b8 __cmpsf2 +thumb_func 0x82979e0 __eqsf2 +thumb_func 0x8297a28 __nesf2 +thumb_func 0x8297a70 __gtsf2 +thumb_func 0x8297ab8 __gesf2 +thumb_func 0x8297b00 __ltsf2 +thumb_func 0x8297b48 __lesf2 +thumb_func 0x8297b90 __floatsisf +thumb_func 0x8297bf0 __fixsfsi +thumb_func 0x8297c58 __negsf2 +thumb_func 0x8297c7c __make_fp +thumb_func 0x8297c94 __extendsfdf2 +thumb_func 0x8297cc0 __lshrdi3 +thumb_func 0x8297cf4 __negdi2 +# libc.s +thumb_func 0x8297d0c memcpy +thumb_func 0x8297d6c memset +thumb_func 0x8297dc0 strcmp +thumb_func 0x8297e1c strcpy +thumb_func 0x8297e68 vsprintf +thumb_func 0x8297f30 vfprintf +thumb_func 0x8297f44 _vfprintf_r +thumb_func 0x8299008 __swsetup +thumb_func 0x8299210 _dtoa_r +thumb_func 0x8299f08 fflush +thumb_func 0x8299fd4 __sfmoreglue +thumb_func 0x829a004 __sfp +thumb_func 0x829a078 _cleanup_r +thumb_func 0x829a088 _cleanup +thumb_func 0x829a098 __sinit +thumb_func 0x829a0f8 _free_r +thumb_func 0x829a2b8 _malloc_trim_r +thumb_func 0x829a378 __sfvwrite +thumb_func 0x829a5a4 _fwalk +thumb_func 0x829a5e4 _setlocale_r +thumb_func 0x829a620 _localeconv_r +thumb_func 0x829a628 setlocale +thumb_func 0x829a640 localeconv +thumb_func 0x829a650 __smakebuf +thumb_func 0x829a888 _malloc_r +thumb_func 0x829ac48 _mbtowc_r +thumb_func 0x829ac74 memchr +thumb_func 0x829acf4 memmove +thumb_func 0x829ad7c __malloc_lock +thumb_func 0x829ad80 __malloc_unlock +thumb_func 0x829ad84 _Balloc +thumb_func 0x829addc _Bfree +thumb_func 0x829adf4 _multadd +thumb_func 0x829ae8c _s2b +thumb_func 0x829af10 _hi0bits +thumb_func 0x829af68 _lo0bits +thumb_func 0x829afec _i2b +thumb_func 0x829b000 _multiply +thumb_func 0x829b16c _pow5mult +thumb_func 0x829b204 _lshift +thumb_func 0x829b2a4 __mcmp +thumb_func 0x829b2e4 __mdiff +thumb_func 0x829b3d4 _ulp +thumb_func 0x829b420 _b2d +thumb_func 0x829b4dc _d2b +thumb_func 0x829b5c4 _ratio +thumb_func 0x829b614 _mprec_log10 +thumb_func 0x829b654 isinf +thumb_func 0x829b678 isnan +thumb_func 0x829b698 _sbrk_r +thumb_func 0x829b6c4 __sread +thumb_func 0x829b6f8 __swrite +thumb_func 0x829b738 __sseek +thumb_func 0x829b778 __sclose +thumb_func 0x829b788 strlen +thumb_func 0x829b838 initialise_monitor_handles +thumb_func 0x829b8e8 _swiread +thumb_func 0x829b90c _read +thumb_func 0x829b954 _swilseek +thumb_func 0x829b9d8 _lseek +thumb_func 0x829b9e4 _swiwrite +thumb_func 0x829ba08 _write +thumb_func 0x829ba54 _swiopen +thumb_func 0x829baf4 _open +thumb_func 0x829bb08 _swiclose +thumb_func 0x829bb3c _close +thumb_func 0x829bb48 _exit +thumb_func 0x829bb68 _kill +thumb_func 0x829bb88 _getpid +thumb_func 0x829bb8c _sbrk +thumb_func 0x829bbc8 _fstat +thumb_func 0x829bbd4 _unlink +thumb_func 0x829bbdc _raise +thumb_func 0x829bbe0 _gettimeofday +thumb_func 0x829bc0c _times +thumb_func 0x829bc30 _write_r +thumb_func 0x829bc60 _calloc_r +thumb_func 0x829bcb8 _close_r +thumb_func 0x829bce4 __errno +thumb_func 0x829bcf0 _fstat_r +thumb_func 0x829bd1c abort +thumb_func 0x829bd3c isatty +thumb_func 0x829bd40 alarm +thumb_func 0x829bd44 _lseek_r +thumb_func 0x829bd74 _read_r diff --git a/separate_asm.py b/separate_asm.py new file mode 100644 index 0000000..776716e --- /dev/null +++ b/separate_asm.py @@ -0,0 +1,421 @@ +""" Separates ASM into modules. """ +import re +import os +import glob +import struct +from statistics import mean, stdev +from typing import List + +from collections import defaultdict +from graph_search import elf_funcs, decode + + +def us_first_funcs(paths): + funcs = {} # Maps function names to path names + func_exp = re.compile(r'\s*\.type\s+(\w+),function') + for path in paths: + with open(path, 'r') as f: + for line in f: + m = func_exp.match(line) + if m: + if m.group(1) in funcs: + print(f'Duplicate {m.group(1)}') + funcs[m.group(1)] = os.path.basename(path) + break + return funcs + + +def label_funcs(symbols, first_funcs): # Maps function names to (label, addr, size) triples + labels = {} + for name, (addr, size) in symbols.items(): + if name in first_funcs: + labels[name] = (first_funcs[name], addr, size) + else: + labels[name] = (None, addr, size) + curr_label = None + for addr, label, name, size in sorted((addr, label, name, size) for name, (label, addr, size) in labels.items()): + if not label and curr_label: # name is not labeled, use current label + labels[name] = (curr_label, addr, size) + elif label: # Name is labeled, switch current label + curr_label = label + return labels + + +def label_jp(jp_symbols, us_labels): # Maps function names to (label, addr, size) triples + jp_labels = {} + for name, (addr, size) in jp_symbols.items(): + if not name.startswith('sub_') and name in us_labels: + jp_labels[name] = (us_labels[name][0], addr, size) + else: + jp_labels[name] = (None, addr, size) + return jp_labels + + +def module_funcs(labels): # Maps module names to a set of function names + func_map = defaultdict(set) + for name, (label, addr, size) in labels.items(): + func_map[label].add(name) + return func_map + + +def edit_distance(a: List[int], b: List[int]) -> int: # Computes instruction edit distance + m, n = len(a)+1, len(b)+1 + d = [[0 for j in range(n)] for i in range(m)] + for i in range(m): + d[i][0] = i + for j in range(n): + d[0][j] = j + for j in range(1, n): + for i in range(1, m): + sub_cost = 0 if a[i-1] == b[j-1] else 1 + d[i][j] = min(d[i-1][j]+1, # deletion + d[i][j-1]+1, # insertion + d[i-1][j-1]+sub_cost) # substitution + return d[-1][-1] + + +def read_func(addr: int, size: int, f): + f.seek(addr & 0xfffffe) + instrs = [t[0] for t in struct.iter_unpack('{label} {next_label}') + jp_instrs = read_func(addr, size, jp_f) + modules = [] + if label: # Check against label and adjacent + modules.append(label) + if last_label != label and last_label: + modules.append(last_label) + if next_label != label and next_label: + modules.append(next_label) + threshold = 0 # Minimum threshold to beat + else: # Check against adjacent labels + if last_label: + modules.append(last_label) + if next_label and next_label != last_label: + modules.append(next_label) + threshold = max(1, len(jp_instrs)//10) + diff = [] + for mod_label in modules: + for us_name in mod_map[mod_label]: + us_instrs = read_func(us_labels[us_name][1], us_labels[us_name][2], us_f) + dist = edit_distance(jp_instrs, us_instrs) + diff.append((dist, mod_label, us_name)) + if us_name == name: + threshold = dist + diff.sort() + # Replace the function if a better match was found with a known name + if diff and diff[0][0] < threshold: + new_name = diff[0][2] + if new_name in jp_labels: # New name already used, replace it with sub + _, old_addr, old_size = jp_labels[new_name] + jp_labels[f'sub_{old_addr:08X}'] = None, old_addr, old_size + replace[new_name] = f'sub_{old_addr:08X}' + out.write(f'{old_addr:08x} None {new_name} sub_{old_addr:08X}\n') + if new_name.startswith('sub_'): # Replace with correct name + new_name = f'SUB_{addr:08X}' + replace[name] = new_name + out.write(f'{addr:08x} {diff[0][1]} {name} {new_name}\n') + jp_labels[new_name] = (diff[0][1], addr, size) + jp_labels.pop(name) + if label: + wrong_c += 1 + else: + new_c += 1 + print(f'\r{wrong_c} wrong, {new_c} new, {i}/{len(ordered)}', end='') + elif i % 100 == 0: + out.flush() + print(f'\r{wrong_c} wrong, {new_c} new, {i}/{len(ordered)}', end='') + # print(f'Replace with {new_name} ({diff[0][0]} vs {threshold})') + # elif diff: + # print(f'{diff[0][1]} {diff[0][2]} ({diff[0][0]} vs {threshold})') + last_label = label + out.close() + + +def modularize(jp_addr, us_labels, jp_f, us_f): + modmap = module_funcs(us_labels) + func_reg = re.compile(r'([\da-fA-F]{8}) (.+) (.+)\r?\n') + mod_reg = re.compile(r'([\w\.]+)\r?\n') + jp_modules = [] + module = None + func_list = [] + with open('funcmap_jp.txt', 'r') as f_in: + for line in f_in: + m = mod_reg.match(line) + if m: + if module: + jp_modules.append((module, func_list)) + module = m.group(1) + func_list = [] + continue + m = func_reg.match(line) + addr, label, name = m.groups() + addr, label = int(addr, 16), None if label == 'None' else label + func_list.append((addr, label, name, jp_addr[addr][2])) + f_out = open('funcmap_jp_3.txt', 'w', buffering=1) + for module, func_list in jp_modules: # For each module + print(f'\r{module} 0', end='') + count = 0 + func_map = defaultdict(list) # Maps addresses to [(dist, name)] + f_out.write(f'{module}\n') + for addr, _, _, size in func_list: # For each function + jp_instrs = read_func(addr, size, jp_f) + for func_name in modmap[module]: # Calculate distance between it and all US functions + us_instrs = read_func(us_labels[func_name][1], us_labels[func_name][2], us_f) + dist = edit_distance(jp_instrs, us_instrs) + func_map[addr].append((dist, func_name)) + func_map[addr].sort() + count += 1 + print(f'\r{module} {count}', end='') + print(f'\r{module} {count}') + pool = modmap[module] #- {name for _, _, name, _ in func_list} + for addr, label, name, _ in func_list: + if True or label is None or label != module: + for dist, name in func_map[addr]: # Keep looking for a good match + if name in pool: + pool.discard(name) + if name.startswith('sub_'): + name = f'sub_{addr:08X}_jp' + break + else: + name = f'sub_{addr:08X}' + + f_out.write(f'{addr:08x} {module} {name}\n') + f_out.close() + + +def find_anomalies(): + addr_map = {} # Maps addresses to (label, name) tuples + mod_map = defaultdict(list) # Maps module names to list of addresses + reg = re.compile(r'([\da-f]{8}) (.+) (.+)\r?\n') + with open('modmap.txt', 'r') as f: + for line in f: + addr, label, name = reg.match(line).groups() + addr = int(addr, 16) + if label == 'None': + label = None + addr_map[addr] = label, name + if label: + mod_map[label].append(addr) + dev_map = defaultdict(dict) + count = 0 + print(f'Remove {count} outliers', end='') + for label, items in mod_map.items(): + label_mean = mean(items) + if len(items) == 1: + label_dev = float('inf') + else: + label_dev = stdev(items) + for item in items: + dev_map[label][item] = abs(item-label_mean)/label_dev + if dev_map[label][item] > 2: + count += 1 + print(f'\rRemove {count} outliers', end='') + addr_map[item] = None, f'sub_{item:08X}' + print(f'\rRemove {count} outliers') + with open('modmap2.txt', 'w') as f: + for addr, (label, name) in sorted(addr_map.items()): + f.write(f'{addr:08x} {label} {name}\n') + + +def read_funcmap(path): # Read funcmap + addr_map = {} + reg = re.compile(r'([\da-fA-F]{8}) (.+) (.+)\r?\n') + with open(path, 'r') as f: + for line in f: + m = reg.match(line) + if m is None: + continue + addr, module, name = m.groups() + addr, module = int(addr, 16), None if module == 'None' else module + addr_map[addr] = (module, name) + return addr_map + + +def read_config(path): # Read config file + addr_map = {} + arm_funcs = set() + func_re = re.compile(r'(thumb_func|arm_func)\s+(0x[\da-fA-F]{7,8})(?:\s+(\S+)\r?\n)?') + mod_re = re.compile(r'#\s+(\S+)\r?\n') # Matches module names + module = None + with open(path, 'r') as f: + for line in f: + m = func_re.match(line) + if m: + func_type, addr, name = m.groups() + addr = int(addr, 16) + name = name if name else f'sub_{addr:07X}' + if func_type == 'arm_func': + arm_funcs.add(addr) + addr_map[addr] = (module, name) + continue + m = mod_re.match(line) + if m: + module = m.group(1) + return addr_map, arm_funcs + + +def write_config(map_path, cfg_path, out): # Write config data + modmap = read_funcmap(map_path) + cfgmap, arm_funcs = read_config(cfg_path) + for addr in cfgmap: + if addr not in modmap: + modmap[addr] = cfgmap[addr] + # print(f'{addr:08x} {cfgmap[addr][0]} {cfgmap[addr][1]}') + last_module = None + unk_re = re.compile(r'sub_([\da-fA-F]{7,8})') + with open(out, 'w') as f: + for addr in sorted(modmap): + module, name = modmap[addr] + if module != last_module: + f.write(f'# {module}\n') + last_module = module + func_type = 'arm_func' if addr in arm_funcs else 'thumb_func' + if unk_re.match(name): + name = '' + else: + name = ' ' + name + f.write(f'{func_type} 0x{addr:07x}{name}\n') + + +def compare(): + us_addr = read_funcmap('funcmap_us.txt') + jp_addr = read_funcmap('funcmap_jp.txt') + jp_names = {name: (label, addr) for addr, (label, name) in jp_addr.items()} + us_only = {} + print('US only:') + out = open('exclusive.txt', 'w') + out.write('US only:\n') + for addr, (label, name) in us_addr.items(): + if not name.startswith('sub_') and name not in jp_names: + us_only[addr] = (label, name) + print(f'{addr:08x} {label} {name}') + out.write(f'{addr:08x} {label} {name}\n') + print('JP only:') + out.write('JP only:\n') + for addr, (label, name) in jp_addr.items(): + if name.startswith('sub_') and name[-2:] != 'jp': + print(f'{addr:08x} {label} {name}') + out.write(f'{addr:08x} {label} {name}\n') + out.close() + + +def sequence(path): # Write the sequence of functions to a file, for diffing + unk_re = re.compile(r'sub_([\da-fA-F]{7,8})') + with open('funcs.txt', 'w') as f_out: + func_map = read_funcmap(path) + for addr in sorted(func_map): + _, name = func_map[addr] + if unk_re.match(name): + name = '' + f_out.write(name + '\n') + + +def disasmfix(path): # Fix gbadisasm output + func_re = re.compile(r'\s+(ARM_FUNC_START|THUMB_FUNC_START)\s+(\S+)\r?\n') + func = is_arm = None + with open(path, 'r') as f_in, open(path+'.temp', 'w') as f_out: + lines = [line for line in f_in] + f_out.write(ASM_HEADER) # Write header to start of ROM + for i, line in enumerate(lines): + m = func_re.match(line) + if m is None: + if i+1 < len(lines) and line in ('\r\n', '\n'): + next_line = lines[i+1] + if func_re.match(next_line) and func: + f_out.write(f'\t{"arm" if is_arm else "thumb"}_func_end {func}\n\n') + func = None + else: + f_out.write(line) + else: + f_out.write(line) + continue + line = line.replace('ARM_FUNC_START', 'arm_func_start') + line = line.replace('THUMB_FUNC_START', 'thumb_func_start') + if func: + f_out.write(f'\t{"arm" if is_arm else "thumb"}_func_end {func}\n\n') + func_type, func = m.groups() + is_arm = func_type == 'ARM_FUNC_START' + f_out.write(line) + os.replace(path+'.temp', path) + + +ASM_HEADER = '.include "asm/macros.inc"\n.include "constants/constants.inc"\n.text\n.syntax unified\n\n' + + +def splitrom(asm_path, cfg_path): # Splits a rom file into modules + addr_map, _ = read_config(cfg_path) + module = mod_f = None + unk_count = 0 + start_re = re.compile(r'\s+(arm_func_start|thumb_func_start)\s+(\S+)\r?\n') + addr_re = re.compile(r'(\S+): @ 0x([\da-fA-F]{7,8})\r?\n') + log = open('load_order.txt', 'w') + with open(os.path.join(asm_path, 'rom.s'), 'r') as f: + for line in f: + m = start_re.match(line) + if m: # New function, read the next line for the address + line2 = next(f) + m = addr_re.match(line2) + if m is None: + raise Exception(f'Expected function address after: {line}') + addr = int(m.group(2), 16) + new_module = addr_map[addr][0] if addr in addr_map else module + if new_module != module: # Open a new file, and write the header + if mod_f: # Close the current file, if applicable + mod_f.close() + module = new_module + if module is None: # Open a new unknown module + print(f'unk{unk_count}.s') + log.write(f'asm/unk{unk_count}.o(.text);\n') + mod_f = open(os.path.join(asm_path, f'unk{unk_count}.s'), 'w') + unk_count += 1 + else: + print(module) + log.write(f'asm/{module[:-1]}o(.text);\n') + mod_f = open(os.path.join(asm_path, module), 'w') + mod_f.write(ASM_HEADER) + mod_f.write(line) + mod_f.write(line2) + else: # Any other line + if mod_f is None: # Open a fresh unknown file + print(f'unk{unk_count}.s') + log.write(f'asm/unk{unk_count}.o(.text);\n') + mod_f = open(os.path.join(asm_path, f'unk{unk_count}.s'), 'w') + unk_count += 1 + mod_f.write(line) + if mod_f: + mod_f.close() + log.close() + + +if __name__ == '__main__': + # us_asm = glob.glob(os.path.join('..', 'pokeemerald', 'build', 'emerald', 'src', '*.s')) + # us_asm += glob.glob(os.path.join('..', 'pokeemerald', 'asm', '*.s')) + # first_funcs = us_first_funcs(us_asm) + # us_symbols = elf_funcs('../pokeemerald/pokeemerald.elf', None) + # us_labels = label_funcs(us_symbols, first_funcs) + # jp_symbols = elf_funcs('pokeemerald_jp.elf', None) + # jp_labels = label_jp(jp_symbols, us_labels) + # jp_addr = {addr: (label, name, size) for name, (label, addr, size) in jp_labels.items()} + # with open('pokeemerald_jp.gba', 'rb') as jp_f, open('../pokeemerald/pokeemerald.gba', 'rb') as us_f: + # modularize(jp_addr, us_labels, jp_f, us_f) + # write_config('funcmap_jp.txt', 'pokeemerald_jp.cfg', 'pokeemerald_jp.cfg') + # disasmfix('asm/rom.s') + splitrom('asm', 'pokeemerald_jp.cfg') diff --git a/update_config.py b/update_config.py index 1c5cab9..b1c57a7 100644 --- a/update_config.py +++ b/update_config.py @@ -1,18 +1,23 @@ """ Renames functions in the config when they are renamed in the .s""" import re import os +import glob from collections import defaultdict +from contextlib import ExitStack +from itertools import chain config_path = 'pokeemerald_jp.cfg' -asm_path = os.path.join('asm', 'rom.s') +asm_path = os.path.join('asm', '*.s') -def update_config(asm_path, config_path): # Find and replace all renamed functions +def update_config(asm_glob, config_path): # Find and replace all renamed functions addresses = {} # Maps integer addresses to function names asm_exp = re.compile(r'(?!sub_)(\w+): @ (0x[\da-fA-F]+)') # Ignore unknown functions cfg_exp = re.compile(r'(thumb_func|arm_func) (0x[\da-fA-F]+)\r?\n') - with open(asm_path, 'r') as f: # Gather functions + with ExitStack() as stack: + files = [stack.enter_context(open(path, 'r')) for path in glob.iglob(asm_glob)] + f = chain(*files) count = 0 print('Found 0 named functions.', end='', flush=True) for i, line in enumerate(f, 1): @@ -57,6 +62,6 @@ def check_dups(config_path): # Find duplicate names if __name__ == '__main__': - update_config(asm_path, config_path) + #update_config(asm_path, config_path) print('Find duplicates:') check_dups(config_path)